./0000755000175000017500000000000014576573022011150 5ustar anthonyanthony./dynmatrix.pas0000644000175000017500000006363314576573021013706 0ustar anthonyanthony{ dynmatrix v1 Copyright (C) 2008-2012 Paulo Costa This library is Free software; you can rediStribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; version 2 of the License. This program is diStributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; withOut even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a Copy of the GNU Library General Public License along with This library; if not, Write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. This license has been modified. See File LICENSE.ADDON for more information. } unit dynmatrix; {$mode objfpc}{$H+} interface uses SysUtils; type { TDMatrix } TDMatrix = object private protected data: array of double; rows, cols: Longword; procedure Init(newrows, newcols: Longword); procedure TestData(out NumRows, NumCols: Longword); public procedure Load(fname: string); procedure Save(fname: string); procedure SetSize(newrows, newcols: Longword); procedure setv(r, c: Longword; v: double); function getv(r, c: Longword): double; procedure Usetv(r, c: Longword; v: double); function Ugetv(r, c: Longword): double; function GetPointer: pdouble; function IsGood: boolean; function NumCols: Longword; function NumRows: Longword; function t: TDMatrix; end; TDoubleFunc = function(v: double): double; function Mzeros(numrows, numcols: LongWord): TDMatrix; function Mones(numrows, numcols: LongWord): TDMatrix; function Meye(n: Longword): TDMatrix; function Mrandom(numrows, numcols: LongWord): TDMatrix; function Minc(numrows, numcols: LongWord): TDMatrix; function Mdiag(const D: TDMatrix): TDMatrix; procedure ArrayToMatrix(M: TDMatrix; const D: array of double); function Mpow(const M: TDMatrix; n: longword): TDMatrix; function Mtran(const M: TDMatrix): TDMatrix; function Minv(const M: TDMatrix): TDMatrix; function Minv_fast(const M: TDMatrix): TDMatrix; function MelementMult(const A, B: TDMatrix): TDMatrix; function MisEqual(const A, B: TDMatrix; eps: double): boolean; function Mmin(const M: TDMatrix): double; function Mmax(const M: TDMatrix): double; function MmaxAbs(const M: TDMatrix): double; function MTrace(const M: TDMatrix): double; function MGetDiag(const M: TDMatrix): TDMatrix; function Mfunc(const A: TDMatrix; f: TDoubleFunc): TDMatrix; operator + (const A, B: TDMatrix): TDMatrix; operator + (const A: TDMatrix; k: double): TDMatrix; operator + (k: double; const A: TDMatrix): TDMatrix; operator - (const A: TDMatrix): TDMatrix; operator - (const A, B: TDMatrix): TDMatrix; operator - (const A: TDMatrix; k: double): TDMatrix; operator - (k: double; const A: TDMatrix): TDMatrix; operator * (const A: TDMatrix; k: double): TDMatrix; operator * (k: double; const A: TDMatrix): TDMatrix; operator * (const A, B: TDMatrix): TDMatrix; operator ** (const M: TDMatrix; const n: integer): TDMatrix; function MHflip(const M: TDMatrix): TDMatrix; function MConv(const A, B: TDMatrix): TDMatrix; function MCrop(const M: TDMatrix; uprow, leftcol, downrow, rightcol: Longword): TDMatrix; function MOneCol(const M:TDMatrix; col: Longword): TDMatrix; function MOneRow(const M:TDMatrix; row: Longword): TDMatrix; function MStamp(const M, S: TDMatrix; drow, dcol: Longword): TDMatrix; function MStampCol(const M, S: TDMatrix; col: Longword): TDMatrix; function MStampRow(const M, S: TDMatrix; row: Longword): TDMatrix; function MColSum(const M: TDMatrix): TDMatrix; function MRowSum(const M: TDMatrix): TDMatrix; function MColSquareSum(const M: TDMatrix): TDMatrix; function MColMax(const M: TDMatrix): TDMatrix; function MColMin(const M: TDMatrix): TDMatrix; function MColCenter(const M: TDMatrix): TDMatrix; // Matrix data internal format // | TdynDoubleArray ... | // |<- rows*cols doubles ->| // Missing: //function Mvflip(M:Matrix): Matrix; //function MColNorm2(M:Matrix): Matrix; //procedure MShape(M:Matrix; newrow,newcol: integer); //procedure MShape2col(M:Matrix); //procedure MShape2row(M:Matrix); //function VDotProduct(A: TDMatrix; B: TDMatrix): TDMatrix; //function VExtProduct(A: TDMatrix; B: TDMatrix): TDMatrix; //function VNorm1(A: TDMatrix; B: TDMatrix): TDMatrix; //function VNorm2(A: TDMatrix; B: TDMatrix): TDMatrix; //function VNormInf(A: TDMatrix; B: TDMatrix): TDMatrix; implementation uses math; // <- Transpose of M function MTran(const M: TDMatrix): TDMatrix; var r,c: Longword; begin result.Init(M.cols, M.rows); for c:=0 to M.cols-1 do for r:=0 to M.rows-1 do begin result.data[r + c * M.rows] := M.data[c + r * M.cols]; end; end; // Zeros matrix function Mzeros(numrows, numcols: LongWord): TDMatrix; begin result.SetSize(numrows, numcols); end; // Ones Matrix function Mones(numrows, numcols: LongWord): TDMatrix; var i: Longword; begin result.Init(numrows, numcols); for i := 0 to numrows * numcols - 1 do begin result.data[i] := 1; end; end; // Identity matrix function Meye(n: Longword): TDMatrix; var i: Longword; begin result.Init(n, n); for i := 0 to n - 1 do begin result.data[i + i * n] := 1; end; end; // Returns a Matrix with (numrows, numcols) elements with random values between 0 e 1 function Mrandom(numrows, numcols: LongWord): TDMatrix; var i: Longword; begin result.Init(numrows, numcols); for i := 0 to numrows * numcols - 1 do begin result.data[i] := random; end; end; function Minc(numrows, numcols: LongWord): TDMatrix; var i: Longword; begin result.Init(numrows, numcols); for i := 0 to numrows * numcols - 1 do begin result.data[i] := i; end; end; function Mdiag(const D: TDMatrix): TDMatrix; var i, n: Longword; begin n := D.rows * D.cols; result.Init(n, n); for i := 0 to n - 1 do begin result.data[i + i * n] := D.data[i]; end; end; function MTrace(const M: TDMatrix): double; var i, n: Longword; begin result := 0; n := min(M.rows, M.cols); for i := 0 to n - 1 do begin result += M.data[i + i * M.cols]; end; end; function MGetDiag(const M: TDMatrix): TDMatrix; var i, n: Longword; begin n := min(M.rows, M.cols); result.Init(n, 1); for i := 0 to n - 1 do begin result.data[i] := M.data[i + i * M.cols]; end; end; // <- M^n (power n of a square matrix M) with non-negative, integer n. function Mpow(const M: TDMatrix; n: longword): TDMatrix; begin result := M ** n; end; operator+(const A, B: TDMatrix): TDMatrix; var i : LongWord; begin if (A.rows <> B.rows) or (A.cols <> B.cols) then raise Exception.Create(format('Cannot add matrix (%d,%d) with matrix (%d,%d)',[A.rows, A.Cols, B.rows, B.cols])); result.Init(A.rows,A.cols); for i := 0 to A.rows * A.cols - 1 do begin result.data[i] := A.data[i] + B.data[i]; end; end; operator+(const A: TDMatrix; k: double): TDMatrix; var i: LongWord; begin result.Init(A.rows, A.cols); for i := 0 to A.rows * A.cols - 1 do begin result.data[i] := A.data[i] + k; end; end; operator + (k: double; const A: TDMatrix): TDMatrix; begin result := A + k; end; // <- -A ie R(i,j) := -A(i,j) operator-(const A: TDMatrix): TDMatrix; var i: LongWord; begin result.Init(A.rows, A.cols); for i := 0 to A.rows * A.cols - 1 do begin result.data[i] := - A.data[i]; end; end; // <- A-B ie R(i,j) := A(i,j) - B(i,j) operator-(const A, B: TDMatrix): TDMatrix; var i: LongWord; begin if (A.rows <> B.rows) or (A.cols <> B.cols) then raise Exception.Create(format('Cannot subtract matrix (%d,%d) with matrix (%d,%d)',[A.rows, A.Cols, B.rows, B.cols])); result.Init(A.rows, A.cols); for i := 0 to A.rows * A.cols - 1 do begin result.data[i] := A.data[i] - B.data[i]; end; end; operator-(const A: TDMatrix; k: double): TDMatrix; var i: LongWord; begin result.Init(A.rows, A.cols); for i := 0 to A.rows * A.cols - 1 do begin result.data[i] := A.data[i] - k; end; end; operator-(k: double; const A: TDMatrix): TDMatrix; var i: LongWord; begin result.Init(A.rows, A.cols); for i := 0 to A.rows * A.cols - 1 do begin result.data[i] := k - A.data[i]; end; end; // <- A * k (k: double) ie R(i,j) := A(i,j) * k operator*(const A: TDMatrix; k: double): TDMatrix; var i: LongWord; begin result.Init(A.rows, A.cols); for i := 0 to A.rows * A.cols - 1 do begin result.data[i] := A.data[i] * k; end; end; // <- k * A (k: double) ie R(i,j) := A(i,j) * k operator*(k: double; const A: TDMatrix): TDMatrix; begin result := A * k; end; // <- A*B operator*(const A, B: TDMatrix): TDMatrix; var r,c,i: LongWord; sum: double; begin if A.cols <> B.rows then raise Exception.Create(format('Cannot multiply matrix (%d,%d) with matrix (%d,%d)',[A.rows, A.Cols, B.rows, B.cols])); result.Init(A.rows, B.cols); for r := 0 to A.rows-1 do begin for c := 0 to B.cols-1 do begin sum := 0; for i :=0 to A.cols-1 do begin sum := sum + A.data[r*A.cols + i] * B.data[c + i*B.cols]; end; result.data[c + r*B.cols] := sum; end; end; end; // <- M^n (power n of a square matrix M) with non-negative, integer n. operator**(const M: TDMatrix; const n: integer): TDMatrix; var np: longword; P: TDMatrix; begin if n < 0 then begin result := Minv(M)**(-n); exit; end; // Must handle special cases: n = 0, and n = 1 if n = 0 then begin result := Meye(n); exit; end; result := M; if n = 1 then exit; // General case: n >= 2 P := M; // P holds the current square np := n - 1; while (np >= 1) do begin if (np and 1) = 0 then begin // np is even, we have a zero in the binary expansion np := np div 2; end else begin // np is odd, we have a one in the binary expansion np := (np - 1) div 2; result := result * P; end; P := P * P; end; end; { TDMatrix } procedure TDMatrix.Init(newrows, newcols: Longword); begin rows := NewRows; cols := NewCols; Setlength(data, rows * cols); end; // Inicializes a matrix with numrows lines and numcols columns procedure TDMatrix.SetSize(NewRows, NewCols: Longword); begin rows := NewRows; cols := NewCols; Setlength(data, rows * cols); end; // get a pointer to the double array function TDMatrix.GetPointer: pdouble; begin Setlength(data, rows * cols); // Make unique result := @data[0]; end; // Write v to Element [r,c] procedure TDMatrix.setv(r, c: Longword; v: double); begin Setlength(data, rows * cols); // Make unique if (r >= Rows) or (c >= Cols) then raise Exception.Create(format('Invalid (row,col) value. Matrix is (%d,%d), element required is (%d,%d)',[Rows, Cols, r,c])); data[c + r*Cols] := v; end; // Get Element [r,c] function TDMatrix.getv(r, c: Longword): double; begin if (r >= Rows) or (c >= Cols) then raise Exception.Create(format('Invalid (row,col) value. Matrix is (%d,%d), element required is (%d,%d)',[Rows, Cols, r,c])); result := data[c + r*Cols]; end; // Write to v Element [r,c] , ignore operation if r,c is out of bounds procedure TDMatrix.Usetv(r, c: Longword; v: double); begin Setlength(data, rows * cols); // Make unique if (r >= Rows) or (c >= Cols) then exit; data[c + r*Cols] := v; end; // Get Element [r,c], 0 if r,c out of bounds function TDMatrix.Ugetv(r, c: Longword): double; begin if (r >= Rows) or (c >= Cols) then begin result := 0; exit; end; result := data[c + r*Cols]; end; procedure TDMatrix.TestData(out NumRows, NumCols: Longword); begin NumRows := rows; NumCols := cols; if data=nil then raise Exception.Create('Invalid matrix: nil data'); if not (rows>0) then raise Exception.Create('Invalid number of rows:'+inttostr(rows)); if not (cols>0) then raise Exception.Create('Invalid number of columns:'+inttostr(cols)); if longword(length(data)) <> (rows * cols) * sizeof(double) then raise Exception.Create('Invalid matrix: incompatible data size'); end; // Get total number of columns function TDMatrix.NumCols: Longword; begin result := cols; end; // Get total number of rows function TDMatrix.NumRows: Longword; begin result := rows; end; function TDMatrix.t: TDMatrix; begin result := MTran(Self); end; // Test the matrix goodness: // if the number of row and cols is not zero // if the string size is compatible with expected embeded array // Returns true if it is good function TDMatrix.IsGood: boolean; begin result := false; if (pointer(data) = nil) then exit; if (rows > 0) and (cols > 0) and (longword(length(data)) = (rows*cols)) then result := True; end; procedure TDMatrix.Load(fname: string); var r,c,lines,rxc: integer; F: TextFile; dum: double; begin //result := Mzeros(0,0); AssignFile(F, fname); Reset(F); lines:=0; while not eof(F) do begin readln(F); inc(lines); end; CloseFile(F); AssignFile(F, fname); Reset(F); rxc := -1; dum := 0; // no warning while not eof(F) do begin read(F,dum); inc(rxc); end; CloseFile(F); if (lines <= 0) or (rxc <= 0) or (((rxc div lines) * lines) <> rxc) then raise Exception.Create('File: ' + fname + ' Bad file format: can not load matrix'); //Mzeros(lines,rxc div lines); rows := lines; cols := rxc div lines; Setlength(data, rows * cols); AssignFile(F, fname); Reset(F); for r := 0 to lines - 1 do begin for c := 0 to (rxc div lines) - 1 do begin read(F, dum); //setv(r,c,dum); data[c + r * Cols] := dum; end; end; CloseFile(F); end; procedure TDMatrix.Save(fname: string); var r,c: integer; F: TextFile; begin AssignFile(F, fname); Rewrite(F); for r := 0 to rows - 1 do begin for c := 0 to cols - 1 do begin write(F, data[c + r*Cols]); write(F,' '); end; write(F, chr($0d) + chr($0a)); end; CloseFile(F); end; // Returns A+B function MAdd(A: TDMatrix; B: TDMatrix): TDMatrix; inline; begin result := A + B; end; // Returns M^-1 function Minv(const M: TDMatrix): TDMatrix; var ROW, COL: array of Longword; MatINV, MatTMP: TDmatrix; HOLD , I_pivot , J_pivot: Longword; fv, pivot, abs_pivot, rel_eps: double; n, i, j, k, {r, c,} rin, rkn, ck, cj: Longword; begin // M.GetData(r, c, Mda); if M.cols <> M.rows then // c:= M.cols r := M.rows raise Exception.Create('Cannot invert non-square matrix'); n := M.cols; SetLength(ROW, n); SetLength(COL, n); MatTMP := MZeros(n, n); MatINV := M; SetLength(MatINV.data, MatINV.rows * MatINV.cols); // Make unique // Set up row and column interchange vectors for k := 0 to n-1 do begin ROW[k] := k; COL[k] := k; end; // Find largest element rel_eps := 0; for i := 0 to n-1 do begin for j := 0 to n-1 do begin fv := abs(MatINV.data[ROW[i]*n + COL[j]]); if fv > rel_eps then begin rel_eps := fv ; end; end; end; rel_eps := rel_eps * 1e-15; // Begin main reduction loop for k := 0 to n-1 do begin // Find largest element for pivot pivot := MatINV.data[ROW[k]*n+COL[k]]; abs_pivot := abs(pivot); I_pivot := k; J_pivot := k; for i := k to n-1 do begin for j := k to n-1 do begin //abs_pivot := abs(pivot); fv := MatINV.data[ROW[i]*n+COL[j]]; if abs(fv) > abs_pivot then begin I_pivot := i; J_pivot := j; pivot := fv; abs_pivot := abs(pivot); end; end; end; if abs(pivot) < rel_eps then raise Exception.Create(format('Singular matrix: Pivot is %g, max element = %g',[pivot, rel_eps])); HOLD := ROW[k]; ROW[k] := ROW[I_pivot]; ROW[I_pivot] := HOLD; HOLD := COL[k]; COL[k] := COL[J_pivot]; COL[J_pivot] := HOLD; rkn := ROW[k]*n; ck := COL[k]; // Reduce around pivot MatINV.data[rkn + ck] := 1.0 / pivot ; for j :=0 to n-1 do begin if j <> k then begin cj := COL[j]; MatINV.data[rkn + cj] := MatINV.data[rkn + cj] * MatINV.data[rkn + ck]; end; end; // Inner reduction loop for i := 0 to n-1 do begin rin := ROW[i]*n; if k <> i then begin fv := MatINV.data[rin + ck]; for j := 0 to n-1 do begin if k <> j then begin cj := COL[j]; MatINV.data[rin + cj] := MatINV.data[rin + cj] - fv * MatINV.data[rkn + cj] ; end; end; MatINV.data[rin + ck] := - MatINV.data[rin + ck] * MatINV.data[rkn + ck]; end; end; end; // end of main reduction loop // Unscramble rows for j := 0 to n-1 do begin for i := 0 to n-1 do begin MatTMP.data[COL[i]] := MatINV.data[ROW[i]*n + j]; end; for i := 0 to n-1 do begin MatINV.data[i*n + j] := MatTMP.data[i]; end; end; // Unscramble columns for i := 0 to n-1 do begin for j := 0 to n-1 do begin MatTMP.data[ROW[j]] := MatINV.data[i*n + COL[j]]; end; for j := 0 to n-1 do begin MatINV.data[i*n+j] := MatTMP.data[j]; end; end; result := MatInv; end; // Returns M^-1 // Faster and less acurate version function Minv_fast(const M: TDMatrix): TDMatrix; var dim,r,c,t,pivrow,k: Longword; pivmax,pivot: double; INV,TMP: TDmatrix; ex,pdisp,cdisp:Longword; dtmp,victim,rk,norm,invnorm: double; Mzero : double; begin if M.cols <> M.rows then raise Exception.Create('Cannot invert non-square matrix'); dim := M.rows; INV := Meye(dim); TMP := M; setlength(TMP.data, TMP.cols * TMP.rows); // Make unique MZero := 1e-10; for c := 0 to dim - 1 do begin // find the greatest pivot in the remaining columns pivmax := abs(TMP.data[c + c*dim]); pivrow := c; for k := c + 1 to dim - 1 do begin if abs(TMP.data[c + k*dim]) > pivmax then begin pivmax := abs(TMP.data[c + k*dim]); pivrow:=k; end; end; pivot:= TMP.data[c + pivrow*dim]; if abs(pivot) < Mzero then raise Exception.Create('Singular matrix: Pivot is '+floattostr(pivot)); if pivrow <> c then begin // swap lines pdisp:=pivrow*dim; cdisp:=c*dim; for ex:=c to dim-1 do begin dtmp:=TMP.data[cdisp+ex]; TMP.data[cdisp+ex]:=TMP.data[pdisp+ex]; TMP.data[pdisp+ex]:=dtmp; end; for ex:=0 to dim-1 do begin dtmp:=INV.data[cdisp+ex]; INV.data[cdisp+ex]:=INV.data[pdisp+ex]; INV.data[pdisp+ex]:=dtmp; end; end; for r:=0 to dim-1 do begin if r<>c then begin victim:=TMP.data[c+r*dim]; rk:=-victim/pivot; for t:=0 to dim-1 do INV.data[r*dim+t]:= INV.data[r*dim+t] + rk * INV.data[c*dim+t]; for t:=c+1 to dim-1 do TMP.data[r*dim+t]:= TMP.data[r*dim+t] + rk * TMP.data[c*dim+t]; end; end; end; // normalize the pivots for r := 0 to dim - 1 do begin norm := TMP.data[r + r*dim]; if abs(norm) < Mzero then raise Exception.Create('Singular matrix: Pivot has been '+floattostr(norm)); invnorm := 1.0 / norm; for c := 0 to dim - 1 do INV.data[c + r*dim] := INV.data[c + r*dim] * invnorm; end; result:=INV; end; function MisEqual(const A, B: TDMatrix; eps: double): boolean; var i : LongWord; begin result := false; if (A.rows <> B.rows) or (A.cols <> B.cols) then exit; for i := 0 to A.rows * A.cols - 1 do begin if abs(A.data[i] - B.data[i]) > eps then exit; end; result := true; end; // Returns max M(i,j) function Mmax(const M: TDMatrix): double; var i: Longword; begin result := M.data[0]; for i := 1 to M.rows * M.cols - 1 do begin if (result < M.data[i]) then result := M.data[i]; end; end; // Returns max |M(i,j)| function MmaxAbs(const M: TDMatrix): double; var i: Longword; begin result := abs(M.data[0]); for i := 1 to M.rows * M.cols - 1 do begin if (result < abs(M.data[i])) then result := abs(M.data[i]); end; end; // Returns A .* B (Element-wise mutiplication) function MelementMult(const A, B: TDMatrix): TDMatrix; var i: LongWord; begin if (A.rows <> B.rows) or (A.cols <> B.cols) then raise Exception.Create(format('Cannot Element-wise mutiply matrix (%d,%d) with matrix (%d,%d)',[A.rows, A.Cols, B.rows, B.cols])); result.Init(A.rows,A.cols); for i := 0 to A.rows * A.cols - 1 do begin result.data[i] := A.data[i] * B.data[i]; end; end; // Returns min M(i,j) function Mmin(const M: TDMatrix): double; var i: Longword; begin result := M.data[0]; for i := 1 to M.rows * M.cols - 1 do begin if (result > M.data[i]) then result := M.data[i]; end; end; function Mfunc(const A: TDMatrix; f: TDoubleFunc): TDMatrix; var i: Longword; begin result := A; SetLength(result.data, result.rows * result.cols); // Make unique for i := 0 to result.rows * result.cols - 1 do begin result.data[i] := f(result.data[i]); end; end; // <- Reverse Columns function Mhflip(const M: TDMatrix): TDMatrix; var r,c: Longword; begin result.Init(M.rows, M.cols); for r := 0 to M.rows - 1 do begin for c:= 0 to M.cols-1 do begin result.data[c + r * M.rows] := M.data[(M.cols - 1) - c + r * M.cols]; end; end; end; // Returns row convolution between A and B function MConv(const A, B: TDMatrix): TDMatrix; var ar,br,disp,r,c,i: Longword; pivot,prod: double; begin result := MZeros(A.rows * B.rows, A.cols + B.cols - 1); for ar:=0 to A.rows-1 do begin for br:=0 to B.rows-1 do begin for disp:=0 to A.cols-1 do begin r:=ar*B.rows+br; pivot:= A.data[disp+ar*A.cols]; for i:=0 to B.cols-1 do begin prod := pivot * B.data[i+br*B.cols]; c:=disp+i; result.data[c+r*result.cols]:=result.data[c+r*result.cols] + prod; end; end; end; end; end; // Fill matrix A with the elements from array D procedure ArrayToMatrix(M: TDMatrix; const D: array of double); var i: Longword; begin if M.rows * M.cols <> length(D) then raise Exception.Create('Const Array size does not match Matrix size'); for i := 0 to M.cols * M.rows - 1 do begin M.data[i] := D[i]; end; end; // Returns a submatrix from M function MCrop(const M: TDMatrix; uprow, leftcol, downrow, rightcol: Longword): TDMatrix; var rowsize,colsize,r,c: Longword; begin rowsize:=downrow-uprow+1; colsize:=rightcol-leftcol+1; if (rowsize < 1) or (colsize < 1) then raise Exception.Create('Invalid number of rows/cols:'+inttostr(rowsize)+'/'+inttostr(colsize)); if (downrow > M.rows-1) or (rightcol > M.cols-1) then raise Exception.Create('Invalid number of rows/cols:'+inttostr(downrow)+'/'+inttostr(rightcol)); result.init(rowsize,colsize); for r:=0 to result.rows-1 do begin for c:=0 to result.cols-1 do begin result.data[c+r*result.cols]:= M.data[c+leftcol+(r+uprow)*M.cols]; end end; end; // Returns one col from M function MOneCol(const M:TDMatrix; col: Longword): TDMatrix; begin result := Mcrop(M, 0, col, M.rows - 1, col) end; // Returns one row from M function MOneRow(const M:TDMatrix; row: Longword): TDMatrix; begin result := Mcrop(M, row, 0, row, M.cols - 1) end; // Returns a matrix with part of matrix M replaced with matrix S function MStamp(const M, S: TDMatrix; drow, dcol: Longword): TDMatrix; var r,c: Longword; begin if (drow + S.rows > M.rows) or (dcol + S.cols > M.cols) then raise Exception.Create(format('Matrix(%d,%d) does not fit im matrix(%d,%d)!',[M.rows, M.cols, S.rows, S.cols])); result := M; SetLength(result.data, result.rows * result.cols); // Make unique for c:=0 to S.cols-1 do begin for r:=0 to S.rows-1 do begin result.data[c+dcol+(r+drow)*result.cols]:= S.data[c+r*S.cols]; end end; end; // Returns a matrix where one column of M with index col was replaced by S function MStampCol(const M, S: TDMatrix; col: Longword): TDMatrix; begin result := MStamp(M, S, 0, col); end; // Returns a matrix where one row of M with index row was replaced by S function MStampRow(const M, S: TDMatrix; row: Longword): TDMatrix; begin result := MStamp(M, S, row, 0); end; // Returns a matrix with the sum of all M columns function MColsum(const M: TDMatrix): TDMatrix; var r,c: Longword; begin result := MZeros(1, M.cols); for c:=0 to M.cols-1 do begin for r:=0 to M.rows-1 do begin result.data[c] := result.data[c] + M.data[c + r * M.cols]; end end; end; // Returns a matrix with the sum of all M rows function MRowsum(const M: TDMatrix): TDMatrix; var r,c: Longword; begin result := MZeros(M.rows, 1); for r:=0 to M.rows-1 do begin for c:=0 to M.cols-1 do begin result.data[r] := result.data[r]+ M.data[c + r * M.cols]; end end; end; // Returns a matrix with the sum of squares for all M columns function MColSquareSum(const M: TDMatrix): TDMatrix; var r,c: Longword; begin result := MZeros(1, M.cols); for c:=0 to M.cols-1 do begin for r:=0 to M.rows-1 do begin result.data[c] := result.data[c] + sqr(M.data[c + r * M.cols]); end end; end; // Returns a matrix with zero mean for all M columns function MColCenter(const M: TDMatrix): TDMatrix; var r,c: Longword; Mean: TDMatrix; begin result := M; if M.rows = 0 then exit; Mean := MZeros(1, M.cols); // Column Sum for c:=0 to M.cols - 1 do begin for r:=0 to M.rows - 1 do begin Mean.data[c] := Mean.data[c] + M.data[c + r * M.cols]; end end; // Column Mean for c:=0 to M.cols - 1 do begin Mean.data[c] := Mean.data[c] / M.rows; end; for c:=0 to M.cols - 1 do begin for r:=0 to M.rows - 1 do begin result.data[c + r * M.cols] := M.data[c + r * M.cols] - Mean.data[c]; end end; end; // Returns a matrix with the max value for each M column function MColMax(const M: TDMatrix): TDMatrix; var r,c: Longword; begin result := MZeros(1, M.cols); for c:=0 to M.cols-1 do begin result.data[c] := M.data[c]; for r:=1 to M.rows-1 do begin result.data[c] := max(result.data[c], M.data[c + r * M.cols]); end end; end; // Returns a matrix with the min value for each M column function MColMin(const M: TDMatrix): TDMatrix; var r,c: Longword; begin result := MZeros(1, M.cols); for c:=0 to M.cols-1 do begin result.data[c] := M.data[c]; for r:=1 to M.rows-1 do begin result.data[c] := min(result.data[c], M.data[c + r * M.cols]); end end; end; //{$R+} initialization end. ./UMain.lrs0000644000175000017500000000052114576573022012701 0ustar anthonyanthony{ This is an automatically generated lazarus resource file } LazarusResources.Add('TFormContourmap','FORMDATA',[ 'TPF0'#15'TFormContourmap'#14'FormContourmap'#4'Left'#3'='#2#6'Height'#3#243#1 +#3'Top'#2'O'#5'Width'#3#251#2#7'Caption'#6#8'Dataview'#8'OnCreate'#7#10'Form' +'Create'#10'LCLVersion'#6#7'1.2.4.0'#7'Visible'#9#0#0 ]); ./playwavepackage.lpk0000744000175000017500000000606314077651774015041 0ustar anthonyanthony ./kmllegendnewatlas.png0000644000175000017500000005172114576573022015365 0ustar anthonyanthonyPNG  IHDRB&FFsBIT|d pHYs.#.#x?vtEXtSoftwarewww.inkscape.org< IDATx}wx;3ۓf7[ͦBG D"](b * .x"REB HI6ɶ$lE'Μ3̜zc@0(9uuusL&fZ1p8"]|TTT`0H!5~syyG j"e4'~E0+kМ8NwX, dqrr,,BH B cdg(5kBHMM IMMT-&&fԫj'Q 8R$;vl56,_ܫ IOO/:tP$@V+ da7a[|^BH~|~j"^߷z@$!D"{n7};w GrSN>Ǐwڵ%>hܹsccbb?g}6e˖TvL$BBa$Gfҷo_jԩK.M)//Xl߾}رcyC^:T*Ñ9ߠ8s yGgϞ%;x<^Çɓ7"F]Ͳl:s^TVV]z~Ν;IQQILL,`&^׉aYm6d!mo8IKK+@E x7Z:!zY͠i͎snBXg͚xw-?ڗ҂eA|>_0 V+"j߿+55_}U뼼=,*j)SlN>}h E]ڷo6nܨ}Ƕ斥JBzCObbb.L:nݺh+={w{_i0H8&ƍ ͜9qʕ}III ymh38iii`,\;1==ϓ'OMKK[[?N"!Bf͚e7#nԕ%uuudϞ=dvPo>b lٲ̙3krss)))sTA?gff?6B~?,Hgԩ5ҪUJW_BHNNN%aA(>|ŋBҥK5BѼ駟z}>_GD=aWy<޸%,-J$$$ ~ϟ4w\;!liiiΜ9C!s{b E+VrjjR xItE P5JΝ⿄N٬i?D"Ds?cX,VWWW$$$tbvϷL&4i-ZpB:4c-[&h4rX,,[LhT111i0/r7jleC$%%}Ȳ B~QYY E*D"BUUU7>/? Bx^F@+& G `0Hb1/>>~ r\>EQ!xx^r!Ү];\.S_NT֮X"x)R\\LV^M jzD6mr 1d˖-ęh4MUm۶_~a{$!˗/i4:k%TUѯVFD= ̃J˲G~2 rĉfB޽{}U+#ή eVӹT*QTy|>_TDz"),!D9кukKq?Lӥ۶m {<w8nalZ~UV׏3fLyN |>̝;W6eʔs4Ms~i9(6܇wѣRP୷޲Z,y@!ˡMxN_CtзoߏyΞ=K{9Ν;Y(pV+"?vl6QS܃'Y9r9s 2v幕KoMwp8*(UVVZ&MNtj}rggYY50|_r^^C u櫪rTA2lOLHHxG >^vX,KM4)ŋ۷|hJR9|EII =Oe=VܹsŸ|rq pψ`ٔ)S6 6mH.0al6 \.S,OZ| bbbЦM]U(jSOX,K\.lݺ۷o&Μ93b (2 CF`4HwΝƗQ[[vVTTt=fq^|ߕ#Pn.sW:~(;pN͚5b1g͎ C(zZЮ];d|{C qg9 'wdA|m$J5m.4!gM(((SVT,+) 8W^^z Ԡ\+P9!!0"~RiZW׏p8@QT3r֭[\.ڼysm -Zo߾欬,ܹS!J4(J}wCb1jH$ߟp%wwرP,cӦMZV[?+SpV*uvsΗgpqx͚5c W^m}ׯ_JbD=Ts˲o6˲iڵ ,]QZZh4Zj-;;:񱱱xxD'|TZZ:NgKe aZ6/J[jryզ۵MaD=TpCT* 4Hx(ǎY"p8[SRRùz7kF2dk0$Ç%$$,0͚53z<?ʲgϞ%h"/0#222V+)**"w&'N4-[Dȳ>kAx<JwDz"5Fms\d6Nrcnh4G:wlڽ{71 d˖-^z!7p,; 33bB![xmk.zIZZYZhaÆY*|pMtrrGyY ^zժoxe {챩 4s8III@ Ph0ry`dҥKy{4-띥^2k֬SNvwܹH$O 5R(S ))i|W !T*?h4o]%%%,f"TyO ~ӧOg\\\f͚Q^{p8f\}ҦMPq*~5,x^Qh#4 _gMDDDDMDDDDMDDq*jD"pY#zj]S_N"LVT!-anOIļ#bP^TYY9P((ʝB)]iiwP޽{S\. 7op8>}_~Ea4?̂4 bcco>-[BRDz }b\ի(++{iA. >GU_t)QPܪmauؑKQ~'_uu4֭[ % G.:tO>h>{FE9n{aJrlVxUUUp86D]u^v(z#P(8|>?d$%%мysvǎzJre˔O}X'IE~nɄE)H$Gy$'AL5jT5kjjjf VIT@I#?N>ã>*իh4x<'҈jݭ[ 'O 'OǏ=sh4z9eE}1›~:i4Q"6Ypm64nL,\0377޽{UUUpG۟AT>% [dv={ܹbcc3v;ի׋w|SbigΜEȑ#Ok׮Dx rL^&rj`h4,`Z<τPPyySRŋ:r/^|k44M~"p.^Xyf;L0pt[fa̘1r]'eYI.]8pU T>|rܹsI٬Ѱ=zn_"WXN ڵΝ;=dvyAFkNeQSSsrD\= \.Wl6[uRRR(:>LfbR n'f B EQ /k̞.| Qۗh0p1]Q4EQ4EQ4Ž$B0Ls>ws|e DZD+ UJJ"7LѰIIIŋTZZ:@t:<H$|t2uuuWUU5GLrr`lvv6 ^݊3|>?YѬONNz<\\\l6~]"hr3g:wo&;wNϏOIIT"9r$?Vݻ7aɒ%q KM6ê,AǎO-FxPVٸqc/Rݹs?\cǎIII;+UVe`&Jz}֭ͧN*Oח3N:r8ϟWܢyQ\\ܰ?~xMe!dʕ+c[h1f/B˖-+KKKgyǎϟ?_=cƌWaZ֛w9. ꪳ튢qqqo6ر#Μ9t8kN?O8h׮eP8졇b  |k<Ϻ#G`Ȑ!\E]PùRXX az@BBBTVV"WF||ݻwkm6>`bb011q7\|Y \.Y.bccP($p8(jrZZ8{7˲]ߟO?aƌzjF"4M$%%i.\_nF~~_~لK[j ӦMl&rl%m(..&ݺu3b%4kXBzO?|'$66vzt6l@L&q8CHNN^ז`0HF#1c]o{&Xu@;FY RF?8jgBwh48e`2>q\{A'F4EQpXr+VZoq-'ˇMD"ZLvsպ]"iEQ4EQ4EQܫXl˲":0nL*sx<^[!|.[Zu<EQ:B|>_>?pHNN%99En)))b:tرc>h  M6t\\>z2D*BW^mK7ov&i\.T*у-De\ہ}^?#U~/*IJKK\VVi߾}>:[ӕ_l6:uTUPP$##Èks֬YC-[3fL9sv;q:E~D(˩XlZbb▽{F!Ee OMM]pv&eeeB… "hP(իBz*@S(juu\\S dI1̄:Y}cl.t:7ѣ/_l6w7< VB .ә1@EFFvqň5B|Cqq68?~3|I 9A߿+EEEţݺu;; 0P(4+Nfʔ)q6 |}n d "?sPӝEIzϴ%O@bqwNn֭C^y eeex~gD}Y̸q,[l Ԝ:{lbYYYg}vͻwٳl<Dr 3?C81:۷+>SG}dt8x<^h IDAT_|~2b|~*z<*F@ hyve\.4mB6^ϏD" 1!!gԩSMMM͋<<0wާH$zg߾}+Wt&L 6l@lLeH$۷ox,0P*h۶CPhعs*<O;P_n݊'xB۳gOfH$c%Ν;&MB={xƍh!t:vqŴid}㡼d0V|>9s( YYY\4PcYǏ(D;s98y:aFBn*j Wx IjcXD &Jcbbϥ(Jp8.8By<^<4E+"|w+7V憯f v{)v3&"h""&"h""&"/T,"{ TBf[% E"\.A~K|bR M*(*`:~}%gY6)TlNsȽHvzرݻǨT*~"j yyNN pٳgTTT𒓓 6,gذaq2 v۷o`0/&Zl)-Kw?P6x=pZl)駟+VW_}u+ۧ~s_ Bp8\{6s;zѺ~!^ӵx&u"lgPVVb|Э[gGD*D/̙sTP Zߪ}Z_ܹs*))I B@.kNt:qCQQQ{vVWWiݺ5/66սH$AD"xzgbgo ڷo%].y4! fm_d޽{d2lD-0cƌZŲֈ8}f4GauAGJ5@ U )JtM>rHȐ!C81c-))iz?~G^?>PtaٳgѼy8p8~BQBqwIT>Զm[d" ,p&''oA#*շ骓v֭BHrryXTNL[oX*f2?lȸ2p@SYY˫Q(#i#Pn< 4jz~+M6m-++یDp8,gਭ #G`ٖ\L&ӴP(lժH&J$^ҥK8yƒx...nS󳳳 RDzf Zi4/zl69. T \ˊp8p8 uV%8 ^`hpU(wޭ.--Jb ?hР x.ky pk43gݩS'y׮]|>${yEEE>U*SݛT*۶mRe8u3gTTT$BB"pyby9j(JC5/v;vl]jnL6m66 FF^z?;# C3f0Hiӯ:m۶3}QɤI6m>}zjQ]]U:n۶EO=d2{U]QQ} R}č_CM^9_aY6#H!E˲!bBW*ЎH$JB ! l\.z{;+墄!K~MmM(((}*@?Tii)f̘Qm2߮Y  aveeebBE[r==cbb)))MӜw}7\SSSm4#t,+S|>_Ea~ &_QSU~M(((^xJ$Rif8N:jkkߨ>I"LP*(j0 viQx<jW}HRTKin˲,~^D 7P2dee!`ڴiݻ7b nݺ8^Xݻi Jt:P(ԏ?|uyyG|>_jZJP(8/^Dݱlٲ⋖%%%:jfZL)iݻ5_~elnns@MM =nܸJ$tM?VզMl6ׯ_!kf͚֭[Fy/jZ2+++O>ݻýHѶ]zsQQDҶmۂ4Mߨŋa>FRl2kEEŨ>+V4 &0 ӇᴽpAb2>X,VTTBL8.J9N݆L&G-Co $geeq0 x^/dee ryP8Bry+p\MHOOǻ(8B)k=wGҼysbZ(Jt|x<'#H(CTB$_|EO>~*HO8Q*o[Vu"|~L9pe@BtiCݻP ;wBEEŤ{e~~~jLJJ£>Zp8 *e:uf3rrr@4x[]]kn^zolBBmmmEǎ ZnF"nB0… 0:.x<9bW GIxp8Fb|L+]u7EӠ+&"h""&"h""&"DHɊ A09po,˲@I09!]JMM]r'$$Z-Haa!^zj "HJJKKKFcRQQ1:Р<55KT>33 QRR=m0;TZmrJJ ]^^2 Օ~ջNv)}~~>JJJBݻw333hѢK,(=k׮mLر#ܭ[7.EQ쬪jr7BX"m۶u|O=dԩ6 {7lؐݻw{|.**j \{$vhKLL,JKK+KNN^0^ٳBrrrJ >>>DHnnnP(yjm۶zg7#Z/Zvml6LP(̲ďry>h4?S_0$999drvvv C:{!|:(`0VWW}ߨ)ōx/^xz1;;{hN:'lCΙ3'kWrm]trXvm_UU;S={椥]ղeK̟?^SSѽaD"|gB4H8a˩S M<7x#~vs?"iJeeFTGK) ñ-]' FQ4EQ4EQ4ŽŖ4݆hqMMR#x|>j- P(Uߍyp- \&!D TDS)}"zvZݪk׮^/|:O>]\RR2=z U*yyy ׺ucjUUՆ?KU*QFŰ,ݷo_ѣG AQ\FsR.+[nMĠĉn<//TKR#Gl:aU:}-j7>|X7rH#G]t5g lbb #G{С@ |cٲe+Wv#Q(K۴iU?b9o& }hAtGˑ),;a5Fښ5k@1 2%%.9^z5HԧwٳgAQԾ@ pnՁ"m۶EQꬬ,ilڴn/r?]p Æ xBfcqqR֘-N^Ձƶ2u&) 7 #r6o| pYrpj?˲`rFF>^ P(@^*\!s͐Je3~^n]C<0(Pp8 BH8. D߹hf|>"k0p8J@7#ns)'HOLL\eɓ'3gμd0zڣl555111`&h?t(rX,s\fyeeej6h)o=P(Ft۷oWZW9)</ ׹sg*QTڷo-++C(Fp^zI?>@$/}z<nO`0r\Iw.CNGh7ORMΝ;GfΜ}j:X:t0~_;Zli={v !9vɺu}/֮]x}:R\\LRRR  qdu 6lX#Ǐ'h""&"h""&"h""{4ݎLD?ԃa2lX,x>~P(i6axW^KՓ&Mk|IvjZE}9F0`9>tP]z%M]Z Ì۷o%!߿a@iFFJk.RSS~PRRҼ!G4 VFxBJ@ $ :l6Z}a4ME~ ƃoV&(J%?@ Pٳ'eپ^ml_09*j0effb͡9222=zXTRRB,Kuuuc`;,+4_=vXv׮])DP(PD"D"B,{zhN^^}طo_pܸq!BBuy?^P(b *Ր!C]r3.(B uX}͚53ٰaC %%@~L&qݻ !d۶mNwMq /3o#^`0t=z''L&dǎBxhQ17߁@໢pļ5gG}^RRr55555*++! (ZhA ]!~Pa\.7Ųeee/H$ꔞm۶xUUU_@bb⮜ba^s8d2 Bb۽:щb.0 H 3bbbF8~p8f&%66W\A8޵Eqmoz={ h$GQc+#F)Rr+Aܫ$eyR7ԍ('&ѨQy0#0<QTʹݫ^{Z닊jƌ |fϞ?<:,,lmXX˭ܤID^^uJHA"<>@pp<99Ϟ=c6ILL_ ___qvvvHKKgϟ7z-9˲x7;[ZZ}T>^S~2Liھxzܹ.===+niiY r˲˃h4iӦy 59>>ի-:%Z}mllh̙^"g#G콽,^ / =Lqw0P(Ve7x(|x<.0@(Nxc !.Eux!* SEr,jFYe)iۏ`5˲Op8~*Fpb'Fpb'Fpb$OZ L3\]]$PwG;A*Ƴ,+`ȷ{BO8sx:d2 'eX,VM*/IJJM0' hfs?1cƜ y2 gΜ[o-h4VU3"##n*WհX,j-Ze2iv NMAՎ-0ݻwwIhvܾSSSUk׮Ϟ=X,zY_HaÆ շӧ-((ڸqѣF(zY j ] zioo48ԩS !MmbcÁ}CCPB@EEE&-^`B^飯2wvv0DXreJTVVflmm|£&o îPB 瓶6RZZJj5}Tpqqygr)W_Y DՒV4MN>Ν;{׬YȸFl6izPL^h%{5k, Pߏ7NHVVVoppptTTB~tL(>=~vB裏l4M/J,Dd&L8_<j՘L&jkkYȲzp<({ƍt:pb7aF߈)buppھ>lV*/9F`` 4P\. fv5՚k^ooV{I* ={h4^MdY6Y"oooC%r9 ˲D ,Y"R(nM;vP Ԣ">;o0޶mۼO?t\aa᱙3gEGGcƍ |$5hmmM[reEyy"''ӧOMKKOo'B H$ZW]]FP/^ommŦM:t:ݣWSG.\pv^O@wwws2"## )J~aaq۶m0|׿U3 |0̯MMM+z"##HLLƋz~-l6mذ!S>vXi`XmZ[yȊGOL0@ Z:%^z/H$q2aùwb؟"dv?Booeҳ6>&SG>%‰Q"%‰Q"%‰x5 8 V h%KE ʧ8lmmmÍ'w4l---NuHRRE"B,˰,{R׿=" !sWX񷴴4\.Ν5LV˸靗/_K/4lާJzgʔ)guu5k׮-2L?,4k֬謬,OFR ????~`#G|Og2"HPYY!qzƍ͛'߷oG#l6ۡ1vu(^Z[[V[[f4sVZ{1 H$ (Çmmm:.pwY1>ׯ_>`08p !,\ }Ogǻs4 ο.ׯw9pk 0sx<0 ///MEQ*b0aرc*@P\wss wᓛk-++kr8g#6 'sTL6755H!'ObY['!!!zTWWM:U"D"ђ~cZQ]]M!⋆xZxlO:R"A뛝y)rLavO׿ 0:b|`/HDA1 SܼΪ&##}rb'Fpb'Fpb'Fpb'Fpb'FpB(*W~/T!=>%8xL'oO,'N3g>htm!Ӄ;_6g$&&><#!شiCA˗/駟FPP@+ϟHˇ~rʕ+XV%ːGFaa\ $۷w8TÇ:F@@~jÌ32n̚5> 餤 2477e˖$44h42qDBQq !Hcc#h4DP>OF#QTCzPb2 #$"" ;I^^@$ &E>Orrrȷ~;pl{{;Q(YcHl޼)))w0 =nܸsaر8ǎüyqN8Xj 9r111x'qaoPTTٌǏC(>3lE łh0J' 1r~}}=klٲW^< ۷o^?X|TTTŋØ1cPQQ1X|>WƥKڵkQYYy_"j5*++QXXF8xx܊>hhh@bb"RSSw^HIIASSӃYYYr ?Ԅn,[ )@}ҥK1c7t9s5MV+@"##ҥKR$~~~o%۷o#0 w܉cWuV–-[PTTPUUsK///'}ǘ8q"2y ??о;w"44X|9 HT&[QVVF,Z -ŋw߅'uAcg/Dž/Q"?0M\IENDB`./unit1.pas0000644000175000017500000055436414576573021012735 0ustar anthonyanthonyunit Unit1; { TODO : - Do sanity check on report interval values in EEPROM.} {$mode objfpc}{$H+} interface uses Classes , SysUtils , FileUtil //, SynMemo , LResources, Forms, Controls, Graphics , Dialogs, StdCtrls, ExtCtrls, ComCtrls //, Grids , DbCtrls, Buttons, Menus , StrUtils, dateutils, math , synaser, synautil, blcksock, tlntsend , LCLType, Spin, fileview, viewlog, logcont, About, SynHighlighterPosition , dlheader //contains the DLHeader code , configbrowser //contains the Header browser window , unitdirectorylist //directory listing , SynEditHighlighter, SynEdit, PrintersDlgs, Printers //, EditBtn //BCButton //, JButton //needs printer4lazarus package installed. , vinfo //version info , convertlogfileunit //dialog for converting dat to csv files , convertoldlogfile //dialog for converting old log to dat files , correct49to56 //Correct MPSAS error from firmware 49-56 , moon //required for Moon calculations , dattimecorrect //Required for tool to correct dat file for time differences , datlocalcorrect //Required for tool to correct dat file for local times , Process,appsettings , dlerase //Data logger erase-all form , dlclock//Data logger clock-setting form , plotter //Plotter view , dattokml //tool , Vector //VectorTab model , comterm //Communication terminal for quick testing of commands , avgtool //Average tool , concattool //Concatenation tool , CloudRemUnit //Cloud Removal / Milky Way position tool , date2dec //.dat to decimal date conversion tool , LazFileUtils //Necessary for filename extraction , LazSysUtils //For NowUTC() , clipbrd , ARPMethod , FilterSunMoonUnit //, sockets //required to calculate the Ethernet broadcast address. {$IFDEF LinuxBluetooth}, Bluetooth, ctypes, Sockets, errors{$ENDIF}//fictitious platform until bluetooth feature works. {$IFDEF Unix}, BaseUnix{$ENDIF} {$IFDEF Windows}, Registry{$ENDIF} ; type { TForm1 } TForm1 = class(TForm) AccSnowOffLinRdg: TEdit; AccSnowLinDiff: TEdit; ARLYThreshold: TTrackBar; AccSnowLEDOnButton: TButton; AccSnowLEDOffButton: TButton; AccSnowLinRq: TButton; LogSettingsButton: TButton; LabeledEdit1: TLabeledEdit; LabelTextButton: TButton; bXPortDefaults: TButton; FinalResetForXPortProgressBar: TProgressBar; FWUSBExistsLabel: TLabel; FirmwareFile: TEdit; FWCounter: TLabel; FWUSBGroup: TGroupBox; FWEthGroup: TGroupBox; ConcatenateMenu: TMenuItem; CloudRemovalMilkyWay: TMenuItem; ConfigBrowserMenuItem: TMenuItem; ARPMethodMenuItem: TMenuItem; FilterSunMoon: TMenuItem; OnlineResources: TMenuItem; OnlineLRmanual: TMenuItem; OnlineLUmanual: TMenuItem; OnlineLEmanual: TMenuItem; OnlineDLmanual: TMenuItem; OnlineVmanual: TMenuItem; OnlineManuals: TMenuItem; StartUpMenuItem: TMenuItem; ResetXPortProgressBar: TProgressBar; SelectFirmwareButton: TButton; FWWaitUSBButton: TButton; ConfLightCalButton: TButton; DLSetSeconds1: TButton; DLTrigMinutes: TEdit; ConfLightCalReq: TShape; ConfDarkCalReq: TShape; AccSnowOnLinRdg: TEdit; Label24: TLabel; DLMutualAccessGroup: TRadioGroup; SnowReadSkipEdit: TEdit; SnowReadingsLabel: TLabel; SnowSampleLabel: TLabel; SnowGroupBox: TGroupBox; Label23: TLabel; SnowLoggingEnableBox: TCheckBox; FirmwareTimer: TTimer; FWStopUSBButton: TButton; LogRecordResult: TSynEdit; TriggerComboBox: TComboBox; DLSetSeconds: TButton; DLTrigSeconds: TEdit; Label22: TLabel; DLSecMinPages: TPageControl; CommOpen: TShape; ACCSnowLEDStatus: TShape; Displayedcdm2: TLabel; DisplayedNELM: TLabel; DisplayedNSU: TLabel; DisplayedReading: TLabel; AccSNOWLEDGroupBox: TGroupBox; HeaderButton: TButton; Label46: TLabel; Label47: TLabel; LogContinuousButton: TButton; LoggingGroup: TGroupBox; LogOneRecordButton: TButton; MeasurementGroup: TGroupBox; DetailsGroup: TGroupBox; DatReconstructLocalTime: TMenuItem; Correction49to56MenuItem: TMenuItem; AverageTool: TMenuItem; datToDecimalDate: TMenuItem; ColourCyclingRadio: TRadioGroup; ReadingListBox: TListBox; ReadingUnits: TLabel; RequestButton: TButton; Button1: TButton; AHTRefreshButton: TButton; ADISEnable: TCheckBox; AHTModelSelect: TComboBox; AHTEnable: TCheckBox; ALEDEnable: TCheckBox; ADISModelSelect: TComboBox; ARLYOn: TButton; ARLYOff: TButton; ARLYModeComboBox: TComboBox; AccRefreshButton: TBitBtn; ConfRecWarning: TLabel; ContCheckGroup: TCheckGroup; CurrentFirmware: TLabeledEdit; GetReportInterval: TBitBtn; TimedReportsGroupBox: TGroupBox; ADISPGroup: TGroupBox; AHTGroup: TGroupBox; ALEDGroup: TGroupBox; ADISBrightnessGroup: TGroupBox; GroupBox5: TGroupBox; ColourControls: TGroupBox; ARLYThresholdValue: TLabel; LockedImage: TImage; IThDes: TEdit; IThE: TEdit; IThERButton: TButton; IThR: TEdit; IThRButton: TButton; ITiDes: TEdit; ITiE: TEdit; ITiERButton: TButton; ITiR: TEdit; ITiRButton: TButton; Label16: TLabel; Label17: TLabel; Label18: TLabel; Label19: TLabel; ARLYModeLabel: TLabel; ARLYThresholdLabel: TLabel; ARLYStatusLabeledEdit: TLabeledEdit; ARLYTValue: TLabeledEdit; ARLYHValue: TLabeledEdit; ARLYTDPValue: TLabeledEdit; LoadingStatus: TLabel; Label28: TLabel; Label36: TLabel; Label37: TLabel; Label38: TLabel; Label39: TLabel; Label40: TLabel; Label41: TLabel; AHTHumidityValue: TLabeledEdit; AHTHumidityStatus: TLabeledEdit; AHTTemperatureValue: TLabeledEdit; LHComboLabel: TLabel; FilterComboLabel: TLabel; LensComboLabel: TLabel; LHCombo: TComboBox; LensCombo: TComboBox; FilterCombo: TComboBox; ColourScalingRadio: TRadioGroup; ColourRadio: TRadioGroup; DatTimeCorrection: TMenuItem; PlotterMenuItem: TMenuItem; CommBusy: TTimer; DLSecSheet: TTabSheet; DLMinSheet: TTabSheet; UnLockedImage: TImage; LockSwitchOptions: TCheckGroup; mnDATtoKML: TMenuItem; OpenDLRMenuItem: TMenuItem; ADISFixed: TRadioButton; ADISAuto: TRadioButton; ALEDMode: TRadioGroup; ADISMode: TRadioGroup; SimFromFile: TButton; AccTab: TTabSheet; ADISFixedBrightness: TTrackBar; VersionButton: TButton; VersionListBox: TListBox; VThresholdSet: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; Button8: TButton; Button9: TButton; ConfDarkCaluxButton: TButton; DLRetrieveButton: TButton; DLClockSettingsButton: TButton; DLThresholdSet: TButton; VThreshold: TEdit; FindBluetooth: TBitBtn; FindUSBMenuItem: TMenuItem; FindEthMenuItem: TMenuItem; ConvertLogFileItem: TMenuItem; ThresholdVibrationGroup: TGroupBox; DeviceClockGroupBox: TGroupBox; DLClockDifference: TLabeledEdit; DLClockDifferenceLabel: TLabel; LogNextRecord10: TButton; LogPreviousRecord10: TButton; GPSResponse: TMemo; MenuItem1: TMenuItem; CmdLineItem: TMenuItem; CommTermMenuItem: TMenuItem; Panel1: TImage; ScrollBox1: TScrollBox; TrickleOffButton: TButton; TrickleOnButton: TButton; VCalButton: TButton; VectorTab: TTabSheet; ToolsMenuItem: TMenuItem; PrintLabelButton: TBitBtn; DLBatteryDurationRecords: TEdit; FirmwareInfoButton: TButton; LogCalButton: TButton; ConfGetCal: TBitBtn; DirectoriesMenuItem: TMenuItem; DLHeaderMenuItem: TMenuItem; Process1: TProcess; RS232Baud: TComboBox; RS232Port: TComboBox; VersionItem: TMenuItem; PrintCalReport: TButton; ConfRdgmpsas: TLabeledEdit; ConfRdgPer: TLabeledEdit; GroupBox1: TGroupBox; GroupBox3: TGroupBox; Label3: TLabel; FinalResetForFirmwareProgressBar: TProgressBar; Label42: TLabel; ConfRdgTemp: TLabeledEdit; Label43: TLabel; Label44: TLabel; Label45: TLabel; ConfTempWarning: TLabel; PrintDialog1: TPrintDialog; Memo1: TMemo; ViewSimMenuItem: TMenuItem; ViewConfigMenuItem: TMenuItem; SimFreqMax: TLabeledEdit; SimPeriodMax: TLabeledEdit; SimResults: TMemo; SimTempDiv: TSpinEdit; SimTempMax: TLabeledEdit; SimTempMin: TLabeledEdit; SimTimingDiv: TSpinEdit; SimVerbose: TCheckBox; StopSimulation: TButton; StartSimulation: TButton; StartResetting: TButton; StopResetting: TButton; GetCalInfoButton: TBitBtn; ConfDarkCalButton: TButton; Button18: TButton; LogCalInfoButton: TButton; Label32: TLabel; Label33: TLabel; Label34: TLabel; Label35: TLabel; LCOSet: TButton; LCTSet: TButton; DCPSet: TButton; DCTSet: TButton; CheckLockButton: TButton; CheckLockResult: TEdit; CommNotebook: TPageControl; DLBatteryCapacityComboBox: TComboBox; DLBatteryDurationTime: TEdit; DLBatteryDurationUntil: TEdit; DLDBSizeProgressBar: TProgressBar; DLDBSizeProgressBarText: TLabel; DLEraseAllButton: TButton; DLLogOneButton: TButton; DLThreshold: TEdit; DCPDes: TEdit; DCTDes: TEdit; LCOAct: TEdit; LCTAct: TEdit; DCPAct: TEdit; DCTAct: TEdit; LCODes: TEdit; LCTDes: TEdit; EstimatedBatteryGroup: TGroupBox; EthernetIP: TEdit; EthernetMAC: TEdit; EthernetPort: TEdit; FindButton: TBitBtn; FoundDevices: TListBox; TriggerGroupBox: TGroupBox; Label1: TLabel; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; Label14: TLabel; Label15: TLabel; Label2: TLabel; Label27: TLabel; Label29: TLabel; CapacityLabel: TLabel; Label31: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; ListBox1: TListBox; LoadFirmware: TButton; LoadFirmwareProgressBar: TProgressBar; LogFirstRecord: TButton; LogLastRecord: TButton; LogNextRecord: TButton; LogPreviousRecord: TButton; MainMenu1: TMainMenu; HelpMenuItem: TMenuItem; AboutItem: TMenuItem; DLSaveDialog: TSaveDialog; DataNoteBook: TPageControl; FileMenuItem: TMenuItem; Simulation: TTabSheet; ViewLogMenuItem: TMenuItem; ViewMenuItem: TMenuItem; OpenLogDialog: TOpenDialog; OpenMenuItem: TMenuItem; QuitItem: TMenuItem; ResetForFirmwareProgressBar: TProgressBar; StorageGroup: TGroupBox; InformationTab: TTabSheet; CalibrationTab: TTabSheet; ReportIntervalTab: TTabSheet; FirmwareTab: TTabSheet; DataLoggingTab: TTabSheet; ConfigurationTab: TTabSheet; GPSTab: TTabSheet; TabEthernet: TTabSheet; TabRS232: TTabSheet; TabUSB: TTabSheet; TroubleshootingTab: TTabSheet; Threshold: TGroupBox; SelectFirmwareDialog: TOpenDialog; StatusBar1: TStatusBar; USBPort: TEdit; USBSerialNumber: TEdit; procedure AboutItemClick(Sender: TObject); procedure AccRefreshButtonClick(Sender: TObject); procedure AccSnowLEDOffButtonClick(Sender: TObject); procedure AccSnowLEDOnButtonClick(Sender: TObject); procedure AccSnowLinRqClick(Sender: TObject); procedure ADISAutoClick(Sender: TObject); procedure ADISEnableChange(Sender: TObject); procedure ADISFixedBrightnessKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); procedure ADISFixedBrightnessMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure ADISFixedClick(Sender: TObject); procedure ADISModeClick(Sender: TObject); procedure ADISModelSelectChange(Sender: TObject); procedure AHTEnableChange(Sender: TObject); procedure AHTModelSelectChange(Sender: TObject); procedure AHTRefreshButtonClick(Sender: TObject); procedure ALEDEnableChange(Sender: TObject); procedure ALEDModeClick(Sender: TObject); procedure ARLYModeComboBoxChange(Sender: TObject); procedure ARLYOffClick(Sender: TObject); procedure ARLYOnClick(Sender: TObject); procedure ARLYThresholdKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); procedure ARLYThresholdMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure CloudRemovalMilkyWayClick(Sender: TObject); procedure CommNotebookChanging(Sender: TObject; var AllowChange: Boolean); procedure FilterSunMoonClick(Sender: TObject); procedure FormActivate(Sender: TObject); procedure ConfigBrowserMenuItemClick(Sender: TObject); procedure FoundDevicesSelectionChange(Sender: TObject; User: boolean); procedure LabelTextButtonClick(Sender: TObject); procedure ConcatenateMenuClick(Sender: TObject); procedure LogSettingsButtonClick(Sender: TObject); procedure ARPMethodMenuItemClick(Sender: TObject); procedure OnlineDLmanualClick(Sender: TObject); procedure OnlineLEmanualClick(Sender: TObject); procedure OnlineLRmanualClick(Sender: TObject); procedure OnlineLUmanualClick(Sender: TObject); procedure OnlineResourcesClick(Sender: TObject); procedure OnlineVmanualClick(Sender: TObject); procedure RS232PortChange(Sender: TObject); procedure SelectFirmwareButtonClick(Sender: TObject); procedure FWWaitUSBButtonClick(Sender: TObject); procedure FirmwareTimerTimer(Sender: TObject); procedure ColourCyclingRadioClick(Sender: TObject); procedure CommBusyTimer(Sender: TObject); procedure CommNotebookChange(Sender: TObject); procedure Correction49to56MenuItemClick(Sender: TObject); procedure datToDecimalDateClick(Sender: TObject); procedure DLMutualAccessGroupClick(Sender: TObject); procedure ColourRadioClick(Sender: TObject); procedure ColourScalingRadioClick(Sender: TObject); procedure ContCheckGroupItemClick(Sender: TObject; Index: integer); procedure FilterComboChange(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure FoundDevicesDblClick(Sender: TObject); procedure LensComboChange(Sender: TObject); procedure LHComboChange(Sender: TObject); procedure LockSwitchOptionsItemClick(Sender: TObject; Index: integer); procedure DatTimeCorrectionClick(Sender: TObject); procedure DatReconstructLocalTimeClick(Sender: TObject); procedure AverageToolMenuItemClick(Sender: TObject); procedure mnDATtoKMLClick(Sender: TObject); procedure OpenDLRMenuItemClick(Sender: TObject); procedure PlotterMenuItemClick(Sender: TObject); procedure RS232BaudChange(Sender: TObject); procedure RS232PortEditingDone(Sender: TObject); procedure SimFromFileClick(Sender: TObject); procedure Button18Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Button9Click(Sender: TObject); procedure CmdLineItemClick(Sender: TObject); procedure CommTermMenuItemClick(Sender: TObject); procedure ConfDarkCaluxButtonClick(Sender: TObject); procedure ConvertLogFileItemClick(Sender: TObject); procedure DLClockSettingsButtonClick(Sender: TObject); procedure DLRetrieveButtonClick(Sender: TObject); procedure DLSetSeconds1Click(Sender: TObject); procedure DLSetSecondsClick(Sender: TObject); procedure DLThresholdSetClick(Sender: TObject); procedure FindBluetoothClick(Sender: TObject); procedure EthernetIPChange(Sender: TObject); procedure EthernetPortChange(Sender: TObject); procedure FindEthMenuItemClick(Sender: TObject); procedure FindUSBMenuItemClick(Sender: TObject); procedure FirmwareInfoButtonClick(Sender: TObject); procedure HeaderButtonClick(Sender: TObject); procedure LogCalButtonClick(Sender: TObject); procedure bXPortDefaultsClick(Sender: TObject); procedure ConfDarkCalButtonClick(Sender: TObject); procedure ConfLightCalButtonClick(Sender: TObject); procedure ConfGetCalClick(Sender: TObject); procedure FormPaint(Sender: TObject); procedure DirectoriesMenuItemClick(Sender: TObject); procedure DLHeaderMenuItemClick(Sender: TObject); procedure LogContinuousButtonClick(Sender: TObject); procedure LogNextRecord10Click(Sender: TObject); procedure LogOneRecordButtonClick(Sender: TObject); procedure LogPreviousRecord10Click(Sender: TObject); procedure MenuItem1Click(Sender: TObject); procedure PrintLabelButtonClick(Sender: TObject); procedure RS232PortDropDown(Sender: TObject); procedure SnowLoggingEnableBoxChange(Sender: TObject); procedure FWStopUSBButtonClick(Sender: TObject); procedure StartUpMenuItemClick(Sender: TObject); procedure TrickleOffButtonClick(Sender: TObject); procedure TrickleOnButtonClick(Sender: TObject); procedure TriggerComboBoxChange(Sender: TObject); procedure TriggerGroupSelectionChanged(Sender: TObject); procedure USBPortChange(Sender: TObject); procedure VCalButtonClick(Sender: TObject); procedure VersionItemClick(Sender: TObject); procedure PrintCalReportClick(Sender: TObject); procedure StartResettingClick(Sender: TObject); procedure DataNoteBookChange(Sender: TObject); procedure DCPSetClick(Sender: TObject); procedure DCTSetClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure GetCalInfoButtonClick(Sender: TObject); procedure DLBatteryCapacityComboBoxChange(Sender: TObject); procedure DLEraseAllButtonClick(Sender: TObject); procedure DLLogOneButtonClick(Sender: TObject); procedure DLThresholdChange(Sender: TObject); procedure DLTrigMinutesChange(Sender: TObject); procedure DLTrigSecondsChange(Sender: TObject); procedure FirmwareFileChange(Sender: TObject); procedure GetReportIntervalClick(Sender: TObject); procedure IThERButtonClick(Sender: TObject); procedure IThRButtonClick(Sender: TObject); procedure ITiERButtonClick(Sender: TObject); procedure ITiRButtonClick(Sender: TObject); procedure LCOSetClick(Sender: TObject); procedure LCTSetClick(Sender: TObject); procedure LogCalInfoButtonClick(Sender: TObject); procedure LogFirstRecordClick(Sender: TObject); procedure LogLastRecordClick(Sender: TObject); procedure LogNextRecordClick(Sender: TObject); procedure LogPreviousRecordClick(Sender: TObject); procedure OpenMenuItemClick(Sender: TObject); procedure QuitItemClick(Sender: TObject); procedure LoadFirmwareClick(Sender: TObject); procedure CheckLockButtonClick(Sender: TObject); procedure DataNotebookPageChanged(Sender: TObject); procedure RequestButtonClick(Sender: TObject); procedure FindButtonClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FoundDevicesClick(Sender: TObject); procedure StartSimulationClick(Sender: TObject); procedure StopResettingClick(Sender: TObject); procedure StopSimulationClick(Sender: TObject); procedure VersionButtonClick(Sender: TObject); procedure ViewConfigMenuItemClick(Sender: TObject); procedure ViewLogMenuItemClick(Sender: TObject); procedure ViewSimMenuItemClick(Sender: TObject); procedure VThresholdChange(Sender: TObject); procedure VThresholdSetClick(Sender: TObject); private { private declarations } public { public declarations } procedure SnowLEDStatus(Status:String); procedure ContCheck(command:string); procedure A1Check(command:string);//Check Accessory 1 (Humidity/temperature) options procedure A2Check(command:string);//Check Accessory 2 (Display) options procedure A3Check(command:string);//Check Accessory 3 (LED blink) options procedure A4Check(command:string);//Check Accessory 4 (Relay) options procedure SelectDevice; procedure FindAllDevices(LimitScope:String=''); procedure findEth; procedure EnableFirmware(); {$IFDEF Darwin} procedure findusbdarwin(); {$ELSE} procedure FindUSB(); {$ENDIF} procedure GetCalInfo(); procedure ParseReportInterval(Response: String); procedure ClearResults(); procedure EstimateBatteryLife; procedure LogRecordGet(RecordNumber:LongInt); procedure GetConfReading(); procedure GetConfCal; function TelnetExpect(expectstring: string; sendstring:string): boolean; function TelnetWaitFor(expectstring: string): boolean; procedure EnableControls(EnableControl:Boolean); function ConnectBT: boolean; procedure DLGetSettings(); procedure LogUpdateLogPointer(); function CheckLockSwitch():Boolean; procedure LockSettingsCheck(command:string); procedure ParseColourScaling(); {$IFDEF Unix} Procedure InstallSigHandler; {$ENDIF} end; FoundDevice = record SerialNumber : String; Connection : String; Hardware : String; Index : Integer; //Index into found list end; const WM_OUTPUT_CHANNEL = $11; WM_INPUT_CHANNEL = $13; model_ADA = 1; //Auroral Detection Alarm model_LELU = 3; //SQM-LE/LU Ethernet or USB model model_C = 4; //Colour model model_LR = 5; //SQM-LR RS232 model model_DL = 6; //SQM-LU-DL Datalogging model and Wifi unit model_GPS = 7; //SQM-LU-DL-GPS GPS model model_GDM = 8; //Magentometer model model_TC = 10; //Temperture Chamber model model_V = 11; //SQM-LU-DL-V Vector model model_HDR = 12; //(reserved for High Dynamic Range I2C sensor model) model_DLS = 13; //DataLogger with Snow LED option. CommBusyLimit = 12; //Timer preset for com busy in 100ms chunks (12=1.2s) var Form1: TForm1; ser: TBlockSerial; GPSser: TBlockSerial; GoToser: TBlockSerial; EthSocket: TTCPBlockSocket; TCPTransferEthSocket: TTCPBlockSocket; FoundDevicesArray: array of FoundDevice; DataLoggingAvailable: Boolean; SelectedInterface: String; SelectedPort: String; SelectedDevicesArray: array of FoundDevice; //Used for multiple defined devices in LogContinuous SelectedIP: String; SelectedModel:Integer; SelectedModelDescription: String; SelectedFeature:String; SelectedProtocol:String; SelectedHasRTC:Boolean; SelectedRTC:String; SelectedUnitSerialNumber: String; SelectedHardwareID: String = ''; SelectedLH, SelectedLens,SelectedFilter: Integer; //Holder,Lens,Filter definitions SelectedTZRegion, SelectedTZLocation: String; NumberOfMultipleDevices: Integer = 0; //default no multiple devices available, and just use the already selected one. PortName: AnsiString; UDMversion: String; RS232PortName: String; RS232PortBaud: Integer; Freshness: boolean = False; //Flag indicates user selected "Freshness" type capture option. FreshReading: Boolean = False; //Flag to indicate fresh status of current reading EthConnected:Boolean = False; //Flag for initial Ethernet connection (checked before closing). SingleDatFile:boolean = False; // Do not roll over to new dat file at end of day. //Colour model SelectedColour, SelectedColourScaling:Integer; ColourUpdating:Boolean=False; //Prevents colour selection radios from self triggering an update. ColourCyclingFlag: Boolean; //Indicates if colour changes after each reading. //Rotational Stage RSser: TBlockSerial; rotstage: Boolean; //DL global variables DLQueue: Array[0..10] of String; DLTrigSeconds,DLTrigMinutes: Integer; DLRefreshed:Boolean; DLCurrentRecord:LongInt; DLCancelRetrieve:Boolean; DLNumRecords:Integer; DLRecFile: TextFile; LogFileName: AnsiString; DLLogOnBatt:Boolean = False; //True=log on battery only, False = log on both OPC and battery connection. //Log Continuous variables LCRecFile: TextFile; LCLoggingUnderway: Boolean = False; SimEnable:Boolean; ViewedLog:TStrings; ViewingLog:Boolean; gettingversion:Boolean; gettingreading:Boolean; ResetContinuous:Boolean; DLLogFileDirectory:String; //Fix for multi-language issues FPointSeparator, FCommaSeparator: TFormatSettings; //For date settings FDateSettings: TFormatSettings; //Telnet send function for SQM-LE tsend: TTelnetSend; //Memo highlighter Highlighter: TSynPositionHighlighter; //Configuration variables ConfCalmpsas: Real; ConfCalLightTemp: Real; ConfCalPeriod: Real; ConfCalDarkTemp: Real; LHFUpdating:Boolean=False; //Prevents LHF comboboxes from self triggering an update. //Printer variable PrintingLine: Integer; CalPrint: Boolean; FixedFont:String; //Open file filter OpenFileFilter: String = 'All files|*.*|Comma Separated Variables|*.csv|Calibration logs|*.cal|UDM usage log|*.log|Text files|*.txt'; //Firmware settings FirmwareFilter: String='All files|*.hex|SQM-LE/LU|SQMLE-?-3-*.hex|DL (Datalogger)|SQM-LU-DL-?-6-??.hex|V (Vector)|SQM-LU-DL-V*.hex|LR (RS232)|SQM-LR*.hex|DL-Snow|SQM-LU-DLS-?-13-??.hex|GDM|MAG*.hex|C (Color)|SQMLE-?-4-*.hex'; FirmwareFilterIndex:Integer = 0; FirmwareFilename : AnsiString; FirmwareDirectory:String; FirmwareCounter:Integer = 0; FirmwareState: Integer = 0; //0=start, //Plotter settings PlotFileFilter: String; PlotFileDirectory: String; SelectedColourScheme: String; //Accessory settings A1Enabled:Boolean = False; //Accessory 1 (external Humidity/Temperature sensor) SnowLoggingEnabled:Boolean = False; AccSnowLEDState:Boolean = False; AccSnowLEDOnReading:Integer =0; AccSnowLEDOffReading:Integer=0; AccSnowLEDDifference:Integer=0; //Position MyLatitude: extended = 0.0; //Latitude MyLongitude: extended = 0.0; //Longitude MyElevation: extended = 0.0; //Elevation //Initial window loading InitialLoad: Boolean = True; StartLogging:Boolean = False; StartUpSettings:String; StartupParamcount:Integer; StartupParamStrings: array of String; {Communications busy timer counter. Reaching the CommBusyLimit will close the comm port.} CommBusyTime: Integer = 0; CommOpened: Boolean = False; {Created objects indicator} ViewedLogCreated:Boolean = False; serCreated:Boolean = False; GPSserCreated:Boolean = False; GoToserCreated:Boolean = False; ParameterValueCreated:Boolean = False; {$IFDEF LinuxBluetooth} //Bluetooth variables bdaddr: bdaddr_t; OutSocket: cint; InSocket: cint; {$ENDIF Linux} {UDM log file} UDMLogFileName:String; UDMLogFile: TextFile; {Serial number specific log file} SNLogFileName:String; SNLogFile:TextFile; {$IFDEF Linux} //Bluetooth functions function c_close(fd: cint): cint; external name 'close'; {$ENDIF Linux} function LimitInteger(Source:Integer; Minimum:Integer; Maximum:Integer):Integer; function RemoveMultiSlash(Input: String): String; procedure LHFCheck(command:string); function Darkness2MPSASString(Darkness:Float):String; function Darkness2CDM2(Darkness:Float):Float; function Darkness2CDM2String(Darkness:Float):String; function Darkness2MCDM2(Darkness:Float):Float; function Darkness2MCDM2String(Darkness:Float):String; function Darkness2NELM(Darkness:Float):Float; function Darkness2NELMString(Darkness:Float):String; function Darkness2NSU(Darkness:Float):Float; function Darkness2NSUString(Darkness:Float):String; implementation uses header_utils, dlretrieve, textfileviewer, startupoptions, LCLIntf; procedure TForm1.FormCreate(Sender: TObject); var Info:TVersionInfo; UDMLogDirectory:String; begin {Create new log file named udm.log} { start new one at beginning of session (overwrites last session) } UDMLogDirectory:=RemoveMultiSlash(appsettings.LogsDirectory + DirectorySeparator); {Check for log dirfectory exists} if not DirectoryExists(UDMLogDirectory) then begin MessageDlg ('Log directory does not exist:'+sLineBreak + UDMLogDirectory +sLineBreak + 'Resetting to default.', mtConfirmation,[mbOK],0); {Reset} appsettings.LogsDirectoryReset(); {Save setting} vConfigurations.WriteString('Directories','LogsDirectory',appsettings.LogsDirectory); end; UDMLogFileName:=RemoveMultiSlash(appsettings.LogsDirectory + DirectorySeparator)+'udm.log'; AssignFile(UDMLogFile,UDMLogFileName); Rewrite(UDMLogFile); // File is opened for write, and emptied. //View->Log has not been created yet and does not contain the folloing message, but the log file does. WriteLn(UDMLogFile,Format('%s : UDM Started. Local time: %s',[FormatDateTime('yyyy-mm-dd hh:nn:ss.zzz',NowUTC()) ,FormatDateTime('yyyy-mm-dd hh:nn:ss',Now()) ])); //Write first line to empty file. Flush(UDMLogFile); System.Close(UDMLogFile); //Allow other instances to write to file. //try // AssignFile(UDMLogFile,UDMLogFileName); // Rewrite(UDMLogFile); //Open file for writing //except // MessageDlg ('Log file does not exist:'+sLineBreak + UDMLogFileName, mtConfirmation,[mbOK],0); // Halt; //end; KMLColorsCleardarksky:= TKMLColors.create( 'ff000000' , 'ff1a1a1a' , 'ff363636' , 'ff841400' , 'fff92600' , 'ff148139' , 'ff26f46c' , 'ff1eaeb3' , 'ff2bfaff' , 'ff1560be' , 'ff1a75e9' , 'ff0e22ab' , 'ff132ee2' , 'ffb1b2b1' , 'fffafafa' ); KMLValuesCleardarksky:= TKMLValues.create( 21.99 , 21.93 , 21.89 , 21.81 , 21.69 , 21.51 , 21.25 , 20.91 , 20.49 , 20.02 , 19.50 , 18.95 , 18.38 , 17.80 , 0 ); { Documentation and example: Colours for the New Atlas Darkness KML_colour_value > 21.97 ff000000 > 21.96 ff333333 > 21.94 ff808080 > 21.90 ff690000 > 21.82 ffff0000 > 21.68 ffff4040 > 21.45 ff387c25 > 21.09 ff259699 > 20.60 ff40ffff > 20.01 ff0baff9 > 19.35 ff0000ff > 18.65 ff8d0ac4 > 17.93 ffce91e9 > 0 ffffffff For example, if the darkenss is greater than 21.90 and less than or eaual to 21.94, then the KML colour will be ff690000 The KMl colouring is defined as: hexBinary value: aabbggrr aa=Alpha (transparency) The original values (in mcd/m2) and colors from: The new world atlas of artificial night sky brightness http://advances.sciencemag.org/content/advances/2/6/e1600377.full.pdf Page 9 Use conversion formula from: http://unihedron.com/projects/darksky/magconv.php [value in mag/arcsec2] = Log10([value in cd/m2]/108000)/-0.4 For example: 0.176mcd/m2=.000176cd/m2 then get mpsas See spreadsheet colorlegend.ods for conversions. Use a screen color converter to pull RGB colors from PDF. } //calculated from new sky atlas conversion from mcd/m^2 (22 based) to mpsas. KMLColorsNewatlas:= TKMLColors.create( 'ff000000' , 'ff333333' , 'ff808080' , 'ff690000' , 'ffff0000' , 'ffff4040' , 'ff387c25' , 'ff259699' , 'ff40ffff' , 'ff0baff9' , 'ff0000ff' , 'ff8d0ac4' , 'ffce91e9' , 'ffffffff' ); KMLValuesNewatlas:= TKMLValues.create( 21.97 , 21.96 , 21.94 , 21.90 , 21.82 , 21.68 , 21.45 , 21.09 , 20.60 , 20.01 , 19.35 , 18.65 , 17.93 , 0 ); // InstallSigHandler; // FpKill(GetProcessID,SIGUSR1); //test sunrise { TODO : sunrise test } // Sun_Rise(Now(); latitude, longitude:extended):TDateTime; // Format settings to convert a string to a float FPointSeparator := DefaultFormatSettings; FPointSeparator.DecimalSeparator := '.'; FPointSeparator.ThousandSeparator := '#';// disable the thousand separator FCommaSeparator := DefaultFormatSettings; FCommaSeparator.DecimalSeparator := ','; FCommaSeparator.ThousandSeparator := '#';// disable the thousand separator {$ifdef MSWindows} // ce + win32 + win64, delphi compat {$endif} {$ifdef Windows} // ce + win32 + win64, more logical. FixedFont:='Consolas'; //Courier was too wide for the Configuration panel. {$endif} {$ifdef Linux} //Fixed font chose to properly display the zero character FixedFont:='Monospace'; {$endif} {$ifdef Darwin} FixedFont:='Monaco'; {$endif} ser:=TBlockSerial.Create; serCreated:=True; RS232PortBaud:=StrToIntDef(RS232Baud.Text,115200); RS232Portname:=RS232Port.Text; GPSser:=TBlockSerial.Create; GPSserCreated:=True; GoToser:=TBlockSerial.Create; GoToserCreated:=True; gettingversion:=False; SelectedModel:=0; //default: no selected model SelectedUnitSerialNumber:=''; ViewedLog:=TStringList.Create; ViewedLogCreated:=True; ViewingLog:=False; //Datalogger initialzation DLQueue[0]:='';// No commands cued up DLRefreshed:=False; DLCancelRetrieve:=False; //Hide normally unused pages DataNoteBook.Page[4].TabVisible:=False; //Datalogging page DataNoteBook.Page[6].TabVisible:=False; //GPS page DataNoteBook.Page[9].TabVisible:=False; //Vector page //Hide unfinshed pages DataNoteBook.Page[7].TabVisible:=False; //Troubleshooting //CommNoteBook.Page[2].TabVisible:=False; //RS232 //View menu-selected pages // defaults are checked True/False in object properties for menu items DataNoteBook.Page[5].TabVisible:=ViewConfigMenuItem.Checked; //Configuration DataNoteBook.Page[8].TabVisible:=ViewSimMenuItem.Checked; //Simulation //Default notebook pages DataNoteBook.PageIndex:=0; CommNotebook.PageIndex:=0; SelectedInterface:='USB'; //Simulation defaults SimPeriodMax.Text:=Format('%d',[3]);//Seconds (1 - 300) SimFreqMax.Text:=Format('%d',[1]); //Hz (1 - 100000) SimTimingDiv.Value:=0; SimTempMin.Text:=Format('%d',[244]); //Lower limit 0 SimTempMax.Text:=Format('%d',[246]); //Upper limit 1024?? SimTempDiv.Value:=0; SimEnable:=False; //Set up all fixed font widgets {$ifdef Darwin} {Allow Mac Cocoa GUI to use other fonts.} FoundDevices.Style:= lbOwnerDrawFixed; VersionListBox.Style:= lbOwnerDrawFixed; ReadingListBox.Style:= lbOwnerDrawFixed; {$endif} FoundDevices.Font.Name:=FixedFont; VersionListBox.Font.Name:=FixedFont; ReadingListBox.Font.Name:=FixedFont; USBSerialNumber.Font.Name:=FixedFont; USBPort.Font.Name:=FixedFont; EthernetMAC.Font.Name:=FixedFont; EthernetIP.Font.Name:=FixedFont; EthernetPort.Font.Name:=FixedFont; RS232Port.Font.Name:=FixedFont; RS232Baud.Font.Name:=FixedFont; LogRecordResult.Font.Name:=FixedFont; DLTrigSeconds.Font.Name:=FixedFont; DLTrigMinutes.Font.Name:=FixedFont; DLThreshold.Font.Name:=FixedFont; LCODes.Font.Name:=FixedFont; LCTDes.Font.Name:=FixedFont; DCPDes.Font.Name:=FixedFont; DCTDes.Font.Name:=FixedFont; LCOAct.Font.Name:=FixedFont; LCTAct.Font.Name:=FixedFont; DCPAct.Font.Name:=FixedFont; DCTAct.Font.Name:=FixedFont; ITiDes.Font.Name:=FixedFont; ITiE.Font.Name:=FixedFont; ITiR.Font.Name:=FixedFont; IThDes.Font.Name:=FixedFont; IThE.Font.Name:=FixedFont; IThR.Font.Name:=FixedFont; //Title: Info := TVersionInfo.Create; Info.Load(HINSTANCE); UDMversion:=IntToStr(Info.FixedInfo.FileVersion[0])+'.'+ IntToStr(Info.FixedInfo.FileVersion[1])+'.'+ IntToStr(Info.FixedInfo.FileVersion[2])+'.'+ IntToStr(Info.FixedInfo.FileVersion[3]); Form1.Caption:=Form1.Caption+' ('+UDMversion+')'; Info.Free; //Configuration page CalPrint:=False; Panel1.Canvas.Font.Name := FixedFont;// FixedFont Defined earlier. Was 'Arial' {$ifdef Darwin} Panel1.Canvas.Font.Size := 12; //was 8, but MAC highDPI looked like 3x5pixel {$else} Panel1.Canvas.Font.Size := 8; //was 10, 8 for fitting all text on screen {$endif} //Printing only tested in Windows and Linux, // MacOSX has paper sizing issues: {$if defined(MSWindows) or defined(Linux)} PrintCalReport.Visible:=True; PrintLabelButton.Visible:=True; {$ifend} //VectorTab tab //****vector_utils.startup(); //Paramaters from command line ParameterValue := TStringList.Create; ParameterValueCreated:=True; FDateSettings:= DefaultFormatSettings; FDateSettings.DateSeparator:='-'; FDateSettings.TimeSeparator:=':'; FDateSettings.ShortDateFormat:='yyyy-mm-dd'; FDateSettings.ShortTimeFormat:='HH:MM:SS'; //Update GUI (last item in this section) Application.ProcessMessages; end; function Darkness2MPSASString(Darkness:Float):String; begin if Darkness=0 then Darkness2MPSASString:='--' else Darkness2MPSASString:=FormatFloat('#0.00', Darkness, FPointSeparator); end; function Darkness2CDM2(Darkness:Float):Float; begin Darkness2CDM2:=10.8e4 * power(10, (-0.4 * Darkness)); end; function Darkness2CDM2String(Darkness:Float):String; begin if Darkness=0 then Darkness2CDM2String:='--' else Darkness2CDM2String:=FloatToStrf(Darkness2CDM2(Darkness),ffExponent,4,2,FPointSeparator); end; function Darkness2MCDM2(Darkness:Float):Float; begin Darkness2MCDM2:=10.8e7 * power(10, (-0.4 * Darkness)); end; function Darkness2MCDM2String(Darkness:Float):String; begin if Darkness=0 then Darkness2MCDM2String:='--' else Darkness2MCDM2String:=Format('%0.5f',[Darkness2MCDM2(Darkness)]); end; function Darkness2NELM(Darkness:Float):Float; begin Darkness2NELM:=7.93 - 5 * log10(power(10, (4.316 - (Darkness / 5))) + 1); end; function Darkness2NELMString(Darkness:Float):String; begin if Darkness=0 then Darkness2NELMString:='--' else Darkness2NELMString:=Format('%1.2f',[Darkness2NELM(Darkness)],FPointSeparator); end; function Darkness2NSU(Darkness:Float):Float; begin Darkness2NSU:=power(10, (0.4 * (21.6 - Darkness))); end; function Darkness2NSUString(Darkness:Float):String; begin if Darkness=0 then Darkness2NSUString:='--' else Darkness2NSUString:=Format('%1.2f',[Darkness2NSU(Darkness)],FPointSeparator); end; procedure TForm1.ClearResults(); const {$WRITEABLECONST ON} IsInside:Boolean=False; {$WRITEABLECONST OFF} begin if IsInSide then begin //StatusMessage('Is inside ClearResults already.'); Exit; end; IsInside:=True; try {Information tab} VersionListBox.Items.Clear; ReadingListBox.Items.Clear; //HeaderButton.Enabled:=False; DisplayedReading.Caption:=''; DisplayedNELM.Caption:=''; Displayedcdm2.Caption:=''; DisplayedNSU.Caption:=''; SelectedModel:=0; SelectedFeature:='0'; SelectedProtocol:='0'; SelectedUnitSerialNumber:='0'; SelectedModelDescription:='unknown'; ResetForFirmwareProgressBar.Position:=0; LoadFirmwareProgressBar.Position:=0; FinalResetForFirmwareProgressBar.Position:=0; StatusMessage('Press the Version or Reading button to see results from the selected device.'); DLRefreshed:=False; LogRecordResult.Clear; ITiE.Text:=''; ITiR.Text:=''; IThE.Text:=''; IThR.Text:=''; LCOAct.Text:=''; LCTAct.Text:=''; DCPAct.Text:=''; DCTAct.Text:=''; ClearLockVisibility(); USBSerialNumber.Text:=''; USBPort.Text:=''; EthernetMAC.Text:=''; EthernetIP.Text:=''; EthernetPort.Text:=''; //RS232Port.Text:=''; //RS232Baud.Text:=''; //Configuration page ConfRdgmpsas.Caption:=''; ConfRdgPer.Caption:=''; ConfRdgTemp.Caption:=''; ConfCalmpsas:=0; ConfCalLightTemp:=0; ConfCalPeriod:=0; ConfCalDarkTemp:=0; Form1.Panel1.Canvas.Clear; LHCombo.ItemIndex:=-1; SelectedLH:=-1; LensCombo.ItemIndex:=-1; SelectedLens:=-1; FilterCombo.ItemIndex:=-1; SelectedFilter:=-1; //Firmware page ResetXPortProgressBar.Position:=0; FinalResetForXPortProgressBar.Position:=0; bXPortDefaults.Enabled:=False; { $SCLOR->Contents(""); $SLCTR->Contents(""); $SDCPR->Contents(""); $SDCTR->Contents(""); $StatusText->Contents(""); $PortEntry->configure(-background=>$PortEntryBackground); $EthIPEntry->configure(-background=>$EthIPEntryBackground); $EthPortEntry->configure(-background=>$EthPortEntryBackground); $CheckLockResult->Contents(""); $LRTCTime->Contents(""); $LogMode=-1; $LIThresholdE->delete(0,'end'); $LISecondsE->delete(0,'end'); $LIMinutesE->delete(0,'end'); } finally IsInside:=False; end; end; //multicast procedure procedure TForm1.findEth; var sndsock:TUDPBlockSocket; buf:string; requeststring:Longword; i:Integer; MACfound: Boolean = False; MACstring, MACcheck:string; MACstrings: array of String; IPstring,IPBroadcast:String; IPstrings:TStringList; pieces:TStringList; IPBroadcastStrings:TStringList; begin SetLength(MACstrings,1); MACstrings[0]:=''; pieces := TStringList.Create; pieces.Delimiter := '.'; IPstrings:=TStringList.Create; StatusMessage('Looking for Ethernet connections on this machine.'); IPBroadcastStrings:=TStringList.Create; sndsock:=TUDPBlockSocket.Create; sndsock.GetLocalSinIP; sndsock.GetSinLocal; try sndsock.ResolveNameToIP(sndsock.LocalName,IPstrings); for IPstring in IPstrings do begin if not(AnsiContainsText(IPstring,':')) then //Ignore with IPV6 addresses if AnsiStartsStr('127.',IPstring) or AnsiStartsStr('169.254.',IPstring) then begin IPBroadcast:='255.255.255.255'; StatusMessage('This machine uses IP: '+IPstring + ' , will use a broadcast to: ' + IPBroadcast); IPBroadcastStrings.Add(IPBroadcast); end else begin pieces.DelimitedText:=IPstring; IPBroadcast:=pieces.Strings[0]+'.'+pieces.Strings[1]+'.'+pieces.Strings[2]+'.255'; //Triple subnet. was this a long time ago. StatusMessage('This machine uses IP: ' + IPstring + ' , will use a multicast to: ' + IPBroadcast); IPBroadcastStrings.Add(IPBroadcast); IPBroadcast:='255.255.255.255'; //no subnet. fix for double octet subnet mask (was this before 20230426) StatusMessage('Also doing full broadcast to fix for double octet subnet mask, using multicast to: ' + IPBroadcast); IPBroadcastStrings.Add(IPBroadcast); end; end; sndsock.CloseSocket; finally sndsock.free; if Assigned(pieces) then FreeAndNil(pieces); if Assigned(IPstrings) then FreeAndNil(IPstrings); end; try for IPBroadcast in IPBroadcastStrings do begin requeststring:=246; //246 = f6 is the request to the Lantronix XPort sndsock:=TUDPBlockSocket.Create; try sndsock.EnableBroadcast(True); sndsock.connect(IPBroadcast,'30718'); sndsock.SendInteger(SwapEndian(requeststring)); repeat buf:=sndsock.RecvPacket(2000); //writeln('Response length: '+inttostr(Length(buf)));//debug //for i:=1 to Length(buf) do write(IntToHex(ord(buf[i]),2)+' ');//debug // writeln(Length(buf)); //debug to show numberof bytes received { Expecting 30 byte response starting with: 000000f7 from Lantronix XPort 000001f7 from ESP32 model} //if ((Length(buf) = 30) and buf[3]=)then begin if ((Length(buf) = 30) and (byte(buf[4])=$f7)) then begin //writeln(IntToHex(ord(buf[4]),2)); //debug length of UDP response //if (byte(buf[4])=$f7) then writeln('equals f7'); MACstring:=''; //Clear MAC address for populating {grab MACstring} for i:=25 to 30 do MACstring:=MACstring+IntToHex(ord(buf[i]),2); { Check for duplicate Ethernet devices } MACfound:=False; if high(MACstrings)>0 then begin for MACcheck in MACstrings do begin if MACstring=MACcheck then MACfound:=True; end; end; if not MACfound then begin { Save found device} with FoundDevicesArray[high(FoundDevicesArray)] do begin SerialNumber:=MACstring;//MAC address Connection:=sndsock.GetRemoteSinIP; if (byte(buf[3])=$0) then Hardware:='Eth' else if (byte(buf[3])=$1) then Hardware:='WiFi' else Hardware:='????'; StatusMessage('Found: '+ SerialNumber + ' ' + Connection); end; SetLength(FoundDevicesArray,high(FoundDevicesArray)+2); {Add MACstring to array of found MACstrings} MACstrings[high(MACstrings)]:=MACstring; SetLength(MACstrings,high(MACstrings)+2); end; end; until (Length(buf) = 0); sndsock.CloseSocket; finally sndsock.free; end; end; finally if Assigned(IPBroadcastStrings) then FreeAndNil(IPBroadcastStrings); end; StatusMessage('Finished looking for Ethernet devices.'); end; {$IFDEF Darwin} procedure TForm1.findusbdarwin; Var Info : TSearchRec; Count : Longint; USBDeviceSerial: String; LinuxDeviceFile: String; Begin Count:=0; If FindFirst ('/dev/tty.usbserial*',faAnyFile ,Info)=0 then begin Repeat Inc(Count); With Info do begin Writeln (Name:40,Size:15); USBDeviceSerial:=AnsiMidStr(Name,15,8); LinuxDeviceFile:='/dev/' + Name; if (length(USBDeviceSerial)>0) then begin with FoundDevicesArray[high(FoundDevicesArray)] do begin SerialNumber:=USBDeviceSerial; Connection:=LinuxDeviceFile; Hardware:='USB'; end; SetLength(FoundDevicesArray,high(FoundDevicesArray)+2); end; end; Until FindNext(info)<>0; end; FindClose(Info); StatusMessage('Finished USB search. Found '+IntToStr(Count)+' matches'); End; {$ENDIF} {$IFDEF Windows} procedure TForm1.FindUSB(); var usbdevname,usbserial: String; pieces: TStringList; kAvailable: TStringlist; kConnected: TStringlist; i,foundindex: Integer; reg,reg2,reg3,reg4: TRegistry; Regkey: String; //RegCOMkey: String; keys: TStringlist; FTDIDriverName,FTDIDriverVersion:String; begin //Note: The serialnumber gets garbled if FTDI's instructions to // "Ignore Hardware Serial Number" is installed. // all serial numbers then look like this: 5&1846f4dd&0&2 kAvailable := TStringList.Create; StatusMessage('FindUSB: Checking for Windows USB attached devices.'); kConnected := TStringList.Create; // Find FTDI USB device on a Windows machine Regkey:='HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\'; //RegCOMkey:='HKEY_LOCAL_MACHINE\\HARDWARE\\DEVICEMAP\\SERIALCOMM\\'; //Check for all connected serial commuication devices keys := TStringList.Create; reg := TRegistry.Create; reg.RootKey := HKEY_LOCAL_MACHINE; if reg.KeyExists('HARDWARE\DEVICEMAP\SERIALCOMM\') then begin reg.OpenKeyReadOnly('HARDWARE\DEVICEMAP\SERIALCOMM\'); StatusMessage('FindUSB: At least one COMM port is active.'); reg.GetValueNames(keys); for i := 0 to keys.Count-1 do begin kConnected.Add(reg.ReadString(keys.ValueFromIndex[i])); StatusMessage('FindUSB: Connected device = "'+reg.ReadString(keys.ValueFromIndex[i])+'"'); end; //Form2.Memo1.Lines.AddStrings(keys); end else StatusMessage('FindUSB: No COMM ports are active.'); reg.Free; // Check all installed FTDI drivers. pieces := TStringList.Create; pieces.Delimiter := '+'; keys := TStringList.Create; StatusMessage('FindUSB: '+format ('Checking Registry for: %s ...',[Regkey])); reg := TRegistry.Create; reg.RootKey := HKEY_LOCAL_MACHINE; if reg.KeyExists('SYSTEM\CurrentControlSet\Enum\FTDIBUS\') then begin reg.OpenKeyReadOnly('SYSTEM\CurrentControlSet\Enum\FTDIBUS\'); StatusMessage('FindUSB: FTDI driver has been installed at least once.'); reg.GetKeyNames(keys); StatusMessage('FindUSB: FTDI driver has been installed '+inttostr(keys.Count)+' times.'); for i := 0 to keys.Count-1 do begin pieces.DelimitedText := keys[i]; reg2 := TRegistry.Create; reg2.RootKey := HKEY_LOCAL_MACHINE; reg2.OpenKeyReadOnly('SYSTEM\CurrentControlSet\Enum\FTDIBUS\'+keys[i]+'\0000\Device Parameters\'); StatusMessage('FindUSB: Checking registry key = "'+keys[i]+'" , PortName = "'+reg2.ReadString('PortName')+'"'); kConnected.Sort; kConnected.Sorted:=True; if kConnected.Find(reg2.ReadString('PortName'),foundindex) then begin StatusMessage('FindUSB: FTDIBUS entry matched: "'+keys[i]+'" has PortName "'+reg2.ReadString('PortName')+'"'); if pieces.Count>2 then usbserial:=AnsiLeftStr(pieces.Strings[2], 8) else usbserial:=AnsiLeftStr('NoSerial', 8); usbdevname:=kConnected[foundindex]; with FoundDevicesArray[high(FoundDevicesArray)] do begin SerialNumber:=usbserial; Connection:=usbdevname; Hardware:='USB'; end; SetLength(FoundDevicesArray,high(FoundDevicesArray)+2); kAvailable.Add(kConnected[foundindex]+' : '+usbserial); reg3:= TRegistry.Create; reg3.RootKey := HKEY_LOCAL_MACHINE; reg4:= TRegistry.Create; reg4.RootKey := HKEY_LOCAL_MACHINE; if reg3.KeyExists('SYSTEM\CurrentControlSet\Enum\USB\VID_0403&PID_6001\'+ FoundDevicesArray[high(FoundDevicesArray)].SerialNumber) then begin //StatusMessage('FTDI driver is being found.'); reg3.OpenKeyReadOnly('SYSTEM\CurrentControlSet\Enum\USB\VID_0403&PID_6001\'+ usbserial); //StatusMessage('Serialnumber= '+usbserial); FTDIDriverName:=reg3.ReadString('Driver'); //StatusMessage('Driver= '+FTDIDriverName); reg4.OpenKeyReadOnly('SYSTEM\CurrentControlSet\Control\Class\'+FTDIDriverName); //HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{drivername\0040 . DriverVersion REG_SZ StatusMessage('FindUSB: ProviderName = '+reg4.ReadString('ProviderName')); StatusMessage('FindUSB: DriverDesc = '+reg4.ReadString('DriverDesc')); FTDIDriverVersion:=reg4.ReadString('DriverVersion'); StatusMessage('FindUSB: DriverVersion = '+FTDIDriverVersion); end else StatusMessage('FindUSB: FTDI driver not found.'); reg3.Free; end; reg2.Free; end; end else StatusMessage('FindUSB: FTDI driver has never been installed.'); //HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_0403&PID_6001\FTF4FO08.Driver= {drivername\0040 REG_SZ //HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Class\{drivername\0040 . DriverVersion REG_SZ reg.Free; keys.Free; end; {$ENDIF Windows} {$IFDEF Linux} //Examples: //ls -al /dev/serial/by-id/ //lrwxrwxrwx 1 root root 13 May 16 10:09 usb-FTDI_MM232R_USB_MODULE_FTF4FO08-if00-port0 -> ../../ttyUSB1 //lrwxrwxrwx 1 root root 13 May 16 10:09 usb-FTDI_MM232R_USB_MODULE_FTFTX9UT-if00-port0 -> ../../ttyUSB2 //lrwxrwxrwx 1 root root 13 Jan 10 15:55 usb-FTDI_USB__-__Serial_Cable_FTSC89JG-if00-port0 -> ../../ttyUSB2 procedure TForm1.FindUSB(); const USBDevicePath = '/dev/serial/by-id/'; Var Info : TSearchRec; Count : Longint; USBDeviceSerial: String; LinuxDeviceFile: String; pieces:TStringList; Begin pieces := TStringList.Create; pieces.Delimiter := '-'; StatusMessage('FindUSB: Searching for Linux USB devices ...'); //Troubleshooting information Count:=0; try StatusMessage('FindUSB: Searching here : '+USBDevicePath+'usb-FTDI_*'); //Troubleshooting information If FindFirst (USBDevicePath+'usb-FTDI_*',faAnyFile ,Info)=0 then begin Repeat Inc(Count); With Info do begin //Writeln (Name:40,Size:15); pieces.DelimitedText:=Name; StatusMessage('FindUSB: Found this : '+Name); //Troubleshooting information USBDeviceSerial:=AnsiRightStr(pieces.Strings[pieces.Count-3],8); //USBDeviceSerial:=AnsiMidStr(Name,28,8); LinuxDeviceFile:=ExpandFileName(USBDevicePath+fpReadLink(USBDevicePath+Name)); with FoundDevicesArray[high(FoundDevicesArray)] do begin SerialNumber:=USBDeviceSerial; Connection:=LinuxDeviceFile; Hardware:='USB'; end; SetLength(FoundDevicesArray,high(FoundDevicesArray)+2); end; Until FindNext(info)<>0; end; FindClose(Info); StatusMessage('FindUSB: Finished Linux USB search. Found '+IntToStr(Count)+' matches'); finally end; if Assigned(pieces) then FreeAndNil(pieces); End; {$ENDIF Linux} {$IFDEF OldLinux} //This code no longer works because udevadm was made accessible only by root. procedure TForm1.FindUSB(); const READ_BYTES = 2048; var usbdevname,usbserial: String; pieces: TStringList; kAvailable: TStringlist; OutputLines: TStringList; MemStream: TMemoryStream; OurProcess: TProcess; NumBytes: LongInt; BytesRead: LongInt; LookForState: Integer; begin kAvailable := TStringList.Create; StatusMessage('Checking for USB attached devices.'); // A temp Memorystream is used to buffer the output MemStream := TMemoryStream.Create; BytesRead := 0; pieces := TStringList.Create; pieces.Delimiter := '='; OurProcess := TProcess.Create(nil); OurProcess.Executable := 'udevadm'; OurProcess.Parameters.Add('info'); OurProcess.Parameters.Add('--export-db'); // We cannot use poWaitOnExit here since we don't // know the size of the output. On Linux the size of the // output pipe is 2 kB; if the output data is more, we // need to read the data. This isn't possible since we are // waiting. So we get a deadlock here if we use poWaitOnExit. OurProcess.Options := [poUsePipes]; OurProcess.Execute; while OurProcess.Running do begin // make sure we have room MemStream.SetSize(BytesRead + READ_BYTES); // try reading it NumBytes := OurProcess.Output.Read((MemStream.Memory + BytesRead)^, READ_BYTES); if NumBytes > 0 then begin Inc(BytesRead, NumBytes); //Write('.') //Output progress to screen. end else begin // no data, wait 100 ms Sleep(100); end; end; // read last part repeat // make sure we have room MemStream.SetSize(BytesRead + READ_BYTES); // try reading it NumBytes := OurProcess.Output.Read((MemStream.Memory + BytesRead)^, READ_BYTES); if NumBytes > 0 then begin Inc(BytesRead, NumBytes); end; until NumBytes <= 0; if BytesRead > 0 then WriteLn; MemStream.SetSize(BytesRead); OutputLines := TStringList.Create; OutputLines.LoadFromStream(MemStream); LookForState:=0; for NumBytes := 0 to OutputLines.Count - 1 do begin {Look for starting line that identifies ttyUSB, this is an indicator of the FTDI serial to USB connection.} if ((AnsiStartsStr('P:',OutputLines[NumBytes])) and (AnsiContainsText(OutputLines[NumBytes],'tty/ttyUSB'))) then begin LookForState:=1; end; {Reset looking if a blank line is found.} if (Length(OutputLines[NumBytes])=0) then begin LookForState:=0; end; if ((LookForState=1) and (AnsiStartsStr('E: DEVNAME=',OutputLines[NumBytes]))) then //get device name begin pieces.DelimitedText := OutputLines[NumBytes]; usbdevname:=pieces.Strings[2]; LookForState:=2; end; if ((LookForState=2) and (AnsiStartsStr('E: ID_SERIAL_SHORT',OutputLines[NumBytes]))) then //add found device begin pieces.DelimitedText := OutputLines[NumBytes]; usbserial:=AnsiLeftStr(pieces.Strings[2], 8); kAvailable.Add(usbdevname+' : '+usbserial); //save found device with FoundDevicesArray[high(FoundDevicesArray)] do begin SerialNumber:=usbserial; Connection:=usbdevname; Hardware:='USB'; end; SetLength(FoundDevicesArray,high(FoundDevicesArray)+2); LookForState:=0; end; end; OutputLines.Free; OurProcess.Free; MemStream.Free; end; {$ENDIF OldLinux} { TForm1 } procedure TForm1.RequestButtonClick(Sender: TObject); begin GetReading; end; //procedure TForm1.SelectFirmwareClick(Sender: TObject); //begin // case CommNotebook.PageIndex of // 0: begin //USB // case SelectedModel of // 6: begin // SelectFirmwareDialog.Filter:='SQM-LU-DL firmware files|SQM-LU-DL-?-?-??.hex|All firmware files|*.hex'; // end; // 3: begin // SelectFirmwareDialog.Filter:='SQM-LU firmware files|SQMLE-?-3-*.hex|All firmware files|*.hex'; // end; // 8: begin // SelectFirmwareDialog.Filter:='GDM firmware files|MAG*.hex|All firmware files|*.hex'; // end; // 11: begin // SelectFirmwareDialog.Filter:='SQM-LU-DL-V firmware files|SQM-LU-DL-V*.hex|All firmware files|*.hex'; // end; // end; // end; // 1: begin //Ethernet // case SelectedModel of // 3: SelectFirmwareDialog.Filter:='SQM-LE files|SQMLE-?-3-*.hex|All firmware files|*.hex'; // 4: SelectFirmwareDialog.Filter:='SQM-LE files|SQMLE-?-4-*.hex|All firmware files|*.hex'; // end; // // end; // 2: begin //RS232 // SelectFirmwareDialog.Filter:='SQM-LR files|SQM-LR*.hex|All firmware files|*.hex'; // end; // end; // SelectFirmwareDialog.InitialDir:=appsettings.FirmwareDirectory; // if SelectFirmwareDialog.Execute then // begin // FirmwareFilename := SelectFirmwareDialog.Filename; // FirmwareFile.Text:=FirmwareFilename; // // //To enable the Load button: // // - the firmware file has to be selected // // - a device must be selected, or RS232 model selected // LoadFirmware.Enabled:=((not(FirmwareFile.Text='')) and ((FoundDevices.SelCount>0) or (SelectedModel=model_LR))); // // StatusMessage('Selected file: '+FirmwareFile.Text); // end; // //end; procedure TForm1.EnableFirmware(); var FirmwareSelected: Boolean; PortDefined:Boolean; begin case CommNotebook.PageIndex of 0: begin //USB PortDefined:=not(USBPort.Text=''); end; 1: begin //Ethernet PortDefined:=(not(EthernetIP.Text='') and not(EthernetPort.Text='')); end; 2: begin //RS232 PortDefined:=not(RS232Port.Text=''); end; end; FirmwareSelected:=not(FirmwareFile.Text=''); LoadFirmware.Enabled:=(FirmwareSelected and PortDefined); FWWaitUSBButton.Enabled:=(FirmwareSelected and PortDefined); end; procedure TForm1.FirmwareFileChange(Sender: TObject); begin EnableFirmware(); end; procedure TForm1.LogFirstRecordClick(Sender: TObject); begin DLCurrentRecord:=1; //Point to the first record (record 1). LogRecordGet(DLCurrentRecord); end; //Get last record in the meter database procedure TForm1.LogLastRecordClick(Sender: TObject); begin LogUpdateLogPointer(); DLCurrentRecord:=DLEStoredRecords; LogRecordGet(DLCurrentRecord); end; procedure TForm1.LogUpdateLogPointer(); var pieces: TStringList; begin if (SelectedModel>0) then begin //Set up parsing pieces := TStringList.Create; pieces.Delimiter := ','; pieces.StrictDelimiter := False; //Parse spaces also //Update next log pointer pieces.DelimitedText := sendget('L1x'); // Get pointer to next place [0 to last record] if (pieces.Count=2) then DLEStoredRecords:=StrToIntDef(pieces.Strings[1],0); //DLDBSizeProgressBar.Position:=StrToIntDef(AnsiMidStr(sendget('L1x'),4,6),0); DLDBSizeProgressBar.Position:= round((DLEStoredRecords / DLEStorageCapacity) * 100.0); DLDBSizeProgressBarText.Caption:=Format('%d from [1 to %d / %d] (%3.4f%% used)',[ DLCurrentRecord, DLEStoredRecords, round(DLEStorageCapacity), (DLEStoredRecords / DLEStorageCapacity) * 100.0]); if Assigned(pieces) then FreeAndNil(pieces); end; end; procedure TForm1.LogNextRecordClick(Sender: TObject); begin LogUpdateLogPointer(); inc(DLCurrentRecord); DLCurrentRecord:=min(DLCurrentRecord,DLEStoredRecords); LogRecordGet(DLCurrentRecord); end; procedure TForm1.LogPreviousRecordClick(Sender: TObject); begin LogUpdateLogPointer(); dec(DLCurrentRecord); DLCurrentRecord:=max(DLCurrentRecord,1); LogRecordGet(DLCurrentRecord); end; procedure TForm1.OpenMenuItemClick(Sender: TObject); //Open log files in text editor; // Calibration logs (.cal) // DL logs (.???) begin OpenLogDialog.InitialDir:= appsettings.LogsDirectory; OpenLogDialog.Filter:=OpenFileFilter; if OpenLogDialog.Execute then begin Form2.Memo1.Lines.LoadFromFile(OpenLogDialog.Filename); Form2.show; end; end; procedure TForm1.QuitItemClick(Sender: TObject); begin Close; end; procedure TForm1.EstimateBatteryLife; { Battery life calculated accoding to readings provided in manual. Battery capacity estimates in combo box provided from spec sheets when each 1.5V cell drops to 0.9V which is plenty since the batery to USB adapter will still work at 5.1V in (0.85V/cell), and the SQM-LU-DL will still operate down to 3.3 (3.4 at battery, 0.57V/cell). Example batteries: -- Alkaline batteries ----------------------------------------------------- Panasonic LR6XWA Alkaline-Zinc/Manganese Dioxide for 260hrs @ 10mA, down to 0.9V = 2600mAH ENERGIZER EN91 Alkaline Zinc-Manganese Dioxide (Zn/MnO 2) from chart, 25mA discharge = ~2600mAH Panasonic ZR6XT Oxyride Alkaline 1.7V from datasheet, Discharge characteristics plot ~260hrs @ 10mA = 2600mAH -- Litium ----------------------------------------------------------------- ENERGIZER L91 Lithium/Iron Disulfide From datasheet Milliamp-Hours Capacity = 3000maH -- Carbon Zinc ------------------------------------------------------------ Eveready 1215 datasheet "Constant Current Discharge" 1000hrs @ 1mA down to 0.8V = 1000maH } var BatteryCapacity:Real; IAverage:Real; TQuiescent:Real; TMeasure:Real; TBattery:Real; //Time that the battery will last in hours NSeconds:Real; //Number of seconds between samples NMinutes:Integer; //Number of minutes between samples lStrings: TStringList; NRecordsPrefix: String; const //IQuiescent=600e-9;//for uP only IQuiescent=209e-6;//See design.ods:Power_budget:SleepModeTheoretical IWake=10e-3; IMeasure=55e-3; TWake=3.0/60.0; begin //Determine battery capacity from ComboBox text lStrings:=TStringList.Create; lStrings.Delimiter := ' '; lStrings.DelimitedText := DLBatteryCapacityComboBox.Text; if (lStrings.Count>0) then BatteryCapacity:=StrToIntDef(lStrings.Strings[0],0) else BatteryCapacity:=0; if StrToIntDef(DLThreshold.Text,0)>0 then NRecordsPrefix:='<' else NRecordsPrefix:=''; NMinutes:=5;//default case TriggerComboBox.ItemIndex of 0: //Off begin DLBatteryDurationTime.Text:='Not applicable'; DLBatteryDurationRecords.Text:='N/A'; DLBatteryDurationUntil.Text:='Not applicable'; end; 1: //Every x seconds begin NSeconds:=StrToFloatDef(DLTrigSeconds.Text,1,FPointSeparator); if NSeconds > 0 then begin TMeasure:=5.0/(Min(Max(NSeconds,5.0),1.0)); IAverage:=IWake+TMeasure*IMeasure; TBattery:=BatteryCapacity/(1000*IAverage); DLBatteryDurationTime.Text:=Format('%.0fhours, or %.0fdays, or %.1f months',[TBattery,TBattery/24,TBattery/(24*31)]); DLBatteryDurationRecords.Text:=Format('%s %d',[NRecordsPrefix,Round(TBattery) * (3600 div Round(NSeconds))]); DLBatteryDurationUntil.Text:=FormatDateTime('yy-mm-dd ddd hh:nn',IncHour(Now,Round(TBattery))); end else begin DLBatteryDurationTime.Text:='Not applicable'; DLBatteryDurationRecords.Text:='N/A'; DLBatteryDurationUntil.Text:='Not applicable'; end; end; 2..7: //Every x minutes begin case TriggerComboBox.ItemIndex of 2:NMinutes:=StrToIntDef(DLTrigMinutes.Text,1); 3:NMinutes:=5; 4:NMinutes:=10; 5:NMinutes:=15; 6:NMinutes:=30; 7:NMinutes:=60; end; if NMinutes > 0 then begin TMeasure:=5/(NMinutes*60); TQuiescent:=1-(TWake+TMeasure); IAverage:=TQuiescent*IQuiescent + TWake*IWake + TMeasure*IMeasure; TBattery:=BatteryCapacity/(1000*IAverage); DLBatteryDurationTime.Text:=Format('%.0fhours, or %.0fdays, or %.1f months',[TBattery,TBattery/24,TBattery/(24*31)]); DLBatteryDurationRecords.Text:=Format('%s %d',[NRecordsPrefix, (Round(TBattery) * 60) div NMinutes]); DLBatteryDurationUntil.Text:=FormatDateTime('yyyy-mm-dd ddd hh:nn',IncHour(Now,Round(TBattery))); end else begin DLBatteryDurationTime.Text:='Not applicable'; DLBatteryDurationRecords.Text:='N/A'; DLBatteryDurationUntil.Text:='Not applicable'; end; end; end; if Assigned(lStrings) then FreeAndNil(lStrings); end; procedure TForm1.DLBatteryCapacityComboBoxChange(Sender: TObject); begin EstimateBatteryLife; end; procedure TForm1.DLEraseAllButtonClick(Sender: TObject); begin dlerase.FormDLErase.ShowModal; DLGetSettings(); LogUpdateLogPointer(); DLCurrentRecord:=DLEStoredRecords; LogRecordGet(DLCurrentRecord); end; procedure TForm1.DLLogOneButtonClick(Sender: TObject); var pieces: TStringList; DLOldRecord: LongInt; begin LogUpdateLogPointer(); DLOldRecord:=DLEStoredRecords; pieces := TStringList.Create; pieces.Delimiter := ','; //Check if special data is returned: // - A record number is usually returned for instant recordings // - From firmware>=63, if snow data is being recorded, then the record is not ready and the record number is -1 //Log one record pieces.DelimitedText:=SendGet('L3x'); if pieces.Count>0 then begin if (StrToInt(pieces[1])=-1) then begin //"No record ready yet to view, press >| in a few seconds" LogRecordResult.Clear; LogRecordResult.Append('No record ready yet to view,'); LogRecordResult.Lines.Append(' press >| in a few seconds.'); end else begin //Get most recent record LogUpdateLogPointer(); DLCurrentRecord:=DLEStoredRecords; LogRecordGet(DLCurrentRecord); {check if no record was logged, then issue warning} if DLOldRecord=DLCurrentRecord then begin MessageDlg('No record logged','No record was logged.' + sLineBreak + 'Check that the threshold is lower than the actual reading, or set the threshold to 0.', mtConfirmation,[mbOK],0); end; end; end; if Assigned(pieces) then FreeAndNil(pieces); end; procedure TForm1.DLThresholdChange(Sender: TObject); begin DLThreshold.Color:=clFuchsia; EstimateBatteryLife; end; procedure TForm1.DLTrigMinutesChange(Sender: TObject); begin DLTrigMinutes.Color:=clFuchsia; end; procedure TForm1.DLTrigSecondsChange(Sender: TObject); begin DLTrigSeconds.Color:=clFuchsia; end; procedure TForm1.AboutItemClick(Sender: TObject); begin About.Form4.ShowModal; //ShowMessage( //'Serial Library verion: ' +ser.GetVersion + sLineBreak + //'' ); end; procedure TForm1.AccRefreshButtonClick(Sender: TObject); begin A1Check('A1x'); A2Check('A2x'); A3Check('A3x'); A4Check('A4x'); end; {Snow LED Status} procedure TForm1.SnowLEDStatus(Status:String); var pieces: TStringList; begin pieces := TStringList.Create; pieces.Delimiter := ','; pieces.DelimitedText:=Status; case pieces.Strings[1] of '1': Begin AccSnowLEDState:=True; ACCSnowLEDStatus.Brush.Color:=clLime; end; '0': Begin AccSnowLEDState:=False; ACCSnowLEDStatus.Brush.Color:=clBlack; end; else Begin AccSnowLEDState:=False; ACCSnowLEDStatus.Brush.Color:=clGray; end; end; case pieces.Strings[2] of 'e': SnowLoggingEnabled:=True; 'd': SnowLoggingEnabled:=False; end; SnowLoggingEnableBox.Checked:=SnowLoggingEnabled; end; {Snow LED ON} procedure TForm1.AccSnowLEDOnButtonClick(Sender: TObject); begin SnowLEDStatus(SendGet('A51x')); end; procedure TForm1.AccSnowLinRqClick(Sender: TObject); var pieces: TStringList; begin pieces := TStringList.Create; pieces.Delimiter := ','; pieces.DelimitedText:=SendGet('rfx'); if pieces.Count>0 then begin if AccSnowLEDState then begin AccSnowLEDOnReading:=StrToInt64Def(pieces[1],0); AccSnowOnLinRdg.Text:=IntToStr(AccSnowLEDOnReading); end else begin AccSnowLEDOffReading:=StrToInt64Def(pieces[1],0); AccSnowOffLinRdg.Text:=IntToStr(AccSnowLEDOffReading); end; end; AccSnowLEDDifference:=AccSnowLEDOnReading-AccSnowLEDOffReading; AccSnowLinDiff.Text:=IntToStr(AccSnowLEDDifference); if Assigned(pieces) then FreeAndNil(pieces); end; {Snow LED OFF} procedure TForm1.AccSnowLEDOffButtonClick(Sender: TObject); begin SnowLEDStatus(SendGet('A50x')); end; procedure TForm1.ADISEnableChange(Sender: TObject); var command:string; begin if ADISEnable.Checked then command:='E' else command:='D';//Enable/Disable A2Check('A2' + command + 'x'); end; //Change Fixed brightness value after keyboard change. procedure TForm1.ADISFixedBrightnessKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin A2Check('A2V' + IntToStr(ADISFixedBrightness.Position) + 'x'); end; //Change Fixed brightness value after mouse change. procedure TForm1.ADISFixedBrightnessMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin A2Check('A2V' + IntToStr(ADISFixedBrightness.Position) + 'x'); end; procedure TForm1.ADISFixedClick(Sender: TObject); begin A2Check('A2Fx'); end; procedure TForm1.ADISModeClick(Sender: TObject); begin if ADISMode.ItemIndex=0 then A2Check('A2Px'); if ADISMode.ItemIndex=1 then A2Check('A2Rx'); end; procedure TForm1.ADISModelSelectChange(Sender: TObject); begin A2Check('A2M'+IntToStr(ADISModelSelect.ItemIndex)+'x'); end; procedure TForm1.ADISAutoClick(Sender: TObject); begin A2Check('A2Ax'); end; procedure TForm1.AHTEnableChange(Sender: TObject); var command:string; begin if AHTEnable.Checked then command:='E' else command:='D';//Enable/Disable A1Check('A1' + command + 'x'); end; procedure TForm1.AHTModelSelectChange(Sender: TObject); begin A1Check('A1M'+IntToStr(AHTModelSelect.ItemIndex)+'x'); end; //All accessory commands return the complete status which is parsed below procedure TForm1.A1Check(command:string);//Check Accessory 1 (Humidity/temperature sensor) options. var pieces: TStringList; Status: string; Humidity,Temperature:Float; begin pieces := TStringList.Create; pieces.Delimiter := ','; pieces.DelimitedText:=SendGet(command); if pieces.Count=7 then begin if pieces.Strings[2]='E' then begin //Enabled. AHTEnable.Checked:=True; AHTRefreshButton.Enabled:=True; AHTHumidityValue.Enabled:=True; AHTTemperatureValue.Enabled:=True; AHTHumidityStatus.Enabled:=True; case pieces.Strings[3] of //model '0': AHTModelSelect.ItemIndex:=0; '1': AHTModelSelect.ItemIndex:=1; '7': AHTModelSelect.Text:=''; end; case pieces.Strings[4] of '0': Status:='Normal'; '1': Status:='Stale'; '2': Status:='Command'; '3': Status:='N/A'; end; //Check if Humidity sensor is reporting anything valid if ((pieces.Strings[5]='16383') and (pieces.Strings[6]='16383')) then begin Status:='N/C'; //No connection AHTHumidityStatus.Text:=Status; AHTHumidityValue.Text:=''; AHTTemperatureValue.Text:=''; end else begin AHTHumidityStatus.Text:=Status; Humidity:=StrToFloatDef(pieces.Strings[5],0)/( power(2,14) - 2)*100; AHTHumidityValue.Text:=Format('%2.1f%%',[Humidity]); Temperature:=StrToFloatDef(pieces.Strings[6],0)/( power(2,14)-2) * 165 - 40; AHTTemperatureValue.Text:=Format('%2.1f°C',[Temperature]); end end else begin //Disabled. AHTEnable.Checked:=False; AHTRefreshButton.Enabled:=False; AHTHumidityValue.Enabled:=False; AHTTemperatureValue.Enabled:=False; AHTHumidityStatus.Enabled:=False; AHTHumidityStatus.Text:=''; AHTHumidityValue.Text:=''; AHTTemperatureValue.Text:=''; end; end else begin AHTHumidityStatus.Text:=''; AHTHumidityValue.Text:=''; AHTTemperatureValue.Text:=''; end; //Set global variable indicating that this accessory is enabled A1Enabled:=AHTEnable.Checked; end; //All accessory commands return the complete status which is parsed below procedure TForm1.A2Check(command:string);//Check Accessory 2 (Display) options. var pieces: TStringList; begin pieces := TStringList.Create; pieces.Delimiter := ','; pieces.DelimitedText:=SendGet(command); if pieces.Count=7 then begin if pieces.Strings[2]='E' then begin //Enabled. ADISEnable.Checked:=True; ADISBrightnessGroup.Enabled:=True; end else begin //Disabled. ADISEnable.Checked:=False; ADISBrightnessGroup.Enabled:=False; end; case pieces.Strings[3] of //model '0': ADISModelSelect.ItemIndex:=0; end; if pieces.Strings[4]='A' then ADISAuto.Checked:=True //Auto mode else ADISFixed.Checked:=True;//Fixed mode ADISFixedBrightness.Position:=StrToIntDef(pieces.Strings[5],0); if pieces.Strings[6]='P' then ADISMode.ItemIndex:=0 //periodic update mode else ADISMode.ItemIndex:=1;//reading request mode end; end; procedure TForm1.AHTRefreshButtonClick(Sender: TObject); begin A1Check('A1x'); end; procedure TForm1.ALEDEnableChange(Sender: TObject); var command:string; begin command:='A3'; if ALEDEnable.Checked then command:=command+'E' else command:=command+'D';//LED accessory Enable/Disable A3Check(command + 'x'); end; procedure TForm1.ALEDModeClick(Sender: TObject); //Change the LED blink mode of operation. begin A3Check('A3' +IntToStr(ALEDMode.ItemIndex)+ 'x'); end; procedure TForm1.ARLYModeComboBoxChange(Sender: TObject); begin A4Check('A4M' + IntToStr(ARLYModeComboBox.ItemIndex) + 'x'); end; procedure TForm1.ARLYOffClick(Sender: TObject); begin A4Check('A40x'); end; procedure TForm1.ARLYOnClick(Sender: TObject); begin A4Check('A41x'); end; procedure TForm1.ARLYThresholdKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin A4Check('A4T' + format('%.2d',[ARLYThreshold.Position]) + 'x'); end; procedure TForm1.ARLYThresholdMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin A4Check('A4T' + format('%.2d',[ARLYThreshold.Position]) + 'x'); end; procedure TForm1.CloudRemovalMilkyWayClick(Sender: TObject); begin CloudRemUnit.CloudRemMilkyWay.Show; end; procedure TForm1.CommNotebookChanging(Sender: TObject; var AllowChange: Boolean ); var CommPageIndex: Integer; begin //CommPageIndex:=CommNotebook.PageIndex; //StatusMessage(format('commpage changing to: %d.',[CommPageIndex])); //Application.ProcessMessages; // //DataNoteBook.Enabled:=False; // //{Check if showing RS232, then disble selecting found devices} //case CommPageIndex of //2: FoundDevices.Enabled:=False; //else FoundDevices.Enabled:=True; //end; end; procedure TForm1.FilterSunMoonClick(Sender: TObject); begin FilterSunMoonUnit.FilterSunMoonForm.Show; end; // Print text label lines to console for Linux procedure TForm1.LabelTextButtonClick(Sender: TObject); var PrintString : String; begin PrintString:='ptouch-print --fontsize 18 --font "Liberation Mono" --cutmark --text '; //All devices: PrintString:=PrintString+(''' Unit S/N: '+ SelectedUnitSerialNumber+''''); PrintString:=PrintString+(' '' Model: '+ SelectedModelDescription+''''); //check if Ethernet device: if (Form1.CommNotebook.PageIndex=1) then PrintString:=PrintString+(' '' MAC: '+ Form1.EthernetMAC.text+''''); //check if DataLoging device: if ((SelectedModel=6) or (SelectedModel=7) or (SelectedModel=9) or (SelectedModel=11)or (SelectedModel=13)) then begin //DLEGetCapacity(); PrintString:=PrintString+(Format(' '' Capacity: %d rec''',[DLEStorageCapacity])); end; //check if USB device: if ((Form1.CommNotebook.PageIndex=0) and not (SelectedModel=5)) then // USB device but not RS232 model PrintString:=PrintString+(' '' USB S/N: '+ Form1.USBSerialNumber.text+''''); Clipboard.AsText:=PrintString; Writeln(PrintString); StatusMessage('Wrote P-touch back label text to clipboard.'); end; procedure TForm1.ConcatenateMenuClick(Sender: TObject); begin concattool.ConcatToolForm.Show; end; procedure TForm1.LogSettingsButtonClick(Sender: TObject); var Reply: Integer; begin if SelectedModel=0 then GetVersion; if ((Length(DelSpace(SelectedTZRegion))>0) and (Length(DelSpace(SelectedTZLocation))>0)) then begin {Start Modal window with status of: timed countdown, number of records stored, Stop logging button} {Had to switch from showmodal to show because automatic minimize would not work properly.} Form1.Enabled:=False; {Make-believe showmodal} FormLogCont.Show; end else begin //'Do this by pressing the Header button, then selecting your timezone.'); Reply:=Application.MessageBox('The time zone information must be defined, do you want to do it now?', 'Time zone missing', MB_ICONQUESTION + MB_YESNO ); if (Reply = IDYES) then DLHeaderForm.ShowModal; end; end; procedure TForm1.ARPMethodMenuItemClick(Sender: TObject); begin //Open ARPMethodMenuItem window ARPMethod.Formarpmethod.Show; end; procedure TForm1.OnlineDLmanualClick(Sender: TObject); begin OpenURL('http://unihedron.com/projects/darksky/cd/SQM-LU-DL/SQM-LU-DL_Users_manual.pdf'); end; procedure TForm1.OnlineLEmanualClick(Sender: TObject); begin OpenURL('http://unihedron.com/projects/darksky/cd/SQM-LE/SQM-LE_Users_manual.pdf'); end; procedure TForm1.OnlineLRmanualClick(Sender: TObject); begin OpenURL('http://unihedron.com/projects/darksky/cd/SQM-LR/SQM-LR_Users_manual.pdf'); end; procedure TForm1.OnlineLUmanualClick(Sender: TObject); begin OpenURL('http://unihedron.com/projects/darksky/cd/SQM-LU/SQM-LU_Users_manual.pdf'); end; procedure TForm1.OnlineResourcesClick(Sender: TObject); begin OpenURL('http://unihedron.com/projects/darksky/cd/'); end; procedure TForm1.OnlineVmanualClick(Sender: TObject); begin OpenURL('http://unihedron.com/projects/darksky/cd/SQM-LU-DL-V/SQM-LU-DL-V_Users_manual.pdf'); end; procedure TForm1.RS232PortChange(Sender: TObject); begin EnableFirmware(); end; procedure TForm1.SelectFirmwareButtonClick(Sender: TObject); var File1: TextFile; Str: String; i:Integer; //counter begin OpenLogDialog.InitialDir:= appsettings.FirmwareDirectory; OpenLogDialog.Filter:=FirmwareFilter; OpenLogDialog.FilterIndex:=FirmwareFilterIndex; if OpenLogDialog.Execute then begin FirmwareFilename:=OpenLogDialog.Filename; FirmwareFile.Text:=FirmwareFilename; if fileexists(FirmwareFilename) then begin AssignFile(File1,FirmwareFilename); {$I-}//Temporarily turn off IO checking try Reset(File1); StatusMessage('Found and reset Firmwarefile'); Application.ProcessMessages; // Determine the size of the progress bar. i:=0; repeat Readln(File1, Str); // Read a whole line from the file. Inc(i); until(EOF(File1)); // EOF(End Of File) keep reading new lines until end. LoadFirmwareProgressBar.Max:=i; StatusMessage('Firmware file size determined for progress bar.'); Application.ProcessMessages; finally end; end; end; end; procedure TForm1.ColourCyclingRadioClick(Sender: TObject); var ColourCycleResult: String; ColourCycleCommand: String; begin if not ColourUpdating then begin {Get desired colour cycling setting} case ColourCyclingRadio.ItemIndex of 1: begin// Cycling ColourRadio.Visible:=False; ColourCyclingFlag:=True; ColourCycleCommand:='fCx'; end; else begin// Assume Fixed ColourRadio.Visible:=True; ColourCyclingFlag:=False; ColourCycleCommand:='fFx'; end; end; {Send request to change colour cycling mode} ColourCycleResult:=SendGet(ColourCycleCommand); GetReading(); //Update reading (with colour settings shown). end; end; {Communication busy timer Ticks at 100ms, rest of logic takes place below. Set for a slightly smaller time than the SQM-LE auto-disconnected (which is defaulted at 2s). This allows for multiple requests to keep the port open, and will close the port for others to use if UDM is idle. } procedure TForm1.CommBusyTimer(Sender: TObject); begin Inc(CommBusyTime); if CommBusyTime>=CommBusyLimit then begin CloseComm(); end; end; procedure TForm1.CommNotebookChange(Sender: TObject); var CommPageIndex: Integer; begin CommPageIndex:=CommNotebook.PageIndex; Application.ProcessMessages; DataNoteBook.Enabled:=False; {Check if showing RS232, then disble selecting found devices} case CommPageIndex of 2: FoundDevices.Enabled:=False; else FoundDevices.Enabled:=True; end; end; procedure TForm1.Correction49to56MenuItemClick(Sender: TObject); begin correct49to56.CorrectForm.Show; end; procedure TForm1.datToDecimalDateClick(Sender: TObject); begin date2dec.Form10.Show; end; procedure TForm1.DLMutualAccessGroupClick(Sender: TObject); var pieces:TStringList; begin pieces := TStringList.Create; pieces.Delimiter := ','; pieces.StrictDelimiter := True; //Do not parse spaces //Set mutual access logging setting case DLMutualAccessGroup.ItemIndex of 0:pieces.DelimitedText:=sendget('LD1x');//Battery only logging 1:pieces.DelimitedText:=sendget('LD0x');//Battery and PC logging end; //Read mutual access logging setting if (StrToInt(SelectedFeature)>=68) then begin; pieces.DelimitedText:=sendget('Ldx'); if pieces.Count=2 then begin DLLogOnBatt:=pieces.Strings[1]='1'; end else DLLogOnBatt:=False; case DLLogOnBatt of True:DLMutualAccessGroup.ItemIndex:=0; False:DLMutualAccessGroup.ItemIndex:=1; end; end; end; procedure TForm1.ColourRadioClick(Sender: TObject); begin if not ColourUpdating then begin SelectedColour:=ColourRadio.ItemIndex; //Get desired colour status SelectedColourScaling:=StrToIntDef(ansimidstr(SendGet('fx'),3,1),0);//Get current scaling status //Modify status as selected SendGet('f'+IntToStr(SelectedColourScaling)+IntToStr(SelectedColour)+'x'); //ParseColourScaling(); //Update the displayed settings. { Clear reading box since color selection has changed. } ReadingListBox.Items.Clear; end; end; procedure TForm1.ColourScalingRadioClick(Sender: TObject); begin if not ColourUpdating then begin SelectedColourScaling:=ColourScalingRadio.ItemIndex;//Get desired scaling SelectedColour:=StrToIntDef(ansimidstr(SendGet('fx'),5,1),0);//Get current colour status //Modify status as selected SendGet('f'+IntToStr(SelectedColourScaling)+IntToStr(SelectedColour)+'x'); //ParseColourScaling(); //Update the displayed settings. GetReading(); //Update reading (with colour settings shown). end; end; procedure TForm1.ParseColourScaling(); var result:String; begin result:=SendGet('fx');//Get current colour control settings. SelectedColourScaling:=StrToIntDef(ansimidstr(result,3,1),0);//Update current scaling status. ColourScalingRadio.ItemIndex:=SelectedColourScaling; SelectedColour:=StrToIntDef(ansimidstr(result,5,1),0);//Update current colour status. ColourRadio.ItemIndex:=SelectedColour; end; //Accessory command returns the complete status which is parsed below procedure TForm1.A4Check(command:string);//Check Accessory 4 (Relay) options. var pieces: TStringList; begin pieces := TStringList.Create; pieces.Delimiter := ','; pieces.DelimitedText:=SendGet(command); if pieces.Count=8 then begin //Status if pieces.Strings[2]='1' then ARLYStatusLabeledEdit.Text:='On' else ARLYStatusLabeledEdit.Text:='Off'; //Mode ARLYModeComboBox.ItemIndex:=StrToInt(pieces.Strings[3]); //Light threshold ARLYThreshold.Position:= StrToIntDef(pieces.Strings[4],0); //Temperature ARLYTValue.Text:=format('%d',[StrToIntDef(pieces.Strings[5],0)]); //Humidity ARLYHValue.Text:=format('%d',[StrToIntDef(pieces.Strings[6],0)]); //Dewpoint temperature (Tdp) ARLYTDPValue.Text:=format('%d',[StrToIntDef(pieces.Strings[7],0)]); end; ARLYThresholdValue.Caption:=IntToStr(ARLYThreshold.Position); end; //Accessory command returns the complete status which is parsed below procedure TForm1.A3Check(command:string);//Check Accessory 3 (LED blink) options. var pieces: TStringList; begin pieces := TStringList.Create; pieces.Delimiter := ','; pieces.DelimitedText:=SendGet(command); if pieces.Count=5 then begin if pieces.Strings[2]='E' then begin //Enabled. ALEDEnable.Checked:=True; end else begin //Disabled. ALEDEnable.Checked:=False; end; //Blink Mode; 0=at reading creation,1=at reading request ALEDMode.ItemIndex:= StrToIntDef(pieces.Strings[4],0); end; end; procedure TForm1.ContCheckGroupItemClick(Sender: TObject; Index: integer); var command:string; begin //Create setting command command:='Y'; if Index=0 then if ContCheckGroup.Checked[Index] then command:=command+'R' else command:=command+'r';//Report enabled if Index=1 then if ContCheckGroup.Checked[Index] then command:=command+'P' else command:=command+'p';//Report compressed if Index=2 then if ContCheckGroup.Checked[Index] then command:=command+'U' else command:=command+'u';//Report un-averaged if Index=3 then if ContCheckGroup.Checked[Index] then command:=command+'L' else command:=command+'l';//LED blink if Index=4 then if ContCheckGroup.Checked[Index] then command:=command+'C' else command:=command+'c';//Ideal crossover command:=command + 'x'; ContCheck(command);//Send command and populate checkbox end; procedure TForm1.FormDestroy(Sender: TObject); begin if ViewedLogCreated then ViewedLog.Destroy; if serCreated then ser.Destroy; if GPSserCreated then GPSser.Destroy; if GoToserCreated then GoToser.Destroy; if ParameterValueCreated then ParameterValue.Destroy; end; procedure TForm1.FoundDevicesDblClick(Sender: TObject); begin SelectDevice; GetReading; end; //Lens Holder information procedure TForm1.LHComboChange(Sender: TObject); begin //if not LHFUpdating then begin // CheckLockSwitch(); SelectedLH:=LHCombo.ItemIndex; LHFCheck(Format('M0%03.03Dx',[SelectedLH])); //end; end; //Lens information procedure TForm1.LensComboChange(Sender: TObject); begin //if not LHFUpdating then begin // CheckLockSwitch(); SelectedLens:=LensCombo.ItemIndex; LHFCheck(Format('M1%03.03Dx',[SelectedLens])); //end; end; //Filter information procedure TForm1.FilterComboChange(Sender: TObject); begin //if not LHFUpdating then begin // CheckLockSwitch(); SelectedFilter:=FilterCombo.ItemIndex; LHFCheck(Format('M2%03.03Dx',[SelectedFilter])); //end; end; { Lens/Holder/Filter check} procedure LHFCheck(command:string); begin //SendGet('rx'); //Flush unwanted report interval info LHFUpdating:=True; if command<>'' then begin SendGet(command); //Set value end; try //Sometimes these commands do not reply on time //Update comboboxes //Results sent as m_x, received as m_,123 SelectedLH:=StrToIntDef(AnsiMidStr(SendGet('m0x'),4,3),-1); SelectedLens:=StrToIntDef(AnsiMidStr(SendGet('m1x'),4,3),-1); SelectedFilter:=StrToIntDef(AnsiMidStr(SendGet('m2x'),4,3),-1); Form1.LHCombo.ItemIndex:=SelectedLH; Form1.LensCombo.ItemIndex:=SelectedLens; Form1.FilterCombo.ItemIndex:=SelectedFilter; except StatusMessage('Warning: LHFCheck exception!'); end; LHFUpdating:=False; end; { send the lock settings command and populate the screen } procedure TForm1.LockSettingsCheck(command:string); var pieces: TStringList; begin SendGet('rx'); //Flush unwanted report interval info pieces := TStringList.Create; pieces.Delimiter := ','; pieces.DelimitedText:=SendGet(command); if pieces.Count=2 then begin if AnsiContainsStr(pieces.Strings[1],'C') then LockSwitchOptions.Checked[0]:=True; if AnsiContainsStr(pieces.Strings[1],'c') then LockSwitchOptions.Checked[0]:=False; if AnsiContainsStr(pieces.Strings[1],'R') then LockSwitchOptions.Checked[1]:=True; if AnsiContainsStr(pieces.Strings[1],'r') then LockSwitchOptions.Checked[1]:=False; if AnsiContainsStr(pieces.Strings[1],'G') then LockSwitchOptions.Checked[2]:=True; if AnsiContainsStr(pieces.Strings[1],'g') then LockSwitchOptions.Checked[2]:=False; if AnsiContainsStr(pieces.Strings[1],'T') then LockSwitchOptions.Checked[3]:=True; if AnsiContainsStr(pieces.Strings[1],'t') then LockSwitchOptions.Checked[3]:=False; end else StatusMessage('Invalid lock setting response, pieces = '+IntToStr(pieces.Count)); //Update lock indicator CheckLockSwitch(); end; //Lock switch protect settings procedure TForm1.LockSwitchOptionsItemClick(Sender: TObject; Index: integer); begin StatusMessage('Lock switch protection settings being altered'); case Index of 0: begin //Calibration settings if LockSwitchOptions.Checked[Index] then LockSettingsCheck('KCx') else LockSettingsCheck('Kcx'); end; 1: begin //Report Interval settings if LockSwitchOptions.Checked[Index] then LockSettingsCheck('KRx') else LockSettingsCheck('Krx'); end; 2: begin //Configuration settings if LockSwitchOptions.Checked[Index] then LockSettingsCheck('KGx') else LockSettingsCheck('Kgx'); end; 3: begin //These settings If LockSwitchOptions.Checked[Index] then begin //Tried to turn ON "Respect lock for These settings" if CheckLockSwitch() then begin //Unit locked case QuestionDlg ('Are you sure?','Checking this will instantly prevent other changes!',mtWarning,[mrYes,'OK', mrNo, 'Cancel', 'IsDefault'],'') of mrYes: begin LockSettingsCheck('KTx'); StatusMessage('Locked out by user. Lock switch protects "These settings".'); end; else begin StatusMessage('Lock switch protects "These settings" cancelled.'); LockSettingsCheck('Kx');; end; end; end else begin //Unit unlocked case QuestionDlg ('Are you sure?','Checking this will prevent other changes when the lock switch is locked!',mtWarning,[mrYes,'OK', mrNo, 'Cancel', 'IsDefault'],'') of mrYes: begin LockSettingsCheck('KTx'); StatusMessage('Lock switch protects "These settings".'); end; else begin StatusMessage('Lock switch protects "These settings" cancelled.'); LockSettingsCheck('Kx');; end; end; end; end else begin //Tried to turn OFF "Respect lock for These settings" if CheckLockSwitch() then begin //Unit locked MessageDlg('Unit locked','The unit is locked.' + sLineBreak + 'Switch the Lock switch to the Unlock position' + sLineBreak + 'If you still have problems, then contact Unihedron for possible solutions.', mtConfirmation,[mbOK],0); LockSettingsCheck('Kx'); end else begin //Unit unlocked LockSettingsCheck('Ktx'); end; end; end; end; end; procedure TForm1.DatTimeCorrectionClick(Sender: TObject); begin dattimecorrect.dattimecorrectform.Show; end; procedure TForm1.DatReconstructLocalTimeClick(Sender: TObject); begin datlocalcorrect.datlocalcorrectform.Show; end; procedure TForm1.AverageToolMenuItemClick(Sender: TObject); begin avgtool.Form8.Show; end; procedure TForm1.mnDATtoKMLClick(Sender: TObject); begin dattokml.Form7.ShowModal; end; procedure TForm1.OpenDLRMenuItemClick(Sender: TObject); begin LogUpdateLogPointer(); dlretrieve.VectorPlotOverride:=true; dlretrieve.DLRetrieveForm.ShowModal; end; procedure TForm1.PlotterMenuItemClick(Sender: TObject); begin plotter.PlotterForm.Show; end; procedure TForm1.RS232BaudChange(Sender: TObject); begin RS232PortBaud:=StrToIntDef(RS232Baud.Text,115200); end; procedure TForm1.RS232PortEditingDone(Sender: TObject); begin SelectedInterface:='RS232'; RS232Portname:=RS232Port.Text; DataNoteBook.Enabled:=True; FoundDevices.ItemIndex:=-1; Application.ProcessMessages; SelectDevice; end; //Grab simin.csv from log directory // and feed that through simulator // producing simout.csv procedure TForm1.SimFromFileClick(Sender: TObject); var Period:Int64; //nS Frequency:Int64; //Hz Temperature:Integer; //ADC tempreal:real; InFileName, OutFileName: String; InFile, OutFile: TextFile; Str, ResultStr: string; pieces: TStringList; Info: TVersionInfo; //Show and save reply procedure writeresult(output:string); begin SimResults.Lines.Add(output); Writeln(OutFile,output); end; begin pieces := TStringList.Create; pieces.Delimiter := ','; SimEnable:=True; SimResults.Lines.Clear; //Check filenames InFileName:=appsettings.LogsDirectory+ DirectorySeparator+'simin.csv'; OutFileName:=appsettings.LogsDirectory+ DirectorySeparator+'simout.csv'; if (not fileexists(InFileName)) then MessageDlg ('Infile does not exist!'+InFileName, mtConfirmation,[mbIgnore],0) else begin AssignFile(InFile, InFileName); Reset(InFile); //Open file for reading end; if (fileexists(OutFileName)) then MessageDlg ('Outfile already exists!', mtConfirmation,[mbIgnore],0); AssignFile(OutFile, OutFileName); Rewrite(OutFile); //Open file for writing writeresult('# Simulation from file.'); Info := TVersionInfo.Create; Info.Load(HINSTANCE); Str:=IntToStr(Info.FixedInfo.FileVersion[0])+'.'+ IntToStr(Info.FixedInfo.FileVersion[1])+'.'+ IntToStr(Info.FixedInfo.FileVersion[2])+'.'+ IntToStr(Info.FixedInfo.FileVersion[3]); Info.Free; writeresult('# UDM version: '+Str); writeresult('# Unit information cx: '+sendget('ix')); writeresult('# Calibration cx: '+sendget('cx')); repeat // Read one line at a time from the file. Readln(InFile, Str); //Separate the fields of the record. pieces.DelimitedText := Str; //Make sure the number of fields is correct if ((pieces.Count <> 3)) then begin MessageDlg('Error', 'Got '+IntToStr(pieces.Count)+' fields, need 3 fields in record.', mtError, [mbOK], 0); break; end else begin { Period of sensor in counts, counts occur at a rate of 460.8 kHz (14.7456MHz/32). Start simulation range and log to a text file or plot on a chart. } //Parse the fields and convert as necessary. Period:= StrToInt64Def(pieces.Strings[0],0); Frequency:=StrToInt64Def(pieces.Strings[1],0); tempreal:=((((StrToFloatDef(pieces.Strings[2],0.0) *0.01 +0.5) * 1024)) / 3.3); Temperature:=round(tempreal); Application.ProcessMessages; //Send request ResultStr:=sendget(Format('S%10.10d,%10.10d,%05.05dx',[ Period, Frequency, Temperature ])); //Show and save reply writeresult(ResultStr); end;//End of checking number of fields in record. until (EOF(InFile) or not SimEnable); CloseFile(InFile); CloseFile(OutFile); end; procedure TForm1.Button18Click(Sender: TObject); var pieces:TStringList; begin pieces := TStringList.Create; pieces.Delimiter := ','; pieces.DelimitedText:=SendGet('g0x'); GPSResponse.Clear; try GPSResponse.Append(pieces.Strings[0]); //Title (GGA message) need not be displayed GPSResponse.Append(pieces.Strings[1]+' hhmmss.sss'); GPSResponse.Append(pieces.Strings[2]+' ddmm.mmmm '+ pieces.Strings[3]); //Latitude N/S GPSResponse.Append(pieces.Strings[4]+' ddmm.mmmm '+ pieces.Strings[5]); //Longitude E/W case StrToIntDef(pieces.Strings[6],-1) of -1: GPSResponse.Append('error'); 0: GPSResponse.Append('Fix not available or invalid'); 1: GPSResponse.Append('GPS SPS Mode, fix valid'); 2: GPSResponse.Append('Differential GPS, SPS Mode, fix valid'); 3..5: GPSResponse.Append('Not supported'); 6: GPSResponse.Append('Dead Reckoning Mode, fix valid'); end; GPSResponse.Append(pieces.Strings[7]+' Satellites Used'); GPSResponse.Append('HDOP: '+pieces.Strings[8]+' Horizontal Dilution of Precision'); GPSResponse.Append('MSL Altitude: '+pieces.Strings[9]+' '+pieces.Strings[10]); GPSResponse.Append('Geoid Separation: '+pieces.Strings[11]+' '+pieces.Strings[12]); GPSResponse.Append('Age of Diff. Corr.: '+pieces.Strings[13]+' s'); pieces.Delimiter := '*'; pieces.DelimitedText:=pieces.Strings[14]; GPSResponse.Append('Diff. Ref. Station ID: '+pieces.Strings[0]); except GPSResponse.Append('Failed parsing GGV data.'); end; end; procedure TForm1.Button1Click(Sender: TObject); begin //GPSResponse.Append(SendGet('g1x')); end; procedure TForm1.Button2Click(Sender: TObject); begin //GPSResponseEdit.Text:=SendGet('g2x'); end; procedure TForm1.Button3Click(Sender: TObject); begin //GPSResponseEdit.Text:=SendGet('g4x'); end; procedure TForm1.Button4Click(Sender: TObject); begin //GPSResponseEdit.Text:=SendGet('g5x'); end; procedure TForm1.Button5Click(Sender: TObject); begin //GPSResponseEdit.Text:=SendGet('g6x'); end; procedure TForm1.Button6Click(Sender: TObject); begin //GPSResponseEdit.Text:=SendGet('g8x'); end; procedure TForm1.Button7Click(Sender: TObject); begin //GPSResponseEdit.Text:=SendGet('gAx'); end; procedure TForm1.Button8Click(Sender: TObject); begin //GPSResponseEdit.Text:=SendGet('gBx'); end; procedure TForm1.Button9Click(Sender: TObject); begin //GPSResponseEdit.Text:=SendGet('gCx'); end; procedure TForm1.CmdLineItemClick(Sender: TObject); begin textfileviewer.fillview('Command Line Options','commandlineoptions.txt'); end; procedure TForm1.CommTermMenuItemClick(Sender: TObject); begin ComTermForm.ShowModal; end; procedure TForm1.ConfDarkCaluxButtonClick(Sender: TObject); var Reply: Integer; pieces: TStringList; begin pieces := TStringList.Create; pieces.Delimiter := ','; StatusMessage('Unaveraged dark calibration attempted.'); Reply:=Application.MessageBox(Pchar('Set dark calibration to the un averaged time?' + sLineBreak + 'Are you sure?' + sLineBreak + 'Cancel if not sure.'),'Configure Dark Calibration',MB_ICONWARNING + MB_OKCANCEL); if Reply=mrOK then begin GetConfReading(); //get the unaveraged period along with other unneccessary details StatusMessage('Unaveraged dark calibration performed.'); pieces.DelimitedText := SendGet(Format('zcal7%sx',[FormatFloat('0000000.000',StrToFloatDef(ConfRdgPer.text,0,FPointSeparator))])); if ((pieces.Count>=3) and (pieces.Strings[0]='z')) then DCPAct.Text:=Format('%.3f',[StrToFloatDef(AnsiReplaceStr(pieces.Strings[2],'s',''),0,FPointSeparator)]); GetConfCal; end else StatusMessage('Unaveraged dark calibration cancelled.'); end; procedure TForm1.ConvertLogFileItemClick(Sender: TObject); begin //Convert dat to Moon csv file dialog convertlogfileunit.convertdialog.Show; end; procedure TForm1.DLClockSettingsButtonClick(Sender: TObject); begin dlclock.Form6.ShowModal; DLGetSettings(); end; procedure TForm1.DLRetrieveButtonClick(Sender: TObject); begin LogUpdateLogPointer(); dlretrieve.DLRetrieveForm.ShowModal; end; procedure TForm1.DLSetSeconds1Click(Sender: TObject); begin SendGet(Format('LPM%010.10dx',[(StrToIntDef(DLTrigMinutes.Text,0))])); EstimateBatteryLife; { TODO 2 : check result } DLTrigMinutes.Color:=clWindow; end; procedure TForm1.DLSetSecondsClick(Sender: TObject); begin SendGet(Format('LPS%010.10dx',[(StrToIntDef(DLTrigSeconds.Text,0))])); EstimateBatteryLife; { TODO 2 : check result } DLTrigSeconds.Color:=clWindow; end; procedure TForm1.DLThresholdSetClick(Sender: TObject); begin SendGet(Format('LT%011.2fx',[(StrToFloatDef(DLThreshold.Text,0,FPointSeparator))])); { TODO 2 : check result } DLThreshold.Color:=clWindow; EstimateBatteryLife; end; procedure TForm1.FindBluetoothClick(Sender: TObject); {$IFDEF LinuxBluetooth} var device_id, device_sock: cint; scan_info: array[0..127] of inquiry_info; scan_info_ptr: Pinquiry_info; found_devices: cint; DevName: array[0..255] of Char; PDevName: PCChar; RemoteName: array[0..255] of Char; PRemoteName: PCChar; i: Integer; timeout1: Integer = 5; timeout2: Integer = 5000; s: Integer; //socket sendstring:array[0..255] of Char; Psendstring: PCChar; Addr: sockaddr_rc; linkkey:Integer; {$ENDIF Linux} begin {$IFDEF LinuxBluetooth} // get the id of the first bluetooth device. device_id := hci_get_route(nil); if (device_id < 0) then raise Exception.Create('FindBlueTooth: hci_get_route') else writeln('device_id = ',device_id); // create a socket to the device device_sock := hci_open_dev(device_id); if (device_sock < 0) then raise Exception.Create('FindBlueTooth: hci_open_dev') else writeln('device_sock = ',device_sock); // scan for bluetooth devices for 'timeout1' seconds scan_info_ptr:=@scan_info[0]; FillByte(scan_info[0],SizeOf(inquiry_info)*128,0); found_devices := hci_inquiry_1(device_id, timeout1, 128, nil, @scan_info_ptr, IREQ_CACHE_FLUSH); writeln('found_devices (if any) = ',found_devices); if (found_devices < 0) then raise Exception.Create('FindBlueTooth: hci_inquiry') else begin PDevName:=@DevName[0]; ba2str(@scan_info[0].bdaddr, PDevName); writeln('Bluetooth Device Address (bdaddr) DevName = ',PChar(PDevName)); PRemoteName:=@RemoteName[0]; // Read the remote name for 'timeout2' milliseconds if (hci_read_remote_name(device_sock,@scan_info[0].bdaddr,255,PRemoteName,timeout2) < 0) then writeln('No remote name found, check timeout.') else writeln('RemoteName = ',PChar(RemoteName)); end; s := fpsocket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM); writeln('s=',s); Addr.rc_bdaddr:=scan_info[0].bdaddr; Addr.rc_channel:=1; Addr.rc_family:=AF_BLUETOOTH; if (fpconnect(s, psockaddr(@Addr), SizeOf(Addr)) < 0) then writeln('Error: ',socketerror,' ',StrError(socketerror)); sendstring:='something string.'; Psendstring:=@sendstring[0]; writeln('fpsend = ',fpsend(s,Psendstring,length(sendstring),0)); FpClose(s); FpClose(device_sock); {$ENDIF Linux} end; function TForm1.ConnectBT: boolean; {$IFDEF LinuxBluetooth} var Addr: sockaddr_l2; {$ENDIF} begin {$IFDEF LinuxBluetooth} Addr.l2_family:=AF_BLUETOOTH; Addr.l2_bdaddr:=bdaddr; // OUTPUT CHANNEL OutSocket:=fpsocket(AF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_L2CAP); if (OutSocket = -1) then exit(false); writeln('OutSocket=',OutSocket); {$IFDEF BIG_ENDIAN} {$ERROR ToDo BIG_ENDIAN} {$ENDIF} Addr.l2_psm := WM_OUTPUT_CHANNEL; // htobs // connect to wiimote writeln('fpconnect=', fpconnect(OutSocket, psockaddr(@addr), SizeOf(addr))); // INPUT CHANNEL InSocket:=fpsocket(AF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_L2CAP); if (InSocket = -1) then begin CloseSocket(OutSocket); OutSocket := -1; exit(false); end; Addr.l2_psm := WM_INPUT_CHANNEL; // htobs // connect to wiimote if (fpconnect(InSocket, psockaddr(@addr), SizeOf(addr)) < 0) then begin CloseSocket(OutSocket); OutSocket := -1; raise Exception.Create('fpconnect input'); end; writeln('Connected to wiimote '); // do the handshake //Connected:=true; //EnableHandshake; //RealizeReportType; {$ENDIF Linux} Result:=true; end; procedure TForm1.EthernetIPChange(Sender: TObject); begin SelectedInterface:='Eth'; bXPortDefaults.Enabled:=True; EnableControls(True); EnableFirmware(); end; procedure TForm1.EthernetPortChange(Sender: TObject); begin SelectedInterface:='Eth'; EnableControls(True); EnableFirmware(); end; procedure TForm1.FindEthMenuItemClick(Sender: TObject); begin //FindEthDevices; FindAllDevices('Eth'); end; procedure TForm1.FindUSBMenuItemClick(Sender: TObject); begin FindAllDevices('USB'); end; procedure TForm1.FirmwareInfoButtonClick(Sender: TObject); begin textfileviewer.fillview('Version information','fchanges.txt'); end; procedure TForm1.HeaderButtonClick(Sender: TObject); begin if SelectedModel=0 then GetVersion; DLHeaderForm.ShowModal; end; procedure TForm1.LogCalButtonClick(Sender: TObject); // Save Calibration information to a text file in the current directory. var OutFileName, MessageString:String; CalLogFilename: TextFile; AllowFlag: Boolean=False; LogfileSuffix: String; AccCalPos: Integer; //Accelerometer position begin GetVersion; GetConfCal; Application.ProcessMessages; //Determine logfile suffix from Selected model name and interface type. case SelectedModel of model_LELU: begin case CommNotebook.PageIndex of 0:LogfileSuffix:='LU'; 1:LogfileSuffix:='LE'; end; end; model_LR : LogfileSuffix:='LR'; model_DL : LogfileSuffix:='LU-DL'; model_GPS: LogfileSuffix:='LU-DL-GPS'; model_V : LogfileSuffix:='LU-DL-V'; model_DLS: LogfileSuffix:='LU-DLS'; end; OutFileName:=RemoveMultiSlash(appsettings.LogsDirectory+ DirectorySeparator+Format('%s-%s.txt',[SelectedUnitSerialNumber,LogfileSuffix])); AssignFile(CalLogFilename,OutFileName); //Check that file does not already exist if fileexists(OutFileName) then begin MessageString:=OutFileName+ ' exists!'; StatusMessage(MessageString); case QuestionDlg('Configuration data file exists',MessageString,mtCustom,[mrOK,'Overwrite',mrCancel,'Cancel'],'') of mrOK: begin AllowFlag:=True; //User allowed overwriting file. StatusMessage('Configuration data file ('+OutFileName+') exists, user allowed overwriting.'); end; mrCancel: begin StatusMessage('Configuration data file ('+OutFileName+') exists already, user cancelled overwrite.'); end; end; end else AllowFlag:=True; //File did not exist, allow writing. if AllowFlag then begin try Rewrite(CalLogFilename); //create the file Writeln(CalLogFilename,Format('%s-%s.txt',[SelectedUnitSerialNumber,LogfileSuffix])); Writeln(CalLogFilename,Format('%s Calibration data',[SelectedModelDescription])); Writeln(CalLogFilename,Format('Report Date: %s',[FormatDateTime('yyyy-mm-dd',Now())])); Writeln(CalLogFilename,Format('Serial Number: %s',[SelectedUnitSerialNumber])); //check if USB device: if ((CommNotebook.PageIndex=0) and not (SelectedModel=5)) then // USB device but not RS232 model Writeln(CalLogFilename,Format('USB Serial Number: %s',[USBSerialNumber.text])); //check if Ethernet device: if (CommNotebook.PageIndex=1) then Writeln(CalLogFilename,Format('MAC: %s',[EthernetMAC.text])); Writeln(CalLogFilename,Format('Model Number: %s (%s)',[Inttostr(SelectedModel),SelectedModelDescription])); Writeln(CalLogFilename,Format('Feature version: %s',[SelectedFeature])); Writeln(CalLogFilename,Format('Protocol version: %s',[SelectedProtocol])); case SelectedModel of model_DL, model_GPS, model_DLS: Writeln(CalLogFilename,Format('Data logging capacity: %d records',[DLEStorageCapacity])); end; Writeln(CalLogFilename,Format('Light calibration offset: %2.2f mags/arcsec²',[ConfCalmpsas])); Writeln(CalLogFilename,Format('Light calibration temperature: %2.1f °C',[ConfCalLightTemp])); Writeln(CalLogFilename,Format('Dark calibration period: %2.3f seconds',[ConfCalPeriod])); Writeln(CalLogFilename,Format('Dark calibration temperature: %2.1f °C',[ConfCalDarkTemp])); Writeln(CalLogFilename,'Calibration offset: 8.71 mags/arcsec²'); if SelectedModel=model_V then begin for AccCalPos:=1 to 6 do begin Writeln(CalLogFilename,Format('Acceleration position %d: %6.0f %6.0f %6.0f',[AccCalPos, w.getv(AccCalPos-1, 0), w.getv(AccCalPos-1, 1), w.getv(AccCalPos-1, 2)])); end; Writeln(CalLogFilename,Format('Magnetic maximum XYZ: %7.0f %7.0f %7.0f',[Mxmax,Mymax,Mzmax])); Writeln(CalLogFilename,Format('Magnetic minimum XYZ: %7.0f %7.0f %7.0f',[Mxmin,Mymin,Mzmin])); end; StatusMessage('Logged calibration file stored at: '+OutFileName); except MessageDlg('ERROR! IORESULT','ERROR! IORESULT: ' + IntToStr(IOResult) + ' during LogCalButtonClick',mtWarning,[mbOK],0); end; CloseFile(CalLogFilename); end; end; function TForm1.TelnetExpect(expectstring: string; sendstring:string): boolean; begin TelnetExpect:=tsend.WaitFor(expectstring); if TelnetExpect then begin tsend.Send(sendstring+chr($0D)); StatusMessage('Expected string from XPort telnet: "'+expectstring+'" Sent: "'+ StringReplace(sendstring,chr($0D),'',[rfReplaceAll])+'"' ); end else begin StatusMessage('Failed to see expected string from XPort telnet: '+expectstring); end; ResetXPortProgressBar.Position:=ResetXPortProgressBar.Position+1; Application.ProcessMessages; end; function TForm1.TelnetWaitFor(expectstring: string): boolean; begin TelnetWaitFor:=tsend.WaitFor(expectstring); if TelnetWaitFor then begin StatusMessage('Waited string from XPort telnet: "'+expectstring +'"'); end else begin StatusMessage('Failed to see expected string from XPort telnet: '+expectstring); end; ResetXPortProgressBar.Position:=ResetXPortProgressBar.Position+1; Application.ProcessMessages; end; procedure TForm1.bXPortDefaultsClick(Sender: TObject); var i : Integer; begin ResetXPortProgressBar.Position:=0; FinalResetForXPortProgressBar.Position:=0; LoadingStatus.Caption:=''; StatusMessage('Set XPort defaults operation requested ...'); tsend:= TTelnetSend.Create; tsend.TargetHost:=EthernetIP.Text; tsend.TargetPort:='9999'; //CR is sent after each TelnetExpect. tsend.Login; StatusMessage('Sending XPort defaults to: '+tsend.TargetHost+' '+tsend.TargetPort); if (not TelnetExpect('Press Enter for Setup Mode', '')) then begin StatusMessage('Failed to: telnet '+tsend.TargetHost+' '+tsend.TargetPort); tsend.Destroy; end else begin TelnetExpect('Your choice ?', '7'); TelnetExpect('Your choice ?', '1'); TelnetExpect('Baudrate', '115200'); TelnetExpect('I/F Mode', ''); TelnetExpect('Flow (', '02'); TelnetExpect('Port No (', ''); TelnetExpect('ConnectMode ', ''); TelnetExpect(' in Modem Mode (', ''); TelnetExpect('Show IP addr after ', ''); TelnetExpect('Auto increment source port ', ''); TelnetExpect('Remote IP Address :',chr($0D)+chr($0D)+chr($0D)); TelnetExpect('Remote Port (', ''); TelnetExpect('DisConnMode (', ''); TelnetExpect('FlushMode (', '80'); TelnetExpect('Pack Cntrl (', '01'); TelnetExpect('DisConnTime (', '00'+chr($0D)+'02'); TelnetExpect('SendChar 1', ''); TelnetExpect('SendChar 2', ''); TelnetExpect('Your choice ?', '9'); TelnetWaitFor('Parameters stored'); TelnetWaitFor('Connection closed by foreign host.'); // Added mainly for timeout, seems to properly save using the new XPort circa 20230723 StatusMessage('Finished Sending XPort defaults using: telnet '+tsend.TargetHost+' '+tsend.TargetPort); tsend.Logout; tsend.Destroy; //Reset unit command resets unit for three seconds. StatusMessage('Resetting XPort ...'); Application.ProcessMessages; //Wait about ten seconds for XPort to reset before moving on. for i:=0 to 200 do begin sleep(50); FinalResetForXPortProgressBar.Position:=i; Application.ProcessMessages; end; StatusMessage('XPort should have been reset, and ready to use now. Press FIND now'); end; end; procedure TForm1.ConfDarkCalButtonClick(Sender: TObject); var Reply: Integer; begin StatusMessage('Dark calibration attempted.'); Reply:=Application.MessageBox(Pchar('Has the unit been in the dark for a long enough time?' + sLineBreak + 'Are you sure?' + sLineBreak + 'Cancel if not sure.'),'Configure Dark Calibration',MB_ICONWARNING + MB_OKCANCEL); if Reply=mrOK then begin StatusMessage('Dark calibration performed.'); SendGet('zcalBx'); GetConfCal; GetConfReading(); end else StatusMessage('Dark calibration cancelled.'); end; procedure TForm1.GetConfCal(); var pieces: TStringList; begin StatusMessage('GetConfCal called.'); //Clear out existing results ConfCalmpsas:=0; ConfCalLightTemp:=0; ConfCalPeriod:=0; ConfCalDarkTemp:=0; pieces := TStringList.Create; pieces.Delimiter := ','; //do not check magnetometer until it has the proper firmware if (SelectedModel<>model_GDM) then begin pieces.DelimitedText := SendGet('cx'); //Check size of array. 5 Sections normally, 6 sections when checksum is sent. // and that returned value is "info". if ((pieces.Count>=6) and (pieces.Strings[0]='c')) then begin ConfCalmpsas:=StrToFloatDef(AnsiReplaceStr(pieces.Strings[1],'m',''),0,FPointSeparator); if ((ConfCalmpsas > 25) or (ConfCalmpsas < 15)) then begin //Colorize button when value is out of range ConfLightCalReq.Brush.Color:=clRed; end else begin ConfLightCalReq.Brush.Color:=$CBCBFF; end; ConfCalLightTemp:=StrToFloatDef(AnsiReplaceStr(pieces.Strings[3],'C',''),0,FPointSeparator); ConfCalPeriod:=StrToFloatDef(AnsiReplaceStr(pieces.Strings[2],'s',''),0,FPointSeparator); if ((ConfCalPeriod>300) or (ConfCalPeriod<50)) then begin ConfDarkCalReq.Brush.Color:=clRed; end else begin ConfDarkCalReq.Brush.Color:=$CBCBFF; end; ConfCalDarkTemp:=StrToFloatDef(AnsiReplaceStr(pieces.Strings[5],'C',''),0,FPointSeparator); end; //Update calibration report preview UpdateCalReport; end; end; procedure TForm1.ConfLightCalButtonClick(Sender: TObject); var Reply: Integer; begin StatusMessage('Light calibration attempted.'); Reply:=Application.MessageBox(Pchar('Is the unit looking at a calibrated light source?' + sLineBreak + 'Are you sure?' + sLineBreak + 'Cancel if not sure.'),'Configure Light Calibration',MB_ICONWARNING + MB_OKCANCEL); if Reply=mrOK then begin StatusMessage('Light calibration performed.'); SendGet('zcalAx'); GetConfCal; GetConfReading(); end else StatusMessage('Light calibration cancelled.'); end; procedure TForm1.ConfGetCalClick(Sender: TObject); begin GetVersion; GetConfReading(); GetConfCal; CheckLockSwitch(); end; procedure TForm1.GetConfReading(); var result:string; pieces: TStringList; TemperatureReading:Real; begin StatusMessage('GetConfReading called.'); //Clear out existing results ConfRdgmpsas.Caption:=''; ConfRdgPer.Caption:=''; ConfRdgTemp.Caption:=''; TemperatureReading:=-100.0; //Try to ensure a model version has been found. if SelectedModel=0 then GetVersion; //Get response to "Request" pieces := TStringList.Create; pieces.StrictDelimiter := true; //Do not parse spaces pieces.Delimiter := ','; if StrToIntDef(SelectedFeature,0)>=22 then result:=SendGet('ux') else result:=SendGet('rx'); pieces.DelimitedText := result; //Parse reading case SelectedModel of model_LELU,model_LR,model_DL,model_GPS,model_v, model_DLS: begin //3=Standard SQM-LE/LU, 5=SQM-LR, 6=SQM-LU-DL, 7 =SQM-LU-GPS, 11=Vector if pieces.count>=6 then begin ConfRdgmpsas.Caption:=Format('%1.2f',[StrToFloatDef(AnsiMidStr(pieces.Strings[1],1,6),0,FPointSeparator)]); ConfRdgPer.Caption:=Format('%1.3f',[StrToFloatDef(AnsiMidStr(pieces.Strings[4],1,11),0,FPointSeparator)]); TemperatureReading:=StrToFloatDef(AnsiMidStr(pieces.Strings[5],0,6),0,FPointSeparator); ConfRdgTemp.Caption:=Format('%1.1f',[TemperatureReading]); if SelectedModel=model_V then begin //Gather extra Vector model calibration values GetAccelCal(); end; end else begin ConfRdgmpsas.Caption:='xxx'; ConfRdgPer.Caption:='xxx'; ConfRdgTemp.Caption:='xxx'; end; end; model_C: begin //Colour model if pieces.count=9 then begin ConfRdgmpsas.Caption:=Format('%1.2f',[StrToFloatDef(AnsiMidStr(pieces.Strings[1],1,6),0,FPointSeparator)]); ConfRdgPer.Caption:=Format('%1.3f',[StrToFloatDef(AnsiMidStr(pieces.Strings[4],1,11),0,FPointSeparator)]); TemperatureReading:=StrToFloatDef(AnsiMidStr(pieces.Strings[5],0,6),0,FPointSeparator); ConfRdgTemp.Caption:=Format('%1.1f',[TemperatureReading]); end else begin StatusMessage('Expected 9, got '+IntToStr(pieces.Count)); ConfRdgmpsas.Caption:='xxx'; ConfRdgPer.Caption:='xxx'; ConfRdgTemp.Caption:='xxx'; end; end; otherwise ConfRdgmpsas.Caption:='version?'; end; if TemperatureReading > 65.0 then begin ConfTempWarning.Caption:=' Too High '; ConfTempWarning.Color:=clRed; ConfTempWarning.Font.Color:=clWhite; end else if TemperatureReading < 3.0 then begin ConfTempWarning.Caption:=' Too Low '; ConfTempWarning.Color:=clBlue; ConfTempWarning.Font.Color:=clWhite; end else begin ConfTempWarning.Caption:=' Normal '; ConfTempWarning.Color:=clDefault;//clBackground was black on Windows ConfTempWarning.Font.Color:=clDefault; end; if StrToIntDef(SelectedFeature,0)>=35 then begin //Enable lens model selections LHFCheck(''); //get settings end; end; //Continuous functions added to firmware version 40 //Results sent as Yx, received as Yrlcpud to YRLCPUD procedure TForm1.ContCheck(command:string); var result:string; DesiredLength:Integer; begin StatusMessage('ContCheck('+command+')'); DesiredLength:=5; result:=(SendGet(command)); if Length(result)=DesiredLength then begin case AnsiMidStr(result,2,1) of 'R': ContCheckGroup.Checked[0]:=True; 'r': ContCheckGroup.Checked[0]:=False; end; case AnsiMidStr(result,3,1) of 'C': ContCheckGroup.Checked[4]:=True; 'c': ContCheckGroup.Checked[4]:=False; end; case AnsiMidStr(result,4,1) of 'P': ContCheckGroup.Checked[1]:=True; 'p': ContCheckGroup.Checked[1]:=False; end; case AnsiMidStr(result,5,1) of 'U': ContCheckGroup.Checked[2]:=True; 'u': ContCheckGroup.Checked[2]:=False; end; end else StatusMessage(Format('Sent: %s ContCheck result %s not proper length: Expecting %d, got %d',[command, result, DesiredLength,Length(result)])); end; procedure TForm1.FormPaint(Sender: TObject); begin //Painting on Windows is all messed up. //- Again now with Lazarus 3.0, try removing UpdateCalReport below, now it paints controls properly {$IFDEF Linux} //UpdateCalReport; {$endif} end; procedure TForm1.DirectoriesMenuItemClick(Sender: TObject); begin unitdirectorylist.Directories.Show; end; procedure TForm1.DLHeaderMenuItemClick(Sender: TObject); begin DLHeaderForm.ShowModal; end; procedure TForm1.LogContinuousButtonClick(Sender: TObject); var Reply: Integer; begin if SelectedModel=0 then GetVersion; {Indicate that Logging Continuous button was pressed.} StartLogging:=True; if ((Length(DelSpace(SelectedTZRegion))>0) and (Length(DelSpace(SelectedTZLocation))>0)) then begin {Start Modal window with status of: timed countdown, number of records stored, Stop logging button} {Had to switch from showmodal to show because automatic minimize would not work properly.} Form1.Enabled:=False; {Make-believe showmodal} FormLogCont.Show; end else begin //'Do this by pressing the Header button, then selecting your timezone.'); Reply:=Application.MessageBox('The time zone information must be defined, do you want to do it now?', 'Time zone missing', MB_ICONQUESTION + MB_YESNO ); if (Reply = IDYES) then DLHeaderForm.ShowModal; end; end; procedure TForm1.LogNextRecord10Click(Sender: TObject); begin LogUpdateLogPointer(); inc(DLCurrentRecord,max(round(DLEStoredRecords/10),1)); DLCurrentRecord:=min(DLCurrentRecord,DLEStoredRecords); LogRecordGet(DLCurrentRecord); end; procedure TForm1.LogOneRecordButtonClick(Sender: TObject); var result: string; pieces: TStringList; Altitude: Float; begin pieces := TStringList.Create; pieces.Delimiter := ','; if SelectedModel=0 then GetVersion; if ((Length(SelectedTZRegion)>0) and (Length(SelectedTZLocation)>0)) then begin try if SelectedModel=model_ADA then begin //ADA WriteDLHeader('ADA','One record logged'); result:=GetReading; pieces.DelimitedText := result; pieces.StrictDelimiter := False; //Parse spaces also if (pieces.Count=8) then // YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Hz;Count1;Time1;Count2;Time2 //r,0000000238Hz,0000000000c,0000000.000s,0000000000c,0000000.000s,000,109 AssignFile(DLRecFile, LogFileName); Reset(DLRecFile); Append(DLRecFile); //Open file for appending SetTextLineEnding(DLRecFile, #13#10); Writeln(DLRecFile, FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"',NowUTC()) //Date UTC + FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"',Now()) //Date Local + Format('%d;',[StrToIntDef(AnsiMidStr(pieces.Strings[1],1,10),0)]) //Frequency + Format('%d;',[StrToIntDef(AnsiMidStr(pieces.Strings[2],1,10),0)]) //Counter1 + Format('%1.3f;',[StrToFloatDef(AnsiMidStr(pieces.Strings[3],1,11),0)]) //Time1 + Format('%d;',[StrToIntDef(AnsiMidStr(pieces.Strings[4],1,10),0)]) //Counter2 + Format('%1.3f;',[StrToFloatDef(AnsiMidStr(pieces.Strings[5],1,11),0)]) //Time2 ); Flush(DLRecFile); CloseFile(DLRecFile); end else if SelectedModel=model_V then begin //Vector model WriteDLHeader('DL-V-Log','One record logged'); result:=GetReading; pieces.DelimitedText := result; pieces.StrictDelimiter := False; //Parse spaces also if (pieces.Count=6) then begin // YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Celsius;mag/arcsec^2;Ax;Ay;Az;Mx;My;Mz;degrees;degrees;degrees;count ComputeAzimuth(); Altitude := ComputeAltitude(Ax1, Ay1, Az1); Heading := radtodeg(arctan2(-1 * Mz2, Mx2)) + 180; AssignFile(DLRecFile, LogFileName); Reset(DLRecFile); Append(DLRecFile); //Open file for appending SetTextLineEnding(DLRecFile, #13#10); Writeln(DLRecFile, FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"',LazSysUtils.NowUTC()) //Date UTC + FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"',Now()) //Date Local + Format('%1.1f;',[StrToFloatDef(AnsiLeftStr(pieces.Strings[5],length(pieces.Strings[5])-1),0)]) //Temperature + Format('%d;',[StrToIntDef(AnsiLeftStr(pieces.Strings[3],length(pieces.Strings[3])-1),0)]) //counts + Format('%d;',[StrToIntDef(AnsiLeftStr(pieces.Strings[2],length(pieces.Strings[2])-2),0)]) //Hz + Format('%1.2f;',[StrToFloatDef(AnsiLeftStr(pieces.Strings[1],length(pieces.Strings[1])-1),0)]) //mpsas value + Format('%0.0f;%0.0f;%0.0f;%0.0f;%0.0f;%0.0f;%0.1f;%0.1f;%0.0f', [ Ax, Ay, Az, // Raw Accelerometer values Mx, My, Mz, // Raw magnetometer values Altitude , // Altitude abs(Altitude - 90.0) , // Zenith Heading]) // Azimuth ); Flush(DLRecFile); CloseFile(DLRecFile); end; end else if SelectedModel=model_C then begin //Colour model WriteDLHeader('C','One record logged'); result:=GetReading; pieces.DelimitedText := result; pieces.StrictDelimiter := False; //Parse spaces also if (pieces.Count=8) then begin // YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Celsius;number;Hz;mag/arcsec^2;Scale;Color') AssignFile(DLRecFile, LogFileName); Reset(DLRecFile); Append(DLRecFile); //Open file for appending SetTextLineEnding(DLRecFile, #13#10); Writeln(DLRecFile, FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"',NowUTC()) //Date UTC + FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"',Now()) //Date Local + Format('%1.1f;',[StrToFloatDef(AnsiLeftStr(pieces.Strings[5],length(pieces.Strings[5])-1),0)]) //Temperature + Format('%d;',[StrToIntDef(AnsiLeftStr(pieces.Strings[3],length(pieces.Strings[3])-1),0)]) //counts + Format('%d;',[StrToIntDef(AnsiLeftStr(pieces.Strings[2],length(pieces.Strings[2])-2),0)]) //Hz + Format('%1.2f;',[StrToFloatDef(AnsiLeftStr(pieces.Strings[1],length(pieces.Strings[1])-1),0)]) //mpsas value + Format('%d;',[StrToIntDef(pieces.Strings[6],0)]) //Scale + Format('%d',[StrToIntDef(pieces.Strings[7],0)]) //Colour ); Flush(DLRecFile); CloseFile(DLRecFile); end else begin StatusMessage('Expected 8 fields, got '+IntToStr(pieces.Count)+'.'); end; end else begin //assume LE WriteDLHeader('LE','One record logged'); result:=GetReading; pieces.DelimitedText := result; pieces.StrictDelimiter := False; //Parse spaces also if (pieces.Count>=6) then begin // YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Celsius;number;Hz;mag/arcsec^2') AssignFile(DLRecFile, LogFileName); Reset(DLRecFile); Append(DLRecFile); //Open file for appending SetTextLineEnding(DLRecFile, #13#10); Writeln(DLRecFile, FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"',NowUTC()) //Date UTC + FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"',Now()) //Date Local + Format('%1.1f;',[StrToFloatDef(AnsiLeftStr(pieces.Strings[5],length(pieces.Strings[5])-1),0)]) //Temperature + Format('%d;',[StrToIntDef(AnsiLeftStr(pieces.Strings[3],length(pieces.Strings[3])-1),0)]) //counts + Format('%d;',[StrToIntDef(AnsiLeftStr(pieces.Strings[2],length(pieces.Strings[2])-2),0)]) //Hz + Format('%1.2f',[StrToFloatDef(AnsiLeftStr(pieces.Strings[1],length(pieces.Strings[1])-1),0)]) //mpsas value ); Flush(DLRecFile); CloseFile(DLRecFile); end else begin StatusMessage('Expected at least 6 fields, got '+IntToStr(pieces.Count)+'.'); end; end; except StatusMessage('ERROR! IORESULT: ' + IntToStr(IOResult) + ' during LogOneRecordButtonClick'); end; end else ShowMessage('Enter Time zone information into Header first. '+ sLineBreak+ 'Do this by pressing the Header button, then selecting your timezone.'); if Assigned(pieces) then FreeAndNil(pieces); end; procedure TForm1.LogPreviousRecord10Click(Sender: TObject); begin LogUpdateLogPointer(); dec(DLCurrentRecord,max(round(DLEStoredRecords/10),1)); DLCurrentRecord:=max(DLCurrentRecord,1); LogRecordGet(DLCurrentRecord); end; procedure TForm1.MenuItem1Click(Sender: TObject); begin //Convert old log to datfile dialog convertoldlogfile.ConvertOldLogForm.Show; end; procedure TForm1.PrintLabelButtonClick(Sender: TObject); //Print to DYMO LabelWriter 320 in Landscape setting using Address Labels 2" tall, 1" wide {Brother PT-P700 label printer - use driver Brother PT-2420PC Foomatic/ptouch switch off the USB drive (left button) Hint: Do not print the test page. It is just a waste of band. Printer Options: - Page size: 24x100mm (only 24mm wide tape dimension is used) - Print quality: High quality - Concatenate pages - Print density: Dark - Roll fed media: Continuous roll - Advance distance: Small - Cut mark: Print cut mark after each labels - Align: Right aligned } procedure PrintLabelLine(LabelText:String); var WhereTo: TCanvas; CH: Integer;//Column height CellMargin: Integer; H: Integer; begin WhereTo:=Printer.Canvas; CellMargin:=5; H := WhereTo.TextHeight(LabelText); CH:=H+2*CellMargin; WhereTo.TextOut( -30+PrintingLine*CH, //X axis (from left)//was 10 for DYMO320 0, // Y axis from center downwards//was 10 for DYMO320 LabelText); Inc(PrintingLine); end; begin GetVersion; GetConfCal; Application.ProcessMessages; if PrintDialog1.Execute then begin Printer.BeginDoc; Printer.Canvas.Font.Name := 'Liberation Mono'; Printer.Canvas.Font.Size := 10;//9 is a good size for Dymo address labels rotated 90deg. Printer.Canvas.Font.Orientation:=-900; //degrees * 10 (90 degrees) Application.ProcessMessages; PrintingLine:=0; //check if USB device: if ((Form1.CommNotebook.PageIndex=0) and not (SelectedModel=5)) then // USB device but not RS232 model PrintLabelLine(' USB S/N: '+ Form1.USBSerialNumber.text); //check if DataLoging device: if ((SelectedModel=6) or (SelectedModel=7) or (SelectedModel=9) or (SelectedModel=11)) then begin //DLEGetCapacity(); PrintLabelLine(Format('Capacity: %d rec',[DLEStorageCapacity])); end; //check if Ethernet device: if (Form1.CommNotebook.PageIndex=1) then PrintLabelLine(' MAC: '+ Form1.EthernetMAC.text); //All devices: PrintLabelLine(' Model: '+ SelectedModelDescription); PrintLabelLine('Unit S/N: '+ SelectedUnitSerialNumber); //writeln(Printer.PaperSize.Width);//debug //writeln(Printer.PaperSize.Height);//debug Printer.EndDoc; end; end; procedure TForm1.RS232PortDropDown(Sender: TObject); Var Info : TSearchRec; Count : Longint; Begin {$IFDEF Linux} RS232Port.Clear; Count:=0; If FindFirst ('/dev/ttyUSB*',faAnyFile ,Info)=0 then begin Repeat Inc(Count); With Info do begin //Writeln (Name:40,Size:15); RS232Port.AddItem('/dev/'+Name,Nil); end; Until FindNext(info)<>0; end; If FindFirst ('/dev/ttyS*',faAnyFile ,Info)=0 then begin Repeat Inc(Count); With Info do begin //Writeln (Name:40,Size:15); RS232Port.AddItem('/dev/'+Name,Nil); end; Until FindNext(info)<>0; end; FindClose(Info); RS232Port.Sorted:=True; {$ENDIF Linux} {$IFDEF Darwin} RS232Port.Clear; Count:=0; If FindFirst ('/dev/ttyUSB*',faAnyFile ,Info)=0 then begin Repeat Inc(Count); With Info do begin RS232Port.AddItem('/dev/'+Name,Nil); end; Until FindNext(info)<>0; end; If FindFirst ('/dev/ttyS*',faAnyFile ,Info)=0 then begin Repeat Inc(Count); With Info do begin RS232Port.AddItem('/dev/'+Name,Nil); end; Until FindNext(info)<>0; end; If FindFirst ('/dev/cu.*',faAnyFile ,Info)=0 then begin Repeat Inc(Count); With Info do begin RS232Port.AddItem('/dev/'+Name,Nil); end; Until FindNext(info)<>0; end; FindClose(Info); RS232Port.Sorted:=True; {$ENDIF Darwin} end; procedure TForm1.SnowLoggingEnableBoxChange(Sender: TObject); begin if SnowLoggingEnableBox.Checked then SnowLEDStatus(SendGet('A5ex')) else SnowLEDStatus(SendGet('A5dx')); end; procedure TForm1.USBPortChange(Sender: TObject); begin if length(USBPort.Text)>0 then EnableControls(True) else begin EnableControls(False); ClearResults(); end; EnableFirmware(); end; procedure TForm1.VCalButtonClick(Sender: TObject); begin Vector.VectorForm.VectorPageControl.TabIndex:=0; Vector.VectorForm.ShowModal; end; procedure TForm1.VersionItemClick(Sender: TObject); begin textfileviewer.fillview('Version information','changelog.txt'); end; procedure TForm1.PrintCalReportClick(Sender: TObject); begin GetVersion; GetConfCal; //writeln(Printer.Printers[Printer.PrinterIndex]); //vConfigurations.WriteString('PrintCal','PrinterName',Printer.Printers[Printer.PrinterIndex]); Application.ProcessMessages; if PrintDialog1.Execute then begin with Printer do try BeginDoc; //writeln(Printer.Printers[Printer.PrinterIndex]); // Printer.PrinterName:=vConfigurations.ReadString('PrintCal','PrinterName',Printer.PrinterName); Canvas.Font.Name:=FixedFont;// was 'Arial' Canvas.Font.Size := 8; //was 9, 8 for good fit on paper inside grid Canvas.Font.Orientation:=0; //normal rotation in case rotated label was previously printed CalPrint:=True; UpdateCalReport; CalPrint:=False; UpdateCalReport; finally EndDoc; end; //vConfigurations.WriteString('PrintCal','PrinterName',Printer.Printers[Printer.PrinterIndex]); end; end; procedure TForm1.StartResettingClick(Sender: TObject); begin //Reset unit command resets unit for three seconds. Application.ProcessMessages; //Wait about one second before moving on. ResetContinuous:=True; while ResetContinuous do begin sendget(chr($19),False,1,False); sleep(100); Application.ProcessMessages; end; end; procedure TForm1.DLGetSettings(); var result: AnsiString; UnitClock: AnsiString; ThisMomentUTC, UnitTime: TDateTime; pieces:TStringList; ClockDiffSeconds:Integer; TriggerModeNumber:Integer; begin pieces := TStringList.Create; pieces.Delimiter := ','; pieces.StrictDelimiter := True; //Do not parse spaces //Read Logging Interval settings result:=sendget('LIx'); DLTrigSeconds.Text:=IntToStr(StrToIntDef(AnsiMidStr(result,4,10),0)); DLTrigSeconds.Color:=clWindow; DLTrigMinutes.Text:=IntToStr(StrToIntDef(AnsiMidStr(result,16,10),0)); DLTrigMinutes.Color:=clWindow; //DLTrigSecondsCurrent.Text:=IntToStr(StrToIntDef(AnsiMidStr(result,28,10),0)); //DLTrigMinutesCurrent.Text:=IntToStr(StrToIntDef(AnsiMidStr(result,40,10),0)); DLThreshold.Text:=FloatToStr(StrToFloatDef(AnsiMidStr(result,52,11),0,FPointSeparator)); DLThreshold.Color:=clWindow; //Read log trigger mode result:=sendget('Lmx'); TriggerModeNumber:=StrToIntDef(AnsiMidStr(result,4,1),0); TriggerComboBox.ItemIndex:=TriggerModeNumber; case TriggerModeNumber of 1..2: Begin //Show Seconds or Minutes selection DLSecMinPages.Visible:=True; DLSecMinPages.TabIndex:=TriggerModeNumber-1; end; else DLSecMinPages.Visible:=False; end; SnowGroupBox.Visible:=SnowLoggingEnabled; //Get EEPROM capactity DLEGetCapacity(); //Get log pointer LogUpdateLogPointer(); //Get most recent record if DLDBSizeProgressBar.Position>0 then begin DLCurrentRecord:=DLEStoredRecords; LogRecordGet(DLEStoredRecords); end; //result:=sendget('L5x'); //DLInternalVoltage.Text:=Format('%.2f',[(2.048 + (3.3 * StrToFloatDef(AnsiMidStr(result,4,3),0))/256.0)]); result:=sendget('Lcx'); { Read the RTC } ThisMomentUTC:=NowUTC(); if Length(result)>=21 then begin UnitClock:=FixDate(AnsiMidStr(Trim(result),4,19)); try UnitTime:=ScanDateTime('yy-mm-dd hh:nn:ss',LeftStr(UnitClock,9)+RightStr(UnitClock,8)); except StatusMessage('Invalid RTC from device = '+UnitClock); UnitTime:=ThisMomentUTC; end; ClockDiffSeconds:=SecondsBetween(ThisMomentUTC,UnitTime); StatusMessage('Real Time Clock difference: '+IntToStr(ClockDiffSeconds)); DLClockDifference.Text:=IntToStr(ClockDiffSeconds); if ClockDiffSeconds=1 then DLClockDifferenceLabel.Caption:='second' else DLClockDifferenceLabel.Caption:='seconds'; if ThisMomentUTC>UnitTime then DLClockDifferenceLabel.Caption:=DLClockDifferenceLabel.Caption+' slow' else DLClockDifferenceLabel.Caption:=DLClockDifferenceLabel.Caption+'fast'; end else DLClockDifference.Text:='unknown'; //Read the vibration threshold if SelectedModel=model_V then begin VThreshold.Text:=''; //default to no setting ThresholdVibrationGroup.Visible:=True; pieces.DelimitedText:=sendget('vtx'); if pieces.Count=2 then begin VThreshold.Text:=format('%d',[StrToIntDef(pieces.Strings[1],0)]); end else VThreshold.Text:='0'; VThreshold.Color:=clWindow; end else ThresholdVibrationGroup.Visible:=False; //Read mutual access logging setting if (StrToInt(SelectedFeature)>=68) then begin; pieces.DelimitedText:=sendget('Ldx'); if pieces.Count=2 then begin DLLogOnBatt:=pieces.Strings[1]='1'; end else DLLogOnBatt:=False; case DLLogOnBatt of True:DLMutualAccessGroup.ItemIndex:=0; False:DLMutualAccessGroup.ItemIndex:=1; end; end; if Assigned(pieces) then FreeAndNil(pieces); end; procedure TForm1.DataNoteBookChange(Sender: TObject); begin //Check if udm found any devices or if the RSR232 tab was selected if (FoundDevices.SelCount>0) or (CommNotebook.PageIndex=2) then begin //Calibration page if DataNoteBook.ActivePage.Caption='Calibration' then begin GetCalInfo; end; //Enable accessory access if StrToIntDef(SelectedFeature,0)>=40 then begin if DataNoteBook.Pages[DataNoteBook.PageIndex].Caption='Accessories' then begin AccRefreshButtonClick(Nil); end; end; //Report Interval Page if DataNoteBook.ActivePage.Caption='Report Interval' then begin SendGet('rx');//to purge old interval reports if any ParseReportInterval(SendGet('Ix')); //The continuous functions are available on feature version is 40 and higher if StrToIntDef(SelectedFeature,0)>=40 then begin ContCheckGroup.Visible:=True; ContCheck('Yx');//Show continuous selections end else begin ContCheckGroup.Visible:=False; end; end; //All other tabs if DataNoteBook.PageIndex>=0 then begin if DataNoteBook.Page[DataNoteBook.PageIndex].Caption='Vector' then begin //show VectorTab screen end else //If not on VectorTab page begin //Shutdown monitoring //VectorTab.stopmonitoring(); end; end; //Firmware Page if DataNoteBook.ActivePage.Caption='Firmware' then begin FirmwareFilterIndex:=1; //All case CommNotebook.PageIndex of 0: begin //USB case SelectedModel of model_LELU: FirmwareFilterIndex:=2; model_DL : FirmwareFilterIndex:=3; model_V : FirmwareFilterIndex:=4; model_DLS : FirmwareFilterIndex:=6; model_GDM : FirmwareFilterIndex:=7; else FirmwareFilterIndex:=1; end; {$ifndef Windows} {Windows is too slow for USB unplugging method} FWUSBGroup.Visible:=True; {$else} FWUSBGroup.Visible:=False; {$endif} FWEthGroup.Visible:=False; end; 1: begin //Ethernet case SelectedModel of model_LELU: FirmwareFilterIndex:=2; model_C : FirmwareFilterIndex:=8; else FirmwareFilterIndex:=1; end; FWUSBGroup.Visible:=False; FWEthGroup.Visible:=True; end; 2: begin //RS232 FirmwareFilterIndex:=5; FWUSBGroup.Visible:=False; FWEthGroup.Visible:=False; end; end; CurrentFirmware.Text:=Format('%s-%d-%s',[SelectedProtocol, SelectedModel, SelectedFeature]); end; //Data Logging Page if DataNoteBook.ActivePage.Caption='Data Logging' then begin DLGetSettings(); LogUpdateLogPointer(); DLCurrentRecord:=1; LogRecordGet(DLCurrentRecord); DLMutualAccessGroup.Visible:=StrToInt(SelectedFeature)>=68; end; //Configuration Page if DataNoteBook.ActivePage.Caption='Configuration' then begin //Clear out old images (to be updated below) LockedImage.Visible:=False; UnLockedImage.Visible:=False; LockSwitchOptions.Visible:=False; GetVersion; //The lens model information is available on feature version is 35 and higher if StrToIntDef(SelectedFeature,0)>=35 then begin //Enable lens model selections LHCombo.Visible:=True; LHComboLabel.Visible:=True; LensCombo.Visible:=True; LensComboLabel.Visible:=True; FilterCombo.Visible:=True; FilterComboLabel.Visible:=True; end else begin LHCombo.Visible:=False; LHComboLabel.Visible:=False; LensCombo.Visible:=False; LensComboLabel.Visible:=False; FilterCombo.Visible:=False; FilterCombolabel.Visible:=False; end; if ((StrToIntDef(SelectedFeature,0)>=46) and ((SelectedModelDescription='SQM-LE') or (SelectedModel=model_C))) then begin //Enable Lock switch settings LockSwitchOptions.Visible:=True; LockSettingsCheck('Kx'); end; GetConfReading(); GetConfCal; UpdateCalReport; end; end; end; procedure TForm1.FWWaitUSBButtonClick(Sender: TObject); begin FirmwareCounter:=0; FirmwareState:=0; FWCounter.Caption:=''; FirmwareTimer.Enabled:=True; FWWaitUSBButton.Enabled:=False; FWStopUSBButton.Enabled:=True; end; procedure TForm1.FWStopUSBButtonClick(Sender: TObject); begin FirmwareTimer.Enabled:=False; FirmwareState:=0; FWStopUSBButton.Enabled:=False; FWCounter.Caption:=''; end; procedure TForm1.StartUpMenuItemClick(Sender: TObject); begin {Allow editing of startup optional parameters.} startupoptions.fillview(); end; procedure TForm1.FirmwareTimerTimer(Sender: TObject); var {$ifdef Windows} reg: TRegistry; Regkey: String; keys: TStringlist; i: Integer; {$endif} portexists:Boolean = False; begin {$ifdef Windows} keys := TStringList.Create; reg := TRegistry.Create; reg.RootKey := HKEY_LOCAL_MACHINE; if reg.KeyExists('HARDWARE\DEVICEMAP\SERIALCOMM\') then begin reg.OpenKeyReadOnly('HARDWARE\DEVICEMAP\SERIALCOMM\'); reg.GetValueNames(keys); for i := 0 to keys.Count-1 do begin if SelectedPort=reg.ReadString(keys.ValueFromIndex[i]) then portexists:=True; //StatusMessage('FindUSB: Connected device = "'+reg.ReadString(keys.ValueFromIndex[i])+'"'); end; end; {$endif} {$if defined(Linux) or defined(Darwin)} portexists:=FileExists(SelectedPort); {$ifend} case FirmwareState of 0: begin if not portexists then begin FWUSBExistsLabel.caption:=SelectedPort+' :unplugged, PLUG IN NOW'; StatusMessage('FW: Unit was unplugged.'); FirmwareState:=1; FirmwareCounter:=0; end else FWUSBExistsLabel.caption:=SelectedPort+' :connected, UNPLUG NOW.'; FWCounter.Visible:=True; end; 1: // wait a few seconds for power to drain from inside meter (n x 100ms timer) begin if not portexists then begin FWUSBExistsLabel.caption:=SelectedPort+' :unplugged, PLEASE WAIT.'; if FirmwareCounter>=30 then begin//30 x 100ms = 3.0s (too seconds off was too short) FirmwareState:=2; FWUSBExistsLabel.caption:=SelectedPort+' :unplugged, PLUG IN NOW.'; end; end else //must have been plugged in prematurely FirmwareState:=0; end; 2: if portexists then begin FirmwareTimer.Enabled:=False; {shut off reset oscillator} Application.ProcessMessages; FWUSBExistsLabel.caption:=SelectedPort+' :plugged in, Loading firmware.'; StatusMessage('FW: Unit was plugged in.'); FWStopUSBButton.Enabled:=False; FWCounter.Visible:=False; LoadFirmwareClick(nil); end; end; Inc(FirmwareCounter); FWCounter.Caption:=format('%0.1fs',[FirmwareCounter/10.0]); end; procedure TForm1.LoadFirmwareClick(Sender: TObject); var File1: TextFile; Str,Result: String; i:Integer; begin StatusMessage('Loading firmware started.'); FWCounter.Caption:=''; FirmwareTimer.Enabled:=False; {shut off reset oscillator} FirmwareState:=0; FinalResetForFirmwareProgressBar.Position:=0; if fileexists(FirmwareFile.Text) then begin AssignFile(File1,FirmwareFile.Text ); {$I-}//Temporarily turn off IO checking try Reset(File1); //Reset position of file to beginning. StatusMessage('Assigned and reset firmware file.'); Application.ProcessMessages; //Reset unit command resets unit for three seconds. LoadingStatus.Caption:='Resetting unit ...'; StatusMessage(LoadingStatus.Caption); sendget(chr($19),False,1,False); //Wait about one second before moving on. for i:=0 to 20 do begin sleep(50); //Caused problems when bricked unit was reset from power up. ResetForFirmwareProgressBar.Position:=i; Application.ProcessMessages; end; LoadingStatus.Caption:='Unit should have been reset ...'; StatusMessage(LoadingStatus.Caption); LoadFirmwareProgressBar.Position:=0; LoadingStatus.Caption:='Loading firmware ...'; StatusMessage(LoadingStatus.Caption); OpenComm(); repeat //Read a whole line from the hex file. Readln(File1, Str); //Send the programming line to device and expect 'OK'. //For some reason, status messages of the programming crashes a Mac, HideStatus. Result:=sendget(Str,True,7000,True,True); //Update progress bar. LoadFirmwareProgressBar.Position:=LoadFirmwareProgressBar.Position+1; Application.ProcessMessages; //Wait 10ms for Ethernet module to recuperate. sleep(10); until(EOF(File1) or (not(AnsiContainsText(Result,'Ok')))); // EOF(End Of File) keep reading new lines until end. if AnsiContainsText(Result,'Ok') then begin //Wait about one second before moving on. LoadingStatus.Caption:='Unit is resetting.'; StatusMessage(LoadingStatus.Caption); for i:=0 to 20 do begin sleep(150); FinalResetForFirmwareProgressBar.Position:=i; Application.ProcessMessages; end; LoadingStatus.Caption:='Firmware loaded and unit reset. PRESS FIND.'; StatusMessage(LoadingStatus.Caption); CurrentFirmware.Text:=''; //make user manually check firmware version ClearResults(); end else begin LoadingStatus.Caption:='Firmware load failed! Result: ' + Result; StatusMessage(LoadingStatus.Caption); end; //CloseComm; CloseFile(File1); except LoadingStatus.Caption:='File: '+FirmwareFile.Text+' IOERROR!'; StatusMessage(LoadingStatus.Caption); end; {$I+}//Turn IO checking back on. end else begin LoadingStatus.Caption:='File '+FirmwareFile.Text+' does not exist!'; StatusMessage(LoadingStatus.Caption); end; FWWaitUSBButton.Enabled:=True; FWUSBExistsLabel.caption:=''; FWCounter.Caption:=''; EnableFirmware(); end; //Check if LE lock is set: // Returns true if locked or unknown. // Returns false if unlocked. function TForm1.CheckLockSwitch():Boolean; var resultstr:ansistring; State: Boolean; begin StatusMessage('CheckLockSwitch called.'); SendGet('rx'); //Flush unwanted report interval info resultstr:=SendGet('zcalDx'); if AnsiContainsStr(resultstr, 'L') then State:=True else if AnsiContainsStr(resultstr, 'U') then State:=False else //All unknowns indicate locked (safety state) State:=True; LockedImage.Visible:=State; UnlockedImage.Visible:=not State; CheckLockSwitch:=State; end; procedure TForm1.CheckLockButtonClick(Sender: TObject); var result:ansistring; begin SendGet('rx'); //Flush unwanted report interval info result:=SendGet('zcalDx'); if AnsiContainsStr(result, 'L') then CheckLockResult.Text:='Locked' else if AnsiContainsStr(result, 'U') then CheckLockResult.Text:='Unlocked' else CheckLockResult.Text:='Unknown'; end; procedure TForm1.DataNotebookPageChanged(Sender: TObject); begin DLRefreshed:=False; end; procedure TForm1.FindAllDevices(LimitScope:String=''); var i: Integer; //General purpose counter j: Integer; //General purpose counter k: Integer = 0; //General purpose counter s : FoundDevice; //General purpose record SectionNames: TStringList; Section: String; InstID: String; SelectionString:String = ''; SelectionFound:Boolean = False; SelectionInListFound:Boolean = False; begin {Close all communications ports} CloseComm(); DataNoteBook.Enabled:=False; { Clear out existing results } ClearResults(); FoundDevices.Items.Clear; { Get saved section names for displaying Instrument ID. } SectionNames:= TStringList.Create; vConfigurations.ReadSectionNames(SectionNames); screen.Cursor:= crHourGlass; Application.ProcessMessages; SetLength(FoundDevicesArray,1); //Resize "Found devices" to accept first device. if ((LimitScope='') or (LimitScope='USB') or (ParameterCommand('-SU'))) then begin {$ifdef Darwin} // Darwin is the base OS name of Mac OS X, like NT is the name of the Win2k/XP/Vista kernel. Mac OS X = Darwin + GUI. findusbdarwin; //Try finding USB attached devices. {$endif} {$ifdef Windows} FindUSB(); //Try finding USB attached devices. {$endif} {$ifdef Linux} FindUSB(); //Try finding USB attached devices. {$endif} end; if (((LimitScope='') or (LimitScope='Eth')) and not (ParameterCommand('-SU'))) then begin findEth; //Try finding Ethernet devices. end; StatusMessage('Getting InstrumentIDs.'); //All USB devices have been found ... or not. if (high(FoundDevicesArray)=0) then StatusMessage('No devices were found') else begin //Show list of items that were found for i:=low(FoundDevicesArray) to high(FoundDevicesArray)-1 do begin //Get instrument ID of displayed device InstID:=''; //Default empty ID for Section in SectionNames do begin if (FoundDevicesArray[i].SerialNumber = vConfigurations.ReadString(Section, 'HardwareID', '')) then begin if vConfigurations.ReadString(Section, 'Instrument ID', '')<>'' then InstID:=vConfigurations.ReadString(Section, 'Instrument ID', ''); end; end; FoundDevices.Items.Add( FoundDevicesArray[i].Hardware + ' : ' + format('%12s',[FoundDevicesArray[i].SerialNumber]) + ' : ' + FoundDevicesArray[i].Connection + ' : ' + InstID); end; end; StatusMessage('Populated FoundDevices window.'); {Allow screens to be populated (may not be necessary)} Application.ProcessMessages; {Check command line option to automatically select device} if ((ParameterCommand('-SEI')) and (ParameterValue.Count>1)) then begin {Look to select Ethernet device by IP address} SelectionString:='IP address: ' + ParameterValue.Strings[1]; for i:=low(FoundDevicesArray) to high(FoundDevicesArray)-1 do begin if (FoundDevicesArray[i].Connection=ParameterValue.Strings[1]) then begin FoundDevices.Selected[i]:=True; StatusMessage('Selecting '+SelectionString); SelectionFound:=True; SelectDevice; end; end; end else if ((ParameterCommand('-SEM')) and (ParameterValue.Count>1)) then begin {Look to select Ethernet device by MAC address} SelectionString:='model: ' + ParameterValue.Strings[1]; for i:=low(FoundDevicesArray) to high(FoundDevicesArray)-1 do begin if (FoundDevicesArray[i].SerialNumber=ParameterValue.Strings[1]) then begin FoundDevices.Selected[i]:=True; StatusMessage('Selecting '+SelectionString); SelectionFound:=True; SelectDevice; end; end; end else if ((ParameterCommand('-SUC')) and (ParameterValue.Count>1)) then begin {Look to select USB device by COMPORT} SelectionString:='communications port: ' + ParameterValue.Strings[1]; for i:=low(FoundDevicesArray) to high(FoundDevicesArray)-1 do begin if (FoundDevicesArray[i].Connection=ParameterValue.Strings[1]) then begin FoundDevices.Selected[i]:=True; StatusMessage('Selecting '+SelectionString); SelectionFound:=True; SelectDevice; end; end; end else if ((ParameterCommand('-SUI')) and (ParameterValue.Count>1)) then begin {Look to select USB device by ID value, i.e. FTD12345} {*** TODO: parse multiple IDs (for use in logging more than one meter), and then get the port information for each of them for use in logcontinuous} {i.e. -SUI,FTD12345 i.e. -SUI,FTD12345,FTD12346,FTD12347 - Priority of selected deive is first to last in the list. - LogContinuous will get data from each selected found device.} StatusMessage('Devices available for LogContinuous: '+IntToStr(high(SelectedDevicesArray)+1));; for j:= ParameterValue.Count-1 downto 1 do begin //grab all entries except the initial command SelectionString:='device: ' + ParameterValue.Strings[j]; StatusMessage('Looking for USB '+SelectionString); SelectionInListFound:=False; for i:=low(FoundDevicesArray) to high(FoundDevicesArray)-1 do begin if (FoundDevicesArray[i].SerialNumber=ParameterValue.Strings[j]) then begin FoundDevices.Selected[i]:=True; StatusMessage('Found, selecting '+SelectionString); SelectionInListFound:=True; SelectionFound:=True; SelectDevice; {Add selected device to array for LogContinuos to use.} SetLength(SelectedDevicesArray,high(SelectedDevicesArray)+2); StatusMessage('Devices available for LogContinuous: '+IntToStr(high(SelectedDevicesArray)+1));; SelectedDevicesArray[k]:=FoundDevicesArray[i]; SelectedDevicesArray[k].Index:=i; Inc(k); //increment end; end; if not SelectionInListFound then StatusMessage('Desired USB ID not found: '+ParameterValue.Strings[j] ); end; for s in SelectedDevicesArray do begin StatusMessage('Device available for logging: '+ s.Hardware +' : '+ s.SerialNumber+' : '+s.Connection ); end; {Check how many available selected devices are defined for LogContinuous - if 0 in array, then just use the already selected device - else use the array NumberOfMultipleDevices=0 no multiples selected at the command line, user selsected one meter from the FoundDevices list NumberOfMultipleDevices>0 multiples selected at the command line} if (high(SelectedDevicesArray))>0 then begin NumberOfMultipleDevices:=high(SelectedDevicesArray)+1; StatusMessage('Number of Multiple devices: '+ IntToStr(NumberOfMultipleDevices)); end; end else begin {For convenience, if only one device was found, select it.} if FoundDevices.Count=1 then begin DataNoteBook.Enabled:=True; FoundDevices.Selected[0]:=True; StatusMessage('Only one device found, selecting it.'); SelectDevice; //enables all allowed control buttons GetReading; end else if FoundDevices.Count>1 then begin DataNoteBook.Enabled:=False; StatusMessage('More than one possible device found. Select the desired device.'); SelectDevice; {disables all disallowed control buttons.} end else begin DataNoteBook.Enabled:=False; StatusMessage('No devices found, disabling all disallowed control buttons.'); SelectDevice; {disables all disallowed control buttons.} end; end; screen.Cursor:= crDefault; if Assigned(SectionNames) then FreeAndNil(SectionNames); //StatusMessage('FoundDevices listed.'); if ((SelectionString <>'') and (not SelectionFound)) then StatusMessage(SelectionString+' not found.'); end; procedure TForm1.FindButtonClick(Sender: TObject); begin //Do not allow more clicks because it will produce multiple requests that show up in the found devices table. FindButton.Enabled:=False; FindAllDevices(); //Re enable this button after finding devices. FindButton.Enabled:=True; end; procedure TForm1.SelectDevice; const {$WRITEABLECONST ON} IsInside:Boolean=False; {$WRITEABLECONST OFF} var ItemSelected:Integer; EnableControl:Boolean; begin if IsInSide then begin StatusMessage('Is inside SelectDevice already, possible pressed Find more than once quickly.'); Exit; end; IsInside:=True; try if (not(gettingversion) and not(gettingreading)) then begin {Close existing comm if opened} CloseComm(); //Defaults ItemSelected:=0; EnableControl:= False; LoadFirmware.Enabled:= False; LoadingStatus.Caption:=''; //Make sure that Information page is selected since some pages depend on model and version. DataNoteBook.PageIndex:=0; //Hide normally unused pages DataNoteBook.Page[4].TabVisible:=False; //Datalogging page DataNoteBook.Page[6].TabVisible:=False; //GPS page DataNoteBook.Page[9].TabVisible:=False; //Vector page if FoundDevices.Count>0 then begin ItemSelected:=FoundDevices.ItemIndex; { Check that an item is selected. } if (ItemSelected>-1) then begin DataNoteBook.Enabled:=True; FoundDevices.Selected[ItemSelected]:=True; ClearResults(); StatusMessage(Format('ItemSelected: row %d.',[ItemSelected])); if FoundDevicesArray[ItemSelected].Hardware = 'USB' then begin SelectedHardwareID:=FoundDevicesArray[ItemSelected].SerialNumber; USBSerialNumber.Text:=SelectedHardwareID; USBPort.Text:=FoundDevicesArray[ItemSelected].Connection; CommNotebook.PageIndex:=0; Application.ProcessMessages; SelectedInterface:='USB'; SelectedPort:=USBPort.Text; StatusMessage(Format('USB SN: %s Device: %s has been selected.',[SelectedHardwareID, SelectedPort])); end; if ((FoundDevicesArray[ItemSelected].Hardware = 'Eth') or (FoundDevicesArray[ItemSelected].Hardware = 'WiFi')) then begin SelectedHardwareID:=FoundDevicesArray[ItemSelected].SerialNumber; EthernetMAC.Text:=SelectedHardwareID; EthernetIP.Text:=FoundDevicesArray[ItemSelected].Connection; EthernetPort.Text:='10001'; CommNotebook.PageIndex:=1; Application.ProcessMessages; SelectedInterface:=FoundDevicesArray[ItemSelected].Hardware; SelectedIP:=EthernetIP.Text; SelectedPort:=EthernetPort.Text; bXPortDefaults.Enabled:=True; StatusMessage(Format('%s MAC: %s Device: %s has been selected.',[SelectedInterface,SelectedHardwareID, SelectedIP])); end; { Highlight the selected device. } //FoundDevices.Selected[ItemSelected]:=True; { Enable controls if a device is selected. } EnableControl:= (ItemSelected>-1); LoadFirmware.Enabled:=((not(FirmwareFile.Text='')) and (FoundDevices.SelCount>0)); end else if CommNotebook.PageIndex=2 then begin {RS232 selected} SelectedInterface:='RS232'; SelectedPort:=RS232PortName; ClearResults(); EnableControl:= True; end; end; EnableControls(EnableControl); end; //end of checking if getting version or getting reading finally IsInside:=False; end; end; procedure TForm1.EnableControls(EnableControl:Boolean); begin VersionButton.Enabled:=EnableControl; RequestButton.Enabled:=EnableControl; LogOneRecordButton.Enabled:=EnableControl; LogContinuousButton.Enabled:=EnableControl; GetCalInfoButton.Enabled:=EnableControl; LogCalInfoButton.Enabled:=EnableControl; LCOSet.Enabled:=EnableControl; LCTSet.Enabled:=EnableControl; DCPSet.Enabled:=EnableControl; DCTSet.Enabled:=EnableControl; ITiERButton.Enabled:=EnableControl; ITiRButton.Enabled:=EnableControl; IThERButton.Enabled:=EnableControl; IThRButton.Enabled:=EnableControl; GetReportInterval.Enabled:=EnableControl; end; procedure TForm1.FoundDevicesClick(Sender: TObject); begin SelectDevice; end; procedure TForm1.FoundDevicesSelectionChange(Sender: TObject; User: boolean); begin //SelectDevice; end; procedure TForm1.StartSimulationClick(Sender: TObject); var Period, PeriodMin, PeriodMax, PeriodStep:Int64; //nS Temperature, TemperatureMin, TemperatureMax, TempStep:Integer; //ADC Verbose:Boolean; begin SimEnable:=True; Verbose:=SimVerbose.Checked; { Period of sensor in counts, counts occur at a rate of 460.8 kHz (14.7456MHz/32). Start simulation range and log to a text file or plot on a chart. } //Todo : start frequency gers messed up eg. 450000 -> 450045 // because of conversion to period and loss of decimal point. PeriodMin:=StrToInt64('1000000000') div StrToInt64(SimFreqMax.Text); PeriodMax:=StrToInt64(SimPeriodMax.Text) * StrToInt64('1000000000'); if SimTimingDiv.Value >0 then PeriodStep:=(PeriodMax - PeriodMin) div (SimTimingDiv.Value) else PeriodStep:=0; SimResults.Lines.Clear; if Verbose then begin SimResults.Lines.Add('==============================='); SimResults.Lines.Add(Format(' Period Min: %d ns',[PeriodMin])); SimResults.Lines.Add(Format(' Period Max: %d ns',[PeriodMax])); if SimTimingDiv.Value >0 then SimResults.Lines.Add(Format(' Period Step: %d ns',[PeriodStep])); SimResults.Lines.Add('------------------------------'); end; TemperatureMin:=StrToInt(SimTempMin.Text); TemperatureMax:=StrToInt(SimTempMax.Text); if SimTempDiv.Value > 0 then TempStep:=(TemperatureMax - TemperatureMin) div (SimTempDiv.Value) else TempStep:=0; if Verbose then begin SimResults.Lines.Add(Format(' Temperature Min: %d ADC',[TemperatureMin])); SimResults.Lines.Add(Format(' Temperature Max: %d ADC',[TemperatureMax])); if SimTempDiv.Value > 0 then SimResults.Lines.Add(Format(' Temperature Step: %d ADC',[TempStep])); SimResults.Lines.Add('------------------------------'); end; Temperature:=TemperatureMin; while ((Temperature <= TemperatureMax) and SimEnable) do begin Period:=PeriodMin; while ((Period <= PeriodMax) and SimEnable) do begin Application.ProcessMessages; if Verbose then begin SimResults.Lines.Add(Format(' Period: %d ns',[Period])); SimResults.Lines.Add(Format(' Frequency: %d Hz',[(StrToInt64('1000000000') div Period)])); SimResults.Lines.Add(Format('Temperature: %d ADC',[Temperature])); SimResults.Lines.Add(' '); end; //Send request and Parse reply SimResults.Lines.Add(sendget(Format( 'S%10.10d,%10.10d,%05.05dx', [(StrToInt64('4608')*Period div StrToInt64('10000000')), (StrToInt64('1000000000') div Period), Temperature]))); if SimTimingDiv.Value > 0 then Inc(Period, PeriodStep) else Break; end; if SimTempDiv.Value > 0 then Inc(Temperature, TempStep) else Break; end; end; procedure TForm1.StopResettingClick(Sender: TObject); begin ResetContinuous:=False; end; procedure TForm1.StopSimulationClick(Sender: TObject); begin SimEnable:=False; end; //RecordNumber value starts at 1 (as displayed on screen) procedure TForm1.LogRecordGet(RecordNumber:LongInt); var Attr1: TtkTokenKind; Voltage: Real; pieces: TStringList; DesiredPieces: Integer; FirstRecordIndicator:Integer; begin //default Voltage:=0.0; //Define number of fields. Do not include first record indicator here. case SelectedModel of model_DL : DesiredPieces:=5; model_DLS : DesiredPieces:=6; model_V : DesiredPieces:=12; end; if StrToInt(SelectedFeature)>=49 then // feature 49 and above have 1st record indicator Inc(DesiredPieces); LimitInteger(RecordNumber, 1, DLEStorageCapacity); pieces := TStringList.Create; pieces.Delimiter := ','; pieces.StrictDelimiter := True; //Do not parse spaces // create highlighter Highlighter:=TSynPositionHighlighter.Create(Self); // add some attributes Attr1:=Highlighter.CreateTokenID('Attr1',clWhite,clRed,[]); // Get number of stored records LogUpdateLogPointer(); if DLEStoredRecords>0 then begin LogRecordResult.Clear; pieces.DelimitedText := sendget(Format('L4%010.10dx',[RecordNumber-1])); if (pieces.Count>=DesiredPieces) then begin //Get first record indicator if StrToInt(SelectedFeature)>=49 then begin if SelectedModel=model_V then FirstRecordIndicator:=StrToInt(pieces.Strings[12]) else FirstRecordIndicator:=StrToInt(pieces.Strings[5]); end; LogRecordResult.Append(Format(' Record: %d',[RecordNumber])); LogRecordResult.Lines.Append(Format(' UTC Date: %s',[FixDate(pieces.Strings[1])])); LogRecordResult.Lines.Append(Format(' Reading: %4.2fmpsas',[StrToFloatDef(pieces.Strings[2],0,FPointSeparator)])); LogRecordResult.Lines.Append(Format('Temperature: %2.1fC',[StrToFloatDef(AnsiLeftStr(pieces.Strings[3],Length(pieces.Strings[3])-1),0,FPointSeparator)])); Voltage:=(2.048 + (3.3 * StrToFloatDef(pieces.Strings[4],0,FPointSeparator))/256.0); LogRecordResult.Lines.Append(Format(' Voltage: %1.2fV',[Voltage])); // define highlighted areas if (Voltage < 4.0) then Highlighter.AddToken(4,30,Attr1) else Highlighter.AddToken(4,30,tkText); LogRecordResult.Highlighter:=Highlighter; // use highlighter if SelectedModel=model_V then begin Ax:= -1.0 * StrToFloatDef(pieces.Strings[5],0); Ay:= StrToFloatDef(pieces.Strings[6],0); Az:= StrToFloatDef(pieces.Strings[7],0); NormalizeAccel(); //Compute acceleration values (In the future, this may be done inside the PIC) //LogRecordResult.Lines.Append(Format(' Altitude: %4.0f°',[radtodeg(arcsin(-1.0*Ax1))])); LogRecordResult.Lines.Append(Format(' Altitude: %4.1f°',[ComputeAltitude(Ax1, Ay1, Az1)])); Mx:= StrToFloatDef(pieces.Strings[ 8],0); My:= -1.0 * StrToFloatDef(pieces.Strings[ 9],0); Mz:= -1.0 * StrToFloatDef(pieces.Strings[10],0); NormalizeMag(); ComputeAzimuth(); Heading:=radtodeg(arctan2(-1*Mz2,Mx2))+180; LogRecordResult.Lines.Append(Format(' Azimuth: %4.0f°',[Heading])); LogRecordResult.Lines.Append(Format(' Vibration: %5d',[StrToIntDef(pieces.Strings[11],0)])); end; if StrToInt(SelectedFeature)>=49 then begin if FirstRecordIndicator=1 then LogRecordResult.Lines.Append(' Type: Subsequent') else LogRecordResult.Lines.Append(' Type: Initial'); end; //Snow factor //Optional flag 0/1 indicates if snow factor exists in record. if ((SelectedModel=model_DLS) and (pieces.Count>=DesiredPieces)) then begin case pieces.Strings[6] of '0': ; '1': begin LogRecordResult.Lines.Append(Format(' Std Lin.: %u',[StrToDWordDef(pieces.Strings[7],0)])); LogRecordResult.Lines.Append(Format(' Snow rdg: %4.2fmpsas',[StrToFloatDef(pieces.Strings[8],0,FPointSeparator)])); LogRecordResult.Lines.Append(Format(' Snow Lin.: %u',[StrToDWordDef(pieces.Strings[9],0)])); end; end; end; end else LogRecordResult.Append(Format('result pieces should be %d, but is %d',[DesiredPieces,pieces.Count])); end else begin LogRecordResult.Clear; LogRecordResult.Append('No records stored yet.'); end; end; procedure TForm1.TrickleOnButtonClick(Sender: TObject); begin SendGet('LBx'); StatusMessage('Trickle On'); end; procedure TForm1.TrickleOffButtonClick(Sender: TObject); begin SendGet('Lbx'); StatusMessage('Trickle Off'); end; procedure TriggerModeChange(); var result:String; TriggerModeNumber, CurrentTriggerModeNumber:Integer; begin StatusMessage('DL Trigger mode button changed.'); //Only set mode if received mode is different than displayed mode. This will save on EEPROM write life. with Form1 do begin //Read log trigger mode CurrentTriggerModeNumber:=StrToIntDef(AnsiMidStr(sendget('Lmx'),4,1),0); if (TriggerComboBox.ItemIndex <> CurrentTriggerModeNumber) then begin result:=SendGet('LM'+IntToStr(TriggerComboBox.ItemIndex)+'x'); TriggerModeNumber:=StrToInt(AnsiMidStr(result,4,1)); StatusMessage('Set trigger mode to value '+ IntToStr(TriggerModeNumber)); // Check result case TriggerModeNumber of 0..7: TriggerComboBox.ItemIndex:=TriggerModeNumber; else begin TriggerComboBox.ItemIndex:=0; StatusMessage(Format('Invalid trigger mode: %d',[TriggerModeNumber])); end; end; case TriggerModeNumber of 1..2: Begin //Show Seconds or Minutes selection DLSecMinPages.Visible:=True; DLSecMinPages.TabIndex:=TriggerModeNumber-1; end; else DLSecMinPages.Visible:=False; end; end else begin StatusMessage(Format('Current trigger mode: %d = Desired trigger mode %d',[CurrentTriggerModeNumber,TriggerModeNumber])); end; EstimateBatteryLife; end; end; procedure TForm1.TriggerComboBoxChange(Sender: TObject); begin TriggerModeChange(); end; procedure TForm1.TriggerGroupSelectionChanged(Sender: TObject); begin TriggerModeChange(); end; procedure TForm1.LCOSetClick(Sender: TObject); var pieces: TStringList; begin StatusMessage('Light calibration offset set.'); pieces := TStringList.Create; pieces.Delimiter := ','; pieces.DelimitedText:=SendGet(Format('zcal5%sx',[FormatFloat('00000000.00',StrToFloatDef(LCODes.text,0,FPointSeparator))])); if ((pieces.Count>=3) and (pieces.Strings[0]='z')) then LCOAct.Text:=Format('%.2f',[StrToFloatDef(AnsiReplaceStr(pieces.Strings[2],'m',''),0,FPointSeparator)]); end; procedure TForm1.LCTSetClick(Sender: TObject); var pieces: TStringList; begin StatusMessage('Light calibration temperature set.'); pieces := TStringList.Create; pieces.Delimiter := ','; pieces.DelimitedText := SendGet(Format('zcal6%sx',[FormatFloat('00000000.00',StrToFloatDef(LCTDes.text,0,FPointSeparator))])); if ((pieces.Count>=3) and (pieces.Strings[0]='z')) then LCTAct.Text:=Format('%.1f',[StrToFloatDef(AnsiReplaceStr(pieces.Strings[2],'C',''),0,FPointSeparator)]); end; procedure TForm1.DCPSetClick(Sender: TObject); var pieces: TStringList; begin StatusMessage('Dark calibration period set.'); pieces := TStringList.Create; pieces.Delimiter := ','; pieces.DelimitedText := SendGet(Format('zcal7%sx',[FormatFloat('0000000.000',StrToFloatDef(DCPDes.text,0,FPointSeparator))])); if ((pieces.Count>=3) and (pieces.Strings[0]='z')) then DCPAct.Text:=Format('%.3f',[StrToFloatDef(AnsiReplaceStr(pieces.Strings[2],'s',''),0,FPointSeparator)]); end; procedure TForm1.DCTSetClick(Sender: TObject); var pieces: TStringList; begin StatusMessage('Dark calibration temperature set.'); pieces := TStringList.Create; pieces.Delimiter := ','; pieces.DelimitedText := SendGet(Format('zcal8%sx',[FormatFloat('00000000.00',StrToFloatDef(DCTDes.text,0,FPointSeparator))])); if ((pieces.Count>=3) and (pieces.Strings[0]='z')) then DCTAct.Text:=Format('%.1f',[StrToFloatDef(AnsiReplaceStr(pieces.Strings[2],'C',''),0,FPointSeparator)]); end; procedure TForm1.FormShow(Sender: TObject); var i: Integer; str: String; StartupParmeterPointer:Integer=1; pieces: TStringList; begin Application.ProcessMessages; StatusMessage('UDM Version: '+UDMversion); //program version //Operating system details {$if defined(MSWindows)} StatusMessage('Operating system: Windows'); {$ifend} {$if defined(Linux)} StatusMessage('Operating system: Linux'); {$ifend} {$ifdef Darwin} StatusMessage('Operating system: MacOSX (Darwin)'); {$ifend} //Indicate start time StatusMessage('Started at: '+FormatDateTime('yyyy-mm-dd hh:nn:ss',Now())); //Show command line with options str:='Started as: '; for i:=0 to Paramcount do str:=str + ' ' + ParamStr(i); StatusMessage(str); {Read Startup options.} StartUpSettings:=vConfigurations.ReadString('StartUp','Settings',''); pieces := TStringList.Create; pieces.Delimiter := ' '; pieces.DelimitedText:=StartUpSettings; StartupParamcount:=pieces.Count; StartupParamStrings:=pieces.ToStringArray; pieces.Destroy; if StartupParamcount>0 then StatusMessage('StartupOptions: '+StartUpSettings); //Indicate configuration path StatusMessage('ConfigFilePath: '+ConfigFilePath); //Search for attached devices or not if (not ParameterCommand('-N')) then FindAllDevices(''); //ARPMethod.Formarpmethod.Show; //debug end; procedure TForm1.FormActivate(Sender: TObject); begin {If another window was supposed to be shown via command line action, then put it into focus.} If InitialLoad then begin {Disable this code after initial loading} InitialLoad:=False; {Check if Log continuous record command line option is selected} if (ParameterCommand('-LCR') or ParameterCommand('-LCGRS')) then begin LogContinuousButtonClick(Form1); end; {Check if Log continuous was interrupted by a crash} LCLoggingUnderway:=vConfigurations.ReadBool('LogContinuousPersistence', 'LoggingUnderway', False); if (LCLoggingUnderway and (SelectedHardwareID<>'')) then LogContinuousButtonClick(Form1); {Check if plotter view should be initially displayed} if ParameterCommand('-P') then plotter.PlotterForm.show; {Check if DL retreive view should be initially displayed} if ParameterCommand('-DLR') then begin LogUpdateLogPointer(); dlretrieve.VectorPlotOverride:=true; dlretrieve.DLRetrieveForm.ShowModal; end; {Check if DL Retreive Send Shutdown} if ParameterCommand('-DLRSS') then begin GetReading; //read selected meter details dlheader.DLHeaderForm.ReadINI(); //Get time zone for the selected meter dlretrieve.DLRetrieveForm.BlockClick(nil); //Retrieve all DL readings //LogUpdateLogPointer(); //dlretrieve.VectorPlotOverride:=true; //dlretrieve.DLRetrieveForm.ShowModal; end; {Check if Concatenate tool should be initilally displayed} if ParameterCommand('-TCA') then begin concattool.ConcatToolForm.Show; end; {Check if Cloud removal / Milky Way tool should be initilally displayed} if (ParameterCommand('-TCM') or ParameterCommand('-TCMR'))then begin CloudRemUnit.CloudRemMilkyWay.Show; end; end; end; procedure TForm1.ConfigBrowserMenuItemClick(Sender: TObject); begin ConfigBrowserForm.ShowModal; end; procedure TForm1.GetCalInfo(); var pieces: TStringList; ResultCount:Integer; begin //Clear out existing results LCOAct.clear; LCTAct.clear; DCPAct.clear; DCTAct.clear; pieces := TStringList.Create; pieces.Delimiter := ','; pieces.DelimitedText := SendGet('cx'); //Check size of array. 5 Sections normally, 6 sections when checksum is sent. // and that returned value is "info". if ((pieces.Count>=6) and (pieces.Strings[0]='c')) then begin ResultCount:=1; end else //Try once again. Sometimes dual responses get through here. begin pieces.DelimitedText := SendGet('cx'); if ((pieces.Count>=6) and (pieces.Strings[0]='c')) then ResultCount:=2 else begin StatusMessage('GetCalInfo: Could not get calibration information on second try.'); end; end; if ResultCount>0 then begin LCOAct.Text:=Format('%.2f',[StrToFloatDef(AnsiReplaceStr(pieces.Strings[1],'m',''),0,FPointSeparator)]); LCTAct.Text:=Format('%.1f',[StrToFloatDef(AnsiReplaceStr(pieces.Strings[3],'C',''),0,FPointSeparator)]); DCPAct.Text:=Format('%.3f',[StrToFloatDef(AnsiReplaceStr(pieces.Strings[2],'s',''),0,FPointSeparator)]); DCTAct.Text:=Format('%.1f',[StrToFloatDef(AnsiReplaceStr(pieces.Strings[5],'C',''),0,FPointSeparator)]); end; end; procedure TForm1.GetCalInfoButtonClick(Sender: TObject); begin GetCalInfo(); end; // This function is deprecated, use "Log Cal" button on Configuration page. procedure TForm1.LogCalInfoButtonClick(Sender: TObject); var LogCalFile: TextFile; begin //Example of logged calibration data: //FTF4FOV0 //i,00000004,00000006,00000020,00001839 //c,00000019.96m,0000151.490s, 019.6C,00000008.71m, 021.2C begin AssignFile(LogCalFile,(appsettings.LogsDirectory+FormatDateTime('yyyymmdd-hhnnss',Now())+'.cal')); try Rewrite(LogCalFile); //create new file if CommNotebook.PageIndex=0 then //USB device Writeln(LogCalFile,USBSerialNumber.Text); if CommNotebook.PageIndex=1 then //Ethernet device Writeln(LogCalFile,EthernetMAC.Text); Writeln(LogCalFile,sendget('ix')); Writeln(LogCalFile,sendget('cx')); except StatusMessage('ERROR! IORESULT: ' + IntToStr(IOResult) + ' during LogCalInfoButtonClick'); end; CloseFile(LogCalFile); end end; procedure TForm1.ParseReportInterval(Response: String); var pieces: TStringList; begin StatusMessage('ParseReportInterval response: '+Response); //Clear out existing results ITiE.clear; ITiR.clear; IThE.clear; IThR.clear; pieces := TStringList.Create; pieces.Delimiter := ','; pieces.DelimitedText := Response; if (pieces.Count=4) then begin ITiE.Text:=Format('%d',[StrToIntDef(AnsiReplaceStr(pieces.Strings[0],'s',''),0)]); ITiR.Text:=Format('%d',[StrToIntDef(AnsiReplaceStr(pieces.Strings[1],'s',''),0)]); IThE.Text:=Format('%.2f',[StrToFloatDef(AnsiReplaceStr(pieces.Strings[2],'m',''),0,FPointSeparator)]); IThR.Text:=Format('%.2f',[StrToFloatDef(AnsiReplaceStr(pieces.Strings[3],'m',''),0,FPointSeparator)]); end; if Assigned(pieces) then FreeAndNil(pieces); end; procedure TForm1.GetReportIntervalClick(Sender: TObject); begin SendGet('rx');//to purge old interval reports if any ParseReportInterval(SendGet('Ix')); end; procedure TForm1.IThERButtonClick(Sender: TObject); begin SendGet('rx');//to purge old interval reports if any ParseReportInterval(SendGet(Format('T%sx',[FormatFloat('00000000.00',StrToFloatDef(IThDes.text,0,FPointSeparator))]))); end; procedure TForm1.IThRButtonClick(Sender: TObject); begin SendGet('rx');//to purge old interval reports if any ParseReportInterval(SendGet(Format('t%sx',[FormatFloat('00000000.00',StrToFloatDef(IThDes.text,0,FPointSeparator))]))); end; procedure TForm1.ITiERButtonClick(Sender: TObject); begin SendGet('rx');//to purge old interval reports if any ParseReportInterval(SendGet(Format('P%sx',[FormatFloat('0000000000',StrToFloatDef(ITiDes.text,0,FPointSeparator))]))); end; procedure TForm1.ITiRButtonClick(Sender: TObject); begin SendGet('rx');//to purge old interval reports if any ParseReportInterval(SendGet(Format('p%sx',[FormatFloat('0000000000',StrToFloatDef(ITiDes.text,0,FPointSeparator))]))); end; procedure TForm1.VersionButtonClick(Sender: TObject); begin GetVersion; end; procedure TForm1.ViewConfigMenuItemClick(Sender: TObject); begin DataNoteBook.Page[5].TabVisible:=ViewConfigMenuItem.Checked; //Configuration end; procedure TForm1.ViewLogMenuItemClick(Sender: TObject); begin Form5.Show; Form5.SynEdit1.Clear; ViewingLog:=True; Form5.SynEdit1.Lines.AddStrings(ViewedLog); end; procedure TForm1.ViewSimMenuItemClick(Sender: TObject); begin DataNoteBook.Page[8].TabVisible:=ViewSimMenuItem.Checked; //Simulation end; procedure TForm1.VThresholdChange(Sender: TObject); begin VThreshold.Color:=clFuchsia; end; procedure TForm1.VThresholdSetClick(Sender: TObject); begin SendGet(Format('vT%06.5dx',[(StrToIntDef(VThreshold.Text,0))])); { TODO 2 : check result } VThreshold.Color:=clWindow; end; {$IFDEF Unix} Procedure MySigPipe(Sig : Longint; Info : PSigInfo; Context : PSigContext);cdecl; Begin ShowMessage('signal was triggered'); end; procedure TForm1.InstallSigHandler; Var act : SigactionRec; begin //fpSigaction(SIGTERM,nil,@act);//the old action is stored there act.sa_handler:=@MySigPipe; //act.sa_flags:=act.sa_flags or SA_SIGINFO; //act.sa_flags:=act.sa_flags; //fpSigaction(SIGPIPE,@act,nil); fpSigaction(SIGUSR1,@act,nil);//then the new action for signal Sig is taken from it end; {$ENDIF} { TODO : Consider using standard EnsureRange } function LimitInteger(Source:Integer; Minimum:Integer; Maximum:Integer):Integer; begin LimitInteger:=Source; if SourceMaximum then LimitInteger:=Maximum; end; {Removes multiple slashes from string} function RemoveMultiSlash(Input: String): String; var tempstr:String; begin tempstr:=Input; while Pos('//',tempstr)>0 do begin tempstr := StringReplace(tempstr,'//','/',[rfReplaceAll]); end; while Pos('\\',tempstr)>0 do begin tempstr := StringReplace(tempstr,'\\','\',[rfReplaceAll]); end; Result:=tempstr; end; initialization {$I unit1.lrs} finalization end. ./UMathInterpolation.pas0000644000175000017500000004713414576573021015453 0ustar anthonyanthonyunit UMathInterpolation; {$mode objfpc}{$H+} interface uses SysUtils, Matrix; type TIntMode3D = (IM_DELAUNAY); // interpolation mode TTriangle = record a,b,c: Integer; // index of TriangleArray representing 3 edge points end; TTriangleArray = array of TTriangle; // list of triangles TCircle = record Center: Tvector2_double_data; // circle center Radius: Single; // circle radius end; TDataPoints = array of Tvector3_double_data; { TInterpolation3D } TInterpolation3D = class(TObject) strict private fInterpolationMode: TIntMode3D; fData: TDataPoints; fxmin,fxmax,fymin,fymax,fzmin,fzmax: Double; // Delaunay-Triangles & Barycentric Interpolation fTriangles: TTriangleArray; function CalcTriangleArea(a,b,c: Tvector3_double_data): Double; function PointIsInTriangle(ax,ay: Double; iNN1,iNN2,iNN3:Integer): Boolean; function PointsToCircumCircle(Const a,b,c: Tvector2_double): TCircle; function Points2DToDelaunayTriangleList(CheckForDoublePoints: Boolean = True): TTriangleArray; function GetIntDataDelaunay(x,y: Double): Double; // misc. procedure SetZmin(const AValue: Double); procedure SetZmax(const AValue: Double); public property Data: TDataPoints read fData; property InterpolationMode: TIntMode3D read fInterpolationMode write fInterpolationMode default IM_DELAUNAY; property Triangles: TTriangleArray read fTriangles; property xmin: Double read fxmin write fxmin; property xmax: Double read fxmax write fxmax; property ymin: Double read fymin write fymin; property ymax: Double read fymax write fymax; property zmin: Double read fzmin write SetZmin; property zmax: Double read fzmax write SetZmax; procedure ClearData; procedure AddData(xMeas,yMeas,zMeas: Double); function GetIntData(x,y: Double): Double; function GetNomalizedIntData(x,y: Double): Double; end; implementation uses Dialogs, Math; { TInterpolation3D } {******************************************************************************} function TInterpolation3D.CalcTriangleArea(a,b,c: Tvector3_double_data): Double; // Code by Corpsman (corpsman@corpsman.de) var d1x,d2x,d1y,d2y: Double; begin d1x := b[0] - a[0]; d1y := b[1] - a[1]; d2x := c[0] - a[0]; d2y := c[1] - a[1]; Result := 0.5 * (d1x*d2y - d2x*d1y); If Result = 0 then Result := 1E-15; end; {******************************************************************************} function TInterpolation3D.PointIsInTriangle(ax,ay: Double; iNN1,iNN2,iNN3: Integer): Boolean; var bx,by,cx,cy: Double; tmp: Double; begin Result := true; bx := fData[iNN2,0] - fData[iNN1,0]; by := fData[iNN2,1] - fData[iNN1,1]; cx := ax - fData[iNN1,0]; cy := ay - fData[iNN1,1]; tmp := bx*cy - by*cx; bx := fData[iNN3,0] - fData[iNN2,0]; by := fData[iNN3,1] - fData[iNN2,1]; cx := ax - fData[iNN2,0]; cy := ay - fData[iNN2,1]; If Sign(tmp)*(bx*cy - by*cx) < 0 then begin Result := false; Exit; end; bx := fData[iNN1,0] - fData[iNN3,0]; by := fData[iNN1,1] - fData[iNN3,1]; cx := ax - fData[iNN3,0]; cy := ay - fData[iNN3,1]; If Sign(tmp)*(bx*cy - by*cx) < 0 then Result := false; end; {******************************************************************************} function TInterpolation3D.PointsToCircumCircle(const a,b,c: Tvector2_double): TCircle; // Calculate circumcircle for 3 points a,b,c // Radius = negativ --> points are kolinear var Diskr: Double; ax,ay,bx,by,cx,cy: Double; begin ax := a.data[0]; ay := a.data[1]; bx := b.data[0]; by := b.data[1]; cx := c.data[0]; cy := c.data[1]; Diskr := ay*(bx-cx) + by*cx - bx*cy + ax*(-by+cy); If Diskr = 0 then begin Result.Center[0] := 0; Result.Center[1] := 0; Result.Radius := -1; Exit; end; Result.Radius := Sqrt(((a-b).squared_length * (a-c).squared_length * (b-c).squared_length)/Sqr(Diskr))/2; Result.Center[0] := (by*Sqr(cx) - (Sqr(bx)+Sqr(by))*cy + by*Sqr(cy) + Sqr(ax)*(cy-by) + Sqr(ay)*(cy-by) + ay*(Sqr(bx) + Sqr(by) - Sqr(cx) - Sqr(cy))) / (2*Diskr); Result.Center[1] := (Sqr(ax)*(bx-cx) + Sqr(ay)*(bx-cx) + cx*(Sqr(bx)+Sqr(by)-bx*cx) - bx*Sqr(cy) + ax*(Sqr(cx)-Sqr(bx)+Sqr(cy)-Sqr(by))) / (2*Diskr); end; // Credit to Paul Bourke (pbourke@swin.edu.au) for the original Fortran 77 Program :)) // Conversion to Visual Basic by EluZioN (EluZioN@casesladder.com) // Conversion from VB to Delphi6 by Dr Steve Evans (steve@lociuk.com) // Conversion from Delphi6 to FreePascal by Corpsman (corpsman@corpsman.de) /////////////////////////////////////////////////////////////////////////////// // June 2002 Update by Dr Steve Evans (steve@lociuk.com): Heap memory allocation // added to prevent stack overflow when MaxVertices and MaxTriangles are very large. // Additional Updates in June 2002: // Bug in InCircle function fixed. Radius r := Sqrt(rsqr). // Check for duplicate points added when inserting new point. // For speed, all points pre-sorted in x direction using quicksort algorithm and // triangles flagged when no longer needed. The circumcircle centre and radius of // the triangles are now stored to improve calculation time. /////////////////////////////////////////////////////////////////////////////// // October 2012 Update by Corpsman (corpsman@corpsman.de): Added dynamical // Arrays. Bug Fixed in calculating the outer triangle position where to small // Added more comments in the code /////////////////////////////////////////////////////////////////////////////// // You can use this code however you like providing the above credits remain in tact {******************************************************************************} function TInterpolation3D.Points2DToDelaunayTriangleList( CheckForDoublePoints: Boolean): TTriangleArray; const BlockSize = 1000; // Allocating Memory in Blocks, keep allocating overhead small, and gives dynamic allocation Type TInternal = record x,y: Single; // The coords of the original points oldindex: integer; // pointer to the original points end; TInternalArray = array of TInternal; // Container for internal storage //Created Triangles, vv# are the vertex pointers dTriangle = record vv0: Integer; // Index, of the 1. point in triangle, counterclockwise vv1: Integer; // Index, of the 2. point in triangle, counterclockwise vv2: Integer; // Index, of the 3. point in triangle, counterclockwise PreCalc: boolean; // True if xy, yc, r are defined xc, yc, r: Single; // Center and radius of the circumcircle Complete: Boolean; // If True, then all calculations of this triangle are finished (triangle will never be changed again) end; var Vertex: TInternalArray; // copy of the input with pointer to the original index Triangle: array of dTriangle; // All created triangles (will be the result of the function) procedure Quicksort(li,re: integer); // Sort all points by x var h: TInternal; l,r: Integer; p: Single; begin If li < Re then begin p := Vertex[Trunc((li + re) / 2)].x; // read pivot l := li; r := re; While l < r do begin While Vertex[l].x < p do Inc(l); While Vertex[r].x > p do Dec(r); If l <= r then begin h := Vertex[l]; Vertex[l] := Vertex[r]; Vertex[r] := h; Inc(l); Dec(r); end; end; Quicksort(li,r); Quicksort(l,re); end; end; function InCircle(xp,yp: Single; // Point to insert out xc,yc,r: Single; j: Integer { Pointer to triangle }): Boolean; // Return TRUE if the point (xp,yp) lies inside the circumcircle // made up by triangle[j] // The circumcircle centre is returned in (xc,yc) and the radius r // NOTE: A point on the edge is inside the circumcircle var dx: Single; dy: Single; rsqr: Single; drsqr: Single; Circle: TCircle; tmp0,tmp1,tmp2: Tvector2_double; begin // Check if xc,yc and r have already been calculated If Triangle[j].PreCalc then begin xc := Triangle[j].xc; yc := Triangle[j].yc; r := Triangle[j].r; rsqr := r * r; dx := xp - xc; dy := yp - yc; drsqr := dx * dx + dy * dy; end else begin tmp0.init(Vertex[Triangle[j].vv0].x, Vertex[Triangle[j].vv0].y); tmp1.init(Vertex[Triangle[j].vv1].x, Vertex[Triangle[j].vv1].y); tmp2.init(Vertex[Triangle[j].vv2].x, Vertex[Triangle[j].vv2].y); Circle := PointsToCircumCircle(tmp0,tmp1,tmp2); If Circle.Radius > 0 then begin Triangle[j].PreCalc := true; Triangle[j].xc := Circle.Center[0]; Triangle[j].yc := Circle.Center[1]; Triangle[j].r := Circle.Radius; xc := Circle.Center[0]; yc := Circle.Center[1]; r := Circle.Radius; rsqr := Sqr(r); dx := xp - Circle.Center[0]; dy := yp - Circle.Center[1]; drsqr := dx*dx + dy*dy; end else ShowMessage('Error in function InCircle'); end; Result := drsqr <= rsqr; end; var i,j,k: Integer; maxx,maxy,minx,miny: Single; // to calculate die Points boundingbox dmax: Single; // The Max Dimension in the boundingbox ymid,xmid: Single; // The Center of the boundingbox NTri: Integer; // Counter for all triangles NEdge: Integer; // Counter for all edges NVert: integer; // Counter for all Vertices IsInCirc: Boolean; // True if new point lies within actual triangle and triangle needs partitioning xc,yc,r: Single; // Return Parameters from InCircle calculating the Actual Triangle Edges: array[0..1] of array of Integer; // All Edges begin If High(fData) < 2 then begin // to less points Result := nil; Exit; end; If High(fData) = 2 then begin // trivial solution SetLength(Result,1); Result[0].a := 0; Result[0].b := 1; Result[0].c := 2; Exit; end; Setlength(Vertex,Length(fData) + 1 + 3); // first index is unused, + 3 for supertriangle // Calculate bounding box maxx := fData[0,0]; maxy := fData[0,1]; minx := fData[0,0]; miny := fData[0,1]; NVert := Length(fData); For i:=0 to High(fData) do begin Vertex[i+1].x := fData[i,0]; Vertex[i+1].y := fData[i,1]; Vertex[i+1].oldindex := i; maxx := max(maxx,fData[i,0]); maxy := max(maxy, fData[i,1]); minx := min(minx, fData[i,0]); miny := min(miny, fData[0,1]); If CheckFordoublePoints then For j:=i+1 to High(fData) do If (Abs(fData[i,0] - fData[j,0]) < 1E-5) and (Abs(fData[i,1] - fData[j,1]) < 1E-5) then Raise Exception.Create(Format('Error, point %d and %d are the same.',[i,j])); end; // Sorting fData by x will decrease insertion time. QuickSort(1,NVert); // The Outer Triangle has to be far away, otherwise there could be some seldom // cases in which the convex hul is not calculated correct. // Unfortunately, if you choose "20" to large (e.g. 100) there come some other errors (in the circumcircle routine) dmax := max(maxx - minx, maxy - miny) * 20; xmid := (maxx + minx) / 2; ymid := (maxy + miny) / 2; Vertex[NVert+1].oldindex := -1; Vertex[NVert+1].x := (xmid - 2 * dmax); Vertex[NVert+1].y := (ymid - dmax); Vertex[NVert+2].oldindex := -1; Vertex[NVert+2].x := xmid; Vertex[NVert+2].y := (ymid + 2 * dmax); Vertex[NVert+3].oldindex := -1; Vertex[NVert+3].x := (xmid + 2 * dmax); Vertex[NVert+3].y := (ymid - dmax); // Allocating first blocksize setlength(Triangle,BlockSize); setlength(Edges[0],BlockSize); setlength(Edges[1],BlockSize); // inserting the supertriangle Triangle[1].vv0 := NVert + 1; Triangle[1].vv1 := NVert + 2; Triangle[1].vv2 := NVert + 3; Triangle[1].PreCalc := false; Triangle[1].Complete := false; NTri := 1; // Insert all fData one by one For i:=1 to NVert do begin Nedge := 0; // Set up the edge buffer. // If the point (Vertex(i).x,Vertex(i).y) lies inside the circumcircle then the // three edges of that triangle are added to the edge buffer. j := 0; Repeat j := j + 1; If Triangle[j].Complete <> true then begin // only check incomplete triangles IsInCirc := InCircle(Vertex[i].x, Vertex[i].y, // Point to be inserted xc,yc,r{return the circumcircle information}, j {Pointer to the triangle}); // Include this if fData are sorted by X If (xc + r) < Vertex[i].x then begin Triangle[j].Complete := true; end else begin If IsInCirc then begin // if Triangle needs partitioning, insert edges // Realocate memory if necessery If Nedge + 3 > High(Edges[0]) then begin SetLength(Edges[0],High(Edges[0]) + 1 + BlockSize); SetLength(Edges[1],High(Edges[1]) + 1 + BlockSize); end; Edges[0,Nedge + 1] := Triangle[j].vv0; Edges[1,Nedge + 1] := Triangle[j].vv1; Edges[0,Nedge + 2] := Triangle[j].vv1; Edges[1,Nedge + 2] := Triangle[j].vv2; Edges[0,Nedge + 3] := Triangle[j].vv2; Edges[1,Nedge + 3] := Triangle[j].vv0; Nedge := Nedge + 3; // Duplicate the triangle, but why ?? Triangle[j].vv0 := Triangle[NTri].vv0; Triangle[j].vv1 := Triangle[NTri].vv1; Triangle[j].vv2 := Triangle[NTri].vv2; Triangle[j].PreCalc := Triangle[NTri].PreCalc; Triangle[j].xc := Triangle[NTri].xc; Triangle[j].yc := Triangle[NTri].yc; Triangle[j].r := Triangle[NTri].r; Triangle[NTri].PreCalc := false; Triangle[j].Complete := Triangle[NTri].Complete; j := j - 1; NTri := NTri - 1; end; end; end; Until j >= NTri; // Tag multiple edges // Note: if all triangles are specified anticlockwise then all // interior edges are opposite pointing in direction. For j:=1 to Nedge - 1 do If not(Edges[0,j] = 0) and not(Edges[1,j] = 0) then For k:=j+1 to Nedge do If not(Edges[0,k] = 0) and not(Edges[1,k] = 0) then If Edges[0,j] = Edges[1,k] then If Edges[1,j] = Edges[0,k] then begin Edges[0,j] := 0; Edges[1,j] := 0; Edges[0,k] := 0; Edges[1,k] := 0; end; // Form new triangles for the current point // Skipping over any tagged edges. // All edges are arranged in clockwise order. For j:=1 to Nedge do If not(Edges[0,j] = 0) and not(Edges[1,j] = 0) then begin NTri := NTri + 1; // Realocate memory if necessery If High(Triangle) < NTri then SetLength(Triangle,High(Triangle)+1+BlockSize); Triangle[NTri].vv0 := Edges[0,j]; Triangle[NTri].vv1 := Edges[1,j]; Triangle[NTri].vv2 := i; Triangle[NTri].PreCalc := false; Triangle[NTri].Complete := false; end; end; // Remove triangles with supertriangle vertices // These are triangles which have a Vertex number greater than NVert i:=0; Repeat i:=i+1; If (Triangle[i].vv0 > NVert) or (Triangle[i].vv1 > NVert) or (Triangle[i].vv2 > NVert) then begin Triangle[i].vv0 := Triangle[NTri].vv0; Triangle[i].vv1 := Triangle[NTri].vv1; Triangle[i].vv2 := Triangle[NTri].vv2; i:=i-1; NTri := NTri - 1; end; Until i >= NTri; // Convert all results to output format, using the "unsorted" versions of the fData SetLength(Result,NTri); For i:=1 to NTri do begin Result[i-1].a := Vertex[Triangle[i].vv0].oldindex; Result[i-1].b := Vertex[Triangle[i].vv1].oldindex; Result[i-1].c := Vertex[Triangle[i].vv2].oldindex; end; // Free all variables SetLength(Vertex,0); SetLength(Triangle,0); SetLength(Edges[0],0); SetLength(Edges[1],0); end; {******************************************************************************} function TInterpolation3D.GetIntDataDelaunay(x,y: Double): Double; var i: Integer; theta,alpha,beta,gamma: Double; tmp: Tvector3_double; begin If Length(fTriangles) > 0 then Result := fzmin // Default (lowest color value outside the interpolation area) else Result := 0; For i:=0 to High(fTriangles) do If PointIsInTriangle(x,y,fTriangles[i].a,fTriangles[i].b,fTriangles[i].c) then begin // baryzentric interpolation by Corpsman (corpsman@corpsman.de) tmp.init(x,y,0); theta := CalcTriangleArea(fData[fTriangles[i].a],fData[fTriangles[i].b],fData[fTriangles[i].c]); alpha := CalcTriangleArea(fData[fTriangles[i].a],tmp.data,fData[fTriangles[i].c]); beta := CalcTriangleArea(fData[fTriangles[i].a],fData[fTriangles[i].b],tmp.data); gamma := CalcTriangleArea(tmp.data,fData[fTriangles[i].b],fData[fTriangles[i].c]); alpha := alpha / theta; beta := beta / theta; gamma := gamma / theta; // calculate z Result := alpha * fData[fTriangles[i].b,2] + beta * fData[fTriangles[i].c,2] + gamma * fData[fTriangles[i].a,2]; Exit; end; end; {******************************************************************************} procedure TInterpolation3D.SetZmin(const AValue: Double); begin fzmin := AValue; end; {******************************************************************************} procedure TInterpolation3D.SetZmax(const AValue: Double); begin fzmax := AValue; end; {******************************************************************************} procedure TInterpolation3D.ClearData; begin SetLength(fData,0); fxmin := 0; fxmax := 0; fymin := 0; fymax := 0; fzmin := 0; fzmax := 0; end; {******************************************************************************} procedure TInterpolation3D.AddData(xMeas,yMeas,zMeas: Double); var i: Integer; begin // don't add points twice; can beeing checked later again For i:=0 to High(fData) do If (Abs(fData[i,0] - xMeas) < 1E-15) and (Abs(fData[i,1] - yMeas) < 1E-15) then Exit; SetLength(fData,Length(fData)+1); fData[High(fData),0] := xMeas; fData[High(fData),1] := yMeas; fData[High(fData),2] := zMeas; fxmin := 1E35; fxmax := -1E35; fymin := 1E35; fymax := -1E35; fzmin := 1E35; fzmax := -1E35; For i:=0 to High(fData) do begin If fData[i,0] < fxmin then fxmin := fData[i,0]; If fData[i,0] > fxmax then fxmax := fData[i,0]; If fData[i,1] < fymin then fymin := fData[i,1]; If fData[i,1] > fymax then fymax := fData[i,1]; If fData[i,2] < fzmin then fzmin := fData[i,2]; If fData[i,2] > fzmax then fzmax := fData[i,2]; end; Case fInterpolationMode of IM_DELAUNAY: begin SetLength(fTriangles,0); fTriangles := Points2DToDelaunayTriangleList(true); end; end; end; {******************************************************************************} function TInterpolation3D.GetIntData(x,y: Double): Double; begin Case fInterpolationMode of IM_DELAUNAY: Result := GetIntDataDelaunay(x,y); else ShowMessage('Interpolation mode is not spezified.'); end; end; {******************************************************************************} function TInterpolation3D.GetNomalizedIntData(x,y: Double): Double; var tmp: Double; begin tmp := GetIntData(x,y); // normalizing on inverval [-1,1] If fzmin = fzmax then Result := 1 else Result := 2 * (tmp - fzmin) / (fzmax - fzmin) - 1; end; END. ./synsock.pas0000644000175000017500000001030414576573021013343 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 005.002.003 | |==============================================================================| | Content: Socket Independent Platform Layer | |==============================================================================| | Copyright (c)1999-2013, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2001-2013. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | | Tomas Hajny (OS2 support) | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@exclude} unit synsock; {$MINENUMSIZE 4} //old Delphi does not have MSWINDOWS define. {$IFDEF WIN32} {$IFNDEF MSWINDOWS} {$DEFINE MSWINDOWS} {$ENDIF} {$ENDIF} {$IFDEF CIL} {$I ssdotnet.inc} {$ELSE} {$IFDEF MSWINDOWS} {$I sswin32.inc} {$ELSE} {$IFDEF WINCE} {$I sswin32.inc} //not complete yet! {$ELSE} {$IFDEF FPC} {$IFDEF OS2} {$I ssos2ws1.inc} {$ELSE OS2} {$I ssfpc.inc} {$ENDIF OS2} {$ELSE} {$I sslinux.inc} {$ENDIF} {$ENDIF} {$ENDIF} {$ENDIF} {$IFDEF POSIX} //Posix.SysSocket {$I ssposix.inc} //experimental! {$ENDIF} end. ./ssfpc.inc0000644000175000017500000007066314576573021012774 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 001.001.005 | |==============================================================================| | Content: Socket Independent Platform Layer - FreePascal definition include | |==============================================================================| | Copyright (c)2006-2013, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2006-2013. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@exclude} {$IFDEF FPC} {For FreePascal 2.x.x} //{$DEFINE FORCEOLDAPI} {Note about define FORCEOLDAPI: If you activate this compiler directive, then is allways used old socket API for name resolution. If you leave this directive inactive, then the new API is used, when running system allows it. For IPv6 support you must have new API! } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} {$ifdef FreeBSD} {$DEFINE SOCK_HAS_SINLEN} // BSD definition of scoketaddr {$endif} {$ifdef darwin} {$DEFINE SOCK_HAS_SINLEN} // BSD definition of scoketaddr {$endif} interface uses SyncObjs, SysUtils, Classes, synafpc, BaseUnix, Unix, termio, sockets, netdb; function InitSocketInterface(stack: string): Boolean; function DestroySocketInterface: Boolean; const DLLStackName = ''; WinsockLevel = $0202; cLocalHost = '127.0.0.1'; cAnyHost = '0.0.0.0'; c6AnyHost = '::0'; c6Localhost = '::1'; cLocalHostStr = 'localhost'; type TSocket = longint; TAddrFamily = integer; TMemory = pointer; type TFDSet = Baseunix.TFDSet; PFDSet = ^TFDSet; Ptimeval = Baseunix.ptimeval; Ttimeval = Baseunix.ttimeval; const FIONREAD = termio.FIONREAD; FIONBIO = termio.FIONBIO; FIOASYNC = termio.FIOASYNC; const IPPROTO_IP = 0; { Dummy } IPPROTO_ICMP = 1; { Internet Control Message Protocol } IPPROTO_IGMP = 2; { Internet Group Management Protocol} IPPROTO_TCP = 6; { TCP } IPPROTO_UDP = 17; { User Datagram Protocol } IPPROTO_IPV6 = 41; IPPROTO_ICMPV6 = 58; IPPROTO_RM = 113; IPPROTO_RAW = 255; IPPROTO_MAX = 256; type PInAddr = ^TInAddr; TInAddr = sockets.in_addr; PSockAddrIn = ^TSockAddrIn; TSockAddrIn = sockets.TInetSockAddr; TIP_mreq = record imr_multiaddr: TInAddr; // IP multicast address of group imr_interface: TInAddr; // local IP address of interface end; PInAddr6 = ^TInAddr6; TInAddr6 = sockets.Tin6_addr; PSockAddrIn6 = ^TSockAddrIn6; TSockAddrIn6 = sockets.TInetSockAddr6; TIPv6_mreq = record ipv6mr_multiaddr: TInAddr6; // IPv6 multicast address. ipv6mr_interface: integer; // Interface index. end; const INADDR_ANY = $00000000; INADDR_LOOPBACK = $7F000001; INADDR_BROADCAST = $FFFFFFFF; INADDR_NONE = $FFFFFFFF; ADDR_ANY = INADDR_ANY; INVALID_SOCKET = TSocket(NOT(0)); SOCKET_ERROR = -1; Const IP_TOS = sockets.IP_TOS; { int; IP type of service and precedence. } IP_TTL = sockets.IP_TTL; { int; IP time to live. } IP_HDRINCL = sockets.IP_HDRINCL; { int; Header is included with data. } IP_OPTIONS = sockets.IP_OPTIONS; { ip_opts; IP per-packet options. } // IP_ROUTER_ALERT = sockets.IP_ROUTER_ALERT; { bool } IP_RECVOPTS = sockets.IP_RECVOPTS; { bool } IP_RETOPTS = sockets.IP_RETOPTS; { bool } // IP_PKTINFO = sockets.IP_PKTINFO; { bool } // IP_PKTOPTIONS = sockets.IP_PKTOPTIONS; // IP_PMTUDISC = sockets.IP_PMTUDISC; { obsolete name? } // IP_MTU_DISCOVER = sockets.IP_MTU_DISCOVER; { int; see below } // IP_RECVERR = sockets.IP_RECVERR; { bool } // IP_RECVTTL = sockets.IP_RECVTTL; { bool } // IP_RECVTOS = sockets.IP_RECVTOS; { bool } IP_MULTICAST_IF = sockets.IP_MULTICAST_IF; { in_addr; set/get IP multicast i/f } IP_MULTICAST_TTL = sockets.IP_MULTICAST_TTL; { u_char; set/get IP multicast ttl } IP_MULTICAST_LOOP = sockets.IP_MULTICAST_LOOP; { i_char; set/get IP multicast loopback } IP_ADD_MEMBERSHIP = sockets.IP_ADD_MEMBERSHIP; { ip_mreq; add an IP group membership } IP_DROP_MEMBERSHIP = sockets.IP_DROP_MEMBERSHIP; { ip_mreq; drop an IP group membership } SOL_SOCKET = sockets.SOL_SOCKET; SO_DEBUG = sockets.SO_DEBUG; SO_REUSEADDR = sockets.SO_REUSEADDR; SO_TYPE = sockets.SO_TYPE; SO_ERROR = sockets.SO_ERROR; SO_DONTROUTE = sockets.SO_DONTROUTE; SO_BROADCAST = sockets.SO_BROADCAST; SO_SNDBUF = sockets.SO_SNDBUF; SO_RCVBUF = sockets.SO_RCVBUF; SO_KEEPALIVE = sockets.SO_KEEPALIVE; SO_OOBINLINE = sockets.SO_OOBINLINE; // SO_NO_CHECK = sockets.SO_NO_CHECK; // SO_PRIORITY = sockets.SO_PRIORITY; SO_LINGER = sockets.SO_LINGER; // SO_BSDCOMPAT = sockets.SO_BSDCOMPAT; // SO_REUSEPORT = sockets.SO_REUSEPORT; // SO_PASSCRED = sockets.SO_PASSCRED; // SO_PEERCRED = sockets.SO_PEERCRED; SO_RCVLOWAT = sockets.SO_RCVLOWAT; SO_SNDLOWAT = sockets.SO_SNDLOWAT; SO_RCVTIMEO = sockets.SO_RCVTIMEO; SO_SNDTIMEO = sockets.SO_SNDTIMEO; { Security levels - as per NRL IPv6 - don't actually do anything } // SO_SECURITY_AUTHENTICATION = sockets.SO_SECURITY_AUTHENTICATION; // SO_SECURITY_ENCRYPTION_TRANSPORT = sockets.SO_SECURITY_ENCRYPTION_TRANSPORT; // SO_SECURITY_ENCRYPTION_NETWORK = sockets.SO_SECURITY_ENCRYPTION_NETWORK; // SO_BINDTODEVICE = sockets.SO_BINDTODEVICE; { Socket filtering } // SO_ATTACH_FILTER = sockets.SO_ATTACH_FILTER; // SO_DETACH_FILTER = sockets.SO_DETACH_FILTER; {$IFDEF DARWIN} SO_NOSIGPIPE = $1022; {$ENDIF} SOMAXCONN = 1024; IPV6_UNICAST_HOPS = sockets.IPV6_UNICAST_HOPS; IPV6_MULTICAST_IF = sockets.IPV6_MULTICAST_IF; IPV6_MULTICAST_HOPS = sockets.IPV6_MULTICAST_HOPS; IPV6_MULTICAST_LOOP = sockets.IPV6_MULTICAST_LOOP; IPV6_JOIN_GROUP = sockets.IPV6_JOIN_GROUP; IPV6_LEAVE_GROUP = sockets.IPV6_LEAVE_GROUP; const SOCK_STREAM = 1; { stream socket } SOCK_DGRAM = 2; { datagram socket } SOCK_RAW = 3; { raw-protocol interface } SOCK_RDM = 4; { reliably-delivered message } SOCK_SEQPACKET = 5; { sequenced packet stream } { TCP options. } TCP_NODELAY = $0001; { Address families. } AF_UNSPEC = 0; { unspecified } AF_INET = 2; { internetwork: UDP, TCP, etc. } AF_INET6 = 10; { Internetwork Version 6 } AF_MAX = 24; { Protocol families, same as address families for now. } PF_UNSPEC = AF_UNSPEC; PF_INET = AF_INET; PF_INET6 = AF_INET6; PF_MAX = AF_MAX; type { Structure used for manipulating linger option. } PLinger = ^TLinger; TLinger = packed record l_onoff: integer; l_linger: integer; end; const MSG_OOB = sockets.MSG_OOB; // Process out-of-band data. MSG_PEEK = sockets.MSG_PEEK; // Peek at incoming messages. {$ifdef DARWIN} MSG_NOSIGNAL = $20000; // Do not generate SIGPIPE. // Works under MAC OS X, but is undocumented, // So FPC doesn't include it {$else} MSG_NOSIGNAL = sockets.MSG_NOSIGNAL; // Do not generate SIGPIPE. {$endif} const WSAEINTR = ESysEINTR; WSAEBADF = ESysEBADF; WSAEACCES = ESysEACCES; WSAEFAULT = ESysEFAULT; WSAEINVAL = ESysEINVAL; WSAEMFILE = ESysEMFILE; WSAEWOULDBLOCK = ESysEWOULDBLOCK; WSAEINPROGRESS = ESysEINPROGRESS; WSAEALREADY = ESysEALREADY; WSAENOTSOCK = ESysENOTSOCK; WSAEDESTADDRREQ = ESysEDESTADDRREQ; WSAEMSGSIZE = ESysEMSGSIZE; WSAEPROTOTYPE = ESysEPROTOTYPE; WSAENOPROTOOPT = ESysENOPROTOOPT; WSAEPROTONOSUPPORT = ESysEPROTONOSUPPORT; WSAESOCKTNOSUPPORT = ESysESOCKTNOSUPPORT; WSAEOPNOTSUPP = ESysEOPNOTSUPP; WSAEPFNOSUPPORT = ESysEPFNOSUPPORT; WSAEAFNOSUPPORT = ESysEAFNOSUPPORT; WSAEADDRINUSE = ESysEADDRINUSE; WSAEADDRNOTAVAIL = ESysEADDRNOTAVAIL; WSAENETDOWN = ESysENETDOWN; WSAENETUNREACH = ESysENETUNREACH; WSAENETRESET = ESysENETRESET; WSAECONNABORTED = ESysECONNABORTED; WSAECONNRESET = ESysECONNRESET; WSAENOBUFS = ESysENOBUFS; WSAEISCONN = ESysEISCONN; WSAENOTCONN = ESysENOTCONN; WSAESHUTDOWN = ESysESHUTDOWN; WSAETOOMANYREFS = ESysETOOMANYREFS; WSAETIMEDOUT = ESysETIMEDOUT; WSAECONNREFUSED = ESysECONNREFUSED; WSAELOOP = ESysELOOP; WSAENAMETOOLONG = ESysENAMETOOLONG; WSAEHOSTDOWN = ESysEHOSTDOWN; WSAEHOSTUNREACH = ESysEHOSTUNREACH; WSAENOTEMPTY = ESysENOTEMPTY; WSAEPROCLIM = -1; WSAEUSERS = ESysEUSERS; WSAEDQUOT = ESysEDQUOT; WSAESTALE = ESysESTALE; WSAEREMOTE = ESysEREMOTE; WSASYSNOTREADY = -2; WSAVERNOTSUPPORTED = -3; WSANOTINITIALISED = -4; WSAEDISCON = -5; WSAHOST_NOT_FOUND = 1; WSATRY_AGAIN = 2; WSANO_RECOVERY = 3; WSANO_DATA = -6; const WSADESCRIPTION_LEN = 256; WSASYS_STATUS_LEN = 128; type PWSAData = ^TWSAData; TWSAData = packed record wVersion: Word; wHighVersion: Word; szDescription: array[0..WSADESCRIPTION_LEN] of Char; szSystemStatus: array[0..WSASYS_STATUS_LEN] of Char; iMaxSockets: Word; iMaxUdpDg: Word; lpVendorInfo: PChar; end; function IN6_IS_ADDR_UNSPECIFIED(const a: PInAddr6): boolean; function IN6_IS_ADDR_LOOPBACK(const a: PInAddr6): boolean; function IN6_IS_ADDR_LINKLOCAL(const a: PInAddr6): boolean; function IN6_IS_ADDR_SITELOCAL(const a: PInAddr6): boolean; function IN6_IS_ADDR_MULTICAST(const a: PInAddr6): boolean; function IN6_ADDR_EQUAL(const a: PInAddr6; const b: PInAddr6):boolean; procedure SET_IN6_IF_ADDR_ANY (const a: PInAddr6); procedure SET_LOOPBACK_ADDR6 (const a: PInAddr6); var in6addr_any, in6addr_loopback : TInAddr6; procedure FD_CLR(Socket: TSocket; var FDSet: TFDSet); function FD_ISSET(Socket: TSocket; var FDSet: TFDSet): Boolean; procedure FD_SET(Socket: TSocket; var FDSet: TFDSet); procedure FD_ZERO(var FDSet: TFDSet); {=============================================================================} var SynSockCS: SyncObjs.TCriticalSection; SockEnhancedApi: Boolean; SockWship6Api: Boolean; type TVarSin = packed record {$ifdef SOCK_HAS_SINLEN} sin_len : cuchar; {$endif} case integer of 0: (AddressFamily: sa_family_t); 1: ( case sin_family: sa_family_t of AF_INET: (sin_port: word; sin_addr: TInAddr; sin_zero: array[0..7] of Char); AF_INET6: (sin6_port: word; sin6_flowinfo: longword; sin6_addr: TInAddr6; sin6_scope_id: longword); ); end; function SizeOfVarSin(sin: TVarSin): integer; function WSAStartup(wVersionRequired: Word; var WSData: TWSAData): Integer; function WSACleanup: Integer; function WSAGetLastError: Integer; function GetHostName: string; function Shutdown(s: TSocket; how: Integer): Integer; function SetSockOpt(s: TSocket; level, optname: Integer; optval: TMemory; optlen: Integer): Integer; function GetSockOpt(s: TSocket; level, optname: Integer; optval: TMemory; var optlen: Integer): Integer; function Send(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; function Recv(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; function SendTo(s: TSocket; Buf: TMemory; len, flags: Integer; addrto: TVarSin): Integer; function RecvFrom(s: TSocket; Buf: TMemory; len, flags: Integer; var from: TVarSin): Integer; function ntohs(netshort: word): word; function ntohl(netlong: longword): longword; function Listen(s: TSocket; backlog: Integer): Integer; function IoctlSocket(s: TSocket; cmd: DWORD; var arg: integer): Integer; function htons(hostshort: word): word; function htonl(hostlong: longword): longword; function GetSockName(s: TSocket; var name: TVarSin): Integer; function GetPeerName(s: TSocket; var name: TVarSin): Integer; function Connect(s: TSocket; const name: TVarSin): Integer; function CloseSocket(s: TSocket): Integer; function Bind(s: TSocket; const addr: TVarSin): Integer; function Accept(s: TSocket; var addr: TVarSin): TSocket; function Socket(af, Struc, Protocol: Integer): TSocket; function Select(nfds: Integer; readfds, writefds, exceptfds: PFDSet; timeout: PTimeVal): Longint; function IsNewApi(Family: integer): Boolean; function SetVarSin(var Sin: TVarSin; IP, Port: string; Family, SockProtocol, SockType: integer; PreferIP4: Boolean): integer; function GetSinIP(Sin: TVarSin): string; function GetSinPort(Sin: TVarSin): Integer; procedure ResolveNameToIP(Name: string; Family, SockProtocol, SockType: integer; const IPList: TStrings); function ResolveIPToName(IP: string; Family, SockProtocol, SockType: integer): string; function ResolvePort(Port: string; Family, SockProtocol, SockType: integer): Word; {==============================================================================} implementation function IN6_IS_ADDR_UNSPECIFIED(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr32[0] = 0) and (a^.u6_addr32[1] = 0) and (a^.u6_addr32[2] = 0) and (a^.u6_addr32[3] = 0)); end; function IN6_IS_ADDR_LOOPBACK(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr32[0] = 0) and (a^.u6_addr32[1] = 0) and (a^.u6_addr32[2] = 0) and (a^.u6_addr8[12] = 0) and (a^.u6_addr8[13] = 0) and (a^.u6_addr8[14] = 0) and (a^.u6_addr8[15] = 1)); end; function IN6_IS_ADDR_LINKLOCAL(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr8[0] = $FE) and (a^.u6_addr8[1] = $80)); end; function IN6_IS_ADDR_SITELOCAL(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr8[0] = $FE) and (a^.u6_addr8[1] = $C0)); end; function IN6_IS_ADDR_MULTICAST(const a: PInAddr6): boolean; begin Result := (a^.u6_addr8[0] = $FF); end; function IN6_ADDR_EQUAL(const a: PInAddr6; const b: PInAddr6): boolean; begin Result := (CompareMem( a, b, sizeof(TInAddr6))); end; procedure SET_IN6_IF_ADDR_ANY (const a: PInAddr6); begin FillChar(a^, sizeof(TInAddr6), 0); end; procedure SET_LOOPBACK_ADDR6 (const a: PInAddr6); begin FillChar(a^, sizeof(TInAddr6), 0); a^.u6_addr8[15] := 1; end; {=============================================================================} function WSAStartup(wVersionRequired: Word; var WSData: TWSAData): Integer; begin with WSData do begin wVersion := wVersionRequired; wHighVersion := $202; szDescription := 'Synsock - Synapse Platform Independent Socket Layer'; szSystemStatus := 'Running on Unix/Linux by FreePascal'; iMaxSockets := 32768; iMaxUdpDg := 8192; end; Result := 0; end; function WSACleanup: Integer; begin Result := 0; end; function WSAGetLastError: Integer; begin Result := fpGetErrno; end; function FD_ISSET(Socket: TSocket; var fdset: TFDSet): Boolean; begin Result := fpFD_ISSET(socket, fdset) <> 0; end; procedure FD_SET(Socket: TSocket; var fdset: TFDSet); begin fpFD_SET(Socket, fdset); end; procedure FD_CLR(Socket: TSocket; var fdset: TFDSet); begin fpFD_CLR(Socket, fdset); end; procedure FD_ZERO(var fdset: TFDSet); begin fpFD_ZERO(fdset); end; {=============================================================================} function SizeOfVarSin(sin: TVarSin): integer; begin case sin.sin_family of AF_INET: Result := SizeOf(TSockAddrIn); AF_INET6: Result := SizeOf(TSockAddrIn6); else Result := 0; end; end; {=============================================================================} function Bind(s: TSocket; const addr: TVarSin): Integer; begin if fpBind(s, @addr, SizeOfVarSin(addr)) = 0 then Result := 0 else Result := SOCKET_ERROR; end; function Connect(s: TSocket; const name: TVarSin): Integer; begin if fpConnect(s, @name, SizeOfVarSin(name)) = 0 then Result := 0 else Result := SOCKET_ERROR; end; function GetSockName(s: TSocket; var name: TVarSin): Integer; var len: integer; begin len := SizeOf(name); FillChar(name, len, 0); Result := fpGetSockName(s, @name, @Len); end; function GetPeerName(s: TSocket; var name: TVarSin): Integer; var len: integer; begin len := SizeOf(name); FillChar(name, len, 0); Result := fpGetPeerName(s, @name, @Len); end; function GetHostName: string; begin Result := unix.GetHostName; end; function Send(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; begin Result := fpSend(s, pointer(Buf), len, flags); end; function Recv(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; begin Result := fpRecv(s, pointer(Buf), len, flags); end; function SendTo(s: TSocket; Buf: TMemory; len, flags: Integer; addrto: TVarSin): Integer; begin Result := fpSendTo(s, pointer(Buf), len, flags, @addrto, SizeOfVarSin(addrto)); end; function RecvFrom(s: TSocket; Buf: TMemory; len, flags: Integer; var from: TVarSin): Integer; var x: integer; begin x := SizeOf(from); Result := fpRecvFrom(s, pointer(Buf), len, flags, @from, @x); end; function Accept(s: TSocket; var addr: TVarSin): TSocket; var x: integer; begin x := SizeOf(addr); Result := fpAccept(s, @addr, @x); end; function Shutdown(s: TSocket; how: Integer): Integer; begin Result := fpShutdown(s, how); end; function SetSockOpt(s: TSocket; level, optname: Integer; optval: Tmemory; optlen: Integer): Integer; begin Result := fpsetsockopt(s, level, optname, pointer(optval), optlen); end; function GetSockOpt(s: TSocket; level, optname: Integer; optval: Tmemory; var optlen: Integer): Integer; begin Result := fpgetsockopt(s, level, optname, pointer(optval), @optlen); end; function ntohs(netshort: word): word; begin Result := sockets.ntohs(NetShort); end; function ntohl(netlong: longword): longword; begin Result := sockets.ntohl(NetLong); end; function Listen(s: TSocket; backlog: Integer): Integer; begin if fpListen(s, backlog) = 0 then Result := 0 else Result := SOCKET_ERROR; end; function IoctlSocket(s: TSocket; cmd: DWORD; var arg: integer): Integer; begin Result := fpIoctl(s, cmd, @arg); end; function htons(hostshort: word): word; begin Result := sockets.htons(Hostshort); end; function htonl(hostlong: longword): longword; begin Result := sockets.htonl(HostLong); end; function CloseSocket(s: TSocket): Integer; begin Result := sockets.CloseSocket(s); end; function Socket(af, Struc, Protocol: Integer): TSocket; {$IFDEF DARWIN} var on_off: integer; {$ENDIF} begin Result := fpSocket(af, struc, protocol); // ##### Patch for Mac OS to avoid "Project XXX raised exception class 'External: SIGPIPE'" error. {$IFDEF DARWIN} if Result <> INVALID_SOCKET then begin on_off := 1; synsock.SetSockOpt(Result, integer(SOL_SOCKET), integer(SO_NOSIGPIPE), @on_off, SizeOf(integer)); end; {$ENDIF} end; function Select(nfds: Integer; readfds, writefds, exceptfds: PFDSet; timeout: PTimeVal): Longint; begin Result := fpSelect(nfds, readfds, writefds, exceptfds, timeout); end; {=============================================================================} function IsNewApi(Family: integer): Boolean; begin Result := SockEnhancedApi; if not Result then Result := (Family = AF_INET6) and SockWship6Api; end; function SetVarSin(var Sin: TVarSin; IP, Port: string; Family, SockProtocol, SockType: integer; PreferIP4: Boolean): integer; var TwoPass: boolean; f1, f2: integer; function GetAddr(f:integer): integer; var a4: array [1..1] of in_addr; a6: array [1..1] of Tin6_addr; he: THostEntry; begin Result := WSAEPROTONOSUPPORT; case f of AF_INET: begin if IP = cAnyHost then begin Sin.sin_family := AF_INET; Result := 0; end else begin if lowercase(IP) = cLocalHostStr then a4[1].s_addr := htonl(INADDR_LOOPBACK) else begin a4[1].s_addr := 0; Result := WSAHOST_NOT_FOUND; a4[1] := StrTonetAddr(IP); if a4[1].s_addr = INADDR_ANY then if GetHostByName(ip, he) then a4[1]:=HostToNet(he.Addr) else Resolvename(ip, a4); end; if a4[1].s_addr <> INADDR_ANY then begin Sin.sin_family := AF_INET; sin.sin_addr := a4[1]; Result := 0; end; end; end; AF_INET6: begin if IP = c6AnyHost then begin Sin.sin_family := AF_INET6; Result := 0; end else begin if lowercase(IP) = cLocalHostStr then SET_LOOPBACK_ADDR6(@a6[1]) else begin Result := WSAHOST_NOT_FOUND; SET_IN6_IF_ADDR_ANY(@a6[1]); a6[1] := StrTonetAddr6(IP); if IN6_IS_ADDR_UNSPECIFIED(@a6[1]) then Resolvename6(ip, a6); end; if not IN6_IS_ADDR_UNSPECIFIED(@a6[1]) then begin Sin.sin_family := AF_INET6; sin.sin6_addr := a6[1]; Result := 0; end; end; end; end; end; begin Result := 0; FillChar(Sin, Sizeof(Sin), 0); Sin.sin_port := Resolveport(port, family, SockProtocol, SockType); TwoPass := False; if Family = AF_UNSPEC then begin if PreferIP4 then begin f1 := AF_INET; f2 := AF_INET6; TwoPass := True; end else begin f2 := AF_INET; f1 := AF_INET6; TwoPass := True; end; end else f1 := Family; Result := GetAddr(f1); if Result <> 0 then if TwoPass then Result := GetAddr(f2); end; function GetSinIP(Sin: TVarSin): string; begin Result := ''; case sin.AddressFamily of AF_INET: begin result := NetAddrToStr(sin.sin_addr); end; AF_INET6: begin result := NetAddrToStr6(sin.sin6_addr); end; end; end; function GetSinPort(Sin: TVarSin): Integer; begin if (Sin.sin_family = AF_INET6) then Result := synsock.ntohs(Sin.sin6_port) else Result := synsock.ntohs(Sin.sin_port); end; procedure ResolveNameToIP(Name: string; Family, SockProtocol, SockType: integer; const IPList: TStrings); var x, n: integer; a4: array [1..255] of in_addr; a6: array [1..255] of Tin6_addr; he: THostEntry; begin IPList.Clear; if (family = AF_INET) or (family = AF_UNSPEC) then begin if lowercase(name) = cLocalHostStr then IpList.Add(cLocalHost) else begin a4[1] := StrTonetAddr(name); if a4[1].s_addr = INADDR_ANY then if GetHostByName(name, he) then begin a4[1]:=HostToNet(he.Addr); x := 1; end else x := Resolvename(name, a4) else x := 1; for n := 1 to x do IpList.Add(netaddrToStr(a4[n])); end; end; if (family = AF_INET6) or (family = AF_UNSPEC) then begin if lowercase(name) = cLocalHostStr then IpList.Add(c6LocalHost) else begin a6[1] := StrTonetAddr6(name); if IN6_IS_ADDR_UNSPECIFIED(@a6[1]) then x := Resolvename6(name, a6) else x := 1; for n := 1 to x do IpList.Add(netaddrToStr6(a6[n])); end; end; if IPList.Count = 0 then IPList.Add(cLocalHost); end; function ResolvePort(Port: string; Family, SockProtocol, SockType: integer): Word; var ProtoEnt: TProtocolEntry; ServEnt: TServiceEntry; begin Result := synsock.htons(StrToIntDef(Port, 0)); if Result = 0 then begin ProtoEnt.Name := ''; GetProtocolByNumber(SockProtocol, ProtoEnt); ServEnt.port := 0; GetServiceByName(Port, ProtoEnt.Name, ServEnt); Result := ServEnt.port; end; end; function ResolveIPToName(IP: string; Family, SockProtocol, SockType: integer): string; var n: integer; a4: array [1..1] of in_addr; a6: array [1..1] of Tin6_addr; a: array [1..1] of string; begin Result := IP; a4[1] := StrToNetAddr(IP); if a4[1].s_addr <> INADDR_ANY then begin //why ResolveAddress need address in HOST order? :-O n := ResolveAddress(nettohost(a4[1]), a); if n > 0 then Result := a[1]; end else begin a6[1] := StrToNetAddr6(IP); n := ResolveAddress6(a6[1], a); if n > 0 then Result := a[1]; end; end; {=============================================================================} function InitSocketInterface(stack: string): Boolean; begin SockEnhancedApi := False; SockWship6Api := False; // Libc.Signal(Libc.SIGPIPE, TSignalHandler(Libc.SIG_IGN)); Result := True; end; function DestroySocketInterface: Boolean; begin Result := True; end; initialization begin SynSockCS := SyncObjs.TCriticalSection.Create; SET_IN6_IF_ADDR_ANY (@in6addr_any); SET_LOOPBACK_ADDR6 (@in6addr_loopback); end; finalization begin SynSockCS.Free; end; {$ENDIF} ./datlocalcorrect.lrs0000644000175000017500000006226514576573022015052 0ustar anthonyanthony{ This is an automatically generated lazarus resource file } LazarusResources.Add('Tdatlocalcorrectform','FORMDATA',[ 'TPF0'#20'Tdatlocalcorrectform'#19'datlocalcorrectform'#4'Left'#3'6'#8#6'Heig' +'ht'#3#21#2#3'Top'#2'r'#5'Width'#3'r'#4#7'Caption'#6#30'.dat local time reco' +'nstruction'#12'ClientHeight'#3#21#2#11'ClientWidth'#3'r'#4#20'Constraints.M' +'inWidth'#3#139#1#8'OnCreate'#7#10'FormCreate'#9'OnDestroy'#7#11'FormDestroy' +#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#7'2.2.6.0'#0#9'TGroupBox' +#10'InGroupBox'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Contr' +'ol'#7#5'Owner'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Si' +'de'#7#9'asrBottom'#4'Left'#2#0#6'Height'#2'`'#3'Top'#2#0#5'Width'#3'1'#3#7 +'Caption'#6#6'Input:'#12'ClientHeight'#2'L'#11'ClientWidth'#3'/'#3#8'TabOrde' +'r'#2#0#0#7'TButton'#16'FileSelectButton'#22'AnchorSideLeft.Control'#7#10'In' +'GroupBox'#21'AnchorSideTop.Control'#7#10'InGroupBox'#4'Left'#2#5#6'Height'#2 +#28#4'Hint'#6' Select one .dat file to convert.'#3'Top'#2#0#5'Width'#2'd'#18 +'BorderSpacing.Left'#2#5#7'Caption'#6#11'Select file'#7'OnClick'#7#21'FileSe' +'lectButtonClick'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#0#0#0#7'T' +'Button'#21'DirectorySelectButton'#22'AnchorSideLeft.Control'#7#16'FileSelec' +'tButton'#21'AnchorSideTop.Control'#7#16'FileSelectButton'#18'AnchorSideTop.' +'Side'#7#9'asrBottom'#4'Left'#2#5#6'Height'#2#28#4'Hint'#6'-Select one direc' +'tory of .dat files to convert'#3'Top'#2'!'#5'Width'#2'd'#17'BorderSpacing.T' +'op'#2#5#7'Caption'#6#11'Select dir.'#7'OnClick'#7#26'DirectorySelectButtonC' +'lick'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#1#0#0#5'TEdit'#16'In' +'putFileDisplay'#22'AnchorSideLeft.Control'#7#16'FileSelectButton'#19'Anchor' +'SideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#16'FileSelectButt' +'on'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#10 +'InGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2'm'#6'Height'#2 +#28#3'Top'#2#0#5'Width'#3#190#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0 +#8'AutoSize'#8#18'BorderSpacing.Left'#2#4#19'BorderSpacing.Right'#2#4#8'Read' +'Only'#9#8'TabOrder'#2#2#0#0#5'TEdit'#21'InputDirectoryDisplay'#22'AnchorSid' +'eLeft.Control'#7#21'DirectorySelectButton'#19'AnchorSideLeft.Side'#7#9'asrB' +'ottom'#21'AnchorSideTop.Control'#7#21'DirectorySelectButton'#18'AnchorSideT' +'op.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#10'InGroupBox'#20'Anc' +'horSideRight.Side'#7#9'asrBottom'#4'Left'#2'm'#6'Height'#2#28#3'Top'#2'!'#5 +'Width'#3#190#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#8 +#18'BorderSpacing.Left'#2#4#19'BorderSpacing.Right'#2#4#8'ReadOnly'#9#8'TabO' +'rder'#2#3#0#0#0#9'TGroupBox'#11'OutGroupBox'#22'AnchorSideLeft.Control'#7#5 +'Owner'#21'AnchorSideTop.Control'#7#16'SettingsGroupBox'#18'AnchorSideTop.Si' +'de'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRigh' +'t.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#10'StatusBar1'#4'Left' +#2#0#6'Height'#3#182#0#3'Top'#3'J'#1#5'Width'#3'0'#3#7'Anchors'#11#5'akTop'#6 +'akLeft'#8'akBottom'#0#17'BorderSpacing.Top'#2#5#7'Caption'#6#7'Output:'#12 +'ClientHeight'#3#162#0#11'ClientWidth'#3'.'#3#8'TabOrder'#2#1#0#12'TLabeledE' +'dit'#10'OutputFile'#22'AnchorSideLeft.Control'#7#13'CorrectButton'#21'Ancho' +'rSideTop.Control'#7#13'CorrectButton'#18'AnchorSideTop.Side'#7#9'asrBottom' +#23'AnchorSideRight.Control'#7#11'OutGroupBox'#20'AnchorSideRight.Side'#7#9 +'asrBottom'#4'Left'#2'm'#6'Height'#2'$'#3'Top'#2','#5'Width'#3#189#2#7'Ancho' +'rs'#11#5'akTop'#6'akLeft'#7'akRight'#0#17'BorderSpacing.Top'#2#8#19'BorderS' +'pacing.Right'#2#4#16'EditLabel.Height'#2#19#15'EditLabel.Width'#2'<'#17'Edi' +'tLabel.Caption'#6#9'Filename:'#21'EditLabel.ParentColor'#8#13'LabelPosition' +#7#6'lpLeft'#8'ReadOnly'#9#8'TabOrder'#2#0#0#0#7'TBitBtn'#13'CorrectButton' +#21'AnchorSideTop.Control'#7#11'OutGroupBox'#4'Left'#2'm'#6'Height'#2'$'#4'H' +'int'#6'%Correct .dat file for time difference'#3'Top'#2#0#5'Width'#3#224#0#7 +'Caption'#6#28'Reconstruct .dat local times'#10'Glyph.Data'#10':'#16#0#0'6' +#16#0#0'BM6'#16#0#0#0#0#0#0'6'#0#0#0'('#0#0#0' '#0#0#0' '#0#0#0#1#0' '#0#0#0 +#0#0#0#16#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 ,#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#128#170#128#4#200#218#200#9#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#8'^'#8'!'#27'o'#26#224'S'#148'Q'#232'='#139'=*'#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0'/'#0 +#6#2'\'#1#210'+t*'#255'8|7'#255#8'j'#6#214#0'/'#0#6#255#255#255#0#255#255#255 +#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#1'W'#0#171#20'h'#19#255'6u6'#255#5'H' +#5#255#11'k'#9#255#1'i'#0#177#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#0'U'#0'y'#11'b'#10#254'<'#129'<'#255'3z3'#255#1'O'#1#255#6'Z'#6#255#10 +'t'#7#254#2'i'#0#129#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#0'P'#0'H'#4'\'#3#247'<'#133'<'#255 +'='#136'='#255'2'#128'2'#255#2'['#2#255#0'\'#0#255#11'l'#10#255#7'w'#4#249#3 +'h'#0'O'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255 +#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#0'T'#0#31#0'U'#0#232'6'#131'6'#255'G'#146'G'#255':'#139':'#255'/'#133'/'#255 +#5'g'#5#255#0'g'#0#255#0'j'#0#255#16'|'#15#255#3'x'#0#237#0'j'#0'"'#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 ,#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#0'/'#0#6#0'O'#0#207'+w+'#255'Q'#156'Q'#255 +'E'#150'E'#255'8'#143'8'#255'-'#138'-'#255#8'r'#8#255#0'q'#0#255#0'u'#0#255#0 +'w'#0#255#19#132#17#255#4'z'#0#216#0'M'#0#7#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0'M'#0 +#169#29'j'#29#255'['#164'['#255'O'#159'O'#255'C'#153'C'#255'6'#148'6'#255'+' +#143'+'#255#9'|'#9#255#0'{'#0#255#0#127#0#255#0#130#0#255#4#133#4#255#18#135 +#15#255#3'x'#0#181#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#0'L'#0'x'#18'['#18#254'`'#166'`'#255'Y' +#166'Y'#255'L'#161'L'#255'@'#156'@'#255'4'#152'4'#255'*'#149'*'#255#7#131#7 +#255#0#133#0#255#0#138#0#255#0#141#0#255#0#143#0#255#9#146#9#255#15#135#11 +#254#2'w'#0#133#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#0'L'#0'H'#5'Q'#5#247'_'#162'_'#255'c'#173'c'#255'W'#168'W'#255'J'#163'J'#255 +'>'#159'>'#255'1'#156'1'#255'+'#156'+'#255#5#138#5#255#0#142#0#255#0#148#0 +#255#0#152#0#255#0#154#0#255#0#154#0#255#16#155#15#255#10#133#6#250#3'u'#0'Q' +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#0'T'#0#31#0'M'#0#232'W'#152'W'#255'm'#181 +'m'#255'a'#173'a'#255'U'#169'U'#255'H'#164'H'#255'<'#162'<'#255'/'#159'/'#255 +','#161','#255#0#144#0#255#0#151#0#255#0#157#0#255#0#162#0#255#0#165#0#255#0 +#165#0#255#0#164#0#255#24#159#22#255#5#133#1#239#0's'#0'#'#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0'/'#0#6#0'M' +#0#207'F'#134'F'#255'x'#188'x'#255'k'#180'k'#255'^'#174'^'#255'R'#169'R'#255 +'F'#165'F'#255'9'#163'9'#255'-'#162'-'#255'*'#166'*'#255#0#151#0#255#0#159#0 +#255#0#166#0#255#0#172#0#255#0#176#0#255#0#177#0#255#0#175#0#255#0#170#0#255 +#26#157#23#255#5#132#0#220#0'M'#0#7#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#0'M'#0#169'1s1'#255#132#193#132#255'u'#186'u'#255'i' +#179'i'#255'\'#173'\'#255'O'#169'O'#255'C'#166'C'#255'7'#164'7'#255'+'#163'+' +#255')'#168')'#255#0#157#0#255#0#165#0#255#0#174#0#255#0#181#0#255#0#186#0 +#255#0#189#0#255#0#186#0#255#0#180#0#255#5#172#5#255#24#150#20#255#4#133#0 +#186#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0'K'#0'y'#29'b'#29 +#254#135#193#135#255#127#193#127#255's'#184's'#255'g'#178'g'#255'Z'#172'Z' +#255'M'#169'M'#255'A'#166'A'#255'4'#164'4'#255'('#165'('#255'('#171'('#255#0 +#161#0#255#0#171#0#255#0#180#0#255#0#189#0#255#0#196#0#255#0#200#0#255#0#197 +#0#255#0#189#0#255#0#178#0#255#12#168#12#255#19#144#14#254#4#130#0#137#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#0'L'#0'H'#10'T'#10#247#134#186#134#255#137#199#137#255 +'}'#191'}'#255'p'#183'p'#255'd'#176'd'#255'X'#172'X'#255'K'#167'K'#255'?'#166 +'?'#255'2'#164'2'#255'%'#165'%'#255'('#172'('#255#0#163#0#255#0#174#0#255#0 +#184#0#255#0#194#0#255#0#204#0#255#0#211#0#255#0#208#0#255#0#196#0#255#0#183 +#0#255#0#170#0#255#20#160#19#255#13#141#8#250#3#129#0'T'#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0'@'#0#2#0'M'#0#227#132 +#177#132#255#153#210#153#255#141#200#141#255#131#193#131#255'w'#185'w'#255'j' +#179'j'#255'`'#176'`'#255'W'#172'W'#255'M'#172'M'#255'B'#172'B'#255'6'#171'6' +#255'9'#179'9'#255#4#166#4#255#5#177#5#255#6#187#6#255#6#197#6#255#7#208#7 +#255#8#218#8#255#9#214#9#255#10#201#10#255#11#188#11#255#12#175#12#255#13#161 +#13#255'/'#167'5'#255#27#160'*'#236#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#0'U'#0#2#0'M'#0#211#0'M'#0#255#0'M'#0#255#0'M'#0 +#255#0'N'#0#255#0'U'#0#255#0'\'#0#255#0'c'#0#255#0'j'#0#255#2'p'#1#255#3't'#2 +#255#3'{'#2#255#5'~'#3#255#6#130#4#255#7#132#5#255#9#136#6#255#9#139#6#255#10 +#140#7#255#12#143#8#255#13#143#9#255#14#144#10#255#16#146#11#255#17#145#12 +#255#18#144#13#255#19#143#13#255#6#141#1#218#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0'f'#0#3#0'P'#0#17#0'P' +#0#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0 ,'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0 +#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0 +'f'#0#3#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#7'OnClick'#7#18'CorrectButt' +'onClick'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#1#0#0#12'TLabeled' +'Edit'#9'OutputDir'#22'AnchorSideLeft.Control'#7#10'OutputFile'#21'AnchorSid' +'eTop.Control'#7#10'OutputFile'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'Anc' +'horSideRight.Control'#7#11'OutGroupBox'#20'AnchorSideRight.Side'#7#9'asrBot' +'tom'#4'Left'#2'm'#6'Height'#2'$'#3'Top'#2'P'#5'Width'#3#189#2#7'Anchors'#11 +#5'akTop'#6'akLeft'#7'akRight'#0#19'BorderSpacing.Right'#2#4#16'EditLabel.He' +'ight'#2#19#15'EditLabel.Width'#2'>'#17'EditLabel.Caption'#6#10'Directory:' +#21'EditLabel.ParentColor'#8#13'LabelPosition'#7#6'lpLeft'#8'ReadOnly'#9#8'T' +'abOrder'#2#2#0#0#0#10'TStatusBar'#10'StatusBar1'#4'Left'#2#0#6'Height'#2#21 +#3'Top'#3#0#2#5'Width'#3'r'#4#6'Panels'#14#1#5'Width'#2'2'#0#0#11'SimplePane' +'l'#8#0#0#9'TGroupBox'#16'SettingsGroupBox'#22'AnchorSideLeft.Control'#7#5'O' +'wner'#21'AnchorSideTop.Control'#7#10'InGroupBox'#18'AnchorSideTop.Side'#7#9 +'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7 +#9'asrBottom'#4'Left'#2#0#6'Height'#3#224#0#3'Top'#2'e'#5'Width'#3'2'#3#17'B' +'orderSpacing.Top'#2#5#7'Caption'#6#15'Local timezone:'#12'ClientHeight'#3 +#204#0#11'ClientWidth'#3'0'#3#8'TabOrder'#2#3#0#9'TGroupBox'#16'StandardGrou' +'pBox'#22'AnchorSideLeft.Control'#7#18'TZMethodRadioGroup'#19'AnchorSideLeft' +'.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#18'TZMethodRadioGroup'#4 +'Left'#3#157#0#6'Height'#2'h'#3'Top'#2#0#5'Width'#3#144#1#18'BorderSpacing.L' ,'eft'#2#5#7'Caption'#6#9'Standard:'#12'ClientHeight'#2'T'#11'ClientWidth'#3 +#142#1#8'TabOrder'#2#0#0#9'TComboBox'#13'TZLocationBox'#22'AnchorSideLeft.Co' +'ntrol'#7#7'Label11'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop' +'.Control'#7#11'TZRegionBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'Anchor' +'SideRight.Control'#7#11'TZRegionBox'#20'AnchorSideRight.Side'#7#9'asrBottom' +#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2'd'#6'Height'#2'#'#3'Top' +#2'!'#5'Width'#3#26#1#17'BorderSpacing.Top'#2#2#10'ItemHeight'#2#0#8'OnChang' +'e'#7#19'TZLocationBoxChange'#5'Style'#7#14'csDropDownList'#8'TabOrder'#2#0#0 +#0#9'TComboBox'#11'TZRegionBox'#22'AnchorSideLeft.Control'#7#6'Label6'#19'An' +'chorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#16'SettingsGr' +'oupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2'd'#6'Height'#2#31 +#3'Top'#2#0#5'Width'#3#26#1#10'ItemHeight'#2#0#13'Items.Strings'#1#6#6'afric' +'a'#6#4'asia'#6#6'europe'#6#12'northamerica'#6#10'antarctica'#6#11'australas' +'ia'#6#8'etcetera'#6#10'pacificnew'#6#12'southamerica'#0#8'OnChange'#7#17'TZ' +'RegionBoxChange'#5'Style'#7#14'csDropDownList'#8'TabOrder'#2#1#0#0#6'TLabel' +#6'Label6'#22'AnchorSideLeft.Control'#7#16'SettingsGroupBox'#21'AnchorSideTo' +'p.Control'#7#11'TZRegionBox'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'Ancho' +'rSideRight.Control'#7#11'TZRegionBox'#4'Left'#2#0#6'Height'#2#20#3'Top'#2#5 +#5'Width'#2'd'#9'Alignment'#7#14'taRightJustify'#8'AutoSize'#8#7'Caption'#6#7 +'Region:'#11'ParentColor'#8#0#0#6'TLabel'#7'Label11'#22'AnchorSideLeft.Contr' +'ol'#7#6'Label6'#21'AnchorSideTop.Control'#7#13'TZLocationBox'#18'AnchorSide' +'Top.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#13'TZLocationBox'#4 +'Left'#2#0#6'Height'#2#20#3'Top'#2'('#5'Width'#2'd'#9'Alignment'#7#14'taRigh' +'tJustify'#8'AutoSize'#8#7'Caption'#6#9'Timezone:'#11'ParentColor'#8#0#0#0#9 +'TGroupBox'#14'CustomGroupBox'#22'AnchorSideLeft.Control'#7#16'StandardGroup' +'Box'#21'AnchorSideTop.Control'#7#16'StandardGroupBox'#18'AnchorSideTop.Side' +#7#9'asrBottom'#4'Left'#3#157#0#6'Height'#2'P'#3'Top'#2'm'#5'Width'#3#144#1 +#17'BorderSpacing.Top'#2#5#7'Caption'#6#7'Custom:'#12'ClientHeight'#2'<'#11 +'ClientWidth'#3#142#1#8'TabOrder'#2#1#0#14'TFloatSpinEdit'#16'CustomOffsetEd' +'it'#4'Left'#2'd'#6'Height'#2'$'#3'Top'#2#8#5'Width'#2'H'#9'Increment'#5#0#0 +#0#0#0#0#0#128#254'?'#8'MaxValue'#5#0#0#0#0#0#0#0#224#2'@'#8'MinValue'#5#0#0 +#0#0#0#0#0#224#2#192#8'TabOrder'#2#0#0#0#6'TLabel'#17'CustomOffsetLabel'#4'L' +'eft'#2'8'#6'Height'#2#19#3'Top'#2#16#5'Width'#2'*'#7'Caption'#6#7'Offset:' +#11'ParentColor'#8#0#0#0#11'TRadioGroup'#18'TZMethodRadioGroup'#22'AnchorSid' +'eLeft.Control'#7#16'SettingsGroupBox'#21'AnchorSideTop.Control'#7#16'Settin' +'gsGroupBox'#4'Left'#2#5#6'Height'#2'P'#3'Top'#2#0#5'Width'#3#147#0#8'AutoFi' +'ll'#9#18'BorderSpacing.Left'#2#5#7'Caption'#6#7'Method:'#28'ChildSizing.Lef' +'tRightSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChil' +'dResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28 +'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVer' +'tical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenT' +'opToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'<'#11'Cl' +'ientWidth'#3#145#0#9'ItemIndex'#2#0#13'Items.Strings'#1#6#8'Standard'#6#6'C' +'ustom'#0#7'OnClick'#7#23'TZMethodRadioGroupClick'#8'TabOrder'#2#2#0#0#0#5'T' +'Memo'#5'Memo1'#22'AnchorSideLeft.Control'#7#10'InGroupBox'#19'AnchorSideLef' +'t.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#10'InGroupBox'#23'Anchor' +'SideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'An' +'chorSideBottom.Control'#7#10'StatusBar1'#4'Left'#3'6'#3#6'Height'#3#247#1#3 +'Top'#2#9#5'Width'#3'<'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBo' +'ttom'#0#18'BorderSpacing.Left'#2#5#17'BorderSpacing.Top'#2#9#20'Constraints' +'.MinWidth'#3#200#0#13'Lines.Strings'#1#6#213'This tool is used when the dat' +'alogger timezone was not set properly. The local timestamp is recomputed fo' +'r each record based on the timezone selections. One .dat file or a director' +'y of .dat files can be corrected.'#6#0#6#154'The "Standard" timezone usage ' +'uses a selected timezone region and timzone as the basis for computing the ' +'local time stamp from the existing UTC timestamp.'#6#0#6#163'The "Custom" t' +'imezone usage allows the user to enter a custom time offset in hours as the' +' basis for computing the local time stamp from the existing UTC timestamp.' +#6#0#6#148'If a single inpute file was selected, then the corrected output f' +'ile will be stored in the same directory with "_LocalCorr" appened to the f' +'ilename.'#6#0#6#181'If a directory of input files was selected, then the co' +'rrected files will be stored in a subdirectory called LocadCorr, and each f' +'ile will have "_LocalCorr" appened to its filename.'#0#8'ReadOnly'#9#10'Scr' +'ollBars'#7#14'ssAutoVertical'#8'TabOrder'#2#4#0#0#11'TOpenDialog'#11'OpenDi' ,'alog1'#4'Left'#3'p'#2#3'Top'#3#128#0#0#0#22'TSelectDirectoryDialog'#22'Sele' +'ctDirectoryDialog1'#4'Left'#3'p'#2#3'Top'#3#216#0#0#0#0 ]); ./kmllegendcleardarksky.png0000644000175000017500000005626314576573022016234 0ustar anthonyanthonyPNG  IHDRB8%sBIT|d pHYs.#.#x?vtEXtSoftwarewww.inkscape.org< IDATxyxS6M6iҦT^A 2( " tU"( 2 ^@A&+)4m4ɴ4nyY{7kMHJJH">{jƀʤRN$5y'&l6vZoRRRhCB)**"$ >1uۢR&-[8B"(Lrr`fb2H("$M4VRJ%:*jΔ)S;g޵kKP#G7o222 SNMh۶-ծ]rs> I!2,f]F!C:wLM2E}…S@,l2ge f={l.M`0W*`03{j{Ɉ#.\ Ym裏8q3V=bȑL&~`0,صk1DןeYYmBAe[)}5BH-sq~Z ={v! E"QX,yۍm۶IR)bbb2U*^{-wߵnw.!H$zH(F, VC\ׯo9dȐ͚5+MKKM$I|>߹Zfɓc- -[lq3 ~bqw(Çyضm޲eˢlRv?ǎ#LbۺukUVvLsvZvw^~_:??B!2f̘*J5չן%dȐ! S͠RSS|>Yt)=.--gϒsΑMIIYoR3D~X}… `U~O DZfFVkL&SBD"'|-//ଯT}B/D!4q޻IDwBPvSeee]bTRJP6!n-HT*bx0QB B>[]UUfۤV+4M}>?>>T*’#""DQQQ# BBz][RRQ#шgĢY: y6]5_G#a4F#a4F#a4F#a4F#a4F#a4_Y)DGJeP(&kEuEt4/+++ݩL;a,B+**ZhFFFzPX`2;&'&&|W_BaQC<#ZaZC AR>. >K(ꮗ"**a(BwdeeNV@EzhID ֐: fDFFP'NsνTr;yf͊NNN>O:5TM`0xdϞ=^zAMHII8h EQj HR(;{[~WW8yl޼Y5a}֕Jѯ_|AǓ.__ݷc6㸂W'MJ.Kb F޽AQOtbb}裏Çp‡76 (q\lXYYyvȑHeJÇE]`7̙3NQj?O?Mƍ{hܸq^zy]QTY[|>xGtt,F:+Žzvzꩌ<}8}F.˲Q%%%Z?o޼hɄW<DzlUVuE %&&?͛7+W48B̙3eeeXrNZYYY)x/<]ڶm[DFF23g,ɱ[ֱ/^b1뙽{y F,f˗|\(6:P ĭ>,Qj\jW%,˦B Ø8+OX,N Eq> v܏e]9BVNk!BxncqF#a4F#a4F5bqBx8**o0R3ea]3Xl(}\\\U[rZR`YBQ5*&&_((idZSUUGNwOzz>gƍWEV+ٳgOu\޵V.66ֶxbBRzgffm߾=CL&oBC=t&n\vۮ ~k,K_rcmQ;vH۷OhʉD"ٳI&U'$$ ##vjCT~v!-q|>}t1?!!޶m[VVԣ>ZҶmۜv̙#իW3P p8ί^zʅ  999M?>oEGGCP(~NY,^^\(twDoѢT*h"h|lЊ+*Zl $4"d2zjb^^^իW曕`0D4MkQQQ(gRiRdnP @ ZʵZ Bnj8}4>skcPFAkpsQ=I-:`B4EQ̿X-T򑑑رCh JAQ=ktBB«m۶]?L4믿~^ZZ^w\_jE'NHްa7qcKw,ٲe w%YVVDґJ{j METbb޽{?+Gi;wEEEoգ涨BUZZO<15*Rl@Z\flv׆j9sftNNΓBرcM8QѧOϕ+W8JZ д9q[ǽ;_,+ WN[0o޼hٌsytBaj]  RizLL(p@ 9s(ʰ|Z PY}Ƚ{ԩSTX6}ĉL' !Ԉ#"z=5`kEEXP(O?M~~*JHH+СL6dԩJ Z ߯()  A+7$%%}5t~oFC=TyﺷJ^޽{^xjV11ݻwjh|s=^|ĉ~|A^GΝAӴ xZ0wS,11W^y%kذanݺV5B$5''!!An07+**n MWE"Q̘1c_|N5.]֭=vGh"$n`صdɒM4vr訨QQQ 9󖔔`3 k "\;(333d翡Rod?7n<OvUUU:v(ΞCtvLLL$F2e 벲 :Ç+SOYfᝯ2d b 0dDb?ÇCPr>}R L&ƍ t:W\3}MN,//9Rxq|7{eԾ}2cǎ}l6YfHOOǨQL& S޺u+j MAp:!C;w qPPP0|…o|O* X,&˖- |fE0G?ޯT*x(p:sV& LQۿq~A)޵0LYcdy? ՛lqF#a4F#a4&"QzӸCW-H) siqq;tR/!|_a6߸C`XȲȨ(F"j{l6?xL?_"zV{} a ON-((@QQ7xc_03@&M9p@Bbb";cqJ M6Mej 5Jrʕ#G6a8p8={`{O|3bxܮ],X 0,k׮UUU .Dܭ~@0W_nڴ/or\:to6UV*Œq\Iiigf˓߬0Lo^eY6Ϟ=YH$Ds*T]]vgddv:" ].C^'Vk*++)xpݱYO  78}CwIkک;vdF#G9¦:R-q3zvڴi1Æ {n4j(͘1cL&v7oqA[g ö_|u||ҽU *""bͩS4K.u.]K۝ݲeG 2dTqqNjc zgj0=,H4;k&GGG zU\\\﯐0]$uTBBP(pv-hܵkW'VwijԨQ@ {f>hry4 a^\qqX<|֭Y;͛wpX,!6lŋj͛G@vvvu0 Br)P(!Ǽ^az <(F-G 222ȑ# e͛7աPH\fU*8nΟ??Clš5k]v]' ::ZwaP֮];;w.㸸nݺ5{!q}zbVVVU}r~|߻uƆhy惿Lch|>#VW] ט"gYS_F3F"h$"F"h$"F"¸_ P(ҥ *9ww1bz ~k4f {{j-[-55ZȦ[l1bD܊+bfϞ) oP U||;vO4v=PXX#B*Fun۶ӧO7kL|ĉv\AxO4Aoz#Z2iP^!B,FxZ}>##cF)d~ǎB0L7e*ʱ@zz\r D"OKK+&EykQQQDAAAK?f>x!׮]{4226$Ba~ѫW;r^`0Jb8B䔔zqP8_ۯ17VaHFF9;:qҘa8Rgo߾=% jժ֭{h4沲֭[#""YSP(`0m$!))o?~x0_rĭ٭[2Bq:$33Ӝ~hVBy*ٳYn]k׮UD"uQQvZn2<˲lfRRRpɒ% qqqp\ػw/?zҒFG"uM[enPt) B_9^_XX+!!aL&S't:jOEDD DBFBwl6y>'\,dC xBfx'4>h$"F"h$"F"h$"bcY)!Vz,{_'ZĈD,BHХڄ@!ugr\Bj ÙN:u2[/z8~cfqhr6m*ܹTPݻw4/NV}O>SSSo l6?yyy# 66(33SةS'\.^vM믿_ZZ:pn X5iҤ#GT;e{/~Htk""""&Mq݂ &Hz)Mwܡ('㶳ƨ(ٸqՂSJ=;f̘ͥ |>_nAA͛~i\n@xtt:N:5[(1cFތ={x͛?(‚[N;~{饗 Dx NDyyywח9;aZG9t_'22mժ pzl;WI?*}!nqK: "(566 7l|;08CvX׮];hZ\ŋ+((xnt䪫InD"鐘~޽;wZq'2 bP%KM>'^e[B]wzPEӴkZZNubf[T*Vr狣gffj(r5yxѯ wgvܩtzt֬Y,u~z_IIInc=P(d6lX`0~d҃¦:h4ߞwߍ0Gs*F#PTÆ BX,FJJ F嗢'"P-]!@( X|9ZVN@ @( }G\nn  p\U7o/Vv̙3Ǿm6[YY@{(0T|||$||>0 #OE{`Yv.nPD["BHk 4M[^~a4ԚXmFtZt:]zPcGXfB!sK$ݏ]p֫>n}HDDHDDHDT-{=DQid/GT"bq;JI.Gba4OROӴr,--] 3 3b#n'">>شi:v(tz8}yM***xN@ttqرTΝ8w.]*::t tp?~뭷>>L& . &4<bfSN-x<|6m6l޽{\.]k Eaɒ%͛7+k R ɓ'qǷo>bڵ]jwe~~~[|AL4!fSp8겲6m͛=SBB8ft츸wo ^dXVvqСCiL[WaUVm@PL)(*"***Bt'E B! vON"`YOiq~e)n#0ҥ:!!ᣂz(־\7CzcT*Uo^?uРAٳgW|{D111 ؾ}R~T[x]v-Z@HΝE>w8Ckm\\ܳ:ul62k,`O}rҫ:'vjɴi2LQZlH?22mZB9pIIIIգ /MY宑_Ëeڶm;嫯|š5kڽ{E,4i^(""bF)U$J,\Vh4RL z=LFFFիWF#o8g̙ .dz<Srre֬Yjx'p8}vB^)((hv*;;;+la6kҤI+Wa4o?m4ٳgSg|ǯ\'F8~xX,F޽gΜo IFYZ_Yqqu;ڻwo)PߩW_}e˖f͚C^|Eˉ'|.k;=B"$B[WpSQM^S&4|^%D"B5E"Q*EQa`~xS3Ur[n8~8h$"F"h$"F"h$"OW!D 'F㜛(Z\.ae ~"(C׿9& 0ͳn0L.r;l6;>ڵkSڷoB .]dҤI\|yy`0<ÏRìsڵs-Z43cօFy`0|b BL&C^^^ /3//wmR|IDVV{bڴijƍ+ N<رc*22r1,[,b镭[>3h / >b8M6D"UL&W&''###C-Ht>~L\~>]c[^%ZROLLn8N@M6իW Nd:tyBT*H ,[3H$B \.6mڈ~*<unyp}9nt-"x_ֻwojذa65(RFDDv# ǜvD":l<8qt:`c! )SB$i:nPH!Bqo z@[QwuԪUj;}Bټ !^X @ d2~?ANsRn̟?_O?%\tLQYYo6gYdddRݻw~嗐5kK/uelٲel~OV/d/9Z=>ǵk̵c \.e(zE .O+ 񵸧'RMG!nl>{6KR-&11޽{o k׮vp[/}˖-k4,ۢN;$;;bIvv69|0IKK;=v{5) uR*St$ž#5S,^H_(\^ׄP/sHxV8 000HAD"a x/O]"^i4M(66T*tB0S(=1#.РC\VtХKȦMHEEYd'99Z JDRRR?szzŅ$ &M@P :uBw^UV%dƍ|bbw6 g9B ⿙wj߾B}JXܽVuŋrrrN*,,}4MC*P &D|NNΘu"O<˲աg>s)+W]t~s9EQtڕ>z(WWWRQQa8&LNHHx'Ҳzw|nr oVl6mX a )))8y$~}ֳ999䖷H$ʈW۶m֭ۮP(!VnEEb& lR[z;-Ӊ|Ɏ-Z@Ϟ=&i D"qƻNX$Q Cߢ5wK.U=h4nٲgUV+!C :tP3f(ˡVbPi$DܝlA/駟Z\\,q'  <R)B!x'Hoذa+Wz].'33K\1 &$$|4/_'Ol?xmFΟ?ߥP($<hbC׺[[~ME*^oMZn-ڵtVZZbΝ!~T:UV <~ʴ/̌ s:"JIRr+--]bŊ+WJOOoBQ&HԵk׮/yq֭:y$>s/^mܸ񺙾u֒uEo޼ٳ|rXMH$Gjn noKqqzpի~ e3 1cPٌM(߿rqc\^_=F?O>I\z<@ o4_Dz϶h"xW^^^`0HQX-?vؙaÆ5L0 <_R^^>tI,Jψm7000',6 ;nͲlL& -(X²l3[Ȉ$>Ma@ h 4˗/`4"< mKKKKcL&S0??btoWN)HoժP"PΝ \F$A\],U(*@IR:???dZG\ NMӃO>tv*lҤ -[G}<@W_}$99޹sgK.e鳳4>|ꟙt۶m'Ob׭['Xjը>HZXXT*}`…8y?!!y衇۲zhݺul6O?:ud} :: &|AM63e˖iǏv?w ">U><h߾}SWZu־ӦMsDB'x?zg,XЩZ/ӫ¿CVZa111Æ.v^)dzpDdsZq^߽`fb=Pd4MB!^/`Mnk#yz266VχHus^|m޼yѣGWY,&E[4{D +>RTV[jUNcSZTT@(r8`FR/2x3 a|"""j R%H$(--qR+zIJeˢqٳg?(-->X;SDܰ*ŲlsVsӦM UUU>n,֥K.E <:G˖-Y %%]H VŠ]W\!о}{xM&ٳo;vNh4̝i6W58qF#a4F#a4F#aO_lP(LG8G?] E~?sT*zsq3 cYsHtM6;zUw X#>>~mttI&t1 }SSS/_믎G܌iM6jo Jp_ Tu͛ <۶msqV5` />#G$>ӑ.\p 0@6DaZzq㎧:tfq:mIDAT-Z}]PAA(xڵk^{M3gΜqޮ-[?b<Q/qJ;w.-**ztǎ9rJO?={?v,--w+ߟbxޣ ØѧO6**ϝiQ*da@juu.Dz-8s (N;vEQY \c{M캞-Ϟ0La^^^6m@$bY6O,'FEE!""@ N:F%z5iii9sʟGaax* Ǐ-/JUSmtۭ@,J:.LbF\$q qjQc K4 Buw"*&|߽:uNy_}}iEER z;r/1Z}رW ]v Ç) 8̙S+ Rw:Kn޼9s87p:p:-.˲,МN@o&zXľ&km-yܪT*NyyyGTg[[[j~W(O$V^ٳgUGfYd6!H M2T l`b'q 6CgG}}=:P(|||. 80ֺ4{5 kM&n@& SF>ME+ʖ.AsȾ}ehJ},[jz%**J\iiHѼGQԭ]zxx3 cH$۷+M&lRe0~z§޾stUV"m4q/k.]/_/(4i{xx8z-`HrذaSLG#>>#++R˱m۶J.\ܹl\F0 ٴiJTǏoٲZ0̃W^y+Vȏ?YVVSܹsgd:O Q\'o/Cqj =R۳3)}||&p\?i1 g RtH$V*cy<0 &) O/x\nnTZZboUu/WB'.tB'.tB'.tTr#(j-kҢDd?0555m6Eϟ s8AUU9v1;A@3@9.vZ=f2`/9۷o7=?zƌr\Ʉ3gԞ>}ZSRR2  J2kƌGA4O:cIIXbXŋZvZN;҇!D2i$lnz&T'ƏjZZ~?655zǎ+VDtW*N8o?e˖uٺu뀀-wnEUUUcEEesvzCR7(//9|˖-{ʅxaG,Ç4M/e㏿:t(c`;}"""0v*F3noذ/R4E_V;w4 k8NKI0Y:Zv=VՔ B%00p/ピј,; \+k nnnFcs!Ch.۪JQJ"::z}hhhJnݒY\w; /V:v=';;_jZJѧOy=ztN1ϲc,̜9S\]] !D2k,)xPBarcjsÁ[܎{QQQ2qrW)OWŋׄicbb*sN͂-K e_jh$ɩ'fd29h4GTVVFۗx: ,˶apF774MsE"8XEQ(rnݺeT^ $jkk#@R[t韭V+{nR(Nv]A JEQG8pA9+ٳgBBBvW\3iii׿g̘1ɓeiӦq9t:H$pqSB1aȐ!ٳg{NjΝ[g6 )x|IoN]fڵ+'tussÇ~h,//!P($Rtkך@*B$0 pҥdV8bcc nzX\\8dž j-§VFQ}ѢEJPVk0`n^O^}S͛iGm8|~]ccwOFI]V5͕@sVexyy*XiY4yEQ?h$ah+">?s\l\fqGl6_%럙ݞrqp\X,2k)%:>]$…N"\$…N"\$…x|x>?T& lv^ږrdYXUPUkX.³km7x2lHe(g&bg |oo92ueE @CGJ2dȶXQDDbѢE5Z,"jʻ2e1MӠ( /_NJJZPYY9OZtҘhfrʙeee''Nq\Bp>!b+ QFF177WsND&ӟ+11Q?ܽ{Ç=ᇭΝH$M"H$͆&VYY\)=^0wD>hjjܸqa̘1 !92Rļyj Cj{{tz<`ܹfZ/~a)ʖ% ,X`DF>BվvHrIMM%UUUܹs$00Ǜ<|viwww62lB`@ƌS;p*T*DEaqgh$a kmr 6x=|g5MH$2))=--m6gp@II7o 2 *L`\t^^^KMׯ<};bQL& p8p8OO8TZ_]]}tV+J%NgP(ҥ\aE1RL4)D7o\ظ]/JVUUe8zT:W^Y镢(fARe>BG,\ml/e#O2R5+Vt-++[HMMWWWٺu{aÆ>ajӦMVas >3ɷ~۷oSЫWn߾=>j(kƹp[TTTj6F1m%IIIn;#** k֬13 sC7nX Cu:/_!<iA{+ v0ޓۧ DI DI DOP(RB"6wp}嶻p4㞞 nl;=7JP$4-MN@SG^>}?yiӧO4LOtbx@JJJ싊0{vUȪh^'RUUE4 Yf fzׯB,X`$Y§MMMMd߾}M7nl"$((#s9F#IOO'$;;|~EQLJJOYV\)P8\Zf9W0 mX+W\駟ۛ}l{=+yVӍ?~X,^OzlK#:"iC+hGOK$ :>]$…N"\$…N"\$…N"\$…N"\$PXXsm+[}WtA8공E g"EU@ |j Ô)SЧO}K.EJoD_e3c lEG~EHFF|2ٴi$_|@߿O|o:K.*aÆl;DBM߇Z.jkk1ydҜ߳gkŁVcɠiǏbM3f z쉇~# χJGff&ƌ___sܸqP(vܹ8p 0`t6@\t }ň#`2pɧW^00ͭU( }zzx-G]^^'N`ܸq7nFK.a֬YOpB޽ME@mm-fg㭷ҥKq̙v .. .ѣ4+-X-U[VEbb"N8H8q&MyaIwq5bܺu aaaS)ʯW^^Fñch4̜93gD{ؽ{7vڅۭ5 yܾ}ja00e>}d2jJ:tBGELL l6._ŵ ܭV+RSS=z֭`ap!=z@NNrss @@|aXjђ~MB;v ??x"BCC! yfAd2 ͫꐟ^L֭[ Ehh(p!, ^ ''555i* lS,'lÆ #I^#G?+Wď?Աwf?\{IENDB`./dlretrieve.lfm0000644000175000017500000021117314576573021014021 0ustar anthonyanthonyobject DLRetrieveForm: TDLRetrieveForm Left = 2173 Height = 844 Top = 62 Width = 770 ActiveControl = DLGHeaderButton Anchors = [] Caption = 'DL Retrieve' ClientHeight = 844 ClientWidth = 770 Constraints.MinHeight = 400 Constraints.MinWidth = 745 OnCreate = FormCreate OnShow = FormShow Position = poOwnerFormCenter LCLVersion = '3.0.0.3' object DLGHeaderButton: TButton AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 5 Height = 34 Hint = 'Open the file header definition page.' Top = 5 Width = 59 BorderSpacing.Left = 5 BorderSpacing.Top = 5 Caption = 'Header' ParentShowHint = False ShowHint = True TabOrder = 0 OnClick = DLGHeaderButtonClick end object DLRetrieveAllButton: TButton AnchorSideLeft.Control = Block AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = DLGHeaderButton Left = 208 Height = 34 Hint = 'Colect all records via ASCII format (slower).' Top = 5 Width = 92 BorderSpacing.Left = 5 Caption = 'Ret. all (ASCII)' ParentShowHint = False ShowHint = True TabOrder = 1 OnClick = DLRetrieveAllButtonClick end object DLCancelRetrieveButton: TButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = DLRetrieveAllButton AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 696 Height = 34 Hint = 'Cancel retrieving records.' Top = 5 Width = 69 Anchors = [akTop, akRight] BorderSpacing.Right = 5 Caption = 'Cancel' Enabled = False ParentShowHint = False ShowHint = True TabOrder = 4 OnClick = DLCancelRetrieveButtonClick end inline SynMemo1: TSynMemo AnchorSideLeft.Control = Owner AnchorSideTop.Control = RecentFileEdit AnchorSideTop.Side = asrBottom AnchorSideRight.Control = RecentFileEdit AnchorSideRight.Side = asrBottom AnchorSideBottom.Side = asrBottom Cursor = crIBeam Left = 5 Height = 80 Top = 131 Width = 735 BorderSpacing.Left = 5 BorderSpacing.Top = 1 Anchors = [akTop, akLeft, akRight] Font.Height = -13 Font.Name = 'Courier New' Font.Pitch = fpFixed Font.Quality = fqNonAntialiased ParentColor = False ParentFont = False TabOrder = 5 Gutter.Visible = False Gutter.Width = 57 Gutter.MouseActions = <> Keystrokes = < item Command = ecUp ShortCut = 38 end item Command = ecSelUp ShortCut = 8230 end item Command = ecScrollUp ShortCut = 16422 end item Command = ecDown ShortCut = 40 end item Command = ecSelDown ShortCut = 8232 end item Command = ecScrollDown ShortCut = 16424 end item Command = ecLeft ShortCut = 37 end item Command = ecSelLeft ShortCut = 8229 end item Command = ecWordLeft ShortCut = 16421 end item Command = ecSelWordLeft ShortCut = 24613 end item Command = ecRight ShortCut = 39 end item Command = ecSelRight ShortCut = 8231 end item Command = ecWordRight ShortCut = 16423 end item Command = ecSelWordRight ShortCut = 24615 end item Command = ecPageDown ShortCut = 34 end item Command = ecSelPageDown ShortCut = 8226 end item Command = ecPageBottom ShortCut = 16418 end item Command = ecSelPageBottom ShortCut = 24610 end item Command = ecPageUp ShortCut = 33 end item Command = ecSelPageUp ShortCut = 8225 end item Command = ecPageTop ShortCut = 16417 end item Command = ecSelPageTop ShortCut = 24609 end item Command = ecLineStart ShortCut = 36 end item Command = ecSelLineStart ShortCut = 8228 end item Command = ecEditorTop ShortCut = 16420 end item Command = ecSelEditorTop ShortCut = 24612 end item Command = ecLineEnd ShortCut = 35 end item Command = ecSelLineEnd ShortCut = 8227 end item Command = ecEditorBottom ShortCut = 16419 end item Command = ecSelEditorBottom ShortCut = 24611 end item Command = ecToggleMode ShortCut = 45 end item Command = ecCopy ShortCut = 16429 end item Command = ecPaste ShortCut = 8237 end item Command = ecDeleteChar ShortCut = 46 end item Command = ecCut ShortCut = 8238 end item Command = ecDeleteLastChar ShortCut = 8 end item Command = ecDeleteLastChar ShortCut = 8200 end item Command = ecDeleteLastWord ShortCut = 16392 end item Command = ecUndo ShortCut = 32776 end item Command = ecRedo ShortCut = 40968 end item Command = ecLineBreak ShortCut = 13 end item Command = ecSelectAll ShortCut = 16449 end item Command = ecCopy ShortCut = 16451 end item Command = ecBlockIndent ShortCut = 24649 end item Command = ecLineBreak ShortCut = 16461 end item Command = ecInsertLine ShortCut = 16462 end item Command = ecDeleteWord ShortCut = 16468 end item Command = ecBlockUnindent ShortCut = 24661 end item Command = ecPaste ShortCut = 16470 end item Command = ecCut ShortCut = 16472 end item Command = ecDeleteLine ShortCut = 16473 end item Command = ecDeleteEOL ShortCut = 24665 end item Command = ecUndo ShortCut = 16474 end item Command = ecRedo ShortCut = 24666 end item Command = ecGotoMarker0 ShortCut = 16432 end item Command = ecGotoMarker1 ShortCut = 16433 end item Command = ecGotoMarker2 ShortCut = 16434 end item Command = ecGotoMarker3 ShortCut = 16435 end item Command = ecGotoMarker4 ShortCut = 16436 end item Command = ecGotoMarker5 ShortCut = 16437 end item Command = ecGotoMarker6 ShortCut = 16438 end item Command = ecGotoMarker7 ShortCut = 16439 end item Command = ecGotoMarker8 ShortCut = 16440 end item Command = ecGotoMarker9 ShortCut = 16441 end item Command = ecSetMarker0 ShortCut = 24624 end item Command = ecSetMarker1 ShortCut = 24625 end item Command = ecSetMarker2 ShortCut = 24626 end item Command = ecSetMarker3 ShortCut = 24627 end item Command = ecSetMarker4 ShortCut = 24628 end item Command = ecSetMarker5 ShortCut = 24629 end item Command = ecSetMarker6 ShortCut = 24630 end item Command = ecSetMarker7 ShortCut = 24631 end item Command = ecSetMarker8 ShortCut = 24632 end item Command = ecSetMarker9 ShortCut = 24633 end item Command = EcFoldLevel1 ShortCut = 41009 end item Command = EcFoldLevel2 ShortCut = 41010 end item Command = EcFoldLevel1 ShortCut = 41011 end item Command = EcFoldLevel1 ShortCut = 41012 end item Command = EcFoldLevel1 ShortCut = 41013 end item Command = EcFoldLevel6 ShortCut = 41014 end item Command = EcFoldLevel7 ShortCut = 41015 end item Command = EcFoldLevel8 ShortCut = 41016 end item Command = EcFoldLevel9 ShortCut = 41017 end item Command = EcFoldLevel0 ShortCut = 41008 end item Command = EcFoldCurrent ShortCut = 41005 end item Command = EcUnFoldCurrent ShortCut = 41003 end item Command = EcToggleMarkupWord ShortCut = 32845 end item Command = ecNormalSelect ShortCut = 24654 end item Command = ecColumnSelect ShortCut = 24643 end item Command = ecLineSelect ShortCut = 24652 end item Command = ecTab ShortCut = 9 end item Command = ecShiftTab ShortCut = 8201 end item Command = ecMatchBracket ShortCut = 24642 end item Command = ecColSelUp ShortCut = 40998 end item Command = ecColSelDown ShortCut = 41000 end item Command = ecColSelLeft ShortCut = 40997 end item Command = ecColSelRight ShortCut = 40999 end item Command = ecColSelPageDown ShortCut = 40994 end item Command = ecColSelPageBottom ShortCut = 57378 end item Command = ecColSelPageUp ShortCut = 40993 end item Command = ecColSelPageTop ShortCut = 57377 end item Command = ecColSelLineStart ShortCut = 40996 end item Command = ecColSelLineEnd ShortCut = 40995 end item Command = ecColSelEditorTop ShortCut = 57380 end item Command = ecColSelEditorBottom ShortCut = 57379 end> MouseActions = <> MouseTextActions = <> MouseSelActions = <> Lines.Strings = ( '' ) VisibleSpecialChars = [vscSpace, vscTabAtLast] ReadOnly = True RightEdge = -1 ScrollBars = ssAutoVertical SelectedColor.BackPriority = 50 SelectedColor.ForePriority = 50 SelectedColor.FramePriority = 50 SelectedColor.BoldPriority = 50 SelectedColor.ItalicPriority = 50 SelectedColor.UnderlinePriority = 50 SelectedColor.StrikeOutPriority = 50 inline SynLeftGutterPartList1: TSynGutterPartList object SynGutterMarks1: TSynGutterMarks Width = 24 MouseActions = <> end object SynGutterLineNumber1: TSynGutterLineNumber Width = 17 MouseActions = <> MarkupInfo.Background = clBtnFace MarkupInfo.Foreground = clNone DigitCount = 2 ShowOnlyLineNumbersMultiplesOf = 1 ZeroStart = False LeadingZeros = False end object SynGutterChanges1: TSynGutterChanges Width = 4 MouseActions = <> ModifiedColor = 59900 SavedColor = clGreen end object SynGutterSeparator1: TSynGutterSeparator Width = 2 MouseActions = <> MarkupInfo.Background = clWhite MarkupInfo.Foreground = clGray end object SynGutterCodeFolding1: TSynGutterCodeFolding MouseActions = <> MarkupInfo.Background = clNone MarkupInfo.Foreground = clGray MouseActionsExpanded = <> MouseActionsCollapsed = <> end end end object RecentFileEdit: TLabeledEdit AnchorSideLeft.Control = DLRetrieveAllButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = OpenRecentFileButton AnchorSideRight.Control = OpenRecentFileButton Left = 300 Height = 36 Top = 94 Width = 440 Anchors = [akTop, akLeft, akRight] EditLabel.Height = 19 EditLabel.Width = 46 EditLabel.Caption = 'Logfile:' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 6 end object OpenRecentFileButton: TBitBtn AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = LogsDirStatusLabel AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 740 Height = 25 Hint = 'Open recently saved logfile' Top = 94 Width = 25 Anchors = [akTop, akRight] BorderSpacing.Top = 5 BorderSpacing.Right = 5 Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000404E4E6F424E 4EF53E4A4AFF3E4A4AFF3E4A4AFF3E4A4AFF3E4A4AFF3E4A4AFF3E4A4AFF3E4A 4AFF3E4A4AFF3E4A4AFF3E4A4AFF3E4A4AFF424E4EF5404D4D70455252FD889B 9BFF9AACACFF9BADADFF9CAEAEFF9EAFAFFF9FB0B0FFA1B1B1FF9FAFAFFF9CAD ADFF99AAAAFF97A7A7FF93A5A5FF90A2A2FF7A8C8CFF435151FE4A5857FFB8C5 C3FFABBAB8FFAABAB9FFABBAB8FFA9B8B7FFA9B8B6FFA9B7B7FFA7B6B4FFA6B5 B3FFA4B3B2FFA3B1B0FFA2B1AFFFA0AEACFFA3B1B0FF4A5857FF526361FFB3C1 BFFFB8C5C4FFB6C3C2FFB4C1C1FFAAB9B7FF9CADABFF96A8A7FF96A8A6FF94A6 A4FF94A5A4FF93A5A3FF92A3A1FF91A2A1FFA8B5B3FF526261FF576966FD5C6F 6CFF5C6F6CFF5C6F6CFF607370FF91A1A0FFB3BFBFFFB9C5C4FFB8C4C3FFB7C3 C2FFB6C1C1FFB5C0C0FFB4BFBFFFB2BEBDFFADB9B9FF5A6C6AFF4D5C5BFB5667 67FF566767FF566767FF555A58FFA2AFADFF697C79FF677B78FF677B78FF677B 78FF667A77FF667A77FF667A77FF647875FF647875FF617472FF50615FFB5667 67FF566767FF566767FF535755FFFFFFFFFFB6BDBAFFB3BBB8FFB3BBB8FFB3BB B8FFB3BBB8FFB3BBB8FFFAFBFBFF535856FF576767FF516260FF546564FB596B 6AFF596B6AFF596B6AFF535755FFFFFFFFFFECEEEEFFECEEEEFFECEEEEFFECEE EEFFECEEEEFFECEEEEFFFFFFFFFF535755FF596B6AFF556664FF576967FB6D7F 7DFF657977FF657977FF535755FFFFFFFFFFB6BDBAFFB6BDBAFFB6BDBAFFB6BD BAFFB6BDBAFFB6BDBAFFFFFFFFFF535755FF657977FF586A67FF5B6E6CFB8497 94FF718784FF718784FF555957FFFBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFBFBFBFF555957FF768C89FF5B6E6BFF5E7270FB99AA A8FF7C9390FF7C9390FF6D7C7AFF555957FF535755FF535755FF535755FF5357 55FF535755FF535755FF555957FF768381FF849896FF60736FF7637673FBA4B4 B2FF7C9390FF7C9390FF7C9390FF7C9390FF8DA19EFF8FA09EFE657976FB6377 74FF637774FF637774FF647774FF637674FF637875F764787373637875F4A8B7 B5FFA8B7B5FFA6B5B3FFA4B4B2FFA1B2B0FF9BACAAFF677C79F564787333FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00627874756579 76F9667A77FC667A77FC667A77FC667977FC657976F06474725CFFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008080 80046080800860808008608080086080800855555503FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 } OnClick = OpenRecentFileButtonClick ParentShowHint = False ShowHint = True TabOrder = 3 TabStop = False end object OpenAnotherFileButton: TBitBtn AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SynMemo1 AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 740 Height = 25 Hint = 'Open another saved logfile' Top = 131 Width = 25 Anchors = [akTop, akRight] BorderSpacing.Right = 5 Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000404E4E6F424E 4EF53E4A4AFF3E4A4AFF3E4A4AFF3E4A4AFF3E4A4AFF3E4A4AFF3E4A4AFF3E4A 4AFF3E4A4AFF3E4A4AFF3E4A4AFF3E4A4AFF424E4EF5404D4D70455252FD889B 9BFF9AACACFF9BADADFF9CAEAEFF9EAFAFFF9FB0B0FFA1B1B1FF9FAFAFFF9CAD ADFF99AAAAFF97A7A7FF93A5A5FF90A2A2FF7A8C8CFF435151FE4A5857FFB8C5 C3FFABBAB8FFAABAB9FFABBAB8FFA9B8B7FFA9B8B6FFA9B7B7FFA7B6B4FFA6B5 B3FFA4B3B2FFA3B1B0FFA2B1AFFFA0AEACFFA3B1B0FF4A5857FF526361FFB3C1 BFFFB8C5C4FFB6C3C2FFB4C1C1FFAAB9B7FF9CADABFF96A8A7FF96A8A6FF94A6 A4FF94A5A4FF93A5A3FF92A3A1FF91A2A1FFA8B5B3FF526261FF576966FD5C6F 6CFF5C6F6CFF5C6F6CFF607370FF91A1A0FFB3BFBFFFB9C5C4FFB8C4C3FFB7C3 C2FFB6C1C1FFB5C0C0FFB4BFBFFFB2BEBDFFADB9B9FF5A6C6AFF4D5C5BFB5667 67FF566767FF566767FF555A58FFA2AFADFF697C79FF677B78FF677B78FF677B 78FF667A77FF667A77FF667A77FF647875FF647875FF617472FF50615FFB5667 67FF566767FF566767FF535755FFFFFFFFFFB6BDBAFFB3BBB8FFB3BBB8FFB3BB B8FFB3BBB8FFB3BBB8FFFAFBFBFF535856FF576767FF516260FF546564FB596B 6AFF596B6AFF596B6AFF535755FFFFFFFFFFECEEEEFFECEEEEFFECEEEEFFECEE EEFFECEEEEFFECEEEEFFFFFFFFFF535755FF596B6AFF556664FF576967FB6D7F 7DFF657977FF657977FF535755FFFFFFFFFFB6BDBAFFB6BDBAFFB6BDBAFFB6BD BAFFB6BDBAFFB6BDBAFFFFFFFFFF535755FF657977FF586A67FF5B6E6CFB8497 94FF718784FF718784FF555957FFFBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFBFBFBFF555957FF768C89FF5B6E6BFF5E7270FB99AA A8FF7C9390FF7C9390FF6D7C7AFF555957FF535755FF535755FF535755FF5357 55FF535755FF535755FF555957FF768381FF849896FF60736FF7637673FBA4B4 B2FF7C9390FF7C9390FF7C9390FF7C9390FF8DA19EFF8FA09EFE657976FB6377 74FF637774FF637774FF647774FF637674FF637875F764787373637875F4A8B7 B5FFA8B7B5FFA6B5B3FFA4B4B2FFA1B2B0FF9BACAAFF677C79F564787333FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00627874756579 76F9667A77FC667A77FC667A77FC667977FC657976F06474725CFFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008080 80046080800860808008608080086080800855555503FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 } OnClick = OpenAnotherFileButtonClick ParentShowHint = False ShowHint = True TabOrder = 2 TabStop = False end object RetRangeButton: TButton AnchorSideLeft.Control = DLRetrieveAllButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = DLRetrieveAllButton Left = 303 Height = 36 Hint = 'Collect a range of readings. Must define the record range.' Top = 5 Width = 120 BorderSpacing.Left = 3 Caption = 'Ret. Range (ASCII)' ParentShowHint = False ShowHint = True TabOrder = 7 OnClick = RetRangeButtonClick end object RangeStart: TEdit AnchorSideLeft.Control = RetRangeButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = DLRetrieveAllButton Left = 425 Height = 36 Hint = 'Start of range' Top = 5 Width = 64 Alignment = taRightJustify BorderSpacing.Left = 2 ParentShowHint = False ShowHint = True TabOrder = 8 end object RangeEnd: TEdit AnchorSideLeft.Control = ToLabel AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = DLRetrieveAllButton Left = 506 Height = 36 Hint = 'End of range, -1 for last record' Top = 5 Width = 80 Alignment = taRightJustify BorderSpacing.Left = 2 ParentShowHint = False ShowHint = True TabOrder = 9 end object ToLabel: TLabel AnchorSideLeft.Control = RangeStart AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = RangeStart AnchorSideTop.Side = asrCenter Left = 491 Height = 19 Top = 14 Width = 13 BorderSpacing.Left = 2 Caption = 'to' ParentColor = False end object MaxRecordsLabel: TLabel AnchorSideLeft.Control = RangeEnd AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = RangeEnd AnchorSideTop.Side = asrCenter Left = 588 Height = 19 Top = 14 Width = 108 BorderSpacing.Left = 2 Caption = 'MaxRecordsLabel' ParentColor = False end object DLRetrieveRawButton: TButton Left = 653 Height = 26 Hint = 'Collect all readings in raw format (faster, but needs converting).' Top = 174 Width = 42 Anchors = [] Caption = 'Raw' TabOrder = 10 Visible = False OnClick = DLRetrieveRawButtonClick end object DLRetConvRawButton: TButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = DLRetrieveRawButton AnchorSideRight.Control = DLRetrieveRawButton Left = 611 Height = 26 Hint = 'Convert raw file to .dat file.' Top = 174 Width = 42 Anchors = [akTop, akRight] Caption = 'Conv' TabOrder = 11 Visible = False OnClick = DLRetConvRawButtonClick end object Block: TButton AnchorSideLeft.Control = DLGHeaderButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = DLRetrieveAllButton Left = 69 Height = 34 Hint = 'Collect all readings via binary format (faster).' Top = 5 Width = 134 BorderSpacing.Left = 5 Caption = 'Retrieve All (bin-fast)' ParentShowHint = False ShowHint = True TabOrder = 12 OnClick = BlockClick end object ScrollBox1: TScrollBox AnchorSideLeft.Control = Owner AnchorSideTop.Control = SynMemo1 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 0 Height = 633 Top = 211 Width = 770 HorzScrollBar.Page = 724 VertScrollBar.Page = 631 Anchors = [akTop, akLeft, akRight, akBottom] ClientHeight = 631 ClientWidth = 755 Font.Name = 'Courier 10 Pitch' ParentFont = False TabOrder = 13 object PageControl1: TPageControl AnchorSideLeft.Control = ScrollBox1 AnchorSideTop.Control = ScrollBox1 AnchorSideRight.Control = ScrollBox1 AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = ScrollBox1 AnchorSideBottom.Side = asrBottom Left = 0 Height = 647 Top = 0 Width = 755 ActivePage = TabSheet2 Anchors = [akTop, akLeft, akRight, akBottom] ParentFont = False TabIndex = 1 TabOrder = 0 object TabSheet1: TTabSheet Caption = 'Text' ClientHeight = 614 ClientWidth = 745 inline SynMemo2: TSynMemo AnchorSideLeft.Control = TabSheet1 AnchorSideTop.Control = TabSheet1 AnchorSideRight.Control = TabSheet1 AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = TabSheet1 AnchorSideBottom.Side = asrBottom Cursor = crIBeam Left = 0 Height = 614 Top = 0 Width = 745 Anchors = [akTop, akLeft, akRight, akBottom] Font.Height = -13 Font.Name = 'Courier New' Font.Pitch = fpFixed Font.Quality = fqNonAntialiased ParentColor = False ParentFont = False TabOrder = 0 Gutter.Width = 57 Gutter.MouseActions = <> Keystrokes = < item Command = ecUp ShortCut = 38 end item Command = ecSelUp ShortCut = 8230 end item Command = ecScrollUp ShortCut = 16422 end item Command = ecDown ShortCut = 40 end item Command = ecSelDown ShortCut = 8232 end item Command = ecScrollDown ShortCut = 16424 end item Command = ecLeft ShortCut = 37 end item Command = ecSelLeft ShortCut = 8229 end item Command = ecWordLeft ShortCut = 16421 end item Command = ecSelWordLeft ShortCut = 24613 end item Command = ecRight ShortCut = 39 end item Command = ecSelRight ShortCut = 8231 end item Command = ecWordRight ShortCut = 16423 end item Command = ecSelWordRight ShortCut = 24615 end item Command = ecPageDown ShortCut = 34 end item Command = ecSelPageDown ShortCut = 8226 end item Command = ecPageBottom ShortCut = 16418 end item Command = ecSelPageBottom ShortCut = 24610 end item Command = ecPageUp ShortCut = 33 end item Command = ecSelPageUp ShortCut = 8225 end item Command = ecPageTop ShortCut = 16417 end item Command = ecSelPageTop ShortCut = 24609 end item Command = ecLineStart ShortCut = 36 end item Command = ecSelLineStart ShortCut = 8228 end item Command = ecEditorTop ShortCut = 16420 end item Command = ecSelEditorTop ShortCut = 24612 end item Command = ecLineEnd ShortCut = 35 end item Command = ecSelLineEnd ShortCut = 8227 end item Command = ecEditorBottom ShortCut = 16419 end item Command = ecSelEditorBottom ShortCut = 24611 end item Command = ecToggleMode ShortCut = 45 end item Command = ecCopy ShortCut = 16429 end item Command = ecPaste ShortCut = 8237 end item Command = ecDeleteChar ShortCut = 46 end item Command = ecCut ShortCut = 8238 end item Command = ecDeleteLastChar ShortCut = 8 end item Command = ecDeleteLastChar ShortCut = 8200 end item Command = ecDeleteLastWord ShortCut = 16392 end item Command = ecUndo ShortCut = 32776 end item Command = ecRedo ShortCut = 40968 end item Command = ecLineBreak ShortCut = 13 end item Command = ecSelectAll ShortCut = 16449 end item Command = ecCopy ShortCut = 16451 end item Command = ecBlockIndent ShortCut = 24649 end item Command = ecLineBreak ShortCut = 16461 end item Command = ecInsertLine ShortCut = 16462 end item Command = ecDeleteWord ShortCut = 16468 end item Command = ecBlockUnindent ShortCut = 24661 end item Command = ecPaste ShortCut = 16470 end item Command = ecCut ShortCut = 16472 end item Command = ecDeleteLine ShortCut = 16473 end item Command = ecDeleteEOL ShortCut = 24665 end item Command = ecUndo ShortCut = 16474 end item Command = ecRedo ShortCut = 24666 end item Command = ecGotoMarker0 ShortCut = 16432 end item Command = ecGotoMarker1 ShortCut = 16433 end item Command = ecGotoMarker2 ShortCut = 16434 end item Command = ecGotoMarker3 ShortCut = 16435 end item Command = ecGotoMarker4 ShortCut = 16436 end item Command = ecGotoMarker5 ShortCut = 16437 end item Command = ecGotoMarker6 ShortCut = 16438 end item Command = ecGotoMarker7 ShortCut = 16439 end item Command = ecGotoMarker8 ShortCut = 16440 end item Command = ecGotoMarker9 ShortCut = 16441 end item Command = ecSetMarker0 ShortCut = 24624 end item Command = ecSetMarker1 ShortCut = 24625 end item Command = ecSetMarker2 ShortCut = 24626 end item Command = ecSetMarker3 ShortCut = 24627 end item Command = ecSetMarker4 ShortCut = 24628 end item Command = ecSetMarker5 ShortCut = 24629 end item Command = ecSetMarker6 ShortCut = 24630 end item Command = ecSetMarker7 ShortCut = 24631 end item Command = ecSetMarker8 ShortCut = 24632 end item Command = ecSetMarker9 ShortCut = 24633 end item Command = EcFoldLevel1 ShortCut = 41009 end item Command = EcFoldLevel2 ShortCut = 41010 end item Command = EcFoldLevel1 ShortCut = 41011 end item Command = EcFoldLevel1 ShortCut = 41012 end item Command = EcFoldLevel1 ShortCut = 41013 end item Command = EcFoldLevel6 ShortCut = 41014 end item Command = EcFoldLevel7 ShortCut = 41015 end item Command = EcFoldLevel8 ShortCut = 41016 end item Command = EcFoldLevel9 ShortCut = 41017 end item Command = EcFoldLevel0 ShortCut = 41008 end item Command = EcFoldCurrent ShortCut = 41005 end item Command = EcUnFoldCurrent ShortCut = 41003 end item Command = EcToggleMarkupWord ShortCut = 32845 end item Command = ecNormalSelect ShortCut = 24654 end item Command = ecColumnSelect ShortCut = 24643 end item Command = ecLineSelect ShortCut = 24652 end item Command = ecTab ShortCut = 9 end item Command = ecShiftTab ShortCut = 8201 end item Command = ecMatchBracket ShortCut = 24642 end item Command = ecColSelUp ShortCut = 40998 end item Command = ecColSelDown ShortCut = 41000 end item Command = ecColSelLeft ShortCut = 40997 end item Command = ecColSelRight ShortCut = 40999 end item Command = ecColSelPageDown ShortCut = 40994 end item Command = ecColSelPageBottom ShortCut = 57378 end item Command = ecColSelPageUp ShortCut = 40993 end item Command = ecColSelPageTop ShortCut = 57377 end item Command = ecColSelLineStart ShortCut = 40996 end item Command = ecColSelLineEnd ShortCut = 40995 end item Command = ecColSelEditorTop ShortCut = 57380 end item Command = ecColSelEditorBottom ShortCut = 57379 end> MouseActions = <> MouseTextActions = <> MouseSelActions = <> VisibleSpecialChars = [vscSpace, vscTabAtLast] ReadOnly = True RightEdge = -1 SelectedColor.BackPriority = 50 SelectedColor.ForePriority = 50 SelectedColor.FramePriority = 50 SelectedColor.BoldPriority = 50 SelectedColor.ItalicPriority = 50 SelectedColor.UnderlinePriority = 50 SelectedColor.StrikeOutPriority = 50 inline SynLeftGutterPartList1: TSynGutterPartList object SynGutterMarks1: TSynGutterMarks Width = 24 MouseActions = <> end object SynGutterLineNumber1: TSynGutterLineNumber Width = 17 MouseActions = <> MarkupInfo.Background = clBtnFace MarkupInfo.Foreground = clNone DigitCount = 2 ShowOnlyLineNumbersMultiplesOf = 1 ZeroStart = False LeadingZeros = False end object SynGutterChanges1: TSynGutterChanges Width = 4 MouseActions = <> ModifiedColor = 59900 SavedColor = clGreen end object SynGutterSeparator1: TSynGutterSeparator Width = 2 MouseActions = <> MarkupInfo.Background = clWhite MarkupInfo.Foreground = clGray end object SynGutterCodeFolding1: TSynGutterCodeFolding MouseActions = <> MarkupInfo.Background = clNone MarkupInfo.Foreground = clGray MouseActionsExpanded = <> MouseActionsCollapsed = <> end end end end object TabSheet2: TTabSheet Caption = 'Vector-Plot' ClientHeight = 614 ClientWidth = 745 OnShow = TabSheet2Show object Panel1: TPanel AnchorSideLeft.Control = LeftSideLabel AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = NorthLabel AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = SouthLabel Left = 7 Height = 393 Top = 49 Width = 411 Caption = 'Loading/Calculating' ClientHeight = 393 ClientWidth = 411 TabOrder = 0 object VectorChart: TChart AnchorSideLeft.Control = Panel1 AnchorSideTop.Control = Panel1 AnchorSideRight.Control = Panel1 AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Panel1 AnchorSideBottom.Side = asrBottom Left = 1 Height = 391 Top = 1 Width = 409 AxisList = < item Grid.Visible = False Marks.Visible = False Marks.LabelBrush.Style = bsClear Minors = <> Range.Max = 1 Range.Min = -1 Range.UseMax = True Range.UseMin = True Title.LabelFont.Orientation = 900 Title.LabelBrush.Style = bsClear ZPosition = 1 end item Grid.Visible = False Alignment = calBottom Marks.Visible = False Marks.LabelBrush.Style = bsClear Minors = <> Range.Max = 1 Range.Min = -1 Range.UseMax = True Range.UseMin = True Title.LabelBrush.Style = bsClear ZPosition = 1 end> Foot.Brush.Color = clBtnFace Foot.Font.Color = clBlue Proportional = True Title.Brush.Color = clBtnFace Title.Font.Color = clBlue Title.Text.Strings = ( 'TAChart' ) OnAfterDraw = VectorChartAfterDraw Align = alClient DoubleBuffered = True OnMouseMove = VectorChartMouseMove object VectorChartColorMapSeries: TColorMapSeries Extent.XMax = 100 Extent.XMin = -100 Extent.YMax = 80 Extent.YMin = -80 Title = 'MyTitle' ColorSource = PlotColourSource Interpolate = True StepX = 1 StepY = 1 OnCalculate = VectorChartColorMapSeriesCalculate end object VectorChartLineSeries1: TLineSeries Title = 'Messpunkte' ZPosition = 2 LineType = ltNone Marks.Visible = False Marks.Format = '%2:s' Marks.Style = smsLabel Pointer.Brush.Color = clRed Pointer.HorizSize = 1 Pointer.VertSize = 1 Pointer.Visible = True ShowPoints = True end object VectorChartLineSeries2: TLineSeries ZPosition = 1 LinePen.Color = clRed end end end object Panel2: TPanel AnchorSideLeft.Control = Panel3 AnchorSideLeft.Side = asrBottom Left = 495 Height = 614 Top = 0 Width = 250 Align = alRight Anchors = [akTop, akLeft, akRight, akBottom] BevelOuter = bvNone ClientHeight = 614 ClientWidth = 250 TabOrder = 1 object ShowPlotDataButton: TButton AnchorSideLeft.Control = Panel2 AnchorSideTop.Control = Panel2 Left = 7 Height = 25 Top = 3 Width = 115 BorderSpacing.Left = 7 BorderSpacing.Top = 3 Caption = 'Show Data File' TabOrder = 0 OnClick = ShowPlotDataButtonClick end object ExportButton: TButton AnchorSideLeft.Control = ShowPlotDataButton AnchorSideTop.Control = ShowPlotDataButton AnchorSideTop.Side = asrBottom Left = 7 Height = 25 Top = 33 Width = 115 BorderSpacing.Top = 5 Caption = 'Export image' Enabled = False TabOrder = 1 OnClick = ExportButtonClick end object CursorValueGroup: TGroupBox AnchorSideLeft.Control = ShowPlotDataButton AnchorSideTop.Control = PlotSettingsGroup AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Panel2 AnchorSideRight.Side = asrBottom Left = 7 Height = 91 Top = 523 Width = 241 Anchors = [akTop, akLeft, akRight] BorderSpacing.Top = 7 BorderSpacing.Right = 2 Caption = 'Cursor value' ClientHeight = 71 ClientWidth = 239 ParentColor = False ParentFont = False TabOrder = 2 object CursorValue: TStaticText AnchorSideLeft.Control = CursorValueGroup AnchorSideTop.Control = CursorValueGroup AnchorSideRight.Control = CursorValueGroup AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = CursorValueGroup AnchorSideBottom.Side = asrBottom Left = 0 Height = 71 Top = 0 Width = 239 Anchors = [akTop, akLeft, akRight, akBottom] Caption = 'Load data file and point in plot to see cursor.' Color = clNone Font.Name = 'Courier 10 Pitch' Font.Pitch = fpFixed ParentFont = False ParentColor = False TabOrder = 0 end end object PlotSettingsGroup: TGroupBox AnchorSideLeft.Control = ShowPlotDataButton AnchorSideTop.Control = ExportButton AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Panel2 AnchorSideRight.Side = asrBottom Left = 7 Height = 451 Top = 65 Width = 241 Anchors = [akTop, akLeft, akRight] AutoSize = True BorderSpacing.Top = 7 BorderSpacing.Right = 2 Caption = 'Plot settings' ClientHeight = 431 ClientWidth = 239 TabOrder = 3 object OrientationSelect: TRadioGroup AnchorSideLeft.Control = PlotSettingsGroup AnchorSideTop.Control = RangeGroup AnchorSideTop.Side = asrBottom AnchorSideRight.Control = PlotSettingsGroup AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = PlotSettingsGroup AnchorSideBottom.Side = asrBottom Left = 4 Height = 71 Top = 289 Width = 231 Anchors = [akTop, akLeft, akRight] AutoFill = True BorderSpacing.Around = 4 Caption = 'Orientation' ChildSizing.LeftRightSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 51 ClientWidth = 229 ItemIndex = 0 Items.Strings = ( 'E-W (Looking up)' 'W-E (Looking down)' ) OnClick = OrientationSelectClick ParentColor = False TabOrder = 0 end object RangeGroup: TGroupBox AnchorSideLeft.Control = PlotSettingsGroup AnchorSideTop.Control = ColourSchemeGroup AnchorSideTop.Side = asrBottom AnchorSideRight.Control = PlotSettingsGroup AnchorSideRight.Side = asrBottom Left = 4 Height = 147 Top = 138 Width = 231 Anchors = [akTop, akLeft, akRight] AutoSize = True BorderSpacing.Around = 4 Caption = 'Range' ClientHeight = 127 ClientWidth = 229 TabOrder = 1 object RangeSchemeRadio: TRadioButton AnchorSideLeft.Control = RangeGroup AnchorSideTop.Control = RangeGroup Left = 0 Height = 23 Top = 0 Width = 107 Caption = 'from scheme' Checked = True TabOrder = 0 TabStop = True OnClick = RangeSchemeRadioClick end object RangeDatasetRadio: TRadioButton AnchorSideLeft.Control = RangeSchemeRadio AnchorSideTop.Control = RangeSchemeRadio AnchorSideTop.Side = asrBottom Left = 0 Height = 23 Top = 23 Width = 105 Caption = 'from dataset' TabOrder = 1 OnClick = RangeDatasetRadioClick end object RangeManualRadio: TRadioButton AnchorSideLeft.Control = RangeDatasetRadio AnchorSideTop.Control = RangeDatasetRadio AnchorSideTop.Side = asrBottom Left = 0 Height = 23 Top = 46 Width = 108 Caption = 'manual entry' TabOrder = 2 OnClick = RangeManualRadioClick end object ManualEntryGroup: TGroupBox AnchorSideTop.Control = RangeGroup AnchorSideRight.Control = RangeGroup AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = RangeGroup AnchorSideBottom.Side = asrBottom Left = 132 Height = 127 Top = 0 Width = 97 Anchors = [akTop, akRight, akBottom] Caption = 'Manual entry' ClientHeight = 107 ClientWidth = 95 TabOrder = 3 Visible = False object LegendMinEntry: TEdit AnchorSideLeft.Control = ManualEntryGroup AnchorSideTop.Control = ManualEntryGroup Left = 4 Height = 36 Top = 0 Width = 50 BorderSpacing.Left = 4 TabOrder = 0 OnEditingDone = LegendMinEntryEditingDone end object UpdateButton: TButton AnchorSideLeft.Control = LegendMinEntry AnchorSideTop.Control = LegendMaxEntry AnchorSideTop.Side = asrBottom AnchorSideRight.Control = ManualEntryGroup AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = ManualEntryGroup AnchorSideBottom.Side = asrBottom Left = 4 Height = 29 Top = 76 Width = 91 Anchors = [akTop, akLeft, akRight] BorderSpacing.Top = 2 BorderSpacing.Bottom = 2 Caption = 'Update' TabOrder = 2 OnClick = UpdateButtonClick end object LegendMaxEntry: TEdit AnchorSideLeft.Control = LegendMinEntry AnchorSideTop.Control = LegendMinEntry AnchorSideTop.Side = asrBottom AnchorSideRight.Side = asrBottom Left = 4 Height = 36 Top = 38 Width = 50 BorderSpacing.Top = 2 TabOrder = 1 OnEditingDone = LegendMaxEntryEditingDone end object MinValueLabel: TLabel AnchorSideLeft.Control = LegendMinEntry AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = LegendMinEntry AnchorSideTop.Side = asrCenter Left = 56 Height = 19 Top = 9 Width = 23 BorderSpacing.Around = 2 Caption = 'Min' ParentColor = False end object MaxValueLabel: TLabel AnchorSideLeft.Control = LegendMaxEntry AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = LegendMaxEntry AnchorSideTop.Side = asrCenter Left = 56 Height = 19 Top = 47 Width = 26 BorderSpacing.Around = 2 Caption = 'Max' ParentColor = False end end end object DecorationsGroup: TGroupBox AnchorSideLeft.Control = PlotSettingsGroup AnchorSideTop.Control = PlotSettingsGroup AnchorSideRight.Control = PlotSettingsGroup AnchorSideRight.Side = asrBottom Left = 4 Height = 66 Top = 4 Width = 231 Anchors = [akTop, akLeft, akRight] AutoSize = True BorderSpacing.Around = 4 Caption = 'Decorations' ClientHeight = 46 ClientWidth = 229 TabOrder = 2 object ShowDotsCheckBox: TCheckBox AnchorSideLeft.Control = DecorationsGroup AnchorSideTop.Control = DecorationsGroup Left = 4 Height = 23 Top = 0 Width = 89 BorderSpacing.Left = 4 Caption = 'Show dots' Checked = True State = cbChecked TabOrder = 0 OnChange = ShowDotsCheckBoxChange end object ShowLinesCheckBox: TCheckBox AnchorSideLeft.Control = ShowDotsCheckBox AnchorSideTop.Control = ShowDotsCheckBox AnchorSideTop.Side = asrBottom Left = 4 Height = 23 Top = 23 Width = 90 Caption = 'Show lines' TabOrder = 1 OnChange = ShowLinesCheckBoxChange end object MarkPointsCheckBox: TCheckBox AnchorSideLeft.Control = ShowDotsCheckBox AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = ShowDotsCheckBox Left = 105 Height = 23 Top = 0 Width = 99 BorderSpacing.Left = 12 Caption = 'Mark points' TabOrder = 2 Visible = False OnChange = MarkPointsCheckBoxChange end object ShowGridCheckBox: TCheckBox AnchorSideLeft.Control = MarkPointsCheckBox Left = 105 Height = 23 Top = 24 Width = 87 Anchors = [akLeft] Caption = 'Show grid' Checked = True State = cbChecked TabOrder = 3 OnChange = ShowGridCheckBoxChange end end object DataSetSelect: TRadioGroup AnchorSideLeft.Control = PlotSettingsGroup AnchorSideTop.Control = OrientationSelect AnchorSideTop.Side = asrBottom AnchorSideRight.Control = PlotSettingsGroup AnchorSideRight.Side = asrBottom Left = 4 Height = 67 Top = 364 Width = 231 Anchors = [akTop, akLeft, akRight] AutoFill = True BorderSpacing.Left = 4 BorderSpacing.Right = 4 Caption = 'Dataset' ChildSizing.LeftRightSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 47 ClientWidth = 229 ItemIndex = 0 Items.Strings = ( 'MPSA (averaged)' 'MPSA raw (unaveraged)' ) OnClick = DataSetSelectClick TabOrder = 3 end object ColourSchemeGroup: TGroupBox AnchorSideLeft.Control = PlotSettingsGroup AnchorSideTop.Control = DecorationsGroup AnchorSideTop.Side = asrBottom AnchorSideRight.Control = PlotSettingsGroup AnchorSideRight.Side = asrBottom Left = 4 Height = 60 Top = 74 Width = 231 Anchors = [akTop, akLeft, akRight] AutoSize = True BorderSpacing.Left = 4 BorderSpacing.Right = 4 BorderSpacing.Bottom = 4 Caption = 'Colour scheme' ClientHeight = 40 ClientWidth = 229 TabOrder = 4 object ColourSchemeComboBox: TComboBox AnchorSideLeft.Control = ColourSchemeGroup AnchorSideTop.Control = ColourSchemeGroup AnchorSideRight.Control = ColourSchemeGroup AnchorSideRight.Side = asrBottom AnchorSideBottom.Side = asrBottom Left = 4 Height = 36 Top = 0 Width = 221 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 4 BorderSpacing.Right = 4 BorderSpacing.Bottom = 4 ItemHeight = 0 TabOrder = 0 Text = 'ColourSchemeComboBox' OnChange = ColourSchemeComboBoxChange end end end object CalculatingProgressBar: TProgressBar AnchorSideLeft.Control = ShowPlotDataButton AnchorSideLeft.Side = asrBottom AnchorSideRight.Side = asrBottom Left = 125 Height = 12 Top = 3 Width = 91 BorderSpacing.Left = 3 BorderSpacing.Right = 3 Style = pbstMarquee TabOrder = 4 Visible = False end object CalculatingText: TStaticText AnchorSideLeft.Control = CalculatingProgressBar AnchorSideTop.Control = CalculatingProgressBar AnchorSideTop.Side = asrBottom AnchorSideRight.Control = CalculatingProgressBar AnchorSideRight.Side = asrBottom Left = 125 Height = 20 Top = 16 Width = 91 Alignment = taCenter Anchors = [akTop, akLeft, akRight] BorderSpacing.Top = 1 Caption = 'Calculating' Font.Color = clRed Font.Style = [fsBold] ParentFont = False TabOrder = 5 Visible = False end end object NorthLabel: TLabel AnchorSideLeft.Control = Panel1 AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = PlotFileTitle AnchorSideTop.Side = asrBottom Left = 207 Height = 18 Top = 31 Width = 11 BorderSpacing.Top = 6 Caption = 'N' Font.Height = -13 Font.Name = 'Sans' Font.Style = [fsBold] ParentColor = False ParentFont = False end object SouthLabel: TLabel AnchorSideLeft.Control = Panel1 AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = Panel1 AnchorSideTop.Side = asrBottom AnchorSideBottom.Side = asrBottom Left = 209 Height = 18 Top = 442 Width = 7 BorderSpacing.Bottom = 4 Caption = 'S' Font.Height = -13 Font.Name = 'Sans' Font.Style = [fsBold] ParentColor = False ParentFont = False end object RightSideLabel: TLabel AnchorSideLeft.Control = Panel1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Panel1 AnchorSideTop.Side = asrCenter AnchorSideRight.Side = asrBottom Left = 418 Height = 18 Top = 236 Width = 13 BorderSpacing.Right = 4 Caption = 'W' Font.Height = -13 Font.Name = 'Sans' Font.Style = [fsBold] ParentColor = False ParentFont = False end object LeftSideLabel: TLabel AnchorSideLeft.Control = TabSheet2 AnchorSideTop.Control = Panel1 AnchorSideTop.Side = asrCenter Left = 0 Height = 18 Top = 236 Width = 7 Caption = 'E' Font.Height = -13 Font.Name = 'Sans' Font.Style = [fsBold] ParentColor = False ParentFont = False end object Panel3: TPanel AnchorSideLeft.Control = RightSideLabel AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Panel1 AnchorSideBottom.Control = Panel1 AnchorSideBottom.Side = asrBottom Left = 435 Height = 393 Top = 49 Width = 60 Anchors = [akTop, akLeft, akBottom] ClientHeight = 393 ClientWidth = 60 ParentFont = False TabOrder = 2 object LegendChart: TChart AnchorSideLeft.Control = Panel3 AnchorSideTop.Control = Panel3 AnchorSideRight.Control = Panel3 AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Panel3 AnchorSideBottom.Side = asrBottom Left = 1 Height = 391 Top = 1 Width = 58 AxisList = < item Intervals.MaxLength = 40 Arrow.Inverted = True Inverted = True Marks.Format = '%0:.2f' Marks.LabelBrush.Style = bsClear Marks.Style = smsCustom Minors = <> Range.Max = 22 Range.Min = 10 Range.UseMax = True Range.UseMin = True Title.LabelFont.Orientation = 900 Title.LabelBrush.Style = bsClear end item Visible = False Alignment = calBottom Marks.LabelBrush.Style = bsClear Minors = <> Title.LabelBrush.Style = bsClear end> Foot.Brush.Color = clBtnFace Foot.Font.Color = clBlue Title.Brush.Color = clBtnFace Title.Font.Color = clBlue Title.Text.Strings = ( 'TAChart' ) Anchors = [akTop, akLeft, akRight, akBottom] object LegendChartColorMapSeries: TColorMapSeries ColorSource = LegendColourSource Interpolate = True StepX = 1 StepY = 1 OnCalculate = LegendChartColorMapSeriesCalculate end object LegendChartLineSeries: TLineSeries end end end object PlotFileTitle: TStaticText AnchorSideLeft.Control = Panel1 AnchorSideTop.Control = TabSheet2 AnchorSideRight.Control = Panel1 AnchorSideRight.Side = asrBottom Left = 7 Height = 21 Top = 4 Width = 411 Alignment = taCenter Anchors = [akTop, akLeft, akRight] BorderSpacing.Top = 4 BorderStyle = sbsSunken Color = clDefault ParentColor = False TabOrder = 3 end end end end object FileDirectoryLabel: TLabel Left = 69 Height = 19 Top = 40 Width = 84 Caption = 'File directory:' ParentColor = False end object LogsDirStatusLabel: TLabel AnchorSideTop.Side = asrBottom AnchorSideRight.Side = asrBottom Left = 216 Height = 15 Top = 74 Width = 585 Anchors = [] AutoSize = False BorderSpacing.Top = 2 Caption = 'Status of logs directory.' ParentColor = False end object PlotterButton: TButton AnchorSideLeft.Control = DLGHeaderButton Left = 5 Height = 34 Top = 64 Width = 75 Caption = 'Plotter' TabOrder = 14 OnClick = PlotterButtonClick end object LogsDirectoryEdit: TEdit AnchorSideLeft.Control = LogsDirectoryButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = FileDirectoryLabel AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 210 Height = 36 Hint = ' Location of logging files.' Top = 40 Width = 555 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 2 BorderSpacing.Right = 5 ParentShowHint = False ShowHint = True TabOrder = 15 OnChange = LogsDirectoryEditChange end object LogsDirectoryButton: TBitBtn AnchorSideLeft.Control = ResetToLogsDirectoryButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = FileDirectoryLabel Left = 183 Height = 25 Hint = 'Select location of logging files.' Top = 40 Width = 25 BorderSpacing.Left = 2 Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000534D46A0A465 34FFA46534FFA46534FFA46534FFA46534FFA46534FFA46534FFA46534FFA465 34FFA46534FFA46534FFA46534FFA46534FFA46635E9A6673639484848E09786 78FFA5693AFFBA8350FFBA8350FFBA8350FFBA8350FFBA8350FFBA8350FFBA83 50FFBA8350FFBA8350FFBA8350FFBA8350FFB27845FFA56636C0494949E09999 99FFA56839FFD3A67EFFD2A378FFD2A378FFD2A378FFD2A378FFD2A378FFD2A3 78FFD2A378FFD2A378FFD2A378FFD3A479FFD1A57AFFA56635F5484848E29B9B 9BFFA46738FFD5AB85FFCE9C6EFFCE9C6DFFCE9C6DFFCE9C6DFFCE9C6DFFCE9C 6DFFCE9C6DFFCE9C6DFFCE9C6DFFCF9E70FFD5AB84FFA56635F84C4C4CE4A1A1 A1FFA56838FFE2C4A9FFD5A881FFD3A47AFFD3A47AFFD3A47AFFD3A47AFFD3A4 7AFFD3A47AFFD3A47AFFD3A47AFFD4A77EFFDDBA9CFFA56635F9515151E5A4A5 A5FFA56737FFE9D2BEFFDDBA9BFFDDB999FFDCB695FFDBB592FFDAB390FFD9B2 8EFFD8AE89FFD7AD87FFD7AD87FFD8B08BFFE5C9B1FFA56635FA565656E7A9A9 A9FFA46636FFECD8C6FFDDBA99FFDDBA99FFDDBA99FFDDBA99FFDDBA99FFDDBA 99FFDDBA99FFDCB795FFDAB28EFFD9B08BFFE7CFB8FFA56635FB5B5B5BE9AEAE AEFFA56736FFEBD7C4FFDCB794FFDCB794FFDCB794FFDCB794FFDCB794FFDCB7 94FFDCB794FFDCB794FFDCB794FFDAB491FFE6CDB6FFA56635FC5F5F5FE9B3B3 B3FFA46635FFEAD5C1FFDBB491FFDBB491FFDBB591FFDBB591FFDBB592FFDBB5 92FFDBB592FFDBB592FFDBB592FFDCB896FFE7CFB7FFA46634FD656565EBB7B7 B7FFA56635FFEAD3BEFFEAD4BFFFEAD4BFFFEAD4BEFFEAD4BEFFEAD4BEFFE9D3 BEFFE9D3BEFFE9D3BEFFE9D3BEFFE9D3BEFFE8CFB8FFA56534FE6A6A6AECBDBD BDFFA66D41FFA56636FFA56636FFA56636FFA56636FFA56636FFA46635FFA466 35FFA46635FFA46635FFA46534FFA46534FFA46534FFA66837E06E6E6EEEC0C1 C1FFACACACFFAAAAAAFFA7A7A7FFA5A5A5FFA4A4A4FFA4A4A4FFACACACFFB6B6 B6FFB9B9B9FFBBBBBBFFA2A2A2FF6A6A6AA94747470047474700737373EFC5C5 C5FFB0B0B0FFADADADFFABABABFFAAAAAAFFACACACFF8D8D8DF58D8D8DF28C8C 8CF28C8C8CF28C8C8CF2808080F66C6C6C844747470047474700787878F0C9C9 C9FFC7C7C7FFC5C5C5FFC4C4C4FFC4C4C4FFB4B4B4FF747474CA727272387272 7238727272386D6D6D386F6F6F355555550347474700474747007A7A7A9F7979 79EC797979EC797979EC797979EC797979EC797979E278787835474747004747 4700474747004747470047474700474747004747470047474700474747004747 4700474747004747470047474700474747004747470047474700474747004747 4700474747004747470047474700474747004747470047474700 } OnClick = LogsDirectoryButtonClick ParentShowHint = False ShowHint = True TabOrder = 16 end object ResetToLogsDirectoryButton: TBitBtn AnchorSideLeft.Control = FileDirectoryLabel AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = FileDirectoryLabel Left = 155 Height = 25 Hint = 'Reset location of logging files to default.' Top = 40 Width = 26 BorderSpacing.Left = 2 Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000FFFFFF00FFFF FF00FFFFFF00FFFFFF004E35001D4E3500854E3500C04F3801EE4F3801ED4E35 00BA4E35007F4E35001FFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF004E3500064E35007A594405F48F6A07FEC69E12FFE2AE10FFD0A616FFAA94 1AFF82680CFD604808F44E35006D4E350001FFFFFF00FFFFFF00FFFFFF004E35 00014E3500B273610FEEAA981EFCC49D14FFD1A10FFFD4A30EFFC89F12FFB398 19FFA78E17FF9C8414FF705F0EF84E3500B84E350001FFFFFF00FFFFFF004E35 00405E4606DC9F8415AEA78E17D9AF981BFFB99C17FFB99D17FFB2971AFFA892 18FFA28512FF99760BFF926C06FF66510AFA4E350074FFFFFF00FFFFFF00664C 04208D6C096799760B869F7F11AFA58B15DCA39119FA8B7915FE8C7714FE9F87 17FF9B780DFF936D07FF8F6501FF775805FF553F05F74E35002900600000644B 061A8D640132936D054C98720A6C705A0CBD543E04F44F3601AA4E3700A95C45 06F4877007FE906602FF825900FF6C4A00FF4D3C07FE4E35007AFFFFFF005D48 07056C50040D7E5900197C59042C4F3801B94E350022FFFFFF00FFFFFF004E35 0027584304F7785604FF6E4B00FF5A3D00FF463604FF543C02C4FFFFFF004E35 000D4F3801124E3902154D3703184E3500174E350008FFFFFF00FFFFFF00FFFF FF00513901B9564004FF5B3F03FF543C08FF503908FF5B4405FA574003B6664C 06FF725308FF896715FF977115FFA07610FF64500AFF56410845FFFFFF00FFFF FF00503902B04A3704FF614915FF755E2BFF6F5827FF5F4907F5604A06FE9070 2CFFA7853BFFB38C37FFAE801CFF906404FF534007F64E350031FFFFFF004E35 0024574507F54C3602FF765E2CFF846C3AFF725F2CFF594205C5624906FFA186 4DFFA6894CFFA88844FF7E5806FF634703FE513F07F8503902B1503902B45745 07F8534005FE69511FFF947D4CFF947D4CFF74612CFE4E370084614605FFA992 61FFAA925EFFAB925DFF9E844CFF6A4F16FF4F3903FF524010FF4B3907FF4E38 02FF705928FFA08A5AFFA48E5EFF9C8758FF664F10F74E3500275F4403FFB59F 71FFB29D70FFB49E70FFB39D6DFFB39D6DFFA38F65FF877141FF887140FFA18B 5BFFB39D6FFFB39D6DFFB49E70FF7D692DFA50380074FFFFFF00604402FFB6A2 72FF73560FFB8F773FFABDA87BFFC3AE7FFFC3AE7FFFC3AE7FFFC3AE7FFFC3AE 7FFFC3AE7FFFBDA97DFF8D7439FA553C01C14E350002FFFFFF00594107EA684B 0EF24E3500455037007A6E5112F7A89264FFC1AF87FFD0BE96FFCEBB92FFBAA6 7AFFA58F5FFF715313F74E3500734E350002FFFFFF00FFFFFF004E3500204E35 001CFFFFFF00FFFFFF004E35002450370085684E16C9836B37F3765C24F15B3F 03C05037007E4E350023FFFFFF00FFFFFF00FFFFFF00FFFFFF00 } OnClick = ResetToLogsDirectoryButtonClick ParentShowHint = False ShowHint = True TabOrder = 17 end object OpenDialog1: TOpenDialog Left = 35 Top = 112 end object OpenDialog2: TOpenDialog Left = 320 Top = 112 end object ChartToolset1: TChartToolset Left = 233 Top = 112 object ChartToolset1ZoomDragTool1: TZoomDragTool Shift = [ssLeft] Brush.Style = bsClear end object ChartToolset1PanDragTool1: TPanDragTool Shift = [ssRight] end end object PlotColourSource: TListChartSource DataPoints.Strings = ( '-1|0|$0000FF|' '-0.5|0|$C00000|' '0|0|$808000|' '0.5|0|$00C000|' '1|0|$00FF00|' ) Sorted = True Left = 134 Top = 112 end object LegendColourSource: TListChartSource DataPoints.Strings = ( '0|0|$000000|' '10|0|$F0FF00|' '20|0|$0000FF|' ) Sorted = True Left = 424 Top = 112 end object HourGlassTimer: TIdleTimer Interval = 100 OnTimer = HourGlassTimerTimer Left = 552 Top = 112 end end ./filtersunmoonunit.pas0000644000175000017500000007772314576573021015500 0ustar anthonyanthonyunit FilterSunMoonUnit; {$mode ObjFPC}{$H+} interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons, ExtCtrls, ComCtrls; type { TFilterSunMoonForm } TFilterSunMoonForm = class(TForm) Button1: TButton; CloudAlgorithmCutoffEdit: TLabeledEdit; CorrectionForAgingSQMEdit: TLabeledEdit; CorrectionForWeatherproofCoverEdit: TLabeledEdit; GalacticLatitudeElevationAngleEdit: TLabeledEdit; MaxMPSASAllowedEdit: TLabeledEdit; MoonElevationAngleCutoffEdit: TLabeledEdit; ParametersGroupBox: TGroupBox; ProgressGroupBox: TGroupBox; HelpGroupBox: TGroupBox; Memo1: TMemo; ProgressBar1: TProgressBar; ProgressMemo: TMemo; SolarElevationAngleCutoffEdit: TLabeledEdit; SourceFileDialog: TOpenDialog; SourceFileButton: TBitBtn; SourceFileEdit: TEdit; SparseCutoffEdit: TLabeledEdit; StatusBar1: TStatusBar; procedure Button1Click(Sender: TObject); procedure CloudAlgorithmCutoffEditChange(Sender: TObject); procedure CorrectionForAgingSQMEditChange(Sender: TObject); procedure CorrectionForWeatherproofCoverEditChange(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure GalacticLatitudeElevationAngleEditChange(Sender: TObject); procedure MaxMPSASAllowedEditChange(Sender: TObject); procedure MoonElevationAngleCutoffEditChange(Sender: TObject); procedure SolarElevationAngleCutoffEditChange(Sender: TObject); procedure SourceFileButtonClick(Sender: TObject); procedure SparseCutoffEditChange(Sender: TObject); procedure ProgressMessage(MessageText: String); procedure ProgressParameterMessage(MessageText: String); private public end; var FilterSunMoonForm: TFilterSunMoonForm; implementation { TFilterSunMoonForm } uses appsettings, header_utils, Unit1; Const Section='FilterSunMoonTool'; var solar_elev_cutoff, lunar_elev_cutoff, cloud_cutoff, milky_way_cutoff, mags_max_allowed : double; cover_correction : double; aging_per_year : double; cutoff_limit : integer; ReadingSettings : Boolean = False; //Flag that suppresses saving changed entry while reading settings. SourceFileName: String; fdata, fdataout1, fdataout2, fdataout3 : TextFile; SQM_Location : String; right_ascension,SQM_Lat,SQM_Long,J2000_days,J2000_days_first: Double; //Galactic_Elevation, Galactic_Lat,Galactic_Long: Double; RSE : Double; dMsas, dVolts,dCelsius: double; dMoonPhase,dMoonElev,dMoonIllum,dSunElev: double; //msas_Sum,msas_Count msas_Avg : double; dStatus : integer; Udate, Utime, Ldate, Ltime : TDateTime; procedure TFilterSunMoonForm.ProgressMessage(MessageText: String); begin ProgressMemo.Append(MessageText); Application.ProcessMessages; end; procedure TFilterSunMoonForm.ProgressParameterMessage(MessageText: String); begin WriteLn(fdataout3,MessageText); ProgressMemo.Append(MessageText); Application.ProcessMessages; end; procedure TFilterSunMoonForm.Button1Click(Sender: TObject); var //i,j,k m, minutes_since_3pm : integer; //dUyear,dUmonth,dUday,dUhour,dUminute,dUseconds, //dyear,dmonth,dday,dhour,dminute,dseconds //dMsas_Corr, NameIn,NameOut1,NameOut2,NameOut3 : String; Str : String; //nfile,slength, days: integer; //,ret2,Start,Last //ret: integer; //len2,len3 : integer; //FoundOne : integer; q,r,s : integer; //kk,jj : integer; grid : array[0..460, 0..288] of integer; xLoc,yLoc: integer; //yAbove1,yBelow1, //yAbove2,yBelow2 : integer; xx,yy : array[0..12] of integer; x,y,sumZero : integer; //sd1,sd2, mean1,mean2,dMsasSum1,dMsasMax1,dMsasMin1 : double; dMsasSum2,dMsasMax2,dMsasMin2 : double; // Termination : &goto; pieces: TStringList; teststring: string; begin pieces := TStringList.Create; pieces.Delimiter := ','; pieces.StrictDelimiter := True; //Do not parse spaces. ProgressMemo.Clear; {$I+} // Use exceptions to catch errors (this is the default so not absolutely requried) { Run this program by specifying the program name, followed by seven parameters: * 1) Name of a file of SQM data which has been output from 'addSQMattributes' or from UDMs option for sun-moon-clouds } StatusMessage('Running FilterSunMoon tool.'); //Check validity of inputs { writeln(format(' The input csv filename on reading is: -%s- which has %d characters. ',[ParamStr(1), len2-1]));} NameIn:= SourceFileEdit.Text; If ((Length(NameIn) = 0)) then begin StatusMessage(' Input file not defined'); Exit; end; ProgressMessage(format(' The input csv filename is: %s',[NameIn])); ProgressMessage(format(' The solar elevation angle cutoff is: %.6f',[solar_elev_cutoff])); ProgressMessage(format(' The lunar elevation angle cutoff is: %.6f',[lunar_elev_cutoff])); ProgressMessage(format(' The cloud parameter cutoff is: %.6f',[cloud_cutoff])); ProgressMessage(format(' The Galactic latitude angle cutoff is: %.6f',[milky_way_cutoff])); ProgressMessage('Note that we filter out measurements taken within that angle of the zenith, both positive and negative angle.'); { insure that the milky_way_cutoff value is positive, to accommodate our algorithm later } milky_way_cutoff := abs(milky_way_cutoff); ProgressMessage(format(' The SQM cover correction value that we subtract is: %.6f',[cover_correction])); ProgressMessage(format(' The SQM aging adjustment parameter is: %.6f',[aging_per_year])); ProgressMessage(format(' The maximum Mags per arc second squared value allowed is: %.6f',[mags_max_allowed])); ProgressMessage(format(' The sparse cutoff value is: %d',[cutoff_limit])); { Open the input file } ProgressMessage(' About to open the Input csv Data File'); AssignFile(fdata, NameIn); // Set the name of the file that will be read try reset(fdata); except ProgressMessage(Format('Failed to open the csv Data File: %s',[NameIn])); Exit; end; ProgressMemo.Append(Format('Opened the Input csv Data File: %s',[NameIn])); { Open an output file to hold the output data file 1, tack on '_Dense.csv' } NameOut1 := NameIn + '_Dense.csv'; ProgressMessage(format('The First Output Data Filename is %s ',[NameOut1])); AssignFile(fdataout1, NameOut1); // Set the name of the file that will be created try Rewrite(fdataout1); except ProgressMessage(Format('Failed to open the first output data file: %s',[NameOut1])); Exit; end; ProgressMessage(Format('Opened the First Output Data File ',[NameOut1])); { Open an output file to hold the output data file 2, tack on '_Sparse.csv' } NameOut2 := NameIn + '_Sparse.csv'; ProgressMessage(format('The Second Output Data Filename is %s ',[NameOut2])); AssignFile(fdataout2, NameOut2); // Set the name of the file that will be created try Rewrite(fdataout2); except ProgressMessage(Format('Failed to open the second output data file: %s',[NameOut2])); Exit; end; ProgressMessage(Format('Opened the First Output Data File ',[NameOut2])); { Open an output file to hold the parameters and other text information } { tack on '_parameters.txt' } NameOut3 := NameIn + '_parameters.txt'; ProgressMessage(format('The third Output Data Filename is %s ',[NameOut3])); AssignFile(fdataout3, NameOut3); // Set the name of the file that will be created try Rewrite(fdataout3); except ProgressMessage(Format('Failed to open the second output data file: %s',[NameOut2])); Exit; end; ProgressMessage(Format('Opened the Text Parameter Output File.',[NameOut3])); WriteLn(fdataout3,' '); WriteLn(fdataout3,Format(' The input csv filename is: %s',[NameIn])); WriteLn(fdataout3,Format(' The solar elevation angle cutoff is: %.6f',[solar_elev_cutoff])); WriteLn(fdataout3,Format(' The lunar elevation angle cutoff is: %.6f',[lunar_elev_cutoff])); WriteLn(fdataout3,Format(' The cloud parameter cutoff is: %.6f',[cloud_cutoff])); WriteLn(fdataout3,Format(' The Galactic latitude angle cutoff is: %.6f',[milky_way_cutoff])); WriteLn(fdataout3,' Note that we filter out measurements taken within that angle of the zenith, both positive and negative angle.'); WriteLn(fdataout3,Format(' The SQM cover correction value that we subtract is: %.6f',[cover_correction])); WriteLn(fdataout3,Format(' The SQM aging adjustment parameter is: %.6f',[aging_per_year])); WriteLn(fdataout3,Format(' The maximum Mags per arc second squared value allowed is: %.6f',[mags_max_allowed])); WriteLn(fdataout3,Format(' The sparse cutoff value is: %d',[cutoff_limit])); WriteLn(fdataout3,' '); WriteLn(fdataout3,' '); { initialize the grid array } for yLoc := 0 to 459 do begin for xLoc := 0 to 287 do begin grid[yLoc][xLoc] := 0; end; end; { initialize the sum for mean calculation later} dMsasSum1 := 0; dMsasSum2 := 0; { Write a header record to each of the output files } WriteLn(fdataout1,'Location,Lat,Long,UTC_Date,UTC_Time,Local_Date,Local_Time,Celsius,Volts,Msas,Status,MoonPhase,MoonElev,MoonIllum,SunElev,MinSince3pmStdTime,Msas_Avg,NightsSince_1118,RightAscensionHr,Galactic_Lat,Galactic_Long,J2000days,ResidStdErr'); WriteLn(fdataout2,'Location,Lat,Long,UTC_Date,UTC_Time,Local_Date,Local_Time,Celsius,Volts,Msas,Status,MoonPhase,MoonElev,MoonIllum,SunElev,MinSince3pmStdTime,Msas_Avg,NightsSince_1118,RightAscensionHr,Galactic_Lat,Galactic_Long,J2000days,ResidStdErr'); { Read the data file } { Read the first header record and throw it away } { Note that the string read format statement, reads up to the first carriage return in the input file, then reads the carriage return itself } //Read first line Readln(fdata, Str); { m counts the total number of SQM records that we read } m := 0; { q counts the number of valid SQM records that we end up with, after filtering for sun, moon, clouds, milky way, max allowed } q := 0; { initialize the min and max dMsas values } dMsasMax1 := -10.; dMsasMin1 := 25.; { Note that the string read format statement listed first, reads up to the first comma in the input file } { read date and times as strings and then pull out the desired year, month, day, hour, minute, second values } while not eof(fdata) do begin Readln(fdata, Str); pieces.DelimitedText := Str; SQM_Location:=pieces[0]; SQM_Lat:=StrToFloat(pieces[1]); SQM_Long:=StrToFloat(pieces[2]); teststring:=pieces[3]; Udate:=StrToDate(pieces[3],'yyyy-mm-dd','-'); Utime:=StrToTime(pieces[4]); Ldate:=StrToDate(pieces[5],'yyyy-mm-dd','-'); Ltime:=StrToTime(pieces[6]); dCelsius:=StrToFloat(pieces[7]); dVolts:=StrToFloat(pieces[8]); dMsas:=StrToFloat(pieces[9]); dStatus:=StrToInt(pieces[10]); dMoonPhase:=StrToFloat(pieces[11]); dMoonElev:=StrToFloat(pieces[12]); dMoonIllum:=StrToFloat(pieces[13]); dSunElev:=StrToFloat(pieces[14]); minutes_since_3pm:=StrToInt(pieces[15]); msas_Avg:=StrToFloat(pieces[16]); days:=StrToInt(pieces[17]); right_ascension:=StrToFloat(pieces[18]); Galactic_Lat:=StrToFloat(pieces[19]); Galactic_Long:=StrToFloat(pieces[20]); J2000_days:=StrToFloat(pieces[21]); RSE:=StrToFloat(pieces[22]); { increment the counter } m := m +1; { get the first day of the data set. We use this later to calculate the aging of the SQM } if m = 1 then begin J2000_days_first := J2000_days; end; { apply the correction for the SQM weatherproof cover } dMsas := dMsas - cover_correction; { apply the aging correction for the SQM } dMsas := dMsas - ((J2000_days - J2000_days_first) * aging_per_year/365.0); { Apply filters } { The milky way filter is different than the other filters. Earlier, we took the absolute value of the MW filter value to eliminate a problem if the * user had entered a negative MW cutoff value. Here we include * a) any data points which are greater than or equal to the positive MW filter value and Also, * b) we include any data points which are less than or equal to the negative MW filter value. * This therefore eliminates any data points which are within the MW filter value of the zenith } { make sure we don't go to zero or negative } if dMsas < 0.1 then { if here we are throwing out this point,which is very close to zero } continue else if dSunElev >= solar_elev_cutoff then continue else if dMoonElev >= lunar_elev_cutoff then continue else if RSE >= cloud_cutoff then continue else if dMsas >= mags_max_allowed then continue else { note that we use > and < in the next statement, which enforces our keeping of any data >= and <= the specified MW cutoff } if ((Galactic_Lat < milky_way_cutoff) and (Galactic_Lat > (milky_way_cutoff * -1.0))) then continue; begin { if here, we have a valid record, so increment our count and go read another } q := q +1; { sum the dMsas values to allow calculation of the mean later } dMsasSum1 := dMsasSum1 + dMsas; { track the min and max values } if dMsas > dMsasMax1 then dMsasMax1:= dMsas; if dMsas < dMsasMin1 then dMsasMin1:= dMsas; { we add this valid value to the 2D 'grid' array } { figure out where to stash this value } { we use 288 bins in the x-dimension which has a range of 1440 minutes (24 hours). * So each bin is 5 minutes wide, beginning at 0 minutes. Use the nearest integer to find the correct bin, * and subtract one for c-language arrays (which begin at zero). } xLoc := trunc((double(minutes_since_3pm)*288.0/2880.0) + 0.5) - 1; if xLoc < 0 then xLoc:= 0; if xLoc > 287 then xLoc:= 287; { we use 460 bins in the y-dimension. use the nearest integer to find the correct bin, * we consider valid values from msas of 0.0 to 23.0, which is a range of 23.0 * and subtract one for c-language arrays (which begin at zero). } yLoc := trunc(((dMsas - 0.0)*460.0/23.0) + 0.5) - 1; if yLoc < 0 then yLoc:= 0; if yLoc > 459 then yLoc:= 459; { store this value in the grid array } grid[yLoc][xLoc] := grid[yLoc][xLoc] + 1; end; end; { we reached the end of the input file, we know how many valid records are present } ProgressMessage(format(' End of first read loop. We read in -%d- records.',[m])); ProgressMessage(format(' Of those, -%d- records pass the sun, moon, clouds, milky way and max value allowed filtering criteria.',[q])); ProgressMessage('Proceeding to apply the sparseness filter...'); ProgressMessage(''); WriteLn(fdataout3,Format(' End of first read loop. We read in -%d- records.',[m])); WriteLn(fdataout3,Format(' Of those, -%d- records pass the sun, moon, clouds, milky way and max value allowed filtering criteria.',[q])); WriteLn(fdataout3,' Proceeding to apply the sparseness filter...'); WriteLn(fdataout3,''); { calculate the mean of those records which pass the filter so far } mean1 := dMsasSum1/double(q); { set up integer r which counts the number of records that we write to the first output file } r := 0; { set up integer s which counts the number of records that we write to the second (sparse) output file } s := 0; { initialize the min and max dMsas values for the dense group } dMsasMax2 := -10.; dMsasMin2 := 25.; { first rewind the input data file } { we are at the end of the input .csv file. Position it at the beginning again} FileSeek(GetFileHandle(fdata),fsFromBeginning,0); { Read the first header record and throw it away } { Note that the string read format statement, reads up to the first carriage return in the input file, then reads the carriage return itself } Readln(fdata, Str); { this is the begining of the second reading loop } { r counts the number of records that we write out } { Read a record } { Note that the string read format statement listed first, reads up to the first comma in the input file } { read date and times as strings and then pull out the desired year, month, day, hour, minute, second values } while not eof(fdata) do begin Readln(fdata, Str); pieces.DelimitedText := Str; SQM_Location:=pieces[0]; SQM_Lat:=StrToFloat(pieces[1]); SQM_Long:=StrToFloat(pieces[2]); Udate:=StrToDate(pieces[3],'yyyy-mm-dd','-'); Utime:=StrToTime(pieces[4]); Ldate:=StrToDate(pieces[5],'yyyy-mm-dd','-'); Ltime:=StrToTime(pieces[6]); dCelsius:=StrToFloat(pieces[7]); dVolts:=StrToFloat(pieces[8]); dMsas:=StrToFloat(pieces[9]); dStatus:=StrToInt(pieces[10]); dMoonPhase:=StrToFloat(pieces[11]); dMoonElev:=StrToFloat(pieces[12]); dMoonIllum:=StrToFloat(pieces[13]); dSunElev:=StrToFloat(pieces[14]); minutes_since_3pm:=StrToInt(pieces[15]); msas_Avg:=StrToFloat(pieces[16]); days:=StrToInt(pieces[17]); right_ascension:=StrToFloat(pieces[18]); Galactic_Lat:=StrToFloat(pieces[19]); Galactic_Long:=StrToFloat(pieces[20]); J2000_days:=StrToFloat(pieces[21]); RSE:=StrToFloat(pieces[22]); { apply the correction for the SQM weatherproof cover } dMsas := dMsas - cover_correction; { apply the aging correction for the SQM } dMsas := dMsas - ((J2000_days - J2000_days_first) * aging_per_year/365.0); { Apply filters } { The milky way filter is different for northern and southern hemispheres } { If we have a positive cutoff value for the milky way, we assume that we are in the northern hemisphere, and we throw out any values less than or equal to that positive value } { If we have a negative cutoff value for the milky way, we assume that we are in the southern hemisphere, and we throw out any values greater than or equal to that negative value } { make sure we don't go to zero or negative } if dMsas < 0.1 then continue else{ if here we are throwing out this point,which is very close to zero } if dSunElev >= solar_elev_cutoff then continue else if dMoonElev >= lunar_elev_cutoff then continue else if RSE >= cloud_cutoff then continue else //no if dMsas >= mags_max_allowed then continue; { note that we use > and < in the next statement, which enforces our keeping of any data >= and <= the specified MW cutoff } if ((Galactic_Lat < milky_way_cutoff) and (Galactic_Lat > (milky_way_cutoff * -1.0))) then continue; begin { Now we do the desired work of this program - namely we check to see if this data point * is in a sparse location in the scatterplot } { Figure out which cell of the grid array to evaluate } { we use 288 bins in the x-dimension which has a range of 2880 minutes (24 hours). use the nearest integer to find the correct bin, * and subtract one for c-language arrays (which begin at zero). } xLoc := trunc((double(minutes_since_3pm)*288./2880.0) + 0.5) - 1; if xLoc < 0 then xLoc:= 0; if xLoc > 287 then xLoc:= 287; { we use 460 bins in the y-dimension. use the nearest integer to find the correct bin, * we consider valid values from msas of 0.0 to 23.0, which is a range of 23.0 * and subtract one for c-language arrays (which begin at zero). } yLoc := trunc(((dMsas - 0.0)*460./23.0) + 0.5) - 1; if yLoc < 0 then yLoc:= 0; if yLoc > 459 then yLoc:= 459; { Check the 12 grid cells 3 above and 3 below this one, and the 3 to left column and 3 to right column. If the majority of the 12 are empty, we consider this target point to be sparse. If there is a tie, we call it dense. } yy[0] := yLoc -3; yy[1] := yLoc -2; yy[2] := yLoc -1; yy[3] := yLoc -1; yy[4] := yLoc -1; yy[5] := yLoc; yy[6] := yLoc; yy[7] := yLoc +1; yy[8] := yLoc +1; yy[9] := yLoc +1; yy[10] := yLoc +2; yy[11] := yLoc +3; for y := 0 to 11 do begin if yy[y] < 0 then yLoc:= 0; if yy[y] > 459 then yLoc:= 459; end; xx[0] := xLoc; xx[1] := xLoc; xx[2] := xLoc -1; xx[3] := xLoc; xx[4] := xLoc +1; xx[5] := xLoc -1; xx[6] := xLoc +1; xx[7] := xLoc -1; xx[8] := xLoc; xx[9] := xLoc +1; xx[10] := xLoc; xx[11] := xLoc; for x := 0 to 11 do begin if xx[x] < 0 then xLoc:= 0; if xx[x] > 287 then xLoc:= 287; end; sumZero := 0; { sum the counts in the cells } for y := 0 to 11 do sumZero := sumZero + grid[yy[y]][xx[y]]; { we have 12 points in the array around the target point. If the sum is less than or equal to the cutoff_limit, we have a sparse point } if sumZero <= cutoff_limit then begin { if here, we have a sparse record, so increment our 's' count and write out the record to the second output file} s := s +1; { print out the sparse record to the second output file } { Note, we need to output two numbers for each of hour, minute and seconds. If only one digit is output, Spotfire, and other programs, will take the digit as a ten's value, insted of a one's value} //Write(fdataout2, Format('%d, %d,',[sumZero,cutoff_limit])); Write(fdataout2, Format('%s,',[SQM_Location])); Write(fdataout2, Format('%12.7f,%12.7f,',[SQM_Lat, SQM_Long])); Write(fdataout2, Format('%s,%s,%s,%s,',[FormatDateTime('yyyy-mm-dd',Udate), FormatDateTime('hh:nn:ss',Utime) , FormatDateTime('yyyy-mm-dd',Ldate), FormatDateTime('hh:nn:ss',Ltime)])); Write(fdataout2, Format('%.1f,%.2f,%.2f,%1d,',[dCelsius, dVolts, dMsas, dStatus])); Write(fdataout2, Format('%.1f,%.3f,%.1f,%.3f,',[dMoonPhase, dMoonElev, dMoonIllum, dSunElev])); WriteLn(fdataout2, Format('%.4d,%.6f,%.4d,%12.7f,%12.7f,%10.5f,%.6f,%.6f',[minutes_since_3pm, msas_Avg, days, right_ascension, Galactic_Lat, Galactic_Long, J2000_days, RSE])); end else begin { if here, we have a valid dense record, so increment our count and write out the record } r := r +1; { sum the dMsas values to allow calculation of the mean of these records that are considered dense, later } dMsasSum2 := dMsasSum2 + dMsas; { track the min and max values } if dMsas > dMsasMax2 then dMsasMax2:= dMsas; if dMsas < dMsasMin2 then dMsasMin2:= dMsas; { Write out this valid record to the output file } { Note, we need to output two numbers for each of hour, minute and seconds. If only one digit is output, Spotfire, and other programs, will take the digit as a ten's value, insted of a one's value} //Write(fdataout1, Format('%d, %d,',[sumZero,cutoff_limit])); Write(fdataout1, Format('%s,',[SQM_Location])); Write(fdataout1, Format('%12.7f,%12.7f,',[SQM_Lat, SQM_Long])); Write(fdataout1, Format('%s,%s,%s,%s,',[FormatDateTime('yyyy-mm-dd',Udate), FormatDateTime('hh:nn:ss',Utime) , FormatDateTime('yyyy-mm-dd',Ldate), FormatDateTime('hh:nn:ss',Ltime)])); Write(fdataout1, Format('%.1f,%.2f,%.2f,%1d,',[dCelsius, dVolts, dMsas, dStatus])); Write(fdataout1, Format('%.1f,%.3f,%.1f,%.3f,',[dMoonPhase, dMoonElev, dMoonIllum, dSunElev])); WriteLn(fdataout1, Format('%.4d,%.6f,%.4d,%12.7f,%12.7f,%10.5f,%.6f,%.6f',[minutes_since_3pm, msas_Avg, days, right_ascension, Galactic_Lat, Galactic_Long, J2000_days, RSE])); end; { this is the end of the if filter check on second read of the input file } end; { this is the end of the while loop on second read of the input file } end; { calculate the mean of those records which pass the sun, moon, MW, clouds and density filter } mean2 := dMsasSum2/double(r); ProgressParameterMessage(' '); ProgressParameterMessage(format(' End of second loop. We wrote out -%d- dense records to the _Dense.csv file.',[r])); ProgressParameterMessage(format(' We wrote out -%d- sparse records to the _Sparse.csv file.',[s])); ProgressParameterMessage(' '); ProgressParameterMessage(' '); ProgressParameterMessage(' Msas statistics of the records that pass the sun, moon, milky way and clouds filter: '); ProgressParameterMessage(format(' Mean= %.6f Minimum= %.6f Maximum= %.6f',[mean1, dMsasMin1, dMsasMax1])); ProgressParameterMessage(' '); ProgressParameterMessage(' Msas statistics of the records that pass the sun, moon, milky way, clouds and sparseness filter: '); ProgressParameterMessage(' These are the records that we wrote into the _Dense.csv output file. '); ProgressParameterMessage(format(' Mean= %.6f Minimum= %.6f Maximum= %.6f',[mean2, dMsasMin2, dMsasMax2])); ProgressParameterMessage(' '); ProgressParameterMessage(' '); if cover_correction > 0.0 then begin ProgressParameterMessage(' Attention Attention Attention '); ProgressParameterMessage(' Remember that the SQM Mags/Arc Second Squared data in the Dense and Sparse output files '); ProgressParameterMessage(' has already been corrected for the Weatherproof cover! '); ProgressParameterMessage(format(' We already subtracted the value of %.6f ',[cover_correction])); ProgressParameterMessage(' Don''t apply the correction again in subsequent processing! '); ProgressParameterMessage(' Attention Attention Attention '); ProgressParameterMessage(' '); ProgressParameterMessage(' '); end; if aging_per_year > 0.0 then begin ProgressParameterMessage(' Attention Attention Attention '); ProgressParameterMessage(' Remember that the SQM Mags/Arc Second Squared data in the Dense and Sparse output files '); ProgressParameterMessage(' has already been corrected for the Aging of the SQM! '); ProgressParameterMessage(format(' We already applied the aging per year value of %.6f ',[aging_per_year])); ProgressParameterMessage(' Don''t apply the correction again in subsequent processing! '); ProgressParameterMessage(' Attention Attention Attention '); ProgressParameterMessage(' '); ProgressParameterMessage(' '); end; { insert a dummy statement to make the Termination label work } //Termination: k=k+1; CloseFile(fdata); CloseFile(fdataout1); CloseFile(fdataout2); CloseFile(fdataout3); ProgressMessage('Done.'); end; procedure TFilterSunMoonForm.FormCreate(Sender: TObject); begin {Load in saved values and defaults} ReadingSettings:=True; //Sun elevation angle cutoff in degrees, less than or equal to this value (recommend -18.) solar_elev_cutoff:=StrToFloatDef(vConfigurations.ReadString(Section,'SolarElevationCutoff'), -18.0); SolarElevationAngleCutoffEdit.Text:=Format('%0.2f',[solar_elev_cutoff]); // Moon elevation angle cutoff in degree, less than or equal to this value (recommend -10.) lunar_elev_cutoff:=StrToFloatDef(vConfigurations.ReadString(Section,'LunarElevationCutoff'), -10.0); MoonElevationAngleCutoffEdit.Text:=Format('%0.2f',[lunar_elev_cutoff]); // Cloud algorithm cutoff, less than or equal to this value (recommend 20.) cloud_cutoff:=StrToFloatDef(vConfigurations.ReadString(Section,'CloudAlgorithmCutoff'), 20.0); CloudAlgorithmCutoffEdit.Text:=Format('%0.2f',[cloud_cutoff]); // Galactic Latitude elevation angle in degrees, cutoff to eliminate Milky Way from FOV, less than or equal to (recommend 0.) milky_way_cutoff:=StrToFloatDef(vConfigurations.ReadString(Section,'MilkyWayCutoff'), 0.0); GalacticLatitudeElevationAngleEdit.Text:=Format('%0.2f',[milky_way_cutoff]); // Correction for weatherproof cover. this value is subtracted from the Mags/arc sec sq value (recommend 0.11) cover_correction:=StrToFloatDef(vConfigurations.ReadString(Section,'CoverCorrection'), 0.11); CorrectionForWeatherproofCoverEdit.Text:=Format('%0.2f',[cover_correction]); // Correction for aging of the SQM. This values is the increase of brightness reading per year due to aging (0.018973938) // This is based on our two-SQM assessment of aging of the SQM. // = Max(0,Msas_CoverCorrected_MinZero - ((J2000days - First(J2000days)) * .018973938 / 365.)) aging_per_year:=StrToFloatDef(vConfigurations.ReadString(Section,'AgingPerYear'), 0.018973938); CorrectionForAgingSQMEdit.Text:=Format('%0.9f',[aging_per_year]); // Max Magnitudes per Arc Second Squared allowed, less than or equal to this value (recommend 22.0) mags_max_allowed:=StrToFloatDef(vConfigurations.ReadString(Section,'MagsMaxAllowed'), 22.0); MaxMPSASAllowedEdit.Text:=Format('%0.2f',[mags_max_allowed]); // Sparse cutoff - the sum of 2D histogram values around the target point has to be equal or larger than this to be considered "dense" (recommend 15) cutoff_limit:=StrToIntDef(vConfigurations.ReadString(Section,'SparseCutoff'), 15); SparseCutoffEdit.Text:=Format('%d',[cutoff_limit]); ReadingSettings:=False; end; procedure TFilterSunMoonForm.FormShow(Sender: TObject); begin SourceFileName:=RemoveMultiSlash(vConfigurations.ReadString(Section, 'SourceFileName', '')); SourceFileEdit.Text:=SourceFileName; end; procedure TFilterSunMoonForm.SolarElevationAngleCutoffEditChange(Sender: TObject ); begin if not ReadingSettings then begin solar_elev_cutoff:=StrToFloatDef(SolarElevationAngleCutoffEdit.Text,0); vConfigurations.WriteString(Section,'SolarElevationCutoff', Format('%0.2f',[solar_elev_cutoff])); end; end; procedure TFilterSunMoonForm.SourceFileButtonClick(Sender: TObject); begin SourceFileDialog.FileName:=SourceFileName; if SourceFileDialog.Execute then begin SourceFileName:=RemoveMultiSlash(SourceFileDialog.FileName); SourceFileEdit.Text:=SourceFileName; end; //Save directory name in registry vConfigurations.WriteString(Section,'SourceFileName',SourceFileName); end; procedure TFilterSunMoonForm.MoonElevationAngleCutoffEditChange(Sender: TObject ); begin if not ReadingSettings then begin lunar_elev_cutoff:=StrToFloatDef(MoonElevationAngleCutoffEdit.Text,0); vConfigurations.WriteString(Section,'LunarElevationCutoff', Format('%0.2f',[lunar_elev_cutoff])); end; end; procedure TFilterSunMoonForm.CloudAlgorithmCutoffEditChange(Sender: TObject); begin if not ReadingSettings then begin cloud_cutoff:=StrToFloatDef(CloudAlgorithmCutoffEdit.Text,0); vConfigurations.WriteString(Section,'CloudAlgorithmCutoff', Format('%0.2f',[cloud_cutoff])); end; end; procedure TFilterSunMoonForm.GalacticLatitudeElevationAngleEditChange( Sender: TObject); begin if not ReadingSettings then begin milky_way_cutoff:=StrToFloatDef(GalacticLatitudeElevationAngleEdit.Text,0); vConfigurations.WriteString(Section,'MilkyWayCutoff', Format('%0.2f',[milky_way_cutoff])); end; end; procedure TFilterSunMoonForm.CorrectionForWeatherproofCoverEditChange( Sender: TObject); begin if not ReadingSettings then begin cover_correction:=StrToFloatDef(CorrectionForWeatherproofCoverEdit.Text,0); vConfigurations.WriteString(Section,'CoverCorrection', Format('%0.2f',[cover_correction])); end; end; procedure TFilterSunMoonForm.CorrectionForAgingSQMEditChange(Sender: TObject); begin if not ReadingSettings then begin aging_per_year:=StrToFloatDef(CorrectionForAgingSQMEdit.Text,0); vConfigurations.WriteString(Section,'AgingPerYear', Format('%0.9f',[aging_per_year])); end; end; procedure TFilterSunMoonForm.MaxMPSASAllowedEditChange(Sender: TObject); begin if not ReadingSettings then begin mags_max_allowed:=StrToFloatDef(MaxMPSASAllowedEdit.Text,0); vConfigurations.WriteString(Section,'MagsMaxAllowed', Format('%0.2f',[mags_max_allowed])); end; end; procedure TFilterSunMoonForm.SparseCutoffEditChange(Sender: TObject); begin if not ReadingSettings then begin cutoff_limit:=StrToIntDef(SparseCutoffEdit.Text,0); vConfigurations.WriteString(Section,'SparseCutoff', Format('%d',[cutoff_limit])); end; end; initialization {$I FilterSunMoonUnit.lrs} end. ./TMyRollOut.png0000644000175000017500000002467014576573022013721 0ustar anthonyanthonyPNG  IHDR+\ pHYs+tEXtCommentCreated with GIMPW IDATxw\?%# { uUNDuVmw_V]gUںκVm]d +u0̻@{>|}}L@Pmbo7-H׆Bk(himp떪,"h"y>J_[T =ܼ\V:06+P{΅E:!@ VyPmOݠzLva0~E p;@_>wYFׯN'*J(^|95"cʼk+͕8]fZ _[? 0Ry۵a`hh>}<==!"H0 {yy8qB[%9mR>7A3C##;Mb"W;`ZVhqqqL&ڵkwe01N>Uj͹FroIp''6G6F'jZKk _t-k@.ԥե.:<ڭQ!7z_^.IHHǏ߽{k>|HR 7n\\/0Ԛsm#RhozdRPC(>`x-߀&\> ໛> }+4?AU6y|gzCB3{ 68:>Jp8T*iK,GuAt:9;; kkZMxPhٕ<~RLR%ȳE^#Z XP]H'CPX,2 ÇSSSb@ Jb̙37o$NNN EmԉgT=Fn,G*z) "; r {ehj(P@[oc=: J%ɣG=z4ԩS gϞhd2D`Cג|b+S䏾"n,m/BE$ɼL% :Th40 t:߿k.@Ჲ2s y6|{ w@‡հ@SX%o %E@^eEĆZw 5!ȕAԊ+ I-41pPd \^VVVa޳gς n޼۷;wpUUD"у zW4zJ)ՏyZO903%~ ` )jf *ѝRݞ~R@rMy02N'_Ǐhcƌ t:RuVr.Nq "UZT/cǎƍc(JCΞ=+XЭs+_zHh|)s={nqqqRRsrrBlْPg$$\Cz׊b:ð"ZBbz3S!bqږuuʦ6mA99;יbqJR-/ Uo{w=B%'7wX{޽9_;#~ZV&lݶA o۱yuޣ'ZvյY㥧{yz4+]jYV\]d2zC1jS'sAWBO> #vnz3g2kz CeKllʕ+e5Z hmyC?xPÄd0hիN{>>4mȑ9w]Xggg1yҤpY3gxzzzzzΙ9Xj5Y.''O >77wMgDT+ Zf2uuM 0JerR8x@ |T<^Zןm92u ;Z9;T*/n۞W[[ Ub~~~~UUuu5 oCdR-[raah FW(l6 ]\\ln x 4#,;fLhhؚ5'Lpq!B[^^kWc>;)KN0~ILCP 4H(--nؐ:뫫nqe<|W]KMK_li˨(}ePpЋٝ;u  ci~\#j.6%%EbݫWjzzX\% z"V[PPxR+4BY_pqhek֮3kͩ7e㡨^Up֬Y$Yo|?lݶaZC/"H$~Ɵl.Ppke!+WWV`IٸMS'|}ِ711D"_H$Osf2oS,pw5r5[om&OMq bqZm-&63t:}B)SL]oG KvBz83Ml֣zU'ObbZ4q?xp{Teglݺͥsg\h^]f ^]]]^^ݚjzHdrii dr iru-ogJ4Fӵk/+$0QVVxxQra,&oF2<#777.h^b555vbZ"3%\.F| e$=0 6d2(C?H$d0tĀ D&LnP̸CI|uX,vf_"鿋#$r?5 G~fkxD;w䬡] 0^Z?`b+GnR(f'ʯ3iQa%Uvyva$2 T4$ƠY#rտݯWԷ3b`'^~MX[N=Q=u?fhO.fʢsuZݙ/oMVw_MgjWEEߥ.mVikAỵ3~!<+[4::7)s%_ߗsK93r^f|mwi˶nloZn{9ќz T_?`b_ Cvzu>hY/G:'m(ՙJg~=<Ȧw?9݅I:e[O lW@ƵĤlW밤?9*aFLzL3@Zu3ַhy~/{ߺ?\`}6L}*-ىZWW˪nAx|a!\uX:,Fulϵ2L$T9n~ qa3b?]R|dLEcIi"ۢYIPP)P_.-.$K:[9txrF*̌A+ݻpzp"}Xsmyțb`"{US]$/seʄ¼3/-EEGi ŕ_2EBoRE0/7e4\&lP\2˒wuP-[ҧOgoRjӧ?pڵ6<%!CJ @"i-ɕu o/Q 뫬3Y%?0JRT 7w@SWVwvvvvvm/%^{3 .8%Ν0 FdtL*Nur%gs8"N"!ñoJ[`(/g^c`7/7oތi1wu _iT_&, VH3Qi 9*ư"6zP3eB+oF<ɚ7}-a۵2??/8,ŅaX/H(T*n#ː_ʄ"~A~xTKA>ic2S+ ;ut" ?2:ANk#jd}䤭۶jɠ^X\dD><_k7+֚[S(ర=QX6… ^}(L/ n+Y8qx)~Kl45kmHTR\Ւa@&Hb!0EBNi˄B0?OVtjLXkgVϫW*1bT*J٬,뱾݇z겖E'&ejmIru}NeX4 _ rJ*6dVի^}:kl6fg͞SCæ b1Yn߹pw;wt1.˖.4yrثpߢvl߮Y?7Ϳ*++ZDG͘>M??^Ο?D>}Re2T*MMܻO}ҵ4%u=wfcC222xz\*=IXV=b-[]^]]]\T|_~7aƆ6U-_"5kx]LǨ[N%& zJ:c;*qA!/j1`ƍLg…sllmb tR.rW\yE\W8saÆ 6liÒ,bʩxtb6\b߿.6=d2a׭[xqv&ܽ{w3Lsb-F Ņ2ah|? 6ڍOKh4+/sZ[~2y/juNNά3K>f,qq?q :vWhݺ͛RT*ݴic6mp_uPR%Uʕ_:x=~\oB6.ɓrs==={n[t 0 )ij^nġ|cƎvt2[vYxU(i?v;ZG ];3U)WMI|ď)oDY(/ϝ:dQQj3YATx ZpBa!,"`4ӏA.[[YKr]r%q~b̙]]m~dKr"6.bs߭J"/,4ׯ^vk׮ۻcfhn7@ӧc np+r," y8AǙ?s!J ݨ&_KKG,c*^YmmmpPr\&m\`^[jtǙ7oXmϵ˗ڵC˱b_c%MF8|=w B)+[LYv0}2Z -dR7o7v,"0MԣGQQv1`4\${,"W}?\~:rˋVX>zh;Vb7vv@yEϵnL0_Գgu,ŭX\"H$e˖uM:T";vmֹfiimۘ^/vgO">gOލKn*r뫵lZrRvvZ.))7ѣF.5rC,aH~(Ӧ[9X|:tjժ`\B*viE[ac $%eϞ &. 0ȭ;VQ?O\~>Ddnnn6j̉c+:o͵F%^4:,kk_s #x!\uX:,kk`=@ Ve["bI1DĒch [5Z K>KrI $"bI1DR4 o:rClq1>lR؏;ho>#9|r;0=DPnGqES k33%LNJB,&O4ct;` 1 1 1"bkm֭[mZ~q999[7S! 4$<8(VYYn/_4v떛Kl钆K%%:eJXhH˨ GnL&U?UUhsٱ~dϒe6CJKK[FE'$7\Yqc 1+"bs߭1uZ,!VjI>yҤϟTaC͛Ko^9mI3g%GXc $"b)zךN\ndZ '' then Result := Result + AnsiChar(Length(s)) + s; Result := Result + #0; end; end; function TDNSSend.CodeHeader: AnsiString; begin FID := Random(32767); Result := CodeInt(FID); // ID Result := Result + CodeInt($0100); // flags Result := Result + CodeInt(1); // QDCount Result := Result + CodeInt(0); // ANCount Result := Result + CodeInt(0); // NSCount Result := Result + CodeInt(0); // ARCount end; function TDNSSend.CodeQuery(const Name: AnsiString; QType: Integer): AnsiString; begin Result := CompressName(Name); Result := Result + CodeInt(QType); Result := Result + CodeInt(1); // Type INTERNET end; function TDNSSend.DecodeString(var From: Integer): AnsiString; var Len: integer; begin Len := Ord(FBuffer[From]); Inc(From); Result := Copy(FBuffer, From, Len); Inc(From, Len); end; function TDNSSend.DecodeLabels(var From: Integer): AnsiString; var l, f: Integer; begin Result := ''; while True do begin if From >= Length(FBuffer) then Break; l := Ord(FBuffer[From]); Inc(From); if l = 0 then Break; if Result <> '' then Result := Result + '.'; if (l and $C0) = $C0 then begin f := l and $3F; f := f * 256 + Ord(FBuffer[From]) + 1; Inc(From); Result := Result + DecodeLabels(f); Break; end else begin Result := Result + Copy(FBuffer, From, l); Inc(From, l); end; end; end; function TDNSSend.DecodeResource(var i: Integer; const Info: TStringList; QType: Integer): AnsiString; var Rname: AnsiString; RType, Len, j, x, y, z, n: Integer; R: AnsiString; t1, t2, ttl: integer; ip6: TIp6bytes; begin Result := ''; R := ''; Rname := DecodeLabels(i); RType := DecodeInt(FBuffer, i); Inc(i, 4); t1 := DecodeInt(FBuffer, i); Inc(i, 2); t2 := DecodeInt(FBuffer, i); Inc(i, 2); ttl := t1 * 65536 + t2; Len := DecodeInt(FBuffer, i); Inc(i, 2); // i point to begin of data j := i; i := i + len; // i point to next record if Length(FBuffer) >= (i - 1) then case RType of QTYPE_A: begin R := IntToStr(Ord(FBuffer[j])); Inc(j); R := R + '.' + IntToStr(Ord(FBuffer[j])); Inc(j); R := R + '.' + IntToStr(Ord(FBuffer[j])); Inc(j); R := R + '.' + IntToStr(Ord(FBuffer[j])); end; QTYPE_AAAA: begin for n := 0 to 15 do ip6[n] := ord(FBuffer[j + n]); R := IP6ToStr(ip6); end; QTYPE_NS, QTYPE_MD, QTYPE_MF, QTYPE_CNAME, QTYPE_MB, QTYPE_MG, QTYPE_MR, QTYPE_PTR, QTYPE_X25, QTYPE_NSAP, QTYPE_NSAPPTR: R := DecodeLabels(j); QTYPE_SOA: begin R := DecodeLabels(j); R := R + ',' + DecodeLabels(j); for n := 1 to 5 do begin x := DecodeInt(FBuffer, j) * 65536 + DecodeInt(FBuffer, j + 2); Inc(j, 4); R := R + ',' + IntToStr(x); end; end; QTYPE_NULL: begin end; QTYPE_WKS: begin end; QTYPE_HINFO: begin R := DecodeString(j); R := R + ',' + DecodeString(j); end; QTYPE_MINFO, QTYPE_RP, QTYPE_ISDN: begin R := DecodeLabels(j); R := R + ',' + DecodeLabels(j); end; QTYPE_MX, QTYPE_AFSDB, QTYPE_RT, QTYPE_KX: begin x := DecodeInt(FBuffer, j); Inc(j, 2); R := IntToStr(x); R := R + ',' + DecodeLabels(j); end; QTYPE_TXT, QTYPE_SPF: begin R := ''; while j < i do R := R + DecodeString(j); end; QTYPE_GPOS: begin R := DecodeLabels(j); R := R + ',' + DecodeLabels(j); R := R + ',' + DecodeLabels(j); end; QTYPE_PX: begin x := DecodeInt(FBuffer, j); Inc(j, 2); R := IntToStr(x); R := R + ',' + DecodeLabels(j); R := R + ',' + DecodeLabels(j); end; QTYPE_SRV: // Author: Dan begin x := DecodeInt(FBuffer, j); Inc(j, 2); y := DecodeInt(FBuffer, j); Inc(j, 2); z := DecodeInt(FBuffer, j); Inc(j, 2); R := IntToStr(x); // Priority R := R + ',' + IntToStr(y); // Weight R := R + ',' + IntToStr(z); // Port R := R + ',' + DecodeLabels(j); // Server DNS Name end; end; if R <> '' then Info.Add(RName + ',' + IntToStr(RType) + ',' + IntToStr(ttl) + ',' + R); if QType = RType then Result := R; end; function TDNSSend.RecvTCPResponse(const WorkSock: TBlockSocket): AnsiString; var l: integer; begin Result := ''; l := WorkSock.recvbyte(FTimeout) * 256 + WorkSock.recvbyte(FTimeout); if l > 0 then Result := WorkSock.RecvBufferStr(l, FTimeout); end; function TDNSSend.DecodeResponse(const Buf: AnsiString; const Reply: TStrings; QType: Integer):boolean; var n, i: Integer; flag, qdcount, ancount, nscount, arcount: Integer; s: AnsiString; begin Result := False; Reply.Clear; FAnswerInfo.Clear; FNameserverInfo.Clear; FAdditionalInfo.Clear; FAuthoritative := False; if (Length(Buf) > 13) and (FID = DecodeInt(Buf, 1)) then begin Result := True; flag := DecodeInt(Buf, 3); FRCode := Flag and $000F; FAuthoritative := (Flag and $0400) > 0; FTruncated := (Flag and $0200) > 0; if FRCode = 0 then begin qdcount := DecodeInt(Buf, 5); ancount := DecodeInt(Buf, 7); nscount := DecodeInt(Buf, 9); arcount := DecodeInt(Buf, 11); i := 13; //begin of body if (qdcount > 0) and (Length(Buf) > i) then //skip questions for n := 1 to qdcount do begin while (Buf[i] <> #0) and ((Ord(Buf[i]) and $C0) <> $C0) do Inc(i); Inc(i, 5); end; if (ancount > 0) and (Length(Buf) > i) then // decode reply for n := 1 to ancount do begin s := DecodeResource(i, FAnswerInfo, QType); if s <> '' then Reply.Add(s); end; if (nscount > 0) and (Length(Buf) > i) then // decode nameserver info for n := 1 to nscount do DecodeResource(i, FNameserverInfo, QType); if (arcount > 0) and (Length(Buf) > i) then // decode additional info for n := 1 to arcount do DecodeResource(i, FAdditionalInfo, QType); end; end; end; function TDNSSend.DNSQuery(Name: AnsiString; QType: Integer; const Reply: TStrings): Boolean; var WorkSock: TBlockSocket; t: TStringList; b: boolean; begin Result := False; if IsIP(Name) then Name := ReverseIP(Name) + '.in-addr.arpa'; if IsIP6(Name) then Name := ReverseIP6(Name) + '.ip6.arpa'; FBuffer := CodeHeader + CodeQuery(Name, QType); if FUseTCP then WorkSock := FTCPSock else WorkSock := FSock; WorkSock.Bind(FIPInterface, cAnyPort); WorkSock.Connect(FTargetHost, FTargetPort); if FUseTCP then FBuffer := Codeint(length(FBuffer)) + FBuffer; WorkSock.SendString(FBuffer); if FUseTCP then FBuffer := RecvTCPResponse(WorkSock) else FBuffer := WorkSock.RecvPacket(FTimeout); if FUseTCP and (QType = QTYPE_AXFR) then //zone transfer begin t := TStringList.Create; try repeat b := DecodeResponse(FBuffer, Reply, QType); if (t.Count > 1) and (AnswerInfo.Count > 0) then //find end of transfer b := b and (t[0] <> AnswerInfo[AnswerInfo.count - 1]); if b then begin t.AddStrings(AnswerInfo); FBuffer := RecvTCPResponse(WorkSock); if FBuffer = '' then Break; if WorkSock.LastError <> 0 then Break; end; until not b; Reply.Assign(t); Result := True; finally t.free; end; end else //normal query if WorkSock.LastError = 0 then Result := DecodeResponse(FBuffer, Reply, QType); end; {==============================================================================} function GetMailServers(const DNSHost, Domain: AnsiString; const Servers: TStrings): Boolean; var DNS: TDNSSend; t: TStringList; n, m, x: Integer; begin Result := False; Servers.Clear; t := TStringList.Create; DNS := TDNSSend.Create; try DNS.TargetHost := DNSHost; if DNS.DNSQuery(Domain, QType_MX, t) then begin { normalize preference number to 5 digits } for n := 0 to t.Count - 1 do begin x := Pos(',', t[n]); if x > 0 then for m := 1 to 6 - x do t[n] := '0' + t[n]; end; { sort server list } t.Sorted := True; { result is sorted list without preference numbers } for n := 0 to t.Count - 1 do begin x := Pos(',', t[n]); Servers.Add(Copy(t[n], x + 1, Length(t[n]) - x)); end; Result := True; end; finally DNS.Free; t.Free; end; end; end. ./datlocalcorrect.pas0000644000175000017500000003004114576573021015017 0ustar anthonyanthonyunit datlocalcorrect; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, Buttons, ComCtrls, Spin , upascaltz //Required for timezone corrections ; type { Tdatlocalcorrectform } Tdatlocalcorrectform = class(TForm) DirectorySelectButton: TButton; CorrectButton: TBitBtn; FileSelectButton: TButton; CustomGroupBox: TGroupBox; CustomOffsetEdit: TFloatSpinEdit; CustomOffsetLabel: TLabel; InputDirectoryDisplay: TEdit; InputFileDisplay: TEdit; Label11: TLabel; Label6: TLabel; OutputDir: TLabeledEdit; Memo1: TMemo; SelectDirectoryDialog1: TSelectDirectoryDialog; TZMethodRadioGroup: TRadioGroup; StandardGroupBox: TGroupBox; SettingsGroupBox: TGroupBox; InGroupBox: TGroupBox; OpenDialog1: TOpenDialog; OutGroupBox: TGroupBox; OutputFile: TLabeledEdit; StatusBar1: TStatusBar; TZLocationBox: TComboBox; TZRegionBox: TComboBox; procedure CorrectButtonClick(Sender: TObject); procedure DirectorySelectButtonClick(Sender: TObject); procedure FileSelectButtonClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure TZMethodRadioGroupClick(Sender: TObject); procedure TZLocationBoxChange(Sender: TObject); procedure TZRegionBoxChange(Sender: TObject); private procedure ReadINI(); procedure FillTimezones(); procedure CorrectFile(InfileString, OutFileString: string); public end; var datlocalcorrectform: Tdatlocalcorrectform; InFileName: string; OutFileName: string; InDirName: string; OutDirName: string; Timediff: int64; LocalRecINIsection: string; AZones: TStringList; ptz: TPascalTZ; subfix: ansistring; //Used for time zone conversions LocalRecTZRegion, LocalRecTZLocation: string; //Only used for local timeone correction { Indicates that programmatic changes are taking place to the Time Zone } TZChanging: boolean = False; TimezoneMethod: integer; FileMode: boolean = False; {False = single file. True = directory} HoursDiff: double = 0.0; implementation uses appsettings //Required to read application settings (like locations). , dateutils //Required to convert logged UTC string to TDateTime , strutils //Required for checking lines in conversion file. , LazFileUtils //required for ExtractFileNameOnly , dlheader //For Timezone conversions. ; { Tdattimecorrectform } { Populate form from INI file } procedure Tdatlocalcorrectform.ReadINI(); var pieces: TStringList; begin pieces := TStringList.Create; pieces.Delimiter := ','; pieces.StrictDelimiter := False; //Parse spaces also LocalRecINIsection := 'LocalReconstruct:'; { Pull Timezone information from INI file if it exists.} LocalRecTZRegion := vConfigurations.ReadString(LocalRecINIsection, 'Local region'); TZRegionBox.Text := LocalRecTZRegion; FillTimezones(); { Read the previously recorded entries. } LocalRecTZLocation := vConfigurations.ReadString(LocalRecINIsection, 'Local time zone'); TZLocationBox.Text := LocalRecTZLocation; if Assigned(pieces) then FreeAndNil(pieces); end; //Select file for correction procedure Tdatlocalcorrectform.FileSelectButtonClick(Sender: TObject); begin { Set mode and clear displays} FileMode := False; {Single file selection} InputFileDisplay.Text := ''; InputDirectoryDisplay.Text := ''; InputFileDisplay.Visible := True; InputDirectoryDisplay.Visible := False; OutputFile.Visible := True; OutputDir.Visible := False; { Clear status bar } StatusBar1.Panels.Items[0].Text := ''; Application.ProcessMessages; OpenDialog1.Filter := 'data log files|*.dat|All files|*.*'; OpenDialog1.InitialDir := appsettings.LogsDirectory; { Get Input filename from user } if (OpenDialog1.Execute) then begin InFileName := OpenDialog1.FileName; InputFileDisplay.Text := InFileName; { Create output file name } OutFileName := ExtractFilePath(InFileName) + LazFileUtils.ExtractFileNameOnly(InFileName) + '_LocalCorr' + ExtractFileExt(InFileName); OutputFile.Text := OutFileName; end; end; procedure Tdatlocalcorrectform.DirectorySelectButtonClick(Sender: TObject); begin { Set mode and clear displays} FileMode := True; InputFileDisplay.Text := ''; InputDirectoryDisplay.Text := ''; InputFileDisplay.Visible := False; InputDirectoryDisplay.Visible := True; OutputFile.Visible := False; OutputDir.Visible := True; { Clear status bar } StatusBar1.Panels.Items[0].Text := ''; Application.ProcessMessages; SelectDirectoryDialog1.InitialDir := appsettings.LogsDirectory; { Get Input directory from user } if (SelectDirectoryDialog1.Execute) then begin InDirName := SelectDirectoryDialog1.FileName; InputDirectoryDisplay.Text := InDirName + DirectorySeparator + '*.dat'; { Show desired output directory } OutDirName := InDirName + DirectorySeparator + 'LocalCorr'; OutputDir.Text := OutDirName + DirectorySeparator + '*_LocalCorr.dat'; end; end; procedure Tdatlocalcorrectform.FormCreate(Sender: TObject); begin { Clear status bar } StatusBar1.Panels.Items[0].Text := ''; Application.ProcessMessages; { get previous timezone settings } { Initialize required variables. } AZones := TStringList.Create; ptz := TPascalTZ.Create(); ReadINI(); StandardGroupBox.Enabled := True; CustomGroupBox.Enabled := False; CustomOffsetEdit.Value := HoursDiff; end; procedure Tdatlocalcorrectform.FormDestroy(Sender: TObject); begin if Assigned(AZones) then FreeAndNil(AZones); if Assigned(ptz) then FreeAndNil(ptz); end; procedure Tdatlocalcorrectform.TZMethodRadioGroupClick(Sender: TObject); begin TimezoneMethod := TZMethodRadioGroup.ItemIndex; case TimezoneMethod of 0: begin StandardGroupBox.Enabled := True; CustomGroupBox.Enabled := False; end; 1: begin StandardGroupBox.Enabled := False; CustomGroupBox.Enabled := True; end; end; end; procedure Tdatlocalcorrectform.TZLocationBoxChange(Sender: TObject); begin if not TZChanging then begin TZChanging := True; { Save the TZ selection. } LocalRecTZLocation := TZLocationBox.Text; Application.ProcessMessages; vConfigurations.WriteString(LocalRecINIsection, 'Local time zone', LocalRecTZLocation); TZChanging := False; end; end; procedure Tdatlocalcorrectform.TZRegionBoxChange(Sender: TObject); begin if not TZChanging then begin TZChanging := True; { Get and save region } LocalRecTZRegion := TZRegionBox.Text; Application.ProcessMessages; //Wait for GUI to put screen text into variable. vConfigurations.WriteString(LocalRecINIsection, 'Local region', LocalRecTZRegion); //Save TZ Region { Fill up timezone location names } FillTimezones(); { Clear out selected time zone location because time zone region was just changed. } LocalRecTZLocation := ''; TZLocationBox.Text := LocalRecTZLocation; vConfigurations.WriteString(LocalRecINIsection, 'Local time zone', LocalRecTZLocation); TZChanging := False; end; end; { Correct one file } procedure Tdatlocalcorrectform.CorrectFile(InfileString, OutfileString: string); var InFile, OutFile: TextFile; Str: string; pieces: TStringList; index: integer; UTCRecord: TDateTime; LocalRecord: TDateTime; ComposeString: string; WriteAllowable: boolean = True; //Allow output file to be written or not. begin StatusBar1.Panels.Items[0].Text := 'Correcting input file: ' + InfileString; Application.ProcessMessages; pieces := TStringList.Create; AssignFile(InFile, InFileString); AssignFile(OutFile, OutfileString); { Start reading file. } if FileExists(OutfileString) then begin if (MessageDlg('Overwrite existing file?', 'Do you want to overwrite the existing file ' + OutfileString + ' ?', mtConfirmation, [mbOK, mbCancel], 0) = mrOk) then WriteAllowable := True else WriteAllowable := False; end; if WriteAllowable then begin {$I+} try Reset(InFile); Rewrite(OutFile); {Open file for writing} StatusBar1.Panels.Items[0].Text := 'Reading Input file'; Application.ProcessMessages; repeat { Read one line at a time from the file. } Readln(InFile, Str); //StatusBar1.Panels.Items[0].Text := 'Processing : ' + Str; //Application.ProcessMessages; { Ignore most comment lines which have # as first character. } if (AnsiStartsStr('#', Str)) then begin { Touch up time zone location line } if AnsiStartsStr('# Local timezone:', Str) then begin case TimezoneMethod of 0: WriteLn(OutFile, format('# Local timezone: %s', [LocalRecTZLocation])); 1: WriteLn(OutFile, Str); end; end else { Write untouched header line } WriteLn(OutFile, Str); end else begin { Separate the fields of the record. } pieces.Delimiter := ';'; pieces.DelimitedText := Str; { Parse the UTC timestamp} UTCRecord := ScanDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz', pieces.Strings[0]); case TimezoneMethod of 0: begin { Standard correction method uses selected region and timezone. } LocalRecord := ptz.GMTToLocalTime(UTCRecord, LocalRecTZLocation, subfix); end; 1: begin { Custom correction method uses offset hours value. } LocalRecord := UTCRecord + (HoursDiff / 24.0); end; end; { Compose the string for timestamp replacement. } ComposeString := FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz;', UTCRecord) + FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz', LocalRecord); { Compose remainderof string } for index := 2 to pieces.Count - 1 do begin ComposeString := ComposeString + ';' + pieces.Strings[index]; end; WriteLn(OutFile, ComposeString); end; until (EOF(InFile)); { EOF(End Of File) The the program will keep reading new lines until there is none. } CloseFile(InFile); StatusBar1.Panels.Items[0].Text := 'Finished'; Application.ProcessMessages; except on E: EInOutError do begin MessageDlg('Error', 'File handling error occurred. Details: ' + E.ClassName + '/' + E.Message, mtError, [mbOK], 0); end; end; Flush(OutFile); CloseFile(OutFile); end; { End of WriteAllowable check. } end; { Correct file(s) } procedure Tdatlocalcorrectform.CorrectButtonClick(Sender: TObject); var sr: TSearchRec; begin { Clear status bar. } StatusBar1.Panels.Items[0].Text := 'Processing file(s).'; Application.ProcessMessages; HoursDiff:=CustomOffsetEdit.Value; if not FileMode then begin { Just correct one file. } CorrectFile(InFileName, OutFileName); end else begin {All files in a directory.} { Make directory to store files. } if (not (DirectoryExists(OutDirName))) then MkDir(OutDirName); { Work on all files in the directory. } if FindFirstUTF8(InDirName + DirectorySeparator + '*.dat', faAnyFile, sr) = 0 then repeat CorrectFile(InDirName + DirectorySeparator + sr.Name, OutDirName + DirectorySeparator + LazFileUtils.ExtractFileNameOnly(sr.Name) + '_LocalCorr.dat'); until FindNextUTF8(sr) <> 0; FindCloseUTF8(sr); end; end; { Fill timezone location dropdown entries. } procedure Tdatlocalcorrectform.FillTimezones(); begin if (FileExists(appsettings.TZDirectory + LocalRecTZRegion) and (length(LocalRecTZRegion) > 0)) then begin ptz.Destroy; ptz := TPascalTZ.Create(); try ptz.ParseDatabaseFromFile(appsettings.TZDirectory + LocalRecTZRegion); except ShowMessage(Format('Failed getting zones from %s', [LocalRecTZRegion])); end; ptz.GetTimeZoneNames(AZones, True); { Only geo name = true, does not show short names. } TZLocationBox.Items.Clear; TZLocationBox.Items.AddStrings(AZones); end; end; initialization {$I datlocalcorrect.lrs} end. ./pngpixels.png0000644000175000017500000002111314576573022013665 0ustar anthonyanthonyPNG  IHDR\bKGD pHYs+tIME IDATx]1k;nHIf?xI{+f^AK'stJyB9Q)]D~?ow57yo|})S?o"%"=u]X_5c1/bѣg;y^#?s%~|-v-f}5v7K2=m縞{v!v<.,)}YAu^{.i/N-u-Ļv7ظfym˽OHǫ.{*X@V-y9L=r]-|fv9Y+wyL4ζutmQhEX;FX|&KU7x.#(l,;,fP,2"Rn\Ps{ a'LwhJLFnbn_RO[#b/] V[=. vnQ\x$!EJ4 9hua.YtGf@ sћ&@_MέZoaE%L b\b^:(Hɬl:e Xx @>:(L,EC1= B6m-+ьloNދ-4|itGvcZyFjEc/6{h±o#j 4[ZJ8o<>A«|F"2d$H3'Kz 59\fO@{=ʚǣ`oN5".iDhS6ww4KyBQ z;%Q=]tip}߿΋kGmEWSex?S ^tii.<9}=s8 #9#հF蘈4jТNi$Q8`'hJ>I2U MFnُW^\D0_Y]a<Q#/wࡒӲ7itJA0ʤg+IŮ#ՔK|I,:P)E렺|-TnJ&:DiZњdс <2%{Wɲi`[)| zwfA33\2|܋{M‰L❑lӴ@i7[2 3mhkkv:z&V =j xYWҟ!1%oL琹&B/1D +l'7 rMbN P{L_wEJZFpzً7^mJ>Ű3S"SQ;Fޅ"/[ްst߯df}ˈH!疖F [z_8V$JMO7Y;tؿԱw:k gE,c<:C7b# v5[@7oR ˔ ;gXЍ:J+:s3۟ 4EQaafI|1EDi|7ExbR_)(>l9she M.P3C7tL~6,Y,"r AW,#md&<.&u|r92$`L-lRVC2-^!v︫a[MN_H4-D%;7e L:YN̅){" {ӃxC?Ɇ W2l%ӍgGU-feʞ%1I-]Px.Ôe[f ΍@-ĕR#KW׃?{K'ڨ!)l#es9v5sDCa 2$Fs2uҝNౌ^O͵o=/JntP>)$&bf Jtm42+nFSҫK\2uueߙ3SijQ'bnf6 wHhԬ'J>Գ=)*=8M=q1ckRz$f?(r`)LΌt& w8.fyP@#4{2妢r)/jh*Eb. ո:_D +Z9` .RfnoZ&1t?<_"/_۟o"W-LZעߡkDE*,/lDxxס Y~۹o|jٷF =vc238/m9&̨|=T%Ӄ–!/@/+VL}YZ7WvI,]HŖ3Xh9҆[F'뽴|7 JLp[Ƨzl|\ʮ 762W g)H=|&M2BQ.zp23l2FtuA&1$ژ:}R\ؙ#;2F2]k[ej$e4Ud.B[Ɇ$ {,RIes(y[<ܲmqy>`g5(\@ma`̡`&n"cHL{oȱJmP{;黭:;_fE(h̤w JvOπӃK[ӮT4E27Xk1 V#WLMFY4Re d8 \ju W3~3@ (U}ᆂ{X ;X[(cd#2*&)\Q @3َשd1"O_rGbN0Ȃ%?M!k]a/ZL:3f J:.`Ux MN tU0? qz\nW^&@Tx F 0jZĝo!r[fo 2f >^;GW>GU2^"`dC[xY/kzt%KLU(g&bnyNs/NNop{n΁#7tM.[A]x( nڄ}^N\5{AeO2?IѲ>l@ r:Ҫ =6)6ss^EN-ދH.D7嚽 *'Vsl-,vW֮ }Gԑg̅lQ.4.El`\%A0cBYeֳ2 F+zgE|ЌG .KEy^`ٙOtR<w"+ٳ,&.K3xĊ .mjrSͯ\ y3=vj)1Bhqmy/Gk 2\C.ŘjI^ /}b/ *2yLR =Ht“gnh3t>- 3f9]ua×5]hn(`l9OsHjR:-juk=Op\IM7#:ӕB===sQlQ0A`52@cEkEbR^g4Qinv/ju]@0~$,N \%U5#̴]X w\@*؇(0]7ʃHy̙9K&z807y6kWnJjZ\9Z̙wQ-?趔 ,ėp(xA<6GK GGɌ{=Y#$٠% q;Qk_ʢ5k_;GN3jrߎY, ދbc?vرυ!e7U" 0Dsu6s8yձXTf/55Hh-=NY46wX;:1E'Ԭsz>#\̅aA7*>uqY{3x8Ex#x35.^g?f`|{fiwa8SPeEHGVp ]3?_'.2s' H%K[3DD Y .ؿ?XM35> >ynpJ~b߲_,S1ze\yVħ̉A1Ȅ 0Kb{Y'3(0O̠Od21gQ ZLVY) ~A9G׷SwO2ةNg. Lh9kw@~d +(ǣf&Cт3O<&8h!*|4]Q>sgf9%?AtL \ZjpoqTeQ*١ûEbLq¿]s$BzTb㥓Tq1ar2hf2hʞ+c!+28IZ)Ix+kW_[Yr{;[,rd.S͹=Qg+km#d4;P#sf-"N+R+\ DKymٱ"?y/dz~K7Pw f옝Zw%CF?eQyDy佞 jk)uNW\D քAGĻ3 +*4h[5 lއf'dXPA?Ӧ P9BZ;HB @m/#$Je_&ę:Y̐pi%A3(*)&,^(s# /->>i~mYgu{b*+"ݿc_ #Xdy\;ܸwW{<ؑѵ/d~]c#=Df̌!D-(ktNml|:h$*LPWYuda$xG\1(X0Y#fy0,dvvr`@Y)彖<6ٜT^=H1Yhz8BIĿ9*9P#I '<ݐwf2Gp:k\cc` pn β(;hymףT+zCDJ望 pƊc=۷ET^cՑ6%mp 9*-Jnͭ7N9.uQDq>kgib$JhYuӂh_璽QrW F2S7A{x}IlN&1RDjDE0:(5S܊Fmcy^䨵ywڮG vn·ޢEGee$mMy]ԖF45ʉE!E49\ڡn&/ 3oYiT^Hg$Y(^h\%pd/H1g9eě?+U/oLXY4 iǮ|^ E PSc?+z/x@r=6͆ܵ5j2mi{ёGa[ɤ2ns뒽:.j¦DFƤ٩ENOd@%Cc%AN^\+w;Fi=e<5 z"X#!mRR2Y9OܾU\ڶ?g)=> Ay/tՙ [FB0 Yf *0sT" 9t2ghT٣2ss<żwHi #]H85Oy7v=;m$xAOq:_uX(AF;6kǖ4sԪ*E"fJ,tDccx8)ge#Ld;k`.4ʮEyZM /.>%d"h=kEOjKZ2sjuf {TzEsFBQF ZR\LjLN9gfkԏdmI);)Eu=3bS5E6$BXVDE $(h{JL庯 b$ȩ;̍#1 u3tߨ~?FF_(3,H̭2bW@HXoAJff/3)y.+ϡ: 'O(ށLS`=nɪ{c0=IDATcR[ QkM'GYH44[F=kf.7*d5 f.YV{s36(^"O5ttk)Qle 7'szsl]TktofHRe_53FhwH{m@Y!?B;#f2|@ɓ_v3c#J|=vs[msp ?{Y緉ڕ\Q1%DBЌDKME'aDAFpō[v>k>D\~bT c|=94Td/^a$̩y 43p,b̌LW,HD)3H.XQ0a(k\f+uzr Q еj:ٜd쬜 <PF1$c7IbQ̅qfݜMnq%,k]ۛCQOE$[~ $IENDB`./tzutil.pas0000644000175000017500000005343414576573021013220 0ustar anthonyanthony//Unit with timezone support for some Freepascal platforms. //Tomas Hajny unit tzutil; interface type DSTSpecType = (DSTMonthWeekDay, DSTMonthDay, DSTJulian, DSTJulianX); (* Initialized to default values *) const TZName: string = ''; TZDSTName: string = ''; TZOffset: longint = 0; DSTOffset: longint = 0; DSTStartMonth: byte = 4; DSTStartWeek: shortint = 1; DSTStartDay: word = 0; DSTStartSec: cardinal = 7200; DSTEndMonth: byte = 10; DSTEndWeek: shortint = -1; DSTEndDay: word = 0; DSTEndSec: cardinal = 10800; DSTStartSpecType: DSTSpecType = DSTMonthWeekDay; DSTEndSpecType: DSTSpecType = DSTMonthWeekDay; function TZSeconds: longint; (* Return current offset from UTC in seconds while respecting DST *) implementation uses Dos; function TZSeconds: longint; const MonthDays: array [1..12] of byte = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); MonthEnds: array [1..12] of word = (31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365); var Y, Mo, D, WD, H, Mi, S, S100: word; MS, DS, ME, DE: byte; L: longint; Second: cardinal; AfterDSTStart, BeforeDSTEnd: boolean; function LeapDay: byte; begin if (Y mod 400 = 0) or (Y mod 100 <> 0) and (Y mod 4 = 0) then LeapDay := 1 else LeapDay := 0; end; function FirstDay (MM: byte): byte; (* What day of week (0-6) is the first day of month MM? *) var DD: longint; begin if MM < Mo then begin DD := D + MonthEnds [Pred (Mo)]; if MM > 1 then Dec (DD, MonthEnds [Pred (MM)]); if (MM <= 2) and (Mo > 2) then Inc (DD, LeapDay); end else if MM > Mo then begin DD := - MonthDays [Mo] + D - MonthEnds [Pred (MM)] + MonthEnds [Mo]; if (Mo <= 2) and (MM > 2) then Dec (DD, LeapDay); end else (* M = MM *) DD := D; DD := WD - DD mod 7 + 1; if DD < 0 then FirstDay := DD + 7 else FirstDay := DD mod 7; end; begin TZSeconds := TZOffset; if DSTOffset <> TZOffset then begin GetDate (Y, Mo, D, WD); GetTime (H, Mi, S, S100); Second := cardinal (H) * 3600 + Mi * 60 + S; if (DSTStartSpecType = DSTMonthWeekDay) or (DSTStartSpecType = DSTMonthDay) then begin MS := DSTStartMonth; if DSTStartSpecType = DSTMonthDay then DS := DSTStartDay else begin DS := FirstDay (DSTStartMonth); if (DSTStartWeek >= 1) and (DSTStartWeek <= 4) then if DSTStartDay < DS then DS := DSTStartWeek * 7 + DSTStartDay - DS + 1 else DS := Pred (DSTStartWeek) * 7 + DSTStartDay - DS + 1 else (* Last week in month *) begin DS := DS + MonthDays [MS] - 1; if MS = 2 then Inc (DS, LeapDay); DS := DS mod 7; if DS < DSTStartDay then DS := DS + 7 - DSTStartDay else DS := DS - DSTStartDay; DS := MonthDays [MS] - DS; end; end; end else begin (* Julian day *) L := DSTStartDay; if (DSTStartSpecType = DSTJulian) then (* 0-based *) if (L + LeapDay <= 59) then Inc (L) else L := L + 1 - LeapDay; if L <= 31 then begin MS := 1; DS := L; end else if (L <= 59) or (DSTStartSpecType = DSTJulian) and (L - LeapDay <= 59) then begin MS := 2; DS := DSTStartDay - 31; end else begin MS := 3; while (MS < 12) and (MonthEnds [MS] > L) do Inc (MS); DS := L - MonthEnds [Pred (MS)]; end; end; if (DSTEndSpecType = DSTMonthWeekDay) or (DSTEndSpecType = DSTMonthDay) then begin ME := DSTEndMonth; if DSTEndSpecType = DSTMonthDay then DE := DSTEndDay else begin DE := FirstDay (DSTEndMonth); if (DSTEndWeek >= 1) and (DSTEndWeek <= 4) then if DSTEndDay < DE then DE := DSTEndWeek * 7 + DSTEndDay - DE + 1 else DE := Pred (DSTEndWeek) * 7 + DSTEndDay - DE + 1 else (* Last week in month *) begin DE := DE + MonthDays [ME] - 1; if ME = 2 then Inc (DE, LeapDay); DE := DE mod 7; if DE < DSTEndDay then DE := DE + 7 - DSTEndDay else DE := DE - DSTEndDay; DE := MonthDays [ME] - DE; end; end; end else begin (* Julian day *) L := DSTEndDay; if (DSTEndSpecType = DSTJulian) then (* 0-based *) if (L + LeapDay <= 59) then Inc (L) else L := L + 1 - LeapDay; if L <= 31 then begin ME := 1; DE := L; end else if (L <= 59) or (DSTEndSpecType = DSTJulian) and (L - LeapDay <= 59) then begin ME := 2; DE := DSTEndDay - 31; end else begin ME := 3; while (ME < 12) and (MonthEnds [ME] > L) do Inc (ME); DE := L - MonthEnds [Pred (ME)]; end; end; if Mo < MS then AfterDSTStart := false else if Mo > MS then AfterDSTStart := true else if D < DS then AfterDSTStart := false else if D > DS then AfterDSTStart := true else AfterDSTStart := Second > DSTStartSec; if Mo > ME then BeforeDSTEnd := false else if Mo < ME then BeforeDSTEnd := true else if D > DE then BeforeDSTEnd := false else if D < DE then BeforeDSTEnd := true else BeforeDSTEnd := Second < DSTEndSec; if AfterDSTStart and BeforeDSTEnd then TZSeconds := DSTOffset; end; end; procedure InitTZ; const TZEnvName = 'TZ'; EMXTZEnvName = 'EMXTZ'; var TZ, S: string; I, J: byte; Err: longint; GnuFmt: boolean; ADSTStartMonth: byte; ADSTStartWeek: shortint; ADSTStartDay: word; ADSTStartSec: cardinal; ADSTEndMonth: byte; ADSTEndWeek: shortint; ADSTEndDay: word; ADSTEndSec: cardinal; ADSTStartSpecType: DSTSpecType; ADSTEndSpecType: DSTSpecType; ADSTChangeSec: cardinal; function ParseOffset (OffStr: string): longint; (* Parse time offset given as [-|+]HH[:MI[:SS]] and return in seconds *) var TZShiftHH, TZShiftDir: shortint; TZShiftMI, TZShiftSS: byte; N1, N2: byte; begin TZShiftHH := 0; TZShiftMI := 0; TZShiftSS := 0; TZShiftDir := 1; N1 := 1; while (N1 <= Length (OffStr)) and (OffStr [N1] <> ':') do Inc (N1); Val (Copy (OffStr, 1, Pred (N1)), TZShiftHH, Err); if (Err = 0) and (TZShiftHH >= -24) and (TZShiftHH <= 23) then begin (* Normalize the hour offset to -12..11 if necessary *) if TZShiftHH > 11 then Dec (TZShiftHH, 24) else if TZShiftHH < -12 then Inc (TZShiftHH, 24); if TZShiftHH < 0 then TZShiftDir := -1; if (N1 <= Length (OffStr)) then begin N2 := Succ (N1); while (N2 <= Length (OffStr)) and (OffStr [N2] <> ':') do Inc (N2); Val (Copy (OffStr, Succ (N1), N2 - N1), TZShiftMI, Err); if (Err = 0) and (TZShiftMI <= 59) then begin if (N2 <= Length (OffStr)) then begin Val (Copy (OffStr, Succ (N2), Length (OffStr) - N2), TZShiftSS, Err); if (Err <> 0) or (TZShiftSS > 59) then TZShiftSS := 0; end end else TZShiftMI := 0; end; end else TZShiftHH := 0; ParseOffset := longint (TZShiftHH) * 3600 + TZShiftDir * (longint (TZShiftMI) * 60 + TZShiftSS); end; begin TZ := GetEnv (TZEnvName); if TZ = '' then TZ := GetEnv (EMXTZEnvName); if TZ <> '' then begin TZ := Upcase (TZ); (* Timezone name *) I := 1; while (I <= Length (TZ)) and (TZ [I] in ['A'..'Z']) do Inc (I); TZName := Copy (TZ, 1, Pred (I)); if I <= Length (TZ) then begin (* Timezone shift *) J := Succ (I); while (J <= Length (TZ)) and not (TZ [J] in ['A'..'Z']) do Inc (J); TZOffset := ParseOffset (Copy (TZ, I, J - I)); (* DST timezone name *) I := J; while (J <= Length (TZ)) and (TZ [J] in ['A'..'Z']) do Inc (J); if J > I then begin TZDSTName := Copy (TZ, I, J - I); (* DST timezone name provided; if equal to the standard timezone *) (* name then DSTOffset is set to be equal to TZOffset by default, *) (* otherwise it is set to TZOffset - 3600 seconds. *) if TZDSTName <> TZName then DSTOffset := -3600 + TZOffset else DSTOffset := TZOffset; end else begin TZDSTName := TZName; (* No DST timezone name provided => DSTOffset is equal to TZOffset *) DSTOffset := TZOffset; end; if J <= Length (TZ) then begin (* Check if DST offset is specified here; *) (* if not, default value set above is used. *) if TZ [J] <> ',' then begin I := J; Inc (J); while (J <= Length (TZ)) and (TZ [J] <> ',') do Inc (J); DSTOffset := ParseOffset (Copy (TZ, I, J - I)); end; if J < Length (TZ) then begin Inc (J); (* DST switching details *) case TZ [J] of 'M': begin (* Mmonth.week.dayofweek[/StartHour] *) ADSTStartSpecType := DSTMonthWeekDay; if J >= Length (TZ) then Exit; Inc (J); I := J; while (J <= Length (TZ)) and not (TZ [J] in ['.', ',', '/']) do Inc (J); if (J >= Length (TZ)) or (TZ [J] <> '.') then Exit; Val (Copy (TZ, I, J - I), ADSTStartMonth, Err); if (Err > 0) or (ADSTStartMonth > 12) then Exit; Inc (J); I := J; while (J <= Length (TZ)) and not (TZ [J] in ['.', ',', '/']) do Inc (J); if (J >= Length (TZ)) or (TZ [J] <> '.') then Exit; Val (Copy (TZ, I, J - I), ADSTStartWeek, Err); if (Err > 0) or (ADSTStartWeek < 1) or (ADSTStartWeek > 5) then Exit; Inc (J); I := J; while (J <= Length (TZ)) and not (TZ [J] in [',', '/']) do Inc (J); Val (Copy (TZ, I, J - I), ADSTStartDay, Err); if (Err > 0) or (ADSTStartDay < 0) or (ADSTStartDay > 6) or (J >= Length (TZ)) then Exit; if TZ [J] = '/' then begin Inc (J); I := J; while (J <= Length (TZ)) and (TZ [J] <> ',') do Inc (J); Val (Copy (TZ, I, J - I), ADSTStartSec, Err); if (Err > 0) or (ADSTStartSec > 86399) or (J >= Length (TZ)) then Exit else ADSTStartSec := ADSTStartSec * 3600; end else (* Use the preset default *) ADSTStartSec := DSTStartSec; Inc (J); end; 'J': begin (* Jjulianday[/StartHour] *) ADSTStartSpecType := DSTJulianX; if J >= Length (TZ) then Exit; Inc (J); I := J; while (J <= Length (TZ)) and not (TZ [J] in [',', '/']) do Inc (J); Val (Copy (TZ, I, J - I), ADSTStartDay, Err); if (Err > 0) or (ADSTStartDay = 0) or (ADSTStartDay > 365) or (J >= Length (TZ)) then Exit; if TZ [J] = '/' then begin Inc (J); I := J; while (J <= Length (TZ)) and (TZ [J] <> ',') do Inc (J); Val (Copy (TZ, I, J - I), ADSTStartSec, Err); if (Err > 0) or (ADSTStartSec > 86399) or (J >= Length (TZ)) then Exit else ADSTStartSec := ADSTStartSec * 3600; end else (* Use the preset default *) ADSTStartSec := DSTStartSec; Inc (J); end else begin (* Check the used format first - GNU libc / GCC / EMX expect *) (* "NameOffsetDstname[Dstoffset],Start[/StartHour],End[/EndHour]"; *) (* if more than one comma (',') is found, the following format is assumed: *) (* "NameOffsetDstname[Dstoffset],StartMonth,StartWeek,StartDay,StartSecond, *) (* EndMonth,EndWeek,EndDay,EndSecond,DSTDifference". *) I := J; while (J <= Length (TZ)) and (TZ [J] <> ',') do Inc (J); S := Copy (TZ, I, J - I); if J < Length (TZ) then begin Inc (J); I := J; while (J <= Length (TZ)) and (TZ [J] <> ',') do Inc (J); GnuFmt := J > Length (TZ); end else Exit; if GnuFmt then begin ADSTStartSpecType := DSTJulian; J := Pos ('/', S); if J = 0 then begin Val (S, ADSTStartDay, Err); if (Err > 0) or (ADSTStartDay > 365) then Exit; (* Use the preset default *) ADSTStartSec := DSTStartSec; end else begin if J = Length (S) then Exit; Val (Copy (S, 1, Pred (J)), ADSTStartDay, Err); if (Err > 0) or (ADSTStartDay > 365) then Exit; Val (Copy (S, Succ (J), Length (S) - J), ADSTStartSec, Err); if (Err > 0) or (ADSTStartSec > 86399) then Exit else ADSTStartSec := ADSTStartSec * 3600; end; J := I; end else begin Val (S, ADSTStartMonth, Err); if (Err > 0) or (ADSTStartMonth > 12) then Exit; Val (Copy (TZ, I, J - I), ADSTStartWeek, Err); if (Err > 0) or (ADSTStartWeek < -1) or (ADSTStartWeek > 5) or (J >= Length (TZ)) then Exit; Inc (J); I := J; while (J <= Length (TZ)) and (TZ [J] <> ',') do Inc (J); Val (Copy (TZ, I, J - I), ADSTStartDay, Err); if (DSTStartWeek = 0) then begin if (Err > 0) or (ADSTStartDay < 1) or (ADSTStartDay > 31) or (ADSTStartDay > 30) and (ADSTStartMonth in [4, 6, 9, 11]) or (ADSTStartMonth = 2) and (ADSTStartDay > 29) then Exit; ADSTStartSpecType := DSTMonthDay; end else begin if (Err > 0) or (ADSTStartDay < 0) or (ADSTStartDay > 6) then Exit; ADSTStartSpecType := DSTMonthWeekDay; end; if J >= Length (TZ) then Exit; Inc (J); I := J; while (J <= Length (TZ)) and (TZ [J] <> ',') do Inc (J); Val (Copy (TZ, I, J - I), ADSTStartSec, Err); if (Err > 0) or (ADSTStartSec > 86399) or (J >= Length (TZ)) then Exit; Inc (J); I := J; while (J <= Length (TZ)) and (TZ [J] <> ',') do Inc (J); Val (Copy (TZ, I, J - I), ADSTEndMonth, Err); if (Err > 0) or (ADSTEndMonth > 12) or (J >= Length (TZ)) then Exit; Inc (J); I := J; while (J <= Length (TZ)) and (TZ [J] <> ',') do Inc (J); Val (Copy (TZ, I, J - I), ADSTEndWeek, Err); if (Err > 0) or (ADSTEndWeek < -1) or (ADSTEndWeek > 5) or (J >= Length (TZ)) then Exit; Inc (J); I := J; while (J <= Length (TZ)) and (TZ [J] <> ',') do Inc (J); Val (Copy (TZ, I, J - I), ADSTEndDay, Err); if (DSTEndWeek = 0) then begin if (Err > 0) or (ADSTEndDay < 1) or (ADSTEndDay > 31) or (ADSTEndDay > 30) and (ADSTEndMonth in [4, 6, 9, 11]) or (ADSTEndMonth = 2) and (ADSTEndDay > 29) then Exit; ADSTEndSpecType := DSTMonthDay; end else begin if (Err > 0) or (ADSTEndDay < 0) or (ADSTEndDay > 6) then Exit; ADSTEndSpecType := DSTMonthWeekDay; end; if J >= Length (TZ) then Exit; Inc (J); I := J; while (J <= Length (TZ)) and (TZ [J] <> ',') do Inc (J); Val (Copy (TZ, I, J - I), ADSTEndSec, Err); if (Err > 0) or (ADSTEndSec > 86399) or (J >= Length (TZ)) then Exit; Val (Copy (TZ, Succ (J), Length (TZ) - J), ADSTChangeSec, Err); if (Err = 0) and (ADSTChangeSec < 86400) then begin (* Format complete, all checks successful => accept the parsed values. *) DSTStartMonth := ADSTStartMonth; DSTStartWeek := ADSTStartWeek; DSTStartDay := ADSTStartDay; DSTStartSec := ADSTStartSec; DSTEndMonth := ADSTEndMonth; DSTEndWeek := ADSTEndWeek; DSTEndDay := ADSTEndDay; DSTEndSec := ADSTEndSec; DSTStartSpecType := ADSTStartSpecType; DSTEndSpecType := ADSTEndSpecType; DSTOffset := TZOffset - ADSTChangeSec; end; (* Parsing finished *) Exit; end; end; end; (* GnuFmt - DST end specification *) if TZ [J] = 'M' then begin (* Mmonth.week.dayofweek *) ADSTEndSpecType := DSTMonthWeekDay; if J >= Length (TZ) then Exit; Inc (J); I := J; while (J <= Length (TZ)) and not (TZ [J] in ['.', ',', '/']) do Inc (J); if (J >= Length (TZ)) or (TZ [J] <> '.') then Exit; Val (Copy (TZ, I, J - I), ADSTEndMonth, Err); if (Err > 0) or (ADSTEndMonth > 12) then Exit; Inc (J); I := J; while (J <= Length (TZ)) and not (TZ [J] in ['.', ',', '/']) do Inc (J); if (J >= Length (TZ)) or (TZ [J] <> '.') then Exit; Val (Copy (TZ, I, J - I), ADSTEndWeek, Err); if (Err > 0) or (ADSTEndWeek < 1) or (ADSTEndWeek > 5) then Exit; Inc (J); I := J; while (J <= Length (TZ)) and (TZ [J] <> '/') do Inc (J); Val (Copy (TZ, I, J - I), ADSTEndDay, Err); if (Err > 0) or (ADSTEndDay < 0) or (ADSTEndDay > 6) then Exit; end else begin if TZ [J] = 'J' then begin (* Jjulianday *) if J = Length (TZ) then Exit; Inc (J); ADSTEndSpecType := DSTJulianX end else ADSTEndSpecType := DSTJulian; if J >= Length (TZ) then Exit; Inc (J); I := J; while (J <= Length (TZ)) and (TZ [J] <> '/') do Inc (J); Val (Copy (TZ, I, J - I), ADSTEndDay, Err); if (Err > 0) or (ADSTEndDay = 0) and (ADSTEndSpecType = DSTJulianX) or (ADSTEndDay > 365) then Exit; end; if (J <= Length (TZ)) and (TZ [J] = '/') then begin if J = Length (TZ) then Exit; Val (Copy (TZ, Succ (J), Length (TZ) - J), ADSTEndSec, Err); if (Err > 0) or (ADSTEndSec > 86399) then Exit else ADSTEndSec := ADSTEndSec * 3600; end else (* Use the preset default *) ADSTEndSec := DSTEndSec; (* Format complete, all checks successful => accept the parsed values. *) if ADSTStartSpecType = DSTMonthWeekDay then begin DSTStartMonth := ADSTStartMonth; DSTStartWeek := ADSTStartWeek; end; DSTStartDay := ADSTStartDay; DSTStartSec := ADSTStartSec; if ADSTStartSpecType = DSTMonthWeekDay then begin DSTEndMonth := ADSTEndMonth; DSTEndWeek := ADSTEndWeek; end; DSTEndDay := ADSTEndDay; DSTEndSec := ADSTEndSec; DSTStartSpecType := ADSTStartSpecType; DSTEndSpecType := ADSTEndSpecType; end; end else DSTOffset := -3600 + TZOffset; end; end; end; begin InitTZ; end. ./appsettings.pas0000644000175000017500000002645514576573021014231 0ustar anthonyanthony{ *************************************************************************** * * * This source is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This code is distributed in the hope that it will be useful, but * * WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * General Public License for more details. * * * * A copy of the GNU General Public License is available on the World * * Wide Web at . You can also * * obtain it by writing to the Free Software Foundation, * * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * * *************************************************************************** Author: Felipe Monteiro de Carvalho Abstract: Unit to control the custom configurations of the application } unit appsettings; { Time zone database files Firmware update files INI file } interface uses Classes, SysUtils, IniFiles; type { TConfigurations } TConfigurations = class(TObject) public {other settings as fields here} constructor Create; destructor Destroy; override; procedure WriteString(Section:String=''; Key:String=''; KeyValue:String=''); procedure WriteDeletKey(Section:String=''; Key:String=''); function ReadString(Section:String=''; Key:String=''; DefaultValue:String=''): String; procedure WriteBool(Section:String=''; Key:String=''; KeyValue:Boolean=False); function ReadBool(Section:String=''; Key:String=''; DefaultValue:Boolean=False): Boolean; procedure ReadSection(Section:String; var Strings: TStringList); procedure EraseSection(Section:String=''); procedure ReadSectionNames(SectionNameStrings:TStringList); end; var vConfigurations: TConfigurations; ConfigFilePath, DataDirectory, DataDirectoryAlternate, FirmwareDirectory, TZDirectory, LogsDirectory: String; MyFile: TMemIniFile; procedure LogsDirectoryReset(); function LogsDirectoryDefault(): string; implementation uses {$IFDEF Windows} //Windows, shlobj, SHFolder, {$ENDIF} {$ifdef Darwin} MacOSAll, {$endif} Unit1 , header_utils ; { TConfigurations } constructor TConfigurations.Create; {$ifdef Windows} var //ApplicationDataPath:Array[0..MaxPathLen] of Char; //Allocate memory ApplicationDataPath:Array[0..200] of Char; //Allocate memory begin { Get the path which defaults to: \Documents and Settings\All Users\Application Data same as C:\ProgramData } {There seems to be a problem with various versions of Windows 32/64 bit and the SHGetFolderPath CSIDL_COMMON_APPDATA commands/variables. https://stackoverflow.com/questions/18493484/shgetfolderpath-deprecated-what-is-alternative-to-retrieve-path-for-windows-fol See this link for possible solution using GetEnvironmentVariable https://wiki.lazarus.freepascal.org/Windows_Programming_Tips#Getting_special_folders_.28My_documents.2C_Desktop.2C_local_application_data.2C_etc.29 } { TODO : SHGetFolder CSIDL deprecated } SHGetFolderPath(0,CSIDL_COMMON_APPDATA,0,0,@ApplicationDataPath[0]); if DirectoryExists(ApplicationDataPath + '\Unihedron\') then begin DataDirectory:= ExpandFileName(ApplicationDataPath + '\Unihedron\'); end else begin DataDirectory:= ExpandFileName('.\'); //This directory end; ConfigFilePath:=ExpandFileName(DataDirectory + 'udm.ini'); {Restore setting if exists } LogsDirectory:=vConfigurations.ReadString('Directories','LogsDirectory'); if length(LogsDirectory)=0 then LogsDirectoryReset(); if not FileExists(DataDirectory+'changelog.txt') then DataDirectory:= ExpandFileName('.'+DirectorySeparator); {$endif} {$ifdef Linux} begin { Get this users configuration file.} ConfigFilePath := GetAppConfigFile(False); {Get DataDirectory. Look in this order: - "installed" location. - source/development location. - a user defined location. Note that; Running from LLDB uses the user home which is not the development location.} DataDirectoryAlternate:=vConfigurations.ReadString('Directories','DataDirectoryAlternate'); if DirectoryExists('/usr/share/udm') then DataDirectory:= '/usr/share/udm/' {Installed data directory.} else if DirectoryExists('./tzdatabase') then {Development location.} DataDirectory:= ExpandFileName('./') else if DirectoryExists(DataDirectoryAlternate) then DataDirectory:= ExpandFileName(DataDirectoryAlternate) //This directory (assumes development directory) else Writeln('Data directory with Time Zone database could not be found. You can put a DataDirectoryAlternate entry into the [Directories] section of the configfile.'); {Read setting if exists } LogsDirectory:=vConfigurations.ReadString('Directories','LogsDirectory'); if length(LogsDirectory)=0 then LogsDirectoryReset(); {Create logs directory if it does not exist} If Not DirectoryExists(LogsDirectory) then CreateDir (LogsDirectory); //If Not DirectoryExists(LogsDirectory) then // If Not CreateDir (LogsDirectory) Then // StatusMessage('Failed to create directory: '+LogsDirectory) // else // StatusMessage('Created LogsDirectory: '+LogsDirectory); {$endif} {$ifdef Darwin} var pathRef: CFURLRef; pathCFStr: CFStringRef; pathStr: shortstring; const BundleResourcesDirectory = '/Contents/Resources'; begin pathRef := CFBundleCopyBundleURL(CFBundleGetMainBundle()); pathCFStr := CFURLCopyFileSystemPath(pathRef, kCFURLPOSIXPathStyle); CFStringGetPascalString(pathCFStr, @pathStr, 255, CFStringGetSystemEncoding()); CFRelease(pathRef); CFRelease(pathCFStr); //StatusMessage(pathStr + BundleResourcesDirectory); //StatusMessage(GetUserDir); //StatusMessage(CreateDir(GetUserDir+'/Documents'));//In the odd case that Macs change and this directory does not already exist. CreateDir(GetUserDir+'/Documents');//In the odd case that Macs change and this directory does not already exist. //StatusMessage(CreateDir(GetUserDir+'/Documents/udm'));//Create a directory to store the configuration and log files CreateDir(GetUserDir+'/Documents/udm');//Create a directory to store the configuration and log files ConfigFilePath:= GetUserDir+'/Documents/udm/udm.cfg'; //CreateDir(ExpandFileName(GetAppConfigDir(False)+'..')); //Writeln(CreateDir(ExpandFileName(GetAppConfigDir(False)+'/..'))); //ConfigFilePath := GetAppConfigFile(False); //personal configuration file //LogsDirectory:= ExpandFileName(GetAppConfigDir(False)); { TODO : restore setting if exists } //LogsDirectoryReset(); {Restore setting if exists } LogsDirectory:=vConfigurations.ReadString('Directories','LogsDirectory'); if length(LogsDirectory)=0 then LogsDirectoryReset(); {Create logs directory if it does not exist} If Not DirectoryExists(LogsDirectory) then CreateDir (LogsDirectory); //If Not DirectoryExists(LogsDirectory) then // If Not CreateDir (LogsDirectory) Then // StatusMessage('Failed to create directory: '+LogsDirectory) // else // StatusMessage('Created LogsDirectory: '+LogsDirectory); DataDirectory := pathStr + BundleResourcesDirectory+'/'; if not FileExists(DataDirectory+'changelog.txt') then DataDirectory:= ExpandFileName('.'+DirectorySeparator); {$endif} if DirectoryExists(DataDirectory + 'firmware') then FirmwareDirectory:= ExpandFileName(DataDirectory + 'firmware' + DirectorySeparator) else FirmwareDirectory:= ExpandFileName('.'+DirectorySeparator+'firmware' + DirectorySeparator); if DirectoryExists(DataDirectory + 'tzdatabase') then TZDirectory:= ExpandFileName(DataDirectory + 'tzdatabase' + DirectorySeparator) else TZDirectory:= ExpandFileName('.'+DirectorySeparator+'tzdatabase' + DirectorySeparator); end; destructor TConfigurations.Destroy; begin WriteString(); inherited Destroy; end; procedure TConfigurations.WriteBool(Section:String=''; Key:String=''; KeyValue:Boolean=False); var MyFile: TIniFile; begin { Create file if it does not already exist. } MyFile := TIniFile.Create(ConfigFilePath); try { Write the information. } MyFile.WriteBool(Section, Key, KeyValue); finally MyFile.Free; end; end; function TConfigurations.ReadBool(Section:String=''; Key:String=''; DefaultValue:Boolean=False): Boolean; var MyFile: TIniFile; begin MyFile := TIniFile.Create(ConfigFilePath); try { Read the information. } Result := MyFile.ReadBool(Section,Key,DefaultValue); finally MyFile.Free; end; end; procedure TConfigurations.WriteString(Section:String=''; Key:String=''; KeyValue:String=''); var MyFile: TIniFile; begin { Create file if it does not already exist. } MyFile := TIniFile.Create(ConfigFilePath); try { Write the information. } MyFile.WriteString(Section, Key, KeyValue); finally MyFile.Free; end; end; procedure TConfigurations.WriteDeletKey(Section:String=''; Key:String=''); var MyFile: TIniFile; begin { Create file if it does not already exist. } MyFile := TIniFile.Create(ConfigFilePath); try { Delete the key. } MyFile.DeleteKey(Section, Key); finally MyFile.Free; end; end; procedure TConfigurations.EraseSection(Section:String=''); var MyFile: TIniFile; begin MyFile := TIniFile.Create(ConfigFilePath); try { Erase the section. } MyFile.EraseSection(Section); finally MyFile.Free; end; end; function TConfigurations.ReadString(Section:String=''; Key:String=''; DefaultValue:String=''): String; var MyFile: TIniFile; begin MyFile := TIniFile.Create(ConfigFilePath); try { Read the information. } Result := MyFile.ReadString(Section,Key,DefaultValue); finally MyFile.Free; end; end; { Returns all the section names found in the configuration file to the referenced stringlist. } procedure TConfigurations.ReadSectionNames(SectionNameStrings: TStringList); begin MyFile := TMemIniFile.Create(ConfigFilePath); //does this need to be freed try MyFile.ReadSections(SectionNameStrings); finally MyFile.Free; end; end; procedure TConfigurations.ReadSection(Section:String; var Strings: TStringList); //Reads all the keys in one section var MyFile: TMemIniFile; begin MyFile := TMemIniFile.Create(ConfigFilePath); try MyFile.ReadSection(Section,Strings); finally MyFile.Free; end; end; procedure LogsDirectoryReset(); begin appsettings.LogsDirectory:= RemoveMultiSlash(LogsDirectoryDefault()); end; function LogsDirectoryDefault(): string; begin {$ifdef Windows} LogsDirectoryDefault:= RemoveMultiSlash(ExpandFileName(DataDirectory + 'logs' + DirectorySeparator)); {$endif} {$ifdef Linux} LogsDirectoryDefault:= ExpandFileName(GetAppConfigDir(False)); {$endif} {$ifdef Darwin} LogsDirectoryDefault:= GetUserDir+'/Documents/udm/'; {$endif} end; initialization vConfigurations := TConfigurations.Create; finalization FreeAndNil(vConfigurations); end. ./imapsend.pas0000644000175000017500000006377514576573021013476 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 002.005.003 | |==============================================================================| | Content: IMAP4rev1 client | |==============================================================================| | Copyright (c)1999-2012, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2001-2012. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@abstract(IMAP4 rev1 protocol client) Used RFC: RFC-2060, RFC-2595 } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} {$IFDEF UNICODE} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$ENDIF} unit imapsend; interface uses SysUtils, Classes, blcksock, synautil; const cIMAPProtocol = '143'; type {:@abstract(Implementation of IMAP4 protocol.) Note: Are you missing properties for setting Username and Password? Look to parent @link(TSynaClient) object! Are you missing properties for specify server address and port? Look to parent @link(TSynaClient) too!} TIMAPSend = class(TSynaClient) protected FSock: TTCPBlockSocket; FTagCommand: integer; FResultString: string; FFullResult: TStringList; FIMAPcap: TStringList; FAuthDone: Boolean; FSelectedFolder: string; FSelectedCount: integer; FSelectedRecent: integer; FSelectedUIDvalidity: integer; FUID: Boolean; FAutoTLS: Boolean; FFullSSL: Boolean; function ReadResult: string; function AuthLogin: Boolean; function Connect: Boolean; procedure ParseMess(Value:TStrings); procedure ParseFolderList(Value:TStrings); procedure ParseSelect; procedure ParseSearch(Value:TStrings); procedure ProcessLiterals; public constructor Create; destructor Destroy; override; {:By this function you can call any IMAP command. Result of this command is in adequate properties.} function IMAPcommand(Value: string): string; {:By this function you can call any IMAP command what need upload any data. Result of this command is in adequate properties.} function IMAPuploadCommand(Value: string; const Data:TStrings): string; {:Call CAPABILITY command and fill IMAPcap property by new values.} function Capability: Boolean; {:Connect to IMAP server and do login to this server. This command begin session.} function Login: Boolean; {:Disconnect from IMAP server and terminate session session. If exists some deleted and non-purged messages, these messages are not deleted!} function Logout: Boolean; {:Do NOOP. It is for prevent disconnect by timeout.} function NoOp: Boolean; {:Lists folder names. You may specify level of listing. If you specify FromFolder as empty string, return is all folders in system.} function List(FromFolder: string; const FolderList: TStrings): Boolean; {:Lists folder names what match search criteria. You may specify level of listing. If you specify FromFolder as empty string, return is all folders in system.} function ListSearch(FromFolder, Search: string; const FolderList: TStrings): Boolean; {:Lists subscribed folder names. You may specify level of listing. If you specify FromFolder as empty string, return is all subscribed folders in system.} function ListSubscribed(FromFolder: string; const FolderList: TStrings): Boolean; {:Lists subscribed folder names what matching search criteria. You may specify level of listing. If you specify FromFolder as empty string, return is all subscribed folders in system.} function ListSearchSubscribed(FromFolder, Search: string; const FolderList: TStrings): Boolean; {:Create a new folder.} function CreateFolder(FolderName: string): Boolean; {:Delete a folder.} function DeleteFolder(FolderName: string): Boolean; {:Rename folder names.} function RenameFolder(FolderName, NewFolderName: string): Boolean; {:Subscribe folder.} function SubscribeFolder(FolderName: string): Boolean; {:Unsubscribe folder.} function UnsubscribeFolder(FolderName: string): Boolean; {:Select folder.} function SelectFolder(FolderName: string): Boolean; {:Select folder, but only for reading. Any changes are not allowed!} function SelectROFolder(FolderName: string): Boolean; {:Close a folder. (end of Selected state)} function CloseFolder: Boolean; {:Ask for given status of folder. I.e. if you specify as value 'UNSEEN', result is number of unseen messages in folder. For another status indentificator check IMAP documentation and documentation of your IMAP server (each IMAP server can have their own statuses.)} function StatusFolder(FolderName, Value: string): integer; {:Hardly delete all messages marked as 'deleted' in current selected folder.} function ExpungeFolder: Boolean; {:Touch to folder. (use as update status of folder, etc.)} function CheckFolder: Boolean; {:Append given message to specified folder.} function AppendMess(ToFolder: string; const Mess: TStrings): Boolean; {:'Delete' message from current selected folder. It mark message as Deleted. Real deleting will be done after sucessfull @link(CloseFolder) or @link(ExpungeFolder)} function DeleteMess(MessID: integer): boolean; {:Get full message from specified message in selected folder.} function FetchMess(MessID: integer; const Mess: TStrings): Boolean; {:Get message headers only from specified message in selected folder.} function FetchHeader(MessID: integer; const Headers: TStrings): Boolean; {:Return message size of specified message from current selected folder.} function MessageSize(MessID: integer): integer; {:Copy message from current selected folder to another folder.} function CopyMess(MessID: integer; ToFolder: string): Boolean; {:Return message numbers from currently selected folder as result of searching. Search criteria is very complex language (see to IMAP specification) similar to SQL (but not same syntax!).} function SearchMess(Criteria: string; const FoundMess: TStrings): Boolean; {:Sets flags of message from current selected folder.} function SetFlagsMess(MessID: integer; Flags: string): Boolean; {:Gets flags of message from current selected folder.} function GetFlagsMess(MessID: integer; var Flags: string): Boolean; {:Add flags to message's flags.} function AddFlagsMess(MessID: integer; Flags: string): Boolean; {:Remove flags from message's flags.} function DelFlagsMess(MessID: integer; Flags: string): Boolean; {:Call STARTTLS command for upgrade connection to SSL/TLS mode.} function StartTLS: Boolean; {:return UID of requested message ID.} function GetUID(MessID: integer; var UID : Integer): Boolean; {:Try to find given capabily in capabilty string returned from IMAP server.} function FindCap(const Value: string): string; published {:Status line with result of last operation.} property ResultString: string read FResultString; {:Full result of last IMAP operation.} property FullResult: TStringList read FFullResult; {:List of server capabilites.} property IMAPcap: TStringList read FIMAPcap; {:Authorization is successful done.} property AuthDone: Boolean read FAuthDone; {:Turn on or off usage of UID (unicate identificator) of messages instead only sequence numbers.} property UID: Boolean read FUID Write FUID; {:Name of currently selected folder.} property SelectedFolder: string read FSelectedFolder; {:Count of messages in currently selected folder.} property SelectedCount: integer read FSelectedCount; {:Count of not-visited messages in currently selected folder.} property SelectedRecent: integer read FSelectedRecent; {:This number with name of folder is unique indentificator of folder. (If someone delete folder and next create new folder with exactly same name of folder, this number is must be different!)} property SelectedUIDvalidity: integer read FSelectedUIDvalidity; {:If is set to true, then upgrade to SSL/TLS mode if remote server support it.} property AutoTLS: Boolean read FAutoTLS Write FAutoTLS; {:SSL/TLS mode is used from first contact to server. Servers with full SSL/TLS mode usualy using non-standard TCP port!} property FullSSL: Boolean read FFullSSL Write FFullSSL; {:Socket object used for TCP/IP operation. Good for seting OnStatus hook, etc.} property Sock: TTCPBlockSocket read FSock; end; implementation constructor TIMAPSend.Create; begin inherited Create; FFullResult := TStringList.Create; FIMAPcap := TStringList.Create; FSock := TTCPBlockSocket.Create; FSock.Owner := self; FSock.ConvertLineEnd := True; FSock.SizeRecvBuffer := 32768; FSock.SizeSendBuffer := 32768; FTimeout := 60000; FTargetPort := cIMAPProtocol; FTagCommand := 0; FSelectedFolder := ''; FSelectedCount := 0; FSelectedRecent := 0; FSelectedUIDvalidity := 0; FUID := False; FAutoTLS := False; FFullSSL := False; end; destructor TIMAPSend.Destroy; begin FSock.Free; FIMAPcap.Free; FFullResult.Free; inherited Destroy; end; function TIMAPSend.ReadResult: string; var s: string; x, l: integer; begin Result := ''; FFullResult.Clear; FResultString := ''; repeat s := FSock.RecvString(FTimeout); if Pos('S' + IntToStr(FTagCommand) + ' ', s) = 1 then begin FResultString := s; break; end else FFullResult.Add(s); if (s <> '') and (s[Length(s)]='}') then begin s := Copy(s, 1, Length(s) - 1); x := RPos('{', s); s := Copy(s, x + 1, Length(s) - x); l := StrToIntDef(s, -1); if l <> -1 then begin s := FSock.RecvBufferStr(l, FTimeout); FFullResult.Add(s); end; end; until FSock.LastError <> 0; s := Trim(separateright(FResultString, ' ')); Result:=uppercase(Trim(separateleft(s, ' '))); end; procedure TIMAPSend.ProcessLiterals; var l: TStringList; n, x: integer; b: integer; s: string; begin l := TStringList.Create; try l.Assign(FFullResult); FFullResult.Clear; b := 0; for n := 0 to l.Count - 1 do begin s := l[n]; if b > 0 then begin FFullResult[FFullresult.Count - 1] := FFullResult[FFullresult.Count - 1] + s; inc(b); if b > 2 then b := 0; end else begin if (s <> '') and (s[Length(s)]='}') then begin x := RPos('{', s); Delete(s, x, Length(s) - x + 1); b := 1; end else b := 0; FFullResult.Add(s); end; end; finally l.Free; end; end; function TIMAPSend.IMAPcommand(Value: string): string; begin Inc(FTagCommand); FSock.SendString('S' + IntToStr(FTagCommand) + ' ' + Value + CRLF); Result := ReadResult; end; function TIMAPSend.IMAPuploadCommand(Value: string; const Data:TStrings): string; var l: integer; begin Inc(FTagCommand); l := Length(Data.Text); FSock.SendString('S' + IntToStr(FTagCommand) + ' ' + Value + ' {'+ IntToStr(l) + '}' + CRLF); FSock.RecvString(FTimeout); FSock.SendString(Data.Text + CRLF); Result := ReadResult; end; procedure TIMAPSend.ParseMess(Value:TStrings); var n: integer; begin Value.Clear; for n := 0 to FFullResult.Count - 2 do if (length(FFullResult[n]) > 0) and (FFullResult[n][Length(FFullResult[n])] = '}') then begin Value.Text := FFullResult[n + 1]; Break; end; end; procedure TIMAPSend.ParseFolderList(Value:TStrings); var n, x: integer; s: string; begin ProcessLiterals; Value.Clear; for n := 0 to FFullResult.Count - 1 do begin s := FFullResult[n]; if (s <> '') and (Pos('\NOSELECT', UpperCase(s)) = 0) then begin if s[Length(s)] = '"' then begin Delete(s, Length(s), 1); x := RPos('"', s); end else x := RPos(' ', s); if (x > 0) then Value.Add(Copy(s, x + 1, Length(s) - x)); end; end; end; procedure TIMAPSend.ParseSelect; var n: integer; s, t: string; begin ProcessLiterals; FSelectedCount := 0; FSelectedRecent := 0; FSelectedUIDvalidity := 0; for n := 0 to FFullResult.Count - 1 do begin s := uppercase(FFullResult[n]); if Pos(' EXISTS', s) > 0 then begin t := Trim(separateleft(s, ' EXISTS')); t := Trim(separateright(t, '* ')); FSelectedCount := StrToIntDef(t, 0); end; if Pos(' RECENT', s) > 0 then begin t := Trim(separateleft(s, ' RECENT')); t := Trim(separateright(t, '* ')); FSelectedRecent := StrToIntDef(t, 0); end; if Pos('UIDVALIDITY', s) > 0 then begin t := Trim(separateright(s, 'UIDVALIDITY ')); t := Trim(separateleft(t, ']')); FSelectedUIDvalidity := StrToIntDef(t, 0); end; end; end; procedure TIMAPSend.ParseSearch(Value:TStrings); var n: integer; s: string; begin ProcessLiterals; Value.Clear; for n := 0 to FFullResult.Count - 1 do begin s := uppercase(FFullResult[n]); if Pos('* SEARCH', s) = 1 then begin s := Trim(SeparateRight(s, '* SEARCH')); while s <> '' do Value.Add(Fetch(s, ' ')); end; end; end; function TIMAPSend.FindCap(const Value: string): string; var n: Integer; s: string; begin s := UpperCase(Value); Result := ''; for n := 0 to FIMAPcap.Count - 1 do if Pos(s, UpperCase(FIMAPcap[n])) = 1 then begin Result := FIMAPcap[n]; Break; end; end; function TIMAPSend.AuthLogin: Boolean; begin Result := IMAPcommand('LOGIN "' + FUsername + '" "' + FPassword + '"') = 'OK'; end; function TIMAPSend.Connect: Boolean; begin FSock.CloseSocket; FSock.Bind(FIPInterface, cAnyPort); if FSock.LastError = 0 then FSock.Connect(FTargetHost, FTargetPort); if FSock.LastError = 0 then if FFullSSL then FSock.SSLDoConnect; Result := FSock.LastError = 0; end; function TIMAPSend.Capability: Boolean; var n: Integer; s, t: string; begin Result := False; FIMAPcap.Clear; s := IMAPcommand('CAPABILITY'); if s = 'OK' then begin ProcessLiterals; for n := 0 to FFullResult.Count - 1 do if Pos('* CAPABILITY ', FFullResult[n]) = 1 then begin s := Trim(SeparateRight(FFullResult[n], '* CAPABILITY ')); while not (s = '') do begin t := Trim(separateleft(s, ' ')); s := Trim(separateright(s, ' ')); if s = t then s := ''; FIMAPcap.Add(t); end; end; Result := True; end; end; function TIMAPSend.Login: Boolean; var s: string; begin FSelectedFolder := ''; FSelectedCount := 0; FSelectedRecent := 0; FSelectedUIDvalidity := 0; Result := False; FAuthDone := False; if not Connect then Exit; s := FSock.RecvString(FTimeout); if Pos('* PREAUTH', s) = 1 then FAuthDone := True else if Pos('* OK', s) = 1 then FAuthDone := False else Exit; if Capability then begin if Findcap('IMAP4rev1') = '' then Exit; if FAutoTLS and (Findcap('STARTTLS') <> '') then if StartTLS then Capability; end; Result := AuthLogin; end; function TIMAPSend.Logout: Boolean; begin Result := IMAPcommand('LOGOUT') = 'OK'; FSelectedFolder := ''; FSock.CloseSocket; end; function TIMAPSend.NoOp: Boolean; begin Result := IMAPcommand('NOOP') = 'OK'; end; function TIMAPSend.List(FromFolder: string; const FolderList: TStrings): Boolean; begin Result := IMAPcommand('LIST "' + FromFolder + '" *') = 'OK'; ParseFolderList(FolderList); end; function TIMAPSend.ListSearch(FromFolder, Search: string; const FolderList: TStrings): Boolean; begin Result := IMAPcommand('LIST "' + FromFolder + '" "' + Search +'"') = 'OK'; ParseFolderList(FolderList); end; function TIMAPSend.ListSubscribed(FromFolder: string; const FolderList: TStrings): Boolean; begin Result := IMAPcommand('LSUB "' + FromFolder + '" *') = 'OK'; ParseFolderList(FolderList); end; function TIMAPSend.ListSearchSubscribed(FromFolder, Search: string; const FolderList: TStrings): Boolean; begin Result := IMAPcommand('LSUB "' + FromFolder + '" "' + Search +'"') = 'OK'; ParseFolderList(FolderList); end; function TIMAPSend.CreateFolder(FolderName: string): Boolean; begin Result := IMAPcommand('CREATE "' + FolderName + '"') = 'OK'; end; function TIMAPSend.DeleteFolder(FolderName: string): Boolean; begin Result := IMAPcommand('DELETE "' + FolderName + '"') = 'OK'; end; function TIMAPSend.RenameFolder(FolderName, NewFolderName: string): Boolean; begin Result := IMAPcommand('RENAME "' + FolderName + '" "' + NewFolderName + '"') = 'OK'; end; function TIMAPSend.SubscribeFolder(FolderName: string): Boolean; begin Result := IMAPcommand('SUBSCRIBE "' + FolderName + '"') = 'OK'; end; function TIMAPSend.UnsubscribeFolder(FolderName: string): Boolean; begin Result := IMAPcommand('UNSUBSCRIBE "' + FolderName + '"') = 'OK'; end; function TIMAPSend.SelectFolder(FolderName: string): Boolean; begin Result := IMAPcommand('SELECT "' + FolderName + '"') = 'OK'; FSelectedFolder := FolderName; ParseSelect; end; function TIMAPSend.SelectROFolder(FolderName: string): Boolean; begin Result := IMAPcommand('EXAMINE "' + FolderName + '"') = 'OK'; FSelectedFolder := FolderName; ParseSelect; end; function TIMAPSend.CloseFolder: Boolean; begin Result := IMAPcommand('CLOSE') = 'OK'; FSelectedFolder := ''; end; function TIMAPSend.StatusFolder(FolderName, Value: string): integer; var n: integer; s, t: string; begin Result := -1; Value := Uppercase(Value); if IMAPcommand('STATUS "' + FolderName + '" (' + Value + ')' ) = 'OK' then begin ProcessLiterals; for n := 0 to FFullResult.Count - 1 do begin s := FFullResult[n]; // s := UpperCase(FFullResult[n]); if (Pos('* ', s) = 1) and (Pos(FolderName, s) >= 1) and (Pos(Value, s) > 0 ) then begin t := SeparateRight(s, Value); t := SeparateLeft(t, ')'); t := trim(t); Result := StrToIntDef(t, -1); Break; end; end; end; end; function TIMAPSend.ExpungeFolder: Boolean; begin Result := IMAPcommand('EXPUNGE') = 'OK'; end; function TIMAPSend.CheckFolder: Boolean; begin Result := IMAPcommand('CHECK') = 'OK'; end; function TIMAPSend.AppendMess(ToFolder: string; const Mess: TStrings): Boolean; begin Result := IMAPuploadCommand('APPEND "' + ToFolder + '"', Mess) = 'OK'; end; function TIMAPSend.DeleteMess(MessID: integer): boolean; var s: string; begin s := 'STORE ' + IntToStr(MessID) + ' +FLAGS.SILENT (\Deleted)'; if FUID then s := 'UID ' + s; Result := IMAPcommand(s) = 'OK'; end; function TIMAPSend.FetchMess(MessID: integer; const Mess: TStrings): Boolean; var s: string; begin s := 'FETCH ' + IntToStr(MessID) + ' (RFC822)'; if FUID then s := 'UID ' + s; Result := IMAPcommand(s) = 'OK'; ParseMess(Mess); end; function TIMAPSend.FetchHeader(MessID: integer; const Headers: TStrings): Boolean; var s: string; begin s := 'FETCH ' + IntToStr(MessID) + ' (RFC822.HEADER)'; if FUID then s := 'UID ' + s; Result := IMAPcommand(s) = 'OK'; ParseMess(Headers); end; function TIMAPSend.MessageSize(MessID: integer): integer; var n: integer; s, t: string; begin Result := -1; s := 'FETCH ' + IntToStr(MessID) + ' (RFC822.SIZE)'; if FUID then s := 'UID ' + s; if IMAPcommand(s) = 'OK' then begin ProcessLiterals; for n := 0 to FFullResult.Count - 1 do begin s := UpperCase(FFullResult[n]); if (Pos('* ', s) = 1) and (Pos('RFC822.SIZE', s) > 0 ) then begin t := SeparateRight(s, 'RFC822.SIZE '); t := Trim(SeparateLeft(t, ')')); t := Trim(SeparateLeft(t, ' ')); Result := StrToIntDef(t, -1); Break; end; end; end; end; function TIMAPSend.CopyMess(MessID: integer; ToFolder: string): Boolean; var s: string; begin s := 'COPY ' + IntToStr(MessID) + ' "' + ToFolder + '"'; if FUID then s := 'UID ' + s; Result := IMAPcommand(s) = 'OK'; end; function TIMAPSend.SearchMess(Criteria: string; const FoundMess: TStrings): Boolean; var s: string; begin s := 'SEARCH ' + Criteria; if FUID then s := 'UID ' + s; Result := IMAPcommand(s) = 'OK'; ParseSearch(FoundMess); end; function TIMAPSend.SetFlagsMess(MessID: integer; Flags: string): Boolean; var s: string; begin s := 'STORE ' + IntToStr(MessID) + ' FLAGS.SILENT (' + Flags + ')'; if FUID then s := 'UID ' + s; Result := IMAPcommand(s) = 'OK'; end; function TIMAPSend.AddFlagsMess(MessID: integer; Flags: string): Boolean; var s: string; begin s := 'STORE ' + IntToStr(MessID) + ' +FLAGS.SILENT (' + Flags + ')'; if FUID then s := 'UID ' + s; Result := IMAPcommand(s) = 'OK'; end; function TIMAPSend.DelFlagsMess(MessID: integer; Flags: string): Boolean; var s: string; begin s := 'STORE ' + IntToStr(MessID) + ' -FLAGS.SILENT (' + Flags + ')'; if FUID then s := 'UID ' + s; Result := IMAPcommand(s) = 'OK'; end; function TIMAPSend.GetFlagsMess(MessID: integer; var Flags: string): Boolean; var s: string; n: integer; begin Flags := ''; s := 'FETCH ' + IntToStr(MessID) + ' (FLAGS)'; if FUID then s := 'UID ' + s; Result := IMAPcommand(s) = 'OK'; ProcessLiterals; for n := 0 to FFullResult.Count - 1 do begin s := uppercase(FFullResult[n]); if (Pos('* ', s) = 1) and (Pos('FLAGS', s) > 0 ) then begin s := SeparateRight(s, 'FLAGS'); s := Separateright(s, '('); Flags := Trim(SeparateLeft(s, ')')); end; end; end; function TIMAPSend.StartTLS: Boolean; begin Result := False; if FindCap('STARTTLS') <> '' then begin if IMAPcommand('STARTTLS') = 'OK' then begin Fsock.SSLDoConnect; Result := FSock.LastError = 0; end; end; end; //Paul Buskermolen function TIMAPSend.GetUID(MessID: integer; var UID : Integer): boolean; var s, sUid: string; n: integer; begin sUID := ''; s := 'FETCH ' + IntToStr(MessID) + ' UID'; Result := IMAPcommand(s) = 'OK'; ProcessLiterals; for n := 0 to FFullResult.Count - 1 do begin s := uppercase(FFullResult[n]); if Pos('FETCH (UID', s) >= 1 then begin s := Separateright(s, '(UID '); sUID := Trim(SeparateLeft(s, ')')); end; end; UID := StrToIntDef(sUID, 0); end; {==============================================================================} end. ./ssdotnet.pas0000644000175000017500000010640514576573021013525 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 001.000.002 | |==============================================================================| | Content: Socket Independent Platform Layer - .NET definition include | |==============================================================================| | Copyright (c)2004, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2004. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@exclude} {$IFDEF CIL} interface uses SyncObjs, SysUtils, Classes, System.Net, System.Net.Sockets; const DLLStackName = ''; WinsockLevel = $0202; function InitSocketInterface(stack: string): Boolean; function DestroySocketInterface: Boolean; type u_char = Char; u_short = Word; u_int = Integer; u_long = Longint; pu_long = ^u_long; pu_short = ^u_short; PSockAddr = IPEndPoint; DWORD = integer; ULong = cardinal; TMemory = Array of byte; TLinger = LingerOption; TSocket = socket; TAddrFamily = AddressFamily; const WSADESCRIPTION_LEN = 256; WSASYS_STATUS_LEN = 128; type PWSAData = ^TWSAData; TWSAData = packed record wVersion: Word; wHighVersion: Word; szDescription: array[0..WSADESCRIPTION_LEN] of Char; szSystemStatus: array[0..WSASYS_STATUS_LEN] of Char; iMaxSockets: Word; iMaxUdpDg: Word; // lpVendorInfo: PChar; end; const MSG_NOSIGNAL = 0; INVALID_SOCKET = nil; AF_UNSPEC = AddressFamily.Unspecified; AF_INET = AddressFamily.InterNetwork; AF_INET6 = AddressFamily.InterNetworkV6; SOCKET_ERROR = integer(-1); FIONREAD = integer($4004667f); FIONBIO = integer($8004667e); FIOASYNC = integer($8004667d); SOMAXCONN = integer($7fffffff); IPPROTO_IP = ProtocolType.IP; IPPROTO_ICMP = ProtocolType.Icmp; IPPROTO_IGMP = ProtocolType.Igmp; IPPROTO_TCP = ProtocolType.Tcp; IPPROTO_UDP = ProtocolType.Udp; IPPROTO_RAW = ProtocolType.Raw; IPPROTO_IPV6 = ProtocolType.IPV6; // IPPROTO_ICMPV6 = ProtocolType.Icmp; //?? SOCK_STREAM = SocketType.Stream; SOCK_DGRAM = SocketType.Dgram; SOCK_RAW = SocketType.Raw; SOCK_RDM = SocketType.Rdm; SOCK_SEQPACKET = SocketType.Seqpacket; SOL_SOCKET = SocketOptionLevel.Socket; SOL_IP = SocketOptionLevel.Ip; IP_OPTIONS = SocketOptionName.IPOptions; IP_HDRINCL = SocketOptionName.HeaderIncluded; IP_TOS = SocketOptionName.TypeOfService; { set/get IP Type Of Service } IP_TTL = SocketOptionName.IpTimeToLive; { set/get IP Time To Live } IP_MULTICAST_IF = SocketOptionName.MulticastInterface; { set/get IP multicast interface } IP_MULTICAST_TTL = SocketOptionName.MulticastTimeToLive; { set/get IP multicast timetolive } IP_MULTICAST_LOOP = SocketOptionName.MulticastLoopback; { set/get IP multicast loopback } IP_ADD_MEMBERSHIP = SocketOptionName.AddMembership; { add an IP group membership } IP_DROP_MEMBERSHIP = SocketOptionName.DropMembership; { drop an IP group membership } IP_DONTFRAGMENT = SocketOptionName.DontFragment; { set/get IP Don't Fragment flag } IPV6_UNICAST_HOPS = 8; // TTL IPV6_MULTICAST_IF = 9; // set/get IP multicast i/f IPV6_MULTICAST_HOPS = 10; // set/get IP multicast ttl IPV6_MULTICAST_LOOP = 11; // set/get IP multicast loopback IPV6_JOIN_GROUP = 12; // add an IP group membership IPV6_LEAVE_GROUP = 13; // drop an IP group membership SO_DEBUG = SocketOptionName.Debug; { turn on debugging info recording } SO_ACCEPTCONN = SocketOptionName.AcceptConnection; { socket has had listen() } SO_REUSEADDR = SocketOptionName.ReuseAddress; { allow local address reuse } SO_KEEPALIVE = SocketOptionName.KeepAlive; { keep connections alive } SO_DONTROUTE = SocketOptionName.DontRoute; { just use interface addresses } SO_BROADCAST = SocketOptionName.Broadcast; { permit sending of broadcast msgs } SO_USELOOPBACK = SocketOptionName.UseLoopback; { bypass hardware when possible } SO_LINGER = SocketOptionName.Linger; { linger on close if data present } SO_OOBINLINE = SocketOptionName.OutOfBandInline; { leave received OOB data in line } SO_DONTLINGER = SocketOptionName.DontLinger; { Additional options. } SO_SNDBUF = SocketOptionName.SendBuffer; { send buffer size } SO_RCVBUF = SocketOptionName.ReceiveBuffer; { receive buffer size } SO_SNDLOWAT = SocketOptionName.SendLowWater; { send low-water mark } SO_RCVLOWAT = SocketOptionName.ReceiveLowWater; { receive low-water mark } SO_SNDTIMEO = SocketOptionName.SendTimeout; { send timeout } SO_RCVTIMEO = SocketOptionName.ReceiveTimeout; { receive timeout } SO_ERROR = SocketOptionName.Error; { get error status and clear } SO_TYPE = SocketOptionName.Type; { get socket type } { WinSock 2 extension -- new options } // SO_GROUP_ID = $2001; { ID of a socket group} // SO_GROUP_PRIORITY = $2002; { the relative priority within a group} // SO_MAX_MSG_SIZE = $2003; { maximum message size } // SO_PROTOCOL_INFOA = $2004; { WSAPROTOCOL_INFOA structure } // SO_PROTOCOL_INFOW = $2005; { WSAPROTOCOL_INFOW structure } // SO_PROTOCOL_INFO = SO_PROTOCOL_INFOA; // PVD_CONFIG = $3001; {configuration info for service provider } { Option for opening sockets for synchronous access. } // SO_OPENTYPE = $7008; // SO_SYNCHRONOUS_ALERT = $10; // SO_SYNCHRONOUS_NONALERT = $20; { Other NT-specific options. } // SO_MAXDG = $7009; // SO_MAXPATHDG = $700A; // SO_UPDATE_ACCEPT_CONTEXT = $700B; // SO_CONNECT_TIME = $700C; { All Windows Sockets error constants are biased by WSABASEERR from the "normal" } WSABASEERR = 10000; { Windows Sockets definitions of regular Microsoft C error constants } WSAEINTR = (WSABASEERR+4); WSAEBADF = (WSABASEERR+9); WSAEACCES = (WSABASEERR+13); WSAEFAULT = (WSABASEERR+14); WSAEINVAL = (WSABASEERR+22); WSAEMFILE = (WSABASEERR+24); { Windows Sockets definitions of regular Berkeley error constants } WSAEWOULDBLOCK = (WSABASEERR+35); WSAEINPROGRESS = (WSABASEERR+36); WSAEALREADY = (WSABASEERR+37); WSAENOTSOCK = (WSABASEERR+38); WSAEDESTADDRREQ = (WSABASEERR+39); WSAEMSGSIZE = (WSABASEERR+40); WSAEPROTOTYPE = (WSABASEERR+41); WSAENOPROTOOPT = (WSABASEERR+42); WSAEPROTONOSUPPORT = (WSABASEERR+43); WSAESOCKTNOSUPPORT = (WSABASEERR+44); WSAEOPNOTSUPP = (WSABASEERR+45); WSAEPFNOSUPPORT = (WSABASEERR+46); WSAEAFNOSUPPORT = (WSABASEERR+47); WSAEADDRINUSE = (WSABASEERR+48); WSAEADDRNOTAVAIL = (WSABASEERR+49); WSAENETDOWN = (WSABASEERR+50); WSAENETUNREACH = (WSABASEERR+51); WSAENETRESET = (WSABASEERR+52); WSAECONNABORTED = (WSABASEERR+53); WSAECONNRESET = (WSABASEERR+54); WSAENOBUFS = (WSABASEERR+55); WSAEISCONN = (WSABASEERR+56); WSAENOTCONN = (WSABASEERR+57); WSAESHUTDOWN = (WSABASEERR+58); WSAETOOMANYREFS = (WSABASEERR+59); WSAETIMEDOUT = (WSABASEERR+60); WSAECONNREFUSED = (WSABASEERR+61); WSAELOOP = (WSABASEERR+62); WSAENAMETOOLONG = (WSABASEERR+63); WSAEHOSTDOWN = (WSABASEERR+64); WSAEHOSTUNREACH = (WSABASEERR+65); WSAENOTEMPTY = (WSABASEERR+66); WSAEPROCLIM = (WSABASEERR+67); WSAEUSERS = (WSABASEERR+68); WSAEDQUOT = (WSABASEERR+69); WSAESTALE = (WSABASEERR+70); WSAEREMOTE = (WSABASEERR+71); { Extended Windows Sockets error constant definitions } WSASYSNOTREADY = (WSABASEERR+91); WSAVERNOTSUPPORTED = (WSABASEERR+92); WSANOTINITIALISED = (WSABASEERR+93); WSAEDISCON = (WSABASEERR+101); WSAENOMORE = (WSABASEERR+102); WSAECANCELLED = (WSABASEERR+103); WSAEEINVALIDPROCTABLE = (WSABASEERR+104); WSAEINVALIDPROVIDER = (WSABASEERR+105); WSAEPROVIDERFAILEDINIT = (WSABASEERR+106); WSASYSCALLFAILURE = (WSABASEERR+107); WSASERVICE_NOT_FOUND = (WSABASEERR+108); WSATYPE_NOT_FOUND = (WSABASEERR+109); WSA_E_NO_MORE = (WSABASEERR+110); WSA_E_CANCELLED = (WSABASEERR+111); WSAEREFUSED = (WSABASEERR+112); { Error return codes from gethostbyname() and gethostbyaddr() (when using the resolver). Note that these errors are retrieved via WSAGetLastError() and must therefore follow the rules for avoiding clashes with error numbers from specific implementations or language run-time systems. For this reason the codes are based at WSABASEERR+1001. Note also that [WSA]NO_ADDRESS is defined only for compatibility purposes. } { Authoritative Answer: Host not found } WSAHOST_NOT_FOUND = (WSABASEERR+1001); HOST_NOT_FOUND = WSAHOST_NOT_FOUND; { Non-Authoritative: Host not found, or SERVERFAIL } WSATRY_AGAIN = (WSABASEERR+1002); TRY_AGAIN = WSATRY_AGAIN; { Non recoverable errors, FORMERR, REFUSED, NOTIMP } WSANO_RECOVERY = (WSABASEERR+1003); NO_RECOVERY = WSANO_RECOVERY; { Valid name, no data record of requested type } WSANO_DATA = (WSABASEERR+1004); NO_DATA = WSANO_DATA; { no address, look for MX record } WSANO_ADDRESS = WSANO_DATA; NO_ADDRESS = WSANO_ADDRESS; EWOULDBLOCK = WSAEWOULDBLOCK; EINPROGRESS = WSAEINPROGRESS; EALREADY = WSAEALREADY; ENOTSOCK = WSAENOTSOCK; EDESTADDRREQ = WSAEDESTADDRREQ; EMSGSIZE = WSAEMSGSIZE; EPROTOTYPE = WSAEPROTOTYPE; ENOPROTOOPT = WSAENOPROTOOPT; EPROTONOSUPPORT = WSAEPROTONOSUPPORT; ESOCKTNOSUPPORT = WSAESOCKTNOSUPPORT; EOPNOTSUPP = WSAEOPNOTSUPP; EPFNOSUPPORT = WSAEPFNOSUPPORT; EAFNOSUPPORT = WSAEAFNOSUPPORT; EADDRINUSE = WSAEADDRINUSE; EADDRNOTAVAIL = WSAEADDRNOTAVAIL; ENETDOWN = WSAENETDOWN; ENETUNREACH = WSAENETUNREACH; ENETRESET = WSAENETRESET; ECONNABORTED = WSAECONNABORTED; ECONNRESET = WSAECONNRESET; ENOBUFS = WSAENOBUFS; EISCONN = WSAEISCONN; ENOTCONN = WSAENOTCONN; ESHUTDOWN = WSAESHUTDOWN; ETOOMANYREFS = WSAETOOMANYREFS; ETIMEDOUT = WSAETIMEDOUT; ECONNREFUSED = WSAECONNREFUSED; ELOOP = WSAELOOP; ENAMETOOLONG = WSAENAMETOOLONG; EHOSTDOWN = WSAEHOSTDOWN; EHOSTUNREACH = WSAEHOSTUNREACH; ENOTEMPTY = WSAENOTEMPTY; EPROCLIM = WSAEPROCLIM; EUSERS = WSAEUSERS; EDQUOT = WSAEDQUOT; ESTALE = WSAESTALE; EREMOTE = WSAEREMOTE; type TVarSin = IPEndpoint; { function IN6_IS_ADDR_UNSPECIFIED(const a: PInAddr6): boolean; function IN6_IS_ADDR_LOOPBACK(const a: PInAddr6): boolean; function IN6_IS_ADDR_LINKLOCAL(const a: PInAddr6): boolean; function IN6_IS_ADDR_SITELOCAL(const a: PInAddr6): boolean; function IN6_IS_ADDR_MULTICAST(const a: PInAddr6): boolean; function IN6_ADDR_EQUAL(const a: PInAddr6; const b: PInAddr6):boolean; procedure SET_IN6_IF_ADDR_ANY (const a: PInAddr6); procedure SET_LOOPBACK_ADDR6 (const a: PInAddr6); var in6addr_any, in6addr_loopback : TInAddr6; } {procedure FD_CLR(Socket: TSocket; var FDSet: TFDSet); function FD_ISSET(Socket: TSocket; var FDSet: TFDSet): Boolean; procedure FD_SET(Socket: TSocket; var FDSet: TFDSet); procedure FD_ZERO(var FDSet: TFDSet); } {=============================================================================} function WSAStartup(wVersionRequired: Word; var WSData: TWSAData): Integer; function WSACleanup: Integer; function WSAGetLastError: Integer; function WSAGetLastErrorDesc: String; function GetHostName: string; function Shutdown(s: TSocket; how: Integer): Integer; // function SetSockOpt(s: TSocket; level, optname: Integer; optval: PChar; // optlen: Integer): Integer; function SetSockOpt(s: TSocket; level, optname: Integer; optval: TMemory; optlen: Integer): Integer; function SetSockOptObj(s: TSocket; level, optname: Integer; optval: TObject): Integer; function GetSockOpt(s: TSocket; level, optname: Integer; optval: TMemory; var optlen: Integer): Integer; // function SendTo(s: TSocket; const Buf; len, flags: Integer; addrto: PSockAddr; // tolen: Integer): Integer; /// function SendTo(s: TSocket; const Buf; len, flags: Integer; addrto: TVarSin): Integer; /// function Send(s: TSocket; const Buf; len, flags: Integer): Integer; /// function Recv(s: TSocket; var Buf; len, flags: Integer): Integer; // function RecvFrom(s: TSocket; var Buf; len, flags: Integer; from: PSockAddr; // var fromlen: Integer): Integer; /// function RecvFrom(s: TSocket; var Buf; len, flags: Integer; from: TVarSin): Integer; function Send(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; function Recv(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; function SendTo(s: TSocket; Buf: TMemory; len, flags: Integer; addrto: TVarSin): Integer; function RecvFrom(s: TSocket; Buf: TMemory; len, flags: Integer; var from: TVarSin): Integer; function ntohs(netshort: u_short): u_short; function ntohl(netlong: u_long): u_long; function Listen(s: TSocket; backlog: Integer): Integer; function IoctlSocket(s: TSocket; cmd: DWORD; var arg: integer): Integer; function htons(hostshort: u_short): u_short; function htonl(hostlong: u_long): u_long; // function GetSockName(s: TSocket; name: PSockAddr; var namelen: Integer): Integer; function GetSockName(s: TSocket; var name: TVarSin): Integer; // function GetPeerName(s: TSocket; name: PSockAddr; var namelen: Integer): Integer; function GetPeerName(s: TSocket; var name: TVarSin): Integer; // function Connect(s: TSocket; name: PSockAddr; namelen: Integer): Integer; function Connect(s: TSocket; const name: TVarSin): Integer; function CloseSocket(s: TSocket): Integer; // function Bind(s: TSocket; addr: PSockAddr; namelen: Integer): Integer; function Bind(s: TSocket; const addr: TVarSin): Integer; // function Accept(s: TSocket; addr: PSockAddr; var addrlen: Integer): TSocket; function Accept(s: TSocket; var addr: TVarSin): TSocket; function Socket(af, Struc, Protocol: Integer): TSocket; // Select = function(nfds: Integer; readfds, writefds, exceptfds: PFDSet; // timeout: PTimeVal): Longint; // {$IFDEF LINUX}cdecl{$ELSE}stdcall{$ENDIF}; // TWSAIoctl = function (s: TSocket; dwIoControlCode: DWORD; lpvInBuffer: Pointer; // cbInBuffer: DWORD; lpvOutBuffer: Pointer; cbOutBuffer: DWORD; // lpcbBytesReturned: PDWORD; lpOverlapped: Pointer; // lpCompletionRoutine: pointer): u_int; // stdcall; function GetPortService(value: string): integer; function IsNewApi(Family: TAddrFamily): Boolean; function SetVarSin(var Sin: TVarSin; IP, Port: string; Family: TAddrFamily; SockProtocol, SockType: integer; PreferIP4: Boolean): integer; function GetSinIP(Sin: TVarSin): string; function GetSinPort(Sin: TVarSin): Integer; procedure ResolveNameToIP(Name: string; Family: TAddrFamily; SockProtocol, SockType: integer; const IPList: TStrings); function ResolveIPToName(IP: string; Family: TAddrFamily; SockProtocol, SockType: integer): string; function ResolvePort(Port: string; Family: TAddrFamily; SockProtocol, SockType: integer): Word; var SynSockCS: SyncObjs.TCriticalSection; SockEnhancedApi: Boolean; SockWship6Api: Boolean; {==============================================================================} implementation threadvar WSALastError: integer; WSALastErrorDesc: string; var services: Array [0..139, 0..1] of string = ( ('echo', '7'), ('discard', '9'), ('sink', '9'), ('null', '9'), ('systat', '11'), ('users', '11'), ('daytime', '13'), ('qotd', '17'), ('quote', '17'), ('chargen', '19'), ('ttytst', '19'), ('source', '19'), ('ftp-data', '20'), ('ftp', '21'), ('telnet', '23'), ('smtp', '25'), ('mail', '25'), ('time', '37'), ('timeserver', '37'), ('rlp', '39'), ('nameserver', '42'), ('name', '42'), ('nickname', '43'), ('whois', '43'), ('domain', '53'), ('bootps', '67'), ('dhcps', '67'), ('bootpc', '68'), ('dhcpc', '68'), ('tftp', '69'), ('gopher', '70'), ('finger', '79'), ('http', '80'), ('www', '80'), ('www-http', '80'), ('kerberos', '88'), ('hostname', '101'), ('hostnames', '101'), ('iso-tsap', '102'), ('rtelnet', '107'), ('pop2', '109'), ('postoffice', '109'), ('pop3', '110'), ('sunrpc', '111'), ('rpcbind', '111'), ('portmap', '111'), ('auth', '113'), ('ident', '113'), ('tap', '113'), ('uucp-path', '117'), ('nntp', '119'), ('usenet', '119'), ('ntp', '123'), ('epmap', '135'), ('loc-srv', '135'), ('netbios-ns', '137'), ('nbname', '137'), ('netbios-dgm', '138'), ('nbdatagram', '138'), ('netbios-ssn', '139'), ('nbsession', '139'), ('imap', '143'), ('imap4', '143'), ('pcmail-srv', '158'), ('snmp', '161'), ('snmptrap', '162'), ('snmp-trap', '162'), ('print-srv', '170'), ('bgp', '179'), ('irc', '194'), ('ipx', '213'), ('ldap', '389'), ('https', '443'), ('mcom', '443'), ('microsoft-ds', '445'), ('kpasswd', '464'), ('isakmp', '500'), ('ike', '500'), ('exec', '512'), ('biff', '512'), ('comsat', '512'), ('login', '513'), ('who', '513'), ('whod', '513'), ('cmd', '514'), ('shell', '514'), ('syslog', '514'), ('printer', '515'), ('spooler', '515'), ('talk', '517'), ('ntalk', '517'), ('efs', '520'), ('router', '520'), ('route', '520'), ('routed', '520'), ('timed', '525'), ('timeserver', '525'), ('tempo', '526'), ('newdate', '526'), ('courier', '530'), ('rpc', '530'), ('conference', '531'), ('chat', '531'), ('netnews', '532'), ('readnews', '532'), ('netwall', '533'), ('uucp', '540'), ('uucpd', '540'), ('klogin', '543'), ('kshell', '544'), ('krcmd', '544'), ('new-rwho', '550'), ('new-who', '550'), ('remotefs', '556'), ('rfs', '556'), ('rfs_server', '556'), ('rmonitor', '560'), ('rmonitord', '560'), ('monitor', '561'), ('ldaps', '636'), ('sldap', '636'), ('doom', '666'), ('kerberos-adm', '749'), ('kerberos-iv', '750'), ('kpop', '1109'), ('phone', '1167'), ('ms-sql-s', '1433'), ('ms-sql-m', '1434'), ('wins', '1512'), ('ingreslock', '1524'), ('ingres', '1524'), ('l2tp', '1701'), ('pptp', '1723'), ('radius', '1812'), ('radacct', '1813'), ('nfsd', '2049'), ('nfs', '2049'), ('knetd', '2053'), ('gds_db', '3050'), ('man', '9535') ); {function IN6_IS_ADDR_UNSPECIFIED(const a: PInAddr6): boolean; begin Result := ((a^.s_un_dw.s_dw1 = 0) and (a^.s_un_dw.s_dw2 = 0) and (a^.s_un_dw.s_dw3 = 0) and (a^.s_un_dw.s_dw4 = 0)); end; function IN6_IS_ADDR_LOOPBACK(const a: PInAddr6): boolean; begin Result := ((a^.s_un_dw.s_dw1 = 0) and (a^.s_un_dw.s_dw2 = 0) and (a^.s_un_dw.s_dw3 = 0) and (a^.s_un_b.s_b13 = char(0)) and (a^.s_un_b.s_b14 = char(0)) and (a^.s_un_b.s_b15 = char(0)) and (a^.s_un_b.s_b16 = char(1))); end; function IN6_IS_ADDR_LINKLOCAL(const a: PInAddr6): boolean; begin Result := ((a^.s_un_b.s_b1 = u_char($FE)) and (a^.s_un_b.s_b2 = u_char($80))); end; function IN6_IS_ADDR_SITELOCAL(const a: PInAddr6): boolean; begin Result := ((a^.s_un_b.s_b1 = u_char($FE)) and (a^.s_un_b.s_b2 = u_char($C0))); end; function IN6_IS_ADDR_MULTICAST(const a: PInAddr6): boolean; begin Result := (a^.s_un_b.s_b1 = char($FF)); end; function IN6_ADDR_EQUAL(const a: PInAddr6; const b: PInAddr6): boolean; begin Result := (CompareMem( a, b, sizeof(TInAddr6))); end; procedure SET_IN6_IF_ADDR_ANY (const a: PInAddr6); begin FillChar(a^, sizeof(TInAddr6), 0); end; procedure SET_LOOPBACK_ADDR6 (const a: PInAddr6); begin FillChar(a^, sizeof(TInAddr6), 0); a^.s_un_b.s_b16 := char(1); end; } {=============================================================================} procedure NullErr; begin WSALastError := 0; WSALastErrorDesc := ''; end; procedure GetErrCode(E: System.Exception); var SE: System.Net.Sockets.SocketException; begin if E is System.Net.Sockets.SocketException then begin SE := E as System.Net.Sockets.SocketException; WSALastError := SE.ErrorCode; WSALastErrorDesc := SE.Message; end end; function WSAStartup(wVersionRequired: Word; var WSData: TWSAData): Integer; begin NullErr; with WSData do begin wVersion := wVersionRequired; wHighVersion := $202; szDescription := 'Synsock - Synapse Platform Independent Socket Layer'; szSystemStatus := 'Running on .NET'; iMaxSockets := 32768; iMaxUdpDg := 8192; end; Result := 0; end; function WSACleanup: Integer; begin NullErr; Result := 0; end; function WSAGetLastError: Integer; begin Result := WSALastError; end; function WSAGetLastErrorDesc: String; begin Result := WSALastErrorDesc; end; function GetHostName: string; begin Result := System.Net.DNS.GetHostName; end; function Shutdown(s: TSocket; how: Integer): Integer; begin Result := 0; NullErr; try s.ShutDown(SocketShutdown(how)); except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; function SetSockOpt(s: TSocket; level, optname: Integer; optval: Tmemory; optlen: Integer): Integer; begin Result := 0; NullErr; try s.SetSocketOption(SocketOptionLevel(level), SocketOptionName(optname), optval); except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; function SetSockOptObj(s: TSocket; level, optname: Integer; optval: TObject): Integer; begin Result := 0; NullErr; try s.SetSocketOption(SocketOptionLevel(level), SocketOptionName(optname), optval); except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; function GetSockOpt(s: TSocket; level, optname: Integer; optval: Tmemory; var optlen: Integer): Integer; begin Result := 0; NullErr; try s.GetSocketOption(SocketOptionLevel(level), SocketOptionName(optname), optval); except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; function SendTo(s: TSocket; Buf: TMemory; len, flags: Integer; addrto: TVarSin): Integer; //function SendTo(s: TSocket; const Buf; len, flags: Integer; addrto: TVarSin): Integer; begin NullErr; try result := s.SendTo(Buf, len, SocketFlags(flags), addrto); except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; function Send(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; //function Send(s: TSocket; const Buf; len, flags: Integer): Integer; begin NullErr; try result := s.Send(Buf, len, SocketFlags(flags)); except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; function Recv(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; //function Recv(s: TSocket; var Buf; len, flags: Integer): Integer; begin NullErr; try result := s.Receive(Buf, len, SocketFlags(flags)); except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; //function RecvFrom(s: TSocket; var Buf; len, flags: Integer; from: PSockAddr; // var fromlen: Integer): Integer; function RecvFrom(s: TSocket; Buf: TMemory; len, flags: Integer; var from: TVarSin): Integer; //function RecvFrom(s: TSocket; var Buf; len, flags: Integer; from: TVarSin): Integer; var EP: EndPoint; begin NullErr; try EP := from; result := s.ReceiveFrom(Buf, len, SocketFlags(flags), EndPoint(EP)); from := EP as IPEndPoint; except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; function ntohs(netshort: u_short): u_short; begin Result := IPAddress.NetworkToHostOrder(NetShort); end; function ntohl(netlong: u_long): u_long; begin Result := IPAddress.NetworkToHostOrder(NetLong); end; function Listen(s: TSocket; backlog: Integer): Integer; begin Result := 0; NullErr; try s.Listen(backlog); except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; function IoctlSocket(s: TSocket; cmd: DWORD; var arg: integer): Integer; var inv, outv: TMemory; begin Result := 0; NullErr; try if cmd = DWORD(FIONBIO) then s.Blocking := arg = 0 else begin inv := BitConverter.GetBytes(arg); outv := BitConverter.GetBytes(integer(0)); s.IOControl(cmd, inv, outv); arg := BitConverter.ToInt32(outv, 0); end; except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; function htons(hostshort: u_short): u_short; begin Result := IPAddress.HostToNetworkOrder(Hostshort); end; function htonl(hostlong: u_long): u_long; begin Result := IPAddress.HostToNetworkOrder(HostLong); end; //function GetSockName(s: TSocket; name: PSockAddr; var namelen: Integer): Integer; function GetSockName(s: TSocket; var name: TVarSin): Integer; begin Result := 0; NullErr; try Name := s.localEndPoint as IPEndpoint; except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; //function GetPeerName(s: TSocket; name: PSockAddr; var namelen: Integer): Integer; function GetPeerName(s: TSocket; var name: TVarSin): Integer; begin Result := 0; NullErr; try Name := s.RemoteEndPoint as IPEndpoint; except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; //function Connect(s: TSocket; name: PSockAddr; namelen: Integer): Integer; function Connect(s: TSocket; const name: TVarSin): Integer; begin Result := 0; NullErr; try s.Connect(name); except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; function CloseSocket(s: TSocket): Integer; begin Result := 0; NullErr; try s.Close; except on e: System.Net.Sockets.SocketException do begin Result := integer(SOCKET_ERROR); end; end; end; //function Bind(s: TSocket; addr: PSockAddr; namelen: Integer): Integer; function Bind(s: TSocket; const addr: TVarSin): Integer; begin Result := 0; NullErr; try s.Bind(addr); except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; //function Accept(s: TSocket; addr: PSockAddr; var addrlen: Integer): TSocket; function Accept(s: TSocket; var addr: TVarSin): TSocket; begin NullErr; try result := s.Accept(); except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := nil; end; end; end; function Socket(af, Struc, Protocol: Integer): TSocket; begin NullErr; try result := TSocket.Create(AddressFamily(af), SocketType(Struc), ProtocolType(Protocol)); except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := nil; end; end; end; {=============================================================================} function GetPortService(value: string): integer; var n: integer; begin Result := 0; value := Lowercase(value); for n := 0 to High(Services) do if services[n, 0] = value then begin Result := strtointdef(services[n, 1], 0); break; end; if Result = 0 then Result := StrToIntDef(value, 0); end; {=============================================================================} function IsNewApi(Family: TAddrFamily): Boolean; begin Result := true; end; function SetVarSin(var Sin: TVarSin; IP, Port: string; Family: TAddrFamily; SockProtocol, SockType: integer; PreferIP4: Boolean): integer; var IPs: array of IPAddress; n: integer; ip4, ip6: string; sip: string; begin sip := ''; ip4 := ''; ip6 := ''; IPs := Dns.Resolve(IP).AddressList; for n :=low(IPs) to high(IPs) do begin if (ip4 = '') and (IPs[n].AddressFamily = AF_INET) then ip4 := IPs[n].toString; if (ip6 = '') and (IPs[n].AddressFamily = AF_INET6) then ip6 := IPs[n].toString; if (ip4 <> '') and (ip6 <> '') then break; end; case Family of AF_UNSPEC: begin if (ip4 <> '') and (ip6 <> '') then begin if PreferIP4 then sip := ip4 else Sip := ip6; end else begin sip := ip4; if (ip6 <> '') then sip := ip6; end; end; AF_INET: sip := ip4; AF_INET6: sip := ip6; end; sin := TVarSin.Create(IPAddress.Parse(sip), GetPortService(Port)); end; function GetSinIP(Sin: TVarSin): string; begin Result := Sin.Address.ToString; end; function GetSinPort(Sin: TVarSin): Integer; begin Result := Sin.Port; end; procedure ResolveNameToIP(Name: string; Family: TAddrFamily; SockProtocol, SockType: integer; const IPList: TStrings); var IPs :array of IPAddress; n: integer; begin IPList.Clear; IPs := Dns.Resolve(Name).AddressList; for n := low(IPs) to high(IPs) do begin if not(((Family = AF_INET6) and (IPs[n].AddressFamily = AF_INET)) or ((Family = AF_INET) and (IPs[n].AddressFamily = AF_INET6))) then begin IPList.Add(IPs[n].toString); end; end; end; function ResolvePort(Port: string; Family: TAddrFamily; SockProtocol, SockType: integer): Word; var n: integer; begin Result := StrToIntDef(port, 0); if Result = 0 then begin port := Lowercase(port); for n := 0 to High(Services) do if services[n, 0] = port then begin Result := strtointdef(services[n, 1], 0); break; end; end; end; function ResolveIPToName(IP: string; Family: TAddrFamily; SockProtocol, SockType: integer): string; begin Result := Dns.GetHostByAddress(IP).HostName; end; {=============================================================================} function InitSocketInterface(stack: string): Boolean; begin Result := True; end; function DestroySocketInterface: Boolean; begin NullErr; Result := True; end; initialization begin SynSockCS := SyncObjs.TCriticalSection.Create; // SET_IN6_IF_ADDR_ANY (@in6addr_any); // SET_LOOPBACK_ADDR6 (@in6addr_loopback); end; finalization begin NullErr; SynSockCS.Free; end; {$ENDIF} ./viewlog.lrs0000644000175000017500000002225714576573022013356 0ustar anthonyanthony{ This is an automatically generated lazarus resource file } LazarusResources.Add('TForm5','FORMDATA',[ 'TPF0'#6'TForm5'#5'Form5'#4'Left'#3#161#10#6'Height'#3'm'#1#3'Top'#3'i'#1#5'W' +'idth'#3#222#3#7'Caption'#6#3'Log'#12'ClientHeight'#3'm'#1#11'ClientWidth'#3 +#222#3#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#7'2.2.6.0'#0#244#8 +'TSynEdit'#8'SynEdit1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTo' +'p.Control'#7#5'Owner'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideR' +'ight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#7'SaveLog'#4'Left' +#2#0#6'Height'#3'I'#1#3'Top'#2#0#5'Width'#3#222#3#7'Anchors'#11#5'akTop'#6'a' +'kLeft'#7'akRight'#8'akBottom'#0#11'Font.Height'#2#243#9'Font.Name'#6#11'Cou' +'rier New'#10'Font.Pitch'#7#7'fpFixed'#12'Font.Quality'#7#16'fqNonAntialiase' +'d'#11'ParentColor'#8#10'ParentFont'#8#8'TabOrder'#2#0#12'Gutter.Width'#2'9' +#19'Gutter.MouseActions'#14#0#17'RightGutter.Width'#2#0#24'RightGutter.Mouse' +'Actions'#14#0#10'Keystrokes'#14#1#7'Command'#7#4'ecUp'#8'ShortCut'#2'&'#0#1 +#7'Command'#7#7'ecSelUp'#8'ShortCut'#3'& '#0#1#7'Command'#7#10'ecScrollUp'#8 +'ShortCut'#3'&@'#0#1#7'Command'#7#6'ecDown'#8'ShortCut'#2'('#0#1#7'Command'#7 +#9'ecSelDown'#8'ShortCut'#3'( '#0#1#7'Command'#7#12'ecScrollDown'#8'ShortCut' +#3'(@'#0#1#7'Command'#7#6'ecLeft'#8'ShortCut'#2'%'#0#1#7'Command'#7#9'ecSelL' +'eft'#8'ShortCut'#3'% '#0#1#7'Command'#7#10'ecWordLeft'#8'ShortCut'#3'%@'#0#1 +#7'Command'#7#13'ecSelWordLeft'#8'ShortCut'#3'%`'#0#1#7'Command'#7#7'ecRight' +#8'ShortCut'#2''''#0#1#7'Command'#7#10'ecSelRight'#8'ShortCut'#3''' '#0#1#7 +'Command'#7#11'ecWordRight'#8'ShortCut'#3'''@'#0#1#7'Command'#7#14'ecSelWord' +'Right'#8'ShortCut'#3'''`'#0#1#7'Command'#7#10'ecPageDown'#8'ShortCut'#2'"'#0 +#1#7'Command'#7#13'ecSelPageDown'#8'ShortCut'#3'" '#0#1#7'Command'#7#12'ecPa' +'geBottom'#8'ShortCut'#3'"@'#0#1#7'Command'#7#15'ecSelPageBottom'#8'ShortCut' +#3'"`'#0#1#7'Command'#7#8'ecPageUp'#8'ShortCut'#2'!'#0#1#7'Command'#7#11'ecS' +'elPageUp'#8'ShortCut'#3'! '#0#1#7'Command'#7#9'ecPageTop'#8'ShortCut'#3'!@' +#0#1#7'Command'#7#12'ecSelPageTop'#8'ShortCut'#3'!`'#0#1#7'Command'#7#11'ecL' +'ineStart'#8'ShortCut'#2'$'#0#1#7'Command'#7#14'ecSelLineStart'#8'ShortCut'#3 +'$ '#0#1#7'Command'#7#11'ecEditorTop'#8'ShortCut'#3'$@'#0#1#7'Command'#7#14 +'ecSelEditorTop'#8'ShortCut'#3'$`'#0#1#7'Command'#7#9'ecLineEnd'#8'ShortCut' +#2'#'#0#1#7'Command'#7#12'ecSelLineEnd'#8'ShortCut'#3'# '#0#1#7'Command'#7#14 +'ecEditorBottom'#8'ShortCut'#3'#@'#0#1#7'Command'#7#17'ecSelEditorBottom'#8 +'ShortCut'#3'#`'#0#1#7'Command'#7#12'ecToggleMode'#8'ShortCut'#2'-'#0#1#7'Co' +'mmand'#7#6'ecCopy'#8'ShortCut'#3'-@'#0#1#7'Command'#7#7'ecPaste'#8'ShortCut' +#3'- '#0#1#7'Command'#7#12'ecDeleteChar'#8'ShortCut'#2'.'#0#1#7'Command'#7#5 +'ecCut'#8'ShortCut'#3'. '#0#1#7'Command'#7#16'ecDeleteLastChar'#8'ShortCut'#2 +#8#0#1#7'Command'#7#16'ecDeleteLastChar'#8'ShortCut'#3#8' '#0#1#7'Command'#7 +#16'ecDeleteLastWord'#8'ShortCut'#3#8'@'#0#1#7'Command'#7#6'ecUndo'#8'ShortC' +'ut'#4#8#128#0#0#0#1#7'Command'#7#6'ecRedo'#8'ShortCut'#4#8#160#0#0#0#1#7'Co' +'mmand'#7#11'ecLineBreak'#8'ShortCut'#2#13#0#1#7'Command'#7#11'ecSelectAll'#8 +'ShortCut'#3'A@'#0#1#7'Command'#7#6'ecCopy'#8'ShortCut'#3'C@'#0#1#7'Command' +#7#13'ecBlockIndent'#8'ShortCut'#3'I`'#0#1#7'Command'#7#11'ecLineBreak'#8'Sh' +'ortCut'#3'M@'#0#1#7'Command'#7#12'ecInsertLine'#8'ShortCut'#3'N@'#0#1#7'Com' +'mand'#7#12'ecDeleteWord'#8'ShortCut'#3'T@'#0#1#7'Command'#7#15'ecBlockUnind' +'ent'#8'ShortCut'#3'U`'#0#1#7'Command'#7#7'ecPaste'#8'ShortCut'#3'V@'#0#1#7 +'Command'#7#5'ecCut'#8'ShortCut'#3'X@'#0#1#7'Command'#7#12'ecDeleteLine'#8'S' +'hortCut'#3'Y@'#0#1#7'Command'#7#11'ecDeleteEOL'#8'ShortCut'#3'Y`'#0#1#7'Com' +'mand'#7#6'ecUndo'#8'ShortCut'#3'Z@'#0#1#7'Command'#7#6'ecRedo'#8'ShortCut'#3 +'Z`'#0#1#7'Command'#7#13'ecGotoMarker0'#8'ShortCut'#3'0@'#0#1#7'Command'#7#13 +'ecGotoMarker1'#8'ShortCut'#3'1@'#0#1#7'Command'#7#13'ecGotoMarker2'#8'Short' +'Cut'#3'2@'#0#1#7'Command'#7#13'ecGotoMarker3'#8'ShortCut'#3'3@'#0#1#7'Comma' +'nd'#7#13'ecGotoMarker4'#8'ShortCut'#3'4@'#0#1#7'Command'#7#13'ecGotoMarker5' +#8'ShortCut'#3'5@'#0#1#7'Command'#7#13'ecGotoMarker6'#8'ShortCut'#3'6@'#0#1#7 +'Command'#7#13'ecGotoMarker7'#8'ShortCut'#3'7@'#0#1#7'Command'#7#13'ecGotoMa' +'rker8'#8'ShortCut'#3'8@'#0#1#7'Command'#7#13'ecGotoMarker9'#8'ShortCut'#3'9' +'@'#0#1#7'Command'#7#12'ecSetMarker0'#8'ShortCut'#3'0`'#0#1#7'Command'#7#12 +'ecSetMarker1'#8'ShortCut'#3'1`'#0#1#7'Command'#7#12'ecSetMarker2'#8'ShortCu' +'t'#3'2`'#0#1#7'Command'#7#12'ecSetMarker3'#8'ShortCut'#3'3`'#0#1#7'Command' +#7#12'ecSetMarker4'#8'ShortCut'#3'4`'#0#1#7'Command'#7#12'ecSetMarker5'#8'Sh' +'ortCut'#3'5`'#0#1#7'Command'#7#12'ecSetMarker6'#8'ShortCut'#3'6`'#0#1#7'Com' +'mand'#7#12'ecSetMarker7'#8'ShortCut'#3'7`'#0#1#7'Command'#7#12'ecSetMarker8' +#8'ShortCut'#3'8`'#0#1#7'Command'#7#12'ecSetMarker9'#8'ShortCut'#3'9`'#0#1#7 +'Command'#7#12'EcFoldLevel1'#8'ShortCut'#4'1'#160#0#0#0#1#7'Command'#7#12'Ec' +'FoldLevel2'#8'ShortCut'#4'2'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel3'#8'Sh' +'ortCut'#4'3'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel4'#8'ShortCut'#4'4'#160 ,#0#0#0#1#7'Command'#7#12'EcFoldLevel5'#8'ShortCut'#4'5'#160#0#0#0#1#7'Comman' +'d'#7#12'EcFoldLevel6'#8'ShortCut'#4'6'#160#0#0#0#1#7'Command'#7#12'EcFoldLe' +'vel7'#8'ShortCut'#4'7'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel8'#8'ShortCut' +#4'8'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel9'#8'ShortCut'#4'9'#160#0#0#0#1 +#7'Command'#7#12'EcFoldLevel0'#8'ShortCut'#4'0'#160#0#0#0#1#7'Command'#7#13 +'EcFoldCurrent'#8'ShortCut'#4'-'#160#0#0#0#1#7'Command'#7#15'EcUnFoldCurrent' +#8'ShortCut'#4'+'#160#0#0#0#1#7'Command'#7#18'EcToggleMarkupWord'#8'ShortCut' +#4'M'#128#0#0#0#1#7'Command'#7#14'ecNormalSelect'#8'ShortCut'#3'N`'#0#1#7'Co' +'mmand'#7#14'ecColumnSelect'#8'ShortCut'#3'C`'#0#1#7'Command'#7#12'ecLineSel' +'ect'#8'ShortCut'#3'L`'#0#1#7'Command'#7#5'ecTab'#8'ShortCut'#2#9#0#1#7'Comm' +'and'#7#10'ecShiftTab'#8'ShortCut'#3#9' '#0#1#7'Command'#7#14'ecMatchBracket' +#8'ShortCut'#3'B`'#0#1#7'Command'#7#10'ecColSelUp'#8'ShortCut'#4'&'#160#0#0#0 +#1#7'Command'#7#12'ecColSelDown'#8'ShortCut'#4'('#160#0#0#0#1#7'Command'#7#12 +'ecColSelLeft'#8'ShortCut'#4'%'#160#0#0#0#1#7'Command'#7#13'ecColSelRight'#8 +'ShortCut'#4''''#160#0#0#0#1#7'Command'#7#16'ecColSelPageDown'#8'ShortCut'#4 +'"'#160#0#0#0#1#7'Command'#7#18'ecColSelPageBottom'#8'ShortCut'#4'"'#224#0#0 +#0#1#7'Command'#7#14'ecColSelPageUp'#8'ShortCut'#4'!'#160#0#0#0#1#7'Command' +#7#15'ecColSelPageTop'#8'ShortCut'#4'!'#224#0#0#0#1#7'Command'#7#17'ecColSel' +'LineStart'#8'ShortCut'#4'$'#160#0#0#0#1#7'Command'#7#15'ecColSelLineEnd'#8 +'ShortCut'#4'#'#160#0#0#0#1#7'Command'#7#17'ecColSelEditorTop'#8'ShortCut'#4 +'$'#224#0#0#0#1#7'Command'#7#20'ecColSelEditorBottom'#8'ShortCut'#4'#'#224#0 +#0#0#0#12'MouseActions'#14#0#16'MouseTextActions'#14#0#15'MouseSelActions'#14 +#0#13'Lines.Strings'#1#6#8'SynEdit1'#0#19'VisibleSpecialChars'#11#8'vscSpace' +#12'vscTabAtLast'#0#9'RightEdge'#2#0#10'ScrollBars'#7#10'ssAutoBoth'#26'Sele' +'ctedColor.BackPriority'#2'2'#26'SelectedColor.ForePriority'#2'2'#27'Selecte' +'dColor.FramePriority'#2'2'#26'SelectedColor.BoldPriority'#2'2'#28'SelectedC' +'olor.ItalicPriority'#2'2'#31'SelectedColor.UnderlinePriority'#2'2'#31'Selec' +'tedColor.StrikeOutPriority'#2'2'#21'BracketHighlightStyle'#7#8'sbhsBoth'#28 +'BracketMatchColor.Background'#7#6'clNone'#28'BracketMatchColor.Foreground'#7 +#6'clNone'#23'BracketMatchColor.Style'#11#6'fsBold'#0#26'FoldedCodeColor.Bac' +'kground'#7#6'clNone'#26'FoldedCodeColor.Foreground'#7#6'clGray'#26'FoldedCo' +'deColor.FrameColor'#7#6'clGray'#25'MouseLinkColor.Background'#7#6'clNone'#25 +'MouseLinkColor.Foreground'#7#6'clBlue'#29'LineHighlightColor.Background'#7#6 +'clNone'#29'LineHighlightColor.Foreground'#7#6'clNone'#0#244#18'TSynGutterPa' +'rtList'#22'SynLeftGutterPartList1'#0#15'TSynGutterMarks'#15'SynGutterMarks1' +#5'Width'#2#24#12'MouseActions'#14#0#0#0#20'TSynGutterLineNumber'#20'SynGutt' +'erLineNumber1'#5'Width'#2#17#12'MouseActions'#14#0#21'MarkupInfo.Background' +#7#9'clBtnFace'#21'MarkupInfo.Foreground'#7#6'clNone'#10'DigitCount'#2#2#30 +'ShowOnlyLineNumbersMultiplesOf'#2#1#9'ZeroStart'#8#12'LeadingZeros'#8#0#0#17 +'TSynGutterChanges'#17'SynGutterChanges1'#5'Width'#2#4#12'MouseActions'#14#0 +#13'ModifiedColor'#4#252#233#0#0#10'SavedColor'#7#7'clGreen'#0#0#19'TSynGutt' +'erSeparator'#19'SynGutterSeparator1'#5'Width'#2#2#12'MouseActions'#14#0#21 +'MarkupInfo.Background'#7#7'clWhite'#21'MarkupInfo.Foreground'#7#6'clGray'#0 +#0#21'TSynGutterCodeFolding'#21'SynGutterCodeFolding1'#12'MouseActions'#14#0 +#21'MarkupInfo.Background'#7#6'clNone'#21'MarkupInfo.Foreground'#7#6'clGray' +#20'MouseActionsExpanded'#14#0#21'MouseActionsCollapsed'#14#0#0#0#0#0#7'TBut' +'ton'#7'SaveLog'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.S' +'ide'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBo' +'ttom.Side'#7#9'asrBottom'#4'Left'#3'R'#3#6'Height'#2#28#3'Top'#3'M'#1#5'Wid' +'th'#3#136#0#7'Anchors'#11#7'akRight'#8'akBottom'#0#20'BorderSpacing.Around' +#2#4#7'Caption'#6#12'Save to file'#7'OnClick'#7#12'SaveLogClick'#8'TabOrder' +#2#1#0#0#0 ]); ./unitdirectorylist.lfm0000644000175000017500000002417514576573022015461 0ustar anthonyanthonyobject Directories: TDirectories Left = 2234 Height = 265 Hint = 'Select a new directory path for the log files.' Top = 567 Width = 769 Anchors = [akTop] Caption = 'Directories' ClientHeight = 265 ClientWidth = 769 Constraints.MinHeight = 265 Constraints.MinWidth = 390 OnCreate = FormCreate OnShow = FormShow Position = poScreenCenter ShowHint = True LCLVersion = '2.2.6.0' object TZdatabasepathDisplay: TLabeledEdit AnchorSideLeft.Control = ResetToLogsDirectoryButton AnchorSideTop.Control = LogsDirStatusLabel AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 125 Height = 36 Top = 70 Width = 641 Anchors = [akTop, akLeft, akRight] BorderSpacing.Top = 7 BorderSpacing.Right = 3 EditLabel.Height = 19 EditLabel.Width = 105 EditLabel.Caption = 'TZ database path' EditLabel.ParentColor = False LabelPosition = lpLeft ReadOnly = True TabOrder = 0 end object FirmwareFilesPathDisplay: TLabeledEdit AnchorSideLeft.Control = ResetToLogsDirectoryButton AnchorSideTop.Control = TZdatabasepathDisplay AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 125 Height = 36 Top = 109 Width = 641 Anchors = [akTop, akLeft, akRight] BorderSpacing.Top = 3 BorderSpacing.Right = 3 EditLabel.Height = 19 EditLabel.Width = 117 EditLabel.Caption = 'Firmware files path' EditLabel.ParentColor = False LabelPosition = lpLeft ReadOnly = True TabOrder = 1 end object DataDirectoryDisplay: TLabeledEdit AnchorSideLeft.Control = ResetToLogsDirectoryButton AnchorSideTop.Control = FirmwareFilesPathDisplay AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 125 Height = 36 Top = 148 Width = 641 Anchors = [akTop, akLeft, akRight] BorderSpacing.Top = 3 BorderSpacing.Right = 3 EditLabel.Height = 19 EditLabel.Width = 90 EditLabel.Caption = 'Data Directory' EditLabel.ParentColor = False LabelPosition = lpLeft ReadOnly = True TabOrder = 2 end object ConfigfilePathDisplay: TLabeledEdit AnchorSideLeft.Control = ResetToLogsDirectoryButton AnchorSideTop.Control = DataDirectoryDisplay AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 125 Height = 36 Top = 187 Width = 641 Anchors = [akTop, akLeft, akRight] BorderSpacing.Top = 3 BorderSpacing.Right = 3 BorderSpacing.Bottom = 2 EditLabel.Height = 19 EditLabel.Width = 90 EditLabel.Caption = 'Configfile path' EditLabel.ParentColor = False LabelPosition = lpLeft ReadOnly = True TabOrder = 3 end object Button1: TButton AnchorSideTop.Control = ConfigfilePathDisplay AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 715 Height = 35 Top = 227 Width = 51 Anchors = [akTop, akRight] BorderSpacing.Top = 4 BorderSpacing.Right = 3 BorderSpacing.Bottom = 3 Caption = 'Close' OnClick = Button1Click TabOrder = 4 end object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = ResetToLogsDirectoryButton AnchorSideTop.Side = asrCenter Left = 0 Height = 19 Top = 13 Width = 125 Alignment = taRightJustify Caption = 'Logs Directory Path:' ParentColor = False end object ResetToLogsDirectoryButton: TBitBtn AnchorSideLeft.Control = Label1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Owner Left = 125 Height = 35 Hint = 'Reset directory to default.' Top = 5 Width = 35 BorderSpacing.Top = 5 Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000FFFFFF00FFFF FF00FFFFFF00FFFFFF004E35001D4E3500854E3500C04F3801EE4F3801ED4E35 00BA4E35007F4E35001FFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF004E3500064E35007A594405F48F6A07FEC69E12FFE2AE10FFD0A616FFAA94 1AFF82680CFD604808F44E35006D4E350001FFFFFF00FFFFFF00FFFFFF004E35 00014E3500B273610FEEAA981EFCC49D14FFD1A10FFFD4A30EFFC89F12FFB398 19FFA78E17FF9C8414FF705F0EF84E3500B84E350001FFFFFF00FFFFFF004E35 00405E4606DC9F8415AEA78E17D9AF981BFFB99C17FFB99D17FFB2971AFFA892 18FFA28512FF99760BFF926C06FF66510AFA4E350074FFFFFF00FFFFFF00664C 04208D6C096799760B869F7F11AFA58B15DCA39119FA8B7915FE8C7714FE9F87 17FF9B780DFF936D07FF8F6501FF775805FF553F05F74E35002900600000644B 061A8D640132936D054C98720A6C705A0CBD543E04F44F3601AA4E3700A95C45 06F4877007FE906602FF825900FF6C4A00FF4D3C07FE4E35007AFFFFFF005D48 07056C50040D7E5900197C59042C4F3801B94E350022FFFFFF00FFFFFF004E35 0027584304F7785604FF6E4B00FF5A3D00FF463604FF543C02C4FFFFFF004E35 000D4F3801124E3902154D3703184E3500174E350008FFFFFF00FFFFFF00FFFF FF00513901B9564004FF5B3F03FF543C08FF503908FF5B4405FA574003B6664C 06FF725308FF896715FF977115FFA07610FF64500AFF56410845FFFFFF00FFFF FF00503902B04A3704FF614915FF755E2BFF6F5827FF5F4907F5604A06FE9070 2CFFA7853BFFB38C37FFAE801CFF906404FF534007F64E350031FFFFFF004E35 0024574507F54C3602FF765E2CFF846C3AFF725F2CFF594205C5624906FFA186 4DFFA6894CFFA88844FF7E5806FF634703FE513F07F8503902B1503902B45745 07F8534005FE69511FFF947D4CFF947D4CFF74612CFE4E370084614605FFA992 61FFAA925EFFAB925DFF9E844CFF6A4F16FF4F3903FF524010FF4B3907FF4E38 02FF705928FFA08A5AFFA48E5EFF9C8758FF664F10F74E3500275F4403FFB59F 71FFB29D70FFB49E70FFB39D6DFFB39D6DFFA38F65FF877141FF887140FFA18B 5BFFB39D6FFFB39D6DFFB49E70FF7D692DFA50380074FFFFFF00604402FFB6A2 72FF73560FFB8F773FFABDA87BFFC3AE7FFFC3AE7FFFC3AE7FFFC3AE7FFFC3AE 7FFFC3AE7FFFBDA97DFF8D7439FA553C01C14E350002FFFFFF00594107EA684B 0EF24E3500455037007A6E5112F7A89264FFC1AF87FFD0BE96FFCEBB92FFBAA6 7AFFA58F5FFF715313F74E3500734E350002FFFFFF00FFFFFF004E3500204E35 001CFFFFFF00FFFFFF004E35002450370085684E16C9836B37F3765C24F15B3F 03C05037007E4E350023FFFFFF00FFFFFF00FFFFFF00FFFFFF00 } OnClick = ResetToLogsDirectoryButtonClick TabOrder = 5 end object LogsDirStatusLabel: TLabel AnchorSideLeft.Control = LogsDirectoryEdit AnchorSideTop.Control = LogsDirectoryEdit AnchorSideTop.Side = asrBottom AnchorSideRight.Side = asrBottom Left = 199 Height = 20 Top = 43 Width = 567 Anchors = [akTop, akLeft, akRight] AutoSize = False BorderSpacing.Top = 2 Caption = 'Status of logs directory.' ParentColor = False ParentFont = False end object LogsDirectoryButton: TBitBtn AnchorSideLeft.Control = ResetToLogsDirectoryButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = ResetToLogsDirectoryButton Left = 162 Height = 35 Hint = 'Select location of logging files.' Top = 5 Width = 35 BorderSpacing.Left = 2 Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000534D46A0A465 34FFA46534FFA46534FFA46534FFA46534FFA46534FFA46534FFA46534FFA465 34FFA46534FFA46534FFA46534FFA46534FFA46635E9A6673639484848E09786 78FFA5693AFFBA8350FFBA8350FFBA8350FFBA8350FFBA8350FFBA8350FFBA83 50FFBA8350FFBA8350FFBA8350FFBA8350FFB27845FFA56636C0494949E09999 99FFA56839FFD3A67EFFD2A378FFD2A378FFD2A378FFD2A378FFD2A378FFD2A3 78FFD2A378FFD2A378FFD2A378FFD3A479FFD1A57AFFA56635F5484848E29B9B 9BFFA46738FFD5AB85FFCE9C6EFFCE9C6DFFCE9C6DFFCE9C6DFFCE9C6DFFCE9C 6DFFCE9C6DFFCE9C6DFFCE9C6DFFCF9E70FFD5AB84FFA56635F84C4C4CE4A1A1 A1FFA56838FFE2C4A9FFD5A881FFD3A47AFFD3A47AFFD3A47AFFD3A47AFFD3A4 7AFFD3A47AFFD3A47AFFD3A47AFFD4A77EFFDDBA9CFFA56635F9515151E5A4A5 A5FFA56737FFE9D2BEFFDDBA9BFFDDB999FFDCB695FFDBB592FFDAB390FFD9B2 8EFFD8AE89FFD7AD87FFD7AD87FFD8B08BFFE5C9B1FFA56635FA565656E7A9A9 A9FFA46636FFECD8C6FFDDBA99FFDDBA99FFDDBA99FFDDBA99FFDDBA99FFDDBA 99FFDDBA99FFDCB795FFDAB28EFFD9B08BFFE7CFB8FFA56635FB5B5B5BE9AEAE AEFFA56736FFEBD7C4FFDCB794FFDCB794FFDCB794FFDCB794FFDCB794FFDCB7 94FFDCB794FFDCB794FFDCB794FFDAB491FFE6CDB6FFA56635FC5F5F5FE9B3B3 B3FFA46635FFEAD5C1FFDBB491FFDBB491FFDBB591FFDBB591FFDBB592FFDBB5 92FFDBB592FFDBB592FFDBB592FFDCB896FFE7CFB7FFA46634FD656565EBB7B7 B7FFA56635FFEAD3BEFFEAD4BFFFEAD4BFFFEAD4BEFFEAD4BEFFEAD4BEFFE9D3 BEFFE9D3BEFFE9D3BEFFE9D3BEFFE9D3BEFFE8CFB8FFA56534FE6A6A6AECBDBD BDFFA66D41FFA56636FFA56636FFA56636FFA56636FFA56636FFA46635FFA466 35FFA46635FFA46635FFA46534FFA46534FFA46534FFA66837E06E6E6EEEC0C1 C1FFACACACFFAAAAAAFFA7A7A7FFA5A5A5FFA4A4A4FFA4A4A4FFACACACFFB6B6 B6FFB9B9B9FFBBBBBBFFA2A2A2FF6A6A6AA94747470047474700737373EFC5C5 C5FFB0B0B0FFADADADFFABABABFFAAAAAAFFACACACFF8D8D8DF58D8D8DF28C8C 8CF28C8C8CF28C8C8CF2808080F66C6C6C844747470047474700787878F0C9C9 C9FFC7C7C7FFC5C5C5FFC4C4C4FFC4C4C4FFB4B4B4FF747474CA727272387272 7238727272386D6D6D386F6F6F355555550347474700474747007A7A7A9F7979 79EC797979EC797979EC797979EC797979EC797979E278787835474747004747 4700474747004747470047474700474747004747470047474700474747004747 4700474747004747470047474700474747004747470047474700474747004747 4700474747004747470047474700474747004747470047474700 } OnClick = LogsDirectoryButtonClick ParentShowHint = False ShowHint = True TabOrder = 6 end object LogsDirectoryEdit: TEdit AnchorSideLeft.Control = LogsDirectoryButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = LogsDirectoryButton AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 199 Height = 36 Hint = ' Location of logging files.' Top = 5 Width = 567 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 2 BorderSpacing.Right = 3 ParentFont = False ParentShowHint = False ShowHint = True TabOrder = 7 end end ./changelog.txt0000644000175000017500000014355514576573022013655 0ustar anthonyanthonyUDM changelog TODO: - Plotter: access violation in Windows 10 when plotter maximized, workaround: resize plotter window smaller then restart. - SendGet: never recovers if power is lost and new requests are sent during 3second bootload time. A retry could be implemented that waits at least three seconds before trying. - Plotter: Add feature to show an arbitrary star altitude value (for Milky Way effect). - Plotter: add sun elevation to x axis. - GoTo: initial reading does not have valid position logged. - Vector plot: include options for; mpsas scale, cardinal directions, grid, lat, long, elev, start date/time, and end date/time. - GoTo manual coordinate entry not accepted unless Enter pressed on Mac. - Mac port conflicts between SQM/GFS/GoTo should have better error detection then disable connection. - First GoTo reading does not indicate the proper Zenith/Azimuth. - Plotter: Add location data (averaged) if it exists. - Plotter: Show local/GMT start/end times on plot. - Vector plot to Google map .kml overlay somehow. - pacificnew tz error requires fix in upascaltz. DONE: 1.0.0.352 (2024-03-20) - LogContinuously SCP file transfer: allow remote username to be defined. 1.0.0.351 (2024-03-15) - .dat time correction tool: Fix up Sunrise difference tool and plotter to show the sunrise difference. 1.0.0.350 (2024-02-21) - About: Tidy up time zone display. - Plotter: prevent crashing while moving cursor over non-continuous line. - Startup: in Linux allow for DataDirectoryAlternate path defined in the [Directories] section of the configfile. - SVG plot: remove feature until it can load fonts in the future. 1.0.0.349 (2024-02-20) - DLHeader: Fix loading UserComment1-5 upon start. 1.0.0.348 (2024-02-08) - Logcont: "Fixed sunrise/sunset" display fixed for local time. - DLHeader: Add Wikipedia link to TimeZone definitions. 1.0.0.347 (2024-02-08) - Built with Lazarus 3.0, tidied up main window repainting in Linux. - Added version number to Log Continuosly window. 1.0.0.346 (2024-01-17) - About: Added time statistics: UTC, Local, Zone difference time. - Tool: .dat local time reconstruction: Updated to allow whole directory conversion and customized time offset. 1.0.0.345 (2023-12-27) - Plotter: Show unit serial number at bottom right. 1.0.0.344 (2023-12-09) - Statup Options: Allow for multiple USB device IDs (i.e. -SUI,x,y,z) to be selected for LogContinuous. 1.0.0.343 (2023-10-31) - LogCont: Transfer each reading by TCP. 1.0.0.342 (2023-09-19) - DL plotter bugfix: Do not crash when the position is not entered into the .dat file. 1.0.0.341 (2023-09-03) - Added: Help menu now includes direct links to operators manuals and Unihedron resources. 1.0.0.340 (2023-09-01) - Added tool: Filter-Sun-Moon-MW-Clouds.csv 1.0.0.339 (2023-08-13) - Multiple instances of UDM allowed now. udm.log can be appended from any instance. 1.0.0.338 (2023-07-30) - .dat time correction: Added Linear and Sunrise features. 1.0.0.337 (2023-07-16) - XPort reset: failed to save telnet settings, waitfor or timeout on closing statement works now. 1.0.0.337 (2023-07-16) - Access Denied: Reset logfilefile location if saved directory does not exist. - Goto: Clear saved Goto file if saved filename does not exist. 1.0.0.336 (2023-07-15) - Find Ethernet: Use dual subnet mask IP broadcast for multiple Ethernet cards. Broadcast to triple subnet (n.n.n.255) and no subnet (255.255.255.255) 1.0.0.335 (2023-05-10) - Startup option: added -SU command line option to look for only USB devices on startup. - Color model: fixed logging header to define Fixed/Cycling modes. - LogContinuous: Fixed trigger every x minutes uses to 1 if unset. 1.0.0.334 (2023-05-01) - DL retrieve: show the trigger seconds and threshold settings in the retrieved .dat file. 1.0.0.333 (2023-04-26) - Find Ethernet: Use separate subnet mask IP broadcast for multiple Ethernet cards. 1.0.0.332 (2023-04-17) - GPS: Accept GNGGA/GNGSV text as well as the GPGGA/GPGSV text. 1.0.0.331 (2023-04-17) - GPS: Accept GNRMC text as well as the GPRMC text. 1.0.0.330 (2023-04-02) - Label: prints capacity for snow model. 1.0.0.329 (2023-02-9) - LogContinuous: pressing X to close no longer crashes. - Checking for location information in Header passes instead of requiring a restart. 1.0.0.328 (2023-02-8) - Sun-MoonClouds algorithm: Always fill Volts with -1.0 and Status with -1 if fields are empty. - DL set clock: restart reading clock each time settings dialog is opened to show "Reading..." 1.0.0.327 (2023-02-6) - Sun-MoonClouds algorithm: Always output Volts and Status columns even if fields are empty. 1.0.0.326 (2023-01-13) - Sun-MoonClouds algorithm: allow for 1 minute sampling (from 5 minute sampling). 1.0.0.325 (2023-01-10) - Configuration tab: tracking of scrolled window. - View->Config Browser added to allow export/import of serial number specific header file information - Split log file into generic udm.log and SNxxxx.log file for portability when sharing meters. 1.0.0.324 (2022-12-23) - Tools: Cloud removal and Milky Way position tool: rename a field to MinSince3pmStdTime 1.0.0.323 (2022-11-30) - DL clock setting: Added timing instructions. Added charging/running and set indicators. 1.0.0.322 (2022-09-16) - DL: Added identifier for new RTC chip DS1390. - Configuration tab: fixed up reading Holder/Lens/Filter type, was same as previously selected device. - DL Retrieve: Darken font on retrieve notes for Mac. 1.0.0.321 (2022-08-17) - Tools: Cloud removal and Milky Way position tool: bugfix for DST 1.0.0.320 (2022-06-19) - Header: Report Interval settiungs logged to .dat header. - DL-retrieve: Flush retrieve write-cache to solve missing records in large 200k record download. 1.0.0.319 (2022-05-11) - LogCont: Restart logging if restarting from crashed session if only meter is found or meter is defined on command line. 1.0.0.318 (2022-05-10) - Plotter: Allow for European location (with commas). 1.0.0.317 (2022-05-03) - LogCont plot: fixed image name to separate local and remote names. 1.0.0.316 (2022-05-01) - LogCont plot: Add separate image files for each day. HTML includes: 1.0.0.315 (2022-04-02) - LogCont plot: Add best reading for plot. HTML includes: and 1.0.0.314 (2022-03-27) - LogCont plot: bugfix: Moon plotting failed when DST spring makes missing time. 1.0.0.313 (2022-02-26) - LogCont plot: Fixed up twilight date range to switch at new evening. 1.0.0.312 (2022-02-13) - LogCont: Added Moon azimuth to record. - RS232: Fixed selection to disallow other interface selections. 1.0.0.311 (2022-02-05) - Plotter: Added Zero plot setting option to plot the reading line when the mpsas value goes to the invalid reading of zero. 1.0.0.310 (2022-02-03) - Added: Startup options from the File->StartUp options menu operates like command line options. - Logcont: X axis shows date or date range instead of "Sample time". - Added: transfer html include formatted with 5 decimal places. - Fixed: transfer html shows mspas again, was broken whern checking for -- at mpsas =0. 1.0.0.309 (2022-02-01) - Added: Logging Continuous start button and Logging Settings buttons. - Enable Header button when a meter has been selected instead of waiting for the Version button response. 1.0.0.308 (2022-02-01) - NELM, CDM2, MPSAS, NSU: displayed as -- when too bright (mpsas = 0). 1.0.0.307 (2022-01-31) - LogCont: Moon plot drawn on fixed time plot. 1.0.0.306 (2022-01-29) - Information tab: Device details tabs are disabled when no device is selected. - LogCont: Restore size and slider position whern restarting. 1.0.0.305 (2022-01-26) - LogCont: Added evening twilight ranges (x axis) to plot. 1.0.0.304 (2022-01-18) - LogCont: CDM2 display has three decimal points now. - LogCont: Transfer: Fixed NextRecordAt timestamp. 1.0.0.303 (2022-01-14) - Plotter: Fixed crash on missing record type in .dat file. - LogCont: Added minor grid lines (doted on the 0.5mpsas) major grid (solid on the integer mpsas). 1.0.0.302 (2022-01-08) - LogCont: Fixed Night mode Moon plot color. - LogCont: Fixed cdm2 html display. 1.0.0.301 (2022-01-08) - LogCont Added fixed Y axis reading option. - LogCont Fixed cdm2 reading exponent display. 1.0.0.300 (2022-01-05) - LogCont Transfer: Added expect transfer script for SFTP password login. 1.0.0.299 (2021-12-26) - LogCont: Add SFTP transfer feature. 1.0.0.298 (2021-12-19) - LogCont: Remove Chart scale ticks for Moon and Temperature because they look like negative signs. 1.0.0.297 (2021-12-19) - LogCont: Location name and geographical Position from header displayed on readings plot window and sent through html. 1.0.0.296 (2021-12-18) - LogCont: Night mode plot, and html-template updates. 1.0.0.295 (2021-12-16) - LogCont: Added html file to transfer to a server. 1.0.0.294 (2021-12-14) - LogCont: Introduced transferring plot-file to a server. 1.0.0.293 (2021-12-01) - Tools: Cloud removal and Milky Way position tool: - Remove persistent location data when starting up. - Timestamp error trapping for .dat files. - Removed persistent location data to avoid possible errors. - Datetime error format tidied up for error reporting. - Datetime stamp added to not-enough records error. 1.0.0.292 (2021-11-28) - Tools: Cloud removal and Milky Way position tool: Error reporting for missing records include datestamp. 1.0.0.291 (2021-11-28) - Tools: Cloud removal and Milky Way position tool: Added detailed checking and reporting for missing data records. 1.0.0.290 (2021-11-27) - Tools: Cloud removal and Milky Way position tool: Stop on non-contiguous records. 1.0.0.289 (2021-11-26) - Tools: Cloud removal and Milky Way position tool: Allow SQM-LE .dat files to be converted. 1.0.0.288 (2021-11-21) - Tools: .dat to Moon Sun .csv : Processing status shown. 1.0.0.287 (2021-11-19) - Tools: Cloud removal and Milky Way position tool: Remove persistent file selection, now force user to select a new file for conversion. 1.0.0.286 (2021-11-17) - Plotter: Time offset addition of minute, hour, day, week UpDown buttons for faster estimates. - Tool, .dat to Moon Sun .csv : tidy up output header line. 1.0.0.285 (2021-11-06) - Tools: Cloud removal and Milky Way position tool: Added description to tool screen. 1.0.0.284 (2021-11-06) - Tools: Cloud removal and Milky Way position tool: - fix galactic latitude error. 1.0.0.283 (2021-11-05) - Tools: Cloud removal and Milky Way position tool: - label of "Not-Specified" location. - change galactic longitdue calculation 1.0.0.282 (2021-11-02) - Tools: Cloud removal and Milky Way position tool: Position checking for .dat file, output text cleaned up. 1.0.0.281 (2021-11-02) - Tools: Cloud removal and Milky Way position tool: Import locatyion name from .dat, rename menu name, rename file outpuit suffix 1.0.0.280 (2021-11-01) - Tools: Cloud removal and Milky Way position tool: allowed location to be read from .dat file. 1.0.0.279 (2021-10-29) - Tools: Cloud removal and Milky Way position tool: removed time consuming debugging statements. 1.0.0.278 (2021-10-28) - time correction tool, prevent changing of time offset that is read from .dat file. 1.0.0.277 (2021-10-19) - Tools: Concatenate tool added to combine multiple .dat files from a directory. - Tools: Cloud removal and Milky Way position tool beta added. 1.0.0.276 (2021-10-09) - Header/Worldmap: Apply location redraws the cursor on the map. - Plotter: window resizing allowed with scrolled control section for smaller screens. 1.0.0.275 (2021-07-10) - Plotter: Clear Multiple mode files from list when Clear is pressed. - DLRetrieve: Record computations moved outside record writing to try to eliminate dropped characters on slow Mac computers. 1.0.0.274 (2021-06-09) - DL-retreive page: re-arrange/rename binary/ascii button for easier identification. - DL-retreive page: Fix ASCII retreive function to work with newer Vector model firmware. 1.0.0.273 (2021-06-07) - Snow: fix log continuous to work when snow led is disabled. 1.0.0.272 (2021-05-09) - Plotter: Fixed up cursor field alignments at bottom of plot window. 1.0.0.271 (2021-05-08) - Convert .dat to Moon .csv now shows line number of corrupted .dat file. 1.0.0.270 (2021-05-07) - World coordinates entry fixed for only decimal point "." as defined in the SkyGlow Standard. 1.0.0.269 (2021-01-23) - Vector tab: Moved dependency on lazopenglcontext from udm to vector to avoid loading and crashing Raspberry Pi remote connection. 1.0.0.268 (2021-01-18) - Vector plot: "enhanced1" colour scheme name changed to "2016newatlas". - Vector plot: Replot vector file when "Colour scheme" or "Range" is changed. 1.0.0.267 (2021-01-04) - Plotter: Continuous line option overrides all initial values. 1.0.0.266 (2020-12-28) - Log continuously: Added Split file hour option, instead of always splitting at mignight. 1.0.0.265 (2020-12-26) - Firmware tab: Fixed USB disconnect mode to work on a Mac (Darwin) 1.0.0.264 (2020-12-06) - Plotter: resize oversized window to 1000x1000 to reduce access violation in Windows 10. 1.0.0.263 (2020-12-05) - Plotter: resize oversized window to prevent access violation in Windows 10. 1.0.0.262 (2020-12-04) - Plotter: Remove writeln; attempt to resolve access violation in Windows 10. 1.0.0.261 (2020-12-04) - Plotter: Remove unused code; attempt to resolve access violation in Windows 10. 1.0.0.260 (2020-11-16) - Plot lighpollutionmap .txt files. 1.0.0.259 (2020-09-10) - GPS is Navilock NL-602U: Display only proper filtered NMEA string. 1.0.0.258 (2020-09-09) - GPS is Navilock NL-602U: GPRMC field that is not preceded with CRLF, $ only start. 1.0.0.257 (2020-09-09) - GPS is Navilock NL-602U: GPRMC field with trainling space. 1.0.0.256 (2020-09-09) - Test log continuous rollover hour customization (away froim midnight only). - GPS is Navilock NL-602U: GPRMC field number (from 14 to any). 1.0.0.255 (2020-06-30) - BugFix: LogCont Moon and GPS .dat header labelling was swapped. 1.0.0.254 (2020-06-25) - Light calibration entry now accepts decimal point while in Europe region. 1.0.0.253 (2020-05-17) - Plotter: Snow unit plot fixed. 1.0.0.252 (2020-03-07) - LogCont: Added option to get Raw frequency 'rFx' reading from FW 75 and up. 1.0.0.251 (2020-02-05) - Plotter: Fix crash when opening on Win64 due to plot pointer style variable being undefined. 1.0.0.250 (2020-02-02) - Plotter: Add some try/except error messages to plotter unit. 1.0.0.249 (2020-01-29) - Plotter: fix MPSAS Y scale showing negative values introduced earlier. 1.0.0.248 (2020-01-25) - Plotter: fix missing data from LU model introduced in last edit. - DL tab: remove wrong mouseover hint for DL trigger panel. 1.0.0.247 (2019-12-10) - LogCont plotter fixed MPSAS range after Moon elevation was recently added. - TimeZone: problem "no valid first week day for" "Sunday" after .... revert back to tzdb-2019a since 2019c fails. - Colormodel: fix up plot to differentiate betweem MSAS and MSASRaw field and various other plotting features fixed. - Colormodel: temporarily change darkness plot to Counts (period) since internal meter calculation of MPSAS did not allow for overflow (especially in Blue filtered values. 1.0.0.246 (2019-11-17) - LE: Added statusmessage note to press FIND after resetting XPort defaults. 1.0.0.245 (2019-11-02) - LogCont: clear old temperature series plot when re-recording. 1.0.0.244 (2019-11-01) - Mac: Find box font for Cocoa now shows fixed font for better alignment. 1.0.0.243 (2019-10-23) - Mac: Fixed internal references and compiled for 64 bit Catalina - Firmware: add USB serial port check button to help recover wrong firmware install. 1.0.0.242 (2019-10-16) - DL: Device: Real Time Clock setting window resized for Windows. - Firmware: Add reset cycling button for special cases of dead firmware install. 1.0.0.241 (2019-10-16) - Firmware update: remove initial reset wait so that bricked meter be reset from power up instead of programmed reset. 1.0.0.240 (2019-10-03) - Plotter: Accumulate mode fixed no longer makes previous plot lines invisible. 1.0.0.239 (2019-09-15) - GoTo: Command line accepts naming GoTo script -LCGN,name 1.0.0.238 (2019-09-11) - Snow: DL storage display handles readings with snow enabled or disabled. - Timezone: Tried updating to tzdata2019c, but there was a date failure. Had to revert to tzdata2019b. 1.0.0.237 (2019-09-10) - Snow: Binary retrieve for DL Snow logging implemented. - Snow: Storage display, and Retrieve All ASCII now show full unsigned large size Standard and Snow frequencies instead of cropped signed values. 1.0.0.236 (2019-08-21) - Plotter: Ignore timestamps older than year 2000 since something must have went wrong with the .dat file. 1.0.0.235 (2019-08-20) - GoTo: added commandline option to start GoTo logging then shutdown when done. 1.0.0.234 (2019-08-02) - Tool: ".dat to Moon Sun .csv" Added Sun elevation. - Plotter: Fixed up dotted plot lines to show volt/temp/sun/moon even when mspas is saturated. 1.0.0.233 (2019-07-30) - Plotter: fixed up wrong directory separator for Windows. 1.0.0.232 (2019-07-29) - Plotter: Customized line colors and widths defined in ini/cfg file. - Plotter: Dots on MPSAS plot line enhanced: tiny dot=saturated light sensor (zero unconnected plot line), square=initial reading, none=subsequent readings. 1.0.0.231 (2019-07-28) - Plotter: Twilight lines terminated with triangle pointers for better visibility. - Plotter: @pointer procedures moved up in a test to solve Windows access violation problem. - Plotter: Added some debugging log messages in a test to solve Windows access violation problem. 1.0.0.230 (2019-07-27) - Plotter: Twilight lines properly limited to start and end of plot. 1.0.0.229 (2019-07-25) - Plotter: Directory separator for windows files fixed to prevent ioerror. - Plotter: Some poistion parsing got confused in European settings, now decimal points are forced for lat/lon positions. 1.0.0.228 (2019-07-23) - DL: Log one record: warn if nothing logged due to threshold or anything else. - Plotter: initial points for Temperature and Voltage visible now in same color as pen. - Plotter: initial points for MPSAS now in same color as pen (red, not black). 1.0.0.227 (2019-07-22) - Command line parameters: Added some selected device name log comments for troubleshooting. - Plotter: Multiplot selection checks for duplicates before adding new plots. 1.0.0.226 (2019-07-10) - Configuration-Label: crashed on Windows, no more. 1.0.0.225 (2019-07-9) - Plotter: Switched panning from middle mouse button to right mouse button for laptop use. - Log one record: required at least 6 fields, more caused crash. Now reuires at least 6 fields. 1.0.0.224 (2019-07-08) - Plotter: Temperature scale color set to more readable darker green. - Plotter: Cursor outside plot data when changing plots caused a crash. 1.0.0.223 (2019-07-06) - Plotter: European plotting of mpsas showed 0,00 instead of n.nn 1.0.0.222 (2019-06-28) - Plotter: Reading at cursor text was too long, suffix shortened from mpsas to m. - DL: Retrieve All (Ascii) stopped because it was expecting an extra field. 1.0.0.221 (2019-06-27) - Firmware loading mask filters DL and DLS models separately. 1.0.0.220 (2019-06-23) - .dat to moon csv now accepts DL.dat files from firmware version 66 Snow factor. 1.0.0.219 (2019-06-15) - LogCont: Allows recording of snow accessory LED status. 1.0.0.218 (2019-06-11) - DL: Updated Snow model (separate model) with 32 byte records and linear field data for standard and snow recording. 1.0.0.217 (2019-05-28) - Tool: .dat to .kml now accepts minimum number of fields for Timestamp,MSAS,Latitude,Longitude 1.0.0.216 (2019-05-03) - GPS lat/lon now working for European decimal comma. 1.0.0.215 (2019-04-25) - DL retrieve snow factor label included in header. - .dat to moon csv now accepts DL.dat files with Snow factor. 1.0.0.214 (2019-04-21) - DL retrieve snow factor fields with "Retrieve All" button now works. 1.0.0.213 (2019-04-01) - Plotter: add option to plot continuous instead of gaps caused from irregular timed recordings. - DL Retrieve page: Plotter button fixed to allow clicking on .dat files (was a show/showmodal problem). 1.0.0.212 (2019-03-29) - Log Continuous FTP transfer error reporting (for cannot FTP) instead of ambiguous IOERROR. - DL: threshold value separate variable for slow GUI like MacOS or possibly Windows. Might have been preventing log continuous. - Snow DL settings only show when Snow logging isw enabled now. 1.0.0.211 (2019-03-10) - Display logged snow factor from embedded data in datalogged record where 0 to 255 = 0 to 4.00mpsas. - Indicate "UTC Date:" in datalog record view instead of just "Date:". - DL: "Ascii retrieve all" allows more fields from new models insetad of just stopping. - Accessory tab shows Snow LED reported frequencies. 1.0.0.210 (2019-02-27) - Calibration button colors added to Mac and Windows versions. 1.0.0.209 (2019-02-25) - removed crashing status message for creating new logs directory before status line is created. 1.0.0.208 (2019-02-22) - Internal updating for Lazarus verion 2, and for use on Mac OSX Mojave 10.14.3. 1.0.0.207 (2019-01-15) - Snow LED: reading while freshness is unchecked 1.0.0.206 (2019-01-14) - Snow LED: Logging control 1.0.0.205 (2019-01-06) - Snow LED: ON/OFF control added to accessories page. - Plotter: drag zoom now non-proportional to all for any zoom-in shape. 1.0.0.204 (2019-01-01) - LR model: wrong record count was expected in log continuous. 1.0.0.203 (2018-12-23) - GoTo: Synscan; Hide L command for GoTo status, too verbose. 1.0.0.202 (2018-12-22) - GoTo: Synscan; Expose L command for GoTo status. 1.0.0.201 (2018-12-21) - GoTo: Synscan; fixed up sending to 359deg and padded '00'. 1.0.0.200 (2018-12-21) - GoTo: Synscan; improved status message for testing set/get strings. 1.0.0.199 (2018-12-19) - GoTo: Synscan entry off by 90 degrees and Zenith/Azimuth mixed up for get-coordinates. 1.0.0.198 (2018-12-18) - Goto: switching machine types does not immediately register when pressing "Set" - Goto: Synscan set zenith/azimuth was off by 90degrees. 1.0.0.197 (2018-12-18) - DLRetrieve-VectorPlot: Added button for "Export image" to PNG file. 1.0.0.196 (2018-12-17) - GoTo: Added some Error checking for Synscan 1.0.0.195 (2018-12-16) - GoTo: Renamed Synscan to more accurate SynscanV4 - GoTo: Converted all Altitude references to more astronmically standard Zenith. 1.0.0.194 (2018-12-15) - GoTo: Synscan added CRLF. - GoTo: Reading of default.goto file for positioning. 1.0.0.193 (2018-12-15) - GoTo: iOptron get/set position. 1.0.0.192 (2018-11-29) - upascaltz updated to parse latest tz database. - workarounds for tz database removed. - removed obsolete pacificnew time zone region. 1.0.0.191 (2018-11-28) - Timezone database updated to version 2018g 1.0.0.190 (2018-11-04) - GoTo: Precise go to position command fixed 'b'. 1.0.0.189 (2018-11-01) - Plotter: Fix voltage range to 2 to 6V. 1.0.0.188 (2018-10-31) - GoTo: only send commands with CRLF, Add Go to position. 1.0.0.187 (2018-10-31) - GoTo: Added extra command entry testing and watching for # instead of CRLF in responses 1.0.0.186 (2018-10-30) - Model numbering for new SQM-LE lens = SQM-L2E 1.0.0.185 (2018-10-28) - GoTo: Add CRLF to end of commands. 1.0.0.184 (2018-10-27) - GoTo: Populate port options when LogCont window is created. 1.0.0.183 (2018-10-27) - GoTo: touched up serial reporting windows, added dropdown list for Mac. 1.0.0.182 (2018-10-18) - Time zone database updated to "2018f release", had to comment line 993 of europe, uncomment line 995. 1.0.0.181 (2018-10-14) - Synscan: Initial test for connectivity and Alt-Az reading on Log Continuous page. 1.0.0.180 (2018-10-11) - GPS: Allow baud rate of 115200 for GPS GlobalSat BU-353 S4 (5Hz), Selection box added to Log continuous GPS page. 1.0.0.179 (2018-09-23) - Bugfix: DL retrieve all bin; reset comm busy time to prevent dropout with new communication model. 1.0.0.178 (2018-09-21) - Vector plot: save Orientation setting - Log continuous sound alerts deafult to empty command for all OS to find their own play command. 1.0.0.177 (2018-9-18) - Vector plot: - Legend color range select method changed for easier use with radio buttons. - Min/max reset when loading a new file. - Legend scale text updated on when min/max and reset pressed. - Azimuth cursor value fixed (0-360). 1.0.0.176 (2018-9-14) - Logcont: Added option to log one single .dat file instead of spliiting at each new day. - Vector plot: option for customized color legends in .ucld (semicolon separated variables) text files. - Vector plot: Option for not displying grid, and the other options are saved. 1.0.0.175 (2018-9-13) - requires Packages->OnlinePackagemanager->PlaySoundPackage installation. - Changed sound to pssync so that zombies die, and application.processmessages to keep timer running smoothly (Test Mac alert sound stopping after a while). 1.0.0.174 (2018-9-11) - Report interval page: added not about loading numbers. - color scheme lookup table handler for .ucld file on vector plot - Accesory page: touch up text sizing to prevent overlap. - Alert sounds: szNonWindowsPlayCommand only searched once at beginning for quicker access. 1.0.0.173 (2018-9-09) - Comm: Check Eth connect status before disconnecting. This may correct Debug not working because of EthSocket.CloseSocket crashing. And may solve Vector plot crashes in Windows when already connected to meter. - Comm: manual purge of USB since some Mac comm does not purge previous strings and identifies meter as other device. 1.0.0.172 (2018-9-08) - Vector plot: was crashing on Windows when DLretrieve was opened. 1.0.0.171 (2018-9-08) - Vector plot: option to plot either MPSA or MPSA-raw 1.0.0.170 (2018-9-07) - color plot: each color now associated with MPSAS Y axis lines series. - View directories: Log path cannot be changed on Mac. - Logcont: Alert sounds missing from frehsness setting restores to always when enabled. - Logcont: Alert sounds separately controlled. 1.0.0.169 (2018-9-06) - Log Continuously: Close/Open comm before getreading to dual color cycling. 1.0.0.168 (2018-9-05) - Vector plot: Tidy up Orientation box - Vector plot: Remove color scheme options until they are working. - Comm: Reading request closecomm/opencomm because the Eth model times out, and sending to a closed port still gets sent (and again on retry). - color: Clear reading box after color change since a cycled color setting will cause a change anyway. 1.0.0.167 (2018-9-03) - LogCont: Change "Moving platform" setting label to "Freshness", and remove restriction of 1sec trigger time. 1.0.0.166 (2018-8-31) - color: Allow extra field from firmware 59 which now reports color-cycling field. 1.0.0.165 (2018-8-27) - Bugfix: remove doubleclicking on Found-Devices listbox, it caused problems and confusion in Windows. - color model: added Log Continuous logging for unaveraged and fresh readings. 1.0.0.164 (2018-8-27) - color: Add fresh/stale status to info:reading tab 1.0.0.163 (2018-8-24) - DL: Remove extra header definition added by MSASRaw,Status (Fresh/Stale) during retrieve. 1.0.0.162 (2018-8-15) - Fixed: View-Log save file works on Windows now. Was saving to filename with improper characters. 1.0.0.161 (2018-8-12) - Added: Scroll window to DL header settings page for larger fonts and smaller computer screens. - Documented: Limit for log contiunuous mode record range. Toottip shows 0 for unlimited. 1.0.0.160 (2018-8-6) - Added: Sending CSV option to log continuous transfer page. 1.0.0.159 (2018-7-26) - Fixed up communications connection to LE/LU. - Add check for conflicting GPS and meter ports. 1.0.0.158 (2018-7-22) - Mac RS232 reaction time improved (Opencomm to variable RS232PortName). - Spacing adjustments on Configutation tab for large font widget sets. - Added -DLR command line option to start up showing Datalogger retreive window. 1.0.0.157 (2018-6-19) - Vector: default to first page in calibration window and enable openGL displays. - WiFi: Identification, IP, port addition when found item clicked. - Log continuous: crashed when temperature plot was not enabled. - Vector plot: Fix Mac and Windows Min/Max updating for MVC methods. 1.0.0.156 (2018-6-03) - Cosmetic: Button sizing adjustments on various screens to accomadate for other OS layout themes. 1.0.0.155 (2018-5-23) - Vector-plot: Allow for Zenith field only (no Altitude field) in .dat file. 1.0.0.154 (2018-5-21) - Vector-plot: Status messages during parsing .dat for sky map files. - Vector-plot: Added Range setting buttons Reset and Min/Max. 1.0.0.153 (2018-5-20) - Firmware: remove multiple slashes from firmware file displayed filename path. - Plotter fix: Sun or moon enabled shows elevation legend - Plotter: fixed some sizing issues that got cropped in Ubuntu 1.0.0.152 (2018-5-19) - Log Continuous: Added optional temperature line to plot, fixed MSPAS inversion code to allow non-inverted temperature. 1.0.0.151 (2018-5-16) - Plotter: Separate twilight line series into separatly enabled lines (Plotter->Settings tab). - Plotter: Allow Darkness plot disabling so that other lines can be seen better (Plotter->Settings tab). - Plotter: Clip Sun/Moon plot option for elevations 18 degrees below horizon (unaffecting readings). 1.0.0.150 (2018-5-14) - Add: tool to convert .dat file date to JD and UT decimal date format. - Hints fixed on Plotter page. 1.0.0.149 (2018-5-13) - Typo Column header on Firmware page was "Filen name". 1.0.0.148 (2018-5-10) - Fixed: dat to kml import for DL model parsing data fields different location from LU model. - Fixed: removed misidentification of device type in version 147. 1.0.0.147 (2018-5-09) - Fixed: dat to kml import for DL model parsing data line description. - Added: UDP Identification for other device types with custom UDP response (i.e. Wifi) added. 1.0.0.146 (2018-4-17) - Bugfix: Tool for firmware 49-56 .dat correction no longer stops when the firmware version is undefined. 1.0.0.145 (2018-4-17) - Tool added: Average readings from SQM-Pro log files 1.0.0.144 (2018-4-16) - Mac bug fix: only one device found did not instantly enable some control buttons. 1.0.0.143 (2018-4-15) - Alarm feature enhanced fixed for slow frequency logging. 1.0.0.142 (2018-4-15) - Large reading display on information tab. - Alarm feature enhanced with snooze button. 1.0.0.141 (2018-3-29) - DLHeader: Correction to reduce duplicate entries in TZ Location drop down box. - Log continuous bugfix: Do not lock up on missing local time zone name, show message to check header. 1.0.0.140 (2018-3-28) - Plotter: Feature added to Save chart as SVG (vector)or PNG (bitmap) to plotter directory. 1.0.0.139 (2018-3-25) - Header: List hardware identity value in the header for confirmation and identification purposes. - Header: Cleaned up header line counting to be more accurate. 1.0.0.138 (2018-3-18) - Plotter: File list initially sorted by filename. - Plotter: Autoscaling on all axis. 1.0.0.137 (2018-3-14) - Save log to a file, added to log window. 1.0.0.136 (2018-3-05) - kml conversion allows multiple color themes. 1.0.0.135 (2018-3-01) - kml conversion now creates colored placemarks. 1.0.0.134 (2018-2-25) - FTP daily fixed. 1.0.0.133 (2018-2-22) - Windows USB: bugfix to prevent crashes when the FTDI USB driver does not properly report USB serial number. 1.0.0.132 (2018-2-19) - DL Retrieve-All: do not show GPS header if GPS was turned on during logged data retrieve. 1.0.0.131 (2018-2-14) - GPS tab: GUI label positioning corrected so that screen can be enlarged properly. 1.0.0.130 (2018-2-11) - Plotter: Do not fault on no sunrise/set calculable (for places/times where sun does not rise or set). 1.0.0.129 (2018-2-09) - Bugfix: Version 49-56 tool error, fix for European comma/decimal place. 1.0.0.128 (2018-2-09) - Bugfix: Version 49-56 tool error correcting for wrong selected model. 1.0.0.127 (2018-2-09) - Bugfix: Version 49-56 tool error checking/reporting for wrong selected model. 1.0.0.126 (2018-2-09) - Tool to correct DL .dat files for version 49-56 with subsequent readings 0.66 too bright. 1.0.0.125 (2018-1-20) - Cosmetic: remove multiple slashes from saved filename displays on retrieve-all and directories page. - added tzdata 2018c updated time zones. 1.0.0.124 (2017-12-31) - Bugfix: Log Continuous charting caused memory to grow. - Minor feature: worldmap shows current actual settings when called up. - bugfix: Plotter position missing caused UTC based Sun/Moon readings instead of disabling. - Plotter: inhibit line drawing for unrecorded sections of log data. - Plotter : add Sun/Civil/Nautical/Astronmical rise/set markers with checkbox enable. - Plotter : grid lines check box enable/disable. - Plotter : grid lines check box enable/disable. - Plotter : cursor value shows timestamp. 1.0.0.123 (2017-12-20) - Added plotter button to DL-retrieve screen, rename old plot tab there to Vector-plot. - Added DL battery voltage plot to plotter. 1.0.0.122 (2017-12-12) - bugfix: Plotter directory causes crash if only one file exists with long filename. 1.0.0.121 (2017-12-10) - .dat Tool added to reconstruct local time records from UTC field and manually set timezone. 1.0.0.120 (2017-12-09) - DL: UTC to Local time conversion repaired (was not repsecting Auckland DST) [upascaltz update]. - Plotter: improved error handling. 1.0.0.119 (2017-12-08) - Plotter: Twilight times marked on plot. - Log view shows millisecond timestamp for more accurate debugging. 1.0.0.118 (2017-10-30) - Plotter: - Update file selection method to conform to Mac use. - Added time offset to allow to plots to be manually synchronized. - Screen layout changed for bigger chart preview. - Saved window panel size changes. - Logs directory resettable from directories page. - Logs directory changeable and resettable from DL retrieve page. 1.0.0.117 (2017-10-19) - Minor fixes: - Set firmware file filter to *.hex for un-modeled device selection. - Initial Load firmware status changed to "waiting for button to be pressed". 1.0.0.116 (2017-10-16) - Fix: Log continuous crashed when an annotation key was pressed. 1.0.0.115 (2017-10-08) - Fix: Firmware loading from other directories fixed (added directory seperator). - Log humidity from accessory. 1.0.0.114 (2017-10-08) - Fix: Mac Firmware tab. Change directory and Load button now working. 1.0.0.113 (2017-10-02) - Fix: Mac High DPI Font on Configuration tab main table was too small. 1.0.0.112 (2017-09-30) - Fix: Mac version Local timezone name was missing when header screen called up. - Fix: Mac Font and text on Configuration tab main table and lock switch options. 1.0.0.111 (2017-09-30) - Fix: Audio Alarm and Alert can be diabled/enabled in Mac while running. 1.0.0.110 (2017-09-26) - Enhancement: Added Audio Alarm for darknes into Log continuous panel. 1.0.0.109 (2017-09-18) - Enhandcement: Firmware selection discriminates various models better (model 4 and 3). - Enhancement: Reading failure suggests to check Report interval and Accessories pages for possible fixes. 1.0.0.108 (2017-08-24) - DL - firmware file selection filter for only DL files (DL-V files not shown). 1.0.0.107 (2017-08-23) - DL - added Tool ".dat time coprrection" to correct .dat files for logged time difference - Plotter: fixed up many file read errors and changed chart navigation to use scroll wheel for zooming. - color model - added field descriptors in .dat header 1.0.0.106 (2017-08-16) - Plotter: loads timezone names on dropdown properly on first view. 1.0.0.106 (2017-08-15) - Color unit parsing for two extra parameters of scaling and selected color. 1.0.0.105 (2017-08-14) - Bugfix: Command line parameters recently crashed because of internal stringlist copy/assign change in Lazarus/FPC 1.0.0.104 (2017-06-29) - Change to information tab when a device is selected in the device list, this clears up some issues of version number dependent features. 1.0.0.103 (2017-06-12) - Add license information (GPL) to about screen. 1.0.0.102 (2017-06-01) - Accessories-relay: add "Light threshold" value indicator for Windows OS. 1.0.0.101 (2017-05-23) - Plotter: fixed some error definitions for modified .dat file names. 1.0.0.100 (2017-05-05) - Lens type feedback defaulted to N/A if meter does not respond. This prevents a crash when configuration readings are requested too fast. 1.0.0.99 (2017-04-27) - color model shows lock setting on configuration page. - Plotter shows two decimal places (instead of one). 1.0.0.98 (2017-04-26) - color model asynchronous screen updates separated from code holding registers to remove getversion errors. - clear Ethernet error on opencomm to reduce lag on slow networks. - triple click on find box no longer produces unfound version. - empty instrument ID entries in the registry are ignored on the find box. - progress of finding devices detailed in log for timing purposes. - civil morning and twilight dots added to plotter. 1.0.0.97 (2017-04-21) - Plotter chart updated to not crash on non-standard files. 1.0.0.96 (2017-04-04) - Plotter chart updated for accept DL .dat files. - command line option -N (no startup scan for devices). - command line option -P (display plotter window). - DL interface for firmware feature 49 with initial and subsequent records. 1.0.0.95 (2017-03-24) - Log continuous option for maximum records logged added. 1.0.0.94 (2017-03-09) - color model updates for readings and logging. 1.0.0.93 (2017-03-02) - Log continuous moon data logging option added. 1.0.0.92 (2017-02-27) - prompt to overwrite configuration log file. 1.0.0.91 (2017-02-03) - DL "retrieve all binary" changed to send pre-requests as flow control for slow computers. 1.0.0.90 (2017-02-02) - DL-Retrieve page - adjust screen size for small screens. 1.0.0.89 (2017-01-10) - LU remove lock description only usable for LE model. 1.0.0.88 (2016-12-26) - Log-Continuous Pause button added 1.0.0.87 (2016-12-17) - LE Lock settings added. 1.0.0.86 (2016-12-13) - Vector retrieve all binary mode added to read new firmware feature 45. 1.0.0.85 (2016-12-11) - DL retrieve all binary mode added to read new firmware feature 45. 1.0.0.84 (2016-11-24) - Log continuous audio alert option added to play a sound 2 seconds before each reading. 1.0.0.83 (2016-11-21) - GPS parse decimal separator fix for European decimals. - GPS fix for annotate text before GPS text in .dat file. 1.0.0.82 (2016-10-31) - GPS Tool to convert .dat to .kml file added. 1.0.0.80 (2016-09-26) - DL: Erase database message updated and erase button removed after erasing. 1.0.0.79 (2016-09-04) - Crossover code indicator fixed on Report interval page. 1.0.0.78 (2016-08-30) - GPS integration into UDM for all models. Requires a USB GPS like the GlobalSat BU-353. - Colorize Light and Dark cal button when calibration values are out of range. - Vector: increase size of monitoring visuals for azimuth and angle. 1.0.0.77 (2016-07-05) - Add accessories tab I2C and LED options. 1.0.0.76 (2016-06-26) - Close Log Continuous files after each record to avoid file "access denied" errors. Update DLRetrieve for closing DLHeader. 1.0.0.75 (2016-06-26) - test to suppress writelog crash during Log Continuous. 1.0.0.74 (2016-06-19) - debugging enabled for customer troubleshooting. 1.0.0.73 (2016-05-30) - Add fixed compensation into GDM (magnetometer) logging 1.0.0.72 (2016-05-28) - Windows find USB fixed (caused by FPC 3.0 chnages to Tstringlist.sort) 1.0.0.71 (2016-05-28) - Mag: temperatures over 32 not negative anymore. 1.0.0.70 (2016-05-22) - LR: do not list RTC model in version info - DL: added indicator for missing/defective EEPROM memory chip to Configuration page. - V: one decimal place added to Altitude angle (xx.x) for accuracy checking. Note: testing shows better than +/- 1 degree accuracy Headers corrected for "one record", "log cont" 1.0.0.68 (2016-02-25) - fix DL battery estimator to include tq (minor non-critical change). - List new RTC version on Version window, Calibration report, and meter label. 1.0.0.67 (2016-02-09) - FTP dat files fixed for Windows operation. 1.0.0.66 (2016-02-09) - Feature to FTP or SCP dat files to a server while logging continuously. 1.0.0.65 (2016-01-17) - Status bar coloring does not work (all black for some color themes), changed to default. - Continuous log plot now allows inverted MPSAS scale. - Fixed many memory leaks, including some log-continuous growing leaks. 1.0.0.64 (20151215) - Added vector plot identification of older UDM-stored (below 54) dat files. - Vector plot: removed tiny red dots when showlines is not selected. Dots only mode shows circled red dots now. - Vector plot: Hourglass cursor added to show lengthy plot recalculation time. - Vector plot: Allow second data files to be opened without crashing. 1.0.0.63 (20151117) - Added threshold limit to Log Continuous page 1.0.0.62 (20151018) - Configuration page refresh mpsas reading now shows last digit value instead of 0. 1.0.0.61 (20150924) - local timezone region and name drop down combo boxes made read only to prevent user from entering invalid descriptions causing "Error! IORESULT: 0" during retrieve all records. 1.0.0.60 (20150910) - Header elevation had decimal value, now integer. - Header definitions now opens PDF as well as going IDA link. 1.0.0.59 (20150815) - Allow setting SQM-LE XPort defaults button when single click on Found Erthernet device. 1.0.0.58 (20150814) - Vector model: remove dual v2x v1x accell/mag requests from log continuous mode. 1.0.0.57 (20150813) - Vector model: - remove ""0.0" is not a valid float" error for decimal=comma regions (like Europe). - DL Retrieve All corrected CSV heading of Ax, Ay, Ax to Ax, Ay, Az - plot Show data dialog cancels properly on unselected file. - plot ShowLines toggle fixed. - plot Legend range adjustable by entering min/max values. - disabled export image button since it only exports the plot (not the legend). - reorganized plot controls. 1.0.0.56 (20150707) - DL retrieve now logs the time difference which is helpful for interpreting long data logs that need more accurate timestamps. - RS232 firmware update is properly enabled aftre LR model has been identified. 1.0.0.55 (20150608) - DL time difference display (Data Logging tab) now shows "slow/fast" indication instead of just absolute time difference. - Vector calibration ignores magnetic spikes (from lighting ballast etc.). - Vector model: header contains calibration information. - Vector model: Plot now properly ignores header calibration information. 1.0.0.54 (20150603) - Vector model: Log Continuous mode logs raw Accelerometer and magnetometer values - Vector model: Log Continuous mode and DL Retrieve mode logs Zenith degrees (as well as Altitude) per SDF_1.0 format. 1.0.0.53 (20150531) - Trap exceptions for places where sun does not rise/set to prevent error during log cont. mode when location is defined. 1.0.0.52 (20150514) - invert Vector plot legend (bright 10mpsas at top, dark 22mpsas at bottom) 1.0.0.51 (20150508) - fix: Comm Terminal auto scroll windows - Add range settings to DL retrieve page. 1.0.0.50 (20150505) - Bugfix: reading button reading least significant digit was zero from version since version 1.0.0.45 1.0.0.49 - Feature: Show Instrument_ID from header description on "Found devices" listing. - Bugfix: Warn if timezone header settings contain spaces. 1.0.0.48 - Allow DL retrieve window to selected from Tools menu if no DL is attached. - Fix vector data loading in Windows. 1.0.0.47 - fix spelling mistake (Azimuth) in Vector log header description. - DL header "number of lines"; remove unnecessary "+" at end which was added a while ago. 1.0.0.46 - Show logs directory in View:Directories dialog - Allow double-click in multi-device found window to immediately get reading. 1.0.0.45 - Reading button now properly shows negative signed temperatures instead of 0.0C 1.0.0.44 - Added Ethernet "XPort defaults" error checking for non-existent or slow telnet server. 1.0.0.43 - add simulation-from-csv-file feature. 1.0.0.42 - Remove Vector plot tab from Retrieve page for all other models. 1.0.0.41 - ADA factor tab selected automatically on log cont page. - Configuration page shows temperature alarm in color now. 1.0.0.40 - Logcont trigger control radio button text contains integer spinwheel 1.0.0.39 - Vector: Add vibration count to retrieve all function. - LogCont chart dots now obey trigger settings, not every 1 second. - Logcont left legend marks formatted at 2 decimal places now (#.##) 1.0.0.38 - Plot line thickness enlarged from 1 pixel to 2 pixels for better readability - Log continuous page changes to make larger chart tab and move trigger to separate tab shown on startup. 1.0.0.37 - Clean up results windows after loading firmware 1.0.0.36 - LR port select added /dev/ttyS* options and sorts entries 1.0.0.35 - Minor improvements to DL screen - Generic vector model updates - Configuration tab: resize calibration data window to fit larger data set 1.0.0.34 - DL auto identify various EEPROM FLASH sizes - simple plot of points added to log continuous page - remove extra LM#x that sets DL mode every time Data Logging tab is selected 1.0.0.33 - added two view->log messages to identify the command line and configpath - firmware files show proper date, and old ones have been moved to archives sub-directory 1.0.0.32 - added some command line options for auto logging - changes from the configuration page no longer trigger device reads - vector model added - USB-find troubleshooting info added to log 1.0.0.31 2014-02-26 - rotstage set to full steps (50 steps per 90 degrees) 1.0.0.30 2014-02-16 - remove auto communication to get calibration and device info when device is initially selected - add GDM feedback buttons to log continuously screen 1.0.0.29 2014-01-23 - Add rotational stage 'rotstage' control 1.0.0.28 2014-01-13 - Add: Tool to convert old style csv files to new sttyle dat files. - ADA (non-SQM) device logging 1.0.0.27 2013-12-21 - Add: Tool to add Moon data to .dat files and output .csv file for spreadsheet 1.0.0.26 2013-11-20 - Fix: DL logfile fix for missing European floating point records caused from last two changes. 1.0.0.25 2013-11-20 - Fix: DL logfile positive temperatures missing from last change. 1.0.0.24 2013-11-17 - Fix: DL logfile negative temperatures cropped decimal place. 1.0.0.23 2013-11-11 - change decimal separator from international to decimal point for compatibility to header spec 1.0.0.22 2013-11-10 - LR model: added /dev/ttyUSB* defaults for Linux - Timezone for DL removed from DAT records for compatibility to header spec 1.0.0.21 2013-10-07 - Timezone for DL retrieve fixed, and listed in DAT records. - CRLF properly logged in .dat files according to header specification. - Window can be resized so that more found devices are shown without scrolling. - Option for finding USB or Ethernet devices only from file menu. 1.0.0.20 2013-07-23 - Added synchronous and persistent options to log-continuous hotkey-annotations. 1.0.0.19 2013-07-19 - Fix Mac Enter on DL trigger values causes Find button to be pressed. 1.0.0.18 2013-06-22 - Fixed up hotkey annotation to allow for more specific hotkeys (like numpad keys) 1.0.0.17 2013-06-19 Added annotation and hotkeys to Log-continuous mode. Fix Linux non-identification of some USB FTDI devices because of driver naming. Added "Records Missed Count" to log continuous mode for easier troubleshooting of faulty devices/connections. 1.0.0.16 2013-05-18 Fix DL tab read unit time bug when extra CRs are received Add DL battery estimator records indicator, and 60 minutes calculation fix, and custom mAH rating works now. XPort default button is only enabled when an Ethernet device is selected. Configuration page details (including version information) are refreshed with; refresh-button, tab-click, and selected unit change. USB discovery on Linux machine is now (because udevadm requires root access): ls -al /dev/serial/by-id/ Added "every minute on the minute" log continuous setting. Fine control of log-continuous per-second recording. No more drift, each record request initiated on the 1-second boundary. 1.0.0.15 2013-02-01 Add RS232 connection ability Changeable logs directory re-implemented Log continuous button on main info tab with settings similar to DL logging. Add link to DL header online definitions to DL Header window. 1.0.0.14 2013-01-09 Fix DL retrieve all voltage and mpsas in European number format was 0. Fix Mac DL configuration file location directory creation. 1.0.0.13 2012-12-22 Label report interval units Information tab buttons for Header and Log-on disabled when no unit is selected. Increase timeout for responses (from 1 to 3 seconds) in case OS is a bit slow. This results in some logfile records being missed. 1.0.0.12 2012-12-16 Add single record log button to information tab Update DL log filename according to new datalog header standard (.dat extension, Intrument ID name, stored in log directory) 1.0.0.11 2012-11-13 Linux USB identification now ignores non-FTDI serial port devices. Added splash screen to identify that devices are being searched. Linux USB error-check for user added to dialout group. Fix: DL clock display was too tiny on Linux, sometimes blanked out. 1.0.0.10 2012-10-31 DL: Fix; Read log temperature parsing was sometimes 0.0 Windows: removed debug writeln causing crash after I/O error 1.0.0.9 2012-10-27 DL: Fix; Read log record by parsing commas instead of fixed field where negative mpsas might occur. 1.0.0.8 2012-10-21 Background color of non-editable field changed to default because some themes show this as black background. Added Help->VersionInfo menu item. Displays changelog.txt. Added Firmware Info button. Displays fchanges.txt. 1.0.0.7 2012-10-15 Minor changes to new data format. Added fix for SQM-LE Xport data defaults (00:02 disconnect time). Battery calculator default to Alkaline (as supplied with order, not optional Lithium) Fix: DL result window was blank if DL mpsas record had extra negative sign character. 1.0.0.6 2012-10-04 Added new DL data format (for testing) defined by Chris Kyba and associates. Added directory location definitions (Linux, Windows) for: - saving temporary data and - loading firmware files - accessing the time zone database ./xfce-system-settings.png0000644000175000017500000000465714576573022015777 0ustar anthonyanthonyPNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<tEXtTitleSettingstEXtAuthorLapo Calamandreiߑ*IDATX{tuǿ$iȫE*eEYE|jma]XRtkxV8 jyGvDjشI4mI&ϙdҞVo~wfB bG7/ L@iiV9'x%_$xw! *z+&rJ͂sss!_/"3?bmZn|_qIٹcZv𼼹1R5'g6PILK#s9}I˗ 2!H'&fL}xň;`VkD"5 ~QAP>LR'߮iXimB?i$ 6Ar3bq+dnjE4TxPta> > ڼЭɩ s0@@>oDȕ+!q` CS"**|>h$`0Y ]NL:n5p0k +336 `ЁCH֓NJ:V8`}>P_ŏ-ugӚ5%/ `WzAsX]QAV]u?%`0'*&" Q! s ,l6A03&mѯ}k/} g>:Sqiw`ٍ2z&BF !# zFRr$v;;Ę4.7ԇP\Rnb ƫztNj~ip* 1Ez*q+ CШ=*_*p~u;`s7ժg?6['n{g+ >ͥ&dee?!ʼnFMS8uTBʶ6HV9s(?z=V1YMMM=GG? Fs|̜.f; ي<κ ())R`=zѴ|$T3ψkkk}W>l"&f?'`X#M3îgC/X&NtVFŔ{jrW[6]<@ƼKSTde7ut¬yTb-#0jHJLHOGCÅsg6M?T{NLBo+'gb{{z{M3ƧM" ŌI`Ae/See,MuZŲiކ3MɻPQUSg_p rj6#39ueKʋ7- uƅ Ӽٓ3v@'E(:#3Ja{;vdtD|-km8DԲxndmA 5sovf$<߅.7oW_ڝ]VHcoNffEz.d1w<***\ H]#3g?|:1I;Tw 0U8ZY?f D.Y ?("e1>m<tIya.Žlݝ ~" HRl4م=.]V4_\=->N ^^nwG1vL <^^Ep%i$֮=dT|8kֽTɅkf'Tu܍ 9x@0yt ^xÈ/8ɕW)5Q"'SLYh!:胓nI^Vc+,&#>l׮]f<PĩoNQHvTm] ZՍ$ zvBL ܈Rp8 H ÞΝ;)|*pXH$HtaDދD5:\mFj숄{lODc jٍ1|_.ӁEX a K"VO#D,q8LBIENDB`./copy of unit1.pas0000644000175000017500000012636114576573021014245 0ustar anthonyanthonyunit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, ComCtrls, Grids, DbCtrls, Buttons, Menus, TAGraph, Process, StrUtils, synaser, synautil, blcksock,dateutils,math, LCLType; type { TForm1 } TForm1 = class(TForm) DLBatteryCapacityComboBox: TComboBox; DLBatteryDurationTime: TEdit; DLBatteryDurationUntil: TEdit; DLThreshold: TEdit; Label26: TLabel; Label27: TLabel; Label29: TLabel; Label30: TLabel; Label31: TLabel; DLDBSizeProgressBarText: TLabel; LogFirstRecord: TButton; LogLastRecord: TButton; LogPreviousRecord: TButton; DLLogOneButton: TButton; DLEraseAllButton: TButton; LogNextRecord: TButton; DLRetrieveAllButton: TButton; DLTrigMinutesCurrent: TEdit; DLTrigSeconds: TEdit; DLTrigMinutes: TEdit; DLTrigSecondsCurrent: TEdit; GroupBox2: TGroupBox; DLCancelRetrieveButton: TButton; LogRecordResult: TMemo; DLDBSizeProgressBar: TProgressBar; MainMenu1: TMainMenu; HelpMenuItem: TMenuItem; AboutItem: TMenuItem; Label20: TLabel; Label21: TLabel; Label22: TLabel; Label23: TLabel; Label24: TLabel; Label25: TLabel; DLSaveDialog: TSaveDialog; Threshold: TGroupBox; Timer1: TTimer; TriggerGroup: TRadioGroup; UnitClock: TLabel; SetDeviceClock: TButton; Button18: TButton; DeviceClockGroup: TGroupBox; StorageGroup: TGroupBox; EstimatedBatteryGroup: TGroupBox; ResetForFirmwareProgressBar: TProgressBar; SelectFirmwareDialog: TOpenDialog; RequestButton: TButton; Button10: TButton; Button11: TButton; Button12: TButton; SelectFirmware: TButton; CheckLock: TButton; LoadFirmware: TButton; Button16: TButton; Button17: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; Button8: TButton; Button9: TButton; FoundDevices: TListBox; PCClock: TLabel; USBSerialNumber: TEdit; Edit10: TEdit; Edit11: TEdit; Edit12: TEdit; Edit13: TEdit; Edit14: TEdit; Edit15: TEdit; Edit16: TEdit; Edit17: TEdit; Edit18: TEdit; Edit19: TEdit; USBPort: TEdit; FirmwareFile: TEdit; CheckLockResult: TEdit; EthernetMAC: TEdit; EthernetIP: TEdit; EthernetPort: TEdit; RS232Baud: TEdit; RS232Port: TEdit; Edit8: TEdit; Edit9: TEdit; FindButton: TButton; GroupBox1: TGroupBox; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; Label14: TLabel; Label15: TLabel; Label16: TLabel; Label17: TLabel; Label18: TLabel; Label19: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; VersionListBox: TListBox; ReadingListBox: TListBox; CommNotebook: TNotebook; DataNotebook: TNotebook; Ethernet: TPage; Information: TPage; Calibration: TPage; Firmware: TPage; Data_Logging: TPage; Configuration: TPage; GPS: TPage; LoadFirmwareProgressBar: TProgressBar; Report_Interval: TPage; RS232: TPage; StatusBar1: TStatusBar; USB: TPage; VersionButton: TButton; procedure AboutItemClick(Sender: TObject); procedure CommNotebookPageChanged(Sender: TObject); procedure DLBatteryCapacityComboBoxChange(Sender: TObject); procedure DLCancelRetrieveButtonClick(Sender: TObject); procedure DLEraseAllButtonClick(Sender: TObject); procedure DLLogOneButtonClick(Sender: TObject); procedure DLRetrieveAllButtonClick(Sender: TObject); procedure DLThresholdChange(Sender: TObject); procedure DLThresholdKeyPress(Sender: TObject; var Key: char); procedure DLTrigMinutesChange(Sender: TObject); procedure DLTrigMinutesKeyPress(Sender: TObject; var Key: char); procedure DLTrigSecondsChange(Sender: TObject); procedure DLTrigSecondsKeyPress(Sender: TObject; var Key: char); procedure FirmwareFileChange(Sender: TObject); procedure LogFirstRecordClick(Sender: TObject); procedure LogLastRecordClick(Sender: TObject); procedure LogNextRecordClick(Sender: TObject); procedure LogPreviousRecordClick(Sender: TObject); procedure SelectFirmwareClick(Sender: TObject); procedure LoadFirmwareClick(Sender: TObject); procedure CheckLockClick(Sender: TObject); procedure DataNotebookPageChanged(Sender: TObject); procedure RequestButtonClick(Sender: TObject); procedure FindButtonClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FoundDevicesClick(Sender: TObject); procedure InformationContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean); procedure SetDeviceClockClick(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure TriggerGroupClick(Sender: TObject); procedure VersionButtonClick(Sender: TObject); private { private declarations } public { public declarations } procedure FindDevices; procedure StatusMessage(Mstring:string; BackColor:TColor = clBtnFace); function SendGet(command:string; LeaveOpen:boolean = False; Timeout:Integer=1000) : string; function OpenComm() : boolean; function CloseComm() : boolean; procedure findeth; procedure findusbdarwin; procedure GetVersion; procedure ClearResults; procedure EstimateBatteryLife; procedure LogRecordGet(RecordNumber:Integer); end; FoundDevice = record SerialNumber : String; Connection : String; Hardware : String; end; var Form1: TForm1; ser: TBlockSerial; EthSocket: TTCPBlockSocket; FoundDevicesArray: array of FoundDevice; DataLoggingAvailable: Boolean; SelectedModel:Integer; FirmwareFilename : AnsiString; PortName: AnsiString; //DL global variables DLCue: Array[0..10] of String; DLTrigSeconds,DLTrigMinutes: Integer; DLRefreshed:Boolean; DLCurrentRecord:Integer; DLCancelRetrieve:Boolean; implementation procedure TForm1.ClearResults; begin VersionListBox.Items.Clear; ReadingListBox.Items.Clear; SelectedModel:=0; ResetForFirmwareProgressBar.Position:=0; LoadFirmwareProgressBar.Position:=0; StatusMessage(''); DLRefreshed:=False; LogRecordResult.Clear; UnitClock.Caption:=''; PCClock.Caption:=''; { $SCLOR->Contents(""); $SLCTR->Contents(""); $SDCPR->Contents(""); $SDCTR->Contents(""); $ITiE->Contents(""); $ITiR->Contents(""); $IThE->Contents(""); $IThR->Contents(""); $StatusText->Contents(""); $PortEntry->configure(-background=>$PortEntryBackground); $EthIPEntry->configure(-background=>$EthIPEntryBackground); $EthPortEntry->configure(-background=>$EthPortEntryBackground); $CheckLockResult->Contents(""); $LRTCTime->Contents(""); $LogMode=-1; $LIThresholdE->delete(0,'end'); $LISecondsE->delete(0,'end'); $LIMinutesE->delete(0,'end'); } end; // Send a command strings then return the result function TForm1.SendGet(command:string; LeaveOpen:boolean = False; Timeout:Integer=1000) : string; //LeaveOpen indicates that the communication port should be left open var ErrorString: AnsiString; begin OpenComm; ErrorString:=''; //Check selected comm. tab case CommNotebook.PageIndex of 0,2: begin //USB or RS232 if ser.CanWrite(10) then //writeln('can write') else //writeln('can not write'); writeln(ser.InstanceActive); ser.SendString(command); SendGet:=ser.Recvstring(Timeout); If CompareStr(ser.LastErrorDesc,'OK')<>0 then ErrorString:='Error: '+ser.LastErrorDesc; end; 1: begin //Ethernet EthSocket.SendString(command); SendGet:=EthSocket.RecvString(1000); If CompareStr(EthSocket.LastErrorDesc,'OK')<>0 then ErrorString:=EthSocket.LastErrorDesc; end; end; if (not LeaveOpen) then CloseComm; StatusMessage('Sent: '+command+' To: '+PortName+' Received: '+SendGet+ErrorString); end; // Open the communications port //Will only open if not already opened function TForm1.OpenComm() : boolean; begin //Check selected comm. tab case CommNotebook.PageIndex of 0: begin //USB ser.LinuxLock:=False; //lock file sometimes persists stuck if program closes before port ser.Connect(USBPort.Text); //sleep(1000); ser.config(115200, 8, 'N', SB1, False, False); PortName:=USBPort.Text; end; 1: begin //Ethernet EthSocket := TTCPBlockSocket.Create; EthSocket.ConvertLineEnd := True; EthSocket.Connect(EthernetIP.Text, EthernetPort.Text); PortName:=EthernetIP.Text; end; 2: begin //RS232 ser.Connect(RS232Port.Text); ser.config(StrToIntDef(RS232Baud.Text,115200), 8, 'N', SB1, False, False); PortName:=RS232Port.Text; end; end; OpenComm:=True; //Indicate success end; // Close the communications port function TForm1.CloseComm() : boolean; begin //Check selected comm. tab case CommNotebook.PageIndex of 0,2: begin //USB or RS232 ser.CloseSocket; //ser.Free; end; 1: begin //Ethernet EthSocket.CloseSocket; EthSocket.Free; end; end; CloseComm:=True; //Indicate success end; procedure TForm1.StatusMessage(Mstring:string; BackColor:TColor = clBtnFace); begin StatusBar1.Panels.Items[0].Text:=Mstring; //StatusBar1.SimpleText:=Mstring; StatusBar1.Color:=BackColor; //Writeln(Mstring); { TODO : log file} end; //multicast procdedure procedure TForm1.findeth; var sndsock:TUDPBlockSocket; buf:string; requeststring:Longword; i:Integer; MACstring:string; begin StatusMessage('Looking for Ethernet devices'); requeststring:=246;//f6 is the request to the Lantronix XPort sndsock:=TUDPBlockSocket.Create; try sndsock.EnableBroadcast(True); sndsock.connect('255.255.255.255','30718'); sndsock.SendInteger(SwapEndian(requeststring)); repeat buf:=sndsock.RecvPacket(1000); if (Length(buf) = 30) then begin MACstring:=''; for i:=25 to 30 do //Write(IntToHex(ord(buf[i]),2)); MACstring:=MACstring+IntToHex(ord(buf[i]),2); //Writeln(MACstring); //Writeln(sndsock.GetRemoteSinIP + ' : '+ InttoStr(sndsock.GetRemoteSinPort)); //save found device with FoundDevicesArray[high(FoundDevicesArray)] do begin SerialNumber:=MACstring;//MAC address Connection:=sndsock.GetRemoteSinIP; Hardware:='Eth'; end; SetLength(FoundDevicesArray,high(FoundDevicesArray)+2); end; until (Length(buf) = 0); sndsock.CloseSocket; finally sndsock.free; end; end; procedure findusblinux; //Find USB attached FTDI devices const READ_BYTES = 2048; var OurCommand: String; OutputLines: TStringList; MemStream: TMemoryStream; OurProcess: TProcess; NumBytes: LongInt; BytesRead: LongInt; LookForState: Integer; USBDeviceSerial: String; LinuxDeviceFile: String; lStrings: TStringList; StringPos:Integer; begin // A temp Memorystream is used to buffer the output MemStream := TMemoryStream.Create; BytesRead := 0; lStrings := TStringList.Create; lStrings.Delimiter := ','; OurProcess := TProcess.Create(nil); // Recursive dir is a good example. OurCommand:='invalid command, please fix the IFDEFS.'; {$IFDEF Windows} //Can't use dir directly, it's built in //so we just use the shell: OurCommand:='cmd.exe /c "dir /s c:\windows\"'; {$ENDIF Windows} {$IFDEF Unix} //Needs to be tested on Linux/Unix: //do we need a full path or not? //DirCommand:=FindDefaultExecutablePath('ls') + ' --recursive --all -l /'; //OurCommand := '/bin/ls --recursive --all -l /'; OurCommand := 'lshal'; {$ENDIF Unix} OurProcess.CommandLine := OurCommand; // We cannot use poWaitOnExit here since we don't // know the size of the output. On Linux the size of the // output pipe is 2 kB; if the output data is more, we // need to read the data. This isn't possible since we are // waiting. So we get a deadlock here if we use poWaitOnExit. OurProcess.Options := [poUsePipes]; OurProcess.Execute; while OurProcess.Running do begin // make sure we have room MemStream.SetSize(BytesRead + READ_BYTES); // try reading it NumBytes := OurProcess.Output.Read((MemStream.Memory + BytesRead)^, READ_BYTES); if NumBytes > 0 then begin Inc(BytesRead, NumBytes); //Write('.') //Output progress to screen. end else begin // no data, wait 100 ms Sleep(100); end; end; // read last part repeat // make sure we have room MemStream.SetSize(BytesRead + READ_BYTES); // try reading it NumBytes := OurProcess.Output.Read((MemStream.Memory + BytesRead)^, READ_BYTES); if NumBytes > 0 then begin Inc(BytesRead, NumBytes); end; until NumBytes <= 0; if BytesRead > 0 then WriteLn; MemStream.SetSize(BytesRead); OutputLines := TStringList.Create; OutputLines.LoadFromStream(MemStream); LookForState:=0; for NumBytes := 0 to OutputLines.Count - 1 do begin if (LookForState=0) and (AnsiStartsStr('udi = ',OutputLines[NumBytes])) and (AnsiContainsStr(OutputLines[NumBytes],'_403_6001_')) then begin StringPos:=NPos('_403_6001_',OutputLines[NumBytes],1); WriteLn(StringPos); WriteLn(AnsiMidStr(OutputLines[NumBytes],StringPos+10,8)); LookForState:=1; end; if (LookForState=1) and (AnsiContainsStr(OutputLines[NumBytes],'usb.serial')) then begin //get serial number, and remove single quotes lStrings.Delimiter := ','; lStrings.DelimitedText := OutputLines[NumBytes]; lStrings.Delimiter := ''''; lStrings.DelimitedText := lStrings.Strings[2]; USBDeviceSerial:=lStrings.Strings[1]; LookForState:=2; end; //Look for linux.device_file: if (LookForState=2) and (AnsiContainsStr(OutputLines[NumBytes],'linux.device_file')) then begin //get port, and remove single quotes lStrings.DelimitedText := OutputLines[NumBytes]; LinuxDeviceFile:=lStrings.Strings[2]; //save found device with FoundDevicesArray[high(FoundDevicesArray)] do begin SerialNumber:=USBDeviceSerial; Connection:=LinuxDeviceFile; Hardware:='USB'; end; SetLength(FoundDevicesArray,high(FoundDevicesArray)+2); LookForState:=0; end; end; OutputLines.Free; OurProcess.Free; MemStream.Free; end; procedure TForm1.findusbdarwin; { This program demonstrates the FindFirst function } Var Info : TSearchRec; Count : Longint; USBDeviceSerial: String; LinuxDeviceFile: String; Begin Count:=0; If FindFirst ('/dev/tty.usbserial*',faAnyFile ,Info)=0 then begin Repeat Inc(Count); With Info do begin Writeln (Name:40,Size:15); USBDeviceSerial:=AnsiMidStr(Name,15,8); LinuxDeviceFile:='/dev/' + Name; with FoundDevicesArray[high(FoundDevicesArray)] do begin SerialNumber:=USBDeviceSerial; Connection:=LinuxDeviceFile; Hardware:='USB'; end; SetLength(FoundDevicesArray,high(FoundDevicesArray)+2); end; Until FindNext(info)<>0; end; FindClose(Info); Writeln ('Finished search. Found ',Count,' matches'); End; { TForm1 } procedure TForm1.RequestButtonClick(Sender: TObject); var result:string; pieces: TStringList; begin //Clear out existing results ReadingListBox.Items.Clear; //Try to ensure a model version has been found. if SelectedModel=0 then GetVersion; //Get response to "Request" pieces := TStringList.Create; pieces.Delimiter := ','; result:=SendGet('rx'); StatusMessage(result); pieces.DelimitedText := result; case SelectedModel of 3,5,6,7: begin //3=Standard SQM-LE/LU, 5=SQM-LR, 6=SQM-LU-DL, 7 =SQM-LU-GPS if pieces.count=6 then begin ReadingListBox.Items.Add(Format(' Reading: %1.2fmpsas',[StrToFloatDef(AnsiMidStr(pieces.Strings[1],1,5),0)])); ReadingListBox.Items.Add(Format('Frequency: %dHz', [StrToIntDef (AnsiMidStr(pieces.Strings[2],1,10),0)])); ReadingListBox.Items.Add(Format(' Counter: %dcounts', [StrToIntDef (AnsiMidStr(pieces.Strings[3],1,10),0)])); ReadingListBox.Items.Add(Format(' Time: %1.3fs', [StrToFloatDef(AnsiMidStr(pieces.Strings[4],1,11),0)])); ReadingListBox.Items.Add(Format(' Tint: %1.1fC', [StrToFloatDef(AnsiMidStr(pieces.Strings[5],1,5),0)])); end else ReadingListBox.Items.Add('No response'); end; 8: begin //8=Magnetometer if pieces.count=3 then begin ReadingListBox.Items.Add(Format('M1: %dc', [StrToIntDef(AnsiMidStr(pieces.Strings[1],1,10),0)])); ReadingListBox.Items.Add(Format('T1: %10.7fC',[StrToFloatDef(pieces.Strings[2],0)/128.0])); end else ReadingListBox.Items.Add('No response'); end; 1: begin //1=ADA if pieces.count=8 then begin ReadingListBox.Items.Add(Format('Frequency: %dHz', [StrToIntDef(AnsiMidStr(pieces.Strings[1],1,10),0)])); ReadingListBox.Items.Add(Format(' Counter1: %dcounts', [StrToIntDef(AnsiMidStr(pieces.Strings[2],1,10),0)])); ReadingListBox.Items.Add(Format(' Time1: %1.3fs', [StrToFloatDef(AnsiMidStr(pieces.Strings[3],1,11),0)])); ReadingListBox.Items.Add(Format(' Counter2: %dcounts', [StrToIntDef(AnsiMidStr(pieces.Strings[4],1,10),0)])); ReadingListBox.Items.Add(Format(' Time2: %1.3fs', [StrToFloatDef(AnsiMidStr(pieces.Strings[5],1,11),0)])); end else ReadingListBox.Items.Add('No response'); end; 4: begin //4=Colour end; otherwise ReadingListBox.Items.Add('Could not get version.'); end; end; procedure TForm1.SelectFirmwareClick(Sender: TObject); begin if SelectFirmwareDialog.Execute then begin FirmwareFilename := SelectFirmwareDialog.Filename; FirmwareFile.Text:=FirmwareFilename; LoadFirmware.Enabled:=not(FirmwareFile.Text=''); StatusMessage('Selected file: '+FirmwareFile.Text); end; end; procedure TForm1.FirmwareFileChange(Sender: TObject); begin LoadFirmware.Enabled:=not(FirmwareFile.Text=''); end; procedure TForm1.LogFirstRecordClick(Sender: TObject); begin DLCurrentRecord:=0; DLCue[0]:='Get Record'; end; procedure TForm1.LogLastRecordClick(Sender: TObject); begin DLCurrentRecord:=DLDBSizeProgressBar.Position-1; DLCue[0]:='Get Record'; end; procedure TForm1.LogNextRecordClick(Sender: TObject); begin DLCurrentRecord:=DLCurrentRecord+1; DLCue[0]:='Get Record'; end; procedure TForm1.LogPreviousRecordClick(Sender: TObject); begin DLCurrentRecord:=DLCurrentRecord-1; DLCue[0]:='Get Record'; end; procedure TForm1.CommNotebookPageChanged(Sender: TObject); begin ClearResults; FoundDevices.ClearSelection; end; procedure TForm1.EstimateBatteryLife; { Battery life calculated accoding to readings provided in manual. Battery capacity estimates in combo box provided from spec sheets when each 1.5V cell drops to 0.9V which is plenty since the batery to USB adapter will still work at 5.1V in (0.85V/cell), and the SQM-LU-DL will still operate down to 3.3 (3.4 at battery, 0.57V/cell). Example batteries: -- Alkaline batteries ----------------------------------------------------- Panasonic LR6XWA Alkaline-Zinc/Manganese Dioxide for 260hrs @ 10mA, down to 0.9V = 2600mAH ENERGIZER EN91 Alkaline Zinc-Manganese Dioxide (Zn/MnO 2) from chart, 25mA discharge = ~2600mAH Panasonic ZR6XT Oxyride Alkaline 1.7V from datasheet, Discharge characteristics plot ~260hrs @ 10mA = 2600mAH -- Litium ----------------------------------------------------------------- ENERGIZER L91 Lithium/Iron Disulfide From datasheet Milliamp-Hours Capacity = 3000maH -- Carbon Zinc ------------------------------------------------------------ Eveready 1215 datasheet "Constant Current Discharge" 1000hrs @ 1mA down to 0.8V = 1000maH } var BatteryCapacity:Real; IAverage:Real; TQuiescent:Real; TMeasure:Real; TBattery:Real; NMinutes:Integer;//Number of minutes between samples lStrings: TStringList; const IQuiescent=600e-9; IWake=10e-3; IMeasure=55e-3; TWake=3/60; begin //Determine battery capacity from ComboBox text lStrings:=TStringList.Create; lStrings.Delimiter := ' '; lStrings.DelimitedText := DLBatteryCapacityComboBox.Text; BatteryCapacity:=StrToIntDef(lStrings.Strings[0],0); NMinutes:=5;//default case TriggerGroup.ItemIndex of 0: //Off begin DLBatteryDurationTime.Text:='Not applicable'; DLBatteryDurationUntil.Text:='Not applicable'; end; 1: //Every x seconds begin TMeasure:=5.0/(Min(Max(StrToFloatDef(DLTrigSeconds.Text,1),1),5.0)); IAverage:=IWake+TMeasure*IMeasure; TBattery:=BatteryCapacity/(1000*IAverage); DLBatteryDurationTime.Text:=Format('%.0fhours, or %.0fdays, or %.1f months',[TBattery,TBattery/24,TBattery/(24*31)]); DLBatteryDurationUntil.Text:=FormatDateTime('yy-mm-dd ddd hh:nn:ss',IncHour(Now,Round(TBattery))); end; 2..7: //Every x minutes begin case TriggerGroup.ItemIndex of 2:NMinutes:=StrToIntDef(DLTrigMinutes.Text,1); 3:NMinutes:=5; 4:NMinutes:=10; 5:NMinutes:=15; 6:NMinutes:=30; 7:NMinutes:=50; end; TMeasure:=5/(NMinutes*60); TQuiescent:=1-(TWake+TMeasure); IAverage:=TQuiescent*IQuiescent+TWake*IWake+TMeasure*IMeasure; TBattery:=BatteryCapacity/(1000*IAverage); DLBatteryDurationTime.Text:=Format('%.0fhours, or %.0fdays, or %.1f months',[TBattery,TBattery/24,TBattery/(24*31)]); DLBatteryDurationUntil.Text:=FormatDateTime('yyyy-mm-dd ddd hh:nn:ss',IncHour(Now,Round(TBattery))); end; end; end; procedure TForm1.DLBatteryCapacityComboBoxChange(Sender: TObject); begin EstimateBatteryLife; end; procedure TForm1.DLCancelRetrieveButtonClick(Sender: TObject); begin DLCancelRetrieve:=True; end; procedure TForm1.DLEraseAllButtonClick(Sender: TObject); var Reply: Integer; begin Reply:=Application.MessageBox(Pchar('Erase entire database of records?' + sLineBreak + 'Are you sure?' + sLineBreak + 'Cancel if not sure.'),'Erase all records',MB_ICONWARNING + MB_OKCANCEL); if Reply=mrOK then DLCue[0]:='DLEraseAll'; end; procedure TForm1.DLLogOneButtonClick(Sender: TObject); begin DLCue[0]:='Log one record'; end; procedure TForm1.DLRetrieveAllButtonClick(Sender: TObject); var Reply: Integer; begin DLCancelRetrieve:=False; DLSaveDialog.FileName:=FormatDateTime('yyyymmdd-hhnnss',Now)+'.txt'; if DLSaveDialog.Execute then begin if FileExists(DLSaveDialog.FileName) then begin Reply:=Application.MessageBox(Pchar('Overwrite file: '+ DLSaveDialog.FileName + ' ?'),'File exists',MB_ICONWARNING + MB_YESNO); if Reply=mrYes then DLCue[0]:='DLRetrieveAll'; end else DLCue[0]:='DLRetrieveAll'; end; end; procedure TForm1.DLThresholdChange(Sender: TObject); begin DLThreshold.Color:=clFuchsia; end; procedure TForm1.DLThresholdKeyPress(Sender: TObject; var Key: char); begin if Ord(Key)=13 then begin DLCue[0]:='Set Trigger Threshold'; DLThreshold.Color:=clWindow; end; end; procedure TForm1.DLTrigMinutesChange(Sender: TObject); begin DLTrigMinutes.Color:=clFuchsia; end; procedure TForm1.DLTrigMinutesKeyPress(Sender: TObject; var Key: char); begin if Ord(Key)=13 then begin DLCue[0]:='Set Trigger Minutes'; DLTrigMinutes.Color:=clWindow; end; end; procedure TForm1.DLTrigSecondsChange(Sender: TObject); begin DLTrigSeconds.Color:=clFuchsia; end; procedure TForm1.DLTrigSecondsKeyPress(Sender: TObject; var Key: char); begin if Ord(Key)=13 then begin DLCue[0]:='Set Trigger Seconds'; DLTrigSeconds.Color:=clWindow; end; end; procedure TForm1.AboutItemClick(Sender: TObject); begin ShowMessage( 'Serial Library verion: ' +ser.GetVersion + sLineBreak + '' ); end; procedure TForm1.LoadFirmwareClick(Sender: TObject); var File1: TextFile; Str: String; i:Integer; begin if FileExists(FirmwareFile.Text) then begin AssignFile(File1,FirmwareFile.Text ); {$I-}//Temprarily turn off IO checking try Reset(File1); LoadFirmwareProgressBar.Max:=0; repeat Readln(File1, Str); // Reads a whole line from the file. {do something with str} LoadFirmwareProgressBar.Max:=LoadFirmwareProgressBar.Max+1; until(EOF(File1)); // EOF(End Of File) keep reading new lines until end. Reset(File1); OpenComm; StatusMessage('Resetting unit ...'); Application.ProcessMessages; sendget(chr($19),False,1); for i:=0 to 20 do begin sleep(50); ResetForFirmwareProgressBar.Position:=i; Application.ProcessMessages; end; StatusMessage('Unit should have been reset ...'); LoadFirmwareProgressBar.Position:=0; StatusMessage('Loading firmware ...'); repeat Readln(File1, Str); // Reads a whole line from the file. {do something with str} Write(Str+' '); // Writes the line read WriteLn(sendget(Str,True)); LoadFirmwareProgressBar.Position:=LoadFirmwareProgressBar.Position+1; Application.ProcessMessages; until(EOF(File1)); // EOF(End Of File) keep reading new lines until end. StatusMessage('Firmware loaded.'); CloseFile(File1); except StatusMessage('File: '+FirmwareFile.Text+' IOERROR!', clYellow); end; {$I+}//Turn IO checking back on end else StatusMessage('File '+FirmwareFile.Text+' does not exist!', clYellow); end; procedure TForm1.CheckLockClick(Sender: TObject); var result:ansistring; begin result:=SendGet('zcalDx'); StatusMessage(result); if AnsiContainsStr(result, 'L') then CheckLockResult.Text:='Locked' else if AnsiContainsStr(result, 'U') then CheckLockResult.Text:='Unlocked' else CheckLockResult.Text:='Unknown'; end; procedure TForm1.DataNotebookPageChanged(Sender: TObject); begin //Writeln('tab changed'); DLRefreshed:=False; { case DataNotebook.PageIndex of 0: writeln('info page'); 1: writeln('cal page'); 2: writeln('ri page'); 3: writeln('firmware page'); end;} end; procedure TForm1.FindDevices; var i: Integer; begin //Clear out existing results FoundDevices.Items.Clear; screen.Cursor:= crHourGlass; Application.ProcessMessages; SetLength(FoundDevicesArray,1); //Resize "Found devices" to accept first device. {$ifdef Linux} findusblinux; //Try finding USB attached devices. {$endif} {$ifdef Darwin} // Darwin is the base OS name of Mac OS X, like NT is the name of the Win2k/XP/Vista kernel. Mac OS X = Darwin + GUI. findusbdarwin; //Try finding USB attached devices. {$endif} findeth; //Try finding Ethernet devices. //All USB devices have been found ... or not. if (high(FoundDevicesArray)=0) then StatusMessage('No devices were found',clYELLOW) else begin //Writeln('device(s) have been found:'); begin for i:=low(FoundDevicesArray) to high(FoundDevicesArray)-1 do begin //Writeln(' ' + FoundDevicesArray[i].SerialNumber + ' : ' + FoundDevicesArray[i].Connection); FoundDevices.Items.Add(FoundDevicesArray[i].Hardware + ' : ' + format('%12s',[FoundDevicesArray[i].SerialNumber]) + ' : ' + FoundDevicesArray[i].Connection); end; end; end; screen.Cursor:= crDefault; end; procedure TForm1.FindButtonClick(Sender: TObject); begin FindDevices; end; procedure TForm1.FormCreate(Sender: TObject); var FixedFont:String; begin {$ifdef MSWindows} // ce + win32 + win64, delphi compat //Writeln('MSWindows'); {$endif} {$ifdef Windows} // ce + win32 + win64, more logical. //Writeln('Windows'); {$endif} {$ifdef Linux} //Fixed font chose to properly display the zero character FixedFont:='Monospace'; {$endif} {$ifdef Darwin} FixedFont:='Monaco'; {$endif} FindDevices; ser:=TBlockSerial.Create; SelectedModel:=0; //default: no selected model //Datalogger initialzation DLCue[0]:='';// No commands cued up DLRefreshed:=False; DLCancelRetrieve:=False; //Disable normally unused pages DataNoteBook.Page[4].Enabled:=False; //Datalogging page DataNoteBook.Page[6].Enabled:=False; //GPS page //Default notebook pages DataNoteBook.PageIndex:=0; CommNotebook.PageIndex:=0; //Set up all fixed font widgets FoundDevices.Font.Name:=FixedFont; VersionListBox.Font.Name:=FixedFont; ReadingListBox.Font.Name:=FixedFont; USBSerialNumber.Font.Name:=FixedFont; USBPort.Font.Name:=FixedFont; EthernetMAC.Font.Name:=FixedFont; EthernetIP.Font.Name:=FixedFont; EthernetPort.Font.Name:=FixedFont; RS232Port.Font.Name:=FixedFont; RS232Baud.Font.Name:=FixedFont; LogRecordResult.Font.Name:=FixedFont; DLTrigSeconds.Font.Name:=FixedFont; DLTrigMinutes.Font.Name:=FixedFont; DLThreshold.Font.Name:=FixedFont; end; procedure TForm1.FoundDevicesClick(Sender: TObject); var ItemSelected:Integer; begin ItemSelected:=FoundDevices.ItemIndex; ClearResults; if FoundDevicesArray[ItemSelected].Hardware = 'USB' then begin USBSerialNumber.Text:=FoundDevicesArray[ItemSelected].SerialNumber; USBPort.Text:=FoundDevicesArray[ItemSelected].Connection; CommNotebook.PageIndex:=0; end; if FoundDevicesArray[ItemSelected].Hardware = 'Eth' then begin EthernetMAC.Text:=FoundDevicesArray[ItemSelected].SerialNumber; EthernetIP.Text:=FoundDevicesArray[ItemSelected].Connection; EthernetPort.Text:='10001'; CommNotebook.PageIndex:=1; end; GetVersion; FoundDevices.Selected[ItemSelected]:=True; end; procedure TForm1.InformationContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean); begin end; procedure TForm1.SetDeviceClockClick(Sender: TObject); begin DLCue[0]:='SetClock'; end; function FixDate(incoming:AnsiString): AnsiString; //Fix the date from the DataLogging unit to a readable string var dowval:Integer; weekday: Array[1..7] of string = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); begin dowval:=StrToInt(AnsiMidStr(incoming,10,1)); if ((dowval>=1) and (dowval<=7)) then FixDate:=AnsiMidStr(incoming,1,9)+weekday[dowval]+AnsiMidStr(incoming,11,9) else FixDate:=AnsiMidStr(incoming,1,9)+'???'+AnsiMidStr(incoming,11,9); end; function LimitInteger(Source:Integer; Minimum:Integer; Maximum:Integer):Integer; begin LimitInteger:=Source; if SourceMaximum then LimitInteger:=Maximum; end; procedure TForm1.LogRecordGet(RecordNumber:Integer); var result:AnsiString; begin RecordNumber:=LimitInteger(RecordNumber,0,DLDBSizeProgressBar.Position-1); result:=sendget(Format('L4%010.10dx',[RecordNumber])); if Length(result)=40 then begin LogRecordResult.Lines.Clear; LogRecordResult.Lines.Add(Format(' Record: %d',[RecordNumber+1])); LogRecordResult.Lines.Add(Format(' Date: %s',[FixDate(AnsiMidStr(result,4,19))])); LogRecordResult.Lines.Add(Format(' Reading: %1.2fmpsas',[StrToFloat(AnsiMidStr(result,24,5))])); LogRecordResult.Lines.Add(Format('Temperature: %1.1fC',[StrToFloatDef(AnsiMidStr(result,30,5),0)])); LogRecordResult.Lines.Add(Format(' Voltage: %1.2fV',[(2.048 + (3.3 * StrToFloatDef(AnsiMidStr(result,38,3),0))/256.0)])); end; end; procedure TForm1.Timer1Timer(Sender: TObject); //This timer runs once per second. //Mostly to update readings from the DL (for now). //Cued instructions sent here also to avoid collision with timed requests. var pieces: TStringList; result:AnsiString; ThisMoment : TDateTime; DLRecFile: TextFile; begin pieces := TStringList.Create; pieces.Delimiter := ','; ThisMoment:=Now; if ((DataNotebook.PageIndex=4) and ((SelectedModel=6) or (SelectedModel=7))) then begin if not DLRefreshed then begin result:=sendget('LIx'); DLTrigSeconds.Text:=IntToStr(StrToIntDef(AnsiMidStr(result,4,10),0)); DLTrigSeconds.Color:=clWindow; DLTrigMinutes.Text:=IntToStr(StrToIntDef(AnsiMidStr(result,16,10),0)); DLTrigMinutes.Color:=clWindow; DLTrigSecondsCurrent.Text:=IntToStr(StrToIntDef(AnsiMidStr(result,28,10),0)); DLTrigMinutesCurrent.Text:=IntToStr(StrToIntDef(AnsiMidStr(result,40,10),0)); DLThreshold.Text:=FloatToStr(StrToFloatDef(AnsiMidStr(result,52,11),0)); DLThreshold.Color:=clWindow; //Read log trigger mode result:=sendget('Lmx'); TriggerGroup.ItemIndex:=StrToIntDef(AnsiMidStr(result,4,1),0); //Get log pointer result:=sendget('L1x'); DLDBSizeProgressBar.Position:=StrToIntDef(AnsiMidStr(result,4,6),0); DLDBSizeProgressBarText.Caption:=Format('%3.2f%%',[100.0 * DLDBSizeProgressBar.Position/DLDBSizeProgressBar.Max]); //Get most recent record if DLDBSizeProgressBar.Position>0 then begin DLCurrentRecord:=DLDBSizeProgressBar.Position-1; LogRecordGet(DLCurrentRecord); end; //result:=sendget('L5x'); //DLInternalVoltage.Text:=Format('%.2f',[(2.048 + (3.3 * StrToFloatDef(AnsiMidStr(result,4,3),0))/256.0)]); DLRefreshed:=True end else begin if DLCue[0]='SetClock' then begin result:=SendGet('LC'+FormatDateTime('yy-mm-dd ',ThisMoment)+IntToStr(DayOfWeek(ThisMoment))+FormatDateTime(' hh:nn:ss',ThisMoment)+'x'); { TODO : check result } DLCue[0]:=''; end else if DLCue[0]='Log one record' then begin result:=SendGet('L3x');//Log one record Application.ProcessMessages; result:=sendget('L1x');//Get current point Application.ProcessMessages; DLDBSizeProgressBar.Position:=StrToIntDef(AnsiMidStr(result,4,6),0); //Get most recent record if DLDBSizeProgressBar.Position>0 then begin DLCurrentRecord:=DLDBSizeProgressBar.Position-1; LogRecordGet(DLCurrentRecord); end; DLCue[0]:=''; end else if DLCue[0]='DLEraseAll' then begin LogRecordResult.Lines.Clear; LogRecordResult.Lines.Add('Database being erased, please wait a few seconds ...'); Application.ProcessMessages; SendGet('L2x');//Erase all records Application.ProcessMessages; sleep(2000); result:=sendget('L1x');//Get current point Application.ProcessMessages; DLDBSizeProgressBar.Position:=StrToIntDef(AnsiMidStr(result,4,6),0); LogRecordResult.Lines.Clear; if StrToIntDef(AnsiMidStr(result,4,6),0)=0 then LogRecordResult.Lines.Add('Database successfully erased.') else LogRecordResult.Lines.Add('Database NOT erased! Please try again.'); DLCue[0]:=''; end else if DLCue[0]='Get Record' then begin LogRecordGet(DLCurrentRecord); DLCue[0]:=''; end else if DLCue[0]='Change Trigger' then begin result:=SendGet('LM'+DLCue[1]+'x'); { TODO : check result } DLCue[0]:=''; end else if DLCue[0]='DLRetrieveAll' then begin AssignFile(DLRecFile,DLSaveDialog.FileName); try Rewrite(DLRecFile); //create the file for DLCurrentRecord:=0 to DLDBSizeProgressBar.Position-1 do begin if DLCancelRetrieve then begin { TODO : log the break } break; end; result:=sendget(Format('L4%010.10dx',[DLCurrentRecord])); if Length(result)=40 then begin LogRecordResult.Lines.Clear; LogRecordResult.Lines.Add(Format('Retrieved record: %d / %d',[DLCurrentRecord+1,DLDBSizeProgressBar.Position])); Application.ProcessMessages; Writeln(DLRecFile, Format('%d,',[DLCurrentRecord+1]) + Format('%s,',[FixDate(AnsiMidStr(result,4,19))]) + Format('%1.2f,',[StrToFloat(AnsiMidStr(result,24,5))]) + Format('%1.1f,',[StrToFloatDef(AnsiMidStr(result,30,5),0)]) + Format('%1.2f',[(2.048 + (3.3 * StrToFloatDef(AnsiMidStr(result,38,3),0))/256.0)]) ); end; end; LogRecordResult.Lines.Clear; if DLCancelRetrieve then LogRecordResult.Lines.Add('Partially retrieved records written to:') else LogRecordResult.Lines.Add('Retrieved records written to:'); LogRecordResult.Lines.Add(Format('%s',[DLSaveDialog.FileName])); DLCancelRetrieve:=False; except Writeln('ERROR! IORESULT: ' + IntToStr(IOResult)); end; CloseFile(DLRecFile); DLCue[0]:=''; end else if DLCue[0]='Set Trigger Seconds' then begin result:=SendGet(Format('LPS%010dx',[(StrToIntDef(DLTrigSeconds.Text,0))])); { TODO : check result } DLCue[0]:=''; end else if DLCue[0]='Set Trigger Minutes' then begin result:=SendGet(Format('LPM%010dx',[(StrToIntDef(DLTrigMinutes.Text,0))])); { TODO : check result } DLCue[0]:=''; end else if DLCue[0]='Set Trigger Threshold' then begin result:=SendGet(Format('LT%011.2fx',[(StrToFloatDef(DLThreshold.Text,0))])); { TODO : check result } DLCue[0]:=''; end else begin result:=SendGet('Lcx'); if Length(result)>=21 then begin UnitClock.Caption:=FixDate(AnsiMidStr(result,4,19)); end else UnitClock.Caption:='unknown'; PCClock.Caption:=FormatDateTime('yy-mm-dd ddd hh:nn:ss',ThisMoment); end; end end else DLRefreshed:=False; end; procedure TForm1.TriggerGroupClick(Sender: TObject); begin DLCue[0]:='Change Trigger'; DLCue[1]:=IntToStr(TriggerGroup.ItemIndex); EstimateBatteryLife; end; procedure TForm1.GetVersion; var result:string; pieces: TStringList; ModelDescription: String; begin //Clear out existing results VersionListBox.Items.Clear; pieces := TStringList.Create; pieces.Delimiter := ','; result:=SendGet('ix'); //StatusMessage(result); //writeln('trying',length(result)); pieces.DelimitedText := result; //check size of array. 5 Sections normally, 6 sections when checksum is sent. if pieces.Count>=5 then begin VersionListBox.Items.Add('Protocol: '+ IntToStr(StrToIntDef(pieces.Strings[1],0))); Case StrToIntDef(pieces.Strings[2],0) of 1: ModelDescription:='ADA'; 3: begin if CommNotebook.PageIndex=0 then ModelDescription:='SQM-LU' else ModelDescription:='SQM-LE'; end; 4: ModelDescription:='Colour'; 5: ModelDescription:='SQM-LR'; 6: ModelDescription:='SQM-LU-DL'; 7: ModelDescription:='SQM-LU-GPS'; 8: ModelDescription:='Magnetometer'; otherwise ModelDescription:='Unknown'; end; VersionListBox.Items.Add(' Model: '+ IntToStr(StrToIntDef(pieces.Strings[2],0))+ ' ('+ ModelDescription + ')'); VersionListBox.Items.Add(' Feature: '+ IntToStr(StrToIntDef(pieces.Strings[3],0))); VersionListBox.Items.Add(' Serial: '+ IntToStr(StrToIntDef(pieces.Strings[4],0))); SelectedModel:=StrToIntDef(pieces.Strings[2],0); //Datalogging tab: 6=SQM-LU-DL, 7 =SQM-LU-GPS if ((SelectedModel=6)or (SelectedModel=7)) then begin DataNoteBook.Page[4].Enabled:=True; DataLoggingAvailable:=True; end else begin DataNoteBook.Page[4].Enabled:=False; DataLoggingAvailable:=False; end; //GPS tab: 7 =SQM-LU-GPS if (SelectedModel=7) then DataNoteBook.Page[6].Enabled:=True else DataNoteBook.Page[6].Enabled:=False; //CheckLock enable/disable CheckLockResult.Text:=''; if ((SelectedModel=3) and (CommNotebook.PageIndex=1)) then //3=standard SQM-LE/U, and Ethernet begin CheckLock.Enabled:=True; CheckLockResult.Enabled:=True; end else begin CheckLock.Enabled:=False; CheckLockResult.Enabled:=False; end; end; end; procedure TForm1.VersionButtonClick(Sender: TObject); begin GetVersion; end; initialization {$I unit1.lrs} end. ./unit1.lfm0000644000175000017500000055651514576573022012731 0ustar anthonyanthonyobject Form1: TForm1 Left = 2334 Height = 541 Top = 337 Width = 879 ActiveControl = FindButton Caption = 'Unihedron Device Manager' ClientHeight = 541 ClientWidth = 879 Constraints.MinHeight = 541 Constraints.MinWidth = 879 Icon.Data = { 8E31000000000100010064640000010008007831000016000000280000006400 0000C80000000100080000000000000000000000000000000000000000000000 0000000100000000070002040B0005070E00000812000E090C000A091600030C 14000E0B1C00050D1A00130F11000D0F1400100C20000A0E1F000C0D2300130C 2500140C29000F0E28000B0D2D00120E2D00101125000A1324000D112B000C12 280016161C0014122B001A161C0011172200141529001416260012142F000817 2A000C162D000D15310012172D000915370008183100091735001F1C23000E1A 3800151A37000F1B3F000B1D3C00101E3700161E35001A20310025222A000C20 3A001F232D001722340012233600282137000B224100132241000D2147002C28 32003D2833000D294A00182A450015294D00132B470010295000222C44001329 57000A2C5100072A59001D2F420031303C002B303F0037303C001A325D001433 5E00163557000F345E00283556002C394E00233A4E00363A4800423A49000D3A 6500403E4D00123A6D00393D5600173D67004D3F5100483F53003D4152004841 50004D424E004D46540042475A0029456A004F465A0038475F004A4859004B47 5E0039466A00514A58004E486500554C6100244A7900554E5C004A4E6100514E 5F0050505900514D640037507800565365005B5267005B5462004D546A005854 6B0043527900365575005356690054556E0059576800485B6B00495978005E5A 7200595A74005E5C6D00555C7300595E6B005A5D70003D5F7E005D626E005A5E 80005F617500646275005B617E0061617C005B63790057647C00626579003866 840050658700706776005B648900596685005B69810061697F0067697D006268 8400676883006C6D8700676D8A005D6F8C006E6D8F00687087006A6E91006572 8A006B728F0077738C007A768100537799006B759A0065779700767792008577 8D00717794006B7992006C7897005076B100767C9A00727CA2006C7E9E00727E 9D00738099005382A2007A819E00928197007180A9006783A9008A849A008A82 A1007F85A3007386A6007A86A600988993007A88A1007F8BAC00938DA300868D AB006F8DB300818FA900938DAD00618DBE00778FB1007D90AC006692B2008490 B100858FB6009191B7007D95B8009095B2007695BF008A96B7008498B4008A98 B2008C96BE009E99B600909CBE0091A0BB0080A0C60094A0C20089A1C300959F C8009DA0C50078A3CB0097A0CF0098A5C60097A7C200A0ACCE0092AECE00A0AF CA009BAFCC009CACD7009CAED200AEAED00086B0D8008FB5D900A5B2DC00A2B5 D900A3B7D4009BB7D700AAB6D800AABCE100B6BDDC00B0BBE500A3BFDF00ABBF DD0094BFE500B1BEDF009DC4E600C8C7DC00B8C6E500ABC7E700B3C7E600B5CA F100C1CCEE00A8CFF100C2D0EA00BBD0EE00AFD1F000D4D3DE00B6D1F200B8D4 ED00C4D9F800CBDAF300C6DDF400C0DDF700D0E0F700E1E4EF00D9EAFE000000 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000 00000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000 00000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000 000000000101010101010001000000000000000000000000FFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000 000001010101010102020202020202020101010101010000000000000000FFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000 000000010201010202020206060D150909150D09060303020201020201000000 00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 0000010101020407090303060606060E20201721212416170D0E0D0606060609 03020101000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0000000001000104070924200608080C08080817212120252725201617161612 0E0D0E0D200D09030201000100000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFF00000000000104071F2427342708080C110E0E0D171724272F2F212527 212122170C1616212B17200D09070302000100000000FFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFF00000000010102071F242021392A080808080D0E0E0D1520202125 2425272725211717140E171616212A2520171F0902020100000000FFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF00000000010102152F250D110C0F0E1108080808170D0E0E 0E110E1415202323232F2427200D11122224272A2B2F24241509030101000000 00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFF0000000001020209242A3B0E0C0C0F0C0C0C080814 0F0E141414140E1116162A2127252B2520172020141416273434252A241F1504 010100000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFF00000001020206061411141108080F0C0E0C 0F0C080819140D110E080C1417112121212120150D172121201117162A392734 2F2A2F1506020000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000102030D080C110F0C080808 080D0E080E110C0D111717110E0C0E0E0E11272B272524202027212125201411 0E2F1725200E21170D03010100000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000010102060D211E110C0C 0D0C0C08080C110C0F1111111414221E111422171E1621252127202521242122 21221716161711170E1116170D0806010101000000FFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000010107320E0E0E 110F08080D08080808080E140C0E0E0E060D221517171617170E14172527272B 16211E21221111121E1714080E080C080C0E0E06020101000000FFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000001010209 20220E080C0C08080D080D0C0C0E080D0C0E0E0E0E142020201E130E0D0E140E 140E1727212020211714140E0E0E080608080C080D0D080806020101000000FF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000001 0103092021271E1E11120E08080C0C0D0C0C0C080C0E1E22212116221E21130F 0D0C0D16110D0E112120150D1414140E0D0D0C080E0E0F08080E140D0D060301 01000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 00000101071724272121132928190C080E0C08080D08080C0808112220160E0E 11111116160E080F160D0E1414160E0E0D0D110E0E0C08080D0D080C0C080E14 170E06020101000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFF00000001042F3D40463B0E1411120F0C0E0C0C08080E0C0808080D110E 16160E0E0E110E11110C0D0E1417140E140E1114140E161411140E140E0D0D0D 0D0C0C1322170806020100000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFF00000001031F2A473621272C2C1E0E221E140E0F0C080E0C0D14 1111130E11111411140E141411111111111E170E16140E1417171617160E0E1C 0D140C0E0D0C0C141411140E060200000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFF0000010215494F29363B272728281E281E110E0C0F08 0C080E141019111411111614110F140E14141111191611141111191919191414 11140E1715140E08080C110E1416161414060201000000FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFF000001010924494F39252724213B2121170D0C 0C0C110C0808080C0C0E1911110C14090C0E1111140E0D0C111414110E110F0E 0E14140E140C0E0C0D0D0E140D14111411161E171622090200000000FFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000010724344F4151362A35211628 3524220D0E0E0C0806080D08080D14110D08140D0D1411110F140E140D140D11 1411160E0E0C0E0E0E0E110E0D170E140D0D1D111E1E22151515150901010000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000001021F39343B3D49473B 29342921272F170C0C0C0C080D08080C080E140C140D0E14080D171717141614 0D110E111114170D0C14140F140E140E0E17140E0D141E16211715202D1D0E0D 0301000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000010109344F3D36 3B393D3F463B292936210C140F140F0C0D0E1119141C2211140C0C0F110F1420 1E1E20221C14171E16161E1D14140C111416221414142B2B31282B2C28281E1E 22172222090200000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000001041F 404F4934533936392F3D3B393B27152211140F1D3A1714171C1922221C0D0C14 221114141122221716162220141E1E0E14110F2214111E11141E2B3A312C2B2C 4B666D8959526F441F0702000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 0102093940494F48494039483234392A35222D1D17140F175B3A324232281522 1C141417171414141114201C20151714191E1E161621111E221722222B3A4B4B 4C8E8952AE6C5F61899F898972441802000000FFFFFFFFFFFFFFFFFFFFFFFFFF FFFF000001071539494F474051534F534C3A3C221C42422D2C2220444A5D5D52 4C7568441D222214141111110C080D0C33332D1D1D223E32281E1C1E1E1F2028 70C8B0B0DBB6B399DB997A91ABC9AFBAC0BA5A18000000FFFFFFFFFFFFFFFFFF FFFFFFFFFF00000101152021474F4151514F494F48605D3E4B5D5D4B5D4B4C5A 504D5656667EB3681D19222216141C22171C1B1C3854565631327575B6431E21 2527425D92AEAEB6C9B6AEAEAEABB3B6AEBAC1DBC1C1772E020000FFFFFFFFFF FFFFFFFFFFFFFFFFFF00000004202827404F4F4F494F49474A525656565A5D66 5D5D666672667B819A9A9A68442C31312C2C2B3231224B442D2B44445656AE99 B3B3623E4A7A3A5D919AAEAEDBDBC3BAB6B6C1BAB6BABAAFAF9F894503010000 FFFFFFFFFFFFFFFFFFFFFFFF000001021F2F23274F4F494940403D4670606E70 827F9191ADBB9D8BAD969C8E8E867E796D5E5A4D32323E4B4B4B424B4242324D 6BB3B3ABABAB9F839FAF9F9F9FAEABAEB6C3C3D0D0D2E5E5F0FDEBDBC9B6995E 18020000FFFFFFFFFFFFFFFFFFFFFFFF0000010232403B47474F4F4140466AA3 BBBBC4C4CCD6F5FDF2F1F9F2FAFCFCFCF7F7F5E7E0E1E4F5D89BBEA9B1A8AA7D 878860AAF5EBECF5FDEBE9E2E9FDF2F7D9E2DFE4E4FDEBD0DBD0D0DEE5F9FDF9 ECECE7C35003000000FFFFFFFFFFFFFFFFFFFFFF000001043448464746475149 47363B6AACB8BCC2CCD6E1E6E6EDF7F4FBFBFBFBFBFBFAFAFAFAFAFAFEEABEBE BEA9DDBEEAFEFEFEFEFEFEFEFCFEFAF8FAFEFEFCF8FAFBFAFCFEF9FCFCFCEFE2 E2E2E4E2E2E4DEBF7218010000FFFFFFFFFFFFFFFFFFFFFF000002093C404647 463D3B4946354A6A9BB8C4C4CCD6D6DDEAEDF1F4F4F4F4F4F7F7F7F7F7F7FBFB FBFADC877D7D9BD1FAFAFAFAF9FCFCFCFCFAF9F9FCF9F9F9F9F2F2F2F2F2F2F0 F0F0EEEFE9E9E9E9E9E5E3D58D30000000FFFFFFFFFFFFFFFFFFFF0000000315 3B49403F473D3946353B356AADB8C4C4CCCCCCDDE8EAEAF1F1F1F1F4F4F4F4F4 F4F4F7F7F7F7F7E8BE7DD1F4FAFAF8F8F8F8FAF8F8F8F8F8F8F2F3F3F3F3F2F2 F2ECECECECECECECE9E9E9E9E9E9E9E9B44D0B0000FFFFFFFFFFFFFFFFFFFF00 000104324864643D4746403D3B343471ADADB8C4C4C4D1DCDCDCE8E8E8EAEAEA EDE6E6EDEDEDEDEDEDEDEDF6F7F6F7F6F6F6F6F6F6F6F6F6F6F3F6F3F3F3F3F3 EEEEECECECECE9ECE9ECECE9E9E9E9E9E9E9E9E9C76618000000FFFFFFFFFFFF FFFFFF000001091F39534839473D3D393434397DADADADB8B8C4CCD1D1D1DCDD DDDDDDDDDDE1E1E1E6E6E6E6E6E6E6E6E6EDEDEDEDEDEDEDEDEDF6F6F6F3F3F3 EEEFEEEFEEEEEEECE7E7ECE9E9E9E3E9E9E2E2E2E2DFE2E2CB842E000000FFFF FFFFFFFFFFFFFF000001152F343D3C34473D39393C5B71A6ADADADADB8B8C4C4 CCCCCCCCCCCCCCD6D6D6D6D6D6E1E1E1E1E1E1E1E6E6E7E6E6E6E6E7EDEDEDEE EEEDEEEEEEEEEEEEE3E3E7E3E3E7E3E9E9E3E0E2E2E2E2DFE2DFE2E2D3954400 0000FFFFFFFFFFFFFFFF000001021F34483D39393D363B3C3A76889D9DA6ADB1 ADB8B8B8B8C2C4C4CECECECECECECECED6D6D6D6D6D8D8D8E0E0E0E0E0E0E7E7 E7E7E7E7E7E7E3E7E7E7E3E7E3E7E3E3E3E3E3DFDFDFDFDFDFDFDFDFDFDFDFE2 DAA84D030000FFFFFFFFFFFFFFFF00000002203453405B6A645B3C3B5B7D9D9D 9D9DA6ADB1B1BCBCBCBCBCC2C2C2CCCECECED4D4D4D4D4D8D4D8D8D8D8D8D8D8 D8E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E2DFDFE0DFDFDFDFDAD7E2DAE2DADADA DAD5D5DADAB4560B000000FFFFFFFFFFFFFF000000021F2F53768888938B8888 9393939D9D9DA6A6A6ADB1B1B1BCBCBCBCBDC2C5C6CACAC6C6CBCBCBCBD4D4D4 D8D8D8D7D8D8D8D8D8E0E0E0E0E0E0E0E0E0E0DFD7E0D7DAD8D5D5D5D5D5D5D5 D5D5D5D5D5D5DADAD3B56618000000FFFFFFFFFFFFFF000000041F2B3B608B8B 8B93939393939793939D9DA1A1A6A6B1B1B1BDB1BDBDBDC6C6C6C5C6C6CBC6CB D4CBCBD4D4D4D4D4D8D7D7D7D7D7D7D8D5D7D7D7D7D7D7DADAD8D5D7D5D5D5D5 D5D5D5D5D5D3D3D3D3D3D3D3D3BF6E18010000FFFFFFFFFFFFFF000000072B35 3B3B8A8B939393939393939393A1A19DA6A6A7A6B1B1B1B5B5BDBDBDBDC6C5C6 C7C7CBCBCBCACBCBCBCBD4D4D8D4D4D4D7D7D7D8D7D7D7D7D7D7D7D7D7D7D5D8 D5D5D3D3D3D3D3D3D3D3D3D3CDCDCDCDCFBF7A26000000FFFFFFFFFFFFFF0000 01062C2F768B858B8B8C93938C9393939797A19D9DA6A6A6A8A8B1B4B4BDBDBD BDBDBDBDC7C7C7C7C7CACBCBCBCBCBCBD4D3D4D4D4D3D4D4D4D7D5D5D5D5D5D5 D3D3D3D3D3D3D3D3D3CDCDCDCDCDCDCDCDCACACACABF7A30010000FFFFFFFFFF FFFF00000103325D768585858B8C8C8C8B939397979793A2A2A1A6A8A8A8A8B4 B4B1B1B1B9B9BDBDBDC7C5C7C7C7C6CBCBCBCBCBD4CBCDCBD3D3D4D3D3D4D3D3 D3D3D3D4D3D3D3CDD3D3CDCDCDCACACDCACACACACACACACAC5B57A2E020000FF FFFFFFFFFFFF0000011B5D85858585858C8C8B8B8C8C928BA2A297A1A1A1A1A1 A8A8A8A8B2B2B4B4B1B9B9B9BFBFBFC7C7C7C7C7C7CBCACACACDCDCDCDCDD4D4 D3D4D3D3D3D3CDCDCDCDCDCDCDCDCDCDCDCACACACACACACAC5C5C5C5C5B77A2E 000000FFFFFFFFFFFFFF000002305A8585848B8B8C8B8B8C8C8C8F92979297A2 A1A1A1A2A1A7A8A8A7A7B2B4B4B4B9B5B9B9BFC7C7C7C5C5C7C5CBCACACACACD CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCACDCACACACACAC5C5C5C5C5C5C5 C5B57A30020000FFFFFFFFFFFFFF000002305A7682848282828B8C8C8C8D8F8B 959297979797A1A2A2A7A8A8A6B4B4B1B2B5B4B5B9B9B9B9C7C7C5C5C5C5C5C5 CACACACACACACACDCACDCDCDCDCACDCACACACACACACACAC5CAC5C5C5C3C5C5C5 C5C5BFB7BFB26E26010000FFFFFFFFFFFFFF000102305A85858B828484858584 8D8D8F8C8B9797A2A297A1A1A1A1A8A8A8A8A8B1B4B4B1B9B9BDBDBDB9BFBFC5 C5C7C7C5C5C5C7C5CACBCACACACACACACACACACACACACACAC5CAC5C5C5C5C5C5 C5C5BFBFBFBFBFBFBFB26E26020000FFFFFFFFFFFFFF000002305A7A82858584 8485848D8C8D8D8D92928B9297A298A1A1A1A1A1A2A8A8A8B4B2B4B4B1B5B9B9 B9BFBFB9C7C7C7C5C7C5C7C7C5C5C5C5C5C7C5C7C7C5C7C7C5C5C5C5C5C5C5C3 C5BFBFBFBFBFBFBFBFB5BFBFB7A86E18010000FFFFFFFFFFFFFF000002305A7A 848284828282828F8F8C8F8F92929297929898A0A0A4A4A2A4A7A8A8A8B2B4B4 B4B4B5B5B5B9B9B9B9B9B9BFBFBFC7BFBFC7C5C7C5C5C5C3C5C3C5C5C5C5C3C5 C5BFC5C3BFBFBFBFB7BFBFBFBFB5B5B5B5A46618010000FFFFFFFFFFFFFF0000 001B567A84828484848282858F8D8D8F8F8F959292A29898A0A0A1A1A2A7A8A8 A7AAA8B4B4B4B2B4B4B4B2B4B9B9B9B5B9BFBFBFB9C7BFC7BFBFC7BFBFC5BFBF C7BFBFBFBFBFBFBFBFBFBFBFB7B7B7B7B7B7B5B5B098560B000000FFFFFFFFFF FFFF000001184D6E7A828284848284848D848D8F8F8D8D95929797979795A2A0 A0A0A1A1A1A8A8A7A7A7AAB4B4B0B0B4B4B4B4B5B9B5B5B5BFBFB9B9B9BFBFBF BFBFBFBFBFBFBFBFB7B7B7B7B7B7B5B5B7B5B0B7B7B2B0B0B0924D0B000000FF FFFFFFFFFFFF0000010B446E857A8282848484848482848D8C8F8D8D92929595 959797989598A0A2A0A1A1A4A8AAA7A7A7A8B2B4B4B2B4B4B5B9B5B5B9B5B9B9 B5B9B9B5B9BFB9BFB9B5B5B5B5B5B5B5B5B5B0B7B0B2B2B0B0B0B0B0A4834403 0000FFFFFFFFFFFFFFFF0000000B446E7A7A7A848484808084848684848D8D8D 8F8F8D8F9592959595989898A0A0A0A4A1A4A4A8A8A8A7A8B4B2B4B4B4B2B2B4 B4B0B5B9B5B5B9B9B4B5B5B5B9B5B5B5B5B5B5B2B2B0B0B0B0B0B2B0AAAAAAAA A47C30030000FFFFFFFFFFFFFFFF00000003305A7A7A7C7A7C7C7C8080848483 848484848F8F8D8D8D9595959595959898A0A2A0A0A0A4A4A7A4A4AAA7A7A8A8 B4AAB2B0B2B2B2B0B4B2B0B2B0B5B2B0B2B2B0B2B0B0B2B0B0B0AAAAB2A7AAAA AAAAAAAAA06626020000FFFFFFFFFFFFFFFFFF0000002656727A78787C7C7C84 848480868680868686908D8D8D8D8D95909592979595989595A0A0A0A4A4A4A4 A4A4AAAAAAAAAAA7AAB4B2AAAAB0B2B0B0A7AAB0B0B0AAAAAAAAAAAAAAAAAAAA AAA4AAAAA4A4A4A4925618010000FFFFFFFFFFFFFFFFFF000002184D6E7A787C 7C7C7A7C7C7A807E808386868683908D8F908E8D8E8E91958E95919598A0A0A0 9EA1A4A4A4A4A4A7A4A4A4A4A4AAAAAAAAAAAAAAAAAAAAA4AAA4AAA8AAAAA4AA AAA4A4A4A4A4A4A4A4A4A4A084430B010000FFFFFFFFFFFFFFFFFF0000000B44 66727C7C7C7C7878787C7C807C8080808080868686868D8E908E8F8E90929591 9898A2A0A0A0A0A0A4A4A7A7A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4 A4A4A4A4A4A4A4A4A4A4A4A0A09E9E98723703000000FFFFFFFFFFFFFFFFFF00 0000032E50737273727C79777C7C7C7C7C7C8080808080808686869090909292 92929892929292A0A2A2A2A2A2A7B1B1A5A5A5A4A4A1A4A49E9EA4A49EA4A4A4 A49E9EA4A4A4A49EA0A4A0969EA0A0A0A0A098915A26020000FFFFFFFFFFFFFF FFFFFFFF000001184D667373726F7379787C797C7C797C7C7880838380808686 86868E8D8D95908E92919191989DA29898A2A2A7A6ACA6A5ACB1B1B1A6ACA7A4 9EA0A09E9EA0A09EA0A0A09EA098A09E9E98989E989898824D0B010000FFFFFF FFFFFFFFFFFFFFFF00000003375E726F7274727272727479727C7C7C7C7C7980 7C80808380868686868686908E8E90928E9592929891919198A2A2A2A6A6ACAC ACACACACA5A2A2A4A0989898989E919895989898989191919498926637030100 00FFFFFFFFFFFFFFFFFFFFFF000000022650676B7272726B746F737274747C77 797C7C79797B7C80808080818686838686868E868E8D909090918E9192929292 9298A0A2A5A2A2A2A7A7A7A5A7A0929898929192919892929295919191918456 18000000FFFFFFFFFFFFFFFFFFFFFFFFFF0000000B435E72726B6B6B6B6F6B74 7474746F79777C797C7B7C7E7B80808080808686868686868686908E8E8E8E8E 908E929191919191929898989898989898989892919592919191919192919190 9290724303000000FFFFFFFFFFFFFFFFFFFFFFFFFF000000032E50666B636B6B 6F6B6B746B7272747972797C7C7C7C7C7C77797C808080818080808686868686 8686908E9090908E8E9090909091909090908D95919192929292929192909090 9090908F90835E2602010000FFFFFFFFFFFFFFFFFFFFFFFFFF0000010218435A 676967726B6B6B6B6B747474736F6F74747477797C7C797C7C7C7C8080808080 83808686868686838686869090909090908D90909090908E908F959191919190 909090908E9090908372430B000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 00032E505E6767676767676B676B676B6F727472727272727474727C7B7C7C7C 7C7C7C7C7C7C8083808080808086868683818390848686868683868683868D90 90908F8F908F8D8D84848F827C562602000000FFFFFFFFFFFFFFFFFFFFFFFFFF FFFF000000010A43505E66676868676767676B676B6B6B726B7472727274727B 747978747C7C79797C7C7C807C807E7E79808080808186808680808086868686 8686808086868686808384828283847866370B000000FFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFF0000000226435E676165676767676765676B6B6F6F6B6B6B74 727274747474727B747C797C7977797C7C7C7C80807C7C807C80808080808080 8080838380868080808080808080808083808072501802000000FFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFF000000010B2E4E635F636769676767676363656769 6B6D6D6B6D6D6D7474747474747C7979797C79797979797C798079797C7C8079 817C7C80807C807780807781818080818080808383807B5A2E03000000FFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000021845575F6169636765636963 65656D69656B6D6B656C6D6C74747474727474747479747977777979797C7779 7C7C7C7979797C797C7877797779777977807C7979797979777867430B020000 00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000326455961636369 6369636565676565636969696B6B6F6B6D6D6B7474746D6F6F6F796F776F7977 77777777797C7C79797977777777777979777979797878797777797979634318 02000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000001052E4E 595C6161696969636363636563636769696B63656B6B6B6B6C6B6B6B7474746F 747474746F77786F6F7479747274747779797979797979797977787C79797977 6B502603010000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 00020B2E4E595E5E5E5C635C5E6161616165656765656765676768676C696F6B 6B6F6B6B6B746B746D6B7472747474747479746C74747474746F7774746F7474 7474746B502E0301000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFF000000020A37505E59595959615E5E6161636363676563636565656565 656B636B6B6B6B6B6F6C6C6B6F6B6B6B746B6F6F746B746F6F6F6F6F6F777474 7474746F6F6F6D50370B01000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF000001021A374E555C5C5959595C5C615E5F5E5E5F636765 636363656767696767656B65696C656D6C6C6B6B6B6B6F6F6B74746B6B6B6C6F 6F6F6B6B6F6B6B6F6F6757370B02000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFF00000000031A374E5857575959595C615961635C 6161616161655E6769676563656565656967696365656B636F6B6B726B6B6B6B 6C6B6B6C6B6B6C6C6B72696B6757370B02010000FFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000010218374E555959575C5C5C 58615C5959595C6161636767615C65616967676565656767656563656969676B 676B67676B676B6F63676363656B6B6750370A02010000FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000021A374E5757 555C545C595954595C5961616163616161616161676765616165636567636363 656563636767696965676F67656763696363614E370A0200000000FFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000002 1A2E45555557575E57595C595C595C5C615961615C5C5C63615E616565636165 6963616561656567636967656767636563676565615C4E2E0B0200000000FFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 00000000020A26454E575557575555595C595C59595C59595C59595C595C5C63 615E5E615C5C6161635E67676163636165696563636763615745260301000000 00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFF0000000101031A374E57555757575757555757555C59595C595959 5E5C5C615961615C6161615C5C5C61615E6361615C63615C675E574E371A0300 000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFF0000000001020B2E45504E5754575757575757575757 5857575759555957575759595E595E5C595961595E5F615961615959504E4526 0A0201000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000002051A2E454E4E5557575754 5757575757575757575E5757575959595E5C595C5C57595E5F5C595C5959574E 452E0A030100000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000020B2637454E 5455585757575754575557575457575857575958545C59595758595E5C595955 574E45371805020000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000001 020A262E45454E57555555575757575750575757575754575757585759575E57 5757574E452E1A0B020100000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 000000000001020A1A2E3745454E4E5854555757585457575555545758575757 5554554E4E453726180502010000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFF0000000000000102050A1A262E3745454E4E504E4E4E554E575755 544E4E4E4E45453726180A0502010100000000FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFF000000000000010102050A0A1A262E2E3737373737 454545454537372E261A0A0A030200000000000000FFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000001010202050A0A 0A05050A0A1A1A1A0A0A0A030302010100000000000000FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000 01000101010000010102020200000101000000000000000000FFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFF00000000000000000000000000000000000000FFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000 0000FFFFFFFFFFFFFFFFFFFFFFFFF0000000FFFFFFFFFFFFFFFFFFFFFFFFF000 0000FFFFFFFFFFE0007FFFFFFFFFF0000000FFFFFFFFFC000003FFFFFFFFF000 0000FFFFFFFFE00000003FFFFFFFF0000000FFFFFFFF000000000FFFFFFFF000 0000FFFFFFFC0000000003FFFFFFF0000000FFFFFFF00000000000FFFFFFF000 0000FFFFFFC000000000003FFFFFF0000000FFFFFF8000000000000FFFFFF000 0000FFFFFE00000000000007FFFFF0000000FFFFFC00000000000001FFFFF000 0000FFFFF800000000000000FFFFF0000000FFFFF0000000000000007FFFF000 0000FFFFC0000000000000003FFFF0000000FFFF80000000000000001FFFF000 0000FFFF00000000000000000FFFF0000000FFFE000000000000000007FFF000 0000FFFE000000000000000003FFF0000000FFFC000000000000000001FFF000 0000FFF8000000000000000000FFF0000000FFF0000000000000000000FFF000 0000FFF00000000000000000007FF0000000FFE00000000000000000003FF000 0000FFC00000000000000000003FF0000000FFC00000000000000000001FF000 0000FF800000000000000000000FF0000000FF800000000000000000000FF000 0000FF0000000000000000000007F0000000FF0000000000000000000007F000 0000FE0000000000000000000007F0000000FE0000000000000000000003F000 0000FC0000000000000000000003F0000000FC0000000000000000000001F000 0000FC0000000000000000000001F0000000FC0000000000000000000001F000 0000F80000000000000000000001F0000000F80000000000000000000000F000 0000F80000000000000000000000F0000000F80000000000000000000000F000 0000F00000000000000000000000F0000000F000000000000000000000007000 0000F0000000000000000000000070000000F000000000000000000000007000 0000F0000000000000000000000070000000F000000000000000000000007000 0000F0000000000000000000000070000000F000000000000000000000007000 0000F0000000000000000000000070000000F000000000000000000000007000 0000F0000000000000000000000070000000F000000000000000000000007000 0000F0000000000000000000000070000000F000000000000000000000007000 0000F0000000000000000000000070000000F00000000000000000000000F000 0000F00000000000000000000000F0000000F00000000000000000000000F000 0000F80000000000000000000000F0000000F80000000000000000000000F000 0000F80000000000000000000000F0000000F80000000000000000000001F000 0000FC0000000000000000000001F0000000FC0000000000000000000001F000 0000FC0000000000000000000003F0000000FE0000000000000000000003F000 0000FE0000000000000000000003F0000000FE0000000000000000000007F000 0000FF0000000000000000000007F0000000FF000000000000000000000FF000 0000FF800000000000000000000FF0000000FF800000000000000000001FF000 0000FFC00000000000000000001FF0000000FFE00000000000000000003FF000 0000FFE00000000000000000007FF0000000FFF00000000000000000007FF000 0000FFF8000000000000000000FFF0000000FFFC000000000000000001FFF000 0000FFFC000000000000000003FFF0000000FFFE000000000000000007FFF000 0000FFFF000000000000000007FFF0000000FFFF80000000000000000FFFF000 0000FFFFC0000000000000001FFFF0000000FFFFE0000000000000007FFFF000 0000FFFFF000000000000000FFFFF0000000FFFFF800000000000001FFFFF000 0000FFFFFE00000000000003FFFFF0000000FFFFFF0000000000000FFFFFF000 0000FFFFFFC000000000001FFFFFF0000000FFFFFFE000000000007FFFFFF000 0000FFFFFFF80000000001FFFFFFF0000000FFFFFFFE0000000007FFFFFFF000 0000FFFFFFFFC00000001FFFFFFFF0000000FFFFFFFFF8000000FFFFFFFFF000 0000FFFFFFFFFF80000FFFFFFFFFF0000000FFFFFFFFFFFE1FFFFFFFFFFFF000 0000FFFFFFFFFFFFFFFFFFFFFFFFF0000000FFFFFFFFFFFFFFFFFFFFFFFFF000 0000FFFFFFFFFFFFFFFFFFFFFFFFF0000000 } Menu = MainMenu1 OnActivate = FormActivate OnCreate = FormCreate OnDestroy = FormDestroy OnPaint = FormPaint OnShow = FormShow Position = poScreenCenter ShowHint = True LCLVersion = '3.2.0.0' object DataNoteBook: TPageControl AnchorSideLeft.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = StatusBar1 Left = 0 Height = 361 Top = 159 Width = 879 ActivePage = ConfigurationTab Anchors = [akLeft, akRight, akBottom] ParentFont = False TabIndex = 5 TabOrder = 0 OnChange = DataNoteBookChange object InformationTab: TTabSheet Caption = 'Information' ClientHeight = 328 ClientWidth = 869 ParentFont = False object ColourControls: TGroupBox AnchorSideLeft.Control = LoggingGroup AnchorSideRight.Control = InformationTab AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = InformationTab AnchorSideBottom.Side = asrBottom Left = 540 Height = 220 Top = 104 Width = 325 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Right = 4 BorderSpacing.Bottom = 4 Caption = 'Colour controls:' ClientHeight = 200 ClientWidth = 323 ParentFont = False TabOrder = 0 Visible = False object ColourScalingRadio: TRadioGroup AnchorSideLeft.Control = ColourControls AnchorSideTop.Control = ColourControls AnchorSideBottom.Control = ColourControls AnchorSideBottom.Side = asrBottom Left = 2 Height = 112 Top = 2 Width = 117 AutoFill = True AutoSize = True BorderSpacing.Around = 2 Caption = 'Scaling:' ChildSizing.LeftRightSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 92 ClientWidth = 115 Items.Strings = ( 'Power down' '2%' '20%' '100%' ) OnClick = ColourScalingRadioClick ParentFont = False TabOrder = 0 end object ColourRadio: TRadioGroup AnchorSideLeft.Control = ColourScalingRadio AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = ColourCyclingRadio AnchorSideTop.Side = asrBottom AnchorSideRight.Control = ColourControls AnchorSideRight.Side = asrBottom AnchorSideBottom.Side = asrBottom Left = 121 Height = 112 Top = 70 Width = 200 Anchors = [akTop, akLeft, akRight] AutoFill = True AutoSize = True BorderSpacing.Around = 2 Caption = 'Colour:' ChildSizing.LeftRightSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 92 ClientWidth = 198 Items.Strings = ( 'Red' 'Blue' 'Clear' 'Green' ) OnClick = ColourRadioClick ParentFont = False TabOrder = 1 end object ColourCyclingRadio: TRadioGroup AnchorSideLeft.Control = ColourScalingRadio AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = ColourScalingRadio AnchorSideRight.Control = ColourControls AnchorSideRight.Side = asrBottom Left = 121 Height = 66 Top = 2 Width = 200 Anchors = [akTop, akLeft, akRight] AutoFill = True AutoSize = True BorderSpacing.Right = 2 Caption = 'Cycling' ChildSizing.LeftRightSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 46 ClientWidth = 198 Items.Strings = ( 'Fixed' 'Cycled (RBCG)' ) OnClick = ColourCyclingRadioClick TabOrder = 2 end end object MeasurementGroup: TGroupBox AnchorSideLeft.Control = InformationTab AnchorSideTop.Control = InformationTab Left = 5 Height = 88 Top = 5 Width = 527 BorderSpacing.Left = 5 BorderSpacing.Top = 5 Caption = 'Measurement' ClientHeight = 86 ClientWidth = 525 ParentFont = False TabOrder = 1 object DisplayedReading: TLabel AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = MeasurementGroup AnchorSideTop.Side = asrCenter Left = 99 Height = 68 Top = 9 Width = 78 Alignment = taCenter Anchors = [akTop] BorderSpacing.Top = 2 Caption = ' ' Font.Height = -49 Font.Name = 'Sans' ParentColor = False ParentFont = False end object ReadingUnits: TLabel AnchorSideLeft.Control = DisplayedReading AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = DisplayedReading AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = DisplayedReading AnchorSideBottom.Side = asrCenter Left = 183 Height = 19 Hint = 'magnitudes per square arcsecond' Top = 33 Width = 81 Anchors = [akLeft, akBottom] BorderSpacing.Left = 6 BorderSpacing.Top = 2 Caption = 'mags/arcsec²' ParentColor = False ParentFont = False ParentShowHint = False ShowHint = True end object DisplayedNELM: TLabel AnchorSideRight.Control = MeasurementGroup AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Displayedcdm2 Left = 485 Height = 19 Hint = 'Naked Eye Limiting Magnitude' Top = 19 Width = 36 Anchors = [akRight, akBottom] BorderSpacing.Right = 4 BorderSpacing.Bottom = 3 Caption = 'NELM' ParentColor = False ParentFont = False ParentShowHint = False ShowHint = True end object Displayedcdm2: TLabel AnchorSideRight.Control = MeasurementGroup AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = DisplayedNSU Left = 485 Height = 19 Hint = 'candela per square meter' Top = 41 Width = 36 Anchors = [akRight, akBottom] BorderSpacing.Right = 4 BorderSpacing.Bottom = 3 Caption = 'cd/m²' ParentColor = False ParentFont = False ParentShowHint = False ShowHint = True end object DisplayedNSU: TLabel AnchorSideTop.Side = asrCenter AnchorSideRight.Control = MeasurementGroup AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = MeasurementGroup AnchorSideBottom.Side = asrBottom Left = 494 Height = 19 Hint = 'Natural Sky Units' Top = 63 Width = 27 Anchors = [akRight, akBottom] BorderSpacing.Right = 4 BorderSpacing.Bottom = 4 Caption = 'NSU' ParentColor = False ParentFont = False ParentShowHint = False ShowHint = True end end object DetailsGroup: TGroupBox AnchorSideLeft.Control = MeasurementGroup AnchorSideTop.Control = MeasurementGroup AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = InformationTab AnchorSideBottom.Side = asrBottom Left = 5 Height = 235 Top = 93 Width = 529 Anchors = [akTop, akLeft, akBottom] Caption = 'Details' ClientHeight = 215 ClientWidth = 527 ParentFont = False TabOrder = 2 object VersionButton: TButton AnchorSideLeft.Control = DetailsGroup AnchorSideTop.Control = DetailsGroup AnchorSideRight.Control = DetailsGroup Left = 6 Height = 28 Hint = 'Get the device version information.' Top = 0 Width = 254 BorderSpacing.Left = 6 Caption = 'Version' Enabled = False ParentFont = False TabOrder = 0 OnClick = VersionButtonClick end object VersionListBox: TListBox AnchorSideLeft.Control = VersionButton AnchorSideTop.Control = VersionButton AnchorSideTop.Side = asrBottom AnchorSideRight.Control = VersionButton AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = DetailsGroup AnchorSideBottom.Side = asrBottom Left = 6 Height = 182 Top = 31 Width = 254 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Top = 3 BorderSpacing.Bottom = 2 Font.Height = -12 Font.Name = 'Courier 10 Pitch' Font.Pitch = fpFixed ItemHeight = 0 ParentFont = False ScrollWidth = 252 TabOrder = 1 TopIndex = -1 end object RequestButton: TButton AnchorSideLeft.Control = VersionButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = VersionButton AnchorSideRight.Control = DetailsGroup AnchorSideRight.Side = asrBottom Left = 267 Height = 28 Hint = 'Get an updated reading from the selected device.' Top = 0 Width = 254 Anchors = [akTop, akRight] BorderSpacing.Left = 6 BorderSpacing.Right = 6 Caption = 'Reading' ParentFont = False TabOrder = 2 OnClick = RequestButtonClick end object ReadingListBox: TListBox AnchorSideLeft.Control = RequestButton AnchorSideTop.Control = VersionListBox AnchorSideRight.Control = RequestButton AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = VersionListBox AnchorSideBottom.Side = asrBottom Left = 267 Height = 182 Top = 31 Width = 254 Anchors = [akTop, akLeft, akRight, akBottom] Font.Height = -12 Font.Name = 'Courier 10 Pitch' Font.Pitch = fpFixed ItemHeight = 0 ParentFont = False ScrollWidth = 252 TabOrder = 3 TopIndex = -1 end end object LoggingGroup: TGroupBox AnchorSideLeft.Control = MeasurementGroup AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = MeasurementGroup Left = 540 Height = 88 Top = 5 Width = 323 BorderSpacing.Left = 8 Caption = 'Logging' ClientHeight = 68 ClientWidth = 321 ParentFont = False TabOrder = 3 object HeaderButton: TButton AnchorSideLeft.Control = LoggingGroup AnchorSideTop.Control = LoggingGroup Left = 3 Height = 28 Hint = 'View the log header settings' Top = 3 Width = 100 BorderSpacing.Around = 3 Caption = 'Header' ParentFont = False TabOrder = 0 OnClick = HeaderButtonClick end object LogOneRecordButton: TButton AnchorSideLeft.Control = HeaderButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = HeaderButton Left = 109 Height = 28 Hint = 'Log one reading into log directory path file.' Top = 3 Width = 100 BorderSpacing.Left = 6 Caption = 'One record' ParentFont = False TabOrder = 1 OnClick = LogOneRecordButtonClick end object LogContinuousButton: TButton AnchorSideTop.Control = HeaderButton AnchorSideTop.Side = asrBottom AnchorSideRight.Control = LogOneRecordButton AnchorSideRight.Side = asrBottom Left = 109 Height = 28 Hint = 'Start logging readings into log directory path file.' Top = 37 Width = 100 Anchors = [akTop, akRight] BorderSpacing.Top = 6 Caption = 'Continuous' ParentFont = False TabOrder = 2 OnClick = LogContinuousButtonClick end object LogSettingsButton: TButton AnchorSideLeft.Control = HeaderButton AnchorSideTop.Control = HeaderButton AnchorSideTop.Side = asrBottom Left = 3 Height = 28 Hint = 'Set options for logging.' Top = 37 Width = 100 BorderSpacing.Top = 6 Caption = 'Settings' TabOrder = 3 OnClick = LogSettingsButtonClick end end end object CalibrationTab: TTabSheet Caption = 'Calibration' ClientHeight = 328 ClientWidth = 869 ParentFont = False object Label9: TLabel Left = 255 Height = 19 Top = 79 Width = 91 Caption = 'Desired Values' ParentColor = False ParentFont = False end object Label10: TLabel Left = 428 Height = 19 Top = 79 Width = 81 Caption = 'Actual Values' ParentColor = False ParentFont = False end object Label11: TLabel AnchorSideTop.Control = LCODes AnchorSideTop.Side = asrCenter AnchorSideRight.Control = LCODes Left = 83 Height = 20 Top = 109 Width = 167 Alignment = taRightJustify Anchors = [akTop, akRight] AutoSize = False Caption = 'Light Calibration Offset: ' ParentColor = False ParentFont = False end object Label12: TLabel AnchorSideTop.Control = LCTDes AnchorSideTop.Side = asrCenter AnchorSideRight.Control = LCTDes Left = 21 Height = 20 Top = 137 Width = 229 Alignment = taRightJustify Anchors = [akTop, akLeft, akRight] AutoSize = False Caption = 'Light Calibration Temperature: ' ParentColor = False ParentFont = False end object Label13: TLabel AnchorSideTop.Control = DCPDes AnchorSideTop.Side = asrCenter AnchorSideRight.Control = DCPDes Left = 45 Height = 20 Top = 164 Width = 205 Alignment = taRightJustify Anchors = [akTop, akLeft, akRight] AutoSize = False Caption = 'Dark Calibration Period: ' ParentColor = False ParentFont = False end object Label14: TLabel AnchorSideTop.Control = DCTDes AnchorSideTop.Side = asrCenter AnchorSideRight.Control = DCTDes Left = 29 Height = 20 Top = 191 Width = 221 Alignment = taRightJustify Anchors = [akTop, akLeft, akRight] AutoSize = False Caption = 'Dark Calibration Temperature: ' ParentColor = False ParentFont = False end object Label15: TLabel Left = 79 Height = 95 Top = 216 Width = 345 Caption = 'Notes:'#10' - See calibration sheet for original settings.'#10' - Add/subtract Light Cal offset for extra glass covering.'#10' - Temperature values get reconverted, '#10' so the actual may be slightly different than the desired.' ParentColor = False ParentFont = False end object LogCalInfoButton: TButton Left = 15 Height = 28 Top = 44 Width = 160 Caption = 'Log Calibration Info' ParentFont = False TabOrder = 0 Visible = False OnClick = LogCalInfoButtonClick end object LCOSet: TButton Left = 355 Height = 25 Top = 102 Width = 50 Caption = 'Set' ParentFont = False TabOrder = 2 OnClick = LCOSetClick end object LCTSet: TButton Left = 355 Height = 26 Top = 128 Width = 50 Caption = 'Set' ParentFont = False TabOrder = 5 OnClick = LCTSetClick end object DCPSet: TButton Left = 355 Height = 26 Top = 157 Width = 50 Caption = 'Set' ParentFont = False TabOrder = 8 OnClick = DCPSetClick end object DCTSet: TButton Left = 355 Height = 26 Top = 184 Width = 50 Caption = 'Set' ParentFont = False TabOrder = 11 OnClick = DCTSetClick end object LCODes: TEdit Left = 250 Height = 34 Top = 102 Width = 93 Alignment = taCenter Font.Height = -12 Font.Name = 'Courier 10 Pitch' ParentFont = False TabOrder = 1 end object LCTDes: TEdit Left = 250 Height = 34 Top = 130 Width = 93 Alignment = taCenter Font.Height = -12 Font.Name = 'Courier 10 Pitch' ParentFont = False TabOrder = 4 end object DCPDes: TEdit Left = 250 Height = 34 Top = 157 Width = 93 Alignment = taCenter Font.Height = -12 Font.Name = 'Courier 10 Pitch' ParentFont = False TabOrder = 7 end object DCTDes: TEdit Left = 250 Height = 34 Top = 184 Width = 93 Alignment = taCenter Font.Height = -12 Font.Name = 'Courier 10 Pitch' ParentFont = False TabOrder = 10 end object LCOAct: TEdit Left = 416 Height = 34 Top = 104 Width = 93 Alignment = taCenter Font.Height = -12 Font.Name = 'Courier 10 Pitch' Font.Pitch = fpFixed ParentFont = False ReadOnly = True TabOrder = 3 end object LCTAct: TEdit Left = 416 Height = 34 Top = 132 Width = 93 Alignment = taCenter Font.Height = -12 Font.Name = 'Courier 10 Pitch' Font.Pitch = fpFixed ParentFont = False ReadOnly = True TabOrder = 6 end object DCPAct: TEdit Left = 416 Height = 34 Top = 159 Width = 93 Alignment = taCenter Font.Height = -12 Font.Name = 'Courier 10 Pitch' Font.Pitch = fpFixed ParentFont = False ReadOnly = True TabOrder = 9 end object DCTAct: TEdit Left = 416 Height = 34 Top = 186 Width = 93 Alignment = taCenter Font.Height = -12 Font.Name = 'Courier 10 Pitch' Font.Pitch = fpFixed ParentFont = False ReadOnly = True TabOrder = 12 end object Label32: TLabel Left = 512 Height = 19 Top = 108 Width = 39 Caption = 'mpsas' ParentColor = False ParentFont = False end object Label33: TLabel Left = 512 Height = 19 Top = 136 Width = 14 Caption = '°C' ParentColor = False ParentFont = False end object Label34: TLabel Left = 512 Height = 19 Top = 190 Width = 14 Caption = '°C' ParentColor = False ParentFont = False end object Label35: TLabel Left = 515 Height = 19 Top = 163 Width = 6 Caption = 's' ParentColor = False ParentFont = False end object GetCalInfoButton: TBitBtn Left = 14 Height = 28 Hint = 'Refresh' Top = 8 Width = 34 Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF01FFFF FF01FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF01FFFFFF1FFFFF FF5EFFFFFF34FFFFFF0BFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF02FFFFFF05FFFFFF00FFFFFF00FFFFFF01FFFFFF3B3B3B 3B7A8C8C8C7EECECEC7AFFFFFF1CFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF01FAFAFA51F6F6F65DFFFFFF01FFFFFF00FFFFFF01FFFFFF3A0101 01B60000009C15151581CECECE83FFFFFF11FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF209494948478787884FFFFFF30FFFFFF00FFFFFF00FFFFFF159B9B 9B66161616A0000000A714141488E9E9E964FFFFFF01FFFFFF00FFFFFF00FFFF FF04D7D7D77C0404049600000097BEBEBE85FFFFFF10FFFFFF00FFFFFF00FFFF FF03FFFFFF262B2B2B95000000986565657FFFFFFF0DFFFFFF00FFFFFF01F7F7 F7512828289D000000A4000000A1101010A3DCDCDC74FFFFFF02FFFFFF00FFFF FF00FFFFFF039393936A000000A72929298EFFFFFF25FFFFFF01FFFFFF106D6D 6D94050505C3010101B6000000AA090909BC424242A9FFFFFF27FFFFFF01FFFF FF00FFFFFF01FFFFFF411616169F060606A6FFFFFF36FFFFFF01FFFFFF16FFFF FF2DFFFFFF3328282897000000B39393938BFFFFFF33FFFFFF22FFFFFF01FFFF FF00FFFFFF01F4F4F46D010101B00E0E0EA2FFFFFF24FFFFFF01FFFFFF00FFFF FF01FFFFFF035757578A000000C51A1A1AA8FDFDFD61FFFFFF18FFFFFF04FFFF FF17FFFFFF4676767694000000C0292929A1FFFFFF0CFFFFFF00FFFFFF00FFFF FF00FFFFFF01F5F5F532080808C0000000CD4C4C4C9EE4E4E484FFFFFF74EEEE EE8171717197010101C8020202CEC2C2C253FFFFFF01FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF029E9E9E63050505CE000000DD000000D60A0A0AC60000 00D5000000DC010101D86F6F6F80FFFFFF08FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF03D4D4D4412C2C2CA4060606CD010101E10707 07CA222222ACC0C0C054FFFFFF08FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF01FFFFFF06FFFFFF23FFFFFF35FFFF FF22FFFFFF0AFFFFFF01FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF01FFFFFF01FFFF FF01FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 } OnClick = GetCalInfoButtonClick ParentFont = False TabOrder = 13 end end object ReportIntervalTab: TTabSheet Caption = 'Report Interval' ClientHeight = 328 ClientWidth = 869 ParentFont = False object ContCheckGroup: TCheckGroup Left = 664 Height = 168 Top = 8 Width = 200 AutoFill = True Caption = 'Continuous reports' ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 148 ClientWidth = 198 Items.Strings = ( 'Reporting enabled' 'Reporting compressed' 'Report un-averaged' 'LED blink (accessory)' 'Ideal crossover firmware' ) OnItemClick = ContCheckGroupItemClick ParentFont = False TabOrder = 0 Visible = False Data = { 050000000202020202 } end object TimedReportsGroupBox: TGroupBox Left = 8 Height = 288 Top = 8 Width = 647 Caption = 'Timed reports' ClientHeight = 286 ClientWidth = 645 ParentFont = False TabOrder = 1 object GetReportInterval: TBitBtn AnchorSideLeft.Control = TimedReportsGroupBox AnchorSideTop.Control = TimedReportsGroupBox Left = 4 Height = 28 Hint = 'Get Report Interval settings' Top = 4 Width = 34 BorderSpacing.Around = 4 Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF01FFFF FF01FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF01FFFFFF1FFFFF FF5EFFFFFF34FFFFFF0BFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF02FFFFFF05FFFFFF00FFFFFF00FFFFFF01FFFFFF3B3B3B 3B7A8C8C8C7EECECEC7AFFFFFF1CFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF01FAFAFA51F6F6F65DFFFFFF01FFFFFF00FFFFFF01FFFFFF3A0101 01B60000009C15151581CECECE83FFFFFF11FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF209494948478787884FFFFFF30FFFFFF00FFFFFF00FFFFFF159B9B 9B66161616A0000000A714141488E9E9E964FFFFFF01FFFFFF00FFFFFF00FFFF FF04D7D7D77C0404049600000097BEBEBE85FFFFFF10FFFFFF00FFFFFF00FFFF FF03FFFFFF262B2B2B95000000986565657FFFFFFF0DFFFFFF00FFFFFF01F7F7 F7512828289D000000A4000000A1101010A3DCDCDC74FFFFFF02FFFFFF00FFFF FF00FFFFFF039393936A000000A72929298EFFFFFF25FFFFFF01FFFFFF106D6D 6D94050505C3010101B6000000AA090909BC424242A9FFFFFF27FFFFFF01FFFF FF00FFFFFF01FFFFFF411616169F060606A6FFFFFF36FFFFFF01FFFFFF16FFFF FF2DFFFFFF3328282897000000B39393938BFFFFFF33FFFFFF22FFFFFF01FFFF FF00FFFFFF01F4F4F46D010101B00E0E0EA2FFFFFF24FFFFFF01FFFFFF00FFFF FF01FFFFFF035757578A000000C51A1A1AA8FDFDFD61FFFFFF18FFFFFF04FFFF FF17FFFFFF4676767694000000C0292929A1FFFFFF0CFFFFFF00FFFFFF00FFFF FF00FFFFFF01F5F5F532080808C0000000CD4C4C4C9EE4E4E484FFFFFF74EEEE EE8171717197010101C8020202CEC2C2C253FFFFFF01FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF029E9E9E63050505CE000000DD000000D60A0A0AC60000 00D5000000DC010101D86F6F6F80FFFFFF08FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF03D4D4D4412C2C2CA4060606CD010101E10707 07CA222222ACC0C0C054FFFFFF08FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF01FFFFFF06FFFFFF23FFFFFF35FFFF FF22FFFFFF0AFFFFFF01FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF01FFFFFF01FFFF FF01FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 } OnClick = GetReportIntervalClick ParentFont = False TabOrder = 0 end object Label16: TLabel AnchorSideLeft.Control = ITiDes AnchorSideLeft.Side = asrCenter AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = ITiDes Left = 250 Height = 19 Top = 39 Width = 85 Anchors = [akLeft, akBottom] Caption = 'Desired Value' ParentColor = False ParentFont = False end object Label17: TLabel AnchorSideLeft.Control = ITiE AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = ITiE AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = ITiE Left = 464 Height = 19 Top = 39 Width = 66 Anchors = [akLeft, akBottom] Caption = 'in EEPROM' ParentColor = False ParentFont = False end object Label18: TLabel AnchorSideTop.Control = ITiDes AnchorSideTop.Side = asrCenter AnchorSideRight.Control = ITiDes Left = 47 Height = 19 Top = 70 Width = 193 Alignment = taRightJustify Anchors = [akTop, akRight] BorderSpacing.Right = 6 Caption = 'Report Interval Time (seconds):' ParentColor = False ParentFont = False end object Label19: TLabel AnchorSideTop.Control = IThDes AnchorSideTop.Side = asrCenter AnchorSideRight.Control = IThDes Left = 79 Height = 19 Top = 176 Width = 161 Alignment = taRightJustify Anchors = [akTop, akRight] BorderSpacing.Right = 6 Caption = 'Report Threshold (mpsas):' ParentColor = False ParentFont = False end object ITiERButton: TButton AnchorSideLeft.Control = ITiDes AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = ITiDes AnchorSideTop.Side = asrCenter AnchorSideRight.Control = ITiRButton Left = 343 Height = 25 Hint = 'Set in EEPROM and RAM' Top = 67 Width = 50 Anchors = [akTop, akRight] BorderSpacing.Around = 4 Caption = 'E/R' ParentFont = False TabOrder = 1 OnClick = ITiERButtonClick end object IThERButton: TButton AnchorSideLeft.Control = IThDes AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = IThDes AnchorSideTop.Side = asrCenter Left = 343 Height = 26 Hint = 'Set in EEPROM and RAM' Top = 172 Width = 50 BorderSpacing.Around = 4 Caption = 'E/R' ParentFont = False TabOrder = 2 OnClick = IThERButtonClick end object ITiDes: TEdit AnchorSideRight.Control = ITiERButton Left = 246 Height = 34 Hint = 'Time in seconds' Top = 62 Width = 93 Anchors = [akRight] BorderSpacing.Around = 4 Font.Height = -12 Font.Name = 'Courier 10 Pitch' ParentFont = False TabOrder = 3 end object IThDes: TEdit AnchorSideLeft.Control = ITiDes Left = 246 Height = 34 Hint = 'Value in magnitudes per square arcsecond.' Top = 168 Width = 93 Anchors = [akLeft] Font.Height = -12 Font.Name = 'Courier 10 Pitch' ParentFont = False TabOrder = 4 end object ITiE: TEdit AnchorSideLeft.Control = ITiRButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = ITiRButton AnchorSideTop.Side = asrCenter AnchorSideRight.Control = ITiR Left = 451 Height = 34 Hint = 'Permanent setting.' Top = 62 Width = 93 Alignment = taCenter Anchors = [akTop, akRight] BorderSpacing.Around = 4 Font.Height = -12 Font.Name = 'Courier 10 Pitch' ParentFont = False ReadOnly = True TabOrder = 5 end object IThE: TEdit AnchorSideLeft.Control = IThRButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = IThRButton AnchorSideTop.Side = asrCenter Left = 451 Height = 34 Hint = 'Permanent setting.' Top = 168 Width = 93 Alignment = taCenter BorderSpacing.Around = 4 Font.Height = -12 Font.Name = 'Courier 10 Pitch' ParentFont = False ReadOnly = True TabOrder = 6 end object ITiRButton: TButton AnchorSideLeft.Control = ITiERButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = ITiDes AnchorSideTop.Side = asrCenter AnchorSideRight.Control = ITiE Left = 397 Height = 25 Hint = 'Set in RAM' Top = 67 Width = 50 Anchors = [akTop, akRight] BorderSpacing.Around = 4 Caption = 'R' ParentFont = False TabOrder = 7 OnClick = ITiRButtonClick end object IThRButton: TButton AnchorSideLeft.Control = IThERButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = IThERButton AnchorSideTop.Side = asrCenter Left = 397 Height = 26 Hint = 'Set in RAM' Top = 172 Width = 50 BorderSpacing.Around = 4 Caption = 'R' ParentFont = False TabOrder = 8 OnClick = IThRButtonClick end object IThR: TEdit AnchorSideLeft.Control = IThE AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = IThE AnchorSideTop.Side = asrCenter AnchorSideRight.Control = TimedReportsGroupBox AnchorSideRight.Side = asrBottom Left = 548 Height = 34 Hint = 'Temporary setting.' Top = 168 Width = 93 Alignment = taCenter Anchors = [akTop, akRight] BorderSpacing.Around = 4 Font.Height = -12 Font.Name = 'Courier 10 Pitch' ParentFont = False ReadOnly = True TabOrder = 9 end object ITiR: TEdit AnchorSideLeft.Control = ITiE AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = ITiDes AnchorSideTop.Side = asrCenter AnchorSideRight.Control = TimedReportsGroupBox AnchorSideRight.Side = asrBottom Left = 548 Height = 34 Hint = 'Temporary setting.' Top = 62 Width = 93 Alignment = taCenter Anchors = [akTop, akRight] BorderSpacing.Around = 4 Font.Height = -12 Font.Name = 'Courier 10 Pitch' ParentFont = False ReadOnly = True TabOrder = 10 end object Label28: TLabel AnchorSideLeft.Control = Label17 AnchorSideBottom.Control = Label17 Left = 464 Height = 19 Top = 20 Width = 81 Anchors = [akLeft, akBottom] Caption = 'Actual Values' ParentColor = False ParentFont = False end object Label36: TLabel AnchorSideLeft.Control = ITiR AnchorSideLeft.Side = asrCenter AnchorSideBottom.Control = ITiR Left = 573 Height = 19 Top = 39 Width = 43 Anchors = [akLeft, akBottom] Caption = 'in RAM' ParentColor = False ParentFont = False end object Label37: TLabel AnchorSideLeft.Control = Label19 AnchorSideTop.Control = Label19 AnchorSideTop.Side = asrBottom Left = 81 Height = 57 Top = 211 Width = 327 Anchors = [akLeft] BorderSpacing.Around = 2 Caption = 'Notes:'#10' - Set threshold to limit reporting to dark reports only.'#10' - Set into RAM for temporary testing only.' ParentColor = False ParentFont = False end object Label38: TLabel AnchorSideLeft.Control = Label18 AnchorSideTop.Control = Label18 AnchorSideTop.Side = asrBottom Left = 49 Height = 57 Top = 91 Width = 258 BorderSpacing.Around = 2 Caption = 'Notes:'#10' - Set Interval time to 0 to disable.'#10' - Set into RAM for temporary testing only.' ParentColor = False ParentFont = False end object Label39: TLabel AnchorSideLeft.Control = IThE AnchorSideLeft.Side = asrCenter AnchorSideBottom.Control = IThE Left = 464 Height = 19 Top = 145 Width = 66 Anchors = [akLeft, akBottom] BorderSpacing.Around = 4 Caption = 'in EEPROM' ParentColor = False ParentFont = False end object Label40: TLabel AnchorSideLeft.Control = Label39 AnchorSideBottom.Control = Label39 Left = 464 Height = 19 Top = 122 Width = 81 Anchors = [akLeft, akBottom] Caption = 'Actual Values' ParentColor = False ParentFont = False end object Label41: TLabel AnchorSideLeft.Control = IThR AnchorSideLeft.Side = asrCenter AnchorSideBottom.Control = IThR Left = 573 Height = 19 Top = 145 Width = 43 Anchors = [akLeft, akBottom] Caption = 'in RAM' ParentColor = False ParentFont = False end object Label46: TLabel AnchorSideLeft.Control = ITiERButton AnchorSideTop.Control = ITiERButton AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = Label39 Left = 343 Height = 19 Top = 96 Width = 89 Caption = 'Press to load >' ParentColor = False ParentFont = False end object Label47: TLabel AnchorSideLeft.Control = IThERButton AnchorSideTop.Control = IThERButton AnchorSideTop.Side = asrBottom Left = 343 Height = 19 Top = 202 Width = 89 Caption = 'Press to load >' ParentColor = False ParentFont = False end end end object FirmwareTab: TTabSheet AnchorSideTop.Side = asrCenter Caption = 'Firmware' ClientHeight = 328 ClientWidth = 869 ParentFont = False object CheckLockButton: TButton AnchorSideTop.Control = LoadFirmware AnchorSideTop.Side = asrCenter Left = 632 Height = 25 Hint = 'Check the lock switch status.' Top = 179 Width = 88 Anchors = [akTop] Caption = 'Check Lock' ParentFont = False TabOrder = 0 Visible = False OnClick = CheckLockButtonClick end object LoadFirmware: TButton Left = 1 Height = 25 Hint = 'Load the selected formware file into the meter.' Top = 179 Width = 143 Anchors = [] BorderSpacing.Bottom = 2 Caption = 'Load Firmware' Enabled = False ParentFont = False TabOrder = 1 OnClick = LoadFirmwareClick end object CheckLockResult: TEdit AnchorSideLeft.Control = CheckLockButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = CheckLockButton AnchorSideTop.Side = asrCenter Left = 720 Height = 36 Hint = 'Lock status.' Top = 173 Width = 82 ParentFont = False TabOrder = 2 Visible = False end object LoadFirmwareProgressBar: TProgressBar AnchorSideLeft.Control = ResetForFirmwareProgressBar AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = ResetForFirmwareProgressBar Left = 167 Height = 10 Hint = 'Firmware load progress' Top = 179 Width = 392 ParentFont = False Smooth = True Step = 1 TabOrder = 4 end object ResetForFirmwareProgressBar: TProgressBar AnchorSideLeft.Control = LoadFirmware AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = LoadFirmware Left = 147 Height = 10 Hint = 'Initial reset unit progress' Top = 179 Width = 20 BorderSpacing.Left = 3 Max = 20 ParentFont = False Smooth = True Step = 1 TabOrder = 3 end object FinalResetForFirmwareProgressBar: TProgressBar AnchorSideLeft.Control = LoadFirmwareProgressBar AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = LoadFirmwareProgressBar Left = 559 Height = 10 Hint = 'Final reset unit progress' Top = 179 Width = 20 Max = 20 ParentFont = False Smooth = True Step = 1 TabOrder = 5 end object FirmwareInfoButton: TButton AnchorSideLeft.Control = CurrentFirmware AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = CurrentFirmware AnchorSideTop.Side = asrCenter AnchorSideRight.Control = FirmwareTab AnchorSideRight.Side = asrBottom Left = 275 Height = 25 Hint = 'View firmware version changelog.' Top = 8 Width = 136 BorderSpacing.Top = 2 BorderSpacing.Right = 3 Caption = 'Firmware details' Constraints.MinHeight = 25 Constraints.MinWidth = 70 ParentFont = False TabOrder = 6 OnClick = FirmwareInfoButtonClick end object LoadingStatus: TLabel AnchorSideLeft.Control = LoadFirmware AnchorSideLeft.Side = asrBottom AnchorSideBottom.Control = LoadFirmware AnchorSideBottom.Side = asrBottom Left = 147 Height = 19 Top = 185 Width = 466 Anchors = [akLeft, akBottom] BorderSpacing.Left = 3 Caption = 'Status of loading firmware: Waiting for Load Firmware button to be pressed.' ParentColor = False ParentFont = False end object CurrentFirmware: TLabeledEdit AnchorSideTop.Control = FirmwareTab Left = 147 Height = 36 Hint = 'The current firmware Protocol, Model, Feature of the selected meter.' Top = 2 Width = 128 Anchors = [akTop] BorderSpacing.Top = 2 EditLabel.Height = 19 EditLabel.Width = 111 EditLabel.Caption = 'Current firmware:' EditLabel.ParentColor = False EditLabel.ParentFont = False LabelPosition = lpLeft ParentFont = False ReadOnly = True TabOrder = 7 end object SelectFirmwareButton: TButton AnchorSideTop.Control = FirmwareFile AnchorSideTop.Side = asrCenter Left = 1 Height = 25 Top = 44 Width = 143 Anchors = [akTop] Caption = 'Select firmware' TabOrder = 8 OnClick = SelectFirmwareButtonClick end object FirmwareFile: TEdit AnchorSideLeft.Control = CurrentFirmware AnchorSideTop.Control = CurrentFirmware AnchorSideTop.Side = asrBottom Left = 147 Height = 36 Hint = 'Firmware file to be loaded into meter.' Top = 38 Width = 651 ParentFont = False TabOrder = 9 OnChange = FirmwareFileChange end object FWUSBGroup: TGroupBox AnchorSideLeft.Control = CurrentFirmware AnchorSideTop.Control = FirmwareFile AnchorSideTop.Side = asrBottom Left = 147 Height = 74 Top = 74 Width = 667 AutoSize = True Caption = 'USB comm check:' ClientHeight = 54 ClientWidth = 665 TabOrder = 10 object FWWaitUSBButton: TButton AnchorSideLeft.Control = FWUSBGroup AnchorSideTop.Control = FWUSBGroup Left = 3 Height = 25 Top = 0 Width = 165 BorderSpacing.Left = 3 Caption = 'Start UNPLUG method' Enabled = False TabOrder = 0 OnClick = FWWaitUSBButtonClick end object FWUSBExistsLabel: TLabel AnchorSideLeft.Control = FWWaitUSBButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = FWWaitUSBButton AnchorSideTop.Side = asrCenter Left = 168 Height = 15 Top = 5 Width = 405 AutoSize = False ParentColor = False end object FWCounter: TLabel AnchorSideLeft.Control = FWUSBExistsLabel AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = FWWaitUSBButton AnchorSideTop.Side = asrCenter Left = 577 Height = 15 Top = 5 Width = 84 AutoSize = False BorderSpacing.Around = 4 ParentColor = False end object FWStopUSBButton: TButton AnchorSideLeft.Control = FWUSBGroup AnchorSideTop.Control = FWWaitUSBButton AnchorSideTop.Side = asrBottom AnchorSideRight.Control = FWWaitUSBButton AnchorSideRight.Side = asrBottom Left = 3 Height = 25 Top = 29 Width = 165 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 3 BorderSpacing.Top = 4 Caption = 'Stop UNPLUG method' Enabled = False TabOrder = 1 OnClick = FWStopUSBButtonClick end end object FWEthGroup: TGroupBox Left = 1 Height = 56 Top = 264 Width = 296 Anchors = [] Caption = 'Ethernet module:' ClientHeight = 36 ClientWidth = 294 TabOrder = 11 object bXPortDefaults: TButton AnchorSideLeft.Control = FWEthGroup AnchorSideTop.Control = FWEthGroup AnchorSideBottom.Side = asrBottom Left = 0 Height = 28 Hint = 'Set SQM-LE XPort default baudrate.' Top = 0 Width = 143 Caption = 'XPort defaults' ParentFont = False TabOrder = 0 OnClick = bXPortDefaultsClick end object ResetXPortProgressBar: TProgressBar AnchorSideLeft.Control = bXPortDefaults AnchorSideLeft.Side = asrBottom Left = 146 Height = 10 Hint = 'XPort default setting progress' Top = 0 Width = 40 BorderSpacing.Left = 3 Max = 21 ParentFont = False Smooth = True Step = 1 TabOrder = 1 end object FinalResetForXPortProgressBar: TProgressBar AnchorSideLeft.Control = ResetXPortProgressBar AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = ResetXPortProgressBar Left = 186 Height = 10 Hint = 'XPort reset progress' Top = 0 Width = 101 Max = 200 ParentFont = False Smooth = True Step = 1 TabOrder = 2 end end end object DataLoggingTab: TTabSheet Caption = 'Data Logging' ClientHeight = 328 ClientWidth = 869 ParentFont = False object StorageGroup: TGroupBox AnchorSideLeft.Control = TriggerGroupBox AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = DeviceClockGroupBox AnchorSideTop.Side = asrBottom AnchorSideRight.Control = DataLoggingTab AnchorSideRight.Side = asrBottom Left = 434 Height = 258 Top = 55 Width = 435 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 2 Caption = 'Storage' ClientHeight = 238 ClientWidth = 433 ParentFont = False TabOrder = 0 object CapacityLabel: TLabel AnchorSideLeft.Control = StorageGroup AnchorSideTop.Control = DLDBSizeProgressBar AnchorSideTop.Side = asrCenter Left = 6 Height = 19 Top = 197 Width = 55 BorderSpacing.Left = 6 Caption = 'Capacity:' ParentColor = False ParentFont = False end object DLDBSizeProgressBarText: TLabel AnchorSideLeft.Control = StorageGroup AnchorSideRight.Control = StorageGroup AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = StorageGroup AnchorSideBottom.Side = asrBottom Left = 6 Height = 20 Top = 218 Width = 421 Alignment = taCenter Anchors = [akLeft, akRight, akBottom] AutoSize = False BorderSpacing.Left = 6 BorderSpacing.Right = 6 ParentColor = False ParentFont = False end object DLLogOneButton: TButton AnchorSideLeft.Control = DLRetrieveButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = DLRetrieveButton AnchorSideRight.Control = DLEraseAllButton Left = 87 Height = 25 Hint = 'Log one record to SQM unit database when reading > threshold.' Top = 0 Width = 75 BorderSpacing.Left = 6 BorderSpacing.Right = 6 Caption = 'Log one' ParentFont = False TabOrder = 0 OnClick = DLLogOneButtonClick end object DLEraseAllButton: TButton AnchorSideLeft.Control = DLLogOneButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = DLLogOneButton AnchorSideRight.Side = asrBottom Left = 168 Height = 25 Hint = 'Erase entire SQM database.' Top = 0 Width = 75 Caption = 'Erase all' ParentFont = False TabOrder = 1 OnClick = DLEraseAllButtonClick end object LogFirstRecord: TButton AnchorSideLeft.Control = StorageGroup AnchorSideTop.Side = asrBottom Left = 6 Height = 25 Hint = '1st record' Top = 168 Width = 40 Anchors = [akLeft] BorderSpacing.Left = 6 Caption = '|<' ParentFont = False TabOrder = 2 OnClick = LogFirstRecordClick end object LogPreviousRecord: TButton AnchorSideLeft.Control = LogPreviousRecord10 AnchorSideLeft.Side = asrBottom Left = 98 Height = 25 Hint = 'Previous record' Top = 168 Width = 40 Anchors = [akLeft] BorderSpacing.Left = 6 Caption = '<' ParentFont = False TabOrder = 3 OnClick = LogPreviousRecordClick end object LogNextRecord: TButton AnchorSideLeft.Control = LogPreviousRecord AnchorSideLeft.Side = asrBottom Left = 144 Height = 25 Hint = 'Next record' Top = 167 Width = 40 Anchors = [akLeft] BorderSpacing.Left = 6 Caption = '>' ParentFont = False TabOrder = 4 OnClick = LogNextRecordClick end object LogLastRecord: TButton AnchorSideLeft.Control = LogNextRecord10 AnchorSideLeft.Side = asrBottom Left = 236 Height = 25 Hint = 'Last record' Top = 168 Width = 40 Anchors = [akLeft] BorderSpacing.Left = 6 Caption = '>|' ParentFont = False TabOrder = 5 OnClick = LogLastRecordClick end object DLDBSizeProgressBar: TProgressBar AnchorSideLeft.Control = CapacityLabel AnchorSideLeft.Side = asrBottom AnchorSideRight.Control = StorageGroup AnchorSideRight.Side = asrBottom Left = 64 Height = 20 Top = 196 Width = 363 Anchors = [akLeft, akRight] BorderSpacing.Left = 3 BorderSpacing.Right = 6 ParentFont = False Smooth = True Step = 1 TabOrder = 6 end object LogPreviousRecord10: TButton AnchorSideLeft.Control = LogFirstRecord AnchorSideLeft.Side = asrBottom Left = 52 Height = 25 Hint = 'Prevoous 1/10th' Top = 168 Width = 40 Anchors = [akLeft] BorderSpacing.Left = 6 Caption = '<<' ParentFont = False TabOrder = 7 OnClick = LogPreviousRecord10Click end object LogNextRecord10: TButton AnchorSideLeft.Control = LogNextRecord AnchorSideLeft.Side = asrBottom Left = 190 Height = 25 Hint = 'Next 1/10th' Top = 168 Width = 40 Anchors = [akLeft] BorderSpacing.Left = 6 Caption = '>>' ParentFont = False TabOrder = 8 OnClick = LogNextRecord10Click end object DLRetrieveButton: TButton AnchorSideLeft.Control = StorageGroup AnchorSideTop.Control = StorageGroup Left = 6 Height = 25 Top = 0 Width = 75 BorderSpacing.Left = 6 BorderSpacing.Right = 6 Caption = 'Retrieve' ParentFont = False TabOrder = 9 OnClick = DLRetrieveButtonClick end inline LogRecordResult: TSynEdit AnchorSideLeft.Control = DLRetrieveButton AnchorSideTop.Control = DLRetrieveButton AnchorSideTop.Side = asrBottom AnchorSideRight.Control = StorageGroup AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = LogFirstRecord Left = 6 Height = 139 Top = 26 Width = 424 BorderSpacing.Top = 1 BorderSpacing.Right = 3 BorderSpacing.Bottom = 3 Anchors = [akTop, akLeft, akRight, akBottom] Font.Height = -13 Font.Name = 'Courier New' Font.Pitch = fpFixed Font.Quality = fqNonAntialiased ParentColor = False ParentFont = False TabOrder = 10 Gutter.Visible = False Gutter.Width = 57 Gutter.MouseActions = <> RightGutter.Width = 0 RightGutter.MouseActions = <> Keystrokes = < item Command = ecUp ShortCut = 38 end item Command = ecSelUp ShortCut = 8230 end item Command = ecScrollUp ShortCut = 16422 end item Command = ecDown ShortCut = 40 end item Command = ecSelDown ShortCut = 8232 end item Command = ecScrollDown ShortCut = 16424 end item Command = ecLeft ShortCut = 37 end item Command = ecSelLeft ShortCut = 8229 end item Command = ecWordLeft ShortCut = 16421 end item Command = ecSelWordLeft ShortCut = 24613 end item Command = ecRight ShortCut = 39 end item Command = ecSelRight ShortCut = 8231 end item Command = ecWordRight ShortCut = 16423 end item Command = ecSelWordRight ShortCut = 24615 end item Command = ecPageDown ShortCut = 34 end item Command = ecSelPageDown ShortCut = 8226 end item Command = ecPageBottom ShortCut = 16418 end item Command = ecSelPageBottom ShortCut = 24610 end item Command = ecPageUp ShortCut = 33 end item Command = ecSelPageUp ShortCut = 8225 end item Command = ecPageTop ShortCut = 16417 end item Command = ecSelPageTop ShortCut = 24609 end item Command = ecLineStart ShortCut = 36 end item Command = ecSelLineStart ShortCut = 8228 end item Command = ecEditorTop ShortCut = 16420 end item Command = ecSelEditorTop ShortCut = 24612 end item Command = ecLineEnd ShortCut = 35 end item Command = ecSelLineEnd ShortCut = 8227 end item Command = ecEditorBottom ShortCut = 16419 end item Command = ecSelEditorBottom ShortCut = 24611 end item Command = ecToggleMode ShortCut = 45 end item Command = ecCopy ShortCut = 16429 end item Command = ecPaste ShortCut = 8237 end item Command = ecDeleteChar ShortCut = 46 end item Command = ecCut ShortCut = 8238 end item Command = ecDeleteLastChar ShortCut = 8 end item Command = ecDeleteLastChar ShortCut = 8200 end item Command = ecDeleteLastWord ShortCut = 16392 end item Command = ecUndo ShortCut = 32776 end item Command = ecRedo ShortCut = 40968 end item Command = ecLineBreak ShortCut = 13 end item Command = ecSelectAll ShortCut = 16449 end item Command = ecCopy ShortCut = 16451 end item Command = ecBlockIndent ShortCut = 24649 end item Command = ecLineBreak ShortCut = 16461 end item Command = ecInsertLine ShortCut = 16462 end item Command = ecDeleteWord ShortCut = 16468 end item Command = ecBlockUnindent ShortCut = 24661 end item Command = ecPaste ShortCut = 16470 end item Command = ecCut ShortCut = 16472 end item Command = ecDeleteLine ShortCut = 16473 end item Command = ecDeleteEOL ShortCut = 24665 end item Command = ecUndo ShortCut = 16474 end item Command = ecRedo ShortCut = 24666 end item Command = ecGotoMarker0 ShortCut = 16432 end item Command = ecGotoMarker1 ShortCut = 16433 end item Command = ecGotoMarker2 ShortCut = 16434 end item Command = ecGotoMarker3 ShortCut = 16435 end item Command = ecGotoMarker4 ShortCut = 16436 end item Command = ecGotoMarker5 ShortCut = 16437 end item Command = ecGotoMarker6 ShortCut = 16438 end item Command = ecGotoMarker7 ShortCut = 16439 end item Command = ecGotoMarker8 ShortCut = 16440 end item Command = ecGotoMarker9 ShortCut = 16441 end item Command = ecSetMarker0 ShortCut = 24624 end item Command = ecSetMarker1 ShortCut = 24625 end item Command = ecSetMarker2 ShortCut = 24626 end item Command = ecSetMarker3 ShortCut = 24627 end item Command = ecSetMarker4 ShortCut = 24628 end item Command = ecSetMarker5 ShortCut = 24629 end item Command = ecSetMarker6 ShortCut = 24630 end item Command = ecSetMarker7 ShortCut = 24631 end item Command = ecSetMarker8 ShortCut = 24632 end item Command = ecSetMarker9 ShortCut = 24633 end item Command = EcFoldLevel1 ShortCut = 41009 end item Command = EcFoldLevel2 ShortCut = 41010 end item Command = EcFoldLevel3 ShortCut = 41011 end item Command = EcFoldLevel4 ShortCut = 41012 end item Command = EcFoldLevel5 ShortCut = 41013 end item Command = EcFoldLevel6 ShortCut = 41014 end item Command = EcFoldLevel7 ShortCut = 41015 end item Command = EcFoldLevel8 ShortCut = 41016 end item Command = EcFoldLevel9 ShortCut = 41017 end item Command = EcFoldLevel0 ShortCut = 41008 end item Command = EcFoldCurrent ShortCut = 41005 end item Command = EcUnFoldCurrent ShortCut = 41003 end item Command = EcToggleMarkupWord ShortCut = 32845 end item Command = ecNormalSelect ShortCut = 24654 end item Command = ecColumnSelect ShortCut = 24643 end item Command = ecLineSelect ShortCut = 24652 end item Command = ecTab ShortCut = 9 end item Command = ecShiftTab ShortCut = 8201 end item Command = ecMatchBracket ShortCut = 24642 end item Command = ecColSelUp ShortCut = 40998 end item Command = ecColSelDown ShortCut = 41000 end item Command = ecColSelLeft ShortCut = 40997 end item Command = ecColSelRight ShortCut = 40999 end item Command = ecColSelPageDown ShortCut = 40994 end item Command = ecColSelPageBottom ShortCut = 57378 end item Command = ecColSelPageUp ShortCut = 40993 end item Command = ecColSelPageTop ShortCut = 57377 end item Command = ecColSelLineStart ShortCut = 40996 end item Command = ecColSelLineEnd ShortCut = 40995 end item Command = ecColSelEditorTop ShortCut = 57380 end item Command = ecColSelEditorBottom ShortCut = 57379 end> MouseActions = <> MouseTextActions = <> MouseSelActions = <> VisibleSpecialChars = [vscSpace, vscTabAtLast] ScrollBars = ssNone SelectedColor.BackPriority = 50 SelectedColor.ForePriority = 50 SelectedColor.FramePriority = 50 SelectedColor.BoldPriority = 50 SelectedColor.ItalicPriority = 50 SelectedColor.UnderlinePriority = 50 SelectedColor.StrikeOutPriority = 50 BracketHighlightStyle = sbhsBoth BracketMatchColor.Background = clNone BracketMatchColor.Foreground = clNone BracketMatchColor.Style = [fsBold] FoldedCodeColor.Background = clNone FoldedCodeColor.Foreground = clGray FoldedCodeColor.FrameColor = clGray MouseLinkColor.Background = clNone MouseLinkColor.Foreground = clBlue LineHighlightColor.Background = clNone LineHighlightColor.Foreground = clNone inline SynLeftGutterPartList1: TSynGutterPartList object SynGutterMarks1: TSynGutterMarks Width = 24 MouseActions = <> end object SynGutterLineNumber1: TSynGutterLineNumber Width = 17 MouseActions = <> MarkupInfo.Background = clBtnFace MarkupInfo.Foreground = clNone DigitCount = 2 ShowOnlyLineNumbersMultiplesOf = 1 ZeroStart = False LeadingZeros = False end object SynGutterChanges1: TSynGutterChanges Width = 4 MouseActions = <> ModifiedColor = 59900 SavedColor = clGreen end object SynGutterSeparator1: TSynGutterSeparator Width = 2 MouseActions = <> MarkupInfo.Background = clWhite MarkupInfo.Foreground = clGray end object SynGutterCodeFolding1: TSynGutterCodeFolding MouseActions = <> MarkupInfo.Background = clNone MarkupInfo.Foreground = clGray MouseActionsExpanded = <> MouseActionsCollapsed = <> end end end end object EstimatedBatteryGroup: TGroupBox AnchorSideTop.Control = TriggerGroupBox AnchorSideTop.Side = asrBottom Left = 0 Height = 113 Top = 197 Width = 433 Caption = 'Battery life estimator' ClientHeight = 93 ClientWidth = 431 ParentFont = False TabOrder = 1 object Label27: TLabel AnchorSideRight.Control = DLBatteryCapacityComboBox Left = 15 Height = 19 Top = 10 Width = 97 Anchors = [akRight] BorderSpacing.Right = 3 Caption = 'Capacity (mAH):' ParentColor = False ParentFont = False end object Label29: TLabel Left = 6 Height = 19 Top = 40 Width = 58 Caption = 'Duration:' ParentColor = False ParentFont = False end object Label31: TLabel AnchorSideTop.Control = DLBatteryDurationUntil AnchorSideTop.Side = asrCenter AnchorSideRight.Control = DLBatteryDurationUntil Left = 164 Height = 19 Top = 68 Width = 76 Anchors = [akTop, akRight] BorderSpacing.Right = 3 Caption = 'records until' ParentColor = False ParentFont = False end object DLBatteryDurationTime: TEdit AnchorSideTop.Control = DLBatteryCapacityComboBox AnchorSideTop.Side = asrBottom Left = 63 Height = 28 Top = 35 Width = 359 AutoSize = False ParentFont = False ReadOnly = True TabOrder = 0 end object DLBatteryDurationUntil: TEdit AnchorSideTop.Control = DLBatteryDurationTime AnchorSideTop.Side = asrBottom AnchorSideRight.Control = DLBatteryDurationTime AnchorSideRight.Side = asrBottom Left = 243 Height = 28 Top = 63 Width = 179 Alignment = taCenter Anchors = [akTop, akRight] AutoSize = False ParentFont = False ReadOnly = True TabOrder = 1 end object DLBatteryCapacityComboBox: TComboBox Left = 115 Height = 28 Hint = 'Enter custom value here (space after number).' Top = 7 Width = 307 AutoSize = False ItemHeight = 0 ItemIndex = 1 Items.Strings = ( '3000 mAH, Lithium batteries' '2600 mAH, Alkaline batteries' '1000 mAH, Carbon Zinc batteries' ) ParentFont = False TabOrder = 2 Text = '2600 mAH, Alkaline batteries' OnChange = DLBatteryCapacityComboBoxChange end object DLBatteryDurationRecords: TEdit AnchorSideLeft.Control = DLBatteryDurationTime AnchorSideTop.Control = DLBatteryDurationTime AnchorSideTop.Side = asrBottom AnchorSideRight.Side = asrBottom Left = 63 Height = 28 Top = 63 Width = 92 Alignment = taCenter AutoSize = False ParentFont = False ReadOnly = True TabOrder = 3 end end object TriggerGroupBox: TGroupBox AnchorSideTop.Control = DataLoggingTab Left = -1 Height = 197 Top = 0 Width = 433 Caption = 'Trigger (logging to internal FLASH memory)' ClientHeight = 177 ClientWidth = 431 ParentFont = False TabOrder = 2 object Threshold: TGroupBox Left = 286 Height = 60 Top = 40 Width = 137 Caption = 'Threshold : mpsas' ClientHeight = 40 ClientWidth = 135 ParentFont = False TabOrder = 0 object DLThreshold: TEdit Left = 6 Height = 31 Hint = '0=records all values, >0 only record values over this mpsas value.' Top = 1 Width = 49 AutoSize = False ParentFont = False TabOrder = 0 OnChange = DLThresholdChange end object DLThresholdSet: TButton Left = 57 Height = 31 Top = 1 Width = 64 Caption = 'Set' ParentFont = False TabOrder = 1 OnClick = DLThresholdSetClick end end object ThresholdVibrationGroup: TGroupBox Left = 286 Height = 60 Top = 107 Width = 136 Caption = 'Threshold: vibration' ClientHeight = 40 ClientWidth = 134 ParentFont = False TabOrder = 1 object VThreshold: TEdit Left = 4 Height = 36 Top = 3 Width = 49 Anchors = [akTop] ParentFont = False TabOrder = 0 OnChange = VThresholdChange end object VThresholdSet: TButton Left = 56 Height = 31 Top = 3 Width = 64 Caption = 'Set' ParentFont = False TabOrder = 1 OnClick = VThresholdSetClick end end object TriggerComboBox: TComboBox Left = 0 Height = 36 Top = 4 Width = 280 ItemHeight = 0 ItemIndex = 0 Items.Strings = ( 'Off' 'Every x seconds (always on)' 'Every x minutes (power save mode)' 'Every 5 minutes on the 1/12th hour' 'Every 10 minutes on the 1/6th hour' 'Every 15 minutes on the 1/4 hour' 'Every 30 minutes on the 1/2 hour' 'Every hour on the hour' ) ReadOnly = True TabOrder = 2 Text = 'Off' OnChange = TriggerComboBoxChange end object DLSecMinPages: TPageControl AnchorSideLeft.Control = TriggerComboBox AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = TriggerComboBox AnchorSideTop.Side = asrCenter Left = 286 Height = 34 Top = 5 Width = 137 ActivePage = DLMinSheet BorderSpacing.Left = 6 ShowTabs = False TabIndex = 1 TabOrder = 3 object DLSecSheet: TTabSheet Caption = 'DLSecSheet' ClientHeight = 30 ClientWidth = 127 object Label22: TLabel AnchorSideLeft.Control = DLTrigSeconds AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = DLTrigSeconds AnchorSideTop.Side = asrCenter Left = 53 Height = 19 Top = 6 Width = 6 Caption = 's' ParentColor = False ParentFont = False end object DLTrigSeconds: TEdit AnchorSideLeft.Control = DLSecSheet AnchorSideTop.Control = DLSecSheet AnchorSideTop.Side = asrCenter Left = 4 Height = 25 Hint = 'Press Enter when done.' Top = 3 Width = 49 Alignment = taRightJustify AutoSize = False BorderSpacing.Left = 4 ParentFont = False TabOrder = 0 OnChange = DLTrigSecondsChange end object DLSetSeconds: TButton AnchorSideLeft.Control = Label22 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = DLTrigSeconds AnchorSideTop.Side = asrCenter AnchorSideRight.Control = DLSecSheet AnchorSideRight.Side = asrBottom Left = 67 Height = 25 Top = 3 Width = 57 BorderSpacing.Left = 8 Caption = 'Set' ParentFont = False TabOrder = 1 OnClick = DLSetSecondsClick end end object DLMinSheet: TTabSheet Caption = 'DLMinSheet' ClientHeight = 30 ClientWidth = 127 object DLTrigMinutes: TEdit AnchorSideLeft.Control = DLMinSheet AnchorSideTop.Control = DLMinSheet AnchorSideTop.Side = asrCenter Left = 4 Height = 25 Hint = 'Press Enter when done.' Top = 3 Width = 49 Alignment = taRightJustify AutoSize = False BorderSpacing.Left = 4 ParentFont = False TabOrder = 0 OnChange = DLTrigMinutesChange end object Label23: TLabel AnchorSideLeft.Control = DLTrigMinutes AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = DLTrigMinutes AnchorSideTop.Side = asrCenter Left = 53 Height = 19 Top = 6 Width = 12 Caption = 'm' ParentColor = False ParentFont = False end object DLSetSeconds1: TButton AnchorSideLeft.Control = Label23 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = DLTrigMinutes AnchorSideTop.Side = asrCenter Left = 70 Height = 25 Top = 3 Width = 57 BorderSpacing.Left = 5 Caption = 'Set' ParentFont = False TabOrder = 1 OnClick = DLSetSeconds1Click end end end object SnowGroupBox: TGroupBox Left = 0 Height = 61 Top = 115 Width = 280 Caption = 'Snow factor logging' ClientHeight = 41 ClientWidth = 278 TabOrder = 4 object SnowSampleLabel: TLabel AnchorSideLeft.Control = SnowGroupBox AnchorSideTop.Control = SnowReadSkipEdit AnchorSideTop.Side = asrCenter Left = 3 Height = 19 Top = 15 Width = 87 BorderSpacing.Left = 3 Caption = 'Sample every:' ParentColor = False end object SnowReadSkipEdit: TEdit AnchorSideLeft.Control = SnowSampleLabel AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SnowGroupBox Left = 90 Height = 36 Top = 6 Width = 80 BorderSpacing.Top = 6 TabOrder = 0 end object SnowReadingsLabel: TLabel AnchorSideLeft.Control = SnowReadSkipEdit AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SnowReadSkipEdit AnchorSideTop.Side = asrCenter Left = 173 Height = 19 Top = 15 Width = 51 BorderSpacing.Left = 3 Caption = 'reading.' ParentColor = False end end object DLMutualAccessGroup: TRadioGroup Left = 0 Height = 71 Top = 40 Width = 193 AutoFill = True Caption = 'Mutual access logging:' ChildSizing.LeftRightSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 51 ClientWidth = 191 Items.Strings = ( 'Battery only logging' 'Battery and PC logging' ) OnClick = DLMutualAccessGroupClick TabOrder = 5 Visible = False end end object DeviceClockGroupBox: TGroupBox AnchorSideLeft.Control = TriggerGroupBox AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = DataLoggingTab AnchorSideRight.Control = DataLoggingTab AnchorSideRight.Side = asrBottom Left = 434 Height = 55 Top = 0 Width = 435 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 2 Caption = 'Device Clock' ClientHeight = 35 ClientWidth = 433 ParentFont = False TabOrder = 3 object DLClockSettingsButton: TButton Left = 6 Height = 25 Top = 3 Width = 75 Caption = 'Settings' ParentFont = False TabOrder = 0 OnClick = DLClockSettingsButtonClick end object DLClockDifference: TLabeledEdit AnchorSideTop.Control = DLClockSettingsButton AnchorSideRight.Control = DLClockDifferenceLabel Left = 198 Height = 28 Top = 3 Width = 120 Alignment = taRightJustify Anchors = [akTop, akRight] AutoSize = False BorderSpacing.Right = 6 EditLabel.Height = 19 EditLabel.Width = 69 EditLabel.Caption = 'Difference:' EditLabel.ParentColor = False EditLabel.ParentFont = False LabelPosition = lpLeft ParentFont = False TabOrder = 1 end object DLClockDifferenceLabel: TLabel AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = DLClockDifference AnchorSideTop.Side = asrCenter AnchorSideRight.Side = asrBottom Left = 324 Height = 16 Top = 9 Width = 100 Anchors = [akTop] AutoSize = False BorderSpacing.Right = 6 Caption = 'second(s)' ParentColor = False ParentFont = False end end object TrickleOnButton: TButton Left = 547 Height = 25 Top = 24 Width = 20 Caption = 'T1' ParentFont = False TabOrder = 4 Visible = False OnClick = TrickleOnButtonClick end object TrickleOffButton: TButton Left = 523 Height = 25 Top = 24 Width = 20 Caption = 'T0' ParentFont = False TabOrder = 5 Visible = False OnClick = TrickleOffButtonClick end end object ConfigurationTab: TTabSheet Caption = 'Configuration' ClientHeight = 328 ClientWidth = 869 ParentFont = False object ConfDarkCalButton: TButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Side = asrCenter AnchorSideRight.Control = ScrollBox1 AnchorSideBottom.Control = ConfLightCalButton AnchorSideBottom.Side = asrBottom Left = 168 Height = 25 Hint = 'Read notes before pressing button!' Top = 272 Width = 48 Anchors = [akRight, akBottom] BorderSpacing.Left = 2 BorderSpacing.Right = 2 Caption = 'Dark' ParentFont = False TabOrder = 1 OnClick = ConfDarkCalButtonClick end object ConfRdgmpsas: TLabeledEdit Left = 85 Height = 28 Hint = 'Unaveraged meter value' Top = 6 Width = 79 Alignment = taCenter AutoSize = False EditLabel.Height = 19 EditLabel.Width = 43 EditLabel.Caption = 'Bright.' EditLabel.ParentColor = False EditLabel.ParentFont = False LabelPosition = lpLeft ParentFont = False ReadOnly = True TabOrder = 6 TabStop = False end object ConfRdgPer: TLabeledEdit Left = 85 Height = 28 Hint = 'Unaveraged period' Top = 33 Width = 79 Alignment = taCenter AutoSize = False EditLabel.Height = 19 EditLabel.Width = 41 EditLabel.Caption = 'Period' EditLabel.ParentColor = False EditLabel.ParentFont = False LabelPosition = lpLeft ParentFont = False ReadOnly = True TabOrder = 7 TabStop = False end object ConfRdgTemp: TLabeledEdit Left = 85 Height = 28 Hint = 'Temperature at sensor' Top = 61 Width = 79 Alignment = taCenter AutoSize = False EditLabel.Height = 19 EditLabel.Width = 38 EditLabel.Caption = 'Temp.' EditLabel.ParentColor = False EditLabel.ParentFont = False LabelPosition = lpLeft ParentFont = False ReadOnly = True TabOrder = 8 TabStop = False end object Label43: TLabel AnchorSideLeft.Control = ConfRdgTemp AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = ConfRdgTemp AnchorSideTop.Side = asrCenter Left = 167 Height = 19 Top = 66 Width = 14 BorderSpacing.Left = 3 Caption = '°C' ParentColor = False ParentFont = False end object Label44: TLabel AnchorSideLeft.Control = ConfRdgmpsas AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = ConfRdgmpsas AnchorSideTop.Side = asrCenter Left = 167 Height = 19 Top = 11 Width = 39 BorderSpacing.Left = 3 Caption = 'mpsas' ParentColor = False ParentFont = False end object Label45: TLabel AnchorSideLeft.Control = ConfRdgPer AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = ConfRdgPer AnchorSideTop.Side = asrCenter Left = 167 Height = 19 Top = 38 Width = 20 BorderSpacing.Left = 3 Caption = 'sec' ParentColor = False ParentFont = False end object ConfTempWarning: TLabel AnchorSideLeft.Control = ConfRdgTemp AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = ConfRdgTemp AnchorSideTop.Side = asrBottom Left = 86 Height = 15 Hint = 'Calibration temperature range warning indicator' Top = 91 Width = 77 Alignment = taCenter AutoSize = False BorderSpacing.Top = 2 Caption = 'XIIIIIIIIIIIIIIIIIIIIIX' ParentColor = False ParentFont = False end object Memo1: TMemo AnchorSideLeft.Control = ScrollBox1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = ConfigurationTab AnchorSideRight.Control = ConfigurationTab AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = ConfigurationTab AnchorSideBottom.Side = asrBottom Left = 723 Height = 316 Top = 6 Width = 140 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Top = 6 BorderSpacing.Right = 6 BorderSpacing.Bottom = 6 BorderStyle = bsNone Lines.Strings = ( 'Calibration is performed at the Unihedron factory.' '' 'Light calibration requires a calibrated light source.' '' 'Dark calibration is done in an absolutely dark environment. Keep refreshing the readings until the period stabilizes or reaches the top limit of 300.00 seconds.' '' 'The calibration settings can be restored from the calibration page using the original values from your calibration sheet that was supplied with the delivered unit.' ) ParentFont = False ParentShowHint = False ScrollBars = ssAutoVertical TabOrder = 10 TabStop = False end object PrintCalReport: TButton AnchorSideLeft.Control = LogCalButton AnchorSideLeft.Side = asrBottom AnchorSideBottom.Control = ConfigurationTab AnchorSideBottom.Side = asrBottom Left = 71 Height = 25 Hint = 'Print calibration report' Top = 301 Width = 65 Anchors = [akLeft, akBottom] BorderSpacing.Left = 2 BorderSpacing.Bottom = 2 Caption = 'Print' ParentFont = False TabOrder = 4 Visible = False OnClick = PrintCalReportClick end object ConfGetCal: TBitBtn Left = 3 Height = 28 Hint = 'Refresh' Top = 4 Width = 34 Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF01FFFF FF01FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF01FFFFFF1FFFFF FF5EFFFFFF34FFFFFF0BFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF02FFFFFF05FFFFFF00FFFFFF00FFFFFF01FFFFFF3B3B3B 3B7A8C8C8C7EECECEC7AFFFFFF1CFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF01FAFAFA51F6F6F65DFFFFFF01FFFFFF00FFFFFF01FFFFFF3A0101 01B60000009C15151581CECECE83FFFFFF11FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF209494948478787884FFFFFF30FFFFFF00FFFFFF00FFFFFF159B9B 9B66161616A0000000A714141488E9E9E964FFFFFF01FFFFFF00FFFFFF00FFFF FF04D7D7D77C0404049600000097BEBEBE85FFFFFF10FFFFFF00FFFFFF00FFFF FF03FFFFFF262B2B2B95000000986565657FFFFFFF0DFFFFFF00FFFFFF01F7F7 F7512828289D000000A4000000A1101010A3DCDCDC74FFFFFF02FFFFFF00FFFF FF00FFFFFF039393936A000000A72929298EFFFFFF25FFFFFF01FFFFFF106D6D 6D94050505C3010101B6000000AA090909BC424242A9FFFFFF27FFFFFF01FFFF FF00FFFFFF01FFFFFF411616169F060606A6FFFFFF36FFFFFF01FFFFFF16FFFF FF2DFFFFFF3328282897000000B39393938BFFFFFF33FFFFFF22FFFFFF01FFFF FF00FFFFFF01F4F4F46D010101B00E0E0EA2FFFFFF24FFFFFF01FFFFFF00FFFF FF01FFFFFF035757578A000000C51A1A1AA8FDFDFD61FFFFFF18FFFFFF04FFFF FF17FFFFFF4676767694000000C0292929A1FFFFFF0CFFFFFF00FFFFFF00FFFF FF00FFFFFF01F5F5F532080808C0000000CD4C4C4C9EE4E4E484FFFFFF74EEEE EE8171717197010101C8020202CEC2C2C253FFFFFF01FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF029E9E9E63050505CE000000DD000000D60A0A0AC60000 00D5000000DC010101D86F6F6F80FFFFFF08FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF03D4D4D4412C2C2CA4060606CD010101E10707 07CA222222ACC0C0C054FFFFFF08FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF01FFFFFF06FFFFFF23FFFFFF35FFFF FF22FFFFFF0AFFFFFF01FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF01FFFFFF01FFFF FF01FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 } OnClick = ConfGetCalClick ParentFont = False TabOrder = 0 end object LogCalButton: TButton AnchorSideLeft.Control = ConfigurationTab AnchorSideBottom.Control = ConfigurationTab AnchorSideBottom.Side = asrBottom Left = 1 Height = 25 Hint = 'Save calibration data to file' Top = 301 Width = 68 Anchors = [akLeft, akBottom] BorderSpacing.Left = 1 BorderSpacing.Bottom = 2 Caption = 'Log Cal' ParentFont = False TabOrder = 3 OnClick = LogCalButtonClick end object PrintLabelButton: TBitBtn AnchorSideLeft.Control = PrintCalReport AnchorSideLeft.Side = asrBottom AnchorSideBottom.Control = ConfigurationTab AnchorSideBottom.Side = asrBottom Left = 138 Height = 25 Hint = 'Print label for back of unit' Top = 301 Width = 49 Anchors = [akLeft, akBottom] BorderSpacing.Left = 2 BorderSpacing.Bottom = 2 Caption = 'Label' OnClick = PrintLabelButtonClick ParentFont = False TabOrder = 5 Visible = False end object ConfDarkCaluxButton: TButton AnchorSideLeft.Side = asrBottom AnchorSideRight.Control = ConfDarkCalReq AnchorSideBottom.Control = ConfLightCalButton AnchorSideBottom.Side = asrBottom Left = 116 Height = 25 Hint = 'Set Dark calibration value to unaveraged dark time' Top = 272 Width = 30 Anchors = [akRight, akBottom] BorderSpacing.Left = 2 BorderSpacing.Right = 2 Caption = 'ux' ParentFont = False TabOrder = 2 OnClick = ConfDarkCaluxButtonClick end object ScrollBox1: TScrollBox AnchorSideTop.Control = ConfigurationTab AnchorSideRight.Control = Memo1 AnchorSideBottom.Control = ConfigurationTab AnchorSideBottom.Side = asrBottom Left = 218 Height = 316 Top = 6 Width = 499 HorzScrollBar.Page = 1 HorzScrollBar.Visible = False VertScrollBar.Page = 314 VertScrollBar.Tracking = True Anchors = [akTop, akBottom] BorderSpacing.Top = 6 BorderSpacing.Right = 6 BorderSpacing.Bottom = 6 ClientHeight = 314 ClientWidth = 484 ParentFont = False TabOrder = 9 object Panel1: TImage AnchorSideLeft.Control = ScrollBox1 AnchorSideTop.Control = ScrollBox1 AnchorSideRight.Control = ScrollBox1 AnchorSideRight.Side = asrBottom Left = 0 Height = 600 Top = 0 Width = 484 Anchors = [akTop, akLeft, akRight] ParentShowHint = False end end object LHCombo: TComboBox AnchorSideTop.Control = ConfRecWarning AnchorSideTop.Side = asrBottom AnchorSideRight.Control = ConfDarkCalButton AnchorSideRight.Side = asrBottom Left = 51 Height = 28 Hint = 'Lens holder type' Top = 108 Width = 165 Anchors = [akTop, akRight] AutoSize = False ItemHeight = 0 Items.Strings = ( 'No Holder' 'GD Holder' '3D Printed Holder' ) ParentFont = False TabOrder = 11 Text = 'N/A' Visible = False OnChange = LHComboChange end object LensCombo: TComboBox AnchorSideLeft.Control = LHCombo AnchorSideTop.Control = LHCombo AnchorSideTop.Side = asrBottom AnchorSideRight.Control = LHCombo AnchorSideRight.Side = asrBottom Left = 51 Height = 28 Hint = 'Lens type' Top = 136 Width = 165 Anchors = [akTop, akLeft, akRight] AutoSize = False ItemHeight = 0 Items.Strings = ( 'No Lens' 'GD Lens' 'Half-ball Lens' ) ParentFont = False TabOrder = 12 Text = 'N/A' Visible = False OnChange = LensComboChange end object FilterCombo: TComboBox AnchorSideLeft.Control = LensCombo AnchorSideTop.Control = LensCombo AnchorSideTop.Side = asrBottom AnchorSideRight.Control = LensCombo AnchorSideRight.Side = asrBottom Left = 51 Height = 28 Hint = 'Filter type' Top = 164 Width = 165 Anchors = [akTop, akLeft, akRight] AutoSize = False ItemHeight = 0 Items.Strings = ( 'No Filter' 'Hoya CM500 filter' 'UV IR Interference Filter' ) ParentFont = False TabOrder = 13 Text = 'N/A' Visible = False OnChange = FilterComboChange end object ConfRecWarning: TLabel AnchorSideLeft.Control = ConfRdgTemp AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = ConfRdgTemp AnchorSideTop.Side = asrBottom Left = 8 Height = 19 Hint = 'EEPROM Flash defective indicator' Top = 89 Width = 77 Alignment = taCenter Anchors = [akTop] AutoSize = False Caption = 'XIIIIIIIIIIIIIIIIIIIIIX' ParentColor = False ParentFont = False end object LHComboLabel: TLabel AnchorSideTop.Control = LHCombo AnchorSideTop.Side = asrCenter AnchorSideRight.Control = LHCombo Left = 2 Height = 19 Top = 113 Width = 47 Anchors = [akTop, akRight] BorderSpacing.Right = 2 Caption = 'Holder:' ParentColor = False ParentFont = False Visible = False end object LensComboLabel: TLabel AnchorSideTop.Control = LensCombo AnchorSideTop.Side = asrCenter AnchorSideRight.Control = LensCombo Left = 16 Height = 19 Top = 141 Width = 33 Anchors = [akTop, akRight] BorderSpacing.Right = 2 Caption = 'Lens:' ParentColor = False ParentFont = False Visible = False end object FilterComboLabel: TLabel AnchorSideTop.Control = FilterCombo AnchorSideTop.Side = asrCenter AnchorSideRight.Control = FilterCombo Left = 13 Height = 19 Top = 169 Width = 36 Anchors = [akTop, akRight] BorderSpacing.Right = 2 Caption = 'Filter:' ParentColor = False ParentFont = False Visible = False end object LockSwitchOptions: TCheckGroup AnchorSideTop.Control = FilterCombo AnchorSideTop.Side = asrBottom AnchorSideRight.Control = FilterCombo AnchorSideRight.Side = asrBottom Left = 39 Height = 82 Top = 192 Width = 177 Anchors = [akTop, akRight, akBottom] AutoFill = True BorderSpacing.Bottom = 2 Caption = 'Lock switch protects:' ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 62 ClientWidth = 175 Items.Strings = ( 'Cal. settings' 'Rpt. Int. settings' 'Conf. settings' 'These settings' ) OnItemClick = LockSwitchOptionsItemClick ParentFont = False TabOrder = 14 Visible = False Data = { 0400000002020202 } end object LockedImage: TImage Left = 3 Height = 32 Hint = 'Locked' Top = 231 Width = 32 Picture.Data = { 1754506F727461626C654E6574776F726B47726170686963AE03000089504E47 0D0A1A0A0000000D4948445200000030000000300802000000D8606ED0000000 097048597300005C4600005C4601149443410000000774494D4507E00C101725 2E623563610000034D4944415458C3ED59BF4B2B4110CEDE6D4E397FE6307057 5A0435514145B0B15051481D4D65EB1F60616161636529281662238216096227 0A16462D038931012DC4804AF017412598ECDDED2B0EF6055E34BBCBCAD3F79C 22C5B233FBDDEC7CF3CD5D00C6D8F5954C727D3183DC9E08A1D3D3D3F3F3F374 3A7D7F7F2F4992AEEB9D9D9D6D6D6D5D5D5DFC8830972D2F2F6B9AE676BBFF0C A8288A6118D168942F3233A0582CD6DEDE4EF3A8838383A954EA7301ADAFAF03 00E8D3AF28CAC9C909D311809E656B6B6B535353E52B030303E170B8BBBBDBEB F5DAB69DCBE5E2F1F8E6E666269329DFB6B7B737363626B88612890484BF19A0 AAEAEEEEEE7B9B575656CA377B3C9E5C2E27F8CA7A7B7BC9018140E0FAFAFAE3 FDA954CAEBF512978989099180B6B7B74968B7DB7D797949E3757878587E15C9 645218A0402040E2462211FA0A9D9F9F278EE3E3E36200DDDEDE3637373B415B 5B5B9928F3FCFCDCD8D8E8F8FA7CBE42A150D5A5BA743C3C3CBCBCBC90D6C2D4 755555254DEBE6E6E6EDED8D5F3AAEAEAEF2F93C00201E8F5B96E52C36353525 934906A5942492A142A1904824344DC318EBBAAEEB7A4597CA7DE8E2E2C2EFF7 CBB2EC72B96CDB364DD3599765D959A437D3346DDB2684207DF5E9E9A9AEAE8E B60F2D2D2D7DB6AAEFEFEF573C1ABE976AE737180C7A3C1E8138B2D9ECD1D111 E7F82149D2E4E4A4CFE71308E8E0E0E0F8F8F803BD821FAB0A42A8542A090484 10FA772746CBB25E5F5F99C60FC7EAEBEB9DA214090842383D3D7D7676C60A08 631C0C066766664833130308008010E27845B16DBB6ADDF00042082D2E2EE6F3 798EB2D0348D323D6C3504216C6969F9EFDECBBEF98B2207E71DA2890724CBF2 D6D6562C16E3A07D28141A1919219A2F8CF61B1B1B8F8F8F1C19B22C6B747454 3020CBB2565757D3E934C7ADF5F5F591894A18208CB161188661FCB0ECBBB0CC 998833990C53748C3184D0EFF7178B45C1801445098542D96C9623434343430B 0B0B947226D13F6B7F7F3F5F59F4F4F4D0E79541ED676767E7E6E628DB49F960 5E2A95E82710861A2A168BF4A5F0A3F67FA50F01006A6B6B555515785E4D4D0D 0F208714A66986C3E12F7165953F0308B586860686AF1F08A1E1E1E1BBBBBB4F 42D3D1D1B1B3B3C300884383446922F8F937A88AFD020EEBC69BB8B069560000 000049454E44AE426082 } Proportional = True Visible = False end object UnLockedImage: TImage Left = 3 Height = 32 Hint = 'Unlocked' Top = 193 Width = 30 Picture.Data = { 1754506F727461626C654E6574776F726B477261706869632103000089504E47 0D0A1A0A0000000D4948445200000030000000300802000000D8606ED0000000 097048597300005C4600005C4601149443410000000774494D4507E00C10171D 25E2780612000002C04944415458C3ED993F6BF25014C6F3CF066D156A4D15DA 411CED501105A7165141C81750C42FE0D2A1B83AF70BB4D0A17452101DBA3A29 BA889BA5A9B83888A254D141DA2126B91D02C1C1D69BEB4DDFF6C5670A09B9F7 E739E7B9E7A8240080F84DA2885F2606F94D59969F9F9FBBDDAE20086F6F6F2E 97EBFAFADA66B36D4B0490F4F0F0C0719CC9645A5D2A128980ADA51BA8D96C9E 9F9FAFFD6C76BBFDA7814AA51249925F05BB5AAD6E0FA4A3868AC562229158BD E3F7FB138984CFE7E338EEF4F4D4E17060A86A48F04EA7B35A3166B3B95C2E03 03040B140E87351A8FC7D3EBF580318202AAD7EB1A0D4DD32F2F2FC030410105 83410DE8EEEE0E18A9CD4093C9E4E8E848A5713A9DC0606D6E1DD3E974B158A8 D7171717FFAC75F4FBFDD96C4692A42008A228AA37AD566BBBDDDEDED71CC79D 9C9CAC7D4AAEEDF6C3E1D0E3F1A8D78AA24892A455344DD3DB874192A4D16874 7C7C0C7B0E150A05A35393CFE7759FD42449C6E371ADA2B168381C56AB557571 94F123994C7ABD5E8C408D46A356AB7D3315321B93AD55341669E5F83F4E8CB2 2CBFBFBF23ECB1BFBF0FEF4D58A0BDBDBD6C36DB6AB5BE9987BE3A752E2F2F73 B99CA2289823248AA2A2281445E9055A2E97F853268AE2CDCDCD7C3E4748D9E1 E1216478F44588A6693C33E1DF72D91FFFA2A8D7625A5DE307A269FAE9E9A952 A920D89EE7799EE731DB9E6198C7C7C7F1788C10A18F8F0F9EE7F1DBFEFEFEBE DD6E2344C8E7F3C1678D815F97E3B868348A3C25EE5CF6C32E23088265594110 E09B808A4251D4D9D919FC50C5C0D3A4D3E9D7D7578408050281DBDB5B599671 D6902CCBA15008AD2CFC7E3F7E97499294C964AEAEAE74A58C20088AA296CB25 FE94A94711DEF97AD7ED8D38875896B5582C18F76359161D0800904AA57E45CA AC56ABD11B1F1C1CE8F8F5435194582C36180C0CA271BBDD954A450710420FC2 D513C9DDBF411BF40987C114DA1F81AD700000000049454E44AE426082 } Proportional = True Visible = False end object ConfLightCalButton: TButton AnchorSideLeft.Control = ConfLightCalReq AnchorSideLeft.Side = asrBottom AnchorSideBottom.Control = LogCalButton Left = 22 Height = 25 Hint = 'Read notes before pressing button!' Top = 272 Width = 57 Anchors = [akLeft, akBottom] BorderSpacing.Left = 2 BorderSpacing.Bottom = 4 Caption = 'Light' ParentFont = False TabOrder = 15 OnClick = ConfLightCalButtonClick end object ConfLightCalReq: TShape AnchorSideLeft.Control = ConfigurationTab AnchorSideTop.Control = ConfLightCalButton AnchorSideTop.Side = asrCenter AnchorSideBottom.Side = asrBottom Left = 2 Height = 18 Top = 275 Width = 18 BorderSpacing.Left = 2 Brush.Color = 13356031 Shape = stCircle end object ConfDarkCalReq: TShape AnchorSideTop.Control = ConfDarkCaluxButton AnchorSideTop.Side = asrCenter AnchorSideRight.Control = ConfDarkCalButton Left = 148 Height = 18 Top = 275 Width = 18 Anchors = [akTop, akRight] BorderSpacing.Right = 2 Brush.Color = 13356031 Shape = stCircle end object LabelTextButton: TButton AnchorSideLeft.Control = PrintLabelButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = PrintLabelButton Left = 187 Height = 25 Hint = 'Labeler command text to clipboard and console.' Top = 301 Width = 24 Caption = 'T' TabOrder = 16 OnClick = LabelTextButtonClick end end object GPSTab: TTabSheet Caption = 'GPS' ClientHeight = 328 ClientWidth = 869 ParentFont = False object Button18: TButton Left = 8 Height = 25 Top = 8 Width = 75 Caption = '0: GGA' ParentFont = False TabOrder = 0 OnClick = Button18Click end object Button1: TButton Left = 8 Height = 25 Top = 32 Width = 75 Caption = '1: GLL' Enabled = False ParentFont = False TabOrder = 1 OnClick = Button1Click end object Button2: TButton Left = 8 Height = 25 Top = 56 Width = 75 Caption = '2: GSA' Enabled = False ParentFont = False TabOrder = 2 OnClick = Button2Click end object Button3: TButton Left = 8 Height = 25 Top = 79 Width = 75 Caption = '4: RMC' Enabled = False ParentFont = False TabOrder = 3 OnClick = Button3Click end object Button4: TButton Left = 8 Height = 25 Top = 104 Width = 75 Caption = '5: VTG' Enabled = False ParentFont = False TabOrder = 4 OnClick = Button4Click end object Button5: TButton Left = 8 Height = 25 Top = 128 Width = 75 Caption = '6: MSS' Enabled = False ParentFont = False TabOrder = 5 OnClick = Button5Click end object Button6: TButton Left = 8 Height = 25 Top = 152 Width = 75 Caption = '8: ZDA' Enabled = False ParentFont = False TabOrder = 6 OnClick = Button6Click end object Button7: TButton Left = 8 Height = 25 Top = 177 Width = 75 Caption = 'A: GSV1' Enabled = False ParentFont = False TabOrder = 7 OnClick = Button7Click end object Button8: TButton Left = 8 Height = 25 Top = 200 Width = 75 Caption = 'B: GSV2' Enabled = False ParentFont = False TabOrder = 8 OnClick = Button8Click end object Button9: TButton Left = 8 Height = 25 Top = 224 Width = 75 Caption = 'C: GSV3' Enabled = False ParentFont = False TabOrder = 9 OnClick = Button9Click end object GPSResponse: TMemo Left = 90 Height = 305 Top = 10 Width = 680 ParentFont = False TabOrder = 10 end end object TroubleshootingTab: TTabSheet Caption = 'Troubleshooting' ClientHeight = 328 ClientWidth = 869 ParentFont = False object ListBox1: TListBox Left = 166 Height = 236 Top = 20 Width = 233 ItemHeight = 0 ParentFont = False ScrollWidth = 231 TabOrder = 0 TopIndex = -1 end object StartResetting: TButton Left = 15 Height = 26 Top = 74 Width = 109 Caption = 'Start resetting' ParentFont = False TabOrder = 1 OnClick = StartResettingClick end object StopResetting: TButton Left = 15 Height = 26 Top = 108 Width = 109 Caption = 'Stop resetting' ParentFont = False TabOrder = 2 OnClick = StopResettingClick end end object Simulation: TTabSheet Caption = 'Simulation' ClientHeight = 328 ClientWidth = 869 ParentFont = False object StartSimulation: TButton Left = 577 Height = 26 Top = 8 Width = 75 Caption = 'Start' ParentFont = False TabOrder = 0 OnClick = StartSimulationClick end object StopSimulation: TButton Left = 659 Height = 26 Top = 8 Width = 75 Caption = 'Stop' ParentFont = False TabOrder = 1 OnClick = StopSimulationClick end object SimVerbose: TCheckBox Left = 577 Height = 23 Top = 49 Width = 78 Caption = 'Verbose' ParentFont = False TabOrder = 2 end object SimResults: TMemo AnchorSideLeft.Control = Simulation AnchorSideRight.Control = Simulation AnchorSideRight.Side = asrBottom Left = 3 Height = 232 Top = 82 Width = 863 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 3 BorderSpacing.Right = 3 ParentFont = False ScrollBars = ssAutoBoth TabOrder = 3 end object GroupBox1: TGroupBox AnchorSideLeft.Control = Simulation AnchorSideTop.Control = Simulation Left = 3 Height = 73 Top = 0 Width = 280 BorderSpacing.Left = 3 Caption = 'Sensor timing' ClientHeight = 71 ClientWidth = 278 ParentFont = False TabOrder = 4 object SimFreqMax: TLabeledEdit Left = 95 Height = 36 Top = 26 Width = 85 EditLabel.Height = 19 EditLabel.Width = 85 EditLabel.Caption = 'Freq Max (Hz)' EditLabel.ParentColor = False EditLabel.ParentFont = False ParentFont = False TabOrder = 0 end object SimPeriodMax: TLabeledEdit Left = 4 Height = 36 Top = 26 Width = 85 EditLabel.Height = 19 EditLabel.Width = 85 EditLabel.Caption = 'Period Max (s)' EditLabel.ParentColor = False EditLabel.ParentFont = False ParentFont = False TabOrder = 1 end object SimTimingDiv: TSpinEdit Left = 185 Height = 36 Top = 26 Width = 85 MaxValue = 10000 ParentFont = False TabOrder = 2 end object Label3: TLabel AnchorSideLeft.Control = SimTimingDiv Left = 185 Height = 19 Top = 9 Width = 34 Caption = 'Steps' ParentColor = False ParentFont = False end end object GroupBox3: TGroupBox AnchorSideLeft.Control = GroupBox1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Simulation Left = 286 Height = 73 Top = 0 Width = 280 BorderSpacing.Left = 3 Caption = 'Sensor temperature' ClientHeight = 71 ClientWidth = 278 ParentFont = False TabOrder = 5 object SimTempMin: TLabeledEdit Left = 6 Height = 36 Top = 26 Width = 85 EditLabel.Height = 19 EditLabel.Width = 85 EditLabel.Caption = 'Temp Min' EditLabel.ParentColor = False EditLabel.ParentFont = False ParentFont = False TabOrder = 0 end object SimTempMax: TLabeledEdit Left = 94 Height = 36 Top = 26 Width = 85 EditLabel.Height = 19 EditLabel.Width = 85 EditLabel.Caption = 'Temp Max' EditLabel.ParentColor = False EditLabel.ParentFont = False ParentFont = False TabOrder = 1 end object SimTempDiv: TSpinEdit Left = 184 Height = 36 Top = 26 Width = 85 MaxValue = 10000 ParentFont = False TabOrder = 2 end object Label42: TLabel AnchorSideLeft.Control = SimTempDiv Left = 184 Height = 19 Top = 8 Width = 34 Caption = 'Steps' ParentColor = False ParentFont = False end end object SimFromFile: TButton Left = 753 Height = 26 Hint = 'From simin.csv stored in log directory' Top = 8 Width = 75 Caption = 'From File' ParentFont = False TabOrder = 6 OnClick = SimFromFileClick end end object VectorTab: TTabSheet Caption = 'Vector' ClientHeight = 328 ClientWidth = 869 ParentFont = False object VCalButton: TButton Left = 15 Height = 32 Top = 15 Width = 116 Caption = 'Calibrate-vector' ParentFont = False TabOrder = 0 OnClick = VCalButtonClick end end object AccTab: TTabSheet Caption = 'Accessories' ClientHeight = 328 ClientWidth = 869 ParentFont = False TabVisible = False object ADISPGroup: TGroupBox AnchorSideLeft.Control = AHTGroup AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = AccTab AnchorSideBottom.Control = AHTGroup AnchorSideBottom.Side = asrBottom Left = 248 Height = 236 Top = 4 Width = 224 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Left = 4 BorderSpacing.Top = 4 Caption = 'Display' ClientHeight = 216 ClientWidth = 222 ParentFont = False TabOrder = 0 object ADISEnable: TCheckBox AnchorSideLeft.Control = ADISPGroup AnchorSideTop.Control = ADISModelSelect AnchorSideTop.Side = asrCenter Left = 4 Height = 23 Top = 11 Width = 67 BorderSpacing.Left = 4 BorderSpacing.Top = 4 Caption = 'Enable' ParentFont = False TabOrder = 0 OnChange = ADISEnableChange end object ADISBrightnessGroup: TGroupBox AnchorSideLeft.Control = ADISEnable AnchorSideTop.Control = ADISModelSelect AnchorSideTop.Side = asrBottom AnchorSideRight.Control = ADISPGroup AnchorSideRight.Side = asrBottom Left = 4 Height = 91 Top = 44 Width = 214 Anchors = [akTop, akLeft, akRight] BorderSpacing.Top = 4 BorderSpacing.Right = 4 Caption = 'Brightness' ClientHeight = 71 ClientWidth = 212 ParentFont = False TabOrder = 1 object ADISFixed: TRadioButton Left = 9 Height = 23 Top = 6 Width = 59 Caption = 'Fixed' Checked = True ParentFont = False TabOrder = 0 TabStop = True OnClick = ADISFixedClick end object ADISAuto: TRadioButton AnchorSideTop.Control = ADISFixedBrightness AnchorSideTop.Side = asrBottom Left = 9 Height = 23 Top = 43 Width = 56 Caption = 'Auto' ParentFont = False TabOrder = 1 OnClick = ADISAutoClick end object ADISFixedBrightness: TTrackBar AnchorSideTop.Control = ADISFixed AnchorSideTop.Side = asrCenter Left = 72 Height = 51 Top = -8 Width = 104 Max = 7 Position = 0 OnMouseUp = ADISFixedBrightnessMouseUp OnKeyUp = ADISFixedBrightnessKeyUp ParentFont = False TabOrder = 2 end end object ADISModelSelect: TComboBox AnchorSideLeft.Control = ADISEnable AnchorSideTop.Control = ADISPGroup AnchorSideRight.Control = ADISPGroup AnchorSideRight.Side = asrBottom Left = 106 Height = 36 Top = 4 Width = 112 Anchors = [akTop, akRight] BorderSpacing.Top = 4 BorderSpacing.Right = 4 ItemHeight = 0 Items.Strings = ( 'COM-11441' ) ParentFont = False TabOrder = 2 Text = 'model' OnChange = ADISModelSelectChange end object ADISMode: TRadioGroup AnchorSideLeft.Control = ADISBrightnessGroup AnchorSideTop.Control = ADISBrightnessGroup AnchorSideTop.Side = asrBottom AnchorSideRight.Control = ADISBrightnessGroup AnchorSideRight.Side = asrBottom AnchorSideBottom.Side = asrBottom Left = 4 Height = 66 Top = 135 Width = 214 Anchors = [akTop, akLeft, akRight] AutoFill = True AutoSize = True BorderSpacing.Bottom = 4 Caption = 'Mode' ChildSizing.LeftRightSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 46 ClientWidth = 212 Items.Strings = ( 'Periodic update (1Hz)' 'Update at reading request' ) OnClick = ADISModeClick ParentFont = False TabOrder = 3 end end object AHTGroup: TGroupBox AnchorSideLeft.Control = AccRefreshButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = AccTab Left = 44 Height = 236 Top = 4 Width = 200 BorderSpacing.Left = 4 BorderSpacing.Top = 4 Caption = 'Humidity/Temperature' ClientHeight = 234 ClientWidth = 198 ParentFont = False TabOrder = 1 object AHTRefreshButton: TButton AnchorSideTop.Control = AHTModelSelect AnchorSideTop.Side = asrBottom AnchorSideRight.Control = AHTModelSelect AnchorSideRight.Side = asrBottom Left = 119 Height = 25 Top = 44 Width = 75 Anchors = [akTop, akRight] BorderSpacing.Top = 4 Caption = 'Refresh' ParentFont = False TabOrder = 0 OnClick = AHTRefreshButtonClick end object AHTHumidityValue: TLabeledEdit AnchorSideTop.Control = AHTRefreshButton AnchorSideTop.Side = asrBottom AnchorSideRight.Control = AHTModelSelect AnchorSideRight.Side = asrBottom Left = 119 Height = 36 Top = 73 Width = 75 Anchors = [akTop, akRight] BorderSpacing.Top = 4 EditLabel.Height = 19 EditLabel.Width = 60 EditLabel.Caption = 'Humidity:' EditLabel.ParentColor = False EditLabel.ParentFont = False LabelPosition = lpLeft ParentFont = False TabOrder = 1 end object AHTHumidityStatus: TLabeledEdit AnchorSideTop.Control = AHTTemperatureValue AnchorSideTop.Side = asrBottom AnchorSideRight.Control = AHTModelSelect AnchorSideRight.Side = asrBottom Left = 119 Height = 36 Top = 153 Width = 75 Anchors = [akTop, akRight] BorderSpacing.Top = 4 EditLabel.Height = 19 EditLabel.Width = 42 EditLabel.Caption = 'Status:' EditLabel.ParentColor = False EditLabel.ParentFont = False LabelPosition = lpLeft ParentFont = False TabOrder = 2 end object AHTTemperatureValue: TLabeledEdit AnchorSideTop.Control = AHTHumidityValue AnchorSideTop.Side = asrBottom AnchorSideRight.Control = AHTRefreshButton AnchorSideRight.Side = asrBottom Left = 119 Height = 36 Top = 113 Width = 75 Anchors = [akTop, akRight] BorderSpacing.Top = 4 EditLabel.Height = 19 EditLabel.Width = 84 EditLabel.Caption = 'Temperature:' EditLabel.ParentColor = False EditLabel.ParentFont = False LabelPosition = lpLeft ParentFont = False TabOrder = 3 end object AHTModelSelect: TComboBox AnchorSideLeft.Control = AHTEnable AnchorSideTop.Control = AHTGroup AnchorSideRight.Control = AHTGroup AnchorSideRight.Side = asrBottom Left = 98 Height = 36 Top = 4 Width = 96 Anchors = [akTop, akRight] BorderSpacing.Top = 4 BorderSpacing.Right = 4 ItemHeight = 0 Items.Strings = ( 'HIH8120' 'HYT939' ) ParentFont = False TabOrder = 4 Text = 'model' OnChange = AHTModelSelectChange end object AHTEnable: TCheckBox AnchorSideLeft.Control = AHTGroup AnchorSideTop.Control = AHTModelSelect AnchorSideTop.Side = asrCenter Left = 4 Height = 23 Top = 11 Width = 67 BorderSpacing.Left = 4 BorderSpacing.Top = 4 Caption = 'Enable' ParentFont = False TabOrder = 5 OnChange = AHTEnableChange end end object ALEDGroup: TGroupBox AnchorSideLeft.Control = ADISPGroup AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = AccTab AnchorSideBottom.Control = ADISPGroup AnchorSideBottom.Side = asrBottom Left = 476 Height = 116 Top = 4 Width = 174 BorderSpacing.Left = 4 BorderSpacing.Top = 4 Caption = 'Reading LED blink' ClientHeight = 96 ClientWidth = 172 ParentFont = False TabOrder = 2 object ALEDEnable: TCheckBox AnchorSideLeft.Control = ALEDGroup AnchorSideTop.Control = ALEDGroup Left = 4 Height = 23 Top = 4 Width = 67 BorderSpacing.Left = 4 BorderSpacing.Top = 4 Caption = 'Enable' ParentFont = False TabOrder = 0 OnChange = ALEDEnableChange end object ALEDMode: TRadioGroup AnchorSideLeft.Control = ALEDEnable AnchorSideTop.Control = ALEDEnable AnchorSideTop.Side = asrBottom AnchorSideRight.Control = ALEDGroup AnchorSideRight.Side = asrBottom Left = 4 Height = 58 Top = 31 Width = 164 Anchors = [akTop, akLeft, akRight] AutoFill = True BorderSpacing.Top = 4 BorderSpacing.Right = 4 Caption = 'Mode' ChildSizing.LeftRightSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 38 ClientWidth = 162 Items.Strings = ( 'At reading creation' 'At reading request' ) OnClick = ALEDModeClick ParentFont = False TabOrder = 1 end end object GroupBox5: TGroupBox AnchorSideLeft.Control = ALEDGroup AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = ALEDGroup AnchorSideBottom.Control = AHTGroup AnchorSideBottom.Side = asrBottom Left = 654 Height = 236 Top = 4 Width = 198 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Left = 4 Caption = 'Relay' ClientHeight = 234 ClientWidth = 196 ParentFont = False TabOrder = 3 object ARLYModeLabel: TLabel AnchorSideTop.Control = ARLYModeComboBox AnchorSideTop.Side = asrCenter AnchorSideRight.Control = ARLYModeComboBox Left = 7 Height = 19 Top = 13 Width = 40 Anchors = [akTop, akRight] BorderSpacing.Top = 4 BorderSpacing.Right = 2 Caption = 'Mode:' ParentColor = False ParentFont = False end object ARLYModeComboBox: TComboBox AnchorSideTop.Control = GroupBox5 AnchorSideRight.Control = GroupBox5 AnchorSideRight.Side = asrBottom Left = 49 Height = 36 Top = 4 Width = 110 BorderSpacing.Top = 4 BorderSpacing.Right = 4 ItemHeight = 0 Items.Strings = ( 'Light' 'Dewpoint' 'Heat' '--3--' '--4--' '--5--' '--6--' 'Manual' ) ParentFont = False TabOrder = 0 OnChange = ARLYModeComboBoxChange end object ARLYThreshold: TTrackBar AnchorSideLeft.Control = ARLYThresholdLabel AnchorSideLeft.Side = asrBottom AnchorSideTop.Side = asrCenter AnchorSideBottom.Control = GroupBox5 AnchorSideBottom.Side = asrBottom Left = 39 Height = 51 Hint = 'Turn on above this mpsas.' Top = 183 Width = 95 Max = 31 Position = 0 Anchors = [akLeft, akBottom] OnMouseUp = ARLYThresholdMouseUp OnKeyUp = ARLYThresholdKeyUp ParentFont = False TabOrder = 1 end object ARLYStatusLabeledEdit: TLabeledEdit AnchorSideTop.Control = ARLYOn AnchorSideTop.Side = asrBottom AnchorSideRight.Control = ARLYOff AnchorSideRight.Side = asrBottom Left = 83 Height = 36 Top = 73 Width = 75 Alignment = taCenter Anchors = [akTop, akRight] BorderSpacing.Top = 4 EditLabel.Height = 19 EditLabel.Width = 42 EditLabel.Caption = 'Status:' EditLabel.ParentColor = False EditLabel.ParentFont = False LabelPosition = lpLeft ParentFont = False TabOrder = 2 end object ARLYThresholdLabel: TLabel AnchorSideLeft.Control = GroupBox5 AnchorSideBottom.Control = ARLYThreshold AnchorSideBottom.Side = asrBottom Left = 4 Height = 19 Top = 211 Width = 35 Anchors = [akLeft, akBottom] BorderSpacing.Left = 4 BorderSpacing.Bottom = 4 Caption = 'Light:' ParentColor = False ParentFont = False end object ARLYOn: TButton AnchorSideLeft.Control = GroupBox5 AnchorSideTop.Control = ARLYModeComboBox AnchorSideTop.Side = asrBottom Left = 4 Height = 25 Top = 44 Width = 75 BorderSpacing.Left = 4 BorderSpacing.Top = 4 Caption = 'On' ParentFont = False TabOrder = 3 OnClick = ARLYOnClick end object ARLYOff: TButton AnchorSideLeft.Control = ARLYOn AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = ARLYOn Left = 83 Height = 25 Top = 44 Width = 75 BorderSpacing.Left = 4 Caption = 'Off' ParentFont = False TabOrder = 4 OnClick = ARLYOffClick end object ARLYTValue: TLabeledEdit AnchorSideTop.Control = ARLYStatusLabeledEdit AnchorSideTop.Side = asrBottom Left = 15 Height = 36 Top = 111 Width = 38 Alignment = taCenter Anchors = [akTop] BorderSpacing.Top = 2 EditLabel.Height = 19 EditLabel.Width = 11 EditLabel.Caption = 'T:' EditLabel.ParentColor = False EditLabel.ParentFont = False LabelPosition = lpLeft ParentFont = False TabOrder = 5 end object ARLYHValue: TLabeledEdit AnchorSideTop.Control = ARLYTValue Left = 79 Height = 36 Top = 111 Width = 30 Alignment = taCenter Anchors = [akTop] EditLabel.Height = 19 EditLabel.Width = 14 EditLabel.Caption = 'H:' EditLabel.ParentColor = False EditLabel.ParentFont = False LabelPosition = lpLeft ParentFont = False TabOrder = 6 end object ARLYTDPValue: TLabeledEdit AnchorSideTop.Control = ARLYHValue Left = 152 Height = 36 Top = 111 Width = 32 Alignment = taCenter Anchors = [akTop] EditLabel.Height = 19 EditLabel.Width = 26 EditLabel.Caption = 'Tdp:' EditLabel.ParentColor = False EditLabel.ParentFont = False LabelPosition = lpLeft ParentFont = False TabOrder = 7 end object ARLYThresholdValue: TLabel AnchorSideTop.Control = ARLYThreshold AnchorSideTop.Side = asrCenter Left = 142 Height = 19 Top = 199 Width = 43 Caption = 'XiiiiiiiiiX' ParentColor = False ParentFont = False end end object AccRefreshButton: TBitBtn Left = 6 Height = 32 Hint = 'Refresh accessory settings' Top = 6 Width = 34 Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF01FFFF FF01FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF01FFFFFF1FFFFF FF5EFFFFFF34FFFFFF0BFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF02FFFFFF05FFFFFF00FFFFFF00FFFFFF01FFFFFF3B3B3B 3B7A8C8C8C7EECECEC7AFFFFFF1CFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF01FAFAFA51F6F6F65DFFFFFF01FFFFFF00FFFFFF01FFFFFF3A0101 01B60000009C15151581CECECE83FFFFFF11FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF209494948478787884FFFFFF30FFFFFF00FFFFFF00FFFFFF159B9B 9B66161616A0000000A714141488E9E9E964FFFFFF01FFFFFF00FFFFFF00FFFF FF04D7D7D77C0404049600000097BEBEBE85FFFFFF10FFFFFF00FFFFFF00FFFF FF03FFFFFF262B2B2B95000000986565657FFFFFFF0DFFFFFF00FFFFFF01F7F7 F7512828289D000000A4000000A1101010A3DCDCDC74FFFFFF02FFFFFF00FFFF FF00FFFFFF039393936A000000A72929298EFFFFFF25FFFFFF01FFFFFF106D6D 6D94050505C3010101B6000000AA090909BC424242A9FFFFFF27FFFFFF01FFFF FF00FFFFFF01FFFFFF411616169F060606A6FFFFFF36FFFFFF01FFFFFF16FFFF FF2DFFFFFF3328282897000000B39393938BFFFFFF33FFFFFF22FFFFFF01FFFF FF00FFFFFF01F4F4F46D010101B00E0E0EA2FFFFFF24FFFFFF01FFFFFF00FFFF FF01FFFFFF035757578A000000C51A1A1AA8FDFDFD61FFFFFF18FFFFFF04FFFF FF17FFFFFF4676767694000000C0292929A1FFFFFF0CFFFFFF00FFFFFF00FFFF FF00FFFFFF01F5F5F532080808C0000000CD4C4C4C9EE4E4E484FFFFFF74EEEE EE8171717197010101C8020202CEC2C2C253FFFFFF01FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF029E9E9E63050505CE000000DD000000D60A0A0AC60000 00D5000000DC010101D86F6F6F80FFFFFF08FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF03D4D4D4412C2C2CA4060606CD010101E10707 07CA222222ACC0C0C054FFFFFF08FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF01FFFFFF06FFFFFF23FFFFFF35FFFF FF22FFFFFF0AFFFFFF01FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF01FFFFFF01FFFF FF01FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 } OnClick = AccRefreshButtonClick ParentFont = False TabOrder = 4 end object AccSNOWLEDGroupBox: TGroupBox AnchorSideLeft.Control = ALEDGroup AnchorSideTop.Control = ALEDGroup AnchorSideTop.Side = asrBottom AnchorSideRight.Control = ALEDGroup AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = AHTGroup AnchorSideBottom.Side = asrBottom Left = 476 Height = 184 Top = 120 Width = 174 Anchors = [akTop, akLeft, akRight] Caption = 'Snow LED:' ClientHeight = 182 ClientWidth = 172 TabOrder = 5 object AccSnowLEDOnButton: TButton AnchorSideLeft.Control = AccSNOWLEDGroupBox AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = AccSnowOnLinRdg AnchorSideTop.Side = asrCenter Left = 8 Height = 25 Hint = 'Turn ON snow LED' Top = 64 Width = 40 Anchors = [akTop] BorderSpacing.Top = 10 Caption = 'ON' TabOrder = 0 OnClick = AccSnowLEDOnButtonClick end object AccSnowLEDOffButton: TButton AnchorSideLeft.Control = AccSnowLEDOnButton AnchorSideTop.Control = AccSnowOffLinRdg AnchorSideTop.Side = asrCenter Left = 8 Height = 25 Hint = 'Turn OFF snow LED' Top = 103 Width = 40 BorderSpacing.Top = 7 Caption = 'OFF' TabOrder = 1 OnClick = AccSnowLEDOffButtonClick end object ACCSnowLEDStatus: TShape AnchorSideLeft.Control = AccSnowLEDOnButton AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = AccSnowLinRq AnchorSideTop.Side = asrCenter Left = 18 Height = 20 Hint = 'Snow LED status' Top = 32 Width = 20 BorderSpacing.Left = 4 Brush.Color = clGray Shape = stCircle end object SnowLoggingEnableBox: TCheckBox AnchorSideLeft.Control = AccSNOWLEDGroupBox AnchorSideTop.Control = AccSNOWLEDGroupBox Left = 0 Height = 23 Hint = 'Enable/Disable Snow LED when reading and logging' Top = 0 Width = 148 Caption = 'Snow factor logging' TabOrder = 2 OnChange = SnowLoggingEnableBoxChange end object AccSnowLinRq: TButton AnchorSideTop.Control = SnowLoggingEnableBox AnchorSideTop.Side = asrBottom Left = 56 Height = 25 Hint = 'Get linear reading' Top = 30 Width = 104 Anchors = [akTop] BorderSpacing.Top = 7 Caption = 'Linear Reading' TabOrder = 3 OnClick = AccSnowLinRqClick end object AccSnowOnLinRdg: TEdit AnchorSideTop.Control = AccSnowLinRq AnchorSideTop.Side = asrBottom Left = 56 Height = 36 Hint = 'Linear reading' Top = 58 Width = 104 Alignment = taRightJustify Anchors = [akTop] BorderSpacing.Top = 3 ReadOnly = True TabOrder = 4 end object AccSnowOffLinRdg: TEdit AnchorSideTop.Control = AccSnowOnLinRdg AnchorSideTop.Side = asrBottom Left = 56 Height = 36 Hint = 'Linear reading' Top = 97 Width = 104 Alignment = taRightJustify Anchors = [akTop] BorderSpacing.Top = 3 ReadOnly = True TabOrder = 5 end object AccSnowLinDiff: TEdit AnchorSideLeft.Control = AccSnowOffLinRdg AnchorSideTop.Control = AccSnowOffLinRdg AnchorSideTop.Side = asrBottom Left = 56 Height = 36 Hint = 'Linear reading' Top = 136 Width = 104 Alignment = taRightJustify BorderSpacing.Top = 3 ReadOnly = True TabOrder = 6 end object Label24: TLabel AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = AccSnowLinDiff AnchorSideTop.Side = asrCenter AnchorSideRight.Control = AccSnowLinDiff Left = 30 Height = 19 Top = 145 Width = 26 Anchors = [akTop, akRight] Caption = 'Diff:' ParentColor = False end end end end object FindButton: TBitBtn AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 1 Height = 32 Hint = 'Find attached USB and Ethernet devices automatically.' Top = 1 Width = 65 HelpType = htKeyword BorderSpacing.Left = 1 BorderSpacing.Top = 1 Caption = 'Find' Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF0015151B30131519E3131619FF131619E0FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF001215194812161AEB22282DE1373E44FF131619FFFFFFFF00FFFF FF00FFFFFF000039710902397C75033B81BA013A7EE9013A7EE9033B81BA0239 7C75111B226913171AEC24343EEF646B6FFF656E75FD14191CEDFFFFFF00FFFF FF000038793702397EE30F53A3F61B68C2FF2478D3FF257BD1FF1D6EC0FF1055 A0FB043774FC204362FA646F77FF757F86FF181C1FF313181835FFFFFF000038 7937033D81F0216FC7FF1F84AEFF109771FA11A864FE10A763FE119570FB248C AAFF287FC1FF094381FF647789FF1B2024F612161A46FFFFFF0000397109023A 7EE32573C8FF178B89FB10A062FB238166A2548C7B5B548C7B5B238066A20F9A 5FFC1C9087FE3289C2FF053874FE151D2561FFFFFF00FFFFFF0002397C751658 A5F62789AFFF0F9B61FB556C6763A5AAAA30D3D3D317D3D3D317A5AAAA30556C 67630E945BFC349AAAFF226BA5FB02397C75FFFFFF00FFFFFF00043F86BA2C78 C6FF118F6EFA186D54AD83878746CACAD518D5EAEA0CD5EAEA0CCACAD5188387 8746186951AD158C6BFB4598C4FF044086BAFFFFFF00FFFFFF0003418CE93F92 D8FF0E975BFE2F524782898D8D41CEDBDB15DBDBDB07DBDBDB07CEDBDB15898D 8D412D5045820E8D55FE65B8D1FF03428CE9FFFFFF00FFFFFF00044695E9459B D8FF0E9159FE284A41867E818149C8C8D11CCCDDDD0FCFDFDF10CCCCD51E7E81 814928463F860D8552FE78C4D6FF044695E9FFFFFF00FFFFFF00074D9FBA3E91 CEFF12886CFA156151AD6060605D9B9B9F38D1D6D62CFAFAFA9FF2F2F2AA8D8D 8D72135B4DAD1A8369FB74B9D5FF074DA0BAFFFFFF00FFFFFF00024CA6752879 BEF7409EB1FF0B7D52FB303E3A7F6666665ADBDCDC93F9FBFBE7E8E8E8CB4F5B 578A086F49FB73B9BAFF5699CAF9024CA675FFFFFF00FFFFFF000055AA090652 AFE355A9D4FF298D8AFC09714CFB12544BAD3A514D84647773941E5551B00662 43FB499590FCACD7E8FF0753AFE30055AA09FFFFFF00FFFFFF00FFFFFF00004F B5370E5EB9F164B6D7FF57AEB3FF167264FB075F3EFE06593AFE1A6D5EFB90C0 C2FFCFE6F4FF226BC1F2004FB537FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF000053BE37085CC1E34999D2F87DC7DDFFA2E1E2FFB2E5E6FFAAD9EAFF80B4 E3FA0A5DC2E30053BE37FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF000055C609045CCB750B63CCBA0860CAE90960CAE90B63CCBA045E CB750055C609FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 } OnClick = FindButtonClick ParentFont = False TabOrder = 1 end object FoundDevices: TListBox AnchorSideLeft.Control = FindButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Owner AnchorSideRight.Control = CommNotebook AnchorSideBottom.Control = DataNoteBook Left = 69 Height = 157 Top = 0 Width = 434 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 3 BorderSpacing.Bottom = 2 Font.Height = -12 Font.Name = 'Courier 10 Pitch' Font.Pitch = fpFixed ItemHeight = 0 ParentFont = False ScrollWidth = 432 TabOrder = 2 TopIndex = -1 OnClick = FoundDevicesClick OnDblClick = FoundDevicesDblClick OnSelectionChange = FoundDevicesSelectionChange end object CommNotebook: TPageControl AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = FoundDevices AnchorSideBottom.Side = asrBottom Left = 503 Height = 157 Top = 0 Width = 376 ActivePage = TabEthernet Anchors = [akTop, akRight, akBottom] ParentFont = False TabIndex = 1 TabOrder = 4 OnChange = CommNotebookChange OnChanging = CommNotebookChanging object TabUSB: TTabSheet Caption = 'USB' ClientHeight = 124 ClientWidth = 366 ParentFont = False object USBSerialNumber: TEdit AnchorSideTop.Control = TabUSB Left = 75 Height = 34 Top = 0 Width = 285 Anchors = [akTop] Font.Height = -12 Font.Name = 'Courier 10 Pitch' Font.Pitch = fpFixed ParentFont = False ReadOnly = True TabOrder = 0 end object USBPort: TEdit AnchorSideTop.Control = USBSerialNumber AnchorSideTop.Side = asrBottom Left = 76 Height = 34 Top = 34 Width = 285 Anchors = [akTop] Font.Height = -12 Font.Name = 'Courier 10 Pitch' Font.Pitch = fpFixed ParentFont = False TabOrder = 1 OnChange = USBPortChange end object Label1: TLabel AnchorSideTop.Control = USBSerialNumber AnchorSideTop.Side = asrCenter AnchorSideRight.Control = USBSerialNumber Left = 19 Height = 19 Top = 8 Width = 50 Anchors = [akTop, akRight] BorderSpacing.Right = 6 Caption = 'Serial #:' ParentColor = False ParentFont = False end object Label2: TLabel AnchorSideTop.Control = USBPort AnchorSideTop.Side = asrCenter AnchorSideRight.Control = USBPort Left = 39 Height = 19 Top = 42 Width = 31 Anchors = [akTop, akRight] BorderSpacing.Right = 6 Caption = 'Port:' ParentColor = False ParentFont = False end object LabeledEdit1: TLabeledEdit AnchorSideLeft.Control = USBPort AnchorSideTop.Control = USBPort AnchorSideTop.Side = asrBottom Left = 76 Height = 26 Top = 68 Width = 80 AutoSize = False EditLabel.Height = 19 EditLabel.Width = 36 EditLabel.Caption = 'Baud:' EditLabel.ParentColor = False Enabled = False LabelPosition = lpLeft TabOrder = 2 Text = '115200' end end object TabEthernet: TTabSheet Caption = 'Ethernet' ClientHeight = 124 ClientWidth = 366 ParentFont = False object Label4: TLabel AnchorSideTop.Control = EthernetMAC AnchorSideTop.Side = asrCenter AnchorSideRight.Control = EthernetMAC Left = 5 Height = 19 Top = 8 Width = 32 Anchors = [akTop, akRight] BorderSpacing.Right = 6 Caption = 'MAC:' ParentColor = False ParentFont = False end object Label5: TLabel AnchorSideTop.Control = EthernetIP AnchorSideTop.Side = asrCenter AnchorSideRight.Control = EthernetIP Left = 174 Height = 19 Top = 8 Width = 17 Anchors = [akTop, akRight] BorderSpacing.Right = 6 Caption = 'IP:' ParentColor = False ParentFont = False end object Label6: TLabel AnchorSideTop.Control = EthernetPort AnchorSideTop.Side = asrCenter AnchorSideRight.Control = EthernetPort Left = 160 Height = 19 Top = 42 Width = 31 Anchors = [akTop, akRight] BorderSpacing.Right = 6 Caption = 'Port:' ParentColor = False ParentFont = False end object EthernetMAC: TEdit AnchorSideTop.Control = TabEthernet Left = 43 Height = 34 Top = 0 Width = 109 Anchors = [akTop] Font.Height = -12 Font.Name = 'Courier 10 Pitch' Font.Pitch = fpFixed ParentFont = False ReadOnly = True TabOrder = 0 end object EthernetIP: TEdit AnchorSideTop.Control = EthernetMAC Left = 197 Height = 34 Top = 0 Width = 160 Anchors = [akTop] Font.Height = -12 Font.Name = 'Courier 10 Pitch' Font.Pitch = fpFixed ParentFont = False TabOrder = 1 OnChange = EthernetIPChange end object EthernetPort: TEdit AnchorSideLeft.Control = EthernetIP AnchorSideTop.Control = EthernetIP AnchorSideTop.Side = asrBottom Left = 197 Height = 34 Top = 34 Width = 74 Font.Height = -12 Font.Name = 'Courier 10 Pitch' Font.Pitch = fpFixed ParentFont = False TabOrder = 2 OnChange = EthernetPortChange end end object TabRS232: TTabSheet Caption = 'RS232' ClientHeight = 124 ClientWidth = 366 ParentFont = False object Label7: TLabel AnchorSideTop.Control = RS232Port AnchorSideTop.Side = asrCenter Left = 23 Height = 19 Top = 8 Width = 31 Caption = 'Port:' ParentColor = False ParentFont = False end object Label8: TLabel AnchorSideTop.Control = RS232Baud AnchorSideTop.Side = asrCenter Left = 15 Height = 19 Top = 42 Width = 36 Caption = 'Baud:' ParentColor = False ParentFont = False end object RS232Baud: TComboBox AnchorSideTop.Control = RS232Port AnchorSideTop.Side = asrBottom Left = 55 Height = 34 Top = 34 Width = 282 Anchors = [akTop] Font.Height = -12 Font.Name = 'Courier 10 Pitch' Font.Pitch = fpFixed ItemHeight = 0 ItemIndex = 10 Items.Strings = ( '300' '600' '1200' '1800' '2400' '4800' '9600' '19200' '38400' '57600' '115200' ) ParentFont = False TabOrder = 0 Text = '115200' OnChange = RS232BaudChange end object RS232Port: TComboBox AnchorSideTop.Control = TabRS232 Left = 55 Height = 34 Top = 0 Width = 282 Anchors = [akTop] Font.Height = -12 Font.Name = 'Courier 10 Pitch' Font.Pitch = fpFixed ItemHeight = 0 ItemIndex = 0 Items.Strings = ( '' ) ParentFont = False Sorted = True TabOrder = 1 OnChange = RS232PortChange OnDropDown = RS232PortDropDown OnEditingDone = RS232PortEditingDone end end end object StatusBar1: TStatusBar AnchorSideBottom.Control = Owner Left = 0 Height = 21 Top = 520 Width = 879 Anchors = [] Panels = < item Width = 50 end> ParentFont = False SimplePanel = False end object FindBluetooth: TBitBtn Left = 8 Height = 30 Hint = 'Find Bluetooth devices' Top = 32 Width = 32 Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000000000000000 00000000000000000000000000000000000000000000874B1E11874B1E110000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000864A224C894B21C9874B1FFC874A20FF874A20FF874B 1FFC894B21C9864A224C00000000000000000000000000000000000000000000 000000000000884B22818B4F25F8A9754EFFB78864FFBA8B68FFBA8B67FFB686 61FFA7734BFF8B4E24F8884B2281000000000000000000000000000000000000 000086491E3B8B5024F5B78864FFB37E55FFA6693AFFFFFFFFFFBA8B66FFA669 39FFB27D53FFB68560FF8A4E24F586491E3B0000000000000000000000000000 00008B4C22C5AE7C55FFB58157FFA46534FFA46534FFFFFFFFFFFFFFFFFFBA8B 66FFA46534FFB17B51FFA9754DFF894C20C5000000000000000000000000FF00 0001884A20FCC39A79FFAC7242FFA86A39FFA56635FFFFFFFFFFBA8B66FFFFFF FFFFBA8B66FFA6693AFFBA8C69FF884A20FCFF00000100000000000000008844 220F874A20FFCBA587FFAE7343FFFFFFFFFFC69E7FFFFFFFFFFFA46534FFDAC0 ACFFFFFFFFFFA46534FFC09574FF874A20FF8844220F00000000000000008844 220F874A20FFCEAA8DFFB27848FFBE8E66FFFFFFFFFFFFFFFFFFD7BBA6FFFFFF FFFFB58159FFA46534FFC19878FF874A20FF8844220F00000000000000008844 220F874A20FFD2AF93FFB57D4DFFB27949FFBB8A61FFFFFFFFFFFFFFFFFFB47F 56FFA46534FFA46534FFC39B7CFF874A20FF8844220F00000000000000008844 220F874A20FFD6B59AFFB98152FFC3956FFFFFFFFFFFFFFFFFFFDAC0ABFFFFFF FFFFB8855DFFA56635FFC59E80FF874A20FF8844220F00000000000000008844 220F874A20FFD9BAA1FFBD8658FFFFFFFFFFD0AB8CFFFFFFFFFFB17747FFDEC6 B2FFFFFFFFFFA86B3BFFC8A285FF874A20FF8844220F00000000000000000000 0000874B21FBD7B89DFFC29063FFBD8759FFBA8354FFFFFFFFFFC79C78FFFFFF FFFFC39672FFAF7547FFC7A184FF874A21FB0000000000000000000000000000 00008B4F25C1C39A79FED2AA86FFC18C5EFFBE885AFFFFFFFFFFFFFFFFFFC79D 79FFB27949FFC1936EFFB78966FE894D22C10000000000000000000000000000 0000894C21368D5329F7D8B89DFFD3AD8BFFC59266FFFFFFFFFFCDA380FFBC86 59FFC99F7CFFCDAA8DFF8A5126F7894C21360000000000000000000000000000 000000000000894D24778E542BF8C39C7BFED8B99FFFDCC0A7FFDABEA5FFD4B4 99FFBE9472FE8D5329F8874D2277000000000000000000000000000000000000 00000000000000000000894A21458B4E25C1884B21F7874A20FF874A20FF884B 21F7894E24C1894A214500000000000000000000000000000000 } OnClick = FindBluetoothClick ParentFont = False TabOrder = 5 Visible = False end object CommOpen: TShape AnchorSideLeft.Control = FindButton AnchorSideLeft.Side = asrCenter Left = 23 Height = 20 Hint = 'Connection status' Top = 78 Width = 20 Anchors = [akLeft] Brush.Color = clGray Shape = stCircle end object SelectFirmwareDialog: TOpenDialog Filter = 'hex|*.hex' Left = 288 Top = 8 end object MainMenu1: TMainMenu Left = 177 Top = 8 object FileMenuItem: TMenuItem Caption = '&File' object OpenMenuItem: TMenuItem Caption = 'Open' OnClick = OpenMenuItemClick end object FindUSBMenuItem: TMenuItem Caption = 'Find USB' Hint = 'Find USB devices' ShortCut = 16469 OnClick = FindUSBMenuItemClick end object FindEthMenuItem: TMenuItem Caption = 'Find Ethernet' Hint = 'Find Ethernet devices' ShortCut = 16453 OnClick = FindEthMenuItemClick end object StartUpMenuItem: TMenuItem Caption = 'StartUp options' OnClick = StartUpMenuItemClick end object QuitItem: TMenuItem Caption = 'Quit' OnClick = QuitItemClick end end object ViewMenuItem: TMenuItem Caption = '&View' object ViewSimMenuItem: TMenuItem AutoCheck = True Caption = 'Simulation' OnClick = ViewSimMenuItemClick end object ViewConfigMenuItem: TMenuItem AutoCheck = True Caption = 'Configuration' Checked = True OnClick = ViewConfigMenuItemClick end object ViewLogMenuItem: TMenuItem Caption = 'Log' ShortCut = 16460 OnClick = ViewLogMenuItemClick end object DirectoriesMenuItem: TMenuItem Caption = 'Directories' OnClick = DirectoriesMenuItemClick end object DLHeaderMenuItem: TMenuItem Caption = 'DL Header' Hint = 'Show the DL header' OnClick = DLHeaderMenuItemClick end object ConfigBrowserMenuItem: TMenuItem Caption = 'Config Browser' OnClick = ConfigBrowserMenuItemClick end object PlotterMenuItem: TMenuItem Caption = 'Plotter' OnClick = PlotterMenuItemClick end end object ToolsMenuItem: TMenuItem Caption = '&Tools' object MenuItem1: TMenuItem Caption = 'old log to .dat' OnClick = MenuItem1Click end object ConvertLogFileItem: TMenuItem Caption = '.dat to Moon Sun .csv' OnClick = ConvertLogFileItemClick end object CommTermMenuItem: TMenuItem Caption = 'Comm Terminal' OnClick = CommTermMenuItemClick end object OpenDLRMenuItem: TMenuItem Caption = 'DL retrieve' Hint = 'Open DL Retrieve window' OnClick = OpenDLRMenuItemClick end object mnDATtoKML: TMenuItem Caption = '.dat to .kml' OnClick = mnDATtoKMLClick end object DatTimeCorrection: TMenuItem Caption = '.dat time correction' OnClick = DatTimeCorrectionClick end object DatReconstructLocalTime: TMenuItem Caption = '.dat reconstruct local time' OnClick = DatReconstructLocalTimeClick end object Correction49to56MenuItem: TMenuItem Caption = 'Firmware 49-56 DL Correction' OnClick = Correction49to56MenuItemClick end object AverageTool: TMenuItem Caption = 'Average tool' OnClick = AverageToolMenuItemClick end object datToDecimalDate: TMenuItem Caption = '.dat to decimal date' OnClick = datToDecimalDateClick end object ConcatenateMenu: TMenuItem Caption = 'Concatenate' Hint = 'Concatenate many .dat files into one.' OnClick = ConcatenateMenuClick end object CloudRemovalMilkyWay: TMenuItem Caption = '.dat to Sun-Moon-MW-Clouds .csv' OnClick = CloudRemovalMilkyWayClick end object FilterSunMoon: TMenuItem Caption = 'Filter Sun-Moon-MW-Clouds.csv' OnClick = FilterSunMoonClick end object ARPMethodMenuItem: TMenuItem Caption = 'ARPMethodMenuItem' Visible = False OnClick = ARPMethodMenuItemClick end end object HelpMenuItem: TMenuItem Caption = '&Help' object OnlineManuals: TMenuItem Caption = 'Online manuals' object OnlineLUmanual: TMenuItem Caption = 'SQM-LU manual' OnClick = OnlineLUmanualClick end object OnlineLEmanual: TMenuItem Caption = 'SQM-LE manual' OnClick = OnlineLEmanualClick end object OnlineDLmanual: TMenuItem Caption = 'SQM-LU-DL manual' OnClick = OnlineDLmanualClick end object OnlineVmanual: TMenuItem Caption = 'SQM-DL-V manual' OnClick = OnlineVmanualClick end object OnlineLRmanual: TMenuItem Caption = 'SQM-LR manual' OnClick = OnlineLRmanualClick end end object OnlineResources: TMenuItem Caption = 'Online resource' OnClick = OnlineResourcesClick end object CmdLineItem: TMenuItem Caption = 'Command line information' OnClick = CmdLineItemClick end object VersionItem: TMenuItem Caption = 'Version information' OnClick = VersionItemClick end object AboutItem: TMenuItem Caption = 'About' OnClick = AboutItemClick end end end object DLSaveDialog: TSaveDialog Left = 96 Top = 8 end object OpenLogDialog: TOpenDialog Filter = 'All files|*.*|Comma Separated Variables|*.csv|Calibration logs|*.cal|UDM usage log|*.log|Text files|*.txt' Left = 408 Top = 8 end object PrintDialog1: TPrintDialog FromPage = 1 ToPage = 1 Left = 177 Top = 64 end object Process1: TProcess Active = False Options = [] Priority = ppNormal StartupOptions = [] ShowWindow = swoNone WindowColumns = 0 WindowHeight = 0 WindowLeft = 0 WindowRows = 0 WindowTop = 0 WindowWidth = 0 FillAttribute = 0 Left = 264 Top = 64 end object CommBusy: TTimer Enabled = False Interval = 100 OnTimer = CommBusyTimer Left = 344 Top = 64 end object FirmwareTimer: TTimer Enabled = False Interval = 100 OnTimer = FirmwareTimerTimer Left = 424 Top = 64 end end ./ssl_sbb.pas0000644000175000017500000004771414576573021013320 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 001.000.003 | |==============================================================================| | Content: SSL support for SecureBlackBox | |==============================================================================| | Copyright (c)1999-2005, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2005. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | | Allen Drennan (adrennan@wiredred.com) | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@abstract(SSL plugin for Eldos SecureBlackBox) For handling keys and certificates you can use this properties: @link(TCustomSSL.CertCAFile), @link(TCustomSSL.CertCA), @link(TCustomSSL.TrustCertificateFile), @link(TCustomSSL.TrustCertificate), @link(TCustomSSL.PrivateKeyFile), @link(TCustomSSL.PrivateKey), @link(TCustomSSL.CertificateFile), @link(TCustomSSL.Certificate), @link(TCustomSSL.PFXFile). For usage of this properties and for possible formats of keys and certificates refer to SecureBlackBox documentation. } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} unit ssl_sbb; interface uses SysUtils, Classes, Windows, blcksock, synsock, synautil, synacode, SBClient, SBServer, SBX509, SBWinCertStorage, SBCustomCertStorage, SBUtils, SBConstants, SBSessionPool; const DEFAULT_RECV_BUFFER=32768; type {:@abstract(class implementing SecureBlackbox SSL plugin.) Instance of this class will be created for each @link(TTCPBlockSocket). You not need to create instance of this class, all is done by Synapse itself!} TSSLSBB=class(TCustomSSL) protected FServer: Boolean; FElSecureClient:TElSecureClient; FElSecureServer:TElSecureServer; FElCertStorage:TElMemoryCertStorage; FElX509Certificate:TElX509Certificate; FElX509CACertificate:TElX509Certificate; FCipherSuites:TBits; private FRecvBuffer:String; FRecvBuffers:String; FRecvBuffersLock:TRTLCriticalSection; FRecvDecodedBuffers:String; function GetCipherSuite:Integer; procedure Reset; function Prepare(Server:Boolean):Boolean; procedure OnError(Sender:TObject; ErrorCode:Integer; Fatal:Boolean; Remote:Boolean); procedure OnSend(Sender:TObject;Buffer:Pointer;Size:LongInt); procedure OnReceive(Sender:TObject;Buffer:Pointer;MaxSize:LongInt;var Written:LongInt); procedure OnData(Sender:TObject;Buffer:Pointer;Size:LongInt); public constructor Create(const Value: TTCPBlockSocket); override; destructor Destroy; override; {:See @inherited} function LibVersion: String; override; {:See @inherited} function LibName: String; override; {:See @inherited and @link(ssl_sbb) for more details.} function Connect: boolean; override; {:See @inherited and @link(ssl_sbb) for more details.} function Accept: boolean; override; {:See @inherited} function Shutdown: boolean; override; {:See @inherited} function BiShutdown: boolean; override; {:See @inherited} function SendBuffer(Buffer: TMemory; Len: Integer): Integer; override; {:See @inherited} function RecvBuffer(Buffer: TMemory; Len: Integer): Integer; override; {:See @inherited} function WaitingData: Integer; override; {:See @inherited} function GetSSLVersion: string; override; {:See @inherited} function GetPeerSubject: string; override; {:See @inherited} function GetPeerIssuer: string; override; {:See @inherited} function GetPeerName: string; override; {:See @inherited} function GetPeerFingerprint: string; override; {:See @inherited} function GetCertInfo: string; override; published property ElSecureClient:TElSecureClient read FElSecureClient write FElSecureClient; property ElSecureServer:TElSecureServer read FElSecureServer write FElSecureServer; property CipherSuites:TBits read FCipherSuites write FCipherSuites; property CipherSuite:Integer read GetCipherSuite; end; implementation var FAcceptThread:THandle=0; // on error procedure TSSLSBB.OnError(Sender:TObject; ErrorCode:Integer; Fatal:Boolean; Remote:Boolean); begin FLastErrorDesc:=''; FLastError:=ErrorCode; end; // on send procedure TSSLSBB.OnSend(Sender:TObject;Buffer:Pointer;Size:LongInt); var lResult:Integer; begin if FSocket.Socket=INVALID_SOCKET then Exit; lResult:=Send(FSocket.Socket,Buffer,Size,0); if lResult=SOCKET_ERROR then begin FLastErrorDesc:=''; FLastError:=WSAGetLastError; end; end; // on receive procedure TSSLSBB.OnReceive(Sender:TObject;Buffer:Pointer;MaxSize:LongInt;var Written:LongInt); begin if GetCurrentThreadId<>FAcceptThread then EnterCriticalSection(FRecvBuffersLock); try if Length(FRecvBuffers)<=MaxSize then begin Written:=Length(FRecvBuffers); Move(FRecvBuffers[1],Buffer^,Written); FRecvBuffers:=''; end else begin Written:=MaxSize; Move(FRecvBuffers[1],Buffer^,Written); Delete(FRecvBuffers,1,Written); end; finally if GetCurrentThreadId<>FAcceptThread then LeaveCriticalSection(FRecvBuffersLock); end; end; // on data procedure TSSLSBB.OnData(Sender:TObject;Buffer:Pointer;Size:LongInt); var lString:String; begin SetLength(lString,Size); Move(Buffer^,lString[1],Size); FRecvDecodedBuffers:=FRecvDecodedBuffers+lString; end; { inherited } constructor TSSLSBB.Create(const Value: TTCPBlockSocket); var loop1:Integer; begin inherited Create(Value); FServer:=FALSE; FElSecureClient:=NIL; FElSecureServer:=NIL; FElCertStorage:=NIL; FElX509Certificate:=NIL; FElX509CACertificate:=NIL; SetLength(FRecvBuffer,DEFAULT_RECV_BUFFER); FRecvBuffers:=''; InitializeCriticalSection(FRecvBuffersLock); FRecvDecodedBuffers:=''; FCipherSuites:=TBits.Create; if FCipherSuites<>NIL then begin FCipherSuites.Size:=SB_SUITE_LAST+1; for loop1:=SB_SUITE_FIRST to SB_SUITE_LAST do FCipherSuites[loop1]:=TRUE; end; end; destructor TSSLSBB.Destroy; begin Reset; inherited Destroy; if FCipherSuites<>NIL then FreeAndNIL(FCipherSuites); DeleteCriticalSection(FRecvBuffersLock); end; function TSSLSBB.LibVersion: String; begin Result:='SecureBlackBox'; end; function TSSLSBB.LibName: String; begin Result:='ssl_sbb'; end; function FileToString(lFile:String):String; var lStream:TMemoryStream; begin Result:=''; lStream:=TMemoryStream.Create; if lStream<>NIL then begin lStream.LoadFromFile(lFile); if lStream.Size>0 then begin lStream.Position:=0; SetLength(Result,lStream.Size); Move(lStream.Memory^,Result[1],lStream.Size); end; lStream.Free; end; end; function TSSLSBB.GetCipherSuite:Integer; begin if FServer then Result:=FElSecureServer.CipherSuite else Result:=FElSecureClient.CipherSuite; end; procedure TSSLSBB.Reset; begin if FElSecureServer<>NIL then FreeAndNIL(FElSecureServer); if FElSecureClient<>NIL then FreeAndNIL(FElSecureClient); if FElX509Certificate<>NIL then FreeAndNIL(FElX509Certificate); if FElX509CACertificate<>NIL then FreeAndNIL(FElX509CACertificate); if FElCertStorage<>NIL then FreeAndNIL(FElCertStorage); FSSLEnabled:=FALSE; end; function TSSLSBB.Prepare(Server:Boolean): Boolean; var loop1:Integer; lStream:TMemoryStream; lCertificate,lPrivateKey,lCertCA:String; begin Result:=FALSE; FServer:=Server; // reset, if necessary Reset; // init, certificate if FCertificateFile<>'' then lCertificate:=FileToString(FCertificateFile) else lCertificate:=FCertificate; if FPrivateKeyFile<>'' then lPrivateKey:=FileToString(FPrivateKeyFile) else lPrivateKey:=FPrivateKey; if FCertCAFile<>'' then lCertCA:=FileToString(FCertCAFile) else lCertCA:=FCertCA; if (lCertificate<>'') and (lPrivateKey<>'') then begin FElCertStorage:=TElMemoryCertStorage.Create(NIL); if FElCertStorage<>NIL then FElCertStorage.Clear; // apply ca certificate if lCertCA<>'' then begin FElX509CACertificate:=TElX509Certificate.Create(NIL); if FElX509CACertificate<>NIL then begin with FElX509CACertificate do begin lStream:=TMemoryStream.Create; try WriteStrToStream(lStream,lCertCA); lStream.Seek(0,soFromBeginning); LoadFromStream(lStream); finally lStream.Free; end; end; if FElCertStorage<>NIL then FElCertStorage.Add(FElX509CACertificate); end; end; // apply certificate FElX509Certificate:=TElX509Certificate.Create(NIL); if FElX509Certificate<>NIL then begin with FElX509Certificate do begin lStream:=TMemoryStream.Create; try WriteStrToStream(lStream,lCertificate); lStream.Seek(0,soFromBeginning); LoadFromStream(lStream); finally lStream.Free; end; lStream:=TMemoryStream.Create; try WriteStrToStream(lStream,lPrivateKey); lStream.Seek(0,soFromBeginning); LoadKeyFromStream(lStream); finally lStream.Free; end; if FElCertStorage<>NIL then FElCertStorage.Add(FElX509Certificate); end; end; end; // init, as server if FServer then begin FElSecureServer:=TElSecureServer.Create(NIL); if FElSecureServer<>NIL then begin // init, ciphers for loop1:=SB_SUITE_FIRST to SB_SUITE_LAST do FElSecureServer.CipherSuites[loop1]:=FCipherSuites[loop1]; FElSecureServer.Versions:=[sbSSL2,sbSSL3,sbTLS1]; FElSecureServer.ClientAuthentication:=FALSE; FElSecureServer.OnError:=OnError; FElSecureServer.OnSend:=OnSend; FElSecureServer.OnReceive:=OnReceive; FElSecureServer.OnData:=OnData; FElSecureServer.CertStorage:=FElCertStorage; Result:=TRUE; end; end else // init, as client begin FElSecureClient:=TElSecureClient.Create(NIL); if FElSecureClient<>NIL then begin // init, ciphers for loop1:=SB_SUITE_FIRST to SB_SUITE_LAST do FElSecureClient.CipherSuites[loop1]:=FCipherSuites[loop1]; FElSecureClient.Versions:=[sbSSL3,sbTLS1]; FElSecureClient.OnError:=OnError; FElSecureClient.OnSend:=OnSend; FElSecureClient.OnReceive:=OnReceive; FElSecureClient.OnData:=OnData; FElSecureClient.CertStorage:=FElCertStorage; Result:=TRUE; end; end; end; function TSSLSBB.Connect:Boolean; var lResult:Integer; begin Result:=FALSE; if FSocket.Socket=INVALID_SOCKET then Exit; if Prepare(FALSE) then begin FElSecureClient.Open; // reset FRecvBuffers:=''; FRecvDecodedBuffers:=''; // wait for open or error while (not FElSecureClient.Active) and (FLastError=0) do begin // data available? if FRecvBuffers<>'' then FElSecureClient.DataAvailable else begin // socket recv lResult:=Recv(FSocket.Socket,@FRecvBuffer[1],Length(FRecvBuffer),0); if lResult=SOCKET_ERROR then begin FLastErrorDesc:=''; FLastError:=WSAGetLastError; end else begin if lResult>0 then FRecvBuffers:=FRecvBuffers+Copy(FRecvBuffer,1,lResult) else Break; end; end; end; if FLastError<>0 then Exit; FSSLEnabled:=FElSecureClient.Active; Result:=FSSLEnabled; end; end; function TSSLSBB.Accept:Boolean; var lResult:Integer; begin Result:=FALSE; if FSocket.Socket=INVALID_SOCKET then Exit; if Prepare(TRUE) then begin FAcceptThread:=GetCurrentThreadId; FElSecureServer.Open; // reset FRecvBuffers:=''; FRecvDecodedBuffers:=''; // wait for open or error while (not FElSecureServer.Active) and (FLastError=0) do begin // data available? if FRecvBuffers<>'' then FElSecureServer.DataAvailable else begin // socket recv lResult:=Recv(FSocket.Socket,@FRecvBuffer[1],Length(FRecvBuffer),0); if lResult=SOCKET_ERROR then begin FLastErrorDesc:=''; FLastError:=WSAGetLastError; end else begin if lResult>0 then FRecvBuffers:=FRecvBuffers+Copy(FRecvBuffer,1,lResult) else Break; end; end; end; if FLastError<>0 then Exit; FSSLEnabled:=FElSecureServer.Active; Result:=FSSLEnabled; end; end; function TSSLSBB.Shutdown:Boolean; begin Result:=BiShutdown; end; function TSSLSBB.BiShutdown: boolean; begin Reset; Result:=TRUE; end; function TSSLSBB.SendBuffer(Buffer: TMemory; Len: Integer): Integer; begin if FServer then FElSecureServer.SendData(Buffer,Len) else FElSecureClient.SendData(Buffer,Len); Result:=Len; end; function TSSLSBB.RecvBuffer(Buffer: TMemory; Len: Integer): Integer; begin Result:=0; try // recv waiting, if necessary if FRecvDecodedBuffers='' then WaitingData; // received if Length(FRecvDecodedBuffers)FAcceptThread then EnterCriticalSection(FRecvBuffersLock); try lRecvBuffers:=FRecvBuffers<>''; finally if GetCurrentThreadId<>FAcceptThread then LeaveCriticalSection(FRecvBuffersLock); end; if lRecvBuffers then begin if FServer then FElSecureServer.DataAvailable else FElSecureClient.DataAvailable; end else begin // socket recv lResult:=Recv(FSocket.Socket,@FRecvBuffer[1],Length(FRecvBuffer),0); if lResult=SOCKET_ERROR then begin FLastErrorDesc:=''; FLastError:=WSAGetLastError; end else begin if GetCurrentThreadId<>FAcceptThread then EnterCriticalSection(FRecvBuffersLock); try FRecvBuffers:=FRecvBuffers+Copy(FRecvBuffer,1,lResult); finally if GetCurrentThreadId<>FAcceptThread then LeaveCriticalSection(FRecvBuffersLock); end; // data available? if GetCurrentThreadId<>FAcceptThread then EnterCriticalSection(FRecvBuffersLock); try lRecvBuffers:=FRecvBuffers<>''; finally if GetCurrentThreadId<>FAcceptThread then LeaveCriticalSection(FRecvBuffersLock); end; if lRecvBuffers then begin if FServer then FElSecureServer.DataAvailable else FElSecureClient.DataAvailable; end; end; end; // decoded buffers result Result:=Length(FRecvDecodedBuffers); end; function TSSLSBB.GetSSLVersion: string; begin Result:='SSLv3 or TLSv1'; end; function TSSLSBB.GetPeerSubject: string; begin Result := ''; // if FServer then // must return subject of the client certificate // else // must return subject of the server certificate end; function TSSLSBB.GetPeerName: string; begin Result := ''; // if FServer then // must return commonname of the client certificate // else // must return commonname of the server certificate end; function TSSLSBB.GetPeerIssuer: string; begin Result := ''; // if FServer then // must return issuer of the client certificate // else // must return issuer of the server certificate end; function TSSLSBB.GetPeerFingerprint: string; begin Result := ''; // if FServer then // must return a unique hash string of the client certificate // else // must return a unique hash string of the server certificate end; function TSSLSBB.GetCertInfo: string; begin Result := ''; // if FServer then // must return a text representation of the ASN of the client certificate // else // must return a text representation of the ASN of the server certificate end; {==============================================================================} initialization SSLImplementation := TSSLSBB; finalization end. ./47_SKYGLOW_DEFINITIONS.PDF0000644000175000017500000033562614576573022015026 0ustar anthonyanthony%PDF-1.4 %äüöß 2 0 obj <> stream xZIϧ9I/RKcX@nIC)@}tUu--K~ xlI]WK_>wq/pp媻i̷ݜ|_nͅ{x|atW5_᱄_zl}3K(Nd5!#-<||I9%۬^;\6[ܚU0ْiSKL= ]d^>cC72kzN]#~fM"Մf<A2G jDU'fd93%|g=ħgJ"R@@_"8ܯXOS pۙj< |??Q|}Oz<>9Xk7s,$1 O^s`Yf a)[p"R$ȷfyH dd''h^o!pp!ڗ;C%{ EVH~!Ln!Oaf(VY)?+,[}gd%(XӇ0K%.WAK??粫s@t3/tC% MC ~GF|mbĨ,}bDrg""E֑;e(@lmE1r#J$ MFy[HqQIl"DR QPö:9qqqÛ8Y3@0I%˝i(Kr2g@o_fhe X Q?$A3 7@rB8]jq}:%jGR 3Gۊ?$Q0HE P'άNgCcnh" Q *]S:EʊJd )M) rX$C6K\hNKUlؙ+ՂIb-s0_ޱ'uqI)`@4#F"*V 59g daBØ!i3 "8T|QTde^Tm"HcCZO nɕIuϘ`{x6F.xW㎛U.vjׇ ƿ %w 7 G$2u. ` % hs(9s3rά&Cc" zvt[4$|%f;jG g 4`.c`I' y 4hmRhp 1M:4_M3,,/C;xތ^]M_ خ~J1q/8VƭZ)l%!ӀG(oH:WL8u$ZLoJC# *qO+ΠVygL8g0 cǽEuƜD͢^S-TqhEo:.:~M+J*ؑ1AA2C͚!e +gރcMe5zEKq&}. CSBoDn;{E¸մyzǕԾU MGEol,g+iTVQ;Y_I609'&uRc Xf&6X xT1Z%S2kҶSR:&\y ?T8ptE8k00>Թę me#v~G v,k-%5J+KBa?KRq]!=7-y>-X|9A_]L :(߮~}l9[nL ײ> stream x[KϯuteBC!nR=8\zmT*U}_I3}ǔ$??_t?sX>Wȟ/Wn^textvn>?w~O-ÏO??~Vn^tY z.] rSoS/Y<{]ܖCJཬ~}~,5X`eyŽǩZ @#&-r@48peELۧZWq\Y, 4JHp[p+"žiFd~-ͤIE36qB(cTس:xq39ѭ #5& %efԯ6C(qqY򿶷{'_IRK*2mY*Bee<( $ţٳO =)@l1xkiLD!!0Q31D,γI$5kN qL<13 ?cڌNg&UUASEe7e +lZ-WlJI ,ϕS (Bo0 F-@ id9'dY~K3~0'`7]fnE&iٌF'hgˊҲ9'@E } jt8[`_X^p0X@XŽ@ \z\6=ټ5>8兆 S6z 3K)8&kRr3|Y T/`#u[OEX,@H3'KgN(~$z\Seb)D}榒.ʟ@.3lz].qD,mr(A1jAU!Э Tzh2OvO8$VmR1i.JT?};&Ad%aٶՑ3LAA,." ^φ lc 7Kؔ(\\5:Z*LJ<{Thلˆy{k)$6F!RFS/;Uh<X q'jxTr!o][RW@Cgx妰-8\^uG9r HJM q@.CǠX L뭈;F[^.Ō]`,C,fUTbd|.:, V`-@C¼(rKu?&uW@#Ѓ;ćC5[k$a1˦n^U6Ap9î]!l b6dyʂ2q.v&ay{ԉ RiREfc+c _D.`tj 7zĩ,Dj9Xʅ;RD$K!}`Y5G=w e|;4J?ұbLhS.څT;Bcu>ӥ+X<д!ii/$y ÑUOa3v.qѪڭ޲BD 5ꊍE4Mu:Mr(+aB1rRd݇v)**f+g~/ {q{sWZYU~@px/)U<﹮HId١Mݕ<M:EsEv詷ZtOi{^nە1ՇYL L~l喣z1bG8 I&=RyGSć X= gqAf7Bf%>64}+@ aU hƂoípKkaf8#0|%^\ pn$-klsgb49SI WX2\s=Dln \]Nn [0ukk aF(KO}YxSfv;+ IMQ넒$hg"Gh-ցYUE}dmR5yW!eLU_[Šǰx~_$ܛݬ\Y}b xY+퇠LEE93D]jsFNUk挰@:8S&HXF䣑jMIWT#[玏נ6VVqKՏ(*lˑ!FΰB g +ژ:4(M'." !̥$h>)QA܆-\:kHfP+ X(x/5'?«+Oұ\ۊ6l;o'W^U[Yǝ[׶,{gd^WG }ܐH@Cp xoPDl팳* n%hLB-W NEr2鰰C`yxK>x/k0')ur:ޝ}wQ.$ƩùɌqROH69۩ch5.⁧[0a&sYM_H%tQ;"$pާM_TQU[:Z{~wmcwn =W endstream endobj 6 0 obj 3460 endobj 8 0 obj <> stream xɊ,_QgC EA-~702o)EHʬ76^WeJP[O{?'ENiqߜMO|ܿ}Ls>%o=˝obXo|xqT9?_ωDFZSڰ4RX+ Xd՚ *9HޕjwHz O 74 #a36$2wڌrM񢩤a1~~g4}Na@ѼQJ$9.ot  h,&Գ`2dT $7uRGafo(Vnx67Av*lHɁX%fijG&In햩UPtӆb@Yޯ3/i۪7[f^zj)ZxW{ȓJ8W`FTrq\rZ,Xdʥ2|D͠c7D vP|*5,*+W׬+y6+;U* <. ,.FWzQo+2YtW)ER"ѣ6 @ŠgCQEDSeo`B|'Z0YFI2_]mEH]Iz: -.m$C+Rt2#;x4#~YL`W} ՗ B;zQ͎`6E.X(#(L) 3fj47v҆r|C/y!ӞiV J  *J8FZg))PI=lW 2)]FԃX)7c$٤o{V\xo]7֟RP$RR W*u RcE؛RTB ;(X* uBGl,DY}"=FK]FZQMP Gdv1\[*,tJɓ*m?a%I"oQ`b1}۸T(Rq^BGF 'kNH[A7נlUЙBuk}8RK6*IMAz ;GfMärCk!6Qk.4`!ԄT)%BvJ) 1]kc$EH^Uv^!YKJ*-t/|,_X9T#()67afsT*CƖNͲ Y)X}ľ\[zA6~NPxx'Lu/1燨z w@.Y(,5yʍ7rԶFkHw0C;r=YsGF*y~ #=!NAeDLҀ L>Xk?w $qK QLVH} x;S9m'aC]R($BnІFB;H8"}gSEX1B܋A-=S{/޽~$sӁ9Am!~gs 1­HKհnXI;AS]iU"k+;gG1. 579Ԥg3NG!<]  *TENRׂ019I~/Ru{NLo\w2Y`Oj_~09lw2m˧8l#UhS3P[RK<@˥XTqT|% c9a۸ nۅry[Z_w8xp7INONn͍VK8l٦Ƙb${nr{4/ap;<8 ^WkKF;q!+i]cdh9¤g,ЋvA8+F&[Fd*lc2`cW9W⌸/ajL,\ѬnvHVj/8h@%*x!l7<*P[2q4ѧ*ٴHwsQ\ :۱ GTKwxJ}3pٔCǂWT׳E;}kl(cC*7*I=ܛ&SJ1kLU/@< PξGlҜm%~ApE0R2f0RtAVJ]y7B/`cT\'r4]f~2otIlM%r٠>.ĺf%]1ZHևr` m%s%2oF {uf\4]>ږ2Ub{{ wca˚; k@XaR] +؂A +46s ctUTbxC`uYp~Og(V֍씛v#7?`31h"%57OCx#e#:OaN> stream x[Kk,WxGaNj.&E w^*=>8֣S5;忯&ֽͽ_zj^eokͿ~ϟ5߮qլ W㍻٫]&ob]_-Yo8ɛ<üE`FG$h +m.yLe,V>|9)bw\ã|1Y\e}0͛wvtނl.6a?e{?Yi"] 0ǁ)O_^_/X0GYPqoK(f4bڇ<>.I^m"!g$94Kg WБH>5 dN;A\<#ض6BZǪu;b]:'/#3z0,Y}Ԥbs4KUWa^WR'щ "&9z,Hl%l"Cl3f+eߎm3`d8=ǩѝ,Z,Ώ9|l#jɷ+K8,L77/aM&h`# ? ֡R&;҆ k| 'Zm뽍*5(׈܏ޒRb-=#o?4iq[`蕔nV L.ɰ $-_OfpLȌX椫N+Z9B8خ_XP))eꗆ༠2$Y@ࡖHqS ARTbˋ',>GIʹ V0 0OPG)7".*$r~+ȩ؉^Pα5lN a6D'X$qٯ GV:c!q:r;&i^xBDǍ{Ak ͒<4űhr!e83!m˓jUń&/r=ÄrH<(7SLC-MQ 8cPG[ϙVUZZ (gکF O(|r`hXBӡuRWRYj_'`xV qdDgXGUU 4RS&JpI6 F^6n̐ZaR f$g%W$Nc VdQՊ6y-$@/XlCo Nrc7t>w$Qa>2Z&ZhJ{JheaU_ N-UQ7rvپ7g6ГJ#5 1(VV9My$-c_sC)\SEG 0Sj]),F5!U9NPQYa)n2/]i8+B۾ۦefтv8eũBoNY^,JJ5/&.G׏e3,E;92l+̈́dQ`;5& ˾ik:QwCgP|`i &߹Se辉iy>.DiEyZ(Ц`T h9WXh~˴6Pe.hSE5k6t>=8ا%M!gy$"lu1r`r! B3)$0toeLԎ 3d0x%*Ntc64MՇ>y^Kg#!ڊՈRx un?DVLK:7PIJgCm)ǥ)I0oubUN 5Ncbj7f]#*UB9ٛuq":Ox}:'DX5}`}4G?7ŎN Vc Adž oӯK婇.m8φx|lϓg<xrZJ~wS2gGQu*Q0ܥo;%5cLͅ*0JPˇ1DŸ(ZlL3Sf|L٣o9Q.g]T7 LH+)tPgBR>IՆzgjN[_[)x}:< Q0g~=PEt[fGXtR J]}Ѓ)a.G9ѫ"j+[yWdVw~OEA]J\g62LsՍ$"0AVHrNM~)zxjomğxo huElA~,oi9kåd'7#~Ƶ7&=+ =haJcZl~Gڮ8+ q ;|eЙ5;fq*am6߰90 Vf6=]L$3+-iOBShIvn4}a;DL'wMT0+uqK&u+f)j'^"a"iEkm턒BPq]WQG]MךTa;]kVb~ߣ]w=K}F?9;uū4jF`KCI Vi՗?z+ڱn;h䌩.vz7ԣܵp^oTqm^bʯ%δYI3RZ8EYtq{NR[Uѥ_,hG nQGmRZ{?VB endstream endobj 12 0 obj 3356 endobj 14 0 obj <> stream x[M ﯘsZmbٝCoi $_"a{|H受.Sgu7ח?~:]~˲Ks_??]pW䯯O5t ӝK~V}Z_r!GǼصon0#oi3͹T dPNMx<"k7(X|Z lpZ> 橒wW9̽=oytz¤o[G=Κ_d>qlOϯ<^~i!,oS0B7c>S.Ehv~ 3"\͚!Ρ#kh L˱xeAW^f,K^XrsyY(&\DUct䃢4 O֯|zT[ջMxO޲-;Z 7C= L`dlbQFeb6l)#ؓ#t/{]ֺU?U/'*kQl'0eaZ?m"@Mкbc\,zΗ͆[$={;x5hZ ?FPĢTɕMA.]L^I#v?'>6BŧifסTUݾ_k>zQ _ȳUn2*[T֣@#Tֳ5l`K*2ҳJCV6kp(9أխys0ܦ4~$u(:P=y| iQŠyɔdwTBfyM0 &viv@WzRQ/QvMZRWȓ9gʚ 668T7FDI3DHĞ?/z$*cq׻-əBĮл#lĮYsLNSx$06!S&(< 릗w|4,> ψs/옓Dy 7h&kiTqf(30#(J^L29:h=VN<ڲޣ35R0@}㓙,95?0蜌όQyT1)w8l3xO33ɽ$ΚpI1NUM2xdnHhˀUEXbpypi[lY6r?;li GvY#%)Q"q1ou+?0*{ 9wT% |ג"j ֊eU 2:Co3 hLTI'֤l&s4* ?o o}w̞0Qm J8jI'Atvtzw/c@ g{|cgnkvtAtȗV&oT !EəAa S,ǰGD:Ht(:A-yON36$R's\6gXt,H4(Fj[j4/{t-87l< ێN$د_S z#85 7FJ/}JLw~'G!<;n#KY D'ySq2&yMxWqlD_7C L2$pi.>6$Ԃ|/JS)ԩ9טr#r=ė<2j \PKcV 3r8+ҫVUjt>[uA { ZM`*AJe?"\Jr]fu?a<oQ%$E T"?6 .v*;kA*rM\`;aߒ!꬏o%2tcQڢaȣYUpr?WjF.4=VKjļ%] ƇC$) QOi^PC})39 MJk]2(K :*uҶ>u RMj3C&r:Xc,ZlJknitؑh_Ӭ6~{A+]{J${mtiw~b׵bfoZ߆0t;)+|v DL4JX_C4Z rðoQ@?ju%]S5rV4hS5]dxtqGCK%Pbb!6)`{; Wk|[\(ƙ1*V!m‡> stream xZKĸϯs`&Ò MCw@!l9v/S$ nK*UӇe%o?t_o9},#,_ӿ7uao1\#z'{C3p]?`|ȅ.ڨОq +6 i/1X9 ywymӽ0L N&Pރcqg Z.y-T̈́T-J4fԖh}Z"V#  .7}κH4}Z 5EKjmn-[S.$dq/t` ǰ41} 3%xfT6b%- "7rt"nq;AA)!?p_or`e$[[ N \%P'7ITSoDbmyy˻K(? ~BD|K࣌öqM co*4u*-HEX$1XdRVJ\8}a[m% w6ʑAٳЄ|1V?7ĥV<{87?K`ɽXIɞw;c !B{Pu 5#ך Q@h$VƲ`@7?^à*xYD[+qCN1Dbs1zKʬ7DI֝mC0㻔Yx&-i0DD;sLmy13T 3/Y)8(W[#(5Sq Ꝕ E֦D7kq9pd-I՚Je$+Mrc51Ȓ)9HZX(o:gXk>cf.KxQE|e("&a P*mY\2Lߋ]Z8WqUTf@WA[cq J0K=Jp PЄRC i"-)J;2L;X'fH֋/> z JVdfvҷ6ZϢ(6s&<d!vC+MnK'ՊD74YaD.?Z ) hYR:GnC\vaeQĎmjz\iJ "IeF 'taXf.Uq ?,RJ? ~RUZSSK*|8ՁV dY?`p/*찺]etlkM]dk,?w[",@% $ӊJ 5xw ΘU*Ijhx6NKm8TmXrP֚+b/$P8s% !cOE 3\9oj`w ŕ:J.^$GK2 K>Z4 `_-=tNјdrnxmv뛝hkY>TK v,ǡmr0W6Wl! {:0J!zaGw@QEH΄N C-w6P` $Mb vvKbP8 Y@w%mV75)`ft}>;/7aѪ4JN>틪v;ʽ @eJx8%> &,X$\)Y"4UqVr&QP5GF97p&*!uIo#ćf/'uZk/P;7R0`2/h][(F1m£q&E<.4QG2au9=Ɵ$@x>J`whK:tK)<x3u~oxP~q! E)+QSFSznn=|9ll%V&$A~Y\ 0GÕjÜJ#ԩI~,G )=d_4B{.մֆL))/ϡ"sE+2Y{i%Sӂ)GҦEA$RU\eYBz!w%i-i]uklOEssS ,S#"XIVOg{Ki.ƾI{4wDРH *e-w)ǡԮIw,Es~l4&7eNUwN^LkT^鴒|sZj,Fթ?ڻy zo(-K[2ֿƯ" !Zɛ++˧᲻k~UjN=az^i.hAmS/f!ж endstream endobj 18 0 obj 2818 endobj 20 0 obj <> stream x[K+ޟ_1Z `=."ddGR=nfjTUT6g0_c^ǯ}[ǯqccv& bW\^zjmgcJϬr?VR+ ؗ?/#E2gP}$d~fAs/~=͡(q@^Qi_98M'Z E-u)l"QςPpM.4tgckx0)`^TL{ ٫:dS)ljti`UNhI\vkc-Mj1^.hO7C Bg6/\(A6rcbwJi⇎E Uf YN OjtU3lK QOlZ1z0dʓAF87h%[v)<8'tVޯSY BX$-b1:J2ZU8j!Y8bKLlISQɾei?!(x/ TqӘ6MO+G& kB+~5ތAI¥DN LZ"L-Olgy%RlL>Ax#KalX DITl"%O"ly;-s=",Z~\u^." ']WU]6xp9!u̹Bh/Wz*Uلx'>B4:liY;A4ycaaʄ}?!B9' kbhCnVO*28h@FErtt ^?BN!DM{/o,ԅ_ ܨ֧"a>ivqWq"PNg6gG^8@@b̓+vŖ|Q_EC\0fWsLU|n#[KaVCdD X*SJ6+tt1+5 @qh;r}Pa8:礿D^럤gR|A=]SCRGhA<7J^CA  VU#h:Sj(;$BH,PE[;Ʉ w\SSS(q I6`/72|i64`Ԗt:9ύSS3YþP!s˜ \P*(b>R41OB/6V] Ռ9Qzr6Ji@sra?UMAHYM Y̛Gw#S8<KJZET-EtiΨUQFH:ΪTԯhRוy:^5]b71fJ/$us,h [(C:R S_9o׮v_1¥v R? JGGޮ%GlfHhԇZK,jWp+GaS(pnjzD@)&ml¹ujp7[u/@13Eq/]J*~_1J4ǽl8b乑֡}NCfdAZsO?B S:u9yE(P!n!)vYc:"Ƨ|+My[x\ 嚬vQC*(SJKʦBGԠ,lW:::[SK£/k7l;֩VMUkDT ^Uz*{DV\kB*gZ:sU6~,iʭ1UuR1Wxĉĺ@ ' ˺Gnjf79;ތoQkO:G~JE9 *TlQԕ'u\:HSg6Tej/U}WݠA!ޡ G]kT?,+} N$dV F<ӑoRiԜDb⮐.K'7" CK[{az{h6cZ*P;H!Ky^|NBA%(vYbty"# , wTp>V)кbS$7=  U 7EUK} 6b+aDwDZQPa'oWzBfJhe%>쭔gf+8M@=8X?TKOd+\0v=A^UЏf`eR,5t^j> Q ?E+|C*ͭ54( n[:P4 FE9g3@-7b V'cffy{+<_ ]߹$[Fb+iHp̶7$tX7nJm,g,x5U2(Ⱗv2;&@9&znls 36i~3{`M 5$c`i4Պv'z~~k> stream xZI+:R1Eve,yH:Tz/\hUQr߷\\}%\~۟p7˯|y[vY{].u?m.ܮv._/mįtzO ͏ׅյpws4SxnP|]d:fBQ9zM sTd`:ߓ^{0NG?ܝ$[ uE,Ռ\ן?=~a,imh@%/|!B઄ `*]Uc#} [H[1RPEngP*4R]4y{/UG'f-H+9xg%9`6Do o';FMhb7gD2uSдFx;V-Yd@; ? 5 *I*v!UHĤ7!M4Z׌3!Zd:#^7wvW[[5,` ͷn}k \>[%C}ÃP?P-)<`ZO{IhZsD"&pqP>=5 ~kP Oܯ}T"S=%8b(re1\9)}*0tVUul`46?*l}ć)c乼6:]T!a8҄3(u=QQ>WmnO 'm[1HT3B϶$8yu*}mNS 1GE s*Ћտw}E< v½qLL*"c?JY 9'-sOD'Zmk?6.%$1:ʔLy*Eϒ_s8eT—+SS,/qI3ݫZ W]¡?1%.h+}Ō-"*HB29!d ѯ!"iv#4I=39_!h9Yz)M01PaNE2yԓ@!U+6Zz~ g ~jCoT^8)H{aN /jշȊS]lզBXEr]x ǡ"'m p#p+1z&jg粕`^$;*oWf̜mS-5{iXŃ҆s^$5MxAW1>HM 6+c. @%i!YpMyX(\j`ZލR-UQǶ2;myH_ 齟g{3-ۜ+Rdu &+4V r--o % z4yUқ%? lW%u%LQZ*;1$Xr?-AOzh2'1Oԃ o@xm'T6NvYJ#%F\NJn%i-mKf$j{ @C}`9)]f0& S/8xiE6:SaU#[Me$ 4]}x 5C@{Hyh7"R Na6 qij}MkE/^A]ޯ!şP(mymXJAtIw1j3WmFT. C^SeL"=X{Tcr_h4V6NF =NC܄5;+5[ څ QuR<H_:V0 ^)y>}WL~pUƌcuXrkV>ܣ W>/z*h|%޹OW߻^](~T.=*JHu }iդ(Cy{th[٘лE^od/K 2EM[۠~Dhyo.z1i %~Х A(K8~Q{ӧɑ-m WvkybƢu:Aj#ݤWg=ΖzC^SO}Ʉ;CS3(w>"udRNˆ F?QnӺ[ endstream endobj 24 0 obj 2770 endobj 28 0 obj <> stream xTkU'i{Ĥ;\R1!٤Y7$@;LnͅF -^NkA胠(E+g/}샂 5X/NP8;srg p D$FG?2Fڋs.6kl^ip̛̯:0(Xpy,~.ğ9Xžrn7ړ;cy#2rff|-=M%̹Ф_Zfhw7Գ'C;,ˆ )0p8Aᥰ0+ < m<,aYBQ!996y Ƽq@50;K 1x endstream endobj 29 0 obj 1159 endobj 30 0 obj <> endobj 31 0 obj <> stream x]j0 ~ Cs0Bʲ=c+aSnl$sCWJcpI+9EWnYHfm)8wqLm+;B|(y'8|{ (a xy΋ͯvFYSvbe]us%[dㄢU@{;1f ;pVJ=}şdV"NUPABSwoTo endstream endobj 32 0 obj <> endobj 33 0 obj <> stream xԼy|չ7~Ιv-Y-ɶO%ؐN0vClC kHĥlihZvYN(%pB%]ۖ@۴7&9!x,9yr7^$-fi!6Bش|v  !Օ[1V߼ƶV ꫗Q*)nz0k1[Lxf ˗v:B?f [9xk^Sï܏Prc_ =?xu?"+@'RU2aXN+UjV7FbNS@0DcDe2dsu) MmMojni1s9s;:/bO?^ ~Fh⏰:(8ŘLЃh\^A'l:hz@zX@)>DP+cA+ BQԆMԏl(?)]*5jB?Dz< ?$p޼{&އwG88q̈́Ȉ"h&2硥A =oƟ"?C,sbC6ȵz{؎OL|8'cIŇ dHDatٛ،i"21}b>Fuv,ԋABoN/w> mD[$>:p;8=?N6܍Oǹtq2a@]a2,N5s@Ў?@+`#6h⩉-JCurm@ @WЫQﰯq[3A߆th{\= t|ux.»x? ';&I6"( {B7q%|{p ;nϼderK16q;(vEPeQ-0AaD7[Nt/~,|KM.=(ڼ~ ;/t#EI i$M"wv?9I#0f9)9|"e'jfr'oQ~&L?QU\R|rO '6CC%ۡ{` >30#o`F`4$jx[;-‹a[հm|+ ߎmQ؞a{?#0 9D"$EMd Wl M@'arǘS,e=W_3_M)]ȮbocaϞ|\ ǽp+( _P~ /x_Yɇێ@)|f=s/Kn%>Èx'Y7=ـp9ꙕn4%$gɟX+O>Qyi" WZ8C7l'kmm/znG~D1ট5db9iF.\݇>b? l6H"y, 81<H/QS̓xFׂǿfԨw3d#I&1/4 "8~Lk4F(bss`=$(z[x#غН1xJpQmF {)~tN(KͶ2m#>sܯP#Ċ}0~j-F h<wF'=s=$qe Su5l*JV&h$ [qb6^ըUJ^ (hG}#l80sf%-BK*FDj5#b|+%rR*])] bjL-qgq/ 4ő19.~? 8V7#OliݴzgK_3 }>S2(.*E}IxgN\8c]@.x{_( ܲ~/.oh|qزooT:_wdN@!YzW,DžZ-kfAGM]trȏ{'B> )bWk:",~Mg]rm4Rzy_kv' fäm;_; `sgk@lٷsDaY@;1]L 8=zw7|j\_ b҆ ,c$cy!ıGi9J'1U00W8>ހ!/CUoCp ϋ̉΁piņ ?)5m?:q#GÙ\VN)943/F_~Ug@|L߶ 5ꂟ[l[d_XsKnUn+';|f7O,[gmE\Hʨ5j_}~.F6:g}%WJ/Y-6S(FɛRfg0 9;)mlC36I*Y;#3VNY+k%tg{zg{N GcCcv.o^!g$aO7 gx-yQa8%5ըZ Uo>Z6cԣT#Ꟑ?Sڳj$'"?GxZPfm5^6C+C&mh&H[Y^:"Ƙ~g fT-YGAUyA `îU`II_@ƠqA qD vhCi8?8FEiah=%@Pt,ٱA,+lUi|`T>߃1׃(2oHs߅Eٞn<f*ta2 kC=+= \IR] )cTtUQgK<]Be:Zkjԋ*8JJ;s>0e*=`W|B4{H\f3ޣ8#t\(_C4diKL0fl@#\8Xdօ^8j}Z--rM5`2o|kʺh,9cw]x^oj>haAB p{CA91$=8i]})L@HNӕuļ庘4;8^֩5*fzbC)]ݘci:.ysgӁ!~88=cP!"䳐d`%HWmWx_@;O2u5".V1eJEEÔo8nuyzl'**¼'t5,KHNpr ΀pb*X񓶣W>P)LR㙪"nn'UXYY׭oóBRcbi/MK,>Il#\+II;%ڋbz0>C;m$: LY},^Dډ7qGTFna?>u_Rƺ3K^L!}q-:eRI9e(urW . P)Fr'sd$D)Sb^(c屘78\gb(HŴكޕ <-j-)@1VdE˔+|X_?bCbBdbOl\}Atk0@hhr8r2vq,4P&?% tEb\Zm׶^5UӋSRFNkaF_Vbi2\[d앶 77/9"aCaŲ[3VtQ(Ȇ,@EA6;O35x؞9|n'255Mc@' :ϒLz=.6l$OPN5vZh_譁s(C=2\3xpe|s$"eU[>ߜ87WI #`(\ -2!ʒK 4-6LIgO|<}' :~hRŊCgN: z* Ka"çlHhچvCqxC =o ` X$ L|.s{݌64a$ ?k\| 2lCΦ\˰[ `]j8\ċ yŜ5h!2 %iXC;[ 2=r޻~[y%?Ps7c͹YqŴ׊>/}ࣗQK.l^1n V |~`\Fq)dDHw<p-UC\m!:76 n"a˻ְJX$v]^11E1[ o x4SKoBehs%j汻mJ»n^@6OQAa$^ !^_ガ>'ilJJ% py\/GIp{G^=R NxϘ% =cЉZY TߢGtķs[/W]_iS=σE-GP!yee ~g~9~/ŇBG[r.bD/֑&,fJSpJDc&:,7S0"5S<ʰIt+x'CzӡԤO]PP3Dbū$(v/G'/WJۤ~D; uV/jG^hb*딡lXNr|S:8dT5"$E. q=`ǙPZ#3ˌVel5Wյ3vwrgfD謍BJͼS/RJL~K뱽۬WeiV0˺3]sW\ A Z'g쌝rcckR}~JVtڱdCp!y8UDnki"+uhe57%;ŝZܧikh9!%*jI$76|;AzA əQllL>+ \{nº2Yd3\B@7͓"ݤQ' #e J:j`Y VпB bp:yl{dTK4G&YIΔ<׮P&dTշL_l|wY3U:H[,/nn,f ,i^!K%Ŏuכ|G}orop|`qJn2ɹN^UvCSupy˩u*t#O3ū%JheHZsva'qg2sw#:̽ mf| X>qHD K $K/@%(w'_\\O?}U\LPU 6@j<RO:ͫo槩ZԭrbR/NTje4ն3c7> k埆Q|hT@ie1`öQ<\OeFqaAW# R4dHa-֎!,T$'$F%Kfbvf~g,=_ũg̔OMZ9ɔ76r'%%V.^2V%eا+Z h%^Y3D"Ddb/6mn*cj[4B}v,O.Pʇ._b[fgx`mUi䖧#e %ר[VWU_u{ǪmOP^;BWЛRb,.[]בueʔ{'k6#|D0(dV8F׉8J+Uv/4 ^~/=NF@'ZCqlOS1mH`Ao8+;~cBR››S&S2IB >jk̾U_r;R/mfgaS|e~٭P(+Zyx**rQKJՁM6!dؑu'똸w*JGk,1odv:f1od"iYo,7T a;jVM P%ʾJP9TIF*1*OTd+jKF`hqy8"{8J_v ,IwXځ2]^_^n6m֫RqUV3t|k5&e[Z^)=S"![\UlGsU u ˾3Sy5Of9U1Y;w<*nW@kISxc7lr zv5Oȁa2 Ӟ?gB"..8"X !O ~/ UE!I__Y~bNȒTgʗU1>-mJ@i$>ԏ:N! \H 0ZtFBPBRpc%i58>380>szcx؀%*MI+ʎ+ Ag 1EV!/BrPOݠ{NN{ ?t6|`>1C'êQL]qX66|_~w{8nyg/{sM͔h=܏BwRG(n:o1aZ_87S\Js}P$iW,jBeQ"PNCQFIF06~<,1tMN0bfY09a>iV¯lUd0VJ:r*e.cpy`t e$,{Ƒ+,C -wJr- OL<1~M[~1s2R}wVơΚ9[KBПFiEYd1nl= |9 I(96歂)Θ-69Ǽ}żDڧ.hVjۥ|,D|hE|C %j `9~FkUaWw.E/P $Cm,֥kqH-uEӂs;I}v #t_gKצ2srufUtˊ )~uG!ZZpDGMn^:G]4C; CbEmm o.nZ(@ԝI)7S/ɒ14^uURYh]\SJS_I2r!'4mXǸ%ۨ'?\w:t^YNޏknɃ4!X)ֿey6Ҍϥ{2U6RF,-f\0cʙ%|7/D{~]v>O+3|;+r(zGd}`<:/xz w7i4uǺ'43ڙ;;ܷYR a>aqR%(VƉG?UWxQF)aK^5Cv %=8WQ,Hh F>iιחRSg'' 3qQ0iYfiq$.I64o.„"[8d lQX@Iۊ۸;DLJҥ[\aUטrժ5ΕՉ՛7wߘء|=z`t2"R)DE+%Ȥ6zMatj \ǃ*E[*\*VL@Tʀd ;EdSZIe,((VJj uf[U^ ʅ^*gA97SI83٧\2gtG=㓲}t,\خ kH`_׼lP6|kf4o6~p@u\G- MVV?WqE(P9j\>eNmڟ3ӊNaE"-j_IхBïo<w5'*26arؗ h-訳&ƘkTiƳ3CLjI OSܴm܉vive&[XhdU9ER>^jQTymYYڦY-Ҭܡ]}0v{I2 XeFZ:A}TF5>'h;DCd68; & oB^> 5O=FX"Mu}#I@ Nf3/U!xEG!_ RLB8iB<"[uUϋ|'_gxcij@,:v,.[ {@p8XRT 3rS<\[WSG*ZIr(ref2 >pySfEjLTr8+<d(WTPܧ~SסFBOKu$Q}VSCZ4C{hKWj4UCTtbҗ ZXT-vY%+ZKJg&ok I*J o;cR п?h^X7k[6U5߸0ceyy>Y\8MQ|)^P`pO3їًJ7=L& y_oPi{ 65}7?VyWk67g1)nѿμn|j3Ťl46:}ubc0hPH p*[ aExc e{E՜]e|e>_ nPhΥ-3x> 1`LDd0c6B jApkSnCFVb֤-9'_{v;\(&JlUœu Ƃ>SàJa TiA]"X۱dCpn6ݹSokvg{:FcǛ7N,9Ԓ3K.њrIF715nljlU,FJp@$}WǦaK4Rt•~zih6MwfӰٝlm2ӄF*I뜭N9q$/v y9<0I41ڙؐޝN3\>!_Gi;(GODOFFqIzd?tDV 5[qkh[c FXf:` peY;57"?V[)85d16xZNB-RD4>Q7uc=4;CLlrDqmQ}K0);0UWeUbZ# U{g׃r"EtAtE| ȃ.*w)hNlHIslM]Ab͕pi<EayV1uj9Dؙ)`(I',bvqB)p)Psr+.-A97J\(8Ǜg$|lXȹhs|o6+sdLWxLscUS.5_8j -FgNb`}ktr_/pپi˾E /~LW(mffct&c4w4S~ДӘEDA4"b7F՟4iFC|n_֟LVԔ9>w@HpY8·؟?x2Ԅj43h{. +$-O/  |#FѓIX]#"7 MN ~n.]…}N0Su,`Bj̃1!؍^A "%Ƞ{ >2e$9BAQ+U|0bQ ](V,Jau8AuȢV`8X8tR5_#y}`%A$ 8}>QDVbKDqעR'$CTƂVQ| tu,@MNu:~'~C'/rb!- PYAJToKBA.QmAVbQgspkt?/Ǎtp!i4b#1>Wy3F]Ni@YטSBN;NƄt* f ?tR~d~qu ˔ EKq^ 4HJ3UbK MC4ʥ֋KflkQ_4&8Nr~㫯e[>2kQ|cX籏_-kz|loP uo\h5?#ƟgȬO9BD$7'ކ6қs[j^R)AĶ$+jjr5)#ozWjI=Qz^}ZA`@NSyu(S*j"ߍ^~54NMHF.uaزtv>ރ=X@VnvS>w_02wDznsdS0BzEMCƠOg-ta]vגFӲl0_<6)SeXݮPp)[p?QRLԑn||Pknn@~;ŋT9* Xdy):isj\'4d>{T1 Z?N;tj_"&ӓaوcS>slϑ3EM݊P(pb*-U ҊRz,,zj9\;y)$PK*r)Z\>25 ȕ^m\McO'Q a(yU*zil~ֳ2y=|f PۙKM02yzן80dD3dEm#XoC:zf61_Y!m>y>%u~q6lN34;;Dʈf)}y+ W@=69%I)lZpV./!7?t#7wZxq ⃯w`߆6$ 6`PxaPJFQv=?{9^&xrLջ)󏛆ζm++nE|m3wGv>A[Tq-!"9$¦bX.WTvK^5"ɫFӤ js#2La C3)F0$}R5df\\g~&䄁VI_q&-K'<2q1#HhA9CRnU͐s($ӅHuXCȁ~ t{lIO/YkKS. `niiʌ⻓KcL&Sr BR!-ߪ (t0tebd49([(pCڲrn* Ԣ_ g1Z0nnn{쿍62$&To|\{꓆5lkuh>:Y9ѶTй0Yߦ&l3nm? '/z O}:fOի5l5H6Skڌ g8fr!n[ʈ9NgӖmuvz7 p|oX$ 5sLJ<̅,\HkD%<:TZ{&rjRREءfY>gKRI@d4R?uĕ^oZ;[`ö$â;rsyyҊSAUr與Qg^ /UZO&=c0=I9E %dZBN[KfÔߚr|xG}+Ah=P#E!+}vаWiU%ʒLLMрN>"<rR+cl7:h-h*F54WOg E ig!ѐWH ]{ Y@N"ݍPgHC9uTJr"uy]27žysIQO|Қ-Fa|L2nWlotUM/,,IrJJHE7>4im3ø*X`3JY[͕w?}ezj|.k'`Т{^}u! g)aZ؊wsc蓣‰t`ks!]Oş?U?P3Ԝ3.jMxNKUt1-o4&arѠw\0 (-fdDV |CtJӸ3"#Oðl\b}ؠ0փJ!peDžRǫ7<{n*Y}}A%.l[濭+ 7/ƥ~GxCQ<j("`1n5R#$#p[yLQq j5:jun{$RɀU"/GiBT(ղ/Y GxQ fPr4]py(gPimCY7,PF@I8>`8;9af0@Q0@cGlbmznx/]5 szāhLبڤAЧ![-vAUpLu*W3f=t ХQ*TWT[<"7=U/J%y7;c_-:>~zrb $gICyx%lM3Z3kkx:Ov,?5\y3]qz걇/:;( htTŒ/SِR^tBxgi'CG\χ_~MGj*b]!]H߆Ʒ?SP=nCmxV/\Y5dUxmdu&|sdS =V㭦ݖݶ4=AQS͟?|ZuH=jY+NUĬ+>R鞆c_@9)GS96`@u.هݙ=zqib%NUwu<-7X5ː/[e(iJ/嬸 {RrJ+KT$94xIч]\7uIA`3++w<ӏّ|y͸Fiʕ\Uͼ{Ykxy o}r`[^{vaSGvunٻeZfHhDVlcI܉ޏOb0Z9T`/zxRt|#9b`mϏRc,6u{xqf)s$_,y6q=NNTZmvt`QˊwE89h J>2_Hj)@h <*~T$,?{TV=yi495&/7\iJ^w30Y`Z8:?y?ϖ?_sjn[6$H}}f9ktBv^'.n}%O=0Z3;gB@}?~8~ُ^:Fsg\? ƭlDPc[Dz~K9=IH/YFJ.2,p^c M>MNa#O$b߈y3qb~N=żd^JVӎu,ǣwҺLY1?v`%yg30~aKH$ܳ|ziaKa&1 jkLU%02)Zans QBZdGt"S!(# nuW`: ˧p9v#SsYGǴ%ae5X_.׽mUvAM+axNk vxHÛ4wը=<=sxxk<뷘f@=>f/?mjv5N 9/2,nfJ2II2hlHӶWt{(n'bGQQtU&Ǩ@`16ZdK8ƒhIt֒6wwmɺhisFN.ч:r뽿ǜ]GO>qFKX:g/lLҊ}jC[/vŸxEU*c P?Wc|P9S<[*K,D(diR,="V~XnI6 Fۂҍ YFQi|-Cbu kmQ[z?S>T_pWG3f~qu+4V[{[ q͖U OJ"|X LԮ_`t=U#]#YPw5>,Xv!85uzKQ\^m7;9{| wTMJ[eSTݢc`gXȥ,6qfTtv#k4ZiQ I2iN>D:-6i}ڟjITOzcIJTTd^5Ҝ0 |ɇG|4 qOU^rp0E[[IMǠ]ӑfDv-@:HKjkB}V'tD_˹1ZԂ#D`i n82~QWg?u* #s,LC?U2"ƨ 9{G`5qFM!h|at,nqFFiq/?CCVNNbDWWVi5%ʛ7C^ͫ9OeR_=|돖F^q!ۭX0œѫ.ɳ(:Jwy-1 lpё(:r"G: P!p[өFN-,,,iX:cuqK<} ׻+o%uLjuC4pʞoJb~^MP^cf^5c|5O0Oz&rx3e,PƖ ],{XT&%ΖqeO~#*#'Qi0M\Ny;q[rj 5ҕj*Q1TVT x*.46Tb$hW"u\Y-Pn] imo2uF)Q1EB*Og7q c]%I Ey;KJ7[RB%AKǑo_hS3<8E`йx/ͨgvגsڜ^ltkv.]ٲc滗?FVl,u?ΟT;~EvBPv¯:YMkVWZ / AE &ئ{~ń~PaQ3͌)%i;6=vƾ()xj#o"rPNh"2Ott P^Xj"6}2"btr~oX.f^xfݯ7`س1Sߺkowϟؓ?߱`<q酅V>!͢f]ǰbUӍF>?3N??Ï3T0:8~=:8^xQ^4:y9䀹Jl|51ESk5*6SY vk]p\w.ry<5bneHU"ykY̗D5:gUbrEoWVVѮ[\h/QvzunʭVVVv y78;\ۅ.6[$ߩz@w.#NTC 7`~U & Dw W=}1.J5lfga%έᯌ/Om6Z˩x0^*t˥) ۭFJ0[X`ċ%[+&. :0q_OUBN!=tH.pŋj_"H˕*q%j G"uuZjf>^^5^wz3˷X| h Z3SmѰ e,&ĚLb1sL5z>|sH=Zj"GTMzz"-ygQ:;aHE47:K+ZlYZѵ-_Ƈi|CdA:e.$DZ-D* 䢋V5&;Rp>V=\j IeFxXkQsvnOpTlXoҗ״ƶN V5 Fzdj*pkBxBq1r,˱:3OiZfld@3[,eq>"eӦ гzghk2]50U`-Kϓs`=u"F+ʑ@w]ZUvȁ<) ^5l6U-Q$OBr' H>t"',ux:Q^#N?Z{){`/:=ZKO V(Y4 ^b3#[W,?TD0Vk'V?W՛\\_NINVr (`ݾS3u^&ዼzjj,=J^2@U2;(2o\EjZyB*UŪ)zbqxyDEUWUTf <\uޝ;::ȼ0ߛȾ)KIkxKp%f/ʝrV/jWfTS;U;&.Ʉ WdnԾNn }v"l@{+0 *+")Xɿ/d#.$۴6lwdQNvgݑ`?k+0 5xu0'_#^V,vY 6ͭ+y*]JNe RCog lPh30El]d xײiG-ϓil6yBIvIͷZ\.cO(JS<aVzVlv;#l/h4=M 3 F/ڴynqȨJĘZD۶;^4e_.zBynI xُ 6TxYZVo [Zy^\_Ⱦ۱ʅ.6l1mC+$W6}ЯT/;ʀU_/g@=.հd/_^ (aSY$T ό$ֆ{e#ev]-tW^x9R%`j{xo^?*JK"V? J"Z əp¹^?p6V2,11cex۸lbs)*bcC;cfzNDmwW#bY~ ;`a)W,Z>,0|na& EA<rR8wl௹BK&OW ᥕO'_||zEQ} ojlcnxJZO%{@Zυb31>A!! v[T\>؂Rcoq!w*EE2")2741j<F5mԴ%Ji:_+0Ot:C֐!C

Q.O(?g_ i@FBfxc*>a(a,YNpIT "`"$jBO8޼n>;گߍovŻ~??޽[Ejhv4{rlϞGp_ڔc+ T2ڱm>b,6p e_ca}ozM`k5v0ҮHllLTo#gtՉƊ֊nt=jvd=]}Cъپo?[K*ޱ;ǹ% "Zƶ*~m9xF`$k(@P2z!DOR>݁n' d]n%8CmNhjpD / 4]]J*0Y0.S&u,Z[K8پƠ7.q+FXLuvn!X` tVgKaYzΌa11v>-'6XOe%ǯ" ɳ+>:ٺ6R~ >~tTĭ~Д912l?+W%uBWUDY\6rA0\7ªp]iKdt7 R6$wx}%T*J L բѨż:]P3j'-Oh6%@bb4q.%Q:Y `ej`!oDk&*<1 B ̡i` EtA2$aY36|QЁvtXf\e[`;?՛ h]ذ" l|G}ϭ+cٱ, Nk pc+[(v}BB /k8\ph8۞ҡp((PDD[Ba2Rp^$*De|,&^^iKiU:.HM"#%#}%G+YѹK[;bcI'$)㑤m/݁fCpHV,#l*!cy<wj+<FKΗ`'ߌ7q lU,BG⋪8_?RFPpP_ab 3]($*`rX9 6~~~=ttgEL>U΀;sJuܭ \N]X\ZتL;;HܤٽrWo>8֨EG*JQu`}ŵl/R]),lLY[!xcSy;b>/YZwŸ࢞Rkj~A`X՛6R:uOeB{2!92vl!+riRNV(QLoޡʼn!6I`ږ(6ūgP +C*q\U^P%[+0_\J,U"w[]1~0}.^"} fhpDѣB+k-yePu rqTcOHA[.Z8yCp]ݝw-Γ]m-ǟ^W9WJ"Xd{?- 'mQjm ?zg; \r9NY.ZÈ{S^R]W ք{to<4O*YԠ Zi6#v,N Nl؇klULg !*L}̑RԎK1XX@.µPM(]ӹU5s+xU&,VS6-0B+׍R̦݈Fc9s*stА94FTŜsChuK>[o`5eU5+V4:/,\UWk\4YtZ/>|+VMǽ]c3vM\ޣr΄>' ڌ7Mo4\oPluId>20s^ˌYĂ6/d3eiH,9EмY2eƢ"sEHe`Nqd/r{x$ab2!vIR$TEHUePFr$7{3x tMIZd֒5TW1#\ 0 Xo9m3 O3(F\Qaя<ɉd3!)VCP?d}|o>ў%K-w[W]c~e閶 JGnjOgJ cߗz-Nl!{5aM}gO:}k jv_[V67Y[3ޱuɫuYFz 1E$om:jyƛ=IM/Cx۠ZopU#C 3 }s* %D4&#ERfDT{KWO)93nmZYB0au{]tzlA-ن{SY.H!G%=y:cDcL~ 6y*]LȞj(17YYr)|8>~_s=^ bكndCa'V~Y񟾗\77ء^-o~غMVFVް]R)ĝȎ'mTll\d0( Dr~Rڦ`-8%ZPXHWN!7A$x=nK, SxKɞ(N*f+ -?K?al_kG.wy^`zn㡡 7c?s,fpPlrGaLvjĚ5;w8F],U[kʜm۸ǹs5\{l PMngz6,8-bR颌OlnaaV CXN gL0&mC[CZTuknSn09ݚ'UBTeR#pIU5ĂdVE1e 3&zC %"Hs@TKNv^!)wKf[@n[HmMޱ(?}nOvۏXq.ZyVq]}?d [66zClrvGמ^\'2At;w ҡ}m jAőq]?)+.G*6 >|azV| 9l$^J9r*Cq&șUjI'Ėw89X1HTR-kny㿬Wdd~MW5[_‚s 8낇]bMx -#W˼f?ni=|~gLY,rjLj>o97Ӵ` Xa^UUbOv*&"~/$57T,}ur`T0[ 3JW_&J 9&oQ]ID=v?Mݒд=%W䩯H?˙YEҘEȩ Xoŗ,3FQ`#h6cC6!rc]ܔ_gjbD+V|o z}AcCCCbCO֞hYY{ug~fwݻM.K$X|B )g0[ND КD Ms1F_897@Y{{+8&4"4*M*^xEp]c=_/ȇj3ژdX>Ʊx#bg |Ay͈9}áT*ݍ1Wx~kh'V@@ P3'Ħ{s\aKQ1 t[:(FDk+ 2w8.gk(l+_DQ.pO-SB Mz"hͫuue` BBDa/RH>4n.::K]Lm ZIfdX$ D%g68ˊ"wЭ"*cr*UORTt)U<Z;dרof_Yjd= ;t *5kW0.{b":Mj૳wׇ 6Tw:ڮ2WpA&RP`*0c2ږ^;>|V֚*$MUnoaS KN"ONU^0١LbaVw,f_Mo|R|hCs&O 7%%KZяM1k6^c'hLl.ۀmWa٠bljdjin]B<|16YtD"OIE^>QU5v_ڹ@p){`zO{ znkyXuopHEbl^ZCbe#z/>kkzR2l qʩɶ<ɞ)fN;tUA_ڏ:EySs1yzZ`䝰}?e-u(z|+̙ U2 ӥ8AN& vJ ܵN\>(?c.<4uC''s-̓.~7uc*\l jN<ʳ1Z. a=[WNc,^{BrBŅNͬ=cیؼw% 9D2UE1FDΈ5LmYZ0:VZOGc}}_b>q/֦vI(zEAh0QPSy\oEv:-B]Lj[3<._w15q!,냰R0+_̃(C!V- fw!L(L݅Np0+ԷL%)F^nbZLRݎxw/P^ B_O\U}ց{>-W] C;4-y$A5B=^ؕ@Y_d]xW<ܮZTo?M۩.(m `MklgmS\th=}طʟ( LτÚHGPh1ҭ'6{sUyeW[?՜񓺕uTMI4~/;A4T"{8hoS ?O1/WKFy4 4䙤Җl۰ֵlo$i^]4Oh=H$i4i(OC/xtݍ(bC/MLGFεB& i/ᴓB&9gHuAD& $}ܧie ?]7Dp!C#6NqM>}Sa Q'Ȝ(^G#C FR}7URuOXeNa)IpԺ9r$Dd~~)%ؗ{BXi]*Er@xr_iܺD=P#izi^)r2#KS]HmIՑP@Riw'uS0vr(rFcin'N7 WB.Z° d}:6!2WZƀ 5t s9')O[%)()lsx-|!0 ekL2i͐{ ^)Ѽ^'1loKF1KYz|0sanCJz|=Hx3~ Kih;SiG\x4^0 Cyx3kE\Xh+)$-:mV0#ư$ eɹ'i-RtL(4;=% mG\җz\^Iej$x"K]Is}uɜd)A9𥐒ƒSKKyYJ)ʗ>l+1RS? O %N5푹ȿsA4\;(XJRNۋ^5z.ˍiJg9w1e?fC$HNݛe.)_U2}\䦗?kEXDqBifiX bΤ}t.%%d!Pr|_~.?Oq1(AKjAF?0 W受)6OkG = I+ XG `S VU|\Z -*?3[5VĐwcȘ_}x 1ٙ )ai_LO0Y&KfC8LX;DB¢>x.LhVlΤtjpkgs*-,KmVoNHmM ,ZWӤЊ !s?ݿ1S|YhЈK/K{PhLv6'7v M=Lj0% HzJ-BBRu2!%zөmݐl*'P@0o0oyVf}a`OTXә$R}keE{wOBЛ29\nLg@*)ב$'.iph.hQ_j[z 9,6B ۺ{:-RM}2AX!$=!2u6:7ɏb[`oWZHuvCjB`0 @6%{.iaK hRC! LuRDl&IA}7?"gR}鞭)hd`|[ &6 ۃAuAqsiu?` u:+:CH4&oR$d_#(rXҙa@mgwr0 BnδaHO+9@r H;R;S@zz{2P@/$֓6eB]7CJ"l.M+9)y}O_*-Q` z@% H'{4YWOz79,vmM fzH[˺3x|۶mee@Ļ3{3}ͩ A e$_|q[P"}eYk6/j]&,ۼleд`Esez^KT!nJ:'tYڪh2@py+eɒ|OiK >H4J k$ C& ]RɶAR=%$m\@;ӿ)%){`d Ք{4+d S/?)lMQLSo W@2kI@I!=x"MdWWPJ)l)/R={dJHLg$L(o='Mʁ$poLe]ZǢGz!04-:MgjOn\o8?u0Bo>ILA?"I7F^~ǤaI?9[Z:mH2rzM0Djf 3kFsE &˫Q9CQS]W]^O;#yգtId80 \\nKڸcdbπ9>`ӃOV>=XA|zʧ+|zʧ+|zʧ+Ԕ12.{Y=c)ގ0: `΁y ٯ`9 CF=``ZI{= <@D Y:bk޽ ]Npp7_g .P _vp{ᙸ[!^Fv1xL w7n`1yt p7K.kǘOqc ہ81F)Min47TlK ``X{|LC4'7}p,Zax6׉ٍj8({I%Av$mƦ5y$45,\Hu]D7aP>0U`α@$ mV#dwr;\ba+PIZjŞu xz̀fD i(ٝ^%jTVvK$W(+׍^)Fg/()U*$%m~*fn@7cM:AЉ6£vUM`p::55`AukjP#"IL`XTL]& %΁.Y OzxÓR|54-iҰs`j%`4]&'wdl1%Xlhl}`Y,uuuu~?k[#Fc1xx$~=AOsۻ3K_­[ҿdv5MTP$1bis}`^"#0q0`(4q%jG`ցQ[G#hxxdi u`a!#|Gi(hx~? '<`r& עF0 Q+ѫ,mfQ0dd#TԗxPa! db j7R; [z0x lz|7IDI_ܤlȋLoS{K|^_?y_x=a=Om^L퐨gxMz0j <#ҜF 'K? ?Ϗ *jËhW+~ytJ}R+}B+Νc ^;Pi2M((Ȑ,K\9@zy50 Z>F!?…< R׀z䣮zYEDuNbÞ_?[xk|^59[:3 >9@ >9ZC,z_CeZAx|)R Z ה,i8-6@aSAp^4~S UI@OxJĐVO2HRUFAJ\5SUUʥW[&A֪jS3jΧ%&(9bsobHW fZe(sF@I.~B4`u;Owݾf n=ۉZ6פּvhUQF{enOK.ۋFmYzEkF+Bњ+Wb0N1YҼ筙J|$C !Ƒ$C>}Py-s\'4!( F*.:ɇ:a֋aCV0~0`VQg _ }< f16lGJ\CՀيDuEɍr6/܆ ;c&#L1zy|FV4!jפQ:DwHXhM";FQZ,DejGN! HDC!~o endstream endobj 34 0 obj 35348 endobj 35 0 obj <> endobj 36 0 obj <> stream x]͎0=OrkHd"e5 H ByR3:|q\l/ŷyla66pؼ%]LY%\y\{|v[GS_.pɟ~lx_%/:9󹙾4PC9WBnڐҎ]MMflU|߯0t={9۟KM,-K_c+4Yg+rżGߑ_4U3ך7ךfњߥ9yϱȦX 6Cdd+ZO!_k= 2胡_!'LlX[-[6[_X+IZ,~[KS35.asX~ - > endobj 38 0 obj <> stream xy|\ű0g}vMb u>n?+yPh={9z  n^|>B9Ođߓ+EnEKhGDANb ;p-"+I z;=?_ kc%b,¨t]3+'pY\n =.΍q?>K> +S&-^NUb'~(]!]%P3Oj@.I|=z `؏sJ\r|.>Gxߍ `DC!%W]Fk-69J<0]]{{{;}Us!Q~? //S)^1C,/ \QNߚ> sy YqbwPyd`րU7.&9Oǁ~?p#h_&g7q+r=O=hy<'sC_n>Kqށ~E|J>@xK vt?}.o i +$z}'8F27_k;%Eo# h"1"02]':,ВCPuKԎ.wK2?yer{ hąK< 1UUތ׃h}8= {Dž¿ ?KAW@ڬ_XkA( ޛPi؋f/Rg2\һ Coc]06_47#WQi] 6ydS;kOEi'_jzst.jF'Orgᇀ,Ԅ2QGLPabErq`IB0^,0<&DըPQgU-_9<4F`* =ZA˩W5զEq-)CA0qqq\b1:tp| c5dhGosf:5]uOs]3[ӹuLw㫚f鳹ZSߺذFMq|5 )әY њ 6(йVX8Z?*GN޽)W#hERTbM vɬL : NSŔRP&'M4/tS&(wjJe)})š8i--uedyk4y?;8?řV9?9joXhXIݪʶaiT6-n҉ tR?L M8DqU`>ni]z6H3&if%OP*M\N//8|wI wNk{w}@ݺ;2ܹ) [GɣZ't,yx 0N<B*mJh~4F4$ $>G# =H CUU+,U-B[No[sa>%s8$DLcA>C'vEA(pU8N57}W=zgr') KcQ> ,ޠc_'~MFB,cQt;Pޖ[Z mY~1YxD-[pKtvc뜲< g[/k-X~妇&y}bƪ5 f_Jnk(/*7ǟ鰙LkB8e K ^_y^㝖DŽGui3y5;^Bu+g=f|F|U[ _H v(&kxsP gU䂜ܨ&[DLng-duQ! oR@J&:oR@XuZ\5 BU%e j aArn܂!t) $E=1l8 wEdц\WUa=}{$]zuɎŋ蝇OpS򸀗-4 npZ洚bJBZY7z I'v, {:jJMY:yhJ F4w' !.>@b(f[S=RY(rWWUlT 23|@>[ZPKڜܹs\HDt88` ]<\_2q~>xUkd\ީgnffmƵOO۪ݡ %p?aC-DAxgy*5/'X@( ŐnÞ18<ĩ/x Zh\i4~aMR5dD*Ld2#A'RS'rqI|n>h0 H <.-帅(dlB0 q`&~5LR0dq͉c٫*`roܻGf=xH߿oQ]%?$߁sϕ|p877-35%9liv;vsZI'c+fv]\+d.J6v.ɠ*\A0]uj^SvվӾ~~. .Kx8尷7+4^xٓS: lԣ`9`PH;5 Ȣ(Sc%s3r7}K*/^>x$PFsVՕށ_?C@WW߾4KY!>-'Fu-pMmapػڛ'n!n(O`0uհ{eU!9f9/uoE2-o??| 1m^<22g3Hm 7Mf%\cQ3Na?mMs3+r5li!H!PsN\t2eΝRi s׏wYRCvgZ9;qlVܚ΢1>x׮[vwO4ߝ];߷{&N߯εn)pZ#V*ki#m+w"Ax*'V3e|B5ė|mk̍[;܊b=~VW//6]d8>]r( iJWDPG(>0(/oԛD Ai"Fx4j`~JbS%VG alWran *ZJZJd ˨GZ>'sO)ҿQZ aVJ A\!!ns>l#LB|wGE. )reYYK@, H]*4.+pn]wh%{؞30 do\ge{4A (ٵY]]kVz2JsQ0˳ْZۘk HYJbvkW븣`q'u ŬF ~5Yٴ|dԗ*{pͪϺx{֏~% FcpBskUT +gidgC+x'>9-PjJ1Ӝ VFO3A ԚX[秇`?=7Ue24/:VYtPYAM635'@]VJ RJ3GufjBoBQÚ8ՍbЂTKO=%mNgw粽H+V_,R*8 z-yC4689={oo WQ׏\Ɔ9cU݂/meܪ˂Qz] kMo(Qlbٶ޹ݜqt oYd>6w=˸Z2GF NH74.QfyekuӁ1&t18tcbK?uB`gՏA|$}M=3a+$rUw^3lžۉT<г Bݶǔ55B0$pŶ&Sf@n6$ ڰ@ cd/I0=?UVH+4 }½ҽ!>$R7:P[N :-'z酬^tNH5> KQ#N}P-h@屜>q%LSU\wi.(u`jI͡$?:K/R8x$ޚORmHyb\nܕIlc_5Ɲ$C#d1ln7_j.EuqsAޜc!a¥ <`&Qd4ovgcu.8oToHC}X?M&r><+MhN!. O' ;a@98rA&oِ-z6'u&‰pDRXDm:rYUJv,`Wrnx7wNŅguHxC:NCB6Ok(EBm=:-,jmڋu е.Z]w;›wto>FGڏuG CO _H'ӝ4AMЎ%e%-&-??̼ %:-(e2z ` :ՈI'NEbSԠbAdHIA6헱؛r^ {bpCB J C&Z}"V($X ZD#zX bX +b5' RidŎ1='УNJ͉8,6v$Hp$ cCZ] & mM4 {_;g>hY]3=t-eؓ ;t}TtՂ uJwa#/%ۧK\y5'%8xI+>CEze6}*![C }]pp""ht=6j,TEo)r)O+=]׸%BB;S[/cxrbM x; :dيtSz). d G͒O*8"r42^Ms5,|@7o~٥MD_}?$ĵ>:q~މxw ^lj/r'ծ0?#VVuyzlz"<^~t'0\k3(A]{ 6T[BŞ.Oش ,fzPDzZ]o{DI#[rFϸHdPa8(#˘r6}k(:%nɖoDΉ\r|$z/Q\5158σ@j'OH a7IE炚=66y=Us塌P ?j?VK#EH!/kuI'^F.>{Z{PwRιߣݫ5ݯ[O#eٕJ =DjGɅfmn+K6՜mInHd>.U$xQ9wiheo8Rq@>ے$τMc8JV GZ"X6,IC5!712OA"R @1ҥ g>KZĖ-U^Pa9ej!0;hu-H7 gYPB[Z`q!Mŵ[sX%|x}e=/ \DY>CLR R3 ܟ!칭kv]q;KK$<Eo$n|i!!$]ϴA8~G"+^9a*S̰d ђ@5gf!/rhQVHw9/WtEy ''tGtO^嵳,X'oaШQK)Өq1:Qd֮hy*?pR44)m%N)jD1Gg-e4iQCT/83u,u& f ^@_h1&an q'ݱr c\b t2{^ڒ4b sʴpz-Ը46oZL H8z4XM&sba.krѯE/==ye=jIKЫz,0I:tJ8;ot5m7'~HLSn#}z,'/`78u:LO y؀;ܡ/6cx+`h֭3jt:lͅ2ɼoE/Ls%We bߒ%pyg> t@1h2kqBc4xIuY5>h%<:љ%etFֻu^^7q$Q.";[٥^9m{0q+J Ӥ 4W }ÖXV&jаiR5ÖڒriN˸Kmþ;S㖶pNqG/EM@*ZԯTk^rh^м5{4DA;;Ysre`ÚQN] 'sŚ0@Rs+W3=s/hrS& <$7D^5w)Z0Y ]?K<4D܄sI$WZ@H+"OKZ;I:^ g!9&sILXVz?3dp (-[2ii_O샰{SWX#7hov<ǪKN$VAt'Ó xa!W!#7DD|5B:)] @Z \&ub%Lw S|LNH7" گ֣esx)%WϹ]\K;Ls"@Uwޢ?a1-5}`4|+"jhs<61U13rK(&_O'_aOXcT\0Eya;UX@nm]%# kP&wUX6IPaԪQܯy\M|S|Pa-*LoY*,Ra,=*, bJ%ɲG5(֢::.Sa=*M{b7oVYMh+`JKyu=`uTGNk ^t<>`D Z @)>'(Wa~0O W*)lHoWaZl] th;CQԁ" r}Z@Tdཨ`@}aPe˞8hBCS8Px%HXm PtAh6j57mg;`C{01ڿ8|205u40Ȧ:0+:ST[(XmC0Pjcͽ}['\vDzͱQ>"w8(Ȯ'葾(- ’d]eN;;Ҁ:^PlCRL-C١6* =¤L 2Pl\끮m)y{l+A{"}1Ee_\m۶ݪn.*{`cN|6 E6HV\~⚵KWW,]\bM\s꺺u+uFNԨ0A&3 Ud:MCjșQJ-A9zds4J5q dPMԌr4fvnRIGa;@|%e(l`i@{7 Bf/XԌ L2<%)bmHPdhXd4d&ly]퓳9 ;"Ebt>sôFcT'@+W.L̺TW;F'0m #uhSWl} RmSʫJŃhvqSscm^c:uǙe,OvvDSukj`țȗ+JKJu PYRZóbN\1ҨVOUq5I4ԙyrz F >: g~-5;{fVko^|߼67 ymko^|߼67 ?` BSjNzk 5YW>E$u:6I3_ YJ[}4;2}2}B~,}gљ|R5 Kgftm^gc+->UͿ(Wˣd.5:w/2c`ǹG-2egԜVX;P#$r4^􆑢Ҳՙ,=!ġaxbVV QGӜ+GVFp ksQ YA &S5[vxՀ^9 Ή ( R Ŝ9#x#ᤑ2 wVOv(;]IX;3tQlO[ \ bqG@G0^vsFڭofF-G g48 Dseh|]2F @~poB7btɒGB*QW ؜e59%"ʀ.~ y6/q !'Uȟ&hGyY >2:b,G$=5"#(Uj,=O~H@^@H }?L&#>[|7iMsd#TN>FFD)Z(ZQE+PE+E+hFhFF@(Q(@ PB (F ((FQ%@Q%(JQ@! 2B (dF! 2(,@aa(,g8GPaGP#P#d>p͏0Ì0@r@rX  H;!QqqgL Q8Pā"qF8Pā"(@8aaF1 @1 Ìb)$J?WҐq6W|嗡Y~)oGX-t/A,߆,X>|<08R/$ACzR+YYZ)핞^#1+ŽS xD$rM:12? ̞;)$DY͠jqg&az\^_(O py '8nR !UsgO\\~>+!?#T RH>VWMJr!!ttBlcjĈi8y@Hn dc#+!{v$wFA4 O=S#T9!kɝ y#?:)Z5_z@[5ˇ,40P&t*;5R`ķ_%֠\XDE=͹Q`NJww 3y1^/. Fjt}jӾGr}g|fn*@ulyBI||j_Kԏ=OD͸<:\ 3Xm)\_b[Mf@;@MrihEHhOQ4X^O3QuFcmv,3f8o81@[/dX7Q,c#P| m>֑(9*JJ98=oǞ8OtQ]2ZuQHv;7ˆa,غh|(_|isivznmӾhHRZ6VW5՜6uSc5U*Y 5UCǪcU+lƦ}Ept5߼i[H<!}9n,!ѦvFLSܗ-ďMM@DimlhW"g^anTPd 31?g P 5 J Z u'8jƒ& B!LnSDaУ7; 9l)fem4+_GS9Oi>ѿP4I劵=9{T  W?=#P{n#ŏph040)QxdS j ?Ƈ*? ~prAR(j M $q endstream endobj 39 0 obj 17216 endobj 40 0 obj <> endobj 41 0 obj <> stream x]n0@|!;,$]Դ@̐"cr뙡Cг=s/} %豅6\cnQTLlpʵӟ҇FQq Sy0Sr3ޯUG|B.=1S33W/=ˈJD^3տDf?\c+_Q.x1KWxw _`M1R?K>3=Z8o?c"9?"448߹,}0 endstream endobj 42 0 obj <> endobj 43 0 obj <> stream xܼ{`TŽ8>sξ_}d<6 @PD@#H$ZPQmڢDAVZbmmVQ{WI̜˲333g̲uh[7E͝<}Ž۷>) 7z?-7gN#ĕ"4uzNU=P7SPlzy_|?_9\BdsU_~ - AQ*O"tc;y>0=0I( d0|ȟ@)3F&jxr{>  G1 ?瑠]L!(o 4|kb9&$M\9yuWK}(BгaQ ΡH}ȏ\ayP"Ԏh!# [58Ztp%یl@AG"|tiamjzWLT]+LwsO0Z+^nh\j@oڇn@}>cG7MA4΢"܋?41jǯ|%a2]У8e| ,=ZSyf9Cyh{-z*Ы3ejo ͣX>uk[ WvL:ɝCQ =Dסѓe;'43=p;?ϼ^^ȚCoh9k7):m@ףy 8#0,FZ7Kk|o0>3l-f/i_i>w'x<<8'(BMk} *374h17aF1,.]Wߏ_ŧ91&bY\\˼˜cMfb`~٩-7Oh?Н' /{7hwݓ:<'\[TBB.Ws3臠_t6P Gzj>K2-kq7V )~?5!&fڙ˘a3073Xb[؍v='3MR3[3_I+5ڛjGIt&}]\a3_' )6}z_3$3 1E 4AZÌfGk̥g{ } }U־~{v2ab|\y Nט7=sZ ]5+o7ɯg]00.}?Ŋ8tN&?>i:Sx@GKp=~T.`A3 W@EDGA}b hB'p7ikj~G2tH@ߡ3`5Dp+0`UQ3ЁEV%ak- O_;5/zxY.@;^BMbG؆k>g=s5z4$W sz_,P;~ NNX/?8X9 C6FcL,azocXCpr ̂u#7^*'Z{Q,75j,TsْLq(LĥXT"P0y=na9b6 zV2HkőMR??KR'TtΨX;"BUmFĵxaKZnDKYi)Oļ؀%b$\IūssU(|VQ z#x2Һ@ڹ0cfSmʖLfxǰS= &5涌d#lk}ʖhtUd7֍ iMP3}͈yDO_#ՠJNeGf,]RW+GU wwi" h^ {+őV|%U0ek«o$.X1ׯZ9Wd%dURJq(͑z\H80.}<<-+HSPZ97 hQ,/|-y+}Ʃ:~F!ڜ@.,&3CEJ TCt`} 4UztEzGku&xIjYKz⾄<;dZ 8i#?8[zFmS/u<_ranwW'Ekgdmx2B/U5V[ *Wz7:/ =xٯiPc{z!!gF޸o`7SOz\^a+))ʔ$2%醊oTl >F3fD(ɗ4hJ榛` 765jDd䍌q?#rFFn\4> Y]Q{Qd3f˵(k?2ZYۮ]hj.ʹ |<1w=݁<<3c?~4?fv 9HbvGm-o54 *+n. I&pp20'k=,1cR[A|$5B´u5;|` B]B'ŒD%a^vK(v#>HuʮSZU3 qc+. .ziw{m&5o۾ڴ>gѻt7>ŕ2Ee-+_:8/Q>[ؼKv޲ sH3^V&f k\.}u,YffQlZqK 5i--vz;].lq59 ipwptN`%d@!4khAUm"j?Ae!^_,+Ow+4v7\]Yv|nigxdgV=U>G eqF\cS3gi;oXj%.qA} {شցp.zEm꘷Gvi[Ҷ()dNk. 4'ѠPȐrY{*i1Q9r)||0ØV{ C|O}Bdw,}A@B9,99ɡ&nQZ dzAɃSzV?(y/-b 7hi@HsN@ cb*&?A TxǙ3cci*m2)`-ydKxAJ&SŎ[f4U.ћ@-b%_315-M jtXS_A?vmh1Bm@Vf,c!ȦHs*8ApU?.F_eB+6;.4H1..8%INX\H2=):.,KsB$c٪k" 4 &UP_r9MeDb4'k"q1\q/Ϫ˙lߎƊsYxf_βr,}qsf`>59<{dlyGF\CdjN%TC KH5js1fwx;(+K'!.}<_ Z]i2,"XluD"\E-XSv(")`5A?v,KK KK'kktVA SDMɿuYa&VnU!eά993עhUb4e)G>U/lFؼ%wEooΦ'µA+άڽ'B,JxS샻7/_}M&+SN|sMM@B3RE=r-,0o:W D.`}cD!O8ȁ5UUȓS"YadH(4yzVX 5^ /:FûM P]CygAhE83|yΆ!PzNB_̵s,a{Eć1C1̎6,-T!"[Y99<` 9٣(V L^T^GelW|?Jqa (#d2Y0IlwM=n暰Ra2Vg|Zi7J2[Kjj&~b~v0&vO$a^JH1jxxKHĕJcqwv Ӄ ̋WW׬j1.`7u woņI6d 5thE­Q\t,t굣8rb6z=̠i\ٰ&xtM++I TRwJpT[T,<'P/_n.uMޚvF^H%?>'k/I_?l4j>&Րv[YtY0r ͎{0ƣEvy( B @Mp`o%ݞ8dF$fB.(G(+(s@*WšBaOHAWppd@@h0e#г_AMnNudA0A@yAvE n O0uUwzvvs=%aЛ( @s0 )4C !აؼX=JU^EHkZqhNvO!j#PVZT30q̏Cz./MyAk!H#ys" S/Q%DB,(*HdA%F'|+>GUzGkNZ/*kFy]b+LOIE.6:K>y bz|,Y =we|sw?S?yŒCrܾo_}qi+k.Zw$qhbP_Q.{"{&Ύ($yyゃ:ָ`/.! c셪[B:d$|ZeFf gax/ᄺJ͝^liaċobs-G#@-HD4En]x pLy Oyj,L>iV9?$gLW~)]$!M5 y ZgjUgV%t/? n]a2Ά(#(9=p0 (l%BTMBqAe~%T\HRTHk$jx~D(3 Fl,v]rtv Z΅E.%+J\[@e$eSE@@#$qBv$ˍYhơyINa4X'XlCdK8Jx&A'',:Z]Wy1/$%įVCAC<%WdHml4Sg𪩪EઊE u|H dAqiiqa"vclME7}/ŃL`TDJupaW BV8mV һSy' X@'v/ym٩2BP8w͸!HtZLRsSlhiOj|LGpA]t$aJG~C.r65Cڿ)7S T+gu'~:wvF\;awYKgal0p`QUym%&n;%ig=6h\5u.>DBMj hU;dy+Ȯ>4;qvWow/K$No8-2edGg(mJAN1erY{@LقK-rrҢK ҝAj,0 tǟ8dtp@uM|)ڴLiZ6-,]B1g"Fn,Nm>_ğ$TėNd@6BBvrFRM ID$hŸR{2׻n+vwñG]ߊ;1loULuWU+@loio,Xb+/+ۚ˫W I{|QZu/þiw,pԈ^Ӣ]"(wҝևOYhj+d}B c>a˞4dY,.&]z 1#c|xԁK13\ pH^<Kٞ?gL^HL#t7cΟ5?W3hkJRN?;?bVgC]'SziɮV~GzkM OgZ\_*5gv7uUݚ/sLb{uE{R#f ~D9eϩ=] <R¯tԉIT=),5Bʟ=r+1\Ote_!ۧmGml*ѶD6mHmdM=!0vޖW!HLhq 笟Hp˚} n|hu˄3Ѐ{{\ 2āxtB9nZq`tO:38tό}t E(=!CS7dG̬3l^ ;c$%0bƷ12fƼ[pv8ؼqCPϾI~<+!;cT3LmA=_?>p/DHkՋѧP蟀r]; bLN40sL00 E‚>PD h116y}>'vapPOconYI&z1$Yum {t1Gv)I?Ĉ(*Pk-qqnos]v.[pu75^MjO|aO;_m{#i9CM&1b1>If1lI;`C\bf=iNpI6 N4k aL~E0.(Sk{#PQ7 y!'fPVoP 0ד5zk |n +M[ux t0@=1eq)8B >1؛8&FS2/FG8SU<=O;k%Y% $>3NhqBmxkb"-ɿv`oz"wVf\|a@9gv2E¼P@є7Qm 2;ǟb bA6;af?f5ɷd(b \ ȋBa,[C֏ə"2z #V}&oEXa取Bh,Ae MMa[.V>[Y_W0aXVď f(fr&Y[sa\@.Ͷ ǍFefN;2w"*4II&u ~L4tE;͢3gȅ>~Lo$mc{M|:A=^r CX'O"@)rbG̻T2~ſȿ(o-94"qYguh51>H`#)*`Z19`au./$9'ɄtSicuy|iS5S'STsfڒoҎR[vI,茨ܵ;qFҹ.oyB!o]" hhe_gChZ%x3To1{{ Ss?k2U+uzqlژj-6>},ϏωZ>u1m[@(;jdH1<=ggNowX?M%yhEs$%a}Ow{Oi"VG^qz-kWI:"\{/W=]8|&X8ujp@dz !^UW-T=F0 U Be.bCM%=G[ʳܣuߪc/{) ru.˪'P.>/>}5b-v&s_vppʰ73%WX* : U u|VsVlMCʸ: LLI^h׆xkzV4&g1evz7`Ό%tPE⛷vp0֖tAeO_T/fU\[xx9I A^!-3SpAL&zu?S \ TfZ2̕׼1reAcV&;@I:=ީ[ƅTZ]u/䥚UyOS<̖ugdⶹ}m.]R/HKYh֕sY/ݛ2 5bu+r{pms4`qzD\47]mkGVm0'CXL]b[wZ?w8b87"<8^RIq|8Dl3 &Y0yB^ `t.-IBNXw'Wk悎<]⬑pl4 (LFm _E/>>֤oaE|)0O91&Fج?s7~DtР/@>byp& iJ*`᫫f~ͨ%eOe|au~}?V'Ϲ}?] [k;bxg6b!4c&\cmzT ZVg;&5ISҜ,e[MKLM7lsOh0yMYY&]1 ŒJJF"T8acc؀wZ0?օ1I>XZ8l'#9Cck +lD]RgpjlZR@E86ds u3jLz v77i#uÎO܊d켨N3TV-HM)/37(4WmÛLZw=9ŦWi`-KK9t1{^,]yOj4yzzWjW:VD6k7=MMޮa;q3Nԭ;3Bo)㒤Τ3l^kD\{nmp؝NdA}Ӥp*S$qP^3szoRLIytrQ;ˈrJLII At"# B@1a,f.ŁV`a$t`E'c3)!# 5h$yA 2eFLf(Ht`M`8-m"wZ?HDƩI㤑-5v#kgs Oxºo<Qѡl'OʆEo~0ZEmL`kJ(^dj#`nT7d\^*Sةm?D&ś"<~&wU YݹG!1ܝm֗L܎7n{=>?IU~fOΨ'>3x/-s'1q9sz3wf~i.n66&䏸9p$`GԜWs HV d4L֢Mg6qwӲòʳ#=q q;&r%5ޔмkfY z+,&()Gq1LWݲ,t:lTQik^)[K P7B6 :Β?9ImLy84D g! 4M$Cab*K2'DRH Ct@129y8e2q~x@O>+艟[y{Q/R:bx*<$9Sg_}ﶢ;x}ىWCߛrlEWq%Z0+y|w^oxeog:6u6 t~>c|TX-}yҤdv by :;==ާl?,z"VrMJe1J6 '1A bb1FK>Ø+F^$aR`KKҁåRrˢ1n/WճgY3-2rd2aKcQcʒG\ ?ʐ3`pItQyY$ee3I@%̷Ϯrw[2,Tnm: DnxK5&}D.'^<>>0sVO4-ỵb`C_~}Wqi3\ڛLwwnw?>d҉\^՚X m_|x\Z Fzfz$%n?ֆuQ1IX,z+rnɸ֫z:r4Y,43~iV7:N*8y63M5̞̭{2ugszr@ƨ/Wc G}v|]~'cc S?P|΀Ԝ t&3H.1!~IQG;5Hg8'5[dҶY[?'f}ܧ8(ZS09'O{|\_v\96lK-9CFyg]k7W_&Z=>hkTJOhAN7¿?@A B3$C^"#h1NaEŚa %73;).qgshѮ1( y,>nPA+!C>W{v]-jړ M0C[[w4hu?Nޱ,eܯ8|zϽ}=uE1O %%`̬<# Q?udk4ROД"^RaϒT ?z>|& v ѐ*lAUت;f iΰqY* } ޮߠZdYuc@-6 HQ&ϪպKj{jnVvK*lC90!X*A9Z7WSX:TX)'t?@ w)lzm֠6* * g07آ0f1@U 074.o8@* UR }U[|MWo0xfwd*A,-d-5* lp~V֠=8/0v8Up^⧰̧Ia>%mvCd kPDyNIW('Ugw d0@vd>* ^CaPI{^qUx G * )8MkVala9:]Wn zʟ3*L_0K*L;hu \Dw9pG[Um%f( LN-D9#g&I6f㨼 §eUΆ}_}6^x%h7wʹNDK AC]'?Ss_= Ց@*"0OO#qWzxX]ߤ#gnm:2{P 酷nk tLlUG*ŒI,'y_K(} InuνG-wR?i)v;6NW,ɭt}PS]jV[iSLnk"ZAC{)xr'ZGGgw^><(Dx}B-V=H} \ )EoO]DΧ-T} ]0byf׬yZTVxkJ:N3Zvj>^UFE\'{)NtSMj#SPtOhN:^U+4U^g.i+hFP2zhߞK9N??ޔw+y[C[ŃF1N^2ܽYՒ P6يOSn*(f=O`>?2Y_?T[B%B Sd[ũ>MG[ :? G=Oa꿭SK3gԭZ­`{F lD*EP5Ė"ePB\o)";DEjRxZO *\ 1D5U*! _2S޴=\s{CnaqyOֿ+TCC[{}sέK<Lol~eYHs>ލ=[ŋww-=,.!^Կs˜>L$Vt וjŢC^msxL_oZ^ˇ:7wm7ӵC{vuw[ĭέbR\&.ݰ!'vnw@HC=;gVus:wnHA[;u9 o)W?$.޲P[QwBܹ[:E C[΁Nu9ɲom1<9=T"n7]#nwt]ýtwDqVjs)^߿[M#?5,n o[{xxö>:n+dpb=,Gؘ!K@Nk',X%[A~eNNۓizn&’HW=Csuvrפ#KeKz6e{!3]{߽;zG aO}\;diX-9}4 p,+g9O oŢl"81 _UcQ*R4%cЎ ♻^+w8rK0ZiHw7P25ۃ`" %X簞fT䨆:Q,m@ .%½q'O/0-&Z?GHO8 G‰Q8NG:N h(*DGg}A,d2IO4z(. q*bAzE{98G/Fξ`,sH$뫪9R9Kd%Jj 1L_tLC=䃷x$(TtnؽMӢݷ׶ߧy}mJR QX:d |-+fƔ-^~$썎S^iP찀AǂAJ j,V'@z7iGq`XT^XҲ"+;EH(FyC.Oż2m$ISJ &nԮǎN> )w&Dp75dx >&璏 s.p|_9W : =DXQM/\nv$;09 q 74Pn\&Yc0.(>>}JOs{爰 ]|b\ԡ[!+n~z{ڍZ溊z[kjjlW ~Ǯ7#?ʅ'xS\M7[53:AK- CdZ"$Ep,[*xz1`-= Zz@hDK-= Zz@hDK? O&L~wpt}zGEOrQk+.E5Z%D}з;7ϵr4>-Z]8"ޓZ\ft{N )P3bns->ߛ604 NCab~۷lV9i3z/ [s؇n#+7`ԊEtqd}D~}9rm̵i|.OY)$otvZYKEVsmuz#pz \bpZ{8oI$^e3E+]di2 IG@2Yf,_!hOƜıW2+Ws?gE+,ު72Ww !r=C> }).2_[xmOI5HFRDM!zXXXˈ21~_SE/a@ <#vd2I}4_#{G2 ] gy$# 5%D+_P<,LH})"epa;p42ց9t x{U4EʻY,݅(1ߛAcmEmOE{h[U=EĄۘjջ;EӔ)X5 E3#jKE1֋)mU3XQ}%vnIP dBwa!]dNm6r DUͤ$Uh识n U8{@ݠqI4*(?5T >Jf)PnB'F>41^#cҘGϹgWO]x"=W1[qzߥeP*A#(ORJhjm6)Yv35iN3e)q8gj\n6ǍƓFWא1z7ԓ)L'D"Fg8vѲW [?n|q ^͏AV_G0H_-.˖r\&ri|\NOz E dEH2 ,QArM2絘EP+,̡ߕ$$,4!ڝ>->؄l 6/ΑN_#%MK-Em=\k95dm;;o1ɇwZӤљNN5ܕi;Vw&__UwƎqcuW[ ma0iZ5Jii#dF6`tnj\mvcCɣ/t]ƔC /–C. > endobj 46 0 obj <> stream x]n0E|";< !%$H,P~!E*2d3RwOX֧ZKjYmA\6@* Wߎ B{YZSۛ͡/;|܍"(D;1!umm˺u-ՀPN̦i6AEȫ@wv\.*]4pS#Ψ9L2W#O{Sr=|fLy3%g&?:K)IKdOc:cʰ1ս KU?^ ޅb][k9ޭuCJ32hg37h endstream endobj 47 0 obj <> endobj 48 0 obj <> endobj 49 0 obj <> endobj 1 0 obj <>/Contents 2 0 R>> endobj 4 0 obj <>/Contents 5 0 R>> endobj 7 0 obj <>/Contents 8 0 R>> endobj 10 0 obj <>/Contents 11 0 R>> endobj 13 0 obj <>/Contents 14 0 R>> endobj 16 0 obj <>/Contents 17 0 R>> endobj 19 0 obj <>/Contents 20 0 R>> endobj 22 0 obj <>/Contents 23 0 R>> endobj 50 0 obj <> endobj 51 0 obj < /Dest[1 0 R/XYZ 64.1 723.3 0]/Parent 50 0 R/Next 52 0 R>> endobj 52 0 obj < /Dest[1 0 R/XYZ 56.7 521.2 0]/Parent 50 0 R/Prev 51 0 R/Next 53 0 R>> endobj 53 0 obj < /Dest[1 0 R/XYZ 56.7 325.9 0]/Parent 50 0 R/Prev 52 0 R/Next 54 0 R>> endobj 54 0 obj < /Dest[16 0 R/XYZ 56.7 612.9 0]/Parent 50 0 R/Prev 53 0 R/Next 57 0 R>> endobj 55 0 obj < /Dest[16 0 R/XYZ 56.7 438.3 0]/Parent 54 0 R/Next 56 0 R>> endobj 56 0 obj < /Dest[16 0 R/XYZ 56.7 266.2 0]/Parent 54 0 R/Prev 55 0 R>> endobj 57 0 obj < /Dest[16 0 R/XYZ 56.7 190.8 0]/Parent 50 0 R/Prev 54 0 R/Next 58 0 R>> endobj 58 0 obj < /Dest[19 0 R/XYZ 56.7 735.3 0]/Parent 50 0 R/Prev 57 0 R/Next 59 0 R>> endobj 59 0 obj < /Dest[19 0 R/XYZ 56.7 519.4 0]/Parent 50 0 R/Prev 58 0 R/Next 60 0 R>> endobj 60 0 obj < /Dest[19 0 R/XYZ 56.7 372.4 0]/Parent 50 0 R/Prev 59 0 R/Next 61 0 R>> endobj 61 0 obj < /Dest[19 0 R/XYZ 56.7 142.7 0]/Parent 50 0 R/Prev 60 0 R/Next 62 0 R>> endobj 62 0 obj < /Dest[22 0 R/XYZ 56.7 599.1 0]/Parent 50 0 R/Prev 61 0 R/Next 63 0 R>> endobj 63 0 obj < /Dest[22 0 R/XYZ 56.7 466 0]/Parent 50 0 R/Prev 62 0 R/Next 64 0 R>> endobj 64 0 obj < /Dest[22 0 R/XYZ 56.7 319 0]/Parent 50 0 R/Prev 63 0 R>> endobj 27 0 obj <> endobj 25 0 obj <> >> endobj 26 0 obj <> >> endobj 65 0 obj <> endobj 66 0 obj < /Producer /CreationDate(D:20130410105435+02'00')>> endobj xref 0 67 0000000000 65535 f 0000107185 00000 n 0000000019 00000 n 0000003210 00000 n 0000107354 00000 n 0000003231 00000 n 0000006762 00000 n 0000107498 00000 n 0000006783 00000 n 0000010440 00000 n 0000107642 00000 n 0000010461 00000 n 0000013890 00000 n 0000107788 00000 n 0000013912 00000 n 0000017208 00000 n 0000107934 00000 n 0000017230 00000 n 0000020121 00000 n 0000108080 00000 n 0000020143 00000 n 0000023621 00000 n 0000108226 00000 n 0000023643 00000 n 0000026486 00000 n 0000111401 00000 n 0000111572 00000 n 0000111254 00000 n 0000026508 00000 n 0000027753 00000 n 0000027775 00000 n 0000027967 00000 n 0000028265 00000 n 0000028430 00000 n 0000063865 00000 n 0000063888 00000 n 0000064089 00000 n 0000064746 00000 n 0000065247 00000 n 0000082550 00000 n 0000082573 00000 n 0000082769 00000 n 0000083218 00000 n 0000083518 00000 n 0000106063 00000 n 0000106086 00000 n 0000106292 00000 n 0000106749 00000 n 0000107067 00000 n 0000107130 00000 n 0000108372 00000 n 0000108429 00000 n 0000108771 00000 n 0000109053 00000 n 0000109187 00000 n 0000109364 00000 n 0000109523 00000 n 0000109678 00000 n 0000109865 00000 n 0000110064 00000 n 0000110239 00000 n 0000110422 00000 n 0000110721 00000 n 0000110900 00000 n 0000111137 00000 n 0000111723 00000 n 0000111838 00000 n trailer < <89FC6F04300B6E8ED9934F9B45E9CAF2> ] /DocChecksum /E1E4FDF77DCC29BAD8057DE758DBA872 >> startxref 112013 %%EOF ./ldapsend.pas0000644000175000017500000011444014576573021013452 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 001.007.001 | |==============================================================================| | Content: LDAP client | |==============================================================================| | Copyright (c)1999-2014, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2003-2014. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@abstract(LDAP client) Used RFC: RFC-2251, RFC-2254, RFC-2696, RFC-2829, RFC-2830 } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} {$IFDEF UNICODE} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$ENDIF} unit ldapsend; interface uses SysUtils, Classes, blcksock, synautil, asn1util, synacode; const cLDAPProtocol = '389'; LDAP_ASN1_BIND_REQUEST = $60; LDAP_ASN1_BIND_RESPONSE = $61; LDAP_ASN1_UNBIND_REQUEST = $42; LDAP_ASN1_SEARCH_REQUEST = $63; LDAP_ASN1_SEARCH_ENTRY = $64; LDAP_ASN1_SEARCH_DONE = $65; LDAP_ASN1_SEARCH_REFERENCE = $73; LDAP_ASN1_MODIFY_REQUEST = $66; LDAP_ASN1_MODIFY_RESPONSE = $67; LDAP_ASN1_ADD_REQUEST = $68; LDAP_ASN1_ADD_RESPONSE = $69; LDAP_ASN1_DEL_REQUEST = $4A; LDAP_ASN1_DEL_RESPONSE = $6B; LDAP_ASN1_MODIFYDN_REQUEST = $6C; LDAP_ASN1_MODIFYDN_RESPONSE = $6D; LDAP_ASN1_COMPARE_REQUEST = $6E; LDAP_ASN1_COMPARE_RESPONSE = $6F; LDAP_ASN1_ABANDON_REQUEST = $70; LDAP_ASN1_EXT_REQUEST = $77; LDAP_ASN1_EXT_RESPONSE = $78; LDAP_ASN1_CONTROLS = $A0; type {:@abstract(LDAP attribute with list of their values) This class holding name of LDAP attribute and list of their values. This is descendant of TStringList class enhanced by some new properties.} TLDAPAttribute = class(TStringList) private FAttributeName: AnsiString; FIsBinary: Boolean; protected function Get(Index: integer): string; override; procedure Put(Index: integer; const Value: string); override; procedure SetAttributeName(Value: AnsiString); public function Add(const S: string): Integer; override; published {:Name of LDAP attribute.} property AttributeName: AnsiString read FAttributeName Write SetAttributeName; {:Return @true when attribute contains binary data.} property IsBinary: Boolean read FIsBinary; end; {:@abstract(List of @link(TLDAPAttribute)) This object can hold list of TLDAPAttribute objects.} TLDAPAttributeList = class(TObject) private FAttributeList: TList; function GetAttribute(Index: integer): TLDAPAttribute; public constructor Create; destructor Destroy; override; {:Clear list.} procedure Clear; {:Return count of TLDAPAttribute objects in list.} function Count: integer; {:Add new TLDAPAttribute object to list.} function Add: TLDAPAttribute; {:Delete one TLDAPAttribute object from list.} procedure Del(Index: integer); {:Find and return attribute with requested name. Returns nil if not found.} function Find(AttributeName: AnsiString): TLDAPAttribute; {:Find and return attribute value with requested name. Returns empty string if not found.} function Get(AttributeName: AnsiString): string; {:List of TLDAPAttribute objects.} property Items[Index: Integer]: TLDAPAttribute read GetAttribute; default; end; {:@abstract(LDAP result object) This object can hold LDAP object. (their name and all their attributes with values)} TLDAPResult = class(TObject) private FObjectName: AnsiString; FAttributes: TLDAPAttributeList; public constructor Create; destructor Destroy; override; published {:Name of this LDAP object.} property ObjectName: AnsiString read FObjectName write FObjectName; {:Here is list of object attributes.} property Attributes: TLDAPAttributeList read FAttributes; end; {:@abstract(List of LDAP result objects) This object can hold list of LDAP objects. (for example result of LDAP SEARCH.)} TLDAPResultList = class(TObject) private FResultList: TList; function GetResult(Index: integer): TLDAPResult; public constructor Create; destructor Destroy; override; {:Clear all TLDAPResult objects in list.} procedure Clear; {:Return count of TLDAPResult objects in list.} function Count: integer; {:Create and add new TLDAPResult object to list.} function Add: TLDAPResult; {:List of TLDAPResult objects.} property Items[Index: Integer]: TLDAPResult read GetResult; default; end; {:Define possible operations for LDAP MODIFY operations.} TLDAPModifyOp = ( MO_Add, MO_Delete, MO_Replace ); {:Specify possible values for search scope.} TLDAPSearchScope = ( SS_BaseObject, SS_SingleLevel, SS_WholeSubtree ); {:Specify possible values about alias dereferencing.} TLDAPSearchAliases = ( SA_NeverDeref, SA_InSearching, SA_FindingBaseObj, SA_Always ); {:@abstract(Implementation of LDAP client) (version 2 and 3) Note: Are you missing properties for setting Username and Password? Look to parent @link(TSynaClient) object! Are you missing properties for specify server address and port? Look to parent @link(TSynaClient) too!} TLDAPSend = class(TSynaClient) private FSock: TTCPBlockSocket; FResultCode: Integer; FResultString: AnsiString; FFullResult: AnsiString; FAutoTLS: Boolean; FFullSSL: Boolean; FSeq: integer; FResponseCode: integer; FResponseDN: AnsiString; FReferals: TStringList; FVersion: integer; FSearchScope: TLDAPSearchScope; FSearchAliases: TLDAPSearchAliases; FSearchSizeLimit: integer; FSearchTimeLimit: integer; FSearchPageSize: integer; FSearchCookie: AnsiString; FSearchResult: TLDAPResultList; FExtName: AnsiString; FExtValue: AnsiString; function Connect: Boolean; function BuildPacket(const Value: AnsiString): AnsiString; function ReceiveResponse: AnsiString; function DecodeResponse(const Value: AnsiString): AnsiString; function LdapSasl(Value: AnsiString): AnsiString; function TranslateFilter(Value: AnsiString): AnsiString; function GetErrorString(Value: integer): AnsiString; public constructor Create; destructor Destroy; override; {:Try to connect to LDAP server and start secure channel, when it is required.} function Login: Boolean; {:Try to bind to LDAP server with @link(TSynaClient.Username) and @link(TSynaClient.Password). If this is empty strings, then it do annonymous Bind. When you not call Bind on LDAPv3, then is automaticly used anonymous mode. This method using plaintext transport of password! It is not secure!} function Bind: Boolean; {:Try to bind to LDAP server with @link(TSynaClient.Username) and @link(TSynaClient.Password). If this is empty strings, then it do annonymous Bind. When you not call Bind on LDAPv3, then is automaticly used anonymous mode. This method using SASL with DIGEST-MD5 method for secure transfer of your password.} function BindSasl: Boolean; {:Close connection to LDAP server.} function Logout: Boolean; {:Modify content of LDAP attribute on this object.} function Modify(obj: AnsiString; Op: TLDAPModifyOp; const Value: TLDAPAttribute): Boolean; {:Add list of attributes to specified object.} function Add(obj: AnsiString; const Value: TLDAPAttributeList): Boolean; {:Delete this LDAP object from server.} function Delete(obj: AnsiString): Boolean; {:Modify object name of this LDAP object.} function ModifyDN(obj, newRDN, newSuperior: AnsiString; DeleteoldRDN: Boolean): Boolean; {:Try to compare Attribute value with this LDAP object.} function Compare(obj, AttributeValue: AnsiString): Boolean; {:Search LDAP base for LDAP objects by Filter.} function Search(obj: AnsiString; TypesOnly: Boolean; Filter: AnsiString; const Attributes: TStrings): Boolean; {:Call any LDAPv3 extended command.} function Extended(const Name, Value: AnsiString): Boolean; {:Try to start SSL/TLS connection to LDAP server.} function StartTLS: Boolean; published {:Specify version of used LDAP protocol. Default value is 3.} property Version: integer read FVersion Write FVersion; {:Result code of last LDAP operation.} property ResultCode: Integer read FResultCode; {:Human readable description of result code of last LDAP operation.} property ResultString: AnsiString read FResultString; {:Binary string with full last response of LDAP server. This string is encoded by ASN.1 BER encoding! You need this only for debugging.} property FullResult: AnsiString read FFullResult; {:If @true, then try to start TSL mode in Login procedure.} property AutoTLS: Boolean read FAutoTLS Write FAutoTLS; {:If @true, then use connection to LDAP server through SSL/TLS tunnel.} property FullSSL: Boolean read FFullSSL Write FFullSSL; {:Sequence number of last LDAp command. It is incremented by any LDAP command.} property Seq: integer read FSeq; {:Specify what search scope is used in search command.} property SearchScope: TLDAPSearchScope read FSearchScope Write FSearchScope; {:Specify how to handle aliases in search command.} property SearchAliases: TLDAPSearchAliases read FSearchAliases Write FSearchAliases; {:Specify result size limit in search command. Value 0 means without limit.} property SearchSizeLimit: integer read FSearchSizeLimit Write FSearchSizeLimit; {:Specify search time limit in search command (seconds). Value 0 means without limit.} property SearchTimeLimit: integer read FSearchTimeLimit Write FSearchTimeLimit; {:Specify number of results to return per search request. Value 0 means no paging.} property SearchPageSize: integer read FSearchPageSize Write FSearchPageSize; {:Cookie returned by paged search results. Use an empty string for the first search request.} property SearchCookie: AnsiString read FSearchCookie Write FSearchCookie; {:Here is result of search command.} property SearchResult: TLDAPResultList read FSearchResult; {:On each LDAP operation can LDAP server return some referals URLs. Here is their list.} property Referals: TStringList read FReferals; {:When you call @link(Extended) operation, then here is result Name returned by server.} property ExtName: AnsiString read FExtName; {:When you call @link(Extended) operation, then here is result Value returned by server.} property ExtValue: AnsiString read FExtValue; {:TCP socket used by all LDAP operations.} property Sock: TTCPBlockSocket read FSock; end; {:Dump result of LDAP SEARCH into human readable form. Good for debugging.} function LDAPResultDump(const Value: TLDAPResultList): AnsiString; implementation {==============================================================================} function TLDAPAttribute.Add(const S: string): Integer; begin Result := inherited Add(''); Put(Result,S); end; function TLDAPAttribute.Get(Index: integer): string; begin Result := inherited Get(Index); if FIsbinary then Result := DecodeBase64(Result); end; procedure TLDAPAttribute.Put(Index: integer; const Value: string); var s: AnsiString; begin s := Value; if FIsbinary then s := EncodeBase64(Value) else s :=UnquoteStr(s, '"'); inherited Put(Index, s); end; procedure TLDAPAttribute.SetAttributeName(Value: AnsiString); begin FAttributeName := Value; FIsBinary := Pos(';binary', Lowercase(value)) > 0; end; {==============================================================================} constructor TLDAPAttributeList.Create; begin inherited Create; FAttributeList := TList.Create; end; destructor TLDAPAttributeList.Destroy; begin Clear; FAttributeList.Free; inherited Destroy; end; procedure TLDAPAttributeList.Clear; var n: integer; x: TLDAPAttribute; begin for n := Count - 1 downto 0 do begin x := GetAttribute(n); if Assigned(x) then x.Free; end; FAttributeList.Clear; end; function TLDAPAttributeList.Count: integer; begin Result := FAttributeList.Count; end; function TLDAPAttributeList.Get(AttributeName: AnsiString): string; var x: TLDAPAttribute; begin Result := ''; x := self.Find(AttributeName); if x <> nil then if x.Count > 0 then Result := x[0]; end; function TLDAPAttributeList.GetAttribute(Index: integer): TLDAPAttribute; begin Result := nil; if Index < Count then Result := TLDAPAttribute(FAttributeList[Index]); end; function TLDAPAttributeList.Add: TLDAPAttribute; begin Result := TLDAPAttribute.Create; FAttributeList.Add(Result); end; procedure TLDAPAttributeList.Del(Index: integer); var x: TLDAPAttribute; begin x := GetAttribute(Index); if Assigned(x) then x.free; FAttributeList.Delete(Index); end; function TLDAPAttributeList.Find(AttributeName: AnsiString): TLDAPAttribute; var n: integer; x: TLDAPAttribute; begin Result := nil; AttributeName := lowercase(AttributeName); for n := 0 to Count - 1 do begin x := GetAttribute(n); if Assigned(x) then if lowercase(x.AttributeName) = Attributename then begin result := x; break; end; end; end; {==============================================================================} constructor TLDAPResult.Create; begin inherited Create; FAttributes := TLDAPAttributeList.Create; end; destructor TLDAPResult.Destroy; begin FAttributes.Free; inherited Destroy; end; {==============================================================================} constructor TLDAPResultList.Create; begin inherited Create; FResultList := TList.Create; end; destructor TLDAPResultList.Destroy; begin Clear; FResultList.Free; inherited Destroy; end; procedure TLDAPResultList.Clear; var n: integer; x: TLDAPResult; begin for n := Count - 1 downto 0 do begin x := GetResult(n); if Assigned(x) then x.Free; end; FResultList.Clear; end; function TLDAPResultList.Count: integer; begin Result := FResultList.Count; end; function TLDAPResultList.GetResult(Index: integer): TLDAPResult; begin Result := nil; if Index < Count then Result := TLDAPResult(FResultList[Index]); end; function TLDAPResultList.Add: TLDAPResult; begin Result := TLDAPResult.Create; FResultList.Add(Result); end; {==============================================================================} constructor TLDAPSend.Create; begin inherited Create; FReferals := TStringList.Create; FFullResult := ''; FSock := TTCPBlockSocket.Create; FSock.Owner := self; FTimeout := 60000; FTargetPort := cLDAPProtocol; FAutoTLS := False; FFullSSL := False; FSeq := 0; FVersion := 3; FSearchScope := SS_WholeSubtree; FSearchAliases := SA_Always; FSearchSizeLimit := 0; FSearchTimeLimit := 0; FSearchPageSize := 0; FSearchCookie := ''; FSearchResult := TLDAPResultList.Create; end; destructor TLDAPSend.Destroy; begin FSock.Free; FSearchResult.Free; FReferals.Free; inherited Destroy; end; function TLDAPSend.GetErrorString(Value: integer): AnsiString; begin case Value of 0: Result := 'Success'; 1: Result := 'Operations error'; 2: Result := 'Protocol error'; 3: Result := 'Time limit Exceeded'; 4: Result := 'Size limit Exceeded'; 5: Result := 'Compare FALSE'; 6: Result := 'Compare TRUE'; 7: Result := 'Auth method not supported'; 8: Result := 'Strong auth required'; 9: Result := '-- reserved --'; 10: Result := 'Referal'; 11: Result := 'Admin limit exceeded'; 12: Result := 'Unavailable critical extension'; 13: Result := 'Confidentality required'; 14: Result := 'Sasl bind in progress'; 16: Result := 'No such attribute'; 17: Result := 'Undefined attribute type'; 18: Result := 'Inappropriate matching'; 19: Result := 'Constraint violation'; 20: Result := 'Attribute or value exists'; 21: Result := 'Invalid attribute syntax'; 32: Result := 'No such object'; 33: Result := 'Alias problem'; 34: Result := 'Invalid DN syntax'; 36: Result := 'Alias dereferencing problem'; 48: Result := 'Inappropriate authentication'; 49: Result := 'Invalid credentials'; 50: Result := 'Insufficient access rights'; 51: Result := 'Busy'; 52: Result := 'Unavailable'; 53: Result := 'Unwilling to perform'; 54: Result := 'Loop detect'; 64: Result := 'Naming violation'; 65: Result := 'Object class violation'; 66: Result := 'Not allowed on non leaf'; 67: Result := 'Not allowed on RDN'; 68: Result := 'Entry already exists'; 69: Result := 'Object class mods prohibited'; 71: Result := 'Affects multiple DSAs'; 80: Result := 'Other'; else Result := '--unknown--'; end; end; function TLDAPSend.Connect: Boolean; begin // Do not call this function! It is calling by LOGIN method! FSock.CloseSocket; FSock.LineBuffer := ''; FSeq := 0; FSock.Bind(FIPInterface, cAnyPort); if FSock.LastError = 0 then FSock.Connect(FTargetHost, FTargetPort); if FSock.LastError = 0 then if FFullSSL then FSock.SSLDoConnect; Result := FSock.LastError = 0; end; function TLDAPSend.BuildPacket(const Value: AnsiString): AnsiString; begin Inc(FSeq); Result := ASNObject(ASNObject(ASNEncInt(FSeq), ASN1_INT) + Value, ASN1_SEQ); end; function TLDAPSend.ReceiveResponse: AnsiString; var x: Byte; i,j: integer; begin Result := ''; FFullResult := ''; x := FSock.RecvByte(FTimeout); if x <> ASN1_SEQ then Exit; Result := AnsiChar(x); x := FSock.RecvByte(FTimeout); Result := Result + AnsiChar(x); if x < $80 then i := 0 else i := x and $7F; if i > 0 then Result := Result + FSock.RecvBufferStr(i, Ftimeout); if FSock.LastError <> 0 then begin Result := ''; Exit; end; //get length of LDAP packet j := 2; i := ASNDecLen(j, Result); //retreive rest of LDAP packet if i > 0 then Result := Result + FSock.RecvBufferStr(i, Ftimeout); if FSock.LastError <> 0 then begin Result := ''; Exit; end; FFullResult := Result; end; function TLDAPSend.DecodeResponse(const Value: AnsiString): AnsiString; var i, x: integer; Svt: Integer; s, t: AnsiString; begin Result := ''; FResultCode := -1; FResultstring := ''; FResponseCode := -1; FResponseDN := ''; FReferals.Clear; i := 1; ASNItem(i, Value, Svt); x := StrToIntDef(ASNItem(i, Value, Svt), 0); if (svt <> ASN1_INT) or (x <> FSeq) then Exit; s := ASNItem(i, Value, Svt); FResponseCode := svt; if FResponseCode in [LDAP_ASN1_BIND_RESPONSE, LDAP_ASN1_SEARCH_DONE, LDAP_ASN1_MODIFY_RESPONSE, LDAP_ASN1_ADD_RESPONSE, LDAP_ASN1_DEL_RESPONSE, LDAP_ASN1_MODIFYDN_RESPONSE, LDAP_ASN1_COMPARE_RESPONSE, LDAP_ASN1_EXT_RESPONSE] then begin FResultCode := StrToIntDef(ASNItem(i, Value, Svt), -1); FResponseDN := ASNItem(i, Value, Svt); FResultString := ASNItem(i, Value, Svt); if FResultString = '' then FResultString := GetErrorString(FResultCode); if FResultCode = 10 then begin s := ASNItem(i, Value, Svt); if svt = $A3 then begin x := 1; while x < Length(s) do begin t := ASNItem(x, s, Svt); FReferals.Add(t); end; end; end; end; Result := Copy(Value, i, Length(Value) - i + 1); end; function TLDAPSend.LdapSasl(Value: AnsiString): AnsiString; var nonce, cnonce, nc, realm, qop, uri, response: AnsiString; s: AnsiString; a1, a2: AnsiString; l: TStringList; n: integer; begin l := TStringList.Create; try nonce := ''; realm := ''; l.CommaText := Value; n := IndexByBegin('nonce=', l); if n >= 0 then nonce := UnQuoteStr(Trim(SeparateRight(l[n], 'nonce=')), '"'); n := IndexByBegin('realm=', l); if n >= 0 then realm := UnQuoteStr(Trim(SeparateRight(l[n], 'realm=')), '"'); cnonce := IntToHex(GetTick, 8); nc := '00000001'; qop := 'auth'; uri := 'ldap/' + FSock.ResolveIpToName(FSock.GetRemoteSinIP); a1 := md5(FUsername + ':' + realm + ':' + FPassword) + ':' + nonce + ':' + cnonce; a2 := 'AUTHENTICATE:' + uri; s := strtohex(md5(a1))+':' + nonce + ':' + nc + ':' + cnonce + ':' + qop +':'+strtohex(md5(a2)); response := strtohex(md5(s)); Result := 'username="' + Fusername + '",realm="' + realm + '",nonce="'; Result := Result + nonce + '",cnonce="' + cnonce + '",nc=' + nc + ',qop='; Result := Result + qop + ',digest-uri="' + uri + '",response=' + response; finally l.Free; end; end; function TLDAPSend.TranslateFilter(Value: AnsiString): AnsiString; var x: integer; s, t, l: AnsiString; r: string; c: Ansichar; attr, rule: AnsiString; dn: Boolean; begin Result := ''; if Value = '' then Exit; s := Value; if Value[1] = '(' then begin x := RPos(')', Value); s := Copy(Value, 2, x - 2); end; if s = '' then Exit; case s[1] of '!': // NOT rule (recursive call) begin Result := ASNOBject(TranslateFilter(GetBetween('(', ')', s)), $A2); end; '&': // AND rule (recursive call) begin repeat t := GetBetween('(', ')', s); s := Trim(SeparateRight(s, t)); if s <> '' then if s[1] = ')' then {$IFDEF CIL}Borland.Delphi.{$ENDIF}System.Delete(s, 1, 1); Result := Result + TranslateFilter(t); until s = ''; Result := ASNOBject(Result, $A0); end; '|': // OR rule (recursive call) begin repeat t := GetBetween('(', ')', s); s := Trim(SeparateRight(s, t)); if s <> '' then if s[1] = ')' then {$IFDEF CIL}Borland.Delphi.{$ENDIF}System.Delete(s, 1, 1); Result := Result + TranslateFilter(t); until s = ''; Result := ASNOBject(Result, $A1); end; else begin l := Trim(SeparateLeft(s, '=')); r := Trim(SeparateRight(s, '=')); if l <> '' then begin c := l[Length(l)]; case c of ':': // Extensible match begin {$IFDEF CIL}Borland.Delphi.{$ENDIF}System.Delete(l, Length(l), 1); dn := False; attr := ''; rule := ''; if Pos(':dn', l) > 0 then begin dn := True; l := ReplaceString(l, ':dn', ''); end; attr := Trim(SeparateLeft(l, ':')); rule := Trim(SeparateRight(l, ':')); if rule = l then rule := ''; if rule <> '' then Result := ASNObject(rule, $81); if attr <> '' then Result := Result + ASNObject(attr, $82); Result := Result + ASNObject(DecodeTriplet(r, '\'), $83); if dn then Result := Result + ASNObject(AsnEncInt($ff), $84) else Result := Result + ASNObject(AsnEncInt(0), $84); Result := ASNOBject(Result, $a9); end; '~': // Approx match begin {$IFDEF CIL}Borland.Delphi.{$ENDIF}System.Delete(l, Length(l), 1); Result := ASNOBject(l, ASN1_OCTSTR) + ASNOBject(DecodeTriplet(r, '\'), ASN1_OCTSTR); Result := ASNOBject(Result, $a8); end; '>': // Greater or equal match begin {$IFDEF CIL}Borland.Delphi.{$ENDIF}System.Delete(l, Length(l), 1); Result := ASNOBject(l, ASN1_OCTSTR) + ASNOBject(DecodeTriplet(r, '\'), ASN1_OCTSTR); Result := ASNOBject(Result, $a5); end; '<': // Less or equal match begin {$IFDEF CIL}Borland.Delphi.{$ENDIF}System.Delete(l, Length(l), 1); Result := ASNOBject(l, ASN1_OCTSTR) + ASNOBject(DecodeTriplet(r, '\'), ASN1_OCTSTR); Result := ASNOBject(Result, $a6); end; else // present if r = '*' then Result := ASNOBject(l, $87) else if Pos('*', r) > 0 then // substrings begin s := Fetch(r, '*'); if s <> '' then Result := ASNOBject(DecodeTriplet(s, '\'), $80); while r <> '' do begin if Pos('*', r) <= 0 then break; s := Fetch(r, '*'); Result := Result + ASNOBject(DecodeTriplet(s, '\'), $81); end; if r <> '' then Result := Result + ASNOBject(DecodeTriplet(r, '\'), $82); Result := ASNOBject(l, ASN1_OCTSTR) + ASNOBject(Result, ASN1_SEQ); Result := ASNOBject(Result, $a4); end else begin // Equality match Result := ASNOBject(l, ASN1_OCTSTR) + ASNOBject(DecodeTriplet(r, '\'), ASN1_OCTSTR); Result := ASNOBject(Result, $a3); end; end; end; end; end; end; function TLDAPSend.Login: Boolean; begin Result := False; if not Connect then Exit; Result := True; if FAutoTLS then Result := StartTLS; end; function TLDAPSend.Bind: Boolean; var s: AnsiString; begin s := ASNObject(ASNEncInt(FVersion), ASN1_INT) + ASNObject(FUsername, ASN1_OCTSTR) + ASNObject(FPassword, $80); s := ASNObject(s, LDAP_ASN1_BIND_REQUEST); Fsock.SendString(BuildPacket(s)); s := ReceiveResponse; DecodeResponse(s); Result := FResultCode = 0; end; function TLDAPSend.BindSasl: Boolean; var s, t: AnsiString; x, xt: integer; digreq: AnsiString; begin Result := False; if FPassword = '' then Result := Bind else begin digreq := ASNObject(ASNEncInt(FVersion), ASN1_INT) + ASNObject('', ASN1_OCTSTR) + ASNObject(ASNObject('DIGEST-MD5', ASN1_OCTSTR), $A3); digreq := ASNObject(digreq, LDAP_ASN1_BIND_REQUEST); Fsock.SendString(BuildPacket(digreq)); s := ReceiveResponse; t := DecodeResponse(s); if FResultCode = 14 then begin s := t; x := 1; t := ASNItem(x, s, xt); s := ASNObject(ASNEncInt(FVersion), ASN1_INT) + ASNObject('', ASN1_OCTSTR) + ASNObject(ASNObject('DIGEST-MD5', ASN1_OCTSTR) + ASNObject(LdapSasl(t), ASN1_OCTSTR), $A3); s := ASNObject(s, LDAP_ASN1_BIND_REQUEST); Fsock.SendString(BuildPacket(s)); s := ReceiveResponse; DecodeResponse(s); if FResultCode = 14 then begin Fsock.SendString(BuildPacket(digreq)); s := ReceiveResponse; DecodeResponse(s); end; Result := FResultCode = 0; end; end; end; function TLDAPSend.Logout: Boolean; begin Fsock.SendString(BuildPacket(ASNObject('', LDAP_ASN1_UNBIND_REQUEST))); FSock.CloseSocket; Result := True; end; function TLDAPSend.Modify(obj: AnsiString; Op: TLDAPModifyOp; const Value: TLDAPAttribute): Boolean; var s: AnsiString; n: integer; begin s := ''; for n := 0 to Value.Count -1 do s := s + ASNObject(Value[n], ASN1_OCTSTR); s := ASNObject(Value.AttributeName, ASN1_OCTSTR) + ASNObject(s, ASN1_SETOF); s := ASNObject(ASNEncInt(Ord(Op)), ASN1_ENUM) + ASNObject(s, ASN1_SEQ); s := ASNObject(s, ASN1_SEQ); s := ASNObject(obj, ASN1_OCTSTR) + ASNObject(s, ASN1_SEQ); s := ASNObject(s, LDAP_ASN1_MODIFY_REQUEST); Fsock.SendString(BuildPacket(s)); s := ReceiveResponse; DecodeResponse(s); Result := FResultCode = 0; end; function TLDAPSend.Add(obj: AnsiString; const Value: TLDAPAttributeList): Boolean; var s, t: AnsiString; n, m: integer; begin s := ''; for n := 0 to Value.Count - 1 do begin t := ''; for m := 0 to Value[n].Count - 1 do t := t + ASNObject(Value[n][m], ASN1_OCTSTR); t := ASNObject(Value[n].AttributeName, ASN1_OCTSTR) + ASNObject(t, ASN1_SETOF); s := s + ASNObject(t, ASN1_SEQ); end; s := ASNObject(obj, ASN1_OCTSTR) + ASNObject(s, ASN1_SEQ); s := ASNObject(s, LDAP_ASN1_ADD_REQUEST); Fsock.SendString(BuildPacket(s)); s := ReceiveResponse; DecodeResponse(s); Result := FResultCode = 0; end; function TLDAPSend.Delete(obj: AnsiString): Boolean; var s: AnsiString; begin s := ASNObject(obj, LDAP_ASN1_DEL_REQUEST); Fsock.SendString(BuildPacket(s)); s := ReceiveResponse; DecodeResponse(s); Result := FResultCode = 0; end; function TLDAPSend.ModifyDN(obj, newRDN, newSuperior: AnsiString; DeleteOldRDN: Boolean): Boolean; var s: AnsiString; begin s := ASNObject(obj, ASN1_OCTSTR) + ASNObject(newRDN, ASN1_OCTSTR); if DeleteOldRDN then s := s + ASNObject(ASNEncInt($ff), ASN1_BOOL) else s := s + ASNObject(ASNEncInt(0), ASN1_BOOL); if newSuperior <> '' then s := s + ASNObject(newSuperior, $80); s := ASNObject(s, LDAP_ASN1_MODIFYDN_REQUEST); Fsock.SendString(BuildPacket(s)); s := ReceiveResponse; DecodeResponse(s); Result := FResultCode = 0; end; function TLDAPSend.Compare(obj, AttributeValue: AnsiString): Boolean; var s: AnsiString; begin s := ASNObject(Trim(SeparateLeft(AttributeValue, '=')), ASN1_OCTSTR) + ASNObject(Trim(SeparateRight(AttributeValue, '=')), ASN1_OCTSTR); s := ASNObject(obj, ASN1_OCTSTR) + ASNObject(s, ASN1_SEQ); s := ASNObject(s, LDAP_ASN1_COMPARE_REQUEST); Fsock.SendString(BuildPacket(s)); s := ReceiveResponse; DecodeResponse(s); Result := FResultCode = 0; end; function TLDAPSend.Search(obj: AnsiString; TypesOnly: Boolean; Filter: AnsiString; const Attributes: TStrings): Boolean; var s, t, u, c: AnsiString; n, i, x: integer; r: TLDAPResult; a: TLDAPAttribute; begin FSearchResult.Clear; FReferals.Clear; s := ASNObject(obj, ASN1_OCTSTR); s := s + ASNObject(ASNEncInt(Ord(FSearchScope)), ASN1_ENUM); s := s + ASNObject(ASNEncInt(Ord(FSearchAliases)), ASN1_ENUM); s := s + ASNObject(ASNEncInt(FSearchSizeLimit), ASN1_INT); s := s + ASNObject(ASNEncInt(FSearchTimeLimit), ASN1_INT); if TypesOnly then s := s + ASNObject(ASNEncInt($ff), ASN1_BOOL) else s := s + ASNObject(ASNEncInt(0), ASN1_BOOL); if Filter = '' then Filter := '(objectclass=*)'; t := TranslateFilter(Filter); if t = '' then s := s + ASNObject('', ASN1_NULL) else s := s + t; t := ''; for n := 0 to Attributes.Count - 1 do t := t + ASNObject(Attributes[n], ASN1_OCTSTR); s := s + ASNObject(t, ASN1_SEQ); s := ASNObject(s, LDAP_ASN1_SEARCH_REQUEST); if FSearchPageSize > 0 then begin c := ASNObject('1.2.840.113556.1.4.319', ASN1_OCTSTR); // controlType: pagedResultsControl c := c + ASNObject(ASNEncInt(0), ASN1_BOOL); // criticality: FALSE t := ASNObject(ASNEncInt(FSearchPageSize), ASN1_INT); // page size t := t + ASNObject(FSearchCookie, ASN1_OCTSTR); // search cookie t := ASNObject(t, ASN1_SEQ); // wrap with SEQUENCE c := c + ASNObject(t, ASN1_OCTSTR); // add searchControlValue as OCTET STRING c := ASNObject(c, ASN1_SEQ); // wrap with SEQUENCE s := s + ASNObject(c, LDAP_ASN1_CONTROLS); // append Controls to SearchRequest end; Fsock.SendString(BuildPacket(s)); repeat s := ReceiveResponse; t := DecodeResponse(s); if FResponseCode = LDAP_ASN1_SEARCH_ENTRY then begin //dekoduj zaznam r := FSearchResult.Add; n := 1; r.ObjectName := ASNItem(n, t, x); ASNItem(n, t, x); if x = ASN1_SEQ then begin while n < Length(t) do begin s := ASNItem(n, t, x); if x = ASN1_SEQ then begin i := n + Length(s); a := r.Attributes.Add; u := ASNItem(n, t, x); a.AttributeName := u; ASNItem(n, t, x); if x = ASN1_SETOF then while n < i do begin u := ASNItem(n, t, x); a.Add(u); end; end; end; end; end; if FResponseCode = LDAP_ASN1_SEARCH_REFERENCE then begin n := 1; while n < Length(t) do FReferals.Add(ASNItem(n, t, x)); end; until FResponseCode = LDAP_ASN1_SEARCH_DONE; n := 1; ASNItem(n, t, x); if x = LDAP_ASN1_CONTROLS then begin ASNItem(n, t, x); if x = ASN1_SEQ then begin s := ASNItem(n, t, x); if s = '1.2.840.113556.1.4.319' then begin s := ASNItem(n, t, x); // searchControlValue n := 1; ASNItem(n, s, x); if x = ASN1_SEQ then begin ASNItem(n, s, x); // total number of result records, if known, otherwise 0 FSearchCookie := ASNItem(n, s, x); // active search cookie, empty when done end; end; end; end; Result := FResultCode = 0; end; function TLDAPSend.Extended(const Name, Value: AnsiString): Boolean; var s, t: AnsiString; x, xt: integer; begin s := ASNObject(Name, $80); if Value <> '' then s := s + ASNObject(Value, $81); s := ASNObject(s, LDAP_ASN1_EXT_REQUEST); Fsock.SendString(BuildPacket(s)); s := ReceiveResponse; t := DecodeResponse(s); Result := FResultCode = 0; if Result then begin x := 1; FExtName := ASNItem(x, t, xt); FExtValue := ASNItem(x, t, xt); end; end; function TLDAPSend.StartTLS: Boolean; begin Result := Extended('1.3.6.1.4.1.1466.20037', ''); if Result then begin Fsock.SSLDoConnect; Result := FSock.LastError = 0; end; end; {==============================================================================} function LDAPResultDump(const Value: TLDAPResultList): AnsiString; var n, m, o: integer; r: TLDAPResult; a: TLDAPAttribute; begin Result := 'Results: ' + IntToStr(Value.Count) + CRLF +CRLF; for n := 0 to Value.Count - 1 do begin Result := Result + 'Result: ' + IntToStr(n) + CRLF; r := Value[n]; Result := Result + ' Object: ' + r.ObjectName + CRLF; for m := 0 to r.Attributes.Count - 1 do begin a := r.Attributes[m]; Result := Result + ' Attribute: ' + a.AttributeName + CRLF; for o := 0 to a.Count - 1 do Result := Result + ' ' + a[o] + CRLF; end; end; end; end. ./zoomextents.png0000644000175000017500000000144314576573022014257 0ustar anthonyanthonyPNG  IHDRabKGD pHYs\F\FCAtIME3!mIDAT8˕Oh\Uo(*nFIV(eI'DhK.b^/iQpRܤ Bqƽ `DM(L޽Eg nv;EFFF$ W1 yͲ,oE27<.zgsu9Ih6}=j( 71i: ҍ\D <(򜪾ȲK(DdTUϪ:ѻ7ƘZ{,+"2266&'E䬈|e/"1f߁L iA8ɲkbzztrT01Mfi[J,o1Ls \1SSSy{R+"O8O${@8QM Gggg Oc'UmE"r,q0 ST>?_Vomm'0)Iz9w:G{OGE71:ΫEQ>NE1Ǫ , _Sh4Ƙ3ݧqεz;wWl CZ!H䂪2u3rIENDB`./upascaltz_vectors.pas0000644000175000017500000002254114561172557015436 0ustar anthonyanthonyunit uPascalTZ_Vectors; {******************************************************************************* This file is a part of PascalTZ package: https://github.com/dezlov/pascaltz License: GNU Library General Public License (LGPL) with a special exception. Read accompanying README and COPYING files for more details. Authors: 2016 - Denis Kozlov *******************************************************************************} {$mode objfpc}{$H+} interface uses Classes, SysUtils, contnrs, uPascalTZ, uPascalTZ_Tools, uPascalTZ_Types; type TTZTestReportLevel = (trlNone, trlFailed, trlAll); TTZTestVector = class public Universal: TDateTime; LocalFromUniversal: TDateTime; UniversalFromLocal: TDateTime; Timezone: String; public function LoadFromLine(const Line: String): Boolean; procedure Setup(const UniversalDate, LocalFromUniversalDate, UniversalFromLocalDate, ATimezone: String); overload; procedure Setup(const UniversalDate, LocalFromUniversalDate, UniversalFromLocalDate: TDateTime; const ATimezone: String); overload; function Test(TZ: TPascalTZ; out Report: String; ReportLevel: TTZTestReportLevel): Boolean; function Test(TZ: TPascalTZ): Boolean; end; TTZTestVectorRepository = class strict private FLoadedFiles: TStringList; FTestVectors: TFPObjectList; function GetCount: Integer; function GetItem(Index: Integer): TTZTestVector; function GetLoadedFiles: TStrings; public constructor Create; destructor Destroy; override; procedure Clear; function Add(const TestVector: TTZTestVector): Integer; procedure LoadFromLines(const Lines: TStrings); procedure LoadFromFile(const FileName: String); procedure LoadFromFiles(const PathPrefix: String; const FileNames: Array of String); procedure LoadFromDirectory(const DirPath: String; const FileMask: String = '*.*'); public property Item[Index: Integer]: TTZTestVector read GetItem; default; property Count: Integer read GetCount; property LoadedFiles: TStrings read GetLoadedFiles; end; function TZParseDateTime(const Value: String): TDateTime; inline; function TZFormatDateTime(const Value: TDateTime): String; inline; const TZ_TEST_VECTOR_FORMAT = 'YYYY-MM-DD HH:MM:SS'; TZ_TEST_VECTOR_VALUE_DELIM = ','; TZ_TEST_VECTOR_LINE_ESCAPE_CHARS = ['/', '#', ';']; implementation uses StrUtils, DateUtils; function TZParseDateTime(const Value: String): TDateTime; inline; begin Result := ScanDateTime(TZ_TEST_VECTOR_FORMAT, Value); end; function TZFormatDateTime(const Value: TDateTime): String; inline; begin Result := FormatDateTime(TZ_TEST_VECTOR_FORMAT, Value); end; function SameDateTimeAsSign(const DT1, DT2: TDateTime): String; inline; begin if SameDateTime(DT1, DT2) then Result := '==' else Result := '<>'; end; procedure SplitString(const Input, Delimiter: String; Parts: TStrings); var I, Start, L: Integer; begin Parts.Clear; Start := 1; L := Length(Delimiter); I := Pos(Delimiter, Input); while I > 0 do begin Parts.Add(Copy(Input, Start, I-Start)); Start := I+L; I := PosEx(Delimiter, Input, Start); end; Parts.Add(Copy(Input, Start, Length(Input))); end; function NeedTestReport(TestResult: Boolean; ReportLevel: TTZTestReportLevel): Boolean; begin Result := (ReportLevel = trlAll) or ((ReportLevel = trlFailed) and not TestResult); end; {$REGION 'TTZTestVector'} function TTZTestVector.LoadFromLine(const Line: String): Boolean; var TrimmedLine: String; Parts: TStringList; begin Result := False; TrimmedLine := Trim(Line); // Skip empty lines if Length(TrimmedLine) > 0 then begin // Skip escaped lines if not (TrimmedLine[1] in TZ_TEST_VECTOR_LINE_ESCAPE_CHARS) then begin Parts := TStringList.Create; try // Split line into parts SplitString(TrimmedLine, TZ_TEST_VECTOR_VALUE_DELIM, Parts); Result := Parts.Count >= 3; if not Result then raise Exception.Create('Incorrect number of delimiters in test vector line: ' + Line); if Result then begin while Parts.Count < 4 do Parts.Add(''); try Setup(Trim(Parts[0]), Trim(Parts[1]), Trim(Parts[3]), Trim(Parts[2])); except on E: Exception do raise Exception.Create('Invalid format of test vector line: ' + Line); end; end; finally Parts.Free; end; end; end; end; procedure TTZTestVector.Setup(const UniversalDate, LocalFromUniversalDate, UniversalFromLocalDate, ATimezone: String); begin Self.Universal := TZParseDateTime(UniversalDate); Self.LocalFromUniversal := TZParseDateTime(LocalFromUniversalDate); if Length(UniversalFromLocalDate) > 0 then Self.UniversalFromLocal := TZParseDateTime(UniversalFromLocalDate) else Self.UniversalFromLocal := Self.Universal; Self.Timezone := ATimezone; end; procedure TTZTestVector.Setup(const UniversalDate, LocalFromUniversalDate, UniversalFromLocalDate: TDateTime; const ATimezone: String); begin Self.Universal := UniversalDate; Self.LocalFromUniversal := LocalFromUniversalDate; Self.UniversalFromLocal := UniversalFromLocalDate; Self.Timezone := ATimezone; end; function TTZTestVector.Test(TZ: TPascalTZ; out Report: String; ReportLevel: TTZTestReportLevel): Boolean; const NL = LineEnding; var TestUniversalFromLocal, TestLocalFromUniversal, TestLocalFromUniversalFromLocal: TDateTime; ATimeZoneSubFix: String; begin TestUniversalFromLocal {UTC<-Local} := TZ.LocalTimeToGMT({T2}Self.LocalFromUniversal, Self.Timezone); TestLocalFromUniversal {Local<-UTC} := TZ.GMTToLocalTime({T1}Self.Universal, Self.Timezone, ATimeZoneSubFix); TestLocalFromUniversalFromLocal {Local<-UTC} := TZ.GMTToLocalTime({T3}Self.UniversalFromLocal, Self.Timezone); Result := SameDateTime({T2}Self.LocalFromUniversal, TestLocalFromUniversal) and SameDateTime({T3}Self.UniversalFromLocal, TestUniversalFromLocal) and SameDateTime({T2}Self.LocalFromUniversal, TestLocalFromUniversalFromLocal); if NeedTestReport(Result, ReportLevel) then begin Report := Self.Timezone + ' (' + ATimeZoneSubFix + ') ' + BoolToStr(Result, 'OK', 'FAILED') + NL + ' UTC: ' + TZFormatDateTime(Self.Universal) + NL + ' UTC->LOC: ' + TZFormatDateTime(Self.LocalFromUniversal) + ' ' + SameDateTimeAsSign(Self.LocalFromUniversal, TestLocalFromUniversal) + ' ' + TZFormatDateTime(TestLocalFromUniversal) + NL + ' LOC->UTC: ' + TZFormatDateTime(Self.UniversalFromLocal) + ' ' + SameDateTimeAsSign(Self.UniversalFromLocal, TestUniversalFromLocal) + ' ' + TZFormatDateTime(TestUniversalFromLocal) + NL + ' LOC->UTC->LOC: ' + TZFormatDateTime(Self.LocalFromUniversal) + ' ' + SameDateTimeAsSign(Self.LocalFromUniversal, TestLocalFromUniversalFromLocal) + ' ' + TZFormatDateTime(TestLocalFromUniversalFromLocal); end; end; function TTZTestVector.Test(TZ: TPascalTZ): Boolean; var DummyReport: String; begin Result := Test(TZ, DummyReport, trlNone); end; {$ENDREGION} {$REGION 'TTZTestVectorRepository'} constructor TTZTestVectorRepository.Create; begin FLoadedFiles := TStringList.Create; FTestVectors := TFPObjectList.Create(True); // FreeObjects = True! end; destructor TTZTestVectorRepository.Destroy; begin FreeAndNil(FTestVectors); FreeAndNil(FLoadedFiles); inherited Destroy; end; procedure TTZTestVectorRepository.Clear; begin FTestVectors.Clear; end; function TTZTestVectorRepository.GetCount: Integer; begin Result := FTestVectors.Count; end; function TTZTestVectorRepository.GetItem(Index: Integer): TTZTestVector; begin Result := TTZTestVector(FTestVectors[Index]); end; function TTZTestVectorRepository.GetLoadedFiles: TStrings; begin Result := FLoadedFiles; end; function TTZTestVectorRepository.Add(const TestVector: TTZTestVector): Integer; begin Result := FTestVectors.Add(TestVector); end; procedure TTZTestVectorRepository.LoadFromLines(const Lines: TStrings); var Line: String; Loaded: Boolean; Vector: TTZTestVector; begin for Line in Lines do begin Loaded := False; Vector := TTZTestVector.Create; try Loaded := Vector.LoadFromLine(Line); except FreeAndNil(Vector); raise; end; if Loaded then Add(Vector) else FreeAndNil(Vector); end; end; procedure TTZTestVectorRepository.LoadFromFile(const FileName: String); var Lines: TStringList; begin Lines := TStringList.Create; try Lines.LoadFromFile(FileName); LoadFromLines(Lines); FLoadedFiles.Add(FileName); finally Lines.Free; end; end; procedure TTZTestVectorRepository.LoadFromFiles(const PathPrefix: String; const FileNames: array of String); var FileName: String; begin for FileName in FileNames do LoadFromFile(PathPrefix + FileName); end; procedure TTZTestVectorRepository.LoadFromDirectory(const DirPath: String; const FileMask: String = '*.*'); var FindDirPath: String; FindResult: Integer; FileRec: TSearchRec; begin FindDirPath := IncludeTrailingPathDelimiter(DirPath); FindResult := FindFirst(FindDirPath + FileMask, faAnyFile and not faDirectory, FileRec); try if FindResult = 0 then begin repeat LoadFromFile(FindDirPath + FileRec.Name); FindResult := FindNext(FileRec); until FindResult <> 0; end; finally FindClose(FileRec); end; end; {$ENDREGION} end. ./worldmap.lrs0000644000175000017500000002213514576573022013522 0ustar anthonyanthony{ This is an automatically generated lazarus resource file } LazarusResources.Add('TFormWorldmap','FORMDATA',[ 'TPF0'#13'TFormWorldmap'#12'FormWorldmap'#4'Left'#3'f'#9#6'Height'#3#3#2#3'To' +'p'#2'~'#5'Width'#3' '#3#11'BorderStyle'#7#8'bsDialog'#7'Caption'#6#12'Set l' +'ocation'#12'ClientHeight'#3#3#2#11'ClientWidth'#3' '#3#6'OnShow'#7#8'FormSh' +'ow'#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#8'2.0.12.0'#0#6'TImag' +'e'#8'MapImage'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Contr' +'ol'#7#5'Owner'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Si' +'de'#7#9'asrBottom'#4'Left'#2#0#6'Height'#3#144#1#3'Top'#2#0#5'Width'#3' '#3 +#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#7'OnClick'#7#13'MapImageClick' +#12'OnMouseEnter'#7#18'MapImageMouseEnter'#12'OnMouseLeave'#7#18'MapImageMou' +'seLeave'#11'OnMouseMove'#7#17'MapImageMouseMove'#14'ParentShowHint'#8#12'Pr' +'oportional'#9#0#0#7'TButton'#11'ApplyButton'#19'AnchorSideLeft.Side'#7#9'as' +'rBottom'#23'AnchorSideRight.Control'#7#11'CloseButton'#21'AnchorSideBottom.' +'Side'#7#9'asrCenter'#4'Left'#3'l'#2#6'Height'#2#25#3'Top'#3#231#1#5'Width'#2 +'K'#7'Anchors'#11#7'akRight'#8'akBottom'#0#19'BorderSpacing.Right'#2#5#20'Bo' +'rderSpacing.Bottom'#2#3#7'Caption'#6#5'Apply'#7'OnClick'#7#16'ApplyButtonCl' +'ick'#8'TabOrder'#2#0#0#0#6'TLabel'#11'CreditLabel'#21'AnchorSideTop.Control' +#7#8'MapImage'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Cont' +'rol'#7#8'MapImage'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#192#2#6 +'Height'#2#12#3'Top'#3#144#1#5'Width'#2'V'#7'Anchors'#11#5'akTop'#7'akRight' +#0#19'BorderSpacing.Right'#2#10#7'Caption'#6#18'Photo credit: NASA'#10'Font.' +'Color'#4';;;'#0#11'Font.Height'#2#246#10'Font.Style'#11#8'fsItalic'#0#11'Pa' +'rentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#11'CursorLabel'#21'AnchorSideTo' +'p.Control'#7#14'CursorLatitude'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'An' +'chorSideRight.Control'#7#14'CursorLatitude'#4'Left'#2'w'#6'Height'#2#17#3'T' +'op'#3#169#1#5'Width'#2'.'#7'Anchors'#11#5'akTop'#7'akRight'#0#19'BorderSpac' +'ing.Right'#2#3#7'Caption'#6#7'Cursor:'#11'ParentColor'#8#7'Visible'#8#0#0#7 +'TButton'#11'CloseButton'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSi' +'deRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#5'Owner'#21'Anc' +'horSideBottom.Side'#7#9'asrBottom'#4'Left'#3#188#2#6'Height'#2#25#3'Top'#3 +#231#1#5'Width'#2'K'#7'Anchors'#11#7'akRight'#8'akBottom'#0#19'BorderSpacing' +'.Right'#2#25#20'BorderSpacing.Bottom'#2#3#7'Caption'#6#5'Close'#7'OnClick'#7 +#16'CloseButtonClick'#8'TabOrder'#2#1#0#0#6'TLabel'#12'DesiredLabel'#21'Anch' +'orSideTop.Control'#7#19'DesiredLatitudeEdit'#18'AnchorSideTop.Side'#7#9'asr' +'Center'#23'AnchorSideRight.Control'#7#19'DesiredLatitudeEdit'#4'Left'#2'q'#6 +'Height'#2#17#3'Top'#3#200#1#5'Width'#2'4'#7'Anchors'#11#5'akTop'#7'akRight' +#0#19'BorderSpacing.Right'#2#3#7'Caption'#6#8'Desired:'#11'ParentColor'#8#0#0 +#6'TLabel'#13'LatitudeLabel'#22'AnchorSideLeft.Control'#7#14'CursorLatitude' +#19'AnchorSideLeft.Side'#7#9'asrCenter'#21'AnchorSideTop.Control'#7#14'Curso' +'rLatitude'#18'AnchorSideTop.Side'#7#9'asrBottom'#24'AnchorSideBottom.Contro' +'l'#7#15'CursorLongitude'#4'Left'#3#203#0#6'Height'#2#17#3'Top'#3#147#1#5'Wi' +'dth'#2'3'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#8'Latitude'#11 +'ParentColor'#8#0#0#6'TLabel'#14'LongitudeLabel'#22'AnchorSideLeft.Control'#7 +#15'CursorLongitude'#19'AnchorSideLeft.Side'#7#9'asrCenter'#24'AnchorSideBot' +'tom.Control'#7#15'CursorLongitude'#4'Left'#3'U'#1#6'Height'#2#17#3'Top'#3 +#147#1#5'Width'#2'?'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#9'Lo' +'ngitude'#11'ParentColor'#8#0#0#6'TLabel'#12'AppliedLabel'#21'AnchorSideTop.' +'Control'#7#18'ActualLatitudeEdit'#18'AnchorSideTop.Side'#7#9'asrCenter'#23 +'AnchorSideRight.Control'#7#18'ActualLatitudeEdit'#4'Left'#2'{'#6'Height'#2 +#17#3'Top'#3#233#1#5'Width'#2'*'#7'Anchors'#11#5'akTop'#7'akRight'#0#19'Bord' +'erSpacing.Right'#2#3#7'Caption'#6#7'Actual:'#11'ParentColor'#8#0#0#6'TLabel' +#14'ElevationLabel'#22'AnchorSideLeft.Control'#7#20'DesiredElevationEdit'#19 +'AnchorSideLeft.Side'#7#9'asrCenter'#24'AnchorSideBottom.Control'#7#20'Desir' +'edElevationEdit'#4'Left'#3#213#1#6'Height'#2#17#3'Top'#3#177#1#5'Width'#2'7' +#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#9'Elevation'#11'ParentCo' +'lor'#8#0#0#12'TLabeledEdit'#20'DesiredElevationEdit'#24'AnchorSideBottom.Co' +'ntrol'#7#19'ActualElevationEdit'#4'Left'#3#200#1#6'Height'#2#30#3'Top'#3#194 +#1#5'Width'#2'P'#9'Alignment'#7#14'taRightJustify'#7'Anchors'#11#8'akBottom' +#0#10'AutoSelect'#8#20'BorderSpacing.Bottom'#2#2#16'EditLabel.Height'#2#17#15 +'EditLabel.Width'#2#12#17'EditLabel.Caption'#6#1'm'#21'EditLabel.ParentColor' +#8#13'LabelPosition'#7#7'lpRight'#8'TabOrder'#2#2#8'OnChange'#7#26'DesiredEl' +'evationEditChange'#0#0#12'TLabeledEdit'#19'ActualElevationEdit'#24'AnchorSi' +'deBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Lef' +'t'#3#200#1#6'Height'#2#30#3'Top'#3#226#1#5'Width'#2'P'#9'Alignment'#7#14'ta' +'RightJustify'#7'Anchors'#11#8'akBottom'#0#10'AutoSelect'#8#20'BorderSpacing' ,'.Bottom'#2#3#16'EditLabel.Height'#2#17#15'EditLabel.Width'#2#12#17'EditLabe' +'l.Caption'#6#1'm'#21'EditLabel.ParentColor'#8#13'LabelPosition'#7#7'lpRight' +#8'ReadOnly'#9#8'TabOrder'#2#3#7'TabStop'#8#0#0#12'TLabeledEdit'#14'CursorLa' +'titude'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control' +#7#19'DesiredLatitudeEdit'#4'Left'#3#168#0#6'Height'#2#26#3'Top'#3#164#1#5'W' +'idth'#2'x'#9'Alignment'#7#14'taRightJustify'#7'Anchors'#11#6'akLeft'#7'akRi' +'ght'#8'akBottom'#0#8'AutoSize'#8#20'BorderSpacing.Bottom'#2#3#16'EditLabel.' +'Height'#2#17#15'EditLabel.Width'#2#6#17'EditLabel.Caption'#6#2#194#176#21'E' +'ditLabel.ParentColor'#8#13'LabelPosition'#7#7'lpRight'#8'ReadOnly'#9#8'TabO' +'rder'#2#4#7'Visible'#8#0#0#12'TLabeledEdit'#15'CursorLongitude'#20'AnchorSi' +'deRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#14'CursorLatitu' +'de'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3'8'#1#6'Height'#2#26#3 +'Top'#3#164#1#5'Width'#2'x'#9'Alignment'#7#14'taRightJustify'#7'Anchors'#11#8 +'akBottom'#0#8'AutoSize'#8#16'EditLabel.Height'#2#17#15'EditLabel.Width'#2#6 +#17'EditLabel.Caption'#6#2#194#176#21'EditLabel.ParentColor'#8#13'LabelPosit' +'ion'#7#7'lpRight'#8'ReadOnly'#9#8'TabOrder'#2#5#7'Visible'#8#0#0#12'TLabele' +'dEdit'#19'DesiredLatitudeEdit'#22'AnchorSideLeft.Control'#7#5'Owner'#24'Anc' +'horSideBottom.Control'#7#18'ActualLatitudeEdit'#4'Left'#3#168#0#6'Height'#2 +#30#3'Top'#3#193#1#5'Width'#2'x'#9'Alignment'#7#14'taRightJustify'#7'Anchors' +#11#8'akBottom'#0#10'AutoSelect'#8#20'BorderSpacing.Bottom'#2#3#16'EditLabel' +'.Height'#2#17#15'EditLabel.Width'#2#6#17'EditLabel.Caption'#6#2#194#176#21 +'EditLabel.ParentColor'#8#13'LabelPosition'#7#7'lpRight'#8'TabOrder'#2#6#8'O' +'nChange'#7#25'DesiredLatitudeEditChange'#0#0#12'TLabeledEdit'#18'ActualLati' +'tudeEdit'#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side' +#7#9'asrBottom'#4'Left'#3#168#0#6'Height'#2#30#3'Top'#3#226#1#5'Width'#2'x'#9 +'Alignment'#7#14'taRightJustify'#7'Anchors'#11#8'akBottom'#0#10'AutoSelect'#8 +#20'BorderSpacing.Bottom'#2#3#16'EditLabel.Height'#2#17#15'EditLabel.Width'#2 +#6#17'EditLabel.Caption'#6#2#194#176#21'EditLabel.ParentColor'#8#13'LabelPos' +'ition'#7#7'lpRight'#8'ReadOnly'#9#8'TabOrder'#2#7#7'TabStop'#8#0#0#12'TLabe' +'ledEdit'#19'ActualLongitudeEdit'#24'AnchorSideBottom.Control'#7#5'Owner'#21 +'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3'8'#1#6'Height'#2#30#3'Top'#3 +#226#1#5'Width'#2'x'#9'Alignment'#7#14'taRightJustify'#7'Anchors'#11#8'akBot' +'tom'#0#10'AutoSelect'#8#20'BorderSpacing.Bottom'#2#3#16'EditLabel.Height'#2 +#17#15'EditLabel.Width'#2#6#17'EditLabel.Caption'#6#2#194#176#21'EditLabel.P' +'arentColor'#8#13'LabelPosition'#7#7'lpRight'#8'ReadOnly'#9#8'TabOrder'#2#8#7 +'TabStop'#8#0#0#12'TLabeledEdit'#20'DesiredLongitudeEdit'#19'AnchorSideLeft.' +'Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#19'DesiredLatitudeEdit' +#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3'8'#1#6'Height'#2#30#3'To' +'p'#3#193#1#5'Width'#2'x'#9'Alignment'#7#14'taRightJustify'#7'Anchors'#11#8 +'akBottom'#0#10'AutoSelect'#8#18'BorderSpacing.Left'#2#10#16'EditLabel.Heigh' +'t'#2#17#15'EditLabel.Width'#2#6#17'EditLabel.Caption'#6#2#194#176#21'EditLa' +'bel.ParentColor'#8#13'LabelPosition'#7#7'lpRight'#8'TabOrder'#2#9#8'OnChang' +'e'#7#26'DesiredLongitudeEditChange'#0#0#6'TLabel'#17'UsageInstructions'#21 +'AnchorSideTop.Control'#7#5'Owner'#23'AnchorSideRight.Control'#7#5'Owner'#20 +'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#11'Clos' +'eButton'#4'Left'#3'z'#2#6'Height'#2#30#3'Top'#3#180#1#5'Width'#3#166#0#7'An' +'chors'#11#7'akRight'#8'akBottom'#0#20'BorderSpacing.Bottom'#2#21#7'Caption' +#6'xMove mouse to desired position then click.'#10'Or type settings into Des' +'ired fields.'#10'Press Apply to store position settings.'#11'Font.Height'#2 +#247#9'Font.Name'#6#4'Sans'#11'ParentColor'#8#10'ParentFont'#8#0#0#0 ]); ./png-logo16.png0000644000175000017500000000160014576573022013544 0ustar anthonyanthonyPNG  IHDRabKGD pHYs.#.#x?vtIME0 N IDAT8EOLuER"RhJ@LOҋ!$;` xR yq `EܨD#6C"Ft ~{O<RQԄ-~m+$<% oJV:}`:+L9000܏8n]A׹?| y"trjbJu,l(C44m ~ie},4.Az#\tX'wq8U8{9ǜ%.9qtU:%Yޏqx![9 dNZi75KXKsx9Õp{:ۯ7d??Mp3ypof3yTiɬ1S1&=r3}1b϶(\_ x%z-JT&3s_)! 3g%If.h$Wg@''JZYY﫷ʉʙ'hjn L⹆ͭ-suaX,F{WJ%tuuQS]#2;;KUUCCC< 8cccLLL$I yHt:M2|(l24@k-SSStwwY^^&J嘛#s`0b:X,F&Z[[#H؍ \R) \Ԩ_몯O===ѡQ (LNJd`sIENDB`./grayscale.ucld0000644000175000017500000000023714576573022013775 0ustar anthonyanthony#Description: Unihedron Colour Legend Definition file for Unihedron Device Manager plots #Title: Grayscale #MPSAS; Red; Green; Blue 22; 0; 0; 0 10;255;255;255 ./splash.lrs0000644000175000017500000010315714576573022013173 0ustar anthonyanthony{ This is an automatically generated lazarus resource file } LazarusResources.Add('TfrmSplash','FORMDATA',[ 'TPF0'#10'TfrmSplash'#9'frmSplash'#6'Cursor'#7#11'crHourGlass'#4'Left'#3'i'#8 +#6'Height'#3#179#0#3'Top'#3'$'#1#5'Width'#3'B'#1#11'BorderStyle'#7#6'bsNone' +#7'Caption'#6#9'frmSplash'#12'ClientHeight'#3#179#0#11'ClientWidth'#3'B'#1#5 +'Color'#4#193#187#177#0#9'FormStyle'#7#8'fsSplash'#8'OnCreate'#7#10'FormCrea' +'te'#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#7'2.3.0.0'#0#6'TImage' +#6'Image2'#22'AnchorSideLeft.Control'#7#5'Owner'#19'AnchorSideLeft.Side'#7#9 +'asrCenter'#21'AnchorSideTop.Control'#7#11'StaticText1'#18'AnchorSideTop.Sid' +'e'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight' +'.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#6'Label1'#4'Left'#2#1#6 +'Height'#2'|'#3'Top'#2#28#5'Width'#3'A'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7 +'akRight'#8'akBottom'#0#6'Center'#9#12'Picture.Data'#10#233''''#0#0#10'TJpeg' +'Image'#218''''#0#0#255#216#255#224#0#16'JFIF'#0#1#1#1#0#240#0#240#0#0#255 +#225#7#226'Exif'#0#0'II*'#0#8#0#0#0#9#0#15#1#2#0#18#0#0#0'z'#0#0#0#16#1#2#0 +#11#0#0#0#140#0#0#0#18#1#3#0#1#0#0#0#1#0#0#0#26#1#5#0#1#0#0#0#152#0#0#0#27#1 +#5#0#1#0#0#0#160#0#0#0'('#1#3#0#1#0#0#0#2#0#0#0'1'#1#2#0#12#0#0#0#168#0#0#0 +'2'#1#2#0#20#0#0#0#180#0#0#0'i'#135#4#0#1#0#0#0#200#0#0#0#230#1#0#0'NIKON CO' +'RPORATION'#0'NIKON D70s'#0#0#240#0#0#0#1#0#0#0#240#0#0#0#1#0#0#0'GIMP 2.6.1' +'1'#0'2012:02:11 12:59:51'#0#17#0#154#130#5#0#1#0#0#0#154#1#0#0#157#130#5#0#1 +#0#0#0#162#1#0#0''''#136#3#0#1#0#0#0#128#2#0#0#0#144#7#0#4#0#0#0'0210'#3#144 +#2#0#20#0#0#0#170#1#0#0#1#146#10#0#1#0#0#0#190#1#0#0#2#146#5#0#1#0#0#0#198#1 +#0#0#4#146#10#0#1#0#0#0#206#1#0#0#5#146#5#0#1#0#0#0#214#1#0#0#7#146#3#0#1#0#0 +#0#5#0#0#0#9#146#3#0#1#0#0#0#16#0#0#0#10#146#5#0#1#0#0#0#222#1#0#0#0#160#7#0 +#4#0#0#0'0100'#1#160#3#0#1#0#0#0#255#255#0#0#2#160#4#0#1#0#0#0','#1#0#0#3#160 +#4#0#1#0#0#0'p'#0#0#0#5#164#3#0#1#0#0#0#27#0#0#0#0#0#0#0#2#0#0#0#1#0#0#0'#'#0 +#0#0#10#0#0#0'2005:07:06 22:20:20'#0#255#255#255#255#1#0#0#0#255#131#5#0#160 +#134#1#0#0#0#0#0#1#0#0#0'$'#0#0#0#10#0#0#0#18#0#0#0#1#0#0#0#6#0#3#1#3#0#1#0#0 +#0#6#0#0#0#26#1#5#0#1#0#0#0'4'#2#0#0#27#1#5#0#1#0#0#0'<'#2#0#0'('#1#3#0#1#0#0 +#0#2#0#0#0#1#2#4#0#1#0#0#0'D'#2#0#0#2#2#4#0#1#0#0#0#150#5#0#0#0#0#0#0'H'#0#0 +#0#1#0#0#0'H'#0#0#0#1#0#0#0#255#216#255#224#0#16'JFIF'#0#1#1#0#0#1#0#1#0#0 +#255#219#0'C'#0#8#6#6#7#6#5#8#7#7#7#9#9#8#10#12#20#13#12#11#11#12#25#18#19#15 +#20#29#26#31#30#29#26#28#28' $.'' ",#'#28#28'(7),01444'#31'''9=82<.342'#255 +#219#0'C'#1#9#9#9#12#11#12#24#13#13#24'2!'#28'!22222222222222222222222222222' +'222222222222222222222'#255#192#0#17#8#0')'#0'p'#3#1'"'#0#2#17#1#3#17#1#255 +#196#0#31#0#0#1#5#1#1#1#1#1#1#0#0#0#0#0#0#0#0#1#2#3#4#5#6#7#8#9#10#11#255#196 +#0#181#16#0#2#1#3#3#2#4#3#5#5#4#4#0#0#1'}'#1#2#3#0#4#17#5#18'!1A'#6#19'Qa'#7 +'"q'#20'2'#129#145#161#8'#B'#177#193#21'R'#209#240'$3br'#130#9#10#22#23#24#25 +#26'%&''()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz'#131#132#133#134#135#136 +#137#138#146#147#148#149#150#151#152#153#154#162#163#164#165#166#167#168#169 +#170#178#179#180#181#182#183#184#185#186#194#195#196#197#198#199#200#201#202 +#210#211#212#213#214#215#216#217#218#225#226#227#228#229#230#231#232#233#234 +#241#242#243#244#245#246#247#248#249#250#255#196#0#31#1#0#3#1#1#1#1#1#1#1#1#1 +#0#0#0#0#0#0#1#2#3#4#5#6#7#8#9#10#11#255#196#0#181#17#0#2#1#2#4#4#3#4#7#5#4#4 +#0#1#2'w'#0#1#2#3#17#4#5'!1'#6#18'AQ'#7'aq'#19'"2'#129#8#20'B'#145#161#177 +#193#9'#3R'#240#21'br'#209#10#22'$4'#225'%'#241#23#24#25#26'&''()*56789:CDEF' +'GHIJSTUVWXYZcdefghijstuvwxyz'#130#131#132#133#134#135#136#137#138#146#147 +#148#149#150#151#152#153#154#162#163#164#165#166#167#168#169#170#178#179#180 +#181#182#183#184#185#186#194#195#196#197#198#199#200#201#202#210#211#212#213 +#214#215#216#217#218#226#227#228#229#230#231#232#233#234#242#243#244#245#246 +#247#248#249#250#255#218#0#12#3#1#0#2#17#3#17#0'?'#0#228#173#246'L'#129#211 +#149'>'#216#171'B/j'#231#237'55'#181#179#147'('#194'l'#143#149#186't'#235'O' +#131#196'r'#130#169',*'#252#242#203#198'G'#210#185#249#153#217'c'#161'X'#253 +#170't'#135'='#170';9'#226#187#143'|M'#145#208#142#227#235'Z1G'#154'|'#194 +#177#28'v'#231#210#173#199'lx'#226#172#195#9#227#138#191#20#30#212#185#138'H' +#165#28#13#212#127'*'#148'['#185#238'kR;l'#246#171#11'k'#237'Sq'#152#127'c' +#246#166#27'Oj'#223'6'#190#213#27'[{S'#230#29#140#6#181#246#168'Z'#215#218 +#183#218#215#218#161'k_j|'#193'c'#158'{c'#233'U%'#128#250'WJ'#246#190#213'N{' +'^'#13#28#193#202'y4'#161#164#3#127#1's'#201'<'#26#129#16#9'T/9'#228'c'#169 +'5'#28#193#159#247'q'#31#152'r'#6'im'#173#230#138#237#12#177#182#204#245#6 +#161'$'#150#224#222#166#236'W'#23'6'#177#20#130'f@I'#202#168#254#181#215#248 +'N'#226']J'#7'I'#249#146'&'#198#227#252'@'#215#24#223#235#22'B'#231#238#147 +#183#29#169#201#171']X)'#22#211#203#6#227#156#9#8#25#245#192#172'"'#219#208 +#209#164#181'='#198#199'Ai'#145'H'#173#20#208'J'#156'W'#128#175#143#245#164 +'p'#143#168'\'#249'k'#156'~'#245#137#31#157'E'#127#227#141'R'#242'('#196'ww' +#17#186#146'Y'#196#199'-'#254#21#186#164#251#152#185#249#30#250'>'#197#22#164 ,'4'#246#148#249#231#253#131#180#31'M'#216#198'k]t'#158'3'#142'+'#229'a'#173 +'_'#144#3#221#202#203#158'Ars'#205'jY'#248#227'W'#211#236#158#214#11#134#17 +#145#181#6#226'v}?'#207'zj'#155#234#197#204'}$'#250'f'#209#247'MW'#146#199'g' +#222#24#250#215#130'i?'#16#175#237#220#255#0'hK='#210#241#183#247#165'v'#254 +#134#186'(~('#198#178#137'@'#149'y$'#238#1#152#250'`'#227#173'R'#128#249#143 +'Q{d'#11#146'T'#10#169''''#217'S'#239#202#163#240'5'#230#215#31#18#237#174'>' +'W['#236'1'#249#143#159#144#127#10#177#22#189'e}i$'#231#205#142#24#241#191'|' +#188#3#199'|s'#255#0#215#161'Aw'#31':Gc='#238#154#14#5#200'$'#244#249#27#252 +'+2}CO$'#129'1$z)'#174'U'#220#159'hrP6'#251#246#231#158#217#24#205'^'#185 +#155#247' d'#134#206'q'#235#138#142#231#254'C'#127#157'G}'#247#191#17'X'#191 +'zH'#189#147'6R%tVa'#128'T'#185'>'#216#172#171#242#219#139'm'#198'q'#206'A''' +'"'#182#27#254'<'#27#233#253#22#178#174#190#236#127#238#15#228'+:?'#17#173'E' +#161#140#199'$'#154'z'#242'0'#127#10'ku'#31'JU'#254#149#220#206'A'#193'I`'#7 +'4'#230'B'#6'x'#162#15#243#249#211#251#26#150#221#202' ;'#189')C'#17#140'U' +#193#247#7#251#191#225'U'#15'z'#20#174'&'#172','#146#134'c'#183#129#158#1'9"' +#174#216'jF'#213'''B'#187#214'D'#219#180#156#12#228#28#254#159#202#179#207'_' +#194#129#214#157#144#139')<'#132#157#132#227' '#227#174'q'#237#222#174'}'#190 +'O#'#202#145'#e'#201#201#242#212'6'#15#189'P'#135#239#15#161#169'&'#251#205 +#254#237'CZ'#216#164#143#255#217#255#219#0'C'#0#6#4#4#7#5#7#11#6#6#11#14#10#8 +#10#14#17#14#14#14#14#17#22#19#19#19#19#19#22#17#12#12#12#12#12#12#17#12#12 +#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12 +#12#255#219#0'C'#1#7#9#9#19#12#19'"'#19#19'"'#20#14#14#14#20#20#14#14#14#14 +#20#17#12#12#12#12#12#17#17#12#12#12#12#12#12#17#12#12#12#12#12#12#12#12#12 +#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#255#192#0#17#8#0'p' +#1','#3#1#17#0#2#17#1#3#17#1#255#196#0#28#0#0#3#0#3#1#1#1#0#0#0#0#0#0#0#0#0#2 +#3#4#1#5#6#0#7#8#255#196#0'7'#16#0#1#3#2#4#4#3#6#6#2#3#1#1#0#0#0#1#2#3#17#0 +'!'#4#18'1A'#5'Qa'#240#19'"q'#6#7'2'#129#145#161#20'B'#177#193#225#241'#'#209 +'Rbr'#21#8#255#196#0#25#1#1#1#1#1#1#1#0#0#0#0#0#0#0#0#0#0#0#1#2#3#4#5#255#196 +#0'.'#17#0#2#1#2#4#5#4#2#3#1#0#3#0#0#0#0#0#1#17#2'!'#18'1A'#240#3'Qaq'#145 +#129#161#177#193#19#209'"'#225#241'2'#4'BR'#255#218#0#12#3#1#0#2#17#3#17#0'?' +#0#249#248'lMq='#195#18#142'b'#168#24#150#234'I'#6#6#254#148#144'd7;U'#144#16 +'oj'#164#12'"'#164#148'0'#138#178#2#8#161#3#13#242#160#12'#'#237'P'#12#13#205 +'$'#13'K@'#235#173'I,'#14'Ccq5'#11#3#2#7'+'#212','#12'F'#28#155#197#169'%' +#130#164#165'#'#202#145#243#138#195'E'#13#150#208'>!FT?'#196'Bl'#145'j'#204 +#26#147#222'1'#26#10#214#18'I'#226#243#134#218'QR'#134' '#22#146#171#154#210 +'P@<.'#149'H{'#194#138#3#197#170#146#1','#208#24','#154#178#1'-t'#160#0#183 +#202#170#0#248'U'#24#0#179'V@'#10'k'#190#251#233'@'#1'j'#172#129'Jn(@'#11'u' +#0#181#181#21'd'#130#22#213'$@'#149'7'#223#247'VD'#26#230#225'BA'#4't'#254'+' +#156#129#169'I'#171'$'#24#19'h'#239#191#165'$@a1R@Y*'#201' '#138#178' $'#166 +#129#6#17#20#144#24'M@1('#229#165'Y'#8'rZ'#158#254#222#181'$'#169#12'KsI'#3 +#18#204#210'D'#13'K]*I`rY'#216'RJ9'#13'T'#144'5-T('#196#177#210#146#3#12#244 +#160#12'3I(A'#138'H<'#24#26'P'#25','#9#164#131#5#137#164#131#5#141#234#200#4 +#179'D'#1'-i@'#1'kj'#160#18#207#127#238#128#2#213'A'#0#22'MT'#5#150'y'#208 +#130#212#213#162#128'Ygx'#164#129'Kf'#128'J'#218#164#144'J'#145#210#128'Il' +#208#28#31#9'W'#225']'#202#151'?'#194'w'#219'i'#248#130't'#184#176#144'd'#17 +'j'#228#243#8#235'P'#18#161'"'#227'b;'#239#239'['#144'1'#9#21'd'#12#200#154 +#200#131'9Eh'#129#4'Z'#128'0'#157#234#144'4'#160'kA'#3'B'#5#11#3'R'#138#20'r' +#17#181'@9'#12#138#18#7#165#157#170#20'jY'#20'('#228#177#165'@9'#12'P'#12#12 +#208#13'KU'#0#196#179'B'#134#26#170#2#12#208#25#240'h'#15#22'yP'#30#240'hP' +#11'4'#0#150'i '#2#205'P'#1'f'#168#1'ME'#0'*f'#160#3#194#27#208#176#1'g'#233 +'I'#2#214#205#0#165'2(AJb'#130#4#173#138#16#157#198'9U'#145#4#234'j'#13#8'|' +#227#8#210#177#129'IK'#132#184'M'#129#153#4'YS'#2#4#243#145'1'#210#177'Q'#14 +#159#133#165#196'a'#208#28#4'+'#145'2yo'#4#14'@'#237'Eb'#139#199#251'B'#198#7 +'2'#20#169'u1'#229#191#169#188#29#1#146'@1'#166#182#171' '#127#9#227','#241 +'$fh'#249#134#169#220#127#177#212'Z'#128#176#226#27#137#204#152#152#153#26 +#242#158'}:t'#164#144'x'#21'@c'#161#162#1#165''''#190#254#181'L'#141'H4('#228 +#3#223#127'*'#20'z'#5'd'#20'!'#19'I'#5#8'MI)B'#27'4'#5#8'EB'#142'Cu@'#228#181 +'5'#2#24#150#170#136#24#25#161'CK'#20#16#24'f'#128#247#129'@c'#193#160'0X' +#229'I'#0#150#168'P'#11'5H'#10#154#160#1'MP'#0'Z'#160#22'Z'#161'@-'#26'H'#1 +'MM'#0#181'2{'#239#251#160#22#166#169'%'#22#166#162#164#129'+k'#157'Y!;'#141 +#29'('#9'T'#213#233'$'#131#226#152'\{'#152'5'#231'J'#8't'#27#19#206'f'#241#4 +#207#195'y<'#141#171#166'g$u'#174#241#167'Y'#193#135'V'#160#172'C'#134'2'#136 +'NN`'#230#147'as:'#19#29'k'#131#190'Yo.gI'#142#252#191'g7'#136#197#254'-'#220 ,#207'|j0gM'#238'b'#211'c'#181#237'poZV'#222'`'#140#21'0'#178#166'T`'#19'}'#9 +#230'F'#134'>'#134'"Em'#220#202#13#172'J'#193'96'#189#249#199'8&mnf=k8}'#203 +'''_'#193#253#178'IBQ'#140'NR'#18'<'#194#243#200#196'n$'#216#200#141#14#181 +#29#129#213#176#226'\@ZtP'#4#127'UH94'#144'5'#2'm'#223#127#221'$'#20'!:RAB' +#16'v'#168'X(B"'#128#161#180't'#161'JP'#213'I'#3#208#213#4#15'Kt'#3#144#138 +#160'r'#27#160#28#150#234#1#129#186#20'/'#8#237'@g'#194#161'L'#22#183#160'0[' +'4'#0#22#141#0#5#186#160#2#221#0#10'n'#128#5'4h'#0'-P'#2'['#170'P'#20#213'@' +#1'kc@'#133#169#158#148#2#150#205'@%l'#26#2'wZ'#233'B'#147#150#185#10#3#227 +'O'#160'('#167#14#152'J'#148'd'#145#169#139'Z"$'#11'I'#183'4'#201#21#230#166 +#168#190'ix'#218'-KL'#159'3]'#138'J0n'#22'Q'#231#9#31#28#244#184#3'a''c:'#153 +#136#174#244#188'Jr'#157':'#28#218#194#227#220#152#190#10#164#245#159#168#191 +#215'}b'#252#235#172#18'@K'#153#150#12#30'F'#246#253#230'7'#190#159'#Zj'#198 +'S'#145#153#161'p'#4#164#247#243#245#211#173#235#26#26'6kx'#165#156#136#208 +#168#3#183#253#129#204'E'#185#130#12'E'#185#19#197';'#155'gg'#236#178#29#133 +'+'#16#241'uz'#20'L'#199'X3'#202'-h'#170#170#155#237#17#175'C~]m'#161#153#197 +#4#142'd'#192#250#214#177#18#10#25'R'#28#18#130#20':'#25#253':'#209'2AKi'#164 +#136'+i'#186'IJ'#218'j'#166'"'#193'[lT'#146'AClRK'#5#8'b+D'#28#134'b'#169#7 +'!'#138'I'#7#161#138'IG%'#154'H'#24#150'*IC'#24'z'#3'>'#5#1#130#197#10#9'b' +#128#18#197'Y('#7#15'B'#2'p'#244'('''#15'@'#1#195#237'@'#1#195#208#160'+'#13 +'I'#0'+'#15'@-L'#10#1'Jf'#133#18#166#141#8'%'#198#168#9']n'#133'%[2hC'#225#24 +'W'#131#166'|`V<'#196#0#12'Z$'#146'/3'#4#5'XE'#237'\+'#166'-'#22'vA_['#161'8' +#164#188#234's)I-'#133'E'#136#206#127#246'&'#214#16' E'#225'EV'''#165#13'.s' +#215'%'#219#201#154#148#238#254#162'H'#10'I'#10#212#136#142#154#152#136#214 +#198#218#199#168#173#226#129#22#22#166#209#134#133#20#198'n'#127'O'#150#243 +'y'#141'F'#231'J'#167'W'#161#156#130'F'#28'/'#252#178'G>'#246#190#132'D'#237 +#189#29'qa'#6#209#5')h927'#29'@'#4#129#180#19#230#6#4'\'#197#205'y'#170#204 +#236#178#24#151#241#9#9#197' '#20#200#130'G'#220#31'Y2'#0#133'H'#172#168'V' +#13#130#235#238'(#'#197'Y)'#143#220#137#190#130'>pFh'#9#189#222#252#145#163 +'c'#236#255#0#27'O'#15'|'#184#241'Q'#9#25'R?.'#210'`F'#192#233#175#196'O=O' +#147#8#250#166#1#196'b'#155'K'#205#28#200'X'#144#127#131#127'['#3#204#13')' +#136#212#27'6'#24#155#10#206'#Pm'#24#225#165'Bk8'#139#5#141'p'#197'r'#166'"A' +'[|5\'#170#226'$'#14'O'#14'UiTe'#161#137#225#231#149'\D'#129#201#192#17#181 +'\B'#7'#'#4'v'#20#146'@'#228'`zRK'#3'S'#130#233'I'#1#140#21'Y'#7#142#6#146#12 +#28#21'Y'#2#213#132#2#169'@V'#24'P'#11',U'#0#22'E'#0'%'#170#0#20#213#0#178 +#212#210#4#130'Y'#164#0#14#30'v'#170'I'#1'XSB'#136'^'#28#208#162#28#195#154#2 +'u'#225#205'$'#164#174#225#232#9#212#197#234'H?:'#226#208'K'#133'!'#3'2'#134 +#164#220#204#133'f'#2#228#204#17'xI'#26#18#163#24#165#194#191#143#136'dh'#243 +'x'#2#219#133#213#153#181#227'A '#243#212#159#249#19'x'#136#138'U'#196#149#11 +'_%T'#193#135#150#132#219#226' '#252#199'#'#31#200#191#164#212'T'#183#211#236 +#141#138'|6'#179'*'#146#164#232#14#147#169'''_'#138'F'#224#197't'#166'Wm^' +#166'\18w'#210#1'JA2"'#7#208#192#23#153#3'I'#190#160#214#234#166#12#166'np' +#216'e0'#203#128#255#0#200'@T'#137#253#226#12#144'5'#218#188#149'T'#155#243 +'tv'#165'X'#185#220'['#137'k'#192'@'#25'N'#162#1#249'i'#176#23#131'h'#145'`' +''''#11'='#201#178'GR'#164'eJF'#169#22#28#174'E'#207#174#243#10#215#157'm/' +#217#150'L'#254#28#165'A$'#128#9#177#228'w'','#158#130#255#0'H'#138#221#13'3' +#21'#'#235#222#193#149'+'#2#134#22'$5)'#11#217'W2"'#208#164#17#4'_c$'#16'k' +#12#218'Gm'#131#194#133'DV`I'#209'p'#252#25'0'#8#172':I'#136#222'a'#248'jN' +#212#194'1'#20'+'#134#229#218#180#169'2'#234#3#255#0#158#5'm#8'#131'o'#0#14 +#181'`'#204#136#226#206'5'#194#240#234#196'8'#10#136#248'R5Q'#252#169#6#224 +'f6'#149'BA'#212#212#169#225'R'#21#207#156#143'z\A'#220'RR'#140#15#133#133#7 +#206'HR'#149#23#230#26'HI'#19#25's'#172#169'$e'#184#3#158'7'#211#229'o'#158 +#166#143#165'pl[\S'#14#156'C@'#137#23#4'\'#31#158#198'$'#30'_:'#237'G'#242'_' +';'#229#200#141#199#209#177#24'N'#149#188'$'#147'?'#132'<'#170#225#18#1#195 +'I'#129#173'X'#18#2#240'GZ'#176'$'#153'xZ'#22'E'#171#6'E'#200#170'D'#196#169 +#132#1#152#145#28#231#235#7#127#149'F'#227's'#159'E/ri'#19#146#212#192'"'#180 +#12#2#209'0T'#7#173'FX'#1#231'p'#237#146#146#169#142'B~'#226#213#4#18'9'#196 +'p'#201#231#244#173'@'#129#14'q'#188'*5K'#135#228'?u'#15#210#144' '#157'~' +#212'a['#191#134#179#244#31#185#160't'#145#191#237#187#26'7'#135'Q'#245'X'#31 +#162'Ow'#173#225'3'#16'C'#137#246#217')'#178'X'#131#255#0'ezrH'#238'+8'#10 +#220#9'G'#181#15#190#130#182#218'l'#1#26#175#157#132#2'A7'#6'H'#152#220#9#166 +#12#221#218#165'K'#182'WK'#229#163'8'#239#28#205'v'''#219'E'#161'YCh1'#174 +#177'='#12#153#26'r&'#139#135'&'#157'pH'#255#0#182'.(y[H=L'#254#195'y?i'#180 +#151#227#31#145#19';'#237'S'#170'2'#218'BGX7'#250#8#244#173#170'<'#235#162 +#206#208#161#233#11'7ydU'#179#225#169#197#188#193#5#213#16#146'I'#3'Ry'#193 ,#248'D'#201#212#168#204#216#131'\'#157')'#229#153'f'#0#226#24#199#22#2#172 +#133#25#17#166#194'#i'#141'7<'#236'*'#240#232'K'#168#174#175'N'#132'!'#244#17 +#149'2'#10#141#243'k'#233'#bGO'#222#187'F'#209#203#16#3#21#22'3n'#189#159#216 +'_'#157'\&ds'#15#22#202'V'#137#205'p#'#166#215#157#136#219#231'Y'#169'M'#180 +'7K'#142#231'Z'#218#188'VB'#148#146#159#135'0:'#144'Nk'#145'k'#230#141#1#0 +#129'_%'#217#219#208#246'+'#162'N%'#140#13'yZ '#128'AQ'#6#194#210'l9'#132'Z' +#6#220#166#187#240'ho?'#239#188#152#169#148#225'V'#167'?'#202'#'#197'X'#149#4 +#147#169#189#133#204's'#141't'#7'J'#227']'#156'h'#178#157'{'#239'#T'#185#184 +#10'J'#144#160'r'#133#165'>l'#170#184'<'#228'H#'#144#130#12'D'#25#19'])'#175 +#244'F'#142#219#131'{|'#198#3#12#134#127#4#148#170'J'#188#174#144' '#196'eI' +#11'P'#136' '#146#163'$'#157#0#2#186'S'#195'uk'#173#212'+'#174'K('#182#183 +#204'UZZi'#207#189#220#207'L'#163'.'#166#243#5#239'U'#150#133#240'g4'#141#29 +#219#243#8'(3;'#25#183'#]'#151#7#173#230#214'IF'#137#173'\'#222'g'#208#226 +#248#137#233#222#242#219#209#206#157#162#252#206#175#7#239#183#135#140#137'w' +#0'Q'#149'7)YT'#158'e$'#183#9#184'&'#9'& e'#214#183'ZQd'#157']['#165'O'#162 +#171#197#187#156')W'#187'itI'#191'x'#242'e>'#252#130']Hm'#148'xcU'#22#213'''' +'y'#9'/'#144#158'_'#18#180#188#139'W*h'#169#172#169#197'ir'#227';'#181#10#210 +#161'E'#242#234'u'#169#211'?'#251'G'#167#235'rR}'#250#190#250'2'#179#135'`' +#170'b|'#220#182'O'#137' '#205#224#169'\'#189'{'#254'9'#228#173#221#167#23 +#228#157#229#165#22#202#231'&'#210#255#0#235#218'#'#199'o'#210'#'#199#251#229 +#226#140#161'KK,!'#9#185'*J'#167#212#194#192#3']'#6#215#231'[\%'#175'y'#213 +'t'#237#175'}Nn'#190'^'#231'8'#191#255#0'I'#227#152'qIJ'#24'r/d'#24#229#150 +#235#6#209'3'#127#138#196#128#5'c'#2#165#234#252'G'#178'Y;'#222'z'#216#213 +#223'O?'#179#154#226#30#255#0#184#183#20#197#165#236'[l'#150#209'9Q'#144#249 +'A'#222#18#180#171'8'#128'd,I'#2'dZ'#184#213#194#151'/L'#146#253#237#157')pN' +#223#189#188'_'#138#22#208'd8'#146#146#143'!*'#25'RR'#146#20#165#168#197#228 +#164#172#164#145#4'X'#3'i'#225#168#231#26#185#155'&'#180#210#243#223#165#136 +#234'{'#200#157#175'|'#28'{'#2#135#25#193#227#18#208'Q'#149#20#132#230#155#21 +#4'&2'#140#196#18#163#161#204#172#176'M'#226#225'a'#202'{M'#188#23#28#157#223 +#177'~'#255#0'x'#179'h'#252'/'#24'[KQ$'#248#203#16#160'T'#169'JT'#216#9#182 +#161#30#24'(J'#10'A'#0#233#234#166#154'U'#159#158#175#188#229#148'dsok'#166 +#229#234'wx'#127'z'#152#226#149#128#25's'#195'%$'#193#4#17'rU'#10#26'\i'#5'0' +'z'#215'O'#197'N'#151#139'7'#172#231':'#19#22#244#251#183#169#207';'#239#221 +'X|b'#176#206#184#200'Y'#23#177#202#15#149'I'#243#5'n'#8#212#232#12#154#229 +'U'#20#167#187'N'#155#208#234#158#253#191'e'#14'{'#245'^9'#245'a'#216','#133 +#128#1#0'+'#214'[QQA''C'#25#134#164's'#168#232#166#167#156'h'#249'?'#215#184 +'O'#15']o'#247#17'1'#166'^,l'#24#247#141#196#157'P)'#203#190#160'z'#232' [M"' +'5'#171#248'R'#190#127#30'7bb'#157#244#131's'#141#246#199#136')'#182#217'x!' +#151#16'.'#171'I'#155#139#1#0#238' |'#181#163'^'#222'KM0'#251#233#161';>'#208 +'/'#16'T'#30#198'!'#1'" '#139#29#172#8'!D'#235'0'#4#235#150#211#151'GG'#25'(' +#254#178#158'o'#212#232#163#164#235#183#235#207#162'6x_h8f'#13#130#235#206 +#167#18't'#8'Kpz'#28#199','#129#2'AT'#220#145':'#214#169#163#189#185#231#181 +#157#236'f'#171#229'n'#191'^'#239'M'#13'&+'#219#172':'#20#127#15#133'QI'#143 +#137'@u'#145#149'$'#143'6'#158'k'#139#29'b'#159#138'u'#223#213#198'8'#239#245 +#216#151#29#239#8#148#4#225#240'm"7Vem'#27#145#235'h'#159#172#237'p'#251'|' +#252#246'2'#234#158'~'#203#225#127#134#137'^'#215'c\'#204'Hi9'#164#206'S>' +#130'$'#166#252#178#141'D'#237'S'#241#165#205#248'.9'#228#163#184'#'#218#231 +#200#30':'#26'PL'#128#146#149'ho'#154'RRTPf'#2#150'd'#24#130#0#136#248'k}w' +#245#145#181#196#223#251'>'#208'j'#177#30#211'c'#148#217'a$%'#4#147#1' '#27 +#222'&3'#20#216'@$'#199#206'Ip'#210#223#218#237#216#197'\V'#247#190'f'#161 +#204'~ '#170'I3'#242#174#152'Q'#205#212#196#226'1'#207#186'e'#197#21#30#127 +#185';'#243#189'EJD'#198#197'~!GR@'#190#131#233#210'&'#199#149#204#29#227'AT' +'L'#188'J'#246#188#127'zvm'#173'X'#24#128'O'#18'u'#3'*'#160#129';'#9#184#129 +#235#6#12#27'[i5'#151'IS'#20#190','#249#129#9#176#141#13#250#152' O'#203#214 +#242'M'#141#251#21'='#220#249#243#237#168'y,'#0'U'#192#130'D'#235#0#155#233#2 +#227#145'1c'#227'O'#221#30#134#137'1'#197'.'#136'3k'#9#215#153#146'"G#'#22 +#208'WZ-'#235#189'LUsV'#159'!'#184#145#223#239#221#171#210'p'#200'5'#168#147 +'&'#6#255#0#235#211']'#255#0#164#9'6'#28#25#224#28#9#202'T'#179#4'o'#31#249#0 +'H'#180#222'cAmk'#135#21'J'#233#242'u'#225#230'u%'#204#193'ID|'#10#204'z'#234 +#18'N'#202#144#145#173#128#31#242'5'#242'b7'#183#254#158#194'|_'#13'A`'#180 +','#130#231#154'.T'#4'e'#189#135#196'v'#146'lu0;S'#197#135':'#195'K'#146'dtX' +'j'#27'ZAi3'#184'$[_'#249'^2'#198#128#232#0#153#202''''#155'z'#231#211#176'F' +'U'#137#1#180#169'I'#204#152#2't*'#130#174'b'#201'$'#157'.v'#129'ap'#223#151 +'NR'#27#182#238')'#206'"'#25'q'#9'f'#235#16'|'#194#192'\'#232'l'#175']'#128 ,#235'n'#212'('#222#167#26#156#190#196#135#29#138'm'#210#247#198#131'|'#166 +#211#233#16'@'#153'1bw'#231'^'#154'jMFO'#153#201#210'N'#255#0#180#15#202#242 +#152'I'#136#233'7'#250#141'7'#222'nm'#209'S'#188#142'i'#141#225#28'a'#220'K' +#137#195'9*R'#142#187#233'}u'#176#190#150#154#173'`R'#138#148#151'+'#143'a' +#154#204#27'Q*I'#180#141'~'#151#212#244#169#137#145#164'U'#140#247#128#167'8' +'{'#188'5'#166#146'R'#240#25#150#161'+L'#28#192'6'#189'R'#20'c6'#153#137'#Mz' +#170#156'C'#143#229#174#171#183#248's|;'#207'#'#140'S'#145#167'}'#250'iP'#232 +#14'e$'#137#153#255#0't@'#204#169'fg^'#228#234'zoL'#136#212#150#224'x'#138 +#176#168'R2'#161'JR'#146'B'#136#243#8#155'%z'#128'df'#0#140#208#1#17'j'#214 +'+D+'#197#245'Q'#162#232#245#17#189#12';'#197#241'8'#135'C'#143','#172#131 +#162#137'#'#153#2#250#29'H'#6#9#190#186#225#164#194'F'#224'{{'#143'F'#29#236 +#27'j'#8'o'#16#0'r'#7#152#193#144'R'#163#230'N'#128#16#146#18'F'#160#201#156 +#164#215#169#168'9'#244#188'L'#153#254#127#223#206#171'E'#147'i'#193'='#163 +'{'#134'<'#135#18'e'#176#164#146#147#184#26#129'3'#148#145#249#192#182#163 +#149'c'#15','#202#156'gu'#175'^h'#250#138'}'#239'p'#162#225'Z0'#235'B&'#195 +'6c'#17#185#1'1'#6'D^'#221'M'#174'7'#250'+'#137#233#173#243#221#246#141#134 +';'#222'?'#10'y%'#252'9'#8#206#10#146#217'U'#192#152#202#165#128'`'#137#144 +#13#202'GQ='#149'J9>\'#142'q/'#160'\g'#218#148#178#227'G'#132'4^i'#192#128 +#153'^e'#19'p'#168'p'#8'R'#188#185#192')'#156#166'I'#231'e'#197#161#251#239 +'Q*z'#27'&'#189#167'a,eu)K'#197'Y'#129'+'#146#2'I'#10'NPb'#8#243'I'#189#180 +#185#203#167'J'#237#211'[o'#216#180#215#189#6#163#222#151#13'/-/0'#151'] ' +#133#132#249'@ '#144'U'#160#9#129#0#132#16#1#6#241'^v'#227'+'#250'e'#190#144 +'u'#198#162#235#236#214'c}'#224'pWq)'#195#176#188#165'B'#9#252#179#164#133#16 +' ('#216'X'#196']Pf'#183'MiZ'#239#175#236#197'W'#203#193'R'#253#181#225#28'/' +#22#134#31'!'#215#18#176#144#144#1'IT'#198'E'#174#8' ('#128'r'#152#137#139 +#233#135'T'#217'o'#250'7'#255#0'9'#251'g'#230#251#208'n#'#141'a'#30'J'#210 +#195'h'#8'p'#200'?'#17'LH)J'#196#8'3'#230#242#236'4'#138#235'O'#13#197#222 +''''#207'/i'#127','#197'\T'#244#131#223#253'\9-'#173'XT'#146#210'@'#132#146#2 +#200'3.'#2#9'2'#12#16#149' '#242' '#212'|7'#207#207'/#'#242#173'Q'#171#226#24 +#182#241#14#21'4'#132#182#149#27'%7'#131#208#146'O'#165#207'-u'#221'4s9'#213 +#196#156#172#3'X'#156'2p'#203'm'#196#130#233' '#165'W'#157#194#146'`'#229#130 +'nd'#21'Jb'#210'k'#158'n'#219#223#209#164#210'P'#213#247'`q8'#236'2'#176'!' +#182#240#228'b'#1'$'#185'2'#8#229#22#22#131#160#182#228#197#21#13';'#229#239 +#181#246'G'#196'Q'#149#249#238#230#136#227#154'm$'#186#147';F'#227'x'#6#231 +#239#21#170#148'\'#231'MR'#14#31#29#132#196#184#18#165#22#155'6'#206'E'#135 +'R,'#168#235#206#8#16'Ers'#19#155#229#151#185#209'g'#4#199#137'a'#9#242#140 +#192'ZI'#3#237'x'#250#207'15'#20#191#244#209#193'>'#241'i'#25#148',I>'#164 +#196#253#163'I'#244#19'~4'#172'Ov;7'#4'l<'#2#130#148'G'#152#131#247#189#186 +#136#211#173'v'#169'{'#28#211'6'#141#224#152'm'#226#232'Jr'#229'3<'#245#144 +'&'#5#164'F'#186#192#175'#'#226'6'#163#174#158'.uT'#169'2'#239#4'a'#197')y' +#165'N'#28#192#13#167'KA'#222#246#128'tH'#210#139#255#0'!'#248#206'sc'#241 +#175'QH'#225#10#193#2'J'#224#16'AVSa'#251#27'_'#148#197#205'i'#241#177#247'Z' +'s'#253#163'+'#135#132#219'`'#218#241'T'#218'6'#137#157#180';H'#4#168#25'3' +#173#137#210#222'n%p'#158#223#158#157#15'B'#25#196'1'#5#187#162'VTDN'#151#148 +#139#9#131'$'#17#23#204'F'#208'F8T'#206'v'#143'6'#219'-L^-ki'#165'a'#165'>T' +#131#0#137#136#178'-'#177#2#12#234#4#168#155'V'#233'I'#185#231'n~'#164#169 +#197#133''''#9')W'#142#160#16#216#131'& '#216#216#137#177'+\o'#202#226#186':' +#175'l'#222#239#234'eS'#225#18'b1'#173#161'J&'#2'M'#164'&OD'#249#138'@'#2#196 +#1#152#0'n'#165#27#30#202#153#239#189#12'URD'#159#136'.$'#133'NC'#249#140#11 +'iaru7'#6'>u'#210'#'#185#134#228#213#186#162#130'R'#8#177#183'b~'#162#189'(' +#224#15#139#148#216#253';'#159#227#214#181#153#25#128#241#239#187'T'#130'H' +#192#225#139'w'#254#245#168'jA7T'#237#223#127#200#154#178'E'#224#200'^k'#171 +'A'#222#149#11#152'~('#22#0'u'#254#163#251#172#193'A'#207#200'@'#31#213#251 +#183#233'`I'#144#233'7:'#143#228#210#10#10#157#133'N'#243#217#235#247#235'z' +#168#201#140#209#166#157#247#167#237'@'#17'p'#192#239#191'A'#250'Q'#9#30#198 +'5'#220'1'#30#17#1'Z'#200#23#26#232'u'#2#12#16#13#247#184#17#135'L'#230'Y' +#131#201#197#157#8#26#255#0#127'3'#211'z:Be8~-'#137#194#156#216'W'#20#220#139 +#148'('#142#134'`'#141#137#183'#'#214#138#197'`'#167#22#248'Xq'#165'(,L'#25 +#155#155#24#229'"7'#254#18'E'#236'g'#241#25#127#246'u'#131#166#147#17#177#220 +'\}k'#27#238'm'#176#22#253#129#251#247'x'#31#181#18'$'#150#240#140'Z'#27'R' +#148#236#170#16'`'#12#186#243#204#230'd'#164#136#145#149'9'#182'I'#19'U'#17 +#157'g'#177#175#184']['#165'g'#240'I'#4'$)@'#156#231'('#9')'#6#217#179#28#167 +','#19'a'#21#170'[]'#142'U'#251#157'7'#180#190#212#30#14#0'm'#4#169'@'#193 +#145#255#0'\'#166#8#149'$'#164#133#5'$'#229'3'#18'*UY'#138'i'#147#139#224''#127'/'#203'L'#196#153#177#214'U#'#144#189'x*'#143#23#254#143 +'J+'#146#148'('#160'IJB'#160#137#155#129#212'H'#181#132#250#139#138#227#159 +#171'4k'#184#198'%@J'#150'E'#165'6'#177#188'X'#13'fI'#204'F'#160#146'f+'#211 +#193#160#229']Ex2'#6#13#152#146#226#193'n'#218#252'D'#220#130'-'#150#1#189 +#224'Z'#185'q?'#233#242'W'#245#237#205'3'#173#25'.n'#197#159#130#3#198'q*P'#1 +'J'#203'&D'#3#1'Q'#204'JBM'#204#128#127'-c'#30'Yzs{'#249#208#218#167'='#216 +#156'a'#2'[m'#160'$'#188#172#178#1#147#27#222#240'3@'#182#196#141'+x'#165#246 +#203'}L'#199#172#253#7#143#7#28#130'[Im'#164#174'b.'#162'w'#0'k'#3'I'#128#145 +#161'$'#146'g'#15#248';'#221#181#224#181')'#232#190'MF)'#31#135#1'jl6'#19'a' +#152#133#31#146'.#S'#240#24'3'#230'"'#189#148#223'q'#239#250'<'#245'[rB'#254 +' 8'#185#186#137#130#162'yuI'#248'@'#128'5'#228#0#174#170#147#13#255#0'd'#174 +#20#147')'#208#242#253#183#239#173't9'#177'd'#141';'#255#0'q'#243#231'z'#214 +'Dw2'#220#27'w'#254#190#148'a'#12#204#0#210#221#253#186'VM'#30#203#151#191 +#218#166'a'#163#0#128'|'#189#244#239'_'#165'h'#30#177#129'i'#239#244#253'~' +#149#0'M'#229' '#143#159'}'#254#149#24'm;'#245#233#251#213'*'#25'p;'#251#154#198'e'#145#140 +'x'#139'XK`'#168#159#202#4#206#250#11#255#0'^'#148#194'LP'#25'X?'#20#131#222 +#231'Q'#180'V'#13#136'Y'#141#251#239#159#206#182#140#134#219#130'@'#212#155 +'_'#245#216#212#128'?'#15#138'Kj'#200'V'#160#218#163'2GO'#135'PA'#191'CM'#3 +'>'#137#197'K'#219#186'6'#156#3#141'p'#244#188#211'|E'#144#251 +'`'#132#28#249#178#165'3'#241#0#218#146#178#164#146'I'#204#165'yS'#145' '#230 +#10#28'+'#166#214#179#246#13'Iv)\!'#151#252#22's'#184#136#133':'#209#203#148 +#18#172#222#24'P%m'#229'PH'#241#13#210'T'#23'{'#215#158#156'O;s'#180#253#230 +'iS'#204#229#241'Xv'#148#185'mIP'#234#8#131#161#17#17#175')'#21#233'M'#150#17 +#31#24'q'#165#148#165#4#231'I '#219'c'#164'(j'#4#29'y'#218#213#174#10'k'#212 +#181#139#194#4#187#228'I3'#164#31#212#199#206#215#233'Z'#173#197#197'77'#141 +#31#12#164#18#160#16'r'#157#200#185#136#3'(9'#128#180#216#9#180#155#248']' +#253'N'#202#195'p.'#184#144#225'v'#200'**'#153#188#145#149' '#236'R'#0'3i'#4 +#200'$'#215':'#210'q'#23'q'#29'9'#183#223'y'#26#165#248'#'#199#187#135'~'#2 +#21#9#7#226#212'H'#16'b'#211#6#208'D'#233#243'>'#142#26#170#159#215#127'c' +#157'M2'#142#0'C'#229#182#202#242#165#14'f'''#161#128'd+l'#193'1'#189#204's' +#25#227'(M'#230#218#248':p'#175#232#205#202#2#220'K'#142#31#135'"'#18#18'N' +#146'V'#236#242#0'8'#171#200#129#150'3ydy'#29#161'uw'#231#9'/'#141#220#244 +#243#236#148'{'#201'F'#16'%8S'#138#4')-'#133#229'R'#167#243#31#12#144'4'#132 +#128'fD'#1#2#217#166#177'Ss'#135#156'JV'#178'S~'#243#184'*QL'#231#19'~'#175 +#244'h'#177'x'#215'U'#134'['#143')D'#165#196'$'#25#255#0#170#201#181#192#7'(' +' h'#4'E{)'#161'M'#185'?'#149#175#169#230#170#167#30#166#161#220#174' '#172 +#140#160'o;'#237':'#18'@'#216'k'#164#9#175']6'#182#224#224#201#142')0P'#148 +'B`'#205#204#153#176#157#133#141#147#181#181'7=`'#198'-'#243'&I'#191#151'N' +#251#249#214#140#24#7'('#154#185#131':'#201#239#250#239'zH'#24#202#210#145'{' +#199#219#229'Xw*'#176#213#0#225#155#139'_'#244#235#252#219'KNf'#11#153#133' ' +'% '#254'k'#255#0'3'#246#250#213'NJ$'#146#163#26'zo'#235#223'J'#209#144#196 +#196'"O|'#244#255#0'u'#31'R'#142'C'#25'D'#171'S'#183'{'#243#244#249#140':' +#139#132'R'#217')&'#15#203'~}-'#17#252#10#210#168#203'@'#29'm'#203#191#189 +#190#213#162#177'eW'#212#247'j'#166'L'#158#154#247#207'N'#237#200'C)V['#14 +#251#245#168'T'#204#155#220#205#251#253'('#10'8v?'#19#195#221'N/'#10#181'4' +#234'.'#149#160#144#161#180#164#136' '#193'#'#172#198#134#181'MX\'#175#250'W' +'R'#147'S'#217#166#159#170'#\'#242#5'N'#169#213#151#9'%J2I'#220#238'N'#230'O' +'rk'#153'P'#11#130'Nn'#251#219#250#146'()VS?N'#255#0#159#245'W2'#132#151'3' +#205#164#234'G'#166#255#0'!'#127'JA'#153'7#'#185'+TJ'#128'$'#148#3'9'#19#8#6#210'mu'#202'T'#217'a'#151'1' +#252#170'uFoT'#162#220#165#189'YR'#247#241#233#247#207'SX'#254' '#186'|E'#146 +#165'+s'#169#191'='#254#127'Z'#228#145#160'R'#178#162'S>'#159#175#223#233'&4' +#173'5'#0'&^i.'#5#186#149'.'#8#242#218#226'd'#140#202#11#3#164#161'c'#154'H' +#145'Z'#164#203'a'#179#254'5'#148#172#18#13#164'}=;'#223'nU_/'#6#233#176#215 +#193#152#6#231'_A~'#144'#'#159'Y'#189'e'#26'c'#177#28'E'#183'W'#155#22#149'8' +#228#1#153'*'#203'`'#0#22#0#201#129'u\'#171'RI'#185#213#9'%'#239#228#230#236 +'/'#136#240#28'[ '#135#27'P)Nb"'#224#24#0#169'6#4'#200#152'1& '#18'1'#195#227 +#211'VM51+&'#214'p'#245#131#173'|6'#183#127'SY'#131#204#219#144'E'#249's'#252 +#194#218#193#250#17#169#175'EnQ'#198#155'3'#167'l'#151#27#133#217'f'''#233'7' +'$E'#166'H'#26#27'\'#218#190'cP'#249#163#214#133'>CI'#13'\'#132#147#173#193 +#155'^fF'#218'Z'#208'7:'#166#247#183#196#25#170#198#179#20#225'l'#248'j'#25 +'r'#237#3#234'~'#190#177#210#213#234#165'M'#206'l'#218'{;'#134#24#133#173#2 +#240#16#1#26#130'ND'#152#180#128'W1;'#29#133'p'#227'U'#11#188#231#148'%/'#227 +#220#239#193'S'#233#242#206#133#211#248#164'b1l'#131#144#144#148#166#5#206'g' +#242#164#15'D'#130#153'*2A'#0#144#5'xb'#26#165#231'v'#250'+K'#247#244#186#147 +#213#18#155#231'n'#247#176#158'$'#234'px'#22#240#204']'#239'4'#153#176#203'%' +#194#144'lB'#156's'#203'3'#157#13#164#169' '#192#174#156'/'#229'So'#254'm'#30 +#185'_'#178#244'l'#149#188'4'#164#179#188#253#191','#139#13#136#241#176#206 +#151#22'RR'#1'*'#176#252#201#136#128#7#151'1I L'#153#131'5'#218#165#21'[[E' +#249'n'#199#21'usY'#140'}'#199#1'ej'#0#163#204#6#163#238#18#149'N'#234#204'f' +'lN'#149#222#138'b'#249#205#186#156'jf'#171#20#210#146#159'2'#0';'#197#190'p' +'~'#196#12#183#181#171#213'K8'#187#19'd)'#244#251#253'7'#223#251#173#152#129 +'b'#253'/'#223'}j'#144'0'#162' '#13#245#168'P'#164#2'/n'#251#210#160#145#136 +'9'#4'no'#29#254#149#156#198'@'#165#213'Lw'#223'A'#253#216'(hIR'#132#136#29 +'G}u'#172#178#162#137#9#152'#~'#253'>'#181#204#217#133','#21'A'#219#176'7' +#159#238#247#171#6'd'#24#17'r i'#223'_'#181'P'#3'iYW'#134#152#158#249#223#175 +'!'#202#180#220#17'Hj'#193#146'T'#9#248#127'M'#143'I'#253#239#165'eW'#238'\ ' +#156'*'#194'B'#160'_O'#246'y|'#185'hj'#227'$X'#157'M'#172#28#169#6#183'&O'#16 +#163'm'#186#253#15#237'T'#5#16' '#146''''#191#215#229#214#215#133#1'Y'#254'/' +#203#222#223#223#173'S,'#16#149#27's'#239#214#169' -'#228#234'*'#26'<'#133 +#169#7'0=?'#223#219#189'h'#6#182#184#23#2#253#239#161#168'T/'#204#163''''#233 +#250'w'#127#189'P'#199'6JT'#146#160'r'#158#127'}m'#243#29'/Ya'#21#132#183#30 +'x$i'#127#172#199'X"'#246'3'#202#184#221'oC'#165#143'8'#149'6."u'#29'7'#131 +'x'#157#164'i~`'#197'p'#197#171#252#160#129'!V'#137#215'h'#250'~'#177#204#214 +#213#187#7'q'#11'u''R'#169#142'C'#247#173#164#204#182#127#255#217#7'Stretch' +#9#0#0#11'TStaticText'#11'StaticText1'#22'AnchorSideLeft.Control'#7#5'Owner' +#19'AnchorSideLeft.Side'#7#9'asrCenter'#21'AnchorSideTop.Control'#7#5'Owner' +#4'Left'#2','#6'Height'#2#28#3'Top'#2#0#5'Width'#3#235#0#9'Alignment'#7#8'ta' +'Center'#8'AutoSize'#9#7'Caption'#6#24'Unihedron Device Manager'#11'Font.Hei' +'ght'#2#239#9'Font.Name'#6#4'Sans'#10'Font.Style'#11#6'fsBold'#0#10'ParentFo' +'nt'#8#8'TabOrder'#2#0#0#0#11'TStaticText'#6'Label1'#4'Left'#2#4#6'Height'#2 +#25#3'Top'#3#152#0#5'Width'#3'5'#1#9'Alignment'#7#8'taCenter'#8'AutoSize'#9#7 +'Caption'#6'.Checking for attached devices, please wait ...'#5'Color'#4#193 +#187#177#0#11'ParentColor'#8#8'TabOrder'#2#1#0#0#6'TTimer'#6'Timer1'#7'OnTim' +'er'#7#11'Timer1Timer'#4'Left'#2'j'#3'Top'#2'0'#0#0#0 ]); ./reset.png0000644000175000017500000000166114576573022013004 0ustar anthonyanthonyPNG  IHDRabKGD pHYs:tIME  >IDAT8mKh\ewwg23y1ͫ445-6*@i>"A"P,n7n\`)J$Mh'ϙ$3XY9ϥP5:q'l?9SWGRyI_Z%/掞 OHYrmp'Xϼ*o"]>'3*M^U`\*sO(Mq {ebEgAZ+Nu]zkщ](6w}1qft`S;3o٫>:@WsC˽QVnɇTBikCAWQm2wZeq+ܚo,5KF 遺x* \m7V+;jAy#JDPQF)q'Jf S/;1sV`(iXKwlzU}*G}t{щ';M[Q_yQTxkvSucZ =%Q"^Sjh(V+ׁS8R0^R"yIӉ!{Myîg{\pZTy'SCR-rpri]IA7pN5[ZnkrpA??5 b ?0M;?ކ:C]CWrWo{h"蘲M]x6-3pqom |*ٌ'`n qcH$׀%7C IENDB`./dlretrieve.lrs0000644000175000017500000017044714576573022014054 0ustar anthonyanthony{ This is an automatically generated lazarus resource file } LazarusResources.Add('TDLRetrieveForm','FORMDATA',[ 'TPF0'#15'TDLRetrieveForm'#14'DLRetrieveForm'#4'Left'#3'}'#8#6'Height'#3'L'#3 +#3'Top'#2'>'#5'Width'#3#2#3#13'ActiveControl'#7#15'DLGHeaderButton'#7'Anchor' +'s'#11#0#7'Caption'#6#11'DL Retrieve'#12'ClientHeight'#3'L'#3#11'ClientWidth' +#3#2#3#21'Constraints.MinHeight'#3#144#1#20'Constraints.MinWidth'#3#233#2#8 +'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#8'Position'#7#17'poOwner' +'FormCenter'#10'LCLVersion'#6#7'3.0.0.3'#0#7'TButton'#15'DLGHeaderButton'#22 +'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#4'L' +'eft'#2#5#6'Height'#2'"'#4'Hint'#6'%Open the file header definition page.'#3 +'Top'#2#5#5'Width'#2';'#18'BorderSpacing.Left'#2#5#17'BorderSpacing.Top'#2#5 +#7'Caption'#6#6'Header'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#0#7 +'OnClick'#7#20'DLGHeaderButtonClick'#0#0#7'TButton'#19'DLRetrieveAllButton' +#22'AnchorSideLeft.Control'#7#5'Block'#19'AnchorSideLeft.Side'#7#9'asrBottom' +#21'AnchorSideTop.Control'#7#15'DLGHeaderButton'#4'Left'#3#208#0#6'Height'#2 +'"'#4'Hint'#6'-Colect all records via ASCII format (slower).'#3'Top'#2#5#5'W' +'idth'#2'\'#18'BorderSpacing.Left'#2#5#7'Caption'#6#16'Ret. all (ASCII)'#14 +'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#1#7'OnClick'#7#24'DLRetrieveA' +'llButtonClick'#0#0#7'TButton'#22'DLCancelRetrieveButton'#19'AnchorSideLeft.' +'Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#19'DLRetrieveAllButton'#23 +'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom' +#4'Left'#3#184#2#6'Height'#2'"'#4'Hint'#6#26'Cancel retrieving records.'#3'T' +'op'#2#5#5'Width'#2'E'#7'Anchors'#11#5'akTop'#7'akRight'#0#19'BorderSpacing.' +'Right'#2#5#7'Caption'#6#6'Cancel'#7'Enabled'#8#14'ParentShowHint'#8#8'ShowH' +'int'#9#8'TabOrder'#2#4#7'OnClick'#7#27'DLCancelRetrieveButtonClick'#0#0#244 +#8'TSynMemo'#8'SynMemo1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSide' +'Top.Control'#7#14'RecentFileEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'#23 +'AnchorSideRight.Control'#7#14'RecentFileEdit'#20'AnchorSideRight.Side'#7#9 +'asrBottom'#21'AnchorSideBottom.Side'#7#9'asrBottom'#6'Cursor'#7#7'crIBeam'#4 +'Left'#2#5#6'Height'#2'P'#3'Top'#3#131#0#5'Width'#3#223#2#18'BorderSpacing.L' +'eft'#2#5#17'BorderSpacing.Top'#2#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRig' +'ht'#0#11'Font.Height'#2#243#9'Font.Name'#6#11'Courier New'#10'Font.Pitch'#7 +#7'fpFixed'#12'Font.Quality'#7#16'fqNonAntialiased'#11'ParentColor'#8#10'Par' +'entFont'#8#8'TabOrder'#2#5#14'Gutter.Visible'#8#12'Gutter.Width'#2'9'#19'Gu' +'tter.MouseActions'#14#0#10'Keystrokes'#14#1#7'Command'#7#4'ecUp'#8'ShortCut' +#2'&'#0#1#7'Command'#7#7'ecSelUp'#8'ShortCut'#3'& '#0#1#7'Command'#7#10'ecSc' +'rollUp'#8'ShortCut'#3'&@'#0#1#7'Command'#7#6'ecDown'#8'ShortCut'#2'('#0#1#7 +'Command'#7#9'ecSelDown'#8'ShortCut'#3'( '#0#1#7'Command'#7#12'ecScrollDown' +#8'ShortCut'#3'(@'#0#1#7'Command'#7#6'ecLeft'#8'ShortCut'#2'%'#0#1#7'Command' +#7#9'ecSelLeft'#8'ShortCut'#3'% '#0#1#7'Command'#7#10'ecWordLeft'#8'ShortCut' +#3'%@'#0#1#7'Command'#7#13'ecSelWordLeft'#8'ShortCut'#3'%`'#0#1#7'Command'#7 +#7'ecRight'#8'ShortCut'#2''''#0#1#7'Command'#7#10'ecSelRight'#8'ShortCut'#3 +''' '#0#1#7'Command'#7#11'ecWordRight'#8'ShortCut'#3'''@'#0#1#7'Command'#7#14 +'ecSelWordRight'#8'ShortCut'#3'''`'#0#1#7'Command'#7#10'ecPageDown'#8'ShortC' +'ut'#2'"'#0#1#7'Command'#7#13'ecSelPageDown'#8'ShortCut'#3'" '#0#1#7'Command' +#7#12'ecPageBottom'#8'ShortCut'#3'"@'#0#1#7'Command'#7#15'ecSelPageBottom'#8 +'ShortCut'#3'"`'#0#1#7'Command'#7#8'ecPageUp'#8'ShortCut'#2'!'#0#1#7'Command' +#7#11'ecSelPageUp'#8'ShortCut'#3'! '#0#1#7'Command'#7#9'ecPageTop'#8'ShortCu' +'t'#3'!@'#0#1#7'Command'#7#12'ecSelPageTop'#8'ShortCut'#3'!`'#0#1#7'Command' +#7#11'ecLineStart'#8'ShortCut'#2'$'#0#1#7'Command'#7#14'ecSelLineStart'#8'Sh' +'ortCut'#3'$ '#0#1#7'Command'#7#11'ecEditorTop'#8'ShortCut'#3'$@'#0#1#7'Comm' +'and'#7#14'ecSelEditorTop'#8'ShortCut'#3'$`'#0#1#7'Command'#7#9'ecLineEnd'#8 +'ShortCut'#2'#'#0#1#7'Command'#7#12'ecSelLineEnd'#8'ShortCut'#3'# '#0#1#7'Co' +'mmand'#7#14'ecEditorBottom'#8'ShortCut'#3'#@'#0#1#7'Command'#7#17'ecSelEdit' +'orBottom'#8'ShortCut'#3'#`'#0#1#7'Command'#7#12'ecToggleMode'#8'ShortCut'#2 +'-'#0#1#7'Command'#7#6'ecCopy'#8'ShortCut'#3'-@'#0#1#7'Command'#7#7'ecPaste' +#8'ShortCut'#3'- '#0#1#7'Command'#7#12'ecDeleteChar'#8'ShortCut'#2'.'#0#1#7 +'Command'#7#5'ecCut'#8'ShortCut'#3'. '#0#1#7'Command'#7#16'ecDeleteLastChar' +#8'ShortCut'#2#8#0#1#7'Command'#7#16'ecDeleteLastChar'#8'ShortCut'#3#8' '#0#1 +#7'Command'#7#16'ecDeleteLastWord'#8'ShortCut'#3#8'@'#0#1#7'Command'#7#6'ecU' +'ndo'#8'ShortCut'#4#8#128#0#0#0#1#7'Command'#7#6'ecRedo'#8'ShortCut'#4#8#160 +#0#0#0#1#7'Command'#7#11'ecLineBreak'#8'ShortCut'#2#13#0#1#7'Command'#7#11'e' +'cSelectAll'#8'ShortCut'#3'A@'#0#1#7'Command'#7#6'ecCopy'#8'ShortCut'#3'C@'#0 +#1#7'Command'#7#13'ecBlockIndent'#8'ShortCut'#3'I`'#0#1#7'Command'#7#11'ecLi' +'neBreak'#8'ShortCut'#3'M@'#0#1#7'Command'#7#12'ecInsertLine'#8'ShortCut'#3 +'N@'#0#1#7'Command'#7#12'ecDeleteWord'#8'ShortCut'#3'T@'#0#1#7'Command'#7#15 ,'ecBlockUnindent'#8'ShortCut'#3'U`'#0#1#7'Command'#7#7'ecPaste'#8'ShortCut'#3 +'V@'#0#1#7'Command'#7#5'ecCut'#8'ShortCut'#3'X@'#0#1#7'Command'#7#12'ecDelet' +'eLine'#8'ShortCut'#3'Y@'#0#1#7'Command'#7#11'ecDeleteEOL'#8'ShortCut'#3'Y`' +#0#1#7'Command'#7#6'ecUndo'#8'ShortCut'#3'Z@'#0#1#7'Command'#7#6'ecRedo'#8'S' +'hortCut'#3'Z`'#0#1#7'Command'#7#13'ecGotoMarker0'#8'ShortCut'#3'0@'#0#1#7'C' +'ommand'#7#13'ecGotoMarker1'#8'ShortCut'#3'1@'#0#1#7'Command'#7#13'ecGotoMar' +'ker2'#8'ShortCut'#3'2@'#0#1#7'Command'#7#13'ecGotoMarker3'#8'ShortCut'#3'3@' +#0#1#7'Command'#7#13'ecGotoMarker4'#8'ShortCut'#3'4@'#0#1#7'Command'#7#13'ec' +'GotoMarker5'#8'ShortCut'#3'5@'#0#1#7'Command'#7#13'ecGotoMarker6'#8'ShortCu' +'t'#3'6@'#0#1#7'Command'#7#13'ecGotoMarker7'#8'ShortCut'#3'7@'#0#1#7'Command' +#7#13'ecGotoMarker8'#8'ShortCut'#3'8@'#0#1#7'Command'#7#13'ecGotoMarker9'#8 +'ShortCut'#3'9@'#0#1#7'Command'#7#12'ecSetMarker0'#8'ShortCut'#3'0`'#0#1#7'C' +'ommand'#7#12'ecSetMarker1'#8'ShortCut'#3'1`'#0#1#7'Command'#7#12'ecSetMarke' +'r2'#8'ShortCut'#3'2`'#0#1#7'Command'#7#12'ecSetMarker3'#8'ShortCut'#3'3`'#0 +#1#7'Command'#7#12'ecSetMarker4'#8'ShortCut'#3'4`'#0#1#7'Command'#7#12'ecSet' +'Marker5'#8'ShortCut'#3'5`'#0#1#7'Command'#7#12'ecSetMarker6'#8'ShortCut'#3 +'6`'#0#1#7'Command'#7#12'ecSetMarker7'#8'ShortCut'#3'7`'#0#1#7'Command'#7#12 +'ecSetMarker8'#8'ShortCut'#3'8`'#0#1#7'Command'#7#12'ecSetMarker9'#8'ShortCu' +'t'#3'9`'#0#1#7'Command'#7#12'EcFoldLevel1'#8'ShortCut'#4'1'#160#0#0#0#1#7'C' +'ommand'#7#12'EcFoldLevel2'#8'ShortCut'#4'2'#160#0#0#0#1#7'Command'#7#12'EcF' +'oldLevel1'#8'ShortCut'#4'3'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel1'#8'Sho' +'rtCut'#4'4'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel1'#8'ShortCut'#4'5'#160#0 +#0#0#1#7'Command'#7#12'EcFoldLevel6'#8'ShortCut'#4'6'#160#0#0#0#1#7'Command' +#7#12'EcFoldLevel7'#8'ShortCut'#4'7'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel' +'8'#8'ShortCut'#4'8'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel9'#8'ShortCut'#4 +'9'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel0'#8'ShortCut'#4'0'#160#0#0#0#1#7 +'Command'#7#13'EcFoldCurrent'#8'ShortCut'#4'-'#160#0#0#0#1#7'Command'#7#15'E' +'cUnFoldCurrent'#8'ShortCut'#4'+'#160#0#0#0#1#7'Command'#7#18'EcToggleMarkup' +'Word'#8'ShortCut'#4'M'#128#0#0#0#1#7'Command'#7#14'ecNormalSelect'#8'ShortC' +'ut'#3'N`'#0#1#7'Command'#7#14'ecColumnSelect'#8'ShortCut'#3'C`'#0#1#7'Comma' +'nd'#7#12'ecLineSelect'#8'ShortCut'#3'L`'#0#1#7'Command'#7#5'ecTab'#8'ShortC' +'ut'#2#9#0#1#7'Command'#7#10'ecShiftTab'#8'ShortCut'#3#9' '#0#1#7'Command'#7 +#14'ecMatchBracket'#8'ShortCut'#3'B`'#0#1#7'Command'#7#10'ecColSelUp'#8'Shor' +'tCut'#4'&'#160#0#0#0#1#7'Command'#7#12'ecColSelDown'#8'ShortCut'#4'('#160#0 +#0#0#1#7'Command'#7#12'ecColSelLeft'#8'ShortCut'#4'%'#160#0#0#0#1#7'Command' +#7#13'ecColSelRight'#8'ShortCut'#4''''#160#0#0#0#1#7'Command'#7#16'ecColSelP' +'ageDown'#8'ShortCut'#4'"'#160#0#0#0#1#7'Command'#7#18'ecColSelPageBottom'#8 +'ShortCut'#4'"'#224#0#0#0#1#7'Command'#7#14'ecColSelPageUp'#8'ShortCut'#4'!' +#160#0#0#0#1#7'Command'#7#15'ecColSelPageTop'#8'ShortCut'#4'!'#224#0#0#0#1#7 +'Command'#7#17'ecColSelLineStart'#8'ShortCut'#4'$'#160#0#0#0#1#7'Command'#7 +#15'ecColSelLineEnd'#8'ShortCut'#4'#'#160#0#0#0#1#7'Command'#7#17'ecColSelEd' +'itorTop'#8'ShortCut'#4'$'#224#0#0#0#1#7'Command'#7#20'ecColSelEditorBottom' +#8'ShortCut'#4'#'#224#0#0#0#0#12'MouseActions'#14#0#16'MouseTextActions'#14#0 +#15'MouseSelActions'#14#0#13'Lines.Strings'#1#6#0#0#19'VisibleSpecialChars' +#11#8'vscSpace'#12'vscTabAtLast'#0#8'ReadOnly'#9#9'RightEdge'#2#255#10'Scrol' +'lBars'#7#14'ssAutoVertical'#26'SelectedColor.BackPriority'#2'2'#26'Selected' +'Color.ForePriority'#2'2'#27'SelectedColor.FramePriority'#2'2'#26'SelectedCo' +'lor.BoldPriority'#2'2'#28'SelectedColor.ItalicPriority'#2'2'#31'SelectedCol' +'or.UnderlinePriority'#2'2'#31'SelectedColor.StrikeOutPriority'#2'2'#0#244#18 +'TSynGutterPartList'#22'SynLeftGutterPartList1'#0#15'TSynGutterMarks'#15'Syn' +'GutterMarks1'#5'Width'#2#24#12'MouseActions'#14#0#0#0#20'TSynGutterLineNumb' +'er'#20'SynGutterLineNumber1'#5'Width'#2#17#12'MouseActions'#14#0#21'MarkupI' +'nfo.Background'#7#9'clBtnFace'#21'MarkupInfo.Foreground'#7#6'clNone'#10'Dig' +'itCount'#2#2#30'ShowOnlyLineNumbersMultiplesOf'#2#1#9'ZeroStart'#8#12'Leadi' +'ngZeros'#8#0#0#17'TSynGutterChanges'#17'SynGutterChanges1'#5'Width'#2#4#12 +'MouseActions'#14#0#13'ModifiedColor'#4#252#233#0#0#10'SavedColor'#7#7'clGre' +'en'#0#0#19'TSynGutterSeparator'#19'SynGutterSeparator1'#5'Width'#2#2#12'Mou' +'seActions'#14#0#21'MarkupInfo.Background'#7#7'clWhite'#21'MarkupInfo.Foregr' +'ound'#7#6'clGray'#0#0#21'TSynGutterCodeFolding'#21'SynGutterCodeFolding1'#12 +'MouseActions'#14#0#21'MarkupInfo.Background'#7#6'clNone'#21'MarkupInfo.Fore' +'ground'#7#6'clGray'#20'MouseActionsExpanded'#14#0#21'MouseActionsCollapsed' +#14#0#0#0#0#0#12'TLabeledEdit'#14'RecentFileEdit'#22'AnchorSideLeft.Control' +#7#19'DLRetrieveAllButton'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorS' +'ideTop.Control'#7#20'OpenRecentFileButton'#23'AnchorSideRight.Control'#7#20 ,'OpenRecentFileButton'#4'Left'#3','#1#6'Height'#2'$'#3'Top'#2'^'#5'Width'#3 +#184#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#16'EditLabel.Height'#2 +#19#15'EditLabel.Width'#2'.'#17'EditLabel.Caption'#6#8'Logfile:'#21'EditLabe' +'l.ParentColor'#8#13'LabelPosition'#7#6'lpLeft'#8'TabOrder'#2#6#0#0#7'TBitBt' +'n'#20'OpenRecentFileButton'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'Ancho' +'rSideTop.Control'#7#18'LogsDirStatusLabel'#18'AnchorSideTop.Side'#7#9'asrBo' +'ttom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'a' +'srBottom'#4'Left'#3#228#2#6'Height'#2#25#4'Hint'#6#27'Open recently saved l' +'ogfile'#3'Top'#2'^'#5'Width'#2#25#7'Anchors'#11#5'akTop'#7'akRight'#0#17'Bo' +'rderSpacing.Top'#2#5#19'BorderSpacing.Right'#2#5#10'Glyph.Data'#10':'#4#0#0 +'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0 +#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0'@NNoBNN'#245'>JJ'#255'>JJ'#255 +'>JJ'#255'>JJ'#255'>JJ'#255'>JJ'#255'>JJ'#255'>JJ'#255'>JJ'#255'>JJ'#255'>JJ' +#255'>JJ'#255'BNN'#245'@MMpERR'#253#136#155#155#255#154#172#172#255#155#173 +#173#255#156#174#174#255#158#175#175#255#159#176#176#255#161#177#177#255#159 +#175#175#255#156#173#173#255#153#170#170#255#151#167#167#255#147#165#165#255 +#144#162#162#255'z'#140#140#255'CQQ'#254'JXW'#255#184#197#195#255#171#186#184 +#255#170#186#185#255#171#186#184#255#169#184#183#255#169#184#182#255#169#183 +#183#255#167#182#180#255#166#181#179#255#164#179#178#255#163#177#176#255#162 +#177#175#255#160#174#172#255#163#177#176#255'JXW'#255'Rca'#255#179#193#191 +#255#184#197#196#255#182#195#194#255#180#193#193#255#170#185#183#255#156#173 +#171#255#150#168#167#255#150#168#166#255#148#166#164#255#148#165#164#255#147 +#165#163#255#146#163#161#255#145#162#161#255#168#181#179#255'Rba'#255'Wif' +#253'\ol'#255'\ol'#255'\ol'#255'`sp'#255#145#161#160#255#179#191#191#255#185 +#197#196#255#184#196#195#255#183#195#194#255#182#193#193#255#181#192#192#255 +#180#191#191#255#178#190#189#255#173#185#185#255'Zlj'#255'M\['#251'Vgg'#255 +'Vgg'#255'Vgg'#255'UZX'#255#162#175#173#255'i|y'#255'g{x'#255'g{x'#255'g{x' +#255'fzw'#255'fzw'#255'fzw'#255'dxu'#255'dxu'#255'atr'#255'Pa_'#251'Vgg'#255 +'Vgg'#255'Vgg'#255'SWU'#255#255#255#255#255#182#189#186#255#179#187#184#255 +#179#187#184#255#179#187#184#255#179#187#184#255#179#187#184#255#250#251#251 +#255'SXV'#255'Wgg'#255'Qb`'#255'Ted'#251'Ykj'#255'Ykj'#255'Ykj'#255'SWU'#255 +#255#255#255#255#236#238#238#255#236#238#238#255#236#238#238#255#236#238#238 +#255#236#238#238#255#236#238#238#255#255#255#255#255'SWU'#255'Ykj'#255'Ufd' +#255'Wig'#251'm'#127'}'#255'eyw'#255'eyw'#255'SWU'#255#255#255#255#255#182 +#189#186#255#182#189#186#255#182#189#186#255#182#189#186#255#182#189#186#255 +#182#189#186#255#255#255#255#255'SWU'#255'eyw'#255'Xjg'#255'[nl'#251#132#151 +#148#255'q'#135#132#255'q'#135#132#255'UYW'#255#251#251#251#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#251#251#251#255'UYW'#255'v'#140#137#255'[nk'#255'^rp'#251#153#170 +#168#255'|'#147#144#255'|'#147#144#255'm|z'#255'UYW'#255'SWU'#255'SWU'#255'S' +'WU'#255'SWU'#255'SWU'#255'SWU'#255'UYW'#255'v'#131#129#255#132#152#150#255 +'`so'#247'cvs'#251#164#180#178#255'|'#147#144#255'|'#147#144#255'|'#147#144 +#255'|'#147#144#255#141#161#158#255#143#160#158#254'eyv'#251'cwt'#255'cwt' +#255'cwt'#255'dwt'#255'cvt'#255'cxu'#247'dxsscxu'#244#168#183#181#255#168#183 +#181#255#166#181#179#255#164#180#178#255#161#178#176#255#155#172#170#255'g|y' +#245'dxs3'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0'bxtueyv'#249'fzw'#252'fzw'#252'fzw'#252'f' +'yw'#252'eyv'#240'dtr\'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255 +#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#128 +#128#128#4'`'#128#128#8'`'#128#128#8'`'#128#128#8'`'#128#128#8'UUU'#3#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#7'OnClick'#7#25'OpenRecentFileBut' +'tonClick'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#3#7'TabStop'#8#0 +#0#7'TBitBtn'#21'OpenAnotherFileButton'#19'AnchorSideLeft.Side'#7#9'asrBotto' +'m'#21'AnchorSideTop.Control'#7#8'SynMemo1'#23'AnchorSideRight.Control'#7#5 +'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#228#2#6'Height'#2 +#25#4'Hint'#6#26'Open another saved logfile'#3'Top'#3#131#0#5'Width'#2#25#7 +'Anchors'#11#5'akTop'#7'akRight'#0#19'BorderSpacing.Right'#2#5#10'Glyph.Data' +#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0 +#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0'@NNoBNN'#245'>JJ' +#255'>JJ'#255'>JJ'#255'>JJ'#255'>JJ'#255'>JJ'#255'>JJ'#255'>JJ'#255'>JJ'#255 ,'>JJ'#255'>JJ'#255'>JJ'#255'BNN'#245'@MMpERR'#253#136#155#155#255#154#172#172 +#255#155#173#173#255#156#174#174#255#158#175#175#255#159#176#176#255#161#177 +#177#255#159#175#175#255#156#173#173#255#153#170#170#255#151#167#167#255#147 +#165#165#255#144#162#162#255'z'#140#140#255'CQQ'#254'JXW'#255#184#197#195#255 +#171#186#184#255#170#186#185#255#171#186#184#255#169#184#183#255#169#184#182 +#255#169#183#183#255#167#182#180#255#166#181#179#255#164#179#178#255#163#177 +#176#255#162#177#175#255#160#174#172#255#163#177#176#255'JXW'#255'Rca'#255 +#179#193#191#255#184#197#196#255#182#195#194#255#180#193#193#255#170#185#183 +#255#156#173#171#255#150#168#167#255#150#168#166#255#148#166#164#255#148#165 +#164#255#147#165#163#255#146#163#161#255#145#162#161#255#168#181#179#255'Rba' +#255'Wif'#253'\ol'#255'\ol'#255'\ol'#255'`sp'#255#145#161#160#255#179#191#191 +#255#185#197#196#255#184#196#195#255#183#195#194#255#182#193#193#255#181#192 +#192#255#180#191#191#255#178#190#189#255#173#185#185#255'Zlj'#255'M\['#251'V' +'gg'#255'Vgg'#255'Vgg'#255'UZX'#255#162#175#173#255'i|y'#255'g{x'#255'g{x' +#255'g{x'#255'fzw'#255'fzw'#255'fzw'#255'dxu'#255'dxu'#255'atr'#255'Pa_'#251 +'Vgg'#255'Vgg'#255'Vgg'#255'SWU'#255#255#255#255#255#182#189#186#255#179#187 +#184#255#179#187#184#255#179#187#184#255#179#187#184#255#179#187#184#255#250 +#251#251#255'SXV'#255'Wgg'#255'Qb`'#255'Ted'#251'Ykj'#255'Ykj'#255'Ykj'#255 +'SWU'#255#255#255#255#255#236#238#238#255#236#238#238#255#236#238#238#255#236 +#238#238#255#236#238#238#255#236#238#238#255#255#255#255#255'SWU'#255'Ykj' +#255'Ufd'#255'Wig'#251'm'#127'}'#255'eyw'#255'eyw'#255'SWU'#255#255#255#255 +#255#182#189#186#255#182#189#186#255#182#189#186#255#182#189#186#255#182#189 +#186#255#182#189#186#255#255#255#255#255'SWU'#255'eyw'#255'Xjg'#255'[nl'#251 +#132#151#148#255'q'#135#132#255'q'#135#132#255'UYW'#255#251#251#251#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#251#251#251#255'UYW'#255'v'#140#137#255'[nk'#255'^rp'#251 +#153#170#168#255'|'#147#144#255'|'#147#144#255'm|z'#255'UYW'#255'SWU'#255'SW' +'U'#255'SWU'#255'SWU'#255'SWU'#255'SWU'#255'UYW'#255'v'#131#129#255#132#152 +#150#255'`so'#247'cvs'#251#164#180#178#255'|'#147#144#255'|'#147#144#255'|' +#147#144#255'|'#147#144#255#141#161#158#255#143#160#158#254'eyv'#251'cwt'#255 +'cwt'#255'cwt'#255'dwt'#255'cvt'#255'cxu'#247'dxsscxu'#244#168#183#181#255 +#168#183#181#255#166#181#179#255#164#180#178#255#161#178#176#255#155#172#170 +#255'g|y'#245'dxs3'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0'bxtueyv'#249'fzw'#252'fzw'#252'fz' +'w'#252'fyw'#252'eyv'#240'dtr\'#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#128#128#128#4'`'#128#128#8'`'#128#128#8'`'#128#128#8'`'#128#128#8'UUU' +#3#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#7'OnClick'#7#26'OpenAno' +'therFileButtonClick'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#2#7'T' +'abStop'#8#0#0#7'TButton'#14'RetRangeButton'#22'AnchorSideLeft.Control'#7#19 +'DLRetrieveAllButton'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTo' +'p.Control'#7#19'DLRetrieveAllButton'#4'Left'#3'/'#1#6'Height'#2'$'#4'Hint'#6 +':Collect a range of readings. Must define the record range.'#3'Top'#2#5#5'W' +'idth'#2'x'#18'BorderSpacing.Left'#2#3#7'Caption'#6#18'Ret. Range (ASCII)'#14 +'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#7#7'OnClick'#7#19'RetRangeBut' +'tonClick'#0#0#5'TEdit'#10'RangeStart'#22'AnchorSideLeft.Control'#7#14'RetRa' +'ngeButton'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control' +#7#19'DLRetrieveAllButton'#4'Left'#3#169#1#6'Height'#2'$'#4'Hint'#6#14'Start' +' of range'#3'Top'#2#5#5'Width'#2'@'#9'Alignment'#7#14'taRightJustify'#18'Bo' +'rderSpacing.Left'#2#2#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#8#0#0 +#5'TEdit'#8'RangeEnd'#22'AnchorSideLeft.Control'#7#7'ToLabel'#19'AnchorSideL' +'eft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#19'DLRetrieveAllButton' +#4'Left'#3#250#1#6'Height'#2'$'#4'Hint'#6' End of range, -1 for last record' +#3'Top'#2#5#5'Width'#2'P'#9'Alignment'#7#14'taRightJustify'#18'BorderSpacing' +'.Left'#2#2#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#9#0#0#6'TLabel' +#7'ToLabel'#22'AnchorSideLeft.Control'#7#10'RangeStart'#19'AnchorSideLeft.Si' +'de'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#10'RangeStart'#18'AnchorSide' +'Top.Side'#7#9'asrCenter'#4'Left'#3#235#1#6'Height'#2#19#3'Top'#2#14#5'Width' +#2#13#18'BorderSpacing.Left'#2#2#7'Caption'#6#2'to'#11'ParentColor'#8#0#0#6 +'TLabel'#15'MaxRecordsLabel'#22'AnchorSideLeft.Control'#7#8'RangeEnd'#19'Anc' ,'horSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#8'RangeEnd'#18 +'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3'L'#2#6'Height'#2#19#3'Top'#2#14 +#5'Width'#2'l'#18'BorderSpacing.Left'#2#2#7'Caption'#6#15'MaxRecordsLabel'#11 +'ParentColor'#8#0#0#7'TButton'#19'DLRetrieveRawButton'#4'Left'#3#141#2#6'Hei' +'ght'#2#26#4'Hint'#6'BCollect all readings in raw format (faster, but needs ' +'converting).'#3'Top'#3#174#0#5'Width'#2'*'#7'Anchors'#11#0#7'Caption'#6#3'R' +'aw'#8'TabOrder'#2#10#7'Visible'#8#7'OnClick'#7#24'DLRetrieveRawButtonClick' +#0#0#7'TButton'#18'DLRetConvRawButton'#19'AnchorSideLeft.Side'#7#9'asrBottom' +#21'AnchorSideTop.Control'#7#19'DLRetrieveRawButton'#23'AnchorSideRight.Cont' +'rol'#7#19'DLRetrieveRawButton'#4'Left'#3'c'#2#6'Height'#2#26#4'Hint'#6#30'C' +'onvert raw file to .dat file.'#3'Top'#3#174#0#5'Width'#2'*'#7'Anchors'#11#5 +'akTop'#7'akRight'#0#7'Caption'#6#4'Conv'#8'TabOrder'#2#11#7'Visible'#8#7'On' +'Click'#7#23'DLRetConvRawButtonClick'#0#0#7'TButton'#5'Block'#22'AnchorSideL' +'eft.Control'#7#15'DLGHeaderButton'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21 +'AnchorSideTop.Control'#7#19'DLRetrieveAllButton'#4'Left'#2'E'#6'Height'#2'"' +#4'Hint'#6'0Collect all readings via binary format (faster).'#3'Top'#2#5#5'W' +'idth'#3#134#0#18'BorderSpacing.Left'#2#5#7'Caption'#6#23'Retrieve All (bin-' +'fast)'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#12#7'OnClick'#7#10 +'BlockClick'#0#0#10'TScrollBox'#10'ScrollBox1'#22'AnchorSideLeft.Control'#7#5 +'Owner'#21'AnchorSideTop.Control'#7#8'SynMemo1'#18'AnchorSideTop.Side'#7#9'a' +'srBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7 +#9'asrBottom'#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Si' +'de'#7#9'asrBottom'#4'Left'#2#0#6'Height'#3'y'#2#3'Top'#3#211#0#5'Width'#3#2 +#3#18'HorzScrollBar.Page'#3#212#2#18'VertScrollBar.Page'#3'w'#2#7'Anchors'#11 +#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#12'ClientHeight'#3'w'#2#11'Clie' +'ntWidth'#3#243#2#9'Font.Name'#6#16'Courier 10 Pitch'#10'ParentFont'#8#8'Tab' +'Order'#2#13#0#12'TPageControl'#12'PageControl1'#22'AnchorSideLeft.Control'#7 +#10'ScrollBox1'#21'AnchorSideTop.Control'#7#10'ScrollBox1'#23'AnchorSideRigh' +'t.Control'#7#10'ScrollBox1'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'Anch' +'orSideBottom.Control'#7#10'ScrollBox1'#21'AnchorSideBottom.Side'#7#9'asrBot' +'tom'#4'Left'#2#0#6'Height'#3#135#2#3'Top'#2#0#5'Width'#3#243#2#10'ActivePag' +'e'#7#9'TabSheet2'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0 +#10'ParentFont'#8#8'TabIndex'#2#1#8'TabOrder'#2#0#0#9'TTabSheet'#9'TabSheet1' +#7'Caption'#6#4'Text'#12'ClientHeight'#3'f'#2#11'ClientWidth'#3#233#2#0#244#8 +'TSynMemo'#8'SynMemo2'#22'AnchorSideLeft.Control'#7#9'TabSheet1'#21'AnchorSi' +'deTop.Control'#7#9'TabSheet1'#23'AnchorSideRight.Control'#7#9'TabSheet1'#20 +'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#9'TabSh' +'eet1'#21'AnchorSideBottom.Side'#7#9'asrBottom'#6'Cursor'#7#7'crIBeam'#4'Lef' +'t'#2#0#6'Height'#3'f'#2#3'Top'#2#0#5'Width'#3#233#2#7'Anchors'#11#5'akTop'#6 +'akLeft'#7'akRight'#8'akBottom'#0#11'Font.Height'#2#243#9'Font.Name'#6#11'Co' +'urier New'#10'Font.Pitch'#7#7'fpFixed'#12'Font.Quality'#7#16'fqNonAntialias' +'ed'#11'ParentColor'#8#10'ParentFont'#8#8'TabOrder'#2#0#12'Gutter.Width'#2'9' +#19'Gutter.MouseActions'#14#0#10'Keystrokes'#14#1#7'Command'#7#4'ecUp'#8'Sho' +'rtCut'#2'&'#0#1#7'Command'#7#7'ecSelUp'#8'ShortCut'#3'& '#0#1#7'Command'#7 +#10'ecScrollUp'#8'ShortCut'#3'&@'#0#1#7'Command'#7#6'ecDown'#8'ShortCut'#2'(' +#0#1#7'Command'#7#9'ecSelDown'#8'ShortCut'#3'( '#0#1#7'Command'#7#12'ecScrol' +'lDown'#8'ShortCut'#3'(@'#0#1#7'Command'#7#6'ecLeft'#8'ShortCut'#2'%'#0#1#7 +'Command'#7#9'ecSelLeft'#8'ShortCut'#3'% '#0#1#7'Command'#7#10'ecWordLeft'#8 +'ShortCut'#3'%@'#0#1#7'Command'#7#13'ecSelWordLeft'#8'ShortCut'#3'%`'#0#1#7 +'Command'#7#7'ecRight'#8'ShortCut'#2''''#0#1#7'Command'#7#10'ecSelRight'#8'S' +'hortCut'#3''' '#0#1#7'Command'#7#11'ecWordRight'#8'ShortCut'#3'''@'#0#1#7'C' +'ommand'#7#14'ecSelWordRight'#8'ShortCut'#3'''`'#0#1#7'Command'#7#10'ecPageD' +'own'#8'ShortCut'#2'"'#0#1#7'Command'#7#13'ecSelPageDown'#8'ShortCut'#3'" '#0 +#1#7'Command'#7#12'ecPageBottom'#8'ShortCut'#3'"@'#0#1#7'Command'#7#15'ecSel' +'PageBottom'#8'ShortCut'#3'"`'#0#1#7'Command'#7#8'ecPageUp'#8'ShortCut'#2'!' +#0#1#7'Command'#7#11'ecSelPageUp'#8'ShortCut'#3'! '#0#1#7'Command'#7#9'ecPag' +'eTop'#8'ShortCut'#3'!@'#0#1#7'Command'#7#12'ecSelPageTop'#8'ShortCut'#3'!`' +#0#1#7'Command'#7#11'ecLineStart'#8'ShortCut'#2'$'#0#1#7'Command'#7#14'ecSel' +'LineStart'#8'ShortCut'#3'$ '#0#1#7'Command'#7#11'ecEditorTop'#8'ShortCut'#3 +'$@'#0#1#7'Command'#7#14'ecSelEditorTop'#8'ShortCut'#3'$`'#0#1#7'Command'#7#9 +'ecLineEnd'#8'ShortCut'#2'#'#0#1#7'Command'#7#12'ecSelLineEnd'#8'ShortCut'#3 +'# '#0#1#7'Command'#7#14'ecEditorBottom'#8'ShortCut'#3'#@'#0#1#7'Command'#7 +#17'ecSelEditorBottom'#8'ShortCut'#3'#`'#0#1#7'Command'#7#12'ecToggleMode'#8 +'ShortCut'#2'-'#0#1#7'Command'#7#6'ecCopy'#8'ShortCut'#3'-@'#0#1#7'Command'#7 ,#7'ecPaste'#8'ShortCut'#3'- '#0#1#7'Command'#7#12'ecDeleteChar'#8'ShortCut'#2 +'.'#0#1#7'Command'#7#5'ecCut'#8'ShortCut'#3'. '#0#1#7'Command'#7#16'ecDelete' +'LastChar'#8'ShortCut'#2#8#0#1#7'Command'#7#16'ecDeleteLastChar'#8'ShortCut' +#3#8' '#0#1#7'Command'#7#16'ecDeleteLastWord'#8'ShortCut'#3#8'@'#0#1#7'Comma' +'nd'#7#6'ecUndo'#8'ShortCut'#4#8#128#0#0#0#1#7'Command'#7#6'ecRedo'#8'ShortC' +'ut'#4#8#160#0#0#0#1#7'Command'#7#11'ecLineBreak'#8'ShortCut'#2#13#0#1#7'Com' +'mand'#7#11'ecSelectAll'#8'ShortCut'#3'A@'#0#1#7'Command'#7#6'ecCopy'#8'Shor' +'tCut'#3'C@'#0#1#7'Command'#7#13'ecBlockIndent'#8'ShortCut'#3'I`'#0#1#7'Comm' +'and'#7#11'ecLineBreak'#8'ShortCut'#3'M@'#0#1#7'Command'#7#12'ecInsertLine'#8 +'ShortCut'#3'N@'#0#1#7'Command'#7#12'ecDeleteWord'#8'ShortCut'#3'T@'#0#1#7'C' +'ommand'#7#15'ecBlockUnindent'#8'ShortCut'#3'U`'#0#1#7'Command'#7#7'ecPaste' +#8'ShortCut'#3'V@'#0#1#7'Command'#7#5'ecCut'#8'ShortCut'#3'X@'#0#1#7'Command' +#7#12'ecDeleteLine'#8'ShortCut'#3'Y@'#0#1#7'Command'#7#11'ecDeleteEOL'#8'Sho' +'rtCut'#3'Y`'#0#1#7'Command'#7#6'ecUndo'#8'ShortCut'#3'Z@'#0#1#7'Command'#7#6 +'ecRedo'#8'ShortCut'#3'Z`'#0#1#7'Command'#7#13'ecGotoMarker0'#8'ShortCut'#3 +'0@'#0#1#7'Command'#7#13'ecGotoMarker1'#8'ShortCut'#3'1@'#0#1#7'Command'#7#13 +'ecGotoMarker2'#8'ShortCut'#3'2@'#0#1#7'Command'#7#13'ecGotoMarker3'#8'Short' +'Cut'#3'3@'#0#1#7'Command'#7#13'ecGotoMarker4'#8'ShortCut'#3'4@'#0#1#7'Comma' +'nd'#7#13'ecGotoMarker5'#8'ShortCut'#3'5@'#0#1#7'Command'#7#13'ecGotoMarker6' +#8'ShortCut'#3'6@'#0#1#7'Command'#7#13'ecGotoMarker7'#8'ShortCut'#3'7@'#0#1#7 +'Command'#7#13'ecGotoMarker8'#8'ShortCut'#3'8@'#0#1#7'Command'#7#13'ecGotoMa' +'rker9'#8'ShortCut'#3'9@'#0#1#7'Command'#7#12'ecSetMarker0'#8'ShortCut'#3'0`' +#0#1#7'Command'#7#12'ecSetMarker1'#8'ShortCut'#3'1`'#0#1#7'Command'#7#12'ecS' +'etMarker2'#8'ShortCut'#3'2`'#0#1#7'Command'#7#12'ecSetMarker3'#8'ShortCut'#3 +'3`'#0#1#7'Command'#7#12'ecSetMarker4'#8'ShortCut'#3'4`'#0#1#7'Command'#7#12 +'ecSetMarker5'#8'ShortCut'#3'5`'#0#1#7'Command'#7#12'ecSetMarker6'#8'ShortCu' +'t'#3'6`'#0#1#7'Command'#7#12'ecSetMarker7'#8'ShortCut'#3'7`'#0#1#7'Command' +#7#12'ecSetMarker8'#8'ShortCut'#3'8`'#0#1#7'Command'#7#12'ecSetMarker9'#8'Sh' +'ortCut'#3'9`'#0#1#7'Command'#7#12'EcFoldLevel1'#8'ShortCut'#4'1'#160#0#0#0#1 +#7'Command'#7#12'EcFoldLevel2'#8'ShortCut'#4'2'#160#0#0#0#1#7'Command'#7#12 +'EcFoldLevel1'#8'ShortCut'#4'3'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel1'#8 +'ShortCut'#4'4'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel1'#8'ShortCut'#4'5' +#160#0#0#0#1#7'Command'#7#12'EcFoldLevel6'#8'ShortCut'#4'6'#160#0#0#0#1#7'Co' +'mmand'#7#12'EcFoldLevel7'#8'ShortCut'#4'7'#160#0#0#0#1#7'Command'#7#12'EcFo' +'ldLevel8'#8'ShortCut'#4'8'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel9'#8'Shor' +'tCut'#4'9'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel0'#8'ShortCut'#4'0'#160#0 +#0#0#1#7'Command'#7#13'EcFoldCurrent'#8'ShortCut'#4'-'#160#0#0#0#1#7'Command' +#7#15'EcUnFoldCurrent'#8'ShortCut'#4'+'#160#0#0#0#1#7'Command'#7#18'EcToggle' +'MarkupWord'#8'ShortCut'#4'M'#128#0#0#0#1#7'Command'#7#14'ecNormalSelect'#8 +'ShortCut'#3'N`'#0#1#7'Command'#7#14'ecColumnSelect'#8'ShortCut'#3'C`'#0#1#7 +'Command'#7#12'ecLineSelect'#8'ShortCut'#3'L`'#0#1#7'Command'#7#5'ecTab'#8'S' +'hortCut'#2#9#0#1#7'Command'#7#10'ecShiftTab'#8'ShortCut'#3#9' '#0#1#7'Comma' +'nd'#7#14'ecMatchBracket'#8'ShortCut'#3'B`'#0#1#7'Command'#7#10'ecColSelUp'#8 +'ShortCut'#4'&'#160#0#0#0#1#7'Command'#7#12'ecColSelDown'#8'ShortCut'#4'(' +#160#0#0#0#1#7'Command'#7#12'ecColSelLeft'#8'ShortCut'#4'%'#160#0#0#0#1#7'Co' +'mmand'#7#13'ecColSelRight'#8'ShortCut'#4''''#160#0#0#0#1#7'Command'#7#16'ec' +'ColSelPageDown'#8'ShortCut'#4'"'#160#0#0#0#1#7'Command'#7#18'ecColSelPageBo' +'ttom'#8'ShortCut'#4'"'#224#0#0#0#1#7'Command'#7#14'ecColSelPageUp'#8'ShortC' +'ut'#4'!'#160#0#0#0#1#7'Command'#7#15'ecColSelPageTop'#8'ShortCut'#4'!'#224#0 +#0#0#1#7'Command'#7#17'ecColSelLineStart'#8'ShortCut'#4'$'#160#0#0#0#1#7'Com' +'mand'#7#15'ecColSelLineEnd'#8'ShortCut'#4'#'#160#0#0#0#1#7'Command'#7#17'ec' +'ColSelEditorTop'#8'ShortCut'#4'$'#224#0#0#0#1#7'Command'#7#20'ecColSelEdito' +'rBottom'#8'ShortCut'#4'#'#224#0#0#0#0#12'MouseActions'#14#0#16'MouseTextAct' +'ions'#14#0#15'MouseSelActions'#14#0#19'VisibleSpecialChars'#11#8'vscSpace' +#12'vscTabAtLast'#0#8'ReadOnly'#9#9'RightEdge'#2#255#26'SelectedColor.BackPr' +'iority'#2'2'#26'SelectedColor.ForePriority'#2'2'#27'SelectedColor.FramePrio' +'rity'#2'2'#26'SelectedColor.BoldPriority'#2'2'#28'SelectedColor.ItalicPrior' +'ity'#2'2'#31'SelectedColor.UnderlinePriority'#2'2'#31'SelectedColor.StrikeO' +'utPriority'#2'2'#0#244#18'TSynGutterPartList'#22'SynLeftGutterPartList1'#0 +#15'TSynGutterMarks'#15'SynGutterMarks1'#5'Width'#2#24#12'MouseActions'#14#0 +#0#0#20'TSynGutterLineNumber'#20'SynGutterLineNumber1'#5'Width'#2#17#12'Mous' +'eActions'#14#0#21'MarkupInfo.Background'#7#9'clBtnFace'#21'MarkupInfo.Foreg' +'round'#7#6'clNone'#10'DigitCount'#2#2#30'ShowOnlyLineNumbersMultiplesOf'#2#1 +#9'ZeroStart'#8#12'LeadingZeros'#8#0#0#17'TSynGutterChanges'#17'SynGutterCha' ,'nges1'#5'Width'#2#4#12'MouseActions'#14#0#13'ModifiedColor'#4#252#233#0#0#10 +'SavedColor'#7#7'clGreen'#0#0#19'TSynGutterSeparator'#19'SynGutterSeparator1' +#5'Width'#2#2#12'MouseActions'#14#0#21'MarkupInfo.Background'#7#7'clWhite'#21 +'MarkupInfo.Foreground'#7#6'clGray'#0#0#21'TSynGutterCodeFolding'#21'SynGutt' +'erCodeFolding1'#12'MouseActions'#14#0#21'MarkupInfo.Background'#7#6'clNone' +#21'MarkupInfo.Foreground'#7#6'clGray'#20'MouseActionsExpanded'#14#0#21'Mous' +'eActionsCollapsed'#14#0#0#0#0#0#0#9'TTabSheet'#9'TabSheet2'#7'Caption'#6#11 +'Vector-Plot'#12'ClientHeight'#3'f'#2#11'ClientWidth'#3#233#2#6'OnShow'#7#13 +'TabSheet2Show'#0#6'TPanel'#6'Panel1'#22'AnchorSideLeft.Control'#7#13'LeftSi' +'deLabel'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7 +#10'NorthLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#24'AnchorSideBottom.Co' +'ntrol'#7#10'SouthLabel'#4'Left'#2#7#6'Height'#3#137#1#3'Top'#2'1'#5'Width'#3 +#155#1#7'Caption'#6#19'Loading/Calculating'#12'ClientHeight'#3#137#1#11'Clie' +'ntWidth'#3#155#1#8'TabOrder'#2#0#0#6'TChart'#11'VectorChart'#22'AnchorSideL' +'eft.Control'#7#6'Panel1'#21'AnchorSideTop.Control'#7#6'Panel1'#23'AnchorSid' +'eRight.Control'#7#6'Panel1'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'Anch' +'orSideBottom.Control'#7#6'Panel1'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4 +'Left'#2#1#6'Height'#3#135#1#3'Top'#2#1#5'Width'#3#153#1#8'AxisList'#14#1#12 +'Grid.Visible'#8#13'Marks.Visible'#8#22'Marks.LabelBrush.Style'#7#7'bsClear' +#6'Minors'#14#0#9'Range.Max'#5#0#0#0#0#0#0#0#128#255'?'#9'Range.Min'#5#0#0#0 +#0#0#0#0#128#255#191#12'Range.UseMax'#9#12'Range.UseMin'#9#27'Title.LabelFon' +'t.Orientation'#3#132#3#22'Title.LabelBrush.Style'#7#7'bsClear'#9'ZPosition' +#2#1#0#1#12'Grid.Visible'#8#9'Alignment'#7#9'calBottom'#13'Marks.Visible'#8 +#22'Marks.LabelBrush.Style'#7#7'bsClear'#6'Minors'#14#0#9'Range.Max'#5#0#0#0 +#0#0#0#0#128#255'?'#9'Range.Min'#5#0#0#0#0#0#0#0#128#255#191#12'Range.UseMax' +#9#12'Range.UseMin'#9#22'Title.LabelBrush.Style'#7#7'bsClear'#9'ZPosition'#2 +#1#0#0#16'Foot.Brush.Color'#7#9'clBtnFace'#15'Foot.Font.Color'#7#6'clBlue'#12 +'Proportional'#9#17'Title.Brush.Color'#7#9'clBtnFace'#16'Title.Font.Color'#7 +#6'clBlue'#18'Title.Text.Strings'#1#6#7'TAChart'#0#11'OnAfterDraw'#7#20'Vect' +'orChartAfterDraw'#5'Align'#7#8'alClient'#14'DoubleBuffered'#9#11'OnMouseMov' +'e'#7#20'VectorChartMouseMove'#0#15'TColorMapSeries'#25'VectorChartColorMapS' +'eries'#11'Extent.XMax'#5#0#0#0#0#0#0#0#200#5'@'#11'Extent.XMin'#5#0#0#0#0#0 +#0#0#200#5#192#11'Extent.YMax'#5#0#0#0#0#0#0#0#160#5'@'#11'Extent.YMin'#5#0#0 +#0#0#0#0#0#160#5#192#5'Title'#6#7'MyTitle'#11'ColorSource'#7#16'PlotColourSo' +'urce'#11'Interpolate'#9#5'StepX'#2#1#5'StepY'#2#1#11'OnCalculate'#7'"Vector' +'ChartColorMapSeriesCalculate'#0#0#11'TLineSeries'#22'VectorChartLineSeries1' +#5'Title'#6#10'Messpunkte'#9'ZPosition'#2#2#8'LineType'#7#6'ltNone'#13'Marks' +'.Visible'#8#12'Marks.Format'#6#4'%2:s'#11'Marks.Style'#7#8'smsLabel'#19'Poi' +'nter.Brush.Color'#7#5'clRed'#17'Pointer.HorizSize'#2#1#16'Pointer.VertSize' +#2#1#15'Pointer.Visible'#9#10'ShowPoints'#9#0#0#11'TLineSeries'#22'VectorCha' +'rtLineSeries2'#9'ZPosition'#2#1#13'LinePen.Color'#7#5'clRed'#0#0#0#0#6'TPan' +'el'#6'Panel2'#22'AnchorSideLeft.Control'#7#6'Panel3'#19'AnchorSideLeft.Side' +#7#9'asrBottom'#4'Left'#3#239#1#6'Height'#3'f'#2#3'Top'#2#0#5'Width'#3#250#0 +#5'Align'#7#7'alRight'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBotto' +'m'#0#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#3'f'#2#11'ClientWidth'#3 +#250#0#8'TabOrder'#2#1#0#7'TButton'#18'ShowPlotDataButton'#22'AnchorSideLeft' +'.Control'#7#6'Panel2'#21'AnchorSideTop.Control'#7#6'Panel2'#4'Left'#2#7#6'H' +'eight'#2#25#3'Top'#2#3#5'Width'#2's'#18'BorderSpacing.Left'#2#7#17'BorderSp' +'acing.Top'#2#3#7'Caption'#6#14'Show Data File'#8'TabOrder'#2#0#7'OnClick'#7 +#23'ShowPlotDataButtonClick'#0#0#7'TButton'#12'ExportButton'#22'AnchorSideLe' +'ft.Control'#7#18'ShowPlotDataButton'#21'AnchorSideTop.Control'#7#18'ShowPlo' +'tDataButton'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#7#6'Height'#2 +#25#3'Top'#2'!'#5'Width'#2's'#17'BorderSpacing.Top'#2#5#7'Caption'#6#12'Expo' +'rt image'#7'Enabled'#8#8'TabOrder'#2#1#7'OnClick'#7#17'ExportButtonClick'#0 +#0#9'TGroupBox'#16'CursorValueGroup'#22'AnchorSideLeft.Control'#7#18'ShowPlo' +'tDataButton'#21'AnchorSideTop.Control'#7#17'PlotSettingsGroup'#18'AnchorSid' +'eTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#6'Panel2'#20'Anchor' +'SideRight.Side'#7#9'asrBottom'#4'Left'#2#7#6'Height'#2'['#3'Top'#3#11#2#5'W' +'idth'#3#241#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#17'BorderSpacin' +'g.Top'#2#7#19'BorderSpacing.Right'#2#2#7'Caption'#6#12'Cursor value'#12'Cli' +'entHeight'#2'G'#11'ClientWidth'#3#239#0#11'ParentColor'#8#10'ParentFont'#8#8 +'TabOrder'#2#2#0#11'TStaticText'#11'CursorValue'#22'AnchorSideLeft.Control'#7 +#16'CursorValueGroup'#21'AnchorSideTop.Control'#7#16'CursorValueGroup'#23'An' +'chorSideRight.Control'#7#16'CursorValueGroup'#20'AnchorSideRight.Side'#7#9 ,'asrBottom'#24'AnchorSideBottom.Control'#7#16'CursorValueGroup'#21'AnchorSid' +'eBottom.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#2'G'#3'Top'#2#0#5'Width' +#3#239#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#7'Caption' +#6'/Load data file and point in plot to see cursor.'#5'Color'#7#6'clNone'#9 +'Font.Name'#6#16'Courier 10 Pitch'#10'Font.Pitch'#7#7'fpFixed'#10'ParentFont' +#8#11'ParentColor'#8#8'TabOrder'#2#0#0#0#0#9'TGroupBox'#17'PlotSettingsGroup' +#22'AnchorSideLeft.Control'#7#18'ShowPlotDataButton'#21'AnchorSideTop.Contro' +'l'#7#12'ExportButton'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRi' +'ght.Control'#7#6'Panel2'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#7 +#6'Height'#3#195#1#3'Top'#2'A'#5'Width'#3#241#0#7'Anchors'#11#5'akTop'#6'akL' +'eft'#7'akRight'#0#8'AutoSize'#9#17'BorderSpacing.Top'#2#7#19'BorderSpacing.' +'Right'#2#2#7'Caption'#6#13'Plot settings'#12'ClientHeight'#3#175#1#11'Clien' +'tWidth'#3#239#0#8'TabOrder'#2#3#0#11'TRadioGroup'#17'OrientationSelect'#22 +'AnchorSideLeft.Control'#7#17'PlotSettingsGroup'#21'AnchorSideTop.Control'#7 +#10'RangeGroup'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Con' +'trol'#7#17'PlotSettingsGroup'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'An' +'chorSideBottom.Control'#7#17'PlotSettingsGroup'#21'AnchorSideBottom.Side'#7 +#9'asrBottom'#4'Left'#2#4#6'Height'#2'G'#3'Top'#3'!'#1#5'Width'#3#231#0#7'An' +'chors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoFill'#9#20'BorderSpacing.Ar' +'ound'#2#4#7'Caption'#6#11'Orientation'#28'ChildSizing.LeftRightSpacing'#2#6 +#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSi' +'zing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkH' +'orizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScal' +'eChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'Chil' +'dSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'3'#11'ClientWidth'#3#229#0#9 +'ItemIndex'#2#0#13'Items.Strings'#1#6#16'E-W (Looking up)'#6#18'W-E (Looking' +' down)'#0#7'OnClick'#7#22'OrientationSelectClick'#11'ParentColor'#8#8'TabOr' +'der'#2#0#0#0#9'TGroupBox'#10'RangeGroup'#22'AnchorSideLeft.Control'#7#17'Pl' +'otSettingsGroup'#21'AnchorSideTop.Control'#7#17'ColourSchemeGroup'#18'Ancho' +'rSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#17'PlotSettings' +'Group'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#4#6'Height'#3#147#0 +#3'Top'#3#138#0#5'Width'#3#231#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight' +#0#8'AutoSize'#9#20'BorderSpacing.Around'#2#4#7'Caption'#6#5'Range'#12'Clien' +'tHeight'#2#127#11'ClientWidth'#3#229#0#8'TabOrder'#2#1#0#12'TRadioButton'#16 +'RangeSchemeRadio'#22'AnchorSideLeft.Control'#7#10'RangeGroup'#21'AnchorSide' +'Top.Control'#7#10'RangeGroup'#4'Left'#2#0#6'Height'#2#23#3'Top'#2#0#5'Width' +#2'k'#7'Caption'#6#11'from scheme'#7'Checked'#9#8'TabOrder'#2#0#7'TabStop'#9 +#7'OnClick'#7#21'RangeSchemeRadioClick'#0#0#12'TRadioButton'#17'RangeDataset' +'Radio'#22'AnchorSideLeft.Control'#7#16'RangeSchemeRadio'#21'AnchorSideTop.C' +'ontrol'#7#16'RangeSchemeRadio'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left' +#2#0#6'Height'#2#23#3'Top'#2#23#5'Width'#2'i'#7'Caption'#6#12'from dataset'#8 +'TabOrder'#2#1#7'OnClick'#7#22'RangeDatasetRadioClick'#0#0#12'TRadioButton' +#16'RangeManualRadio'#22'AnchorSideLeft.Control'#7#17'RangeDatasetRadio'#21 +'AnchorSideTop.Control'#7#17'RangeDatasetRadio'#18'AnchorSideTop.Side'#7#9'a' +'srBottom'#4'Left'#2#0#6'Height'#2#23#3'Top'#2'.'#5'Width'#2'l'#7'Caption'#6 +#12'manual entry'#8'TabOrder'#2#2#7'OnClick'#7#21'RangeManualRadioClick'#0#0 +#9'TGroupBox'#16'ManualEntryGroup'#21'AnchorSideTop.Control'#7#10'RangeGroup' +#23'AnchorSideRight.Control'#7#10'RangeGroup'#20'AnchorSideRight.Side'#7#9'a' +'srBottom'#24'AnchorSideBottom.Control'#7#10'RangeGroup'#21'AnchorSideBottom' +'.Side'#7#9'asrBottom'#4'Left'#3#132#0#6'Height'#2#127#3'Top'#2#0#5'Width'#2 +'a'#7'Anchors'#11#5'akTop'#7'akRight'#8'akBottom'#0#7'Caption'#6#12'Manual e' +'ntry'#12'ClientHeight'#2'k'#11'ClientWidth'#2'_'#8'TabOrder'#2#3#7'Visible' +#8#0#5'TEdit'#14'LegendMinEntry'#22'AnchorSideLeft.Control'#7#16'ManualEntry' +'Group'#21'AnchorSideTop.Control'#7#16'ManualEntryGroup'#4'Left'#2#4#6'Heigh' +'t'#2'$'#3'Top'#2#0#5'Width'#2'2'#18'BorderSpacing.Left'#2#4#8'TabOrder'#2#0 +#13'OnEditingDone'#7#25'LegendMinEntryEditingDone'#0#0#7'TButton'#12'UpdateB' +'utton'#22'AnchorSideLeft.Control'#7#14'LegendMinEntry'#21'AnchorSideTop.Con' +'trol'#7#14'LegendMaxEntry'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorS' +'ideRight.Control'#7#16'ManualEntryGroup'#20'AnchorSideRight.Side'#7#9'asrBo' +'ttom'#24'AnchorSideBottom.Control'#7#16'ManualEntryGroup'#21'AnchorSideBott' +'om.Side'#7#9'asrBottom'#4'Left'#2#4#6'Height'#2#29#3'Top'#2'L'#5'Width'#2'[' +#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#17'BorderSpacing.Top'#2#2#20 +'BorderSpacing.Bottom'#2#2#7'Caption'#6#6'Update'#8'TabOrder'#2#2#7'OnClick' +#7#17'UpdateButtonClick'#0#0#5'TEdit'#14'LegendMaxEntry'#22'AnchorSideLeft.C' ,'ontrol'#7#14'LegendMinEntry'#21'AnchorSideTop.Control'#7#14'LegendMinEntry' +#18'AnchorSideTop.Side'#7#9'asrBottom'#20'AnchorSideRight.Side'#7#9'asrBotto' +'m'#4'Left'#2#4#6'Height'#2'$'#3'Top'#2'&'#5'Width'#2'2'#17'BorderSpacing.To' +'p'#2#2#8'TabOrder'#2#1#13'OnEditingDone'#7#25'LegendMaxEntryEditingDone'#0#0 +#6'TLabel'#13'MinValueLabel'#22'AnchorSideLeft.Control'#7#14'LegendMinEntry' +#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#14'Legen' +'dMinEntry'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2'8'#6'Height'#2#19 +#3'Top'#2#9#5'Width'#2#23#20'BorderSpacing.Around'#2#2#7'Caption'#6#3'Min'#11 +'ParentColor'#8#0#0#6'TLabel'#13'MaxValueLabel'#22'AnchorSideLeft.Control'#7 +#14'LegendMaxEntry'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.' +'Control'#7#14'LegendMaxEntry'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left' +#2'8'#6'Height'#2#19#3'Top'#2'/'#5'Width'#2#26#20'BorderSpacing.Around'#2#2#7 +'Caption'#6#3'Max'#11'ParentColor'#8#0#0#0#0#9'TGroupBox'#16'DecorationsGrou' +'p'#22'AnchorSideLeft.Control'#7#17'PlotSettingsGroup'#21'AnchorSideTop.Cont' +'rol'#7#17'PlotSettingsGroup'#23'AnchorSideRight.Control'#7#17'PlotSettingsG' +'roup'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#4#6'Height'#2'B'#3 +'Top'#2#4#5'Width'#3#231#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'A' +'utoSize'#9#20'BorderSpacing.Around'#2#4#7'Caption'#6#11'Decorations'#12'Cli' +'entHeight'#2'.'#11'ClientWidth'#3#229#0#8'TabOrder'#2#2#0#9'TCheckBox'#16'S' +'howDotsCheckBox'#22'AnchorSideLeft.Control'#7#16'DecorationsGroup'#21'Ancho' +'rSideTop.Control'#7#16'DecorationsGroup'#4'Left'#2#4#6'Height'#2#23#3'Top'#2 +#0#5'Width'#2'Y'#18'BorderSpacing.Left'#2#4#7'Caption'#6#9'Show dots'#7'Chec' +'ked'#9#5'State'#7#9'cbChecked'#8'TabOrder'#2#0#8'OnChange'#7#22'ShowDotsChe' +'ckBoxChange'#0#0#9'TCheckBox'#17'ShowLinesCheckBox'#22'AnchorSideLeft.Contr' +'ol'#7#16'ShowDotsCheckBox'#21'AnchorSideTop.Control'#7#16'ShowDotsCheckBox' +#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#4#6'Height'#2#23#3'Top'#2#23 +#5'Width'#2'Z'#7'Caption'#6#10'Show lines'#8'TabOrder'#2#1#8'OnChange'#7#23 +'ShowLinesCheckBoxChange'#0#0#9'TCheckBox'#18'MarkPointsCheckBox'#22'AnchorS' +'ideLeft.Control'#7#16'ShowDotsCheckBox'#19'AnchorSideLeft.Side'#7#9'asrBott' +'om'#21'AnchorSideTop.Control'#7#16'ShowDotsCheckBox'#4'Left'#2'i'#6'Height' +#2#23#3'Top'#2#0#5'Width'#2'c'#18'BorderSpacing.Left'#2#12#7'Caption'#6#11'M' +'ark points'#8'TabOrder'#2#2#7'Visible'#8#8'OnChange'#7#24'MarkPointsCheckBo' +'xChange'#0#0#9'TCheckBox'#16'ShowGridCheckBox'#22'AnchorSideLeft.Control'#7 +#18'MarkPointsCheckBox'#4'Left'#2'i'#6'Height'#2#23#3'Top'#2#24#5'Width'#2'W' +#7'Anchors'#11#6'akLeft'#0#7'Caption'#6#9'Show grid'#7'Checked'#9#5'State'#7 +#9'cbChecked'#8'TabOrder'#2#3#8'OnChange'#7#22'ShowGridCheckBoxChange'#0#0#0 +#11'TRadioGroup'#13'DataSetSelect'#22'AnchorSideLeft.Control'#7#17'PlotSetti' +'ngsGroup'#21'AnchorSideTop.Control'#7#17'OrientationSelect'#18'AnchorSideTo' +'p.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#17'PlotSettingsGroup' +#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#4#6'Height'#2'C'#3'Top'#3 +'l'#1#5'Width'#3#231#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoF' +'ill'#9#18'BorderSpacing.Left'#2#4#19'BorderSpacing.Right'#2#4#7'Caption'#6#7 +'Dataset'#28'ChildSizing.LeftRightSpacing'#2#6#29'ChildSizing.EnlargeHorizon' +'tal'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'cr' +'sHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChild' +'s'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layou' +'t'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1 +#12'ClientHeight'#2'/'#11'ClientWidth'#3#229#0#9'ItemIndex'#2#0#13'Items.Str' +'ings'#1#6#15'MPSA (averaged)'#6#21'MPSA raw (unaveraged)'#0#7'OnClick'#7#18 +'DataSetSelectClick'#8'TabOrder'#2#3#0#0#9'TGroupBox'#17'ColourSchemeGroup' +#22'AnchorSideLeft.Control'#7#17'PlotSettingsGroup'#21'AnchorSideTop.Control' +#7#16'DecorationsGroup'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideR' +'ight.Control'#7#17'PlotSettingsGroup'#20'AnchorSideRight.Side'#7#9'asrBotto' +'m'#4'Left'#2#4#6'Height'#2'<'#3'Top'#2'J'#5'Width'#3#231#0#7'Anchors'#11#5 +'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#9#18'BorderSpacing.Left'#2#4#19'B' +'orderSpacing.Right'#2#4#20'BorderSpacing.Bottom'#2#4#7'Caption'#6#13'Colour' +' scheme'#12'ClientHeight'#2'('#11'ClientWidth'#3#229#0#8'TabOrder'#2#4#0#9 +'TComboBox'#20'ColourSchemeComboBox'#22'AnchorSideLeft.Control'#7#17'ColourS' +'chemeGroup'#21'AnchorSideTop.Control'#7#17'ColourSchemeGroup'#23'AnchorSide' +'Right.Control'#7#17'ColourSchemeGroup'#20'AnchorSideRight.Side'#7#9'asrBott' +'om'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#4#6'Height'#2'$'#3'T' +'op'#2#0#5'Width'#3#221#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18'B' +'orderSpacing.Left'#2#4#19'BorderSpacing.Right'#2#4#20'BorderSpacing.Bottom' +#2#4#10'ItemHeight'#2#0#8'TabOrder'#2#0#4'Text'#6#20'ColourSchemeComboBox'#8 ,'OnChange'#7#26'ColourSchemeComboBoxChange'#0#0#0#0#12'TProgressBar'#22'Calc' +'ulatingProgressBar'#22'AnchorSideLeft.Control'#7#18'ShowPlotDataButton'#19 +'AnchorSideLeft.Side'#7#9'asrBottom'#20'AnchorSideRight.Side'#7#9'asrBottom' +#4'Left'#2'}'#6'Height'#2#12#3'Top'#2#3#5'Width'#2'['#18'BorderSpacing.Left' +#2#3#19'BorderSpacing.Right'#2#3#5'Style'#7#11'pbstMarquee'#8'TabOrder'#2#4#7 +'Visible'#8#0#0#11'TStaticText'#15'CalculatingText'#22'AnchorSideLeft.Contro' +'l'#7#22'CalculatingProgressBar'#21'AnchorSideTop.Control'#7#22'CalculatingP' +'rogressBar'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Contro' +'l'#7#22'CalculatingProgressBar'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'L' +'eft'#2'}'#6'Height'#2#20#3'Top'#2#16#5'Width'#2'['#9'Alignment'#7#8'taCente' +'r'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#17'BorderSpacing.Top'#2#1#7 +'Caption'#6#11'Calculating'#10'Font.Color'#7#5'clRed'#10'Font.Style'#11#6'fs' +'Bold'#0#10'ParentFont'#8#8'TabOrder'#2#5#7'Visible'#8#0#0#0#6'TLabel'#10'No' +'rthLabel'#22'AnchorSideLeft.Control'#7#6'Panel1'#19'AnchorSideLeft.Side'#7#9 +'asrCenter'#21'AnchorSideTop.Control'#7#13'PlotFileTitle'#18'AnchorSideTop.S' +'ide'#7#9'asrBottom'#4'Left'#3#207#0#6'Height'#2#18#3'Top'#2#31#5'Width'#2#11 +#17'BorderSpacing.Top'#2#6#7'Caption'#6#1'N'#11'Font.Height'#2#243#9'Font.Na' +'me'#6#4'Sans'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont' +#8#0#0#6'TLabel'#10'SouthLabel'#22'AnchorSideLeft.Control'#7#6'Panel1'#19'An' +'chorSideLeft.Side'#7#9'asrCenter'#21'AnchorSideTop.Control'#7#6'Panel1'#18 +'AnchorSideTop.Side'#7#9'asrBottom'#21'AnchorSideBottom.Side'#7#9'asrBottom' +#4'Left'#3#209#0#6'Height'#2#18#3'Top'#3#186#1#5'Width'#2#7#20'BorderSpacing' +'.Bottom'#2#4#7'Caption'#6#1'S'#11'Font.Height'#2#243#9'Font.Name'#6#4'Sans' +#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLab' +'el'#14'RightSideLabel'#22'AnchorSideLeft.Control'#7#6'Panel1'#19'AnchorSide' +'Left.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6'Panel1'#18'AnchorSi' +'deTop.Side'#7#9'asrCenter'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3 +#162#1#6'Height'#2#18#3'Top'#3#236#0#5'Width'#2#13#19'BorderSpacing.Right'#2 +#4#7'Caption'#6#1'W'#11'Font.Height'#2#243#9'Font.Name'#6#4'Sans'#10'Font.St' +'yle'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#13'Lef' +'tSideLabel'#22'AnchorSideLeft.Control'#7#9'TabSheet2'#21'AnchorSideTop.Cont' +'rol'#7#6'Panel1'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2#0#6'Height' +#2#18#3'Top'#3#236#0#5'Width'#2#7#7'Caption'#6#1'E'#11'Font.Height'#2#243#9 +'Font.Name'#6#4'Sans'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'Par' +'entFont'#8#0#0#6'TPanel'#6'Panel3'#22'AnchorSideLeft.Control'#7#14'RightSid' +'eLabel'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6 +'Panel1'#24'AnchorSideBottom.Control'#7#6'Panel1'#21'AnchorSideBottom.Side'#7 +#9'asrBottom'#4'Left'#3#179#1#6'Height'#3#137#1#3'Top'#2'1'#5'Width'#2'<'#7 +'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#12'ClientHeight'#3#137#1#11'Cl' +'ientWidth'#2'<'#10'ParentFont'#8#8'TabOrder'#2#2#0#6'TChart'#11'LegendChart' +#22'AnchorSideLeft.Control'#7#6'Panel3'#21'AnchorSideTop.Control'#7#6'Panel3' +#23'AnchorSideRight.Control'#7#6'Panel3'#20'AnchorSideRight.Side'#7#9'asrBot' +'tom'#24'AnchorSideBottom.Control'#7#6'Panel3'#21'AnchorSideBottom.Side'#7#9 +'asrBottom'#4'Left'#2#1#6'Height'#3#135#1#3'Top'#2#1#5'Width'#2':'#8'AxisLis' +'t'#14#1#19'Intervals.MaxLength'#2'('#14'Arrow.Inverted'#9#8'Inverted'#9#12 +'Marks.Format'#6#6'%0:.2f'#22'Marks.LabelBrush.Style'#7#7'bsClear'#11'Marks.' +'Style'#7#9'smsCustom'#6'Minors'#14#0#9'Range.Max'#5#0#0#0#0#0#0#0#176#3'@'#9 +'Range.Min'#5#0#0#0#0#0#0#0#160#2'@'#12'Range.UseMax'#9#12'Range.UseMin'#9#27 +'Title.LabelFont.Orientation'#3#132#3#22'Title.LabelBrush.Style'#7#7'bsClear' +#0#1#7'Visible'#8#9'Alignment'#7#9'calBottom'#22'Marks.LabelBrush.Style'#7#7 +'bsClear'#6'Minors'#14#0#22'Title.LabelBrush.Style'#7#7'bsClear'#0#0#16'Foot' +'.Brush.Color'#7#9'clBtnFace'#15'Foot.Font.Color'#7#6'clBlue'#17'Title.Brush' +'.Color'#7#9'clBtnFace'#16'Title.Font.Color'#7#6'clBlue'#18'Title.Text.Strin' +'gs'#1#6#7'TAChart'#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom' +#0#0#15'TColorMapSeries'#25'LegendChartColorMapSeries'#11'ColorSource'#7#18 +'LegendColourSource'#11'Interpolate'#9#5'StepX'#2#1#5'StepY'#2#1#11'OnCalcul' +'ate'#7'"LegendChartColorMapSeriesCalculate'#0#0#11'TLineSeries'#21'LegendCh' +'artLineSeries'#0#0#0#0#11'TStaticText'#13'PlotFileTitle'#22'AnchorSideLeft.' +'Control'#7#6'Panel1'#21'AnchorSideTop.Control'#7#9'TabSheet2'#23'AnchorSide' +'Right.Control'#7#6'Panel1'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2 +#7#6'Height'#2#21#3'Top'#2#4#5'Width'#3#155#1#9'Alignment'#7#8'taCenter'#7'A' +'nchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#17'BorderSpacing.Top'#2#4#11'Bor' +'derStyle'#7#9'sbsSunken'#5'Color'#7#9'clDefault'#11'ParentColor'#8#8'TabOrd' +'er'#2#3#0#0#0#0#0#6'TLabel'#18'FileDirectoryLabel'#4'Left'#2'E'#6'Height'#2 ,#19#3'Top'#2'('#5'Width'#2'T'#7'Caption'#6#15'File directory:'#11'ParentColo' +'r'#8#0#0#6'TLabel'#18'LogsDirStatusLabel'#18'AnchorSideTop.Side'#7#9'asrBot' +'tom'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#216#0#6'Height'#2#15 +#3'Top'#2'J'#5'Width'#3'I'#2#7'Anchors'#11#0#8'AutoSize'#8#17'BorderSpacing.' +'Top'#2#2#7'Caption'#6#25'Status of logs directory.'#11'ParentColor'#8#0#0#7 +'TButton'#13'PlotterButton'#22'AnchorSideLeft.Control'#7#15'DLGHeaderButton' +#4'Left'#2#5#6'Height'#2'"'#3'Top'#2'@'#5'Width'#2'K'#7'Caption'#6#7'Plotter' +#8'TabOrder'#2#14#7'OnClick'#7#18'PlotterButtonClick'#0#0#5'TEdit'#17'LogsDi' +'rectoryEdit'#22'AnchorSideLeft.Control'#7#19'LogsDirectoryButton'#19'Anchor' +'SideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#18'FileDirectoryL' +'abel'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'a' +'srBottom'#4'Left'#3#210#0#6'Height'#2'$'#4'Hint'#6#27' Location of logging ' +'files.'#3'Top'#2'('#5'Width'#3'+'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRi' +'ght'#0#18'BorderSpacing.Left'#2#2#19'BorderSpacing.Right'#2#5#14'ParentShow' +'Hint'#8#8'ShowHint'#9#8'TabOrder'#2#15#8'OnChange'#7#23'LogsDirectoryEditCh' +'ange'#0#0#7'TBitBtn'#19'LogsDirectoryButton'#22'AnchorSideLeft.Control'#7#26 +'ResetToLogsDirectoryButton'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'Ancho' +'rSideTop.Control'#7#18'FileDirectoryLabel'#4'Left'#3#183#0#6'Height'#2#25#4 +'Hint'#6'!Select location of logging files.'#3'Top'#2'('#5'Width'#2#25#18'Bo' +'rderSpacing.Left'#2#2#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0 +'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0 +#0#0#0#0#0#0#0#0#0'SMF'#160#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255 +#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255#164 +'e4'#255#164'e4'#255#164'e4'#255#164'f5'#233#166'g69HHH'#224#151#134'x'#255 +#165'i:'#255#186#131'P'#255#186#131'P'#255#186#131'P'#255#186#131'P'#255#186 +#131'P'#255#186#131'P'#255#186#131'P'#255#186#131'P'#255#186#131'P'#255#186 +#131'P'#255#186#131'P'#255#178'xE'#255#165'f6'#192'III'#224#153#153#153#255 +#165'h9'#255#211#166'~'#255#210#163'x'#255#210#163'x'#255#210#163'x'#255#210 +#163'x'#255#210#163'x'#255#210#163'x'#255#210#163'x'#255#210#163'x'#255#210 +#163'x'#255#211#164'y'#255#209#165'z'#255#165'f5'#245'HHH'#226#155#155#155 +#255#164'g8'#255#213#171#133#255#206#156'n'#255#206#156'm'#255#206#156'm'#255 +#206#156'm'#255#206#156'm'#255#206#156'm'#255#206#156'm'#255#206#156'm'#255 +#206#156'm'#255#207#158'p'#255#213#171#132#255#165'f5'#248'LLL'#228#161#161 +#161#255#165'h8'#255#226#196#169#255#213#168#129#255#211#164'z'#255#211#164 +'z'#255#211#164'z'#255#211#164'z'#255#211#164'z'#255#211#164'z'#255#211#164 +'z'#255#211#164'z'#255#212#167'~'#255#221#186#156#255#165'f5'#249'QQQ'#229 +#164#165#165#255#165'g7'#255#233#210#190#255#221#186#155#255#221#185#153#255 +#220#182#149#255#219#181#146#255#218#179#144#255#217#178#142#255#216#174#137 +#255#215#173#135#255#215#173#135#255#216#176#139#255#229#201#177#255#165'f5' +#250'VVV'#231#169#169#169#255#164'f6'#255#236#216#198#255#221#186#153#255#221 +#186#153#255#221#186#153#255#221#186#153#255#221#186#153#255#221#186#153#255 +#221#186#153#255#220#183#149#255#218#178#142#255#217#176#139#255#231#207#184 +#255#165'f5'#251'[[['#233#174#174#174#255#165'g6'#255#235#215#196#255#220#183 +#148#255#220#183#148#255#220#183#148#255#220#183#148#255#220#183#148#255#220 +#183#148#255#220#183#148#255#220#183#148#255#220#183#148#255#218#180#145#255 +#230#205#182#255#165'f5'#252'___'#233#179#179#179#255#164'f5'#255#234#213#193 +#255#219#180#145#255#219#180#145#255#219#181#145#255#219#181#145#255#219#181 +#146#255#219#181#146#255#219#181#146#255#219#181#146#255#219#181#146#255#220 +#184#150#255#231#207#183#255#164'f4'#253'eee'#235#183#183#183#255#165'f5'#255 +#234#211#190#255#234#212#191#255#234#212#191#255#234#212#190#255#234#212#190 +#255#234#212#190#255#233#211#190#255#233#211#190#255#233#211#190#255#233#211 +#190#255#233#211#190#255#232#207#184#255#165'e4'#254'jjj'#236#189#189#189#255 +#166'mA'#255#165'f6'#255#165'f6'#255#165'f6'#255#165'f6'#255#165'f6'#255#164 +'f5'#255#164'f5'#255#164'f5'#255#164'f5'#255#164'e4'#255#164'e4'#255#164'e4' +#255#166'h7'#224'nnn'#238#192#193#193#255#172#172#172#255#170#170#170#255#167 +#167#167#255#165#165#165#255#164#164#164#255#164#164#164#255#172#172#172#255 +#182#182#182#255#185#185#185#255#187#187#187#255#162#162#162#255'jjj'#169'GG' +'G'#0'GGG'#0'sss'#239#197#197#197#255#176#176#176#255#173#173#173#255#171#171 +#171#255#170#170#170#255#172#172#172#255#141#141#141#245#141#141#141#242#140 +#140#140#242#140#140#140#242#140#140#140#242#128#128#128#246'lll'#132'GGG'#0 +'GGG'#0'xxx'#240#201#201#201#255#199#199#199#255#197#197#197#255#196#196#196 +#255#196#196#196#255#180#180#180#255'ttt'#202'rrr8rrr8rrr8mmm8ooo5UUU'#3'GGG' +#0'GGG'#0'zzz'#159'yyy'#236'yyy'#236'yyy'#236'yyy'#236'yyy'#236'yyy'#226'xxx' +'5GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG' ,#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG' +#0'GGG'#0'GGG'#0#7'OnClick'#7#24'LogsDirectoryButtonClick'#14'ParentShowHint' +#8#8'ShowHint'#9#8'TabOrder'#2#16#0#0#7'TBitBtn'#26'ResetToLogsDirectoryButt' +'on'#22'AnchorSideLeft.Control'#7#18'FileDirectoryLabel'#19'AnchorSideLeft.S' +'ide'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#18'FileDirectoryLabel'#4'Le' +'ft'#3#155#0#6'Height'#2#25#4'Hint'#6'+Reset location of logging files to de' +'fault.'#3'Top'#2'('#5'Width'#2#26#18'BorderSpacing.Left'#2#2#10'Glyph.Data' +#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0 +#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0'N5'#0#29'N5'#0#133'N5'#0#192'O8'#1#238 +'O8'#1#237'N5'#0#186'N5'#0#127'N5'#0#31#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0'N5'#0#6'N5'#0'zYD'#5#244#143 +'j'#7#254#198#158#18#255#226#174#16#255#208#166#22#255#170#148#26#255#130'h' +#12#253'`H'#8#244'N5'#0'mN5'#0#1#255#255#255#0#255#255#255#0#255#255#255#0'N' +'5'#0#1'N5'#0#178'sa'#15#238#170#152#30#252#196#157#20#255#209#161#15#255#212 +#163#14#255#200#159#18#255#179#152#25#255#167#142#23#255#156#132#20#255'p_' +#14#248'N5'#0#184'N5'#0#1#255#255#255#0#255#255#255#0'N5'#0'@^F'#6#220#159 +#132#21#174#167#142#23#217#175#152#27#255#185#156#23#255#185#157#23#255#178 +#151#26#255#168#146#24#255#162#133#18#255#153'v'#11#255#146'l'#6#255'fQ'#10 +#250'N5'#0't'#255#255#255#0#255#255#255#0'fL'#4' '#141'l'#9'g'#153'v'#11#134 +#159#127#17#175#165#139#21#220#163#145#25#250#139'y'#21#254#140'w'#20#254#159 +#135#23#255#155'x'#13#255#147'm'#7#255#143'e'#1#255'wX'#5#255'U?'#5#247'N5'#0 +')'#0'`'#0#0'dK'#6#26#141'd'#1'2'#147'm'#5'L'#152'r'#10'lpZ'#12#189'T>'#4#244 +'O6'#1#170'N7'#0#169'\E'#6#244#135'p'#7#254#144'f'#2#255#130'Y'#0#255'lJ'#0 +#255'M<'#7#254'N5'#0'z'#255#255#255#0']H'#7#5'lP'#4#13'~Y'#0#25'|Y'#4',O8'#1 +#185'N5'#0'"'#255#255#255#0#255#255#255#0'N5'#0'''XC'#4#247'xV'#4#255'nK'#0 +#255'Z='#0#255'F6'#4#255'T<'#2#196#255#255#255#0'N5'#0#13'O8'#1#18'N9'#2#21 +'M7'#3#24'N5'#0#23'N5'#0#8#255#255#255#0#255#255#255#0#255#255#255#0'Q9'#1 +#185'V@'#4#255'[?'#3#255'T<'#8#255'P9'#8#255'[D'#5#250'W@'#3#182'fL'#6#255'r' +'S'#8#255#137'g'#21#255#151'q'#21#255#160'v'#16#255'dP'#10#255'VA'#8'E'#255 +#255#255#0#255#255#255#0'P9'#2#176'J7'#4#255'aI'#21#255'u^+'#255'oX'''#255'_' +'I'#7#245'`J'#6#254#144'p,'#255#167#133';'#255#179#140'7'#255#174#128#28#255 +#144'd'#4#255'S@'#7#246'N5'#0'1'#255#255#255#0'N5'#0'$WE'#7#245'L6'#2#255'v^' +','#255#132'l:'#255'r_,'#255'YB'#5#197'bI'#6#255#161#134'M'#255#166#137'L' +#255#168#136'D'#255'~X'#6#255'cG'#3#254'Q?'#7#248'P9'#2#177'P9'#2#180'WE'#7 +#248'S@'#5#254'iQ'#31#255#148'}L'#255#148'}L'#255'ta,'#254'N7'#0#132'aF'#5 +#255#169#146'a'#255#170#146'^'#255#171#146']'#255#158#132'L'#255'jO'#22#255 +'O9'#3#255'R@'#16#255'K9'#7#255'N8'#2#255'pY('#255#160#138'Z'#255#164#142'^' +#255#156#135'X'#255'fO'#16#247'N5'#0'''_D'#3#255#181#159'q'#255#178#157'p' +#255#180#158'p'#255#179#157'm'#255#179#157'm'#255#163#143'e'#255#135'qA'#255 +#136'q@'#255#161#139'['#255#179#157'o'#255#179#157'm'#255#180#158'p'#255'}i-' +#250'P8'#0't'#255#255#255#0'`D'#2#255#182#162'r'#255'sV'#15#251#143'w?'#250 +#189#168'{'#255#195#174#127#255#195#174#127#255#195#174#127#255#195#174#127 +#255#195#174#127#255#195#174#127#255#189#169'}'#255#141't9'#250'U<'#1#193'N5' +#0#2#255#255#255#0'YA'#7#234'hK'#14#242'N5'#0'EP7'#0'znQ'#18#247#168#146'd' +#255#193#175#135#255#208#190#150#255#206#187#146#255#186#166'z'#255#165#143 +'_'#255'qS'#19#247'N5'#0'sN5'#0#2#255#255#255#0#255#255#255#0'N5'#0' N5'#0#28 +#255#255#255#0#255#255#255#0'N5'#0'$P7'#0#133'hN'#22#201#131'k7'#243'v\$'#241 +'[?'#3#192'P7'#0'~N5'#0'#'#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#7'OnClick'#7#31'ResetToLogsDirectoryButtonClick'#14'ParentShowHint'#8 +#8'ShowHint'#9#8'TabOrder'#2#17#0#0#11'TOpenDialog'#11'OpenDialog1'#4'Left'#2 +'#'#3'Top'#2'p'#0#0#11'TOpenDialog'#11'OpenDialog2'#4'Left'#3'@'#1#3'Top'#2 +'p'#0#0#13'TChartToolset'#13'ChartToolset1'#4'Left'#3#233#0#3'Top'#2'p'#0#13 +'TZoomDragTool'#26'ChartToolset1ZoomDragTool1'#5'Shift'#11#6'ssLeft'#0#11'Br' +'ush.Style'#7#7'bsClear'#0#0#12'TPanDragTool'#25'ChartToolset1PanDragTool1'#5 +'Shift'#11#7'ssRight'#0#0#0#0#16'TListChartSource'#16'PlotColourSource'#18'D' +'ataPoints.Strings'#1#6#13'-1|0|$0000FF|'#6#15'-0.5|0|$C00000|'#6#12'0|0|$80' +'8000|'#6#14'0.5|0|$00C000|'#6#12'1|0|$00FF00|'#0#6'Sorted'#9#4'Left'#3#134#0 +#3'Top'#2'p'#0#0#16'TListChartSource'#18'LegendColourSource'#18'DataPoints.S' +'trings'#1#6#12'0|0|$000000|'#6#13'10|0|$F0FF00|'#6#13'20|0|$0000FF|'#0#6'So' +'rted'#9#4'Left'#3#168#1#3'Top'#2'p'#0#0#10'TIdleTimer'#14'HourGlassTimer'#8 +'Interval'#2'd'#7'OnTimer'#7#19'HourGlassTimerTimer'#4'Left'#3'('#2#3'Top'#2 +'p'#0#0#0 ]); ./ah_def.inc0000644000175000017500000001172714576573021013060 0ustar anthonyanthony(*$define iso_latin1 *) (*@/// Compiler switches for version checks *) (*$ifdef ver190 *) (*$define delphi_2007 *) (*$else *) (*$ifdef ver180 *) (*$define delphi_2006 *) (*$else *) (*$ifdef ver170 *) (*$define delphi_2005 *) (*$else *) (*$ifdef ver160 *) (*$define delphi_8 *) (* not used - can only do .NET *) (*$else *) (*$ifdef ver150 *) (*$define delphi_7 *) (*$else *) (*$ifdef ver140 *) (*$define delphi_6 *) (*$else *) (*$ifdef ver130 *) (*$define delphi_5 *) (*$else *) (*$ifdef ver120 *) (*$define delphi_4 *) (*$else *) (*$ifdef ver110 *) (*$define builder_3 *) (*$else *) (*$ifdef ver100 *) (*$define delphi_3 *) (*$else *) (*$ifdef ver95 *) (*$define builder_1 *) (*$endif *) (*$ifdef ver90 *) (*$define delphi_2 *) (*$else *) (*$ifdef ver80 *) (*$define Delphi_1 *) (*$else *) (*$define bp_7 *) (*$endif *) (*$endif *) (*$endif *) (*$endif *) (*$endif *) (*$endif *) (*$endif *) (*$endif *) (*$endif *) (*$endif *) (*$endif *) (*$endif *) (*$ifdef delphi_1 *) (*$define delphi_ge_1 *) (*$endif *) (*$ifdef delphi_2 *) (*$define delphi_gt_1 *) (*$define delphi_ge_1 *) (*$define delphi_ge_2 *) (*$endif *) (*$ifdef delphi_3 *) (*$define delphi_gt_2 *) (*$define delphi_gt_1 *) (*$define delphi_ge_1 *) (*$define delphi_ge_2 *) (*$define delphi_ge_3 *) (*$endif *) (*$ifdef delphi_4 *) (*$define delphi_gt_3 *) (*$define delphi_gt_2 *) (*$define delphi_gt_1 *) (*$define delphi_ge_1 *) (*$define delphi_ge_2 *) (*$define delphi_ge_3 *) (*$define delphi_ge_4 *) (*$endif *) (*$ifdef delphi_5 *) (*$define delphi_gt_3 *) (*$define delphi_gt_2 *) (*$define delphi_gt_1 *) (*$define delphi_ge_1 *) (*$define delphi_ge_2 *) (*$define delphi_ge_3 *) (*$define delphi_ge_4 *) (*$define delphi_ge_5 *) (*$endif *) (*$ifdef delphi_6 *) (*$define delphi_gt_5 *) (*$define delphi_gt_4 *) (*$define delphi_gt_3 *) (*$define delphi_gt_2 *) (*$define delphi_gt_1 *) (*$define delphi_ge_1 *) (*$define delphi_ge_2 *) (*$define delphi_ge_3 *) (*$define delphi_ge_4 *) (*$define delphi_ge_5 *) (*$define delphi_ge_6 *) (*$endif *) (*$ifdef delphi_7 *) (*$define delphi_gt_6 *) (*$define delphi_gt_5 *) (*$define delphi_gt_4 *) (*$define delphi_gt_3 *) (*$define delphi_gt_2 *) (*$define delphi_gt_1 *) (*$define delphi_ge_1 *) (*$define delphi_ge_2 *) (*$define delphi_ge_3 *) (*$define delphi_ge_4 *) (*$define delphi_ge_5 *) (*$define delphi_ge_6 *) (*$define delphi_ge_7 *) (*$endif *) (*$ifdef delphi_2005 *) (*$define delphi_gt_7 *) (*$define delphi_gt_6 *) (*$define delphi_gt_5 *) (*$define delphi_gt_4 *) (*$define delphi_gt_3 *) (*$define delphi_gt_2 *) (*$define delphi_gt_1 *) (*$define delphi_ge_1 *) (*$define delphi_ge_2 *) (*$define delphi_ge_3 *) (*$define delphi_ge_4 *) (*$define delphi_ge_5 *) (*$define delphi_ge_6 *) (*$define delphi_ge_7 *) (*$define delphi_ge_9 *) (*$endif *) (*$ifdef delphi_2006 *) (*$define delphi_gt_9 *) (*$define delphi_gt_7 *) (*$define delphi_gt_6 *) (*$define delphi_gt_5 *) (*$define delphi_gt_4 *) (*$define delphi_gt_3 *) (*$define delphi_gt_2 *) (*$define delphi_gt_1 *) (*$define delphi_ge_1 *) (*$define delphi_ge_2 *) (*$define delphi_ge_3 *) (*$define delphi_ge_4 *) (*$define delphi_ge_5 *) (*$define delphi_ge_6 *) (*$define delphi_ge_7 *) (*$define delphi_ge_9 *) (*$define delphi_ge_10 *) (*$endif *) (*$ifdef delphi_2007 *) (*$define delphi_gt_10 *) (*$define delphi_gt_9 *) (*$define delphi_gt_7 *) (*$define delphi_gt_6 *) (*$define delphi_gt_5 *) (*$define delphi_gt_4 *) (*$define delphi_gt_3 *) (*$define delphi_gt_2 *) (*$define delphi_gt_1 *) (*$define delphi_ge_1 *) (*$define delphi_ge_2 *) (*$define delphi_ge_3 *) (*$define delphi_ge_4 *) (*$define delphi_ge_5 *) (*$define delphi_ge_6 *) (*$define delphi_ge_7 *) (*$define delphi_ge_9 *) (*$define delphi_ge_10 *) (*$define delphi_ge_11 *) (*$endif *) { shortstring defined : use string in VCL methods } { undefined: use ansistring instead } (*$ifdef delphi_1 *) (*$define shortstring *) (*$else *) { The Delphi2/3 VCL only compiles with huge strings } (*$undef shortstring *) (*$endif *) (*@\\\*) ./commandlineoptions.txt0000644000175000017500000000273714576573022015624 0ustar anthonyanthonyCommand line options Log continuous settings: -LCMS,x ;Every x seconds -LCMM,x ;Every x minutes -LCM,1 ;Every 1 minute on the minute -LCM,5 ;Every 5 minutes on the 1/12th hour -LCM,10 ;Every 10 minutes on the 1/6th hour -LCM,15 ;Every 15 minutes on the 1/4 hour -LCM,30 ;Every 30 minutes on the 1/2 hour -LCM,60 ;Every hour on the hour -LCR ;Start recording right away -LCMIN ;Minimize Application after Log continuous window starts up -LCTH,x ;Threshold setting in mpsas, 0.0=all readings get recorded -LCGN,x ;Select the name of the GoTo script, x is the name of the script (without extension), ex. default -LCGRS ;Run GoTo script then shut down when done Select device settings: -SEI,x ;Select Ethernet device where x = IP address -SEM,x ;Select Ethernet device where x = MAC address -SU ;Find only USB devices -SUC,x ;Select USB device where x = communication portname i.e. /dev/ttyUSB0 -SUI,x[,y...] ;Select USB device where x = ID number ex FTD12345, or multiple IDs for LogContinuous with the first one being the priority set like: -SUI,FTD12345,FTD33333,FTD55555 -N ;Do not search for devices at startup. This cuts down startup time, the user must press the Find button to find devices -P ;Start up plotter view -DLR ;Startup DL retreive view -TCA ;Start up Concatenate/Analyze tool -TCM ;Start up Cloud removal / Milky way position tool -TCMR ;Start up Cloud removal / Milky way position tool, and recall previous filename ./synaip.pas0000644000175000017500000003004514576573021013161 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 001.002.001 | |==============================================================================| | Content: IP address support procedures and functions | |==============================================================================| | Copyright (c)2006-2010, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c) 2006-2010. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@abstract(IP adress support procedures and functions)} {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$Q-} {$R-} {$H+} {$IFDEF UNICODE} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$WARN SUSPICIOUS_TYPECAST OFF} {$ENDIF} unit synaip; interface uses SysUtils, SynaUtil; type {:binary form of IPv6 adress (for string conversion routines)} TIp6Bytes = array [0..15] of Byte; {:binary form of IPv6 adress (for string conversion routines)} TIp6Words = array [0..7] of Word; {:Returns @TRUE, if "Value" is a valid IPv4 address. Cannot be a symbolic Name!} function IsIP(const Value: string): Boolean; {:Returns @TRUE, if "Value" is a valid IPv6 address. Cannot be a symbolic Name!} function IsIP6(const Value: string): Boolean; {:Returns a string with the "Host" ip address converted to binary form.} function IPToID(Host: string): Ansistring; {:Convert IPv6 address from their string form to binary byte array.} function StrToIp6(value: string): TIp6Bytes; {:Convert IPv6 address from binary byte array to string form.} function Ip6ToStr(value: TIp6Bytes): string; {:Convert IPv4 address from their string form to binary.} function StrToIp(value: string): integer; {:Convert IPv4 address from binary to string form.} function IpToStr(value: integer): string; {:Convert IPv4 address to reverse form.} function ReverseIP(Value: AnsiString): AnsiString; {:Convert IPv6 address to reverse form.} function ReverseIP6(Value: AnsiString): AnsiString; {:Expand short form of IPv6 address to long form.} function ExpandIP6(Value: AnsiString): AnsiString; implementation {==============================================================================} function IsIP(const Value: string): Boolean; var TempIP: string; function ByteIsOk(const Value: string): Boolean; var x, n: integer; begin x := StrToIntDef(Value, -1); Result := (x >= 0) and (x < 256); // X may be in correct range, but value still may not be correct value! // i.e. "$80" if Result then for n := 1 to length(Value) do if not (AnsiChar(Value[n]) in ['0'..'9']) then begin Result := False; Break; end; end; begin TempIP := Value; Result := False; if not ByteIsOk(Fetch(TempIP, '.')) then Exit; if not ByteIsOk(Fetch(TempIP, '.')) then Exit; if not ByteIsOk(Fetch(TempIP, '.')) then Exit; if ByteIsOk(TempIP) then Result := True; end; {==============================================================================} function IsIP6(const Value: string): Boolean; var TempIP: string; s,t: string; x: integer; partcount: integer; zerocount: integer; First: Boolean; begin TempIP := Value; Result := False; if Value = '::' then begin Result := True; Exit; end; partcount := 0; zerocount := 0; First := True; while tempIP <> '' do begin s := fetch(TempIP, ':'); if not(First) and (s = '') then Inc(zerocount); First := False; if zerocount > 1 then break; Inc(partCount); if s = '' then Continue; if partCount > 8 then break; if tempIP = '' then begin t := SeparateRight(s, '%'); s := SeparateLeft(s, '%'); x := StrToIntDef('$' + t, -1); if (x < 0) or (x > $ffff) then break; end; x := StrToIntDef('$' + s, -1); if (x < 0) or (x > $ffff) then break; if tempIP = '' then if not((PartCount = 1) and (ZeroCount = 0)) then Result := True; end; end; {==============================================================================} function IPToID(Host: string): Ansistring; var s: string; i, x: Integer; begin Result := ''; for x := 0 to 3 do begin s := Fetch(Host, '.'); i := StrToIntDef(s, 0); Result := Result + AnsiChar(i); end; end; {==============================================================================} function StrToIp(value: string): integer; var s: string; i, x: Integer; begin Result := 0; for x := 0 to 3 do begin s := Fetch(value, '.'); i := StrToIntDef(s, 0); Result := (256 * Result) + i; end; end; {==============================================================================} function IpToStr(value: integer): string; var x1, x2: word; y1, y2: byte; begin Result := ''; x1 := value shr 16; x2 := value and $FFFF; y1 := x1 div $100; y2 := x1 mod $100; Result := inttostr(y1) + '.' + inttostr(y2) + '.'; y1 := x2 div $100; y2 := x2 mod $100; Result := Result + inttostr(y1) + '.' + inttostr(y2); end; {==============================================================================} function ExpandIP6(Value: AnsiString): AnsiString; var n: integer; s: ansistring; x: integer; begin Result := ''; if value = '' then exit; x := countofchar(value, ':'); if x > 7 then exit; if value[1] = ':' then value := '0' + value; if value[length(value)] = ':' then value := value + '0'; x := 8 - x; s := ''; for n := 1 to x do s := s + ':0'; s := s + ':'; Result := replacestring(value, '::', s); end; {==============================================================================} function StrToIp6(Value: string): TIp6Bytes; var IPv6: TIp6Words; Index: Integer; n: integer; b1, b2: byte; s: string; x: integer; begin for n := 0 to 15 do Result[n] := 0; for n := 0 to 7 do Ipv6[n] := 0; Index := 0; Value := ExpandIP6(value); if value = '' then exit; while Value <> '' do begin if Index > 7 then Exit; s := fetch(value, ':'); if s = '@' then break; if s = '' then begin IPv6[Index] := 0; end else begin x := StrToIntDef('$' + s, -1); if (x > 65535) or (x < 0) then Exit; IPv6[Index] := x; end; Inc(Index); end; for n := 0 to 7 do begin b1 := ipv6[n] div 256; b2 := ipv6[n] mod 256; Result[n * 2] := b1; Result[(n * 2) + 1] := b2; end; end; {==============================================================================} //based on routine by the Free Pascal development team function Ip6ToStr(value: TIp6Bytes): string; var i, x: byte; zr1,zr2: set of byte; zc1,zc2: byte; have_skipped: boolean; ip6w: TIp6words; begin zr1 := []; zr2 := []; zc1 := 0; zc2 := 0; for i := 0 to 7 do begin x := i * 2; ip6w[i] := value[x] * 256 + value[x + 1]; if ip6w[i] = 0 then begin include(zr2, i); inc(zc2); end else begin if zc1 < zc2 then begin zc1 := zc2; zr1 := zr2; zc2 := 0; zr2 := []; end; end; end; if zc1 < zc2 then begin zr1 := zr2; end; SetLength(Result, 8*5-1); SetLength(Result, 0); have_skipped := false; for i := 0 to 7 do begin if not(i in zr1) then begin if have_skipped then begin if Result = '' then Result := '::' else Result := Result + ':'; have_skipped := false; end; Result := Result + IntToHex(Ip6w[i], 1) + ':'; end else begin have_skipped := true; end; end; if have_skipped then if Result = '' then Result := '::0' else Result := Result + ':'; if Result = '' then Result := '::0'; if not (7 in zr1) then SetLength(Result, Length(Result)-1); Result := LowerCase(result); end; {==============================================================================} function ReverseIP(Value: AnsiString): AnsiString; var x: Integer; begin Result := ''; repeat x := LastDelimiter('.', Value); Result := Result + '.' + Copy(Value, x + 1, Length(Value) - x); Delete(Value, x, Length(Value) - x + 1); until x < 1; if Length(Result) > 0 then if Result[1] = '.' then Delete(Result, 1, 1); end; {==============================================================================} function ReverseIP6(Value: AnsiString): AnsiString; var ip6: TIp6bytes; n: integer; x, y: integer; begin ip6 := StrToIP6(Value); x := ip6[15] div 16; y := ip6[15] mod 16; Result := IntToHex(y, 1) + '.' + IntToHex(x, 1); for n := 14 downto 0 do begin x := ip6[n] div 16; y := ip6[n] mod 16; Result := Result + '.' + IntToHex(y, 1) + '.' + IntToHex(x, 1); end; end; {==============================================================================} end. ./arpmethod.lrs0000644000175000017500000001337314576573022013664 0ustar anthonyanthony{ This is an automatically generated lazarus resource file } LazarusResources.Add('TFormarpmethod','FORMDATA',[ 'TPF0'#14'TFormarpmethod'#13'Formarpmethod'#4'Left'#3#0#8#6'Height'#3'g'#2#3 +'Top'#3#17#1#5'Width'#3'N'#3#7'Caption'#6#10'ARP Method'#12'ClientHeight'#3 +'g'#2#11'ClientWidth'#3'N'#3#6'OnShow'#7#8'FormShow'#8'Position'#7#16'poWork' +'AreaCenter'#10'LCLVersion'#6#7'2.2.4.0'#0#9'TGroupBox'#16'IPsInUseGroupBox' +#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#4 +'Left'#2#0#6'Height'#3#184#1#3'Top'#2#0#5'Width'#3'x'#1#7'Caption'#6#19'1: F' +'ind IPs in use:'#12'ClientHeight'#3#161#1#11'ClientWidth'#3't'#1#8'TabOrder' +#2#0#0#7'TButton'#13'FindIPsButton'#22'AnchorSideLeft.Control'#7#16'IPsInUse' +'GroupBox'#21'AnchorSideTop.Control'#7#16'IPsInUseGroupBox'#4'Left'#2#4#6'He' +'ight'#2#25#3'Top'#2#0#5'Width'#3#184#0#18'BorderSpacing.Left'#2#4#7'Caption' +#6#8'Find IPs'#7'OnClick'#7#18'FindIPsButtonClick'#8'TabOrder'#2#0#0#0#6'TLa' +'bel'#16'AssignedIPsLabel'#22'AnchorSideLeft.Control'#7#13'FindIPsButton'#21 +'AnchorSideTop.Control'#7#13'FindIPsButton'#18'AnchorSideTop.Side'#7#9'asrBo' +'ttom'#4'Left'#2#4#6'Height'#2#21#3'Top'#2#31#5'Width'#2'W'#17'BorderSpacing' +'.Top'#2#6#7'Caption'#6#12'Assigned IPs'#11'ParentColor'#8#0#0#11'TStringGri' +'d'#21'AssignedIPsStringGrid'#22'AnchorSideLeft.Control'#7#16'AssignedIPsLab' +'el'#21'AnchorSideTop.Control'#7#16'AssignedIPsLabel'#18'AnchorSideTop.Side' +#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#16'IPsInUseGroupBox'#21'Ancho' +'rSideBottom.Side'#7#9'asrBottom'#4'Left'#2#4#6'Height'#3'g'#1#3'Top'#2'4'#5 +'Width'#3#180#0#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#20'BorderSpac' +'ing.Bottom'#2#6#8'TabOrder'#2#1#0#0#11'TStringGrid'#17'FreeIPsStringGrid'#22 +'AnchorSideLeft.Control'#7#12'FreeIPsLabel'#21'AnchorSideTop.Control'#7#12'F' +'reeIPsLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#24'AnchorSideBottom.Cont' +'rol'#7#21'AssignedIPsStringGrid'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4 +'Left'#3#190#0#6'Height'#3'g'#1#3'Top'#2'4'#5'Width'#3#180#0#7'Anchors'#11#5 +'akTop'#6'akLeft'#8'akBottom'#0#8'TabOrder'#2#2#0#0#6'TLabel'#12'FreeIPsLabe' +'l'#22'AnchorSideLeft.Control'#7#21'AssignedIPsStringGrid'#19'AnchorSideLeft' +'.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#16'AssignedIPsLabel'#4'Le' +'ft'#3#190#0#6'Height'#2#21#3'Top'#2#31#5'Width'#2'7'#18'BorderSpacing.Left' +#2#6#7'Caption'#6#8'Free IPs'#11'ParentColor'#8#0#0#0#5'TMemo'#13'ARPStatusM' +'emo'#22'AnchorSideLeft.Control'#7#11'StatusLabel'#21'AnchorSideTop.Control' +#7#11'StatusLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.' +'Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBo' +'ttom.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3 +'~'#1#6'Height'#3'r'#1#3'Top'#3#245#0#5'Width'#3#204#1#7'Anchors'#11#5'akTop' +#6'akLeft'#7'akRight'#8'akBottom'#0#19'BorderSpacing.Right'#2#4#8'TabOrder'#2 +#1#0#0#9'TGroupBox'#16'ChooseIPGroupBox'#22'AnchorSideLeft.Control'#7#16'IPs' +'InUseGroupBox'#21'AnchorSideTop.Control'#7#16'IPsInUseGroupBox'#18'AnchorSi' +'deTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#16'IPsInUseGroupBo' +'x'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#2'`'#3'Top' +#3#184#1#5'Width'#3'x'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#7'Cap' +'tion'#6#13'2: Choose IP:'#12'ClientHeight'#2'I'#11'ClientWidth'#3't'#1#8'Ta' +'bOrder'#2#2#0#7'TButton'#22'RandomlyChooseIPButton'#22'AnchorSideLeft.Contr' +'ol'#7#16'ChooseIPGroupBox'#21'AnchorSideTop.Control'#7#16'ChooseIPGroupBox' +#4'Left'#2#2#6'Height'#2#25#3'Top'#2#6#5'Width'#3#184#0#18'BorderSpacing.Lef' +'t'#2#2#17'BorderSpacing.Top'#2#6#7'Caption'#6#18'Randomly Choose IP'#8'TabO' +'rder'#2#0#0#0#5'TEdit'#6'IPEdit'#22'AnchorSideLeft.Control'#7#22'RandomlyCh' +'ooseIPButton'#21'AnchorSideTop.Control'#7#22'RandomlyChooseIPButton'#18'Anc' +'horSideTop.Side'#7#9'asrBottom'#4'Left'#2#2#6'Height'#2#31#3'Top'#2'!'#5'Wi' +'dth'#3#184#0#17'BorderSpacing.Top'#2#2#8'TabOrder'#2#1#0#0#0#6'TLabel'#11'S' +'tatusLabel'#22'AnchorSideLeft.Control'#7#17'InstructionsLabel'#21'AnchorSid' +'eTop.Control'#7#16'InstructionsMemo'#18'AnchorSideTop.Side'#7#9'asrBottom'#4 +'Left'#3'~'#1#6'Height'#2#21#3'Top'#3#224#0#5'Width'#2'.'#7'Caption'#6#7'Sta' +'tus:'#11'ParentColor'#8#0#0#9'TGroupBox'#16'FixXPortGroupBox'#22'AnchorSide' +'Left.Control'#7#16'IPsInUseGroupBox'#21'AnchorSideTop.Control'#7#16'ChooseI' +'PGroupBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control' +#7#16'IPsInUseGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#0#6 +'Height'#2'@'#3'Top'#3#24#2#5'Width'#3'x'#1#7'Anchors'#11#5'akTop'#6'akLeft' +#7'akRight'#0#7'Caption'#6#13'3: Fix XPort:'#12'ClientHeight'#2')'#11'Client' +'Width'#3't'#1#8'TabOrder'#2#3#0#7'TButton'#14'FixXPortButton'#22'AnchorSide' +'Left.Control'#7#16'FixXPortGroupBox'#21'AnchorSideTop.Control'#7#16'FixXPor' +'tGroupBox'#4'Left'#2#0#6'Height'#2#25#3'Top'#2#0#5'Width'#2'K'#7'Caption'#6 +#9'Fix XPort'#8'TabOrder'#2#0#0#0#0#5'TMemo'#16'InstructionsMemo'#22'AnchorS' +'ideLeft.Control'#7#17'InstructionsLabel'#21'AnchorSideTop.Control'#7#17'Ins' ,'tructionsLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Co' +'ntrol'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3'~'#1#6 +'Height'#3#203#0#3'Top'#2#21#5'Width'#3#208#1#7'Anchors'#11#5'akTop'#6'akLef' +'t'#7'akRight'#0#8'TabOrder'#2#4#0#0#6'TLabel'#17'InstructionsLabel'#22'Anch' +'orSideLeft.Control'#7#16'IPsInUseGroupBox'#19'AnchorSideLeft.Side'#7#9'asrB' +'ottom'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'#3'~'#1#6'Height'#2#21#3 +'Top'#2#0#5'Width'#2'V'#18'BorderSpacing.Left'#2#6#7'Caption'#6#13'Instructi' +'ons:'#11'ParentColor'#8#0#0#0 ]); ./kylix.inc0000644000175000017500000000170614576573021013006 0ustar anthonyanthony// // This is FPC-incompatible code and was excluded from jedi.inc for this reason // // Kylix 3/C++ for some reason evaluates CompilerVersion comparisons to False, // if the constant to compare with is a floating point value - weird. // The "+" sign prevents Kylix/Delphi from issueing a warning about comparing // signed and unsigned values. // {$IF not Declared(CompilerVersion)} {$DEFINE KYLIX1} {$DEFINE COMPILER6} {$DEFINE DELPHICOMPILER6} {$DEFINE RTL140_UP} {$ELSEIF Declared(CompilerVersion) and (CompilerVersion > +14)} {$DEFINE KYLIX2} {$DEFINE COMPILER6} {$DEFINE DELPHICOMPILER6} {$DEFINE RTL142_UP} {$ELSEIF Declared(CompilerVersion) and (CompilerVersion < +15)} {$DEFINE KYLIX3} {$DEFINE COMPILER6} {$IFNDEF BCB} {$DEFINE DELPHICOMPILER6} {$ENDIF} {$DEFINE RTL145_UP} {$ELSE} Add new Kylix version {$IFEND} ./license.lrs0000744000175000017500000001225114576573022013316 0ustar anthonyanthonyLazarusResources.Add('gpl.txt','TXT',[ ' Copyright (C) '#13#10#13#10' This source' +' is free software; you can redistribute it and/or modify it under'#13#10' ' +'the terms of the GNU General Public License as published by the Free'#13#10 +' Software Foundation; either version 2 of the License, or (at your option)' +#13#10' any later version.'#13#10#13#10' This code is distributed in the h' +'ope that it will be useful, but WITHOUT ANY'#13#10' WARRANTY; without even' +' the implied warranty of MERCHANTABILITY or FITNESS'#13#10' FOR A PARTICUL' +'AR PURPOSE. See the GNU General Public License for more'#13#10' details.' +#13#10#13#10' A copy of the GNU General Public License is available on the ' +'World Wide Web'#13#10' at . You can ' +'also obtain it by writing'#13#10' to the Free Software Foundation, Inc., 5' +'9 Temple Place - Suite 330, Boston,'#13#10' MA 02111-1307, USA.' ]); LazarusResources.Add('lgpl.txt','TXT',[ ' Copyright (C) '#13#10#13#10' This librar' +'y is free software; you can redistribute it and/or modify it'#13#10' under' +' the terms of the GNU Library General Public License as published by'#13#10 +' the Free Software Foundation; either version 2 of the License, or (at you' +'r'#13#10' option) any later version.'#13#10#13#10' This program is distri' +'buted in the hope that it will be useful, but WITHOUT'#13#10' ANY WARRANTY' +'; without even the implied warranty of MERCHANTABILITY or'#13#10' FITNESS ' +'FOR A PARTICULAR PURPOSE. See the GNU Library General Public License'#13#10 +' for more details.'#13#10#13#10' You should have received a copy of the G' +'NU Library General Public License'#13#10' along with this library; if not,' +' write to the Free Software Foundation,'#13#10' Inc., 59 Temple Place - Su' +'ite 330, Boston, MA 02111-1307, USA.' ]); LazarusResources.Add('mit.txt','TXT',[ ' Copyright (c) '#13#10#13#10' Permission is here' +'by granted, free of charge, to any person obtaining a copy'#13#10' of this' +' software and associated documentation files (the "Software"), to'#13#10' ' +'deal in the Software without restriction, including without limitation the' +#13#10' rights to use, copy, modify, merge, publish, distribute, sublicense' +', and/or'#13#10' sell copies of the Software, and to permit persons to who' +'m the Software is'#13#10' furnished to do so, subject to the following con' +'ditions:'#13#10#13#10' The above copyright notice and this permission noti' +'ce shall be included in'#13#10' all copies or substantial portions of the ' +'Software.'#13#10#13#10' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY' +' OF ANY KIND, EXPRESS OR'#13#10' IMPLIED, INCLUDING BUT NOT LIMITED TO THE' +' WARRANTIES OF MERCHANTABILITY,'#13#10' FITNESS FOR A PARTICULAR PURPOSE A' +'ND NONINFRINGEMENT. IN NO EVENT SHALL THE'#13#10' AUTHORS OR COPYRIGHT HOL' +'DERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER'#13#10' LIABILITY, WHETHER ' +'IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING'#13#10' FROM, OUT OF ' +'OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS'#13#10' IN' +' THE SOFTWARE.' ]); LazarusResources.Add('modifiedgpl.txt','TXT',[ ' Copyright (C) '#13#10#13#10' This librar' +'y is free software; you can redistribute it and/or modify it'#13#10' under' +' the terms of the GNU Library General Public License as published by'#13#10 +' the Free Software Foundation; either version 2 of the License, or (at you' +'r'#13#10' option) any later version with the following modification:'#13#10 +#13#10' As a special exception, the copyright holders of this library give ' +'you'#13#10' permission to link this library with independent modules to pr' +'oduce an'#13#10' executable, regardless of the license terms of these inde' +'pendent modules,and'#13#10' to copy and distribute the resulting executabl' +'e under terms of your choice,'#13#10' provided that you also meet, for eac' +'h linked independent module, the terms'#13#10' and conditions of the licen' +'se of that module. An independent module is a'#13#10' module which is not ' +'derived from or based on this library. If you modify'#13#10' this library,' +' you may extend this exception to your version of the library,'#13#10' but' +' you are not obligated to do so. If you do not wish to do so, delete this' +#13#10' exception statement from your version.'#13#10#13#10' This program ' +'is distributed in the hope that it will be useful, but WITHOUT'#13#10' ANY' +' WARRANTY; without even the implied warranty of MERCHANTABILITY or'#13#10' ' +' FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public Licen' +'se'#13#10' for more details.'#13#10#13#10' You should have received a cop' +'y of the GNU Library General Public License'#13#10' along with this librar' +'y; if not, write to the Free Software Foundation,'#13#10' Inc., 59 Temple ' +'Place - Suite 330, Boston, MA 02111-1307, USA.' ]); ./synaser.pas0000644000175000017500000020621414576573021013345 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 007.005.004 | |==============================================================================| | Content: Serial port support | |==============================================================================| | Copyright (c)2001-2012, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2001-2012. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | | (c)2002, Hans-Georg Joepgen (cpom Comport Ownership Manager and bugfixes) | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {: @abstract(Serial port communication library) This unit contains a class that implements serial port communication for Windows, Linux, Unix or MacOSx. This class provides numerous methods with same name and functionality as methods of the Ararat Synapse TCP/IP library. The following is a small example how establish a connection by modem (in this case with my USB modem): @longcode(# ser:=TBlockSerial.Create; try ser.Connect('COM3'); ser.config(460800,8,'N',0,false,true); ser.ATCommand('AT'); if (ser.LastError <> 0) or (not ser.ATResult) then Exit; ser.ATConnect('ATDT+420971200111'); if (ser.LastError <> 0) or (not ser.ATResult) then Exit; // you are now connected to a modem at +420971200111 // you can transmit or receive data now finally ser.free; end; #) } //old Delphi does not have MSWINDOWS define. {$IFDEF WIN32} {$IFNDEF MSWINDOWS} {$DEFINE MSWINDOWS} {$ENDIF} {$ENDIF} //Kylix does not known UNIX define {$IFDEF LINUX} {$IFNDEF UNIX} {$DEFINE UNIX} {$ENDIF} {$ENDIF} {$IFDEF FPC} {$MODE DELPHI} {$IFDEF MSWINDOWS} {$ASMMODE intel} {$ENDIF} {define working mode w/o LIBC for fpc} {$DEFINE NO_LIBC} {$ENDIF} {$Q-} {$H+} {$M+} unit synaser; interface uses {$IFNDEF MSWINDOWS} {$IFNDEF NO_LIBC} Libc, KernelIoctl, {$ELSE} termio, baseunix, unix, {$ENDIF} {$IFNDEF FPC} Types, {$ENDIF} {$ELSE} Windows, registry, {$IFDEF FPC} winver, {$ENDIF} {$ENDIF} synafpc, Classes, SysUtils, synautil; const CR = #$0d; LF = #$0a; CRLF = CR + LF; cSerialChunk = 8192; LockfileDirectory = '/var/lock'; {HGJ} PortIsClosed = -1; {HGJ} ErrAlreadyOwned = 9991; {HGJ} ErrAlreadyInUse = 9992; {HGJ} ErrWrongParameter = 9993; {HGJ} ErrPortNotOpen = 9994; {HGJ} ErrNoDeviceAnswer = 9995; {HGJ} ErrMaxBuffer = 9996; ErrTimeout = 9997; ErrNotRead = 9998; ErrFrame = 9999; ErrOverrun = 10000; ErrRxOver = 10001; ErrRxParity = 10002; ErrTxFull = 10003; dcb_Binary = $00000001; dcb_ParityCheck = $00000002; dcb_OutxCtsFlow = $00000004; dcb_OutxDsrFlow = $00000008; dcb_DtrControlMask = $00000030; dcb_DtrControlDisable = $00000000; dcb_DtrControlEnable = $00000010; dcb_DtrControlHandshake = $00000020; dcb_DsrSensivity = $00000040; dcb_TXContinueOnXoff = $00000080; dcb_OutX = $00000100; dcb_InX = $00000200; dcb_ErrorChar = $00000400; dcb_NullStrip = $00000800; dcb_RtsControlMask = $00003000; dcb_RtsControlDisable = $00000000; dcb_RtsControlEnable = $00001000; dcb_RtsControlHandshake = $00002000; dcb_RtsControlToggle = $00003000; dcb_AbortOnError = $00004000; dcb_Reserveds = $FFFF8000; {:stopbit value for 1 stopbit} SB1 = 0; {:stopbit value for 1.5 stopbit} SB1andHalf = 1; {:stopbit value for 2 stopbits} SB2 = 2; {$IFNDEF MSWINDOWS} const INVALID_HANDLE_VALUE = THandle(-1); CS7fix = $0000020; type TDCB = record DCBlength: DWORD; BaudRate: DWORD; Flags: Longint; wReserved: Word; XonLim: Word; XoffLim: Word; ByteSize: Byte; Parity: Byte; StopBits: Byte; XonChar: CHAR; XoffChar: CHAR; ErrorChar: CHAR; EofChar: CHAR; EvtChar: CHAR; wReserved1: Word; end; PDCB = ^TDCB; const {$IFDEF UNIX} {$ifdef cpuarm} MaxRates = 19; //linux cpuarm {$else} {$IFDEF BSD} MaxRates = 18; //MAC {$ELSE} MaxRates = 30; //UNIX {$ENDIF} {$endif} {$ELSE} MaxRates = 19; //WIN {$ENDIF} Rates: array[0..MaxRates, 0..1] of cardinal = ( (0, B0), (50, B50), (75, B75), (110, B110), (134, B134), (150, B150), (200, B200), (300, B300), (600, B600), (1200, B1200), (1800, B1800), (2400, B2400), (4800, B4800), (9600, B9600), (19200, B19200), (38400, B38400), (57600, B57600), (115200, B115200), (230400, B230400) {$IFNDEF BSD} ,(460800, B460800) {$IFDEF UNIX} {$ifndef cpuarm} ,(500000, B500000), (576000, B576000), (921600, B921600), (1000000, B1000000), (1152000, B1152000), (1500000, B1500000), (2000000, B2000000), (2500000, B2500000), (3000000, B3000000), (3500000, B3500000), (4000000, B4000000) {$endif} {$ENDIF} {$ENDIF} ); {$ENDIF} {$IFDEF DARWIN} const // From fcntl.h O_SYNC = $0080; { synchronous writes } {$ENDIF} const sOK = 0; sErr = integer(-1); type {:Possible status event types for @link(THookSerialStatus)} THookSerialReason = ( HR_SerialClose, HR_Connect, HR_CanRead, HR_CanWrite, HR_ReadCount, HR_WriteCount, HR_Wait ); {:procedural prototype for status event hooking} THookSerialStatus = procedure(Sender: TObject; Reason: THookSerialReason; const Value: string) of object; {:@abstract(Exception type for SynaSer errors)} ESynaSerError = class(Exception) public ErrorCode: integer; ErrorMessage: string; end; {:@abstract(Main class implementing all communication routines)} TBlockSerial = class(TObject) protected FOnStatus: THookSerialStatus; Fhandle: THandle; FTag: integer; FDevice: string; FLastError: integer; FLastErrorDesc: string; FBuffer: AnsiString; FRaiseExcept: boolean; FRecvBuffer: integer; FSendBuffer: integer; FModemWord: integer; FRTSToggle: Boolean; FDeadlockTimeout: integer; FInstanceActive: boolean; {HGJ} FTestDSR: Boolean; FTestCTS: Boolean; FLastCR: Boolean; FLastLF: Boolean; FMaxLineLength: Integer; FLinuxLock: Boolean; FMaxSendBandwidth: Integer; FNextSend: LongWord; FMaxRecvBandwidth: Integer; FNextRecv: LongWord; FConvertLineEnd: Boolean; FATResult: Boolean; FAtTimeout: integer; FInterPacketTimeout: Boolean; FComNr: integer; {$IFDEF MSWINDOWS} FPortAddr: Word; function CanEvent(Event: dword; Timeout: integer): boolean; procedure DecodeCommError(Error: DWord); virtual; {$IFDEF WIN32} function GetPortAddr: Word; virtual; function ReadTxEmpty(PortAddr: Word): Boolean; virtual; {$ENDIF} {$ENDIF} procedure SetSizeRecvBuffer(size: integer); virtual; function GetDSR: Boolean; virtual; procedure SetDTRF(Value: Boolean); virtual; function GetCTS: Boolean; virtual; procedure SetRTSF(Value: Boolean); virtual; function GetCarrier: Boolean; virtual; function GetRing: Boolean; virtual; procedure DoStatus(Reason: THookSerialReason; const Value: string); virtual; procedure GetComNr(Value: string); virtual; function PreTestFailing: boolean; virtual;{HGJ} function TestCtrlLine: Boolean; virtual; {$IFDEF UNIX} procedure DcbToTermios(const dcb: TDCB; var term: termios); virtual; procedure TermiosToDcb(const term: termios; var dcb: TDCB); virtual; function ReadLockfile: integer; virtual; function LockfileName: String; virtual; procedure CreateLockfile(PidNr: integer); virtual; {$ENDIF} procedure LimitBandwidth(Length: Integer; MaxB: integer; var Next: LongWord); virtual; procedure SetBandwidth(Value: Integer); virtual; public {: data Control Block with communication parameters. Usable only when you need to call API directly.} DCB: Tdcb; {$IFDEF UNIX} TermiosStruc: termios; {$ENDIF} {:Object constructor.} constructor Create; {:Object destructor.} destructor Destroy; override; {:Returns a string containing the version number of the library.} class function GetVersion: string; virtual; {:Destroy handle in use. It close connection to serial port.} procedure CloseSocket; virtual; {:Reconfigure communication parameters on the fly. You must be connected to port before! @param(baud Define connection speed. Baud rate can be from 50 to 4000000 bits per second. (it depends on your hardware!)) @param(bits Number of bits in communication.) @param(parity Define communication parity (N - None, O - Odd, E - Even, M - Mark or S - Space).) @param(stop Define number of stopbits. Use constants @link(SB1), @link(SB1andHalf) and @link(SB2).) @param(softflow Enable XON/XOFF handshake.) @param(hardflow Enable CTS/RTS handshake.)} procedure Config(baud, bits: integer; parity: char; stop: integer; softflow, hardflow: boolean); virtual; {:Connects to the port indicated by comport. Comport can be used in Windows style (COM2), or in Linux style (/dev/ttyS1). When you use windows style in Linux, then it will be converted to Linux name. And vice versa! However you can specify any device name! (other device names then standart is not converted!) After successfull connection the DTR signal is set (if you not set hardware handshake, then the RTS signal is set, too!) Connection parameters is predefined by your system configuration. If you need use another parameters, then you can use Config method after. Notes: - Remember, the commonly used serial Laplink cable does not support hardware handshake. - Before setting any handshake you must be sure that it is supported by your hardware. - Some serial devices are slow. In some cases you must wait up to a few seconds after connection for the device to respond. - when you connect to a modem device, then is best to test it by an empty AT command. (call ATCommand('AT'))} procedure Connect(comport: string); virtual; {:Set communication parameters from the DCB structure (the DCB structure is simulated under Linux).} procedure SetCommState; virtual; {:Read communication parameters into the DCB structure (DCB structure is simulated under Linux).} procedure GetCommState; virtual; {:Sends Length bytes of data from Buffer through the connected port.} function SendBuffer(buffer: pointer; length: integer): integer; virtual; {:One data BYTE is sent.} procedure SendByte(data: byte); virtual; {:Send the string in the data parameter. No terminator is appended by this method. If you need to send a string with CR/LF terminator, you must append the CR/LF characters to the data string! Since no terminator is appended, you can use this function for sending binary data too.} procedure SendString(data: AnsiString); virtual; {:send four bytes as integer.} procedure SendInteger(Data: integer); virtual; {:send data as one block. Each block begins with integer value with Length of block.} procedure SendBlock(const Data: AnsiString); virtual; {:send content of stream from current position} procedure SendStreamRaw(const Stream: TStream); virtual; {:send content of stream as block. see @link(SendBlock)} procedure SendStream(const Stream: TStream); virtual; {:send content of stream as block, but this is compatioble with Indy library. (it have swapped lenght of block). See @link(SendStream)} procedure SendStreamIndy(const Stream: TStream); virtual; {:Waits until the allocated buffer is filled by received data. Returns number of data bytes received, which equals to the Length value under normal operation. If it is not equal, the communication channel is possibly broken. This method not using any internal buffering, like all others receiving methods. You cannot freely combine this method with all others receiving methods!} function RecvBuffer(buffer: pointer; length: integer): integer; virtual; {:Method waits until data is received. If no data is received within the Timeout (in milliseconds) period, @link(LastError) is set to @link(ErrTimeout). This method is used to read any amount of data (e. g. 1MB), and may be freely combined with all receviving methods what have Timeout parameter, like the @link(RecvString), @link(RecvByte) or @link(RecvTerminated) methods.} function RecvBufferEx(buffer: pointer; length: integer; timeout: integer): integer; virtual; {:It is like recvBufferEx, but data is readed to dynamicly allocated binary string.} function RecvBufferStr(Length: Integer; Timeout: Integer): AnsiString; virtual; {:Read all available data and return it in the function result string. This function may be combined with @link(RecvString), @link(RecvByte) or related methods.} function RecvPacket(Timeout: Integer): AnsiString; virtual; {:Waits until one data byte is received which is returned as the function result. If no data is received within the Timeout (in milliseconds) period, @link(LastError) is set to @link(ErrTimeout).} function RecvByte(timeout: integer): byte; virtual; {:This method waits until a terminated data string is received. This string is terminated by the Terminator string. The resulting string is returned without this termination string! If no data is received within the Timeout (in milliseconds) period, @link(LastError) is set to @link(ErrTimeout).} function RecvTerminated(Timeout: Integer; const Terminator: AnsiString): AnsiString; virtual; {:This method waits until a terminated data string is received. The string is terminated by a CR/LF sequence. The resulting string is returned without the terminator (CR/LF)! If no data is received within the Timeout (in milliseconds) period, @link(LastError) is set to @link(ErrTimeout). If @link(ConvertLineEnd) is used, then the CR/LF sequence may not be exactly CR/LF. See the description of @link(ConvertLineEnd). This method serves for line protocol implementation and uses its own buffers to maximize performance. Therefore do NOT use this method with the @link(RecvBuffer) method to receive data as it may cause data loss.} function Recvstring(timeout: integer): AnsiString; virtual; {:Waits until four data bytes are received which is returned as the function integer result. If no data is received within the Timeout (in milliseconds) period, @link(LastError) is set to @link(ErrTimeout).} function RecvInteger(Timeout: Integer): Integer; virtual; {:Waits until one data block is received. See @link(sendblock). If no data is received within the Timeout (in milliseconds) period, @link(LastError) is set to @link(ErrTimeout).} function RecvBlock(Timeout: Integer): AnsiString; virtual; {:Receive all data to stream, until some error occured. (for example timeout)} procedure RecvStreamRaw(const Stream: TStream; Timeout: Integer); virtual; {:receive requested count of bytes to stream} procedure RecvStreamSize(const Stream: TStream; Timeout: Integer; Size: Integer); virtual; {:receive block of data to stream. (Data can be sended by @link(sendstream)} procedure RecvStream(const Stream: TStream; Timeout: Integer); virtual; {:receive block of data to stream. (Data can be sended by @link(sendstreamIndy)} procedure RecvStreamIndy(const Stream: TStream; Timeout: Integer); virtual; {:Returns the number of received bytes waiting for reading. 0 is returned when there is no data waiting.} function WaitingData: integer; virtual; {:Same as @link(WaitingData), but in respect to data in the internal @link(LineBuffer).} function WaitingDataEx: integer; virtual; {:Returns the number of bytes waiting to be sent in the output buffer. 0 is returned when the output buffer is empty.} function SendingData: integer; virtual; {:Enable or disable RTS driven communication (half-duplex). It can be used to communicate with RS485 converters, or other special equipment. If you enable this feature, the system automatically controls the RTS signal. Notes: - On Windows NT (or higher) ir RTS signal driven by system driver. - On Win9x family is used special code for waiting until last byte is sended from your UART. - On Linux you must have kernel 2.1 or higher!} procedure EnableRTSToggle(value: boolean); virtual; {:Waits until all data to is sent and buffers are emptied. Warning: On Windows systems is this method returns when all buffers are flushed to the serial port controller, before the last byte is sent!} procedure Flush; virtual; {:Unconditionally empty all buffers. It is good when you need to interrupt communication and for cleanups.} procedure Purge; virtual; {:Returns @True, if you can from read any data from the port. Status is tested for a period of time given by the Timeout parameter (in milliseconds). If the value of the Timeout parameter is 0, the status is tested only once and the function returns immediately. If the value of the Timeout parameter is set to -1, the function returns only after it detects data on the port (this may cause the process to hang).} function CanRead(Timeout: integer): boolean; virtual; {:Returns @True, if you can write any data to the port (this function is not sending the contents of the buffer). Status is tested for a period of time given by the Timeout parameter (in milliseconds). If the value of the Timeout parameter is 0, the status is tested only once and the function returns immediately. If the value of the Timeout parameter is set to -1, the function returns only after it detects that it can write data to the port (this may cause the process to hang).} function CanWrite(Timeout: integer): boolean; virtual; {:Same as @link(CanRead), but the test is against data in the internal @link(LineBuffer) too.} function CanReadEx(Timeout: integer): boolean; virtual; {:Returns the status word of the modem. Decoding the status word could yield the status of carrier detect signaland other signals. This method is used internally by the modem status reading properties. You usually do not need to call this method directly.} function ModemStatus: integer; virtual; {:Send a break signal to the communication device for Duration milliseconds.} procedure SetBreak(Duration: integer); virtual; {:This function is designed to send AT commands to the modem. The AT command is sent in the Value parameter and the response is returned in the function return value (may contain multiple lines!). If the AT command is processed successfully (modem returns OK), then the @link(ATResult) property is set to True. This function is designed only for AT commands that return OK or ERROR response! To call connection commands the @link(ATConnect) method. Remember, when you connect to a modem device, it is in AT command mode. Now you can send AT commands to the modem. If you need to transfer data to the modem on the other side of the line, you must first switch to data mode using the @link(ATConnect) method.} function ATCommand(value: AnsiString): AnsiString; virtual; {:This function is used to send connect type AT commands to the modem. It is for commands to switch to connected state. (ATD, ATA, ATO,...) It sends the AT command in the Value parameter and returns the modem's response (may be multiple lines - usually with connection parameters info). If the AT command is processed successfully (the modem returns CONNECT), then the ATResult property is set to @True. This function is designed only for AT commands which respond by CONNECT, BUSY, NO DIALTONE NO CARRIER or ERROR. For other AT commands use the @link(ATCommand) method. The connect timeout is 90*@link(ATTimeout). If this command is successful (@link(ATresult) is @true), then the modem is in data state. When you now send or receive some data, it is not to or from your modem, but from the modem on other side of the line. Now you can transfer your data. If the connection attempt failed (@link(ATResult) is @False), then the modem is still in AT command mode.} function ATConnect(value: AnsiString): AnsiString; virtual; {:If you "manually" call API functions, forward their return code in the SerialResult parameter to this function, which evaluates it and sets @link(LastError) and @link(LastErrorDesc).} function SerialCheck(SerialResult: integer): integer; virtual; {:If @link(Lasterror) is not 0 and exceptions are enabled, then this procedure raises an exception. This method is used internally. You may need it only in special cases.} procedure ExceptCheck; virtual; {:Set Synaser to error state with ErrNumber code. Usually used by internal routines.} procedure SetSynaError(ErrNumber: integer); virtual; {:Raise Synaser error with ErrNumber code. Usually used by internal routines.} procedure RaiseSynaError(ErrNumber: integer); virtual; {$IFDEF UNIX} function cpomComportAccessible: boolean; virtual;{HGJ} procedure cpomReleaseComport; virtual; {HGJ} {$ENDIF} {:True device name of currently used port} property Device: string read FDevice; {:Error code of last operation. Value is defined by the host operating system, but value 0 is always OK.} property LastError: integer read FLastError; {:Human readable description of LastError code.} property LastErrorDesc: string read FLastErrorDesc; {:Indicates if the last @link(ATCommand) or @link(ATConnect) method was successful} property ATResult: Boolean read FATResult; {:Read the value of the RTS signal.} property RTS: Boolean write SetRTSF; {:Indicates the presence of the CTS signal} property CTS: boolean read GetCTS; {:Use this property to set the value of the DTR signal.} property DTR: Boolean write SetDTRF; {:Exposes the status of the DSR signal.} property DSR: boolean read GetDSR; {:Indicates the presence of the Carrier signal} property Carrier: boolean read GetCarrier; {:Reflects the status of the Ring signal.} property Ring: boolean read GetRing; {:indicates if this instance of SynaSer is active. (Connected to some port)} property InstanceActive: boolean read FInstanceActive; {HGJ} {:Defines maximum bandwidth for all sending operations in bytes per second. If this value is set to 0 (default), bandwidth limitation is not used.} property MaxSendBandwidth: Integer read FMaxSendBandwidth Write FMaxSendBandwidth; {:Defines maximum bandwidth for all receiving operations in bytes per second. If this value is set to 0 (default), bandwidth limitation is not used.} property MaxRecvBandwidth: Integer read FMaxRecvBandwidth Write FMaxRecvBandwidth; {:Defines maximum bandwidth for all sending and receiving operations in bytes per second. If this value is set to 0 (default), bandwidth limitation is not used.} property MaxBandwidth: Integer Write SetBandwidth; {:Size of the Windows internal receive buffer. Default value is usually 4096 bytes. Note: Valid only in Windows versions!} property SizeRecvBuffer: integer read FRecvBuffer write SetSizeRecvBuffer; published {:Returns the descriptive text associated with ErrorCode. You need this method only in special cases. Description of LastError is now accessible through the LastErrorDesc property.} class function GetErrorDesc(ErrorCode: integer): string; {:Freely usable property} property Tag: integer read FTag write FTag; {:Contains the handle of the open communication port. You may need this value to directly call communication functions outside SynaSer.} property Handle: THandle read Fhandle write FHandle; {:Internally used read buffer.} property LineBuffer: AnsiString read FBuffer write FBuffer; {:If @true, communication errors raise exceptions. If @false (default), only the @link(LastError) value is set.} property RaiseExcept: boolean read FRaiseExcept write FRaiseExcept; {:This event is triggered when the communication status changes. It can be used to monitor communication status.} property OnStatus: THookSerialStatus read FOnStatus write FOnStatus; {:If you set this property to @true, then the value of the DSR signal is tested before every data transfer. It can be used to detect the presence of a communications device.} property TestDSR: boolean read FTestDSR write FTestDSR; {:If you set this property to @true, then the value of the CTS signal is tested before every data transfer. It can be used to detect the presence of a communications device. Warning: This property cannot be used if you need hardware handshake!} property TestCTS: boolean read FTestCTS write FTestCTS; {:Use this property you to limit the maximum size of LineBuffer (as a protection against unlimited memory allocation for LineBuffer). Default value is 0 - no limit.} property MaxLineLength: Integer read FMaxLineLength Write FMaxLineLength; {:This timeout value is used as deadlock protection when trying to send data to (or receive data from) a device that stopped communicating during data transmission (e.g. by physically disconnecting the device). The timeout value is in milliseconds. The default value is 30,000 (30 seconds).} property DeadlockTimeout: Integer read FDeadlockTimeout Write FDeadlockTimeout; {:If set to @true (default value), port locking is enabled (under Linux only). WARNING: To use this feature, the application must run by a user with full permission to the /var/lock directory!} property LinuxLock: Boolean read FLinuxLock write FLinuxLock; {:Indicates if non-standard line terminators should be converted to a CR/LF pair (standard DOS line terminator). If @TRUE, line terminators CR, single LF or LF/CR are converted to CR/LF. Defaults to @FALSE. This property has effect only on the behavior of the RecvString method.} property ConvertLineEnd: Boolean read FConvertLineEnd Write FConvertLineEnd; {:Timeout for AT modem based operations} property AtTimeout: integer read FAtTimeout Write FAtTimeout; {:If @true (default), then all timeouts is timeout between two characters. If @False, then timeout is overall for whoole reading operation.} property InterPacketTimeout: Boolean read FInterPacketTimeout Write FInterPacketTimeout; end; {:Returns list of existing computer serial ports. Working properly only in Windows!} function GetSerialPortNames: string; implementation constructor TBlockSerial.Create; begin inherited create; FRaiseExcept := false; FHandle := INVALID_HANDLE_VALUE; FDevice := ''; FComNr:= PortIsClosed; {HGJ} FInstanceActive:= false; {HGJ} Fbuffer := ''; FRTSToggle := False; FMaxLineLength := 0; FTestDSR := False; FTestCTS := False; FDeadlockTimeout := 30000; FLinuxLock := True; FMaxSendBandwidth := 0; FNextSend := 0; FMaxRecvBandwidth := 0; FNextRecv := 0; FConvertLineEnd := False; SetSynaError(sOK); FRecvBuffer := 4096; FLastCR := False; FLastLF := False; FAtTimeout := 1000; FInterPacketTimeout := True; end; destructor TBlockSerial.Destroy; begin CloseSocket; inherited destroy; end; class function TBlockSerial.GetVersion: string; begin Result := 'SynaSer 7.5.4'; end; procedure TBlockSerial.CloseSocket; begin if Fhandle <> INVALID_HANDLE_VALUE then begin Purge; RTS := False; DTR := False; FileClose(FHandle); end; if InstanceActive then begin {$IFDEF UNIX} if FLinuxLock then cpomReleaseComport; {$ENDIF} FInstanceActive:= false end; Fhandle := INVALID_HANDLE_VALUE; FComNr:= PortIsClosed; SetSynaError(sOK); DoStatus(HR_SerialClose, FDevice); end; {$IFDEF WIN32} function TBlockSerial.GetPortAddr: Word; begin Result := 0; if Win32Platform <> VER_PLATFORM_WIN32_NT then begin EscapeCommFunction(FHandle, 10); asm MOV @Result, DX; end; end; end; function TBlockSerial.ReadTxEmpty(PortAddr: Word): Boolean; begin Result := True; if Win32Platform <> VER_PLATFORM_WIN32_NT then begin asm MOV DX, PortAddr; ADD DX, 5; IN AL, DX; AND AL, $40; JZ @K; MOV AL,1; @K: MOV @Result, AL; end; end; end; {$ENDIF} procedure TBlockSerial.GetComNr(Value: string); begin FComNr := PortIsClosed; if pos('COM', uppercase(Value)) = 1 then FComNr := StrToIntdef(copy(Value, 4, Length(Value) - 3), PortIsClosed + 1) - 1; if pos('/DEV/TTYS', uppercase(Value)) = 1 then FComNr := StrToIntdef(copy(Value, 10, Length(Value) - 9), PortIsClosed - 1); end; procedure TBlockSerial.SetBandwidth(Value: Integer); begin MaxSendBandwidth := Value; MaxRecvBandwidth := Value; end; procedure TBlockSerial.LimitBandwidth(Length: Integer; MaxB: integer; var Next: LongWord); var x: LongWord; y: LongWord; begin if MaxB > 0 then begin y := GetTick; if Next > y then begin x := Next - y; if x > 0 then begin DoStatus(HR_Wait, IntToStr(x)); sleep(x); end; end; Next := GetTick + Trunc((Length / MaxB) * 1000); end; end; procedure TBlockSerial.Config(baud, bits: integer; parity: char; stop: integer; softflow, hardflow: boolean); begin FillChar(dcb, SizeOf(dcb), 0); GetCommState; dcb.DCBlength := SizeOf(dcb); dcb.BaudRate := baud; dcb.ByteSize := bits; case parity of 'N', 'n': dcb.parity := 0; 'O', 'o': dcb.parity := 1; 'E', 'e': dcb.parity := 2; 'M', 'm': dcb.parity := 3; 'S', 's': dcb.parity := 4; end; dcb.StopBits := stop; dcb.XonChar := #17; dcb.XoffChar := #19; dcb.XonLim := FRecvBuffer div 4; dcb.XoffLim := FRecvBuffer div 4; dcb.Flags := dcb_Binary; if softflow then dcb.Flags := dcb.Flags or dcb_OutX or dcb_InX; if hardflow then dcb.Flags := dcb.Flags or dcb_OutxCtsFlow or dcb_RtsControlHandshake else dcb.Flags := dcb.Flags or dcb_RtsControlEnable; dcb.Flags := dcb.Flags or dcb_DtrControlEnable; if dcb.Parity > 0 then dcb.Flags := dcb.Flags or dcb_ParityCheck; SetCommState; end; procedure TBlockSerial.Connect(comport: string); {$IFDEF MSWINDOWS} var CommTimeouts: TCommTimeouts; {$ENDIF} begin // Is this TBlockSerial Instance already busy? if InstanceActive then {HGJ} begin {HGJ} RaiseSynaError(ErrAlreadyInUse); Exit; {HGJ} end; {HGJ} FBuffer := ''; FDevice := comport; GetComNr(comport); {$IFDEF MSWINDOWS} SetLastError (sOK); {$ELSE} {$IFNDEF FPC} SetLastError (sOK); {$ELSE} fpSetErrno(sOK); {$ENDIF} {$ENDIF} {$IFNDEF MSWINDOWS} if FComNr <> PortIsClosed then FDevice := '/dev/ttyS' + IntToStr(FComNr); // Comport already owned by another process? {HGJ} if FLinuxLock then if not cpomComportAccessible then begin RaiseSynaError(ErrAlreadyOwned); Exit; end; {$IFNDEF FPC} FHandle := THandle(Libc.open(pchar(FDevice), O_RDWR or O_SYNC)); {$ELSE} //FHandle := THandle(fpOpen(FDevice, O_RDWR or O_SYNC)); FHandle := THandle(fpOpen(FDevice, O_RDWR or O_SYNC or O_NONBLOCK)); //{AET 20111111} {$ENDIF} if FHandle = INVALID_HANDLE_VALUE then //because THandle is not integer on all platforms! SerialCheck(-1) else SerialCheck(0); {$IFDEF UNIX} if FLastError <> sOK then if FLinuxLock then cpomReleaseComport; {$ENDIF} ExceptCheck; if FLastError <> sOK then Exit; {$ELSE} if FComNr <> PortIsClosed then FDevice := '\\.\COM' + IntToStr(FComNr + 1); FHandle := THandle(CreateFile(PChar(FDevice), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL or FILE_FLAG_OVERLAPPED, 0)); if FHandle = INVALID_HANDLE_VALUE then //because THandle is not integer on all platforms! SerialCheck(-1) else SerialCheck(0); ExceptCheck; if FLastError <> sOK then Exit; SetCommMask(FHandle, 0); SetupComm(Fhandle, FRecvBuffer, 0); CommTimeOuts.ReadIntervalTimeout := MAXWORD; CommTimeOuts.ReadTotalTimeoutMultiplier := 0; CommTimeOuts.ReadTotalTimeoutConstant := 0; CommTimeOuts.WriteTotalTimeoutMultiplier := 0; CommTimeOuts.WriteTotalTimeoutConstant := 0; SetCommTimeOuts(FHandle, CommTimeOuts); {$IFDEF WIN32} FPortAddr := GetPortAddr; {$ENDIF} {$ENDIF} SetSynaError(sOK); if not TestCtrlLine then {HGJ} begin SetSynaError(ErrNoDeviceAnswer); FileClose(FHandle); {HGJ} {$IFDEF UNIX} if FLinuxLock then cpomReleaseComport; {HGJ} {$ENDIF} {HGJ} Fhandle := INVALID_HANDLE_VALUE; {HGJ} FComNr:= PortIsClosed; {HGJ} end else begin FInstanceActive:= True; RTS := True; DTR := True; Purge; end; ExceptCheck; DoStatus(HR_Connect, FDevice); end; function TBlockSerial.SendBuffer(buffer: pointer; length: integer): integer; {$IFDEF MSWINDOWS} var Overlapped: TOverlapped; x, y, Err: DWord; {$ENDIF} begin Result := 0; if PreTestFailing then {HGJ} Exit; {HGJ} LimitBandwidth(Length, FMaxSendBandwidth, FNextsend); if FRTSToggle then begin Flush; RTS := True; end; {$IFNDEF MSWINDOWS} result := FileWrite(Fhandle, Buffer^, Length); serialcheck(result); {$ELSE} FillChar(Overlapped, Sizeof(Overlapped), 0); SetSynaError(sOK); y := 0; if not WriteFile(FHandle, Buffer^, Length, DWord(Result), @Overlapped) then y := GetLastError; if y = ERROR_IO_PENDING then begin x := WaitForSingleObject(FHandle, FDeadlockTimeout); if x = WAIT_TIMEOUT then begin PurgeComm(FHandle, PURGE_TXABORT); SetSynaError(ErrTimeout); end; GetOverlappedResult(FHandle, Overlapped, Dword(Result), False); end else SetSynaError(y); ClearCommError(FHandle, err, nil); if err <> 0 then DecodeCommError(err); {$ENDIF} if FRTSToggle then begin Flush; CanWrite(255); RTS := False; end; ExceptCheck; DoStatus(HR_WriteCount, IntToStr(Result)); end; procedure TBlockSerial.SendByte(data: byte); begin SendBuffer(@Data, 1); end; procedure TBlockSerial.SendString(data: AnsiString); begin SendBuffer(Pointer(Data), Length(Data)); end; procedure TBlockSerial.SendInteger(Data: integer); begin SendBuffer(@data, SizeOf(Data)); end; procedure TBlockSerial.SendBlock(const Data: AnsiString); begin SendInteger(Length(data)); SendString(Data); end; procedure TBlockSerial.SendStreamRaw(const Stream: TStream); var si: integer; x, y, yr: integer; s: AnsiString; begin si := Stream.Size - Stream.Position; x := 0; while x < si do begin y := si - x; if y > cSerialChunk then y := cSerialChunk; Setlength(s, y); yr := Stream.read(PAnsiChar(s)^, y); if yr > 0 then begin SetLength(s, yr); SendString(s); Inc(x, yr); end else break; end; end; procedure TBlockSerial.SendStreamIndy(const Stream: TStream); var si: integer; begin si := Stream.Size - Stream.Position; si := Swapbytes(si); SendInteger(si); SendStreamRaw(Stream); end; procedure TBlockSerial.SendStream(const Stream: TStream); var si: integer; begin si := Stream.Size - Stream.Position; SendInteger(si); SendStreamRaw(Stream); end; function TBlockSerial.RecvBuffer(buffer: pointer; length: integer): integer; {$IFNDEF MSWINDOWS} begin Result := 0; if PreTestFailing then {HGJ} Exit; {HGJ} LimitBandwidth(Length, FMaxRecvBandwidth, FNextRecv); result := FileRead(FHandle, Buffer^, length); serialcheck(result); {$ELSE} var Overlapped: TOverlapped; x, y, Err: DWord; begin Result := 0; if PreTestFailing then {HGJ} Exit; {HGJ} LimitBandwidth(Length, FMaxRecvBandwidth, FNextRecv); FillChar(Overlapped, Sizeof(Overlapped), 0); SetSynaError(sOK); y := 0; if not ReadFile(FHandle, Buffer^, length, Dword(Result), @Overlapped) then y := GetLastError; if y = ERROR_IO_PENDING then begin x := WaitForSingleObject(FHandle, FDeadlockTimeout); if x = WAIT_TIMEOUT then begin PurgeComm(FHandle, PURGE_RXABORT); SetSynaError(ErrTimeout); end; GetOverlappedResult(FHandle, Overlapped, Dword(Result), False); end else SetSynaError(y); ClearCommError(FHandle, err, nil); if err <> 0 then DecodeCommError(err); {$ENDIF} ExceptCheck; DoStatus(HR_ReadCount, IntToStr(Result)); end; function TBlockSerial.RecvBufferEx(buffer: pointer; length: integer; timeout: integer): integer; var s: AnsiString; rl, l: integer; ti: LongWord; begin Result := 0; if PreTestFailing then {HGJ} Exit; {HGJ} SetSynaError(sOK); rl := 0; repeat ti := GetTick; s := RecvPacket(Timeout); l := System.Length(s); if (rl + l) > Length then l := Length - rl; Move(Pointer(s)^, IncPoint(Buffer, rl)^, l); rl := rl + l; if FLastError <> sOK then Break; if rl >= Length then Break; if not FInterPacketTimeout then begin Timeout := Timeout - integer(TickDelta(ti, GetTick)); if Timeout <= 0 then begin SetSynaError(ErrTimeout); Break; end; end; until False; delete(s, 1, l); FBuffer := s; Result := rl; end; function TBlockSerial.RecvBufferStr(Length: Integer; Timeout: Integer): AnsiString; var x: integer; begin Result := ''; if PreTestFailing then {HGJ} Exit; {HGJ} SetSynaError(sOK); if Length > 0 then begin Setlength(Result, Length); x := RecvBufferEx(PAnsiChar(Result), Length , Timeout); if FLastError = sOK then SetLength(Result, x) else Result := ''; end; end; function TBlockSerial.RecvPacket(Timeout: Integer): AnsiString; var x: integer; begin Result := ''; if PreTestFailing then {HGJ} Exit; {HGJ} SetSynaError(sOK); if FBuffer <> '' then begin Result := FBuffer; FBuffer := ''; end else begin //not drain CPU on large downloads... Sleep(0); x := WaitingData; if x > 0 then begin SetLength(Result, x); x := RecvBuffer(Pointer(Result), x); if x >= 0 then SetLength(Result, x); end else begin if CanRead(Timeout) then begin x := WaitingData; if x = 0 then SetSynaError(ErrTimeout); if x > 0 then begin SetLength(Result, x); x := RecvBuffer(Pointer(Result), x); if x >= 0 then SetLength(Result, x); end; end else SetSynaError(ErrTimeout); end; end; ExceptCheck; end; function TBlockSerial.RecvByte(timeout: integer): byte; begin Result := 0; if PreTestFailing then {HGJ} Exit; {HGJ} SetSynaError(sOK); if FBuffer = '' then FBuffer := RecvPacket(Timeout); if (FLastError = sOK) and (FBuffer <> '') then begin Result := Ord(FBuffer[1]); System.Delete(FBuffer, 1, 1); end; ExceptCheck; end; function TBlockSerial.RecvTerminated(Timeout: Integer; const Terminator: AnsiString): AnsiString; var x: Integer; s: AnsiString; l: Integer; CorCRLF: Boolean; t: ansistring; tl: integer; ti: LongWord; begin Result := ''; if PreTestFailing then {HGJ} Exit; {HGJ} SetSynaError(sOK); l := system.Length(Terminator); if l = 0 then Exit; tl := l; CorCRLF := FConvertLineEnd and (Terminator = CRLF); s := ''; x := 0; repeat ti := GetTick; //get rest of FBuffer or incomming new data... s := s + RecvPacket(Timeout); if FLastError <> sOK then Break; x := 0; if Length(s) > 0 then if CorCRLF then begin if FLastCR and (s[1] = LF) then Delete(s, 1, 1); if FLastLF and (s[1] = CR) then Delete(s, 1, 1); FLastCR := False; FLastLF := False; t := ''; x := PosCRLF(s, t); tl := system.Length(t); if t = CR then FLastCR := True; if t = LF then FLastLF := True; end else begin x := pos(Terminator, s); tl := l; end; if (FMaxLineLength <> 0) and (system.Length(s) > FMaxLineLength) then begin SetSynaError(ErrMaxBuffer); Break; end; if x > 0 then Break; if not FInterPacketTimeout then begin Timeout := Timeout - integer(TickDelta(ti, GetTick)); if Timeout <= 0 then begin SetSynaError(ErrTimeout); Break; end; end; until False; if x > 0 then begin Result := Copy(s, 1, x - 1); System.Delete(s, 1, x + tl - 1); end; FBuffer := s; ExceptCheck; end; function TBlockSerial.RecvString(Timeout: Integer): AnsiString; var s: AnsiString; begin Result := ''; s := RecvTerminated(Timeout, #13 + #10); if FLastError = sOK then Result := s; end; function TBlockSerial.RecvInteger(Timeout: Integer): Integer; var s: AnsiString; begin Result := 0; s := RecvBufferStr(4, Timeout); if FLastError = 0 then Result := (ord(s[1]) + ord(s[2]) * 256) + (ord(s[3]) + ord(s[4]) * 256) * 65536; end; function TBlockSerial.RecvBlock(Timeout: Integer): AnsiString; var x: integer; begin Result := ''; x := RecvInteger(Timeout); if FLastError = 0 then Result := RecvBufferStr(x, Timeout); end; procedure TBlockSerial.RecvStreamRaw(const Stream: TStream; Timeout: Integer); var s: AnsiString; begin repeat s := RecvPacket(Timeout); if FLastError = 0 then WriteStrToStream(Stream, s); until FLastError <> 0; end; procedure TBlockSerial.RecvStreamSize(const Stream: TStream; Timeout: Integer; Size: Integer); var s: AnsiString; n: integer; begin for n := 1 to (Size div cSerialChunk) do begin s := RecvBufferStr(cSerialChunk, Timeout); if FLastError <> 0 then Exit; Stream.Write(PAnsichar(s)^, cSerialChunk); end; n := Size mod cSerialChunk; if n > 0 then begin s := RecvBufferStr(n, Timeout); if FLastError <> 0 then Exit; Stream.Write(PAnsichar(s)^, n); end; end; procedure TBlockSerial.RecvStreamIndy(const Stream: TStream; Timeout: Integer); var x: integer; begin x := RecvInteger(Timeout); x := SwapBytes(x); if FLastError = 0 then RecvStreamSize(Stream, Timeout, x); end; procedure TBlockSerial.RecvStream(const Stream: TStream; Timeout: Integer); var x: integer; begin x := RecvInteger(Timeout); if FLastError = 0 then RecvStreamSize(Stream, Timeout, x); end; {$IFNDEF MSWINDOWS} function TBlockSerial.WaitingData: integer; begin {$IFNDEF FPC} serialcheck(ioctl(FHandle, FIONREAD, @result)); {$ELSE} serialcheck(fpIoctl(FHandle, FIONREAD, @result)); {$ENDIF} if FLastError <> 0 then Result := 0; ExceptCheck; end; {$ELSE} function TBlockSerial.WaitingData: integer; var stat: TComStat; err: DWORD; begin if ClearCommError(FHandle, err, @stat) then begin SetSynaError(sOK); Result := stat.cbInQue; end else begin SerialCheck(sErr); Result := 0; end; ExceptCheck; end; {$ENDIF} function TBlockSerial.WaitingDataEx: integer; begin if FBuffer <> '' then Result := Length(FBuffer) else Result := Waitingdata; end; {$IFNDEF MSWINDOWS} function TBlockSerial.SendingData: integer; begin SetSynaError(sOK); Result := 0; end; {$ELSE} function TBlockSerial.SendingData: integer; var stat: TComStat; err: DWORD; begin SetSynaError(sOK); if not ClearCommError(FHandle, err, @stat) then serialcheck(sErr); ExceptCheck; result := stat.cbOutQue; end; {$ENDIF} {$IFNDEF MSWINDOWS} procedure TBlockSerial.DcbToTermios(const dcb: TDCB; var term: termios); var n: integer; x: cardinal; begin //others cfmakeraw(term); term.c_cflag := term.c_cflag or CREAD; term.c_cflag := term.c_cflag or CLOCAL; term.c_cflag := term.c_cflag or HUPCL; //hardware handshake if (dcb.flags and dcb_RtsControlHandshake) > 0 then term.c_cflag := term.c_cflag or CRTSCTS else term.c_cflag := term.c_cflag and (not CRTSCTS); //software handshake if (dcb.flags and dcb_OutX) > 0 then term.c_iflag := term.c_iflag or IXON or IXOFF or IXANY else term.c_iflag := term.c_iflag and (not (IXON or IXOFF or IXANY)); //size of byte term.c_cflag := term.c_cflag and (not CSIZE); case dcb.bytesize of 5: term.c_cflag := term.c_cflag or CS5; 6: term.c_cflag := term.c_cflag or CS6; 7: {$IFDEF FPC} term.c_cflag := term.c_cflag or CS7; {$ELSE} term.c_cflag := term.c_cflag or CS7fix; {$ENDIF} 8: term.c_cflag := term.c_cflag or CS8; end; //parity if (dcb.flags and dcb_ParityCheck) > 0 then term.c_cflag := term.c_cflag or PARENB else term.c_cflag := term.c_cflag and (not PARENB); case dcb.parity of 1: //'O' term.c_cflag := term.c_cflag or PARODD; 2: //'E' term.c_cflag := term.c_cflag and (not PARODD); end; //stop bits if dcb.stopbits > 0 then term.c_cflag := term.c_cflag or CSTOPB else term.c_cflag := term.c_cflag and (not CSTOPB); //set baudrate; x := 0; for n := 0 to Maxrates do if rates[n, 0] = dcb.BaudRate then begin x := rates[n, 1]; break; end; cfsetospeed(term, x); cfsetispeed(term, x); end; procedure TBlockSerial.TermiosToDcb(const term: termios; var dcb: TDCB); var n: integer; x: cardinal; begin //set baudrate; dcb.baudrate := 0; {$IFDEF FPC} //why FPC not have cfgetospeed??? x := term.c_oflag and $0F; {$ELSE} x := cfgetospeed(term); {$ENDIF} for n := 0 to Maxrates do if rates[n, 1] = x then begin dcb.baudrate := rates[n, 0]; break; end; //hardware handshake if (term.c_cflag and CRTSCTS) > 0 then dcb.flags := dcb.flags or dcb_RtsControlHandshake or dcb_OutxCtsFlow else dcb.flags := dcb.flags and (not (dcb_RtsControlHandshake or dcb_OutxCtsFlow)); //software handshake if (term.c_cflag and IXOFF) > 0 then dcb.flags := dcb.flags or dcb_OutX or dcb_InX else dcb.flags := dcb.flags and (not (dcb_OutX or dcb_InX)); //size of byte case term.c_cflag and CSIZE of CS5: dcb.bytesize := 5; CS6: dcb.bytesize := 6; CS7fix: dcb.bytesize := 7; CS8: dcb.bytesize := 8; end; //parity if (term.c_cflag and PARENB) > 0 then dcb.flags := dcb.flags or dcb_ParityCheck else dcb.flags := dcb.flags and (not dcb_ParityCheck); dcb.parity := 0; if (term.c_cflag and PARODD) > 0 then dcb.parity := 1 else dcb.parity := 2; //stop bits if (term.c_cflag and CSTOPB) > 0 then dcb.stopbits := 2 else dcb.stopbits := 0; end; {$ENDIF} {$IFNDEF MSWINDOWS} procedure TBlockSerial.SetCommState; begin DcbToTermios(dcb, termiosstruc); SerialCheck(tcsetattr(FHandle, TCSANOW, termiosstruc)); ExceptCheck; end; {$ELSE} procedure TBlockSerial.SetCommState; begin SetSynaError(sOK); if not windows.SetCommState(Fhandle, dcb) then SerialCheck(sErr); ExceptCheck; end; {$ENDIF} {$IFNDEF MSWINDOWS} procedure TBlockSerial.GetCommState; begin SerialCheck(tcgetattr(FHandle, termiosstruc)); ExceptCheck; TermiostoDCB(termiosstruc, dcb); end; {$ELSE} procedure TBlockSerial.GetCommState; begin SetSynaError(sOK); if not windows.GetCommState(Fhandle, dcb) then SerialCheck(sErr); ExceptCheck; end; {$ENDIF} procedure TBlockSerial.SetSizeRecvBuffer(size: integer); begin {$IFDEF MSWINDOWS} SetupComm(Fhandle, size, 0); GetCommState; dcb.XonLim := size div 4; dcb.XoffLim := size div 4; SetCommState; {$ENDIF} FRecvBuffer := size; end; function TBlockSerial.GetDSR: Boolean; begin ModemStatus; {$IFNDEF MSWINDOWS} Result := (FModemWord and TIOCM_DSR) > 0; {$ELSE} Result := (FModemWord and MS_DSR_ON) > 0; {$ENDIF} end; procedure TBlockSerial.SetDTRF(Value: Boolean); begin {$IFNDEF MSWINDOWS} ModemStatus; if Value then FModemWord := FModemWord or TIOCM_DTR else FModemWord := FModemWord and not TIOCM_DTR; {$IFNDEF FPC} ioctl(FHandle, TIOCMSET, @FModemWord); {$ELSE} fpioctl(FHandle, TIOCMSET, @FModemWord); {$ENDIF} {$ELSE} if Value then EscapeCommFunction(FHandle, SETDTR) else EscapeCommFunction(FHandle, CLRDTR); {$ENDIF} end; function TBlockSerial.GetCTS: Boolean; begin ModemStatus; {$IFNDEF MSWINDOWS} Result := (FModemWord and TIOCM_CTS) > 0; {$ELSE} Result := (FModemWord and MS_CTS_ON) > 0; {$ENDIF} end; procedure TBlockSerial.SetRTSF(Value: Boolean); begin {$IFNDEF MSWINDOWS} ModemStatus; if Value then FModemWord := FModemWord or TIOCM_RTS else FModemWord := FModemWord and not TIOCM_RTS; {$IFNDEF FPC} ioctl(FHandle, TIOCMSET, @FModemWord); {$ELSE} fpioctl(FHandle, TIOCMSET, @FModemWord); {$ENDIF} {$ELSE} if Value then EscapeCommFunction(FHandle, SETRTS) else EscapeCommFunction(FHandle, CLRRTS); {$ENDIF} end; function TBlockSerial.GetCarrier: Boolean; begin ModemStatus; {$IFNDEF MSWINDOWS} Result := (FModemWord and TIOCM_CAR) > 0; {$ELSE} Result := (FModemWord and MS_RLSD_ON) > 0; {$ENDIF} end; function TBlockSerial.GetRing: Boolean; begin ModemStatus; {$IFNDEF MSWINDOWS} Result := (FModemWord and TIOCM_RNG) > 0; {$ELSE} Result := (FModemWord and MS_RING_ON) > 0; {$ENDIF} end; {$IFDEF MSWINDOWS} function TBlockSerial.CanEvent(Event: dword; Timeout: integer): boolean; var ex: DWord; y: Integer; Overlapped: TOverlapped; begin FillChar(Overlapped, Sizeof(Overlapped), 0); Overlapped.hEvent := CreateEvent(nil, True, False, nil); try SetCommMask(FHandle, Event); SetSynaError(sOK); if (Event = EV_RXCHAR) and (Waitingdata > 0) then Result := True else begin y := 0; if not WaitCommEvent(FHandle, ex, @Overlapped) then y := GetLastError; if y = ERROR_IO_PENDING then begin //timedout WaitForSingleObject(Overlapped.hEvent, Timeout); SetCommMask(FHandle, 0); GetOverlappedResult(FHandle, Overlapped, DWord(y), True); end; Result := (ex and Event) = Event; end; finally SetCommMask(FHandle, 0); CloseHandle(Overlapped.hEvent); end; end; {$ENDIF} {$IFNDEF MSWINDOWS} function TBlockSerial.CanRead(Timeout: integer): boolean; var FDSet: TFDSet; TimeVal: PTimeVal; TimeV: TTimeVal; x: Integer; begin TimeV.tv_usec := (Timeout mod 1000) * 1000; TimeV.tv_sec := Timeout div 1000; TimeVal := @TimeV; if Timeout = -1 then TimeVal := nil; {$IFNDEF FPC} FD_ZERO(FDSet); FD_SET(FHandle, FDSet); x := Select(FHandle + 1, @FDSet, nil, nil, TimeVal); {$ELSE} fpFD_ZERO(FDSet); fpFD_SET(FHandle, FDSet); x := fpSelect(FHandle + 1, @FDSet, nil, nil, TimeVal); {$ENDIF} SerialCheck(x); if FLastError <> sOK then x := 0; Result := x > 0; ExceptCheck; if Result then DoStatus(HR_CanRead, ''); end; {$ELSE} function TBlockSerial.CanRead(Timeout: integer): boolean; begin Result := WaitingData > 0; if not Result then Result := CanEvent(EV_RXCHAR, Timeout) or (WaitingData > 0); //check WaitingData again due some broken virtual ports if Result then DoStatus(HR_CanRead, ''); end; {$ENDIF} {$IFNDEF MSWINDOWS} function TBlockSerial.CanWrite(Timeout: integer): boolean; var FDSet: TFDSet; TimeVal: PTimeVal; TimeV: TTimeVal; x: Integer; begin TimeV.tv_usec := (Timeout mod 1000) * 1000; TimeV.tv_sec := Timeout div 1000; TimeVal := @TimeV; if Timeout = -1 then TimeVal := nil; {$IFNDEF FPC} FD_ZERO(FDSet); FD_SET(FHandle, FDSet); x := Select(FHandle + 1, nil, @FDSet, nil, TimeVal); {$ELSE} fpFD_ZERO(FDSet); fpFD_SET(FHandle, FDSet); x := fpSelect(FHandle + 1, nil, @FDSet, nil, TimeVal); {$ENDIF} SerialCheck(x); if FLastError <> sOK then x := 0; Result := x > 0; ExceptCheck; if Result then DoStatus(HR_CanWrite, ''); end; {$ELSE} function TBlockSerial.CanWrite(Timeout: integer): boolean; var t: LongWord; begin Result := SendingData = 0; if not Result then Result := CanEvent(EV_TXEMPTY, Timeout); {$IFDEF WIN32} if Result and (Win32Platform <> VER_PLATFORM_WIN32_NT) then begin t := GetTick; while not ReadTxEmpty(FPortAddr) do begin if TickDelta(t, GetTick) > 255 then Break; Sleep(0); end; end; {$ENDIF} if Result then DoStatus(HR_CanWrite, ''); end; {$ENDIF} function TBlockSerial.CanReadEx(Timeout: integer): boolean; begin if Fbuffer <> '' then Result := True else Result := CanRead(Timeout); end; procedure TBlockSerial.EnableRTSToggle(Value: boolean); begin SetSynaError(sOK); {$IFNDEF MSWINDOWS} FRTSToggle := Value; if Value then RTS:=False; {$ELSE} if Win32Platform = VER_PLATFORM_WIN32_NT then begin GetCommState; if value then dcb.Flags := dcb.Flags or dcb_RtsControlToggle else dcb.flags := dcb.flags and (not dcb_RtsControlToggle); SetCommState; end else begin FRTSToggle := Value; if Value then RTS:=False; end; {$ENDIF} end; procedure TBlockSerial.Flush; begin {$IFNDEF MSWINDOWS} SerialCheck(tcdrain(FHandle)); {$ELSE} SetSynaError(sOK); if not Flushfilebuffers(FHandle) then SerialCheck(sErr); {$ENDIF} ExceptCheck; end; {$IFNDEF MSWINDOWS} procedure TBlockSerial.Purge; begin {$IFNDEF FPC} SerialCheck(ioctl(FHandle, TCFLSH, TCIOFLUSH)); {$ELSE} {$IFDEF DARWIN} //SerialCheck(fpioctl(FHandle, TCIOflush, TCIOFLUSH)); SerialCheck(fpioctl(FHandle, TCIOflush, Pointer(PtrInt(TCIOFLUSH)))); //{AET 20111111} {$ELSE} SerialCheck(fpioctl(FHandle, TCFLSH, Pointer(PtrInt(TCIOFLUSH)))); {$ENDIF} {$ENDIF} FBuffer := ''; ExceptCheck; end; {$ELSE} procedure TBlockSerial.Purge; var x: integer; begin SetSynaError(sOK); x := PURGE_TXABORT or PURGE_TXCLEAR or PURGE_RXABORT or PURGE_RXCLEAR; if not PurgeComm(FHandle, x) then SerialCheck(sErr); FBuffer := ''; ExceptCheck; end; {$ENDIF} function TBlockSerial.ModemStatus: integer; begin Result := 0; {$IFNDEF MSWINDOWS} {$IFNDEF FPC} SerialCheck(ioctl(FHandle, TIOCMGET, @Result)); {$ELSE} SerialCheck(fpioctl(FHandle, TIOCMGET, @Result)); {$ENDIF} {$ELSE} SetSynaError(sOK); if not GetCommModemStatus(FHandle, dword(Result)) then SerialCheck(sErr); {$ENDIF} ExceptCheck; FModemWord := Result; end; procedure TBlockSerial.SetBreak(Duration: integer); begin {$IFNDEF MSWINDOWS} SerialCheck(tcsendbreak(FHandle, Duration)); {$ELSE} SetCommBreak(FHandle); Sleep(Duration); SetSynaError(sOK); if not ClearCommBreak(FHandle) then SerialCheck(sErr); {$ENDIF} end; {$IFDEF MSWINDOWS} procedure TBlockSerial.DecodeCommError(Error: DWord); begin if (Error and DWord(CE_FRAME)) > 1 then FLastError := ErrFrame; if (Error and DWord(CE_OVERRUN)) > 1 then FLastError := ErrOverrun; if (Error and DWord(CE_RXOVER)) > 1 then FLastError := ErrRxOver; if (Error and DWord(CE_RXPARITY)) > 1 then FLastError := ErrRxParity; if (Error and DWord(CE_TXFULL)) > 1 then FLastError := ErrTxFull; end; {$ENDIF} //HGJ function TBlockSerial.PreTestFailing: Boolean; begin if not FInstanceActive then begin RaiseSynaError(ErrPortNotOpen); result:= true; Exit; end; Result := not TestCtrlLine; if result then RaiseSynaError(ErrNoDeviceAnswer) end; function TBlockSerial.TestCtrlLine: Boolean; begin result := ((not FTestDSR) or DSR) and ((not FTestCTS) or CTS); end; function TBlockSerial.ATCommand(value: AnsiString): AnsiString; var s: AnsiString; ConvSave: Boolean; begin result := ''; FAtResult := False; ConvSave := FConvertLineEnd; try FConvertLineEnd := True; SendString(value + #$0D); repeat s := RecvString(FAtTimeout); if s <> Value then result := result + s + CRLF; if s = 'OK' then begin FAtResult := True; break; end; if s = 'ERROR' then break; until FLastError <> sOK; finally FConvertLineEnd := Convsave; end; end; function TBlockSerial.ATConnect(value: AnsiString): AnsiString; var s: AnsiString; ConvSave: Boolean; begin result := ''; FAtResult := False; ConvSave := FConvertLineEnd; try FConvertLineEnd := True; SendString(value + #$0D); repeat s := RecvString(90 * FAtTimeout); if s <> Value then result := result + s + CRLF; if s = 'NO CARRIER' then break; if s = 'ERROR' then break; if s = 'BUSY' then break; if s = 'NO DIALTONE' then break; if Pos('CONNECT', s) = 1 then begin FAtResult := True; break; end; until FLastError <> sOK; finally FConvertLineEnd := Convsave; end; end; function TBlockSerial.SerialCheck(SerialResult: integer): integer; begin if SerialResult = integer(INVALID_HANDLE_VALUE) then {$IFDEF MSWINDOWS} result := GetLastError {$ELSE} {$IFNDEF FPC} result := GetLastError {$ELSE} result := fpGetErrno {$ENDIF} {$ENDIF} else result := sOK; FLastError := result; FLastErrorDesc := GetErrorDesc(FLastError); end; procedure TBlockSerial.ExceptCheck; var e: ESynaSerError; s: string; begin if FRaiseExcept and (FLastError <> sOK) then begin s := GetErrorDesc(FLastError); e := ESynaSerError.CreateFmt('Communication error %d: %s', [FLastError, s]); e.ErrorCode := FLastError; e.ErrorMessage := s; raise e; end; end; procedure TBlockSerial.SetSynaError(ErrNumber: integer); begin FLastError := ErrNumber; FLastErrorDesc := GetErrorDesc(FLastError); end; procedure TBlockSerial.RaiseSynaError(ErrNumber: integer); begin SetSynaError(ErrNumber); ExceptCheck; end; procedure TBlockSerial.DoStatus(Reason: THookSerialReason; const Value: string); begin if assigned(OnStatus) then OnStatus(Self, Reason, Value); end; {======================================================================} class function TBlockSerial.GetErrorDesc(ErrorCode: integer): string; begin Result:= ''; case ErrorCode of sOK: Result := 'OK'; ErrAlreadyOwned: Result := 'Port owned by other process';{HGJ} ErrAlreadyInUse: Result := 'Instance already in use'; {HGJ} ErrWrongParameter: Result := 'Wrong parameter at call'; {HGJ} ErrPortNotOpen: Result := 'Instance not yet connected'; {HGJ} ErrNoDeviceAnswer: Result := 'No device answer detected'; {HGJ} ErrMaxBuffer: Result := 'Maximal buffer length exceeded'; ErrTimeout: Result := 'Timeout during operation'; ErrNotRead: Result := 'Reading of data failed'; ErrFrame: Result := 'Receive framing error'; ErrOverrun: Result := 'Receive Overrun Error'; ErrRxOver: Result := 'Receive Queue overflow'; ErrRxParity: Result := 'Receive Parity Error'; ErrTxFull: Result := 'Tranceive Queue is full'; end; if Result = '' then begin Result := SysErrorMessage(ErrorCode); end; end; {---------- cpom Comport Ownership Manager Routines ------------- by Hans-Georg Joepgen of Stuttgart, Germany. Copyright (c) 2002, by Hans-Georg Joepgen Stefan Krauss of Stuttgart, Germany, contributed literature and Internet research results, invaluable advice and excellent answers to the Comport Ownership Manager. } {$IFDEF UNIX} function TBlockSerial.LockfileName: String; var s: string; begin s := SeparateRight(FDevice, '/dev/'); result := LockfileDirectory + '/LCK..' + s; end; procedure TBlockSerial.CreateLockfile(PidNr: integer); var f: TextFile; s: string; begin // Create content for file s := IntToStr(PidNr); while length(s) < 10 do s := ' ' + s; // Create file try AssignFile(f, LockfileName); try Rewrite(f); writeln(f, s); finally CloseFile(f); end; // Allow all users to enjoy the benefits of cpom s := 'chmod a+rw ' + LockfileName; {$IFNDEF FPC} FileSetReadOnly( LockfileName, False ) ; // Libc.system(pchar(s)); {$ELSE} fpSystem(s); {$ENDIF} except // not raise exception, if you not have write permission for lock. on Exception do ; end; end; function TBlockSerial.ReadLockfile: integer; {Returns PID from Lockfile. Lockfile must exist.} var f: TextFile; s: string; begin AssignFile(f, LockfileName); Reset(f); try readln(f, s); finally CloseFile(f); end; Result := StrToIntDef(s, -1) end; function TBlockSerial.cpomComportAccessible: boolean; var MyPid: integer; Filename: string; begin Filename := LockfileName; {$IFNDEF FPC} MyPid := Libc.getpid; {$ELSE} MyPid := fpGetPid; {$ENDIF} // Make sure, the Lock Files Directory exists. We need it. if not DirectoryExists(LockfileDirectory) then CreateDir(LockfileDirectory); // Check the Lockfile if not FileExists (Filename) then begin // comport is not locked. Lock it for us. CreateLockfile(MyPid); result := true; exit; // done. end; // Is port owned by orphan? Then it's time for error recovery. //FPC forgot to add getsid.. :-( {$IFNDEF FPC} if Libc.getsid(ReadLockfile) = -1 then begin // Lockfile was left from former desaster DeleteFile(Filename); // error recovery CreateLockfile(MyPid); result := true; exit; end; {$ENDIF} result := false // Sorry, port is owned by living PID and locked end; procedure TBlockSerial.cpomReleaseComport; begin DeleteFile(LockfileName); end; {$ENDIF} {----------------------------------------------------------------} {$IFDEF MSWINDOWS} function GetSerialPortNames: string; var reg: TRegistry; l, v: TStringList; n: integer; begin l := TStringList.Create; v := TStringList.Create; reg := TRegistry.Create; try {$IFNDEF VER100} {$IFNDEF VER120} reg.Access := KEY_READ; {$ENDIF} {$ENDIF} reg.RootKey := HKEY_LOCAL_MACHINE; reg.OpenKey('\HARDWARE\DEVICEMAP\SERIALCOMM', false); reg.GetValueNames(l); for n := 0 to l.Count - 1 do v.Add(reg.ReadString(l[n])); Result := v.CommaText; finally reg.Free; l.Free; v.Free; end; end; {$ENDIF} {$IFNDEF MSWINDOWS} function GetSerialPortNames: string; var sr : TSearchRec; begin Result := ''; if FindFirst('/dev/ttyS*', $FFFFFFFF, sr) = 0 then begin repeat if (sr.Attr and $FFFFFFFF) = Sr.Attr then begin if Result <> '' then Result := Result + ','; Result := Result + sr.Name; end; until FindNext(sr) <> 0; end; FindClose(sr); end; {$ENDIF} end. ./dlclock.pas0000644000175000017500000001377614576573021013305 0ustar anthonyanthonyunit dlclock; {$mode objfpc} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,dateutils , StdCtrls, ExtCtrls, Grids , StrUtils //AnsiMidStr , LazSysUtils //For NowUTC() ; type { TForm6 } TForm6 = class(TForm) DifferenceIndicator: TShape; CloseButton: TButton; RunningIndicator: TShape; Label1: TLabel; RunningingStatus: TLabel; Memo1: TMemo; RunningStatus: TLabel; UnitClockText: TLabeledEdit; UTCClockText: TLabeledEdit; LocalTimeText: TLabeledEdit; DifferenceTimeText: TLabeledEdit; PauseClockButton: TButton; ResumClockButton: TButton; SetDeviceClock: TButton; Timer1: TTimer; procedure CloseButtonClick(Sender: TObject); procedure PauseClockButtonClick(Sender: TObject); procedure FormClose(Sender: TObject; var CloseAction: TCloseAction); procedure FormCreate(Sender: TObject); procedure FormHide(Sender: TObject); procedure FormShow(Sender: TObject); procedure ResumClockButtonClick(Sender: TObject); procedure SetDeviceClockClick(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { private declarations } procedure ExecuteQueue(); public { public declarations } end; var Form6: TForm6; implementation uses Unit1, header_utils; var LastUnitTimeString : String = '0'; { TForm6 } procedure TForm6.Timer1Timer(Sender: TObject); { This timer runs once per second. Mostly to update readings from the DL (for now). Queued instructions sent here also to avoid collision with timed requests. } begin ExecuteQueue(); end; procedure TForm6.ExecuteQueue(); var pieces: TStringList; result: AnsiString; ThisMomentLocal, ThisMomentUTC, UnitTime, LastUnitTime: TDateTime; ThisMomentLocalString, ThisMomentUTCString, UnitTimeString : String; DifferenceTime : Int64; begin Timer1.Enabled:=False; pieces := TStringList.Create; pieces.Delimiter := ','; ThisMomentLocal:=Now(); ThisMomentUTC:=LazSysUtils.NowUTC(); if (((SelectedModel=model_DL) or (SelectedModel=model_GPS) or (SelectedModel=model_V)or (SelectedModel=model_DLS))) then begin if DLQueue[0]='SetClock' then begin DLQueue[0]:=''; StatusMessage('Setting unit clock...'); result:=SendGet('LC'+FormatDateTime('yy-mm-dd ',ThisMomentUTC)+IntToStr(DayOfWeek(ThisMomentUTC))+FormatDateTime(' hh:nn:ss',ThisMomentUTC)+'x'); { TODO 2 : check result } end else if DLQueue[0]='PauseClock' then begin DLQueue[0]:=''; result:=SendGet('Lex'); end else if DLQueue[0]='ResumeClock' then begin DLQueue[0]:=''; result:=SendGet('LEx'); end else begin result:=sendget('Lcx',False,3000,True,True); { Read the RTC, but do not log every reading } if Length(result)>=21 then begin UnitTimeString:=FixDate(AnsiMidStr(Trim(result),4,19)); UnitClockText.Text:=UnitTimeString; try UnitTime:=ScanDateTime('yy-mm-dd hh:nn:ss',LeftStr(UnitTimeString,9)+RightStr(UnitTimeString,8)); if (CompareText(LastUnitTimeString,UnitTimeString)=0) then begin //values are the same (unchanged) RunningIndicator.Brush.Color:=clRed; RunningStatus.Caption:='Charging'; end else begin //values are different if (CompareText(LastUnitTimeString,'0')=0) then begin RunningIndicator.Brush.Color:=clGray; RunningStatus.Caption:='Reading ...'; end else begin RunningIndicator.Brush.Color:=clLime; RunningStatus.Caption:='Running'; end end; LastUnitTimeString:=UnitTimeString; except StatusMessage('Invalid RTC from device = '+UnitTimeString); UnitTime:=ThisMomentUTC; end; DifferenceTime:=SecondsBetween(ThisMomentUTC,UnitTime); DifferenceTimeText.Text:=IntToStr(DifferenceTime); if (abs(DifferenceTime)>2) then begin DifferenceIndicator.Brush.Color:=clRed; end else begin DifferenceIndicator.Brush.Color:=clLime; end; end else begin UnitTimeString:='unknown'; UnitClockText.Text:=UnitTimeString; end; LocalTimeText.Text:=FormatDateTime('yy-mm-dd ddd hh:nn:ss',ThisMomentLocal); UTCClockText.Text:=FormatDateTime('yy-mm-dd ddd hh:nn:ss',ThisMomentUTC); end; end else DLRefreshed:=False; Timer1.Enabled:=True; end; procedure TForm6.FormShow(Sender: TObject); begin DifferenceIndicator.Brush.Color:=clGray; {Restart reading clock} LastUnitTimeString := '0'; Application.ProcessMessages; ExecuteQueue(); Timer1.Enabled:=True; end; procedure TForm6.ResumClockButtonClick(Sender: TObject); begin DLQueue[0]:='ResumeClock'; end; procedure TForm6.SetDeviceClockClick(Sender: TObject); begin {****Record current clock offset in history, and the time that this clock was set All times shown will be UTC since history may have been recorded from different time zones DATESTAMP: Message with details.} DLQueue[0]:='SetClock'; end; procedure TForm6.FormHide(Sender: TObject); begin Timer1.Enabled:=False; end; procedure TForm6.FormClose(Sender: TObject; var CloseAction: TCloseAction); begin Timer1.Enabled:=False; end; procedure TForm6.PauseClockButtonClick(Sender: TObject); begin DLQueue[0]:='PauseClock'; end; procedure TForm6.CloseButtonClick(Sender: TObject); begin Form6.Close; end; procedure TForm6.FormCreate(Sender: TObject); begin UnitClockText.Font.Name:=FixedFont; UTCClockText.Font.Name:=FixedFont; LocalTimeText.Font.Name:=FixedFont; DifferenceTimeText.Font.Name:=FixedFont; end; initialization {$I dlclock.lrs} end. ./udm.res0000644000175000017500000021113413726231373012446 0ustar anthonyanthony   Your application description. False  4VS_VERSION_INFO?StringFileInfo040904E44 CompanyNameUnihedron0OriginalFilenameudmTProductNameUnihedron Device Manager4ProductVersion0.0.0.2Comments,FileDescription4 FileVersion1.0.0.257$InternalName(LegalCopyright,LegalTrademarksDVarFileInfo$Translation 0MAINICON (( ( dd !#$#""!  '1;DMU[adeedb`]XRKD=5+!  !.>N^mzsdTC4(  $8Nczp\G2!  4Mg{cI2 +C]yw\A)  0Kk         iI,/Ot          oK,+Lt          % ) ) ( + , . * #!       oJ+$Ek          & / 2 - - 4 4 5 0 ) ( " % ' $ "       jA" 5^   #32$    !     ' . 1 0 1 6 7 5 1 / 0 * * + + ) $ # % $ # - ."    Y2 #Ht  '/ 3 9 >: *    $ & "  #) ) / 4 7 7 9 5 3 58 3 /-+ $ " & + ) + 3 1 ( .$     oA 2]'//. 7)M "C +      ! $  ! ) + . 02 5 4 5 6 7 8 5 3 - & %& % $ & ) ) * 1 9 4 -&#& U+Cq %0/ ' ( & (2 , $      & " ! $ & ) '&+ ) / 5 8 8 89 5 - 2 . % !( *+. 5:9 4 1 2 /,$   g8 $N # 6 "@ ; ! ! !  " "    $' !"# " $' " !& &*3 9 7:; 8 4 : 3 ($+.-,.38 : ; !; 4 6 2("  tD +W   , 6!?#B $  ! " " ! " "   !& $#$$ $&%#$) **1 83: 7 4 5 5 / + ) ,0 * %$ )3=#B "@ 7 < : 1 1 +O$ /`    %&'' %    " !  ! # $ #   !)&"#' "  $')).3 1 1 2 1 - & " $ ( , 0 0,()*5 "A &D8> < 6; ; . U& 3g     && $ !        $(" ! &)' % % !  ! #$#%/7 4 5 4 2 / + ( .3 / 1 5 3,%& ' /$> / 373 * 3 -   Z* 4g   )) $ ! " ! ! !      #  $) %%& %(*+* $ #& ' &(' - 5 6 3 5 512 / 14 // 1 1, %'& (1 * + - * &. + #  ]- 4h   %/. ( !  !       % # " # % % '& ! #)., '&*+ '- ' ' -0 1 66361 0 / -.- ,* '+,+ ((% # #&)' #    ]*  0f  0. # "  " #          #$# " ! " #   ' ( & &), * & ( " # $36 5 571. . -2 / * (),/. (%     "    " "  Y'  +b  (/*  ! !            ! ! ! ! " ! ! # * . ---, ( " ! ! "#" & & ' ,552 . - 0 ,( % % $ % $              U" &Z  $/53,+' & %              ! "'** +/,+- -10* #   #)( # ! %.43 - * % %%$# " ! !     $   !  LQ   ' 12432:40, !   !           (-/00)&' */-*' #  )+ $  "',.+ % ! " "% "  !    !  !    # # " ! CE '2 9?80+-;<5*   ! # !    !       % ),/ ' $ ! !& ' &') ) $   ") $ "# $'( # "!  ") $ ""!       !  !% ' & $   u98u  1 "D+Q2W0W.S6 % (.+ " " "      "      & % % , ) % # # " $ # # % $ "  ! $ ( )& ! $ $ $ '#&& %* $ %'$"##"!    !',+ *$ j/ )e! 6.T0X !D 4>6/4, %(.*% ! " $    !   !%& $)' %+*&%%$##$'*(&& '&+.) "()% $ $' ( ' * ( ( ( # !&&# $"" ! "#$&('%"   W P$ &F +O)N%I!E?=9676*-5.'# " # #     #&)))'&''('&'%%%%)'&(*),-*%)*''))** & & '& # !'($$$  $% $()' % #  B9~  59b;g %I : B'L=7:?9100(% # ! ! %    " $ '())' $ $('# & %&'%%$$ $ &)*)(''&'*)())# #$$""%%#" #   && $'++ ( &'   m/ &a # <9c:h/V ? 4< 5 /:*M4 3 / &     "# #        !*,' #"% #  " " &)($ # "  &'$#) # "&' # "#$% $$# "!  ! " ##"$&&%&*-,)++ $  TG %3 *K@k -W>849=8 )!              #$#!  ! $ #   % * ( ' %&(&  $% " %'& $ $ # ! "#%$# " "&# ! " & $ !  #()+0* % &+/*& " f)Q / +M *O"G#G$K-P2X0]*V&N&L$HA<==5%# ! "$ !     ##!%'&$#  #&# "$) + +*+,*%%&&)*)()$$%%$%$$ '(%## #.,'',1104- ( )--(& % #  K 5x# A9d4` #J B*R)I'H(Q*V0W-S$JB!H%J?/$&%%' $#%&#%((%)++($"!#'+*%%*-.- ,+)''*.,+-0%&(% !&&'+,(&&% 8#;!5 16777:">#=&%>)&?306"$:3 " q. V  0 (L :f=h1V %C8e.V $H$I)K 8$D*R(M-O)L"C5%(*(% &""6*B*&())+*,-'! "$'+)%#%)+,+ ')+* )-(+/,$%(($*)'),)'),3#>'?!5%;":8#=*3I?H^RRbeZgl_mOHY:=SKKaUQe.2F1  M 6} * $C *P2X 6^4^2X3^,V %K 'J4V %; ; %G)K =!B:++(('$ & #(B$=\*H!6)=*>3/((**%%% &)&$$&&&)-*.,(&&)+,+)),. &*--*+*+ / 5.B%0F,C2G[\midtML_@BWsn}a[nLG[HCUXN^i\ktiyxk|sfwe]nKL^*3C's. T  1 ,M /S 4Y4\1Z.W6d4a3^6_;a9R*C$B*I315$6%3-,*')3$1J,A^+?\-;R1]!7R!3P 4R!74#+A&9L#3C *=)>&< 6"7*3G4;P4=L:;I?@PBCTKK[WXcbdlwt?BF)---.,**/2))(%)3#3A1BBBP@CR"-<#2#4FQ`pQas{u/,B6347"=+B(:QIWorw~XVj'%/ @(h  &46 9-R 4`S;>R9@S26$8!5445 6 62.';,6H$';"%8#8';).?'*=2:K3;LHJ\vvvNG`$+D'C3  3 65 ?8^ 8e8e8c 6a4Z2S ,P)S!5`8DhXSoToUk_r[sk}q|su~x~Ncv2La9SkC^y>^yL]uR^sS]mHTd/E\)E`'A[3N+GMQgsu>>FI,o 6 -P/U1X3\/V2[:e9f ,Y/W*R'8_>VOpgknzzthg\rp~}EiP{cdz^o\_j&',c" ?  !=0U5\6_6`0X-W:e@k4]6c(Q"G-R6Jreyrry|{dieUmi`f|03< ~4 R &)G,S0Z3[2Z3^.U+P.U5b1]%K)K(;^1IpPnhtw|c6b|7ay7ayAjTqpx:?NH$g  *.O1Z-V*S-W6a+R'K,P1Z&L&H(G0P1LqZwlopx{fOy/Xt=inPWg!%+ `2{   32W>h;d1Z+X7b-U+P.R,R#F%F#A)G6Rvc~olnsvy|kvbk}/3; v+A !";3Y$It(Mv=e,V7a1Y-T,R(N'J#B >.M?[a}mmooqtw{nw:?J; R ! 0(HBk>c.P (L6d*R%K'L(J $C #>$@4TEc_{hiilmqux~yGM\!Kc * 7 >,R,N&D$F0\*Q(M*M +H 'D2Q<].Mo]vb{eggklot{}~RYk"$+ Z)r 3 $D (J&N %H $C $E,S%L'J+J*E&@)@_=WyKfd{e{f}ghkkmqwyz{||\ey+.8 j% 3 8)N5^(Q,Q1T2T3Y,R)K)G)F,F4JhQf`ucwfyh{h}hkkmpqtvxz{~fo48Cz/= # 7(Ld9Ou8Pt-Mr*Hm :[/N4T$Db;VuUjfxevgxiyizh|klmoqrtvxzz|~lw9?L: H ! 5)I>d7QpK`QgPfUhUgMaG]|J`Vl\q_rbscscvdxfzhzk|mllnqtvvxy{~q{AGW CR#3#@1Q8NmQbXjVi\k]l\lZlZn_qararbqcscudwfyiyl{m}mnortuvxy|~u~GL^$LZ  +8!=&F"8YIXz]iXhZi[j]l^m]n]m_oapbqbsdtevgwjylzl{n}pqrtuuvz}~}wMRe!) S a 2#>$B$1R4VGUv_iYgZhZi[j]l]l]l_n`oaparcretgvjxiyk{m}o~qqtutty{{{|~yPWj#%. Z$i , 6,IOYvYdZeYeYeZf[iZjZk\l_k_m_n_naqcresguhwhxjym{n}n~oqttvwxyy{|~yQWk#'/ ^ 'm)-D3D`Q^{ZeZf~Xf~Xe[f[gZhZi\j_k^l]m^nbpcrdsdteuiwiwjxl{l}n~pstuuvxxzy{wSZn&)2 b"(p !,<9H^L[uTb|Xd~Xe~Xf~YfZf\f\h\h]h^j^l`manandpererethvhvivkxl{n|o}psttuwxzz{}~xRZn&)2 e$*s$4=OLYoXf}Wd}Yd~XeXfYfZf]g]h]g^g^j_kblelbmdpfpfqfshuhvivkwmynzn{o}rssuvwy{||}xRYm%(1 e$+t  )8>QKVmSbzWc}[c|[d~[eZf[f]g]g\g]h^j_jbjekdmdpfogofrgrhtiwjxmxnxnzn|p~rstuuwyz{{u}SWl%(1 c#,v (9>OMTlV_zX`{Yb{Za|Zb~[c]d~\dZfZg\h]i_ibicjakcmfnfodpdqfshtiujwjvlyn|n|o~qrsuvxyy{|}r{NTg"%- b",v  )9>QMVmTazUb}Wb}Yb}Zb{Zby\dz[d~Ze~[f}]f}^g`hbibiakakbmdpfpepfrfsfuhwjwkyl{m|n}o~qsttuwyzz|}}qzLSe"$- _ +t '8DVPXlU`tV^tV]uY^w[`yX`wYaw[av[av[cy\dx\d|^d}`e|^g]g^g_g_hbjckelemdmengnhohrgsjsktktmtnumvnwqyqzq{s|t|t~v~vvvwwxxxz{z{}}~~~}{}~}||osRVj),6 ~3 = "$.<@SPUmV\qW\qV]tX_wZ`wX`vY`u[at\at]au[av[bx]cx^cw]dx^f{^f~_g`h}ahcidjcleldjflgngohqiqiqhqjrmrosounvpwpyqzq{q|t|u~uttwwvvwyz{|}}}{|}~~|}~~~}~}{|~~{y{~|zzzyjoKNb$%/ r* 2 '6:JMQfV\pV]rW\rX]sX^tY_sZ_tZ_t[_u]`w]aw[bw[bx]by^by]cx^d{_f}_g{`f}bgchcicjdjdkemfneogphpipiqkqlqmrmtnvmwnxpxqyrzs{s|s|r~t~uvwvvwwxz{zz|||}{}}}~~~~|~}~~}|||~~}{zyyyz|{zy{v|chBEU% b!(q14@HM^TYmV\rW[rX[rX\sZ^rZ]sZ]sZ^t[`u[`uZbxZbx\aw^cy^by_cy`dz`fz`f|bf}cfbgahcickdleldmfngnhnhphphpjqmsksltmumuouqxqyqyrzr{s{t|u}w~v~vvvwxyyy{{zzz}}|}}}}}z|}}~|}}}}|{{|z{{zzxwxzxy~y}x~x~wqw[_u8;ITa+,7BGXQViVZpWZtXZtZ[rY\r[]rZ^rY^rY_sX`sXaxZ`w\_s]bu`cy`by`byaezae{bezbe|bf~ahbhcidjejekelfkgkhnhnfohplqjrlrlrksmspvowpxqxsyqzrzt{u|u|u}v~wvwxyyxyxxy{{|}{zzzxzz{|{zz{{zzzzyxxy{yw}x|y}v~w}w|v{v{t|lqRUj01=EO#$-;?ONSgUYqVZsXZrZ[qWZpY\pY^sX^tZ]s[_sZ^tZ^u\_s[`p_bt`ax`ay`cz_cy`dy`e{ae}bf~bg}bg~dgeheidjejgkhkjlimimjmkqkolqmsmtnvnwpwrxtwoypzrzsyszt{u{t|r|t|v|v|w}v}w}w~wwwyz{{yyyzzy~x~xy~ywuwzy~x~w~zw~w~x}y|x~v}v{u{t{v|w{vzsyrwfkIL_'&2 5  = $57GJMcSVmVZpXZpXZnWZpX[oY\qZ[s[[s]]s\]s[]r[]r]_s]_s^_u_au_au_`u`bwacxbcxaczaezaezbe{dh~bi~difjfjfjfjgkhkjjimgoiokolrkslvmvouqvoupvpxpxqzs{s{r|s|ryszt|u|vzv{v|v|w{w{x}x}w|y|w|w|x}y}x}w}w}w|x|x|v|u|u~w~u}u|u{w|v{u|u{wzu{uzuztzsxsyuxvxuxpu_b{@BR' r(,r-.9FGZRSjVXnVXnWXnXYnXZnYZn[Zo[Zp\\q[\p[\p[]q[]r\]r^^t__t_`t^_t_at`at``uabx`cx`cxadydf{cg}ehfheigkfkflhljminjpioinjnjokqltnvpzoxnxnynxoyr|ssuut}s|u|v|u{s{s{uztyvyxzxzv{u{vzwzvzvzv{u{uzx{xyvytzt{u{tzuzvzuytztzsxswuwtwswsxrwrwrwsvruloVYo56D\\$$-??OPOeUVlVWnXWnXYmYXmYXmZYm[YmZZpZ[oZ[n[]o[\p[]p\]r^^s^_s]_s^_s__s_`u`aw`aw`bxacxcdydezee}de~dffifkekelhnhnjninhmhmjmknlpmtnynzmzmylvmuq{rrtvustvu~s~rr~s}s|u{w{t|tzuxuxsxtxvxvxtxuyuxuxtysysxsxtxvwswqwrwsvqutusuququqvpvpvpunreiKNa*+6GE #56DKK\STiVVnXWmXXlYVlYWmXXmZYmYZpYZoZZm[[m\\oY\n[\o]\p\^p]^r]]s^^t_`v__u``w``waawbbxccxbcvbcxbdzdeyeg}cg}chekfkgjhjhkgljllllljnjqkxlylukrlqnunwoyp{rrrrsttsrsqqsrs{txswqvqvtwuvtvqwpwrvsvqvrwqvqurupvotptququqtpsosotrsosnsnsjo[`y?AQ ) 6 0v,+7DCTPOcTTiVTjVVjVUjVUjWWkXYlWXkWXjXXkZXl[YmXYmYZn\\p]]q\]p\]q[]q\]q_^q^`q^`q^_r__taauaawaawbcvcdxbezceydezdf|cg{dgzfh}hifh}hihihjglgkioiqioimkpkplomonqltmwnynzmzn}p~rtrqrsprs~r{pyoxqxqwoumtntotosotrtpsnqlqmsornqmrlslrmqnqnqnpnnmpkpehQSi12?f$\ #!)=:GNL\UTgUSiTUgSTfTUgVVhWVgVWgVUhXVkYYnYYmXXlYXkZYm[[p[Zo[[n[\n[]o]]n]^n^_m^_n]_p^^q__s_`t^at_cvadvbbsbbtbdxadycdzbe{cf{gg{gg|gh~gifhhifmekgjilikilimkmlmjojqkqjoipjqlsmvnxo{o|p|p|n{n{o|p|p{q|q{p{p{owlqmpnrmrmqnrlpjolqnqlpkojojninjnlnlnmllmhl]byEGY%%0NC 31:HFSRQbSSgRSgSReTTeUTdVSdUUgWUiXUjWVkWXlXWkXWiXXjZXlZWm[Ym[[n\[o[[m\[m\]l\^l[^m]^o^`p]`p\_q^at_as`aqabsabv`btccyadzaeyffzedyef{fg|ff|gg}fiehfhhjghgjgkhlilhlhlimimhlimknlolplrmtmtktkvlvlvmwnxnxnwnwownulqkpkploinjnjnjmlnlnkmjmimimhmimjlikiljkefTXl79G  }6 ,p('/>=ILK\QReSRfUQeURdURbURcUShWTiWThWThWViXUhWVhWWiZWjYVlZYm[Zn[ZnZZm[Zm[\mZ]mZ]m\^n]_o\^n\^p_`t^_s_ar`bs`bu`brbbvbbwbcwcdxbcwccyddzee{dezef|ff}ff}fg{gh|fh|ei~fjfkgjgjhlimhlimjmklkkkjjljniojpkpjojolqipiqjqmplplqjpiojngmgliljljljjjjikhlililikhkgjglgj_`wIK\)*5_!Q $33@EEWPPbURcWPdWQdVRcURcVRiURgWSfYTgWUhXTdWUfVWjXXkZXkZYlYYmYYmZZl[\lZ[mZ[m[\lZ[m[\m\]p^]s`_u_^s^^r^`r^ar_at_`sa`sa`s`auabvabvbcxcdzccyddzddzddzeezfg{df{df}egehgigighghhjgkhjijijjjhjhkjlijhjhjiklkfkdlglkliminiohogngminimhkilhiiiijgjhjjjiighfjgjcgUWm;;I$ D 6)'2>=LKL^RObTPeUQdTRcSSfSQeURdVRdURdVSfXTgWUhVUhVVhVUgVUkWUlYUjZVjZYkZXkZXkZZk]Zp][o\\o\\p\\p_\o^^p\^q\^q]^s^_r__r`_t__u^aw^bw_bwaaxaayaawbcwcdxcdzcdzdf{df{de{dd}fg}fg}ff}ff}fg~ghggggggghhhfieighhigifhghgigjhjhjgkflgkikjlhkhkijiiijhihigifihjhighegdgef\^wGI\+,7l+ ] "31&$+:9DHGUOL\PM^ON_QO`RO^RO_PO`PO`QQbQObSQdTRdURbSRbVRdVTfUVfVUeUUhUUhUVhVWiVWjVWkWWjYXi[XhXYiXZjZZiZ[iZ[nZ[qZ[o[\m\]o\\n\]m\]l\]m\^o\^p]^p__s``v_`t_`t`at_bt^bt``sabtacu`bu`cwbcycbxcbwbdzcdzae{`ey`dwadxceyddycczbc{bdyceycdzcc{bez`ezae{bf|cf|ce~bfbgbgce|cfbg~ag}`e~^e|_d|_d|_d}`b{XZnDET)*3u/ %d  --5AAJLJWNM]MN^PM\OM[OO\OO^PN_OO_QO_QO`SQcVSeRQ`RRaSRbTScVScUTgTTfUTfVUgUUgVWkVWkWWiYXhWXgWXhYYh[YhZXlYYoYZlZ[i\]m[\l[\k\\k\\k\]m\\n]]n]^p]_r]^r^_r^`q]`p\ar^_q_`q^`q_`r`at`buaata`u`cx_bwacxacx_bv`bwaavbcxbdyacybbxadyadxacxbdyabw`bv`bu`bv`bw`cx`cx`bwabvbbz`cy_dz_d}^c}`c{_by^aw]\sNOa45@  O@ !%64?FDSMK\OL]QK\SL]QL\PL]QM_SN_SO_SN_TN`VPbTQbRRcRRcTQdWQfXShWReWScWTeVSeVTgUVhTVgVWfXWeWWgWWhWWgWWiVXlVYkXZiZZiYZkZZl[[l[\m\\n_Zp^[n\]m\]o\\p]]p\]o[]o]_t^_t]^r]^o^_o^_s^_r^_r^_t_`u_`v__u``vaaw_av_`u`at`bt_`u`ax``x``w`avbcw`bw`av`at`asaav`av_at_`t`av_`t_at_au^aw_`w`av`bv]_sSTg??N##,r. #^+'/=9FKFWQK_PJ_QJ^RM_RN`RM`QM^QN^RN_RN`RO`TOaUPcUPcUObUQcUQeWRdXSdYSdZSdWUfWVfYUeWSdZUdXVeWVgYViYYjXXhXWgYWhYXjZ[lZ[l[Zl\[l[Zm[Zn\Zn\[m][l[[l\]m]]m\]m\]o\]m]^p^_q]]n^\q^^q^_q^_s__u__t`_t__u^_u^_s_`s_`s^_s^^t``v`^v`^u_`u_aua`va_u``s``r`_u__t``ta`t_`t_`t^`s^_t__wa`w``u^`qVYjFHZ--9K9y !3.8E>MOH[PJ`PJ]QL^RL`RLaPM_RM^RM_RMaQNbUNbWN`WO`VPaVQbTPdVQcWRcVRcYRcVTeWSdZScYSfZTdZUfZVhZViZXhXWgXWgXWhXXi[YkZYlZYl\Yk\YlZYn[Ym\Yl\[n[Zn][n^\m]\l\\l\\j\]n]^q^\p^\q]^p\_q]_s^^s_]p`]q_^r^]q^^q^^p^^r^^t^^u_^t`^s_^s^^t__sa^tb^ta^r_^s^_t__s`_r`_q__p`_s_^r_^r_^s`_v`_vZ[oMN^68E% j*P%"(:4@IBSOI]QJ[QJ^RK`SK`QL`SM`SL`RLaSMcVNbWN^VO^VPaWQbUObVOaVPaTPcVPcUReVRcXRbYThXSfYTgZUh[UgZUeXVeXWgXWhWWhZWjZWk[Wk\Wl\Xl[Xm[Xl[Xl\Yo[Zp]Yo]Zn\[m\[l][m\\n\[o][q^]q]]o\^p\^q]]q_\o_]o^]p^]o^^q^\p^]q^]s]]t_\s_]q^]q_]r`^s_]s`]q`]q^]r^^t^^s^]q^]o_]o_]q`\p_\o^\p^]s^[rSQe?>M%&.D ,j+'0>9HKEWQIZSJ^SJ_SK]PK^SL`RLaQLaSLaVN_UN_UOaUPaUO`VN^WN_WNaUOdVPeUPeUReUSeVTfWShWSgWSeYSeZTcWTcXUeZUgXUhXXj[Wi\Vj[Vl[Wm[Wl[Xl[Xm]Wm\Yn\Wm[Xm[Zo]Zo]Yq]Yo\Yn[Yn_[q^[o\[o\\o\\o^\p]\n]\n^\o_\q][r^[q^\q\[q_]s^[p^\o_]p_]t^]r]\n^\m`\p]\s\[r\[q\[p_\q\Zp^Zn^[o][p\[oWReGBQ.,6 \$? 0+7A;OMFWPI[PI[OHZPJ\PK^PK`QKbRLbSJ]TL]TL`SLaTL^SM]VN_XNbWNbUPbTOcSPeSQeTQcVPdWPcWQcVSdVQbWScWTdXSeXQgXTgXTfXTfWTgWUhZWiYWjXVjZUiXWjZVh[WfZWfZVj\Wk[XmZYo[Yo]Vn]Wn]Xm\Ym]YmZXlXYjYYj\Yl]Yk]Yo^Zo^[n\[m]Zm][o][n]Zk]Yn_[n^[o\[o\Zo]Zq[YpZZo[[o\[o\[o][n][p\YqVUiIGW41<  x6 Y "2-:C=KKEULHYKJZLI[MJ[NH[PH\RJ^RI\PJZPK[QJ\QJ[TK\VL\VL]VM^TM^RN_RN`SN`TOaTOaUPaUPaSPbTPaTR`URaVQcWQeVReVRfVRfVSeUTeWTgWThVTgWThVUhWUgXUfYUeZUg\UgYUgWVhWVkYWkYVjZVi[Wh[XhZXhXXgXXj[Ym\Xj\Vj]Wj\YkYXj[Xi[XiZYjZXk[Wk\Xm\Ym[YlYYl[WlZXlYXlYXlYXlXXkYYjZXjWShJHY65B & K 0m!%5/;C>LIFVKIYLHYLHXNGWPGXPHYPI[NIYNJYPJZPIZSJZTK[TK\TK\SK\RM\RM\SL]TM_TN`TO_TO_SO_UO_TP`TP`VPaWPbUQeUQeVQdUScTScVSeUReUSfVSgWShWTgXTgYSfYUeYTgXSfWSeWTfVVhVVgWUfYUf[VhZWhZWgYWhYWjZWh[Vi[VjZVjXVi[VjYViXWjYWlZWlZWlZXkZWjYWj[ViYWkYWlYWkYVkXWjZWhWScLHY97D##+`%A% )72?C?NJDUNEVMFVOGWPGWOGVOIYMHXNIXOKZPIZQIYRJ[RK]QJ\RK]PL[PL\RK^SK^SL_SM_TM^UN^VM_UN`UO`VO_UO_SQdVPdVPbTR`TSbVRbTRdTReVRfXRgYSgYRfYReXScWShWSgXSeWSdVSeWUfWUfXTgZUjZUjZVgXUeWTfXUfZViYVjYUiYUh\UlYVlXVkYVl[WlYWkXViYViZUiZUhXVjXVlYVk[UjZVjXReOIY<9F&$-t6 M '"*72>D=NLCTNDUNEWNFXNGVNGVNFUNGWOHZNGYQHXPIZOJ\OI]OJ\LJZNJ]QJ`SK]PL\RM]TM^UL^UK^RK_TL_TN^RO^QN`SObTObTP_UQ`VO`UQcUQcUO_VPeXQfWQcVP`WQbWQdXQdXRdUSdWReVSeWTeYTfWSgWTiVSfVTeVVgXUiWSfWSfXTfYTeZShYTiXUjWTiYThYTgXTgXThXTjUSdVTgXThXShWSgTQcMIY>:H)&1 B%W %"+61>E7EE=LIASI@RJARKCSLCSLBSMDTMEUMDUKCTMDUNEUNFUMEUOFYLFWLFWNFXPFWOGVMFUMGWNHYLGVPIZQH[PH[PIZPHWOJYNJZOJYRHYRIYQIYRJZSJZRHZTI]RI\PJ[OK\PK\OJ\QJ]SJ^SJ[RJYQJ[RJ^SJ_RL[QJ\RJ]RK^PK^PI\KEVC>L72>($, d2:m  %-*3:3?B:HE=MG@PHAQIAPJ@PKAQKBQKBQJARKBRJCRKCRKCSKCUJDTKEUMEVNDUMDSKESKFSLFUKGVNGXPGXOGWMGWNGUOHVOHXOHXPHXNHXNHXOIXPIYPFZQG\QHZPHXOIYOHYMIZMI\PI]RJZRIXQIYRI[TJ]QJZOHYNH[LJ[KEWF@Q=8F0,7!&  _/4f '!*3+6<7DA;KD=LF>MING@OIAOH@NGAOFANGAOIBPKBQIAPJBQKCRLBQLCQKDRKDRKCRKFUJCUKDTKETIDTJDTJDRLDSNDTLFUIETKETLFTKGULEWMFWMFVMFWNHZMFWMHXLHZLGZOHYNGWPHYQIZOHXOGWPHWKGTCBO?:H5/=($- Z+ .Z  "+&040;=7CE;IG;IH>OI@QI@PF?PGARJ@QI@OGAOIAOHAPIBQKBQKBRJBQICOIDQJDTICSGDUGCSICRKDTKDTLETMFUMEVKEUIESLFVMGXKEULDVMDVMDUMDTMFUKGVLHZMHZNFXNEUMFXNGYPHXOHVNETHAO@MH>OG>PJ@QJ@PI@PHAPIAOJBQKBRLBRKBRIARJBRJCSJCSKASJCTJDTLDSMCSLDSLDSLETLEUMDTMCSNDWNEXLEUMFVLDTLCSMCSNDTLGWLFYMEXNFWOEUNEXMEXKDTHAOD;J94?-*3!& sC >l $'.)360;=4AB8GD;KG>MH@OI@OH@PH?OJAQKARKAQKBQI@RJBSJBRIBQJBRKBRLCSLCRKCQKCRKCRKCRLCSMCRMBRMBUMCUMDRMFTLDTLDSMDSLDTLFWLEWMDVLDULCSJARE>N?9G83?0)4$ ( b50X   "$+%-2,691>=7EB;JF=LG=ME=MH?PI@PI@PJAPH@QI@OIAOHAOGCQJAQKAPIBPGCPHBQIBQK@QL?QKBPIAQIARJBQLBPKCRLDUMDTLCSHCSJCSKBRIAPF>NC:J=6D4/;+'0" &  {M(  !Dp   % )-'24-9:2?@6DA9GDLI>NI=NI@QI@OH@OH@PK@OJ>NH>NH@OIAQJARJ@RK?QL?PIAQJ@OH?OH@OJAPKBQKAUK?SJ>PF?OF=KB9H<4C7/4BA6CB9GB;JBME=KG?LG>LH=MH>OG>OH?OH?OH?PI@RJ>NG>ME?MF?MG>KD;JA8I=5E91?5.8-'1%!*" pH' <` !#& (+#-/'12+54.:60=72?83>93>:3>;3?=4B>6D@8E@8E>8E>7F>5C=5A:4@92>70:2+6.'3)#.#&  zS1#?b   ##'% (% '#&#&%('"++&//(3/)3-(1+'0*%.)#-'!+$' "  }X6 "=_          wV7  8TqgJ1 -C[uoT;' 0DZonXA,(8GWiz~n\L:) "-9DMWez~yvqkcZQF;0%  *8AB=41/-*%   ./udm.lpr0000644000175000017500000000561314576573022012461 0ustar anthonyanthonyprogram udm; {$mode objfpc}{$H+} //{$DEFINE debug} // do this here or you can define a -dDEBUG in Project Options/Other/Custom Options, i.e. in a build mode so you can set up a Debug with leakview and a Default build mode without it uses {$IFDEF UNIX}{$IFDEF UseCThreads} cthreads, {$ENDIF}{$ENDIF} Interfaces, // this includes the LCL widgetset Forms, Unit1, tachartlazaruspkg, printer4lazarus, fileview, About, dlheader, appsettings, viewlog, splash, logcont, header_utils, unitdirectorylist, convertlogfileunit, convertoldlog, convertoldlogfile, vector_utils, vector, VectorProduct, dlerase, dlclock, dlretrieve, textfileviewer, comterm, worldmap, plotter, dattimecorrect, datlocalcorrect, correct49to56, dattokml, avgtool, date2dec, concattool, CloudRemUnit, startupoptions, configbrowser, arpmethod, FilterSunMoonUnit; //{$IFDEF WINDOWS}{$R udm.rc}{$ENDIF} {$R *.res} begin Application.Scaled:=True; {$IFDEF DEBUG} // Assuming your build mode sets -dDEBUG in Project Options/Other when defining -gh // This avoids interference when running a production/default build without -gh // Set up -gh output for the Leakview package: if FileExists('heap.trc') then DeleteFile('heap.trc'); SetHeapTraceOutput('heap.trc'); {$ENDIF DEBUG} Application.Initialize; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); Application.CreateForm(TForm4, Form4); Application.CreateForm(TDLHeaderForm, DLHeaderForm); Application.CreateForm(TForm5, Form5); Application.CreateForm(TfrmSplash, frmSplash); Application.CreateForm(TFormLogCont, FormLogCont); Application.CreateForm(TDirectories, Directories); Application.CreateForm(Tconvertdialog, convertdialog); Application.CreateForm(TConvertOldLogForm, ConvertOldLogForm); Application.CreateForm(TVectorForm, VectorForm); Application.CreateForm(TFormDLErase, FormDLErase); Application.CreateForm(TForm6, Form6); Application.CreateForm(TDLRetrieveForm, DLRetrieveForm); Application.CreateForm(TTextFileViewerForm, TextFileViewerForm); Application.CreateForm(TComTermForm, ComTermForm); Application.CreateForm(TFormWorldmap, FormWorldmap); Application.CreateForm(TPlotterForm, PlotterForm); Application.CreateForm(Tdattimecorrectform, dattimecorrectform); Application.CreateForm(Tdatlocalcorrectform, datlocalcorrectform); Application.CreateForm(TCorrectForm, CorrectForm); Application.CreateForm(TForm7, Form7); Application.CreateForm(TStartUpOptionsForm, StartUpOptionsForm); Application.CreateForm(TForm10, Form10); Application.CreateForm(TConcatToolForm, ConcatToolForm); Application.CreateForm(TCloudRemMilkyWay, CloudRemMilkyWay); Application.CreateForm(TConfigBrowserForm, ConfigBrowserForm); Application.CreateForm(TFormarpmethod, Formarpmethod); Application.CreateForm(TFilterSunMoonForm, FilterSunMoonForm); Application.CreateForm(TForm8, Form8); Application.Run; end. ./ssl_openssl_lib.pas0000644000175000017500000023552514576573021015062 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 003.007.002 | |==============================================================================| | Content: SSL support by OpenSSL | |==============================================================================| | Copyright (c)1999-2013, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2002-2013. | | Portions created by Petr Fejfar are Copyright (c)2011-2012. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | | Tomas Hajny (OS2 support) | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} { Special thanks to Gregor Ibic (Intelicom d.o.o., http://www.intelicom.si) for good inspiration about begin with SSL programming. } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} {$IFDEF VER125} {$DEFINE BCB} {$ENDIF} {$IFDEF BCB} {$ObjExportAll On} (*$HPPEMIT 'namespace ssl_openssl_lib { using System::Shortint; }' *) {$ENDIF} //old Delphi does not have MSWINDOWS define. {$IFDEF WIN32} {$IFNDEF MSWINDOWS} {$DEFINE MSWINDOWS} {$ENDIF} {$ENDIF} {:@abstract(OpenSSL support) This unit is Pascal interface to OpenSSL library (used by @link(ssl_openssl) unit). OpenSSL is loaded dynamicly on-demand. If this library is not found in system, requested OpenSSL function just return errorcode. } unit ssl_openssl_lib; interface uses {$IFDEF CIL} System.Runtime.InteropServices, System.Text, {$ENDIF} Classes, synafpc, {$IFNDEF MSWINDOWS} {$IFDEF FPC} {$IFDEF UNIX} BaseUnix, {$ENDIF UNIX} {$ELSE} Libc, {$ENDIF} SysUtils; {$ELSE} Windows; {$ENDIF} {$IFDEF CIL} const {$IFDEF LINUX} DLLSSLName = 'libssl.so'; DLLUtilName = 'libcrypto.so'; {$ELSE} DLLSSLName = 'ssleay32.dll'; DLLUtilName = 'libeay32.dll'; {$ENDIF} {$ELSE} var {$IFNDEF MSWINDOWS} {$IFDEF DARWIN} DLLSSLName: string = 'libssl.dylib'; DLLUtilName: string = 'libcrypto.dylib'; {$ELSE} {$IFDEF OS2} {$IFDEF OS2GCC} DLLSSLName: string = 'kssl.dll'; DLLUtilName: string = 'kcrypto.dll'; {$ELSE OS2GCC} DLLSSLName: string = 'ssl.dll'; DLLUtilName: string = 'crypto.dll'; {$ENDIF OS2GCC} {$ELSE OS2} DLLSSLName: string = 'libssl.so'; DLLUtilName: string = 'libcrypto.so'; {$ENDIF OS2} {$ENDIF} {$ELSE} DLLSSLName: string = 'ssleay32.dll'; DLLSSLName2: string = 'libssl32.dll'; DLLUtilName: string = 'libeay32.dll'; {$ENDIF} {$ENDIF} type {$IFDEF CIL} SslPtr = IntPtr; {$ELSE} SslPtr = Pointer; {$ENDIF} PSslPtr = ^SslPtr; PSSL_CTX = SslPtr; PSSL = SslPtr; PSSL_METHOD = SslPtr; PX509 = SslPtr; PX509_NAME = SslPtr; PEVP_MD = SslPtr; PInteger = ^Integer; PBIO_METHOD = SslPtr; PBIO = SslPtr; EVP_PKEY = SslPtr; PRSA = SslPtr; PASN1_UTCTIME = SslPtr; PASN1_INTEGER = SslPtr; PPasswdCb = SslPtr; PFunction = procedure; PSTACK = SslPtr; {pf} TSkPopFreeFunc = procedure(p:SslPtr); cdecl; {pf} TX509Free = procedure(x: PX509); cdecl; {pf} DES_cblock = array[0..7] of Byte; PDES_cblock = ^DES_cblock; des_ks_struct = packed record ks: DES_cblock; weak_key: Integer; end; des_key_schedule = array[1..16] of des_ks_struct; const EVP_MAX_MD_SIZE = 16 + 20; SSL_ERROR_NONE = 0; SSL_ERROR_SSL = 1; SSL_ERROR_WANT_READ = 2; SSL_ERROR_WANT_WRITE = 3; SSL_ERROR_WANT_X509_LOOKUP = 4; SSL_ERROR_SYSCALL = 5; //look at error stack/return value/errno SSL_ERROR_ZERO_RETURN = 6; SSL_ERROR_WANT_CONNECT = 7; SSL_ERROR_WANT_ACCEPT = 8; SSL_OP_NO_SSLv2 = $01000000; SSL_OP_NO_SSLv3 = $02000000; SSL_OP_NO_TLSv1 = $04000000; SSL_OP_ALL = $000FFFFF; SSL_VERIFY_NONE = $00; SSL_VERIFY_PEER = $01; OPENSSL_DES_DECRYPT = 0; OPENSSL_DES_ENCRYPT = 1; X509_V_OK = 0; X509_V_ILLEGAL = 1; X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT = 2; X509_V_ERR_UNABLE_TO_GET_CRL = 3; X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE = 4; X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE = 5; X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY = 6; X509_V_ERR_CERT_SIGNATURE_FAILURE = 7; X509_V_ERR_CRL_SIGNATURE_FAILURE = 8; X509_V_ERR_CERT_NOT_YET_VALID = 9; X509_V_ERR_CERT_HAS_EXPIRED = 10; X509_V_ERR_CRL_NOT_YET_VALID = 11; X509_V_ERR_CRL_HAS_EXPIRED = 12; X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD = 13; X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD = 14; X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD = 15; X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD = 16; X509_V_ERR_OUT_OF_MEM = 17; X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT = 18; X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN = 19; X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY = 20; X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE = 21; X509_V_ERR_CERT_CHAIN_TOO_LONG = 22; X509_V_ERR_CERT_REVOKED = 23; X509_V_ERR_INVALID_CA = 24; X509_V_ERR_PATH_LENGTH_EXCEEDED = 25; X509_V_ERR_INVALID_PURPOSE = 26; X509_V_ERR_CERT_UNTRUSTED = 27; X509_V_ERR_CERT_REJECTED = 28; //These are 'informational' when looking for issuer cert X509_V_ERR_SUBJECT_ISSUER_MISMATCH = 29; X509_V_ERR_AKID_SKID_MISMATCH = 30; X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH = 31; X509_V_ERR_KEYUSAGE_NO_CERTSIGN = 32; X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER = 33; X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION = 34; //The application is not happy X509_V_ERR_APPLICATION_VERIFICATION = 50; SSL_FILETYPE_ASN1 = 2; SSL_FILETYPE_PEM = 1; EVP_PKEY_RSA = 6; SSL_CTRL_SET_TLSEXT_HOSTNAME = 55; TLSEXT_NAMETYPE_host_name = 0; var SSLLibHandle: TLibHandle = 0; SSLUtilHandle: TLibHandle = 0; SSLLibFile: string = ''; SSLUtilFile: string = ''; {$IFDEF CIL} [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_get_error')] function SslGetError(s: PSSL; ret_code: Integer): Integer; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_library_init')] function SslLibraryInit: Integer; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_load_error_strings')] procedure SslLoadErrorStrings; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_CTX_set_cipher_list')] function SslCtxSetCipherList(arg0: PSSL_CTX; var str: String): Integer; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_CTX_new')] function SslCtxNew(meth: PSSL_METHOD):PSSL_CTX; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_CTX_free')] procedure SslCtxFree (arg0: PSSL_CTX); external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_set_fd')] function SslSetFd(s: PSSL; fd: Integer):Integer; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSLv2_method')] function SslMethodV2 : PSSL_METHOD; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSLv3_method')] function SslMethodV3 : PSSL_METHOD; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'TLSv1_method')] function SslMethodTLSV1:PSSL_METHOD; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSLv23_method')] function SslMethodV23 : PSSL_METHOD; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_CTX_use_PrivateKey')] function SslCtxUsePrivateKey(ctx: PSSL_CTX; pkey: SslPtr):Integer; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_CTX_use_PrivateKey_ASN1')] function SslCtxUsePrivateKeyASN1(pk: integer; ctx: PSSL_CTX; d: String; len: integer):Integer; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_CTX_use_RSAPrivateKey_file')] function SslCtxUsePrivateKeyFile(ctx: PSSL_CTX; const _file: String; _type: Integer):Integer; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_CTX_use_certificate')] function SslCtxUseCertificate(ctx: PSSL_CTX; x: SslPtr):Integer; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_CTX_use_certificate_ASN1')] function SslCtxUseCertificateASN1(ctx: PSSL_CTX; len: integer; d: String):Integer; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_CTX_use_certificate_file')] function SslCtxUseCertificateFile(ctx: PSSL_CTX; const _file: String; _type: Integer):Integer;external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_CTX_use_certificate_chain_file')] function SslCtxUseCertificateChainFile(ctx: PSSL_CTX; const _file: String):Integer;external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_CTX_check_private_key')] function SslCtxCheckPrivateKeyFile(ctx: PSSL_CTX):Integer; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_CTX_set_default_passwd_cb')] procedure SslCtxSetDefaultPasswdCb(ctx: PSSL_CTX; cb: PPasswdCb); external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_CTX_set_default_passwd_cb_userdata')] procedure SslCtxSetDefaultPasswdCbUserdata(ctx: PSSL_CTX; u: IntPtr); external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_CTX_load_verify_locations')] function SslCtxLoadVerifyLocations(ctx: PSSL_CTX; CAfile: string; CApath: String):Integer; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_CTX_ctrl')] function SslCtxCtrl(ctx: PSSL_CTX; cmd: integer; larg: integer; parg: IntPtr): integer; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_new')] function SslNew(ctx: PSSL_CTX):PSSL; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_free')] procedure SslFree(ssl: PSSL); external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_accept')] function SslAccept(ssl: PSSL):Integer; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_connect')] function SslConnect(ssl: PSSL):Integer; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_shutdown')] function SslShutdown(s: PSSL):Integer; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_read')] function SslRead(ssl: PSSL; buf: StringBuilder; num: Integer):Integer; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_peek')] function SslPeek(ssl: PSSL; buf: StringBuilder; num: Integer):Integer; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_write')] function SslWrite(ssl: PSSL; buf: String; num: Integer):Integer; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_pending')] function SslPending(ssl: PSSL):Integer; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_get_version')] function SslGetVersion(ssl: PSSL):String; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_get_peer_certificate')] function SslGetPeerCertificate(s: PSSL):PX509; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_CTX_set_verify')] procedure SslCtxSetVerify(ctx: PSSL_CTX; mode: Integer; arg2: PFunction); external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_get_current_cipher')] function SSLGetCurrentCipher(s: PSSL): SslPtr; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_CIPHER_get_name')] function SSLCipherGetName(c: SslPtr):String; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_CIPHER_get_bits')] function SSLCipherGetBits(c: SslPtr; var alg_bits: Integer):Integer; external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_get_verify_result')] function SSLGetVerifyResult(ssl: PSSL):Integer;external; [DllImport(DLLSSLName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSL_ctrl')] function SslCtrl(ssl: PSSL; cmd: integer; larg: integer; parg: IntPtr): integer; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'X509_new')] function X509New: PX509; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'X509_free')] procedure X509Free(x: PX509); external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'X509_NAME_oneline')] function X509NameOneline(a: PX509_NAME; buf: StringBuilder; size: Integer): String; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'X509_get_subject_name')] function X509GetSubjectName(a: PX509):PX509_NAME; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'X509_get_issuer_name')] function X509GetIssuerName(a: PX509):PX509_NAME; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'X509_NAME_hash')] function X509NameHash(x: PX509_NAME):Cardinal; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'X509_digest')] function X509Digest (data: PX509; _type: PEVP_MD; md: StringBuilder; var len: Integer):Integer; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'X509_set_version')] function X509SetVersion(x: PX509; version: integer): integer; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'X509_set_pubkey')] function X509SetPubkey(x: PX509; pkey: EVP_PKEY): integer; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'X509_set_issuer_name')] function X509SetIssuerName(x: PX509; name: PX509_NAME): integer; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'X509_NAME_add_entry_by_txt')] function X509NameAddEntryByTxt(name: PX509_NAME; field: string; _type: integer; bytes: string; len, loc, _set: integer): integer; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'X509_sign')] function X509Sign(x: PX509; pkey: EVP_PKEY; const md: PEVP_MD): integer; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'X509_print')] function X509print(b: PBIO; a: PX509): integer; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'X509_gmtime_adj')] function X509GmtimeAdj(s: PASN1_UTCTIME; adj: integer): PASN1_UTCTIME; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'X509_set_notBefore')] function X509SetNotBefore(x: PX509; tm: PASN1_UTCTIME): integer; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'X509_set_notAfter')] function X509SetNotAfter(x: PX509; tm: PASN1_UTCTIME): integer; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'X509_get_serialNumber')] function X509GetSerialNumber(x: PX509): PASN1_INTEGER; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'EVP_PKEY_new')] function EvpPkeyNew: EVP_PKEY; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'EVP_PKEY_free')] procedure EvpPkeyFree(pk: EVP_PKEY); external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'EVP_PKEY_assign')] function EvpPkeyAssign(pkey: EVP_PKEY; _type: integer; key: Prsa): integer; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'EVP_get_digestbyname')] function EvpGetDigestByName(Name: String): PEVP_MD; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'EVP_cleanup')] procedure EVPcleanup; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'SSLeay_version')] function SSLeayversion(t: integer): String; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'ERR_error_string_n')] procedure ErrErrorString(e: integer; buf: StringBuilder; len: integer); external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'ERR_get_error')] function ErrGetError: integer; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'ERR_clear_error')] procedure ErrClearError; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'ERR_free_strings')] procedure ErrFreeStrings; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'ERR_remove_state')] procedure ErrRemoveState(pid: integer); external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'OPENSSL_add_all_algorithms_noconf')] procedure OPENSSLaddallalgorithms; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'CRYPTO_cleanup_all_ex_data')] procedure CRYPTOcleanupAllExData; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'RAND_screen')] procedure RandScreen; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'BIO_new')] function BioNew(b: PBIO_METHOD): PBIO; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'BIO_free_all')] procedure BioFreeAll(b: PBIO); external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'BIO_s_mem')] function BioSMem: PBIO_METHOD; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'BIO_ctrl_pending')] function BioCtrlPending(b: PBIO): integer; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'BIO_read')] function BioRead(b: PBIO; Buf: StringBuilder; Len: integer): integer; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'BIO_write')] function BioWrite(b: PBIO; var Buf: String; Len: integer): integer; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'd2i_PKCS12_bio')] function d2iPKCS12bio(b:PBIO; Pkcs12: SslPtr): SslPtr; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'PKCS12_parse')] function PKCS12parse(p12: SslPtr; pass: string; var pkey, cert, ca: SslPtr): integer; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'PKCS12_free')] procedure PKCS12free(p12: SslPtr); external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'RSA_generate_key')] function RsaGenerateKey(bits, e: integer; callback: PFunction; cb_arg: SslPtr): PRSA; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'ASN1_UTCTIME_new')] function Asn1UtctimeNew: PASN1_UTCTIME; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'ASN1_UTCTIME_free')] procedure Asn1UtctimeFree(a: PASN1_UTCTIME); external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'ASN1_INTEGER_set')] function Asn1IntegerSet(a: PASN1_INTEGER; v: integer): integer; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'i2d_X509_bio')] function i2dX509bio(b: PBIO; x: PX509): integer; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'i2d_PrivateKey_bio')] function i2dPrivateKeyBio(b: PBIO; pkey: EVP_PKEY): integer; external; // 3DES functions [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'DES_set_odd_parity')] procedure DESsetoddparity(Key: des_cblock); external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'DES_set_key_checked')] function DESsetkeychecked(key: des_cblock; schedule: des_key_schedule): Integer; external; [DllImport(DLLUtilName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'DES_ecb_encrypt')] procedure DESecbencrypt(Input: des_cblock; output: des_cblock; ks: des_key_schedule; enc: Integer); external; {$ELSE} // libssl.dll function SslGetError(s: PSSL; ret_code: Integer):Integer; function SslLibraryInit:Integer; procedure SslLoadErrorStrings; // function SslCtxSetCipherList(arg0: PSSL_CTX; str: PChar):Integer; function SslCtxSetCipherList(arg0: PSSL_CTX; var str: AnsiString):Integer; function SslCtxNew(meth: PSSL_METHOD):PSSL_CTX; procedure SslCtxFree(arg0: PSSL_CTX); function SslSetFd(s: PSSL; fd: Integer):Integer; function SslMethodV2:PSSL_METHOD; function SslMethodV3:PSSL_METHOD; function SslMethodTLSV1:PSSL_METHOD; function SslMethodV23:PSSL_METHOD; function SslCtxUsePrivateKey(ctx: PSSL_CTX; pkey: SslPtr):Integer; function SslCtxUsePrivateKeyASN1(pk: integer; ctx: PSSL_CTX; d: AnsiString; len: integer):Integer; // function SslCtxUsePrivateKeyFile(ctx: PSSL_CTX; const _file: PChar; _type: Integer):Integer; function SslCtxUsePrivateKeyFile(ctx: PSSL_CTX; const _file: AnsiString; _type: Integer):Integer; function SslCtxUseCertificate(ctx: PSSL_CTX; x: SslPtr):Integer; function SslCtxUseCertificateASN1(ctx: PSSL_CTX; len: integer; d: AnsiString):Integer; function SslCtxUseCertificateFile(ctx: PSSL_CTX; const _file: AnsiString; _type: Integer):Integer; // function SslCtxUseCertificateChainFile(ctx: PSSL_CTX; const _file: PChar):Integer; function SslCtxUseCertificateChainFile(ctx: PSSL_CTX; const _file: AnsiString):Integer; function SslCtxCheckPrivateKeyFile(ctx: PSSL_CTX):Integer; procedure SslCtxSetDefaultPasswdCb(ctx: PSSL_CTX; cb: PPasswdCb); procedure SslCtxSetDefaultPasswdCbUserdata(ctx: PSSL_CTX; u: SslPtr); // function SslCtxLoadVerifyLocations(ctx: PSSL_CTX; const CAfile: PChar; const CApath: PChar):Integer; function SslCtxLoadVerifyLocations(ctx: PSSL_CTX; const CAfile: AnsiString; const CApath: AnsiString):Integer; function SslCtxCtrl(ctx: PSSL_CTX; cmd: integer; larg: integer; parg: SslPtr): integer; function SslNew(ctx: PSSL_CTX):PSSL; procedure SslFree(ssl: PSSL); function SslAccept(ssl: PSSL):Integer; function SslConnect(ssl: PSSL):Integer; function SslShutdown(ssl: PSSL):Integer; function SslRead(ssl: PSSL; buf: SslPtr; num: Integer):Integer; function SslPeek(ssl: PSSL; buf: SslPtr; num: Integer):Integer; function SslWrite(ssl: PSSL; buf: SslPtr; num: Integer):Integer; function SslPending(ssl: PSSL):Integer; function SslGetVersion(ssl: PSSL):AnsiString; function SslGetPeerCertificate(ssl: PSSL):PX509; procedure SslCtxSetVerify(ctx: PSSL_CTX; mode: Integer; arg2: PFunction); function SSLGetCurrentCipher(s: PSSL):SslPtr; function SSLCipherGetName(c: SslPtr): AnsiString; function SSLCipherGetBits(c: SslPtr; var alg_bits: Integer):Integer; function SSLGetVerifyResult(ssl: PSSL):Integer; function SSLCtrl(ssl: PSSL; cmd: integer; larg: integer; parg: SslPtr):Integer; // libeay.dll function X509New: PX509; procedure X509Free(x: PX509); function X509NameOneline(a: PX509_NAME; var buf: AnsiString; size: Integer):AnsiString; function X509GetSubjectName(a: PX509):PX509_NAME; function X509GetIssuerName(a: PX509):PX509_NAME; function X509NameHash(x: PX509_NAME):Cardinal; // function SslX509Digest(data: PX509; _type: PEVP_MD; md: PChar; len: PInteger):Integer; function X509Digest(data: PX509; _type: PEVP_MD; md: AnsiString; var len: Integer):Integer; function X509print(b: PBIO; a: PX509): integer; function X509SetVersion(x: PX509; version: integer): integer; function X509SetPubkey(x: PX509; pkey: EVP_PKEY): integer; function X509SetIssuerName(x: PX509; name: PX509_NAME): integer; function X509NameAddEntryByTxt(name: PX509_NAME; field: Ansistring; _type: integer; bytes: Ansistring; len, loc, _set: integer): integer; function X509Sign(x: PX509; pkey: EVP_PKEY; const md: PEVP_MD): integer; function X509GmtimeAdj(s: PASN1_UTCTIME; adj: integer): PASN1_UTCTIME; function X509SetNotBefore(x: PX509; tm: PASN1_UTCTIME): integer; function X509SetNotAfter(x: PX509; tm: PASN1_UTCTIME): integer; function X509GetSerialNumber(x: PX509): PASN1_INTEGER; function EvpPkeyNew: EVP_PKEY; procedure EvpPkeyFree(pk: EVP_PKEY); function EvpPkeyAssign(pkey: EVP_PKEY; _type: integer; key: Prsa): integer; function EvpGetDigestByName(Name: AnsiString): PEVP_MD; procedure EVPcleanup; // function ErrErrorString(e: integer; buf: PChar): PChar; function SSLeayversion(t: integer): Ansistring; procedure ErrErrorString(e: integer; var buf: Ansistring; len: integer); function ErrGetError: integer; procedure ErrClearError; procedure ErrFreeStrings; procedure ErrRemoveState(pid: integer); procedure OPENSSLaddallalgorithms; procedure CRYPTOcleanupAllExData; procedure RandScreen; function BioNew(b: PBIO_METHOD): PBIO; procedure BioFreeAll(b: PBIO); function BioSMem: PBIO_METHOD; function BioCtrlPending(b: PBIO): integer; function BioRead(b: PBIO; var Buf: AnsiString; Len: integer): integer; function BioWrite(b: PBIO; Buf: AnsiString; Len: integer): integer; function d2iPKCS12bio(b:PBIO; Pkcs12: SslPtr): SslPtr; function PKCS12parse(p12: SslPtr; pass: Ansistring; var pkey, cert, ca: SslPtr): integer; procedure PKCS12free(p12: SslPtr); function RsaGenerateKey(bits, e: integer; callback: PFunction; cb_arg: SslPtr): PRSA; function Asn1UtctimeNew: PASN1_UTCTIME; procedure Asn1UtctimeFree(a: PASN1_UTCTIME); function Asn1IntegerSet(a: PASN1_INTEGER; v: integer): integer; function Asn1IntegerGet(a: PASN1_INTEGER): integer; {pf} function i2dX509bio(b: PBIO; x: PX509): integer; function d2iX509bio(b:PBIO; x:PX509): PX509; {pf} function PEMReadBioX509(b:PBIO; {var x:PX509;}x:PSslPtr; callback:PFunction; cb_arg: SslPtr): PX509; {pf} procedure SkX509PopFree(st: PSTACK; func: TSkPopFreeFunc); {pf} function i2dPrivateKeyBio(b: PBIO; pkey: EVP_PKEY): integer; // 3DES functions procedure DESsetoddparity(Key: des_cblock); function DESsetkeychecked(key: des_cblock; schedule: des_key_schedule): Integer; procedure DESecbencrypt(Input: des_cblock; output: des_cblock; ks: des_key_schedule; enc: Integer); {$ENDIF} function IsSSLloaded: Boolean; function InitSSLInterface: Boolean; function DestroySSLInterface: Boolean; var _X509Free: TX509Free = nil; {pf} implementation uses {$IFDEF OS2} Sockets, {$ENDIF OS2} SyncObjs; {$IFNDEF CIL} type // libssl.dll TSslGetError = function(s: PSSL; ret_code: Integer):Integer; cdecl; TSslLibraryInit = function:Integer; cdecl; TSslLoadErrorStrings = procedure; cdecl; TSslCtxSetCipherList = function(arg0: PSSL_CTX; str: PAnsiChar):Integer; cdecl; TSslCtxNew = function(meth: PSSL_METHOD):PSSL_CTX; cdecl; TSslCtxFree = procedure(arg0: PSSL_CTX); cdecl; TSslSetFd = function(s: PSSL; fd: Integer):Integer; cdecl; TSslMethodV2 = function:PSSL_METHOD; cdecl; TSslMethodV3 = function:PSSL_METHOD; cdecl; TSslMethodTLSV1 = function:PSSL_METHOD; cdecl; TSslMethodV23 = function:PSSL_METHOD; cdecl; TSslCtxUsePrivateKey = function(ctx: PSSL_CTX; pkey: sslptr):Integer; cdecl; TSslCtxUsePrivateKeyASN1 = function(pk: integer; ctx: PSSL_CTX; d: sslptr; len: integer):Integer; cdecl; TSslCtxUsePrivateKeyFile = function(ctx: PSSL_CTX; const _file: PAnsiChar; _type: Integer):Integer; cdecl; TSslCtxUseCertificate = function(ctx: PSSL_CTX; x: SslPtr):Integer; cdecl; TSslCtxUseCertificateASN1 = function(ctx: PSSL_CTX; len: Integer; d: SslPtr):Integer; cdecl; TSslCtxUseCertificateFile = function(ctx: PSSL_CTX; const _file: PAnsiChar; _type: Integer):Integer; cdecl; TSslCtxUseCertificateChainFile = function(ctx: PSSL_CTX; const _file: PAnsiChar):Integer; cdecl; TSslCtxCheckPrivateKeyFile = function(ctx: PSSL_CTX):Integer; cdecl; TSslCtxSetDefaultPasswdCb = procedure(ctx: PSSL_CTX; cb: SslPtr); cdecl; TSslCtxSetDefaultPasswdCbUserdata = procedure(ctx: PSSL_CTX; u: SslPtr); cdecl; TSslCtxLoadVerifyLocations = function(ctx: PSSL_CTX; const CAfile: PAnsiChar; const CApath: PAnsiChar):Integer; cdecl; TSslCtxCtrl = function(ctx: PSSL_CTX; cmd: integer; larg: integer; parg: SslPtr): integer; cdecl; TSslNew = function(ctx: PSSL_CTX):PSSL; cdecl; TSslFree = procedure(ssl: PSSL); cdecl; TSslAccept = function(ssl: PSSL):Integer; cdecl; TSslConnect = function(ssl: PSSL):Integer; cdecl; TSslShutdown = function(ssl: PSSL):Integer; cdecl; TSslRead = function(ssl: PSSL; buf: PAnsiChar; num: Integer):Integer; cdecl; TSslPeek = function(ssl: PSSL; buf: PAnsiChar; num: Integer):Integer; cdecl; TSslWrite = function(ssl: PSSL; const buf: PAnsiChar; num: Integer):Integer; cdecl; TSslPending = function(ssl: PSSL):Integer; cdecl; TSslGetVersion = function(ssl: PSSL):PAnsiChar; cdecl; TSslGetPeerCertificate = function(ssl: PSSL):PX509; cdecl; TSslCtxSetVerify = procedure(ctx: PSSL_CTX; mode: Integer; arg2: SslPtr); cdecl; TSSLGetCurrentCipher = function(s: PSSL):SslPtr; cdecl; TSSLCipherGetName = function(c: Sslptr):PAnsiChar; cdecl; TSSLCipherGetBits = function(c: SslPtr; alg_bits: PInteger):Integer; cdecl; TSSLGetVerifyResult = function(ssl: PSSL):Integer; cdecl; TSSLCtrl = function(ssl: PSSL; cmd: integer; larg: integer; parg: SslPtr):Integer; cdecl; TSSLSetTlsextHostName = function(ssl: PSSL; buf: PAnsiChar):Integer; cdecl; // libeay.dll TX509New = function: PX509; cdecl; TX509NameOneline = function(a: PX509_NAME; buf: PAnsiChar; size: Integer):PAnsiChar; cdecl; TX509GetSubjectName = function(a: PX509):PX509_NAME; cdecl; TX509GetIssuerName = function(a: PX509):PX509_NAME; cdecl; TX509NameHash = function(x: PX509_NAME):Cardinal; cdecl; TX509Digest = function(data: PX509; _type: PEVP_MD; md: PAnsiChar; len: PInteger):Integer; cdecl; TX509print = function(b: PBIO; a: PX509): integer; cdecl; TX509SetVersion = function(x: PX509; version: integer): integer; cdecl; TX509SetPubkey = function(x: PX509; pkey: EVP_PKEY): integer; cdecl; TX509SetIssuerName = function(x: PX509; name: PX509_NAME): integer; cdecl; TX509NameAddEntryByTxt = function(name: PX509_NAME; field: PAnsiChar; _type: integer; bytes: PAnsiChar; len, loc, _set: integer): integer; cdecl; TX509Sign = function(x: PX509; pkey: EVP_PKEY; const md: PEVP_MD): integer; cdecl; TX509GmtimeAdj = function(s: PASN1_UTCTIME; adj: integer): PASN1_UTCTIME; cdecl; TX509SetNotBefore = function(x: PX509; tm: PASN1_UTCTIME): integer; cdecl; TX509SetNotAfter = function(x: PX509; tm: PASN1_UTCTIME): integer; cdecl; TX509GetSerialNumber = function(x: PX509): PASN1_INTEGER; cdecl; TEvpPkeyNew = function: EVP_PKEY; cdecl; TEvpPkeyFree = procedure(pk: EVP_PKEY); cdecl; TEvpPkeyAssign = function(pkey: EVP_PKEY; _type: integer; key: Prsa): integer; cdecl; TEvpGetDigestByName = function(Name: PAnsiChar): PEVP_MD; cdecl; TEVPcleanup = procedure; cdecl; TSSLeayversion = function(t: integer): PAnsiChar; cdecl; TErrErrorString = procedure(e: integer; buf: PAnsiChar; len: integer); cdecl; TErrGetError = function: integer; cdecl; TErrClearError = procedure; cdecl; TErrFreeStrings = procedure; cdecl; TErrRemoveState = procedure(pid: integer); cdecl; TOPENSSLaddallalgorithms = procedure; cdecl; TCRYPTOcleanupAllExData = procedure; cdecl; TRandScreen = procedure; cdecl; TBioNew = function(b: PBIO_METHOD): PBIO; cdecl; TBioFreeAll = procedure(b: PBIO); cdecl; TBioSMem = function: PBIO_METHOD; cdecl; TBioCtrlPending = function(b: PBIO): integer; cdecl; TBioRead = function(b: PBIO; Buf: PAnsiChar; Len: integer): integer; cdecl; TBioWrite = function(b: PBIO; Buf: PAnsiChar; Len: integer): integer; cdecl; Td2iPKCS12bio = function(b:PBIO; Pkcs12: SslPtr): SslPtr; cdecl; TPKCS12parse = function(p12: SslPtr; pass: PAnsiChar; var pkey, cert, ca: SslPtr): integer; cdecl; TPKCS12free = procedure(p12: SslPtr); cdecl; TRsaGenerateKey = function(bits, e: integer; callback: PFunction; cb_arg: SslPtr): PRSA; cdecl; TAsn1UtctimeNew = function: PASN1_UTCTIME; cdecl; TAsn1UtctimeFree = procedure(a: PASN1_UTCTIME); cdecl; TAsn1IntegerSet = function(a: PASN1_INTEGER; v: integer): integer; cdecl; TAsn1IntegerGet = function(a: PASN1_INTEGER): integer; cdecl; {pf} Ti2dX509bio = function(b: PBIO; x: PX509): integer; cdecl; Td2iX509bio = function(b:PBIO; x:PX509): PX509; cdecl; {pf} TPEMReadBioX509 = function(b:PBIO; {var x:PX509;}x:PSslPtr; callback:PFunction; cb_arg:SslPtr): PX509; cdecl; {pf} TSkX509PopFree = procedure(st: PSTACK; func: TSkPopFreeFunc); cdecl; {pf} Ti2dPrivateKeyBio= function(b: PBIO; pkey: EVP_PKEY): integer; cdecl; // 3DES functions TDESsetoddparity = procedure(Key: des_cblock); cdecl; TDESsetkeychecked = function(key: des_cblock; schedule: des_key_schedule): Integer; cdecl; TDESecbencrypt = procedure(Input: des_cblock; output: des_cblock; ks: des_key_schedule; enc: Integer); cdecl; //thread lock functions TCRYPTOnumlocks = function: integer; cdecl; TCRYPTOSetLockingCallback = procedure(cb: Sslptr); cdecl; var // libssl.dll _SslGetError: TSslGetError = nil; _SslLibraryInit: TSslLibraryInit = nil; _SslLoadErrorStrings: TSslLoadErrorStrings = nil; _SslCtxSetCipherList: TSslCtxSetCipherList = nil; _SslCtxNew: TSslCtxNew = nil; _SslCtxFree: TSslCtxFree = nil; _SslSetFd: TSslSetFd = nil; _SslMethodV2: TSslMethodV2 = nil; _SslMethodV3: TSslMethodV3 = nil; _SslMethodTLSV1: TSslMethodTLSV1 = nil; _SslMethodV23: TSslMethodV23 = nil; _SslCtxUsePrivateKey: TSslCtxUsePrivateKey = nil; _SslCtxUsePrivateKeyASN1: TSslCtxUsePrivateKeyASN1 = nil; _SslCtxUsePrivateKeyFile: TSslCtxUsePrivateKeyFile = nil; _SslCtxUseCertificate: TSslCtxUseCertificate = nil; _SslCtxUseCertificateASN1: TSslCtxUseCertificateASN1 = nil; _SslCtxUseCertificateFile: TSslCtxUseCertificateFile = nil; _SslCtxUseCertificateChainFile: TSslCtxUseCertificateChainFile = nil; _SslCtxCheckPrivateKeyFile: TSslCtxCheckPrivateKeyFile = nil; _SslCtxSetDefaultPasswdCb: TSslCtxSetDefaultPasswdCb = nil; _SslCtxSetDefaultPasswdCbUserdata: TSslCtxSetDefaultPasswdCbUserdata = nil; _SslCtxLoadVerifyLocations: TSslCtxLoadVerifyLocations = nil; _SslCtxCtrl: TSslCtxCtrl = nil; _SslNew: TSslNew = nil; _SslFree: TSslFree = nil; _SslAccept: TSslAccept = nil; _SslConnect: TSslConnect = nil; _SslShutdown: TSslShutdown = nil; _SslRead: TSslRead = nil; _SslPeek: TSslPeek = nil; _SslWrite: TSslWrite = nil; _SslPending: TSslPending = nil; _SslGetVersion: TSslGetVersion = nil; _SslGetPeerCertificate: TSslGetPeerCertificate = nil; _SslCtxSetVerify: TSslCtxSetVerify = nil; _SSLGetCurrentCipher: TSSLGetCurrentCipher = nil; _SSLCipherGetName: TSSLCipherGetName = nil; _SSLCipherGetBits: TSSLCipherGetBits = nil; _SSLGetVerifyResult: TSSLGetVerifyResult = nil; _SSLCtrl: TSSLCtrl = nil; // libeay.dll _X509New: TX509New = nil; _X509NameOneline: TX509NameOneline = nil; _X509GetSubjectName: TX509GetSubjectName = nil; _X509GetIssuerName: TX509GetIssuerName = nil; _X509NameHash: TX509NameHash = nil; _X509Digest: TX509Digest = nil; _X509print: TX509print = nil; _X509SetVersion: TX509SetVersion = nil; _X509SetPubkey: TX509SetPubkey = nil; _X509SetIssuerName: TX509SetIssuerName = nil; _X509NameAddEntryByTxt: TX509NameAddEntryByTxt = nil; _X509Sign: TX509Sign = nil; _X509GmtimeAdj: TX509GmtimeAdj = nil; _X509SetNotBefore: TX509SetNotBefore = nil; _X509SetNotAfter: TX509SetNotAfter = nil; _X509GetSerialNumber: TX509GetSerialNumber = nil; _EvpPkeyNew: TEvpPkeyNew = nil; _EvpPkeyFree: TEvpPkeyFree = nil; _EvpPkeyAssign: TEvpPkeyAssign = nil; _EvpGetDigestByName: TEvpGetDigestByName = nil; _EVPcleanup: TEVPcleanup = nil; _SSLeayversion: TSSLeayversion = nil; _ErrErrorString: TErrErrorString = nil; _ErrGetError: TErrGetError = nil; _ErrClearError: TErrClearError = nil; _ErrFreeStrings: TErrFreeStrings = nil; _ErrRemoveState: TErrRemoveState = nil; _OPENSSLaddallalgorithms: TOPENSSLaddallalgorithms = nil; _CRYPTOcleanupAllExData: TCRYPTOcleanupAllExData = nil; _RandScreen: TRandScreen = nil; _BioNew: TBioNew = nil; _BioFreeAll: TBioFreeAll = nil; _BioSMem: TBioSMem = nil; _BioCtrlPending: TBioCtrlPending = nil; _BioRead: TBioRead = nil; _BioWrite: TBioWrite = nil; _d2iPKCS12bio: Td2iPKCS12bio = nil; _PKCS12parse: TPKCS12parse = nil; _PKCS12free: TPKCS12free = nil; _RsaGenerateKey: TRsaGenerateKey = nil; _Asn1UtctimeNew: TAsn1UtctimeNew = nil; _Asn1UtctimeFree: TAsn1UtctimeFree = nil; _Asn1IntegerSet: TAsn1IntegerSet = nil; _Asn1IntegerGet: TAsn1IntegerGet = nil; {pf} _i2dX509bio: Ti2dX509bio = nil; _d2iX509bio: Td2iX509bio = nil; {pf} _PEMReadBioX509: TPEMReadBioX509 = nil; {pf} _SkX509PopFree: TSkX509PopFree = nil; {pf} _i2dPrivateKeyBio: Ti2dPrivateKeyBio = nil; // 3DES functions _DESsetoddparity: TDESsetoddparity = nil; _DESsetkeychecked: TDESsetkeychecked = nil; _DESecbencrypt: TDESecbencrypt = nil; //thread lock functions _CRYPTOnumlocks: TCRYPTOnumlocks = nil; _CRYPTOSetLockingCallback: TCRYPTOSetLockingCallback = nil; {$ENDIF} var SSLCS: TCriticalSection; SSLloaded: boolean = false; {$IFNDEF CIL} Locks: TList; {$ENDIF} {$IFNDEF CIL} // libssl.dll function SslGetError(s: PSSL; ret_code: Integer):Integer; begin if InitSSLInterface and Assigned(_SslGetError) then Result := _SslGetError(s, ret_code) else Result := SSL_ERROR_SSL; end; function SslLibraryInit:Integer; begin if InitSSLInterface and Assigned(_SslLibraryInit) then Result := _SslLibraryInit else Result := 1; end; procedure SslLoadErrorStrings; begin if InitSSLInterface and Assigned(_SslLoadErrorStrings) then _SslLoadErrorStrings; end; //function SslCtxSetCipherList(arg0: PSSL_CTX; str: PChar):Integer; function SslCtxSetCipherList(arg0: PSSL_CTX; var str: AnsiString):Integer; begin if InitSSLInterface and Assigned(_SslCtxSetCipherList) then Result := _SslCtxSetCipherList(arg0, PAnsiChar(str)) else Result := 0; end; function SslCtxNew(meth: PSSL_METHOD):PSSL_CTX; begin if InitSSLInterface and Assigned(_SslCtxNew) then Result := _SslCtxNew(meth) else Result := nil; end; procedure SslCtxFree(arg0: PSSL_CTX); begin if InitSSLInterface and Assigned(_SslCtxFree) then _SslCtxFree(arg0); end; function SslSetFd(s: PSSL; fd: Integer):Integer; begin if InitSSLInterface and Assigned(_SslSetFd) then Result := _SslSetFd(s, fd) else Result := 0; end; function SslMethodV2:PSSL_METHOD; begin if InitSSLInterface and Assigned(_SslMethodV2) then Result := _SslMethodV2 else Result := nil; end; function SslMethodV3:PSSL_METHOD; begin if InitSSLInterface and Assigned(_SslMethodV3) then Result := _SslMethodV3 else Result := nil; end; function SslMethodTLSV1:PSSL_METHOD; begin if InitSSLInterface and Assigned(_SslMethodTLSV1) then Result := _SslMethodTLSV1 else Result := nil; end; function SslMethodV23:PSSL_METHOD; begin if InitSSLInterface and Assigned(_SslMethodV23) then Result := _SslMethodV23 else Result := nil; end; function SslCtxUsePrivateKey(ctx: PSSL_CTX; pkey: SslPtr):Integer; begin if InitSSLInterface and Assigned(_SslCtxUsePrivateKey) then Result := _SslCtxUsePrivateKey(ctx, pkey) else Result := 0; end; function SslCtxUsePrivateKeyASN1(pk: integer; ctx: PSSL_CTX; d: AnsiString; len: integer):Integer; begin if InitSSLInterface and Assigned(_SslCtxUsePrivateKeyASN1) then Result := _SslCtxUsePrivateKeyASN1(pk, ctx, Sslptr(d), len) else Result := 0; end; //function SslCtxUsePrivateKeyFile(ctx: PSSL_CTX; const _file: PChar; _type: Integer):Integer; function SslCtxUsePrivateKeyFile(ctx: PSSL_CTX; const _file: AnsiString; _type: Integer):Integer; begin if InitSSLInterface and Assigned(_SslCtxUsePrivateKeyFile) then Result := _SslCtxUsePrivateKeyFile(ctx, PAnsiChar(_file), _type) else Result := 0; end; function SslCtxUseCertificate(ctx: PSSL_CTX; x: SslPtr):Integer; begin if InitSSLInterface and Assigned(_SslCtxUseCertificate) then Result := _SslCtxUseCertificate(ctx, x) else Result := 0; end; function SslCtxUseCertificateASN1(ctx: PSSL_CTX; len: integer; d: AnsiString):Integer; begin if InitSSLInterface and Assigned(_SslCtxUseCertificateASN1) then Result := _SslCtxUseCertificateASN1(ctx, len, SslPtr(d)) else Result := 0; end; function SslCtxUseCertificateFile(ctx: PSSL_CTX; const _file: AnsiString; _type: Integer):Integer; begin if InitSSLInterface and Assigned(_SslCtxUseCertificateFile) then Result := _SslCtxUseCertificateFile(ctx, PAnsiChar(_file), _type) else Result := 0; end; //function SslCtxUseCertificateChainFile(ctx: PSSL_CTX; const _file: PChar):Integer; function SslCtxUseCertificateChainFile(ctx: PSSL_CTX; const _file: AnsiString):Integer; begin if InitSSLInterface and Assigned(_SslCtxUseCertificateChainFile) then Result := _SslCtxUseCertificateChainFile(ctx, PAnsiChar(_file)) else Result := 0; end; function SslCtxCheckPrivateKeyFile(ctx: PSSL_CTX):Integer; begin if InitSSLInterface and Assigned(_SslCtxCheckPrivateKeyFile) then Result := _SslCtxCheckPrivateKeyFile(ctx) else Result := 0; end; procedure SslCtxSetDefaultPasswdCb(ctx: PSSL_CTX; cb: PPasswdCb); begin if InitSSLInterface and Assigned(_SslCtxSetDefaultPasswdCb) then _SslCtxSetDefaultPasswdCb(ctx, cb); end; procedure SslCtxSetDefaultPasswdCbUserdata(ctx: PSSL_CTX; u: SslPtr); begin if InitSSLInterface and Assigned(_SslCtxSetDefaultPasswdCbUserdata) then _SslCtxSetDefaultPasswdCbUserdata(ctx, u); end; //function SslCtxLoadVerifyLocations(ctx: PSSL_CTX; const CAfile: PChar; const CApath: PChar):Integer; function SslCtxLoadVerifyLocations(ctx: PSSL_CTX; const CAfile: AnsiString; const CApath: AnsiString):Integer; begin if InitSSLInterface and Assigned(_SslCtxLoadVerifyLocations) then Result := _SslCtxLoadVerifyLocations(ctx, SslPtr(CAfile), SslPtr(CApath)) else Result := 0; end; function SslCtxCtrl(ctx: PSSL_CTX; cmd: integer; larg: integer; parg: SslPtr): integer; begin if InitSSLInterface and Assigned(_SslCtxCtrl) then Result := _SslCtxCtrl(ctx, cmd, larg, parg) else Result := 0; end; function SslNew(ctx: PSSL_CTX):PSSL; begin if InitSSLInterface and Assigned(_SslNew) then Result := _SslNew(ctx) else Result := nil; end; procedure SslFree(ssl: PSSL); begin if InitSSLInterface and Assigned(_SslFree) then _SslFree(ssl); end; function SslAccept(ssl: PSSL):Integer; begin if InitSSLInterface and Assigned(_SslAccept) then Result := _SslAccept(ssl) else Result := -1; end; function SslConnect(ssl: PSSL):Integer; begin if InitSSLInterface and Assigned(_SslConnect) then Result := _SslConnect(ssl) else Result := -1; end; function SslShutdown(ssl: PSSL):Integer; begin if InitSSLInterface and Assigned(_SslShutdown) then Result := _SslShutdown(ssl) else Result := -1; end; //function SslRead(ssl: PSSL; buf: PChar; num: Integer):Integer; function SslRead(ssl: PSSL; buf: SslPtr; num: Integer):Integer; begin if InitSSLInterface and Assigned(_SslRead) then Result := _SslRead(ssl, PAnsiChar(buf), num) else Result := -1; end; //function SslPeek(ssl: PSSL; buf: PChar; num: Integer):Integer; function SslPeek(ssl: PSSL; buf: SslPtr; num: Integer):Integer; begin if InitSSLInterface and Assigned(_SslPeek) then Result := _SslPeek(ssl, PAnsiChar(buf), num) else Result := -1; end; //function SslWrite(ssl: PSSL; const buf: PChar; num: Integer):Integer; function SslWrite(ssl: PSSL; buf: SslPtr; num: Integer):Integer; begin if InitSSLInterface and Assigned(_SslWrite) then Result := _SslWrite(ssl, PAnsiChar(buf), num) else Result := -1; end; function SslPending(ssl: PSSL):Integer; begin if InitSSLInterface and Assigned(_SslPending) then Result := _SslPending(ssl) else Result := 0; end; //function SslGetVersion(ssl: PSSL):PChar; function SslGetVersion(ssl: PSSL):AnsiString; begin if InitSSLInterface and Assigned(_SslGetVersion) then Result := _SslGetVersion(ssl) else Result := ''; end; function SslGetPeerCertificate(ssl: PSSL):PX509; begin if InitSSLInterface and Assigned(_SslGetPeerCertificate) then Result := _SslGetPeerCertificate(ssl) else Result := nil; end; //procedure SslCtxSetVerify(ctx: PSSL_CTX; mode: Integer; arg2: SslPtr); procedure SslCtxSetVerify(ctx: PSSL_CTX; mode: Integer; arg2: PFunction); begin if InitSSLInterface and Assigned(_SslCtxSetVerify) then _SslCtxSetVerify(ctx, mode, @arg2); end; function SSLGetCurrentCipher(s: PSSL):SslPtr; begin if InitSSLInterface and Assigned(_SSLGetCurrentCipher) then {$IFDEF CIL} {$ELSE} Result := _SSLGetCurrentCipher(s) {$ENDIF} else Result := nil; end; //function SSLCipherGetName(c: SslPtr):PChar; function SSLCipherGetName(c: SslPtr):AnsiString; begin if InitSSLInterface and Assigned(_SSLCipherGetName) then Result := _SSLCipherGetName(c) else Result := ''; end; //function SSLCipherGetBits(c: SslPtr; alg_bits: PInteger):Integer; function SSLCipherGetBits(c: SslPtr; var alg_bits: Integer):Integer; begin if InitSSLInterface and Assigned(_SSLCipherGetBits) then Result := _SSLCipherGetBits(c, @alg_bits) else Result := 0; end; function SSLGetVerifyResult(ssl: PSSL):Integer; begin if InitSSLInterface and Assigned(_SSLGetVerifyResult) then Result := _SSLGetVerifyResult(ssl) else Result := X509_V_ERR_APPLICATION_VERIFICATION; end; function SSLCtrl(ssl: PSSL; cmd: integer; larg: integer; parg: SslPtr):Integer; begin if InitSSLInterface and Assigned(_SSLCtrl) then Result := _SSLCtrl(ssl, cmd, larg, parg) else Result := X509_V_ERR_APPLICATION_VERIFICATION; end; // libeay.dll function X509New: PX509; begin if InitSSLInterface and Assigned(_X509New) then Result := _X509New else Result := nil; end; procedure X509Free(x: PX509); begin if InitSSLInterface and Assigned(_X509Free) then _X509Free(x); end; //function SslX509NameOneline(a: PX509_NAME; buf: PChar; size: Integer):PChar; function X509NameOneline(a: PX509_NAME; var buf: AnsiString; size: Integer):AnsiString; begin if InitSSLInterface and Assigned(_X509NameOneline) then Result := _X509NameOneline(a, PAnsiChar(buf),size) else Result := ''; end; function X509GetSubjectName(a: PX509):PX509_NAME; begin if InitSSLInterface and Assigned(_X509GetSubjectName) then Result := _X509GetSubjectName(a) else Result := nil; end; function X509GetIssuerName(a: PX509):PX509_NAME; begin if InitSSLInterface and Assigned(_X509GetIssuerName) then Result := _X509GetIssuerName(a) else Result := nil; end; function X509NameHash(x: PX509_NAME):Cardinal; begin if InitSSLInterface and Assigned(_X509NameHash) then Result := _X509NameHash(x) else Result := 0; end; //function SslX509Digest(data: PX509; _type: PEVP_MD; md: PChar; len: PInteger):Integer; function X509Digest(data: PX509; _type: PEVP_MD; md: AnsiString; var len: Integer):Integer; begin if InitSSLInterface and Assigned(_X509Digest) then Result := _X509Digest(data, _type, PAnsiChar(md), @len) else Result := 0; end; function EvpPkeyNew: EVP_PKEY; begin if InitSSLInterface and Assigned(_EvpPkeyNew) then Result := _EvpPkeyNew else Result := nil; end; procedure EvpPkeyFree(pk: EVP_PKEY); begin if InitSSLInterface and Assigned(_EvpPkeyFree) then _EvpPkeyFree(pk); end; function SSLeayversion(t: integer): Ansistring; begin if InitSSLInterface and Assigned(_SSLeayversion) then Result := PAnsiChar(_SSLeayversion(t)) else Result := ''; end; procedure ErrErrorString(e: integer; var buf: Ansistring; len: integer); begin if InitSSLInterface and Assigned(_ErrErrorString) then _ErrErrorString(e, Pointer(buf), len); buf := PAnsiChar(Buf); end; function ErrGetError: integer; begin if InitSSLInterface and Assigned(_ErrGetError) then Result := _ErrGetError else Result := SSL_ERROR_SSL; end; procedure ErrClearError; begin if InitSSLInterface and Assigned(_ErrClearError) then _ErrClearError; end; procedure ErrFreeStrings; begin if InitSSLInterface and Assigned(_ErrFreeStrings) then _ErrFreeStrings; end; procedure ErrRemoveState(pid: integer); begin if InitSSLInterface and Assigned(_ErrRemoveState) then _ErrRemoveState(pid); end; procedure OPENSSLaddallalgorithms; begin if InitSSLInterface and Assigned(_OPENSSLaddallalgorithms) then _OPENSSLaddallalgorithms; end; procedure EVPcleanup; begin if InitSSLInterface and Assigned(_EVPcleanup) then _EVPcleanup; end; procedure CRYPTOcleanupAllExData; begin if InitSSLInterface and Assigned(_CRYPTOcleanupAllExData) then _CRYPTOcleanupAllExData; end; procedure RandScreen; begin if InitSSLInterface and Assigned(_RandScreen) then _RandScreen; end; function BioNew(b: PBIO_METHOD): PBIO; begin if InitSSLInterface and Assigned(_BioNew) then Result := _BioNew(b) else Result := nil; end; procedure BioFreeAll(b: PBIO); begin if InitSSLInterface and Assigned(_BioFreeAll) then _BioFreeAll(b); end; function BioSMem: PBIO_METHOD; begin if InitSSLInterface and Assigned(_BioSMem) then Result := _BioSMem else Result := nil; end; function BioCtrlPending(b: PBIO): integer; begin if InitSSLInterface and Assigned(_BioCtrlPending) then Result := _BioCtrlPending(b) else Result := 0; end; //function BioRead(b: PBIO; Buf: PChar; Len: integer): integer; function BioRead(b: PBIO; var Buf: AnsiString; Len: integer): integer; begin if InitSSLInterface and Assigned(_BioRead) then Result := _BioRead(b, PAnsiChar(Buf), Len) else Result := -2; end; //function BioWrite(b: PBIO; Buf: PChar; Len: integer): integer; function BioWrite(b: PBIO; Buf: AnsiString; Len: integer): integer; begin if InitSSLInterface and Assigned(_BioWrite) then Result := _BioWrite(b, PAnsiChar(Buf), Len) else Result := -2; end; function X509print(b: PBIO; a: PX509): integer; begin if InitSSLInterface and Assigned(_X509print) then Result := _X509print(b, a) else Result := 0; end; function d2iPKCS12bio(b:PBIO; Pkcs12: SslPtr): SslPtr; begin if InitSSLInterface and Assigned(_d2iPKCS12bio) then Result := _d2iPKCS12bio(b, Pkcs12) else Result := nil; end; function PKCS12parse(p12: SslPtr; pass: Ansistring; var pkey, cert, ca: SslPtr): integer; begin if InitSSLInterface and Assigned(_PKCS12parse) then Result := _PKCS12parse(p12, SslPtr(pass), pkey, cert, ca) else Result := 0; end; procedure PKCS12free(p12: SslPtr); begin if InitSSLInterface and Assigned(_PKCS12free) then _PKCS12free(p12); end; function RsaGenerateKey(bits, e: integer; callback: PFunction; cb_arg: SslPtr): PRSA; begin if InitSSLInterface and Assigned(_RsaGenerateKey) then Result := _RsaGenerateKey(bits, e, callback, cb_arg) else Result := nil; end; function EvpPkeyAssign(pkey: EVP_PKEY; _type: integer; key: Prsa): integer; begin if InitSSLInterface and Assigned(_EvpPkeyAssign) then Result := _EvpPkeyAssign(pkey, _type, key) else Result := 0; end; function X509SetVersion(x: PX509; version: integer): integer; begin if InitSSLInterface and Assigned(_X509SetVersion) then Result := _X509SetVersion(x, version) else Result := 0; end; function X509SetPubkey(x: PX509; pkey: EVP_PKEY): integer; begin if InitSSLInterface and Assigned(_X509SetPubkey) then Result := _X509SetPubkey(x, pkey) else Result := 0; end; function X509SetIssuerName(x: PX509; name: PX509_NAME): integer; begin if InitSSLInterface and Assigned(_X509SetIssuerName) then Result := _X509SetIssuerName(x, name) else Result := 0; end; function X509NameAddEntryByTxt(name: PX509_NAME; field: Ansistring; _type: integer; bytes: Ansistring; len, loc, _set: integer): integer; begin if InitSSLInterface and Assigned(_X509NameAddEntryByTxt) then Result := _X509NameAddEntryByTxt(name, PAnsiChar(field), _type, PAnsiChar(Bytes), len, loc, _set) else Result := 0; end; function X509Sign(x: PX509; pkey: EVP_PKEY; const md: PEVP_MD): integer; begin if InitSSLInterface and Assigned(_X509Sign) then Result := _X509Sign(x, pkey, md) else Result := 0; end; function Asn1UtctimeNew: PASN1_UTCTIME; begin if InitSSLInterface and Assigned(_Asn1UtctimeNew) then Result := _Asn1UtctimeNew else Result := nil; end; procedure Asn1UtctimeFree(a: PASN1_UTCTIME); begin if InitSSLInterface and Assigned(_Asn1UtctimeFree) then _Asn1UtctimeFree(a); end; function X509GmtimeAdj(s: PASN1_UTCTIME; adj: integer): PASN1_UTCTIME; begin if InitSSLInterface and Assigned(_X509GmtimeAdj) then Result := _X509GmtimeAdj(s, adj) else Result := nil; end; function X509SetNotBefore(x: PX509; tm: PASN1_UTCTIME): integer; begin if InitSSLInterface and Assigned(_X509SetNotBefore) then Result := _X509SetNotBefore(x, tm) else Result := 0; end; function X509SetNotAfter(x: PX509; tm: PASN1_UTCTIME): integer; begin if InitSSLInterface and Assigned(_X509SetNotAfter) then Result := _X509SetNotAfter(x, tm) else Result := 0; end; function i2dX509bio(b: PBIO; x: PX509): integer; begin if InitSSLInterface and Assigned(_i2dX509bio) then Result := _i2dX509bio(b, x) else Result := 0; end; function d2iX509bio(b: PBIO; x: PX509): PX509; {pf} begin if InitSSLInterface and Assigned(_d2iX509bio) then Result := _d2iX509bio(x,b) else Result := nil; end; function PEMReadBioX509(b:PBIO; {var x:PX509;}x:PSslPtr; callback:PFunction; cb_arg: SslPtr): PX509; {pf} begin if InitSSLInterface and Assigned(_PEMReadBioX509) then Result := _PEMReadBioX509(b,x,callback,cb_arg) else Result := nil; end; procedure SkX509PopFree(st: PSTACK; func:TSkPopFreeFunc); {pf} begin if InitSSLInterface and Assigned(_SkX509PopFree) then _SkX509PopFree(st,func); end; function i2dPrivateKeyBio(b: PBIO; pkey: EVP_PKEY): integer; begin if InitSSLInterface and Assigned(_i2dPrivateKeyBio) then Result := _i2dPrivateKeyBio(b, pkey) else Result := 0; end; function EvpGetDigestByName(Name: AnsiString): PEVP_MD; begin if InitSSLInterface and Assigned(_EvpGetDigestByName) then Result := _EvpGetDigestByName(PAnsiChar(Name)) else Result := nil; end; function Asn1IntegerSet(a: PASN1_INTEGER; v: integer): integer; begin if InitSSLInterface and Assigned(_Asn1IntegerSet) then Result := _Asn1IntegerSet(a, v) else Result := 0; end; function Asn1IntegerGet(a: PASN1_INTEGER): integer; {pf} begin if InitSSLInterface and Assigned(_Asn1IntegerGet) then Result := _Asn1IntegerGet(a) else Result := 0; end; function X509GetSerialNumber(x: PX509): PASN1_INTEGER; begin if InitSSLInterface and Assigned(_X509GetSerialNumber) then Result := _X509GetSerialNumber(x) else Result := nil; end; // 3DES functions procedure DESsetoddparity(Key: des_cblock); begin if InitSSLInterface and Assigned(_DESsetoddparity) then _DESsetoddparity(Key); end; function DESsetkeychecked(key: des_cblock; schedule: des_key_schedule): Integer; begin if InitSSLInterface and Assigned(_DESsetkeychecked) then Result := _DESsetkeychecked(key, schedule) else Result := -1; end; procedure DESecbencrypt(Input: des_cblock; output: des_cblock; ks: des_key_schedule; enc: Integer); begin if InitSSLInterface and Assigned(_DESecbencrypt) then _DESecbencrypt(Input, output, ks, enc); end; procedure locking_callback(mode, ltype: integer; lfile: PChar; line: integer); cdecl; begin if (mode and 1) > 0 then TCriticalSection(Locks[ltype]).Enter else TCriticalSection(Locks[ltype]).Leave; end; procedure InitLocks; var n: integer; max: integer; begin Locks := TList.Create; max := _CRYPTOnumlocks; for n := 1 to max do Locks.Add(TCriticalSection.Create); _CRYPTOsetlockingcallback(@locking_callback); end; procedure FreeLocks; var n: integer; begin _CRYPTOsetlockingcallback(nil); for n := 0 to Locks.Count - 1 do TCriticalSection(Locks[n]).Free; Locks.Free; end; {$ENDIF} function LoadLib(const Value: String): HModule; begin {$IFDEF CIL} Result := LoadLibrary(Value); {$ELSE} Result := LoadLibrary(PChar(Value)); {$ENDIF} end; function GetProcAddr(module: HModule; const ProcName: string): SslPtr; begin {$IFDEF CIL} Result := GetProcAddress(module, ProcName); {$ELSE} Result := GetProcAddress(module, PChar(ProcName)); {$ENDIF} end; function InitSSLInterface: Boolean; var s: string; x: integer; begin {pf} if SSLLoaded then begin Result := TRUE; exit; end; {/pf} SSLCS.Enter; try if not IsSSLloaded then begin {$IFDEF CIL} SSLLibHandle := 1; SSLUtilHandle := 1; {$ELSE} SSLUtilHandle := LoadLib(DLLUtilName); SSLLibHandle := LoadLib(DLLSSLName); {$IFDEF MSWINDOWS} if (SSLLibHandle = 0) then SSLLibHandle := LoadLib(DLLSSLName2); {$ENDIF} {$ENDIF} if (SSLLibHandle <> 0) and (SSLUtilHandle <> 0) then begin {$IFNDEF CIL} _SslGetError := GetProcAddr(SSLLibHandle, 'SSL_get_error'); _SslLibraryInit := GetProcAddr(SSLLibHandle, 'SSL_library_init'); _SslLoadErrorStrings := GetProcAddr(SSLLibHandle, 'SSL_load_error_strings'); _SslCtxSetCipherList := GetProcAddr(SSLLibHandle, 'SSL_CTX_set_cipher_list'); _SslCtxNew := GetProcAddr(SSLLibHandle, 'SSL_CTX_new'); _SslCtxFree := GetProcAddr(SSLLibHandle, 'SSL_CTX_free'); _SslSetFd := GetProcAddr(SSLLibHandle, 'SSL_set_fd'); _SslMethodV2 := GetProcAddr(SSLLibHandle, 'SSLv2_method'); _SslMethodV3 := GetProcAddr(SSLLibHandle, 'SSLv3_method'); _SslMethodTLSV1 := GetProcAddr(SSLLibHandle, 'TLSv1_method'); _SslMethodV23 := GetProcAddr(SSLLibHandle, 'SSLv23_method'); _SslCtxUsePrivateKey := GetProcAddr(SSLLibHandle, 'SSL_CTX_use_PrivateKey'); _SslCtxUsePrivateKeyASN1 := GetProcAddr(SSLLibHandle, 'SSL_CTX_use_PrivateKey_ASN1'); //use SSL_CTX_use_RSAPrivateKey_file instead SSL_CTX_use_PrivateKey_file, //because SSL_CTX_use_PrivateKey_file not support DER format. :-O _SslCtxUsePrivateKeyFile := GetProcAddr(SSLLibHandle, 'SSL_CTX_use_RSAPrivateKey_file'); _SslCtxUseCertificate := GetProcAddr(SSLLibHandle, 'SSL_CTX_use_certificate'); _SslCtxUseCertificateASN1 := GetProcAddr(SSLLibHandle, 'SSL_CTX_use_certificate_ASN1'); _SslCtxUseCertificateFile := GetProcAddr(SSLLibHandle, 'SSL_CTX_use_certificate_file'); _SslCtxUseCertificateChainFile := GetProcAddr(SSLLibHandle, 'SSL_CTX_use_certificate_chain_file'); _SslCtxCheckPrivateKeyFile := GetProcAddr(SSLLibHandle, 'SSL_CTX_check_private_key'); _SslCtxSetDefaultPasswdCb := GetProcAddr(SSLLibHandle, 'SSL_CTX_set_default_passwd_cb'); _SslCtxSetDefaultPasswdCbUserdata := GetProcAddr(SSLLibHandle, 'SSL_CTX_set_default_passwd_cb_userdata'); _SslCtxLoadVerifyLocations := GetProcAddr(SSLLibHandle, 'SSL_CTX_load_verify_locations'); _SslCtxCtrl := GetProcAddr(SSLLibHandle, 'SSL_CTX_ctrl'); _SslNew := GetProcAddr(SSLLibHandle, 'SSL_new'); _SslFree := GetProcAddr(SSLLibHandle, 'SSL_free'); _SslAccept := GetProcAddr(SSLLibHandle, 'SSL_accept'); _SslConnect := GetProcAddr(SSLLibHandle, 'SSL_connect'); _SslShutdown := GetProcAddr(SSLLibHandle, 'SSL_shutdown'); _SslRead := GetProcAddr(SSLLibHandle, 'SSL_read'); _SslPeek := GetProcAddr(SSLLibHandle, 'SSL_peek'); _SslWrite := GetProcAddr(SSLLibHandle, 'SSL_write'); _SslPending := GetProcAddr(SSLLibHandle, 'SSL_pending'); _SslGetPeerCertificate := GetProcAddr(SSLLibHandle, 'SSL_get_peer_certificate'); _SslGetVersion := GetProcAddr(SSLLibHandle, 'SSL_get_version'); _SslCtxSetVerify := GetProcAddr(SSLLibHandle, 'SSL_CTX_set_verify'); _SslGetCurrentCipher := GetProcAddr(SSLLibHandle, 'SSL_get_current_cipher'); _SslCipherGetName := GetProcAddr(SSLLibHandle, 'SSL_CIPHER_get_name'); _SslCipherGetBits := GetProcAddr(SSLLibHandle, 'SSL_CIPHER_get_bits'); _SslGetVerifyResult := GetProcAddr(SSLLibHandle, 'SSL_get_verify_result'); _SslCtrl := GetProcAddr(SSLLibHandle, 'SSL_ctrl'); _X509New := GetProcAddr(SSLUtilHandle, 'X509_new'); _X509Free := GetProcAddr(SSLUtilHandle, 'X509_free'); _X509NameOneline := GetProcAddr(SSLUtilHandle, 'X509_NAME_oneline'); _X509GetSubjectName := GetProcAddr(SSLUtilHandle, 'X509_get_subject_name'); _X509GetIssuerName := GetProcAddr(SSLUtilHandle, 'X509_get_issuer_name'); _X509NameHash := GetProcAddr(SSLUtilHandle, 'X509_NAME_hash'); _X509Digest := GetProcAddr(SSLUtilHandle, 'X509_digest'); _X509print := GetProcAddr(SSLUtilHandle, 'X509_print'); _X509SetVersion := GetProcAddr(SSLUtilHandle, 'X509_set_version'); _X509SetPubkey := GetProcAddr(SSLUtilHandle, 'X509_set_pubkey'); _X509SetIssuerName := GetProcAddr(SSLUtilHandle, 'X509_set_issuer_name'); _X509NameAddEntryByTxt := GetProcAddr(SSLUtilHandle, 'X509_NAME_add_entry_by_txt'); _X509Sign := GetProcAddr(SSLUtilHandle, 'X509_sign'); _X509GmtimeAdj := GetProcAddr(SSLUtilHandle, 'X509_gmtime_adj'); _X509SetNotBefore := GetProcAddr(SSLUtilHandle, 'X509_set_notBefore'); _X509SetNotAfter := GetProcAddr(SSLUtilHandle, 'X509_set_notAfter'); _X509GetSerialNumber := GetProcAddr(SSLUtilHandle, 'X509_get_serialNumber'); _EvpPkeyNew := GetProcAddr(SSLUtilHandle, 'EVP_PKEY_new'); _EvpPkeyFree := GetProcAddr(SSLUtilHandle, 'EVP_PKEY_free'); _EvpPkeyAssign := GetProcAddr(SSLUtilHandle, 'EVP_PKEY_assign'); _EVPCleanup := GetProcAddr(SSLUtilHandle, 'EVP_cleanup'); _EvpGetDigestByName := GetProcAddr(SSLUtilHandle, 'EVP_get_digestbyname'); _SSLeayversion := GetProcAddr(SSLUtilHandle, 'SSLeay_version'); _ErrErrorString := GetProcAddr(SSLUtilHandle, 'ERR_error_string_n'); _ErrGetError := GetProcAddr(SSLUtilHandle, 'ERR_get_error'); _ErrClearError := GetProcAddr(SSLUtilHandle, 'ERR_clear_error'); _ErrFreeStrings := GetProcAddr(SSLUtilHandle, 'ERR_free_strings'); _ErrRemoveState := GetProcAddr(SSLUtilHandle, 'ERR_remove_state'); _OPENSSLaddallalgorithms := GetProcAddr(SSLUtilHandle, 'OPENSSL_add_all_algorithms_noconf'); _CRYPTOcleanupAllExData := GetProcAddr(SSLUtilHandle, 'CRYPTO_cleanup_all_ex_data'); _RandScreen := GetProcAddr(SSLUtilHandle, 'RAND_screen'); _BioNew := GetProcAddr(SSLUtilHandle, 'BIO_new'); _BioFreeAll := GetProcAddr(SSLUtilHandle, 'BIO_free_all'); _BioSMem := GetProcAddr(SSLUtilHandle, 'BIO_s_mem'); _BioCtrlPending := GetProcAddr(SSLUtilHandle, 'BIO_ctrl_pending'); _BioRead := GetProcAddr(SSLUtilHandle, 'BIO_read'); _BioWrite := GetProcAddr(SSLUtilHandle, 'BIO_write'); _d2iPKCS12bio := GetProcAddr(SSLUtilHandle, 'd2i_PKCS12_bio'); _PKCS12parse := GetProcAddr(SSLUtilHandle, 'PKCS12_parse'); _PKCS12free := GetProcAddr(SSLUtilHandle, 'PKCS12_free'); _RsaGenerateKey := GetProcAddr(SSLUtilHandle, 'RSA_generate_key'); _Asn1UtctimeNew := GetProcAddr(SSLUtilHandle, 'ASN1_UTCTIME_new'); _Asn1UtctimeFree := GetProcAddr(SSLUtilHandle, 'ASN1_UTCTIME_free'); _Asn1IntegerSet := GetProcAddr(SSLUtilHandle, 'ASN1_INTEGER_set'); _Asn1IntegerGet := GetProcAddr(SSLUtilHandle, 'ASN1_INTEGER_get'); {pf} _i2dX509bio := GetProcAddr(SSLUtilHandle, 'i2d_X509_bio'); _d2iX509bio := GetProcAddr(SSLUtilHandle, 'd2i_X509_bio'); {pf} _PEMReadBioX509 := GetProcAddr(SSLUtilHandle, 'PEM_read_bio_X509'); {pf} _SkX509PopFree := GetProcAddr(SSLUtilHandle, 'SK_X509_POP_FREE'); {pf} _i2dPrivateKeyBio := GetProcAddr(SSLUtilHandle, 'i2d_PrivateKey_bio'); // 3DES functions _DESsetoddparity := GetProcAddr(SSLUtilHandle, 'DES_set_odd_parity'); _DESsetkeychecked := GetProcAddr(SSLUtilHandle, 'DES_set_key_checked'); _DESecbencrypt := GetProcAddr(SSLUtilHandle, 'DES_ecb_encrypt'); // _CRYPTOnumlocks := GetProcAddr(SSLUtilHandle, 'CRYPTO_num_locks'); _CRYPTOsetlockingcallback := GetProcAddr(SSLUtilHandle, 'CRYPTO_set_locking_callback'); {$ENDIF} {$IFDEF CIL} SslLibraryInit; SslLoadErrorStrings; OPENSSLaddallalgorithms; RandScreen; {$ELSE} SetLength(s, 1024); x := GetModuleFilename(SSLLibHandle,PChar(s),Length(s)); SetLength(s, x); SSLLibFile := s; SetLength(s, 1024); x := GetModuleFilename(SSLUtilHandle,PChar(s),Length(s)); SetLength(s, x); SSLUtilFile := s; //init library if assigned(_SslLibraryInit) then _SslLibraryInit; if assigned(_SslLoadErrorStrings) then _SslLoadErrorStrings; if assigned(_OPENSSLaddallalgorithms) then _OPENSSLaddallalgorithms; if assigned(_RandScreen) then _RandScreen; if assigned(_CRYPTOnumlocks) and assigned(_CRYPTOsetlockingcallback) then InitLocks; {$ENDIF} SSLloaded := True; {$IFDEF OS2} Result := InitEMXHandles; {$ELSE OS2} Result := True; {$ENDIF OS2} end else begin //load failed! if SSLLibHandle <> 0 then begin {$IFNDEF CIL} FreeLibrary(SSLLibHandle); {$ENDIF} SSLLibHandle := 0; end; if SSLUtilHandle <> 0 then begin {$IFNDEF CIL} FreeLibrary(SSLUtilHandle); {$ENDIF} SSLLibHandle := 0; end; Result := False; end; end else //loaded before... Result := true; finally SSLCS.Leave; end; end; function DestroySSLInterface: Boolean; begin SSLCS.Enter; try if IsSSLLoaded then begin //deinit library {$IFNDEF CIL} if assigned(_CRYPTOnumlocks) and assigned(_CRYPTOsetlockingcallback) then FreeLocks; {$ENDIF} EVPCleanup; CRYPTOcleanupAllExData; ErrRemoveState(0); end; SSLloaded := false; if SSLLibHandle <> 0 then begin {$IFNDEF CIL} FreeLibrary(SSLLibHandle); {$ENDIF} SSLLibHandle := 0; end; if SSLUtilHandle <> 0 then begin {$IFNDEF CIL} FreeLibrary(SSLUtilHandle); {$ENDIF} SSLLibHandle := 0; end; {$IFNDEF CIL} _SslGetError := nil; _SslLibraryInit := nil; _SslLoadErrorStrings := nil; _SslCtxSetCipherList := nil; _SslCtxNew := nil; _SslCtxFree := nil; _SslSetFd := nil; _SslMethodV2 := nil; _SslMethodV3 := nil; _SslMethodTLSV1 := nil; _SslMethodV23 := nil; _SslCtxUsePrivateKey := nil; _SslCtxUsePrivateKeyASN1 := nil; _SslCtxUsePrivateKeyFile := nil; _SslCtxUseCertificate := nil; _SslCtxUseCertificateASN1 := nil; _SslCtxUseCertificateFile := nil; _SslCtxUseCertificateChainFile := nil; _SslCtxCheckPrivateKeyFile := nil; _SslCtxSetDefaultPasswdCb := nil; _SslCtxSetDefaultPasswdCbUserdata := nil; _SslCtxLoadVerifyLocations := nil; _SslCtxCtrl := nil; _SslNew := nil; _SslFree := nil; _SslAccept := nil; _SslConnect := nil; _SslShutdown := nil; _SslRead := nil; _SslPeek := nil; _SslWrite := nil; _SslPending := nil; _SslGetPeerCertificate := nil; _SslGetVersion := nil; _SslCtxSetVerify := nil; _SslGetCurrentCipher := nil; _SslCipherGetName := nil; _SslCipherGetBits := nil; _SslGetVerifyResult := nil; _SslCtrl := nil; _X509New := nil; _X509Free := nil; _X509NameOneline := nil; _X509GetSubjectName := nil; _X509GetIssuerName := nil; _X509NameHash := nil; _X509Digest := nil; _X509print := nil; _X509SetVersion := nil; _X509SetPubkey := nil; _X509SetIssuerName := nil; _X509NameAddEntryByTxt := nil; _X509Sign := nil; _X509GmtimeAdj := nil; _X509SetNotBefore := nil; _X509SetNotAfter := nil; _X509GetSerialNumber := nil; _EvpPkeyNew := nil; _EvpPkeyFree := nil; _EvpPkeyAssign := nil; _EVPCleanup := nil; _EvpGetDigestByName := nil; _SSLeayversion := nil; _ErrErrorString := nil; _ErrGetError := nil; _ErrClearError := nil; _ErrFreeStrings := nil; _ErrRemoveState := nil; _OPENSSLaddallalgorithms := nil; _CRYPTOcleanupAllExData := nil; _RandScreen := nil; _BioNew := nil; _BioFreeAll := nil; _BioSMem := nil; _BioCtrlPending := nil; _BioRead := nil; _BioWrite := nil; _d2iPKCS12bio := nil; _PKCS12parse := nil; _PKCS12free := nil; _RsaGenerateKey := nil; _Asn1UtctimeNew := nil; _Asn1UtctimeFree := nil; _Asn1IntegerSet := nil; _Asn1IntegerGet := nil; {pf} _SkX509PopFree := nil; {pf} _i2dX509bio := nil; _i2dPrivateKeyBio := nil; // 3DES functions _DESsetoddparity := nil; _DESsetkeychecked := nil; _DESecbencrypt := nil; // _CRYPTOnumlocks := nil; _CRYPTOsetlockingcallback := nil; {$ENDIF} finally SSLCS.Leave; end; Result := True; end; function IsSSLloaded: Boolean; begin Result := SSLLoaded; end; initialization begin SSLCS:= TCriticalSection.Create; end; finalization begin {$IFNDEF CIL} DestroySSLInterface; {$ENDIF} SSLCS.Free; end; end. ./svg-logo-v.png0000644000175000017500000000742214576573022013663 0ustar anthonyanthonyPNG  IHDRGGUZ cHRMz&u0`:pQ<gAMA|QsRGBbKGD pHYs+iIDATx\ TUUBDTJRJR"dYjR8)CCV#E(+1$Mt+l@G L>P 9 B<-of>瞋r=w}r_#}5X$jKԘhBgQq#Q1qDC&QA ")"/N7;MzZ|Ιx{{'F  a0m 1f*6O{s'{K9WڗÊY`[Zab}ΓD=rY\Fm==a`c8s Lj~En{:u49gaGԃ, J {C?þre.{5n=Nud+Hԟyc.Eq'qYI X[)N!{x4SR٬_ku$ctR9MDj*d#Y*j[(@_"4PsjK> ,('d•F19ƗӸT(d=*4ouPk^N?F%qOjxLU]Cg-$s#ZלmS "j{ϕf4(se;H+MY-0É:c,+җ;'%0`ZUQ*1}X0OLhAގ={YrAW[acx1σd8rG𦑀BMZ#}HꚽGiUhJAK(ߞׂk>T܁w,ʿ'SxiþzV1d1!^fuDejH-؜''AV8 U _Dk" 묃z#Z<C}[AVo%HN=JT ) iS^㏸N#^O bp#eWåk <8%MVIb9]Ch~FFFpr.BwCZ oӏ߇kŒrOԝ巢+v>OBk Hl"fm3XJK|'gWzl`jᛯÖO>ß'o=|{r?J:-\_łׯ. 7Ck)υMc1ђnfYQ=(nz!K^Fށ/ƃ(rl9k.3g`=x{{ѣGuc9`ڴi`Pn~+pOv,ff%Wh>Anifm`h%Aaad*Q<{1R;HN7f쓂cIxF6P< Б#RFwnQk`H)"ϸ=.x3dט2k-%`b,YUsK{WEW8,tqqCþ0_{\Ϳe\8.Xb)q]ILL]_kK'mP{ JISYYI;ʭЅbii ۢ> 3c0J`?6jLWK"Pר#eOlr0-"@׀ pvqqGiEڕ_ Z`)&L S>f qm˸!@?ߪgo릖6&3G'ࠠߊ,)iO-%fffJq|rl08G5Уhu6PsNU.ZK-]Vj 7W `hȠqD\X=4 ͝;My9/pzHII\~Z*)V?g`;p$8wx|Xxb3cǯ/z1lA`0EiiQ +;OqޣࠗsO^ B>/ 777փ)?h ΝjmX+p\xxwMϻ_G^ .f2ueҤIN\<ӵt)?;1PAI%jiEZXR[n؟erJќr |.7z#T׷|̙1cL>]p-== ausH Bf0/'I-BLMM:Ȉ!bD,;h촕'j - eP5n(7vMĀubp4`v$f+.9g5JVZX:91TVcY*X>s @!(\hLL$^&'(Ǜd] 3Ԏ.{ )ƍPY ,,`k4N~zظqAnUI۷oƩKiP63p Bl]"ŇIXoRbAZ@WNU392!;7)%K]XrrfG&gϞ-j V겎Yٲ'󾾾ZXatr8t7EǮe5H?~\q ̛7ϒov0qD(̚5K.'Gjjjc`w%!!R-b2~|M&TPP\UT;hyp̺6/ ΥJ"!bѧHo z.._V)`9sā.t̏1F;r6IENDB`./logcont.lfm0000644000175000017500000057311214576573021013325 0ustar anthonyanthonyobject FormLogCont: TFormLogCont Left = 2318 Height = 651 Top = 120 Width = 1000 ActiveControl = PairSplitter1 Caption = 'Log Continuously' ClientHeight = 651 ClientWidth = 1000 Constraints.MinHeight = 515 Constraints.MinWidth = 1000 KeyPreview = True OnClose = FormClose OnCreate = FormCreate OnKeyUp = FormKeyUp OnResize = FormResize OnShow = FormShow Position = poScreenCenter ShowInTaskBar = stAlways LCLVersion = '3.2.0.0' object PairSplitter1: TPairSplitter AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Cursor = crVSplit Left = 0 Height = 651 Top = 0 Width = 1000 Anchors = [akTop, akLeft, akRight, akBottom] ParentShowHint = False Position = 279 SplitterType = pstVertical object PairSplitterTop: TPairSplitterSide Cursor = crArrow Left = 0 Height = 279 Top = 0 Width = 1000 ClientWidth = 1000 ClientHeight = 279 Constraints.MinHeight = 277 OnResize = PairSplitterTopResize object PageControl1: TPageControl AnchorSideLeft.Control = PairSplitterTop AnchorSideTop.Control = PairSplitterTop AnchorSideRight.Control = PairSplitterTop AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = PairSplitterTop AnchorSideBottom.Side = asrBottom Left = 2 Height = 277 Top = 2 Width = 996 ActivePage = TransferFileTabSheet Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 2 BorderSpacing.Top = 2 BorderSpacing.Right = 2 TabIndex = 4 TabOrder = 0 object TriggerSheet: TTabSheet Caption = 'Trigger' ClientHeight = 244 ClientWidth = 986 object FrequencyGroup: TGroupBox AnchorSideLeft.Control = TriggerSheet AnchorSideTop.Control = TriggerSheet AnchorSideBottom.Control = TriggerSheet AnchorSideBottom.Side = asrBottom Left = 2 Height = 242 Top = 2 Width = 234 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Left = 2 BorderSpacing.Top = 2 Caption = 'Frequency:' ClientHeight = 222 ClientWidth = 232 ParentColor = False TabOrder = 0 object RadioButton1: TRadioButton AnchorSideLeft.Control = FrequencyGroup AnchorSideTop.Control = LCTrigSecondsSpin AnchorSideTop.Side = asrCenter Left = 0 Height = 23 Top = 10 Width = 61 Caption = 'Every' Checked = True TabOrder = 0 TabStop = True OnClick = RadioButton1Click end object LCTrigSecondsSpin: TSpinEdit AnchorSideLeft.Control = RadioButton1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = FrequencyGroup Left = 65 Height = 36 Hint = 'Press Enter when done.' Top = 3 Width = 58 Alignment = taCenter BorderSpacing.Left = 4 BorderSpacing.Top = 3 MaxValue = 255 MinValue = 1 OnChange = LCTrigSecondsSpinChange TabOrder = 1 Value = 1 end object SecondsLabel: TLabel AnchorSideLeft.Control = LCTrigSecondsSpin AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = LCTrigSecondsSpin AnchorSideTop.Side = asrCenter Left = 126 Height = 19 Top = 12 Width = 50 BorderSpacing.Left = 3 Caption = 'seconds' ParentColor = False end object LCTrigMinutesSpin: TSpinEdit AnchorSideLeft.Control = RadioButton2 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = LCTrigSecondsSpin AnchorSideTop.Side = asrBottom Left = 65 Height = 36 Hint = 'Press Enter when done.' Top = 46 Width = 58 Alignment = taCenter BorderSpacing.Left = 4 BorderSpacing.Top = 7 MaxValue = 255 MinValue = 1 OnChange = LCTrigMinutesSpinChange TabOrder = 2 Value = 1 end object MinutesLabel: TLabel AnchorSideLeft.Control = LCTrigMinutesSpin AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = LCTrigMinutesSpin AnchorSideTop.Side = asrCenter Left = 126 Height = 19 Top = 55 Width = 50 BorderSpacing.Left = 3 Caption = 'minutes' ParentColor = False end object RadioButton2: TRadioButton AnchorSideLeft.Control = RadioButton1 AnchorSideTop.Control = LCTrigMinutesSpin AnchorSideTop.Side = asrCenter Left = 0 Height = 23 Top = 53 Width = 61 Caption = 'Every' TabOrder = 3 OnClick = RadioButton1Click end object RadioButton3: TRadioButton AnchorSideLeft.Control = RadioButton1 AnchorSideTop.Control = LCTrigMinutesSpin AnchorSideTop.Side = asrBottom Left = 0 Height = 23 Top = 84 Width = 209 BorderSpacing.Top = 2 Caption = 'Every 1 minute on the minute' TabOrder = 4 OnClick = RadioButton1Click end object RadioButton4: TRadioButton AnchorSideLeft.Control = RadioButton1 AnchorSideTop.Control = RadioButton3 AnchorSideTop.Side = asrBottom Left = 0 Height = 23 Top = 107 Width = 203 Caption = 'Every 5 min on the 1/12th hr' TabOrder = 5 OnClick = RadioButton1Click end object RadioButton5: TRadioButton AnchorSideLeft.Control = RadioButton1 AnchorSideTop.Control = RadioButton4 AnchorSideTop.Side = asrBottom Left = 0 Height = 23 Top = 130 Width = 203 Caption = 'Every 10 min on the 1/6th hr' TabOrder = 6 OnClick = RadioButton1Click end object RadioButton6: TRadioButton AnchorSideLeft.Control = RadioButton1 AnchorSideTop.Control = RadioButton5 AnchorSideTop.Side = asrBottom Left = 0 Height = 23 Top = 153 Width = 190 Caption = 'Every 15 min on the 1/4 hr' TabOrder = 7 OnClick = RadioButton1Click end object RadioButton7: TRadioButton AnchorSideLeft.Control = RadioButton1 AnchorSideTop.Control = RadioButton6 AnchorSideTop.Side = asrBottom Left = 0 Height = 23 Top = 176 Width = 193 Caption = 'Every 30 min on the 1/2 hr' TabOrder = 8 OnClick = RadioButton1Click end object RadioButton8: TRadioButton AnchorSideLeft.Control = RadioButton1 AnchorSideTop.Control = RadioButton7 AnchorSideTop.Side = asrBottom Left = 0 Height = 23 Top = 199 Width = 170 Caption = 'Every hour on the hour' TabOrder = 9 OnClick = RadioButton1Click end end object StartStopGroup: TGroupBox AnchorSideLeft.Control = FrequencyGroup AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = TriggerSheet AnchorSideRight.Control = TriggerSheet AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = TriggerSheet AnchorSideBottom.Side = asrBottom Left = 560 Height = 240 Top = 2 Width = 426 Anchors = [akTop, akRight, akBottom] BorderSpacing.Left = 2 BorderSpacing.Top = 2 BorderSpacing.Bottom = 2 ClientHeight = 238 ClientWidth = 424 TabOrder = 1 Visible = False object checkNowStart: TCheckBox AnchorSideTop.Control = StartLabel AnchorSideTop.Side = asrBottom AnchorSideRight.Control = StartLabel AnchorSideRight.Side = asrBottom Left = 132 Height = 23 Top = 19 Width = 23 Anchors = [akTop, akRight] TabOrder = 0 OnClick = checkNowStartClick end object StartLabel: TLabel AnchorSideTop.Control = StartStopGroup Left = 122 Height = 19 Top = 0 Width = 33 Anchors = [akTop] Caption = 'Start ' ParentColor = False ParentFont = False end object StopLabel: TLabel AnchorSideTop.Control = StartStopGroup Left = 142 Height = 19 Top = 0 Width = 31 Anchors = [akTop] Caption = ' Stop' ParentColor = False end object checkSRStart: TCheckBox AnchorSideRight.Control = StartLabel AnchorSideRight.Side = asrBottom Left = 132 Height = 23 Top = 280 Width = 23 Anchors = [akRight] TabOrder = 1 OnClick = checkMTAStartClick end object checkMTAStart: TCheckBox AnchorSideTop.Control = checkNowStart AnchorSideTop.Side = asrBottom AnchorSideRight.Control = StartLabel AnchorSideRight.Side = asrBottom Left = 132 Height = 23 Top = 42 Width = 23 Anchors = [akTop, akRight] ParentBidiMode = False TabOrder = 2 OnClick = checkMTAStartClick end object Label3: TLabel AnchorSideTop.Control = checkNowStart AnchorSideRight.Control = checkNowStart Left = 104 Height = 19 Top = 19 Width = 28 Anchors = [akTop, akRight] Caption = 'Now' ParentColor = False ParentFont = False end object Label5: TLabel Left = 96 Height = 19 Top = 282 Width = 46 Anchors = [] Caption = 'Sunrise' ParentColor = False ParentFont = False end object Label6: TLabel AnchorSideTop.Control = checkMTAStart AnchorSideRight.Control = checkMTAStart Left = -52 Height = 19 Top = 42 Width = 184 Anchors = [akTop, akRight] Caption = 'Astronomical morning twilight' ParentColor = False ParentFont = False end object Label7: TLabel AnchorSideTop.Control = checkMTNStart AnchorSideRight.Control = checkMTNStart Left = -21 Height = 19 Top = 65 Width = 153 Anchors = [akTop, akRight] Caption = 'Nautical morning twilight' ParentColor = False ParentFont = False end object Label8: TLabel Left = 26 Height = 19 Top = 233 Width = 128 Anchors = [] Caption = 'Civil morning twilight' ParentColor = False ParentFont = False end object checkMTNStart: TCheckBox AnchorSideTop.Control = checkMTAStart AnchorSideTop.Side = asrBottom AnchorSideRight.Control = StartLabel AnchorSideRight.Side = asrBottom Left = 132 Height = 23 Top = 65 Width = 23 Anchors = [akTop, akRight] ParentBidiMode = False TabOrder = 3 OnClick = checkMTAStartClick end object checkMTCStart: TCheckBox AnchorSideRight.Control = StartLabel AnchorSideRight.Side = asrBottom Left = 132 Height = 23 Top = 235 Width = 23 Anchors = [akRight] ParentBidiMode = False TabOrder = 4 OnClick = checkMTAStartClick end object checkETCStart: TCheckBox AnchorSideRight.Control = StartLabel AnchorSideRight.Side = asrBottom Left = 132 Height = 23 Top = 403 Width = 23 Anchors = [akRight] ParentBidiMode = False TabOrder = 5 OnClick = checkMTAStartClick end object checkETNStart: TCheckBox AnchorSideRight.Control = StartLabel AnchorSideRight.Side = asrBottom Left = 132 Height = 23 Top = 464 Width = 23 Anchors = [akRight] ParentBidiMode = False TabOrder = 6 OnClick = checkMTAStartClick end object checkETAStart: TCheckBox AnchorSideRight.Control = StartLabel AnchorSideRight.Side = asrBottom Left = 132 Height = 23 Top = 544 Width = 23 Anchors = [akRight] ParentBidiMode = False TabOrder = 7 OnClick = checkMTAStartClick end object checkSSStart: TCheckBox AnchorSideRight.Control = StartLabel AnchorSideRight.Side = asrBottom Left = 132 Height = 23 Top = 330 Width = 23 Anchors = [akRight] ParentBidiMode = False TabOrder = 8 OnClick = checkMTAStartClick end object Label9: TLabel Left = 29 Height = 19 Top = 405 Width = 124 Anchors = [] Caption = 'Civil evening twilight' ParentColor = False end object Label10: TLabel Left = 8 Height = 19 Top = 466 Width = 149 Anchors = [] Caption = 'Nautical evening twilight' ParentColor = False end object Label11: TLabel Left = -10 Height = 19 Top = 546 Width = 180 Anchors = [] Caption = 'Astronomical evening twilight' ParentColor = False end object Label12: TLabel Left = 99 Height = 19 Top = 332 Width = 42 Anchors = [] Caption = 'Sunset' ParentColor = False end object Label13: TLabel Left = 152 Height = 19 Top = 592 Width = 38 Anchors = [] Caption = 'Never' ParentColor = False end object checkNeverStop: TCheckBox AnchorSideLeft.Control = StopLabel Left = 142 Height = 23 Top = 590 Width = 23 Anchors = [akLeft] TabOrder = 9 OnClick = checkNeverStopClick end object checkSRStop: TCheckBox AnchorSideLeft.Control = StopLabel Left = 142 Height = 23 Top = 280 Width = 23 Anchors = [akLeft] TabOrder = 10 OnClick = checkMTAStopClick end object checkMTAStop: TCheckBox AnchorSideLeft.Control = StopLabel AnchorSideTop.Control = checkMTAStart AnchorSideRight.Side = asrBottom Left = 142 Height = 23 Top = 42 Width = 23 ParentBidiMode = False TabOrder = 11 OnClick = checkMTAStopClick end object checkMTNStop: TCheckBox AnchorSideLeft.Control = StopLabel AnchorSideRight.Control = checkSRStop AnchorSideRight.Side = asrBottom Left = 142 Height = 23 Top = 147 Width = 23 Anchors = [akLeft] ParentBidiMode = False TabOrder = 12 OnClick = checkMTAStopClick end object checkMTCStop: TCheckBox AnchorSideLeft.Control = StopLabel AnchorSideRight.Control = checkSRStop AnchorSideRight.Side = asrBottom Left = 142 Height = 23 Top = 235 Width = 23 Anchors = [akLeft] ParentBidiMode = False TabOrder = 13 OnClick = checkMTAStopClick end object checkETCStop: TCheckBox AnchorSideLeft.Control = StopLabel AnchorSideRight.Control = checkSRStop AnchorSideRight.Side = asrBottom Left = 142 Height = 23 Top = 403 Width = 23 Anchors = [akLeft] ParentBidiMode = False TabOrder = 14 OnClick = checkMTAStopClick end object checkETNStop: TCheckBox AnchorSideLeft.Control = StopLabel AnchorSideRight.Control = checkSRStop AnchorSideRight.Side = asrBottom Left = 142 Height = 23 Top = 464 Width = 23 Anchors = [akLeft] ParentBidiMode = False TabOrder = 15 OnClick = checkMTAStopClick end object checkETAStop: TCheckBox AnchorSideLeft.Control = StopLabel AnchorSideRight.Control = checkSRStop AnchorSideRight.Side = asrBottom Left = 142 Height = 23 Top = 544 Width = 23 Anchors = [akLeft] ParentBidiMode = False TabOrder = 16 OnClick = checkMTAStopClick end object checkSSStop: TCheckBox AnchorSideLeft.Control = StopLabel AnchorSideRight.Control = checkSRStop AnchorSideRight.Side = asrBottom Left = 142 Height = 23 Top = 330 Width = 23 Anchors = [akLeft] ParentBidiMode = False TabOrder = 17 OnClick = checkMTAStopClick end object TimeSR: TLabel Left = 150 Height = 19 Top = 282 Width = 56 Anchors = [] Caption = 'datetime' ParentColor = False end object TimeMTA: TLabel AnchorSideLeft.Control = checkMTAStop AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = checkMTAStop Left = 150 Height = 19 Top = 42 Width = 56 Anchors = [akTop] Caption = 'datetime' ParentColor = False end object TimeMTN: TLabel Left = 149 Height = 19 Top = 142 Width = 56 Anchors = [] Caption = 'datetime' ParentColor = False end object TimeMTC: TLabel Left = 150 Height = 19 Top = 237 Width = 56 Anchors = [] Caption = 'datetime' ParentColor = False end object TimeETC: TLabel Left = 149 Height = 19 Top = 405 Width = 56 Anchors = [] Caption = 'datetime' ParentColor = False end object TimeETN: TLabel Left = 149 Height = 19 Top = 466 Width = 56 Anchors = [] Caption = 'datetime' ParentColor = False end object TimeETA: TLabel Left = 149 Height = 19 Top = 546 Width = 56 Anchors = [] Caption = 'datetime' ParentColor = False end object TimeSS: TLabel Left = 149 Height = 19 Top = 332 Width = 56 Anchors = [] Caption = 'datetime' ParentColor = False end object LocationGroupBox: TGroupBox Left = 204 Height = 62 Top = 91 Width = 245 Anchors = [] AutoSize = True Caption = 'Location' ClientHeight = 42 ClientWidth = 243 TabOrder = 18 object SetLocationButton: TBitBtn AnchorSideLeft.Control = LongitudeText AnchorSideLeft.Side = asrBottom AnchorSideBottom.Control = LongitudeText AnchorSideBottom.Side = asrBottom Left = 168 Height = 30 Top = 12 Width = 75 Anchors = [akLeft, akBottom] BorderSpacing.Left = 2 Caption = 'Set' OnClick = SetLocationButtonClick TabOrder = 0 end object LatitudeText: TStaticText AnchorSideLeft.Control = LocationGroupBox AnchorSideTop.Control = LatitudeLabel AnchorSideTop.Side = asrBottom Left = 4 Height = 21 Top = 21 Width = 80 BorderSpacing.Left = 4 BorderStyle = sbsSingle TabOrder = 1 end object LatitudeLabel: TLabel AnchorSideLeft.Control = LatitudeText AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = LocationGroupBox Left = 19 Height = 19 Top = 2 Width = 51 BorderSpacing.Top = 2 Caption = 'Latitude' ParentColor = False end object LongitudeLabel: TLabel AnchorSideLeft.Control = LongitudeText AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = LatitudeLabel Left = 95 Height = 19 Top = 2 Width = 63 Caption = 'Longitude' ParentColor = False end object LongitudeText: TStaticText AnchorSideLeft.Control = LatitudeText AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = LatitudeLabel AnchorSideTop.Side = asrBottom Left = 86 Height = 21 Top = 21 Width = 80 BorderSpacing.Left = 2 BorderStyle = sbsSingle TabOrder = 2 end end object StartStopMemo: TMemo AnchorSideRight.Control = StartStopGroup AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = StartStopGroup AnchorSideBottom.Side = asrBottom Left = 162 Height = 125 Top = 113 Width = 262 Anchors = [akRight, akBottom] ScrollBars = ssAutoVertical TabOrder = 19 end end object OptionsGroup: TCheckGroup AnchorSideLeft.Control = FrequencyGroup AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = FrequencyGroup AnchorSideRight.Control = StartStopGroup Left = 240 Height = 124 Top = 2 Width = 158 Anchors = [akTop, akLeft, akRight] AutoFill = True AutoSize = True BorderSpacing.Left = 4 Caption = 'Options:' ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 104 ClientWidth = 156 Constraints.MaxWidth = 158 Items.Strings = ( 'Moon data' 'Freshness' 'GoTo accessory' 'Raw frequency' ) OnItemClick = OptionsGroupItemClick TabOrder = 2 Data = { 0400000002020202 } end object LimitGroup: TGroupBox AnchorSideLeft.Control = OptionsGroup AnchorSideTop.Control = OptionsGroup AnchorSideTop.Side = asrBottom AnchorSideRight.Control = OptionsGroup AnchorSideRight.Side = asrBottom Left = 240 Height = 60 Top = 126 Width = 158 Anchors = [akTop, akLeft, akRight] AutoSize = True Caption = 'Limit:' ClientHeight = 40 ClientWidth = 156 TabOrder = 3 object RecordLimitSpin: TSpinEdit AnchorSideLeft.Control = LimitGroup AnchorSideTop.Control = LimitGroup Left = 2 Height = 36 Hint = 'Set to 0 for unlimited recordings.' Top = 2 Width = 70 Alignment = taCenter BorderSpacing.Around = 2 MaxValue = 1000 OnChange = RecordLimitSpinChange ParentShowHint = False ShowHint = True TabOrder = 0 end object Label2: TLabel AnchorSideLeft.Control = RecordLimitSpin AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = RecordLimitSpin AnchorSideTop.Side = asrCenter Left = 74 Height = 19 Top = 11 Width = 46 Caption = 'records' ParentColor = False end end object SplitGroup: TGroupBox Left = 400 Height = 102 Top = 2 Width = 144 Caption = 'Split (local time):' ClientHeight = 82 ClientWidth = 142 TabOrder = 4 object SingleDatCheckBox: TCheckBox AnchorSideLeft.Control = SplitGroup AnchorSideTop.Control = SplitGroup Left = 4 Height = 23 Hint = 'Prevent .dat record file from splitting each day.' Top = 0 Width = 112 BorderSpacing.Left = 4 Caption = 'Single .dat file' ParentShowHint = False ShowHint = True TabOrder = 0 OnClick = SingleDatCheckBoxClick end object SplitSpinEdit: TSpinEdit AnchorSideLeft.Control = SingleDatCheckBox AnchorSideTop.Control = SingleDatCheckBox AnchorSideTop.Side = asrBottom Left = 4 Height = 36 Hint = 'Local hour to start a new .dat record file.' Top = 27 Width = 69 BorderSpacing.Top = 4 OnChange = SplitSpinEditChange ParentShowHint = False ShowHint = True TabOrder = 1 end object SplitSpinLabel: TLabel AnchorSideLeft.Control = SplitSpinEdit AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SplitSpinEdit AnchorSideTop.Side = asrCenter Left = 76 Height = 19 Top = 36 Width = 14 BorderSpacing.Left = 3 Caption = 'hr' ParentColor = False end end end object ReadingSheet: TTabSheet Caption = 'Reading' ClientHeight = 244 ClientWidth = 986 ParentFont = False object DisplayedReading: TLabel AnchorSideLeft.Control = Chart1 AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = ReadingSheet Left = 326 Height = 67 Top = 6 Width = 140 Alignment = taCenter BorderSpacing.Top = 6 Caption = '-XX.XX' Font.Height = -48 Font.Name = 'Sans' ParentColor = False ParentFont = False end object ReadingUnits: TLabel AnchorSideLeft.Control = DisplayedReading AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = DisplayedReading AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = DisplayedReading AnchorSideBottom.Side = asrCenter Left = 471 Height = 19 Hint = 'magnitudes per square arcsecond' Top = 29 Width = 81 Anchors = [akLeft, akBottom] BorderSpacing.Left = 5 BorderSpacing.Top = 2 Caption = 'mags/arcsec²' ParentColor = False ParentShowHint = False ShowHint = True end object Chart1: TChart AnchorSideLeft.Control = ReadingSheet AnchorSideTop.Control = DisplayedReading AnchorSideTop.Side = asrBottom AnchorSideRight.Control = AltAzPlotpanel AnchorSideBottom.Control = ReadingSheet AnchorSideBottom.Side = asrBottom Left = 0 Height = 163 Top = 73 Width = 793 AxisList = < item Alignment = calBottom Marks.LabelFont.Height = -12 Marks.LabelFont.Name = 'Sans' Marks.Format = '%2:s' Marks.LabelBrush.Style = bsClear Marks.Source = DateTimeIntervalChartSource1 Marks.Style = smsLabel Minors = <> Range.Max = 100 Title.Distance = 1 Title.Visible = True Title.Caption = 'Sample time' Title.LabelBrush.Style = bsClear end item Grid.Style = psSolid Intervals.NiceSteps = '0.1' Intervals.Options = [aipUseMinLength, aipUseNiceSteps] TickLength = 0 Marks.LabelFont.Color = clRed Marks.Format = '%0:3.2f' Marks.LabelBrush.Style = bsClear Marks.Style = smsCustom Minors = < item Intervals.Count = 2 Intervals.MinLength = 30 Intervals.Options = [aipUseCount, aipUseNiceSteps] Marks.LabelFont.Color = clRed Marks.Format = '%0:3.2f' Marks.LabelBrush.Style = bsClear Marks.Style = smsCustom end> Title.LabelFont.Color = clRed Title.LabelFont.Orientation = 900 Title.Visible = True Title.Caption = 'MPSAS' Title.LabelBrush.Style = bsClear Transformations = MPSASAxisTransforms end item Grid.Visible = False TickColor = clNone TickLength = 0 Alignment = calRight Marks.LabelFont.Color = clLime Marks.LabelBrush.Style = bsClear Minors = <> Title.LabelFont.Color = clLime Title.LabelFont.Orientation = 900 Title.Visible = True Title.Caption = 'Temperature' Title.LabelBrush.Style = bsClear Transformations = TemperatureAxisTransforms end item Grid.Visible = False TickColor = clNone TickLength = 0 Alignment = calRight Marks.LabelFont.Color = clBlack Marks.LabelBrush.Style = bsClear Minors = <> Range.Max = 90 Range.Min = -90 Range.UseMax = True Range.UseMin = True Title.LabelFont.Orientation = 900 Title.Visible = True Title.Caption = 'Moon Elevation' Title.LabelBrush.Style = bsClear Transformations = MoonAxisTransforms end> Foot.Brush.Color = clBtnFace Foot.Font.Color = clBlue Title.Brush.Color = clBtnFace Title.Font.Color = clBlue Title.Text.Strings = ( 'TAChart' ) Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Bottom = 8 object MPSASSeries: TLineSeries AxisIndexX = 0 AxisIndexY = 1 LinePen.Color = clRed LinePen.Width = 2 Pointer.Brush.Color = 8553204 Pointer.HorizSize = 2 Pointer.Style = psCircle Pointer.VertSize = 2 Pointer.Visible = True ShowPoints = True end object RedSeries: TLineSeries AxisIndexX = 0 AxisIndexY = 1 LinePen.Color = clRed Pointer.HorizSize = 2 Pointer.Style = psCircle Pointer.VertSize = 2 Pointer.Visible = True ShowPoints = True end object GreenSeries: TLineSeries AxisIndexX = 0 AxisIndexY = 1 LinePen.Color = clGreen Pointer.HorizSize = 2 Pointer.Style = psCircle Pointer.VertSize = 2 Pointer.Visible = True ShowPoints = True end object BlueSeries: TLineSeries AxisIndexX = 0 AxisIndexY = 1 LinePen.Color = clBlue Pointer.HorizSize = 2 Pointer.Style = psCircle Pointer.VertSize = 2 Pointer.Visible = True ShowPoints = True end object ClearSeries: TLineSeries AxisIndexX = 0 AxisIndexY = 1 Pointer.HorizSize = 2 Pointer.Style = psCircle Pointer.VertSize = 2 end object TempSeries: TLineSeries AxisIndexX = 0 AxisIndexY = 2 LinePen.Color = clLime end object MoonSeries: TLineSeries AxisIndexX = 0 AxisIndexY = 3 end object MoonPhaseSeries: TLineSeries end end object AltAzPlotpanel: TPanel AnchorSideTop.Control = ReadingSheet AnchorSideRight.Control = ReadingSheet AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = ReadingSheet AnchorSideBottom.Side = asrBottom Left = 793 Height = 244 Top = 0 Width = 193 Anchors = [akTop, akRight, akBottom] AutoSize = True BevelOuter = bvNone ClientHeight = 244 ClientWidth = 193 TabOrder = 1 Visible = False object EastLabel: TLabel AnchorSideTop.Control = Chart2 AnchorSideTop.Side = asrCenter AnchorSideRight.Control = Chart2 Left = 0 Height = 27 Top = 120 Width = 11 Anchors = [akTop, akRight] Caption = 'E' Font.Height = -19 Font.Style = [fsBold] ParentColor = False ParentFont = False end object Chart2: TChart AnchorSideRight.Control = WestLabel AnchorSideBottom.Control = SouthLabel Left = 11 Height = 160 Top = 53 Width = 160 AxisList = < item Grid.Visible = False Marks.Visible = False Marks.LabelBrush.Style = bsClear Minors = <> Range.Max = 1 Range.Min = -1 Range.UseMax = True Range.UseMin = True Title.LabelFont.Orientation = 900 Title.LabelBrush.Style = bsClear end item Grid.Visible = False Alignment = calBottom Marks.Visible = False Marks.LabelBrush.Style = bsClear Minors = <> Range.Max = 1 Range.Min = -1 Range.UseMax = True Range.UseMin = True Title.LabelBrush.Style = bsClear end> Foot.Brush.Color = clBtnFace Foot.Font.Color = clBlue Title.Brush.Color = clBtnFace Title.Font.Color = clBlue Title.Text.Strings = ( 'TAChart' ) Anchors = [akRight, akBottom] object Chart2LineSeries1: TLineSeries LinePen.Style = psClear Pointer.HorizSize = 22 Pointer.Style = psCircle Pointer.VertSize = 22 Pointer.Visible = True ShowPoints = True end end object WestLabel: TLabel AnchorSideTop.Control = Chart2 AnchorSideTop.Side = asrCenter AnchorSideRight.Control = AltAzPlotpanel AnchorSideRight.Side = asrBottom Left = 171 Height = 27 Top = 120 Width = 18 Anchors = [akTop, akRight] BorderSpacing.Right = 4 Caption = 'W' Font.Height = -19 Font.Style = [fsBold] ParentColor = False ParentFont = False end object SouthLabel: TLabel AnchorSideLeft.Control = Chart2 AnchorSideLeft.Side = asrCenter AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = AltAzPlotpanel AnchorSideBottom.Side = asrBottom Left = 86 Height = 27 Top = 213 Width = 10 Anchors = [akLeft, akBottom] BorderSpacing.Bottom = 4 Caption = 'S' Font.Height = -19 Font.Style = [fsBold] ParentColor = False ParentFont = False end object NorthLabel: TLabel AnchorSideLeft.Control = Chart2 AnchorSideLeft.Side = asrCenter AnchorSideBottom.Control = Chart2 Left = 84 Height = 27 Top = 26 Width = 15 Anchors = [akLeft, akBottom] Caption = 'N' Font.Height = -19 Font.Style = [fsBold] ParentColor = False ParentFont = False end end object DisplayedNELM: TLabel AnchorSideRight.Control = Chart1 AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Displayedcdm2 Left = 749 Height = 19 Hint = 'Naked Eye Limiting Magnitude' Top = 12 Width = 36 Anchors = [akRight, akBottom] BorderSpacing.Right = 8 BorderSpacing.Bottom = 2 Caption = 'NELM' ParentColor = False ParentShowHint = False ShowHint = True end object Displayedcdm2: TLabel AnchorSideRight.Control = Chart1 AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = DisplayedNSU Left = 749 Height = 19 Hint = 'candela per square meter' Top = 33 Width = 36 Anchors = [akRight, akBottom] BorderSpacing.Right = 8 BorderSpacing.Bottom = 2 Caption = 'cd/m²' ParentColor = False ParentShowHint = False ShowHint = True end object DisplayedNSU: TLabel AnchorSideRight.Control = Chart1 AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Chart1 Left = 756 Height = 19 Hint = 'Natural Sky Units' Top = 54 Width = 27 Anchors = [akRight, akBottom] BorderSpacing.Right = 10 Caption = 'NSU' ParentColor = False ParentShowHint = False ShowHint = True end object LocationNameLabel: TLabel AnchorSideLeft.Control = ReadingSheet AnchorSideTop.Control = ReadingSheet Left = 0 Height = 19 Top = 0 Width = 89 Caption = 'LocationName' ParentColor = False end object CoordinatesLabel: TLabel AnchorSideLeft.Control = ReadingSheet AnchorSideTop.Control = LocationNameLabel AnchorSideTop.Side = asrBottom Left = 0 Height = 19 Top = 19 Width = 74 Caption = 'Coordinates' ParentColor = False end object BestDarknessLabel: TLabel Left = 0 Height = 21 Top = 48 Width = 262 AutoSize = False Caption = 'BestDarkness' ParentColor = False end end object AnnotationSheet: TTabSheet Caption = 'Annotation' ClientHeight = 244 ClientWidth = 986 object AnnotationGroupBox: TGroupBox AnchorSideLeft.Control = AnnotationSheet AnchorSideTop.Control = AnnotationSheet AnchorSideBottom.Control = AnnotationSheet AnchorSideBottom.Side = asrBottom Left = 0 Height = 244 Top = 0 Width = 432 Anchors = [akTop, akLeft, akBottom] Caption = 'Annotation' ClientHeight = 242 ClientWidth = 430 TabOrder = 0 object AnnotateEdit: TEdit AnchorSideLeft.Control = AnnotationGroupBox AnchorSideRight.Control = AnnotateButton AnchorSideBottom.Control = AnnotationGroupBox AnchorSideBottom.Side = asrBottom Left = 0 Height = 36 Hint = 'Type custom annotation in here.' Top = 206 Width = 355 Anchors = [akLeft, akRight, akBottom] ParentShowHint = False ShowHint = True TabStop = False TabOrder = 1 end object AnnotateButton: TButton AnchorSideRight.Control = AnnotationGroupBox AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = AnnotationGroupBox AnchorSideBottom.Side = asrBottom Left = 355 Height = 25 Top = 217 Width = 75 Anchors = [akRight, akBottom] Caption = 'Annotate' TabOrder = 2 OnClick = AnnotateButtonClick end object HotkeyStringGrid: TStringGrid AnchorSideLeft.Control = AnnotationGroupBox AnchorSideTop.Control = AnnotationGroupBox AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = PendingHotKey Left = 0 Height = 170 Top = 0 Width = 272 Anchors = [akTop, akLeft, akBottom] ColCount = 2 Columns = < item Title.Caption = 'Hotkey' Width = 100 end item Title.Caption = 'Annotation' Width = 140 end> FixedCols = 0 Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goEditing, goSmoothScroll] RowCount = 11 TabOrder = 0 TabStop = False OnKeyUp = HotkeyStringGridKeyUp OnSelectEditor = HotkeyStringGridSelectEditor end object EditHotkeysCheckBox: TCheckBox AnchorSideLeft.Control = HotkeyStringGrid AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = HotkeyStringGrid Left = 272 Height = 23 Hint = 'No hotkey annotation while editing.' Top = 0 Width = 102 Caption = 'Edit Hotkeys' Checked = True Enabled = False ParentShowHint = False ShowHint = True State = cbChecked TabOrder = 3 OnChange = EditHotkeysCheckBoxChange end object SynchronizedCheckBox: TCheckBox AnchorSideLeft.Control = HotkeyStringGrid AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = EditHotkeysCheckBox AnchorSideTop.Side = asrBottom Left = 272 Height = 23 Hint = 'Wait for interval before recording.' Top = 23 Width = 108 Caption = 'Synchronized' ParentShowHint = False ShowHint = True TabOrder = 4 OnChange = SynchronizedCheckBoxChange end object PendingLabel: TLabel AnchorSideLeft.Control = AnnotateButton AnchorSideTop.Control = PendingHotKey AnchorSideTop.Side = asrCenter AnchorSideBottom.Control = AnnotateButton Left = 355 Height = 19 Top = 179 Width = 51 Caption = 'Pending' ParentColor = False end object PendingHotKey: TEdit AnchorSideLeft.Control = AnnotateEdit AnchorSideRight.Control = PendingLabel AnchorSideBottom.Control = AnnotateEdit Left = 0 Height = 36 Hint = 'Annotation that will be recorded at the next time interval.' Top = 170 Width = 355 Anchors = [akLeft, akRight, akBottom] ParentShowHint = False ReadOnly = True ShowHint = True TabStop = False TabOrder = 6 end object PersistentCheckBox: TCheckBox AnchorSideLeft.Control = HotkeyStringGrid AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SynchronizedCheckBox AnchorSideTop.Side = asrBottom Left = 272 Height = 23 Hint = 'Annotate every record with last text.' Top = 46 Width = 89 Caption = 'Persistent' ParentShowHint = False ShowHint = True TabOrder = 5 OnChange = PersistentCheckBoxChange end end end object TransferReadingTabSheet: TTabSheet Caption = 'Transfer reading' ClientHeight = 244 ClientWidth = 986 object Label19: TLabel AnchorSideTop.Control = TrRdgPortEdit AnchorSideTop.Side = asrCenter AnchorSideRight.Control = TrRdgPortEdit Left = 99 Height = 19 Top = 93 Width = 105 Anchors = [akTop, akRight] BorderSpacing.Right = 4 Caption = 'Destination port:' ParentColor = False end object TrRdgTestButton: TButton AnchorSideTop.Side = asrBottom Left = 208 Height = 30 Hint = 'Test sending a reading to the Globe at Night server.' Top = 144 Width = 102 Anchors = [] Caption = 'Test' TabOrder = 2 OnClick = TrRdgTestButtonClick end object TrRdgAddressEntry: TEdit AnchorSideTop.Control = TrRdgEnableCheckBox AnchorSideTop.Side = asrBottom AnchorSideRight.Side = asrBottom Left = 208 Height = 36 Hint = 'Globe at Night server address.' Top = 48 Width = 172 Alignment = taCenter Anchors = [akRight] TabOrder = 0 Text = '0.0.0.0' OnChange = TrRdgAddressEntryChange end object Label20: TLabel AnchorSideTop.Control = TrRdgAddressEntry AnchorSideTop.Side = asrCenter AnchorSideRight.Control = TrRdgAddressEntry Left = 62 Height = 19 Top = 57 Width = 142 Anchors = [akTop, akRight] BorderSpacing.Right = 4 Caption = 'Destination IP address:' ParentColor = False end object TrRdgEnableCheckBox: TCheckBox AnchorSideLeft.Control = TrRdgAddressEntry Left = 18 Height = 23 Hint = 'Enable reading to be sent to Globe at Night server.' Top = 8 Width = 170 Anchors = [] Caption = 'Enable reading transfer' TabOrder = 3 OnClick = TrRdgEnableCheckBoxClick end object TrRdgHelpButton: TButton AnchorSideTop.Control = TrRdgTestButton AnchorSideRight.Side = asrBottom Left = 350 Height = 30 Hint = 'Instructions for transfering a reading to the Globe at Night server.' Top = 144 Width = 30 Anchors = [akTop, akRight] Caption = '?' TabOrder = 4 OnClick = TrRdgHelpButtonClick end object TrRdgPortEdit: TEdit AnchorSideLeft.Control = TrRdgAddressEntry AnchorSideTop.Control = TrRdgAddressEntry AnchorSideTop.Side = asrBottom AnchorSideRight.Side = asrBottom Left = 208 Height = 36 Hint = 'Globe at Night server port.' Top = 84 Width = 172 Alignment = taCenter TabOrder = 1 Text = '0' OnChange = TrRdgPortEditChange end end object TransferFileTabSheet: TTabSheet Caption = 'Transfer file' ClientHeight = 244 ClientWidth = 986 object TransferSettingsGroupBox: TGroupBox AnchorSideLeft.Control = TransferFileTabSheet AnchorSideTop.Control = TransferFileTabSheet AnchorSideBottom.Control = TransferFileTabSheet AnchorSideBottom.Side = asrBottom Left = 0 Height = 244 Top = 0 Width = 488 Anchors = [akTop, akLeft, akBottom] Caption = 'Settings' ClientHeight = 224 ClientWidth = 486 TabOrder = 0 object TransferAddressEntry: TLabeledEdit AnchorSideTop.Control = TransferFrequencyRadioGroup AnchorSideTop.Side = asrBottom Left = 144 Height = 25 Top = 86 Width = 210 Anchors = [akTop] AutoSize = False EditLabel.Height = 19 EditLabel.Width = 54 EditLabel.Caption = 'Address:' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 0 OnChange = TransferAddressEntryChange end object TransferPortEntry: TLabeledEdit AnchorSideLeft.Control = TransferAddressEntry AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = TransferAddressEntry AnchorSideRight.Control = TransferSettingsGroupBox AnchorSideRight.Side = asrBottom Left = 416 Height = 25 Top = 86 Width = 70 Anchors = [akTop, akRight] AutoSize = False EditLabel.Height = 19 EditLabel.Width = 31 EditLabel.Caption = 'Port:' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 1 OnChange = TransferPortEntryChange end object TransferUsernameEntry: TLabeledEdit AnchorSideLeft.Control = TransferAddressEntry AnchorSideTop.Control = TransferAddressEntry AnchorSideTop.Side = asrBottom Left = 144 Height = 25 Top = 111 Width = 210 AutoSize = False EditLabel.Height = 19 EditLabel.Width = 69 EditLabel.Caption = 'Username:' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 2 OnChange = TransferUsernameEntryChange end object TransferPasswordEntry: TLabeledEdit AnchorSideLeft.Control = TransferAddressEntry AnchorSideTop.Control = TransferUsernameEntry AnchorSideTop.Side = asrBottom Left = 144 Height = 25 Top = 136 Width = 210 AutoSize = False EchoMode = emPassword EditLabel.Height = 19 EditLabel.Width = 62 EditLabel.Caption = 'Password:' EditLabel.ParentColor = False LabelPosition = lpLeft PasswordChar = '*' TabOrder = 3 OnChange = TransferPasswordEntryChange end object TransferRemoteDirectoryEntry: TLabeledEdit AnchorSideLeft.Control = TransferAddressEntry AnchorSideTop.Control = TransferPasswordEntry AnchorSideTop.Side = asrBottom Left = 144 Height = 25 Top = 161 Width = 304 AutoSize = False EditLabel.Height = 19 EditLabel.Width = 112 EditLabel.Caption = 'Remote directory:' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 4 OnChange = TransferRemoteDirectoryEntryChange end object TransferPasswordShowHide: TButton AnchorSideLeft.Control = TransferPasswordEntry AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = TransferPasswordEntry Left = 357 Height = 25 Hint = 'Show/hide password' Top = 136 Width = 56 BorderSpacing.Left = 3 Caption = 'Show' ParentShowHint = False ShowHint = True TabOrder = 5 OnClick = TransferPasswordShowHideClick end object TransferFrequencyRadioGroup: TRadioGroup AnchorSideLeft.Control = TransferAddressEntry AnchorSideTop.Control = TransferSettingsGroupBox Left = 144 Height = 86 Top = 0 Width = 168 AutoFill = True Caption = 'Frequency' ChildSizing.LeftRightSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 66 ClientWidth = 166 Items.Strings = ( 'Never' 'After every record' 'At end of day' ) OnClick = TransferFrequencyRadioGroupClick TabOrder = 6 end object TransferRemoteDirectorySuccess: TShape AnchorSideLeft.Control = TransferRemoteDirectoryEntry AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = TransferRemoteDirectoryEntry AnchorSideTop.Side = asrCenter Left = 451 Height = 20 Hint = 'Remote directory status' Top = 163 Width = 20 BorderSpacing.Left = 3 ParentShowHint = False Shape = stCircle ShowHint = True end object TransferProtocolSelector: TComboBox AnchorSideLeft.Control = TransferProtocolLabel AnchorSideTop.Control = TransferProtocolLabel AnchorSideTop.Side = asrBottom Left = 2 Height = 36 Top = 23 Width = 82 ItemHeight = 0 TabOrder = 7 OnChange = TransferProtocolSelectorChange end object TransferProtocolLabel: TLabel AnchorSideLeft.Control = TransferSettingsGroupBox AnchorSideTop.Control = TransferSettingsGroupBox Left = 2 Height = 19 Top = 2 Width = 55 BorderSpacing.Around = 2 Caption = 'Protocol:' ParentColor = False end object TransferTimeout: TLabeledEdit AnchorSideTop.Control = TransferProtocolSelector AnchorSideRight.Control = TransferSettingsGroupBox AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = TransferFrequencyRadioGroup AnchorSideBottom.Side = asrBottom Left = 390 Height = 25 Top = 23 Width = 96 Anchors = [akTop, akRight] AutoSize = False EditLabel.Height = 19 EditLabel.Width = 96 EditLabel.Caption = 'Timeout (ms):' EditLabel.ParentColor = False TabOrder = 8 OnChange = TransferTimeoutChange end object TransferCSVCheck: TCheckBox AnchorSideLeft.Control = TransferDATCheck AnchorSideTop.Control = TransferDATCheck AnchorSideTop.Side = asrBottom Left = 318 Height = 23 Hint = 'Send .csv file instead of .dat file' Top = 23 Width = 49 Caption = '.csv' ParentShowHint = False ShowHint = True TabOrder = 9 OnClick = TransferCSVCheckClick end object TransferDATCheck: TCheckBox AnchorSideLeft.Control = TransferFrequencyRadioGroup AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = TransferFrequencyRadioGroup Left = 318 Height = 23 Top = 0 Width = 50 BorderSpacing.Left = 6 Caption = '.dat' TabOrder = 10 OnClick = TransferDATCheckClick end object TransferPLOTCheck: TCheckBox AnchorSideLeft.Control = TransferCSVCheck AnchorSideTop.Control = TransferCSVCheck AnchorSideTop.Side = asrBottom Left = 318 Height = 23 Top = 46 Width = 50 Caption = 'Plot' TabOrder = 11 OnClick = TransferPLOTCheckClick end object TransferPWenable: TCheckBox AnchorSideLeft.Control = TransferSettingsGroupBox AnchorSideTop.Control = TransferAddressEntry AnchorSideTop.Side = asrCenter AnchorSideRight.Side = asrBottom Left = 0 Height = 23 Hint = 'Enable optional password' Top = 87 Width = 46 Caption = 'PW' ParentShowHint = False ShowHint = True TabOrder = 12 OnChange = TransferPWenableChange end end object FTPResultsGroupBox: TGroupBox AnchorSideLeft.Control = TransferSettingsGroupBox AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = TransferSettingsGroupBox AnchorSideRight.Control = TransferFileTabSheet AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = TransferSettingsGroupBox AnchorSideBottom.Side = asrBottom Left = 488 Height = 244 Top = 0 Width = 498 Anchors = [akTop, akLeft, akRight, akBottom] Caption = 'Results' ClientHeight = 224 ClientWidth = 496 TabOrder = 1 object TransferLocalFilenameDisplay: TLabeledEdit AnchorSideTop.Control = FTPResultsGroupBox AnchorSideRight.Control = FTPResultsGroupBox AnchorSideRight.Side = asrBottom Left = 136 Height = 30 Top = 0 Width = 360 Anchors = [akTop, akLeft, akRight] AutoSize = False EditLabel.Height = 19 EditLabel.Width = 92 EditLabel.Caption = 'Local filename:' EditLabel.ParentColor = False LabelPosition = lpLeft ReadOnly = True TabOrder = 0 end object TransferRemoteFilename: TLabeledEdit AnchorSideLeft.Control = TransferLocalFilenameDisplay AnchorSideTop.Control = TransferLocalFilenameDisplay AnchorSideTop.Side = asrBottom AnchorSideRight.Control = FTPResultsGroupBox AnchorSideRight.Side = asrBottom Left = 136 Height = 30 Top = 30 Width = 360 Anchors = [akTop, akLeft, akRight] AutoSize = False EditLabel.Height = 19 EditLabel.Width = 110 EditLabel.Caption = 'Remote filename:' EditLabel.ParentColor = False LabelPosition = lpLeft ReadOnly = True TabOrder = 1 end object TransferFullResult: TMemo AnchorSideLeft.Control = FTPResultsGroupBox AnchorSideTop.Control = TransferSendResult AnchorSideTop.Side = asrBottom AnchorSideRight.Control = FTPResultsGroupBox AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = FTPResultsGroupBox AnchorSideBottom.Side = asrBottom Left = 0 Height = 108 Top = 116 Width = 496 Anchors = [akTop, akLeft, akRight, akBottom] ReadOnly = True ScrollBars = ssAutoVertical TabOrder = 2 end object TransferSendResult: TMemo AnchorSideLeft.Control = TransferLocalFilenameDisplay AnchorSideTop.Control = TransferRemoteFilename AnchorSideTop.Side = asrBottom AnchorSideRight.Control = FTPResultsGroupBox AnchorSideRight.Side = asrBottom Left = 136 Height = 56 Top = 60 Width = 360 Anchors = [akTop, akLeft, akRight] ScrollBars = ssAutoBoth TabOrder = 3 end object TransferSendResultLabel: TLabel AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = TransferSendResult AnchorSideRight.Control = TransferSendResult Left = 60 Height = 19 Top = 60 Width = 73 Anchors = [akTop, akRight] BorderSpacing.Right = 3 Caption = 'Send result:' ParentColor = False end object TestTransfer: TButton AnchorSideTop.Control = TransferSendResultLabel AnchorSideTop.Side = asrBottom AnchorSideRight.Control = TransferSendResultLabel AnchorSideRight.Side = asrBottom Left = 58 Height = 25 Hint = 'Test transfer time' Top = 79 Width = 75 Anchors = [akTop, akRight] Caption = 'Test' ParentShowHint = False ShowHint = True TabOrder = 4 OnClick = TestTransferClick end end end object RotStageSheet: TTabSheet Caption = 'RotStage' ClientHeight = 244 ClientWidth = 986 TabVisible = False object RSGroupBox: TGroupBox Left = 0 Height = 216 Top = 0 Width = 450 Caption = 'Rotational stage' ClientHeight = 214 ClientWidth = 448 TabOrder = 0 Visible = False object RSComboBox: TComboBox AnchorSideLeft.Control = RSGroupBox AnchorSideTop.Control = RSGroupBox AnchorSideRight.Side = asrBottom Left = 3 Height = 36 Top = 3 Width = 205 BorderSpacing.Left = 3 BorderSpacing.Top = 3 BorderSpacing.Right = 3 ItemHeight = 0 ItemIndex = 0 Items.Strings = ( '/dev/ttyUSB2' ) TabOrder = 0 Text = '/dev/ttyUSB2' end object RSPositionStepSpinEdit: TSpinEdit AnchorSideTop.Control = RSComboBox AnchorSideTop.Side = asrBottom AnchorSideRight.Control = RSComboBox AnchorSideRight.Side = asrBottom Left = 129 Height = 36 Top = 42 Width = 79 Anchors = [akTop, akRight] BorderSpacing.Top = 3 MaxValue = 10 MinValue = 1 TabOrder = 1 Value = 1 end object Label49: TLabel AnchorSideTop.Control = RSPositionStepSpinEdit AnchorSideTop.Side = asrCenter AnchorSideRight.Control = RSPositionStepSpinEdit Left = 92 Height = 19 Top = 51 Width = 34 Anchors = [akTop, akRight] BorderSpacing.Right = 3 Caption = 'Steps' ParentColor = False end object RSCurrentPositionAngleDisplay: TEdit AnchorSideLeft.Control = RSCurrentPositionStepDisplay AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = RSCurrentPositionStepDisplay Left = 211 Height = 36 Top = 81 Width = 79 BorderSpacing.Left = 3 BorderSpacing.Right = 3 TabOrder = 2 end object RSMaxSteps: TLabeledEdit AnchorSideTop.Control = RSCurrentPositionStepDisplay AnchorSideTop.Side = asrBottom AnchorSideRight.Control = RSCurrentPositionStepDisplay AnchorSideRight.Side = asrBottom Left = 128 Height = 36 Top = 120 Width = 80 Anchors = [akTop, akRight] BorderSpacing.Top = 3 EditLabel.Height = 19 EditLabel.Width = 26 EditLabel.Caption = 'Max' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 3 Text = '60' end object RSCurrentPositionStepDisplay: TEdit AnchorSideTop.Control = RSPositionStepSpinEdit AnchorSideTop.Side = asrBottom AnchorSideRight.Control = RSPositionStepSpinEdit AnchorSideRight.Side = asrBottom Left = 128 Height = 36 Top = 81 Width = 80 Anchors = [akTop, akRight] BorderSpacing.Top = 3 TabOrder = 4 end object RSStatusBar: TStatusBar Left = 0 Height = 21 Top = 193 Width = 448 Panels = < item Width = 50 end> SimplePanel = False end object RSRlimInd: TStaticText Left = 233 Height = 21 Top = 143 Width = 57 Alignment = taCenter Anchors = [] Caption = 'Right' Color = clDefault ParentColor = False TabOrder = 6 end object RSLLimInd: TStaticText Left = 303 Height = 21 Top = 128 Width = 57 Alignment = taCenter Caption = 'Left' TabOrder = 7 end object RSSafteyInd: TStaticText Left = 374 Height = 21 Top = 128 Width = 57 Alignment = taCenter Caption = 'Safety' TabOrder = 8 end object RSDirInd: TStaticText Left = 232 Height = 17 Top = 158 Width = 65 Caption = 'Dir=Left' TabOrder = 9 end end end object GDMSheet: TTabSheet Caption = 'GDM' ClientHeight = 244 ClientWidth = 986 TabVisible = False object GDMGroupBox: TGroupBox Left = 16 Height = 55 Top = 16 Width = 120 Caption = 'GDM' ClientHeight = 35 ClientWidth = 118 TabOrder = 0 object GDMF0Button: TButton Left = 7 Height = 25 Top = 4 Width = 48 Caption = 'FB OFF' TabOrder = 0 OnClick = GDMF0ButtonClick end object GDMF1Button: TButton Left = 62 Height = 25 Top = 4 Width = 48 Caption = 'FB ON' TabOrder = 1 OnClick = GDMF1ButtonClick end end end object GPS: TTabSheet Caption = 'GPS' ClientHeight = 244 ClientWidth = 986 object GPSPortSelect: TComboBox AnchorSideLeft.Control = Label14 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = GPS Left = 78 Height = 30 Top = 16 Width = 283 Anchors = [] AutoSize = False Font.Height = -12 Font.Name = 'Courier 10 Pitch' Font.Pitch = fpFixed ItemHeight = 0 ParentFont = False Sorted = True TabOrder = 0 OnChange = GPSPortSelectChange OnDropDown = GPSPortSelectDropDown end object Label14: TLabel AnchorSideLeft.Control = GPSPortSelect AnchorSideTop.Side = asrCenter AnchorSideBottom.Control = GPSPortSelect Left = 78 Height = 19 Top = -3 Width = 31 Anchors = [akLeft, akBottom] Caption = 'Port:' ParentColor = False end object GPSValidityLabel: TLabeledEdit AnchorSideRight.Control = GPSQualityLabel AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = GPSQualityLabel Left = 291 Height = 25 Top = 51 Width = 80 Alignment = taCenter AutoSize = False BorderSpacing.Bottom = 3 EditLabel.Height = 19 EditLabel.Width = 48 EditLabel.Caption = 'Validity:' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 1 end object GPSLatitudeLabel: TLabeledEdit Left = 813 Height = 25 Top = 24 Width = 80 Alignment = taCenter AutoSize = False EditLabel.Height = 19 EditLabel.Width = 80 EditLabel.Caption = 'Latitude (°):' EditLabel.ParentColor = False TabOrder = 2 end object GPSLongitudeLabel: TLabeledEdit AnchorSideLeft.Control = GPSLatitudeLabel AnchorSideLeft.Side = asrBottom Left = 901 Height = 25 Top = 24 Width = 80 Alignment = taCenter AutoSize = False BorderSpacing.Left = 8 EditLabel.Height = 19 EditLabel.Width = 80 EditLabel.Caption = 'Longitude (°):' EditLabel.ParentColor = False TabOrder = 3 end object GPSSpeedLabel: TLabeledEdit AnchorSideLeft.Control = GPSElevationlabel AnchorSideLeft.Side = asrBottom AnchorSideBottom.Control = GPSElevationlabel AnchorSideBottom.Side = asrBottom Left = 901 Height = 25 Top = 81 Width = 80 Alignment = taCenter Anchors = [akLeft, akBottom] AutoSize = False BorderSpacing.Left = 8 EditLabel.Height = 19 EditLabel.Width = 80 EditLabel.Caption = 'Speed (m/s):' EditLabel.ParentColor = False TabOrder = 4 end object GPSDateStampLabel: TLabeledEdit Left = 813 Height = 25 Top = 143 Width = 168 Alignment = taCenter AutoSize = False EditLabel.Height = 19 EditLabel.Width = 168 EditLabel.Caption = 'GPS DateTime:' EditLabel.ParentColor = False TabOrder = 5 end object GPSElevationlabel: TLabeledEdit AnchorSideLeft.Control = GPSLatitudeLabel Left = 813 Height = 25 Hint = 'Very approximate altitude' Top = 81 Width = 80 Alignment = taCenter Anchors = [akLeft] AutoSize = False EditLabel.Height = 19 EditLabel.Width = 80 EditLabel.Caption = 'Elevation (m):' EditLabel.ParentColor = False ParentShowHint = False ShowHint = True TabOrder = 6 end object GPSQualityLabel: TLabeledEdit AnchorSideRight.Control = GPSSatellites AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = GPSSatellites Left = 431 Height = 25 Top = 51 Width = 80 Alignment = taCenter AutoSize = False BorderSpacing.Bottom = 3 EditLabel.Height = 19 EditLabel.Width = 47 EditLabel.Caption = 'Quality:' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 7 end object GPSEnable: TCheckBox AnchorSideLeft.Control = GPS Left = 4 Height = 23 Top = 20 Width = 67 Anchors = [] BorderSpacing.Left = 8 Caption = 'Enable' TabOrder = 8 OnClick = GPSEnableClick end object GPSSatellites: TLabeledEdit AnchorSideTop.Control = GPSSignalGroup AnchorSideTop.Side = asrBottom AnchorSideRight.Side = asrBottom AnchorSideBottom.Side = asrBottom Left = 654 Height = 25 Top = 192 Width = 39 Alignment = taCenter Anchors = [akTop] AutoSize = False BorderSpacing.Top = 4 EditLabel.Height = 19 EditLabel.Width = 59 EditLabel.Caption = 'Satellites:' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 9 end object GPSSignalGroup: TGroupBox AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = GPSPortSelect AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = GPS AnchorSideBottom.Side = asrBottom Left = 538 Height = 185 Top = 3 Width = 261 Anchors = [akLeft] BorderSpacing.Left = 14 Caption = 'Signal strength' ClientHeight = 183 ClientWidth = 259 TabOrder = 10 object GPSSNR1: TProgressBar AnchorSideLeft.Control = GPSSignalGroup AnchorSideTop.Control = GPSSignalGroup AnchorSideBottom.Control = GPSSAT1 Left = 5 Height = 164 Hint = 'Signal to noise ratio (strength)' Top = 0 Width = 16 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Left = 5 Orientation = pbVertical ParentShowHint = False ShowHint = True Smooth = True TabOrder = 0 end object GPSSNR2: TProgressBar AnchorSideLeft.Control = GPSSNR1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = GPSSignalGroup AnchorSideBottom.Control = GPSSAT1 Left = 26 Height = 164 Hint = 'Signal to noise ratio (strength)' Top = 0 Width = 16 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Left = 5 Orientation = pbVertical ParentShowHint = False ShowHint = True Smooth = True TabOrder = 1 end object GPSSNR4: TProgressBar AnchorSideLeft.Control = GPSSNR3 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = GPSSignalGroup AnchorSideBottom.Control = GPSSAT1 Left = 68 Height = 164 Hint = 'Signal to noise ratio (strength)' Top = 0 Width = 16 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Left = 5 Orientation = pbVertical ParentShowHint = False ShowHint = True Smooth = True TabOrder = 2 end object GPSSNR12: TProgressBar AnchorSideLeft.Control = GPSSNR11 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = GPSSignalGroup AnchorSideBottom.Control = GPSSAT1 Left = 236 Height = 164 Hint = 'Signal to noise ratio (strength)' Top = 0 Width = 16 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Left = 5 Orientation = pbVertical ParentShowHint = False ShowHint = True Smooth = True TabOrder = 3 end object GPSSNR3: TProgressBar AnchorSideLeft.Control = GPSSNR2 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = GPSSignalGroup AnchorSideBottom.Control = GPSSAT1 Left = 47 Height = 164 Hint = 'Signal to noise ratio (strength)' Top = 0 Width = 16 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Left = 5 Orientation = pbVertical ParentShowHint = False ShowHint = True Smooth = True TabOrder = 4 end object GPSSNR5: TProgressBar AnchorSideLeft.Control = GPSSNR4 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = GPSSignalGroup AnchorSideBottom.Control = GPSSAT1 Left = 89 Height = 164 Hint = 'Signal to noise ratio (strength)' Top = 0 Width = 16 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Left = 5 Orientation = pbVertical ParentShowHint = False ShowHint = True Smooth = True TabOrder = 5 end object GPSSNR6: TProgressBar AnchorSideLeft.Control = GPSSNR5 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = GPSSignalGroup AnchorSideBottom.Control = GPSSAT1 Left = 110 Height = 164 Hint = 'Signal to noise ratio (strength)' Top = 0 Width = 16 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Left = 5 Orientation = pbVertical ParentShowHint = False ShowHint = True Smooth = True TabOrder = 6 end object GPSSNR7: TProgressBar AnchorSideLeft.Control = GPSSNR6 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = GPSSignalGroup AnchorSideBottom.Control = GPSSAT1 Left = 131 Height = 164 Hint = 'Signal to noise ratio (strength)' Top = 0 Width = 16 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Left = 5 Orientation = pbVertical ParentShowHint = False ShowHint = True Smooth = True TabOrder = 7 end object GPSSNR8: TProgressBar AnchorSideLeft.Control = GPSSNR7 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = GPSSignalGroup AnchorSideBottom.Control = GPSSAT1 Left = 152 Height = 164 Hint = 'Signal to noise ratio (strength)' Top = 0 Width = 16 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Left = 5 Orientation = pbVertical ParentShowHint = False ShowHint = True Smooth = True TabOrder = 8 end object GPSSNR9: TProgressBar AnchorSideLeft.Control = GPSSNR8 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = GPSSignalGroup AnchorSideBottom.Control = GPSSAT1 Left = 173 Height = 164 Hint = 'Signal to noise ratio (strength)' Top = 0 Width = 16 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Left = 5 Orientation = pbVertical ParentShowHint = False ShowHint = True Smooth = True TabOrder = 9 end object GPSSNR10: TProgressBar AnchorSideLeft.Control = GPSSNR9 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = GPSSignalGroup AnchorSideBottom.Control = GPSSAT1 Left = 194 Height = 164 Hint = 'Signal to noise ratio (strength)' Top = 0 Width = 16 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Left = 5 Orientation = pbVertical ParentShowHint = False ShowHint = True Smooth = True TabOrder = 10 end object GPSSNR11: TProgressBar AnchorSideLeft.Control = GPSSNR10 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = GPSSignalGroup AnchorSideBottom.Control = GPSSAT1 Left = 215 Height = 164 Hint = 'Signal to noise ratio (strength)' Top = 0 Width = 16 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Left = 5 Orientation = pbVertical ParentShowHint = False ShowHint = True Smooth = True TabOrder = 11 end object GPSSAT1: TLabel AnchorSideLeft.Control = GPSSNR1 AnchorSideLeft.Side = asrCenter AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = GPSSignalGroup AnchorSideBottom.Side = asrBottom Left = 5 Height = 19 Hint = 'Satellite number' Top = 164 Width = 16 Anchors = [akLeft, akBottom] Caption = '00' ParentColor = False ParentShowHint = False ShowHint = True end object GPSSAT2: TLabel AnchorSideLeft.Control = GPSSNR2 AnchorSideLeft.Side = asrCenter AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = GPSSignalGroup AnchorSideBottom.Side = asrBottom Left = 26 Height = 19 Hint = 'Satellite number' Top = 164 Width = 16 Anchors = [akLeft, akBottom] Caption = '00' ParentColor = False ParentShowHint = False ShowHint = True end object GPSSAT3: TLabel AnchorSideLeft.Control = GPSSNR3 AnchorSideLeft.Side = asrCenter AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = GPSSignalGroup AnchorSideBottom.Side = asrBottom Left = 47 Height = 19 Hint = 'Satellite number' Top = 164 Width = 16 Anchors = [akLeft, akBottom] Caption = '00' ParentColor = False ParentShowHint = False ShowHint = True end object GPSSAT4: TLabel AnchorSideLeft.Control = GPSSNR4 AnchorSideLeft.Side = asrCenter AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = GPSSignalGroup AnchorSideBottom.Side = asrBottom Left = 68 Height = 19 Hint = 'Satellite number' Top = 164 Width = 16 Anchors = [akLeft, akBottom] Caption = '00' ParentColor = False ParentShowHint = False ShowHint = True end object GPSSAT5: TLabel AnchorSideLeft.Control = GPSSNR5 AnchorSideLeft.Side = asrCenter AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = GPSSignalGroup AnchorSideBottom.Side = asrBottom Left = 89 Height = 19 Hint = 'Satellite number' Top = 164 Width = 16 Anchors = [akLeft, akBottom] Caption = '00' ParentColor = False ParentShowHint = False ShowHint = True end object GPSSAT6: TLabel AnchorSideLeft.Control = GPSSNR6 AnchorSideLeft.Side = asrCenter AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = GPSSignalGroup AnchorSideBottom.Side = asrBottom Left = 110 Height = 19 Hint = 'Satellite number' Top = 164 Width = 16 Anchors = [akLeft, akBottom] Caption = '00' ParentColor = False ParentShowHint = False ShowHint = True end object GPSSAT7: TLabel AnchorSideLeft.Control = GPSSNR7 AnchorSideLeft.Side = asrCenter AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = GPSSignalGroup AnchorSideBottom.Side = asrBottom Left = 131 Height = 19 Hint = 'Satellite number' Top = 164 Width = 16 Anchors = [akLeft, akBottom] Caption = '00' ParentColor = False ParentShowHint = False ShowHint = True end object GPSSAT8: TLabel AnchorSideLeft.Control = GPSSNR8 AnchorSideLeft.Side = asrCenter AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = GPSSignalGroup AnchorSideBottom.Side = asrBottom Left = 152 Height = 19 Hint = 'Satellite number' Top = 164 Width = 16 Anchors = [akLeft, akBottom] Caption = '00' ParentColor = False ParentShowHint = False ShowHint = True end object GPSSAT9: TLabel AnchorSideLeft.Control = GPSSNR9 AnchorSideLeft.Side = asrCenter AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = GPSSignalGroup AnchorSideBottom.Side = asrBottom Left = 173 Height = 19 Hint = 'Satellite number' Top = 164 Width = 16 Anchors = [akLeft, akBottom] Caption = '00' ParentColor = False ParentShowHint = False ShowHint = True end object GPSSAT10: TLabel AnchorSideLeft.Control = GPSSNR10 AnchorSideLeft.Side = asrCenter AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = GPSSignalGroup AnchorSideBottom.Side = asrBottom Left = 194 Height = 19 Hint = 'Satellite number' Top = 164 Width = 16 Anchors = [akLeft, akBottom] Caption = '00' ParentColor = False ParentShowHint = False ShowHint = True end object GPSSAT11: TLabel AnchorSideLeft.Control = GPSSNR11 AnchorSideLeft.Side = asrCenter AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = GPSSignalGroup AnchorSideBottom.Side = asrBottom Left = 215 Height = 19 Hint = 'Satellite number' Top = 164 Width = 16 Anchors = [akLeft, akBottom] Caption = '00' ParentColor = False ParentShowHint = False ShowHint = True end object GPSSAT12: TLabel AnchorSideLeft.Control = GPSSNR12 AnchorSideLeft.Side = asrCenter AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = GPSSignalGroup AnchorSideBottom.Side = asrBottom Left = 236 Height = 19 Hint = 'Satellite number' Top = 164 Width = 16 Anchors = [akLeft, akBottom] Caption = '00' ParentColor = False ParentShowHint = False ShowHint = True end end object GPSRMCStatusX: TShape AnchorSideLeft.Control = GPSRMCIncoming AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = GPSRMCIncoming AnchorSideTop.Side = asrCenter AnchorSideRight.Side = asrBottom Left = 491 Height = 17 Top = 112 Width = 20 Brush.Color = 4605510 Shape = stCircle end object GPSGGAStatusX: TShape AnchorSideLeft.Control = GPSGGAIncoming AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = GPSGGAIncoming AnchorSideTop.Side = asrCenter AnchorSideRight.Side = asrBottom Left = 491 Height = 17 Top = 159 Width = 20 BorderSpacing.Top = 8 Brush.Color = 4605510 Shape = stCircle end object GPSGSVStatusX: TShape AnchorSideLeft.Control = GPSGSVIncoming AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = GPSGSVIncoming AnchorSideTop.Side = asrCenter AnchorSideRight.Side = asrBottom Left = 491 Height = 17 Top = 204 Width = 20 BorderSpacing.Top = 8 Brush.Color = 4605510 Shape = stCircle end object GPSBaudSelect: TComboBox Left = 360 Height = 30 Top = 16 Width = 131 Anchors = [] AutoSize = False ItemHeight = 0 Items.Strings = ( '4800' '115200' ) TabOrder = 11 OnChange = GPSBaudSelectChange end object Label16: TLabel AnchorSideLeft.Control = GPSBaudSelect AnchorSideBottom.Control = GPSBaudSelect Left = 360 Height = 19 Top = -3 Width = 36 Anchors = [akLeft, akBottom] Caption = 'Baud:' ParentColor = False end object GPSRMCIncoming: TLabeledEdit Left = 4 Height = 25 Top = 108 Width = 487 AutoSize = False EditLabel.Height = 19 EditLabel.Width = 487 EditLabel.Caption = '$GPRMC - Recommended minimum specific GPS/Transit data:' EditLabel.ParentColor = False TabOrder = 12 end object GPSGGAIncoming: TLabeledEdit Left = 4 Height = 25 Top = 155 Width = 487 AutoSize = False EditLabel.Height = 19 EditLabel.Width = 487 EditLabel.Caption = '$GPGGA - Global Positioning System Fix Data:' EditLabel.ParentColor = False TabOrder = 13 end object GPSGSVIncoming: TLabeledEdit Left = 4 Height = 25 Top = 200 Width = 487 AutoSize = False EditLabel.Height = 19 EditLabel.Width = 487 EditLabel.Caption = '$GPGSV - GPS Satellites in view:' EditLabel.ParentColor = False TabOrder = 14 end end object AlertsTabSheet: TTabSheet Caption = 'Alerts' ClientHeight = 244 ClientWidth = 986 object PreReadingAlertGroup: TGroupBox AnchorSideLeft.Control = AlertsTabSheet AnchorSideTop.Control = AlertsTabSheet Left = 6 Height = 56 Top = 0 Width = 130 BorderSpacing.Left = 6 Caption = 'Pre-reading alert:' ClientHeight = 36 ClientWidth = 128 TabOrder = 0 object alert2s: TCheckBox AnchorSideLeft.Control = PreReadingAlertGroup AnchorSideTop.Side = asrCenter Left = 0 Height = 23 Hint = 'Pre-reading alert' Top = 2 Width = 67 Caption = 'Enable' ParentShowHint = False ShowHint = True TabOrder = 0 OnChange = alert2sChange end end object ReadingAlertGroup: TRadioGroup AnchorSideLeft.Control = PreReadingAlertGroup AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = PreReadingAlertGroup Left = 140 Height = 112 Top = 0 Width = 130 AutoFill = True BorderSpacing.Left = 4 Caption = 'Reading alert:' ChildSizing.LeftRightSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 92 ClientWidth = 128 Items.Strings = ( 'None' 'Fresh only' 'All' ) OnClick = ReadingAlertGroupClick TabOrder = 1 end object FreshAlertTest: TButton AnchorSideLeft.Control = ReadingAlertGroup AnchorSideTop.Control = ReadingAlertGroup AnchorSideTop.Side = asrBottom AnchorSideRight.Control = ReadingAlertGroup AnchorSideRight.Side = asrBottom Left = 140 Height = 25 Hint = 'Reading alert sound test' Top = 116 Width = 130 Anchors = [akTop, akLeft, akRight] BorderSpacing.Top = 4 Caption = 'Test' ParentShowHint = False ShowHint = True TabOrder = 2 OnClick = FreshAlertTestClick end object PreAlertTestButton: TButton AnchorSideLeft.Control = PreReadingAlertGroup AnchorSideTop.Control = PreReadingAlertGroup AnchorSideTop.Side = asrBottom AnchorSideRight.Control = PreReadingAlertGroup AnchorSideRight.Side = asrBottom Left = 6 Height = 25 Hint = 'Pre-alert sound test' Top = 58 Width = 130 Anchors = [akTop, akLeft, akRight] BorderSpacing.Top = 2 Caption = 'Test' ParentShowHint = False ShowHint = True TabOrder = 3 OnClick = PreAlertTestButtonClick end end object SynScanSheet: TTabSheet Caption = 'GoTo' ClientHeight = 244 ClientWidth = 986 OnShow = SynScanSheetShow object GoToPortSelect: TComboBox AnchorSideLeft.Control = GoToMachineSelect AnchorSideTop.Control = GoToMachineSelect AnchorSideTop.Side = asrBottom AnchorSideRight.Control = GoToMachineSelect AnchorSideRight.Side = asrBottom Left = 79 Height = 36 Top = 46 Width = 223 Anchors = [akTop, akLeft, akRight] BorderSpacing.Top = 4 ItemHeight = 0 TabOrder = 0 OnChange = GoToPortSelectChange end object GoToPortLabel: TLabel AnchorSideTop.Control = GoToPortSelect AnchorSideTop.Side = asrCenter AnchorSideRight.Control = GoToPortSelect Left = 45 Height = 19 Top = 55 Width = 31 Anchors = [akTop, akRight] BorderSpacing.Right = 3 Caption = 'Port:' ParentColor = False end object GoToBaudSelect: TComboBox AnchorSideLeft.Control = GoToPortSelect AnchorSideTop.Control = GoToPortSelect AnchorSideTop.Side = asrBottom Left = 79 Height = 36 Top = 86 Width = 124 BorderSpacing.Top = 4 ItemHeight = 0 Items.Strings = ( '9600' '115200' ) TabOrder = 1 OnChange = GoToBaudSelectChange end object GoToBaudLabel: TLabel AnchorSideTop.Control = GoToBaudSelect AnchorSideTop.Side = asrCenter AnchorSideRight.Control = GoToPortSelect Left = 40 Height = 19 Top = 95 Width = 36 Anchors = [akTop, akRight] BorderSpacing.Right = 3 Caption = 'Baud:' ParentColor = False end object PageControl2: TPageControl AnchorSideLeft.Control = GoToMachineSelect AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SynScanSheet AnchorSideRight.Control = SynScanSheet AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = SynScanSheet AnchorSideBottom.Side = asrBottom Left = 306 Height = 236 Top = 4 Width = 676 ActivePage = TabSheet2 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Around = 4 TabIndex = 1 TabOrder = 2 object TabSheet1: TTabSheet Caption = 'File' ClientHeight = 200 ClientWidth = 666 object GoToCommandStringGrid: TStringGrid Left = 6 Height = 176 Top = -34 Width = 208 Anchors = [] ColCount = 3 MouseWheelOption = mwGrid Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goThumbTracking, goSmoothScroll] RowCount = 1 ScrollBars = ssVertical TabOrder = 0 end end object TabSheet2: TTabSheet Caption = 'Test' ClientHeight = 200 ClientWidth = 666 object GetZenAziButton: TButton AnchorSideLeft.Control = TabSheet2 AnchorSideTop.Control = TabSheet2 Left = 4 Height = 25 Top = 4 Width = 78 BorderSpacing.Around = 4 Caption = 'Get' TabOrder = 0 OnClick = GetZenAziButtonClick end object LabelStatusAndCommands: TLabel AnchorSideLeft.Control = GoToResultMemo AnchorSideTop.Control = TabSheet2 Left = 190 Height = 19 Top = 0 Width = 212 Caption = 'Status, commands, and responses:' ParentColor = False end object GoToResultMemo: TMemo AnchorSideLeft.Control = AziFloatSpinEdit AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = LabelStatusAndCommands AnchorSideTop.Side = asrBottom AnchorSideRight.Control = TabSheet2 AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = TabSheet2 AnchorSideBottom.Side = asrBottom Left = 190 Height = 173 Top = 23 Width = 472 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Around = 4 ScrollBars = ssAutoBoth TabOrder = 1 end object ZenFloatSpinEdit: TFloatSpinEdit Left = 8 Height = 36 Top = 52 Width = 88 Alignment = taRightJustify DecimalPlaces = 3 MaxValue = 90 TabOrder = 2 end object AziFloatSpinEdit: TFloatSpinEdit AnchorSideLeft.Control = ZenFloatSpinEdit AnchorSideLeft.Side = asrBottom AnchorSideBottom.Control = ZenFloatSpinEdit AnchorSideBottom.Side = asrBottom Left = 98 Height = 36 Top = 52 Width = 88 Alignment = taRightJustify Anchors = [akLeft, akBottom] BorderSpacing.Left = 2 DecimalPlaces = 3 MaxValue = 359 TabOrder = 3 end object ZenithEditLabel: TLabel AnchorSideLeft.Control = ZenFloatSpinEdit AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = ZenFloatSpinEdit Left = 8 Height = 19 Top = 33 Width = 44 Anchors = [akLeft, akBottom] Caption = 'Zenith:' ParentColor = False end object AzimuthEditLabel: TLabel AnchorSideLeft.Control = AziFloatSpinEdit AnchorSideBottom.Control = AziFloatSpinEdit Left = 98 Height = 19 Top = 10 Width = 51 Anchors = [akLeft] Caption = 'Azimuth' ParentColor = False end object GoToZenAziButton: TButton AnchorSideLeft.Control = GetZenAziButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = GetZenAziButton Left = 86 Height = 25 Top = 4 Width = 75 Caption = 'Set' TabOrder = 4 OnClick = GoToZenAziButtonClick end end end object GoToMachinelabel: TLabel AnchorSideTop.Control = GoToMachineSelect AnchorSideTop.Side = asrCenter AnchorSideRight.Control = GoToPortLabel AnchorSideRight.Side = asrBottom Left = 20 Height = 19 Top = 15 Width = 56 Anchors = [akTop, akRight] Caption = 'Machine:' ParentColor = False end object GoToMachineSelect: TComboBox AnchorSideTop.Control = SynScanSheet Left = 79 Height = 36 Top = 6 Width = 223 Anchors = [akTop] BorderSpacing.Top = 6 ItemHeight = 0 Items.Strings = ( 'SynscanV4' 'iOptron8408' ) TabOrder = 3 OnChange = GoToMachineSelectChange end object ScriptLabel: TLabel AnchorSideTop.Control = GoToCommandFileComboBox AnchorSideTop.Side = asrCenter AnchorSideRight.Control = GoToCommandFileComboBox Left = 37 Height = 19 Top = 135 Width = 39 Anchors = [akTop, akRight] BorderSpacing.Right = 3 Caption = 'Script:' ParentColor = False end object GoToCommandFileComboBox: TComboBox AnchorSideLeft.Control = GoToBaudSelect AnchorSideTop.Control = GoToBaudSelect AnchorSideTop.Side = asrBottom AnchorSideRight.Side = asrBottom Left = 79 Height = 36 Top = 126 Width = 208 BorderSpacing.Top = 4 ItemHeight = 0 TabOrder = 4 OnChange = GoToCommandFileComboBoxChange end object GoToButtonScriptHelp: TButton Left = 280 Height = 34 Hint = 'Script file location' Top = 120 Width = 31 Caption = '?' ParentShowHint = False ShowHint = True TabOrder = 5 OnClick = GoToButtonScriptHelpClick end end end end object PairSplitterBottom: TPairSplitterSide Cursor = crArrow Left = 0 Height = 367 Top = 284 Width = 1000 ClientWidth = 1000 ClientHeight = 367 object BottomPanel: TPanel AnchorSideLeft.Control = PairSplitterBottom AnchorSideTop.Control = PairSplitterBottom AnchorSideRight.Control = PairSplitterBottom AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = PairSplitterBottom AnchorSideBottom.Side = asrBottom Left = 0 Height = 367 Top = 0 Width = 1000 Anchors = [akTop, akLeft, akRight, akBottom] ClientHeight = 367 ClientWidth = 1000 TabOrder = 0 object StartButton: TBitBtn AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = BottomPanel AnchorSideBottom.Side = asrBottom Left = 119 Height = 30 Hint = 'Start recording' Top = 334 Width = 90 Anchors = [akBottom] BorderSpacing.Bottom = 2 Caption = 'Record' Glyph.Data = { 36090000424D3609000000000000360000002800000018000000180000000100 2000000000000009000064000000640000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000FFFF FF03FFFFFF0AFFFFFF10F2F2F214FFFFFF10FFFFFF0AFFFFFF03000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000FFFFFF03FFFFFF149595 EA303838D7601A1AD1910E0ED1BC1B1BD3903838D75F9B9BE92EFFFFFF14FFFF FF02000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000E3E3E309E6E6F71E1E1ED18A0707 D0F72B2BDDF64444E8FD5656EEFF4444E8FD2B2BDEF60707D0F71E1ED186E6E6 F71EE3E3E3090000000000000000000000000000000000000000000000000000 0000000000000000000000000000FFFFFF068282D5310707CED62525DBF77070 F5FF6666F3FF5353F1FF4747F0FF5454F2FF6767F4FF7171F5FF2525DCF70707 CFD58B8BD82EFFFFFF0600000000000000000000000000000000000000000000 00000000000000000000FFFFFF01D0D0D01B0C0CCDBD3D3DE4FC7272F5FF3A3A ECFF2222E9FF2525EBFF2626ECFF2626ECFF2424EBFF3B3BEDFF7272F5FF3D3D E5FC0C0CCDB9CECECE1AFFFFFF01000000000000000000000000000000000000 00000000000000000000BFBFBF102626CA6A1919D6F77474F6FF2929E8FF2121 E8FF2323EAFF2525ECFF2727EEFF2727EEFF2525ECFF2323EAFF2B2BEAFF7575 F6FF1919D6F72727C769BFBFBF10000000000000000000000000000000000000 00000000000000000000ADADAD1C0404CDE56464F1FF4141EBFF1E1EE6FF2020 E7FF2222E9FF2424EBFF2626ECFF2626ECFF2424EBFF2222E9FF2020E7FF4343 EDFF6262F1FF0606CDE1ADADAD1C000000000000000000000000000000000000 000000000000808080027171AC2B0505CEFC7B7BF6FF1F1FE4FF1D1DE5FF1F1F E7FF2121E8FF2323EAFF2424EAFF2424EAFF2323EAFF2121E8FF1F1FE7FF2121 E6FF7979F6FF0303CDFB7676A229808080020000000000000000000000000000 000000000000808080082A2AB7551D1DD6F56B6BF3FF1A1AE2FF1C1CE4FF1E1E E6FF2020E7FF2121E8FF2222E9FF2121E9FF2121E8FF2020E7FF1E1EE6FF1C1C E4FF6B6BF3FF1D1DD6F52B2BB654808080080000000000000000000000000000 0000000000008080800A1D1DB6622929DBF57070F3FF3333E4FF3F3FE7FF4646 E9FF4444E9FF3E3EE9FF3636E9FF2424E8FF1F1FE6FF1E1EE5FF1C1CE4FF1B1B E3FF6565F2FF2525DBF61D1DB6628080800A0000000000000000000000000000 000000000000808080043A3A98391010D1F99B9BF8FF5656E8FF5656E9FF5858 EAFF5959EBFF5959EBFF5858ECFF5757ECFF4747E9FF3030E6FF1E1EE3FF1A1A E1FF7777F5FF0909CFF93D3D9236808080040000000000000000000000000000 00000000000000000000585858200101CCF29292F6FF6D6DECFF5F5FEAFF6060 EAFF6161EBFF6060EBFF6060EBFF5F5FEBFF5C5CEAFF5A5AEAFF5555E9FF5151 E9FF7575F4FF0202CBEF58585820000000000000000000000000000000000000 000000000000000000004A4A4A180606C1A44C4CE3FB9D9DF6FF6969EAFF6868 EAFF6969EBFF6868EBFF6767EBFF6666EBFF6363EBFF6060EAFF5E5EE9FF9595 F6FF4646E1FA0808BFA040404018000000000000000000000000000000000000 00000000000000000000333333052929572C0101C9E98282F1FF9A9AF5FF7575 ECFF7171EBFF7070EBFF6F6FEBFF6D6DEBFF6A6AEBFF6B6BEAFF9292F4FF8282 F1FF0303CAE72A2A532B33333305000000000000000000000000000000000000 0000000000000000000000000000202020100C0C95570808CDF47474EDFEADAD F9FF9494F2FF8686EFFF7B7BECFF8282EEFF8D8DF1FFA8A8F8FF7C7CEEFE0A0A CFF40C0C90532222220F00000000000000000000000000000000000000000000 0000000000000000000000000000000000000B0B0B170B0B7A450101C7D93434 DCF87F7FF0FF9D9DF6FFB1B1FAFF9E9EF6FF8181F0FF3C3CDCF80101C7D60B0B 78440B0B0B170000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000C00000D260000 A67B0101BFBA0101C9E90000CCFE0101C9E80101C0B90000A47900000E240000 000C000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000030000 0011000000190000002100000D28000000210000001900000011000000030000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000 } OnClick = StartButtonClick ParentShowHint = False ShowHint = True TabOrder = 2 end object PauseButton: TBitBtn AnchorSideLeft.Control = StartButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = StartButton AnchorSideBottom.Control = StartButton AnchorSideBottom.Side = asrBottom Left = 224 Height = 30 Top = 334 Width = 90 Anchors = [akLeft, akBottom] BorderSpacing.Left = 15 Caption = 'Pause' Glyph.Data = { 36090000424D3609000000000000360000002800000018000000180000000100 2000000000000009000064000000640000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000FFFFFF0BF8F8F813F0F0F014F0F0F014F0F0F014F0F0F014F7F7 F713FFFFFF0B00000000FFFFFF0BF7F7F713F0F0F014F0F0F014F0F0F014F0F0 F014F8F8F813FFFFFF0A00000000000000000000000000000000000000000000 000000000000DBDBDB12555957D4545856FF545856FF545856FF545856FF595D 5BFCCACBCA1500000000DCDCDC14545856F2545856FF545856FF545856FF5458 56FF656866F4D9D9D91100000000000000000000000000000000000000000000 000000000000BABABA14535755F0FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF6B6F 6DFEA4A5A51900000000BDBDBD15565A58FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFF646765FDBABABA1300000000000000000000000000000000000000000000 0000000000009F9F9F15535755F0FEFEFEFFEEF0EFFFE9ECEBFFFCFCFCFF6B6F 6DFE9091911B00000000A0A0A017565A58FFFFFFFFFFEDEEEEFFE9ECEBFFFDFD FDFF646765FD9F9F9F1400000000000000000000000000000000000000000000 00000000000087878717535755F1FDFEFDFFE9ECEBFFE6E9E8FFFBFCFCFF6B6F 6DFE7D7E7E1C0000000088888818565A58FFFFFFFFFFE8EBEAFFE6E9E7FFFDFD FDFF636665FD8686861500000000000000000000000000000000000000000000 00000000000071717118535755F1FDFDFDFFE3E7E6FFE1E5E3FFFBFBFBFF6B6F 6DFE6C6C6C1D0000000071717119565A58FFFEFFFFFFE2E6E5FFE0E5E3FFFCFD FCFF636665FD7171711700000000000000000000000000000000000000000000 0000000000005F5F5F19535755F1FDFDFDFFE2E5E4FFDCE1DFFFFAFBFAFF6B6F 6DFE5D5E5D1F000000005F5F5F1B565A58FFFEFEFEFFDCE1DFFFDBE0DEFFFCFC FCFF636665FD5D5D5D1800000000000000000000000000000000000000000000 0000000000004D4D4D1B535755F1FDFDFDFFE7EAE8FFE6E9E7FFF9FAFAFF6B6F 6DFE4E4F4E20000000004E4E4E1C565A58FFFEFEFEFFD9DEDBFFD4DBD8FFFCFC FCFF636665FD4C4C4C1900000000000000000000000000000000000000000000 0000000000003E3E3E1C535755F1FCFDFDFFE3E7E5FFE3E6E5FFF8F9F9FF6B6F 6DFE41424221000000003E3E3E1E565A58FFFEFEFEFFE3E7E5FFE2E6E4FFFBFC FBFF636665FD3C3C3C1B00000000000000000000000000000000000000000000 0000000000002F2F2F1D525654F1FCFCFCFFE0E4E2FFE0E4E2FFF8F9F8FF6B6F 6DFE34353523000000003030301F565A58FFFEFEFEFFE0E4E2FFE0E4E2FFFBFB FBFF636665FD2E2E2E1C00000000000000000000000000000000000000000000 0000000000002222221F525654F1FCFCFCFFDFE3E1FFDFE4E2FFF8F9F8FF6B6F 6DFE292A29240000000022222221565A58FFFEFEFEFFDFE4E2FFDFE4E2FFFBFB FBFF636665FD2222221D00000000000000000000000000000000000000000000 00000000000017171720525654F1FCFCFCFFDFE3E1FFDFE4E2FFF8F9F8FF6B6F 6DFE1F2020250000000017171722565A58FFFEFEFEFFDFE4E2FFDFE4E2FFFBFB FBFF626665FD1616161F00000000000000000000000000000000000000000000 0000000000000C0C0C22525654F1FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFF6B6F 6DFE16161626000000000C0C0C24565A58FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFF626665FD0B0B0B2000000000000000000000000000000000000000000000 00000000000002020223505452D6535755FF535755FF535755FF535755FF565A 58F9080808250000000002020225525654F2535755FF535755FF535755FF5357 55FF5C615EEC0101012100000000000000000000000000000000000000000000 0000000000000000001600000026000000260000002600000026000000260000 002600000017000000000000001B000000260000002600000026000000260000 0026000000260000001500000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000 } OnClick = PauseButtonClick TabOrder = 3 end object StopButton: TBitBtn AnchorSideLeft.Control = PauseButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = StartButton AnchorSideBottom.Control = PauseButton AnchorSideBottom.Side = asrBottom Left = 329 Height = 30 Hint = 'Stop recording' Top = 334 Width = 90 Anchors = [akLeft, akBottom] BorderSpacing.Left = 15 Caption = 'Stop' Glyph.Data = { 36090000424D3609000000000000360000002800000018000000180000000100 2000000000000009000064000000640000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000FFFFFF0BFFFFFF12FFFFFF12FFFFFF12FFFF FF12FFFFFF12FFFFFF12FFFFFF12FFFFFF12FFFFFF12FFFFFF12FFFFFF12FFFF FF12FFFFFF12FFFFFF0D00000000000000000000000000000000000000000000 0000000000000000000000000000F0F0F011555A57DB535755FF535755FF5357 55FF535755FF535755FF535755FF535755FF535755FF535755FF535755FF5357 55FF555857E2F2F2F21300000000000000000000000000000000000000000000 0000000000000000000000000000E3E3E312535755F9FDFDFDFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFF535755FFDBDBDB1500000000000000000000000000000000000000000000 0000000000000000000000000000D7D7D713535755F9FDFDFDFFF1F2F1FFEEEF EFFFECEEEDFFEBEDECFFE9ECEAFFE7EAE9FFE6E9E8FFE4E8E6FFE3E6E5FFFFFF FFFF535755FFD1D1D11600000000000000000000000000000000000000000000 0000000000000000000000000000B6B6B615535755F9FDFDFDFFEEF0EFFFEBED ECFFE9ECEBFFE8EBEAFFE7EAE8FFE5E9E7FFE4E7E6FFE3E6E5FFE1E5E3FFFFFF FFFF535755FFB5B5B51800000000000000000000000000000000000000000000 0000000000000000000000000000AEAEAE16535755F9FCFDFCFFE7EAE9FFE4E8 E6FFE4E7E6FFE3E6E5FFE2E6E4FFE1E5E3FFDFE4E2FFDEE3E1FFDDE2E0FFFFFF FFFF535755FFA3A3A31900000000000000000000000000000000000000000000 00000000000000000000000000009B9B9B17535755F9FCFCFCFFE1E5E3FFDDE2 E0FFDDE1DFFFDCE1DFFFDBE0DEFFDAE0DDFFDADFDDFFD9DEDCFFD8DDDBFFFFFF FFFF535755FF8E8E8E1B00000000000000000000000000000000000000000000 00000000000000000000000000007A7A7A19535755F9FBFCFBFFDFE3E1FFDBE0 DDFFD9DFDCFFD8DEDBFFD6DDDAFFD6DCD9FFD5DBD8FFD3DAD7FFD1D8D5FFFFFF FFFF535755FF8080801C00000000000000000000000000000000000000000000 00000000000000000000000000006C6C6C1A535755F9FAFBFBFFE5E8E7FFE2E6 E4FFE2E6E4FFE2E6E4FFE2E6E4FFE1E5E4FFE1E5E3FFE1E5E3FFE0E5E3FFFFFF FFFF535755FF6F6F6F1E00000000000000000000000000000000000000000000 00000000000000000000000000005E5E5E1B535755F9FAFAFAFFE1E5E4FFDFE3 E1FFDFE3E1FFDFE3E1FFDFE3E1FFDFE3E1FFDFE3E1FFDFE3E1FFDFE3E1FFFFFF FFFF535755FF5A5A5A1F00000000000000000000000000000000000000000000 00000000000000000000000000004949491C535755F9FAFAFAFFE1E5E4FFDFE3 E1FFDFE3E1FFDFE3E1FFDFE3E1FFDFE3E1FFDFE3E1FFDFE3E1FFDFE3E1FFFFFF FFFF535755FF4848482000000000000000000000000000000000000000000000 00000000000000000000000000003333331E535755F9FAFAFAFFE0E4E3FFDEE2 E0FFDEE2E0FFDEE3E1FFDEE3E1FFDEE3E1FFDEE3E1FFDFE3E1FFDFE3E1FFFFFF FFFF535755FF3535352200000000000000000000000000000000000000000000 00000000000000000000000000002121211F535755F9FAFAFAFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFF535755FF1D1D1D2300000000000000000000000000000000000000000000 000000000000000000000000000008080820505553DE535755FF535755FF5357 55FF535755FF535755FF535755FF535755FF535755FF535755FF535755FF5357 55FF525554E40E0E0E2500000000000000000000000000000000000000000000 0000000000000000000000000000000000170000002600000026000000260000 0026000000260000002600000026000000260000002600000026000000260000 0026000000260000001B00000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000100000001000000010000 0001000000010000000100000001000000010000000100000001000000010000 0001000000010000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000 } OnClick = StopButtonClick ParentShowHint = False ShowHint = True TabOrder = 1 TabStop = False end object CloseButton: TBitBtn AnchorSideTop.Control = StartButton AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = StopButton AnchorSideBottom.Side = asrBottom Left = 893 Height = 30 Top = 334 Width = 90 Anchors = [akRight, akBottom] BorderSpacing.Right = 14 Caption = '&Close' Glyph.Data = { 76060000424D7606000000000000360000002800000014000000140000000100 2000000000004006000064000000640000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000044444431454545824D4D4D0A0000 0000000000004D4D4D0A45454582444444310000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000045454582444444FF444444BE4D4D4D0A4D4D4D0A444444BE444444FF4545 4582000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000004D4D4D0A434343BD444444FF4545 45C4444444BF444444FF444444C24040400C0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000004D4D4D0A444444C0444444FF444444FF454545C54040400C0000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000004D4D4D0A444444BF4444 44FF444444FF454545C54040400C000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00004D4D4D0A444444BC444444FF454545C4444444C0444444FF444444C24040 400C000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000045454582444444FF444444BE4D4D 4D0A4D4D4D0A444444BE444444FF454545820000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000042424232454545824D4D4D0A00000000000000004D4D4D0A454545824444 4431000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000 } ModalResult = 11 OnClick = CloseButtonClick TabOrder = 0 TabStop = False end object PageControl3: TPageControl AnchorSideLeft.Control = BottomPanel AnchorSideTop.Control = BottomPanel AnchorSideRight.Control = BottomPanel AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = StartButton Left = 1 Height = 333 Top = 1 Width = 998 ActivePage = LookSheet Anchors = [akTop, akLeft, akRight, akBottom] TabIndex = 0 TabOrder = 4 TabPosition = tpLeft object LookSheet: TTabSheet Caption = 'Look' ClientHeight = 329 ClientWidth = 934 object InvertScale: TCheckBox AnchorSideLeft.Side = asrBottom Left = 24 Height = 23 Hint = 'Invert mpsas scale' Top = 16 Width = 65 Caption = 'Invert' ParentShowHint = False TabOrder = 0 OnChange = InvertScaleChange end object TemperatureCheckBox: TCheckBox AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = InvertScale AnchorSideTop.Side = asrBottom Left = 24 Height = 23 Hint = 'Show temperature scale.' Top = 39 Width = 106 Caption = 'Temperature' ParentShowHint = False ShowHint = True TabOrder = 1 OnChange = TemperatureCheckBoxChange end object NightCheckBox: TCheckBox AnchorSideLeft.Control = TemperatureCheckBox AnchorSideTop.Control = TemperatureCheckBox AnchorSideTop.Side = asrBottom Left = 24 Height = 23 Hint = 'Night mode plot' Top = 62 Width = 134 Caption = 'Night mode chart' ParentShowHint = False ShowHint = True TabOrder = 2 OnChange = NightCheckBoxChange end object FixedTimeGroupBox: TGroupBox AnchorSideLeft.Control = FixedReadingsGroupBox AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = LookSheet Left = 467 Height = 184 Top = 0 Width = 400 BorderSpacing.Left = 3 Caption = 'Fixed time (x) axis ' ClientHeight = 164 ClientWidth = 398 TabOrder = 3 object FixedTimeRadios: TRadioGroup AnchorSideLeft.Control = FixedTimeGroupBox AnchorSideTop.Control = FixedTimeGroupBox AnchorSideBottom.Control = FixedTimeGroupBox AnchorSideBottom.Side = asrBottom Left = 0 Height = 164 Top = 0 Width = 189 Anchors = [akTop, akLeft, akBottom] AutoFill = True ChildSizing.LeftRightSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 162 ClientWidth = 187 Items.Strings = ( 'Auto' 'Fixed' 'Sunset to Sunrise' 'Civil evening' 'Nautical evening' 'Astronomical evening' ) OnClick = FixedTimeRadiosClick ParentColor = False TabOrder = 0 end object FixedTimePageControl: TPageControl AnchorSideLeft.Control = FixedTimeRadios AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = FixedTimeRadios AnchorSideRight.Control = FixedTimeGroupBox AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = FixedTimeRadios AnchorSideBottom.Side = asrBottom Left = 189 Height = 164 Top = 0 Width = 209 ActivePage = FixedFixedheet Anchors = [akTop, akLeft, akRight, akBottom] ShowTabs = False TabIndex = 1 TabOrder = 1 object FixedBlankSheet: TTabSheet Caption = 'FixedBlankSheet' end object FixedFixedheet: TTabSheet Caption = 'FixedFixedheet' ClientHeight = 160 ClientWidth = 199 object FixedFromSpinEdit: TSpinEdit Left = 57 Height = 36 Top = 40 Width = 57 MaxValue = 23 OnChange = FixedFromSpinEditChange TabOrder = 0 end object FixedToSpinEdit: TSpinEdit Left = 57 Height = 36 Top = 81 Width = 57 MaxValue = 23 OnChange = FixedToSpinEditChange TabOrder = 1 end object Label17: TLabel AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = FixedFromSpinEdit AnchorSideTop.Side = asrCenter AnchorSideRight.Control = FixedFromSpinEdit Left = 21 Height = 19 Top = 49 Width = 36 Anchors = [akTop, akRight] Caption = 'From:' ParentColor = False end object Label18: TLabel AnchorSideTop.Control = FixedToSpinEdit AnchorSideTop.Side = asrCenter AnchorSideRight.Control = FixedToSpinEdit Left = 39 Height = 19 Top = 90 Width = 18 Anchors = [akTop, akRight] Caption = 'To:' ParentColor = False end object From12hrLabel: TLabel Left = 131 Height = 19 Top = 47 Width = 36 Caption = 'xx xm' ParentColor = False end object To12hrLabel: TLabel Left = 131 Height = 19 Top = 88 Width = 36 Caption = 'xx xm' ParentColor = False end end object FixedTwilightSheet: TTabSheet Caption = 'FixedTwilightSheet' ClientHeight = 160 ClientWidth = 199 object FixedTimeMemo: TMemo AnchorSideLeft.Control = FixedTwilightSheet AnchorSideTop.Control = FixedTwilightSheet AnchorSideRight.Control = FixedTwilightSheet AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = FixedTwilightSheet AnchorSideBottom.Side = asrBottom Left = 0 Height = 160 Top = 0 Width = 199 Anchors = [akTop, akLeft, akRight, akBottom] Lines.Strings = ( 'Twilight evening time range will be shown here.' ) TabOrder = 0 end end end end object FixedReadingsGroupBox: TGroupBox AnchorSideTop.Control = LookSheet AnchorSideRight.Side = asrBottom AnchorSideBottom.Side = asrBottom Left = 189 Height = 60 Top = 0 Width = 275 Anchors = [akTop] Caption = 'Fixed readings range (y axis)' ClientHeight = 40 ClientWidth = 273 TabOrder = 4 object FromReadingSpinEdit: TSpinEdit AnchorSideTop.Control = ToReadingSpinEdit AnchorSideTop.Side = asrCenter AnchorSideRight.Control = ToReadingLabel Left = 141 Height = 36 Top = 0 Width = 50 Alignment = taRightJustify Anchors = [akTop, akRight] BorderSpacing.Right = 15 MaxValue = 26 OnChange = FromReadingSpinEditChange TabOrder = 0 end object ToReadingSpinEdit: TSpinEdit AnchorSideRight.Control = FixedReadingsGroupBox AnchorSideRight.Side = asrBottom Left = 223 Height = 36 Top = 0 Width = 50 Alignment = taRightJustify Anchors = [akTop, akRight] MaxValue = 26 OnChange = ToReadingSpinEditChange TabOrder = 1 end object FromReadingLabel: TLabel AnchorSideTop.Control = ToReadingSpinEdit AnchorSideTop.Side = asrCenter AnchorSideRight.Control = FromReadingSpinEdit Left = 105 Height = 19 Top = 9 Width = 36 Anchors = [akTop, akRight] Caption = 'From:' ParentColor = False end object ToReadingLabel: TLabel AnchorSideTop.Control = ToReadingSpinEdit AnchorSideTop.Side = asrCenter AnchorSideRight.Control = ToReadingSpinEdit Left = 206 Height = 19 Top = 9 Width = 17 Anchors = [akTop, akRight] Caption = 'to:' ParentColor = False end object FixedAutoReadingsToggle: TToggleBox AnchorSideLeft.Control = FixedReadingsGroupBox AnchorSideTop.Control = ToReadingSpinEdit AnchorSideTop.Side = asrCenter Left = 0 Height = 25 Top = 6 Width = 75 Caption = 'FixedAuto' TabOrder = 2 OnChange = FixedAutoReadingsToggleChange end end end object StatusSheet: TTabSheet Caption = 'Status' ClientHeight = 329 ClientWidth = 934 object CurrentTimeLabel: TLabel AnchorSideLeft.Control = StatusSheet AnchorSideTop.Control = CurrentTime AnchorSideTop.Side = asrCenter Left = 30 Height = 19 Top = 1 Width = 83 BorderSpacing.Left = 30 BorderSpacing.Right = 3 Caption = 'Current time:' ParentColor = False end object CurrentTime: TStaticText AnchorSideLeft.Control = CurrentTimeLabel AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = StatusSheet Left = 116 Height = 20 Top = 0 Width = 168 Alignment = taCenter TabOrder = 0 end object NextRecordAtLabel: TLabel AnchorSideTop.Control = NextRecordAt AnchorSideTop.Side = asrCenter AnchorSideRight.Control = NextRecordAt Left = 22 Height = 19 Top = 22 Width = 91 Anchors = [akTop, akRight] BorderSpacing.Right = 3 Caption = 'Next record at:' ParentColor = False end object NextRecordAt: TStaticText AnchorSideLeft.Control = CurrentTime AnchorSideTop.Control = CurrentTime AnchorSideTop.Side = asrBottom Left = 116 Height = 21 Top = 21 Width = 168 Alignment = taCenter BorderSpacing.Top = 1 BorderStyle = sbsSingle TabOrder = 2 end object LabelIn: TLabel AnchorSideLeft.Control = NextRecordAt AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = NextRecordAt AnchorSideTop.Side = asrCenter Left = 290 Height = 19 Top = 22 Width = 11 BorderSpacing.Left = 6 Caption = 'in' ParentColor = False end object NextRecordIn: TStaticText AnchorSideLeft.Control = LabelIn AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = NextRecordAt AnchorSideTop.Side = asrCenter Left = 307 Height = 21 Top = 21 Width = 108 Alignment = taCenter BorderSpacing.Left = 6 BorderStyle = sbsSingle TabOrder = 3 end object RecordsloggedLabel: TLabel AnchorSideTop.Control = RecordsLogged AnchorSideTop.Side = asrCenter AnchorSideRight.Control = RecordsLogged Left = 14 Height = 19 Top = 44 Width = 99 Anchors = [akTop, akRight] BorderSpacing.Right = 3 Caption = 'Records logged:' ParentColor = False end object RecordsLogged: TStaticText AnchorSideLeft.Control = CurrentTime AnchorSideTop.Control = NextRecordAt AnchorSideTop.Side = asrBottom Left = 116 Height = 21 Top = 43 Width = 100 Alignment = taCenter BorderSpacing.Top = 1 BorderStyle = sbsSingle TabOrder = 4 end object Labelinfile: TLabel AnchorSideLeft.Control = RecordsLogged AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = RecordsLogged AnchorSideTop.Side = asrCenter Left = 219 Height = 19 Top = 44 Width = 11 BorderSpacing.Left = 3 Caption = 'in' ParentColor = False end object FilesLogged: TStaticText AnchorSideLeft.Control = Labelinfile AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = RecordsLogged AnchorSideTop.Side = asrCenter Left = 233 Height = 21 Hint = 'A new file is created each day of recording.' Top = 43 Width = 80 Alignment = taCenter BorderSpacing.Left = 3 BorderStyle = sbsSingle TabOrder = 5 end object FilesLabel: TLabel AnchorSideLeft.Control = FilesLogged AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = RecordsLogged AnchorSideTop.Side = asrCenter Left = 316 Height = 19 Hint = 'A new file is created each day of recording.' Top = 44 Width = 25 BorderSpacing.Left = 3 Caption = 'files' ParentColor = False ParentShowHint = False ShowHint = True end object OpenFileButton: TBitBtn AnchorSideLeft.Control = FilesLabel AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = RecordsLogged AnchorSideRight.Side = asrBottom Left = 341 Height = 29 Hint = 'Open .dat file' Top = 43 Width = 29 Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000404E4E6F424E 4EF53E4A4AFF3E4A4AFF3E4A4AFF3E4A4AFF3E4A4AFF3E4A4AFF3E4A4AFF3E4A 4AFF3E4A4AFF3E4A4AFF3E4A4AFF3E4A4AFF424E4EF5404D4D70455252FD889B 9BFF9AACACFF9BADADFF9CAEAEFF9EAFAFFF9FB0B0FFA1B1B1FF9FAFAFFF9CAD ADFF99AAAAFF97A7A7FF93A5A5FF90A2A2FF7A8C8CFF435151FE4A5857FFB8C5 C3FFABBAB8FFAABAB9FFABBAB8FFA9B8B7FFA9B8B6FFA9B7B7FFA7B6B4FFA6B5 B3FFA4B3B2FFA3B1B0FFA2B1AFFFA0AEACFFA3B1B0FF4A5857FF526361FFB3C1 BFFFB8C5C4FFB6C3C2FFB4C1C1FFAAB9B7FF9CADABFF96A8A7FF96A8A6FF94A6 A4FF94A5A4FF93A5A3FF92A3A1FF91A2A1FFA8B5B3FF526261FF576966FD5C6F 6CFF5C6F6CFF5C6F6CFF607370FF91A1A0FFB3BFBFFFB9C5C4FFB8C4C3FFB7C3 C2FFB6C1C1FFB5C0C0FFB4BFBFFFB2BEBDFFADB9B9FF5A6C6AFF4D5C5BFB5667 67FF566767FF566767FF555A58FFA2AFADFF697C79FF677B78FF677B78FF677B 78FF667A77FF667A77FF667A77FF647875FF647875FF617472FF50615FFB5667 67FF566767FF566767FF535755FFFFFFFFFFB6BDBAFFB3BBB8FFB3BBB8FFB3BB B8FFB3BBB8FFB3BBB8FFFAFBFBFF535856FF576767FF516260FF546564FB596B 6AFF596B6AFF596B6AFF535755FFFFFFFFFFECEEEEFFECEEEEFFECEEEEFFECEE EEFFECEEEEFFECEEEEFFFFFFFFFF535755FF596B6AFF556664FF576967FB6D7F 7DFF657977FF657977FF535755FFFFFFFFFFB6BDBAFFB6BDBAFFB6BDBAFFB6BD BAFFB6BDBAFFB6BDBAFFFFFFFFFF535755FF657977FF586A67FF5B6E6CFB8497 94FF718784FF718784FF555957FFFBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFBFBFBFF555957FF768C89FF5B6E6BFF5E7270FB99AA A8FF7C9390FF7C9390FF6D7C7AFF555957FF535755FF535755FF535755FF5357 55FF535755FF535755FF555957FF768381FF849896FF60736FF7637673FBA4B4 B2FF7C9390FF7C9390FF7C9390FF7C9390FF8DA19EFF8FA09EFE657976FB6377 74FF637774FF637774FF647774FF637674FF637875F764787373637875F4A8B7 B5FFA8B7B5FFA6B5B3FFA4B4B2FFA1B2B0FF9BACAAFF677C79F564787333FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00627874756579 76F9667A77FC667A77FC667A77FC667977FC657976F06474725CFFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008080 80046080800860808008608080086080800855555503FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 } OnClick = OpenFileButtonClick ParentShowHint = False ShowHint = True TabOrder = 1 TabStop = False end object RecordsMissedLabel: TLabel AnchorSideTop.Control = RecordsMissed AnchorSideTop.Side = asrCenter AnchorSideRight.Control = RecordsMissed Left = 14 Height = 19 Top = 65 Width = 99 Anchors = [akTop, akRight] BorderSpacing.Right = 3 Caption = 'Records missed:' ParentColor = False end object RecordsMissed: TStaticText AnchorSideLeft.Control = CurrentTime AnchorSideTop.Control = RecordsLogged AnchorSideTop.Side = asrBottom Left = 116 Height = 21 Top = 64 Width = 100 Alignment = taCenter BorderStyle = sbsSingle TabOrder = 6 end object LogfileNameLabel: TLabel AnchorSideLeft.Control = LogFileNameText AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = LogFileNameText AnchorSideTop.Side = asrCenter AnchorSideRight.Control = LogFileNameText Left = 29 Height = 19 Top = 111 Width = 84 Anchors = [akTop, akRight] BorderSpacing.Right = 3 Caption = 'Logfile name:' ParentColor = False end object LogFileNameText: TEdit AnchorSideLeft.Control = CurrentTime AnchorSideTop.Control = LogFieldNames AnchorSideTop.Side = asrBottom AnchorSideRight.Control = StatusSheet AnchorSideRight.Side = asrBottom Left = 116 Height = 25 Top = 108 Width = 818 Anchors = [akTop, akLeft, akRight] AutoSize = False BorderSpacing.Top = 1 ReadOnly = True TabStop = False TabOrder = 7 end object LogFieldNamesLabel: TLabel AnchorSideTop.Control = LogFieldNames AnchorSideTop.Side = asrCenter AnchorSideRight.Control = LogFieldNames Left = 39 Height = 19 Top = 87 Width = 77 Anchors = [akTop, akRight] Caption = 'Field names:' ParentColor = False end object LogFieldNames: TEdit AnchorSideLeft.Control = CurrentTime AnchorSideTop.Control = RecordsMissed AnchorSideTop.Side = asrBottom AnchorSideRight.Control = StatusSheet AnchorSideRight.Side = asrBottom Left = 116 Height = 21 Top = 86 Width = 818 Anchors = [akTop, akLeft, akRight] AutoSize = False BorderSpacing.Top = 1 Font.Height = -13 Font.Name = 'Courier New' Font.Pitch = fpFixed ParentFont = False TabOrder = 8 end object LogFieldUnitsLabel: TLabel AnchorSideTop.Control = LogFieldUnits AnchorSideTop.Side = asrCenter AnchorSideRight.Control = LogFieldUnits Left = 50 Height = 19 Top = 136 Width = 66 Anchors = [akTop, akRight] Caption = 'Field units:' ParentColor = False end object LogFieldUnits: TEdit AnchorSideLeft.Control = CurrentTime AnchorSideTop.Side = asrBottom AnchorSideRight.Control = StatusSheet AnchorSideRight.Side = asrBottom Left = 116 Height = 21 Top = 135 Width = 818 Anchors = [akTop, akLeft, akRight] AutoSize = False BorderSpacing.Top = 1 Font.Height = -13 Font.Name = 'Courier New' Font.Pitch = fpFixed ParentFont = False TabOrder = 9 end inline RecordsViewSynEdit: TSynEdit AnchorSideLeft.Control = CurrentTime AnchorSideTop.Control = LogFieldUnits AnchorSideTop.Side = asrBottom AnchorSideRight.Control = StatusSheet AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = StatusSheet AnchorSideBottom.Side = asrBottom Left = 116 Height = 170 Top = 157 Width = 818 BorderSpacing.Top = 1 BorderSpacing.Bottom = 2 Anchors = [akTop, akLeft, akRight, akBottom] Font.Height = -13 Font.Name = 'Courier New' Font.Pitch = fpFixed Font.Quality = fqNonAntialiased ParentColor = False ParentFont = False TabOrder = 10 Gutter.Width = 57 Gutter.MouseActions = <> RightGutter.Width = 0 RightGutter.MouseActions = <> Keystrokes = < item Command = ecUp ShortCut = 38 end item Command = ecSelUp ShortCut = 8230 end item Command = ecScrollUp ShortCut = 16422 end item Command = ecDown ShortCut = 40 end item Command = ecSelDown ShortCut = 8232 end item Command = ecScrollDown ShortCut = 16424 end item Command = ecLeft ShortCut = 37 end item Command = ecSelLeft ShortCut = 8229 end item Command = ecWordLeft ShortCut = 16421 end item Command = ecSelWordLeft ShortCut = 24613 end item Command = ecRight ShortCut = 39 end item Command = ecSelRight ShortCut = 8231 end item Command = ecWordRight ShortCut = 16423 end item Command = ecSelWordRight ShortCut = 24615 end item Command = ecPageDown ShortCut = 34 end item Command = ecSelPageDown ShortCut = 8226 end item Command = ecPageBottom ShortCut = 16418 end item Command = ecSelPageBottom ShortCut = 24610 end item Command = ecPageUp ShortCut = 33 end item Command = ecSelPageUp ShortCut = 8225 end item Command = ecPageTop ShortCut = 16417 end item Command = ecSelPageTop ShortCut = 24609 end item Command = ecLineStart ShortCut = 36 end item Command = ecSelLineStart ShortCut = 8228 end item Command = ecEditorTop ShortCut = 16420 end item Command = ecSelEditorTop ShortCut = 24612 end item Command = ecLineEnd ShortCut = 35 end item Command = ecSelLineEnd ShortCut = 8227 end item Command = ecEditorBottom ShortCut = 16419 end item Command = ecSelEditorBottom ShortCut = 24611 end item Command = ecToggleMode ShortCut = 45 end item Command = ecCopy ShortCut = 16429 end item Command = ecPaste ShortCut = 8237 end item Command = ecDeleteChar ShortCut = 46 end item Command = ecCut ShortCut = 8238 end item Command = ecDeleteLastChar ShortCut = 8 end item Command = ecDeleteLastChar ShortCut = 8200 end item Command = ecDeleteLastWord ShortCut = 16392 end item Command = ecUndo ShortCut = 32776 end item Command = ecRedo ShortCut = 40968 end item Command = ecLineBreak ShortCut = 13 end item Command = ecSelectAll ShortCut = 16449 end item Command = ecCopy ShortCut = 16451 end item Command = ecBlockIndent ShortCut = 24649 end item Command = ecLineBreak ShortCut = 16461 end item Command = ecInsertLine ShortCut = 16462 end item Command = ecDeleteWord ShortCut = 16468 end item Command = ecBlockUnindent ShortCut = 24661 end item Command = ecPaste ShortCut = 16470 end item Command = ecCut ShortCut = 16472 end item Command = ecDeleteLine ShortCut = 16473 end item Command = ecDeleteEOL ShortCut = 24665 end item Command = ecUndo ShortCut = 16474 end item Command = ecRedo ShortCut = 24666 end item Command = ecGotoMarker0 ShortCut = 16432 end item Command = ecGotoMarker1 ShortCut = 16433 end item Command = ecGotoMarker2 ShortCut = 16434 end item Command = ecGotoMarker3 ShortCut = 16435 end item Command = ecGotoMarker4 ShortCut = 16436 end item Command = ecGotoMarker5 ShortCut = 16437 end item Command = ecGotoMarker6 ShortCut = 16438 end item Command = ecGotoMarker7 ShortCut = 16439 end item Command = ecGotoMarker8 ShortCut = 16440 end item Command = ecGotoMarker9 ShortCut = 16441 end item Command = ecSetMarker0 ShortCut = 24624 end item Command = ecSetMarker1 ShortCut = 24625 end item Command = ecSetMarker2 ShortCut = 24626 end item Command = ecSetMarker3 ShortCut = 24627 end item Command = ecSetMarker4 ShortCut = 24628 end item Command = ecSetMarker5 ShortCut = 24629 end item Command = ecSetMarker6 ShortCut = 24630 end item Command = ecSetMarker7 ShortCut = 24631 end item Command = ecSetMarker8 ShortCut = 24632 end item Command = ecSetMarker9 ShortCut = 24633 end item Command = EcFoldLevel1 ShortCut = 41009 end item Command = EcFoldLevel2 ShortCut = 41010 end item Command = EcFoldLevel3 ShortCut = 41011 end item Command = EcFoldLevel4 ShortCut = 41012 end item Command = EcFoldLevel5 ShortCut = 41013 end item Command = EcFoldLevel6 ShortCut = 41014 end item Command = EcFoldLevel7 ShortCut = 41015 end item Command = EcFoldLevel8 ShortCut = 41016 end item Command = EcFoldLevel9 ShortCut = 41017 end item Command = EcFoldLevel0 ShortCut = 41008 end item Command = EcFoldCurrent ShortCut = 41005 end item Command = EcUnFoldCurrent ShortCut = 41003 end item Command = EcToggleMarkupWord ShortCut = 32845 end item Command = ecNormalSelect ShortCut = 24654 end item Command = ecColumnSelect ShortCut = 24643 end item Command = ecLineSelect ShortCut = 24652 end item Command = ecTab ShortCut = 9 end item Command = ecShiftTab ShortCut = 8201 end item Command = ecMatchBracket ShortCut = 24642 end item Command = ecColSelUp ShortCut = 40998 end item Command = ecColSelDown ShortCut = 41000 end item Command = ecColSelLeft ShortCut = 40997 end item Command = ecColSelRight ShortCut = 40999 end item Command = ecColSelPageDown ShortCut = 40994 end item Command = ecColSelPageBottom ShortCut = 57378 end item Command = ecColSelPageUp ShortCut = 40993 end item Command = ecColSelPageTop ShortCut = 57377 end item Command = ecColSelLineStart ShortCut = 40996 end item Command = ecColSelLineEnd ShortCut = 40995 end item Command = ecColSelEditorTop ShortCut = 57380 end item Command = ecColSelEditorBottom ShortCut = 57379 end> MouseActions = <> MouseTextActions = <> MouseSelActions = <> VisibleSpecialChars = [vscSpace, vscTabAtLast] RightEdge = -1 SelectedColor.BackPriority = 50 SelectedColor.ForePriority = 50 SelectedColor.FramePriority = 50 SelectedColor.BoldPriority = 50 SelectedColor.ItalicPriority = 50 SelectedColor.UnderlinePriority = 50 SelectedColor.StrikeOutPriority = 50 BracketHighlightStyle = sbhsBoth BracketMatchColor.Background = clNone BracketMatchColor.Foreground = clNone BracketMatchColor.Style = [fsBold] FoldedCodeColor.Background = clNone FoldedCodeColor.Foreground = clGray FoldedCodeColor.FrameColor = clGray MouseLinkColor.Background = clNone MouseLinkColor.Foreground = clBlue LineHighlightColor.Background = clNone LineHighlightColor.Foreground = clNone inline SynLeftGutterPartList1: TSynGutterPartList object SynGutterMarks1: TSynGutterMarks Width = 24 MouseActions = <> end object SynGutterLineNumber1: TSynGutterLineNumber Width = 17 MouseActions = <> MarkupInfo.Background = clBtnFace MarkupInfo.Foreground = clNone DigitCount = 2 ShowOnlyLineNumbersMultiplesOf = 1 ZeroStart = False LeadingZeros = False end object SynGutterChanges1: TSynGutterChanges Width = 4 MouseActions = <> ModifiedColor = 59900 SavedColor = clGreen end object SynGutterSeparator1: TSynGutterSeparator Width = 2 MouseActions = <> MarkupInfo.Background = clWhite MarkupInfo.Foreground = clGray end object SynGutterCodeFolding1: TSynGutterCodeFolding MouseActions = <> MarkupInfo.Background = clNone MarkupInfo.Foreground = clGray MouseActionsExpanded = <> MouseActionsCollapsed = <> end end end object RecordsLabel: TLabel AnchorSideTop.Control = RecordsViewSynEdit AnchorSideRight.Control = RecordsViewSynEdit Left = 63 Height = 19 Top = 157 Width = 53 Anchors = [akTop, akRight] Caption = 'Records:' ParentColor = False end object ThresholdGroupBox: TGroupBox AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = StatusSheet AnchorSideRight.Control = GoToGroup Left = 429 Height = 56 Top = 0 Width = 168 Anchors = [akTop, akRight] BorderSpacing.Left = 14 Caption = 'Threshold to record:' ClientHeight = 54 ClientWidth = 166 TabOrder = 11 object LCThreshold: TFloatSpinEdit AnchorSideLeft.Control = ThresholdGroupBox AnchorSideTop.Control = ThresholdGroupBox Left = 2 Height = 36 Hint = 'Threshold for recording' Top = 2 Width = 70 BorderSpacing.Left = 2 BorderSpacing.Top = 2 MaxValue = 30 OnChange = LCThresholdChange ParentShowHint = False ShowHint = True TabOrder = 0 end object Label1: TLabel AnchorSideLeft.Control = LCThreshold AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = LCThreshold AnchorSideTop.Side = asrCenter Left = 74 Height = 19 Top = 11 Width = 39 BorderSpacing.Left = 2 Caption = 'mpsas' ParentColor = False end object ThresholdMet: TShape AnchorSideTop.Control = LCThreshold AnchorSideTop.Side = asrCenter Left = 130 Height = 20 Hint = 'Threshold met' Top = 10 Width = 20 ParentShowHint = False Shape = stCircle ShowHint = True end end object GoToGroup: TGroupBox AnchorSideTop.Control = StatusSheet AnchorSideRight.Control = AlarmGroup Left = 597 Height = 83 Top = 0 Width = 151 Anchors = [akTop, akRight] Caption = 'GoTo:' ClientHeight = 81 ClientWidth = 149 TabOrder = 12 object GoToLogIndicatorX: TShape AnchorSideLeft.Control = GoToGroup AnchorSideTop.Control = GoToGroup Left = 13 Height = 17 Top = 0 Width = 20 Anchors = [akTop] BorderSpacing.Left = 3 Brush.Color = clLime Shape = stCircle end object GoToZenithDisplay: TStaticText AnchorSideTop.Control = GoToGroup AnchorSideRight.Control = GoToGroup AnchorSideRight.Side = asrBottom Left = 69 Height = 19 Top = 0 Width = 80 Anchors = [akTop, akRight] Caption = 'Zen:' TabOrder = 0 end object GoToAzimuthDisplay: TStaticText AnchorSideLeft.Control = GoToZenithDisplay AnchorSideTop.Control = GoToZenithDisplay AnchorSideTop.Side = asrBottom Left = 69 Height = 19 Top = 19 Width = 80 Caption = 'Azi:' TabOrder = 1 end object GoToStepDisplay: TStaticText AnchorSideTop.Control = GoToZenithDisplay AnchorSideTop.Side = asrBottom Left = 8 Height = 19 Top = 60 Width = 56 Anchors = [] TabOrder = 2 end object GoToStepsTotalDisplay: TStaticText AnchorSideTop.Control = GoToZenithDisplay AnchorSideTop.Side = asrBottom Left = 90 Height = 19 Top = 59 Width = 59 Anchors = [] TabOrder = 3 end object Label4: TLabel Left = 70 Height = 19 Top = 51 Width = 13 Caption = 'of' ParentColor = False end end object AlarmGroup: TGroupBox AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = StatusSheet AnchorSideRight.Control = StatusSheet AnchorSideRight.Side = asrBottom Left = 750 Height = 85 Top = 0 Width = 184 Anchors = [akTop, akRight] BorderSpacing.Left = 2 Caption = 'Alarm for darkness:' ClientHeight = 83 ClientWidth = 182 TabOrder = 13 object AlarmThresholdFloatSpinEdit: TFloatSpinEdit AnchorSideLeft.Control = AlarmSoundEnableCheck AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = AlarmGroup Left = 37 Height = 36 Top = 2 Width = 78 BorderSpacing.Left = 10 BorderSpacing.Top = 2 MaxValue = 30 OnChange = AlarmThresholdFloatSpinEditChange TabOrder = 0 end object Label15: TLabel AnchorSideLeft.Control = AlarmThresholdFloatSpinEdit AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = AlarmThresholdFloatSpinEdit AnchorSideTop.Side = asrCenter Left = 117 Height = 19 Top = 11 Width = 12 BorderSpacing.Left = 2 Caption = 'm' ParentColor = False end object AlarmSoundEnableCheck: TCheckBox AnchorSideLeft.Control = AlarmGroup AnchorSideTop.Control = AlarmThresholdFloatSpinEdit AnchorSideTop.Side = asrCenter Left = 4 Height = 23 Hint = 'Enable alarm' Top = 9 Width = 23 BorderSpacing.Left = 4 BorderSpacing.Top = 6 ParentShowHint = False ShowHint = True TabOrder = 1 OnChange = AlarmSoundEnableCheckChange end object AlarmTestButton: TButton AnchorSideTop.Control = AlarmThresholdFloatSpinEdit AnchorSideTop.Side = asrCenter AnchorSideRight.Control = AlarmGroup AnchorSideRight.Side = asrBottom Left = 137 Height = 25 Top = 8 Width = 41 Anchors = [akTop, akRight] BorderSpacing.Right = 4 Caption = 'Test' TabOrder = 2 OnClick = AlarmTestButtonClick end object SnoozeButton: TButton AnchorSideLeft.Control = AlarmSoundEnableCheck AnchorSideTop.Control = AlarmThresholdFloatSpinEdit AnchorSideTop.Side = asrBottom AnchorSideRight.Side = asrBottom Left = 4 Height = 22 Hint = 'Snooze for a while' Top = 44 Width = 63 BorderSpacing.Top = 6 Caption = 'Snooze' ParentShowHint = False ShowHint = True TabOrder = 3 OnClick = SnoozeButtonClick end object RepeatProgress: TProgressBar AnchorSideLeft.Control = SnoozeButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SnoozeButton AnchorSideRight.Control = AlarmGroup AnchorSideRight.Side = asrBottom Left = 69 Height = 8 Hint = 'Repeat time' Top = 46 Width = 111 Anchors = [akTop, akLeft, akRight] BorderSpacing.Around = 2 ParentShowHint = False ShowHint = True Smooth = True TabOrder = 4 end object SnoozeProgress: TProgressBar AnchorSideLeft.Control = SnoozeButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = RepeatProgress AnchorSideTop.Side = asrBottom AnchorSideRight.Control = AlarmGroup AnchorSideRight.Side = asrBottom Left = 69 Height = 8 Hint = 'Snooze time' Top = 56 Width = 111 Anchors = [akTop, akLeft, akRight] BorderSpacing.Around = 2 ParentShowHint = False ShowHint = True Smooth = True TabOrder = 5 end end object GPSLogIndicatorX: TShape AnchorSideLeft.Control = GPSLogIndicator AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = GPSLogIndicator AnchorSideTop.Side = asrCenter Left = 523 Height = 17 Top = 62 Width = 20 BorderSpacing.Left = 3 Brush.Color = clLime Shape = stCircle Visible = False end object GPSLogIndicator: TStaticText AnchorSideTop.Control = ThresholdGroupBox AnchorSideTop.Side = asrBottom Left = 489 Height = 21 Top = 60 Width = 31 Alignment = taCenter Anchors = [akTop] AutoSize = True BorderSpacing.Top = 4 Caption = 'GPS:' TabOrder = 14 Transparent = False Visible = False end end end end end end object OpenLogDialog: TOpenDialog Left = 240 Top = 464 end object FineTimer: TTimer Enabled = False OnTimer = FineTimerTimer Left = 480 Top = 536 end object StartUpTimer: TTimer Enabled = False Interval = 300 OnTimer = StartUpTimerTimer Left = 480 Top = 464 end object DateTimeIntervalChartSource1: TDateTimeIntervalChartSource Params.MaxLength = 90 Params.MinLength = 15 DateTimeFormat = 'hh:nn' Left = 688 Top = 680 end object GPSTimer: TIdleTimer Interval = 233 OnTimer = GPSTimerTimer Left = 480 Top = 608 end object TemperatureAxisTransforms: TChartAxisTransformations Left = 688 Top = 592 object TemperatureAxisTransformsAutoScaleAxisTransform: TAutoScaleAxisTransform end end object MPSASAxisTransforms: TChartAxisTransformations Left = 688 Top = 464 object MPSASAxisTransformsLinearAxisTransform1: TLinearAxisTransform Scale = -1 end object MPSASAxisTransformsAutoScaleAxisTransform1: TAutoScaleAxisTransform end end object PreAlertSound: Tplaysound About.Description.Strings = ( 'Plays WAVE sounds in Windows or Linux' ) About.Title = 'About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About PlaySound' About.Height = 400 About.Width = 400 About.Font.Color = clNavy About.Font.Height = -13 About.BackGroundColor = clCream About.Version = '0.0.7' About.Authorname = 'Gordon Bamber' About.Organisation = 'Public Domain' About.AuthorEmail = 'minesadorada@charcodelvalle.com' About.ComponentName = 'PlaySound' About.LicenseType = abModifiedGPL PlayCommand = 'play' Left = 240 Top = 536 end object FreshSound: Tplaysound About.Description.Strings = ( 'Plays WAVE sounds in Windows or Linux' ) About.Title = 'About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About PlaySound' About.Height = 400 About.Width = 400 About.Font.Color = clNavy About.Font.Height = -13 About.BackGroundColor = clCream About.Version = '0.0.7' About.Authorname = 'Gordon Bamber' About.Organisation = 'Public Domain' About.AuthorEmail = 'minesadorada@charcodelvalle.com' About.ComponentName = 'PlaySound' About.LicenseType = abModifiedGPL PlayCommand = 'play' Left = 240 Top = 608 end object AlarmSound: Tplaysound About.Description.Strings = ( 'Plays WAVE sounds in Windows or Linux' ) About.Title = 'About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About PlaySound' About.Height = 400 About.Width = 400 About.Font.Color = clNavy About.Font.Height = -13 About.BackGroundColor = clCream About.Version = '0.0.7' About.Authorname = 'Gordon Bamber' About.Organisation = 'Public Domain' About.AuthorEmail = 'minesadorada@charcodelvalle.com' About.ComponentName = 'PlaySound' About.LicenseType = abModifiedGPL PlayCommand = 'play' Left = 240 Top = 680 end object GoToCommBusy: TTimer Enabled = False Interval = 100 OnTimer = GoToCommBusyTimer Left = 480 Top = 680 end object MoonAxisTransforms: TChartAxisTransformations Left = 688 Top = 528 object MoonAxisTransformsAutoScaleAxisTransform1: TAutoScaleAxisTransform end end end ./correct49to56.pas0000644000175000017500000004651514576573021014223 0ustar anthonyanthonyunit correct49to56; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, Buttons, ComCtrls, Grids; type { Record defining results of checking file for valid conversion possibility. } TFileCheck = record Filename:String; Filepathname:String; FirmwareVersion:Integer; ModelNumber:Integer; AllowableVersion:Boolean; //Allow output file to be written based on firmware version. AllowableModel:Boolean; //Allow output file to be written based on meter model. AllowableUncorrected:Boolean; //Allow output file to be written based on not corrected yet. end; { Record defining results of checking file for valid conversion possibility. } TFileCorrect = record InFilename:String; OutFilename:String; ConversionSuccess:Boolean; //Flag to indicate success in conversion. UserQuit:Boolean; //File to indicate user quit conversion. OverwriteSelection: String; end; { TCorrectForm } TCorrectForm = class(TForm) CheckDirectoryButton: TButton; CorrectDirectoryButton: TButton; CorrectButton: TBitBtn; FileSelectButton1: TButton; FirmwareVersionLabeledEdit: TLabeledEdit; InGroupBox: TGroupBox; InputFile: TLabeledEdit; ConvertDirectoryEdit: TLabeledEdit; ModelLabeledEdit: TLabeledEdit; Memo1: TMemo; OpenDialog1: TOpenDialog; OutGroupBox: TGroupBox; OutputFile: TLabeledEdit; PageControl1: TPageControl; StatusBar1: TStatusBar; DirectoryStringGrid: TStringGrid; TabSheet1: TTabSheet; TabSheet2: TTabSheet; procedure CheckDirectoryButton1Click(Sender: TObject); procedure CheckDirectoryButtonClick(Sender: TObject); procedure CorrectButtonClick(Sender: TObject); procedure CorrectDirectoryButtonClick(Sender: TObject); procedure FileSelectButton1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure FormShow(Sender: TObject); procedure ConvertDirectoryEditChange(Sender: TObject); procedure ConvertDirectoryEditEditingDone(Sender: TObject); private procedure AddFilesToList(FilePathName: String); procedure FileCheck(var FileCheckRecord: TFileCheck); procedure CorrectFile(var WorkingFile:TFileCorrect); function CreateOutFilename(InFile:String): String; public end; var CorrectForm: TCorrectForm; ConvertFileDirectory:String; InFileName: String; OutFileName: String; SingleFileCheckRecord, MultiFileCheckRecord: TFileCheck; SingleFileCorrect, MultiFileCorrect: TFileCorrect; Correctionfactor: Real; FileCorrectionMode: String; //Multiple or Single file correction mode OverwriteMode:String = 'No'; // YesToAll, Yes, No InFileList:TStringList;//List of files to convert { Fix for multi-language issues } FPointSeparator, FCommaSeparator: TFormatSettings; implementation uses appsettings //Required to read application settings (like locations). , dateutils //Required to convert logged UTC string to TDateTime , strutils //Required for checking lines in conversion file. , LazFileUtils //required for ExtractFileNameOnly , math //for log calculations ; { TCorrectForm } function TCorrectForm.CreateOutFilename(InFile:String): String; begin CreateOutFilename := ExtractFilePath(InFile) + LazFileUtils.ExtractFileNameOnly (InFile) + '_MPSASCorr' + ExtractFileExt(InFile); end; procedure TCorrectForm.FileSelectButton1Click(Sender: TObject); var StatusTextComposeString:String; begin { Clear input filename in preparation for new selected filename} InputFile.Text:=''; { Clear status bar } StatusBar1.Panels.Items[0].Text:=''; OpenDialog1.Filter:='data log files|*.dat|All files|*.*'; OpenDialog1.InitialDir := appsettings.LogsDirectory; { Get Input filename from user } if (OpenDialog1.Execute) then begin InFileName:=OpenDialog1.FileName; InputFile.Text:=InFileName; SingleFileCheckRecord.Filepathname:=InFileName; FileCheck(SingleFileCheckRecord); FirmwareVersionLabeledEdit.Text:=Format('%d',[SingleFileCheckRecord.FirmwareVersion]); ModelLabeledEdit.Text:=Format('%d',[SingleFileCheckRecord.ModelNumber]); if SingleFileCheckRecord.AllowableModel and SingleFileCheckRecord.AllowableVersion and SingleFileCheckRecord.AllowableUncorrected then begin { Create output file name } OutFileName := CreateOutFilename(InFileName); OutputFile.Text:=OutFileName; StatusBar1.Panels.Items[0].Text:='Waiting to start correction, press "Correct" button'; CorrectButton.Enabled:=True; end else begin StatusTextComposeString:=''; //prepare status bar for error message. if not SingleFileCheckRecord.AllowableModel then StatusTextComposeString:=StatusTextComposeString+format('Invalid model %d, must be 6 to 11. ',[SingleFileCheckRecord.ModelNumber]); if not SingleFileCheckRecord.AllowableVersion then StatusTextComposeString:=StatusTextComposeString+format('Invalid firmware version %d, must be 49 to 56. ',[SingleFileCheckRecord.FirmwareVersion]); if not SingleFileCheckRecord.AllowableUncorrected then StatusTextComposeString:=StatusTextComposeString+format('This file [%s] has already been corrected, please select another.',[InFileName]); StatusBar1.Panels.Items[0].Text:=StatusTextComposeString; CorrectButton.Enabled:=False; end; end; end; { modifies FileResult record} procedure TCorrectForm.FileCheck(var FileCheckRecord: TFileCheck); var pieces: TStringList; InFile: TextFile; Str: String; Stopreading:Boolean = False; begin pieces := TStringList.Create; { Default responses } FileCheckRecord.AllowableModel:=False; FileCheckRecord.AllowableUncorrected:=False; FileCheckRecord.AllowableVersion:=False; FileCheckRecord.FirmwareVersion:=0; FileCheckRecord.ModelNumber:=0; { Check that firmware version 49-56 is valid. } { read formware version} //Start reading file. AssignFile(InFile, FileCheckRecord.Filepathname); {$I+} try Reset(InFile); StatusBar1.Panels.Items[0].Text:='Checking Input file for proper firmware version'; repeat // Read one line at a time from the file. Readln(InFile, Str); StatusBar1.Panels.Items[0].Text:='Processing : '+Str; pieces.Delimiter := '-'; pieces.StrictDelimiter := True; //Do not parse spaces also pieces.DelimitedText := Str; { Read comment lines firmware identifier line. } if AnsiStartsStr('# SQM firmware version:',Str) then begin //writeln('Count= '+IntToStr(pieces.Count)); if (pieces.Count=3) then begin {Check Model DL (6) or DL-V (11)} FileCheckRecord.ModelNumber:=StrToIntDef(pieces.Strings[1],0); if ((FileCheckRecord.ModelNumber=6) or (FileCheckRecord.ModelNumber=11)) then FileCheckRecord.AllowableModel:=True; { Check firmware version } FileCheckRecord.FirmwareVersion:=StrToIntDef(pieces.Strings[2],0); if ((FileCheckRecord.FirmwareVersion>=49) and (FileCheckRecord.FirmwareVersion<=56)) then FileCheckRecord.Allowableversion:=True; FileCheckRecord.AllowableUncorrected:=True; //Assume file has not yet been correced if pieces.Count>3 then //Check for appended text in version information if pieces.Strings[3]='CorrectedMPSAS' then FileCheckRecord.AllowableUncorrected:=False; //Do not allow correction since it has already been done. end; Stopreading:=True; // Can stop reading file now. end; until(EOF(InFile) or Stopreading); // EOF(End Of File) The the program will keep reading new lines until there is none. CloseFile(InFile); StatusBar1.Panels.Items[0].Text:='Finished checking'; except on E: EInOutError do begin MessageDlg( 'Error' , 'File handling error occurred.' + sLineBreak + 'Details: '+E.ClassName+'/'+E.Message + sLineBreak + 'Filename: ' +FileCheckRecord.Filepathname , mtError , [mbOK],0); end; end; end; procedure TCorrectForm.FormCreate(Sender: TObject); begin // Format seetings to convert a string to a float FPointSeparator := DefaultFormatSettings; FPointSeparator.DecimalSeparator := '.'; FPointSeparator.ThousandSeparator := '#';// disable the thousand separator FCommaSeparator := DefaultFormatSettings; FCommaSeparator.DecimalSeparator := ','; FCommaSeparator.ThousandSeparator := '#';// disable the thousand separator { Difference between measurements taken at 8MHz from 14.7456MHz } Correctionfactor:=2.5*(log10(14.7456e6)-log10(8e6)); InFileList:=TStringList.Create; end; procedure TCorrectForm.FormDestroy(Sender: TObject); begin InFileList.Free; end; procedure TCorrectForm.FormShow(Sender: TObject); begin ConvertFileDirectory:=appsettings.LogsDirectory; ConvertDirectoryEdit.Text:=ConvertFileDirectory; AddFilesToList(ConvertFileDirectory); end; procedure TCorrectForm.ConvertDirectoryEditChange(Sender: TObject); begin {Load up variable} ConvertFileDirectory:=ConvertDirectoryEdit.Text; { Clear directory list since it may not be correct anymore. } DirectoryStringGrid.Clear; DirectoryStringGrid.RowCount:=1; end; procedure TCorrectForm.ConvertDirectoryEditEditingDone(Sender: TObject); begin {check directory for correctable files. } CheckDirectoryButtonClick(nil); end; { Correct file } procedure TCorrectForm.CorrectFile(var WorkingFile:TFileCorrect); var InFile,OutFile: TextFile; Str: String; pieces: TStringList; index: Integer; ComposeString: String; //OutFileString: String; i: Integer; //general purpose counter MSASField: Integer = -1; //Field that contains the MSAS variable, -1 = not defined yet. RecordTypeField: Integer = -1; //Field that contains the Record Type (Initial/subsequent) variable, -1 = not defined yet. MSAS, MSASorig: Double; begin pieces := TStringList.Create; { Clear status bar } StatusBar1.Panels.Items[0].Text:=''; { Start reading file. } AssignFile(InFile, WorkingFile.InFilename); AssignFile(OutFile, WorkingFile.OutFileName); { Check file mode multi/single } if (FileExists(WorkingFile.OutFileName) and not (OverwriteMode='YesToAll')) then begin case FileCorrectionMode of 'Single': begin if (MessageDlg( 'Overwrite existing file?' ,'Do you want to overwrite the existing file?' ,mtConfirmation ,[mbOK,mbCancel],0 ) = mrOK) then OverwriteMode:='Yes' else OverwriteMode:='No'; end; 'Multiple':begin case MessageDlg( 'Overwrite existing file(s)?' ,'Do you want to overwrite the existing file(s)?' +sLineBreak + ExtractFileNameOnly(WorkingFile.OutFilename)+ExtractFileExt(WorkingFile.OutFilename) ,mtConfirmation ,[mbYesToAll,mbYes,mbNo, mbAbort],0 ) of mrYesToAll: OverwriteMode:='YesToAll'; mrYes: OverwriteMode:='Yes'; mrNo: OverwriteMode:='No'; mrAbort: OverwriteMode:='Abort'; end; end; end; end else if (not (OverwriteMode='YesToAll')) then OverwriteMode:='NA'; //Not applicable since output file does not exist, create new one. if ((OverwriteMode='YesToAll') or (OverwriteMode='Yes') or (OverwriteMode='NA')) then begin {$I+} try Reset(InFile); Rewrite(OutFile); //Open file for writing StatusBar1.Panels.Items[0].Text:='Reading Input file'; repeat // Read one line at a time from the file. Readln(InFile, Str); StatusBar1.Panels.Items[0].Text:='Processing : '+Str; //Ignore comment lines which have # as first character. if (AnsiStartsStr('#',Str)) then begin { Find out which field contains MPSAS } { Parse field definition line. } if (AnsiContainsStr(str,'UTC') and AnsiContainsStr(str,'Local') and AnsiContainsStr(str,'MSAS')) then begin pieces.Delimiter := ','; pieces.StrictDelimiter := True; //Do not parse spaces also pieces.DelimitedText := Str; { Get the field locations. } for i:=0 to pieces.Count-1 do begin if AnsiContainsStr(pieces.Strings[i],'MSAS') then MSASField:=i; if AnsiContainsStr(pieces.Strings[i],'Record type') then RecordTypeField:=i; end; end; { Touch up firmware identifier line } if AnsiStartsStr('# SQM firmware version:',Str) then WriteLn(OutFile,Str+'-CorrectedMPSAS') //Indicate that correction has been made. else { Write untouched header line } WriteLn(OutFile,Str); end else begin //Records processing. {Only start if MSAS and RecordType fields exist} if ((MSASField>0) and (RecordTypeField>0)) then begin //Separate the fields of the record. pieces.Delimiter := ';'; pieces.DelimitedText := Str; { Only convert subsequent records } ComposeString:=Str;//Default to initial reading value (no changes) if pieces.Strings[RecordTypeField]='1' then begin //parse the fields, and convert as necessary. //Convert MSAS value //bad values were brighter by 0.66MSAS, therefore corrected values should be darker (larger number). MSASorig:=StrToFloatDef(pieces.Strings[MSASField],0,FPointSeparator); { Only write valid readings (above 0.0 saturation point) } if MSASorig=0.0 then MSAS:=MSASorig else MSAS:=MSASorig + CorrectionFactor; { Compose resultant string } ComposeString:=pieces.Strings[0];//Start with first field for index:=1 to pieces.count-1 do begin if index=MSASField then ComposeString:=ComposeString+';'+format('%0.2f',[MSAS],FPointSeparator) else ComposeString:=ComposeString+';'+pieces.Strings[index]; end; end; WriteLn(OutFile,ComposeString); end //End of checking for MSAS and RecordTyoe fields else begin MessageDlg( 'Error' , 'File did not contain proper MSAS or Record Type field(s).' + sLineBreak + 'Filename: ' + WorkingFile.InFilename + sLineBreak + 'MSAS field number = ' + IntToStr(MSASField) + sLineBreak + 'Record type field number = ' + IntToStr(RecordTypeField) + sLineBreak + 'File processing aborted.' + sLineBreak , mtError , [mbOK],0); OverwriteMode:='Abort'; end; end; until(EOF(InFile) or (OverwriteMode='Abort')); // EOF(End Of File) The the program will keep reading new lines until there is none. CloseFile(InFile); StatusBar1.Panels.Items[0].Text:=format('Finished writing %s',[WorkingFile.OutFileName]); except on E: EInOutError do begin MessageDlg('Error', 'File handling error occurred. Details: '+E.ClassName+'/'+E.Message, mtError, [mbOK],0); end; end; Flush(OutFile); CloseFile(OutFile); { Check if overwrite mode was once only. } if OverwriteMode='Yes' then OverwriteMode:='No'; end;//End of OverwriteMode check. { Pass overwrite selection back to calling routine. } WorkingFile.OverwriteSelection:=OverwriteMode; end; { Correct single file button click} procedure TCorrectForm.CorrectButtonClick(Sender: TObject); begin FileCorrectionMode:='Single'; { Default overwrite mode = No } OverwriteMode:= 'No'; //Assume that InFilename and OutFileName have already been set. SingleFileCorrect.InFilename:=InFileName; SingleFileCorrect.OutFilename:=OutFileName; CorrectFile(SingleFileCorrect); end; { Check for valid files } procedure TCorrectForm.AddFilesToList(FilePathName: String); var FileSize : integer = 0; {Filesize, undetermined = 0} Row : integer = 1; {Start at row 1} FileName, FilePath : string; sr : TSearchRec; begin InFileList.Clear; { Scan through directory } FilePath := ExtractFilePath(FilePathName + DirectorySeparator); DirectoryStringGrid.RowCount:=1; {Reset file list} {Check if any files match criteria} if FindFirstUTF8(FilePath+'*.dat',faAnyFile,sr)=0 then begin repeat {Get formatted file properties} FileName := ExtractFileName(sr.Name); FileSize := sr.Size; MultiFileCheckRecord.Filename:=FileName; MultiFileCheckRecord.Filepathname:=FilePath+FileName; { Read through the current file} FileCheck(MultiFileCheckRecord); { Only list if correctable. } if (MultiFileCheckRecord.AllowableModel and MultiFileCheckRecord.AllowableVersion and MultiFileCheckRecord.AllowableUncorrected) then begin InFileList.Add(MultiFileCheckRecord.Filepathname); {Display found filename and timestamp} DirectoryStringGrid.InsertRowWithValues(Row,[ FileName , IntToStr(FileSize) , IntToStr(MultiFileCheckRecord.ModelNumber) , IntToStr(MultiFileCheckRecord.FirmwareVersion) ]); {Prepare for next file display} Row := Row + 1; end; until FindNextUTF8(sr)<>0; end; FindCloseUTF8(sr); {Initial sorting} if DirectoryStringGrid.RowCount>1 then DirectoryStringGrid.SortColRow(true, 1,1,DirectoryStringGrid.RowCount-1); end; procedure TCorrectForm.CheckDirectoryButton1Click(Sender: TObject); begin end; procedure TCorrectForm.CheckDirectoryButtonClick(Sender: TObject); begin AddFilesToList(ConvertFileDirectory); end; procedure TCorrectForm.CorrectDirectoryButtonClick(Sender: TObject); var FileName:String; begin { Default overwrite mode = No } OverwriteMode:= 'No'; FileCorrectionMode:='Multiple'; { Iterate through valid filenames. } for FileName in InFileList do begin { Set Input and Output FileNames. } MultiFileCorrect.InFilename:=FileName; MultiFileCorrect.OutFilename:=CreateOutFilename(FileName); { Correct and write each file. } CorrectFile(MultiFileCorrect); { Check if user aborted conversions} if (MultiFileCorrect.OverwriteSelection='Abort') then break; end; StatusBar1.Panels.Items[0].Text:='Finished writing corrected files.'; end; initialization {$I correct49to56.lrs} end. ./snmpsend.pas0000644000175000017500000012045714576573021013514 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 004.000.000 | |==============================================================================| | Content: SNMP client | |==============================================================================| | Copyright (c)1999-2011, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2000-2011. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | | Jean-Fabien Connault (cycocrew@worldnet.fr) | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@abstract(SNMP client) Supports SNMPv1 include traps, SNMPv2c and SNMPv3 include authorization and privacy encryption. Used RFC: RFC-1157, RFC-1901, RFC-3412, RFC-3414, RFC-3416, RFC-3826 Supported Authorization hashes: MD5, SHA1 Supported Privacy encryptions: DES, 3DES, AES } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$Q-} {$H+} {$IFDEF UNICODE} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$ENDIF} unit snmpsend; interface uses Classes, SysUtils, blcksock, synautil, asn1util, synaip, synacode, synacrypt; const cSnmpProtocol = '161'; cSnmpTrapProtocol = '162'; SNMP_V1 = 0; SNMP_V2C = 1; SNMP_V3 = 3; //PDU type PDUGetRequest = $A0; PDUGetNextRequest = $A1; PDUGetResponse = $A2; PDUSetRequest = $A3; PDUTrap = $A4; //Obsolete //for SNMPv2 PDUGetBulkRequest = $A5; PDUInformRequest = $A6; PDUTrapV2 = $A7; PDUReport = $A8; //errors ENoError = 0; ETooBig = 1; ENoSuchName = 2; EBadValue = 3; EReadOnly = 4; EGenErr = 5; //errors SNMPv2 ENoAccess = 6; EWrongType = 7; EWrongLength = 8; EWrongEncoding = 9; EWrongValue = 10; ENoCreation = 11; EInconsistentValue = 12; EResourceUnavailable = 13; ECommitFailed = 14; EUndoFailed = 15; EAuthorizationError = 16; ENotWritable = 17; EInconsistentName = 18; type {:@abstract(Possible values for SNMPv3 flags.) This flags specify level of authorization and encryption.} TV3Flags = ( NoAuthNoPriv, AuthNoPriv, AuthPriv); {:@abstract(Type of SNMPv3 authorization)} TV3Auth = ( AuthMD5, AuthSHA1); {:@abstract(Type of SNMPv3 privacy)} TV3Priv = ( PrivDES, Priv3DES, PrivAES); {:@abstract(Data object with one record of MIB OID and corresponding values.)} TSNMPMib = class(TObject) protected FOID: AnsiString; FValue: AnsiString; FValueType: Integer; published {:OID number in string format.} property OID: AnsiString read FOID write FOID; {:Value of OID object in string format.} property Value: AnsiString read FValue write FValue; {:Define type of Value. Supported values are defined in @link(asn1util). For queries use ASN1_NULL, becouse you don't know type in response!} property ValueType: Integer read FValueType write FValueType; end; {:@abstract(It holding all information for SNMPv3 agent synchronization) Used internally.} TV3Sync = record EngineID: AnsiString; EngineBoots: integer; EngineTime: integer; EngineStamp: Cardinal; end; {:@abstract(Data object abstracts SNMP data packet)} TSNMPRec = class(TObject) protected FVersion: Integer; FPDUType: Integer; FID: Integer; FErrorStatus: Integer; FErrorIndex: Integer; FCommunity: AnsiString; FSNMPMibList: TList; FMaxSize: Integer; FFlags: TV3Flags; FFlagReportable: Boolean; FContextEngineID: AnsiString; FContextName: AnsiString; FAuthMode: TV3Auth; FAuthEngineID: AnsiString; FAuthEngineBoots: integer; FAuthEngineTime: integer; FAuthEngineTimeStamp: cardinal; FUserName: AnsiString; FPassword: AnsiString; FAuthKey: AnsiString; FPrivMode: TV3Priv; FPrivPassword: AnsiString; FPrivKey: AnsiString; FPrivSalt: AnsiString; FPrivSaltCounter: integer; FOldTrapEnterprise: AnsiString; FOldTrapHost: AnsiString; FOldTrapGen: Integer; FOldTrapSpec: Integer; FOldTrapTimeTicks: Integer; function Pass2Key(const Value: AnsiString): AnsiString; function EncryptPDU(const value: AnsiString): AnsiString; function DecryptPDU(const value: AnsiString): AnsiString; public constructor Create; destructor Destroy; override; {:Decode SNMP packet in buffer to object properties.} function DecodeBuf(Buffer: AnsiString): Boolean; {:Encode obeject properties to SNMP packet.} function EncodeBuf: AnsiString; {:Clears all object properties to default values.} procedure Clear; {:Add entry to @link(SNMPMibList). For queries use value as empty string, and ValueType as ASN1_NULL.} procedure MIBAdd(const MIB, Value: AnsiString; ValueType: Integer); {:Delete entry from @link(SNMPMibList).} procedure MIBDelete(Index: Integer); {:Search @link(SNMPMibList) list for MIB and return correspond value.} function MIBGet(const MIB: AnsiString): AnsiString; {:return number of entries in MIB array.} function MIBCount: integer; {:Return MIB information from given row of MIB array.} function MIBByIndex(Index: Integer): TSNMPMib; {:List of @link(TSNMPMib) objects.} property SNMPMibList: TList read FSNMPMibList; published {:Version of SNMP packet. Default value is 0 (SNMP ver. 1). You can use value 1 for SNMPv2c or value 3 for SNMPv3.} property Version: Integer read FVersion write FVersion; {:Community string for autorize access to SNMP server. (Case sensitive!) Community string is not used in SNMPv3! Use @link(Username) and @link(password) instead!} property Community: AnsiString read FCommunity write FCommunity; {:Define type of SNMP operation.} property PDUType: Integer read FPDUType write FPDUType; {:Contains ID number. Not need to use.} property ID: Integer read FID write FID; {:When packet is reply, contains error code. Supported values are defined by E* constants.} property ErrorStatus: Integer read FErrorStatus write FErrorStatus; {:Point to error position in reply packet. Not usefull for users. It only good for debugging!} property ErrorIndex: Integer read FErrorIndex write FErrorIndex; {:special value for GetBulkRequest of SNMPv2 and v3.} property NonRepeaters: Integer read FErrorStatus write FErrorStatus; {:special value for GetBulkRequest of SNMPv2 and v3.} property MaxRepetitions: Integer read FErrorIndex write FErrorIndex; {:Maximum message size in bytes for SNMPv3. For sending is default 1472 bytes.} property MaxSize: Integer read FMaxSize write FMaxSize; {:Specify if message is authorised or encrypted. Used only in SNMPv3.} property Flags: TV3Flags read FFlags write FFlags; {:For SNMPv3.... If is @true, SNMP agent must send reply (at least with some error).} property FlagReportable: Boolean read FFlagReportable write FFlagReportable; {:For SNMPv3. If not specified, is used value from @link(AuthEngineID)} property ContextEngineID: AnsiString read FContextEngineID write FContextEngineID; {:For SNMPv3.} property ContextName: AnsiString read FContextName write FContextName; {:For SNMPv3. Specify Authorization mode. (specify used hash for authorization)} property AuthMode: TV3Auth read FAuthMode write FAuthMode; {:For SNMPv3. Specify Privacy mode.} property PrivMode: TV3Priv read FPrivMode write FPrivMode; {:value used by SNMPv3 authorisation for synchronization with SNMP agent.} property AuthEngineID: AnsiString read FAuthEngineID write FAuthEngineID; {:value used by SNMPv3 authorisation for synchronization with SNMP agent.} property AuthEngineBoots: Integer read FAuthEngineBoots write FAuthEngineBoots; {:value used by SNMPv3 authorisation for synchronization with SNMP agent.} property AuthEngineTime: Integer read FAuthEngineTime write FAuthEngineTime; {:value used by SNMPv3 authorisation for synchronization with SNMP agent.} property AuthEngineTimeStamp: Cardinal read FAuthEngineTimeStamp Write FAuthEngineTimeStamp; {:SNMPv3 authorization username} property UserName: AnsiString read FUserName write FUserName; {:SNMPv3 authorization password} property Password: AnsiString read FPassword write FPassword; {:For SNMPv3. Computed Athorization key from @link(password).} property AuthKey: AnsiString read FAuthKey write FAuthKey; {:SNMPv3 privacy password} property PrivPassword: AnsiString read FPrivPassword write FPrivPassword; {:For SNMPv3. Computed Privacy key from @link(PrivPassword).} property PrivKey: AnsiString read FPrivKey write FPrivKey; {:MIB value to identify the object that sent the TRAPv1.} property OldTrapEnterprise: AnsiString read FOldTrapEnterprise write FOldTrapEnterprise; {:Address of TRAPv1 sender (IP address).} property OldTrapHost: AnsiString read FOldTrapHost write FOldTrapHost; {:Generic TRAPv1 identification.} property OldTrapGen: Integer read FOldTrapGen write FOldTrapGen; {:Specific TRAPv1 identification.} property OldTrapSpec: Integer read FOldTrapSpec write FOldTrapSpec; {:Number of 1/100th of seconds since last reboot or power up. (for TRAPv1)} property OldTrapTimeTicks: Integer read FOldTrapTimeTicks write FOldTrapTimeTicks; end; {:@abstract(Implementation of SNMP protocol.) Note: Are you missing properties for specify server address and port? Look to parent @link(TSynaClient) too!} TSNMPSend = class(TSynaClient) protected FSock: TUDPBlockSocket; FBuffer: AnsiString; FHostIP: AnsiString; FQuery: TSNMPRec; FReply: TSNMPRec; function InternalSendSnmp(const Value: TSNMPRec): Boolean; function InternalRecvSnmp(const Value: TSNMPRec): Boolean; function InternalSendRequest(const QValue, RValue: TSNMPRec): Boolean; function GetV3EngineID: AnsiString; function GetV3Sync: TV3Sync; public constructor Create; destructor Destroy; override; {:Connects to a Host and send there query. If in timeout SNMP server send back query, result is @true. If is used SNMPv3, then it synchronize self with SNMPv3 agent first. (It is needed for SNMPv3 auhorization!)} function SendRequest: Boolean; {:Send SNMP packet only, but not waits for reply. Good for sending traps.} function SendTrap: Boolean; {:Receive SNMP packet only. Good for receiving traps.} function RecvTrap: Boolean; {:Mapped to @link(SendRequest) internally. This function is only for backward compatibility.} function DoIt: Boolean; published {:contains raw binary form of SNMP packet. Good for debugging.} property Buffer: AnsiString read FBuffer write FBuffer; {:After SNMP operation hold IP address of remote side.} property HostIP: AnsiString read FHostIP; {:Data object contains SNMP query.} property Query: TSNMPRec read FQuery; {:Data object contains SNMP reply.} property Reply: TSNMPRec read FReply; {:Socket object used for TCP/IP operation. Good for seting OnStatus hook, etc.} property Sock: TUDPBlockSocket read FSock; end; {:A very useful function and example of its use would be found in the TSNMPSend object. It implements basic GET method of the SNMP protocol. The MIB value is located in the "OID" variable, and is sent to the requested "SNMPHost" with the proper "Community" access identifier. Upon a successful retrieval, "Value" will contain the information requested. If the SNMP operation is successful, the result returns @true.} function SNMPGet(const OID, Community, SNMPHost: AnsiString; var Value: AnsiString): Boolean; {:This is useful function and example of use TSNMPSend object. It implements the basic SET method of the SNMP protocol. If the SNMP operation is successful, the result is @true. "Value" is value of MIB Oid for "SNMPHost" with "Community" access identifier. You must specify "ValueType" too.} function SNMPSet(const OID, Community, SNMPHost, Value: AnsiString; ValueType: Integer): Boolean; {:A very useful function and example of its use would be found in the TSNMPSend object. It implements basic GETNEXT method of the SNMP protocol. The MIB value is located in the "OID" variable, and is sent to the requested "SNMPHost" with the proper "Community" access identifier. Upon a successful retrieval, "Value" will contain the information requested. If the SNMP operation is successful, the result returns @true.} function SNMPGetNext(var OID: AnsiString; const Community, SNMPHost: AnsiString; var Value: AnsiString): Boolean; {:A very useful function and example of its use would be found in the TSNMPSend object. It implements basic read of SNMP MIB tables. As BaseOID you must specify basic MIB OID of requested table (base IOD is OID without row and column specificator!) Table is readed into stringlist, where each string is comma delimited string. Warning: this function is not have best performance. For better performance you must write your own function. best performace you can get by knowledge of structuture of table and by more then one MIB on one query. } function SNMPGetTable(const BaseOID, Community, SNMPHost: AnsiString; const Value: TStrings): Boolean; {:A very useful function and example of its use would be found in the TSNMPSend object. It implements basic read of SNMP MIB table element. As BaseOID you must specify basic MIB OID of requested table (base IOD is OID without row and column specificator!) As next you must specify identificator of row and column for specify of needed field of table.} function SNMPGetTableElement(const BaseOID, RowID, ColID, Community, SNMPHost: AnsiString; var Value: AnsiString): Boolean; {:A very useful function and example of its use would be found in the TSNMPSend object. It implements a TRAPv1 to send with all data in the parameters.} function SendTrap(const Dest, Source, Enterprise, Community: AnsiString; Generic, Specific, Seconds: Integer; const MIBName, MIBValue: AnsiString; MIBtype: Integer): Integer; {:A very useful function and example of its use would be found in the TSNMPSend object. It receives a TRAPv1 and returns all the data that comes with it.} function RecvTrap(var Dest, Source, Enterprise, Community: AnsiString; var Generic, Specific, Seconds: Integer; const MIBName, MIBValue: TStringList): Integer; implementation {==============================================================================} constructor TSNMPRec.Create; begin inherited Create; FSNMPMibList := TList.Create; Clear; FAuthMode := AuthMD5; FPassword := ''; FPrivMode := PrivDES; FPrivPassword := ''; FID := 1; FMaxSize := 1472; end; destructor TSNMPRec.Destroy; var i: Integer; begin for i := 0 to FSNMPMibList.Count - 1 do TSNMPMib(FSNMPMibList[i]).Free; FSNMPMibList.Clear; FSNMPMibList.Free; inherited Destroy; end; function TSNMPRec.Pass2Key(const Value: AnsiString): AnsiString; var key: AnsiString; begin case FAuthMode of AuthMD5: begin key := MD5LongHash(Value, 1048576); Result := MD5(key + FAuthEngineID + key); end; AuthSHA1: begin key := SHA1LongHash(Value, 1048576); Result := SHA1(key + FAuthEngineID + key); end; else Result := ''; end; end; function TSNMPRec.DecryptPDU(const value: AnsiString): AnsiString; var des: TSynaDes; des3: TSyna3Des; aes: TSynaAes; s: string; begin FPrivKey := ''; if FFlags <> AuthPriv then Result := value else begin case FPrivMode of Priv3DES: begin FPrivKey := Pass2Key(FPrivPassword); FPrivKey := FPrivKey + Pass2Key(FPrivKey); des3 := TSyna3Des.Create(PadString(FPrivKey, 24, #0)); try s := PadString(FPrivKey, 32, #0); delete(s, 1, 24); des3.SetIV(xorstring(s, FPrivSalt)); s := des3.DecryptCBC(value); Result := s; finally des3.free; end; end; PrivAES: begin FPrivKey := Pass2Key(FPrivPassword); aes := TSynaAes.Create(PadString(FPrivKey, 16, #0)); try s := CodeLongInt(FAuthEngineBoots) + CodeLongInt(FAuthEngineTime) + FPrivSalt; aes.SetIV(s); s := aes.DecryptCFBblock(value); Result := s; finally aes.free; end; end; else //PrivDES as default begin FPrivKey := Pass2Key(FPrivPassword); des := TSynaDes.Create(PadString(FPrivKey, 8, #0)); try s := PadString(FPrivKey, 16, #0); delete(s, 1, 8); des.SetIV(xorstring(s, FPrivSalt)); s := des.DecryptCBC(value); Result := s; finally des.free; end; end; end; end; end; function TSNMPRec.DecodeBuf(Buffer: AnsiString): Boolean; var Pos: Integer; EndPos: Integer; sm, sv: AnsiString; Svt: Integer; s: AnsiString; Spos: integer; x: Byte; begin Clear; Result := False; if Length(Buffer) < 2 then Exit; if (Ord(Buffer[1]) and $20) = 0 then Exit; Pos := 2; EndPos := ASNDecLen(Pos, Buffer); if Length(Buffer) < (EndPos + 2) then Exit; Self.FVersion := StrToIntDef(ASNItem(Pos, Buffer, Svt), 0); if FVersion = 3 then begin ASNItem(Pos, Buffer, Svt); //header data seq ASNItem(Pos, Buffer, Svt); //ID FMaxSize := StrToIntDef(ASNItem(Pos, Buffer, Svt), 0); s := ASNItem(Pos, Buffer, Svt); x := 0; if s <> '' then x := Ord(s[1]); FFlagReportable := (x and 4) > 0; x := x and 3; case x of 1: FFlags := AuthNoPriv; 3: FFlags := AuthPriv; else FFlags := NoAuthNoPriv; end; x := StrToIntDef(ASNItem(Pos, Buffer, Svt), 0); s := ASNItem(Pos, Buffer, Svt); //SecurityParameters //if SecurityModel is USM, then try to decode SecurityParameters if (x = 3) and (s <> '') then begin spos := 1; ASNItem(SPos, s, Svt); FAuthEngineID := ASNItem(SPos, s, Svt); FAuthEngineBoots := StrToIntDef(ASNItem(SPos, s, Svt), 0); FAuthEngineTime := StrToIntDef(ASNItem(SPos, s, Svt), 0); FAuthEngineTimeStamp := GetTick; FUserName := ASNItem(SPos, s, Svt); FAuthKey := ASNItem(SPos, s, Svt); FPrivSalt := ASNItem(SPos, s, Svt); end; //scopedPDU if FFlags = AuthPriv then begin x := Pos; s := ASNItem(Pos, Buffer, Svt); if Svt <> ASN1_OCTSTR then exit; s := DecryptPDU(s); //replace encoded content by decoded version and continue Buffer := copy(Buffer, 1, x - 1); Buffer := Buffer + s; Pos := x; if length(Buffer) < EndPos then EndPos := length(buffer); end; ASNItem(Pos, Buffer, Svt); //skip sequence mark FContextEngineID := ASNItem(Pos, Buffer, Svt); FContextName := ASNItem(Pos, Buffer, Svt); end else begin //old packet Self.FCommunity := ASNItem(Pos, Buffer, Svt); end; ASNItem(Pos, Buffer, Svt); Self.FPDUType := Svt; if Self.FPDUType = PDUTrap then begin FOldTrapEnterprise := ASNItem(Pos, Buffer, Svt); FOldTrapHost := ASNItem(Pos, Buffer, Svt); FOldTrapGen := StrToIntDef(ASNItem(Pos, Buffer, Svt), 0); FOldTrapSpec := StrToIntDef(ASNItem(Pos, Buffer, Svt), 0); FOldTrapTimeTicks := StrToIntDef(ASNItem(Pos, Buffer, Svt), 0); end else begin Self.FID := StrToIntDef(ASNItem(Pos, Buffer, Svt), 0); Self.FErrorStatus := StrToIntDef(ASNItem(Pos, Buffer, Svt), 0); Self.FErrorIndex := StrToIntDef(ASNItem(Pos, Buffer, Svt), 0); end; ASNItem(Pos, Buffer, Svt); while Pos < EndPos do begin ASNItem(Pos, Buffer, Svt); Sm := ASNItem(Pos, Buffer, Svt); Sv := ASNItem(Pos, Buffer, Svt); if sm <> '' then Self.MIBAdd(sm, sv, Svt); end; Result := True; end; function TSNMPRec.EncryptPDU(const value: AnsiString): AnsiString; var des: TSynaDes; des3: TSyna3Des; aes: TSynaAes; s: string; x: integer; begin FPrivKey := ''; if FFlags <> AuthPriv then Result := Value else begin case FPrivMode of Priv3DES: begin FPrivKey := Pass2Key(FPrivPassword); FPrivKey := FPrivKey + Pass2Key(FPrivKey); des3 := TSyna3Des.Create(PadString(FPrivKey, 24, #0)); try s := PadString(FPrivKey, 32, #0); delete(s, 1, 24); FPrivSalt := CodeLongInt(FAuthEngineBoots) + CodeLongInt(FPrivSaltCounter); inc(FPrivSaltCounter); s := xorstring(s, FPrivSalt); des3.SetIV(s); x := length(value) mod 8; x := 8 - x; if x = 8 then x := 0; s := des3.EncryptCBC(value + Stringofchar(#0, x)); Result := ASNObject(s, ASN1_OCTSTR); finally des3.free; end; end; PrivAES: begin FPrivKey := Pass2Key(FPrivPassword); aes := TSynaAes.Create(PadString(FPrivKey, 16, #0)); try FPrivSalt := CodeLongInt(0) + CodeLongInt(FPrivSaltCounter); inc(FPrivSaltCounter); s := CodeLongInt(FAuthEngineBoots) + CodeLongInt(FAuthEngineTime) + FPrivSalt; aes.SetIV(s); s := aes.EncryptCFBblock(value); Result := ASNObject(s, ASN1_OCTSTR); finally aes.free; end; end; else //PrivDES as default begin FPrivKey := Pass2Key(FPrivPassword); des := TSynaDes.Create(PadString(FPrivKey, 8, #0)); try s := PadString(FPrivKey, 16, #0); delete(s, 1, 8); FPrivSalt := CodeLongInt(FAuthEngineBoots) + CodeLongInt(FPrivSaltCounter); inc(FPrivSaltCounter); s := xorstring(s, FPrivSalt); des.SetIV(s); x := length(value) mod 8; x := 8 - x; if x = 8 then x := 0; s := des.EncryptCBC(value + Stringofchar(#0, x)); Result := ASNObject(s, ASN1_OCTSTR); finally des.free; end; end; end; end; end; function TSNMPRec.EncodeBuf: AnsiString; var s: AnsiString; SNMPMib: TSNMPMib; n: Integer; pdu, head, auth, authbeg: AnsiString; x: Byte; begin pdu := ''; for n := 0 to FSNMPMibList.Count - 1 do begin SNMPMib := TSNMPMib(FSNMPMibList[n]); case SNMPMib.ValueType of ASN1_INT: s := ASNObject(MibToID(SNMPMib.OID), ASN1_OBJID) + ASNObject(ASNEncInt(StrToIntDef(SNMPMib.Value, 0)), SNMPMib.ValueType); ASN1_COUNTER, ASN1_GAUGE, ASN1_TIMETICKS: s := ASNObject(MibToID(SNMPMib.OID), ASN1_OBJID) + ASNObject(ASNEncUInt(StrToIntDef(SNMPMib.Value, 0)), SNMPMib.ValueType); ASN1_OBJID: s := ASNObject(MibToID(SNMPMib.OID), ASN1_OBJID) + ASNObject(MibToID(SNMPMib.Value), SNMPMib.ValueType); ASN1_IPADDR: s := ASNObject(MibToID(SNMPMib.OID), ASN1_OBJID) + ASNObject(IPToID(SNMPMib.Value), SNMPMib.ValueType); ASN1_NULL: s := ASNObject(MibToID(SNMPMib.OID), ASN1_OBJID) + ASNObject('', ASN1_NULL); else s := ASNObject(MibToID(SNMPMib.OID), ASN1_OBJID) + ASNObject(SNMPMib.Value, SNMPMib.ValueType); end; pdu := pdu + ASNObject(s, ASN1_SEQ); end; pdu := ASNObject(pdu, ASN1_SEQ); if Self.FPDUType = PDUTrap then pdu := ASNObject(MibToID(FOldTrapEnterprise), ASN1_OBJID) + ASNObject(IPToID(FOldTrapHost), ASN1_IPADDR) + ASNObject(ASNEncInt(FOldTrapGen), ASN1_INT) + ASNObject(ASNEncInt(FOldTrapSpec), ASN1_INT) + ASNObject(ASNEncUInt(FOldTrapTimeTicks), ASN1_TIMETICKS) + pdu else pdu := ASNObject(ASNEncInt(Self.FID), ASN1_INT) + ASNObject(ASNEncInt(Self.FErrorStatus), ASN1_INT) + ASNObject(ASNEncInt(Self.FErrorIndex), ASN1_INT) + pdu; pdu := ASNObject(pdu, Self.FPDUType); if FVersion = 3 then begin if FContextEngineID = '' then FContextEngineID := FAuthEngineID; //complete PDUv3... pdu := ASNObject(FContextEngineID, ASN1_OCTSTR) + ASNObject(FContextName, ASN1_OCTSTR) + pdu; pdu := ASNObject(pdu, ASN1_SEQ); //encrypt PDU if Priv mode is enabled pdu := EncryptPDU(pdu); //prepare flags case FFlags of AuthNoPriv: x := 1; AuthPriv: x := 3; else x := 0; end; if FFlagReportable then x := x or 4; head := ASNObject(ASNEncInt(Self.FVersion), ASN1_INT); s := ASNObject(ASNEncInt(FID), ASN1_INT) + ASNObject(ASNEncInt(FMaxSize), ASN1_INT) + ASNObject(AnsiChar(x), ASN1_OCTSTR) //encode security model USM + ASNObject(ASNEncInt(3), ASN1_INT); head := head + ASNObject(s, ASN1_SEQ); //compute engine time difference if FAuthEngineTimeStamp = 0 then //out of sync x := 0 else x := TickDelta(FAuthEngineTimeStamp, GetTick) div 1000; authbeg := ASNObject(FAuthEngineID, ASN1_OCTSTR) + ASNObject(ASNEncInt(FAuthEngineBoots), ASN1_INT) + ASNObject(ASNEncInt(FAuthEngineTime + x), ASN1_INT) + ASNObject(FUserName, ASN1_OCTSTR); case FFlags of AuthNoPriv, AuthPriv: begin s := authbeg + ASNObject(StringOfChar(#0, 12), ASN1_OCTSTR) + ASNObject(FPrivSalt, ASN1_OCTSTR); s := ASNObject(s, ASN1_SEQ); s := head + ASNObject(s, ASN1_OCTSTR); s := ASNObject(s + pdu, ASN1_SEQ); //in s is entire packet without auth info... case FAuthMode of AuthMD5: begin s := HMAC_MD5(s, Pass2Key(FPassword) + StringOfChar(#0, 48)); //strip to HMAC-MD5-96 delete(s, 13, 4); end; AuthSHA1: begin s := HMAC_SHA1(s, Pass2Key(FPassword) + StringOfChar(#0, 44)); //strip to HMAC-SHA-96 delete(s, 13, 8); end; else s := ''; end; FAuthKey := s; end; end; auth := authbeg + ASNObject(FAuthKey, ASN1_OCTSTR) + ASNObject(FPrivSalt, ASN1_OCTSTR); auth := ASNObject(auth, ASN1_SEQ); head := head + ASNObject(auth, ASN1_OCTSTR); Result := ASNObject(head + pdu, ASN1_SEQ); end else begin head := ASNObject(ASNEncInt(Self.FVersion), ASN1_INT) + ASNObject(Self.FCommunity, ASN1_OCTSTR); Result := ASNObject(head + pdu, ASN1_SEQ); end; inc(self.FID); end; procedure TSNMPRec.Clear; var i: Integer; begin FVersion := SNMP_V1; FCommunity := 'public'; FUserName := ''; FPDUType := 0; FErrorStatus := 0; FErrorIndex := 0; for i := 0 to FSNMPMibList.Count - 1 do TSNMPMib(FSNMPMibList[i]).Free; FSNMPMibList.Clear; FOldTrapEnterprise := ''; FOldTrapHost := ''; FOldTrapGen := 0; FOldTrapSpec := 0; FOldTrapTimeTicks := 0; FFlags := NoAuthNoPriv; FFlagReportable := false; FContextEngineID := ''; FContextName := ''; FAuthEngineID := ''; FAuthEngineBoots := 0; FAuthEngineTime := 0; FAuthEngineTimeStamp := 0; FAuthKey := ''; FPrivKey := ''; FPrivSalt := ''; FPrivSaltCounter := random(maxint); end; procedure TSNMPRec.MIBAdd(const MIB, Value: AnsiString; ValueType: Integer); var SNMPMib: TSNMPMib; begin SNMPMib := TSNMPMib.Create; SNMPMib.OID := MIB; SNMPMib.Value := Value; SNMPMib.ValueType := ValueType; FSNMPMibList.Add(SNMPMib); end; procedure TSNMPRec.MIBDelete(Index: Integer); begin if (Index >= 0) and (Index < MIBCount) then begin TSNMPMib(FSNMPMibList[Index]).Free; FSNMPMibList.Delete(Index); end; end; function TSNMPRec.MIBCount: integer; begin Result := FSNMPMibList.Count; end; function TSNMPRec.MIBByIndex(Index: Integer): TSNMPMib; begin Result := nil; if (Index >= 0) and (Index < MIBCount) then Result := TSNMPMib(FSNMPMibList[Index]); end; function TSNMPRec.MIBGet(const MIB: AnsiString): AnsiString; var i: Integer; begin Result := ''; for i := 0 to MIBCount - 1 do begin if ((TSNMPMib(FSNMPMibList[i])).OID = MIB) then begin Result := (TSNMPMib(FSNMPMibList[i])).Value; Break; end; end; end; {==============================================================================} constructor TSNMPSend.Create; begin inherited Create; FQuery := TSNMPRec.Create; FReply := TSNMPRec.Create; FQuery.Clear; FReply.Clear; FSock := TUDPBlockSocket.Create; FSock.Owner := self; FTimeout := 5000; FTargetPort := cSnmpProtocol; FHostIP := ''; end; destructor TSNMPSend.Destroy; begin FSock.Free; FReply.Free; FQuery.Free; inherited Destroy; end; function TSNMPSend.InternalSendSnmp(const Value: TSNMPRec): Boolean; begin FBuffer := Value.EncodeBuf; FSock.SendString(FBuffer); Result := FSock.LastError = 0; end; function TSNMPSend.InternalRecvSnmp(const Value: TSNMPRec): Boolean; begin Result := False; FReply.Clear; FHostIP := cAnyHost; FBuffer := FSock.RecvPacket(FTimeout); if FSock.LastError = 0 then begin FHostIP := FSock.GetRemoteSinIP; Result := Value.DecodeBuf(FBuffer); end; end; function TSNMPSend.InternalSendRequest(const QValue, RValue: TSNMPRec): Boolean; begin Result := False; RValue.AuthMode := QValue.AuthMode; RValue.Password := QValue.Password; RValue.PrivMode := QValue.PrivMode; RValue.PrivPassword := QValue.PrivPassword; FSock.Bind(FIPInterface, cAnyPort); FSock.Connect(FTargetHost, FTargetPort); if InternalSendSnmp(QValue) then Result := InternalRecvSnmp(RValue); end; function TSNMPSend.SendRequest: Boolean; var sync: TV3Sync; begin Result := False; if FQuery.FVersion = 3 then begin sync := GetV3Sync; FQuery.AuthEngineBoots := Sync.EngineBoots; FQuery.AuthEngineTime := Sync.EngineTime; FQuery.AuthEngineTimeStamp := Sync.EngineStamp; FQuery.AuthEngineID := Sync.EngineID; end; Result := InternalSendRequest(FQuery, FReply); end; function TSNMPSend.SendTrap: Boolean; begin FSock.Bind(FIPInterface, cAnyPort); FSock.Connect(FTargetHost, FTargetPort); Result := InternalSendSnmp(FQuery); end; function TSNMPSend.RecvTrap: Boolean; begin FSock.Bind(FIPInterface, FTargetPort); Result := InternalRecvSnmp(FReply); end; function TSNMPSend.DoIt: Boolean; begin Result := SendRequest; end; function TSNMPSend.GetV3EngineID: AnsiString; var DisQuery: TSNMPRec; begin Result := ''; DisQuery := TSNMPRec.Create; try DisQuery.Version := 3; DisQuery.UserName := ''; DisQuery.FlagReportable := True; DisQuery.PDUType := PDUGetRequest; if InternalSendRequest(DisQuery, FReply) then Result := FReply.FAuthEngineID; finally DisQuery.Free; end; end; function TSNMPSend.GetV3Sync: TV3Sync; var SyncQuery: TSNMPRec; begin Result.EngineID := GetV3EngineID; Result.EngineBoots := FReply.AuthEngineBoots; Result.EngineTime := FReply.AuthEngineTime; Result.EngineStamp := FReply.AuthEngineTimeStamp; if Result.EngineTime = 0 then begin //still not have sync... SyncQuery := TSNMPRec.Create; try SyncQuery.Version := 3; SyncQuery.UserName := FQuery.UserName; SyncQuery.Password := FQuery.Password; SyncQuery.FlagReportable := True; SyncQuery.Flags := FQuery.Flags; SyncQuery.AuthMode := FQuery.AuthMode; SyncQuery.PrivMode := FQuery.PrivMode; SyncQuery.PrivPassword := FQuery.PrivPassword; SyncQuery.PDUType := PDUGetRequest; SyncQuery.AuthEngineID := FReply.FAuthEngineID; if InternalSendRequest(SyncQuery, FReply) then begin Result.EngineBoots := FReply.AuthEngineBoots; Result.EngineTime := FReply.AuthEngineTime; Result.EngineStamp := FReply.AuthEngineTimeStamp; end; finally SyncQuery.Free; end; end; end; {==============================================================================} function SNMPGet(const OID, Community, SNMPHost: AnsiString; var Value: AnsiString): Boolean; var SNMPSend: TSNMPSend; begin SNMPSend := TSNMPSend.Create; try SNMPSend.Query.Clear; SNMPSend.Query.Community := Community; SNMPSend.Query.PDUType := PDUGetRequest; SNMPSend.Query.MIBAdd(OID, '', ASN1_NULL); SNMPSend.TargetHost := SNMPHost; Result := SNMPSend.SendRequest; Value := ''; if Result then Value := SNMPSend.Reply.MIBGet(OID); finally SNMPSend.Free; end; end; function SNMPSet(const OID, Community, SNMPHost, Value: AnsiString; ValueType: Integer): Boolean; var SNMPSend: TSNMPSend; begin SNMPSend := TSNMPSend.Create; try SNMPSend.Query.Clear; SNMPSend.Query.Community := Community; SNMPSend.Query.PDUType := PDUSetRequest; SNMPSend.Query.MIBAdd(OID, Value, ValueType); SNMPSend.TargetHost := SNMPHost; Result := SNMPSend.Sendrequest = True; finally SNMPSend.Free; end; end; function InternalGetNext(const SNMPSend: TSNMPSend; var OID: AnsiString; const Community: AnsiString; var Value: AnsiString): Boolean; begin SNMPSend.Query.Clear; SNMPSend.Query.ID := SNMPSend.Query.ID + 1; SNMPSend.Query.Community := Community; SNMPSend.Query.PDUType := PDUGetNextRequest; SNMPSend.Query.MIBAdd(OID, '', ASN1_NULL); Result := SNMPSend.Sendrequest; Value := ''; if Result then if SNMPSend.Reply.SNMPMibList.Count > 0 then begin OID := TSNMPMib(SNMPSend.Reply.SNMPMibList[0]).OID; Value := TSNMPMib(SNMPSend.Reply.SNMPMibList[0]).Value; end; end; function SNMPGetNext(var OID: AnsiString; const Community, SNMPHost: AnsiString; var Value: AnsiString): Boolean; var SNMPSend: TSNMPSend; begin SNMPSend := TSNMPSend.Create; try SNMPSend.TargetHost := SNMPHost; Result := InternalGetNext(SNMPSend, OID, Community, Value); finally SNMPSend.Free; end; end; function SNMPGetTable(const BaseOID, Community, SNMPHost: AnsiString; const Value: TStrings): Boolean; var OID: AnsiString; s: AnsiString; col,row: String; x: integer; SNMPSend: TSNMPSend; RowList: TStringList; begin Value.Clear; SNMPSend := TSNMPSend.Create; RowList := TStringList.Create; try SNMPSend.TargetHost := SNMPHost; OID := BaseOID; repeat Result := InternalGetNext(SNMPSend, OID, Community, s); if Pos(BaseOID, OID) <> 1 then break; row := separateright(oid, baseoid + '.'); col := fetch(row, '.'); if IsBinaryString(s) then s := StrToHex(s); x := RowList.indexOf(Row); if x < 0 then begin x := RowList.add(Row); Value.Add(''); end; if (Value[x] <> '') then Value[x] := Value[x] + ','; Value[x] := Value[x] + AnsiQuotedStr(s, '"'); until not result; finally SNMPSend.Free; RowList.Free; end; end; function SNMPGetTableElement(const BaseOID, RowID, ColID, Community, SNMPHost: AnsiString; var Value: AnsiString): Boolean; var s: AnsiString; begin s := BaseOID + '.' + ColID + '.' + RowID; Result := SnmpGet(s, Community, SNMPHost, Value); end; function SendTrap(const Dest, Source, Enterprise, Community: AnsiString; Generic, Specific, Seconds: Integer; const MIBName, MIBValue: AnsiString; MIBtype: Integer): Integer; var SNMPSend: TSNMPSend; begin SNMPSend := TSNMPSend.Create; try SNMPSend.TargetHost := Dest; SNMPSend.TargetPort := cSnmpTrapProtocol; SNMPSend.Query.Community := Community; SNMPSend.Query.Version := SNMP_V1; SNMPSend.Query.PDUType := PDUTrap; SNMPSend.Query.OldTrapHost := Source; SNMPSend.Query.OldTrapEnterprise := Enterprise; SNMPSend.Query.OldTrapGen := Generic; SNMPSend.Query.OldTrapSpec := Specific; SNMPSend.Query.OldTrapTimeTicks := Seconds; SNMPSend.Query.MIBAdd(MIBName, MIBValue, MIBType); Result := Ord(SNMPSend.SendTrap); finally SNMPSend.Free; end; end; function RecvTrap(var Dest, Source, Enterprise, Community: AnsiString; var Generic, Specific, Seconds: Integer; const MIBName, MIBValue: TStringList): Integer; var SNMPSend: TSNMPSend; i: Integer; begin SNMPSend := TSNMPSend.Create; try Result := 0; SNMPSend.TargetPort := cSnmpTrapProtocol; if SNMPSend.RecvTrap then begin Result := 1; Dest := SNMPSend.HostIP; Community := SNMPSend.Reply.Community; Source := SNMPSend.Reply.OldTrapHost; Enterprise := SNMPSend.Reply.OldTrapEnterprise; Generic := SNMPSend.Reply.OldTrapGen; Specific := SNMPSend.Reply.OldTrapSpec; Seconds := SNMPSend.Reply.OldTrapTimeTicks; MIBName.Clear; MIBValue.Clear; for i := 0 to SNMPSend.Reply.SNMPMibList.Count - 1 do begin MIBName.Add(TSNMPMib(SNMPSend.Reply.SNMPMibList[i]).OID); MIBValue.Add(TSNMPMib(SNMPSend.Reply.SNMPMibList[i]).Value); end; end; finally SNMPSend.Free; end; end; end. ./textfileviewer.lfm0000644000175000017500000002513214576573021014720 0ustar anthonyanthonyobject TextFileViewerForm: TTextFileViewerForm Left = 542 Height = 526 Top = 187 Width = 674 Caption = 'text file viewer' ClientHeight = 526 ClientWidth = 674 Position = poScreenCenter LCLVersion = '2.3.0.0' inline SynMemo1: TSynMemo AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Cursor = crIBeam Left = 0 Height = 526 Top = 0 Width = 674 Anchors = [akTop, akLeft, akRight, akBottom] Font.Height = -13 Font.Name = 'Courier New' Font.Pitch = fpFixed Font.Quality = fqNonAntialiased ParentColor = False ParentFont = False TabOrder = 0 Gutter.Visible = False Gutter.Width = 57 Gutter.MouseActions = <> Keystrokes = < item Command = ecUp ShortCut = 38 end item Command = ecSelUp ShortCut = 8230 end item Command = ecScrollUp ShortCut = 16422 end item Command = ecDown ShortCut = 40 end item Command = ecSelDown ShortCut = 8232 end item Command = ecScrollDown ShortCut = 16424 end item Command = ecLeft ShortCut = 37 end item Command = ecSelLeft ShortCut = 8229 end item Command = ecWordLeft ShortCut = 16421 end item Command = ecSelWordLeft ShortCut = 24613 end item Command = ecRight ShortCut = 39 end item Command = ecSelRight ShortCut = 8231 end item Command = ecWordRight ShortCut = 16423 end item Command = ecSelWordRight ShortCut = 24615 end item Command = ecPageDown ShortCut = 34 end item Command = ecSelPageDown ShortCut = 8226 end item Command = ecPageBottom ShortCut = 16418 end item Command = ecSelPageBottom ShortCut = 24610 end item Command = ecPageUp ShortCut = 33 end item Command = ecSelPageUp ShortCut = 8225 end item Command = ecPageTop ShortCut = 16417 end item Command = ecSelPageTop ShortCut = 24609 end item Command = ecLineStart ShortCut = 36 end item Command = ecSelLineStart ShortCut = 8228 end item Command = ecEditorTop ShortCut = 16420 end item Command = ecSelEditorTop ShortCut = 24612 end item Command = ecLineEnd ShortCut = 35 end item Command = ecSelLineEnd ShortCut = 8227 end item Command = ecEditorBottom ShortCut = 16419 end item Command = ecSelEditorBottom ShortCut = 24611 end item Command = ecToggleMode ShortCut = 45 end item Command = ecCopy ShortCut = 16429 end item Command = ecPaste ShortCut = 8237 end item Command = ecDeleteChar ShortCut = 46 end item Command = ecCut ShortCut = 8238 end item Command = ecDeleteLastChar ShortCut = 8 end item Command = ecDeleteLastChar ShortCut = 8200 end item Command = ecDeleteLastWord ShortCut = 16392 end item Command = ecUndo ShortCut = 32776 end item Command = ecRedo ShortCut = 40968 end item Command = ecLineBreak ShortCut = 13 end item Command = ecSelectAll ShortCut = 16449 end item Command = ecCopy ShortCut = 16451 end item Command = ecBlockIndent ShortCut = 24649 end item Command = ecLineBreak ShortCut = 16461 end item Command = ecInsertLine ShortCut = 16462 end item Command = ecDeleteWord ShortCut = 16468 end item Command = ecBlockUnindent ShortCut = 24661 end item Command = ecPaste ShortCut = 16470 end item Command = ecCut ShortCut = 16472 end item Command = ecDeleteLine ShortCut = 16473 end item Command = ecDeleteEOL ShortCut = 24665 end item Command = ecUndo ShortCut = 16474 end item Command = ecRedo ShortCut = 24666 end item Command = ecGotoMarker0 ShortCut = 16432 end item Command = ecGotoMarker1 ShortCut = 16433 end item Command = ecGotoMarker2 ShortCut = 16434 end item Command = ecGotoMarker3 ShortCut = 16435 end item Command = ecGotoMarker4 ShortCut = 16436 end item Command = ecGotoMarker5 ShortCut = 16437 end item Command = ecGotoMarker6 ShortCut = 16438 end item Command = ecGotoMarker7 ShortCut = 16439 end item Command = ecGotoMarker8 ShortCut = 16440 end item Command = ecGotoMarker9 ShortCut = 16441 end item Command = ecSetMarker0 ShortCut = 24624 end item Command = ecSetMarker1 ShortCut = 24625 end item Command = ecSetMarker2 ShortCut = 24626 end item Command = ecSetMarker3 ShortCut = 24627 end item Command = ecSetMarker4 ShortCut = 24628 end item Command = ecSetMarker5 ShortCut = 24629 end item Command = ecSetMarker6 ShortCut = 24630 end item Command = ecSetMarker7 ShortCut = 24631 end item Command = ecSetMarker8 ShortCut = 24632 end item Command = ecSetMarker9 ShortCut = 24633 end item Command = EcFoldLevel1 ShortCut = 41009 end item Command = EcFoldLevel2 ShortCut = 41010 end item Command = EcFoldLevel1 ShortCut = 41011 end item Command = EcFoldLevel1 ShortCut = 41012 end item Command = EcFoldLevel1 ShortCut = 41013 end item Command = EcFoldLevel6 ShortCut = 41014 end item Command = EcFoldLevel7 ShortCut = 41015 end item Command = EcFoldLevel8 ShortCut = 41016 end item Command = EcFoldLevel9 ShortCut = 41017 end item Command = EcFoldLevel0 ShortCut = 41008 end item Command = EcFoldCurrent ShortCut = 41005 end item Command = EcUnFoldCurrent ShortCut = 41003 end item Command = EcToggleMarkupWord ShortCut = 32845 end item Command = ecNormalSelect ShortCut = 24654 end item Command = ecColumnSelect ShortCut = 24643 end item Command = ecLineSelect ShortCut = 24652 end item Command = ecTab ShortCut = 9 end item Command = ecShiftTab ShortCut = 8201 end item Command = ecMatchBracket ShortCut = 24642 end item Command = ecColSelUp ShortCut = 40998 end item Command = ecColSelDown ShortCut = 41000 end item Command = ecColSelLeft ShortCut = 40997 end item Command = ecColSelRight ShortCut = 40999 end item Command = ecColSelPageDown ShortCut = 40994 end item Command = ecColSelPageBottom ShortCut = 57378 end item Command = ecColSelPageUp ShortCut = 40993 end item Command = ecColSelPageTop ShortCut = 57377 end item Command = ecColSelLineStart ShortCut = 40996 end item Command = ecColSelLineEnd ShortCut = 40995 end item Command = ecColSelEditorTop ShortCut = 57380 end item Command = ecColSelEditorBottom ShortCut = 57379 end> MouseActions = <> MouseTextActions = <> MouseSelActions = <> Lines.Strings = ( '' ) VisibleSpecialChars = [vscSpace, vscTabAtLast] RightEdge = 1024 ScrollBars = ssAutoBoth SelectedColor.BackPriority = 50 SelectedColor.ForePriority = 50 SelectedColor.FramePriority = 50 SelectedColor.BoldPriority = 50 SelectedColor.ItalicPriority = 50 SelectedColor.UnderlinePriority = 50 SelectedColor.StrikeOutPriority = 50 inline SynLeftGutterPartList1: TSynGutterPartList object SynGutterMarks1: TSynGutterMarks Width = 24 MouseActions = <> end object SynGutterLineNumber1: TSynGutterLineNumber Width = 17 MouseActions = <> MarkupInfo.Background = clBtnFace MarkupInfo.Foreground = clNone DigitCount = 2 ShowOnlyLineNumbersMultiplesOf = 1 ZeroStart = False LeadingZeros = False end object SynGutterChanges1: TSynGutterChanges Width = 4 MouseActions = <> ModifiedColor = 59900 SavedColor = clGreen end object SynGutterSeparator1: TSynGutterSeparator Width = 2 MouseActions = <> MarkupInfo.Background = clWhite MarkupInfo.Foreground = clGray end object SynGutterCodeFolding1: TSynGutterCodeFolding MouseActions = <> MarkupInfo.Background = clNone MarkupInfo.Foreground = clGray MouseActionsExpanded = <> MouseActionsCollapsed = <> end end end end ./dynmatrixutils.pas0000644000175000017500000001166514576573021014765 0ustar anthonyanthony{ dynmatrixutils v0.5 CopyRight (C) 2008-2012 Paulo Costa, Armando Sousa This library is Free software; you can rediStribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; version 2 of the License. This program is diStributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; withOut even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a Copy of the GNU Library General Public License along with This library; if not, Write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. This license has been modified. See File LICENSE.ADDON for more inFormation. } unit dynmatrixutils; {$mode objfpc}{$H+} interface uses Classes, SysUtils, dynmatrix, Grids; // Fill StringGrid with matrix elements procedure DMatrixToGrid(SG: TStringGrid; M: TDMatrix); // Fill matrix with StringGrid values //function StringGridToMDatrix(SG: TStringGrid) : TDMatrix; // Converts string representation to a TDMatrix function StringListToDMatrix(SL: TStrings): TDMatrix; // Adds to TS all the elements from matrix A, line by line procedure MAddToStringList(M: TDMatrix; TS: TStrings; FormatString: string = '%.6g'; ItemSeparator: string = ' '); // Converts a String representation to a TDMatrix // a11 a12 a13; a12 a22 a23; function StringToDMatrix(str: string): TDMatrix; implementation uses Unit1; //for FPointSeparator // Fill StringGrid with matrix elements procedure DMatrixToGrid(SG: TStringGrid; M: TDMatrix); var r,c: integer; begin SG.RowCount := integer(M.NumRows) + SG.FixedRows; SG.ColCount := integer(M.NumCols) + SG.FixedCols; for r := 0 to M.NumRows - 1 do begin for c := 0 to M.NumCols - 1 do begin SG.cells[c + SG.FixedCols, r + SG.FixedRows] := FloatToStr(M.getv(r, c)); end; end; end; { // Fill matrix with StringGrid values function StringGridToMDatrix(SG: TStringGrid) : TDMatrix; var r,c: integer; begin result := Mzeros(SG.RowCount - SG.FixedRows, SG.ColCount - SG.FixedCols); for r := 0 to result.NumRows - 1 do begin for c := 0 to result.NumCols - 1 do begin result.setv(r, c, StrToFloat(SG.Cells[c + SG.Fixedcols, r + SG.Fixedrows])); end; end; end;} // Fill each line of a TStringList with the text that is found between the separator // chars given by separatorList. // Consecutive separators are treated as one. procedure ParseString(s, separatorList: string; sl: TStringList); var p, i, last: integer; begin sl.Clear; last := 1; for i := 1 to length(s) do begin p := Pos(s[i], separatorList); if p > 0 then begin if i <> last then sl.add(copy(s,last,i-last)); last := i + 1; end; end; if last <= length(s) then sl.add(copy(s, last, length(s) - last + 1)); end; // Converts a StringList representation to a TDMatrix function StringListToDMatrix(SL: TStrings): TDMatrix; var r,c,lines,rxc : integer; s : string; SLRow : TStringList; begin result := Mzeros(0,0); lines := SL.Count; if lines < 1 then raise Exception.Create('StringListToDMatrix error: stringlist with zero lines'); s := SL.Strings[0]; slRow := TStringList.Create; try ParseString(s, ' ', slRow); rxc := slRow.Count; if rxc < 1 then raise Exception.Create('StringListToDMatrix error: first line with zero columns'); result := Mzeros(lines, rxc); for r := 0 to SL.Count - 1 do begin s := SL.Strings[r]; ParseString(s, ' ', slRow); if slRow.Count <> rxc then raise Exception.Create(format('StringListToDMatrix error: line %d with %d columns instead of %d',[r, slRow.Count, rxc])); for c := 0 to slRow.Count - 1 do begin result.setv(r, c, StrToFloat(slRow[c],FPointSeparator)); end; end; finally slRow.Free; end; end; // Adds to TS all the elements from matrix A, line by line procedure MAddToStringList(M: TDMatrix; TS: TStrings; FormatString: string = '%.6g'; ItemSeparator: string = ' '); var r,c,rows, cols: Longword; sr: string; begin rows := m.NumRows; cols := m.NumCols; for r:=0 to rows-1 do begin sr:=''; for c:=0 to cols-1 do begin if sr <> '' then sr := sr + ItemSeparator; sr := sr + format(FormatString, [m.getv(r,c)]); end; TS.add(sr); end; end; // Converts a String representation to a TDMatrix // a11 a12 a13; a12 a22 a23; function StringToDMatrix(str: string): TDMatrix; var SL: TStringList; begin if str = '' then raise Exception.Create('StringToDMatrix error: empty string'); SL := TStringList.Create; ParseString(str, ';', SL); try result := StringListToDMatrix(SL); finally SL.Free; end; end; end. ./udm.png0000644000175000017500000003046614576573022012454 0ustar anthonyanthonyPNG  IHDRddpTbKGD pHYs  tIME  8 d# IDATxydg}yr뮽 !`0dƞ &ƌYLHg OL!!jm޷oߵ:眺Uw[L>ꜪU+yhpHʟa>[>rk%jwǫ׃ #?Sl.gqquzNZnJBZs@Fԧ|s9vDQDE!B o.)%Ruk-YQ.筵!p]j۷s 7p7^7J@/\1??C=T][[󬭭1 +tc BR83"V-$ 9p=ԃ U飢kTecHӔ88IӔA7?&9X\ezfYn~Mvmg?O~?zaΝ;GC^'ǹLTj+lwucIl!ĸH+΍ZBrLi:\ |!($NbZ曹[?c3ooGyOl $P* (=Q"wmQP~G#zNNCE9We1)_~W w}<,-^`xTqbnn/J Q(I\*Z~(MQ;q#$(v8yX^=b>O@>w}S󬬬D1ZJA$SI U?@8./SZZm{d)4e-IbHtk-Qthuڬl4zY^tx[gvz]z9q mL1՘x[<) 4WGncZ$6<IO51Q… 4;mQHߧ{Avhw?rw~,,,{1{f\2C1p"*m Q#6͠ԭqIWRE4M1d[Lۡ `n>n:x˿?U7o-._$C<ǥh6MZhyͥ\MI?g@%2ڃK++_Js(M@ U-~"Wx}q"638*w~%_[8a0:?M͠!}"$ǞxUZe6`'WB( _y[gNFU?^on3T`؍Ɠs#8D!K#L5kwyQ§>1AR)bfme:]]G>S}~`y;6KHzTc{ؿw/SSS(rv_$CRl{5r9'EaYI[XY)r]֐{j)RwBd`d^O={7^cߵw9{ |e"vSS8RBC_b4*[Z=|oD36^BBg-8[dieR1טbZ' iu4xУXko| Ї־o@EDƞ9fgC ,;47KkT9 ܬ'|3q7ll9v@sq%rzCr,pu0&f'&\w?T+u&=z 7) ?q}M?~Z=+KɒWk<#ɶza ~ab/!NM\XEuȆQVnST 2C1vC1wo~ӝOK?"o~Oì"uV.J kY(܆>eЖk\ij.y1Ş$&m5ӧOsС񬊬3O>qNz}{h4`hIwhiN\bץFVr=}J朽ےR`ъ_v{ .+~y}ih)ULL2ۘRqIfx\/_LoPʥVvzS4Y;,!-RR135e{0ӨyOi `ߞCFilUEj% Q(%wu /fepk3;>v q5JjȃfrY0Ç7 QԲRc^GWdXaZ\V Wv\iT%@b]JEhh4. k UDR '5lY( JcWvYG4EY4&_"` 8PhAy#OC>Ovmm4Y;砕"%w)Nya\ ( ( Rx(iB<8Bn]Ϸ;t͟45j*vHӔ0 Y8{-..1UcQfHl69NX]$ v5=!EnbBԥ䎧v#{h0:bUB hh<&Iכ@|bnfKUncǎq' ȑ#Gh6dq[299IVs$ @ZklJn I bmCGK.kė-rb%ldm8k=A,34=:>gϞf~ɏwϓ$ X\ZJ5y V(Arald%J \]rQKǿ @D"G g2%"?Bps@$075ɞiV B:/\R?u{rOT+J^,r bamwwnwUGv#Z)Jd(ip4heqE IJj 5d85DIF Al 極.G˜cr*jٙ*HE^:u~OekUj*A8 i 4V0CJ4lReҨc[8E @喗ҩ,R6rf y.-Hz\l|aG>1( dZ>Qot9u_on VVVA>[W2X +lw?%'ЖZZfyU8,34묬\:{._$KR|0yU+$)Vwcf Blm w 1^fW7~6E17,L[&l{~B]uݕK\O̰rӧ"Øl6_Pf]w5H5Z۔[ rn\+%.arEY :o4ڶ6w4|kw/?!EđU$Y3o>A) * @a꽨R_^^ ł Ӱ/o6|mT.DW\k(G e>}J1#=*%|G`X8ؘ^hIE4V{޹+anK,+!@ y;6@6#d\V9$ϻ-c.HPJH-4ZT̪T|&ǡv';RjЕXcElQ$ =FcXY۸c Ķ^y=GlJ,cFAԽ@ьD(|#xxZ#%$QH|7aqw*5$OP6Ebn"Rs6vI(g7svGcEˀv3o x>뢀$I1@ C4民[1ym>cxC,l+r[c#.D%vbkX_RR^h.I7[rr,d]2Q q<,\+eBo7)* > &((Ҷ򒭬rRHfm*--q]b8agn4Y)aRvôyf7#ҺSL9jt;c7ZMvm%vW";d׎pQ= kXHWi&  \ww?Dz@sI6*l#uxMQ' )2$󜢢$Rb-d*r;l!حWrwl+,,PZ᠜o~7IJeQZ[8R$A:nޓ7 ]0afL˖5Mlb[sl،7Zy"k[R-`)uc!';UIr~qu\,JK4狨NN3t78l'N? M6 gl%#;^HER|w_s]9ntr后eGq{֘aA Nffp)zڀaɒ|cW!7gF 3j} #qcDLu|fff0&z#YQpL@K$g#VdYV+l\dqZFh-IrKychd ?mvn̕ |^f#8:Q)?0h %Ўʼn \ץˋW]ĩ"LNNrUWg>°Wp]cܺ s#I-%SyBRK„ȍ.(I0D*pW:8"3;B|&[JSGZ: IL#"~( sssT*׋Ђ11^y,..`pnt$ꫯ!I&&& ɴ`MֹsJ.j4 Hi1ȡ5T^GT_+dQ,kQT(1 YkUmJmc?ʲ8I t=ֻ]2kPZ3==vdvvjnwNn)< zELxnU^$1yG\W8hB^E^ RQMVF.C1 kVbA)^7kRkݘ5`vԷl6k}'J32Yﴉjzʾ}޻+ 333h4.3 AȾ}M+z݊;;JA/#PZsyjϹ JY6xb@آH1E^ԖaQT(7R 1LO^pz<ݱP cZ(jh()3`a#N2B>_ ַ?}_R!qbNu#~Rѻnlqs.S&ORbȤ;6RI:çöjU蓜#IQA0 ,HMcW5z"??cHiv4~ de{_Zmh4aHzO,_#W=(als xCd-^&X%T (}'q|ȥS -\Af1{d %sD,//ÏseW03=G%ŮZK,\ljhoi>o%fs.H&\~ف3lRV)eJ'aTx^@qhFc, z8p`/oP B/=뢴+H'D>d Ya,tK ѣO7 p]o|\{qߵ!ǒm+:d!hi6vm!,eeeU$ ۷>_$@[gff9w$&3]0 8b ݘ j,D;x3Ui~jP%D`+ qIb vɄU$;󏱸M?H?\ZΜ9م t@x1 Ƥ9$8 A`u􈓔y>ٹ3։17,I9ʙk,-6Oi3G. 7M/s1(}7yZ]Ct Fy7x5fQ sILSb. m UHZT+StD*I Wg ĺ3LMMSs A?F뒇9z9/Қ/}~ i&*;L`QLrWҖ㧎y /l9zRse:N-e}q e;Ww*f ٢Xlu,\X bnnkkRU7Y;x裬c0T{>Yz]B|I7㊩* O{4[+۷fǛ aaL8XZm8},ANEkjq2G)B(ڡR~oo!hvd\85W=sp88PŜx,iQi$Z )WQ=˅e&+K=CZlr48sBQK:5UJ$J8{ls癝q$1vOk=Ú+GF$Yh:xWj"mSO<4]w%OFIDAT$B7lU.g>󋄩*\usZqǿsw#A;KG{4|PTK-j)K$N"k{\EǦ V86^eaQG#Jc:X8ǙqP!^-Y jsٙ~߯0{cGAYo%<{Z:^>9Mγjy> }*2`x9x2ev'ym/T ?`١c\wwmɓ'ݓ_lvHNY&'|Go[zjZ8(.7XaeX[^ Z28ߥ9zE {038s$i4$1[Le#:Iӌ4DV1[,?'!./x<yElB(cEָ+! kd[ ^WrtNE:h&fe4,G8q (drn[mz)){_o,-.S%3S)/b³Q$$ҀYuNaaycys !r9(i7Q3abƣo[olUgXoc=d@Pq U$P@jSo &NDa<9XjʠtXb%­U=/xK9s4k@z\q4&nd,-'JfCd3_G|>*9;6ť3DQ |3:3{ЏbQGZU{"A AMQNlUQ Kr0; tAAwQ vQQcim4i҅LQ5ZJј4" u$D(nߐd@G8yqk=w4.1g?OsH>rU[}Հv+ԧӅ.an[V|50BS&i.7igW^Jt;Ai+4+-8#B*\ק'òaarIÁetƴbt1$I%*k5AHtkA=w.EYF(#/dg7A;rXc 3 +ڨa2P 8!Ibg=$_MiQ |zکS rkDQDxǾY^r-|3ڶkN'C}z.($[PL>M(p,ikOHy'25Vϛ\qOWli.Y8sX򑏸IjlfNdgЏ:._ZG;pGIGm 6w=ia ;e4֒O8Al2,1h)PR{IRRdvƋ^"^׼773鳲ѿ_+c{=1T798$i}mSǎv B(ﺐ&8*R0Q{jb ~PǘlO卦 k3 `E8ŀVX  =xBk(K [tIIy594겏Ob€g WtEEaA"T1,&r{VrYڃj//,㯔"h6p\804{6 ""E- RZM6#ac0ѣ z%N')~Dos>3,5=5|[O?o#ݜ}{}3?$KˋaA\)ߢQQ4ꬶz6 IiS}$Jd`ScSEߞ#ҍXV7UyMqTZAd C$% T*y_G?6@{>硇™|ϝ 1QqzT:HqBTZPSlI:Lq@Vjǽ5 aL\gLC 3}./~{~[x6?}TQ֗sw 2K0Y04;)rZ[VW:9H-5$c YZDxue% hoc0"-f6&6_9OZLZ}<D 1u \ =Uv^mdUIPRG{G*+_|-G\42 ?GblKg ֈ+Ω8έt3{HxL #0Eve̹}&&&k[o=r{㏛6?@tS_<<#'ZfNw E&1UU9&T6W9(PKT9dlĴ,F)+LMMqsWsO&?Q@F?{8~8ϜZ]4#MͰEY1$C<D_(m,SR՘Zr5rWr7q'M@FO?OXo}G/ ^Sיf\q~~O% _׶Z-.`=:8q|/&q;%'ß3ߦ9 ~<EEt=IENDB`./slogsend.pas0000644000175000017500000002402414576573021013474 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 001.002.003 | |==============================================================================| | Content: SysLog client | |==============================================================================| | Copyright (c)1999-2010, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2001-2010. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | | Christian Brosius | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@abstract(BSD SYSLOG protocol) Used RFC: RFC-3164 } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$Q-} {$H+} unit slogsend; interface uses SysUtils, Classes, blcksock, synautil; const cSysLogProtocol = '514'; FCL_Kernel = 0; FCL_UserLevel = 1; FCL_MailSystem = 2; FCL_System = 3; FCL_Security = 4; FCL_Syslogd = 5; FCL_Printer = 6; FCL_News = 7; FCL_UUCP = 8; FCL_Clock = 9; FCL_Authorization = 10; FCL_FTP = 11; FCL_NTP = 12; FCL_LogAudit = 13; FCL_LogAlert = 14; FCL_Time = 15; FCL_Local0 = 16; FCL_Local1 = 17; FCL_Local2 = 18; FCL_Local3 = 19; FCL_Local4 = 20; FCL_Local5 = 21; FCL_Local6 = 22; FCL_Local7 = 23; type {:@abstract(Define possible priority of Syslog message)} TSyslogSeverity = (Emergency, Alert, Critical, Error, Warning, Notice, Info, Debug); {:@abstract(encoding or decoding of SYSLOG message)} TSyslogMessage = class(TObject) private FFacility:Byte; FSeverity:TSyslogSeverity; FDateTime:TDateTime; FTag:String; FMessage:String; FLocalIP:String; function GetPacketBuf:String; procedure SetPacketBuf(Value:String); public {:Reset values to defaults} procedure Clear; published {:Define facilicity of Syslog message. For specify you may use predefined FCL_* constants. Default is "FCL_Local0".} property Facility:Byte read FFacility write FFacility; {:Define possible priority of Syslog message. Default is "Debug".} property Severity:TSyslogSeverity read FSeverity write FSeverity; {:date and time of Syslog message} property DateTime:TDateTime read FDateTime write FDateTime; {:This is used for identify process of this message. Default is filename of your executable file.} property Tag:String read FTag write FTag; {:Text of your message for log.} property LogMessage:String read FMessage write FMessage; {:IP address of message sender.} property LocalIP:String read FLocalIP write FLocalIP; {:This property holds encoded binary SYSLOG packet} property PacketBuf:String read GetPacketBuf write SetPacketBuf; end; {:@abstract(This object implement BSD SysLog client) Note: Are you missing properties for specify server address and port? Look to parent @link(TSynaClient) too!} TSyslogSend = class(TSynaClient) private FSock: TUDPBlockSocket; FSysLogMessage: TSysLogMessage; public constructor Create; destructor Destroy; override; {:Send Syslog UDP packet defined by @link(SysLogMessage).} function DoIt: Boolean; published {:Syslog message for send} property SysLogMessage:TSysLogMessage read FSysLogMessage write FSysLogMessage; end; {:Simply send packet to specified Syslog server.} function ToSysLog(const SyslogServer: string; Facil: Byte; Sever: TSyslogSeverity; const Content: string): Boolean; implementation function TSyslogMessage.GetPacketBuf:String; begin Result := '<' + IntToStr((FFacility * 8) + Ord(FSeverity)) + '>'; Result := Result + CDateTime(FDateTime) + ' '; Result := Result + FLocalIP + ' '; Result := Result + FTag + ': ' + FMessage; end; procedure TSyslogMessage.SetPacketBuf(Value:String); var StrBuf:String; IntBuf,Pos:Integer; begin if Length(Value) < 1 then exit; Pos := 1; if Value[Pos] <> '<' then exit; Inc(Pos); // Facility and Severity StrBuf := ''; while (Value[Pos] <> '>')do begin StrBuf := StrBuf + Value[Pos]; Inc(Pos); end; IntBuf := StrToInt(StrBuf); FFacility := IntBuf div 8; case (IntBuf mod 8)of 0:FSeverity := Emergency; 1:FSeverity := Alert; 2:FSeverity := Critical; 3:FSeverity := Error; 4:FSeverity := Warning; 5:FSeverity := Notice; 6:FSeverity := Info; 7:FSeverity := Debug; end; // DateTime Inc(Pos); StrBuf := ''; // Month while (Value[Pos] <> ' ')do begin StrBuf := StrBuf + Value[Pos]; Inc(Pos); end; StrBuf := StrBuf + Value[Pos]; Inc(Pos); // Day while (Value[Pos] <> ' ')do begin StrBuf := StrBuf + Value[Pos]; Inc(Pos); end; StrBuf := StrBuf + Value[Pos]; Inc(Pos); // Time while (Value[Pos] <> ' ')do begin StrBuf := StrBuf + Value[Pos]; Inc(Pos); end; FDateTime := DecodeRFCDateTime(StrBuf); Inc(Pos); // LocalIP StrBuf := ''; while (Value[Pos] <> ' ')do begin StrBuf := StrBuf + Value[Pos]; Inc(Pos); end; FLocalIP := StrBuf; Inc(Pos); // Tag StrBuf := ''; while (Value[Pos] <> ':')do begin StrBuf := StrBuf + Value[Pos]; Inc(Pos); end; FTag := StrBuf; // LogMessage Inc(Pos); StrBuf := ''; while (Pos <= Length(Value))do begin StrBuf := StrBuf + Value[Pos]; Inc(Pos); end; FMessage := TrimSP(StrBuf); end; procedure TSysLogMessage.Clear; begin FFacility := FCL_Local0; FSeverity := Debug; FTag := ExtractFileName(ParamStr(0)); FMessage := ''; FLocalIP := '0.0.0.0'; end; //------------------------------------------------------------------------------ constructor TSyslogSend.Create; begin inherited Create; FSock := TUDPBlockSocket.Create; FSock.Owner := self; FSysLogMessage := TSysLogMessage.Create; FTargetPort := cSysLogProtocol; end; destructor TSyslogSend.Destroy; begin FSock.Free; FSysLogMessage.Free; inherited Destroy; end; function TSyslogSend.DoIt: Boolean; var L: TStringList; begin Result := False; L := TStringList.Create; try FSock.ResolveNameToIP(FSock.Localname, L); if L.Count < 1 then FSysLogMessage.LocalIP := '0.0.0.0' else FSysLogMessage.LocalIP := L[0]; finally L.Free; end; FSysLogMessage.DateTime := Now; if Length(FSysLogMessage.PacketBuf) <= 1024 then begin FSock.Connect(FTargetHost, FTargetPort); FSock.SendString(FSysLogMessage.PacketBuf); Result := FSock.LastError = 0; end; end; {==============================================================================} function ToSysLog(const SyslogServer: string; Facil: Byte; Sever: TSyslogSeverity; const Content: string): Boolean; begin with TSyslogSend.Create do try TargetHost :=SyslogServer; SysLogMessage.Facility := Facil; SysLogMessage.Severity := Sever; SysLogMessage.LogMessage := Content; Result := DoIt; finally Free; end; end; end. ./ethernet_connector-16x16.png0000644000175000017500000000026014576573022016327 0ustar anthonyanthonyPNG  IHDR:sRGB pHYs  tIME BIDATӍA :<"Q$%  a<[,׹*QSo !jYwIENDB`./udmc.lpi0000644000175000017500000000373714576573022012620 0ustar anthonyanthony <UseAppBundle Value="False"/> <ResourceType Value="res"/> </General> <i18n> <EnableI18N LFM="False"/> </i18n> <VersionInfo> <UseVersionInfo Value="True"/> <AutoIncrementBuild Value="True"/> <MinorVersionNr Value="1"/> <BuildNr Value="3"/> <StringTable ProductVersion=""/> </VersionInfo> <BuildModes Count="1"> <Item1 Name="Default" Default="True"/> </BuildModes> <PublishOptions> <Version Value="2"/> </PublishOptions> <RunParams> <local> <FormatVersion Value="1"/> <CommandLineParams Value="--LCMS=2 -v"/> <LaunchingApplication Use="True"/> </local> </RunParams> <RequiredPackages Count="1"> <Item1> <PackageName Value="LazUtils"/> </Item1> </RequiredPackages> <Units Count="2"> <Unit0> <Filename Value="udmc.lpr"/> <IsPartOfProject Value="True"/> </Unit0> <Unit1> <Filename Value="cli_utils.pas"/> <IsPartOfProject Value="True"/> <UnitName Value="cli_utils"/> </Unit1> </Units> </ProjectOptions> <CompilerOptions> <Version Value="11"/> <Target> <Filename Value="udmc"/> </Target> <SearchPaths> <IncludeFiles Value="$(ProjOutDir)"/> <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/> </SearchPaths> </CompilerOptions> <Debugging> <Exceptions Count="3"> <Item1> <Name Value="EAbort"/> </Item1> <Item2> <Name Value="ECodetoolError"/> </Item2> <Item3> <Name Value="EFOpenError"/> </Item3> </Exceptions> </Debugging> </CONFIG> ���������������������������������./icon_str.py���������������������������������������������������������������������������������������0000755�0001750�0001750�00000001406�14576573022�013346� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 import os file_in = 'udm.app/Contents/Info.plist' ''' BEFORE <dict> <key>CFBundleDevelopmentRegion</key> <string>English</string> ''' ''' AFTER <dict> <key>CFBundleIconFile</key> <string>udm.icns</string> <key>CFBundleDevelopmentRegion</key> <string>English</string> ''' icon_str = "<dict>\n <key>CFBundleIconFile</key>\n <string>udm.icns</string>\n" with open(file_in) as f: lines = f.readlines() all_lines = ''.join(lines) # Locate '<dict>' i_dict = all_lines.find("<dict>\n") # Locate ' <key>CFBundleDevelopmentRegion</key>' cfb_dict = all_lines.find(" <key>CFBundleDevelopmentRegion</key>") # Insert icon key and string lines between them print(all_lines[:(i_dict)] + icon_str + all_lines[(cfb_dict):]) f.close() ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./default.ucld��������������������������������������������������������������������������������������0000644�0001750�0001750�00000000431�14576573022�013443� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#Description: Unihedron Colour Legend Definition file for Unihedron Device Manager plots #Title: Default #MPSAS; Red; Green; Blue 22.00;0;0;0 19.60;84;0;100 17.80;0;0;255 16.60;0;255;255 16.00;0;255;127 15.40;0;255;0 14.20;127;255;0 12.40;255;255;0 10.60;255;0;0 10.00;255;255;255 ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./charticon.png�������������������������������������������������������������������������������������0000644�0001750�0001750�00000002405�14576573022�013631� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR��� ������Vό��� pHYs��\F��\FCA���tEXtSoftware�www.inkscape.org<��IDATH՗LeǿsAJ5\ܜòU#d.˂l0Cdꈴp{=].tZ石}yl. !9?1ax<�2UU#c!1W,EU^FC氡%�,)f2^Ĥ2ܜ,K:�<Ęb,8x1 QVU�p×EA#DDB!e:T$ ];|DV$IZ(ɲ`w\SL{ZV-G;)VV&;-##ΰ?W,t x~!`T&?]tvDttBlCGe5/풒ӚPh5|P ~ef܆ơYjҾ +V^xرWqq+g܆"1 K{W`F?9�[:}c~'Ʋc˗~`L”ܯMB[v>V x;ΜY{|0pΝgf^g H-؂�a~0[%IUeG)\PIѣ'%(i$]x۽DE/~e<LgegQŒc|||s9cLk8cL!oDݼbޞ1& !żs0ƤΥ*}rF>qL@@p~ ߲ڄD&i%H׉;ӄ9vpժ/{˻BBCdN  `dWሊj\QjUjmMM *~%fepe ϯ?Sci]�϶Ο%=lVO۽m_҄+Z[:wb0?yߊ Hu> -i%hklXsr=wA՚Luu⁁d.D32r wDDbxQ\{||_qqІ Q .~/9""޲GGJW!`sɓyû p\5 i\s݊h|abbh!D nY@r�pi Sz=B$0Ƅ^(˲eYeD `NxY]z~z98?ZP����IENDB`�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./MyImage.jpg���������������������������������������������������������������������������������������0000644�0001750�0001750�00000017265�14576573022�013215� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������JFIF�������C�    $.' ",#(7),01444'9=82<.342�C  2!!22222222222222222222222222222222222222222222222222�0"������������ ����}�!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz�������� ���w�!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz� ��?�_}glw~��g�'�]�]�^-@� ��t��g�'�]x?�Y��G/��׋Q@� ��t��g�'�]x?�Y��G/��׋Q@� ��t��g�'�]x?�Y��G/��׋Q@� ��t��g�'�]x?�Y��G/��׋Q@� ��t��g�'�]x?�Y��G/��׋Q@� ��t��g�'�]x?�Y��G/��׋Q@� ��t��g�'�]x?�Y��G/��׋Q@� ��t��g�'�]x?�Y��G/��׋Q@� ��t��g�'�]x?�Y��G/��׋Q@� ��t��g�'�]x?�Y��G/��׋Q@� ��t��g�'�]x?�Y��G/��׋Q@� ��t��g�'�]x?�Y��G/��׋Q@� ��t��g�'�]x?�Y��G/��׋Q@� ��t��g�'�]x?�Y��G/��׋Q@� ��t��g�'�]x?�Y��G/��׋Q@� ��t��g�'�]x?�Y��G/��׋Q@� ��t��g�'�]x?�Y��]G>(kM�cʶiϴ*|^'G{6?�̻�o?JZ�˿�Ũ�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�O�#_�FE^a^'G{6?�̻�o?JZ�˿�Ũ�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�O�#_�FE^a^'G{6?�̻�o?JZ�˿�Ũ�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�O�#_�FE^a^'G{6?�̻�o?JZ�˿�Ũ�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�O�#_�FE^a^'G{6?�̻�o?JZ�˿�Ũ�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�O�#_�FE^a^'G{6?�̻�o?JZ�˿�Ũ�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�O�#_�FE^a^'G{6?�̻�o?JZ�˿�Ũ�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�O�#_�FE^a^'G{6?�̻�o?JZ�˿�Ũ�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�O�#_�FE^a^'G{6?�̻�o?JZ�˿�Ũ�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�O�#_�FE^a^'G{6?�̻�o?JZ�˿�Ũ�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�O�#_�FE^a^'G{6?�̻�o?JZ�˿�Ũ�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�O�#_�FE^a^'G{6?�̻�o?JZ�˿�Ũ�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�O�#_�FE^a^'G{6?�̻�o?JZ�˿�Ũ�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�O�#_�FE^a^'G{6?�̻�o?JZ�˿�Ũ�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�O�#_�FE^a^'G{6?�̻�o?JZ�˿�Ũ�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�O�#_�FE^a^'G{6?�̻�o?JZ�˿�Ũ�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�O�#_�FE^a^'G{6?�̻�o?JZ�˿�Ũ�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�O�#_�FE^a^'G{6?�̻�o?JZ�˿�Ũ�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�O�#_�FE^a^'G{6?�̻�o?JZ�˿�Ũ�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�O�#_�FE^a^'G{6?�̻�o?JZ�˿�Ũ�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�O�#_�FE^a^'G{6?�̻�o?JZ�˿�Ũ�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�O�#_�FE^a^'G{6?�̻�o?JZ�˿�Ũ�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�O�#_�FE^a^'G{6?�̻�o?JZ�˿�Ũ�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�O�#_�FE^a^'G{6?�̻�o?JZ�˿�Ũ�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�O�#_�FE^a^'G{;_<ScyoQ6==+?R7�_OQ@0�¥?n.T8�'M�P?|q�@O�/? �p�u*_�&��K?]}=E�|� �ɸ?R7�_OQ@0�¥?n.T8�'M�P?|q�@O�/? �p�u*_�&��K?]}=E�|� �ɸ?R7�_OQ@0�¥?n.T8�'M�P?|q�@O�/? �p�u*_�&��K?]}=E�|� �ɸ?R7�_OQ@0�¥?n.T8�'M�P?|q�@O�/? �p�u*_�&��K?]}=E�|� �ɸ?R7�_OQ@0�¥?n.T8�'M�P?|q�@O�/? �p�u*_�&��K?]}=E�|� �ɸ?R7�_OQ@0�¥?n.T8�'M�P?|q�@O�/? �p�u*_�&��K?]}=E�|� �ɸ?R7�_OQ@0�¥?n.T8�'M�P?|q�@O�/? �p�u*_�&��K?]}=E�|� �ɸ?R7�_OQ@0�¥?n.T8�'M�P?|q�@O�/? �p�u*_�&��K?]}=E�|� �ɸ?R7�_OQ@0�¥?n.T8�'M�P?|q�@O�?G^w٭W|t aX*:(�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./aboutplaysound.pas��������������������������������������������������������������������������������0000744�0001750�0001750�00000050747�14077651773�014752� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ TAboutPlaySound and TAboutBox Component License Copyright (C) 2014 Gordon Bamber minesadorada@charcodelvalle.com This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. } // Change the name of this unit and its PAS file to be unique to your component // Unit About<yourcomponentname>unit unit aboutplaysound; {$mode objfpc}{$H+} interface uses Classes, Controls, Dialogs, Forms, Graphics, LResources, SysUtils, ExtCtrls, StdCtrls, StrUtils,Buttons,PropEdits; const C_DEFAULTLICENSEFORMWIDTH = 500; C_DEFAULTLICENSEFORMWIDTH_LINUX = C_DEFAULTLICENSEFORMWIDTH + 100; C_DEFAULTLICENSEFORMHEIGHT = 400; C_DEFAULTLICENSEFORMHEIGHT_LINUX = C_DEFAULTLICENSEFORMHEIGHT + 50; type TLicenseType = (abNone, abGPL, abLGPL, abMIT, abModifiedGPL, abProprietry); tAboutBox=Class; // Forward declaration // Do Search/Replace to change all instances of TAboutComonent // to TAbout<yourcomponentname> TAboutPlaySound = class(TComponent) // This class can descend from any component class (TGraphicControl etc private { Private declarations } fAboutBox: tAboutBox; procedure SetMyComponentName(Const Avalue:String); procedure SetAboutBoxWidth(Const AValue:Integer); procedure SetAboutBoxHeight(Const AValue:Integer); procedure SetAboutBoxDescription(Const AValue:String); procedure SetAboutBoxFontName(Const AValue:String); procedure SetAboutBoxFontSize(Const AValue:Integer); procedure SetAboutBoxBitmap(Const AValue:TBitmap); procedure SetAboutBoxBackgroundColor(Const AValue:TColor); procedure SetAboutBoxTitle(Const AValue:String); procedure SetAboutBoxVersion(Const AValue:String); procedure SetAboutBoxAuthorname(Const AValue:String); procedure SetAboutBoxOrganisation(Const AValue:String); procedure SetAboutBoxAuthorEmail(Const AValue:String); procedure SetAboutBoxBackgroundResourceName(Const AValue:String); procedure SetAboutBoxLicenseType(Const AValue:String); procedure SetAboutBoxStretchBackgroundImage(Const AValue:Boolean); protected { Protected declarations } public { Public declarations } constructor Create(AOwner: TComponent); override; // Constructor must be public destructor Destroy; override; // Destructor must be public // Set these (hidden) properties in your inherited component's Create procedure property AboutBoxComponentName:String write SetMyComponentName; property AboutBoxWidth:Integer write SetAboutBoxWidth; property AboutBoxHeight:Integer write SetAboutBoxHeight; property AboutBoxDescription:String write SetAboutBoxDescription; property AboutBoxFontName:String write SetAboutBoxFontName; property AboutBoxFontSize:Integer write SetAboutBoxFontSize; property AboutBoxBackgroundColor:TColor write SetAboutBoxBackgroundColor; property AboutBoxTitle:String write SetAboutBoxTitle; property AboutBoxVersion:String write SetAboutBoxVersion; property AboutBoxAuthorname:String write SetAboutBoxAuthorname; property AboutBoxOrganisation:String write SetAboutBoxOrganisation; property AboutBoxAuthorEmail:String write SetAboutBoxAuthorEmail; property AboutBoxLicenseType:String write SetAboutBoxLicenseType; property AboutBoxBackgroundResourceName:String write SetAboutBoxBackgroundResourceName; property AboutBoxStretchBackgroundImage:Boolean write SetAboutBoxStretchBackgroundImage; published // The clickable 'About' property will automaticcally appear in any component // descended from TAboutPlaySound // About this component... property About: tAboutBox read fAboutBox write fAboutBox; end; TAboutbox = class(TComponent) private { Private declarations } fDialog: TForm; fBackgroundbitmap: TBitMap; fBackgroundResourceName:String; fDescription: TStrings; fDialogTitle, fVersion, fAuthorname, fAuthorEmail, fOrganisation, fComponentName: string; fDialogHeight, fDialogWidth: integer; fStretchBackground: boolean; fFont: TFont; fColor: TColor; fLicenseType: TLicenseType; procedure SetBackgroundBitmap(const AValue: TBitMap); procedure SetDescriptionStrings(const AValue: TStrings); procedure SetFont(const AValue: TFont); procedure ShowLicense(Sender: TObject); procedure SetDialogTitle(Const AValue:String); protected { Protected declarations } public { Public declarations } procedure ShowDialog; constructor Create(AOwner: TComponent); override; destructor Destroy; override; published { Published declarations } // Set these properties in your component Constructor method property BackGround: TBitMap read fBackgroundbitmap write SetBackgroundBitmap; property BackgroundResourceName:String read fBackgroundResourceName write fBackgroundResourceName; property Description: TStrings read fDescription write SetDescriptionStrings; property Title: string read fDialogTitle write SetDialogTitle; property Height: integer read fDialogHeight write fDialogHeight; property Width: integer read fDialogWidth write fDialogWidth; property Font: TFont read fFont write SetFont; property BackGroundColor: TColor read fColor write fColor; property StretchBackground: boolean read fStretchBackground write fStretchBackground default False; property Version: string read fVersion write fVersion; property Authorname: string read fAuthorname write fAuthorname; property Organisation: string read fOrganisation write fOrganisation; property AuthorEmail: string read fAuthorEmail write fAuthorEmail; property ComponentName: string read fComponentName write fComponentName; property LicenseType: TLicenseType read fLicenseType write fLicenseType; end; // Declaration for the 'About' property editor TAboutPropertyEditor = class(TClassPropertyEditor) public procedure Edit; override; function GetAttributes: TPropertyAttributes; override; end; procedure Register; {For i8n if required} resourcestring rs_Componentname='Component name'; rs_About='About'; rs_License='License'; rs_By='By'; rs_For='For'; rs_DatafileMissing='Resource datafile license.lrs is missing'; rs_LicenseTextError='There is something wrong with the Licence text'; rs_AboutBoxError = 'Subcomponent TAboutBox Error'; implementation { TABoutBox} constructor TAboutbox.Create(AOwner: TComponent); begin inherited Create(AOwner); fBackgroundbitmap := TBitMap.Create; fDescription := TStringList.Create; fFont := TFont.Create; fColor := clDefault; fLicenseType := abNone; fComponentName:=rs_Componentname; fDialogTitle:=rs_About + ' ' + fComponentName; fDialogWidth:=320; fDialogHeight:=280; fVersion:='1.0.0.0'; fLicenseType:=abNone; end; destructor TAboutbox.Destroy; begin FreeAndNil(fFont); FreeAndNil(fDescription); FreeAndNil(fBackgroundbitmap); inherited Destroy; end; procedure TAboutbox.SetDialogTitle(Const AValue:String); begin if AnsiContainsText(fDialogTitle, rs_About) then fDialogTitle := AValue else fDialogTitle := rs_About + ' ' + Avalue; end; procedure TAboutbox.ShowDialog; var OKbutton, LicenseButton: TBitBtn; lbl_Description: TLabel; img_BackGround: TImage; sz: string; iCount: integer; r:TLResource; begin fDialog := TForm.CreateNew(nil); try //.. finally FreeAndNil everything with fDialog do begin // Set Dialog properties position := poScreenCenter; borderstyle := bsToolWindow; Caption := fDialogTitle; formstyle := fsSystemStayOnTop; color := fColor; font := fFont; if (fDialogHeight > 0) then Height := fDialogHeight else Height := 240; if (fDialogWidth > 0) then Width := fDialogWidth else Width := 320; // Create a background image img_BackGround := Timage.Create(fDialog); with img_BackGround do // Set img_BackGround properties begin Align := alClient; Stretch := fStretchBackground; // Bitmap assigned? if Assigned(fBackgroundbitmap) then Picture.Assign(fBackgroundbitmap); // Resource file? r := LazarusResources.Find(fBackgroundResourceName); if r <> nil then img_BackGround.Picture.LoadFromLazarusResource(fBackgroundResourceName); SendToBack; parent := fDialog; end; // Create a BitBtn button okbutton := TBitBtn.Create(fDialog); // Set BitBtn properties with okButton do begin Kind := bkClose; left := (fDialog.Width div 2) - Width div 2; top := fDialog.Height - Height - 10; ParentFont:=False; parent := fDialog; end; // Create a License Button LicenseButton := TBitBtn.Create(fDialog); if (fLicenseType <> abNone) then // Put it on the right begin LicenseButton.Top := OKButton.Top; LicenseButton.Caption := rs_License + '...'; LicenseButton.left := Width - LicenseButton.Width - 10; LicenseButton.OnClick := @ShowLicense; LicenseButton.ParentFont:=False; LicenseButton.Parent := fDialog; end; // Create a label control lbl_Description := Tlabel.Create(fDialog); // Set label properties with lbl_Description do begin left := 8; Top := 30; Width := fDialog.Width - 8; Height := fDialog.Height - 30; Autosize := False; ParentFont := True; Alignment := taCenter; end; // Build up Label text sz := ''; // Component name if fComponentName <> '' then sz += fComponentName + LineEnding; // Author name (+Email) if fAuthorname <> '' then sz += rs_By + ': ' + fAuthorname + LineEnding; if fAuthorEmail <> '' then sz += ' (' + fAuthorEmail + ')' + LineEnding else sz += LineEnding; sz += LineEnding; // Version if fVersion <> '' then sz += 'Version: ' + fVersion + LineEnding; // License case fLicenseType of abGPL: sz += rs_License + ': GPL' + LineEnding; abLGPL: sz += rs_License + ': LGPL' + LineEnding; abMIT: sz += rs_License + ': M.I.T.' + LineEnding; abModifiedGPL: sz += rs_License + ': Modified GPL' + LineEnding; abProprietry: sz += rs_License + ': Proprietry' + LineEnding; end; if fOrganisation <> '' then sz += rs_For + ': ' + fOrganisation + LineEnding; if fDescription.Count > 0 then begin sz += LineEnding; for iCount := 1 to fDescription.Count do sz += fDescription[iCount - 1] + LineEnding; end; lbl_Description.Caption := sz; lbl_Description.parent := fDialog; // Display the dialog modally ShowModal; end; finally // Free all resources FreeAndNil(img_BackGround); FreeAndNil(lbl_Description); FreeAndNil(LicenseButton); FreeAndNil(okbutton); end; end; procedure TAboutbox.ShowLicense(Sender: TObject); // Triggered by License button Click var sLicenseString: string; theList: TStringList; f: integer; LicenceForm: TForm; lblText: TLabel; closebuttton: TBitBtn; r: TLResource; szLicenseFile: string; begin // Quit early? if fLicenseType = abNone then Exit; // Set to resource name in license.lrs case fLicenseType of abNone: szLicenseFile := ''; abGPL: szLicenseFile := 'gpl.txt'; abLGPL: szLicenseFile := 'lgpl.txt'; abMIT: szLicenseFile := 'mit.txt'; abModifiedgpl: szLicenseFile := 'modifiedgpl.txt'; end; // Use a string list to split the text file into lines theList := TStringList.Create; // Create a window, label and close button on-the-fly LicenceForm := TForm.Create(nil); lblText := TLabel.Create(LicenceForm); closebuttton := TBitBtn.Create(LicenceForm); // Load up the text into variable 'sLicenseString' sLicenseString := LineEnding + LineEnding + fComponentName + LineEnding; try try begin // Load license text from resource string r := LazarusResources.Find(szLicenseFile); if r = nil then raise Exception.Create(rs_DatafileMissing); thelist.Add(r.Value); for f := 0 to TheList.Count - 1 do sLicenseString += TheList[f] + LineEnding; end; except On e: Exception do MessageDlg(rs_AboutBoxError, rs_LicenseTextError, mtError, [mbOK], 0); end; // Replace boilerplate text if possible sLicenseString := AnsiReplaceText(sLicenseString, '<year>', {$I %DATE%} ); sLicenseString := AnsiReplaceText(sLicenseString, '<name of author>', fAuthorname); sLicenseString := AnsiReplaceText(sLicenseString, '<contact>', '(' + fAuthorEmail + ')'); sLicenseString := AnsiReplaceText(sLicenseString, '<copyright holders>', fOrganisation); // Make up the form window and controls with LicenceForm do begin // Form {$IFDEF WINDOWS} // More compact GUI? Width := C_DEFAULTLICENSEFORMWIDTH; Height := C_DEFAULTLICENSEFORMHEIGHT; {$ELSE WINDOWS} Width := C_DEFAULTLICENSEFORMWIDTH_LINUX; Height := C_DEFAULTLICENSEFORMHEIGHT_LINUX; {$ENDIF} // autosize:=true; // If you enable autosize, the button placement goes awry! // The Modified GPL has an extra clause if (szLicenseFile = 'modifiedgpl.txt') or (Pos('As a special exception', sLicenseString) > 0) then Height := Height + 100; position := poScreenCenter; borderstyle := bsToolWindow; Caption := fComponentName + ': Licensing'; formstyle := fsSystemStayOnTop; // Label lblText.Align := alClient; lblText.Alignment := taCenter; lblText.Caption := sLicenseString; lblText.Parent := LicenceForm; // Close Button closebuttton.Kind := bkClose; closebuttton.left := (Width div 2) - closebuttton.Width div 2; closebuttton.top := Height - closebuttton.Height - 10; closebuttton.parent := LicenceForm; // Show modally over the existing modal form PopupParent := TForm(Sender); ShowModal; end; finally // Free up all component created resources from memory FreeAndNil(theList); FreeAndNil(lblText); FreeAndNil(closebuttton); FreeAndNil(LicenceForm); end; end; procedure TAboutbox.SetBackgroundBitmap(const AValue: TBitMap); begin if Assigned(AValue) then fBackgroundbitmap.Assign(AValue); end; procedure TAboutbox.SetDescriptionStrings(const AValue: TStrings); begin if Assigned(AValue) then fDescription.Assign(Avalue); end; procedure TAboutbox.SetFont(const AValue: TFont); begin if Assigned(AValue) then fFont.Assign(AValue); end; { TAboutPlaySound } procedure Register; begin RegisterPropertyEditor(TypeInfo(TAboutbox), TAboutPlaySound, 'About', TAboutPropertyEditor); end; procedure TAboutPropertyEditor.Edit; // Communicate with the component properties Var AAboutBox:TAboutBox; begin AAboutBox:=TAboutBox(GetObjectValue(TAboutBox)); AABoutBox.ShowDialog; end; function TAboutPropertyEditor.GetAttributes: TPropertyAttributes; // Show the ellipsis begin Result := [paDialog, paReadOnly]; end; // Sets for AboutBox dialog properties procedure TAboutPlaySound.SetMyComponentName(Const Avalue:String); begin fAboutBox.ComponentName:=AValue; fAboutBox.Title:=AValue; end; procedure TAboutPlaySound.SetAboutBoxWidth(Const AValue:Integer); begin fAboutBox.Width:=Avalue; end; procedure TAboutPlaySound.SetAboutBoxHeight(Const AValue:Integer); begin fAboutBox.Height:=Avalue; end; procedure TAboutPlaySound.SetAboutBoxDescription(Const AValue:String); begin fAboutBox.Description.Clear; fAboutBox.Description.Add(AValue); end; procedure TAboutPlaySound.SetAboutBoxFontName(Const AValue:String); begin fAboutBox.Font.Name:=AValue; end; procedure TAboutPlaySound.SetAboutBoxFontSize(Const AValue:Integer); begin if (AValue > 6) then fAboutBox.Font.Size:=AValue; end; procedure TAboutPlaySound.SetAboutBoxTitle(Const AValue:String); begin fAboutBox.Title:=AValue; end; procedure TAboutPlaySound.SetAboutBoxBitmap(Const AValue:TBitmap); begin If Assigned(Avalue) then fAboutBox.Assign(AValue); end; procedure TAboutPlaySound.SetAboutBoxBackgroundColor(Const AValue:TColor); begin fAboutBox.BackGroundColor:=AValue;; end; procedure TAboutPlaySound.SetAboutBoxVersion(Const AValue:String); begin fAboutBox.Version:=AValue; end; procedure TAboutPlaySound.SetAboutBoxAuthorname(Const AValue:String); begin fAboutBox.Authorname:=AValue; end; procedure TAboutPlaySound.SetAboutBoxOrganisation(Const AValue:String); begin fAboutBox.Organisation:=AValue; end; procedure TAboutPlaySound.SetAboutBoxAuthorEmail(Const AValue:String); begin fAboutBox.AuthorEmail:=AValue; end; procedure TAboutPlaySound.SetAboutBoxBackgroundResourceName(Const AValue:String); begin fAboutBox.BackgroundResourceName:=AValue; end; procedure TAboutPlaySound.SetAboutBoxLicenseType(Const AValue:string); begin Case Upcase(AValue) of 'GPL':fAboutBox.LicenseType:=abGPL; 'LGPL':fAboutBox.LicenseType:=abLGPL; 'MIT':fAboutBox.LicenseType:=abMIT; 'MODIFIEDGPL':fAboutBox.LicenseType:=abModifiedGPL; 'PROPRIETRY':fAboutBox.LicenseType:=abProprietry; else fAboutBox.LicenseType:=abNone; end; end; procedure TAboutPlaySound.SetAboutBoxStretchBackgroundImage(Const AValue:Boolean); begin fAboutBox.StretchBackground:=AValue; end; // End Sets constructor TAboutPlaySound.Create(AOwner: TComponent); var TempImage: TPicture; r:TLResource; begin // Inherit default properties inherited Create(AOwner); // Use tAboutBox as a subcomponent fAboutBox := tAboutBox.Create(nil); with fAboutBox do begin SetSubComponent(True); // Tell the IDE to store the modified properties // Default of TAboutPlaySound values override TAbouBox.Create defaults ComponentName := 'TAboutPlaySound'; Description.Add('This is to demonstrate'); //TStrings Description.Add('the use of TAboutPlaySound'); //TStrings Description.Add('Set its properties in your Constructor'); //TStrings Width := 320; //Integer Height := 280; //Integer // Set any Font properties or subproperties here // Font.Name := 'Arial'; Font.Color := clNavy; Font.Size:=10; // BackGroundColor shows if no BackGround image is set BackGroundColor := clWindow; Version := '0.0.4.0'; AuthorName := 'Gordon Bamber'; AuthorEmail := 'minesadorada@charcodelvalle.com'; Organisation := 'Public Domain'; //Types available: abNone, abGPL, abLGPL, abMIT, abModifiedGPL, abProprietry LicenseType := abLGPL; // BackGround image is optional // It must be in a resouce file in the initialization section //== How to set a background image to your About dialog -- // The BackGround property is a TBitmap // Use a Temporary TPicture to load a JPG. // NOTE a PNG file will create an error when your component is used in an application! r := LazarusResources.Find(fAboutBox.BackgroundResourceName); if r <> nil then begin TempImage := TPicture.Create; // .lrs file is in the initialization section TempImage.LoadFromLazarusResource(fAboutBox.BackgroundResourceName); BackGround.Assign(TempImage.Bitmap); TempImage.Free; StretchBackground := fAboutBox.StretchBackground; //Boolean end; end; end; destructor TAboutPlaySound.Destroy; begin FreeAndNil(fAboutBox); inherited Destroy; end; initialization {$I license.lrs} end. �������������������������./logcont.pas���������������������������������������������������������������������������������������0000644�0001750�0001750�00000537357�14576573021�013345� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit logcont; { TODO : - Barry: - LogCont minimize - Stop logging at sunrise - plot last 24hrs or last 1hr window on same view. } {$mode objfpc} interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StrUtils, dateutils, SynMemo, SynEdit, TAGraph, TASeries, TAIntervalSources, fileview, //For opening log files. dlheader, //For Timezone conversions. appsettings, //For saving and restoring hotkeys. LCLType, // For kirtual key definitions used for hotkeys. Math, //for float identifier StdCtrls, ExtCtrls, Buttons, Grids, Spin, ComCtrls, PairSplitter , uplaysound , header_utils , moon //required for Moon calculations //rotstageunit, //Rotational stage form , synaser, synautil, blcksock , TACustomSeries, TARadialSeries , TAChartUtils, TATypes, TACustomSource //, TAStyles , TATools, TATransformations //TBlockSerial for Rotational stage , FTPSend, tlntsend , LazFileUtils , LazSysUtils //For NowUTC() //, Types ; type { TFormLogCont } TFormLogCont = class(TForm) AlarmGroup: TGroupBox; AlarmSoundEnableCheck: TCheckBox; AlarmTestButton: TButton; AlarmThresholdFloatSpinEdit: TFloatSpinEdit; alert2s: TCheckBox; AltAzPlotpanel: TPanel; AnnotateButton: TButton; AnnotateEdit: TEdit; AnnotationGroupBox: TGroupBox; AnnotationSheet: TTabSheet; CurrentTime: TStaticText; CurrentTimeLabel: TLabel; FilesLogged: TStaticText; FilesLabel: TLabel; FixedAutoReadingsToggle: TToggleBox; FixedReadingsGroupBox: TGroupBox; FixedTimeMemo: TMemo; FromReadingLabel: TLabel; FromReadingSpinEdit: TSpinEdit; GoToAzimuthDisplay: TStaticText; GoToGroup: TGroupBox; GoToLogIndicatorX: TShape; GoToStepDisplay: TStaticText; GoToStepsTotalDisplay: TStaticText; GoToZenithDisplay: TStaticText; GPSLogIndicator: TStaticText; GPSLogIndicatorX: TShape; FixedTimeGroupBox: TGroupBox; InvertScale: TCheckBox; Label1: TLabel; Label15: TLabel; Label17: TLabel; Label18: TLabel; FixedTimePageControl: TPageControl; FixedTimeRadios: TRadioGroup; FixedBlankSheet: TTabSheet; FixedFixedheet: TTabSheet; FixedTwilightSheet: TTabSheet; FixedFromSpinEdit: TSpinEdit; FixedToSpinEdit: TSpinEdit; From12hrLabel: TLabel; BestDarknessLabel: TLabel; Label19: TLabel; Label20: TLabel; TransferReadingTabSheet: TTabSheet; To12hrLabel: TLabel; Label4: TLabel; LabelIn: TLabel; Labelinfile: TLabel; LCThreshold: TFloatSpinEdit; LogFieldNames: TEdit; LogFieldNamesLabel: TLabel; LogFieldUnits: TEdit; LogFieldUnitsLabel: TLabel; LogfileNameLabel: TLabel; LogFileNameText: TEdit; NextRecordAt: TStaticText; NextRecordAtLabel: TLabel; NextRecordIn: TStaticText; NightCheckBox: TCheckBox; OpenFileButton: TBitBtn; PageControl3: TPageControl; RecordsLabel: TLabel; RecordsLogged: TStaticText; RecordsloggedLabel: TLabel; RecordsMissed: TStaticText; RecordsMissedLabel: TLabel; RecordsViewSynEdit: TSynEdit; LookSheet: TTabSheet; RepeatProgress: TProgressBar; SnoozeButton: TButton; SnoozeProgress: TProgressBar; StatusSheet: TTabSheet; TemperatureCheckBox: TCheckBox; ThresholdGroupBox: TGroupBox; ThresholdMet: TShape; ToReadingLabel: TLabel; ToReadingSpinEdit: TSpinEdit; TransferPWenable: TCheckBox; CoordinatesLabel: TLabel; LocationNameLabel: TLabel; TestTransfer: TButton; TransferDATCheck: TCheckBox; TransferPLOTCheck: TCheckBox; SplitSpinLabel: TLabel; SingleDatCheckBox: TCheckBox; SplitGroup: TGroupBox; MoonPhaseSeries: TLineSeries; MoonAxisTransforms: TChartAxisTransformations; MoonAxisTransformsAutoScaleAxisTransform1: TAutoScaleAxisTransform; MoonSeries: TLineSeries; GoToButtonScriptHelp: TButton; GPSRMCIncoming: TLabeledEdit; GPSGGAIncoming: TLabeledEdit; GPSGSVIncoming: TLabeledEdit; SplitSpinEdit: TSpinEdit; TrRdgHelpButton: TButton; TrRdgAddressEntry: TEdit; TrRdgEnableCheckBox: TCheckBox; TrRdgPortEdit: TEdit; TrRdgTestButton: TButton; ZenFloatSpinEdit: TFloatSpinEdit; AziFloatSpinEdit: TFloatSpinEdit; GoToZenAziButton: TButton; GoToCommandFileComboBox: TComboBox; GoToMachineSelect: TComboBox; GetZenAziButton: TButton; GoToResultMemo: TMemo; GPSBaudSelect: TComboBox; FreshAlertTest: TButton; GoToBaudSelect: TComboBox; Label16: TLabel; GoToBaudLabel: TLabel; GoToMachinelabel: TLabel; AzimuthEditLabel: TLabel; GoToPortLabel: TLabel; ZenithEditLabel: TLabel; ScriptLabel: TLabel; LabelStatusAndCommands: TLabel; PageControl2: TPageControl; PreAlertSound: Tplaysound; FreshSound: Tplaysound; AlarmSound: Tplaysound; PreAlertTestButton: TButton; PreReadingAlertGroup: TGroupBox; ReadingAlertGroup: TRadioGroup; AlertsTabSheet: TTabSheet; GoToPortSelect: TComboBox; GoToCommandStringGrid: TStringGrid; SynScanSheet: TTabSheet; TabSheet1: TTabSheet; TabSheet2: TTabSheet; GoToCommBusy: TTimer; TransferCSVCheck: TCheckBox; MPSASAxisTransforms: TChartAxisTransformations; MPSASAxisTransformsAutoScaleAxisTransform1: TAutoScaleAxisTransform; MPSASAxisTransformsLinearAxisTransform1: TLinearAxisTransform; TemperatureAxisTransformsAutoScaleAxisTransform: TAutoScaleAxisTransform; TemperatureAxisTransforms: TChartAxisTransformations; TempSeries: TLineSeries; ClearSeries: TLineSeries; Label2: TLabel; LimitGroup: TGroupBox; RedSeries: TLineSeries; GreenSeries: TLineSeries; BlueSeries: TLineSeries; OptionsGroup: TCheckGroup; GPSEnable: TCheckBox; GPSQualityLabel: TLabeledEdit; GPSGGAStatusX: TShape; GPSGSVStatusX: TShape; GPSSAT1: TLabel; GPSSAT10: TLabel; GPSSAT11: TLabel; GPSSAT12: TLabel; GPSSAT2: TLabel; GPSSAT3: TLabel; GPSSAT4: TLabel; GPSSAT5: TLabel; GPSSAT6: TLabel; GPSSAT7: TLabel; GPSSAT8: TLabel; GPSSAT9: TLabel; GPSSatellites: TLabeledEdit; GPSSNR1: TProgressBar; GPSSNR10: TProgressBar; GPSSNR11: TProgressBar; GPSSNR12: TProgressBar; GPSSNR2: TProgressBar; GPSSNR3: TProgressBar; GPSSNR4: TProgressBar; GPSSNR5: TProgressBar; GPSSNR6: TProgressBar; GPSSNR7: TProgressBar; GPSSNR8: TProgressBar; GPSSNR9: TProgressBar; GPSSpeedLabel: TLabeledEdit; GPSDateStampLabel: TLabeledEdit; GPSValidityLabel: TLabeledEdit; GPSLatitudeLabel: TLabeledEdit; GPSLongitudeLabel: TLabeledEdit; GPSTimer: TIdleTimer; GPSSignalGroup: TGroupBox; GPS: TTabSheet; Label14: TLabel; GPSPortSelect: TComboBox; GPSElevationlabel: TLabeledEdit; GPSRMCStatusX: TShape; RecordLimitSpin: TSpinEdit; TransferSendResultLabel: TLabel; TransferSendResult: TMemo; TransferTimeout: TLabeledEdit; TransferProtocolLabel: TLabel; TransferAddressEntry: TLabeledEdit; TransferFrequencyRadioGroup: TRadioGroup; TransferFullResult: TMemo; TransferLocalFilenameDisplay: TLabeledEdit; TransferPasswordEntry: TLabeledEdit; checkSRStart: TCheckBox; checkMTAStop: TCheckBox; checkMTNStop: TCheckBox; checkMTCStop: TCheckBox; checkETCStop: TCheckBox; checkETNStop: TCheckBox; checkETAStop: TCheckBox; checkSSStop: TCheckBox; checkMTAStart: TCheckBox; checkMTNStart: TCheckBox; checkMTCStart: TCheckBox; checkETCStart: TCheckBox; checkETNStart: TCheckBox; checkETAStart: TCheckBox; checkSSStart: TCheckBox; checkSRStop: TCheckBox; CloseButton: TBitBtn; TransferPasswordShowHide: TButton; TransferPortEntry: TLabeledEdit; TransferProtocolSelector: TComboBox; TransferRemoteDirectoryEntry: TLabeledEdit; TransferRemoteFilename: TLabeledEdit; TransferSettingsGroupBox: TGroupBox; TransferUsernameEntry: TLabeledEdit; FTPResultsGroupBox: TGroupBox; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; LatitudeLabel: TLabel; LatitudeText: TStaticText; LocationGroupBox: TGroupBox; LongitudeLabel: TLabel; LongitudeText: TStaticText; BottomPanel: TPanel; PauseButton: TBitBtn; TransferFileTabSheet: TTabSheet; TransferRemoteDirectorySuccess: TShape; StartButton: TBitBtn; StartStopMemo: TMemo; SetLocationButton: TBitBtn; StopButton: TBitBtn; TimeSR: TLabel; TimeMTA: TLabel; TimeMTN: TLabel; TimeMTC: TLabel; TimeETC: TLabel; TimeETN: TLabel; TimeETA: TLabel; TimeSS: TLabel; Label3: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; checkNowStart: TCheckBox; StartLabel: TLabel; StopLabel: TLabel; checkNeverStop: TCheckBox; StartStopGroup: TGroupBox; Chart1: TChart; Chart2: TChart; Chart2LineSeries1: TLineSeries; DateTimeIntervalChartSource1: TDateTimeIntervalChartSource; Displayedcdm2: TLabel; DisplayedNELM: TLabel; DisplayedNSU: TLabel; DisplayedReading: TLabel; EastLabel: TLabel; EditHotkeysCheckBox: TCheckBox; FineTimer: TTimer; GDMF0Button: TButton; GDMF1Button: TButton; GDMGroupBox: TGroupBox; GDMSheet: TTabSheet; FrequencyGroup: TGroupBox; HotkeyStringGrid: TStringGrid; Label49: TLabel; LCTrigMinutesSpin: TSpinEdit; LCTrigSecondsSpin: TSpinEdit; MinutesLabel: TLabel; MPSASSeries: TLineSeries; NorthLabel: TLabel; OpenLogDialog: TOpenDialog; PageControl1: TPageControl; PairSplitter1: TPairSplitter; PairSplitterTop: TPairSplitterSide; PairSplitterBottom: TPairSplitterSide; PendingHotKey: TEdit; PendingLabel: TLabel; PersistentCheckBox: TCheckBox; RadioButton1: TRadioButton; RadioButton2: TRadioButton; RadioButton3: TRadioButton; RadioButton4: TRadioButton; RadioButton5: TRadioButton; RadioButton6: TRadioButton; RadioButton7: TRadioButton; RadioButton8: TRadioButton; ReadingSheet: TTabSheet; ReadingUnits: TLabel; RecordsViewMemo: TSynMemo; RotStageSheet: TTabSheet; RSComboBox: TComboBox; RSCurrentPositionAngleDisplay: TEdit; RSCurrentPositionStepDisplay: TEdit; RSDirInd: TStaticText; RSGroupBox: TGroupBox; RSLLimInd: TStaticText; RSMaxSteps: TLabeledEdit; RSPositionStepSpinEdit: TSpinEdit; RSRlimInd: TStaticText; RSSafteyInd: TStaticText; RSStatusBar: TStatusBar; SecondsLabel: TLabel; SouthLabel: TLabel; StartUpTimer: TTimer; SynchronizedCheckBox: TCheckBox; TriggerSheet: TTabSheet; WestLabel: TLabel; procedure AlarmSoundEnableCheckChange(Sender: TObject); procedure AlarmTestButtonClick(Sender: TObject); procedure AlarmThresholdFloatSpinEditChange(Sender: TObject); procedure alert2sChange(Sender: TObject); procedure AnnotateButtonClick(Sender: TObject); procedure FixedFromSpinEditChange(Sender: TObject); procedure FixedTimeRadiosClick(Sender: TObject); procedure FixedToSpinEditChange(Sender: TObject); procedure FormResize(Sender: TObject); procedure FromReadingSpinEditChange(Sender: TObject); procedure NightCheckBoxChange(Sender: TObject); procedure PairSplitterTopResize(Sender: TObject); procedure TestTransferClick(Sender: TObject); procedure GoToButtonScriptHelpClick(Sender: TObject); procedure GoToZenAziButtonClick(Sender: TObject); procedure FreshAlertTestClick(Sender: TObject); procedure GetZenAziButtonClick(Sender: TObject); procedure GoToBaudSelectChange(Sender: TObject); procedure GoToCommandFileComboBoxChange(Sender: TObject); procedure GoToCommBusyTimer(Sender: TObject); procedure GoToMachineSelectChange(Sender: TObject); procedure GoToPortSelectChange(Sender: TObject); procedure GPSBaudSelectChange(Sender: TObject); procedure GPSEnableClick(Sender: TObject); procedure PreAlertTestButtonClick(Sender: TObject); procedure checkMTAStartClick(Sender: TObject); procedure checkMTAStopClick(Sender: TObject); procedure checkNeverStopClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure GPSConnectButtonClick(Sender: TObject); procedure GPSPortSelectChange(Sender: TObject); procedure GPSPortSelectDropDown(Sender: TObject); procedure GPSTimerTimer(Sender: TObject); procedure InvertScaleChange(Sender: TObject); procedure OptionsGroupItemClick(Sender: TObject; Index: integer); procedure PauseButtonClick(Sender: TObject); procedure ReadingAlertGroupClick(Sender: TObject); procedure RecordLimitSpinChange(Sender: TObject); procedure SingleDatCheckBoxClick(Sender: TObject); procedure SnoozeButtonClick(Sender: TObject); procedure SplitSpinEditChange(Sender: TObject); procedure SynScanSheetShow(Sender: TObject); procedure TemperatureCheckBoxChange(Sender: TObject); procedure FixedAutoReadingsToggleChange(Sender: TObject); procedure ToReadingSpinEditChange(Sender: TObject); procedure TransferCSVCheckClick(Sender: TObject); procedure TransferDATCheckClick(Sender: TObject); procedure TransferFrequencyRadioGroupClick(Sender: TObject); procedure TransferPasswordEntryChange(Sender: TObject); procedure TransferPasswordShowHideClick(Sender: TObject); procedure TransferPLOTCheckClick(Sender: TObject); procedure TransferPortEntryChange(Sender: TObject); procedure TransferProtocolSelectorChange(Sender: TObject); procedure TransferPWenableChange(Sender: TObject); procedure TransferRemoteDirectoryEntryChange(Sender: TObject); procedure TransferTimeoutChange(Sender: TObject); procedure TransferUsernameEntryChange(Sender: TObject); procedure GDMF0ButtonClick(Sender: TObject); procedure GDMF1ButtonClick(Sender: TObject); procedure TransferAddressEntryChange(Sender: TObject); procedure LCThresholdChange(Sender: TObject); procedure LCTrigMinutesSpinChange(Sender: TObject); procedure LCTrigSecondsSpinChange(Sender: TObject); procedure checkNowStartClick(Sender: TObject); procedure OpenFileButtonClick(Sender: TObject); procedure CloseButtonClick(Sender: TObject); procedure EditHotkeysCheckBoxChange(Sender: TObject); procedure FineTimerTimer(Sender: TObject); procedure FormClose(Sender: TObject; var CloseAction: TCloseAction); procedure FormKeyUp(Sender: TObject; var Key: word; Shift: TShiftState); procedure FormShow(Sender: TObject); procedure PersistentCheckBoxChange(Sender: TObject); procedure RadioButton1Click(Sender: TObject); procedure SetLocationButtonClick(Sender: TObject); procedure StartButtonClick(Sender: TObject); procedure StartUpTimerTimer(Sender: TObject); procedure StopButtonClick(Sender: TObject); procedure HotkeyStringGridKeyUp(Sender: TObject; var Key: word; Shift: TShiftState); procedure HotkeyStringGridSelectEditor(Sender: TObject; aCol, aRow: integer; var Editor: TWinControl); procedure SynchronizedCheckBoxChange(Sender: TObject); procedure TrRdgHelpButtonClick(Sender: TObject); procedure TrRdgAddressEntryChange(Sender: TObject); procedure TrRdgEnableCheckBoxClick(Sender: TObject); procedure TrRdgPortEditChange(Sender: TObject); procedure TrRdgTestButtonClick(Sender: TObject); private { private declarations } procedure TransferProtocolSelection(); procedure GPSSNRClear(); procedure UpdateGoToCommandFileList(); procedure ChartColor(); procedure SetFixedReadings(); procedure SetFixedTime(); procedure CheckInvert(); procedure Text24to12hr(Hour24: Word; Receiver: TLabel); public { public declarations } procedure CustomizeEdit(ACol, ARow: integer; Editor: TStringCellEditor); procedure CheckSynchronized(); function FTPSend(): boolean; end; type GoToRecord = record Zenith, Azimuth:Float; end; procedure GPSConnect(); procedure GPSDisConnect(); function GoToSendGet(command:string; Timeout:Integer=3000; GetAlso:boolean = True; HideStatus:boolean = False;RecvTerminator:string='') : string; procedure GoToReadScript(); function Alt2Zen(Altitude:Double): Double; function Zen2Alt(Zenith:Double): Double; function GotoZenAzi(Zenith,Azimuth:Double):Boolean; procedure GoToConnect(); procedure GoToDisConnect(); procedure GoToCommand(Command:Integer; Parm1:String=''; Parm2:String=''); procedure LogOneReading(LogResult:string=''); procedure PrepareTransferPayload(); procedure TransferReading(TransferString:string); const TemperatureColor = clGreen; GoToCommBusyLimit = 12; //Timer preset for com busy in 100ms chunks (12=1.2s) lctfNever = 0; //Log Contionuous Transfer Frequency = Never lctfAfterEveryRecord = 1;//Log Contionuous Transfer Frequency = After Every Record lctfAtEndOfDay = 2;//Log Contionuous Transfer Frequency = At End Of Day var FormLogCont: TFormLogCont; FormCreating:Boolean = False; LogTimePreset, LogTimeCurrent: integer; LCTrigSeconds: Integer; LCTrigMinutes: Integer; LCLoggedCount: integer; // Number of logged records taken during this session LCLogFileCount: integer; //Number of logfiles created during this session LCTriggerMode: integer; // radio button selection (0 - __) StopRecording: boolean; Setting: string; //Setting of recorder DLHeaderStyle: string; Recording: boolean; //Flag to indicate that record is being logged RecordingMode: boolean = False; //Indicate that user has pressed Record button TimerBusy: boolean = False; //Flag to indicate that Timer event is being handled MoonData: Boolean = False; //Indicates user selceted Moon data plotted on chart. LCThresholdValue: Double = 0.0; //The user selected threshold. RawFrequencyEnabled: Boolean = False; //Enable the reading of raw frequency for logs "rFx"/ MoonElevation: extended = 0.0; MoonAzimuth: extended = 0.0; subfix: ansistring; //Used for time zone conversions //Command line automatic variables JustStarted: boolean = True; //Used for logging and display ThisMoment, ThisMomentUTC: TDateTime; TwilightMorningTimeStamp, TwilightEveningTimeStamp: TDateTime; StartPlotTimeStamp, EndPlotTimeStamp: TDateTime; OldStartPlotTimeStamp, OldEndPlotTimeStamp: TDateTime; FromHour, ToHour:Word; Temperature: Float = 0.0; Darkness: Float = 0.0; BestDarkness: Float = 0.0; BestDarknessString: String; BestDarknessTime: TDateTime; BestDarknessTimeString: String; DarknessString: String; NELM: Float = 0.0; NELMstring: String; CDM2: Float = 0.0; CDM2string: String; MCDM2string: String; NSU: Float = 0.0; NSUstring: String; //Used for Aurora display ADAFactor: Float; //Used to check 24 hr log file rollover //LCStartFileTime: TDateTime; LCStartFileDay: Integer; LCStartFileHour: Integer; SplitDatTime: Integer; SplitSpinBusy: Boolean = False; RecordsMissedCount: integer; //Determined while recording records, incrememts if meter does not respond. OldSecond: word; //Previous second value used to check timer rollover. AnnotateText: string; HotKeyCodes: array[1..100] of word; { Rotational stage variables } RSResult: string; //The response string from the rotarduino RSpieces: TStringList; //Parts of the response string from the rotarduino RSCurrentAngle: Float; //determined from step signal fed back from rotarduino RSCurrentStepNumber: integer = 0; //Counts the number of steps made RSCycle: integer = 0; //0=step left from 0deg, 1 = step right from 0deg AlarmSoundEnable:Boolean = False; Alert2sEnable:Boolean = False; AlertEnable:Integer = 0; //0=None, 1=Fresh only, 2=All { Plot line options } InvertMPSAS:Boolean = False; TemperaturePlotted: Boolean = False; NightMode: Boolean = False; FixedReadingRange: Boolean; FixedTimeAxisSelection: Integer; FromReading, ToReading: Integer; PlotCount: Integer = 86400; { GPS shared variables } GPSLatitude, GPSLongitude: Float; GPSAltitude: Integer; GPSSpeed: Float; GPSVisibleSatellites: Integer; GPSBaudrate:Integer; { GoTo shared variables } GotoMachineSelection: String = ''; GoToPortSelection:String = ''; GoToBaudrate:Integer; GoToEnabled:Boolean = False; GoToInDecoder:Boolean = False; GoToRcvLine:Integer = 0; SelectedGoToCommandFile:String; GoToStage:Integer = 0; GoToStages: array [0..3] of string = ('GoTo position', 'Wait for position', 'Get first fresh reading', 'Get second fresh reading'); { - Go to desired position, then move to next stage. - keep scanning GoTo device until not moving, then move to next stage. - Keep reading until the first fresh reading arrives, then move to next stage. - Keep reading until the second fresh reading arrives then logonereading.} GoToProgramStep:Integer = 0; //step in .goto position file GoToProgramStepsTotal:Integer = 0; //Total number of steps. GoToDesiredZenith,GoToDesiredAzimuth:Double; GoToCommandStep:Integer;//Some commands to mahcine divided into smaller steps. GoToRecvTerminator:String=''; GoToGetStableReading:Boolean=False;//Flag to identify stage of Goto command. GoToCommBusyTime: Integer = 0; GoToCommOpened: Boolean = False; GoToInPosition:Boolean = False;//Inidicates that the GoTo has reached the desired position GoToRecords: array of GoToRecord; { Transfer File settings} gfn: String; // Graphics FileName lgfn: String; // Local Graphics FileName hfn: String; // HTML FileName TransferDAT, TransferCSV, TransferPLOT:Boolean; CSVLogFileName:String; TransferPort, TransferPortSFTP, TransferUsername, TransferPassword, TransferAddress, TransferLocalFilename, TransferRemoteDirectory:String; NextRecordAtTimestamp: TDateTime; BashPath: String = ''; ExpectPath: String = ''; PWEnable: Boolean; LCTFrequency: Integer; //Log Continuous Frequency { Transfer reading settings} TrRdgEnabled: Boolean; TrRdgAddress: String; TrRdgPort: String; implementation uses Unit1 , Vector //VectorTab model , worldmap , process , FileUtil{$IFDEF WINDOWS},mmsystem{$ELSE},asyncprocess{$ENDIF} //For playing a sound ; //type // TPlayStyle = (psAsync,psSync); //For playing a sound CONST C_UnableToPlay = 'Unable to play '; {$IFNDEF WINDOWS} // Defined in mmsystem SND_SYNC=0; SND_ASYNC=1; SND_NODEFAULT=2; {$ENDIF} AlarmSnoozeTimePreset = 60*5; //seconds AlarmRepeatTimePreset = 8; //seconds //GoTo constants for commands gtGetZenithAzimuth = 0; gtSetZenithAzimuth = 1; //pseudo command consisting of a few separate commands, see timer for details. var Altitude: double; ValidStartStop: boolean; {$IFNDEF WINDOWS} SoundPlayerAsyncProcess:Tasyncprocess; SoundPlayerSyncProcess:Tprocess; {$ENDIF} //fPlayStyle:TPlayStyle; //Alert sound: tells when reading is going to take place. //Alert2sSoundFilename:String; //FreshSoundFilename:String; //Alarm sound: tells if the reading is above the threshold. AlarmThreshold:Double; AlarmRequest: Boolean = False; //Default: Alarm off AlarmSnoozeTime: Integer = AlarmSnoozeTimePreset; //Number of seconds for Snooze timer AlarmSnoozeCurrentTime: Integer = AlarmSnoozeTimePreset; //Number of seconds since Snooze was pressed, default =snooze expired AlarmRepeatTime: Integer=AlarmRepeatTimePreset; //Number of seconds between repeating alarm sound. AlarmRepeatCurrentTime: Integer=AlarmRepeatTimePreset; //Number of seconds since Snooze was pressed, default = expired LocationName: String = ''; PositionString: String = ''; PositionEntry: String = ''; function Alt2Zen(Altitude:Double): Double; begin Alt2Zen:=abs(Altitude - 90.0); end; function Zen2Alt(Zenith:Double): Double; begin Zen2Alt:=abs(90.0 - Zenith); end; procedure SetRepeatProgress(); begin FormLogCont.RepeatProgress.Position:= round((AlarmRepeatCurrentTime * FormLogCont.RepeatProgress.Max) / AlarmRepeatTime); end; procedure SetSnoozeProgress(); begin FormLogCont.SnoozeProgress.Position:= round((AlarmSnoozeCurrentTime * FormLogCont.SnoozeProgress.Max) / AlarmSnoozeTime); end; procedure UpdateStartStopText(); var s: string; begin s:= ''; //clear string //check start stop checkboxes and create a readable text string to describe the action(s). with FormLogCont do begin StartStopMemo.Clear; s:= 'Start logging:' + sLineBreak; //Append('Start logging immediately, and never stop.'); if checkNowStart.Checked then s:= s + ' immediately' + sLineBreak; if checkMTAStart.Checked then s:= s + ' at astronomical morning twilight ' + sLineBreak; if checkMTNStart.Checked then s:= s + ' at nautical morning twilight ' + sLineBreak; if checkMTCStart.Checked then s:= s + ' at civil morning twilight ' + sLineBreak; if checkSRStart.Checked then s:= s + ' at sunrise ' + sLineBreak; if checkSSStart.Checked then s:= s + ' at sunset ' + sLineBreak; if checkETCStart.Checked then s:= s + ' at civil evening twilight ' + sLineBreak; if checkETNStart.Checked then s:= s + ' at nautical evening twilight ' + sLineBreak; if checkETAStart.Checked then s:= s + ' at astronmical evening twilight ' + sLineBreak; s:= s + sLineBreak + 'and stop logging:' + sLineBreak; if checkMTAStop.Checked then s:= s + ' at astronomical morning twilight ' + sLineBreak; if checkMTNStop.Checked then s:= s + ' at nautical morning twilight ' + sLineBreak; if checkMTCStop.Checked then s:= s + ' at civil morning twilight ' + sLineBreak; if checkSRStop.Checked then s:= s + ' at sunrise ' + sLineBreak; if checkSSStop.Checked then s:= s + ' at sunset ' + sLineBreak; if checkETCStop.Checked then s:= s + ' at civil evening twilight ' + sLineBreak; if checkETNStop.Checked then s:= s + ' at nautical evening twilight ' + sLineBreak; if checkETAStop.Checked then s:= s + ' at astronmical evening twilight ' + sLineBreak; if checkNeverStop.Checked then s:= s + ' never' + sLineBreak; StartStopMemo.Append(s); end; end; procedure TransferReading(TransferString:string); var ErrorString: AnsiString; begin TCPTransferEthSocket := TTCPBlockSocket.Create; TCPTransferEthSocket.ConvertLineEnd := True; //Try setting the timeout a bit longer than normal, because // finding Ethernet devices failed a few times on slow Windows7 netbook. TCPTransferEthSocket.SetRecvTimeout(2000); TCPTransferEthSocket.SetSendTimeout(2000); TCPTransferEthSocket.Connect(TrRdgAddress, TrRdgPort); TCPTransferEthSocket.ResetLastError; TCPTransferEthSocket.Purge; TCPTransferEthSocket.SendString(TransferString); StatusMessage('Sent reading string by TCP to .'+TrRdgAddress+':'+TrRdgPort); If (TCPTransferEthSocket.LastError<>0) then begin ErrorString:= ' ['+IntToStr(TCPTransferEthSocket.LastError)+']'+ TCPTransferEthSocket.LastErrorDesc; StatusMessage('TCP sending error:'+ErrorString); end; end; procedure CheckStartStopValidity(); var Balance: integer; StartStopSame: boolean; LocationMissing: boolean; begin Balance:= 0; StartStopSame:= False; LocationMissing:= False; with FormLogCont do begin //Check number of selected Starts compared to number of selected Stops if checkNowStart.Checked then Inc(Balance); if checkMTAStart.Checked then Inc(Balance); if checkMTNStart.Checked then Inc(Balance); if checkMTCStart.Checked then Inc(Balance); if checkSRStart.Checked then Inc(Balance); if checkSSStart.Checked then Inc(Balance); if checkETCStart.Checked then Inc(Balance); if checkETNStart.Checked then Inc(Balance); if checkETAStart.Checked then Inc(Balance); if checkMTAStop.Checked then Dec(Balance); if checkMTNStop.Checked then Dec(Balance); if checkMTCStop.Checked then Dec(Balance); if checkSRStop.Checked then Dec(Balance); if checkSSStop.Checked then Dec(Balance); if checkETCStop.Checked then Dec(Balance); if checkETNStop.Checked then Dec(Balance); if checkETAStop.Checked then Dec(Balance); if checkNeverStop.Checked then Dec(Balance); //Check that Start is not the same as Stop StartStopSame:= (checkMTAStart.Checked and checkMTAStop.Checked) or (checkMTNStart.Checked and checkMTNStop.Checked) or (checkMTCStart.Checked and checkMTCStop.Checked) or (checkSRStart.Checked and checkSRStop.Checked) or (checkSSStart.Checked and checkSSStop.Checked) or (checkETCStart.Checked and checkETCStop.Checked) or (checkETNStart.Checked and checkETNStop.Checked) or (checkETAStart.Checked and checkETAStop.Checked); //Check for valid location if ((StrToFloatDef(LatitudeText.Caption, 0) = 0) or (StrToFloatDef(LongitudeText.Caption, 0) = 0)) then LocationMissing:= True; // Prepare memo for possible error messages StartStopMemo.Clear; //Show warnings if Balance <> 0 then StartStopMemo.Append('Number of starts ≠ stops.'); if StartStopSame then StartStopMemo.Append('Start and stop time must be different.'); if LocationMissing then StartStopMemo.Append('Latitude and/or Longitude not set.'); //Set global valid flag ValidStartStop:= not ((Balance <> 0) or StartStopSame or LocationMissing); //Update textual desription if valid if ValidStartStop then UpdateStartStopText(); end; end; procedure SaveStartStopSettings(); begin CheckStartStopValidity(); if ValidStartStop then begin with FormLogCont do begin vConfigurations.WriteBool('LogContinuousSettings', 'StartNow', checkNowStart.Checked); vConfigurations.WriteBool('LogContinuousSettings', 'StartMTA', checkMTAStart.Checked); vConfigurations.WriteBool('LogContinuousSettings', 'StartMTN', checkMTNStart.Checked); vConfigurations.WriteBool('LogContinuousSettings', 'StartMTC', checkMTCStart.Checked); vConfigurations.WriteBool('LogContinuousSettings', 'StartSR', checkSRStart.Checked); vConfigurations.WriteBool('LogContinuousSettings', 'StartSS', checkSSStart.Checked); vConfigurations.WriteBool('LogContinuousSettings', 'StartETC', checkETCStart.Checked); vConfigurations.WriteBool('LogContinuousSettings', 'StartETN', checkETNStart.Checked); vConfigurations.WriteBool('LogContinuousSettings', 'StartETA', checkETAStart.Checked); vConfigurations.WriteBool('LogContinuousSettings', 'StopMTA', checkMTAStop.Checked); vConfigurations.WriteBool('LogContinuousSettings', 'StopMTN', checkMTNStop.Checked); vConfigurations.WriteBool('LogContinuousSettings', 'StopMTC', checkMTCStop.Checked); vConfigurations.WriteBool('LogContinuousSettings', 'StopSR', checkSRStop.Checked); vConfigurations.WriteBool('LogContinuousSettings', 'StopSS', checkSSStop.Checked); vConfigurations.WriteBool('LogContinuousSettings', 'StopETC', checkETCStop.Checked); vConfigurations.WriteBool('LogContinuousSettings', 'StopETN', checkETNStop.Checked); vConfigurations.WriteBool('LogContinuousSettings', 'StopETA', checkETAStop.Checked); vConfigurations.WriteBool('LogContinuousSettings', 'StopNever', checkNeverStop.Checked); end; end; end; procedure UpdateAstroTimes(); var ThisUTC: TDateTime; ThisLocation: string; begin //Get a sample of the current UTC for consistent use in this procedure ThisUTC:= NowUTC(); //Get the location for use in this procedure ThisLocation:= DLHeaderForm.TZLocationBox.Text; //Parts of the world will not have calculable times at certain times of the //year, so exceptions need to be processed. with FormLogCont do begin try TimeMTC.Caption:= FormatDateTime('tt', dlheader.ptz.GMTToLocalTime(Morning_Twilight_Civil(ThisUTC, MyLatitude, -1.0 * MyLongitude), ThisLocation, subfix)); except TimeMTC.Caption:= 'None'; end; try TimeETC.Caption:= FormatDateTime('tt', dlheader.ptz.GMTToLocalTime(Evening_Twilight_Civil(ThisUTC, MyLatitude, -1.0 * MyLongitude), ThisLocation, subfix)); except TimeETC.Caption:= 'None'; end; try TimeMTN.Caption:= FormatDateTime('tt', dlheader.ptz.GMTToLocalTime(Morning_Twilight_Nautical(ThisUTC, MyLatitude, -1.0 * MyLongitude), ThisLocation, subfix)); except TimeMTN.Caption:= 'None'; end; try TimeETN.Caption:= FormatDateTime('tt', dlheader.ptz.GMTToLocalTime(Evening_Twilight_Nautical(ThisUTC, MyLatitude, -1.0 * MyLongitude), ThisLocation, subfix)); except TimeETN.Caption:= 'None'; end; try TimeMTA.Caption:= FormatDateTime('tt', dlheader.ptz.GMTToLocalTime(Morning_Twilight_Astronomical(ThisUTC, MyLatitude, -1.0 * MyLongitude), ThisLocation, subfix)); except TimeMTA.Caption:= 'None'; end; try TimeETA.Caption:= FormatDateTime('tt', dlheader.ptz.GMTToLocalTime(Evening_Twilight_Astronomical(ThisUTC, MyLatitude, -1.0 * MyLongitude), ThisLocation, subfix)); except TimeETA.Caption:= 'None'; end; try TimeSR.Caption:= FormatDateTime('tt', dlheader.ptz.GMTToLocalTime(Sun_Rise(ThisUTC, MyLatitude, -1.0 * MyLongitude), ThisLocation, subfix)); except TimeSR.Caption:= 'None'; end; try TimeSS.Caption:= FormatDateTime('tt', dlheader.ptz.GMTToLocalTime(Sun_Set(ThisUTC, MyLatitude, -1.0 * MyLongitude), ThisLocation, subfix)); except TimeSS.Caption:= 'None'; end; end; end; procedure GetStartStopSettings(); var NumStart, NumStop: integer; begin with FormLogCont do begin checkNowStart.Checked:= vConfigurations.ReadBool('LogContinuousSettings', 'StartNow', False); checkMTAStart.Checked:= vConfigurations.ReadBool('LogContinuousSettings', 'StartMTA', False); checkMTNStart.Checked:= vConfigurations.ReadBool('LogContinuousSettings', 'StartMTN', False); checkMTCStart.Checked:= vConfigurations.ReadBool('LogContinuousSettings', 'StartMTC', False); checkSRStart.Checked:= vConfigurations.ReadBool('LogContinuousSettings', 'StartSR', False); checkSSStart.Checked:= vConfigurations.ReadBool('LogContinuousSettings', 'StartSS', False); checkETCStart.Checked:= vConfigurations.ReadBool('LogContinuousSettings', 'StartETC', False); checkETNStart.Checked:= vConfigurations.ReadBool('LogContinuousSettings', 'StartETN', False); checkETAStart.Checked:= vConfigurations.ReadBool('LogContinuousSettings', 'StartETA', False); checkMTAStop.Checked:= vConfigurations.ReadBool('LogContinuousSettings', 'StopMTA', False); checkMTNStop.Checked:= vConfigurations.ReadBool('LogContinuousSettings', 'StopMTN', False); checkMTCStop.Checked:= vConfigurations.ReadBool('LogContinuousSettings', 'StopMTC', False); checkSRStop.Checked:= vConfigurations.ReadBool('LogContinuousSettings', 'StopSR', False); checkSSStop.Checked:= vConfigurations.ReadBool('LogContinuousSettings', 'StopSS', False); checkETCStop.Checked:= vConfigurations.ReadBool('LogContinuousSettings', 'StopETC', False); checkETNStop.Checked:= vConfigurations.ReadBool('LogContinuousSettings', 'StopETN', False); checkETAStop.Checked:= vConfigurations.ReadBool('LogContinuousSettings', 'StopETA', False); checkNeverStop.Checked:= vConfigurations.ReadBool('LogContinuousSettings', 'StopNever', False); //Get location LatitudeText.Caption:= Format('%0.6f', [MyLatitude]); LongitudeText.Caption:= Format('%0.6f', [MyLongitude]); //Check validity //ensure at least one Start NumStart:= 0; if checkMTAStart.Checked then Inc(NumStart); if checkMTNStart.Checked then Inc(NumStart); if checkMTCStart.Checked then Inc(NumStart); if checkSRStart.Checked then Inc(NumStart); if checkSSStart.Checked then Inc(NumStart); if checkETCStart.Checked then Inc(NumStart); if checkETNStart.Checked then Inc(NumStart); if checkETAStart.Checked then Inc(NumStart); if NumStart = 0 then checkNowStart.Checked:= True; //ensure at least one Stop NumStop:= 0; if checkMTAStop.Checked then Inc(NumStop); if checkMTNStop.Checked then Inc(NumStop); if checkMTCStop.Checked then Inc(NumStop); if checkSRStop.Checked then Inc(NumStop); if checkSSStop.Checked then Inc(NumStop); if checkETCStop.Checked then Inc(NumStop); if checkETNStop.Checked then Inc(NumStop); if checkETAStop.Checked then Inc(NumStop); if NumStop = 0 then checkNeverStop.Checked:= True; end; if ((NumStart > 0) or (NumStop > 0)) then begin SaveStartStopSettings(); CheckStartStopValidity(); //Tell user if settings are valid end; UpdateAstroTimes(); //Show actual times on screen end; function MPSASToRGB(MPSAS: double): Tcolor; //Convert MPSAS to Tcolor RGB value // using plot from Dan Duriscoe ADA463050.pdf var R: integer = 0; G: integer = 0; B: integer = 0; const White = 18.0;// (RGB) Red = 18.7;// (R ) Yellow = 20.0;// (RG ) Green = 20.4;// ( G ) Blue = 21.1;// ( B) Black = 22.5;// ( ) procedure MinMaxRange(InX, StartX, StopX, StartY, StopY: double; var OutY: integer); var m, b: double; //Slope, Offset begin if ((InX > StartX) and (InX <= StopX)) then begin m:= (StopY - StartY) / (StopX - StartX); b:= StartY - M * StartX; OutY:= round((m * InX + b) * 255); end; end; begin MinMaxRange(MPSAS, 0, Yellow, 1, 1, R); MinMaxRange(MPSAS, Yellow, Green, 1, 0, R); MinMaxRange(MPSAS, Green, Blue, 0, 0, R); MinMaxRange(MPSAS, Blue, Blue + (Black - Blue) / 2, 0, 1, R); MinMaxRange(MPSAS, Blue + (Black - Blue) / 2, Black, 1, 0, R); MinMaxRange(MPSAS, 0, White, 1, 1, G); MinMaxRange(MPSAS, White, Red, 1, 0, G); MinMaxRange(MPSAS, Red, Yellow, 0, 1, G); MinMaxRange(MPSAS, Yellow, Green, 1, 1, G); MinMaxRange(MPSAS, Green, Blue, 1, 0, G); MinMaxRange(MPSAS, Blue, 100, 0, 0, G); MinMaxRange(MPSAS, 0, White, 1, 1, B); MinMaxRange(MPSAS, White, Red, 1, 0, B); MinMaxRange(MPSAS, Red, Green, 0, 0, B); MinMaxRange(MPSAS, Green, Blue, 0, 1, B); MinMaxRange(MPSAS, Blue, Black, 1, 0, B); MinMaxRange(MPSAS, Black, 100, 0, 0, B); MPSASToRGB:= RGBToColor(R, G, B); end; procedure ParseRotstage(Result: string); begin RSpieces.DelimitedText:= Result; //0 current position RSCurrentAngle:= StrToFloatDef(RSpieces.Strings[0], 0.0) * 90.0 / 50.0; //1 Right limit value, 1=hit if (RSpieces.Strings[1] = '1') then FormLogCont.RSRlimInd.Color:= clRed else FormLogCont.RSRlimInd.Color:= clDefault; //2 Left limit value, 1=hit if (RSpieces.Strings[2] = '1') then FormLogCont.RSLlimInd.Color:= clRed else FormLogCont.RSLlimInd.Color:= clDefault; //3 Safety limit value if (RSpieces.Strings[3] = '1') then FormLogCont.RSSafteyInd.Color:= clRed else FormLogCont.RSSafteyInd.Color:= clDefault; //4 Reset value 0 = reset // Writeln(RSpieces.Strings[4]); //5 desired Step direction 0=left, 1=right if (RSpieces.Strings[5] = '1') then FormLogCont.RSDirInd.Caption:= 'Dir=Right' else FormLogCont.RSDirInd.Caption:= 'Dir=Left'; //6 actual step direction //7 Sleep value 0 = sleep FormLogCont.RSCurrentPositionAngleDisplay.Text:= Format('%1.1f', [RSCurrentAngle]); end; function keyslist(Key: word): string; type TSendKey = record Name: ShortString; VKey: byte; end; const {Array of keys that SendKeys recognizes. If you add to this list, you must be sure to keep it sorted alphabetically by Name because a binary search routine is used to scan it. http://delphiworld.narod.ru/base/sendkeys_vb.html} MaxSendKeyRecs = 77; SendKeyRecs: array[1..MaxSendKeyRecs] of TSendKey = ( (Name: 'F1'; VKey: VK_F1), (Name: 'F2'; VKey: VK_F2), (Name: 'F3'; VKey: VK_F3), (Name: 'F4'; VKey: VK_F4), (Name: 'F5'; VKey: VK_F5), (Name: 'F6'; VKey: VK_F6), (Name: 'F7'; VKey: VK_F7), (Name: 'F8'; VKey: VK_F8), (Name: 'F9'; VKey: VK_F9), (Name: 'F10'; VKey: VK_F10), (Name: 'F11'; VKey: VK_F11), (Name: 'F12'; VKey: VK_F12), (Name: 'F13'; VKey: VK_F13), (Name: 'F14'; VKey: VK_F14), (Name: 'F15'; VKey: VK_F15), (Name: 'F16'; VKey: VK_F16), (Name: 'F17'; VKey: VK_F17), (Name: 'F18'; VKey: VK_F18), (Name: 'F19'; VKey: VK_F19), (Name: 'F20'; VKey: VK_F20), (Name: 'F21'; VKey: VK_F21), (Name: 'F22'; VKey: VK_F22), (Name: 'F23'; VKey: VK_F23), (Name: 'F24'; VKey: VK_F24), (Name: '0'; VKey: VK_0), (Name: '1'; VKey: VK_1), (Name: '2'; VKey: VK_2), (Name: '3'; VKey: VK_3), (Name: '4'; VKey: VK_4), (Name: '5'; VKey: VK_5), (Name: '6'; VKey: VK_6), (Name: '7'; VKey: VK_7), (Name: '8'; VKey: VK_8), (Name: '9'; VKey: VK_9), (Name: 'A'; VKey: VK_A), (Name: 'B'; VKey: VK_B), (Name: 'C'; VKey: VK_C), (Name: 'D'; VKey: VK_D), (Name: 'E'; VKey: VK_E), (Name: 'F'; VKey: VK_F), (Name: 'G'; VKey: VK_G), (Name: 'H'; VKey: VK_H), (Name: 'I'; VKey: VK_I), (Name: 'J'; VKey: VK_J), (Name: 'K'; VKey: VK_K), (Name: 'L'; VKey: VK_L), (Name: 'M'; VKey: VK_M), (Name: 'N'; VKey: VK_N), (Name: 'O'; VKey: VK_O), (Name: 'P'; VKey: VK_P), (Name: 'Q'; VKey: VK_Q), (Name: 'R'; VKey: VK_R), (Name: 'S'; VKey: VK_S), (Name: 'T'; VKey: VK_T), (Name: 'U'; VKey: VK_U), (Name: 'V'; VKey: VK_V), (Name: 'W'; VKey: VK_W), (Name: 'X'; VKey: VK_X), (Name: 'Y'; VKey: VK_Y), (Name: 'Z'; VKey: VK_Z), (Name: 'SPACE'; VKey: VK_SPACE), (Name: 'NUMPAD0'; VKey: VK_NUMPAD0), (Name: 'NUMPAD1'; VKey: VK_NUMPAD1), (Name: 'NUMPAD2'; VKey: VK_NUMPAD2), (Name: 'NUMPAD3'; VKey: VK_NUMPAD3), (Name: 'NUMPAD4'; VKey: VK_NUMPAD4), (Name: 'NUMPAD5'; VKey: VK_NUMPAD5), (Name: 'NUMPAD6'; VKey: VK_NUMPAD6), (Name: 'NUMPAD7'; VKey: VK_NUMPAD7), (Name: 'NUMPAD8'; VKey: VK_NUMPAD8), (Name: 'NUMPAD9'; VKey: VK_NUMPAD9), (Name: 'MULTIPLY'; VKey: VK_MULTIPLY), (Name: 'ADD'; VKey: VK_ADD), (Name: 'SEPARATOR'; VKey: VK_SEPARATOR), (Name: 'SUBTRACT'; VKey: VK_SUBTRACT), (Name: 'DECIMAL'; VKey: VK_DECIMAL), (Name: 'DIVIDE'; VKey: VK_DIVIDE) ); var A: TSendKey; begin keyslist:= ''; for A in SendKeyRecs do begin if Key = A.VKey then keyslist:= A.Name; end; end; function Sec2DHMS(InSeconds: integer): string; var Days: integer; Hours: integer; InHours: integer; Minutes: integer; InMinutes: integer; Seconds: integer; begin Seconds:= InSeconds mod 60; InMinutes:= InSeconds div 60; Minutes:= InMinutes mod 60; InHours:= InMinutes div 60; Hours:= InHours mod 24; Days:= InHours div 24; Sec2DHMS:= Format('%.1dd %.2d:%.2d:%.2d', [Days, Hours, Minutes, Seconds]); end; procedure OnTheClock(const ThisMoment: TDateTime; const Granularity: integer); {This utility gets the next time from now based on a granularity setting, i.e for determining log time and difference for logging every x minutes} begin // Determine next record time and calculate time until record // Replace seconds with 0 NextRecordAtTimestamp:= RecodeSecond(IncMinute(ThisMoment, Granularity - MinuteOf(ThisMoment) mod Granularity),0); FormLogCont.NextRecordAt.Caption:=FormatDateTime('yyyy-mm-dd hh:nn:ss', NextRecordAtTimestamp); LogTimeCurrent:= SecondsBetween(ThisMoment, NextRecordAtTimestamp); end; {LogResult contains previously read string that should be logged.} procedure LogOneReading(LogResult:string=''); var pieces: TStringList; //delimited result from generic read Result: string; Hpieces:TStringList; //Humidity result Humidity:float; SelectedDevicePointer: Integer = 0; DeviceCounter:Integer = 0; {======================================================} function CheckRecordCount(): boolean; var ExpectedPieces:Integer; begin case SelectedModel of model_ADA: ExpectedPieces:=8; model_GDM: ExpectedPieces:=3; model_C: ExpectedPieces:=9; model_LELU, model_DL, model_V, model_LR: ExpectedPieces:=6; model_DLS: if (SnowLoggingEnabled) then ExpectedPieces:=7 else ExpectedPieces:=6; end; if Freshness then ExpectedPieces:=ExpectedPieces+2; if (pieces.Count >= ExpectedPieces) then CheckRecordCount:= True else begin CheckRecordCount:= False; StatusMessage(format( 'CheckRecordCount fail: SelectedModel = %d, Expected pieces = %d, Actual pieces= %d', [SelectedModel, ExpectedPieces, pieces.Count])); end; end; {======================================================} procedure WriteRecord(Special: string = ''); var ComposeString: string; Reading1, Reading2: integer; //For ADA readings RawMag, CompMag: integer; //For magnetometer readings ReadingUA:Double;//Unaveraged reading ReadingState:String;// Status of reading (fresh or stale) //SnowLEDState:String;//Values 'S', 'D', '?' ReadingStateField:Integer = -1; begin ThisMomentUTC:= NowUTC(); //ThisMoment:= dlheader.ptz.GMTToLocalTime(ThisMomentUTC,SelectedTZLocation, subfix); //Changed because Windows runs on Local times, and when people ignore DST, the computed proper local time will be diffenent. ThisMoment:= Now(); //Update chart time range FormLogCont.SetFixedTime(); Application.ProcessMessages; //Create new logfile if over 24hr time. //if (DayOf(LCStartFileTime) <> DayOf(ThisMoment)) then begin {Original method to split aat midnight.} //Split file and optional hour. Possible conditions: // - started today before the rollover hour. // - Normally rolls over from a previsouly rolled over file. // - When current = Slit hour, only make one new file. if ((HourOf(ThisMoment)=SplitDatTime) and ((DayOf(ThisMoment)<>LCStartFileDay) or (HourOf(ThisMoment)<>LCStartFileHour))) then begin //FTP last file if LCTFrequency=lctfAtEndOfDay then FormLogCont.FTPSend(); // Open new file and store header if not SingleDatFile then begin if SelectedModel = model_V then //Vector device WriteDLHeader(DLHeaderStyle, Format('Logged Vector continuously %s.', [setting])) else WriteDLHeader(DLHeaderStyle, Format('Logged continuously %s.', [setting])); end; //Update the time that the new file was created //LCStartFileTime:= ThisMoment; LCStartFileDay:= DayOf(ThisMoment); LCStartFileHour:= HourOf(ThisMoment); // Display number of logfiles Inc(LCLogFileCount); FormLogCont.FilesLogged.Caption:= IntToStr(LCLogFileCount); if LCLogFileCount = 1 then FormLogCont.FilesLabel.Caption:= 'file' else FormLogCont.FilesLabel.Caption:= 'files'; end; // Display LogFileNameText path FormLogCont.LogFileNameText.Caption:= RemoveMultiSlash(LogFileName); if TransferDAT then TransferLocalFilename:=LogFileName; if TransferCSV then TransferLocalFilename:=CSVLogFileName; FormLogCont.TransferLocalFilenameDisplay.Text:= TransferLocalFilename; if (Special = '') then begin case SelectedModel of model_ADA: begin // --- ADA device --- { Pull in values } Reading1:= StrToIntDef(AnsiMidStr(pieces.Strings[2], 1, 10), 0); Reading2:= StrToIntDef(AnsiMidStr(pieces.Strings[4], 1, 10), 0); // Update factor if Reading2 <> 0 then ADAFactor:= Reading1 / Reading2 else ADAFactor:= 0; //FormLogCont.ADAFactor.Caption:= Format('%1.3f', [ADAFactor]); // YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Hz;Count1;Time1;Count2;Time2 { TODO : make header description for ADA match data } //r,0000000238Hz,0000000000c,0000000.000s,0000000000c,0000000.000s,000,109 ComposeString:= FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"', LazSysUtils.NowUTC()) //Date UTC + FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"', Now()) //Date Local + Format('%d;', [StrToIntDef(AnsiMidStr(pieces.Strings[1], 1, 10), 0)]) //Frequency + Format('%d;', [Reading1]) //Counter1 + Format('%1.3f;', [StrToFloatDef(AnsiMidStr(pieces.Strings[3], 1, 11), 0)]) //Time1 + Format('%d;', [Reading2]) //Counter2 + Format('%1.3f;', [StrToFloatDef(AnsiMidStr(pieces.Strings[5], 1, 11), 0)]) //Time2 + Format('%1.3f', [ADAFactor]); //Update displayed readings FormLogCont.DisplayedReading.Caption:= FormatFloat('#0.00', ADAFactor, FPointSeparator); FormLogCont.DisplayedNELM.Caption:= Format('%d : rdg1', [Reading1]); FormLogCont.Displayedcdm2.Caption:= Format('%d : rdg2', [Reading2]); FormLogCont.DisplayedNSU.Caption:= ''; //Update Chart FormLogCont.MPSASSeries.AddXY(Now, ADAFactor); //Limit chart size when running for a long time if FormLogCont.MPSASSeries.Count > PlotCount then FormLogCont.MPSASSeries.ListSource.Delete(0); end; //End of ADA device model_GDM: begin // --- GDM device --- { Pull in values } RawMag:= StrToIntDef(AnsiMidStr(pieces.Strings[1], 1, 10), 0); if StrToIntDef(pieces.Strings[2], 0) < 32768 then Temperature:= StrToFloatDef(pieces.Strings[2], 0, FPointSeparator) / 128.0 else Temperature:= (StrToFloatDef(pieces.Strings[2], 0, FPointSeparator) - 65536.0) / 128.0; //formula by Kyle Reiter for one sensor: // By = By - k*temperature+C // k = 133.6, C = 3420 CompMag:=round(RawMag - 133.6 * Temperature + 3420); // YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Count;Temp //r,0000000000c,xxxx ComposeString:= FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"', LazSysUtils.NowUTC())//Date UTC + FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"', Now())//Date Local + Format('%d;', [RawMag])//Counter + Format('%1.3f;', [Temperature])//Temperature + Format('%d;', [CompMag])//Compensated magnetometer reading ; //Update displayed readings FormLogCont.DisplayedReading.Caption:= FormatFloat('#0', CompMag, FPointSeparator); FormLogCont.DisplayedNELM.Caption:= ''; FormLogCont.Displayedcdm2.Caption:= ''; FormLogCont.DisplayedNSU.Caption:= ''; //Update Chart FormLogCont.MPSASSeries.AddXY(Now, CompMag); //Limit chart size when running for a long time if FormLogCont.MPSASSeries.Count > PlotCount then FormLogCont.MPSASSeries.ListSource.Delete(0); end; //End of GDM device model_C: begin // --- Colour device --- { Pull in values } Temperature:= StrToFloatDef( AnsiLeftStr(pieces.Strings[5], Length(pieces.Strings[5]) - 1), 0, FPointSeparator); Darkness:= StrToFloatDef(AnsiLeftStr(pieces.Strings[1],Length(pieces.Strings[1]) - 1), 0, FPointSeparator); // YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Celsius;number;Hz;mag/arcsec^2,Scaling,Colour') ComposeString:= FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"', ThisMomentUTC) //Date UTC + FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"', ThisMoment) //Date Local (calculated) + FormatFloat('##0.0', Temperature, FPointSeparator) + ';' //Temperature + Format('%d;', [StrToIntDef(AnsiLeftStr(pieces.Strings[3],length(pieces.Strings[3]) - 1), 0)]) //counts + Format('%d;', [StrToIntDef(AnsiLeftStr(pieces.Strings[2],length(pieces.Strings[2]) - 2), 0)]) //Hz + FormatFloat('#0.00', Darkness, FPointSeparator) //mpsas value + Format(';%s;', [pieces.Strings[6]]) //Colour scaling + Format('%s;', [pieces.Strings[7]]) //Colour + Format('%s', [pieces.Strings[8]]) //Colour cycling ; if Freshness then begin ReadingUA:=StrToFloatDef(AnsiLeftStr(pieces.Strings[9],Length(pieces.Strings[1]) - 1), 0, FPointSeparator); ReadingState:=pieces.Strings[10]; case ReadingState of 'F','P': FreshReading:=True; else FreshReading:=False; end; ComposeString:= ComposeString + ';'+ FormatFloat('#0.00', ReadingUA, FPointSeparator)//unaveraged value + ';'+ReadingState; //Status value end; //Update Chart plot multiple colours case SelectedColour of 0: FormLogCont.RedSeries.AddXY(Now, Darkness);//Red 1: FormLogCont.BlueSeries.AddXY(Now, Darkness);//Blue 2: FormLogCont.ClearSeries.AddXY(Now, Darkness);//Clear 3: FormLogCont.GreenSeries.AddXY(Now, Darkness);//Green end; //Limit chart size when running for a long time if FormLogCont.RedSeries.Count > PlotCount then begin FormLogCont.RedSeries.ListSource.Delete(0); FormLogCont.GreenSeries.ListSource.Delete(0); FormLogCont.BlueSeries.ListSource.Delete(0); FormLogCont.ClearSeries.ListSource.Delete(0); end; //Change colour if fixed mode if not ColourCyclingFlag then begin SelectedColour:=(SelectedColour+1) mod 4; SendGet('f'+IntToStr(SelectedColourScaling)+IntToStr(SelectedColour)+'x'); end; if TemperaturePlotted then begin FormLogCont.TempSeries.AddXY(Now, Temperature); end; if ((MoonData) and (FixedTimeAxisSelection=0)) then FormLogCont.MoonSeries.AddXY(Now, MoonElevation); end; else begin //must be LE or LU device { Pull in values } Temperature:= StrToFloatDef( AnsiLeftStr(pieces.Strings[5], Length(pieces.Strings[5]) - 1), 0, FPointSeparator); Darkness:= StrToFloatDef(AnsiLeftStr(pieces.Strings[1], Length(pieces.Strings[1]) - 1), 0, FPointSeparator); { Get best maximum darkness } if Darkness>BestDarkness then begin BestDarkness:=Darkness; BestDarknessTime:=Now(); BestDarknessTimeString:=Format('%s',[FormatDateTime('yyyy-mm-dd"T"hh:nn:ss',BestDarknessTime)]) end; //Get accessory values; like Humidity/temperature if A1Enabled then begin Hpieces:= TStringList.Create; Hpieces.Delimiter:= ','; Hpieces.DelimitedText:=SendGet('A1x'); if Hpieces.Count=7 then Humidity:=StrToFloatDef(Hpieces.Strings[5],0)/( power(2,14) - 2)*100 else Humidity:=0.0; if Assigned(Hpieces) then FreeAndNil(Hpieces); end; // YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Celsius;number;Hz;mag/arcsec^2') ComposeString:= FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"', ThisMomentUTC) //Date UTC + FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"', ThisMoment) //Date Local + FormatFloat('##0.0', Temperature, FPointSeparator) + ';' //Temperature + Format('%d;', [StrToIntDef(AnsiLeftStr(pieces.Strings[3], length(pieces.Strings[3]) - 1), 0)]) //counts + Format('%d;', [StrToIntDef(AnsiLeftStr(pieces.Strings[2], length(pieces.Strings[2]) - 2), 0)]) //Hz + FormatFloat('#0.00', Darkness, FPointSeparator) //mpsas value ; if GoToEnabled then begin ComposeString:= ComposeString + ';'+ Format('%.3f;%.3f',[GoToDesiredZenith,GoToDesiredAzimuth]); end; if RawFrequencyEnabled then begin ComposeString:= ComposeString + ';'+ Format('%d',[StrToIntDef(pieces.Strings[6],0)]); end; if Freshness then begin ReadingStateField:=7; ReadingUA:=StrToFloatDef(AnsiLeftStr(pieces.Strings[6],Length(pieces.Strings[1]) - 1), 0, FPointSeparator); ReadingState:=pieces.Strings[ReadingStateField]; case ReadingState of 'F','P': FreshReading:=True; else FreshReading:=False; end; ComposeString:= ComposeString + ';'+ FormatFloat('#0.00', ReadingUA, FPointSeparator)//unaveraged value + ';'+ReadingState; //Status value end; //Optional Snow factor header for datalogger //Indicate if Snow LED is on/off if ((SelectedModel=model_DLS) and SnowLoggingEnabled) then begin If AccSnowLEDState then ComposeString:= ComposeString + ';S' else ComposeString:= ComposeString + ';D'; end; if SelectedModel = model_V then begin //Vector device // Already done in getreading //GetAccel(); //GetMag(False); //not needed?? (included in getaccel) //NormalizeAccel(); //Compute acceleration values (In the future, this may be done inside the PIC) ComputeAzimuth(); Altitude:= ComputeAltitude(Ax1, Ay1, Az1); Heading:= radtodeg(arctan2(-1 * Mz2, Mx2)) + 180; ComposeString:= ComposeString + Format(';%0.0f;%0.0f;%0.0f;%0.0f;%0.0f;%0.0f;%0.1f;%0.1f;%0.0f', [ Ax, Ay, Az, // Raw Accelerometer values Mx, My, Mz, // Raw magnetometer values Altitude , // Altitude abs(Altitude - 90.0) , // Zenith Heading]); // Azimuth end; //Update position display if GoToEnabled then begin FormLogCont.GoToZenithDisplay.Caption:=Format('Zen: %.3f',[GoToDesiredZenith]); FormLogCont.GoToAzimuthDisplay.Caption:=Format('Azi: %.3f',[GoToDesiredAzimuth]); end; //Update displayed readings if Freshness then Darkness:=ReadingUA; DarknessString:=Darkness2MPSASString(Darkness); FormLogCont.DisplayedReading.Caption:= DarknessString; BestDarknessString:=Darkness2MPSASString(BestDarkness); if BestDarknessString='--' then FormLogCont.BestDarknessLabel.Caption:=Format('Best: %s',[BestDarknessString]) else FormLogCont.BestDarknessLabel.Caption:=Format('Best: %s at %s',[BestDarknessString,BestDarknessTimeString]); FormLogCont.LocationNameLabel.Caption:=LocationName; FormLogCont.CoordinatesLabel.Caption:=PositionString; NELM:= Darkness2NELM(Darkness); NELMString:=Darkness2NELMString(Darkness); FormLogCont.DisplayedNELM.Caption:= Format('%s NELM',[NELMString]); CDM2:=Darkness2CDM2(Darkness); CDM2string:=Darkness2CDM2String(Darkness); MCDM2string:=Darkness2MCDM2String(Darkness); FormLogCont.Displayedcdm2.Caption:= Format('%s cd/m²', [CDM2string]); NSU:=Darkness2NSU(Darkness); NSUstring:=Darkness2NSUString(Darkness); FormLogCont.DisplayedNSU.Caption:= NSUstring+ ' NSU'; { Optional Moon data } if MoonData then begin //Calculate Moon position //Change sign for Moon calculations Moon_Position_Horizontal( StrToDateTime(DateTimeToStr(LazSysUtils.NowUTC())), -1.0*MyLongitude, MyLatitude, MoonElevation, MoonAzimuth); //Prepare string for output. ComposeString:= ComposeString + ';' //Moon Phase angle (0 to 180 degrees). + Format('%.1f;',[moon_phase_angle(StrToDateTime(DateTimeToStr(LazSysUtils.NowUTC())))]) //Moon elevation (positive = above horizon, negative = below horizon). + Format('%.3f;',[MoonElevation]) //Moon illumination pecent. + Format('%.1f;',[current_phase(StrToDateTime(DateTimeToStr(LazSysUtils.NowUTC())))*100.0]) //Moon elevation (positive = above horizon, negative = below horizon). + Format('%.3f',[MoonAzimuth]); end; {Update Chart} if ((not Freshness) or ((Freshness) and (ReadingState<>'S'))) then begin FormLogCont.MPSASSeries.AddXY(Now, Darkness); if TemperaturePlotted then FormLogCont.TempSeries.AddXY(Now, Temperature); if ((MoonData) and (FixedTimeAxisSelection=0)) then FormLogCont.MoonSeries.AddXY(Now, MoonElevation); //Limit chart size when running for a long time if FormLogCont.MPSASSeries.Count > PlotCount then begin FormLogCont.MPSASSeries.ListSource.Delete(0); end; if FormLogCont.TempSeries.Count > PlotCount then begin FormLogCont.TempSeries.ListSource.Delete(0); end; end; end; //End of LE LU device end; //End of checking models //Check if Rotational stage angle infromation must be added to record if (rotstage) then ComposeString:= ComposeString + ';' + FormLogCont.RSCurrentPositionAngleDisplay.Text; { Add GPS values if enabled } //'Latitude, Longitude, Elevation, Speed, Satellites' //**** grab actual variables, not screen text. if FormLogCont.GPSLogIndicatorX.Visible then //ComposeString:=ComposeString + ';'+ // FormLogCont.GPSLatitudeLabel.Text + ';' + // FormLogCont.GPSLongitudeLabel.Text + ';' + // FormLogCont.GPSElevationlabel.Text + ';' + // FormLogCont.GPSSpeedLabel.Text + ';' + // FormLogCont.GPSSatellites.Text; ComposeString:=ComposeString + ';'+ Format('%3.4f',[GPSLatitude]) + ';' + Format('%3.4f',[GPSLongitude]) + ';' + Format('%d',[GPSAltitude]) + ';' + //Elevation Format('%.2f',[GPSSpeed]) + ';' + Format('%d',[GPSVisibleSatellites]); { Add Humidity value if enabled } if A1Enabled then ComposeString:= ComposeString + Format(';%2.1f',[Humidity]); {Add serial number if multiple devices are being logged} if (high(SelectedDevicesArray))>0 then begin ComposeString:= ComposeString + Format(';%s',[SelectedUnitSerialNumber]); end; { Add possible annotation to end of record. } if (Length(AnnotateText) > 0) then begin ComposeString:= ComposeString + ';' + AnnotateText; if (not FormLogCont.PersistentCheckBox.Checked) then begin AnnotateText:= ''; FormLogCont.PendingHotKey.Text:= ''; end; end; //End of annotation. end //end of "special" text check when no data was available (missed record). else begin ComposeString:= FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"', LazSysUtils.NowUTC()) //Date UTC + FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"', Now()) //Date Local + Special; end; UpdateAstroTimes(); if SelectedModel = model_V then begin //AltitudeSeries.AddXY(Now,Altitude); //AzimuthSeries.AddXY(Now,Heading); //Chart2PolarSeries1.AddXY(degtorad(Heading),1.0-Altitude/90.0); //Chart2LineSeries1.AddXY(cos(degtorad(Heading+90))*(1.0-abs(Altitude/90.0)),sin(degtorad(Heading+90))*(1.0-abs(Altitude/90.0))); FormLogCont.Chart2LineSeries1.Addxy( cos(degtorad(Heading + 90)) * (1.0 - abs(Altitude / 90.0)), sin(degtorad(Heading + 90)) * (1.0 - abs(Altitude / 90.0)), 'x', MPSASToRGB(Darkness)); //writeln(format('%6.2f %6.2f',[Heading, degtorad(Heading)])); end; { Analyze threshold to check if alarm should be sounded. Update at every reading. A snooze alarm feature is implemented when reading frequency is very low (i.e. every x minutes). } AlarmRequest:=((Darkness >= AlarmThreshold) and (AlarmSoundEnable)); //Analyze threshold before writing record if Darkness >= LCThresholdValue then begin FormLogCont.ThresholdMet.Brush.Color:= clLime; try AssignFile(LCRecFile, LogFileName); Reset(LCRecFile); Append(LCRecFile); { Open file for appending. } SetTextLineEnding(LCRecFile, #13#10); Writeln(LCRecFile, ComposeString); { Write line to file. } Flush(LCRecFile); CloseFile(LCRecFile); except StatusMessage('ERROR! IORESULT: ' + IntToStr(IOResult) + ' during WriteRecord'); end; if TransferCSV then begin try AssignFile(DLRecFile, CSVLogFileName); Reset(DLRecFile); Append(DLRecFile); { Open CSV file for appending. } SetTextLineEnding(DLRecFile, #13#10); {Convert .dat text to .csv and write to .csv file} Writeln(DLRecFile, AnsiReplaceStr(ComposeString,';',',')); Flush(DLRecFile); CloseFile(DLRecFile); except StatusMessage('ERROR! IORESULT: ' + IntToStr(IOResult) + ' during WriteCSVRecord to:'+CSVLogFileName); end; end; if TrRdgEnabled then begin //Just send Rx value which contains serial number. TransferReading(SendGet('Rx')); end; //Put the compose string on the screen FormLogCont.RecordsViewSynEdit.Append(ComposeString); //Ensure that latest append is displayed at bottom of window. FormLogCont.RecordsViewSynEdit.CaretY:=FormLogCont.RecordsViewSynEdit.Lines.Count; Inc(LCLoggedCount); FormLogCont.RecordsLogged.Caption:= IntToStr(LCLoggedCount); //Check if optional record limit has been reached if ((FormLogCont.RecordLimitSpin.Value>0) and (LCLoggedCount>=FormLogCont.RecordLimitSpin.Value)) then StopRecording:=True; end else begin FormLogCont.ThresholdMet.Brush.Color:= clRed; end; //Perform rotational stage operation if enabled if (rotstage) then begin //Sweep from one side to the other by x steps RSser.SendString('S' + IntToStr(FormLogCont.RSPositionStepSpinEdit.Value) + chr(13) + chr(10)); //update step display Inc(RSCurrentStepNumber); FormLogCont.RSCurrentPositionStepDisplay.Text:= IntToStr(RSCurrentStepNumber); ParseRotstage(Trim(RSser.Recvstring(20000))); //update status display of rotational stage hardware if (StrToIntDef(FormLogCont.RSCurrentPositionStepDisplay.Text, 0) >= StrToIntDef(FormLogCont.RSMaxSteps.Text, 0)) then StopRecording:= True; Application.ProcessMessages; end; //end of rotstage end; {======================================================} begin Recording:= True; pieces:= TStringList.Create; pieces.Delimiter:= ','; pieces.StrictDelimiter:= False; //Parse spaces also if LogResult='' then begin //There is no prepared result, get it from the meter(s) { Cycle through the list of avalabile LogContinuous devices} DeviceCounter:=NumberOfMultipleDevices; repeat if DeviceCounter>0 then begin //set the selected device to one on the list Form1.FoundDevices.Selected[SelectedDevicesArray[DeviceCounter-1].Index]:=True; Form1.SelectDevice; StatusMessage('SelectedUnitSerialNumber: '+ SelectedUnitSerialNumber); Dec(DeviceCounter); {Go to the next device after this device has been accessed below} end; {Try a first time} StatusMessage('Getting log record.'); Result:= GetReading; pieces.DelimitedText:= Result; if CheckRecordCount then WriteRecord else begin {Try a second time} Result:= GetReading; pieces.DelimitedText:= Result; if CheckRecordCount then WriteRecord else begin {Try a third time} Result:= GetReading; pieces.DelimitedText:= Result; if CheckRecordCount then WriteRecord else begin {Indicate that tries failed} Inc(RecordsMissedCount); WriteRecord(';;;'); {Empty fields} FormLogCont.RecordsMissed.Color:= clRed; FormLogCont.RecordsMissed.Font.Color:= clWhite; FormLogCont.RecordsMissed.Caption:= IntToStr(RecordsMissedCount); end; end; end; until DeviceCounter <1; end else begin {was passed a result to log} Result:=LogResult; pieces.DelimitedText:= Result; if CheckRecordCount then WriteRecord else StatusMessage('Failed CheckRecordCount, got:'+IntToStr(pieces.Count)); end; {Perform FTP transfer (if required) regardless of threshold setting so that server does not think system is dead. This code to send the file must be after the file is closed by regular logging because Windows complains that the file cannot be shared (EFOpenError) if the file is not closed.} if LCTFrequency=lctfAfterEveryRecord then begin try FormLogCont.FTPSend(); except StatusMessage('FTP send error during LogOneReading'); ShowMessage('FTP send error during LogOneReading' + sLineBreak + 'Check Log Continuous Transfer tab, and ensure all entries are filled properly, or set frequency to Never.'); StopRecording:=True; end; end; Recording:= False; if Assigned(pieces) then FreeAndNil(pieces); end; { TFormLogCont } procedure TFormLogCont.OpenFileButtonClick(Sender: TObject); begin OpenLogDialog.InitialDir:= appsettings.LogsDirectory; if OpenLogDialog.Execute then begin Form2.Memo1.Lines.LoadFromFile(OpenLogDialog.Filename); Form2.Show; end; end; procedure TFormLogCont.AnnotateButtonClick(Sender: TObject); begin //Initiate a recording with annotated text while already in record-mode. AnnotateText:= FormLogCont.AnnotateEdit.Text; PendingHotKey.Text:= AnnotateText; if (not SynchronizedCheckBox.Checked) then LogOneReading; end; procedure TFormLogCont.Text24to12hr(Hour24: Word; Receiver: TLabel); var suffix:String; hour:word; begin if Hour24>11 then suffix:= 'PM' else suffix:= 'AM'; if Hour24>12 then hour:=Hour24-12 else if Hour24=0 then hour:=12 else hour:=Hour24; Receiver.Caption:=Format('%d%s',[hour, suffix]); end; procedure TFormLogCont.FixedFromSpinEditChange(Sender: TObject); begin if not FormCreating then begin FromHour:=FixedFromSpinEdit.Value; vConfigurations.WriteString('LogContinuousSettings','FromHour',IntToStr(FromHour)); Text24to12hr(FromHour,From12hrLabel ); SetFixedTime(); end; end; procedure TFormLogCont.FixedToSpinEditChange(Sender: TObject); begin if not FormCreating then begin ToHour:=FixedToSpinEdit.Value; vConfigurations.WriteString('LogContinuousSettings','ToHour',IntToStr(ToHour)); Text24to12hr(ToHour,To12hrLabel ); SetFixedTime(); end; end; procedure TFormLogCont.FixedTimeRadiosClick(Sender: TObject); begin FixedTimeAxisSelection:=FixedTimeRadios.ItemIndex; case FixedTimeAxisSelection of 0: begin FixedTimePageControl.PageIndex:=0; MoonSeries.Clear; end; 1: FixedTimePageControl.PageIndex:=1; 2..5: FixedTimePageControl.PageIndex:=2; end; vConfigurations.WriteString('LogContinuousSettings','FixedTimeRangeSelection',IntToStr(FixedTimeAxisSelection)); SetFixedTime(); end; procedure TFormLogCont.FormResize(Sender: TObject); var FormHeight, FormWidth:Integer; begin if not FormCreating then begin FormHeight:=FormLogCont.Height; vConfigurations.WriteString('LogContinuousSettings','Height',IntToStr(FormHeight)); FormWidth:=FormLogCont.Width; vConfigurations.WriteString('LogContinuousSettings','Width',IntToStr(FormWidth)); end; end; procedure TFormLogCont.FixedAutoReadingsToggleChange(Sender: TObject); begin FixedReadingRange:=FixedAutoReadingsToggle.Checked; vConfigurations.WriteBool('LogContinuousSettings','FixedReadingRange',FixedReadingRange); SetFixedReadings(); end; procedure TFormLogCont.FromReadingSpinEditChange(Sender: TObject); begin if not FormCreating then begin FromReading:=FromReadingSpinEdit.Value; vConfigurations.WriteString('LogContinuousSettings','FromReading',IntToStr(FromReading)); SetFixedReadings(); end; end; procedure TFormLogCont.ToReadingSpinEditChange(Sender: TObject); begin if not FormCreating then begin ToReading:=ToReadingSpinEdit.Value; vConfigurations.WriteString('LogContinuousSettings','ToReading',inttostr(ToReading)); SetFixedReadings(); end; end; procedure TFormLogCont.SetFixedTime(); var LoopTime:TDateTime; begin //StatusMessage('SetFixedTime'); Application.ProcessMessages; if SelectedTZLocation<>'' then begin ThisMomentUTC:= NowUTC(); ThisMoment:= Now(); { Determine plotting X axes get morning and evening twilight times for current date:} case FixedTimeAxisSelection of 1:begin //Fixed hours TwilightEveningTimeStamp:=RecodeHour(ThisMomentUTC,FromHour); TwilightMorningTimeStamp:=RecodeHour(ThisMomentUTC,ToHour); end; 2:begin //Sunset TwilightMorningTimeStamp:=ptz.GMTToLocalTime(Sun_Rise(ThisMomentUTC,MyLatitude,-1.0 * MyLongitude),SelectedTZLocation, subfix); TwilightEveningTimeStamp:=ptz.GMTToLocalTime(Sun_Set(ThisMomentUTC,MyLatitude,-1.0 * MyLongitude),SelectedTZLocation, subfix); end; 3:begin //Civil TwilightMorningTimeStamp:=ptz.GMTToLocalTime(Morning_Twilight_Civil(ThisMomentUTC,MyLatitude,-1.0 * MyLongitude),SelectedTZLocation, subfix); TwilightEveningTimeStamp:=ptz.GMTToLocalTime(Evening_Twilight_Civil(ThisMomentUTC,MyLatitude,-1.0 * MyLongitude),SelectedTZLocation, subfix); end; 4:begin //Nautical TwilightMorningTimeStamp:=ptz.GMTToLocalTime(Morning_Twilight_Nautical(ThisMomentUTC,MyLatitude,-1.0 * MyLongitude),SelectedTZLocation, subfix); TwilightEveningTimeStamp:=ptz.GMTToLocalTime(Evening_Twilight_Nautical(ThisMomentUTC,MyLatitude,-1.0 * MyLongitude),SelectedTZLocation, subfix); end; 5:begin //Astronomical TwilightMorningTimeStamp:=ptz.GMTToLocalTime(Morning_Twilight_Astronomical(ThisMomentUTC,MyLatitude,-1.0 * MyLongitude),SelectedTZLocation, subfix); TwilightEveningTimeStamp:=ptz.GMTToLocalTime(Evening_Twilight_Astronomical(ThisMomentUTC,MyLatitude,-1.0 * MyLongitude),SelectedTZLocation, subfix); end; end; {Fix up timestamps to be for today as Astronomical evening might be for yesterday due to UTC calcs.} TwilightMorningTimeStamp:=RecodeDate(TwilightMorningTimeStamp, YearOf(ThisMoment), MonthOf(ThisMoment), DayOf(ThisMoment)); TwilightEveningTimeStamp:=RecodeDate(TwilightEveningTimeStamp, YearOf(ThisMoment), MonthOf(ThisMoment), DayOf(ThisMoment)); {Show current night viewing and only change when a new night viewing is available: | N | N | N | N | N | N | N | N | N N=Now | | | | | | | | | E<----->M E<----->M E<----->M E=Evening to M=Morning plot --->|<--day---->|<--day---->|<--day } if ThisMoment>TwilightEveningTimeStamp then begin StartPlotTimeStamp:=TwilightEveningTimeStamp; //This evening EndPlotTimeStamp:=IncDay(TwilightMorningTimeStamp) //Tomorrow morning end else begin StartPlotTimeStamp:=IncDay(TwilightEveningTimeStamp,-1); //Yesterday evening EndPlotTimeStamp:=TwilightMorningTimeStamp; //This morning end; FormLogCont.FixedTimeMemo.Text:= 'Evening range:' + sLineBreak+ FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz', StartPlotTimeStamp)+ sLineBreak+ FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz', EndPlotTimeStamp)+ sLineBreak //+'N='+FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz', ThisMoment)+ sLineBreak //+'E='+FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz', TwilightEveningTimeStamp)+ sLineBreak //+'M='+FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz', TwilightMorningTimeStamp) ; case FixedTimeAxisSelection of 0: begin FixedTimeMemo.Visible:=False; Chart1.AxisList[0].Range.UseMax:=False; Chart1.AxisList[0].Range.UseMin:=False; { Update the X axis title.} try if MPSASSeries.Count>0 then begin StartPlotTimeStamp:=MPSASSeries.GetXValue(0); EndPlotTimeStamp:=MPSASSeries.GetXValue(MPSASSeries.Count-1); if (DateOf(StartPlotTimeStamp)=DateOf(EndPlotTimeStamp)) then FormLogCont.Chart1.AxisList[0].Title.Caption:=FormatDateTime('yyyy-mm-dd',StartPlotTimeStamp) else FormLogCont.Chart1.AxisList[0].Title.Caption:=FormatDateTime('yyyy-mm-dd',StartPlotTimeStamp) +' to ' + FormatDateTime('yyyy-mm-dd',EndPlotTimeStamp); end; except StatusMessage('Could not get Start/End plot times for x-axis title.'); end; end; 1..5: begin FixedTimeMemo.Visible:=True; Chart1.AxisList[0].Range.Min:= StartPlotTimeStamp; Chart1.AxisList[0].Range.Max:= EndPlotTimeStamp; Chart1.AxisList[0].Range.UseMax:=True; Chart1.AxisList[0].Range.UseMin:=True; { Update the X axis title.} FormLogCont.Chart1.AxisList[0].Title.Caption:=FormatDateTime('yyyy-mm-dd', StartPlotTimeStamp)+' to '+ FormatDateTime('yyyy-mm-dd', EndPlotTimeStamp); { Check for change in plot time and redraw Moon plot if fixed x axis.} if ((OldStartPlotTimeStamp<>StartPlotTimeStamp) or (OldEndPlotTimeStamp<>EndPlotTimeStamp))then begin if BestDarknessTime<StartPlotTimeStamp then begin BestDarknessTime:=StartPlotTimeStamp; BestDarkness:=0; end; if MoonData then begin MoonSeries.Clear; LoopTime:=StartPlotTimeStamp; while LoopTime<EndPlotTimeStamp do begin try Moon_Position_Horizontal( StrToDateTime(DateTimeToStr(ptz.LocalTimeToGMT(LoopTime, SelectedTZLocation))), -1.0*MyLongitude, MyLatitude, MoonElevation, MoonAzimuth); FormLogCont.MoonSeries.AddXY(LoopTime, MoonElevation); except //DST spring may have caused missing time, record in log file only and skip plotting. StatusMessage('ERROR! IORESULT: ' + IntToStr(IOResult) + ' during Moon plotting'); end; LoopTime:=IncMinute(LoopTime); end; end;//end checking moondata OldStartPlotTimeStamp:=StartPlotTimeStamp; OldEndPlotTimeStamp:=EndPlotTimeStamp; end;//End checking plot change end; end; end; Application.ProcessMessages; end; procedure TFormLogCont.SetFixedReadings(); begin Chart1.AxisList[1].Range.Min:=FromReading; Chart1.AxisList[1].Range.Max:=ToReading; if FixedReadingRange then begin FromReadingLabel.Visible:=True; FromReadingSpinEdit.Visible:=True; ToReadingLabel.Visible:=True; ToReadingSpinEdit.Visible:=True; FixedAutoReadingsToggle.Caption:='Fixed'; Chart1.AxisList[1].Range.UseMax:=True; Chart1.AxisList[1].Range.UseMin:=True; Chart1.AxisList[1].Minors[0].Intervals.Count:=2; Chart1.AxisList[1].Minors[0].Intervals.Options:=[aipUseCount, aipUseMinLength]; Chart1.AxisList[1].Minors[0].Visible:=True; end else begin FromReadingLabel.Visible:=False; FromReadingSpinEdit.Visible:=False; ToReadingLabel.Visible:=False; ToReadingSpinEdit.Visible:=False; FixedAutoReadingsToggle.Caption:='Auto'; Chart1.AxisList[1].Range.UseMax:=False; Chart1.AxisList[1].Range.UseMin:=False; Chart1.AxisList[1].Minors[0].Visible:=False; end; end; procedure TFormLogCont.NightCheckBoxChange(Sender: TObject); begin NightMode:=NightCheckBox.Checked; vConfigurations.WriteBool('LogContinuousSettings','NightMode',NightMode); ChartColor(); end; procedure TFormLogCont.PairSplitterTopResize(Sender: TObject); var SliderPosition:Integer; begin if not FormCreating then begin SliderPosition:=PairSplitter1.Position; vConfigurations.WriteString('LogContinuousSettings','Slider',IntToStr(SliderPosition)); end; end; procedure TFormLogCont.ChartColor(); const clNightBackground = $261d14; clNightLines = $473424; clNightText = $5d1fc5; clNightGridText =clWhite; clDayBackground = clWhite; clDayLines = clBlack; clDayText = clRed; clDayGridText=clDefault; begin if NightMode then begin Chart1.BackColor:=clNightBackground; Chart1.Color:=clNightBackground; Chart1.Frame.Color:=clNightLines; Chart1.BottomAxis.Grid.Color:=clNightLines; Chart1.BottomAxis.TickColor:=clNightLines; Chart1.BottomAxis.Marks.LabelFont.Color:=clNightGridText; Chart1.BottomAxis.Title.LabelFont.Color:=clNightGridText; Chart1.LeftAxis.Grid.Color:=clNightLines; Chart1.LeftAxis.TickColor:=clNightLines; Chart1.AxisList[3].Marks.LabelFont.Color:=clNightGridText; Chart1.AxisList[3].Title.LabelFont.Color:=clNightGridText; MoonSeries.LinePen.Color:=clNightGridText; Chart1.AxisList[1].Minors[0].Grid.Color:=clNightLines; end else begin //Daytime mode Chart1.BackColor:=clDayBackground; Chart1.Color:=clDayBackground; Chart1.Frame.Color:=clDayLines; Chart1.BottomAxis.Grid.Color:=clDayLines; Chart1.BottomAxis.TickColor:=clDayLines; Chart1.BottomAxis.Marks.LabelFont.Color:=clDayGridText; Chart1.BottomAxis.Title.LabelFont.Color:=clDayGridText; Chart1.LeftAxis.Grid.Color:=clDayLines; Chart1.LeftAxis.TickColor:=clDayLines; Chart1.AxisList[3].Marks.LabelFont.Color:=clDayGridText; Chart1.AxisList[3].Title.LabelFont.Color:=clDayGridText; MoonSeries.LinePen.Color:=clDayLines; Chart1.AxisList[1].Minors[0].Grid.Color:=clDayLines; end; MPSASSeries.SeriesColor:=clRed; TempSeries.SeriesColor:=TemperatureColor; Chart1.AxisList[2].TickColor:=TemperatureColor; Chart1.AxisList[2].Title.LabelFont.Color:=TemperatureColor; Chart1.AxisList[2].Marks.LabelFont.Color:=TemperatureColor; end; procedure TFormLogCont.TestTransferClick(Sender: TObject); begin FTPSend(); end; procedure TFormLogCont.GoToButtonScriptHelpClick(Sender: TObject); begin MessageDlg( 'GoTo script file location', 'GoTo script files are located here:'+sLineBreak+DataDirectory+'*.goto', mtInformation, [mbOK],''); end; procedure TFormLogCont.GoToZenAziButtonClick(Sender: TObject); begin GoToDesiredZenith:=ZenFloatSpinEdit.Value; GoToDesiredAzimuth:=AziFloatSpinEdit.Value; GoToCommand(gtSetZenithAzimuth); end; procedure TFormLogCont.FreshAlertTestClick(Sender: TObject); begin FreshSound.StopSound; FreshSound.Execute; end; procedure TFormLogCont.GetZenAziButtonClick(Sender: TObject); begin GoToCommand(gtGetZenithAzimuth); end; procedure TFormLogCont.GoToBaudSelectChange(Sender: TObject); begin { Save the GoTo baud selection. } vConfigurations.WriteString('GoToSettings','GoTo Baud',GoToBaudSelect.Text); end; procedure ChangeGotoScript(ScriptName: String); begin SelectedGoToCommandFile:=ScriptName; {store new selection} vConfigurations.WriteString('GoTo','CommandFile',SelectedGoToCommandFile); GoToReadScript(); end; procedure TFormLogCont.GoToCommandFileComboBoxChange(Sender: TObject); begin {Get selected GoTo script name. } ChangeGotoScript(GoToCommandFileComboBox.Text); end; procedure TFormLogCont.GoToCommBusyTimer(Sender: TObject); begin Inc(GoToCommBusyTime); if GoToCommBusyTime>=GoToCommBusyLimit then begin GoToDisConnect(); end; end; procedure TFormLogCont.GoToMachineSelectChange(Sender: TObject); begin {Get the GoTo machine selection. } GotoMachineSelection:=GoToMachineSelect.Text; { Save the GoTo machine selection. } vConfigurations.WriteString('GoToSettings','GoTo Machine',GotoMachineSelection); end; procedure TFormLogCont.GoToPortSelectChange(Sender: TObject); begin { Save the GoTo port selection. } GoToPortSelection:=GoToPortSelect.Text; vConfigurations.WriteString('GoToSettings','GoTo Port',GoToPortSelection); end; procedure TFormLogCont.GPSEnableClick(Sender: TObject); begin GPSLogIndicatorX.Visible:=GPSEnable.Checked; GPSLogIndicator.Visible:=GPSLogIndicatorX.Visible; { Save the GPS port selection. } vConfigurations.WriteBool(SerialINIsection,'GPS Enabled',GPSEnable.Checked); if GPSEnable.Checked then begin GPSConnect(); GPSSNRClear(); end else GPSDisconnect(); GPSPortSelect.Enabled:=not GPSEnable.Checked; GPSBaudSelect.Enabled:=not GPSEnable.Checked; end; procedure TFormLogCont.alert2sChange(Sender: TObject); begin Alert2sEnable:=alert2s.Checked; vConfigurations.WriteBool('LogContinuousSettings', 'Alert2s', Alert2sEnable); end; procedure TFormLogCont.AlarmTestButtonClick(Sender: TObject); begin AlarmSound.StopSound; AlarmSound.Execute; end; procedure TFormLogCont.AlarmSoundEnableCheckChange(Sender: TObject); begin vConfigurations.WriteBool('LogContinuousSettings', 'AlarmSound', AlarmSoundEnableCheck.Checked); AlarmSoundEnable:=AlarmSoundEnableCheck.Checked; end; procedure TFormLogCont.AlarmThresholdFloatSpinEditChange(Sender: TObject); begin //Save value in registry vConfigurations.WriteString('LogContinuousSettings', 'AlarmThreshold', format('%f',[AlarmThresholdFloatSpinEdit.Value])); AlarmThreshold:=AlarmThresholdFloatSpinEdit.Value; end; procedure TFormLogCont.PreAlertTestButtonClick(Sender: TObject); begin PreAlertSound.StopSound; PreAlertSound.Execute; end; procedure TFormLogCont.checkMTAStartClick(Sender: TObject); begin //check if NowStart should be checked if checkMTAStart.Checked or checkMTNStart.Checked or checkMTCStart.Checked or checkSRStart.Checked or checkSSStart.Checked or checkETCStart.Checked or checkETNStart.Checked or checkETAStart.Checked then begin checkNowStart.Checked:= False; end else begin checkNowStart.Checked:= True; end; SaveStartStopSettings(); end; procedure TFormLogCont.checkMTAStopClick(Sender: TObject); begin //check if NeverStop should be checked if checkMTAStop.Checked or checkMTNStop.Checked or checkMTCStop.Checked or checkSRStop.Checked or checkSSStop.Checked or checkETCStop.Checked or checkETNStop.Checked or checkETAStop.Checked then begin checkNeverStop.Checked:= False; end else begin checkNeverStop.Checked:= True; end; SaveStartStopSettings(); end; procedure TFormLogCont.checkNeverStopClick(Sender: TObject); begin //Clear off other STOP checkboxes if checked if checkNeverStop.Checked then begin checkMTAStop.Checked:= False; checkMTNStop.Checked:= False; checkMTCStop.Checked:= False; checkSRStop.Checked:= False; checkSSStop.Checked:= False; checkETCStop.Checked:= False; checkETNStop.Checked:= False; checkETAStop.Checked:= False; end; SaveStartStopSettings(); //Save to ini file end; procedure TFormLogCont.FormCreate(Sender: TObject); var Info : TSearchRec; Count : Longint; s,st: string; //used in For..in..do loop runret: AnsiString; begin FormCreating:=True; FormLogCont.Caption:=FormLogCont.Caption+' ('+UDMversion+')'; {Restore height and width and slider} FormLogCont.Height:=StrToIntDef(vConfigurations.ReadString('LogContinuousSettings','Height','0'),0); FormLogCont.Width:=StrToIntDef(vConfigurations.ReadString('LogContinuousSettings','Width','0'),0); PairSplitter1.Position:=StrToIntDef(vConfigurations.ReadString('LogContinuousSettings','Slider','0'),0);; OldStartPlotTimeStamp:=Now(); OldEndPlotTimeStamp:=Now(); {$ifdef Linux} if RunCommand('which',['bash'],runret) then BashPath:=Trim(runret); if RunCommand('which',['expect'],runret) then ExpectPath:=Trim(runret); {$endif} {$ifdef Darwin} if RunCommand('which',['bash'],runret) then BashPath:=Trim(runret); if RunCommand('which',['expect'],runret) then ExpectPath:=Trim(runret); {$endif} //Get previous settings from configuration file LCTrigSecondsSpin.Value:= LimitInteger( StrToIntDef(vConfigurations.ReadString('LogContinuousSettings', 'Seconds', '1'), 1), 1, 255); LCTrigMinutesSpin.Value:= LimitInteger( StrToIntDef(vConfigurations.ReadString('LogContinuousSettings', 'Minutes', '1'), 1), 1, 255); LCThresholdValue:= StrToFloatDef(vConfigurations.ReadString('LogContinuousSettings', 'Threshold', '0'), 0); LCThreshold.Value:=LCThresholdValue; InvertMPSAS:=vConfigurations.ReadBool('LogContinuousSettings','InvertScale'); InvertScale.Checked:=InvertMPSAS; CheckInvert(); TemperaturePlotted:=vConfigurations.ReadBool('LogContinuousSettings','TemperaturePlotted',False); TemperatureCheckBox.Checked:=TemperaturePlotted; if TemperaturePlotted then begin TempSeries.LinePen.Style:=psSolid; Chart1.AxisList[2].Visible:=True; end else begin TempSeries.LinePen.Style:=psClear; Chart1.AxisList[2].Visible:=False; end; NightMode:=vConfigurations.ReadBool('LogContinuousSettings','NightMode',False); NightCheckBox.Checked:=NightMode; FixedTimeAxisSelection:=StrToIntDef(vConfigurations.ReadString('LogContinuousSettings','FixedTimeRangeSelection'),0); FixedTimeRadios.ItemIndex:=FixedTimeAxisSelection; FixedReadingRange:=vConfigurations.ReadBool('LogContinuousSettings','FixedReadingRange',False); FixedAutoReadingsToggle.Checked:=FixedReadingRange; FromHour:=StrToIntDef(vConfigurations.ReadString('LogContinuousSettings','FromHour'),0); FixedFromSpinEdit.Value:=FromHour; Text24to12hr(FromHour,From12hrLabel); ToHour:=StrToIntDef(vConfigurations.ReadString('LogContinuousSettings','ToHour'),0); FixedToSpinEdit.Value:=ToHour; Text24to12hr(ToHour,To12hrLabel); FromReading:=StrToIntDef(vConfigurations.ReadString('LogContinuousSettings','FromReading'),0); FromReadingSpinEdit.Value:=FromReading; ToReading:=StrToIntDef(vConfigurations.ReadString('LogContinuousSettings','ToReading'),0); ToReadingSpinEdit.Value:=ToReading; SetFixedReadings(); ChartColor(); RecordLimitSpin.Value:=LimitInteger( StrToIntDef(vConfigurations.ReadString('LogContinuousSettings', 'Record Limit', '0'), 0), RecordLimitSpin.MinValue, RecordLimitSpin.MaxValue); //Get previous FTP Settings from configuration file TransferTimeout.Text:= vConfigurations.ReadString('FTPSettings', 'Timeout'); TransferTimeout.Text:= IntToStr(StrToIntDef(TransferTimeout.Text,1000)); TransferAddress:=vConfigurations.ReadString('FTPSettings', 'FTP address'); TransferAddressEntry.Text:= TransferAddress; TransferUsername:= vConfigurations.ReadString('FTPSettings', 'FTP username'); TransferUsernameEntry.Text:= TransferUsername; TransferPassword:=vConfigurations.ReadString('FTPSettings', 'FTP password'); TransferPasswordEntry.Text:= TransferPassword; TransferRemoteDirectory:= vConfigurations.ReadString('FTPSettings', 'FTP remote directory'); TransferRemoteDirectoryEntry.Text:= TransferRemoteDirectory; TransferFrequencyRadioGroup.ItemIndex:= StrToIntDef(vConfigurations.ReadString('FTPSettings', 'FTP frequency index'), 0); TransferProtocolSelector.Items.Add('FTP'); TransferProtocolSelector.Items.Add('SCP'); {$IFNDEF WINDOWS}//For now, do not allow SFTP on Windows because bash does not exist there for printf to work. TransferProtocolSelector.Items.Add('SFTP'); {$ENDIF} TransferProtocolSelector.Text:= vConfigurations.ReadString('FTPSettings', 'FTP protocol selection'); TransferDAT:=vConfigurations.ReadBool('FTPSettings', 'TransferDAT',False); TransferDATCheck.Checked:=TransferDAT; TransferCSV:=vConfigurations.ReadBool('FTPSettings', 'TransferCSV',False); TransferCSVCheck.Checked:=TransferCSV; TransferPLOT:=vConfigurations.ReadBool('FTPSettings', 'TransferPLOT',False);TransferPLOTCheck.Checked:=TransferPLOT; //Get associated port number depending on selected protocol case TransferProtocolSelector.Text of 'FTP': TransferPort:=vConfigurations.ReadString('FTPSettings', 'FTP port',cFtpProtocol); 'SCP': TransferPort:= vConfigurations.ReadString('FTPSettings', 'SCP port',cSSHProtocol); 'SFTP': TransferPort:= vConfigurations.ReadString('FTPSettings', 'SFTP port',cSSHProtocol); end; TransferPortEntry.Text:= TransferPort; PWEnable:=vConfigurations.ReadBool('FTPSettings', 'PW enable', True); TransferPWenable.Checked:=PWEnable; TransferProtocolSelection(); {Get transfer reading settings} TrRdgEnabled:=vConfigurations.ReadBool('FTPSettings', 'TrRdgEnabled',False); TrRdgEnableCheckBox.Checked:=TrRdgEnabled; TrRdgPort:=vConfigurations.ReadString('FTPSettings','TrRdgPort','0'); TrRdgPortEdit.Text:=TrRdgPort; TrRdgAddress:=vConfigurations.ReadString('FTPSettings','TrRdgAddress','0.0.0.0'); TrRdgAddressEntry.text:=TrRdgAddress; {See commandlineoptions.txt for more details (overrides configuration settings)} //Get named GoTo script from command line if ParameterCommand('-LCGN') then ChangeGotoScript(ParameterValue.Strings[1]); //Check for Goto setting (Run then shut down) if ParameterCommand('-LCGRS') then begin GoToEnabled:=True; end else begin GoToEnabled:=vConfigurations.ReadBool('GoToSettings','GoTo Enabled',False); end; OptionsGroup.Checked[2]:=GoToEnabled; GoToGroup.Visible:=GoToEnabled; GoToLogIndicatorX.Visible:=GoToEnabled; //Check for threshold setting if ParameterCommand('-LCTH') then begin LCThresholdValue:= StrToFloatDef(ParameterValue.Strings[1], 0.0); LCThreshold.Value:= LCThresholdValue; end; //Check for mode setting if (ParameterCommand('-LCM') or ParameterCommand('-LCMS') or ParameterCommand('-LCMM')) then begin if ((ParameterCommand('-LCM')) and (ParameterValue.Count > 1)) then begin //Set mode from command line case StrToIntDef(ParameterValue.Strings[1], 0) of 1: LCTriggerMode:= 2;//Every 1 minute on the minute 5: LCTriggerMode:= 3;//Every 5 minutes on the 1/12th hour 10: LCTriggerMode:= 4;//Every 10 minutes on the 1/6th hour 15: LCTriggerMode:= 5;//Every 15 minutes on the 1/4 hour 30: LCTriggerMode:= 6;//Every 30 minutes on the 1/2 hour 60: LCTriggerMode:= 7;//Every hour on the hour end; end; //Set seconds value from command line if ((ParameterCommand('-LCMS')) and (ParameterValue.Count > 1)) then begin LCTrigSecondsSpin.Value:= StrToIntDef(ParameterValue.Strings[1], 0); LCTriggerMode:= 0;//Every x seconds end; if ((ParameterCommand('-LCMM')) and (ParameterValue.Count > 1)) then //Set minutes value from command line begin LCTrigMinutesSpin.Value:= StrToIntDef(ParameterValue.Strings[1], 0); LCTriggerMode:= 1; //Every x minutes end; end else begin //read mode from stored configuration file data LCTriggerMode:= StrToIntDef(vConfigurations.ReadString('LogContinuousSettings', 'Mode', '2'), 2); end; // Set trigger mode accordingly from above determinations case LCTriggerMode of 0: RadioButton1.Checked:= True; 1: RadioButton2.Checked:= True; 2: RadioButton3.Checked:= True; 3: RadioButton4.Checked:= True; 4: RadioButton5.Checked:= True; 5: RadioButton6.Checked:= True; 6: RadioButton7.Checked:= True; 7: RadioButton8.Checked:= True; end; { Restore pre-reading alert sound setting } alert2sEnable:=vConfigurations.ReadBool('LogContinuousSettings', 'Alert2s',False); alert2s.Checked:=alert2sEnable; { Restore reading alert sound setting } AlertEnable:= LimitInteger(StrToIntDef(vConfigurations.ReadString('LogContinuousSettings', 'Alert','0'),0),0,2); ReadingAlertGroup.ItemIndex:=AlertEnable; { Restore Alarm sound setting } AlarmSoundEnable:=vConfigurations.ReadBool('LogContinuousSettings', 'AlarmSound',False); AlarmSoundEnableCheck.Checked:=AlarmSoundEnable; { Sound player set up} PreAlertSound.PlayStyle:=psAsync; FreshSound.PlayStyle:=psAsync; AlarmSound.PlayStyle:=psAsync; PreAlertSound.PlayCommand:=''; //Preload empty so that routine can find it's own command FreshSound.PlayCommand:=''; AlarmSound.PlayCommand:=''; { Point to sound files} PreAlertSound.SoundFile:=appsettings.DataDirectory+'prereading.wav';; FreshSound.SoundFile:=appsettings.DataDirectory+'freshreading.wav'; AlarmSound.SoundFile:=appsettings.DataDirectory+'alarmsound.wav'; AlarmThreshold:= StrToFloatDef(vConfigurations.ReadString('LogContinuousSettings', 'AlarmThreshold', '0'), 0); AlarmThresholdFloatSpinEdit.Value:= AlarmThreshold; SetRepeatProgress(); SetSnoozeProgress(); //Initialize Rotational stage variables and display RSpieces:= TStringList.Create; RSpieces.Delimiter:= ','; RSpieces.StrictDelimiter:= True; //Do not parse spaces try if ((Paramcount > 0) and (ParamStr(1) = 'rotstage')) then begin rotstage:= True; end; finally if Assigned(RSpieces) then FreeAndNil(RSpieces); end; GPSSNRClear(); //Clear GPS Signal strength indicators //Initialize GPS if enabled if GPSEnable.Checked then GPSConnect(); //Restore MoonData Option setting MoonData:=vConfigurations.ReadBool('LogContinuousSettings', 'MoonData',False); OptionsGroup.Checked[0]:=MoonData; //Restore Freshness Option setting Freshness:=vConfigurations.ReadBool('LogContinuousSettings', 'Freshness',False); OptionsGroup.Checked[1]:=Freshness; //Restore Split Option setting SingleDatFile:=vConfigurations.ReadBool('LogContinuousSettings', 'SingleDatFile',False); SingleDatCheckBox.Checked:=SingleDatFile; SplitSpinEdit.Enabled:=not SingleDatFile; SplitSpinLabel.Enabled:=not SingleDatFile; SplitDatTime:=StrToInt(vConfigurations.ReadString('LogContinuousSettings', 'SplitDatTime','0')); if SplitDatTime>23 then SplitDatTime:=23; if SplitDatTime<0 then SplitDatTime:=0; SplitSpinEdit.Value:=SplitDatTime; //Recall the saved GoTo machine selection GotoMachineSelection:='';//Default to no selection st:=vConfigurations.ReadString('GoToSettings','GoTo Machine',''); for s in GoToMachineSelect.Items do begin if st = s then GotoMachineSelection:=s; end; GoToMachineSelect.Text:=GotoMachineSelection; GoToLogIndicatorX.Brush.Color:=clGray; // Restore RawFrequencyEnabled setting RawFrequencyEnabled:=vConfigurations.ReadBool('LogContinuousSettings', 'RawFrequency',False); OptionsGroup.Checked[3]:=RawFrequencyEnabled; //Populate GoTo port dropdown options {$IFDEF Linux} GoToPortSelect.Clear; Count:=0; If FindFirst ('/dev/ttyUSB*',faAnyFile ,Info)=0 then begin Repeat Inc(Count); With Info do begin GoToPortSelect.AddItem('/dev/'+Name,Nil); end; Until FindNext(info)<>0; end; If FindFirst ('/dev/ttyS*',faAnyFile ,Info)=0 then begin Repeat Inc(Count); With Info do begin GoToPortSelect.AddItem('/dev/'+Name,Nil); end; Until FindNext(info)<>0; end; FindClose(Info); GoToPortSelect.Sorted:=True; {$ENDIF Linux} {$IFDEF Darwin} GoToPortSelect.Clear; Count:=0; If FindFirst ('/dev/usbserial*',faAnyFile ,Info)=0 then begin Repeat Inc(Count); With Info do begin GoToPortSelect.AddItem('/dev/'+Name,Nil); end; Until FindNext(info)<>0; end; If FindFirst ('/dev/cu.*',faAnyFile ,Info)=0 then begin Repeat Inc(Count); With Info do begin GoToPortSelect.AddItem('/dev/'+Name,Nil); end; Until FindNext(info)<>0; end; If FindFirst ('/dev/tty.*',faAnyFile ,Info)=0 then begin Repeat Inc(Count); With Info do begin GoToPortSelect.AddItem('/dev/'+Name,Nil); end; Until FindNext(info)<>0; end; FindClose(Info); GoToPortSelect.Sorted:=True; {$ENDIF Darwin} //Recall the saved GoTo port selection GotoPortSelection:=vConfigurations.ReadString('GoToSettings','GoTo Port',''); GoToPortSelect.Text:=GotoPortSelection; //Populate GoTo command files dropdown selection UpdateGoToCommandFileList(); //Read in goto script if GoToEnabled then GoToReadScript(); FormCreating:=False; end; //Clear GPS Signal strength indicators procedure TFormLogCont.GPSSNRClear(); begin GPSSNR1.Position:=0; GPSSNR2.Position:=0; GPSSNR3.Position:=0; GPSSNR4.Position:=0; GPSSNR5.Position:=0; GPSSNR6.Position:=0; GPSSNR7.Position:=0; GPSSNR8.Position:=0; GPSSNR9.Position:=0; GPSSNR10.Position:=0; GPSSNR11.Position:=0; GPSSNR12.Position:=0; end; procedure TFormLogCont.GPSConnectButtonClick(Sender: TObject); begin GPSConnect(); end; procedure GPSConnect(); var GPSPort: String; begin GPSser.LinuxLock:=False; //lock file sometimes persists stuck if program closes before port GPSPort:=FormLogCont.GPSPortSelect.Text; if GPSPort=PortName then begin StatusMessage('WARNING: GPS port: ['+GPSPort+'] cannot be the same as SQM port: ['+PortName+']'); Application.MessageBox(PChar('WARNING: GPS port: ['+GPSPort+'] cannot be the same as SQM port: ['+PortName+']'), 'Warning communication port conflict!', MB_ICONEXCLAMATION) ; end else begin StatusMessage('Connecting to GPS on: '+GPSPort); GPSser.Connect(GPSPort); GPSser.config(GPSBaudrate, 8, 'N', SB1, False, False); end; end; // Send a command strings then return the result function GoToSendGet(command:string; Timeout:Integer=3000; GetAlso:boolean = True; HideStatus:boolean = False; RecvTerminator:string='') : string; var MesageString:String=''; begin {Start up Comm busy timer} GoToCommBusyTime:=0; //Reset count FormLogCont.GoToCommBusy.Enabled:=True; //Initialze output string to nothing. GotoSendGet:=''; {Request to open communications, even if already opened. } if not GoToCommOpened then GoToConnect(); { Check selected communication method. } GoToser.Purge;//debug (does not seem to work with some Macs ) while GoToser.CanRead(10) do //Try another purge method GoToser.RecvByte(10); GoToser.SendString(command); if (GetAlso) then begin {Get response} if Length(RecvTerminator)>0 then GoToSendGet:=GoToser.RecvTerminated(Timeout,RecvTerminator) else GoToSendGet:=chr(GoToser.RecvByte(Timeout)); end; If CompareStr(GoToser.LastErrorDesc,'OK')<>0 then MesageString:='Error: '+GoToser.LastErrorDesc+'. '; if not HideStatus then begin //Comment this out to allow all messages through to logging if GetAlso then MesageString:=MesageString+'Sent: '+command+' To: '+GoToPortSelection+' Received: '+GoToSendGet else MesageString:=MesageString+'Sent: '+command+' To: '+GoToPortSelection; StatusMessage(MesageString); FormLogCont.GoToResultMemo.Append(MesageString); end; {Reset comm. counter in case incoming response too a while. } GoToCommBusyTime:=0; //Reset count end; procedure GoToConnect(); var GoToPort: String; begin GoToser.LinuxLock:=False; //lock file sometimes persists stuck if program closes before port GoToPort:=FormLogCont.GoToPortSelect.Text; if GoToPort=PortName then begin StatusMessage('WARNING: GoTo port: ['+GoToPort+'] cannot be the same as SQM port: ['+PortName+']'); Application.MessageBox(PChar('WARNING: GoTo port: ['+GoToPort+'] cannot be the same as SQM port: ['+PortName+']'), 'Warning communication port conflict!', MB_ICONEXCLAMATION) ; end else begin StatusMessage('Connecting to GoTo on: '+GoToPort); GoToser.Connect(GoToPort); GoToser.config(GoToBaudrate, 8, 'N', 1, False, False); FormLogCont.GoToResultMemo.Append('Connect: '+IntToStr(GoToBaudrate) +'baud, '+ GoToser.LastErrorDesc); GoToCommBusyTime:=0; FormLogCont.GoToCommBusy.Enabled:=True; FormLogCont.GoToLogIndicatorX.Brush.Color:=clLime; GoToCommOpened:=True; end; end; function GotoZenAzi(Zenith,Azimuth:Double):Boolean; begin GoToDesiredZenith:=Zenith; GoToDesiredAzimuth:=Azimuth; GoToRecvTerminator:=''; GoToCommandStep:=0; GoToCommand(gtSetZenithAzimuth); GotoZenAzi:=True; //Command accepted, but will take some time to arrive at destination. end; procedure GoToCommand(Command:Integer; Parm1:String=''; Parm2:String=''); var //CommandString:String; Sign:String; GoToResult:String; GotoCommandString:String; pieces:TStringList; Zenith, Azimuth: Double; GoToSystemStatus:Integer=-1;//default undefined value {================================================} {Function to convert precise Synscan Hex to float} function GoToSynScanprecise(HexString:String):Float ; begin if length(HexString)=8 then begin GoToSynScanprecise:=float(Hex2Dec(LeftStr(HexString,6)))/16777216.0 *360.0; end else GoToSynScanprecise:=0; end; {================================================} {Function to convert float to precise Synscan Hex} function GoToSynScanPreciseHex(Angle:Float):String; begin GoToSynScanPreciseHex:=IntToHex(trunc((Angle*16777216.0)/360.0),6)+'00'; end; {================================================} begin pieces:= TStringList.Create; pieces.Delimiter:= ','; case GotoMachineSelection of 'iOptron8408': begin case Command of gtGetZenithAzimuth: Begin GoToResult:=GoToSendGet(':GAC#',1000,True,False,'#'); pieces.DelimitedText:=GoToResult; if pieces.Count>0 then begin if (Length(pieces.Strings[0])=18) then begin //Convert text string (0.01 arc-seconds) to degrees. Zenith:=Alt2Zen(StrToFloatDef(AnsiLeftStr(pieces.Strings[0],9),0.0)/360000.0); Azimuth:=StrToFloatDef(AnsiRightStr(pieces.Strings[0],9),0.0)/360000.0; StatusMessage(Format('Recvd: %s : Zenith=%f , Azimuth=%f',[GoToResult,Zenith,Azimuth])); //Set float spin edits FormLogCont.ZenFloatSpinEdit.Value:=Zenith; FormLogCont.AziFloatSpinEdit.Value:=Azimuth; end else StatusMessage('Need 18 chars, got '+IntToStr(length(pieces.Strings[0]))); end else StatusMessage('Goto :GAC# got nothing useful: '+GoToResult + 'Check GoTo Test Status window for details.'); end; gtSetZenithAzimuth: begin GoToRecvTerminator:=''; if GoToDesiredZenith <0 then Sign:='-' else Sign:='+'; try {Send the desired Zenith (Altitude)} GotoCommandString:=Format(':Sa%s%s#',[Sign, AddChar('0',FloatToStr(Zen2Alt(GoToDesiredZenith)*360000.0),8)]); GoToSendGet(GotoCommandString); StatusMessage(Format('Sending: %s : where Zenith=%f',[GotoCommandString,GoToDesiredZenith])); {Send the desired Azimuth} GotoCommandString:=Format(':Sz%s#',[AddChar('0',FloatToStr(GoToDesiredAzimuth*360000.0),9)]); GoToSendGet(GotoCommandString); StatusMessage(Format('Sending: %s : where Azimuth=%f',[GotoCommandString,GoToDesiredAzimuth])); {Slew the mount to position.} GoToSendGet(':MS#'); {wait for not slewing (2nd char = 2 = slewing), then stop :ST0#} StatusMessage('Waiting for mount to reach destination.'); while (GoToSystemStatus<>0) do begin GoToSendGet(':ST0#',3000,True,True,''); GoToResult:=GoToSendGet(':GAS#',3000,True,True,'#'); if Length(GoToResult)>2 then GoToSystemStatus:=StrToInt(AnsiMidStr(GoToResult,2,1)) else begin StatusMessage('Error in getting GoTo :GAS#, GoToResult: '+GoToResult); StopRecording:=True; exit; end; end; StatusMessage('Mount reached destination.'); //Idle for 1 second before getting an update on the position. Sleep(1000); GoToCommand(gtGetZenithAzimuth); GoToInPosition:=True; except StatusMessage('Error in gtSetZenithAzimuth.'); end; end; end; end; 'SynscanV4': begin case Command of gtGetZenithAzimuth: Begin GoToResult:=GoToSendGet('z'+#13+#10,1000,True,False,'#'); pieces.DelimitedText:=GoToResult; if pieces.Count=2 then begin {Convert text string (0.01 arc-seconds) to degrees.} Azimuth:=GoToSynScanprecise(pieces.Strings[0]); Zenith:= Alt2Zen(GoToSynScanprecise(pieces.Strings[1])); StatusMessage(Format('Recvd: %s : Zenith=%f , Azimuth=%f',[GoToResult,Zenith,Azimuth])); //Set float spin edits FormLogCont.ZenFloatSpinEdit.Value:=Zenith; FormLogCont.AziFloatSpinEdit.Value:=Azimuth; end //End checking validity of response else StatusMessage('Need 2 parts, got '+IntToStr(pieces.Count)); end; //end of gtGetZenithAzimuth command gtSetZenithAzimuth: begin GoToRecvTerminator:='#'; GotoCommandString:=Format('b%s,%s',[ GoToSynScanPreciseHex(GoToDesiredAzimuth), GoToSynScanPreciseHex(Zen2Alt(GoToDesiredZenith)) ]); StatusMessage(Format('Sending: %s : where Zenith=%f, and Azimuth=%f',[GotoCommandString,GoToDesiredZenith,GoToDesiredAzimuth])); GoToSendGet(GotoCommandString+#13+#10); {Wait for GOTO not in progress (1st char = 1 = GoTo in progress)} while (GoToSystemStatus<>0) do begin GoToResult:=GoToSendGet('L'+#13+#10,3000,True,True,'#'); if Length(GoToResult)>0 then GoToSystemStatus:=StrToInt(AnsiMidStr(GoToResult,1,1)) else begin StatusMessage('Error in getting GoTo "L", GoToResult: '+GoToResult+' , Stopped recording.'); StopRecording:=True; exit; end; end; if not StopRecording then begin //Idle for 1 second before getting an update on the position. Sleep(1000); GoToCommand(gtGetZenithAzimuth); GoToInPosition:=True; end; end; end; end; else exit; end; if Assigned(pieces) then FreeAndNil(pieces); end; procedure GPSDisconnect(); begin GPSser.CloseSocket; end; procedure GoToDisconnect(); begin FormLogCont.GoToCommBusy.Enabled:=False; //Prevent further triggers to the comm. busy timer. GoToCommBusyTime:=0; //Reset comm. busy count. GoToCommOpened:=False; //Indicate that the comm. port is closed. {Close all UDM communication ports. - Ports not already opened will have an ignored exception.} try GoToser.CloseSocket; except StatusMessage('GoToser.CloseSocket; exception'); end; GoToCommOpened:=False; FormLogCont.GoToLogIndicatorX.Brush.Color:=clGray; end; procedure TFormLogCont.GPSPortSelectChange(Sender: TObject); begin { Save the GPS port selection. } vConfigurations.WriteString(SerialINIsection,'GPS Port',GPSPortSelect.Text); end; procedure TFormLogCont.GPSPortSelectDropDown(Sender: TObject); Var Info : TSearchRec; Count : Longint; Begin {$IFDEF Linux} GPSPortSelect.Clear; Count:=0; If FindFirst ('/dev/ttyUSB*',faAnyFile ,Info)=0 then begin Repeat Inc(Count); With Info do begin //Writeln (Name:40,Size:15); GPSPortSelect.AddItem('/dev/'+Name,Nil); end; Until FindNext(info)<>0; end; If FindFirst ('/dev/ttyS*',faAnyFile ,Info)=0 then begin Repeat Inc(Count); With Info do begin //Writeln (Name:40,Size:15); GPSPortSelect.AddItem('/dev/'+Name,Nil); end; Until FindNext(info)<>0; end; If FindFirst ('/dev/ttyACM*',faAnyFile ,Info)=0 then begin Repeat Inc(Count); With Info do begin //Writeln (Name:40,Size:15); GPSPortSelect.AddItem('/dev/'+Name,Nil); end; Until FindNext(info)<>0; end; FindClose(Info); GPSPortSelect.Sorted:=True; {$ENDIF Linux} end; procedure TFormLogCont.GPSTimerTimer(Sender: TObject); var pieces:TStringList; DecPos: Integer; //Decimal place position GPSString: AnsiString; GPSformatsettings:TFormatSettings; LastStart:Integer;//Position of Last start $ character. const MinBG = 70; //Minimum background color begin if GPSEnable.Checked then begin pieces:= TStringList.Create; pieces.Delimiter:= ','; GPSformatsettings.DecimalSeparator:='.'; //Update health indicators. //Reduce brightness of all indicators by one notch, // will be increased further below if associated command comes in. if Green(GPSRMCStatusX.Brush.Color)-4>MinBG then GPSRMCStatusX.Brush.Color:=RGBToColor(MinBG,Green(GPSRMCStatusX.Brush.Color)-4,MinBG); if Green(GPSGGAStatusX.Brush.Color)-4>MinBG then GPSGGAStatusX.Brush.Color:=RGBToColor(MinBG,Green(GPSGGAStatusX.Brush.Color)-4,MinBG); if Green(GPSGSVStatusX.Brush.Color)-4>MinBG then GPSGSVStatusX.Brush.Color:=RGBToColor(MinBG,Green(GPSGSVStatusX.Brush.Color)-4,MinBG); if not GPSEnable.Checked then begin GPSRMCStatusX.Brush.Color:=RGBToColor(MinBG,MinBG,MinBG); GPSGGAStatusX.Brush.Color:=RGBToColor(MinBG,MinBG,MinBG); GPSGSVStatusX.Brush.Color:=RGBToColor(MinBG,MinBG,MinBG); GPSValidityLabel.Text:='Off'; GPSQualityLabel.Text:='Off'; GPSSatellites.Text:='0'; GPSSignalGroup.Visible:=False; end else GPSSignalGroup.Visible:=True; while (GPSser.CanRead(5) and GPSEnable.Checked) do begin { TODO : Checksum validation , read in first then parse later.} GPSString:=StringReplace(GPSser.Recvstring(5),'*',',',[rfReplaceAll]); try //Missing fields may cause a failure, so just ignore them LastStart:=LastDelimiter('$',GPSString); //LastStart:=0;//debug if ((Length(GPSString)>0) and( LastStart>0)) then begin //Remove anything preceding the $ character GPSString:= AnsiRightStr(GPSString,Length(GPSString)-LastStart+1); pieces.DelimitedText:=GPSString; //GPS Satellites in view if ((pieces.Strings[0]='$GPGSV') or (pieces.Strings[0]='$GNGSV'))then begin GPSGSVIncoming.Text:=GPSString; //Show incoming string for troubleshooting purposes. //1 = Total number of messages of this type in this cycle //2 = Message number //3 = Total number of SVs in view //4 = SV PRN number //5 = Elevation in degrees, 90 maximum //6 = Azimuth, degrees from true north, 000 to 359 //7 = SNR, 00-99 dB (null when not tracking) //8-11 = Information about second SV, same as field 4-7 //12-15= Information about third SV, same as field 4-7 //16-19= Information about fourth SV, same as field 4-7 GPSGSVStatusX.Brush.Color:=RGBToColor(MinBG,255,MinBG); case pieces.Strings[2] of '1': begin //Enable status bars per visible satellites GPSVisibleSatellites:=StrToIntDef(pieces.Strings[3],0); GPSSatellites.Text:=Format('%d',[GPSVisibleSatellites]); GPSSNR1.Visible:=GPSVisibleSatellites>0; GPSSAT1.Visible:=GPSVisibleSatellites>0; GPSSNR2.Visible:=GPSVisibleSatellites>1; GPSSAT2.Visible:=GPSVisibleSatellites>1; GPSSNR3.Visible:=GPSVisibleSatellites>2; GPSSAT3.Visible:=GPSVisibleSatellites>2; GPSSNR4.Visible:=GPSVisibleSatellites>3; GPSSAT4.Visible:=GPSVisibleSatellites>3; GPSSNR5.Visible:=GPSVisibleSatellites>4; GPSSAT5.Visible:=GPSVisibleSatellites>4; GPSSNR6.Visible:=GPSVisibleSatellites>5; GPSSAT6.Visible:=GPSVisibleSatellites>5; GPSSNR7.Visible:=GPSVisibleSatellites>6; GPSSAT7.Visible:=GPSVisibleSatellites>6; GPSSNR8.Visible:=GPSVisibleSatellites>7; GPSSAT8.Visible:=GPSVisibleSatellites>7; GPSSNR9.Visible:=GPSVisibleSatellites>8; GPSSAT9.Visible:=GPSVisibleSatellites>8; GPSSNR10.Visible:=GPSVisibleSatellites>9; GPSSAT10.Visible:=GPSVisibleSatellites>9; GPSSNR11.Visible:=GPSVisibleSatellites>10; GPSSAT11.Visible:=GPSVisibleSatellites>10; GPSSNR12.Visible:=GPSVisibleSatellites>11; GPSSAT12.Visible:=GPSVisibleSatellites>11; //Parse satellite data GPSSNR1.Position:=StrToIntDef(pieces.Strings[7],0); GPSSNR2.Position:=StrToIntDef(pieces.Strings[11],0); GPSSNR3.Position:=StrToIntDef(pieces.Strings[15],0); GPSSNR4.Position:=StrToIntDef(pieces.Strings[19],0); GPSSAT1.Caption:=pieces.Strings[4]; GPSSAT2.Caption:=pieces.Strings[8]; GPSSAT3.Caption:=pieces.Strings[12]; GPSSAT4.Caption:=pieces.Strings[16]; end; '2': begin //Parse satellite data GPSSNR5.Position:=StrToIntDef(pieces.Strings[7],0); GPSSNR6.Position:=StrToIntDef(pieces.Strings[11],0); GPSSNR7.Position:=StrToIntDef(pieces.Strings[15],0); GPSSNR8.Position:=StrToIntDef(pieces.Strings[19],0); GPSSAT5.Caption:=pieces.Strings[4]; GPSSAT6.Caption:=pieces.Strings[8]; GPSSAT7.Caption:=pieces.Strings[12]; GPSSAT8.Caption:=pieces.Strings[16]; end; '3': begin //Parse satellite data GPSSNR9.Position:=StrToIntDef(pieces.Strings[7],0); GPSSAT9.Caption:=pieces.Strings[4]; if pieces.Count>10 then begin GPSSNR10.Position:=StrToIntDef(pieces.Strings[11],0); GPSSAT10.Caption:=pieces.Strings[8]; end; if pieces.Count>15 then begin GPSSNR11.Position:=StrToIntDef(pieces.Strings[15],0); GPSSAT11.Caption:=pieces.Strings[12]; end; if pieces.Count>19 then begin GPSSNR12.Position:=StrToIntDef(pieces.Strings[19],0); GPSSAT12.Caption:=pieces.Strings[16]; end; end; end; end; //Global Positioning System Fix Data if (pieces.Count=16) then begin if ((pieces.Strings[0]='$GPGGA') or (pieces.Strings[0]='$GNGGA'))then begin GPSGGAIncoming.Text:=GPSString; //Show incoming string for troubleshooting purposes. //1 = UTC of Position //2 = Latitude //3 = N or S //4 = Longitude //5 = E or W //6 = GPS quality indicator (0=invalid; 1=GPS fix; 2=Diff. GPS fix) //7 = Number of satellites in use [not those in view] //8 = Horizontal dilution of position //9 = Antenna altitude above/below mean sea level (geoid) //10 = Meters (Antenna height unit) //11 = Geoidal separation (Diff. between WGS-84 earth ellipsoid and // mean sea level. -=geoid is below WGS-84 ellipsoid) //12 = Meters (Units of geoidal separation) //13 = Age in seconds since last update from diff. reference station //14 = Diff. reference station ID# //15 = Checksum GPSGGAStatusX.Brush.Color:=RGBToColor(MinBG,255,MinBG); GPSAltitude:=round(StrToFloatDef(pieces.Strings[9],0,GPSformatsettings)); GPSElevationlabel.Text:=Format('%d',[GPSAltitude]); case pieces.Strings[6] of '0': GPSQualityLabel.Text:='Invalid'; '1': GPSQualityLabel.Text:='GPS fix'; '2': GPSQualityLabel.Text:='Diff. GPS fix'; else GPSQualityLabel.Text:='Unknown'; end; end; end; //Recommended minimum specific GPS/Transit data try if ((AnsiStartsStr('$GPRMC', pieces.Strings[0])) or (AnsiStartsStr('$GNRMC', pieces.Strings[0])))then begin GPSRMCIncoming.Text:=GPSString; //Show incoming string for troubleshooting purposes. //1 220516 Time Stamp //2 A validity - A-ok, V-invalid //3 5133.82 current Latitude //4 N North/South //5 00042.24 current Longitude //6 W East/West //7 173.8 Speed in knots //8 231.8 True course //9 130694 Date Stamp //10 004.2 Magnetic variation degrees (Easterly var. subtracts from true course) //11 W East/West //12 *70 checksum GPSRMCStatusX.Brush.Color:=RGBToColor(MinBG,255,MinBG); case pieces.Strings[2] of 'A': GPSValidityLabel.Text:='OK'; 'V': GPSValidityLabel.Text:='Warning'; else GPSValidityLabel.Text:='Unknown'; end; //Convert Latitude minutes to degrees if Length(pieces.Strings[3])>4 then begin DecPos:=AnsiPos('.',pieces.Strings[3]); GPSLatitude:= StrToFloatDef(AnsiLeftStr(pieces.Strings[3],DecPos-3),0) + StrToFloatDef(AnsiRightStr(pieces.Strings[3],Length(pieces.Strings[3])-DecPos+3),0,GPSformatsettings)/60.0; if pieces.Strings[4]='S' then GPSLatitude:=-1*GPSLatitude; GPSLatitudeLabel.Text:=Format('%3.4f',[GPSLatitude]); end else GPSLatitudeLabel.Text:=''; //Convert Longitude minutes to degrees if Length(pieces.Strings[5])>4 then begin DecPos:=AnsiPos('.',pieces.Strings[5]); GPSLongitude:= StrToFloatDef(AnsiLeftStr(pieces.Strings[5],DecPos-3),0) + StrToFloatDef(AnsiRightStr(pieces.Strings[5],Length(pieces.Strings[5])-DecPos+3),0,GPSformatsettings)/60.0; if pieces.Strings[6]='W' then GPSLongitude:=-1*GPSLongitude; GPSLongitudeLabel.Text:=Format('%3.4f',[GPSLongitude]); end else GPSLongitudeLabel.Text:=''; //Convert knots to m/s GPSSpeed:=StrToFloatDef(pieces.Strings[7],0,GPSformatsettings)*0.514444444444; GPSSpeedLabel.Text:=Format('%.2f',[GPSSpeed]); //Parse Date GPSDateStampLabel.Text:='20'+AnsiRightStr(pieces.Strings[9],2)+':'+ AnsiMidStr(pieces.Strings[9],3,2)+':' + AnsiLeftStr(pieces.Strings[9],2)+'T' + AnsiLeftStr(pieces.Strings[1],2)+':' + AnsiMidStr(pieces.Strings[1],3,2)+':' + AnsiMidStr(pieces.Strings[1],5,Length(pieces.Strings[1])-4); end; finally end; end; finally end; end; if Assigned(pieces) then FreeAndNil(pieces); end; //end checking for GPS enabled end; procedure TFormLogCont.CheckInvert(); begin if InvertMPSAS then MPSASAxisTransformsLinearAxisTransform1.Scale:=1 // Light at bottom (inverted) else MPSASAxisTransformsLinearAxisTransform1.Scale:=-1; //Dark at bottom (normal) end; procedure TFormLogCont.InvertScaleChange(Sender: TObject); begin InvertMPSAS:=InvertScale.Checked; vConfigurations.WriteBool('LogContinuousSettings','InvertScale',InvertMPSAS); CheckInvert(); SetFixedReadings(); end; procedure TFormLogCont.OptionsGroupItemClick(Sender: TObject; Index: integer); begin //Save Moon option logging setting case Index of 0: begin //Moon data MoonData:=OptionsGroup.Checked[0]; vConfigurations.WriteBool('LogContinuousSettings', 'MoonData', MoonData); end; 1: begin //Freshness Freshness:=OptionsGroup.Checked[1]; vConfigurations.WriteBool('LogContinuousSettings', 'Freshness', Freshness); end; 2: begin //GoTo accessory GoToEnabled:=OptionsGroup.Checked[2]; vConfigurations.WriteBool('GoToSettings','GoTo Enabled',GoToEnabled); GoToGroup.Visible:=GoToEnabled; GoToLogIndicatorX.Visible:=GoToEnabled; GoToReadScript(); end; 3: begin //Raw frequency RawFrequencyEnabled:=OptionsGroup.Checked[3]; vConfigurations.WriteBool('LogContinuousSettings', 'RawFrequency', RawFrequencyEnabled); end; end; end; procedure TFormLogCont.PauseButtonClick(Sender: TObject); begin if FineTimer.Enabled then begin FineTimer.Enabled:=False; PauseButton.Caption:='Resume'; StatusMessage('Logging paused by user.'); end else begin FineTimer.Enabled:=True; PauseButton.Caption:='Pause'; StatusMessage('Logging resumed by user.'); end; end; procedure TFormLogCont.ReadingAlertGroupClick(Sender: TObject); begin AlertEnable:=ReadingAlertGroup.ItemIndex; vConfigurations.WriteString('LogContinuousSettings', 'Alert', IntToStr(AlertEnable)); end; procedure TFormLogCont.RecordLimitSpinChange(Sender: TObject); begin vConfigurations.WriteString('LogContinuousSettings', 'Record Limit', IntToStr(RecordLimitSpin.Value)); end; procedure TFormLogCont.SingleDatCheckBoxClick(Sender: TObject); begin SingleDatFile:=SingleDatCheckBox.Checked; SplitSpinEdit.Enabled:=not SingleDatFile; SplitSpinLabel.Enabled:=not SingleDatFile; vConfigurations.WriteBool('LogContinuousSettings', 'SingleDatFile', SingleDatFile); end; procedure TFormLogCont.SnoozeButtonClick(Sender: TObject); begin AlarmSnoozeCurrentTime:=0; //Reset Snooze timer StatusMessage('Snooze button pressed.'); end; procedure TFormLogCont.SplitSpinEditChange(Sender: TObject); begin if SplitSpinBusy then exit; //Block recurrent entry since this routine changes its own value. SplitSpinBusy:=True; If SplitSpinEdit.Value > 23 Then SplitDatTime:= 0 else if SplitSpinEdit.Value < 0 then SplitDatTime:= 23 else SplitDatTime:=SplitSpinEdit.Value; SplitSpinEdit.Value:=SplitDatTime; //Convert to 12hr time for label. if SplitDatTime =12 then SplitSpinLabel.Caption:='hr (12PM)' else if SplitDatTime >12 then SplitSpinLabel.Caption:='hr ('+IntToStr(SplitDatTime - 12)+'PM)' else if SplitDatTime >=1 then SplitSpinLabel.Caption:='hr ('+IntToStr(SplitDatTime)+'AM)' else SplitSpinLabel.Caption:='hr (12AM)'; //Save to configuration file vConfigurations.WriteString('LogContinuousSettings', 'SplitDatTime', IntToStr(SplitDatTime)); SplitSpinBusy:=False; end; procedure TFormLogCont.SynScanSheetShow(Sender: TObject); begin {update the actual position if enabled} GoToCommand(gtGetZenithAzimuth); end; procedure TFormLogCont.GPSBaudSelectChange(Sender: TObject); begin { Save the GPS baud selection. } GPSBaudrate:=StrToIntDef(GPSBaudSelect.Text,4800); vConfigurations.WriteString(SerialINIsection,'GPS Baud',IntToStr(GPSBaudrate)); end; procedure TFormLogCont.TemperatureCheckBoxChange(Sender: TObject); begin TemperaturePlotted:=TemperatureCheckBox.Checked; vConfigurations.WriteBool('LogContinuousSettings','TemperaturePlotted',TemperaturePlotted); Chart1.AxisList[2].Visible:=TemperaturePlotted; if TemperaturePlotted then TempSeries.LinePen.Style:=psSolid else TempSeries.LinePen.Style:=psClear; end; procedure TFormLogCont.TransferCSVCheckClick(Sender: TObject); begin if TransferCSVCheck.Checked then begin TransferDATCheck.Checked:=False; TransferDAT:=False; vConfigurations.WriteBool('FTPSettings', 'TransferDAT',False); end; TransferCSV:=TransferCSVCheck.Checked; vConfigurations.WriteBool('FTPSettings', 'TransferCSV',TransferCSV); end; procedure TFormLogCont.TransferDATCheckClick(Sender: TObject); begin if TransferDATCheck.Checked then begin TransferCSVCheck.Checked:=False; TransferCSV:=False; vConfigurations.WriteBool('FTPSettings', 'TransferCSV',False); end; TransferDAT:=TransferDATCheck.Checked; vConfigurations.WriteBool('FTPSettings', 'TransferDAT',TransferDAT); end; procedure TFormLogCont.TransferPLOTCheckClick(Sender: TObject); begin TransferPLOT:=TransferPLOTCheck.Checked; vConfigurations.WriteBool('FTPSettings', 'TransferPLOT',TransferPLOT); end; procedure TFormLogCont.TransferFrequencyRadioGroupClick(Sender: TObject); begin LCTFrequency:=TransferFrequencyRadioGroup.ItemIndex; vConfigurations.WriteString('FTPSettings', 'FTP frequency index',IntToStr(LCTFrequency)); vConfigurations.WriteString('FTPSettings', 'FTP frequency description',TransferFrequencyRadioGroup.Items[LCTFrequency]); end; procedure TFormLogCont.TransferPasswordEntryChange(Sender: TObject); begin TransferPassword:=TransferPasswordEntry.Text; vConfigurations.WriteString('FTPSettings', 'FTP password', TransferPassword); end; procedure TFormLogCont.TransferPasswordShowHideClick(Sender: TObject); begin case TransferPasswordShowHide.Caption of 'Show': begin TransferPasswordShowHide.Caption:= 'Hide'; TransferPasswordEntry.EchoMode:= emNormal; end; 'Hide': begin TransferPasswordShowHide.Caption:= 'Show'; TransferPasswordEntry.EchoMode:= emPassword; end; end; end; procedure TFormLogCont.TransferPortEntryChange(Sender: TObject); begin TransferPort:=TransferPortEntry.Text; case TransferProtocolSelector.Text of 'FTP': vConfigurations.WriteString('FTPSettings', 'FTP port', TransferPort); 'SCP': vConfigurations.WriteString('FTPSettings', 'SCP port', TransferPort); 'SFTP': vConfigurations.WriteString('FTPSettings', 'SFTP port', TransferPort); end; end; procedure TFormLogCont.TransferProtocolSelectorChange(Sender: TObject); begin vConfigurations.WriteString('FTPSettings', 'FTP protocol selection', TransferProtocolSelector.Text); //Get associated port number depending on selected protocol case TransferProtocolSelector.Text of 'FTP': TransferPort:= vConfigurations.ReadString('FTPSettings', 'FTP port',cFtpProtocol); 'SCP': TransferPort:= vConfigurations.ReadString('FTPSettings', 'SCP port',cSSHProtocol); 'SFTP': TransferPort:= vConfigurations.ReadString('FTPSettings', 'SFTP port',cSSHProtocol); end; TransferPortEntry.Text:= TransferPort; TransferProtocolSelection(); end; procedure TFormLogCont.TransferPWenableChange(Sender: TObject); begin PWEnable:=TransferPWenable.Checked; vConfigurations.WriteBool('FTPSettings', 'PW enable', PWEnable); TransferProtocolSelection(); end; procedure TFormLogCont.TransferProtocolSelection(); begin case TransferProtocolSelector.Text of 'FTP': begin TransferUsernameEntry.Visible:=True; TransferPasswordEntry.Visible:=True; TransferPasswordShowHide.Visible:=True; TransferPWenable.Visible:=False; end; 'SCP': begin TransferUsernameEntry.Visible:=True; TransferPasswordEntry.Visible:=False; TransferPasswordShowHide.Visible:=False; TransferPWenable.Visible:=False; end; 'SFTP': begin TransferUsernameEntry.Visible:=True; TransferPasswordEntry.Visible:=PWEnable; TransferPasswordShowHide.Visible:=PWEnable; TransferPWenable.Visible:=True; end; end; end; procedure TFormLogCont.TransferRemoteDirectoryEntryChange(Sender: TObject); begin TransferRemoteDirectory:=TransferRemoteDirectoryEntry.Text; vConfigurations.WriteString('FTPSettings', 'FTP remote directory', TransferRemoteDirectory); end; procedure TFormLogCont.TransferTimeoutChange(Sender: TObject); begin vConfigurations.WriteString('FTPSettings', 'Timeout', TransferTimeout.Text); end; procedure TFormLogCont.TransferUsernameEntryChange(Sender: TObject); begin TransferUsername:=TransferUsernameEntry.Text; vConfigurations.WriteString('FTPSettings', 'FTP username', TransferUsername); end; procedure TFormLogCont.GDMF0ButtonClick(Sender: TObject); begin SendGet('f0x'); //clear feedback coil current end; procedure TFormLogCont.GDMF1ButtonClick(Sender: TObject); begin SendGet('f1x'); //clear feedback coil current end; procedure TFormLogCont.TransferAddressEntryChange(Sender: TObject); begin TransferAddress:= TransferAddressEntry.Text; vConfigurations.WriteString('FTPSettings', 'FTP address', TransferAddress); end; procedure TFormLogCont.LCThresholdChange(Sender: TObject); begin //Save value in registry LCThresholdValue:=LCThreshold.Value; vConfigurations.WriteString('LogContinuousSettings', 'Threshold', FloatToStr(LCThresholdValue)); end; procedure TFormLogCont.LCTrigMinutesSpinChange(Sender: TObject); begin LCTrigMinutes:=LimitInteger(LCTrigMinutesSpin.Value,1,255); Application.ProcessMessages; vConfigurations.WriteString('LogContinuousSettings', 'Minutes', IntToStr(LCTrigMinutes)); end; procedure TFormLogCont.LCTrigSecondsSpinChange(Sender: TObject); begin LCTrigSeconds:=LCTrigSecondsSpin.Value; Application.ProcessMessages; vConfigurations.WriteString('LogContinuousSettings', 'Seconds', IntToStr(LCTrigSeconds)); end; procedure TFormLogCont.checkNowStartClick(Sender: TObject); begin //Clear off other START checkboxes if checked if checkNowStart.Checked then begin checkMTAStart.Checked:= False; checkMTNStart.Checked:= False; checkMTCStart.Checked:= False; checkSRStart.Checked:= False; checkSSStart.Checked:= False; checkETCStart.Checked:= False; checkETNStart.Checked:= False; checkETAStart.Checked:= False; end; SaveStartStopSettings(); //Save to ini file end; procedure TFormLogCont.CloseButtonClick(Sender: TObject); begin Close; end; procedure TFormLogCont.EditHotkeysCheckBoxChange(Sender: TObject); begin if EditHotkeysCheckBox.Checked then begin HotkeyStringGrid.Enabled:= True; HotkeyStringGrid.Font.Color:= clDefault; end else begin HotkeyStringGrid.Enabled:= False; HotkeyStringGrid.Font.Color:= clInactiveCaption; end; end; procedure TFormLogCont.FormClose(Sender: TObject; var CloseAction: TCloseAction); begin if not CloseButton.Enabled then StopRecording:= True; CloseButton.Enabled:=False; {$IFNDEF WINDOWS} FreeAndNil(SoundPlayerSyncProcess); FreeAndNil(SoundPlayerAsyncProcess); {$ENDIF} {Allow main page to be shown after make-believe showmodal.} Unit1.Form1.Enabled:=True; end; procedure TFormLogCont.FormKeyUp(Sender: TObject; var Key: word; Shift: TShiftState); var i: integer; begin if RecordingMode and not (AnnotateEdit.Focused or EditHotkeysCheckBox.Checked) then begin //Search for key in hotkey list //writeln(char(key),' = ',Key); keyslist(Key); for i:= 1 to HotkeyStringGrid.RowCount - 1 do begin if (Key = HotKeyCodes[i]) then begin AnnotateText:= vConfigurations.ReadString('HotKeys', 'a' + IntToStr(i - 1), ''); PendingHotKey.Text:= AnnotateText; if (not SynchronizedCheckBox.Checked) then begin LogOneReading; end else PendingHotKey.Text:= AnnotateText; end; end; end; end; procedure TFormLogCont.FormShow(Sender: TObject); var i: integer; begin RecordingMode:= False; StopButton.Enabled:= False; PauseButton.Enabled:=False; PauseButton.Caption:='Pause'; StartButton.Enabled:= True; LogTimePreset:= 0; LogTimeCurrent:= 0; NextRecordIn.Caption:= ''; LCLoggedCount:= 0; RecordsLogged.Caption:= IntToStr(LCLoggedCount); LCLogFileCount:= 0; FilesLogged.Caption:= IntToStr(LCLogFileCount); OldSecond:= SecondOf(Now()); RecordsMissedCount:= 0; RecordsMissed.Caption:= IntToStr(RecordsMissedCount); AnnotateButton.Enabled:= False; for i:= 1 to HotkeyStringGrid.RowCount - 1 do begin HotKeyCodes[i]:= StrToIntDef(vConfigurations.ReadString('HotKeys','h' + IntToStr(i - 1), ''), 0); HotkeyStringGrid.Cells[0, i]:=keyslist(StrToIntDef(vConfigurations.ReadString('HotKeys', 'h' +IntToStr(i - 1), ''), 0)); HotkeyStringGrid.Cells[1, i]:=vConfigurations.ReadString('HotKeys', 'a' + IntToStr(i - 1), ''); end; SynchronizedCheckBox.Checked:= vConfigurations.ReadBool('HotKeys', 'sync', False); PersistentCheckBox.Checked:= vConfigurations.ReadBool('HotKeys', 'pers', False); CheckSynchronized(); if (rotstage) then RSGroupBox.Visible:= True; if SelectedModel = model_GDM then GDMGroupBox.Visible:= True else GDMGroupBox.Visible:= False; {Check if instant recording is to be done.} if (ParameterCommand('-LCR') or ParameterCommand('-LCGRS')) then begin StartLogging:=True; end; if SelectedModel = model_V then begin AltAzPlotpanel.Visible:= True; end else begin AltAzPlotpanel.Visible:= False; end; LocationName:= DLHeaderForm.LocationNameEntry.Text; PositionEntry:=DLHeaderForm.PositionEntry.Text; {Check if user pressed Logging Continuous button} If StartLogging then begin StartLogging:=False; StartButtonClick(FormLogCont); StartUpTimer.Enabled:= True; {Initially show the Reading tab.} PageControl1.PageIndex:= 1; end else begin {Initially show the Trigger tab.} PageControl1.PageIndex:= 0; end; GetStartStopSettings(); SetFixedTime(); end; procedure TFormLogCont.PersistentCheckBoxChange(Sender: TObject); begin if (PersistentCheckBox.Checked) then vConfigurations.WriteBool('HotKeys', 'pers', True) else vConfigurations.WriteBool('HotKeys', 'pers', False); end; procedure TFormLogCont.RadioButton1Click(Sender: TObject); begin // Check all radio buttons in this group, and save value if RadioButton1.Checked then LCTriggerMode:= 0; if RadioButton2.Checked then LCTriggerMode:= 1; if RadioButton3.Checked then LCTriggerMode:= 2; if RadioButton4.Checked then LCTriggerMode:= 3; if RadioButton5.Checked then LCTriggerMode:= 4; if RadioButton6.Checked then LCTriggerMode:= 5; if RadioButton7.Checked then LCTriggerMode:= 6; if RadioButton8.Checked then LCTriggerMode:= 7; vConfigurations.WriteString('LogContinuousSettings', 'Mode', IntToStr(LCTriggerMode)); end; procedure TFormLogCont.SetLocationButtonClick(Sender: TObject); begin worldmap.FormWorldmap.ShowModal; GetStartStopSettings(); end; procedure GoToReadScript(); var FilePath: String; tfIn: TextFile; s: string; i:Integer = 0; //line counter pieces: TStringList; //delimited result from generic read Lst: TStringList; begin pieces:= TStringList.Create; pieces.Delimiter:= ';'; pieces.StrictDelimiter:= False; //Parse spaces also {Initialize display list} Lst:=TStringList.Create; Lst.CommaText:= 'Step,Zenith,Azimuth'; FormLogCont.GoToCommandStringGrid.Clean; FormLogCont.GoToCommandStringGrid.Rows[0]:=Lst; FormLogCont.GoToCommandStringGrid.row:= 1; {Read in steps from selected .goto script file into array} FilePath:= RemoveMultiSlash(DataDirectory + DirectorySeparator + SelectedGoToCommandFile+'.goto'); StatusMessage('Selected GoTo script file:'+FilePath); { Read the selected colour scheme } if FileExists(FilePath) then begin AssignFile(tfIn, FilePath); try reset(tfIn); // Open the file for reading // Keep reading lines until the end of the file is reached while not eof(tfIn) do begin readln(tfIn, s); if (not AnsiStartsStr('#',s)) then begin {Parse data into fields} pieces.DelimitedText:= s; if pieces.Count=2 then begin SetLength(GoToRecords,i+1); GoToRecords[i].Zenith:=StrToFloatDef(pieces[0],0); GoToRecords[i].Azimuth:=StrToIntDef(pieces[1],0); FormLogCont.GoToCommandStringGrid.InsertRowWithValues(i+1,[IntToStr(i+1),pieces[0],pieces[1]]); Inc(i); end else begin StatusMessage('Looking for 2 columns, got '+IntToStr(pieces.Count)+', '+s); exit; end; end; end; CloseFile(tfIn); // Done, so close the file. except on E: EInOutError do StatusMessage('GoTo script file handling error occurred. Details: '+ E.Message + 'On row:'+IntToStr(i)); end; GoToProgramStepsTotal:=Length(GoToRecords); FormLogCont.GoToStepsTotalDisplay.Caption:=IntToStr(GoToProgramStepsTotal); end //End checking if file exists else begin //file did not exist StatusMessage('GoTo script does not exits:'+ FilePath); end; if Assigned(pieces) then FreeAndNil(pieces); Lst.Free; end; procedure TFormLogCont.FineTimerTimer(Sender: TObject); var result:String; pieces: TStringList; //delimited result from generic read {==== Function to convert float to precise Synscan Hex ====} function GoToSynScanHex(Angle:Float):String; begin GoToSynScanHex:=IntToHex(round((Angle*16777216.0*256.0)/360.0),4); end; {==========================================================} begin // Only trigger out once per second with ~20ms accuracy. // This prevents general drift in recordings. pieces:= TStringList.Create; pieces.Delimiter:= ','; pieces.StrictDelimiter:= False; //Parse spaces also FineTimer.Enabled:= False; if (SecondOf(Now()) <> OldSecond) then begin OldSecond:= SecondOf(Now()); if (RecordingMode) then begin //Gets triggered by the fine timer once per second if RecordingMode is true. if (Recording = False) then begin //Prevent more recording while already busy saving a record ThisMoment:= RecodeMilliSecond(Now, 0); CurrentTime.Caption:= FormatDateTime('yyyy-mm-dd hh:nn:ss', ThisMoment); { Handle GoTo - setup from Record button ***} // All stages GoToStageLabel if GoToEnabled then begin {For each position; pull up positions from script file. - increment program GoToProgramStep. - stop when after reading from last step. } {**** check that command step is within range} GoToDesiredZenith:=GoToRecords[GoToCommandStep].Zenith; GoToDesiredAzimuth:=GoToRecords[GoToCommandStep].Azimuth; case GoToStage of 0: begin {Move to position} StatusMessage(Format('Stage 0; request move to position _n_ of _total_ : %.3f, %.3f', [GoToDesiredZenith,GoToDesiredAzimuth])); GoToInPosition:=False; //Default to "no in position". GoToCommand(gtSetZenithAzimuth); Inc(GoToStage); end; 1: Begin { keep scanning GoTo device until not moving, then move to next stage.} if GoToInPosition then begin //Check if done StatusMessage('GoTo device has moved to position.'); Inc(GoToStage); //then move to next GoToStage. end else begin StatusMessage('Waiting until GoTo device has moved to position.'); end; end; {Keep reading until the first fresh reading arrives, then move to next stage.} 2: Begin result:=GetReading(); pieces.DelimitedText:= result; if pieces.Count=8 then begin if ((pieces.Strings[pieces.Count-1]='F') or (pieces.Strings[pieces.Count-1]='P')) then begin StatusMessage('Got first fresh reading.'); Inc(GoToStage); end else begin StatusMessage('Got stale reading: '+pieces.Strings[pieces.Count-1]); end; end else begin StatusMessage('Expecting 8 pieces, got '+IntToStr(pieces.Count)); result:=GetReading(); GoToStage:=-1; StopRecording:=True; end; end; {Keep reading until the second fresh reading arrives then logonereading.} 3: begin StatusMessage('Waiting for second fresh reading.'); result:=GetReading(); pieces.DelimitedText:= result; if pieces.Count=8 then begin if ((pieces.Strings[7]='F') or (pieces.Strings[7]='P')) then begin StatusMessage('Got second fresh reading, logging: '); LogOneReading(result);//Log the fresh reading just taken. GoToStage:=0;//point back to initial stage for next reading Inc(GoToCommandStep);//Point to next record in .goto script if (GoToCommandStep>Length(GoToRecords)-1) then begin GoToCommandStep:=0; GoToStage:=-1; StopRecording:=True; end; end; end else begin StatusMessage('Expecting 8 pieces, got '+IntToStr(pieces.Count)); end; end else begin StatusMessage('Unknown stage: '+IntToStr(GoToStage)); GoToStage:=-1; StopRecording:=True; end; end; end else begin {Goto not enabled} // Check if counter has expired while in Seconds or Minutes mode case LCTriggerMode of 0..1: begin // Seconds or Minutes mode selected Dec(LogTimeCurrent); if ((LogTimeCurrent = 2) and (Alert2sEnable)) then begin PreAlertSound.StopSound; PreAlertSound.Execute; end; if (LogTimeCurrent <= 0) then begin //Next recording time should really be calculated here in case the logging/transferring takes too long. But. that might require som major re-writing. // Restart counter display for continuous logging LogTimeCurrent:= LogTimePreset; NextRecordAtTimestamp:=IncSecond(ThisMoment, LogTimeCurrent); NextRecordAt.Caption:= FormatDateTime('yyyy-mm-dd hh:nn:ss',NextRecordAtTimestamp); NextRecordIn.Caption:= Sec2DHMS(LogTimeCurrent); // Log value//* threshold checking LogOneReading; if ((AlertEnable=2) or ((AlertEnable=1) and FreshReading)) then begin FreshSound.StopSound; FreshSound.Execute; end; RecordsLogged.Caption:= IntToStr(LCLoggedCount); end else NextRecordIn.Caption:= Sec2DHMS(LogTimeCurrent); Application.ProcessMessages; end; 2..7: begin // On-the-clock mode selected if not Freshness then begin if (((CompareDateTime(ThisMoment, NextRecordAtTimestamp-2*OneSecond))=0) and (Alert2sEnable)) then begin PreAlertSound.StopSound; PreAlertSound.Execute; end; end; if (CompareDateTime(ThisMoment, NextRecordAtTimestamp) >= 0) then begin case LCTriggerMode of 2: OnTheClock(ThisMoment, 1); //Every 1 minute 3: OnTheClock(ThisMoment, 5); //Every 5 minutes 4: OnTheClock(ThisMoment, 10); //Every 10 minutes 5: OnTheClock(ThisMoment, 15); //Every 15 minutes 6: OnTheClock(ThisMoment, 30); //Every 30 minutes 7: OnTheClock(ThisMoment, 60); //Every hour end; // Log value//* threshold checking LogOneReading; RecordsLogged.Caption:= IntToStr(LCLoggedCount); end else begin//continue counting LogTimeCurrent:= Round(SecondSpan(ThisMoment, NextRecordAtTimestamp)); NextRecordIn.Caption:= Sec2DHMS(LogTimeCurrent); end; end; end; end; if StopRecording then begin RecordingMode:= False; StopButton.Enabled:= False; PauseButton.Enabled:=False; PauseButton.Caption:='Pause'; StartButton.Enabled:= True; LCTrigSecondsSpin.Enabled:= True; LCTrigMinutesSpin.Enabled:= True; LCThreshold.Enabled:= True; LogTimePreset:= 0; LogTimeCurrent:= 0; NextRecordIn.Caption:= ''; AnnotateButton.Enabled:= False; EditHotkeysCheckBox.Checked:= True; EditHotkeysCheckBox.Enabled:= False; HotkeyStringGrid.Enabled:= True; HotkeyStringGrid.Font.Color:= clDefault; GPSEnable.Enabled:=True; OptionsGroup.Enabled:=True; if (rotstage) then begin RSser.SendString('E0' + chr(13) + chr(10)); RSser.Free; end; {Exit program if command line GoTo run stop mode is active} if ParameterCommand('-LCGRS') then begin unit1.Form1.Close; end; CloseButton.Enabled:= True; FrequencyGroup.Enabled:= True; {Clear persistent flag indicating that logging has stopped. Used for crash recovery. } vConfigurations.WriteBool('LogContinuousPersistence', 'LoggingUnderway', False); end; end; //End of checking Recording flag { ======== Alarm sounding ========= } {Sound alarm if requested and not snoozing} //Check if alarm has been requested and enabled If (AlarmRequest and AlarmSoundEnable) then begin {Only play alarm if snooze has not been pressed and repeat time is active} If ((AlarmSnoozeCurrentTime>=AlarmSnoozeTime) and (AlarmRepeatCurrentTime>=AlarmRepeatTime)) then begin If LazFileUtils.FileExistsUTF8(AlarmSound.SoundFile) then begin StatusMessage('Alarm sounded.'); AlarmSound.StopSound; AlarmSound.Execute; end; AlarmRepeatCurrentTime:=-1; //Reset repeat timer end; end; { update Repeat timer. } Inc(AlarmRepeatCurrentTime); EnsureRange(AlarmRepeatCurrentTime,0,AlarmRepeatTime); SetRepeatProgress(); {Alarm request may come and go depending on actual darkness, and the snooze timer should continue regardless.} Inc(AlarmSnoozeCurrentTime); EnsureRange(AlarmSnoozeCurrentTime,0,AlarmSnoozeTime); SetSnoozeProgress(); { ======== End of Alarm sounding ========= } end; //End of checking RecordingMode end; //End of checking once per second //Set length of timer and start it if still recording if not StopRecording then begin FineTimer.Interval:= 1000 - MilliSecondOf(Now()); FineTimer.Enabled:= True; end; end; procedure TFormLogCont.StartButtonClick(Sender: TObject); //Start recording var Hpieces:TStringList; //Humidity result begin StopRecording:= False; StatusMessage('Start recording Log continuous'); //Clear out old plots. MPSASSeries.Clear; RedSeries.Clear; GreenSeries.Clear; BlueSeries.Clear; ClearSeries.Clear; TempSeries.Clear; MoonSeries.Clear; SetFixedReadings(); OldStartPlotTimeStamp:=Now(); BestDarknessTime:=Now(); SetFixedTime(); if (rotstage) then begin //0. Connect to the ardiuno rotation stage serial port. //1. Center between limit switches, move to actual center offset, set position to zero //2. Take a reading //3. Step to the right // goto step 2 until right limit switch is hit RSser:= TBlockSerial.Create; RSser.LinuxLock:= False; //lock file sometimes persists stuck if program closes before port //RSser.Connect('/dev/ttyUSB2'); //ComPort RSser.Connect(FormLogCont.RSComboBox.Text); //ComPort RSser.config(9600, 8, 'N', SB1, False, False); WriteLn('Device: ' + RSser.Device + ' Status: ' + RSser.LastErrorDesc + ' ' + IntToStr(RSser.LastError)); //Update position display FormLogCont.RSStatusBar.Panels.Items[0].Text:= 'Connected'; FormLogCont.RSCurrentPositionAngleDisplay.Text:= ''; Application.ProcessMessages; //Turn LIGHT on sleep(1500); RSser.SendString('C4' + chr(13) + chr(10)); ParseRotstage(Trim(RSser.Recvstring(20000))); //Enable motor sleep(1500); RSser.SendString('E1' + chr(13) + chr(10)); ParseRotstage(Trim(RSser.Recvstring(20000))); // Center the stage FormLogCont.RSStatusBar.Panels.Items[0].Text:= 'Finding limits'; Application.ProcessMessages; RSser.SendString('C0' + chr(13) + chr(10)); ParseRotstage(Trim(RSser.Recvstring(20000))); FormLogCont.RSStatusBar.Panels.Items[0].Text:= 'Found limits'; Application.ProcessMessages; sleep(1000); // Move to actual center offset FormLogCont.RSStatusBar.Panels.Items[0].Text:= 'Applying center offset'; Application.ProcessMessages; RSser.SendString('M0' + chr(13) + chr(10)); ParseRotstage(Trim(RSser.Recvstring(20000))); FormLogCont.RSStatusBar.Panels.Items[0].Text:= 'Mechanically centered'; FormLogCont.RSCurrentPositionAngleDisplay.Text:= '0.0'; Application.ProcessMessages; sleep(1000); // Set position to zero RSser.SendString('C3' + chr(13) + chr(10)); FormLogCont.RSStatusBar.Panels.Items[0].Text:= 'Position centered'; //Update position display FormLogCont.RSCurrentPositionStepDisplay.Text:= '0'; Application.ProcessMessages; end; //Grab selected time, convert to seconds, store in LogTimePreset //Grab current time: ThisMoment:= RecodeMilliSecond(Now, 0); //Strip fractional seconds for display CurrentTime.Caption:= FormatDateTime('yyyy-mm-dd hh:nn:ss', ThisMoment); case LCTriggerMode of 0: begin //Every x seconds (on the second) LogTimePreset:= LCTrigSeconds; LogTimeCurrent:= LogTimePreset; NextRecordAtTimestamp:=IncSecond(ThisMoment, LCTrigSeconds); NextRecordAt.Caption:= FormatDateTime('yyyy-mm-dd hh:nn:ss',NextRecordAtTimestamp); if LCTrigSeconds = 1 then Setting:= Format('every %d second', [LCTrigSeconds]) else Setting:= Format('every %d seconds', [LCTrigSeconds]); end; 1: begin //Every x minutes (at 0 seconds) { TODO : ontheclock x minutes } LCTrigMinutes:=LimitInteger(LCTrigMinutes,1,255); LogTimePreset:= LCTrigMinutes * 60; LogTimeCurrent:= LogTimePreset; NextRecordAtTimestamp:=IncSecond(ThisMoment, LogTimeCurrent); NextRecordAt.Caption:= FormatDateTime('yyyy-mm-dd hh:nn:ss',NextRecordAtTimestamp); if LCTrigMinutes = 1 then Setting:= Format('every 1 minute', [LCTrigMinutes]) else Setting:= Format('every %d minutes', [LCTrigMinutes]); end; 2: begin //Every 1 minutes OnTheClock(ThisMoment, 1); Setting:= 'every 1 minute on the minute'; end; 3: begin //Every 5 minutes OnTheClock(ThisMoment, 5); Setting:= 'every 5 minutes on the 1/12th hour'; end; 4: begin //Every 10 minutes OnTheClock(ThisMoment, 10); Setting:= 'every 10 minutes on the 1/6th hour'; end; 5: begin //Every 15 minutes OnTheClock(ThisMoment, 15); Setting:= 'every 15 minutes on the 1/4 hour'; end; 6: begin //Every 30 minutes OnTheClock(ThisMoment, 30); Setting:= 'every 30 minutes on the 1/2 hour'; end; 7: begin //Every hour OnTheClock(ThisMoment, 60); Setting:= 'every hour on the hour'; end; end; //Threshold setting Setting:= Setting + ',Threshold = ' + FloatToStr(LCThresholdValue) + ' mpsas'; //Limit setting if RecordLimitSpin.Value>0 then Setting:= Setting + ', Record limit = ' + IntToStr(RecordLimitSpin.Value) ; NextRecordIn.Caption:= Sec2DHMS(LogTimeCurrent); RecordingMode:= True; Chart2LineSeries1.Clear; //Clear chart PageControl1.PageIndex:= 1; //show the chart tab PauseButton.Enabled:=True; PauseButton.Caption:='Pause'; StopButton.Enabled:= True; StartButton.Enabled:= False; CloseButton.Enabled:= False; LCTrigSecondsSpin.Enabled:= False; LCTrigMinutesSpin.Enabled:= False; LCThreshold.Enabled:= False; LCLoggedCount:= 0; RecordsLogged.Caption:= IntToStr(LCLoggedCount); FrequencyGroup.Enabled:= False; RecordsViewSynEdit.Clear; AnnotateButton.Enabled:= True; EditHotkeysCheckBox.Checked:= False; EditHotkeysCheckBox.Enabled:= True; HotkeyStringGrid.Enabled:= False; HotkeyStringGrid.Font.Color:= clInactiveCaption; RecordsMissed.Color:= clDefault; RecordsMissed.Font.Color:= clDefault; RecordsMissedCount:= 0; RecordsMissed.Caption:= IntToStr(RecordsMissedCount); RSCurrentStepNumber:= 0; GPSEnable.Enabled:=False; OptionsGroup.Enabled:=False; GoToProgramStep:=0;//Beginning of position steps GoToStage:=0; //Beginning of GoTo stage AlarmSnoozeCurrentTime:=AlarmSnoozeTimePreset; //Number of seconds since Snooze was pressed, default =snooze expired AlarmRepeatCurrentTime:=AlarmRepeatTimePreset; //Number of seconds since Snooze was pressed, default = expired //Check if Humidity accessory is enabled if ((SelectedModel=model_LELU) and (StrToIntDef(SelectedFeature,0)>=51)) then begin Hpieces:= TStringList.Create; Hpieces.Delimiter:= ','; Hpieces.DelimitedText:=SendGet('A1x'); if Hpieces.Count=7 then if Hpieces.Strings[2]='E' then //Enabled. A1Enabled:=True else A1Enabled:=False; end; //Set defdault scaling and labels CheckInvert(); ReadingUnits.Caption:= 'mags/arcsec²'; Chart1.LeftAxis.Title.Caption:= 'MPSAS'; //Set custom scaling and labels case SelectedModel of model_ADA: begin //ADA model selected ReadingUnits.Caption:= 'ADA factor'; DLHeaderStyle:= 'ADA'; Chart1.LeftAxis.Title.Caption:= 'ADAFactor'; Chart1.AxisList[1].Range.Max:= 20; // Set fixed vertical range for easier identification of Aurora. Chart1.AxisList[1].Range.Min:= 0; Chart1.AxisList[1].Range.UseMax:= True; Chart1.AxisList[1].Range.UseMin:= True; end; model_GDM: begin //Geomagnetic Disturbance Monitor model selected ReadingUnits.Caption:= 'counts'; DLHeaderStyle:= 'GDM'; Chart1.LeftAxis.Title.Caption:= 'counts'; end; model_V: begin //Vector model selected DLHeaderStyle:= 'DL-V-Log'; end; model_C: begin //Colour model selected DLHeaderStyle:= 'C'; end; else begin //All other models DLHeaderStyle:= 'LE'; end; end; //end of checking models {Enable Moon data plotting} Chart1.AxisList[3].Visible:=MoonData; {Open previous two days worth of log files if LoggingUnderWay already (restarted after a crash)} if LCLoggingUnderway then begin {Get todays and yesterdays dates.} {Import all files from those dates.} end; try { Open file and store header } OpenComm(); WriteDLHeader(DLHeaderStyle, Format('Logged continuously %s.', [setting])); LogFieldNames.Text:=RightStr(header_utils.FieldNames,length(header_utils.FieldNames)-2); LogFieldUnits.Text:=RightStr(header_utils.FieldUnits,length(header_utils.FieldUnits)-2); LCLogFileCount:= 1; FilesLogged.Caption:= IntToStr(LCLogFileCount); FilesLabel.Caption:= 'file'; { Save initial log time for 24 rollover check later } LCStartFileDay:= DayOf(ThisMoment); LCStartFileHour:= HourOf(ThisMoment); {Set persistent flag indicating that logging is underway. Used for crash recovery. } vConfigurations.WriteBool('LogContinuousPersistence', 'LoggingUnderway', True); LogOneReading; {First reading} except StatusMessage('ERROR! IORESULT: ' + IntToStr(IOResult) + ' during StartButtonClick'); {Stop recording right away} ShowMessage('Problem starting logging, check header timezone information.' + sLineBreak + 'ERROR! IORESULT: ' + IntToStr(IOResult) + ' during StartButtonClick'); Close; end; //Set length of timer and start it FineTimer.Interval:= 1000 - MilliSecondOf(Now()); FineTimer.Enabled:= True; end; procedure TFormLogCont.StartUpTimerTimer(Sender: TObject); begin //Check if window should be minimized automatically when instant recording is desired if ParameterCommand('-LCMIN') then begin Application.Minimize; Application.ProcessMessages; end; StartUpTimer.Enabled:= False; end; procedure TFormLogCont.StopButtonClick(Sender: TObject); begin StopRecording:= True; end; procedure TFormLogCont.HotkeyStringGridKeyUp(Sender: TObject; var Key: word; Shift: TShiftState); var i: integer; function StrippedOfNonAscii(const s: string): string; var i, Count: integer; begin SetLength(Result, Length(s)); Count:= 0; for i:= 1 to Length(s) do begin if ((s[i] >= #32) and (s[i] < #127)) or (s[i] in [#10, #13]) then begin Inc(Count); Result[Count]:= s[i]; end; end; SetLength(Result, Count); end; begin if HotkeyStringGrid.Col = 0 then begin HotkeyStringGrid.Cells[HotkeyStringGrid.Col, HotkeyStringGrid.Row]:= keyslist(Key); HotKeyCodes[HotkeyStringGrid.Row]:= Key; end; for i:= 1 to HotkeyStringGrid.RowCount - 1 do begin vConfigurations.WriteString('HotKeys', 'h' + IntToStr(i - 1), IntToStr(HotKeyCodes[i])); vConfigurations.WriteString('HotKeys', 'a' + IntToStr(i - 1), StrippedOfNonAscii(HotkeyStringGrid.Cells[1, i])); end; end; procedure TFormLogCont.HotkeyStringGridSelectEditor(Sender: TObject; aCol, aRow: integer; var Editor: TWinControl); begin if Editor is TStringCellEditor then CustomizeEdit(aCol, aRow, Editor as TStringCellEditor); end; procedure TFormLogCont.CheckSynchronized(); begin if (SynchronizedCheckBox.Checked) then begin PendingHotKey.Enabled:= True; PendingLabel.Enabled:= True; vConfigurations.WriteBool('HotKeys', 'sync', True); end else begin PendingHotKey.Enabled:= False; PendingLabel.Enabled:= False; vConfigurations.WriteBool('HotKeys', 'sync', False); end; end; procedure TFormLogCont.SynchronizedCheckBoxChange(Sender: TObject); begin CheckSynchronized(); end; procedure TFormLogCont.TrRdgHelpButtonClick(Sender: TObject); begin Application.MessageBox( 'This sends each reading by TCP to a server.'+ sLineBreak+ sLineBreak+ 'Sign up to the Globe at Night server (email globeatnight.network@gmail.com) and provide your location, coordinates, and serial number to receive the IP address and port number.'+ sLineBreak+ ' ', '', MB_HELP) ; end; procedure TFormLogCont.TrRdgAddressEntryChange(Sender: TObject); begin if not FormCreating then begin TrRdgAddress:=TrRdgAddressEntry.text; vConfigurations.WriteString('FTPSettings','TrRdgAddress',TrRdgAddress); end; end; procedure TFormLogCont.TrRdgPortEditChange(Sender: TObject); begin if not FormCreating then begin TrRdgPort:=TrRdgPortEdit.Text; vConfigurations.WriteString('FTPSettings','TrRdgPort',TrRdgPort); end; end; procedure TFormLogCont.TrRdgTestButtonClick(Sender: TObject); begin TransferReading(SendGet('Rx')); end; procedure TFormLogCont.TrRdgEnableCheckBoxClick(Sender: TObject); begin if not FormCreating then begin TrRdgEnabled:=TrRdgEnableCheckBox.Checked; vConfigurations.WriteBool('FTPSettings', 'TrRdgEnabled',TrRdgEnabled); end; end; procedure TFormLogCont.CustomizeEdit(ACol, ARow: integer; Editor: TStringCellEditor); begin if aCol = 1 then Editor.MaxLength:= 0; end; { Transfer the .dat or .csv file to a server. } function TFormLogCont.FTPSend(): boolean; var FTPClient: TFTPSend; rc: boolean = False; RemoteDir: string; RemoteFilename: string; CommandsString: array of ansistring; OutputString: ansistring = ''; ExitStatus: Integer; SFTPCommand: String; Process: TProcess; StartTime: TDateTime; begin StartTime:=Now(); Process:= TProcess.Create(nil); TransferFullResult.Clear; TransferSendResult.Clear; TransferSendResult.Append('Transferring file(s)...'); Application.ProcessMessages; ThisMomentUTC:=NowUTC(); // Start recording elapsed time to perform the transfer if TransferPLOT then begin {Graphics File Name} gfn:=FormatDateTime('YYYYMMDD', StartPlotTimeStamp)+'.png'; lgfn:=RemoveMultiSlash(LogsDirectory+DirectorySeparator+gfn); {HTML File Name} hfn:=RemoveMultiSlash(LogsDirectory+DirectorySeparator+'sqm.html'); end; case TransferProtocolSelector.Items[TransferProtocolSelector.ItemIndex] of 'FTP': begin if (TransferAddress <> '') then begin // Create the FTP Client object and set the FTP parameters FTPClient:= TFTPSend.Create; FTPClient.Timeout:= StrToIntDef(TransferTimeout.Text,1000); //milliseconds with FTPClient do begin if (TransferPort = '') then begin TransferPort:= cFtpProtocol; TransferPortEntry.Text:=TransferPort; end; TargetPort:= TransferPort; TargetHost:= TransferAddress; UserName:= TransferUsername; Password:= TransferPassword; RemoteDir:= TransferRemoteDirectory; if (TransferLocalFilename = '') then begin TransferLocalFilename:='test.txt'; TransferLocalFilenameDisplay.Caption:=TransferLocalFilename; end; RemoteFilename:= ExtractFileName(TransferLocalFilename); TransferRemoteFilename.Text:= RemoteFilename; TransferSendResult.Text:= 'Pending transfer ...'; //----------------------------------------------------------------------- // bail out if the FTP connect fails if not LogIn then begin TransferSendResult.Text:= 'Unable to login within '+IntToStr(Timeout)+'ms.'; exit; end; //------------------------------------------------------------------------ // Set filename to FTP DirectFileName:= TransferLocalFilename; DirectFile:= True; //------------------------------------------------------------------------ // change directory if requested if RemoteDir <> '' then if ChangeWorkingDir(RemoteDir) then TransferRemoteDirectorySuccess.Brush.Color:= clLime else TransferRemoteDirectorySuccess.Brush.Color:= clRed; //------------------------------------------------------------------------ // STORE file to FTP server, and try to append lines as necessary (proven with wireshark). try rc:= StoreFile(RemoteDir + RemoteFilename, True); except on e:Exception do TransferSendResult.Lines.Append(e.ClassName + ' ' + e.Message); end; { Check if storefile failed, and add timestamp} if rc then TransferSendResult.Lines.Append('Sent: '+FormatDateTime('YYYY-MM-DD hh:nn:ss', Now())) else TransferSendResult.Lines.Append('Failed: '+FormatDateTime('YYYY-MM-DD hh:nn:ss', Now())); TransferSendResult.Lines.Append('Completed in '+ IntToStr(MilliSecondsBetween(ThisMomentUTC,NowUTC()))+' ms.'); TransferFullResult.Lines.Assign(FullResult); //------------------------------------------------------------------------ //------------------------------------------------------------------------ if TransferPLOT then begin PrepareTransferPayload(); RemoteFilename:='sqm.html'; try rc:= StoreFile(RemoteDir + RemoteFilename, True); except on e:Exception do TransferSendResult.Lines.Append(e.ClassName + ' ' + e.Message); end; { Check if storefile failed, and add timestamp} if rc then TransferSendResult.Lines.Append('Sent html: '+FormatDateTime('YYYY-MM-DD hh:nn:ss', Now())) else TransferSendResult.Lines.Append('Failed sending html: '+FormatDateTime('YYYY-MM-DD hh:nn:ss', Now())); TransferSendResult.Lines.Append('Completed sending html in '+ IntToStr(MilliSecondsBetween(ThisMomentUTC,NowUTC()))+' ms.'); TransferFullResult.Lines.Assign(FullResult); DirectFileName:=lgfn; RemoteFilename:='plot.png'; try rc:= StoreFile(RemoteDir + RemoteFilename, True); except on e:Exception do TransferSendResult.Lines.Append(e.ClassName + ' ' + e.Message); end; { Check if storefile failed, and add timestamp} if rc then TransferSendResult.Lines.Append('Sent plot: '+FormatDateTime('YYYY-MM-DD hh:nn:ss', Now())) else TransferSendResult.Lines.Append('Failed sending plot: '+FormatDateTime('YYYY-MM-DD hh:nn:ss', Now())); TransferSendResult.Lines.Append('Completed sending plot in '+ IntToStr(MilliSecondsBetween(ThisMomentUTC,NowUTC()))+' ms.'); TransferFullResult.Lines.Assign(FullResult); end; //------------------------------------------------------------------------ // close the connection LogOut; //------------------------------------------------------------------------ // free the FTP client object Free; //------------------------------------------------------------------------ end; end; //End checking if FTP address was assigned end; 'SFTP': begin TransferFullResult.Lines.Clear; //Check if sftp command exists if ((length(FindDefaultExecutablePath('sftp'))>0) and(Length(ExpectPath)>0)) then begin if (TransferPort<>'') then TransferPortSFTP:=TransferPort else TransferPortSFTP:=''; //if (TransferDAT or TransferCSV) then begin // SFTPCommand:='ex.sh '+ TransferLocalFilename+'\n" | sftp -o PasswordAuthentication=no '+TransferPortSFTP+' -b- '+TransferUsername+'@'+TransferAddress+':'+TransferRemoteDirectory; // if RunCommandInDir(LogsDirectory,BashPath,['-c',SFTPCommand], OutputString) then // TransferSendResult.Append('Passed (.dat and/or .csv)') // else // TransferSendResult.Append('Failed (.dat and/or .csv)'); // TransferFullResult.Lines.Append('SFTP command:'+BashPath+' -c '+SFTPCommand); // TransferFullResult.Lines.Append('SFTP put .dat and/or .csv result:'+OutputString); //end; if TransferPLOT then begin PrepareTransferPayload(); //example: sftpoptions= sftp://pi@192.168.1.118:22/path try Process.Executable:= ExpectPath; Process.Parameters.Add(Format('%s%sex.tcl',[DataDirectory,DirectorySeparator])); Process.Parameters.Add(Format('sftp://%s@%s:%s',[TransferUsername,TransferAddress,TransferPortSFTP])); Process.Parameters.Add(TransferPassword); Process.Parameters.Add(LogsDirectory); Process.Parameters.Add(TransferRemoteDirectory); Process.Parameters.Add(lgfn); Process.Options:= Process.Options + [poWaitOnExit]; TransferFullResult.Append(ExpectPath); TransferFullResult.Append(Process.Parameters.Strings[0]); TransferFullResult.Append(Process.Parameters.Strings[1]); TransferFullResult.Append(Process.Parameters.Strings[2]); TransferFullResult.Append(Process.Parameters.Strings[3]); TransferFullResult.Append(Process.Parameters.Strings[4]); TransferFullResult.Append(Process.Parameters.Strings[5]); Process.Execute; except TransferSendResult.Append('TProcess sftp transfer of html and plot failed.'); end; end; end else begin TransferSendResult.Text:='The sftp or expect executable does not exist.'; StatusMessage('SFTP send error: The sftp or bash executable does not exist.'); {Stop recording right away} ShowMessage('SFTP send error: The sftp or bash executable does not exist.' + sLineBreak + 'Check LogContinuout Transfer tab.'); Close; end; //End of check for sftp executable existence end;//End of SFTP case {Secure CoPy is done by executing a command which must be present (scp)} 'SCP': begin TransferFullResult.Lines.Clear; //Check if scp command exists if length(FindDefaultExecutablePath('scp'))>0 then begin //Compose the scp command SetLength(CommandsString,4); CommandsString[0]:='-P'; //Port CommandsString[1]:=TransferPort; //Port definition CommandsString[2]:=TransferLocalFilename; //Local source file CommandsString[3]:=TransferUsername+'@'+TransferAddress+':'+TransferRemoteDirectory;//Destination server and file if RunCommand('scp', CommandsString, OutputString) then TransferSendResult.Text:='Passed (.dat and/or .csv)' else TransferSendResult.Text:='Failed (.dat and/or .csv)'; TransferFullResult.Lines.Append('SCP result:'+OutputString); if TransferPLOT then begin PrepareTransferPayload(); SetLength(CommandsString,4); CommandsString[0]:='-P'; //Port CommandsString[1]:=TransferPort; //Port definition CommandsString[2]:=hfn; //Local source file CommandsString[3]:=TransferUsername+'@'+TransferAddress+':'+TransferRemoteDirectory;//Destination server and file if RunCommand('scp', CommandsString, OutputString) then TransferSendResult.Append('Passed (html)') else TransferSendResult.Append('Failed (html)'); TransferFullResult.Lines.Append('SCP html result:'+OutputString); SetLength(CommandsString,4); CommandsString[0]:='-P'; //Port CommandsString[1]:=TransferPort; //Port definition CommandsString[2]:=lgfn; //Local source file CommandsString[3]:=TransferUsername+'@'+TransferAddress+':'+TransferRemoteDirectory;//Destination server and file if RunCommand('scp', CommandsString, OutputString) then TransferSendResult.Append('Passed (plot)') else TransferSendResult.Append('Failed (plot)'); TransferFullResult.Lines.Append('SCP plot result:'+OutputString); end; end //End of check for scp executable existence else begin TransferSendResult.Text:='The scp executable does not exist.'; StatusMessage('SCP send error: The scp executable does not exist.'); {Stop recording right away} ShowMessage('SCP send error: The scp executable does not exist.' + sLineBreak + 'Check LogContinuout Transfer tab.'); Close; end; end; //End of SCP case end; //Endof protocol case Result:= rc; TransferSendResult.Append(Format('Transfer time: %0.3fs',[MilliSecondsBetween(Now,StartTime)/1000])); //=========================================================================== end; procedure PrepareTransferPayload(); const SkeletonFilename = 'sqm-skeleton.html'; TemplateFilename = 'sqm-template.html'; OutputFilename = 'sqm.html'; var Infile: TStringList; OutFileName:String; OutFile: TextFile; s,sout: String; //Temporary strings pieces:TStringList; PositionLatitude, PositionLongitude: Float; begin pieces:= TStringList.Create; pieces.Delimiter:= ','; pieces.DelimitedText:=PositionEntry; if pieces.Count>1 then begin PositionLatitude:=StrToFloat(pieces.Strings[0]); PositionLongitude:=StrToFloat(pieces.Strings[1]); if PositionLatitude>0 then PositionString:='N' else PositionString:='S'; PositionString:=Format('%s%0.5f°',[PositionString,Abs(PositionLatitude)]); if PositionLongitude>0 then PositionString:=PositionString+' E' else PositionString:=PositionString+' W'; PositionString:=Format('%s%0.5f°',[PositionString,Abs(PositionLongitude)]); end; Infile:= TStringList.Create; //Save chart for transferring later FormLogCont.Chart1.SaveToFile(TPortableNetworkGraphic, RemoveMultiSlash(lgfn)); //Prepare html file // - copy Template file if required if (not FileExists(appsettings.LogsDirectory+ DirectorySeparator+TemplateFilename)) then begin CopyFile( appsettings.DataDirectory+DirectorySeparator+SkeletonFilename, appsettings.LogsDirectory+ DirectorySeparator+TemplateFilename ); end; //Modify sqm-template.html by replacing variables then write to sqm.html //Open template html file Infile.LoadFromFile(appsettings.LogsDirectory+ DirectorySeparator+TemplateFilename); //Open output html file OutFileName:=appsettings.LogsDirectory+ DirectorySeparator+OutputFilename; AssignFile(OutFile, OutFileName); Rewrite(OutFile); //Open file for writing //Replace variables from sqm-template.html into sqm.html for s in Infile do begin if AnsiStartsStr('<!-- SQM-',s) then begin case s of '<!-- SQM-location -->' :sout:=Format('%s',[LocationName]); '<!-- SQM-coordinates -->' :sout:=Format('%s',[PositionString]); '<!-- SQM-timestamp -->' :sout:=FormatDateTime('yyyy-mm-dd hh:nn:ss', ThisMoment); '<!-- SQM-nexttimestamp -->' :sout:=FormatDateTime('yyyy-mm-dd hh:nn:ss', NextRecordAtTimestamp); '<!-- SQM-mpsas -->' :sout:=Format('%s',[DarknessString]); '<!-- SQM-nelm -->' :sout:=Format('%s',[NELMstring]); '<!-- SQM-cdm2 -->' :sout:=Format('%s',[CDM2String]); '<!-- SQM-mcdm2 -->' :sout:=Format('%s',[MCDM2String]); '<!-- SQM-NSU -->' :sout:=Format('%s',[NSUstring]); '<!-- SQM-Best -->' :sout:=Format('%s',[BestDarknessString]); '<!-- SQM-BestTime -->' :sout:=Format('%s',[BestDarknessTimeString]); '<!-- SQM-imagename -->' :sout:=Format('%s',[gfn]); else sout:=s; end; end else sout:=s; writeln(OutFile, sout); end; CloseFile(OutFile); Infile.Free; end; {Update GoTo script file list} procedure TFormLogCont.UpdateGoToCommandFileList(); var FileName, FileNameOnly, FilePath : string; sr : TSearchRec; i: integer=0; begin Application.ProcessMessages; GoToCommandFileComboBox.Clear; FilePath:= ExtractFilePath(DataDirectory + DirectorySeparator); {Check if any files match criteria} StatusMessage('Looking for .goto files here: '+FilePath+'*.goto'); if FindFirstUTF8(FilePath+'*.goto',faAnyFile,sr)=0 then repeat {Get formatted file properties} FileName:= ExtractFileName(sr.Name); FileNameOnly:= ExtractFileNameOnly(sr.Name); {Display found filename and timestamp} StatusMessage(IntToStr(i)+': '+FileName); GoToCommandFileComboBox.items.Add(FileNameOnly); {Prepare for next file display} Inc(i); until FindNextUTF8(sr)<>0; FindCloseUTF8(sr); SelectedGoToCommandFile:=vConfigurations.ReadString('GoTo','CommandFile','default'); {Check if saved goto commandfile exists} if not FileExists(FilePath+SelectedGoToCommandFile+'.goto') then begin MessageDlg ('Saved GoTo commandfile file setting does not exist:'+sLineBreak + FilePath+SelectedGoToCommandFile+'.goto' +sLineBreak + 'Removing GoTo commandfile setting.', mtConfirmation,[mbOK],0); {Reset} SelectedGoToCommandFile:=''; {Remove setting} vConfigurations.WriteDeletKey('GoTo','CommandFile'); end; GoToCommandFileComboBox.Text:=SelectedGoToCommandFile; end; initialization {$I logcont.lrs} end. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./arpmethod.pas�������������������������������������������������������������������������������������0000644�0001750�0001750�00000002757�14576573021�013652� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit arpmethod; {$mode ObjFPC}{$H+} interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Grids; type { TFormarpmethod } TFormarpmethod = class(TForm) ARPStatusMemo: TMemo; FixXPortButton: TButton; FixXPortGroupBox: TGroupBox; IPEdit: TEdit; FreeIPsLabel: TLabel; ChooseIPGroupBox: TGroupBox; InstructionsMemo: TMemo; InstructionsLabel: TLabel; StatusLabel: TLabel; IPsInUseGroupBox: TGroupBox; AssignedIPsLabel: TLabel; FindIPsButton: TButton; AssignedIPsStringGrid: TStringGrid; FreeIPsStringGrid: TStringGrid; RandomlyChooseIPButton: TButton; procedure FormShow(Sender: TObject); procedure FindIPsButtonClick(Sender: TObject); private public end; var Formarpmethod: TFormarpmethod; implementation uses Unit1,Process; { TFormarpmethod } procedure TFormarpmethod.FindIPsButtonClick(Sender: TObject); var s : ansistring; begin //See if arp command is available //if RunCommand('/bin/bash',['-c','echo $PATH'],s) then ARPStatusMemo.Lines.Add('Running arp'); Application.ProcessMessages; if RunCommand('arp',['-a'],s) then begin ARPStatusMemo.Lines.Add(s); //writeln(s); end else ARPStatusMemo.Lines.Add('The arp command cannot be accessed. Install it, or check the PATH.'); end; procedure TFormarpmethod.FormShow(Sender: TObject); begin ARPStatusMemo.Clear; ARPStatusMemo.Font.Name:=FixedFont; end; initialization {$I arpmethod.lrs} end. �����������������./ssos2ws1.inc��������������������������������������������������������������������������������������0000644�0001750�0001750�00000172612�14576573021�013357� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{==============================================================================| | Project : Ararat Synapse | 001.000.000 | |==============================================================================| | Content: Socket Independent Platform Layer - OS/2 winsock1 | |==============================================================================| | Copyright (c)1999-2013, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2003-2013. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | | Tomas Hajny (OS2 support) | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@exclude} {$MACRO ON} {$IFNDEF ODIN} {$DEFINE WINSOCK1} {$DEFINE PMWSOCK} {$ENDIF ODIN} {$IFDEF PMWSOCK} {$DEFINE extdecl := cdecl} {$ELSE PMWSOCK} {$DEFINE extdecl := stdcall} {$ENDIF PMWSOCK} //{$DEFINE WINSOCK1} {Note about define WINSOCK1: If you activate this compiler directive, then socket interface level 1.1 is used instead default level 2.2. Level 2.2 is not available on old W95, however you can install update. } //{$DEFINE FORCEOLDAPI} {Note about define FORCEOLDAPI: If you activate this compiler directive, then is allways used old socket API for name resolution. If you leave this directive inactive, then the new API is used, when running system allows it. For IPv6 support you must have new API! } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} {$IFDEF VER125} {$DEFINE BCB} {$ENDIF} {$IFDEF BCB} {$ObjExportAll On} (*$HPPEMIT '/* EDE 2003-02-19 */' *) (*$HPPEMIT 'namespace Synsock { using System::Shortint; }' *) (*$HPPEMIT '#undef h_addr' *) (*$HPPEMIT '#undef IOCPARM_MASK' *) (*$HPPEMIT '#undef FD_SETSIZE' *) (*$HPPEMIT '#undef IOC_VOID' *) (*$HPPEMIT '#undef IOC_OUT' *) (*$HPPEMIT '#undef IOC_IN' *) (*$HPPEMIT '#undef IOC_INOUT' *) (*$HPPEMIT '#undef FIONREAD' *) (*$HPPEMIT '#undef FIONBIO' *) (*$HPPEMIT '#undef FIOASYNC' *) (*$HPPEMIT '#undef IPPROTO_IP' *) (*$HPPEMIT '#undef IPPROTO_ICMP' *) (*$HPPEMIT '#undef IPPROTO_IGMP' *) (*$HPPEMIT '#undef IPPROTO_TCP' *) (*$HPPEMIT '#undef IPPROTO_UDP' *) (*$HPPEMIT '#undef IPPROTO_RAW' *) (*$HPPEMIT '#undef IPPROTO_MAX' *) (*$HPPEMIT '#undef INADDR_ANY' *) (*$HPPEMIT '#undef INADDR_LOOPBACK' *) (*$HPPEMIT '#undef INADDR_BROADCAST' *) (*$HPPEMIT '#undef INADDR_NONE' *) (*$HPPEMIT '#undef INVALID_SOCKET' *) (*$HPPEMIT '#undef SOCKET_ERROR' *) (*$HPPEMIT '#undef WSADESCRIPTION_LEN' *) (*$HPPEMIT '#undef WSASYS_STATUS_LEN' *) (*$HPPEMIT '#undef IP_OPTIONS' *) (*$HPPEMIT '#undef IP_TOS' *) (*$HPPEMIT '#undef IP_TTL' *) (*$HPPEMIT '#undef IP_MULTICAST_IF' *) (*$HPPEMIT '#undef IP_MULTICAST_TTL' *) (*$HPPEMIT '#undef IP_MULTICAST_LOOP' *) (*$HPPEMIT '#undef IP_ADD_MEMBERSHIP' *) (*$HPPEMIT '#undef IP_DROP_MEMBERSHIP' *) (*$HPPEMIT '#undef IP_DONTFRAGMENT' *) (*$HPPEMIT '#undef IP_DEFAULT_MULTICAST_TTL' *) (*$HPPEMIT '#undef IP_DEFAULT_MULTICAST_LOOP' *) (*$HPPEMIT '#undef IP_MAX_MEMBERSHIPS' *) (*$HPPEMIT '#undef SOL_SOCKET' *) (*$HPPEMIT '#undef SO_DEBUG' *) (*$HPPEMIT '#undef SO_ACCEPTCONN' *) (*$HPPEMIT '#undef SO_REUSEADDR' *) (*$HPPEMIT '#undef SO_KEEPALIVE' *) (*$HPPEMIT '#undef SO_DONTROUTE' *) (*$HPPEMIT '#undef SO_BROADCAST' *) (*$HPPEMIT '#undef SO_USELOOPBACK' *) (*$HPPEMIT '#undef SO_LINGER' *) (*$HPPEMIT '#undef SO_OOBINLINE' *) (*$HPPEMIT '#undef SO_DONTLINGER' *) (*$HPPEMIT '#undef SO_SNDBUF' *) (*$HPPEMIT '#undef SO_RCVBUF' *) (*$HPPEMIT '#undef SO_SNDLOWAT' *) (*$HPPEMIT '#undef SO_RCVLOWAT' *) (*$HPPEMIT '#undef SO_SNDTIMEO' *) (*$HPPEMIT '#undef SO_RCVTIMEO' *) (*$HPPEMIT '#undef SO_ERROR' *) (*$HPPEMIT '#undef SO_OPENTYPE' *) (*$HPPEMIT '#undef SO_SYNCHRONOUS_ALERT' *) (*$HPPEMIT '#undef SO_SYNCHRONOUS_NONALERT' *) (*$HPPEMIT '#undef SO_MAXDG' *) (*$HPPEMIT '#undef SO_MAXPATHDG' *) (*$HPPEMIT '#undef SO_UPDATE_ACCEPT_CONTEXT' *) (*$HPPEMIT '#undef SO_CONNECT_TIME' *) (*$HPPEMIT '#undef SO_TYPE' *) (*$HPPEMIT '#undef SOCK_STREAM' *) (*$HPPEMIT '#undef SOCK_DGRAM' *) (*$HPPEMIT '#undef SOCK_RAW' *) (*$HPPEMIT '#undef SOCK_RDM' *) (*$HPPEMIT '#undef SOCK_SEQPACKET' *) (*$HPPEMIT '#undef TCP_NODELAY' *) (*$HPPEMIT '#undef AF_UNSPEC' *) (*$HPPEMIT '#undef SOMAXCONN' *) (*$HPPEMIT '#undef AF_INET' *) (*$HPPEMIT '#undef AF_MAX' *) (*$HPPEMIT '#undef PF_UNSPEC' *) (*$HPPEMIT '#undef PF_INET' *) (*$HPPEMIT '#undef PF_MAX' *) (*$HPPEMIT '#undef MSG_OOB' *) (*$HPPEMIT '#undef MSG_PEEK' *) (*$HPPEMIT '#undef WSABASEERR' *) (*$HPPEMIT '#undef WSAEINTR' *) (*$HPPEMIT '#undef WSAEBADF' *) (*$HPPEMIT '#undef WSAEACCES' *) (*$HPPEMIT '#undef WSAEFAULT' *) (*$HPPEMIT '#undef WSAEINVAL' *) (*$HPPEMIT '#undef WSAEMFILE' *) (*$HPPEMIT '#undef WSAEWOULDBLOCK' *) (*$HPPEMIT '#undef WSAEINPROGRESS' *) (*$HPPEMIT '#undef WSAEALREADY' *) (*$HPPEMIT '#undef WSAENOTSOCK' *) (*$HPPEMIT '#undef WSAEDESTADDRREQ' *) (*$HPPEMIT '#undef WSAEMSGSIZE' *) (*$HPPEMIT '#undef WSAEPROTOTYPE' *) (*$HPPEMIT '#undef WSAENOPROTOOPT' *) (*$HPPEMIT '#undef WSAEPROTONOSUPPORT' *) (*$HPPEMIT '#undef WSAESOCKTNOSUPPORT' *) (*$HPPEMIT '#undef WSAEOPNOTSUPP' *) (*$HPPEMIT '#undef WSAEPFNOSUPPORT' *) (*$HPPEMIT '#undef WSAEAFNOSUPPORT' *) (*$HPPEMIT '#undef WSAEADDRINUSE' *) (*$HPPEMIT '#undef WSAEADDRNOTAVAIL' *) (*$HPPEMIT '#undef WSAENETDOWN' *) (*$HPPEMIT '#undef WSAENETUNREACH' *) (*$HPPEMIT '#undef WSAENETRESET' *) (*$HPPEMIT '#undef WSAECONNABORTED' *) (*$HPPEMIT '#undef WSAECONNRESET' *) (*$HPPEMIT '#undef WSAENOBUFS' *) (*$HPPEMIT '#undef WSAEISCONN' *) (*$HPPEMIT '#undef WSAENOTCONN' *) (*$HPPEMIT '#undef WSAESHUTDOWN' *) (*$HPPEMIT '#undef WSAETOOMANYREFS' *) (*$HPPEMIT '#undef WSAETIMEDOUT' *) (*$HPPEMIT '#undef WSAECONNREFUSED' *) (*$HPPEMIT '#undef WSAELOOP' *) (*$HPPEMIT '#undef WSAENAMETOOLONG' *) (*$HPPEMIT '#undef WSAEHOSTDOWN' *) (*$HPPEMIT '#undef WSAEHOSTUNREACH' *) (*$HPPEMIT '#undef WSAENOTEMPTY' *) (*$HPPEMIT '#undef WSAEPROCLIM' *) (*$HPPEMIT '#undef WSAEUSERS' *) (*$HPPEMIT '#undef WSAEDQUOT' *) (*$HPPEMIT '#undef WSAESTALE' *) (*$HPPEMIT '#undef WSAEREMOTE' *) (*$HPPEMIT '#undef WSASYSNOTREADY' *) (*$HPPEMIT '#undef WSAVERNOTSUPPORTED' *) (*$HPPEMIT '#undef WSANOTINITIALISED' *) (*$HPPEMIT '#undef WSAEDISCON' *) (*$HPPEMIT '#undef WSAENOMORE' *) (*$HPPEMIT '#undef WSAECANCELLED' *) (*$HPPEMIT '#undef WSAEEINVALIDPROCTABLE' *) (*$HPPEMIT '#undef WSAEINVALIDPROVIDER' *) (*$HPPEMIT '#undef WSAEPROVIDERFAILEDINIT' *) (*$HPPEMIT '#undef WSASYSCALLFAILURE' *) (*$HPPEMIT '#undef WSASERVICE_NOT_FOUND' *) (*$HPPEMIT '#undef WSATYPE_NOT_FOUND' *) (*$HPPEMIT '#undef WSA_E_NO_MORE' *) (*$HPPEMIT '#undef WSA_E_CANCELLED' *) (*$HPPEMIT '#undef WSAEREFUSED' *) (*$HPPEMIT '#undef WSAHOST_NOT_FOUND' *) (*$HPPEMIT '#undef HOST_NOT_FOUND' *) (*$HPPEMIT '#undef WSATRY_AGAIN' *) (*$HPPEMIT '#undef TRY_AGAIN' *) (*$HPPEMIT '#undef WSANO_RECOVERY' *) (*$HPPEMIT '#undef NO_RECOVERY' *) (*$HPPEMIT '#undef WSANO_DATA' *) (*$HPPEMIT '#undef NO_DATA' *) (*$HPPEMIT '#undef WSANO_ADDRESS' *) (*$HPPEMIT '#undef ENAMETOOLONG' *) (*$HPPEMIT '#undef ENOTEMPTY' *) (*$HPPEMIT '#undef FD_CLR' *) (*$HPPEMIT '#undef FD_ISSET' *) (*$HPPEMIT '#undef FD_SET' *) (*$HPPEMIT '#undef FD_ZERO' *) (*$HPPEMIT '#undef NO_ADDRESS' *) (*$HPPEMIT '#undef ADDR_ANY' *) (*$HPPEMIT '#undef SO_GROUP_ID' *) (*$HPPEMIT '#undef SO_GROUP_PRIORITY' *) (*$HPPEMIT '#undef SO_MAX_MSG_SIZE' *) (*$HPPEMIT '#undef SO_PROTOCOL_INFOA' *) (*$HPPEMIT '#undef SO_PROTOCOL_INFOW' *) (*$HPPEMIT '#undef SO_PROTOCOL_INFO' *) (*$HPPEMIT '#undef PVD_CONFIG' *) (*$HPPEMIT '#undef AF_INET6' *) (*$HPPEMIT '#undef PF_INET6' *) {$ENDIF} {$IFDEF FPC} {$IFDEF WIN32} {$ALIGN OFF} {$ELSE} {$PACKRECORDS C} {$ENDIF} {$ELSE} {$IFDEF WIN64} {$ALIGN ON} {$MINENUMSIZE 4} {$ELSE} {$MINENUMSIZE 4} {$ALIGN OFF} {$ENDIF} {$ENDIF} interface uses SyncObjs, SysUtils, Classes, {$IFDEF OS2} Sockets, Dynlibs {$ELSE OS2} Windows {$ENDIF OS2} ; function InitSocketInterface(stack: String): Boolean; function DestroySocketInterface: Boolean; const {$IFDEF WINSOCK1} WinsockLevel = $0101; {$ELSE} WinsockLevel = $0202; {$ENDIF} type {$IFDEF OS2} Bool = longint; {$ENDIF OS2} u_short = Word; u_int = Integer; u_long = Longint; pu_long = ^u_long; pu_short = ^u_short; {$IFDEF FPC} TSocket = ptruint; {$ELSE} {$IFDEF WIN64} TSocket = UINT_PTR; {$ELSE} TSocket = u_int; {$ENDIF} {$ENDIF} TAddrFamily = integer; TMemory = pointer; const {$IFDEF WINCE} DLLStackName = 'ws2.dll'; {$ELSE} {$IFDEF WINSOCK1} {$IFDEF OS2} {$IFDEF DAPWSOCK} DLLStackName = 'dapwsock.dll'; {$ELSE DAPWSOCK} DLLStackName = 'pmwsock.dll'; {$ENDIF DAPWSOCK} {$ELSE OS2} DLLStackName = 'wsock32.dll'; {$ENDIF OS2} {$ELSE} DLLStackName = 'ws2_32.dll'; {$ENDIF} {$ENDIF} DLLwship6 = 'wship6.dll'; cLocalhost = '127.0.0.1'; cAnyHost = '0.0.0.0'; cBroadcast = '255.255.255.255'; c6Localhost = '::1'; c6AnyHost = '::0'; c6Broadcast = 'ffff::1'; cAnyPort = '0'; const FD_SETSIZE = 64; type PFDSet = ^TFDSet; TFDSet = record fd_count: u_int; fd_array: array[0..FD_SETSIZE-1] of TSocket; end; const FIONREAD = $4004667f; FIONBIO = $8004667e; FIOASYNC = $8004667d; type PTimeVal = ^TTimeVal; TTimeVal = record tv_sec: Longint; tv_usec: Longint; end; const IPPROTO_IP = 0; { Dummy } IPPROTO_ICMP = 1; { Internet Control Message Protocol } IPPROTO_IGMP = 2; { Internet Group Management Protocol} IPPROTO_TCP = 6; { TCP } IPPROTO_UDP = 17; { User Datagram Protocol } IPPROTO_IPV6 = 41; IPPROTO_ICMPV6 = 58; IPPROTO_RM = 113; IPPROTO_RAW = 255; IPPROTO_MAX = 256; type PInAddr = ^TInAddr; TInAddr = record case integer of 0: (S_bytes: packed array [0..3] of byte); 1: (S_addr: u_long); end; PSockAddrIn = ^TSockAddrIn; TSockAddrIn = record case Integer of 0: (sin_family: u_short; sin_port: u_short; sin_addr: TInAddr; sin_zero: array[0..7] of byte); 1: (sa_family: u_short; sa_data: array[0..13] of byte) end; TIP_mreq = record imr_multiaddr: TInAddr; { IP multicast address of group } imr_interface: TInAddr; { local IP address of interface } end; PInAddr6 = ^TInAddr6; TInAddr6 = record case integer of 0: (S6_addr: packed array [0..15] of byte); 1: (u6_addr8: packed array [0..15] of byte); 2: (u6_addr16: packed array [0..7] of word); 3: (u6_addr32: packed array [0..3] of integer); end; PSockAddrIn6 = ^TSockAddrIn6; TSockAddrIn6 = record sin6_family: u_short; // AF_INET6 sin6_port: u_short; // Transport level port number sin6_flowinfo: u_long; // IPv6 flow information sin6_addr: TInAddr6; // IPv6 address sin6_scope_id: u_long; // Scope Id: IF number for link-local // SITE id for site-local end; TIPv6_mreq = record ipv6mr_multiaddr: TInAddr6; // IPv6 multicast address. ipv6mr_interface: integer; // Interface index. padding: integer; end; PHostEnt = ^THostEnt; THostEnt = record h_name: PAnsiChar; h_aliases: ^PAnsiChar; {$IFDEF PMWSOCK} h_addrtype: longint; h_length: longint; {$ELSE PMWSOCK} h_addrtype: Smallint; h_length: Smallint; {$ENDIF PMWSOCK} case integer of 0: (h_addr_list: ^PAnsiChar); 1: (h_addr: ^PInAddr); end; PNetEnt = ^TNetEnt; TNetEnt = record n_name: PAnsiChar; n_aliases: ^PAnsiChar; {$IFDEF PMWSOCK} n_addrtype: longint; {$ELSE PMWSOCK} n_addrtype: Smallint; {$ENDIF PMWSOCK} n_net: u_long; end; PServEnt = ^TServEnt; TServEnt = record s_name: PAnsiChar; s_aliases: ^PAnsiChar; {$ifdef WIN64} s_proto: PAnsiChar; s_port: Smallint; {$else} {$IFDEF PMWSOCK} s_port: longint; {$ELSE PMWSOCK} s_port: Smallint; {$ENDIF PMWSOCK} s_proto: PAnsiChar; {$endif} end; PProtoEnt = ^TProtoEnt; TProtoEnt = record p_name: PAnsiChar; p_aliases: ^PAnsichar; {$IFDEF PMWSOCK} p_proto: longint; {$ELSE PMWSOCK} p_proto: Smallint; {$ENDIF PMWSOCK} end; const INADDR_ANY = $00000000; INADDR_LOOPBACK = $7F000001; INADDR_BROADCAST = $FFFFFFFF; INADDR_NONE = $FFFFFFFF; ADDR_ANY = INADDR_ANY; INVALID_SOCKET = TSocket(NOT(0)); SOCKET_ERROR = -1; Const {$IFDEF WINSOCK1} IP_OPTIONS = 1; IP_MULTICAST_IF = 2; { set/get IP multicast interface } IP_MULTICAST_TTL = 3; { set/get IP multicast timetolive } IP_MULTICAST_LOOP = 4; { set/get IP multicast loopback } IP_ADD_MEMBERSHIP = 5; { add an IP group membership } IP_DROP_MEMBERSHIP = 6; { drop an IP group membership } IP_TTL = 7; { set/get IP Time To Live } IP_TOS = 8; { set/get IP Type Of Service } IP_DONTFRAGMENT = 9; { set/get IP Don't Fragment flag } {$ELSE} IP_OPTIONS = 1; IP_HDRINCL = 2; IP_TOS = 3; { set/get IP Type Of Service } IP_TTL = 4; { set/get IP Time To Live } IP_MULTICAST_IF = 9; { set/get IP multicast interface } IP_MULTICAST_TTL = 10; { set/get IP multicast timetolive } IP_MULTICAST_LOOP = 11; { set/get IP multicast loopback } IP_ADD_MEMBERSHIP = 12; { add an IP group membership } IP_DROP_MEMBERSHIP = 13; { drop an IP group membership } IP_DONTFRAGMENT = 14; { set/get IP Don't Fragment flag } {$ENDIF} IP_DEFAULT_MULTICAST_TTL = 1; { normally limit m'casts to 1 hop } IP_DEFAULT_MULTICAST_LOOP = 1; { normally hear sends if a member } IP_MAX_MEMBERSHIPS = 20; { per socket; must fit in one mbuf } SOL_SOCKET = $ffff; {options for socket level } { Option flags per-socket. } SO_DEBUG = $0001; { turn on debugging info recording } SO_ACCEPTCONN = $0002; { socket has had listen() } SO_REUSEADDR = $0004; { allow local address reuse } SO_KEEPALIVE = $0008; { keep connections alive } SO_DONTROUTE = $0010; { just use interface addresses } SO_BROADCAST = $0020; { permit sending of broadcast msgs } SO_USELOOPBACK = $0040; { bypass hardware when possible } SO_LINGER = $0080; { linger on close if data present } SO_OOBINLINE = $0100; { leave received OOB data in line } SO_DONTLINGER = $ff7f; { Additional options. } SO_SNDBUF = $1001; { send buffer size } SO_RCVBUF = $1002; { receive buffer size } SO_SNDLOWAT = $1003; { send low-water mark } SO_RCVLOWAT = $1004; { receive low-water mark } SO_SNDTIMEO = $1005; { send timeout } SO_RCVTIMEO = $1006; { receive timeout } SO_ERROR = $1007; { get error status and clear } SO_TYPE = $1008; { get socket type } { WinSock 2 extension -- new options } SO_GROUP_ID = $2001; { ID of a socket group} SO_GROUP_PRIORITY = $2002; { the relative priority within a group} SO_MAX_MSG_SIZE = $2003; { maximum message size } SO_PROTOCOL_INFOA = $2004; { WSAPROTOCOL_INFOA structure } SO_PROTOCOL_INFOW = $2005; { WSAPROTOCOL_INFOW structure } SO_PROTOCOL_INFO = SO_PROTOCOL_INFOA; PVD_CONFIG = $3001; {configuration info for service provider } { Option for opening sockets for synchronous access. } SO_OPENTYPE = $7008; SO_SYNCHRONOUS_ALERT = $10; SO_SYNCHRONOUS_NONALERT = $20; { Other NT-specific options. } SO_MAXDG = $7009; SO_MAXPATHDG = $700A; SO_UPDATE_ACCEPT_CONTEXT = $700B; SO_CONNECT_TIME = $700C; SOMAXCONN = $7fffffff; IPV6_UNICAST_HOPS = 8; // ??? IPV6_MULTICAST_IF = 9; // set/get IP multicast i/f IPV6_MULTICAST_HOPS = 10; // set/get IP multicast ttl IPV6_MULTICAST_LOOP = 11; // set/get IP multicast loopback IPV6_JOIN_GROUP = 12; // add an IP group membership IPV6_LEAVE_GROUP = 13; // drop an IP group membership MSG_NOSIGNAL = 0; // getnameinfo constants NI_MAXHOST = 1025; NI_MAXSERV = 32; NI_NOFQDN = $1; NI_NUMERICHOST = $2; NI_NAMEREQD = $4; NI_NUMERICSERV = $8; NI_DGRAM = $10; const SOCK_STREAM = 1; { stream socket } SOCK_DGRAM = 2; { datagram socket } SOCK_RAW = 3; { raw-protocol interface } SOCK_RDM = 4; { reliably-delivered message } SOCK_SEQPACKET = 5; { sequenced packet stream } { TCP options. } TCP_NODELAY = $0001; { Address families. } AF_UNSPEC = 0; { unspecified } AF_INET = 2; { internetwork: UDP, TCP, etc. } AF_INET6 = 23; { Internetwork Version 6 } AF_MAX = 24; { Protocol families, same as address families for now. } PF_UNSPEC = AF_UNSPEC; PF_INET = AF_INET; PF_INET6 = AF_INET6; PF_MAX = AF_MAX; type { Structure used by kernel to store most addresses. } PSockAddr = ^TSockAddr; TSockAddr = TSockAddrIn; { Structure used by kernel to pass protocol information in raw sockets. } PSockProto = ^TSockProto; TSockProto = record sp_family: u_short; sp_protocol: u_short; end; type PAddrInfo = ^TAddrInfo; TAddrInfo = record ai_flags: integer; // AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST. ai_family: integer; // PF_xxx. ai_socktype: integer; // SOCK_xxx. ai_protocol: integer; // 0 or IPPROTO_xxx for IPv4 and IPv6. ai_addrlen: u_int; // Length of ai_addr. ai_canonname: PAnsiChar; // Canonical name for nodename. ai_addr: PSockAddr; // Binary address. ai_next: PAddrInfo; // Next structure in linked list. end; const // Flags used in "hints" argument to getaddrinfo(). AI_PASSIVE = $1; // Socket address will be used in bind() call. AI_CANONNAME = $2; // Return canonical name in first ai_canonname. AI_NUMERICHOST = $4; // Nodename must be a numeric address string. type { Structure used for manipulating linger option. } PLinger = ^TLinger; TLinger = record {$IFDEF PMWSOCK} l_onoff: longint; l_linger: longint; {$ELSE PMWSOCK} l_onoff: u_short; l_linger: u_short; {$ENDIF PMWSOCK} end; const MSG_OOB = $01; // Process out-of-band data. MSG_PEEK = $02; // Peek at incoming messages. const { All Windows Sockets error constants are biased by WSABASEERR from the "normal" } WSABASEERR = 10000; { Windows Sockets definitions of regular Microsoft C error constants } WSAEINTR = (WSABASEERR+4); WSAEBADF = (WSABASEERR+9); WSAEACCES = (WSABASEERR+13); WSAEFAULT = (WSABASEERR+14); WSAEINVAL = (WSABASEERR+22); WSAEMFILE = (WSABASEERR+24); { Windows Sockets definitions of regular Berkeley error constants } WSAEWOULDBLOCK = (WSABASEERR+35); WSAEINPROGRESS = (WSABASEERR+36); WSAEALREADY = (WSABASEERR+37); WSAENOTSOCK = (WSABASEERR+38); WSAEDESTADDRREQ = (WSABASEERR+39); WSAEMSGSIZE = (WSABASEERR+40); WSAEPROTOTYPE = (WSABASEERR+41); WSAENOPROTOOPT = (WSABASEERR+42); WSAEPROTONOSUPPORT = (WSABASEERR+43); WSAESOCKTNOSUPPORT = (WSABASEERR+44); WSAEOPNOTSUPP = (WSABASEERR+45); WSAEPFNOSUPPORT = (WSABASEERR+46); WSAEAFNOSUPPORT = (WSABASEERR+47); WSAEADDRINUSE = (WSABASEERR+48); WSAEADDRNOTAVAIL = (WSABASEERR+49); WSAENETDOWN = (WSABASEERR+50); WSAENETUNREACH = (WSABASEERR+51); WSAENETRESET = (WSABASEERR+52); WSAECONNABORTED = (WSABASEERR+53); WSAECONNRESET = (WSABASEERR+54); WSAENOBUFS = (WSABASEERR+55); WSAEISCONN = (WSABASEERR+56); WSAENOTCONN = (WSABASEERR+57); WSAESHUTDOWN = (WSABASEERR+58); WSAETOOMANYREFS = (WSABASEERR+59); WSAETIMEDOUT = (WSABASEERR+60); WSAECONNREFUSED = (WSABASEERR+61); WSAELOOP = (WSABASEERR+62); WSAENAMETOOLONG = (WSABASEERR+63); WSAEHOSTDOWN = (WSABASEERR+64); WSAEHOSTUNREACH = (WSABASEERR+65); WSAENOTEMPTY = (WSABASEERR+66); WSAEPROCLIM = (WSABASEERR+67); WSAEUSERS = (WSABASEERR+68); WSAEDQUOT = (WSABASEERR+69); WSAESTALE = (WSABASEERR+70); WSAEREMOTE = (WSABASEERR+71); { Extended Windows Sockets error constant definitions } WSASYSNOTREADY = (WSABASEERR+91); WSAVERNOTSUPPORTED = (WSABASEERR+92); WSANOTINITIALISED = (WSABASEERR+93); WSAEDISCON = (WSABASEERR+101); WSAENOMORE = (WSABASEERR+102); WSAECANCELLED = (WSABASEERR+103); WSAEEINVALIDPROCTABLE = (WSABASEERR+104); WSAEINVALIDPROVIDER = (WSABASEERR+105); WSAEPROVIDERFAILEDINIT = (WSABASEERR+106); WSASYSCALLFAILURE = (WSABASEERR+107); WSASERVICE_NOT_FOUND = (WSABASEERR+108); WSATYPE_NOT_FOUND = (WSABASEERR+109); WSA_E_NO_MORE = (WSABASEERR+110); WSA_E_CANCELLED = (WSABASEERR+111); WSAEREFUSED = (WSABASEERR+112); { Error return codes from gethostbyname() and gethostbyaddr() (when using the resolver). Note that these errors are retrieved via WSAGetLastError() and must therefore follow the rules for avoiding clashes with error numbers from specific implementations or language run-time systems. For this reason the codes are based at WSABASEERR+1001. Note also that [WSA]NO_ADDRESS is defined only for compatibility purposes. } { Authoritative Answer: Host not found } WSAHOST_NOT_FOUND = (WSABASEERR+1001); HOST_NOT_FOUND = WSAHOST_NOT_FOUND; { Non-Authoritative: Host not found, or SERVERFAIL } WSATRY_AGAIN = (WSABASEERR+1002); TRY_AGAIN = WSATRY_AGAIN; { Non recoverable errors, FORMERR, REFUSED, NOTIMP } WSANO_RECOVERY = (WSABASEERR+1003); NO_RECOVERY = WSANO_RECOVERY; { Valid name, no data record of requested type } WSANO_DATA = (WSABASEERR+1004); NO_DATA = WSANO_DATA; { no address, look for MX record } WSANO_ADDRESS = WSANO_DATA; NO_ADDRESS = WSANO_ADDRESS; EWOULDBLOCK = WSAEWOULDBLOCK; EINPROGRESS = WSAEINPROGRESS; EALREADY = WSAEALREADY; ENOTSOCK = WSAENOTSOCK; EDESTADDRREQ = WSAEDESTADDRREQ; EMSGSIZE = WSAEMSGSIZE; EPROTOTYPE = WSAEPROTOTYPE; ENOPROTOOPT = WSAENOPROTOOPT; EPROTONOSUPPORT = WSAEPROTONOSUPPORT; ESOCKTNOSUPPORT = WSAESOCKTNOSUPPORT; EOPNOTSUPP = WSAEOPNOTSUPP; EPFNOSUPPORT = WSAEPFNOSUPPORT; EAFNOSUPPORT = WSAEAFNOSUPPORT; EADDRINUSE = WSAEADDRINUSE; EADDRNOTAVAIL = WSAEADDRNOTAVAIL; ENETDOWN = WSAENETDOWN; ENETUNREACH = WSAENETUNREACH; ENETRESET = WSAENETRESET; ECONNABORTED = WSAECONNABORTED; ECONNRESET = WSAECONNRESET; ENOBUFS = WSAENOBUFS; EISCONN = WSAEISCONN; ENOTCONN = WSAENOTCONN; ESHUTDOWN = WSAESHUTDOWN; ETOOMANYREFS = WSAETOOMANYREFS; ETIMEDOUT = WSAETIMEDOUT; ECONNREFUSED = WSAECONNREFUSED; ELOOP = WSAELOOP; ENAMETOOLONG = WSAENAMETOOLONG; EHOSTDOWN = WSAEHOSTDOWN; EHOSTUNREACH = WSAEHOSTUNREACH; ENOTEMPTY = WSAENOTEMPTY; EPROCLIM = WSAEPROCLIM; EUSERS = WSAEUSERS; EDQUOT = WSAEDQUOT; ESTALE = WSAESTALE; EREMOTE = WSAEREMOTE; EAI_ADDRFAMILY = 1; // Address family for nodename not supported. EAI_AGAIN = 2; // Temporary failure in name resolution. EAI_BADFLAGS = 3; // Invalid value for ai_flags. EAI_FAIL = 4; // Non-recoverable failure in name resolution. EAI_FAMILY = 5; // Address family ai_family not supported. EAI_MEMORY = 6; // Memory allocation failure. EAI_NODATA = 7; // No address associated with nodename. EAI_NONAME = 8; // Nodename nor servname provided, or not known. EAI_SERVICE = 9; // Servname not supported for ai_socktype. EAI_SOCKTYPE = 10; // Socket type ai_socktype not supported. EAI_SYSTEM = 11; // System error returned in errno. const WSADESCRIPTION_LEN = 256; WSASYS_STATUS_LEN = 128; type PWSAData = ^TWSAData; TWSAData = record wVersion: Word; wHighVersion: Word; {$ifdef win64} iMaxSockets : Word; iMaxUdpDg : Word; lpVendorInfo : PAnsiChar; szDescription : array[0..WSADESCRIPTION_LEN] of AnsiChar; szSystemStatus : array[0..WSASYS_STATUS_LEN] of AnsiChar; {$else} szDescription: array[0..WSADESCRIPTION_LEN] of AnsiChar; szSystemStatus: array[0..WSASYS_STATUS_LEN] of AnsiChar; iMaxSockets: Word; iMaxUdpDg: Word; lpVendorInfo: PAnsiChar; {$endif} end; function IN6_IS_ADDR_UNSPECIFIED(const a: PInAddr6): boolean; function IN6_IS_ADDR_LOOPBACK(const a: PInAddr6): boolean; function IN6_IS_ADDR_LINKLOCAL(const a: PInAddr6): boolean; function IN6_IS_ADDR_SITELOCAL(const a: PInAddr6): boolean; function IN6_IS_ADDR_MULTICAST(const a: PInAddr6): boolean; function IN6_ADDR_EQUAL(const a: PInAddr6; const b: PInAddr6):boolean; procedure SET_IN6_IF_ADDR_ANY (const a: PInAddr6); procedure SET_LOOPBACK_ADDR6 (const a: PInAddr6); var in6addr_any, in6addr_loopback : TInAddr6; procedure FD_CLR(Socket: TSocket; var FDSet: TFDSet); function FD_ISSET(Socket: TSocket; var FDSet: TFDSet): Boolean; procedure FD_SET(Socket: TSocket; var FDSet: TFDSet); procedure FD_ZERO(var FDSet: TFDSet); {=============================================================================} type TWSAStartup = function(wVersionRequired: Word; var WSData: TWSAData): Integer; extdecl; TWSACleanup = function: Integer; extdecl; TWSAGetLastError = function: Integer; extdecl; TGetServByName = function(name, proto: PAnsiChar): PServEnt; extdecl; TGetServByPort = function(port: Integer; proto: PAnsiChar): PServEnt; extdecl; TGetProtoByName = function(name: PAnsiChar): PProtoEnt; extdecl; TGetProtoByNumber = function(proto: Integer): PProtoEnt; extdecl; TGetHostByName = function(name: PAnsiChar): PHostEnt; extdecl; TGetHostByAddr = function(addr: Pointer; len, Struc: Integer): PHostEnt; extdecl; TGetHostName = function(name: PAnsiChar; len: Integer): Integer; extdecl; TShutdown = function(s: TSocket; how: Integer): Integer; extdecl; TSetSockOpt = function(s: TSocket; level, optname: Integer; optval: PAnsiChar; optlen: Integer): Integer; extdecl; TGetSockOpt = function(s: TSocket; level, optname: Integer; optval: PAnsiChar; var optlen: Integer): Integer; extdecl; TSendTo = function(s: TSocket; const Buf; len, flags: Integer; addrto: PSockAddr; tolen: Integer): Integer; extdecl; TSend = function(s: TSocket; const Buf; len, flags: Integer): Integer; extdecl; TRecv = function(s: TSocket; var Buf; len, flags: Integer): Integer; extdecl; TRecvFrom = function(s: TSocket; var Buf; len, flags: Integer; from: PSockAddr; var fromlen: Integer): Integer; extdecl; Tntohs = function(netshort: u_short): u_short; extdecl; Tntohl = function(netlong: u_long): u_long; extdecl; TListen = function(s: TSocket; backlog: Integer): Integer; extdecl; TIoctlSocket = function(s: TSocket; cmd: DWORD; var arg: Integer): Integer; extdecl; TInet_ntoa = function(inaddr: TInAddr): PAnsiChar; extdecl; TInet_addr = function(cp: PAnsiChar): u_long; extdecl; Thtons = function(hostshort: u_short): u_short; extdecl; Thtonl = function(hostlong: u_long): u_long; extdecl; TGetSockName = function(s: TSocket; name: PSockAddr; var namelen: Integer): Integer; extdecl; TGetPeerName = function(s: TSocket; name: PSockAddr; var namelen: Integer): Integer; extdecl; TConnect = function(s: TSocket; name: PSockAddr; namelen: Integer): Integer; extdecl; TCloseSocket = function(s: TSocket): Integer; extdecl; TBind = function(s: TSocket; addr: PSockAddr; namelen: Integer): Integer; extdecl; TAccept = function(s: TSocket; addr: PSockAddr; var addrlen: Integer): TSocket; extdecl; TTSocket = function(af, Struc, Protocol: Integer): TSocket; extdecl; TSelect = function(nfds: Integer; readfds, writefds, exceptfds: PFDSet; timeout: PTimeVal): Longint; extdecl; TGetAddrInfo = function(NodeName: PAnsiChar; ServName: PAnsiChar; Hints: PAddrInfo; var Addrinfo: PAddrInfo): integer; extdecl; TFreeAddrInfo = procedure(ai: PAddrInfo); extdecl; TGetNameInfo = function( addr: PSockAddr; namelen: Integer; host: PAnsiChar; hostlen: DWORD; serv: PAnsiChar; servlen: DWORD; flags: integer): integer; extdecl; T__WSAFDIsSet = function (s: TSocket; var FDSet: TFDSet): Bool; extdecl; TWSAIoctl = function (s: TSocket; dwIoControlCode: DWORD; lpvInBuffer: Pointer; cbInBuffer: DWORD; lpvOutBuffer: Pointer; cbOutBuffer: DWORD; lpcbBytesReturned: PDWORD; lpOverlapped: Pointer; lpCompletionRoutine: pointer): u_int; extdecl; var WSAStartup: TWSAStartup = nil; WSACleanup: TWSACleanup = nil; WSAGetLastError: TWSAGetLastError = nil; GetServByName: TGetServByName = nil; GetServByPort: TGetServByPort = nil; GetProtoByName: TGetProtoByName = nil; GetProtoByNumber: TGetProtoByNumber = nil; GetHostByName: TGetHostByName = nil; GetHostByAddr: TGetHostByAddr = nil; ssGetHostName: TGetHostName = nil; {$IFDEF OS2} ssShutdown: TShutdown = nil; ssSetSockOpt: TSetSockOpt = nil; ssGetSockOpt: TGetSockOpt = nil; {$ELSE OS2} Shutdown: TShutdown = nil; SetSockOpt: TSetSockOpt = nil; GetSockOpt: TGetSockOpt = nil; {$ENDIF OS2} ssSendTo: TSendTo = nil; ssSend: TSend = nil; ssRecv: TRecv = nil; ssRecvFrom: TRecvFrom = nil; ntohs: Tntohs = nil; ntohl: Tntohl = nil; {$IFDEF OS2} ssListen: TListen = nil; ssIoctlSocket: TIoctlSocket = nil; {$ELSE OS2} Listen: TListen = nil; IoctlSocket: TIoctlSocket = nil; {$ENDIF OS2} Inet_ntoa: TInet_ntoa = nil; Inet_addr: TInet_addr = nil; htons: Thtons = nil; htonl: Thtonl = nil; ssGetSockName: TGetSockName = nil; ssGetPeerName: TGetPeerName = nil; ssConnect: TConnect = nil; {$IFDEF OS2} ssCloseSocket: TCloseSocket = nil; {$ELSE OS2} CloseSocket: TCloseSocket = nil; {$ENDIF OS2} ssBind: TBind = nil; ssAccept: TAccept = nil; {$IFDEF OS2} ssSocket: TTSocket = nil; {$ELSE OS2} Socket: TTSocket = nil; {$ENDIF OS2} Select: TSelect = nil; GetAddrInfo: TGetAddrInfo = nil; FreeAddrInfo: TFreeAddrInfo = nil; GetNameInfo: TGetNameInfo = nil; {$IFDEF OS2} ss__WSAFDIsSet: T__WSAFDIsSet = nil; ssWSAIoctl: TWSAIoctl = nil; {$ELSE OS2} __WSAFDIsSet: T__WSAFDIsSet = nil; WSAIoctl: TWSAIoctl = nil; {$ENDIF OS2} var SynSockCS: SyncObjs.TCriticalSection; SockEnhancedApi: Boolean; SockWship6Api: Boolean; type TVarSin = packed record case integer of 0: (AddressFamily: u_short); 1: ( case sin_family: u_short of AF_INET: (sin_port: u_short; sin_addr: TInAddr; sin_zero: array[0..7] of byte); AF_INET6: (sin6_port: u_short; sin6_flowinfo: u_long; sin6_addr: TInAddr6; sin6_scope_id: u_long); ); end; function SizeOfVarSin(sin: TVarSin): integer; function Bind(s: TSocket; const addr: TVarSin): Integer; function Connect(s: TSocket; const name: TVarSin): Integer; function GetSockName(s: TSocket; var name: TVarSin): Integer; function GetPeerName(s: TSocket; var name: TVarSin): Integer; function GetHostName: AnsiString; function Send(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; function Recv(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; function SendTo(s: TSocket; Buf: TMemory; len, flags: Integer; addrto: TVarSin): Integer; function RecvFrom(s: TSocket; Buf: TMemory; len, flags: Integer; var from: TVarSin): Integer; function Accept(s: TSocket; var addr: TVarSin): TSocket; function IsNewApi(Family: integer): Boolean; function SetVarSin(var Sin: TVarSin; IP, Port: AnsiString; Family, SockProtocol, SockType: integer; PreferIP4: Boolean): integer; function GetSinIP(Sin: TVarSin): AnsiString; function GetSinPort(Sin: TVarSin): Integer; procedure ResolveNameToIP(Name: AnsiString; Family, SockProtocol, SockType: integer; const IPList: TStrings); function ResolveIPToName(IP: AnsiString; Family, SockProtocol, SockType: integer): AnsiString; function ResolvePort(Port: AnsiString; Family, SockProtocol, SockType: integer): Word; {$IFDEF OS2} function Socket (af, Struc, Protocol: Integer): TSocket; function Shutdown (s: TSocket; how: Integer): Integer; function SetSockOpt (s: TSocket; level, optname: Integer; optval: PAnsiChar; optlen: Integer): Integer; function GetSockOpt (s: TSocket; level, optname: Integer; optval: PAnsiChar; var optlen: Integer): Integer; function Listen (s: TSocket; backlog: Integer): Integer; function IoctlSocket (s: TSocket; cmd: DWORD; var arg: Integer): Integer; function CloseSocket (s: TSocket): Integer; function __WSAFDIsSet (s: TSocket; var FDSet: TFDSet): Bool; function WSAIoctl (s: TSocket; dwIoControlCode: DWORD; lpvInBuffer: Pointer; cbInBuffer: DWORD; lpvOutBuffer: Pointer; cbOutBuffer: DWORD; lpcbBytesReturned: PDWORD; lpOverlapped: Pointer; lpCompletionRoutine: pointer): u_int; {$ENDIF OS2} {==============================================================================} implementation var SynSockCount: Integer = 0; LibHandle: THandle = 0; Libwship6Handle: THandle = 0; function IN6_IS_ADDR_UNSPECIFIED(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr32[0] = 0) and (a^.u6_addr32[1] = 0) and (a^.u6_addr32[2] = 0) and (a^.u6_addr32[3] = 0)); end; function IN6_IS_ADDR_LOOPBACK(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr32[0] = 0) and (a^.u6_addr32[1] = 0) and (a^.u6_addr32[2] = 0) and (a^.u6_addr8[12] = 0) and (a^.u6_addr8[13] = 0) and (a^.u6_addr8[14] = 0) and (a^.u6_addr8[15] = 1)); end; function IN6_IS_ADDR_LINKLOCAL(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr8[0] = $FE) and (a^.u6_addr8[1] = $80)); end; function IN6_IS_ADDR_SITELOCAL(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr8[0] = $FE) and (a^.u6_addr8[1] = $C0)); end; function IN6_IS_ADDR_MULTICAST(const a: PInAddr6): boolean; begin Result := (a^.u6_addr8[0] = $FF); end; function IN6_ADDR_EQUAL(const a: PInAddr6; const b: PInAddr6): boolean; begin Result := (CompareMem( a, b, sizeof(TInAddr6))); end; procedure SET_IN6_IF_ADDR_ANY (const a: PInAddr6); begin FillChar(a^, sizeof(TInAddr6), 0); end; procedure SET_LOOPBACK_ADDR6 (const a: PInAddr6); begin FillChar(a^, sizeof(TInAddr6), 0); a^.u6_addr8[15] := 1; end; {=============================================================================} procedure FD_CLR(Socket: TSocket; var FDSet: TFDSet); var I: Integer; begin {$IFDEF OS2} Socket := TSocket (NativeSocket (cInt (Socket))); {$ENDIF OS2} I := 0; while I < FDSet.fd_count do begin if FDSet.fd_array[I] = Socket then begin while I < FDSet.fd_count - 1 do begin FDSet.fd_array[I] := FDSet.fd_array[I + 1]; Inc(I); end; Dec(FDSet.fd_count); Break; end; Inc(I); end; end; function FD_ISSET(Socket: TSocket; var FDSet: TFDSet): Boolean; begin {$IFDEF OS2} Socket := TSocket (NativeSocket (cInt (Socket))); {$ENDIF OS2} Result := __WSAFDIsSet(Socket, FDSet) {$IFDEF OS2} <> 0 {$ENDIF OS2} ; end; procedure FD_SET(Socket: TSocket; var FDSet: TFDSet); begin {$IFDEF OS2} Socket := TSocket (NativeSocket (cInt (Socket))); {$ENDIF OS2} if FDSet.fd_count < FD_SETSIZE then begin FDSet.fd_array[FDSet.fd_count] := Socket; Inc(FDSet.fd_count); end; end; procedure FD_ZERO(var FDSet: TFDSet); begin FDSet.fd_count := 0; end; {=============================================================================} function SizeOfVarSin(sin: TVarSin): integer; begin case sin.sin_family of AF_INET: Result := SizeOf(TSockAddrIn); AF_INET6: Result := SizeOf(TSockAddrIn6); else Result := 0; end; end; {=============================================================================} function Bind(s: TSocket; const addr: TVarSin): Integer; begin {$IFDEF OS2} S := TSocket (NativeSocket (cInt (S))); {$ENDIF OS2} Result := ssBind(s, @addr, SizeOfVarSin(addr)); end; function Connect(s: TSocket; const name: TVarSin): Integer; begin {$IFDEF OS2} S := TSocket (NativeSocket (cInt (S))); {$ENDIF OS2} Result := ssConnect(s, @name, SizeOfVarSin(name)); end; function GetSockName(s: TSocket; var name: TVarSin): Integer; var len: integer; begin {$IFDEF OS2} S := TSocket (NativeSocket (cInt (S))); {$ENDIF OS2} len := SizeOf(name); FillChar(name, len, 0); Result := ssGetSockName(s, @name, Len); end; function GetPeerName(s: TSocket; var name: TVarSin): Integer; var len: integer; begin {$IFDEF OS2} S := TSocket (NativeSocket (cInt (S))); {$ENDIF OS2} len := SizeOf(name); FillChar(name, len, 0); Result := ssGetPeerName(s, @name, Len); end; function GetHostName: AnsiString; var s: AnsiString; begin Result := ''; setlength(s, 255); ssGetHostName(pAnsichar(s), Length(s) - 1); Result := PAnsichar(s); end; function Send(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; begin {$IFDEF OS2} S := TSocket (NativeSocket (cInt (S))); {$ENDIF OS2} Result := ssSend(s, Buf^, len, flags); end; function Recv(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; begin {$IFDEF OS2} S := TSocket (NativeSocket (cInt (S))); {$ENDIF OS2} Result := ssRecv(s, Buf^, len, flags); end; function SendTo(s: TSocket; Buf: TMemory; len, flags: Integer; addrto: TVarSin): Integer; begin {$IFDEF OS2} S := TSocket (NativeSocket (cInt (S))); {$ENDIF OS2} Result := ssSendTo(s, Buf^, len, flags, @addrto, SizeOfVarSin(addrto)); end; function RecvFrom(s: TSocket; Buf: TMemory; len, flags: Integer; var from: TVarSin): Integer; var x: integer; begin {$IFDEF OS2} S := TSocket (NativeSocket (cInt (S))); {$ENDIF OS2} x := SizeOf(from); Result := ssRecvFrom(s, Buf^, len, flags, @from, x); end; function Accept(s: TSocket; var addr: TVarSin): TSocket; var x: integer; begin {$IFDEF OS2} S := TSocket (NativeSocket (cInt (S))); {$ENDIF OS2} x := SizeOf(addr); {$IFDEF OS2} Result := TSocket (EMXSocket (cInt (ssAccept (S, @Addr, X)))); {$ELSE OS2} Result := ssAccept(s, @addr, x); {$ENDIF OS2} end; {$IFDEF OS2} function Shutdown (s: TSocket; how: Integer): Integer; begin S := TSocket (NativeSocket (cInt (S))); Shutdown := ssShutdown (s, how); end; function Socket (af, Struc, Protocol: Integer): TSocket; begin Socket := TSocket (EMXSocket (cInt (ssSocket (af, Struc, Protocol)))); end; function SetSockOpt (s: TSocket; level, optname: Integer; optval: PAnsiChar; optlen: Integer): Integer; begin S := TSocket (NativeSocket (cInt (S))); SetSockOpt := ssSetSockOpt (S, Level, OptName, OptVal, OptLen); end; function GetSockOpt (s: TSocket; level, optname: Integer; optval: PAnsiChar; var optlen: Integer): Integer; begin S := TSocket (NativeSocket (cInt (S))); GetSockOpt := ssGetSockOpt (S, Level, OptName, OptVal, OptLen); end; function Listen (s: TSocket; backlog: Integer): Integer; begin S := TSocket (NativeSocket (cInt (S))); Listen := ssListen (S, BackLog); end; function IoctlSocket (s: TSocket; cmd: DWORD; var arg: Integer): Integer; begin S := TSocket (NativeSocket (cInt (S))); IOCtlSocket := ssIOCtlSocket (S, Cmd, Arg); end; function CloseSocket (s: TSocket): Integer; begin S := TSocket (NativeSocket (cInt (S))); CloseSocket := ssCloseSocket (S); end; function __WSAFDIsSet (s: TSocket; var FDSet: TFDSet): Bool; begin S := TSocket (NativeSocket (cInt (S))); __WSAFDIsSet := ss__WSAFDIsSet (S, FDSet); end; function WSAIoctl (s: TSocket; dwIoControlCode: DWORD; lpvInBuffer: Pointer; cbInBuffer: DWORD; lpvOutBuffer: Pointer; cbOutBuffer: DWORD; lpcbBytesReturned: PDWORD; lpOverlapped: Pointer; lpCompletionRoutine: pointer): u_int; begin S := TSocket (NativeSocket (cInt (S))); WSAIOCtl := ssWSAIOCtl (S, dwIoControlCode, lpvInBuffer, cbInBuffer, lpvOutBuffer, cbOutBuffer, lpcbBytesReturned, lpOverlapped, lpCompletionRoutine); end; {$ENDIF OS2} {=============================================================================} function IsNewApi(Family: integer): Boolean; begin Result := SockEnhancedApi; if not Result then Result := (Family = AF_INET6) and SockWship6Api; end; function SetVarSin(var Sin: TVarSin; IP, Port: AnsiString; Family, SockProtocol, SockType: integer; PreferIP4: Boolean): integer; type pu_long = ^u_long; var ProtoEnt: PProtoEnt; ServEnt: PServEnt; HostEnt: PHostEnt; r: integer; Hints1, Hints2: TAddrInfo; Sin1, Sin2: TVarSin; TwoPass: boolean; function GetAddr(const IP, port: AnsiString; Hints: TAddrInfo; var Sin: TVarSin): integer; var Addr: PAddrInfo; begin Addr := nil; try FillChar(Sin, Sizeof(Sin), 0); if Hints.ai_socktype = SOCK_RAW then begin Hints.ai_socktype := 0; Hints.ai_protocol := 0; Result := synsock.GetAddrInfo(PAnsiChar(IP), nil, @Hints, Addr); end else begin if (IP = cAnyHost) or (IP = c6AnyHost) then begin Hints.ai_flags := AI_PASSIVE; Result := synsock.GetAddrInfo(nil, PAnsiChar(Port), @Hints, Addr); end else if (IP = cLocalhost) or (IP = c6Localhost) then begin Result := synsock.GetAddrInfo(nil, PAnsiChar(Port), @Hints, Addr); end else begin Result := synsock.GetAddrInfo(PAnsiChar(IP), PAnsiChar(Port), @Hints, Addr); end; end; if Result = 0 then if (Addr <> nil) then Move(Addr^.ai_addr^, Sin, Addr^.ai_addrlen); finally if Assigned(Addr) then synsock.FreeAddrInfo(Addr); end; end; begin Result := 0; FillChar(Sin, Sizeof(Sin), 0); if not IsNewApi(family) then begin SynSockCS.Enter; try Sin.sin_family := AF_INET; ProtoEnt := synsock.GetProtoByNumber(SockProtocol); ServEnt := nil; if (ProtoEnt <> nil) and (StrToIntDef(string(Port),-1) =-1) then ServEnt := synsock.GetServByName(PAnsiChar(Port), ProtoEnt^.p_name); if ServEnt = nil then Sin.sin_port := synsock.htons(StrToIntDef(string(Port), 0)) else Sin.sin_port := ServEnt^.s_port; if IP = cBroadcast then Sin.sin_addr.s_addr := u_long(INADDR_BROADCAST) else begin Sin.sin_addr.s_addr := synsock.inet_addr(PAnsiChar(IP)); if Sin.sin_addr.s_addr = u_long(INADDR_NONE) then begin HostEnt := synsock.GetHostByName(PAnsiChar(IP)); Result := synsock.WSAGetLastError; if HostEnt <> nil then Sin.sin_addr.S_addr := u_long(Pu_long(HostEnt^.h_addr_list^)^); end; end; finally SynSockCS.Leave; end; end else begin FillChar(Hints1, Sizeof(Hints1), 0); FillChar(Hints2, Sizeof(Hints2), 0); TwoPass := False; if Family = AF_UNSPEC then begin if PreferIP4 then begin Hints1.ai_family := AF_INET; Hints2.ai_family := AF_INET6; TwoPass := True; end else begin Hints2.ai_family := AF_INET; Hints1.ai_family := AF_INET6; TwoPass := True; end; end else Hints1.ai_family := Family; Hints1.ai_socktype := SockType; Hints1.ai_protocol := SockProtocol; Hints2.ai_socktype := Hints1.ai_socktype; Hints2.ai_protocol := Hints1.ai_protocol; r := GetAddr(IP, Port, Hints1, Sin1); Result := r; sin := sin1; if r <> 0 then if TwoPass then begin r := GetAddr(IP, Port, Hints2, Sin2); Result := r; if r = 0 then sin := sin2; end; end; end; function GetSinIP(Sin: TVarSin): AnsiString; var p: PAnsiChar; host, serv: AnsiString; hostlen, servlen: integer; r: integer; begin Result := ''; if not IsNewApi(Sin.AddressFamily) then begin p := synsock.inet_ntoa(Sin.sin_addr); if p <> nil then Result := p; end else begin hostlen := NI_MAXHOST; servlen := NI_MAXSERV; setlength(host, hostlen); setlength(serv, servlen); r := getnameinfo(@sin, SizeOfVarSin(sin), PAnsiChar(host), hostlen, PAnsiChar(serv), servlen, NI_NUMERICHOST + NI_NUMERICSERV); if r = 0 then Result := PAnsiChar(host); end; end; function GetSinPort(Sin: TVarSin): Integer; begin if (Sin.sin_family = AF_INET6) then Result := synsock.ntohs(Sin.sin6_port) else Result := synsock.ntohs(Sin.sin_port); end; procedure ResolveNameToIP(Name: AnsiString; Family, SockProtocol, SockType: integer; const IPList: TStrings); type TaPInAddr = array[0..250] of PInAddr; PaPInAddr = ^TaPInAddr; var Hints: TAddrInfo; Addr: PAddrInfo; AddrNext: PAddrInfo; r: integer; host, serv: AnsiString; hostlen, servlen: integer; RemoteHost: PHostEnt; IP: u_long; PAdrPtr: PaPInAddr; i: Integer; s: String; InAddr: TInAddr; begin IPList.Clear; if not IsNewApi(Family) then begin IP := synsock.inet_addr(PAnsiChar(Name)); if IP = u_long(INADDR_NONE) then begin SynSockCS.Enter; try RemoteHost := synsock.GetHostByName(PAnsiChar(Name)); if RemoteHost <> nil then begin PAdrPtr := PAPInAddr(RemoteHost^.h_addr_list); i := 0; while PAdrPtr^[i] <> nil do begin InAddr := PAdrPtr^[i]^; s := Format('%d.%d.%d.%d', [InAddr.S_bytes[0], InAddr.S_bytes[1], InAddr.S_bytes[2], InAddr.S_bytes[3]]); IPList.Add(s); Inc(i); end; end; finally SynSockCS.Leave; end; end else IPList.Add(string(Name)); end else begin Addr := nil; try FillChar(Hints, Sizeof(Hints), 0); Hints.ai_family := AF_UNSPEC; Hints.ai_socktype := SockType; Hints.ai_protocol := SockProtocol; Hints.ai_flags := 0; r := synsock.GetAddrInfo(PAnsiChar(Name), nil, @Hints, Addr); if r = 0 then begin AddrNext := Addr; while not(AddrNext = nil) do begin if not(((Family = AF_INET6) and (AddrNext^.ai_family = AF_INET)) or ((Family = AF_INET) and (AddrNext^.ai_family = AF_INET6))) then begin hostlen := NI_MAXHOST; servlen := NI_MAXSERV; setlength(host, hostlen); setlength(serv, servlen); r := getnameinfo(AddrNext^.ai_addr, AddrNext^.ai_addrlen, PAnsiChar(host), hostlen, PAnsiChar(serv), servlen, NI_NUMERICHOST + NI_NUMERICSERV); if r = 0 then begin host := PAnsiChar(host); IPList.Add(string(host)); end; end; AddrNext := AddrNext^.ai_next; end; end; finally if Assigned(Addr) then synsock.FreeAddrInfo(Addr); end; end; if IPList.Count = 0 then IPList.Add(cAnyHost); end; function ResolvePort(Port: AnsiString; Family, SockProtocol, SockType: integer): Word; var ProtoEnt: PProtoEnt; ServEnt: PServEnt; Hints: TAddrInfo; Addr: PAddrInfo; r: integer; begin Result := 0; if not IsNewApi(Family) then begin SynSockCS.Enter; try ProtoEnt := synsock.GetProtoByNumber(SockProtocol); ServEnt := nil; if ProtoEnt <> nil then ServEnt := synsock.GetServByName(PAnsiChar(Port), ProtoEnt^.p_name); if ServEnt = nil then Result := StrToIntDef(string(Port), 0) else Result := synsock.htons(ServEnt^.s_port); finally SynSockCS.Leave; end; end else begin Addr := nil; try FillChar(Hints, Sizeof(Hints), 0); Hints.ai_family := AF_UNSPEC; Hints.ai_socktype := SockType; Hints.ai_protocol := Sockprotocol; Hints.ai_flags := AI_PASSIVE; r := synsock.GetAddrInfo(nil, PAnsiChar(Port), @Hints, Addr); if (r = 0) and Assigned(Addr) then begin if Addr^.ai_family = AF_INET then Result := synsock.htons(Addr^.ai_addr^.sin_port); if Addr^.ai_family = AF_INET6 then Result := synsock.htons(PSockAddrIn6(Addr^.ai_addr)^.sin6_port); end; finally if Assigned(Addr) then synsock.FreeAddrInfo(Addr); end; end; end; function ResolveIPToName(IP: AnsiString; Family, SockProtocol, SockType: integer): AnsiString; var Hints: TAddrInfo; Addr: PAddrInfo; r: integer; host, serv: AnsiString; hostlen, servlen: integer; RemoteHost: PHostEnt; IPn: u_long; begin Result := IP; if not IsNewApi(Family) then begin IPn := synsock.inet_addr(PAnsiChar(IP)); if IPn <> u_long(INADDR_NONE) then begin SynSockCS.Enter; try RemoteHost := GetHostByAddr(@IPn, SizeOf(IPn), AF_INET); if RemoteHost <> nil then Result := RemoteHost^.h_name; finally SynSockCS.Leave; end; end; end else begin Addr := nil; try FillChar(Hints, Sizeof(Hints), 0); Hints.ai_family := AF_UNSPEC; Hints.ai_socktype := SockType; Hints.ai_protocol := SockProtocol; Hints.ai_flags := 0; r := synsock.GetAddrInfo(PAnsiChar(IP), nil, @Hints, Addr); if (r = 0) and Assigned(Addr)then begin hostlen := NI_MAXHOST; servlen := NI_MAXSERV; setlength(host, hostlen); setlength(serv, servlen); r := getnameinfo(Addr^.ai_addr, Addr^.ai_addrlen, PAnsiChar(host), hostlen, PAnsiChar(serv), servlen, NI_NUMERICSERV); if r = 0 then Result := PAnsiChar(host); end; finally if Assigned(Addr) then synsock.FreeAddrInfo(Addr); end; end; end; {=============================================================================} function InitSocketInterface(stack: String): Boolean; begin Result := False; if stack = '' then stack := DLLStackName; SynSockCS.Enter; try if SynSockCount = 0 then begin SockEnhancedApi := False; SockWship6Api := False; LibHandle := LoadLibrary(PChar(Stack)); if LibHandle <> 0 then begin {$IFDEF OS2} ssWSAIoctl := GetProcAddress(LibHandle, PAnsiChar(AnsiString('WSAIoctl'))); ss__WSAFDIsSet := GetProcAddress(LibHandle, PAnsiChar(AnsiString('__WSAFDIsSet'))); ssCloseSocket := GetProcAddress(LibHandle, PAnsiChar(AnsiString('closesocket'))); ssIoctlSocket := GetProcAddress(LibHandle, PAnsiChar(AnsiString('ioctlsocket'))); {$ELSE OS2} WSAIoctl := GetProcAddress(LibHandle, PAnsiChar(AnsiString('WSAIoctl'))); __WSAFDIsSet := GetProcAddress(LibHandle, PAnsiChar(AnsiString('__WSAFDIsSet'))); CloseSocket := GetProcAddress(LibHandle, PAnsiChar(AnsiString('closesocket'))); IoctlSocket := GetProcAddress(LibHandle, PAnsiChar(AnsiString('ioctlsocket'))); {$ENDIF OS2} WSAGetLastError := GetProcAddress(LibHandle, PAnsiChar(AnsiString('WSAGetLastError'))); WSAStartup := GetProcAddress(LibHandle, PAnsiChar(AnsiString('WSAStartup'))); WSACleanup := GetProcAddress(LibHandle, PAnsiChar(AnsiString('WSACleanup'))); ssAccept := GetProcAddress(LibHandle, PAnsiChar(AnsiString('accept'))); ssBind := GetProcAddress(LibHandle, PAnsiChar(AnsiString('bind'))); ssConnect := GetProcAddress(LibHandle, PAnsiChar(AnsiString('connect'))); ssGetPeerName := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getpeername'))); ssGetSockName := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getsockname'))); {$IFDEF OS2} ssGetSockOpt := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getsockopt'))); {$ELSE OS2} GetSockOpt := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getsockopt'))); {$ENDIF OS2} Htonl := GetProcAddress(LibHandle, PAnsiChar(AnsiString('htonl'))); Htons := GetProcAddress(LibHandle, PAnsiChar(AnsiString('htons'))); Inet_Addr := GetProcAddress(LibHandle, PAnsiChar(AnsiString('inet_addr'))); Inet_Ntoa := GetProcAddress(LibHandle, PAnsiChar(AnsiString('inet_ntoa'))); {$IFDEF OS2} ssListen := GetProcAddress(LibHandle, PAnsiChar(AnsiString('listen'))); {$ELSE OS2} Listen := GetProcAddress(LibHandle, PAnsiChar(AnsiString('listen'))); {$ENDIF OS2} Ntohl := GetProcAddress(LibHandle, PAnsiChar(AnsiString('ntohl'))); Ntohs := GetProcAddress(LibHandle, PAnsiChar(AnsiString('ntohs'))); ssRecv := GetProcAddress(LibHandle, PAnsiChar(AnsiString('recv'))); ssRecvFrom := GetProcAddress(LibHandle, PAnsiChar(AnsiString('recvfrom'))); Select := GetProcAddress(LibHandle, PAnsiChar(AnsiString('select'))); ssSend := GetProcAddress(LibHandle, PAnsiChar(AnsiString('send'))); ssSendTo := GetProcAddress(LibHandle, PAnsiChar(AnsiString('sendto'))); {$IFDEF OS2} ssSetSockOpt := GetProcAddress(LibHandle, PAnsiChar(AnsiString('setsockopt'))); ssShutDown := GetProcAddress(LibHandle, PAnsiChar(AnsiString('shutdown'))); ssSocket := GetProcAddress(LibHandle, PAnsiChar(AnsiString('socket'))); {$ELSE OS2} SetSockOpt := GetProcAddress(LibHandle, PAnsiChar(AnsiString('setsockopt'))); ShutDown := GetProcAddress(LibHandle, PAnsiChar(AnsiString('shutdown'))); Socket := GetProcAddress(LibHandle, PAnsiChar(AnsiString('socket'))); {$ENDIF OS2} GetHostByAddr := GetProcAddress(LibHandle, PAnsiChar(AnsiString('gethostbyaddr'))); GetHostByName := GetProcAddress(LibHandle, PAnsiChar(AnsiString('gethostbyname'))); GetProtoByName := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getprotobyname'))); GetProtoByNumber := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getprotobynumber'))); GetServByName := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getservbyname'))); GetServByPort := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getservbyport'))); ssGetHostName := GetProcAddress(LibHandle, PAnsiChar(AnsiString('gethostname'))); {$IFNDEF FORCEOLDAPI} GetAddrInfo := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getaddrinfo'))); FreeAddrInfo := GetProcAddress(LibHandle, PAnsiChar(AnsiString('freeaddrinfo'))); GetNameInfo := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getnameinfo'))); SockEnhancedApi := Assigned(GetAddrInfo) and Assigned(FreeAddrInfo) and Assigned(GetNameInfo); if not SockEnhancedApi then begin LibWship6Handle := LoadLibrary(PChar(DLLWship6)); if LibWship6Handle <> 0 then begin GetAddrInfo := GetProcAddress(LibWship6Handle, PAnsiChar(AnsiString('getaddrinfo'))); FreeAddrInfo := GetProcAddress(LibWship6Handle, PAnsiChar(AnsiString('freeaddrinfo'))); GetNameInfo := GetProcAddress(LibWship6Handle, PAnsiChar(AnsiString('getnameinfo'))); SockWship6Api := Assigned(GetAddrInfo) and Assigned(FreeAddrInfo) and Assigned(GetNameInfo); end; end; {$ENDIF} Result := True; end; end else Result := True; if Result then Inc(SynSockCount); finally SynSockCS.Leave; end; end; function DestroySocketInterface: Boolean; begin SynSockCS.Enter; try Dec(SynSockCount); if SynSockCount < 0 then SynSockCount := 0; if SynSockCount = 0 then begin if LibHandle <> 0 then begin FreeLibrary(libHandle); LibHandle := 0; end; if LibWship6Handle <> 0 then begin FreeLibrary(LibWship6Handle); LibWship6Handle := 0; end; end; finally SynSockCS.Leave; end; Result := True; end; initialization begin SynSockCS := SyncObjs.TCriticalSection.Create; SET_IN6_IF_ADDR_ANY (@in6addr_any); SET_LOOPBACK_ADDR6 (@in6addr_loopback); end; finalization begin SynSockCS.Free; end;����������������������������������������������������������������������������������������������������������������������./locks.png�����������������������������������������������������������������������������������������0000644�0001750�0001750�00000036417�14576573022�013004� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR��3�� ������sBIT|d��� pHYs��\F��\FCA���tEXtSoftware�www.inkscape.org<�� �IDATxyeeadPBZZAnlQ"Clb7W (CWP&@nD#*$ƫ*DEcL8b" hЍ2F`:Uo}>j5¢}.@_RJ IK$}=z?^d8~'I~_~{\$7Ux��QJ)Id$OL$[WsndӇ-&-}]C˦+l =I`xWΖa��<Ry±_diHv&di˘AgR6K{ǂ Y ӆ|^&zs*�RJ.ӓ,΃NjǶZILZcc3GDYIO4-&$g'zkٴ�GJ) 28|VeIm41g&9zoN fRI~3ȳ<5;^<glHZms�� g%4h.LZMC`3h Ƌ38x_v]<n6�`(쐟a7!0LRʒ$${&ӶN$`Xݸ�`ڌ I~'o'پmѴ7aOf`ʕROII9$Jo� cG]9狒lٶ7Z:1)QJyL$98~IJ"\cI>Vk]:�`Ʈ=$7϶k3<0U M)QI$-|''9ӣ_.{tϮ]8g~ŵ{ZT0f0)Y\wp\Ukk?Zn�KJ)[fpyH矮}d蝹I 6H)e^#"IO$9zi�R3I6n5k<zI6c2L?KrhLkIC�2v3'9.3t݅IQk]:ɘR& ٍs^$$\`��S2;K1ɮs5S[G03J)f0bԺHrbZW�cFepmkz'a2fJ)e}ٺ$Z뽭c�*l'ym5k:ŘƞL .{ZfJ$[kQ�;J)$$٪qΨ8zzYh2rpUI>CM&ֱǥ�<RʯRޕI"0Lqg'yw[ۓjk��3H)e$ 猪j ZG3FT)e$J-Ί$Z:�h >-dZͭ#`|dĔR6*y)1d0&9rF)e1�@J)K2f 77#d %%y{$^)9c�QJ٤$M;{xŭ`X#C)埒|)έ{)gK�X)I.OI8_vg�cFRUJySa=%ɿR>9v�GJ) J)_NOIvhûu� 1J)`8!&mk/I祔c�H;Lr`a4)l$/k$Z/i�L\)e$IqݱG0 R~<ӐA䂱1�Rf}1dt+3 Wf@)eVFKRCk�0cIٺ i0 ƌ+<>ʲ-0I?LrHZ��$˓<u Z떭#`X|̤J)} I*2u �0PJٸrj!>:�ɕTJ8;u Lo&ZC�`R%93{]mZWaqeFǔR&2}\RJ!�0J)G$N }p!1ftH) (Om1IRʣZ�(lQJD%ٴuCqj�63週>\etH?k׶>+,;nahnHcuM&WfpmCmi(<u�U)ܷʐ/7dG̘n$۷nbu?:�rtSξ#ɢZab5CRMr~ I>ZJyC�2$?}I^`Ƞ\1]$nz$\k]:�27|8sKOb}aJ)J1d#yuOR6n�]SJ<b2;Wf %9ut̹\B!�%bnaJ0Ռ3@)eNӒں:$zC�J) 2[N<F4VJyt!&c$*,n�3U)<zՐ??II6d0*\P)e^Uܣu ďnC�`&)NO&٤u C$RkANƌF>$Z@ܛ!�0R^naV$yM!Ђ4PJ& *$|)幭C�R!onNrt 2WfLR n'sjn�-RG=Ƽ~$WڶI033Q)Q=zYP3Iu?ٯdp"yG¯׼1sܑ䙵TJ+ɿfpn̰:}$'NKk7Θ1M$Ӻeݗ$WϾnK)%yra1.7%ٯz]�$97֭[F?a7ƌiPJ)I>e[znmK2xتRyG}]vMͭC�`*ROr~Ƿn鹻|#EYoic4(7kZwк >Cx7j2hC]g<+qcӖM="2'�U)דd-=챯kk[3fLR_&ys뎞Xg}⑔R&+ac$3$2O�eGOm?΃Nj03P)$5I|yU/l/M$i[y_JZ!�0 M28_-wk3Ǿ.0^f̘"n 3wfZc$-3\k]:�&cywofpZ=83@)$蜨|,+[t$yIƾ1MZ_:�&rzd~eё3cms aGa}+[:'|$ϔtM)e F#l4[m�㓼uG\$:cx?<uK(&y إ I8 $yN!�0'\\9$yGO)1cJ)Zwp$yw:J)% y}0j")#9/k_j 1cHJ)K3&ygRs25Ӻezܵnf'yzIQk=u0uCPJ'9qχ$SIR^/KRkǷ�_I^պcZU13fLR)e .ۮu s[7fp%fR3M=Z05k_l�I>޺cF7^:>ƌI(J$nA&ySku m?J$8g&#R%0ɣ[ ?L֏߬1d$OcȘjjL ʸWc|j�0#R6K2~fu[hȀʌ TJ9 2 BIzF6L)e$&-3Z_:�rFCZwյ+Z�m36@)e Md d~ॵO�`RJ[w�?HZ?fcRd}Z4vy?p)<:)ݝǦ:TJ=7lܺ$ym'CG$&2>y]k=<I~ܺG'؀ �ӪiOd%yq 3&`쑖olЏzT1LZǓ<-nih$ǵ�`$3uo&yjӭCLƩ27Ini[|#+GH$qN '٭ֺu�ood4288ֺu 0s2c^2%y{g2FSuuO</ɭ{([G�0>qSZ<c8RvH3Zaj;Pkr2x$ڨYVJ9u�#uIvm2Cn1q(KZwL Nu߉W(Jrrc[Lے,:~*l6m2Nu-x _H,CֺI4(�`2&9ҐlWf G'"v[чֺu3_)|8JdZ빭C�R Si !@72W{KFkxsHC5-Ӥ$y^�`(@;u4-ɳ d3F)I^ӺcMrT!tOߒ<3;]2 � I:b\dZ[�c&aL~_Zmc7-R?ݽIv^:n+?i2 .JZ-CseC{EFc%~ &$%9u4$ZG�m!I2aqe/(l$[nb'yf!K)e$g%ٻu4_ϴ�J)Gdp;+kØ J)Nǭ;\qa$$YҺe])5C�RʦIL-Sߓ<zO_|d='$yU)$/0d0jw&90I)s#ZG�IǤC a�Ε)M[wLI^Tk!RNIKm)IZWƮ$4NJ&ٯ!@?2cL)e~#[wLHCii-Sh$/k@22~GK 1fܟ&ٸuz}##=˒</I/1=2u�3_)QwI~z]ߌIJ)2xk_Z'$}a�:KS qYOI):j_Mrx)t|)k*�Q?k1EjZ: #]J &gLjOSda�`F;"v#;j_hI)mIk1Ig!wO-SIQaR&*[sm`td>z!zW0uXA�<2nN `$[~u<;ںcE��f'^y)6d:=#;fR`蛋.z$ݺc <#�QW}j紎�F3$h1ddZ5C`<J)s2S۵g�RJZ D1vL2qʰZgZGDRE۴n}kl@[e|?;Z�kT?fo;C]Tk1{x.~2Fʌ&9u0ɢZ]C`CRHrH!imkwRv\Ч7Wk=u@^XeCdž zII^:^~oߜ�I^\ǫo/Z?:&zk7Z�TCǵnLJ),l1$&ٵzm;d-CKuU�W)IպcRk�?ӧ+Q)7ҟ!#IjȠO$kZ Qޕ`|_�f3үK/O0l֕Iݺc^VJZVJyTuߤZiI)e nZU!IZ:B)e 'nk_m($'[w IZkuFCF|ԐAZICtX��a2hBIv~uLRʷպcM8PRʶI~dv!j�e$(<.I_^?j`ul%#�CFҟ0C#1f$9$8I0]j_HCrX��aj緎�x82fa!9z]f}yWhRZG�0uJ)K,n1$on�~(i3am\~.%;w[�0~uSk=u1#kWFC�LwHz4R %٥zehR\dIIIx@R~-ɭIJI:ֺ_G+3J)s,k1g2euM<u�SW3dC0cU#9�}x}zVч7jj|uu _և:�`>f<u|u� Ku$F)ѭ#�=qd$?�ގMݺc <zKUTkq협d$:f>\ԇ^�~}8#c :b=u$ݐ_[G�L1c1ZGLSkiO%mZG�0y]k1I?vmQJyl$xx]j07ВW1#? <Z'^I/�=ֺuDuw</^:f[LR_�F^)eV*o1c}$�輅Ih1 k:`Cn(Iu$}u�ttؽZ�0){:`CnHsGj]�L?F+[:`~FXnjE&Z@t$W�]?#̘18ˏ0I:`C3fcS$�0Ivj1 Z:`C3fZolpRʶ#� ON2u$t 1t:u,(w׏՘1疭;&A&$]L'�˯?J? Я1#>fZM-Qkk[G�L1c渲zGo0 ]~e]~q 1c&Y:�:?]~e]O[�I3úRʦ#�ܧM$ƌB?%~w`usuk[G�LVoƌRʣ<u$t1hzW[�0! ZLյ5#�&7cFggW3`r|�Lv&Km誛Y6\y�.wvx >m0 *0y]>zL��&y'@c}36o0 .��3f 9L^��cpM�Z I~ںcu `uuZ[G� 1cfQ�n\-]=t Ɯ_OZ&wޢCZl̐׀InkJ)38ߛ om:`?C7�wZooPjK6c_Ou�0ܓ$YkNc.Id]� y9wj<1rHw$n#{͵֮ޗRIޕ.�FI~_9fR%I^06�:$Z/hO)$J-�4<j{Oa)|7 �䛥J)jC)ѥ'j � 以o+3J)I$/6�:{IzQJ)$;4N`:=+kj2�xd'YRku=gppW yO}̤b�`|@g? �R3 \QJ:u|^0�Z[G�13Zw�)&YZk'y!�ۺ);' �5?)#$m@'dc&˓8 n{R"��IDATUJ+ɷ[w�iߨ>sV)e$Z�yOo�xh�@=2kVݓ5�t�$ 6f�d9��ðXaR6{0{3�ǔRvlX%:^cV[W�K[�3�e鬸'�óI�`�l2u���D3���N1f����b����:Ř���t1���c���) ���S���@3���N1f����b����:Ř���t1���c���)sZ$ɱ]wݵu@Uի[g�X[lEw� /0Zǧ1cŋ[g��csq 0I?['$1���c���@3���N1f����b����:Ř���t1���c���) ���S���@3���N1f����b����:Ř���t1���c���) ���S���@3���N1f����b����:Ř���t1���c���) ���S���@3���N1f����b����:Ř���t1���c���) ���S���@3���N1f����b����:Ř���t1���c���) ���S���@3���N1f����b����:Ř���t1���c���) ���S���@3���N1f����2u(ZzuVZ+2k֬iRJɶnKf-l�MG?ʊ+r7:zeܹYpa.\9sh=sO.䒬X"+VW\￿uoKfҥyӞN)u 7<og]vn향Kfv˦n:S.qnu 5kV^We/{Y,�Zk/_˗O\r%K$;,ZqYgg>>ڐ3uww9sggЇ>dȀ[n+_|_lkƌ)pmo{[:Wn_z<p S�`ҮQ?)zo'>SĘ1d?OW2_Z�G.u �l . Gyd~NƧ?կ&0f g>Zur)3�`ZG'.R9ƌ!O3<u0N]vY.�0asN8qYn]^1f ?q3 8['�9~AtM׾:WCf͚|ckL\+u�۷mk:=qhC/9rK `xw .G>:�^{m;a/uV\:�y't1f����b����:Ř���t1���cƐRZ'�/�]wxCN�6_�q kkƌ!g};�&hy_:�Cm�lw=K,iƌ!r`̟?u�ۂ {�&#h+ƌ!'>u0Nf2BI_-K,:WC4k֬e/kӳ,$�t<iOka:wCۿ9[g�`v1:�6؟ɟ$t_b ƌ!={v7cٳ[�a?̛7u �lw1˗/^{:xs׾Szɘ1E~?}{V[N̚5+x+=lI�-"'|r9)zfA:Shwχ?,^u 7<|;0 ޙ5kV^Wo}k6l90vm|.:y`n喬X"+Vȥ^k6֭kYd_ ,/�z~v-[s+Voo5k֬:|:k$3ɼyrHs=kf͚e/̟?0�Ig΢EhѢ%/ItMAlFyғˍ3lͲt��=����:Ř���t1���c���) ���S���@3���N1f����b����:Ř���t1���c���) ���S���@3���N1f����b����:Ř���t1���c���) ���S���@3���N1f����b����:Ř���t1���c���) ���S���@3���N1f����b����:Ř���t1���c���) ���S���@3���N1f����b����:Ř���t1���c���) ���S���@3���N1f����b����:Ř���t1���c���) ���S���@3���N1f����b����:Ř���t1���c���) ���SU7xcꪬYu ζn f/q�իW{^n);sɂ 2)#ə4XzuVZ+WfŊrw΂^h.dɒ%|mV�`JyYr_W\qEV^: zm뭷~9… 3wYg̘bW_}u7榛nj#ϥ^K/4I2wܼ _e�05>OSOڵk[HsgN<Ỏ'߾mXϹg:묳rQG2`XzuN:餜xޡWᄐo{C�_}<ȜwySz͘1֮]SN9%ozӛr}~6sLn)�0i7tS:|+_i{,_<9d/{l<)Xre?\s5S�`X"GqD)CNquֵcƐ}sE]:xv[N9�N>u]3Gp9䬳j;ƌ!Zzu>� /_:�&[V8~>n2dƌ!җ[ou0G['�}#i�Lu]s=uF3dݺu93Zg�tyw�rgʕ3 &p3k_ZnZs駷�qtӪUr cƐ\r% 䦽�t_:@wZ'1yn�tp9< ���S���@3���N1f I)u|%[]ǘ1${g`�`k r9<ƌ!YlYvaRr衇�qs܂nzSb"cƐR򗿼u0A˖-ˎ;:�m݅:Z'1c8̟?u0*�tt˓~3zŘ1Dg!:}' ,h�{dŭ3q:['1c:ᆳ3G0o޼s13�`[o:x}slٲcs椓Na;0C?즽�tڢE|rWh 5k֬}y[ޒY=lNRJ:꨼mo&l:XK_Ҝr)jZ�m6yޗ:u -2~sN-csiek#o7 '׼5q�zeܹ9׽.gn#ow˳{N9nw'>\uUYreV\+V[omfeYdI,Y]w5ni,�2/zыr.{+Ƚ: zms.]4;7Ϧ1c̞=;-ʢE8Ir-kɚ5kAR2"�7<{w{$ڵksW[ni\3w,\0}c[$cF#˼yZg��cg… p)�CmK���S���@3���N1f����b����:Ř���t1���c���) ���S���@3���N1f����b����:Ř���t1���c���) ���S���@3���N1f����b����:Ř���t1���c���) ���S���@3���N1f����b����:Ř���t1���c���) ���S���@3���N1f����b����:Ř���t1���c���) ���S���@3���N1f����b����:Ř���t1���c���) ���S���@3���N1f����2usUWe͚5Swv,\0sx`^:r7Nޙ3gN,XNIիjժ\2+Ve];uFm]v%K,ykj�S;ʕ++zYk[o9.\s=c717tS).\zIs浯}m^6.O}*zj֮]:Fߞ>;g}vO|bN<lmz=3Yg:ʐ3իsI'O�r}o~s2`sGkkƌ)vڜr)yӛޔu~9crNI馛rQG+_J`=sO7d婵%cƐw}9csgNʕ+ski�lŊ9#rWNB5vZ;[uN3s\.#r)� v'箻j<s9'guV1f իu0N^xa.�0aַrW�Oq!3f їz뭭3 G?:�&#H`{3zŘ1$֭g:;Ͻ3�蔋/8+WlL7ц˘1$_r7�&֚O?u�VZ .uFo3K.i�l 7K. w:7s3&��1f����b����:Ř���t1cHJ) .q܂;<ƌ!s=['�h=h��^{N�61f ɲe˲;�&C=u�tSc33 ZlYvq�0n/.ta:WCtd3 pP['gk+ƌ!={v98>Y`A �=#/n:wCvAe}m<yci�}z#xse˖cƐ͝;7'tR;0݁jwχ?a7-Z˗BfYf裏[̚Gaot RrQGmo{[6d9z^җSNV[m:�&mmtASlyߝ>uJo3N;-m]yoqN8ᄼ5+s׽u={vy;s/_=ܳuJiw;c>O䪫ʕ+rʬX"zk46,/Β%KdɒtM[gyы^<0]vW\qEiksҥiy6 `YhQ-ZI[n%\sM֬YӸgwt`l{ウ{'I֮]:rK2蟹sf…yc:e$37o^͛:�={v.\ N*o[���b����:Ř���t1���c���) ���S���@3���N1f����b����:Ř���t1���c���) ���S���@3���N1f����b����:Ř���t1�ZYaS8Q44E%)͍.$D E$DccCKBQC6D n\*h4HpiYz;|>{<{9�Њ���"f�������@+b���Њ���"f�������@+b���Њ���"f�������@+b���Њ���"f�������@+b���Њ���"f�������@+b���Њ���"f�������@+b���Њ���"f�������@+b���Њ���"f�������@+b���Њ���"f�������@+b���Њ���"f�������@+b���Њ���rI-[ZU�Ξ=|>z@k'$I$~(#3M I^c&���@+b���Њ���"f�������@+b���Њ���"f�������@+b���Њ���"f�������@+b���Њ���2KRG�4Ό�,ӣ�4̒|;z�K�F92Krp �$G� psG��lCU"pEUkw�b�e>z��Rϲv4�\7�^gUթ$ߌ^@k# �ׁ}vN}U2zت$@[$y)Ij$;WU,iLUGo׫jOri̸%In8 ~G�$@+%z۱~$Uu<3V[B_UջI>6*\tgƅ$Om0�)ɽU!@?4ݖofU=w+<$l�2!VUu,ɣIVGo`K_,fTթڙ$6a�}KJ1@oUi-�$Wճ/Yw1K{<I/F4M%ٟ[�n=Uupc&Tڕ$o8�z8$ۄ RU$ٚ$`U<QU)d$W3'OI'v$w]V�̉$$Hrg64M7$'^s>䦑�0Zp͙d^U'?O����IENDB`�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./unit1.lrs�����������������������������������������������������������������������������������������0000644�0001750�0001750�00000555103�14576573022�012743� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ This is an automatically generated lazarus resource file } LazarusResources.Add('TForm1','FORMDATA',[ 'TPF0'#6'TForm1'#5'Form1'#4'Left'#3#30#9#6'Height'#3#29#2#3'Top'#3'Q'#1#5'Wid' +'th'#3'o'#3#13'ActiveControl'#7#10'FindButton'#7'Caption'#6#24'Unihedron Dev' +'ice Manager'#12'ClientHeight'#3#29#2#11'ClientWidth'#3'o'#3#21'Constraints.' +'MinHeight'#3#29#2#20'Constraints.MinWidth'#3'o'#3#9'Icon.Data'#10#146'1'#0#0 +#142'1'#0#0#0#0#1#0#1#0'dd'#0#0#1#0#8#0'x1'#0#0#22#0#0#0'('#0#0#0'd'#0#0#0 +#200#0#0#0#1#0#8#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0 +#0#7#0#2#4#11#0#5#7#14#0#0#8#18#0#14#9#12#0#10#9#22#0#3#12#20#0#14#11#28#0#5 +#13#26#0#19#15#17#0#13#15#20#0#16#12' '#0#10#14#31#0#12#13'#'#0#19#12'%'#0#20 +#12')'#0#15#14'('#0#11#13'-'#0#18#14'-'#0#16#17'%'#0#10#19'$'#0#13#17'+'#0#12 +#18'('#0#22#22#28#0#20#18'+'#0#26#22#28#0#17#23'"'#0#20#21')'#0#20#22'&'#0#18 +#20'/'#0#8#23'*'#0#12#22'-'#0#13#21'1'#0#18#23'-'#0#9#21'7'#0#8#24'1'#0#9#23 +'5'#0#31#28'#'#0#14#26'8'#0#21#26'7'#0#15#27'?'#0#11#29'<'#0#16#30'7'#0#22#30 +'5'#0#26' 1'#0'%"*'#0#12' :'#0#31'#-'#0#23'"4'#0#18'#6'#0'(!7'#0#11'"A'#0#19 +'"A'#0#13'!G'#0',(2'#0'=(3'#0#13')J'#0#24'*E'#0#21')M'#0#19'+G'#0#16')P'#0'"' +',D'#0#19')W'#0#10',Q'#0#7'*Y'#0#29'/B'#0'10<'#0'+0?'#0'70<'#0#26'2]'#0#20'3' +'^'#0#22'5W'#0#15'4^'#0'(5V'#0',9N'#0'#:N'#0'6:H'#0'B:I'#0#13':e'#0'@>M'#0#18 +':m'#0'9=V'#0#23'=g'#0'M?Q'#0'H?S'#0'=AR'#0'HAP'#0'MBN'#0'MFT'#0'BGZ'#0')Ej' +#0'OFZ'#0'8G_'#0'JHY'#0'KG^'#0'9Fj'#0'QJX'#0'NHe'#0'ULa'#0'$Jy'#0'UN\'#0'JNa' +#0'QN_'#0'PPY'#0'QMd'#0'7Px'#0'VSe'#0'[Rg'#0'[Tb'#0'MTj'#0'XTk'#0'CRy'#0'6Uu' +#0'SVi'#0'TUn'#0'YWh'#0'H[k'#0'IYx'#0'^Zr'#0'YZt'#0'^\m'#0'U\s'#0'Y^k'#0'Z]p' +#0'=_~'#0']bn'#0'Z^'#128#0'_au'#0'dbu'#0'[a~'#0'aa|'#0'[cy'#0'Wd|'#0'bey'#0 +'8f'#132#0'Pe'#135#0'pgv'#0'[d'#137#0'Yf'#133#0'[i'#129#0'ai'#127#0'gi}'#0'b' +'h'#132#0'gh'#131#0'lm'#135#0'gm'#138#0']o'#140#0'nm'#143#0'hp'#135#0'jn'#145 +#0'er'#138#0'kr'#143#0'ws'#140#0'zv'#129#0'Sw'#153#0'ku'#154#0'ew'#151#0'vw' +#146#0#133'w'#141#0'qw'#148#0'ky'#146#0'lx'#151#0'Pv'#177#0'v|'#154#0'r|'#162 +#0'l~'#158#0'r~'#157#0's'#128#153#0'S'#130#162#0'z'#129#158#0#146#129#151#0 +'q'#128#169#0'g'#131#169#0#138#132#154#0#138#130#161#0#127#133#163#0's'#134 +#166#0'z'#134#166#0#152#137#147#0'z'#136#161#0#127#139#172#0#147#141#163#0 +#134#141#171#0'o'#141#179#0#129#143#169#0#147#141#173#0'a'#141#190#0'w'#143 +#177#0'}'#144#172#0'f'#146#178#0#132#144#177#0#133#143#182#0#145#145#183#0'}' +#149#184#0#144#149#178#0'v'#149#191#0#138#150#183#0#132#152#180#0#138#152#178 +#0#140#150#190#0#158#153#182#0#144#156#190#0#145#160#187#0#128#160#198#0#148 +#160#194#0#137#161#195#0#149#159#200#0#157#160#197#0'x'#163#203#0#151#160#207 +#0#152#165#198#0#151#167#194#0#160#172#206#0#146#174#206#0#160#175#202#0#155 +#175#204#0#156#172#215#0#156#174#210#0#174#174#208#0#134#176#216#0#143#181 +#217#0#165#178#220#0#162#181#217#0#163#183#212#0#155#183#215#0#170#182#216#0 +#170#188#225#0#182#189#220#0#176#187#229#0#163#191#223#0#171#191#221#0#148 +#191#229#0#177#190#223#0#157#196#230#0#200#199#220#0#184#198#229#0#171#199 +#231#0#179#199#230#0#181#202#241#0#193#204#238#0#168#207#241#0#194#208#234#0 +#187#208#238#0#175#209#240#0#212#211#222#0#182#209#242#0#184#212#237#0#196 +#217#248#0#203#218#243#0#198#221#244#0#192#221#247#0#208#224#247#0#225#228 +#239#0#217#234#254#0#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 ,#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#0#0#0#0#0#0#0#0#0#0#0#1#1#1#1#1#1#0 +#1#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#0#0#0 +#0#0#1#1#1#1#1#1#2#2#2#2#2#2#2#2#1#1#1#1#1#1#0#0#0#0#0#0#0#0#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#0#0#0#0#0#0#0#1#2#1#1#2#2#2#2#6#6#13#21#9#9#21#13#9#6#3#3#2#2#1#2#2#1#0 +#0#0#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#0#0#0#0#1#1#1#2#4#7#9#3#3#6#6#6#6#14' '#23'!!$'#22#23#13#14 +#13#6#6#6#6#9#3#2#1#1#0#0#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#0#0#0#0#1#0#1#4#7#9'$ '#6#8#8#12#8#8#8#23'!! %''% '#22 +#23#22#22#18#14#13#14#13' '#13#9#3#2#1#0#1#0#0#0#0#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#0#0#0#0#0#1#4#7#31'$''4'''#8#8#12#17#14#14#13#23 +#23'$''//!%''!!"'#23#12#22#22'!+'#23' '#13#9#7#3#2#0#1#0#0#0#0#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#0#0#0#0#1#1#2#7#31'$ !9*'#8#8#8#8#13#14#14#13#21' ' +'!%$%''''%!'#23#23#20#14#23#22#22'!*% '#23#31#9#2#2#1#0#0#0#0#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#0#0#0#0#1#1#2#21'/%'#13#17#12#15#14#17#8#8#8#8#23#13#14#14#14#17 +#14#20#21' ###/$'' '#13#17#18'"$''*+/$$'#21#9#3#1#1#0#0#0#0#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#0#0#0#0#1#2#2#9'$*;'#14#12#12#15#12#12#12#8#8#20#15#14#20#20#20#20#14#17#22 +#22'*!''%+% '#23' '#20#20#22'''44%*$'#31#21#4#1#1#0#0#0#0#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#1 +#2#2#6#6#20#17#20#17#8#8#15#12#14#12#15#12#8#8#25#20#13#17#14#8#12#20#23#17 +'!!!! '#21#13#23'!! '#17#23#22'*9''4/*/'#21#6#2#0#0#0#0#0#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#0#1#2#3#13#8#12#17 +#15#12#8#8#8#8#13#14#8#14#17#12#13#17#23#23#17#14#12#14#14#14#17'''+''%$ ''' +'!!% '#20#17#14'/'#23'% '#14'!'#23#13#3#1#1#0#0#0#0#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#0#0#0#1#1#2#6#13'!'#30#17#12#12#13 +#12#12#8#8#12#17#12#15#17#17#17#20#20'"'#30#17#20'"'#23#30#22'!%!'' %!$!"!"' +#23#22#22#23#17#23#14#17#22#23#13#8#6#1#1#1#0#0#0#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#0#0#0#1#1#7'2'#14#14#14#17#15#8#8#13#8#8#8#8#8 +#14#20#12#14#14#14#6#13'"'#21#23#23#22#23#23#14#20#23'%''''+'#22'!'#30'!"'#17 +#17#18#30#23#20#8#14#8#12#8#12#14#14#6#2#1#1#0#0#0#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#0#0#0#1#1#2#9' "'#14#8#12#12#8#8#13#8#13#12#12#14#8 +#13#12#14#14#14#14#20' '#30#19#14#13#14#20#14#20#14#23'''! !'#23#20#20#14 +#14#14#8#6#8#8#12#8#13#13#8#8#6#2#1#1#0#0#0#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#0#0#1#1#3#9' !'''#30#30#17#18#14#8#8#12#12#13#12#12#12#8#12#14 +#30'"!!'#22'"'#30'!'#19#15#13#12#13#22#17#13#14#17'! '#21#13#20#20#20#14#13 +#13#12#8#14#14#15#8#8#14#20#13#13#6#3#1#1#0#0#0#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 ,#255#255#0#0#1#1#7#23'$''!!'#19')('#25#12#8#14#12#8#8#13#8#8#12#8#8#17'" '#22 +#14#14#17#17#17#22#22#14#8#15#22#13#14#20#20#22#14#14#13#13#17#14#14#12#8#8 +#13#13#8#12#12#8#14#20#23#14#6#2#1#1#0#0#0#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0 +#0#1#4'/=@F;'#14#20#17#18#15#12#14#12#12#8#8#14#12#8#8#8#13#17#14#22#22#14#14 +#14#17#14#17#17#12#13#14#20#23#20#14#20#14#17#20#20#14#22#20#17#20#14#20#14 +#13#13#13#13#12#12#19'"'#23#8#6#2#1#0#0#0#0#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#1#3#31 +'*G6!'',,'#30#14'"'#30#20#14#15#12#8#14#12#13#20#17#17#19#14#17#17#20#17#20 +#14#20#20#17#17#17#17#17#30#23#14#22#20#14#20#23#23#22#23#22#14#14#28#13#20 +#12#14#13#12#12#20#20#17#20#14#6#2#0#0#0#0#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#1#2#21 +'IO)6;''''(('#30'('#30#17#14#12#15#8#12#8#14#20#16#25#17#20#17#17#22#20#17#15 +#20#14#20#20#17#17#25#22#17#20#17#17#25#25#25#25#20#20#17#20#14#23#21#20#14#8 +#8#12#17#14#20#22#22#20#20#6#2#1#0#0#0#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#1#1#9'$IO9%''$!;!!' +#23#13#12#12#12#17#12#8#8#8#12#12#14#25#17#17#12#20#9#12#14#17#17#20#14#13#12 +#17#20#20#17#14#17#15#14#14#20#20#14#20#12#14#12#13#13#14#20#13#20#17#20#17 +#22#30#23#22'"'#9#2#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#0#0#0#1#7'$4OAQ6*5!'#22'(5$"'#13#14#14#12#8 +#6#8#13#8#8#13#20#17#13#8#20#13#13#20#17#17#15#20#14#20#13#20#13#17#20#17#22 +#14#14#12#14#14#14#14#17#14#13#23#14#20#13#13#29#17#30#30'"'#21#21#21#21#9#1 +#1#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#0#0#1#2#31'94;=IG;)4)!''/'#23#12#12#12#12#8#13#8#8#12#8#14#20#12 +#20#13#14#20#8#13#23#23#23#20#22#20#13#17#14#17#17#20#23#13#12#20#20#15#20#14 +#20#14#14#23#20#14#13#20#30#22'!'#23#21' -'#29#14#13#3#1#0#0#0#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#1#1#9'4O=6;' +'9=?F;))6!'#12#20#15#20#15#12#13#14#17#25#20#28'"'#17#20#12#12#15#17#15#20' ' +#30#30' "'#28#20#23#30#22#22#30#29#20#20#12#17#20#22'"'#20#20#20'++1(+,(('#30 +#30'"'#23'""'#9#2#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#0#0#1#4#31'@OI4S969/=;9;'''#21'"'#17#20#15#29':'#23#20#23#28 +#25'""'#28#13#12#20'"'#17#20#20#17'""'#23#22#22'" '#20#30#30#14#20#17#15'"' +#20#17#30#17#20#30'+:1,+,Kfm'#137'YRoD'#31#7#2#0#0#0#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#0#0#1#2#9'9@IOHI@9H249*5"-'#29#23#20 +#15#23'[:2B2('#21'"'#28#20#20#23#23#20#20#20#17#20' '#28' '#21#23#20#25#30#30 +#22#22'!'#17#30'"'#23'""+:KKL'#142#137'R'#174'l_a'#137#159#137#137'rD'#24#2#0 +#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#1#7#21 +'9IOG@QSOSL:<"'#28'BB-," DJ]]RLuhD'#29'""'#20#20#17#17#17#12#8#13#12'33-'#29 +#29'">2('#30#28#30#30#31' (p'#200#176#176#219#182#179#153#219#153'z'#145#171 +#201#175#186#192#186'Z'#24#0#0#0#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#0#0#1#1#21' !GOAQQOIOH`]>K]]K]KLZPMVVf~'#179'h'#29#25'""'#22#20 +#28'"'#23#28#27#28'8TVV12uu'#182'C'#30'!%''B]'#146#174#174#182#201#182#174 +#174#174#171#179#182#174#186#193#219#193#193'w.'#2#0#0#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#0#0#0#4' (''@OOOIOIGJRVVVZ]f]]ffrf{'#129 +#154#154#154'hD,11,,+21"KD-+DDVV'#174#153#179#179'b>Jz:]'#145#154#174#174#219 +#219#195#186#182#182#193#186#182#186#186#175#175#159#137'E'#3#1#0#0#255#255 +#255#255#255#255#255#255#255#255#255#255#0#0#1#2#31'/#''OOII@@=Fp`np'#130#127 +#145#145#173#187#157#139#173#150#156#142#142#134'~ym^ZM22>KKKBKBB2Mk'#179#179 +#171#171#171#159#131#159#175#159#159#159#174#171#174#182#195#195#208#208#210 +#229#229#240#253#235#219#201#182#153'^'#24#2#0#0#255#255#255#255#255#255#255 +#255#255#255#255#255#0#0#1#2'2@;GGOOA@Fj'#163#187#187#196#196#204#214#245#253 +#242#241#249#242#250#252#252#252#247#247#245#231#224#225#228#245#216#155#190 +#169#177#168#170'}'#135#136'`'#170#245#235#236#245#253#235#233#226#233#253 +#242#247#217#226#223#228#228#253#235#208#219#208#208#222#229#249#253#249#236 +#236#231#195'P'#3#0#0#0#255#255#255#255#255#255#255#255#255#255#255#0#0#1#4 +'4HFGFGQIG6;j'#172#184#188#194#204#214#225#230#230#237#247#244#251#251#251 +#251#251#251#250#250#250#250#250#250#254#234#190#190#190#169#221#190#234#254 +#254#254#254#254#254#254#252#254#250#248#250#254#254#252#248#250#251#250#252 +#254#249#252#252#252#239#226#226#226#228#226#226#228#222#191'r'#24#1#0#0#255 +#255#255#255#255#255#255#255#255#255#255#0#0#2#9'<@FGF=;IF5Jj'#155#184#196 +#196#204#214#214#221#234#237#241#244#244#244#244#244#247#247#247#247#247#247 +#251#251#251#250#220#135'}}'#155#209#250#250#250#250#249#252#252#252#252#250 +#249#249#252#249#249#249#249#242#242#242#242#242#242#240#240#240#238#239#233 +#233#233#233#233#229#227#213#141'0'#0#0#0#255#255#255#255#255#255#255#255#255 ,#255#0#0#0#3#21';I@?G=9F5;5j'#173#184#196#196#204#204#204#221#232#234#234#241 +#241#241#241#244#244#244#244#244#244#244#247#247#247#247#247#232#190'}'#209 +#244#250#250#248#248#248#248#250#248#248#248#248#248#248#242#243#243#243#243 +#242#242#242#236#236#236#236#236#236#236#233#233#233#233#233#233#233#233#180 +'M'#11#0#0#255#255#255#255#255#255#255#255#255#255#0#0#1#4'2Hdd=GF@=;44q'#173 +#173#184#196#196#196#209#220#220#220#232#232#232#234#234#234#237#230#230#237 +#237#237#237#237#237#237#237#246#247#246#247#246#246#246#246#246#246#246#246 +#246#246#243#246#243#243#243#243#243#238#238#236#236#236#236#233#236#233#236 +#236#233#233#233#233#233#233#233#233#233#199'f'#24#0#0#0#255#255#255#255#255 +#255#255#255#255#0#0#1#9#31'9SH9G==9449}'#173#173#173#184#184#196#204#209#209 +#209#220#221#221#221#221#221#221#225#225#225#230#230#230#230#230#230#230#230 +#230#237#237#237#237#237#237#237#237#237#246#246#246#243#243#243#238#239#238 +#239#238#238#238#236#231#231#236#233#233#233#227#233#233#226#226#226#226#223 +#226#226#203#132'.'#0#0#0#255#255#255#255#255#255#255#255#255#0#0#1#21'/4=<4' +'G=99<[q'#166#173#173#173#173#184#184#196#196#204#204#204#204#204#204#204#214 +#214#214#214#214#214#225#225#225#225#225#225#225#230#230#231#230#230#230#230 +#231#237#237#237#238#238#237#238#238#238#238#238#238#227#227#231#227#227#231 +#227#233#233#227#224#226#226#226#226#223#226#223#226#226#211#149'D'#0#0#0#255 +#255#255#255#255#255#255#255#0#0#1#2#31'4H=99=6;<:v'#136#157#157#166#173#177 +#173#184#184#184#184#194#196#196#206#206#206#206#206#206#206#206#214#214#214 +#214#214#216#216#216#224#224#224#224#224#224#231#231#231#231#231#231#231#231 +#227#231#231#231#227#231#227#231#227#227#227#227#227#223#223#223#223#223#223 +#223#223#223#223#223#223#226#218#168'M'#3#0#0#255#255#255#255#255#255#255#255 +#0#0#0#2' 4S@[jd[<;[}'#157#157#157#157#166#173#177#177#188#188#188#188#188 +#194#194#194#204#206#206#206#212#212#212#212#212#216#212#216#216#216#216#216 +#216#216#216#224#224#224#224#224#224#224#224#224#224#224#224#224#224#224#226 +#223#223#224#223#223#223#223#218#215#226#218#226#218#218#218#218#213#213#218 +#218#180'V'#11#0#0#0#255#255#255#255#255#255#255#0#0#0#2#31'/Sv'#136#136#147 +#139#136#136#147#147#147#157#157#157#166#166#166#173#177#177#177#188#188#188 +#188#189#194#197#198#202#202#198#198#203#203#203#203#212#212#212#216#216#216 +#215#216#216#216#216#216#224#224#224#224#224#224#224#224#224#224#223#215#224 +#215#218#216#213#213#213#213#213#213#213#213#213#213#213#213#213#218#218#211 +#181'f'#24#0#0#0#255#255#255#255#255#255#255#0#0#0#4#31'+;`'#139#139#139#147 +#147#147#147#147#151#147#147#157#157#161#161#166#166#177#177#177#189#177#189 +#189#189#198#198#198#197#198#198#203#198#203#212#203#203#212#212#212#212#212 +#216#215#215#215#215#215#215#216#213#215#215#215#215#215#215#218#218#216#213 +#215#213#213#213#213#213#213#213#213#213#211#211#211#211#211#211#211#211#191 +'n'#24#1#0#0#255#255#255#255#255#255#255#0#0#0#7'+5;;'#138#139#147#147#147 +#147#147#147#147#147#147#161#161#157#166#166#167#166#177#177#177#181#181#189 +#189#189#189#198#197#198#199#199#203#203#203#202#203#203#203#203#212#212#216 +#212#212#212#215#215#215#216#215#215#215#215#215#215#215#215#215#215#213#216 +#213#213#211#211#211#211#211#211#211#211#211#211#205#205#205#205#207#191'z&' +#0#0#0#255#255#255#255#255#255#255#0#0#1#6',/v'#139#133#139#139#140#147#147 +#140#147#147#147#151#151#161#157#157#166#166#166#168#168#177#180#180#189#189 +#189#189#189#189#189#199#199#199#199#199#202#203#203#203#203#203#203#212#211 +#212#212#212#211#212#212#212#215#213#213#213#213#213#213#211#211#211#211#211 +#211#211#211#211#205#205#205#205#205#205#205#205#202#202#202#202#191'z0'#1#0 +#0#255#255#255#255#255#255#255#0#0#1#3'2]v'#133#133#133#139#140#140#140#139 +#147#147#151#151#151#147#162#162#161#166#168#168#168#168#180#180#177#177#177 +#185#185#189#189#189#199#197#199#199#199#198#203#203#203#203#203#212#203#205 +#203#211#211#212#211#211#212#211#211#211#211#211#212#211#211#211#205#211#211 +#205#205#205#202#202#205#202#202#202#202#202#202#202#202#197#181'z.'#2#0#0 +#255#255#255#255#255#255#255#0#0#1#27']'#133#133#133#133#133#140#140#139#139 +#140#140#146#139#162#162#151#161#161#161#161#161#168#168#168#168#178#178#180 +#180#177#185#185#185#191#191#191#199#199#199#199#199#199#203#202#202#202#205 +#205#205#205#205#212#212#211#212#211#211#211#211#205#205#205#205#205#205#205 +#205#205#205#205#202#202#202#202#202#202#202#197#197#197#197#197#183'z.'#0#0 +#0#255#255#255#255#255#255#255#0#0#2'0Z'#133#133#132#139#139#140#139#139#140 +#140#140#143#146#151#146#151#162#161#161#161#162#161#167#168#168#167#167#178 +#180#180#180#185#181#185#185#191#199#199#199#197#197#199#197#203#202#202#202 +#202#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205#205 +#205#202#205#202#202#202#202#202#197#197#197#197#197#197#197#197#181'z0'#2#0 +#0#255#255#255#255#255#255#255#0#0#2'0Zv'#130#132#130#130#130#139#140#140#140 +#141#143#139#149#146#151#151#151#151#161#162#162#167#168#168#166#180#180#177 ,#178#181#180#181#185#185#185#185#199#199#197#197#197#197#197#197#202#202#202 +#202#202#202#202#205#202#205#205#205#205#202#205#202#202#202#202#202#202#202 +#202#197#202#197#197#197#195#197#197#197#197#197#191#183#191#178'n&'#1#0#0 +#255#255#255#255#255#255#255#0#1#2'0Z'#133#133#139#130#132#132#133#133#132 +#141#141#143#140#139#151#151#162#162#151#161#161#161#161#168#168#168#168#168 +#177#180#180#177#185#185#189#189#189#185#191#191#197#197#199#199#197#197#197 +#199#197#202#203#202#202#202#202#202#202#202#202#202#202#202#202#202#202#197 +#202#197#197#197#197#197#197#197#197#191#191#191#191#191#191#191#178'n&'#2#0 +#0#255#255#255#255#255#255#255#0#0#2'0Zz'#130#133#133#132#132#133#132#141#140 +#141#141#141#146#146#139#146#151#162#152#161#161#161#161#161#162#168#168#168 +#180#178#180#180#177#181#185#185#185#191#191#185#199#199#199#197#199#197#199 +#199#197#197#197#197#197#199#197#199#199#197#199#199#197#197#197#197#197#197 +#197#195#197#191#191#191#191#191#191#191#191#181#191#191#183#168'n'#24#1#0#0 +#255#255#255#255#255#255#255#0#0#2'0Zz'#132#130#132#130#130#130#130#143#143 +#140#143#143#146#146#146#151#146#152#152#160#160#164#164#162#164#167#168#168 +#168#178#180#180#180#180#181#181#181#185#185#185#185#185#185#191#191#191#199 +#191#191#199#197#199#197#197#197#195#197#195#197#197#197#197#195#197#197#191 +#197#195#191#191#191#191#183#191#191#191#191#181#181#181#181#164'f'#24#1#0#0 +#255#255#255#255#255#255#255#0#0#0#27'Vz'#132#130#132#132#132#130#130#133#143 +#141#141#143#143#143#149#146#146#162#152#152#160#160#161#161#162#167#168#168 +#167#170#168#180#180#180#178#180#180#180#178#180#185#185#185#181#185#191#191 +#191#185#199#191#199#191#191#199#191#191#197#191#191#199#191#191#191#191#191 +#191#191#191#191#191#191#183#183#183#183#183#183#181#181#176#152'V'#11#0#0#0 +#255#255#255#255#255#255#255#0#0#1#24'Mnz'#130#130#132#132#130#132#132#141 +#132#141#143#143#141#141#149#146#151#151#151#151#149#162#160#160#160#161#161 +#161#168#168#167#167#167#170#180#180#176#176#180#180#180#180#181#185#181#181 +#181#191#191#185#185#185#191#191#191#191#191#191#191#191#191#191#191#183#183 +#183#183#183#183#181#181#183#181#176#183#183#178#176#176#176#146'M'#11#0#0#0 +#255#255#255#255#255#255#255#0#0#1#11'Dn'#133'z'#130#130#132#132#132#132#132 +#130#132#141#140#143#141#141#146#146#149#149#149#151#151#152#149#152#160#162 +#160#161#161#164#168#170#167#167#167#168#178#180#180#178#180#180#181#185#181 +#181#185#181#185#185#181#185#185#181#185#191#185#191#185#181#181#181#181#181 +#181#181#181#181#176#183#176#178#178#176#176#176#176#176#164#131'D'#3#0#0#255 +#255#255#255#255#255#255#255#0#0#0#11'Dnzzz'#132#132#132#128#128#132#132#134 +#132#132#141#141#141#143#143#141#143#149#146#149#149#149#152#152#152#160#160 +#160#164#161#164#164#168#168#168#167#168#180#178#180#180#180#178#178#180#180 +#176#181#185#181#181#185#185#180#181#181#181#185#181#181#181#181#181#181#178 +#178#176#176#176#176#176#178#176#170#170#170#170#164'|0'#3#0#0#255#255#255 +#255#255#255#255#255#0#0#0#3'0Zzz|z|||'#128#128#132#132#131#132#132#132#132 +#143#143#141#141#141#149#149#149#149#149#149#152#152#160#162#160#160#160#164 +#164#167#164#164#170#167#167#168#168#180#170#178#176#178#178#178#176#180#178 +#176#178#176#181#178#176#178#178#176#178#176#176#178#176#176#176#170#170#178 +#167#170#170#170#170#170#170#160'f&'#2#0#0#255#255#255#255#255#255#255#255 +#255#0#0#0'&Vrzxx|||'#132#132#132#128#134#134#128#134#134#134#144#141#141#141 +#141#141#149#144#149#146#151#149#149#152#149#149#160#160#160#164#164#164#164 +#164#164#170#170#170#170#170#167#170#180#178#170#170#176#178#176#176#167#170 +#176#176#176#170#170#170#170#170#170#170#170#170#170#170#164#170#170#164#164 +#164#164#146'V'#24#1#0#0#255#255#255#255#255#255#255#255#255#0#0#2#24'Mnzx||' +'|z||z'#128'~'#128#131#134#134#134#131#144#141#143#144#142#141#142#142#145 +#149#142#149#145#149#152#160#160#160#158#161#164#164#164#164#164#167#164#164 +#164#164#164#170#170#170#170#170#170#170#170#170#170#164#170#164#170#168#170 +#170#164#170#170#164#164#164#164#164#164#164#164#164#164#160#132'C'#11#1#0#0 +#255#255#255#255#255#255#255#255#255#0#0#0#11'Dfr||||xxx||'#128'|'#128#128 +#128#128#128#134#134#134#134#141#142#144#142#143#142#144#146#149#145#152#152 +#162#160#160#160#160#160#164#164#167#167#164#164#164#164#164#164#164#164#164 +#164#164#164#164#164#164#164#164#164#164#164#164#164#164#164#164#164#164#164 +#164#164#164#160#160#158#158#152'r7'#3#0#0#0#255#255#255#255#255#255#255#255 +#255#0#0#0#3'.Psrsr|yw||||||'#128#128#128#128#128#128#134#134#134#144#144#144 +#146#146#146#146#152#146#146#146#146#160#162#162#162#162#162#167#177#177#165 +#165#165#164#164#161#164#164#158#158#164#164#158#164#164#164#164#158#158#164 +#164#164#164#158#160#164#160#150#158#160#160#160#160#160#152#145'Z&'#2#0#0 +#255#255#255#255#255#255#255#255#255#255#255#0#0#1#24'Mfssrosyx|y||y||x'#128 +#131#131#128#128#134#134#134#134#142#141#141#149#144#142#146#145#145#145#152 +#157#162#152#152#162#162#167#166#172#166#165#172#177#177#177#166#172#167#164 ,#158#160#160#158#158#160#160#158#160#160#160#158#160#152#160#158#158#152#152 +#158#152#152#152#130'M'#11#1#0#0#255#255#255#255#255#255#255#255#255#255#255 +#0#0#0#3'7^rortrrrrtyr|||||y'#128'|'#128#128#131#128#134#134#134#134#134#134 +#144#142#142#144#146#142#149#146#146#152#145#145#145#152#162#162#162#166#166 +#172#172#172#172#172#172#165#162#162#164#160#152#152#152#152#158#145#152#149 +#152#152#152#152#145#145#145#148#152#146'f7'#3#1#0#0#255#255#255#255#255#255 +#255#255#255#255#255#0#0#0#2'&Pgkrrrktosrtt|wy||yy{|'#128#128#128#128#129#134 +#134#131#134#134#134#142#134#142#141#144#144#144#145#142#145#146#146#146#146 +#146#152#160#162#165#162#162#162#167#167#167#165#167#160#146#152#152#146#145 +#146#145#152#146#146#146#149#145#145#145#145#132'V'#24#0#0#0#255#255#255#255 +#255#255#255#255#255#255#255#255#255#0#0#0#11'C^rrkkkkokttttoyw|y|{|~{'#128 +#128#128#128#128#134#134#134#134#134#134#134#134#144#142#142#142#142#142#144 +#142#146#145#145#145#145#145#146#152#152#152#152#152#152#152#152#152#152#146 +#145#149#146#145#145#145#145#145#146#145#145#144#146#144'rC'#3#0#0#0#255#255 +#255#255#255#255#255#255#255#255#255#255#255#0#0#0#3'.Pfkckkokktkrrtyry|||||' +'|wy|'#128#128#128#129#128#128#128#134#134#134#134#134#134#134#144#142#144 +#144#144#142#142#144#144#144#144#145#144#144#144#144#141#149#145#145#146#146 +#146#146#146#145#146#144#144#144#144#144#144#143#144#131'^&'#2#1#0#0#255#255 +#255#255#255#255#255#255#255#255#255#255#255#0#0#1#2#24'CZgigrkkkkktttsoottt' +'wy||y||||'#128#128#128#128#128#131#128#134#134#134#134#134#131#134#134#134 +#144#144#144#144#144#144#141#144#144#144#144#144#142#144#143#149#145#145#145 +#145#144#144#144#144#144#142#144#144#144#131'rC'#11#0#0#0#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#0#0#0#3'.P^ggggggkgkgkortrrrrrttr|{' +'|||||||||'#128#131#128#128#128#128#128#134#134#134#131#129#131#144#132#134 +#134#134#134#131#134#134#131#134#141#144#144#144#143#143#144#143#141#141#132 +#132#143#130'|V&'#2#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#0#0#0#1#10'CP^fghhggggkgkkkrktrrrtr{tyxt||yy|||'#128'|'#128'~~y'#128 +#128#128#128#129#134#128#134#128#128#128#134#134#134#134#134#134#128#128#134 +#134#134#134#128#131#132#130#130#131#132'xf7'#11#0#0#0#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#2'&C^gaegggggegkkookk' +'ktrrttttr{t|y|ywy||||'#128#128'||'#128'|'#128#128#128#128#128#128#128#128 +#128#131#131#128#134#128#128#128#128#128#128#128#128#128#128#131#128#128'rP' +#24#2#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#0#0#0#1#11'.Nc_cgiggggccegikmmkmmmtttttt|yyy|yyyyy|y'#128'yy||'#128'y' +#129'||'#128#128'|'#128'w'#128#128'w'#129#129#128#128#129#128#128#128#131#131 +#128'{Z.'#3#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#0#0#0#2#24'EW_aicgeciceemiekmkelmlttttrttttytywwyyy|wy|||yy' +'y|y|xwywywyw'#128'|yyyyywxgC'#11#2#0#0#0#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#0#0#0#3'&EYacciciceegeeciiikkok' +'mmktttmoooyowoywwwwwy||yyywwwwwyywyyyxxywwyyycC'#24#2#0#0#0#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#1 +#5'.NY\aaiiicccceccgiikcekkkklkkktttottttowxootytrttwyyyyyyyyywx|yyywkP&'#3#1 +#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#0#0#0#2#11'.NY^^^\c\^aaaaeegeegegghgliokkokkktktmktrttt' +'ttytltttttowttotttttkP.'#3#1#0#0#0#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#2#10'7P^YYYYa' +'^^aacccgecceeeeeekckkkkkollkokkktkootktoooooowtttttooomP7'#11#1#0#0#0#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#0#0#1#2#26'7NU\\YYY\\a^_^^_cgeccceggiggekeilemllkkk' +'kookttkkkloookkokkoogW7'#11#2#0#0#0#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#0 +#3#26'7NXWWYYY\aYac\aaaaae^gigeceeeeigiceekcokkrkkkklkklkkllkrikgW7'#11#2#1#0 +#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#0#0#0#1#2#24'7NUYYW\\\Xa\YYY\aa' +'cgga\eaiggeeeggeeceiigkgkggkgkocgccekkgP7'#10#2#1#0#0#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#0#0#0#0#2#26'7NWWU\T\YYTY\Yaaacaaaaaaggeaaecegc' +'cceeccggiiegogegciccaN7'#10#2#0#0#0#0#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#0#0#0#0#2#26'.EUUWW^WY\Y\Y\\aYaa\\\ca^aeecaeicaeaeegcigeggc' +'ecgeea\N.'#11#2#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#0#0#0#0#2#10'&ENWUWWUUY\Y\YY\YY\YY\Y\\ca^^a\\aac^ggaccaeieccgcaWE&' +#3#1#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 ,#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#0#0#0#1#1#3#26'7NWUWWWWWUWWU\YY\YYY^\\aYaa\aaa\\\aa^caa\ca\g^WN7'#26#3#0 +#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#0#0#0#0#1#2#11'.EPNWTWWWWWWWWWXWWWYUYWWWYY^Y^\YYaY^_aYaaYYPNE&' +#10#2#1#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#0#0#0#0#0#2#5#26'.ENNUWWWTWWWWWWWWW^WWWYYY^\Y\\WY^_' +'\Y\YYWNE.'#10#3#1#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#0#0#2#11'&7ENTUXW' +'WWWTWUWWTWWXWWYXT\YYWXY^\YYUWNE7'#24#5#2#0#0#0#0#0#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#0#0#0#0#0#1#2#10'&.EENWUUUWWWWWPWWWWWTWWWXWYW^WWWWNE.'#26#11#2#1#0#0 +#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#0#0#1#2#10#26'.7E' +'ENNXTUWWXTWWUUTWXWWWUTUNNE7&'#24#5#2#1#0#0#0#0#0#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#0#0#0#0#0#0#1#2#5#10#26'&.7EENNPNNNUNWWUTNNNNEE' +'7&'#24#10#5#2#1#1#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#0#0#0#0#0#0#1#1#2#5#10#10#26'&..77777EEEEE77.&'#26 +#10#10#3#2#0#0#0#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#0#0#0#0#0#0#0#0#1#1#2#2#5#10#10#10#5#5 +#10#10#26#26#26#10#10#10#3#3#2#1#1#0#0#0#0#0#0#0#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#0#0#0#0#0#0#0#0#1#0#1#1#1#0#0#1#1#2#2#2#0#0#1#1#0#0#0#0#0#0#0#0#0#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#0#0#0#0#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 ,#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#240#0#0#0#255#255#255#255 +#255#255#255#255#255#255#255#255#240#0#0#0#255#255#255#255#255#255#255#255 +#255#255#255#255#240#0#0#0#255#255#255#255#255#224#0#127#255#255#255#255#240 +#0#0#0#255#255#255#255#252#0#0#3#255#255#255#255#240#0#0#0#255#255#255#255 +#224#0#0#0'?'#255#255#255#240#0#0#0#255#255#255#255#0#0#0#0#15#255#255#255 +#240#0#0#0#255#255#255#252#0#0#0#0#3#255#255#255#240#0#0#0#255#255#255#240#0 +#0#0#0#0#255#255#255#240#0#0#0#255#255#255#192#0#0#0#0#0'?'#255#255#240#0#0#0 +#255#255#255#128#0#0#0#0#0#15#255#255#240#0#0#0#255#255#254#0#0#0#0#0#0#7#255 +#255#240#0#0#0#255#255#252#0#0#0#0#0#0#1#255#255#240#0#0#0#255#255#248#0#0#0 +#0#0#0#0#255#255#240#0#0#0#255#255#240#0#0#0#0#0#0#0#127#255#240#0#0#0#255 +#255#192#0#0#0#0#0#0#0'?'#255#240#0#0#0#255#255#128#0#0#0#0#0#0#0#31#255#240 +#0#0#0#255#255#0#0#0#0#0#0#0#0#15#255#240#0#0#0#255#254#0#0#0#0#0#0#0#0#7#255 +#240#0#0#0#255#254#0#0#0#0#0#0#0#0#3#255#240#0#0#0#255#252#0#0#0#0#0#0#0#0#1 +#255#240#0#0#0#255#248#0#0#0#0#0#0#0#0#0#255#240#0#0#0#255#240#0#0#0#0#0#0#0 +#0#0#255#240#0#0#0#255#240#0#0#0#0#0#0#0#0#0#127#240#0#0#0#255#224#0#0#0#0#0 +#0#0#0#0'?'#240#0#0#0#255#192#0#0#0#0#0#0#0#0#0'?'#240#0#0#0#255#192#0#0#0#0 +#0#0#0#0#0#31#240#0#0#0#255#128#0#0#0#0#0#0#0#0#0#15#240#0#0#0#255#128#0#0#0 +#0#0#0#0#0#0#15#240#0#0#0#255#0#0#0#0#0#0#0#0#0#0#7#240#0#0#0#255#0#0#0#0#0#0 +#0#0#0#0#7#240#0#0#0#254#0#0#0#0#0#0#0#0#0#0#7#240#0#0#0#254#0#0#0#0#0#0#0#0 +#0#0#3#240#0#0#0#252#0#0#0#0#0#0#0#0#0#0#3#240#0#0#0#252#0#0#0#0#0#0#0#0#0#0 +#1#240#0#0#0#252#0#0#0#0#0#0#0#0#0#0#1#240#0#0#0#252#0#0#0#0#0#0#0#0#0#0#1 +#240#0#0#0#248#0#0#0#0#0#0#0#0#0#0#1#240#0#0#0#248#0#0#0#0#0#0#0#0#0#0#0#240 +#0#0#0#248#0#0#0#0#0#0#0#0#0#0#0#240#0#0#0#248#0#0#0#0#0#0#0#0#0#0#0#240#0#0 +#0#240#0#0#0#0#0#0#0#0#0#0#0#240#0#0#0#240#0#0#0#0#0#0#0#0#0#0#0'p'#0#0#0#240 +#0#0#0#0#0#0#0#0#0#0#0'p'#0#0#0#240#0#0#0#0#0#0#0#0#0#0#0'p'#0#0#0#240#0#0#0 +#0#0#0#0#0#0#0#0'p'#0#0#0#240#0#0#0#0#0#0#0#0#0#0#0'p'#0#0#0#240#0#0#0#0#0#0 +#0#0#0#0#0'p'#0#0#0#240#0#0#0#0#0#0#0#0#0#0#0'p'#0#0#0#240#0#0#0#0#0#0#0#0#0 +#0#0'p'#0#0#0#240#0#0#0#0#0#0#0#0#0#0#0'p'#0#0#0#240#0#0#0#0#0#0#0#0#0#0#0'p' +#0#0#0#240#0#0#0#0#0#0#0#0#0#0#0'p'#0#0#0#240#0#0#0#0#0#0#0#0#0#0#0'p'#0#0#0 +#240#0#0#0#0#0#0#0#0#0#0#0'p'#0#0#0#240#0#0#0#0#0#0#0#0#0#0#0'p'#0#0#0#240#0 +#0#0#0#0#0#0#0#0#0#0#240#0#0#0#240#0#0#0#0#0#0#0#0#0#0#0#240#0#0#0#240#0#0#0 +#0#0#0#0#0#0#0#0#240#0#0#0#248#0#0#0#0#0#0#0#0#0#0#0#240#0#0#0#248#0#0#0#0#0 +#0#0#0#0#0#0#240#0#0#0#248#0#0#0#0#0#0#0#0#0#0#0#240#0#0#0#248#0#0#0#0#0#0#0 +#0#0#0#1#240#0#0#0#252#0#0#0#0#0#0#0#0#0#0#1#240#0#0#0#252#0#0#0#0#0#0#0#0#0 +#0#1#240#0#0#0#252#0#0#0#0#0#0#0#0#0#0#3#240#0#0#0#254#0#0#0#0#0#0#0#0#0#0#3 +#240#0#0#0#254#0#0#0#0#0#0#0#0#0#0#3#240#0#0#0#254#0#0#0#0#0#0#0#0#0#0#7#240 +#0#0#0#255#0#0#0#0#0#0#0#0#0#0#7#240#0#0#0#255#0#0#0#0#0#0#0#0#0#0#15#240#0#0 +#0#255#128#0#0#0#0#0#0#0#0#0#15#240#0#0#0#255#128#0#0#0#0#0#0#0#0#0#31#240#0 +#0#0#255#192#0#0#0#0#0#0#0#0#0#31#240#0#0#0#255#224#0#0#0#0#0#0#0#0#0'?'#240 +#0#0#0#255#224#0#0#0#0#0#0#0#0#0#127#240#0#0#0#255#240#0#0#0#0#0#0#0#0#0#127 +#240#0#0#0#255#248#0#0#0#0#0#0#0#0#0#255#240#0#0#0#255#252#0#0#0#0#0#0#0#0#1 +#255#240#0#0#0#255#252#0#0#0#0#0#0#0#0#3#255#240#0#0#0#255#254#0#0#0#0#0#0#0 +#0#7#255#240#0#0#0#255#255#0#0#0#0#0#0#0#0#7#255#240#0#0#0#255#255#128#0#0#0 +#0#0#0#0#15#255#240#0#0#0#255#255#192#0#0#0#0#0#0#0#31#255#240#0#0#0#255#255 +#224#0#0#0#0#0#0#0#127#255#240#0#0#0#255#255#240#0#0#0#0#0#0#0#255#255#240#0 +#0#0#255#255#248#0#0#0#0#0#0#1#255#255#240#0#0#0#255#255#254#0#0#0#0#0#0#3 +#255#255#240#0#0#0#255#255#255#0#0#0#0#0#0#15#255#255#240#0#0#0#255#255#255 +#192#0#0#0#0#0#31#255#255#240#0#0#0#255#255#255#224#0#0#0#0#0#127#255#255#240 +#0#0#0#255#255#255#248#0#0#0#0#1#255#255#255#240#0#0#0#255#255#255#254#0#0#0 +#0#7#255#255#255#240#0#0#0#255#255#255#255#192#0#0#0#31#255#255#255#240#0#0#0 +#255#255#255#255#248#0#0#0#255#255#255#255#240#0#0#0#255#255#255#255#255#128 +#0#15#255#255#255#255#240#0#0#0#255#255#255#255#255#254#31#255#255#255#255 +#255#240#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#240#0#0#0#255 +#255#255#255#255#255#255#255#255#255#255#255#240#0#0#0#255#255#255#255#255 +#255#255#255#255#255#255#255#240#0#0#0#4'Menu'#7#9'MainMenu1'#10'OnActivate' +#7#12'FormActivate'#8'OnCreate'#7#10'FormCreate'#9'OnDestroy'#7#11'FormDestr' +'oy'#7'OnPaint'#7#9'FormPaint'#6'OnShow'#7#8'FormShow'#8'Position'#7#14'poSc' +'reenCenter'#8'ShowHint'#9#10'LCLVersion'#6#7'3.2.0.0'#0#12'TPageControl'#12 +'DataNoteBook'#22'AnchorSideLeft.Control'#7#5'Owner'#23'AnchorSideRight.Cont' +'rol'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom' +'.Control'#7#10'StatusBar1'#4'Left'#2#0#6'Height'#3'i'#1#3'Top'#3#159#0#5'Wi' ,'dth'#3'o'#3#10'ActivePage'#7#16'ConfigurationTab'#7'Anchors'#11#6'akLeft'#7 +'akRight'#8'akBottom'#0#10'ParentFont'#8#8'TabIndex'#2#5#8'TabOrder'#2#0#8'O' +'nChange'#7#18'DataNoteBookChange'#0#9'TTabSheet'#14'InformationTab'#7'Capti' +'on'#6#11'Information'#12'ClientHeight'#3'H'#1#11'ClientWidth'#3'e'#3#10'Par' +'entFont'#8#0#9'TGroupBox'#14'ColourControls'#22'AnchorSideLeft.Control'#7#12 +'LoggingGroup'#23'AnchorSideRight.Control'#7#14'InformationTab'#20'AnchorSid' +'eRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#14'InformationTa' +'b'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#28#2#6'Height'#3#220#0 +#3'Top'#2'h'#5'Width'#3'E'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'a' +'kBottom'#0#19'BorderSpacing.Right'#2#4#20'BorderSpacing.Bottom'#2#4#7'Capti' +'on'#6#16'Colour controls:'#12'ClientHeight'#3#200#0#11'ClientWidth'#3'C'#1 +#10'ParentFont'#8#8'TabOrder'#2#0#7'Visible'#8#0#11'TRadioGroup'#18'ColourSc' +'alingRadio'#22'AnchorSideLeft.Control'#7#14'ColourControls'#21'AnchorSideTo' +'p.Control'#7#14'ColourControls'#24'AnchorSideBottom.Control'#7#14'ColourCon' +'trols'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#2#6'Height'#2'p'#3 +'Top'#2#2#5'Width'#2'u'#8'AutoFill'#9#8'AutoSize'#9#20'BorderSpacing.Around' +#2#2#7'Caption'#6#8'Scaling:'#28'ChildSizing.LeftRightSpacing'#2#6#29'ChildS' +'izing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.Enla' +'rgeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal' +#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18 +'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.Cont' +'rolsPerLine'#2#1#12'ClientHeight'#2'\'#11'ClientWidth'#2's'#13'Items.String' +'s'#1#6#10'Power down'#6#2'2%'#6#3'20%'#6#4'100%'#0#7'OnClick'#7#23'ColourSc' +'alingRadioClick'#10'ParentFont'#8#8'TabOrder'#2#0#0#0#11'TRadioGroup'#11'Co' +'lourRadio'#22'AnchorSideLeft.Control'#7#18'ColourScalingRadio'#19'AnchorSid' +'eLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#18'ColourCyclingRadi' +'o'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#14'C' +'olourControls'#20'AnchorSideRight.Side'#7#9'asrBottom'#21'AnchorSideBottom.' +'Side'#7#9'asrBottom'#4'Left'#2'y'#6'Height'#2'p'#3'Top'#2'F'#5'Width'#3#200 +#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoFill'#9#8'AutoSize'#9 +#20'BorderSpacing.Around'#2#2#7'Caption'#6#7'Colour:'#28'ChildSizing.LeftRig' +'htSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildRes' +'ize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'Chil' +'dSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertica' +'l'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopTo' +'Bottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'\'#11'Client' +'Width'#3#198#0#13'Items.Strings'#1#6#3'Red'#6#4'Blue'#6#5'Clear'#6#5'Green' +#0#7'OnClick'#7#16'ColourRadioClick'#10'ParentFont'#8#8'TabOrder'#2#1#0#0#11 +'TRadioGroup'#18'ColourCyclingRadio'#22'AnchorSideLeft.Control'#7#18'ColourS' +'calingRadio'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Contro' +'l'#7#18'ColourScalingRadio'#23'AnchorSideRight.Control'#7#14'ColourControls' +#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2'y'#6'Height'#2'B'#3'Top'#2 +#2#5'Width'#3#200#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoFill' +#9#8'AutoSize'#9#19'BorderSpacing.Right'#2#2#7'Caption'#6#7'Cycling'#28'Chil' +'dSizing.LeftRightSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHom' +'ogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChild' +'Resize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizin' +'g.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftT' +'oRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight' +#2'.'#11'ClientWidth'#3#198#0#13'Items.Strings'#1#6#5'Fixed'#6#13'Cycled (RB' +'CG)'#0#7'OnClick'#7#23'ColourCyclingRadioClick'#8'TabOrder'#2#2#0#0#0#9'TGr' +'oupBox'#16'MeasurementGroup'#22'AnchorSideLeft.Control'#7#14'InformationTab' +#21'AnchorSideTop.Control'#7#14'InformationTab'#4'Left'#2#5#6'Height'#2'X'#3 +'Top'#2#5#5'Width'#3#15#2#18'BorderSpacing.Left'#2#5#17'BorderSpacing.Top'#2 +#5#7'Caption'#6#11'Measurement'#12'ClientHeight'#2'V'#11'ClientWidth'#3#13#2 +#10'ParentFont'#8#8'TabOrder'#2#1#0#6'TLabel'#16'DisplayedReading'#19'Anchor' +'SideLeft.Side'#7#9'asrCenter'#21'AnchorSideTop.Control'#7#16'MeasurementGro' +'up'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2'c'#6'Height'#2'D'#3'Top' +#2#9#5'Width'#2'N'#9'Alignment'#7#8'taCenter'#7'Anchors'#11#5'akTop'#0#17'Bo' +'rderSpacing.Top'#2#2#7'Caption'#6#6' '#11'Font.Height'#2#207#9'Font.Na' +'me'#6#4'Sans'#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#12'ReadingUn' +'its'#22'AnchorSideLeft.Control'#7#16'DisplayedReading'#19'AnchorSideLeft.Si' +'de'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#16'DisplayedReading'#18'Anch' +'orSideTop.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#16'DisplayedR' ,'eading'#21'AnchorSideBottom.Side'#7#9'asrCenter'#4'Left'#3#183#0#6'Height'#2 +#19#4'Hint'#6#31'magnitudes per square arcsecond'#3'Top'#2'!'#5'Width'#2'Q'#7 +'Anchors'#11#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2#6#17'BorderSpa' +'cing.Top'#2#2#7'Caption'#6#13'mags/arcsec'#194#178#11'ParentColor'#8#10'Par' +'entFont'#8#14'ParentShowHint'#8#8'ShowHint'#9#0#0#6'TLabel'#13'DisplayedNEL' +'M'#23'AnchorSideRight.Control'#7#16'MeasurementGroup'#20'AnchorSideRight.Si' +'de'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#13'Displayedcdm2'#4'Left' +#3#229#1#6'Height'#2#19#4'Hint'#6#28'Naked Eye Limiting Magnitude'#3'Top'#2 +#19#5'Width'#2'$'#7'Anchors'#11#7'akRight'#8'akBottom'#0#19'BorderSpacing.Ri' +'ght'#2#4#20'BorderSpacing.Bottom'#2#3#7'Caption'#6#4'NELM'#11'ParentColor'#8 +#10'ParentFont'#8#14'ParentShowHint'#8#8'ShowHint'#9#0#0#6'TLabel'#13'Displa' +'yedcdm2'#23'AnchorSideRight.Control'#7#16'MeasurementGroup'#20'AnchorSideRi' +'ght.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#12'DisplayedNSU'#4 +'Left'#3#229#1#6'Height'#2#19#4'Hint'#6#24'candela per square meter'#3'Top'#2 +')'#5'Width'#2'$'#7'Anchors'#11#7'akRight'#8'akBottom'#0#19'BorderSpacing.Ri' +'ght'#2#4#20'BorderSpacing.Bottom'#2#3#7'Caption'#6#6'cd/m'#194#178#11'Paren' +'tColor'#8#10'ParentFont'#8#14'ParentShowHint'#8#8'ShowHint'#9#0#0#6'TLabel' +#12'DisplayedNSU'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.C' +'ontrol'#7#16'MeasurementGroup'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'A' +'nchorSideBottom.Control'#7#16'MeasurementGroup'#21'AnchorSideBottom.Side'#7 +#9'asrBottom'#4'Left'#3#238#1#6'Height'#2#19#4'Hint'#6#17'Natural Sky Units' +#3'Top'#2'?'#5'Width'#2#27#7'Anchors'#11#7'akRight'#8'akBottom'#0#19'BorderS' +'pacing.Right'#2#4#20'BorderSpacing.Bottom'#2#4#7'Caption'#6#3'NSU'#11'Paren' +'tColor'#8#10'ParentFont'#8#14'ParentShowHint'#8#8'ShowHint'#9#0#0#0#9'TGrou' +'pBox'#12'DetailsGroup'#22'AnchorSideLeft.Control'#7#16'MeasurementGroup'#21 +'AnchorSideTop.Control'#7#16'MeasurementGroup'#18'AnchorSideTop.Side'#7#9'as' +'rBottom'#24'AnchorSideBottom.Control'#7#14'InformationTab'#21'AnchorSideBot' +'tom.Side'#7#9'asrBottom'#4'Left'#2#5#6'Height'#3#235#0#3'Top'#2']'#5'Width' +#3#17#2#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#7'Caption'#6#7'Detail' +'s'#12'ClientHeight'#3#215#0#11'ClientWidth'#3#15#2#10'ParentFont'#8#8'TabOr' +'der'#2#2#0#7'TButton'#13'VersionButton'#22'AnchorSideLeft.Control'#7#12'Det' +'ailsGroup'#21'AnchorSideTop.Control'#7#12'DetailsGroup'#23'AnchorSideRight.' +'Control'#7#12'DetailsGroup'#4'Left'#2#6#6'Height'#2#28#4'Hint'#6'#Get the d' +'evice version information.'#3'Top'#2#0#5'Width'#3#254#0#18'BorderSpacing.Le' +'ft'#2#6#7'Caption'#6#7'Version'#7'Enabled'#8#10'ParentFont'#8#8'TabOrder'#2 +#0#7'OnClick'#7#18'VersionButtonClick'#0#0#8'TListBox'#14'VersionListBox'#22 +'AnchorSideLeft.Control'#7#13'VersionButton'#21'AnchorSideTop.Control'#7#13 +'VersionButton'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Con' +'trol'#7#13'VersionButton'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'Anchor' +'SideBottom.Control'#7#12'DetailsGroup'#21'AnchorSideBottom.Side'#7#9'asrBot' +'tom'#4'Left'#2#6#6'Height'#3#182#0#3'Top'#2#31#5'Width'#3#254#0#7'Anchors' +#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#17'BorderSpacing.Top'#2#3#20 +'BorderSpacing.Bottom'#2#2#11'Font.Height'#2#244#9'Font.Name'#6#16'Courier 1' +'0 Pitch'#10'Font.Pitch'#7#7'fpFixed'#10'ItemHeight'#2#0#10'ParentFont'#8#11 +'ScrollWidth'#3#252#0#8'TabOrder'#2#1#8'TopIndex'#2#255#0#0#7'TButton'#13'Re' +'questButton'#22'AnchorSideLeft.Control'#7#13'VersionButton'#19'AnchorSideLe' +'ft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#13'VersionButton'#23'An' +'chorSideRight.Control'#7#12'DetailsGroup'#20'AnchorSideRight.Side'#7#9'asrB' +'ottom'#4'Left'#3#11#1#6'Height'#2#28#4'Hint'#6'0Get an updated reading from' +' the selected device.'#3'Top'#2#0#5'Width'#3#254#0#7'Anchors'#11#5'akTop'#7 +'akRight'#0#18'BorderSpacing.Left'#2#6#19'BorderSpacing.Right'#2#6#7'Caption' +#6#7'Reading'#10'ParentFont'#8#8'TabOrder'#2#2#7'OnClick'#7#18'RequestButton' +'Click'#0#0#8'TListBox'#14'ReadingListBox'#22'AnchorSideLeft.Control'#7#13'R' +'equestButton'#21'AnchorSideTop.Control'#7#14'VersionListBox'#23'AnchorSideR' +'ight.Control'#7#13'RequestButton'#20'AnchorSideRight.Side'#7#9'asrBottom'#24 +'AnchorSideBottom.Control'#7#14'VersionListBox'#21'AnchorSideBottom.Side'#7#9 +'asrBottom'#4'Left'#3#11#1#6'Height'#3#182#0#3'Top'#2#31#5'Width'#3#254#0#7 +'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#11'Font.Height'#2 +#244#9'Font.Name'#6#16'Courier 10 Pitch'#10'Font.Pitch'#7#7'fpFixed'#10'Item' +'Height'#2#0#10'ParentFont'#8#11'ScrollWidth'#3#252#0#8'TabOrder'#2#3#8'TopI' +'ndex'#2#255#0#0#0#9'TGroupBox'#12'LoggingGroup'#22'AnchorSideLeft.Control'#7 +#16'MeasurementGroup'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTo' +'p.Control'#7#16'MeasurementGroup'#4'Left'#3#28#2#6'Height'#2'X'#3'Top'#2#5#5 +'Width'#3'C'#1#18'BorderSpacing.Left'#2#8#7'Caption'#6#7'Logging'#12'ClientH' ,'eight'#2'D'#11'ClientWidth'#3'A'#1#10'ParentFont'#8#8'TabOrder'#2#3#0#7'TBu' +'tton'#12'HeaderButton'#22'AnchorSideLeft.Control'#7#12'LoggingGroup'#21'Anc' +'horSideTop.Control'#7#12'LoggingGroup'#4'Left'#2#3#6'Height'#2#28#4'Hint'#6 +#28'View the log header settings'#3'Top'#2#3#5'Width'#2'd'#20'BorderSpacing.' +'Around'#2#3#7'Caption'#6#6'Header'#10'ParentFont'#8#8'TabOrder'#2#0#7'OnCli' +'ck'#7#17'HeaderButtonClick'#0#0#7'TButton'#18'LogOneRecordButton'#22'Anchor' +'SideLeft.Control'#7#12'HeaderButton'#19'AnchorSideLeft.Side'#7#9'asrBottom' +#21'AnchorSideTop.Control'#7#12'HeaderButton'#4'Left'#2'm'#6'Height'#2#28#4 +'Hint'#6'-Log one reading into log directory path file.'#3'Top'#2#3#5'Width' +#2'd'#18'BorderSpacing.Left'#2#6#7'Caption'#6#10'One record'#10'ParentFont'#8 +#8'TabOrder'#2#1#7'OnClick'#7#23'LogOneRecordButtonClick'#0#0#7'TButton'#19 +'LogContinuousButton'#21'AnchorSideTop.Control'#7#12'HeaderButton'#18'Anchor' +'SideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#18'LogOneRecordB' +'utton'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2'm'#6'Height'#2#28#4 +'Hint'#6'4Start logging readings into log directory path file.'#3'Top'#2'%'#5 +'Width'#2'd'#7'Anchors'#11#5'akTop'#7'akRight'#0#17'BorderSpacing.Top'#2#6#7 +'Caption'#6#10'Continuous'#10'ParentFont'#8#8'TabOrder'#2#2#7'OnClick'#7#24 +'LogContinuousButtonClick'#0#0#7'TButton'#17'LogSettingsButton'#22'AnchorSid' +'eLeft.Control'#7#12'HeaderButton'#21'AnchorSideTop.Control'#7#12'HeaderButt' +'on'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#3#6'Height'#2#28#4'Hint' +#6#24'Set options for logging.'#3'Top'#2'%'#5'Width'#2'd'#17'BorderSpacing.T' +'op'#2#6#7'Caption'#6#8'Settings'#8'TabOrder'#2#3#7'OnClick'#7#22'LogSetting' +'sButtonClick'#0#0#0#0#9'TTabSheet'#14'CalibrationTab'#7'Caption'#6#11'Calib' +'ration'#12'ClientHeight'#3'H'#1#11'ClientWidth'#3'e'#3#10'ParentFont'#8#0#6 +'TLabel'#6'Label9'#4'Left'#3#255#0#6'Height'#2#19#3'Top'#2'O'#5'Width'#2'['#7 +'Caption'#6#14'Desired Values'#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLab' +'el'#7'Label10'#4'Left'#3#172#1#6'Height'#2#19#3'Top'#2'O'#5'Width'#2'Q'#7'C' +'aption'#6#13'Actual Values'#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel' +#7'Label11'#21'AnchorSideTop.Control'#7#6'LCODes'#18'AnchorSideTop.Side'#7#9 +'asrCenter'#23'AnchorSideRight.Control'#7#6'LCODes'#4'Left'#2'S'#6'Height'#2 +#20#3'Top'#2'm'#5'Width'#3#167#0#9'Alignment'#7#14'taRightJustify'#7'Anchors' +#11#5'akTop'#7'akRight'#0#8'AutoSize'#8#7'Caption'#6#26'Light Calibration Of' +'fset: '#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#7'Label12'#21'Anch' +'orSideTop.Control'#7#6'LCTDes'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'Anc' +'horSideRight.Control'#7#6'LCTDes'#4'Left'#2#21#6'Height'#2#20#3'Top'#3#137#0 +#5'Width'#3#229#0#9'Alignment'#7#14'taRightJustify'#7'Anchors'#11#5'akTop'#6 +'akLeft'#7'akRight'#0#8'AutoSize'#8#7'Caption'#6#31'Light Calibration Temper' +'ature: '#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#7'Label13'#21'Anc' +'horSideTop.Control'#7#6'DCPDes'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'An' +'chorSideRight.Control'#7#6'DCPDes'#4'Left'#2'-'#6'Height'#2#20#3'Top'#3#164 +#0#5'Width'#3#205#0#9'Alignment'#7#14'taRightJustify'#7'Anchors'#11#5'akTop' +#6'akLeft'#7'akRight'#0#8'AutoSize'#8#7'Caption'#6#25'Dark Calibration Perio' +'d: '#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#7'Label14'#21'AnchorS' +'ideTop.Control'#7#6'DCTDes'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'Anchor' +'SideRight.Control'#7#6'DCTDes'#4'Left'#2#29#6'Height'#2#20#3'Top'#3#191#0#5 +'Width'#3#221#0#9'Alignment'#7#14'taRightJustify'#7'Anchors'#11#5'akTop'#6'a' +'kLeft'#7'akRight'#0#8'AutoSize'#8#7'Caption'#6#30'Dark Calibration Temperat' +'ure: '#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#7'Label15'#4'Left'#2 +'O'#6'Height'#2'_'#3'Top'#3#216#0#5'Width'#3'Y'#1#7'Caption'#6#214'Notes:'#10 +' - See calibration sheet for original settings.'#10' - Add/subtract Light C' +'al offset for extra glass covering.'#10' - Temperature values get reconvert' +'ed, '#10' so the actual may be slightly different than the desired.'#11'P' +'arentColor'#8#10'ParentFont'#8#0#0#7'TButton'#16'LogCalInfoButton'#4'Left'#2 +#15#6'Height'#2#28#3'Top'#2','#5'Width'#3#160#0#7'Caption'#6#20'Log Calibrat' +'ion Info'#10'ParentFont'#8#8'TabOrder'#2#0#7'Visible'#8#7'OnClick'#7#21'Log' +'CalInfoButtonClick'#0#0#7'TButton'#6'LCOSet'#4'Left'#3'c'#1#6'Height'#2#25#3 +'Top'#2'f'#5'Width'#2'2'#7'Caption'#6#3'Set'#10'ParentFont'#8#8'TabOrder'#2#2 +#7'OnClick'#7#11'LCOSetClick'#0#0#7'TButton'#6'LCTSet'#4'Left'#3'c'#1#6'Heig' +'ht'#2#26#3'Top'#3#128#0#5'Width'#2'2'#7'Caption'#6#3'Set'#10'ParentFont'#8#8 +'TabOrder'#2#5#7'OnClick'#7#11'LCTSetClick'#0#0#7'TButton'#6'DCPSet'#4'Left' +#3'c'#1#6'Height'#2#26#3'Top'#3#157#0#5'Width'#2'2'#7'Caption'#6#3'Set'#10'P' +'arentFont'#8#8'TabOrder'#2#8#7'OnClick'#7#11'DCPSetClick'#0#0#7'TButton'#6 +'DCTSet'#4'Left'#3'c'#1#6'Height'#2#26#3'Top'#3#184#0#5'Width'#2'2'#7'Captio' +'n'#6#3'Set'#10'ParentFont'#8#8'TabOrder'#2#11#7'OnClick'#7#11'DCTSetClick'#0 ,#0#5'TEdit'#6'LCODes'#4'Left'#3#250#0#6'Height'#2'"'#3'Top'#2'f'#5'Width'#2 +']'#9'Alignment'#7#8'taCenter'#11'Font.Height'#2#244#9'Font.Name'#6#16'Couri' +'er 10 Pitch'#10'ParentFont'#8#8'TabOrder'#2#1#0#0#5'TEdit'#6'LCTDes'#4'Left' +#3#250#0#6'Height'#2'"'#3'Top'#3#130#0#5'Width'#2']'#9'Alignment'#7#8'taCent' +'er'#11'Font.Height'#2#244#9'Font.Name'#6#16'Courier 10 Pitch'#10'ParentFont' +#8#8'TabOrder'#2#4#0#0#5'TEdit'#6'DCPDes'#4'Left'#3#250#0#6'Height'#2'"'#3'T' +'op'#3#157#0#5'Width'#2']'#9'Alignment'#7#8'taCenter'#11'Font.Height'#2#244#9 +'Font.Name'#6#16'Courier 10 Pitch'#10'ParentFont'#8#8'TabOrder'#2#7#0#0#5'TE' +'dit'#6'DCTDes'#4'Left'#3#250#0#6'Height'#2'"'#3'Top'#3#184#0#5'Width'#2']'#9 +'Alignment'#7#8'taCenter'#11'Font.Height'#2#244#9'Font.Name'#6#16'Courier 10' +' Pitch'#10'ParentFont'#8#8'TabOrder'#2#10#0#0#5'TEdit'#6'LCOAct'#4'Left'#3 +#160#1#6'Height'#2'"'#3'Top'#2'h'#5'Width'#2']'#9'Alignment'#7#8'taCenter'#11 +'Font.Height'#2#244#9'Font.Name'#6#16'Courier 10 Pitch'#10'Font.Pitch'#7#7'f' +'pFixed'#10'ParentFont'#8#8'ReadOnly'#9#8'TabOrder'#2#3#0#0#5'TEdit'#6'LCTAc' +'t'#4'Left'#3#160#1#6'Height'#2'"'#3'Top'#3#132#0#5'Width'#2']'#9'Alignment' +#7#8'taCenter'#11'Font.Height'#2#244#9'Font.Name'#6#16'Courier 10 Pitch'#10 +'Font.Pitch'#7#7'fpFixed'#10'ParentFont'#8#8'ReadOnly'#9#8'TabOrder'#2#6#0#0 +#5'TEdit'#6'DCPAct'#4'Left'#3#160#1#6'Height'#2'"'#3'Top'#3#159#0#5'Width'#2 +']'#9'Alignment'#7#8'taCenter'#11'Font.Height'#2#244#9'Font.Name'#6#16'Couri' +'er 10 Pitch'#10'Font.Pitch'#7#7'fpFixed'#10'ParentFont'#8#8'ReadOnly'#9#8'T' +'abOrder'#2#9#0#0#5'TEdit'#6'DCTAct'#4'Left'#3#160#1#6'Height'#2'"'#3'Top'#3 +#186#0#5'Width'#2']'#9'Alignment'#7#8'taCenter'#11'Font.Height'#2#244#9'Font' +'.Name'#6#16'Courier 10 Pitch'#10'Font.Pitch'#7#7'fpFixed'#10'ParentFont'#8#8 +'ReadOnly'#9#8'TabOrder'#2#12#0#0#6'TLabel'#7'Label32'#4'Left'#3#0#2#6'Heigh' +'t'#2#19#3'Top'#2'l'#5'Width'#2''''#7'Caption'#6#5'mpsas'#11'ParentColor'#8 +#10'ParentFont'#8#0#0#6'TLabel'#7'Label33'#4'Left'#3#0#2#6'Height'#2#19#3'To' +'p'#3#136#0#5'Width'#2#14#7'Caption'#6#3#194#176'C'#11'ParentColor'#8#10'Par' +'entFont'#8#0#0#6'TLabel'#7'Label34'#4'Left'#3#0#2#6'Height'#2#19#3'Top'#3 +#190#0#5'Width'#2#14#7'Caption'#6#3#194#176'C'#11'ParentColor'#8#10'ParentFo' +'nt'#8#0#0#6'TLabel'#7'Label35'#4'Left'#3#3#2#6'Height'#2#19#3'Top'#3#163#0#5 +'Width'#2#6#7'Caption'#6#1's'#11'ParentColor'#8#10'ParentFont'#8#0#0#7'TBitB' +'tn'#16'GetCalInfoButton'#4'Left'#2#14#6'Height'#2#28#4'Hint'#6#7'Refresh'#3 +'Top'#2#8#5'Width'#2'"'#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0 +#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0 +#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#1#255 +#255#255#1#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#1#255#255#255#31#255 +#255#255'^'#255#255#255'4'#255#255#255#11#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#2 +#255#255#255#5#255#255#255#0#255#255#255#0#255#255#255#1#255#255#255';;;;z' +#140#140#140'~'#236#236#236'z'#255#255#255#28#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#1#250#250#250'Q'#246#246 +#246']'#255#255#255#1#255#255#255#0#255#255#255#1#255#255#255':'#1#1#1#182#0 +#0#0#156#21#21#21#129#206#206#206#131#255#255#255#17#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255' '#148#148#148#132'xxx'#132 +#255#255#255'0'#255#255#255#0#255#255#255#0#255#255#255#21#155#155#155'f'#22 +#22#22#160#0#0#0#167#20#20#20#136#233#233#233'd'#255#255#255#1#255#255#255#0 +#255#255#255#0#255#255#255#4#215#215#215'|'#4#4#4#150#0#0#0#151#190#190#190 +#133#255#255#255#16#255#255#255#0#255#255#255#0#255#255#255#3#255#255#255'&+' +'++'#149#0#0#0#152'eee'#127#255#255#255#13#255#255#255#0#255#255#255#1#247 +#247#247'Q((('#157#0#0#0#164#0#0#0#161#16#16#16#163#220#220#220't'#255#255 +#255#2#255#255#255#0#255#255#255#0#255#255#255#3#147#147#147'j'#0#0#0#167'))' +')'#142#255#255#255'%'#255#255#255#1#255#255#255#16'mmm'#148#5#5#5#195#1#1#1 +#182#0#0#0#170#9#9#9#188'BBB'#169#255#255#255''''#255#255#255#1#255#255#255#0 +#255#255#255#1#255#255#255'A'#22#22#22#159#6#6#6#166#255#255#255'6'#255#255 +#255#1#255#255#255#22#255#255#255'-'#255#255#255'3((('#151#0#0#0#179#147#147 +#147#139#255#255#255'3'#255#255#255'"'#255#255#255#1#255#255#255#0#255#255 +#255#1#244#244#244'm'#1#1#1#176#14#14#14#162#255#255#255'$'#255#255#255#1#255 +#255#255#0#255#255#255#1#255#255#255#3'WWW'#138#0#0#0#197#26#26#26#168#253 ,#253#253'a'#255#255#255#24#255#255#255#4#255#255#255#23#255#255#255'Fvvv'#148 +#0#0#0#192')))'#161#255#255#255#12#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#1#245#245#245'2'#8#8#8#192#0#0#0#205'LLL'#158#228#228#228#132 +#255#255#255't'#238#238#238#129'qqq'#151#1#1#1#200#2#2#2#206#194#194#194'S' +#255#255#255#1#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#2#158#158#158'c'#5#5#5#206#0#0#0#221#0#0#0#214#10#10#10#198#0#0#0 +#213#0#0#0#220#1#1#1#216'ooo'#128#255#255#255#8#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#3#212 +#212#212'A,,,'#164#6#6#6#205#1#1#1#225#7#7#7#202'"""'#172#192#192#192'T'#255 +#255#255#8#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#1#255#255#255#6 +#255#255#255'#'#255#255#255'5'#255#255#255'"'#255#255#255#10#255#255#255#1 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#1#255#255#255#1#255#255#255#1#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#7'OnClick'#7#21'Get' +'CalInfoButtonClick'#10'ParentFont'#8#8'TabOrder'#2#13#0#0#0#9'TTabSheet'#17 +'ReportIntervalTab'#7'Caption'#6#15'Report Interval'#12'ClientHeight'#3'H'#1 +#11'ClientWidth'#3'e'#3#10'ParentFont'#8#0#11'TCheckGroup'#14'ContCheckGroup' +#4'Left'#3#152#2#6'Height'#3#168#0#3'Top'#2#8#5'Width'#3#200#0#8'AutoFill'#9 +#7'Caption'#6#18'Continuous reports'#28'ChildSizing.LeftRightSpacing'#2#6#28 +'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'cr' +'sHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousC' +'hildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildS' +'izing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclL' +'eftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHei' +'ght'#3#148#0#11'ClientWidth'#3#198#0#13'Items.Strings'#1#6#17'Reporting ena' +'bled'#6#20'Reporting compressed'#6#18'Report un-averaged'#6#21'LED blink (a' +'ccessory)'#6#24'Ideal crossover firmware'#0#11'OnItemClick'#7#23'ContCheckG' +'roupItemClick'#10'ParentFont'#8#8'TabOrder'#2#0#7'Visible'#8#4'Data'#10#9#0 +#0#0#5#0#0#0#2#2#2#2#2#0#0#9'TGroupBox'#20'TimedReportsGroupBox'#4'Left'#2#8 +#6'Height'#3' '#1#3'Top'#2#8#5'Width'#3#135#2#7'Caption'#6#13'Timed reports' +#12'ClientHeight'#3#30#1#11'ClientWidth'#3#133#2#10'ParentFont'#8#8'TabOrder' +#2#1#0#7'TBitBtn'#17'GetReportInterval'#22'AnchorSideLeft.Control'#7#20'Time' +'dReportsGroupBox'#21'AnchorSideTop.Control'#7#20'TimedReportsGroupBox'#4'Le' +'ft'#2#4#6'Height'#2#28#4'Hint'#6#28'Get Report Interval settings'#3'Top'#2#4 +#5'Width'#2'"'#20'BorderSpacing.Around'#2#4#10'Glyph.Data'#10':'#4#0#0'6'#4#0 +#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0 +#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#1#255#255#255#1#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#1 +#255#255#255#31#255#255#255'^'#255#255#255'4'#255#255#255#11#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#2#255#255#255#5#255#255#255#0#255#255#255#0#255#255 +#255#1#255#255#255';;;;z'#140#140#140'~'#236#236#236'z'#255#255#255#28#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#1#250#250#250'Q'#246#246#246']'#255#255#255#1#255#255#255#0#255#255#255 +#1#255#255#255':'#1#1#1#182#0#0#0#156#21#21#21#129#206#206#206#131#255#255 +#255#17#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255 +' '#148#148#148#132'xxx'#132#255#255#255'0'#255#255#255#0#255#255#255#0#255 +#255#255#21#155#155#155'f'#22#22#22#160#0#0#0#167#20#20#20#136#233#233#233'd' +#255#255#255#1#255#255#255#0#255#255#255#0#255#255#255#4#215#215#215'|'#4#4#4 +#150#0#0#0#151#190#190#190#133#255#255#255#16#255#255#255#0#255#255#255#0#255 +#255#255#3#255#255#255'&+++'#149#0#0#0#152'eee'#127#255#255#255#13#255#255 +#255#0#255#255#255#1#247#247#247'Q((('#157#0#0#0#164#0#0#0#161#16#16#16#163 +#220#220#220't'#255#255#255#2#255#255#255#0#255#255#255#0#255#255#255#3#147 +#147#147'j'#0#0#0#167')))'#142#255#255#255'%'#255#255#255#1#255#255#255#16'm' +'mm'#148#5#5#5#195#1#1#1#182#0#0#0#170#9#9#9#188'BBB'#169#255#255#255''''#255 +#255#255#1#255#255#255#0#255#255#255#1#255#255#255'A'#22#22#22#159#6#6#6#166 ,#255#255#255'6'#255#255#255#1#255#255#255#22#255#255#255'-'#255#255#255'3(((' +#151#0#0#0#179#147#147#147#139#255#255#255'3'#255#255#255'"'#255#255#255#1 +#255#255#255#0#255#255#255#1#244#244#244'm'#1#1#1#176#14#14#14#162#255#255 +#255'$'#255#255#255#1#255#255#255#0#255#255#255#1#255#255#255#3'WWW'#138#0#0 +#0#197#26#26#26#168#253#253#253'a'#255#255#255#24#255#255#255#4#255#255#255 +#23#255#255#255'Fvvv'#148#0#0#0#192')))'#161#255#255#255#12#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#1#245#245#245'2'#8#8#8#192#0#0#0#205'LL' +'L'#158#228#228#228#132#255#255#255't'#238#238#238#129'qqq'#151#1#1#1#200#2#2 +#2#206#194#194#194'S'#255#255#255#1#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#2#158#158#158'c'#5#5#5#206#0#0#0#221#0#0#0#214#10 +#10#10#198#0#0#0#213#0#0#0#220#1#1#1#216'ooo'#128#255#255#255#8#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#3#212#212#212'A,,,'#164#6#6#6#205#1#1#1#225#7#7#7#202'"""'#172#192 +#192#192'T'#255#255#255#8#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#1 +#255#255#255#6#255#255#255'#'#255#255#255'5'#255#255#255'"'#255#255#255#10 +#255#255#255#1#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#1#255#255#255#1#255#255#255#1#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#7'OnC' +'lick'#7#22'GetReportIntervalClick'#10'ParentFont'#8#8'TabOrder'#2#0#0#0#6'T' +'Label'#7'Label16'#22'AnchorSideLeft.Control'#7#6'ITiDes'#19'AnchorSideLeft.' +'Side'#7#9'asrCenter'#18'AnchorSideTop.Side'#7#9'asrBottom'#24'AnchorSideBot' +'tom.Control'#7#6'ITiDes'#4'Left'#3#250#0#6'Height'#2#19#3'Top'#2''''#5'Widt' +'h'#2'U'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#13'Desired Value' +#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#7'Label17'#22'AnchorSideLe' +'ft.Control'#7#4'ITiE'#19'AnchorSideLeft.Side'#7#9'asrCenter'#21'AnchorSideT' +'op.Control'#7#4'ITiE'#18'AnchorSideTop.Side'#7#9'asrBottom'#24'AnchorSideBo' +'ttom.Control'#7#4'ITiE'#4'Left'#3#208#1#6'Height'#2#19#3'Top'#2''''#5'Width' +#2'B'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#9'in EEPROM'#11'Par' +'entColor'#8#10'ParentFont'#8#0#0#6'TLabel'#7'Label18'#21'AnchorSideTop.Cont' +'rol'#7#6'ITiDes'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.C' +'ontrol'#7#6'ITiDes'#4'Left'#2'/'#6'Height'#2#19#3'Top'#2'F'#5'Width'#3#193#0 +#9'Alignment'#7#14'taRightJustify'#7'Anchors'#11#5'akTop'#7'akRight'#0#19'Bo' +'rderSpacing.Right'#2#6#7'Caption'#6#31'Report Interval Time (seconds):'#11 +'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#7'Label19'#21'AnchorSideTop.C' +'ontrol'#7#6'IThDes'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRigh' +'t.Control'#7#6'IThDes'#4'Left'#2'O'#6'Height'#2#19#3'Top'#3#176#0#5'Width'#3 +#161#0#9'Alignment'#7#14'taRightJustify'#7'Anchors'#11#5'akTop'#7'akRight'#0 +#19'BorderSpacing.Right'#2#6#7'Caption'#6#25'Report Threshold (mpsas):'#11'P' +'arentColor'#8#10'ParentFont'#8#0#0#7'TButton'#11'ITiERButton'#22'AnchorSide' +'Left.Control'#7#6'ITiDes'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorS' +'ideTop.Control'#7#6'ITiDes'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'Anchor' +'SideRight.Control'#7#10'ITiRButton'#4'Left'#3'W'#1#6'Height'#2#25#4'Hint'#6 +#21'Set in EEPROM and RAM'#3'Top'#2'C'#5'Width'#2'2'#7'Anchors'#11#5'akTop'#7 +'akRight'#0#20'BorderSpacing.Around'#2#4#7'Caption'#6#3'E/R'#10'ParentFont'#8 +#8'TabOrder'#2#1#7'OnClick'#7#16'ITiERButtonClick'#0#0#7'TButton'#11'IThERBu' +'tton'#22'AnchorSideLeft.Control'#7#6'IThDes'#19'AnchorSideLeft.Side'#7#9'as' +'rBottom'#21'AnchorSideTop.Control'#7#6'IThDes'#18'AnchorSideTop.Side'#7#9'a' +'srCenter'#4'Left'#3'W'#1#6'Height'#2#26#4'Hint'#6#21'Set in EEPROM and RAM' +#3'Top'#3#172#0#5'Width'#2'2'#20'BorderSpacing.Around'#2#4#7'Caption'#6#3'E/' +'R'#10'ParentFont'#8#8'TabOrder'#2#2#7'OnClick'#7#16'IThERButtonClick'#0#0#5 +'TEdit'#6'ITiDes'#23'AnchorSideRight.Control'#7#11'ITiERButton'#4'Left'#3#246 +#0#6'Height'#2'"'#4'Hint'#6#15'Time in seconds'#3'Top'#2'>'#5'Width'#2']'#7 +'Anchors'#11#7'akRight'#0#20'BorderSpacing.Around'#2#4#11'Font.Height'#2#244 +#9'Font.Name'#6#16'Courier 10 Pitch'#10'ParentFont'#8#8'TabOrder'#2#3#0#0#5 +'TEdit'#6'IThDes'#22'AnchorSideLeft.Control'#7#6'ITiDes'#4'Left'#3#246#0#6'H' +'eight'#2'"'#4'Hint'#6')Value in magnitudes per square arcsecond.'#3'Top'#3 +#168#0#5'Width'#2']'#7'Anchors'#11#6'akLeft'#0#11'Font.Height'#2#244#9'Font.' +'Name'#6#16'Courier 10 Pitch'#10'ParentFont'#8#8'TabOrder'#2#4#0#0#5'TEdit'#4 +'ITiE'#22'AnchorSideLeft.Control'#7#10'ITiRButton'#19'AnchorSideLeft.Side'#7 +#9'asrBottom'#21'AnchorSideTop.Control'#7#10'ITiRButton'#18'AnchorSideTop.Si' +'de'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#4'ITiR'#4'Left'#3#195#1#6 +'Height'#2'"'#4'Hint'#6#18'Permanent setting.'#3'Top'#2'>'#5'Width'#2']'#9'A' ,'lignment'#7#8'taCenter'#7'Anchors'#11#5'akTop'#7'akRight'#0#20'BorderSpacin' +'g.Around'#2#4#11'Font.Height'#2#244#9'Font.Name'#6#16'Courier 10 Pitch'#10 +'ParentFont'#8#8'ReadOnly'#9#8'TabOrder'#2#5#0#0#5'TEdit'#4'IThE'#22'AnchorS' +'ideLeft.Control'#7#10'IThRButton'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21 +'AnchorSideTop.Control'#7#10'IThRButton'#18'AnchorSideTop.Side'#7#9'asrCente' +'r'#4'Left'#3#195#1#6'Height'#2'"'#4'Hint'#6#18'Permanent setting.'#3'Top'#3 +#168#0#5'Width'#2']'#9'Alignment'#7#8'taCenter'#20'BorderSpacing.Around'#2#4 +#11'Font.Height'#2#244#9'Font.Name'#6#16'Courier 10 Pitch'#10'ParentFont'#8#8 +'ReadOnly'#9#8'TabOrder'#2#6#0#0#7'TButton'#10'ITiRButton'#22'AnchorSideLeft' +'.Control'#7#11'ITiERButton'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'Ancho' +'rSideTop.Control'#7#6'ITiDes'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'Anch' +'orSideRight.Control'#7#4'ITiE'#4'Left'#3#141#1#6'Height'#2#25#4'Hint'#6#10 +'Set in RAM'#3'Top'#2'C'#5'Width'#2'2'#7'Anchors'#11#5'akTop'#7'akRight'#0#20 +'BorderSpacing.Around'#2#4#7'Caption'#6#1'R'#10'ParentFont'#8#8'TabOrder'#2#7 +#7'OnClick'#7#15'ITiRButtonClick'#0#0#7'TButton'#10'IThRButton'#22'AnchorSid' +'eLeft.Control'#7#11'IThERButton'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21 +'AnchorSideTop.Control'#7#11'IThERButton'#18'AnchorSideTop.Side'#7#9'asrCent' +'er'#4'Left'#3#141#1#6'Height'#2#26#4'Hint'#6#10'Set in RAM'#3'Top'#3#172#0#5 +'Width'#2'2'#20'BorderSpacing.Around'#2#4#7'Caption'#6#1'R'#10'ParentFont'#8 +#8'TabOrder'#2#8#7'OnClick'#7#15'IThRButtonClick'#0#0#5'TEdit'#4'IThR'#22'An' +'chorSideLeft.Control'#7#4'IThE'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'A' +'nchorSideTop.Control'#7#4'IThE'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'An' +'chorSideRight.Control'#7#20'TimedReportsGroupBox'#20'AnchorSideRight.Side'#7 +#9'asrBottom'#4'Left'#3'$'#2#6'Height'#2'"'#4'Hint'#6#18'Temporary setting.' +#3'Top'#3#168#0#5'Width'#2']'#9'Alignment'#7#8'taCenter'#7'Anchors'#11#5'akT' +'op'#7'akRight'#0#20'BorderSpacing.Around'#2#4#11'Font.Height'#2#244#9'Font.' +'Name'#6#16'Courier 10 Pitch'#10'ParentFont'#8#8'ReadOnly'#9#8'TabOrder'#2#9 +#0#0#5'TEdit'#4'ITiR'#22'AnchorSideLeft.Control'#7#4'ITiE'#19'AnchorSideLeft' +'.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6'ITiDes'#18'AnchorSideTo' +'p.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#20'TimedReportsGroupBo' +'x'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3'$'#2#6'Height'#2'"'#4 +'Hint'#6#18'Temporary setting.'#3'Top'#2'>'#5'Width'#2']'#9'Alignment'#7#8't' +'aCenter'#7'Anchors'#11#5'akTop'#7'akRight'#0#20'BorderSpacing.Around'#2#4#11 +'Font.Height'#2#244#9'Font.Name'#6#16'Courier 10 Pitch'#10'ParentFont'#8#8'R' +'eadOnly'#9#8'TabOrder'#2#10#0#0#6'TLabel'#7'Label28'#22'AnchorSideLeft.Cont' +'rol'#7#7'Label17'#24'AnchorSideBottom.Control'#7#7'Label17'#4'Left'#3#208#1 +#6'Height'#2#19#3'Top'#2#20#5'Width'#2'Q'#7'Anchors'#11#6'akLeft'#8'akBottom' +#0#7'Caption'#6#13'Actual Values'#11'ParentColor'#8#10'ParentFont'#8#0#0#6'T' +'Label'#7'Label36'#22'AnchorSideLeft.Control'#7#4'ITiR'#19'AnchorSideLeft.Si' +'de'#7#9'asrCenter'#24'AnchorSideBottom.Control'#7#4'ITiR'#4'Left'#3'='#2#6 +'Height'#2#19#3'Top'#2''''#5'Width'#2'+'#7'Anchors'#11#6'akLeft'#8'akBottom' +#0#7'Caption'#6#6'in RAM'#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#7 +'Label37'#22'AnchorSideLeft.Control'#7#7'Label19'#21'AnchorSideTop.Control'#7 +#7'Label19'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2'Q'#6'Height'#2'9' +#3'Top'#3#211#0#5'Width'#3'G'#1#7'Anchors'#11#6'akLeft'#0#20'BorderSpacing.A' +'round'#2#2#7'Caption'#6'lNotes:'#10' - Set threshold to limit reporting to ' +'dark reports only.'#10' - Set into RAM for temporary testing only.'#11'Pare' +'ntColor'#8#10'ParentFont'#8#0#0#6'TLabel'#7'Label38'#22'AnchorSideLeft.Cont' +'rol'#7#7'Label18'#21'AnchorSideTop.Control'#7#7'Label18'#18'AnchorSideTop.S' +'ide'#7#9'asrBottom'#4'Left'#2'1'#6'Height'#2'9'#3'Top'#2'['#5'Width'#3#2#1 +#20'BorderSpacing.Around'#2#2#7'Caption'#6'XNotes:'#10' - Set Interval time ' +'to 0 to disable.'#10' - Set into RAM for temporary testing only.'#11'Parent' +'Color'#8#10'ParentFont'#8#0#0#6'TLabel'#7'Label39'#22'AnchorSideLeft.Contro' +'l'#7#4'IThE'#19'AnchorSideLeft.Side'#7#9'asrCenter'#24'AnchorSideBottom.Con' +'trol'#7#4'IThE'#4'Left'#3#208#1#6'Height'#2#19#3'Top'#3#145#0#5'Width'#2'B' +#7'Anchors'#11#6'akLeft'#8'akBottom'#0#20'BorderSpacing.Around'#2#4#7'Captio' +'n'#6#9'in EEPROM'#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#7'Label4' +'0'#22'AnchorSideLeft.Control'#7#7'Label39'#24'AnchorSideBottom.Control'#7#7 +'Label39'#4'Left'#3#208#1#6'Height'#2#19#3'Top'#2'z'#5'Width'#2'Q'#7'Anchors' +#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#13'Actual Values'#11'ParentColor'#8 +#10'ParentFont'#8#0#0#6'TLabel'#7'Label41'#22'AnchorSideLeft.Control'#7#4'IT' +'hR'#19'AnchorSideLeft.Side'#7#9'asrCenter'#24'AnchorSideBottom.Control'#7#4 +'IThR'#4'Left'#3'='#2#6'Height'#2#19#3'Top'#3#145#0#5'Width'#2'+'#7'Anchors' +#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#6'in RAM'#11'ParentColor'#8#10'Pare' ,'ntFont'#8#0#0#6'TLabel'#7'Label46'#22'AnchorSideLeft.Control'#7#11'ITiERBut' +'ton'#21'AnchorSideTop.Control'#7#11'ITiERButton'#18'AnchorSideTop.Side'#7#9 +'asrBottom'#24'AnchorSideBottom.Control'#7#7'Label39'#4'Left'#3'W'#1#6'Heigh' +'t'#2#19#3'Top'#2'`'#5'Width'#2'Y'#7'Caption'#6#15'Press to load >'#11'Paren' +'tColor'#8#10'ParentFont'#8#0#0#6'TLabel'#7'Label47'#22'AnchorSideLeft.Contr' +'ol'#7#11'IThERButton'#21'AnchorSideTop.Control'#7#11'IThERButton'#18'Anchor' +'SideTop.Side'#7#9'asrBottom'#4'Left'#3'W'#1#6'Height'#2#19#3'Top'#3#202#0#5 +'Width'#2'Y'#7'Caption'#6#15'Press to load >'#11'ParentColor'#8#10'ParentFon' +'t'#8#0#0#0#0#9'TTabSheet'#11'FirmwareTab'#18'AnchorSideTop.Side'#7#9'asrCen' +'ter'#7'Caption'#6#8'Firmware'#12'ClientHeight'#3'H'#1#11'ClientWidth'#3'e'#3 +#10'ParentFont'#8#0#7'TButton'#15'CheckLockButton'#21'AnchorSideTop.Control' +#7#12'LoadFirmware'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3'x'#2#6'H' +'eight'#2#25#4'Hint'#6#29'Check the lock switch status.'#3'Top'#3#179#0#5'Wi' +'dth'#2'X'#7'Anchors'#11#5'akTop'#0#7'Caption'#6#10'Check Lock'#10'ParentFon' +'t'#8#8'TabOrder'#2#0#7'Visible'#8#7'OnClick'#7#20'CheckLockButtonClick'#0#0 +#7'TButton'#12'LoadFirmware'#4'Left'#2#1#6'Height'#2#25#4'Hint'#6'/Load the ' +'selected formware file into the meter.'#3'Top'#3#179#0#5'Width'#3#143#0#7'A' +'nchors'#11#0#20'BorderSpacing.Bottom'#2#2#7'Caption'#6#13'Load Firmware'#7 +'Enabled'#8#10'ParentFont'#8#8'TabOrder'#2#1#7'OnClick'#7#17'LoadFirmwareCli' +'ck'#0#0#5'TEdit'#15'CheckLockResult'#22'AnchorSideLeft.Control'#7#15'CheckL' +'ockButton'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control' +#7#15'CheckLockButton'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#208#2 +#6'Height'#2'$'#4'Hint'#6#12'Lock status.'#3'Top'#3#173#0#5'Width'#2'R'#10'P' +'arentFont'#8#8'TabOrder'#2#2#7'Visible'#8#0#0#12'TProgressBar'#23'LoadFirmw' +'areProgressBar'#22'AnchorSideLeft.Control'#7#27'ResetForFirmwareProgressBar' +#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#27'Reset' +'ForFirmwareProgressBar'#4'Left'#3#167#0#6'Height'#2#10#4'Hint'#6#22'Firmwar' +'e load progress'#3'Top'#3#179#0#5'Width'#3#136#1#10'ParentFont'#8#6'Smooth' +#9#4'Step'#2#1#8'TabOrder'#2#4#0#0#12'TProgressBar'#27'ResetForFirmwareProgr' +'essBar'#22'AnchorSideLeft.Control'#7#12'LoadFirmware'#19'AnchorSideLeft.Sid' +'e'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#12'LoadFirmware'#4'Left'#3#147 +#0#6'Height'#2#10#4'Hint'#6#27'Initial reset unit progress'#3'Top'#3#179#0#5 +'Width'#2#20#18'BorderSpacing.Left'#2#3#3'Max'#2#20#10'ParentFont'#8#6'Smoot' +'h'#9#4'Step'#2#1#8'TabOrder'#2#3#0#0#12'TProgressBar FinalResetForFirmwareP' +'rogressBar'#22'AnchorSideLeft.Control'#7#23'LoadFirmwareProgressBar'#19'Anc' +'horSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#23'LoadFirmwar' +'eProgressBar'#4'Left'#3'/'#2#6'Height'#2#10#4'Hint'#6#25'Final reset unit p' +'rogress'#3'Top'#3#179#0#5'Width'#2#20#3'Max'#2#20#10'ParentFont'#8#6'Smooth' +#9#4'Step'#2#1#8'TabOrder'#2#5#0#0#7'TButton'#18'FirmwareInfoButton'#22'Anch' +'orSideLeft.Control'#7#15'CurrentFirmware'#19'AnchorSideLeft.Side'#7#9'asrBo' +'ttom'#21'AnchorSideTop.Control'#7#15'CurrentFirmware'#18'AnchorSideTop.Side' +#7#9'asrCenter'#23'AnchorSideRight.Control'#7#11'FirmwareTab'#20'AnchorSideR' +'ight.Side'#7#9'asrBottom'#4'Left'#3#19#1#6'Height'#2#25#4'Hint'#6' View fir' +'mware version changelog.'#3'Top'#2#8#5'Width'#3#136#0#17'BorderSpacing.Top' +#2#2#19'BorderSpacing.Right'#2#3#7'Caption'#6#16'Firmware details'#21'Constr' +'aints.MinHeight'#2#25#20'Constraints.MinWidth'#2'F'#10'ParentFont'#8#8'TabO' +'rder'#2#6#7'OnClick'#7#23'FirmwareInfoButtonClick'#0#0#6'TLabel'#13'Loading' +'Status'#22'AnchorSideLeft.Control'#7#12'LoadFirmware'#19'AnchorSideLeft.Sid' +'e'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#12'LoadFirmware'#21'Anchor' +'SideBottom.Side'#7#9'asrBottom'#4'Left'#3#147#0#6'Height'#2#19#3'Top'#3#185 +#0#5'Width'#3#210#1#7'Anchors'#11#6'akLeft'#8'akBottom'#0#18'BorderSpacing.L' +'eft'#2#3#7'Caption'#6'KStatus of loading firmware: Waiting for Load Firmwar' +'e button to be pressed.'#11'ParentColor'#8#10'ParentFont'#8#0#0#12'TLabeled' +'Edit'#15'CurrentFirmware'#21'AnchorSideTop.Control'#7#11'FirmwareTab'#4'Lef' +'t'#3#147#0#6'Height'#2'$'#4'Hint'#6'DThe current firmware Protocol, Model, ' +'Feature of the selected meter.'#3'Top'#2#2#5'Width'#3#128#0#7'Anchors'#11#5 +'akTop'#0#17'BorderSpacing.Top'#2#2#16'EditLabel.Height'#2#19#15'EditLabel.W' +'idth'#2'o'#17'EditLabel.Caption'#6#17'Current firmware:'#21'EditLabel.Paren' +'tColor'#8#20'EditLabel.ParentFont'#8#13'LabelPosition'#7#6'lpLeft'#10'Paren' +'tFont'#8#8'ReadOnly'#9#8'TabOrder'#2#7#0#0#7'TButton'#20'SelectFirmwareButt' +'on'#21'AnchorSideTop.Control'#7#12'FirmwareFile'#18'AnchorSideTop.Side'#7#9 +'asrCenter'#4'Left'#2#1#6'Height'#2#25#3'Top'#2','#5'Width'#3#143#0#7'Anchor' +'s'#11#5'akTop'#0#7'Caption'#6#15'Select firmware'#8'TabOrder'#2#8#7'OnClick' +#7#25'SelectFirmwareButtonClick'#0#0#5'TEdit'#12'FirmwareFile'#22'AnchorSide' ,'Left.Control'#7#15'CurrentFirmware'#21'AnchorSideTop.Control'#7#15'CurrentF' +'irmware'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#147#0#6'Height'#2 +'$'#4'Hint'#6'&Firmware file to be loaded into meter.'#3'Top'#2'&'#5'Width'#3 +#139#2#10'ParentFont'#8#8'TabOrder'#2#9#8'OnChange'#7#18'FirmwareFileChange' +#0#0#9'TGroupBox'#10'FWUSBGroup'#22'AnchorSideLeft.Control'#7#15'CurrentFirm' +'ware'#21'AnchorSideTop.Control'#7#12'FirmwareFile'#18'AnchorSideTop.Side'#7 +#9'asrBottom'#4'Left'#3#147#0#6'Height'#2'J'#3'Top'#2'J'#5'Width'#3#155#2#8 +'AutoSize'#9#7'Caption'#6#15'USB comm check:'#12'ClientHeight'#2'6'#11'Clien' +'tWidth'#3#153#2#8'TabOrder'#2#10#0#7'TButton'#15'FWWaitUSBButton'#22'Anchor' +'SideLeft.Control'#7#10'FWUSBGroup'#21'AnchorSideTop.Control'#7#10'FWUSBGrou' +'p'#4'Left'#2#3#6'Height'#2#25#3'Top'#2#0#5'Width'#3#165#0#18'BorderSpacing.' +'Left'#2#3#7'Caption'#6#19'Start UNPLUG method'#7'Enabled'#8#8'TabOrder'#2#0 +#7'OnClick'#7#20'FWWaitUSBButtonClick'#0#0#6'TLabel'#16'FWUSBExistsLabel'#22 +'AnchorSideLeft.Control'#7#15'FWWaitUSBButton'#19'AnchorSideLeft.Side'#7#9'a' +'srBottom'#21'AnchorSideTop.Control'#7#15'FWWaitUSBButton'#18'AnchorSideTop.' +'Side'#7#9'asrCenter'#4'Left'#3#168#0#6'Height'#2#15#3'Top'#2#5#5'Width'#3 +#149#1#8'AutoSize'#8#11'ParentColor'#8#0#0#6'TLabel'#9'FWCounter'#22'AnchorS' +'ideLeft.Control'#7#16'FWUSBExistsLabel'#19'AnchorSideLeft.Side'#7#9'asrBott' +'om'#21'AnchorSideTop.Control'#7#15'FWWaitUSBButton'#18'AnchorSideTop.Side'#7 +#9'asrCenter'#4'Left'#3'A'#2#6'Height'#2#15#3'Top'#2#5#5'Width'#2'T'#8'AutoS' +'ize'#8#20'BorderSpacing.Around'#2#4#11'ParentColor'#8#0#0#7'TButton'#15'FWS' +'topUSBButton'#22'AnchorSideLeft.Control'#7#10'FWUSBGroup'#21'AnchorSideTop.' +'Control'#7#15'FWWaitUSBButton'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'Anc' +'horSideRight.Control'#7#15'FWWaitUSBButton'#20'AnchorSideRight.Side'#7#9'as' +'rBottom'#4'Left'#2#3#6'Height'#2#25#3'Top'#2#29#5'Width'#3#165#0#7'Anchors' +#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#3#17'BorderSpac' +'ing.Top'#2#4#7'Caption'#6#18'Stop UNPLUG method'#7'Enabled'#8#8'TabOrder'#2 +#1#7'OnClick'#7#20'FWStopUSBButtonClick'#0#0#0#9'TGroupBox'#10'FWEthGroup'#4 +'Left'#2#1#6'Height'#2'8'#3'Top'#3#8#1#5'Width'#3'('#1#7'Anchors'#11#0#7'Cap' +'tion'#6#16'Ethernet module:'#12'ClientHeight'#2'$'#11'ClientWidth'#3'&'#1#8 +'TabOrder'#2#11#0#7'TButton'#14'bXPortDefaults'#22'AnchorSideLeft.Control'#7 +#10'FWEthGroup'#21'AnchorSideTop.Control'#7#10'FWEthGroup'#21'AnchorSideBott' +'om.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#2#28#4'Hint'#6'"Set SQM-LE XP' +'ort default baudrate.'#3'Top'#2#0#5'Width'#3#143#0#7'Caption'#6#14'XPort de' +'faults'#10'ParentFont'#8#8'TabOrder'#2#0#7'OnClick'#7#19'bXPortDefaultsClic' +'k'#0#0#12'TProgressBar'#21'ResetXPortProgressBar'#22'AnchorSideLeft.Control' +#7#14'bXPortDefaults'#19'AnchorSideLeft.Side'#7#9'asrBottom'#4'Left'#3#146#0 +#6'Height'#2#10#4'Hint'#6#30'XPort default setting progress'#3'Top'#2#0#5'Wi' +'dth'#2'('#18'BorderSpacing.Left'#2#3#3'Max'#2#21#10'ParentFont'#8#6'Smooth' +#9#4'Step'#2#1#8'TabOrder'#2#1#0#0#12'TProgressBar'#29'FinalResetForXPortPro' +'gressBar'#22'AnchorSideLeft.Control'#7#21'ResetXPortProgressBar'#19'AnchorS' +'ideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#21'ResetXPortProgr' +'essBar'#4'Left'#3#186#0#6'Height'#2#10#4'Hint'#6#20'XPort reset progress'#3 +'Top'#2#0#5'Width'#2'e'#3'Max'#3#200#0#10'ParentFont'#8#6'Smooth'#9#4'Step'#2 +#1#8'TabOrder'#2#2#0#0#0#0#9'TTabSheet'#14'DataLoggingTab'#7'Caption'#6#12'D' +'ata Logging'#12'ClientHeight'#3'H'#1#11'ClientWidth'#3'e'#3#10'ParentFont'#8 +#0#9'TGroupBox'#12'StorageGroup'#22'AnchorSideLeft.Control'#7#15'TriggerGrou' +'pBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#19 +'DeviceClockGroupBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRig' +'ht.Control'#7#14'DataLoggingTab'#20'AnchorSideRight.Side'#7#9'asrBottom'#4 +'Left'#3#178#1#6'Height'#3#2#1#3'Top'#2'7'#5'Width'#3#179#1#7'Anchors'#11#5 +'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#2#7'Caption'#6#7'Sto' +'rage'#12'ClientHeight'#3#238#0#11'ClientWidth'#3#177#1#10'ParentFont'#8#8'T' +'abOrder'#2#0#0#6'TLabel'#13'CapacityLabel'#22'AnchorSideLeft.Control'#7#12 +'StorageGroup'#21'AnchorSideTop.Control'#7#19'DLDBSizeProgressBar'#18'Anchor' +'SideTop.Side'#7#9'asrCenter'#4'Left'#2#6#6'Height'#2#19#3'Top'#3#197#0#5'Wi' +'dth'#2'7'#18'BorderSpacing.Left'#2#6#7'Caption'#6#9'Capacity:'#11'ParentCol' +'or'#8#10'ParentFont'#8#0#0#6'TLabel'#23'DLDBSizeProgressBarText'#22'AnchorS' +'ideLeft.Control'#7#12'StorageGroup'#23'AnchorSideRight.Control'#7#12'Storag' +'eGroup'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control' +#7#12'StorageGroup'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#6#6'H' +'eight'#2#20#3'Top'#3#218#0#5'Width'#3#165#1#9'Alignment'#7#8'taCenter'#7'An' +'chors'#11#6'akLeft'#7'akRight'#8'akBottom'#0#8'AutoSize'#8#18'BorderSpacing' +'.Left'#2#6#19'BorderSpacing.Right'#2#6#11'ParentColor'#8#10'ParentFont'#8#0 ,#0#7'TButton'#14'DLLogOneButton'#22'AnchorSideLeft.Control'#7#16'DLRetrieveB' +'utton'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#16 +'DLRetrieveButton'#23'AnchorSideRight.Control'#7#16'DLEraseAllButton'#4'Left' +#2'W'#6'Height'#2#25#4'Hint'#6'=Log one record to SQM unit database when rea' +'ding > threshold.'#3'Top'#2#0#5'Width'#2'K'#18'BorderSpacing.Left'#2#6#19'B' +'orderSpacing.Right'#2#6#7'Caption'#6#7'Log one'#10'ParentFont'#8#8'TabOrder' +#2#0#7'OnClick'#7#19'DLLogOneButtonClick'#0#0#7'TButton'#16'DLEraseAllButton' +#22'AnchorSideLeft.Control'#7#14'DLLogOneButton'#19'AnchorSideLeft.Side'#7#9 +'asrBottom'#21'AnchorSideTop.Control'#7#14'DLLogOneButton'#20'AnchorSideRigh' +'t.Side'#7#9'asrBottom'#4'Left'#3#168#0#6'Height'#2#25#4'Hint'#6#26'Erase en' +'tire SQM database.'#3'Top'#2#0#5'Width'#2'K'#7'Caption'#6#9'Erase all'#10'P' +'arentFont'#8#8'TabOrder'#2#1#7'OnClick'#7#21'DLEraseAllButtonClick'#0#0#7'T' +'Button'#14'LogFirstRecord'#22'AnchorSideLeft.Control'#7#12'StorageGroup'#18 +'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#25#4'Hint'#6#10 +'1st record'#3'Top'#3#168#0#5'Width'#2'('#7'Anchors'#11#6'akLeft'#0#18'Borde' +'rSpacing.Left'#2#6#7'Caption'#6#2'|<'#10'ParentFont'#8#8'TabOrder'#2#2#7'On' +'Click'#7#19'LogFirstRecordClick'#0#0#7'TButton'#17'LogPreviousRecord'#22'An' +'chorSideLeft.Control'#7#19'LogPreviousRecord10'#19'AnchorSideLeft.Side'#7#9 +'asrBottom'#4'Left'#2'b'#6'Height'#2#25#4'Hint'#6#15'Previous record'#3'Top' +#3#168#0#5'Width'#2'('#7'Anchors'#11#6'akLeft'#0#18'BorderSpacing.Left'#2#6#7 +'Caption'#6#1'<'#10'ParentFont'#8#8'TabOrder'#2#3#7'OnClick'#7#22'LogPreviou' +'sRecordClick'#0#0#7'TButton'#13'LogNextRecord'#22'AnchorSideLeft.Control'#7 +#17'LogPreviousRecord'#19'AnchorSideLeft.Side'#7#9'asrBottom'#4'Left'#3#144#0 +#6'Height'#2#25#4'Hint'#6#11'Next record'#3'Top'#3#167#0#5'Width'#2'('#7'Anc' +'hors'#11#6'akLeft'#0#18'BorderSpacing.Left'#2#6#7'Caption'#6#1'>'#10'Parent' +'Font'#8#8'TabOrder'#2#4#7'OnClick'#7#18'LogNextRecordClick'#0#0#7'TButton' +#13'LogLastRecord'#22'AnchorSideLeft.Control'#7#15'LogNextRecord10'#19'Ancho' +'rSideLeft.Side'#7#9'asrBottom'#4'Left'#3#236#0#6'Height'#2#25#4'Hint'#6#11 +'Last record'#3'Top'#3#168#0#5'Width'#2'('#7'Anchors'#11#6'akLeft'#0#18'Bord' +'erSpacing.Left'#2#6#7'Caption'#6#2'>|'#10'ParentFont'#8#8'TabOrder'#2#5#7'O' +'nClick'#7#18'LogLastRecordClick'#0#0#12'TProgressBar'#19'DLDBSizeProgressBa' +'r'#22'AnchorSideLeft.Control'#7#13'CapacityLabel'#19'AnchorSideLeft.Side'#7 +#9'asrBottom'#23'AnchorSideRight.Control'#7#12'StorageGroup'#20'AnchorSideRi' +'ght.Side'#7#9'asrBottom'#4'Left'#2'@'#6'Height'#2#20#3'Top'#3#196#0#5'Width' +#3'k'#1#7'Anchors'#11#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#3#19'B' +'orderSpacing.Right'#2#6#10'ParentFont'#8#6'Smooth'#9#4'Step'#2#1#8'TabOrder' +#2#6#0#0#7'TButton'#19'LogPreviousRecord10'#22'AnchorSideLeft.Control'#7#14 +'LogFirstRecord'#19'AnchorSideLeft.Side'#7#9'asrBottom'#4'Left'#2'4'#6'Heigh' +'t'#2#25#4'Hint'#6#15'Prevoous 1/10th'#3'Top'#3#168#0#5'Width'#2'('#7'Anchor' +'s'#11#6'akLeft'#0#18'BorderSpacing.Left'#2#6#7'Caption'#6#2'<<'#10'ParentFo' +'nt'#8#8'TabOrder'#2#7#7'OnClick'#7#24'LogPreviousRecord10Click'#0#0#7'TButt' +'on'#15'LogNextRecord10'#22'AnchorSideLeft.Control'#7#13'LogNextRecord'#19'A' +'nchorSideLeft.Side'#7#9'asrBottom'#4'Left'#3#190#0#6'Height'#2#25#4'Hint'#6 +#11'Next 1/10th'#3'Top'#3#168#0#5'Width'#2'('#7'Anchors'#11#6'akLeft'#0#18'B' +'orderSpacing.Left'#2#6#7'Caption'#6#2'>>'#10'ParentFont'#8#8'TabOrder'#2#8#7 +'OnClick'#7#20'LogNextRecord10Click'#0#0#7'TButton'#16'DLRetrieveButton'#22 +'AnchorSideLeft.Control'#7#12'StorageGroup'#21'AnchorSideTop.Control'#7#12'S' +'torageGroup'#4'Left'#2#6#6'Height'#2#25#3'Top'#2#0#5'Width'#2'K'#18'BorderS' +'pacing.Left'#2#6#19'BorderSpacing.Right'#2#6#7'Caption'#6#8'Retrieve'#10'Pa' +'rentFont'#8#8'TabOrder'#2#9#7'OnClick'#7#21'DLRetrieveButtonClick'#0#0#244#8 +'TSynEdit'#15'LogRecordResult'#22'AnchorSideLeft.Control'#7#16'DLRetrieveBut' +'ton'#21'AnchorSideTop.Control'#7#16'DLRetrieveButton'#18'AnchorSideTop.Side' +#7#9'asrBottom'#23'AnchorSideRight.Control'#7#12'StorageGroup'#20'AnchorSide' +'Right.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#14'LogFirstRecord' +#4'Left'#2#6#6'Height'#3#139#0#3'Top'#2#26#5'Width'#3#168#1#17'BorderSpacing' +'.Top'#2#1#19'BorderSpacing.Right'#2#3#20'BorderSpacing.Bottom'#2#3#7'Anchor' +'s'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#11'Font.Height'#2#243#9'F' +'ont.Name'#6#11'Courier New'#10'Font.Pitch'#7#7'fpFixed'#12'Font.Quality'#7 +#16'fqNonAntialiased'#11'ParentColor'#8#10'ParentFont'#8#8'TabOrder'#2#10#14 +'Gutter.Visible'#8#12'Gutter.Width'#2'9'#19'Gutter.MouseActions'#14#0#17'Rig' +'htGutter.Width'#2#0#24'RightGutter.MouseActions'#14#0#10'Keystrokes'#14#1#7 +'Command'#7#4'ecUp'#8'ShortCut'#2'&'#0#1#7'Command'#7#7'ecSelUp'#8'ShortCut' +#3'& '#0#1#7'Command'#7#10'ecScrollUp'#8'ShortCut'#3'&@'#0#1#7'Command'#7#6 +'ecDown'#8'ShortCut'#2'('#0#1#7'Command'#7#9'ecSelDown'#8'ShortCut'#3'( '#0#1 ,#7'Command'#7#12'ecScrollDown'#8'ShortCut'#3'(@'#0#1#7'Command'#7#6'ecLeft'#8 +'ShortCut'#2'%'#0#1#7'Command'#7#9'ecSelLeft'#8'ShortCut'#3'% '#0#1#7'Comman' +'d'#7#10'ecWordLeft'#8'ShortCut'#3'%@'#0#1#7'Command'#7#13'ecSelWordLeft'#8 +'ShortCut'#3'%`'#0#1#7'Command'#7#7'ecRight'#8'ShortCut'#2''''#0#1#7'Command' +#7#10'ecSelRight'#8'ShortCut'#3''' '#0#1#7'Command'#7#11'ecWordRight'#8'Shor' +'tCut'#3'''@'#0#1#7'Command'#7#14'ecSelWordRight'#8'ShortCut'#3'''`'#0#1#7'C' +'ommand'#7#10'ecPageDown'#8'ShortCut'#2'"'#0#1#7'Command'#7#13'ecSelPageDown' +#8'ShortCut'#3'" '#0#1#7'Command'#7#12'ecPageBottom'#8'ShortCut'#3'"@'#0#1#7 +'Command'#7#15'ecSelPageBottom'#8'ShortCut'#3'"`'#0#1#7'Command'#7#8'ecPageU' +'p'#8'ShortCut'#2'!'#0#1#7'Command'#7#11'ecSelPageUp'#8'ShortCut'#3'! '#0#1#7 +'Command'#7#9'ecPageTop'#8'ShortCut'#3'!@'#0#1#7'Command'#7#12'ecSelPageTop' +#8'ShortCut'#3'!`'#0#1#7'Command'#7#11'ecLineStart'#8'ShortCut'#2'$'#0#1#7'C' +'ommand'#7#14'ecSelLineStart'#8'ShortCut'#3'$ '#0#1#7'Command'#7#11'ecEditor' +'Top'#8'ShortCut'#3'$@'#0#1#7'Command'#7#14'ecSelEditorTop'#8'ShortCut'#3'$`' +#0#1#7'Command'#7#9'ecLineEnd'#8'ShortCut'#2'#'#0#1#7'Command'#7#12'ecSelLin' +'eEnd'#8'ShortCut'#3'# '#0#1#7'Command'#7#14'ecEditorBottom'#8'ShortCut'#3'#' +'@'#0#1#7'Command'#7#17'ecSelEditorBottom'#8'ShortCut'#3'#`'#0#1#7'Command'#7 +#12'ecToggleMode'#8'ShortCut'#2'-'#0#1#7'Command'#7#6'ecCopy'#8'ShortCut'#3 +'-@'#0#1#7'Command'#7#7'ecPaste'#8'ShortCut'#3'- '#0#1#7'Command'#7#12'ecDel' +'eteChar'#8'ShortCut'#2'.'#0#1#7'Command'#7#5'ecCut'#8'ShortCut'#3'. '#0#1#7 +'Command'#7#16'ecDeleteLastChar'#8'ShortCut'#2#8#0#1#7'Command'#7#16'ecDelet' +'eLastChar'#8'ShortCut'#3#8' '#0#1#7'Command'#7#16'ecDeleteLastWord'#8'Short' +'Cut'#3#8'@'#0#1#7'Command'#7#6'ecUndo'#8'ShortCut'#4#8#128#0#0#0#1#7'Comman' +'d'#7#6'ecRedo'#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#7#11'ecLineBreak'#8'S' +'hortCut'#2#13#0#1#7'Command'#7#11'ecSelectAll'#8'ShortCut'#3'A@'#0#1#7'Comm' +'and'#7#6'ecCopy'#8'ShortCut'#3'C@'#0#1#7'Command'#7#13'ecBlockIndent'#8'Sho' +'rtCut'#3'I`'#0#1#7'Command'#7#11'ecLineBreak'#8'ShortCut'#3'M@'#0#1#7'Comma' +'nd'#7#12'ecInsertLine'#8'ShortCut'#3'N@'#0#1#7'Command'#7#12'ecDeleteWord'#8 +'ShortCut'#3'T@'#0#1#7'Command'#7#15'ecBlockUnindent'#8'ShortCut'#3'U`'#0#1#7 +'Command'#7#7'ecPaste'#8'ShortCut'#3'V@'#0#1#7'Command'#7#5'ecCut'#8'ShortCu' +'t'#3'X@'#0#1#7'Command'#7#12'ecDeleteLine'#8'ShortCut'#3'Y@'#0#1#7'Command' +#7#11'ecDeleteEOL'#8'ShortCut'#3'Y`'#0#1#7'Command'#7#6'ecUndo'#8'ShortCut'#3 +'Z@'#0#1#7'Command'#7#6'ecRedo'#8'ShortCut'#3'Z`'#0#1#7'Command'#7#13'ecGoto' +'Marker0'#8'ShortCut'#3'0@'#0#1#7'Command'#7#13'ecGotoMarker1'#8'ShortCut'#3 +'1@'#0#1#7'Command'#7#13'ecGotoMarker2'#8'ShortCut'#3'2@'#0#1#7'Command'#7#13 +'ecGotoMarker3'#8'ShortCut'#3'3@'#0#1#7'Command'#7#13'ecGotoMarker4'#8'Short' +'Cut'#3'4@'#0#1#7'Command'#7#13'ecGotoMarker5'#8'ShortCut'#3'5@'#0#1#7'Comma' +'nd'#7#13'ecGotoMarker6'#8'ShortCut'#3'6@'#0#1#7'Command'#7#13'ecGotoMarker7' +#8'ShortCut'#3'7@'#0#1#7'Command'#7#13'ecGotoMarker8'#8'ShortCut'#3'8@'#0#1#7 +'Command'#7#13'ecGotoMarker9'#8'ShortCut'#3'9@'#0#1#7'Command'#7#12'ecSetMar' +'ker0'#8'ShortCut'#3'0`'#0#1#7'Command'#7#12'ecSetMarker1'#8'ShortCut'#3'1`' +#0#1#7'Command'#7#12'ecSetMarker2'#8'ShortCut'#3'2`'#0#1#7'Command'#7#12'ecS' +'etMarker3'#8'ShortCut'#3'3`'#0#1#7'Command'#7#12'ecSetMarker4'#8'ShortCut'#3 +'4`'#0#1#7'Command'#7#12'ecSetMarker5'#8'ShortCut'#3'5`'#0#1#7'Command'#7#12 +'ecSetMarker6'#8'ShortCut'#3'6`'#0#1#7'Command'#7#12'ecSetMarker7'#8'ShortCu' +'t'#3'7`'#0#1#7'Command'#7#12'ecSetMarker8'#8'ShortCut'#3'8`'#0#1#7'Command' +#7#12'ecSetMarker9'#8'ShortCut'#3'9`'#0#1#7'Command'#7#12'EcFoldLevel1'#8'Sh' +'ortCut'#4'1'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel2'#8'ShortCut'#4'2'#160 +#0#0#0#1#7'Command'#7#12'EcFoldLevel3'#8'ShortCut'#4'3'#160#0#0#0#1#7'Comman' +'d'#7#12'EcFoldLevel4'#8'ShortCut'#4'4'#160#0#0#0#1#7'Command'#7#12'EcFoldLe' +'vel5'#8'ShortCut'#4'5'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel6'#8'ShortCut' +#4'6'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel7'#8'ShortCut'#4'7'#160#0#0#0#1 +#7'Command'#7#12'EcFoldLevel8'#8'ShortCut'#4'8'#160#0#0#0#1#7'Command'#7#12 +'EcFoldLevel9'#8'ShortCut'#4'9'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel0'#8 +'ShortCut'#4'0'#160#0#0#0#1#7'Command'#7#13'EcFoldCurrent'#8'ShortCut'#4'-' +#160#0#0#0#1#7'Command'#7#15'EcUnFoldCurrent'#8'ShortCut'#4'+'#160#0#0#0#1#7 +'Command'#7#18'EcToggleMarkupWord'#8'ShortCut'#4'M'#128#0#0#0#1#7'Command'#7 +#14'ecNormalSelect'#8'ShortCut'#3'N`'#0#1#7'Command'#7#14'ecColumnSelect'#8 +'ShortCut'#3'C`'#0#1#7'Command'#7#12'ecLineSelect'#8'ShortCut'#3'L`'#0#1#7'C' +'ommand'#7#5'ecTab'#8'ShortCut'#2#9#0#1#7'Command'#7#10'ecShiftTab'#8'ShortC' +'ut'#3#9' '#0#1#7'Command'#7#14'ecMatchBracket'#8'ShortCut'#3'B`'#0#1#7'Comm' +'and'#7#10'ecColSelUp'#8'ShortCut'#4'&'#160#0#0#0#1#7'Command'#7#12'ecColSel' +'Down'#8'ShortCut'#4'('#160#0#0#0#1#7'Command'#7#12'ecColSelLeft'#8'ShortCut' +#4'%'#160#0#0#0#1#7'Command'#7#13'ecColSelRight'#8'ShortCut'#4''''#160#0#0#0 ,#1#7'Command'#7#16'ecColSelPageDown'#8'ShortCut'#4'"'#160#0#0#0#1#7'Command' +#7#18'ecColSelPageBottom'#8'ShortCut'#4'"'#224#0#0#0#1#7'Command'#7#14'ecCol' +'SelPageUp'#8'ShortCut'#4'!'#160#0#0#0#1#7'Command'#7#15'ecColSelPageTop'#8 +'ShortCut'#4'!'#224#0#0#0#1#7'Command'#7#17'ecColSelLineStart'#8'ShortCut'#4 +'$'#160#0#0#0#1#7'Command'#7#15'ecColSelLineEnd'#8'ShortCut'#4'#'#160#0#0#0#1 +#7'Command'#7#17'ecColSelEditorTop'#8'ShortCut'#4'$'#224#0#0#0#1#7'Command'#7 +#20'ecColSelEditorBottom'#8'ShortCut'#4'#'#224#0#0#0#0#12'MouseActions'#14#0 +#16'MouseTextActions'#14#0#15'MouseSelActions'#14#0#19'VisibleSpecialChars' +#11#8'vscSpace'#12'vscTabAtLast'#0#10'ScrollBars'#7#6'ssNone'#26'SelectedCol' +'or.BackPriority'#2'2'#26'SelectedColor.ForePriority'#2'2'#27'SelectedColor.' +'FramePriority'#2'2'#26'SelectedColor.BoldPriority'#2'2'#28'SelectedColor.It' +'alicPriority'#2'2'#31'SelectedColor.UnderlinePriority'#2'2'#31'SelectedColo' +'r.StrikeOutPriority'#2'2'#21'BracketHighlightStyle'#7#8'sbhsBoth'#28'Bracke' +'tMatchColor.Background'#7#6'clNone'#28'BracketMatchColor.Foreground'#7#6'cl' +'None'#23'BracketMatchColor.Style'#11#6'fsBold'#0#26'FoldedCodeColor.Backgro' +'und'#7#6'clNone'#26'FoldedCodeColor.Foreground'#7#6'clGray'#26'FoldedCodeCo' +'lor.FrameColor'#7#6'clGray'#25'MouseLinkColor.Background'#7#6'clNone'#25'Mo' +'useLinkColor.Foreground'#7#6'clBlue'#29'LineHighlightColor.Background'#7#6 +'clNone'#29'LineHighlightColor.Foreground'#7#6'clNone'#0#244#18'TSynGutterPa' +'rtList'#22'SynLeftGutterPartList1'#0#15'TSynGutterMarks'#15'SynGutterMarks1' +#5'Width'#2#24#12'MouseActions'#14#0#0#0#20'TSynGutterLineNumber'#20'SynGutt' +'erLineNumber1'#5'Width'#2#17#12'MouseActions'#14#0#21'MarkupInfo.Background' +#7#9'clBtnFace'#21'MarkupInfo.Foreground'#7#6'clNone'#10'DigitCount'#2#2#30 +'ShowOnlyLineNumbersMultiplesOf'#2#1#9'ZeroStart'#8#12'LeadingZeros'#8#0#0#17 +'TSynGutterChanges'#17'SynGutterChanges1'#5'Width'#2#4#12'MouseActions'#14#0 +#13'ModifiedColor'#4#252#233#0#0#10'SavedColor'#7#7'clGreen'#0#0#19'TSynGutt' +'erSeparator'#19'SynGutterSeparator1'#5'Width'#2#2#12'MouseActions'#14#0#21 +'MarkupInfo.Background'#7#7'clWhite'#21'MarkupInfo.Foreground'#7#6'clGray'#0 +#0#21'TSynGutterCodeFolding'#21'SynGutterCodeFolding1'#12'MouseActions'#14#0 +#21'MarkupInfo.Background'#7#6'clNone'#21'MarkupInfo.Foreground'#7#6'clGray' +#20'MouseActionsExpanded'#14#0#21'MouseActionsCollapsed'#14#0#0#0#0#0#0#9'TG' +'roupBox'#21'EstimatedBatteryGroup'#21'AnchorSideTop.Control'#7#15'TriggerGr' +'oupBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#2'q'#3 +'Top'#3#197#0#5'Width'#3#177#1#7'Caption'#6#22'Battery life estimator'#12'Cl' +'ientHeight'#2']'#11'ClientWidth'#3#175#1#10'ParentFont'#8#8'TabOrder'#2#1#0 +#6'TLabel'#7'Label27'#23'AnchorSideRight.Control'#7#25'DLBatteryCapacityComb' +'oBox'#4'Left'#2#15#6'Height'#2#19#3'Top'#2#10#5'Width'#2'a'#7'Anchors'#11#7 +'akRight'#0#19'BorderSpacing.Right'#2#3#7'Caption'#6#15'Capacity (mAH):'#11 +'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#7'Label29'#4'Left'#2#6#6'Heig' +'ht'#2#19#3'Top'#2'('#5'Width'#2':'#7'Caption'#6#9'Duration:'#11'ParentColor' +#8#10'ParentFont'#8#0#0#6'TLabel'#7'Label31'#21'AnchorSideTop.Control'#7#22 +'DLBatteryDurationUntil'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSide' +'Right.Control'#7#22'DLBatteryDurationUntil'#4'Left'#3#164#0#6'Height'#2#19#3 +'Top'#2'D'#5'Width'#2'L'#7'Anchors'#11#5'akTop'#7'akRight'#0#19'BorderSpacin' +'g.Right'#2#3#7'Caption'#6#13'records until'#11'ParentColor'#8#10'ParentFont' +#8#0#0#5'TEdit'#21'DLBatteryDurationTime'#21'AnchorSideTop.Control'#7#25'DLB' +'atteryCapacityComboBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2'?'#6 +'Height'#2#28#3'Top'#2'#'#5'Width'#3'g'#1#8'AutoSize'#8#10'ParentFont'#8#8'R' +'eadOnly'#9#8'TabOrder'#2#0#0#0#5'TEdit'#22'DLBatteryDurationUntil'#21'Ancho' +'rSideTop.Control'#7#21'DLBatteryDurationTime'#18'AnchorSideTop.Side'#7#9'as' +'rBottom'#23'AnchorSideRight.Control'#7#21'DLBatteryDurationTime'#20'AnchorS' +'ideRight.Side'#7#9'asrBottom'#4'Left'#3#243#0#6'Height'#2#28#3'Top'#2'?'#5 +'Width'#3#179#0#9'Alignment'#7#8'taCenter'#7'Anchors'#11#5'akTop'#7'akRight' +#0#8'AutoSize'#8#10'ParentFont'#8#8'ReadOnly'#9#8'TabOrder'#2#1#0#0#9'TCombo' +'Box'#25'DLBatteryCapacityComboBox'#4'Left'#2's'#6'Height'#2#28#4'Hint'#6'-E' +'nter custom value here (space after number).'#3'Top'#2#7#5'Width'#3'3'#1#8 +'AutoSize'#8#10'ItemHeight'#2#0#9'ItemIndex'#2#1#13'Items.Strings'#1#6#27'30' +'00 mAH, Lithium batteries'#6#28'2600 mAH, Alkaline batteries'#6#31'1000 mAH' +', Carbon Zinc batteries'#0#10'ParentFont'#8#8'TabOrder'#2#2#4'Text'#6#28'26' +'00 mAH, Alkaline batteries'#8'OnChange'#7#31'DLBatteryCapacityComboBoxChang' +'e'#0#0#5'TEdit'#24'DLBatteryDurationRecords'#22'AnchorSideLeft.Control'#7#21 +'DLBatteryDurationTime'#21'AnchorSideTop.Control'#7#21'DLBatteryDurationTime' +#18'AnchorSideTop.Side'#7#9'asrBottom'#20'AnchorSideRight.Side'#7#9'asrBotto' +'m'#4'Left'#2'?'#6'Height'#2#28#3'Top'#2'?'#5'Width'#2'\'#9'Alignment'#7#8't' ,'aCenter'#8'AutoSize'#8#10'ParentFont'#8#8'ReadOnly'#9#8'TabOrder'#2#3#0#0#0 +#9'TGroupBox'#15'TriggerGroupBox'#21'AnchorSideTop.Control'#7#14'DataLogging' +'Tab'#4'Left'#2#255#6'Height'#3#197#0#3'Top'#2#0#5'Width'#3#177#1#7'Caption' +#6'*Trigger (logging to internal FLASH memory)'#12'ClientHeight'#3#177#0#11 +'ClientWidth'#3#175#1#10'ParentFont'#8#8'TabOrder'#2#2#0#9'TGroupBox'#9'Thre' +'shold'#4'Left'#3#30#1#6'Height'#2'<'#3'Top'#2'('#5'Width'#3#137#0#7'Caption' +#6#17'Threshold : mpsas'#12'ClientHeight'#2'('#11'ClientWidth'#3#135#0#10'Pa' +'rentFont'#8#8'TabOrder'#2#0#0#5'TEdit'#11'DLThreshold'#4'Left'#2#6#6'Height' +#2#31#4'Hint'#6'B0=records all values, >0 only record values over this mpsas' +' value.'#3'Top'#2#1#5'Width'#2'1'#8'AutoSize'#8#10'ParentFont'#8#8'TabOrder' +#2#0#8'OnChange'#7#17'DLThresholdChange'#0#0#7'TButton'#14'DLThresholdSet'#4 +'Left'#2'9'#6'Height'#2#31#3'Top'#2#1#5'Width'#2'@'#7'Caption'#6#3'Set'#10'P' +'arentFont'#8#8'TabOrder'#2#1#7'OnClick'#7#19'DLThresholdSetClick'#0#0#0#9'T' +'GroupBox'#23'ThresholdVibrationGroup'#4'Left'#3#30#1#6'Height'#2'<'#3'Top'#2 +'k'#5'Width'#3#136#0#7'Caption'#6#20'Threshold: vibration'#12'ClientHeight'#2 +'('#11'ClientWidth'#3#134#0#10'ParentFont'#8#8'TabOrder'#2#1#0#5'TEdit'#10'V' +'Threshold'#4'Left'#2#4#6'Height'#2'$'#3'Top'#2#3#5'Width'#2'1'#7'Anchors'#11 +#5'akTop'#0#10'ParentFont'#8#8'TabOrder'#2#0#8'OnChange'#7#16'VThresholdChan' +'ge'#0#0#7'TButton'#13'VThresholdSet'#4'Left'#2'8'#6'Height'#2#31#3'Top'#2#3 +#5'Width'#2'@'#7'Caption'#6#3'Set'#10'ParentFont'#8#8'TabOrder'#2#1#7'OnClic' +'k'#7#18'VThresholdSetClick'#0#0#0#9'TComboBox'#15'TriggerComboBox'#4'Left'#2 +#0#6'Height'#2'$'#3'Top'#2#4#5'Width'#3#24#1#10'ItemHeight'#2#0#9'ItemIndex' +#2#0#13'Items.Strings'#1#6#3'Off'#6#27'Every x seconds (always on)'#6'!Every' +' x minutes (power save mode)'#6'"Every 5 minutes on the 1/12th hour'#6'"Eve' +'ry 10 minutes on the 1/6th hour'#6' Every 15 minutes on the 1/4 hour'#6'!Ev' +'ery 30 minutes on the 1/2 hour'#6#22'Every hour on the hour'#0#8'ReadOnly' +#9#8'TabOrder'#2#2#4'Text'#6#3'Off'#8'OnChange'#7#21'TriggerComboBoxChange'#0 +#0#12'TPageControl'#13'DLSecMinPages'#22'AnchorSideLeft.Control'#7#15'Trigge' +'rComboBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control' +#7#15'TriggerComboBox'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#30#1#6 +'Height'#2'"'#3'Top'#2#5#5'Width'#3#137#0#10'ActivePage'#7#10'DLMinSheet'#18 +'BorderSpacing.Left'#2#6#8'ShowTabs'#8#8'TabIndex'#2#1#8'TabOrder'#2#3#0#9'T' +'TabSheet'#10'DLSecSheet'#7'Caption'#6#10'DLSecSheet'#12'ClientHeight'#2#30 +#11'ClientWidth'#2#127#0#6'TLabel'#7'Label22'#22'AnchorSideLeft.Control'#7#13 +'DLTrigSeconds'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Cont' +'rol'#7#13'DLTrigSeconds'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2'5' +#6'Height'#2#19#3'Top'#2#6#5'Width'#2#6#7'Caption'#6#1's'#11'ParentColor'#8 +#10'ParentFont'#8#0#0#5'TEdit'#13'DLTrigSeconds'#22'AnchorSideLeft.Control'#7 +#10'DLSecSheet'#21'AnchorSideTop.Control'#7#10'DLSecSheet'#18'AnchorSideTop.' +'Side'#7#9'asrCenter'#4'Left'#2#4#6'Height'#2#25#4'Hint'#6#22'Press Enter wh' +'en done.'#3'Top'#2#3#5'Width'#2'1'#9'Alignment'#7#14'taRightJustify'#8'Auto' +'Size'#8#18'BorderSpacing.Left'#2#4#10'ParentFont'#8#8'TabOrder'#2#0#8'OnCha' +'nge'#7#19'DLTrigSecondsChange'#0#0#7'TButton'#12'DLSetSeconds'#22'AnchorSid' +'eLeft.Control'#7#7'Label22'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'Ancho' +'rSideTop.Control'#7#13'DLTrigSeconds'#18'AnchorSideTop.Side'#7#9'asrCenter' +#23'AnchorSideRight.Control'#7#10'DLSecSheet'#20'AnchorSideRight.Side'#7#9'a' +'srBottom'#4'Left'#2'C'#6'Height'#2#25#3'Top'#2#3#5'Width'#2'9'#18'BorderSpa' +'cing.Left'#2#8#7'Caption'#6#3'Set'#10'ParentFont'#8#8'TabOrder'#2#1#7'OnCli' +'ck'#7#17'DLSetSecondsClick'#0#0#0#9'TTabSheet'#10'DLMinSheet'#7'Caption'#6 +#10'DLMinSheet'#12'ClientHeight'#2#30#11'ClientWidth'#2#127#0#5'TEdit'#13'DL' +'TrigMinutes'#22'AnchorSideLeft.Control'#7#10'DLMinSheet'#21'AnchorSideTop.C' +'ontrol'#7#10'DLMinSheet'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2#4#6 +'Height'#2#25#4'Hint'#6#22'Press Enter when done.'#3'Top'#2#3#5'Width'#2'1'#9 +'Alignment'#7#14'taRightJustify'#8'AutoSize'#8#18'BorderSpacing.Left'#2#4#10 +'ParentFont'#8#8'TabOrder'#2#0#8'OnChange'#7#19'DLTrigMinutesChange'#0#0#6'T' +'Label'#7'Label23'#22'AnchorSideLeft.Control'#7#13'DLTrigMinutes'#19'AnchorS' +'ideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#13'DLTrigMinutes' +#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2'5'#6'Height'#2#19#3'Top'#2#6 +#5'Width'#2#12#7'Caption'#6#1'm'#11'ParentColor'#8#10'ParentFont'#8#0#0#7'TB' +'utton'#13'DLSetSeconds1'#22'AnchorSideLeft.Control'#7#7'Label23'#19'AnchorS' +'ideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#13'DLTrigMinutes' +#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2'F'#6'Height'#2#25#3'Top'#2#3 +#5'Width'#2'9'#18'BorderSpacing.Left'#2#5#7'Caption'#6#3'Set'#10'ParentFont' +#8#8'TabOrder'#2#1#7'OnClick'#7#18'DLSetSeconds1Click'#0#0#0#0#9'TGroupBox' ,#12'SnowGroupBox'#4'Left'#2#0#6'Height'#2'='#3'Top'#2's'#5'Width'#3#24#1#7'C' +'aption'#6#19'Snow factor logging'#12'ClientHeight'#2')'#11'ClientWidth'#3#22 +#1#8'TabOrder'#2#4#0#6'TLabel'#15'SnowSampleLabel'#22'AnchorSideLeft.Control' +#7#12'SnowGroupBox'#21'AnchorSideTop.Control'#7#16'SnowReadSkipEdit'#18'Anch' +'orSideTop.Side'#7#9'asrCenter'#4'Left'#2#3#6'Height'#2#19#3'Top'#2#15#5'Wid' +'th'#2'W'#18'BorderSpacing.Left'#2#3#7'Caption'#6#13'Sample every:'#11'Paren' +'tColor'#8#0#0#5'TEdit'#16'SnowReadSkipEdit'#22'AnchorSideLeft.Control'#7#15 +'SnowSampleLabel'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Co' +'ntrol'#7#12'SnowGroupBox'#4'Left'#2'Z'#6'Height'#2'$'#3'Top'#2#6#5'Width'#2 +'P'#17'BorderSpacing.Top'#2#6#8'TabOrder'#2#0#0#0#6'TLabel'#17'SnowReadingsL' +'abel'#22'AnchorSideLeft.Control'#7#16'SnowReadSkipEdit'#19'AnchorSideLeft.S' +'ide'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#16'SnowReadSkipEdit'#18'Anc' +'horSideTop.Side'#7#9'asrCenter'#4'Left'#3#173#0#6'Height'#2#19#3'Top'#2#15#5 +'Width'#2'3'#18'BorderSpacing.Left'#2#3#7'Caption'#6#8'reading.'#11'ParentCo' +'lor'#8#0#0#0#11'TRadioGroup'#19'DLMutualAccessGroup'#4'Left'#2#0#6'Height'#2 +'G'#3'Top'#2'('#5'Width'#3#193#0#8'AutoFill'#9#7'Caption'#6#22'Mutual access' +' logging:'#28'ChildSizing.LeftRightSpacing'#2#6#29'ChildSizing.EnlargeHoriz' +'ontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24 +'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChi' +'lds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Lay' +'out'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1 +#12'ClientHeight'#2'3'#11'ClientWidth'#3#191#0#13'Items.Strings'#1#6#20'Batt' +'ery only logging'#6#22'Battery and PC logging'#0#7'OnClick'#7#24'DLMutualAc' +'cessGroupClick'#8'TabOrder'#2#5#7'Visible'#8#0#0#0#9'TGroupBox'#19'DeviceCl' +'ockGroupBox'#22'AnchorSideLeft.Control'#7#15'TriggerGroupBox'#19'AnchorSide' +'Left.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#14'DataLoggingTab'#23 +'AnchorSideRight.Control'#7#14'DataLoggingTab'#20'AnchorSideRight.Side'#7#9 +'asrBottom'#4'Left'#3#178#1#6'Height'#2'7'#3'Top'#2#0#5'Width'#3#179#1#7'Anc' +'hors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#2#7'Capti' +'on'#6#12'Device Clock'#12'ClientHeight'#2'#'#11'ClientWidth'#3#177#1#10'Par' +'entFont'#8#8'TabOrder'#2#3#0#7'TButton'#21'DLClockSettingsButton'#4'Left'#2 +#6#6'Height'#2#25#3'Top'#2#3#5'Width'#2'K'#7'Caption'#6#8'Settings'#10'Paren' +'tFont'#8#8'TabOrder'#2#0#7'OnClick'#7#26'DLClockSettingsButtonClick'#0#0#12 +'TLabeledEdit'#17'DLClockDifference'#21'AnchorSideTop.Control'#7#21'DLClockS' +'ettingsButton'#23'AnchorSideRight.Control'#7#22'DLClockDifferenceLabel'#4'L' +'eft'#3#198#0#6'Height'#2#28#3'Top'#2#3#5'Width'#2'x'#9'Alignment'#7#14'taRi' +'ghtJustify'#7'Anchors'#11#5'akTop'#7'akRight'#0#8'AutoSize'#8#19'BorderSpac' +'ing.Right'#2#6#16'EditLabel.Height'#2#19#15'EditLabel.Width'#2'E'#17'EditLa' +'bel.Caption'#6#11'Difference:'#21'EditLabel.ParentColor'#8#20'EditLabel.Par' +'entFont'#8#13'LabelPosition'#7#6'lpLeft'#10'ParentFont'#8#8'TabOrder'#2#1#0 +#0#6'TLabel'#22'DLClockDifferenceLabel'#19'AnchorSideLeft.Side'#7#9'asrBotto' +'m'#21'AnchorSideTop.Control'#7#17'DLClockDifference'#18'AnchorSideTop.Side' +#7#9'asrCenter'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3'D'#1#6'Hei' +'ght'#2#16#3'Top'#2#9#5'Width'#2'd'#7'Anchors'#11#5'akTop'#0#8'AutoSize'#8#19 +'BorderSpacing.Right'#2#6#7'Caption'#6#9'second(s)'#11'ParentColor'#8#10'Par' +'entFont'#8#0#0#0#7'TButton'#15'TrickleOnButton'#4'Left'#3'#'#2#6'Height'#2 +#25#3'Top'#2#24#5'Width'#2#20#7'Caption'#6#2'T1'#10'ParentFont'#8#8'TabOrder' +#2#4#7'Visible'#8#7'OnClick'#7#20'TrickleOnButtonClick'#0#0#7'TButton'#16'Tr' +'ickleOffButton'#4'Left'#3#11#2#6'Height'#2#25#3'Top'#2#24#5'Width'#2#20#7'C' +'aption'#6#2'T0'#10'ParentFont'#8#8'TabOrder'#2#5#7'Visible'#8#7'OnClick'#7 +#21'TrickleOffButtonClick'#0#0#0#9'TTabSheet'#16'ConfigurationTab'#7'Caption' +#6#13'Configuration'#12'ClientHeight'#3'H'#1#11'ClientWidth'#3'e'#3#10'Paren' +'tFont'#8#0#7'TButton'#17'ConfDarkCalButton'#19'AnchorSideLeft.Side'#7#9'asr' +'Bottom'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7 +#10'ScrollBox1'#24'AnchorSideBottom.Control'#7#18'ConfLightCalButton'#21'Anc' +'horSideBottom.Side'#7#9'asrBottom'#4'Left'#3#168#0#6'Height'#2#25#4'Hint'#6 +'"Read notes before pressing button!'#3'Top'#3#16#1#5'Width'#2'0'#7'Anchors' +#11#7'akRight'#8'akBottom'#0#18'BorderSpacing.Left'#2#2#19'BorderSpacing.Rig' +'ht'#2#2#7'Caption'#6#4'Dark'#10'ParentFont'#8#8'TabOrder'#2#1#7'OnClick'#7 +#22'ConfDarkCalButtonClick'#0#0#12'TLabeledEdit'#12'ConfRdgmpsas'#4'Left'#2 +'U'#6'Height'#2#28#4'Hint'#6#22'Unaveraged meter value'#3'Top'#2#6#5'Width'#2 +'O'#9'Alignment'#7#8'taCenter'#8'AutoSize'#8#16'EditLabel.Height'#2#19#15'Ed' +'itLabel.Width'#2'+'#17'EditLabel.Caption'#6#7'Bright.'#21'EditLabel.ParentC' +'olor'#8#20'EditLabel.ParentFont'#8#13'LabelPosition'#7#6'lpLeft'#10'ParentF' ,'ont'#8#8'ReadOnly'#9#8'TabOrder'#2#6#7'TabStop'#8#0#0#12'TLabeledEdit'#10'C' +'onfRdgPer'#4'Left'#2'U'#6'Height'#2#28#4'Hint'#6#17'Unaveraged period'#3'To' +'p'#2'!'#5'Width'#2'O'#9'Alignment'#7#8'taCenter'#8'AutoSize'#8#16'EditLabel' +'.Height'#2#19#15'EditLabel.Width'#2')'#17'EditLabel.Caption'#6#6'Period'#21 +'EditLabel.ParentColor'#8#20'EditLabel.ParentFont'#8#13'LabelPosition'#7#6'l' +'pLeft'#10'ParentFont'#8#8'ReadOnly'#9#8'TabOrder'#2#7#7'TabStop'#8#0#0#12'T' +'LabeledEdit'#11'ConfRdgTemp'#4'Left'#2'U'#6'Height'#2#28#4'Hint'#6#21'Tempe' +'rature at sensor'#3'Top'#2'='#5'Width'#2'O'#9'Alignment'#7#8'taCenter'#8'Au' +'toSize'#8#16'EditLabel.Height'#2#19#15'EditLabel.Width'#2'&'#17'EditLabel.C' +'aption'#6#5'Temp.'#21'EditLabel.ParentColor'#8#20'EditLabel.ParentFont'#8#13 +'LabelPosition'#7#6'lpLeft'#10'ParentFont'#8#8'ReadOnly'#9#8'TabOrder'#2#8#7 +'TabStop'#8#0#0#6'TLabel'#7'Label43'#22'AnchorSideLeft.Control'#7#11'ConfRdg' +'Temp'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#11 +'ConfRdgTemp'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#167#0#6'Height' +#2#19#3'Top'#2'B'#5'Width'#2#14#18'BorderSpacing.Left'#2#3#7'Caption'#6#3#194 +#176'C'#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#7'Label44'#22'Ancho' +'rSideLeft.Control'#7#12'ConfRdgmpsas'#19'AnchorSideLeft.Side'#7#9'asrBottom' +#21'AnchorSideTop.Control'#7#12'ConfRdgmpsas'#18'AnchorSideTop.Side'#7#9'asr' +'Center'#4'Left'#3#167#0#6'Height'#2#19#3'Top'#2#11#5'Width'#2''''#18'Border' +'Spacing.Left'#2#3#7'Caption'#6#5'mpsas'#11'ParentColor'#8#10'ParentFont'#8#0 +#0#6'TLabel'#7'Label45'#22'AnchorSideLeft.Control'#7#10'ConfRdgPer'#19'Ancho' +'rSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#10'ConfRdgPer'#18 +'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#167#0#6'Height'#2#19#3'Top'#2 +'&'#5'Width'#2#20#18'BorderSpacing.Left'#2#3#7'Caption'#6#3'sec'#11'ParentCo' +'lor'#8#10'ParentFont'#8#0#0#6'TLabel'#15'ConfTempWarning'#22'AnchorSideLeft' +'.Control'#7#11'ConfRdgTemp'#19'AnchorSideLeft.Side'#7#9'asrCenter'#21'Ancho' +'rSideTop.Control'#7#11'ConfRdgTemp'#18'AnchorSideTop.Side'#7#9'asrBottom'#4 +'Left'#2'V'#6'Height'#2#15#4'Hint'#6'/Calibration temperature range warning ' +'indicator'#3'Top'#2'['#5'Width'#2'M'#9'Alignment'#7#8'taCenter'#8'AutoSize' +#8#17'BorderSpacing.Top'#2#2#7'Caption'#6#23'XIIIIIIIIIIIIIIIIIIIIIX'#11'Par' +'entColor'#8#10'ParentFont'#8#0#0#5'TMemo'#5'Memo1'#22'AnchorSideLeft.Contro' +'l'#7#10'ScrollBox1'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop' +'.Control'#7#16'ConfigurationTab'#23'AnchorSideRight.Control'#7#16'Configura' +'tionTab'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Contro' +'l'#7#16'ConfigurationTab'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3 +#211#2#6'Height'#3'<'#1#3'Top'#2#6#5'Width'#3#140#0#7'Anchors'#11#5'akTop'#6 +'akLeft'#7'akRight'#8'akBottom'#0#17'BorderSpacing.Top'#2#6#19'BorderSpacing' +'.Right'#2#6#20'BorderSpacing.Bottom'#2#6#11'BorderStyle'#7#6'bsNone'#13'Lin' +'es.Strings'#1#6'2Calibration is performed at the Unihedron factory.'#6#0#6 +'5Light calibration requires a calibrated light source.'#6#0#6#160'Dark cali' +'bration is done in an absolutely dark environment. Keep refreshing the read' +'ings until the period stabilizes or reaches the top limit of 300.00 seconds' +'.'#6#0#6#163'The calibration settings can be restored from the calibration ' +'page using the original values from your calibration sheet that was supplie' +'d with the delivered unit.'#0#10'ParentFont'#8#14'ParentShowHint'#8#10'Scro' +'llBars'#7#14'ssAutoVertical'#8'TabOrder'#2#10#7'TabStop'#8#0#0#7'TButton'#14 +'PrintCalReport'#22'AnchorSideLeft.Control'#7#12'LogCalButton'#19'AnchorSide' +'Left.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#16'ConfigurationTa' +'b'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2'G'#6'Height'#2#25#4'H' +'int'#6#24'Print calibration report'#3'Top'#3'-'#1#5'Width'#2'A'#7'Anchors' +#11#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2#2#20'BorderSpacing.Bott' +'om'#2#2#7'Caption'#6#5'Print'#10'ParentFont'#8#8'TabOrder'#2#4#7'Visible'#8 +#7'OnClick'#7#19'PrintCalReportClick'#0#0#7'TBitBtn'#10'ConfGetCal'#4'Left'#2 +#3#6'Height'#2#28#4'Hint'#6#7'Refresh'#3'Top'#2#4#5'Width'#2'"'#10'Glyph.Dat' +'a'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0 +#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#1#255#255#255#1#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#1#255#255#255#31#255#255#255'^'#255#255#255'4'#255#255 ,#255#11#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#2#255#255#255#5#255#255#255#0#255 +#255#255#0#255#255#255#1#255#255#255';;;;z'#140#140#140'~'#236#236#236'z'#255 +#255#255#28#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#1#250#250#250'Q'#246#246#246']'#255#255#255#1#255#255#255 +#0#255#255#255#1#255#255#255':'#1#1#1#182#0#0#0#156#21#21#21#129#206#206#206 +#131#255#255#255#17#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255' '#148#148#148#132'xxx'#132#255#255#255'0'#255#255#255#0#255#255 +#255#0#255#255#255#21#155#155#155'f'#22#22#22#160#0#0#0#167#20#20#20#136#233 +#233#233'd'#255#255#255#1#255#255#255#0#255#255#255#0#255#255#255#4#215#215 +#215'|'#4#4#4#150#0#0#0#151#190#190#190#133#255#255#255#16#255#255#255#0#255 +#255#255#0#255#255#255#3#255#255#255'&+++'#149#0#0#0#152'eee'#127#255#255#255 +#13#255#255#255#0#255#255#255#1#247#247#247'Q((('#157#0#0#0#164#0#0#0#161#16 +#16#16#163#220#220#220't'#255#255#255#2#255#255#255#0#255#255#255#0#255#255 +#255#3#147#147#147'j'#0#0#0#167')))'#142#255#255#255'%'#255#255#255#1#255#255 +#255#16'mmm'#148#5#5#5#195#1#1#1#182#0#0#0#170#9#9#9#188'BBB'#169#255#255#255 +''''#255#255#255#1#255#255#255#0#255#255#255#1#255#255#255'A'#22#22#22#159#6 +#6#6#166#255#255#255'6'#255#255#255#1#255#255#255#22#255#255#255'-'#255#255 +#255'3((('#151#0#0#0#179#147#147#147#139#255#255#255'3'#255#255#255'"'#255 +#255#255#1#255#255#255#0#255#255#255#1#244#244#244'm'#1#1#1#176#14#14#14#162 +#255#255#255'$'#255#255#255#1#255#255#255#0#255#255#255#1#255#255#255#3'WWW' +#138#0#0#0#197#26#26#26#168#253#253#253'a'#255#255#255#24#255#255#255#4#255 +#255#255#23#255#255#255'Fvvv'#148#0#0#0#192')))'#161#255#255#255#12#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#1#245#245#245'2'#8#8#8#192#0#0 +#0#205'LLL'#158#228#228#228#132#255#255#255't'#238#238#238#129'qqq'#151#1#1#1 +#200#2#2#2#206#194#194#194'S'#255#255#255#1#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#2#158#158#158'c'#5#5#5#206#0#0#0#221#0#0 +#0#214#10#10#10#198#0#0#0#213#0#0#0#220#1#1#1#216'ooo'#128#255#255#255#8#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#3#212#212#212'A,,,'#164#6#6#6#205#1#1#1#225#7#7#7#202'"""' +#172#192#192#192'T'#255#255#255#8#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#1#255#255#255#6#255#255#255'#'#255#255#255'5'#255#255#255'"'#255#255 +#255#10#255#255#255#1#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#1#255#255#255#1#255#255#255#1#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#7'OnClick'#7#15'ConfGetCalClick'#10'ParentFont'#8#8'TabOrder'#2#0#0#0#7'TBu' +'tton'#12'LogCalButton'#22'AnchorSideLeft.Control'#7#16'ConfigurationTab'#24 +'AnchorSideBottom.Control'#7#16'ConfigurationTab'#21'AnchorSideBottom.Side'#7 +#9'asrBottom'#4'Left'#2#1#6'Height'#2#25#4'Hint'#6#29'Save calibration data ' +'to file'#3'Top'#3'-'#1#5'Width'#2'D'#7'Anchors'#11#6'akLeft'#8'akBottom'#0 +#18'BorderSpacing.Left'#2#1#20'BorderSpacing.Bottom'#2#2#7'Caption'#6#7'Log ' +'Cal'#10'ParentFont'#8#8'TabOrder'#2#3#7'OnClick'#7#17'LogCalButtonClick'#0#0 +#7'TBitBtn'#16'PrintLabelButton'#22'AnchorSideLeft.Control'#7#14'PrintCalRep' +'ort'#19'AnchorSideLeft.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7 +#16'ConfigurationTab'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#138 +#0#6'Height'#2#25#4'Hint'#6#28'Print label for back of unit'#3'Top'#3'-'#1#5 +'Width'#2'1'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2#2 +#20'BorderSpacing.Bottom'#2#2#7'Caption'#6#5'Label'#7'OnClick'#7#21'PrintLab' +'elButtonClick'#10'ParentFont'#8#8'TabOrder'#2#5#7'Visible'#8#0#0#7'TButton' +#19'ConfDarkCaluxButton'#19'AnchorSideLeft.Side'#7#9'asrBottom'#23'AnchorSid' +'eRight.Control'#7#14'ConfDarkCalReq'#24'AnchorSideBottom.Control'#7#18'Conf' +'LightCalButton'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2't'#6'Hei' +'ght'#2#25#4'Hint'#6'2Set Dark calibration value to unaveraged dark time'#3 +'Top'#3#16#1#5'Width'#2#30#7'Anchors'#11#7'akRight'#8'akBottom'#0#18'BorderS' +'pacing.Left'#2#2#19'BorderSpacing.Right'#2#2#7'Caption'#6#2'ux'#10'ParentFo' +'nt'#8#8'TabOrder'#2#2#7'OnClick'#7#24'ConfDarkCaluxButtonClick'#0#0#10'TScr' +'ollBox'#10'ScrollBox1'#21'AnchorSideTop.Control'#7#16'ConfigurationTab'#23 +'AnchorSideRight.Control'#7#5'Memo1'#24'AnchorSideBottom.Control'#7#16'Confi' +'gurationTab'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#218#0#6'Hei' +'ght'#3'<'#1#3'Top'#2#6#5'Width'#3#243#1#18'HorzScrollBar.Page'#2#1#21'HorzS' +'crollBar.Visible'#8#18'VertScrollBar.Page'#3':'#1#22'VertScrollBar.Tracking' +#9#7'Anchors'#11#5'akTop'#8'akBottom'#0#17'BorderSpacing.Top'#2#6#19'BorderS' ,'pacing.Right'#2#6#20'BorderSpacing.Bottom'#2#6#12'ClientHeight'#3':'#1#11'C' +'lientWidth'#3#228#1#10'ParentFont'#8#8'TabOrder'#2#9#0#6'TImage'#6'Panel1' +#22'AnchorSideLeft.Control'#7#10'ScrollBox1'#21'AnchorSideTop.Control'#7#10 +'ScrollBox1'#23'AnchorSideRight.Control'#7#10'ScrollBox1'#20'AnchorSideRight' +'.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#3'X'#2#3'Top'#2#0#5'Width'#3#228 +#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#14'ParentShowHint'#8#0#0#0#9 +'TComboBox'#7'LHCombo'#21'AnchorSideTop.Control'#7#14'ConfRecWarning'#18'Anc' +'horSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#17'ConfDarkCa' +'lButton'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2'3'#6'Height'#2#28 +#4'Hint'#6#16'Lens holder type'#3'Top'#2'l'#5'Width'#3#165#0#7'Anchors'#11#5 +'akTop'#7'akRight'#0#8'AutoSize'#8#10'ItemHeight'#2#0#13'Items.Strings'#1#6#9 +'No Holder'#6#9'GD Holder'#6#17'3D Printed Holder'#0#10'ParentFont'#8#8'TabO' +'rder'#2#11#4'Text'#6#3'N/A'#7'Visible'#8#8'OnChange'#7#13'LHComboChange'#0#0 +#9'TComboBox'#9'LensCombo'#22'AnchorSideLeft.Control'#7#7'LHCombo'#21'Anchor' +'SideTop.Control'#7#7'LHCombo'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'Anch' +'orSideRight.Control'#7#7'LHCombo'#20'AnchorSideRight.Side'#7#9'asrBottom'#4 +'Left'#2'3'#6'Height'#2#28#4'Hint'#6#9'Lens type'#3'Top'#3#136#0#5'Width'#3 +#165#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#8#10'ItemHe' +'ight'#2#0#13'Items.Strings'#1#6#7'No Lens'#6#7'GD Lens'#6#14'Half-ball Lens' +#0#10'ParentFont'#8#8'TabOrder'#2#12#4'Text'#6#3'N/A'#7'Visible'#8#8'OnChang' +'e'#7#15'LensComboChange'#0#0#9'TComboBox'#11'FilterCombo'#22'AnchorSideLeft' +'.Control'#7#9'LensCombo'#21'AnchorSideTop.Control'#7#9'LensCombo'#18'Anchor' +'SideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#9'LensCombo'#20 +'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2'3'#6'Height'#2#28#4'Hint'#6 +#11'Filter type'#3'Top'#3#164#0#5'Width'#3#165#0#7'Anchors'#11#5'akTop'#6'ak' +'Left'#7'akRight'#0#8'AutoSize'#8#10'ItemHeight'#2#0#13'Items.Strings'#1#6#9 +'No Filter'#6#17'Hoya CM500 filter'#6#25'UV IR Interference Filter'#0#10'Par' +'entFont'#8#8'TabOrder'#2#13#4'Text'#6#3'N/A'#7'Visible'#8#8'OnChange'#7#17 +'FilterComboChange'#0#0#6'TLabel'#14'ConfRecWarning'#22'AnchorSideLeft.Contr' +'ol'#7#11'ConfRdgTemp'#19'AnchorSideLeft.Side'#7#9'asrCenter'#21'AnchorSideT' +'op.Control'#7#11'ConfRdgTemp'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left' +#2#8#6'Height'#2#19#4'Hint'#6' EEPROM Flash defective indicator'#3'Top'#2'Y' +#5'Width'#2'M'#9'Alignment'#7#8'taCenter'#7'Anchors'#11#5'akTop'#0#8'AutoSiz' +'e'#8#7'Caption'#6#23'XIIIIIIIIIIIIIIIIIIIIIX'#11'ParentColor'#8#10'ParentFo' +'nt'#8#0#0#6'TLabel'#12'LHComboLabel'#21'AnchorSideTop.Control'#7#7'LHCombo' +#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#7'LHCom' +'bo'#4'Left'#2#2#6'Height'#2#19#3'Top'#2'q'#5'Width'#2'/'#7'Anchors'#11#5'ak' +'Top'#7'akRight'#0#19'BorderSpacing.Right'#2#2#7'Caption'#6#7'Holder:'#11'Pa' +'rentColor'#8#10'ParentFont'#8#7'Visible'#8#0#0#6'TLabel'#14'LensComboLabel' +#21'AnchorSideTop.Control'#7#9'LensCombo'#18'AnchorSideTop.Side'#7#9'asrCent' +'er'#23'AnchorSideRight.Control'#7#9'LensCombo'#4'Left'#2#16#6'Height'#2#19#3 +'Top'#3#141#0#5'Width'#2'!'#7'Anchors'#11#5'akTop'#7'akRight'#0#19'BorderSpa' +'cing.Right'#2#2#7'Caption'#6#5'Lens:'#11'ParentColor'#8#10'ParentFont'#8#7 +'Visible'#8#0#0#6'TLabel'#16'FilterComboLabel'#21'AnchorSideTop.Control'#7#11 +'FilterCombo'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Contr' +'ol'#7#11'FilterCombo'#4'Left'#2#13#6'Height'#2#19#3'Top'#3#169#0#5'Width'#2 +'$'#7'Anchors'#11#5'akTop'#7'akRight'#0#19'BorderSpacing.Right'#2#2#7'Captio' +'n'#6#7'Filter:'#11'ParentColor'#8#10'ParentFont'#8#7'Visible'#8#0#0#11'TChe' +'ckGroup'#17'LockSwitchOptions'#21'AnchorSideTop.Control'#7#11'FilterCombo' +#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#11'Filt' +'erCombo'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2''''#6'Height'#2 +'R'#3'Top'#3#192#0#5'Width'#3#177#0#7'Anchors'#11#5'akTop'#7'akRight'#8'akBo' +'ttom'#0#8'AutoFill'#9#20'BorderSpacing.Bottom'#2#2#7'Caption'#6#21'Lock swi' +'tch protects:'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBotto' +'mSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResi' +'ze'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'Child' +'Sizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical' +#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBot' +'tom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'>'#11'ClientWid' +'th'#3#175#0#13'Items.Strings'#1#6#13'Cal. settings'#6#18'Rpt. Int. settings' +#6#14'Conf. settings'#6#14'These settings'#0#11'OnItemClick'#7#26'LockSwitch' +'OptionsItemClick'#10'ParentFont'#8#8'TabOrder'#2#14#7'Visible'#8#4'Data'#10 +#8#0#0#0#4#0#0#0#2#2#2#2#0#0#6'TImage'#11'LockedImage'#4'Left'#2#3#6'Height' +#2' '#4'Hint'#6#6'Locked'#3'Top'#3#231#0#5'Width'#2' '#12'Picture.Data'#10 ,#202#3#0#0#23'TPortableNetworkGraphic'#174#3#0#0#137'PNG'#13#10#26#10#0#0#0 +#13'IHDR'#0#0#0'0'#0#0#0'0'#8#2#0#0#0#216'`n'#208#0#0#0#9'pHYs'#0#0'\F'#0#0 +'\F'#1#20#148'CA'#0#0#0#7'tIME'#7#224#12#16#23'%.b5ca'#0#0#3'MIDATX'#195#237 +'Y'#191'K+A'#16#206#222'mN9'#127#230'0pWZ'#4'5QAE'#176#177'PQH'#29'Me'#235#31 +'`aaace)('#22'b#'#130#22#9'b'''#10#22'F-'#3#137'1'#1'-'#196#128'J'#240#23'A%' +#152#236#221#237'+'#14#246#5'^4'#187#203#202#211#247#156'"'#197#178'3'#251 +#221#236'|'#243#205']'#0#198#216#245#149'Lr}1'#131#220#158#8#161#211#211#211 +#243#243#243't:}'#127#127'/I'#146#174#235#157#157#157'mmm]]]'#252#136'0'#151 +'-//k'#154#230'v'#187#255#12#168'('#138'a'#24#209'h'#148'/23'#160'X,'#214#222 +#222'N'#243#168#131#131#131#169'T'#234's'#1#173#175#175#3#0#232#211#175'(' +#202#201#201#9#211#17#128#158'ekkkSSS'#229'+'#3#3#3#225'p'#184#187#187#219 +#235#245#218#182#157#203#229#226#241#248#230#230'f&'#147')'#223#182#183#183 +'766&'#184#134#18#137#4#132#191#25#160#170#234#238#238#238'{'#155'WVV'#202'7' +'{<'#158'\.'''#248#202'z{{'#201#1#129'@'#224#250#250#250#227#253#169'T'#202 +#235#245#18#151#137#137#9#145#128#182#183#183'Ih'#183#219'}yyI'#227'uxxX~'#21 +#201'dR'#24#160'@ @'#226'F"'#17#250#10#157#159#159''''#142#227#227#227'b'#0 +#221#222#222'677;A[[['#153'('#243#252#252#220#216#216#232#248#250'|'#190'B' +#161'P'#213#165#186't<<<'#188#188#188#144#214#194#212'uUU%M'#235#230#230#230 +#237#237#141'_:'#174#174#174#242#249'<'#0' '#30#143'['#150#229',655%'#147'I' +#6#165#148'$'#146#161'B'#161#144'H$4M'#195#24#235#186#174#235'zE'#151#202'}' +#232#226#226#194#239#247#203#178#236'r'#185'l'#219'6M'#211'Y'#151'e'#217'Y' +#164'7'#211'4m'#219'&'#132' }'#245#233#233#169#174#174#142#182#15'---}'#182 +#170#239#239#239'W<'#26#190#151'j'#231'7'#24#12'z<'#30#129'8'#178#217#236#209 +#209#17#231#248'!I'#210#228#228#164#207#231#19#8#232#224#224#224#248#248#248 +#3#189#130#31#171#10'B'#168'T*'#9#4#132#16#250'w''F'#203#178'^__'#153#198#15 +#199#234#235#235#157#162#20#9#8'B8==}vv'#198#10#8'c'#28#12#6'gffH3'#19#3#8#0 +#128#16#226'xE'#177'm'#187'j'#221#240#0'B'#8'-..'#230#243'y'#142#178#208'4' +#141'2=l5'#4'!lii'#249#239#222#203#190#249#139'"'#7#231#29#162#137#7'$'#203 +#242#214#214'V,'#22#227#160'}('#20#26#25#25'!'#154'/'#140#246#27#27#27#143 +#143#143#28#25#178',kttT0 '#203#178'VWW'#211#233'4'#199#173#245#245#245#145 +#137'J'#24' '#140#177'a'#24#134'a'#252#176#236#187#176#204#153#136'3'#153#12 +'St'#140'1'#132#208#239#247#23#139'E'#193#128#20'E'#9#133'B'#217'l'#150'#CCC' +'C'#11#11#11#148'r&'#209'?k'#127#127'?_Y'#244#244#244#208#231#149'A'#237'ggg' +#231#230#230'('#219'I'#249'`^*'#149#232''''#16#134#26'*'#22#139#244#165#240 +#163#246#127#165#15#1#0'jkkUU'#21'x^MM'#13#15' '#135#20#166'i'#134#195#225'/' +'qe'#149'?'#3#8#181#134#134#6#134#175#31#8#161#225#225#225#187#187#187'OB' +#211#209#209#177#179#179#195#0#136'C'#131'Di"'#248#249'7'#168#138#253#2#14 +#235#198#155#184#176'iV'#0#0#0#0'IEND'#174'B`'#130#12'Proportional'#9#7'Visi' +'ble'#8#0#0#6'TImage'#13'UnLockedImage'#4'Left'#2#3#6'Height'#2' '#4'Hint'#6 +#8'Unlocked'#3'Top'#3#193#0#5'Width'#2#30#12'Picture.Data'#10'='#3#0#0#23'TP' +'ortableNetworkGraphic!'#3#0#0#137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0'0'#0 +#0#0'0'#8#2#0#0#0#216'`n'#208#0#0#0#9'pHYs'#0#0'\F'#0#0'\F'#1#20#148'CA'#0#0 +#0#7'tIME'#7#224#12#16#23#29'%'#226'x'#6#18#0#0#2#192'IDATX'#195#237#153'?k' +#242'P'#20#198#243#207#6'm'#21'jM'#21#218'A'#28#237'P'#17#5#167#22'QA'#200#23 +'P'#196'/'#224#210#161#184':'#247#11#180#208#161'tR'#16#29#186':)'#186#136 +#155#165#169#184'8'#136#162'T'#209'A'#218'!&'#185#29#2#193#193#214#155#235'M' +#223#246#197'g'#10#9#185#247#231'9'#231#185#231#168'$'#0#128#248'M'#162#136 +'_&'#6#249'MY'#150#159#159#159#187#221#174' '#8'ooo.'#151#235#250#250#218'f' +#179'mK'#4#144#244#240#240#192'q'#156#201'dZ]*'#18#137#128#173#165#27#168#217 +'l'#158#159#159#175#253'lv'#187#253#167#129'J'#165#18'I'#146'_'#5#187'Z'#173 +'n'#15#164#163#134#138#197'b"'#145'X'#189#227#247#251#19#137#132#207#231#227 +'8'#238#244#244#212#225'p`'#168'jH'#240'N'#167#179'Z1f'#179#185'\.'#3#3#4#11 +#20#14#135'5'#26#143#199#211#235#245#128'1'#130#2#170#215#235#26#13'M'#211'/' +'//'#192'0A'#1#5#131'A'#13#232#238#238#14#24#169#205'@'#147#201#228#232#232 +'H'#165'q:'#157#192'`mn'#29#211#233't'#177'X'#168#215#23#23#23#255#172'u'#244 +#251#253#217'lF'#146#164' '#8#162'('#170'7'#173'Vk'#187#221#222#222#215#28 +#199#157#156#156#172'}J'#174#237#246#195#225#208#227#241#168#215#138#162'H' +#146#164'U4M'#211#219#135'A'#146#164#209'ht||'#12'{'#14#21#10#5#163'S'#147 +#207#231'u'#159#212'$I'#198#227'q'#173#162#177'h8'#28'V'#171'Uuq'#148#241'#' +#153'Lz'#189'^'#140'@'#141'F'#163'V'#171'}3'#21'2'#27#147#173'U4'#22'i'#229 +#248'?N'#140#178','#191#191#191'#'#236#177#191#191#15#239'MX'#160#189#189#189 +'l6'#219'j'#181#190#153#135#190':u.//s'#185#156#162'('#152'#$'#138#162#162'(' +#20'E'#233#5'Z.'#151#248'S&'#138#226#205#205#205'|>GH'#217#225#225'!dx'#244 +'E'#136#166'i<3'#225#223'r'#217#31#255#162#168#215'bZ]'#227#7#162'i'#250#233 ,#233#169'R'#169' '#216#158#231'y'#158#231'1'#219#158'a'#152#199#199#199#241 +'x'#140#16#161#143#143#15#158#231#241#219#254#254#254#190#221'n#D'#200#231 +#243#193'g'#141#129'_'#151#227#184'h4'#138'<%'#238'\'#246#195'.#'#8#130'eYA' +#16#224#155#128#138'BQ'#212#217#217#25#252'P'#197#192#211#164#211#233#215#215 +'W'#132#8#5#2#129#219#219'[Y'#150'q'#214#144','#203#161'P'#8#173','#252'~?~' +#151'I'#146#148#201'd'#174#174#174't'#165#140' '#8#138#162#150#203'%'#254#148 +#169'G'#17#222#249'z'#215#237#141'8'#135'X'#150#181'X,'#24#247'cY'#22#29#8#0 +#144'J'#165'~E'#202#172'V'#171#209#27#31#28#28#232#248#245'CQ'#148'X,6'#24#12 +#12#162'q'#187#221#149'JE'#7#16'B'#15#194#213#19#201#221#191'A'#27#244#9#135 +#193#20#218#31#129#173'p'#0#0#0#0'IEND'#174'B`'#130#12'Proportional'#9#7'Vis' +'ible'#8#0#0#7'TButton'#18'ConfLightCalButton'#22'AnchorSideLeft.Control'#7 +#15'ConfLightCalReq'#19'AnchorSideLeft.Side'#7#9'asrBottom'#24'AnchorSideBot' +'tom.Control'#7#12'LogCalButton'#4'Left'#2#22#6'Height'#2#25#4'Hint'#6'"Read' +' notes before pressing button!'#3'Top'#3#16#1#5'Width'#2'9'#7'Anchors'#11#6 +'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2#2#20'BorderSpacing.Bottom'#2 +#4#7'Caption'#6#5'Light'#10'ParentFont'#8#8'TabOrder'#2#15#7'OnClick'#7#23'C' +'onfLightCalButtonClick'#0#0#6'TShape'#15'ConfLightCalReq'#22'AnchorSideLeft' +'.Control'#7#16'ConfigurationTab'#21'AnchorSideTop.Control'#7#18'ConfLightCa' +'lButton'#18'AnchorSideTop.Side'#7#9'asrCenter'#21'AnchorSideBottom.Side'#7#9 +'asrBottom'#4'Left'#2#2#6'Height'#2#18#3'Top'#3#19#1#5'Width'#2#18#18'Border' +'Spacing.Left'#2#2#11'Brush.Color'#4#255#203#203#0#5'Shape'#7#8'stCircle'#0#0 +#6'TShape'#14'ConfDarkCalReq'#21'AnchorSideTop.Control'#7#19'ConfDarkCaluxBu' +'tton'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#17 +'ConfDarkCalButton'#4'Left'#3#148#0#6'Height'#2#18#3'Top'#3#19#1#5'Width'#2 +#18#7'Anchors'#11#5'akTop'#7'akRight'#0#19'BorderSpacing.Right'#2#2#11'Brush' +'.Color'#4#255#203#203#0#5'Shape'#7#8'stCircle'#0#0#7'TButton'#15'LabelTextB' +'utton'#22'AnchorSideLeft.Control'#7#16'PrintLabelButton'#19'AnchorSideLeft.' +'Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#16'PrintLabelButton'#4'Lef' +'t'#3#187#0#6'Height'#2#25#4'Hint'#6'.Labeler command text to clipboard and ' +'console.'#3'Top'#3'-'#1#5'Width'#2#24#7'Caption'#6#1'T'#8'TabOrder'#2#16#7 +'OnClick'#7#20'LabelTextButtonClick'#0#0#0#9'TTabSheet'#6'GPSTab'#7'Caption' +#6#3'GPS'#12'ClientHeight'#3'H'#1#11'ClientWidth'#3'e'#3#10'ParentFont'#8#0#7 +'TButton'#8'Button18'#4'Left'#2#8#6'Height'#2#25#3'Top'#2#8#5'Width'#2'K'#7 +'Caption'#6#6'0: GGA'#10'ParentFont'#8#8'TabOrder'#2#0#7'OnClick'#7#13'Butto' +'n18Click'#0#0#7'TButton'#7'Button1'#4'Left'#2#8#6'Height'#2#25#3'Top'#2' '#5 +'Width'#2'K'#7'Caption'#6#6'1: GLL'#7'Enabled'#8#10'ParentFont'#8#8'TabOrder' +#2#1#7'OnClick'#7#12'Button1Click'#0#0#7'TButton'#7'Button2'#4'Left'#2#8#6'H' +'eight'#2#25#3'Top'#2'8'#5'Width'#2'K'#7'Caption'#6#6'2: GSA'#7'Enabled'#8#10 +'ParentFont'#8#8'TabOrder'#2#2#7'OnClick'#7#12'Button2Click'#0#0#7'TButton'#7 +'Button3'#4'Left'#2#8#6'Height'#2#25#3'Top'#2'O'#5'Width'#2'K'#7'Caption'#6#6 +'4: RMC'#7'Enabled'#8#10'ParentFont'#8#8'TabOrder'#2#3#7'OnClick'#7#12'Butto' +'n3Click'#0#0#7'TButton'#7'Button4'#4'Left'#2#8#6'Height'#2#25#3'Top'#2'h'#5 +'Width'#2'K'#7'Caption'#6#6'5: VTG'#7'Enabled'#8#10'ParentFont'#8#8'TabOrder' +#2#4#7'OnClick'#7#12'Button4Click'#0#0#7'TButton'#7'Button5'#4'Left'#2#8#6'H' +'eight'#2#25#3'Top'#3#128#0#5'Width'#2'K'#7'Caption'#6#6'6: MSS'#7'Enabled'#8 +#10'ParentFont'#8#8'TabOrder'#2#5#7'OnClick'#7#12'Button5Click'#0#0#7'TButto' +'n'#7'Button6'#4'Left'#2#8#6'Height'#2#25#3'Top'#3#152#0#5'Width'#2'K'#7'Cap' +'tion'#6#6'8: ZDA'#7'Enabled'#8#10'ParentFont'#8#8'TabOrder'#2#6#7'OnClick'#7 +#12'Button6Click'#0#0#7'TButton'#7'Button7'#4'Left'#2#8#6'Height'#2#25#3'Top' +#3#177#0#5'Width'#2'K'#7'Caption'#6#7'A: GSV1'#7'Enabled'#8#10'ParentFont'#8 +#8'TabOrder'#2#7#7'OnClick'#7#12'Button7Click'#0#0#7'TButton'#7'Button8'#4'L' +'eft'#2#8#6'Height'#2#25#3'Top'#3#200#0#5'Width'#2'K'#7'Caption'#6#7'B: GSV2' +#7'Enabled'#8#10'ParentFont'#8#8'TabOrder'#2#8#7'OnClick'#7#12'Button8Click' +#0#0#7'TButton'#7'Button9'#4'Left'#2#8#6'Height'#2#25#3'Top'#3#224#0#5'Width' +#2'K'#7'Caption'#6#7'C: GSV3'#7'Enabled'#8#10'ParentFont'#8#8'TabOrder'#2#9#7 +'OnClick'#7#12'Button9Click'#0#0#5'TMemo'#11'GPSResponse'#4'Left'#2'Z'#6'Hei' +'ght'#3'1'#1#3'Top'#2#10#5'Width'#3#168#2#10'ParentFont'#8#8'TabOrder'#2#10#0 +#0#0#9'TTabSheet'#18'TroubleshootingTab'#7'Caption'#6#15'Troubleshooting'#12 +'ClientHeight'#3'H'#1#11'ClientWidth'#3'e'#3#10'ParentFont'#8#0#8'TListBox'#8 +'ListBox1'#4'Left'#3#166#0#6'Height'#3#236#0#3'Top'#2#20#5'Width'#3#233#0#10 +'ItemHeight'#2#0#10'ParentFont'#8#11'ScrollWidth'#3#231#0#8'TabOrder'#2#0#8 +'TopIndex'#2#255#0#0#7'TButton'#14'StartResetting'#4'Left'#2#15#6'Height'#2 +#26#3'Top'#2'J'#5'Width'#2'm'#7'Caption'#6#15'Start resetting'#10'ParentFont' +#8#8'TabOrder'#2#1#7'OnClick'#7#19'StartResettingClick'#0#0#7'TButton'#13'St' ,'opResetting'#4'Left'#2#15#6'Height'#2#26#3'Top'#2'l'#5'Width'#2'm'#7'Captio' +'n'#6#14'Stop resetting'#10'ParentFont'#8#8'TabOrder'#2#2#7'OnClick'#7#18'St' +'opResettingClick'#0#0#0#9'TTabSheet'#10'Simulation'#7'Caption'#6#10'Simulat' +'ion'#12'ClientHeight'#3'H'#1#11'ClientWidth'#3'e'#3#10'ParentFont'#8#0#7'TB' +'utton'#15'StartSimulation'#4'Left'#3'A'#2#6'Height'#2#26#3'Top'#2#8#5'Width' +#2'K'#7'Caption'#6#5'Start'#10'ParentFont'#8#8'TabOrder'#2#0#7'OnClick'#7#20 +'StartSimulationClick'#0#0#7'TButton'#14'StopSimulation'#4'Left'#3#147#2#6'H' +'eight'#2#26#3'Top'#2#8#5'Width'#2'K'#7'Caption'#6#4'Stop'#10'ParentFont'#8#8 +'TabOrder'#2#1#7'OnClick'#7#19'StopSimulationClick'#0#0#9'TCheckBox'#10'SimV' +'erbose'#4'Left'#3'A'#2#6'Height'#2#23#3'Top'#2'1'#5'Width'#2'N'#7'Caption'#6 +#7'Verbose'#10'ParentFont'#8#8'TabOrder'#2#2#0#0#5'TMemo'#10'SimResults'#22 +'AnchorSideLeft.Control'#7#10'Simulation'#23'AnchorSideRight.Control'#7#10'S' +'imulation'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#3#6'Height'#3 +#232#0#3'Top'#2'R'#5'Width'#3'_'#3#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRigh' +'t'#0#18'BorderSpacing.Left'#2#3#19'BorderSpacing.Right'#2#3#10'ParentFont'#8 +#10'ScrollBars'#7#10'ssAutoBoth'#8'TabOrder'#2#3#0#0#9'TGroupBox'#9'GroupBox' +'1'#22'AnchorSideLeft.Control'#7#10'Simulation'#21'AnchorSideTop.Control'#7 +#10'Simulation'#4'Left'#2#3#6'Height'#2'I'#3'Top'#2#0#5'Width'#3#24#1#18'Bor' +'derSpacing.Left'#2#3#7'Caption'#6#13'Sensor timing'#12'ClientHeight'#2'G'#11 +'ClientWidth'#3#22#1#10'ParentFont'#8#8'TabOrder'#2#4#0#12'TLabeledEdit'#10 +'SimFreqMax'#4'Left'#2'_'#6'Height'#2'$'#3'Top'#2#26#5'Width'#2'U'#16'EditLa' +'bel.Height'#2#19#15'EditLabel.Width'#2'U'#17'EditLabel.Caption'#6#13'Freq M' +'ax (Hz)'#21'EditLabel.ParentColor'#8#20'EditLabel.ParentFont'#8#10'ParentFo' +'nt'#8#8'TabOrder'#2#0#0#0#12'TLabeledEdit'#12'SimPeriodMax'#4'Left'#2#4#6'H' +'eight'#2'$'#3'Top'#2#26#5'Width'#2'U'#16'EditLabel.Height'#2#19#15'EditLabe' +'l.Width'#2'U'#17'EditLabel.Caption'#6#14'Period Max (s)'#21'EditLabel.Paren' +'tColor'#8#20'EditLabel.ParentFont'#8#10'ParentFont'#8#8'TabOrder'#2#1#0#0#9 +'TSpinEdit'#12'SimTimingDiv'#4'Left'#3#185#0#6'Height'#2'$'#3'Top'#2#26#5'Wi' +'dth'#2'U'#8'MaxValue'#3#16''''#10'ParentFont'#8#8'TabOrder'#2#2#0#0#6'TLabe' +'l'#6'Label3'#22'AnchorSideLeft.Control'#7#12'SimTimingDiv'#4'Left'#3#185#0#6 +'Height'#2#19#3'Top'#2#9#5'Width'#2'"'#7'Caption'#6#5'Steps'#11'ParentColor' +#8#10'ParentFont'#8#0#0#0#9'TGroupBox'#9'GroupBox3'#22'AnchorSideLeft.Contro' +'l'#7#9'GroupBox1'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.C' +'ontrol'#7#10'Simulation'#4'Left'#3#30#1#6'Height'#2'I'#3'Top'#2#0#5'Width'#3 +#24#1#18'BorderSpacing.Left'#2#3#7'Caption'#6#18'Sensor temperature'#12'Clie' +'ntHeight'#2'G'#11'ClientWidth'#3#22#1#10'ParentFont'#8#8'TabOrder'#2#5#0#12 +'TLabeledEdit'#10'SimTempMin'#4'Left'#2#6#6'Height'#2'$'#3'Top'#2#26#5'Width' +#2'U'#16'EditLabel.Height'#2#19#15'EditLabel.Width'#2'U'#17'EditLabel.Captio' +'n'#6#8'Temp Min'#21'EditLabel.ParentColor'#8#20'EditLabel.ParentFont'#8#10 +'ParentFont'#8#8'TabOrder'#2#0#0#0#12'TLabeledEdit'#10'SimTempMax'#4'Left'#2 +'^'#6'Height'#2'$'#3'Top'#2#26#5'Width'#2'U'#16'EditLabel.Height'#2#19#15'Ed' +'itLabel.Width'#2'U'#17'EditLabel.Caption'#6#8'Temp Max'#21'EditLabel.Parent' +'Color'#8#20'EditLabel.ParentFont'#8#10'ParentFont'#8#8'TabOrder'#2#1#0#0#9 +'TSpinEdit'#10'SimTempDiv'#4'Left'#3#184#0#6'Height'#2'$'#3'Top'#2#26#5'Widt' +'h'#2'U'#8'MaxValue'#3#16''''#10'ParentFont'#8#8'TabOrder'#2#2#0#0#6'TLabel' +#7'Label42'#22'AnchorSideLeft.Control'#7#10'SimTempDiv'#4'Left'#3#184#0#6'He' +'ight'#2#19#3'Top'#2#8#5'Width'#2'"'#7'Caption'#6#5'Steps'#11'ParentColor'#8 +#10'ParentFont'#8#0#0#0#7'TButton'#11'SimFromFile'#4'Left'#3#241#2#6'Height' +#2#26#4'Hint'#6'&From simin.csv stored in log directory'#3'Top'#2#8#5'Width' +#2'K'#7'Caption'#6#9'From File'#10'ParentFont'#8#8'TabOrder'#2#6#7'OnClick'#7 +#16'SimFromFileClick'#0#0#0#9'TTabSheet'#9'VectorTab'#7'Caption'#6#6'Vector' +#12'ClientHeight'#3'H'#1#11'ClientWidth'#3'e'#3#10'ParentFont'#8#0#7'TButton' +#10'VCalButton'#4'Left'#2#15#6'Height'#2' '#3'Top'#2#15#5'Width'#2't'#7'Capt' +'ion'#6#16'Calibrate-vector'#10'ParentFont'#8#8'TabOrder'#2#0#7'OnClick'#7#15 +'VCalButtonClick'#0#0#0#9'TTabSheet'#6'AccTab'#7'Caption'#6#11'Accessories' +#12'ClientHeight'#3'H'#1#11'ClientWidth'#3'e'#3#10'ParentFont'#8#10'TabVisib' +'le'#8#0#9'TGroupBox'#10'ADISPGroup'#22'AnchorSideLeft.Control'#7#8'AHTGroup' +#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6'AccTab' +#24'AnchorSideBottom.Control'#7#8'AHTGroup'#21'AnchorSideBottom.Side'#7#9'as' +'rBottom'#4'Left'#3#248#0#6'Height'#3#236#0#3'Top'#2#4#5'Width'#3#224#0#7'An' +'chors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2#4#17'Bo' +'rderSpacing.Top'#2#4#7'Caption'#6#7'Display'#12'ClientHeight'#3#216#0#11'Cl' +'ientWidth'#3#222#0#10'ParentFont'#8#8'TabOrder'#2#0#0#9'TCheckBox'#10'ADISE' +'nable'#22'AnchorSideLeft.Control'#7#10'ADISPGroup'#21'AnchorSideTop.Control' ,#7#15'ADISModelSelect'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2#4#6'H' +'eight'#2#23#3'Top'#2#11#5'Width'#2'C'#18'BorderSpacing.Left'#2#4#17'BorderS' +'pacing.Top'#2#4#7'Caption'#6#6'Enable'#10'ParentFont'#8#8'TabOrder'#2#0#8'O' +'nChange'#7#16'ADISEnableChange'#0#0#9'TGroupBox'#19'ADISBrightnessGroup'#22 +'AnchorSideLeft.Control'#7#10'ADISEnable'#21'AnchorSideTop.Control'#7#15'ADI' +'SModelSelect'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Cont' +'rol'#7#10'ADISPGroup'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#4#6 +'Height'#2'['#3'Top'#2','#5'Width'#3#214#0#7'Anchors'#11#5'akTop'#6'akLeft'#7 +'akRight'#0#17'BorderSpacing.Top'#2#4#19'BorderSpacing.Right'#2#4#7'Caption' +#6#10'Brightness'#12'ClientHeight'#2'G'#11'ClientWidth'#3#212#0#10'ParentFon' +'t'#8#8'TabOrder'#2#1#0#12'TRadioButton'#9'ADISFixed'#4'Left'#2#9#6'Height'#2 +#23#3'Top'#2#6#5'Width'#2';'#7'Caption'#6#5'Fixed'#7'Checked'#9#10'ParentFon' +'t'#8#8'TabOrder'#2#0#7'TabStop'#9#7'OnClick'#7#14'ADISFixedClick'#0#0#12'TR' +'adioButton'#8'ADISAuto'#21'AnchorSideTop.Control'#7#19'ADISFixedBrightness' +#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#9#6'Height'#2#23#3'Top'#2'+' +#5'Width'#2'8'#7'Caption'#6#4'Auto'#10'ParentFont'#8#8'TabOrder'#2#1#7'OnCli' +'ck'#7#13'ADISAutoClick'#0#0#9'TTrackBar'#19'ADISFixedBrightness'#21'AnchorS' +'ideTop.Control'#7#9'ADISFixed'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left' +#2'H'#6'Height'#2'3'#3'Top'#2#248#5'Width'#2'h'#3'Max'#2#7#8'Position'#2#0#9 +'OnMouseUp'#7#26'ADISFixedBrightnessMouseUp'#7'OnKeyUp'#7#24'ADISFixedBright' +'nessKeyUp'#10'ParentFont'#8#8'TabOrder'#2#2#0#0#0#9'TComboBox'#15'ADISModel' +'Select'#22'AnchorSideLeft.Control'#7#10'ADISEnable'#21'AnchorSideTop.Contro' +'l'#7#10'ADISPGroup'#23'AnchorSideRight.Control'#7#10'ADISPGroup'#20'AnchorS' +'ideRight.Side'#7#9'asrBottom'#4'Left'#2'j'#6'Height'#2'$'#3'Top'#2#4#5'Widt' +'h'#2'p'#7'Anchors'#11#5'akTop'#7'akRight'#0#17'BorderSpacing.Top'#2#4#19'Bo' +'rderSpacing.Right'#2#4#10'ItemHeight'#2#0#13'Items.Strings'#1#6#9'COM-11441' +#0#10'ParentFont'#8#8'TabOrder'#2#2#4'Text'#6#5'model'#8'OnChange'#7#21'ADIS' +'ModelSelectChange'#0#0#11'TRadioGroup'#8'ADISMode'#22'AnchorSideLeft.Contro' +'l'#7#19'ADISBrightnessGroup'#21'AnchorSideTop.Control'#7#19'ADISBrightnessG' +'roup'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#19 +'ADISBrightnessGroup'#20'AnchorSideRight.Side'#7#9'asrBottom'#21'AnchorSideB' +'ottom.Side'#7#9'asrBottom'#4'Left'#2#4#6'Height'#2'B'#3'Top'#3#135#0#5'Widt' +'h'#3#214#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoFill'#9#8'Au' +'toSize'#9#20'BorderSpacing.Bottom'#2#4#7'Caption'#6#4'Mode'#28'ChildSizing.' +'LeftRightSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousC' +'hildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize' +#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.Shrink' +'Vertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightTh' +'enTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'.'#11 +'ClientWidth'#3#212#0#13'Items.Strings'#1#6#21'Periodic update (1Hz)'#6#25'U' +'pdate at reading request'#0#7'OnClick'#7#13'ADISModeClick'#10'ParentFont'#8 +#8'TabOrder'#2#3#0#0#0#9'TGroupBox'#8'AHTGroup'#22'AnchorSideLeft.Control'#7 +#16'AccRefreshButton'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTo' +'p.Control'#7#6'AccTab'#4'Left'#2','#6'Height'#3#236#0#3'Top'#2#4#5'Width'#3 +#200#0#18'BorderSpacing.Left'#2#4#17'BorderSpacing.Top'#2#4#7'Caption'#6#20 +'Humidity/Temperature'#12'ClientHeight'#3#234#0#11'ClientWidth'#3#198#0#10'P' +'arentFont'#8#8'TabOrder'#2#1#0#7'TButton'#16'AHTRefreshButton'#21'AnchorSid' +'eTop.Control'#7#14'AHTModelSelect'#18'AnchorSideTop.Side'#7#9'asrBottom'#23 +'AnchorSideRight.Control'#7#14'AHTModelSelect'#20'AnchorSideRight.Side'#7#9 +'asrBottom'#4'Left'#2'w'#6'Height'#2#25#3'Top'#2','#5'Width'#2'K'#7'Anchors' +#11#5'akTop'#7'akRight'#0#17'BorderSpacing.Top'#2#4#7'Caption'#6#7'Refresh' +#10'ParentFont'#8#8'TabOrder'#2#0#7'OnClick'#7#21'AHTRefreshButtonClick'#0#0 +#12'TLabeledEdit'#16'AHTHumidityValue'#21'AnchorSideTop.Control'#7#16'AHTRef' +'reshButton'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Contro' +'l'#7#14'AHTModelSelect'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2'w' +#6'Height'#2'$'#3'Top'#2'I'#5'Width'#2'K'#7'Anchors'#11#5'akTop'#7'akRight'#0 +#17'BorderSpacing.Top'#2#4#16'EditLabel.Height'#2#19#15'EditLabel.Width'#2'<' +#17'EditLabel.Caption'#6#9'Humidity:'#21'EditLabel.ParentColor'#8#20'EditLab' +'el.ParentFont'#8#13'LabelPosition'#7#6'lpLeft'#10'ParentFont'#8#8'TabOrder' +#2#1#0#0#12'TLabeledEdit'#17'AHTHumidityStatus'#21'AnchorSideTop.Control'#7 +#19'AHTTemperatureValue'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSide' +'Right.Control'#7#14'AHTModelSelect'#20'AnchorSideRight.Side'#7#9'asrBottom' +#4'Left'#2'w'#6'Height'#2'$'#3'Top'#3#153#0#5'Width'#2'K'#7'Anchors'#11#5'ak' +'Top'#7'akRight'#0#17'BorderSpacing.Top'#2#4#16'EditLabel.Height'#2#19#15'Ed' ,'itLabel.Width'#2'*'#17'EditLabel.Caption'#6#7'Status:'#21'EditLabel.ParentC' +'olor'#8#20'EditLabel.ParentFont'#8#13'LabelPosition'#7#6'lpLeft'#10'ParentF' +'ont'#8#8'TabOrder'#2#2#0#0#12'TLabeledEdit'#19'AHTTemperatureValue'#21'Anch' +'orSideTop.Control'#7#16'AHTHumidityValue'#18'AnchorSideTop.Side'#7#9'asrBot' +'tom'#23'AnchorSideRight.Control'#7#16'AHTRefreshButton'#20'AnchorSideRight.' +'Side'#7#9'asrBottom'#4'Left'#2'w'#6'Height'#2'$'#3'Top'#2'q'#5'Width'#2'K'#7 +'Anchors'#11#5'akTop'#7'akRight'#0#17'BorderSpacing.Top'#2#4#16'EditLabel.He' +'ight'#2#19#15'EditLabel.Width'#2'T'#17'EditLabel.Caption'#6#12'Temperature:' +#21'EditLabel.ParentColor'#8#20'EditLabel.ParentFont'#8#13'LabelPosition'#7#6 +'lpLeft'#10'ParentFont'#8#8'TabOrder'#2#3#0#0#9'TComboBox'#14'AHTModelSelect' +#22'AnchorSideLeft.Control'#7#9'AHTEnable'#21'AnchorSideTop.Control'#7#8'AHT' +'Group'#23'AnchorSideRight.Control'#7#8'AHTGroup'#20'AnchorSideRight.Side'#7 +#9'asrBottom'#4'Left'#2'b'#6'Height'#2'$'#3'Top'#2#4#5'Width'#2'`'#7'Anchors' +#11#5'akTop'#7'akRight'#0#17'BorderSpacing.Top'#2#4#19'BorderSpacing.Right'#2 +#4#10'ItemHeight'#2#0#13'Items.Strings'#1#6#7'HIH8120'#6#6'HYT939'#0#10'Pare' +'ntFont'#8#8'TabOrder'#2#4#4'Text'#6#5'model'#8'OnChange'#7#20'AHTModelSelec' +'tChange'#0#0#9'TCheckBox'#9'AHTEnable'#22'AnchorSideLeft.Control'#7#8'AHTGr' +'oup'#21'AnchorSideTop.Control'#7#14'AHTModelSelect'#18'AnchorSideTop.Side'#7 +#9'asrCenter'#4'Left'#2#4#6'Height'#2#23#3'Top'#2#11#5'Width'#2'C'#18'Border' +'Spacing.Left'#2#4#17'BorderSpacing.Top'#2#4#7'Caption'#6#6'Enable'#10'Paren' +'tFont'#8#8'TabOrder'#2#5#8'OnChange'#7#15'AHTEnableChange'#0#0#0#9'TGroupBo' +'x'#9'ALEDGroup'#22'AnchorSideLeft.Control'#7#10'ADISPGroup'#19'AnchorSideLe' +'ft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6'AccTab'#24'AnchorSide' +'Bottom.Control'#7#10'ADISPGroup'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4 +'Left'#3#220#1#6'Height'#2't'#3'Top'#2#4#5'Width'#3#174#0#18'BorderSpacing.L' +'eft'#2#4#17'BorderSpacing.Top'#2#4#7'Caption'#6#17'Reading LED blink'#12'Cl' +'ientHeight'#2'`'#11'ClientWidth'#3#172#0#10'ParentFont'#8#8'TabOrder'#2#2#0 +#9'TCheckBox'#10'ALEDEnable'#22'AnchorSideLeft.Control'#7#9'ALEDGroup'#21'An' +'chorSideTop.Control'#7#9'ALEDGroup'#4'Left'#2#4#6'Height'#2#23#3'Top'#2#4#5 +'Width'#2'C'#18'BorderSpacing.Left'#2#4#17'BorderSpacing.Top'#2#4#7'Caption' +#6#6'Enable'#10'ParentFont'#8#8'TabOrder'#2#0#8'OnChange'#7#16'ALEDEnableCha' +'nge'#0#0#11'TRadioGroup'#8'ALEDMode'#22'AnchorSideLeft.Control'#7#10'ALEDEn' +'able'#21'AnchorSideTop.Control'#7#10'ALEDEnable'#18'AnchorSideTop.Side'#7#9 +'asrBottom'#23'AnchorSideRight.Control'#7#9'ALEDGroup'#20'AnchorSideRight.Si' +'de'#7#9'asrBottom'#4'Left'#2#4#6'Height'#2':'#3'Top'#2#31#5'Width'#3#164#0#7 +'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoFill'#9#17'BorderSpacing.' +'Top'#2#4#19'BorderSpacing.Right'#2#4#7'Caption'#6#4'Mode'#28'ChildSizing.Le' +'ftRightSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChi' +'ldResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28 +'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVer' +'tical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenT' +'opToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'&'#11'Cl' +'ientWidth'#3#162#0#13'Items.Strings'#1#6#19'At reading creation'#6#18'At re' +'ading request'#0#7'OnClick'#7#13'ALEDModeClick'#10'ParentFont'#8#8'TabOrder' +#2#1#0#0#0#9'TGroupBox'#9'GroupBox5'#22'AnchorSideLeft.Control'#7#9'ALEDGrou' +'p'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#9'ALE' +'DGroup'#24'AnchorSideBottom.Control'#7#8'AHTGroup'#21'AnchorSideBottom.Side' +#7#9'asrBottom'#4'Left'#3#142#2#6'Height'#3#236#0#3'Top'#2#4#5'Width'#3#198#0 +#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2#4#7 +'Caption'#6#5'Relay'#12'ClientHeight'#3#234#0#11'ClientWidth'#3#196#0#10'Par' +'entFont'#8#8'TabOrder'#2#3#0#6'TLabel'#13'ARLYModeLabel'#21'AnchorSideTop.C' +'ontrol'#7#16'ARLYModeComboBox'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'Anc' +'horSideRight.Control'#7#16'ARLYModeComboBox'#4'Left'#2#7#6'Height'#2#19#3'T' +'op'#2#13#5'Width'#2'('#7'Anchors'#11#5'akTop'#7'akRight'#0#17'BorderSpacing' +'.Top'#2#4#19'BorderSpacing.Right'#2#2#7'Caption'#6#5'Mode:'#11'ParentColor' +#8#10'ParentFont'#8#0#0#9'TComboBox'#16'ARLYModeComboBox'#21'AnchorSideTop.C' +'ontrol'#7#9'GroupBox5'#23'AnchorSideRight.Control'#7#9'GroupBox5'#20'Anchor' +'SideRight.Side'#7#9'asrBottom'#4'Left'#2'1'#6'Height'#2'$'#3'Top'#2#4#5'Wid' +'th'#2'n'#17'BorderSpacing.Top'#2#4#19'BorderSpacing.Right'#2#4#10'ItemHeigh' +'t'#2#0#13'Items.Strings'#1#6#5'Light'#6#8'Dewpoint'#6#4'Heat'#6#5'--3--'#6#5 +'--4--'#6#5'--5--'#6#5'--6--'#6#6'Manual'#0#10'ParentFont'#8#8'TabOrder'#2#0 +#8'OnChange'#7#22'ARLYModeComboBoxChange'#0#0#9'TTrackBar'#13'ARLYThreshold' +#22'AnchorSideLeft.Control'#7#18'ARLYThresholdLabel'#19'AnchorSideLeft.Side' +#7#9'asrBottom'#18'AnchorSideTop.Side'#7#9'asrCenter'#24'AnchorSideBottom.Co' ,'ntrol'#7#9'GroupBox5'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2'''' +#6'Height'#2'3'#4'Hint'#6#25'Turn on above this mpsas.'#3'Top'#3#183#0#5'Wid' +'th'#2'_'#3'Max'#2#31#8'Position'#2#0#7'Anchors'#11#6'akLeft'#8'akBottom'#0#9 +'OnMouseUp'#7#20'ARLYThresholdMouseUp'#7'OnKeyUp'#7#18'ARLYThresholdKeyUp'#10 +'ParentFont'#8#8'TabOrder'#2#1#0#0#12'TLabeledEdit'#21'ARLYStatusLabeledEdit' +#21'AnchorSideTop.Control'#7#6'ARLYOn'#18'AnchorSideTop.Side'#7#9'asrBottom' +#23'AnchorSideRight.Control'#7#7'ARLYOff'#20'AnchorSideRight.Side'#7#9'asrBo' +'ttom'#4'Left'#2'S'#6'Height'#2'$'#3'Top'#2'I'#5'Width'#2'K'#9'Alignment'#7#8 +'taCenter'#7'Anchors'#11#5'akTop'#7'akRight'#0#17'BorderSpacing.Top'#2#4#16 +'EditLabel.Height'#2#19#15'EditLabel.Width'#2'*'#17'EditLabel.Caption'#6#7'S' +'tatus:'#21'EditLabel.ParentColor'#8#20'EditLabel.ParentFont'#8#13'LabelPosi' +'tion'#7#6'lpLeft'#10'ParentFont'#8#8'TabOrder'#2#2#0#0#6'TLabel'#18'ARLYThr' +'esholdLabel'#22'AnchorSideLeft.Control'#7#9'GroupBox5'#24'AnchorSideBottom.' +'Control'#7#13'ARLYThreshold'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Lef' +'t'#2#4#6'Height'#2#19#3'Top'#3#211#0#5'Width'#2'#'#7'Anchors'#11#6'akLeft'#8 +'akBottom'#0#18'BorderSpacing.Left'#2#4#20'BorderSpacing.Bottom'#2#4#7'Capti' +'on'#6#6'Light:'#11'ParentColor'#8#10'ParentFont'#8#0#0#7'TButton'#6'ARLYOn' +#22'AnchorSideLeft.Control'#7#9'GroupBox5'#21'AnchorSideTop.Control'#7#16'AR' +'LYModeComboBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#4#6'Height' +#2#25#3'Top'#2','#5'Width'#2'K'#18'BorderSpacing.Left'#2#4#17'BorderSpacing.' +'Top'#2#4#7'Caption'#6#2'On'#10'ParentFont'#8#8'TabOrder'#2#3#7'OnClick'#7#11 +'ARLYOnClick'#0#0#7'TButton'#7'ARLYOff'#22'AnchorSideLeft.Control'#7#6'ARLYO' +'n'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6'ARL' +'YOn'#4'Left'#2'S'#6'Height'#2#25#3'Top'#2','#5'Width'#2'K'#18'BorderSpacing' +'.Left'#2#4#7'Caption'#6#3'Off'#10'ParentFont'#8#8'TabOrder'#2#4#7'OnClick'#7 +#12'ARLYOffClick'#0#0#12'TLabeledEdit'#10'ARLYTValue'#21'AnchorSideTop.Contr' +'ol'#7#21'ARLYStatusLabeledEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Lef' +'t'#2#15#6'Height'#2'$'#3'Top'#2'o'#5'Width'#2'&'#9'Alignment'#7#8'taCenter' +#7'Anchors'#11#5'akTop'#0#17'BorderSpacing.Top'#2#2#16'EditLabel.Height'#2#19 +#15'EditLabel.Width'#2#11#17'EditLabel.Caption'#6#2'T:'#21'EditLabel.ParentC' +'olor'#8#20'EditLabel.ParentFont'#8#13'LabelPosition'#7#6'lpLeft'#10'ParentF' +'ont'#8#8'TabOrder'#2#5#0#0#12'TLabeledEdit'#10'ARLYHValue'#21'AnchorSideTop' +'.Control'#7#10'ARLYTValue'#4'Left'#2'O'#6'Height'#2'$'#3'Top'#2'o'#5'Width' +#2#30#9'Alignment'#7#8'taCenter'#7'Anchors'#11#5'akTop'#0#16'EditLabel.Heigh' +'t'#2#19#15'EditLabel.Width'#2#14#17'EditLabel.Caption'#6#2'H:'#21'EditLabel' +'.ParentColor'#8#20'EditLabel.ParentFont'#8#13'LabelPosition'#7#6'lpLeft'#10 +'ParentFont'#8#8'TabOrder'#2#6#0#0#12'TLabeledEdit'#12'ARLYTDPValue'#21'Anch' +'orSideTop.Control'#7#10'ARLYHValue'#4'Left'#3#152#0#6'Height'#2'$'#3'Top'#2 +'o'#5'Width'#2' '#9'Alignment'#7#8'taCenter'#7'Anchors'#11#5'akTop'#0#16'Edi' +'tLabel.Height'#2#19#15'EditLabel.Width'#2#26#17'EditLabel.Caption'#6#4'Tdp:' +#21'EditLabel.ParentColor'#8#20'EditLabel.ParentFont'#8#13'LabelPosition'#7#6 +'lpLeft'#10'ParentFont'#8#8'TabOrder'#2#7#0#0#6'TLabel'#18'ARLYThresholdValu' +'e'#21'AnchorSideTop.Control'#7#13'ARLYThreshold'#18'AnchorSideTop.Side'#7#9 +'asrCenter'#4'Left'#3#142#0#6'Height'#2#19#3'Top'#3#199#0#5'Width'#2'+'#7'Ca' +'ption'#6#11'XiiiiiiiiiX'#11'ParentColor'#8#10'ParentFont'#8#0#0#0#7'TBitBtn' +#16'AccRefreshButton'#4'Left'#2#6#6'Height'#2' '#4'Hint'#6#26'Refresh access' +'ory settings'#3'Top'#2#6#5'Width'#2'"'#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0 +'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4 +#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#1#255#255#255#1#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#1 +#255#255#255#31#255#255#255'^'#255#255#255'4'#255#255#255#11#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#2#255#255#255#5#255#255#255#0#255#255#255#0#255#255 +#255#1#255#255#255';;;;z'#140#140#140'~'#236#236#236'z'#255#255#255#28#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#1#250#250#250'Q'#246#246#246']'#255#255#255#1#255#255#255#0#255#255#255 +#1#255#255#255':'#1#1#1#182#0#0#0#156#21#21#21#129#206#206#206#131#255#255 +#255#17#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255 ,' '#148#148#148#132'xxx'#132#255#255#255'0'#255#255#255#0#255#255#255#0#255 +#255#255#21#155#155#155'f'#22#22#22#160#0#0#0#167#20#20#20#136#233#233#233'd' +#255#255#255#1#255#255#255#0#255#255#255#0#255#255#255#4#215#215#215'|'#4#4#4 +#150#0#0#0#151#190#190#190#133#255#255#255#16#255#255#255#0#255#255#255#0#255 +#255#255#3#255#255#255'&+++'#149#0#0#0#152'eee'#127#255#255#255#13#255#255 +#255#0#255#255#255#1#247#247#247'Q((('#157#0#0#0#164#0#0#0#161#16#16#16#163 +#220#220#220't'#255#255#255#2#255#255#255#0#255#255#255#0#255#255#255#3#147 +#147#147'j'#0#0#0#167')))'#142#255#255#255'%'#255#255#255#1#255#255#255#16'm' +'mm'#148#5#5#5#195#1#1#1#182#0#0#0#170#9#9#9#188'BBB'#169#255#255#255''''#255 +#255#255#1#255#255#255#0#255#255#255#1#255#255#255'A'#22#22#22#159#6#6#6#166 +#255#255#255'6'#255#255#255#1#255#255#255#22#255#255#255'-'#255#255#255'3(((' +#151#0#0#0#179#147#147#147#139#255#255#255'3'#255#255#255'"'#255#255#255#1 +#255#255#255#0#255#255#255#1#244#244#244'm'#1#1#1#176#14#14#14#162#255#255 +#255'$'#255#255#255#1#255#255#255#0#255#255#255#1#255#255#255#3'WWW'#138#0#0 +#0#197#26#26#26#168#253#253#253'a'#255#255#255#24#255#255#255#4#255#255#255 +#23#255#255#255'Fvvv'#148#0#0#0#192')))'#161#255#255#255#12#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#1#245#245#245'2'#8#8#8#192#0#0#0#205'LL' +'L'#158#228#228#228#132#255#255#255't'#238#238#238#129'qqq'#151#1#1#1#200#2#2 +#2#206#194#194#194'S'#255#255#255#1#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#2#158#158#158'c'#5#5#5#206#0#0#0#221#0#0#0#214#10 +#10#10#198#0#0#0#213#0#0#0#220#1#1#1#216'ooo'#128#255#255#255#8#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#3#212#212#212'A,,,'#164#6#6#6#205#1#1#1#225#7#7#7#202'"""'#172#192 +#192#192'T'#255#255#255#8#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#1 +#255#255#255#6#255#255#255'#'#255#255#255'5'#255#255#255'"'#255#255#255#10 +#255#255#255#1#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#1#255#255#255#1#255#255#255#1#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#7'OnC' +'lick'#7#21'AccRefreshButtonClick'#10'ParentFont'#8#8'TabOrder'#2#4#0#0#9'TG' +'roupBox'#18'AccSNOWLEDGroupBox'#22'AnchorSideLeft.Control'#7#9'ALEDGroup'#21 +'AnchorSideTop.Control'#7#9'ALEDGroup'#18'AnchorSideTop.Side'#7#9'asrBottom' +#23'AnchorSideRight.Control'#7#9'ALEDGroup'#20'AnchorSideRight.Side'#7#9'asr' +'Bottom'#24'AnchorSideBottom.Control'#7#8'AHTGroup'#21'AnchorSideBottom.Side' +#7#9'asrBottom'#4'Left'#3#220#1#6'Height'#3#184#0#3'Top'#2'x'#5'Width'#3#174 +#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#7'Caption'#6#9'Snow LED:'#12 +'ClientHeight'#3#182#0#11'ClientWidth'#3#172#0#8'TabOrder'#2#5#0#7'TButton' +#18'AccSnowLEDOnButton'#22'AnchorSideLeft.Control'#7#18'AccSNOWLEDGroupBox' +#19'AnchorSideLeft.Side'#7#9'asrCenter'#21'AnchorSideTop.Control'#7#15'AccSn' +'owOnLinRdg'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2#8#6'Height'#2#25 +#4'Hint'#6#16'Turn ON snow LED'#3'Top'#2'@'#5'Width'#2'('#7'Anchors'#11#5'ak' +'Top'#0#17'BorderSpacing.Top'#2#10#7'Caption'#6#2'ON'#8'TabOrder'#2#0#7'OnCl' +'ick'#7#23'AccSnowLEDOnButtonClick'#0#0#7'TButton'#19'AccSnowLEDOffButton'#22 +'AnchorSideLeft.Control'#7#18'AccSnowLEDOnButton'#21'AnchorSideTop.Control'#7 +#16'AccSnowOffLinRdg'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2#8#6'He' +'ight'#2#25#4'Hint'#6#17'Turn OFF snow LED'#3'Top'#2'g'#5'Width'#2'('#17'Bor' +'derSpacing.Top'#2#7#7'Caption'#6#3'OFF'#8'TabOrder'#2#1#7'OnClick'#7#24'Acc' +'SnowLEDOffButtonClick'#0#0#6'TShape'#16'ACCSnowLEDStatus'#22'AnchorSideLeft' +'.Control'#7#18'AccSnowLEDOnButton'#19'AnchorSideLeft.Side'#7#9'asrCenter'#21 +'AnchorSideTop.Control'#7#12'AccSnowLinRq'#18'AnchorSideTop.Side'#7#9'asrCen' +'ter'#4'Left'#2#18#6'Height'#2#20#4'Hint'#6#15'Snow LED status'#3'Top'#2' '#5 +'Width'#2#20#18'BorderSpacing.Left'#2#4#11'Brush.Color'#7#6'clGray'#5'Shape' +#7#8'stCircle'#0#0#9'TCheckBox'#20'SnowLoggingEnableBox'#22'AnchorSideLeft.C' +'ontrol'#7#18'AccSNOWLEDGroupBox'#21'AnchorSideTop.Control'#7#18'AccSNOWLEDG' +'roupBox'#4'Left'#2#0#6'Height'#2#23#4'Hint'#6'0Enable/Disable Snow LED when' +' reading and logging'#3'Top'#2#0#5'Width'#3#148#0#7'Caption'#6#19'Snow fact' +'or logging'#8'TabOrder'#2#2#8'OnChange'#7#26'SnowLoggingEnableBoxChange'#0#0 +#7'TButton'#12'AccSnowLinRq'#21'AnchorSideTop.Control'#7#20'SnowLoggingEnabl' +'eBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2'8'#6'Height'#2#25#4'H' +'int'#6#18'Get linear reading'#3'Top'#2#30#5'Width'#2'h'#7'Anchors'#11#5'akT' +'op'#0#17'BorderSpacing.Top'#2#7#7'Caption'#6#14'Linear Reading'#8'TabOrder' +#2#3#7'OnClick'#7#17'AccSnowLinRqClick'#0#0#5'TEdit'#15'AccSnowOnLinRdg'#21 +'AnchorSideTop.Control'#7#12'AccSnowLinRq'#18'AnchorSideTop.Side'#7#9'asrBot' ,'tom'#4'Left'#2'8'#6'Height'#2'$'#4'Hint'#6#14'Linear reading'#3'Top'#2':'#5 +'Width'#2'h'#9'Alignment'#7#14'taRightJustify'#7'Anchors'#11#5'akTop'#0#17'B' +'orderSpacing.Top'#2#3#8'ReadOnly'#9#8'TabOrder'#2#4#0#0#5'TEdit'#16'AccSnow' +'OffLinRdg'#21'AnchorSideTop.Control'#7#15'AccSnowOnLinRdg'#18'AnchorSideTop' +'.Side'#7#9'asrBottom'#4'Left'#2'8'#6'Height'#2'$'#4'Hint'#6#14'Linear readi' +'ng'#3'Top'#2'a'#5'Width'#2'h'#9'Alignment'#7#14'taRightJustify'#7'Anchors' +#11#5'akTop'#0#17'BorderSpacing.Top'#2#3#8'ReadOnly'#9#8'TabOrder'#2#5#0#0#5 +'TEdit'#14'AccSnowLinDiff'#22'AnchorSideLeft.Control'#7#16'AccSnowOffLinRdg' +#21'AnchorSideTop.Control'#7#16'AccSnowOffLinRdg'#18'AnchorSideTop.Side'#7#9 +'asrBottom'#4'Left'#2'8'#6'Height'#2'$'#4'Hint'#6#14'Linear reading'#3'Top'#3 +#136#0#5'Width'#2'h'#9'Alignment'#7#14'taRightJustify'#17'BorderSpacing.Top' +#2#3#8'ReadOnly'#9#8'TabOrder'#2#6#0#0#6'TLabel'#7'Label24'#19'AnchorSideLef' +'t.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#14'AccSnowLinDiff'#18'An' +'chorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#14'AccSnowLi' +'nDiff'#4'Left'#2#30#6'Height'#2#19#3'Top'#3#145#0#5'Width'#2#26#7'Anchors' +#11#5'akTop'#7'akRight'#0#7'Caption'#6#5'Diff:'#11'ParentColor'#8#0#0#0#0#0#7 +'TBitBtn'#10'FindButton'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSide' +'Top.Control'#7#5'Owner'#4'Left'#2#1#6'Height'#2' '#4'Hint'#6'5Find attached' +' USB and Ethernet devices automatically.'#3'Top'#2#1#5'Width'#2'A'#8'HelpTy' +'pe'#7#9'htKeyword'#18'BorderSpacing.Left'#2#1#17'BorderSpacing.Top'#2#1#7'C' +'aption'#6#4'Find'#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6' +#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0 +#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#21#21#27'0'#19#21#25#227#19#22#25#255#19 +#22#25#224#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#18#21#25'H'#18#22#26#235'"(-'#225'7>D'#255#19#22#25#255#255 +#255#255#0#255#255#255#0#255#255#255#0#0'9q'#9#2'9|u'#3';'#129#186#1':~'#233 +#1':~'#233#3';'#129#186#2'9|u'#17#27'"i'#19#23#26#236'$4>'#239'dko'#255'enu' +#253#20#25#28#237#255#255#255#0#255#255#255#0#0'8y7'#2'9~'#227#15'S'#163#246 +#27'h'#194#255'$x'#211#255'%{'#209#255#29'n'#192#255#16'U'#160#251#4'7t'#252 +' Cb'#250'dow'#255'u'#127#134#255#24#28#31#243#19#24#24'5'#255#255#255#0#0'8' +'y7'#3'='#129#240'!o'#199#255#31#132#174#255#16#151'q'#250#17#168'd'#254#16 +#167'c'#254#17#149'p'#251'$'#140#170#255'('#127#193#255#9'C'#129#255'dw'#137 +#255#27' $'#246#18#22#26'F'#255#255#255#0#0'9q'#9#2':~'#227'%s'#200#255#23 +#139#137#251#16#160'b'#251'#'#129'f'#162'T'#140'{[T'#140'{[#'#128'f'#162#15 +#154'_'#252#28#144#135#254'2'#137#194#255#5'8t'#254#21#29'%a'#255#255#255#0 +#255#255#255#0#2'9|u'#22'X'#165#246''''#137#175#255#15#155'a'#251'Ulgc'#165 +#170#170'0'#211#211#211#23#211#211#211#23#165#170#170'0Ulgc'#14#148'['#252'4' +#154#170#255'"k'#165#251#2'9|u'#255#255#255#0#255#255#255#0#4'?'#134#186',x' +#198#255#17#143'n'#250#24'mT'#173#131#135#135'F'#202#202#213#24#213#234#234 +#12#213#234#234#12#202#202#213#24#131#135#135'F'#24'iQ'#173#21#140'k'#251'E' +#152#196#255#4'@'#134#186#255#255#255#0#255#255#255#0#3'A'#140#233'?'#146#216 +#255#14#151'['#254'/RG'#130#137#141#141'A'#206#219#219#21#219#219#219#7#219 +#219#219#7#206#219#219#21#137#141#141'A-PE'#130#14#141'U'#254'e'#184#209#255 +#3'B'#140#233#255#255#255#0#255#255#255#0#4'F'#149#233'E'#155#216#255#14#145 +'Y'#254'(JA'#134'~'#129#129'I'#200#200#209#28#204#221#221#15#207#223#223#16 +#204#204#213#30'~'#129#129'I(F?'#134#13#133'R'#254'x'#196#214#255#4'F'#149 +#233#255#255#255#0#255#255#255#0#7'M'#159#186'>'#145#206#255#18#136'l'#250#21 +'aQ'#173'```]'#155#155#159'8'#209#214#214','#250#250#250#159#242#242#242#170 +#141#141#141'r'#19'[M'#173#26#131'i'#251't'#185#213#255#7'M'#160#186#255#255 +#255#0#255#255#255#0#2'L'#166'u(y'#190#247'@'#158#177#255#11'}R'#251'0>:'#127 +'fffZ'#219#220#220#147#249#251#251#231#232#232#232#203'O[W'#138#8'oI'#251's' +#185#186#255'V'#153#202#249#2'L'#166'u'#255#255#255#0#255#255#255#0#0'U'#170 +#9#6'R'#175#227'U'#169#212#255')'#141#138#252#9'qL'#251#18'TK'#173':QM'#132 +'dws'#148#30'UQ'#176#6'bC'#251'I'#149#144#252#172#215#232#255#7'S'#175#227#0 +'U'#170#9#255#255#255#0#255#255#255#0#255#255#255#0#0'O'#181'7'#14'^'#185#241 +'d'#182#215#255'W'#174#179#255#22'rd'#251#7'_>'#254#6'Y:'#254#26'm^'#251#144 +#192#194#255#207#230#244#255'"k'#193#242#0'O'#181'7'#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0'S'#190'7'#8'\'#193#227'I' +#153#210#248'}'#199#221#255#162#225#226#255#178#229#230#255#170#217#234#255 +#128#180#227#250#10']'#194#227#0'S'#190'7'#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0'U'#198#9 ,#4'\'#203'u'#11'c'#204#186#8'`'#202#233#9'`'#202#233#11'c'#204#186#4'^'#203 +'u'#0'U'#198#9#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#7'OnClick'#7#15'FindButtonClick'#10'ParentFont'#8#8'TabOrder'#2#1 +#0#0#8'TListBox'#12'FoundDevices'#22'AnchorSideLeft.Control'#7#10'FindButton' +#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#5'Owner' +#23'AnchorSideRight.Control'#7#12'CommNotebook'#24'AnchorSideBottom.Control' +#7#12'DataNoteBook'#4'Left'#2'E'#6'Height'#3#157#0#3'Top'#2#0#5'Width'#3#178 +#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#18'BorderSpacin' +'g.Left'#2#3#20'BorderSpacing.Bottom'#2#2#11'Font.Height'#2#244#9'Font.Name' +#6#16'Courier 10 Pitch'#10'Font.Pitch'#7#7'fpFixed'#10'ItemHeight'#2#0#10'Pa' +'rentFont'#8#11'ScrollWidth'#3#176#1#8'TabOrder'#2#2#8'TopIndex'#2#255#7'OnC' +'lick'#7#17'FoundDevicesClick'#10'OnDblClick'#7#20'FoundDevicesDblClick'#17 +'OnSelectionChange'#7#27'FoundDevicesSelectionChange'#0#0#12'TPageControl'#12 +'CommNotebook'#21'AnchorSideTop.Control'#7#5'Owner'#23'AnchorSideRight.Contr' +'ol'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.' +'Control'#7#12'FoundDevices'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left' +#3#247#1#6'Height'#3#157#0#3'Top'#2#0#5'Width'#3'x'#1#10'ActivePage'#7#11'Ta' +'bEthernet'#7'Anchors'#11#5'akTop'#7'akRight'#8'akBottom'#0#10'ParentFont'#8 +#8'TabIndex'#2#1#8'TabOrder'#2#4#8'OnChange'#7#18'CommNotebookChange'#10'OnC' +'hanging'#7#20'CommNotebookChanging'#0#9'TTabSheet'#6'TabUSB'#7'Caption'#6#3 +'USB'#12'ClientHeight'#2'|'#11'ClientWidth'#3'n'#1#10'ParentFont'#8#0#5'TEdi' +'t'#15'USBSerialNumber'#21'AnchorSideTop.Control'#7#6'TabUSB'#4'Left'#2'K'#6 +'Height'#2'"'#3'Top'#2#0#5'Width'#3#29#1#7'Anchors'#11#5'akTop'#0#11'Font.He' +'ight'#2#244#9'Font.Name'#6#16'Courier 10 Pitch'#10'Font.Pitch'#7#7'fpFixed' +#10'ParentFont'#8#8'ReadOnly'#9#8'TabOrder'#2#0#0#0#5'TEdit'#7'USBPort'#21'A' +'nchorSideTop.Control'#7#15'USBSerialNumber'#18'AnchorSideTop.Side'#7#9'asrB' +'ottom'#4'Left'#2'L'#6'Height'#2'"'#3'Top'#2'"'#5'Width'#3#29#1#7'Anchors'#11 +#5'akTop'#0#11'Font.Height'#2#244#9'Font.Name'#6#16'Courier 10 Pitch'#10'Fon' +'t.Pitch'#7#7'fpFixed'#10'ParentFont'#8#8'TabOrder'#2#1#8'OnChange'#7#13'USB' +'PortChange'#0#0#6'TLabel'#6'Label1'#21'AnchorSideTop.Control'#7#15'USBSeria' +'lNumber'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7 +#15'USBSerialNumber'#4'Left'#2#19#6'Height'#2#19#3'Top'#2#8#5'Width'#2'2'#7 +'Anchors'#11#5'akTop'#7'akRight'#0#19'BorderSpacing.Right'#2#6#7'Caption'#6#9 +'Serial #:'#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label2'#21'An' +'chorSideTop.Control'#7#7'USBPort'#18'AnchorSideTop.Side'#7#9'asrCenter'#23 +'AnchorSideRight.Control'#7#7'USBPort'#4'Left'#2''''#6'Height'#2#19#3'Top'#2 +'*'#5'Width'#2#31#7'Anchors'#11#5'akTop'#7'akRight'#0#19'BorderSpacing.Right' +#2#6#7'Caption'#6#5'Port:'#11'ParentColor'#8#10'ParentFont'#8#0#0#12'TLabele' +'dEdit'#12'LabeledEdit1'#22'AnchorSideLeft.Control'#7#7'USBPort'#21'AnchorSi' +'deTop.Control'#7#7'USBPort'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2 +'L'#6'Height'#2#26#3'Top'#2'D'#5'Width'#2'P'#8'AutoSize'#8#16'EditLabel.Heig' +'ht'#2#19#15'EditLabel.Width'#2'$'#17'EditLabel.Caption'#6#5'Baud:'#21'EditL' +'abel.ParentColor'#8#7'Enabled'#8#13'LabelPosition'#7#6'lpLeft'#8'TabOrder'#2 +#2#4'Text'#6#6'115200'#0#0#0#9'TTabSheet'#11'TabEthernet'#7'Caption'#6#8'Eth' +'ernet'#12'ClientHeight'#2'|'#11'ClientWidth'#3'n'#1#10'ParentFont'#8#0#6'TL' +'abel'#6'Label4'#21'AnchorSideTop.Control'#7#11'EthernetMAC'#18'AnchorSideTo' +'p.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#11'EthernetMAC'#4'Left' +#2#5#6'Height'#2#19#3'Top'#2#8#5'Width'#2' '#7'Anchors'#11#5'akTop'#7'akRigh' +'t'#0#19'BorderSpacing.Right'#2#6#7'Caption'#6#4'MAC:'#11'ParentColor'#8#10 +'ParentFont'#8#0#0#6'TLabel'#6'Label5'#21'AnchorSideTop.Control'#7#10'Ethern' +'etIP'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#10 +'EthernetIP'#4'Left'#3#174#0#6'Height'#2#19#3'Top'#2#8#5'Width'#2#17#7'Ancho' +'rs'#11#5'akTop'#7'akRight'#0#19'BorderSpacing.Right'#2#6#7'Caption'#6#3'IP:' +#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label6'#21'AnchorSideTop' +'.Control'#7#12'EthernetPort'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'Ancho' +'rSideRight.Control'#7#12'EthernetPort'#4'Left'#3#160#0#6'Height'#2#19#3'Top' +#2'*'#5'Width'#2#31#7'Anchors'#11#5'akTop'#7'akRight'#0#19'BorderSpacing.Rig' +'ht'#2#6#7'Caption'#6#5'Port:'#11'ParentColor'#8#10'ParentFont'#8#0#0#5'TEdi' +'t'#11'EthernetMAC'#21'AnchorSideTop.Control'#7#11'TabEthernet'#4'Left'#2'+' +#6'Height'#2'"'#3'Top'#2#0#5'Width'#2'm'#7'Anchors'#11#5'akTop'#0#11'Font.He' +'ight'#2#244#9'Font.Name'#6#16'Courier 10 Pitch'#10'Font.Pitch'#7#7'fpFixed' +#10'ParentFont'#8#8'ReadOnly'#9#8'TabOrder'#2#0#0#0#5'TEdit'#10'EthernetIP' +#21'AnchorSideTop.Control'#7#11'EthernetMAC'#4'Left'#3#197#0#6'Height'#2'"'#3 +'Top'#2#0#5'Width'#3#160#0#7'Anchors'#11#5'akTop'#0#11'Font.Height'#2#244#9 ,'Font.Name'#6#16'Courier 10 Pitch'#10'Font.Pitch'#7#7'fpFixed'#10'ParentFont' +#8#8'TabOrder'#2#1#8'OnChange'#7#16'EthernetIPChange'#0#0#5'TEdit'#12'Ethern' +'etPort'#22'AnchorSideLeft.Control'#7#10'EthernetIP'#21'AnchorSideTop.Contro' +'l'#7#10'EthernetIP'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#197#0#6 +'Height'#2'"'#3'Top'#2'"'#5'Width'#2'J'#11'Font.Height'#2#244#9'Font.Name'#6 +#16'Courier 10 Pitch'#10'Font.Pitch'#7#7'fpFixed'#10'ParentFont'#8#8'TabOrde' +'r'#2#2#8'OnChange'#7#18'EthernetPortChange'#0#0#0#9'TTabSheet'#8'TabRS232'#7 +'Caption'#6#5'RS232'#12'ClientHeight'#2'|'#11'ClientWidth'#3'n'#1#10'ParentF' +'ont'#8#0#6'TLabel'#6'Label7'#21'AnchorSideTop.Control'#7#9'RS232Port'#18'An' +'chorSideTop.Side'#7#9'asrCenter'#4'Left'#2#23#6'Height'#2#19#3'Top'#2#8#5'W' +'idth'#2#31#7'Caption'#6#5'Port:'#11'ParentColor'#8#10'ParentFont'#8#0#0#6'T' +'Label'#6'Label8'#21'AnchorSideTop.Control'#7#9'RS232Baud'#18'AnchorSideTop.' +'Side'#7#9'asrCenter'#4'Left'#2#15#6'Height'#2#19#3'Top'#2'*'#5'Width'#2'$'#7 +'Caption'#6#5'Baud:'#11'ParentColor'#8#10'ParentFont'#8#0#0#9'TComboBox'#9'R' +'S232Baud'#21'AnchorSideTop.Control'#7#9'RS232Port'#18'AnchorSideTop.Side'#7 +#9'asrBottom'#4'Left'#2'7'#6'Height'#2'"'#3'Top'#2'"'#5'Width'#3#26#1#7'Anch' +'ors'#11#5'akTop'#0#11'Font.Height'#2#244#9'Font.Name'#6#16'Courier 10 Pitch' +#10'Font.Pitch'#7#7'fpFixed'#10'ItemHeight'#2#0#9'ItemIndex'#2#10#13'Items.S' +'trings'#1#6#3'300'#6#3'600'#6#4'1200'#6#4'1800'#6#4'2400'#6#4'4800'#6#4'960' +'0'#6#5'19200'#6#5'38400'#6#5'57600'#6#6'115200'#0#10'ParentFont'#8#8'TabOrd' +'er'#2#0#4'Text'#6#6'115200'#8'OnChange'#7#15'RS232BaudChange'#0#0#9'TComboB' +'ox'#9'RS232Port'#21'AnchorSideTop.Control'#7#8'TabRS232'#4'Left'#2'7'#6'Hei' +'ght'#2'"'#3'Top'#2#0#5'Width'#3#26#1#7'Anchors'#11#5'akTop'#0#11'Font.Heigh' +'t'#2#244#9'Font.Name'#6#16'Courier 10 Pitch'#10'Font.Pitch'#7#7'fpFixed'#10 +'ItemHeight'#2#0#9'ItemIndex'#2#0#13'Items.Strings'#1#6#0#0#10'ParentFont'#8 +#6'Sorted'#9#8'TabOrder'#2#1#8'OnChange'#7#15'RS232PortChange'#10'OnDropDown' +#7#17'RS232PortDropDown'#13'OnEditingDone'#7#20'RS232PortEditingDone'#0#0#0#0 +#10'TStatusBar'#10'StatusBar1'#24'AnchorSideBottom.Control'#7#5'Owner'#4'Lef' +'t'#2#0#6'Height'#2#21#3'Top'#3#8#2#5'Width'#3'o'#3#7'Anchors'#11#0#6'Panels' +#14#1#5'Width'#2'2'#0#0#10'ParentFont'#8#11'SimplePanel'#8#0#0#7'TBitBtn'#13 +'FindBluetooth'#4'Left'#2#8#6'Height'#2#30#4'Hint'#6#22'Find Bluetooth devic' +'es'#3'Top'#2' '#5'Width'#2' '#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0 +#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0 +#0'd'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#135'K'#30#17#135'K'#30#17#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#134'J"L'#137'K!'#201#135'K'#31 +#252#135'J '#255#135'J '#255#135'K'#31#252#137'K!'#201#134'J"L'#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#136'K"'#129#139'O%'#248#169'uN' +#255#183#136'd'#255#186#139'h'#255#186#139'g'#255#182#134'a'#255#167'sK'#255 +#139'N$'#248#136'K"'#129#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#134'I'#30';' +#139'P$'#245#183#136'd'#255#179'~U'#255#166'i:'#255#255#255#255#255#186#139 +'f'#255#166'i9'#255#178'}S'#255#182#133'`'#255#138'N$'#245#134'I'#30';'#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#139'L"'#197#174'|U'#255#181#129'W'#255#164'e4'#255 +#164'e4'#255#255#255#255#255#255#255#255#255#186#139'f'#255#164'e4'#255#177 +'{Q'#255#169'uM'#255#137'L '#197#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#1#136'J ' +#252#195#154'y'#255#172'rB'#255#168'j9'#255#165'f5'#255#255#255#255#255#186 +#139'f'#255#255#255#255#255#186#139'f'#255#166'i:'#255#186#140'i'#255#136'J ' +#252#255#0#0#1#0#0#0#0#0#0#0#0#136'D"'#15#135'J '#255#203#165#135#255#174'sC' +#255#255#255#255#255#198#158#127#255#255#255#255#255#164'e4'#255#218#192#172 +#255#255#255#255#255#164'e4'#255#192#149't'#255#135'J '#255#136'D"'#15#0#0#0 +#0#0#0#0#0#136'D"'#15#135'J '#255#206#170#141#255#178'xH'#255#190#142'f'#255 +#255#255#255#255#255#255#255#255#215#187#166#255#255#255#255#255#181#129'Y' +#255#164'e4'#255#193#152'x'#255#135'J '#255#136'D"'#15#0#0#0#0#0#0#0#0#136'D' +'"'#15#135'J '#255#210#175#147#255#181'}M'#255#178'yI'#255#187#138'a'#255#255 +#255#255#255#255#255#255#255#180#127'V'#255#164'e4'#255#164'e4'#255#195#155 +'|'#255#135'J '#255#136'D"'#15#0#0#0#0#0#0#0#0#136'D"'#15#135'J '#255#214#181 +#154#255#185#129'R'#255#195#149'o'#255#255#255#255#255#255#255#255#255#218 +#192#171#255#255#255#255#255#184#133']'#255#165'f5'#255#197#158#128#255#135 +'J '#255#136'D"'#15#0#0#0#0#0#0#0#0#136'D"'#15#135'J '#255#217#186#161#255 +#189#134'X'#255#255#255#255#255#208#171#140#255#255#255#255#255#177'wG'#255 +#222#198#178#255#255#255#255#255#168'k;'#255#200#162#133#255#135'J '#255#136 +'D"'#15#0#0#0#0#0#0#0#0#0#0#0#0#135'K!'#251#215#184#157#255#194#144'c'#255 +#189#135'Y'#255#186#131'T'#255#255#255#255#255#199#156'x'#255#255#255#255#255 +#195#150'r'#255#175'uG'#255#199#161#132#255#135'J!'#251#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#139'O%'#193#195#154'y'#254#210#170#134#255#193#140'^'#255#190#136 +'Z'#255#255#255#255#255#255#255#255#255#199#157'y'#255#178'yI'#255#193#147'n' +#255#183#137'f'#254#137'M"'#193#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#137'L!6'#141 +'S)'#247#216#184#157#255#211#173#139#255#197#146'f'#255#255#255#255#255#205 +#163#128#255#188#134'Y'#255#201#159'|'#255#205#170#141#255#138'Q&'#247#137'L' +'!6'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#137'M$w'#142'T+'#248#195#156'{' +#254#216#185#159#255#220#192#167#255#218#190#165#255#212#180#153#255#190#148 +'r'#254#141'S)'#248#135'M"w'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#137'J!E'#139'N%'#193#136'K!'#247#135'J '#255#135'J '#255#136'K!'#247 +#137'N$'#193#137'J!E'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#7'OnClick'#7#18'FindBl' +'uetoothClick'#10'ParentFont'#8#8'TabOrder'#2#5#7'Visible'#8#0#0#6'TShape'#8 +'CommOpen'#22'AnchorSideLeft.Control'#7#10'FindButton'#19'AnchorSideLeft.Sid' +'e'#7#9'asrCenter'#4'Left'#2#23#6'Height'#2#20#4'Hint'#6#17'Connection statu' +'s'#3'Top'#2'N'#5'Width'#2#20#7'Anchors'#11#6'akLeft'#0#11'Brush.Color'#7#6 +'clGray'#5'Shape'#7#8'stCircle'#0#0#11'TOpenDialog'#20'SelectFirmwareDialog' +#6'Filter'#6#9'hex|*.hex'#4'Left'#3' '#1#3'Top'#2#8#0#0#9'TMainMenu'#9'MainM' +'enu1'#4'Left'#3#177#0#3'Top'#2#8#0#9'TMenuItem'#12'FileMenuItem'#7'Caption' +#6#5'&File'#0#9'TMenuItem'#12'OpenMenuItem'#7'Caption'#6#4'Open'#7'OnClick'#7 +#17'OpenMenuItemClick'#0#0#9'TMenuItem'#15'FindUSBMenuItem'#7'Caption'#6#8'F' +'ind USB'#4'Hint'#6#16'Find USB devices'#8'ShortCut'#3'U@'#7'OnClick'#7#20'F' +'indUSBMenuItemClick'#0#0#9'TMenuItem'#15'FindEthMenuItem'#7'Caption'#6#13'F' +'ind Ethernet'#4'Hint'#6#21'Find Ethernet devices'#8'ShortCut'#3'E@'#7'OnCli' +'ck'#7#20'FindEthMenuItemClick'#0#0#9'TMenuItem'#15'StartUpMenuItem'#7'Capti' +'on'#6#15'StartUp options'#7'OnClick'#7#20'StartUpMenuItemClick'#0#0#9'TMenu' +'Item'#8'QuitItem'#7'Caption'#6#4'Quit'#7'OnClick'#7#13'QuitItemClick'#0#0#0 +#9'TMenuItem'#12'ViewMenuItem'#7'Caption'#6#5'&View'#0#9'TMenuItem'#15'ViewS' +'imMenuItem'#9'AutoCheck'#9#7'Caption'#6#10'Simulation'#7'OnClick'#7#20'View' +'SimMenuItemClick'#0#0#9'TMenuItem'#18'ViewConfigMenuItem'#9'AutoCheck'#9#7 +'Caption'#6#13'Configuration'#7'Checked'#9#7'OnClick'#7#23'ViewConfigMenuIte' +'mClick'#0#0#9'TMenuItem'#15'ViewLogMenuItem'#7'Caption'#6#3'Log'#8'ShortCut' +#3'L@'#7'OnClick'#7#20'ViewLogMenuItemClick'#0#0#9'TMenuItem'#19'Directories' +'MenuItem'#7'Caption'#6#11'Directories'#7'OnClick'#7#24'DirectoriesMenuItemC' +'lick'#0#0#9'TMenuItem'#16'DLHeaderMenuItem'#7'Caption'#6#9'DL Header'#4'Hin' +'t'#6#18'Show the DL header'#7'OnClick'#7#21'DLHeaderMenuItemClick'#0#0#9'TM' +'enuItem'#21'ConfigBrowserMenuItem'#7'Caption'#6#14'Config Browser'#7'OnClic' +'k'#7#26'ConfigBrowserMenuItemClick'#0#0#9'TMenuItem'#15'PlotterMenuItem'#7 +'Caption'#6#7'Plotter'#7'OnClick'#7#20'PlotterMenuItemClick'#0#0#0#9'TMenuIt' +'em'#13'ToolsMenuItem'#7'Caption'#6#6'&Tools'#0#9'TMenuItem'#9'MenuItem1'#7 +'Caption'#6#15'old log to .dat'#7'OnClick'#7#14'MenuItem1Click'#0#0#9'TMenuI' +'tem'#18'ConvertLogFileItem'#7'Caption'#6#21'.dat to Moon Sun .csv'#7'OnClic' +'k'#7#23'ConvertLogFileItemClick'#0#0#9'TMenuItem'#16'CommTermMenuItem'#7'Ca' +'ption'#6#13'Comm Terminal'#7'OnClick'#7#21'CommTermMenuItemClick'#0#0#9'TMe' +'nuItem'#15'OpenDLRMenuItem'#7'Caption'#6#11'DL retrieve'#4'Hint'#6#23'Open ' +'DL Retrieve window'#7'OnClick'#7#20'OpenDLRMenuItemClick'#0#0#9'TMenuItem' +#10'mnDATtoKML'#7'Caption'#6#12'.dat to .kml'#7'OnClick'#7#15'mnDATtoKMLClic' +'k'#0#0#9'TMenuItem'#17'DatTimeCorrection'#7'Caption'#6#20'.dat time correct' +'ion'#7'OnClick'#7#22'DatTimeCorrectionClick'#0#0#9'TMenuItem'#23'DatReconst' +'ructLocalTime'#7'Caption'#6#27'.dat reconstruct local time'#7'OnClick'#7#28 +'DatReconstructLocalTimeClick'#0#0#9'TMenuItem'#24'Correction49to56MenuItem' +#7'Caption'#6#28'Firmware 49-56 DL Correction'#7'OnClick'#7#29'Correction49t' +'o56MenuItemClick'#0#0#9'TMenuItem'#11'AverageTool'#7'Caption'#6#12'Average ' +'tool'#7'OnClick'#7#24'AverageToolMenuItemClick'#0#0#9'TMenuItem'#16'datToDe' +'cimalDate'#7'Caption'#6#20'.dat to decimal date'#7'OnClick'#7#21'datToDecim' +'alDateClick'#0#0#9'TMenuItem'#15'ConcatenateMenu'#7'Caption'#6#11'Concatena' +'te'#4'Hint'#6'%Concatenate many .dat files into one.'#7'OnClick'#7#20'Conca' +'tenateMenuClick'#0#0#9'TMenuItem'#20'CloudRemovalMilkyWay'#7'Caption'#6#31 +'.dat to Sun-Moon-MW-Clouds .csv'#7'OnClick'#7#25'CloudRemovalMilkyWayClick' +#0#0#9'TMenuItem'#13'FilterSunMoon'#7'Caption'#6#29'Filter Sun-Moon-MW-Cloud' +'s.csv'#7'OnClick'#7#18'FilterSunMoonClick'#0#0#9'TMenuItem'#17'ARPMethodMen' +'uItem'#7'Caption'#6#17'ARPMethodMenuItem'#7'Visible'#8#7'OnClick'#7#22'ARPM' +'ethodMenuItemClick'#0#0#0#9'TMenuItem'#12'HelpMenuItem'#7'Caption'#6#5'&Hel' +'p'#0#9'TMenuItem'#13'OnlineManuals'#7'Caption'#6#14'Online manuals'#0#9'TMe' +'nuItem'#14'OnlineLUmanual'#7'Caption'#6#13'SQM-LU manual'#7'OnClick'#7#19'O' +'nlineLUmanualClick'#0#0#9'TMenuItem'#14'OnlineLEmanual'#7'Caption'#6#13'SQM' ,'-LE manual'#7'OnClick'#7#19'OnlineLEmanualClick'#0#0#9'TMenuItem'#14'Online' +'DLmanual'#7'Caption'#6#16'SQM-LU-DL manual'#7'OnClick'#7#19'OnlineDLmanualC' +'lick'#0#0#9'TMenuItem'#13'OnlineVmanual'#7'Caption'#6#15'SQM-DL-V manual'#7 +'OnClick'#7#18'OnlineVmanualClick'#0#0#9'TMenuItem'#14'OnlineLRmanual'#7'Cap' +'tion'#6#13'SQM-LR manual'#7'OnClick'#7#19'OnlineLRmanualClick'#0#0#0#9'TMen' +'uItem'#15'OnlineResources'#7'Caption'#6#15'Online resource'#7'OnClick'#7#20 +'OnlineResourcesClick'#0#0#9'TMenuItem'#11'CmdLineItem'#7'Caption'#6#24'Comm' +'and line information'#7'OnClick'#7#16'CmdLineItemClick'#0#0#9'TMenuItem'#11 +'VersionItem'#7'Caption'#6#19'Version information'#7'OnClick'#7#16'VersionIt' +'emClick'#0#0#9'TMenuItem'#9'AboutItem'#7'Caption'#6#5'About'#7'OnClick'#7#14 +'AboutItemClick'#0#0#0#0#11'TSaveDialog'#12'DLSaveDialog'#4'Left'#2'`'#3'Top' +#2#8#0#0#11'TOpenDialog'#13'OpenLogDialog'#6'Filter'#6'iAll files|*.*|Comma ' +'Separated Variables|*.csv|Calibration logs|*.cal|UDM usage log|*.log|Text f' +'iles|*.txt'#4'Left'#3#152#1#3'Top'#2#8#0#0#12'TPrintDialog'#12'PrintDialog1' +#8'FromPage'#2#1#6'ToPage'#2#1#4'Left'#3#177#0#3'Top'#2'@'#0#0#8'TProcess'#8 +'Process1'#6'Active'#8#7'Options'#11#0#8'Priority'#7#8'ppNormal'#14'StartupO' +'ptions'#11#0#10'ShowWindow'#7#7'swoNone'#13'WindowColumns'#2#0#12'WindowHei' +'ght'#2#0#10'WindowLeft'#2#0#10'WindowRows'#2#0#9'WindowTop'#2#0#11'WindowWi' +'dth'#2#0#13'FillAttribute'#2#0#4'Left'#3#8#1#3'Top'#2'@'#0#0#6'TTimer'#8'Co' +'mmBusy'#7'Enabled'#8#8'Interval'#2'd'#7'OnTimer'#7#13'CommBusyTimer'#4'Left' +#3'X'#1#3'Top'#2'@'#0#0#6'TTimer'#13'FirmwareTimer'#7'Enabled'#8#8'Interval' +#2'd'#7'OnTimer'#7#18'FirmwareTimerTimer'#4'Left'#3#168#1#3'Top'#2'@'#0#0#0 ]); �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./alarmsound.wav������������������������������������������������������������������������������������0000644�0001750�0001750�00000233100�14576573022�014033� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������RIFF86�WAVEfmt �����D��X���data6���j %m%+F16#<5AFJNRpVY\4_ea1cde3fhf/fedcRa_\Y>VRNHJE@;D60*$& AEg͊<(\ܳɫ9=ϟÝ .ӝW2f! ȩvz٣X` M {&~,Y27`=BfGK@P*TWZ]D`Rbc.e�f[fUfedca_/]4ZV4S)OJFA;W60*$=M j'*ܧ֡<Һ{J>a/<Ś7_ p!dȻλBVx3 r#)/5C;@EJN"SVJZC]_bceeYfVfedca_\YRV}RINID?5:{4.\(".k�C߱zv̮$O qm*. =:ۢeB~>ŏ˗CT1� \!`(.4|:@DE5JN SV]Zh] `7bc9e fcfCfedca^[XTPCLtGMB<71*z$'L` ln{ y�Mݶ%ŭΩ7W>DTӜӞA(w8ZŸVnϿA t!(v.4:>@EJJOSwWZ]`bYde4ffffOedHb`]]0ZVR9NqILD>93,2& yU6$&K ӹ̬hC{`ʛٙ♨훴~ǮԱڀsN o|c!"(.4;@@FVK P^TAX[^8aAcdeRfXfedIc>a^[CX]TPKK*F@:4i.'  jokk@[˺NP UC!%?Hȧ%$A'x4 %!(..5Y;<AFKPUX[\R_ac!e faf8fe=d{b*`b]ZPVRlM\HB=60)"F g;&ӗ>>?ZګҧB* e]qͭ 2ɵxsݤfr s *'.4:@FKP5U*Y\_bcVe%fgff:ecaS_G\XT9PFKE+@:3,%z�?)ۇԽ> 5G%vϙǝ@47(Kl˧ҦK|0$+2V9?nEJOTXC\[_acNe#fiff,eca^[#XSBOJD>J81*#& ,cRޘ׌V=;`"աϜ&™z̛,:̦骂 Y(۔1r <| '.5X<BQHMRWZG^aPcde_f8fje d bz_Q\XfTOwJD>J81k*# &3bݯ՜P6IHqڝ囃™8D)BO׸о+Dxlst iA r(/6G=C]INSX[ _acYe/fffed2c`]ZtVQL.G%A:3,d% x39ș]:`V(^Nz#)�U(jc :]jR &-4; BHMRPWU[^acEe)fffed#c`]&ZU6QK*F?K9J2*T#vnG m`�<"sR8b6ϙ=Tκ-ϏPIm\'>/6b=CInOnTX\_bdeZfCfxe�da_[WRMHA);4,$  0`-˰̷ڬ:*ݛpYq֣ѧpT:R҉ڑ+! AI%-4;eBHeNS;X?\_Yb_deXfFfveca^[[0WfR MG@92*# }aߪπȀд==٥ߚޙ A v{æ:H3} 5&.5<CIOT[YG]`cdfhf fdc`N]gYTOIC<5-%@ -{i1:Ѡk£e*�њٙ"kj,jd̤/Q !)* 29@AGVMRW[|_Zbmde`f1f@eca] ZvUHPrJD3=5.%6 Vq=1'9+äٛ];(`3ɾbD (0w8?FLoRuW[m_Ubude`f(f"eSc`i][YT/O'IBk;3+{# | ̀WBzpɚ̙G9k8! T " l)1l9@GM|SsX\9`bdfhfednb_[fWCRrL F?7/@' e3�߀:aӱ09̜ڙ;ۤxW-Hژf#&,]4#<nC&JEPUuZu^adeWf:f<ekc`N]YTeNHA91@) ~F7,׸λ(2Ʊ¢Aęh~ġॶMo> Z7 '08K@`GMSX ]`^cBe6fZfecia ^YTKOHAZ:M2) `XuHc# ࡊe͙ٚȜ=겒й$Bj$-%6>sE7LORWC\ `be!fcfedaI^ZU\OHA :1%) 7 0fp˻)/T{J'Fk\lŮlփIf"+l4<2D4KzQW[_bdf_feda!^YTN%H@8}0'W 8]ڡ }5YƙԚ֜ßLҭ"f  +!q*D3;rCJQV[_bd!f^fecIa];YSMF^?87.h%*:87S?CμĽrЯǠB򙝙Eꛅܫ�}uѩ:/A :l)k2�;BIJPV[_bd0fUfec`]nXRLjE=.5@,"&& ܜӥ:eJb/f(m�ƶLy9y7s� g(1\:BIPV[_be7fSf]elco`|\WQ6KC;3)? G r2]ʾ#?'a֙gQ@魄 t0Y&'09A|IYPjV[_b!e<fMfBe6c`[VPJjB :+1'J S֯í6�#Wl|18!TqKV%.$8@HOU-[_be<fJf@e!c_[yVRPKIzA8/%&pY O0ʱXɥ?Dߙר굹?h;U T",5>FKNT[Z^mbd+fRfceGc`[VSP2I?A8C/f%)@YsQMhӜҙ% _pI[lS (2;\DLRX]a]decfec`\WWQIA?9/%x1Gwi,nPaeNJNK&'{71=E#-v7t@H PvV[@`sce^ff|da]XRKC=;1'VyU=O~ܾN쨓Q9N"؛͞ޢW<q 0o'<1:CKRX]adfXfhe9c_M[UNHG>{5+!5 }VzLa㟓y3Ľƙ<(2g<9E/M.T(Z^beIf1fd7ba^[Y;SLC:>1&[΢ĭlM[ƙR4z{/(l2#<E0MATQZ%_b3eWffda]XRJ;B8.c$N T8(HҩDG@:}qG9hU$/9BbKR*YO^Fbd=f:fd+b1^XRKB89/\$$  g%Yƨ/ўJć:lr *4b>]GbO\V#\`cecfePc_ZTM<E;12'DdsHhbV_fۻO{n {!6,6@eIIQX]ad.fCfd+b^XQ-J\A7-!Ma F7Uxd嫔Ҝ&&EQAwe!B+5?HQW]ad1f>fda] X(Q$I @6K+ rẕK󰷩Л�ʚ_hǦyVM7P2_&1N<EZNU[`de_fKeb^YYRJA7,!F }Tq€򙭙롌vֿ կ,@)5U?HPW]bdKfffd.a\mVO~F<S2'FH5ݥʼгk@K{Ҡ6HK4cR;){4>sHPW]*beQf f3d`[UN6EM;0$F Q2ڪ JɞٙAQ]‚*K 3$/:DMU[`CdfKfda`]ZWOLG=2('Wrú˱£㞓ٙÙPv0b׹Ά� E&K20=GOWWj]adRffd}`\[TLC-9-!QiW\sJQLS*k/tTײ G$?0n;ENsV\adEff:d`[TLvC8-\!Q0_ԄU.ܟ Ǣ ðعXh 3<)5?IgRYJ_XceefLeb^WcPjGH= 2%G kR˳œSu9h/vPv)5@JRY_ce\fe bQ]VOEN;/m#m LuȓݳyE֙љR/;Ӣ`w#/;FdOMW]QbCe_fe.c^XjQlH>2c&^ 80Q3c7v7_cqB\! $c1=GPtX^cedfLeVb]$WOE:/M"=cFހћ4^r|̸s48I 0-E9EDNRV]ae`fe-c^XPqG<03$myXSLi!Ĉm�"/;pF�PXf^beaf0eb ]8VMC8U,#eD#aȥЙ*!˗ _t+08CM&V]b9ecfeb ^uW,OZE%:- {L]jkޛۙۙܛ؟fu}v>o-%!l.:�FO X^!ce\fdsa\TKbA5( fPԨ] ϲ!ȜC �*V7CZMV]>bVejfYeFb$]#V\MBG7e*T 5ȁ/yԚm9%2JJ,9DElOW^2ceQfd`3[SJ.?2%fAu°Û˙F#sxļt @U(5AiLU\bUegfHe b\ZU,LhA45' �!Ėl#љA>չuc )97JCMV]be[fd`[:SIB>1#PS/;3̺@)Ú{\lˇ@R#1>ISi[Aad_fetb1]ULA+5' }֞oݢI<ؒU$2>LJT[a$egfUea`\TK?2$6s+uٗ³Tآf44jDoЯ޺) *$8wD5O$X_cffc _AXXOD<8* eˤȞuE0t (6ACGNxW^~cf+fc<_[XZO~D7,*V m2Δ׵۫֞L ѽ;,:F{QZ`dZfe[b\TKU?2#OzGUEqٛř@ҩx"̅ (6CNX'_c/fe:c^VLkAB4%unQ4�ǙEiK +*Z8 E.P6Y `ldXfeob\TJ{>0"S!h뚖暿m8*}"i1?K<U0]beAfdZ_/XNHC6'Iỉ63Z«1uЩߦ� /=JpT\vbeJf9d_TXNBC53'i r"vʺU<iq]&ł Y$3;A1MW^c/febE])UJf>R0!�g'ϳGݪՙP}0?Y8oܡZ#'.~<;ISr\ibeFfd_WMA3$|K=]ƣR֠dUiJ̙ K.<aI-T\be7fc^VLM@,2"3?8ϗpC䜏Ԫ<´Ѕ0MX#\3jAMWO_8dTfea[R;G9* JȄ㮌ƞš`ZB\gڂ .=nJ5U];cfeb]TI<- 6dT>5 :ڢil/D>*KU!^c3fejb-\6SGW:#+i ֯wQM™0ũzu@{9%b5COY`ecfd_NXNA3"A�~hѾ.1h8p]p 1?LSWA_Vd\fLe*aZGPD5%Sci ]:!1@fMW_dcfe`YN#By3$#w5{ⰯH䚚Xz9$'57EQM[ be4f{c]TfI;+ HąCvÙX�®b~q!2.A.NXa`defdp_JW]L>/ mOƔ[ .ĭe 1A*NXz`ebf]d_VK=8. e&ԽĬJ2/u%Q6$EQ~[Jbefbw\RF8'bޚD!ժը) 9/I?LW `dffld_VK= -z'!%A樄[Tsը-ҶD* f-}=KVi_dffd_WK=-% +ҳ.&Ʃu 0@MX`AeWfc]ToH9(0+h9/⭺9۴�e&j &k%+G16%<4AFJNRoVY\5_fa/cde6fff1fed cPa_\Y?VRNHJE@;E60*$# =Bf͎8+[ܳȫ89ӟ /ӝZ0g"ȥx{٠Wb N y&,X27`=BgGK@P+TWZ]F`Rbc3ee_fRfedca_)]8ZV4S*OJFA;[60*$=O l-,ܥ֢<ӺyGAf48Ś5b nfȼμFZu5  o#)/5B;@EJOSVFZG]_ bcee\fTfedca_\YUV{RINID?3:|4.^("0j�E߯{v̭%P oj&1=8ܢdB~>Ő˕>V/� [!d(.4z:@EE5JNSV\Zi] `6bc8efafDfedca^[XTPDLsGNB<7 1*z$%M` kpzNܶ&ĭЩ5U@GP֜ҞA(w8[ĸYlϾE s!(v.4:9@EJLOSwWZ]`bZde5feffQedHb `Z]3ZVR8NoIOD>93,2& yV5$'I ӹ̮lA{aǛәᙦ񛱝ݥ ǯ԰ځrN qye!"(.4;@?FWK P\TCX[^7a@cdeWfUfedFcAa^[CX\T PGK.F@:4k.'  kqgm@ZͺONĤZ?##BFʧ&&?(v3 #! (./5Y;9AFKPUX[\Q_ac#e fcf8f}eBdvb.`_]ZQVRqMVHB=60)"G e:�+ӒB<@Y۫ҧ@- g^s˭ �3ɵwtݤir t ''.4:@FKP3U*Y\_bcWe%ffff8ecaS_H\XT8PGKE.@:3,&x�A,ۆԾ> 6G#rΙ˝;:6(Jm˨ҦL}0$+2V9?mEJOTX>\`_acNe"fiff*eca^[ XS?OJD>I81*#! +fPޖ׏W=<`$ҡ͜'ƙvЛ07Φ誂 X'ە0q <| '.5[<BPHMR�WZC^ aMcdeaf7fje d bz_P\XcTOsJD>O81o*# "8^ݳ՘N7LLq۝囂ę7B,CLܸ˾.Isort iB t(/6E=CXINSX[ _acZe0fcfed3c`]ZsVQL,G(A:3,_% }/;Ș]8bU*ZMx$ަ+W&kf <ZnO&-4; BHMRQWT[^acFe)fdfed'c`]$ZU2QK'F?O9E2*R#uqC fiӻ?tR4e4Й>RϺ*ϒOGp]'>/6a=CImOpTX\_bdeZfCfxeda_[WRMHA); 4,% 0b 1˱ͷܬ7-ڛtUtӣӧpX>N҆ړ," =K%-4;aBHcNS9X@\_Ybade[fCfyeca^^[.WhRM#G@92*# }dߪρȀд<>إޚ♘<$󦊫uxé7F-u!  2&.5<CIOTZYH]`cd fff fdc`O]eYTOIC<5-%? /yh19ѣg§a(՚֙"in)ie̡+O"!)* 29@CGUMRW[_Tbqde`f2f?eca]Z{UBPxJD4=5.&5 Wp?-#8*Ťڛ[:¡,]4ɽbC (0z8?FLrRsW[l_Ubudecf%f%ePc`i]ZYT*O*IBm;3+{# }̀W@|nƚЙI>g<! U # l)1i9@GMySvX\<`bdfefedqb_[fWARuLF?7/E' d4~=^ ұ18̜ܙ?ޤtŮW,Hڔf#&,\4$<nC&JEPUwZs^adeXf;f9enc`Q]YTcNHA91<) }F6)׽ε/,ɱBəl|ȡۥLs?�S. '08E@dGMSX!]`ac?e:fUfecla ^YTJOHA\:K2) _VuIa#! 㡈gΙٚȜ=첐и ?g$-%6>sE9LMRWB\ `bd#fafedaH^ZUZOHA:1') 8 1gp˻(1V{J&Ih^oūmքI`"+m4<3D1KQ W[_bdfafeda#^YTN*H@8x0'W 7]ڠ |7UǙԚ֜ßNЭ!i 3!j*J3;sCJQV[_bd fafecEa]9YSMFa?87.j%)=59R>FθȽnӯƠB񙟙D뛂ݫ}pѯ40A 8h)p2:BHJPV[_bd0fVfec`]sXRLgE=/5=,"#( ܟӢ<eGZ/h)iöNx:z6t� i(1^:BIPV[_be6fRf_ekcm`\WQ2KC;3)? H p2 \ʾ#?&hޙdT>ꭂ t6Q-'09AwI^PfV[_b e=fKfEe2c`[VPJjB:-1'M R ֭í4%Vi{45UqKW%.&8@HOU.[_be9fMf?e!c_[{VQPKI{A8/$&qYQ4ͱV̥<?䙤ب>l?V W",5>FKNTYZ^nbd+fSf`eKc`[VYP.IAA8@/j%'=YrPM©eМיapE^pR (2;]DLRX]acdedfec`\XW QI�B;9/%|2E{b5娡kR`gKLLM$%{70>D #-z7n@HPzV[?`tce]f f|da]XRKC<;1'[zU<P{پLT7Nۛ˞ߢW@n 2l'>1:CKRX]adfYfie6c_J[UNGG>y5+!7 ~UzM�bw3ƽƚ@(2h<9E.M0T&Z^beEf6fd;b^^]Y:S LC:?1&YΤīkOYƙ|N7y~1(j2%<E/MCTNZ)_b9eRffda]{XRJ<B8.c$L N3&IϩFGA9z?8kW$/9B]KR#YU^Bbd<f;fd.b.^XRKB:9/]$# d"\Ǩ/ўFć8pp*4a>\GeOXV'\`ceifeSc_ZTM:E;12'G`x GhbV`ߛcHŃf {!6,6@hIFQX]ad*fEfd+b ^XQ3JWA7-!Ma G5V{f㫖Ӝ*!DOByb>+5?H QW]ad5f;fda] X(Q$I@6L+ p}̮N𰻩Λ�Śeb˦xUO5R0`�&1N<EYNU[`�deYfNeb^XYRJA7,{!? yUjy򞵛𚶝졊zܿ ի.@)5T?HPW]bdJffhd,a\nVOF<P2'JL1ݨͼγl>HzҠ4GL3cU6)4>vHP�X])beQf f4d`[UN5EM;0$D R2ڪ J˞ܙCO]…,I .$/:DMU[`@dfKfda_][WOLG=2,'Vvͱģ➓ڙ™Px-dֹ΂� J&N2.=GOXWi]adPffd`Z[TLC/9-!Td\XnHSGS-i0tVװ C$B0m;ENqV\adBff7d`[TLtC8-a!P/`ԄT.ܟ Ǣ ǰӹUk6@)5?IfRYH_Xce_fRe}b ^W`PnGC=2%H jT˲Ut;e2tQr#)5!@ JRY_ceWfebQ]V OEK;/l#p MuȒ޳yGؙϙS.<ӟ]u#/;FhOKW]RbAebfe/c^XmQjH>2`&a :1Q1 a;Ùr0abr@[ $g1=GPtX^ceefKeWb]%WOE:/M">bGћú0\py͸s47J .-F9FDNTV]ae`fe-c^XPnG<0=$pxWVQǝićm"/;oF�PXg^bedf,e b]<VMC8P,'bE"[ͥΙ}+$˛^u+38CM&V]b8edfeb ^vW,OYE&:- w K_hhޟڙٟۙۛfwzz9s.%!k.:FOX^#ce[fdsa\TKcA5( iOԦ"aߝ ̲%ȟA �*S7CYMV]=bXehf[eDb%]#V]MBI7d*W 4ȃ/v~њk9%2HH,9JEgOW^5ceSfd`4[S!J+?2%fAvµݟś˙H$swĻv >W(5AiLU\bUeefMeb\TU1LdA85'  Ěn"Й<7ҹte� ):7ICMV]beWfd`[<SI>>1#SR.<3̺>%ƚx[j˃BN#1>ISl[?ad_fevb.]ULA)5'  ~՞qܢK6؋Z$2>NJT[a(edfUeaY\T K?2$2o0pٛijRܢ{l62m~Fmб޷. *)8sD8O#X_cf fc _?X\ODB8* eΤĞrH2v (6ACINuW^xc f'fc?_WX^O{D�8+*W o/Γ׵۫؞M!ѽ9,:FQZ`d]fe[b\T KS?2#RyFUGnܛ™AЩ{%̄ |(6CNX'_c.fe:c^VLeAH4%ynO3�§�ǙB񩳳nR +*Z8 E-P9Y`odVfeob\TJ>0"P$iÞ蚙m4.z"m1?K:U1]beBfd\_.XNLC6'G仅:0Yī1zУ߫� /=JrT\zbePf3d_PXN@C5/'ovyͺW<ms]$Ņ\$3=A0MW^c1febD]*UJf>S0!�c+ϴH۪љS{3<\4rܡY$$.<7ISq\gbeEfd_WMA3$vQ<]ǣSՠeTiK̘ N.<`I/T\be:fc^VLE@52"9<7ϙmF圍ת}=µЄ0MX#[3kAMWN_:dRfea[R<G9* F"ȁ䮌ƞša]>`dڂ .=lJ6U]=cfeb]TI<- 5aR@5 <ڥil/B>-KU#^c6feob)\7SGU:%+h ֩ tSߝQ2©r@|;%g5COY`egfd_IXNA2"A�fӾ-2g6r] p 1?LQWC_VdZfOe&aZDPD5%V`k \8!1@iMW_dffe` YN'Bw3$#}.́ݰH᚟\v6#'77EQK[ be0fc]TfI;+ LăErǙU]t!2.A/NXd`dhfds_GWaL>/ rHƗ\.íb  1A)NXx`e^fad_VK=0. g%ԻĮ�H53q%R6$EQ~[Jbefby\RF8']ޟ@ Ѫէ) 9/J?LW `ddfpd_VK= -y$!&>ꨁ]Stը-ҵF( c-=~KVi_djfd_WK={-! .׳{2#ǩu! 0@MX`BeUfc]TtH9)1,j:-୼9۴�e&j $l%+C16"<6A FJNRrVY\4_fa/cde4fgf0fed!cMa_\Y=VRNGJE@;C60*$+ BBd͏9)_ֳA Bʟȝ.ӝX0hȪwy٣W_ O w&,T27\=BbGK;P0TWZ]G`Qbc/ee]fSfedca_*]8ZV6S(OJFA;Y60*$>O j&&ܤ֢<պxI>e543b o!dȹοIZy0  m#)/5B;@EJOSVEZG]_ bcee_fQfedca_\YSV|RINID?5:y4.Z("0i�D߯|t̯%O uq)1 >8ݢdC}=Ŏ˗BV.� [!_(.4|:@CE6JN SV]Zg] `5bc9e fbfEfedca^[XTPCLsGNB<71*y$#N` loz {S߶#ǭͩ7S;ER՜ўD${4^޳ƸWm@ r!(u.4:?@EJIOSyWZ]`bWde2fiffQe dEb `W]5ZVR8NpIMD>93,4& zU5%'H̦eEy]~˛ԙޙ뛶ु ǰԴ}vO o|b!$(.�5 ;@BFSKP[TCX[^6aBcdeVfUfedFcAa^[BX_TPMK(F@:4i.'  imlkAY̺OOWA##@Hɧ$">'x6  ! (.,5^;5AFKPUX\\S_acef`f:f}e@dyb+`a]ZOVRjM]HB=60)"G i9*ӒC:?Yܫѧ@, h^qʭ%8ɱytݣgr q +'.4:@FKP3U,Y\_ bcRe)fcff7ecaQ_J\XT;PDKE/@:3,�&{�D-ۆԿ< 6H#sʙɝ>77'KjˠҮO|0$+2V9?lEJOTXE\Z_acOe#fhff*eca^[#XSAOJD>D81*#' *dQޕ׏U?;b(ϡ͜&|̛33Ц檄 X'ە/r :| '.5\<BTHMRVZA^aHcdedf4fned bx_S\XgTOwJD>L81k*# !9[ ݶ՗O6LKnޝ⛅™5B*DKܸ̾.Gvmru gD s(/6E=CYINSX[_acYe0fcfed6c`^ZxVQL*G)A:3,d% v66ț\8bS-ZKy$(�V'je� ;]iU&-4;BHMRRWT[^acEe+fbfed%c`]'ZU3QK*F?O9G2*S#uqC fhӼAzM8a7ϙ?T˺/ϐOIo['@/~6c=CIkOrTX\_bde]fBfweda_[WRMHA*;4,�%  /^3˵Ϸܬ8+ܛpWuңԧoV:TҌڎ*" <L%-4;`BH`NS6XB\_XbadeYfFfweca^][/WiRM&G@92+# |_߮σѴ;?ץٚ䙙=$󦉫stí4G3} 8&.5<CIOT]YD]`cdfef fdc`O]eYTOIC<5-%> /zk,@ќl¥`*њؙ lk+if̤+N$!+* 29@@GVMRW[_Vbpde^f3f?eca]Z{UCPwJD8=5.%6 Ut:.#8*Ťۛ[9)`2ɼ^A (0}8?FLpRvW[q_Rbvde`f)f!eTc`k]ZYT.O(IBl;3+z# �~Y>~mǚ͙F9j:$W   n)1m9@GM{StX\9`bdfdfedrb_[iW?RwLF?7/>' k.~<`Ա09˜ؙ:ޤuĮW.Gڕi#%,^4"<oC%JGPUvZt^adeYf8f=ejc`N]YTeN HA91>) |F;(׼η,0Ʊâ@ƙh|ǡݥNt>�P+ '08G@cGMSX ]`ac=e=fSfecla ^YTHOHA^:J2) _VuHb;% 塆fϙؚȜ;첑м#?e$-"6>tE5LRRWF\`bd&f_fe daN^ZU[OHA :1 ) 9 1gp˺*.QF%LealůhֈGb"+o4<4D1K}QW[_bdfafeda"^YTN$H@8}0'X 7^ڠ 6VǙԚ֜ŸKҭf 0!n*G3;vCJQV[_bd!f^fecIa]<YSMFb?77.h%);87Q9JεʽnүǠA󙜙Eꛅ۫渀rѭ7-B 9h)o2:BLJPV[_b�e-fXfec`]nXRLhE=05<,"#' ܜӥ:eI_0f(kʶI{8z8s� j(1[:BIPV[_be6fTf\emcn`}\WQ3KC;3)A G p2 \˾"@'cؙ~iQ?譅 x1Y%'0~9AwI^PfV[_be?fIfGe0c`[VPJlB:/1'O U ֩ç;ħܢ"Vn{ 17 TsOR%/!8@HOU+[_be;fJfBec_[|VPPKI|A8/$&qW"O4αUͥ:=噤ܨ>j<U X",5>FMNTYZ^jbd%fYf\eLc`[VTP1I?A8@/k%%B\qSJhԜԙ!_oH[qO (2;ZDLRX]aadehfec`\WWQIA?9/%x1ڿHxe2樣hT_ kGPHP#%x;,C?$#-w7p@HP{V[@`tce_ff}da]XRKC<;1'WwY9Q}ܾO먔P:M!ڛʞ[@n 2m'>1:CKRX]adf]fee8c_J[UNGG>{5+!4 }Wx�I_柑z/ƙ>(2f<<E+M3T$Z^beFf4fd7bc^YY<S LC:<1&~X΢įlPVÙÙ Q5{2 (m2!<E*MHTJZ+_b8eRf fda]|XRJ<B8.`$O R5'K̩GE?;}tF;jV$/9BaKR'YR^Ebd?f8fd.b,^XRKB?9/_$"  i %ZȨ,ԞI~ċ7ml*4^>_GbO[V$\`cegfeQc_ZTM?E;10'EdrGgcV_eGńf y!3,6@gIHQX]ad.fEfd/b ^XQ0JZA7-!Ka H4Xxe䫕Ҝ)#EOCwc $A+5?H QW]ad5f9fda]X/QI@6L+ r{̭N򰷩Лɚbc̦uXN6T,f&1S<E_NU[`de^fKeb^]YRJA7,!F {Vo|󞴛򚵝졋wٿ ժ+@) 5Q?HPW]bdHffdd/a\nVOF<Q2'EG6ݣɼѳk@JzԠ3JI3dS9){4>pHPW])beOf f3d`[UN3EQ;}0$C T0ڬ Jʞٙ™@Q]†*M 1$/:DMU[`AdfNfda\]]WONG=2''SwĿα£垐ڙęNy-cԹΊ� G&K21=GOUWk]adSffd~`Z[TLC)9-!TfYZpEOKS0e5n Uױ F$?0m;ENpV\adAff7d`[TL{C8-a!P1]ԁT2֟Ƣ İֹTm:A)5?IgRYG_ZcebfPe~b ^WbPkGG= 2%G hV˱Uq ;e3rNt")5 @JRY_ceYfe bM]V OEL;/i#t MuȔڳ}I̙ۙS.9Ӡ`v#/;FgOLW]Ub>eefe4c^XkQiH>2b&` ;/S1 `<ęr2barC]! $e1=GPtX^cebfMeWb](WOE:�/P"<dCބїź1]r|̸s59H 1-C9IDNVV�]ae_fe,c^XPsG<05$nwZROȝg!ćn�"/;sFOXh^beaf0eb ]9VMC8P,(aH&\̥ϙ*$˝!\p+.8CM&V]b;eafeb ^uW.OWE':- u#RXniݟۙٙݛٟix|v>o/$!k.:EO X^"ceZfdqa\TKhA5( lNԧ"a в ȚE�*R7 CWMV]<bZeff]eAb(]"V\M�CD7h*V2Ȅ.xԚo5&5DF,9HEiOW^6ceUfd`1[S!J*?2%eDx´ݟś̙J%sxĻu =Y(5AeLU\bXecfNeb\WU-LiA55' Ěm%יD<Թvc )<7GCMV]beWfd`[<SI@>1#NU-<1̼C*šw]h˃>S#1}>ISj[Aadafeub0]ULA(5' |֞sF:ؑV$2>JJT[a%ehfQea]\TK?2$3o0oٝȳOܢ~g33kEnЯ޼' *!8zD4O#X_cffc_EXVOD<8* gѤžtG/q (6=CKNtW^|cf*fc=_ZX\O|D8)*X m1Δ׵۫מNѾ:,:FzQZ`dXfeZb\T KR?2#QzKOMiߛ@Щ{�$̆ (6CNX'_c0fe<c ^VLkAA4%qjQ5§ǙHꩺhO +*Y8"E+P9Y `odUfelb\TJ}>0"T iĞ暚嚾o7*}"k1?K9U4]be>fd\_*XNDC6'F⻊45^«2{Т߬� /=JqT\vbeKf7d_TXNCC51'mu!uʺXAlu[&Ń[$3<A2MW^c3febD])UJe>T0�!�g(ϱIܪԙSz4:^3sܠY%'.<8ISm\kbeGfd_WMA3$~J=]ǣR٠bUjJ̙ P.<aI-T\be7fc^VLG@12"5>7ϘlG眊٪|=·Ѐ4JZ#Y3lAMWN_9dRfea[R8G9* NȇஎŞÚc`;caڀ .=mJ8U]@cfeb]TI<- 7cQ?6=ڢeo/A>.KU"^c2fekb+\7SGW:#+g ֪ sUݝR4ĩ}rCy:%d5COY`effd_IXNA3"?�{l̾4ܧ5d7sZm 1?LUW?_XdZfNe(aZEPD5%Tcjà]=!1@gMW_dgf�e` YN*Br3)#v4}߰F嚙Xz:%'67EQK[ be4f{c]TgI;+ NĂEsřX�^r!2.A.NXa`dffdq_IW_L>/ qKƑW0ĭe 1A&NXx`eaf^d_VK=4. g'ĨI1,s%W6EQ|[Jbefbx\RF8'_ޙGӪզ* 8/H?LW `dcfnd_VK= -w"(=騃ZPu֨+ҵH% c-~=KVl_dffd_WK=-$ +ӳ-& |" 0@MX`GePfc]TlH9(/+j;,ޭ9۶�a&�i &k%+F16!<8A FJNRsVY\7_aa4cde5fef1fed cOa_\Y=VRNHJE@;E60*$~, EDe͍;'_׳ë> >ϟĝ-ԝY1f" Ȥ|v٥Y` K |&~,X27`=BeGK=P/TWZ]D`Rbc-efZfUfedca_(];ZV8S(OJFA;V60*$9J m)'ܢ֥?ֺyDDe0:6el!cȸξDUy1  o#)/5E;@EJOSVFZE]_bceeZfVfedca_\YQV~RGNID?6:x4.Y("1i��B߱yy̪(O ql%4 @9ޢh@~�>Ŏ˗@V/� Z!`(.4}:@GE3JNSVZZl]`;bc<e fafEfedca^[XTPDLtGLB<71*y$&Kb kn| |R޶%ƭ˩;Y>EQ֜ўB(w8Y¸WoϽB x! (u.4:?@EJMOSzWZ]`bXde5fdffNe dFb `Y]4ZVR6NrILD>93,1& vY2&&JӾ̨eDz[}ʛљߙ𛱝~DZԱڂpP pyf! (.4;@AFUKPZTDX[^7a@cdeWfUfedFc@a^[EX\TPJK+F@:4g.'  cseq<^ȺOPX@)>Hʧ$%B)v5 %!(./5Z;:AFKPUX[\S_ac!e fcf8f~e@dwb.`^]ZMVRmMYHB=60)"F h7+ӓ@=?Z٫ԧ?.g[påέ} �3ɵwuݣhu u ('.4:@FKP5U*Y\_bcVe&feff7ecaT_G\XT7PHKE0@:3,&x�>)ۆԿ< 3I$wЙǝ@4;$Go˦ҩN|1$+2R9?jEJOTXG\X_acMe%ffff'eca^[!XSAOJD>G81*#& )gNޖ׎U?<a(ϡ͜&řwΛ.8ͦ骁V�'ە0p >} '.5]<BSHMRVZ>^aDcdedf5fmed bw_S\XgTOwJD>I81k*# ;Z ݶ՘S2IIlߛ9C+>RոѾ+Hrpqu gD s(/6G=CYINS�X[_acXe0fdfed7c`�^ZuVQL,G'A:3,a% t84Ȝ[9`R,]Mx"+\"li 8_gW&-4;BHMRQWT[^acBe-fafed'c`]%ZU4QK(F?J9J2*Q#xmG hgӼ=!uN:a6љ=SϺ*ϒOGpY'@/~6b=CIoOnTX\_bde_f=f~eca_[WRMHA';!4,�%  ._0˱˷۬7-ڛsUrԣԧlT;Rҋڏ," BH%-4;cBHdNS;X?\_[b\deVfGfweca^^[/WgR M"G@92*# }b߭σ~δ?;ڥޚ>$򦊫syæ:F.z  5&.5<CIOT\YD]`cdfef fdc`R]aYTOIC<5-%@ /yg29ѣg§`(Ԛ֙"jl)gg̤*O$!,* 29@AGWMRW[_Vbpdeaf0fBeca] ZwUGPrJD0=5.�&5 Xn@.#6,Ť֛^:¡*`1ɹ^B (0v8?FLrRrW[l_Vbrdeaf&f$eRc`j]ZYT.O'IBm;3+z# ��}|[<jɚ͙H:i: Q ! l)1k9@GMzSvX\=`bdfffedqb_[gW@RvLF ?7/@' g1<^ر-9̜ٙ?ݤuĮW*Jڕc#$,^4#<mC'JEPUrZx^adeYf7f@ehc`O]YTfN H A91:) zI6(׽ε/,ʱ BšÙi}šߥMq@P. '08I@aGMSX ]`cc;e>fRfecla ^YTKOHAZ:M2) bZwGbͿ%塆b̙ښȜ<벑�ѷ >e$-%6>tE8LNRWF\`bd%f_fedaJ^ZUXOHA:1$) 8 3ho˻*.S~G'Fi_lůkփMa"+l4<3D2K|QW[_bd f`feda$^YTN(H@8{0'U :]ڠ 5UʙϚܜHխ!˿b"� /!n*H3;rCJQV[_bdfcfecDa]9YSMF_?97.i%,8;4UABμŽpүŠ>I盆ޫwѧ:2? 9f)r2:BGJPV[_b�e-fWfec`]sXRLdE=-5@,""+ܞӢ=dI^.i%nƶLy9y2z� m(1^:~BIPV[_be8fOfcegcr`|\WQ1KC;3)= I p1"Y˾#=+񤱠`ۙeT=歆 x7R,'09A|IYPkV[_beAfFfIe0c`[VP JlB:-1'L R ֬ê7#Wp53RpJY%.&8@HOU,[_be:fJfBec_[yVRPJI|A8/&nW#N3̱Yǥ??噤ب@g:T Y",5>FLNT\Z^qbd+fSfaeHc`[VRP3I>A8@/i%'>YsSJ©dΜՙ"_pH[rN "(2;[DLRX]a^deafec`\UW#QIB;9/%w0ڿIvh/訡kQb gMIPH*,~70>C!#-x7o@HPzV[>`vce_ff{da]XRKC@;1'XvZ7Tۀ޾OU6O ۛɞ\?o 3l'=1:CKRX]adfWfhe8c_L[UNJG>}5+!5 |YuGc៕wݧ6ŽƗ:(2h<8E0M/T&Z^beHf0fd5bb^]Y7SLC:@1&]ΠĮkOZ ˙|J:y/(i2$<E*MITJZ*_b7eSffda]{XRJ;B8.d$L S6&GԩEF?:uE;jX$/9B_KR%YS^DbdAf5fd)b1^XRKB89/]$#  j "[Ĩ3͞ÛDĆ9nm*4a>ZGgOVV)\`ceefePc_ZTM7E�<13'DerGi`X_ޛbEŅf |!8,6@gIGQX]ad1f?fd(b^XQ+J_A7-!O` F7Tzf⫗Ԝ)$GLCxc"C+5?IQW]ad6f9fda]X+Q!I@6J+ vw̯M󰵩՛Țae˦uYK9R/b&1R<E_NU[` de_fKeb^XYRJA7,!F |Tiv񙯙򚵝xؿ լ-=)5U?HPW]bdLffhd,a\nVOF<T2' JK3ݧμ̳l<ExӠ4JK7fU7)}4>qHPW]&beOf f5d`[UN9EJ;0$A S2ڨ K͞ڙ™?S[ ƒ '~O 6$/:DMU[`CdfKfda]]]WOMG=2&'Py̱ã㞓ؙęOx.cֹ·� E&H24=GOVWk]adRffd|`][TLC.9-!SfZYoGRIU,i0rTױ I$=0n;ENvV\adFff:d`[TLyC8-^!R/^ԁT0ٟǢ ŰֹWh7A)5?IiRYI_XcebfNeb^W_PnGD=2%E! lS˴񠿜Us ;d4rOt!)5 @ JRY_ce_febK]V OEL;/k#q Lvȓڳ~Kڙ͙U,9ӝ[ r#/;FfOMW]Tb@ecfe1c^XjQlH>2c&] 70Q3 a9u2^dr>U& $e1=GPuX^be_fMeXb])WOE:/N">aCރїź1^py͸t26J /-E9FDNSV]aeafe,c^XPmG<07$�nyWTMÝg#ćn"/;qFOXe^bebf/eb ];VMC8S,'`I%_˥Ι~+ ˗^r+08CM$V]b:ecfeb ^uW.OVE):- yK_hg¥ܟܙיߛ؟j|yx<p0"!m.:FOX^"ce\fdua \TKbA5( iSԢ%`Ͳ"ȚF�*Q7 CWMV]:b[eff\eDb$]#V]MBH7e*W/ȇ+{Κm3)2GI,9HEiOW^3ceQfd`2[SJ.?2%b@s²›͙H"uvļu AT(5AiLU\bWedfLeb\UU1LcA;5' !ěm#ә@<Թud� )<7GCMV]be]fd�a[=SI@>1#RR.<1̽C'Ś{`g˄=T#1|>ISl[@ad_fetb1]ULA,5'  ~՞sޢI7؍Z$2>JJT[a&eefTeaZ\T K?2$2r+vٕT٢i99fElд޵- *$8wD6O#X_cffc_AX[ODA8* c ʤȞtF2u (6BCHNuW^|cf,fc<_\XYOD7,*V l2Ε׵ګ՞K ѽ5,:FzQZ`dZfe[b\T KS?2#MIRImܛ"Cϩz#̅ (6CNX)_c2fe;c^VLjAB4%snV6§ǙF멺hP .*X8!E,P:Y`sdQfejb\TJz>0"S"hĞ暙暾j;)|"m1 ?K9U2]beBfd\_,XNDC6'F㻇90Zū0xЦߨ� /= JnT\wbeJf:d_VXNCC51'nwy˺W?jt['ł X$3?A.MW^c1febH]%UJ`>Y0 �j%ϰK٪әR{2=[5rܠZ#&.<8ISr\fbeCfd _WMA3$wL>]ƣQ٠`XfN̖ M.<_I.T\be5fc^VLL@/2"7<9ϘnF㜏ժ<µЄ0NW#Z3lAMWL_<dQfea[R9G9* JȄ㮋Ǟšd�`=_eڂ .=kJ9U]=cfeb]TI<- 2]R@3 @ڨhm/B>-KU"^c2fejb+\9SGZ:!+h ֯yQP1é}s@|<%e5COY`ecfd_MXNA3"=�~gҾ.3f5s[n 1?LRWB_Vd[fMe)aZFPD5%NfjŠ�Z8!1@fMW_d_fe` YN'Bv3&#v5|ᰰG䚛X|;&'37EQM[ be7fxc]TiI;+ Ić GrƙW]s!2/A,NX_`ebfdm_LW_L>/ oKƘ] .ƭg 1A(NXz`ebf]d_VK=7. c*ĨG~:4q%S6"EQ{[Nbefbx\RF8'`ޝA"Ӫը) :/I?LW `defld_VK= -z) (<ꨃ[Ss֨,ҹB+ e-~=KVi_ddfd_WK=-& +س|0&ũw  0@MX`BeVfc]TvH9)-)f5+୻8۷�c&n )i%+F16"<7A FJNRpVY\7_ca1cde6fdf1fed#cMa_\YCVRNFJE@;B60*$* CDh͌:)]ڳȫ89ҟ!*؝\/f!ȫu{٢Xa N x&,T27_=BfGK?P+TWZ]D`Rbc1ee`fPfedca_)]:ZV8S&OJFA;X60*$;J m'%ܡ֥<ԺwH?c/<Ś9do!eȺοHWx2 r#)/5D;@EJOSVFZE]_bcee`fPfedca_\YUVzRJNID?2:|4.[("0i�@߳xx̬%Qsl&2 <8ݢfA}Aő˕AU.� Y!a(.4~:@HE2JNSV\Zi] `8bc<e fdfCfedca^[XTPDLtGLB<71*w$"P^ mm} wQ޶#ȭ̩8U<GQ֜ўB'x7\߳ŸYmϿ@ z! (x.4:B@EJJOSyWZ]`bZde3fhffRedFb `X]3ZVR:NoIND>93,4&| uY2)!N ӻ̫iA|`ʛ֙㙧򟲢ޥ ǰԲtM qze! (.4 ;@=FVKP[TBX[^:a?cdeUfWfedEcAa^[DX\TPIK+F@:4g.' � iojk@[˺NPXB %@Iǧ!#>)u2 $!(.-5[;9AFKPUX]\P_ac$e fdf6fe=d{b)`c]ZQVRnMYHB=60)"F f9�*Ӕ??BW۫ӧA+ ibv̭ �3ɵvxݞcs t ''.4:@FKP5U*Y\_bcWe#fjff<ecaQ_J\XT6PIKE0@:3,&w�<'ۉԼ? 5F&vʙ̝;94)LkˣҫO~.!$+2R9?iEJOTXA\]_acLe%ffff)eca^[!XSAOJD>F81*#$ )fOޖ׍U=5g�(ѡ͜({̛-:ʦ몁 Y�(ە/q =~ '.5^<BTHMRVZ>^aHcdecf4fned bx_R\XfTOyJD>I81k*# %5_ݲ՛U0GJnߝᛅ™9B-?QָҾ)Htnst hB t(/6C=CWINSX[ _acZe.fefed4c`�^ZtVQL1G$A:3,`% x47Ț]<]R+[My#&V&kg 8_hU &-4; BHMRRWS[^acBe+fefed c`])ZU7QK+F?N9H2*R#vpC fgӽ=!tQ7c4ΙA ZԺ(ϑNJm]'@/6b=CIjOtTX\_bdeYfEfueda_[WRMHA,;4,% .^.˳ѷ ߬5.֛wSvУ֧mU:Sҋڎ*! @I%-4;`BHbNS;X=\_WbadeZfCfzeca^^[/WgR M!G@92*# y\߭φxʴA;٥ܚᙛ>$򦊫uyè7 C0|  5&.5<CIOT\YE]`cdfjffdc`N]eYTOIC<5-%? ,}k.=ўm¢d(Ԛؙ%go(fh̦,T!)* 29@@GWMRW[{_Zbnde^f3f>eca]Z|UAPyJD6=5.�&8 VoC0):*Ƥ֛^9¡-]5ɼ\I (0y8?FLoRvW[o_Sbvdecf&f$eQc`g]^YT0O'IBl;3+}# �� z"̂UC{nǚϙH:i; T # p)1m9@GM{SuX\:`bdfdfedqb_[dWDRqL F?7/@' k-~;aֱ/8{Ϝڙ;�oɮY,Iژc#$,^4#<nC&JFPUvZu^ade]f4fAehc`O]YTaNHA91>) ~D6+׼ζ-.ȱBšÙg|ơޥLpBR. '08F@dGMSX]`ac=e<fTfecja^YTEOHA_:J2) d\xGb;$! 框gҙԚ͜?鲔и @f$-6>qE8LPRWG\`bd#fafedaJ^ZU\OHA :1") 8 0ds˾'/R~G%Gk[eŵd֋Ia"+q4<6D.KQ W[_bd"f]feda!^YTN)H@8}0'X :Zڞ 6UǙԚ֜G׭$g 1!m*I3;uCJQV[_bdf`fecHa]<YSMF`?77.g%*;78Q@BμĽrЯȠ@G雄ݫ丄xѨ8.C 6e)r2:BEJPV[_be+fYfec`]pXRLfE=05<,"$& ܚӧ7jCY0g'lɶKy9y6u� i(1]:BIPV[_be:fOf`ejcp`|\WQ6KC;3)@ G o3_˾!A'󤱠_֙iQ>孉v5U('09AxI]PgV[_be@fIfEe4c`[VP JlB:/1'M U֯ì7ޢ#Wix 72UpKX%.%8@HOU/[_be8fNf=e%c_[yVPPNIxA8/!&pY!O2˱Xʥ=@♧רBf<T W",5>FLNT[Z^nbd)fTf`eIc`[VUP0IAA8C/f%+?[pNNgԜә"bsC`jW (2;]DLRX]abdegfec`\XWQIA?9/%w2Fxh.ꨞlRb gNHQH)){80>D#-x7q@H PwV[;`xceaff|da]XRKC<;1'\}T<RۀܾN먔Q8O!ۛȞY?n 2m':1:CKRX]adf^fde9c_J[UNJG>~5+!/ Uy�L]矏|1Ɩ;(2i<7E0M/T&Z^beLf-fd4be^WY?SLC:?1&}WΣĭkPXƙzL9y2(k2$<E/MCTMZ+_b8eTffda]}XRJ>B8.]$R S6)LЩHC?9uD6hX$/9B^KR$YT^Cbd>f9fd,b.^XRKB:9/[$$  i "_Ϩ(՞Fć8no*4`>\GfOVV)\`cecfeNc_ZTM?E;14'GcrFhbV`ߛ󜰠d޻Jłf y!5,6@gIFQ X]ad0fAfd+b^XQ/JZA7-!N` G6Uyd櫒М'%GMFue B+5?HQW]ad2f=fda] X)Q$I @6F+tx̱J՛ȚafɦwXK8R0`&1Q<E\NU[`de^fKeb^\YRJA7,!G |Tmz홯񡇧yؿ խ.<)5U?HPW]bdHffgd,a\lVO~F<S2' JL1ݨ̼γm<EzԠ3LF/bT7)~4>tHPW])beQf f4d`[UN7EL;0$C R2ڪG©˞ڙ?Sa€+L 5$/:DMU[`AdfLfdac]VWOIG=2)'Twľϱģ➓ٙÙPw.e۹΃� E&I21=GOXWi]adRffd~`[[TLC09-!PjU`tHPIW)j2qVײ B$B0m;ENrV\adCff7d`[TLvC8-`!P1^Ԅ޽Y 6՟Ƣ ŰֹYf 6A)5?IgRYH_ZcedfLeb^W`PnGC=2%G lR˴ƜM|=c5pOu )5@JRY_ceYfe bN]VOEQ;/p#n Mtȓ޳xGڙ͙P1<Ӟ\ r#/;FiOJW]Rb@edfe4c^XlQhH>2c&_ :3N6 a:Ùq0^enE] $d1=GPvX^cegfIeZb])WOE:/M"?`Bނћ4`szθq6:J 1-B9IDNTV]ae`fe+c^XPkG<09$kyXSMĝi Ĉn"/;nFPXg^beaf2eb ]8VMC8Q,(`H![ͥ˙~+$˚^r+38CM%V]b9ecfeb^wW+OZE&:- v"M]jjޛܙٙܛڟhx|v=p0"!m.:FOX^$ce^fdua \TKdA5( kOԦ!^ ϲ țE�*T7CVM!V]>bYeef_eAb']!V^MBH7e*V2Ȅ-zњo6'2IG,9JEhOW^2ceQfd`5[S"J*?2%dAu³ܟǛșF$tvĸx >Y(5AfLU\bVeefLeb\TU1LdA75' #ęk&ԙ>9ҹrf ):7ICMV]be[fda[@SIA>1#RR091̻@(Ě|^jˇ�?P#1>ISo[<ad^fetb1]ULA,5'  ~מpޢI:ؑX$2>KJT[a$ehfPeaY\T K?2$3r.qٚóSڢh68fBoв޵/ *"8yD4O$X_cffc_?X]ODD8* ~gͤƞ{?0s (6@CHNwW^{cf(fc<_ZX[O~D7,*W h6ΘԵܫ՞K!ѻ!8,:F~QZ`dZfe]b\T KS?2#L~LNMjޛ!Bϩ{#̆ ~(6CNX'_c/fe:c^VLiAC4%tlP3ǙF쩸kQ +*Z8!E+P:Y`rdRfejb\TJ}>0"R"iŞ嚛n4.x"l1?K:U2]beCfd]_-XNJC6'H㻇80]ī1xЦߨ� /=JrT\xbeLf7d_TXNEC53'k u wɺT>mxV+ŀ\$3=A/MW^c2febE]&UJb>V0 �h'ϳGݪԙR{1?Y7qܠ["'.<;ISq\ibeGfd_WMA3${L<]ǣRՠeSkJ̘ O.<^I0T\be8fc^VLI@12"7;:ϙoF朌ت|=·Ѐ4KX#Z3kAMWR_5dWfea[R:G9* LȆᮍǞ_]?^gچ .=qJ4U]=cfeb]TI<- 9e�PA2<ڤgn/D>*KU!^c4femb)\9SGY:"+e ֨ tTޝR4é~qCx8%f5COY`eefd_NXNA2"B�}iо/1h5tZr 1?LRWB_Vd[fMe)aZGPD5%QffĨ�Z9!1@eMW_ddfe` YN(Bv3%#}-̂ްJV}<"'87EQM[be2f}c]TfI;+ LĂErșR ]q!20A,NX``dgfdq_KW[L?/ qLƐX /ía  1A(NXw`e_f_d_VK=7. e'ԾīK5/q%V6!EQ|[Lbefbt\RF8'_ޜB!Ӫէ) :/M?LW`dcfod_VK= -z+$$?ꨁ\Stը,ҷD* e-~=KVh_defd_WK={-& (ճ~/% éy#� 0@MX`DeUfc]TpH9(0+i:,୻6۸�^&�g &k%+D16!<7A FJNRjVY\5_fa/cde4fgf/fed!cOa_\YAVRNIJE@;F60*$) CGg͍:)\۳ƫ< >Οĝ +՝W2f Ȩwy٢T] J |&,W27_=BeGK<P.TWZ]D`Rbc0ee^fQfedca_)]9ZV8S&OJFA;[60*$?N k()ܦ֢<ӺyI?b/:Ś4` j!fȹνDWw3  p#)/5@;@EJN!SVHZE]_ bceeZfVfedca_\YXVxRKNID?4:z4.Y(".l�D߭~s̯%M pj"6 >�;ڢdC}�?ő˔?V0� [!`(.4:@IE3JN SV_Zg] `8bc<e fbfFfedca^[XTPFLpGQB<71*z$'Jc jo{wNܶ%ƭͩ8V=FQלϞD'v:X¸[lϿB u!(t.4:@@EJKOSzWZ]`bWde3ffffOedGb `X]7ZVR6NqIND> 9 3,9&{ {T7#'I Ӽ̩gC{cěә♦𛳝ߥ ǯԱځrK q{c!#(.4;@AFTKP\TAX[^;a>cdeVfVfedEcBa^[DX^TPJK+F@:4j.'  fsdq=\ʺOQ WA##BEͧ'%D&y3 ! (..5[;9AFKPUX\\P_ac&efgf3fe=dyb-`^]ZMVRkM\HB=60)"D c;)Ӕ>ADUݫѧB+ h\q˭!�2ɶvuݤiu u ''.4:@FKP8U%Y\_bcVe%fgff8ecaV_F\XT7PHKE-@:3,%} x�@+ۇԾ= 4L rʙ͝<76*KlˤҪN|1$+2S9?jEJOTXC\\_acJe(fcff&eca^["XS>O"JD>D81*#  )fSޙ׌W<8c%ԡϜ'z͛.8ͦ誄\$ۙ+q <{ '.5\<BVHMRVZ?^aFcdeaf8fie db}_N\XcTOtJD>L81m*# !9[ݳ՛Q4JLr۝囁ř 5?.BM۸˾0Fwkur k? p(/6F=CZINSW[_acWe2fbfed6c`]ZuVQL/G%A:3,`% |0:Ș^9aU)]Mz"'T*fg� ;[lR &-4;BHMRTWP[^acCe+fcfed&c`]$ZU4QK'F?G9L2*S#wnD ciӼ>vP7d3͙>Sк(ϓOHn]'@/~6d=CInOnTX\_bde[fCfveda_[WRMHA-;4,$  /^3˵Ϸ۬:(àߛqStӣӧpX>O҈ڑ)" :M%-4;eBHfNS9XA\_Yb_deWfEfzeca^^[1WeR M G@92*# {b߫σҴ;?إޚᙚ>!otì4!C-w  3&.5<CIOTVYL]`cdfff fdc`R]aYTOIC<5-%@ 0yk->џj¥b)ךԙ#im*hf̥/Q !** 29@@GWMRW[_Vbode^f3f?eca] ZxUEPvJD5=5.%9 Ss<1(:*Ťڛ\<á+_3ɺ]G (0u8?FLpRsW[m_Tbudeaf(f!eTc`k]ZYT,O*IBn;3+{# �z!̀WDxsŚϙF;h<! S # m)1m9@GM|StX\>`bdfffedsb_[eWBRuLF ?7/=' h/}<_Ա24zМڙ=ݤuĮX,Iڕd#$,`4 <pC%JGPUxZr^adeZf8f<elc`P]YTdNHA91?) ~F7)׼η,-˱ Ařh~ġߥNr>P- '~08E@eGMSX]`_c?e;fUfecha^YTFOHA\:L2) `YvGbͿ$ᡊhϙؚɜ=л$Bk$-"6>rE9LNRWD\ `bd"fbfedaI^ZUZOHA :1#) 4 2ds˽'1U}H'Ih^gųgևIe"+n4<6D/KQ W[_bdfefeda!^YTN(H@8~0'X 8^ڢz:WǙҚ؜Kҭg 2!k*I3;sCJQV[_bd#f[fecJa]=YSMFb?57.e%)::4WD>οýtͯɠB󙝙E雅ݫ{sѨ= -A :h)q2:BGJPV[_be,fXfec`]pXRLfE=-5>,"#)ܜӥ:fH`,k$mȶLx;x6v� g(1[:BIPV[_be8fPfaehcr`z\WQ5KC;3)< K t."\ʾ#?(dݙdT< ⭋w6R,'09AzI[PiV[_b e=fLfBe5c`[VPJkB :+1'N T ֩é8ߢ#Vk{63 OmJV%�/ 8@HOU*[_be9fLf@e!c_[yVRPJI|A8/"&mV#N4ϱTͥ;>䙦֨鵻<l?W U",5>FKNTWZ^lbd'fVf^eKc`[VTP3I<A8?/i%(>ZqQLeМԙ" _pF^nR (2;]DLRX]a_debfec`\YWQIA<9/%u/Fye2樣gU_ePGRG)*|61>D!#-v7r@H PwV[>`vceaffda]XRKC9;1'ZxV=M|۾NS8MߛǞW;q 5h~';1:CKRX]adfZffe:c_M[UNHG>{5+!6 {WzIa⟔xߧ5ŽƘ>(2e<:E/M/T'Z^beHf2fd8b`^\Y:S LC:?1& ~XΥĩfTUǙ~N6{~/(j2$<E,MGTJZ-_b:eRffda]XRJ<B8.b$N T7'IѩEG@:}wB7hV$/9BaKR(YR^Ebd>f9fd,b.^XRKB<9/_$  h #]Ȩ.ӞHĈ8no*4_>_GaO]V!\`cedfePc_ZTM:E;11'FbvGhcTa e޻Jŀj u!3,6@fIGQX]ad1f@fd)b^XQ3JVA7-!O_ G8Sw`諒М+ BSCuh ?+5?HQW]ad2f>fda]X-Q"I @6F+ tx̮N򰶩ӛ˚]jŦzUO4P0a&1S<E]NU[`deafHeb^YYRJA7,!F |Up€󞵛󚳝zٿ ի-=)5S?HPW]bdJfffd/a~\pV OF<W2'"HI4ݦ̼γl?K~֠2JJ4dS9){4>rHPW]'bePf f6d`[UN3EP;~0$D U.ڮ KȞٙ™@R^ƒ*~O 3$/:DMU[`BdfMfda^]\WONG=2('Uuͱ£䞒ڙ™Qu1`ӹ·� H&M2-=GOWWk]adRffd`Z[TLC)9-!Ya]YtMUGT.e6m Vױ D$@0m;ENsV\adGff8d`[TLvC8-a!Q0^ԂU0ٟ Ƣ ưҹQn7@)5?IfRYG_YcedfMeb^WaPkGH= 2�&E mQ˵œTr<c6nJx)5@ JRY_ceafebJ]V OEN;/l#p Ntȓܳ|KڙΙV*7ӡ_v#/;FjOIW]PbCe`fe/c^XjQkH>2b&` :/S1 b9r/]glF\" $e1�=GPvX^�cecfJeYb]&WOE:/N">aCރљº4\s|˸t49G 3-@9JDNRV]a e^fe*c^XPtG<05$owYUS˝hĊm  "/;oFPXh^bedf,e b]>VMC8S,%cF#^˥Ι+"˜ [q+18CM%V]b7edfeb ^tW.OYE%:- t#N]hfåڟיݙڛڟgxzz9s.%!j.:�FOX^$ce[fdra\TKdA5( hMԩ_ в ȝA �*Y7C[MV]>bXeff^eAb(] V^MBE7i*[62uњl5)/JH,9IEhOW^2cePfd`3[S!J*?2%h@u´ޟÛ͙J%rzľs =X(5AhLU\bSegfJeb\ZU+LhA75' Ĝo!ҙA<ҹtd� )87ICMV]beZfd`[<SI>>1#RS.<3̺A)Úx[kˆ<T#1>ISk[Aadbfexb.]ULA+5'  w՞pߢG7؎U$2>NJT[a)edfTeaZ\T K?2$6t-qٛųSآf56iDoЯ޺* *&8vD6O#X_cffc_AXYOD=8* aˤǞvD/t (6ACHNwW^~cf-fc@_WX^O{D8(*Z l0ΏݵիמQѽ7,:FzQZ`d^fe^b\TKU?2#M~GSIlݛ™Aϩ|%̄ (6CNX&_c.fe:c^VLhAC4%slQ4�əD冀nT )*\8E/P7Y`qdTfemb\TJz>0"P& dŞ暚䚿p9)}"m1?K=U-]beEfd[_.XNGC6'G廆81_ë1yФ߫� /=JnT\sbeIf9d_TXNDC53'k vzͺW?hr]%ł X$3<A/MW^c1febD](UJc>V0 �j%ϳFߪՙRz4;\5qܢX%'.<9ISq\hbeFfd_WMA3$yK@ZɣRڠ`WiJ̙ K.<bI-T\be7fc^VLM@-2"3@6ϖmF㜏Ԫ;¶Ѓ1MW#Y3nAMWM_8dUfea[R<G9* Kȃ㮌ŞĚc^>`c~ .=oJ6U]?cfeb]TI<- 1_V<6>ڣik/C>+KU ^c2felb*\9SGW:"+h ֱxRP/pBz8%e5COY`ebfd_MXNA�3"@�{l;11h8o_o 1?LOWD_Td]fKe+aZHPD5%Pfgè\7!1z@nMW_ddfe` YN*Bs3)#,̃ݰH㚛S<&'27EQO[ be5fzc]TcI;+ Ić HpșU�^p!2-A/NX``�edfdn_LW\L>/ sHƔX/ŭb  1 A&NXw`e_f_d_VK=8. a*ԾĬ�H2/v%O6&EQ~[Jbefbv\RF8'`ޙE!Ԫլ% :/K?LW `defod_VK= -x&!&?訃[Trب)ҹC) a-=}KVh_dgfd_WK=}-# -Գ-' ĩw 0@MX`DeSfc]TnH9(1,h8/䭺:۴�`&�i 'i%+B16 <8A FJNRmVY\8_aa4cde2fhf/fed!cNa_\Y?VRNHJE@;D60*$% @Df͎9*\۳ȫ:=Οŝ,՝Z.i! ȩv{١W_ J ~&|,Z27a=BhGK@P,TWZ]F`Rbc0ee\fTfedca_+]7ZV6S'OJF!A;Z60*$>Q k(&ܤ֤?ԺyJ<_-=Ú2a njθBXw2 r#)/5B;@EJOSVFZF]_bceeYfVfedca_\YPVRGNID?7:z4._("1i�A߳wz̪(Q up(2 :6ޢdD{?Ŏ˘BT2� [!c(.4|:@FE5JN SV_Zg] `6bc;e fefBfedca^[XTPALvGJB<7 1*y$%Ma koy zP߶#ǭ̩9U;FRԜӞB%{5\¸Zk@ x! (y.4:<@EJNOSzWZ]`b]de3fiffTedGb `Z]2ZVR:NpIMD>93,4&~ xV5%%L Ӻ̬iCy_˛ԙᙦ񛰝 DZԳsM qze! (.4;@?FWK PaT;X[^;a>cdeYfRfedJc=a^[DX^TPJK+F@:4l.'�! jokl?\ɺOP VB#"BHȧ"&A&y5 !! (.15W;;AFKPUX_\N_ac&e fdf7fe>d{b*`b]ZQVRnMYHB=60)"G f6 +ӒA>@Zث֧=/ i^uɭ#8ɰ|qݤfp q ('.4:@FKP3U+Y\_bcVe&ffff9ecaQ_J\XT7PGKE.@:3,�&x�?+ۅԿ< 1J!r̙̝::9&Io˧ҨN|1$+2U9?jEJOTXG\X_acLe&fdff'eca^[!XS@O JD>C81*#" .aQޕאX=:a%ӡ͜(|ʛ-8ͦ誃 X*ے3s <| '.5[<BTHMR�WZA^aGcdebf7fje dby_T\XkTOyJD>M81o*#  9^ݳՙP3HKpܝ䛄™9A.<TԸҾ*Ippsq m= o(/6H=CZINSX[_acXe.fffed4c`]ZtVQL)G,A:3,c% }08ȜY7bS,ZM{&ަ*X&jf�4ahT &-4;BHMRWWO[^acHe'fffed%c`])ZU9QK-F?M9I2*S#voE hfӿ@vR5c6ϙ? Vκ,ϏQGpY'D/{6d=CIlOsTX\_bde^f@fxeda_[WRMHA,;4,$  ._1˯ ȷ֬<)ڛsYsѣاjR:SҌڎ*# ?J%-4;gBHcNS8XA\_Yb_deYfDfyeca^^[/WgR M#G@92*# }aߪτ|ϴ<?֥ߚޙ@!w{å;H/x  4&.5<CIOTXYI]`cdfgffdc`O]aYTOIC<5-%A .xd57Ѥg§`(Ԛؙ#jl)jc̢-R!!)*29@BGUMRW[_Ubpde`f2f@eca] ZyUEPtJD4=5.�&7 Uq@.#6-ä؛^<'a2ɸ\E (0u8?FLnRvW[p_Sbudeaf'f$ePc`g]]YT0O&IBl;3+}# !y"XByrŚϙF;h<#W$ l)1k9@GM|StX\<`bdfdfedrb_[gW@RuL F?7/C' e3�}=_Ա08˜י;ܤv®´T+Jڗf##,^4$<lC(JEPUwZs^adeYf8f>ejc`L]YTiN HA91@) D8+׹λ'3űD̙i¡ॶNs=S/ '08K@aGMSX!]`bc>e:fVfecha^YTHOHAZ:M2) cZwGcͽ(䡆fΙٚȜ>겓л>e$-"6>rE:LLRWC\ `bd%f^fedaI^ZUYOHA:1$) : 0hn˻)0U}F)Hi^oūnցLe"+h4</D6KzQW[_bd f]feda!^YTN%H@8~0'Y 5`ڠ 6Vř֚ӜƟMҭ e  .!o*G3;rCJQV[_bd#f[fecJa]:YSMFZ?>7.p%/896TCAλƽqЯɠC񙞙E雅߫鸀vѨ:/@ 9h)q2:BFJPV[_bd.fYfec`]oXRLiE=15;,""*ܙӧ9fI^2c(kƶMx9z3x� k(1^:BIPV[_be9fMfdegcp`~\WQ4KC;3)> I q1!\ɾ#A%cؙhQ>孈 v7R+'09AyI]PfV[_b e>fJfFe0c`[VP JmB:,1'J S֯í7§ޢ�%Tn|45 TrMU%�/!8@HOU/[_be9fLf@e"c_[xVSPKIzA8/$&nS'J.̱V̥:>䙥Ө뵷Ag=V X",5>FJNTXZ^kbd#f[fZeMc`[VSP3I=A8A/h%)�AYuUIeќԙ!\nG]nQ !(2;XDLRX]a`debfec`\[WQIA:9/%z1ڼLsk-騠lPc fMJNK&%x:/>D!#-v7q@HP|V[@`tce^f f|da]XRKC?;1'[{T>N~ྡS訖O:Lۛ˞ޢW@n 2l'<1:CKRX]adf[fge7c_I[UNGG>y5+!3 WvJ�_埑{ 3ýƘ?(2h<:E.M/T'Z^beHf2fd9ba^ZY<S LC:>1&}UΧĨeUT™ęO6{1(l2#<E-METLZ+_b9eRffda]{XRJ?B8.b$L M/#IЩCJB8x@5fW$/9BbKR'YS^Bbd<f:fd+b0^XRKB;9/^$! g #[Ǩ.Ӟ򜡠FĈ7om*4b>[GeOXV(\`ceffePc_ZTM<E;10'DeqJecX]gݻJłe y!5,6@hIFQ X]ad1f?fd&b^XQ,J]A7-!Na F7Tx`꫐М&&DQCve@+5?H QW]ad6f8fda]X*Q#I@6L+ p|̭O𰹩Л�˚^hǦxXL7R0`&1Q<E\NU[`de]fKeb^[YRJA7,!E {Xp󞶛홲𚶝zܿ զ(A)5U?HPW]bdJfffd.a\oVOF<S2'EH4ݦ˼гn>L~Ӡ4HJ2bT8)|4>rHPW]'beMff1d`[UN4EO;~0$I O5ڨ KʞۙCO_‚*K 2$/:DMU[`=dfIfda^][WOKG=2''Rx̱ãផ֙ǙMw0aӹΉ� E&L2.=GOWWi]adRff d`X[TLC,9-!TeZZoCMLS*l.tUײ E$B0j;ENtV\adCff5d`[TLvC8-`!S,cԆ޽X5՟ĢðعXi:@)5?IjRYL_Uce`fPeb^W_PnGE= 2&B$ lS˳ĜQt<c6nIz)5@JRY_ce[fe bM]V OEK;/k#p NtȒ߳wFؙΙU->ӡau#/;FgOMW]Tb@ebfe0c^XjQkH>2d&] 7/S0 d8™r2[ikG]! $e1=GPtX^cecfLeVb]%WOE:/L"?_Aރњº3]s|̸t37J /-E9FDNQV]a e`fe/c^XPrG<05$nv\POʝd$ĉl�"/;tFO Xd^bebf0eb];VMC8S,%bH%\Υә*&˝!\s+28CM'V]b7eefeb ^rW2OSE+:- v#QYmkݟڙڙܛڟizyz:r1!!o.:FOX^#ce[fdqa\TKeA5( jOԥ$d~ в ȚF�*V7C[MV!]:bZeff]eBb']"V[MCE7f*T2ȃ0u}Қn8$5GF,9JEfOW^7ceSfd`4[S!J*?2%fAt³ߟÛΙJ%ryļu <Y(5AiLU\bTegfJeb\YU-LgA85'  Ėk#ϙ?8йsc )87KCMV]be[fd`I?>1#QQ283̹A,v^hˆ<R#1>ISk[Aadcfeyb+]ULA)5'  מrݢJ9ؐW$2>IJ T[a#eifPeaY\T K?2$5r.pٜdzPۢg44k~Hjе޴. *"8wD7O!X_cffc_@X[ODA8* eΤĞwD2v (6?CJNuW^xc f&fc>_WX_O{D�8**Z j2Γ׵۫؞M!Ѽ5,:FzQZ`dXfe\b\TKU?2#LIOMi᛽$Cѩw̉ (6CNX(_c.fe7c^VLiAC4%skO3ʙD充oT (*^8E1P5Y `odUfemb\TJ{>0"Q$hĞ嚛䚿p6,z"j1?K:U2]beFfd__+XNHC6'BỈ72]«1vЧߨ� /= JmT\wbeNf3d_PXN?C5-'pvyϺY@lvY)~ V$3>A/MW^c/febG]'UJb>V0 �f(ϴFުәR|1>Z6rܟZ$&.<8ISo\jbeFfd_WMA3${K=]ǣRՠeTiL̗ N.<`I.T\be6fc^VLL@/2"3A4ϘmF✐ժ}@°Ј.NX#Z3lAMWK_<dPfea[R:G9* H ȃ㮌Ǟ_[A^dځ .=oJ7U]@cfeb]TI<- 7cU<5 :ڤhm/B>,KU!^c5feob'\<SG[: +i ֯xQO4Ʃ{t?~?%c5COY`ecfd_KXNA�3"C�~iϾ2ܧ7a<n^n 1?LQWD_Td\fMe(aZDPD5%Sbk ]8!1@gMW_dcfe` YN)Bv3$#y2~యJZy9''37EQJ[be4f}c]TdI;+ LĄ GrřWî`p!2-A/NXb`dgfds_HW_L>/ rIƗ[ -ŭa  1A+NX{`eefZd_VK=2. g%ԽĬ�G1,q%W6 EQ|[Kbefbt\RF8'_ޚE!Ҫը( 9/K?LW`dbfod_VK= -z'"$B娇WQuը,ҹB+ d-=~KVe_dafd~_WK=}-& )ӳ+) ©x 0@MX`FePfc]TpH9(+)g8*ݭ<۲�e&l 'l%+H16"<8A FJNRmVY\5_fa/cde7fdf2fed cQa_\Y?VRNKJE@;C60*$* BBc͌9,Yݳǫ; ?̟ȝ -ԝY0g#ȥyy٢W` P w&,W27b=BgGK<P1TWZ]I`Obc.ee_fRfedca_)]8ZV3S+OJF A;[60*$;N i%&ܣ֣=պzHAf1;Ú5bi!gȻλBTy1 r#)/5D;@EJOSVEZG]_bceeYfUfedca_\YVVzRJNID?7:y4.\("1h�B߱zv̮$Qsm'3 >9ۢcC|�?ō˙BU1� \!b(.4}:@HE2JN SV]Zi]`:bc;e fbfDfedca^[XTPCLtGMB<71*{$&Kb km~ wOݶ#ȭͩ8WB CS՜ОE$z7YTtϷH t!(t.4:?@EJKOSxWZ]`b[de7fcffOedHb `[]2ZVR8NpIND>93,4&} wW5#)G Ӽ̫iA}aǛי䙥󟰢ߥ ǯԱڀsL qzd!#(.5;@;FXK P\TBX[^:a>cdeUfVfedHc?a^[DX]TPKK*F@:4i.'  hqho=]ʺPN[<"%@Gʧ$&?(w5 !! (.05X;;AFKPUX^\R_ac$e fcf9f|eBdwb-`_]ZPVRnMYHB=60)"E c7 +Ӕ>@AY٫է>.gaṷ~!7ɰztݢgu t ('.4:@FKP3U)Y\_bc[e!fjff9ecaR_J\XT6PIKE1@:3,&~ t�<*ۈԽ= 3J pΙȝ>77'Gp˦ҪR,!$+2U9?mEJOTXC\Y_acSefjff+eca^[!XS@OJD>G81*#" *fOޗ׍W<9c*̡ ɜ*}ʛ/7Φ窃 W�&ۗ.t ;} '.5\<BVHMRVZB^aGcdeff3fmed bw_U\XkTOyJD>Q81r*# "9[ ݶ՘P6MMpݝ⛅™7D)AP׸о)Gvnru hA r(/6E=CYINSX[_acZe/fdfed5c`]ZuVQL*G*A:3,c% |/;ș\8bT+[Lx#)W&ki 8^jR &-4; BHMRSWS[^acFe)fffed!c`]&ZU1QK#F?G9L2*S#urA diӾ@vO9a7ҙ;Rκ+ϑOHo]'A/~6c=CIjOsTX\_bde[fCfweda_[WRMHA.;4,$  1a4˲̷ܬ9(àoZo֣ҧpV<Rҋڎ)# �?I%-4;aBHaNS8X@\_Zb^deTfHfweca^^[.WjRM$G@92+# ~dߧπϴ>=ץޚߙA󦊫suê8J3| 8&.5<CIOTZYH]`cdfgf fdc`M]gYTOIC<5-%B .zi0;џm¢d,Қؙ#jl*eḥ*R"!,* 29@?GXMRW[_Xbmde^f2f@eca] ZwUHPsJD5=5.%7 Ur>0'8-ڛ]>ǡ.]4ɻ_F (0w8?FLpRuW[p_Rbwdedf&f"eTc`l]ZYT/O&IBk;3+}#  �� { ~Z<mƚΙF:i; U  o)1n9@GMSoX\9`bdfgfedsb_[dWCRsLF ?7/B' f1|=_ձ.9{ќۙ9ۤvîW,Hڒc#",_4"<nC(JDPUwZq^a deYf8f<elc`Q]YTfN HA91<) {F6.׹θ,.ʱ Așk~ġॶNrBR0 '08I@bGMSX]``c?e:fWfecha^YTKOHA[:L2) `WwFd%䡇dʙݚŜ<м#Bk$-"6>qE9LMRWA\`be"f`fedaI^ZUZOHA :1%) 3 5gq˾%2T}H(FlYfųgևKd"+k4<3D1KQ W[_bdfefeda"^YTN%H@8{0'V 7_ڡ{7Xę֚ԜğLҭ ˿c  0!m*J3;vCJQV[_bd!f_fecHa];YSMF]?;7.l%+<4;PA?sЯɠC򙝙F蛆ܫ�~sѪ9.B 9i)o2:BFJPV[_bd/fVfec`]tXRLdE=-5@,"&& ܛӦ9hF]2f#q�ƶMw<v5v� f(1[:BIPV[_be3fVf[encl`~\WQ6KC;3)A F o4_Ǿ&=)fݙdU;孇 t0X('09A|IZPiV[_be?fIfGe0c`[VPJlB:.1'L S ֬î3!Yk|54VqJX%.&8@HOU*[_be<fIfBe c_[vVUPHI~A8/ &pW$K.˱Xʥ<?䙥٨뵸@h<V Y",5>FMNTZZ^obd(fXfZeOc`[VUP0IAA8A/k%#=XuSKfӜә"_qE_mS (2;ZDLRX]abdeffec`\VW QIA@9/%y3Fxf0騟lQa kHOIO#$x90=F#-x7p@HPyV[>`uce]f f{da]XRKC;;1'[yV<P|ܾNS8M!؛͞ޢX?m5k'=1:CKRX]adf[fde;c_M[UNJG>}5+!6 {XyJc៕v3ĽƘ>(2e<=E+M3T#Z�_beIf/fd6ba^]Y7SLC:@1&}UΨħgSVș~ !R4|~.(h2%<E+MITHZ-_b9eSffda]XRJ?B8.^$Q T8*LЩDHB8vC7gY$/9B^KR YY^?bd=f8fd*b2^XR KB69/Y$&  g (Wƨ/ў�Gć7po*4^>_GbO[V$\`ceffeRc_ZTM<E;10'Ddt KdfRd f޻Iłg | !8,6@hIGQX]ad-fBfd)b ^XQ1J[A7-!T[ J4Wwa竒Ҝ'$GMBwf D+5?HQW]ad7f:fda] X)Q#I@6K+ q|̪Q𰸩Лʚ^jĦ}QR3Q.c&1T<E`NU[`de[fOeb^WYRJA7,!G ~Skz�홳롋xٿ լ-@)5T?HPW]bdJfffd,a\kVO~F<T2'"KI5ݤʼгn=FwѠ5JJ6iV7)}4>tHP�X]*bePf f4d`[UN2ER;|0$E P2ګHǞ֙ę?Q`ƒ,K 1$/:DMU[`@dfKfda]]]WOLG=2+'XqĿϱţនٙřMy-eع΄� F&K2/=GOWWl]adNffd~`\[TLC.9-!Rf[WoIRJR)m-uT׳ F$@0l;ENsV\adCff8d`[TLwC8-_!N3]Ԅ߽V0ٟ Ȣ Ű׹Vk:B) 5?IkRYH_\ceffLeb^W`PnGC=2%H jS˶ɜLyA^9nKw)5@JRY_ce_febL]V OEM;/l#q Iwȓ۳{GיΙT.<ӟ]v#/;FkOFW]Pb@eefe5c^XkQiH >2f&] 92P4 _<t5[goAW& $d1=GPyX^cedfLeWb]%WOE:.P"=bDނљú1^q{͸r59H 0-E9FDNRV]ae_fe+c^XPsG<04$�ov[ROʝg Ĉn  "/;oF�PXf^be_f1eb]>VMC8T,$eD!Zϥљ~,$˛`w+58CM'V]b7eefeb^xW,OYE%:- vK_ggݟٙܙٛܟiyzy:r0"!n.:FOX^%ce^fdva \TKiA5( mNԧ!_ߝ в!ȝC�*R7 CVM V]>bXegf]eBb&]#VZMC@7l*Z4ȁ1vΚm4(2EG,9HEhOW^6ceVfd`3[S$J(?2%g?r²۟ƛʙG!vuĸw ?V(5AhLU\bTegfIe b\WU.LfA75' ěo"ԙ@:ѹrf� )97ICMV]be\fd`[9SI=>1#RS.<4̹@*�z_iˇ�>Q#1}>ISl[?ad_fewb,]ULA-5'  }ԞpݢI8؍Z$2>LJT[a&effSeaZ\T K?2$8u+t٘ijS٢f67hEnа޸, *!8yD6O X_cffc_BXWOD=8* d ̤Ǟ�wD1s (6BCGNwW^}cf)fc>_XX]O|D7-*U l2Δ׵۫ٞOѾ8,:F}QZ`dYfe\b\T KS?2#O{DVGmޛ#Bѩx ̈ }(6CNX&_c-fe7c^VLdAF4%tlP2əH驺jS ,*X8#E+P8Y `ndWfemb\TJ>0 "N$eŞ暚n7*}"k1?K:U1]beDfd]_,XNIC6'I廆90Zë2zФߩ� /=JsT\ybeMf6d_UXNDC51'nvx̺V=muY)ŀ W$3=A/MW^c0febC])UJa>X0 �f(ϱJ۪ՙQ{4:^3sܠZ#%.<7ISo\jbeGfd_WMA3${J@[ǣO٠bUkH̛ Q.<_I/T\be9fc^VLI@22"8;:ϘoE㜏ժ;¶Ѓ1NV#\3jAMWM_<dPfea[R8G9* Kȅ⮋Ȟa_>_dڃ .=mJ9U]Ccf�fb]TI<- 8eQB󚞙1;ڡgl/?>.KU^c/fejb,\7SGW:"+g ֮ vSޝR3ĩ{v>|6%e5COY`eafd_PXNA2"C�dվ,2g8q] o �1?LSWC_Td^fIe-aZHPD5%QfgèV;!1@gMW_defe` YN(Bt3'#y0́ݰH᚞X{;&'57EQK[ be4f{c]TgI;+ �LĂDtřV®a~o!2.A.NXc`dhfdq_KW]L>/ pKƕZ +ǭd  1 A%NXx`ebf_d_VK=3. c)Լİ B/+r%U6"EQ~[Ibefbu\RF8'^ޠ@"Ӫէ( 7/H?LW `ddfnd_VK=-t$!$A稄ZRuԨ. ҶD) d-=KVg_dffd_WK=~-" -ճ,) ©x 0@MX`DeTfc]ToH9(1.l=1䭹6۹�_&�i &k%+C16!<8A FJNRsVY\2_ha.cde5fef2fedcOa_\Y@VRNGJE@;D60*$* DGi͌<'`ֳë? ?ΟÝ!-՝\-j Ȩv|ٟU^ J |&,X27a=BfGK=P.TWZ]E`Sbc1ee_fRfedca_+]6ZV2S,OJFA;X60*$=M j)*ܤ֤=ԺwFAe1:Ś3^ mjȽμFYx0  p#)/5B;@EJN!SVHZF]_ bcee^fRfedca_\YRV}RGNID?8:w4.[("/k��B߯{v̭&M vr*1 =9ݢg@�@ŏ˖BS2� Z!_(.4{:@DE5JN SV]Zh] `5bc8e fbfCfedca^[XTPFLrGNB<7!1*{$&Kd gry {Oܶ%ǭ˩9V>ESӜ՞>+u:X¸YmϾD t! (y.4:<@EJKOSwWZ]`bVde2fhffPedHb `Y]5ZVR5NqIPD>92,0& yU7")G ӻ̬k?~a|Λי᥂ Ǭ԰ڀtM rxg! (.4 ;@?FVK P\TAX[^:a>cdeTfXfedIc<a^[IXYTPJK*F@:4i.'  fmlkAZ˺OP TD &?Iɧ&&B)v5 $! (./5[;7AFKPUXZ\T_ac!e f`f;f{eCdub/`^]ZNVRlM[HB=60)"A `9 +ӓ@>AX۫ӧ?- cZsέ|2ɶuwݡgr q ''.4:@FKP2U*Y\_bcZe"fhff8ecaV_D\XT=PCKE-@:3,%| s�<)ۇԾ= 3H#tΙ˝;8;$Hn˧ҨM~/$+2R9?mEJOTXD\Y_acRe fjff+eca^[ XS?O JD>E81*## .`Sޙ׋T?;b&ҡΜ&Ùy͛06Ϧ誀W&ۖ/q ?~ '.5Z<BTHMRVZA^aFcdeef3fned by_P\XeTOvJD>P81s*# !:[ݶՖN6KLoݝ㛄™:B,?Q׸ξ/Dvluq l? s(/6B=CWINSX[ _ac]e,fefed7c`]ZvVQL)G*A:3,c% z1<Ȕb<aV(\My"*X&jc ;[lR &-4;BHMRTWO[^acEe*fdfed%c`]'ZU5QK)F?L9H2*Q#woD fhӾBvR1h2ϙ> XѺ*ώPIn['@/~6c=CIkOrTX\_bdeZfDfveda_[WRMHA/;4,$ /`0˲̷ڬ9*lXwϣ֧oX=QҊڏ)" �>J%-4;cBHcNS9X@\_Xbade[fCfzeca^[[2WeR M"G@92*# {_߮φzʹ>>֥ݙ A rwè9H.x  5&.5<CIOT_YC]`cdfff fdc`N]dYTOIC<5-%> 1zm+?џi§`,Қٙ#il+fg̢(Q"!)* 29@AGVMRW[_Sbrde`f1fAeca]ZzUEPtJD2=5.&6 Wo;5*:*Ťٛ\:¡*_3ɼ^F (0u8?FLqRrW[k_Vbsde`f*feYc`p]VYT/O%IBj;3+|#  �} ̀X@|oǚΙF8i= V % k)1l9@GMzSuX\<`bdfffedrb_[gW@RvLF ?7/?' g2�=]ױ-;˜ٙ;rƮU)Kڕd#(,Z4&<lC'JFPUvZu^ade\f7f=elc`Q]YTgN HA91?) }G6(׿β0,ɱCƙjġޥJo?Q- '08H@bGMSX"]`bc=e;fVfecga^YTJOHA_:K2) cYxFd$ 䡆b˙ښǜ<벑Ѷ >e$- 6>qE9LNRWB\ `b�e$f`fedaN^ZUVOHA :1%) 4 5hp˼'1V{K'Gj]kůjօIc"+n4<5D/KQ W[_bdfbfeda$^YTN&H@8~0'X 5`ڠ |8VęךӜşKԭ$g .!o*G3;sCJQV[_bd"f\fecHa]:YSMF^?;7.l%)=59RB@νŽqϯȠ?G蛅۫uѨ<-B 9g)q2:BEJPV[_be+fYfec`]qXRLdE=-5?,"$' ݚӦ9hE\1g$nƶLz8y 9s� i(1Z:BIPV[_be5fRf`ehcq`}\WQ3KC;3)> I v+&Xʾ#?'dٙfS>歈ֿx5S,'09AzI^PdV[_be>fJfEe3c`[VP JnB:+1'O V ֬í5$Vl}72RqKX%.%8@HOU,[_be;fKfAec_[}VOPLI{A8/!&oU$N4̱Xʥ<>䙥~ݨ>i<U W",5>FHNTUZ^ibd'fUfaeHc`[VVP0I@A8C/g%)=VvVH©dМ֙ _pG]iV (2;\DLRX]a^decfec`\UW!QIA?9/%v/ڿHxf1稠mOe hNGRG**{:-@C#-v7s@HPsV[;`wce_ff~da]XRKC=;1'Z{T=O}۾R稘M;MܛȞV<p 3k';1:CKRX]adfYfhe7c_H[UNKG>~5+!1 ~VzM_䟓y.Ľƛ=(2h<8E/M0T%Z�_beJf.fd5bb^[Y;S LC:=1&Z΢ĬjPXǙO5|},(h2&<E0MBTOZ(_b6eUffda]~XRJAB8.^$Q S2#KΩEHC8uD7fY$/9BbKR*YO^Fbd=f:fd+b0^XRKB<9/_$   i #[Ũ1ϞHą;mq *4a>\GdOZV&\`cecfePc_ZTM:E;11'EdrHgcUa񜱠e޻JŁh z!7,6@gIFQ X]ad1f@fd+b^XQ1JXA7-!P] I6Tze䫕Ҝ*!CPDuf=+5?IQW]ad5f9fda] X)Q#I@6I+ m̬O񰸩Л̚]iƦzVM7Q2^&1Q<E]NU[`de^fJeb^]YRJA7,}!D {Vo|�𙰙񚶝롍uֿ խ,=)5U?HPW]bdHffgd,a\lVO|F<O2 'EG5ݦмʳ�j?H|ՠ3HM7eS9)}4>uHPW](beSff9d`[U N.ET;{0$A S2ڪ J˞ݙBPbƒ*M 4$/:DMU[`?dfNfda\]\WOMG~=2$'Qyº˱ã㞒ڙ™Qv/bӹΊ� J&M20=GOTWm]adQffd~`Z[TLC,9-!PjV\qHQJT-h2qVװ I$=0p;ENqV\adFff:d`[TLvC8-`!P1]Ԃ߽X5՟Ţ ưԹUl9@)5?IeRYJ_WcedfLeb^W`PnGD=2%F mP׽˹ Sr :e2tQs")5!@ JRY_ce_fe bM]V OEI;/m#n NtȒ޳zGؙЙQ0:ӡ_u#/;FfOMW]QbAecfe4c^XkQiH>2b&` :/S0 d6s2`dpCZ$ $b1=}GPqX^cedfMeUb]'WOE:/L">aBރњº3\r|̸s59K .-E9GDNTV]ae`fe-c^XPoG<0:$nw[PNǝkĈm�"/;oFO Xc^bedf/eb ]8VMC8O,*_H&\ͥΙ(#˙^u+58CM%V]b7eefeb^wW+O\E#:- {K_gfݟۙڙۛ۟jx|v=p-$!m.:FOX^ ceYfdta \TKbA5( kNԦ#`̲"ȘI�*V7C^MV ];bYegf^e@b)]V_MBG7e*T 6ȁ0vΚj7&2JK,9IEfOW^7ceTfd`2[S!J+?2%g>r±ޟě̙L(o{Ļv >W(5AgLU\bSegfKeb\WU-LgA75'  ěm#Й>9Թvb� )67MCMV]be\fd�a[<SI@>1#QT-=3̺?%ƚvZk˅?P#1>ISn[=ad^fexb+]ULA)5' ԞuG8ؐX$2>MJT[a'eefTea[\T K?2$4q.rٙ³Uעe55iEmб޸+ *$8wD7O!X_cf!fc_CXWODB8* d ˤǞyA2w (6ACGNwW^zcf'fc=_YX\O}D�8**X j4Ε׵ګԞNѾ;,:FQZ`dYfeYb\T KU?2#KHRJkݛÙ@ѩy!̆ (6CNX)_c1fe;c^VLgAD4%tjO3çǙH驺iP )*\8E.P7Y `pdUfemb\TJ>0 "M%eƞ暙暽l:)|"m1?K:U1]beBfd[_.XNGC6'G滃;/]ë1zФߪ� /= JnT\xbeMf6d_SXNAC50'nw|кZ?lvY(Ł Z$3=A/MW^c-febE](UJc>V0 �g)ϴG۪ԙP~0?X8oܣY"#.<8ISq\gbeDfd_WMA3$wL=_ţPؠcTjJ̙ M.<^I2T\be9fc^VLK@/2"4?7ϕlG䜎֪}=·Ѐ5IY#X3mAMWP_8dSfea[R>G9* I Ȃ䮋Ȟ`]?^fڄ .=kJ9U]?cfeb]TI<- 9dU>4>ڥli/A>,KU!^c0fegb/\5SGV:%+n ղxRߝQ2©qA}>%c5COY`ecfd_MXNA�3"@�fӾ.ߧ4e6q^q 1?LTW@_WdZfNe)aZHPD5%PejĠ_;!1@hMW_dhf�e` YN*Bt3&#}.́ݰG㚝\w:%'67EQM[ be3f|c]TdI;+ LăDtřVŮ]r!2/A-NX``�edfdo_KW\L�?/ rJƔW0c 1A'NXy`ebf^d_VK=6. d(ԼįH50o%U6!EQ}[Jbefbv\RF8'^ޞA Ԫժ' 9/I?LW `dhfjd_VK= -|(!'=ꨂ[Pvը+ҸE& a-=KVm_dhfd_WK=-( )ճ~.' éx 0@MX`FeSfc]TmH9(.'d5+୼;۴�a&����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./dlretrieve.pas������������������������������������������������������������������������������������0000644�0001750�0001750�00000224467�14576573021�014040� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit dlretrieve; { Vector plot: Chart X and Y size is -1 to +1 Altitude data is -90 to +90 degrees Z is -1 to +1 as defined by mapping routine. Range (.max , .min): - RangeFromFile determined from data file and used by Min/max button - RangeFromUser set by user in the min max fields - RangeFromScheme - pulled in from the colourt scheme } {$mode objfpc} interface uses Classes, SysUtils, FileUtil, SynMemo, TATools, TASources, TAGraph, TAFuncSeries, TASeries, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons, LCLType, ExtCtrls, ComCtrls //, EditBtn , UMathInterpolation , StrUtils , plotter //Plotter view , TAChartUtils //for TDoubleRect , TADrawerSVG // for saving SVG of chart , TADrawUtils, TACustomSeries, TATypes, TAStyles; type { TDLRetrieveForm } TDLRetrieveForm = class(TForm) Block: TButton; ManualEntryGroup: TGroupBox; LegendMaxEntry: TEdit; LegendMinEntry: TEdit; MaxValueLabel: TLabel; MinValueLabel: TLabel; LogsDirectoryButton: TBitBtn; LogsDirectoryEdit: TEdit; RangeSchemeRadio: TRadioButton; RangeDatasetRadio: TRadioButton; RangeManualRadio: TRadioButton; ResetToLogsDirectoryButton: TBitBtn; ShowGridCheckBox: TCheckBox; ColourSchemeComboBox: TComboBox; DataSetSelect: TRadioGroup; ColourSchemeGroup: TGroupBox; PlotterButton: TButton; CalculatingProgressBar: TProgressBar; CalculatingText: TStaticText; UpdateButton: TButton; VectorChart: TChart; VectorChartColorMapSeries: TColorMapSeries; VectorChartLineSeries1: TLineSeries; VectorChartLineSeries2: TLineSeries; LegendChart: TChart; LegendChartColorMapSeries: TColorMapSeries; LegendChartLineSeries: TLineSeries; CursorValue: TStaticText; CursorValueGroup: TGroupBox; DecorationsGroup: TGroupBox; DLRetConvRawButton: TButton; DLRetrieveRawButton: TButton; ExportButton: TButton; HourGlassTimer: TIdleTimer; FileDirectoryLabel: TLabel; LeftSideLabel: TLabel; LogsDirStatusLabel: TLabel; MarkPointsCheckBox: TCheckBox; MaxRecordsLabel: TLabel; NorthLabel: TLabel; OrientationSelect: TRadioGroup; PageControl1: TPageControl; Panel1: TPanel; Panel2: TPanel; Panel3: TPanel; PlotFileTitle: TStaticText; PlotSettingsGroup: TGroupBox; RangeGroup: TGroupBox; RightSideLabel: TLabel; ScrollBox1: TScrollBox; ShowDotsCheckBox: TCheckBox; ShowLinesCheckBox: TCheckBox; ShowPlotDataButton: TButton; SouthLabel: TLabel; SynMemo2: TSynMemo; TabSheet1: TTabSheet; TabSheet2: TTabSheet; ToLabel: TLabel; RangeEnd: TEdit; RangeStart: TEdit; RetRangeButton: TButton; ChartToolset1: TChartToolset; ChartToolset1PanDragTool1: TPanDragTool; ChartToolset1ZoomDragTool1: TZoomDragTool; DLCancelRetrieveButton: TButton; DLGHeaderButton: TButton; DLRetrieveAllButton: TButton; PlotColourSource: TListChartSource; LegendColourSource: TListChartSource; OpenDialog2: TOpenDialog; OpenAnotherFileButton: TBitBtn; RecentFileEdit: TLabeledEdit; OpenDialog1: TOpenDialog; OpenRecentFileButton: TBitBtn; SynMemo1: TSynMemo; procedure BlockClick(Sender: TObject); procedure LogsDirectoryButtonClick(Sender: TObject); procedure LogsDirectoryEditChange(Sender: TObject); procedure MinMaxCheckBoxClick(Sender: TObject); procedure RangeDatasetRadioClick(Sender: TObject); procedure RangeManualRadioClick(Sender: TObject); procedure RangeSchemeRadioClick(Sender: TObject); procedure VectorChartAfterDraw(ASender: TChart; ADrawer: IChartDrawer); procedure ColourSchemeComboBoxChange(Sender: TObject); procedure DataSetSelectClick(Sender: TObject); procedure LegendMaxEntryEditingDone(Sender: TObject); procedure LegendMinEntryEditingDone(Sender: TObject); procedure PlotterButtonClick(Sender: TObject); procedure DLRetConvRawButtonClick(Sender: TObject); procedure DLRetrieveRawButtonClick(Sender: TObject); procedure HourGlassTimerTimer(Sender: TObject); procedure OrientationSelectClick(Sender: TObject); procedure ResetRangeButtonClick(Sender: TObject); procedure ResetToLogsDirectoryButtonClick(Sender: TObject); procedure RetRangeButtonClick(Sender: TObject); procedure ShowDotsCheckBoxChange(Sender: TObject); procedure ShowGridCheckBoxChange(Sender: TObject); procedure ShowPlotDataButtonClick(Sender: TObject); procedure VectorChartColorMapSeriesCalculate(const AX, AY: Double; out AZ: Double); procedure VectorChartMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer ); procedure LegendChartColorMapSeriesCalculate(const AX, AY: Double; out AZ: Double); procedure MarkPointsCheckBoxChange(Sender: TObject); procedure DLCancelRetrieveButtonClick(Sender: TObject); procedure DLGHeaderButtonClick(Sender: TObject); procedure DLRetrieveAllButtonClick(Sender: TObject); procedure ExportButtonClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure OpenAnotherFileButtonClick(Sender: TObject); procedure OpenDirectoryButtonClick(Sender: TObject); procedure OpenRecentFileButtonClick(Sender: TObject); procedure ShowLinesCheckBoxChange(Sender: TObject); procedure TabSheet2Show(Sender: TObject); procedure UpdateButtonClick(Sender: TObject); { private declarations } private procedure HourGlass(); procedure DotsLinesUpdate(); procedure VectorMapUpdate(); procedure VectorPlotFile(); procedure UpdateColourSchemeFileList(); procedure UpdateColourScheme(); procedure SaveChart(FileType:String); procedure ChangeLogsDirectory(); { public declarations } public procedure DLRetrieveRange(StartRecord:LongInt=1;EndRecord:LongInt=-1); end; type LegendRange = record min,max:double; end; var DLRetrieveForm: TDLRetrieveForm; {Legend range} RangeFromScheme:LegendRange; //Pulled in from the colourt scheme RangeFromFile:LegendRange; //Determined from data file and used by Min/max button RangeFromUser:LegendRange; //Set by user in the min max fields RangeToDisplay:LegendRange; //To be shown on display MinMax:Boolean = False; //Select min/max range from file. Int3D: TInterpolation3D; VectorPlotOverride: Boolean = False; HourGlassTimeout: Integer = 1000; //Hourglass shows while below a certain value VectorDataset:Integer=0; //0=MPSA. 1=MPSA_raw {Option to show vector plot grid} ShowDots: Boolean = True; ShowLines: Boolean = False; ShowGrid: Boolean = True; Orientation:Integer; //0=E-W Looking up, 1=W-E looking down RangeSource:Integer;//0=from scheme, 1=dataset, 2=manual VectorPlotFilename:String; implementation uses Unit1, math, appsettings , header_utils, dateutils , dlheader //contains the DLHeader code , dlerase , vector , TAGeometry //for doublepoint , LazFileUtils //Necessary for filename extraction ; procedure PreparePolarAxes(AChart: TChart; AMax: Double); var ex: TDoubleRect; begin //exit;//debug ex.a.x := -AMax; ex.a.y := -AMax; ex.b.x := AMax; ex.b.y := AMax; with AChart do begin Extent.FixTo(ex); Proportional := true; Frame.Visible := false; with LeftAxis do begin AxisPen.Visible := false; Grid.Visible := false; PositionUnits := cuGraph; Marks.Visible := false; end; with BottomAxis do begin AxisPen.Visible := false; Grid.Visible := false; PositionUnits := cuGraph; Marks.Visible := false; end; end; end; procedure DrawPolarAxes(AChart: TChart; AMax, ADelta: Double); var r, theta: Double; P1, P2: TPoint; i, h, w: Integer; s: String; begin with AChart do begin // Degree lines Drawer.SetBrushParams(bsClear, clNone); Drawer.SetPenParams(psDot, clGray); Drawer.SetXor(True); for i:=0 to 3 do begin theta := i * pi/4; P1 := GraphToImage(DoublePoint(AMax*sin(theta), AMax*cos(theta))); P2 := GraphToImage(DoublePoint(-AMax*sin(theta), -AMax*cos(theta))); Drawer.MoveTo(P1); Drawer.Lineto(P2); end; // Circles r := ADelta; while r <= AMax do begin P1 := GraphToImage(DoublePoint(-r, -r)); P2 := GraphToImage(DoublePoint(+r, +r)); Drawer.SetPenParams(psDot, clGray); Drawer.SetBrushParams(bsClear, clNone); Drawer.Ellipse(P1.x, P1.y, P2.x, P2.y); r := r + ADelta; end; // Axis labels Drawer.Font := BottomAxis.Marks.LabelFont; h := Drawer.TextExtent('0').y; r := 0; while r <= AMax do begin s := Format('%.0f°',[r*90.0]);//scale from 1 to 90degrees w := Drawer.TextExtent(s).x; P1 := GraphToImage(DoublePoint(0, r)); Drawer.TextOut.Pos(P1.X - w div 2, P1.y - h div 2).Text(s).Done; r := r + ADelta; end; end; end; { TDLRetrieveForm } procedure TDLRetrieveForm.DLGHeaderButtonClick(Sender: TObject); begin DLHeaderForm.ShowModal; end; procedure TDLRetrieveForm.DLCancelRetrieveButtonClick(Sender: TObject); begin DLCancelRetrieve:=True; end; operator mod(const a,b:double) c:double;inline; begin c:= a-b * trunc(a/b); //trunc was correct, not floor so I editted this back in end; procedure TDLRetrieveForm.VectorChartMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var x1,y1,z1: Double; Altitude: Double=0.0; Azimuth: Double=0.0; Zenith: Double=0.0; begin If Int3D <> nil then begin If VectorChartLineSeries1.IsEmpty then Exit; x1 := VectorChart.XImageToGraph(X); y1 := VectorChart.YImageToGraph(Y); z1 := Int3D.GetIntData(x1,y1); Zenith:= y1/sin(arctan2(y1,x1))*90.0; //Hypotenuse = Opposite / Sine(theta) Altitude:= abs(90.0-Zenith); Azimuth:= (radtodeg(arctan2(y1,x1))+270) mod 360.0; CursorValue.Caption := ' Zenith: ' + FloatToStrF(Zenith,ffFixed,6,0) + #13 + 'Altitude: ' + FloatToStrF(Altitude,ffFixed,6,0) + #13 + ' Azimuth: ' + FloatToStrF(Azimuth,ffFixed,6,0) + #13 + ' MPSAS: ' + FloatToStrF(z1,ffFixed,6,2)+ #13 ; //'X: ' + FloatToStrF(x1,ffFixed,6,3) + #13 + //'Y: ' + FloatToStrF(y1,ffFixed,6,3) + #13; end; end; procedure TDLRetrieveForm.LegendChartColorMapSeriesCalculate(const AX, AY: Double; out AZ: Double); begin {Show hourglass cursor while changing display.} HourGlass(); {Update data} AZ:=AY; end; procedure TDLRetrieveForm.MarkPointsCheckBoxChange(Sender: TObject); begin VectorChartLineSeries1.Marks.Visible := MarkPointsCheckBox.Checked; end; procedure TDLRetrieveForm.VectorPlotFile(); var i,j: Integer; //general purpose counters SL: TStringList; MPSAS, xValue, yValue: Double; Altitude: Double = 0.0; Zenith: Double = 0.0; Azimuth: Double = 0.0; pieces: TStringList; //delimited result from generic read FirstLine:Integer; AltitudeField: Integer = -1; //Field that contains the Altitude variable, -1 = not defined yet. ZenithField: Integer = -1; //Field that contains the Zenith variable, -1 = not defined yet. AzimuthField: Integer = -1; //Field that contains the Azimuth variable, -1 = not defined yet. MPSASField: Integer = -1; //Field that contains the MPSAS variable, -1 = not defined yet. RecordCount: Integer = 0; PlottableFieldName: String = 'MSAS'; begin VectorChart.Visible:=False; LegendChart.Visible:=False; {Reset the min/max to defaults} RangeFromFile.min:=1e6; RangeFromFile.max:=-1e6; RangeToDisplay.min:=RangeFromScheme.min; RangeToDisplay.max:=RangeFromScheme.max; Application.ProcessMessages; DotsLinesUpdate(); SL := TStringList.Create; pieces := TStringList.Create; {Show hourglass cursor while reading data in.} HourGlass(); {Get selected filename.} VectorPlotFilename:=OpenDialog1.FileName; {Quick-and-Dirty data import} SL.LoadFromFile(VectorPlotFilename); If Int3D <> nil then Int3D.Free; Int3D := TInterpolation3D.Create; Int3D.ClearData; VectorChartLineSeries1.BeginUpdate; VectorChartLineSeries1.Clear; Int3D.InterpolationMode := IM_DELAUNAY; PlotFileTitle.Caption:= ExtractFileName(VectorPlotFilename); if VectorDataset=1 then PlottableFieldName:='MSASraw'; { Read through header and gather pertinent details} For i:=0 to SL.Count-1 do begin {Show hourglass cursor while reading data in.} HourGlass(); { Find Altitude and Azimuth fields. } if AnsiStartsStr('# UTC Date & Time,',SL.Strings[i]) then begin pieces.Delimiter := ','; //Initially for determining UDM version pieces.StrictDelimiter := True; //Do not parse spaces pieces.DelimitedText := SL.Strings[i]; StatusMessage('string= '+SL.Strings[i]); StatusMessage('count= '+IntToStr(pieces.Count-1)); for j:=0 to pieces.Count-1 do begin if AnsiContainsStr(pieces.Strings[j],'Altitude') then AltitudeField:=j; if AnsiContainsStr(pieces.Strings[j],'Zenith') then ZenithField:=j; if AnsiContainsStr(pieces.Strings[j],'Azimuth') then AzimuthField:=j; if Trim(pieces.Strings[j])=PlottableFieldName then MPSASField:=j; end; end; { Find end of header. } if AnsiStartsStr('# END OF HEADER',SL.Strings[i]) then break; end; FirstLine:=i+1; StatusMessage(PlottableFieldName+' Field= '+IntToStr(MPSASField)); StatusMessage('AltitudeField= '+IntToStr(AltitudeField)); StatusMessage('ZenithField= '+IntToStr(ZenithField)); StatusMessage('AzimuthField= '+IntToStr(AzimuthField)); if MPSASField<0 then begin MessageDlg('Error' ,format('%s field not found',[PlottableFieldName]) ,mtError,[mbOK],0); exit; end; pieces.Delimiter := ';'; pieces.StrictDelimiter := False; //Parse spaces also {without header lines} StatusMessage('Lines to import = '+IntToStr(SL.Count)); For i:=FirstLine to SL.Count-1 do begin Inc(RecordCount); StatusMessage('Record = '+IntToStr(RecordCount)); //Show hourglass cursor while reading data in. HourGlass(); pieces.DelimitedText := SL.Strings[i]; if AzimuthField<1 then begin MessageDlg('Error Azimuth field not found.',mtWarning, [mbOK],0); exit; end; Azimuth:=StrToFloatDef(pieces[AzimuthField],0,FPointSeparator); MPSAS:=StrToFloatDef(pieces[MPSASField],0,FPointSeparator); {Update range} if MPSAS>RangeFromFile.max then RangeFromFile.max:=MPSAS; if MPSAS<RangeFromFile.min then RangeFromFile.min:=MPSAS; if AltitudeField>0 then begin Altitude:=StrToFloatDef(pieces[AltitudeField],0,FPointSeparator); xValue:=cos(degtorad(Azimuth+90))*(1.0-abs(Altitude/90.0)); yValue:=sin(degtorad(Azimuth+90))*(1.0-abs(Altitude/90.0)); end else if ZenithField>0 then begin Zenith:=StrToFloatDef(pieces[ZenithField],0,FPointSeparator); xValue:=cos(degtorad(Azimuth+90))*(1.0-abs((90.0-Zenith)/90.0)); yValue:=sin(degtorad(Azimuth+90))*(1.0-abs((90.0-Zenith)/90.0)); end else begin StatusMessage('No Altitude or Zenith field'); break; end; StatusMessage(format('MSAS= %f, Altitude= %f, Zenith =%f, Azimuth= %f',[MPSAS, Altitude, Zenith, Azimuth])); Int3D.AddData( xValue, yValue, MPSAS ); VectorChartLineSeries1.AddXY(xValue,yValue, FloatToStr(Altitude)+' '+FloatToStr(Azimuth)); // point number as Mark-Label end; VectorChartLineSeries1.EndUpdate; VectorChartLineSeries2.BeginUpdate; VectorChartLineSeries2.Clear; For i:=0 to High(Int3D.Triangles) do begin //Show hourglass cursor while processing data. HourGlass(); VectorChartLineSeries2.AddXY(Int3D.Data[Int3D.Triangles[i].a,0],Int3D.Data[Int3D.Triangles[i].a,1]); VectorChartLineSeries2.AddXY(Int3D.Data[Int3D.Triangles[i].b,0],Int3D.Data[Int3D.Triangles[i].b,1]); VectorChartLineSeries2.AddXY(Int3D.Data[Int3D.Triangles[i].c,0],Int3D.Data[Int3D.Triangles[i].c,1]); VectorChartLineSeries2.AddXY(Int3D.Data[Int3D.Triangles[i].a,0],Int3D.Data[Int3D.Triangles[i].a,1]); VectorChartLineSeries2.AddXY(NaN,NaN); // manual breakpoint (TAChart backward compatible) or AddNull if possible end; VectorChartLineSeries2.EndUpdate; //MPSAS fixed values, otherwise range is automatically changed //Int3D.zmin:=RangeToDisplay.min; //Int3D.zmax:=RangeToDisplay.max; case RangeSource of 0: begin Int3D.zmin:=RangeFromScheme.min; Int3D.zmax:=RangeFromScheme.max; end; 1: begin Int3D.zmin:=RangeFromFile.min; Int3D.zmax:=RangeFromFile.max; end; 2: begin Int3D.zmin:=RangeFromUser.min; Int3D.zmax:=RangeFromUser.max; end; end; StatusMessage(Format('Int3D.zmin =%f Int3D.zmax=%f',[ Int3D.zmin,Int3D.zmax])); SL.Free; VectorChart.Visible:=True; LegendChart.Visible:=True; end; procedure TDLRetrieveForm.ShowPlotDataButtonClick(Sender: TObject); begin if OpenDialog1.Execute then VectorPlotFile(); if FileExists(OpenDialog1.FileName) then ExportButton.Enabled:=True else ExportButton.Enabled:=False; end; procedure TDLRetrieveForm.VectorChartColorMapSeriesCalculate(const AX, AY: Double; out AZ: Double); begin If Int3D <> nil then begin HourGlass(); //Make cursor become hourglass AZ := Int3D.GetNomalizedIntData(AX,AY); end; end; procedure TDLRetrieveForm.RetRangeButtonClick(Sender: TObject); var StartRange, EndRange:Integer; begin StartRange:=StrToIntDef(RangeStart.Text,1); EndRange:=StrToIntDef(RangeEnd.Text,-1); DLRetrieveRange(StartRange, EndRange); StatusMessage('Retrieved range ASCII: ' + IntToStr(StartRange) + ' to ' + IntToStr(EndRange)); end; procedure TDLRetrieveForm.OrientationSelectClick(Sender: TObject); begin HourGlass(); Orientation:=OrientationSelect.ItemIndex; if Orientation=0 then begin LeftSideLabel.Caption:='E'; RightSideLabel.Caption:='W'; VectorChart.AxisList[1].Inverted:=False; end else begin LeftSideLabel.Caption:='W'; RightSideLabel.Caption:='E'; VectorChart.AxisList[1].Inverted:=True; end; vConfigurations.WriteString('Plotter','Orientation',IntToStr(Orientation)); end; procedure TDLRetrieveForm.HourGlassTimerTimer(Sender: TObject); const HourGlassTime = 4; begin inc(HourGlassTimeout); if (HourGlassTimeout > HourGlassTime) then begin CalculatingText.Visible:=False; CalculatingProgressBar.Visible:=False; HourGlassTimeout:= HourGlassTime; end else begin CalculatingText.Visible:=True; CalculatingProgressBar.Visible:=True; end; Application.ProcessMessages; end; // Not visible (for testing) procedure TDLRetrieveForm.DLRetrieveRawButtonClick(Sender: TObject); var result: String; subfix: AnsiString; pieces: TStringList; TriggerModeNumber: Integer; StartTime: TDateTime; PacketLength,i: Integer; NumberOfPackets,j: LongInt; ResultChar: Char; ReadingLine: Boolean = True; ReadingPackets: Boolean = True; OutString: String =''; begin StartTime:=Now(); SynMemo1.Lines.Clear; StatusMessage('DL Retrieve Raw initiated.'); pieces := TStringList.Create; pieces.Delimiter := ','; SynMemo2.Clear; RecentFileEdit.Text:=''; //Warn if selected model is not capable of datalogging, this can happen if // this window was started from the main menu instead of from the datalogging // tab. if not((SelectedModel=model_DL) or (SelectedModel=model_V)or (SelectedModel=model_DLS)) then begin MessageDlg('Select a datalogging meter',mtWarning, [mbOK],0); exit; end; //Check firmware version before proceeding if (StrToInt(SelectedFeature)<45) then begin MessageDlg('Upgrade the firmware to feature 45 or greater',mtWarning, [mbOK],0); exit; end; { Ensure that continuous logging mode has not been selected because it interferes with data retrieval on firmware less than feature 30.} result:=sendget('Lmx'); TriggerModeNumber:=StrToInt(AnsiMidStr(result,4,1)); { Warn user that retrieve cannot be done with certain firmwares and certain trigger modes.} if ( (StrToIntDef(SelectedFeature,0)<30) and ((TriggerModeNumber=1) or (TriggerModeNumber=2))) then begin Application.MessageBox('Cannot retrieve database while in continuous trigger mode.'+ sLineBreak+ 'Select trigger mode = Off,'+ sLineBreak+ ' or one of the "Every x on the hour" modes.', 'Busy logging, cannot retrieve!', MB_ICONEXCLAMATION) ; exit; end; if ((Length(DLHeaderForm.TZRegionBox.Text)>0) and (Length(DLHeaderForm.TZLocationBox.Text)>0)) then begin DLCancelRetrieve:=False; //Get unit time for comparison try if (SelectedModel=model_V) then WriteDLHeader('DL-V-Log','DL Retrieve Raw', '.raw') //vector model else WriteDLHeader('DL-Log','DL Retrieve Raw', '.raw');// Standard DL model //Open file for appending records AssignFile(DLRecFile, LogFileName); Reset(DLRecFile); Append(DLRecFile); //Open file for appending SetTextLineEnding(DLRecFile, #13#10); OpenComm(); ser.SendString('L8x'); //Pull in first line which contains packet length, and number of packets. While (ReadingLine) do begin ResultChar:=chr(ser.RecvByte(2000)); if ResultChar=#10 then ReadingLine:=False; OutString:=OutString+ResultChar; end; pieces.DelimitedText:=OutString; PacketLength:=StrToInt(pieces.Strings[1]); NumberOfPackets:=StrToInt64(pieces.Strings[2]); Writeln(DLRecFile,Format('# PacketLength: %d',[PacketLength])); Writeln(DLRecFile,Format('# NumberOfPackets: %d',[NumberOfPackets])); Writeln(DLRecFile,'# END OF HEADER'); { Write records to rawfile } for j:= 1 to NumberOfPackets do begin SynMemo1.Lines.Clear; SynMemo1.Lines.Append(Format('Retrieved record: %d / %d',[j, NumberOfPackets])); Application.ProcessMessages; for i:= 1 to PacketLength do begin ResultChar:=chr(ser.RecvByte(1000)); If CompareStr(ser.LastErrorDesc,'OK')<>0 then begin StatusMessage('Error: '+ser.LastErrorDesc); ReadingPackets:=False; Break; end else begin Write(DLRecFile,ResultChar); end; if not(ReadingPackets) then Break; end; end; //Read EOF ReadingLine:=True; OutString:=''; While (ReadingLine) do begin ResultChar:=chr(ser.RecvByte(1000)); if ResultChar=#10 then ReadingLine:=False; write(DLRecFile,ResultChar); end; CloseComm; SynMemo1.Lines.Clear; if DLCancelRetrieve then SynMemo1.Lines.Append('Partially retrieved ' + IntToStr(j)+' records: ' + '1 to ' + IntToStr(i-1) +' written to:') else SynMemo1.Lines.Append('Retrieved ' + IntToStr(j)+' records: ' + '1 to ' + IntToStr(NumberOfPackets) +' written to:'); RecentFileEdit.Text:=Format('%s',[LogFileName]); SynMemo1.Lines.Append(Format('%s',[LogFileName])); DLCancelRetrieve:=False; Flush(DLRecFile); CloseFile(DLRecFile); except StatusMessage('VectorDLRetrawTest: ERROR! IORESULT: ' + IntToStr(IOResult)); end; end else ShowMessage('Enter Time zone information into Header first. '+ sLineBreak+ 'Do this by pressing the Header button, then selecting your timezone.'); SynMemo1.Lines.Append(Format('Time to retieve raw data: %.3f seconds.',[MilliSecondsBetween(Now,StartTime)/1000.])); end; //unused?? procedure TDLRetrieveForm.DLRetConvRawButtonClick(Sender: TObject); var subfix: AnsiString; Temperature, Voltage, Darkness : Float; pieces: TStringList; StartTime: TDateTime; LogTime : TDateTime; NumberOfPackets: LongInt; PacketLength: Integer; j: LongInt=0; ResultChar: Char; InFile,OutFile: TextFile; OutFileString: String; Str: String; SS,MN,HH,DY,DT,MO,YY: String; UTCDateString: String; WriteAllowable: Boolean = True; //Allow output file to be written or not. function CharToHex():String; begin Read(InFile,ResultChar); CharToHex:=IntToHex(Ord(ResultChar),2); end; function CharToHexLimit():String; begin Read(InFile,ResultChar); CharToHexLimit:=IntToStr(StrToIntDef(IntToHex(Ord(ResultChar),2),0)); end; function CharsToLongInt():LongInt; //32 bit read in. Sign is maintained becauase LongInt is 32 bit. begin Read(InFile,ResultChar); CharsToLongInt:=Ord(ResultChar); Read(InFile,ResultChar); CharsToLongInt:=CharsToLongInt+Ord(ResultChar)*256; Read(InFile,ResultChar); CharsToLongInt:=CharsToLongInt+Ord(ResultChar)*256**2; Read(InFile,ResultChar); CharsToLongInt:=CharsToLongInt+Ord(ResultChar)*256**3; end; function CharsToSmallInt():SmallInt; //16 bit read in. Sign is maintained becauase SmallInt is 16 bit. begin Read(InFile,ResultChar); CharsToSmallInt:=Ord(ResultChar); Read(InFile,ResultChar); CharsToSmallInt:=CharsToSmallInt+Ord(ResultChar)*256; end; function CharToByte():Byte; //8 bit read in. Unsigned. begin Read(InFile,ResultChar); CharToByte:=byte(ResultChar); end; begin SynMemo1.Lines.Clear; StatusMessage('DL Raw to .dat conversion initiated.'); pieces := TStringList.Create; OpenDialog1.Filter:='raw log files|*.raw|All files|*.*'; OpenDialog1.InitialDir := appsettings.LogsDirectory; if OpenDialog1.Execute then begin //Start reading file. AssignFile(InFile, OpenDialog1.Filename); OutFileString:=ChangeFileExt(OpenDialog1.Filename,'.dat'); AssignFile(OutFile, OutFileString); if FileExists(OutFileString) then begin if (MessageDlg('Overwrite existing file?','Do you want to overwrite the existing file?',mtConfirmation,[mbOK,mbCancel],0) = mrOK) then WriteAllowable:=True else WriteAllowable:=False; end; if WriteAllowable then begin StartTime:=Now(); {$I+} // Errors will lead to an EInOutError exception (default) try Reset(InFile); Rewrite(OutFile); //Open file for writing repeat // Read one line at a time from the file. Readln(InFile, Str); pieces.Delimiter := ' '; pieces.StrictDelimiter := False; //Parse spaces. // Get location data from header. if AnsiStartsStr('# UDM setting:',Str) then Str:='# UDM setting: DL .raw converted to .dat'; if AnsiStartsStr('# PacketLength:',Str) then begin pieces.DelimitedText:=Str; PacketLength:=StrToInt(pieces.Strings[2]); end; if AnsiStartsStr('# NumberOfPackets:',Str) then begin pieces.DelimitedText:=Str; NumberOfPackets:=StrToInt(pieces.Strings[2]);; end; If Str<>'' then WriteLn(OutFile, Str); until(AnsiStartsStr('# END OF HEADER',Str)); // End Of header. for j:=1 to NumberOfPackets do begin //Pull in binary // Read(InFile,ResultChar); //Position 0, Indicates if EEPROM value was written, throw away. SS:=CharToHex; //Position 1, Seconds. MN:=CharToHex; //Position 2, Minutes. HH:=CharToHex; //Position 3, Hours. DY:=CharToHex; //Position 4, Day. DT:=CharToHex; //Position 5, Date. MO:=CharToHex; //Position 6, Month. YY:=CharToHex; //Position 7, Year. UTCDateString:= YY+'-'+MO+'-'+DT+HH+':'+MN+':'+SS; try //Convert datestring to date for local time calculation LogTime:=ScanDateTime('yy-mm-ddhh:nn:ss',UTCDateString); except LogTime:=ScanDateTime('yy-mm-ddhh:nn:ss','00-00-0000:00:00'); end; //{ Pull in values } //; LRECDATA+8-11 Rdg raw 32 bit binary value from CDMAGS Darkness:=StrToFloatDef(((Format('%.2f',[CharsToLongInt / 6553600.0]))),0); //; LRECDATA+12,13 Temp. raw 16 bit binary value Temperature:=(((CharsToSmallInt * 33000.0) / 1024.0) -5000.0) / 100.0; //; LRECDATA+14 Batt. raw 8 bit binary value Voltage:=(2.048 + (3.3 * CharToByte)/256.0); Read(InFile,ResultChar); //Position 15, unused spare, throw away. { Write record to logfile } Writeln(OutFile, FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"',LogTime) + //Date UTC FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"',dlheader.ptz.GMTToLocalTime(LogTime,DLHeaderForm.TZLocationBox.Text,subfix)) + //Date Local (calculated) FormatFloat('##0.0',Temperature,FPointSeparator) + ';' + //Temperature FormatFloat('0.00',Voltage,FPointSeparator) + ';' + //Voltage FormatFloat('#0.00',Darkness,FPointSeparator) //mpsas value ); end; CloseFile(InFile); except on E: EInOutError do begin MessageDlg('Error', 'File handling error occurred. Details: '+E.ClassName+'/'+E.Message, mtError, [mbOK],0); end; end; Flush(OutFile); CloseFile(OutFile); //Display file information SynMemo1.Clear; SynMemo1.Lines.Append('Retrieved ' + IntToStr(j)+' records: ' + '1 to ' + IntToStr(j) +' written to:'); SynMemo1.Lines.Append(Format('%s',[OutFileString])); //Display conversion time SynMemo1.Lines.Append(Format('Time to convert raw data: %.3f seconds.',[MilliSecondsBetween(Now,StartTime)/1000.])); end;//End of WriteAllowable check. end; //read in selected file //copy header lines mostly verbatim //get packetsize and packetnumber //convert date, temp, mpsas, voltage end; procedure TDLRetrieveForm.BlockClick(Sender: TObject); var ErrorReading:Boolean = False; j: LongInt=0; LogTime : TDateTime; NumberOfPackets: LongInt; OutString: String =''; RecordString: String =''; PacketLength: Integer; pieces: TStringList; ReadingLine: Boolean = True; result: String; ResultChar: Char; FirstChar:Byte; SS,MN,HH,DY,DT,MO,YY: String; StartTime: TDateTime; subfix: AnsiString; Temperature, Voltage, Darkness : Float; Vibration : SmallInt; Altitude:Double; Arx,Ary,Arz,Mrx,Mry,Mrz: SmallInt; //Raw accellereometer and magnetometer data from meter TriggerModeNumber: Integer; UTCDateString: String; StdFrequency: LongWord; SnowDarkness: Double; SnowFrequency: LongWord; function CharToHex():String; begin CharToHex:=IntToHex(Ord(chr(ser.RecvByte(1000))),2); end; function CharToHexLimit():String; begin CharToHexLimit:=IntToStr(StrToIntDef(IntToHex(Ord(chr(ser.RecvByte(1000))),2),0)); end; function CharsToLongInt():LongInt; //32 bit read in. Sign is maintained becauase LongInt is 32 bit. begin CharsToLongInt:=Ord(chr(ser.RecvByte(1000))); CharsToLongInt:=CharsToLongInt+Ord(chr(ser.RecvByte(1000)))*256; CharsToLongInt:=CharsToLongInt+Ord(chr(ser.RecvByte(1000)))*256**2; CharsToLongInt:=CharsToLongInt+Ord(chr(ser.RecvByte(1000)))*256**3; end; function CharsToLongWord():LongWord; //32 bit read in. Sign is maintained becauase LongInt is 32 bit. begin CharsToLongWord:=Ord(chr(ser.RecvByte(1000))); CharsToLongWord:=CharsToLongWord+Ord(chr(ser.RecvByte(1000)))*256; CharsToLongWord:=CharsToLongWord+Ord(chr(ser.RecvByte(1000)))*256**2; CharsToLongWord:=CharsToLongWord+Ord(chr(ser.RecvByte(1000)))*256**3; end; function CharsToSmallInt():SmallInt; //16 bit read in. Sign is maintained because SmallInt is 16 bit (-32768 to 32767). begin CharsToSmallInt:=Ord(chr(ser.RecvByte(1000))); CharsToSmallInt:=CharsToSmallInt+Ord(chr(ser.RecvByte(1000)))*256; end; function CharToByte():Byte; //8 bit read in. Unsigned. begin CharToByte:=byte(chr(ser.RecvByte(1000))); end; begin StartTime:=Now(); SynMemo1.Lines.Clear; StatusMessage('DL binary retrieve initiated.'); pieces := TStringList.Create; pieces.Delimiter := ','; SynMemo2.Clear; RecentFileEdit.Text:=''; { Warn if selected model is not capable of datalogging, this can happen if this window was started from the main menu instead of from the datalogging tab. } if not((SelectedModel=model_DL) or (SelectedModel=model_V)or (SelectedModel=model_DLS)) then begin MessageDlg('Select a datalogging meter',mtWarning, [mbOK],0); exit; end; { Check firmware version before proceeding. } if (StrToInt(SelectedFeature)<47) then begin MessageDlg('Upgrade the firmware to feature 45 or greater',mtWarning, [mbOK],0); exit; end; { Ensure that continuous logging mode has not been selected because it interferes with data retrieval on firmware less than feature 30. } result:=sendget('Lmx'); TriggerModeNumber:=StrToInt(AnsiMidStr(result,4,1)); { Warn user that retrieve cannot be done with certain firmwares and certain trigger modes. } if ( (StrToIntDef(SelectedFeature,0)<30) and ((TriggerModeNumber=1) or (TriggerModeNumber=2))) then begin Application.MessageBox('Cannot retrieve database while in continuous trigger mode.'+ sLineBreak+ 'Select trigger mode = Off,'+ sLineBreak+ ' or one of the "Every x on the hour" modes.', 'Busy logging, cannot retrieve!', MB_ICONEXCLAMATION) ; exit; end; // Check that header timezone information has been entered if ((Length(SelectedTZRegion)>0) and (Length(SelectedTZLocation)>0)) then begin DLCancelRetrieve:=False; //Get unit time for comparison try case SelectedModel of model_V: WriteDLHeader('DL-V-Log','DL-V binary retrieve'); //Vector model model_DL: WriteDLHeader('DL-Log','DL binary retrieve'); // Standard DL model model_DLS:WriteDLHeader('DL-Log','DLS binary retrieve'); // Snow DL model end; //Open file for appending records AssignFile(DLRecFile, LogFileName); Reset(DLRecFile); Append(DLRecFile); //Open file for appending SetTextLineEnding(DLRecFile, #13#10); OpenComm(); ser.SendString('L8x'); //Pull in first line which contains packet length, and number of packets. While (ReadingLine) do begin ResultChar:=chr(ser.RecvByte(2000)); if ResultChar=#10 then ReadingLine:=False; OutString:=OutString+ResultChar; end; pieces.DelimitedText:=OutString; PacketLength:=StrToInt(pieces.Strings[1]); NumberOfPackets:=StrToInt64(pieces.Strings[2]); StatusMessage(Format('%d Packets %d bytes long.',[NumberOfPackets, PacketLength])); { Read records from meter, and Write records to file.} for j:= 1 to NumberOfPackets do begin //Send request for second data packet and so on before they are sent. CommBusyTime:=0; //Reset count ser.SendString('x'); SynMemo1.Lines.Clear; SynMemo1.Lines.Append(Format('Retrieved record: %d / %d',[j, NumberOfPackets])); Application.ProcessMessages; //Pull in DL binary data FirstChar:=CharToByte; //Position 0, Indicates record details. SS:=CharToHex; //Position 1, Seconds. MN:=CharToHex; //Position 2, Minutes. HH:=CharToHex; //Position 3, Hours. DY:=CharToHex; //Position 4, Day. DT:=CharToHex; //Position 5, Date. MO:=CharToHex; //Position 6, Month. YY:=CharToHex; //Position 7, Year. UTCDateString:= YY+'-'+MO+'-'+DT+HH+':'+MN+':'+SS; try //Convert datestring to date for local time calculation LogTime:=ScanDateTime('yy-mm-ddhh:nn:ss',UTCDateString); except LogTime:=ScanDateTime('yy-mm-ddhh:nn:ss','00-00-0000:00:00'); end; //; LRECDATA+8-11 Rdg raw 32 bit binary value from CDMAGS Darkness:=StrToFloatDef(((Format('%.2f',[CharsToLongInt / 6553600.0]))),0); //; LRECDATA+12,13 Temp. raw 16 bit binary value Temperature:=(((CharsToSmallInt * 33000.0) / 1024.0) -5000.0) / 100.0; //; LRECDATA+14 Batt. raw 8 bit binary value Voltage:=(2.048 + (3.3 * CharToByte)/256.0); ResultChar:=chr(ser.RecvByte(1000)); //Position 15, unused spare, throw away. //Read Snow model data if (SelectedModel=model_DLS) then begin // LRECDATA+16-19 Frequency for non snow reading. (32 bit) StdFrequency:=CharsToLongWord; // LRECDATA+20-23 Rdg raw 32 bit binary value from CDMAGS for snow reading SnowDarkness:=StrToFloatDef(((Format('%.2f',[CharsToLongInt / 6553600.0]))),0); // LRECDATA+24-27 Frequency for now reading. (32 bit) SnowFrequency:=CharsToLongWord; // LRECDATA+28-31 Spare bytes. CharsToLongWord; //unused spare, throw away. end; //Read V model data if (SelectedModel=model_V) then begin ResultChar:=chr(ser.RecvByte(1000)); //Position 16, unused spare, throw away. ResultChar:=chr(ser.RecvByte(1000)); //Position 17, unused spare, throw away. //; Vibration XYZ max 16 bit binary value (2) LRECDATA+18 to 19 Vibration:=CharsToSmallInt(); Arx:=CharsToSmallInt();//Accel X Rdg raw 16 bit binary value (2) LRECDATA+20 to 21 Ary:=CharsToSmallInt();//Accel Y Rdg raw 16 bit binary value (2) LRECDATA+22 to 23 Arz:=CharsToSmallInt();//Accel Z Rdg raw 16 bit binary value (2) LRECDATA+24 to 25 Mrx:=CharsToSmallInt();//Mag X Rdg raw 16 bit binary value (2) LRECDATA+26 to 27 Mry:=CharsToSmallInt();//Mag X Rdg raw 16 bit binary value (2) LRECDATA+28 to 29 Mrz:=CharsToSmallInt();//Mag X Rdg raw 16 bit binary value (2) LRECDATA+30 to 31 Ax:= Arx * -1.0; Ay:= Ary; Az:= Arz; NormalizeAccel(); //Compute acceleration values (In the future, this may be done inside the PIC) //Altitude:=radtodeg(arcsin(-1.0*Ax1)); Altitude:=ComputeAltitude(Ax1, Ay1, Az1); // Mx:= Mrx; My:= Mry * -1.0; Mz:= Mrz * -1.0; NormalizeMag(); ComputeAzimuth(); Heading:=radtodeg(arctan2(-1*Mz2,Mx2))+180; end; //check for error in receiving If CompareStr(ser.LastErrorDesc,'OK')<>0 then begin StatusMessage('Error receiving data: '+ser.LastErrorDesc +' at record #: '+IntToStr(j)); ErrorReading:=True; Break; end; RecordString:= FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"',LogTime) + //Date UTC //FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"',dlheader.ptz.GMTToLocalTime(LogTime,DLHeaderForm.TZLocationBox.Text,subfix)) + //Date Local (calculated) FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"',dlheader.ptz.GMTToLocalTime(LogTime,SelectedTZLocation,subfix)) + //Date Local (calculated) FormatFloat('##0.0',Temperature,FPointSeparator) + ';' + //Temperature FormatFloat('0.00',Voltage,FPointSeparator) + ';' + //Voltage FormatFloat('#0.00',Darkness,FPointSeparator) //mpsas value ; { Write DL record to logfile } //Write(DLRecFile, // FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"',LogTime) + //Date UTC // FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"',dlheader.ptz.GMTToLocalTime(LogTime,DLHeaderForm.TZLocationBox.Text,subfix)) + //Date Local (calculated) // FormatFloat('##0.0',Temperature,FPointSeparator) + ';' + //Temperature // FormatFloat('0.00',Voltage,FPointSeparator) + ';' + //Voltage // FormatFloat('#0.00',Darkness,FPointSeparator) //mpsas value //); Write(DLRecFile,RecordString); { Write V record to logfile } if (SelectedModel=model_V) then begin Write(DLRecFile,Format(';%d;',[Arx]));//Acceleration X Write(DLRecFile,Format('%d;',[Ary]));//Acceleration Y Write(DLRecFile,Format('%d;',[Arz]));//Acceleration Z Write(DLRecFile,Format('%d;',[Mrx]));//Magnetic X Write(DLRecFile,Format('%d;',[Mry]));//Magnetic Y Write(DLRecFile,Format('%d;',[Mrz]));//Magnetic Z Write(DLRecFile,Format('%0.1f;',[Altitude])); //Altitude Write(DLRecFile,Format('%0.1f;',[abs(Altitude-90.0)])); //Zenith Write(DLRecFile,Format('%0.0f;',[Heading])); //Azimuth Write(DLRecFile,Format('%d',[Vibration]));//Vibration count end; if StrToInt(SelectedFeature)>=49 then begin //1st byte contains record type if ((FirstChar and %00010000) =0) then //Mask for initial/subsequent indicator Write(DLRecFile,';0') // Initial record else Write(DLRecFile,';1') // Subsequent record end; { Write Snow record to logfile } if (SelectedModel=model_DLS) then begin Write(DLRecFile, Format(';%u',[StdFrequency]) + ';' +//Standard Frequency FormatFloat('#0.00',SnowDarkness,FPointSeparator) + //mpsas value Format(';%u',[SnowFrequency]) //Snow Frequency ); end; Writeln(DLRecFile,''); //EOL Flush(DLRecFile); end; if ErrorReading then begin Writeln(DLRecFile,'There was an error reading meter: '+ser.LastErrorDesc); end else begin //Read EOF ReadingLine:=True; While (ReadingLine) do begin ResultChar:=chr(ser.RecvByte(1000)); if ResultChar=#10 then ReadingLine:=False; end; end; CloseComm; SynMemo1.Lines.Clear; if ErrorReading then begin SynMemo1.Lines.Append('>>> Error receiving data <<<'); SynMemo1.Lines.Append('Retrieved only ' + IntToStr(j)+' records of ' + IntToStr(NumberOfPackets) +' total. Written to:'); end else begin if DLCancelRetrieve then SynMemo1.Lines.Append('Partially retrieved ' + IntToStr(j)+' records: ' + '1 to ' + IntToStr(j-1) +' written to:') else SynMemo1.Lines.Append('Retrieved ' + IntToStr(j)+' records: ' + '1 to ' + IntToStr(NumberOfPackets) +' written to:'); end; RecentFileEdit.Text:=Format('%s',[LogFileName]); SynMemo1.Lines.Append(Format('%s',[LogFileName])); DLCancelRetrieve:=False; Flush(DLRecFile); CloseFile(DLRecFile); except StatusMessage('DLRetASCII: ERROR! IORESULT: ' + IntToStr(IOResult)+' at record #: '+IntToStr(j)); end; SynMemo1.Lines.Append(Format('Operation time: %.3f seconds.',[MilliSecondsBetween(Now,StartTime)/1000.])); end else ShowMessage('Enter Time zone information into Header first. '+ sLineBreak+ 'Do this by pressing the Header button, then selecting your timezone.'); end; procedure TDLRetrieveForm.LogsDirectoryEditChange(Sender: TObject); begin DLLogFileDirectory:=LogsDirectoryEdit.Text; ChangeLogsDirectory(); end; {Get logs directory change from user} procedure TDLRetrieveForm.ChangeLogsDirectory(); begin //Check validity of entered directory if DirectoryExists(DLLogFileDirectory) then begin //Assign setting, and remove warning appsettings.LogsDirectory:=RemoveMultiSlash(DLLogFileDirectory); LogsDirStatusLabel.Caption:=''; LogsDirectoryEdit.Text:=DLLogFileDirectory; vConfigurations.WriteString('Directories','LogsDirectory',DLLogFileDirectory); end else //Show warning LogsDirStatusLabel.Caption:='Directory does not exist!'; end; procedure TDLRetrieveForm.LogsDirectoryButtonClick(Sender: TObject); begin if (SelectDirectory('Select the directory to store the .dat file',LogsDirectoryEdit.Text, DLLogFileDirectory)) then ChangeLogsDirectory(); end; {Reset logs directory} procedure TDLRetrieveForm.ResetToLogsDirectoryButtonClick(Sender: TObject); begin appsettings.LogsDirectoryReset();//Reset LogsDirectoryEdit.Text:= RemoveMultiSlash(appsettings.LogsDirectory); //Update display vConfigurations.WriteString('Directories','LogsDirectory',appsettings.LogsDirectory); //Save setting end; procedure TDLRetrieveForm.MinMaxCheckBoxClick(Sender: TObject); begin //**** //MinMax:=MinMaxCheckBox.Checked; UpdateColourScheme(); If Int3D <> nil then begin Application.ProcessMessages; VectorMapUpdate(); end; end; procedure TDLRetrieveForm.RangeDatasetRadioClick(Sender: TObject); begin ManualEntryGroup.Visible:=False; RangeSource:=1; UpdateColourScheme(); VectorMapUpdate(); end; procedure TDLRetrieveForm.RangeSchemeRadioClick(Sender: TObject); begin ManualEntryGroup.Visible:=False; RangeSource:=0; UpdateColourScheme(); VectorMapUpdate(); end; procedure TDLRetrieveForm.RangeManualRadioClick(Sender: TObject); begin ManualEntryGroup.Visible:=True; RangeSource:=2; UpdateColourScheme(); VectorMapUpdate(); end; procedure TDLRetrieveForm.VectorChartAfterDraw(ASender: TChart; ADrawer: IChartDrawer ); begin if ShowGrid then DrawPolarAxes(VectorChart, 1.0, 0.1666666); end; procedure TDLRetrieveForm.ColourSchemeComboBoxChange(Sender: TObject); begin SelectedColourScheme:=ColourSchemeComboBox.Text; vConfigurations.WriteString('Plotter','ColourScheme',SelectedColourScheme); UpdateColourScheme(); end; { Update the colour scheme on the plot} type LegendColour = record Min, Max, Value:Float; R,G,B:Integer; end; procedure TDLRetrieveForm.UpdateColourScheme(); var LegendColours: array of LegendColour; WorkingColour: LegendColour; i:Integer = 0; //line counter //j:Integer = 0; //line counter pieces: TStringList; //delimited result from generic read tfIn: TextFile; s: string; BGRColour:Integer; PointValue:Float; //MPSAS:Float; m,b:Double; //slope and offset FilePath: String; procedure SlopeOffset(X1,Y1,X2,Y2 : double; VAR slope, offset : Double); begin slope:=(Y2-Y1)/(X2-X1); offset:=Y2-slope*X2; end; begin {Initialize} VectorChart.Visible:=False; LegendChart.Visible:=False; pieces := TStringList.Create; pieces.Delimiter := ';'; //Initially for determining UDM version pieces.StrictDelimiter := True; //Do not parse spaces RangeFromScheme.min:= 1e6; //Default high, to be set lower RangeFromScheme.max:= -1e6; //Default low, to be set higher {Read in colours from selected colour scheme file into array of value and colours} FilePath:= RemoveMultiSlash(DataDirectory + DirectorySeparator + SelectedColourScheme+'.ucld'); StatusMessage('UpdateColourScheme:'+FilePath); { Read the selected colour scheme } if FileExists(FilePath) then begin AssignFile(tfIn, FilePath); try reset(tfIn); // Open the file for reading // Keep reading lines until the end of the file is reached while not eof(tfIn) do begin readln(tfIn, s); if (not AnsiStartsStr('#',s)) then begin {Parse data into fields} pieces.DelimitedText := s; if pieces.Count=4 then begin SetLength(LegendColours,i+1); LegendColours[i].Value:=StrToFloatDef(pieces[0],0); LegendColours[i].R:=StrToIntDef(pieces[1],0); LegendColours[i].G:=StrToIntDef(pieces[2],0); LegendColours[i].B:=StrToIntDef(pieces[3],0); {Determine the Min/Max} RangeFromScheme.min:=Min(RangeFromScheme.min, LegendColours[i].Value); RangeFromScheme.max:=Max(RangeFromScheme.max, LegendColours[i].Value); Inc(i); end else begin StatusMessage('Looking for 4 columns, got '+IntToStr(pieces.Count)); exit; end; end; end; CloseFile(tfIn); // Done, so close the file. except on E: EInOutError do StatusMessage('Colour legend file handling error occurred. Details: '+ E.Message + 'On row:'+IntToStr(i)); end; {Scale the colour scheme values into the normalized array} {Determine slope and offset for +/- 1 range} StatusMessage(Format('range =%f b=%f',[ RangeFromScheme.min,RangeFromScheme.max])); SlopeOffset(RangeFromScheme.min, -1, RangeFromScheme.max, 1, m, b); StatusMessage(Format('m=%f b=%f',[ m, b])); {Normalize scale to +/-1 } for i:=1 to length(LegendColours) do begin LegendColours[i-1].Value:=LegendColours[i-1].Value*m+b; StatusMessage(Format('array[%d]=%f',[ i, LegendColours[i-1].Value])); end; {Scale the colour scheme from normalized to actual (scheme/dataset/entry)} case RangeSource of 0:SlopeOffset(-1,RangeFromScheme.min, 1,RangeFromScheme.max, m,b); 1:SlopeOffset(-1,RangeFromFile.min, 1,RangeFromFile.max, m,b); 2:SlopeOffset(-1,RangeFromUser.min, 1,RangeFromUser.max, m,b); end; {determine m,b for dataset ****} {determine m,b for manual entry ****} {Send all info to the legend and main chart. } PlotColourSource.Clear; LegendColourSource.Clear; for WorkingColour in LegendColours do begin {Convert rgb to bgr format} BGRColour:=WorkingColour.B*256*256 + WorkingColour.G*256 + WorkingColour.R; {Plot colours} //set ranges here in pointvalue //expand up from +/-1 to rangefrom_____ {Convert the actual value from desired range to normalized range of +/-1} PointValue:=WorkingColour.Value; {Put normalized mpsas values and associated colours into displayed chart source} PlotColourSource.Add(PointValue,0,'',BGRColour); {Legend colours. Slope and offset determined by range selection} LegendColourSource.Add(WorkingColour.Value*m+b,0,'',BGRColour); {Debug status of imported colour points} StatusMessage(Format('%f %f $%s',[ WorkingColour.Value, PointValue, IntToHex(BGRColour,6) ])); end; case RangeSource of 0: RangeToDisplay:=RangeFromScheme; 1: RangeToDisplay:=RangeFromFile; 2: RangeToDisplay:=RangeFromUser; end; {Draw endpoints in legend chart so that colours show up} LegendChartLineSeries.Clear; LegendChartLineSeries.AddXY(0.0,RangeToDisplay.min); LegendChartLineSeries.AddXY(0.0,RangeToDisplay.max); {Update legend ranges} LegendChart.AxisList[0].Range.Min:=RangeToDisplay.min; LegendChart.AxisList[0].Range.Max:=RangeToDisplay.max; {Update user entered ranges} //LegendMinEntry.Text:=FloatToStr(RangeToDisplay.min); //LegendMaxEntry.Text:=FloatToStr(RangeToDisplay.max); StatusMessage('Legend min/max='+FloatToStr(RangeToDisplay.min) + ' to '+FloatToStr(RangeToDisplay.max)); end; //End checking if file exists VectorMapUpdate(); VectorChart.Visible:=True; LegendChart.Visible:=True; if Assigned(pieces) then FreeAndNil(pieces); end; { Change Dataset between MPSA and MPSA_raw } procedure TDLRetrieveForm.DataSetSelectClick(Sender: TObject); begin VectorDataset:=DataSetSelect.ItemIndex; VectorPlotFile(); UpdateColourScheme(); VectorMapUpdate(); end; procedure TDLRetrieveForm.LegendMaxEntryEditingDone(Sender: TObject); var tmp: Double; begin If TryStrToFloat(LegendMaxEntry.Text,tmp,FPointSeparator) then begin RangeFromUser.max:=tmp; end; end; procedure TDLRetrieveForm.LegendMinEntryEditingDone(Sender: TObject); var tmp: Double; begin If TryStrToFloat(LegendMinEntry.Text,tmp,FPointSeparator) then begin RangeFromUser.min:=tmp; end; end; procedure TDLRetrieveForm.PlotterButtonClick(Sender: TObject); begin plotter.PlotterForm.ShowModal; end; procedure TDLRetrieveForm.DLRetrieveAllButtonClick(Sender: TObject); begin DLRetrieveRange(); StatusMessage('Retrieved all ASCII'); end; procedure TDLRetrieveForm.DLRetrieveRange(StartRecord:LongInt=1;EndRecord:LongInt=-1); var result: String; subfix: AnsiString; pieces: TStringList; LogTime : TDateTime; RecordString: String =''; Temperature, Voltage, Darkness : Float; TriggerModeNumber: Integer; DesiredPieces: Integer; RecordsRetrieved: Longint; Altitude:Double; StartTime: TDateTime; RecordType:Integer;//0=Initial, 1=Subsequent record type. SnowFieldExists:Boolean = False;//Snow field exists in record SnowField:Integer =-1;//Field of snow factor inside record begin {$IOCHECKS ON}//Turn IO checking on. StartTime:=Now(); RecordsRetrieved:= 0; DLCancelRetrieveButton.Enabled:=True; pieces := TStringList.Create; pieces.Delimiter := ','; SynMemo2.Clear; RecentFileEdit.Text:=''; //Warn if selected model is not capable of datalogging, this can happen if // this window was started from the main menu instead of from the datalogging // tab. if not((SelectedModel=model_DL) or (SelectedModel=model_V)or (SelectedModel=model_DLS)) then begin MessageDlg('Select a datalogging meter',mtWarning, [mbOK],0); exit; end; //Ensure that continuous logging mode has not been selected because it // interferes with data retrieval on firmware less than feature 30. result:=sendget('Lmx'); TriggerModeNumber:=StrToInt(AnsiMidStr(result,4,1)); //Warn user that retrieve cannot be done with certain firmwares // and certain trigger modes. if ( (StrToIntDef(SelectedFeature,0)<30) and ((TriggerModeNumber=1) or (TriggerModeNumber=2))) then begin Application.MessageBox('Cannot retrieve database while in continuous trigger mode.'+ sLineBreak+ 'Select trigger mode = Off,'+ sLineBreak+ ' or one of the "Every x on the hour" modes.', 'Busy logging, cannot retrieve!', MB_ICONEXCLAMATION) ; exit; end; {Check that header timezone information has been entered} if ((Length(SelectedTZRegion)>0) and (Length(SelectedTZLocation)>0)) then begin DLCancelRetrieve:=False; {Get unit time for comparison} try {Set the desired pieces to be seen when getting a record} { There are two extra pieces than normal since the date record is split up} case SelectedModel of model_V: Begin //Vector model DesiredPieces:=14; WriteDLHeader('DL-V-Log','DL Retrieve All') //Vector model end; model_DL: Begin //DL models DesiredPieces:=7; WriteDLHeader('DL-Log','DL Retrieve All');// Standard DL model end; model_DLS: Begin //DL models DesiredPieces:=7; WriteDLHeader('DL-Log','DLS Retrieve All');// Standard DL model end; end; // Feature 49 and above have extra first record indicator. if StrToInt(SelectedFeature)>=49 then Inc(DesiredPieces); //Define last record to get if not already defined in the procedure call. if EndRecord<0 then begin StatusMessage('DLRetrieveRange: End record was '+IntToStr(EndRecord)+', set to '+IntToStr(DLEStoredRecords)); EndRecord:=DLEStoredRecords; end; //Check start record if StartRecord<1 then begin StartRecord:=1; StatusMessage('DLRetrieveRange: Start record was '+IntToStr(StartRecord)+', set to 1.'); end; if StartRecord>=EndRecord then begin StatusMessage('DLRetrieveRange: Start record >= End record.'); end; //Open file for appending records AssignFile(DLRecFile, LogFileName); Reset(DLRecFile); Append(DLRecFile); //Open file for appending RecentFileEdit.Text:=Format('%s',[LogFileName]); SetTextLineEnding(DLRecFile, #13#10); for DLCurrentRecord:=StartRecord to EndRecord do begin if DLCancelRetrieve then begin StatusMessage('DL Retrieve cancelled.'); break; end; pieces.DelimitedText := sendget(Format('L4%010.10dx',[DLCurrentRecord-1]),False,3000,True,True); pieces.StrictDelimiter := False; //Parse spaces also because date is split up SynMemo1.Lines.Clear; if (pieces.Count>=DesiredPieces) then begin SynMemo1.Lines.Append(Format('Retrieved record: %d / %d',[DLCurrentRecord, EndRecord])); Application.ProcessMessages; { Pull in unit time for UTC/Local calculations. } try LogTime:=ScanDateTime('yy-mm-ddhh:nn:ss',pieces.Strings[1]+pieces.Strings[3]); except LogTime:=ScanDateTime('yy-mm-dd hh:nn:ss','01-01-01 01:01:01');//Record something anyway even if local date is messed up end; { Pull in values } Temperature:=StrToFloatDef(AnsiLeftStr(pieces.Strings[5],Length(pieces.Strings[5])-1),0,FPointSeparator); Voltage:=(2.048 + (3.3 * StrToFloatDef(pieces.Strings[6],0,FPointSeparator))/256.0); Darkness:=StrToFloatDef(pieces.Strings[4],0,FPointSeparator); RecordString:= FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"',LogTime) + //Date UTC //FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"',dlheader.ptz.GMTToLocalTime(LogTime,DLHeaderForm.TZLocationBox.Text,subfix)) + //Date Local (calculated) FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"',dlheader.ptz.GMTToLocalTime(LogTime,SelectedTZLocation,subfix)) + //Date Local (calculated) FormatFloat('##0.0',Temperature,FPointSeparator) + ';' + //Temperature FormatFloat('0.00',Voltage,FPointSeparator) + ';' + //Voltage FormatFloat('#0.00',Darkness,FPointSeparator) //mpsas value ; Write(DLRecFile,RecordString); if SelectedModel=model_V then begin try //StatusMessage('1'); Write(DLRecFile,Format(';%d;',[StrToIntDef(pieces.Strings[7],0)]));//Acceleration X Write(DLRecFile,Format('%d;',[StrToIntDef(pieces.Strings[8],0)]));//Acceleration Y Write(DLRecFile,Format('%d;',[StrToIntDef(pieces.Strings[9],0)]));//Acceleration Z Write(DLRecFile,Format('%d;',[StrToIntDef(pieces.Strings[10],0)]));//Magnetic X Write(DLRecFile,Format('%d;',[StrToIntDef(pieces.Strings[11],0)]));//Magnetic Y Write(DLRecFile,Format('%d;',[StrToIntDef(pieces.Strings[12],0)]));//Magnetic Z //StatusMessage('2'); Ax:= -1.0 * StrToFloatDef(pieces.Strings[7],0,FPointSeparator); Ay:= StrToFloatDef(pieces.Strings[8],0,FPointSeparator); Az:= StrToFloatDef(pieces.Strings[9],0,FPointSeparator); //StatusMessage('3'); NormalizeAccel(); //Compute acceleration values (In the future, this may be done inside the PIC) //Altitude:=radtodeg(arcsin(-1.0*Ax1)); Altitude:=ComputeAltitude(Ax1, Ay1, Az1); Write(DLRecFile,Format('%0.0f;',[Altitude])); Write(DLRecFile,Format('%0.0f;',[abs(Altitude-90.0)])); //StatusMessage('4'); // Mx:= StrToFloatDef(pieces.Strings[10],0,FPointSeparator); My:= -1.0 * StrToFloatDef(pieces.Strings[11],0,FPointSeparator); Mz:= -1.0 * StrToFloatDef(pieces.Strings[12],0,FPointSeparator); //StatusMessage('5'); NormalizeMag(); ComputeAzimuth(); Heading:=radtodeg(arctan2(-1*Mz2,Mx2))+180; Write(DLRecFile,Format('%0.0f;',[Heading])); Write(DLRecFile,Format('%d',[StrToIntDef(pieces.Strings[13],0)]));//Vibration count //StatusMessage('6'); if StrToInt(SelectedFeature)>=49 then //Last piece contains record type (Initial/subsequent) RecordType:=StrToIntDef(pieces.Strings[14],0); //StatusMessage('7'); //Snow factor for Vector model //Optional flag 0/1 indicates if snow factor exists in record. if ((StrToInt(SelectedFeature)>=66) and (pieces.Count>=16)) then begin StatusMessage('pieces.Strings[16]='+pieces.Strings[16]); case pieces.Strings[15] of '0': SnowFieldExists:=False; '1': begin SnowFieldExists:=True; SnowField:=16; end; end; end; //StatusMessage('8'); except StatusMessage('VectoryDLRetRangeASCII: ERROR! IORESULT: ' + IntToStr(IOResult) + ' Count:'+IntToStr(pieces.Count) +' ' + pieces.DelimitedText); end; end else begin if StrToInt(SelectedFeature)>=49 then begin//Last piece contains record type (Initial/subsequent) RecordType:=StrToIntDef(pieces.Strings[7],0); end; //Snow factor for standard datalogger model //Optional flag 0/1 indicates if snow factor exists in record. if SelectedModel=model_DLS then begin //if ((StrToInt(SelectedFeature)>=66) and (pieces.Count>=8)) then begin case pieces.Strings[8] of '0': SnowFieldExists:=False; '1': begin SnowFieldExists:=True; SnowField:=9; end; end; end; end; if StrToInt(SelectedFeature)>=49 then begin //1st byte contains record type if (RecordType=0) then //Check for initial/subsequent indicator Write(DLRecFile,';0') // Initial record else Write(DLRecFile,';1') // Subsequent record end; if SnowFieldExists then begin //Standard linear value. Write(DLRecFile,Format(';%u',[StrToDWordDef(pieces.Strings[SnowField],0)])); //Snow mpsas value. Write(DLRecFile,Format(';%4.2f',[StrToFloatDef(pieces.Strings[SnowField+1],0,FPointSeparator)])); //Snow linear value. Write(DLRecFile,Format(';%u',[StrToDWordDef(pieces.Strings[SnowField+2],0)])); end; writeln(DLRecFile,'');//Finish writing line to logfile Flush(DLRecFile); end else begin StatusMessage(Format('Failed: actual count = %d , desired count = %d ',[pieces.Count, DesiredPieces])); SynMemo1.Lines.Append(Format('Failed: actual count = %d , desired count = %d ',[pieces.Count, DesiredPieces])); //break; end; Inc(RecordsRetrieved); end; SynMemo1.Lines.Clear; if DLCancelRetrieve then SynMemo1.Lines.Append('Partially retrieved ' + IntToStr(RecordsRetrieved)+' records: ' + IntToStr(StartRecord) + ' to ' + IntToStr(DLCurrentRecord-1) +' written to:') else SynMemo1.Lines.Append('Retrieved ' + IntToStr(RecordsRetrieved)+' records: ' + IntToStr(StartRecord) + ' to ' + IntToStr(EndRecord) +' written to:'); SynMemo1.Lines.Append(Format('%s',[LogFileName])); DLCancelRetrieve:=False; Flush(DLRecFile); CloseFile(DLRecFile); except StatusMessage('DLRetRangeASCII: ERROR! IORESULT: ' + IntToStr(IOResult)); end; end else ShowMessage('Enter Time zone information into Header first. '+ sLineBreak+ 'Do this by pressing the Header button, then selecting your timezone.'); DLCancelRetrieveButton.Enabled:=False; SynMemo1.Lines.Append(Format('Time to retieve processed data: %.3f seconds.',[MilliSecondsBetween(Now,StartTime)/1000.])); end; procedure TDLRetrieveForm.VectorMapUpdate(); begin If Int3D <> nil then begin Int3D.zmin := RangeToDisplay.min; Int3D.zmax := RangeToDisplay.max; VectorChart.Invalidate; if FileExists(OpenDialog1.FileName) then VectorPlotFile(); end; end; procedure TDLRetrieveForm.ResetRangeButtonClick(Sender: TObject); begin {Set the legend range according to the min/max of the colour scheme.} RangeToDisplay:=RangeFromScheme; MinMax:=False; //MinMaxCheckBox.Checked:=False; **** LegendMinEntry.Text:=FloatToStr(RangeToDisplay.min); LegendMaxEntry.Text:=FloatToStr(RangeToDisplay.max); UpdateColourScheme(); Application.ProcessMessages; If Int3D <> nil then begin VectorMapUpdate(); end; end; procedure TDLRetrieveForm.ExportButtonClick(Sender: TObject); begin SaveChart('png'); end; procedure TDLRetrieveForm.SaveChart(FileType:String); var fs: TFileStream; id: IChartDrawer; fn: String; // Filename AllowFlag:Boolean=false; //Allow writing file MessageString:String; begin { Save to same location as log file was retrieved from. Filename resembles chart title.} fn:=RemoveMultiSlash( ExtractFileDir(VectorPlotFilename) + DirectorySeparator+ ExtractFileNameOnly(VectorPlotFilename)+ '.'+ FileType ); try {Check that file does not already exist.} if FileExists(fn) then begin MessageString:=fn+ ' exists!'; StatusMessage(MessageString); case QuestionDlg('Plot image file exists',MessageString,mtCustom,[mrOK,'Overwrite',mrCancel,'Cancel'],'') of mrOK: begin AllowFlag:=True; //User allowed overwriting file. StatusMessage('Plot image file ('+fn+') exists, user allowed overwriting.'); end; mrCancel: begin StatusMessage('Plot image file ('+fn+') exists already, user cancelled overwrite.'); end; end; end else AllowFlag:=True; //File did not exist, allow writing. if AllowFlag then begin { Write file. } case FileType of 'svg': begin fs := TFileStream.Create(fn, fmCreate); try id := TSVGDrawer.Create(fs, true); with DLRetrieveForm.VectorChart do Draw(id, Rect(0, 0, Width, Height)); finally fs.Free; end; end; 'png': DLRetrieveForm.VectorChart.SaveToFile(TPortableNetworkGraphic, fn); end; { Indicate where plot file got saved } MessageDlg('Vector plot file saved','The image has been saved to:'+sLineBreak+fn,mtInformation,[mbOK],''); end; except MessageDlg('Error','Problem saving file: '+sLineBreak+fn,mtInformation,[mbOK],''); end; end; procedure TDLRetrieveForm.FormCreate(Sender: TObject); begin {Set up font} SynMemo1.Font.Name:=FixedFont; {Initialize the start and end range for retrieving} RangeStart.Text:='1'; RangeEnd.Text:= '-1'; {Always start with displaying the "Text" page} PageControl1.PageIndex:=0; { Restore plotter settings} ShowDots:=vConfigurations.ReadBool('Plotter','ShowDots',True); ShowLines:=vConfigurations.ReadBool('Plotter','ShowLines',False); ShowGrid:=vConfigurations.ReadBool('Plotter','ShowGrid',True); ShowDotsCheckBox.Checked:=ShowDots; ShowLinesCheckBox.Checked:=ShowLines; ShowGridCheckBox.Checked:=ShowGrid; Orientation:=StrToIntDef(vConfigurations.ReadString('Plotter','Orientation','0'),0); OrientationSelect.ItemIndex:=Orientation; if ShowGrid then PreparePolarAxes(VectorChart, 1.0); end; procedure TDLRetrieveForm.FormShow(Sender: TObject); begin //Resize for small screens if DLRetrieveForm.Width>Screen.Width then DLRetrieveForm.Width:=Screen.Width; if DLRetrieveForm.Height>Screen.Height then DLRetrieveForm.Height:=Screen.Height; if DLRetrieveForm.Left<0 then DLRetrieveForm.Left:=0; if DLRetrieveForm.Top<0 then DLRetrieveForm.Top:=0; //FileDirectoryEdit.Text:=Format('%s%',[appsettings.LogsDirectory + DirectorySeparator]); LogsDirectoryEdit.Text:= RemoveMultiSlash(Format('%s%',[appsettings.LogsDirectory + DirectorySeparator])); //Determine if vector plot can be shown if (SelectedModel<>model_V) and (not VectorPlotOverride) then PageControl1.Pages[1].TabVisible:=False; //Show how many records can be retreived MaxRecordsLabel.Caption:='['+IntToStr(DLEStoredRecords)+' max]'; end; procedure TDLRetrieveForm.OpenAnotherFileButtonClick(Sender: TObject); var Filename: String; begin OpenDialog1.InitialDir:=appsettings.LogsDirectory; OpenDialog1.Execute; Filename:=OpenDialog1.FileName; RecentFileEdit.Text:=Filename; if FileExists(Filename) then SynMemo2.Lines.LoadFromFile(Filename) else begin SynMemo2.Clear; SynMemo2.Lines.Append('File:'); SynMemo2.Lines.Append(format(' %s',[Filename])); SynMemo2.Lines.Append('does not exist!'); end; end; procedure TDLRetrieveForm.OpenDirectoryButtonClick(Sender: TObject); begin OpenDialog1.InitialDir := appsettings.LogsDirectory; if OpenDialog1.Execute then begin{ TODO : file viewer form2, make something new maybe. } SynMemo2.Lines.LoadFromFile(OpenDialog1.Filename); //Form2.Memo1.Lines.LoadFromFile(OpenDialog1.Filename); //Form2.Show; end; end; procedure TDLRetrieveForm.OpenRecentFileButtonClick(Sender: TObject); var RecentFilname: String; begin RecentFilname:=RecentFileEdit.Text; if FileExists(RecentFilname) then SynMemo2.Lines.LoadFromFile(RecentFilname) else begin SynMemo2.Clear; SynMemo2.Lines.Append('File:'); SynMemo2.Lines.Append(format(' %s',[RecentFilname])); SynMemo2.Lines.Append('does not exist!'); end; end; procedure TDLRetrieveForm.ShowDotsCheckBoxChange(Sender: TObject); begin //Show hourglass cursor while changing display. ShowDots:=ShowDotsCheckBox.Checked; HourGlass(); vConfigurations.WriteBool('Plotter','ShowDots',ShowDots); DotsLinesUpdate(); end; procedure TDLRetrieveForm.ShowGridCheckBoxChange(Sender: TObject); begin VectorChart.Visible:=False; HourGlass(); ShowGrid:=ShowGridCheckBox.Checked; vConfigurations.WriteBool('Plotter','ShowGrid',ShowGrid); VectorChart.Visible:=True; //VectorMapUpdate(); end; procedure TDLRetrieveForm.ShowLinesCheckBoxChange(Sender: TObject); begin //Show hourglass cursor while changing display. HourGlass(); ShowLines:=ShowLinesCheckBox.Checked; vConfigurations.WriteBool('Plotter','ShowLines',ShowLines); DotsLinesUpdate(); end; {Update colour scheme file list} procedure TDLRetrieveForm.UpdateColourSchemeFileList(); var FileName, FileNameOnly, FilePath, FileDate : string; sr : TSearchRec; i: integer=0; begin Application.ProcessMessages; ColourSchemeComboBox.Clear; FilePath := ExtractFilePath(DataDirectory + DirectorySeparator); {Check if any files match criteria} StatusMessage('Looking for colour .ucld files here: '+FilePath+'*.ucld'); if FindFirstUTF8(FilePath+'*.ucld',faAnyFile,sr)=0 then repeat {Get formatted file properties} FileName := ExtractFileName(sr.Name); FileNameOnly := ExtractFileNameOnly(sr.Name); {Display found filename and timestamp} StatusMessage( inttostr(i)+FileName); ColourSchemeComboBox.items.Add(FileNameOnly); {Prepare for next file display} Inc(i); until FindNextUTF8(sr)<>0; FindCloseUTF8(sr); SelectedColourScheme:=vConfigurations.ReadString('Plotter','ColourScheme','default'); ColourSchemeComboBox.Text:=SelectedColourScheme; { Update colour scheme in plot. } UpdateColourScheme(); end; procedure TDLRetrieveForm.TabSheet2Show(Sender: TObject); begin {Update colour scheme file list} UpdateColourSchemeFileList(); end; procedure TDLRetrieveForm.UpdateButtonClick(Sender: TObject); var tmp: Double; begin If TryStrToFloat(LegendMinEntry.Text,tmp,FPointSeparator) then begin RangeFromUser.min:=tmp; end; If TryStrToFloat(LegendMaxEntry.Text,tmp,FPointSeparator) then begin RangeFromUser.max:=tmp; end; UpdateColourScheme(); VectorMapUpdate(); end; procedure TDLRetrieveForm.DotsLinesUpdate(); begin //Dots only = black ring with red dot in center for higher visibility if not ShowDots and not ShowLines then begin VectorChartLineSeries1.Pointer.Visible := False; VectorChartLineSeries2.LinePen.Style:=psClear; VectorChartLineSeries2.LinePen.Mode:=pmNop; VectorChartLineSeries2.LineType:=ltNone; end; if not ShowDots and ShowLines then begin VectorChartLineSeries1.Pointer.Visible := False; VectorChartLineSeries2.LinePen.Style:=psSolid; VectorChartLineSeries2.LinePen.Mode:=pmCopy; VectorChartLineSeries2.LineType:=ltFromPrevious; end; if ShowDots and not ShowLines then begin VectorChartLineSeries1.Pointer.Visible := True; VectorChartLineSeries2.LinePen.Style:=psClear; VectorChartLineSeries2.LinePen.Mode:=pmCopy; end; if ShowDots and ShowLines then begin VectorChartLineSeries1.Pointer.Visible := True; VectorChartLineSeries2.LinePen.Style:=psSolid; VectorChartLineSeries2.LinePen.Mode:=pmCopy; VectorChartLineSeries2.LineType:=ltFromPrevious; end; end; procedure TDLRetrieveForm.HourGlass(); begin //Show hourglass cursor. HourGlassTimeout:=0; CalculatingText.Visible:=True; CalculatingProgressBar.Visible:=True; end; initialization {$I dlretrieve.lrs} Finalization end. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./logcont.lrs���������������������������������������������������������������������������������������0000644�0001750�0001750�00000455615�14576573022�013357� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ This is an automatically generated lazarus resource file } LazarusResources.Add('TFormLogCont','FORMDATA',[ 'TPF0'#12'TFormLogCont'#11'FormLogCont'#4'Left'#3#14#9#6'Height'#3#139#2#3'To' +'p'#2'x'#5'Width'#3#232#3#13'ActiveControl'#7#13'PairSplitter1'#7'Caption'#6 +#16'Log Continuously'#12'ClientHeight'#3#139#2#11'ClientWidth'#3#232#3#21'Co' +'nstraints.MinHeight'#3#3#2#20'Constraints.MinWidth'#3#232#3#10'KeyPreview'#9 +#7'OnClose'#7#9'FormClose'#8'OnCreate'#7#10'FormCreate'#7'OnKeyUp'#7#9'FormK' +'eyUp'#8'OnResize'#7#10'FormResize'#6'OnShow'#7#8'FormShow'#8'Position'#7#14 +'poScreenCenter'#13'ShowInTaskBar'#7#8'stAlways'#10'LCLVersion'#6#7'3.2.0.0' +#0#13'TPairSplitter'#13'PairSplitter1'#22'AnchorSideLeft.Control'#7#5'Owner' +#21'AnchorSideTop.Control'#7#5'Owner'#23'AnchorSideRight.Control'#7#5'Owner' +#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#5'Ow' +'ner'#21'AnchorSideBottom.Side'#7#9'asrBottom'#6'Cursor'#7#8'crVSplit'#4'Lef' +'t'#2#0#6'Height'#3#139#2#3'Top'#2#0#5'Width'#3#232#3#7'Anchors'#11#5'akTop' +#6'akLeft'#7'akRight'#8'akBottom'#0#14'ParentShowHint'#8#8'Position'#3#23#1 +#12'SplitterType'#7#11'pstVertical'#0#17'TPairSplitterSide'#15'PairSplitterT' +'op'#6'Cursor'#7#7'crArrow'#4'Left'#2#0#6'Height'#3#23#1#3'Top'#2#0#5'Width' +#3#232#3#11'ClientWidth'#3#232#3#12'ClientHeight'#3#23#1#21'Constraints.MinH' +'eight'#3#21#1#8'OnResize'#7#21'PairSplitterTopResize'#0#12'TPageControl'#12 +'PageControl1'#22'AnchorSideLeft.Control'#7#15'PairSplitterTop'#21'AnchorSid' +'eTop.Control'#7#15'PairSplitterTop'#23'AnchorSideRight.Control'#7#15'PairSp' +'litterTop'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Cont' +'rol'#7#15'PairSplitterTop'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left' +#2#2#6'Height'#3#21#1#3'Top'#2#2#5'Width'#3#228#3#10'ActivePage'#7#20'Transf' +'erFileTabSheet'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#18 +'BorderSpacing.Left'#2#2#17'BorderSpacing.Top'#2#2#19'BorderSpacing.Right'#2 +#2#8'TabIndex'#2#4#8'TabOrder'#2#0#0#9'TTabSheet'#12'TriggerSheet'#7'Caption' +#6#7'Trigger'#12'ClientHeight'#3#244#0#11'ClientWidth'#3#218#3#0#9'TGroupBox' +#14'FrequencyGroup'#22'AnchorSideLeft.Control'#7#12'TriggerSheet'#21'AnchorS' +'ideTop.Control'#7#12'TriggerSheet'#24'AnchorSideBottom.Control'#7#12'Trigge' +'rSheet'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#2#6'Height'#3#242 +#0#3'Top'#2#2#5'Width'#3#234#0#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0 +#18'BorderSpacing.Left'#2#2#17'BorderSpacing.Top'#2#2#7'Caption'#6#10'Freque' +'ncy:'#12'ClientHeight'#3#222#0#11'ClientWidth'#3#232#0#11'ParentColor'#8#8 +'TabOrder'#2#0#0#12'TRadioButton'#12'RadioButton1'#22'AnchorSideLeft.Control' +#7#14'FrequencyGroup'#21'AnchorSideTop.Control'#7#17'LCTrigSecondsSpin'#18'A' +'nchorSideTop.Side'#7#9'asrCenter'#4'Left'#2#0#6'Height'#2#23#3'Top'#2#10#5 +'Width'#2'='#7'Caption'#6#5'Every'#7'Checked'#9#8'TabOrder'#2#0#7'TabStop'#9 +#7'OnClick'#7#17'RadioButton1Click'#0#0#9'TSpinEdit'#17'LCTrigSecondsSpin'#22 +'AnchorSideLeft.Control'#7#12'RadioButton1'#19'AnchorSideLeft.Side'#7#9'asrB' +'ottom'#21'AnchorSideTop.Control'#7#14'FrequencyGroup'#4'Left'#2'A'#6'Height' +#2'$'#4'Hint'#6#22'Press Enter when done.'#3'Top'#2#3#5'Width'#2':'#9'Alignm' +'ent'#7#8'taCenter'#18'BorderSpacing.Left'#2#4#17'BorderSpacing.Top'#2#3#8'M' +'axValue'#3#255#0#8'MinValue'#2#1#8'OnChange'#7#23'LCTrigSecondsSpinChange'#8 +'TabOrder'#2#1#5'Value'#2#1#0#0#6'TLabel'#12'SecondsLabel'#22'AnchorSideLeft' +'.Control'#7#17'LCTrigSecondsSpin'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21 +'AnchorSideTop.Control'#7#17'LCTrigSecondsSpin'#18'AnchorSideTop.Side'#7#9'a' +'srCenter'#4'Left'#2'~'#6'Height'#2#19#3'Top'#2#12#5'Width'#2'2'#18'BorderSp' +'acing.Left'#2#3#7'Caption'#6#7'seconds'#11'ParentColor'#8#0#0#9'TSpinEdit' +#17'LCTrigMinutesSpin'#22'AnchorSideLeft.Control'#7#12'RadioButton2'#19'Anch' +'orSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#17'LCTrigSecond' +'sSpin'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2'A'#6'Height'#2'$'#4 +'Hint'#6#22'Press Enter when done.'#3'Top'#2'.'#5'Width'#2':'#9'Alignment'#7 +#8'taCenter'#18'BorderSpacing.Left'#2#4#17'BorderSpacing.Top'#2#7#8'MaxValue' +#3#255#0#8'MinValue'#2#1#8'OnChange'#7#23'LCTrigMinutesSpinChange'#8'TabOrde' +'r'#2#2#5'Value'#2#1#0#0#6'TLabel'#12'MinutesLabel'#22'AnchorSideLeft.Contro' +'l'#7#17'LCTrigMinutesSpin'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'Anchor' +'SideTop.Control'#7#17'LCTrigMinutesSpin'#18'AnchorSideTop.Side'#7#9'asrCent' +'er'#4'Left'#2'~'#6'Height'#2#19#3'Top'#2'7'#5'Width'#2'2'#18'BorderSpacing.' +'Left'#2#3#7'Caption'#6#7'minutes'#11'ParentColor'#8#0#0#12'TRadioButton'#12 +'RadioButton2'#22'AnchorSideLeft.Control'#7#12'RadioButton1'#21'AnchorSideTo' +'p.Control'#7#17'LCTrigMinutesSpin'#18'AnchorSideTop.Side'#7#9'asrCenter'#4 +'Left'#2#0#6'Height'#2#23#3'Top'#2'5'#5'Width'#2'='#7'Caption'#6#5'Every'#8 +'TabOrder'#2#3#7'OnClick'#7#17'RadioButton1Click'#0#0#12'TRadioButton'#12'Ra' +'dioButton3'#22'AnchorSideLeft.Control'#7#12'RadioButton1'#21'AnchorSideTop.' +'Control'#7#17'LCTrigMinutesSpin'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Le' ,'ft'#2#0#6'Height'#2#23#3'Top'#2'T'#5'Width'#3#209#0#17'BorderSpacing.Top'#2 +#2#7'Caption'#6#28'Every 1 minute on the minute'#8'TabOrder'#2#4#7'OnClick'#7 +#17'RadioButton1Click'#0#0#12'TRadioButton'#12'RadioButton4'#22'AnchorSideLe' +'ft.Control'#7#12'RadioButton1'#21'AnchorSideTop.Control'#7#12'RadioButton3' +#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#2#23#3'Top'#2'k' +#5'Width'#3#203#0#7'Caption'#6#28'Every 5 min on the 1/12th hr'#8'TabOrder'#2 +#5#7'OnClick'#7#17'RadioButton1Click'#0#0#12'TRadioButton'#12'RadioButton5' +#22'AnchorSideLeft.Control'#7#12'RadioButton1'#21'AnchorSideTop.Control'#7#12 +'RadioButton4'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#2 +#23#3'Top'#3#130#0#5'Width'#3#203#0#7'Caption'#6#28'Every 10 min on the 1/6t' +'h hr'#8'TabOrder'#2#6#7'OnClick'#7#17'RadioButton1Click'#0#0#12'TRadioButto' +'n'#12'RadioButton6'#22'AnchorSideLeft.Control'#7#12'RadioButton1'#21'Anchor' +'SideTop.Control'#7#12'RadioButton5'#18'AnchorSideTop.Side'#7#9'asrBottom'#4 +'Left'#2#0#6'Height'#2#23#3'Top'#3#153#0#5'Width'#3#190#0#7'Caption'#6#26'Ev' +'ery 15 min on the 1/4 hr'#8'TabOrder'#2#7#7'OnClick'#7#17'RadioButton1Click' +#0#0#12'TRadioButton'#12'RadioButton7'#22'AnchorSideLeft.Control'#7#12'Radio' +'Button1'#21'AnchorSideTop.Control'#7#12'RadioButton6'#18'AnchorSideTop.Side' +#7#9'asrBottom'#4'Left'#2#0#6'Height'#2#23#3'Top'#3#176#0#5'Width'#3#193#0#7 +'Caption'#6#27'Every 30 min on the 1/2 hr'#8'TabOrder'#2#8#7'OnClick'#7#17 +'RadioButton1Click'#0#0#12'TRadioButton'#12'RadioButton8'#22'AnchorSideLeft.' +'Control'#7#12'RadioButton1'#21'AnchorSideTop.Control'#7#12'RadioButton7'#18 +'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#2#23#3'Top'#3#199#0 +#5'Width'#3#170#0#7'Caption'#6#22'Every hour on the hour'#8'TabOrder'#2#9#7 +'OnClick'#7#17'RadioButton1Click'#0#0#0#9'TGroupBox'#14'StartStopGroup'#22'A' +'nchorSideLeft.Control'#7#14'FrequencyGroup'#19'AnchorSideLeft.Side'#7#9'asr' +'Bottom'#21'AnchorSideTop.Control'#7#12'TriggerSheet'#23'AnchorSideRight.Con' +'trol'#7#12'TriggerSheet'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorS' +'ideBottom.Control'#7#12'TriggerSheet'#21'AnchorSideBottom.Side'#7#9'asrBott' +'om'#4'Left'#3'0'#2#6'Height'#3#240#0#3'Top'#2#2#5'Width'#3#170#1#7'Anchors' +#11#5'akTop'#7'akRight'#8'akBottom'#0#18'BorderSpacing.Left'#2#2#17'BorderSp' +'acing.Top'#2#2#20'BorderSpacing.Bottom'#2#2#12'ClientHeight'#3#238#0#11'Cli' +'entWidth'#3#168#1#8'TabOrder'#2#1#7'Visible'#8#0#9'TCheckBox'#13'checkNowSt' +'art'#21'AnchorSideTop.Control'#7#10'StartLabel'#18'AnchorSideTop.Side'#7#9 +'asrBottom'#23'AnchorSideRight.Control'#7#10'StartLabel'#20'AnchorSideRight.' +'Side'#7#9'asrBottom'#4'Left'#3#132#0#6'Height'#2#23#3'Top'#2#19#5'Width'#2 +#23#7'Anchors'#11#5'akTop'#7'akRight'#0#8'TabOrder'#2#0#7'OnClick'#7#18'chec' +'kNowStartClick'#0#0#6'TLabel'#10'StartLabel'#21'AnchorSideTop.Control'#7#14 +'StartStopGroup'#4'Left'#2'z'#6'Height'#2#19#3'Top'#2#0#5'Width'#2'!'#7'Anch' +'ors'#11#5'akTop'#0#7'Caption'#6#6'Start '#11'ParentColor'#8#10'ParentFont'#8 +#0#0#6'TLabel'#9'StopLabel'#21'AnchorSideTop.Control'#7#14'StartStopGroup'#4 +'Left'#3#142#0#6'Height'#2#19#3'Top'#2#0#5'Width'#2#31#7'Anchors'#11#5'akTop' +#0#7'Caption'#6#5' Stop'#11'ParentColor'#8#0#0#9'TCheckBox'#12'checkSRStart' +#23'AnchorSideRight.Control'#7#10'StartLabel'#20'AnchorSideRight.Side'#7#9'a' +'srBottom'#4'Left'#3#132#0#6'Height'#2#23#3'Top'#3#24#1#5'Width'#2#23#7'Anch' +'ors'#11#7'akRight'#0#8'TabOrder'#2#1#7'OnClick'#7#18'checkMTAStartClick'#0#0 +#9'TCheckBox'#13'checkMTAStart'#21'AnchorSideTop.Control'#7#13'checkNowStart' +#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#10'Star' +'tLabel'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#132#0#6'Height'#2 +#23#3'Top'#2'*'#5'Width'#2#23#7'Anchors'#11#5'akTop'#7'akRight'#0#14'ParentB' +'idiMode'#8#8'TabOrder'#2#2#7'OnClick'#7#18'checkMTAStartClick'#0#0#6'TLabel' +#6'Label3'#21'AnchorSideTop.Control'#7#13'checkNowStart'#23'AnchorSideRight.' +'Control'#7#13'checkNowStart'#4'Left'#2'h'#6'Height'#2#19#3'Top'#2#19#5'Widt' +'h'#2#28#7'Anchors'#11#5'akTop'#7'akRight'#0#7'Caption'#6#3'Now'#11'ParentCo' +'lor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label5'#4'Left'#2'`'#6'Height'#2#19 +#3'Top'#3#26#1#5'Width'#2'.'#7'Anchors'#11#0#7'Caption'#6#7'Sunrise'#11'Pare' +'ntColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label6'#21'AnchorSideTop.Contro' +'l'#7#13'checkMTAStart'#23'AnchorSideRight.Control'#7#13'checkMTAStart'#4'Le' +'ft'#2#204#6'Height'#2#19#3'Top'#2'*'#5'Width'#3#184#0#7'Anchors'#11#5'akTop' +#7'akRight'#0#7'Caption'#6#29'Astronomical morning twilight'#11'ParentColor' +#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label7'#21'AnchorSideTop.Control'#7#13'c' +'heckMTNStart'#23'AnchorSideRight.Control'#7#13'checkMTNStart'#4'Left'#2#235 +#6'Height'#2#19#3'Top'#2'A'#5'Width'#3#153#0#7'Anchors'#11#5'akTop'#7'akRigh' +'t'#0#7'Caption'#6#25'Nautical morning twilight'#11'ParentColor'#8#10'Parent' +'Font'#8#0#0#6'TLabel'#6'Label8'#4'Left'#2#26#6'Height'#2#19#3'Top'#3#233#0#5 ,'Width'#3#128#0#7'Anchors'#11#0#7'Caption'#6#22'Civil morning twilight'#11'P' +'arentColor'#8#10'ParentFont'#8#0#0#9'TCheckBox'#13'checkMTNStart'#21'Anchor' +'SideTop.Control'#7#13'checkMTAStart'#18'AnchorSideTop.Side'#7#9'asrBottom' +#23'AnchorSideRight.Control'#7#10'StartLabel'#20'AnchorSideRight.Side'#7#9'a' +'srBottom'#4'Left'#3#132#0#6'Height'#2#23#3'Top'#2'A'#5'Width'#2#23#7'Anchor' +'s'#11#5'akTop'#7'akRight'#0#14'ParentBidiMode'#8#8'TabOrder'#2#3#7'OnClick' +#7#18'checkMTAStartClick'#0#0#9'TCheckBox'#13'checkMTCStart'#23'AnchorSideRi' +'ght.Control'#7#10'StartLabel'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Lef' +'t'#3#132#0#6'Height'#2#23#3'Top'#3#235#0#5'Width'#2#23#7'Anchors'#11#7'akRi' +'ght'#0#14'ParentBidiMode'#8#8'TabOrder'#2#4#7'OnClick'#7#18'checkMTAStartCl' +'ick'#0#0#9'TCheckBox'#13'checkETCStart'#23'AnchorSideRight.Control'#7#10'St' +'artLabel'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#132#0#6'Height' +#2#23#3'Top'#3#147#1#5'Width'#2#23#7'Anchors'#11#7'akRight'#0#14'ParentBidiM' +'ode'#8#8'TabOrder'#2#5#7'OnClick'#7#18'checkMTAStartClick'#0#0#9'TCheckBox' +#13'checkETNStart'#23'AnchorSideRight.Control'#7#10'StartLabel'#20'AnchorSid' +'eRight.Side'#7#9'asrBottom'#4'Left'#3#132#0#6'Height'#2#23#3'Top'#3#208#1#5 +'Width'#2#23#7'Anchors'#11#7'akRight'#0#14'ParentBidiMode'#8#8'TabOrder'#2#6 +#7'OnClick'#7#18'checkMTAStartClick'#0#0#9'TCheckBox'#13'checkETAStart'#23'A' +'nchorSideRight.Control'#7#10'StartLabel'#20'AnchorSideRight.Side'#7#9'asrBo' +'ttom'#4'Left'#3#132#0#6'Height'#2#23#3'Top'#3' '#2#5'Width'#2#23#7'Anchors' +#11#7'akRight'#0#14'ParentBidiMode'#8#8'TabOrder'#2#7#7'OnClick'#7#18'checkM' +'TAStartClick'#0#0#9'TCheckBox'#12'checkSSStart'#23'AnchorSideRight.Control' +#7#10'StartLabel'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#132#0#6 +'Height'#2#23#3'Top'#3'J'#1#5'Width'#2#23#7'Anchors'#11#7'akRight'#0#14'Pare' +'ntBidiMode'#8#8'TabOrder'#2#8#7'OnClick'#7#18'checkMTAStartClick'#0#0#6'TLa' +'bel'#6'Label9'#4'Left'#2#29#6'Height'#2#19#3'Top'#3#149#1#5'Width'#2'|'#7'A' +'nchors'#11#0#7'Caption'#6#22'Civil evening twilight'#11'ParentColor'#8#0#0#6 +'TLabel'#7'Label10'#4'Left'#2#8#6'Height'#2#19#3'Top'#3#210#1#5'Width'#3#149 +#0#7'Anchors'#11#0#7'Caption'#6#25'Nautical evening twilight'#11'ParentColor' +#8#0#0#6'TLabel'#7'Label11'#4'Left'#2#246#6'Height'#2#19#3'Top'#3'"'#2#5'Wid' +'th'#3#180#0#7'Anchors'#11#0#7'Caption'#6#29'Astronomical evening twilight' +#11'ParentColor'#8#0#0#6'TLabel'#7'Label12'#4'Left'#2'c'#6'Height'#2#19#3'To' +'p'#3'L'#1#5'Width'#2'*'#7'Anchors'#11#0#7'Caption'#6#6'Sunset'#11'ParentCol' +'or'#8#0#0#6'TLabel'#7'Label13'#4'Left'#3#152#0#6'Height'#2#19#3'Top'#3'P'#2 +#5'Width'#2'&'#7'Anchors'#11#0#7'Caption'#6#5'Never'#11'ParentColor'#8#0#0#9 +'TCheckBox'#14'checkNeverStop'#22'AnchorSideLeft.Control'#7#9'StopLabel'#4'L' +'eft'#3#142#0#6'Height'#2#23#3'Top'#3'N'#2#5'Width'#2#23#7'Anchors'#11#6'akL' +'eft'#0#8'TabOrder'#2#9#7'OnClick'#7#19'checkNeverStopClick'#0#0#9'TCheckBox' +#11'checkSRStop'#22'AnchorSideLeft.Control'#7#9'StopLabel'#4'Left'#3#142#0#6 +'Height'#2#23#3'Top'#3#24#1#5'Width'#2#23#7'Anchors'#11#6'akLeft'#0#8'TabOrd' +'er'#2#10#7'OnClick'#7#17'checkMTAStopClick'#0#0#9'TCheckBox'#12'checkMTASto' +'p'#22'AnchorSideLeft.Control'#7#9'StopLabel'#21'AnchorSideTop.Control'#7#13 +'checkMTAStart'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#142#0#6'He' +'ight'#2#23#3'Top'#2'*'#5'Width'#2#23#14'ParentBidiMode'#8#8'TabOrder'#2#11#7 +'OnClick'#7#17'checkMTAStopClick'#0#0#9'TCheckBox'#12'checkMTNStop'#22'Ancho' +'rSideLeft.Control'#7#9'StopLabel'#23'AnchorSideRight.Control'#7#11'checkSRS' +'top'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#142#0#6'Height'#2#23 +#3'Top'#3#147#0#5'Width'#2#23#7'Anchors'#11#6'akLeft'#0#14'ParentBidiMode'#8 +#8'TabOrder'#2#12#7'OnClick'#7#17'checkMTAStopClick'#0#0#9'TCheckBox'#12'che' +'ckMTCStop'#22'AnchorSideLeft.Control'#7#9'StopLabel'#23'AnchorSideRight.Con' +'trol'#7#11'checkSRStop'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3 +#142#0#6'Height'#2#23#3'Top'#3#235#0#5'Width'#2#23#7'Anchors'#11#6'akLeft'#0 +#14'ParentBidiMode'#8#8'TabOrder'#2#13#7'OnClick'#7#17'checkMTAStopClick'#0#0 +#9'TCheckBox'#12'checkETCStop'#22'AnchorSideLeft.Control'#7#9'StopLabel'#23 +'AnchorSideRight.Control'#7#11'checkSRStop'#20'AnchorSideRight.Side'#7#9'asr' +'Bottom'#4'Left'#3#142#0#6'Height'#2#23#3'Top'#3#147#1#5'Width'#2#23#7'Ancho' +'rs'#11#6'akLeft'#0#14'ParentBidiMode'#8#8'TabOrder'#2#14#7'OnClick'#7#17'ch' +'eckMTAStopClick'#0#0#9'TCheckBox'#12'checkETNStop'#22'AnchorSideLeft.Contro' +'l'#7#9'StopLabel'#23'AnchorSideRight.Control'#7#11'checkSRStop'#20'AnchorSi' +'deRight.Side'#7#9'asrBottom'#4'Left'#3#142#0#6'Height'#2#23#3'Top'#3#208#1#5 +'Width'#2#23#7'Anchors'#11#6'akLeft'#0#14'ParentBidiMode'#8#8'TabOrder'#2#15 +#7'OnClick'#7#17'checkMTAStopClick'#0#0#9'TCheckBox'#12'checkETAStop'#22'Anc' +'horSideLeft.Control'#7#9'StopLabel'#23'AnchorSideRight.Control'#7#11'checkS' +'RStop'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#142#0#6'Height'#2 ,#23#3'Top'#3' '#2#5'Width'#2#23#7'Anchors'#11#6'akLeft'#0#14'ParentBidiMode' +#8#8'TabOrder'#2#16#7'OnClick'#7#17'checkMTAStopClick'#0#0#9'TCheckBox'#11'c' +'heckSSStop'#22'AnchorSideLeft.Control'#7#9'StopLabel'#23'AnchorSideRight.Co' +'ntrol'#7#11'checkSRStop'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3 +#142#0#6'Height'#2#23#3'Top'#3'J'#1#5'Width'#2#23#7'Anchors'#11#6'akLeft'#0 +#14'ParentBidiMode'#8#8'TabOrder'#2#17#7'OnClick'#7#17'checkMTAStopClick'#0#0 +#6'TLabel'#6'TimeSR'#4'Left'#3#150#0#6'Height'#2#19#3'Top'#3#26#1#5'Width'#2 +'8'#7'Anchors'#11#0#7'Caption'#6#8'datetime'#11'ParentColor'#8#0#0#6'TLabel' +#7'TimeMTA'#22'AnchorSideLeft.Control'#7#12'checkMTAStop'#19'AnchorSideLeft.' +'Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#12'checkMTAStop'#4'Left'#3 +#150#0#6'Height'#2#19#3'Top'#2'*'#5'Width'#2'8'#7'Anchors'#11#5'akTop'#0#7'C' +'aption'#6#8'datetime'#11'ParentColor'#8#0#0#6'TLabel'#7'TimeMTN'#4'Left'#3 +#149#0#6'Height'#2#19#3'Top'#3#142#0#5'Width'#2'8'#7'Anchors'#11#0#7'Caption' +#6#8'datetime'#11'ParentColor'#8#0#0#6'TLabel'#7'TimeMTC'#4'Left'#3#150#0#6 +'Height'#2#19#3'Top'#3#237#0#5'Width'#2'8'#7'Anchors'#11#0#7'Caption'#6#8'da' +'tetime'#11'ParentColor'#8#0#0#6'TLabel'#7'TimeETC'#4'Left'#3#149#0#6'Height' +#2#19#3'Top'#3#149#1#5'Width'#2'8'#7'Anchors'#11#0#7'Caption'#6#8'datetime' +#11'ParentColor'#8#0#0#6'TLabel'#7'TimeETN'#4'Left'#3#149#0#6'Height'#2#19#3 +'Top'#3#210#1#5'Width'#2'8'#7'Anchors'#11#0#7'Caption'#6#8'datetime'#11'Pare' +'ntColor'#8#0#0#6'TLabel'#7'TimeETA'#4'Left'#3#149#0#6'Height'#2#19#3'Top'#3 +'"'#2#5'Width'#2'8'#7'Anchors'#11#0#7'Caption'#6#8'datetime'#11'ParentColor' +#8#0#0#6'TLabel'#6'TimeSS'#4'Left'#3#149#0#6'Height'#2#19#3'Top'#3'L'#1#5'Wi' +'dth'#2'8'#7'Anchors'#11#0#7'Caption'#6#8'datetime'#11'ParentColor'#8#0#0#9 +'TGroupBox'#16'LocationGroupBox'#4'Left'#3#204#0#6'Height'#2'>'#3'Top'#2'['#5 +'Width'#3#245#0#7'Anchors'#11#0#8'AutoSize'#9#7'Caption'#6#8'Location'#12'Cl' +'ientHeight'#2'*'#11'ClientWidth'#3#243#0#8'TabOrder'#2#18#0#7'TBitBtn'#17'S' +'etLocationButton'#22'AnchorSideLeft.Control'#7#13'LongitudeText'#19'AnchorS' +'ideLeft.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#13'LongitudeTex' +'t'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#168#0#6'Height'#2#30#3 +'Top'#2#12#5'Width'#2'K'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#18'BorderSpac' +'ing.Left'#2#2#7'Caption'#6#3'Set'#7'OnClick'#7#22'SetLocationButtonClick'#8 +'TabOrder'#2#0#0#0#11'TStaticText'#12'LatitudeText'#22'AnchorSideLeft.Contro' +'l'#7#16'LocationGroupBox'#21'AnchorSideTop.Control'#7#13'LatitudeLabel'#18 +'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#4#6'Height'#2#21#3'Top'#2#21#5 +'Width'#2'P'#18'BorderSpacing.Left'#2#4#11'BorderStyle'#7#9'sbsSingle'#8'Tab' +'Order'#2#1#0#0#6'TLabel'#13'LatitudeLabel'#22'AnchorSideLeft.Control'#7#12 +'LatitudeText'#19'AnchorSideLeft.Side'#7#9'asrCenter'#21'AnchorSideTop.Contr' +'ol'#7#16'LocationGroupBox'#4'Left'#2#19#6'Height'#2#19#3'Top'#2#2#5'Width'#2 +'3'#17'BorderSpacing.Top'#2#2#7'Caption'#6#8'Latitude'#11'ParentColor'#8#0#0 +#6'TLabel'#14'LongitudeLabel'#22'AnchorSideLeft.Control'#7#13'LongitudeText' +#19'AnchorSideLeft.Side'#7#9'asrCenter'#21'AnchorSideTop.Control'#7#13'Latit' +'udeLabel'#4'Left'#2'_'#6'Height'#2#19#3'Top'#2#2#5'Width'#2'?'#7'Caption'#6 +#9'Longitude'#11'ParentColor'#8#0#0#11'TStaticText'#13'LongitudeText'#22'Anc' +'horSideLeft.Control'#7#12'LatitudeText'#19'AnchorSideLeft.Side'#7#9'asrBott' +'om'#21'AnchorSideTop.Control'#7#13'LatitudeLabel'#18'AnchorSideTop.Side'#7#9 +'asrBottom'#4'Left'#2'V'#6'Height'#2#21#3'Top'#2#21#5'Width'#2'P'#18'BorderS' +'pacing.Left'#2#2#11'BorderStyle'#7#9'sbsSingle'#8'TabOrder'#2#2#0#0#0#5'TMe' +'mo'#13'StartStopMemo'#23'AnchorSideRight.Control'#7#14'StartStopGroup'#20'A' +'nchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#14'Start' +'StopGroup'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#162#0#6'Heigh' +'t'#2'}'#3'Top'#2'q'#5'Width'#3#6#1#7'Anchors'#11#7'akRight'#8'akBottom'#0#10 +'ScrollBars'#7#14'ssAutoVertical'#8'TabOrder'#2#19#0#0#0#11'TCheckGroup'#12 +'OptionsGroup'#22'AnchorSideLeft.Control'#7#14'FrequencyGroup'#19'AnchorSide' +'Left.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#14'FrequencyGroup'#23 +'AnchorSideRight.Control'#7#14'StartStopGroup'#4'Left'#3#240#0#6'Height'#2'|' +#3'Top'#2#2#5'Width'#3#158#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8 +'AutoFill'#9#8'AutoSize'#9#18'BorderSpacing.Left'#2#4#7'Caption'#6#8'Options' +':'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6 +#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSi' +'zing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkH' +'orizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScal' +'eChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'Chil' +'dSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'h'#11'ClientWidth'#3#156#0 +#20'Constraints.MaxWidth'#3#158#0#13'Items.Strings'#1#6#9'Moon data'#6#9'Fre' ,'shness'#6#14'GoTo accessory'#6#13'Raw frequency'#0#11'OnItemClick'#7#21'Opt' +'ionsGroupItemClick'#8'TabOrder'#2#2#4'Data'#10#8#0#0#0#4#0#0#0#2#2#2#2#0#0#9 +'TGroupBox'#10'LimitGroup'#22'AnchorSideLeft.Control'#7#12'OptionsGroup'#21 +'AnchorSideTop.Control'#7#12'OptionsGroup'#18'AnchorSideTop.Side'#7#9'asrBot' +'tom'#23'AnchorSideRight.Control'#7#12'OptionsGroup'#20'AnchorSideRight.Side' +#7#9'asrBottom'#4'Left'#3#240#0#6'Height'#2'<'#3'Top'#2'~'#5'Width'#3#158#0#7 +'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#9#7'Caption'#6#6'Li' +'mit:'#12'ClientHeight'#2'('#11'ClientWidth'#3#156#0#8'TabOrder'#2#3#0#9'TSp' +'inEdit'#15'RecordLimitSpin'#22'AnchorSideLeft.Control'#7#10'LimitGroup'#21 +'AnchorSideTop.Control'#7#10'LimitGroup'#4'Left'#2#2#6'Height'#2'$'#4'Hint'#6 +'"Set to 0 for unlimited recordings.'#3'Top'#2#2#5'Width'#2'F'#9'Alignment'#7 +#8'taCenter'#20'BorderSpacing.Around'#2#2#8'MaxValue'#3#232#3#8'OnChange'#7 +#21'RecordLimitSpinChange'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#0 +#0#0#6'TLabel'#6'Label2'#22'AnchorSideLeft.Control'#7#15'RecordLimitSpin'#19 +'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#15'RecordLi' +'mitSpin'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2'J'#6'Height'#2#19#3 +'Top'#2#11#5'Width'#2'.'#7'Caption'#6#7'records'#11'ParentColor'#8#0#0#0#9'T' +'GroupBox'#10'SplitGroup'#4'Left'#3#144#1#6'Height'#2'f'#3'Top'#2#2#5'Width' +#3#144#0#7'Caption'#6#19'Split (local time):'#12'ClientHeight'#2'R'#11'Clien' +'tWidth'#3#142#0#8'TabOrder'#2#4#0#9'TCheckBox'#17'SingleDatCheckBox'#22'Anc' +'horSideLeft.Control'#7#10'SplitGroup'#21'AnchorSideTop.Control'#7#10'SplitG' +'roup'#4'Left'#2#4#6'Height'#2#23#4'Hint'#6'1Prevent .dat record file from s' +'plitting each day.'#3'Top'#2#0#5'Width'#2'p'#18'BorderSpacing.Left'#2#4#7'C' +'aption'#6#16'Single .dat file'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrde' +'r'#2#0#7'OnClick'#7#22'SingleDatCheckBoxClick'#0#0#9'TSpinEdit'#13'SplitSpi' +'nEdit'#22'AnchorSideLeft.Control'#7#17'SingleDatCheckBox'#21'AnchorSideTop.' +'Control'#7#17'SingleDatCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Le' +'ft'#2#4#6'Height'#2'$'#4'Hint'#6'+Local hour to start a new .dat record fil' +'e.'#3'Top'#2#27#5'Width'#2'E'#17'BorderSpacing.Top'#2#4#8'OnChange'#7#19'Sp' +'litSpinEditChange'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#1#0#0#6 +'TLabel'#14'SplitSpinLabel'#22'AnchorSideLeft.Control'#7#13'SplitSpinEdit'#19 +'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#13'SplitSpi' +'nEdit'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2'L'#6'Height'#2#19#3 +'Top'#2'$'#5'Width'#2#14#18'BorderSpacing.Left'#2#3#7'Caption'#6#2'hr'#11'Pa' +'rentColor'#8#0#0#0#0#9'TTabSheet'#12'ReadingSheet'#7'Caption'#6#7'Reading' +#12'ClientHeight'#3#244#0#11'ClientWidth'#3#218#3#10'ParentFont'#8#0#6'TLabe' +'l'#16'DisplayedReading'#22'AnchorSideLeft.Control'#7#6'Chart1'#19'AnchorSid' +'eLeft.Side'#7#9'asrCenter'#21'AnchorSideTop.Control'#7#12'ReadingSheet'#4'L' +'eft'#3'F'#1#6'Height'#2'C'#3'Top'#2#6#5'Width'#3#140#0#9'Alignment'#7#8'taC' +'enter'#17'BorderSpacing.Top'#2#6#7'Caption'#6#6'-XX.XX'#11'Font.Height'#2 +#208#9'Font.Name'#6#4'Sans'#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel' +#12'ReadingUnits'#22'AnchorSideLeft.Control'#7#16'DisplayedReading'#19'Ancho' +'rSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#16'DisplayedRead' +'ing'#18'AnchorSideTop.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#16 +'DisplayedReading'#21'AnchorSideBottom.Side'#7#9'asrCenter'#4'Left'#3#215#1#6 +'Height'#2#19#4'Hint'#6#31'magnitudes per square arcsecond'#3'Top'#2#29#5'Wi' +'dth'#2'Q'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2#5 +#17'BorderSpacing.Top'#2#2#7'Caption'#6#13'mags/arcsec'#194#178#11'ParentCol' +'or'#8#14'ParentShowHint'#8#8'ShowHint'#9#0#0#6'TChart'#6'Chart1'#22'AnchorS' +'ideLeft.Control'#7#12'ReadingSheet'#21'AnchorSideTop.Control'#7#16'Displaye' +'dReading'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control' +#7#14'AltAzPlotpanel'#24'AnchorSideBottom.Control'#7#12'ReadingSheet'#21'Anc' +'horSideBottom.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#3#163#0#3'Top'#2'I' +#5'Width'#3#25#3#8'AxisList'#14#1#9'Alignment'#7#9'calBottom'#22'Marks.Label' +'Font.Height'#2#244#20'Marks.LabelFont.Name'#6#4'Sans'#12'Marks.Format'#6#4 +'%2:s'#22'Marks.LabelBrush.Style'#7#7'bsClear'#12'Marks.Source'#7#28'DateTim' +'eIntervalChartSource1'#11'Marks.Style'#7#8'smsLabel'#6'Minors'#14#0#9'Range' +'.Max'#5#0#0#0#0#0#0#0#200#5'@'#14'Title.Distance'#2#1#13'Title.Visible'#9#13 +'Title.Caption'#6#11'Sample time'#22'Title.LabelBrush.Style'#7#7'bsClear'#0#1 +#10'Grid.Style'#7#7'psSolid'#19'Intervals.NiceSteps'#6#3'0.1'#17'Intervals.O' +'ptions'#11#15'aipUseMinLength'#15'aipUseNiceSteps'#0#10'TickLength'#2#0#21 +'Marks.LabelFont.Color'#7#5'clRed'#12'Marks.Format'#6#7'%0:3.2f'#22'Marks.La' +'belBrush.Style'#7#7'bsClear'#11'Marks.Style'#7#9'smsCustom'#6'Minors'#14#1 +#15'Intervals.Count'#2#2#19'Intervals.MinLength'#2#30#17'Intervals.Options' ,#11#11'aipUseCount'#15'aipUseNiceSteps'#0#21'Marks.LabelFont.Color'#7#5'clRe' +'d'#12'Marks.Format'#6#7'%0:3.2f'#22'Marks.LabelBrush.Style'#7#7'bsClear'#11 +'Marks.Style'#7#9'smsCustom'#0#0#21'Title.LabelFont.Color'#7#5'clRed'#27'Tit' +'le.LabelFont.Orientation'#3#132#3#13'Title.Visible'#9#13'Title.Caption'#6#5 +'MPSAS'#22'Title.LabelBrush.Style'#7#7'bsClear'#15'Transformations'#7#19'MPS' +'ASAxisTransforms'#0#1#12'Grid.Visible'#8#9'TickColor'#7#6'clNone'#10'TickLe' +'ngth'#2#0#9'Alignment'#7#8'calRight'#21'Marks.LabelFont.Color'#7#6'clLime' +#22'Marks.LabelBrush.Style'#7#7'bsClear'#6'Minors'#14#0#21'Title.LabelFont.C' +'olor'#7#6'clLime'#27'Title.LabelFont.Orientation'#3#132#3#13'Title.Visible' +#9#13'Title.Caption'#6#11'Temperature'#22'Title.LabelBrush.Style'#7#7'bsClea' +'r'#15'Transformations'#7#25'TemperatureAxisTransforms'#0#1#12'Grid.Visible' +#8#9'TickColor'#7#6'clNone'#10'TickLength'#2#0#9'Alignment'#7#8'calRight'#21 +'Marks.LabelFont.Color'#7#7'clBlack'#22'Marks.LabelBrush.Style'#7#7'bsClear' +#6'Minors'#14#0#9'Range.Max'#5#0#0#0#0#0#0#0#180#5'@'#9'Range.Min'#5#0#0#0#0 +#0#0#0#180#5#192#12'Range.UseMax'#9#12'Range.UseMin'#9#27'Title.LabelFont.Or' +'ientation'#3#132#3#13'Title.Visible'#9#13'Title.Caption'#6#14'Moon Elevatio' +'n'#22'Title.LabelBrush.Style'#7#7'bsClear'#15'Transformations'#7#18'MoonAxi' +'sTransforms'#0#0#16'Foot.Brush.Color'#7#9'clBtnFace'#15'Foot.Font.Color'#7#6 +'clBlue'#17'Title.Brush.Color'#7#9'clBtnFace'#16'Title.Font.Color'#7#6'clBlu' +'e'#18'Title.Text.Strings'#1#6#7'TAChart'#0#7'Anchors'#11#5'akTop'#6'akLeft' +#7'akRight'#8'akBottom'#0#20'BorderSpacing.Bottom'#2#8#0#11'TLineSeries'#11 +'MPSASSeries'#10'AxisIndexX'#2#0#10'AxisIndexY'#2#1#13'LinePen.Color'#7#5'cl' +'Red'#13'LinePen.Width'#2#2#19'Pointer.Brush.Color'#4#244#130#130#0#17'Point' +'er.HorizSize'#2#2#13'Pointer.Style'#7#8'psCircle'#16'Pointer.VertSize'#2#2 +#15'Pointer.Visible'#9#10'ShowPoints'#9#0#0#11'TLineSeries'#9'RedSeries'#10 +'AxisIndexX'#2#0#10'AxisIndexY'#2#1#13'LinePen.Color'#7#5'clRed'#17'Pointer.' +'HorizSize'#2#2#13'Pointer.Style'#7#8'psCircle'#16'Pointer.VertSize'#2#2#15 +'Pointer.Visible'#9#10'ShowPoints'#9#0#0#11'TLineSeries'#11'GreenSeries'#10 +'AxisIndexX'#2#0#10'AxisIndexY'#2#1#13'LinePen.Color'#7#7'clGreen'#17'Pointe' +'r.HorizSize'#2#2#13'Pointer.Style'#7#8'psCircle'#16'Pointer.VertSize'#2#2#15 +'Pointer.Visible'#9#10'ShowPoints'#9#0#0#11'TLineSeries'#10'BlueSeries'#10'A' +'xisIndexX'#2#0#10'AxisIndexY'#2#1#13'LinePen.Color'#7#6'clBlue'#17'Pointer.' +'HorizSize'#2#2#13'Pointer.Style'#7#8'psCircle'#16'Pointer.VertSize'#2#2#15 +'Pointer.Visible'#9#10'ShowPoints'#9#0#0#11'TLineSeries'#11'ClearSeries'#10 +'AxisIndexX'#2#0#10'AxisIndexY'#2#1#17'Pointer.HorizSize'#2#2#13'Pointer.Sty' +'le'#7#8'psCircle'#16'Pointer.VertSize'#2#2#0#0#11'TLineSeries'#10'TempSerie' +'s'#10'AxisIndexX'#2#0#10'AxisIndexY'#2#2#13'LinePen.Color'#7#6'clLime'#0#0 +#11'TLineSeries'#10'MoonSeries'#10'AxisIndexX'#2#0#10'AxisIndexY'#2#3#0#0#11 +'TLineSeries'#15'MoonPhaseSeries'#0#0#0#6'TPanel'#14'AltAzPlotpanel'#21'Anch' +'orSideTop.Control'#7#12'ReadingSheet'#23'AnchorSideRight.Control'#7#12'Read' +'ingSheet'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Contr' +'ol'#7#12'ReadingSheet'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#25 +#3#6'Height'#3#244#0#3'Top'#2#0#5'Width'#3#193#0#7'Anchors'#11#5'akTop'#7'ak' +'Right'#8'akBottom'#0#8'AutoSize'#9#10'BevelOuter'#7#6'bvNone'#12'ClientHeig' +'ht'#3#244#0#11'ClientWidth'#3#193#0#8'TabOrder'#2#1#7'Visible'#8#0#6'TLabel' +#9'EastLabel'#21'AnchorSideTop.Control'#7#6'Chart2'#18'AnchorSideTop.Side'#7 +#9'asrCenter'#23'AnchorSideRight.Control'#7#6'Chart2'#4'Left'#2#0#6'Height'#2 +#27#3'Top'#2'x'#5'Width'#2#11#7'Anchors'#11#5'akTop'#7'akRight'#0#7'Caption' +#6#1'E'#11'Font.Height'#2#237#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8 +#10'ParentFont'#8#0#0#6'TChart'#6'Chart2'#23'AnchorSideRight.Control'#7#9'We' +'stLabel'#24'AnchorSideBottom.Control'#7#10'SouthLabel'#4'Left'#2#11#6'Heigh' +'t'#3#160#0#3'Top'#2'5'#5'Width'#3#160#0#8'AxisList'#14#1#12'Grid.Visible'#8 +#13'Marks.Visible'#8#22'Marks.LabelBrush.Style'#7#7'bsClear'#6'Minors'#14#0#9 +'Range.Max'#5#0#0#0#0#0#0#0#128#255'?'#9'Range.Min'#5#0#0#0#0#0#0#0#128#255 +#191#12'Range.UseMax'#9#12'Range.UseMin'#9#27'Title.LabelFont.Orientation'#3 +#132#3#22'Title.LabelBrush.Style'#7#7'bsClear'#0#1#12'Grid.Visible'#8#9'Alig' +'nment'#7#9'calBottom'#13'Marks.Visible'#8#22'Marks.LabelBrush.Style'#7#7'bs' +'Clear'#6'Minors'#14#0#9'Range.Max'#5#0#0#0#0#0#0#0#128#255'?'#9'Range.Min'#5 +#0#0#0#0#0#0#0#128#255#191#12'Range.UseMax'#9#12'Range.UseMin'#9#22'Title.La' +'belBrush.Style'#7#7'bsClear'#0#0#16'Foot.Brush.Color'#7#9'clBtnFace'#15'Foo' +'t.Font.Color'#7#6'clBlue'#17'Title.Brush.Color'#7#9'clBtnFace'#16'Title.Fon' +'t.Color'#7#6'clBlue'#18'Title.Text.Strings'#1#6#7'TAChart'#0#7'Anchors'#11#7 +'akRight'#8'akBottom'#0#0#11'TLineSeries'#17'Chart2LineSeries1'#13'LinePen.S' +'tyle'#7#7'psClear'#17'Pointer.HorizSize'#2#22#13'Pointer.Style'#7#8'psCircl' ,'e'#16'Pointer.VertSize'#2#22#15'Pointer.Visible'#9#10'ShowPoints'#9#0#0#0#6 +'TLabel'#9'WestLabel'#21'AnchorSideTop.Control'#7#6'Chart2'#18'AnchorSideTop' +'.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#14'AltAzPlotpanel'#20'A' +'nchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#171#0#6'Height'#2#27#3'Top'#2 +'x'#5'Width'#2#18#7'Anchors'#11#5'akTop'#7'akRight'#0#19'BorderSpacing.Right' +#2#4#7'Caption'#6#1'W'#11'Font.Height'#2#237#10'Font.Style'#11#6'fsBold'#0#11 +'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#10'SouthLabel'#22'AnchorSideL' +'eft.Control'#7#6'Chart2'#19'AnchorSideLeft.Side'#7#9'asrCenter'#18'AnchorSi' +'deTop.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#14'AltAzPlotpanel' +#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2'V'#6'Height'#2#27#3'Top' +#3#213#0#5'Width'#2#10#7'Anchors'#11#6'akLeft'#8'akBottom'#0#20'BorderSpacin' +'g.Bottom'#2#4#7'Caption'#6#1'S'#11'Font.Height'#2#237#10'Font.Style'#11#6'f' +'sBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#10'NorthLabel'#22 +'AnchorSideLeft.Control'#7#6'Chart2'#19'AnchorSideLeft.Side'#7#9'asrCenter' +#24'AnchorSideBottom.Control'#7#6'Chart2'#4'Left'#2'T'#6'Height'#2#27#3'Top' +#2#26#5'Width'#2#15#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#1'N' +#11'Font.Height'#2#237#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'Pa' +'rentFont'#8#0#0#0#6'TLabel'#13'DisplayedNELM'#23'AnchorSideRight.Control'#7 +#6'Chart1'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Contr' +'ol'#7#13'Displayedcdm2'#4'Left'#3#237#2#6'Height'#2#19#4'Hint'#6#28'Naked E' +'ye Limiting Magnitude'#3'Top'#2#12#5'Width'#2'$'#7'Anchors'#11#7'akRight'#8 +'akBottom'#0#19'BorderSpacing.Right'#2#8#20'BorderSpacing.Bottom'#2#2#7'Capt' +'ion'#6#4'NELM'#11'ParentColor'#8#14'ParentShowHint'#8#8'ShowHint'#9#0#0#6'T' +'Label'#13'Displayedcdm2'#23'AnchorSideRight.Control'#7#6'Chart1'#20'AnchorS' +'ideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#12'DisplayedNS' +'U'#4'Left'#3#237#2#6'Height'#2#19#4'Hint'#6#24'candela per square meter'#3 +'Top'#2'!'#5'Width'#2'$'#7'Anchors'#11#7'akRight'#8'akBottom'#0#19'BorderSpa' +'cing.Right'#2#8#20'BorderSpacing.Bottom'#2#2#7'Caption'#6#6'cd/m'#194#178#11 +'ParentColor'#8#14'ParentShowHint'#8#8'ShowHint'#9#0#0#6'TLabel'#12'Displaye' +'dNSU'#23'AnchorSideRight.Control'#7#6'Chart1'#20'AnchorSideRight.Side'#7#9 +'asrBottom'#24'AnchorSideBottom.Control'#7#6'Chart1'#4'Left'#3#244#2#6'Heigh' +'t'#2#19#4'Hint'#6#17'Natural Sky Units'#3'Top'#2'6'#5'Width'#2#27#7'Anchors' +#11#7'akRight'#8'akBottom'#0#19'BorderSpacing.Right'#2#10#7'Caption'#6#3'NSU' +#11'ParentColor'#8#14'ParentShowHint'#8#8'ShowHint'#9#0#0#6'TLabel'#17'Locat' +'ionNameLabel'#22'AnchorSideLeft.Control'#7#12'ReadingSheet'#21'AnchorSideTo' +'p.Control'#7#12'ReadingSheet'#4'Left'#2#0#6'Height'#2#19#3'Top'#2#0#5'Width' +#2'Y'#7'Caption'#6#12'LocationName'#11'ParentColor'#8#0#0#6'TLabel'#16'Coord' +'inatesLabel'#22'AnchorSideLeft.Control'#7#12'ReadingSheet'#21'AnchorSideTop' +'.Control'#7#17'LocationNameLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'L' +'eft'#2#0#6'Height'#2#19#3'Top'#2#19#5'Width'#2'J'#7'Caption'#6#11'Coordinat' +'es'#11'ParentColor'#8#0#0#6'TLabel'#17'BestDarknessLabel'#4'Left'#2#0#6'Hei' +'ght'#2#21#3'Top'#2'0'#5'Width'#3#6#1#8'AutoSize'#8#7'Caption'#6#12'BestDark' +'ness'#11'ParentColor'#8#0#0#0#9'TTabSheet'#15'AnnotationSheet'#7'Caption'#6 +#10'Annotation'#12'ClientHeight'#3#244#0#11'ClientWidth'#3#218#3#0#9'TGroupB' +'ox'#18'AnnotationGroupBox'#22'AnchorSideLeft.Control'#7#15'AnnotationSheet' +#21'AnchorSideTop.Control'#7#15'AnnotationSheet'#24'AnchorSideBottom.Control' +#7#15'AnnotationSheet'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#0#6 +'Height'#3#244#0#3'Top'#2#0#5'Width'#3#176#1#7'Anchors'#11#5'akTop'#6'akLeft' +#8'akBottom'#0#7'Caption'#6#10'Annotation'#12'ClientHeight'#3#242#0#11'Clien' +'tWidth'#3#174#1#8'TabOrder'#2#0#0#5'TEdit'#12'AnnotateEdit'#22'AnchorSideLe' +'ft.Control'#7#18'AnnotationGroupBox'#23'AnchorSideRight.Control'#7#14'Annot' +'ateButton'#24'AnchorSideBottom.Control'#7#18'AnnotationGroupBox'#21'AnchorS' +'ideBottom.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#2'$'#4'Hint'#6#31'Type' +' custom annotation in here.'#3'Top'#3#206#0#5'Width'#3'c'#1#7'Anchors'#11#6 +'akLeft'#7'akRight'#8'akBottom'#0#14'ParentShowHint'#8#8'ShowHint'#9#7'TabSt' +'op'#8#8'TabOrder'#2#1#0#0#7'TButton'#14'AnnotateButton'#23'AnchorSideRight.' +'Control'#7#18'AnnotationGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#24 +'AnchorSideBottom.Control'#7#18'AnnotationGroupBox'#21'AnchorSideBottom.Side' +#7#9'asrBottom'#4'Left'#3'c'#1#6'Height'#2#25#3'Top'#3#217#0#5'Width'#2'K'#7 +'Anchors'#11#7'akRight'#8'akBottom'#0#7'Caption'#6#8'Annotate'#8'TabOrder'#2 +#2#7'OnClick'#7#19'AnnotateButtonClick'#0#0#11'TStringGrid'#16'HotkeyStringG' +'rid'#22'AnchorSideLeft.Control'#7#18'AnnotationGroupBox'#21'AnchorSideTop.C' +'ontrol'#7#18'AnnotationGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#24 +'AnchorSideBottom.Control'#7#13'PendingHotKey'#4'Left'#2#0#6'Height'#3#170#0 ,#3'Top'#2#0#5'Width'#3#16#1#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#8 +'ColCount'#2#2#7'Columns'#14#1#13'Title.Caption'#6#6'Hotkey'#5'Width'#2'd'#0 +#1#13'Title.Caption'#6#10'Annotation'#5'Width'#3#140#0#0#0#9'FixedCols'#2#0#7 +'Options'#11#15'goFixedVertLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHor' +'zLine'#13'goRangeSelect'#9'goEditing'#14'goSmoothScroll'#0#8'RowCount'#2#11 +#8'TabOrder'#2#0#7'TabStop'#8#7'OnKeyUp'#7#21'HotkeyStringGridKeyUp'#14'OnSe' +'lectEditor'#7#28'HotkeyStringGridSelectEditor'#0#0#9'TCheckBox'#19'EditHotk' +'eysCheckBox'#22'AnchorSideLeft.Control'#7#16'HotkeyStringGrid'#19'AnchorSid' +'eLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#16'HotkeyStringGrid' +#4'Left'#3#16#1#6'Height'#2#23#4'Hint'#6'#No hotkey annotation while editing' +'.'#3'Top'#2#0#5'Width'#2'f'#7'Caption'#6#12'Edit Hotkeys'#7'Checked'#9#7'En' +'abled'#8#14'ParentShowHint'#8#8'ShowHint'#9#5'State'#7#9'cbChecked'#8'TabOr' +'der'#2#3#8'OnChange'#7#25'EditHotkeysCheckBoxChange'#0#0#9'TCheckBox'#20'Sy' +'nchronizedCheckBox'#22'AnchorSideLeft.Control'#7#16'HotkeyStringGrid'#19'An' +'chorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#19'EditHotkey' +'sCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#16#1#6'Height'#2 +#23#4'Hint'#6'#Wait for interval before recording.'#3'Top'#2#23#5'Width'#2'l' +#7'Caption'#6#12'Synchronized'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder' +#2#4#8'OnChange'#7#26'SynchronizedCheckBoxChange'#0#0#6'TLabel'#12'PendingLa' +'bel'#22'AnchorSideLeft.Control'#7#14'AnnotateButton'#21'AnchorSideTop.Contr' +'ol'#7#13'PendingHotKey'#18'AnchorSideTop.Side'#7#9'asrCenter'#24'AnchorSide' +'Bottom.Control'#7#14'AnnotateButton'#4'Left'#3'c'#1#6'Height'#2#19#3'Top'#3 +#179#0#5'Width'#2'3'#7'Caption'#6#7'Pending'#11'ParentColor'#8#0#0#5'TEdit' +#13'PendingHotKey'#22'AnchorSideLeft.Control'#7#12'AnnotateEdit'#23'AnchorSi' +'deRight.Control'#7#12'PendingLabel'#24'AnchorSideBottom.Control'#7#12'Annot' +'ateEdit'#4'Left'#2#0#6'Height'#2'$'#4'Hint'#6';Annotation that will be reco' +'rded at the next time interval.'#3'Top'#3#170#0#5'Width'#3'c'#1#7'Anchors' +#11#6'akLeft'#7'akRight'#8'akBottom'#0#14'ParentShowHint'#8#8'ReadOnly'#9#8 +'ShowHint'#9#7'TabStop'#8#8'TabOrder'#2#6#0#0#9'TCheckBox'#18'PersistentChec' +'kBox'#22'AnchorSideLeft.Control'#7#16'HotkeyStringGrid'#19'AnchorSideLeft.S' +'ide'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#20'SynchronizedCheckBox'#18 +'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#16#1#6'Height'#2#23#4'Hint'#6 +'%Annotate every record with last text.'#3'Top'#2'.'#5'Width'#2'Y'#7'Caption' +#6#10'Persistent'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#5#8'OnCha' +'nge'#7#24'PersistentCheckBoxChange'#0#0#0#0#9'TTabSheet'#23'TransferReading' +'TabSheet'#7'Caption'#6#16'Transfer reading'#12'ClientHeight'#3#244#0#11'Cli' +'entWidth'#3#218#3#0#6'TLabel'#7'Label19'#21'AnchorSideTop.Control'#7#13'TrR' +'dgPortEdit'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Contro' +'l'#7#13'TrRdgPortEdit'#4'Left'#2'c'#6'Height'#2#19#3'Top'#2']'#5'Width'#2'i' +#7'Anchors'#11#5'akTop'#7'akRight'#0#19'BorderSpacing.Right'#2#4#7'Caption'#6 +#17'Destination port:'#11'ParentColor'#8#0#0#7'TButton'#15'TrRdgTestButton' +#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#208#0#6'Height'#2#30#4'Hint' +#6'4Test sending a reading to the Globe at Night server.'#3'Top'#3#144#0#5'W' +'idth'#2'f'#7'Anchors'#11#0#7'Caption'#6#4'Test'#8'TabOrder'#2#2#7'OnClick'#7 +#20'TrRdgTestButtonClick'#0#0#5'TEdit'#17'TrRdgAddressEntry'#21'AnchorSideTo' +'p.Control'#7#19'TrRdgEnableCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom' +#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#208#0#6'Height'#2'$'#4'Hi' +'nt'#6#30'Globe at Night server address.'#3'Top'#2'0'#5'Width'#3#172#0#9'Ali' +'gnment'#7#8'taCenter'#7'Anchors'#11#7'akRight'#0#8'TabOrder'#2#0#4'Text'#6#7 +'0.0.0.0'#8'OnChange'#7#23'TrRdgAddressEntryChange'#0#0#6'TLabel'#7'Label20' +#21'AnchorSideTop.Control'#7#17'TrRdgAddressEntry'#18'AnchorSideTop.Side'#7#9 +'asrCenter'#23'AnchorSideRight.Control'#7#17'TrRdgAddressEntry'#4'Left'#2'>' +#6'Height'#2#19#3'Top'#2'9'#5'Width'#3#142#0#7'Anchors'#11#5'akTop'#7'akRigh' +'t'#0#19'BorderSpacing.Right'#2#4#7'Caption'#6#23'Destination IP address:'#11 +'ParentColor'#8#0#0#9'TCheckBox'#19'TrRdgEnableCheckBox'#22'AnchorSideLeft.C' +'ontrol'#7#17'TrRdgAddressEntry'#4'Left'#2#18#6'Height'#2#23#4'Hint'#6'3Enab' +'le reading to be sent to Globe at Night server.'#3'Top'#2#8#5'Width'#3#170#0 +#7'Anchors'#11#0#7'Caption'#6#23'Enable reading transfer'#8'TabOrder'#2#3#7 +'OnClick'#7#24'TrRdgEnableCheckBoxClick'#0#0#7'TButton'#15'TrRdgHelpButton' +#21'AnchorSideTop.Control'#7#15'TrRdgTestButton'#20'AnchorSideRight.Side'#7#9 +'asrBottom'#4'Left'#3'^'#1#6'Height'#2#30#4'Hint'#6'DInstructions for transf' +'ering a reading to the Globe at Night server.'#3'Top'#3#144#0#5'Width'#2#30 +#7'Anchors'#11#5'akTop'#7'akRight'#0#7'Caption'#6#1'?'#8'TabOrder'#2#4#7'OnC' +'lick'#7#20'TrRdgHelpButtonClick'#0#0#5'TEdit'#13'TrRdgPortEdit'#22'AnchorSi' ,'deLeft.Control'#7#17'TrRdgAddressEntry'#21'AnchorSideTop.Control'#7#17'TrRd' +'gAddressEntry'#18'AnchorSideTop.Side'#7#9'asrBottom'#20'AnchorSideRight.Sid' +'e'#7#9'asrBottom'#4'Left'#3#208#0#6'Height'#2'$'#4'Hint'#6#27'Globe at Nigh' +'t server port.'#3'Top'#2'T'#5'Width'#3#172#0#9'Alignment'#7#8'taCenter'#8'T' +'abOrder'#2#1#4'Text'#6#1'0'#8'OnChange'#7#19'TrRdgPortEditChange'#0#0#0#9'T' +'TabSheet'#20'TransferFileTabSheet'#7'Caption'#6#13'Transfer file'#12'Client' +'Height'#3#244#0#11'ClientWidth'#3#218#3#0#9'TGroupBox'#24'TransferSettingsG' +'roupBox'#22'AnchorSideLeft.Control'#7#20'TransferFileTabSheet'#21'AnchorSid' +'eTop.Control'#7#20'TransferFileTabSheet'#24'AnchorSideBottom.Control'#7#20 +'TransferFileTabSheet'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#0#6 +'Height'#3#244#0#3'Top'#2#0#5'Width'#3#232#1#7'Anchors'#11#5'akTop'#6'akLeft' +#8'akBottom'#0#7'Caption'#6#8'Settings'#12'ClientHeight'#3#224#0#11'ClientWi' +'dth'#3#230#1#8'TabOrder'#2#0#0#12'TLabeledEdit'#20'TransferAddressEntry'#21 +'AnchorSideTop.Control'#7#27'TransferFrequencyRadioGroup'#18'AnchorSideTop.S' +'ide'#7#9'asrBottom'#4'Left'#3#144#0#6'Height'#2#25#3'Top'#2'V'#5'Width'#3 +#210#0#7'Anchors'#11#5'akTop'#0#8'AutoSize'#8#16'EditLabel.Height'#2#19#15'E' +'ditLabel.Width'#2'6'#17'EditLabel.Caption'#6#8'Address:'#21'EditLabel.Paren' +'tColor'#8#13'LabelPosition'#7#6'lpLeft'#8'TabOrder'#2#0#8'OnChange'#7#26'Tr' +'ansferAddressEntryChange'#0#0#12'TLabeledEdit'#17'TransferPortEntry'#22'Anc' +'horSideLeft.Control'#7#20'TransferAddressEntry'#19'AnchorSideLeft.Side'#7#9 +'asrBottom'#21'AnchorSideTop.Control'#7#20'TransferAddressEntry'#23'AnchorSi' +'deRight.Control'#7#24'TransferSettingsGroupBox'#20'AnchorSideRight.Side'#7#9 +'asrBottom'#4'Left'#3#160#1#6'Height'#2#25#3'Top'#2'V'#5'Width'#2'F'#7'Ancho' +'rs'#11#5'akTop'#7'akRight'#0#8'AutoSize'#8#16'EditLabel.Height'#2#19#15'Edi' +'tLabel.Width'#2#31#17'EditLabel.Caption'#6#5'Port:'#21'EditLabel.ParentColo' +'r'#8#13'LabelPosition'#7#6'lpLeft'#8'TabOrder'#2#1#8'OnChange'#7#23'Transfe' +'rPortEntryChange'#0#0#12'TLabeledEdit'#21'TransferUsernameEntry'#22'AnchorS' +'ideLeft.Control'#7#20'TransferAddressEntry'#21'AnchorSideTop.Control'#7#20 +'TransferAddressEntry'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#144#0 +#6'Height'#2#25#3'Top'#2'o'#5'Width'#3#210#0#8'AutoSize'#8#16'EditLabel.Heig' +'ht'#2#19#15'EditLabel.Width'#2'E'#17'EditLabel.Caption'#6#9'Username:'#21'E' +'ditLabel.ParentColor'#8#13'LabelPosition'#7#6'lpLeft'#8'TabOrder'#2#2#8'OnC' +'hange'#7#27'TransferUsernameEntryChange'#0#0#12'TLabeledEdit'#21'TransferPa' +'sswordEntry'#22'AnchorSideLeft.Control'#7#20'TransferAddressEntry'#21'Ancho' +'rSideTop.Control'#7#21'TransferUsernameEntry'#18'AnchorSideTop.Side'#7#9'as' +'rBottom'#4'Left'#3#144#0#6'Height'#2#25#3'Top'#3#136#0#5'Width'#3#210#0#8'A' +'utoSize'#8#8'EchoMode'#7#10'emPassword'#16'EditLabel.Height'#2#19#15'EditLa' +'bel.Width'#2'>'#17'EditLabel.Caption'#6#9'Password:'#21'EditLabel.ParentCol' +'or'#8#13'LabelPosition'#7#6'lpLeft'#12'PasswordChar'#6#1'*'#8'TabOrder'#2#3 +#8'OnChange'#7#27'TransferPasswordEntryChange'#0#0#12'TLabeledEdit'#28'Trans' +'ferRemoteDirectoryEntry'#22'AnchorSideLeft.Control'#7#20'TransferAddressEnt' +'ry'#21'AnchorSideTop.Control'#7#21'TransferPasswordEntry'#18'AnchorSideTop.' +'Side'#7#9'asrBottom'#4'Left'#3#144#0#6'Height'#2#25#3'Top'#3#161#0#5'Width' +#3'0'#1#8'AutoSize'#8#16'EditLabel.Height'#2#19#15'EditLabel.Width'#2'p'#17 +'EditLabel.Caption'#6#17'Remote directory:'#21'EditLabel.ParentColor'#8#13'L' +'abelPosition'#7#6'lpLeft'#8'TabOrder'#2#4#8'OnChange'#7'"TransferRemoteDire' +'ctoryEntryChange'#0#0#7'TButton'#24'TransferPasswordShowHide'#22'AnchorSide' +'Left.Control'#7#21'TransferPasswordEntry'#19'AnchorSideLeft.Side'#7#9'asrBo' +'ttom'#21'AnchorSideTop.Control'#7#21'TransferPasswordEntry'#4'Left'#3'e'#1#6 +'Height'#2#25#4'Hint'#6#18'Show/hide password'#3'Top'#3#136#0#5'Width'#2'8' +#18'BorderSpacing.Left'#2#3#7'Caption'#6#4'Show'#14'ParentShowHint'#8#8'Show' +'Hint'#9#8'TabOrder'#2#5#7'OnClick'#7#29'TransferPasswordShowHideClick'#0#0 +#11'TRadioGroup'#27'TransferFrequencyRadioGroup'#22'AnchorSideLeft.Control'#7 +#20'TransferAddressEntry'#21'AnchorSideTop.Control'#7#24'TransferSettingsGro' +'upBox'#4'Left'#3#144#0#6'Height'#2'V'#3'Top'#2#0#5'Width'#3#168#0#8'AutoFil' +'l'#9#7'Caption'#6#9'Frequency'#28'ChildSizing.LeftRightSpacing'#2#6#29'Chil' +'dSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.En' +'largeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizont' +'al'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds' +#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.C' +'ontrolsPerLine'#2#1#12'ClientHeight'#2'B'#11'ClientWidth'#3#166#0#13'Items.' +'Strings'#1#6#5'Never'#6#18'After every record'#6#13'At end of day'#0#7'OnCl' +'ick'#7' TransferFrequencyRadioGroupClick'#8'TabOrder'#2#6#0#0#6'TShape'#30 +'TransferRemoteDirectorySuccess'#22'AnchorSideLeft.Control'#7#28'TransferRem' ,'oteDirectoryEntry'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.' +'Control'#7#28'TransferRemoteDirectoryEntry'#18'AnchorSideTop.Side'#7#9'asrC' +'enter'#4'Left'#3#195#1#6'Height'#2#20#4'Hint'#6#23'Remote directory status' +#3'Top'#3#163#0#5'Width'#2#20#18'BorderSpacing.Left'#2#3#14'ParentShowHint'#8 +#5'Shape'#7#8'stCircle'#8'ShowHint'#9#0#0#9'TComboBox'#24'TransferProtocolSe' +'lector'#22'AnchorSideLeft.Control'#7#21'TransferProtocolLabel'#21'AnchorSid' +'eTop.Control'#7#21'TransferProtocolLabel'#18'AnchorSideTop.Side'#7#9'asrBot' +'tom'#4'Left'#2#2#6'Height'#2'$'#3'Top'#2#23#5'Width'#2'R'#10'ItemHeight'#2#0 +#8'TabOrder'#2#7#8'OnChange'#7#30'TransferProtocolSelectorChange'#0#0#6'TLab' +'el'#21'TransferProtocolLabel'#22'AnchorSideLeft.Control'#7#24'TransferSetti' +'ngsGroupBox'#21'AnchorSideTop.Control'#7#24'TransferSettingsGroupBox'#4'Lef' +'t'#2#2#6'Height'#2#19#3'Top'#2#2#5'Width'#2'7'#20'BorderSpacing.Around'#2#2 +#7'Caption'#6#9'Protocol:'#11'ParentColor'#8#0#0#12'TLabeledEdit'#15'Transfe' +'rTimeout'#21'AnchorSideTop.Control'#7#24'TransferProtocolSelector'#23'Ancho' +'rSideRight.Control'#7#24'TransferSettingsGroupBox'#20'AnchorSideRight.Side' +#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#27'TransferFrequencyRadioGrou' +'p'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#134#1#6'Height'#2#25#3 +'Top'#2#23#5'Width'#2'`'#7'Anchors'#11#5'akTop'#7'akRight'#0#8'AutoSize'#8#16 +'EditLabel.Height'#2#19#15'EditLabel.Width'#2'`'#17'EditLabel.Caption'#6#13 +'Timeout (ms):'#21'EditLabel.ParentColor'#8#8'TabOrder'#2#8#8'OnChange'#7#21 +'TransferTimeoutChange'#0#0#9'TCheckBox'#16'TransferCSVCheck'#22'AnchorSideL' +'eft.Control'#7#16'TransferDATCheck'#21'AnchorSideTop.Control'#7#16'Transfer' +'DATCheck'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3'>'#1#6'Height'#2 +#23#4'Hint'#6'#Send .csv file instead of .dat file'#3'Top'#2#23#5'Width'#2'1' +#7'Caption'#6#4'.csv'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#9#7'O' +'nClick'#7#21'TransferCSVCheckClick'#0#0#9'TCheckBox'#16'TransferDATCheck'#22 +'AnchorSideLeft.Control'#7#27'TransferFrequencyRadioGroup'#19'AnchorSideLeft' +'.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#27'TransferFrequencyRadio' +'Group'#4'Left'#3'>'#1#6'Height'#2#23#3'Top'#2#0#5'Width'#2'2'#18'BorderSpac' +'ing.Left'#2#6#7'Caption'#6#4'.dat'#8'TabOrder'#2#10#7'OnClick'#7#21'Transfe' +'rDATCheckClick'#0#0#9'TCheckBox'#17'TransferPLOTCheck'#22'AnchorSideLeft.Co' +'ntrol'#7#16'TransferCSVCheck'#21'AnchorSideTop.Control'#7#16'TransferCSVChe' +'ck'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3'>'#1#6'Height'#2#23#3'T' +'op'#2'.'#5'Width'#2'2'#7'Caption'#6#4'Plot'#8'TabOrder'#2#11#7'OnClick'#7#22 +'TransferPLOTCheckClick'#0#0#9'TCheckBox'#16'TransferPWenable'#22'AnchorSide' +'Left.Control'#7#24'TransferSettingsGroupBox'#21'AnchorSideTop.Control'#7#20 +'TransferAddressEntry'#18'AnchorSideTop.Side'#7#9'asrCenter'#20'AnchorSideRi' +'ght.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#2#23#4'Hint'#6#24'Enable opt' +'ional password'#3'Top'#2'W'#5'Width'#2'.'#7'Caption'#6#2'PW'#14'ParentShowH' +'int'#8#8'ShowHint'#9#8'TabOrder'#2#12#8'OnChange'#7#22'TransferPWenableChan' +'ge'#0#0#0#9'TGroupBox'#18'FTPResultsGroupBox'#22'AnchorSideLeft.Control'#7 +#24'TransferSettingsGroupBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'Anch' +'orSideTop.Control'#7#24'TransferSettingsGroupBox'#23'AnchorSideRight.Contro' +'l'#7#20'TransferFileTabSheet'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'An' +'chorSideBottom.Control'#7#24'TransferSettingsGroupBox'#21'AnchorSideBottom.' +'Side'#7#9'asrBottom'#4'Left'#3#232#1#6'Height'#3#244#0#3'Top'#2#0#5'Width'#3 +#242#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#7'Caption'#6 +#7'Results'#12'ClientHeight'#3#224#0#11'ClientWidth'#3#240#1#8'TabOrder'#2#1 +#0#12'TLabeledEdit'#28'TransferLocalFilenameDisplay'#21'AnchorSideTop.Contro' +'l'#7#18'FTPResultsGroupBox'#23'AnchorSideRight.Control'#7#18'FTPResultsGrou' +'pBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#136#0#6'Height'#2#30 +#3'Top'#2#0#5'Width'#3'h'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8 +'AutoSize'#8#16'EditLabel.Height'#2#19#15'EditLabel.Width'#2'\'#17'EditLabel' +'.Caption'#6#15'Local filename:'#21'EditLabel.ParentColor'#8#13'LabelPositio' +'n'#7#6'lpLeft'#8'ReadOnly'#9#8'TabOrder'#2#0#0#0#12'TLabeledEdit'#22'Transf' +'erRemoteFilename'#22'AnchorSideLeft.Control'#7#28'TransferLocalFilenameDisp' +'lay'#21'AnchorSideTop.Control'#7#28'TransferLocalFilenameDisplay'#18'Anchor' +'SideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#18'FTPResultsGro' +'upBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#136#0#6'Height'#2 +#30#3'Top'#2#30#5'Width'#3'h'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0 +#8'AutoSize'#8#16'EditLabel.Height'#2#19#15'EditLabel.Width'#2'n'#17'EditLab' +'el.Caption'#6#16'Remote filename:'#21'EditLabel.ParentColor'#8#13'LabelPosi' +'tion'#7#6'lpLeft'#8'ReadOnly'#9#8'TabOrder'#2#1#0#0#5'TMemo'#18'TransferFul' +'lResult'#22'AnchorSideLeft.Control'#7#18'FTPResultsGroupBox'#21'AnchorSideT' ,'op.Control'#7#18'TransferSendResult'#18'AnchorSideTop.Side'#7#9'asrBottom' +#23'AnchorSideRight.Control'#7#18'FTPResultsGroupBox'#20'AnchorSideRight.Sid' +'e'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#18'FTPResultsGroupBox'#21 +'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#2'l'#3'Top'#2't' +#5'Width'#3#240#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#8 +'ReadOnly'#9#10'ScrollBars'#7#14'ssAutoVertical'#8'TabOrder'#2#2#0#0#5'TMemo' +#18'TransferSendResult'#22'AnchorSideLeft.Control'#7#28'TransferLocalFilenam' +'eDisplay'#21'AnchorSideTop.Control'#7#22'TransferRemoteFilename'#18'AnchorS' +'ideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#18'FTPResultsGrou' +'pBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#136#0#6'Height'#2'8' +#3'Top'#2'<'#5'Width'#3'h'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#10 +'ScrollBars'#7#10'ssAutoBoth'#8'TabOrder'#2#3#0#0#6'TLabel'#23'TransferSendR' +'esultLabel'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control' +#7#18'TransferSendResult'#23'AnchorSideRight.Control'#7#18'TransferSendResul' +'t'#4'Left'#2'<'#6'Height'#2#19#3'Top'#2'<'#5'Width'#2'I'#7'Anchors'#11#5'ak' +'Top'#7'akRight'#0#19'BorderSpacing.Right'#2#3#7'Caption'#6#12'Send result:' +#11'ParentColor'#8#0#0#7'TButton'#12'TestTransfer'#21'AnchorSideTop.Control' +#7#23'TransferSendResultLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'Anch' +'orSideRight.Control'#7#23'TransferSendResultLabel'#20'AnchorSideRight.Side' +#7#9'asrBottom'#4'Left'#2':'#6'Height'#2#25#4'Hint'#6#18'Test transfer time' +#3'Top'#2'O'#5'Width'#2'K'#7'Anchors'#11#5'akTop'#7'akRight'#0#7'Caption'#6#4 +'Test'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#4#7'OnClick'#7#17'Te' +'stTransferClick'#0#0#0#0#9'TTabSheet'#13'RotStageSheet'#7'Caption'#6#8'RotS' +'tage'#12'ClientHeight'#3#244#0#11'ClientWidth'#3#218#3#10'TabVisible'#8#0#9 +'TGroupBox'#10'RSGroupBox'#4'Left'#2#0#6'Height'#3#216#0#3'Top'#2#0#5'Width' +#3#194#1#7'Caption'#6#16'Rotational stage'#12'ClientHeight'#3#214#0#11'Clien' +'tWidth'#3#192#1#8'TabOrder'#2#0#7'Visible'#8#0#9'TComboBox'#10'RSComboBox' +#22'AnchorSideLeft.Control'#7#10'RSGroupBox'#21'AnchorSideTop.Control'#7#10 +'RSGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#3#6'Height'#2 +'$'#3'Top'#2#3#5'Width'#3#205#0#18'BorderSpacing.Left'#2#3#17'BorderSpacing.' +'Top'#2#3#19'BorderSpacing.Right'#2#3#10'ItemHeight'#2#0#9'ItemIndex'#2#0#13 +'Items.Strings'#1#6#12'/dev/ttyUSB2'#0#8'TabOrder'#2#0#4'Text'#6#12'/dev/tty' +'USB2'#0#0#9'TSpinEdit'#22'RSPositionStepSpinEdit'#21'AnchorSideTop.Control' +#7#10'RSComboBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.C' +'ontrol'#7#10'RSComboBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3 +#129#0#6'Height'#2'$'#3'Top'#2'*'#5'Width'#2'O'#7'Anchors'#11#5'akTop'#7'akR' +'ight'#0#17'BorderSpacing.Top'#2#3#8'MaxValue'#2#10#8'MinValue'#2#1#8'TabOrd' +'er'#2#1#5'Value'#2#1#0#0#6'TLabel'#7'Label49'#21'AnchorSideTop.Control'#7#22 +'RSPositionStepSpinEdit'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSide' +'Right.Control'#7#22'RSPositionStepSpinEdit'#4'Left'#2'\'#6'Height'#2#19#3'T' +'op'#2'3'#5'Width'#2'"'#7'Anchors'#11#5'akTop'#7'akRight'#0#19'BorderSpacing' +'.Right'#2#3#7'Caption'#6#5'Steps'#11'ParentColor'#8#0#0#5'TEdit'#29'RSCurre' +'ntPositionAngleDisplay'#22'AnchorSideLeft.Control'#7#28'RSCurrentPositionSt' +'epDisplay'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control' +#7#28'RSCurrentPositionStepDisplay'#4'Left'#3#211#0#6'Height'#2'$'#3'Top'#2 +'Q'#5'Width'#2'O'#18'BorderSpacing.Left'#2#3#19'BorderSpacing.Right'#2#3#8'T' +'abOrder'#2#2#0#0#12'TLabeledEdit'#10'RSMaxSteps'#21'AnchorSideTop.Control'#7 +#28'RSCurrentPositionStepDisplay'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'A' +'nchorSideRight.Control'#7#28'RSCurrentPositionStepDisplay'#20'AnchorSideRig' +'ht.Side'#7#9'asrBottom'#4'Left'#3#128#0#6'Height'#2'$'#3'Top'#2'x'#5'Width' +#2'P'#7'Anchors'#11#5'akTop'#7'akRight'#0#17'BorderSpacing.Top'#2#3#16'EditL' +'abel.Height'#2#19#15'EditLabel.Width'#2#26#17'EditLabel.Caption'#6#3'Max'#21 +'EditLabel.ParentColor'#8#13'LabelPosition'#7#6'lpLeft'#8'TabOrder'#2#3#4'Te' +'xt'#6#2'60'#0#0#5'TEdit'#28'RSCurrentPositionStepDisplay'#21'AnchorSideTop.' +'Control'#7#22'RSPositionStepSpinEdit'#18'AnchorSideTop.Side'#7#9'asrBottom' +#23'AnchorSideRight.Control'#7#22'RSPositionStepSpinEdit'#20'AnchorSideRight' +'.Side'#7#9'asrBottom'#4'Left'#3#128#0#6'Height'#2'$'#3'Top'#2'Q'#5'Width'#2 +'P'#7'Anchors'#11#5'akTop'#7'akRight'#0#17'BorderSpacing.Top'#2#3#8'TabOrder' +#2#4#0#0#10'TStatusBar'#11'RSStatusBar'#4'Left'#2#0#6'Height'#2#21#3'Top'#3 +#193#0#5'Width'#3#192#1#6'Panels'#14#1#5'Width'#2'2'#0#0#11'SimplePanel'#8#0 +#0#11'TStaticText'#9'RSRlimInd'#4'Left'#3#233#0#6'Height'#2#21#3'Top'#3#143#0 +#5'Width'#2'9'#9'Alignment'#7#8'taCenter'#7'Anchors'#11#0#7'Caption'#6#5'Rig' +'ht'#5'Color'#7#9'clDefault'#11'ParentColor'#8#8'TabOrder'#2#6#0#0#11'TStati' +'cText'#9'RSLLimInd'#4'Left'#3'/'#1#6'Height'#2#21#3'Top'#3#128#0#5'Width'#2 ,'9'#9'Alignment'#7#8'taCenter'#7'Caption'#6#4'Left'#8'TabOrder'#2#7#0#0#11'T' +'StaticText'#11'RSSafteyInd'#4'Left'#3'v'#1#6'Height'#2#21#3'Top'#3#128#0#5 +'Width'#2'9'#9'Alignment'#7#8'taCenter'#7'Caption'#6#6'Safety'#8'TabOrder'#2 +#8#0#0#11'TStaticText'#8'RSDirInd'#4'Left'#3#232#0#6'Height'#2#17#3'Top'#3 +#158#0#5'Width'#2'A'#7'Caption'#6#8'Dir=Left'#8'TabOrder'#2#9#0#0#0#0#9'TTab' +'Sheet'#8'GDMSheet'#7'Caption'#6#3'GDM'#12'ClientHeight'#3#244#0#11'ClientWi' +'dth'#3#218#3#10'TabVisible'#8#0#9'TGroupBox'#11'GDMGroupBox'#4'Left'#2#16#6 +'Height'#2'7'#3'Top'#2#16#5'Width'#2'x'#7'Caption'#6#3'GDM'#12'ClientHeight' +#2'#'#11'ClientWidth'#2'v'#8'TabOrder'#2#0#0#7'TButton'#11'GDMF0Button'#4'Le' +'ft'#2#7#6'Height'#2#25#3'Top'#2#4#5'Width'#2'0'#7'Caption'#6#6'FB OFF'#8'Ta' +'bOrder'#2#0#7'OnClick'#7#16'GDMF0ButtonClick'#0#0#7'TButton'#11'GDMF1Button' +#4'Left'#2'>'#6'Height'#2#25#3'Top'#2#4#5'Width'#2'0'#7'Caption'#6#5'FB ON'#8 +'TabOrder'#2#1#7'OnClick'#7#16'GDMF1ButtonClick'#0#0#0#0#9'TTabSheet'#3'GPS' +#7'Caption'#6#3'GPS'#12'ClientHeight'#3#244#0#11'ClientWidth'#3#218#3#0#9'TC' +'omboBox'#13'GPSPortSelect'#22'AnchorSideLeft.Control'#7#7'Label14'#19'Ancho' +'rSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#3'GPS'#4'Left'#2 +'N'#6'Height'#2#30#3'Top'#2#16#5'Width'#3#27#1#7'Anchors'#11#0#8'AutoSize'#8 +#11'Font.Height'#2#244#9'Font.Name'#6#16'Courier 10 Pitch'#10'Font.Pitch'#7#7 +'fpFixed'#10'ItemHeight'#2#0#10'ParentFont'#8#6'Sorted'#9#8'TabOrder'#2#0#8 +'OnChange'#7#19'GPSPortSelectChange'#10'OnDropDown'#7#21'GPSPortSelectDropDo' +'wn'#0#0#6'TLabel'#7'Label14'#22'AnchorSideLeft.Control'#7#13'GPSPortSelect' +#18'AnchorSideTop.Side'#7#9'asrCenter'#24'AnchorSideBottom.Control'#7#13'GPS' +'PortSelect'#4'Left'#2'N'#6'Height'#2#19#3'Top'#2#253#5'Width'#2#31#7'Anchor' +'s'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#5'Port:'#11'ParentColor'#8#0#0#12 +'TLabeledEdit'#16'GPSValidityLabel'#23'AnchorSideRight.Control'#7#15'GPSQual' +'ityLabel'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Contr' +'ol'#7#15'GPSQualityLabel'#4'Left'#3'#'#1#6'Height'#2#25#3'Top'#2'3'#5'Width' +#2'P'#9'Alignment'#7#8'taCenter'#8'AutoSize'#8#20'BorderSpacing.Bottom'#2#3 +#16'EditLabel.Height'#2#19#15'EditLabel.Width'#2'0'#17'EditLabel.Caption'#6#9 +'Validity:'#21'EditLabel.ParentColor'#8#13'LabelPosition'#7#6'lpLeft'#8'TabO' +'rder'#2#1#0#0#12'TLabeledEdit'#16'GPSLatitudeLabel'#4'Left'#3'-'#3#6'Height' +#2#25#3'Top'#2#24#5'Width'#2'P'#9'Alignment'#7#8'taCenter'#8'AutoSize'#8#16 +'EditLabel.Height'#2#19#15'EditLabel.Width'#2'P'#17'EditLabel.Caption'#6#14 +'Latitude ('#194#176'):'#21'EditLabel.ParentColor'#8#8'TabOrder'#2#2#0#0#12 +'TLabeledEdit'#17'GPSLongitudeLabel'#22'AnchorSideLeft.Control'#7#16'GPSLati' +'tudeLabel'#19'AnchorSideLeft.Side'#7#9'asrBottom'#4'Left'#3#133#3#6'Height' +#2#25#3'Top'#2#24#5'Width'#2'P'#9'Alignment'#7#8'taCenter'#8'AutoSize'#8#18 +'BorderSpacing.Left'#2#8#16'EditLabel.Height'#2#19#15'EditLabel.Width'#2'P' +#17'EditLabel.Caption'#6#15'Longitude ('#194#176'):'#21'EditLabel.ParentColo' +'r'#8#8'TabOrder'#2#3#0#0#12'TLabeledEdit'#13'GPSSpeedLabel'#22'AnchorSideLe' +'ft.Control'#7#17'GPSElevationlabel'#19'AnchorSideLeft.Side'#7#9'asrBottom' +#24'AnchorSideBottom.Control'#7#17'GPSElevationlabel'#21'AnchorSideBottom.Si' +'de'#7#9'asrBottom'#4'Left'#3#133#3#6'Height'#2#25#3'Top'#2'Q'#5'Width'#2'P' +#9'Alignment'#7#8'taCenter'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#8'AutoSize' +#8#18'BorderSpacing.Left'#2#8#16'EditLabel.Height'#2#19#15'EditLabel.Width'#2 +'P'#17'EditLabel.Caption'#6#12'Speed (m/s):'#21'EditLabel.ParentColor'#8#8'T' +'abOrder'#2#4#0#0#12'TLabeledEdit'#17'GPSDateStampLabel'#4'Left'#3'-'#3#6'He' +'ight'#2#25#3'Top'#3#143#0#5'Width'#3#168#0#9'Alignment'#7#8'taCenter'#8'Aut' +'oSize'#8#16'EditLabel.Height'#2#19#15'EditLabel.Width'#3#168#0#17'EditLabel' +'.Caption'#6#13'GPS DateTime:'#21'EditLabel.ParentColor'#8#8'TabOrder'#2#5#0 +#0#12'TLabeledEdit'#17'GPSElevationlabel'#22'AnchorSideLeft.Control'#7#16'GP' +'SLatitudeLabel'#4'Left'#3'-'#3#6'Height'#2#25#4'Hint'#6#25'Very approximate' +' altitude'#3'Top'#2'Q'#5'Width'#2'P'#9'Alignment'#7#8'taCenter'#7'Anchors' +#11#6'akLeft'#0#8'AutoSize'#8#16'EditLabel.Height'#2#19#15'EditLabel.Width'#2 +'P'#17'EditLabel.Caption'#6#14'Elevation (m):'#21'EditLabel.ParentColor'#8#14 +'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#6#0#0#12'TLabeledEdit'#15'GPS' +'QualityLabel'#23'AnchorSideRight.Control'#7#13'GPSSatellites'#20'AnchorSide' +'Right.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#13'GPSSatellites' +#4'Left'#3#175#1#6'Height'#2#25#3'Top'#2'3'#5'Width'#2'P'#9'Alignment'#7#8't' +'aCenter'#8'AutoSize'#8#20'BorderSpacing.Bottom'#2#3#16'EditLabel.Height'#2 +#19#15'EditLabel.Width'#2'/'#17'EditLabel.Caption'#6#8'Quality:'#21'EditLabe' +'l.ParentColor'#8#13'LabelPosition'#7#6'lpLeft'#8'TabOrder'#2#7#0#0#9'TCheck' +'Box'#9'GPSEnable'#22'AnchorSideLeft.Control'#7#3'GPS'#4'Left'#2#4#6'Height' +#2#23#3'Top'#2#20#5'Width'#2'C'#7'Anchors'#11#0#18'BorderSpacing.Left'#2#8#7 ,'Caption'#6#6'Enable'#8'TabOrder'#2#8#7'OnClick'#7#14'GPSEnableClick'#0#0#12 +'TLabeledEdit'#13'GPSSatellites'#21'AnchorSideTop.Control'#7#14'GPSSignalGro' +'up'#18'AnchorSideTop.Side'#7#9'asrBottom'#20'AnchorSideRight.Side'#7#9'asrB' +'ottom'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#142#2#6'Height'#2 +#25#3'Top'#3#192#0#5'Width'#2''''#9'Alignment'#7#8'taCenter'#7'Anchors'#11#5 +'akTop'#0#8'AutoSize'#8#17'BorderSpacing.Top'#2#4#16'EditLabel.Height'#2#19 +#15'EditLabel.Width'#2';'#17'EditLabel.Caption'#6#11'Satellites:'#21'EditLab' +'el.ParentColor'#8#13'LabelPosition'#7#6'lpLeft'#8'TabOrder'#2#9#0#0#9'TGrou' +'pBox'#14'GPSSignalGroup'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSi' +'deTop.Control'#7#13'GPSPortSelect'#18'AnchorSideTop.Side'#7#9'asrBottom'#24 +'AnchorSideBottom.Control'#7#3'GPS'#21'AnchorSideBottom.Side'#7#9'asrBottom' +#4'Left'#3#26#2#6'Height'#3#185#0#3'Top'#2#3#5'Width'#3#5#1#7'Anchors'#11#6 +'akLeft'#0#18'BorderSpacing.Left'#2#14#7'Caption'#6#15'Signal strength'#12'C' +'lientHeight'#3#183#0#11'ClientWidth'#3#3#1#8'TabOrder'#2#10#0#12'TProgressB' +'ar'#7'GPSSNR1'#22'AnchorSideLeft.Control'#7#14'GPSSignalGroup'#21'AnchorSid' +'eTop.Control'#7#14'GPSSignalGroup'#24'AnchorSideBottom.Control'#7#7'GPSSAT1' +#4'Left'#2#5#6'Height'#3#164#0#4'Hint'#6' Signal to noise ratio (strength)'#3 +'Top'#2#0#5'Width'#2#16#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#18'Bo' +'rderSpacing.Left'#2#5#11'Orientation'#7#10'pbVertical'#14'ParentShowHint'#8 +#8'ShowHint'#9#6'Smooth'#9#8'TabOrder'#2#0#0#0#12'TProgressBar'#7'GPSSNR2'#22 +'AnchorSideLeft.Control'#7#7'GPSSNR1'#19'AnchorSideLeft.Side'#7#9'asrBottom' +#21'AnchorSideTop.Control'#7#14'GPSSignalGroup'#24'AnchorSideBottom.Control' +#7#7'GPSSAT1'#4'Left'#2#26#6'Height'#3#164#0#4'Hint'#6' Signal to noise rati' +'o (strength)'#3'Top'#2#0#5'Width'#2#16#7'Anchors'#11#5'akTop'#6'akLeft'#8'a' +'kBottom'#0#18'BorderSpacing.Left'#2#5#11'Orientation'#7#10'pbVertical'#14'P' +'arentShowHint'#8#8'ShowHint'#9#6'Smooth'#9#8'TabOrder'#2#1#0#0#12'TProgress' +'Bar'#7'GPSSNR4'#22'AnchorSideLeft.Control'#7#7'GPSSNR3'#19'AnchorSideLeft.S' +'ide'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#14'GPSSignalGroup'#24'Ancho' +'rSideBottom.Control'#7#7'GPSSAT1'#4'Left'#2'D'#6'Height'#3#164#0#4'Hint'#6 +' Signal to noise ratio (strength)'#3'Top'#2#0#5'Width'#2#16#7'Anchors'#11#5 +'akTop'#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2#5#11'Orientation'#7 +#10'pbVertical'#14'ParentShowHint'#8#8'ShowHint'#9#6'Smooth'#9#8'TabOrder'#2 +#2#0#0#12'TProgressBar'#8'GPSSNR12'#22'AnchorSideLeft.Control'#7#8'GPSSNR11' +#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#14'GPSSi' +'gnalGroup'#24'AnchorSideBottom.Control'#7#7'GPSSAT1'#4'Left'#3#236#0#6'Heig' +'ht'#3#164#0#4'Hint'#6' Signal to noise ratio (strength)'#3'Top'#2#0#5'Width' +#2#16#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2 +#5#11'Orientation'#7#10'pbVertical'#14'ParentShowHint'#8#8'ShowHint'#9#6'Smo' +'oth'#9#8'TabOrder'#2#3#0#0#12'TProgressBar'#7'GPSSNR3'#22'AnchorSideLeft.Co' +'ntrol'#7#7'GPSSNR2'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop' +'.Control'#7#14'GPSSignalGroup'#24'AnchorSideBottom.Control'#7#7'GPSSAT1'#4 +'Left'#2'/'#6'Height'#3#164#0#4'Hint'#6' Signal to noise ratio (strength)'#3 +'Top'#2#0#5'Width'#2#16#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#18'Bo' +'rderSpacing.Left'#2#5#11'Orientation'#7#10'pbVertical'#14'ParentShowHint'#8 +#8'ShowHint'#9#6'Smooth'#9#8'TabOrder'#2#4#0#0#12'TProgressBar'#7'GPSSNR5'#22 +'AnchorSideLeft.Control'#7#7'GPSSNR4'#19'AnchorSideLeft.Side'#7#9'asrBottom' +#21'AnchorSideTop.Control'#7#14'GPSSignalGroup'#24'AnchorSideBottom.Control' +#7#7'GPSSAT1'#4'Left'#2'Y'#6'Height'#3#164#0#4'Hint'#6' Signal to noise rati' +'o (strength)'#3'Top'#2#0#5'Width'#2#16#7'Anchors'#11#5'akTop'#6'akLeft'#8'a' +'kBottom'#0#18'BorderSpacing.Left'#2#5#11'Orientation'#7#10'pbVertical'#14'P' +'arentShowHint'#8#8'ShowHint'#9#6'Smooth'#9#8'TabOrder'#2#5#0#0#12'TProgress' +'Bar'#7'GPSSNR6'#22'AnchorSideLeft.Control'#7#7'GPSSNR5'#19'AnchorSideLeft.S' +'ide'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#14'GPSSignalGroup'#24'Ancho' +'rSideBottom.Control'#7#7'GPSSAT1'#4'Left'#2'n'#6'Height'#3#164#0#4'Hint'#6 +' Signal to noise ratio (strength)'#3'Top'#2#0#5'Width'#2#16#7'Anchors'#11#5 +'akTop'#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2#5#11'Orientation'#7 +#10'pbVertical'#14'ParentShowHint'#8#8'ShowHint'#9#6'Smooth'#9#8'TabOrder'#2 +#6#0#0#12'TProgressBar'#7'GPSSNR7'#22'AnchorSideLeft.Control'#7#7'GPSSNR6'#19 +'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#14'GPSSigna' +'lGroup'#24'AnchorSideBottom.Control'#7#7'GPSSAT1'#4'Left'#3#131#0#6'Height' +#3#164#0#4'Hint'#6' Signal to noise ratio (strength)'#3'Top'#2#0#5'Width'#2 +#16#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2#5 +#11'Orientation'#7#10'pbVertical'#14'ParentShowHint'#8#8'ShowHint'#9#6'Smoot' +'h'#9#8'TabOrder'#2#7#0#0#12'TProgressBar'#7'GPSSNR8'#22'AnchorSideLeft.Cont' ,'rol'#7#7'GPSSNR7'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.C' +'ontrol'#7#14'GPSSignalGroup'#24'AnchorSideBottom.Control'#7#7'GPSSAT1'#4'Le' +'ft'#3#152#0#6'Height'#3#164#0#4'Hint'#6' Signal to noise ratio (strength)'#3 +'Top'#2#0#5'Width'#2#16#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#18'Bo' +'rderSpacing.Left'#2#5#11'Orientation'#7#10'pbVertical'#14'ParentShowHint'#8 +#8'ShowHint'#9#6'Smooth'#9#8'TabOrder'#2#8#0#0#12'TProgressBar'#7'GPSSNR9'#22 +'AnchorSideLeft.Control'#7#7'GPSSNR8'#19'AnchorSideLeft.Side'#7#9'asrBottom' +#21'AnchorSideTop.Control'#7#14'GPSSignalGroup'#24'AnchorSideBottom.Control' +#7#7'GPSSAT1'#4'Left'#3#173#0#6'Height'#3#164#0#4'Hint'#6' Signal to noise r' +'atio (strength)'#3'Top'#2#0#5'Width'#2#16#7'Anchors'#11#5'akTop'#6'akLeft'#8 +'akBottom'#0#18'BorderSpacing.Left'#2#5#11'Orientation'#7#10'pbVertical'#14 +'ParentShowHint'#8#8'ShowHint'#9#6'Smooth'#9#8'TabOrder'#2#9#0#0#12'TProgres' +'sBar'#8'GPSSNR10'#22'AnchorSideLeft.Control'#7#7'GPSSNR9'#19'AnchorSideLeft' +'.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#14'GPSSignalGroup'#24'Anc' +'horSideBottom.Control'#7#7'GPSSAT1'#4'Left'#3#194#0#6'Height'#3#164#0#4'Hin' +'t'#6' Signal to noise ratio (strength)'#3'Top'#2#0#5'Width'#2#16#7'Anchors' +#11#5'akTop'#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2#5#11'Orientati' +'on'#7#10'pbVertical'#14'ParentShowHint'#8#8'ShowHint'#9#6'Smooth'#9#8'TabOr' +'der'#2#10#0#0#12'TProgressBar'#8'GPSSNR11'#22'AnchorSideLeft.Control'#7#8'G' +'PSSNR10'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7 +#14'GPSSignalGroup'#24'AnchorSideBottom.Control'#7#7'GPSSAT1'#4'Left'#3#215#0 +#6'Height'#3#164#0#4'Hint'#6' Signal to noise ratio (strength)'#3'Top'#2#0#5 +'Width'#2#16#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#18'BorderSpacing' +'.Left'#2#5#11'Orientation'#7#10'pbVertical'#14'ParentShowHint'#8#8'ShowHint' +#9#6'Smooth'#9#8'TabOrder'#2#11#0#0#6'TLabel'#7'GPSSAT1'#22'AnchorSideLeft.C' +'ontrol'#7#7'GPSSNR1'#19'AnchorSideLeft.Side'#7#9'asrCenter'#18'AnchorSideTo' +'p.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#14'GPSSignalGroup'#21 +'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#5#6'Height'#2#19#4'Hint'#6 +#16'Satellite number'#3'Top'#3#164#0#5'Width'#2#16#7'Anchors'#11#6'akLeft'#8 +'akBottom'#0#7'Caption'#6#2'00'#11'ParentColor'#8#14'ParentShowHint'#8#8'Sho' +'wHint'#9#0#0#6'TLabel'#7'GPSSAT2'#22'AnchorSideLeft.Control'#7#7'GPSSNR2'#19 +'AnchorSideLeft.Side'#7#9'asrCenter'#18'AnchorSideTop.Side'#7#9'asrBottom'#24 +'AnchorSideBottom.Control'#7#14'GPSSignalGroup'#21'AnchorSideBottom.Side'#7#9 +'asrBottom'#4'Left'#2#26#6'Height'#2#19#4'Hint'#6#16'Satellite number'#3'Top' +#3#164#0#5'Width'#2#16#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#2 +'00'#11'ParentColor'#8#14'ParentShowHint'#8#8'ShowHint'#9#0#0#6'TLabel'#7'GP' +'SSAT3'#22'AnchorSideLeft.Control'#7#7'GPSSNR3'#19'AnchorSideLeft.Side'#7#9 +'asrCenter'#18'AnchorSideTop.Side'#7#9'asrBottom'#24'AnchorSideBottom.Contro' +'l'#7#14'GPSSignalGroup'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2 +'/'#6'Height'#2#19#4'Hint'#6#16'Satellite number'#3'Top'#3#164#0#5'Width'#2 +#16#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#2'00'#11'ParentColor' +#8#14'ParentShowHint'#8#8'ShowHint'#9#0#0#6'TLabel'#7'GPSSAT4'#22'AnchorSide' +'Left.Control'#7#7'GPSSNR4'#19'AnchorSideLeft.Side'#7#9'asrCenter'#18'Anchor' +'SideTop.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#14'GPSSignalGro' +'up'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2'D'#6'Height'#2#19#4 +'Hint'#6#16'Satellite number'#3'Top'#3#164#0#5'Width'#2#16#7'Anchors'#11#6'a' +'kLeft'#8'akBottom'#0#7'Caption'#6#2'00'#11'ParentColor'#8#14'ParentShowHint' +#8#8'ShowHint'#9#0#0#6'TLabel'#7'GPSSAT5'#22'AnchorSideLeft.Control'#7#7'GPS' +'SNR5'#19'AnchorSideLeft.Side'#7#9'asrCenter'#18'AnchorSideTop.Side'#7#9'asr' +'Bottom'#24'AnchorSideBottom.Control'#7#14'GPSSignalGroup'#21'AnchorSideBott' +'om.Side'#7#9'asrBottom'#4'Left'#2'Y'#6'Height'#2#19#4'Hint'#6#16'Satellite ' +'number'#3'Top'#3#164#0#5'Width'#2#16#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7 +'Caption'#6#2'00'#11'ParentColor'#8#14'ParentShowHint'#8#8'ShowHint'#9#0#0#6 +'TLabel'#7'GPSSAT6'#22'AnchorSideLeft.Control'#7#7'GPSSNR6'#19'AnchorSideLef' +'t.Side'#7#9'asrCenter'#18'AnchorSideTop.Side'#7#9'asrBottom'#24'AnchorSideB' +'ottom.Control'#7#14'GPSSignalGroup'#21'AnchorSideBottom.Side'#7#9'asrBottom' +#4'Left'#2'n'#6'Height'#2#19#4'Hint'#6#16'Satellite number'#3'Top'#3#164#0#5 +'Width'#2#16#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#2'00'#11'Par' +'entColor'#8#14'ParentShowHint'#8#8'ShowHint'#9#0#0#6'TLabel'#7'GPSSAT7'#22 +'AnchorSideLeft.Control'#7#7'GPSSNR7'#19'AnchorSideLeft.Side'#7#9'asrCenter' +#18'AnchorSideTop.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#14'GPS' +'SignalGroup'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#131#0#6'Hei' +'ght'#2#19#4'Hint'#6#16'Satellite number'#3'Top'#3#164#0#5'Width'#2#16#7'Anc' +'hors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#2'00'#11'ParentColor'#8#14'Pa' ,'rentShowHint'#8#8'ShowHint'#9#0#0#6'TLabel'#7'GPSSAT8'#22'AnchorSideLeft.Co' +'ntrol'#7#7'GPSSNR8'#19'AnchorSideLeft.Side'#7#9'asrCenter'#18'AnchorSideTop' +'.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#14'GPSSignalGroup'#21 +'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#152#0#6'Height'#2#19#4'Hint' +#6#16'Satellite number'#3'Top'#3#164#0#5'Width'#2#16#7'Anchors'#11#6'akLeft' +#8'akBottom'#0#7'Caption'#6#2'00'#11'ParentColor'#8#14'ParentShowHint'#8#8'S' +'howHint'#9#0#0#6'TLabel'#7'GPSSAT9'#22'AnchorSideLeft.Control'#7#7'GPSSNR9' +#19'AnchorSideLeft.Side'#7#9'asrCenter'#18'AnchorSideTop.Side'#7#9'asrBottom' +#24'AnchorSideBottom.Control'#7#14'GPSSignalGroup'#21'AnchorSideBottom.Side' +#7#9'asrBottom'#4'Left'#3#173#0#6'Height'#2#19#4'Hint'#6#16'Satellite number' +#3'Top'#3#164#0#5'Width'#2#16#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Captio' +'n'#6#2'00'#11'ParentColor'#8#14'ParentShowHint'#8#8'ShowHint'#9#0#0#6'TLabe' +'l'#8'GPSSAT10'#22'AnchorSideLeft.Control'#7#8'GPSSNR10'#19'AnchorSideLeft.S' +'ide'#7#9'asrCenter'#18'AnchorSideTop.Side'#7#9'asrBottom'#24'AnchorSideBott' +'om.Control'#7#14'GPSSignalGroup'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4 +'Left'#3#194#0#6'Height'#2#19#4'Hint'#6#16'Satellite number'#3'Top'#3#164#0#5 +'Width'#2#16#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#2'00'#11'Par' +'entColor'#8#14'ParentShowHint'#8#8'ShowHint'#9#0#0#6'TLabel'#8'GPSSAT11'#22 +'AnchorSideLeft.Control'#7#8'GPSSNR11'#19'AnchorSideLeft.Side'#7#9'asrCenter' +#18'AnchorSideTop.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#14'GPS' +'SignalGroup'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#215#0#6'Hei' +'ght'#2#19#4'Hint'#6#16'Satellite number'#3'Top'#3#164#0#5'Width'#2#16#7'Anc' +'hors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#2'00'#11'ParentColor'#8#14'Pa' +'rentShowHint'#8#8'ShowHint'#9#0#0#6'TLabel'#8'GPSSAT12'#22'AnchorSideLeft.C' +'ontrol'#7#8'GPSSNR12'#19'AnchorSideLeft.Side'#7#9'asrCenter'#18'AnchorSideT' +'op.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#14'GPSSignalGroup'#21 +'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#236#0#6'Height'#2#19#4'Hint' +#6#16'Satellite number'#3'Top'#3#164#0#5'Width'#2#16#7'Anchors'#11#6'akLeft' +#8'akBottom'#0#7'Caption'#6#2'00'#11'ParentColor'#8#14'ParentShowHint'#8#8'S' +'howHint'#9#0#0#0#6'TShape'#13'GPSRMCStatusX'#22'AnchorSideLeft.Control'#7#14 +'GPSRMCIncoming'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Con' +'trol'#7#14'GPSRMCIncoming'#18'AnchorSideTop.Side'#7#9'asrCenter'#20'AnchorS' +'ideRight.Side'#7#9'asrBottom'#4'Left'#3#235#1#6'Height'#2#17#3'Top'#2'p'#5 +'Width'#2#20#11'Brush.Color'#4'FFF'#0#5'Shape'#7#8'stCircle'#0#0#6'TShape'#13 +'GPSGGAStatusX'#22'AnchorSideLeft.Control'#7#14'GPSGGAIncoming'#19'AnchorSid' +'eLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#14'GPSGGAIncoming'#18 +'AnchorSideTop.Side'#7#9'asrCenter'#20'AnchorSideRight.Side'#7#9'asrBottom'#4 +'Left'#3#235#1#6'Height'#2#17#3'Top'#3#159#0#5'Width'#2#20#17'BorderSpacing.' +'Top'#2#8#11'Brush.Color'#4'FFF'#0#5'Shape'#7#8'stCircle'#0#0#6'TShape'#13'G' +'PSGSVStatusX'#22'AnchorSideLeft.Control'#7#14'GPSGSVIncoming'#19'AnchorSide' +'Left.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#14'GPSGSVIncoming'#18 +'AnchorSideTop.Side'#7#9'asrCenter'#20'AnchorSideRight.Side'#7#9'asrBottom'#4 +'Left'#3#235#1#6'Height'#2#17#3'Top'#3#204#0#5'Width'#2#20#17'BorderSpacing.' +'Top'#2#8#11'Brush.Color'#4'FFF'#0#5'Shape'#7#8'stCircle'#0#0#9'TComboBox'#13 +'GPSBaudSelect'#4'Left'#3'h'#1#6'Height'#2#30#3'Top'#2#16#5'Width'#3#131#0#7 +'Anchors'#11#0#8'AutoSize'#8#10'ItemHeight'#2#0#13'Items.Strings'#1#6#4'4800' +#6#6'115200'#0#8'TabOrder'#2#11#8'OnChange'#7#19'GPSBaudSelectChange'#0#0#6 +'TLabel'#7'Label16'#22'AnchorSideLeft.Control'#7#13'GPSBaudSelect'#24'Anchor' +'SideBottom.Control'#7#13'GPSBaudSelect'#4'Left'#3'h'#1#6'Height'#2#19#3'Top' +#2#253#5'Width'#2'$'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#5'Ba' +'ud:'#11'ParentColor'#8#0#0#12'TLabeledEdit'#14'GPSRMCIncoming'#4'Left'#2#4#6 +'Height'#2#25#3'Top'#2'l'#5'Width'#3#231#1#8'AutoSize'#8#16'EditLabel.Height' +#2#19#15'EditLabel.Width'#3#231#1#17'EditLabel.Caption'#6'7$GPRMC - Recommen' +'ded minimum specific GPS/Transit data:'#21'EditLabel.ParentColor'#8#8'TabOr' +'der'#2#12#0#0#12'TLabeledEdit'#14'GPSGGAIncoming'#4'Left'#2#4#6'Height'#2#25 +#3'Top'#3#155#0#5'Width'#3#231#1#8'AutoSize'#8#16'EditLabel.Height'#2#19#15 +'EditLabel.Width'#3#231#1#17'EditLabel.Caption'#6',$GPGGA - Global Positioni' +'ng System Fix Data:'#21'EditLabel.ParentColor'#8#8'TabOrder'#2#13#0#0#12'TL' +'abeledEdit'#14'GPSGSVIncoming'#4'Left'#2#4#6'Height'#2#25#3'Top'#3#200#0#5 +'Width'#3#231#1#8'AutoSize'#8#16'EditLabel.Height'#2#19#15'EditLabel.Width'#3 +#231#1#17'EditLabel.Caption'#6' $GPGSV - GPS Satellites in view:'#21'EditLab' +'el.ParentColor'#8#8'TabOrder'#2#14#0#0#0#9'TTabSheet'#14'AlertsTabSheet'#7 +'Caption'#6#6'Alerts'#12'ClientHeight'#3#244#0#11'ClientWidth'#3#218#3#0#9'T' +'GroupBox'#20'PreReadingAlertGroup'#22'AnchorSideLeft.Control'#7#14'AlertsTa' ,'bSheet'#21'AnchorSideTop.Control'#7#14'AlertsTabSheet'#4'Left'#2#6#6'Height' +#2'8'#3'Top'#2#0#5'Width'#3#130#0#18'BorderSpacing.Left'#2#6#7'Caption'#6#18 +'Pre-reading alert:'#12'ClientHeight'#2'$'#11'ClientWidth'#3#128#0#8'TabOrde' +'r'#2#0#0#9'TCheckBox'#7'alert2s'#22'AnchorSideLeft.Control'#7#20'PreReading' +'AlertGroup'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2#0#6'Height'#2#23 +#4'Hint'#6#17'Pre-reading alert'#3'Top'#2#2#5'Width'#2'C'#7'Caption'#6#6'Ena' +'ble'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#0#8'OnChange'#7#13'al' +'ert2sChange'#0#0#0#11'TRadioGroup'#17'ReadingAlertGroup'#22'AnchorSideLeft.' +'Control'#7#20'PreReadingAlertGroup'#19'AnchorSideLeft.Side'#7#9'asrBottom' +#21'AnchorSideTop.Control'#7#20'PreReadingAlertGroup'#4'Left'#3#140#0#6'Heig' +'ht'#2'p'#3'Top'#2#0#5'Width'#3#130#0#8'AutoFill'#9#18'BorderSpacing.Left'#2 +#4#7'Caption'#6#14'Reading alert:'#28'ChildSizing.LeftRightSpacing'#2#6#29'C' +'hildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing' +'.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHoriz' +'ontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChi' +'lds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSiz' +'ing.ControlsPerLine'#2#1#12'ClientHeight'#2'\'#11'ClientWidth'#3#128#0#13'I' +'tems.Strings'#1#6#4'None'#6#10'Fresh only'#6#3'All'#0#7'OnClick'#7#22'Readi' +'ngAlertGroupClick'#8'TabOrder'#2#1#0#0#7'TButton'#14'FreshAlertTest'#22'Anc' +'horSideLeft.Control'#7#17'ReadingAlertGroup'#21'AnchorSideTop.Control'#7#17 +'ReadingAlertGroup'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight' +'.Control'#7#17'ReadingAlertGroup'#20'AnchorSideRight.Side'#7#9'asrBottom'#4 +'Left'#3#140#0#6'Height'#2#25#4'Hint'#6#24'Reading alert sound test'#3'Top'#2 +'t'#5'Width'#3#130#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#17'Border' +'Spacing.Top'#2#4#7'Caption'#6#4'Test'#14'ParentShowHint'#8#8'ShowHint'#9#8 +'TabOrder'#2#2#7'OnClick'#7#19'FreshAlertTestClick'#0#0#7'TButton'#18'PreAle' +'rtTestButton'#22'AnchorSideLeft.Control'#7#20'PreReadingAlertGroup'#21'Anch' +'orSideTop.Control'#7#20'PreReadingAlertGroup'#18'AnchorSideTop.Side'#7#9'as' +'rBottom'#23'AnchorSideRight.Control'#7#20'PreReadingAlertGroup'#20'AnchorSi' +'deRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#25#4'Hint'#6#20'Pre-al' +'ert sound test'#3'Top'#2':'#5'Width'#3#130#0#7'Anchors'#11#5'akTop'#6'akLef' +'t'#7'akRight'#0#17'BorderSpacing.Top'#2#2#7'Caption'#6#4'Test'#14'ParentSho' +'wHint'#8#8'ShowHint'#9#8'TabOrder'#2#3#7'OnClick'#7#23'PreAlertTestButtonCl' +'ick'#0#0#0#9'TTabSheet'#12'SynScanSheet'#7'Caption'#6#4'GoTo'#12'ClientHeig' +'ht'#3#244#0#11'ClientWidth'#3#218#3#6'OnShow'#7#16'SynScanSheetShow'#0#9'TC' +'omboBox'#14'GoToPortSelect'#22'AnchorSideLeft.Control'#7#17'GoToMachineSele' +'ct'#21'AnchorSideTop.Control'#7#17'GoToMachineSelect'#18'AnchorSideTop.Side' +#7#9'asrBottom'#23'AnchorSideRight.Control'#7#17'GoToMachineSelect'#20'Ancho' +'rSideRight.Side'#7#9'asrBottom'#4'Left'#2'O'#6'Height'#2'$'#3'Top'#2'.'#5'W' +'idth'#3#223#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#17'BorderSpacin' +'g.Top'#2#4#10'ItemHeight'#2#0#8'TabOrder'#2#0#8'OnChange'#7#20'GoToPortSele' +'ctChange'#0#0#6'TLabel'#13'GoToPortLabel'#21'AnchorSideTop.Control'#7#14'Go' +'ToPortSelect'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Cont' +'rol'#7#14'GoToPortSelect'#4'Left'#2'-'#6'Height'#2#19#3'Top'#2'7'#5'Width'#2 +#31#7'Anchors'#11#5'akTop'#7'akRight'#0#19'BorderSpacing.Right'#2#3#7'Captio' +'n'#6#5'Port:'#11'ParentColor'#8#0#0#9'TComboBox'#14'GoToBaudSelect'#22'Anch' +'orSideLeft.Control'#7#14'GoToPortSelect'#21'AnchorSideTop.Control'#7#14'GoT' +'oPortSelect'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2'O'#6'Height'#2 +'$'#3'Top'#2'V'#5'Width'#2'|'#17'BorderSpacing.Top'#2#4#10'ItemHeight'#2#0#13 +'Items.Strings'#1#6#4'9600'#6#6'115200'#0#8'TabOrder'#2#1#8'OnChange'#7#20'G' +'oToBaudSelectChange'#0#0#6'TLabel'#13'GoToBaudLabel'#21'AnchorSideTop.Contr' +'ol'#7#14'GoToBaudSelect'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSid' +'eRight.Control'#7#14'GoToPortSelect'#4'Left'#2'('#6'Height'#2#19#3'Top'#2'_' +#5'Width'#2'$'#7'Anchors'#11#5'akTop'#7'akRight'#0#19'BorderSpacing.Right'#2 +#3#7'Caption'#6#5'Baud:'#11'ParentColor'#8#0#0#12'TPageControl'#12'PageContr' +'ol2'#22'AnchorSideLeft.Control'#7#17'GoToMachineSelect'#19'AnchorSideLeft.S' +'ide'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#12'SynScanSheet'#23'AnchorS' +'ideRight.Control'#7#12'SynScanSheet'#20'AnchorSideRight.Side'#7#9'asrBottom' +#24'AnchorSideBottom.Control'#7#12'SynScanSheet'#21'AnchorSideBottom.Side'#7 +#9'asrBottom'#4'Left'#3'2'#1#6'Height'#3#236#0#3'Top'#2#4#5'Width'#3#164#2#10 +'ActivePage'#7#9'TabSheet2'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'ak' +'Bottom'#0#20'BorderSpacing.Around'#2#4#8'TabIndex'#2#1#8'TabOrder'#2#2#0#9 +'TTabSheet'#9'TabSheet1'#7'Caption'#6#4'File'#12'ClientHeight'#3#200#0#11'Cl' +'ientWidth'#3#154#2#0#11'TStringGrid'#21'GoToCommandStringGrid'#4'Left'#2#6#6 ,'Height'#3#176#0#3'Top'#2#222#5'Width'#3#208#0#7'Anchors'#11#0#8'ColCount'#2 +#3#16'MouseWheelOption'#7#6'mwGrid'#7'Options'#11#15'goFixedVertLine'#15'goF' +'ixedHorzLine'#10'goVertLine'#10'goHorzLine'#13'goRangeSelect'#15'goThumbTra' +'cking'#14'goSmoothScroll'#0#8'RowCount'#2#1#10'ScrollBars'#7#10'ssVertical' +#8'TabOrder'#2#0#0#0#0#9'TTabSheet'#9'TabSheet2'#7'Caption'#6#4'Test'#12'Cli' +'entHeight'#3#200#0#11'ClientWidth'#3#154#2#0#7'TButton'#15'GetZenAziButton' +#22'AnchorSideLeft.Control'#7#9'TabSheet2'#21'AnchorSideTop.Control'#7#9'Tab' +'Sheet2'#4'Left'#2#4#6'Height'#2#25#3'Top'#2#4#5'Width'#2'N'#20'BorderSpacin' +'g.Around'#2#4#7'Caption'#6#3'Get'#8'TabOrder'#2#0#7'OnClick'#7#20'GetZenAzi' +'ButtonClick'#0#0#6'TLabel'#22'LabelStatusAndCommands'#22'AnchorSideLeft.Con' +'trol'#7#14'GoToResultMemo'#21'AnchorSideTop.Control'#7#9'TabSheet2'#4'Left' +#3#190#0#6'Height'#2#19#3'Top'#2#0#5'Width'#3#212#0#7'Caption'#6' Status, co' +'mmands, and responses:'#11'ParentColor'#8#0#0#5'TMemo'#14'GoToResultMemo'#22 +'AnchorSideLeft.Control'#7#16'AziFloatSpinEdit'#19'AnchorSideLeft.Side'#7#9 +'asrBottom'#21'AnchorSideTop.Control'#7#22'LabelStatusAndCommands'#18'Anchor' +'SideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#9'TabSheet2'#20 +'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#9'TabSh' +'eet2'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#190#0#6'Height'#3 +#173#0#3'Top'#2#23#5'Width'#3#216#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRig' +'ht'#8'akBottom'#0#20'BorderSpacing.Around'#2#4#10'ScrollBars'#7#10'ssAutoBo' +'th'#8'TabOrder'#2#1#0#0#14'TFloatSpinEdit'#16'ZenFloatSpinEdit'#4'Left'#2#8 +#6'Height'#2'$'#3'Top'#2'4'#5'Width'#2'X'#9'Alignment'#7#14'taRightJustify' +#13'DecimalPlaces'#2#3#8'MaxValue'#5#0#0#0#0#0#0#0#180#5'@'#8'TabOrder'#2#2#0 +#0#14'TFloatSpinEdit'#16'AziFloatSpinEdit'#22'AnchorSideLeft.Control'#7#16'Z' +'enFloatSpinEdit'#19'AnchorSideLeft.Side'#7#9'asrBottom'#24'AnchorSideBottom' +'.Control'#7#16'ZenFloatSpinEdit'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4 +'Left'#2'b'#6'Height'#2'$'#3'Top'#2'4'#5'Width'#2'X'#9'Alignment'#7#14'taRig' +'htJustify'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2#2 +#13'DecimalPlaces'#2#3#8'MaxValue'#5#0#0#0#0#0#0#128#179#7'@'#8'TabOrder'#2#3 +#0#0#6'TLabel'#15'ZenithEditLabel'#22'AnchorSideLeft.Control'#7#16'ZenFloatS' +'pinEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control' +#7#16'ZenFloatSpinEdit'#4'Left'#2#8#6'Height'#2#19#3'Top'#2'!'#5'Width'#2',' +#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#7'Zenith:'#11'ParentColo' +'r'#8#0#0#6'TLabel'#16'AzimuthEditLabel'#22'AnchorSideLeft.Control'#7#16'Azi' +'FloatSpinEdit'#24'AnchorSideBottom.Control'#7#16'AziFloatSpinEdit'#4'Left'#2 +'b'#6'Height'#2#19#3'Top'#2#10#5'Width'#2'3'#7'Anchors'#11#6'akLeft'#0#7'Cap' +'tion'#6#7'Azimuth'#11'ParentColor'#8#0#0#7'TButton'#16'GoToZenAziButton'#22 +'AnchorSideLeft.Control'#7#15'GetZenAziButton'#19'AnchorSideLeft.Side'#7#9'a' +'srBottom'#21'AnchorSideTop.Control'#7#15'GetZenAziButton'#4'Left'#2'V'#6'He' +'ight'#2#25#3'Top'#2#4#5'Width'#2'K'#7'Caption'#6#3'Set'#8'TabOrder'#2#4#7'O' +'nClick'#7#21'GoToZenAziButtonClick'#0#0#0#0#6'TLabel'#16'GoToMachinelabel' +#21'AnchorSideTop.Control'#7#17'GoToMachineSelect'#18'AnchorSideTop.Side'#7#9 +'asrCenter'#23'AnchorSideRight.Control'#7#13'GoToPortLabel'#20'AnchorSideRig' +'ht.Side'#7#9'asrBottom'#4'Left'#2#20#6'Height'#2#19#3'Top'#2#15#5'Width'#2 +'8'#7'Anchors'#11#5'akTop'#7'akRight'#0#7'Caption'#6#8'Machine:'#11'ParentCo' +'lor'#8#0#0#9'TComboBox'#17'GoToMachineSelect'#21'AnchorSideTop.Control'#7#12 +'SynScanSheet'#4'Left'#2'O'#6'Height'#2'$'#3'Top'#2#6#5'Width'#3#223#0#7'Anc' +'hors'#11#5'akTop'#0#17'BorderSpacing.Top'#2#6#10'ItemHeight'#2#0#13'Items.S' +'trings'#1#6#9'SynscanV4'#6#11'iOptron8408'#0#8'TabOrder'#2#3#8'OnChange'#7 +#23'GoToMachineSelectChange'#0#0#6'TLabel'#11'ScriptLabel'#21'AnchorSideTop.' +'Control'#7#23'GoToCommandFileComboBox'#18'AnchorSideTop.Side'#7#9'asrCenter' +#23'AnchorSideRight.Control'#7#23'GoToCommandFileComboBox'#4'Left'#2'%'#6'He' +'ight'#2#19#3'Top'#3#135#0#5'Width'#2''''#7'Anchors'#11#5'akTop'#7'akRight'#0 +#19'BorderSpacing.Right'#2#3#7'Caption'#6#7'Script:'#11'ParentColor'#8#0#0#9 +'TComboBox'#23'GoToCommandFileComboBox'#22'AnchorSideLeft.Control'#7#14'GoTo' +'BaudSelect'#21'AnchorSideTop.Control'#7#14'GoToBaudSelect'#18'AnchorSideTop' +'.Side'#7#9'asrBottom'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2'O'#6 +'Height'#2'$'#3'Top'#2'~'#5'Width'#3#208#0#17'BorderSpacing.Top'#2#4#10'Item' +'Height'#2#0#8'TabOrder'#2#4#8'OnChange'#7#29'GoToCommandFileComboBoxChange' +#0#0#7'TButton'#20'GoToButtonScriptHelp'#4'Left'#3#24#1#6'Height'#2'"'#4'Hin' +'t'#6#20'Script file location'#3'Top'#2'x'#5'Width'#2#31#7'Caption'#6#1'?'#14 +'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#5#7'OnClick'#7#25'GoToButtonS' +'criptHelpClick'#0#0#0#0#0#17'TPairSplitterSide'#18'PairSplitterBottom'#6'Cu' +'rsor'#7#7'crArrow'#4'Left'#2#0#6'Height'#3'o'#1#3'Top'#3#28#1#5'Width'#3#232 ,#3#11'ClientWidth'#3#232#3#12'ClientHeight'#3'o'#1#0#6'TPanel'#11'BottomPane' +'l'#22'AnchorSideLeft.Control'#7#18'PairSplitterBottom'#21'AnchorSideTop.Con' +'trol'#7#18'PairSplitterBottom'#23'AnchorSideRight.Control'#7#18'PairSplitte' +'rBottom'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Contro' +'l'#7#18'PairSplitterBottom'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left' +#2#0#6'Height'#3'o'#1#3'Top'#2#0#5'Width'#3#232#3#7'Anchors'#11#5'akTop'#6'a' +'kLeft'#7'akRight'#8'akBottom'#0#12'ClientHeight'#3'o'#1#11'ClientWidth'#3 +#232#3#8'TabOrder'#2#0#0#7'TBitBtn'#11'StartButton'#18'AnchorSideTop.Side'#7 +#9'asrBottom'#24'AnchorSideBottom.Control'#7#11'BottomPanel'#21'AnchorSideBo' +'ttom.Side'#7#9'asrBottom'#4'Left'#2'w'#6'Height'#2#30#4'Hint'#6#15'Start re' +'cording'#3'Top'#3'N'#1#5'Width'#2'Z'#7'Anchors'#11#8'akBottom'#0#20'BorderS' +'pacing.Bottom'#2#2#7'Caption'#6#6'Record'#10'Glyph.Data'#10':'#9#0#0'6'#9#0 +#0'BM6'#9#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0' '#0#0#0#0#0#0 +#9#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#255#255#255#3#255#255#255#10#255#255#255#16#242#242#242#20#255#255#255 +#16#255#255#255#10#255#255#255#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#255#255#255#3#255#255#255#20#149#149#234'088'#215'`'#26#26#209#145#14#14#209 +#188#27#27#211#144'88'#215'_'#155#155#233'.'#255#255#255#20#255#255#255#2#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#227#227#227#9#230#230#247#30#30#30#209#138#7#7#208#247'++' +#221#246'DD'#232#253'VV'#238#255'DD'#232#253'++'#222#246#7#7#208#247#30#30 +#209#134#230#230#247#30#227#227#227#9#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#6#130#130#213'1'#7#7#206 +#214'%%'#219#247'pp'#245#255'ff'#243#255'SS'#241#255'GG'#240#255'TT'#242#255 +'gg'#244#255'qq'#245#255'%%'#220#247#7#7#207#213#139#139#216'.'#255#255#255#6 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255 +#1#208#208#208#27#12#12#205#189'=='#228#252'rr'#245#255'::'#236#255'""'#233 +#255'%%'#235#255'&&'#236#255'&&'#236#255'$$'#235#255';;'#237#255'rr'#245#255 +'=='#229#252#12#12#205#185#206#206#206#26#255#255#255#1#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#191#191#191#16'&&'#202'j'#25#25#214#247't' +'t'#246#255'))'#232#255'!!'#232#255'##'#234#255'%%'#236#255''''''#238#255'''' +''''#238#255'%%'#236#255'##'#234#255'++'#234#255'uu'#246#255#25#25#214#247 +''''''#199'i'#191#191#191#16#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#173#173#173#28#4#4#205#229'dd'#241#255'AA'#235#255#30#30#230#255' ' +#231#255'""'#233#255'$$'#235#255'&&'#236#255'&&'#236#255'$$'#235#255'""'#233 +#255' '#231#255'CC'#237#255'bb'#241#255#6#6#205#225#173#173#173#28#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128#2'qq'#172'+'#5#5#206#252 +'{{'#246#255#31#31#228#255#29#29#229#255#31#31#231#255'!!'#232#255'##'#234 +#255'$$'#234#255'$$'#234#255'##'#234#255'!!'#232#255#31#31#231#255'!!'#230 +#255'yy'#246#255#3#3#205#251'vv'#162')'#128#128#128#2#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#128#128#128#8'**'#183'U'#29#29#214#245'kk'#243#255#26#26#226 +#255#28#28#228#255#30#30#230#255' '#231#255'!!'#232#255'""'#233#255'!!'#233 +#255'!!'#232#255' '#231#255#30#30#230#255#28#28#228#255'kk'#243#255#29#29 +#214#245'++'#182'T'#128#128#128#8#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128 +#128#128#10#29#29#182'b))'#219#245'pp'#243#255'33'#228#255'??'#231#255'FF' +#233#255'DD'#233#255'>>'#233#255'66'#233#255'$$'#232#255#31#31#230#255#30#30 +#229#255#28#28#228#255#27#27#227#255'ee'#242#255'%%'#219#246#29#29#182'b'#128 +#128#128#10#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128#4'::'#152'9' +#16#16#209#249#155#155#248#255'VV'#232#255'VV'#233#255'XX'#234#255'YY'#235 +#255'YY'#235#255'XX'#236#255'WW'#236#255'GG'#233#255'00'#230#255#30#30#227 +#255#26#26#225#255'ww'#245#255#9#9#207#249'=='#146'6'#128#128#128#4#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'XXX '#1#1#204#242#146#146#246#255'mm' +#236#255'__'#234#255'``'#234#255'aa'#235#255'``'#235#255'``'#235#255'__'#235 +#255'\\'#234#255'ZZ'#234#255'UU'#233#255'QQ'#233#255'uu'#244#255#2#2#203#239 +'XXX '#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'JJJ'#24#6#6 ,#193#164'LL'#227#251#157#157#246#255'ii'#234#255'hh'#234#255'ii'#235#255'hh' +#235#255'gg'#235#255'ff'#235#255'cc'#235#255'``'#234#255'^^'#233#255#149#149 +#246#255'FF'#225#250#8#8#191#160'@@@'#24#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0'333'#5'))W,'#1#1#201#233#130#130#241#255#154#154#245#255 +'uu'#236#255'qq'#235#255'pp'#235#255'oo'#235#255'mm'#235#255'jj'#235#255'kk' +#234#255#146#146#244#255#130#130#241#255#3#3#202#231'**S+333'#5#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0' '#16#12#12#149'W'#8#8 +#205#244'tt'#237#254#173#173#249#255#148#148#242#255#134#134#239#255'{{'#236 +#255#130#130#238#255#141#141#241#255#168#168#248#255'||'#238#254#10#10#207 +#244#12#12#144'S"""'#15#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#11#11#11#23#11#11'zE'#1#1#199#217'44'#220#248#127 +#127#240#255#157#157#246#255#177#177#250#255#158#158#246#255#129#129#240#255 +'<<'#220#248#1#1#199#214#11#11'xD'#11#11#11#23#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#12#0 +#0#13'&'#0#0#166'{'#1#1#191#186#1#1#201#233#0#0#204#254#1#1#201#232#1#1#192 +#185#0#0#164'y'#0#0#14'$'#0#0#0#12#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#3#0#0#0#17#0#0#0#25#0#0#0'!'#0#0#13'('#0#0#0'!'#0#0#0#25#0#0#0#17#0#0#0#3#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#7'OnClick'#7#16'StartButtonClick'#14'ParentShowHint'#8 +#8'ShowHint'#9#8'TabOrder'#2#2#0#0#7'TBitBtn'#11'PauseButton'#22'AnchorSideL' +'eft.Control'#7#11'StartButton'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'An' +'chorSideTop.Control'#7#11'StartButton'#24'AnchorSideBottom.Control'#7#11'St' +'artButton'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#224#0#6'Heigh' +'t'#2#30#3'Top'#3'N'#1#5'Width'#2'Z'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#18 +'BorderSpacing.Left'#2#15#7'Caption'#6#5'Pause'#10'Glyph.Data'#10':'#9#0#0'6' +#9#0#0'BM6'#9#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0' '#0#0#0#0 +#0#0#9#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#255#255#255#11#248#248#248#19#240#240#240#20#240#240#240#20#240#240#240#20 +#240#240#240#20#247#247#247#19#255#255#255#11#0#0#0#0#255#255#255#11#247#247 +#247#19#240#240#240#20#240#240#240#20#240#240#240#20#240#240#240#20#248#248 +#248#19#255#255#255#10#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#219#219#219#18'UYW'#212'TXV'#255'TXV'#255'TXV'#255'TXV'#255'Y]['#252#202 +#203#202#21#0#0#0#0#220#220#220#20'TXV'#242'TXV'#255'TXV'#255'TXV'#255'TXV' +#255'ehf'#244#217#217#217#17#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#186#186#186#20'SWU'#240#254#254#254#255#255#255#255#255#255#255#255 +#255#255#255#255#255'kom'#254#164#165#165#25#0#0#0#0#189#189#189#21'VZX'#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255'dge'#253#186 +#186#186#19#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#159#159 +#159#21'SWU'#240#254#254#254#255#238#240#239#255#233#236#235#255#252#252#252 +#255'kom'#254#144#145#145#27#0#0#0#0#160#160#160#23'VZX'#255#255#255#255#255 +#237#238#238#255#233#236#235#255#253#253#253#255'dge'#253#159#159#159#20#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#135#135#135#23'SWU'#241 +#253#254#253#255#233#236#235#255#230#233#232#255#251#252#252#255'kom'#254'}~' +'~'#28#0#0#0#0#136#136#136#24'VZX'#255#255#255#255#255#232#235#234#255#230 +#233#231#255#253#253#253#255'cfe'#253#134#134#134#21#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'qqq'#24'SWU'#241#253#253#253#255#227#231#230 ,#255#225#229#227#255#251#251#251#255'kom'#254'lll'#29#0#0#0#0'qqq'#25'VZX' +#255#254#255#255#255#226#230#229#255#224#229#227#255#252#253#252#255'cfe'#253 +'qqq'#23#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'___'#25'SWU' +#241#253#253#253#255#226#229#228#255#220#225#223#255#250#251#250#255'kom'#254 +']^]'#31#0#0#0#0'___'#27'VZX'#255#254#254#254#255#220#225#223#255#219#224#222 +#255#252#252#252#255'cfe'#253']]]'#24#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0'MMM'#27'SWU'#241#253#253#253#255#231#234#232#255#230#233#231 +#255#249#250#250#255'kom'#254'NON '#0#0#0#0'NNN'#28'VZX'#255#254#254#254#255 +#217#222#219#255#212#219#216#255#252#252#252#255'cfe'#253'LLL'#25#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'>>>'#28'SWU'#241#252#253#253#255 +#227#231#229#255#227#230#229#255#248#249#249#255'kom'#254'ABB!'#0#0#0#0'>>>' +#30'VZX'#255#254#254#254#255#227#231#229#255#226#230#228#255#251#252#251#255 +'cfe'#253'<<<'#27#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'//' +'/'#29'RVT'#241#252#252#252#255#224#228#226#255#224#228#226#255#248#249#248 +#255'kom'#254'455#'#0#0#0#0'000'#31'VZX'#255#254#254#254#255#224#228#226#255 +#224#228#226#255#251#251#251#255'cfe'#253'...'#28#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0'"""'#31'RVT'#241#252#252#252#255#223#227#225#255 +#223#228#226#255#248#249#248#255'kom'#254')*)$'#0#0#0#0'"""!VZX'#255#254#254 +#254#255#223#228#226#255#223#228#226#255#251#251#251#255'cfe'#253'"""'#29#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#23#23#23' RVT'#241#252 +#252#252#255#223#227#225#255#223#228#226#255#248#249#248#255'kom'#254#31' %' +#0#0#0#0#23#23#23'"VZX'#255#254#254#254#255#223#228#226#255#223#228#226#255 +#251#251#251#255'bfe'#253#22#22#22#31#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#12#12#12'"RVT'#241#252#252#252#255#255#255#255#255#255#255 +#255#255#255#255#255#255'kom'#254#22#22#22'&'#0#0#0#0#12#12#12'$VZX'#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255'bfe'#253#11#11 +#11' '#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#2#2'#PTR' +#214'SWU'#255'SWU'#255'SWU'#255'SWU'#255'VZX'#249#8#8#8'%'#0#0#0#0#2#2#2'%RV' +'T'#242'SWU'#255'SWU'#255'SWU'#255'SWU'#255'\a^'#236#1#1#1'!'#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#22#0#0#0'&'#0#0#0'&'#0#0#0'&' +#0#0#0'&'#0#0#0'&'#0#0#0'&'#0#0#0#23#0#0#0#0#0#0#0#27#0#0#0'&'#0#0#0'&'#0#0#0 +'&'#0#0#0'&'#0#0#0'&'#0#0#0'&'#0#0#0#21#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#7'OnClick'#7#16'PauseButtonClick' +#8'TabOrder'#2#3#0#0#7'TBitBtn'#10'StopButton'#22'AnchorSideLeft.Control'#7 +#11'PauseButton'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Con' +'trol'#7#11'StartButton'#24'AnchorSideBottom.Control'#7#11'PauseButton'#21'A' +'nchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3'I'#1#6'Height'#2#30#4'Hint'#6 +#14'Stop recording'#3'Top'#3'N'#1#5'Width'#2'Z'#7'Anchors'#11#6'akLeft'#8'ak' +'Bottom'#0#18'BorderSpacing.Left'#2#15#7'Caption'#6#4'Stop'#10'Glyph.Data'#10 +':'#9#0#0'6'#9#0#0'BM6'#9#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0 +' '#0#0#0#0#0#0#9#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#11#255#255#255#18#255#255#255#18#255 ,#255#255#18#255#255#255#18#255#255#255#18#255#255#255#18#255#255#255#18#255 +#255#255#18#255#255#255#18#255#255#255#18#255#255#255#18#255#255#255#18#255 +#255#255#18#255#255#255#13#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#240#240#240#17'UZW'#219'SWU'#255'SWU'#255'SWU'#255'SW' +'U'#255'SWU'#255'SWU'#255'SWU'#255'SWU'#255'SWU'#255'SWU'#255'SWU'#255'UXW' +#226#242#242#242#19#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#227#227#227#18'SWU'#249#253#253#253#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255'SWU'#255#219 +#219#219#21#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#215#215#215#19'SWU'#249#253#253#253#255#241#242#241#255#238#239#239 +#255#236#238#237#255#235#237#236#255#233#236#234#255#231#234#233#255#230#233 +#232#255#228#232#230#255#227#230#229#255#255#255#255#255'SWU'#255#209#209#209 +#22#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#182#182#182#21'SWU'#249#253#253#253#255#238#240#239#255#235#237#236#255#233 +#236#235#255#232#235#234#255#231#234#232#255#229#233#231#255#228#231#230#255 +#227#230#229#255#225#229#227#255#255#255#255#255'SWU'#255#181#181#181#24#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#174#174 +#174#22'SWU'#249#252#253#252#255#231#234#233#255#228#232#230#255#228#231#230 +#255#227#230#229#255#226#230#228#255#225#229#227#255#223#228#226#255#222#227 +#225#255#221#226#224#255#255#255#255#255'SWU'#255#163#163#163#25#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#155#155#155#23 +'SWU'#249#252#252#252#255#225#229#227#255#221#226#224#255#221#225#223#255#220 +#225#223#255#219#224#222#255#218#224#221#255#218#223#221#255#217#222#220#255 +#216#221#219#255#255#255#255#255'SWU'#255#142#142#142#27#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'zzz'#25'SWU'#249#251#252 +#251#255#223#227#225#255#219#224#221#255#217#223#220#255#216#222#219#255#214 +#221#218#255#214#220#217#255#213#219#216#255#211#218#215#255#209#216#213#255 +#255#255#255#255'SWU'#255#128#128#128#28#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'lll'#26'SWU'#249#250#251#251#255#229#232 +#231#255#226#230#228#255#226#230#228#255#226#230#228#255#226#230#228#255#225 +#229#228#255#225#229#227#255#225#229#227#255#224#229#227#255#255#255#255#255 +'SWU'#255'ooo'#30#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0'^^^'#27'SWU'#249#250#250#250#255#225#229#228#255#223#227#225#255 +#223#227#225#255#223#227#225#255#223#227#225#255#223#227#225#255#223#227#225 +#255#223#227#225#255#223#227#225#255#255#255#255#255'SWU'#255'ZZZ'#31#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'III'#28'SWU' +#249#250#250#250#255#225#229#228#255#223#227#225#255#223#227#225#255#223#227 +#225#255#223#227#225#255#223#227#225#255#223#227#225#255#223#227#225#255#223 +#227#225#255#255#255#255#255'SWU'#255'HHH '#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'333'#30'SWU'#249#250#250#250#255#224 +#228#227#255#222#226#224#255#222#226#224#255#222#227#225#255#222#227#225#255 +#222#227#225#255#222#227#225#255#223#227#225#255#223#227#225#255#255#255#255 +#255'SWU'#255'555"'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0'!!!'#31'SWU'#249#250#250#250#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255'SWU'#255#29#29#29'#' +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#8#8 +#8' PUS'#222'SWU'#255'SWU'#255'SWU'#255'SWU'#255'SWU'#255'SWU'#255'SWU'#255 +'SWU'#255'SWU'#255'SWU'#255'SWU'#255'RUT'#228#14#14#14'%'#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#23#0#0#0'&'#0#0#0 +'&'#0#0#0'&'#0#0#0'&'#0#0#0'&'#0#0#0'&'#0#0#0'&'#0#0#0'&'#0#0#0'&'#0#0#0'&'#0 +#0#0'&'#0#0#0'&'#0#0#0'&'#0#0#0#27#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#1#0#0#0#1#0#0#0#1#0#0#0 +#1#0#0#0#1#0#0#0#1#0#0#0#1#0#0#0#1#0#0#0#1#0#0#0#1#0#0#0#1#0#0#0#1#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#7'OnClick'#7#15'StopButtonClick'#14'P' +'arentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#1#7'TabStop'#8#0#0#7'TBitBtn' +#11'CloseButton'#21'AnchorSideTop.Control'#7#11'StartButton'#20'AnchorSideRi' +'ght.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#10'StopButton'#21'A' +'nchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3'}'#3#6'Height'#2#30#3'Top'#3 +'N'#1#5'Width'#2'Z'#7'Anchors'#11#7'akRight'#8'akBottom'#0#19'BorderSpacing.' +'Right'#2#14#7'Caption'#6#6'&Close'#10'Glyph.Data'#10'z'#6#0#0'v'#6#0#0'BMv' +#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#20#0#0#0#20#0#0#0#1#0' '#0#0#0#0#0'@'#6#0#0 +'d'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'DDD1EEE'#130'MMM'#10#0 +#0#0#0#0#0#0#0'MMM'#10'EEE'#130'DDD1'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'EEE'#130'DDD'#255'D' +'DD'#190'MMM'#10'MMM'#10'DDD'#190'DDD'#255'EEE'#130#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'MMM' +#10'CCC'#189'DDD'#255'EEE'#196'DDD'#191'DDD'#255'DDD'#194'@@@'#12#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0'MMM'#10'DDD'#192'DDD'#255'DDD'#255'EEE'#197'@@@'#12#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0'MMM'#10'DDD'#191'DDD'#255'DDD'#255'EEE'#197'@@@' +#12#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'MMM'#10'DDD'#188'DDD'#255'EEE'#196'DDD'#192'D' +'DD'#255'DDD'#194'@@@'#12#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'EEE'#130'DDD'#255'DDD'#190'MMM' +#10'MMM'#10'DDD'#190'DDD'#255'EEE'#130#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'BBB2EEE'#130'MMM' +#10#0#0#0#0#0#0#0#0'MMM'#10'EEE'#130'DDD1'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#11'ModalResul' +'t'#2#11#7'OnClick'#7#16'CloseButtonClick'#8'TabOrder'#2#0#7'TabStop'#8#0#0 +#12'TPageControl'#12'PageControl3'#22'AnchorSideLeft.Control'#7#11'BottomPan' +'el'#21'AnchorSideTop.Control'#7#11'BottomPanel'#23'AnchorSideRight.Control' +#7#11'BottomPanel'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBott' +'om.Control'#7#11'StartButton'#4'Left'#2#1#6'Height'#3'M'#1#3'Top'#2#1#5'Wid' +'th'#3#230#3#10'ActivePage'#7#9'LookSheet'#7'Anchors'#11#5'akTop'#6'akLeft'#7 +'akRight'#8'akBottom'#0#8'TabIndex'#2#0#8'TabOrder'#2#4#11'TabPosition'#7#6 +'tpLeft'#0#9'TTabSheet'#9'LookSheet'#7'Caption'#6#4'Look'#12'ClientHeight'#3 +'I'#1#11'ClientWidth'#3#166#3#0#9'TCheckBox'#11'InvertScale'#19'AnchorSideLe' +'ft.Side'#7#9'asrBottom'#4'Left'#2#24#6'Height'#2#23#4'Hint'#6#18'Invert mps' +'as scale'#3'Top'#2#16#5'Width'#2'A'#7'Caption'#6#6'Invert'#14'ParentShowHin' +'t'#8#8'TabOrder'#2#0#8'OnChange'#7#17'InvertScaleChange'#0#0#9'TCheckBox'#19 ,'TemperatureCheckBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTo' +'p.Control'#7#11'InvertScale'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2 +#24#6'Height'#2#23#4'Hint'#6#23'Show temperature scale.'#3'Top'#2''''#5'Widt' +'h'#2'j'#7'Caption'#6#11'Temperature'#14'ParentShowHint'#8#8'ShowHint'#9#8'T' +'abOrder'#2#1#8'OnChange'#7#25'TemperatureCheckBoxChange'#0#0#9'TCheckBox'#13 +'NightCheckBox'#22'AnchorSideLeft.Control'#7#19'TemperatureCheckBox'#21'Anch' +'orSideTop.Control'#7#19'TemperatureCheckBox'#18'AnchorSideTop.Side'#7#9'asr' +'Bottom'#4'Left'#2#24#6'Height'#2#23#4'Hint'#6#15'Night mode plot'#3'Top'#2 +'>'#5'Width'#3#134#0#7'Caption'#6#16'Night mode chart'#14'ParentShowHint'#8#8 +'ShowHint'#9#8'TabOrder'#2#2#8'OnChange'#7#19'NightCheckBoxChange'#0#0#9'TGr' +'oupBox'#17'FixedTimeGroupBox'#22'AnchorSideLeft.Control'#7#21'FixedReadings' +'GroupBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7 +#9'LookSheet'#4'Left'#3#211#1#6'Height'#3#184#0#3'Top'#2#0#5'Width'#3#144#1 +#18'BorderSpacing.Left'#2#3#7'Caption'#6#20'Fixed time (x) axis '#12'ClientH' +'eight'#3#164#0#11'ClientWidth'#3#142#1#8'TabOrder'#2#3#0#11'TRadioGroup'#15 +'FixedTimeRadios'#22'AnchorSideLeft.Control'#7#17'FixedTimeGroupBox'#21'Anch' +'orSideTop.Control'#7#17'FixedTimeGroupBox'#24'AnchorSideBottom.Control'#7#17 +'FixedTimeGroupBox'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#0#6'H' +'eight'#3#164#0#3'Top'#2#0#5'Width'#3#189#0#7'Anchors'#11#5'akTop'#6'akLeft' +#8'akBottom'#0#8'AutoFill'#9#28'ChildSizing.LeftRightSpacing'#2#6#29'ChildSi' +'zing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.Enlar' +'geVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal' +#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18 +'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.Cont' +'rolsPerLine'#2#1#12'ClientHeight'#3#162#0#11'ClientWidth'#3#187#0#13'Items.' +'Strings'#1#6#4'Auto'#6#5'Fixed'#6#17'Sunset to Sunrise'#6#13'Civil evening' +#6#16'Nautical evening'#6#20'Astronomical evening'#0#7'OnClick'#7#20'FixedTi' +'meRadiosClick'#11'ParentColor'#8#8'TabOrder'#2#0#0#0#12'TPageControl'#20'Fi' +'xedTimePageControl'#22'AnchorSideLeft.Control'#7#15'FixedTimeRadios'#19'Anc' +'horSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#15'FixedTimeRa' +'dios'#23'AnchorSideRight.Control'#7#17'FixedTimeGroupBox'#20'AnchorSideRigh' +'t.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#15'FixedTimeRadios'#21 +'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#189#0#6'Height'#3#164#0#3'T' +'op'#2#0#5'Width'#3#209#0#10'ActivePage'#7#14'FixedFixedheet'#7'Anchors'#11#5 +'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#8'ShowTabs'#8#8'TabIndex'#2#1#8'T' +'abOrder'#2#1#0#9'TTabSheet'#15'FixedBlankSheet'#7'Caption'#6#15'FixedBlankS' +'heet'#0#0#9'TTabSheet'#14'FixedFixedheet'#7'Caption'#6#14'FixedFixedheet'#12 +'ClientHeight'#3#160#0#11'ClientWidth'#3#199#0#0#9'TSpinEdit'#17'FixedFromSp' +'inEdit'#4'Left'#2'9'#6'Height'#2'$'#3'Top'#2'('#5'Width'#2'9'#8'MaxValue'#2 +#23#8'OnChange'#7#23'FixedFromSpinEditChange'#8'TabOrder'#2#0#0#0#9'TSpinEdi' +'t'#15'FixedToSpinEdit'#4'Left'#2'9'#6'Height'#2'$'#3'Top'#2'Q'#5'Width'#2'9' +#8'MaxValue'#2#23#8'OnChange'#7#21'FixedToSpinEditChange'#8'TabOrder'#2#1#0#0 +#6'TLabel'#7'Label17'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTo' +'p.Control'#7#17'FixedFromSpinEdit'#18'AnchorSideTop.Side'#7#9'asrCenter'#23 +'AnchorSideRight.Control'#7#17'FixedFromSpinEdit'#4'Left'#2#21#6'Height'#2#19 +#3'Top'#2'1'#5'Width'#2'$'#7'Anchors'#11#5'akTop'#7'akRight'#0#7'Caption'#6#5 +'From:'#11'ParentColor'#8#0#0#6'TLabel'#7'Label18'#21'AnchorSideTop.Control' +#7#15'FixedToSpinEdit'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRi' +'ght.Control'#7#15'FixedToSpinEdit'#4'Left'#2''''#6'Height'#2#19#3'Top'#2'Z' +#5'Width'#2#18#7'Anchors'#11#5'akTop'#7'akRight'#0#7'Caption'#6#3'To:'#11'Pa' +'rentColor'#8#0#0#6'TLabel'#13'From12hrLabel'#4'Left'#3#131#0#6'Height'#2#19 +#3'Top'#2'/'#5'Width'#2'$'#7'Caption'#6#5'xx xm'#11'ParentColor'#8#0#0#6'TLa' +'bel'#11'To12hrLabel'#4'Left'#3#131#0#6'Height'#2#19#3'Top'#2'X'#5'Width'#2 +'$'#7'Caption'#6#5'xx xm'#11'ParentColor'#8#0#0#0#9'TTabSheet'#18'FixedTwili' +'ghtSheet'#7'Caption'#6#18'FixedTwilightSheet'#12'ClientHeight'#3#160#0#11'C' +'lientWidth'#3#199#0#0#5'TMemo'#13'FixedTimeMemo'#22'AnchorSideLeft.Control' +#7#18'FixedTwilightSheet'#21'AnchorSideTop.Control'#7#18'FixedTwilightSheet' +#23'AnchorSideRight.Control'#7#18'FixedTwilightSheet'#20'AnchorSideRight.Sid' +'e'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#18'FixedTwilightSheet'#21 +'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#3#160#0#3'Top'#2 +#0#5'Width'#3#199#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0 +#13'Lines.Strings'#1#6'/Twilight evening time range will be shown here.'#0#8 +'TabOrder'#2#0#0#0#0#0#0#9'TGroupBox'#21'FixedReadingsGroupBox'#21'AnchorSid' +'eTop.Control'#7#9'LookSheet'#20'AnchorSideRight.Side'#7#9'asrBottom'#21'Anc' ,'horSideBottom.Side'#7#9'asrBottom'#4'Left'#3#189#0#6'Height'#2'<'#3'Top'#2#0 +#5'Width'#3#19#1#7'Anchors'#11#5'akTop'#0#7'Caption'#6#29'Fixed readings ran' +'ge (y axis)'#12'ClientHeight'#2'('#11'ClientWidth'#3#17#1#8'TabOrder'#2#4#0 +#9'TSpinEdit'#19'FromReadingSpinEdit'#21'AnchorSideTop.Control'#7#17'ToReadi' +'ngSpinEdit'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Contro' +'l'#7#14'ToReadingLabel'#4'Left'#3#141#0#6'Height'#2'$'#3'Top'#2#0#5'Width'#2 +'2'#9'Alignment'#7#14'taRightJustify'#7'Anchors'#11#5'akTop'#7'akRight'#0#19 +'BorderSpacing.Right'#2#15#8'MaxValue'#2#26#8'OnChange'#7#25'FromReadingSpin' +'EditChange'#8'TabOrder'#2#0#0#0#9'TSpinEdit'#17'ToReadingSpinEdit'#23'Ancho' +'rSideRight.Control'#7#21'FixedReadingsGroupBox'#20'AnchorSideRight.Side'#7#9 +'asrBottom'#4'Left'#3#223#0#6'Height'#2'$'#3'Top'#2#0#5'Width'#2'2'#9'Alignm' +'ent'#7#14'taRightJustify'#7'Anchors'#11#5'akTop'#7'akRight'#0#8'MaxValue'#2 +#26#8'OnChange'#7#23'ToReadingSpinEditChange'#8'TabOrder'#2#1#0#0#6'TLabel' +#16'FromReadingLabel'#21'AnchorSideTop.Control'#7#17'ToReadingSpinEdit'#18'A' +'nchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#19'FromRead' +'ingSpinEdit'#4'Left'#2'i'#6'Height'#2#19#3'Top'#2#9#5'Width'#2'$'#7'Anchors' +#11#5'akTop'#7'akRight'#0#7'Caption'#6#5'From:'#11'ParentColor'#8#0#0#6'TLab' +'el'#14'ToReadingLabel'#21'AnchorSideTop.Control'#7#17'ToReadingSpinEdit'#18 +'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#17'ToReadi' +'ngSpinEdit'#4'Left'#3#206#0#6'Height'#2#19#3'Top'#2#9#5'Width'#2#17#7'Ancho' +'rs'#11#5'akTop'#7'akRight'#0#7'Caption'#6#3'to:'#11'ParentColor'#8#0#0#10'T' +'ToggleBox'#23'FixedAutoReadingsToggle'#22'AnchorSideLeft.Control'#7#21'Fixe' +'dReadingsGroupBox'#21'AnchorSideTop.Control'#7#17'ToReadingSpinEdit'#18'Anc' +'horSideTop.Side'#7#9'asrCenter'#4'Left'#2#0#6'Height'#2#25#3'Top'#2#6#5'Wid' +'th'#2'K'#7'Caption'#6#9'FixedAuto'#8'TabOrder'#2#2#8'OnChange'#7#29'FixedAu' +'toReadingsToggleChange'#0#0#0#0#9'TTabSheet'#11'StatusSheet'#7'Caption'#6#6 +'Status'#12'ClientHeight'#3'I'#1#11'ClientWidth'#3#166#3#0#6'TLabel'#16'Curr' +'entTimeLabel'#22'AnchorSideLeft.Control'#7#11'StatusSheet'#21'AnchorSideTop' +'.Control'#7#11'CurrentTime'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2 +#30#6'Height'#2#19#3'Top'#2#1#5'Width'#2'S'#18'BorderSpacing.Left'#2#30#19'B' +'orderSpacing.Right'#2#3#7'Caption'#6#13'Current time:'#11'ParentColor'#8#0#0 +#11'TStaticText'#11'CurrentTime'#22'AnchorSideLeft.Control'#7#16'CurrentTime' +'Label'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#11 +'StatusSheet'#4'Left'#2't'#6'Height'#2#20#3'Top'#2#0#5'Width'#3#168#0#9'Alig' +'nment'#7#8'taCenter'#8'TabOrder'#2#0#0#0#6'TLabel'#17'NextRecordAtLabel'#21 +'AnchorSideTop.Control'#7#12'NextRecordAt'#18'AnchorSideTop.Side'#7#9'asrCen' +'ter'#23'AnchorSideRight.Control'#7#12'NextRecordAt'#4'Left'#2#22#6'Height'#2 +#19#3'Top'#2#22#5'Width'#2'['#7'Anchors'#11#5'akTop'#7'akRight'#0#19'BorderS' +'pacing.Right'#2#3#7'Caption'#6#15'Next record at:'#11'ParentColor'#8#0#0#11 +'TStaticText'#12'NextRecordAt'#22'AnchorSideLeft.Control'#7#11'CurrentTime' +#21'AnchorSideTop.Control'#7#11'CurrentTime'#18'AnchorSideTop.Side'#7#9'asrB' +'ottom'#4'Left'#2't'#6'Height'#2#21#3'Top'#2#21#5'Width'#3#168#0#9'Alignment' +#7#8'taCenter'#17'BorderSpacing.Top'#2#1#11'BorderStyle'#7#9'sbsSingle'#8'Ta' +'bOrder'#2#2#0#0#6'TLabel'#7'LabelIn'#22'AnchorSideLeft.Control'#7#12'NextRe' +'cordAt'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7 +#12'NextRecordAt'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3'"'#1#6'Hei' +'ght'#2#19#3'Top'#2#22#5'Width'#2#11#18'BorderSpacing.Left'#2#6#7'Caption'#6 +#2'in'#11'ParentColor'#8#0#0#11'TStaticText'#12'NextRecordIn'#22'AnchorSideL' +'eft.Control'#7#7'LabelIn'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorS' +'ideTop.Control'#7#12'NextRecordAt'#18'AnchorSideTop.Side'#7#9'asrCenter'#4 +'Left'#3'3'#1#6'Height'#2#21#3'Top'#2#21#5'Width'#2'l'#9'Alignment'#7#8'taCe' +'nter'#18'BorderSpacing.Left'#2#6#11'BorderStyle'#7#9'sbsSingle'#8'TabOrder' +#2#3#0#0#6'TLabel'#18'RecordsloggedLabel'#21'AnchorSideTop.Control'#7#13'Rec' +'ordsLogged'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Contro' +'l'#7#13'RecordsLogged'#4'Left'#2#14#6'Height'#2#19#3'Top'#2','#5'Width'#2'c' +#7'Anchors'#11#5'akTop'#7'akRight'#0#19'BorderSpacing.Right'#2#3#7'Caption'#6 +#15'Records logged:'#11'ParentColor'#8#0#0#11'TStaticText'#13'RecordsLogged' +#22'AnchorSideLeft.Control'#7#11'CurrentTime'#21'AnchorSideTop.Control'#7#12 +'NextRecordAt'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2't'#6'Height'#2 +#21#3'Top'#2'+'#5'Width'#2'd'#9'Alignment'#7#8'taCenter'#17'BorderSpacing.To' +'p'#2#1#11'BorderStyle'#7#9'sbsSingle'#8'TabOrder'#2#4#0#0#6'TLabel'#11'Labe' +'linfile'#22'AnchorSideLeft.Control'#7#13'RecordsLogged'#19'AnchorSideLeft.S' +'ide'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#13'RecordsLogged'#18'Anchor' +'SideTop.Side'#7#9'asrCenter'#4'Left'#3#219#0#6'Height'#2#19#3'Top'#2','#5'W' ,'idth'#2#11#18'BorderSpacing.Left'#2#3#7'Caption'#6#2'in'#11'ParentColor'#8#0 +#0#11'TStaticText'#11'FilesLogged'#22'AnchorSideLeft.Control'#7#11'Labelinfi' +'le'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#13'R' +'ecordsLogged'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#233#0#6'Heigh' +'t'#2#21#4'Hint'#6',A new file is created each day of recording.'#3'Top'#2'+' +#5'Width'#2'P'#9'Alignment'#7#8'taCenter'#18'BorderSpacing.Left'#2#3#11'Bord' +'erStyle'#7#9'sbsSingle'#8'TabOrder'#2#5#0#0#6'TLabel'#10'FilesLabel'#22'Anc' +'horSideLeft.Control'#7#11'FilesLogged'#19'AnchorSideLeft.Side'#7#9'asrBotto' +'m'#21'AnchorSideTop.Control'#7#13'RecordsLogged'#18'AnchorSideTop.Side'#7#9 +'asrCenter'#4'Left'#3'<'#1#6'Height'#2#19#4'Hint'#6',A new file is created e' +'ach day of recording.'#3'Top'#2','#5'Width'#2#25#18'BorderSpacing.Left'#2#3 +#7'Caption'#6#5'files'#11'ParentColor'#8#14'ParentShowHint'#8#8'ShowHint'#9#0 +#0#7'TBitBtn'#14'OpenFileButton'#22'AnchorSideLeft.Control'#7#10'FilesLabel' +#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#13'Recor' +'dsLogged'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3'U'#1#6'Height'#2 +#29#4'Hint'#6#14'Open .dat file'#3'Top'#2'+'#5'Width'#2#29#10'Glyph.Data'#10 +':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0 +' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0'@NNoBNN'#245'>JJ'#255 +'>JJ'#255'>JJ'#255'>JJ'#255'>JJ'#255'>JJ'#255'>JJ'#255'>JJ'#255'>JJ'#255'>JJ' +#255'>JJ'#255'>JJ'#255'BNN'#245'@MMpERR'#253#136#155#155#255#154#172#172#255 +#155#173#173#255#156#174#174#255#158#175#175#255#159#176#176#255#161#177#177 +#255#159#175#175#255#156#173#173#255#153#170#170#255#151#167#167#255#147#165 +#165#255#144#162#162#255'z'#140#140#255'CQQ'#254'JXW'#255#184#197#195#255#171 +#186#184#255#170#186#185#255#171#186#184#255#169#184#183#255#169#184#182#255 +#169#183#183#255#167#182#180#255#166#181#179#255#164#179#178#255#163#177#176 +#255#162#177#175#255#160#174#172#255#163#177#176#255'JXW'#255'Rca'#255#179 +#193#191#255#184#197#196#255#182#195#194#255#180#193#193#255#170#185#183#255 +#156#173#171#255#150#168#167#255#150#168#166#255#148#166#164#255#148#165#164 +#255#147#165#163#255#146#163#161#255#145#162#161#255#168#181#179#255'Rba'#255 +'Wif'#253'\ol'#255'\ol'#255'\ol'#255'`sp'#255#145#161#160#255#179#191#191#255 +#185#197#196#255#184#196#195#255#183#195#194#255#182#193#193#255#181#192#192 +#255#180#191#191#255#178#190#189#255#173#185#185#255'Zlj'#255'M\['#251'Vgg' +#255'Vgg'#255'Vgg'#255'UZX'#255#162#175#173#255'i|y'#255'g{x'#255'g{x'#255'g' +'{x'#255'fzw'#255'fzw'#255'fzw'#255'dxu'#255'dxu'#255'atr'#255'Pa_'#251'Vgg' +#255'Vgg'#255'Vgg'#255'SWU'#255#255#255#255#255#182#189#186#255#179#187#184 +#255#179#187#184#255#179#187#184#255#179#187#184#255#179#187#184#255#250#251 +#251#255'SXV'#255'Wgg'#255'Qb`'#255'Ted'#251'Ykj'#255'Ykj'#255'Ykj'#255'SWU' +#255#255#255#255#255#236#238#238#255#236#238#238#255#236#238#238#255#236#238 +#238#255#236#238#238#255#236#238#238#255#255#255#255#255'SWU'#255'Ykj'#255'U' +'fd'#255'Wig'#251'm'#127'}'#255'eyw'#255'eyw'#255'SWU'#255#255#255#255#255 +#182#189#186#255#182#189#186#255#182#189#186#255#182#189#186#255#182#189#186 +#255#182#189#186#255#255#255#255#255'SWU'#255'eyw'#255'Xjg'#255'[nl'#251#132 +#151#148#255'q'#135#132#255'q'#135#132#255'UYW'#255#251#251#251#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#251#251#251#255'UYW'#255'v'#140#137#255'[nk'#255'^rp'#251#153 +#170#168#255'|'#147#144#255'|'#147#144#255'm|z'#255'UYW'#255'SWU'#255'SWU' +#255'SWU'#255'SWU'#255'SWU'#255'SWU'#255'UYW'#255'v'#131#129#255#132#152#150 +#255'`so'#247'cvs'#251#164#180#178#255'|'#147#144#255'|'#147#144#255'|'#147 +#144#255'|'#147#144#255#141#161#158#255#143#160#158#254'eyv'#251'cwt'#255'cw' +'t'#255'cwt'#255'dwt'#255'cvt'#255'cxu'#247'dxsscxu'#244#168#183#181#255#168 +#183#181#255#166#181#179#255#164#180#178#255#161#178#176#255#155#172#170#255 +'g|y'#245'dxs3'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0'bxtueyv'#249'fzw'#252'fzw'#252'fzw' +#252'fyw'#252'eyv'#240'dtr\'#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#128#128#128#4'`'#128#128#8'`'#128#128#8'`'#128#128#8'`'#128#128#8'UUU' +#3#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#7'OnClick'#7#19'OpenFil' +'eButtonClick'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#1#7'TabStop' +#8#0#0#6'TLabel'#18'RecordsMissedLabel'#21'AnchorSideTop.Control'#7#13'Recor' +'dsMissed'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control' ,#7#13'RecordsMissed'#4'Left'#2#14#6'Height'#2#19#3'Top'#2'A'#5'Width'#2'c'#7 +'Anchors'#11#5'akTop'#7'akRight'#0#19'BorderSpacing.Right'#2#3#7'Caption'#6 +#15'Records missed:'#11'ParentColor'#8#0#0#11'TStaticText'#13'RecordsMissed' +#22'AnchorSideLeft.Control'#7#11'CurrentTime'#21'AnchorSideTop.Control'#7#13 +'RecordsLogged'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2't'#6'Height' +#2#21#3'Top'#2'@'#5'Width'#2'd'#9'Alignment'#7#8'taCenter'#11'BorderStyle'#7 +#9'sbsSingle'#8'TabOrder'#2#6#0#0#6'TLabel'#16'LogfileNameLabel'#22'AnchorSi' +'deLeft.Control'#7#15'LogFileNameText'#19'AnchorSideLeft.Side'#7#9'asrBottom' +#21'AnchorSideTop.Control'#7#15'LogFileNameText'#18'AnchorSideTop.Side'#7#9 +'asrCenter'#23'AnchorSideRight.Control'#7#15'LogFileNameText'#4'Left'#2#29#6 +'Height'#2#19#3'Top'#2'o'#5'Width'#2'T'#7'Anchors'#11#5'akTop'#7'akRight'#0 +#19'BorderSpacing.Right'#2#3#7'Caption'#6#13'Logfile name:'#11'ParentColor'#8 +#0#0#5'TEdit'#15'LogFileNameText'#22'AnchorSideLeft.Control'#7#11'CurrentTim' +'e'#21'AnchorSideTop.Control'#7#13'LogFieldNames'#18'AnchorSideTop.Side'#7#9 +'asrBottom'#23'AnchorSideRight.Control'#7#11'StatusSheet'#20'AnchorSideRight' +'.Side'#7#9'asrBottom'#4'Left'#2't'#6'Height'#2#25#3'Top'#2'l'#5'Width'#3'2' +#3#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#8#17'BorderSpac' +'ing.Top'#2#1#8'ReadOnly'#9#7'TabStop'#8#8'TabOrder'#2#7#0#0#6'TLabel'#18'Lo' +'gFieldNamesLabel'#21'AnchorSideTop.Control'#7#13'LogFieldNames'#18'AnchorSi' +'deTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#13'LogFieldNames'#4 +'Left'#2''''#6'Height'#2#19#3'Top'#2'W'#5'Width'#2'M'#7'Anchors'#11#5'akTop' +#7'akRight'#0#7'Caption'#6#12'Field names:'#11'ParentColor'#8#0#0#5'TEdit'#13 +'LogFieldNames'#22'AnchorSideLeft.Control'#7#11'CurrentTime'#21'AnchorSideTo' +'p.Control'#7#13'RecordsMissed'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'Anc' +'horSideRight.Control'#7#11'StatusSheet'#20'AnchorSideRight.Side'#7#9'asrBot' +'tom'#4'Left'#2't'#6'Height'#2#21#3'Top'#2'V'#5'Width'#3'2'#3#7'Anchors'#11#5 +'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#8#17'BorderSpacing.Top'#2#1#11'Fo' +'nt.Height'#2#243#9'Font.Name'#6#11'Courier New'#10'Font.Pitch'#7#7'fpFixed' +#10'ParentFont'#8#8'TabOrder'#2#8#0#0#6'TLabel'#18'LogFieldUnitsLabel'#21'An' +'chorSideTop.Control'#7#13'LogFieldUnits'#18'AnchorSideTop.Side'#7#9'asrCent' +'er'#23'AnchorSideRight.Control'#7#13'LogFieldUnits'#4'Left'#2'2'#6'Height'#2 +#19#3'Top'#3#136#0#5'Width'#2'B'#7'Anchors'#11#5'akTop'#7'akRight'#0#7'Capti' +'on'#6#12'Field units:'#11'ParentColor'#8#0#0#5'TEdit'#13'LogFieldUnits'#22 +'AnchorSideLeft.Control'#7#11'CurrentTime'#18'AnchorSideTop.Side'#7#9'asrBot' +'tom'#23'AnchorSideRight.Control'#7#11'StatusSheet'#20'AnchorSideRight.Side' +#7#9'asrBottom'#4'Left'#2't'#6'Height'#2#21#3'Top'#3#135#0#5'Width'#3'2'#3#7 +'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#8#17'BorderSpacing.' +'Top'#2#1#11'Font.Height'#2#243#9'Font.Name'#6#11'Courier New'#10'Font.Pitch' +#7#7'fpFixed'#10'ParentFont'#8#8'TabOrder'#2#9#0#0#244#8'TSynEdit'#18'Record' +'sViewSynEdit'#22'AnchorSideLeft.Control'#7#11'CurrentTime'#21'AnchorSideTop' +'.Control'#7#13'LogFieldUnits'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'Anch' +'orSideRight.Control'#7#11'StatusSheet'#20'AnchorSideRight.Side'#7#9'asrBott' +'om'#24'AnchorSideBottom.Control'#7#11'StatusSheet'#21'AnchorSideBottom.Side' +#7#9'asrBottom'#4'Left'#2't'#6'Height'#3#170#0#3'Top'#3#157#0#5'Width'#3'2'#3 +#17'BorderSpacing.Top'#2#1#20'BorderSpacing.Bottom'#2#2#7'Anchors'#11#5'akTo' +'p'#6'akLeft'#7'akRight'#8'akBottom'#0#11'Font.Height'#2#243#9'Font.Name'#6 +#11'Courier New'#10'Font.Pitch'#7#7'fpFixed'#12'Font.Quality'#7#16'fqNonAnti' +'aliased'#11'ParentColor'#8#10'ParentFont'#8#8'TabOrder'#2#10#12'Gutter.Widt' +'h'#2'9'#19'Gutter.MouseActions'#14#0#17'RightGutter.Width'#2#0#24'RightGutt' +'er.MouseActions'#14#0#10'Keystrokes'#14#1#7'Command'#7#4'ecUp'#8'ShortCut'#2 +'&'#0#1#7'Command'#7#7'ecSelUp'#8'ShortCut'#3'& '#0#1#7'Command'#7#10'ecScro' +'llUp'#8'ShortCut'#3'&@'#0#1#7'Command'#7#6'ecDown'#8'ShortCut'#2'('#0#1#7'C' +'ommand'#7#9'ecSelDown'#8'ShortCut'#3'( '#0#1#7'Command'#7#12'ecScrollDown'#8 +'ShortCut'#3'(@'#0#1#7'Command'#7#6'ecLeft'#8'ShortCut'#2'%'#0#1#7'Command'#7 +#9'ecSelLeft'#8'ShortCut'#3'% '#0#1#7'Command'#7#10'ecWordLeft'#8'ShortCut'#3 +'%@'#0#1#7'Command'#7#13'ecSelWordLeft'#8'ShortCut'#3'%`'#0#1#7'Command'#7#7 +'ecRight'#8'ShortCut'#2''''#0#1#7'Command'#7#10'ecSelRight'#8'ShortCut'#3'''' +' '#0#1#7'Command'#7#11'ecWordRight'#8'ShortCut'#3'''@'#0#1#7'Command'#7#14 +'ecSelWordRight'#8'ShortCut'#3'''`'#0#1#7'Command'#7#10'ecPageDown'#8'ShortC' +'ut'#2'"'#0#1#7'Command'#7#13'ecSelPageDown'#8'ShortCut'#3'" '#0#1#7'Command' +#7#12'ecPageBottom'#8'ShortCut'#3'"@'#0#1#7'Command'#7#15'ecSelPageBottom'#8 +'ShortCut'#3'"`'#0#1#7'Command'#7#8'ecPageUp'#8'ShortCut'#2'!'#0#1#7'Command' +#7#11'ecSelPageUp'#8'ShortCut'#3'! '#0#1#7'Command'#7#9'ecPageTop'#8'ShortCu' +'t'#3'!@'#0#1#7'Command'#7#12'ecSelPageTop'#8'ShortCut'#3'!`'#0#1#7'Command' ,#7#11'ecLineStart'#8'ShortCut'#2'$'#0#1#7'Command'#7#14'ecSelLineStart'#8'Sh' +'ortCut'#3'$ '#0#1#7'Command'#7#11'ecEditorTop'#8'ShortCut'#3'$@'#0#1#7'Comm' +'and'#7#14'ecSelEditorTop'#8'ShortCut'#3'$`'#0#1#7'Command'#7#9'ecLineEnd'#8 +'ShortCut'#2'#'#0#1#7'Command'#7#12'ecSelLineEnd'#8'ShortCut'#3'# '#0#1#7'Co' +'mmand'#7#14'ecEditorBottom'#8'ShortCut'#3'#@'#0#1#7'Command'#7#17'ecSelEdit' +'orBottom'#8'ShortCut'#3'#`'#0#1#7'Command'#7#12'ecToggleMode'#8'ShortCut'#2 +'-'#0#1#7'Command'#7#6'ecCopy'#8'ShortCut'#3'-@'#0#1#7'Command'#7#7'ecPaste' +#8'ShortCut'#3'- '#0#1#7'Command'#7#12'ecDeleteChar'#8'ShortCut'#2'.'#0#1#7 +'Command'#7#5'ecCut'#8'ShortCut'#3'. '#0#1#7'Command'#7#16'ecDeleteLastChar' +#8'ShortCut'#2#8#0#1#7'Command'#7#16'ecDeleteLastChar'#8'ShortCut'#3#8' '#0#1 +#7'Command'#7#16'ecDeleteLastWord'#8'ShortCut'#3#8'@'#0#1#7'Command'#7#6'ecU' +'ndo'#8'ShortCut'#4#8#128#0#0#0#1#7'Command'#7#6'ecRedo'#8'ShortCut'#4#8#160 +#0#0#0#1#7'Command'#7#11'ecLineBreak'#8'ShortCut'#2#13#0#1#7'Command'#7#11'e' +'cSelectAll'#8'ShortCut'#3'A@'#0#1#7'Command'#7#6'ecCopy'#8'ShortCut'#3'C@'#0 +#1#7'Command'#7#13'ecBlockIndent'#8'ShortCut'#3'I`'#0#1#7'Command'#7#11'ecLi' +'neBreak'#8'ShortCut'#3'M@'#0#1#7'Command'#7#12'ecInsertLine'#8'ShortCut'#3 +'N@'#0#1#7'Command'#7#12'ecDeleteWord'#8'ShortCut'#3'T@'#0#1#7'Command'#7#15 +'ecBlockUnindent'#8'ShortCut'#3'U`'#0#1#7'Command'#7#7'ecPaste'#8'ShortCut'#3 +'V@'#0#1#7'Command'#7#5'ecCut'#8'ShortCut'#3'X@'#0#1#7'Command'#7#12'ecDelet' +'eLine'#8'ShortCut'#3'Y@'#0#1#7'Command'#7#11'ecDeleteEOL'#8'ShortCut'#3'Y`' +#0#1#7'Command'#7#6'ecUndo'#8'ShortCut'#3'Z@'#0#1#7'Command'#7#6'ecRedo'#8'S' +'hortCut'#3'Z`'#0#1#7'Command'#7#13'ecGotoMarker0'#8'ShortCut'#3'0@'#0#1#7'C' +'ommand'#7#13'ecGotoMarker1'#8'ShortCut'#3'1@'#0#1#7'Command'#7#13'ecGotoMar' +'ker2'#8'ShortCut'#3'2@'#0#1#7'Command'#7#13'ecGotoMarker3'#8'ShortCut'#3'3@' +#0#1#7'Command'#7#13'ecGotoMarker4'#8'ShortCut'#3'4@'#0#1#7'Command'#7#13'ec' +'GotoMarker5'#8'ShortCut'#3'5@'#0#1#7'Command'#7#13'ecGotoMarker6'#8'ShortCu' +'t'#3'6@'#0#1#7'Command'#7#13'ecGotoMarker7'#8'ShortCut'#3'7@'#0#1#7'Command' +#7#13'ecGotoMarker8'#8'ShortCut'#3'8@'#0#1#7'Command'#7#13'ecGotoMarker9'#8 +'ShortCut'#3'9@'#0#1#7'Command'#7#12'ecSetMarker0'#8'ShortCut'#3'0`'#0#1#7'C' +'ommand'#7#12'ecSetMarker1'#8'ShortCut'#3'1`'#0#1#7'Command'#7#12'ecSetMarke' +'r2'#8'ShortCut'#3'2`'#0#1#7'Command'#7#12'ecSetMarker3'#8'ShortCut'#3'3`'#0 +#1#7'Command'#7#12'ecSetMarker4'#8'ShortCut'#3'4`'#0#1#7'Command'#7#12'ecSet' +'Marker5'#8'ShortCut'#3'5`'#0#1#7'Command'#7#12'ecSetMarker6'#8'ShortCut'#3 +'6`'#0#1#7'Command'#7#12'ecSetMarker7'#8'ShortCut'#3'7`'#0#1#7'Command'#7#12 +'ecSetMarker8'#8'ShortCut'#3'8`'#0#1#7'Command'#7#12'ecSetMarker9'#8'ShortCu' +'t'#3'9`'#0#1#7'Command'#7#12'EcFoldLevel1'#8'ShortCut'#4'1'#160#0#0#0#1#7'C' +'ommand'#7#12'EcFoldLevel2'#8'ShortCut'#4'2'#160#0#0#0#1#7'Command'#7#12'EcF' +'oldLevel3'#8'ShortCut'#4'3'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel4'#8'Sho' +'rtCut'#4'4'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel5'#8'ShortCut'#4'5'#160#0 +#0#0#1#7'Command'#7#12'EcFoldLevel6'#8'ShortCut'#4'6'#160#0#0#0#1#7'Command' +#7#12'EcFoldLevel7'#8'ShortCut'#4'7'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel' +'8'#8'ShortCut'#4'8'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel9'#8'ShortCut'#4 +'9'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel0'#8'ShortCut'#4'0'#160#0#0#0#1#7 +'Command'#7#13'EcFoldCurrent'#8'ShortCut'#4'-'#160#0#0#0#1#7'Command'#7#15'E' +'cUnFoldCurrent'#8'ShortCut'#4'+'#160#0#0#0#1#7'Command'#7#18'EcToggleMarkup' +'Word'#8'ShortCut'#4'M'#128#0#0#0#1#7'Command'#7#14'ecNormalSelect'#8'ShortC' +'ut'#3'N`'#0#1#7'Command'#7#14'ecColumnSelect'#8'ShortCut'#3'C`'#0#1#7'Comma' +'nd'#7#12'ecLineSelect'#8'ShortCut'#3'L`'#0#1#7'Command'#7#5'ecTab'#8'ShortC' +'ut'#2#9#0#1#7'Command'#7#10'ecShiftTab'#8'ShortCut'#3#9' '#0#1#7'Command'#7 +#14'ecMatchBracket'#8'ShortCut'#3'B`'#0#1#7'Command'#7#10'ecColSelUp'#8'Shor' +'tCut'#4'&'#160#0#0#0#1#7'Command'#7#12'ecColSelDown'#8'ShortCut'#4'('#160#0 +#0#0#1#7'Command'#7#12'ecColSelLeft'#8'ShortCut'#4'%'#160#0#0#0#1#7'Command' +#7#13'ecColSelRight'#8'ShortCut'#4''''#160#0#0#0#1#7'Command'#7#16'ecColSelP' +'ageDown'#8'ShortCut'#4'"'#160#0#0#0#1#7'Command'#7#18'ecColSelPageBottom'#8 +'ShortCut'#4'"'#224#0#0#0#1#7'Command'#7#14'ecColSelPageUp'#8'ShortCut'#4'!' +#160#0#0#0#1#7'Command'#7#15'ecColSelPageTop'#8'ShortCut'#4'!'#224#0#0#0#1#7 +'Command'#7#17'ecColSelLineStart'#8'ShortCut'#4'$'#160#0#0#0#1#7'Command'#7 +#15'ecColSelLineEnd'#8'ShortCut'#4'#'#160#0#0#0#1#7'Command'#7#17'ecColSelEd' +'itorTop'#8'ShortCut'#4'$'#224#0#0#0#1#7'Command'#7#20'ecColSelEditorBottom' +#8'ShortCut'#4'#'#224#0#0#0#0#12'MouseActions'#14#0#16'MouseTextActions'#14#0 +#15'MouseSelActions'#14#0#19'VisibleSpecialChars'#11#8'vscSpace'#12'vscTabAt' +'Last'#0#9'RightEdge'#2#255#26'SelectedColor.BackPriority'#2'2'#26'SelectedC' +'olor.ForePriority'#2'2'#27'SelectedColor.FramePriority'#2'2'#26'SelectedCol' +'or.BoldPriority'#2'2'#28'SelectedColor.ItalicPriority'#2'2'#31'SelectedColo' ,'r.UnderlinePriority'#2'2'#31'SelectedColor.StrikeOutPriority'#2'2'#21'Brack' +'etHighlightStyle'#7#8'sbhsBoth'#28'BracketMatchColor.Background'#7#6'clNone' +#28'BracketMatchColor.Foreground'#7#6'clNone'#23'BracketMatchColor.Style'#11 +#6'fsBold'#0#26'FoldedCodeColor.Background'#7#6'clNone'#26'FoldedCodeColor.F' +'oreground'#7#6'clGray'#26'FoldedCodeColor.FrameColor'#7#6'clGray'#25'MouseL' +'inkColor.Background'#7#6'clNone'#25'MouseLinkColor.Foreground'#7#6'clBlue' +#29'LineHighlightColor.Background'#7#6'clNone'#29'LineHighlightColor.Foregro' +'und'#7#6'clNone'#0#244#18'TSynGutterPartList'#22'SynLeftGutterPartList1'#0 +#15'TSynGutterMarks'#15'SynGutterMarks1'#5'Width'#2#24#12'MouseActions'#14#0 +#0#0#20'TSynGutterLineNumber'#20'SynGutterLineNumber1'#5'Width'#2#17#12'Mous' +'eActions'#14#0#21'MarkupInfo.Background'#7#9'clBtnFace'#21'MarkupInfo.Foreg' +'round'#7#6'clNone'#10'DigitCount'#2#2#30'ShowOnlyLineNumbersMultiplesOf'#2#1 +#9'ZeroStart'#8#12'LeadingZeros'#8#0#0#17'TSynGutterChanges'#17'SynGutterCha' +'nges1'#5'Width'#2#4#12'MouseActions'#14#0#13'ModifiedColor'#4#252#233#0#0#10 +'SavedColor'#7#7'clGreen'#0#0#19'TSynGutterSeparator'#19'SynGutterSeparator1' +#5'Width'#2#2#12'MouseActions'#14#0#21'MarkupInfo.Background'#7#7'clWhite'#21 +'MarkupInfo.Foreground'#7#6'clGray'#0#0#21'TSynGutterCodeFolding'#21'SynGutt' +'erCodeFolding1'#12'MouseActions'#14#0#21'MarkupInfo.Background'#7#6'clNone' +#21'MarkupInfo.Foreground'#7#6'clGray'#20'MouseActionsExpanded'#14#0#21'Mous' +'eActionsCollapsed'#14#0#0#0#0#0#6'TLabel'#12'RecordsLabel'#21'AnchorSideTop' +'.Control'#7#18'RecordsViewSynEdit'#23'AnchorSideRight.Control'#7#18'Records' +'ViewSynEdit'#4'Left'#2'?'#6'Height'#2#19#3'Top'#3#157#0#5'Width'#2'5'#7'Anc' +'hors'#11#5'akTop'#7'akRight'#0#7'Caption'#6#8'Records:'#11'ParentColor'#8#0 +#0#9'TGroupBox'#17'ThresholdGroupBox'#19'AnchorSideLeft.Side'#7#9'asrBottom' +#21'AnchorSideTop.Control'#7#11'StatusSheet'#23'AnchorSideRight.Control'#7#9 +'GoToGroup'#4'Left'#3#173#1#6'Height'#2'8'#3'Top'#2#0#5'Width'#3#168#0#7'Anc' +'hors'#11#5'akTop'#7'akRight'#0#18'BorderSpacing.Left'#2#14#7'Caption'#6#20 +'Threshold to record:'#12'ClientHeight'#2'6'#11'ClientWidth'#3#166#0#8'TabOr' +'der'#2#11#0#14'TFloatSpinEdit'#11'LCThreshold'#22'AnchorSideLeft.Control'#7 +#17'ThresholdGroupBox'#21'AnchorSideTop.Control'#7#17'ThresholdGroupBox'#4'L' +'eft'#2#2#6'Height'#2'$'#4'Hint'#6#23'Threshold for recording'#3'Top'#2#2#5 +'Width'#2'F'#18'BorderSpacing.Left'#2#2#17'BorderSpacing.Top'#2#2#8'MaxValue' +#5#0#0#0#0#0#0#0#240#3'@'#8'OnChange'#7#17'LCThresholdChange'#14'ParentShowH' +'int'#8#8'ShowHint'#9#8'TabOrder'#2#0#0#0#6'TLabel'#6'Label1'#22'AnchorSideL' +'eft.Control'#7#11'LCThreshold'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'An' +'chorSideTop.Control'#7#11'LCThreshold'#18'AnchorSideTop.Side'#7#9'asrCenter' +#4'Left'#2'J'#6'Height'#2#19#3'Top'#2#11#5'Width'#2''''#18'BorderSpacing.Lef' +'t'#2#2#7'Caption'#6#5'mpsas'#11'ParentColor'#8#0#0#6'TShape'#12'ThresholdMe' +'t'#21'AnchorSideTop.Control'#7#11'LCThreshold'#18'AnchorSideTop.Side'#7#9'a' +'srCenter'#4'Left'#3#130#0#6'Height'#2#20#4'Hint'#6#13'Threshold met'#3'Top' +#2#10#5'Width'#2#20#14'ParentShowHint'#8#5'Shape'#7#8'stCircle'#8'ShowHint'#9 +#0#0#0#9'TGroupBox'#9'GoToGroup'#21'AnchorSideTop.Control'#7#11'StatusSheet' +#23'AnchorSideRight.Control'#7#10'AlarmGroup'#4'Left'#3'U'#2#6'Height'#2'S'#3 +'Top'#2#0#5'Width'#3#151#0#7'Anchors'#11#5'akTop'#7'akRight'#0#7'Caption'#6#5 +'GoTo:'#12'ClientHeight'#2'Q'#11'ClientWidth'#3#149#0#8'TabOrder'#2#12#0#6'T' +'Shape'#17'GoToLogIndicatorX'#22'AnchorSideLeft.Control'#7#9'GoToGroup'#21'A' +'nchorSideTop.Control'#7#9'GoToGroup'#4'Left'#2#13#6'Height'#2#17#3'Top'#2#0 +#5'Width'#2#20#7'Anchors'#11#5'akTop'#0#18'BorderSpacing.Left'#2#3#11'Brush.' +'Color'#7#6'clLime'#5'Shape'#7#8'stCircle'#0#0#11'TStaticText'#17'GoToZenith' +'Display'#21'AnchorSideTop.Control'#7#9'GoToGroup'#23'AnchorSideRight.Contro' +'l'#7#9'GoToGroup'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2'E'#6'He' +'ight'#2#19#3'Top'#2#0#5'Width'#2'P'#7'Anchors'#11#5'akTop'#7'akRight'#0#7'C' +'aption'#6#4'Zen:'#8'TabOrder'#2#0#0#0#11'TStaticText'#18'GoToAzimuthDisplay' +#22'AnchorSideLeft.Control'#7#17'GoToZenithDisplay'#21'AnchorSideTop.Control' +#7#17'GoToZenithDisplay'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2'E'#6 +'Height'#2#19#3'Top'#2#19#5'Width'#2'P'#7'Caption'#6#4'Azi:'#8'TabOrder'#2#1 +#0#0#11'TStaticText'#15'GoToStepDisplay'#21'AnchorSideTop.Control'#7#17'GoTo' +'ZenithDisplay'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#8#6'Height'#2 +#19#3'Top'#2'<'#5'Width'#2'8'#7'Anchors'#11#0#8'TabOrder'#2#2#0#0#11'TStatic' +'Text'#21'GoToStepsTotalDisplay'#21'AnchorSideTop.Control'#7#17'GoToZenithDi' +'splay'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2'Z'#6'Height'#2#19#3 +'Top'#2';'#5'Width'#2';'#7'Anchors'#11#0#8'TabOrder'#2#3#0#0#6'TLabel'#6'Lab' +'el4'#4'Left'#2'F'#6'Height'#2#19#3'Top'#2'3'#5'Width'#2#13#7'Caption'#6#2'o' +'f'#11'ParentColor'#8#0#0#0#9'TGroupBox'#10'AlarmGroup'#19'AnchorSideLeft.Si' ,'de'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#11'StatusSheet'#23'AnchorSid' +'eRight.Control'#7#11'StatusSheet'#20'AnchorSideRight.Side'#7#9'asrBottom'#4 +'Left'#3#238#2#6'Height'#2'U'#3'Top'#2#0#5'Width'#3#184#0#7'Anchors'#11#5'ak' +'Top'#7'akRight'#0#18'BorderSpacing.Left'#2#2#7'Caption'#6#19'Alarm for dark' +'ness:'#12'ClientHeight'#2'S'#11'ClientWidth'#3#182#0#8'TabOrder'#2#13#0#14 +'TFloatSpinEdit'#27'AlarmThresholdFloatSpinEdit'#22'AnchorSideLeft.Control'#7 +#21'AlarmSoundEnableCheck'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorS' +'ideTop.Control'#7#10'AlarmGroup'#4'Left'#2'%'#6'Height'#2'$'#3'Top'#2#2#5'W' +'idth'#2'N'#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#2#8'MaxValue' +#5#0#0#0#0#0#0#0#240#3'@'#8'OnChange'#7'!AlarmThresholdFloatSpinEditChange'#8 +'TabOrder'#2#0#0#0#6'TLabel'#7'Label15'#22'AnchorSideLeft.Control'#7#27'Alar' +'mThresholdFloatSpinEdit'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSi' +'deTop.Control'#7#27'AlarmThresholdFloatSpinEdit'#18'AnchorSideTop.Side'#7#9 +'asrCenter'#4'Left'#2'u'#6'Height'#2#19#3'Top'#2#11#5'Width'#2#12#18'BorderS' +'pacing.Left'#2#2#7'Caption'#6#1'm'#11'ParentColor'#8#0#0#9'TCheckBox'#21'Al' +'armSoundEnableCheck'#22'AnchorSideLeft.Control'#7#10'AlarmGroup'#21'AnchorS' +'ideTop.Control'#7#27'AlarmThresholdFloatSpinEdit'#18'AnchorSideTop.Side'#7#9 +'asrCenter'#4'Left'#2#4#6'Height'#2#23#4'Hint'#6#12'Enable alarm'#3'Top'#2#9 +#5'Width'#2#23#18'BorderSpacing.Left'#2#4#17'BorderSpacing.Top'#2#6#14'Paren' +'tShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#1#8'OnChange'#7#27'AlarmSoundEnabl' +'eCheckChange'#0#0#7'TButton'#15'AlarmTestButton'#21'AnchorSideTop.Control'#7 +#27'AlarmThresholdFloatSpinEdit'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'An' +'chorSideRight.Control'#7#10'AlarmGroup'#20'AnchorSideRight.Side'#7#9'asrBot' +'tom'#4'Left'#3#137#0#6'Height'#2#25#3'Top'#2#8#5'Width'#2')'#7'Anchors'#11#5 +'akTop'#7'akRight'#0#19'BorderSpacing.Right'#2#4#7'Caption'#6#4'Test'#8'TabO' +'rder'#2#2#7'OnClick'#7#20'AlarmTestButtonClick'#0#0#7'TButton'#12'SnoozeBut' +'ton'#22'AnchorSideLeft.Control'#7#21'AlarmSoundEnableCheck'#21'AnchorSideTo' +'p.Control'#7#27'AlarmThresholdFloatSpinEdit'#18'AnchorSideTop.Side'#7#9'asr' +'Bottom'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#4#6'Height'#2#22#4 +'Hint'#6#18'Snooze for a while'#3'Top'#2','#5'Width'#2'?'#17'BorderSpacing.T' +'op'#2#6#7'Caption'#6#6'Snooze'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrde' +'r'#2#3#7'OnClick'#7#17'SnoozeButtonClick'#0#0#12'TProgressBar'#14'RepeatPro' +'gress'#22'AnchorSideLeft.Control'#7#12'SnoozeButton'#19'AnchorSideLeft.Side' +#7#9'asrBottom'#21'AnchorSideTop.Control'#7#12'SnoozeButton'#23'AnchorSideRi' +'ght.Control'#7#10'AlarmGroup'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Lef' +'t'#2'E'#6'Height'#2#8#4'Hint'#6#11'Repeat time'#3'Top'#2'.'#5'Width'#2'o'#7 +'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'#2#2#14 +'ParentShowHint'#8#8'ShowHint'#9#6'Smooth'#9#8'TabOrder'#2#4#0#0#12'TProgres' +'sBar'#14'SnoozeProgress'#22'AnchorSideLeft.Control'#7#12'SnoozeButton'#19'A' +'nchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#14'RepeatPro' +'gress'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7 +#10'AlarmGroup'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2'E'#6'Heigh' +'t'#2#8#4'Hint'#6#11'Snooze time'#3'Top'#2'8'#5'Width'#2'o'#7'Anchors'#11#5 +'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'#2#2#14'ParentShowHin' +'t'#8#8'ShowHint'#9#6'Smooth'#9#8'TabOrder'#2#5#0#0#0#6'TShape'#16'GPSLogInd' +'icatorX'#22'AnchorSideLeft.Control'#7#15'GPSLogIndicator'#19'AnchorSideLeft' +'.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#15'GPSLogIndicator'#18'An' +'chorSideTop.Side'#7#9'asrCenter'#4'Left'#3#11#2#6'Height'#2#17#3'Top'#2'>'#5 +'Width'#2#20#18'BorderSpacing.Left'#2#3#11'Brush.Color'#7#6'clLime'#5'Shape' +#7#8'stCircle'#7'Visible'#8#0#0#11'TStaticText'#15'GPSLogIndicator'#21'Ancho' +'rSideTop.Control'#7#17'ThresholdGroupBox'#18'AnchorSideTop.Side'#7#9'asrBot' +'tom'#4'Left'#3#233#1#6'Height'#2#21#3'Top'#2'<'#5'Width'#2#31#9'Alignment'#7 +#8'taCenter'#7'Anchors'#11#5'akTop'#0#8'AutoSize'#9#17'BorderSpacing.Top'#2#4 +#7'Caption'#6#4'GPS:'#8'TabOrder'#2#14#11'Transparent'#8#7'Visible'#8#0#0#0#0 +#0#0#0#11'TOpenDialog'#13'OpenLogDialog'#4'Left'#3#240#0#3'Top'#3#208#1#0#0#6 +'TTimer'#9'FineTimer'#7'Enabled'#8#7'OnTimer'#7#14'FineTimerTimer'#4'Left'#3 +#224#1#3'Top'#3#24#2#0#0#6'TTimer'#12'StartUpTimer'#7'Enabled'#8#8'Interval' +#3','#1#7'OnTimer'#7#17'StartUpTimerTimer'#4'Left'#3#224#1#3'Top'#3#208#1#0#0 +#28'TDateTimeIntervalChartSource'#28'DateTimeIntervalChartSource1'#16'Params' +'.MaxLength'#2'Z'#16'Params.MinLength'#2#15#14'DateTimeFormat'#6#5'hh:nn'#4 +'Left'#3#176#2#3'Top'#3#168#2#0#0#10'TIdleTimer'#8'GPSTimer'#8'Interval'#3 +#233#0#7'OnTimer'#7#13'GPSTimerTimer'#4'Left'#3#224#1#3'Top'#3'`'#2#0#0#25'T' +'ChartAxisTransformations'#25'TemperatureAxisTransforms'#4'Left'#3#176#2#3'T' +'op'#3'P'#2#0#23'TAutoScaleAxisTransform/TemperatureAxisTransformsAutoScaleA' ,'xisTransform'#0#0#0#25'TChartAxisTransformations'#19'MPSASAxisTransforms'#4 +'Left'#3#176#2#3'Top'#3#208#1#0#20'TLinearAxisTransform''MPSASAxisTransforms' +'LinearAxisTransform1'#5'Scale'#5#0#0#0#0#0#0#0#128#255#191#0#0#23'TAutoScal' +'eAxisTransform*MPSASAxisTransformsAutoScaleAxisTransform1'#0#0#0#10'Tplayso' +'und'#13'PreAlertSound'#25'About.Description.Strings'#1#6'%Plays WAVE sounds' +' in Windows or Linux'#0#11'About.Title'#12#241#2#0#0'About About About Abou' +'t About About About About About About About About About About About About A' +'bout About About About About About About About About About About About Abou' +'t About About About About About About About About About About About About A' +'bout About About About About About About About About About About About Abou' +'t About About About About About About About About About About About About A' +'bout About About About About About About About About About About About Abou' +'t About About About About About About About About About About About About A' +'bout About About About About About About About About About About About Abou' +'t About About About About About About About About About About About About A' +'bout About About About About About About About PlaySound'#12'About.Height'#3 +#144#1#11'About.Width'#3#144#1#16'About.Font.Color'#7#6'clNavy'#17'About.Fon' +'t.Height'#2#243#21'About.BackGroundColor'#7#7'clCream'#13'About.Version'#6#5 +'0.0.7'#16'About.Authorname'#6#13'Gordon Bamber'#18'About.Organisation'#6#13 +'Public Domain'#17'About.AuthorEmail'#6#31'minesadorada@charcodelvalle.com' +#19'About.ComponentName'#6#9'PlaySound'#17'About.LicenseType'#7#13'abModifie' +'dGPL'#11'PlayCommand'#6#4'play'#4'Left'#3#240#0#3'Top'#3#24#2#0#0#10'Tplays' +'ound'#10'FreshSound'#25'About.Description.Strings'#1#6'%Plays WAVE sounds i' +'n Windows or Linux'#0#11'About.Title'#12#241#2#0#0'About About About About ' +'About About About About About About About About About About About About Abo' +'ut About About About About About About About About About About About About ' +'About About About About About About About About About About About About Abo' +'ut About About About About About About About About About About About About ' +'About About About About About About About About About About About About Abo' +'ut About About About About About About About About About About About About ' +'About About About About About About About About About About About About Abo' +'ut About About About About About About About About About About About About ' +'About About About About About About About About About About About About Abo' +'ut About About About About About About About PlaySound'#12'About.Height'#3 +#144#1#11'About.Width'#3#144#1#16'About.Font.Color'#7#6'clNavy'#17'About.Fon' +'t.Height'#2#243#21'About.BackGroundColor'#7#7'clCream'#13'About.Version'#6#5 +'0.0.7'#16'About.Authorname'#6#13'Gordon Bamber'#18'About.Organisation'#6#13 +'Public Domain'#17'About.AuthorEmail'#6#31'minesadorada@charcodelvalle.com' +#19'About.ComponentName'#6#9'PlaySound'#17'About.LicenseType'#7#13'abModifie' +'dGPL'#11'PlayCommand'#6#4'play'#4'Left'#3#240#0#3'Top'#3'`'#2#0#0#10'Tplays' +'ound'#10'AlarmSound'#25'About.Description.Strings'#1#6'%Plays WAVE sounds i' +'n Windows or Linux'#0#11'About.Title'#12#241#2#0#0'About About About About ' +'About About About About About About About About About About About About Abo' +'ut About About About About About About About About About About About About ' +'About About About About About About About About About About About About Abo' +'ut About About About About About About About About About About About About ' +'About About About About About About About About About About About About Abo' +'ut About About About About About About About About About About About About ' +'About About About About About About About About About About About About Abo' +'ut About About About About About About About About About About About About ' +'About About About About About About About About About About About About Abo' +'ut About About About About About About About PlaySound'#12'About.Height'#3 +#144#1#11'About.Width'#3#144#1#16'About.Font.Color'#7#6'clNavy'#17'About.Fon' +'t.Height'#2#243#21'About.BackGroundColor'#7#7'clCream'#13'About.Version'#6#5 +'0.0.7'#16'About.Authorname'#6#13'Gordon Bamber'#18'About.Organisation'#6#13 +'Public Domain'#17'About.AuthorEmail'#6#31'minesadorada@charcodelvalle.com' +#19'About.ComponentName'#6#9'PlaySound'#17'About.LicenseType'#7#13'abModifie' +'dGPL'#11'PlayCommand'#6#4'play'#4'Left'#3#240#0#3'Top'#3#168#2#0#0#6'TTimer' +#12'GoToCommBusy'#7'Enabled'#8#8'Interval'#2'd'#7'OnTimer'#7#17'GoToCommBusy' +'Timer'#4'Left'#3#224#1#3'Top'#3#168#2#0#0#25'TChartAxisTransformations'#18 +'MoonAxisTransforms'#4'Left'#3#176#2#3'Top'#3#16#2#0#23'TAutoScaleAxisTransf' +'orm)MoonAxisTransformsAutoScaleAxisTransform1'#0#0#0#0 ]); �������������������������������������������������������������������������������������������������������������������./concattool.pas������������������������������������������������������������������������������������0000644�0001750�0001750�00000016051�14576573021�014024� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit concattool; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, ComCtrls, ExtCtrls, Buttons , strutils , Contnrs , LazFileUtils //required for ExtractFileNameOnly ; type { TConcatToolForm } TConcatToolForm = class(TForm) Label1: TLabel; Label2: TLabel; ProcessStatusMemo: TMemo; InputFileListMemo: TMemo; ResetDirectoryButton: TBitBtn; SourceDirectoryButton: TBitBtn; SourceDirectoryEdit: TEdit; Memo1: TMemo; ProgressBar1: TProgressBar; SelectDirectoryDialog1: TSelectDirectoryDialog; StartButton: TButton; StatusBar1: TStatusBar; procedure ResetDirectoryButtonClick(Sender: TObject); procedure StartButtonClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure SourceDirectoryButtonClick(Sender: TObject); private public end; var ConcatToolForm: TConcatToolForm; implementation uses appsettings, Unit1 ; type TFileDetails = class Name: String; Size, Time: int64; end; const Section='ConcatAnalyze'; var SourceDirectory:String; { TForm8 } procedure FileListAppendFileNames(const AFileList: TObjectList; const APath: TFileName); var LDetails: TFileDetails; LSearchRec: TSearchRec; begin if FindFirst(APath + '*.dat', 0, LSearchRec) = 0 then begin try repeat LDetails := TFileDetails.Create; LDetails.Name := LSearchRec.Name; LDetails.Size := LSearchRec.Size; LDetails.Time := LSearchRec.Time; //Do not include previously saved output file in input list if not AnsiContainsStr(LDetails.Name, '_concat') then AFileList.Add(LDetails); until FindNext(LSearchRec) <> 0; finally FindClose(LSearchRec); end; end; end; function CompareName(A, B: Pointer): Integer; begin Result := AnsiCompareFilename(TFileDetails(A).Name, TFileDetails(B).Name); end; function CompareSize(A, B: Pointer): Integer; begin Result := TFileDetails(A).Size - TFileDetails(B).Size; end; function CompareTime(A, B: Pointer): Integer; begin Result := TFileDetails(A).Time - TFileDetails(B).Time; end; procedure FillList(Directory:String); var LIndex: Integer; LFileList: TObjectList; begin LFileList := TObjectList.Create; Directory:=Directory; try ConcatToolForm.InputFileListMemo.Clear; ConcatToolForm.ProcessStatusMemo.Clear; FileListAppendFileNames(LFileList, Directory); LFileList.Sort(@CompareName); for LIndex := 0 to LFileList.Count - 1 do begin ConcatToolForm.InputFileListMemo.Append(TFileDetails(LFileList[LIndex]).Name); end; finally { Update the progress bar maximum. } ConcatToolForm.ProgressBar1.Max:=LFileList.Count; ConcatToolForm.ProgressBar1.Position:=0; FreeAndNil(LFileList); end; end; procedure TConcatToolForm.SourceDirectoryButtonClick(Sender: TObject); begin SelectDirectoryDialog1.FileName:=SourceDirectory; if SelectDirectoryDialog1.Execute then begin SourceDirectory:=RemoveMultiSlash(SelectDirectoryDialog1.FileName+DirectorySeparator); SourceDirectoryEdit.Text:=SourceDirectory; end; //Save directory name in registry vConfigurations.WriteString(Section,'SourceDirectory',SourceDirectory); FillList(SourceDirectory); end; { Concatenate files in input file list.} procedure TConcatToolForm.StartButtonClick(Sender: TObject); Var Count : Longint; Str: String; InFile,OutFile: TextFile; InputFileName:String; OutputPathFileName, InputPathFileName:String; WorkingPath, OutputPath:String; WriteAllowable: Boolean = True; //Allow output file to be written or not. LIndex: Integer; LFileList: TObjectList; Begin {Update the file list in case it recently changed, and set the progress bar maximum.} FillList(SourceDirectory); WorkingPath:=RemoveMultiSlash(SourceDirectory + DirectorySeparator); OutputPath:=WorkingPath; { So far there ar no conditions to prevent writing files. The output directory either already exists, or has been created. The output files will overwrite previous output files.} WriteAllowable:=True; if WriteAllowable then begin { Process the files } Count:=0; LFileList := TObjectList.Create; try FileListAppendFileNames(LFileList, SourceDirectory); LFileList.Sort(@CompareName); { Define Output file to be the same as the input filename with a special extension. } OutputPathFileName:=OutputPath+LazFileUtils.ExtractFileNameWithoutExt(TFileDetails(LFileList[0]).Name)+'_concat.dat'; AssignFile(OutFile, OutputPathFileName); Rewrite(OutFile); //Open file for writing for LIndex := 0 to LFileList.Count - 1 do begin InputFileName:=TFileDetails(LFileList[LIndex]).Name; Inc(Count); {Start reading file.} { Define Input file. } InputPathFileName:=WorkingPath+InputFileName; AssignFile(InFile, InputPathFileName); ProcessStatusMemo.Append('Processing: '+InputFileName); Application.ProcessMessages; //ProcessStatusMemo.Update; {$I+} try Reset(InFile); StatusBar1.Panels.Items[0].Text:='Reading Input file'; repeat // Read one line at a time from the file. Readln(InFile, Str); StatusBar1.Panels.Items[0].Text:='Processing : '+Str; begin { Copy over comment lines from first file only. } if (((LIndex = 0) or ((LIndex>0)) and (not AnsiStartsStr('#',Str)))) then //if ((LIndex = 0) or (LIndex>0))then WriteLn(OutFile,Str); end; until(EOF(InFile)); // EOF(End Of File) The the program will keep reading new lines until there is none. CloseFile(InFile); StatusBar1.Panels.Items[0].Text:='Finished file'+InputPathFileName; except on E: EInOutError do begin MessageDlg('Error', 'File handling error occurred. Details: '+E.ClassName+'/'+E.Message, mtError, [mbOK],0); end; end; ProgressBar1.Position:=Count; ProgressBar1.Update; end;//End of files processing finally Flush(OutFile); CloseFile(OutFile); FreeAndNil(LFileList); end; StatusBar1.Panels.Items[0].Text:='Finished all files. Results stored in :'+OutputPath; ProcessStatusMemo.Append('Finished processing files.'); ProcessStatusMemo.Append('Results stored in: '); ProcessStatusMemo.Append(' '+OutputPath); end;//End of WriteAllowable check. end; procedure TConcatToolForm.ResetDirectoryButtonClick(Sender: TObject); begin {Reset} SourceDirectory:=RemoveMultiSlash(appsettings.LogsDirectoryDefault()); SourceDirectoryEdit.Text:=SourceDirectory; {Save selection} vConfigurations.WriteString(Section,'SourceDirectory',SourceDirectory); {List files} FillList(SourceDirectory); end; procedure TConcatToolForm.FormShow(Sender: TObject); begin SourceDirectory:=RemoveMultiSlash(vConfigurations.ReadString(Section, 'SourceDirectory', '')+DirectorySeparator); SourceDirectoryEdit.Text:=SourceDirectory; FillList(SourceDirectory); end; initialization {$I concattool.lrs} end. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./dlclock.lfm���������������������������������������������������������������������������������������0000644�0001750�0001750�00000014124�14576573021�013264� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object Form6: TForm6 Left = 2021 Height = 336 Top = 429 Width = 520 BorderStyle = bsSingle Caption = 'Device: Real Time Clock setting' ClientHeight = 336 ClientWidth = 520 Constraints.MinHeight = 336 Constraints.MinWidth = 520 OnClose = FormClose OnCreate = FormCreate OnHide = FormHide OnShow = FormShow Position = poMainFormCenter LCLVersion = '2.2.4.0' object SetDeviceClock: TButton AnchorSideRight.Control = CloseButton AnchorSideBottom.Control = CloseButton AnchorSideBottom.Side = asrBottom Left = 355 Height = 25 Hint = 'Copy time from this PC to the SQM Real Time Clock.' Top = 306 Width = 75 Anchors = [akRight, akBottom] BorderSpacing.Right = 10 Caption = 'Set' OnClick = SetDeviceClockClick TabOrder = 0 end object PauseClockButton: TButton AnchorSideRight.Control = ResumClockButton AnchorSideBottom.Control = ResumClockButton AnchorSideBottom.Side = asrBottom Left = 315 Height = 25 Top = 306 Width = 20 Anchors = [akRight, akBottom] Caption = '||' Enabled = False OnClick = PauseClockButtonClick TabOrder = 1 Visible = False end object ResumClockButton: TButton AnchorSideRight.Control = SetDeviceClock AnchorSideBottom.Control = SetDeviceClock AnchorSideBottom.Side = asrBottom Left = 335 Height = 25 Top = 306 Width = 20 Anchors = [akRight, akBottom] Caption = '>' Enabled = False OnClick = ResumClockButtonClick TabOrder = 2 Visible = False end object CloseButton: TButton AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 440 Height = 25 Top = 306 Width = 75 Anchors = [akRight, akBottom] BorderSpacing.Right = 5 BorderSpacing.Bottom = 5 Caption = 'Close' OnClick = CloseButtonClick TabOrder = 3 end object UnitClockText: TLabeledEdit AnchorSideLeft.Control = Owner AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = Owner Left = 135 Height = 31 Top = 3 Width = 250 Alignment = taCenter BorderSpacing.Top = 3 EditLabel.Height = 21 EditLabel.Width = 112 EditLabel.Caption = 'Unit clock (UTC):' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 4 end object UTCClockText: TLabeledEdit AnchorSideLeft.Control = UnitClockText AnchorSideTop.Control = UnitClockText AnchorSideTop.Side = asrBottom Left = 135 Height = 31 Top = 37 Width = 250 Alignment = taCenter BorderSpacing.Top = 3 EditLabel.Height = 21 EditLabel.Width = 73 EditLabel.Caption = 'UTC Clock:' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 5 end object LocalTimeText: TLabeledEdit AnchorSideLeft.Control = UTCClockText AnchorSideTop.Control = UTCClockText AnchorSideTop.Side = asrBottom Left = 135 Height = 31 Top = 71 Width = 250 Alignment = taCenter BorderSpacing.Top = 3 EditLabel.Height = 21 EditLabel.Width = 75 EditLabel.Caption = 'Local time:' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 6 end object DifferenceTimeText: TLabeledEdit AnchorSideLeft.Control = LocalTimeText AnchorSideTop.Control = LocalTimeText AnchorSideTop.Side = asrBottom Left = 135 Height = 31 Top = 105 Width = 250 Alignment = taCenter BorderSpacing.Top = 3 EditLabel.Height = 21 EditLabel.Width = 75 EditLabel.Caption = 'Difference:' EditLabel.ParentColor = False LabelPosition = lpLeft ParentFont = False TabOrder = 7 end object Label1: TLabel AnchorSideLeft.Control = DifferenceIndicator AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = DifferenceTimeText AnchorSideTop.Side = asrCenter Left = 415 Height = 21 Top = 110 Width = 56 BorderSpacing.Left = 7 Caption = 'seconds' ParentColor = False end object Memo1: TMemo AnchorSideLeft.Control = Owner AnchorSideTop.Control = DifferenceTimeText AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = SetDeviceClock Left = 0 Height = 164 Top = 139 Width = 520 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Top = 3 BorderSpacing.Bottom = 3 Lines.Strings = ( '1. Make sure the meter has been plugged in for at least 10 minutes before setting the time.' '2. The internal supercapacitor needs some time to charge up.' '3. Leave the meter plugged in initially for about 30 minutes after the Running indicator is green to fully charge.' '4. Transfer the meter from the USB computer connection to the battery connection within 30 minutes to maintain the clock circuit voltage.' ) ReadOnly = True ScrollBars = ssAutoVertical TabOrder = 8 end object RunningIndicator: TShape AnchorSideLeft.Control = UnitClockText AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = UnitClockText AnchorSideTop.Side = asrCenter Left = 388 Height = 20 Hint = 'Connection status' Top = 8 Width = 20 BorderSpacing.Left = 3 Brush.Color = clGray Shape = stCircle end object RunningStatus: TLabel AnchorSideLeft.Control = RunningIndicator AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = RunningIndicator AnchorSideTop.Side = asrCenter Left = 415 Height = 21 Top = 8 Width = 97 AutoSize = False BorderSpacing.Left = 7 Caption = 'Reading' ParentColor = False end object DifferenceIndicator: TShape AnchorSideLeft.Control = UnitClockText AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = DifferenceTimeText AnchorSideTop.Side = asrCenter Left = 388 Height = 20 Hint = 'Connection status' Top = 110 Width = 20 BorderSpacing.Left = 3 Brush.Color = clGray Shape = stCircle end object Timer1: TTimer Enabled = False OnTimer = Timer1Timer Left = 8 Top = 40 end end ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./newpackage.lpk������������������������������������������������������������������������������������0000644�0001750�0001750�00000001350�14576573022�013764� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0"?> <CONFIG> <Package Version="3"> <Name Value="NewPackage"/> <CompilerOptions> <Version Value="8"/> <SearchPaths> <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/> </SearchPaths> <Other> <CompilerPath Value="$(CompPath)"/> </Other> </CompilerOptions> <Type Value="RunAndDesignTime"/> <RequiredPkgs Count="1"> <Item1> <PackageName Value="FCL"/> <MinVersion Major="1" Valid="True"/> </Item1> </RequiredPkgs> <UsageOptions> <UnitPath Value="$(PkgOutDir)"/> </UsageOptions> <PublishOptions> <Version Value="2"/> <IgnoreBinaries Value="False"/> </PublishOptions> </Package> </CONFIG> ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./unitdirectorylist.pas�����������������������������������������������������������������������������0000644�0001750�0001750�00000005750�14576573021�015463� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit unitdirectorylist; {$mode objfpc} interface uses Classes, SysUtils, FileUtil, SynEdit, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls, Buttons, StdCtrls, EditBtn; type { TDirectories } TDirectories = class(TForm) Label1: TLabel; LogsDirStatusLabel: TLabel; Button1: TButton; LogsDirectoryButton: TBitBtn; LogsDirectoryEdit: TEdit; ResetToLogsDirectoryButton: TBitBtn; TZdatabasepathDisplay: TLabeledEdit; FirmwareFilesPathDisplay: TLabeledEdit; DataDirectoryDisplay: TLabeledEdit; ConfigfilePathDisplay: TLabeledEdit; procedure FormCreate(Sender: TObject); procedure LogsDirectoryButtonClick(Sender: TObject); procedure LogsDirectoryDisplayChange(Sender: TObject); procedure ResetToLogsDirectoryButtonClick(Sender: TObject); procedure Button1Click(Sender: TObject); procedure FormShow(Sender: TObject); private { private declarations } procedure ValidateLogsDirectory(); public { public declarations } end; var Directories: TDirectories; implementation uses Unit1,appsettings; { TDirectories } procedure TDirectories.Button1Click(Sender: TObject); begin Close; end; procedure TDirectories.FormCreate(Sender: TObject); begin {Clear out logs directory check status message} LogsDirStatusLabel.Caption:=''; end; procedure TDirectories.LogsDirectoryButtonClick(Sender: TObject); begin if (SelectDirectory('Select the logs directory',LogsDirectoryEdit.Text, appsettings.LogsDirectory)) then begin {Assign setting} LogsDirectoryEdit.Text:=appsettings.LogsDirectory; {Check validity} ValidateLogsDirectory(); end; end; procedure TDirectories.ValidateLogsDirectory(); begin {Check validity} if DirectoryExists(appsettings.LogsDirectory) then begin {Remove warning} LogsDirStatusLabel.Caption:=''; {Save setting} vConfigurations.WriteString('Directories','LogsDirectory',appsettings.LogsDirectory); end else {Show warning} LogsDirStatusLabel.Caption:='Directory does not exist!'; end; procedure TDirectories.LogsDirectoryDisplayChange(Sender: TObject); begin {Allow changes to setting} appsettings.LogsDirectory:=LogsDirectoryEdit.Text; {Check validity} ValidateLogsDirectory(); end; { Reset logs directory } procedure TDirectories.ResetToLogsDirectoryButtonClick(Sender: TObject); begin {Reset} appsettings.LogsDirectoryReset(); {Update display} LogsDirectoryEdit.Text:= RemoveMultiSlash(appsettings.LogsDirectory); {Save setting} vConfigurations.WriteString('Directories','LogsDirectory',appsettings.LogsDirectory); end; procedure TDirectories.FormShow(Sender: TObject); begin LogsDirectoryEdit.Text:=RemoveMultiSlash(appsettings.LogsDirectory); TZdatabasepathDisplay.Caption:=appsettings.TZDirectory; FirmwareFilesPathDisplay.Caption:=appsettings.FirmwareDirectory; DataDirectoryDisplay.Caption:=appsettings.DataDirectory; ConfigfilePathDisplay.Caption:=appsettings.ConfigFilePath; end; initialization {$I unitdirectorylist.lrs} end. ������������������������./ssfpc.pas�����������������������������������������������������������������������������������������0000644�0001750�0001750�00000066756�14576573021�013016� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{==============================================================================| | Project : Ararat Synapse | 001.001.000 | |==============================================================================| | Content: Socket Independent Platform Layer - FreePascal definition include | |==============================================================================| | Copyright (c)2006-2009, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2006-2009. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@exclude} {$IFDEF FPC} {For FreePascal 2.x.x} //{$DEFINE FORCEOLDAPI} {Note about define FORCEOLDAPI: If you activate this compiler directive, then is allways used old socket API for name resolution. If you leave this directive inactive, then the new API is used, when running system allows it. For IPv6 support you must have new API! } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} {$ifdef FreeBSD} {$DEFINE SOCK_HAS_SINLEN} // BSD definition of scoketaddr {$endif} {$ifdef darwin} {$DEFINE SOCK_HAS_SINLEN} // BSD definition of scoketaddr {$endif} interface uses SyncObjs, SysUtils, Classes, synafpc, BaseUnix, Unix, termio, sockets, netdb; function InitSocketInterface(stack: string): Boolean; function DestroySocketInterface: Boolean; const DLLStackName = ''; WinsockLevel = $0202; cLocalHost = '127.0.0.1'; cAnyHost = '0.0.0.0'; c6AnyHost = '::0'; c6Localhost = '::1'; cLocalHostStr = 'localhost'; type TSocket = longint; TAddrFamily = integer; TMemory = pointer; type TFDSet = Baseunix.TFDSet; PFDSet = ^TFDSet; Ptimeval = Baseunix.ptimeval; Ttimeval = Baseunix.ttimeval; const FIONREAD = termio.FIONREAD; FIONBIO = termio.FIONBIO; FIOASYNC = termio.FIOASYNC; const IPPROTO_IP = 0; { Dummy } IPPROTO_ICMP = 1; { Internet Control Message Protocol } IPPROTO_IGMP = 2; { Internet Group Management Protocol} IPPROTO_TCP = 6; { TCP } IPPROTO_UDP = 17; { User Datagram Protocol } IPPROTO_IPV6 = 41; IPPROTO_ICMPV6 = 58; IPPROTO_RAW = 255; IPPROTO_MAX = 256; type PInAddr = ^TInAddr; TInAddr = sockets.in_addr; PSockAddrIn = ^TSockAddrIn; TSockAddrIn = sockets.TInetSockAddr; TIP_mreq = record imr_multiaddr: TInAddr; // IP multicast address of group imr_interface: TInAddr; // local IP address of interface end; PInAddr6 = ^TInAddr6; TInAddr6 = sockets.Tin6_addr; PSockAddrIn6 = ^TSockAddrIn6; TSockAddrIn6 = sockets.TInetSockAddr6; TIPv6_mreq = record ipv6mr_multiaddr: TInAddr6; // IPv6 multicast address. ipv6mr_interface: integer; // Interface index. end; const INADDR_ANY = $00000000; INADDR_LOOPBACK = $7F000001; INADDR_BROADCAST = $FFFFFFFF; INADDR_NONE = $FFFFFFFF; ADDR_ANY = INADDR_ANY; INVALID_SOCKET = TSocket(NOT(0)); SOCKET_ERROR = -1; Const IP_TOS = sockets.IP_TOS; { int; IP type of service and precedence. } IP_TTL = sockets.IP_TTL; { int; IP time to live. } IP_HDRINCL = sockets.IP_HDRINCL; { int; Header is included with data. } IP_OPTIONS = sockets.IP_OPTIONS; { ip_opts; IP per-packet options. } // IP_ROUTER_ALERT = sockets.IP_ROUTER_ALERT; { bool } IP_RECVOPTS = sockets.IP_RECVOPTS; { bool } IP_RETOPTS = sockets.IP_RETOPTS; { bool } // IP_PKTINFO = sockets.IP_PKTINFO; { bool } // IP_PKTOPTIONS = sockets.IP_PKTOPTIONS; // IP_PMTUDISC = sockets.IP_PMTUDISC; { obsolete name? } // IP_MTU_DISCOVER = sockets.IP_MTU_DISCOVER; { int; see below } // IP_RECVERR = sockets.IP_RECVERR; { bool } // IP_RECVTTL = sockets.IP_RECVTTL; { bool } // IP_RECVTOS = sockets.IP_RECVTOS; { bool } IP_MULTICAST_IF = sockets.IP_MULTICAST_IF; { in_addr; set/get IP multicast i/f } IP_MULTICAST_TTL = sockets.IP_MULTICAST_TTL; { u_char; set/get IP multicast ttl } IP_MULTICAST_LOOP = sockets.IP_MULTICAST_LOOP; { i_char; set/get IP multicast loopback } IP_ADD_MEMBERSHIP = sockets.IP_ADD_MEMBERSHIP; { ip_mreq; add an IP group membership } IP_DROP_MEMBERSHIP = sockets.IP_DROP_MEMBERSHIP; { ip_mreq; drop an IP group membership } SOL_SOCKET = sockets.SOL_SOCKET; SO_DEBUG = sockets.SO_DEBUG; SO_REUSEADDR = sockets.SO_REUSEADDR; SO_TYPE = sockets.SO_TYPE; SO_ERROR = sockets.SO_ERROR; SO_DONTROUTE = sockets.SO_DONTROUTE; SO_BROADCAST = sockets.SO_BROADCAST; SO_SNDBUF = sockets.SO_SNDBUF; SO_RCVBUF = sockets.SO_RCVBUF; SO_KEEPALIVE = sockets.SO_KEEPALIVE; SO_OOBINLINE = sockets.SO_OOBINLINE; // SO_NO_CHECK = sockets.SO_NO_CHECK; // SO_PRIORITY = sockets.SO_PRIORITY; SO_LINGER = sockets.SO_LINGER; // SO_BSDCOMPAT = sockets.SO_BSDCOMPAT; // SO_REUSEPORT = sockets.SO_REUSEPORT; // SO_PASSCRED = sockets.SO_PASSCRED; // SO_PEERCRED = sockets.SO_PEERCRED; SO_RCVLOWAT = sockets.SO_RCVLOWAT; SO_SNDLOWAT = sockets.SO_SNDLOWAT; SO_RCVTIMEO = sockets.SO_RCVTIMEO; SO_SNDTIMEO = sockets.SO_SNDTIMEO; { Security levels - as per NRL IPv6 - don't actually do anything } // SO_SECURITY_AUTHENTICATION = sockets.SO_SECURITY_AUTHENTICATION; // SO_SECURITY_ENCRYPTION_TRANSPORT = sockets.SO_SECURITY_ENCRYPTION_TRANSPORT; // SO_SECURITY_ENCRYPTION_NETWORK = sockets.SO_SECURITY_ENCRYPTION_NETWORK; // SO_BINDTODEVICE = sockets.SO_BINDTODEVICE; { Socket filtering } // SO_ATTACH_FILTER = sockets.SO_ATTACH_FILTER; // SO_DETACH_FILTER = sockets.SO_DETACH_FILTER; SOMAXCONN = 1024; IPV6_UNICAST_HOPS = sockets.IPV6_UNICAST_HOPS; IPV6_MULTICAST_IF = sockets.IPV6_MULTICAST_IF; IPV6_MULTICAST_HOPS = sockets.IPV6_MULTICAST_HOPS; IPV6_MULTICAST_LOOP = sockets.IPV6_MULTICAST_LOOP; IPV6_JOIN_GROUP = sockets.IPV6_JOIN_GROUP; IPV6_LEAVE_GROUP = sockets.IPV6_LEAVE_GROUP; const SOCK_STREAM = 1; { stream socket } SOCK_DGRAM = 2; { datagram socket } SOCK_RAW = 3; { raw-protocol interface } SOCK_RDM = 4; { reliably-delivered message } SOCK_SEQPACKET = 5; { sequenced packet stream } { TCP options. } TCP_NODELAY = $0001; { Address families. } AF_UNSPEC = 0; { unspecified } AF_INET = 2; { internetwork: UDP, TCP, etc. } AF_INET6 = 10; { Internetwork Version 6 } AF_MAX = 24; { Protocol families, same as address families for now. } PF_UNSPEC = AF_UNSPEC; PF_INET = AF_INET; PF_INET6 = AF_INET6; PF_MAX = AF_MAX; type { Structure used for manipulating linger option. } PLinger = ^TLinger; TLinger = packed record l_onoff: integer; l_linger: integer; end; const MSG_OOB = sockets.MSG_OOB; // Process out-of-band data. MSG_PEEK = sockets.MSG_PEEK; // Peek at incoming messages. MSG_NOSIGNAL = sockets.MSG_NOSIGNAL; // Do not generate SIGPIPE. const WSAEINTR = ESysEINTR; WSAEBADF = ESysEBADF; WSAEACCES = ESysEACCES; WSAEFAULT = ESysEFAULT; WSAEINVAL = ESysEINVAL; WSAEMFILE = ESysEMFILE; WSAEWOULDBLOCK = ESysEWOULDBLOCK; WSAEINPROGRESS = ESysEINPROGRESS; WSAEALREADY = ESysEALREADY; WSAENOTSOCK = ESysENOTSOCK; WSAEDESTADDRREQ = ESysEDESTADDRREQ; WSAEMSGSIZE = ESysEMSGSIZE; WSAEPROTOTYPE = ESysEPROTOTYPE; WSAENOPROTOOPT = ESysENOPROTOOPT; WSAEPROTONOSUPPORT = ESysEPROTONOSUPPORT; WSAESOCKTNOSUPPORT = ESysESOCKTNOSUPPORT; WSAEOPNOTSUPP = ESysEOPNOTSUPP; WSAEPFNOSUPPORT = ESysEPFNOSUPPORT; WSAEAFNOSUPPORT = ESysEAFNOSUPPORT; WSAEADDRINUSE = ESysEADDRINUSE; WSAEADDRNOTAVAIL = ESysEADDRNOTAVAIL; WSAENETDOWN = ESysENETDOWN; WSAENETUNREACH = ESysENETUNREACH; WSAENETRESET = ESysENETRESET; WSAECONNABORTED = ESysECONNABORTED; WSAECONNRESET = ESysECONNRESET; WSAENOBUFS = ESysENOBUFS; WSAEISCONN = ESysEISCONN; WSAENOTCONN = ESysENOTCONN; WSAESHUTDOWN = ESysESHUTDOWN; WSAETOOMANYREFS = ESysETOOMANYREFS; WSAETIMEDOUT = ESysETIMEDOUT; WSAECONNREFUSED = ESysECONNREFUSED; WSAELOOP = ESysELOOP; WSAENAMETOOLONG = ESysENAMETOOLONG; WSAEHOSTDOWN = ESysEHOSTDOWN; WSAEHOSTUNREACH = ESysEHOSTUNREACH; WSAENOTEMPTY = ESysENOTEMPTY; WSAEPROCLIM = -1; WSAEUSERS = ESysEUSERS; WSAEDQUOT = ESysEDQUOT; WSAESTALE = ESysESTALE; WSAEREMOTE = ESysEREMOTE; WSASYSNOTREADY = -2; WSAVERNOTSUPPORTED = -3; WSANOTINITIALISED = -4; WSAEDISCON = -5; WSAHOST_NOT_FOUND = 1; WSATRY_AGAIN = 2; WSANO_RECOVERY = 3; WSANO_DATA = -6; const WSADESCRIPTION_LEN = 256; WSASYS_STATUS_LEN = 128; type PWSAData = ^TWSAData; TWSAData = packed record wVersion: Word; wHighVersion: Word; szDescription: array[0..WSADESCRIPTION_LEN] of Char; szSystemStatus: array[0..WSASYS_STATUS_LEN] of Char; iMaxSockets: Word; iMaxUdpDg: Word; lpVendorInfo: PChar; end; function IN6_IS_ADDR_UNSPECIFIED(const a: PInAddr6): boolean; function IN6_IS_ADDR_LOOPBACK(const a: PInAddr6): boolean; function IN6_IS_ADDR_LINKLOCAL(const a: PInAddr6): boolean; function IN6_IS_ADDR_SITELOCAL(const a: PInAddr6): boolean; function IN6_IS_ADDR_MULTICAST(const a: PInAddr6): boolean; function IN6_ADDR_EQUAL(const a: PInAddr6; const b: PInAddr6):boolean; procedure SET_IN6_IF_ADDR_ANY (const a: PInAddr6); procedure SET_LOOPBACK_ADDR6 (const a: PInAddr6); var in6addr_any, in6addr_loopback : TInAddr6; procedure FD_CLR(Socket: TSocket; var FDSet: TFDSet); function FD_ISSET(Socket: TSocket; var FDSet: TFDSet): Boolean; procedure FD_SET(Socket: TSocket; var FDSet: TFDSet); procedure FD_ZERO(var FDSet: TFDSet); {=============================================================================} var SynSockCS: SyncObjs.TCriticalSection; SockEnhancedApi: Boolean; SockWship6Api: Boolean; type TVarSin = packed record {$ifdef SOCK_HAS_SINLEN} sin_len : cuchar; {$endif} case integer of 0: (AddressFamily: sa_family_t); 1: ( case sin_family: sa_family_t of AF_INET: (sin_port: word; sin_addr: TInAddr; sin_zero: array[0..7] of Char); AF_INET6: (sin6_port: word; sin6_flowinfo: longword; sin6_addr: TInAddr6; sin6_scope_id: longword); ); end; function SizeOfVarSin(sin: TVarSin): integer; function WSAStartup(wVersionRequired: Word; var WSData: TWSAData): Integer; function WSACleanup: Integer; function WSAGetLastError: Integer; function GetHostName: string; function Shutdown(s: TSocket; how: Integer): Integer; function SetSockOpt(s: TSocket; level, optname: Integer; optval: TMemory; optlen: Integer): Integer; function GetSockOpt(s: TSocket; level, optname: Integer; optval: TMemory; var optlen: Integer): Integer; function Send(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; function Recv(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; function SendTo(s: TSocket; Buf: TMemory; len, flags: Integer; addrto: TVarSin): Integer; function RecvFrom(s: TSocket; Buf: TMemory; len, flags: Integer; var from: TVarSin): Integer; function ntohs(netshort: word): word; function ntohl(netlong: longword): longword; function Listen(s: TSocket; backlog: Integer): Integer; function IoctlSocket(s: TSocket; cmd: DWORD; var arg: integer): Integer; function htons(hostshort: word): word; function htonl(hostlong: longword): longword; function GetSockName(s: TSocket; var name: TVarSin): Integer; function GetPeerName(s: TSocket; var name: TVarSin): Integer; function Connect(s: TSocket; const name: TVarSin): Integer; function CloseSocket(s: TSocket): Integer; function Bind(s: TSocket; const addr: TVarSin): Integer; function Accept(s: TSocket; var addr: TVarSin): TSocket; function Socket(af, Struc, Protocol: Integer): TSocket; function Select(nfds: Integer; readfds, writefds, exceptfds: PFDSet; timeout: PTimeVal): Longint; function IsNewApi(Family: integer): Boolean; function SetVarSin(var Sin: TVarSin; IP, Port: string; Family, SockProtocol, SockType: integer; PreferIP4: Boolean): integer; function GetSinIP(Sin: TVarSin): string; function GetSinPort(Sin: TVarSin): Integer; procedure ResolveNameToIP(Name: string; Family, SockProtocol, SockType: integer; const IPList: TStrings); function ResolveIPToName(IP: string; Family, SockProtocol, SockType: integer): string; function ResolvePort(Port: string; Family, SockProtocol, SockType: integer): Word; {==============================================================================} implementation function IN6_IS_ADDR_UNSPECIFIED(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr32[0] = 0) and (a^.u6_addr32[1] = 0) and (a^.u6_addr32[2] = 0) and (a^.u6_addr32[3] = 0)); end; function IN6_IS_ADDR_LOOPBACK(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr32[0] = 0) and (a^.u6_addr32[1] = 0) and (a^.u6_addr32[2] = 0) and (a^.u6_addr8[12] = 0) and (a^.u6_addr8[13] = 0) and (a^.u6_addr8[14] = 0) and (a^.u6_addr8[15] = 1)); end; function IN6_IS_ADDR_LINKLOCAL(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr8[0] = $FE) and (a^.u6_addr8[1] = $80)); end; function IN6_IS_ADDR_SITELOCAL(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr8[0] = $FE) and (a^.u6_addr8[1] = $C0)); end; function IN6_IS_ADDR_MULTICAST(const a: PInAddr6): boolean; begin Result := (a^.u6_addr8[0] = $FF); end; function IN6_ADDR_EQUAL(const a: PInAddr6; const b: PInAddr6): boolean; begin Result := (CompareMem( a, b, sizeof(TInAddr6))); end; procedure SET_IN6_IF_ADDR_ANY (const a: PInAddr6); begin FillChar(a^, sizeof(TInAddr6), 0); end; procedure SET_LOOPBACK_ADDR6 (const a: PInAddr6); begin FillChar(a^, sizeof(TInAddr6), 0); a^.u6_addr8[15] := 1; end; {=============================================================================} function WSAStartup(wVersionRequired: Word; var WSData: TWSAData): Integer; begin with WSData do begin wVersion := wVersionRequired; wHighVersion := $202; szDescription := 'Synsock - Synapse Platform Independent Socket Layer'; szSystemStatus := 'Running on Unix/Linux by FreePascal'; iMaxSockets := 32768; iMaxUdpDg := 8192; end; Result := 0; end; function WSACleanup: Integer; begin Result := 0; end; function WSAGetLastError: Integer; begin Result := fpGetErrno; end; function FD_ISSET(Socket: TSocket; var fdset: TFDSet): Boolean; begin Result := fpFD_ISSET(socket, fdset) <> 0; end; procedure FD_SET(Socket: TSocket; var fdset: TFDSet); begin fpFD_SET(Socket, fdset); end; procedure FD_CLR(Socket: TSocket; var fdset: TFDSet); begin fpFD_CLR(Socket, fdset); end; procedure FD_ZERO(var fdset: TFDSet); begin fpFD_ZERO(fdset); end; {=============================================================================} function SizeOfVarSin(sin: TVarSin): integer; begin case sin.sin_family of AF_INET: Result := SizeOf(TSockAddrIn); AF_INET6: Result := SizeOf(TSockAddrIn6); else Result := 0; end; end; {=============================================================================} function Bind(s: TSocket; const addr: TVarSin): Integer; begin if fpBind(s, @addr, SizeOfVarSin(addr)) = 0 then Result := 0 else Result := SOCKET_ERROR; end; function Connect(s: TSocket; const name: TVarSin): Integer; begin if fpConnect(s, @name, SizeOfVarSin(name)) = 0 then Result := 0 else Result := SOCKET_ERROR; end; function GetSockName(s: TSocket; var name: TVarSin): Integer; var len: integer; begin len := SizeOf(name); FillChar(name, len, 0); Result := fpGetSockName(s, @name, @Len); end; function GetPeerName(s: TSocket; var name: TVarSin): Integer; var len: integer; begin len := SizeOf(name); FillChar(name, len, 0); Result := fpGetPeerName(s, @name, @Len); end; function GetHostName: string; begin Result := unix.GetHostName; end; function Send(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; begin Result := fpSend(s, pointer(Buf), len, flags); end; function Recv(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; begin Result := fpRecv(s, pointer(Buf), len, flags); end; function SendTo(s: TSocket; Buf: TMemory; len, flags: Integer; addrto: TVarSin): Integer; begin Result := fpSendTo(s, pointer(Buf), len, flags, @addrto, SizeOfVarSin(addrto)); end; function RecvFrom(s: TSocket; Buf: TMemory; len, flags: Integer; var from: TVarSin): Integer; var x: integer; begin x := SizeOf(from); Result := fpRecvFrom(s, pointer(Buf), len, flags, @from, @x); end; function Accept(s: TSocket; var addr: TVarSin): TSocket; var x: integer; begin x := SizeOf(addr); Result := fpAccept(s, @addr, @x); end; function Shutdown(s: TSocket; how: Integer): Integer; begin Result := fpShutdown(s, how); end; function SetSockOpt(s: TSocket; level, optname: Integer; optval: Tmemory; optlen: Integer): Integer; begin Result := fpsetsockopt(s, level, optname, pointer(optval), optlen); end; function GetSockOpt(s: TSocket; level, optname: Integer; optval: Tmemory; var optlen: Integer): Integer; begin Result := fpgetsockopt(s, level, optname, pointer(optval), @optlen); end; function ntohs(netshort: word): word; begin Result := sockets.ntohs(NetShort); end; function ntohl(netlong: longword): longword; begin Result := sockets.ntohl(NetLong); end; function Listen(s: TSocket; backlog: Integer): Integer; begin if fpListen(s, backlog) = 0 then Result := 0 else Result := SOCKET_ERROR; end; function IoctlSocket(s: TSocket; cmd: DWORD; var arg: integer): Integer; begin Result := fpIoctl(s, cmd, @arg); end; function htons(hostshort: word): word; begin Result := sockets.htons(Hostshort); end; function htonl(hostlong: longword): longword; begin Result := sockets.htonl(HostLong); end; function CloseSocket(s: TSocket): Integer; begin Result := sockets.CloseSocket(s); end; function Socket(af, Struc, Protocol: Integer): TSocket; begin Result := fpSocket(af, struc, protocol); end; function Select(nfds: Integer; readfds, writefds, exceptfds: PFDSet; timeout: PTimeVal): Longint; begin Result := fpSelect(nfds, readfds, writefds, exceptfds, timeout); end; {=============================================================================} function IsNewApi(Family: integer): Boolean; begin Result := SockEnhancedApi; if not Result then Result := (Family = AF_INET6) and SockWship6Api; end; function SetVarSin(var Sin: TVarSin; IP, Port: string; Family, SockProtocol, SockType: integer; PreferIP4: Boolean): integer; var TwoPass: boolean; f1, f2: integer; function GetAddr(f:integer): integer; var a4: array [1..1] of in_addr; a6: array [1..1] of Tin6_addr; begin Result := WSAEPROTONOSUPPORT; case f of AF_INET: begin if IP = cAnyHost then begin Sin.sin_family := AF_INET; Result := 0; end else begin if lowercase(IP) = cLocalHostStr then a4[1].s_addr := htonl(INADDR_LOOPBACK) else begin a4[1].s_addr := 0; Result := WSAHOST_NOT_FOUND; a4[1] := StrTonetAddr(IP); if a4[1].s_addr = INADDR_ANY then Resolvename(ip, a4); end; if a4[1].s_addr <> INADDR_ANY then begin Sin.sin_family := AF_INET; sin.sin_addr := a4[1]; Result := 0; end; end; end; AF_INET6: begin if IP = c6AnyHost then begin Sin.sin_family := AF_INET6; Result := 0; end else begin if lowercase(IP) = cLocalHostStr then SET_LOOPBACK_ADDR6(@a6[1]) else begin Result := WSAHOST_NOT_FOUND; SET_IN6_IF_ADDR_ANY(@a6[1]); a6[1] := StrTonetAddr6(IP); if IN6_IS_ADDR_UNSPECIFIED(@a6[1]) then Resolvename6(ip, a6); end; if IN6_IS_ADDR_UNSPECIFIED(@a6[1]) then begin Sin.sin_family := AF_INET6; sin.sin6_addr := a6[1]; Result := 0; end; end; end; end; end; begin Result := 0; FillChar(Sin, Sizeof(Sin), 0); Sin.sin_port := Resolveport(port, family, SockProtocol, SockType); TwoPass := False; if Family = AF_UNSPEC then begin if PreferIP4 then begin f1 := AF_INET; f2 := AF_INET6; TwoPass := True; end else begin f2 := AF_INET; f1 := AF_INET6; TwoPass := True; end; end else f1 := Family; Result := GetAddr(f1); if Result <> 0 then if TwoPass then Result := GetAddr(f2); end; function GetSinIP(Sin: TVarSin): string; begin Result := ''; case sin.AddressFamily of AF_INET: begin result := NetAddrToStr(sin.sin_addr); end; AF_INET6: begin result := NetAddrToStr6(sin.sin6_addr); end; end; end; function GetSinPort(Sin: TVarSin): Integer; begin if (Sin.sin_family = AF_INET6) then Result := synsock.ntohs(Sin.sin6_port) else Result := synsock.ntohs(Sin.sin_port); end; procedure ResolveNameToIP(Name: string; Family, SockProtocol, SockType: integer; const IPList: TStrings); var x, n: integer; a4: array [1..255] of in_addr; a6: array [1..255] of Tin6_addr; begin IPList.Clear; if (family = AF_INET) or (family = AF_UNSPEC) then begin if lowercase(name) = cLocalHostStr then IpList.Add(cLocalHost) else begin a4[1] := StrTonetAddr(name); if a4[1].s_addr = INADDR_ANY then x := Resolvename(name, a4) else x := 1; for n := 1 to x do IpList.Add(netaddrToStr(a4[n])); end; end; if (family = AF_INET6) or (family = AF_UNSPEC) then begin if lowercase(name) = cLocalHostStr then IpList.Add(c6LocalHost) else begin a6[1] := StrTonetAddr6(name); if IN6_IS_ADDR_UNSPECIFIED(@a6[1]) then x := Resolvename6(name, a6) else x := 1; for n := 1 to x do IpList.Add(netaddrToStr6(a6[n])); end; end; if IPList.Count = 0 then IPList.Add(cLocalHost); end; function ResolvePort(Port: string; Family, SockProtocol, SockType: integer): Word; var ProtoEnt: TProtocolEntry; ServEnt: TServiceEntry; begin Result := synsock.htons(StrToIntDef(Port, 0)); if Result = 0 then begin ProtoEnt.Name := ''; GetProtocolByNumber(SockProtocol, ProtoEnt); ServEnt.port := 0; GetServiceByName(Port, ProtoEnt.Name, ServEnt); Result := ServEnt.port; end; end; function ResolveIPToName(IP: string; Family, SockProtocol, SockType: integer): string; var n: integer; a4: array [1..1] of in_addr; a6: array [1..1] of Tin6_addr; a: array [1..1] of string; begin Result := IP; a4[1] := StrToNetAddr(IP); if a4[1].s_addr <> INADDR_ANY then begin //why ResolveAddress need address in HOST order? :-O n := ResolveAddress(nettohost(a4[1]), a); if n > 0 then Result := a[1]; end else begin a6[1] := StrToNetAddr6(IP); n := ResolveAddress6(a6[1], a); if n > 0 then Result := a[1]; end; end; {=============================================================================} function InitSocketInterface(stack: string): Boolean; begin SockEnhancedApi := False; SockWship6Api := False; // Libc.Signal(Libc.SIGPIPE, TSignalHandler(Libc.SIG_IGN)); Result := True; end; function DestroySocketInterface: Boolean; begin Result := True; end; initialization begin SynSockCS := SyncObjs.TCriticalSection.Create; SET_IN6_IF_ADDR_ANY (@in6addr_any); SET_LOOPBACK_ADDR6 (@in6addr_loopback); end; finalization begin SynSockCS.Free; end; {$ENDIF} ������������������./configbrowser.pas���������������������������������������������������������������������������������0000644�0001750�0001750�00000026763�14576573021�014543� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit configbrowser; {$mode ObjFPC}{$H+} interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, ComCtrls, Buttons, Grids; type { TConfigBrowserForm } TConfigBrowserForm = class(TForm) BackupConfigButton: TButton; ExportButton: TButton; ExportedFilesStringGrid: TStringGrid; MergeButton: TButton; RefreshBitBtn: TBitBtn; ExportedFilesGroupBox: TGroupBox; FileViewGroupBox: TGroupBox; FileViewListBox: TListBox; InConfigGroupBox: TGroupBox; OnDiskGroupBox: TGroupBox; ReplaceButton: TButton; SelectedSerialNumberGroupBox: TGroupBox; SerialDetailsListBox: TListBox; SerialListBox: TListBox; StoredSerialNumbersGroupBox: TGroupBox; OpenDialog1: TOpenDialog; StatusBar: TStatusBar; procedure BackupConfigButtonClick(Sender: TObject); procedure ExportButtonClick(Sender: TObject); procedure ExportedFilesStringGridClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure MergeButtonClick(Sender: TObject); procedure RefreshBitBtnClick(Sender: TObject); procedure ReplaceButtonClick(Sender: TObject); procedure SerialListBoxClick(Sender: TObject); procedure RefreshSerials(); private public end; var ConfigBrowserForm: TConfigBrowserForm; DisplayedSerialNumber:String; implementation uses Unit1, appsettings, StrUtils, FileUtil , LazFileUtils //Necessary for filename extraction , LCLType //MB_ buttons defined here ,header_utils ; { TConfigBrowserForm } procedure TConfigBrowserForm.RefreshSerials(); var SectionString: String = ''; SerialString: String = ''; ConfSectionStringList: TStringList; i: Integer; {General purpose counter} begin ConfSectionStringList:=TStringList.Create; {Load list box with serial numbers in .cfg file} SerialListBox.Clear; SerialDetailsListBox.Clear; vConfigurations.ReadSectionNames(ConfSectionStringList); for SectionString in ConfSectionStringList do begin if AnsiStartsText('Serial:',SectionString) then begin SerialString:=AnsiReplaceText(SectionString,'Serial:',''); SerialListBox.Items.Add(SerialString); end; end; //{Highlight the selected serial number in the stored list} //for i := 0 to SerialListBox.Count-1 do begin // if StrToInt(SerialListBox.Items[i])=StrToInt(Unit1.SelectedUnitSerialNumber) then begin // SerialListBox.ItemIndex:=i; // end; //end; // //{Populate from the selected} //SerialListBoxClick(Nil); ConfSectionStringList.Free; end; procedure TConfigBrowserForm.FormShow(Sender: TObject); begin {Show location of config file} InConfigGroupBox.Caption:='In config: ' + ConfigFilePath; {Show location of logs directory} OnDiskGroupBox.Caption:='On disk: ' + LogsDirectory; {Populate stored serial numbers list} RefreshSerials(); {Populate file list} RefreshBitBtnClick(Nil); end; procedure TConfigBrowserForm.MergeButtonClick(Sender: TObject); var SelectedSerialString:String=''; Reply: Integer; i: Integer; SeparatorPosition:Integer; KeyRecord:String; KeyString:String; KeyValue:String; begin {Look for serial number in file view} if FileViewListBox.Count>0 then begin {Get selected serial number, and remove extra text.} SelectedSerialString:=FileViewListBox.Items[0]; SelectedSerialString:=AnsiReplaceText(SelectedSerialString,'[Serial:',''); SelectedSerialString:=AnsiReplaceText(SelectedSerialString,']',''); {Warn that existing record will be deleted} StatusMessage('Attempting to import / merge serial '+SelectedSerialString+' config.'); Reply:=Application.MessageBox( Pchar('Are you sure you want to merge any existing configuration for this serial number '+SelectedSerialString+' ?' + sLineBreak + 'Cancel if not sure.'),'Import / merge ',MB_ICONWARNING + MB_OKCANCEL); if Reply=mrOK then begin StatusMessage('Import / merge serial '+SelectedSerialString+' config proceeding.'); {Import} {Skip first line with section name} for i:=1 to FileViewListBox.Count-1 do begin KeyRecord:=FileViewListBox.Items[i]; SeparatorPosition:=pos('=',FileViewListBox.Items[i]); KeyString:=AnsiLeftStr(FileViewListBox.Items[i],SeparatorPosition-1); KeyValue:=AnsiRightStr(FileViewListBox.Items[i],Length(KeyRecord)-SeparatorPosition); vConfigurations.WriteString('Serial:'+SelectedSerialString,KeyString,KeyValue); end; {Refresh list} RefreshSerials(); {Select imported data} end else StatusMessage('Import / merge cancelled.'); end; end; {Refresh exported files list} procedure TConfigBrowserForm.RefreshBitBtnClick(Sender: TObject); //procedure TPlotterForm.AddFilesToList(FilePathName : String); var FileSize : integer = 0; {Filesize, undetermined = 0} Row : integer = 1; {Start at row 1} FileName, FilePath, FileDate : string; sr : TSearchRec; FileFilter : String; begin FileViewGroupBox.Caption:='File view:'; FileViewListBox.Clear; FilePath := ExtractFilePath(LogsDirectory); FileFilter:='SN_*.txt'; ExportedFilesStringGrid.RowCount:=1; {Reset file list} {Check if any files match criteria} if FindFirstUTF8(FilePath+FileFilter,faAnyFile,sr)=0 then repeat {Get formatted file properties} FileName := ExtractFileName(sr.Name); FileSize := sr.Size; FileDate:=DateTimeToStr(FileDateToDateTime(sr.Time),FDateSettings); {Display found filename and timestamp} ExportedFilesStringGrid.InsertRowWithValues(Row,[FileName, IntToStr(FileSize), FileDate ]); {Prepare for next file display} Row := Row + 1; until FindNextUTF8(sr)<>0; FindCloseUTF8(sr); {Initial sorting} ExportedFilesStringGrid.SortColRow(true, 0); {Deselect entry} ExportedFilesStringGrid.ClearSelections; ExportedFilesStringGrid.Options:=ExportedFilesStringGrid.Options - [goRowSelect]; end; {Replace a section} procedure TConfigBrowserForm.ReplaceButtonClick(Sender: TObject); var SelectedSerialString:String=''; Reply: Integer; i: Integer; SeparatorPosition:Integer; KeyRecord:String; KeyString:String; KeyValue:String; begin {Look for serial number in file view} if FileViewListBox.Count>0 then begin {Get selected serial number, and remove extra text.} SelectedSerialString:=FileViewListBox.Items[0]; SelectedSerialString:=AnsiReplaceText(SelectedSerialString,'[Serial:',''); SelectedSerialString:=AnsiReplaceText(SelectedSerialString,']',''); {Warn that existing record will be deleted} StatusMessage('Attempting to import / replace serial '+SelectedSerialString+' config.'); Reply:=Application.MessageBox( Pchar('Are you sure you want to overwrtite any existing configuration for this serial number '+SelectedSerialString+' ?' + sLineBreak + 'Cancel if not sure.'),'Import / replace ',MB_ICONWARNING + MB_OKCANCEL); if Reply=mrOK then begin StatusMessage('Import / replace serial '+SelectedSerialString+' config proceeding.'); {Delete the section first} vConfigurations.EraseSection('Serial:'+SelectedSerialString); {Import} {Skip first line with section name} for i:=1 to FileViewListBox.Count-1 do begin KeyRecord:=FileViewListBox.Items[i]; SeparatorPosition:=pos('=',FileViewListBox.Items[i]); KeyString:=AnsiLeftStr(FileViewListBox.Items[i],SeparatorPosition-1); KeyValue:=AnsiRightStr(FileViewListBox.Items[i],Length(KeyRecord)-SeparatorPosition); vConfigurations.WriteString('Serial:'+SelectedSerialString,KeyString,KeyValue); end; {Refresh list} RefreshSerials(); {Select imported data} end else StatusMessage('Import / replace cancelled.'); end; end; procedure TConfigBrowserForm.ExportButtonClick(Sender: TObject); var filename: string; tfOut: TextFile; i:integer = 0; begin {Filename: serial number + date . txt} filename:=RemoveMultiSlash( LogsDirectory+DirectorySeparator+ 'SN_'+ DisplayedSerialNumber+ '_'+ FormatDateTime('yyyy-mm-dd"T"hh-nn-ss',Now()) + '.txt'); // Set the name of the file that will be created AssignFile(tfOut, filename); // Use exceptions to catch errors (this is the default so not absolutely requried) {$I+} // Embed the file creation in a try/except block to handle errors gracefully try // Create the file, write some text and close it. rewrite(tfOut); {Write first line replicating the sectionname} //writeln(tfOut, '[Serial:'+DisplayedSerialNumber+']'); for i:=0 to SerialDetailsListBox.Count-1 do begin writeln(tfOut, SerialDetailsListBox.Items[i]); end; CloseFile(tfOut); except // If there was an error the reason can be found here on E: EInOutError do writeln('Export serial number details config : File handling error occurred. Details: ', E.ClassName, '/', E.Message); end; StatusBar.Panels.Items[0].Text:='Wrote file to:'+filename; RefreshBitBtnClick(Nil); end; {View file} procedure TConfigBrowserForm.ExportedFilesStringGridClick(Sender: TObject); var tfIn: TextFile; filename: String; s:String; {String read from file} begin ExportedFilesStringGrid.Options:=ExportedFilesStringGrid.Options + [goRowSelect]; {Open file dialog. Only show SN_*.txt files} filename:=LogsDirectory+DirectorySeparator+ExportedFilesStringGrid.Cells[0,ExportedFilesStringGrid.Row]; FileViewGroupBox.Caption:='File view: '+filename; FileViewListBox.Clear; // Set the name of the file that will be read AssignFile(tfIn, filename); // Embed the file handling in a try/except block to handle errors gracefully try // Open the file for reading reset(tfIn); // Keep reading lines until the end of the file is reached while not eof(tfIn) do begin readln(tfIn, s); FileViewListBox.Items.Add(s); //writeln(s); end; // Done so close the file CloseFile(tfIn); except on E: EInOutError do writeln('File view handling error occurred. Details: ', E.Message); end; {Ask before overwriting existing: Merge, Replace, No-diff, Cancel} {Replace:} //vConfigurations.EraseSection('Serial:'+); {Cancel:} //Exit; end; {Make a backup copy} procedure TConfigBrowserForm.BackupConfigButtonClick(Sender: TObject); var DestFile: String; begin DestFile:=AnsiReplaceText(ConfigFilePath,'udm.','udm'+FormatDateTime('_yyyy-mm-dd"T"hh-nn-ss',Now())+'.'); CopyFile(ConfigFilePath, DestFile); StatusBar.Panels.Items[0].Text:='Copied original '+ConfigFilePath+' file to: '+DestFile; end; procedure TConfigBrowserForm.SerialListBoxClick(Sender: TObject); var SectionNameString: String = ''; FieldNameString: String = ''; SerialDetailsStringList: TStringList; {For parsing list} begin SerialDetailsStringList:=TStringList.Create; {Load list box with serial number details} SerialDetailsListBox.Clear; if SerialListBox.ItemIndex>=0 then begin DisplayedSerialNumber:=SerialListBox.items[SerialListBox.ItemIndex]; SectionNameString:='Serial:'+DisplayedSerialNumber; vConfigurations.ReadSection(SectionNameString,SerialDetailsStringList); SerialDetailsListBox.Items.Add('['+SectionNameString+']'); for FieldNameString in SerialDetailsStringList do begin SerialDetailsListBox.Items.Add( FieldNameString+ '='+ vConfigurations.ReadString(SectionNameString,FieldNameString,'') ); end; end; end; initialization {$I configbrowser.lrs} end. �������������./unihedrondevice.pas�������������������������������������������������������������������������������0000600�0001750�0001750�00000014705�14576573021�015026� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit unihedrondevice; {$mode objfpc}{$H+} interface uses Classes, SysUtils, Process, StrUtils {$IFDEF Windows}, Registry{$ENDIF} ; type FoundDevice = record SerialNumber : String; Connection : String; Hardware : String; end; function FindUSB(): TStringList; var FoundDevicesArray: array of FoundDevice; implementation function FindUSB(): TStringList; const READ_BYTES = 2048; var OutputLines: TStringList; MemStream: TMemoryStream; OurProcess: TProcess; NumBytes: LongInt; BytesRead: LongInt; LookForState: Integer; USBDeviceSerial,usbdevname,usbserial: String; LinuxDeviceFile: String; lStrings,udevStrings: TStringList; StringPos:Integer; pieces: TStringList; kAvailable: TStringlist; kConnected: TStringlist; {$IFDEF Windows} i,j,foundindex: Integer; reg,reg2: TRegistry; Regkey,RegCOMkey,FTDIKey: String; keys,keys2: TStringlist; {$ENDIF Windows} begin kConnected := TStringList.Create; kAvailable := TStringList.Create; {$IFDEF Windows} // Find FTDI USB device on a Windows machine Regkey:='HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\'; RegCOMkey:='HKEY_LOCAL_MACHINE\\HARDWARE\\DEVICEMAP\\SERIALCOMM\\'; //Form2.Memo1.Clear;//debug //Check for all connected serial commuication devices keys := TStringList.Create; reg := TRegistry.Create; reg.RootKey := HKEY_LOCAL_MACHINE; if reg.KeyExists('HARDWARE\DEVICEMAP\SERIALCOMM\') then begin reg.OpenKeyReadOnly('HARDWARE\DEVICEMAP\SERIALCOMM\'); //StatusBar.SimpleText:='At least one COMM port is active.'; reg.GetValueNames(keys); for i := 0 to keys.Count-1 do begin //Form2.Memo1.Lines.Add(reg.ReadString(keys.ValueFromIndex[i])); kConnected.Add(reg.ReadString(keys.ValueFromIndex[i])); end; //Form2.Memo1.Lines.AddStrings(keys); end; //else // StatusBar.SimpleText:='No COMM ports are active.'; reg.Free; // Check all installed FTDI drivers. pieces := TStringList.Create; pieces.Delimiter := '+'; keys := TStringList.Create; keys2 := TStringList.Create; //StatusBar.SimpleText:=(format ('Checking Registry for: %s ...',[Regkey])); reg := TRegistry.Create; reg.RootKey := HKEY_LOCAL_MACHINE; if reg.KeyExists('SYSTEM\CurrentControlSet\Enum\FTDIBUS\') then begin reg.OpenKeyReadOnly('SYSTEM\CurrentControlSet\Enum\FTDIBUS\'); //StatusBar.SimpleText:='FTDI driver has been installed at least once.'; reg.GetKeyNames(keys); for i := 0 to keys.Count-1 do begin pieces.DelimitedText := keys[i]; reg2 := TRegistry.Create; reg2.RootKey := HKEY_LOCAL_MACHINE; reg2.OpenKeyReadOnly('SYSTEM\CurrentControlSet\Enum\FTDIBUS\'+keys[i]+'\0000\Device Parameters\'); //Form2.Memo1.Lines.Add(keys[i]+' - '+reg2.ReadString('PortName')); kConnected.Sort; if kConnected.Find(reg2.ReadString('PortName'),foundindex) then begin //Form2.Memo1.Lines.Add(pieces.Strings[2]+' = '+reg2.ReadString('PortName')); kAvailable.Add(kConnected[foundindex]+' : '+pieces.Strings[2]); //USBPort.AddItem(pieces.Strings[2]+' = '+reg2.ReadString('PortName')); end; reg2.Free; end; end; //else // StatusBar.SimpleText:='FTDI driver has never been installed.'; reg.Free; keys.Free; {$ENDIF Windows} {$IFDEF Unix} //kAvailable.Add('/dev/ttyUSB1'); //writeln('Finding linux USB devices;'); // A temp Memorystream is used to buffer the output MemStream := TMemoryStream.Create; BytesRead := 0; pieces := TStringList.Create; pieces.Delimiter := '='; OurProcess := TProcess.Create(nil); OurProcess.CommandLine := 'udevadm info --export-db'; // We cannot use poWaitOnExit here since we don't // know the size of the output. On Linux the size of the // output pipe is 2 kB; if the output data is more, we // need to read the data. This isn't possible since we are // waiting. So we get a deadlock here if we use poWaitOnExit. OurProcess.Options := [poUsePipes]; OurProcess.Execute; while OurProcess.Running do begin // make sure we have room MemStream.SetSize(BytesRead + READ_BYTES); // try reading it NumBytes := OurProcess.Output.Read((MemStream.Memory + BytesRead)^, READ_BYTES); if NumBytes > 0 then begin Inc(BytesRead, NumBytes); //Write('.') //Output progress to screen. end else begin // no data, wait 100 ms Sleep(100); end; end; // read last part repeat // make sure we have room MemStream.SetSize(BytesRead + READ_BYTES); // try reading it NumBytes := OurProcess.Output.Read((MemStream.Memory + BytesRead)^, READ_BYTES); if NumBytes > 0 then begin Inc(BytesRead, NumBytes); end; until NumBytes <= 0; if BytesRead > 0 then WriteLn; MemStream.SetSize(BytesRead); OutputLines := TStringList.Create; OutputLines.LoadFromStream(MemStream); LookForState:=0; USBDeviceSerial:=''; LinuxDeviceFile:=''; for NumBytes := 0 to OutputLines.Count - 1 do begin if ((AnsiStartsStr('P:',OutputLines[NumBytes])) and (AnsiContainsText(OutputLines[NumBytes],'tty/ttyUSB'))) then begin //writeln(OutputLines[NumBytes]);//debug LookForState:=1; end; if ((LookForState=1) and (AnsiStartsStr('E: DEVNAME=',OutputLines[NumBytes]))) then begin pieces.DelimitedText := OutputLines[NumBytes]; usbdevname:=pieces.Strings[2]; //writeln(usbdevname); LookForState:=2; end; if ((LookForState=2) and (AnsiStartsStr('E: ID_SERIAL_SHORT',OutputLines[NumBytes]))) then begin pieces.DelimitedText := OutputLines[NumBytes]; usbserial:=pieces.Strings[2]; kAvailable.Add(usbdevname+' : '+usbserial); //writeln(usbserial); LookForState:=0; end; end; //writeln('Done searching.');//debug OutputLines.Free; OurProcess.Free; MemStream.Free; {$ENDIF Unix} FindUSB:=kAvailable; end; end. �����������������������������������������������������������./locked.png����������������������������������������������������������������������������������������0000644�0001750�0001750�00000001656�14576573022�013127� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���0���0���`n��� pHYs��\F��\FCA���tIME %.b5ca��MIDATXYK+AmN90pWZ5QAEPQHMe`aaace)(b# b' F-1-ĀJA%+^4"Ų3|]�Lr}1ܞt:}/I띝mmm]]]0-//kv (ah/23X,N󨃃Ts�ӯ( ekkkSSS+pڶf&)߶766&{WVV7{<\.'z{{@T Ih}yyIuxxX~dR@ @F" 'b�677;A[[[(|BPեt<<<uUU%M_:<� [,655%I$BH$4M뺮zE}˲rl6MYeY74m& }驮---}W<j7 z<8!I BT* w'F˲^__띢 B8==}vv c gffH3�xEmj�B-..y42=l5!lii˾"$V,}(!/,kttT0 ˲VWW4ǭJ aa컰̙3 St1EE Bl#CCCC r&?k?_YAggg(I`^*'*�jkkUUx^MM  i/qe?ỻOBѱ�CDi"7ƛiV����IENDB`����������������������������������������������������������������������������������./tzdatabase/���������������������������������������������������������������������������������������0000755�0001750�0001750�00000000000�14561207743�013270� 5����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./tzdatabase/README���������������������������������������������������������������������������������0000644�0001750�0001750�00000004570�14156146016�014151� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������README for the tz distribution "Where do I set the hands of the clock?" -- Les Tremayne as The King "Oh that--you can set them any place you want." -- Frank Baxter as The Scientist (from the Bell System film "About Time") The Time Zone Database (called tz, tzdb or zoneinfo) contains code and data that represent the history of local time for many representative locations around the globe. It is updated periodically to reflect changes made by political bodies to time zone boundaries, UTC offsets, and daylight-saving rules. See <https://www.iana.org/time-zones/repository/tz-link.html> or the file tz-link.html for how to acquire the code and data. Once acquired, read the comments in the file 'Makefile' and make any changes needed to make things right for your system, especially if you are using some platform other than GNU/Linux. Then run the following commands, substituting your desired installation directory for "$HOME/tzdir": make TOPDIR=$HOME/tzdir install $HOME/tzdir/usr/bin/zdump -v America/Los_Angeles See the file tz-how-to.html for examples of how to read the data files. This database of historical local time information has several goals: * Provide a compendium of data about the history of civil time that is useful even if not 100% accurate. * Give an idea of the variety of local time rules that have existed in the past and thus may be expected in the future. * Test the generality of the local time rule description system. The information in the time zone data files is by no means authoritative; fixes and enhancements are welcome. Please see the file CONTRIBUTING for details. Thanks to these Time Zone Caballeros who've made major contributions to the time conversion package: Keith Bostic; Bob Devine; Paul Eggert; Robert Elz; Guy Harris; Mark Horton; John Mackin; and Bradley White. Thanks also to Michael Bloom, Art Neilson, Stephen Prince, John Sovereign, and Frank Wales for testing work, and to Gwillim Law for checking local mean time data. Thanks in particular to Arthur David Olson, the project's founder and first maintainer, to whom the time zone community owes the greatest debt of all. None of them are responsible for remaining errors. ----- This file is in the public domain, so clarified as of 2009-05-17 by Arthur David Olson. The other files in this distribution are either public domain or BSD licensed; see the file LICENSE for details. ����������������������������������������������������������������������������������������������������������������������������������������./tzdatabase/tz-how-to.html�������������������������������������������������������������������������0000644�0001750�0001750�00000056467�13502033252�016032� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>How to Read the tz Database

How to Read the tz Database Source Files

by Bill Seymour

This page uses the America/Chicago and Pacific/Honolulu zones as examples of how to infer times of day from the tz database source files. It might be helpful, but not absolutely necessary, for the reader to have already downloaded the latest release of the database and become familiar with the basic layout of the data files. The format is explained in the “man page” for the zic compiler, zic.8.txt, in the code subdirectory.

We’ll begin by talking about the rules for changing between standard and daylight saving time since we’ll need that information when we talk about the zones.

First, let’s consider the special daylight saving time rules for Chicago (from the northamerica file in the data subdirectory):

From the Source File
#Rule NAME    FROM TO   TYPE IN  ON      AT   SAVE LETTER
Rule  Chicago 1920 only  -   Jun 13      2:00 1:00 D
Rule  Chicago 1920 1921  -   Oct lastSun 2:00 0    S
Rule  Chicago 1921 only  -   Mar lastSun 2:00 1:00 D
Rule  Chicago 1922 1966  -   Apr lastSun 2:00 1:00 D
Rule  Chicago 1922 1954  -   Sep lastSun 2:00 0    S
Rule  Chicago 1955 1966  -   Oct lastSun 2:00 0    S
Reformatted a Bit
From To On At Action
1920 only June 13th 02:00 local go to daylight saving time
1920 1921 last Sunday in October return to standard time
1921 only in March go to daylight saving time
1922 1966 in April
1954 in September return to standard time
1955 1966 in October

We’ll basically just ignore the TYPE column. In the 2007j release, the most recent as of this writing, the TYPE column never contains anything but a hyphen, a kind of null value. (From the description in zic.8.txt, this appears to be a mechanism for removing years from a set in some localizable way. It’s used in the file, pacificnew, to determine whether a given year will have a US presidential election; but everything related to that use is commented out.)

The SAVE column contains the local (wall clock) offset from local standard time. This is usually either zero for standard time or one hour for daylight saving time; but there’s no reason, in principle, why it can’t take on other values.

The LETTER (sometimes called LETTER/S) column can contain a variable part of the usual abbreviation of the time zone’s name, or it can just be a hyphen if there’s no variable part. For example, the abbreviation used in the central time zone will be either “CST” or “CDT”. The variable part is ‘S’ or ‘D’; and, sure enough, that’s just what we find in the LETTER column in the Chicago rules. More about this when we talk about “Zone” lines.

One important thing to notice is that “Rule” lines want at once to be both transitions and steady states:

  • On the one hand, they represent transitions between standard and daylight saving time; and any number of Rule lines can be in effect during a given period (which will always be a non-empty set of contiguous calendar years).
  • On the other hand, the SAVE and LETTER columns contain state that exists between transitions. More about this when we talk about the US rules.

In the example above, the transition to daylight saving time happened on the 13th of June in 1920, and on the last Sunday in March in 1921; but the return to standard time happened on the last Sunday in October in both of those years. Similarly, the rule for changing to daylight saving time was the same from 1922 to 1966; but the rule for returning to standard time changed in 1955. Got it?

OK, now for the somewhat more interesting “US” rules:

From the Source File
#Rule NAME FROM TO   TYPE IN  ON        AT   SAVE LETTER/S
Rule  US   1918 1919  -   Mar lastSun  2:00  1:00 D
Rule  US   1918 1919  -   Oct lastSun  2:00  0    S
Rule  US   1942 only  -   Feb 9        2:00  1:00 W # War
Rule  US   1945 only  -   Aug 14      23:00u 1:00 P # Peace
Rule  US   1945 only  -   Sep 30       2:00  0    S
Rule  US   1967 2006  -   Oct lastSun  2:00  0    S
Rule  US   1967 1973  -   Apr lastSun  2:00  1:00 D
Rule  US   1974 only  -   Jan 6        2:00  1:00 D
Rule  US   1975 only  -   Feb 23       2:00  1:00 D
Rule  US   1976 1986  -   Apr lastSun  2:00  1:00 D
Rule  US   1987 2006  -   Apr Sun>=1   2:00  1:00 D
Rule  US   2007 max   -   Mar Sun>=8   2:00  1:00 D
Rule  US   2007 max   -   Nov Sun>=1   2:00  0    S
Reformatted a Bit
From To On At Action
1918 1919 last Sunday in March 02:00 local go to daylight saving time
in October return to standard time
1942 only February 9th go to “war time”
1945 only August 14th 23:00 UT rename “war time” to “peace
time;” clocks don’t change
September 30th 02:00 local return to standard time
1967 2006 last Sunday in October
1973 in April go to daylight saving time
1974 only January 6th
1975 only February 23rd
1976 1986 last Sunday in April
1987 2006 first Sunday
2007 present second Sunday in March
first Sunday in November return to standard time

There are two interesting things to note here.

First, the time that something happens (in the AT column) is not necessarily the local (wall clock) time. The time can be suffixed with ‘s’ (for “standard”) to mean local standard time, different from local (wall clock) time when observing daylight saving time; or it can be suffixed with ‘g’, ‘u’, or ‘z’, all three of which mean the standard time at the prime meridian. ‘g’ stands for “GMT”; ‘u’ stands for “UT” or “UTC” (whichever was official at the time); ‘z’ stands for the nautical time zone Z (a.k.a. “Zulu” which, in turn, stands for ‘Z’). The time can also be suffixed with ‘w’ meaning local (wall clock) time; but it usually isn’t because that’s the default.

Second, the day in the ON column, in addition to “lastSun” or a particular day of the month, can have the form, “Sun>=x” or “Sun<=x,” where x is a day of the month. For example, “Sun>=8” means “the first Sunday on or after the eighth of the month,” in other words, the second Sunday of the month. Furthermore, although there are no examples above, the weekday needn’t be “Sun” in either form, but can be the usual three-character English abbreviation for any day of the week.

And the US rules give us more examples of a couple of things already mentioned:

  • The rules for changing to and from daylight saving time are actually different sets of rules; and the two sets can change independently. Consider, for example, that the rule for the return to standard time stayed the same from 1967 to 2006; but the rule for the transition to daylight saving time changed several times in the same period. There can also be periods, 1946 to 1966 for example, when no rule from this group is in effect, and so either no transition happened in those years, or some other rule is in effect (perhaps a state or other more local rule).
  • The SAVE and LETTER columns contain steady state, not transitions. Consider, for example, the transition from “war time” to “peace time” that happened on August 14, 1945. The “1:00” in the SAVE column is not an instruction to advance the clock an hour. It means that clocks should be one hour ahead of standard time, which they already are because of the previous rule, so there should be no change.

OK, now let’s look at a Zone record:

From the Source File
#Zone       NAME      STDOFF   RULES FORMAT [UNTIL]
Zone  America/Chicago -5:50:36 -       LMT  1883 Nov 18 12:09:24
                      -6:00    US      C%sT 1920
                      -6:00    Chicago C%sT 1936 Mar  1  2:00
                      -5:00    -       EST  1936 Nov 15  2:00
                      -6:00    Chicago C%sT 1942
                      -6:00    US      C%sT 1946
                      -6:00    Chicago C%sT 1967
                      -6:00    US      C%sT
Columns Renamed
Standard Offset
from Prime Meridian
Daylight
Saving Time
Abbreviation(s) Ending at Local Time
Date Time
−5:50:36 not observed LMT 1883-11-18 12:09:24
−6:00:00 US rules CST or CDT 1920-01-01 00:00:00
Chicago rules 1936-03-01 02:00:00
−5:00:00 not observed EST 1936-11-15
−6:00:00 Chicago rules CST or CDT 1942-01-01 00:00:00
US rules CST, CWT or CPT 1946-01-01
Chicago rules CST or CDT 1967-01-01
US rules

There are a couple of interesting differences between Zones and Rules.

First, and somewhat trivially, whereas Rules are considered to contain one or more records, a Zone is considered to be a single record with zero or more continuation lines. Thus, the keyword, “Zone,” and the zone name are not repeated. The last line is the one without anything in the [UNTIL] column.

Second, and more fundamentally, each line of a Zone represents a steady state, not a transition between states. The state exists from the date and time in the previous line’s [UNTIL] column up to the date and time in the current line’s [UNTIL] column. In other words, the date and time in the [UNTIL] column is the instant that separates this state from the next. Where that would be ambiguous because we’re setting our clocks back, the [UNTIL] column specifies the first occurrence of the instant. The state specified by the last line, the one without anything in the [UNTIL] column, continues to the present.

The first line typically specifies the mean solar time observed before the introduction of standard time. Since there’s no line before that, it has no beginning. 8-) For some places near the International Date Line, the first two lines will show solar times differing by 24 hours; this corresponds to a movement of the Date Line. For example:

#Zone NAME          STDOFF   RULES FORMAT [UNTIL]
Zone America/Juneau 15:02:19 -     LMT    1867 Oct 18
                    -8:57:41 -     LMT    ...

When Alaska was purchased from Russia in 1867, the Date Line moved from the Alaska/Canada border to the Bering Strait; and the time in Alaska was then 24 hours earlier than it had been. <aside>(6 October in the Julian calendar, which Russia was still using then for religious reasons, was followed by a second instance of the same day with a different name, 18 October in the Gregorian calendar. Isn’t civil time wonderful? 8-))</aside>

The abbreviation, “LMT” stands for “local mean time”, which is an invention of the tz database and was probably never actually used during the period. Furthermore, the value is almost certainly wrong except in the archetypal place after which the zone is named. (The tz database usually doesn’t provide a separate Zone record for places where nothing significant happened after 1970.)

The RULES column tells us whether daylight saving time is being observed:

  • A hyphen, a kind of null value, means that we have not set our clocks ahead of standard time.
  • An amount of time (usually but not necessarily “1:00” meaning one hour) means that we have set our clocks ahead by that amount.
  • Some alphabetic string means that we might have set our clocks ahead; and we need to check the rule the name of which is the given alphabetic string.

An example of a specific amount of time is:

#Zone NAME            STDOFF RULES FORMAT [UNTIL]
Zone Pacific/Honolulu ...                 1933 Apr 30  2:00
                      -10:30 1:00  HDT    1933 May 21 12:00
                      ...

Hawaii tried daylight saving time for three weeks in 1933 and decided they didn’t like it. 8-) Note that the STDOFF column always contains the standard time offset, so the local (wall clock) time during this period was GMT − 10:30 + 1:00 = GMT − 9:30.

The FORMAT column specifies the usual abbreviation of the time zone name. It can have one of three forms:

  • a string of three or more characters that are either ASCII alphanumerics, “+”, or “-”, in which case that’s the abbreviation
  • a pair of strings separated by a slash (‘/’), in which case the first string is the abbreviation for the standard time name and the second string is the abbreviation for the daylight saving time name
  • a string containing “%s,” in which case the “%s” will be replaced by the text in the appropriate Rule’s LETTER column

The last two make sense only if there’s a named rule in effect.

An example of a slash is:

#Zone NAME          STDOFF RULES FORMAT  [UNTIL]
Zone  Europe/London ...                  1996
                    0:00   EU    GMT/BST

The current time in the UK is called either Greenwich mean time or British summer time.

One wrinkle, not fully explained in zic.8.txt, is what happens when switching to a named rule. To what values should the SAVE and LETTER data be initialized?

  • If at least one transition has happened, use the SAVE and LETTER data from the most recent.
  • If switching to a named rule before any transition has happened, assume standard time (SAVE zero), and use the LETTER data from the earliest transition with a SAVE of zero.

And three last things about the FORMAT column:

  • The tz database gives abbreviations for time zones in popular usage, which is not necessarily “correct” by law. For example, the last line in Zone Pacific/Honolulu (shown below) gives “HST” for “Hawaii standard time” even though the legal name for that time zone is “Hawaii-Aleutian standard time.” This author has read that there are also some places in Australia where popular time zone names differ from the legal ones.
  • No attempt is made to localize the abbreviations. They are intended to be the values returned through the "%Z" format specifier to C’s strftime function in the “C” locale.
  • If there is no generally-accepted abbreviation for a time zone, a numeric offset is used instead, e.g., +07 for 7 hours ahead of Greenwich. By convention, -00 is used in a zone while uninhabited, where the offset is zero but in some sense the true offset is undefined.

As a final example, here’s the complete history for Hawaii:

Relevant Excerpts from the US Rules
#Rule NAME FROM TO   TYPE IN  ON      AT     SAVE LETTER/S
Rule  US   1918 1919 -    Oct lastSun  2:00  0    S
Rule  US   1942 only -    Feb  9       2:00  1:00 W # War
Rule  US   1945 only -    Aug 14      23:00u 1:00 P # Peace
Rule  US   1945 only -    Sep lastSun  2:00  0    S
The Zone Record
#Zone NAME            STDOFF    RULES FORMAT [UNTIL]
Zone Pacific/Honolulu -10:31:26 -     LMT    1896 Jan 13 12:00
                      -10:30    -     HST    1933 Apr 30  2:00
                      -10:30    1:00  HDT    1933 May 21  2:00
                      -10:30    US    H%sT   1947 Jun  8  2:00
                      -10:00    -     HST
What We Infer
Wall-Clock
Offset from
Prime Meridian
Adjust
Clocks
Time Zone Ending at Local Time
Abbrv. Name Date Time
−10:31:26 LMT local mean time 1896-01-13 12:00
−10:30 +0:01:26 HST Hawaii standard time 1933-04-30 02:00
−9:30 +1:00 HDT Hawaii daylight time 1933-05-21 12:00
−10:30¹ −1:00¹ HST¹ Hawaii standard time 1942-02-09 02:00
−9:30 +1:00 HWT Hawaii war time 1945-08-14 13:30²
0 HPT Hawaii peace time 1945-09-30 02:00
−10:30 −1:00 HST Hawaii standard time 1947-06-08
−10:00³ +0:30³
¹Switching to US rules…most recent transition (in 1919) was to standard time
²23:00 UT + (−9:30) = 13:30 local
³Since 1947–06–08T12:30Z, the civil time in Hawaii has been UT/UTC − 10:00 year-round.

There will be a short quiz later. 8-)


This web page is in the public domain, so clarified as of 2015-10-20 by Bill Seymour.
All suggestions and corrections will be welcome; all flames will be amusing. Mail to was at pobox dot com.
./tzdatabase/tzdata.zi0000644000175000017500000033170713536215110015122 0ustar anthonyanthony# version 2019c # This zic input file is in the public domain. R d 1916 o - Jun 14 23s 1 S R d 1916 1919 - O Su>=1 23s 0 - R d 1917 o - Mar 24 23s 1 S R d 1918 o - Mar 9 23s 1 S R d 1919 o - Mar 1 23s 1 S R d 1920 o - F 14 23s 1 S R d 1920 o - O 23 23s 0 - R d 1921 o - Mar 14 23s 1 S R d 1921 o - Jun 21 23s 0 - R d 1939 o - S 11 23s 1 S R d 1939 o - N 19 1 0 - R d 1944 1945 - Ap M>=1 2 1 S R d 1944 o - O 8 2 0 - R d 1945 o - S 16 1 0 - R d 1971 o - Ap 25 23s 1 S R d 1971 o - S 26 23s 0 - R d 1977 o - May 6 0 1 S R d 1977 o - O 21 0 0 - R d 1978 o - Mar 24 1 1 S R d 1978 o - S 22 3 0 - R d 1980 o - Ap 25 0 1 S R d 1980 o - O 31 2 0 - Z Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:1 0:9:21 - PMT 1911 Mar 11 0 d WE%sT 1940 F 25 2 1 d CE%sT 1946 O 7 0 - WET 1956 Ja 29 1 - CET 1963 Ap 14 0 d WE%sT 1977 O 21 1 d CE%sT 1979 O 26 0 d WE%sT 1981 May 1 - CET Z Atlantic/Cape_Verde -1:34:4 - LMT 1912 Ja 1 2u -2 - -02 1942 S -2 1 -01 1945 O 15 -2 - -02 1975 N 25 2 -1 - -01 Z Africa/Ndjamena 1:0:12 - LMT 1912 1 - WAT 1979 O 14 1 1 WAST 1980 Mar 8 1 - WAT Z Africa/Abidjan -0:16:8 - LMT 1912 0 - GMT L Africa/Abidjan Africa/Bamako L Africa/Abidjan Africa/Banjul L Africa/Abidjan Africa/Conakry L Africa/Abidjan Africa/Dakar L Africa/Abidjan Africa/Freetown L Africa/Abidjan Africa/Lome L Africa/Abidjan Africa/Nouakchott L Africa/Abidjan Africa/Ouagadougou L Africa/Abidjan Atlantic/St_Helena R K 1940 o - Jul 15 0 1 S R K 1940 o - O 1 0 0 - R K 1941 o - Ap 15 0 1 S R K 1941 o - S 16 0 0 - R K 1942 1944 - Ap 1 0 1 S R K 1942 o - O 27 0 0 - R K 1943 1945 - N 1 0 0 - R K 1945 o - Ap 16 0 1 S R K 1957 o - May 10 0 1 S R K 1957 1958 - O 1 0 0 - R K 1958 o - May 1 0 1 S R K 1959 1981 - May 1 1 1 S R K 1959 1965 - S 30 3 0 - R K 1966 1994 - O 1 3 0 - R K 1982 o - Jul 25 1 1 S R K 1983 o - Jul 12 1 1 S R K 1984 1988 - May 1 1 1 S R K 1989 o - May 6 1 1 S R K 1990 1994 - May 1 1 1 S R K 1995 2010 - Ap lastF 0s 1 S R K 1995 2005 - S lastTh 24 0 - R K 2006 o - S 21 24 0 - R K 2007 o - S Th>=1 24 0 - R K 2008 o - Au lastTh 24 0 - R K 2009 o - Au 20 24 0 - R K 2010 o - Au 10 24 0 - R K 2010 o - S 9 24 1 S R K 2010 o - S lastTh 24 0 - R K 2014 o - May 15 24 1 S R K 2014 o - Jun 26 24 0 - R K 2014 o - Jul 31 24 1 S R K 2014 o - S lastTh 24 0 - Z Africa/Cairo 2:5:9 - LMT 1900 O 2 K EE%sT R GH 1920 1942 - S 1 0 0:20 - R GH 1920 1942 - D 31 0 0 - Z Africa/Accra -0:0:52 - LMT 1918 0 GH GMT/+0020 Z Africa/Bissau -1:2:20 - LMT 1912 Ja 1 1u -1 - -01 1975 0 - GMT Z Africa/Nairobi 2:27:16 - LMT 1928 Jul 3 - EAT 1930 2:30 - +0230 1940 2:45 - +0245 1960 3 - EAT L Africa/Nairobi Africa/Addis_Ababa L Africa/Nairobi Africa/Asmara L Africa/Nairobi Africa/Dar_es_Salaam L Africa/Nairobi Africa/Djibouti L Africa/Nairobi Africa/Kampala L Africa/Nairobi Africa/Mogadishu L Africa/Nairobi Indian/Antananarivo L Africa/Nairobi Indian/Comoro L Africa/Nairobi Indian/Mayotte Z Africa/Monrovia -0:43:8 - LMT 1882 -0:43:8 - MMT 1919 Mar -0:44:30 - MMT 1972 Ja 7 0 - GMT R L 1951 o - O 14 2 1 S R L 1952 o - Ja 1 0 0 - R L 1953 o - O 9 2 1 S R L 1954 o - Ja 1 0 0 - R L 1955 o - S 30 0 1 S R L 1956 o - Ja 1 0 0 - R L 1982 1984 - Ap 1 0 1 S R L 1982 1985 - O 1 0 0 - R L 1985 o - Ap 6 0 1 S R L 1986 o - Ap 4 0 1 S R L 1986 o - O 3 0 0 - R L 1987 1989 - Ap 1 0 1 S R L 1987 1989 - O 1 0 0 - R L 1997 o - Ap 4 0 1 S R L 1997 o - O 4 0 0 - R L 2013 o - Mar lastF 1 1 S R L 2013 o - O lastF 2 0 - Z Africa/Tripoli 0:52:44 - LMT 1920 1 L CE%sT 1959 2 - EET 1982 1 L CE%sT 1990 May 4 2 - EET 1996 S 30 1 L CE%sT 1997 O 4 2 - EET 2012 N 10 2 1 L CE%sT 2013 O 25 2 2 - EET R MU 1982 o - O 10 0 1 - R MU 1983 o - Mar 21 0 0 - R MU 2008 o - O lastSu 2 1 - R MU 2009 o - Mar lastSu 2 0 - Z Indian/Mauritius 3:50 - LMT 1907 4 MU +04/+05 R M 1939 o - S 12 0 1 - R M 1939 o - N 19 0 0 - R M 1940 o - F 25 0 1 - R M 1945 o - N 18 0 0 - R M 1950 o - Jun 11 0 1 - R M 1950 o - O 29 0 0 - R M 1967 o - Jun 3 12 1 - R M 1967 o - O 1 0 0 - R M 1974 o - Jun 24 0 1 - R M 1974 o - S 1 0 0 - R M 1976 1977 - May 1 0 1 - R M 1976 o - Au 1 0 0 - R M 1977 o - S 28 0 0 - R M 1978 o - Jun 1 0 1 - R M 1978 o - Au 4 0 0 - R M 2008 o - Jun 1 0 1 - R M 2008 o - S 1 0 0 - R M 2009 o - Jun 1 0 1 - R M 2009 o - Au 21 0 0 - R M 2010 o - May 2 0 1 - R M 2010 o - Au 8 0 0 - R M 2011 o - Ap 3 0 1 - R M 2011 o - Jul 31 0 0 - R M 2012 2013 - Ap lastSu 2 1 - R M 2012 o - Jul 20 3 0 - R M 2012 o - Au 20 2 1 - R M 2012 o - S 30 3 0 - R M 2013 o - Jul 7 3 0 - R M 2013 o - Au 10 2 1 - R M 2013 2018 - O lastSu 3 0 - R M 2014 2018 - Mar lastSu 2 1 - R M 2014 o - Jun 28 3 0 - R M 2014 o - Au 2 2 1 - R M 2015 o - Jun 14 3 0 - R M 2015 o - Jul 19 2 1 - R M 2016 o - Jun 5 3 0 - R M 2016 o - Jul 10 2 1 - R M 2017 o - May 21 3 0 - R M 2017 o - Jul 2 2 1 - R M 2018 o - May 13 3 0 - R M 2018 o - Jun 17 2 1 - R M 2019 o - May 5 3 -1 - R M 2019 o - Jun 9 2 0 - R M 2020 o - Ap 19 3 -1 - R M 2020 o - May 24 2 0 - R M 2021 o - Ap 11 3 -1 - R M 2021 o - May 16 2 0 - R M 2022 o - Mar 27 3 -1 - R M 2022 o - May 8 2 0 - R M 2023 o - Mar 19 3 -1 - R M 2023 o - Ap 23 2 0 - R M 2024 o - Mar 10 3 -1 - R M 2024 o - Ap 14 2 0 - R M 2025 o - F 23 3 -1 - R M 2025 o - Ap 6 2 0 - R M 2026 o - F 15 3 -1 - R M 2026 o - Mar 22 2 0 - R M 2027 o - F 7 3 -1 - R M 2027 o - Mar 14 2 0 - R M 2028 o - Ja 23 3 -1 - R M 2028 o - F 27 2 0 - R M 2029 o - Ja 14 3 -1 - R M 2029 o - F 18 2 0 - R M 2029 o - D 30 3 -1 - R M 2030 o - F 10 2 0 - R M 2030 o - D 22 3 -1 - R M 2031 o - Ja 26 2 0 - R M 2031 o - D 14 3 -1 - R M 2032 o - Ja 18 2 0 - R M 2032 o - N 28 3 -1 - R M 2033 o - Ja 9 2 0 - R M 2033 o - N 20 3 -1 - R M 2033 o - D 25 2 0 - R M 2034 o - N 5 3 -1 - R M 2034 o - D 17 2 0 - R M 2035 o - O 28 3 -1 - R M 2035 o - D 2 2 0 - R M 2036 o - O 19 3 -1 - R M 2036 o - N 23 2 0 - R M 2037 o - O 4 3 -1 - R M 2037 o - N 15 2 0 - R M 2038 o - S 26 3 -1 - R M 2038 o - O 31 2 0 - R M 2039 o - S 18 3 -1 - R M 2039 o - O 23 2 0 - R M 2040 o - S 2 3 -1 - R M 2040 o - O 14 2 0 - R M 2041 o - Au 25 3 -1 - R M 2041 o - S 29 2 0 - R M 2042 o - Au 10 3 -1 - R M 2042 o - S 21 2 0 - R M 2043 o - Au 2 3 -1 - R M 2043 o - S 6 2 0 - R M 2044 o - Jul 24 3 -1 - R M 2044 o - Au 28 2 0 - R M 2045 o - Jul 9 3 -1 - R M 2045 o - Au 20 2 0 - R M 2046 o - Jul 1 3 -1 - R M 2046 o - Au 5 2 0 - R M 2047 o - Jun 23 3 -1 - R M 2047 o - Jul 28 2 0 - R M 2048 o - Jun 7 3 -1 - R M 2048 o - Jul 19 2 0 - R M 2049 o - May 30 3 -1 - R M 2049 o - Jul 4 2 0 - R M 2050 o - May 15 3 -1 - R M 2050 o - Jun 26 2 0 - R M 2051 o - May 7 3 -1 - R M 2051 o - Jun 11 2 0 - R M 2052 o - Ap 28 3 -1 - R M 2052 o - Jun 2 2 0 - R M 2053 o - Ap 13 3 -1 - R M 2053 o - May 25 2 0 - R M 2054 o - Ap 5 3 -1 - R M 2054 o - May 10 2 0 - R M 2055 o - Mar 28 3 -1 - R M 2055 o - May 2 2 0 - R M 2056 o - Mar 12 3 -1 - R M 2056 o - Ap 23 2 0 - R M 2057 o - Mar 4 3 -1 - R M 2057 o - Ap 8 2 0 - R M 2058 o - F 17 3 -1 - R M 2058 o - Mar 31 2 0 - R M 2059 o - F 9 3 -1 - R M 2059 o - Mar 16 2 0 - R M 2060 o - F 1 3 -1 - R M 2060 o - Mar 7 2 0 - R M 2061 o - Ja 16 3 -1 - R M 2061 o - F 27 2 0 - R M 2062 o - Ja 8 3 -1 - R M 2062 o - F 12 2 0 - R M 2062 o - D 31 3 -1 - R M 2063 o - F 4 2 0 - R M 2063 o - D 16 3 -1 - R M 2064 o - Ja 20 2 0 - R M 2064 o - D 7 3 -1 - R M 2065 o - Ja 11 2 0 - R M 2065 o - N 22 3 -1 - R M 2066 o - Ja 3 2 0 - R M 2066 o - N 14 3 -1 - R M 2066 o - D 19 2 0 - R M 2067 o - N 6 3 -1 - R M 2067 o - D 11 2 0 - R M 2068 o - O 21 3 -1 - R M 2068 o - D 2 2 0 - R M 2069 o - O 13 3 -1 - R M 2069 o - N 17 2 0 - R M 2070 o - O 5 3 -1 - R M 2070 o - N 9 2 0 - R M 2071 o - S 20 3 -1 - R M 2071 o - O 25 2 0 - R M 2072 o - S 11 3 -1 - R M 2072 o - O 16 2 0 - R M 2073 o - Au 27 3 -1 - R M 2073 o - O 8 2 0 - R M 2074 o - Au 19 3 -1 - R M 2074 o - S 23 2 0 - R M 2075 o - Au 11 3 -1 - R M 2075 o - S 15 2 0 - R M 2076 o - Jul 26 3 -1 - R M 2076 o - S 6 2 0 - R M 2077 o - Jul 18 3 -1 - R M 2077 o - Au 22 2 0 - R M 2078 o - Jul 10 3 -1 - R M 2078 o - Au 14 2 0 - R M 2079 o - Jun 25 3 -1 - R M 2079 o - Jul 30 2 0 - R M 2080 o - Jun 16 3 -1 - R M 2080 o - Jul 21 2 0 - R M 2081 o - Jun 1 3 -1 - R M 2081 o - Jul 13 2 0 - R M 2082 o - May 24 3 -1 - R M 2082 o - Jun 28 2 0 - R M 2083 o - May 16 3 -1 - R M 2083 o - Jun 20 2 0 - R M 2084 o - Ap 30 3 -1 - R M 2084 o - Jun 11 2 0 - R M 2085 o - Ap 22 3 -1 - R M 2085 o - May 27 2 0 - R M 2086 o - Ap 14 3 -1 - R M 2086 o - May 19 2 0 - R M 2087 o - Mar 30 3 -1 - R M 2087 o - May 4 2 0 - Z Africa/Casablanca -0:30:20 - LMT 1913 O 26 0 M +00/+01 1984 Mar 16 1 - +01 1986 0 M +00/+01 2018 O 28 3 1 M +01/+00 Z Africa/El_Aaiun -0:52:48 - LMT 1934 -1 - -01 1976 Ap 14 0 M +00/+01 2018 O 28 3 1 M +01/+00 Z Africa/Maputo 2:10:20 - LMT 1903 Mar 2 - CAT L Africa/Maputo Africa/Blantyre L Africa/Maputo Africa/Bujumbura L Africa/Maputo Africa/Gaborone L Africa/Maputo Africa/Harare L Africa/Maputo Africa/Kigali L Africa/Maputo Africa/Lubumbashi L Africa/Maputo Africa/Lusaka R NA 1994 o - Mar 21 0 -1 WAT R NA 1994 2017 - S Su>=1 2 0 CAT R NA 1995 2017 - Ap Su>=1 2 -1 WAT Z Africa/Windhoek 1:8:24 - LMT 1892 F 8 1:30 - +0130 1903 Mar 2 - SAST 1942 S 20 2 2 1 SAST 1943 Mar 21 2 2 - SAST 1990 Mar 21 2 NA %s Z Africa/Lagos 0:13:36 - LMT 1919 S 1 - WAT L Africa/Lagos Africa/Bangui L Africa/Lagos Africa/Brazzaville L Africa/Lagos Africa/Douala L Africa/Lagos Africa/Kinshasa L Africa/Lagos Africa/Libreville L Africa/Lagos Africa/Luanda L Africa/Lagos Africa/Malabo L Africa/Lagos Africa/Niamey L Africa/Lagos Africa/Porto-Novo Z Indian/Reunion 3:41:52 - LMT 1911 Jun 4 - +04 Z Africa/Sao_Tome 0:26:56 - LMT 1884 -0:36:45 - LMT 1912 Ja 1 0u 0 - GMT 2018 Ja 1 1 1 - WAT 2019 Ja 1 2 0 - GMT Z Indian/Mahe 3:41:48 - LMT 1906 Jun 4 - +04 R SA 1942 1943 - S Su>=15 2 1 - R SA 1943 1944 - Mar Su>=15 2 0 - Z Africa/Johannesburg 1:52 - LMT 1892 F 8 1:30 - SAST 1903 Mar 2 SA SAST L Africa/Johannesburg Africa/Maseru L Africa/Johannesburg Africa/Mbabane R SD 1970 o - May 1 0 1 S R SD 1970 1985 - O 15 0 0 - R SD 1971 o - Ap 30 0 1 S R SD 1972 1985 - Ap lastSu 0 1 S Z Africa/Khartoum 2:10:8 - LMT 1931 2 SD CA%sT 2000 Ja 15 12 3 - EAT 2017 N 2 - CAT Z Africa/Juba 2:6:28 - LMT 1931 2 SD CA%sT 2000 Ja 15 12 3 - EAT R n 1939 o - Ap 15 23s 1 S R n 1939 o - N 18 23s 0 - R n 1940 o - F 25 23s 1 S R n 1941 o - O 6 0 0 - R n 1942 o - Mar 9 0 1 S R n 1942 o - N 2 3 0 - R n 1943 o - Mar 29 2 1 S R n 1943 o - Ap 17 2 0 - R n 1943 o - Ap 25 2 1 S R n 1943 o - O 4 2 0 - R n 1944 1945 - Ap M>=1 2 1 S R n 1944 o - O 8 0 0 - R n 1945 o - S 16 0 0 - R n 1977 o - Ap 30 0s 1 S R n 1977 o - S 24 0s 0 - R n 1978 o - May 1 0s 1 S R n 1978 o - O 1 0s 0 - R n 1988 o - Jun 1 0s 1 S R n 1988 1990 - S lastSu 0s 0 - R n 1989 o - Mar 26 0s 1 S R n 1990 o - May 1 0s 1 S R n 2005 o - May 1 0s 1 S R n 2005 o - S 30 1s 0 - R n 2006 2008 - Mar lastSu 2s 1 S R n 2006 2008 - O lastSu 2s 0 - Z Africa/Tunis 0:40:44 - LMT 1881 May 12 0:9:21 - PMT 1911 Mar 11 1 n CE%sT Z Antarctica/Casey 0 - -00 1969 8 - +08 2009 O 18 2 11 - +11 2010 Mar 5 2 8 - +08 2011 O 28 2 11 - +11 2012 F 21 17u 8 - +08 2016 O 22 11 - +11 2018 Mar 11 4 8 - +08 Z Antarctica/Davis 0 - -00 1957 Ja 13 7 - +07 1964 N 0 - -00 1969 F 7 - +07 2009 O 18 2 5 - +05 2010 Mar 10 20u 7 - +07 2011 O 28 2 5 - +05 2012 F 21 20u 7 - +07 Z Antarctica/Mawson 0 - -00 1954 F 13 6 - +06 2009 O 18 2 5 - +05 Z Indian/Kerguelen 0 - -00 1950 5 - +05 Z Antarctica/DumontDUrville 0 - -00 1947 10 - +10 1952 Ja 14 0 - -00 1956 N 10 - +10 Z Antarctica/Syowa 0 - -00 1957 Ja 29 3 - +03 R Tr 2005 ma - Mar lastSu 1u 2 +02 R Tr 2004 ma - O lastSu 1u 0 +00 Z Antarctica/Troll 0 - -00 2005 F 12 0 Tr %s Z Antarctica/Vostok 0 - -00 1957 D 16 6 - +06 Z Antarctica/Rothera 0 - -00 1976 D -3 - -03 Z Asia/Kabul 4:36:48 - LMT 1890 4 - +04 1945 4:30 - +0430 R AM 2011 o - Mar lastSu 2s 1 - R AM 2011 o - O lastSu 2s 0 - Z Asia/Yerevan 2:58 - LMT 1924 May 2 3 - +03 1957 Mar 4 R +04/+05 1991 Mar 31 2s 3 R +03/+04 1995 S 24 2s 4 - +04 1997 4 R +04/+05 2011 4 AM +04/+05 R AZ 1997 2015 - Mar lastSu 4 1 - R AZ 1997 2015 - O lastSu 5 0 - Z Asia/Baku 3:19:24 - LMT 1924 May 2 3 - +03 1957 Mar 4 R +04/+05 1991 Mar 31 2s 3 R +03/+04 1992 S lastSu 2s 4 - +04 1996 4 E +04/+05 1997 4 AZ +04/+05 R BD 2009 o - Jun 19 23 1 - R BD 2009 o - D 31 24 0 - Z Asia/Dhaka 6:1:40 - LMT 1890 5:53:20 - HMT 1941 O 6:30 - +0630 1942 May 15 5:30 - +0530 1942 S 6:30 - +0630 1951 S 30 6 - +06 2009 6 BD +06/+07 Z Asia/Thimphu 5:58:36 - LMT 1947 Au 15 5:30 - +0530 1987 O 6 - +06 Z Indian/Chagos 4:49:40 - LMT 1907 5 - +05 1996 6 - +06 Z Asia/Brunei 7:39:40 - LMT 1926 Mar 7:30 - +0730 1933 8 - +08 Z Asia/Yangon 6:24:47 - LMT 1880 6:24:47 - RMT 1920 6:30 - +0630 1942 May 9 - +09 1945 May 3 6:30 - +0630 R Sh 1940 o - Jun 1 0 1 D R Sh 1940 o - O 12 24 0 S R Sh 1941 o - Mar 15 0 1 D R Sh 1941 o - N 1 24 0 S R Sh 1942 o - Ja 31 0 1 D R Sh 1945 o - S 1 24 0 S R Sh 1946 o - May 15 0 1 D R Sh 1946 o - S 30 24 0 S R Sh 1947 o - Ap 15 0 1 D R Sh 1947 o - O 31 24 0 S R Sh 1948 1949 - May 1 0 1 D R Sh 1948 1949 - S 30 24 0 S R CN 1986 o - May 4 2 1 D R CN 1986 1991 - S Su>=11 2 0 S R CN 1987 1991 - Ap Su>=11 2 1 D Z Asia/Shanghai 8:5:43 - LMT 1901 8 Sh C%sT 1949 May 28 8 CN C%sT Z Asia/Urumqi 5:50:20 - LMT 1928 6 - +06 R HK 1946 o - Ap 21 0 1 S R HK 1946 o - D 1 3:30s 0 - R HK 1947 o - Ap 13 3:30s 1 S R HK 1947 o - N 30 3:30s 0 - R HK 1948 o - May 2 3:30s 1 S R HK 1948 1952 - O Su>=28 3:30s 0 - R HK 1949 1953 - Ap Su>=1 3:30 1 S R HK 1953 1964 - O Su>=31 3:30 0 - R HK 1954 1964 - Mar Su>=18 3:30 1 S R HK 1965 1976 - Ap Su>=16 3:30 1 S R HK 1965 1976 - O Su>=16 3:30 0 - R HK 1973 o - D 30 3:30 1 S R HK 1979 o - May 13 3:30 1 S R HK 1979 o - O 21 3:30 0 - Z Asia/Hong_Kong 7:36:42 - LMT 1904 O 30 0:36:42 8 - HKT 1941 Jun 15 3 8 1 HKST 1941 O 1 4 8 0:30 HKWT 1941 D 25 9 - JST 1945 N 18 2 8 HK HK%sT R f 1946 o - May 15 0 1 D R f 1946 o - O 1 0 0 S R f 1947 o - Ap 15 0 1 D R f 1947 o - N 1 0 0 S R f 1948 1951 - May 1 0 1 D R f 1948 1951 - O 1 0 0 S R f 1952 o - Mar 1 0 1 D R f 1952 1954 - N 1 0 0 S R f 1953 1959 - Ap 1 0 1 D R f 1955 1961 - O 1 0 0 S R f 1960 1961 - Jun 1 0 1 D R f 1974 1975 - Ap 1 0 1 D R f 1974 1975 - O 1 0 0 S R f 1979 o - Jul 1 0 1 D R f 1979 o - O 1 0 0 S Z Asia/Taipei 8:6 - LMT 1896 8 - CST 1937 O 9 - JST 1945 S 21 1 8 f C%sT R _ 1942 1943 - Ap 30 23 1 - R _ 1942 o - N 17 23 0 - R _ 1943 o - S 30 23 0 S R _ 1946 o - Ap 30 23s 1 D R _ 1946 o - S 30 23s 0 S R _ 1947 o - Ap 19 23s 1 D R _ 1947 o - N 30 23s 0 S R _ 1948 o - May 2 23s 1 D R _ 1948 o - O 31 23s 0 S R _ 1949 1950 - Ap Sa>=1 23s 1 D R _ 1949 1950 - O lastSa 23s 0 S R _ 1951 o - Mar 31 23s 1 D R _ 1951 o - O 28 23s 0 S R _ 1952 1953 - Ap Sa>=1 23s 1 D R _ 1952 o - N 1 23s 0 S R _ 1953 1954 - O lastSa 23s 0 S R _ 1954 1956 - Mar Sa>=17 23s 1 D R _ 1955 o - N 5 23s 0 S R _ 1956 1964 - N Su>=1 3:30 0 S R _ 1957 1964 - Mar Su>=18 3:30 1 D R _ 1965 1973 - Ap Su>=16 3:30 1 D R _ 1965 1966 - O Su>=16 2:30 0 S R _ 1967 1976 - O Su>=16 3:30 0 S R _ 1973 o - D 30 3:30 1 D R _ 1975 1976 - Ap Su>=16 3:30 1 D R _ 1979 o - May 13 3:30 1 D R _ 1979 o - O Su>=16 3:30 0 S Z Asia/Macau 7:34:10 - LMT 1904 O 30 8 - CST 1941 D 21 23 9 _ +09/+10 1945 S 30 24 8 _ C%sT R CY 1975 o - Ap 13 0 1 S R CY 1975 o - O 12 0 0 - R CY 1976 o - May 15 0 1 S R CY 1976 o - O 11 0 0 - R CY 1977 1980 - Ap Su>=1 0 1 S R CY 1977 o - S 25 0 0 - R CY 1978 o - O 2 0 0 - R CY 1979 1997 - S lastSu 0 0 - R CY 1981 1998 - Mar lastSu 0 1 S Z Asia/Nicosia 2:13:28 - LMT 1921 N 14 2 CY EE%sT 1998 S 2 E EE%sT Z Asia/Famagusta 2:15:48 - LMT 1921 N 14 2 CY EE%sT 1998 S 2 E EE%sT 2016 S 8 3 - +03 2017 O 29 1u 2 E EE%sT L Asia/Nicosia Europe/Nicosia Z Asia/Tbilisi 2:59:11 - LMT 1880 2:59:11 - TBMT 1924 May 2 3 - +03 1957 Mar 4 R +04/+05 1991 Mar 31 2s 3 R +03/+04 1992 3 e +03/+04 1994 S lastSu 4 e +04/+05 1996 O lastSu 4 1 +05 1997 Mar lastSu 4 e +04/+05 2004 Jun 27 3 R +03/+04 2005 Mar lastSu 2 4 - +04 Z Asia/Dili 8:22:20 - LMT 1912 8 - +08 1942 F 21 23 9 - +09 1976 May 3 8 - +08 2000 S 17 9 - +09 Z Asia/Kolkata 5:53:28 - LMT 1854 Jun 28 5:53:20 - HMT 1870 5:21:10 - MMT 1906 5:30 - IST 1941 O 5:30 1 +0630 1942 May 15 5:30 - IST 1942 S 5:30 1 +0630 1945 O 15 5:30 - IST Z Asia/Jakarta 7:7:12 - LMT 1867 Au 10 7:7:12 - BMT 1923 D 31 23:47:12 7:20 - +0720 1932 N 7:30 - +0730 1942 Mar 23 9 - +09 1945 S 23 7:30 - +0730 1948 May 8 - +08 1950 May 7:30 - +0730 1964 7 - WIB Z Asia/Pontianak 7:17:20 - LMT 1908 May 7:17:20 - PMT 1932 N 7:30 - +0730 1942 Ja 29 9 - +09 1945 S 23 7:30 - +0730 1948 May 8 - +08 1950 May 7:30 - +0730 1964 8 - WITA 1988 7 - WIB Z Asia/Makassar 7:57:36 - LMT 1920 7:57:36 - MMT 1932 N 8 - +08 1942 F 9 9 - +09 1945 S 23 8 - WITA Z Asia/Jayapura 9:22:48 - LMT 1932 N 9 - +09 1944 S 9:30 - +0930 1964 9 - WIT R i 1978 1980 - Mar 20 24 1 - R i 1978 o - O 20 24 0 - R i 1979 o - S 18 24 0 - R i 1980 o - S 22 24 0 - R i 1991 o - May 2 24 1 - R i 1992 1995 - Mar 21 24 1 - R i 1991 1995 - S 21 24 0 - R i 1996 o - Mar 20 24 1 - R i 1996 o - S 20 24 0 - R i 1997 1999 - Mar 21 24 1 - R i 1997 1999 - S 21 24 0 - R i 2000 o - Mar 20 24 1 - R i 2000 o - S 20 24 0 - R i 2001 2003 - Mar 21 24 1 - R i 2001 2003 - S 21 24 0 - R i 2004 o - Mar 20 24 1 - R i 2004 o - S 20 24 0 - R i 2005 o - Mar 21 24 1 - R i 2005 o - S 21 24 0 - R i 2008 o - Mar 20 24 1 - R i 2008 o - S 20 24 0 - R i 2009 2011 - Mar 21 24 1 - R i 2009 2011 - S 21 24 0 - R i 2012 o - Mar 20 24 1 - R i 2012 o - S 20 24 0 - R i 2013 2015 - Mar 21 24 1 - R i 2013 2015 - S 21 24 0 - R i 2016 o - Mar 20 24 1 - R i 2016 o - S 20 24 0 - R i 2017 2019 - Mar 21 24 1 - R i 2017 2019 - S 21 24 0 - R i 2020 o - Mar 20 24 1 - R i 2020 o - S 20 24 0 - R i 2021 2023 - Mar 21 24 1 - R i 2021 2023 - S 21 24 0 - R i 2024 o - Mar 20 24 1 - R i 2024 o - S 20 24 0 - R i 2025 2027 - Mar 21 24 1 - R i 2025 2027 - S 21 24 0 - R i 2028 2029 - Mar 20 24 1 - R i 2028 2029 - S 20 24 0 - R i 2030 2031 - Mar 21 24 1 - R i 2030 2031 - S 21 24 0 - R i 2032 2033 - Mar 20 24 1 - R i 2032 2033 - S 20 24 0 - R i 2034 2035 - Mar 21 24 1 - R i 2034 2035 - S 21 24 0 - R i 2036 2037 - Mar 20 24 1 - R i 2036 2037 - S 20 24 0 - R i 2038 2039 - Mar 21 24 1 - R i 2038 2039 - S 21 24 0 - R i 2040 2041 - Mar 20 24 1 - R i 2040 2041 - S 20 24 0 - R i 2042 2043 - Mar 21 24 1 - R i 2042 2043 - S 21 24 0 - R i 2044 2045 - Mar 20 24 1 - R i 2044 2045 - S 20 24 0 - R i 2046 2047 - Mar 21 24 1 - R i 2046 2047 - S 21 24 0 - R i 2048 2049 - Mar 20 24 1 - R i 2048 2049 - S 20 24 0 - R i 2050 2051 - Mar 21 24 1 - R i 2050 2051 - S 21 24 0 - R i 2052 2053 - Mar 20 24 1 - R i 2052 2053 - S 20 24 0 - R i 2054 2055 - Mar 21 24 1 - R i 2054 2055 - S 21 24 0 - R i 2056 2057 - Mar 20 24 1 - R i 2056 2057 - S 20 24 0 - R i 2058 2059 - Mar 21 24 1 - R i 2058 2059 - S 21 24 0 - R i 2060 2062 - Mar 20 24 1 - R i 2060 2062 - S 20 24 0 - R i 2063 o - Mar 21 24 1 - R i 2063 o - S 21 24 0 - R i 2064 2066 - Mar 20 24 1 - R i 2064 2066 - S 20 24 0 - R i 2067 o - Mar 21 24 1 - R i 2067 o - S 21 24 0 - R i 2068 2070 - Mar 20 24 1 - R i 2068 2070 - S 20 24 0 - R i 2071 o - Mar 21 24 1 - R i 2071 o - S 21 24 0 - R i 2072 2074 - Mar 20 24 1 - R i 2072 2074 - S 20 24 0 - R i 2075 o - Mar 21 24 1 - R i 2075 o - S 21 24 0 - R i 2076 2078 - Mar 20 24 1 - R i 2076 2078 - S 20 24 0 - R i 2079 o - Mar 21 24 1 - R i 2079 o - S 21 24 0 - R i 2080 2082 - Mar 20 24 1 - R i 2080 2082 - S 20 24 0 - R i 2083 o - Mar 21 24 1 - R i 2083 o - S 21 24 0 - R i 2084 2086 - Mar 20 24 1 - R i 2084 2086 - S 20 24 0 - R i 2087 o - Mar 21 24 1 - R i 2087 o - S 21 24 0 - R i 2088 ma - Mar 20 24 1 - R i 2088 ma - S 20 24 0 - Z Asia/Tehran 3:25:44 - LMT 1916 3:25:44 - TMT 1946 3:30 - +0330 1977 N 4 i +04/+05 1979 3:30 i +0330/+0430 R IQ 1982 o - May 1 0 1 - R IQ 1982 1984 - O 1 0 0 - R IQ 1983 o - Mar 31 0 1 - R IQ 1984 1985 - Ap 1 0 1 - R IQ 1985 1990 - S lastSu 1s 0 - R IQ 1986 1990 - Mar lastSu 1s 1 - R IQ 1991 2007 - Ap 1 3s 1 - R IQ 1991 2007 - O 1 3s 0 - Z Asia/Baghdad 2:57:40 - LMT 1890 2:57:36 - BMT 1918 3 - +03 1982 May 3 IQ +03/+04 R Z 1940 o - Jun 1 0 1 D R Z 1942 1944 - N 1 0 0 S R Z 1943 o - Ap 1 2 1 D R Z 1944 o - Ap 1 0 1 D R Z 1945 o - Ap 16 0 1 D R Z 1945 o - N 1 2 0 S R Z 1946 o - Ap 16 2 1 D R Z 1946 o - N 1 0 0 S R Z 1948 o - May 23 0 2 DD R Z 1948 o - S 1 0 1 D R Z 1948 1949 - N 1 2 0 S R Z 1949 o - May 1 0 1 D R Z 1950 o - Ap 16 0 1 D R Z 1950 o - S 15 3 0 S R Z 1951 o - Ap 1 0 1 D R Z 1951 o - N 11 3 0 S R Z 1952 o - Ap 20 2 1 D R Z 1952 o - O 19 3 0 S R Z 1953 o - Ap 12 2 1 D R Z 1953 o - S 13 3 0 S R Z 1954 o - Jun 13 0 1 D R Z 1954 o - S 12 0 0 S R Z 1955 o - Jun 11 2 1 D R Z 1955 o - S 11 0 0 S R Z 1956 o - Jun 3 0 1 D R Z 1956 o - S 30 3 0 S R Z 1957 o - Ap 29 2 1 D R Z 1957 o - S 22 0 0 S R Z 1974 o - Jul 7 0 1 D R Z 1974 o - O 13 0 0 S R Z 1975 o - Ap 20 0 1 D R Z 1975 o - Au 31 0 0 S R Z 1980 o - Au 2 0 1 D R Z 1980 o - S 13 1 0 S R Z 1984 o - May 5 0 1 D R Z 1984 o - Au 25 1 0 S R Z 1985 o - Ap 14 0 1 D R Z 1985 o - S 15 0 0 S R Z 1986 o - May 18 0 1 D R Z 1986 o - S 7 0 0 S R Z 1987 o - Ap 15 0 1 D R Z 1987 o - S 13 0 0 S R Z 1988 o - Ap 10 0 1 D R Z 1988 o - S 4 0 0 S R Z 1989 o - Ap 30 0 1 D R Z 1989 o - S 3 0 0 S R Z 1990 o - Mar 25 0 1 D R Z 1990 o - Au 26 0 0 S R Z 1991 o - Mar 24 0 1 D R Z 1991 o - S 1 0 0 S R Z 1992 o - Mar 29 0 1 D R Z 1992 o - S 6 0 0 S R Z 1993 o - Ap 2 0 1 D R Z 1993 o - S 5 0 0 S R Z 1994 o - Ap 1 0 1 D R Z 1994 o - Au 28 0 0 S R Z 1995 o - Mar 31 0 1 D R Z 1995 o - S 3 0 0 S R Z 1996 o - Mar 15 0 1 D R Z 1996 o - S 16 0 0 S R Z 1997 o - Mar 21 0 1 D R Z 1997 o - S 14 0 0 S R Z 1998 o - Mar 20 0 1 D R Z 1998 o - S 6 0 0 S R Z 1999 o - Ap 2 2 1 D R Z 1999 o - S 3 2 0 S R Z 2000 o - Ap 14 2 1 D R Z 2000 o - O 6 1 0 S R Z 2001 o - Ap 9 1 1 D R Z 2001 o - S 24 1 0 S R Z 2002 o - Mar 29 1 1 D R Z 2002 o - O 7 1 0 S R Z 2003 o - Mar 28 1 1 D R Z 2003 o - O 3 1 0 S R Z 2004 o - Ap 7 1 1 D R Z 2004 o - S 22 1 0 S R Z 2005 2012 - Ap F<=1 2 1 D R Z 2005 o - O 9 2 0 S R Z 2006 o - O 1 2 0 S R Z 2007 o - S 16 2 0 S R Z 2008 o - O 5 2 0 S R Z 2009 o - S 27 2 0 S R Z 2010 o - S 12 2 0 S R Z 2011 o - O 2 2 0 S R Z 2012 o - S 23 2 0 S R Z 2013 ma - Mar F>=23 2 1 D R Z 2013 ma - O lastSu 2 0 S Z Asia/Jerusalem 2:20:54 - LMT 1880 2:20:40 - JMT 1918 2 Z I%sT R JP 1948 o - May Sa>=1 24 1 D R JP 1948 1951 - S Sa>=8 25 0 S R JP 1949 o - Ap Sa>=1 24 1 D R JP 1950 1951 - May Sa>=1 24 1 D Z Asia/Tokyo 9:18:59 - LMT 1887 D 31 15u 9 JP J%sT R J 1973 o - Jun 6 0 1 S R J 1973 1975 - O 1 0 0 - R J 1974 1977 - May 1 0 1 S R J 1976 o - N 1 0 0 - R J 1977 o - O 1 0 0 - R J 1978 o - Ap 30 0 1 S R J 1978 o - S 30 0 0 - R J 1985 o - Ap 1 0 1 S R J 1985 o - O 1 0 0 - R J 1986 1988 - Ap F>=1 0 1 S R J 1986 1990 - O F>=1 0 0 - R J 1989 o - May 8 0 1 S R J 1990 o - Ap 27 0 1 S R J 1991 o - Ap 17 0 1 S R J 1991 o - S 27 0 0 - R J 1992 o - Ap 10 0 1 S R J 1992 1993 - O F>=1 0 0 - R J 1993 1998 - Ap F>=1 0 1 S R J 1994 o - S F>=15 0 0 - R J 1995 1998 - S F>=15 0s 0 - R J 1999 o - Jul 1 0s 1 S R J 1999 2002 - S lastF 0s 0 - R J 2000 2001 - Mar lastTh 0s 1 S R J 2002 2012 - Mar lastTh 24 1 S R J 2003 o - O 24 0s 0 - R J 2004 o - O 15 0s 0 - R J 2005 o - S lastF 0s 0 - R J 2006 2011 - O lastF 0s 0 - R J 2013 o - D 20 0 0 - R J 2014 ma - Mar lastTh 24 1 S R J 2014 ma - O lastF 0s 0 - Z Asia/Amman 2:23:44 - LMT 1931 2 J EE%sT Z Asia/Almaty 5:7:48 - LMT 1924 May 2 5 - +05 1930 Jun 21 6 R +06/+07 1991 Mar 31 2s 5 R +05/+06 1992 Ja 19 2s 6 R +06/+07 2004 O 31 2s 6 - +06 Z Asia/Qyzylorda 4:21:52 - LMT 1924 May 2 4 - +04 1930 Jun 21 5 - +05 1981 Ap 5 1 +06 1981 O 6 - +06 1982 Ap 5 R +05/+06 1991 Mar 31 2s 4 R +04/+05 1991 S 29 2s 5 R +05/+06 1992 Ja 19 2s 6 R +06/+07 1992 Mar 29 2s 5 R +05/+06 2004 O 31 2s 6 - +06 2018 D 21 5 - +05 Z Asia/Qostanay 4:14:28 - LMT 1924 May 2 4 - +04 1930 Jun 21 5 - +05 1981 Ap 5 1 +06 1981 O 6 - +06 1982 Ap 5 R +05/+06 1991 Mar 31 2s 4 R +04/+05 1992 Ja 19 2s 5 R +05/+06 2004 O 31 2s 6 - +06 Z Asia/Aqtobe 3:48:40 - LMT 1924 May 2 4 - +04 1930 Jun 21 5 - +05 1981 Ap 5 1 +06 1981 O 6 - +06 1982 Ap 5 R +05/+06 1991 Mar 31 2s 4 R +04/+05 1992 Ja 19 2s 5 R +05/+06 2004 O 31 2s 5 - +05 Z Asia/Aqtau 3:21:4 - LMT 1924 May 2 4 - +04 1930 Jun 21 5 - +05 1981 O 6 - +06 1982 Ap 5 R +05/+06 1991 Mar 31 2s 4 R +04/+05 1992 Ja 19 2s 5 R +05/+06 1994 S 25 2s 4 R +04/+05 2004 O 31 2s 5 - +05 Z Asia/Atyrau 3:27:44 - LMT 1924 May 2 3 - +03 1930 Jun 21 5 - +05 1981 O 6 - +06 1982 Ap 5 R +05/+06 1991 Mar 31 2s 4 R +04/+05 1992 Ja 19 2s 5 R +05/+06 1999 Mar 28 2s 4 R +04/+05 2004 O 31 2s 5 - +05 Z Asia/Oral 3:25:24 - LMT 1924 May 2 3 - +03 1930 Jun 21 5 - +05 1981 Ap 5 1 +06 1981 O 6 - +06 1982 Ap 5 R +05/+06 1989 Mar 26 2s 4 R +04/+05 1992 Ja 19 2s 5 R +05/+06 1992 Mar 29 2s 4 R +04/+05 2004 O 31 2s 5 - +05 R KG 1992 1996 - Ap Su>=7 0s 1 - R KG 1992 1996 - S lastSu 0 0 - R KG 1997 2005 - Mar lastSu 2:30 1 - R KG 1997 2004 - O lastSu 2:30 0 - Z Asia/Bishkek 4:58:24 - LMT 1924 May 2 5 - +05 1930 Jun 21 6 R +06/+07 1991 Mar 31 2s 5 R +05/+06 1991 Au 31 2 5 KG +05/+06 2005 Au 12 6 - +06 R KR 1948 o - Jun 1 0 1 D R KR 1948 o - S 12 24 0 S R KR 1949 o - Ap 3 0 1 D R KR 1949 1951 - S Sa>=7 24 0 S R KR 1950 o - Ap 1 0 1 D R KR 1951 o - May 6 0 1 D R KR 1955 o - May 5 0 1 D R KR 1955 o - S 8 24 0 S R KR 1956 o - May 20 0 1 D R KR 1956 o - S 29 24 0 S R KR 1957 1960 - May Su>=1 0 1 D R KR 1957 1960 - S Sa>=17 24 0 S R KR 1987 1988 - May Su>=8 2 1 D R KR 1987 1988 - O Su>=8 3 0 S Z Asia/Seoul 8:27:52 - LMT 1908 Ap 8:30 - KST 1912 9 - JST 1945 S 8 9 KR K%sT 1954 Mar 21 8:30 KR K%sT 1961 Au 10 9 KR K%sT Z Asia/Pyongyang 8:23 - LMT 1908 Ap 8:30 - KST 1912 9 - JST 1945 Au 24 9 - KST 2015 Au 15 8:30 - KST 2018 May 4 23:30 9 - KST R l 1920 o - Mar 28 0 1 S R l 1920 o - O 25 0 0 - R l 1921 o - Ap 3 0 1 S R l 1921 o - O 3 0 0 - R l 1922 o - Mar 26 0 1 S R l 1922 o - O 8 0 0 - R l 1923 o - Ap 22 0 1 S R l 1923 o - S 16 0 0 - R l 1957 1961 - May 1 0 1 S R l 1957 1961 - O 1 0 0 - R l 1972 o - Jun 22 0 1 S R l 1972 1977 - O 1 0 0 - R l 1973 1977 - May 1 0 1 S R l 1978 o - Ap 30 0 1 S R l 1978 o - S 30 0 0 - R l 1984 1987 - May 1 0 1 S R l 1984 1991 - O 16 0 0 - R l 1988 o - Jun 1 0 1 S R l 1989 o - May 10 0 1 S R l 1990 1992 - May 1 0 1 S R l 1992 o - O 4 0 0 - R l 1993 ma - Mar lastSu 0 1 S R l 1993 1998 - S lastSu 0 0 - R l 1999 ma - O lastSu 0 0 - Z Asia/Beirut 2:22 - LMT 1880 2 l EE%sT R NB 1935 1941 - S 14 0 0:20 - R NB 1935 1941 - D 14 0 0 - Z Asia/Kuala_Lumpur 6:46:46 - LMT 1901 6:55:25 - SMT 1905 Jun 7 - +07 1933 7 0:20 +0720 1936 7:20 - +0720 1941 S 7:30 - +0730 1942 F 16 9 - +09 1945 S 12 7:30 - +0730 1982 8 - +08 Z Asia/Kuching 7:21:20 - LMT 1926 Mar 7:30 - +0730 1933 8 NB +08/+0820 1942 F 16 9 - +09 1945 S 12 8 - +08 Z Indian/Maldives 4:54 - LMT 1880 4:54 - MMT 1960 5 - +05 R X 1983 1984 - Ap 1 0 1 - R X 1983 o - O 1 0 0 - R X 1985 1998 - Mar lastSu 0 1 - R X 1984 1998 - S lastSu 0 0 - R X 2001 o - Ap lastSa 2 1 - R X 2001 2006 - S lastSa 2 0 - R X 2002 2006 - Mar lastSa 2 1 - R X 2015 2016 - Mar lastSa 2 1 - R X 2015 2016 - S lastSa 0 0 - Z Asia/Hovd 6:6:36 - LMT 1905 Au 6 - +06 1978 7 X +07/+08 Z Asia/Ulaanbaatar 7:7:32 - LMT 1905 Au 7 - +07 1978 8 X +08/+09 Z Asia/Choibalsan 7:38 - LMT 1905 Au 7 - +07 1978 8 - +08 1983 Ap 9 X +09/+10 2008 Mar 31 8 X +08/+09 Z Asia/Kathmandu 5:41:16 - LMT 1920 5:30 - +0530 1986 5:45 - +0545 R PK 2002 o - Ap Su>=2 0 1 S R PK 2002 o - O Su>=2 0 0 - R PK 2008 o - Jun 1 0 1 S R PK 2008 2009 - N 1 0 0 - R PK 2009 o - Ap 15 0 1 S Z Asia/Karachi 4:28:12 - LMT 1907 5:30 - +0530 1942 S 5:30 1 +0630 1945 O 15 5:30 - +0530 1951 S 30 5 - +05 1971 Mar 26 5 PK PK%sT R P 1999 2005 - Ap F>=15 0 1 S R P 1999 2003 - O F>=15 0 0 - R P 2004 o - O 1 1 0 - R P 2005 o - O 4 2 0 - R P 2006 2007 - Ap 1 0 1 S R P 2006 o - S 22 0 0 - R P 2007 o - S Th>=8 2 0 - R P 2008 2009 - Mar lastF 0 1 S R P 2008 o - S 1 0 0 - R P 2009 o - S F>=1 1 0 - R P 2010 o - Mar 26 0 1 S R P 2010 o - Au 11 0 0 - R P 2011 o - Ap 1 0:1 1 S R P 2011 o - Au 1 0 0 - R P 2011 o - Au 30 0 1 S R P 2011 o - S 30 0 0 - R P 2012 2014 - Mar lastTh 24 1 S R P 2012 o - S 21 1 0 - R P 2013 o - S F>=21 0 0 - R P 2014 2015 - O F>=21 0 0 - R P 2015 o - Mar lastF 24 1 S R P 2016 2018 - Mar Sa>=24 1 1 S R P 2016 ma - O lastSa 1 0 - R P 2019 ma - Mar lastF 0 1 S Z Asia/Gaza 2:17:52 - LMT 1900 O 2 Z EET/EEST 1948 May 15 2 K EE%sT 1967 Jun 5 2 Z I%sT 1996 2 J EE%sT 1999 2 P EE%sT 2008 Au 29 2 - EET 2008 S 2 P EE%sT 2010 2 - EET 2010 Mar 27 0:1 2 P EE%sT 2011 Au 2 - EET 2012 2 P EE%sT Z Asia/Hebron 2:20:23 - LMT 1900 O 2 Z EET/EEST 1948 May 15 2 K EE%sT 1967 Jun 5 2 Z I%sT 1996 2 J EE%sT 1999 2 P EE%sT R PH 1936 o - N 1 0 1 D R PH 1937 o - F 1 0 0 S R PH 1954 o - Ap 12 0 1 D R PH 1954 o - Jul 1 0 0 S R PH 1978 o - Mar 22 0 1 D R PH 1978 o - S 21 0 0 S Z Asia/Manila -15:56 - LMT 1844 D 31 8:4 - LMT 1899 May 11 8 PH P%sT 1942 May 9 - JST 1944 N 8 PH P%sT Z Asia/Qatar 3:26:8 - LMT 1920 4 - +04 1972 Jun 3 - +03 L Asia/Qatar Asia/Bahrain Z Asia/Riyadh 3:6:52 - LMT 1947 Mar 14 3 - +03 L Asia/Riyadh Asia/Aden L Asia/Riyadh Asia/Kuwait Z Asia/Singapore 6:55:25 - LMT 1901 6:55:25 - SMT 1905 Jun 7 - +07 1933 7 0:20 +0720 1936 7:20 - +0720 1941 S 7:30 - +0730 1942 F 16 9 - +09 1945 S 12 7:30 - +0730 1982 8 - +08 Z Asia/Colombo 5:19:24 - LMT 1880 5:19:32 - MMT 1906 5:30 - +0530 1942 Ja 5 5:30 0:30 +06 1942 S 5:30 1 +0630 1945 O 16 2 5:30 - +0530 1996 May 25 6:30 - +0630 1996 O 26 0:30 6 - +06 2006 Ap 15 0:30 5:30 - +0530 R S 1920 1923 - Ap Su>=15 2 1 S R S 1920 1923 - O Su>=1 2 0 - R S 1962 o - Ap 29 2 1 S R S 1962 o - O 1 2 0 - R S 1963 1965 - May 1 2 1 S R S 1963 o - S 30 2 0 - R S 1964 o - O 1 2 0 - R S 1965 o - S 30 2 0 - R S 1966 o - Ap 24 2 1 S R S 1966 1976 - O 1 2 0 - R S 1967 1978 - May 1 2 1 S R S 1977 1978 - S 1 2 0 - R S 1983 1984 - Ap 9 2 1 S R S 1983 1984 - O 1 2 0 - R S 1986 o - F 16 2 1 S R S 1986 o - O 9 2 0 - R S 1987 o - Mar 1 2 1 S R S 1987 1988 - O 31 2 0 - R S 1988 o - Mar 15 2 1 S R S 1989 o - Mar 31 2 1 S R S 1989 o - O 1 2 0 - R S 1990 o - Ap 1 2 1 S R S 1990 o - S 30 2 0 - R S 1991 o - Ap 1 0 1 S R S 1991 1992 - O 1 0 0 - R S 1992 o - Ap 8 0 1 S R S 1993 o - Mar 26 0 1 S R S 1993 o - S 25 0 0 - R S 1994 1996 - Ap 1 0 1 S R S 1994 2005 - O 1 0 0 - R S 1997 1998 - Mar lastM 0 1 S R S 1999 2006 - Ap 1 0 1 S R S 2006 o - S 22 0 0 - R S 2007 o - Mar lastF 0 1 S R S 2007 o - N F>=1 0 0 - R S 2008 o - Ap F>=1 0 1 S R S 2008 o - N 1 0 0 - R S 2009 o - Mar lastF 0 1 S R S 2010 2011 - Ap F>=1 0 1 S R S 2012 ma - Mar lastF 0 1 S R S 2009 ma - O lastF 0 0 - Z Asia/Damascus 2:25:12 - LMT 1920 2 S EE%sT Z Asia/Dushanbe 4:35:12 - LMT 1924 May 2 5 - +05 1930 Jun 21 6 R +06/+07 1991 Mar 31 2s 5 1 +05/+06 1991 S 9 2s 5 - +05 Z Asia/Bangkok 6:42:4 - LMT 1880 6:42:4 - BMT 1920 Ap 7 - +07 L Asia/Bangkok Asia/Phnom_Penh L Asia/Bangkok Asia/Vientiane Z Asia/Ashgabat 3:53:32 - LMT 1924 May 2 4 - +04 1930 Jun 21 5 R +05/+06 1991 Mar 31 2 4 R +04/+05 1992 Ja 19 2 5 - +05 Z Asia/Dubai 3:41:12 - LMT 1920 4 - +04 L Asia/Dubai Asia/Muscat Z Asia/Samarkand 4:27:53 - LMT 1924 May 2 4 - +04 1930 Jun 21 5 - +05 1981 Ap 5 1 +06 1981 O 6 - +06 1982 Ap 5 R +05/+06 1992 5 - +05 Z Asia/Tashkent 4:37:11 - LMT 1924 May 2 5 - +05 1930 Jun 21 6 R +06/+07 1991 Mar 31 2 5 R +05/+06 1992 5 - +05 Z Asia/Ho_Chi_Minh 7:6:40 - LMT 1906 Jul 7:6:30 - PLMT 1911 May 7 - +07 1942 D 31 23 8 - +08 1945 Mar 14 23 9 - +09 1945 S 2 7 - +07 1947 Ap 8 - +08 1955 Jul 7 - +07 1959 D 31 23 8 - +08 1975 Jun 13 7 - +07 R AU 1917 o - Ja 1 0:1 1 D R AU 1917 o - Mar 25 2 0 S R AU 1942 o - Ja 1 2 1 D R AU 1942 o - Mar 29 2 0 S R AU 1942 o - S 27 2 1 D R AU 1943 1944 - Mar lastSu 2 0 S R AU 1943 o - O 3 2 1 D Z Australia/Darwin 8:43:20 - LMT 1895 F 9 - ACST 1899 May 9:30 AU AC%sT R AW 1974 o - O lastSu 2s 1 D R AW 1975 o - Mar Su>=1 2s 0 S R AW 1983 o - O lastSu 2s 1 D R AW 1984 o - Mar Su>=1 2s 0 S R AW 1991 o - N 17 2s 1 D R AW 1992 o - Mar Su>=1 2s 0 S R AW 2006 o - D 3 2s 1 D R AW 2007 2009 - Mar lastSu 2s 0 S R AW 2007 2008 - O lastSu 2s 1 D Z Australia/Perth 7:43:24 - LMT 1895 D 8 AU AW%sT 1943 Jul 8 AW AW%sT Z Australia/Eucla 8:35:28 - LMT 1895 D 8:45 AU +0845/+0945 1943 Jul 8:45 AW +0845/+0945 R AQ 1971 o - O lastSu 2s 1 D R AQ 1972 o - F lastSu 2s 0 S R AQ 1989 1991 - O lastSu 2s 1 D R AQ 1990 1992 - Mar Su>=1 2s 0 S R Ho 1992 1993 - O lastSu 2s 1 D R Ho 1993 1994 - Mar Su>=1 2s 0 S Z Australia/Brisbane 10:12:8 - LMT 1895 10 AU AE%sT 1971 10 AQ AE%sT Z Australia/Lindeman 9:55:56 - LMT 1895 10 AU AE%sT 1971 10 AQ AE%sT 1992 Jul 10 Ho AE%sT R AS 1971 1985 - O lastSu 2s 1 D R AS 1986 o - O 19 2s 1 D R AS 1987 2007 - O lastSu 2s 1 D R AS 1972 o - F 27 2s 0 S R AS 1973 1985 - Mar Su>=1 2s 0 S R AS 1986 1990 - Mar Su>=15 2s 0 S R AS 1991 o - Mar 3 2s 0 S R AS 1992 o - Mar 22 2s 0 S R AS 1993 o - Mar 7 2s 0 S R AS 1994 o - Mar 20 2s 0 S R AS 1995 2005 - Mar lastSu 2s 0 S R AS 2006 o - Ap 2 2s 0 S R AS 2007 o - Mar lastSu 2s 0 S R AS 2008 ma - Ap Su>=1 2s 0 S R AS 2008 ma - O Su>=1 2s 1 D Z Australia/Adelaide 9:14:20 - LMT 1895 F 9 - ACST 1899 May 9:30 AU AC%sT 1971 9:30 AS AC%sT R AT 1967 o - O Su>=1 2s 1 D R AT 1968 o - Mar lastSu 2s 0 S R AT 1968 1985 - O lastSu 2s 1 D R AT 1969 1971 - Mar Su>=8 2s 0 S R AT 1972 o - F lastSu 2s 0 S R AT 1973 1981 - Mar Su>=1 2s 0 S R AT 1982 1983 - Mar lastSu 2s 0 S R AT 1984 1986 - Mar Su>=1 2s 0 S R AT 1986 o - O Su>=15 2s 1 D R AT 1987 1990 - Mar Su>=15 2s 0 S R AT 1987 o - O Su>=22 2s 1 D R AT 1988 1990 - O lastSu 2s 1 D R AT 1991 1999 - O Su>=1 2s 1 D R AT 1991 2005 - Mar lastSu 2s 0 S R AT 2000 o - Au lastSu 2s 1 D R AT 2001 ma - O Su>=1 2s 1 D R AT 2006 o - Ap Su>=1 2s 0 S R AT 2007 o - Mar lastSu 2s 0 S R AT 2008 ma - Ap Su>=1 2s 0 S Z Australia/Hobart 9:49:16 - LMT 1895 S 10 - AEST 1916 O 1 2 10 1 AEDT 1917 F 10 AU AE%sT 1967 10 AT AE%sT Z Australia/Currie 9:35:28 - LMT 1895 S 10 - AEST 1916 O 1 2 10 1 AEDT 1917 F 10 AU AE%sT 1971 Jul 10 AT AE%sT R AV 1971 1985 - O lastSu 2s 1 D R AV 1972 o - F lastSu 2s 0 S R AV 1973 1985 - Mar Su>=1 2s 0 S R AV 1986 1990 - Mar Su>=15 2s 0 S R AV 1986 1987 - O Su>=15 2s 1 D R AV 1988 1999 - O lastSu 2s 1 D R AV 1991 1994 - Mar Su>=1 2s 0 S R AV 1995 2005 - Mar lastSu 2s 0 S R AV 2000 o - Au lastSu 2s 1 D R AV 2001 2007 - O lastSu 2s 1 D R AV 2006 o - Ap Su>=1 2s 0 S R AV 2007 o - Mar lastSu 2s 0 S R AV 2008 ma - Ap Su>=1 2s 0 S R AV 2008 ma - O Su>=1 2s 1 D Z Australia/Melbourne 9:39:52 - LMT 1895 F 10 AU AE%sT 1971 10 AV AE%sT R AN 1971 1985 - O lastSu 2s 1 D R AN 1972 o - F 27 2s 0 S R AN 1973 1981 - Mar Su>=1 2s 0 S R AN 1982 o - Ap Su>=1 2s 0 S R AN 1983 1985 - Mar Su>=1 2s 0 S R AN 1986 1989 - Mar Su>=15 2s 0 S R AN 1986 o - O 19 2s 1 D R AN 1987 1999 - O lastSu 2s 1 D R AN 1990 1995 - Mar Su>=1 2s 0 S R AN 1996 2005 - Mar lastSu 2s 0 S R AN 2000 o - Au lastSu 2s 1 D R AN 2001 2007 - O lastSu 2s 1 D R AN 2006 o - Ap Su>=1 2s 0 S R AN 2007 o - Mar lastSu 2s 0 S R AN 2008 ma - Ap Su>=1 2s 0 S R AN 2008 ma - O Su>=1 2s 1 D Z Australia/Sydney 10:4:52 - LMT 1895 F 10 AU AE%sT 1971 10 AN AE%sT Z Australia/Broken_Hill 9:25:48 - LMT 1895 F 10 - AEST 1896 Au 23 9 - ACST 1899 May 9:30 AU AC%sT 1971 9:30 AN AC%sT 2000 9:30 AS AC%sT R LH 1981 1984 - O lastSu 2 1 - R LH 1982 1985 - Mar Su>=1 2 0 - R LH 1985 o - O lastSu 2 0:30 - R LH 1986 1989 - Mar Su>=15 2 0 - R LH 1986 o - O 19 2 0:30 - R LH 1987 1999 - O lastSu 2 0:30 - R LH 1990 1995 - Mar Su>=1 2 0 - R LH 1996 2005 - Mar lastSu 2 0 - R LH 2000 o - Au lastSu 2 0:30 - R LH 2001 2007 - O lastSu 2 0:30 - R LH 2006 o - Ap Su>=1 2 0 - R LH 2007 o - Mar lastSu 2 0 - R LH 2008 ma - Ap Su>=1 2 0 - R LH 2008 ma - O Su>=1 2 0:30 - Z Australia/Lord_Howe 10:36:20 - LMT 1895 F 10 - AEST 1981 Mar 10:30 LH +1030/+1130 1985 Jul 10:30 LH +1030/+11 Z Antarctica/Macquarie 0 - -00 1899 N 10 - AEST 1916 O 1 2 10 1 AEDT 1917 F 10 AU AE%sT 1919 Ap 1 0s 0 - -00 1948 Mar 25 10 AU AE%sT 1967 10 AT AE%sT 2010 Ap 4 3 11 - +11 Z Indian/Christmas 7:2:52 - LMT 1895 F 7 - +07 Z Indian/Cocos 6:27:40 - LMT 1900 6:30 - +0630 R FJ 1998 1999 - N Su>=1 2 1 - R FJ 1999 2000 - F lastSu 3 0 - R FJ 2009 o - N 29 2 1 - R FJ 2010 o - Mar lastSu 3 0 - R FJ 2010 2013 - O Su>=21 2 1 - R FJ 2011 o - Mar Su>=1 3 0 - R FJ 2012 2013 - Ja Su>=18 3 0 - R FJ 2014 o - Ja Su>=18 2 0 - R FJ 2014 2018 - N Su>=1 2 1 - R FJ 2015 ma - Ja Su>=12 3 0 - R FJ 2019 ma - N Su>=8 2 1 - Z Pacific/Fiji 11:55:44 - LMT 1915 O 26 12 FJ +12/+13 Z Pacific/Gambier -8:59:48 - LMT 1912 O -9 - -09 Z Pacific/Marquesas -9:18 - LMT 1912 O -9:30 - -0930 Z Pacific/Tahiti -9:58:16 - LMT 1912 O -10 - -10 R Gu 1959 o - Jun 27 2 1 D R Gu 1961 o - Ja 29 2 0 S R Gu 1967 o - S 1 2 1 D R Gu 1969 o - Ja 26 0:1 0 S R Gu 1969 o - Jun 22 2 1 D R Gu 1969 o - Au 31 2 0 S R Gu 1970 1971 - Ap lastSu 2 1 D R Gu 1970 1971 - S Su>=1 2 0 S R Gu 1973 o - D 16 2 1 D R Gu 1974 o - F 24 2 0 S R Gu 1976 o - May 26 2 1 D R Gu 1976 o - Au 22 2:1 0 S R Gu 1977 o - Ap 24 2 1 D R Gu 1977 o - Au 28 2 0 S Z Pacific/Guam -14:21 - LMT 1844 D 31 9:39 - LMT 1901 10 - GST 1941 D 10 9 - +09 1944 Jul 31 10 Gu G%sT 2000 D 23 10 - ChST L Pacific/Guam Pacific/Saipan Z Pacific/Tarawa 11:32:4 - LMT 1901 12 - +12 Z Pacific/Enderbury -11:24:20 - LMT 1901 -12 - -12 1979 O -11 - -11 1994 D 31 13 - +13 Z Pacific/Kiritimati -10:29:20 - LMT 1901 -10:40 - -1040 1979 O -10 - -10 1994 D 31 14 - +14 Z Pacific/Majuro 11:24:48 - LMT 1901 11 - +11 1914 O 9 - +09 1919 F 11 - +11 1937 10 - +10 1941 Ap 9 - +09 1944 Ja 30 11 - +11 1969 O 12 - +12 Z Pacific/Kwajalein 11:9:20 - LMT 1901 11 - +11 1937 10 - +10 1941 Ap 9 - +09 1944 F 6 11 - +11 1969 O -12 - -12 1993 Au 20 24 12 - +12 Z Pacific/Chuuk -13:52:52 - LMT 1844 D 31 10:7:8 - LMT 1901 10 - +10 1914 O 9 - +09 1919 F 10 - +10 1941 Ap 9 - +09 1945 Au 10 - +10 Z Pacific/Pohnpei -13:27:8 - LMT 1844 D 31 10:32:52 - LMT 1901 11 - +11 1914 O 9 - +09 1919 F 11 - +11 1937 10 - +10 1941 Ap 9 - +09 1945 Au 11 - +11 Z Pacific/Kosrae -13:8:4 - LMT 1844 D 31 10:51:56 - LMT 1901 11 - +11 1914 O 9 - +09 1919 F 11 - +11 1937 10 - +10 1941 Ap 9 - +09 1945 Au 11 - +11 1969 O 12 - +12 1999 11 - +11 Z Pacific/Nauru 11:7:40 - LMT 1921 Ja 15 11:30 - +1130 1942 Au 29 9 - +09 1945 S 8 11:30 - +1130 1979 F 10 2 12 - +12 R NC 1977 1978 - D Su>=1 0 1 - R NC 1978 1979 - F 27 0 0 - R NC 1996 o - D 1 2s 1 - R NC 1997 o - Mar 2 2s 0 - Z Pacific/Noumea 11:5:48 - LMT 1912 Ja 13 11 NC +11/+12 R NZ 1927 o - N 6 2 1 S R NZ 1928 o - Mar 4 2 0 M R NZ 1928 1933 - O Su>=8 2 0:30 S R NZ 1929 1933 - Mar Su>=15 2 0 M R NZ 1934 1940 - Ap lastSu 2 0 M R NZ 1934 1940 - S lastSu 2 0:30 S R NZ 1946 o - Ja 1 0 0 S R NZ 1974 o - N Su>=1 2s 1 D R k 1974 o - N Su>=1 2:45s 1 - R NZ 1975 o - F lastSu 2s 0 S R k 1975 o - F lastSu 2:45s 0 - R NZ 1975 1988 - O lastSu 2s 1 D R k 1975 1988 - O lastSu 2:45s 1 - R NZ 1976 1989 - Mar Su>=1 2s 0 S R k 1976 1989 - Mar Su>=1 2:45s 0 - R NZ 1989 o - O Su>=8 2s 1 D R k 1989 o - O Su>=8 2:45s 1 - R NZ 1990 2006 - O Su>=1 2s 1 D R k 1990 2006 - O Su>=1 2:45s 1 - R NZ 1990 2007 - Mar Su>=15 2s 0 S R k 1990 2007 - Mar Su>=15 2:45s 0 - R NZ 2007 ma - S lastSu 2s 1 D R k 2007 ma - S lastSu 2:45s 1 - R NZ 2008 ma - Ap Su>=1 2s 0 S R k 2008 ma - Ap Su>=1 2:45s 0 - Z Pacific/Auckland 11:39:4 - LMT 1868 N 2 11:30 NZ NZ%sT 1946 12 NZ NZ%sT Z Pacific/Chatham 12:13:48 - LMT 1868 N 2 12:15 - +1215 1946 12:45 k +1245/+1345 L Pacific/Auckland Antarctica/McMurdo R CK 1978 o - N 12 0 0:30 - R CK 1979 1991 - Mar Su>=1 0 0 - R CK 1979 1990 - O lastSu 0 0:30 - Z Pacific/Rarotonga -10:39:4 - LMT 1901 -10:30 - -1030 1978 N 12 -10 CK -10/-0930 Z Pacific/Niue -11:19:40 - LMT 1901 -11:20 - -1120 1951 -11:30 - -1130 1978 O -11 - -11 Z Pacific/Norfolk 11:11:52 - LMT 1901 11:12 - +1112 1951 11:30 - +1130 1974 O 27 2s 11:30 1 +1230 1975 Mar 2 2s 11:30 - +1130 2015 O 4 2s 11 - +11 2019 Jul 11 AN +11/+12 Z Pacific/Palau -15:2:4 - LMT 1844 D 31 8:57:56 - LMT 1901 9 - +09 Z Pacific/Port_Moresby 9:48:40 - LMT 1880 9:48:32 - PMMT 1895 10 - +10 Z Pacific/Bougainville 10:22:16 - LMT 1880 9:48:32 - PMMT 1895 10 - +10 1942 Jul 9 - +09 1945 Au 21 10 - +10 2014 D 28 2 11 - +11 Z Pacific/Pitcairn -8:40:20 - LMT 1901 -8:30 - -0830 1998 Ap 27 -8 - -08 Z Pacific/Pago_Pago 12:37:12 - LMT 1892 Jul 5 -11:22:48 - LMT 1911 -11 - SST L Pacific/Pago_Pago Pacific/Midway R WS 2010 o - S lastSu 0 1 - R WS 2011 o - Ap Sa>=1 4 0 - R WS 2011 o - S lastSa 3 1 - R WS 2012 ma - Ap Su>=1 4 0 - R WS 2012 ma - S lastSu 3 1 - Z Pacific/Apia 12:33:4 - LMT 1892 Jul 5 -11:26:56 - LMT 1911 -11:30 - -1130 1950 -11 WS -11/-10 2011 D 29 24 13 WS +13/+14 Z Pacific/Guadalcanal 10:39:48 - LMT 1912 O 11 - +11 Z Pacific/Fakaofo -11:24:56 - LMT 1901 -11 - -11 2011 D 30 13 - +13 R TO 1999 o - O 7 2s 1 - R TO 2000 o - Mar 19 2s 0 - R TO 2000 2001 - N Su>=1 2 1 - R TO 2001 2002 - Ja lastSu 2 0 - R TO 2016 o - N Su>=1 2 1 - R TO 2017 o - Ja Su>=15 3 0 - Z Pacific/Tongatapu 12:19:20 - LMT 1901 12:20 - +1220 1941 13 - +13 1999 13 TO +13/+14 Z Pacific/Funafuti 11:56:52 - LMT 1901 12 - +12 Z Pacific/Wake 11:6:28 - LMT 1901 12 - +12 R VU 1983 o - S 25 0 1 - R VU 1984 1991 - Mar Su>=23 0 0 - R VU 1984 o - O 23 0 1 - R VU 1985 1991 - S Su>=23 0 1 - R VU 1992 1993 - Ja Su>=23 0 0 - R VU 1992 o - O Su>=23 0 1 - Z Pacific/Efate 11:13:16 - LMT 1912 Ja 13 11 VU +11/+12 Z Pacific/Wallis 12:15:20 - LMT 1901 12 - +12 R G 1916 o - May 21 2s 1 BST R G 1916 o - O 1 2s 0 GMT R G 1917 o - Ap 8 2s 1 BST R G 1917 o - S 17 2s 0 GMT R G 1918 o - Mar 24 2s 1 BST R G 1918 o - S 30 2s 0 GMT R G 1919 o - Mar 30 2s 1 BST R G 1919 o - S 29 2s 0 GMT R G 1920 o - Mar 28 2s 1 BST R G 1920 o - O 25 2s 0 GMT R G 1921 o - Ap 3 2s 1 BST R G 1921 o - O 3 2s 0 GMT R G 1922 o - Mar 26 2s 1 BST R G 1922 o - O 8 2s 0 GMT R G 1923 o - Ap Su>=16 2s 1 BST R G 1923 1924 - S Su>=16 2s 0 GMT R G 1924 o - Ap Su>=9 2s 1 BST R G 1925 1926 - Ap Su>=16 2s 1 BST R G 1925 1938 - O Su>=2 2s 0 GMT R G 1927 o - Ap Su>=9 2s 1 BST R G 1928 1929 - Ap Su>=16 2s 1 BST R G 1930 o - Ap Su>=9 2s 1 BST R G 1931 1932 - Ap Su>=16 2s 1 BST R G 1933 o - Ap Su>=9 2s 1 BST R G 1934 o - Ap Su>=16 2s 1 BST R G 1935 o - Ap Su>=9 2s 1 BST R G 1936 1937 - Ap Su>=16 2s 1 BST R G 1938 o - Ap Su>=9 2s 1 BST R G 1939 o - Ap Su>=16 2s 1 BST R G 1939 o - N Su>=16 2s 0 GMT R G 1940 o - F Su>=23 2s 1 BST R G 1941 o - May Su>=2 1s 2 BDST R G 1941 1943 - Au Su>=9 1s 1 BST R G 1942 1944 - Ap Su>=2 1s 2 BDST R G 1944 o - S Su>=16 1s 1 BST R G 1945 o - Ap M>=2 1s 2 BDST R G 1945 o - Jul Su>=9 1s 1 BST R G 1945 1946 - O Su>=2 2s 0 GMT R G 1946 o - Ap Su>=9 2s 1 BST R G 1947 o - Mar 16 2s 1 BST R G 1947 o - Ap 13 1s 2 BDST R G 1947 o - Au 10 1s 1 BST R G 1947 o - N 2 2s 0 GMT R G 1948 o - Mar 14 2s 1 BST R G 1948 o - O 31 2s 0 GMT R G 1949 o - Ap 3 2s 1 BST R G 1949 o - O 30 2s 0 GMT R G 1950 1952 - Ap Su>=14 2s 1 BST R G 1950 1952 - O Su>=21 2s 0 GMT R G 1953 o - Ap Su>=16 2s 1 BST R G 1953 1960 - O Su>=2 2s 0 GMT R G 1954 o - Ap Su>=9 2s 1 BST R G 1955 1956 - Ap Su>=16 2s 1 BST R G 1957 o - Ap Su>=9 2s 1 BST R G 1958 1959 - Ap Su>=16 2s 1 BST R G 1960 o - Ap Su>=9 2s 1 BST R G 1961 1963 - Mar lastSu 2s 1 BST R G 1961 1968 - O Su>=23 2s 0 GMT R G 1964 1967 - Mar Su>=19 2s 1 BST R G 1968 o - F 18 2s 1 BST R G 1972 1980 - Mar Su>=16 2s 1 BST R G 1972 1980 - O Su>=23 2s 0 GMT R G 1981 1995 - Mar lastSu 1u 1 BST R G 1981 1989 - O Su>=23 1u 0 GMT R G 1990 1995 - O Su>=22 1u 0 GMT Z Europe/London -0:1:15 - LMT 1847 D 1 0s 0 G %s 1968 O 27 1 - BST 1971 O 31 2u 0 G %s 1996 0 E GMT/BST L Europe/London Europe/Jersey L Europe/London Europe/Guernsey L Europe/London Europe/Isle_of_Man R IE 1971 o - O 31 2u -1 - R IE 1972 1980 - Mar Su>=16 2u 0 - R IE 1972 1980 - O Su>=23 2u -1 - R IE 1981 ma - Mar lastSu 1u 0 - R IE 1981 1989 - O Su>=23 1u -1 - R IE 1990 1995 - O Su>=22 1u -1 - R IE 1996 ma - O lastSu 1u -1 - Z Europe/Dublin -0:25 - LMT 1880 Au 2 -0:25:21 - DMT 1916 May 21 2s -0:25:21 1 IST 1916 O 1 2s 0 G %s 1921 D 6 0 G GMT/IST 1940 F 25 2s 0 1 IST 1946 O 6 2s 0 - GMT 1947 Mar 16 2s 0 1 IST 1947 N 2 2s 0 - GMT 1948 Ap 18 2s 0 G GMT/IST 1968 O 27 1 IE IST/GMT R E 1977 1980 - Ap Su>=1 1u 1 S R E 1977 o - S lastSu 1u 0 - R E 1978 o - O 1 1u 0 - R E 1979 1995 - S lastSu 1u 0 - R E 1981 ma - Mar lastSu 1u 1 S R E 1996 ma - O lastSu 1u 0 - R W- 1977 1980 - Ap Su>=1 1s 1 S R W- 1977 o - S lastSu 1s 0 - R W- 1978 o - O 1 1s 0 - R W- 1979 1995 - S lastSu 1s 0 - R W- 1981 ma - Mar lastSu 1s 1 S R W- 1996 ma - O lastSu 1s 0 - R c 1916 o - Ap 30 23 1 S R c 1916 o - O 1 1 0 - R c 1917 1918 - Ap M>=15 2s 1 S R c 1917 1918 - S M>=15 2s 0 - R c 1940 o - Ap 1 2s 1 S R c 1942 o - N 2 2s 0 - R c 1943 o - Mar 29 2s 1 S R c 1943 o - O 4 2s 0 - R c 1944 1945 - Ap M>=1 2s 1 S R c 1944 o - O 2 2s 0 - R c 1945 o - S 16 2s 0 - R c 1977 1980 - Ap Su>=1 2s 1 S R c 1977 o - S lastSu 2s 0 - R c 1978 o - O 1 2s 0 - R c 1979 1995 - S lastSu 2s 0 - R c 1981 ma - Mar lastSu 2s 1 S R c 1996 ma - O lastSu 2s 0 - R e 1977 1980 - Ap Su>=1 0 1 S R e 1977 o - S lastSu 0 0 - R e 1978 o - O 1 0 0 - R e 1979 1995 - S lastSu 0 0 - R e 1981 ma - Mar lastSu 0 1 S R e 1996 ma - O lastSu 0 0 - R R 1917 o - Jul 1 23 1 MST R R 1917 o - D 28 0 0 MMT R R 1918 o - May 31 22 2 MDST R R 1918 o - S 16 1 1 MST R R 1919 o - May 31 23 2 MDST R R 1919 o - Jul 1 0u 1 MSD R R 1919 o - Au 16 0 0 MSK R R 1921 o - F 14 23 1 MSD R R 1921 o - Mar 20 23 2 +05 R R 1921 o - S 1 0 1 MSD R R 1921 o - O 1 0 0 - R R 1981 1984 - Ap 1 0 1 S R R 1981 1983 - O 1 0 0 - R R 1984 1995 - S lastSu 2s 0 - R R 1985 2010 - Mar lastSu 2s 1 S R R 1996 2010 - O lastSu 2s 0 - Z WET 0 E WE%sT Z CET 1 c CE%sT Z MET 1 c ME%sT Z EET 2 E EE%sT R q 1940 o - Jun 16 0 1 S R q 1942 o - N 2 3 0 - R q 1943 o - Mar 29 2 1 S R q 1943 o - Ap 10 3 0 - R q 1974 o - May 4 0 1 S R q 1974 o - O 2 0 0 - R q 1975 o - May 1 0 1 S R q 1975 o - O 2 0 0 - R q 1976 o - May 2 0 1 S R q 1976 o - O 3 0 0 - R q 1977 o - May 8 0 1 S R q 1977 o - O 2 0 0 - R q 1978 o - May 6 0 1 S R q 1978 o - O 1 0 0 - R q 1979 o - May 5 0 1 S R q 1979 o - S 30 0 0 - R q 1980 o - May 3 0 1 S R q 1980 o - O 4 0 0 - R q 1981 o - Ap 26 0 1 S R q 1981 o - S 27 0 0 - R q 1982 o - May 2 0 1 S R q 1982 o - O 3 0 0 - R q 1983 o - Ap 18 0 1 S R q 1983 o - O 1 0 0 - R q 1984 o - Ap 1 0 1 S Z Europe/Tirane 1:19:20 - LMT 1914 1 - CET 1940 Jun 16 1 q CE%sT 1984 Jul 1 E CE%sT Z Europe/Andorra 0:6:4 - LMT 1901 0 - WET 1946 S 30 1 - CET 1985 Mar 31 2 1 E CE%sT R a 1920 o - Ap 5 2s 1 S R a 1920 o - S 13 2s 0 - R a 1946 o - Ap 14 2s 1 S R a 1946 o - O 7 2s 0 - R a 1947 1948 - O Su>=1 2s 0 - R a 1947 o - Ap 6 2s 1 S R a 1948 o - Ap 18 2s 1 S R a 1980 o - Ap 6 0 1 S R a 1980 o - S 28 0 0 - Z Europe/Vienna 1:5:21 - LMT 1893 Ap 1 c CE%sT 1920 1 a CE%sT 1940 Ap 1 2s 1 c CE%sT 1945 Ap 2 2s 1 1 CEST 1945 Ap 12 2s 1 - CET 1946 1 a CE%sT 1981 1 E CE%sT Z Europe/Minsk 1:50:16 - LMT 1880 1:50 - MMT 1924 May 2 2 - EET 1930 Jun 21 3 - MSK 1941 Jun 28 1 c CE%sT 1944 Jul 3 3 R MSK/MSD 1990 3 - MSK 1991 Mar 31 2s 2 R EE%sT 2011 Mar 27 2s 3 - +03 R b 1918 o - Mar 9 0s 1 S R b 1918 1919 - O Sa>=1 23s 0 - R b 1919 o - Mar 1 23s 1 S R b 1920 o - F 14 23s 1 S R b 1920 o - O 23 23s 0 - R b 1921 o - Mar 14 23s 1 S R b 1921 o - O 25 23s 0 - R b 1922 o - Mar 25 23s 1 S R b 1922 1927 - O Sa>=1 23s 0 - R b 1923 o - Ap 21 23s 1 S R b 1924 o - Mar 29 23s 1 S R b 1925 o - Ap 4 23s 1 S R b 1926 o - Ap 17 23s 1 S R b 1927 o - Ap 9 23s 1 S R b 1928 o - Ap 14 23s 1 S R b 1928 1938 - O Su>=2 2s 0 - R b 1929 o - Ap 21 2s 1 S R b 1930 o - Ap 13 2s 1 S R b 1931 o - Ap 19 2s 1 S R b 1932 o - Ap 3 2s 1 S R b 1933 o - Mar 26 2s 1 S R b 1934 o - Ap 8 2s 1 S R b 1935 o - Mar 31 2s 1 S R b 1936 o - Ap 19 2s 1 S R b 1937 o - Ap 4 2s 1 S R b 1938 o - Mar 27 2s 1 S R b 1939 o - Ap 16 2s 1 S R b 1939 o - N 19 2s 0 - R b 1940 o - F 25 2s 1 S R b 1944 o - S 17 2s 0 - R b 1945 o - Ap 2 2s 1 S R b 1945 o - S 16 2s 0 - R b 1946 o - May 19 2s 1 S R b 1946 o - O 7 2s 0 - Z Europe/Brussels 0:17:30 - LMT 1880 0:17:30 - BMT 1892 May 1 0:17:30 0 - WET 1914 N 8 1 - CET 1916 May 1 c CE%sT 1918 N 11 11u 0 b WE%sT 1940 May 20 2s 1 c CE%sT 1944 S 3 1 b CE%sT 1977 1 E CE%sT R BG 1979 o - Mar 31 23 1 S R BG 1979 o - O 1 1 0 - R BG 1980 1982 - Ap Sa>=1 23 1 S R BG 1980 o - S 29 1 0 - R BG 1981 o - S 27 2 0 - Z Europe/Sofia 1:33:16 - LMT 1880 1:56:56 - IMT 1894 N 30 2 - EET 1942 N 2 3 1 c CE%sT 1945 1 - CET 1945 Ap 2 3 2 - EET 1979 Mar 31 23 2 BG EE%sT 1982 S 26 3 2 c EE%sT 1991 2 e EE%sT 1997 2 E EE%sT R CZ 1945 o - Ap M>=1 2s 1 S R CZ 1945 o - O 1 2s 0 - R CZ 1946 o - May 6 2s 1 S R CZ 1946 1949 - O Su>=1 2s 0 - R CZ 1947 1948 - Ap Su>=15 2s 1 S R CZ 1949 o - Ap 9 2s 1 S Z Europe/Prague 0:57:44 - LMT 1850 0:57:44 - PMT 1891 O 1 c CE%sT 1945 May 9 1 CZ CE%sT 1946 D 1 3 1 -1 GMT 1947 F 23 2 1 CZ CE%sT 1979 1 E CE%sT R D 1916 o - May 14 23 1 S R D 1916 o - S 30 23 0 - R D 1940 o - May 15 0 1 S R D 1945 o - Ap 2 2s 1 S R D 1945 o - Au 15 2s 0 - R D 1946 o - May 1 2s 1 S R D 1946 o - S 1 2s 0 - R D 1947 o - May 4 2s 1 S R D 1947 o - Au 10 2s 0 - R D 1948 o - May 9 2s 1 S R D 1948 o - Au 8 2s 0 - Z Europe/Copenhagen 0:50:20 - LMT 1890 0:50:20 - CMT 1894 1 D CE%sT 1942 N 2 2s 1 c CE%sT 1945 Ap 2 2 1 D CE%sT 1980 1 E CE%sT Z Atlantic/Faroe -0:27:4 - LMT 1908 Ja 11 0 - WET 1981 0 E WE%sT R Th 1991 1992 - Mar lastSu 2 1 D R Th 1991 1992 - S lastSu 2 0 S R Th 1993 2006 - Ap Su>=1 2 1 D R Th 1993 2006 - O lastSu 2 0 S R Th 2007 ma - Mar Su>=8 2 1 D R Th 2007 ma - N Su>=1 2 0 S Z America/Danmarkshavn -1:14:40 - LMT 1916 Jul 28 -3 - -03 1980 Ap 6 2 -3 E -03/-02 1996 0 - GMT Z America/Scoresbysund -1:27:52 - LMT 1916 Jul 28 -2 - -02 1980 Ap 6 2 -2 c -02/-01 1981 Mar 29 -1 E -01/+00 Z America/Godthab -3:26:56 - LMT 1916 Jul 28 -3 - -03 1980 Ap 6 2 -3 E -03/-02 Z America/Thule -4:35:8 - LMT 1916 Jul 28 -4 Th A%sT Z Europe/Tallinn 1:39 - LMT 1880 1:39 - TMT 1918 F 1 c CE%sT 1919 Jul 1:39 - TMT 1921 May 2 - EET 1940 Au 6 3 - MSK 1941 S 15 1 c CE%sT 1944 S 22 3 R MSK/MSD 1989 Mar 26 2s 2 1 EEST 1989 S 24 2s 2 c EE%sT 1998 S 22 2 E EE%sT 1999 O 31 4 2 - EET 2002 F 21 2 E EE%sT R FI 1942 o - Ap 2 24 1 S R FI 1942 o - O 4 1 0 - R FI 1981 1982 - Mar lastSu 2 1 S R FI 1981 1982 - S lastSu 3 0 - Z Europe/Helsinki 1:39:49 - LMT 1878 May 31 1:39:49 - HMT 1921 May 2 FI EE%sT 1983 2 E EE%sT L Europe/Helsinki Europe/Mariehamn R F 1916 o - Jun 14 23s 1 S R F 1916 1919 - O Su>=1 23s 0 - R F 1917 o - Mar 24 23s 1 S R F 1918 o - Mar 9 23s 1 S R F 1919 o - Mar 1 23s 1 S R F 1920 o - F 14 23s 1 S R F 1920 o - O 23 23s 0 - R F 1921 o - Mar 14 23s 1 S R F 1921 o - O 25 23s 0 - R F 1922 o - Mar 25 23s 1 S R F 1922 1938 - O Sa>=1 23s 0 - R F 1923 o - May 26 23s 1 S R F 1924 o - Mar 29 23s 1 S R F 1925 o - Ap 4 23s 1 S R F 1926 o - Ap 17 23s 1 S R F 1927 o - Ap 9 23s 1 S R F 1928 o - Ap 14 23s 1 S R F 1929 o - Ap 20 23s 1 S R F 1930 o - Ap 12 23s 1 S R F 1931 o - Ap 18 23s 1 S R F 1932 o - Ap 2 23s 1 S R F 1933 o - Mar 25 23s 1 S R F 1934 o - Ap 7 23s 1 S R F 1935 o - Mar 30 23s 1 S R F 1936 o - Ap 18 23s 1 S R F 1937 o - Ap 3 23s 1 S R F 1938 o - Mar 26 23s 1 S R F 1939 o - Ap 15 23s 1 S R F 1939 o - N 18 23s 0 - R F 1940 o - F 25 2 1 S R F 1941 o - May 5 0 2 M R F 1941 o - O 6 0 1 S R F 1942 o - Mar 9 0 2 M R F 1942 o - N 2 3 1 S R F 1943 o - Mar 29 2 2 M R F 1943 o - O 4 3 1 S R F 1944 o - Ap 3 2 2 M R F 1944 o - O 8 1 1 S R F 1945 o - Ap 2 2 2 M R F 1945 o - S 16 3 0 - R F 1976 o - Mar 28 1 1 S R F 1976 o - S 26 1 0 - Z Europe/Paris 0:9:21 - LMT 1891 Mar 15 0:1 0:9:21 - PMT 1911 Mar 11 0:1 0 F WE%sT 1940 Jun 14 23 1 c CE%sT 1944 Au 25 0 F WE%sT 1945 S 16 3 1 F CE%sT 1977 1 E CE%sT R DE 1946 o - Ap 14 2s 1 S R DE 1946 o - O 7 2s 0 - R DE 1947 1949 - O Su>=1 2s 0 - R DE 1947 o - Ap 6 3s 1 S R DE 1947 o - May 11 2s 2 M R DE 1947 o - Jun 29 3 1 S R DE 1948 o - Ap 18 2s 1 S R DE 1949 o - Ap 10 2s 1 S R So 1945 o - May 24 2 2 M R So 1945 o - S 24 3 1 S R So 1945 o - N 18 2s 0 - Z Europe/Berlin 0:53:28 - LMT 1893 Ap 1 c CE%sT 1945 May 24 2 1 So CE%sT 1946 1 DE CE%sT 1980 1 E CE%sT L Europe/Zurich Europe/Busingen Z Europe/Gibraltar -0:21:24 - LMT 1880 Au 2 0s 0 G %s 1957 Ap 14 2 1 - CET 1982 1 E CE%sT R g 1932 o - Jul 7 0 1 S R g 1932 o - S 1 0 0 - R g 1941 o - Ap 7 0 1 S R g 1942 o - N 2 3 0 - R g 1943 o - Mar 30 0 1 S R g 1943 o - O 4 0 0 - R g 1952 o - Jul 1 0 1 S R g 1952 o - N 2 0 0 - R g 1975 o - Ap 12 0s 1 S R g 1975 o - N 26 0s 0 - R g 1976 o - Ap 11 2s 1 S R g 1976 o - O 10 2s 0 - R g 1977 1978 - Ap Su>=1 2s 1 S R g 1977 o - S 26 2s 0 - R g 1978 o - S 24 4 0 - R g 1979 o - Ap 1 9 1 S R g 1979 o - S 29 2 0 - R g 1980 o - Ap 1 0 1 S R g 1980 o - S 28 0 0 - Z Europe/Athens 1:34:52 - LMT 1895 S 14 1:34:52 - AMT 1916 Jul 28 0:1 2 g EE%sT 1941 Ap 30 1 g CE%sT 1944 Ap 4 2 g EE%sT 1981 2 E EE%sT R h 1918 o - Ap 1 3 1 S R h 1918 o - S 16 3 0 - R h 1919 o - Ap 15 3 1 S R h 1919 o - N 24 3 0 - R h 1945 o - May 1 23 1 S R h 1945 o - N 1 0 0 - R h 1946 o - Mar 31 2s 1 S R h 1946 1949 - O Su>=1 2s 0 - R h 1947 1949 - Ap Su>=4 2s 1 S R h 1950 o - Ap 17 2s 1 S R h 1950 o - O 23 2s 0 - R h 1954 1955 - May 23 0 1 S R h 1954 1955 - O 3 0 0 - R h 1956 o - Jun Su>=1 0 1 S R h 1956 o - S lastSu 0 0 - R h 1957 o - Jun Su>=1 1 1 S R h 1957 o - S lastSu 3 0 - R h 1980 o - Ap 6 1 1 S Z Europe/Budapest 1:16:20 - LMT 1890 O 1 c CE%sT 1918 1 h CE%sT 1941 Ap 8 1 c CE%sT 1945 1 h CE%sT 1980 S 28 2s 1 E CE%sT R w 1917 1919 - F 19 23 1 - R w 1917 o - O 21 1 0 - R w 1918 1919 - N 16 1 0 - R w 1921 o - Mar 19 23 1 - R w 1921 o - Jun 23 1 0 - R w 1939 o - Ap 29 23 1 - R w 1939 o - O 29 2 0 - R w 1940 o - F 25 2 1 - R w 1940 1941 - N Su>=2 1s 0 - R w 1941 1942 - Mar Su>=2 1s 1 - R w 1943 1946 - Mar Su>=1 1s 1 - R w 1942 1948 - O Su>=22 1s 0 - R w 1947 1967 - Ap Su>=1 1s 1 - R w 1949 o - O 30 1s 0 - R w 1950 1966 - O Su>=22 1s 0 - R w 1967 o - O 29 1s 0 - Z Atlantic/Reykjavik -1:28 - LMT 1908 -1 w -01/+00 1968 Ap 7 1s 0 - GMT R I 1916 o - Jun 3 24 1 S R I 1916 1917 - S 30 24 0 - R I 1917 o - Mar 31 24 1 S R I 1918 o - Mar 9 24 1 S R I 1918 o - O 6 24 0 - R I 1919 o - Mar 1 24 1 S R I 1919 o - O 4 24 0 - R I 1920 o - Mar 20 24 1 S R I 1920 o - S 18 24 0 - R I 1940 o - Jun 14 24 1 S R I 1942 o - N 2 2s 0 - R I 1943 o - Mar 29 2s 1 S R I 1943 o - O 4 2s 0 - R I 1944 o - Ap 2 2s 1 S R I 1944 o - S 17 2s 0 - R I 1945 o - Ap 2 2 1 S R I 1945 o - S 15 1 0 - R I 1946 o - Mar 17 2s 1 S R I 1946 o - O 6 2s 0 - R I 1947 o - Mar 16 0s 1 S R I 1947 o - O 5 0s 0 - R I 1948 o - F 29 2s 1 S R I 1948 o - O 3 2s 0 - R I 1966 1968 - May Su>=22 0s 1 S R I 1966 o - S 24 24 0 - R I 1967 1969 - S Su>=22 0s 0 - R I 1969 o - Jun 1 0s 1 S R I 1970 o - May 31 0s 1 S R I 1970 o - S lastSu 0s 0 - R I 1971 1972 - May Su>=22 0s 1 S R I 1971 o - S lastSu 0s 0 - R I 1972 o - O 1 0s 0 - R I 1973 o - Jun 3 0s 1 S R I 1973 1974 - S lastSu 0s 0 - R I 1974 o - May 26 0s 1 S R I 1975 o - Jun 1 0s 1 S R I 1975 1977 - S lastSu 0s 0 - R I 1976 o - May 30 0s 1 S R I 1977 1979 - May Su>=22 0s 1 S R I 1978 o - O 1 0s 0 - R I 1979 o - S 30 0s 0 - Z Europe/Rome 0:49:56 - LMT 1866 D 12 0:49:56 - RMT 1893 O 31 23:49:56 1 I CE%sT 1943 S 10 1 c CE%sT 1944 Jun 4 1 I CE%sT 1980 1 E CE%sT L Europe/Rome Europe/Vatican L Europe/Rome Europe/San_Marino R LV 1989 1996 - Mar lastSu 2s 1 S R LV 1989 1996 - S lastSu 2s 0 - Z Europe/Riga 1:36:34 - LMT 1880 1:36:34 - RMT 1918 Ap 15 2 1:36:34 1 LST 1918 S 16 3 1:36:34 - RMT 1919 Ap 1 2 1:36:34 1 LST 1919 May 22 3 1:36:34 - RMT 1926 May 11 2 - EET 1940 Au 5 3 - MSK 1941 Jul 1 c CE%sT 1944 O 13 3 R MSK/MSD 1989 Mar lastSu 2s 2 1 EEST 1989 S lastSu 2s 2 LV EE%sT 1997 Ja 21 2 E EE%sT 2000 F 29 2 - EET 2001 Ja 2 2 E EE%sT L Europe/Zurich Europe/Vaduz Z Europe/Vilnius 1:41:16 - LMT 1880 1:24 - WMT 1917 1:35:36 - KMT 1919 O 10 1 - CET 1920 Jul 12 2 - EET 1920 O 9 1 - CET 1940 Au 3 3 - MSK 1941 Jun 24 1 c CE%sT 1944 Au 3 R MSK/MSD 1989 Mar 26 2s 2 R EE%sT 1991 S 29 2s 2 c EE%sT 1998 2 - EET 1998 Mar 29 1u 1 E CE%sT 1999 O 31 1u 2 - EET 2003 2 E EE%sT R LX 1916 o - May 14 23 1 S R LX 1916 o - O 1 1 0 - R LX 1917 o - Ap 28 23 1 S R LX 1917 o - S 17 1 0 - R LX 1918 o - Ap M>=15 2s 1 S R LX 1918 o - S M>=15 2s 0 - R LX 1919 o - Mar 1 23 1 S R LX 1919 o - O 5 3 0 - R LX 1920 o - F 14 23 1 S R LX 1920 o - O 24 2 0 - R LX 1921 o - Mar 14 23 1 S R LX 1921 o - O 26 2 0 - R LX 1922 o - Mar 25 23 1 S R LX 1922 o - O Su>=2 1 0 - R LX 1923 o - Ap 21 23 1 S R LX 1923 o - O Su>=2 2 0 - R LX 1924 o - Mar 29 23 1 S R LX 1924 1928 - O Su>=2 1 0 - R LX 1925 o - Ap 5 23 1 S R LX 1926 o - Ap 17 23 1 S R LX 1927 o - Ap 9 23 1 S R LX 1928 o - Ap 14 23 1 S R LX 1929 o - Ap 20 23 1 S Z Europe/Luxembourg 0:24:36 - LMT 1904 Jun 1 LX CE%sT 1918 N 25 0 LX WE%sT 1929 O 6 2s 0 b WE%sT 1940 May 14 3 1 c WE%sT 1944 S 18 3 1 b CE%sT 1977 1 E CE%sT R MT 1973 o - Mar 31 0s 1 S R MT 1973 o - S 29 0s 0 - R MT 1974 o - Ap 21 0s 1 S R MT 1974 o - S 16 0s 0 - R MT 1975 1979 - Ap Su>=15 2 1 S R MT 1975 1980 - S Su>=15 2 0 - R MT 1980 o - Mar 31 2 1 S Z Europe/Malta 0:58:4 - LMT 1893 N 2 0s 1 I CE%sT 1973 Mar 31 1 MT CE%sT 1981 1 E CE%sT R MD 1997 ma - Mar lastSu 2 1 S R MD 1997 ma - O lastSu 3 0 - Z Europe/Chisinau 1:55:20 - LMT 1880 1:55 - CMT 1918 F 15 1:44:24 - BMT 1931 Jul 24 2 z EE%sT 1940 Au 15 2 1 EEST 1941 Jul 17 1 c CE%sT 1944 Au 24 3 R MSK/MSD 1990 May 6 2 2 R EE%sT 1992 2 e EE%sT 1997 2 MD EE%sT Z Europe/Monaco 0:29:32 - LMT 1891 Mar 15 0:9:21 - PMT 1911 Mar 11 0 F WE%sT 1945 S 16 3 1 F CE%sT 1977 1 E CE%sT R N 1916 o - May 1 0 1 NST R N 1916 o - O 1 0 0 AMT R N 1917 o - Ap 16 2s 1 NST R N 1917 o - S 17 2s 0 AMT R N 1918 1921 - Ap M>=1 2s 1 NST R N 1918 1921 - S lastM 2s 0 AMT R N 1922 o - Mar lastSu 2s 1 NST R N 1922 1936 - O Su>=2 2s 0 AMT R N 1923 o - Jun F>=1 2s 1 NST R N 1924 o - Mar lastSu 2s 1 NST R N 1925 o - Jun F>=1 2s 1 NST R N 1926 1931 - May 15 2s 1 NST R N 1932 o - May 22 2s 1 NST R N 1933 1936 - May 15 2s 1 NST R N 1937 o - May 22 2s 1 NST R N 1937 o - Jul 1 0 1 S R N 1937 1939 - O Su>=2 2s 0 - R N 1938 1939 - May 15 2s 1 S R N 1945 o - Ap 2 2s 1 S R N 1945 o - S 16 2s 0 - Z Europe/Amsterdam 0:19:32 - LMT 1835 0:19:32 N %s 1937 Jul 0:20 N +0020/+0120 1940 May 16 1 c CE%sT 1945 Ap 2 2 1 N CE%sT 1977 1 E CE%sT R NO 1916 o - May 22 1 1 S R NO 1916 o - S 30 0 0 - R NO 1945 o - Ap 2 2s 1 S R NO 1945 o - O 1 2s 0 - R NO 1959 1964 - Mar Su>=15 2s 1 S R NO 1959 1965 - S Su>=15 2s 0 - R NO 1965 o - Ap 25 2s 1 S Z Europe/Oslo 0:43 - LMT 1895 1 NO CE%sT 1940 Au 10 23 1 c CE%sT 1945 Ap 2 2 1 NO CE%sT 1980 1 E CE%sT L Europe/Oslo Arctic/Longyearbyen R O 1918 1919 - S 16 2s 0 - R O 1919 o - Ap 15 2s 1 S R O 1944 o - Ap 3 2s 1 S R O 1944 o - O 4 2 0 - R O 1945 o - Ap 29 0 1 S R O 1945 o - N 1 0 0 - R O 1946 o - Ap 14 0s 1 S R O 1946 o - O 7 2s 0 - R O 1947 o - May 4 2s 1 S R O 1947 1949 - O Su>=1 2s 0 - R O 1948 o - Ap 18 2s 1 S R O 1949 o - Ap 10 2s 1 S R O 1957 o - Jun 2 1s 1 S R O 1957 1958 - S lastSu 1s 0 - R O 1958 o - Mar 30 1s 1 S R O 1959 o - May 31 1s 1 S R O 1959 1961 - O Su>=1 1s 0 - R O 1960 o - Ap 3 1s 1 S R O 1961 1964 - May lastSu 1s 1 S R O 1962 1964 - S lastSu 1s 0 - Z Europe/Warsaw 1:24 - LMT 1880 1:24 - WMT 1915 Au 5 1 c CE%sT 1918 S 16 3 2 O EE%sT 1922 Jun 1 O CE%sT 1940 Jun 23 2 1 c CE%sT 1944 O 1 O CE%sT 1977 1 W- CE%sT 1988 1 E CE%sT R p 1916 o - Jun 17 23 1 S R p 1916 o - N 1 1 0 - R p 1917 o - F 28 23s 1 S R p 1917 1921 - O 14 23s 0 - R p 1918 o - Mar 1 23s 1 S R p 1919 o - F 28 23s 1 S R p 1920 o - F 29 23s 1 S R p 1921 o - F 28 23s 1 S R p 1924 o - Ap 16 23s 1 S R p 1924 o - O 14 23s 0 - R p 1926 o - Ap 17 23s 1 S R p 1926 1929 - O Sa>=1 23s 0 - R p 1927 o - Ap 9 23s 1 S R p 1928 o - Ap 14 23s 1 S R p 1929 o - Ap 20 23s 1 S R p 1931 o - Ap 18 23s 1 S R p 1931 1932 - O Sa>=1 23s 0 - R p 1932 o - Ap 2 23s 1 S R p 1934 o - Ap 7 23s 1 S R p 1934 1938 - O Sa>=1 23s 0 - R p 1935 o - Mar 30 23s 1 S R p 1936 o - Ap 18 23s 1 S R p 1937 o - Ap 3 23s 1 S R p 1938 o - Mar 26 23s 1 S R p 1939 o - Ap 15 23s 1 S R p 1939 o - N 18 23s 0 - R p 1940 o - F 24 23s 1 S R p 1940 1941 - O 5 23s 0 - R p 1941 o - Ap 5 23s 1 S R p 1942 1945 - Mar Sa>=8 23s 1 S R p 1942 o - Ap 25 22s 2 M R p 1942 o - Au 15 22s 1 S R p 1942 1945 - O Sa>=24 23s 0 - R p 1943 o - Ap 17 22s 2 M R p 1943 1945 - Au Sa>=25 22s 1 S R p 1944 1945 - Ap Sa>=21 22s 2 M R p 1946 o - Ap Sa>=1 23s 1 S R p 1946 o - O Sa>=1 23s 0 - R p 1947 1949 - Ap Su>=1 2s 1 S R p 1947 1949 - O Su>=1 2s 0 - R p 1951 1965 - Ap Su>=1 2s 1 S R p 1951 1965 - O Su>=1 2s 0 - R p 1977 o - Mar 27 0s 1 S R p 1977 o - S 25 0s 0 - R p 1978 1979 - Ap Su>=1 0s 1 S R p 1978 o - O 1 0s 0 - R p 1979 1982 - S lastSu 1s 0 - R p 1980 o - Mar lastSu 0s 1 S R p 1981 1982 - Mar lastSu 1s 1 S R p 1983 o - Mar lastSu 2s 1 S Z Europe/Lisbon -0:36:45 - LMT 1884 -0:36:45 - LMT 1912 Ja 1 0u 0 p WE%sT 1966 Ap 3 2 1 - CET 1976 S 26 1 0 p WE%sT 1983 S 25 1s 0 W- WE%sT 1992 S 27 1s 1 E CE%sT 1996 Mar 31 1u 0 E WE%sT Z Atlantic/Azores -1:42:40 - LMT 1884 -1:54:32 - HMT 1912 Ja 1 2u -2 p -02/-01 1942 Ap 25 22s -2 p +00 1942 Au 15 22s -2 p -02/-01 1943 Ap 17 22s -2 p +00 1943 Au 28 22s -2 p -02/-01 1944 Ap 22 22s -2 p +00 1944 Au 26 22s -2 p -02/-01 1945 Ap 21 22s -2 p +00 1945 Au 25 22s -2 p -02/-01 1966 Ap 3 2 -1 p -01/+00 1983 S 25 1s -1 W- -01/+00 1992 S 27 1s 0 E WE%sT 1993 Mar 28 1u -1 E -01/+00 Z Atlantic/Madeira -1:7:36 - LMT 1884 -1:7:36 - FMT 1912 Ja 1 1u -1 p -01/+00 1942 Ap 25 22s -1 p +01 1942 Au 15 22s -1 p -01/+00 1943 Ap 17 22s -1 p +01 1943 Au 28 22s -1 p -01/+00 1944 Ap 22 22s -1 p +01 1944 Au 26 22s -1 p -01/+00 1945 Ap 21 22s -1 p +01 1945 Au 25 22s -1 p -01/+00 1966 Ap 3 2 0 p WE%sT 1983 S 25 1s 0 E WE%sT R z 1932 o - May 21 0s 1 S R z 1932 1939 - O Su>=1 0s 0 - R z 1933 1939 - Ap Su>=2 0s 1 S R z 1979 o - May 27 0 1 S R z 1979 o - S lastSu 0 0 - R z 1980 o - Ap 5 23 1 S R z 1980 o - S lastSu 1 0 - R z 1991 1993 - Mar lastSu 0s 1 S R z 1991 1993 - S lastSu 0s 0 - Z Europe/Bucharest 1:44:24 - LMT 1891 O 1:44:24 - BMT 1931 Jul 24 2 z EE%sT 1981 Mar 29 2s 2 c EE%sT 1991 2 z EE%sT 1994 2 e EE%sT 1997 2 E EE%sT Z Europe/Kaliningrad 1:22 - LMT 1893 Ap 1 c CE%sT 1945 Ap 10 2 O EE%sT 1946 Ap 7 3 R MSK/MSD 1989 Mar 26 2s 2 R EE%sT 2011 Mar 27 2s 3 - +03 2014 O 26 2s 2 - EET Z Europe/Moscow 2:30:17 - LMT 1880 2:30:17 - MMT 1916 Jul 3 2:31:19 R %s 1919 Jul 1 0u 3 R %s 1921 O 3 R MSK/MSD 1922 O 2 - EET 1930 Jun 21 3 R MSK/MSD 1991 Mar 31 2s 2 R EE%sT 1992 Ja 19 2s 3 R MSK/MSD 2011 Mar 27 2s 4 - MSK 2014 O 26 2s 3 - MSK Z Europe/Simferopol 2:16:24 - LMT 1880 2:16 - SMT 1924 May 2 2 - EET 1930 Jun 21 3 - MSK 1941 N 1 c CE%sT 1944 Ap 13 3 R MSK/MSD 1990 3 - MSK 1990 Jul 1 2 2 - EET 1992 2 e EE%sT 1994 May 3 e MSK/MSD 1996 Mar 31 0s 3 1 MSD 1996 O 27 3s 3 R MSK/MSD 1997 3 - MSK 1997 Mar lastSu 1u 2 E EE%sT 2014 Mar 30 2 4 - MSK 2014 O 26 2s 3 - MSK Z Europe/Astrakhan 3:12:12 - LMT 1924 May 3 - +03 1930 Jun 21 4 R +04/+05 1989 Mar 26 2s 3 R +03/+04 1991 Mar 31 2s 4 - +04 1992 Mar 29 2s 3 R +03/+04 2011 Mar 27 2s 4 - +04 2014 O 26 2s 3 - +03 2016 Mar 27 2s 4 - +04 Z Europe/Volgograd 2:57:40 - LMT 1920 Ja 3 3 - +03 1930 Jun 21 4 - +04 1961 N 11 4 R +04/+05 1988 Mar 27 2s 3 R +03/+04 1991 Mar 31 2s 4 - +04 1992 Mar 29 2s 3 R +03/+04 2011 Mar 27 2s 4 - +04 2014 O 26 2s 3 - +03 2018 O 28 2s 4 - +04 Z Europe/Saratov 3:4:18 - LMT 1919 Jul 1 0u 3 - +03 1930 Jun 21 4 R +04/+05 1988 Mar 27 2s 3 R +03/+04 1991 Mar 31 2s 4 - +04 1992 Mar 29 2s 3 R +03/+04 2011 Mar 27 2s 4 - +04 2014 O 26 2s 3 - +03 2016 D 4 2s 4 - +04 Z Europe/Kirov 3:18:48 - LMT 1919 Jul 1 0u 3 - +03 1930 Jun 21 4 R +04/+05 1989 Mar 26 2s 3 R +03/+04 1991 Mar 31 2s 4 - +04 1992 Mar 29 2s 3 R +03/+04 2011 Mar 27 2s 4 - +04 2014 O 26 2s 3 - +03 Z Europe/Samara 3:20:20 - LMT 1919 Jul 1 0u 3 - +03 1930 Jun 21 4 - +04 1935 Ja 27 4 R +04/+05 1989 Mar 26 2s 3 R +03/+04 1991 Mar 31 2s 2 R +02/+03 1991 S 29 2s 3 - +03 1991 O 20 3 4 R +04/+05 2010 Mar 28 2s 3 R +03/+04 2011 Mar 27 2s 4 - +04 Z Europe/Ulyanovsk 3:13:36 - LMT 1919 Jul 1 0u 3 - +03 1930 Jun 21 4 R +04/+05 1989 Mar 26 2s 3 R +03/+04 1991 Mar 31 2s 2 R +02/+03 1992 Ja 19 2s 3 R +03/+04 2011 Mar 27 2s 4 - +04 2014 O 26 2s 3 - +03 2016 Mar 27 2s 4 - +04 Z Asia/Yekaterinburg 4:2:33 - LMT 1916 Jul 3 3:45:5 - PMT 1919 Jul 15 4 4 - +04 1930 Jun 21 5 R +05/+06 1991 Mar 31 2s 4 R +04/+05 1992 Ja 19 2s 5 R +05/+06 2011 Mar 27 2s 6 - +06 2014 O 26 2s 5 - +05 Z Asia/Omsk 4:53:30 - LMT 1919 N 14 5 - +05 1930 Jun 21 6 R +06/+07 1991 Mar 31 2s 5 R +05/+06 1992 Ja 19 2s 6 R +06/+07 2011 Mar 27 2s 7 - +07 2014 O 26 2s 6 - +06 Z Asia/Barnaul 5:35 - LMT 1919 D 10 6 - +06 1930 Jun 21 7 R +07/+08 1991 Mar 31 2s 6 R +06/+07 1992 Ja 19 2s 7 R +07/+08 1995 May 28 6 R +06/+07 2011 Mar 27 2s 7 - +07 2014 O 26 2s 6 - +06 2016 Mar 27 2s 7 - +07 Z Asia/Novosibirsk 5:31:40 - LMT 1919 D 14 6 6 - +06 1930 Jun 21 7 R +07/+08 1991 Mar 31 2s 6 R +06/+07 1992 Ja 19 2s 7 R +07/+08 1993 May 23 6 R +06/+07 2011 Mar 27 2s 7 - +07 2014 O 26 2s 6 - +06 2016 Jul 24 2s 7 - +07 Z Asia/Tomsk 5:39:51 - LMT 1919 D 22 6 - +06 1930 Jun 21 7 R +07/+08 1991 Mar 31 2s 6 R +06/+07 1992 Ja 19 2s 7 R +07/+08 2002 May 1 3 6 R +06/+07 2011 Mar 27 2s 7 - +07 2014 O 26 2s 6 - +06 2016 May 29 2s 7 - +07 Z Asia/Novokuznetsk 5:48:48 - LMT 1924 May 6 - +06 1930 Jun 21 7 R +07/+08 1991 Mar 31 2s 6 R +06/+07 1992 Ja 19 2s 7 R +07/+08 2010 Mar 28 2s 6 R +06/+07 2011 Mar 27 2s 7 - +07 Z Asia/Krasnoyarsk 6:11:26 - LMT 1920 Ja 6 6 - +06 1930 Jun 21 7 R +07/+08 1991 Mar 31 2s 6 R +06/+07 1992 Ja 19 2s 7 R +07/+08 2011 Mar 27 2s 8 - +08 2014 O 26 2s 7 - +07 Z Asia/Irkutsk 6:57:5 - LMT 1880 6:57:5 - IMT 1920 Ja 25 7 - +07 1930 Jun 21 8 R +08/+09 1991 Mar 31 2s 7 R +07/+08 1992 Ja 19 2s 8 R +08/+09 2011 Mar 27 2s 9 - +09 2014 O 26 2s 8 - +08 Z Asia/Chita 7:33:52 - LMT 1919 D 15 8 - +08 1930 Jun 21 9 R +09/+10 1991 Mar 31 2s 8 R +08/+09 1992 Ja 19 2s 9 R +09/+10 2011 Mar 27 2s 10 - +10 2014 O 26 2s 8 - +08 2016 Mar 27 2 9 - +09 Z Asia/Yakutsk 8:38:58 - LMT 1919 D 15 8 - +08 1930 Jun 21 9 R +09/+10 1991 Mar 31 2s 8 R +08/+09 1992 Ja 19 2s 9 R +09/+10 2011 Mar 27 2s 10 - +10 2014 O 26 2s 9 - +09 Z Asia/Vladivostok 8:47:31 - LMT 1922 N 15 9 - +09 1930 Jun 21 10 R +10/+11 1991 Mar 31 2s 9 R +09/+10 1992 Ja 19 2s 10 R +10/+11 2011 Mar 27 2s 11 - +11 2014 O 26 2s 10 - +10 Z Asia/Khandyga 9:2:13 - LMT 1919 D 15 8 - +08 1930 Jun 21 9 R +09/+10 1991 Mar 31 2s 8 R +08/+09 1992 Ja 19 2s 9 R +09/+10 2004 10 R +10/+11 2011 Mar 27 2s 11 - +11 2011 S 13 0s 10 - +10 2014 O 26 2s 9 - +09 Z Asia/Sakhalin 9:30:48 - LMT 1905 Au 23 9 - +09 1945 Au 25 11 R +11/+12 1991 Mar 31 2s 10 R +10/+11 1992 Ja 19 2s 11 R +11/+12 1997 Mar lastSu 2s 10 R +10/+11 2011 Mar 27 2s 11 - +11 2014 O 26 2s 10 - +10 2016 Mar 27 2s 11 - +11 Z Asia/Magadan 10:3:12 - LMT 1924 May 2 10 - +10 1930 Jun 21 11 R +11/+12 1991 Mar 31 2s 10 R +10/+11 1992 Ja 19 2s 11 R +11/+12 2011 Mar 27 2s 12 - +12 2014 O 26 2s 10 - +10 2016 Ap 24 2s 11 - +11 Z Asia/Srednekolymsk 10:14:52 - LMT 1924 May 2 10 - +10 1930 Jun 21 11 R +11/+12 1991 Mar 31 2s 10 R +10/+11 1992 Ja 19 2s 11 R +11/+12 2011 Mar 27 2s 12 - +12 2014 O 26 2s 11 - +11 Z Asia/Ust-Nera 9:32:54 - LMT 1919 D 15 8 - +08 1930 Jun 21 9 R +09/+10 1981 Ap 11 R +11/+12 1991 Mar 31 2s 10 R +10/+11 1992 Ja 19 2s 11 R +11/+12 2011 Mar 27 2s 12 - +12 2011 S 13 0s 11 - +11 2014 O 26 2s 10 - +10 Z Asia/Kamchatka 10:34:36 - LMT 1922 N 10 11 - +11 1930 Jun 21 12 R +12/+13 1991 Mar 31 2s 11 R +11/+12 1992 Ja 19 2s 12 R +12/+13 2010 Mar 28 2s 11 R +11/+12 2011 Mar 27 2s 12 - +12 Z Asia/Anadyr 11:49:56 - LMT 1924 May 2 12 - +12 1930 Jun 21 13 R +13/+14 1982 Ap 1 0s 12 R +12/+13 1991 Mar 31 2s 11 R +11/+12 1992 Ja 19 2s 12 R +12/+13 2010 Mar 28 2s 11 R +11/+12 2011 Mar 27 2s 12 - +12 Z Europe/Belgrade 1:22 - LMT 1884 1 - CET 1941 Ap 18 23 1 c CE%sT 1945 1 - CET 1945 May 8 2s 1 1 CEST 1945 S 16 2s 1 - CET 1982 N 27 1 E CE%sT L Europe/Belgrade Europe/Ljubljana L Europe/Belgrade Europe/Podgorica L Europe/Belgrade Europe/Sarajevo L Europe/Belgrade Europe/Skopje L Europe/Belgrade Europe/Zagreb L Europe/Prague Europe/Bratislava R s 1918 o - Ap 15 23 1 S R s 1918 1919 - O 6 24s 0 - R s 1919 o - Ap 6 23 1 S R s 1924 o - Ap 16 23 1 S R s 1924 o - O 4 24s 0 - R s 1926 o - Ap 17 23 1 S R s 1926 1929 - O Sa>=1 24s 0 - R s 1927 o - Ap 9 23 1 S R s 1928 o - Ap 15 0 1 S R s 1929 o - Ap 20 23 1 S R s 1937 o - Jun 16 23 1 S R s 1937 o - O 2 24s 0 - R s 1938 o - Ap 2 23 1 S R s 1938 o - Ap 30 23 2 M R s 1938 o - O 2 24 1 S R s 1939 o - O 7 24s 0 - R s 1942 o - May 2 23 1 S R s 1942 o - S 1 1 0 - R s 1943 1946 - Ap Sa>=13 23 1 S R s 1943 1944 - O Su>=1 1 0 - R s 1945 1946 - S lastSu 1 0 - R s 1949 o - Ap 30 23 1 S R s 1949 o - O 2 1 0 - R s 1974 1975 - Ap Sa>=12 23 1 S R s 1974 1975 - O Su>=1 1 0 - R s 1976 o - Mar 27 23 1 S R s 1976 1977 - S lastSu 1 0 - R s 1977 o - Ap 2 23 1 S R s 1978 o - Ap 2 2s 1 S R s 1978 o - O 1 2s 0 - R Sp 1967 o - Jun 3 12 1 S R Sp 1967 o - O 1 0 0 - R Sp 1974 o - Jun 24 0 1 S R Sp 1974 o - S 1 0 0 - R Sp 1976 1977 - May 1 0 1 S R Sp 1976 o - Au 1 0 0 - R Sp 1977 o - S 28 0 0 - R Sp 1978 o - Jun 1 0 1 S R Sp 1978 o - Au 4 0 0 - Z Europe/Madrid -0:14:44 - LMT 1900 D 31 23:45:16 0 s WE%sT 1940 Mar 16 23 1 s CE%sT 1979 1 E CE%sT Z Africa/Ceuta -0:21:16 - LMT 1900 D 31 23:38:44 0 - WET 1918 May 6 23 0 1 WEST 1918 O 7 23 0 - WET 1924 0 s WE%sT 1929 0 - WET 1967 0 Sp WE%sT 1984 Mar 16 1 - CET 1986 1 E CE%sT Z Atlantic/Canary -1:1:36 - LMT 1922 Mar -1 - -01 1946 S 30 1 0 - WET 1980 Ap 6 0s 0 1 WEST 1980 S 28 1u 0 E WE%sT Z Europe/Stockholm 1:12:12 - LMT 1879 1:0:14 - SET 1900 1 - CET 1916 May 14 23 1 1 CEST 1916 O 1 1 1 - CET 1980 1 E CE%sT R CH 1941 1942 - May M>=1 1 1 S R CH 1941 1942 - O M>=1 2 0 - Z Europe/Zurich 0:34:8 - LMT 1853 Jul 16 0:29:46 - BMT 1894 Jun 1 CH CE%sT 1981 1 E CE%sT R T 1916 o - May 1 0 1 S R T 1916 o - O 1 0 0 - R T 1920 o - Mar 28 0 1 S R T 1920 o - O 25 0 0 - R T 1921 o - Ap 3 0 1 S R T 1921 o - O 3 0 0 - R T 1922 o - Mar 26 0 1 S R T 1922 o - O 8 0 0 - R T 1924 o - May 13 0 1 S R T 1924 1925 - O 1 0 0 - R T 1925 o - May 1 0 1 S R T 1940 o - Jul 1 0 1 S R T 1940 o - O 6 0 0 - R T 1940 o - D 1 0 1 S R T 1941 o - S 21 0 0 - R T 1942 o - Ap 1 0 1 S R T 1945 o - O 8 0 0 - R T 1946 o - Jun 1 0 1 S R T 1946 o - O 1 0 0 - R T 1947 1948 - Ap Su>=16 0 1 S R T 1947 1951 - O Su>=2 0 0 - R T 1949 o - Ap 10 0 1 S R T 1950 o - Ap 16 0 1 S R T 1951 o - Ap 22 0 1 S R T 1962 o - Jul 15 0 1 S R T 1963 o - O 30 0 0 - R T 1964 o - May 15 0 1 S R T 1964 o - O 1 0 0 - R T 1973 o - Jun 3 1 1 S R T 1973 1976 - O Su>=31 2 0 - R T 1974 o - Mar 31 2 1 S R T 1975 o - Mar 22 2 1 S R T 1976 o - Mar 21 2 1 S R T 1977 1978 - Ap Su>=1 2 1 S R T 1977 1978 - O Su>=15 2 0 - R T 1978 o - Jun 29 0 0 - R T 1983 o - Jul 31 2 1 S R T 1983 o - O 2 2 0 - R T 1985 o - Ap 20 1s 1 S R T 1985 o - S 28 1s 0 - R T 1986 1993 - Mar lastSu 1s 1 S R T 1986 1995 - S lastSu 1s 0 - R T 1994 o - Mar 20 1s 1 S R T 1995 2006 - Mar lastSu 1s 1 S R T 1996 2006 - O lastSu 1s 0 - Z Europe/Istanbul 1:55:52 - LMT 1880 1:56:56 - IMT 1910 O 2 T EE%sT 1978 Jun 29 3 T +03/+04 1984 N 1 2 2 T EE%sT 2007 2 E EE%sT 2011 Mar 27 1u 2 - EET 2011 Mar 28 1u 2 E EE%sT 2014 Mar 30 1u 2 - EET 2014 Mar 31 1u 2 E EE%sT 2015 O 25 1u 2 1 EEST 2015 N 8 1u 2 E EE%sT 2016 S 7 3 - +03 L Europe/Istanbul Asia/Istanbul Z Europe/Kiev 2:2:4 - LMT 1880 2:2:4 - KMT 1924 May 2 2 - EET 1930 Jun 21 3 - MSK 1941 S 20 1 c CE%sT 1943 N 6 3 R MSK/MSD 1990 Jul 1 2 2 1 EEST 1991 S 29 3 2 e EE%sT 1995 2 E EE%sT Z Europe/Uzhgorod 1:29:12 - LMT 1890 O 1 - CET 1940 1 c CE%sT 1944 O 1 1 CEST 1944 O 26 1 - CET 1945 Jun 29 3 R MSK/MSD 1990 3 - MSK 1990 Jul 1 2 1 - CET 1991 Mar 31 3 2 - EET 1992 2 e EE%sT 1995 2 E EE%sT Z Europe/Zaporozhye 2:20:40 - LMT 1880 2:20 - +0220 1924 May 2 2 - EET 1930 Jun 21 3 - MSK 1941 Au 25 1 c CE%sT 1943 O 25 3 R MSK/MSD 1991 Mar 31 2 2 e EE%sT 1995 2 E EE%sT R u 1918 1919 - Mar lastSu 2 1 D R u 1918 1919 - O lastSu 2 0 S R u 1942 o - F 9 2 1 W R u 1945 o - Au 14 23u 1 P R u 1945 o - S 30 2 0 S R u 1967 2006 - O lastSu 2 0 S R u 1967 1973 - Ap lastSu 2 1 D R u 1974 o - Ja 6 2 1 D R u 1975 o - F lastSu 2 1 D R u 1976 1986 - Ap lastSu 2 1 D R u 1987 2006 - Ap Su>=1 2 1 D R u 2007 ma - Mar Su>=8 2 1 D R u 2007 ma - N Su>=1 2 0 S Z EST -5 - EST Z MST -7 - MST Z HST -10 - HST Z EST5EDT -5 u E%sT Z CST6CDT -6 u C%sT Z MST7MDT -7 u M%sT Z PST8PDT -8 u P%sT R NY 1920 o - Mar lastSu 2 1 D R NY 1920 o - O lastSu 2 0 S R NY 1921 1966 - Ap lastSu 2 1 D R NY 1921 1954 - S lastSu 2 0 S R NY 1955 1966 - O lastSu 2 0 S Z America/New_York -4:56:2 - LMT 1883 N 18 12:3:58 -5 u E%sT 1920 -5 NY E%sT 1942 -5 u E%sT 1946 -5 NY E%sT 1967 -5 u E%sT R Ch 1920 o - Jun 13 2 1 D R Ch 1920 1921 - O lastSu 2 0 S R Ch 1921 o - Mar lastSu 2 1 D R Ch 1922 1966 - Ap lastSu 2 1 D R Ch 1922 1954 - S lastSu 2 0 S R Ch 1955 1966 - O lastSu 2 0 S Z America/Chicago -5:50:36 - LMT 1883 N 18 12:9:24 -6 u C%sT 1920 -6 Ch C%sT 1936 Mar 1 2 -5 - EST 1936 N 15 2 -6 Ch C%sT 1942 -6 u C%sT 1946 -6 Ch C%sT 1967 -6 u C%sT Z America/North_Dakota/Center -6:45:12 - LMT 1883 N 18 12:14:48 -7 u M%sT 1992 O 25 2 -6 u C%sT Z America/North_Dakota/New_Salem -6:45:39 - LMT 1883 N 18 12:14:21 -7 u M%sT 2003 O 26 2 -6 u C%sT Z America/North_Dakota/Beulah -6:47:7 - LMT 1883 N 18 12:12:53 -7 u M%sT 2010 N 7 2 -6 u C%sT R De 1920 1921 - Mar lastSu 2 1 D R De 1920 o - O lastSu 2 0 S R De 1921 o - May 22 2 0 S R De 1965 1966 - Ap lastSu 2 1 D R De 1965 1966 - O lastSu 2 0 S Z America/Denver -6:59:56 - LMT 1883 N 18 12:0:4 -7 u M%sT 1920 -7 De M%sT 1942 -7 u M%sT 1946 -7 De M%sT 1967 -7 u M%sT R CA 1948 o - Mar 14 2:1 1 D R CA 1949 o - Ja 1 2 0 S R CA 1950 1966 - Ap lastSu 1 1 D R CA 1950 1961 - S lastSu 2 0 S R CA 1962 1966 - O lastSu 2 0 S Z America/Los_Angeles -7:52:58 - LMT 1883 N 18 12:7:2 -8 u P%sT 1946 -8 CA P%sT 1967 -8 u P%sT Z America/Juneau 15:2:19 - LMT 1867 O 19 15:33:32 -8:57:41 - LMT 1900 Au 20 12 -8 - PST 1942 -8 u P%sT 1946 -8 - PST 1969 -8 u P%sT 1980 Ap 27 2 -9 u Y%sT 1980 O 26 2 -8 u P%sT 1983 O 30 2 -9 u Y%sT 1983 N 30 -9 u AK%sT Z America/Sitka 14:58:47 - LMT 1867 O 19 15:30 -9:1:13 - LMT 1900 Au 20 12 -8 - PST 1942 -8 u P%sT 1946 -8 - PST 1969 -8 u P%sT 1983 O 30 2 -9 u Y%sT 1983 N 30 -9 u AK%sT Z America/Metlakatla 15:13:42 - LMT 1867 O 19 15:44:55 -8:46:18 - LMT 1900 Au 20 12 -8 - PST 1942 -8 u P%sT 1946 -8 - PST 1969 -8 u P%sT 1983 O 30 2 -8 - PST 2015 N 1 2 -9 u AK%sT 2018 N 4 2 -8 - PST 2019 Ja 20 2 -9 u AK%sT Z America/Yakutat 14:41:5 - LMT 1867 O 19 15:12:18 -9:18:55 - LMT 1900 Au 20 12 -9 - YST 1942 -9 u Y%sT 1946 -9 - YST 1969 -9 u Y%sT 1983 N 30 -9 u AK%sT Z America/Anchorage 14:0:24 - LMT 1867 O 19 14:31:37 -9:59:36 - LMT 1900 Au 20 12 -10 - AST 1942 -10 u A%sT 1967 Ap -10 - AHST 1969 -10 u AH%sT 1983 O 30 2 -9 u Y%sT 1983 N 30 -9 u AK%sT Z America/Nome 12:58:22 - LMT 1867 O 19 13:29:35 -11:1:38 - LMT 1900 Au 20 12 -11 - NST 1942 -11 u N%sT 1946 -11 - NST 1967 Ap -11 - BST 1969 -11 u B%sT 1983 O 30 2 -9 u Y%sT 1983 N 30 -9 u AK%sT Z America/Adak 12:13:22 - LMT 1867 O 19 12:44:35 -11:46:38 - LMT 1900 Au 20 12 -11 - NST 1942 -11 u N%sT 1946 -11 - NST 1967 Ap -11 - BST 1969 -11 u B%sT 1983 O 30 2 -10 u AH%sT 1983 N 30 -10 u H%sT Z Pacific/Honolulu -10:31:26 - LMT 1896 Ja 13 12 -10:30 - HST 1933 Ap 30 2 -10:30 1 HDT 1933 May 21 12 -10:30 u H%sT 1947 Jun 8 2 -10 - HST Z America/Phoenix -7:28:18 - LMT 1883 N 18 11:31:42 -7 u M%sT 1944 Ja 1 0:1 -7 - MST 1944 Ap 1 0:1 -7 u M%sT 1944 O 1 0:1 -7 - MST 1967 -7 u M%sT 1968 Mar 21 -7 - MST Z America/Boise -7:44:49 - LMT 1883 N 18 12:15:11 -8 u P%sT 1923 May 13 2 -7 u M%sT 1974 -7 - MST 1974 F 3 2 -7 u M%sT R In 1941 o - Jun 22 2 1 D R In 1941 1954 - S lastSu 2 0 S R In 1946 1954 - Ap lastSu 2 1 D Z America/Indiana/Indianapolis -5:44:38 - LMT 1883 N 18 12:15:22 -6 u C%sT 1920 -6 In C%sT 1942 -6 u C%sT 1946 -6 In C%sT 1955 Ap 24 2 -5 - EST 1957 S 29 2 -6 - CST 1958 Ap 27 2 -5 - EST 1969 -5 u E%sT 1971 -5 - EST 2006 -5 u E%sT R Ma 1951 o - Ap lastSu 2 1 D R Ma 1951 o - S lastSu 2 0 S R Ma 1954 1960 - Ap lastSu 2 1 D R Ma 1954 1960 - S lastSu 2 0 S Z America/Indiana/Marengo -5:45:23 - LMT 1883 N 18 12:14:37 -6 u C%sT 1951 -6 Ma C%sT 1961 Ap 30 2 -5 - EST 1969 -5 u E%sT 1974 Ja 6 2 -6 1 CDT 1974 O 27 2 -5 u E%sT 1976 -5 - EST 2006 -5 u E%sT R V 1946 o - Ap lastSu 2 1 D R V 1946 o - S lastSu 2 0 S R V 1953 1954 - Ap lastSu 2 1 D R V 1953 1959 - S lastSu 2 0 S R V 1955 o - May 1 0 1 D R V 1956 1963 - Ap lastSu 2 1 D R V 1960 o - O lastSu 2 0 S R V 1961 o - S lastSu 2 0 S R V 1962 1963 - O lastSu 2 0 S Z America/Indiana/Vincennes -5:50:7 - LMT 1883 N 18 12:9:53 -6 u C%sT 1946 -6 V C%sT 1964 Ap 26 2 -5 - EST 1969 -5 u E%sT 1971 -5 - EST 2006 Ap 2 2 -6 u C%sT 2007 N 4 2 -5 u E%sT R Pe 1955 o - May 1 0 1 D R Pe 1955 1960 - S lastSu 2 0 S R Pe 1956 1963 - Ap lastSu 2 1 D R Pe 1961 1963 - O lastSu 2 0 S Z America/Indiana/Tell_City -5:47:3 - LMT 1883 N 18 12:12:57 -6 u C%sT 1946 -6 Pe C%sT 1964 Ap 26 2 -5 - EST 1967 O 29 2 -6 u C%sT 1969 Ap 27 2 -5 u E%sT 1971 -5 - EST 2006 Ap 2 2 -6 u C%sT R Pi 1955 o - May 1 0 1 D R Pi 1955 1960 - S lastSu 2 0 S R Pi 1956 1964 - Ap lastSu 2 1 D R Pi 1961 1964 - O lastSu 2 0 S Z America/Indiana/Petersburg -5:49:7 - LMT 1883 N 18 12:10:53 -6 u C%sT 1955 -6 Pi C%sT 1965 Ap 25 2 -5 - EST 1966 O 30 2 -6 u C%sT 1977 O 30 2 -5 - EST 2006 Ap 2 2 -6 u C%sT 2007 N 4 2 -5 u E%sT R St 1947 1961 - Ap lastSu 2 1 D R St 1947 1954 - S lastSu 2 0 S R St 1955 1956 - O lastSu 2 0 S R St 1957 1958 - S lastSu 2 0 S R St 1959 1961 - O lastSu 2 0 S Z America/Indiana/Knox -5:46:30 - LMT 1883 N 18 12:13:30 -6 u C%sT 1947 -6 St C%sT 1962 Ap 29 2 -5 - EST 1963 O 27 2 -6 u C%sT 1991 O 27 2 -5 - EST 2006 Ap 2 2 -6 u C%sT R Pu 1946 1960 - Ap lastSu 2 1 D R Pu 1946 1954 - S lastSu 2 0 S R Pu 1955 1956 - O lastSu 2 0 S R Pu 1957 1960 - S lastSu 2 0 S Z America/Indiana/Winamac -5:46:25 - LMT 1883 N 18 12:13:35 -6 u C%sT 1946 -6 Pu C%sT 1961 Ap 30 2 -5 - EST 1969 -5 u E%sT 1971 -5 - EST 2006 Ap 2 2 -6 u C%sT 2007 Mar 11 2 -5 u E%sT Z America/Indiana/Vevay -5:40:16 - LMT 1883 N 18 12:19:44 -6 u C%sT 1954 Ap 25 2 -5 - EST 1969 -5 u E%sT 1973 -5 - EST 2006 -5 u E%sT R v 1921 o - May 1 2 1 D R v 1921 o - S 1 2 0 S R v 1941 o - Ap lastSu 2 1 D R v 1941 o - S lastSu 2 0 S R v 1946 o - Ap lastSu 0:1 1 D R v 1946 o - Jun 2 2 0 S R v 1950 1961 - Ap lastSu 2 1 D R v 1950 1955 - S lastSu 2 0 S R v 1956 1961 - O lastSu 2 0 S Z America/Kentucky/Louisville -5:43:2 - LMT 1883 N 18 12:16:58 -6 u C%sT 1921 -6 v C%sT 1942 -6 u C%sT 1946 -6 v C%sT 1961 Jul 23 2 -5 - EST 1968 -5 u E%sT 1974 Ja 6 2 -6 1 CDT 1974 O 27 2 -5 u E%sT Z America/Kentucky/Monticello -5:39:24 - LMT 1883 N 18 12:20:36 -6 u C%sT 1946 -6 - CST 1968 -6 u C%sT 2000 O 29 2 -5 u E%sT R Dt 1948 o - Ap lastSu 2 1 D R Dt 1948 o - S lastSu 2 0 S Z America/Detroit -5:32:11 - LMT 1905 -6 - CST 1915 May 15 2 -5 - EST 1942 -5 u E%sT 1946 -5 Dt E%sT 1967 Jun 14 0:1 -5 u E%sT 1969 -5 - EST 1973 -5 u E%sT 1975 -5 - EST 1975 Ap 27 2 -5 u E%sT R Me 1946 o - Ap lastSu 2 1 D R Me 1946 o - S lastSu 2 0 S R Me 1966 o - Ap lastSu 2 1 D R Me 1966 o - O lastSu 2 0 S Z America/Menominee -5:50:27 - LMT 1885 S 18 12 -6 u C%sT 1946 -6 Me C%sT 1969 Ap 27 2 -5 - EST 1973 Ap 29 2 -6 u C%sT R C 1918 o - Ap 14 2 1 D R C 1918 o - O 27 2 0 S R C 1942 o - F 9 2 1 W R C 1945 o - Au 14 23u 1 P R C 1945 o - S 30 2 0 S R C 1974 1986 - Ap lastSu 2 1 D R C 1974 2006 - O lastSu 2 0 S R C 1987 2006 - Ap Su>=1 2 1 D R C 2007 ma - Mar Su>=8 2 1 D R C 2007 ma - N Su>=1 2 0 S R j 1917 o - Ap 8 2 1 D R j 1917 o - S 17 2 0 S R j 1919 o - May 5 23 1 D R j 1919 o - Au 12 23 0 S R j 1920 1935 - May Su>=1 23 1 D R j 1920 1935 - O lastSu 23 0 S R j 1936 1941 - May M>=9 0 1 D R j 1936 1941 - O M>=2 0 0 S R j 1946 1950 - May Su>=8 2 1 D R j 1946 1950 - O Su>=2 2 0 S R j 1951 1986 - Ap lastSu 2 1 D R j 1951 1959 - S lastSu 2 0 S R j 1960 1986 - O lastSu 2 0 S R j 1987 o - Ap Su>=1 0:1 1 D R j 1987 2006 - O lastSu 0:1 0 S R j 1988 o - Ap Su>=1 0:1 2 DD R j 1989 2006 - Ap Su>=1 0:1 1 D R j 2007 2011 - Mar Su>=8 0:1 1 D R j 2007 2010 - N Su>=1 0:1 0 S Z America/St_Johns -3:30:52 - LMT 1884 -3:30:52 j N%sT 1918 -3:30:52 C N%sT 1919 -3:30:52 j N%sT 1935 Mar 30 -3:30 j N%sT 1942 May 11 -3:30 C N%sT 1946 -3:30 j N%sT 2011 N -3:30 C N%sT Z America/Goose_Bay -4:1:40 - LMT 1884 -3:30:52 - NST 1918 -3:30:52 C N%sT 1919 -3:30:52 - NST 1935 Mar 30 -3:30 - NST 1936 -3:30 j N%sT 1942 May 11 -3:30 C N%sT 1946 -3:30 j N%sT 1966 Mar 15 2 -4 j A%sT 2011 N -4 C A%sT R H 1916 o - Ap 1 0 1 D R H 1916 o - O 1 0 0 S R H 1920 o - May 9 0 1 D R H 1920 o - Au 29 0 0 S R H 1921 o - May 6 0 1 D R H 1921 1922 - S 5 0 0 S R H 1922 o - Ap 30 0 1 D R H 1923 1925 - May Su>=1 0 1 D R H 1923 o - S 4 0 0 S R H 1924 o - S 15 0 0 S R H 1925 o - S 28 0 0 S R H 1926 o - May 16 0 1 D R H 1926 o - S 13 0 0 S R H 1927 o - May 1 0 1 D R H 1927 o - S 26 0 0 S R H 1928 1931 - May Su>=8 0 1 D R H 1928 o - S 9 0 0 S R H 1929 o - S 3 0 0 S R H 1930 o - S 15 0 0 S R H 1931 1932 - S M>=24 0 0 S R H 1932 o - May 1 0 1 D R H 1933 o - Ap 30 0 1 D R H 1933 o - O 2 0 0 S R H 1934 o - May 20 0 1 D R H 1934 o - S 16 0 0 S R H 1935 o - Jun 2 0 1 D R H 1935 o - S 30 0 0 S R H 1936 o - Jun 1 0 1 D R H 1936 o - S 14 0 0 S R H 1937 1938 - May Su>=1 0 1 D R H 1937 1941 - S M>=24 0 0 S R H 1939 o - May 28 0 1 D R H 1940 1941 - May Su>=1 0 1 D R H 1946 1949 - Ap lastSu 2 1 D R H 1946 1949 - S lastSu 2 0 S R H 1951 1954 - Ap lastSu 2 1 D R H 1951 1954 - S lastSu 2 0 S R H 1956 1959 - Ap lastSu 2 1 D R H 1956 1959 - S lastSu 2 0 S R H 1962 1973 - Ap lastSu 2 1 D R H 1962 1973 - O lastSu 2 0 S Z America/Halifax -4:14:24 - LMT 1902 Jun 15 -4 H A%sT 1918 -4 C A%sT 1919 -4 H A%sT 1942 F 9 2s -4 C A%sT 1946 -4 H A%sT 1974 -4 C A%sT Z America/Glace_Bay -3:59:48 - LMT 1902 Jun 15 -4 C A%sT 1953 -4 H A%sT 1954 -4 - AST 1972 -4 H A%sT 1974 -4 C A%sT R o 1933 1935 - Jun Su>=8 1 1 D R o 1933 1935 - S Su>=8 1 0 S R o 1936 1938 - Jun Su>=1 1 1 D R o 1936 1938 - S Su>=1 1 0 S R o 1939 o - May 27 1 1 D R o 1939 1941 - S Sa>=21 1 0 S R o 1940 o - May 19 1 1 D R o 1941 o - May 4 1 1 D R o 1946 1972 - Ap lastSu 2 1 D R o 1946 1956 - S lastSu 2 0 S R o 1957 1972 - O lastSu 2 0 S R o 1993 2006 - Ap Su>=1 0:1 1 D R o 1993 2006 - O lastSu 0:1 0 S Z America/Moncton -4:19:8 - LMT 1883 D 9 -5 - EST 1902 Jun 15 -4 C A%sT 1933 -4 o A%sT 1942 -4 C A%sT 1946 -4 o A%sT 1973 -4 C A%sT 1993 -4 o A%sT 2007 -4 C A%sT Z America/Blanc-Sablon -3:48:28 - LMT 1884 -4 C A%sT 1970 -4 - AST R t 1919 o - Mar 30 23:30 1 D R t 1919 o - O 26 0 0 S R t 1920 o - May 2 2 1 D R t 1920 o - S 26 0 0 S R t 1921 o - May 15 2 1 D R t 1921 o - S 15 2 0 S R t 1922 1923 - May Su>=8 2 1 D R t 1922 1926 - S Su>=15 2 0 S R t 1924 1927 - May Su>=1 2 1 D R t 1927 1937 - S Su>=25 2 0 S R t 1928 1937 - Ap Su>=25 2 1 D R t 1938 1940 - Ap lastSu 2 1 D R t 1938 1939 - S lastSu 2 0 S R t 1945 1946 - S lastSu 2 0 S R t 1946 o - Ap lastSu 2 1 D R t 1947 1949 - Ap lastSu 0 1 D R t 1947 1948 - S lastSu 0 0 S R t 1949 o - N lastSu 0 0 S R t 1950 1973 - Ap lastSu 2 1 D R t 1950 o - N lastSu 2 0 S R t 1951 1956 - S lastSu 2 0 S R t 1957 1973 - O lastSu 2 0 S Z America/Toronto -5:17:32 - LMT 1895 -5 C E%sT 1919 -5 t E%sT 1942 F 9 2s -5 C E%sT 1946 -5 t E%sT 1974 -5 C E%sT Z America/Thunder_Bay -5:57 - LMT 1895 -6 - CST 1910 -5 - EST 1942 -5 C E%sT 1970 -5 t E%sT 1973 -5 - EST 1974 -5 C E%sT Z America/Nipigon -5:53:4 - LMT 1895 -5 C E%sT 1940 S 29 -5 1 EDT 1942 F 9 2s -5 C E%sT Z America/Rainy_River -6:18:16 - LMT 1895 -6 C C%sT 1940 S 29 -6 1 CDT 1942 F 9 2s -6 C C%sT Z America/Atikokan -6:6:28 - LMT 1895 -6 C C%sT 1940 S 29 -6 1 CDT 1942 F 9 2s -6 C C%sT 1945 S 30 2 -5 - EST R W 1916 o - Ap 23 0 1 D R W 1916 o - S 17 0 0 S R W 1918 o - Ap 14 2 1 D R W 1918 o - O 27 2 0 S R W 1937 o - May 16 2 1 D R W 1937 o - S 26 2 0 S R W 1942 o - F 9 2 1 W R W 1945 o - Au 14 23u 1 P R W 1945 o - S lastSu 2 0 S R W 1946 o - May 12 2 1 D R W 1946 o - O 13 2 0 S R W 1947 1949 - Ap lastSu 2 1 D R W 1947 1949 - S lastSu 2 0 S R W 1950 o - May 1 2 1 D R W 1950 o - S 30 2 0 S R W 1951 1960 - Ap lastSu 2 1 D R W 1951 1958 - S lastSu 2 0 S R W 1959 o - O lastSu 2 0 S R W 1960 o - S lastSu 2 0 S R W 1963 o - Ap lastSu 2 1 D R W 1963 o - S 22 2 0 S R W 1966 1986 - Ap lastSu 2s 1 D R W 1966 2005 - O lastSu 2s 0 S R W 1987 2005 - Ap Su>=1 2s 1 D Z America/Winnipeg -6:28:36 - LMT 1887 Jul 16 -6 W C%sT 2006 -6 C C%sT R r 1918 o - Ap 14 2 1 D R r 1918 o - O 27 2 0 S R r 1930 1934 - May Su>=1 0 1 D R r 1930 1934 - O Su>=1 0 0 S R r 1937 1941 - Ap Su>=8 0 1 D R r 1937 o - O Su>=8 0 0 S R r 1938 o - O Su>=1 0 0 S R r 1939 1941 - O Su>=8 0 0 S R r 1942 o - F 9 2 1 W R r 1945 o - Au 14 23u 1 P R r 1945 o - S lastSu 2 0 S R r 1946 o - Ap Su>=8 2 1 D R r 1946 o - O Su>=8 2 0 S R r 1947 1957 - Ap lastSu 2 1 D R r 1947 1957 - S lastSu 2 0 S R r 1959 o - Ap lastSu 2 1 D R r 1959 o - O lastSu 2 0 S R Sw 1957 o - Ap lastSu 2 1 D R Sw 1957 o - O lastSu 2 0 S R Sw 1959 1961 - Ap lastSu 2 1 D R Sw 1959 o - O lastSu 2 0 S R Sw 1960 1961 - S lastSu 2 0 S Z America/Regina -6:58:36 - LMT 1905 S -7 r M%sT 1960 Ap lastSu 2 -6 - CST Z America/Swift_Current -7:11:20 - LMT 1905 S -7 C M%sT 1946 Ap lastSu 2 -7 r M%sT 1950 -7 Sw M%sT 1972 Ap lastSu 2 -6 - CST R Ed 1918 1919 - Ap Su>=8 2 1 D R Ed 1918 o - O 27 2 0 S R Ed 1919 o - May 27 2 0 S R Ed 1920 1923 - Ap lastSu 2 1 D R Ed 1920 o - O lastSu 2 0 S R Ed 1921 1923 - S lastSu 2 0 S R Ed 1942 o - F 9 2 1 W R Ed 1945 o - Au 14 23u 1 P R Ed 1945 o - S lastSu 2 0 S R Ed 1947 o - Ap lastSu 2 1 D R Ed 1947 o - S lastSu 2 0 S R Ed 1972 1986 - Ap lastSu 2 1 D R Ed 1972 2006 - O lastSu 2 0 S Z America/Edmonton -7:33:52 - LMT 1906 S -7 Ed M%sT 1987 -7 C M%sT R Va 1918 o - Ap 14 2 1 D R Va 1918 o - O 27 2 0 S R Va 1942 o - F 9 2 1 W R Va 1945 o - Au 14 23u 1 P R Va 1945 o - S 30 2 0 S R Va 1946 1986 - Ap lastSu 2 1 D R Va 1946 o - S 29 2 0 S R Va 1947 1961 - S lastSu 2 0 S R Va 1962 2006 - O lastSu 2 0 S Z America/Vancouver -8:12:28 - LMT 1884 -8 Va P%sT 1987 -8 C P%sT Z America/Dawson_Creek -8:0:56 - LMT 1884 -8 C P%sT 1947 -8 Va P%sT 1972 Au 30 2 -7 - MST Z America/Fort_Nelson -8:10:47 - LMT 1884 -8 Va P%sT 1946 -8 - PST 1947 -8 Va P%sT 1987 -8 C P%sT 2015 Mar 8 2 -7 - MST Z America/Creston -7:46:4 - LMT 1884 -7 - MST 1916 O -8 - PST 1918 Jun 2 -7 - MST R Y 1918 o - Ap 14 2 1 D R Y 1918 o - O 27 2 0 S R Y 1919 o - May 25 2 1 D R Y 1919 o - N 1 0 0 S R Y 1942 o - F 9 2 1 W R Y 1945 o - Au 14 23u 1 P R Y 1945 o - S 30 2 0 S R Y 1965 o - Ap lastSu 0 2 DD R Y 1965 o - O lastSu 2 0 S R Y 1980 1986 - Ap lastSu 2 1 D R Y 1980 2006 - O lastSu 2 0 S R Y 1987 2006 - Ap Su>=1 2 1 D Z America/Pangnirtung 0 - -00 1921 -4 Y A%sT 1995 Ap Su>=1 2 -5 C E%sT 1999 O 31 2 -6 C C%sT 2000 O 29 2 -5 C E%sT Z America/Iqaluit 0 - -00 1942 Au -5 Y E%sT 1999 O 31 2 -6 C C%sT 2000 O 29 2 -5 C E%sT Z America/Resolute 0 - -00 1947 Au 31 -6 Y C%sT 2000 O 29 2 -5 - EST 2001 Ap 1 3 -6 C C%sT 2006 O 29 2 -5 - EST 2007 Mar 11 3 -6 C C%sT Z America/Rankin_Inlet 0 - -00 1957 -6 Y C%sT 2000 O 29 2 -5 - EST 2001 Ap 1 3 -6 C C%sT Z America/Cambridge_Bay 0 - -00 1920 -7 Y M%sT 1999 O 31 2 -6 C C%sT 2000 O 29 2 -5 - EST 2000 N 5 -6 - CST 2001 Ap 1 3 -7 C M%sT Z America/Yellowknife 0 - -00 1935 -7 Y M%sT 1980 -7 C M%sT Z America/Inuvik 0 - -00 1953 -8 Y P%sT 1979 Ap lastSu 2 -7 Y M%sT 1980 -7 C M%sT Z America/Whitehorse -9:0:12 - LMT 1900 Au 20 -9 Y Y%sT 1967 May 28 -8 Y P%sT 1980 -8 C P%sT Z America/Dawson -9:17:40 - LMT 1900 Au 20 -9 Y Y%sT 1973 O 28 -8 Y P%sT 1980 -8 C P%sT R m 1939 o - F 5 0 1 D R m 1939 o - Jun 25 0 0 S R m 1940 o - D 9 0 1 D R m 1941 o - Ap 1 0 0 S R m 1943 o - D 16 0 1 W R m 1944 o - May 1 0 0 S R m 1950 o - F 12 0 1 D R m 1950 o - Jul 30 0 0 S R m 1996 2000 - Ap Su>=1 2 1 D R m 1996 2000 - O lastSu 2 0 S R m 2001 o - May Su>=1 2 1 D R m 2001 o - S lastSu 2 0 S R m 2002 ma - Ap Su>=1 2 1 D R m 2002 ma - O lastSu 2 0 S Z America/Cancun -5:47:4 - LMT 1922 Ja 1 0:12:56 -6 - CST 1981 D 23 -5 m E%sT 1998 Au 2 2 -6 m C%sT 2015 F 1 2 -5 - EST Z America/Merida -5:58:28 - LMT 1922 Ja 1 0:1:32 -6 - CST 1981 D 23 -5 - EST 1982 D 2 -6 m C%sT Z America/Matamoros -6:40 - LMT 1921 D 31 23:20 -6 - CST 1988 -6 u C%sT 1989 -6 m C%sT 2010 -6 u C%sT Z America/Monterrey -6:41:16 - LMT 1921 D 31 23:18:44 -6 - CST 1988 -6 u C%sT 1989 -6 m C%sT Z America/Mexico_City -6:36:36 - LMT 1922 Ja 1 0:23:24 -7 - MST 1927 Jun 10 23 -6 - CST 1930 N 15 -7 - MST 1931 May 1 23 -6 - CST 1931 O -7 - MST 1932 Ap -6 m C%sT 2001 S 30 2 -6 - CST 2002 F 20 -6 m C%sT Z America/Ojinaga -6:57:40 - LMT 1922 Ja 1 0:2:20 -7 - MST 1927 Jun 10 23 -6 - CST 1930 N 15 -7 - MST 1931 May 1 23 -6 - CST 1931 O -7 - MST 1932 Ap -6 - CST 1996 -6 m C%sT 1998 -6 - CST 1998 Ap Su>=1 3 -7 m M%sT 2010 -7 u M%sT Z America/Chihuahua -7:4:20 - LMT 1921 D 31 23:55:40 -7 - MST 1927 Jun 10 23 -6 - CST 1930 N 15 -7 - MST 1931 May 1 23 -6 - CST 1931 O -7 - MST 1932 Ap -6 - CST 1996 -6 m C%sT 1998 -6 - CST 1998 Ap Su>=1 3 -7 m M%sT Z America/Hermosillo -7:23:52 - LMT 1921 D 31 23:36:8 -7 - MST 1927 Jun 10 23 -6 - CST 1930 N 15 -7 - MST 1931 May 1 23 -6 - CST 1931 O -7 - MST 1932 Ap -6 - CST 1942 Ap 24 -7 - MST 1949 Ja 14 -8 - PST 1970 -7 m M%sT 1999 -7 - MST Z America/Mazatlan -7:5:40 - LMT 1921 D 31 23:54:20 -7 - MST 1927 Jun 10 23 -6 - CST 1930 N 15 -7 - MST 1931 May 1 23 -6 - CST 1931 O -7 - MST 1932 Ap -6 - CST 1942 Ap 24 -7 - MST 1949 Ja 14 -8 - PST 1970 -7 m M%sT Z America/Bahia_Banderas -7:1 - LMT 1921 D 31 23:59 -7 - MST 1927 Jun 10 23 -6 - CST 1930 N 15 -7 - MST 1931 May 1 23 -6 - CST 1931 O -7 - MST 1932 Ap -6 - CST 1942 Ap 24 -7 - MST 1949 Ja 14 -8 - PST 1970 -7 m M%sT 2010 Ap 4 2 -6 m C%sT Z America/Tijuana -7:48:4 - LMT 1922 Ja 1 0:11:56 -7 - MST 1924 -8 - PST 1927 Jun 10 23 -7 - MST 1930 N 15 -8 - PST 1931 Ap -8 1 PDT 1931 S 30 -8 - PST 1942 Ap 24 -8 1 PWT 1945 Au 14 23u -8 1 PPT 1945 N 12 -8 - PST 1948 Ap 5 -8 1 PDT 1949 Ja 14 -8 - PST 1954 -8 CA P%sT 1961 -8 - PST 1976 -8 u P%sT 1996 -8 m P%sT 2001 -8 u P%sT 2002 F 20 -8 m P%sT 2010 -8 u P%sT R BS 1964 1975 - O lastSu 2 0 S R BS 1964 1975 - Ap lastSu 2 1 D Z America/Nassau -5:9:30 - LMT 1912 Mar 2 -5 BS E%sT 1976 -5 u E%sT R BB 1977 o - Jun 12 2 1 D R BB 1977 1978 - O Su>=1 2 0 S R BB 1978 1980 - Ap Su>=15 2 1 D R BB 1979 o - S 30 2 0 S R BB 1980 o - S 25 2 0 S Z America/Barbados -3:58:29 - LMT 1924 -3:58:29 - BMT 1932 -4 BB A%sT R BZ 1918 1942 - O Su>=2 0 0:30 -0530 R BZ 1919 1943 - F Su>=9 0 0 CST R BZ 1973 o - D 5 0 1 CDT R BZ 1974 o - F 9 0 0 CST R BZ 1982 o - D 18 0 1 CDT R BZ 1983 o - F 12 0 0 CST Z America/Belize -5:52:48 - LMT 1912 Ap -6 BZ %s Z Atlantic/Bermuda -4:19:18 - LMT 1930 Ja 1 2 -4 - AST 1974 Ap 28 2 -4 C A%sT 1976 -4 u A%sT R CR 1979 1980 - F lastSu 0 1 D R CR 1979 1980 - Jun Su>=1 0 0 S R CR 1991 1992 - Ja Sa>=15 0 1 D R CR 1991 o - Jul 1 0 0 S R CR 1992 o - Mar 15 0 0 S Z America/Costa_Rica -5:36:13 - LMT 1890 -5:36:13 - SJMT 1921 Ja 15 -6 CR C%sT R Q 1928 o - Jun 10 0 1 D R Q 1928 o - O 10 0 0 S R Q 1940 1942 - Jun Su>=1 0 1 D R Q 1940 1942 - S Su>=1 0 0 S R Q 1945 1946 - Jun Su>=1 0 1 D R Q 1945 1946 - S Su>=1 0 0 S R Q 1965 o - Jun 1 0 1 D R Q 1965 o - S 30 0 0 S R Q 1966 o - May 29 0 1 D R Q 1966 o - O 2 0 0 S R Q 1967 o - Ap 8 0 1 D R Q 1967 1968 - S Su>=8 0 0 S R Q 1968 o - Ap 14 0 1 D R Q 1969 1977 - Ap lastSu 0 1 D R Q 1969 1971 - O lastSu 0 0 S R Q 1972 1974 - O 8 0 0 S R Q 1975 1977 - O lastSu 0 0 S R Q 1978 o - May 7 0 1 D R Q 1978 1990 - O Su>=8 0 0 S R Q 1979 1980 - Mar Su>=15 0 1 D R Q 1981 1985 - May Su>=5 0 1 D R Q 1986 1989 - Mar Su>=14 0 1 D R Q 1990 1997 - Ap Su>=1 0 1 D R Q 1991 1995 - O Su>=8 0s 0 S R Q 1996 o - O 6 0s 0 S R Q 1997 o - O 12 0s 0 S R Q 1998 1999 - Mar lastSu 0s 1 D R Q 1998 2003 - O lastSu 0s 0 S R Q 2000 2003 - Ap Su>=1 0s 1 D R Q 2004 o - Mar lastSu 0s 1 D R Q 2006 2010 - O lastSu 0s 0 S R Q 2007 o - Mar Su>=8 0s 1 D R Q 2008 o - Mar Su>=15 0s 1 D R Q 2009 2010 - Mar Su>=8 0s 1 D R Q 2011 o - Mar Su>=15 0s 1 D R Q 2011 o - N 13 0s 0 S R Q 2012 o - Ap 1 0s 1 D R Q 2012 ma - N Su>=1 0s 0 S R Q 2013 ma - Mar Su>=8 0s 1 D Z America/Havana -5:29:28 - LMT 1890 -5:29:36 - HMT 1925 Jul 19 12 -5 Q C%sT R DO 1966 o - O 30 0 1 EDT R DO 1967 o - F 28 0 0 EST R DO 1969 1973 - O lastSu 0 0:30 -0430 R DO 1970 o - F 21 0 0 EST R DO 1971 o - Ja 20 0 0 EST R DO 1972 1974 - Ja 21 0 0 EST Z America/Santo_Domingo -4:39:36 - LMT 1890 -4:40 - SDMT 1933 Ap 1 12 -5 DO %s 1974 O 27 -4 - AST 2000 O 29 2 -5 u E%sT 2000 D 3 1 -4 - AST R SV 1987 1988 - May Su>=1 0 1 D R SV 1987 1988 - S lastSu 0 0 S Z America/El_Salvador -5:56:48 - LMT 1921 -6 SV C%sT R GT 1973 o - N 25 0 1 D R GT 1974 o - F 24 0 0 S R GT 1983 o - May 21 0 1 D R GT 1983 o - S 22 0 0 S R GT 1991 o - Mar 23 0 1 D R GT 1991 o - S 7 0 0 S R GT 2006 o - Ap 30 0 1 D R GT 2006 o - O 1 0 0 S Z America/Guatemala -6:2:4 - LMT 1918 O 5 -6 GT C%sT R HT 1983 o - May 8 0 1 D R HT 1984 1987 - Ap lastSu 0 1 D R HT 1983 1987 - O lastSu 0 0 S R HT 1988 1997 - Ap Su>=1 1s 1 D R HT 1988 1997 - O lastSu 1s 0 S R HT 2005 2006 - Ap Su>=1 0 1 D R HT 2005 2006 - O lastSu 0 0 S R HT 2012 2015 - Mar Su>=8 2 1 D R HT 2012 2015 - N Su>=1 2 0 S R HT 2017 ma - Mar Su>=8 2 1 D R HT 2017 ma - N Su>=1 2 0 S Z America/Port-au-Prince -4:49:20 - LMT 1890 -4:49 - PPMT 1917 Ja 24 12 -5 HT E%sT R HN 1987 1988 - May Su>=1 0 1 D R HN 1987 1988 - S lastSu 0 0 S R HN 2006 o - May Su>=1 0 1 D R HN 2006 o - Au M>=1 0 0 S Z America/Tegucigalpa -5:48:52 - LMT 1921 Ap -6 HN C%sT Z America/Jamaica -5:7:10 - LMT 1890 -5:7:10 - KMT 1912 F -5 - EST 1974 -5 u E%sT 1984 -5 - EST Z America/Martinique -4:4:20 - LMT 1890 -4:4:20 - FFMT 1911 May -4 - AST 1980 Ap 6 -4 1 ADT 1980 S 28 -4 - AST R NI 1979 1980 - Mar Su>=16 0 1 D R NI 1979 1980 - Jun M>=23 0 0 S R NI 2005 o - Ap 10 0 1 D R NI 2005 o - O Su>=1 0 0 S R NI 2006 o - Ap 30 2 1 D R NI 2006 o - O Su>=1 1 0 S Z America/Managua -5:45:8 - LMT 1890 -5:45:12 - MMT 1934 Jun 23 -6 - CST 1973 May -5 - EST 1975 F 16 -6 NI C%sT 1992 Ja 1 4 -5 - EST 1992 S 24 -6 - CST 1993 -5 - EST 1997 -6 NI C%sT Z America/Panama -5:18:8 - LMT 1890 -5:19:36 - CMT 1908 Ap 22 -5 - EST L America/Panama America/Cayman Z America/Puerto_Rico -4:24:25 - LMT 1899 Mar 28 12 -4 - AST 1942 May 3 -4 u A%sT 1946 -4 - AST Z America/Miquelon -3:44:40 - LMT 1911 May 15 -4 - AST 1980 May -3 - -03 1987 -3 C -03/-02 Z America/Grand_Turk -4:44:32 - LMT 1890 -5:7:10 - KMT 1912 F -5 - EST 1979 -5 u E%sT 2015 N Su>=1 2 -4 - AST 2018 Mar 11 3 -5 u E%sT R A 1930 o - D 1 0 1 - R A 1931 o - Ap 1 0 0 - R A 1931 o - O 15 0 1 - R A 1932 1940 - Mar 1 0 0 - R A 1932 1939 - N 1 0 1 - R A 1940 o - Jul 1 0 1 - R A 1941 o - Jun 15 0 0 - R A 1941 o - O 15 0 1 - R A 1943 o - Au 1 0 0 - R A 1943 o - O 15 0 1 - R A 1946 o - Mar 1 0 0 - R A 1946 o - O 1 0 1 - R A 1963 o - O 1 0 0 - R A 1963 o - D 15 0 1 - R A 1964 1966 - Mar 1 0 0 - R A 1964 1966 - O 15 0 1 - R A 1967 o - Ap 2 0 0 - R A 1967 1968 - O Su>=1 0 1 - R A 1968 1969 - Ap Su>=1 0 0 - R A 1974 o - Ja 23 0 1 - R A 1974 o - May 1 0 0 - R A 1988 o - D 1 0 1 - R A 1989 1993 - Mar Su>=1 0 0 - R A 1989 1992 - O Su>=15 0 1 - R A 1999 o - O Su>=1 0 1 - R A 2000 o - Mar 3 0 0 - R A 2007 o - D 30 0 1 - R A 2008 2009 - Mar Su>=15 0 0 - R A 2008 o - O Su>=15 0 1 - Z America/Argentina/Buenos_Aires -3:53:48 - LMT 1894 O 31 -4:16:48 - CMT 1920 May -4 - -04 1930 D -4 A -04/-03 1969 O 5 -3 A -03/-02 1999 O 3 -4 A -04/-03 2000 Mar 3 -3 A -03/-02 Z America/Argentina/Cordoba -4:16:48 - LMT 1894 O 31 -4:16:48 - CMT 1920 May -4 - -04 1930 D -4 A -04/-03 1969 O 5 -3 A -03/-02 1991 Mar 3 -4 - -04 1991 O 20 -3 A -03/-02 1999 O 3 -4 A -04/-03 2000 Mar 3 -3 A -03/-02 Z America/Argentina/Salta -4:21:40 - LMT 1894 O 31 -4:16:48 - CMT 1920 May -4 - -04 1930 D -4 A -04/-03 1969 O 5 -3 A -03/-02 1991 Mar 3 -4 - -04 1991 O 20 -3 A -03/-02 1999 O 3 -4 A -04/-03 2000 Mar 3 -3 A -03/-02 2008 O 18 -3 - -03 Z America/Argentina/Tucuman -4:20:52 - LMT 1894 O 31 -4:16:48 - CMT 1920 May -4 - -04 1930 D -4 A -04/-03 1969 O 5 -3 A -03/-02 1991 Mar 3 -4 - -04 1991 O 20 -3 A -03/-02 1999 O 3 -4 A -04/-03 2000 Mar 3 -3 - -03 2004 Jun -4 - -04 2004 Jun 13 -3 A -03/-02 Z America/Argentina/La_Rioja -4:27:24 - LMT 1894 O 31 -4:16:48 - CMT 1920 May -4 - -04 1930 D -4 A -04/-03 1969 O 5 -3 A -03/-02 1991 Mar -4 - -04 1991 May 7 -3 A -03/-02 1999 O 3 -4 A -04/-03 2000 Mar 3 -3 - -03 2004 Jun -4 - -04 2004 Jun 20 -3 A -03/-02 2008 O 18 -3 - -03 Z America/Argentina/San_Juan -4:34:4 - LMT 1894 O 31 -4:16:48 - CMT 1920 May -4 - -04 1930 D -4 A -04/-03 1969 O 5 -3 A -03/-02 1991 Mar -4 - -04 1991 May 7 -3 A -03/-02 1999 O 3 -4 A -04/-03 2000 Mar 3 -3 - -03 2004 May 31 -4 - -04 2004 Jul 25 -3 A -03/-02 2008 O 18 -3 - -03 Z America/Argentina/Jujuy -4:21:12 - LMT 1894 O 31 -4:16:48 - CMT 1920 May -4 - -04 1930 D -4 A -04/-03 1969 O 5 -3 A -03/-02 1990 Mar 4 -4 - -04 1990 O 28 -4 1 -03 1991 Mar 17 -4 - -04 1991 O 6 -3 1 -02 1992 -3 A -03/-02 1999 O 3 -4 A -04/-03 2000 Mar 3 -3 A -03/-02 2008 O 18 -3 - -03 Z America/Argentina/Catamarca -4:23:8 - LMT 1894 O 31 -4:16:48 - CMT 1920 May -4 - -04 1930 D -4 A -04/-03 1969 O 5 -3 A -03/-02 1991 Mar 3 -4 - -04 1991 O 20 -3 A -03/-02 1999 O 3 -4 A -04/-03 2000 Mar 3 -3 - -03 2004 Jun -4 - -04 2004 Jun 20 -3 A -03/-02 2008 O 18 -3 - -03 Z America/Argentina/Mendoza -4:35:16 - LMT 1894 O 31 -4:16:48 - CMT 1920 May -4 - -04 1930 D -4 A -04/-03 1969 O 5 -3 A -03/-02 1990 Mar 4 -4 - -04 1990 O 15 -4 1 -03 1991 Mar -4 - -04 1991 O 15 -4 1 -03 1992 Mar -4 - -04 1992 O 18 -3 A -03/-02 1999 O 3 -4 A -04/-03 2000 Mar 3 -3 - -03 2004 May 23 -4 - -04 2004 S 26 -3 A -03/-02 2008 O 18 -3 - -03 R Sa 2008 2009 - Mar Su>=8 0 0 - R Sa 2007 2008 - O Su>=8 0 1 - Z America/Argentina/San_Luis -4:25:24 - LMT 1894 O 31 -4:16:48 - CMT 1920 May -4 - -04 1930 D -4 A -04/-03 1969 O 5 -3 A -03/-02 1990 -3 1 -02 1990 Mar 14 -4 - -04 1990 O 15 -4 1 -03 1991 Mar -4 - -04 1991 Jun -3 - -03 1999 O 3 -4 1 -03 2000 Mar 3 -3 - -03 2004 May 31 -4 - -04 2004 Jul 25 -3 A -03/-02 2008 Ja 21 -4 Sa -04/-03 2009 O 11 -3 - -03 Z America/Argentina/Rio_Gallegos -4:36:52 - LMT 1894 O 31 -4:16:48 - CMT 1920 May -4 - -04 1930 D -4 A -04/-03 1969 O 5 -3 A -03/-02 1999 O 3 -4 A -04/-03 2000 Mar 3 -3 - -03 2004 Jun -4 - -04 2004 Jun 20 -3 A -03/-02 2008 O 18 -3 - -03 Z America/Argentina/Ushuaia -4:33:12 - LMT 1894 O 31 -4:16:48 - CMT 1920 May -4 - -04 1930 D -4 A -04/-03 1969 O 5 -3 A -03/-02 1999 O 3 -4 A -04/-03 2000 Mar 3 -3 - -03 2004 May 30 -4 - -04 2004 Jun 20 -3 A -03/-02 2008 O 18 -3 - -03 L America/Curacao America/Aruba Z America/La_Paz -4:32:36 - LMT 1890 -4:32:36 - CMT 1931 O 15 -4:32:36 1 BST 1932 Mar 21 -4 - -04 R B 1931 o - O 3 11 1 - R B 1932 1933 - Ap 1 0 0 - R B 1932 o - O 3 0 1 - R B 1949 1952 - D 1 0 1 - R B 1950 o - Ap 16 1 0 - R B 1951 1952 - Ap 1 0 0 - R B 1953 o - Mar 1 0 0 - R B 1963 o - D 9 0 1 - R B 1964 o - Mar 1 0 0 - R B 1965 o - Ja 31 0 1 - R B 1965 o - Mar 31 0 0 - R B 1965 o - D 1 0 1 - R B 1966 1968 - Mar 1 0 0 - R B 1966 1967 - N 1 0 1 - R B 1985 o - N 2 0 1 - R B 1986 o - Mar 15 0 0 - R B 1986 o - O 25 0 1 - R B 1987 o - F 14 0 0 - R B 1987 o - O 25 0 1 - R B 1988 o - F 7 0 0 - R B 1988 o - O 16 0 1 - R B 1989 o - Ja 29 0 0 - R B 1989 o - O 15 0 1 - R B 1990 o - F 11 0 0 - R B 1990 o - O 21 0 1 - R B 1991 o - F 17 0 0 - R B 1991 o - O 20 0 1 - R B 1992 o - F 9 0 0 - R B 1992 o - O 25 0 1 - R B 1993 o - Ja 31 0 0 - R B 1993 1995 - O Su>=11 0 1 - R B 1994 1995 - F Su>=15 0 0 - R B 1996 o - F 11 0 0 - R B 1996 o - O 6 0 1 - R B 1997 o - F 16 0 0 - R B 1997 o - O 6 0 1 - R B 1998 o - Mar 1 0 0 - R B 1998 o - O 11 0 1 - R B 1999 o - F 21 0 0 - R B 1999 o - O 3 0 1 - R B 2000 o - F 27 0 0 - R B 2000 2001 - O Su>=8 0 1 - R B 2001 2006 - F Su>=15 0 0 - R B 2002 o - N 3 0 1 - R B 2003 o - O 19 0 1 - R B 2004 o - N 2 0 1 - R B 2005 o - O 16 0 1 - R B 2006 o - N 5 0 1 - R B 2007 o - F 25 0 0 - R B 2007 o - O Su>=8 0 1 - R B 2008 2017 - O Su>=15 0 1 - R B 2008 2011 - F Su>=15 0 0 - R B 2012 o - F Su>=22 0 0 - R B 2013 2014 - F Su>=15 0 0 - R B 2015 o - F Su>=22 0 0 - R B 2016 2019 - F Su>=15 0 0 - R B 2018 o - N Su>=1 0 1 - Z America/Noronha -2:9:40 - LMT 1914 -2 B -02/-01 1990 S 17 -2 - -02 1999 S 30 -2 B -02/-01 2000 O 15 -2 - -02 2001 S 13 -2 B -02/-01 2002 O -2 - -02 Z America/Belem -3:13:56 - LMT 1914 -3 B -03/-02 1988 S 12 -3 - -03 Z America/Santarem -3:38:48 - LMT 1914 -4 B -04/-03 1988 S 12 -4 - -04 2008 Jun 24 -3 - -03 Z America/Fortaleza -2:34 - LMT 1914 -3 B -03/-02 1990 S 17 -3 - -03 1999 S 30 -3 B -03/-02 2000 O 22 -3 - -03 2001 S 13 -3 B -03/-02 2002 O -3 - -03 Z America/Recife -2:19:36 - LMT 1914 -3 B -03/-02 1990 S 17 -3 - -03 1999 S 30 -3 B -03/-02 2000 O 15 -3 - -03 2001 S 13 -3 B -03/-02 2002 O -3 - -03 Z America/Araguaina -3:12:48 - LMT 1914 -3 B -03/-02 1990 S 17 -3 - -03 1995 S 14 -3 B -03/-02 2003 S 24 -3 - -03 2012 O 21 -3 B -03/-02 2013 S -3 - -03 Z America/Maceio -2:22:52 - LMT 1914 -3 B -03/-02 1990 S 17 -3 - -03 1995 O 13 -3 B -03/-02 1996 S 4 -3 - -03 1999 S 30 -3 B -03/-02 2000 O 22 -3 - -03 2001 S 13 -3 B -03/-02 2002 O -3 - -03 Z America/Bahia -2:34:4 - LMT 1914 -3 B -03/-02 2003 S 24 -3 - -03 2011 O 16 -3 B -03/-02 2012 O 21 -3 - -03 Z America/Sao_Paulo -3:6:28 - LMT 1914 -3 B -03/-02 1963 O 23 -3 1 -02 1964 -3 B -03/-02 Z America/Campo_Grande -3:38:28 - LMT 1914 -4 B -04/-03 Z America/Cuiaba -3:44:20 - LMT 1914 -4 B -04/-03 2003 S 24 -4 - -04 2004 O -4 B -04/-03 Z America/Porto_Velho -4:15:36 - LMT 1914 -4 B -04/-03 1988 S 12 -4 - -04 Z America/Boa_Vista -4:2:40 - LMT 1914 -4 B -04/-03 1988 S 12 -4 - -04 1999 S 30 -4 B -04/-03 2000 O 15 -4 - -04 Z America/Manaus -4:0:4 - LMT 1914 -4 B -04/-03 1988 S 12 -4 - -04 1993 S 28 -4 B -04/-03 1994 S 22 -4 - -04 Z America/Eirunepe -4:39:28 - LMT 1914 -5 B -05/-04 1988 S 12 -5 - -05 1993 S 28 -5 B -05/-04 1994 S 22 -5 - -05 2008 Jun 24 -4 - -04 2013 N 10 -5 - -05 Z America/Rio_Branco -4:31:12 - LMT 1914 -5 B -05/-04 1988 S 12 -5 - -05 2008 Jun 24 -4 - -04 2013 N 10 -5 - -05 R x 1927 1931 - S 1 0 1 - R x 1928 1932 - Ap 1 0 0 - R x 1968 o - N 3 4u 1 - R x 1969 o - Mar 30 3u 0 - R x 1969 o - N 23 4u 1 - R x 1970 o - Mar 29 3u 0 - R x 1971 o - Mar 14 3u 0 - R x 1970 1972 - O Su>=9 4u 1 - R x 1972 1986 - Mar Su>=9 3u 0 - R x 1973 o - S 30 4u 1 - R x 1974 1987 - O Su>=9 4u 1 - R x 1987 o - Ap 12 3u 0 - R x 1988 1990 - Mar Su>=9 3u 0 - R x 1988 1989 - O Su>=9 4u 1 - R x 1990 o - S 16 4u 1 - R x 1991 1996 - Mar Su>=9 3u 0 - R x 1991 1997 - O Su>=9 4u 1 - R x 1997 o - Mar 30 3u 0 - R x 1998 o - Mar Su>=9 3u 0 - R x 1998 o - S 27 4u 1 - R x 1999 o - Ap 4 3u 0 - R x 1999 2010 - O Su>=9 4u 1 - R x 2000 2007 - Mar Su>=9 3u 0 - R x 2008 o - Mar 30 3u 0 - R x 2009 o - Mar Su>=9 3u 0 - R x 2010 o - Ap Su>=1 3u 0 - R x 2011 o - May Su>=2 3u 0 - R x 2011 o - Au Su>=16 4u 1 - R x 2012 2014 - Ap Su>=23 3u 0 - R x 2012 2014 - S Su>=2 4u 1 - R x 2016 2018 - May Su>=9 3u 0 - R x 2016 2018 - Au Su>=9 4u 1 - R x 2019 ma - Ap Su>=2 3u 0 - R x 2019 ma - S Su>=2 4u 1 - Z America/Santiago -4:42:46 - LMT 1890 -4:42:46 - SMT 1910 Ja 10 -5 - -05 1916 Jul -4:42:46 - SMT 1918 S 10 -4 - -04 1919 Jul -4:42:46 - SMT 1927 S -5 x -05/-04 1932 S -4 - -04 1942 Jun -5 - -05 1942 Au -4 - -04 1946 Jul 15 -4 1 -03 1946 S -4 - -04 1947 Ap -5 - -05 1947 May 21 23 -4 x -04/-03 Z America/Punta_Arenas -4:43:40 - LMT 1890 -4:42:46 - SMT 1910 Ja 10 -5 - -05 1916 Jul -4:42:46 - SMT 1918 S 10 -4 - -04 1919 Jul -4:42:46 - SMT 1927 S -5 x -05/-04 1932 S -4 - -04 1942 Jun -5 - -05 1942 Au -4 - -04 1947 Ap -5 - -05 1947 May 21 23 -4 x -04/-03 2016 D 4 -3 - -03 Z Pacific/Easter -7:17:28 - LMT 1890 -7:17:28 - EMT 1932 S -7 x -07/-06 1982 Mar 14 3u -6 x -06/-05 Z Antarctica/Palmer 0 - -00 1965 -4 A -04/-03 1969 O 5 -3 A -03/-02 1982 May -4 x -04/-03 2016 D 4 -3 - -03 R CO 1992 o - May 3 0 1 - R CO 1993 o - Ap 4 0 0 - Z America/Bogota -4:56:16 - LMT 1884 Mar 13 -4:56:16 - BMT 1914 N 23 -5 CO -05/-04 Z America/Curacao -4:35:47 - LMT 1912 F 12 -4:30 - -0430 1965 -4 - AST L America/Curacao America/Lower_Princes L America/Curacao America/Kralendijk R EC 1992 o - N 28 0 1 - R EC 1993 o - F 5 0 0 - Z America/Guayaquil -5:19:20 - LMT 1890 -5:14 - QMT 1931 -5 EC -05/-04 Z Pacific/Galapagos -5:58:24 - LMT 1931 -5 - -05 1986 -6 EC -06/-05 R FK 1937 1938 - S lastSu 0 1 - R FK 1938 1942 - Mar Su>=19 0 0 - R FK 1939 o - O 1 0 1 - R FK 1940 1942 - S lastSu 0 1 - R FK 1943 o - Ja 1 0 0 - R FK 1983 o - S lastSu 0 1 - R FK 1984 1985 - Ap lastSu 0 0 - R FK 1984 o - S 16 0 1 - R FK 1985 2000 - S Su>=9 0 1 - R FK 1986 2000 - Ap Su>=16 0 0 - R FK 2001 2010 - Ap Su>=15 2 0 - R FK 2001 2010 - S Su>=1 2 1 - Z Atlantic/Stanley -3:51:24 - LMT 1890 -3:51:24 - SMT 1912 Mar 12 -4 FK -04/-03 1983 May -3 FK -03/-02 1985 S 15 -4 FK -04/-03 2010 S 5 2 -3 - -03 Z America/Cayenne -3:29:20 - LMT 1911 Jul -4 - -04 1967 O -3 - -03 Z America/Guyana -3:52:40 - LMT 1915 Mar -3:45 - -0345 1975 Jul 31 -3 - -03 1991 -4 - -04 R y 1975 1988 - O 1 0 1 - R y 1975 1978 - Mar 1 0 0 - R y 1979 1991 - Ap 1 0 0 - R y 1989 o - O 22 0 1 - R y 1990 o - O 1 0 1 - R y 1991 o - O 6 0 1 - R y 1992 o - Mar 1 0 0 - R y 1992 o - O 5 0 1 - R y 1993 o - Mar 31 0 0 - R y 1993 1995 - O 1 0 1 - R y 1994 1995 - F lastSu 0 0 - R y 1996 o - Mar 1 0 0 - R y 1996 2001 - O Su>=1 0 1 - R y 1997 o - F lastSu 0 0 - R y 1998 2001 - Mar Su>=1 0 0 - R y 2002 2004 - Ap Su>=1 0 0 - R y 2002 2003 - S Su>=1 0 1 - R y 2004 2009 - O Su>=15 0 1 - R y 2005 2009 - Mar Su>=8 0 0 - R y 2010 ma - O Su>=1 0 1 - R y 2010 2012 - Ap Su>=8 0 0 - R y 2013 ma - Mar Su>=22 0 0 - Z America/Asuncion -3:50:40 - LMT 1890 -3:50:40 - AMT 1931 O 10 -4 - -04 1972 O -3 - -03 1974 Ap -4 y -04/-03 R PE 1938 o - Ja 1 0 1 - R PE 1938 o - Ap 1 0 0 - R PE 1938 1939 - S lastSu 0 1 - R PE 1939 1940 - Mar Su>=24 0 0 - R PE 1986 1987 - Ja 1 0 1 - R PE 1986 1987 - Ap 1 0 0 - R PE 1990 o - Ja 1 0 1 - R PE 1990 o - Ap 1 0 0 - R PE 1994 o - Ja 1 0 1 - R PE 1994 o - Ap 1 0 0 - Z America/Lima -5:8:12 - LMT 1890 -5:8:36 - LMT 1908 Jul 28 -5 PE -05/-04 Z Atlantic/South_Georgia -2:26:8 - LMT 1890 -2 - -02 Z America/Paramaribo -3:40:40 - LMT 1911 -3:40:52 - PMT 1935 -3:40:36 - PMT 1945 O -3:30 - -0330 1984 O -3 - -03 Z America/Port_of_Spain -4:6:4 - LMT 1912 Mar 2 -4 - AST L America/Port_of_Spain America/Anguilla L America/Port_of_Spain America/Antigua L America/Port_of_Spain America/Dominica L America/Port_of_Spain America/Grenada L America/Port_of_Spain America/Guadeloupe L America/Port_of_Spain America/Marigot L America/Port_of_Spain America/Montserrat L America/Port_of_Spain America/St_Barthelemy L America/Port_of_Spain America/St_Kitts L America/Port_of_Spain America/St_Lucia L America/Port_of_Spain America/St_Thomas L America/Port_of_Spain America/St_Vincent L America/Port_of_Spain America/Tortola R U 1923 1925 - O 1 0 0:30 - R U 1924 1926 - Ap 1 0 0 - R U 1933 1938 - O lastSu 0 0:30 - R U 1934 1941 - Mar lastSa 24 0 - R U 1939 o - O 1 0 0:30 - R U 1940 o - O 27 0 0:30 - R U 1941 o - Au 1 0 0:30 - R U 1942 o - D 14 0 0:30 - R U 1943 o - Mar 14 0 0 - R U 1959 o - May 24 0 0:30 - R U 1959 o - N 15 0 0 - R U 1960 o - Ja 17 0 1 - R U 1960 o - Mar 6 0 0 - R U 1965 o - Ap 4 0 1 - R U 1965 o - S 26 0 0 - R U 1968 o - May 27 0 0:30 - R U 1968 o - D 1 0 0 - R U 1970 o - Ap 25 0 1 - R U 1970 o - Jun 14 0 0 - R U 1972 o - Ap 23 0 1 - R U 1972 o - Jul 16 0 0 - R U 1974 o - Ja 13 0 1:30 - R U 1974 o - Mar 10 0 0:30 - R U 1974 o - S 1 0 0 - R U 1974 o - D 22 0 1 - R U 1975 o - Mar 30 0 0 - R U 1976 o - D 19 0 1 - R U 1977 o - Mar 6 0 0 - R U 1977 o - D 4 0 1 - R U 1978 1979 - Mar Su>=1 0 0 - R U 1978 o - D 17 0 1 - R U 1979 o - Ap 29 0 1 - R U 1980 o - Mar 16 0 0 - R U 1987 o - D 14 0 1 - R U 1988 o - F 28 0 0 - R U 1988 o - D 11 0 1 - R U 1989 o - Mar 5 0 0 - R U 1989 o - O 29 0 1 - R U 1990 o - F 25 0 0 - R U 1990 1991 - O Su>=21 0 1 - R U 1991 1992 - Mar Su>=1 0 0 - R U 1992 o - O 18 0 1 - R U 1993 o - F 28 0 0 - R U 2004 o - S 19 0 1 - R U 2005 o - Mar 27 2 0 - R U 2005 o - O 9 2 1 - R U 2006 2015 - Mar Su>=8 2 0 - R U 2006 2014 - O Su>=1 2 1 - Z America/Montevideo -3:44:51 - LMT 1908 Jun 10 -3:44:51 - MMT 1920 May -4 - -04 1923 O -3:30 U -0330/-03 1942 D 14 -3 U -03/-0230 1960 -3 U -03/-02 1968 -3 U -03/-0230 1970 -3 U -03/-02 1974 -3 U -03/-0130 1974 Mar 10 -3 U -03/-0230 1974 D 22 -3 U -03/-02 Z America/Caracas -4:27:44 - LMT 1890 -4:27:40 - CMT 1912 F 12 -4:30 - -0430 1965 -4 - -04 2007 D 9 3 -4:30 - -0430 2016 May 1 2:30 -4 - -04 Z Etc/GMT 0 - GMT Z Etc/UTC 0 - UTC L Etc/GMT GMT L Etc/UTC Etc/Universal L Etc/UTC Etc/Zulu L Etc/GMT Etc/Greenwich L Etc/GMT Etc/GMT-0 L Etc/GMT Etc/GMT+0 L Etc/GMT Etc/GMT0 Z Etc/GMT-14 14 - +14 Z Etc/GMT-13 13 - +13 Z Etc/GMT-12 12 - +12 Z Etc/GMT-11 11 - +11 Z Etc/GMT-10 10 - +10 Z Etc/GMT-9 9 - +09 Z Etc/GMT-8 8 - +08 Z Etc/GMT-7 7 - +07 Z Etc/GMT-6 6 - +06 Z Etc/GMT-5 5 - +05 Z Etc/GMT-4 4 - +04 Z Etc/GMT-3 3 - +03 Z Etc/GMT-2 2 - +02 Z Etc/GMT-1 1 - +01 Z Etc/GMT+1 -1 - -01 Z Etc/GMT+2 -2 - -02 Z Etc/GMT+3 -3 - -03 Z Etc/GMT+4 -4 - -04 Z Etc/GMT+5 -5 - -05 Z Etc/GMT+6 -6 - -06 Z Etc/GMT+7 -7 - -07 Z Etc/GMT+8 -8 - -08 Z Etc/GMT+9 -9 - -09 Z Etc/GMT+10 -10 - -10 Z Etc/GMT+11 -11 - -11 Z Etc/GMT+12 -12 - -12 Z Factory 0 - -00 L Africa/Nairobi Africa/Asmera L Africa/Abidjan Africa/Timbuktu L America/Argentina/Catamarca America/Argentina/ComodRivadavia L America/Adak America/Atka L America/Argentina/Buenos_Aires America/Buenos_Aires L America/Argentina/Catamarca America/Catamarca L America/Atikokan America/Coral_Harbour L America/Argentina/Cordoba America/Cordoba L America/Tijuana America/Ensenada L America/Indiana/Indianapolis America/Fort_Wayne L America/Indiana/Indianapolis America/Indianapolis L America/Argentina/Jujuy America/Jujuy L America/Indiana/Knox America/Knox_IN L America/Kentucky/Louisville America/Louisville L America/Argentina/Mendoza America/Mendoza L America/Toronto America/Montreal L America/Rio_Branco America/Porto_Acre L America/Argentina/Cordoba America/Rosario L America/Tijuana America/Santa_Isabel L America/Denver America/Shiprock L America/Port_of_Spain America/Virgin L Pacific/Auckland Antarctica/South_Pole L Asia/Ashgabat Asia/Ashkhabad L Asia/Kolkata Asia/Calcutta L Asia/Shanghai Asia/Chongqing L Asia/Shanghai Asia/Chungking L Asia/Dhaka Asia/Dacca L Asia/Shanghai Asia/Harbin L Asia/Urumqi Asia/Kashgar L Asia/Kathmandu Asia/Katmandu L Asia/Macau Asia/Macao L Asia/Yangon Asia/Rangoon L Asia/Ho_Chi_Minh Asia/Saigon L Asia/Jerusalem Asia/Tel_Aviv L Asia/Thimphu Asia/Thimbu L Asia/Makassar Asia/Ujung_Pandang L Asia/Ulaanbaatar Asia/Ulan_Bator L Atlantic/Faroe Atlantic/Faeroe L Europe/Oslo Atlantic/Jan_Mayen L Australia/Sydney Australia/ACT L Australia/Sydney Australia/Canberra L Australia/Lord_Howe Australia/LHI L Australia/Sydney Australia/NSW L Australia/Darwin Australia/North L Australia/Brisbane Australia/Queensland L Australia/Adelaide Australia/South L Australia/Hobart Australia/Tasmania L Australia/Melbourne Australia/Victoria L Australia/Perth Australia/West L Australia/Broken_Hill Australia/Yancowinna L America/Rio_Branco Brazil/Acre L America/Noronha Brazil/DeNoronha L America/Sao_Paulo Brazil/East L America/Manaus Brazil/West L America/Halifax Canada/Atlantic L America/Winnipeg Canada/Central L America/Toronto Canada/Eastern L America/Edmonton Canada/Mountain L America/St_Johns Canada/Newfoundland L America/Vancouver Canada/Pacific L America/Regina Canada/Saskatchewan L America/Whitehorse Canada/Yukon L America/Santiago Chile/Continental L Pacific/Easter Chile/EasterIsland L America/Havana Cuba L Africa/Cairo Egypt L Europe/Dublin Eire L Etc/UTC Etc/UCT L Europe/London Europe/Belfast L Europe/Chisinau Europe/Tiraspol L Europe/London GB L Europe/London GB-Eire L Etc/GMT GMT+0 L Etc/GMT GMT-0 L Etc/GMT GMT0 L Etc/GMT Greenwich L Asia/Hong_Kong Hongkong L Atlantic/Reykjavik Iceland L Asia/Tehran Iran L Asia/Jerusalem Israel L America/Jamaica Jamaica L Asia/Tokyo Japan L Pacific/Kwajalein Kwajalein L Africa/Tripoli Libya L America/Tijuana Mexico/BajaNorte L America/Mazatlan Mexico/BajaSur L America/Mexico_City Mexico/General L Pacific/Auckland NZ L Pacific/Chatham NZ-CHAT L America/Denver Navajo L Asia/Shanghai PRC L Pacific/Honolulu Pacific/Johnston L Pacific/Pohnpei Pacific/Ponape L Pacific/Pago_Pago Pacific/Samoa L Pacific/Chuuk Pacific/Truk L Pacific/Chuuk Pacific/Yap L Europe/Warsaw Poland L Europe/Lisbon Portugal L Asia/Taipei ROC L Asia/Seoul ROK L Asia/Singapore Singapore L Europe/Istanbul Turkey L Etc/UTC UCT L America/Anchorage US/Alaska L America/Adak US/Aleutian L America/Phoenix US/Arizona L America/Chicago US/Central L America/Indiana/Indianapolis US/East-Indiana L America/New_York US/Eastern L Pacific/Honolulu US/Hawaii L America/Indiana/Knox US/Indiana-Starke L America/Detroit US/Michigan L America/Denver US/Mountain L America/Los_Angeles US/Pacific L Pacific/Pago_Pago US/Samoa L Etc/UTC UTC L Etc/UTC Universal L Europe/Moscow W-SU L Etc/UTC Zulu ./tzdatabase/tzselect.ksh0000644000175000017500000003570613323151404015632 0ustar anthonyanthony#!/bin/bash # Ask the user about the time zone, and output the resulting TZ value to stdout. # Interact with the user via stderr and stdin. PKGVERSION='(tzcode) ' TZVERSION=see_Makefile REPORT_BUGS_TO=tz@iana.org # Contributed by Paul Eggert. This file is in the public domain. # Porting notes: # # This script requires a Posix-like shell and prefers the extension of a # 'select' statement. The 'select' statement was introduced in the # Korn shell and is available in Bash and other shell implementations. # If your host lacks both Bash and the Korn shell, you can get their # source from one of these locations: # # Bash # Korn Shell # MirBSD Korn Shell # # For portability to Solaris 9 /bin/sh this script avoids some POSIX # features and common extensions, such as $(...) (which works sometimes # but not others), $((...)), and $10. # # This script also uses several features of modern awk programs. # If your host lacks awk, or has an old awk that does not conform to Posix, # you can use either of the following free programs instead: # # Gawk (GNU awk) # mawk # Specify default values for environment variables if they are unset. : ${AWK=awk} : ${TZDIR=`pwd`} # Output one argument as-is to standard output. # Safer than 'echo', which can mishandle '\' or leading '-'. say() { printf '%s\n' "$1" } # Check for awk Posix compliance. ($AWK -v x=y 'BEGIN { exit 123 }') /dev/null 2>&1 [ $? = 123 ] || { say >&2 "$0: Sorry, your '$AWK' program is not Posix compatible." exit 1 } coord= location_limit=10 zonetabtype=zone1970 usage="Usage: tzselect [--version] [--help] [-c COORD] [-n LIMIT] Select a timezone interactively. Options: -c COORD Instead of asking for continent and then country and then city, ask for selection from time zones whose largest cities are closest to the location with geographical coordinates COORD. COORD should use ISO 6709 notation, for example, '-c +4852+00220' for Paris (in degrees and minutes, North and East), or '-c -35-058' for Buenos Aires (in degrees, South and West). -n LIMIT Display at most LIMIT locations when -c is used (default $location_limit). --version Output version information. --help Output this help. Report bugs to $REPORT_BUGS_TO." # Ask the user to select from the function's arguments, # and assign the selected argument to the variable 'select_result'. # Exit on EOF or I/O error. Use the shell's 'select' builtin if available, # falling back on a less-nice but portable substitute otherwise. if case $BASH_VERSION in ?*) : ;; '') # '; exit' should be redundant, but Dash doesn't properly fail without it. (eval 'set --; select x; do break; done; exit') /dev/null esac then # Do this inside 'eval', as otherwise the shell might exit when parsing it # even though it is never executed. eval ' doselect() { select select_result do case $select_result in "") echo >&2 "Please enter a number in range." ;; ?*) break esac done || exit } # Work around a bug in bash 1.14.7 and earlier, where $PS3 is sent to stdout. case $BASH_VERSION in [01].*) case `echo 1 | (select x in x; do break; done) 2>/dev/null` in ?*) PS3= esac esac ' else doselect() { # Field width of the prompt numbers. select_width=`expr $# : '.*'` select_i= while : do case $select_i in '') select_i=0 for select_word do select_i=`expr $select_i + 1` printf >&2 "%${select_width}d) %s\\n" $select_i "$select_word" done ;; *[!0-9]*) echo >&2 'Please enter a number in range.' ;; *) if test 1 -le $select_i && test $select_i -le $#; then shift `expr $select_i - 1` select_result=$1 break fi echo >&2 'Please enter a number in range.' esac # Prompt and read input. printf >&2 %s "${PS3-#? }" read select_i || exit done } fi while getopts c:n:t:-: opt do case $opt$OPTARG in c*) coord=$OPTARG ;; n*) location_limit=$OPTARG ;; t*) # Undocumented option, used for developer testing. zonetabtype=$OPTARG ;; -help) exec echo "$usage" ;; -version) exec echo "tzselect $PKGVERSION$TZVERSION" ;; -*) say >&2 "$0: -$opt$OPTARG: unknown option; try '$0 --help'"; exit 1 ;; *) say >&2 "$0: try '$0 --help'"; exit 1 ;; esac done shift `expr $OPTIND - 1` case $# in 0) ;; *) say >&2 "$0: $1: unknown argument"; exit 1 ;; esac # Make sure the tables are readable. TZ_COUNTRY_TABLE=$TZDIR/iso3166.tab TZ_ZONE_TABLE=$TZDIR/$zonetabtype.tab for f in $TZ_COUNTRY_TABLE $TZ_ZONE_TABLE do <"$f" || { say >&2 "$0: time zone files are not set up correctly" exit 1 } done # If the current locale does not support UTF-8, convert data to current # locale's format if possible, as the shell aligns columns better that way. # Check the UTF-8 of U+12345 CUNEIFORM SIGN URU TIMES KI. ! $AWK 'BEGIN { u12345 = "\360\222\215\205"; exit length(u12345) != 1 }' && { tmp=`(mktemp -d) 2>/dev/null` || { tmp=${TMPDIR-/tmp}/tzselect.$$ && (umask 77 && mkdir -- "$tmp") };} && trap 'status=$?; rm -fr -- "$tmp"; exit $status' 0 HUP INT PIPE TERM && (iconv -f UTF-8 -t //TRANSLIT <"$TZ_COUNTRY_TABLE" >$tmp/iso3166.tab) \ 2>/dev/null && TZ_COUNTRY_TABLE=$tmp/iso3166.tab && iconv -f UTF-8 -t //TRANSLIT <"$TZ_ZONE_TABLE" >$tmp/$zonetabtype.tab && TZ_ZONE_TABLE=$tmp/$zonetabtype.tab newline=' ' IFS=$newline # Awk script to read a time zone table and output the same table, # with each column preceded by its distance from 'here'. output_distances=' BEGIN { FS = "\t" while (getline &2 'Please identify a location' \ 'so that time zone rules can be set correctly.' continent= country= region= case $coord in ?*) continent=coord;; '') # Ask the user for continent or ocean. echo >&2 'Please select a continent, ocean, "coord", or "TZ".' quoted_continents=` $AWK ' BEGIN { FS = "\t" } /^[^#]/ { entry = substr($3, 1, index($3, "/") - 1) if (entry == "America") entry = entry "s" if (entry ~ /^(Arctic|Atlantic|Indian|Pacific)$/) entry = entry " Ocean" printf "'\''%s'\''\n", entry } ' <"$TZ_ZONE_TABLE" | sort -u | tr '\n' ' ' echo '' ` eval ' doselect '"$quoted_continents"' \ "coord - I want to use geographical coordinates." \ "TZ - I want to specify the timezone using the Posix TZ format." continent=$select_result case $continent in Americas) continent=America;; *" "*) continent=`expr "$continent" : '\''\([^ ]*\)'\''` esac ' esac case $continent in TZ) # Ask the user for a Posix TZ string. Check that it conforms. while echo >&2 'Please enter the desired value' \ 'of the TZ environment variable.' echo >&2 'For example, AEST-10 is abbreviated' \ 'AEST and is 10 hours' echo >&2 'ahead (east) of Greenwich,' \ 'with no daylight saving time.' read TZ $AWK -v TZ="$TZ" 'BEGIN { tzname = "(<[[:alnum:]+-]{3,}>|[[:alpha:]]{3,})" time = "(2[0-4]|[0-1]?[0-9])" \ "(:[0-5][0-9](:[0-5][0-9])?)?" offset = "[-+]?" time mdate = "M([1-9]|1[0-2])\\.[1-5]\\.[0-6]" jdate = "((J[1-9]|[0-9]|J?[1-9][0-9]" \ "|J?[1-2][0-9][0-9])|J?3[0-5][0-9]|J?36[0-5])" datetime = ",(" mdate "|" jdate ")(/" time ")?" tzpattern = "^(:.*|" tzname offset "(" tzname \ "(" offset ")?(" datetime datetime ")?)?)$" if (TZ ~ tzpattern) exit 1 exit 0 }' do say >&2 "'$TZ' is not a conforming Posix timezone string." done TZ_for_date=$TZ;; *) case $continent in coord) case $coord in '') echo >&2 'Please enter coordinates' \ 'in ISO 6709 notation.' echo >&2 'For example, +4042-07403 stands for' echo >&2 '40 degrees 42 minutes north,' \ '74 degrees 3 minutes west.' read coord;; esac distance_table=`$AWK \ -v coord="$coord" \ -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ "$output_distances" <"$TZ_ZONE_TABLE" | sort -n | sed "${location_limit}q" ` regions=`say "$distance_table" | $AWK ' BEGIN { FS = "\t" } { print $NF } '` echo >&2 'Please select one of the following timezones,' \ echo >&2 'listed roughly in increasing order' \ "of distance from $coord". doselect $regions region=$select_result TZ=`say "$distance_table" | $AWK -v region="$region" ' BEGIN { FS="\t" } $NF == region { print $4 } '` ;; *) # Get list of names of countries in the continent or ocean. countries=`$AWK \ -v continent="$continent" \ -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ ' BEGIN { FS = "\t" } /^#/ { next } $3 ~ ("^" continent "/") { ncc = split($1, cc, /,/) for (i = 1; i <= ncc; i++) if (!cc_seen[cc[i]]++) cc_list[++ccs] = cc[i] } END { while (getline &2 'Please select a country' \ 'whose clocks agree with yours.' doselect $countries country=$select_result;; *) country=$countries esac # Get list of timezones in the country. regions=`$AWK \ -v country="$country" \ -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ ' BEGIN { FS = "\t" cc = country while (getline &2 'Please select one of the following timezones.' doselect $regions region=$select_result;; *) region=$regions esac # Determine TZ from country and region. TZ=`$AWK \ -v country="$country" \ -v region="$region" \ -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ ' BEGIN { FS = "\t" cc = country while (getline &2 "$0: time zone files are not set up correctly" exit 1 } esac # Use the proposed TZ to output the current date relative to UTC. # Loop until they agree in seconds. # Give up after 8 unsuccessful tries. extra_info= for i in 1 2 3 4 5 6 7 8 do TZdate=`LANG=C TZ="$TZ_for_date" date` UTdate=`LANG=C TZ=UTC0 date` TZsec=`expr "$TZdate" : '.*:\([0-5][0-9]\)'` UTsec=`expr "$UTdate" : '.*:\([0-5][0-9]\)'` case $TZsec in $UTsec) extra_info=" Selected time is now: $TZdate. Universal Time is now: $UTdate." break esac done # Output TZ info and ask the user to confirm. echo >&2 "" echo >&2 "The following information has been given:" echo >&2 "" case $country%$region%$coord in ?*%?*%) say >&2 " $country$newline $region";; ?*%%) say >&2 " $country";; %?*%?*) say >&2 " coord $coord$newline $region";; %%?*) say >&2 " coord $coord";; *) say >&2 " TZ='$TZ'" esac say >&2 "" say >&2 "Therefore TZ='$TZ' will be used.$extra_info" say >&2 "Is the above information OK?" doselect Yes No ok=$select_result case $ok in Yes) break esac do coord= done case $SHELL in *csh) file=.login line="setenv TZ '$TZ'";; *) file=.profile line="TZ='$TZ'; export TZ" esac test -t 1 && say >&2 " You can make this change permanent for yourself by appending the line $line to the file '$file' in your home directory; then log out and log in again. Here is that TZ value again, this time on standard output so that you can use the $0 command in shell scripts:" say "$TZ" ./tzdatabase/zone1970.tab0000644000175000017500000004323114275413273015256 0ustar anthonyanthony# tzdb timezone descriptions # # This file is in the public domain. # # From Paul Eggert (2018-06-27): # This file contains a table where each row stands for a timezone where # civil timestamps have agreed since 1970. Columns are separated by # a single tab. Lines beginning with '#' are comments. All text uses # UTF-8 encoding. The columns of the table are as follows: # # 1. The countries that overlap the timezone, as a comma-separated list # of ISO 3166 2-character country codes. See the file 'iso3166.tab'. # 2. Latitude and longitude of the timezone's principal location # in ISO 6709 sign-degrees-minutes-seconds format, # either ±DDMM±DDDMM or ±DDMMSS±DDDMMSS, # first latitude (+ is north), then longitude (+ is east). # 3. Timezone name used in value of TZ environment variable. # Please see the theory.html file for how these names are chosen. # If multiple timezones overlap a country, each has a row in the # table, with each column 1 containing the country code. # 4. Comments; present if and only if a country has multiple timezones. # # If a timezone covers multiple countries, the most-populous city is used, # and that country is listed first in column 1; any other countries # are listed alphabetically by country code. The table is sorted # first by country code, then (if possible) by an order within the # country that (1) makes some geographical sense, and (2) puts the # most populous timezones first, where that does not contradict (1). # # This table is intended as an aid for users, to help them select timezones # appropriate for their practical needs. It is not intended to take or # endorse any position on legal or territorial claims. # #country- #codes coordinates TZ comments AD +4230+00131 Europe/Andorra AE,OM,RE,SC,TF +2518+05518 Asia/Dubai UAE, Oman, Réunion, Seychelles, Crozet, Scattered Is AF +3431+06912 Asia/Kabul AL +4120+01950 Europe/Tirane AM +4011+04430 Asia/Yerevan AQ -6617+11031 Antarctica/Casey Casey AQ -6835+07758 Antarctica/Davis Davis AQ -6736+06253 Antarctica/Mawson Mawson AQ -6448-06406 Antarctica/Palmer Palmer AQ -6734-06808 Antarctica/Rothera Rothera AQ -720041+0023206 Antarctica/Troll Troll AR -3436-05827 America/Argentina/Buenos_Aires Buenos Aires (BA, CF) AR -3124-06411 America/Argentina/Cordoba Argentina (most areas: CB, CC, CN, ER, FM, MN, SE, SF) AR -2447-06525 America/Argentina/Salta Salta (SA, LP, NQ, RN) AR -2411-06518 America/Argentina/Jujuy Jujuy (JY) AR -2649-06513 America/Argentina/Tucuman Tucumán (TM) AR -2828-06547 America/Argentina/Catamarca Catamarca (CT); Chubut (CH) AR -2926-06651 America/Argentina/La_Rioja La Rioja (LR) AR -3132-06831 America/Argentina/San_Juan San Juan (SJ) AR -3253-06849 America/Argentina/Mendoza Mendoza (MZ) AR -3319-06621 America/Argentina/San_Luis San Luis (SL) AR -5138-06913 America/Argentina/Rio_Gallegos Santa Cruz (SC) AR -5448-06818 America/Argentina/Ushuaia Tierra del Fuego (TF) AS,UM -1416-17042 Pacific/Pago_Pago Samoa, Midway AT +4813+01620 Europe/Vienna AU -3133+15905 Australia/Lord_Howe Lord Howe Island AU -5430+15857 Antarctica/Macquarie Macquarie Island AU -4253+14719 Australia/Hobart Tasmania AU -3749+14458 Australia/Melbourne Victoria AU -3352+15113 Australia/Sydney New South Wales (most areas) AU -3157+14127 Australia/Broken_Hill New South Wales (Yancowinna) AU -2728+15302 Australia/Brisbane Queensland (most areas) AU -2016+14900 Australia/Lindeman Queensland (Whitsunday Islands) AU -3455+13835 Australia/Adelaide South Australia AU -1228+13050 Australia/Darwin Northern Territory AU -3157+11551 Australia/Perth Western Australia (most areas) AU -3143+12852 Australia/Eucla Western Australia (Eucla) AZ +4023+04951 Asia/Baku BB +1306-05937 America/Barbados BD +2343+09025 Asia/Dhaka BE,LU,NL +5050+00420 Europe/Brussels BG +4241+02319 Europe/Sofia BM +3217-06446 Atlantic/Bermuda BO -1630-06809 America/La_Paz BR -0351-03225 America/Noronha Atlantic islands BR -0127-04829 America/Belem Pará (east); Amapá BR -0343-03830 America/Fortaleza Brazil (northeast: MA, PI, CE, RN, PB) BR -0803-03454 America/Recife Pernambuco BR -0712-04812 America/Araguaina Tocantins BR -0940-03543 America/Maceio Alagoas, Sergipe BR -1259-03831 America/Bahia Bahia BR -2332-04637 America/Sao_Paulo Brazil (southeast: GO, DF, MG, ES, RJ, SP, PR, SC, RS) BR -2027-05437 America/Campo_Grande Mato Grosso do Sul BR -1535-05605 America/Cuiaba Mato Grosso BR -0226-05452 America/Santarem Pará (west) BR -0846-06354 America/Porto_Velho Rondônia BR +0249-06040 America/Boa_Vista Roraima BR -0308-06001 America/Manaus Amazonas (east) BR -0640-06952 America/Eirunepe Amazonas (west) BR -0958-06748 America/Rio_Branco Acre BT +2728+08939 Asia/Thimphu BY +5354+02734 Europe/Minsk BZ +1730-08812 America/Belize CA +4734-05243 America/St_Johns Newfoundland; Labrador (southeast) CA +4439-06336 America/Halifax Atlantic - NS (most areas); PE CA +4612-05957 America/Glace_Bay Atlantic - NS (Cape Breton) CA +4606-06447 America/Moncton Atlantic - New Brunswick CA +5320-06025 America/Goose_Bay Atlantic - Labrador (most areas) CA,BS +4339-07923 America/Toronto Eastern - ON, QC (most areas), Bahamas CA +4901-08816 America/Nipigon Eastern - ON, QC (no DST 1967-73) CA +4823-08915 America/Thunder_Bay Eastern - ON (Thunder Bay) CA +6344-06828 America/Iqaluit Eastern - NU (most east areas) CA +6608-06544 America/Pangnirtung Eastern - NU (Pangnirtung) CA +4953-09709 America/Winnipeg Central - ON (west); Manitoba CA +4843-09434 America/Rainy_River Central - ON (Rainy R, Ft Frances) CA +744144-0944945 America/Resolute Central - NU (Resolute) CA +624900-0920459 America/Rankin_Inlet Central - NU (central) CA +5024-10439 America/Regina CST - SK (most areas) CA +5017-10750 America/Swift_Current CST - SK (midwest) CA +5333-11328 America/Edmonton Mountain - AB; BC (E); SK (W) CA +690650-1050310 America/Cambridge_Bay Mountain - NU (west) CA +6227-11421 America/Yellowknife Mountain - NT (central) CA +682059-1334300 America/Inuvik Mountain - NT (west) CA +5546-12014 America/Dawson_Creek MST - BC (Dawson Cr, Ft St John) CA +5848-12242 America/Fort_Nelson MST - BC (Ft Nelson) CA +6043-13503 America/Whitehorse MST - Yukon (east) CA +6404-13925 America/Dawson MST - Yukon (west) CA +4916-12307 America/Vancouver Pacific - BC (most areas) CH,DE,LI +4723+00832 Europe/Zurich Swiss time CI,BF,GH,GM,GN,IS,ML,MR,SH,SL,SN,TG +0519-00402 Africa/Abidjan CK -2114-15946 Pacific/Rarotonga CL -3327-07040 America/Santiago Chile (most areas) CL -5309-07055 America/Punta_Arenas Region of Magallanes CL -2709-10926 Pacific/Easter Easter Island CN +3114+12128 Asia/Shanghai Beijing Time CN,AQ +4348+08735 Asia/Urumqi Xinjiang Time, Vostok CO +0436-07405 America/Bogota CR +0956-08405 America/Costa_Rica CU +2308-08222 America/Havana CV +1455-02331 Atlantic/Cape_Verde CY +3510+03322 Asia/Nicosia Cyprus (most areas) CY +3507+03357 Asia/Famagusta Northern Cyprus CZ,SK +5005+01426 Europe/Prague DE,DK,NO,SE,SJ +5230+01322 Europe/Berlin Germany (most areas), Scandinavia DO +1828-06954 America/Santo_Domingo DZ +3647+00303 Africa/Algiers EC -0210-07950 America/Guayaquil Ecuador (mainland) EC -0054-08936 Pacific/Galapagos Galápagos Islands EE +5925+02445 Europe/Tallinn EG +3003+03115 Africa/Cairo EH +2709-01312 Africa/El_Aaiun ES +4024-00341 Europe/Madrid Spain (mainland) ES +3553-00519 Africa/Ceuta Ceuta, Melilla ES +2806-01524 Atlantic/Canary Canary Islands FI,AX +6010+02458 Europe/Helsinki FJ -1808+17825 Pacific/Fiji FK -5142-05751 Atlantic/Stanley FM +0519+16259 Pacific/Kosrae Kosrae FO +6201-00646 Atlantic/Faroe FR,MC +4852+00220 Europe/Paris GB,GG,IM,JE +513030-0000731 Europe/London GE +4143+04449 Asia/Tbilisi GF +0456-05220 America/Cayenne GI +3608-00521 Europe/Gibraltar GL +6411-05144 America/Nuuk Greenland (most areas) GL +7646-01840 America/Danmarkshavn National Park (east coast) GL +7029-02158 America/Scoresbysund Scoresbysund/Ittoqqortoormiit GL +7634-06847 America/Thule Thule/Pituffik GR +3758+02343 Europe/Athens GS -5416-03632 Atlantic/South_Georgia GT +1438-09031 America/Guatemala GU,MP +1328+14445 Pacific/Guam GW +1151-01535 Africa/Bissau GY +0648-05810 America/Guyana HK +2217+11409 Asia/Hong_Kong HN +1406-08713 America/Tegucigalpa HT +1832-07220 America/Port-au-Prince HU +4730+01905 Europe/Budapest ID -0610+10648 Asia/Jakarta Java, Sumatra ID -0002+10920 Asia/Pontianak Borneo (west, central) ID -0507+11924 Asia/Makassar Borneo (east, south); Sulawesi/Celebes, Bali, Nusa Tengarra; Timor (west) ID -0232+14042 Asia/Jayapura New Guinea (West Papua / Irian Jaya); Malukus/Moluccas IE +5320-00615 Europe/Dublin IL +314650+0351326 Asia/Jerusalem IN +2232+08822 Asia/Kolkata IO -0720+07225 Indian/Chagos IQ +3321+04425 Asia/Baghdad IR +3540+05126 Asia/Tehran IT,SM,VA +4154+01229 Europe/Rome JM +175805-0764736 America/Jamaica JO +3157+03556 Asia/Amman JP +353916+1394441 Asia/Tokyo KE,DJ,ER,ET,KM,MG,SO,TZ,UG,YT -0117+03649 Africa/Nairobi KG +4254+07436 Asia/Bishkek KI,MH,TV,UM,WF +0125+17300 Pacific/Tarawa Gilberts, Marshalls, Tuvalu, Wallis & Futuna, Wake KI -0247-17143 Pacific/Kanton Phoenix Islands KI +0152-15720 Pacific/Kiritimati Line Islands KP +3901+12545 Asia/Pyongyang KR +3733+12658 Asia/Seoul KZ +4315+07657 Asia/Almaty Kazakhstan (most areas) KZ +4448+06528 Asia/Qyzylorda Qyzylorda/Kyzylorda/Kzyl-Orda KZ +5312+06337 Asia/Qostanay Qostanay/Kostanay/Kustanay KZ +5017+05710 Asia/Aqtobe Aqtöbe/Aktobe KZ +4431+05016 Asia/Aqtau Mangghystaū/Mankistau KZ +4707+05156 Asia/Atyrau Atyraū/Atirau/Gur'yev KZ +5113+05121 Asia/Oral West Kazakhstan LB +3353+03530 Asia/Beirut LK +0656+07951 Asia/Colombo LR +0618-01047 Africa/Monrovia LT +5441+02519 Europe/Vilnius LV +5657+02406 Europe/Riga LY +3254+01311 Africa/Tripoli MA +3339-00735 Africa/Casablanca MD +4700+02850 Europe/Chisinau MH +0905+16720 Pacific/Kwajalein Kwajalein MM,CC +1647+09610 Asia/Yangon MN +4755+10653 Asia/Ulaanbaatar Mongolia (most areas) MN +4801+09139 Asia/Hovd Bayan-Ölgii, Govi-Altai, Hovd, Uvs, Zavkhan MN +4804+11430 Asia/Choibalsan Dornod, Sükhbaatar MO +221150+1133230 Asia/Macau MQ +1436-06105 America/Martinique MT +3554+01431 Europe/Malta MU -2010+05730 Indian/Mauritius MV,TF +0410+07330 Indian/Maldives Maldives, Kerguelen, St Paul I, Amsterdam I MX +1924-09909 America/Mexico_City Central Time MX +2105-08646 America/Cancun Eastern Standard Time - Quintana Roo MX +2058-08937 America/Merida Central Time - Campeche, Yucatán MX +2540-10019 America/Monterrey Central Time - Durango; Coahuila, Nuevo León, Tamaulipas (most areas) MX +2550-09730 America/Matamoros Central Time US - Coahuila, Nuevo León, Tamaulipas (US border) MX +2313-10625 America/Mazatlan Mountain Time - Baja California Sur, Nayarit, Sinaloa MX +2838-10605 America/Chihuahua Mountain Time - Chihuahua (most areas) MX +2934-10425 America/Ojinaga Mountain Time US - Chihuahua (US border) MX +2904-11058 America/Hermosillo Mountain Standard Time - Sonora MX +3232-11701 America/Tijuana Pacific Time US - Baja California MX +2048-10515 America/Bahia_Banderas Central Time - Bahía de Banderas MY,BN +0133+11020 Asia/Kuching Sabah, Sarawak, Brunei MZ,BI,BW,CD,MW,RW,ZM,ZW -2558+03235 Africa/Maputo Central Africa Time NA -2234+01706 Africa/Windhoek NC -2216+16627 Pacific/Noumea NF -2903+16758 Pacific/Norfolk NG,AO,BJ,CD,CF,CG,CM,GA,GQ,NE +0627+00324 Africa/Lagos West Africa Time NI +1209-08617 America/Managua NP +2743+08519 Asia/Kathmandu NR -0031+16655 Pacific/Nauru NU -1901-16955 Pacific/Niue NZ,AQ -3652+17446 Pacific/Auckland New Zealand time NZ -4357-17633 Pacific/Chatham Chatham Islands PA,CA,KY +0858-07932 America/Panama EST - Panama, Cayman, ON (Atikokan), NU (Coral H) PE -1203-07703 America/Lima PF -1732-14934 Pacific/Tahiti Society Islands PF -0900-13930 Pacific/Marquesas Marquesas Islands PF -2308-13457 Pacific/Gambier Gambier Islands PG,AQ,FM -0930+14710 Pacific/Port_Moresby Papua New Guinea (most areas), Chuuk, Yap, Dumont d'Urville PG -0613+15534 Pacific/Bougainville Bougainville PH +1435+12100 Asia/Manila PK +2452+06703 Asia/Karachi PL +5215+02100 Europe/Warsaw PM +4703-05620 America/Miquelon PN -2504-13005 Pacific/Pitcairn PR,AG,CA,AI,AW,BL,BQ,CW,DM,GD,GP,KN,LC,MF,MS,SX,TT,VC,VG,VI +182806-0660622 America/Puerto_Rico AST PS +3130+03428 Asia/Gaza Gaza Strip PS +313200+0350542 Asia/Hebron West Bank PT +3843-00908 Europe/Lisbon Portugal (mainland) PT +3238-01654 Atlantic/Madeira Madeira Islands PT +3744-02540 Atlantic/Azores Azores PW +0720+13429 Pacific/Palau PY -2516-05740 America/Asuncion QA,BH +2517+05132 Asia/Qatar RO +4426+02606 Europe/Bucharest RS,BA,HR,ME,MK,SI +4450+02030 Europe/Belgrade RU +5443+02030 Europe/Kaliningrad MSK-01 - Kaliningrad RU +554521+0373704 Europe/Moscow MSK+00 - Moscow area # Mention RU and UA alphabetically. See "territorial claims" above. RU,UA +4457+03406 Europe/Simferopol Crimea RU +5836+04939 Europe/Kirov MSK+00 - Kirov RU +4844+04425 Europe/Volgograd MSK+00 - Volgograd RU +4621+04803 Europe/Astrakhan MSK+01 - Astrakhan RU +5134+04602 Europe/Saratov MSK+01 - Saratov RU +5420+04824 Europe/Ulyanovsk MSK+01 - Ulyanovsk RU +5312+05009 Europe/Samara MSK+01 - Samara, Udmurtia RU +5651+06036 Asia/Yekaterinburg MSK+02 - Urals RU +5500+07324 Asia/Omsk MSK+03 - Omsk RU +5502+08255 Asia/Novosibirsk MSK+04 - Novosibirsk RU +5322+08345 Asia/Barnaul MSK+04 - Altai RU +5630+08458 Asia/Tomsk MSK+04 - Tomsk RU +5345+08707 Asia/Novokuznetsk MSK+04 - Kemerovo RU +5601+09250 Asia/Krasnoyarsk MSK+04 - Krasnoyarsk area RU +5216+10420 Asia/Irkutsk MSK+05 - Irkutsk, Buryatia RU +5203+11328 Asia/Chita MSK+06 - Zabaykalsky RU +6200+12940 Asia/Yakutsk MSK+06 - Lena River RU +623923+1353314 Asia/Khandyga MSK+06 - Tomponsky, Ust-Maysky RU +4310+13156 Asia/Vladivostok MSK+07 - Amur River RU +643337+1431336 Asia/Ust-Nera MSK+07 - Oymyakonsky RU +5934+15048 Asia/Magadan MSK+08 - Magadan RU +4658+14242 Asia/Sakhalin MSK+08 - Sakhalin Island RU +6728+15343 Asia/Srednekolymsk MSK+08 - Sakha (E); North Kuril Is RU +5301+15839 Asia/Kamchatka MSK+09 - Kamchatka RU +6445+17729 Asia/Anadyr MSK+09 - Bering Sea SA,AQ,KW,YE +2438+04643 Asia/Riyadh Arabia, Syowa SB,FM -0932+16012 Pacific/Guadalcanal Solomons, Pohnpei SD +1536+03232 Africa/Khartoum SG,MY +0117+10351 Asia/Singapore Singapore, peninsular Malaysia SR +0550-05510 America/Paramaribo SS +0451+03137 Africa/Juba ST +0020+00644 Africa/Sao_Tome SV +1342-08912 America/El_Salvador SY +3330+03618 Asia/Damascus TC +2128-07108 America/Grand_Turk TD +1207+01503 Africa/Ndjamena TH,CX,KH,LA,VN +1345+10031 Asia/Bangkok Indochina (most areas) TJ +3835+06848 Asia/Dushanbe TK -0922-17114 Pacific/Fakaofo TL -0833+12535 Asia/Dili TM +3757+05823 Asia/Ashgabat TN +3648+01011 Africa/Tunis TO -210800-1751200 Pacific/Tongatapu TR +4101+02858 Europe/Istanbul TW +2503+12130 Asia/Taipei UA +5026+03031 Europe/Kyiv Ukraine (most areas) UA +4837+02218 Europe/Uzhgorod Transcarpathia UA +4750+03510 Europe/Zaporozhye Zaporozhye and east Lugansk US +404251-0740023 America/New_York Eastern (most areas) US +421953-0830245 America/Detroit Eastern - MI (most areas) US +381515-0854534 America/Kentucky/Louisville Eastern - KY (Louisville area) US +364947-0845057 America/Kentucky/Monticello Eastern - KY (Wayne) US +394606-0860929 America/Indiana/Indianapolis Eastern - IN (most areas) US +384038-0873143 America/Indiana/Vincennes Eastern - IN (Da, Du, K, Mn) US +410305-0863611 America/Indiana/Winamac Eastern - IN (Pulaski) US +382232-0862041 America/Indiana/Marengo Eastern - IN (Crawford) US +382931-0871643 America/Indiana/Petersburg Eastern - IN (Pike) US +384452-0850402 America/Indiana/Vevay Eastern - IN (Switzerland) US +415100-0873900 America/Chicago Central (most areas) US +375711-0864541 America/Indiana/Tell_City Central - IN (Perry) US +411745-0863730 America/Indiana/Knox Central - IN (Starke) US +450628-0873651 America/Menominee Central - MI (Wisconsin border) US +470659-1011757 America/North_Dakota/Center Central - ND (Oliver) US +465042-1012439 America/North_Dakota/New_Salem Central - ND (Morton rural) US +471551-1014640 America/North_Dakota/Beulah Central - ND (Mercer) US +394421-1045903 America/Denver Mountain (most areas) US +433649-1161209 America/Boise Mountain - ID (south); OR (east) US,CA +332654-1120424 America/Phoenix MST - Arizona (except Navajo), Creston BC US +340308-1181434 America/Los_Angeles Pacific US +611305-1495401 America/Anchorage Alaska (most areas) US +581807-1342511 America/Juneau Alaska - Juneau area US +571035-1351807 America/Sitka Alaska - Sitka area US +550737-1313435 America/Metlakatla Alaska - Annette Island US +593249-1394338 America/Yakutat Alaska - Yakutat US +643004-1652423 America/Nome Alaska (west) US +515248-1763929 America/Adak Aleutian Islands US,UM +211825-1575130 Pacific/Honolulu Hawaii UY -345433-0561245 America/Montevideo UZ +3940+06648 Asia/Samarkand Uzbekistan (west) UZ +4120+06918 Asia/Tashkent Uzbekistan (east) VE +1030-06656 America/Caracas VN +1045+10640 Asia/Ho_Chi_Minh Vietnam (south) VU -1740+16825 Pacific/Efate WS -1350-17144 Pacific/Apia ZA,LS,SZ -2615+02800 Africa/Johannesburg # # The next section contains experimental tab-separated comments for # use by user agents like tzselect that identify continents and oceans. # # For example, the comment "#@AQAntarctica/" means the country code # AQ is in the continent Antarctica regardless of the Zone name, # so Pacific/Auckland should be listed under Antarctica as well as # under the Pacific because its line's country codes include AQ. # # If more than one country code is affected each is listed separated # by commas, e.g., #@IS,SHAtlantic/". If a country code is in # more than one continent or ocean, each is listed separated by # commas, e.g., the second column of "#@CY,TRAsia/,Europe/". # # These experimental comments are present only for country codes where # the continent or ocean is not already obvious from the Zone name. # For example, there is no such comment for RU since it already # corresponds to Zone names starting with both "Europe/" and "Asia/". # #@AQ Antarctica/ #@IS,SH Atlantic/ #@CY,TR Asia/,Europe/ #@SJ Arctic/ #@CC,CX,KM,MG,YT Indian/ ./tzdatabase/newctime.3.txt0000644000175000017500000002011213323151404015764 0ustar anthonyanthonyNEWCTIME(3) Library Functions Manual NEWCTIME(3) NAME asctime, ctime, difftime, gmtime, localtime, mktime - convert date and time SYNOPSIS #include extern char *tzname[]; /* (optional) */ char *ctime(time_t const *clock); char *ctime_r(time_t const *clock, char *buf); double difftime(time_t time1, time_t time0); char *asctime(struct tm const *tm); char *asctime_r(struct tm const *restrict tm, char *restrict result); struct tm *localtime(time_t const *clock); struct tm *localtime_r(time_t const *restrict clock, struct tm *restrict result); struct tm *localtime_rz(timezone_t restrict zone, time_t const *restrict clock, struct tm *restrict result); struct tm *gmtime(time_t const *clock); struct tm *gmtime_r(time_t const *restrict clock, struct tm *restrict result); time_t mktime(struct tm *tm); time_t mktime_z(timezone_t restrict zone, struct tm *restrict tm); cc ... -ltz DESCRIPTION Ctime converts a long integer, pointed to by clock, and returns a pointer to a string of the form Thu Nov 24 18:22:48 1986\n\0 Years requiring fewer than four characters are padded with leading zeroes. For years longer than four characters, the string is of the form Thu Nov 24 18:22:48 81986\n\0 with five spaces before the year. These unusual formats are designed to make it less likely that older software that expects exactly 26 bytes of output will mistakenly output misleading values for out-of- range years. The *clock timestamp represents the time in seconds since 1970-01-01 00:00:00 Coordinated Universal Time (UTC). The POSIX standard says that timestamps must be nonnegative and must ignore leap seconds. Many implementations extend POSIX by allowing negative timestamps, and can therefore represent timestamps that predate the introduction of UTC and are some other flavor of Universal Time (UT). Some implementations support leap seconds, in contradiction to POSIX. Localtime and gmtime return pointers to "tm" structures, described below. Localtime corrects for the time zone and any time zone adjustments (such as Daylight Saving Time in the United States). After filling in the "tm" structure, localtime sets the tm_isdst'th element of tzname to a pointer to a string that's the time zone abbreviation to be used with localtime's return value. Gmtime converts to Coordinated Universal Time. Asctime converts a time value contained in a "tm" structure to a string, as shown in the above example, and returns a pointer to the string. Mktime converts the broken-down time, expressed as local time, in the structure pointed to by tm into a calendar time value with the same encoding as that of the values returned by the time function. The original values of the tm_wday and tm_yday components of the structure are ignored, and the original values of the other components are not restricted to their normal ranges. (A positive or zero value for tm_isdst causes mktime to presume initially that daylight saving time respectively, is or is not in effect for the specified time. A negative value for tm_isdst causes the mktime function to attempt to divine whether daylight saving time is in effect for the specified time; in this case it does not use a consistent rule and may give a different answer when later presented with the same argument.) On successful completion, the values of the tm_wday and tm_yday components of the structure are set appropriately, and the other components are set to represent the specified calendar time, but with their values forced to their normal ranges; the final value of tm_mday is not set until tm_mon and tm_year are determined. Mktime returns the specified calendar time; If the calendar time cannot be represented, it returns -1. Difftime returns the difference between two calendar times, (time1 - time0), expressed in seconds. Ctime_r, localtime_r, gmtime_r, and asctime_r are like their unsuffixed counterparts, except that they accept an additional argument specifying where to store the result if successful. Localtime_rz and mktime_z are like their unsuffixed counterparts, except that they accept an extra initial zone argument specifying the timezone to be used for conversion. If zone is null, UT is used; otherwise, zone should be have been allocated by tzalloc and should not be freed until after all uses (e.g., by calls to strftime) of the filled-in tm_zone fields. Declarations of all the functions and externals, and the "tm" structure, are in the header file. The structure (of type) struct tm includes the following fields: int tm_sec; /* seconds (0-60) */ int tm_min; /* minutes (0-59) */ int tm_hour; /* hours (0-23) */ int tm_mday; /* day of month (1-31) */ int tm_mon; /* month of year (0-11) */ int tm_year; /* year - 1900 */ int tm_wday; /* day of week (Sunday = 0) */ int tm_yday; /* day of year (0-365) */ int tm_isdst; /* is daylight saving time in effect? */ char *tm_zone; /* time zone abbreviation (optional) */ long tm_gmtoff; /* offset from UT in seconds (optional) */ Tm_isdst is non-zero if daylight saving time is in effect. Tm_gmtoff is the offset (in seconds) of the time represented from UT, with positive values indicating east of the Prime Meridian. The field's name is derived from Greenwich Mean Time, a precursor of UT. In struct tm the tm_zone and tm_gmtoff fields exist, and are filled in, only if arrangements to do so were made when the library containing these functions was created. Similarly, the tzname variable is optional. There is no guarantee that these fields and this variable will continue to exist in this form in future releases of this code. FILES /usr/share/zoneinfo timezone information directory /usr/share/zoneinfo/localtime local timezone file /usr/share/zoneinfo/posixrules used with POSIX-style TZ's /usr/share/zoneinfo/GMT for UTC leap seconds If /usr/share/zoneinfo/GMT is absent, UTC leap seconds are loaded from /usr/share/zoneinfo/posixrules. SEE ALSO getenv(3), newstrftime(3), newtzset(3), time(2), tzfile(5) NOTES The return values of asctime, ctime, gmtime, and localtime point to static data overwritten by each call. The tzname variable (once set) and the tm_zone field of a returned struct tm both point to an array of characters that can be freed or overwritten by later calls to the functions localtime, tzfree, and tzset, if these functions affect the timezone information that specifies the abbreviation in question. The remaining functions and data are thread-safe. Asctime, asctime_r, ctime, and ctime_r behave strangely for years before 1000 or after 9999. The 1989 and 1999 editions of the C Standard say that years from -99 through 999 are converted without extra spaces, but this conflicts with longstanding tradition and with this implementation. The 2011 edition says that the behavior is undefined if the year is before 1000 or after 9999. Traditional implementations of these two functions are restricted to years in the range 1900 through 2099. To avoid this portability mess, new programs should use strftime instead. NEWCTIME(3) ./tzdatabase/backward0000644000175000017500000001207114272547645015001 0ustar anthonyanthony# tzdb links for backward compatibility # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. # This file provides links from old or merged timezone names to current ones. # Many names changed in late 1993, and many merged names moved here # in the period from 2013 through 2022. Several of these names are # also present in the file 'backzone', which has data important only # for pre-1970 timestamps and so is out of scope for tzdb proper. # Although this file is optional and tzdb will work if you omit it by # building with 'make BACKWARD=', in practice downstream users # typically use this file for backward compatibility. # Link TARGET LINK-NAME Link Africa/Nairobi Africa/Asmera Link Africa/Abidjan Africa/Timbuktu Link America/Argentina/Catamarca America/Argentina/ComodRivadavia Link America/Adak America/Atka Link America/Argentina/Buenos_Aires America/Buenos_Aires Link America/Argentina/Catamarca America/Catamarca Link America/Panama America/Coral_Harbour Link America/Argentina/Cordoba America/Cordoba Link America/Tijuana America/Ensenada Link America/Indiana/Indianapolis America/Fort_Wayne Link America/Nuuk America/Godthab Link America/Indiana/Indianapolis America/Indianapolis Link America/Argentina/Jujuy America/Jujuy Link America/Indiana/Knox America/Knox_IN Link America/Kentucky/Louisville America/Louisville Link America/Argentina/Mendoza America/Mendoza Link America/Toronto America/Montreal Link America/Rio_Branco America/Porto_Acre Link America/Argentina/Cordoba America/Rosario Link America/Tijuana America/Santa_Isabel Link America/Denver America/Shiprock Link America/Puerto_Rico America/Virgin Link Pacific/Auckland Antarctica/South_Pole Link Asia/Ashgabat Asia/Ashkhabad Link Asia/Kolkata Asia/Calcutta Link Asia/Shanghai Asia/Chongqing Link Asia/Shanghai Asia/Chungking Link Asia/Dhaka Asia/Dacca Link Asia/Shanghai Asia/Harbin Link Asia/Urumqi Asia/Kashgar Link Asia/Kathmandu Asia/Katmandu Link Asia/Macau Asia/Macao Link Asia/Yangon Asia/Rangoon Link Asia/Ho_Chi_Minh Asia/Saigon Link Asia/Jerusalem Asia/Tel_Aviv Link Asia/Thimphu Asia/Thimbu Link Asia/Makassar Asia/Ujung_Pandang Link Asia/Ulaanbaatar Asia/Ulan_Bator Link Atlantic/Faroe Atlantic/Faeroe Link Europe/Berlin Atlantic/Jan_Mayen Link Australia/Sydney Australia/ACT Link Australia/Sydney Australia/Canberra Link Australia/Hobart Australia/Currie Link Australia/Lord_Howe Australia/LHI Link Australia/Sydney Australia/NSW Link Australia/Darwin Australia/North Link Australia/Brisbane Australia/Queensland Link Australia/Adelaide Australia/South Link Australia/Hobart Australia/Tasmania Link Australia/Melbourne Australia/Victoria Link Australia/Perth Australia/West Link Australia/Broken_Hill Australia/Yancowinna Link America/Rio_Branco Brazil/Acre Link America/Noronha Brazil/DeNoronha Link America/Sao_Paulo Brazil/East Link America/Manaus Brazil/West Link America/Halifax Canada/Atlantic Link America/Winnipeg Canada/Central # This line is commented out, as the name exceeded the 14-character limit # and was an unused misnomer. #Link America/Regina Canada/East-Saskatchewan Link America/Toronto Canada/Eastern Link America/Edmonton Canada/Mountain Link America/St_Johns Canada/Newfoundland Link America/Vancouver Canada/Pacific Link America/Regina Canada/Saskatchewan Link America/Whitehorse Canada/Yukon Link America/Santiago Chile/Continental Link Pacific/Easter Chile/EasterIsland Link America/Havana Cuba Link Africa/Cairo Egypt Link Europe/Dublin Eire Link Etc/UTC Etc/UCT Link Europe/London Europe/Belfast Link Europe/Kyiv Europe/Kiev Link Europe/Chisinau Europe/Tiraspol Link Europe/London GB Link Europe/London GB-Eire Link Etc/GMT GMT+0 Link Etc/GMT GMT-0 Link Etc/GMT GMT0 Link Etc/GMT Greenwich Link Asia/Hong_Kong Hongkong Link Africa/Abidjan Iceland Link Asia/Tehran Iran Link Asia/Jerusalem Israel Link America/Jamaica Jamaica Link Asia/Tokyo Japan Link Pacific/Kwajalein Kwajalein Link Africa/Tripoli Libya Link America/Tijuana Mexico/BajaNorte Link America/Mazatlan Mexico/BajaSur Link America/Mexico_City Mexico/General Link Pacific/Auckland NZ Link Pacific/Chatham NZ-CHAT Link America/Denver Navajo Link Asia/Shanghai PRC Link Pacific/Kanton Pacific/Enderbury Link Pacific/Honolulu Pacific/Johnston Link Pacific/Guadalcanal Pacific/Ponape Link Pacific/Pago_Pago Pacific/Samoa Link Pacific/Port_Moresby Pacific/Truk Link Pacific/Port_Moresby Pacific/Yap Link Europe/Warsaw Poland Link Europe/Lisbon Portugal Link Asia/Taipei ROC Link Asia/Seoul ROK Link Asia/Singapore Singapore Link Europe/Istanbul Turkey Link Etc/UTC UCT Link America/Anchorage US/Alaska Link America/Adak US/Aleutian Link America/Phoenix US/Arizona Link America/Chicago US/Central Link America/Indiana/Indianapolis US/East-Indiana Link America/New_York US/Eastern Link Pacific/Honolulu US/Hawaii Link America/Indiana/Knox US/Indiana-Starke Link America/Detroit US/Michigan Link America/Denver US/Mountain Link America/Los_Angeles US/Pacific Link Pacific/Pago_Pago US/Samoa Link Etc/UTC UTC Link Etc/UTC Universal Link Europe/Moscow W-SU Link Etc/UTC Zulu ./tzdatabase/difftime.c0000644000175000017500000000263413323151404015213 0ustar anthonyanthony/* Return the difference between two timestamps. */ /* ** This file is in the public domain, so clarified as of ** 1996-06-05 by Arthur David Olson. */ /*LINTLIBRARY*/ #include "private.h" /* for time_t and TYPE_SIGNED */ /* Return -X as a double. Using this avoids casting to 'double'. */ static double dminus(double x) { return -x; } double difftime(time_t time1, time_t time0) { /* ** If double is large enough, simply convert and subtract ** (assuming that the larger type has more precision). */ if (sizeof (time_t) < sizeof (double)) { double t1 = time1, t0 = time0; return t1 - t0; } /* ** The difference of two unsigned values can't overflow ** if the minuend is greater than or equal to the subtrahend. */ if (!TYPE_SIGNED(time_t)) return time0 <= time1 ? time1 - time0 : dminus(time0 - time1); /* Use uintmax_t if wide enough. */ if (sizeof (time_t) <= sizeof (uintmax_t)) { uintmax_t t1 = time1, t0 = time0; return time0 <= time1 ? t1 - t0 : dminus(t0 - t1); } /* ** Handle cases where both time1 and time0 have the same sign ** (meaning that their difference cannot overflow). */ if ((time1 < 0) == (time0 < 0)) return time1 - time0; /* ** The values have opposite signs and uintmax_t is too narrow. ** This suffers from double rounding; attempt to lessen that ** by using long double temporaries. */ { long double t1 = time1, t0 = time0; return t1 - t0; } } ./tzdatabase/NEWS0000644000175000017500000062532614276564530014010 0ustar anthonyanthonyNews for the tz database Release 2022c - 2022-08-15 17:47:18 -0700 Briefly: Work around awk bug in FreeBSD, macOS, etc. Improve tzselect on intercontinental Zones. Changes to code Work around a bug in onetrueawk that broke commands like 'make traditional_tarballs' on FreeBSD, macOS, etc. (Problem reported by Deborah Goldsmith.) Add code to tzselect that uses experimental structured comments in zone1970.tab to clarify whether Zones like Africa/Abidjan and Europe/Istanbul cross continent or ocean boundaries. (Inspired by a problem reported by Peter Krefting.) Fix bug with 'zic -d /a/b/c' when /a is unwritable but the directory /a/b already exists. Remove zoneinfo2tdf.pl, as it was unused and triggered false malware alarms on some email servers. Release 2022b - 2022-08-10 15:38:32 -0700 Briefly: Chile's DST is delayed by a week in September 2022. Iran no longer observes DST after 2022. Rename Europe/Kiev to Europe/Kyiv. New zic -R option Vanguard form now uses %z. Finish moving duplicate-since-1970 zones to 'backzone'. New build option PACKRATLIST New tailored_tarballs target, replacing rearguard_tarballs Changes to future timestamps Chile's 2022 DST start is delayed from September 4 to September 11. (Thanks to Juan Correa.) Iran plans to stop observing DST permanently, after it falls back on 2022-09-21. (Thanks to Ali Mirjamali.) Changes to past timestamps Finish moving to 'backzone' the location-based zones whose timestamps since 1970 are duplicates; adjust links accordingly. This change ordinarily affects only pre-1970 timestamps, and with the new PACKRATLIST option it does not affect any timestamps. In this round the affected zones are Antarctica/Vostok, Asia/Brunei, Asia/Kuala_Lumpur, Atlantic/Reykjavik, Europe/Amsterdam, Europe/Copenhagen, Europe/Luxembourg, Europe/Monaco, Europe/Oslo, Europe/Stockholm, Indian/Christmas, Indian/Cocos, Indian/Kerguelen, Indian/Mahe, Indian/Reunion, Pacific/Chuuk, Pacific/Funafuti, Pacific/Majuro, Pacific/Pohnpei, Pacific/Wake and Pacific/Wallis, and the affected links are Arctic/Longyearbyen, Atlantic/Jan_Mayen, Iceland, Pacific/Ponape, Pacific/Truk, and Pacific/Yap. From fall 1994 through fall 1995, Shanks wrote that Crimea's DST transitions were at 02:00 standard time, not at 00:00. (Thanks to Michael Deckers.) Iran adopted standard time in 1935, not 1946. In 1977 it observed DST from 03-21 23:00 to 10-20 24:00; its 1978 transitions were on 03-24 and 08-05, not 03-20 and 10-20; and its spring 1979 transition was on 05-27, not 03-21. (Thanks to Roozbeh Pournader and Francis Santoni.) Chile's observance of -04 from 1946-08-29 through 1947-03-31 was considered DST, not standard time. Santiago and environs had moved their clocks back to rejoin the rest of mainland Chile; put this change at the end of 1946-08-28. (Thanks to Michael Deckers.) Some old, small clock transitions have been removed, as people at the time did not change their clocks. This affects Asia/Hong_Kong in 1904, Asia/Ho_Chi_Minh in 1906, and Europe/Dublin in 1880. Changes to zone name Rename Europe/Kiev to Europe/Kyiv, as "Kyiv" is more common in English now. Spelling of other names in Ukraine has not yet demonstrably changed in common English practice so for now these names retain old spellings, as in other countries (e.g., Europe/Prague not "Praha", and Europe/Sofia not "Sofiya"). Changes to code zic has a new option '-R @N' to output explicit transitions < N. (Need suggested by Almaz Mingaleev.) 'zic -r @N' no longer outputs bad data when N < first transition. (Problem introduced in 2021d and reported by Peter Krefting.) zic now checks its input for NUL bytes and unterminated lines, and now supports input line lengths up to 2048 (not 512) bytes. gmtime and related code now use the abbreviation "UTC" not "GMT". POSIX is being revised to require this. When tzset and related functions set vestigial static variables like tzname, they now prefer specified timestamps to unspecified ones. (Problem reported by Almaz Mingaleev.) zic no longer complains "can't determine time zone abbreviation to use just after until time" when a transition to a new standard time occurs simultaneously with the first DST fallback transition. Changes to build procedure Source data in vanguard form now uses the %z notation, introduced in release 2015f. For example, for America/Sao_Paulo vanguard form contains the zone continuation line "-3:00 Brazil %z", which is simpler and more reliable than the line "-3:00 Brazil -03/-02" used in main and rearguard forms. The plan is for the main form to use %z eventually; in the meantime maintainers of zi parsers are encouraged to test the parsers on vanguard.zi. The Makefile has a new PACKRATLIST option to select a subset of 'backzone'. For example, 'make PACKRATDATA=backzone PACKRATLIST=zone.tab' now generates TZif files identical to those of the global-tz project. The Makefile has a new tailored_tarballs target for generating special-purpose tarballs. It generalizes and replaces the rearguard_tarballs target and related targets and macros, which are now obsolescent. 'make install' now defaults LOCALTIME to Factory not GMT, which means the default abbreviation is now "-00" not "GMT". Remove the posix_packrat target, marked obsolescent in 2016a. Release 2022a - 2022-03-15 23:02:01 -0700 Briefly: Palestine will spring forward on 2022-03-27, not -03-26. zdump -v now outputs better failure indications. Bug fixes for code that reads corrupted TZif data. Changes to future timestamps Palestine will spring forward on 2022-03-27, not 2022-03-26. (Thanks to Heba Hamad.) Predict future transitions for first Sunday >= March 25. Additionally, predict fallbacks to be the first Friday on or after October 23, not October's last Friday, to be more consistent with recent practice. The first differing fallback prediction is on 2025-10-24, not 2025-10-31. Changes to past timestamps From 1992 through spring 1996, Ukraine's DST transitions were at 02:00 standard time, not at 01:00 UTC. (Thanks to Alois Treindl.) Chile's Santiago Mean Time and its LMT precursor have been adjusted eastward by 1 second to align with past and present law. Changes to commentary Add several references for Chile's 1946/1947 transitions, some of which only affected portions of the country. Changes to code Fix bug when mktime gets confused by truncated TZif files with unspecified local time. (Problem reported by Almaz Mingaleev.) Fix bug when 32-bit time_t code reads malformed 64-bit TZif data. (Problem reported by Christos Zoulas.) When reading a version 2 or later TZif file, the TZif reader now validates the version 1 header and data block only enough to skip over them, as recommended by RFC 8536 section 4. Also, the TZif reader no longer mistakenly attempts to parse a version 1 TZIf file header as a TZ string. zdump -v now outputs "(localtime failed)" and "(gmtime failed)" when local time and UT cannot be determined for a timestamp. Changes to build procedure Distribution tarballs now use standard POSIX.1-1988 ustar format instead of GNU format. Although the formats are almost identical for these tarballs, ustar headers' magic fields contain "ustar" instead of "ustar ", and their version fields contain "00" instead of " ". The two formats are planned to diverge more significantly for tzdb releases after 2242-03-16 12:56:31 UTC, when the ustar format becomes obsolete and the tarballs switch to pax format, an extension of ustar. For details about these formats, please see "pax - portable archive interchange", IEEE Std 1003.1-2017, . Release 2021e - 2021-10-21 18:41:00 -0700 Changes to future timestamps Palestine will fall back 10-29 (not 10-30) at 01:00. (Thanks to P Chan and Heba Hemad.) Release 2021d - 2021-10-15 13:48:18 -0700 Briefly: Fiji suspends DST for the 2021/2022 season. 'zic -r' marks unspecified timestamps with "-00". Changes to future timestamps Fiji will suspend observance of DST for the 2021/2022 season. Assume for now that it will return next year. (Thanks to Jashneel Kumar and P Chan.) Changes to code 'zic -r' now uses "-00" time zone abbreviations for intervals with UT offsets that are unspecified due to -r truncation. This implements a change in draft Internet RFC 8536bis. Release 2021c - 2021-10-01 14:21:49 -0700 Briefly: Revert most 2021b changes to 'backward'. Fix 'zic -b fat' bug in pre-1970 32-bit data. Fix two Link line typos. Distribute SECURITY file. This release is intended as a bugfix release, to fix compatibility problems and typos reported since 2021b was released. Changes to Link directives Revert almost all of 2021b's changes to the 'backward' file, by moving Link directives back to where they were in 2021a. Although 'zic' doesn't care which source file contains a Link directive, some downstream uses ran into trouble with the move. (Problem reported by Stephen Colebourne for Joda-Time.) Fix typo that linked Atlantic/Jan_Mayen to the wrong location (problem reported by Chris Walton). Fix 'backzone' typo that linked America/Virgin to the wrong location (problem reported by Michael Deckers). Changes to code Fix a bug in 'zic -b fat' that caused old timestamps to be mishandled in 32-bit-only readers (problem reported by Daniel Fischer). Changes to documentation Distribute the SECURITY file (problem reported by Andreas Radke). Release 2021b - 2021-09-24 16:23:00 -0700 Briefly: Jordan now starts DST on February's last Thursday. Samoa no longer observes DST. Merge more location-based Zones whose timestamps agree since 1970. Move some backward-compatibility links to 'backward'. Rename Pacific/Enderbury to Pacific/Kanton. Correct many pre-1993 transitions in Malawi, Portugal, etc. zic now creates each output file or link atomically. zic -L no longer omits the POSIX TZ string in its output. zic fixes for truncation and leap second table expiration. zic now follows POSIX for TZ strings using all-year DST. Fix some localtime crashes and bugs in obscure cases. zdump -v now outputs more-useful boundary cases. tzfile.5 better matches a draft successor to RFC 8536. A new file SECURITY. This release is prompted by recent announcements by Jordan and Samoa. It incorporates many other changes that had accumulated since 2021a. However, it omits most proposed changes that merged all Zones agreeing since 1970, as concerns were raised about doing too many of these changes at once. It does keeps some of these changes in the interest of making tzdb more equitable one step at a time; see "Merge more location-based Zones" below. Changes to future timestamps Jordan now starts DST on February's last Thursday. (Thanks to Steffen Thorsen.) Samoa no longer observes DST. (Thanks to Geoffrey D. Bennett.) Changes to zone name Rename Pacific/Enderbury to Pacific/Kanton. When we added Enderbury in 1993, we did not know that it is uninhabited and that Kanton (population two dozen) is the only inhabited location in that timezone. The old name is now a backward-compatibility link. Changes to past timestamps Correct many pre-1993 transitions, fixing entries originally derived from Shanks, Whitman, and Mundell. The fixes include: - Barbados: standard time was introduced in 1911, not 1932; and DST was observed in 1942-1944 - Cook Islands: In 1899 they switched from east to west of GMT, celebrating Christmas for two days. They (and Niue) switched to standard time in 1952, not 1901. - Guyana: corrected LMT for Georgetown; the introduction of standard time in 1911, not 1915; and corrections to 1975 and 1992 transitions - Kanton: uninhabited before 1937-08-31 - Niue: only observed -11:20 from 1952 through 1964, then went to -11 instead of -11:30 - Portugal: DST was observed in 1950 - Tonga: corrected LMT; the introduction of standard time in 1945, not 1901; and corrections to the transition from +12:20 to +13 in 1961, not 1941 Additional fixes to entries in the 'backzone' file include: - Enderbury: inhabited only 1860/1885 and 1938-03-06/1942-02-09 - The Gambia: 1933 and 1942 transitions - Malawi: several 1911 through 1925 transitions - Sierra Leone: several 1913 through 1941 transitions, and DST was NOT observed in 1957 through 1962 (Thanks to P Chan, Michael Deckers, Alexander Krivenyshev and Alois Treindl.) Merge more location-based Zones whose timestamps agree since 1970, as pre-1970 timestamps are out of scope. This is part of a process that has been ongoing since 2013. This does not affect post-1970 timestamps, and timezone historians who build with 'make PACKRATDATA=backzone' should see no changes to pre-1970 timestamps. When merging, keep the most-populous location's data, and move data for other locations to 'backzone' with a backward link in 'backward'. For example, move America/Creston data to 'backzone' with a link in 'backward' from America/Phoenix because the two timezones' timestamps agree since 1970; this change affects some pre-1968 timestamps in America/Creston because Creston and Phoenix disagreed before 1968. The affected Zones are Africa/Accra, America/Atikokan, America/Blanc-Sablon, America/Creston, America/Curacao, America/Nassau, America/Port_of_Spain, Antarctica/DumontDUrville, and Antarctica/Syowa. Changes to maintenance procedure The new file SECURITY covers how to report security-related bugs. Several backward-compatibility links have been moved to the 'backward' file. These links, which range from Africa/Addis_Ababa to Pacific/Saipan, are only for compatibility with now-obsolete guidelines suggesting an entry for every ISO 3166 code. The intercontinental convenience links Asia/Istanbul and Europe/Nicosia have also been moved to 'backward'. Changes to code zic now creates each output file or link atomically, possibly by creating a temporary file and then renaming it. This avoids races where a TZ setting would temporarily stop working while zic was installing a replacement file or link. zic -L no longer omits the POSIX TZ string in its output. Starting with 2020a, zic -L truncated its output according to the "Expires" directive or "#expires" comment in the leapseconds file. The resulting TZif files omitted daylight saving transitions after the leap second table expired, which led to far less-accurate predictions of times after the expiry. Although future timestamps cannot be converted accurately in the presence of leap seconds, it is more accurate to convert near-future timestamps with a few seconds error than with an hour error, so zic -L no longer truncates output in this way. Instead, when zic -L is given the "Expires" directive, it now outputs the expiration by appending a no-change entry to the leap second table. Although this should work well with most TZif readers, it does not conform to Internet RFC 8536 and some pickier clients (including tzdb 2017c through 2021a) reject it, so "Expires" directives are currently disabled by default. To enable them, set the EXPIRES_LINE Makefile variable. If a TZif file uses this new feature it is marked with a new TZif version number 4, a format intended to be documented in a successor to RFC 8536. zic -L LEAPFILE -r @LO no longer generates an invalid TZif file that omits leap second information for the range LO..B when LO falls between two leap seconds A and B. Instead, it generates a TZif version 4 file that represents the previously-missing information. The TZif reader now allows the leap second table to begin with a correction other than -1 or +1, and to contain adjacent transitions with equal corrections. This supports TZif version 4. The TZif reader now lets leap seconds occur less than 28 days apart. This supports possible future TZif extensions. Fix bug that caused 'localtime' etc. to crash when TZ was set to a all-year DST string like "EST5EDT4,0/0,J365/25" that does not conform to POSIX but does conform to Internet RFC 8536. Fix another bug that caused 'localtime' etc. to crash when TZ was set to a POSIX-conforming but unusual TZ string like "EST5EDT4,0/0,J365/0", where almost all the year is DST. Fix yet another bug that caused 'localtime' etc. to mishandle slim TZif files containing leap seconds after the last explicit transition in the table, or when handling far-future timestamps in slim TZif files lacking leap seconds. Fix localtime misbehavior involving positive leap seconds. This change affects only behavior for "right" system time, which contains leap seconds, and only if the UT offset is not a multiple of 60 seconds when a positive leap second occurs. (No such timezone exists in tzdb, luckily.) Without the fix, the timestamp was ambiguous during a positive leap second. With the fix, any seconds occurring after a positive leap second and within the same localtime minute are counted through 60, not through 59; their UT offset (tm_gmtoff) is the same as before. Here is how the fix affects timestamps in a timezone with UT offset +01:23:45 (5025 seconds) and with a positive leap second at 1972-06-30 23:59:60 UTC (78796800): time_t without the fix with the fix 78796800 1972-07-01 01:23:45 1972-07-01 01:23:45 (leap second) 78796801 1972-07-01 01:23:45 1972-07-01 01:23:46 ... 78796815 1972-07-01 01:23:59 1972-07-01 01:23:60 78796816 1972-07-01 01:24:00 1972-07-01 01:24:00 Fix an unlikely bug that caused 'localtime' etc. to misbehave if civil time changes a few seconds before time_t wraps around, when leap seconds are enabled. Fix bug in zic -r; in some cases, the dummy time type after the last time transition disagreed with the TZ string, contrary to Internet RFC 8563 section 3.3. Fix a bug with 'zic -r @X' when X is a negative leap second that has a nonnegative correction. Without the fix, the output file was truncated so that X appeared to be a positive leap second. Fix a similar, even-less-likely bug when truncating at a positive leap second that has a nonpositive correction. zic -r now reports an error if given rolling leap seconds, as this usage has never generally worked and is evidently unused. zic now generates a POSIX-conforming TZ string for TZif files where all-year DST is predicted for the indefinite future. For example, for all-year Eastern Daylight Time, zic now generates "XXX3EDT4,0/0,J365/23" where it previously generated "EST5EDT,0/0,J365/25" or "". (Thanks to Michael Deckers for noting the possibility of POSIX conformance.) zic.c no longer requires sys/wait.h (thanks to spazmodius for noting it wasn't needed). When reading slim TZif files, zdump no longer mishandles leap seconds on the rare platforms where time_t counts leap seconds, fixing a bug introduced in 2014g. zdump -v now outputs timestamps at boundaries of what localtime and gmtime can represent, instead of the less-useful timestamps one day after the minimum and one day before the maximum. (Thanks to Arthur David Olson for prototype code, and to Manuela Friedrich for debugging help.) zdump's -c and -t options are now consistently inclusive for the lower time bound and exclusive for the upper. Formerly they were inconsistent. (Confusion noted by Martin Burnicki.) Changes to build procedure You can now compile with -DHAVE_MALLOC_ERRNO=0 to port to non-POSIX hosts where malloc doesn't set errno. (Problem reported by Jan Engelhardt.) Changes to documentation tzfile.5 better matches a draft successor to RFC 8536 . Release 2021a - 2021-01-24 10:54:57 -0800 Changes to future timestamps South Sudan changes from +03 to +02 on 2021-02-01 at 00:00. (Thanks to Steffen Thorsen.) Release 2020f - 2020-12-29 00:17:46 -0800 Change to build procedure 'make rearguard_tarballs' no longer generates a bad rearguard.zi, fixing a 2020e bug. (Problem reported by Deborah Goldsmith.) Release 2020e - 2020-12-22 15:14:34 -0800 Briefly: Volgograd switches to Moscow time on 2020-12-27 at 02:00. Changes to future timestamps Volgograd changes time zone from +04 to +03 on 2020-12-27 at 02:00. (Thanks to Alexander Krivenyshev and Stepan Golosunov.) Changes to past timestamps Correct many pre-1986 transitions, fixing entries originally derived from Shanks. The fixes include: - Australia: several 1917 through 1971 transitions - The Bahamas: several 1941 through 1945 transitions - Bermuda: several 1917 through 1956 transitions - Belize: several 1942 through 1968 transitions - Ghana: several 1915 through 1956 transitions - Israel and Palestine: several 1940 through 1985 transitions - Kenya and adjacent: several 1908 through 1960 transitions - Nigeria and adjacent: correcting LMT in Lagos, and several 1905 through 1919 transitions - Seychelles: the introduction of standard time in 1907, not 1906 - Vanuatu: DST in 1973-1974, and a corrected 1984 transition (Thanks to P Chan.) Because of the Australia change, Australia/Currie (King Island) is no longer needed, as it is identical to Australia/Hobart for all timestamps since 1970 and was therefore created by mistake. Australia/Currie has been moved to the 'backward' file and its corrected data moved to the 'backzone' file. Changes to past time zone abbreviations and DST flags To better match legislation in Turks and Caicos, the 2015 shift to year-round observance of -04 is now modeled as AST throughout before returning to Eastern Time with US DST in 2018, rather than as maintaining EDT until 2015-11-01. (Thanks to P Chan.) Changes to documentation The zic man page now documents zic's coalescing of transitions when a zone falls back just before DST springs forward. Release 2020d - 2020-10-21 11:24:13 -0700 Briefly: Palestine ends DST earlier than predicted, on 2020-10-24. Changes to past and future timestamps Palestine ends DST on 2020-10-24 at 01:00, instead of 2020-10-31 as previously predicted (thanks to Sharef Mustafa.) Its 2019-10-26 fall-back was at 00:00, not 01:00 (thanks to Steffen Thorsen.) Its 2015-10-23 transition was at 01:00 not 00:00, and its spring 2020 transition was on March 28 at 00:00, not March 27 (thanks to Pierre Cashon.) This affects Asia/Gaza and Asia/Hebron. Assume future spring and fall transitions will be on the Saturday preceding the last Sunday of March and October, respectively. Release 2020c - 2020-10-16 11:15:53 -0700 Briefly: Fiji starts DST later than usual, on 2020-12-20. Changes to future timestamps Fiji will start DST on 2020-12-20, instead of 2020-11-08 as previously predicted. DST will still end on 2021-01-17. (Thanks to Raymond Kumar and Alan Mintz.) Assume for now that the later-than-usual start date is a one-time departure from the recent pattern. Changes to build procedure Rearguard tarballs now contain an empty file pacificnew. Some older downstream software expects this file to exist. (Problem reported by Mike Cullinan.) Release 2020b - 2020-10-06 18:35:04 -0700 Briefly: Revised predictions for Morocco's changes starting in 2023. Canada's Yukon changes to -07 on 2020-11-01, not 2020-03-08. Macquarie Island has stayed in sync with Tasmania since 2011. Casey, Antarctica is at +08 in winter and +11 in summer. zic no longer supports -y, nor the TYPE field of Rules. Changes to future timestamps Morocco's spring-forward after Ramadan is now predicted to occur no sooner than two days after Ramadan, instead of one day. (Thanks to Milamber.) The first altered prediction is for 2023, now predicted to spring-forward on April 30 instead of April 23. Changes to past and future timestamps Casey Station, Antarctica has been using +08 in winter and +11 in summer since 2018. The most recent transition from +08 to +11 was 2020-10-04 00:01. Also, Macquarie Island has been staying in sync with Tasmania since 2011. (Thanks to Steffen Thorsen.) Changes to past and future time zone abbreviations and DST flags Canada's Yukon, represented by America/Whitehorse and America/Dawson, changes its time zone rules from -08/-07 to permanent -07 on 2020-11-01, not on 2020-03-08 as 2020a had it. This change affects only the time zone abbreviation (MST vs PDT) and daylight saving flag for the period between the two dates. (Thanks to Andrew G. Smith.) Changes to past timestamps Correct several transitions for Hungary for 1918/1983. For example, the 1983-09-25 fall-back was at 01:00, not 03:00. (Thanks to Géza Nyáry.) Also, the 1890 transition to standard time was on 11-01, not 10-01 (thanks to Michael Deckers). The 1891 French transition was on March 16, not March 15. The 1911-03-11 French transition was at midnight, not a minute later. Monaco's transitions were on 1892-06-01 and 1911-03-29, not 1891-03-15 and 1911-03-11. (Thanks to Michael Deckers.) Changes to code Support for zic's long-obsolete '-y YEARISTYPE' option has been removed and, with it, so has support for the TYPE field in Rule lines, which is now reserved for compatibility with earlier zic. These features were previously deprecated in release 2015f. (Thanks to Tim Parenti.) zic now defaults to '-b slim' instead of to '-b fat'. zic's new '-l -' and '-p -' options uninstall any existing localtime and posixrules files, respectively. The undocumented and ineffective tzsetwall function has been removed. Changes to build procedure The Makefile now defaults POSIXRULES to '-', so the posixrules feature (obsolete as of 2019b) is no longer installed by default. Changes to documentation and commentary The long-obsolete files pacificnew, systemv, and yearistype.sh have been removed from the distribution. (Thanks to Tim Parenti.) Release 2020a - 2020-04-23 16:03:47 -0700 Briefly: Morocco springs forward on 2020-05-31, not 2020-05-24. Canada's Yukon advanced to -07 year-round on 2020-03-08. America/Nuuk renamed from America/Godthab. zic now supports expiration dates for leap second lists. Changes to future timestamps Morocco's second spring-forward transition in 2020 will be May 31, not May 24 as predicted earlier. (Thanks to Semlali Naoufal.) Adjust future-year predictions to use the first Sunday after the day after Ramadan, not the first Sunday after Ramadan. Canada's Yukon, represented by America/Whitehorse and America/Dawson, advanced to -07 year-round, beginning with its spring-forward transition on 2020-03-08, and will not fall back on 2020-11-01. Although a government press release calls this "permanent Pacific Daylight Saving Time", we prefer MST for consistency with nearby Dawson Creek, Creston, and Fort Nelson. (Thanks to Tim Parenti.) Changes to past timestamps Shanghai observed DST in 1919. (Thanks to Phake Nick.) Changes to timezone identifiers To reflect current usage in English better, America/Godthab has been renamed to America/Nuuk. A backwards-compatibility link remains for the old name. Changes to code localtime.c no longer mishandles timestamps after the last transition in a TZif file with leap seconds and with daylight saving time transitions projected into the indefinite future. For example, with TZ='America/Los_Angeles' with leap seconds, zdump formerly reported a DST transition on 2038-03-14 from 01:59:32.999... to 02:59:33 instead of the correct transition from 01:59:59.999... to 03:00:00. zic -L now supports an Expires line in the leapseconds file, and truncates the TZif output accordingly. This propagates leap second expiration information into the TZif file, and avoids the abovementioned localtime.c bug as well as similar bugs present in many client implementations. If no Expires line is present, zic -L instead truncates the TZif output based on the #expires comment present in leapseconds files distributed by tzdb 2018f and later; however, this usage is obsolescent. For now, the distributed leapseconds file has an Expires line that is commented out, so that the file can be fed to older versions of zic which ignore the commented-out line. Future tzdb distributions are planned to contain a leapseconds file with an Expires line. The configuration macros HAVE_TZNAME and USG_COMPAT should now be set to 1 if the system library supports the feature, and 2 if not. As before, these macros are nonzero if tzcode should support the feature, zero otherwise. The configuration macro ALTZONE now has the same values with the same meaning as HAVE_TZNAME and USG_COMPAT. The code's defense against CRLF in leap-seconds.list is now portable to POSIX awk. (Problem reported by Deborah Goldsmith.) Although the undocumented tzsetwall function is not changed in this release, it is now deprecated in preparation for removal in future releases. Due to POSIX requirements, tzsetwall has not worked for some time. Any code that uses it should instead use tzalloc(NULL) or, if portability trumps thread-safety, should unset the TZ environment variable. Changes to commentary The Îles-de-la-Madeleine and the Listuguj reserve are noted as following America/Halifax, and comments about Yukon's "south" and "north" have been corrected to say "east" and "west". (Thanks to Jeffery Nichols.) Release 2019c - 2019-09-11 08:59:48 -0700 Briefly: Fiji observes DST from 2019-11-10 to 2020-01-12. Norfolk Island starts observing Australian-style DST. Changes to future timestamps Fiji's next DST transitions will be 2019-11-10 and 2020-01-12 instead of 2019-11-03 and 2020-01-19. (Thanks to Raymond Kumar.) Adjust future guesses accordingly. Norfolk Island will observe Australian-style DST starting in spring 2019. The first transition is on 2019-10-06. (Thanks to Kyle Czech and Michael Deckers.) Changes to past timestamps Many corrections to time in Turkey from 1940 through 1985. (Thanks to Oya Vulaş via Alois Treindl, and to Kıvanç Yazan.) The Norfolk Island 1975-03-02 transition was at 02:00 standard time, not 02:00 DST. (Thanks to Michael Deckers.) South Korea observed DST from 1948 through 1951. Although this info was supposed to appear in release 2014j, a typo inadvertently suppressed the change. (Thanks to Alois Treindl.) Detroit observed DST in 1967 and 1968 following the US DST rules, except that its 1967 DST began on June 14 at 00:01. (Thanks to Alois Treindl for pointing out that the old data entries were probably wrong.) Fix several errors in pre-1970 transitions in Perry County, IN. (Thanks to Alois Treindl for pointing out the 1967/9 errors.) Edmonton did not observe DST in 1967 or 1969. In 1946 Vancouver ended DST on 09-29 not 10-13, and Vienna ended DST on 10-07 not 10-06. In 1945 Königsberg (now Kaliningrad) switched from +01/+02 to +02/+03 on 04-10 not 01-01, and its +02/+03 is abbreviated EET/EEST, not CET/CEST. (Thanks to Alois Treindl.) In 1946 Königsberg switched to +03 on 04-07 not 01-01. In 1946 Louisville switched from CST to CDT on 04-28 at 00:01, not 01-01 at 00:00. (Thanks to Alois Treindl and Michael Deckers.) Also, it switched from CST to CDT on 1950-04-30, not 1947-04-27. The 1892-05-01 transition in Brussels was at 00:17:30, not at noon. (Thanks to Michael Deckers.) Changes to past time zone abbreviations and DST flags Hong Kong Winter Time, observed from 1941-10-01 to 1941-12-25, is now flagged as DST and is abbreviated HKWT not HKT. Changes to code leapseconds.awk now relies only on its input data, rather than also relying on its comments. (Inspired by code from Dennis Ferguson and Chris Woodbury.) The code now defends against CRLFs in leap-seconds.list. (Thanks to Brian Inglis and Chris Woodbury.) Changes to documentation and commentary theory.html discusses leap seconds. (Thanks to Steve Summit.) Nashville's newspapers dueled about the time of day in the 1950s. (Thanks to John Seigenthaler.) Liechtenstein observed Swiss DST in 1941/2. (Thanks to Alois Treindl.) Release 2019b - 2019-07-01 00:09:53 -0700 Briefly: Brazil no longer observes DST. 'zic -b slim' outputs smaller TZif files; please try it out. Palestine's 2019 spring-forward transition was on 03-29, not 03-30. Changes to future timestamps Brazil has canceled DST and will stay on standard time indefinitely. (Thanks to Steffen Thorsen, Marcus Diniz, and Daniel Soares de Oliveira.) Predictions for Morocco now go through 2087 instead of 2037, to work around a problem on newlib when using TZif files output by zic 2019a or earlier. (Problem reported by David Gauchard.) Changes to past and future timestamps Palestine's 2019 spring transition was 03-29 at 00:00, not 03-30 at 01:00. (Thanks to Sharef Mustafa and Even Scharning.) Guess future transitions to be March's last Friday at 00:00. Changes to past timestamps Hong Kong's 1941-06-15 spring-forward transition was at 03:00, not 03:30. Its 1945 transition from JST to HKT was on 11-18 at 02:00, not 09-15 at 00:00. In 1946 its spring-forward transition was on 04-21 at 00:00, not the previous day at 03:30. From 1946 through 1952 its fall-back transitions occurred at 04:30, not at 03:30. In 1947 its fall-back transition was on 11-30, not 12-30. (Thanks to P Chan.) Changes to past time zone abbreviations Italy's 1866 transition to Rome Mean Time was on December 12, not September 22. This affects only the time zone abbreviation for Europe/Rome between those dates. (Thanks to Stephen Trainor and Luigi Rosa.) Changes affecting metadata only Add info about the Crimea situation in zone1970.tab and zone.tab. (Problem reported by Serhii Demediuk.) Changes to code zic's new -b option supports a way to control data bloat and to test for year-2038 bugs in software that reads TZif files. 'zic -b fat' and 'zic -b slim' generate larger and smaller output; for example, changing from fat to slim shrinks the Europe/London file from 3648 to 1599 bytes, saving about 56%. Fat and slim files represent the same set of timestamps and use the same TZif format as documented in tzfile(5) and in Internet RFC 8536. Fat format attempts to work around bugs or incompatibilities in older software, notably software that mishandles 64-bit TZif data or uses obsolete TZ strings like "EET-2EEST" that lack DST rules. Slim format is more efficient and does not work around 64-bit bugs or obsolete TZ strings. Currently zic defaults to fat format unless you compile with -DZIC_BLOAT_DEFAULT=\"slim\"; this out-of-the-box default is intended to change in future releases as the buggy software often mishandles timestamps anyway. zic no longer treats a set of rules ending in 2037 specially. Previously, zic assumed that such a ruleset meant that future timestamps could not be predicted, and therefore omitted a POSIX-like TZ string in the TZif output. The old behavior is no longer needed for current tzdata, and caused problems with newlib when used with older tzdata (reported by David Gauchard). zic no longer generates some artifact transitions. For example, Europe/London no longer has a no-op transition in January 1996. Changes to build procedure tzdata.zi now assumes zic 2017c or later. This shrinks tzdata.zi by a percent or so. Changes to documentation and commentary The Makefile now documents the POSIXRULES macro as being obsolete, and similarly, zic's -p POSIXRULES option is now documented as being obsolete. Although the POSIXRULES feature still exists and works as before, in practice it is rarely used for its intended purpose, and it does not work either in the default reference implementation (for timestamps after 2037) or in common implementations such as GNU/Linux (for contemporary timestamps). Since POSIXRULES was designed primarily as a temporary transition facility for System V platforms that died off decades ago, it is being decommissioned rather than institutionalized. New info on Bonin Islands and Marcus (thanks to Wakaba and Phake Nick). Release 2019a - 2019-03-25 22:01:33 -0700 Briefly: Palestine "springs forward" on 2019-03-30 instead of 2019-03-23. Metlakatla "fell back" to rejoin Alaska Time on 2019-01-20 at 02:00. Changes to past and future timestamps Palestine will not start DST until 2019-03-30, instead of 2019-03-23 as previously predicted. Adjust our prediction by guessing that spring transitions will be between 24 and 30 March, which matches recent practice since 2016. (Thanks to Even Scharning and Tim Parenti.) Metlakatla ended its observance of Pacific standard time, rejoining Alaska Time, on 2019-01-20 at 02:00. (Thanks to Ryan Stanley and Tim Parenti.) Changes to past timestamps Israel observed DST in 1980 (08-02/09-13) and 1984 (05-05/08-25). (Thanks to Alois Treindl and Isaac Starkman.) Changes to time zone abbreviations Etc/UCT is now a backward-compatibility link to Etc/UTC, instead of being a separate zone that generates the abbreviation "UCT", which nowadays is typically a typo. (Problem reported by Isiah Meadows.) Changes to code zic now has an -r option to limit the time range of output data. For example, 'zic -r @1000000000' limits the output data to timestamps starting 1000000000 seconds after the Epoch. This helps shrink output size and can be useful for applications not needing the full timestamp history, such as TZDIST truncation; see Internet RFC 8536 section 5.1. (Inspired by a feature request from Christopher Wong, helped along by bug reports from Wong and from Tim Parenti.) Changes to documentation Mention Internet RFC 8536 (February 2019), which documents TZif. tz-link.html now cites tzdata-meta . Release 2018i - 2018-12-30 11:05:43 -0800 Briefly: São Tomé and Príncipe switches from +01 to +00 on 2019-01-01. Changes to future timestamps Due to a change in government, São Tomé and Príncipe switches back from +01 to +00 on 2019-01-01 at 02:00. (Thanks to Vadim Nasardinov and Michael Deckers.) Release 2018h - 2018-12-23 17:59:32 -0800 Briefly: Qyzylorda, Kazakhstan moved from +06 to +05 on 2018-12-21. New zone Asia/Qostanay because Qostanay, Kazakhstan didn't move. Metlakatla, Alaska observes PST this winter only. Guess Morocco will continue to adjust clocks around Ramadan. Add predictions for Iran from 2038 through 2090. Changes to future timestamps Guess that Morocco will continue to fall back just before and spring forward just after Ramadan, the practice since 2012. (Thanks to Maamar Abdelkader.) This means Morocco will observe negative DST during Ramadan in main and vanguard formats, and in rearguard format it stays in the +00 timezone and observes ordinary DST in all months other than Ramadan. As before, extend this guesswork to the year 2037. As a consequence, Morocco is scheduled to observe three DST transitions in some Gregorian years (e.g., 2033) due to the mismatch between the Gregorian and Islamic calendars. The table of exact transitions for Iranian DST has been extended. It formerly cut off before the year 2038 in a nod to 32-bit time_t. It now cuts off before 2091 as there is doubt about how the Persian calendar will treat 2091. This change predicts DST transitions in 2038-9, 2042-3, and 2046-7 to occur one day later than previously predicted. As before, post-cutoff transitions are approximated. Changes to past and future timestamps Qyzylorda (aka Kyzylorda) oblast in Kazakhstan moved from +06 to +05 on 2018-12-21. This is a zone split as Qostanay (aka Kostanay) did not switch, so create a zone Asia/Qostanay. Metlakatla moved from Alaska to Pacific standard time on 2018-11-04. It did not change clocks that day and remains on -08 this winter. (Thanks to Ryan Stanley.) It will revert to the usual Alaska rules next spring, so this change affects only timestamps from 2018-11-04 through 2019-03-10. Change to past timestamps Kwajalein's 1993-08-20 transition from -12 to +12 was at 24:00, not 00:00. I transcribed the time incorrectly from Shanks. (Thanks to Phake Nick.) Nauru's 1979 transition was on 02-10 at 02:00, not 05-01 at 00:00. (Thanks to Phake Nick.) Guam observed DST irregularly from 1959 through 1977. (Thanks to Phake Nick.) Hong Kong observed DST in 1941 starting 06-15 (not 04-01), then on 10-01 changed standard time to +08:30 (not +08). Its transition back to +08 after WWII was on 1945-09-15, not the previous day. Its 1904-10-30 change took effect at 01:00 +08 (not 00:00 LMT). (Thanks to Phake Nick, Steve Allen, and Joseph Myers.) Also, its 1952 fallback was on 11-02 (not 10-25). This release contains many changes to timestamps before 1946 due to Japanese possession or occupation of Pacific/Chuuk, Pacific/Guam, Pacific/Kosrae, Pacific/Kwajalein, Pacific/Majuro, Pacific/Nauru, Pacific/Palau, and Pacific/Pohnpei. (Thanks to Phake Nick.) Assume that the Spanish East Indies was like the Philippines and observed American time until the end of 1844. This affects Pacific/Chuuk, Pacific/Kosrae, Pacific/Palau, and Pacific/Pohnpei. Changes to past tm_isdst flags For the recent Morocco change, the tm_isdst flag should be 1 from 2018-10-27 00:00 to 2018-10-28 03:00. (Thanks to Michael Deckers.) Give a URL to the official decree. (Thanks to Matt Johnson.) Release 2018g - 2018-10-26 22:22:45 -0700 Briefly: Morocco switches to permanent +01 on 2018-10-28. Changes to future timestamps Morocco switches from +00/+01 to permanent +01 effective 2018-10-28, so its clocks will not fall back as previously scheduled. (Thanks to Mohamed Essedik Najd and Brian Inglis.) Changes to code When generating TZif files with leap seconds, zic no longer uses a format that trips up older 32-bit clients, fixing a bug introduced in 2018f. (Reported by Daniel Fischer.) Also, the zic workaround for QTBUG-53071 now also works for TZif files with leap seconds. The translator to rearguard format now rewrites the line "Rule Japan 1948 1951 - Sep Sat>=8 25:00 0 S" to "Rule Japan 1948 1951 - Sep Sun>=9 1:00 0 S". This caters to zic before 2007 and to Oracle TZUpdater 2.2.0 and earlier. (Reported by Christos Zoulas.) Changes to past time zone abbreviations Change HDT to HWT/HPT for WWII-era abbreviations in Hawaii. This reverts to 2011h, as the abbreviation change in 2011i was likely inadvertent. Changes to documentation tzfile.5 has new sections on interoperability issues. Release 2018f - 2018-10-18 00:14:18 -0700 Briefly: Volgograd moves from +03 to +04 on 2018-10-28. Fiji ends DST 2019-01-13, not 2019-01-20. Most of Chile changes DST dates, effective 2019-04-06. Changes to future timestamps Volgograd moves from +03 to +04 on 2018-10-28 at 02:00. (Thanks to Alexander Fetisov and Stepan Golosunov.) Fiji ends DST 2019-01-13 instead of the 2019-01-20 previously predicted. (Thanks to Raymond Kumar.) Adjust future predictions accordingly. Most of Chile will end DST on the first Saturday in April at 24:00 mainland time, and resume DST on the first Saturday in September at 24:00 mainland time. The changes are effective from 2019-04-06, and do not affect the Magallanes region modeled by America/Punta_Arenas. (Thanks to Juan Correa and Tim Parenti.) Adjust future predictions accordingly. Changes to past timestamps The 2018-05-05 North Korea 30-minute time zone change took place at 23:30 the previous day, not at 00:00 that day. China's 1988 spring-forward transition was on April 17, not April 10. Its DST transitions in 1986/91 were at 02:00, not 00:00. (Thanks to P Chan.) Fix several issues for Macau before 1992. Macau's pre-1904 LMT was off by 10 s. Macau switched to +08 in 1904 not 1912, and temporarily switched to +09/+10 during World War II. Macau observed DST in 1942/79, not 1961/80, and there were several errors for transition times and dates. (Thanks to P Chan.) The 1948-1951 fallback transitions in Japan were at 25:00 on September's second Saturday, not at 24:00. (Thanks to Phake Nick.) zic turns this into 01:00 on the day after September's second Saturday, which is the best that POSIX or C platforms can do. Incorporate 1940-1949 Asia/Shanghai DST transitions from a 2014 paper by Li Yu, replacing more-questionable data from Shanks. Changes to time zone abbreviations Use "PST" and "PDT" for Philippine time. (Thanks to Paul Goyette.) Changes to code zic now always generates TZif files where time type 0 is used for timestamps before the first transition. This simplifies the reading of TZif files and should not affect behavior of existing TZif readers because the same set of time types is used; only their internal indexes may have changed. This affects only the legacy zones EST5EDT, CST6CDT, MST7MDT, PST8PDT, CET, MET, and EET, which previously used nonzero types for these timestamps. Because of the type 0 change, zic no longer outputs a dummy transition at time -2**59 (before the Big Bang), as clients should no longer need this to handle historical timestamps correctly. This reverts a change introduced in 2013d and shrinks most TZif files by a few bytes. zic now supports negative time-of-day in Rule and Leap lines, e.g., "Rule X min max - Apr lastSun -6:00 1:00 -" means the transition occurs at 18:00 on the Saturday before the last Sunday in April. This behavior was documented in 2018a but the code did not entirely match the documentation. localtime.c no longer requires at least one time type in TZif files that lack transitions or have a POSIX-style TZ string. This future-proofs the code against possible future extensions to the format that would allow TZif files with POSIX-style TZ strings and without transitions or time types. A read-access subscript error in localtime.c has been fixed. It could occur only in TZif files with timecnt == 0, something that does not happen in practice now but could happen in future versions. localtime.c no longer ignores TZif POSIX-style TZ strings that specify only standard time. Instead, these TZ strings now override the default time type for timestamps after the last transition (or for all timestamps if there are no transitions), just as DST strings specifying DST have always done. leapseconds.awk now outputs "#updated" and "#expires" comments, and supports leap seconds at the ends of months other than June and December. (Inspired by suggestions from Chris Woodbury.) Changes to documentation New restrictions: A Rule name must start with a character that is neither an ASCII digit nor "-" nor "+", and an unquoted name should not use characters in the set "!$%&'()*,/:;<=>?@[\]^`{|}~". The latter restriction makes room for future extensions (a possibility noted by Tom Lane). tzfile.5 now documents what time types apply before the first and after the last transition, if any. Documentation now uses the spelling "timezone" for a TZ setting that determines timestamp history, and "time zone" for a geographic region currently sharing the same standard time. The name "TZif" is now used for the tz binary data format. tz-link.htm now mentions the A0 TimeZone Migration utilities. (Thanks to Aldrin Martoq for the link.) Changes to build procedure New 'make' target 'rearguard_tarballs' to build the rearguard tarball only. This is a convenience on platforms that lack lzip if you want to build the rearguard tarball. (Problem reported by Deborah Goldsmith.) tzdata.zi is now more stable from release to release. (Problem noted by Tom Lane.) It is also a bit shorter. tzdata.zi now can contain comment lines documenting configuration information, such as which data format was selected, which input files were used, and how leap seconds are treated. (Problems noted by Lester Caine and Brian Inglis.) If the Makefile defaults are used these comment lines are absent, for backward compatibility. A redistributor intending to alter its copy of the files should also append "-LABEL" to the 'version' file's first line, where "LABEL" identifies the redistributor's change. Release 2018e - 2018-05-01 23:42:51 -0700 Briefly: North Korea switches back to +09 on 2018-05-05. The main format uses negative DST again, for Ireland etc. 'make tarballs' now also builds a rearguard tarball. New 's' and 'd' suffixes in SAVE columns of Rule and Zone lines. Changes to past and future timestamps North Korea switches back from +0830 to +09 on 2018-05-05. (Thanks to Kang Seonghoon, Arthur David Olson, Seo Sanghyeon, and Tim Parenti.) Bring back the negative-DST changes of 2018a, except be more compatible with data parsers that do not support negative DST. Also, this now affects historical timestamps in Namibia and the former Czechoslovakia, not just Ireland. The main format now uses negative DST to model timestamps in Europe/Dublin (from 1971 on), Europe/Prague (1946/7), and Africa/Windhoek (1994/2017). This does not affect UT offsets, only time zone abbreviations and the tm_isdst flag. Also, this does not affect rearguard or vanguard formats; effectively the main format now uses vanguard instead of rearguard format. Data parsers that do not support negative DST can still use data from the rearguard tarball described below. Changes to build procedure The command 'make tarballs' now also builds the tarball tzdataVERSION-rearguard.tar.gz, which is like tzdataVERSION.tar.gz except that it uses rearguard format intended for trailing-edge data parsers. Changes to data format and to code The SAVE column of Rule and Zone lines can now have an 's' or 'd' suffix, which specifies whether the adjusted time is standard time or daylight saving time. If no suffix is given, daylight saving time is used if and only if the SAVE column is nonzero; this is the longstanding behavior. Although this new feature is not used in tzdata, it could be used to specify the legal time in Namibia 1994-2017, as opposed to the popular time (see below). Changes to past timestamps From 1994 through 2017 Namibia observed DST in winter, not summer. That is, it used negative DST, as Ireland still does. This change does not affect UTC offsets; it affects only the tm_isdst flag and the abbreviation used during summer, which is now CAT, not WAST. Although (as noted by Michael Deckers) summer and winter time were both simply called "standard time" in Namibian law, in common practice winter time was considered to be DST (as noted by Stephen Colebourne). The full effect of this change is only in vanguard and main format; in rearguard format, the tm_isdst flag is still zero in winter and nonzero in summer. In 1946/7 Czechoslovakia also observed negative DST in winter. The full effect of this change is only in vanguard and main formats; in rearguard format, it is modeled as plain GMT without daylight saving. Also, the dates of some 1944/5 DST transitions in Czechoslovakia have been changed. Release 2018d - 2018-03-22 07:05:46 -0700 Briefly: Palestine starts DST a week earlier in 2018. Add support for vanguard and rearguard data consumers. Add subsecond precision to source data format, though not to data. Changes to future timestamps In 2018, Palestine starts DST on March 24, not March 31. Adjust future predictions accordingly. (Thanks to Sharef Mustafa.) Changes to past and future timestamps Casey Station in Antarctica changed from +11 to +08 on 2018-03-11 at 04:00. (Thanks to Steffen Thorsen.) Changes to past timestamps Historical transitions for Uruguay, represented by America/Montevideo, have been updated per official legal documents, replacing previous data mainly originating from the inventions of Shanks & Pottenger. This has resulted in adjustments ranging from 30 to 90 minutes in either direction over at least two dozen distinct periods ranging from one day to several years in length. A mere handful of pre-1991 transitions are unaffected; data since then has come from more reliable contemporaneous reporting. These changes affect various timestamps in 1920-1923, 1936, 1939, 1942-1943, 1959, 1966-1970, 1972, 1974-1980, and 1988-1990. Additionally, Uruguay's pre-standard-time UT offset has been adjusted westward by 7 seconds, from UT-03:44:44 to UT-03:44:51, to match the location of the Observatory of the National Meteorological Institute in Montevideo. (Thanks to Jeremie Bonjour, Tim Parenti, and Michael Deckers.) East Kiribati skipped New Year's Eve 1994, not New Year's Day 1995. (Thanks to Kerry Shetline.) Fix the 1912-01-01 transition for Portugal and its colonies. This transition was at 00:00 according to the new UT offset, not according to the old one. Also assume that Cape Verde switched on the same date as the rest, not in 1907. This affects Africa/Bissau, Africa/Sao_Tome, Asia/Macau, Atlantic/Azores, Atlantic/Cape_Verde, Atlantic/Madeira, and Europe/Lisbon. (Thanks to Michael Deckers.) Fix an off-by-1 error for pre-1913 timestamps in Jamaica and in Turks & Caicos. Changes to past time zone abbreviations MMT took effect in Uruguay from 1908-06-10, not 1898-06-28. There is no clock change associated with the transition. Changes to build procedure The new DATAFORM macro in the Makefile lets the installer choose among three source data formats. The idea is to lessen downstream disruption when data formats are improved. * DATAFORM=vanguard installs from the latest, bleeding-edge format. DATAFORM=main (the default) installs from the format used in the 'africa' etc. files. DATAFORM=rearguard installs from a trailing-edge format. Eventually, elements of today's vanguard format should move to the main format, and similarly the main format's features should eventually move to the rearguard format. * In the current version, the main and rearguard formats are identical and match that of 2018c, so this change does not affect default behavior. The vanguard format currently contains one feature not in the main format: negative SAVE values. This improves support for Ireland, which uses Irish Standard Time (IST, UTC+01) in summer and GMT (UTC) in winter. tzcode has supported negative SAVE values for decades, and this feature should move to the main format soon. However, it will not move to the rearguard format for quite some time because some downstream parsers do not support it. * The build procedure constructs three files vanguard.zi, main.zi, and rearguard.zi, one for each format. Although the files represent essentially the same data, they may have minor discrepancies that users are not likely to notice. The files are intended for downstream data consumers and are not installed. Zoneinfo parsers that do not support negative SAVE values should start using rearguard.zi, so that they will be unaffected when the negative-DST feature moves from vanguard to main. Bleeding-edge Zoneinfo parsers that support the new features already can use vanguard.zi; in this respect, current tzcode is bleeding-edge. The Makefile should now be safe for parallelized builds, and 'make -j to2050new.tzs' is now much faster on a multiprocessor host with GNU Make. When built with -DSUPPRESS_TZDIR, the tzcode library no longer prepends TZDIR/ to file names that do not begin with '/'. This is not recommended for general use, due to its security implications. (From a suggestion by Manuela Friedrich.) Changes to code zic now accepts subsecond precision in expressions like 00:19:32.13, which is approximately the legal time of the Netherlands from 1835 to 1937. However, because it is questionable whether the few recorded uses of non-integer offsets had subsecond precision in practice, there are no plans for tzdata to use this feature. (Thanks to Steve Allen for pointing out the limitations of historical data in this area.) The code is a bit more portable to MS-Windows. Installers can compile with -DRESERVE_STD_EXT_IDS on MS-Windows platforms that reserve identifiers like 'localtime'. (Thanks to Manuela Friedrich.) Changes to documentation and commentary theory.html now outlines tzdb's extensions to POSIX's model for civil time, and has a section "POSIX features no longer needed" that lists POSIX API components that are now vestigial. (From suggestions by Steve Summit.) It also better distinguishes time zones from tz regions. (From a suggestion by Guy Harris.) Commentary is now more consistent about using the phrase "daylight saving time", to match the C name tm_isdst. Daylight saving time need not occur in summer, and need not have a positive offset from standard time. Commentary about historical transitions in Uruguay has been expanded with links to many relevant legal documents. (Thanks to Tim Parenti.) Commentary now uses some non-ASCII characters with Unicode value less than U+0100, as they can be useful and should work even with older editors such as XEmacs. Release 2018c - 2018-01-22 23:00:44 -0800 Briefly: Revert Irish changes that relied on negative SAVE values. Changes to tm_isdst Revert the 2018a change to Europe/Dublin. As before, this change does not affect UT offsets or abbreviations; it affects only whether timestamps are considered to be standard time or daylight-saving time, as expressed in the tm_isdst flag of C's struct tm type. This reversion is intended to be a temporary workaround for problems discovered with downstream uses of releases 2018a and 2018b, which implemented Irish time by using negative SAVE values in the Eire rules of the 'europe' file. Although negative SAVE values have been part of tzcode for many years and are supported by many platforms, they were not documented before 2018a and ICU and OpenJDK do not currently support them. A mechanism to export data to platforms lacking support for negative DST is planned to be developed before the change is reapplied. (Problems reported by Deborah Goldsmith and Stephen Colebourne.) Changes to past timestamps Japanese DST transitions (1948-1951) were Sundays at 00:00, not Saturdays or Sundays at 02:00. (Thanks to Takayuki Nikai.) Changes to build procedure The build procedure now works around mawk 1.3.3's lack of support for character class expressions. (Problem reported by Ohyama.) Release 2018b - 2018-01-17 23:24:48 -0800 Briefly: Fix a packaging problem in tz2018a, which was missing 'pacificnew'. Changes to build procedure The distribution now contains the file 'pacificnew' again. This file was inadvertently omitted in the 2018a distribution. (Problem reported by Matias Fonzo.) Release 2018a - 2018-01-12 22:29:21 -0800 Briefly: São Tomé and Príncipe switched from +00 to +01. Brazil's DST will now start on November's first Sunday. Ireland's standard time is now in the summer, not the winter. Use Debian-style installation locations, instead of 4.3BSD-style. New zic option -t. Changes to past and future timestamps São Tomé and Príncipe switched from +00 to +01 on 2018-01-01 at 01:00. (Thanks to Steffen Thorsen and Michael Deckers.) Changes to future timestamps Starting in 2018 southern Brazil will begin DST on November's first Sunday instead of October's third Sunday. (Thanks to Steffen Thorsen.) Changes to past timestamps A discrepancy of 4 s in timestamps before 1931 in South Sudan has been corrected. The 'backzone' and 'zone.tab' files did not agree with the 'africa' and 'zone1970.tab' files. (Problem reported by Michael Deckers.) The abbreviation invented for Bolivia Summer Time (1931-2) is now BST instead of BOST, to be more consistent with the convention used for Latvian Summer Time (1918-9) and for British Summer Time. Changes to tm_isdst Change Europe/Dublin so that it observes Irish Standard Time (UT +01) in summer and GMT (as negative daylight-saving) in winter, instead of observing standard time (GMT) in winter and Irish Summer Time (UT +01) in summer. This change does not affect UT offsets or abbreviations; it affects only whether timestamps are considered to be standard time or daylight-saving time, as expressed in the tm_isdst flag of C's struct tm type. (Discrepancy noted by Derick Rethans.) Changes to build procedure The default installation locations have been changed to mostly match Debian circa 2017, instead of being designed as an add-on to 4.3BSD circa 1986. This affects the Makefile macros TOPDIR, TZDIR, MANDIR, and LIBDIR. New Makefile macros TZDEFAULT, USRDIR, USRSHAREDIR, BINDIR, ZDUMPDIR, and ZICDIR let installers tailor locations more precisely. (This responds to suggestions from Brian Inglis and from Steve Summit.) The default installation procedure no longer creates the backward-compatibility link US/Pacific-New, which causes confusion during user setup (e.g., see Debian bug 815200). Use 'make BACKWARD="backward pacificnew"' to create the link anyway, for now. Eventually we plan to remove the link entirely. tzdata.zi now contains a version-number comment. (Suggested by Tom Lane.) The Makefile now quotes values like BACKWARD more carefully when passing them to the shell. (Problem reported by Zefram.) Builders no longer need to specify -DHAVE_SNPRINTF on platforms that have snprintf and use pre-C99 compilers. (Problem reported by Jon Skeet.) Changes to code zic has a new option -t FILE that specifies the location of the file that determines local time when TZ is unset. The default for this location can be configured via the new TZDEFAULT makefile macro, which defaults to /etc/localtime. Diagnostics and commentary now distinguish UT from UTC more carefully; see theory.html for more information about UT vs UTC. zic has been ported to GCC 8's -Wstringop-truncation option. (Problem reported by Martin Sebor.) Changes to documentation and commentary The zic man page now documents the longstanding behavior that times and years can be out of the usual range, with negative times counting backwards from midnight and with year 0 preceding year 1. (Problem reported by Michael Deckers.) The theory.html file now mentions the POSIX limit of six chars per abbreviation, and lists alphabetic abbreviations used. The files tz-art.htm and tz-link.htm have been renamed to tz-art.html and tz-link.html, respectively, for consistency with other file names and to simplify web server configuration. Release 2017c - 2017-10-20 14:49:34 -0700 Briefly: Northern Cyprus switches from +03 to +02/+03 on 2017-10-29. Fiji ends DST 2018-01-14, not 2018-01-21. Namibia switches from +01/+02 to +02 on 2018-04-01. Sudan switches from +03 to +02 on 2017-11-01. Tonga likely switches from +13/+14 to +13 on 2017-11-05. Turks & Caicos switches from -04 to -05/-04 on 2018-11-04. A new file tzdata.zi now holds a small text copy of all data. The zic input format has been regularized slightly. Changes to future timestamps Northern Cyprus has decided to resume EU rules starting 2017-10-29, thus reinstituting winter time. Fiji ends DST 2018-01-14 instead of the 2018-01-21 previously predicted. (Thanks to Dominic Fok.) Adjust future predictions accordingly. Namibia will switch from +01 with DST to +02 all year on 2017-09-03 at 02:00. This affects UT offsets starting 2018-04-01 at 02:00. (Thanks to Steffen Thorsen.) Sudan will switch from +03 to +02 on 2017-11-01. (Thanks to Ahmed Atyya and Yahia Abdalla.) South Sudan is not switching, so Africa/Juba is no longer a link to Africa/Khartoum. Tonga has likely ended its experiment with DST, and will not adjust its clocks on 2017-11-05. Although Tonga has not announced whether it will continue to observe DST, the IATA is assuming that it will not. (Thanks to David Wade.) Turks & Caicos will switch from -04 all year to -05 with US DST on 2018-03-11 at 03:00. This affects UT offsets starting 2018-11-04 at 02:00. (Thanks to Steffen Thorsen.) Changes to past timestamps Namibia switched from +02 to +01 on 1994-03-21, not 1994-04-03. (Thanks to Arthur David Olson.) Detroit did not observe DST in 1967. Use railway time for Asia/Kolkata before 1941, by switching to Madras local time (UT +052110) in 1870, then to IST (UT +0530) in 1906. Also, treat 1941-2's +0630 as DST, like 1942-5. Europe/Dublin's 1946 and 1947 fallback transitions occurred at 02:00 standard time, not 02:00 DST. (Thanks to Michael Deckers.) Pacific/Apia and Pacific/Pago_Pago switched from Antipodean to American time in 1892, not 1879. (Thanks to Michael Deckers.) Adjust the 1867 transition in Alaska to better reflect the historical record, by changing it to occur on 1867-10-18 at 15:30 Sitka time rather than at the start of 1867-10-17 local time. Although strictly speaking this is accurate only for Sitka, the rest of Alaska's blanks need to be filled in somehow. Fix off-by-one errors in UT offsets for Adak and Nome before 1867. (Thanks to Michael Deckers.) Add 7 s to the UT offset in Asia/Yangon before 1920. Changes to zone names Remove Canada/East-Saskatchewan from the 'backward' file, as it exceeded the 14-character limit and was an unused misnomer anyway. Changes to build procedure To support applications that prefer to read time zone data in text form, two zic input files tzdata.zi and leapseconds are now installed by default. The commands 'zic tzdata.zi' and 'zic -L leapseconds tzdata.zi' can reproduce the tzdata binary files without and with leap seconds, respectively. To prevent these two new files from being installed, use 'make TZDATA_TEXT=', and to suppress leap seconds from the tzdata text installation, use 'make TZDATA_TEXT=tzdata.zi'. 'make BACKWARD=' now suppresses backward-compatibility names like 'US/Pacific' that are defined in the 'backward' and 'pacificnew' files. 'make check' now works on systems that lack a UTF-8 locale, or that lack the nsgmls program. Set UTF8_LOCALE to configure the name of a UTF-8 locale, if you have one. Y2K runtime checks are no longer enabled by default. Add -DDEPRECATE_TWO_DIGIT_YEARS to CFLAGS to enable them, instead of adding -DNO_RUN_TIME_WARNINGS_ABOUT_YEAR_2000_PROBLEMS_THANK_YOU to disable them. (New name suggested by Brian Inglis.) The build procedure for zdump now works on AIX 7.1. (Problem reported by Kees Dekker.) Changes to code zic and the reference runtime now reject multiple leap seconds within 28 days of each other, or leap seconds before the Epoch. As a result, support for double leap seconds, which was obsolescent and undocumented, has been removed. Double leap seconds were an error in the C89 standard; they have never existed in civil timekeeping. (Thanks to Robert Elz and Bradley White for noticing glitches in the code that uncovered this problem.) zic now warns about use of the obsolescent and undocumented -y option, and about use of the obsolescent TYPE field of Rule lines. zic now allows unambiguous abbreviations like "Sa" and "Su" for weekdays; formerly it rejected them due to a bug. Conversely, zic no longer considers non-prefixes to be abbreviations; for example, it no longer accepts "lF" as an abbreviation for "lastFriday". Also, zic warns about the undocumented usage with a "last-" prefix, e.g., "last-Fri". Similarly, zic now accepts the unambiguous abbreviation "L" for "Link" in ordinary context and for "Leap" in leap-second context. Conversely, zic no longer accepts non-prefixes such as "La" as abbreviations for words like "Leap". zic no longer accepts leap second lines in ordinary input, or ordinary lines in leap second input. Formerly, zic sometimes warned about this undocumented usage and handled it incorrectly. The new macro HAVE_TZNAME governs whether the tzname external variable is exported, instead of USG_COMPAT. USG_COMPAT now governs only the external variables "timezone" and "daylight". This change is needed because the three variables are not in the same category: although POSIX requires tzname, it specifies the other two variables as optional. Also, USG_COMPAT is now 1 or 0: if not defined, the code attempts to guess it from other macros. localtime.c and difftime.c no longer require stdio.h, and .c files other than zic.c no longer require sys/wait.h. zdump.c no longer assumes snprintf. (Reported by Jonathan Leffler.) Calculation of time_t extrema works around a bug in GCC 4.8.4 (Reported by Stan Shebs and Joseph Myers.) zic.c no longer mistranslates formats of line numbers in non-English locales. (Problem reported by Benno Schulenberg.) Several minor changes have been made to the code to make it a bit easier to port to MS-Windows and Solaris. (Thanks to Kees Dekker for reporting the problems.) Changes to documentation and commentary The two new files 'theory.html' and 'calendars' contain the contents of the removed file 'Theory'. The goal is to document tzdb theory more accessibly. The zic man page now documents abbreviation rules. tz-link.htm now covers how to apply tzdata changes to clients. (Thanks to Jorge Fábregas for the AIX link.) It also mentions MySQL. The leap-seconds.list URL has been updated to something that is more reliable for tzdb. (Thanks to Tim Parenti and Brian Inglis.) Release 2017b - 2017-03-17 07:30:38 -0700 Briefly: Haiti has resumed DST. Changes to past and future timestamps Haiti resumed observance of DST in 2017. (Thanks to Steffen Thorsen.) Changes to past timestamps Liberia changed from -004430 to +00 on 1972-01-07, not 1972-05-01. Use "MMT" to abbreviate Liberia's time zone before 1972, as "-004430" is one byte over the POSIX limit. (Problem reported by Derick Rethans.) Changes to code The reference localtime implementation now falls back on the current US daylight-saving transition rules rather than the 1987-2006 rules. This fallback occurs only when (1) the TZ environment variable has a value like "AST4ADT" that asks for daylight saving time but does not specify the rules, (2) there is no file by that name, and (3) the TZDEFRULES file cannot be loaded. (Thanks to Tom Lane.) Release 2017a - 2017-02-28 00:05:36 -0800 Briefly: Southern Chile moves from -04/-03 to -03, and Mongolia discontinues DST. Changes to future timestamps Mongolia no longer observes DST. (Thanks to Ganbold Tsagaankhuu.) Chile's Region of Magallanes moves from -04/-03 to -03 year-round. Its clocks diverge from America/Santiago starting 2017-05-13 at 23:00, hiving off a new zone America/Punta_Arenas. Although the Chilean government says this change expires in May 2019, for now assume it's permanent. (Thanks to Juan Correa and Deborah Goldsmith.) This also affects Antarctica/Palmer. Changes to past timestamps Fix many entries for historical timestamps for Europe/Madrid before 1979, to agree with tables compiled by Pere Planesas of the National Astronomical Observatory of Spain. As a side effect, this changes some timestamps for Africa/Ceuta before 1929, which are probably guesswork anyway. (Thanks to Steve Allen and Pierpaolo Bernardi for the heads-ups, and to Michael Deckers for correcting the 1901 transition.) Ecuador observed DST from 1992-11-28 to 1993-02-05. (Thanks to Alois Treindl.) Asia/Atyrau and Asia/Oral were at +03 (not +04) before 1930-06-21. (Thanks to Stepan Golosunov.) Changes to past and future time zone abbreviations Switch to numeric time zone abbreviations for South America, as part of the ongoing project of removing invented abbreviations. This avoids the need to invent an abbreviation for the new Chilean new zone. Similarly, switch from invented to numeric time zone abbreviations for Afghanistan, American Samoa, the Azores, Bangladesh, Bhutan, the British Indian Ocean Territory, Brunei, Cape Verde, Chatham Is, Christmas I, Cocos (Keeling) Is, Cook Is, Dubai, East Timor, Eucla, Fiji, French Polynesia, Greenland, Indochina, Iran, Iraq, Kiribati, Lord Howe, Macquarie, Malaysia, the Maldives, Marshall Is, Mauritius, Micronesia, Mongolia, Myanmar, Nauru, Nepal, New Caledonia, Niue, Norfolk I, Palau, Papua New Guinea, the Philippines, Pitcairn, Qatar, Réunion, St Pierre & Miquelon, Samoa, Saudi Arabia, Seychelles, Singapore, Solomon Is, Tokelau, Tuvalu, Wake, Vanuatu, Wallis & Futuna, and Xinjiang; for 20-minute daylight saving time in Ghana before 1943; for half-hour daylight saving time in Belize before 1944 and in the Dominican Republic before 1975; and for Canary Islands before 1946, for Guinea-Bissau before 1975, for Iceland before 1969, for Indian Summer Time before 1942, for Indonesia before around 1964, for Kenya before 1960, for Liberia before 1973, for Madeira before 1967, for Namibia before 1943, for the Netherlands in 1937-9, for Pakistan before 1971, for Western Sahara before 1977, and for Zaporozhye in 1880-1924. For Alaska time from 1900 through 1967, instead of "CAT" use the abbreviation "AST", the abbreviation commonly used at the time (Atlantic Standard Time had not been standardized yet). Use "AWT" and "APT" instead of the invented abbreviations "CAWT" and "CAPT". Use "CST" and "CDT" instead of invented abbreviations for Macau before 1999 and Taiwan before 1938, and use "JST" instead of the invented abbreviation "JCST" for Japan and Korea before 1938. Change to database entry category Move the Pacific/Johnston link from 'australasia' to 'backward', since Johnston is now uninhabited. Changes to code zic no longer mishandles some transitions in January 2038 when it attempts to work around Qt bug 53071. This fixes a bug affecting Pacific/Tongatapu that was introduced in zic 2016e. localtime.c now contains a workaround, useful when loading a file generated by a buggy zic. (Problem and localtime.c fix reported by Bradley White.) zdump -i now outputs non-hour numeric time zone abbreviations without a colon, e.g., "+0530" rather than "+05:30". This agrees with zic %z and with common practice, and simplifies auditing of zdump output. zdump is now buildable again with -DUSE_LTZ=0. (Problem reported by Joseph Myers.) zdump.c now always includes private.h, to avoid code duplication with private.h. (Problem reported by Kees Dekker.) localtime.c no longer mishandles early or late timestamps when TZ is set to a POSIX-style string that specifies DST. (Problem reported by Kees Dekker.) date and strftime now cause %z to generate "-0000" instead of "+0000" when the UT offset is zero and the time zone abbreviation begins with "-". Changes to documentation and commentary The 'Theory' file now better documents choice of historical time zone abbreviations. (Problems reported by Michael Deckers.) tz-link.htm now covers leap smearing, which is popular in clouds. Release 2016j - 2016-11-22 23:17:13 -0800 Briefly: Saratov, Russia moves from +03 to +04 on 2016-12-04. Changes to future timestamps Saratov, Russia switches from +03 to +04 on 2016-12-04 at 02:00. This hives off a new zone Europe/Saratov from Europe/Volgograd. (Thanks to Yuri Konotopov and Stepan Golosunov.) Changes to past timestamps The new zone Asia/Atyrau for Atyraū Region, Kazakhstan, is like Asia/Aqtau except it switched from +05/+06 to +04/+05 in spring 1999, not fall 1994. (Thanks to Stepan Golosunov.) Changes to past time zone abbreviations Asia/Gaza and Asia/Hebron now use "EEST", not "EET", to denote summer time before 1948. The old use of "EET" was a typo. Changes to code zic no longer mishandles file systems that lack hard links, fixing bugs introduced in 2016g. (Problems reported by Tom Lane.) Also, when the destination already contains symbolic links, zic should now work better on systems where the 'link' system call does not follow symbolic links. Changes to documentation and commentary tz-link.htm now documents the relationship between release version numbers and development-repository commit tags. (Suggested by Paul Koning.) The 'Theory' file now documents UT. iso3166.tab now accents "Curaçao", and commentary now mentions the names "Cabo Verde" and "Czechia". (Thanks to Jiří Boháč.) Release 2016i - 2016-11-01 23:19:52 -0700 Briefly: Cyprus split into two time zones on 2016-10-30, and Tonga reintroduces DST on 2016-11-06. Changes to future timestamps Pacific/Tongatapu begins DST on 2016-11-06 at 02:00, ending on 2017-01-15 at 03:00. Assume future observances in Tonga will be from the first Sunday in November through the third Sunday in January, like Fiji. (Thanks to Pulu ʻAnau.) Switch to numeric time zone abbreviations for this zone. Changes to past and future timestamps Northern Cyprus is now +03 year round, causing a split in Cyprus time zones starting 2016-10-30 at 04:00. This creates a zone Asia/Famagusta. (Thanks to Even Scharning and Matt Johnson.) Antarctica/Casey switched from +08 to +11 on 2016-10-22. (Thanks to Steffen Thorsen.) Changes to past timestamps Several corrections were made for pre-1975 timestamps in Italy. These affect Europe/Malta, Europe/Rome, Europe/San_Marino, and Europe/Vatican. First, the 1893-11-01 00:00 transition in Italy used the new UT offset (+01), not the old (+00:49:56). (Thanks to Michael Deckers.) Second, rules for daylight saving in Italy were changed to agree with Italy's National Institute of Metrological Research (INRiM) except for 1944, as follows (thanks to Pierpaolo Bernardi, Brian Inglis, and Michael Deckers): The 1916-06-03 transition was at 24:00, not 00:00. The 1916-10-01, 1919-10-05, and 1920-09-19 transitions were at 00:00, not 01:00. The 1917-09-30 and 1918-10-06 transitions were at 24:00, not 01:00. The 1944-09-17 transition was at 03:00, not 01:00. This particular change is taken from Italian law as INRiM's table, (which says 02:00) appears to have a typo here. Also, keep the 1944-04-03 transition for Europe/Rome, as Rome was controlled by Germany then. The 1967-1970 and 1972-1974 fallback transitions were at 01:00, not 00:00. Changes to code The code should now be buildable on AmigaOS merely by setting the appropriate Makefile variables. (From a patch by Carsten Larsen.) Release 2016h - 2016-10-19 23:17:57 -0700 Changes to future timestamps Asia/Gaza and Asia/Hebron end DST on 2016-10-29 at 01:00, not 2016-10-21 at 00:00. (Thanks to Sharef Mustafa.) Predict that future fall transitions will be on the last Saturday of October at 01:00, which is consistent with predicted spring transitions on the last Saturday of March. (Thanks to Tim Parenti.) Changes to past timestamps In Turkey, transitions in 1986-1990 were at 01:00 standard time not at 02:00, and the spring 1994 transition was on March 20, not March 27. (Thanks to Kıvanç Yazan.) Changes to past and future time zone abbreviations Asia/Colombo now uses numeric time zone abbreviations like "+0530" instead of alphabetic ones like "IST" and "LKT". Various English-language sources use "IST", "LKT" and "SLST", with no working consensus. (Usage of "SLST" mentioned by Sadika Sumanapala.) Changes to code zic no longer mishandles relativizing file names when creating symbolic links like /etc/localtime, when these symbolic links are outside the usual directory hierarchy. This fixes a bug introduced in 2016g. (Problem reported by Andreas Stieger.) Changes to build procedure New rules 'traditional_tarballs' and 'traditional_signatures' for building just the traditional-format distribution. (Requested by Deborah Goldsmith.) The file 'version' is now put into the tzdata tarball too. (Requested by Howard Hinnant.) Changes to documentation and commentary The 'Theory' file now has a section on interface stability. (Requested by Paul Koning.) It also mentions features like tm_zone and localtime_rz that have long been supported by the reference code. tz-link.htm has improved coverage of time zone boundaries suitable for geolocation. (Thanks to heads-ups from Evan Siroky and Matt Johnson.) The US commentary now mentions Allen and the "day of two noons". The Fiji commentary mentions the government's 2016-10-03 press release. (Thanks to Raymond Kumar.) Release 2016g - 2016-09-13 08:56:38 -0700 Changes to future timestamps Turkey switched from EET/EEST (+02/+03) to permanent +03, effective 2016-09-07. (Thanks to Burak AYDIN.) Use "+03" rather than an invented abbreviation for the new time. New leap second 2016-12-31 23:59:60 UTC as per IERS Bulletin C 52. (Thanks to Tim Parenti.) Changes to past timestamps For America/Los_Angeles, spring-forward transition times have been corrected from 02:00 to 02:01 in 1948, and from 02:00 to 01:00 in 1950-1966. For zones using Soviet time on 1919-07-01, transitions to UT-based time were at 00:00 UT, not at 02:00 local time. The affected zones are Europe/Kirov, Europe/Moscow, Europe/Samara, and Europe/Ulyanovsk. (Thanks to Alexander Belopolsky.) Changes to past and future time zone abbreviations The Factory zone now uses the time zone abbreviation -00 instead of a long English-language string, as -00 is now the normal way to represent an undefined time zone. Several zones in Antarctica and the former Soviet Union, along with zones intended for ships at sea that cannot use POSIX TZ strings, now use numeric time zone abbreviations instead of invented or obsolete alphanumeric abbreviations. The affected zones are Antarctica/Casey, Antarctica/Davis, Antarctica/DumontDUrville, Antarctica/Mawson, Antarctica/Rothera, Antarctica/Syowa, Antarctica/Troll, Antarctica/Vostok, Asia/Anadyr, Asia/Ashgabat, Asia/Baku, Asia/Bishkek, Asia/Chita, Asia/Dushanbe, Asia/Irkutsk, Asia/Kamchatka, Asia/Khandyga, Asia/Krasnoyarsk, Asia/Magadan, Asia/Omsk, Asia/Sakhalin, Asia/Samarkand, Asia/Srednekolymsk, Asia/Tashkent, Asia/Tbilisi, Asia/Ust-Nera, Asia/Vladivostok, Asia/Yakutsk, Asia/Yekaterinburg, Asia/Yerevan, Etc/GMT-14, Etc/GMT-13, Etc/GMT-12, Etc/GMT-11, Etc/GMT-10, Etc/GMT-9, Etc/GMT-8, Etc/GMT-7, Etc/GMT-6, Etc/GMT-5, Etc/GMT-4, Etc/GMT-3, Etc/GMT-2, Etc/GMT-1, Etc/GMT+1, 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+10, Etc/GMT+11, Etc/GMT+12, Europe/Kaliningrad, Europe/Minsk, Europe/Samara, Europe/Volgograd, and Indian/Kerguelen. For Europe/Moscow the invented abbreviation MSM was replaced by +05, whereas MSK and MSD were kept as they are not our invention and are widely used. Changes to zone names Rename Asia/Rangoon to Asia/Yangon, with a backward compatibility link. (Thanks to David Massoud.) Changes to code zic no longer generates binary files containing POSIX TZ-like strings that disagree with the local time type after the last explicit transition in the data. This fixes a bug with Africa/Casablanca and Africa/El_Aaiun in some year-2037 timestamps on the reference platform. (Thanks to Alexander Belopolsky for reporting the bug and suggesting a way forward.) If the installed localtime and/or posixrules files are symbolic links, zic now keeps them symbolic links when updating them, for compatibility with platforms like OpenSUSE where other programs configure these files as symlinks. zic now avoids hard linking to symbolic links, avoids some unnecessary mkdir and stat system calls, and uses shorter file names internally. zdump has a new -i option to generate transitions in a more-compact but still human-readable format. This option is experimental, and the output format may change in future versions. (Thanks to Jon Skeet for suggesting that an option was needed, and thanks to Tim Parenti and Chris Rovick for further comments.) Changes to build procedure An experimental distribution format is available, in addition to the traditional format which will continue to be distributed. The new format is a tarball tzdb-VERSION.tar.lz with signature file tzdb-VERSION.tar.lz.asc. It unpacks to a top-level directory tzdb-VERSION containing the code and data of the traditional two-tarball format, along with extra data that may be useful. (Thanks to Antonio Diaz Diaz, Oscar van Vlijmen, and many others for comments about the experimental format.) The release version number is now more accurate in the usual case where releases are built from a Git repository. For example, if 23 commits and some working-file changes have been made since release 2016g, the version number is now something like '2016g-23-g50556e3-dirty' instead of the misleading '2016g'. Tagged releases use the same version number format as before, e.g., '2016g'. To support the more-accurate version number, its specification has moved from a line in the Makefile to a new source file 'version'. The experimental distribution contains a file to2050.tzs that contains what should be the output of 'zdump -i -c 2050' on primary zones. If this file is available, 'make check' now checks that zdump generates this output. 'make check_web' now works on Fedora-like distributions. Changes to documentation and commentary tzfile.5 now documents the new restriction on POSIX TZ-like strings that is now implemented by zic. Comments now cite URLs for some 1917-1921 Russian DST decrees. (Thanks to Alexander Belopolsky.) tz-link.htm mentions JuliaTime (thanks to Curtis Vogt) and Time4J (thanks to Meno Hochschild) and ThreeTen-Extra, and its description of Java 8 has been brought up to date (thanks to Stephen Colebourne). Its description of local time on Mars has been updated to match current practice, and URLs have been updated and some obsolete ones removed. Release 2016f - 2016-07-05 16:26:51 +0200 Changes affecting future timestamps The Egyptian government changed its mind on short notice, and Africa/Cairo will not introduce DST starting 2016-07-07 after all. (Thanks to Mina Samuel.) Asia/Novosibirsk switches from +06 to +07 on 2016-07-24 at 02:00. (Thanks to Stepan Golosunov.) Changes to past and future timestamps Asia/Novokuznetsk and Asia/Novosibirsk now use numeric time zone abbreviations instead of invented ones. Changes affecting past timestamps Europe/Minsk's 1992-03-29 spring-forward transition was at 02:00 not 00:00. (Thanks to Stepan Golosunov.) Release 2016e - 2016-06-14 08:46:16 -0700 Changes affecting future timestamps Africa/Cairo observes DST in 2016 from July 7 to the end of October. Guess October 27 and 24:00 transitions. (Thanks to Steffen Thorsen.) For future years, guess April's last Thursday to October's last Thursday except for Ramadan. Changes affecting past timestamps Locations while uninhabited now use '-00', not 'zzz', as a placeholder time zone abbreviation. This is inspired by Internet RFC 3339 and is more consistent with numeric time zone abbreviations already used elsewhere. The change affects several arctic and antarctic locations, e.g., America/Cambridge_Bay before 1920 and Antarctica/Troll before 2005. Asia/Baku's 1992-09-27 transition from +04 (DST) to +04 (non-DST) was at 03:00, not 23:00 the previous day. (Thanks to Michael Deckers.) Changes to code zic now outputs a dummy transition at time 2**31 - 1 in zones whose POSIX-style TZ strings contain a '<'. This mostly works around Qt bug 53071 . (Thanks to Zhanibek Adilbekov for reporting the Qt bug.) Changes affecting documentation and commentary tz-link.htm says why governments should give plenty of notice for time zone or DST changes, and refers to Matt Johnson's blog post. tz-link.htm mentions Tzdata for Elixir. (Thanks to Matt Johnson.) Release 2016d - 2016-04-17 22:50:29 -0700 Changes affecting future timestamps America/Caracas switches from -0430 to -04 on 2016-05-01 at 02:30. (Thanks to Alexander Krivenyshev for the heads-up.) Asia/Magadan switches from +10 to +11 on 2016-04-24 at 02:00. (Thanks to Alexander Krivenyshev and Matt Johnson.) New zone Asia/Tomsk, split off from Asia/Novosibirsk. It covers Tomsk Oblast, Russia, which switches from +06 to +07 on 2016-05-29 at 02:00. (Thanks to Stepan Golosunov.) Changes affecting past timestamps New zone Europe/Kirov, split off from Europe/Volgograd. It covers Kirov Oblast, Russia, which switched from +04/+05 to +03/+04 on 1989-03-26 at 02:00, roughly a year after Europe/Volgograd made the same change. (Thanks to Stepan Golosunov.) Russia and nearby locations had daylight-saving transitions on 1992-03-29 at 02:00 and 1992-09-27 at 03:00, instead of on 1992-03-28 at 23:00 and 1992-09-26 at 23:00. (Thanks to Stepan Golosunov.) Many corrections to historical time in Kazakhstan from 1991 through 2005. (Thanks to Stepan Golosunov.) Replace Kazakhstan's invented time zone abbreviations with numeric abbreviations. Changes to commentary Mention Internet RFCs 7808 (TZDIST) and 7809 (CalDAV time zone references). Release 2016c - 2016-03-23 00:51:27 -0700 Changes affecting future timestamps Azerbaijan no longer observes DST. (Thanks to Steffen Thorsen.) Chile reverts from permanent to seasonal DST. (Thanks to Juan Correa for the heads-up, and to Tim Parenti for corrections.) Guess that future transitions are August's and May's second Saturdays at 24:00 mainland time. Also, call the period from 2014-09-07 through 2016-05-14 daylight saving time instead of standard time, as that seems more appropriate now. Changes affecting past timestamps Europe/Kaliningrad and Europe/Vilnius changed from +03/+04 to +02/+03 on 1989-03-26, not 1991-03-31. Europe/Volgograd changed from +04/+05 to +03/+04 on 1988-03-27, not 1989-03-26. (Thanks to Stepan Golosunov.) Changes to commentary Several updates and URLs for historical and proposed Russian changes. (Thanks to Stepan Golosunov, Matt Johnson, and Alexander Krivenyshev.) Release 2016b - 2016-03-12 17:30:14 -0800 Compatibility note Starting with release 2016b, some data entries cause zic implementations derived from tz releases 2005j through 2015e to issue warnings like "time zone abbreviation differs from POSIX standard (+03)". These warnings should not otherwise affect zic's output and can safely be ignored on today's platforms, as the warnings refer to a restriction in POSIX.1-1988 that was removed in POSIX.1-2001. One way to suppress the warnings is to upgrade to zic derived from tz releases 2015f and later. Changes affecting future timestamps New zones Europe/Astrakhan and Europe/Ulyanovsk for Astrakhan and Ulyanovsk Oblasts, Russia, both of which will switch from +03 to +04 on 2016-03-27 at 02:00 local time. They need distinct zones since their post-1970 histories disagree. New zone Asia/Barnaul for Altai Krai and Altai Republic, Russia, which will switch from +06 to +07 on the same date and local time. The Astrakhan change is already official; the others have passed the first reading in the State Duma and are extremely likely. Also, Asia/Sakhalin moves from +10 to +11 on 2016-03-27 at 02:00. (Thanks to Alexander Krivenyshev for the heads-up, and to Matt Johnson and Stepan Golosunov for followup.) As a trial of a new system that needs less information to be made up, the new zones use numeric time zone abbreviations like "+04" instead of invented abbreviations like "ASTT". Haiti will not observe DST in 2016. (Thanks to Jean Antoine via Steffen Thorsen.) Palestine's spring-forward transition on 2016-03-26 is at 01:00, not 00:00. (Thanks to Hannah Kreitem.) Guess future transitions will be March's last Saturday at 01:00, not March's last Friday at 24:00. Changes affecting past timestamps Europe/Chisinau observed DST during 1990, and switched from +04 to +03 at 1990-05-06 02:00, instead of switching from +03 to +02. (Thanks to Stepan Golosunov.) 1991 abbreviations in Europe/Samara should be SAMT/SAMST, not KUYT/KUYST. (Thanks to Stepan Golosunov.) Changes to code tzselect's diagnostics and checking, and checktab.awk's checking, have been improved. (Thanks to J William Piggott.) tzcode now builds under MinGW. (Thanks to Ian Abbott and Esben Haabendal.) tzselect now tests Julian-date TZ settings more accurately. (Thanks to J William Piggott.) Changes to commentary Comments in zone tables have been improved. (Thanks to J William Piggott.) tzselect again limits its menu comments so that menus fit on a 24×80 alphanumeric display. A new web page tz-how-to.html. (Thanks to Bill Seymour.) In the Theory file, the description of possible time zone abbreviations in tzdata has been cleaned up, as the old description was unclear and inconsistent. (Thanks to Alain Mouette for reporting the problem.) Release 2016a - 2016-01-26 23:28:02 -0800 Changes affecting future timestamps America/Cayman will not observe daylight saving this year after all. Revert our guess that it would. (Thanks to Matt Johnson.) Asia/Chita switches from +0800 to +0900 on 2016-03-27 at 02:00. (Thanks to Alexander Krivenyshev.) Asia/Tehran now has DST predictions for the year 2038 and later, to be March 21 00:00 to September 21 00:00. This is likely better than predicting no DST, albeit off by a day every now and then. Changes affecting past and future timestamps America/Metlakatla switched from PST all year to AKST/AKDT on 2015-11-01 at 02:00. (Thanks to Steffen Thorsen.) America/Santa_Isabel has been removed, and replaced with a backward compatibility link to America/Tijuana. Its contents were apparently based on a misreading of Mexican legislation. Changes affecting past timestamps Asia/Karachi's two transition times in 2002 were off by a minute. (Thanks to Matt Johnson.) Changes affecting build procedure An installer can now combine leap seconds with use of the backzone file, e.g., with 'make PACKRATDATA=backzone REDO=posix_right zones'. The old 'make posix_packrat' rule is now marked as obsolescent. (Thanks to Ian Abbott for an initial implementation.) Changes affecting documentation and commentary A new file LICENSE makes it easier to see that the code and data are mostly public-domain. (Thanks to James Knight.) The three non-public-domain files now use the current (3-clause) BSD license instead of older versions of that license. tz-link.htm mentions the BDE library (thanks to Andrew Paprocki), CCTZ (thanks to Tim Parenti), TimeJones.com, and has a new section on editing tz source files (with a mention of Sublime zoneinfo, thanks to Gilmore Davidson). The Theory and asia files now mention the 2015 book "The Global Transformation of Time, 1870-1950", and cite a couple of reviews. The America/Chicago entry now documents the informal use of US central time in Fort Pierre, South Dakota. (Thanks to Rick McDermid, Matt Johnson, and Steve Jones.) Release 2015g - 2015-10-01 00:39:51 -0700 Changes affecting future timestamps Turkey's 2015 fall-back transition is scheduled for Nov. 8, not Oct. 25. (Thanks to Fatih.) Norfolk moves from +1130 to +1100 on 2015-10-04 at 02:00 local time. (Thanks to Alexander Krivenyshev.) Fiji's 2016 fall-back transition is scheduled for January 17, not 24. (Thanks to Ken Rylander.) Fort Nelson, British Columbia will not fall back on 2015-11-01. It has effectively been on MST (-0700) since it advanced its clocks on 2015-03-08. New zone America/Fort_Nelson. (Thanks to Matt Johnson.) Changes affecting past timestamps Norfolk observed DST from 1974-10-27 02:00 to 1975-03-02 02:00. Changes affecting code localtime no longer mishandles America/Anchorage after 2037. (Thanks to Bradley White for reporting the bug.) On hosts with signed 32-bit time_t, localtime no longer mishandles Pacific/Fiji after 2038-01-16 14:00 UTC. The localtime module allows the variables 'timezone', 'daylight', and 'altzone' to be in common storage shared with other modules, and declares them in case the system does not. (Problems reported by Kees Dekker.) On platforms with tm_zone, strftime.c now assumes it is not NULL. This simplifies the code and is consistent with zdump.c. (Problem reported by Christos Zoulas.) Changes affecting documentation The tzfile man page now documents that transition times denote the starts (not the ends) of the corresponding time periods. (Ambiguity reported by Bill Seymour.) Release 2015f - 2015-08-10 18:06:56 -0700 Changes affecting future timestamps North Korea switches to +0830 on 2015-08-15. (Thanks to Steffen Thorsen.) The abbreviation remains "KST". (Thanks to Robert Elz.) Uruguay no longer observes DST. (Thanks to Steffen Thorsen and Pablo Camargo.) Changes affecting past and future timestamps Moldova starts and ends DST at 00:00 UTC, not at 01:00 UTC. (Thanks to Roman Tudos.) Changes affecting data format and code zic's '-y YEARISTYPE' option is no longer documented. The TYPE field of a Rule line should now be '-'; the old values 'even', 'odd', 'uspres', 'nonpres', 'nonuspres' were already undocumented. Although the implementation has not changed, these features do not work in the default installation, they are not used in the data, and they are now considered obsolescent. zic now checks that two rules don't take effect at the same time. (Thanks to Jon Skeet and Arthur David Olson.) Constraints on simultaneity are now documented. The two characters '%z' in a zone format now stand for the UT offset, e.g., '-07' for seven hours behind UT and '+0530' for five hours and thirty minutes ahead. This better supports time zone abbreviations conforming to POSIX.1-2001 and later. Changes affecting installed data files Comments for America/Halifax and America/Glace_Bay have been improved. (Thanks to Brian Inglis.) Data entries have been simplified for Atlantic/Canary, Europe/Simferopol, Europe/Sofia, and Europe/Tallinn. This yields slightly smaller installed data files for Europe/Simferopol and Europe/Tallinn. It does not affect timestamps. (Thanks to Howard Hinnant.) Changes affecting code zdump and zic no longer warn about valid time zone abbreviations like '-05'. Some Visual Studio 2013 warnings have been suppressed. (Thanks to Kees Dekker.) 'date' no longer sets the time of day and its -a, -d, -n and -t options have been removed. Long obsolescent, the implementation of these features had porting problems. Builders no longer need to configure HAVE_ADJTIME, HAVE_SETTIMEOFDAY, or HAVE_UTMPX_H. (Thanks to Kees Dekker for pointing out the problem.) Changes affecting documentation The Theory file mentions naming issues earlier, as these seem to be poorly publicized (thanks to Gilmore Davidson for reporting the problem). tz-link.htm mentions Time Zone Database Parser (thanks to Howard Hinnant). Mention that Herbert Samuel introduced the term "Summer Time". Release 2015e - 2015-06-13 10:56:02 -0700 Changes affecting future timestamps Morocco will suspend DST from 2015-06-14 03:00 through 2015-07-19 02:00, not 06-13 and 07-18 as we had guessed. (Thanks to Milamber.) Assume Cayman Islands will observe DST starting next year, using US rules. Although it isn't guaranteed, it is the most likely. Changes affecting data format The file 'iso3166.tab' now uses UTF-8, so that its entries can better spell the names of Åland Islands, Côte d'Ivoire, and Réunion. Changes affecting code When displaying data, tzselect converts it to the current locale's encoding if the iconv command works. (Problem reported by random832.) tzselect no longer mishandles Dominica, fixing a bug introduced in Release 2014f. (Problem reported by Owen Leibman.) zic -l no longer fails when compiled with -DTZDEFAULT=\"/etc/localtime\". This fixes a bug introduced in Release 2014f. (Problem reported by Leonardo Chiquitto.) Release 2015d - 2015-04-24 08:09:46 -0700 Changes affecting future timestamps Egypt will not observe DST in 2015 and will consider canceling it permanently. For now, assume no DST indefinitely. (Thanks to Ahmed Nazmy and Tim Parenti.) Changes affecting past timestamps America/Whitehorse switched from UT -09 to -08 on 1967-05-28, not 1966-07-01. Also, Yukon's time zone history is documented better. (Thanks to Brian Inglis and Dennis Ferguson.) Change affecting past and future time zone abbreviations The abbreviations for Hawaii-Aleutian standard and daylight times have been changed from HAST/HADT to HST/HDT, as per US Government Printing Office style. This affects only America/Adak since 1983, as America/Honolulu was already using the new style. Changes affecting code zic has some minor performance improvements. Release 2015c - 2015-04-11 08:55:55 -0700 Changes affecting future timestamps Egypt's spring-forward transition is at 24:00 on April's last Thursday, not 00:00 on April's last Friday. 2015's transition will therefore be on Thursday, April 30 at 24:00, not Friday, April 24 at 00:00. Similar fixes apply to 2026, 2037, 2043, etc. (Thanks to Steffen Thorsen.) Changes affecting past timestamps The following changes affect some pre-1991 Chile-related timestamps in America/Santiago, Antarctica/Palmer, and Pacific/Easter. The 1910 transition was January 10, not January 1. The 1918 transition was September 10, not September 1. The UT -04 time observed from 1932 to 1942 is now considered to be standard time, not year-round DST. Santiago observed DST (UT -03) from 1946-07-15 through 1946-08-31, then reverted to standard time, then switched to -05 on 1947-04-01. Assume transitions before 1968 were at 00:00, since we have no data saying otherwise. The spring 1988 transition was 1988-10-09, not 1988-10-02. The fall 1990 transition was 1990-03-11, not 1990-03-18. Assume no UT offset change for Pacific/Easter on 1890-01-01, and omit all transitions on Pacific/Easter from 1942 through 1946 since we have no data suggesting that they existed. One more zone has been turned into a link, as it differed from an existing zone only for older timestamps. As usual, this change affects UT offsets in pre-1970 timestamps only. The zone's old contents have been moved to the 'backzone' file. The affected zone is America/Montreal. Changes affecting commentary Mention the TZUpdater tool. Mention "The Time Now". (Thanks to Brandon Ramsey.) Release 2015b - 2015-03-19 23:28:11 -0700 Changes affecting future timestamps Mongolia will start observing DST again this year, from the last Saturday in March at 02:00 to the last Saturday in September at 00:00. (Thanks to Ganbold Tsagaankhuu.) Palestine will start DST on March 28, not March 27. Also, correct the fall 2014 transition from September 26 to October 24. Adjust future predictions accordingly. (Thanks to Steffen Thorsen.) Changes affecting past timestamps The 1982 zone shift in Pacific/Easter has been corrected, fixing a 2015a regression. (Thanks to Stuart Bishop for reporting the problem.) Some more zones have been turned into links, when they differed from existing zones only for older timestamps. As usual, these changes affect UT offsets in pre-1970 timestamps only. Their old contents have been moved to the 'backzone' file. The affected zones are: America/Antigua, America/Cayman, Pacific/Midway, and Pacific/Saipan. Changes affecting time zone abbreviations Correct the 1992-2010 DST abbreviation in Volgograd from "MSK" to "MSD". (Thanks to Hank W.) Changes affecting code Fix integer overflow bug in reference 'mktime' implementation. (Problem reported by Jörg Richter.) Allow -Dtime_tz=time_t compilations, and allow -Dtime_tz=... libraries to be used in the same executable as standard-library time_t functions. (Problems reported by Bradley White.) Changes affecting commentary Cite the recent Mexican decree changing Quintana Roo's time zone. (Thanks to Carlos Raúl Perasso.) Likewise for the recent Chilean decree. (Thanks to Eduardo Romero Urra.) Update info about Mars time. Release 2015a - 2015-01-29 22:35:20 -0800 Changes affecting future timestamps The Mexican state of Quintana Roo, represented by America/Cancun, will shift from Central Time with DST to Eastern Time without DST on 2015-02-01 at 02:00. (Thanks to Steffen Thorsen and Gwillim Law.) Chile will not change clocks in April or thereafter; its new standard time will be its old daylight saving time. This affects America/Santiago, Pacific/Easter, and Antarctica/Palmer. (Thanks to Juan Correa.) New leap second 2015-06-30 23:59:60 UTC as per IERS Bulletin C 49. (Thanks to Tim Parenti.) Changes affecting past timestamps Iceland observed DST in 1919 and 1921, and its 1939 fallback transition was Oct. 29, not Nov. 29. Remove incorrect data from Shanks about time in Iceland between 1837 and 1908. Some more zones have been turned into links, when they differed from existing zones only for older timestamps. As usual, these changes affect UT offsets in pre-1970 timestamps only. Their old contents have been moved to the 'backzone' file. The affected zones are: Asia/Aden, Asia/Bahrain, Asia/Kuwait, and Asia/Muscat. Changes affecting code tzalloc now scrubs time zone abbreviations compatibly with the way that tzset always has, by replacing invalid bytes with '_' and by shortening too-long abbreviations. tzselect ports to POSIX awk implementations, no longer mishandles POSIX TZ settings when GNU awk is used, and reports POSIX TZ settings to the user. (Thanks to Stefan Kuhn.) Changes affecting build procedure 'make check' now checks for links to links in the data. One such link (for Africa/Asmera) has been fixed. (Thanks to Stephen Colebourne for pointing out the problem.) Changes affecting commentary The leapseconds file commentary now mentions the expiration date. (Problem reported by Martin Burnicki.) Update Mexican Library of Congress URL. Release 2014j - 2014-11-10 17:37:11 -0800 Changes affecting current and future timestamps Turks & Caicos' switch from US eastern time to UT -04 year-round did not occur on 2014-11-02 at 02:00. It's currently scheduled for 2015-11-01 at 02:00. (Thanks to Chris Walton.) Changes affecting past timestamps Many pre-1989 timestamps have been corrected for Asia/Seoul and Asia/Pyongyang, based on sources for the Korean-language Wikipedia entry for time in Korea. (Thanks to Sanghyuk Jung.) Also, no longer guess that Pyongyang mimicked Seoul time after World War II, as this is politically implausible. Some more zones have been turned into links, when they differed from existing zones only for older timestamps. As usual, these changes affect UT offsets in pre-1970 timestamps only. Their old contents have been moved to the 'backzone' file. The affected zones are: Africa/Addis_Ababa, Africa/Asmara, Africa/Dar_es_Salaam, Africa/Djibouti, Africa/Kampala, Africa/Mogadishu, Indian/Antananarivo, Indian/Comoro, and Indian/Mayotte. Changes affecting commentary The commentary is less enthusiastic about Shanks as a source, and is more careful to distinguish UT from UTC. Release 2014i - 2014-10-21 22:04:57 -0700 Changes affecting future timestamps Pacific/Fiji will observe DST from 2014-11-02 02:00 to 2015-01-18 03:00. (Thanks to Ken Rylander for the heads-up.) Guess that future years will use a similar pattern. A new Zone Pacific/Bougainville, for the part of Papua New Guinea that plans to switch from UT +10 to +11 on 2014-12-28 at 02:00. (Thanks to Kiley Walbom for the heads-up.) Changes affecting time zone abbreviations Since Belarus is not changing its clocks even though Moscow is, the time zone abbreviation in Europe/Minsk is changing from FET to its more-traditional value MSK on 2014-10-26 at 01:00. (Thanks to Alexander Bokovoy for the heads-up about Belarus.) The new abbreviation IDT stands for the pre-1976 use of UT +08 in Indochina, to distinguish it better from ICT (+07). Changes affecting past timestamps Many timestamps have been corrected for Asia/Ho_Chi_Minh before 1976 (thanks to Trần Ngọc Quân for an indirect pointer to Trần Tiến Bình's authoritative book). Asia/Ho_Chi_Minh has been added to zone1970.tab, to give tzselect users in Vietnam two choices, since north and south Vietnam disagreed after our 1970 cutoff. Asia/Phnom_Penh and Asia/Vientiane have been turned into links, as they differed from existing zones only for older timestamps. As usual, these changes affect pre-1970 timestamps only. Their old contents have been moved to the 'backzone' file. Changes affecting code The time-related library functions now set errno on failure, and some crashes in the new tzalloc-related library functions have been fixed. (Thanks to Christos Zoulas for reporting most of these problems and for suggesting fixes.) If USG_COMPAT is defined and the requested timestamp is standard time, the tz library's localtime and mktime functions now set the extern variable timezone to a value appropriate for that timestamp; and similarly for ALTZONE, daylight saving time, and the altzone variable. This change is a companion to the tzname change in 2014h, and is designed to make timezone and altzone more compatible with tzname. The tz library's functions now set errno to EOVERFLOW if they fail because the result cannot be represented. ctime and ctime_r now return NULL and set errno when a timestamp is out of range, rather than having undefined behavior. Some bugs associated with the new 2014g functions have been fixed. This includes a bug that largely incapacitated the new functions time2posix_z and posix2time_z. (Thanks to Christos Zoulas.) It also includes some uses of uninitialized variables after tzalloc. The new code uses the standard type 'ssize_t', which the Makefile now gives porting advice about. Changes affecting commentary Updated URLs for NRC Canada (thanks to Matt Johnson and Brian Inglis). Release 2014h - 2014-09-25 18:59:03 -0700 Changes affecting past timestamps America/Jamaica's 1974 spring-forward transition was Jan. 6, not Apr. 28. Shanks says Asia/Novokuznetsk switched from LMT (not "NMT") on 1924-05-01, not 1920-01-06. The old entry was based on a misinterpretation of Shanks. Some more zones have been turned into links, when they differed from existing zones only for older timestamps. As usual, these changes affect UT offsets in pre-1970 timestamps only. Their old contents have been moved to the 'backzone' file. The affected zones are: Africa/Blantyre, Africa/Bujumbura, Africa/Gaborone, Africa/Harare, Africa/Kigali, Africa/Lubumbashi, Africa/Lusaka, Africa/Maseru, and Africa/Mbabane. Changes affecting code zdump -V and -v now output gmtoff= values on all platforms, not merely on platforms defining TM_GMTOFF. The tz library's localtime and mktime functions now set tzname to a value appropriate for the requested timestamp, and zdump now uses this on platforms not defining TM_ZONE, fixing a 2014g regression. (Thanks to Tim Parenti for reporting the problem.) The tz library no longer sets tzname if localtime or mktime fails. zdump -c no longer mishandles transitions near year boundaries. (Thanks to Tim Parenti for reporting the problem.) An access to uninitialized data has been fixed. (Thanks to Jörg Richter for reporting the problem.) When THREAD_SAFE is defined, the code ports to the C11 memory model. A memory leak has been fixed if ALL_STATE and THREAD_SAFE are defined and two threads race to initialize data used by gmtime-like functions. (Thanks to Andy Heninger for reporting the problems.) Changes affecting build procedure 'make check' now checks better for properly-sorted data. Changes affecting documentation and commentary zdump's gmtoff=N output is now documented, and its isdst=D output is now documented to possibly output D values other than 0 or 1. zdump -c's treatment of years is now documented to use the Gregorian calendar and Universal Time without leap seconds, and its behavior at cutoff boundaries is now documented better. (Thanks to Arthur David Olson and Tim Parenti for reporting the problems.) Programs are now documented to use the proleptic Gregorian calendar. (Thanks to Alan Barrett for the suggestion.) Fractional-second GMT offsets have been documented for civil time in 19th-century Chennai, Jakarta, and New York. Release 2014g - 2014-08-28 12:31:23 -0700 Changes affecting future timestamps Turks & Caicos is switching from US eastern time to UT -04 year-round, modeled as a switch on 2014-11-02 at 02:00. [As noted in 2014j, this switch was later delayed.] Changes affecting past timestamps Time in Russia or the USSR before 1926 or so has been corrected by a few seconds in the following zones: Asia/Irkutsk, Asia/Krasnoyarsk, Asia/Omsk, Asia/Samarkand, Asia/Tbilisi, Asia/Vladivostok, Asia/Yakutsk, Europe/Riga, Europe/Samara. For Asia/Yekaterinburg the correction is a few minutes. (Thanks to Vladimir Karpinsky.) The Portuguese decree of 1911-05-26 took effect on 1912-01-01. This affects 1911 timestamps in Africa/Bissau, Africa/Luanda, Atlantic/Azores, and Atlantic/Madeira. Also, Lisbon's pre-1912 GMT offset was -0:36:45 (rounded from -0:36:44.68), not -0:36:32. (Thanks to Stephen Colebourne for pointing to the decree.) Asia/Dhaka ended DST on 2009-12-31 at 24:00, not 23:59. A new file 'backzone' contains data which may appeal to connoisseurs of old timestamps, although it is out of scope for the tz database, is often poorly sourced, and contains some data that is known to be incorrect. The new file is not recommended for ordinary use and its entries are not installed by default. (Thanks to Lester Caine for the high-quality Jersey, Guernsey, and Isle of Man entries.) Some more zones have been turned into links, when they differed from existing zones only for older timestamps. As usual, these changes affect UT offsets in pre-1970 timestamps only. Their old contents have been moved to the 'backzone' file. The affected zones are: Africa/Bangui, Africa/Brazzaville, Africa/Douala, Africa/Kinshasa, Africa/Libreville, Africa/Luanda, Africa/Malabo, Africa/Niamey, and Africa/Porto-Novo. Changes affecting code Unless NETBSD_INSPIRED is defined to 0, the tz library now supplies functions for creating and using objects that represent timezones. The new functions are tzalloc, tzfree, localtime_rz, mktime_z, and (if STD_INSPIRED is also defined) posix2time_z and time2posix_z. They are intended for performance: for example, localtime_rz (unlike localtime_r) is trivially thread-safe without locking. (Thanks to Christos Zoulas for proposing NetBSD-inspired functions, and to Alan Barrett and Jonathan Lennox for helping to debug the change.) zdump now builds with the tz library unless USE_LTZ is defined to 0, This lets zdump use tz features even if the system library lacks them. To build zdump with the system library, use 'make CFLAGS=-DUSE_LTZ=0 TZDOBJS=zdump.o CHECK_TIME_T_ALTERNATIVES='. zdump now uses localtime_rz if available, as it's significantly faster, and it can help zdump better diagnose invalid timezone names. Define HAVE_LOCALTIME_RZ to 0 to suppress this. HAVE_LOCALTIME_RZ defaults to 1 if NETBSD_INSPIRED && USE_LTZ. When localtime_rz is not available, zdump now uses localtime_r and tzset if available, as this is a bit cleaner and faster than plain localtime. Compile with -DHAVE_LOCALTIME_R=0 and/or -DHAVE_TZSET=0 if your system lacks these two functions. If THREAD_SAFE is defined to 1, the tz library is now thread-safe. Although not needed for tz's own applications, which are single-threaded, this supports POSIX better if the tz library is used in multithreaded apps. Some crashes have been fixed when zdump or the tz library is given invalid or outlandish input. The tz library no longer mishandles leap seconds on platforms with unsigned time_t in timezones that lack ordinary transitions after 1970. The tz code now attempts to infer TM_GMTOFF and TM_ZONE if not already defined, to make it easier to configure on common platforms. Define NO_TM_GMTOFF and NO_TM_ZONE to suppress this. Unless the new macro UNINIT_TRAP is defined to 1, the tz code now assumes that reading uninitialized memory yields garbage values but does not cause other problems such as traps. If TM_GMTOFF is defined and UNINIT_TRAP is 0, mktime is now more likely to guess right for ambiguous timestamps near transitions where tm_isdst does not change. If HAVE_STRFTIME_L is defined to 1, the tz library now defines strftime_l for compatibility with recent versions of POSIX. Only the C locale is supported, though. HAVE_STRFTIME_L defaults to 1 on recent POSIX versions, and to 0 otherwise. tzselect -c now uses a hybrid distance measure that works better in Africa. (Thanks to Alan Barrett for noting the problem.) The C source code now ports to NetBSD when GCC_DEBUG_FLAGS is used, or when time_tz is defined. When HAVE_UTMPX_H is set the 'date' command now builds on systems whose file does not define WTMPX_FILE, and when setting the date it updates the wtmpx file if _PATH_WTMPX is defined. This affects GNU/Linux and similar systems. For easier maintenance later, some C code has been simplified, some lint has been removed, and the code has been tweaked so that plain 'make' is more likely to work. The C type 'bool' is now used for boolean values, instead of 'int'. The long-obsolete LOCALE_HOME code has been removed. The long-obsolete 'gtime' function has been removed. Changes affecting build procedure 'zdump' no longer links in ialloc.o, as it's not needed. 'make check_time_t_alternatives' no longer assumes GNU diff. Changes affecting distribution tarballs The files checktab.awk and zoneinfo2tdf.pl are now distributed in the tzdata tarball instead of the tzcode tarball, since they help maintain the data. The NEWS and Theory files are now also distributed in the tzdata tarball, as they're relevant for data. (Thanks to Alan Barrett for pointing this out.) Also, the leapseconds.awk file is no longer distributed in the tzcode tarball, since it belongs in the tzdata tarball (where 2014f inadvertently also distributed it). Changes affecting documentation and commentary A new file CONTRIBUTING is distributed. (Thanks to Tim Parenti for suggesting a CONTRIBUTING file, and to Tony Finch and Walter Harms for debugging it.) The man pages have been updated to use function prototypes, to document thread-safe variants like localtime_r, and to document the NetBSD-inspired functions tzalloc, tzfree, localtime_rz, and mktime_z. The fields in Link lines have been renamed to be more descriptive and more like the parameters of 'ln'. LINK-FROM has become TARGET, and LINK-TO has become LINK-NAME. tz-link.htm mentions the IETF's tzdist working group; Windows Runtime etc. (thanks to Matt Johnson); and HP-UX's tztab. Some broken URLs have been fixed in the commentary. (Thanks to Lester Caine.) Commentary about Philippines DST has been updated, and commentary on pre-1970 time in India has been added. Release 2014f - 2014-08-05 17:42:36 -0700 Changes affecting future timestamps Russia will subtract an hour from most of its time zones on 2014-10-26 at 02:00 local time. (Thanks to Alexander Krivenyshev.) There are a few exceptions: Magadan Oblast (Asia/Magadan) and Zabaykalsky Krai are subtracting two hours; conversely, Chukotka Autonomous Okrug (Asia/Anadyr), Kamchatka Krai (Asia/Kamchatka), Kemerovo Oblast (Asia/Novokuznetsk), and the Samara Oblast and the Udmurt Republic (Europe/Samara) are not changing their clocks. The changed zones are Europe/Kaliningrad, Europe/Moscow, Europe/Simferopol, Europe/Volgograd, Asia/Yekaterinburg, Asia/Omsk, Asia/Novosibirsk, Asia/Krasnoyarsk, Asia/Irkutsk, Asia/Yakutsk, Asia/Vladivostok, Asia/Khandyga, Asia/Sakhalin, and Asia/Ust-Nera; Asia/Magadan will have two hours subtracted; and Asia/Novokuznetsk's time zone abbreviation is affected, but not its UTC offset. Two zones are added: Asia/Chita (split from Asia/Yakutsk, and also with two hours subtracted) and Asia/Srednekolymsk (split from Asia/Magadan, but with only one hour subtracted). (Thanks to Tim Parenti for much of the above.) Changes affecting time zone abbreviations Australian eastern time zone abbreviations are now AEST/AEDT not EST, and similarly for the other Australian zones. That is, for eastern standard and daylight saving time the abbreviations are AEST and AEDT instead of the former EST for both; similarly, ACST/ACDT, ACWST/ACWDT, and AWST/AWDT are now used instead of the former CST, CWST, and WST. This change does not affect UT offsets, only time zone abbreviations. (Thanks to Rich Tibbett and many others.) Asia/Novokuznetsk shifts from NOVT to KRAT (remaining on UT +07) effective 2014-10-26 at 02:00 local time. The time zone abbreviation for Xinjiang Time (observed in Ürümqi) has been changed from URUT to XJT. (Thanks to Luther Ma.) Prefer MSK/MSD for Moscow time in Russia, even in other cities. Similarly, prefer EET/EEST for eastern European time in Russia. Change time zone abbreviations in (western) Samoa to use "ST" and "DT" suffixes, as this is more likely to match common practice. Prefix "W" to (western) Samoa time when its standard-time offset disagrees with that of American Samoa. America/Metlakatla now uses PST, not MeST, to abbreviate its time zone. Time zone abbreviations have been updated for Japan's two time zones used 1896-1937. JWST now stands for Western Standard Time, and JCST for Central Standard Time (formerly this was CJT). These abbreviations are now used for time in Korea, Taiwan, and Sakhalin while controlled by Japan. Changes affecting past timestamps China's five zones have been simplified to two, since the post-1970 differences in the other three seem to have been imaginary. The zones Asia/Harbin, Asia/Chongqing, and Asia/Kashgar have been removed; backwards-compatibility links still work, albeit with different behaviors for timestamps before May 1980. Asia/Urumqi's 1980 transition to UT +08 has been removed, so that it is now at +06 and not +08. (Thanks to Luther Ma and to Alois Treindl; Treindl sent helpful translations of two papers by Guo Qingsheng.) Some zones have been turned into links, when they differed from existing zones only for older UT offsets where data entries were likely invented. These changes affect UT offsets in pre-1970 timestamps only. This is similar to the change in release 2013e, except this time for western Africa. The affected zones are: Africa/Bamako, Africa/Banjul, Africa/Conakry, Africa/Dakar, Africa/Freetown, Africa/Lome, Africa/Nouakchott, Africa/Ouagadougou, Africa/Sao_Tome, and Atlantic/St_Helena. This also affects the backwards-compatibility link Africa/Timbuktu. (Thanks to Alan Barrett, Stephen Colebourne, Tim Parenti, and David Patte for reporting problems in earlier versions of this change.) Asia/Shanghai's pre-standard-time UT offset has been changed from 8:05:57 to 8:05:43, the location of Xujiahui Observatory. Its transition to standard time has been changed from 1928 to 1901. Asia/Taipei switched to JWST on 1896-01-01, then to JST on 1937-10-01, then to CST on 1945-09-21 at 01:00, and did not observe DST in 1945. In 1946 it observed DST from 05-15 through 09-30; in 1947 from 04-15 through 10-31; and in 1979 from 07-01 through 09-30. (Thanks to Yu-Cheng Chuang.) Asia/Riyadh's transition to standard time is now 1947-03-14, not 1950. Europe/Helsinki's 1942 fall-back transition was 10-04 at 01:00, not 10-03 at 00:00. (Thanks to Konstantin Hyppönen.) Pacific/Pago_Pago has been changed from UT -11:30 to -11 for the period from 1911 to 1950. Pacific/Chatham has been changed to New Zealand standard time plus 45 minutes for the period before 1957, reflecting a 1956 remark in the New Zealand parliament. Europe/Budapest has several pre-1946 corrections: in 1918 the transition out of DST was on 09-16, not 09-29; in 1919 it was on 11-24, not 09-15; in 1945 it was on 11-01, not 11-03; in 1941 the transition to DST was 04-08 not 04-06 at 02:00; and there was no DST in 1920. Africa/Accra is now assumed to have observed DST from 1920 through 1935. Time in Russia before 1927 or so has been corrected by a few seconds in the following zones: Europe/Moscow, Asia/Irkutsk, Asia/Tbilisi, Asia/Tashkent, Asia/Vladivostok, Asia/Yekaterinburg, Europe/Helsinki, and Europe/Riga. Also, Moscow's location has been changed to its Kilometer 0 point. (Thanks to Vladimir Karpinsky for the Moscow changes.) Changes affecting data format A new file 'zone1970.tab' supersedes 'zone.tab' in the installed data. The new file's extended format allows multiple country codes per zone. The older file is still installed but is deprecated; its format is not changing and it will still be distributed for a while, but new applications should use the new file. The new file format simplifies maintenance of obscure locations. To test this, it adds coverage for the Crozet Islands and the Scattered Islands. (Thanks to Tobias Conradi and Antoine Leca.) The file 'iso3166.tab' is planned to switch from ASCII to UTF-8. It is still ASCII now, but commentary about the switch has been added. The new file 'zone1970.tab' already uses UTF-8. Changes affecting code 'localtime', 'mktime', etc. now use much less stack space if ALL_STATE is defined. (Thanks to Elliott Hughes for reporting the problem.) 'zic' no longer mishandles input when ignoring case in locales that are not compatible with English, e.g., unibyte Turkish locales when compiled with HAVE_GETTEXT. Error diagnostics of 'zic' and 'yearistype' have been reworded so that they no longer use ASCII '-' as if it were a dash. 'zic' now rejects output file names that contain '.' or '..' components. (Thanks to Tim Parenti for reporting the problem.) 'zic -v' now warns about output file names that do not follow POSIX rules, or that contain a digit or '.'. (Thanks to Arthur David Olson for starting the ball rolling on this.) Some lint has been removed when using GCC_DEBUG_FLAGS with GCC 4.9.0. Changes affecting build procedure 'zic' no longer links in localtime.o and asctime.o, as they're not needed. (Thanks to John Cochran.) Changes affecting documentation and commentary The 'Theory' file documents legacy names, the longstanding exceptions to the POSIX-inspired file name rules. The 'zic' documentation clarifies the role of time types when interpreting dates. (Thanks to Arthur David Olson.) Documentation and commentary now prefer UTF-8 to US-ASCII, allowing the use of proper accents in foreign words and names. Code and data have not changed because of this. (Thanks to Garrett Wollman, Ian Abbott, and Guy Harris for helping to debug this.) Non-HTML documentation and commentary now use plain-text URLs instead of HTML insertions, and are more consistent about bracketing URLs when they are not already surrounded by white space. (Thanks to suggestions by Steffen Nurpmeso.) There is new commentary about Xujiahui Observatory, the five time-zone project in China from 1918 to 1949, timekeeping in Japanese-occupied Shanghai, and Tibet Time in the 1950s. The sharp-eyed can spot the warlord Jin Shuren in the data. Commentary about the coverage of each Russian zone has been standardized. (Thanks to Tim Parenti.) There is new commentary about contemporary timekeeping in Ethiopia. Obsolete comments about a 2007 proposal for DST in Kuwait has been removed. There is new commentary about time in Poland in 1919. Proper credit has been given to DST inventor George Vernon Hudson. Commentary about time in Metlakatla, AK and Resolute, NU has been improved, with a new source for the former. In zone.tab, Pacific/Easter no longer mentions Salas y Gómez, as it is uninhabited. Commentary about permanent Antarctic bases has been updated. Several typos have been corrected. (Thanks to Tim Parenti for contributing some of these fixes.) tz-link.htm now mentions the JavaScript libraries Moment Timezone, TimezoneJS.Date, Walltime-js, and Timezone. (Thanks to a heads-up from Matt Johnson.) Also, it mentions the Go 'latlong' package. (Thanks to a heads-up from Dirkjan Ochtman.) The files usno1988, usno1989, usno1989a, usno1995, usno1997, and usno1998 have been removed. These obsolescent US Naval Observatory entries were no longer helpful for maintenance. (Thanks to Tim Parenti for the suggestion.) Release 2014e - 2014-06-12 21:53:52 -0700 Changes affecting near-future timestamps Egypt's 2014 Ramadan-based transitions are June 26 and July 31 at 24:00. (Thanks to Imed Chihi.) Guess that from 2015 on Egypt will temporarily switch to standard time at 24:00 the last Thursday before Ramadan, and back to DST at 00:00 the first Friday after Ramadan. Similarly, Morocco's are June 28 at 03:00 and August 2 at 02:00. (Thanks to Milamber Space Network.) Guess that from 2015 on Morocco will temporarily switch to standard time at 03:00 the last Saturday before Ramadan, and back to DST at 02:00 the first Saturday after Ramadan. Changes affecting past timestamps The abbreviation "MSM" (Moscow Midsummer Time) is now used instead of "MSD" for Moscow's double daylight time in summer 1921. Also, a typo "VLASST" has been repaired to be "VLAST" for Vladivostok summer time in 1991. (Thanks to Hank W. for reporting the problems.) Changes affecting commentary tz-link.htm now cites RFC 7265 for jCal, mentions PTP and the draft CalDAV extension, updates URLs for TSP, TZInfo, IATA, and removes stale pointers to World Time Explorer and WORLDTIME. Release 2014d - 2014-05-27 21:34:40 -0700 Changes affecting code zic no longer generates files containing timestamps before the Big Bang. This works around GNOME glib bug 878 (Thanks to Leonardo Chiquitto for reporting the bug, and to Arthur David Olson and James Cloos for suggesting improvements to the fix.) Changes affecting documentation tz-link.htm now mentions GNOME. Release 2014c - 2014-05-13 07:44:13 -0700 Changes affecting near-future timestamps Egypt observes DST starting 2014-05-15 at 24:00. (Thanks to Ahmad El-Dardiry and Gunther Vermier.) Details have not been announced, except that DST will not be observed during Ramadan. Guess that DST will stop during the same Ramadan dates as Morocco, and that Egypt's future spring and fall transitions will be the same as 2010 when it last observed DST, namely April's last Friday at 00:00 to September's last Thursday at 23:00 standard time. Also, guess that Ramadan transitions will be at 00:00 standard time. Changes affecting code zic now generates transitions for minimum time values, eliminating guesswork when handling low-valued timestamps. (Thanks to Arthur David Olson.) Port to Cygwin sans glibc. (Thanks to Arthur David Olson.) Changes affecting commentary and documentation Remove now-confusing comment about Jordan. (Thanks to Oleksii Nochovnyi.) Release 2014b - 2014-03-24 21:28:50 -0700 Changes affecting near-future timestamps Crimea switches to Moscow time on 2014-03-30 at 02:00 local time. (Thanks to Alexander Krivenyshev.) Move its zone.tab entry from UA to RU. New entry for Troll station, Antarctica. (Thanks to Paul-Inge Flakstad and Bengt-Inge Larsson.) This is currently an approximation; a better version will require the zic and localtime fixes mentioned below, and the plan is to wait for a while until at least the zic fixes propagate. Changes affecting code 'zic' and 'localtime' no longer reject locations needing four transitions per year for the foreseeable future. (Thanks to Andrew Main (Zefram).) Also, 'zic' avoids some unlikely failures due to integer overflow. Changes affecting build procedure 'make check' now detects Rule lines defined but never used. The NZAQ rules, an instance of this problem, have been removed. Changes affecting commentary and documentation Fix Tuesday/Thursday typo in description of time in Israel. (Thanks to Bert Katz via Pavel Kharitonov and Mike Frysinger.) Microsoft Windows 8.1 doesn't support tz database names. (Thanks to Donald MacQueen.) Instead, the Microsoft Windows Store app library supports them. Add comments about Johnston Island time in the 1960s. (Thanks to Lyle McElhaney.) Morocco's 2014 DST start will be as predicted. (Thanks to Sebastien Willemijns.) Release 2014a - 2014-03-07 23:30:29 -0800 Changes affecting near-future timestamps Turkey begins DST on 2014-03-31, not 03-30. (Thanks to Faruk Pasin for the heads-up, and to Tim Parenti for simplifying the update.) Changes affecting past timestamps Fiji ended DST on 2014-01-19 at 02:00, not the previously-scheduled 03:00. (Thanks to Steffen Thorsen.) Ukraine switched from Moscow to Eastern European time on 1990-07-01 (not 1992-01-01), and observed DST during the entire next winter. (Thanks to Vladimir in Moscow via Alois Treindl.) In 1988 Israel observed DST from 04-10 to 09-04, not 04-09 to 09-03. (Thanks to Avigdor Finkelstein.) Changes affecting code A uninitialized-storage bug in 'localtime' has been fixed. (Thanks to Logan Chien.) Changes affecting the build procedure The settings for 'make check_web' now default to Ubuntu 13.10. Changes affecting commentary and documentation The boundary of the US Pacific time zone is given more accurately. (Thanks to Alan Mintz.) Chile's 2014 DST will be as predicted. (Thanks to José Miguel Garrido.) Paraguay's 2014 DST will be as predicted. (Thanks to Carlos Raúl Perasso.) Better descriptions of countries with same time zone history as Trinidad and Tobago since 1970. (Thanks to Alan Barrett for suggestion.) Several changes affect tz-link.htm, the main web page. Mention Time.is (thanks to Even Scharning) and WX-now (thanks to David Braverman). Mention xCal (Internet RFC 6321) and jCal. Microsoft has some support for tz database names. CLDR data formats include both XML and JSON. Mention Maggiolo's map of solar vs standard time. (Thanks to Arthur David Olson.) Mention TZ4Net. (Thanks to Matt Johnson.) Mention the timezone-olson Haskell package. Mention zeitverschiebung.net. (Thanks to Martin Jäger.) Remove moribund links to daylight-savings-time.info and to Simple Timer + Clocks. Update two links. (Thanks to Oscar van Vlijmen.) Fix some formatting glitches, e.g., remove random newlines from abbr elements' title attributes. Release 2013i - 2013-12-17 07:25:23 -0800 Changes affecting near-future timestamps: Jordan switches back to standard time at 00:00 on December 20, 2013. The 2006-2011 transition schedule is planned to resume in 2014. (Thanks to Steffen Thorsen.) Changes affecting past timestamps: In 2004, Cuba began DST on March 28, not April 4. (Thanks to Steffen Thorsen.) Changes affecting code The compile-time flag NOSOLAR has been removed, as nowadays the benefit of slightly shrinking runtime table size is outweighed by the cost of disallowing potential future updates that exceed old limits. Changes affecting documentation and commentary The files solar87, solar88, and solar89 are no longer distributed. They were a negative experiment - that is, a demonstration that tz data can represent solar time only with some difficulty and error. Their presence in the distribution caused confusion, as Riyadh civil time was generally not solar time in those years. tz-link.htm now mentions Noda Time. (Thanks to Matt Johnson.) Release 2013h - 2013-10-25 15:32:32 -0700 Changes affecting current and future timestamps: Libya has switched its UT offset back to +02 without DST, instead of +01 with DST. (Thanks to Even Scharning.) Western Sahara (Africa/El_Aaiun) uses Morocco's DST rules. (Thanks to Gwillim Law.) Changes affecting future timestamps: Acre and (we guess) western Amazonas will switch from UT -04 to -05 on 2013-11-10. This affects America/Rio_Branco and America/Eirunepe. (Thanks to Steffen Thorsen.) Add entries for DST transitions in Morocco in the year 2038. This avoids some year-2038 glitches introduced in 2013g. (Thanks to Yoshito Umaoka for reporting the problem.) Changes affecting API The 'tzselect' command no longer requires the 'select' command, and should now work with /bin/sh on more platforms. It also works around a bug in BusyBox awk before version 1.21.0. (Thanks to Patrick 'P. J.' McDermott and Alan Barrett.) Changes affecting code Fix localtime overflow bugs with 32-bit unsigned time_t. zdump no longer assumes sscanf returns maximal values on overflow. Changes affecting the build procedure The builder can specify which programs to use, if any, instead of 'ar' and 'ranlib', and libtz.a is now built locally before being installed. (Thanks to Michael Forney.) A dependency typo in the 'zdump' rule has been fixed. (Thanks to Andrew Paprocki.) The Makefile has been simplified by assuming that 'mkdir -p' and 'cp -f' work as specified by POSIX.2-1992 or later; this is portable nowadays. 'make clean' no longer removes 'leapseconds', since it's host-independent and is part of the distribution. The unused makefile macros TZCSRCS, TZDSRCS, DATESRCS have been removed. Changes affecting documentation and commentary tz-link.htm now mentions TC TIMEZONE's draft time zone service protocol (thanks to Mike Douglass) and TimezoneJS.Date (thanks to Jim Fehrle). Update URLs in tz-link page. Add URLs for Microsoft Windows, since 8.1 introduces tz support. Remove URLs for Tru64 and UnixWare (no longer maintained) and for old advisories. SOFA now does C. Release 2013g - 2013-09-30 21:08:26 -0700 Changes affecting current and near-future timestamps Morocco now observes DST from the last Sunday in March to the last Sunday in October, not April to September respectively. (Thanks to Steffen Thorsen.) Changes affecting 'zic' 'zic' now runs on platforms that lack both hard links and symlinks. (Thanks to Theo Veenker for reporting the problem, for MinGW.) Also, fix some bugs on platforms that lack hard links but have symlinks. 'zic -v' again warns that Asia/Tehran has no POSIX environment variable to predict the far future, fixing a bug introduced in 2013e. Changes affecting the build procedure The 'leapseconds' file is again put into the tzdata tarball. Also, 'leapseconds.awk', so tzdata is self-contained. (Thanks to Matt Burgess and Ian Abbott.) The timestamps of these and other dependent files in tarballs are adjusted more consistently. Changes affecting documentation and commentary The README file is now part of the data tarball as well as the code. It now states that files are public domain unless otherwise specified. (Thanks to Andrew Main (Zefram) for asking for clarifications.) Its details about the 1989 release moved to a place of honor near the end of NEWS. Release 2013f - 2013-09-24 23:37:36 -0700 Changes affecting near-future timestamps Tocantins will very likely not observe DST starting this spring. (Thanks to Steffen Thorsen.) Jordan will likely stay at UT +03 indefinitely, and will not fall back this fall. Palestine will fall back at 00:00, not 01:00. (Thanks to Steffen Thorsen.) Changes affecting API The types of the global variables 'timezone' and 'altzone' (if present) have been changed back to 'long'. This is required for 'timezone' by POSIX, and for 'altzone' by common practice, e.g., Solaris 11. These variables were originally 'long' in the tz code, but were mistakenly changed to 'time_t' in 1987; nobody reported the incompatibility until now. The difference matters on x32, where 'long' is 32 bits and 'time_t' is 64. (Thanks to Elliott Hughes.) Changes affecting the build procedure Avoid long strings in leapseconds.awk to work around a mawk bug. (Thanks to Cyril Baurand.) Changes affecting documentation and commentary New file 'NEWS' that contains release notes like this one. Paraguay's law does not specify DST transition time; 00:00 is customary. (Thanks to Waldemar Villamayor-Venialbo.) Minor capitalization fixes. Changes affecting version-control only The experimental GitHub repository now contains annotated and signed tags for recent releases, e.g., '2013e' for Release 2013e. Releases are tagged starting with 2012e; earlier releases were done differently, and tags would either not have a simple name or not exactly match what was released. 'make set-timestamps' is now simpler and a bit more portable. Release 2013e - 2013-09-19 23:50:04 -0700 Changes affecting near-future timestamps This year Fiji will start DST on October 27, not October 20. (Thanks to David Wheeler for the heads-up.) For now, guess that Fiji will continue to spring forward the Sunday before the fourth Monday in October. Changes affecting current and future time zone abbreviations Use WIB/WITA/WIT rather than WIT/CIT/EIT for alphabetic Indonesian time zone abbreviations since 1932. (Thanks to George Ziegler, Priyadi Iman Nurcahyo, Zakaria, Jason Grimes, Martin Pitt, and Benny Lin.) This affects Asia/Dili, Asia/Jakarta, Asia/Jayapura, Asia/Makassar, and Asia/Pontianak. Use ART (UT -03, standard time), rather than WARST (also -03, but daylight saving time) for San Luis, Argentina since 2009. Changes affecting Godthåb timestamps after 2037 if version mismatch Allow POSIX-like TZ strings where the transition time's hour can range from -167 through 167, instead of the POSIX-required 0 through 24. E.g., TZ='FJT-12FJST,M10.3.1/146,M1.3.4/75' for the new Fiji rules. This is a more-compact way to represent far-future timestamps for America/Godthab, America/Santiago, Antarctica/Palmer, Asia/Gaza, Asia/Hebron, Asia/Jerusalem, Pacific/Easter, and Pacific/Fiji. Other zones are unaffected by this change. (Derived from a suggestion by Arthur David Olson.) Allow POSIX-like TZ strings where daylight saving time is in effect all year. E.g., TZ='WART4WARST,J1/0,J365/25' for Western Argentina Summer Time all year. This supports a more-compact way to represent the 2013d data for America/Argentina/San_Luis. Because of the change for San Luis noted above this change does not affect the current data. (Thanks to Andrew Main (Zefram) for suggestions that improved this change.) Where these two TZ changes take effect, there is a minor extension to the tz file format in that it allows new values for the embedded TZ-format string, and the tz file format version number has therefore been increased from 2 to 3 as a precaution. Version-2-based client code should continue to work as before for all timestamps before 2038. Existing version-2-based client code (tzcode, GNU/Linux, Solaris) has been tested on version-3-format files, and typically works in practice even for timestamps after 2037; the only known exception is America/Godthab. Changes affecting timestamps before 1970 Pacific/Johnston is now a link to Pacific/Honolulu. This corrects some errors before 1947. Some zones have been turned into links, when they differ from existing zones only in older data entries that were likely invented or that differ only in LMT or transitions from LMT. These changes affect only timestamps before 1943. The affected zones are: Africa/Juba, America/Anguilla, America/Aruba, America/Dominica, America/Grenada, America/Guadeloupe, America/Marigot, America/Montserrat, America/St_Barthelemy, America/St_Kitts, America/St_Lucia, America/St_Thomas, America/St_Vincent, America/Tortola, and Europe/Vaduz. (Thanks to Alois Treindl for confirming that the old Europe/Vaduz zone was wrong and the new link is better for WWII-era times.) Change Kingston Mean Time from -5:07:12 to -5:07:11. This affects America/Cayman, America/Jamaica and America/Grand_Turk timestamps from 1890 to 1912. Change the UT offset of Bern Mean Time from 0:29:44 to 0:29:46. This affects Europe/Zurich timestamps from 1853 to 1894. (Thanks to Alois Treindl.) Change the date of the circa-1850 Zurich transition from 1849-09-12 to 1853-07-16, overriding Shanks with data from Messerli about postal and telegraph time in Switzerland. Changes affecting time zone abbreviations before 1970 For Asia/Jakarta, use BMT (not JMT) for mean time from 1923 to 1932, as Jakarta was called Batavia back then. Changes affecting API The 'zic' command now outputs a dummy transition when far-future data can't be summarized using a TZ string, and uses a 402-year window rather than a 400-year window. For the current data, this affects only the Asia/Tehran file. It does not affect any of the timestamps that this file represents, so zdump outputs the same information as before. (Thanks to Andrew Main (Zefram).) The 'date' command has a new '-r' option, which lets you specify the integer time to display, a la FreeBSD. The 'tzselect' command has two new options '-c' and '-n', which lets you select a zone based on latitude and longitude. The 'zic' command's '-v' option now warns about constructs that require the new version-3 binary file format. (Thanks to Arthur David Olson for the suggestion.) Support for floating-point time_t has been removed. It was always dicey, and POSIX no longer requires it. (Thanks to Eric Blake for suggesting to the POSIX committee to remove it, and thanks to Alan Barrett, Clive D.W. Feather, Andy Heninger, Arthur David Olson, and Alois Treindl, for reporting bugs and elucidating some of the corners of the old floating-point implementation.) The signatures of 'offtime', 'timeoff', and 'gtime' have been changed back to the old practice of using 'long' to represent UT offsets. This had been inadvertently and mistakenly changed to 'int_fast32_t'. (Thanks to Christos Zoulas.) The code avoids undefined behavior on integer overflow in some more places, including gmtime, localtime, mktime and zdump. Changes affecting the zdump utility zdump now outputs "UT" when referring to Universal Time, not "UTC". "UTC" does not make sense for timestamps that predate the introduction of UTC, whereas "UT", a more-generic term, does. (Thanks to Steve Allen for clarifying UT vs UTC.) Data changes affecting behavior of tzselect and similar programs Country code BQ is now called the more-common name "Caribbean Netherlands" rather than the more-official "Bonaire, St Eustatius & Saba". Remove from zone.tab the names America/Montreal, America/Shiprock, and Antarctica/South_Pole, as they are equivalent to existing same-country-code zones for post-1970 timestamps. The data entries for these names are unchanged, so the names continue to work as before. Changes affecting code internals zic -c now runs way faster on 64-bit hosts when given large numbers. zic now uses vfprintf to avoid allocating and freeing some memory. tzselect now computes the list of continents from the data, rather than have it hard-coded. Minor changes pacify GCC 4.7.3 and GCC 4.8.1. Changes affecting the build procedure The 'leapseconds' file is now generated automatically from a new file 'leap-seconds.list', which is a copy of A new source file 'leapseconds.awk' implements this. The goal is simplification of the future maintenance of 'leapseconds'. When building the 'posix' or 'right' subdirectories, if the subdirectory would be a copy of the default subdirectory, it is now made a symbolic link if that is supported. This saves about 2 MB of file system space. The links America/Shiprock and Antarctica/South_Pole have been moved to the 'backward' file. This affects only nondefault builds that omit 'backward'. Changes affecting version-control only .gitignore now ignores 'date'. Changes affecting documentation and commentary Changes to the 'tzfile' man page It now mentions that the binary file format may be extended in future versions by appending data. It now refers to the 'zdump' and 'zic' man pages. Changes to the 'zic' man page It lists conditions that elicit a warning with '-v'. It says that the behavior is unspecified when duplicate names are given, or if the source of one link is the target of another. Its examples are updated to match the latest data. The definition of white space has been clarified slightly. (Thanks to Michael Deckers.) Changes to the 'Theory' file There is a new section about the accuracy of the tz database, describing the many ways that errors can creep in, and explaining why so many of the pre-1970 timestamps are wrong or misleading (thanks to Steve Allen, Lester Caine, and Garrett Wollman for discussions that contributed to this). The 'Theory' file describes LMT better (this follows a suggestion by Guy Harris). It refers to the 2013 edition of POSIX rather than the 2004 edition. It's mentioned that excluding 'backward' should not affect the other data, and it suggests at least one zone.tab name per inhabited country (thanks to Stephen Colebourne). Some longstanding restrictions on names are documented, e.g., 'America/New_York' precludes 'America/New_York/Bronx'. It gives more reasons for the 1970 cutoff. It now mentions which time_t variants are supported, such as signed integer time_t. (Thanks to Paul Goyette for reporting typos in an experimental version of this change.) (Thanks to Philip Newton for correcting typos in these changes.) Documentation and commentary is more careful to distinguish UT in general from UTC in particular. (Thanks to Steve Allen.) Add a better source for the Zurich 1894 transition. (Thanks to Pierre-Yves Berger.) Update shapefile citations in tz-link.htm. (Thanks to Guy Harris.) Release 2013d - 2013-07-05 07:38:01 -0700 Changes affecting future timestamps: Morocco's midsummer transitions this year are July 7 and August 10, not July 9 and August 8. (Thanks to Andrew Paprocki.) Israel now falls back on the last Sunday of October. (Thanks to Ephraim Silverberg.) Changes affecting past timestamps: Specify Jerusalem's location more precisely; this changes the pre-1880 times by 2 s. Changing affecting metadata only: Fix typos in the entries for country codes BQ and SX. Changes affecting code: Rework the code to fix a bug with handling Australia/Macquarie on 32-bit hosts (thanks to Arthur David Olson). Port to platforms like NetBSD, where time_t can be wider than long. Add support for testing time_t types other than the system's. Run 'make check_time_t_alternatives' to try this out. Currently, the tests fail for unsigned time_t; this should get fixed at some point. Changes affecting documentation and commentary: Deemphasize the significance of national borders. Update the zdump man page. Remove obsolete NOID comment (thanks to Denis Excoffier). Update several URLs and comments in the web pages. Spelling fixes (thanks to Kevin Lyda and Jonathan Leffler). Update URL for CLDR Zone->Tzid table (thanks to Yoshito Umaoka). Release 2013c - 2013-04-19 16:17:40 -0700 Changes affecting current and future timestamps: Palestine observed DST starting March 29, 2013. (Thanks to Steffen Thorsen.) From 2013 on, Gaza and Hebron both observe DST, with the predicted rules being the last Thursday in March at 24:00 to the first Friday on or after September 21 at 01:00. Assume that the recent change to Paraguay's DST rules is permanent, by moving the end of DST to the 4th Sunday in March every year. (Thanks to Carlos Raúl Perasso.) Changes affecting past timestamps: Fix some historical data for Palestine to agree with that of timeanddate.com, as follows: The spring 2008 change in Gaza and Hebron was on 00:00 Mar 28, not 00:00 Apr 1. The fall 2009 change in Gaza and Hebron on Sep 4 was at 01:00, not 02:00. The spring 2010 change in Hebron was 00:00 Mar 26, not 00:01 Mar 27. The spring 2011 change in Gaza was 00:01 Apr 1, not 12:01 Apr 2. The spring 2011 change in Hebron on Apr 1 was at 00:01, not 12:01. The fall 2011 change in Hebron on Sep 30 was at 00:00, not 03:00. Fix times of habitation for Macquarie to agree with the Tasmania Parks & Wildlife Service history, which indicates that permanent habitation was 1899-1919 and 1948 on. Changing affecting metadata only: Macquarie Island is politically part of Australia, not Antarctica. (Thanks to Tobias Conradi.) Sort Macquarie more-consistently with other parts of Australia. (Thanks to Tim Parenti.) Release 2013b - 2013-03-10 22:33:40 -0700 Changes affecting current and future timestamps: Haiti uses US daylight-saving rules this year, and presumably future years. This changes timestamps starting today. (Thanks to Steffen Thorsen.) Paraguay will end DST on March 24 this year. (Thanks to Steffen Thorsen.) For now, assume it's just this year. Morocco does not observe DST during Ramadan; try to predict Ramadan in Morocco as best we can. (Thanks to Erik Homoet for the heads-up.) Changes affecting commentary: Update URLs in tz-link page. Add URLs for webOS, BB10, iOS. Update URL for Solaris. Mention Internet RFC 6557. Update Internet RFCs 2445->5545, 2822->5322. Switch from FTP to HTTP for Internet RFCs. Release 2013a - 2013-02-27 09:20:35 -0800 Change affecting binary data format: The zone offset at the end of version-2-format zone files is now allowed to be 24:00, as per POSIX.1-2008. (Thanks to Arthur David Olson.) Changes affecting current and future timestamps: Chile's 2013 rules, and we guess rules for 2014 and later, will be the same as 2012, namely Apr Sun>=23 03:00 UTC to Sep Sun>=2 04:00 UTC. (Thanks to Steffen Thorsen and Robert Elz.) New Zones Asia/Khandyga, Asia/Ust-Nera, Europe/Busingen. (Thanks to Tobias Conradi and Arthur David Olson.) Many changes affect historical timestamps before 1940. These were deduced from: Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94 . Changes affecting the code: Fix zic bug that mishandled Egypt's 2010 changes (this also affected the data). (Thanks to Arthur David Olson.) Fix localtime bug when time_t is unsigned and data files were generated by a signed time_t system. (Thanks to Doug Bailey for reporting and to Arthur David Olson for fixing.) Allow the email address for bug reports to be set by the packager. The default is tz@iana.org, as before. (Thanks to Joseph S. Myers.) Update HTML checking to be compatible with Ubuntu 12.10. Check that files are a safe subset of ASCII. At some point we may relax this requirement to a safe subset of UTF-8. Without the check, some non-UTF-8 encodings were leaking into the distribution. Commentary changes: Restore a comment about copyright notices that was inadvertently deleted. (Thanks to Arthur David Olson.) Improve the commentary about which districts observe what times in Russia. (Thanks to Oscar van Vlijmen and Arthur David Olson.) Add web page links to tz.js. Add "Run by the Monkeys" to tz-art. (Thanks to Arthur David Olson.) Release 2012j - 2012-11-12 18:34:49 -0800 Libya moved to CET this weekend, but with DST planned next year. (Thanks to Even Scharning, Steffen Thorsen, and Tim Parenti.) Signatures now have the extension .asc, not .sign, as that's more standard. (Thanks to Phil Pennock.) The output of 'zdump --version', and of 'zic --version', now uses a format that is more typical for --version. (Thanks to Joseph S. Myers.) The output of 'tzselect --help', 'zdump --help', and 'zic --help' now uses tz@iana.org rather than the old elsie address. zic -v now complains about abbreviations that are less than 3 or more than 6 characters, as per Posix. Formerly, it checked for abbreviations that were more than 3. 'make public' no longer puts its temporary directory under /tmp, and uses the just-built zic rather than the system zic. Various fixes to documentation and commentary. Release 2012i - 2012-11-03 12:57:09 -0700 Cuba switches from DST tomorrow at 01:00. (Thanks to Steffen Thorsen.) Linker flags can now be specified via LDFLAGS. AWK now defaults to 'awk', not 'nawk'. The shell in tzselect now defaults to /bin/bash, but this can be overridden by specifying KSHELL. The main web page now mentions the unofficial GitHub repository. (Thanks to Mike Frysinger.) Tarball signatures can now be built by running 'make signatures'. There are also new makefile rules 'tarballs', 'check_public', and separate makefile rules for each tarball and signature file. A few makefile rules are now more portable to strict POSIX. The main web page now lists the canonical IANA URL. Release 2012h - 2012-10-26 22:49:10 -0700 Bahia no longer has DST. (Thanks to Kelley Cook.) Tocantins has DST. (Thanks to Rodrigo Severo.) Israel has new DST rules next year. (Thanks to Ephraim Silverberg.) Jordan stays on DST this winter. (Thanks to Steffen Thorsen.) Web page updates. More C modernization, except that at Arthur David Olson's suggestion the instances of 'register' were kept. Release 2012g - 2012-10-17 20:59:45 -0700 Samoa fall 2012 and later. (Thanks to Nicholas Pereira and Robert Elz.) Palestine fall 2012. (Thanks to Steffen Thorsen.) Assume C89. To attack the version-number problem, this release ships the file 'Makefile' (which contains the release number) in both the tzcode and the tzdata tarballs. The two Makefiles are identical, and should be identical in any matching pair of tarballs, so it shouldn't matter which order you extract the tarballs. Perhaps we can come up with a better version-number scheme at some point; this scheme does have the virtue of not adding more files. Release 2012f - 2012-09-12 23:17:03 -0700 * australasia (Pacific/Fiji): Fiji DST is October 21 through January 20 this year. (Thanks to Steffen Thorsen.) Release 2012e - 2012-08-02 20:44:55 -0700 * australasia (Pacific/Fakaofo): Tokelau is UT +13, not +14. (Thanks to Steffen Thorsen.) * Use a single version number for both code and data. * .gitignore: New file. * Remove trailing white space. Release code2012c-data2012d - 2012-07-19 16:35:33 -0700 Changes for Morocco's timestamps, which take effect in a couple of hours, along with infrastructure changes to accommodate how the tz code and data are released on IANA. Release data2012c - 2012-03-27 12:17:25 -0400 africa Summer time changes for Morocco (to start late April 2012) asia Changes for 2012 for Gaza & the West Bank (Hebron) and Syria northamerica Haiti following US/Canada rules for 2012 (and we're assuming, for now anyway, for the future). Release 2012b - 2012-03-02 12:29:15 +0700 There is just one change to tzcode2012b (compared with 2012a): the Makefile that was accidentally included with 2012a has been replaced with the version that should have been there, which is identical with the previous version (from tzcode2011i). There are just two changes in tzdata2012b compared with 2012a. Most significantly, summer time in Cuba has been delayed 3 weeks (now starts April 1 rather than March 11). Since Mar 11 (the old start date, as listed in 2012a) is just a little over a week away, this change is urgent. Less importantly, an excess tab in one of the changes in zone.tab in 2012a has been removed. Release 2012a - 2012-03-01 18:28:10 +0700 The changes in tzcode2012a (compared to the previous version, 2011i) are entirely to the README and tz-art.htm and tz-link.htm files, if none of those concern you, you can ignore the code update. The changes reflect the changed addresses for the mailing list and the code and data distribution points & methods (and a link to DateTime::TimeZone::Tzfile has been added to tz-link.htm). In tzdata2012a (compared to the previous release, which was 2011n) the major changes are: Chile 2011/2012 and 2012/2013 summer time date adjustments. Falkland Islands onto permanent summer time (we're assuming for the foreseeable future, though 2012 is all we're fairly certain of.) Armenia has abolished Summer Time. Tokelau jumped the International Date Line back last December (just the same as their near neighbour, Samoa). America/Creston is a new zone for a small area of British Columbia There will be a leapsecond 2012-06-30 23:59:60 UTC. Other minor changes are: Corrections to 1918 Canadian summer time end dates. Updated URL for UK time zone history (in comments) A few typos in Le Corre's list of free French place names (comments) Release data2011n - 2011-10-30 14:57:54 +0700 There are three changes of note - most urgently, Cuba (America/Havana) has extended summer time by two weeks, now to end on Nov 13, rather than the (already past) Oct 30. Second, the Pridnestrovian Moldavian Republic (Europe/Tiraspol) decided not to split from the rest of Moldova after all, and consequently that zone has been removed (again) and reinstated in the "backward" file as a link to Europe/Chisinau. And third, the end date for Fiji's summer time this summer was moved forward from the earlier planned Feb 26, to Jan 22. Apart from that, Moldova (MD) returns to a single entry in zone.tab (and the incorrect syntax that was in the 2011m version of that file is so fixed - it would have been fixed in a different way had this change not happened - that's the "missing" sccs version id). Release data2011m - 2011-10-24 21:42:16 +0700 In particular, the typos in comments in the data (2011-11-17 should have been 2011-10-17 as Alan Barrett noted, and spelling of Tiraspol that Tim Parenti noted) have been fixed, and the change for Ukraine has been made in all 4 Ukrainian zones, rather than just Kiev (again, thanks to Tim Parenti, and also Denys Gavrysh) In addition, I added Europe/Tiraspol to zone.tab. This time, all the files have new version numbers... (including the files otherwise unchanged in 2011m that were changed in 2011l but didn't get new version numbers there...) Release data2011l - 2011-10-10 11:15:43 +0700 There are just 2 changes that cause different generated tzdata files from zic, to Asia/Hebron and Pacific/Fiji - the possible change for Bahia, Brazil is included, but commented out. Compared with the diff I sent out last week, this version also includes attributions for the sources for the changes (in much the same format as ado used, but the html tags have not been checked, verified, or used in any way at all, so if there are errors there, please let me know.) Release data2011k - 2011-09-20 17:54:03 -0400 [not summarized] Release data2011j - 2011-09-12 09:22:49 -0400 (contemporary changes for Samoa; past changes for Kenya, Uganda, and Tanzania); there are also two spelling corrections to comments in the australasia file (with thanks to Christos Zoulas). Release 2011i - 2011-08-29 05:56:32 -0400 [not summarized] Release data2011h - 2011-06-15 18:41:48 -0400 Russia and Curaçao changes Release 2011g - 2011-04-25 09:07:22 -0400 update the rules for Egypt to reflect its abandonment of DST this year Release 2011f - 2011-04-06 17:14:53 -0400 [not summarized] Release 2011e - 2011-03-31 16:04:38 -0400 Morocco, Chile, and tz-link changes Release 2011d - 2011-03-14 09:18:01 -0400 changes that impact present-day timestamps in Cuba, Samoa, and Turkey Release 2011c - 2011-03-07 09:30:09 -0500 These do affect current timestamps in Chile and Annette Island, Canada. Release 2011b - 2011-02-07 08:44:50 -0500 [not summarized] Release 2011a - 2011-01-24 10:30:16 -0500 [not summarized] Release data2010o - 2010-11-01 09:18:23 -0400 change to the end of DST in Fiji in 2011 Release 2010n - 2010-10-25 08:19:17 -0400 [not summarized] Release 2010m - 2010-09-27 09:24:48 -0400 Hong Kong, Vostok, and zic.c changes Release 2010l - 2010-08-16 06:57:25 -0400 [not summarized] Release 2010k - 2010-07-26 10:42:27 -0400 [not summarized] Release 2010j - 2010-05-10 09:07:48 -0400 changes for Bahía de Banderas and for version naming Release data2010i - 2010-04-16 18:50:45 -0400 the end of DST in Morocco on 2010-08-08 Release data2010h - 2010-04-05 09:58:56 -0400 [not summarized] Release data2010g - 2010-03-24 11:14:53 -0400 [not summarized] Release 2010f - 2010-03-22 09:45:46 -0400 [not summarized] Release data2010e - 2010-03-08 14:24:27 -0500 corrects the Dhaka bug found by Danvin Ruangchan Release data2010d - 2010-03-06 07:26:01 -0500 [not summarized] Release 2010c - 2010-03-01 09:20:58 -0500 changes including KRE's suggestion for earlier initialization of "goahead" and "goback" structure elements Release code2010a - 2010-02-16 10:40:04 -0500 [not summarized] Release data2010b - 2010-01-20 12:37:01 -0500 Mexico changes Release data2010a - 2010-01-18 08:30:04 -0500 changes to Dhaka Release data2009u - 2009-12-26 08:32:28 -0500 changes to DST in Bangladesh Release 2009t - 2009-12-21 13:24:27 -0500 [not summarized] Release data2009s - 2009-11-14 10:26:32 -0500 (cosmetic) Antarctica change and the DST-in-Fiji-in-2009-and-2010 change Release 2009r - 2009-11-09 10:10:31 -0500 "antarctica" and "tz-link.htm" changes Release 2009q - 2009-11-02 09:12:40 -0500 with two corrections as reported by Eric Muller and Philip Newton Release data2009p - 2009-10-23 15:05:27 -0400 Argentina (including San Luis) changes (with the correction from Mariano Absatz) Release data2009o - 2009-10-14 16:49:38 -0400 Samoa (commentary only), Pakistan, and Bangladesh changes Release data2009n - 2009-09-22 15:13:38 -0400 added commentary for Argentina and a change to the end of DST in 2009 in Pakistan Release data2009m - 2009-09-03 10:23:43 -0400 Samoa and Palestine changes Release data2009l - 2009-08-14 09:13:07 -0400 Samoa (comments only) and Egypt Release 2009k - 2009-07-20 09:46:08 -0400 [not summarized] Release data2009j - 2009-06-15 06:43:59 -0400 Bangladesh change (with a short turnaround since the DST change is impending) Release 2009i - 2009-06-08 09:21:22 -0400 updating for DST in Bangladesh this year Release 2009h - 2009-05-26 09:19:14 -0400 [not summarized] Release data2009g - 2009-04-20 16:34:07 -0400 Cairo Release data2009f - 2009-04-10 11:00:52 -0400 correct DST in Pakistan Release 2009e - 2009-04-06 09:08:11 -0400 [not summarized] Release 2009d - 2009-03-23 09:38:12 -0400 Morocco, Tunisia, Argentina, and American Astronomical Society changes Release data2009c - 2009-03-16 09:47:51 -0400 change to the start of Cuban DST Release 2009b - 2009-02-09 11:15:22 -0500 [not summarized] Release 2009a - 2009-01-21 10:09:39 -0500 [not summarized] Release data2008i - 2008-10-21 12:10:25 -0400 southamerica and zone.tab files, with Argentina DST rule changes and United States zone reordering and recommenting Release 2008h - 2008-10-13 07:33:56 -0400 [not summarized] Release 2008g - 2008-10-06 09:03:18 -0400 Fix a broken HTML anchor and update Brazil's DST transitions; there's also a slight reordering of information in tz-art.htm. Release data2008f - 2008-09-09 22:33:26 -0400 [not summarized] Release 2008e - 2008-07-28 14:11:17 -0400 changes by Arthur David Olson and Jesper Nørgaard Welen Release data2008d - 2008-07-07 09:51:38 -0400 changes by Arthur David Olson, Paul Eggert, and Rodrigo Severo Release data2008c - 2008-05-19 17:48:03 -0400 Pakistan, Morocco, and Mongolia Release data2008b - 2008-03-24 08:30:59 -0400 including renaming Asia/Calcutta to Asia/Kolkata, with a backward link provided Release 2008a - 2008-03-08 05:42:16 -0500 [not summarized] Release 2007k - 2007-12-31 10:25:22 -0500 most importantly, changes to the "southamerica" file based on Argentina's readoption of daylight saving time Release 2007j - 2007-12-03 09:51:01 -0500 1. eliminate the "P" (parameter) macro; 2. the "noncontroversial" changes circulated on the time zone mailing list (less the changes to "logwtmp.c"); 3. eliminate "too many transition" errors when "min" is used in time zone rules; 4. changes by Paul Eggert (including updated information for Venezuela). Release data2007i - 2007-10-30 10:28:11 -0400 changes for Cuba and Syria Release 2007h - 2007-10-01 10:05:51 -0400 changes by Paul Eggert, as well as an updated link to the ICU project in tz-link.htm Release 2007g - 2007-08-20 10:47:59 -0400 changes by Paul Eggert The "leapseconds" file has been updated to incorporate the most recent International Earth Rotation and Reference Systems Service (IERS) bulletin. There's an addition to tz-art.htm regarding the television show "Medium". Release 2007f - 2007-05-07 10:46:46 -0400 changes by Paul Eggert (including Haiti, Turks and Caicos, and New Zealand) changes to zic.c to allow hour values greater than 24 (along with Paul's improved time value overflow checking) Release 2007e - 2007-04-02 10:11:52 -0400 Syria and Honduras changes by Paul Eggert zic.c variable renaming changes by Arthur David Olson Release 2007d - 2007-03-20 08:48:30 -0400 changes by Paul Eggert the elimination of white space at the ends of lines Release 2007c - 2007-02-26 09:09:37 -0500 changes by Paul Eggert Release 2007b - 2007-02-12 09:34:20 -0500 Paul Eggert's proposed change to the quotation handling logic in zic.c. changes to the commentary in "leapseconds" reflecting the IERS announcement that there is to be no positive leap second at the end of June 2007. Release 2007a - 2007-01-08 12:28:29 -0500 changes by Paul Eggert Derick Rethans's Asmara change Oscar van Vlijmen's Easter Island local mean time change symbolic link changes Release 2006p - 2006-11-27 08:54:27 -0500 changes by Paul Eggert Release 2006o - 2006-11-06 09:18:07 -0500 changes by Paul Eggert Release 2006n - 2006-10-10 11:32:06 -0400 changes by Paul Eggert Release 2006m - 2006-10-02 15:32:35 -0400 changes for Uruguay, Palestine, and Egypt by Paul Eggert (minimalist) changes to zic.8 to clarify "until" information Release data2006l - 2006-09-18 12:58:11 -0400 Paul's best-effort work on this coming weekend's Egypt time change Release 2006k - 2006-08-28 12:19:09 -0400 changes by Paul Eggert Release 2006j - 2006-08-21 09:56:32 -0400 changes by Paul Eggert Release code2006i - 2006-08-07 12:30:55 -0400 localtime.c fixes Ken Pizzini's conversion script Release code2006h - 2006-07-24 09:19:37 -0400 adds public domain notices to four files includes a fix for transition times being off by a second adds a new recording to the "arts" file (information courtesy Colin Bowern) Release 2006g - 2006-05-08 17:18:09 -0400 northamerica changes by Paul Eggert Release 2006f - 2006-05-01 11:46:00 -0400 a missing version number problem is fixed (with thanks to Bradley White for catching the problem) Release 2006d - 2006-04-17 14:33:43 -0400 changes by Paul Eggert added new items to tz-arts.htm that were found by Paul Release 2006c - 2006-04-03 10:09:32 -0400 two sets of data changes by Paul Eggert a fencepost error fix in zic.c changes to zic.c and the "europe" file to minimize differences between output produced by the old 32-bit zic and the new 64-bit version Release 2006b - 2006-02-20 10:08:18 -0500 [tz32code2006b + tz64code2006b + tzdata2006b] 64-bit code All SCCS IDs were bumped to "8.1" for this release. Release 2006a - 2006-01-30 08:59:31 -0500 changes by Paul Eggert (in particular, Indiana time zone moves) an addition to the zic manual page to describe how special-case transitions are handled Release 2005r - 2005-12-27 09:27:13 -0500 Canadian changes by Paul Eggert They also add "
" directives to time zone data files and reflect
  changes to warning message logic in "zdump.c" (but with calls to
  "gettext" kept unbundled at the suggestion of Ken Pizzini).


Release 2005q - 2005-12-13 09:17:09 -0500

  Nothing earth-shaking here:
	1.  Electronic mail addresses have been removed.
	2.  Casts of the return value of exit have been removed.
	3.  Casts of the argument of is.* macros have been added.
	4.  Indentation in one section of zic.c has been fixed.
	5.  References to dead URLs in the data files have been dealt with.


Release 2005p - 2005-12-05 10:30:53 -0500

  "systemv", "tz-link.htm", and "zdump.c" changes
  (less the casts of arguments to the is* macros)


Release 2005o - 2005-11-28 10:55:26 -0500

  Georgia, Cuba, Nicaragua, and Jordan changes by Paul Eggert

  zdump.c lint fixes by Arthur David Olson


Release 2005n - 2005-10-03 09:44:09 -0400

  changes by Paul Eggert (both the Uruguay changes and the Kyrgyzstan
  et al. changes)


Release 2005m - 2005-08-29 12:15:40 -0400

  changes by Paul Eggert (with a small tweak to the tz-art change)

  a declaration of an unused variable has been removed from zdump.c


Release 2005l - 2005-08-22 12:06:39 -0400

  changes by Paul Eggert

  overflow/underflow checks by Arthur David Olson, minus changes to
  the "Theory" file about the pending addition of 64-bit data (I grow
  less confident of the changes being accepted with each passing day,
  and the changes no longer increase the data files nine-fold--there's
  less than a doubling in size by my local Sun's reckoning)


Release 2005k - 2005-07-14 14:14:24 -0400

  The "leapseconds" file has been edited to reflect the recently
  announced leap second at the end of 2005.

  I've also deleted electronic mail addresses from the files as an
  anti-spam measure.


Release 2005j - 2005-06-13 14:34:13 -0400

  These reflect changes to limit the length of time zone abbreviations
  and the characters used in those abbreviations.

  There are also changes to handle POSIX-style "quoted" timezone
  environment variables.

  The changes were circulated on the time zone mailing list; the only
  change since then was the removal of a couple of minimum-length of
  abbreviation checks.


Release data2005i - 2005-04-21 15:04:16 -0400

  changes (most importantly to Nicaragua and Haiti) by Paul Eggert


Release 2005h - 2005-04-04 11:24:47 -0400

  changes by Paul Eggert

  minor changes to Makefile and zdump.c to produce more useful output
  when doing a "make typecheck"


Release 2005g - 2005-03-14 10:11:21 -0500

  changes by Paul Eggert (a change to current DST rules in Uruguay and
  an update to a link to time zone software)


Release 2005f - 2005-03-01 08:45:32 -0500

  data and documentation changes by Paul Eggert


Release 2005e - 2005-02-10 15:59:44 -0500

  [not summarized]


Release code2005d - 2005-01-31 09:21:47 -0500

  make zic complain about links to links if the -v flag is used

  have "make public" do more code checking

  add an include to "localtime.c" for the benefit of gcc systems


Release 2005c - 2005-01-17 18:36:29 -0500

  get better results when mktime runs on a system where time_t is double

  changes to the data files (most importantly to Paraguay)


Release 2005b - 2005-01-10 09:19:54 -0500

  Get localtime and gmtime working on systems with exotic time_t types.

  Update the leap second commentary in the "leapseconds" file.


Release 2005a - 2005-01-01 13:13:44 -0500

  [not summarized]


Release code2004i - 2004-12-14 13:42:58 -0500

  Deal with systems where time_t is unsigned.


Release code2004h - 2004-12-07 11:40:18 -0500

  64-bit-time_t changes


Release 2004g - 2004-11-02 09:06:01 -0500

  update to Cuba (taking effect this weekend)

  other changes by Paul Eggert

  correction of the spelling of Oslo

  changed versions of difftime.c and private.h


Release code2004f - 2004-10-21 10:25:22 -0400

  Cope with wide-ranging tm_year values.


Release 2004e - 2004-10-11 14:47:21 -0400

  Brazil/Argentina/Israel changes by Paul Eggert

  changes to tz-link.htm by Paul

  one small fix to Makefile


Release 2004d - 2004-09-22 08:27:29 -0400

  Avoid overflow problems when TM_YEAR_BASE is added to an integer.


Release 2004c - 2004-08-11 12:06:26 -0400

  asctime-related changes

  (variants of) some of the documentation changes suggested by Paul Eggert


Release 2004b - 2004-07-19 14:33:35 -0400

  data changes by Paul Eggert - most importantly, updates for Argentina


Release 2004a - 2004-05-27 12:00:47 -0400

  changes by Paul Eggert

  Handle DST transitions that occur at the end of a month in some
  years but at the start of the following month in other years.

  Add a copy of the correspondence that's the basis for claims about
  DST in the Navajo Nation.


Release 2003e - 2003-12-15 09:36:47 -0500

  changes by Arthur David Olson (primarily code changes)

  changes by Paul Eggert (primarily data changes)

  minor changes to "Makefile" and "northamerica" (in the latter case,
  optimization of the "Toronto" rules)


Release 2003d - 2003-10-06 09:34:44 -0400

  changes by Paul Eggert


Release 2003c - 2003-09-16 10:47:05 -0400

  Fix bad returns in zic.c's inleap function.
  Thanks to Bradley White for catching the problem!


Release 2003b - 2003-09-16 07:13:44 -0400

  Add a "--version" option (and documentation) to the zic and zdump commands.

  changes to overflow/underflow checking in zic

  a localtime typo fix.

  Update the leapseconds and tz-art.htm files.


Release 2003a - 2003-03-24 09:30:54 -0500

  changes by Paul Eggert

  a few additions and modifications to the tz-art.htm file


Release 2002d - 2002-10-15 13:12:42 -0400

  changes by Paul Eggert, less the "Britain (UK)" change in iso3166.tab

  There's also a new time zone quote in "tz-art.htm".


Release 2002c - 2002-04-04 11:55:20 -0500

  changes by Paul Eggert

  Change zic.c to avoid creating symlinks to files that don't exist.


Release 2002b - 2002-01-28 12:56:03 -0500

  [These change notes are for Release 2002a, which was corrupted.
  2002b was a corrected version of 2002a.]

  changes by Paul Eggert

  Update the "leapseconds" file to note that there'll be no leap
  second at the end of June, 2002.

  Change "zic.c" to deal with a problem in handling the "Asia/Bishkek" zone.

  Change to "difftime.c" to avoid sizeof problems.


Release 2001d - 2001-10-09 13:31:32 -0400

  changes by Paul Eggert


Release 2001c - 2001-06-05 13:59:55 -0400

  changes by Paul Eggert and Andrew Brown


Release 2001b - 2001-04-05 16:44:38 -0400

  changes by Paul Eggert (modulo jnorgard's typo fix)

  tz-art.htm has been HTMLified.


Release 2001a - 2001-03-13 12:57:44 -0500

  changes by Paul Eggert

  An addition to the "leapseconds" file: comments with the text of the
  latest IERS leap second notice.

  Trailing white space has been removed from data file lines, and
  repeated spaces in "Rule Jordan" lines in the "asia" file have been
  converted to tabs.


Release 2000h - 2000-12-14 15:33:38 -0500

  changes by Paul Eggert

  one typo fix in the "art" file

  With providence, this is the last update of the millennium.


Release 2000g - 2000-10-10 11:35:22 -0400

  changes by Paul Eggert

  correction of John Mackin's name submitted by Robert Elz

  Garry Shandling's Daylight Saving Time joke (!?!) from the recent
  Emmy Awards broadcast.


Release 2000f - 2000-08-10 09:31:58 -0400

  changes by Paul Eggert

  Added information in "tz-art.htm" on a Seinfeld reference to DST.

  Error checking and messages in the "yearistype" script have been
  improved.


Release 2000e - 2000-07-31 09:27:54 -0400

  data changes by Paul Eggert

  a change to the default value of the defined constant HAVE_STRERROR

  the addition of a Dave Barry quote on DST to the tz-arts file


Release 2000d - 2000-04-20 15:43:04 -0400

  changes to the documentation and code of strftime for C99 conformance

  a bug fix for date.c

  These are based on (though modified from) changes by Paul Eggert.


Release 2000c - 2000-03-04 10:31:43 -0500

  changes by Paul Eggert


Release 2000b - 2000-02-21 12:16:29 -0500

  changes by Paul Eggert and Joseph Myers

  modest tweaks to the tz-art.htm and tz-link.htm files


Release 2000a - 2000-01-18 09:21:26 -0500

  changes by Paul Eggert

  The two hypertext documents have also been renamed.


Release code1999i-data1999j - 1999-11-15 18:43:22 -0500

  Paul Eggert's changes

  additions to the "zic" manual page and the "Arts.htm" file


Release code1999h-data1999i - 1999-11-08 14:55:21 -0500

  [not summarized]


Release data1999h - 1999-10-07 03:50:29 -0400

  changes by Paul Eggert to "europe" (most importantly, fixing
  Lithuania and Estonia)


Release 1999g - 1999-09-28 11:06:18 -0400

  data changes by Paul Eggert (most importantly, the change for
  Lebanon that buys correctness for this coming Sunday)

  The "code" file contains changes to "Makefile" and "checktab.awk" to
  allow better checking of time zone files before they are published.


Release 1999f - 1999-09-23 09:48:14 -0400

  changes by Arthur David Olson and Paul Eggert


Release 1999e - 1999-08-17 15:20:54 -0400

  changes circulated by Paul Eggert, although the change to handling
  of DST-specifying timezone names has been commented out for now
  (search for "XXX" in "localtime.c" for details).  These files also
  do not make any changes to the start of DST in Brazil.

  In addition to Paul's changes, there are updates to "Arts.htm" and
  cleanups of URLs.


Release 1999d - 1999-03-30 11:31:07 -0500

  changes by Paul Eggert

  The Makefile's "make public" rule has also been changed to do a test
  compile of each individual time zone data file (which should help
  avoid problems such as the one we had with Nicosia).


Release 1999c - 1999-03-25 09:47:47 -0500

  changes by Paul Eggert, most importantly the change for Chile.


Release 1999b - 1999-02-01 17:51:44 -0500

  changes by Paul Eggert

  code changes (suggested by Mani Varadarajan, mani at be.com) for
  correct handling of symbolic links when building using a relative directory

  code changes to generate correct messages for failed links

  updates to the URLs in Arts.htm


Release 1999a - 1999-01-19 16:20:29 -0500

  error message internationalizations and corrections in zic.c and
  zdump.c (as suggested by Vladimir Michl, vladimir.michl at upol.cz,
  to whom thanks!)


Release code1998h-data1998i - 1998-10-01 09:56:10 -0400

  changes for Brazil, Chile, and Germany

  support for use of "24:00" in the input files for the time zone compiler


Release code1998g-data1998h - 1998-09-24 10:50:28 -0400

  changes by Paul Eggert

  correction to a define in the "private.h" file


Release data1998g - 1998-08-11 03:28:35 -0000
  [tzdata1998g.tar.gz is missing!]

  Lithuanian change provided by mgedmin at pub.osf.it

  Move creation of the GMT link with Etc/GMT to "etcetera" (from
  "backward") to ensure that the GMT file is created even where folks
  don't want the "backward" links (as suggested by Paul Eggert).


Release data1998f - 1998-07-20 13:50:00 -0000
  [tzdata1998f.tar.gz is missing!]

  Update the "leapseconds" file to include the newly-announced
  insertion at the end of 1998.


Release code1998f - 1998-06-01 10:18:31 -0400

  addition to localtime.c by Guy Harris


Release 1998e - 1998-05-28 09:56:26 -0400

  The Makefile is changed to produce zoneinfo-posix rather than
  zoneinfo/posix, and to produce zoneinfo-leaps rather than
  zoneinfo/right.

  data changes by Paul Eggert

  changes from Guy Harris to provide asctime_r and ctime_r

  A usno1998 file (substantially identical to usno1997) has been added.


Release 1998d - 1998-05-14 11:58:34 -0400

  changes to comments (in particular, elimination of references to CIA maps).
  "Arts.htm", "WWW.htm", "asia", and "australasia" are the only places
  where changes occur.


Release 1998c - 1998-02-28 12:32:26 -0500

  changes by Paul Eggert (save the "French correction," on which I'll
  wait for the dust to settle)

  symlink changes

  changes and additions to Arts.htm


Release 1998b - 1998-01-17 14:31:51 -0500

  URL cleanups and additions


Release 1998a - 1998-01-13 12:37:35 -0500

  changes by Paul Eggert


Release code1997i-data1997k - 1997-12-29 09:53:41 -0500

  changes by Paul Eggert, with minor modifications from Arthur David
  Olson to make the files more browser friendly


Release code1997h-data1997j - 1997-12-18 17:47:35 -0500

  minor changes to put "TZif" at the start of each timezone information file

  a rule has also been added to the Makefile so you can
	make zones
  to just recompile the zone information files (rather than doing a
  full "make install" with its other effects).


Release data1997i - 1997-10-07 08:45:38 -0400

  changes to Africa by Paul Eggert


Release code1997g-data1997h - 1997-09-04 16:56:54 -0400

  corrections for Uruguay (and other locations)

  Arthur David Olson's simple-minded fix allowing mktime to both
  correctly handle leap seconds and correctly handle tm_sec values
  upon which arithmetic has been performed.


Release code1997f-data1997g - 1997-07-19 13:15:02 -0400

  Paul Eggert's updates

  a small change to a function prototype;

  "Music" has been renamed "Arts.htm", HTMLified, and augmented to
  include information on Around the World in Eighty Days.


Release code1997e-data1997f - 1997-05-03 18:52:34 -0400

  fixes to zic's error handling

  changes inspired by the item circulated on Slovenia

  The description of Web resources has been HTMLified for browsing
  convenience.

  A new piece of tz-related music has been added to the "Music" file.


Release code1997d-data1997e - 1997-03-29 12:48:52 -0500

  Paul Eggert's latest suggestions


Release code1997c-data1997d - 1997-03-07 20:37:54 -0500

  changes to "zic.c" to correct performance of the "-s" option

  a new file "usno1997"


Release data1997c - 1997-03-04 09:58:18 -0500

  changes in Israel


Release 1997b - 1997-02-27 18:34:19 -0500

  The data file incorporates the 1997 leap second.

  The code file incorporates Arthur David Olson's take on the
  zic/multiprocessor/directory-creation situation.


Release 1997a - 1997-01-21 09:11:10 -0500

  Paul Eggert's Antarctica (and other changes)

  Arthur David Olson finessed the "getopt" issue by checking against
  both -1 and EOF (regardless of POSIX, SunOS 4.1.1's manual says -1
  is returned while SunOS 5.5's manual says EOF is returned).


Release code1996o-data1996n - 1996-12-27 21:42:05 -0500

  Paul Eggert's latest changes


Release code1996n - 1996-12-16 09:42:02 -0500

  link snapping fix from Bruce Evans (via Garrett Wollman)


Release data1996m - 1996-11-24 02:37:34 -0000
  [tzdata1996m.tar.gz is missing!]

  Paul Eggert's batch of changes


Release code1996m-data1996l - 1996-11-05 14:00:12 -0500

  No functional changes here; the files have simply been changed to
  make more use of ISO style dates in comments. The names of the above
  files now include the year in full.


Release code96l - 1996-09-08 17:12:20 -0400

  tzcode96k was missing a couple of pieces.


Release 96k - 1996-09-08 16:06:22 -0400

  the latest round of changes from Paul Eggert

  the recent Year 2000 material


Release code96j - 1996-07-30 13:18:53 -0400

  Set sp->typecnt as suggested by Timothy Patrick Murphy.


Release code96i - 1996-07-27 20:11:35 -0400

  Paul's suggested patch for strftime %V week numbers


Release data96i - 1996-07-01 18:13:04 -0400

  "northamerica" and "europe" changes by Paul Eggert


Release code96h - 1996-06-05 08:02:21 -0400

  fix for handling transitions specified in Universal Time

  Some "public domain" notices have also been added.


Release code96g - 1996-05-16 14:00:26 -0400

  fix for the simultaneous-DST-and-zone-change challenge


Release data96h - 1996-05-09 17:40:51 -0400

  changes by Paul Eggert


Release code96f-data96g - 1996-05-03 03:09:59 -0000
  [tzcode96f.tar.gz + tzdata96g.tar.gz are both missing!]

  The changes get us some of the way to fixing the problems noted in Paul
  Eggert's letter yesterday (in addition to a few others).  The approach
  has been to make zic a bit smarter about figuring out what time zone
  abbreviations apply just after the time specified in the "UNTIL" part
  of a zone line.  Putting the smarts in zic means avoiding having
  transition times show up in both "Zone" lines and "Rule" lines, which
  in turn avoids multiple transition time entries in time zone files.
  (This also makes the zic input files such as "europe" a bit shorter and
  should ease maintenance.)


Release data96f - 1996-04-19 19:20:03 -0000
  [tzdata96f.tar.gz is missing!]

  The only changes are to the "northamerica" file; the time zone
  abbreviation for Denver is corrected to MST (and MDT), and the
  comments for Mexico have been updated.


Release data96e - 1996-03-19 17:37:26 -0500

  Proposals by Paul Eggert, in particular the Portugal change that
  comes into play at the end of this month.


Release data96d - 1996-03-18 20:49:39 -0500

  [not summarized]


Release code96e - 1996-02-29 15:43:27 -0000
  [tzcode96e.tar.gz is missing!]

  internationalization changes and the fix to the documentation for strftime


Release code96d-data96c - 1996-02-12 11:05:27 -0500

  The "code" file simply updates Bob Kridle's electronic address.

  The "data" file updates rules for Mexico.


Release data96b - 1996-01-27 15:44:42 -0500

  Kiribati change


Release code96c - 1996-01-16 16:58:15 -0500

  leap-year streamlining and binary-search changes

  fix to newctime.3


Release code96b - 1996-01-10 20:42:39 -0500

  fixes and enhancements from Paul Eggert, including code that
  emulates the behavior of recent versions of the SunOS "date"
  command.


Release 96a - 1996-01-06 09:08:24 -0500

  Israel updates

  fixes to strftime.c for correct ISO 8601 week number generation,
  plus support for two new formats ('G' and 'g') to give ISO 8601 year
  numbers (which are not necessarily the same as calendar year numbers)


Release code95i-data95m - 1995-12-21 12:46:47 -0500

  The latest revisions from Paul Eggert are included, the usno1995
  file has been updated, and a new file ("WWW") covering useful URLs
  has been added.


Release code95h-data95l - 1995-12-19 18:10:12 -0500

  A simplification of a macro definition, a change to data for Sudan,
  and (for last minute shoppers) notes in the "Music" file on the CD
  "Old Man Time".


Release code95g-data95k - 1995-10-30 10:32:47 -0500

  (slightly reformatted) 8-bit-clean proposed patch

  minor patch: US/Eastern -> America/New_York

  snapshot of the USNO's latest data ("usno1995")

  some other minor cleanups


Release code95f-data95j - 1995-10-28 21:01:34 -0000
  [tzcode95f.tar.gz + tzdata95j.tar.gz are both missing!]

  European cleanups

  support for 64-bit time_t's

  optimization in localtime.c


Release code95e - 1995-10-13 13:23:57 -0400

  the mktime change to scan from future to past when trying to find time zone
  offsets


Release data95i - 1995-09-26 10:43:26 -0400

  For Canada/Central, guess that the Sun customer's "one week too
  early" was just a approximation, and the true error is one month
  too early.  This is consistent with the rest of Canada.


Release data95h - 1995-09-21 11:26:48 -0400

  latest changes from Paul Eggert


Release code95d - 1995-09-14 11:14:45 -0400

  the addition of a "Music" file, which documents four recorded
  versions of the tune "Save That Time".


Release data95g - 1995-09-01 17:21:36 -0400

  "yearistype" correction


Release data95f - 1995-08-28 20:46:56 -0400

  Paul Eggert's change to the australasia file


Release data95e - 1995-07-08 18:02:34 -0400

  The only change is a leap second at the end of this year.
  Thanks to Bradley White for forwarding news on the leap second.


Release data95d - 1995-07-03 13:26:22 -0400

  Paul Eggert's changes


Release data95c - 1995-07-02 19:19:28 -0400

  changes to "asia", "backward", "europe", and "southamerica"
  (read: northamericacentrics need not apply)


Release code95c - 1995-03-13 14:00:46 -0500

  one-line fix for sign extension problems in detzcode


Release 95b - 1995-03-04 11:22:38 -0500

  Minor changes in both:

  The "code" file contains a workaround for the lack of "unistd.h" in
  Microsoft C++ version 7.

  The "data" file contains a fixed "Link" for America/Shiprock.


Release 94h - 1994-12-10 12:51:14 -0500

  The files:

  *	incorporate the changes to "zdump" and "date" to make changes to
	the "TZ" environment variable permanent;

  *	incorporate the table changes by Paul Eggert;

  *	include (and document) support for universal time specifications in
	data files - but do not (yet) include use of this feature in the
	data files.

  Think of this as "TZ Classic" - the software has been set up not to break if
  universal time shows up in its input, and data entries have been
  left as is so as not to break existing implementations.


Release data94f - 1994-08-20 12:56:09 -0400

  (with thanks!) the latest data updates from Paul Eggert


Release data94e - 1994-06-04 13:13:53 -0400

  [not summarized]


Release code94g - 1994-05-05 12:14:07 -0400

  fix missing "optind.c" and a reference to it in the Makefile


Release code94f - 1994-05-05 13:00:33 -0000
  [tzcode94f.tar.gz is missing!]

  changes to avoid overflow in difftime, as well as changes to cope
  with the 52/53 challenge in strftime


Release code94e - 1994-03-30 23:32:59 -0500

  change for the benefit of PCTS


Release 94d - 1994-02-24 15:42:25 -0500

  Avoid clashes with POSIX semantics for zones such as GMT+4.

  Some other very minor housekeeping is also present.


Release code94c - 1994-02-10 08:52:40 -0500

  Fix bug where mkdirs was broken unless you compile with
  -fwritable-strings (which is generally losing to do).


Release 94b - 1994-02-07 10:04:33 -0500

  work by Paul Eggert who notes:

  I found another book of time zone histories by E W Whitman; it's not
  as extensive as Shanks but has a few goodies of its own.  I used it
  to update the tables.  I also fixed some more as a result of
  correspondence with Adam David and Peter Ilieve, and move some stray
  links from 'europe' to 'backward'.  I corrected some scanning errors
  in usno1989.

  As far as the code goes, I fixed zic to allow years in the range
  INT_MIN to INT_MAX; this fixed a few boundary conditions around 1900.
  And I cleaned up the zic documentation a little bit.


Release data94a - 1994-02-03 08:58:54 -0500

  It simply incorporates the recently announced leap second into the
  "leapseconds" file.


Release 93g - 1993-11-22 17:28:27 -0500

  Paul Eggert has provided a good deal of historic information (based
  on Shanks), and there are some code changes to deal with the buglets
  that crawled out in dealing with the new information.


Release 93f - 1993-10-15 12:27:46 -0400

  Paul Eggert's changes


Release 93e - 1993-09-05 21:21:44 -0400

  This has updated data for Israel, England, and Kwajalein.  There's
  also an update to "zdump" to cope with Kwajalein's 24-hour jump.
  Thanks to Paul Eggert and Peter Ilieve for the changes.


Release 93d - 1993-06-17 23:34:17 -0400

  new fix and new data on Israel


Release 93c - 1993-06-06 19:31:55 -0400

  [not summarized]


Release 93b - 1993-02-02 14:53:58 -0500

  updated "leapseconds" file


Release 93 - 1993-01-08 07:01:06 -0500

  At kre's suggestion, the package has been split in two - a code piece
  (which also includes documentation) that's only of use to folks who
  want to recompile things and a data piece useful to anyone who can
  run "zic".

  The new version has a few changes to the data files, a few
  portability changes, and an off-by-one fix (with thanks to
  Tom Karzes at deshaw.com for providing a description and a
  solution).


Release 92c - 1992-11-21 17:35:36 -0000
  [tz92c.tar.Z is missing!]

  The fallout from the latest round of DST transitions.

  There are changes for Portugal, Saskatchewan, and "Pacific-New";
  there's also a change to "zic.c" that makes it portable to more systems.


Release 92 - 1992-04-25 18:17:03 -0000
  [tz92.tar.Z is missing!]

  By popular demand (well, at any rate, following a request by kre at munnari)


The 1989 update of the time zone package featured:

  *	POSIXization (including interpretation of POSIX-style TZ environment
	variables, provided by Guy Harris),
  *	ANSIfication (including versions of "mktime" and "difftime"),
  *	SVIDulation (an "altzone" variable)
  *	MACHination (the "gtime" function)
  *	corrections to some time zone data (including corrections to the rules
	for Great Britain and New Zealand)
  *	reference data from the United States Naval Observatory for folks who
	want to do additional time zones
  *	and the 1989 data for Saudi Arabia.

  (Since this code will be treated as "part of the implementation" in some
  places and as "part of the application" in others, there's no good way to
  name functions, such as timegm, that are not part of the proposed ANSI C
  standard; such functions have kept their old, underscore-free names in this
  update.)

  And the "dysize" function has disappeared; it was present to allow
  compilation of the "date" command on old BSD systems, and a version of "date"
  is now provided in the package.  The "date" command is not created when you
  "make all" since it may lack options provided by the version distributed with
  your operating system, or may not interact with the system in the same way
  the native version does.

  Since POSIX frowns on correct leap second handling, the default behavior of
  the "zic" command (in the absence of a "-L" option) has been changed to omit
  leap second information from its output files.


-----
Notes

This file contains copies of the part of each release announcement
that talks about the changes in that release.  The text has been
adapted and reformatted for the purposes of this file.

Traditionally a release R consists of a pair of tarball files,
tzcodeR.tar.gz and tzdataR.tar.gz.  However, some releases (e.g.,
code2010a, data2012c) consist of just one or the other tarball, and a
few (e.g., code2012c-data2012d) have tarballs with mixed version
numbers.  Recent releases also come in an experimental format
consisting of a single tarball tzdb-R.tar.lz with extra data.

Release timestamps are taken from the release's commit (for newer,
Git-based releases), from the newest file in the tarball (for older
releases, where this info is available) or from the email announcing
the release (if all else fails; these are marked with a time zone
abbreviation of -0000 and an "is missing!" comment).

Earlier versions of the code and data were not announced on the tz
list and are not summarized here.

This file is in the public domain.

Local Variables:
coding: utf-8
End:
./tzdatabase/newstrftime.3.txt0000644000175000017500000001304013323151404016522 0ustar  anthonyanthonyNEWSTRFTIME(3)             Library Functions Manual             NEWSTRFTIME(3)

NAME
       strftime - format date and time

SYNOPSIS
       #include 

       size_t strftime(char *restrict buf, size_t maxsize,
           char const *restrict format, struct tm const *restrict timeptr);

       cc ... -ltz

DESCRIPTION
       The strftime function formats the information from timeptr into the
       buffer buf according to the string pointed to by format.

       The format string consists of zero or more conversion specifications
       and ordinary characters.  All ordinary characters are copied directly
       into the buffer.  A conversion specification consists of a percent sign
       and one other character.

       No more than maxsize characters are placed into the array.  If the
       total number of resulting characters, including the terminating null
       character, is not more than maxsize, strftime returns the number of
       characters in the array, not counting the terminating null.  Otherwise,
       zero is returned.

       Each conversion specification is replaced by the characters as follows
       which are then copied into the buffer.

       %A     is replaced by the locale's full weekday name.

       %a     is replaced by the locale's abbreviated weekday name.

       %B     is replaced by the locale's full month name.

       %b or %h
              is replaced by the locale's abbreviated month name.

       %C     is replaced by the century (a year divided by 100 and truncated
              to an integer) as a decimal number (00-99).

       %c     is replaced by the locale's appropriate date and time
              representation.

       %D     is replaced by the date in the format %m/%d/%y.

       %d     is replaced by the day of the month as a decimal number (01-31).

       %e     is replaced by the day of month as a decimal number (1-31);
              single digits are preceded by a blank.

       %F     is replaced by the date in the format %Y-%m-%d.

       %G     is replaced by the ISO 8601 year with century as a decimal
              number.

       %g     is replaced by the ISO 8601 year without century as a decimal
              number (00-99).

       %H     is replaced by the hour (24-hour clock) as a decimal number
              (00-23).

       %I     is replaced by the hour (12-hour clock) as a decimal number
              (01-12).

       %j     is replaced by the day of the year as a decimal number
              (001-366).

       %k     is replaced by the hour (24-hour clock) as a decimal number
              (0-23); single digits are preceded by a blank.

       %l     is replaced by the hour (12-hour clock) as a decimal number
              (1-12); single digits are preceded by a blank.

       %M     is replaced by the minute as a decimal number (00-59).

       %m     is replaced by the month as a decimal number (01-12).

       %n     is replaced by a newline.

       %p     is replaced by the locale's equivalent of either AM or PM.

       %R     is replaced by the time in the format %H:%M.

       %r     is replaced by the locale's representation of 12-hour clock time
              using AM/PM notation.

       %S     is replaced by the second as a decimal number (00-60).

       %s     is replaced by the number of seconds since the Epoch (see
              newctime(3)).

       %T     is replaced by the time in the format %H:%M:%S.

       %t     is replaced by a tab.

       %U     is replaced by the week number of the year (Sunday as the first
              day of the week) as a decimal number (00-53).

       %u     is replaced by the weekday (Monday as the first day of the week)
              as a decimal number (1-7).

       %V     is replaced by the week number of the year (Monday as the first
              day of the week) as a decimal number (01-53).  If the week
              containing January 1 has four or more days in the new year, then
              it is week 1; otherwise it is week 53 of the previous year, and
              the next week is week 1.

       %W     is replaced by the week number of the year (Monday as the first
              day of the week) as a decimal number (00-53).

       %w     is replaced by the weekday (Sunday as the first day of the week)
              as a decimal number (0-6).

       %X     is replaced by the locale's appropriate time representation.

       %x     is replaced by the locale's appropriate date representation.

       %Y     is replaced by the year with century as a decimal number.

       %y     is replaced by the year without century as a decimal number
              (00-99).

       %Z     is replaced by the time zone abbreviation, or by the empty
              string if this is not determinable.

       %z     is replaced by the offset from the Prime Meridian in the format
              +HHMM or -HHMM as appropriate, with positive values representing
              locations east of Greenwich, or by the empty string if this is
              not determinable.  The numeric time zone abbreviation -0000 is
              used when the time is Universal Time but local time is
              indeterminate; by convention this is used for locations while
              uninhabited, and corresponds to a zero offset when the time zone
              abbreviation begins with "-".

       %%     is replaced by a single %.

       %+     is replaced by the date and time in date(1) format.

SEE ALSO
       date(1), getenv(3), newctime(3), newtzset(3), time(2), tzfile(5)

                                                                NEWSTRFTIME(3)
./tzdatabase/zic.8.txt0000644000175000017500000005341513502227234014763 0ustar  anthonyanthonyZIC(8)                      System Manager's Manual                     ZIC(8)

NAME
       zic - timezone compiler

SYNOPSIS
       zic [ option ... ] [ filename ... ]

DESCRIPTION
       The zic program reads text from the file(s) named on the command line
       and creates the time conversion information files specified in this
       input.  If a filename is "-", standard input is read.

OPTIONS
       --version
              Output version information and exit.

       --help Output short usage message and exit.

       -b bloat
              Output backward-compatibility data as specified by bloat.  If
              bloat is fat, generate additional data entries that work around
              potential bugs or incompatibilities in older software, such as
              software that mishandles the 64-bit generated data.  If bloat is
              slim, keep the output files small; this can help check for the
              bugs and incompatibilities.  Although the default is currently
              fat, this is intended to change in future zic versions, as
              software that mishandles the 64-bit data typically mishandles
              timestamps after the year 2038 anyway.  Also see the -r option
              for another way to shrink output size.

       -d directory
              Create time conversion information files in the named directory
              rather than in the standard directory named below.

       -l timezone
              Use timezone as local time.  zic will act as if the input
              contained a link line of the form

                   Link  timezone  localtime

       -L leapsecondfilename
              Read leap second information from the file with the given name.
              If this option is not used, no leap second information appears
              in output files.

       -p timezone
              Use timezone's rules when handling nonstandard TZ strings like
              "EET-2EEST" that lack transition rules.  zic will act as if the
              input contained a link line of the form

                   Link  timezone  posixrules

              This feature is obsolete and poorly supported.  Among other
              things it should not be used for timestamps after the year 2037,
              and it should not be combined with -b slim if timezone's
              transitions are at standard time or UT instead of local time.

       -r [@lo][/@hi]
              Reduce the size of output files by limiting their applicability
              to timestamps in the range from lo (inclusive) to hi
              (exclusive), where lo and hi are possibly-signed decimal counts
              of seconds since the Epoch (1970-01-01 00:00:00 UTC).  Omitted
              counts default to extreme values.  For example, "zic -r @0"
              omits data intended for negative timestamps (i.e., before the
              Epoch), and "zic -r @0/@2147483648" outputs data intended only
              for nonnegative timestamps that fit into 31-bit signed integers.
              On platforms with GNU date, "zic -r @$(date +%s)" omits data
              intended for past timestamps.  Also see the -b slim option for
              another way to shrink output size.

       -t file
              When creating local time information, put the configuration link
              in the named file rather than in the standard location.

       -v     Be more verbose, and complain about the following situations:

              The input specifies a link to a link.

              A year that appears in a data file is outside the range of
              representable years.

              A time of 24:00 or more appears in the input.  Pre-1998 versions
              of zic prohibit 24:00, and pre-2007 versions prohibit times
              greater than 24:00.

              A rule goes past the start or end of the month.  Pre-2004
              versions of zic prohibit this.

              A time zone abbreviation uses a %z format.  Pre-2015 versions of
              zic do not support this.

              A timestamp contains fractional seconds.  Pre-2018 versions of
              zic do not support this.

              The input contains abbreviations that are mishandled by pre-2018
              versions of zic due to a longstanding coding bug.  These
              abbreviations include "L" for "Link", "mi" for "min", "Sa" for
              "Sat", and "Su" for "Sun".

              The output file does not contain all the information about the
              long-term future of a timezone, because the future cannot be
              summarized as an extended POSIX TZ string.  For example, as of
              2019 this problem occurs for Iran's daylight-saving rules for
              the predicted future, as these rules are based on the Iranian
              calendar, which cannot be represented.

              The output contains data that may not be handled properly by
              client code designed for older zic output formats.  These
              compatibility issues affect only timestamps before 1970 or after
              the start of 2038.

              The output file contains more than 1200 transitions, which may
              be mishandled by some clients.  The current reference client
              supports at most 2000 transitions; pre-2014 versions of the
              reference client support at most 1200 transitions.

              A time zone abbreviation has fewer than 3 or more than 6
              characters.  POSIX requires at least 3, and requires
              implementations to support at least 6.

              An output file name contains a byte that is not an ASCII letter,
              "-", "/", or "_"; or it contains a file name component that
              contains more than 14 bytes or that starts with "-".

FILES
       Input files use the format described in this section; output files use
       tzfile(5) format.

       Input files should be text files, that is, they should be a series of
       zero or more lines, each ending in a newline byte and containing at
       most 511 bytes, and without any NUL bytes.  The input text's encoding
       is typically UTF-8 or ASCII; it should have a unibyte representation
       for the POSIX Portable Character Set (PPCS)  and the encoding's non-
       unibyte characters should consist entirely of non-PPCS bytes.  Non-PPCS
       characters typically occur only in comments: although output file names
       and time zone abbreviations can contain nearly any character, other
       software will work better if these are limited to the restricted syntax
       described under the -v option.

       Input lines are made up of fields.  Fields are separated from one
       another by one or more white space characters.  The white space
       characters are space, form feed, carriage return, newline, tab, and
       vertical tab.  Leading and trailing white space on input lines is
       ignored.  An unquoted sharp character (#) in the input introduces a
       comment which extends to the end of the line the sharp character
       appears on.  White space characters and sharp characters may be
       enclosed in double quotes (") if they're to be used as part of a field.
       Any line that is blank (after comment stripping) is ignored.  Nonblank
       lines are expected to be of one of three types: rule lines, zone lines,
       and link lines.

       Names must be in English and are case insensitive.  They appear in
       several contexts, and include month and weekday names and keywords such
       as maximum, only, Rolling, and Zone.  A name can be abbreviated by
       omitting all but an initial prefix; any abbreviation must be
       unambiguous in context.

       A rule line has the form

            Rule  NAME  FROM  TO    TYPE  IN   ON       AT     SAVE   LETTER/S

       For example:

            Rule  US    1967  1973  -     Apr  lastSun  2:00w  1:00d  D

       The fields that make up a rule line are:

       NAME    Gives the name of the rule set that contains this line.  The
               name must start with a character that is neither an ASCII digit
               nor "-" nor "+".  To allow for future extensions, an unquoted
               name should not contain characters from the set
               "!$%&'()*,/:;<=>?@[\]^`{|}~".

       FROM    Gives the first year in which the rule applies.  Any signed
               integer year can be supplied; the proleptic Gregorian calendar
               is assumed, with year 0 preceding year 1.  The word minimum (or
               an abbreviation) means the indefinite past.  The word maximum
               (or an abbreviation) means the indefinite future.  Rules can
               describe times that are not representable as time values, with
               the unrepresentable times ignored; this allows rules to be
               portable among hosts with differing time value types.

       TO      Gives the final year in which the rule applies.  In addition to
               minimum and maximum (as above), the word only (or an
               abbreviation) may be used to repeat the value of the FROM
               field.

       TYPE    should be "-" and is present for compatibility with older
               versions of zic in which it could contain year types.

       IN      Names the month in which the rule takes effect.  Month names
               may be abbreviated.

       ON      Gives the day on which the rule takes effect.  Recognized forms
               include:

                    5        the fifth of the month
                    lastSun  the last Sunday in the month
                    lastMon  the last Monday in the month
                    Sun>=8   first Sunday on or after the eighth
                    Sun<=25  last Sunday on or before the 25th

               A weekday name (e.g., Sunday) or a weekday name preceded by
               "last" (e.g., lastSunday) may be abbreviated or spelled out in
               full.  There must be no white space characters within the ON
               field.  The "<=" and ">=" constructs can result in a day in the
               neighboring month; for example, the IN-ON combination "Oct
               Sun>=31" stands for the first Sunday on or after October 31,
               even if that Sunday occurs in November.

       AT      Gives the time of day at which the rule takes effect, relative
               to 00:00, the start of a calendar day.  Recognized forms
               include:

                    2            time in hours
                    2:00         time in hours and minutes
                    01:28:14     time in hours, minutes, and seconds
                    00:19:32.13  time with fractional seconds
                    12:00        midday, 12 hours after 00:00
                    15:00        3 PM, 15 hours after 00:00
                    24:00        end of day, 24 hours after 00:00
                    260:00       260 hours after 00:00
                    -2:30        2.5 hours before 00:00
                    -            equivalent to 0

               Although zic rounds times to the nearest integer second
               (breaking ties to the even integer), the fractions may be
               useful to other applications requiring greater precision.  The
               source format does not specify any maximum precision.  Any of
               these forms may be followed by the letter w if the given time
               is local or "wall clock" time, s if the given time is standard
               time without any adjustment for daylight saving, or u (or g or
               z) if the given time is universal time; in the absence of an
               indicator, local (wall clock) time is assumed.  These forms
               ignore leap seconds; for example, if a leap second occurs at
               00:59:60 local time, "1:00" stands for 3601 seconds after local
               midnight instead of the usual 3600 seconds.  The intent is that
               a rule line describes the instants when a clock/calendar set to
               the type of time specified in the AT field would show the
               specified date and time of day.

       SAVE    Gives the amount of time to be added to local standard time
               when the rule is in effect, and whether the resulting time is
               standard or daylight saving.  This field has the same format as
               the AT field except with a different set of suffix letters: s
               for standard time and d for daylight saving time.  The suffix
               letter is typically omitted, and defaults to s if the offset is
               zero and to d otherwise.  Negative offsets are allowed; in
               Ireland, for example, daylight saving time is observed in
               winter and has a negative offset relative to Irish Standard
               Time.  The offset is merely added to standard time; for
               example, zic does not distinguish a 10:30 standard time plus an
               0:30 SAVE from a 10:00 standard time plus a 1:00 SAVE.

       LETTER/S
               Gives the "variable part" (for example, the "S" or "D" in "EST"
               or "EDT") of time zone abbreviations to be used when this rule
               is in effect.  If this field is "-", the variable part is null.

       A zone line has the form

            Zone  NAME        STDOFF  RULES   FORMAT  [UNTIL]

       For example:

            Zone  Asia/Amman  2:00    Jordan  EE%sT   2017 Oct 27 01:00

       The fields that make up a zone line are:

       NAME  The name of the timezone.  This is the name used in creating the
             time conversion information file for the timezone.  It should not
             contain a file name component "." or ".."; a file name component
             is a maximal substring that does not contain "/".

       STDOFF
             The amount of time to add to UT to get standard time, without any
             adjustment for daylight saving.  This field has the same format
             as the AT and SAVE fields of rule lines; begin the field with a
             minus sign if time must be subtracted from UT.

       RULES The name of the rules that apply in the timezone or,
             alternatively, a field in the same format as a rule-line SAVE
             column, giving of the amount of time to be added to local
             standard time effect, and whether the resulting time is standard
             or daylight saving.  If this field is - then standard time always
             applies.  When an amount of time is given, only the sum of
             standard time and this amount matters.

       FORMAT
             The format for time zone abbreviations.  The pair of characters
             %s is used to show where the "variable part" of the time zone
             abbreviation goes.  Alternatively, a format can use the pair of
             characters %z to stand for the UT offset in the form +-hh,
             +-hhmm, or +-hhmmss, using the shortest form that does not lose
             information, where hh, mm, and ss are the hours, minutes, and
             seconds east (+) or west (-) of UT.  Alternatively, a slash (/)
             separates standard and daylight abbreviations.  To conform to
             POSIX, a time zone abbreviation should contain only alphanumeric
             ASCII characters, "+" and "-".

       UNTIL The time at which the UT offset or the rule(s) change for a
             location.  It takes the form of one to four fields YEAR [MONTH
             [DAY [TIME]]].  If this is specified, the time zone information
             is generated from the given UT offset and rule change until the
             time specified, which is interpreted using the rules in effect
             just before the transition.  The month, day, and time of day have
             the same format as the IN, ON, and AT fields of a rule; trailing
             fields can be omitted, and default to the earliest possible value
             for the missing fields.

             The next line must be a "continuation" line; this has the same
             form as a zone line except that the string "Zone" and the name
             are omitted, as the continuation line will place information
             starting at the time specified as the "until" information in the
             previous line in the file used by the previous line.
             Continuation lines may contain "until" information, just as zone
             lines do, indicating that the next line is a further
             continuation.

       If a zone changes at the same instant that a rule would otherwise take
       effect in the earlier zone or continuation line, the rule is ignored.
       A zone or continuation line L with a named rule set starts with
       standard time by default: that is, any of L's timestamps preceding L's
       earliest rule use the rule in effect after L's first transition into
       standard time.  In a single zone it is an error if two rules take
       effect at the same instant, or if two zone changes take effect at the
       same instant.

       A link line has the form

            Link  TARGET           LINK-NAME

       For example:

            Link  Europe/Istanbul  Asia/Istanbul

       The TARGET field should appear as the NAME field in some zone line.
       The LINK-NAME field is used as an alternative name for that zone; it
       has the same syntax as a zone line's NAME field.

       Except for continuation lines, lines may appear in any order in the
       input.  However, the behavior is unspecified if multiple zone or link
       lines define the same name, or if the source of one link line is the
       target of another.

       Lines in the file that describes leap seconds have the following form:

            Leap  YEAR  MONTH  DAY  HH:MM:SS  CORR  R/S

       For example:

            Leap  2016  Dec    31   23:59:60  +     S

       The YEAR, MONTH, DAY, and HH:MM:SS fields tell when the leap second
       happened.  The CORR field should be "+" if a second was added or "-" if
       a second was skipped.  The R/S field should be (an abbreviation of)
       "Stationary" if the leap second time given by the other fields should
       be interpreted as UTC or (an abbreviation of) "Rolling" if the leap
       second time given by the other fields should be interpreted as local
       (wall clock) time.

EXTENDED EXAMPLE
       Here is an extended example of zic input, intended to illustrate many
       of its features.  In this example, the EU rules are for the European
       Union and for its predecessor organization, the European Communities.

         # Rule  NAME  FROM  TO    TYPE  IN   ON       AT    SAVE  LETTER/S
         Rule    Swiss 1941  1942  -     May  Mon>=1   1:00  1:00  S
         Rule    Swiss 1941  1942  -     Oct  Mon>=1   2:00  0     -
         Rule    EU    1977  1980  -     Apr  Sun>=1   1:00u 1:00  S
         Rule    EU    1977  only  -     Sep  lastSun  1:00u 0     -
         Rule    EU    1978  only  -     Oct   1       1:00u 0     -
         Rule    EU    1979  1995  -     Sep  lastSun  1:00u 0     -
         Rule    EU    1981  max   -     Mar  lastSun  1:00u 1:00  S
         Rule    EU    1996  max   -     Oct  lastSun  1:00u 0     -

         # Zone  NAME           STDOFF      RULES  FORMAT  [UNTIL]
         Zone    Europe/Zurich  0:34:08     -      LMT     1853 Jul 16
                                0:29:45.50  -      BMT     1894 Jun
                                1:00        Swiss  CE%sT   1981
                                1:00        EU     CE%sT

         Link    Europe/Zurich  Europe/Vaduz

       In this example, the timezone is named Europe/Zurich but it has an
       alias as Europe/Vaduz.  This example says that Zurich was 34 minutes
       and 8 seconds east of UT until 1853-07-16 at 00:00, when the legal
       offset was changed to 7o26'22.50'', which works out to 0:29:45.50; zic
       treats this by rounding it to 0:29:46.  After 1894-06-01 at 00:00 the
       UT offset became one hour and Swiss daylight saving rules (defined with
       lines beginning with "Rule Swiss") apply.  From 1981 to the present, EU
       daylight saving rules have applied, and the UTC offset has remained at
       one hour.

       In 1941 and 1942, daylight saving time applied from the first Monday in
       May at 01:00 to the first Monday in October at 02:00.  The pre-1981 EU
       daylight-saving rules have no effect here, but are included for
       completeness.  Since 1981, daylight saving has begun on the last Sunday
       in March at 01:00 UTC.  Until 1995 it ended the last Sunday in
       September at 01:00 UTC, but this changed to the last Sunday in October
       starting in 1996.

       For purposes of display, "LMT" and "BMT" were initially used,
       respectively.  Since Swiss rules and later EU rules were applied, the
       time zone abbreviation has been CET for standard time and CEST for
       daylight saving time.

FILES
       /etc/localtime
              Default local timezone file.

       /usr/share/zoneinfo
              Default timezone information directory.

NOTES
       For areas with more than two types of local time, you may need to use
       local standard time in the AT field of the earliest transition time's
       rule to ensure that the earliest transition time recorded in the
       compiled file is correct.

       If, for a particular timezone, a clock advance caused by the start of
       daylight saving coincides with and is equal to a clock retreat caused
       by a change in UT offset, zic produces a single transition to daylight
       saving at the new UT offset without any change in local (wall clock)
       time.  To get separate transitions use multiple zone continuation lines
       specifying transition instants using universal time.

SEE ALSO
       tzfile(5), zdump(8)

                                                                        ZIC(8)
./tzdatabase/europe0000644000175000017500000051660114272547645014532 0ustar  anthonyanthony# tzdb data for Europe and environs

# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.

# This file is by no means authoritative; if you think you know better,
# go ahead and edit the file (and please send any changes to
# tz@iana.org for general use in the future).  For more, please see
# the file CONTRIBUTING in the tz distribution.

# From Paul Eggert (2017-02-10):
#
# Unless otherwise specified, the source for data through 1990 is:
# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition),
# San Diego: ACS Publications, Inc. (2003).
# Unfortunately this book contains many errors and cites no sources.
#
# Many years ago Gwillim Law wrote that a good source
# for time zone data was the International Air Transport
# Association's Standard Schedules Information Manual (IATA SSIM),
# published semiannually.  Law sent in several helpful summaries
# of the IATA's data after 1990.  Except where otherwise noted,
# IATA SSIM is the source for entries after 1990.
#
# A reliable and entertaining source about time zones is
# Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997).
#
# Except where otherwise noted, Shanks & Pottenger is the source for
# entries through 1991, and IATA SSIM is the source for entries afterwards.
#
# Other sources occasionally used include:
#
#	Edward W. Whitman, World Time Differences,
#	Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated),
#	which I found in the UCLA library.
#
#	William Willett, The Waste of Daylight, 19th edition
#	
#	[PDF] (1914-03)
#
#	Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94
#	.  He writes:
#	"It is requested that corrections and additions to these tables
#	may be sent to Mr. John Milne, Royal Geographical Society,
#	Savile Row, London."  Nowadays please email them to tz@iana.org.
#
#	Byalokoz EL. New Counting of Time in Russia since July 1, 1919.
#	This Russian-language source was consulted by Vladimir Karpinsky; see
#	https://mm.icann.org/pipermail/tz/2014-August/021320.html
#	The full Russian citation is:
#	Бялокоз, Евгений Людвигович. Новый счет времени в течении суток
#	введенный декретом Совета народных комиссаров для всей России с 1-го
#	июля 1919 г. / Изд. 2-е Междуведомственной комиссии. - Петроград:
#	Десятая гос. тип., 1919.
#	http://resolver.gpntb.ru/purl?docushare/dsweb/Get/Resource-2011/Byalokoz__E.L.__Novyy__schet__vremeni__v__techenie__sutok__izd__2(1).pdf
#
#	Brazil's Divisão Serviço da Hora (DSHO),
#	History of Summer Time
#	
#	(1998-09-21, in Portuguese)
#
# I invented the abbreviations marked '*' in the following table;
# the rest are variants of the "xMT" pattern for a city's mean time,
# or are from other sources.  Corrections are welcome!
#                   std  dst  2dst
#                   LMT             Local Mean Time
#       -4:00       AST  ADT        Atlantic
#        0:00       GMT  BST  BDST  Greenwich, British Summer
#        0:00       GMT  IST        Greenwich, Irish Summer
#        0:00       WET  WEST WEMT  Western Europe
#        1:00       BST             British Standard (1968-1971)
#        1:00       IST  GMT        Irish Standard (1968-) with winter DST
#        1:00       CET  CEST CEMT  Central Europe
#        1:00:14    SET             Swedish (1879-1899)
#        1:36:34    RMT* LST*       Riga, Latvian Summer (1880-1926)*
#        2:00       EET  EEST       Eastern Europe
#        3:00       MSK  MSD  MDST* Moscow

# From Peter Ilieve (1994-12-04), re EEC/EC/EU members:
# The original six: Belgium, France, (West) Germany, Italy,
# Luxembourg, the Netherlands.
# Plus, from 1 Jan 73: Denmark, Ireland, United Kingdom.
# Plus, from 1 Jan 81: Greece.
# Plus, from 1 Jan 86: Spain, Portugal.
# Plus, from 1 Jan 95: Austria, Finland, Sweden. (Norway negotiated terms for
# entry but in a referendum on 28 Nov 94 the people voted No by 52.2% to 47.8%
# on a turnout of 88.6%. This was almost the same result as Norway's previous
# referendum in 1972, they are the only country to have said No twice.
# Referendums in the other three countries voted Yes.)
# ...
# Estonia ... uses EU dates but not at 01:00 GMT, they use midnight GMT.
# I don't think they know yet what they will do from 1996 onwards.
# ...
# There shouldn't be any [current members who are not using EU rules].
# A Directive has the force of law, member states are obliged to enact
# national law to implement it. The only contentious issue was the
# different end date for the UK and Ireland, and this was always allowed
# in the Directive.


###############################################################################

# Britain (United Kingdom) and Ireland (Eire)

# From Peter Ilieve (1994-07-06):
#
# On 17 Jan 1994 the Independent, a UK quality newspaper, had a piece about
# historical vistas along the Thames in west London. There was a photo
# and a sketch map showing some of the sightlines involved. One paragraph
# of the text said:
#
# 'An old stone obelisk marking a forgotten terrestrial meridian stands
# beside the river at Kew. In the 18th century, before time and longitude
# was standardised by the Royal Observatory in Greenwich, scholars observed
# this stone and the movement of stars from Kew Observatory nearby. They
# made their calculations and set the time for the Horse Guards and Parliament,
# but now the stone is obscured by scrubwood and can only be seen by walking
# along the towpath within a few yards of it.'
#
# I have a one inch to one mile map of London and my estimate of the stone's
# position is 51° 28' 30" N, 0° 18' 45" W. The longitude should
# be within about ±2". The Ordnance Survey grid reference is TQ172761.
#
# [This yields STDOFF = -0:01:15 for London LMT in the 18th century.]

# From Paul Eggert (1993-11-18):
#
# Howse writes that Britain was the first country to use standard time.
# The railways cared most about the inconsistencies of local mean time,
# and it was they who forced a uniform time on the country.
# The original idea was credited to Dr. William Hyde Wollaston (1766-1828)
# and was popularized by Abraham Follett Osler (1808-1903).
# The first railway to adopt London time was the Great Western Railway
# in November 1840; other railways followed suit, and by 1847 most
# (though not all) railways used London time.  On 1847-09-22 the
# Railway Clearing House, an industry standards body, recommended that GMT be
# adopted at all stations as soon as the General Post Office permitted it.
# The transition occurred on 12-01 for the L&NW, the Caledonian,
# and presumably other railways; the January 1848 Bradshaw's lists many
# railways as using GMT.  By 1855 the vast majority of public
# clocks in Britain were set to GMT (though some, like the great clock
# on Tom Tower at Christ Church, Oxford, were fitted with two minute hands,
# one for local time and one for GMT).  The last major holdout was the legal
# system, which stubbornly stuck to local time for many years, leading
# to oddities like polls opening at 08:13 and closing at 16:13.
# The legal system finally switched to GMT when the Statutes (Definition
# of Time) Act took effect; it received the Royal Assent on 1880-08-02.
#
# In the tables below, we condense this complicated story into a single
# transition date for London, namely 1847-12-01.  We don't know as much
# about Dublin, so we use 1880-08-02, the legal transition time.

# From Paul Eggert (2014-07-19):
# The ancients had no need for daylight saving, as they kept time
# informally or via hours whose length depended on the time of year.
# Daylight saving time in its modern sense was invented by the
# New Zealand entomologist George Vernon Hudson (1867-1946),
# whose day job as a postal clerk led him to value
# after-hours daylight in which to pursue his research.
# In 1895 he presented a paper to the Wellington Philosophical Society
# that proposed a two-hour daylight-saving shift.  See:
# Hudson GV. On seasonal time-adjustment in countries south of lat. 30°.
# Transactions and Proceedings of the New Zealand Institute. 1895;28:734
# http://rsnz.natlib.govt.nz/volume/rsnz_28/rsnz_28_00_006110.html
# Although some interest was expressed in New Zealand, his proposal
# did not find its way into law and eventually it was almost forgotten.
#
# In England, DST was independently reinvented by William Willett (1857-1915),
# a London builder and member of the Royal Astronomical Society
# who circulated a pamphlet "The Waste of Daylight" (1907)
# that proposed advancing clocks 20 minutes on each of four Sundays in April,
# and retarding them by the same amount on four Sundays in September.
# A bill was drafted in 1909 and introduced in Parliament several times,
# but it met with ridicule and opposition, especially from farming interests.
# Later editions of the pamphlet proposed one-hour summer time, and
# it was eventually adopted as a wartime measure in 1916.
# See: Summer Time Arrives Early, The Times (2000-05-18).
# A monument to Willett was unveiled on 1927-05-21, in an open space in
# a 45-acre wood near Chislehurst, Kent that was purchased by popular
# subscription and open to the public.  On the south face of the monolith,
# designed by G. W. Miller, is the William Willett Memorial Sundial,
# which is permanently set to Summer Time.

# From Winston Churchill (1934-04-28):
# It is one of the paradoxes of history that we should owe the boon of
# summer time, which gives every year to the people of this country
# between 160 and 170 hours more daylight leisure, to a war which
# plunged Europe into darkness for four years, and shook the
# foundations of civilization throughout the world.
#	-- "A Silent Toast to William Willett", Pictorial Weekly;
#	republished in Finest Hour (Spring 2002) 1(114):26
#	https://www.winstonchurchill.org/publications/finest-hour/finest-hour-114/a-silent-toast-to-william-willett-by-winston-s-churchill

# From Paul Eggert (2015-08-08):
# The OED Supplement says that the English originally said "Daylight Saving"
# when they were debating the adoption of DST in 1908; but by 1916 this
# term appears only in quotes taken from DST's opponents, whereas the
# proponents (who eventually won the argument) are quoted as using "Summer".
# The term "Summer Time" was introduced by Herbert Samuel, Home Secretary; see:
# Viscount Samuel. Leisure in a Democracy. Cambridge University Press
# ISBN 978-1-107-49471-8 (1949, reissued 2015), p 8.

# From Arthur David Olson (1989-01-19):
# A source at the British Information Office in New York avers that it's
# known as "British" Summer Time in all parts of the United Kingdom.

# Date: 4 Jan 89 08:57:25 GMT (Wed)
# From: Jonathan Leffler
# [British Summer Time] is fixed annually by Act of Parliament.
# If you can predict what Parliament will do, you should be in
# politics making a fortune, not computing.

# From Chris Carrier (1996-06-14):
# I remember reading in various wartime issues of the London Times the
# acronym BDST for British Double Summer Time.  Look for the published
# time of sunrise and sunset in The Times, when BDST was in effect, and
# if you find a zone reference it will say, "All times B.D.S.T."

# From Joseph S. Myers (1999-09-02):
# ... some military cables (WO 219/4100 - this is a copy from the
# main SHAEF archives held in the US National Archives, SHAEF/5252/8/516)
# agree that the usage is BDST (this appears in a message dated 17 Feb 1945).

# From Joseph S. Myers (2000-10-03):
# On 18th April 1941, Sir Stephen Tallents of the BBC wrote to Sir
# Alexander Maxwell of the Home Office asking whether there was any
# official designation; the reply of the 21st was that there wasn't
# but he couldn't think of anything better than the "Double British
# Summer Time" that the BBC had been using informally.
# https://www.polyomino.org.uk/british-time/bbc-19410418.png
# https://www.polyomino.org.uk/british-time/ho-19410421.png

# From Sir Alexander Maxwell in the above-mentioned letter (1941-04-21):
# [N]o official designation has as far as I know been adopted for the time
# which is to be introduced in May....
# I cannot think of anything better than "Double British Summer Time"
# which could not be said to run counter to any official description.

# From Paul Eggert (2000-10-02):
# Howse writes (p 157) 'DBST' too, but 'BDST' seems to have been common
# and follows the more usual convention of putting the location name first,
# so we use 'BDST'.

# Peter Ilieve (1998-04-19) described at length
# the history of summer time legislation in the United Kingdom.
# Since 1998 Joseph S. Myers has been updating
# and extending this list, which can be found in
# https://www.polyomino.org.uk/british-time/

# From Joseph S. Myers (1998-01-06):
#
# The legal time in the UK outside of summer time is definitely GMT, not UTC;
# see Lord Tanlaw's speech
# https://www.publications.parliament.uk/pa/ld199798/ldhansrd/vo970611/text/70611-10.htm#70611-10_head0
# (Lords Hansard 11 June 1997 columns 964 to 976).

# From Paul Eggert (2006-03-22):
#
# For lack of other data, follow Shanks & Pottenger for Eire in 1940-1948.
#
# Given Ilieve and Myers's data, the following claims by Shanks & Pottenger
# are incorrect:
#     * Wales did not switch from GMT to daylight saving time until
#	1921 Apr 3, when they began to conform with the rest of Great Britain.
# Actually, Wales was identical after 1880.
#     * Eire had two transitions on 1916 Oct 1.
# It actually just had one transition.
#     * Northern Ireland used single daylight saving time throughout WW II.
# Actually, it conformed to Britain.
#     * GB-Eire changed standard time to 1 hour ahead of GMT on 1968-02-18.
# Actually, that date saw the usual switch to summer time.
# Standard time was not changed until 1968-10-27 (the clocks didn't change).
#
# Here is another incorrect claim by Shanks & Pottenger:
#     * Jersey, Guernsey, and the Isle of Man did not switch from GMT
#	to daylight saving time until 1921 Apr 3, when they began to
#	conform with Great Britain.
# S.R.&O. 1916, No. 382 and HO 45/10811/312364 (quoted above) say otherwise.
#
# The following claim by Shanks & Pottenger is possible though doubtful;
# we'll ignore it for now.
#     * Dublin's 1971-10-31 switch was at 02:00, even though London's was 03:00.

# From Paul Eggert (2017-12-04):
#
# Dunsink Observatory (8 km NW of Dublin's center) was to Dublin as
# Greenwich was to London.  For example:
#
#   "Timeball on the ballast office is down.  Dunsink time."
#   -- James Joyce, Ulysses
#
# The abbreviation DMT stood for "Dublin Mean Time" or "Dunsink Mean Time";
# this being Ireland, opinions differed.
#
# Whitman says Dublin/Dunsink Mean Time was UT-00:25:21, which agrees
# with measurements of recent visitors to the Meridian Room of Dunsink
# Observatory; see Malone D. Dunsink and timekeeping. 2016-01-24.
# .  Malone
# writes that the Nautical Almanac listed UT-00:25:22 until 1896, when
# it moved to UT-00:25:21.1 (I confirmed that the 1893 edition used
# the former and the 1896 edition used the latter).  Evidently the
# news of this change propagated slowly, as Milne 1899 still lists
# UT-00:25:22 and cites the International Telegraph Bureau.  As it is
# not clear that there was any practical significance to the change
# from UT-00:25:22 to UT-00:25:21.1 in civil timekeeping, omit this
# transition for now and just use the latter value.

# "Countess Markievicz ... claimed that the [1916] abolition of Dublin Mean Time
# was among various actions undertaken by the 'English' government that
# would 'put the whole country into the SF (Sinn Féin) camp'.  She claimed
# Irish 'public feeling (was) outraged by forcing of English time on us'."
# -- Parsons M. Dublin lost its time zone - and 25 minutes - after 1916 Rising.
# Irish Times 2014-10-27.
# https://www.irishtimes.com/news/politics/dublin-lost-its-time-zone-and-25-minutes-after-1916-rising-1.1977411

# From Joseph S. Myers (2005-01-26):
# Irish laws are available online at .
# These include various relating to legal time, for example:
#
# ZZA13Y1923.html ZZA12Y1924.html ZZA8Y1925.html ZZSIV20PG1267.html
#
# ZZSI71Y1947.html ZZSI128Y1948.html ZZSI23Y1949.html ZZSI41Y1950.html
# ZZSI27Y1951.html ZZSI73Y1952.html
#
# ZZSI11Y1961.html ZZSI232Y1961.html ZZSI182Y1962.html
# ZZSI167Y1963.html ZZSI257Y1964.html ZZSI198Y1967.html
# ZZA23Y1968.html ZZA17Y1971.html
#
# ZZSI67Y1981.html ZZSI212Y1982.html ZZSI45Y1986.html
# ZZSI264Y1988.html ZZSI52Y1990.html ZZSI371Y1992.html
# ZZSI395Y1994.html ZZSI484Y1997.html ZZSI506Y2001.html
#
# [These are all relative to the root, e.g., the first is
# .]
#
# (These are those I found, but there could be more.  In any case these
# should allow various updates to the comments in the europe file to cover
# the laws applicable in Ireland.)
#
# (Note that the time in the Republic of Ireland since 1968 has been defined
# in terms of standard time being GMT+1 with a period of winter time when it
# is GMT, rather than standard time being GMT with a period of summer time
# being GMT+1.)

# From Paul Eggert (1999-03-28):
# Clive Feather (, 1997-03-31)
# reports that Folkestone (Cheriton) Shuttle Terminal uses Concession Time
# (CT), equivalent to French civil time.
# Julian Hill (, 1998-09-30) reports that
# trains between Dollands Moor (the freight facility next door)
# and Frethun run in CT.
# My admittedly uninformed guess is that the terminal has two authorities,
# the French concession operators and the British civil authorities,
# and that the time depends on who you're talking to.
# If, say, the British police were called to the station for some reason,
# I would expect the official police report to use GMT/BST and not CET/CEST.
# This is a borderline case, but for now let's stick to GMT/BST.

# From an anonymous contributor (1996-06-02):
# The law governing time in Ireland is under Statutory Instrument SI 395/94,
# which gives force to European Union 7th Council Directive No. 94/21/EC.
# Under this directive, the Minister for Justice in Ireland makes appropriate
# regulations. I spoke this morning with the Secretary of the Department of
# Justice (tel +353 1 678 9711) who confirmed to me that the correct name is
# "Irish Summer Time", abbreviated to "IST".
#
# From Paul Eggert (2017-12-07):
# The 1996 anonymous contributor's goal was to determine the correct
# abbreviation for summer time in Dublin and so the contributor
# focused on the "IST", not on the "Irish Summer Time".  Though the
# "IST" was correct, the "Irish Summer Time" appears to have been an
# error, as Ireland's Standard Time (Amendment) Act, 1971 states that
# standard time in Ireland remains at UT +01 and is observed in
# summer, and that Greenwich mean time is observed in winter.  (Thanks
# to Derick Rethans for pointing out the error.)  That is, when
# Ireland amended the 1968 act that established UT +01 as Irish
# Standard Time, it left standard time unchanged and established GMT
# as a negative daylight saving time in winter.  So, in this database
# IST stands for Irish Summer Time for timestamps before 1968, and for
# Irish Standard Time after that.  See:
# http://www.irishstatutebook.ie/eli/1971/act/17/enacted/en/print

# Michael Deckers (2017-06-01) gave the following URLs for Ireland's
# Summer Time Act, 1925 and Summer Time Orders, 1926 and 1947:
# http://www.irishstatutebook.ie/eli/1925/act/8/enacted/en/print
# http://www.irishstatutebook.ie/eli/1926/sro/919/made/en/print
# http://www.irishstatutebook.ie/eli/1947/sro/71/made/en/print

# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
# Summer Time Act, 1916
Rule	GB-Eire	1916	only	-	May	21	2:00s	1:00	BST
Rule	GB-Eire	1916	only	-	Oct	 1	2:00s	0	GMT
# S.R.&O. 1917, No. 358
Rule	GB-Eire	1917	only	-	Apr	 8	2:00s	1:00	BST
Rule	GB-Eire	1917	only	-	Sep	17	2:00s	0	GMT
# S.R.&O. 1918, No. 274
Rule	GB-Eire	1918	only	-	Mar	24	2:00s	1:00	BST
Rule	GB-Eire	1918	only	-	Sep	30	2:00s	0	GMT
# S.R.&O. 1919, No. 297
Rule	GB-Eire	1919	only	-	Mar	30	2:00s	1:00	BST
Rule	GB-Eire	1919	only	-	Sep	29	2:00s	0	GMT
# S.R.&O. 1920, No. 458
Rule	GB-Eire	1920	only	-	Mar	28	2:00s	1:00	BST
# S.R.&O. 1920, No. 1844
Rule	GB-Eire	1920	only	-	Oct	25	2:00s	0	GMT
# S.R.&O. 1921, No. 363
Rule	GB-Eire	1921	only	-	Apr	 3	2:00s	1:00	BST
Rule	GB-Eire	1921	only	-	Oct	 3	2:00s	0	GMT
# S.R.&O. 1922, No. 264
Rule	GB-Eire	1922	only	-	Mar	26	2:00s	1:00	BST
Rule	GB-Eire	1922	only	-	Oct	 8	2:00s	0	GMT
# The Summer Time Act, 1922
Rule	GB-Eire	1923	only	-	Apr	Sun>=16	2:00s	1:00	BST
Rule	GB-Eire	1923	1924	-	Sep	Sun>=16	2:00s	0	GMT
Rule	GB-Eire	1924	only	-	Apr	Sun>=9	2:00s	1:00	BST
Rule	GB-Eire	1925	1926	-	Apr	Sun>=16	2:00s	1:00	BST
# The Summer Time Act, 1925
Rule	GB-Eire	1925	1938	-	Oct	Sun>=2	2:00s	0	GMT
Rule	GB-Eire	1927	only	-	Apr	Sun>=9	2:00s	1:00	BST
Rule	GB-Eire	1928	1929	-	Apr	Sun>=16	2:00s	1:00	BST
Rule	GB-Eire	1930	only	-	Apr	Sun>=9	2:00s	1:00	BST
Rule	GB-Eire	1931	1932	-	Apr	Sun>=16	2:00s	1:00	BST
Rule	GB-Eire	1933	only	-	Apr	Sun>=9	2:00s	1:00	BST
Rule	GB-Eire	1934	only	-	Apr	Sun>=16	2:00s	1:00	BST
Rule	GB-Eire	1935	only	-	Apr	Sun>=9	2:00s	1:00	BST
Rule	GB-Eire	1936	1937	-	Apr	Sun>=16	2:00s	1:00	BST
Rule	GB-Eire	1938	only	-	Apr	Sun>=9	2:00s	1:00	BST
Rule	GB-Eire	1939	only	-	Apr	Sun>=16	2:00s	1:00	BST
# S.R.&O. 1939, No. 1379
Rule	GB-Eire	1939	only	-	Nov	Sun>=16	2:00s	0	GMT
# S.R.&O. 1940, No. 172 and No. 1883
Rule	GB-Eire	1940	only	-	Feb	Sun>=23	2:00s	1:00	BST
# S.R.&O. 1941, No. 476
Rule	GB-Eire	1941	only	-	May	Sun>=2	1:00s	2:00	BDST
Rule	GB-Eire	1941	1943	-	Aug	Sun>=9	1:00s	1:00	BST
# S.R.&O. 1942, No. 506
Rule	GB-Eire	1942	1944	-	Apr	Sun>=2	1:00s	2:00	BDST
# S.R.&O. 1944, No. 932
Rule	GB-Eire	1944	only	-	Sep	Sun>=16	1:00s	1:00	BST
# S.R.&O. 1945, No. 312
Rule	GB-Eire	1945	only	-	Apr	Mon>=2	1:00s	2:00	BDST
Rule	GB-Eire	1945	only	-	Jul	Sun>=9	1:00s	1:00	BST
# S.R.&O. 1945, No. 1208
Rule	GB-Eire	1945	1946	-	Oct	Sun>=2	2:00s	0	GMT
Rule	GB-Eire	1946	only	-	Apr	Sun>=9	2:00s	1:00	BST
# The Summer Time Act, 1947
Rule	GB-Eire	1947	only	-	Mar	16	2:00s	1:00	BST
Rule	GB-Eire	1947	only	-	Apr	13	1:00s	2:00	BDST
Rule	GB-Eire	1947	only	-	Aug	10	1:00s	1:00	BST
Rule	GB-Eire	1947	only	-	Nov	 2	2:00s	0	GMT
# Summer Time Order, 1948 (S.I. 1948/495)
Rule	GB-Eire	1948	only	-	Mar	14	2:00s	1:00	BST
Rule	GB-Eire	1948	only	-	Oct	31	2:00s	0	GMT
# Summer Time Order, 1949 (S.I. 1949/373)
Rule	GB-Eire	1949	only	-	Apr	 3	2:00s	1:00	BST
Rule	GB-Eire	1949	only	-	Oct	30	2:00s	0	GMT
# Summer Time Order, 1950 (S.I. 1950/518)
# Summer Time Order, 1951 (S.I. 1951/430)
# Summer Time Order, 1952 (S.I. 1952/451)
Rule	GB-Eire	1950	1952	-	Apr	Sun>=14	2:00s	1:00	BST
Rule	GB-Eire	1950	1952	-	Oct	Sun>=21	2:00s	0	GMT
# revert to the rules of the Summer Time Act, 1925
Rule	GB-Eire	1953	only	-	Apr	Sun>=16	2:00s	1:00	BST
Rule	GB-Eire	1953	1960	-	Oct	Sun>=2	2:00s	0	GMT
Rule	GB-Eire	1954	only	-	Apr	Sun>=9	2:00s	1:00	BST
Rule	GB-Eire	1955	1956	-	Apr	Sun>=16	2:00s	1:00	BST
Rule	GB-Eire	1957	only	-	Apr	Sun>=9	2:00s	1:00	BST
Rule	GB-Eire	1958	1959	-	Apr	Sun>=16	2:00s	1:00	BST
Rule	GB-Eire	1960	only	-	Apr	Sun>=9	2:00s	1:00	BST
# Summer Time Order, 1961 (S.I. 1961/71)
# Summer Time (1962) Order, 1961 (S.I. 1961/2465)
# Summer Time Order, 1963 (S.I. 1963/81)
Rule	GB-Eire	1961	1963	-	Mar	lastSun	2:00s	1:00	BST
Rule	GB-Eire	1961	1968	-	Oct	Sun>=23	2:00s	0	GMT
# Summer Time (1964) Order, 1963 (S.I. 1963/2101)
# Summer Time Order, 1964 (S.I. 1964/1201)
# Summer Time Order, 1967 (S.I. 1967/1148)
Rule	GB-Eire	1964	1967	-	Mar	Sun>=19	2:00s	1:00	BST
# Summer Time Order, 1968 (S.I. 1968/117)
Rule	GB-Eire	1968	only	-	Feb	18	2:00s	1:00	BST
# The British Standard Time Act, 1968
#	(no summer time)
# The Summer Time Act, 1972
Rule	GB-Eire	1972	1980	-	Mar	Sun>=16	2:00s	1:00	BST
Rule	GB-Eire	1972	1980	-	Oct	Sun>=23	2:00s	0	GMT
# Summer Time Order, 1980 (S.I. 1980/1089)
# Summer Time Order, 1982 (S.I. 1982/1673)
# Summer Time Order, 1986 (S.I. 1986/223)
# Summer Time Order, 1988 (S.I. 1988/931)
Rule	GB-Eire	1981	1995	-	Mar	lastSun	1:00u	1:00	BST
Rule	GB-Eire 1981	1989	-	Oct	Sun>=23	1:00u	0	GMT
# Summer Time Order, 1989 (S.I. 1989/985)
# Summer Time Order, 1992 (S.I. 1992/1729)
# Summer Time Order 1994 (S.I. 1994/2798)
Rule	GB-Eire 1990	1995	-	Oct	Sun>=22	1:00u	0	GMT
# Summer Time Order 1997 (S.I. 1997/2982)
# See EU for rules starting in 1996.
#
# Use Europe/London for Jersey, Guernsey, and the Isle of Man.

# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/London	-0:01:15 -	LMT	1847 Dec  1
			 0:00	GB-Eire	%s	1968 Oct 27
			 1:00	-	BST	1971 Oct 31  2:00u
			 0:00	GB-Eire	%s	1996
			 0:00	EU	GMT/BST
Link	Europe/London	Europe/Jersey
Link	Europe/London	Europe/Guernsey
Link	Europe/London	Europe/Isle_of_Man

# From Paul Eggert (2018-02-15):
# In January 2018 we discovered that the negative SAVE values in the
# Eire rules cause problems with tests for ICU:
# https://mm.icann.org/pipermail/tz/2018-January/025825.html
# and with tests for OpenJDK:
# https://mm.icann.org/pipermail/tz/2018-January/025822.html
#
# To work around this problem, the build procedure can translate the
# following data into two forms, one with negative SAVE values and the
# other form with a traditional approximation for Irish timestamps
# after 1971-10-31 02:00 UTC; although this approximation has tm_isdst
# flags that are reversed, its UTC offsets are correct and this often
# suffices.  This source file currently uses only nonnegative SAVE
# values, but this is intended to change and downstream code should
# not rely on it.
#
# The following is like GB-Eire and EU, except with standard time in
# summer and negative daylight saving time in winter.  It is for when
# negative SAVE values are used.
# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	Eire	1971	only	-	Oct	31	 2:00u	-1:00	-
Rule	Eire	1972	1980	-	Mar	Sun>=16	 2:00u	0	-
Rule	Eire	1972	1980	-	Oct	Sun>=23	 2:00u	-1:00	-
Rule	Eire	1981	max	-	Mar	lastSun	 1:00u	0	-
Rule	Eire	1981	1989	-	Oct	Sun>=23	 1:00u	-1:00	-
Rule	Eire	1990	1995	-	Oct	Sun>=22	 1:00u	-1:00	-
Rule	Eire	1996	max	-	Oct	lastSun	 1:00u	-1:00	-

# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
		#STDOFF	-0:25:21.1
Zone	Europe/Dublin	-0:25:21 -	LMT	1880 Aug  2
			-0:25:21 -	DMT	1916 May 21  2:00s
			-0:25:21 1:00	IST	1916 Oct  1  2:00s
			 0:00	GB-Eire	%s	1921 Dec  6 # independence
			 0:00	GB-Eire	GMT/IST	1940 Feb 25  2:00s
			 0:00	1:00	IST	1946 Oct  6  2:00s
			 0:00	-	GMT	1947 Mar 16  2:00s
			 0:00	1:00	IST	1947 Nov  2  2:00s
			 0:00	-	GMT	1948 Apr 18  2:00s
			 0:00	GB-Eire	GMT/IST	1968 Oct 27
# Vanguard section, for zic and other parsers that support negative DST.
			 1:00	Eire	IST/GMT
# Rearguard section, for parsers lacking negative DST; see ziguard.awk.
#			 1:00	-	IST	1971 Oct 31  2:00u
#			 0:00	GB-Eire	GMT/IST	1996
#			 0:00	EU	GMT/IST
# End of rearguard section.


###############################################################################

# Europe

# The following rules are for the European Union and for its
# predecessor organization, the European Communities.
# For brevity they are called "EU rules" elsewhere in this file.

# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	EU	1977	1980	-	Apr	Sun>=1	 1:00u	1:00	S
Rule	EU	1977	only	-	Sep	lastSun	 1:00u	0	-
Rule	EU	1978	only	-	Oct	 1	 1:00u	0	-
Rule	EU	1979	1995	-	Sep	lastSun	 1:00u	0	-
Rule	EU	1981	max	-	Mar	lastSun	 1:00u	1:00	S
Rule	EU	1996	max	-	Oct	lastSun	 1:00u	0	-
# The most recent directive covers the years starting in 2002.  See:
# Directive 2000/84/EC of the European Parliament and of the Council
# of 19 January 2001 on summer-time arrangements.
# http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:32000L0084:EN:NOT

# W-Eur differs from EU only in that W-Eur uses standard time.
Rule	W-Eur	1977	1980	-	Apr	Sun>=1	 1:00s	1:00	S
Rule	W-Eur	1977	only	-	Sep	lastSun	 1:00s	0	-
Rule	W-Eur	1978	only	-	Oct	 1	 1:00s	0	-
Rule	W-Eur	1979	1995	-	Sep	lastSun	 1:00s	0	-
Rule	W-Eur	1981	max	-	Mar	lastSun	 1:00s	1:00	S
Rule	W-Eur	1996	max	-	Oct	lastSun	 1:00s	0	-

# Older C-Eur rules are for convenience in the tables.
# From 1977 on, C-Eur differs from EU only in that C-Eur uses standard time.
Rule	C-Eur	1916	only	-	Apr	30	23:00	1:00	S
Rule	C-Eur	1916	only	-	Oct	 1	 1:00	0	-
Rule	C-Eur	1917	1918	-	Apr	Mon>=15	 2:00s	1:00	S
Rule	C-Eur	1917	1918	-	Sep	Mon>=15	 2:00s	0	-
Rule	C-Eur	1940	only	-	Apr	 1	 2:00s	1:00	S
Rule	C-Eur	1942	only	-	Nov	 2	 2:00s	0	-
Rule	C-Eur	1943	only	-	Mar	29	 2:00s	1:00	S
Rule	C-Eur	1943	only	-	Oct	 4	 2:00s	0	-
Rule	C-Eur	1944	1945	-	Apr	Mon>=1	 2:00s	1:00	S
# Whitman gives 1944 Oct 7; go with Shanks & Pottenger.
Rule	C-Eur	1944	only	-	Oct	 2	 2:00s	0	-
# From Jesper Nørgaard Welen (2008-07-13):
#
# I found what is probably a typo of 2:00 which should perhaps be 2:00s
# in the C-Eur rule from tz database version 2008d (this part was
# corrected in version 2008d). The circumstantial evidence is simply the
# tz database itself, as seen below:
#
# Zone Europe/Paris ...
#    0:00 France WE%sT 1945 Sep 16  3:00
#
# Zone Europe/Monaco ...
#    0:00 France WE%sT 1945 Sep 16  3:00
#
# Zone Europe/Belgrade ...
#    1:00 1:00 CEST 1945 Sep 16  2:00s
#
# Rule France 1945 only - Sep 16  3:00 0 -
# Rule Belgium 1945 only - Sep 16  2:00s 0 -
# Rule Neth 1945 only - Sep 16 2:00s 0 -
#
# The rule line to be changed is:
#
# Rule C-Eur 1945 only - Sep 16  2:00 0 -
#
# It seems that Paris, Monaco, Rule France, Rule Belgium all agree on
# 2:00 standard time, e.g. 3:00 local time.  However there are no
# countries that use C-Eur rules in September 1945, so the only items
# affected are apparently these fictitious zones that translate acronyms
# CET and MET:
#
# Zone CET  1:00 C-Eur CE%sT
# Zone MET  1:00 C-Eur ME%sT
#
# It this is right then the corrected version would look like:
#
# Rule C-Eur 1945 only - Sep 16  2:00s 0 -
#
# A small step for mankind though 8-)
Rule	C-Eur	1945	only	-	Sep	16	 2:00s	0	-
Rule	C-Eur	1977	1980	-	Apr	Sun>=1	 2:00s	1:00	S
Rule	C-Eur	1977	only	-	Sep	lastSun	 2:00s	0	-
Rule	C-Eur	1978	only	-	Oct	 1	 2:00s	0	-
Rule	C-Eur	1979	1995	-	Sep	lastSun	 2:00s	0	-
Rule	C-Eur	1981	max	-	Mar	lastSun	 2:00s	1:00	S
Rule	C-Eur	1996	max	-	Oct	lastSun	 2:00s	0	-

# E-Eur differs from EU only in that E-Eur switches at midnight local time.
Rule	E-Eur	1977	1980	-	Apr	Sun>=1	 0:00	1:00	S
Rule	E-Eur	1977	only	-	Sep	lastSun	 0:00	0	-
Rule	E-Eur	1978	only	-	Oct	 1	 0:00	0	-
Rule	E-Eur	1979	1995	-	Sep	lastSun	 0:00	0	-
Rule	E-Eur	1981	max	-	Mar	lastSun	 0:00	1:00	S
Rule	E-Eur	1996	max	-	Oct	lastSun	 0:00	0	-


# Daylight saving time for Russia and the Soviet Union
#
# The 1917-1921 decree URLs are from Alexander Belopolsky (2016-08-23).

# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	Russia	1917	only	-	Jul	 1	23:00	1:00	MST  # Moscow Summer Time
#
# Decree No. 142 (1917-12-22) http://istmat.info/node/28137
Rule	Russia	1917	only	-	Dec	28	 0:00	0	MMT  # Moscow Mean Time
#
# Decree No. 497 (1918-05-30) http://istmat.info/node/30001
Rule	Russia	1918	only	-	May	31	22:00	2:00	MDST # Moscow Double Summer Time
Rule	Russia	1918	only	-	Sep	16	 1:00	1:00	MST
#
# Decree No. 258 (1919-05-29) http://istmat.info/node/37949
Rule	Russia	1919	only	-	May	31	23:00	2:00	MDST
#
Rule	Russia	1919	only	-	Jul	 1	 0:00u	1:00	MSD
Rule	Russia	1919	only	-	Aug	16	 0:00	0	MSK
#
# Decree No. 63 (1921-02-03) http://istmat.info/node/45840
Rule	Russia	1921	only	-	Feb	14	23:00	1:00	MSD
#
# Decree No. 121 (1921-03-07) http://istmat.info/node/45949
Rule	Russia	1921	only	-	Mar	20	23:00	2:00	+05
#
Rule	Russia	1921	only	-	Sep	 1	 0:00	1:00	MSD
Rule	Russia	1921	only	-	Oct	 1	 0:00	0	-
# Act No. 925 of the Council of Ministers of the USSR (1980-10-24):
Rule	Russia	1981	1984	-	Apr	 1	 0:00	1:00	S
Rule	Russia	1981	1983	-	Oct	 1	 0:00	0	-
# Act No. 967 of the Council of Ministers of the USSR (1984-09-13), repeated in
# Act No. 227 of the Council of Ministers of the USSR (1989-03-14):
Rule	Russia	1984	1995	-	Sep	lastSun	 2:00s	0	-
Rule	Russia	1985	2010	-	Mar	lastSun	 2:00s	1:00	S
#
Rule	Russia	1996	2010	-	Oct	lastSun	 2:00s	0	-
# As described below, Russia's 2014 change affects Zone data, not Rule data.

# From Stepan Golosunov (2016-03-07):
# Wikipedia and other sources refer to the Act of the Council of
# Ministers of the USSR from 1988-01-04 No. 5 and the Act of the
# Council of Ministers of the USSR from 1989-03-14 No. 227.
#
# I did not find full texts of these acts.  For the 1989 one we have
# title at https://base.garant.ru/70754136/ :
# "About change in calculation of time on the territories of
# Lithuanian SSR, Latvian SSR and Estonian SSR, Astrakhan,
# Kaliningrad, Kirov, Kuybyshev, Ulyanovsk and Uralsk oblasts".
# And http://astrozet.net/files/Zones/DOC/RU/1980-925.txt appears to
# contain quotes from both acts: Since last Sunday of March 1988 rules
# of the second time belt are installed in Volgograd and Saratov
# oblasts.  Since last Sunday of March 1989:
# a) Lithuanian SSR, Latvian SSR, Estonian SSR, Kaliningrad oblast:
# second time belt rules without extra hour (Moscow-1);
# b) Astrakhan, Kirov, Kuybyshev, Ulyanovsk oblasts: second time belt
# rules (Moscow time)
# c) Uralsk oblast: third time belt rules (Moscow+1).

# From Stepan Golosunov (2016-03-27):
# Unamended version of the act of the
# Government of the Russian Federation No. 23 from 08.01.1992
# http://pravo.gov.ru/proxy/ips/?docbody=&nd=102014034&rdk=0
# says that every year clocks were to be moved forward on last Sunday
# of March at 2 hours and moved backwards on last Sunday of September
# at 3 hours.  It was amended in 1996 to replace September with October.

# From Alexander Krivenyshev (2011-06-14):
# According to Kremlin press service, Russian President Dmitry Medvedev
# signed a federal law "On calculation of time" on June 9, 2011.
# According to the law Russia is abolishing daylight saving time.
#
# Medvedev signed a law "On the Calculation of Time" (in russian):
# http://bmockbe.ru/events/?ID=7583
#
# Medvedev signed a law on the calculation of the time (in russian):
# https://www.regnum.ru/news/polit/1413906.html

# From Arthur David Olson (2011-06-15):
# Take "abolishing daylight saving time" to mean that time is now considered
# to be standard.

# These are for backward compatibility with older versions.

# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	WET		0:00	EU	WE%sT
Zone	CET		1:00	C-Eur	CE%sT
Zone	MET		1:00	C-Eur	ME%sT
Zone	EET		2:00	EU	EE%sT

# Previous editions of this database used abbreviations like MET DST
# for Central European Summer Time, but this didn't agree with common usage.

# From Markus Kuhn (1996-07-12):
# The official German names ... are
#
#	Mitteleuropäische Zeit (MEZ)         = UTC+01:00
#	Mitteleuropäische Sommerzeit (MESZ)  = UTC+02:00
#
# as defined in the German Time Act (Gesetz über die Zeitbestimmung (ZeitG),
# 1978-07-25, Bundesgesetzblatt, Jahrgang 1978, Teil I, S. 1110-1111)....
# I wrote ... to the German Federal Physical-Technical Institution
#
#	Physikalisch-Technische Bundesanstalt (PTB)
#	Laboratorium 4.41 "Zeiteinheit"
#	Postfach 3345
#	D-38023 Braunschweig
#	phone: +49 531 592-0
#
# ... I received today an answer letter from Dr. Peter Hetzel, head of the PTB
# department for time and frequency transmission.  He explained that the
# PTB translates MEZ and MESZ into English as
#
#	Central European Time (CET)         = UTC+01:00
#	Central European Summer Time (CEST) = UTC+02:00


# Albania
# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	Albania	1940	only	-	Jun	16	0:00	1:00	S
Rule	Albania	1942	only	-	Nov	 2	3:00	0	-
Rule	Albania	1943	only	-	Mar	29	2:00	1:00	S
Rule	Albania	1943	only	-	Apr	10	3:00	0	-
Rule	Albania	1974	only	-	May	 4	0:00	1:00	S
Rule	Albania	1974	only	-	Oct	 2	0:00	0	-
Rule	Albania	1975	only	-	May	 1	0:00	1:00	S
Rule	Albania	1975	only	-	Oct	 2	0:00	0	-
Rule	Albania	1976	only	-	May	 2	0:00	1:00	S
Rule	Albania	1976	only	-	Oct	 3	0:00	0	-
Rule	Albania	1977	only	-	May	 8	0:00	1:00	S
Rule	Albania	1977	only	-	Oct	 2	0:00	0	-
Rule	Albania	1978	only	-	May	 6	0:00	1:00	S
Rule	Albania	1978	only	-	Oct	 1	0:00	0	-
Rule	Albania	1979	only	-	May	 5	0:00	1:00	S
Rule	Albania	1979	only	-	Sep	30	0:00	0	-
Rule	Albania	1980	only	-	May	 3	0:00	1:00	S
Rule	Albania	1980	only	-	Oct	 4	0:00	0	-
Rule	Albania	1981	only	-	Apr	26	0:00	1:00	S
Rule	Albania	1981	only	-	Sep	27	0:00	0	-
Rule	Albania	1982	only	-	May	 2	0:00	1:00	S
Rule	Albania	1982	only	-	Oct	 3	0:00	0	-
Rule	Albania	1983	only	-	Apr	18	0:00	1:00	S
Rule	Albania	1983	only	-	Oct	 1	0:00	0	-
Rule	Albania	1984	only	-	Apr	 1	0:00	1:00	S
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Tirane	1:19:20 -	LMT	1914
			1:00	-	CET	1940 Jun 16
			1:00	Albania	CE%sT	1984 Jul
			1:00	EU	CE%sT

# Andorra
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Andorra	0:06:04 -	LMT	1901
			0:00	-	WET	1946 Sep 30
			1:00	-	CET	1985 Mar 31  2:00
			1:00	EU	CE%sT

# Austria

# Milne says Vienna time was 1:05:21.

# From Paul Eggert (2006-03-22): Shanks & Pottenger give 1918-06-16 and
# 1945-11-18, but the Austrian Federal Office of Metrology and
# Surveying (BEV) gives 1918-09-16 and for Vienna gives the "alleged"
# date of 1945-04-12 with no time.  For the 1980-04-06 transition
# Shanks & Pottenger give 02:00, the BEV 00:00.  Go with the BEV,
# and guess 02:00 for 1945-04-12.

# From Alois Treindl (2019-07-22):
# In 1946 the end of DST was on Monday, 7 October 1946, at 3:00 am.
# Shanks had this right.  Source: Die Weltpresse, 5. Oktober 1946, page 5.

# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	Austria	1920	only	-	Apr	 5	2:00s	1:00	S
Rule	Austria	1920	only	-	Sep	13	2:00s	0	-
Rule	Austria	1946	only	-	Apr	14	2:00s	1:00	S
Rule	Austria	1946	only	-	Oct	 7	2:00s	0	-
Rule	Austria	1947	1948	-	Oct	Sun>=1	2:00s	0	-
Rule	Austria	1947	only	-	Apr	 6	2:00s	1:00	S
Rule	Austria	1948	only	-	Apr	18	2:00s	1:00	S
Rule	Austria	1980	only	-	Apr	 6	0:00	1:00	S
Rule	Austria	1980	only	-	Sep	28	0:00	0	-
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Vienna	1:05:21 -	LMT	1893 Apr
			1:00	C-Eur	CE%sT	1920
			1:00	Austria	CE%sT	1940 Apr  1  2:00s
			1:00	C-Eur	CE%sT	1945 Apr  2  2:00s
			1:00	1:00	CEST	1945 Apr 12  2:00s
			1:00	-	CET	1946
			1:00	Austria	CE%sT	1981
			1:00	EU	CE%sT

# Belarus
#
# From Stepan Golosunov (2016-07-02):
# http://www.lawbelarus.com/repub/sub30/texf9611.htm
# (Act of the Cabinet of Ministers of the Republic of Belarus from
# 1992-03-25 No. 157) ... says clocks were to be moved forward at 2:00
# on last Sunday of March and backward at 3:00 on last Sunday of September
# (the same as previous USSR and contemporary Russian regulations).
#
# From Yauhen Kharuzhy (2011-09-16):
# By latest Belarus government act Europe/Minsk timezone was changed to
# GMT+3 without DST (was GMT+2 with DST).
#
# Sources (Russian language):
# http://www.belta.by/ru/all_news/society/V-Belarusi-otmenjaetsja-perexod-na-sezonnoe-vremja_i_572952.html
# http://naviny.by/rubrics/society/2011/09/16/ic_articles_116_175144/
# https://news.tut.by/society/250578.html
#
# From Alexander Bokovoy (2014-10-09):
# Belarussian government decided against changing to winter time....
# http://eng.belta.by/all_news/society/Belarus-decides-against-adjusting-time-in-Russias-wake_i_76335.html
#
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Minsk	1:50:16 -	LMT	1880
			1:50	-	MMT	1924 May  2 # Minsk Mean Time
			2:00	-	EET	1930 Jun 21
			3:00	-	MSK	1941 Jun 28
			1:00	C-Eur	CE%sT	1944 Jul  3
			3:00	Russia	MSK/MSD	1990
			3:00	-	MSK	1991 Mar 31  2:00s
			2:00	Russia	EE%sT	2011 Mar 27  2:00s
			3:00	-	+03

# Belgium
#
# From Michael Deckers (2019-08-25):
# The exposition in the web page
# https://www.bestor.be/wiki/index.php/Voyager_dans_le_temps._L%E2%80%99introduction_de_la_norme_de_Greenwich_en_Belgique
# gives several contemporary sources from which one can conclude that
# the switch in Europe/Brussels on 1892-05-01 was from 00:17:30 to 00:00:00.
#
# From Paul Eggert (2019-08-28):
# This quote helps explain the late-1914 situation:
#   In early November 1914, the Germans imposed the time zone used in central
#   Europe and forced the inhabitants to set their watches and public clocks
#   sixty minutes ahead.  Many were reluctant to accept "German time" and
#   continued to use "Belgian time" among themselves.  Reflecting the spirit of
#   resistance that arose in the population, a song made fun of this change....
# The song ended:
#   Putting your clock forward
#   Will but hasten the happy hour
#   When we kick out the Boches!
# See: Pluvinage G. Brussels on German time. Cahiers Bruxellois -
# Brusselse Cahiers. 2014;XLVI(1E):15-38.
# https://www.cairn.info/revue-cahiers-bruxellois-2014-1E-page-15.htm
#
# Entries from 1914 through 1917 are taken from "De tijd in België"
# .
# Entries from 1918 through 1991 are taken from:
#	Annuaire de L'Observatoire Royal de Belgique,
#	Avenue Circulaire, 3, B-1180 BRUXELLES, CLVIIe année, 1991
#	(Imprimerie HAYEZ, s.p.r.l., Rue Fin, 4, 1080 BRUXELLES, MCMXC),
#	pp 8-9.
# Thanks to Pascal Delmoitie for the 1918/1991 references.
# The 1918 rules are listed for completeness; they apply to unoccupied Belgium.
# Assume Brussels switched to WET in 1918 when the armistice took effect.
#
# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	Belgium	1918	only	-	Mar	 9	 0:00s	1:00	S
Rule	Belgium	1918	1919	-	Oct	Sat>=1	23:00s	0	-
Rule	Belgium	1919	only	-	Mar	 1	23:00s	1:00	S
Rule	Belgium	1920	only	-	Feb	14	23:00s	1:00	S
Rule	Belgium	1920	only	-	Oct	23	23:00s	0	-
Rule	Belgium	1921	only	-	Mar	14	23:00s	1:00	S
Rule	Belgium	1921	only	-	Oct	25	23:00s	0	-
Rule	Belgium	1922	only	-	Mar	25	23:00s	1:00	S
Rule	Belgium	1922	1927	-	Oct	Sat>=1	23:00s	0	-
Rule	Belgium	1923	only	-	Apr	21	23:00s	1:00	S
Rule	Belgium	1924	only	-	Mar	29	23:00s	1:00	S
Rule	Belgium	1925	only	-	Apr	 4	23:00s	1:00	S
# DSH writes that a royal decree of 1926-02-22 specified the Sun following 3rd
# Sat in Apr (except if it's Easter, in which case it's one Sunday earlier),
# to Sun following 1st Sat in Oct, and that a royal decree of 1928-09-15
# changed the transition times to 02:00 GMT.
Rule	Belgium	1926	only	-	Apr	17	23:00s	1:00	S
Rule	Belgium	1927	only	-	Apr	 9	23:00s	1:00	S
Rule	Belgium	1928	only	-	Apr	14	23:00s	1:00	S
Rule	Belgium	1928	1938	-	Oct	Sun>=2	 2:00s	0	-
Rule	Belgium	1929	only	-	Apr	21	 2:00s	1:00	S
Rule	Belgium	1930	only	-	Apr	13	 2:00s	1:00	S
Rule	Belgium	1931	only	-	Apr	19	 2:00s	1:00	S
Rule	Belgium	1932	only	-	Apr	 3	 2:00s	1:00	S
Rule	Belgium	1933	only	-	Mar	26	 2:00s	1:00	S
Rule	Belgium	1934	only	-	Apr	 8	 2:00s	1:00	S
Rule	Belgium	1935	only	-	Mar	31	 2:00s	1:00	S
Rule	Belgium	1936	only	-	Apr	19	 2:00s	1:00	S
Rule	Belgium	1937	only	-	Apr	 4	 2:00s	1:00	S
Rule	Belgium	1938	only	-	Mar	27	 2:00s	1:00	S
Rule	Belgium	1939	only	-	Apr	16	 2:00s	1:00	S
Rule	Belgium	1939	only	-	Nov	19	 2:00s	0	-
Rule	Belgium	1940	only	-	Feb	25	 2:00s	1:00	S
Rule	Belgium	1944	only	-	Sep	17	 2:00s	0	-
Rule	Belgium	1945	only	-	Apr	 2	 2:00s	1:00	S
Rule	Belgium	1945	only	-	Sep	16	 2:00s	0	-
Rule	Belgium	1946	only	-	May	19	 2:00s	1:00	S
Rule	Belgium	1946	only	-	Oct	 7	 2:00s	0	-
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Brussels	0:17:30 -	LMT	1880
			0:17:30	-	BMT	1892 May  1 00:17:30
			0:00	-	WET	1914 Nov  8
			1:00	-	CET	1916 May  1  0:00
			1:00	C-Eur	CE%sT	1918 Nov 11 11:00u
			0:00	Belgium	WE%sT	1940 May 20  2:00s
			1:00	C-Eur	CE%sT	1944 Sep  3
			1:00	Belgium	CE%sT	1977
			1:00	EU	CE%sT
Link Europe/Brussels Europe/Amsterdam
Link Europe/Brussels Europe/Luxembourg

# Bosnia and Herzegovina
# See Europe/Belgrade.

# Bulgaria
#
# From Plamen Simenov via Steffen Thorsen (1999-09-09):
# A document of Government of Bulgaria (No. 94/1997) says:
# EET -> EETDST is in 03:00 Local time in last Sunday of March ...
# EETDST -> EET is in 04:00 Local time in last Sunday of October
#
# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	Bulg	1979	only	-	Mar	31	23:00	1:00	S
Rule	Bulg	1979	only	-	Oct	 1	 1:00	0	-
Rule	Bulg	1980	1982	-	Apr	Sat>=1	23:00	1:00	S
Rule	Bulg	1980	only	-	Sep	29	 1:00	0	-
Rule	Bulg	1981	only	-	Sep	27	 2:00	0	-
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Sofia	1:33:16 -	LMT	1880
			1:56:56	-	IMT	1894 Nov 30 # Istanbul MT?
			2:00	-	EET	1942 Nov  2  3:00
			1:00	C-Eur	CE%sT	1945
			1:00	-	CET	1945 Apr  2  3:00
			2:00	-	EET	1979 Mar 31 23:00
			2:00	Bulg	EE%sT	1982 Sep 26  3:00
			2:00	C-Eur	EE%sT	1991
			2:00	E-Eur	EE%sT	1997
			2:00	EU	EE%sT

# Croatia
# See Europe/Belgrade.

# Cyprus
# Please see the 'asia' file for Asia/Nicosia.

# Czech Republic / Czechia
#
# From Paul Eggert (2018-04-15):
# The source for Czech data is: Kdy začíná a končí letní čas. 2018-04-15.
# https://kalendar.beda.cz/kdy-zacina-a-konci-letni-cas
# We know of no English-language name for historical Czech winter time;
# abbreviate it as "GMT", as it happened to be GMT.
#
# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	Czech	1945	only	-	Apr	Mon>=1	2:00s	1:00	S
Rule	Czech	1945	only	-	Oct	 1	2:00s	0	-
Rule	Czech	1946	only	-	May	 6	2:00s	1:00	S
Rule	Czech	1946	1949	-	Oct	Sun>=1	2:00s	0	-
Rule	Czech	1947	1948	-	Apr	Sun>=15	2:00s	1:00	S
Rule	Czech	1949	only	-	Apr	 9	2:00s	1:00	S
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Prague	0:57:44 -	LMT	1850
			0:57:44	-	PMT	1891 Oct    # Prague Mean Time
			1:00	C-Eur	CE%sT	1945 May  9
			1:00	Czech	CE%sT	1946 Dec  1  3:00
# Vanguard section, for zic and other parsers that support negative DST.
			1:00	-1:00	GMT	1947 Feb 23  2:00
# Rearguard section, for parsers lacking negative DST; see ziguard.awk.
#			0:00	-	GMT	1947 Feb 23  2:00
# End of rearguard section.
			1:00	Czech	CE%sT	1979
			1:00	EU	CE%sT
Link Europe/Prague Europe/Bratislava


# Denmark, Faroe Islands, and Greenland
# For Denmark see Europe/Berlin.

Zone Atlantic/Faroe	-0:27:04 -	LMT	1908 Jan 11 # Tórshavn
			 0:00	-	WET	1981
			 0:00	EU	WE%sT
#
# From Paul Eggert (2004-10-31):
# During World War II, Germany maintained secret manned weather stations in
# East Greenland and Franz Josef Land, but we don't know their time zones.
# My source for this is Wilhelm Dege's book mentioned under Svalbard.
#
# From Paul Eggert (2017-12-10):
# Greenland joined the European Communities as part of Denmark,
# obtained home rule on 1979-05-01, and left the European Communities
# on 1985-02-01.  It therefore should have been using EU
# rules at least through 1984.  Shanks & Pottenger say Scoresbysund and Godthåb
# used C-Eur rules after 1980, but IATA SSIM (1991/1996) says they use EU
# rules since at least 1991.  Assume EU rules since 1980.

# From Gwillim Law (2001-06-06), citing
#  (2001-03-15),
# and with translations corrected by Steffen Thorsen:
#
# Greenland has four local times, and the relation to UTC
# is according to the following time line:
#
# The military zone near Thule	UTC-4
# Standard Greenland time	UTC-3
# Scoresbysund			UTC-1
# Danmarkshavn			UTC
#
# In the military area near Thule and in Danmarkshavn DST will not be
# introduced.

# From Rives McDow (2001-11-01):
#
# I correspond regularly with the Dansk Polarcenter, and wrote them at
# the time to clarify the situation in Thule.  Unfortunately, I have
# not heard back from them regarding my recent letter.  [But I have
# info from earlier correspondence.]
#
# According to the center, a very small local time zone around Thule
# Air Base keeps the time according to UTC-4, implementing daylight
# savings using North America rules, changing the time at 02:00 local time....
#
# The east coast of Greenland north of the community of Scoresbysund
# uses UTC in the same way as in Iceland, year round, with no dst.
# There are just a few stations on this coast, including the
# Danmarkshavn ICAO weather station mentioned in your September 29th
# email.  The other stations are two sledge patrol stations in
# Mestersvig and Daneborg, the air force base at Station Nord, and the
# DPC research station at Zackenberg.
#
# Scoresbysund and two small villages nearby keep time UTC-1 and use
# the same daylight savings time period as in West Greenland (Godthåb).
#
# The rest of Greenland, including Godthåb (this area, although it
# includes central Greenland, is known as west Greenland), keeps time
# UTC-3, with daylight savings methods according to European rules.
#
# It is common procedure to use UTC 0 in the wilderness of East and
# North Greenland, because it is mainly Icelandic aircraft operators
# maintaining traffic in these areas.  However, the official status of
# this area is that it sticks with Godthåb time.  This area might be
# considered a dual time zone in some respects because of this.

# From Rives McDow (2001-11-19):
# I heard back from someone stationed at Thule; the time change took place
# there at 2:00 AM.

# From Paul Eggert (2006-03-22):
# From 1997 on the CIA map shows Danmarkshavn on GMT;
# the 1995 map as like Godthåb.
# For lack of better info, assume they were like Godthåb before 1996.
# startkart.no says Thule does not observe DST, but this is clearly an error,
# so go with Shanks & Pottenger for Thule transitions until this year.
# For 2007 on assume Thule will stay in sync with US DST rules.

# From J William Piggott (2016-02-20):
# "Greenland north of the community of Scoresbysund" is officially named
# "National Park" by Executive Order:
# http://naalakkersuisut.gl/~/media/Nanoq/Files/Attached%20Files/Engelske-tekster/Legislation/Executive%20Order%20National%20Park.rtf
# It is their only National Park.
#
# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	Thule	1991	1992	-	Mar	lastSun	2:00	1:00	D
Rule	Thule	1991	1992	-	Sep	lastSun	2:00	0	S
Rule	Thule	1993	2006	-	Apr	Sun>=1	2:00	1:00	D
Rule	Thule	1993	2006	-	Oct	lastSun	2:00	0	S
Rule	Thule	2007	max	-	Mar	Sun>=8	2:00	1:00	D
Rule	Thule	2007	max	-	Nov	Sun>=1	2:00	0	S
#
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone America/Danmarkshavn -1:14:40 -	LMT	1916 Jul 28
			-3:00	-	-03	1980 Apr  6  2:00
			-3:00	EU	-03/-02	1996
			0:00	-	GMT
#
# Use the old name Scoresbysund, as the current name Ittoqqortoormiit
# exceeds tzdb's 14-letter limit and has no common English abbreviation.
Zone America/Scoresbysund -1:27:52 -	LMT	1916 Jul 28 # Ittoqqortoormiit
			-2:00	-	-02	1980 Apr  6  2:00
			-2:00	C-Eur	-02/-01	1981 Mar 29
			-1:00	EU	-01/+00
Zone America/Nuuk	-3:26:56 -	LMT	1916 Jul 28 # Godthåb
			-3:00	-	-03	1980 Apr  6  2:00
			-3:00	EU	-03/-02
Zone America/Thule	-4:35:08 -	LMT	1916 Jul 28 # Pituffik
			-4:00	Thule	A%sT

# Estonia
#
# From Paul Eggert (2016-03-18):
# The 1989 transition is from USSR act No. 227 (1989-03-14).
#
# From Peter Ilieve (1994-10-15):
# A relative in Tallinn confirms the accuracy of the data for 1989 onwards
# [through 1994] and gives the legal authority for it,
# a regulation of the Government of Estonia, No. 111 of 1989....
#
# From Peter Ilieve (1996-10-28):
# [IATA SSIM (1992/1996) claims that the Baltic republics switch at 01:00s,
# but a relative confirms that Estonia still switches at 02:00s, writing:]
# "I do not [know] exactly but there are some little different
# (confusing) rules for International Air and Railway Transport Schedules
# conversion in Sunday connected with end of summer time in Estonia....
# A discussion is running about the summer time efficiency and effect on
# human physiology.  It seems that Estonia maybe will not change to
# summer time next spring."

# From Peter Ilieve (1998-11-04), heavily edited:
# The 1998-09-22 Estonian time law
# http://trip.rk.ee/cgi-bin/thw?${BASE}=akt&${OOHTML}=rtd&TA=1998&TO=1&AN=1390
# refers to the Eighth Directive and cites the association agreement between
# the EU and Estonia, ratified by the Estonian law (RT II 1995, 22-27, 120).
#
# I also asked [my relative] whether they use any standard abbreviation
# for their standard and summer times. He says no, they use "suveaeg"
# (summer time) and "talveaeg" (winter time).

# From The Baltic Times  (1999-09-09)
# via Steffen Thorsen:
# This year will mark the last time Estonia shifts to summer time,
# a council of the ruling coalition announced Sept. 6....
# But what this could mean for Estonia's chances of joining the European
# Union are still unclear.  In 1994, the EU declared summer time compulsory
# for all member states until 2001.  Brussels has yet to decide what to do
# after that.

# From Mart Oruaas (2000-01-29):
# Regulation No. 301 (1999-10-12) obsoletes previous regulation
# No. 206 (1998-09-22) and thus sticks Estonia to +02:00 GMT for all
# the year round.  The regulation is effective 1999-11-01.

# From Toomas Soome (2002-02-21):
# The Estonian government has changed once again timezone politics.
# Now we are using again EU rules.
#
# From Urmet Jänes (2002-03-28):
# The legislative reference is Government decree No. 84 on 2002-02-21.

# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Tallinn	1:39:00	-	LMT	1880
			1:39:00	-	TMT	1918 Feb    # Tallinn Mean Time
			1:00	C-Eur	CE%sT	1919 Jul
			1:39:00	-	TMT	1921 May
			2:00	-	EET	1940 Aug  6
			3:00	-	MSK	1941 Sep 15
			1:00	C-Eur	CE%sT	1944 Sep 22
			3:00	Russia	MSK/MSD	1989 Mar 26  2:00s
			2:00	1:00	EEST	1989 Sep 24  2:00s
			2:00	C-Eur	EE%sT	1998 Sep 22
			2:00	EU	EE%sT	1999 Oct 31  4:00
			2:00	-	EET	2002 Feb 21
			2:00	EU	EE%sT

# Finland

# From Hannu Strang (1994-09-25 06:03:37 UTC):
# Well, here in Helsinki we're just changing from summer time to regular one,
# and it's supposed to change at 4am...

# From Janne Snabb (2010-07-15):
#
# I noticed that the Finland data is not accurate for years 1981 and 1982.
# During these two first trial years the DST adjustment was made one hour
# earlier than in forthcoming years. Starting 1983 the adjustment was made
# according to the central European standards.
#
# This is documented in Heikki Oja: Aikakirja 2007, published by The Almanac
# Office of University of Helsinki, ISBN 952-10-3221-9, available online (in
# Finnish) at
# https://almanakka.helsinki.fi/aikakirja/Aikakirja2007kokonaan.pdf
#
# Page 105 (56 in PDF version) has a handy table of all past daylight savings
# transitions. It is easy enough to interpret without Finnish skills.
#
# This is also confirmed by Finnish Broadcasting Company's archive at:
# http://www.yle.fi/elavaarkisto/?s=s&g=1&ag=5&t=&a=3401
#
# The news clip from 1981 says that "the time between 2 and 3 o'clock does not
# exist tonight."

# From Konstantin Hyppönen (2014-06-13):
# [Heikki Oja's book Aikakirja 2013]
# https://almanakka.helsinki.fi/images/aikakirja/Aikakirja2013kokonaan.pdf
# pages 104-105, including a scan from a newspaper published on Apr 2 1942
# say that ... [o]n Apr 2 1942, 24 o'clock (which means Apr 3 1942,
# 00:00), clocks were moved one hour forward. The newspaper
# mentions "on the night from Thursday to Friday"....
# On Oct 4 1942, clocks were moved at 1:00 one hour backwards.
#
# From Paul Eggert (2014-06-14):
# Go with Oja over Shanks.

# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	Finland	1942	only	-	Apr	2	24:00	1:00	S
Rule	Finland	1942	only	-	Oct	4	1:00	0	-
Rule	Finland	1981	1982	-	Mar	lastSun	2:00	1:00	S
Rule	Finland	1981	1982	-	Sep	lastSun	3:00	0	-

# Milne says Helsinki (Helsingfors) time was 1:39:49.2 (official document).

# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
		#STDOFF	1:39:49.2
Zone	Europe/Helsinki	1:39:49 -	LMT	1878 May 31
			1:39:49	-	HMT	1921 May    # Helsinki Mean Time
			2:00	Finland	EE%sT	1983
			2:00	EU	EE%sT

# Åland Is
Link	Europe/Helsinki	Europe/Mariehamn


# France

# From Ciro Discepolo (2000-12-20):
#
# Henri Le Corre, Régimes horaires pour le monde entier, Éditions
# Traditionnelles - Paris 2 books, 1993
#
# Gabriel, Traité de l'heure dans le monde, Guy Trédaniel,
# Paris, 1991
#
# Françoise Gauquelin, Problèmes de l'heure résolus en astrologie,
# Guy Trédaniel, Paris 1987

# From Michael Deckers (2020-06-11):
# the law of 1891 
# was published on 1891-03-15, so it could only take force on 1891-03-16.

# From Michael Deckers (2020-06-10):
# Le Gaulois, 1911-03-11, page 1/6, online at
# https://www.retronews.fr/societe/echo-de-presse/2018/01/29/1911-change-lheure-de-paris
# ... [ Instantly, all pressure driven clock dials halted...  Nine minutes and
#       twenty-one seconds later the hands resumed their circular motion. ]
# There are also precise reports about how the change was prepared in train
# stations: all the publicly visible clocks stopped at midnight railway time
# (or were covered), only the chief of service had a watch, labeled
# "Heure ancienne", that he kept running until it reached 00:04:21, when
# he announced "Heure nouvelle".  See the "Le Petit Journal 1911-03-11".
# https://gallica.bnf.fr/ark:/12148/bpt6k6192911/f1.item.zoom
#
# From Michael Deckers (2020-06-12):
# That "all French clocks stopped" for 00:09:21 is a misreading of French
# newspapers; this sort of adjustment applies only to certain
# remote-controlled clocks ("pendules pneumatiques", of which there existed
# perhaps a dozen in Paris, and which simply could not be set back remotely),
# but not to all the clocks in all French towns and villages.  For instance,
# the following story in the "Courrier de Saône-et-Loire" 1911-03-11, page 2:
# only works if legal time was stepped back (was not monotone): ...
#   [One can observe that children who had been born at midnight less 5
#    minutes and who had died at midnight of the old time, would turn out to
#    be dead before being born, time having been set back and having
#    suppressed 9 minutes and 25 seconds of their existence, that is, more
#    than they could spend.]
#
# From Paul Eggert (2020-06-12):
# French time in railway stations was legally five minutes behind civil time,
# which explains why railway "old time" ran to 00:04:21 instead of to 00:09:21.
# The law's text (which Michael Deckers noted is at
# ) says only that
# at 1911-03-11 00:00 legal time was that of Paris mean time delayed by
# nine minutes and twenty-one seconds, and does not say how the
# transition from Paris mean time was to occur.
#
# tzdb has no way to represent stopped clocks.  As the railway practice
# was to keep a watch running on "old time" to decide when to restart
# the other clocks, this could be modeled as a transition for "old time" at
# 00:09:21.  However, since the law was ambiguous and clocks outside railway
# stations were probably done haphazardly with the popular impression being
# that the transition was done at 00:00 "old time", simply leave the time
# blank; this causes zic to default to 00:00 "old time" which is good enough.
# Do something similar for the 1891-03-16 transition.  There are similar
# problems in Algiers, Monaco and Tunis.

#
# Shank & Pottenger seem to use '24:00' ambiguously; resolve it with Whitman.
# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	France	1916	only	-	Jun	14	23:00s	1:00	S
Rule	France	1916	1919	-	Oct	Sun>=1	23:00s	0	-
Rule	France	1917	only	-	Mar	24	23:00s	1:00	S
Rule	France	1918	only	-	Mar	 9	23:00s	1:00	S
Rule	France	1919	only	-	Mar	 1	23:00s	1:00	S
Rule	France	1920	only	-	Feb	14	23:00s	1:00	S
Rule	France	1920	only	-	Oct	23	23:00s	0	-
Rule	France	1921	only	-	Mar	14	23:00s	1:00	S
Rule	France	1921	only	-	Oct	25	23:00s	0	-
Rule	France	1922	only	-	Mar	25	23:00s	1:00	S
# DSH writes that a law of 1923-05-24 specified 3rd Sat in Apr at 23:00 to 1st
# Sat in Oct at 24:00; and that in 1930, because of Easter, the transitions
# were Apr 12 and Oct 5.  Go with Shanks & Pottenger.
Rule	France	1922	1938	-	Oct	Sat>=1	23:00s	0	-
Rule	France	1923	only	-	May	26	23:00s	1:00	S
Rule	France	1924	only	-	Mar	29	23:00s	1:00	S
Rule	France	1925	only	-	Apr	 4	23:00s	1:00	S
Rule	France	1926	only	-	Apr	17	23:00s	1:00	S
Rule	France	1927	only	-	Apr	 9	23:00s	1:00	S
Rule	France	1928	only	-	Apr	14	23:00s	1:00	S
Rule	France	1929	only	-	Apr	20	23:00s	1:00	S
Rule	France	1930	only	-	Apr	12	23:00s	1:00	S
Rule	France	1931	only	-	Apr	18	23:00s	1:00	S
Rule	France	1932	only	-	Apr	 2	23:00s	1:00	S
Rule	France	1933	only	-	Mar	25	23:00s	1:00	S
Rule	France	1934	only	-	Apr	 7	23:00s	1:00	S
Rule	France	1935	only	-	Mar	30	23:00s	1:00	S
Rule	France	1936	only	-	Apr	18	23:00s	1:00	S
Rule	France	1937	only	-	Apr	 3	23:00s	1:00	S
Rule	France	1938	only	-	Mar	26	23:00s	1:00	S
Rule	France	1939	only	-	Apr	15	23:00s	1:00	S
Rule	France	1939	only	-	Nov	18	23:00s	0	-
Rule	France	1940	only	-	Feb	25	 2:00	1:00	S
# The French rules for 1941-1944 were not used in Paris, but Shanks & Pottenger
# write that they were used in Monaco and in many French locations.
# Le Corre writes that the upper limit of the free zone was Arnéguy, Orthez,
# Mont-de-Marsan, Bazas, Langon, Lamothe-Montravel, Marœuil, La
# Rochefoucauld, Champagne-Mouton, La Roche-Posay, La Haye-Descartes,
# Loches, Montrichard, Vierzon, Bourges, Moulins, Digoin,
# Paray-le-Monial, Montceau-les-Mines, Chalon-sur-Saône, Arbois,
# Dole, Morez, St-Claude, and Collonges (Haute-Savoie).
Rule	France	1941	only	-	May	 5	 0:00	2:00	M # Midsummer
# Shanks & Pottenger say this transition occurred at Oct 6 1:00,
# but go with Denis Excoffier (1997-12-12),
# who quotes the Ephémérides astronomiques for 1998 from Bureau des Longitudes
# as saying 5/10/41 22hUT.
Rule	France	1941	only	-	Oct	 6	 0:00	1:00	S
Rule	France	1942	only	-	Mar	 9	 0:00	2:00	M
Rule	France	1942	only	-	Nov	 2	 3:00	1:00	S
Rule	France	1943	only	-	Mar	29	 2:00	2:00	M
Rule	France	1943	only	-	Oct	 4	 3:00	1:00	S
Rule	France	1944	only	-	Apr	 3	 2:00	2:00	M
Rule	France	1944	only	-	Oct	 8	 1:00	1:00	S
Rule	France	1945	only	-	Apr	 2	 2:00	2:00	M
Rule	France	1945	only	-	Sep	16	 3:00	0	-
# Shanks & Pottenger give Mar 28 2:00 and Sep 26 3:00;
# go with Excoffier's 28/3/76 0hUT and 25/9/76 23hUT.
Rule	France	1976	only	-	Mar	28	 1:00	1:00	S
Rule	France	1976	only	-	Sep	26	 1:00	0	-
# Howse writes that the time in France was officially based
# on PMT-0:09:21 until 1978-08-09, when the time base finally switched to UTC.
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Paris	0:09:21 -	LMT	1891 Mar 16
			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
# Shanks & Pottenger give 1940 Jun 14 0:00; go with Excoffier and Le Corre.
			0:00	France	WE%sT	1940 Jun 14 23:00
# Le Corre says Paris stuck with occupied-France time after the liberation;
# go with Shanks & Pottenger.
			1:00	C-Eur	CE%sT	1944 Aug 25
			0:00	France	WE%sT	1945 Sep 16  3:00
			1:00	France	CE%sT	1977
			1:00	EU	CE%sT
Link Europe/Paris Europe/Monaco

# Germany

# From Markus Kuhn (1998-09-29):
# The German time zone web site by the Physikalisch-Technische
# Bundesanstalt contains DST information back to 1916.
# [See tz-link.html for the URL.]

# From Jörg Schilling (2002-10-23):
# In 1945, Berlin was switched to Moscow Summer time (GMT+4) by
# https://www.dhm.de/lemo/html/biografien/BersarinNikolai/
# General [Nikolai] Bersarin.

# From Paul Eggert (2003-03-08):
# http://www.parlament-berlin.de/pds-fraktion.nsf/727459127c8b66ee8525662300459099/defc77cb784f180ac1256c2b0030274b/$FILE/bersarint.pdf
# says that Bersarin issued an order to use Moscow time on May 20.
# However, Moscow did not observe daylight saving in 1945, so
# this was equivalent to UT +03, not +04.


# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	Germany	1946	only	-	Apr	14	2:00s	1:00	S
Rule	Germany	1946	only	-	Oct	 7	2:00s	0	-
Rule	Germany	1947	1949	-	Oct	Sun>=1	2:00s	0	-
# http://www.ptb.de/de/org/4/44/441/salt.htm says the following transition
# occurred at 3:00 MEZ, not the 2:00 MEZ given in Shanks & Pottenger.
# Go with the PTB.
Rule	Germany	1947	only	-	Apr	 6	3:00s	1:00	S
Rule	Germany	1947	only	-	May	11	2:00s	2:00	M
Rule	Germany	1947	only	-	Jun	29	3:00	1:00	S
Rule	Germany	1948	only	-	Apr	18	2:00s	1:00	S
Rule	Germany	1949	only	-	Apr	10	2:00s	1:00	S

Rule SovietZone	1945	only	-	May	24	2:00	2:00	M # Midsummer
Rule SovietZone	1945	only	-	Sep	24	3:00	1:00	S
Rule SovietZone	1945	only	-	Nov	18	2:00s	0	-

# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Berlin	0:53:28 -	LMT	1893 Apr
			1:00	C-Eur	CE%sT	1945 May 24  2:00
			1:00 SovietZone	CE%sT	1946
			1:00	Germany	CE%sT	1980
			1:00	EU	CE%sT
Link Europe/Berlin Arctic/Longyearbyen
Link Europe/Berlin Europe/Copenhagen
Link Europe/Berlin Europe/Oslo
Link Europe/Berlin Europe/Stockholm


# Georgia
# Please see the "asia" file for Asia/Tbilisi.
# Herodotus (Histories, IV.45) says Georgia north of the Phasis (now Rioni)
# is in Europe.  Our reference location Tbilisi is in the Asian part.

# Gibraltar
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone Europe/Gibraltar	-0:21:24 -	LMT	1880 Aug  2
			0:00	GB-Eire	%s	1957 Apr 14  2:00
			1:00	-	CET	1982
			1:00	EU	CE%sT

# Greece
# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
# Whitman gives 1932 Jul 5 - Nov 1; go with Shanks & Pottenger.
Rule	Greece	1932	only	-	Jul	 7	0:00	1:00	S
Rule	Greece	1932	only	-	Sep	 1	0:00	0	-
# Whitman gives 1941 Apr 25 - ?; go with Shanks & Pottenger.
Rule	Greece	1941	only	-	Apr	 7	0:00	1:00	S
# Whitman gives 1942 Feb 2 - ?; go with Shanks & Pottenger.
Rule	Greece	1942	only	-	Nov	 2	3:00	0	-
Rule	Greece	1943	only	-	Mar	30	0:00	1:00	S
Rule	Greece	1943	only	-	Oct	 4	0:00	0	-
# Whitman gives 1944 Oct 3 - Oct 31; go with Shanks & Pottenger.
Rule	Greece	1952	only	-	Jul	 1	0:00	1:00	S
Rule	Greece	1952	only	-	Nov	 2	0:00	0	-
Rule	Greece	1975	only	-	Apr	12	0:00s	1:00	S
Rule	Greece	1975	only	-	Nov	26	0:00s	0	-
Rule	Greece	1976	only	-	Apr	11	2:00s	1:00	S
Rule	Greece	1976	only	-	Oct	10	2:00s	0	-
Rule	Greece	1977	1978	-	Apr	Sun>=1	2:00s	1:00	S
Rule	Greece	1977	only	-	Sep	26	2:00s	0	-
Rule	Greece	1978	only	-	Sep	24	4:00	0	-
Rule	Greece	1979	only	-	Apr	 1	9:00	1:00	S
Rule	Greece	1979	only	-	Sep	29	2:00	0	-
Rule	Greece	1980	only	-	Apr	 1	0:00	1:00	S
Rule	Greece	1980	only	-	Sep	28	0:00	0	-
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Athens	1:34:52 -	LMT	1895 Sep 14
			1:34:52	-	AMT	1916 Jul 28  0:01 # Athens MT
			2:00	Greece	EE%sT	1941 Apr 30
			1:00	Greece	CE%sT	1944 Apr  4
			2:00	Greece	EE%sT	1981
			# Shanks & Pottenger say it switched to C-Eur in 1981;
			# go with EU rules instead, since Greece joined Jan 1.
			2:00	EU	EE%sT

# Hungary

# From Michael Deckers (2020-06-09):
# an Austrian encyclopedia of railroads of 1913, online at
# http://www.zeno.org/Roell-1912/A/Eisenbahnzeit
# says that the switch [to CET] happened on 1890-11-01.

# From Géza Nyáry (2020-06-07):
# Data for 1918-1983 are based on the archive database of Library Hungaricana.
# The dates are collected from original, scanned governmental orders,
# bulletins, instructions and public press.
# [See URLs below.]

# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
# https://library.hungaricana.hu/hu/view/OGYK_RT_1918/?pg=238
# https://library.hungaricana.hu/hu/view/OGYK_RT_1919/?pg=808
# https://library.hungaricana.hu/hu/view/OGYK_RT_1920/?pg=201
Rule	Hungary	1918	1919	-	Apr	15	 2:00	1:00	S
Rule	Hungary	1918	1920	-	Sep	Mon>=15	 3:00	0	-
Rule	Hungary	1920	only	-	Apr	 5	 2:00	1:00	S
# https://library.hungaricana.hu/hu/view/OGYK_RT_1945/?pg=882
Rule	Hungary	1945	only	-	May	 1	23:00	1:00	S
Rule	Hungary	1945	only	-	Nov	 1	 1:00	0	-
# https://library.hungaricana.hu/hu/view/Delmagyarorszag_1946_03/?pg=49
Rule	Hungary	1946	only	-	Mar	31	 2:00s	1:00	S
# https://library.hungaricana.hu/hu/view/Delmagyarorszag_1946_09/?pg=54
Rule	Hungary	1946	only	-	Oct	 7	 2:00	0	-
# https://library.hungaricana.hu/hu/view/KulfBelfHirek_1947_04_1__001-123/?pg=90
# https://library.hungaricana.hu/hu/view/DunantuliNaplo_1947_09/?pg=128
# https://library.hungaricana.hu/hu/view/KulfBelfHirek_1948_03_3__001-123/?pg=304
# https://library.hungaricana.hu/hu/view/Zala_1948_09/?pg=64
# https://library.hungaricana.hu/hu/view/SatoraljaujhelyiLeveltar_ZempleniNepujsag_1948/?pg=53
# https://library.hungaricana.hu/hu/view/SatoraljaujhelyiLeveltar_ZempleniNepujsag_1948/?pg=160
# https://library.hungaricana.hu/hu/view/UjSzo_1949_01-04/?pg=102
# https://library.hungaricana.hu/hu/view/KeletMagyarorszag_1949_03/?pg=96
# https://library.hungaricana.hu/hu/view/Delmagyarorszag_1949_09/?pg=94
Rule	Hungary	1947	1949	-	Apr	Sun>=4	 2:00s	1:00	S
Rule	Hungary	1947	1949	-	Oct	Sun>=1	 2:00s	0	-
# https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1954/?pg=513
Rule	Hungary	1954	only	-	May	23	 0:00	1:00	S
Rule	Hungary	1954	only	-	Oct	 3	 0:00	0	-
# https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1955/?pg=398
Rule	Hungary	1955	only	-	May	22	 2:00	1:00	S
Rule	Hungary	1955	only	-	Oct	 2	 3:00	0	-
# https://library.hungaricana.hu/hu/view/HevesMegyeiNepujsag_1956_06/?pg=0
# https://library.hungaricana.hu/hu/view/EszakMagyarorszag_1956_06/?pg=6
# https://library.hungaricana.hu/hu/view/SzolnokMegyeiNeplap_1957_04/?pg=120
# https://library.hungaricana.hu/hu/view/PestMegyeiHirlap_1957_09/?pg=143
Rule	Hungary	1956	1957	-	Jun	Sun>=1	 2:00	1:00	S
Rule	Hungary	1956	1957	-	Sep	lastSun	 3:00	0	-
# https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1980/?pg=189
Rule	Hungary	1980	only	-	Apr	 6	 0:00	1:00	S
Rule	Hungary	1980	only	-	Sep	28	 1:00	0	-
# https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1980/?pg=1227
# https://library.hungaricana.hu/hu/view/Delmagyarorszag_1981_01/?pg=79
# https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1982/?pg=115
# https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1983/?pg=85
Rule	Hungary	1981	1983	-	Mar	lastSun	 0:00	1:00	S
Rule	Hungary	1981	1983	-	Sep	lastSun	 1:00	0	-
#
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Budapest	1:16:20 -	LMT	1890 Nov  1
			1:00	C-Eur	CE%sT	1918
# https://library.hungaricana.hu/hu/view/OGYK_RT_1941/?pg=1204
# https://library.hungaricana.hu/hu/view/OGYK_RT_1942/?pg=3955
			1:00	Hungary	CE%sT	1941 Apr  7 23:00
			1:00	C-Eur	CE%sT	1945
			1:00	Hungary	CE%sT	1984
			1:00	EU	CE%sT

# Iceland
# See Africa/Abidjan.

# Italy
#
# From Paul Eggert (2001-03-06):
# Sicily and Sardinia each had their own time zones from 1866 to 1893,
# called Palermo Time (+00:53:28) and Cagliari Time (+00:36:32).
# During World War II, German-controlled Italy used German time.
# But these events all occurred before the 1970 cutoff,
# so record only the time in Rome.
#
# From Stephen Trainor (2019-05-06):
# http://www.ac-ilsestante.it/MERIDIANE/ora_legale/ORA_LEGALE_ESTIVA_IN_ITALIA.htm
# ... the [1866] law went into effect on 12 December 1866, rather than
# the date of the decree (22 Sep 1866)
# https://web.archive.org/web/20070824155341/http://www.iav.it/planetario/didastro/didastro/english.htm
# ... "In Italy in 1866 there were 6 railway times (Torino, Verona, Firenze,
# Roma, Napoli, Palermo). On that year it was decided to unify them, adopting
# the average time of Rome (even if this city was not yet part of the
# kingdom).  On the 12th December 1866, on the starting of the winter time
# table, it took effect in the railways, the post office and the telegraph,
# not only for the internal service but also for the public....  Milano set
# the public watches on the Rome time on the same day (12th December 1866),
# Torino and Bologna on the 1st January 1867, Venezia the 1st May 1880 and the
# last city was Cagliari in 1886."
#
# From Luigi Rosa (2019-05-07):
# this is the scan of the decree:
# http://www.radiomarconi.com/marconi/filopanti/1866c.jpg
#
# From Michael Deckers (2016-10-24):
# http://www.ac-ilsestante.it/MERIDIANE/ora_legale quotes a law of 1893-08-10
# ... [translated as] "The preceding dispositions will enter into
# force at the instant at which, according to the time specified in
# the 1st article, the 1st of November 1893 will begin...."
#
# From Pierpaolo Bernardi (2016-10-20):
# The authoritative source for time in Italy is the national metrological
# institute, which has a summary page of historical DST data at
# http://www.inrim.it/res/tf/ora_legale_i.shtml
# [now at http://oldsite.inrim.it/res/tf/ora_legale_i.shtml as of 2017]
# (2016-10-24):
# http://www.renzobaldini.it/le-ore-legali-in-italia/
# has still different data for 1944.  It divides Italy in two, as
# there were effectively two governments at the time, north of Gothic
# Line German controlled territory, official government RSI, and south
# of the Gothic Line, controlled by allied armies.
#
# From Brian Inglis (2016-10-23):
# Viceregal LEGISLATIVE DECREE. 14 September 1944, no. 219.
# Restoration of Standard Time. (044U0219) (OJ 62 of 30.9.1944) ...
# Given the R. law decreed on 1944-03-29, no. 92, by which standard time is
# advanced to sixty minutes later starting at hour two on 1944-04-02; ...
# Starting at hour three on the date 1944-09-17 standard time will be resumed.
#
# From Alois Treindl (2019-07-02):
# I spent 6 Euros to buy two archive copies of Il Messaggero, a Roman paper,
# for 1 and 2 April 1944.  The edition of 2 April has this note: "Tonight at 2
# am, put forward the clock by one hour.  Remember that in the night between
# today and Monday the 'ora legale' will come in force again."  That makes it
# clear that in Rome the change was on Monday, 3 April 1944 at 2 am.
#
# From Paul Eggert (2021-10-05):
# Go with INRiM for DST rules, except as corrected by Inglis for 1944
# for the Kingdom of Italy.  This is consistent with Renzo Baldini.
# Model Rome's occupation by using C-Eur rules from 1943-09-10
# to 1944-06-04; although Rome was an open city during this period, it
# was effectively controlled by Germany.  Using C-Eur is consistent
# with Treindl's comment about Rome in April 1944, as the "Rule Italy"
# lines during German occupation do not affect Europe/Rome
# (though they do affect Europe/Malta).
#
# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	Italy	1916	only	-	Jun	 3	24:00	1:00	S
Rule	Italy	1916	1917	-	Sep	30	24:00	0	-
Rule	Italy	1917	only	-	Mar	31	24:00	1:00	S
Rule	Italy	1918	only	-	Mar	 9	24:00	1:00	S
Rule	Italy	1918	only	-	Oct	 6	24:00	0	-
Rule	Italy	1919	only	-	Mar	 1	24:00	1:00	S
Rule	Italy	1919	only	-	Oct	 4	24:00	0	-
Rule	Italy	1920	only	-	Mar	20	24:00	1:00	S
Rule	Italy	1920	only	-	Sep	18	24:00	0	-
Rule	Italy	1940	only	-	Jun	14	24:00	1:00	S
Rule	Italy	1942	only	-	Nov	 2	 2:00s	0	-
Rule	Italy	1943	only	-	Mar	29	 2:00s	1:00	S
Rule	Italy	1943	only	-	Oct	 4	 2:00s	0	-
Rule	Italy	1944	only	-	Apr	 2	 2:00s	1:00	S
Rule	Italy	1944	only	-	Sep	17	 2:00s	0	-
Rule	Italy	1945	only	-	Apr	 2	 2:00	1:00	S
Rule	Italy	1945	only	-	Sep	15	 1:00	0	-
Rule	Italy	1946	only	-	Mar	17	 2:00s	1:00	S
Rule	Italy	1946	only	-	Oct	 6	 2:00s	0	-
Rule	Italy	1947	only	-	Mar	16	 0:00s	1:00	S
Rule	Italy	1947	only	-	Oct	 5	 0:00s	0	-
Rule	Italy	1948	only	-	Feb	29	 2:00s	1:00	S
Rule	Italy	1948	only	-	Oct	 3	 2:00s	0	-
Rule	Italy	1966	1968	-	May	Sun>=22	 0:00s	1:00	S
Rule	Italy	1966	only	-	Sep	24	24:00	0	-
Rule	Italy	1967	1969	-	Sep	Sun>=22	 0:00s	0	-
Rule	Italy	1969	only	-	Jun	 1	 0:00s	1:00	S
Rule	Italy	1970	only	-	May	31	 0:00s	1:00	S
Rule	Italy	1970	only	-	Sep	lastSun	 0:00s	0	-
Rule	Italy	1971	1972	-	May	Sun>=22	 0:00s	1:00	S
Rule	Italy	1971	only	-	Sep	lastSun	 0:00s	0	-
Rule	Italy	1972	only	-	Oct	 1	 0:00s	0	-
Rule	Italy	1973	only	-	Jun	 3	 0:00s	1:00	S
Rule	Italy	1973	1974	-	Sep	lastSun	 0:00s	0	-
Rule	Italy	1974	only	-	May	26	 0:00s	1:00	S
Rule	Italy	1975	only	-	Jun	 1	 0:00s	1:00	S
Rule	Italy	1975	1977	-	Sep	lastSun	 0:00s	0	-
Rule	Italy	1976	only	-	May	30	 0:00s	1:00	S
Rule	Italy	1977	1979	-	May	Sun>=22	 0:00s	1:00	S
Rule	Italy	1978	only	-	Oct	 1	 0:00s	0	-
Rule	Italy	1979	only	-	Sep	30	 0:00s	0	-
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Rome	0:49:56 -	LMT	1866 Dec 12
			0:49:56	-	RMT	1893 Oct 31 23:00u # Rome Mean
			1:00	Italy	CE%sT	1943 Sep 10
			1:00	C-Eur	CE%sT	1944 Jun  4
			1:00	Italy	CE%sT	1980
			1:00	EU	CE%sT
Link Europe/Rome Europe/Vatican
Link Europe/Rome Europe/San_Marino


# Kosovo
# See Europe/Belgrade.


# Latvia

# From Liene Kanepe (1998-09-17):

# I asked about this matter Scientific Secretary of the Institute of Astronomy
# of The University of Latvia Dr. paed Mr. Ilgonis Vilks. I also searched the
# correct data in juridical acts and I found some juridical documents about
# changes in the counting of time in Latvia from 1981....
#
# Act No. 35 of the Council of Ministers of Latvian SSR of 1981-01-22 ...
# according to the Act No. 925 of the Council of Ministers of USSR of 1980-10-24
# ...: all year round the time of 2nd time zone + 1 hour, in addition turning
# the hands of the clock 1 hour forward on 1 April at 00:00 (GMT 31 March 21:00)
# and 1 hour backward on the 1 October at 00:00 (GMT 30 September 20:00).
#
# Act No. 592 of the Council of Ministers of Latvian SSR of 1984-09-24 ...
# according to the Act No. 967 of the Council of Ministers of USSR of 1984-09-13
# ...: all year round the time of 2nd time zone + 1 hour, in addition turning
# the hands of the clock 1 hour forward on the last Sunday of March at 02:00
# (GMT 23:00 on the previous day) and 1 hour backward on the last Sunday of
# September at 03:00 (GMT 23:00 on the previous day).
#
# Act No. 81 of the Council of Ministers of Latvian SSR of 1989-03-22 ...
# according to the Act No. 227 of the Council of Ministers of USSR of 1989-03-14
# ...: since the last Sunday of March 1989 in Lithuanian SSR, Latvian SSR,
# Estonian SSR and Kaliningrad region of Russian Federation all year round the
# time of 2nd time zone (Moscow time minus one hour). On the territory of Latvia
# transition to summer time is performed on the last Sunday of March at 02:00
# (GMT 00:00), turning the hands of the clock 1 hour forward.  The end of
# daylight saving time is performed on the last Sunday of September at 03:00
# (GMT 00:00), turning the hands of the clock 1 hour backward. Exception is
# 1989-03-26, when we must not turn the hands of the clock....
#
# The Regulations of the Cabinet of Ministers of the Republic of Latvia of
# 1997-01-21 on transition to Summer time ... established the same order of
# daylight savings time settings as in the States of the European Union.

# From Andrei Ivanov (2000-03-06):
# This year Latvia will not switch to Daylight Savings Time (as specified in
# The Regulations of the Cabinet of Ministers of the Rep. of Latvia of
# 29-Feb-2000 (No. 79) ,
# in Latvian for subscribers only).

# From RFE/RL Newsline
# http://www.rferl.org/newsline/2001/01/3-CEE/cee-030101.html
# (2001-01-03), noted after a heads-up by Rives McDow:
# The Latvian government on 2 January decided that the country will
# institute daylight-saving time this spring, LETA reported.
# Last February the three Baltic states decided not to turn back their
# clocks one hour in the spring....
# Minister of Economy Aigars Kalvītis noted that Latvia had too few
# daylight hours and thus decided to comply with a draft European
# Commission directive that provides for instituting daylight-saving
# time in EU countries between 2002 and 2006. The Latvian government
# urged Lithuania and Estonia to adopt a similar time policy, but it
# appears that they will not do so....

# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	Latvia	1989	1996	-	Mar	lastSun	 2:00s	1:00	S
Rule	Latvia	1989	1996	-	Sep	lastSun	 2:00s	0	-

# Milne 1899 says Riga was 1:36:28 (Polytechnique House time).
# Byalokoz 1919 says Latvia was 1:36:34.
# Go with Byalokoz.

# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Riga	1:36:34	-	LMT	1880
			1:36:34	-	RMT	1918 Apr 15  2:00 # Riga MT
			1:36:34	1:00	LST	1918 Sep 16  3:00 # Latvian ST
			1:36:34	-	RMT	1919 Apr  1  2:00
			1:36:34	1:00	LST	1919 May 22  3:00
			1:36:34	-	RMT	1926 May 11
			2:00	-	EET	1940 Aug  5
			3:00	-	MSK	1941 Jul
			1:00	C-Eur	CE%sT	1944 Oct 13
			3:00	Russia	MSK/MSD	1989 Mar lastSun  2:00s
			2:00	1:00	EEST	1989 Sep lastSun  2:00s
			2:00	Latvia	EE%sT	1997 Jan 21
			2:00	EU	EE%sT	2000 Feb 29
			2:00	-	EET	2001 Jan  2
			2:00	EU	EE%sT

# Liechtenstein
# See Europe/Zurich.


# Lithuania

# From Paul Eggert (2016-03-18):
# The 1989 transition is from USSR act No. 227 (1989-03-14).

# From Paul Eggert (1996-11-22):
# IATA SSIM (1992/1996) says Lithuania uses W-Eur rules, but since it is
# known to be wrong about Estonia and Latvia, assume it's wrong here too.

# From Marius Gedminas (1998-08-07):
# I would like to inform that in this year Lithuanian time zone
# (Europe/Vilnius) was changed.

# From ELTA No. 972 (2582) (1999-09-29) ,
# via Steffen Thorsen:
# Lithuania has shifted back to the second time zone (GMT plus two hours)
# to be valid here starting from October 31,
# as decided by the national government on Wednesday....
# The Lithuanian government also announced plans to consider a
# motion to give up shifting to summer time in spring, as it was
# already done by Estonia.

# From the Fact File, Lithuanian State Department of Tourism
#  (2000-03-27):
# Local time is GMT+2 hours ..., no daylight saving.

# From a user via Klaus Marten (2003-02-07):
# As a candidate for membership of the European Union, Lithuania will
# observe Summer Time in 2003, changing its clocks at the times laid
# down in EU Directive 2000/84 of 19.I.01 (i.e. at the same times as its
# neighbour Latvia). The text of the Lithuanian government Order of
# 7.XI.02 to this effect can be found at
# http://www.lrvk.lt/nut/11/n1749.htm


# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Vilnius	1:41:16	-	LMT	1880
			1:24:00	-	WMT	1917        # Warsaw Mean Time
			1:35:36	-	KMT	1919 Oct 10 # Kaunas Mean Time
			1:00	-	CET	1920 Jul 12
			2:00	-	EET	1920 Oct  9
			1:00	-	CET	1940 Aug  3
			3:00	-	MSK	1941 Jun 24
			1:00	C-Eur	CE%sT	1944 Aug
			3:00	Russia	MSK/MSD	1989 Mar 26  2:00s
			2:00	Russia	EE%sT	1991 Sep 29  2:00s
			2:00	C-Eur	EE%sT	1998
			2:00	-	EET	1998 Mar 29  1:00u
			1:00	EU	CE%sT	1999 Oct 31  1:00u
			2:00	-	EET	2003 Jan  1
			2:00	EU	EE%sT

# Luxembourg
# See Europe/Brussels.

# North Macedonia
# See Europe/Belgrade.

# Malta
#
# From Paul Eggert (2016-10-21):
# Assume 1900-1972 was like Rome, overriding Shanks.
#
# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	Malta	1973	only	-	Mar	31	0:00s	1:00	S
Rule	Malta	1973	only	-	Sep	29	0:00s	0	-
Rule	Malta	1974	only	-	Apr	21	0:00s	1:00	S
Rule	Malta	1974	only	-	Sep	16	0:00s	0	-
Rule	Malta	1975	1979	-	Apr	Sun>=15	2:00	1:00	S
Rule	Malta	1975	1980	-	Sep	Sun>=15	2:00	0	-
Rule	Malta	1980	only	-	Mar	31	2:00	1:00	S
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Malta	0:58:04 -	LMT	1893 Nov  2 # Valletta
			1:00	Italy	CE%sT	1973 Mar 31
			1:00	Malta	CE%sT	1981
			1:00	EU	CE%sT

# Moldova

# From Stepan Golosunov (2016-03-07):
# the act of the government of the Republic of Moldova Nr. 132 from 1990-05-04
# http://lex.justice.md/viewdoc.php?action=view&view=doc&id=298782&lang=2
# ... says that since 1990-05-06 on the territory of the Moldavian SSR
# time would be calculated as the standard time of the second time belt
# plus one hour of the "summer" time. To implement that clocks would be
# adjusted one hour backwards at 1990-05-06 2:00. After that "summer"
# time would be cancelled last Sunday of September at 3:00 and
# reintroduced last Sunday of March at 2:00.

# From Paul Eggert (2006-03-22):
# A previous version of this database followed Shanks & Pottenger, who write
# that Tiraspol switched to Moscow time on 1992-01-19 at 02:00.
# However, this is most likely an error, as Moldova declared independence
# on 1991-08-27 (the 1992-01-19 date is that of a Russian decree).
# In early 1992 there was large-scale interethnic violence in the area
# and it's possible that some Russophones continued to observe Moscow time.
# But [two people] separately reported via
# Jesper Nørgaard that as of 2001-01-24 Tiraspol was like Chisinau.
# The Tiraspol entry has therefore been removed for now.
#
# From Alexander Krivenyshev (2011-10-17):
# Pridnestrovian Moldavian Republic (PMR, also known as
# "Pridnestrovie") has abolished seasonal clock change (no transition
# to the Winter Time).
#
# News (in Russian):
# http://www.kyivpost.ua/russia/news/pridnestrove-otkazalos-ot-perehoda-na-zimnee-vremya-30954.html
# http://www.allmoldova.com/moldova-news/1249064116.html
#
# The substance of this change (reinstatement of the Tiraspol entry)
# is from a patch from Petr Machata (2011-10-17)
#
# From Tim Parenti (2011-10-19)
# In addition, being situated at +4651+2938 would give Tiraspol
# a pre-1880 LMT offset of 1:58:32.
#
# (which agrees with the earlier entry that had been removed)
#
# From Alexander Krivenyshev (2011-10-26)
# NO need to divide Moldova into two timezones at this point.
# As of today, Transnistria (Pridnestrovie)- Tiraspol reversed its own
# decision to abolish DST this winter.
# Following Moldova and neighboring Ukraine- Transnistria (Pridnestrovie)-
# Tiraspol will go back to winter time on October 30, 2011.
# News from Moldova (in russian):
# https://ru.publika.md/link_317061.html

# From Roman Tudos (2015-07-02):
# http://lex.justice.md/index.php?action=view&view=doc&lang=1&id=355077
# From Paul Eggert (2015-07-01):
# The abovementioned official link to IGO1445-868/2014 states that
# 2014-10-26's fallback transition occurred at 03:00 local time.  Also,
# https://www.trm.md/en/social/la-30-martie-vom-trece-la-ora-de-vara
# says the 2014-03-30 spring-forward transition was at 02:00 local time.
# Guess that since 1997 Moldova has switched one hour before the EU.

# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	Moldova	1997	max	-	Mar	lastSun	 2:00	1:00	S
Rule	Moldova	1997	max	-	Oct	lastSun	 3:00	0	-

# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Chisinau	1:55:20 -	LMT	1880
			1:55	-	CMT	1918 Feb 15 # Chisinau MT
			1:44:24	-	BMT	1931 Jul 24 # Bucharest MT
			2:00	Romania	EE%sT	1940 Aug 15
			2:00	1:00	EEST	1941 Jul 17
			1:00	C-Eur	CE%sT	1944 Aug 24
			3:00	Russia	MSK/MSD	1990 May  6  2:00
			2:00	Russia	EE%sT	1992
			2:00	E-Eur	EE%sT	1997
# See Romania commentary for the guessed 1997 transition to EU rules.
			2:00	Moldova	EE%sT

# Monaco
# See Europe/Paris.

# Montenegro
# See Europe/Belgrade.

# Netherlands
# See Europe/Brussels.

# Norway
# See Europe/Berlin.

# Svalbard & Jan Mayen

# From Steffen Thorsen (2001-05-01):
# Although I could not find it explicitly, it seems that Jan Mayen and
# Svalbard have been using the same time as Norway at least since the
# time they were declared as parts of Norway.  Svalbard was declared
# as a part of Norway by law of 1925-07-17 no 11, section 4 and Jan
# Mayen by law of 1930-02-27 no 2, section 2. (From
#  and
# ).  The law/regulation
# for normal/standard time in Norway is from 1894-06-29 no 1 (came
# into operation on 1895-01-01) and Svalbard/Jan Mayen seem to be a
# part of this law since 1925/1930. (From
# ) I have not been
# able to find if Jan Mayen used a different time zone (e.g. -0100)
# before 1930. Jan Mayen has only been "inhabited" since 1921 by
# Norwegian meteorologists and maybe used the same time as Norway ever
# since 1921.  Svalbard (Arctic/Longyearbyen) has been inhabited since
# before 1895, and therefore probably changed the local time somewhere
# between 1895 and 1925 (inclusive).

# From Paul Eggert (2013-09-04):
#
# Actually, Jan Mayen was never occupied by Germany during World War II,
# so it must have diverged from Oslo time during the war, as Oslo was
# keeping Berlin time.
#
#  says that the meteorologists
# burned down their station in 1940 and left the island, but returned in
# 1941 with a small Norwegian garrison and continued operations despite
# frequent air attacks from Germans.  In 1943 the Americans established a
# radiolocating station on the island, called "Atlantic City".  Possibly
# the UT offset changed during the war, but I think it unlikely that
# Jan Mayen used German daylight-saving rules.
#
# Svalbard is more complicated, as it was raided in August 1941 by an
# Allied party that evacuated the civilian population to England (says
# ).  The Svalbard FAQ
#  says that the Germans were
# expelled on 1942-05-14.  However, small parties of Germans did return,
# and according to Wilhelm Dege's book "War North of 80" (1954)
# http://www.ucalgary.ca/UofC/departments/UP/1-55238/1-55238-110-2.html
# the German armed forces at the Svalbard weather station code-named
# Haudegen did not surrender to the Allies until September 1945.
#
# All these events predate our cutoff date of 1970, so use Europe/Berlin
# for these regions.


# Poland

# The 1919 dates and times can be found in Tygodnik Urzędowy nr 1 (1919-03-20),
#  pp 1-2.

# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	Poland	1918	1919	-	Sep	16	2:00s	0	-
Rule	Poland	1919	only	-	Apr	15	2:00s	1:00	S
Rule	Poland	1944	only	-	Apr	 3	2:00s	1:00	S
# Whitman gives 1944 Nov 30; go with Shanks & Pottenger.
Rule	Poland	1944	only	-	Oct	 4	2:00	0	-
# For 1944-1948 Whitman gives the previous day; go with Shanks & Pottenger.
Rule	Poland	1945	only	-	Apr	29	0:00	1:00	S
Rule	Poland	1945	only	-	Nov	 1	0:00	0	-
# For 1946 on the source is Kazimierz Borkowski,
# Toruń Center for Astronomy, Dept. of Radio Astronomy, Nicolaus Copernicus U.,
# https://www.astro.uni.torun.pl/~kb/Artykuly/U-PA/Czas2.htm#tth_tAb1
# Thanks to Przemysław Augustyniak (2005-05-28) for this reference.
# He also gives these further references:
# Mon Pol nr 13, poz 162 (1995) 
# Druk nr 2180 (2003) 
Rule	Poland	1946	only	-	Apr	14	0:00s	1:00	S
Rule	Poland	1946	only	-	Oct	 7	2:00s	0	-
Rule	Poland	1947	only	-	May	 4	2:00s	1:00	S
Rule	Poland	1947	1949	-	Oct	Sun>=1	2:00s	0	-
Rule	Poland	1948	only	-	Apr	18	2:00s	1:00	S
Rule	Poland	1949	only	-	Apr	10	2:00s	1:00	S
Rule	Poland	1957	only	-	Jun	 2	1:00s	1:00	S
Rule	Poland	1957	1958	-	Sep	lastSun	1:00s	0	-
Rule	Poland	1958	only	-	Mar	30	1:00s	1:00	S
Rule	Poland	1959	only	-	May	31	1:00s	1:00	S
Rule	Poland	1959	1961	-	Oct	Sun>=1	1:00s	0	-
Rule	Poland	1960	only	-	Apr	 3	1:00s	1:00	S
Rule	Poland	1961	1964	-	May	lastSun	1:00s	1:00	S
Rule	Poland	1962	1964	-	Sep	lastSun	1:00s	0	-
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Warsaw	1:24:00 -	LMT	1880
			1:24:00	-	WMT	1915 Aug  5 # Warsaw Mean Time
			1:00	C-Eur	CE%sT	1918 Sep 16  3:00
			2:00	Poland	EE%sT	1922 Jun
			1:00	Poland	CE%sT	1940 Jun 23  2:00
			1:00	C-Eur	CE%sT	1944 Oct
			1:00	Poland	CE%sT	1977
			1:00	W-Eur	CE%sT	1988
			1:00	EU	CE%sT

# Portugal

# From Paul Eggert (2014-08-11), after a heads-up from Stephen Colebourne:
# According to a Portuguese decree (1911-05-26)
# https://dre.pt/application/dir/pdf1sdip/1911/05/12500/23132313.pdf
# Lisbon was at -0:36:44.68, but switched to GMT on 1912-01-01 at 00:00.
#
# From Michael Deckers (2018-02-15):
# article 5 [of the 1911 decree; Deckers's translation] ...:
# These dispositions shall enter into force at the instant at which,
# according to the 2nd article, the civil day January 1, 1912 begins,
# all clocks therefore having to be advanced or set back correspondingly ...

# From Rui Pedro Salgueiro (1992-11-12):
# Portugal has recently (September, 27) changed timezone
# (from WET to MET or CET) to harmonize with EEC.
#
# Martin Bruckmann (1996-02-29) reports via Peter Ilieve
# that Portugal is reverting to 0:00 by not moving its clocks this spring.
# The new Prime Minister was fed up with getting up in the dark in the winter.
#
# From Paul Eggert (1996-11-12):
# IATA SSIM (1991-09) reports several 1991-09 and 1992-09 transitions
# at 02:00u, not 01:00u.  Assume that these are typos.
# IATA SSIM (1991/1992) reports that the Azores were at -1:00.
# IATA SSIM (1993-02) says +0:00; later issues (through 1996-09) say -1:00.
# Guess that the Azores changed to EU rules in 1992 (since that's when Portugal
# harmonized with EU rules), and that they stayed +0:00 that winter.
#
# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
# DSH writes that despite Decree 1,469 (1915), the change to the clocks was not
# done every year, depending on what Spain did, because of railroad schedules.
# Go with Shanks & Pottenger.
Rule	Port	1916	only	-	Jun	17	23:00	1:00	S
# Whitman gives 1916 Oct 31; go with Shanks & Pottenger.
Rule	Port	1916	only	-	Nov	 1	 1:00	0	-
Rule	Port	1917	only	-	Feb	28	23:00s	1:00	S
Rule	Port	1917	1921	-	Oct	14	23:00s	0	-
Rule	Port	1918	only	-	Mar	 1	23:00s	1:00	S
Rule	Port	1919	only	-	Feb	28	23:00s	1:00	S
Rule	Port	1920	only	-	Feb	29	23:00s	1:00	S
Rule	Port	1921	only	-	Feb	28	23:00s	1:00	S
Rule	Port	1924	only	-	Apr	16	23:00s	1:00	S
Rule	Port	1924	only	-	Oct	14	23:00s	0	-
Rule	Port	1926	only	-	Apr	17	23:00s	1:00	S
Rule	Port	1926	1929	-	Oct	Sat>=1	23:00s	0	-
Rule	Port	1927	only	-	Apr	 9	23:00s	1:00	S
Rule	Port	1928	only	-	Apr	14	23:00s	1:00	S
Rule	Port	1929	only	-	Apr	20	23:00s	1:00	S
Rule	Port	1931	only	-	Apr	18	23:00s	1:00	S
# Whitman gives 1931 Oct 8; go with Shanks & Pottenger.
Rule	Port	1931	1932	-	Oct	Sat>=1	23:00s	0	-
Rule	Port	1932	only	-	Apr	 2	23:00s	1:00	S
Rule	Port	1934	only	-	Apr	 7	23:00s	1:00	S
# Whitman gives 1934 Oct 5; go with Shanks & Pottenger.
Rule	Port	1934	1938	-	Oct	Sat>=1	23:00s	0	-
# Shanks & Pottenger give 1935 Apr 30; go with Whitman.
Rule	Port	1935	only	-	Mar	30	23:00s	1:00	S
Rule	Port	1936	only	-	Apr	18	23:00s	1:00	S
# Whitman gives 1937 Apr 2; go with Shanks & Pottenger.
Rule	Port	1937	only	-	Apr	 3	23:00s	1:00	S
Rule	Port	1938	only	-	Mar	26	23:00s	1:00	S
Rule	Port	1939	only	-	Apr	15	23:00s	1:00	S
# Whitman gives 1939 Oct 7; go with Shanks & Pottenger.
Rule	Port	1939	only	-	Nov	18	23:00s	0	-
Rule	Port	1940	only	-	Feb	24	23:00s	1:00	S
# Shanks & Pottenger give 1940 Oct 7; go with Whitman.
Rule	Port	1940	1941	-	Oct	 5	23:00s	0	-
Rule	Port	1941	only	-	Apr	 5	23:00s	1:00	S
Rule	Port	1942	1945	-	Mar	Sat>=8	23:00s	1:00	S
Rule	Port	1942	only	-	Apr	25	22:00s	2:00	M # Midsummer
Rule	Port	1942	only	-	Aug	15	22:00s	1:00	S
Rule	Port	1942	1945	-	Oct	Sat>=24	23:00s	0	-
Rule	Port	1943	only	-	Apr	17	22:00s	2:00	M
Rule	Port	1943	1945	-	Aug	Sat>=25	22:00s	1:00	S
Rule	Port	1944	1945	-	Apr	Sat>=21	22:00s	2:00	M
Rule	Port	1946	only	-	Apr	Sat>=1	23:00s	1:00	S
Rule	Port	1946	only	-	Oct	Sat>=1	23:00s	0	-
# Whitman says DST was not observed in 1950; go with Shanks & Pottenger.
# Whitman gives Oct lastSun for 1952 on; go with Shanks & Pottenger.
Rule	Port	1947	1965	-	Apr	Sun>=1	 2:00s	1:00	S
Rule	Port	1947	1965	-	Oct	Sun>=1	 2:00s	0	-
Rule	Port	1977	only	-	Mar	27	 0:00s	1:00	S
Rule	Port	1977	only	-	Sep	25	 0:00s	0	-
Rule	Port	1978	1979	-	Apr	Sun>=1	 0:00s	1:00	S
Rule	Port	1978	only	-	Oct	 1	 0:00s	0	-
Rule	Port	1979	1982	-	Sep	lastSun	 1:00s	0	-
Rule	Port	1980	only	-	Mar	lastSun	 0:00s	1:00	S
Rule	Port	1981	1982	-	Mar	lastSun	 1:00s	1:00	S
Rule	Port	1983	only	-	Mar	lastSun	 2:00s	1:00	S
#
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
		#STDOFF	-0:36:44.68
Zone	Europe/Lisbon	-0:36:45 -	LMT	1884
			-0:36:45 -	LMT	1912 Jan  1  0:00u # Lisbon MT
			 0:00	Port	WE%sT	1966 Apr  3  2:00
			 1:00	-	CET	1976 Sep 26  1:00
			 0:00	Port	WE%sT	1983 Sep 25  1:00s
			 0:00	W-Eur	WE%sT	1992 Sep 27  1:00s
			 1:00	EU	CE%sT	1996 Mar 31  1:00u
			 0:00	EU	WE%sT
Zone Atlantic/Azores	-1:42:40 -	LMT	1884        # Ponta Delgada
			-1:54:32 -	HMT	1912 Jan  1  2:00u # Horta MT
# Vanguard section, for zic and other parsers that support %z.
#			-2:00	Port	%z	1966 Apr  3  2:00
#			-1:00	Port	%z	1983 Sep 25  1:00s
#			-1:00	W-Eur	%z	1992 Sep 27  1:00s
# Rearguard section, for parsers lacking %z; see ziguard.awk.
			-2:00	Port	-02/-01	1942 Apr 25 22:00s
			-2:00	Port	+00	1942 Aug 15 22:00s
			-2:00	Port	-02/-01	1943 Apr 17 22:00s
			-2:00	Port	+00	1943 Aug 28 22:00s
			-2:00	Port	-02/-01	1944 Apr 22 22:00s
			-2:00	Port	+00	1944 Aug 26 22:00s
			-2:00	Port	-02/-01	1945 Apr 21 22:00s
			-2:00	Port	+00	1945 Aug 25 22:00s
			-2:00	Port	-02/-01	1966 Apr  3  2:00
			-1:00	Port	-01/+00	1983 Sep 25  1:00s
			-1:00	W-Eur	-01/+00	1992 Sep 27  1:00s
# End of rearguard section.
			 0:00	EU	WE%sT	1993 Mar 28  1:00u
			-1:00	EU	-01/+00
Zone Atlantic/Madeira	-1:07:36 -	LMT	1884        # Funchal
			-1:07:36 -	FMT	1912 Jan  1  1:00u # Funchal MT
# Vanguard section, for zic and other parsers that support %z.
#			-1:00	Port	%z	1966 Apr  3  2:00
# Rearguard section, for parsers lacking %z; see ziguard.awk.
			-1:00	Port	-01/+00	1942 Apr 25 22:00s
			-1:00	Port	+01	1942 Aug 15 22:00s
			-1:00	Port	-01/+00	1943 Apr 17 22:00s
			-1:00	Port	+01	1943 Aug 28 22:00s
			-1:00	Port	-01/+00	1944 Apr 22 22:00s
			-1:00	Port	+01	1944 Aug 26 22:00s
			-1:00	Port	-01/+00	1945 Apr 21 22:00s
			-1:00	Port	+01	1945 Aug 25 22:00s
			-1:00	Port	-01/+00	1966 Apr  3  2:00
# End of rearguard section.
			 0:00	Port	WE%sT	1983 Sep 25  1:00s
			 0:00	EU	WE%sT

# Romania
#
# From Paul Eggert (1999-10-07):
# Nine O'clock 
# (1998-10-23) reports that the switch occurred at
# 04:00 local time in fall 1998.  For lack of better info,
# assume that Romania and Moldova switched to EU rules in 1997,
# the same year as Bulgaria.
#
# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	Romania	1932	only	-	May	21	 0:00s	1:00	S
Rule	Romania	1932	1939	-	Oct	Sun>=1	 0:00s	0	-
Rule	Romania	1933	1939	-	Apr	Sun>=2	 0:00s	1:00	S
Rule	Romania	1979	only	-	May	27	 0:00	1:00	S
Rule	Romania	1979	only	-	Sep	lastSun	 0:00	0	-
Rule	Romania	1980	only	-	Apr	 5	23:00	1:00	S
Rule	Romania	1980	only	-	Sep	lastSun	 1:00	0	-
Rule	Romania	1991	1993	-	Mar	lastSun	 0:00s	1:00	S
Rule	Romania	1991	1993	-	Sep	lastSun	 0:00s	0	-
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone Europe/Bucharest	1:44:24 -	LMT	1891 Oct
			1:44:24	-	BMT	1931 Jul 24 # Bucharest MT
			2:00	Romania	EE%sT	1981 Mar 29  2:00s
			2:00	C-Eur	EE%sT	1991
			2:00	Romania	EE%sT	1994
			2:00	E-Eur	EE%sT	1997
			2:00	EU	EE%sT


# Russia

# From Alexander Krivenyshev (2011-09-15):
# Based on last Russian Government Decree No. 725 on August 31, 2011
# (Government document
# http://www.government.ru/gov/results/16355/print/
# in Russian)
# there are few corrections have to be made for some Russian time zones...
# All updated Russian Time Zones were placed in table and translated to English
# by WorldTimeZone.com at the link below:
# http://www.worldtimezone.com/dst_news/dst_news_russia36.htm

# From Sanjeev Gupta (2011-09-27):
# Scans of [Decree No. 23 of January 8, 1992] are available at:
# http://government.consultant.ru/page.aspx?1223966
# They are in Cyrillic letters (presumably Russian).

# From Arthur David Olson (2012-05-09):
# Regarding the instant when clocks in time-zone-shifting parts of Russia
# changed in September 2011:
#
# One source is
# http://government.ru/gov/results/16355/
# which, according to translate.google.com, begins "Decree of August 31,
# 2011 No. 725" and contains no other dates or "effective date" information.
#
# Another source is
# https://rg.ru/2011/09/06/chas-zona-dok.html
# which, according to translate.google.com, begins "Resolution of the
# Government of the Russian Federation on August 31, 2011 N 725" and also
# contains "Date first official publication: September 6, 2011 Posted on:
# in the 'RG' - Federal Issue No. 5573 September 6, 2011" but which
# does not contain any "effective date" information.
#
# Another source is
# https://en.wikipedia.org/wiki/Oymyakonsky_District#cite_note-RuTime-7
# which, in note 8, contains "Resolution No. 725 of August 31, 2011...
# Effective as of after 7 days following the day of the official publication"
# but which does not contain any reference to September 6, 2011.
#
# The Wikipedia article refers to
# http://base.consultant.ru/cons/cgi/online.cgi?req=doc;base=LAW;n=118896
# which seems to copy the text of the government.ru page.
#
# Tobias Conradi combines Wikipedia's
# "as of after 7 days following the day of the official publication"
# with www.rg.ru's "Date of first official publication: September 6, 2011" to
# get September 13, 2011 as the cutover date (unusually, a Tuesday, as Tobias
# Conradi notes).
#
# None of the sources indicates a time of day for changing clocks.
#
# Go with 2011-09-13 0:00s.

# From Alexander Krivenyshev (2014-07-01):
# According to the Russian news (ITAR-TASS News Agency)
# http://en.itar-tass.com/russia/738562
# the State Duma has approved ... the draft bill on returning to
# winter time standard and return Russia 11 time zones.  The new
# regulations will come into effect on October 26, 2014 at 02:00 ...
# http://asozd2.duma.gov.ru/main.nsf/%28Spravka%29?OpenAgent&RN=431985-6&02
# Here is a link where we put together table (based on approved Bill N
# 431985-6) with proposed 11 Russian time zones and corresponding
# areas/cities/administrative centers in the Russian Federation (in English):
# http://www.worldtimezone.com/dst_news/dst_news_russia65.html
#
# From Alexander Krivenyshev (2014-07-22):
# Putin signed the Federal Law 431985-6 ... (in Russian)
# http://itar-tass.com/obschestvo/1333711
# http://www.pravo.gov.ru:8080/page.aspx?111660
# http://www.kremlin.ru/acts/46279
# From October 26, 2014 the new Russian time zone map will look like this:
# http://www.worldtimezone.com/dst_news/dst_news_russia-map-2014-07.html

# From Paul Eggert (2006-03-22):
# Moscow time zone abbreviations after 1919-07-01, and Moscow rules after 1991,
# are from Andrey A. Chernov.  The rest is from Shanks & Pottenger,
# except we follow Chernov's report that 1992 DST transitions were Sat
# 23:00, not Sun 02:00s.
#
# From Stanislaw A. Kuzikowski (1994-06-29):
# But now it is some months since Novosibirsk is 3 hours ahead of Moscow!
# I do not know why they have decided to make this change;
# as far as I remember it was done exactly during winter->summer switching
# so we (Novosibirsk) simply did not switch.
#
# From Andrey A. Chernov (1996-10-04):
# 'MSK' and 'MSD' were born and used initially on Moscow computers with
# UNIX-like OSes by several developer groups (e.g. Demos group, Kiae group)....
# The next step was the UUCP network, the Relcom predecessor
# (used mainly for mail), and MSK/MSD was actively used there.
#
# From Chris Carrier (1996-10-30):
# According to a friend of mine who rode the Trans-Siberian Railroad from
# Moscow to Irkutsk in 1995, public air and rail transport in Russia ...
# still follows Moscow time, no matter where in Russia it is located.
#
# For Grozny, Chechnya, we have the following story from
# John Daniszewski, "Scavengers in the Rubble", Los Angeles Times (2001-02-07):
# News - often false - is spread by word of mouth.  A rumor that it was
# time to move the clocks back put this whole city out of sync with
# the rest of Russia for two weeks - even soldiers stationed here began
# enforcing curfew at the wrong time.
#
# From Gwillim Law (2001-06-05):
# There's considerable evidence that Sakhalin Island used to be in
# UTC+11, and has changed to UTC+10, in this decade.  I start with the
# SSIM, which listed Yuzhno-Sakhalinsk in zone RU10 along with Magadan
# until February 1997, and then in RU9 with Khabarovsk and Vladivostok
# since September 1997....  Although the Kuril Islands are
# administratively part of Sakhalin oblast', they appear to have
# remained on UTC+11 along with Magadan.

# From Marat Nigametzianov (2018-07-16):
# this is link to order from 1956 about timezone in USSR
# http://astro.uni-altai.ru/~orion/blog/2011/11/novyie-granitsyi-chasovyih-poyasov-v-sssr/
#
# From Paul Eggert (2018-07-16):
# Perhaps someone could translate the above-mentioned link and use it
# to correct our data for the ex-Soviet Union.  It cites the following:
# «Поясное время и новые границы часовых поясов» / сост. П.Н. Долгов,
# отв. ред. Г.Д. Бурдун - М: Комитет стандартов, мер и измерительных
# приборов при Совете Министров СССР, Междуведомственная комиссия
# единой службы времени, 1956 г.
# This book looks like it would be a helpful resource for the Soviet
# Union through 1956.  Although a copy was in the Scientific Library
# of Tomsk State University, I have not been able to track down a copy nearby.
#
# From Stepan Golosunov (2018-07-21):
# http://astro.uni-altai.ru/~orion/blog/2015/05/center-reforma-ischisleniya-vremeni-br-na-territorii-sssr-v-1957-godu-center/
# says that the 1956 decision to change time belts' borders was not
# implemented as planned in 1956 and the change happened in 1957.
# There is also the problem that actual time zones were different from
# the official time belts (and from many time belts' maps) as there were
# numerous exceptions to application of time belt rules.  For example,
# https://ru.wikipedia.org/wiki/Московское_время#Перемещение_границы_применения_московского_времени_на_восток
# says that by 1962 there were many regions in the 3rd time belt that
# were on Moscow time, referring to a 1962 map.  By 1989 number of such
# exceptions grew considerably.

# From Tim Parenti (2014-07-06):
# The comments detailing the coverage of each Russian zone are meant to assist
# with maintenance only and represent our best guesses as to which regions
# are covered by each zone.  They are not meant to be taken as an authoritative
# listing.  The region codes listed come from
# https://en.wikipedia.org/w/?title=Federal_subjects_of_Russia&oldid=611810498
# and are used for convenience only; no guarantees are made regarding their
# future stability.  ISO 3166-2:RU codes are also listed for first-level
# divisions where available.

# From Tim Parenti (2014-07-03):
# Europe/Kaliningrad covers...
# 39	RU-KGD	Kaliningrad Oblast

# From Paul Eggert (2019-07-25):
# Although Shanks lists 1945-01-01 as the date for transition from
# +01/+02 to +02/+03, more likely this is a placeholder.  Guess that
# the transition occurred at 1945-04-10 00:00, which is about when
# Königsberg surrendered to Soviet troops.  (Thanks to Alois Treindl.)

# From Paul Eggert (2016-03-18):
# The 1989 transition is from USSR act No. 227 (1989-03-14).

# From Stepan Golosunov (2016-03-07):
# http://www.rgo.ru/ru/kaliningradskoe-oblastnoe-otdelenie/ob-otdelenii/publikacii/kak-nam-zhilos-bez-letnego-vremeni
# confirms that the 1989 change to Moscow-1 was implemented.
# (The article, though, is misattributed to 1990 while saying that
# summer->winter transition would be done on the 24 of September. But
# 1990-09-24 was Monday, while 1989-09-24 was Sunday as expected.)
# ...
# http://www.kaliningradka.ru/site_pc/cherez/index.php?ELEMENT_ID=40091
# says that Kaliningrad switched to Moscow-1 on 1989-03-26, avoided
# at the last moment switch to Moscow-1 on 1991-03-31, switched to
# Moscow on 1991-11-03, switched to Moscow-1 on 1992-01-19.

Zone Europe/Kaliningrad	 1:22:00 -	LMT	1893 Apr
			 1:00	C-Eur	CE%sT	1945 Apr 10
			 2:00	Poland	EE%sT	1946 Apr  7
			 3:00	Russia	MSK/MSD	1989 Mar 26  2:00s
			 2:00	Russia	EE%sT	2011 Mar 27  2:00s
			 3:00	-	+03	2014 Oct 26  2:00s
			 2:00	-	EET


# From Paul Eggert (2016-02-21), per Tim Parenti (2014-07-03) and
# Oscar van Vlijmen (2001-08-25):
# Europe/Moscow covers...
# 01	RU-AD	Adygea, Republic of
# 05	RU-DA	Dagestan, Republic of
# 06	RU-IN	Ingushetia, Republic of
# 07	RU-KB	Kabardino-Balkar Republic
# 08	RU-KL	Kalmykia, Republic of
# 09	RU-KC	Karachay-Cherkess Republic
# 10	RU-KR	Karelia, Republic of
# 11	RU-KO	Komi Republic
# 12	RU-ME	Mari El Republic
# 13	RU-MO	Mordovia, Republic of
# 15	RU-SE	North Ossetia-Alania, Republic of
# 16	RU-TA	Tatarstan, Republic of
# 20	RU-CE	Chechen Republic
# 21	RU-CU	Chuvash Republic
# 23	RU-KDA	Krasnodar Krai
# 26	RU-STA	Stavropol Krai
# 29	RU-ARK	Arkhangelsk Oblast
# 31	RU-BEL	Belgorod Oblast
# 32	RU-BRY	Bryansk Oblast
# 33	RU-VLA	Vladimir Oblast
# 35	RU-VLG	Vologda Oblast
# 36	RU-VOR	Voronezh Oblast
# 37	RU-IVA	Ivanovo Oblast
# 40	RU-KLU	Kaluga Oblast
# 44	RU-KOS	Kostroma Oblast
# 46	RU-KRS	Kursk Oblast
# 47	RU-LEN	Leningrad Oblast
# 48	RU-LIP	Lipetsk Oblast
# 50	RU-MOS	Moscow Oblast
# 51	RU-MUR	Murmansk Oblast
# 52	RU-NIZ	Nizhny Novgorod Oblast
# 53	RU-NGR	Novgorod Oblast
# 57	RU-ORL	Oryol Oblast
# 58	RU-PNZ	Penza Oblast
# 60	RU-PSK	Pskov Oblast
# 61	RU-ROS	Rostov Oblast
# 62	RU-RYA	Ryazan Oblast
# 67	RU-SMO	Smolensk Oblast
# 68	RU-TAM	Tambov Oblast
# 69	RU-TVE	Tver Oblast
# 71	RU-TUL	Tula Oblast
# 76	RU-YAR	Yaroslavl Oblast
# 77	RU-MOW	Moscow
# 78	RU-SPE	Saint Petersburg
# 83	RU-NEN	Nenets Autonomous Okrug

# From Paul Eggert (2016-08-23):
# The Soviets switched to UT-based time in 1919.  Decree No. 59
# (1919-02-08) http://istmat.info/node/35567 established UT-based time
# zones, and Decree No. 147 (1919-03-29) http://istmat.info/node/35854
# specified a transition date of 1919-07-01, apparently at 00:00 UT.
# No doubt only the Soviet-controlled regions switched on that date;
# later transitions to UT-based time in other parts of Russia are
# taken from what appear to be guesses by Shanks.
# (Thanks to Alexander Belopolsky for pointers to the decrees.)

# From Stepan Golosunov (2016-03-07):
# 11. Regions-violators, 1981-1982.
# Wikipedia refers to
# http://maps.monetonos.ru/maps/raznoe/Old_Maps/Old_Maps/Articles/022/3_1981.html
# http://besp.narod.ru/nauka_1981_3.htm
#
# The second link provides two articles scanned from the Nauka i Zhizn
# magazine No. 3, 1981 and a scan of the short article attributed to
# the Trud newspaper from February 1982.  The first link provides the
# same Nauka i Zhizn articles converted to the text form (but misses
# time belt changes map).
#
# The second Nauka i Zhizn article says that in addition to
# introduction of summer time on 1981-04-01 there are some time belt
# border changes on 1981-10-01, mostly affecting Nenets Autonomous
# Okrug, Krasnoyarsk Krai, Yakutia, Magadan Oblast and Chukotka
# according to the provided map (colored one).  In addition to that
# "time violators" (regions which were not using rules of the time
# belts in which they were located) would not be moving off the DST on
# 1981-10-01 to restore the decree time usage.  (Komi ASSR was
# supposed to repeat that move in October 1982 to account for the 2
# hour difference.)  Map depicting "time violators" before 1981-10-01
# is also provided.
#
# The article from Trud says that 1981-10-01 changes caused problems
# and some territories would be moved to pre-1981-10-01 time by not
# moving to summer time on 1982-04-01.  Namely: Dagestan,
# Kabardino-Balkar, Kalmyk, Komi, Mari, Mordovian, North Ossetian,
# Tatar, Chechen-Ingush and Chuvash ASSR, Krasnodar and Stavropol
# krais, Arkhangelsk, Vladimir, Vologda, Voronezh, Gorky, Ivanovo,
# Kostroma, Lipetsk, Penza, Rostov, Ryazan, Tambov, Tyumen and
# Yaroslavl oblasts, Nenets and Evenk autonomous okrugs, Khatangsky
# district of Taymyr Autonomous Okrug.  As a result Evenk Autonomous
# Okrug and Khatangsky district of Taymyr Autonomous Okrug would end
# up on Moscow+4, Tyumen Oblast on Moscow+2 and the rest on Moscow
# time.
#
# http://astrozet.net/files/Zones/DOC/RU/1980-925.txt
# attributes the 1982 changes to the Act of the Council of Ministers
# of the USSR No. 126 from 18.02.1982.  1980-925.txt also adds
# Udmurtia to the list of affected territories and lists Khatangsky
# district separately from Taymyr Autonomous Okrug.  Probably erroneously.
#
# The affected territories are currently listed under Europe/Moscow,
# Asia/Yekaterinburg and Asia/Krasnoyarsk.
#
# 12. Udmurtia
# The fact that Udmurtia is depicted as a violator in the Nauka i
# Zhizn article hints at Izhevsk being on different time from
# Kuybyshev before 1981-10-01. Udmurtia is not mentioned in the 1989 act.
# http://astrozet.net/files/Zones/DOC/RU/1980-925.txt
# implies Udmurtia was on Moscow time after 1982-04-01.
# Wikipedia implies Udmurtia being on Moscow+1 until 1991.
#
# ...
#
# All Russian zones are supposed to have by default a -1 change at
# 1991-03-31 2:00 (cancellation of the decree time in the USSR) and a +1
# change at 1992-01-19 2:00 (restoration of the decree time in Russia).
#
# There were some exceptions, though.
# Wikipedia says newspapers listed Astrakhan, Saratov, Kirov, Volgograd,
# Izhevsk, Grozny, Kazan and Samara as such exceptions for the 1992
# change. (Different newspapers providing different lists. And some
# lists found in the internet are quite wild.)
#
# And apparently some exceptions were reverted in the last moment.
# http://www.kaliningradka.ru/site_pc/cherez/index.php?ELEMENT_ID=40091
# says that Kaliningrad decided not to be an exception 2 days before the
# 1991-03-31 switch and one person at
# https://izhevsk.ru/forum_light_message/50/682597-m8369040.html
# says he remembers that Samara opted out of the 1992-01-19 exception
# 2 days before the switch.
#
# From Alois Treindl (2022-02-15):
# the Russian wikipedia page
# https://ru.wikipedia.org/wiki/Московское_время#Перемещение_границы_применения_московского_времени_на_восток
# contains the sentence (in Google translation) "In the autumn of
# 1981, Arkhangelsk, Vologda, Yaroslavl, Ivanovo, Vladimir, Ryazan,
# Lipetsk, Voronezh, Rostov-on-Don, Krasnodar and regions to the east
# of those named (about 30 in total) parted ways with Moscow time.
# However, the convenience of common time with Moscow turned out to be
# decisive - in 1982, these regions again switched to Moscow time."
# Shanks International atlas has similar information, and also the
# Russian book Zaitsev A., Kutalev D. A new astrologer's reference
# book. Coordinates of cities and time corrections, - The World of
# Urania, 2012 (Russian: Зайцев А., Куталёв Д., Новый справочник
# астролога. Координаты городов и временные поправки).
# To me it seems that an extra zone is needed, which starts with LMT
# util 1919, later follows Moscow since 1930, but deviates from it
# between 1 October 1981 until 1 April 1982.
#
#
# From Paul Eggert (2022-02-15):
# Given the above, we appear to be missing some Zone entries for the
# chaotic early 1980s in Russia.  It's not clear what these entries
# should be.  For now, sweep this under the rug and just document the
# time in Moscow.

# From Vladimir Karpinsky (2014-07-08):
# LMT in Moscow (before Jul 3, 1916) is 2:30:17, that was defined by Moscow
# Observatory (coordinates: 55° 45' 29.70", 37° 34' 05.30")....
# LMT in Moscow since Jul 3, 1916 is 2:31:01 as a result of new standard.
# (The info is from the book by Byalokoz ... p. 18.)
# The time in St. Petersburg as capital of Russia was defined by
# Pulkov observatory, near St. Petersburg.  In 1916 LMT Moscow
# was synchronized with LMT St. Petersburg (+30 minutes), (Pulkov observatory
# coordinates: 59° 46' 18.70", 30° 19' 40.70") so 30° 19' 40.70" >
# 2h01m18.7s = 2:01:19.  LMT Moscow = LMT St.Petersburg + 30m 2:01:19 + 0:30 =
# 2:31:19 ...
#
# From Paul Eggert (2014-07-08):
# Milne does not list Moscow, but suggests that its time might be listed in
# Résumés mensuels et annuels des observations météorologiques (1895).
# Presumably this is OCLC 85825704, a journal published with parallel text in
# Russian and French.  This source has not been located; go with Karpinsky.

Zone Europe/Moscow	 2:30:17 -	LMT	1880
			 2:30:17 -	MMT	1916 Jul  3 # Moscow Mean Time
			 2:31:19 Russia	%s	1919 Jul  1  0:00u
			 3:00	Russia	%s	1921 Oct
			 3:00	Russia	MSK/MSD	1922 Oct
			 2:00	-	EET	1930 Jun 21
			 3:00	Russia	MSK/MSD	1991 Mar 31  2:00s
			 2:00	Russia	EE%sT	1992 Jan 19  2:00s
			 3:00	Russia	MSK/MSD	2011 Mar 27  2:00s
			 4:00	-	MSK	2014 Oct 26  2:00s
			 3:00	-	MSK


# From Paul Eggert (2016-12-06):
# Europe/Simferopol covers Crimea.

Zone Europe/Simferopol	 2:16:24 -	LMT	1880
			 2:16	-	SMT	1924 May  2 # Simferopol Mean T
			 2:00	-	EET	1930 Jun 21
			 3:00	-	MSK	1941 Nov
			 1:00	C-Eur	CE%sT	1944 Apr 13
			 3:00	Russia	MSK/MSD	1990
			 3:00	-	MSK	1990 Jul  1  2:00
			 2:00	-	EET	1992 Mar 20
# Central Crimea used Moscow time 1994/1997.
#
# From Paul Eggert (2022-07-21):
# The _Economist_ (1994-05-28, p 45) reported that central Crimea switched
# from Kyiv to Moscow time sometime after the January 1994 elections.
# Shanks (1999) says "date of change uncertain", but implies that it happened
# sometime between the 1994 DST switches.  Shanks & Pottenger simply say
# 1994-09-25 03:00, but that can't be right.  For now, guess it
# changed in May.  This change evidently didn't last long; see below.
			 2:00	C-Eur	EE%sT	1994 May
# From IATA SSIM (1994/1997), which also said that Kerch is still like Kyiv.
			 3:00	C-Eur	MSK/MSD	1996 Mar 31  0:00s
			 3:00	1:00	MSD	1996 Oct 27  3:00s
# IATA SSIM (1997-09) said Crimea switched to EET/EEST.
# Assume it happened in March by not changing the clocks.
			 3:00	-	MSK	1997 Mar lastSun  1:00u
# From Alexander Krivenyshev (2014-03-17):
# time change at 2:00 (2am) on March 30, 2014
# https://vz.ru/news/2014/3/17/677464.html
# From Paul Eggert (2014-03-30):
# Simferopol and Sevastopol reportedly changed their central town clocks
# late the previous day, but this appears to have been ceremonial
# and the discrepancies are small enough to not worry about.
			 2:00	EU	EE%sT	2014 Mar 30  2:00
			 4:00	-	MSK	2014 Oct 26  2:00s
			 3:00	-	MSK


# From Paul Eggert (2016-03-18):
# Europe/Astrakhan covers:
# 30	RU-AST	Astrakhan Oblast
#
# The 1989 transition is from USSR act No. 227 (1989-03-14).

# From Alexander Krivenyshev (2016-01-12):
# On February 10, 2016 Astrakhan Oblast got approval by the Federation
# Council to change its time zone to UTC+4 (from current UTC+3 Moscow time)....
# This Federal Law shall enter into force on 27 March 2016 at 02:00.
# From Matt Johnson (2016-03-09):
# http://publication.pravo.gov.ru/Document/View/0001201602150056

Zone Europe/Astrakhan	 3:12:12 -	LMT	1924 May
			 3:00	-	+03	1930 Jun 21
			 4:00	Russia	+04/+05	1989 Mar 26  2:00s
			 3:00	Russia	+03/+04	1991 Mar 31  2:00s
			 4:00	-	+04	1992 Mar 29  2:00s
			 3:00	Russia	+03/+04	2011 Mar 27  2:00s
			 4:00	-	+04	2014 Oct 26  2:00s
			 3:00	-	+03	2016 Mar 27  2:00s
			 4:00	-	+04

# From Paul Eggert (2016-11-11):
# Europe/Volgograd covers:
# 34	RU-VGG	Volgograd Oblast
# The 1988 transition is from USSR act No. 5 (1988-01-04).

# From Alexander Fetisov (2018-09-20):
# Volgograd region in southern Russia (Europe/Volgograd) change
# timezone from UTC+3 to UTC+4 from 28oct2018.
# http://sozd.parliament.gov.ru/bill/452878-7
#
# From Stepan Golosunov (2018-10-11):
# The law has been published today on
# http://publication.pravo.gov.ru/Document/View/0001201810110037

# From Alexander Krivenyshev (2020-11-27):
# The State Duma approved (Nov 24, 2020) the transition of the Volgograd
# region to the Moscow time zone....
# https://sozd.duma.gov.ru/bill/1012130-7
#
# From Stepan Golosunov (2020-12-05):
# Currently proposed text for the second reading (expected on December 8) ...
# changes the date to December 27. https://v1.ru/text/gorod/2020/12/04/69601031/
#
# From Stepan Golosunov (2020-12-22):
# The law was published today on
# http://publication.pravo.gov.ru/Document/View/0001202012220002

Zone Europe/Volgograd	 2:57:40 -	LMT	1920 Jan  3
			 3:00	-	+03	1930 Jun 21
			 4:00	-	+04	1961 Nov 11
			 4:00	Russia	+04/+05	1988 Mar 27  2:00s
			 3:00	Russia	+03/+04	1991 Mar 31  2:00s
			 4:00	-	+04	1992 Mar 29  2:00s
			 3:00	Russia	+03/+04	2011 Mar 27  2:00s
			 4:00	-	+04	2014 Oct 26  2:00s
			 3:00	-	+03	2018 Oct 28  2:00s
			 4:00	-	+04	2020 Dec 27  2:00s
			 3:00	-	+03

# From Paul Eggert (2016-11-11):
# Europe/Saratov covers:
# 64	RU-SAR	Saratov Oblast

# From Yuri Konotopov (2016-11-11):
# Dec 4, 2016 02:00 UTC+3....  Saratov Region's local time will be ... UTC+4.
# From Stepan Golosunov (2016-11-11):
# ... Byalokoz listed Saratov on 03:04:18.
# From Stepan Golosunov (2016-11-22):
# http://publication.pravo.gov.ru/Document/View/0001201611220031

Zone Europe/Saratov	 3:04:18 -	LMT	1919 Jul  1  0:00u
			 3:00	-	+03	1930 Jun 21
			 4:00	Russia	+04/+05	1988 Mar 27  2:00s
			 3:00	Russia	+03/+04	1991 Mar 31  2:00s
			 4:00	-	+04	1992 Mar 29  2:00s
			 3:00	Russia	+03/+04	2011 Mar 27  2:00s
			 4:00	-	+04	2014 Oct 26  2:00s
			 3:00	-	+03	2016 Dec  4  2:00s
			 4:00	-	+04

# From Paul Eggert (2016-03-18):
# Europe/Kirov covers:
# 43	RU-KIR	Kirov Oblast
# The 1989 transition is from USSR act No. 227 (1989-03-14).
#
Zone Europe/Kirov	 3:18:48 -	LMT	1919 Jul  1  0:00u
			 3:00	-	+03	1930 Jun 21
			 4:00	Russia	+04/+05	1989 Mar 26  2:00s
			 3:00	Russia	+03/+04	1991 Mar 31  2:00s
			 4:00	-	+04	1992 Mar 29  2:00s
			 3:00	Russia	+03/+04	2011 Mar 27  2:00s
			 4:00	-	+04	2014 Oct 26  2:00s
			 3:00	-	+03

# From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25):
# Europe/Samara covers...
# 18	RU-UD	Udmurt Republic
# 63	RU-SAM	Samara Oblast

# From Paul Eggert (2016-03-18):
# Byalokoz 1919 says Samara was 3:20:20.
# The 1989 transition is from USSR act No. 227 (1989-03-14).

Zone Europe/Samara	 3:20:20 -	LMT	1919 Jul  1  0:00u
			 3:00	-	+03	1930 Jun 21
			 4:00	-	+04	1935 Jan 27
			 4:00	Russia	+04/+05	1989 Mar 26  2:00s
			 3:00	Russia	+03/+04	1991 Mar 31  2:00s
			 2:00	Russia	+02/+03	1991 Sep 29  2:00s
			 3:00	-	+03	1991 Oct 20  3:00
			 4:00	Russia	+04/+05	2010 Mar 28  2:00s
			 3:00	Russia	+03/+04	2011 Mar 27  2:00s
			 4:00	-	+04

# From Paul Eggert (2016-03-18):
# Europe/Ulyanovsk covers:
# 73	RU-ULY	Ulyanovsk Oblast

# The 1989 transition is from USSR act No. 227 (1989-03-14).

# From Alexander Krivenyshev (2016-02-17):
# Ulyanovsk ... on their way to change time zones by March 27, 2016 at 2am.
# Ulyanovsk Oblast ... from MSK to MSK+1 (UTC+3 to UTC+4) ...
# 920582-6 ... 02/17/2016 The State Duma passed the bill in the first reading.
# From Matt Johnson (2016-03-09):
# http://publication.pravo.gov.ru/Document/View/0001201603090051

Zone Europe/Ulyanovsk	 3:13:36 -	LMT	1919 Jul  1  0:00u
			 3:00	-	+03	1930 Jun 21
			 4:00	Russia	+04/+05	1989 Mar 26  2:00s
			 3:00	Russia	+03/+04	1991 Mar 31  2:00s
			 2:00	Russia	+02/+03	1992 Jan 19  2:00s
			 3:00	Russia	+03/+04	2011 Mar 27  2:00s
			 4:00	-	+04	2014 Oct 26  2:00s
			 3:00	-	+03	2016 Mar 27  2:00s
			 4:00	-	+04

# From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25):
# Asia/Yekaterinburg covers...
# 02	RU-BA	Bashkortostan, Republic of
# 90	RU-PER	Perm Krai
# 45	RU-KGN	Kurgan Oblast
# 56	RU-ORE	Orenburg Oblast
# 66	RU-SVE	Sverdlovsk Oblast
# 72	RU-TYU	Tyumen Oblast
# 74	RU-CHE	Chelyabinsk Oblast
# 86	RU-KHM	Khanty-Mansi Autonomous Okrug - Yugra
# 89	RU-YAN	Yamalo-Nenets Autonomous Okrug
#
# Note: Effective 2005-12-01, (59) Perm Oblast and (81) Komi-Permyak
# Autonomous Okrug merged to form (90, RU-PER) Perm Krai.

# Milne says Yekaterinburg was 4:02:32.9.
# Byalokoz 1919 says its provincial time was based on Perm, at 3:45:05.
# Assume it switched on 1916-07-03, the time of the new standard.
# The 1919 and 1930 transitions are from Shanks.

		#STDOFF	 4:02:32.9
Zone Asia/Yekaterinburg	 4:02:33 -	LMT	1916 Jul  3
			 3:45:05 -	PMT	1919 Jul 15  4:00
			 4:00	-	+04	1930 Jun 21
			 5:00	Russia	+05/+06	1991 Mar 31  2:00s
			 4:00	Russia	+04/+05	1992 Jan 19  2:00s
			 5:00	Russia	+05/+06	2011 Mar 27  2:00s
			 6:00	-	+06	2014 Oct 26  2:00s
			 5:00	-	+05


# From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25):
# Asia/Omsk covers...
# 55	RU-OMS	Omsk Oblast

# Byalokoz 1919 says Omsk was 4:53:30.

Zone Asia/Omsk		 4:53:30 -	LMT	1919 Nov 14
			 5:00	-	+05	1930 Jun 21
			 6:00	Russia	+06/+07	1991 Mar 31  2:00s
			 5:00	Russia	+05/+06	1992 Jan 19  2:00s
			 6:00	Russia	+06/+07	2011 Mar 27  2:00s
			 7:00	-	+07	2014 Oct 26  2:00s
			 6:00	-	+06

# From Paul Eggert (2016-02-22):
# Asia/Barnaul covers:
# 04	RU-AL	Altai Republic
# 22	RU-ALT	Altai Krai

# Data before 1991 are from Shanks & Pottenger.

# From Stepan Golosunov (2016-03-07):
# Letter of Bank of Russia from 1995-05-25
# http://www.bestpravo.ru/rossijskoje/lj-akty/y3a.htm
# suggests that Altai Republic transitioned to Moscow+3 on
# 1995-05-28.
#
# https://regnum.ru/news/society/1957270.html
# has some historical data for Altai Krai:
# before 1957: west part on UT+6, east on UT+7
# after 1957: UT+7
# since 1995: UT+6
# http://barnaul.rusplt.ru/index/pochemu_altajskij_kraj_okazalsja_v_neprivychnom_chasovom_pojase-17648.html
# confirms that and provides more details including 1995-05-28 transition date.

# From Alexander Krivenyshev (2016-02-17):
# Altai Krai and Altai Republic on their way to change time zones
# by March 27, 2016 at 2am....
# Altai Republic / Gorno-Altaysk MSK+3 to MSK+4 (UTC+6 to UTC+7) ...
# Altai Krai / Barnaul MSK+3 to MSK+4 (UTC+6 to UTC+7)
# From Matt Johnson (2016-03-09):
# http://publication.pravo.gov.ru/Document/View/0001201603090043
# http://publication.pravo.gov.ru/Document/View/0001201603090038

Zone Asia/Barnaul	 5:35:00 -	LMT	1919 Dec 10
			 6:00	-	+06	1930 Jun 21
			 7:00	Russia	+07/+08	1991 Mar 31  2:00s
			 6:00	Russia	+06/+07	1992 Jan 19  2:00s
			 7:00	Russia	+07/+08	1995 May 28
			 6:00	Russia	+06/+07	2011 Mar 27  2:00s
			 7:00	-	+07	2014 Oct 26  2:00s
			 6:00	-	+06	2016 Mar 27  2:00s
			 7:00	-	+07

# From Paul Eggert (2016-03-18):
# Asia/Novosibirsk covers:
# 54	RU-NVS	Novosibirsk Oblast

# From Stepan Golosunov (2016-05-30):
# http://asozd2.duma.gov.ru/main.nsf/(Spravka)?OpenAgent&RN=1085784-6
# moves Novosibirsk oblast from UTC+6 to UTC+7.
# From Stepan Golosunov (2016-07-04):
# The law was signed yesterday and published today on
# http://publication.pravo.gov.ru/Document/View/0001201607040064

Zone Asia/Novosibirsk	 5:31:40 -	LMT	1919 Dec 14  6:00
			 6:00	-	+06	1930 Jun 21
			 7:00	Russia	+07/+08	1991 Mar 31  2:00s
			 6:00	Russia	+06/+07	1992 Jan 19  2:00s
			 7:00	Russia	+07/+08	1993 May 23 # say Shanks & P.
			 6:00	Russia	+06/+07	2011 Mar 27  2:00s
			 7:00	-	+07	2014 Oct 26  2:00s
			 6:00	-	+06	2016 Jul 24  2:00s
			 7:00	-	+07

# From Paul Eggert (2016-03-18):
# Asia/Tomsk covers:
# 70	RU-TOM	Tomsk Oblast

# From Stepan Golosunov (2016-03-24):
# Byalokoz listed Tomsk at 5:39:51.

# From Stanislaw A. Kuzikowski (1994-06-29):
# Tomsk is still 4 hours ahead of Moscow.

# From Stepan Golosunov (2016-03-19):
# http://pravo.gov.ru/proxy/ips/?docbody=&nd=102075743
# (fifth time belt being UTC+5+1(decree time)
# / UTC+5+1(decree time)+1(summer time)) ...
# Note that time belts (numbered from 2 (Moscow) to 12 according to their
# GMT/UTC offset and having too many exceptions like regions formally
# belonging to one belt but using time from another) were replaced
# with time zones in 2011 with different numbering (there was a
# 2-hour gap between second and third zones in 2011-2014).

# From Stepan Golosunov (2016-04-12):
# http://asozd2.duma.gov.ru/main.nsf/(SpravkaNew)?OpenAgent&RN=1006865-6
# This bill was approved in the first reading today.  It moves Tomsk oblast
# from UTC+6 to UTC+7 and is supposed to come into effect on 2016-05-29 at
# 2:00.  The bill needs to be approved in the second and the third readings by
# the State Duma, approved by the Federation Council, signed by the President
# and published to become a law.  Minor changes in the text are to be expected
# before the second reading (references need to be updated to account for the
# recent changes).
#
# Judging by the ultra-short one-day amendments period, recent similar laws,
# the State Duma schedule and the Federation Council schedule
# http://www.duma.gov.ru/legislative/planning/day-shedule/por_vesna_2016/
# http://council.gov.ru/activity/meetings/schedule/63303
# I speculate that the final text of the bill will be proposed tomorrow, the
# bill will be approved in the second and the third readings on Friday,
# approved by the Federation Council on 2016-04-20, signed by the President and
# published as a law around 2016-04-26.

# From Matt Johnson (2016-04-26):
# http://publication.pravo.gov.ru/Document/View/0001201604260048

Zone	Asia/Tomsk	 5:39:51 -	LMT	1919 Dec 22
			 6:00	-	+06	1930 Jun 21
			 7:00	Russia	+07/+08	1991 Mar 31  2:00s
			 6:00	Russia	+06/+07	1992 Jan 19  2:00s
			 7:00	Russia	+07/+08	2002 May  1  3:00
			 6:00	Russia	+06/+07	2011 Mar 27  2:00s
			 7:00	-	+07	2014 Oct 26  2:00s
			 6:00	-	+06	2016 May 29  2:00s
			 7:00	-	+07


# From Tim Parenti (2014-07-03):
# Asia/Novokuznetsk covers...
# 42	RU-KEM	Kemerovo Oblast

# From Alexander Krivenyshev (2009-10-13):
# Kemerovo oblast' (Kemerovo region) in Russia will change current time zone on
# March 28, 2010:
# from current Russia Zone 6 - Krasnoyarsk Time Zone (KRA) UTC +0700
# to Russia Zone 5 - Novosibirsk Time Zone (NOV) UTC +0600
#
# This is according to Government of Russia decree No. 740, on September
# 14, 2009 "Application in the territory of the Kemerovo region the Fifth
# time zone." ("Russia Zone 5" or old "USSR Zone 5" is GMT +0600)
#
# Russian Government web site (Russian language)
# http://www.government.ru/content/governmentactivity/rfgovernmentdecisions/archive/2009/09/14/991633.htm
# or Russian-English translation by WorldTimeZone.com with reference
# map to local region and new Russia Time Zone map after March 28, 2010
# http://www.worldtimezone.com/dst_news/dst_news_russia03.html
#
# Thus, when Russia will switch to DST on the night of March 28, 2010
# Kemerovo region (Kemerovo oblast') will not change the clock.

# From Tim Parenti (2014-07-02), per Alexander Krivenyshev (2014-07-02):
# The Kemerovo region will remain at UTC+7 through the 2014-10-26 change, thus
# realigning itself with KRAT.

Zone Asia/Novokuznetsk	 5:48:48 -	LMT	1924 May  1
			 6:00	-	+06	1930 Jun 21
			 7:00	Russia	+07/+08	1991 Mar 31  2:00s
			 6:00	Russia	+06/+07	1992 Jan 19  2:00s
			 7:00	Russia	+07/+08	2010 Mar 28  2:00s
			 6:00	Russia	+06/+07	2011 Mar 27  2:00s
			 7:00	-	+07

# From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25):
# Asia/Krasnoyarsk covers...
# 17	RU-TY	Tuva Republic
# 19	RU-KK	Khakassia, Republic of
# 24	RU-KYA	Krasnoyarsk Krai
#
# Note: Effective 2007-01-01, (88) Evenk Autonomous Okrug and (84) Taymyr
# Autonomous Okrug were merged into (24, RU-KYA) Krasnoyarsk Krai.

# Byalokoz 1919 says Krasnoyarsk was 6:11:26.

Zone Asia/Krasnoyarsk	 6:11:26 -	LMT	1920 Jan  6
			 6:00	-	+06	1930 Jun 21
			 7:00	Russia	+07/+08	1991 Mar 31  2:00s
			 6:00	Russia	+06/+07	1992 Jan 19  2:00s
			 7:00	Russia	+07/+08	2011 Mar 27  2:00s
			 8:00	-	+08	2014 Oct 26  2:00s
			 7:00	-	+07


# From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25):
# Asia/Irkutsk covers...
# 03	RU-BU	Buryatia, Republic of
# 38	RU-IRK	Irkutsk Oblast
#
# Note: Effective 2008-01-01, (85) Ust-Orda Buryat Autonomous Okrug was
# merged into (38, RU-IRK) Irkutsk Oblast.

# Milne 1899 says Irkutsk was 6:57:15.
# Byalokoz 1919 says Irkutsk was 6:57:05.
# Go with Byalokoz.

Zone Asia/Irkutsk	 6:57:05 -	LMT	1880
			 6:57:05 -	IMT	1920 Jan 25 # Irkutsk Mean Time
			 7:00	-	+07	1930 Jun 21
			 8:00	Russia	+08/+09	1991 Mar 31  2:00s
			 7:00	Russia	+07/+08	1992 Jan 19  2:00s
			 8:00	Russia	+08/+09	2011 Mar 27  2:00s
			 9:00	-	+09	2014 Oct 26  2:00s
			 8:00	-	+08


# From Tim Parenti (2014-07-06):
# Asia/Chita covers...
# 92	RU-ZAB	Zabaykalsky Krai
#
# Note: Effective 2008-03-01, (75) Chita Oblast and (80) Agin-Buryat
# Autonomous Okrug merged to form (92, RU-ZAB) Zabaykalsky Krai.

# From Alexander Krivenyshev (2016-01-02):
# [The] time zone in the Trans-Baikal Territory (Zabaykalsky Krai) -
# Asia/Chita [is changing] from UTC+8 to UTC+9.  Effective date will
# be March 27, 2016 at 2:00am....
# http://publication.pravo.gov.ru/Document/View/0001201512300107

Zone Asia/Chita	 7:33:52 -	LMT	1919 Dec 15
			 8:00	-	+08	1930 Jun 21
			 9:00	Russia	+09/+10	1991 Mar 31  2:00s
			 8:00	Russia	+08/+09	1992 Jan 19  2:00s
			 9:00	Russia	+09/+10	2011 Mar 27  2:00s
			10:00	-	+10	2014 Oct 26  2:00s
			 8:00	-	+08	2016 Mar 27  2:00
			 9:00	-	+09


# From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29):
# Asia/Yakutsk covers...
# 28	RU-AMU	Amur Oblast
#
# ...and parts of (14, RU-SA) Sakha (Yakutia) Republic:
# 14-02	****	Aldansky District
# 14-04	****	Amginsky District
# 14-05	****	Anabarsky District
# 14-06	****	Bulunsky District
# 14-07	****	Verkhnevilyuysky District
# 14-10	****	Vilyuysky District
# 14-11	****	Gorny District
# 14-12	****	Zhigansky District
# 14-13	****	Kobyaysky District
# 14-14	****	Lensky District
# 14-15	****	Megino-Kangalassky District
# 14-16	****	Mirninsky District
# 14-18	****	Namsky District
# 14-19	****	Neryungrinsky District
# 14-21	****	Nyurbinsky District
# 14-23	****	Olenyoksky District
# 14-24	****	Olyokminsky District
# 14-26	****	Suntarsky District
# 14-27	****	Tattinsky District
# 14-29	****	Ust-Aldansky District
# 14-32	****	Khangalassky District
# 14-33	****	Churapchinsky District
# 14-34	****	Eveno-Bytantaysky National District

# From Tim Parenti (2014-07-03):
# Our commentary seems to have lost mention of (14-19) Neryungrinsky District.
# Since the surrounding districts of Sakha are all YAKT, assume this is, too.
# Also assume its history has been the same as the rest of Asia/Yakutsk.

# Byalokoz 1919 says Yakutsk was 8:38:58.

Zone Asia/Yakutsk	 8:38:58 -	LMT	1919 Dec 15
			 8:00	-	+08	1930 Jun 21
			 9:00	Russia	+09/+10	1991 Mar 31  2:00s
			 8:00	Russia	+08/+09	1992 Jan 19  2:00s
			 9:00	Russia	+09/+10	2011 Mar 27  2:00s
			10:00	-	+10	2014 Oct 26  2:00s
			 9:00	-	+09


# From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29):
# Asia/Vladivostok covers...
# 25	RU-PRI	Primorsky Krai
# 27	RU-KHA	Khabarovsk Krai
# 79	RU-YEV	Jewish Autonomous Oblast
#
# ...and parts of (14, RU-SA) Sakha (Yakutia) Republic:
# 14-09	****	Verkhoyansky District
# 14-31	****	Ust-Yansky District

# Milne 1899 says Vladivostok was 8:47:33.5.
# Byalokoz 1919 says Vladivostok was 8:47:31.
# Go with Byalokoz.

Zone Asia/Vladivostok	 8:47:31 -	LMT	1922 Nov 15
			 9:00	-	+09	1930 Jun 21
			10:00	Russia	+10/+11	1991 Mar 31  2:00s
			 9:00	Russia	+09/+10	1992 Jan 19  2:00s
			10:00	Russia	+10/+11	2011 Mar 27  2:00s
			11:00	-	+11	2014 Oct 26  2:00s
			10:00	-	+10


# From Tim Parenti (2014-07-03):
# Asia/Khandyga covers parts of (14, RU-SA) Sakha (Yakutia) Republic:
# 14-28	****	Tomponsky District
# 14-30	****	Ust-Maysky District

# From Arthur David Olson (2022-03-21):
# Tomponsky and Ust-Maysky switched from Vladivostok time to Yakutsk time
# in 2011.

# From Paul Eggert (2012-11-25):
# Shanks and Pottenger (2003) has Khandyga on Yakutsk time.
# Make a wild guess that it switched to Vladivostok time in 2004.
# This transition is no doubt wrong, but we have no better info.

Zone Asia/Khandyga	 9:02:13 -	LMT	1919 Dec 15
			 8:00	-	+08	1930 Jun 21
			 9:00	Russia	+09/+10	1991 Mar 31  2:00s
			 8:00	Russia	+08/+09	1992 Jan 19  2:00s
			 9:00	Russia	+09/+10	2004
			10:00	Russia	+10/+11	2011 Mar 27  2:00s
			11:00	-	+11	2011 Sep 13  0:00s # Decree 725?
			10:00	-	+10	2014 Oct 26  2:00s
			 9:00	-	+09


# From Tim Parenti (2014-07-03):
# Asia/Sakhalin covers...
# 65	RU-SAK	Sakhalin Oblast
# ...with the exception of:
# 65-11	****	Severo-Kurilsky District (North Kuril Islands)

# From Matt Johnson (2016-02-22):
# Asia/Sakhalin is moving (in entirety) from UTC+10 to UTC+11 ...
# (2016-03-09):
# http://publication.pravo.gov.ru/Document/View/0001201603090044

# The Zone name should be Asia/Yuzhno-Sakhalinsk, but that's too long.
Zone Asia/Sakhalin	 9:30:48 -	LMT	1905 Aug 23
			 9:00	-	+09	1945 Aug 25
			11:00	Russia	+11/+12	1991 Mar 31  2:00s # Sakhalin T
			10:00	Russia	+10/+11	1992 Jan 19  2:00s
			11:00	Russia	+11/+12	1997 Mar lastSun  2:00s
			10:00	Russia	+10/+11	2011 Mar 27  2:00s
			11:00	-	+11	2014 Oct 26  2:00s
			10:00	-	+10	2016 Mar 27  2:00s
			11:00	-	+11


# From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29):
# Asia/Magadan covers...
# 49	RU-MAG	Magadan Oblast

# From Tim Parenti (2014-07-06), per Alexander Krivenyshev (2014-07-02):
# Magadan Oblast is moving from UTC+12 to UTC+10 on 2014-10-26; however,
# several districts of Sakha Republic as well as Severo-Kurilsky District of
# the Sakhalin Oblast (also known as the North Kuril Islands), represented
# until now by Asia/Magadan, will instead move to UTC+11.  These regions will
# need their own zone.

# From Alexander Krivenyshev (2016-03-27):
# ... draft bill 948300-6 to change its time zone from UTC+10 to UTC+11 ...
# will take ... effect ... on April 24, 2016 at 2 o'clock
#
# From Matt Johnson (2016-04-05):
# ... signed by the President today ...
# http://publication.pravo.gov.ru/Document/View/0001201604050038

Zone Asia/Magadan	10:03:12 -	LMT	1924 May  2
			10:00	-	+10	1930 Jun 21 # Magadan Time
			11:00	Russia	+11/+12	1991 Mar 31  2:00s
			10:00	Russia	+10/+11	1992 Jan 19  2:00s
			11:00	Russia	+11/+12	2011 Mar 27  2:00s
			12:00	-	+12	2014 Oct 26  2:00s
			10:00	-	+10	2016 Apr 24  2:00s
			11:00	-	+11


# From Tim Parenti (2014-07-06):
# Asia/Srednekolymsk covers parts of (14, RU-SA) Sakha (Yakutia) Republic:
# 14-01	****	Abyysky District
# 14-03	****	Allaikhovsky District
# 14-08	****	Verkhnekolymsky District
# 14-17	****	Momsky District
# 14-20	****	Nizhnekolymsky District
# 14-25	****	Srednekolymsky District
#
# ...and parts of (65, RU-SAK) Sakhalin Oblast:
# 65-11	****	Severo-Kurilsky District (North Kuril Islands)

# From Tim Parenti (2014-07-02):
# Oymyakonsky District of Sakha Republic (represented by Ust-Nera), along with
# most of Sakhalin Oblast (represented by Sakhalin) will be moving to UTC+10 on
# 2014-10-26 to stay aligned with VLAT/SAKT; however, Severo-Kurilsky District
# of the Sakhalin Oblast (also known as the North Kuril Islands, represented by
# Severo-Kurilsk) will remain on UTC+11.

# From Tim Parenti (2014-07-06):
# Assume North Kuril Islands have history like Magadan before 2011-03-27.
# There is a decent chance this is wrong, in which case a new zone
# Asia/Severo-Kurilsk would become necessary.
#
# Srednekolymsk and Zyryanka are the most populous places amongst these
# districts, but have very similar populations.  In fact, Wikipedia currently
# lists them both as having 3528 people, exactly 1668 males and 1860 females
# each!  (Yikes!)
# https://en.wikipedia.org/w/?title=Srednekolymsky_District&oldid=603435276
# https://en.wikipedia.org/w/?title=Verkhnekolymsky_District&oldid=594378493
# Assume this is a mistake, albeit an amusing one.
#
# Looking at censuses, the populations of the two municipalities seem to have
# fluctuated recently.  Zyryanka was more populous than Srednekolymsk in the
# 1989 and 2002 censuses, but Srednekolymsk was more populous in the most
# recent (2010) census, 3525 to 3170.  (See pages 195 and 197 of
# http://www.gks.ru/free_doc/new_site/perepis2010/croc/Documents/Vol1/pub-01-05.pdf
# in Russian.)  In addition, Srednekolymsk appears to be a much older
# settlement and the population of Zyryanka seems to be declining.
# Go with Srednekolymsk.

Zone Asia/Srednekolymsk	10:14:52 -	LMT	1924 May  2
			10:00	-	+10	1930 Jun 21
			11:00	Russia	+11/+12	1991 Mar 31  2:00s
			10:00	Russia	+10/+11	1992 Jan 19  2:00s
			11:00	Russia	+11/+12	2011 Mar 27  2:00s
			12:00	-	+12	2014 Oct 26  2:00s
			11:00	-	+11


# From Tim Parenti (2014-07-03):
# Asia/Ust-Nera covers parts of (14, RU-SA) Sakha (Yakutia) Republic:
# 14-22	****	Oymyakonsky District

# From Arthur David Olson (2022-03-21):
# Oymyakonsky and the Kuril Islands switched from
# Magadan time to Vladivostok time in 2011.
#
# From Tim Parenti (2014-07-06), per Alexander Krivenyshev (2014-07-02):
# It's unlikely that any of the Kuril Islands were involved in such a switch,
# as the South and Middle Kurils have been on UTC+11 (SAKT) with the rest of
# Sakhalin Oblast since at least 2011-09, and the North Kurils have been on
# UTC+12 since at least then, too.

Zone Asia/Ust-Nera	 9:32:54 -	LMT	1919 Dec 15
			 8:00	-	+08	1930 Jun 21
			 9:00	Russia	+09/+10	1981 Apr  1
			11:00	Russia	+11/+12	1991 Mar 31  2:00s
			10:00	Russia	+10/+11	1992 Jan 19  2:00s
			11:00	Russia	+11/+12	2011 Mar 27  2:00s
			12:00	-	+12	2011 Sep 13  0:00s # Decree 725?
			11:00	-	+11	2014 Oct 26  2:00s
			10:00	-	+10


# From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25):
# Asia/Kamchatka covers...
# 91	RU-KAM	Kamchatka Krai
#
# Note: Effective 2007-07-01, (41) Kamchatka Oblast and (82) Koryak
# Autonomous Okrug merged to form (91, RU-KAM) Kamchatka Krai.

# The Zone name should be Asia/Petropavlovsk-Kamchatski or perhaps
# Asia/Petropavlovsk-Kamchatsky, but these are too long.
Zone Asia/Kamchatka	10:34:36 -	LMT	1922 Nov 10
			11:00	-	+11	1930 Jun 21
			12:00	Russia	+12/+13	1991 Mar 31  2:00s
			11:00	Russia	+11/+12	1992 Jan 19  2:00s
			12:00	Russia	+12/+13	2010 Mar 28  2:00s
			11:00	Russia	+11/+12	2011 Mar 27  2:00s
			12:00	-	+12


# From Tim Parenti (2014-07-03):
# Asia/Anadyr covers...
# 87	RU-CHU	Chukotka Autonomous Okrug

Zone Asia/Anadyr	11:49:56 -	LMT	1924 May  2
			12:00	-	+12	1930 Jun 21
			13:00	Russia	+13/+14	1982 Apr  1  0:00s
			12:00	Russia	+12/+13	1991 Mar 31  2:00s
			11:00	Russia	+11/+12	1992 Jan 19  2:00s
			12:00	Russia	+12/+13	2010 Mar 28  2:00s
			11:00	Russia	+11/+12	2011 Mar 27  2:00s
			12:00	-	+12


# San Marino
# See Europe/Rome.

# Serbia
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Belgrade	1:22:00	-	LMT	1884
			1:00	-	CET	1941 Apr 18 23:00
			1:00	C-Eur	CE%sT	1945
			1:00	-	CET	1945 May  8  2:00s
			1:00	1:00	CEST	1945 Sep 16  2:00s
# Metod Koželj reports that the legal date of
# transition to EU rules was 1982-11-27, for all of Yugoslavia at the time.
# Shanks & Pottenger don't give as much detail, so go with Koželj.
			1:00	-	CET	1982 Nov 27
			1:00	EU	CE%sT
Link Europe/Belgrade Europe/Ljubljana	# Slovenia
Link Europe/Belgrade Europe/Podgorica	# Montenegro
Link Europe/Belgrade Europe/Sarajevo	# Bosnia and Herzegovina
Link Europe/Belgrade Europe/Skopje	# North Macedonia
Link Europe/Belgrade Europe/Zagreb	# Croatia

# Slovakia
# See Europe/Prague.

# Slovenia
# See Europe/Belgrade.

# Spain
#
# From Paul Eggert (2016-12-14):
#
# The source for Europe/Madrid before 2013 is:
# Planesas P. La hora oficial en España y sus cambios.
# Anuario del Observatorio Astronómico de Madrid (2013, in Spanish).
# http://astronomia.ign.es/rknowsys-theme/images/webAstro/paginas/documentos/Anuario/lahoraoficialenespana.pdf
# As this source says that historical time in the Canaries is obscure,
# and it does not discuss Ceuta, stick with Shanks for now for that data.
#
# In the 1918 and 1919 fallback transitions in Spain, the clock for
# the hour-longer day officially kept going after midnight, so that
# the repeated instances of that day's 00:00 hour were 24 hours apart,
# with a fallback transition from the second occurrence of 00:59... to
# the next day's 00:00.  Our data format cannot represent this
# directly, and instead repeats the first hour of the next day, with a
# fallback transition from the next day's 00:59... to 00:00.

# From Michael Deckers (2016-12-15):
# The Royal Decree of 1900-07-26 quoted by Planesas, online at
# https://www.boe.es/datos/pdfs/BOE//1900/209/A00383-00384.pdf
# says in its article 5 (my translation):
# These dispositions will enter into force beginning with the
# instant at which, according to the time indicated in article 1,
# the 1st day of January of 1901 will begin.

# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	Spain	1918	only	-	Apr	15	23:00	1:00	S
Rule	Spain	1918	1919	-	Oct	 6	24:00s	0	-
Rule	Spain	1919	only	-	Apr	 6	23:00	1:00	S
Rule	Spain	1924	only	-	Apr	16	23:00	1:00	S
Rule	Spain	1924	only	-	Oct	 4	24:00s	0	-
Rule	Spain	1926	only	-	Apr	17	23:00	1:00	S
Rule	Spain	1926	1929	-	Oct	Sat>=1	24:00s	0	-
Rule	Spain	1927	only	-	Apr	 9	23:00	1:00	S
Rule	Spain	1928	only	-	Apr	15	 0:00	1:00	S
Rule	Spain	1929	only	-	Apr	20	23:00	1:00	S
# Republican Spain during the civil war; it controlled Madrid until 1939-03-28.
Rule	Spain	1937	only	-	Jun	16	23:00	1:00	S
Rule	Spain	1937	only	-	Oct	 2	24:00s	0	-
Rule	Spain	1938	only	-	Apr	 2	23:00	1:00	S
Rule	Spain	1938	only	-	Apr	30	23:00	2:00	M
Rule	Spain	1938	only	-	Oct	 2	24:00	1:00	S
# The following rules are for unified Spain again.
#
# Planesas does not say what happened in Madrid between its fall on
# 1939-03-28 and the Nationalist spring-forward transition on
# 1939-04-15.  For lack of better info, assume Madrid's clocks did not
# change during that period.
#
# The first rule is commented out, as it is redundant for Republican Spain.
#Rule	Spain	1939	only	-	Apr	15	23:00	1:00	S
Rule	Spain	1939	only	-	Oct	 7	24:00s	0	-
Rule	Spain	1942	only	-	May	 2	23:00	1:00	S
Rule	Spain	1942	only	-	Sep	 1	 1:00	0	-
Rule	Spain	1943	1946	-	Apr	Sat>=13	23:00	1:00	S
Rule	Spain	1943	1944	-	Oct	Sun>=1	 1:00	0	-
Rule	Spain	1945	1946	-	Sep	lastSun	 1:00	0	-
Rule	Spain	1949	only	-	Apr	30	23:00	1:00	S
Rule	Spain	1949	only	-	Oct	 2	 1:00	0	-
Rule	Spain	1974	1975	-	Apr	Sat>=12	23:00	1:00	S
Rule	Spain	1974	1975	-	Oct	Sun>=1	 1:00	0	-
Rule	Spain	1976	only	-	Mar	27	23:00	1:00	S
Rule	Spain	1976	1977	-	Sep	lastSun	 1:00	0	-
Rule	Spain	1977	only	-	Apr	 2	23:00	1:00	S
Rule	Spain	1978	only	-	Apr	 2	 2:00s	1:00	S
Rule	Spain	1978	only	-	Oct	 1	 2:00s	0	-
# Nationalist Spain during the civil war
#Rule NatSpain	1937	only	-	May	22	23:00	1:00	S
#Rule NatSpain	1937	1938	-	Oct	Sat>=1	24:00s	0	-
#Rule NatSpain	1938	only	-	Mar	26	23:00	1:00	S
# The following rules are copied from Morocco from 1967 through 1978,
# except with "S" letters.
Rule SpainAfrica 1967	only	-	Jun	 3	12:00	1:00	S
Rule SpainAfrica 1967	only	-	Oct	 1	 0:00	0	-
Rule SpainAfrica 1974	only	-	Jun	24	 0:00	1:00	S
Rule SpainAfrica 1974	only	-	Sep	 1	 0:00	0	-
Rule SpainAfrica 1976	1977	-	May	 1	 0:00	1:00	S
Rule SpainAfrica 1976	only	-	Aug	 1	 0:00	0	-
Rule SpainAfrica 1977	only	-	Sep	28	 0:00	0	-
Rule SpainAfrica 1978	only	-	Jun	 1	 0:00	1:00	S
Rule SpainAfrica 1978	only	-	Aug	 4	 0:00	0	-
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Madrid	-0:14:44 -	LMT	1901 Jan  1  0:00u
			 0:00	Spain	WE%sT	1940 Mar 16 23:00
			 1:00	Spain	CE%sT	1979
			 1:00	EU	CE%sT
Zone	Africa/Ceuta	-0:21:16 -	LMT	1900 Dec 31 23:38:44
			 0:00	-	WET	1918 May  6 23:00
			 0:00	1:00	WEST	1918 Oct  7 23:00
			 0:00	-	WET	1924
			 0:00	Spain	WE%sT	1929
			 0:00	-	WET	1967 # Help zishrink.awk.
			 0:00 SpainAfrica WE%sT	1984 Mar 16
			 1:00	-	CET	1986
			 1:00	EU	CE%sT
Zone	Atlantic/Canary	-1:01:36 -	LMT	1922 Mar # Las Palmas de Gran C.
			-1:00	-	-01	1946 Sep 30  1:00
			 0:00	-	WET	1980 Apr  6  0:00s
			 0:00	1:00	WEST	1980 Sep 28  1:00u
			 0:00	EU	WE%sT
# IATA SSIM (1996-09) says the Canaries switch at 2:00u, not 1:00u.
# Ignore this for now, as the Canaries are part of the EU.

# Sweden
# See Europe/Berlin.

# Switzerland
# From Howse:
# By the end of the 18th century clocks and watches became commonplace
# and their performance improved enormously.  Communities began to keep
# mean time in preference to apparent time - Geneva from 1780 ....
# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
# From Whitman (who writes "Midnight?"):
# Rule	Swiss	1940	only	-	Nov	 2	0:00	1:00	S
# Rule	Swiss	1940	only	-	Dec	31	0:00	0	-
# From Shanks & Pottenger:
# Rule	Swiss	1941	1942	-	May	Sun>=1	2:00	1:00	S
# Rule	Swiss	1941	1942	-	Oct	Sun>=1	0:00	0	-

# From Alois Treindl (2008-12-17):
# I have researched the DST usage in Switzerland during the 1940ies.
#
# As I wrote in an earlier message, I suspected the current tzdata values
# to be wrong. This is now verified.
#
# I have found copies of the original ruling by the Swiss Federal
# government, in 'Eidgenössische Gesetzessammlung 1941 and 1942' (Swiss
# federal law collection)...
#
# DST began on Monday 5 May 1941, 1:00 am by shifting the clocks to 2:00 am
# DST ended on Monday 6 Oct 1941, 2:00 am by shifting the clocks to 1:00 am.
#
# DST began on Monday, 4 May 1942 at 01:00 am
# DST ended on Monday, 5 Oct 1942 at 02:00 am
#
# There was no DST in 1940, I have checked the law collection carefully.
# It is also indicated by the fact that the 1942 entry in the law
# collection points back to 1941 as a reference, but no reference to any
# other years are made.
#
# Newspaper articles I have read in the archives on 6 May 1941 reported
# about the introduction of DST (Sommerzeit in German) during the previous
# night as an absolute novelty, because this was the first time that such
# a thing had happened in Switzerland.
#
# I have also checked 1916, because one book source (Gabriel, Traité de
# l'heure dans le monde) claims that Switzerland had DST in 1916. This is
# false, no official document could be found. Probably Gabriel got misled
# by references to Germany, which introduced DST in 1916 for the first time.
#
# The tzdata rules for Switzerland must be changed to:
# Rule  Swiss   1941    1942    -       May     Mon>=1  1:00    1:00    S
# Rule  Swiss   1941    1942    -       Oct     Mon>=1  2:00    0       -
#
# The 1940 rules must be deleted.
#
# One further detail for Switzerland, which is probably out of scope for
# most users of tzdata: The [Europe/Zurich zone] ...
# describes all of Switzerland correctly, with the exception of
# the Canton de Genève (Geneva, Genf). Between 1848 and 1894 Geneva did not
# follow Bern Mean Time but kept its own local mean time.
# To represent this, an extra zone would be needed.
#
# From Alois Treindl (2013-09-11):
# The Federal regulations say
# https://www.admin.ch/opc/de/classified-compilation/20071096/index.html
# ... the meridian for Bern mean time ... is 7° 26' 22.50".
# Expressed in time, it is 0h29m45.5s.

# From Pierre-Yves Berger (2013-09-11):
# the "Circulaire du conseil fédéral" (December 11 1893)
# http://www.amtsdruckschriften.bar.admin.ch/viewOrigDoc.do?id=10071353
# clearly states that the [1894-06-01] change should be done at midnight
# but if no one is present after 11 at night, could be postponed until one
# hour before the beginning of service.

# From Paul Eggert (2013-09-11):
# Round BMT to the nearest even second, 0:29:46.
#
# We can find no reliable source for Shanks's assertion that all of Switzerland
# except Geneva switched to Bern Mean Time at 00:00 on 1848-09-12.  This book:
#
#	Jakob Messerli. Gleichmässig, pünktlich, schnell. Zeiteinteilung und
#	Zeitgebrauch in der Schweiz im 19. Jahrhundert. Chronos, Zurich 1995,
#	ISBN 3-905311-68-2, OCLC 717570797.
#
# suggests that the transition was more gradual, and that the Swiss did not
# agree about civil time during the transition.  The timekeeping it gives the
# most detail for is postal and telegraph time: here, federal legislation (the
# "Bundesgesetz über die Erstellung von elektrischen Telegraphen") passed on
# 1851-11-23, and an official implementation notice was published 1853-07-16
# (Bundesblatt 1853, Bd. II, S. 859).  On p 72 Messerli writes that in
# practice since July 1853 Bernese time was used in "all postal and telegraph
# offices in Switzerland from Geneva to St. Gallen and Basel to Chiasso"
# (Google translation).  For now, model this transition as occurring on
# 1853-07-16, though it probably occurred at some other date in Zurich, and
# legal civil time probably changed at still some other transition date.

# From Tobias Conradi (2011-09-12):
# Büsingen , surrounded by the Swiss canton
# Schaffhausen, did not start observing DST in 1980 as the rest of DE
# (West Germany at that time) and DD (East Germany at that time) did.
# DD merged into DE, the area is currently covered by code DE in ISO 3166-1,
# which in turn is covered by the zone Europe/Berlin.
#
# Source for the time in Büsingen 1980:
# http://www.srf.ch/player/video?id=c012c029-03b7-4c2b-9164-aa5902cd58d3
#
# From Arthur David Olson (2012-03-03):
# Büsingen and Zurich have shared clocks since 1970.

# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	Swiss	1941	1942	-	May	Mon>=1	1:00	1:00	S
Rule	Swiss	1941	1942	-	Oct	Mon>=1	2:00	0	-
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Zurich	0:34:08 -	LMT	1853 Jul 16 # See above comment.
			0:29:46	-	BMT	1894 Jun    # Bern Mean Time
			1:00	Swiss	CE%sT	1981
			1:00	EU	CE%sT
Link Europe/Zurich Europe/Busingen
Link Europe/Zurich Europe/Vaduz


# Turkey

# From Alois Treindl (2019-08-12):
# http://www.astrolojidergisi.com/yazsaati.htm has researched the time zone
# history of Turkey, based on newspaper archives and official documents.
# From Paul Eggert (2019-08-28):
# That source (Oya Vulaş, "Türkiye'de Yaz Saati Uygulamaları")
# is used for 1940/1972, where it seems more reliable than our other
# sources.

# From Kıvanç Yazan (2019-08-12):
# http://www.resmigazete.gov.tr/arsiv/14539.pdf#page=24
# 1973-06-03 01:00 -> 02:00, 1973-11-04 02:00 -> 01:00
#
# http://www.resmigazete.gov.tr/arsiv/14829.pdf#page=1
# 1974-03-31 02:00 -> 03:00, 1974-11-03 02:00 -> 01:00
#
# http://www.resmigazete.gov.tr/arsiv/15161.pdf#page=1
# 1975-03-22 02:00 -> 03:00, 1975-11-02 02:00 -> 01:00
#
# http://www.resmigazete.gov.tr/arsiv/15535_1.pdf#page=1
# 1976-03-21 02:00 -> 03:00, 1976-10-31 02:00 -> 01:00
#
# http://www.resmigazete.gov.tr/arsiv/15778.pdf#page=5
# 1977-04-03 02:00 -> 03:00, 1977-10-16 02:00 -> 01:00,
# 1978-04-02 02:00 -> 03:00 (not applied, see below)
# 1978-10-15 02:00 -> 01:00 (not applied, see below)
# 1979-04-01 02:00 -> 03:00 (not applied, see below)
# 1979-10-14 02:00 -> 01:00 (not applied, see below)
#
# http://www.resmigazete.gov.tr/arsiv/16245.pdf#page=17
# This cancels the previous decision, and repeats it only for 1978.
# 1978-04-02 02:00 -> 03:00, 1978-10-15 02:00 -> 01:00
# (not applied due to standard TZ change below)
#
# http://www.resmigazete.gov.tr/arsiv/16331.pdf#page=3
# This decision changes the default longitude for Turkish time zone from 30
# degrees East to 45 degrees East.  This means a standard TZ change, from +2
# to +3.  This is published & applied on 1978-06-29.  At that time, Turkey was
# already on summer time (already on 45E).  Hence, this new law just meant an
# "continuous summer time".  Note that this was reversed in a few years.
#
# http://www.resmigazete.gov.tr/arsiv/18119_1.pdf#page=1
# 1983-07-31 02:00 -> 03:00 (note that this jumps TZ to +4)
# 1983-10-02 02:00 -> 01:00 (back to +3)
#
# http://www.resmigazete.gov.tr/arsiv/18561.pdf (page 1 and 34)
# At this time, Turkey is still on +3 with no spring-forward on early
# 1984.  This decision is published on 10/31/1984.  Page 1 declares
# the decision of reverting the "default longitude change".  So the
# standard time should go back to +3 (30E).  And page 34 explains when
# that will happen: 1984-11-01 02:00 -> 01:00.  You can think of this
# as "end of continuous summer time, change of standard time zone".
#
# http://www.resmigazete.gov.tr/arsiv/18713.pdf#page=1
# 1985-04-20 01:00 -> 02:00, 1985-09-28 02:00 -> 01:00

# From Kıvanç Yazan (2016-09-25):
# 1) For 1986-2006, DST started at 01:00 local and ended at 02:00 local, with
#    no exceptions.
# 2) 1994's lastSun was overridden with Mar 20 ...
# Here are official papers:
# http://www.resmigazete.gov.tr/arsiv/19032.pdf#page=2 for 1986
# http://www.resmigazete.gov.tr/arsiv/19400.pdf#page=4 for 1987
# http://www.resmigazete.gov.tr/arsiv/19752.pdf#page=15 for 1988
# http://www.resmigazete.gov.tr/arsiv/20102.pdf#page=6 for 1989
# http://www.resmigazete.gov.tr/arsiv/20464.pdf#page=1 for 1990 - 1992
# http://www.resmigazete.gov.tr/arsiv/21531.pdf#page=15 for 1993 - 1995
# http://www.resmigazete.gov.tr/arsiv/21879.pdf#page=1 for overriding 1994
# http://www.resmigazete.gov.tr/arsiv/22588.pdf#page=1 for 1996, 1997
# http://www.resmigazete.gov.tr/arsiv/23286.pdf#page=10 for 1998 - 2000
# http://www.resmigazete.gov.tr/eskiler/2001/03/20010324.htm#2  - for 2001
# http://www.resmigazete.gov.tr/eskiler/2002/03/20020316.htm#2  - for 2002-2006
# From Paul Eggert (2016-09-25):
# Prefer the above sources to Shanks & Pottenger for timestamps after 1985.

# From Steffen Thorsen (2007-03-09):
# Starting 2007 though, it seems that they are adopting EU's 1:00 UTC
# start/end time, according to the following page (2007-03-07):
# http://www.ntvmsnbc.com/news/402029.asp
# The official document is located here - it is in Turkish...:
# http://rega.basbakanlik.gov.tr/eskiler/2007/03/20070307-7.htm
# I was able to locate the following seemingly official document
# (on a non-government server though) describing dates between 2002 and 2006:
# http://www.alomaliye.com/bkk_2002_3769.htm

# From Gökdeniz Karadağ (2011-03-10):
# According to the articles linked below, Turkey will change into summer
# time zone (GMT+3) on March 28, 2011 at 3:00 a.m. instead of March 27.
# This change is due to a nationwide exam on 27th.
# https://www.worldbulletin.net/?aType=haber&ArticleID=70872
# Turkish:
# https://www.hurriyet.com.tr/yaz-saati-uygulamasi-bir-gun-ileri-alindi-17230464

# From Faruk Pasin (2014-02-14):
# The DST for Turkey has been changed for this year because of the
# Turkish Local election....
# http://www.sabah.com.tr/Ekonomi/2014/02/12/yaz-saatinde-onemli-degisiklik
# ... so Turkey will move clocks forward one hour on March 31 at 3:00 a.m.
# From Randal L. Schwartz (2014-04-15):
# Having landed on a flight from the states to Istanbul (via AMS) on March 31,
# I can tell you that NOBODY (even the airlines) respected this timezone DST
# change delay.  Maybe the word just didn't get out in time.
# From Paul Eggert (2014-06-15):
# The press reported massive confusion, as election officials obeyed the rule
# change but cell phones (and airline baggage systems) did not.  See:
# Kostidis M. Eventful elections in Turkey. Balkan News Agency
# http://www.balkaneu.com/eventful-elections-turkey/ 2014-03-30.
# I guess the best we can do is document the official time.

# From Fatih (2015-09-29):
# It's officially announced now by the Ministry of Energy.
# Turkey delays winter time to 8th of November 04:00
# http://www.aa.com.tr/tr/turkiye/yaz-saati-uygulamasi-8-kasimda-sona-erecek/362217
#
# From BBC News (2015-10-25):
# Confused Turks are asking "what's the time?" after automatic clocks defied a
# government decision ... "For the next two weeks #Turkey is on EEST... Erdogan
# Engineered Standard Time," said Twitter user @aysekarahasan.
# http://www.bbc.com/news/world-europe-34631326

# From Burak AYDIN (2016-09-08):
# Turkey will stay in Daylight Saving Time even in winter....
# http://www.resmigazete.gov.tr/eskiler/2016/09/20160908-2.pdf
#
# From Paul Eggert (2016-09-07):
# The change is permanent, so this is the new standard time in Turkey.
# It takes effect today, which is not much notice.

# From Kıvanç Yazan (2017-10-28):
# Turkey will go back to Daylight Saving Time starting 2018-10.
# http://www.resmigazete.gov.tr/eskiler/2017/10/20171028-5.pdf
#
# From Even Scharning (2017-11-08):
# ... today it was announced that the DST will become "continuous":
# http://www.hurriyet.com.tr/son-dakika-yaz-saati-uygulamasi-surekli-hale-geldi-40637482
# From Paul Eggert (2017-11-08):
# Although Google Translate misfires on that source, it looks like
# Turkey reversed last month's decision, and so will stay at +03.

# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	Turkey	1916	only	-	May	 1	0:00	1:00	S
Rule	Turkey	1916	only	-	Oct	 1	0:00	0	-
Rule	Turkey	1920	only	-	Mar	28	0:00	1:00	S
Rule	Turkey	1920	only	-	Oct	25	0:00	0	-
Rule	Turkey	1921	only	-	Apr	 3	0:00	1:00	S
Rule	Turkey	1921	only	-	Oct	 3	0:00	0	-
Rule	Turkey	1922	only	-	Mar	26	0:00	1:00	S
Rule	Turkey	1922	only	-	Oct	 8	0:00	0	-
# Whitman gives 1923 Apr 28 - Sep 16 and no DST in 1924-1925;
# go with Shanks & Pottenger.
Rule	Turkey	1924	only	-	May	13	0:00	1:00	S
Rule	Turkey	1924	1925	-	Oct	 1	0:00	0	-
Rule	Turkey	1925	only	-	May	 1	0:00	1:00	S
Rule	Turkey	1940	only	-	Jul	 1	0:00	1:00	S
Rule	Turkey	1940	only	-	Oct	 6	0:00	0	-
Rule	Turkey	1940	only	-	Dec	 1	0:00	1:00	S
Rule	Turkey	1941	only	-	Sep	21	0:00	0	-
Rule	Turkey	1942	only	-	Apr	 1	0:00	1:00	S
Rule	Turkey	1945	only	-	Oct	 8	0:00	0	-
Rule	Turkey	1946	only	-	Jun	 1	0:00	1:00	S
Rule	Turkey	1946	only	-	Oct	 1	0:00	0	-
Rule	Turkey	1947	1948	-	Apr	Sun>=16	0:00	1:00	S
Rule	Turkey	1947	1951	-	Oct	Sun>=2	0:00	0	-
Rule	Turkey	1949	only	-	Apr	10	0:00	1:00	S
Rule	Turkey	1950	only	-	Apr	16	0:00	1:00	S
Rule	Turkey	1951	only	-	Apr	22	0:00	1:00	S
# DST for 15 months; unusual but we'll let it pass.
Rule	Turkey	1962	only	-	Jul	15	0:00	1:00	S
Rule	Turkey	1963	only	-	Oct	30	0:00	0	-
Rule	Turkey	1964	only	-	May	15	0:00	1:00	S
Rule	Turkey	1964	only	-	Oct	 1	0:00	0	-
Rule	Turkey	1973	only	-	Jun	 3	1:00	1:00	S
Rule	Turkey	1973	1976	-	Oct	Sun>=31	2:00	0	-
Rule	Turkey	1974	only	-	Mar	31	2:00	1:00	S
Rule	Turkey	1975	only	-	Mar	22	2:00	1:00	S
Rule	Turkey	1976	only	-	Mar	21	2:00	1:00	S
Rule	Turkey	1977	1978	-	Apr	Sun>=1	2:00	1:00	S
Rule	Turkey	1977	1978	-	Oct	Sun>=15	2:00	0	-
Rule	Turkey	1978	only	-	Jun	29	0:00	0	-
Rule	Turkey	1983	only	-	Jul	31	2:00	1:00	S
Rule	Turkey	1983	only	-	Oct	 2	2:00	0	-
Rule	Turkey	1985	only	-	Apr	20	1:00s	1:00	S
Rule	Turkey	1985	only	-	Sep	28	1:00s	0	-
Rule	Turkey	1986	1993	-	Mar	lastSun	1:00s	1:00	S
Rule	Turkey	1986	1995	-	Sep	lastSun	1:00s	0	-
Rule	Turkey	1994	only	-	Mar	20	1:00s	1:00	S
Rule	Turkey	1995	2006	-	Mar	lastSun	1:00s	1:00	S
Rule	Turkey	1996	2006	-	Oct	lastSun	1:00s	0	-
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Istanbul	1:55:52 -	LMT	1880
			1:56:56	-	IMT	1910 Oct # Istanbul Mean Time?
			2:00	Turkey	EE%sT	1978 Jun 29
			3:00	Turkey	+03/+04	1984 Nov  1  2:00
			2:00	Turkey	EE%sT	2007
			2:00	EU	EE%sT	2011 Mar 27  1:00u
			2:00	-	EET	2011 Mar 28  1:00u
			2:00	EU	EE%sT	2014 Mar 30  1:00u
			2:00	-	EET	2014 Mar 31  1:00u
			2:00	EU	EE%sT	2015 Oct 25  1:00u
			2:00	1:00	EEST	2015 Nov  8  1:00u
			2:00	EU	EE%sT	2016 Sep  7
			3:00	-	+03
Link	Europe/Istanbul	Asia/Istanbul	# Istanbul is in both continents.

# Ukraine
#
# From Alois Treindl (2014-03-01):
# REGULATION A N O V A on March 20, 1992 N 139 ...  means that from
# 1992 on, Ukraine had DST with begin time at 02:00 am, on last Sunday
# in March, and end time 03:00 am, last Sunday in September....
# CABINET OF MINISTERS OF UKRAINE RESOLUTION on May 13, 1996 N 509
# "On the order of computation time on the territory of Ukraine" ....
# As this cabinet decision is from May 1996, it seems likely that the
# transition in March 1996, which predates it, was still at 2:00 am
# and not at 3:00 as would have been under EU rules.
# This is why I have set the change to EU rules into May 1996,
# so that the change in March is stil covered by the Ukraine rule.
# The next change in October 1996 happened under EU rules....
# TZ database holds three other zones for Ukraine.... I have not yet
# worked out the consequences for these three zones, as we (me and my
# US colleague David Cochrane) are still trying to get more
# information upon these local deviations from Kiev rules.
#
# From Paul Eggert (2022-02-08):
# For now, assume that Ukraine's other three zones followed the same rules,
# except that Crimea switched to Moscow time in 1994 as described elsewhere.

# From Igor Karpov, who works for the Ukrainian Ministry of Justice,
# via Garrett Wollman (2003-01-27):
# BTW, I've found the official document on this matter. It's government
# regulations No. 509, May 13, 1996. In my poor translation it says:
# "Time in Ukraine is set to second timezone (Kiev time). Each last Sunday
# of March at 3am the time is changing to 4am and each last Sunday of
# October the time at 4am is changing to 3am"

# From Alexander Krivenyshev (2011-09-20):
# On September 20, 2011 the deputies of the Verkhovna Rada agreed to
# abolish the transfer clock to winter time.
#
# Bill No. 8330 of MP from the Party of Regions Oleg Nadoshi got
# approval from 266 deputies.
#
# Ukraine abolishes transfer back to the winter time (in Russian)
# http://news.mail.ru/politics/6861560/
#
# The Ukrainians will no longer change the clock (in Russian)
# http://www.segodnya.ua/news/14290482.html
#
# Deputies cancelled the winter time (in Russian)
# https://www.pravda.com.ua/rus/news/2011/09/20/6600616/
#
# From Philip Pizzey (2011-10-18):
# Today my Ukrainian colleagues have informed me that the
# Ukrainian parliament have decided that they will go to winter
# time this year after all.
#
# From Udo Schwedt (2011-10-18):
# As far as I understand, the recent change to the Ukrainian time zone
# (Europe/Kiev) to introduce permanent daylight saving time (similar
# to Russia) was reverted today:
# http://portal.rada.gov.ua/rada/control/en/publish/article/info_left?art_id=287324&cat_id=105995
#
# Also reported by Alexander Bokovoy (2011-10-18) who also noted:
# The law documents themselves are at
# http://w1.c1.rada.gov.ua/pls/zweb_n/webproc4_1?id=&pf3511=41484

# From Vladimir in Moscow via Alois Treindl re Kyiv time 1991/2 (2014-02-28):
# First in Ukraine they changed Time zone from UTC+3 to UTC+2 with DST:
#       03 25 1990 02:00 -03.00 1       Time Zone 3 with DST
#       07 01 1990 02:00 -02.00 1       Time Zone 2 with DST
# * Ukrainian Government's Resolution of 18.06.1990, No. 134.
# http://search.ligazakon.ua/l_doc2.nsf/link1/T001500.html
#
# They did not end DST in September, 1990 (according to the law,
# "summer time" was still in action):
#       09 30 1990 03:00 -02.00 1       Time Zone 2 with DST
# * Ukrainian Government's Resolution of 21.09.1990, No. 272.
# http://search.ligazakon.ua/l_doc2.nsf/link1/KP900272.html
#
# Again no change in March, 1991 ("summer time" in action):
#       03 31 1991 02:00 -02.00 1       Time Zone 2 with DST
#
# DST ended in September 1991 ("summer time" ended):
#       09 29 1991 03:00 -02.00 0       Time Zone 2, no DST
# * Ukrainian Government's Resolution of 25.09.1991, No. 225.
# http://www.uazakon.com/documents/date_21/pg_iwgdoc.htm
# This is an answer.
#
# Since 1992 they had normal DST procedure:
#       03 29 1992 02:00 -02.00 1       DST started
#       09 27 1992 03:00 -02.00 0       DST ended
# * Ukrainian Government's Resolution of 20.03.1992, No. 139.
# http://www.uazakon.com/documents/date_8u/pg_grcasa.htm

# From Paul Eggert (2022-04-12):
# As is usual in tzdb, Ukrainian zones use the most common English spellings.
# In particular, tzdb's name Europe/Kyiv uses the most common spelling in
# English for Ukraine's capital.  Although tzdb's former name was Europe/Kiev,
# "Kyiv" is now more common due to widespread reporting of the current conflict.
# Conversely, tzdb continues to use the names Europe/Uzhgorod and
# Europe/Zaporozhye; this is similar to tzdb's use of Europe/Prague, which is
# certainly wrong as a transliteration of the Czech "Praha".
# English-language spelling of Ukrainian names is in flux, and
# some day "Uzhhorod" or "Zaporizhzhia" may become substantially more
# common in English; in the meantime, do not change these
# English spellings as that means less disruption for our users.

# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
# This represents most of Ukraine.  See above for the spelling of "Kyiv".
Zone Europe/Kyiv	2:02:04 -	LMT	1880
			2:02:04	-	KMT	1924 May  2 # Kyiv Mean Time
			2:00	-	EET	1930 Jun 21
			3:00	-	MSK	1941 Sep 20
			1:00	C-Eur	CE%sT	1943 Nov  6
			3:00	Russia	MSK/MSD	1990 Jul  1  2:00
			2:00	1:00	EEST	1991 Sep 29  3:00
			2:00	C-Eur	EE%sT	1996 May 13
			2:00	EU	EE%sT
# Transcarpathia used CET 1990/1991.
# "Uzhhorod" is the transliteration of the Rusyn/Ukrainian pronunciation, but
# "Uzhgorod" is more common in English.
Zone Europe/Uzhgorod	1:29:12 -	LMT	1890 Oct
			1:00	-	CET	1940
			1:00	C-Eur	CE%sT	1944 Oct
			1:00	1:00	CEST	1944 Oct 26
			1:00	-	CET	1945 Jun 29
			3:00	Russia	MSK/MSD	1990
			3:00	-	MSK	1990 Jul  1  2:00
			1:00	-	CET	1991 Mar 31  3:00
			2:00	-	EET	1992 Mar 20
			2:00	C-Eur	EE%sT	1996 May 13
			2:00	EU	EE%sT
# Zaporozh'ye and eastern Lugansk oblasts observed DST 1990/1991.
# "Zaporizhzhia" is the transliteration of the Ukrainian name, but
# "Zaporozh'ye" is more common in English.  Use the common English
# spelling, except omit the apostrophe as it is not allowed in
# portable Posix file names.
Zone Europe/Zaporozhye	2:20:40 -	LMT	1880
			2:20	-	+0220	1924 May  2
			2:00	-	EET	1930 Jun 21
			3:00	-	MSK	1941 Aug 25
			1:00	C-Eur	CE%sT	1943 Oct 25
			3:00	Russia	MSK/MSD	1991 Mar 31  2:00
			2:00	E-Eur	EE%sT	1992 Mar 20
			2:00	C-Eur	EE%sT	1996 May 13
			2:00	EU	EE%sT

# Vatican City
# See Europe/Rome.

###############################################################################

# One source shows that Bulgaria, Cyprus, Finland, and Greece observe DST from
# the last Sunday in March to the last Sunday in September in 1986.
# The source shows Romania changing a day later than everybody else.
#
# According to Bernard Sieloff's source, Poland is in the MET time zone but
# uses the WE DST rules.  The Western USSR uses EET+1 and ME DST rules.
# Bernard Sieloff's source claims Romania switches on the same day, but at
# 00:00 standard time (i.e., 01:00 DST).  It also claims that Turkey
# switches on the same day, but switches on at 01:00 standard time
# and off at 00:00 standard time (i.e., 01:00 DST)

# ...
# Date: Wed, 28 Jan 87 16:56:27 -0100
# From: Tom Hofmann
# ...
#
# ...the European time rules are...standardized since 1981, when
# most European countries started DST.  Before that year, only
# a few countries (UK, France, Italy) had DST, each according
# to own national rules.  In 1981, however, DST started on
# 'Apr firstSun', and not on 'Mar lastSun' as in the following
# years...
# But also since 1981 there are some more national exceptions
# than listed in 'europe': Switzerland, for example, joined DST
# one year later, Denmark ended DST on 'Oct 1' instead of 'Sep
# lastSun' in 1981 - I don't know how they handle now.
#
# Finally, DST ist always from 'Apr 1' to 'Oct 1' in the
# Soviet Union (as far as I know).
#
# Tom Hofmann, Scientific Computer Center, CIBA-GEIGY AG,
# 4002 Basle, Switzerland
# ...

# ...
# Date: Wed, 4 Feb 87 22:35:22 +0100
# From: Dik T. Winter
# ...
#
# The information from Tom Hofmann is (as far as I know) not entirely correct.
# After a request from chongo at amdahl I tried to retrieve all information
# about DST in Europe.  I was able to find all from about 1969.
#
# ...standardization on DST in Europe started in about 1977 with switches on
# first Sunday in April and last Sunday in September...
# In 1981 UK joined Europe insofar that
# the starting day for both shifted to last Sunday in March.  And from 1982
# the whole of Europe used DST, with switch dates April 1 and October 1 in
# the Sov[i]et Union.  In 1985 the SU reverted to standard Europe[a]n switch
# dates...
#
# It should also be remembered that time-zones are not constants; e.g.
# Portugal switched in 1976 from MET (or CET) to WET with DST...
# Note also that though there were rules for switch dates not
# all countries abided to these dates, and many individual deviations
# occurred, though not since 1982 I believe.  Another note: it is always
# assumed that DST is 1 hour ahead of normal time, this need not be the
# case; at least in the Netherlands there have been times when DST was 2 hours
# in advance of normal time.
#
# ...
# dik t. winter, cwi, amsterdam, nederland
# ...

# From Bob Devine (1988-01-28):
# ...
# Greece: Last Sunday in April to last Sunday in September (iffy on dates).
# Since 1978.  Change at midnight.
# ...
# Monaco: has same DST as France.
# ...
./tzdatabase/checklinks.awk0000644000175000017500000000176013114340143016077 0ustar  anthonyanthony# Check links in tz tables.

# Contributed by Paul Eggert.  This file is in the public domain.

BEGIN {
    # Special marker indicating that the name is defined as a Zone.
    # It is a newline so that it cannot match a valid name.
    # It is not null so that its slot does not appear unset.
    Zone = "\n"
}

/^Z/ {
    if (defined[$2]) {
	if (defined[$2] == Zone) {
	    printf "%s: Zone has duplicate definition\n", $2
	} else {
	    printf "%s: Link with same name as Zone\n", $2
	}
	status = 1
    }
    defined[$2] = Zone
}

/^L/ {
    if (defined[$3]) {
	if (defined[$3] == Zone) {
	    printf "%s: Link with same name as Zone\n", $3
	} else if (defined[$3] == $2) {
	    printf "%s: Link has duplicate definition\n", $3
	} else {
	    printf "%s: Link to both %s and %s\n", $3, defined[$3], $2
	}
	status = 1
    }
    used[$2] = 1
    defined[$3] = $2
}

END {
    for (tz in used) {
	if (defined[tz] != Zone) {
	    printf "%s: Link to non-zone\n", tz
	    status = 1
	}
    }

    exit status
}
./tzdatabase/newtzset.30000644000175000017500000002054313502033252015225 0ustar  anthonyanthony.TH NEWTZSET 3
.SH NAME
tzset \- initialize time conversion information
.SH SYNOPSIS
.nf
.ie \n(.g .ds - \f(CW-\fP
.el ds - \-
.B #include 
.PP
.B timezone_t tzalloc(char const *TZ);
.PP
.B void tzfree(timezone_t tz);
.PP
.B void tzset(void);
.PP
.B cc ... \*-ltz
.fi
.SH DESCRIPTION
.ie '\(en'' .ds en \-
.el .ds en \(en
.ie '\(lq'' .ds lq \&"\"
.el .ds lq \(lq\"
.ie '\(rq'' .ds rq \&"\"
.el .ds rq \(rq\"
.de q
\\$3\*(lq\\$1\*(rq\\$2
..
.I Tzalloc
allocates and returns a timezone object described by
.BR TZ .
If
.B TZ
is not a valid timezone description, or if the object cannot be allocated,
.I tzalloc
returns a null pointer and sets
.BR errno .
.PP
.I Tzfree
frees a timezone object
.BR tz ,
which should have been successfully allocated by
.IR tzalloc .
This invalidates any
.B tm_zone
pointers that
.B tz
was used to set.
.PP
.I Tzset
acts like
.BR tzalloc(getenv("TZ")) ,
except it saves any resulting timezone object into internal
storage that is accessed by
.IR localtime ,
.IR localtime_r ,
and
.IR mktime .
The anonymous shared timezone object is freed by the next call to
.IR tzset .
If the implied call to
.B tzalloc
fails,
.I tzset
falls back on Universal Time (UT).
.PP
If
.B TZ
is null, the best available approximation to local (wall
clock) time, as specified by the
.IR tzfile (5)-format
file
.B localtime
in the system time conversion information directory, is used.
If
.B TZ
is the empty string,
UT is used, with the abbreviation "UTC"
and without leap second correction; please see
.IR newctime (3)
for more about UT, UTC, and leap seconds.  If
.B TZ
is nonnull and nonempty:
.IP
if the value begins with a colon, it is used as a pathname of a file
from which to read the time conversion information;
.IP
if the value does not begin with a colon, it is first used as the
pathname of a file from which to read the time conversion information,
and, if that file cannot be read, is used directly as a specification of
the time conversion information.
.PP
When
.B TZ
is used as a pathname, if it begins with a slash,
it is used as an absolute pathname; otherwise,
it is used as a pathname relative to a system time conversion information
directory.
The file must be in the format specified in
.IR tzfile (5).
.PP
When
.B TZ
is used directly as a specification of the time conversion information,
it must have the following syntax (spaces inserted for clarity):
.IP
\fIstd\|offset\fR[\fIdst\fR[\fIoffset\fR][\fB,\fIrule\fR]]
.PP
Where:
.RS
.TP 15
.IR std " and " dst
Three or more bytes that are the designation for the standard
.RI ( std )
or the alternative
.RI ( dst ,
such as daylight saving time)
time zone.  Only
.I std
is required; if
.I dst
is missing, then daylight saving time does not apply in this locale.
Upper- and lowercase letters are explicitly allowed.  Any characters
except a leading colon
.RB ( : ),
digits, comma
.RB ( , ),
ASCII minus
.RB ( \*- ),
ASCII plus
.RB ( + ),
and NUL bytes are allowed.
Alternatively, a designation can be surrounded by angle brackets
.B <
and
.BR > ;
in this case, the designation can contain any characters other than
.B >
and NUL.
.TP
.I offset
Indicates the value one must add to the local time to arrive at
Coordinated Universal Time.  The
.I offset
has the form:
.RS
.IP
\fIhh\fR[\fB:\fImm\fR[\fB:\fIss\fR]]
.RE
.IP
The minutes
.RI ( mm )
and seconds
.RI ( ss )
are optional.  The hour
.RI ( hh )
is required and may be a single digit.  The
.I offset
following
.I std
is required.  If no
.I offset
follows
.IR dst ,
daylight saving time is assumed to be one hour ahead of standard time.  One or
more digits may be used; the value is always interpreted as a decimal
number.  The hour must be between zero and 24, and the minutes (and
seconds) \*(en if present \*(en between zero and 59.  If preceded by a
.q "\*-" ,
the time zone shall be east of the Prime Meridian; otherwise it shall be
west (which may be indicated by an optional preceding
.q "+" .
.TP
.I rule
Indicates when to change to and back from daylight saving time.  The
.I rule
has the form:
.RS
.IP
\fIdate\fB/\fItime\fB,\fIdate\fB/\fItime\fR
.RE
.IP
where the first
.I date
describes when the change from standard to daylight saving time occurs and the
second
.I date
describes when the change back happens.  Each
.I time
field describes when, in current local time, the change to the other
time is made.
As an extension to POSIX, daylight saving is assumed to be in effect
all year if it begins January 1 at 00:00 and ends December 31 at
24:00 plus the difference between daylight saving and standard time,
leaving no room for standard time in the calendar.
.IP
The format of
.I date
is one of the following:
.RS
.TP 10
.BI J n
The Julian day
.I n
.RI "(1\ \(<=" "\ n\ " "\(<=\ 365).
Leap days are not counted; that is, in all years \*(en including leap
years \*(en February 28 is day 59 and March 1 is day 60.  It is
impossible to explicitly refer to the occasional February 29.
.TP
.I n
The zero-based Julian day
.RI "(0\ \(<=" "\ n\ " "\(<=\ 365).
Leap days are counted, and it is possible to refer to February 29.
.TP
.BI M m . n . d
The
.IR d' th
day
.RI "(0\ \(<=" "\ d\ " "\(<=\ 6)
of week
.I n
of month
.I m
of the year
.RI "(1\ \(<=" "\ n\ " "\(<=\ 5,
.RI "1\ \(<=" "\ m\ " "\(<=\ 12,
where week 5 means
.q "the last \fId\fP day in month \fIm\fP"
which may occur in either the fourth or the fifth week).  Week 1 is the
first week in which the
.IR d' th
day occurs.  Day zero is Sunday.
.RE
.IP "" 15
The
.I time
has the same format as
.I offset
except that POSIX does not allow a leading sign (\c
.q "\*-"
or
.q "+" ).
As an extension to POSIX, the hours part of
.I time
can range from \-167 through 167; this allows for unusual rules such
as
.q "the Saturday before the first Sunday of March" .
The default, if
.I time
is not given, is
.BR 02:00:00 .
.RE
.LP
Here are some examples of
.B TZ
values that directly specify the timezone; they use some of the
extensions to POSIX.
.TP
.B EST5
stands for US Eastern Standard
Time (EST), 5 hours behind UT, without daylight saving.
.TP
.B <+12>\*-12<+13>,M11.1.0,M1.2.1/147
stands for Fiji time, 12 hours ahead
of UT, springing forward on November's first Sunday at 02:00, and
falling back on January's second Monday at 147:00 (i.e., 03:00 on the
first Sunday on or after January 14).  The abbreviations for standard
and daylight saving time are
.q "+12"
and
.q "+13".
.TP
.B IST\*-2IDT,M3.4.4/26,M10.5.0
stands for Israel Standard Time (IST) and Israel Daylight Time (IDT),
2 hours ahead of UT, springing forward on March's fourth
Thursday at 26:00 (i.e., 02:00 on the first Friday on or after March
23), and falling back on October's last Sunday at 02:00.
.TP
.B <\*-04>4<\*-03>,J1/0,J365/25
stands for permanent daylight saving time, 3 hours behind UT with
abbreviation
.q "\*-03".
There is a dummy fall-back transition on December 31 at 25:00 daylight
saving time (i.e., 24:00 standard time, equivalent to January 1 at
00:00 standard time), and a simultaneous spring-forward transition on
January 1 at 00:00 standard time, so daylight saving time is in effect
all year and the initial
.B <\*-04>
is a placeholder.
.TP
.B <\*-03>3<\*-02>,M3.5.0/\*-2,M10.5.0/\*-1
stands for time in western Greenland, 3 hours behind UT, where clocks
follow the EU rules of
springing forward on March's last Sunday at 01:00 UT (\-02:00 local
time, i.e., 22:00 the previous day) and falling back on October's last
Sunday at 01:00 UT (\-01:00 local time, i.e., 23:00 the previous day).
The abbreviations for standard and daylight saving time are
.q "\*-03"
and
.q "\*-02".
.PP
If no
.I rule
is present in
.BR TZ ,
the rules specified
by the
.IR tzfile (5)-format
file
.B posixrules
in the system time conversion information directory are used, with the
standard and daylight saving time offsets from UT replaced by those specified by
the
.I offset
values in
.BR TZ .
.PP
For compatibility with System V Release 3.1, a semicolon
.RB ( ; )
may be used to separate the
.I rule
from the rest of the specification.
.SH FILES
.ta \w'/usr/share/zoneinfo/posixrules\0\0'u
/usr/share/zoneinfo	timezone information directory
.br
/usr/share/zoneinfo/localtime	local timezone file
.br
/usr/share/zoneinfo/posixrules	used with POSIX-style TZ's
.br
/usr/share/zoneinfo/GMT	for UTC leap seconds
.sp
If
.B /usr/share/zoneinfo/GMT
is absent,
UTC leap seconds are loaded from
.BR /usr/share/zoneinfo/posixrules .
.SH SEE ALSO
getenv(3),
newctime(3),
newstrftime(3),
time(2),
tzfile(5)
.\" This file is in the public domain, so clarified as of
.\" 2009-05-17 by Arthur David Olson.
./tzdatabase/date.c0000644000175000017500000001266113121030307014334 0ustar  anthonyanthony/* Display or set the current time and date.  */

/* Copyright 1985, 1987, 1988 The Regents of the University of California.
   All rights reserved.

   Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions
   are met:
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
   2. Redistributions in binary form must reproduce the above copyright
      notice, this list of conditions and the following disclaimer in the
      documentation and/or other materials provided with the distribution.
   3. Neither the name of the University nor the names of its contributors
      may be used to endorse or promote products derived from this software
      without specific prior written permission.

   THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND
   ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
   FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   SUCH DAMAGE.  */

#include "private.h"
#include 
#include 

/*
** The two things date knows about time are. . .
*/

#ifndef TM_YEAR_BASE
#define TM_YEAR_BASE	1900
#endif /* !defined TM_YEAR_BASE */

#ifndef SECSPERMIN
#define SECSPERMIN	60
#endif /* !defined SECSPERMIN */

#if !HAVE_POSIX_DECLS
extern char *		optarg;
extern int		optind;
#endif

static int		retval = EXIT_SUCCESS;

static void		display(const char *, time_t);
static void		dogmt(void);
static void		errensure(void);
static void		timeout(FILE *, const char *, const struct tm *);
static _Noreturn void	usage(void);

int
main(const int argc, char *argv[])
{
	register const char *	format;
	register const char *	cp;
	register int		ch;
	register bool		rflag = false;
	time_t			t;
	intmax_t		secs;
	char *			endarg;

#ifdef LC_ALL
	setlocale(LC_ALL, "");
#endif /* defined(LC_ALL) */
#if HAVE_GETTEXT
#ifdef TZ_DOMAINDIR
	bindtextdomain(TZ_DOMAIN, TZ_DOMAINDIR);
#endif /* defined(TEXTDOMAINDIR) */
	textdomain(TZ_DOMAIN);
#endif /* HAVE_GETTEXT */
	t = time(NULL);
	format = NULL;
	while ((ch = getopt(argc, argv, "ucr:")) != EOF && ch != -1) {
		switch (ch) {
		default:
			usage();
		case 'u':		/* do it in UT */
		case 'c':
			dogmt();
			break;
		case 'r':		/* seconds since 1970 */
			if (rflag) {
				fprintf(stderr,
					_("date: error: multiple -r's used"));
				usage();
			}
			rflag = true;
			errno = 0;
			secs = strtoimax (optarg, &endarg, 0);
			if (*endarg || optarg == endarg)
				errno = EINVAL;
			else if (! (TIME_T_MIN <= secs && secs <= TIME_T_MAX))
				errno = ERANGE;
			if (errno) {
				perror(optarg);
				errensure();
				exit(retval);
			}
			t = secs;
			break;
		}
	}
	while (optind < argc) {
		cp = argv[optind++];
		if (*cp == '+')
			if (format == NULL)
				format = cp + 1;
			else {
				fprintf(stderr,
_("date: error: multiple formats in command line\n"));
				usage();
			}
		else {
		  fprintf(stderr, _("date: unknown operand: %s\n"), cp);
		  usage();
		}
	}

	display(format, t);
	return retval;
}

static void
dogmt(void)
{
	static char **	fakeenv;

	if (fakeenv == NULL) {
		register int	from;
		register int	to;
		register int	n;
		static char	tzegmt0[] = "TZ=GMT0";

		for (n = 0;  environ[n] != NULL;  ++n)
			continue;
		fakeenv = malloc((n + 2) * sizeof *fakeenv);
		if (fakeenv == NULL) {
			perror(_("Memory exhausted"));
			errensure();
			exit(retval);
		}
		to = 0;
		fakeenv[to++] = tzegmt0;
		for (from = 1; environ[from] != NULL; ++from)
			if (strncmp(environ[from], "TZ=", 3) != 0)
				fakeenv[to++] = environ[from];
		fakeenv[to] = NULL;
		environ = fakeenv;
	}
}

static void
errensure(void)
{
	if (retval == EXIT_SUCCESS)
		retval = EXIT_FAILURE;
}

static void
usage(void)
{
	fprintf(stderr,
		       _("date: usage: date [-u] [-c] [-r seconds]"
			 " [+format]\n"));
	errensure();
	exit(retval);
}

static void
display(char const *format, time_t now)
{
	struct tm *tmp;

	tmp = localtime(&now);
	if (!tmp) {
		fprintf(stderr,
			_("date: error: time out of range\n"));
		errensure();
		return;
	}
	timeout(stdout, format ? format : "%+", tmp);
	putchar('\n');
	fflush(stdout);
	fflush(stderr);
	if (ferror(stdout) || ferror(stderr)) {
		fprintf(stderr,
			_("date: error: couldn't write results\n"));
		errensure();
	}
}

#define INCR	1024

static void
timeout(FILE *fp, char const *format, struct tm const *tmp)
{
	char *	cp;
	size_t	result;
	size_t	size;
	struct tm tm;

	if (*format == '\0')
		return;
	if (!tmp) {
		fprintf(stderr, _("date: error: time out of range\n"));
		errensure();
		return;
	}
	tm = *tmp;
	tmp = &tm;
	size = INCR;
	cp = malloc(size);
	for ( ; ; ) {
		if (cp == NULL) {
			fprintf(stderr,
				_("date: error: can't get memory\n"));
			errensure();
			exit(retval);
		}
		cp[0] = '\1';
		result = strftime(cp, size, format, tmp);
		if (result != 0 || cp[0] == '\0')
			break;
		size += INCR;
		cp = realloc(cp, size);
	}
	fwrite(cp, 1, result, fp);
	free(cp);
}
./tzdatabase/checktab.awk0000644000175000017500000001057214122133267015535 0ustar  anthonyanthony# Check tz tables for consistency.

# Contributed by Paul Eggert.  This file is in the public domain.

BEGIN {
	FS = "\t"

	if (!iso_table) iso_table = "iso3166.tab"
	if (!zone_table) zone_table = "zone1970.tab"
	if (!want_warnings) want_warnings = -1

	while (getline >"/dev/stderr"
			status = 1
		}
		cc = $1
		name = $2
		if (cc !~ /^[A-Z][A-Z]$/) {
			printf "%s:%d: invalid country code '%s'\n", \
				iso_table, iso_NR, cc >>"/dev/stderr"
			status = 1
		}
		if (cc <= cc0) {
			if (cc == cc0) {
				s = "duplicate";
			} else {
				s = "out of order";
			}

			printf "%s:%d: country code '%s' is %s\n", \
				iso_table, iso_NR, cc, s \
				>>"/dev/stderr"
			status = 1
		}
		cc0 = cc
		if (name2cc[name]) {
			printf "%s:%d: '%s' and '%s' have the same name\n", \
				iso_table, iso_NR, name2cc[name], cc \
				>>"/dev/stderr"
			status = 1
		}
		name2cc[name] = cc
		cc2name[cc] = name
		cc2NR[cc] = iso_NR
	}

	cc0 = ""

	while (getline >"/dev/stderr"
			status = 1
		}
		ccs = input_ccs[zone_NR] = $1
		coordinates = $2
		tz = $3
		comments = input_comments[zone_NR] = $4
		split(ccs, cca, /,/)
		cc = cca[1]

		# Don't complain about a special case for Crimea in zone.tab.
		# FIXME: zone.tab should be removed, since it is obsolete.
		# Or at least put just "XX" in its country-code column.
		if (cc < cc0 \
		    && !(zone_table == "zone.tab" \
			 && tz0 == "Europe/Simferopol")) {
			printf "%s:%d: country code '%s' is out of order\n", \
				zone_table, zone_NR, cc >>"/dev/stderr"
			status = 1
		}
		cc0 = cc
		tz0 = tz
		tztab[tz] = 1
		tz2NR[tz] = zone_NR
		for (i in cca) {
		    cc = cca[i]
		    if (cc2name[cc]) {
			cc_used[cc]++
		    } else {
			printf "%s:%d: %s: unknown country code\n", \
				zone_table, zone_NR, cc >>"/dev/stderr"
			status = 1
		    }
		}
		if (coordinates !~ /^[-+][0-9][0-9][0-5][0-9][-+][01][0-9][0-9][0-5][0-9]$/ \
		    && coordinates !~ /^[-+][0-9][0-9][0-5][0-9][0-5][0-9][-+][01][0-9][0-9][0-5][0-9][0-5][0-9]$/) {
			printf "%s:%d: %s: invalid coordinates\n", \
				zone_table, zone_NR, coordinates >>"/dev/stderr"
			status = 1
		}
	}

	for (i = 1; i <= zone_NR; i++) {
	  ccs = input_ccs[i]
	  if (!ccs) continue
	  comments = input_comments[i]
	  split(ccs, cca, /,/)
	  used_max = 0
          for (j in cca) {
	    cc = cca[j]
	    if (used_max < cc_used[cc]) {
	      used_max = cc_used[cc]
	    }
	  }
	  if (used_max <= 1 && comments) {
	    printf "%s:%d: unnecessary comment '%s'\n", \
	      zone_table, i, comments \
	      >>"/dev/stderr"
	    status = 1
	  } else if (1 < cc_used[cc] && !comments) {
	    printf "%s:%d: missing comment for %s\n", \
	      zone_table, i, cc \
	      >>"/dev/stderr"
	    status = 1
	  }
	}
	FS = " "
}

$1 ~ /^#/ { next }

{
	tz = rules = ""
	if ($1 == "Zone") {
		tz = $2
		ruleUsed[$4] = 1
		if ($5 ~ /%/) rulePercentUsed[$4] = 1
	} else if ($1 == "Link" && zone_table == "zone.tab") {
		# Ignore Link commands if source and destination basenames
		# are identical, e.g. Europe/Istanbul versus Asia/Istanbul.
		src = $2
		dst = $3
		while ((i = index(src, "/"))) src = substr(src, i+1)
		while ((i = index(dst, "/"))) dst = substr(dst, i+1)
		if (src != dst) tz = $3
	} else if ($1 == "Rule") {
		ruleDefined[$2] = 1
		if ($10 != "-") ruleLetters[$2] = 1
	} else {
		ruleUsed[$2] = 1
		if ($3 ~ /%/) rulePercentUsed[$2] = 1
	}
	if (tz && tz ~ /\// && tz !~ /^Etc\//) {
		if (!tztab[tz] && FILENAME != "backward") {
			printf "%s: no data for '%s'\n", zone_table, tz \
				>>"/dev/stderr"
			status = 1
		}
		zoneSeen[tz] = 1
	}
}

END {
	for (tz in ruleDefined) {
		if (!ruleUsed[tz]) {
			printf "%s: Rule never used\n", tz
			status = 1
		}
	}
	for (tz in ruleLetters) {
		if (!rulePercentUsed[tz]) {
			printf "%s: Rule contains letters never used\n", tz
			status = 1
		}
	}
	for (tz in tztab) {
		if (!zoneSeen[tz] && tz !~ /^Etc\//) {
			printf "%s:%d: no Zone table for '%s'\n", \
				zone_table, tz2NR[tz], tz >>"/dev/stderr"
			status = 1
		}
	}
	if (0 < want_warnings) {
		for (cc in cc2name) {
			if (!cc_used[cc]) {
				printf "%s:%d: warning: " \
					"no Zone entries for %s (%s)\n", \
					iso_table, cc2NR[cc], cc, cc2name[cc]
			}
		}
	}

	exit status
}
./tzdatabase/systemv0000644000175000017500000000307213533271463014725 0ustar  anthonyanthony# tzdb data for System V rules (this file is obsolete)

# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.

# Old rules, should the need arise.
# No attempt is made to handle Newfoundland, since it cannot be expressed
# using the System V "TZ" scheme (half-hour offset), or anything outside
# North America (no support for non-standard DST start/end dates), nor
# the changes in the DST rules in the US after 1976 (which occurred after
# the old rules were written).
#
# If you need the old rules, uncomment ## lines.
# Compile this *without* leap second correction for true conformance.

# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
Rule	SystemV	min	1973	-	Apr	lastSun	2:00	1:00	D
Rule	SystemV	min	1973	-	Oct	lastSun	2:00	0	S
Rule	SystemV	1974	only	-	Jan	6	2:00	1:00	D
Rule	SystemV	1974	only	-	Nov	lastSun	2:00	0	S
Rule	SystemV	1975	only	-	Feb	23	2:00	1:00	D
Rule	SystemV	1975	only	-	Oct	lastSun	2:00	0	S
Rule	SystemV	1976	max	-	Apr	lastSun	2:00	1:00	D
Rule	SystemV	1976	max	-	Oct	lastSun	2:00	0	S

# Zone	NAME		STDOFF	RULES/SAVE	FORMAT	[UNTIL]
## Zone	SystemV/AST4ADT	-4:00	SystemV		A%sT
## Zone	SystemV/EST5EDT	-5:00	SystemV		E%sT
## Zone	SystemV/CST6CDT	-6:00	SystemV		C%sT
## Zone	SystemV/MST7MDT	-7:00	SystemV		M%sT
## Zone	SystemV/PST8PDT	-8:00	SystemV		P%sT
## Zone	SystemV/YST9YDT	-9:00	SystemV		Y%sT
## Zone	SystemV/AST4	-4:00	-		AST
## Zone	SystemV/EST5	-5:00	-		EST
## Zone	SystemV/CST6	-6:00	-		CST
## Zone	SystemV/MST7	-7:00	-		MST
## Zone	SystemV/PST8	-8:00	-		PST
## Zone	SystemV/YST9	-9:00	-		YST
## Zone	SystemV/HST10	-10:00	-		HST
./tzdatabase/time2posix.3.txt0000644000175000017500000000677713323151404016301 0ustar  anthonyanthonyTIME2POSIX(3)              Library Functions Manual              TIME2POSIX(3)

NAME
       time2posix, posix2time - convert seconds since the Epoch

SYNOPSIS
       #include 

       time_t time2posix(time_t t);

       time_t posix2time(time_t t);

       cc ... -ltz

DESCRIPTION
       IEEE Standard 1003.1 (POSIX) requires the time_t value 536457599 to
       stand for 1986-12-31 23:59:59 UTC.  This effectively implies that POSIX
       time_t values cannot include leap seconds and, therefore, that the
       system time must be adjusted as each leap occurs.

       If the time package is configured with leap-second support enabled,
       however, no such adjustment is needed and time_t values continue to
       increase over leap events (as a true "seconds since..."  value).  This
       means that these values will differ from those required by POSIX by the
       net number of leap seconds inserted since the Epoch.

       Typically this is not a problem as the type time_t is intended to be
       (mostly) opaque - time_t values should only be obtained-from and
       passed-to functions such as time(2), localtime(3), mktime(3), and
       difftime(3).  However, POSIX gives an arithmetic expression for
       directly computing a time_t value from a given date/time, and the same
       relationship is assumed by some (usually older) applications.  Any
       programs creating/dissecting time_t's using such a relationship will
       typically not handle intervals over leap seconds correctly.

       The time2posix and posix2time functions are provided to address this
       time_t mismatch by converting between local time_t values and their
       POSIX equivalents.  This is done by accounting for the number of time-
       base changes that would have taken place on a POSIX system as leap
       seconds were inserted or deleted.  These converted values can then be
       used in lieu of correcting the older applications, or when
       communicating with POSIX-compliant systems.

       Time2posix is single-valued.  That is, every local time_t corresponds
       to a single POSIX time_t.  Posix2time is less well-behaved: for a
       positive leap second hit the result is not unique, and for a negative
       leap second hit the corresponding POSIX time_t doesn't exist so an
       adjacent value is returned.  Both of these are good indicators of the
       inferiority of the POSIX representation.

       The following table summarizes the relationship between a time T and
       it's conversion to, and back from, the POSIX representation over the
       leap second inserted at the end of June, 1993.
       DATE     TIME     T   X=time2posix(T) posix2time(X)
       93/06/30 23:59:59 A+0 B+0             A+0
       93/06/30 23:59:60 A+1 B+1             A+1 or A+2
       93/07/01 00:00:00 A+2 B+1             A+1 or A+2
       93/07/01 00:00:01 A+3 B+2             A+3

       A leap second deletion would look like...

       DATE     TIME     T   X=time2posix(T) posix2time(X)
       ??/06/30 23:59:58 A+0 B+0             A+0
       ??/07/01 00:00:00 A+1 B+2             A+1
       ??/07/01 00:00:01 A+2 B+3             A+2

                            [Note: posix2time(B+1) => A+0 or A+1]

       If leap-second support is not enabled, local time_t's and POSIX
       time_t's are equivalent, and both time2posix and posix2time degenerate
       to the identity function.

SEE ALSO
       difftime(3), localtime(3), mktime(3), time(2)

                                                                 TIME2POSIX(3)
./tzdatabase/localtime.c0000644000175000017500000016431013501512150015372 0ustar  anthonyanthony/* Convert timestamp from time_t to struct tm.  */

/*
** This file is in the public domain, so clarified as of
** 1996-06-05 by Arthur David Olson.
*/

/*
** Leap second handling from Bradley White.
** POSIX-style TZ environment variable handling from Guy Harris.
*/

/*LINTLIBRARY*/

#define LOCALTIME_IMPLEMENTATION
#include "private.h"

#include "tzfile.h"
#include 

#if defined THREAD_SAFE && THREAD_SAFE
# include 
static pthread_mutex_t locallock = PTHREAD_MUTEX_INITIALIZER;
static int lock(void) { return pthread_mutex_lock(&locallock); }
static void unlock(void) { pthread_mutex_unlock(&locallock); }
#else
static int lock(void) { return 0; }
static void unlock(void) { }
#endif

/* NETBSD_INSPIRED_EXTERN functions are exported to callers if
   NETBSD_INSPIRED is defined, and are private otherwise.  */
#if NETBSD_INSPIRED
# define NETBSD_INSPIRED_EXTERN
#else
# define NETBSD_INSPIRED_EXTERN static
#endif

#ifndef TZ_ABBR_MAX_LEN
#define TZ_ABBR_MAX_LEN	16
#endif /* !defined TZ_ABBR_MAX_LEN */

#ifndef TZ_ABBR_CHAR_SET
#define TZ_ABBR_CHAR_SET \
	"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 :+-._"
#endif /* !defined TZ_ABBR_CHAR_SET */

#ifndef TZ_ABBR_ERR_CHAR
#define TZ_ABBR_ERR_CHAR	'_'
#endif /* !defined TZ_ABBR_ERR_CHAR */

/*
** SunOS 4.1.1 headers lack O_BINARY.
*/

#ifdef O_BINARY
#define OPEN_MODE	(O_RDONLY | O_BINARY)
#endif /* defined O_BINARY */
#ifndef O_BINARY
#define OPEN_MODE	O_RDONLY
#endif /* !defined O_BINARY */

#ifndef WILDABBR
/*
** Someone might make incorrect use of a time zone abbreviation:
**	1.	They might reference tzname[0] before calling tzset (explicitly
**		or implicitly).
**	2.	They might reference tzname[1] before calling tzset (explicitly
**		or implicitly).
**	3.	They might reference tzname[1] after setting to a time zone
**		in which Daylight Saving Time is never observed.
**	4.	They might reference tzname[0] after setting to a time zone
**		in which Standard Time is never observed.
**	5.	They might reference tm.TM_ZONE after calling offtime.
** What's best to do in the above cases is open to debate;
** for now, we just set things up so that in any of the five cases
** WILDABBR is used. Another possibility: initialize tzname[0] to the
** string "tzname[0] used before set", and similarly for the other cases.
** And another: initialize tzname[0] to "ERA", with an explanation in the
** manual page of what this "time zone abbreviation" means (doing this so
** that tzname[0] has the "normal" length of three characters).
*/
#define WILDABBR	"   "
#endif /* !defined WILDABBR */

static const char	wildabbr[] = WILDABBR;

static const char	gmt[] = "GMT";

/*
** The DST rules to use if TZ has no rules and we can't load TZDEFRULES.
** Default to US rules as of 2017-05-07.
** POSIX does not specify the default DST rules;
** for historical reasons, US rules are a common default.
*/
#ifndef TZDEFRULESTRING
#define TZDEFRULESTRING ",M3.2.0,M11.1.0"
#endif

struct ttinfo {				/* time type information */
	int_fast32_t	tt_utoff;	/* UT offset in seconds */
	bool		tt_isdst;	/* used to set tm_isdst */
	int		tt_desigidx;	/* abbreviation list index */
	bool		tt_ttisstd;	/* transition is std time */
	bool		tt_ttisut;	/* transition is UT */
};

struct lsinfo {				/* leap second information */
	time_t		ls_trans;	/* transition time */
	int_fast64_t	ls_corr;	/* correction to apply */
};

#define SMALLEST(a, b)	(((a) < (b)) ? (a) : (b))
#define BIGGEST(a, b)	(((a) > (b)) ? (a) : (b))

#ifdef TZNAME_MAX
#define MY_TZNAME_MAX	TZNAME_MAX
#endif /* defined TZNAME_MAX */
#ifndef TZNAME_MAX
#define MY_TZNAME_MAX	255
#endif /* !defined TZNAME_MAX */

struct state {
	int		leapcnt;
	int		timecnt;
	int		typecnt;
	int		charcnt;
	bool		goback;
	bool		goahead;
	time_t		ats[TZ_MAX_TIMES];
	unsigned char	types[TZ_MAX_TIMES];
	struct ttinfo	ttis[TZ_MAX_TYPES];
	char		chars[BIGGEST(BIGGEST(TZ_MAX_CHARS + 1, sizeof gmt),
				(2 * (MY_TZNAME_MAX + 1)))];
	struct lsinfo	lsis[TZ_MAX_LEAPS];

	/* The time type to use for early times or if no transitions.
	   It is always zero for recent tzdb releases.
	   It might be nonzero for data from tzdb 2018e or earlier.  */
	int defaulttype;
};

enum r_type {
  JULIAN_DAY,		/* Jn = Julian day */
  DAY_OF_YEAR,		/* n = day of year */
  MONTH_NTH_DAY_OF_WEEK	/* Mm.n.d = month, week, day of week */
};

struct rule {
	enum r_type	r_type;		/* type of rule */
	int		r_day;		/* day number of rule */
	int		r_week;		/* week number of rule */
	int		r_mon;		/* month number of rule */
	int_fast32_t	r_time;		/* transition time of rule */
};

static struct tm *gmtsub(struct state const *, time_t const *, int_fast32_t,
			 struct tm *);
static bool increment_overflow(int *, int);
static bool increment_overflow_time(time_t *, int_fast32_t);
static bool normalize_overflow32(int_fast32_t *, int *, int);
static struct tm *timesub(time_t const *, int_fast32_t, struct state const *,
			  struct tm *);
static bool typesequiv(struct state const *, int, int);
static bool tzparse(char const *, struct state *, bool);

#ifdef ALL_STATE
static struct state *	lclptr;
static struct state *	gmtptr;
#endif /* defined ALL_STATE */

#ifndef ALL_STATE
static struct state	lclmem;
static struct state	gmtmem;
#define lclptr		(&lclmem)
#define gmtptr		(&gmtmem)
#endif /* State Farm */

#ifndef TZ_STRLEN_MAX
#define TZ_STRLEN_MAX 255
#endif /* !defined TZ_STRLEN_MAX */

static char		lcl_TZname[TZ_STRLEN_MAX + 1];
static int		lcl_is_set;

/*
** Section 4.12.3 of X3.159-1989 requires that
**	Except for the strftime function, these functions [asctime,
**	ctime, gmtime, localtime] return values in one of two static
**	objects: a broken-down time structure and an array of char.
** Thanks to Paul Eggert for noting this.
*/

static struct tm	tm;

#if !HAVE_POSIX_DECLS || TZ_TIME_T
# if HAVE_TZNAME
char *			tzname[2] = {
	(char *) wildabbr,
	(char *) wildabbr
};
# endif
# if USG_COMPAT
long			timezone;
int			daylight;
# endif
# ifdef ALTZONE
long			altzone;
# endif
#endif

/* Initialize *S to a value based on UTOFF, ISDST, and DESIGIDX.  */
static void
init_ttinfo(struct ttinfo *s, int_fast32_t utoff, bool isdst, int desigidx)
{
  s->tt_utoff = utoff;
  s->tt_isdst = isdst;
  s->tt_desigidx = desigidx;
  s->tt_ttisstd = false;
  s->tt_ttisut = false;
}

static int_fast32_t
detzcode(const char *const codep)
{
	register int_fast32_t	result;
	register int		i;
	int_fast32_t one = 1;
	int_fast32_t halfmaxval = one << (32 - 2);
	int_fast32_t maxval = halfmaxval - 1 + halfmaxval;
	int_fast32_t minval = -1 - maxval;

	result = codep[0] & 0x7f;
	for (i = 1; i < 4; ++i)
		result = (result << 8) | (codep[i] & 0xff);

	if (codep[0] & 0x80) {
	  /* Do two's-complement negation even on non-two's-complement machines.
	     If the result would be minval - 1, return minval.  */
	  result -= !TWOS_COMPLEMENT(int_fast32_t) && result != 0;
	  result += minval;
	}
	return result;
}

static int_fast64_t
detzcode64(const char *const codep)
{
	register uint_fast64_t result;
	register int	i;
	int_fast64_t one = 1;
	int_fast64_t halfmaxval = one << (64 - 2);
	int_fast64_t maxval = halfmaxval - 1 + halfmaxval;
	int_fast64_t minval = -TWOS_COMPLEMENT(int_fast64_t) - maxval;

	result = codep[0] & 0x7f;
	for (i = 1; i < 8; ++i)
		result = (result << 8) | (codep[i] & 0xff);

	if (codep[0] & 0x80) {
	  /* Do two's-complement negation even on non-two's-complement machines.
	     If the result would be minval - 1, return minval.  */
	  result -= !TWOS_COMPLEMENT(int_fast64_t) && result != 0;
	  result += minval;
	}
	return result;
}

static void
update_tzname_etc(struct state const *sp, struct ttinfo const *ttisp)
{
#if HAVE_TZNAME
  tzname[ttisp->tt_isdst] = (char *) &sp->chars[ttisp->tt_desigidx];
#endif
#if USG_COMPAT
  if (!ttisp->tt_isdst)
    timezone = - ttisp->tt_utoff;
#endif
#ifdef ALTZONE
  if (ttisp->tt_isdst)
    altzone = - ttisp->tt_utoff;
#endif
}

static void
settzname(void)
{
	register struct state * const	sp = lclptr;
	register int			i;

#if HAVE_TZNAME
	tzname[0] = tzname[1] = (char *) (sp ? wildabbr : gmt);
#endif
#if USG_COMPAT
	daylight = 0;
	timezone = 0;
#endif
#ifdef ALTZONE
	altzone = 0;
#endif /* defined ALTZONE */
	if (sp == NULL) {
		return;
	}
	/*
	** And to get the latest time zone abbreviations into tzname. . .
	*/
	for (i = 0; i < sp->typecnt; ++i) {
		register const struct ttinfo * const	ttisp = &sp->ttis[i];
		update_tzname_etc(sp, ttisp);
	}
	for (i = 0; i < sp->timecnt; ++i) {
		register const struct ttinfo * const	ttisp =
							&sp->ttis[
								sp->types[i]];
		update_tzname_etc(sp, ttisp);
#if USG_COMPAT
		if (ttisp->tt_isdst)
			daylight = 1;
#endif
	}
}

static void
scrub_abbrs(struct state *sp)
{
	int i;
	/*
	** First, replace bogus characters.
	*/
	for (i = 0; i < sp->charcnt; ++i)
		if (strchr(TZ_ABBR_CHAR_SET, sp->chars[i]) == NULL)
			sp->chars[i] = TZ_ABBR_ERR_CHAR;
	/*
	** Second, truncate long abbreviations.
	*/
	for (i = 0; i < sp->typecnt; ++i) {
		register const struct ttinfo * const	ttisp = &sp->ttis[i];
		char *cp = &sp->chars[ttisp->tt_desigidx];

		if (strlen(cp) > TZ_ABBR_MAX_LEN &&
			strcmp(cp, GRANDPARENTED) != 0)
				*(cp + TZ_ABBR_MAX_LEN) = '\0';
	}
}

static bool
differ_by_repeat(const time_t t1, const time_t t0)
{
	if (TYPE_BIT(time_t) - TYPE_SIGNED(time_t) < SECSPERREPEAT_BITS)
		return 0;
	return t1 - t0 == SECSPERREPEAT;
}

/* Input buffer for data read from a compiled tz file.  */
union input_buffer {
  /* The first part of the buffer, interpreted as a header.  */
  struct tzhead tzhead;

  /* The entire buffer.  */
  char buf[2 * sizeof(struct tzhead) + 2 * sizeof (struct state)
	   + 4 * TZ_MAX_TIMES];
};

/* TZDIR with a trailing '/' rather than a trailing '\0'.  */
static char const tzdirslash[sizeof TZDIR] = TZDIR "/";

/* Local storage needed for 'tzloadbody'.  */
union local_storage {
  /* The results of analyzing the file's contents after it is opened.  */
  struct file_analysis {
    /* The input buffer.  */
    union input_buffer u;

    /* A temporary state used for parsing a TZ string in the file.  */
    struct state st;
  } u;

  /* The file name to be opened.  */
  char fullname[BIGGEST(sizeof (struct file_analysis),
			sizeof tzdirslash + 1024)];
};

/* Load tz data from the file named NAME into *SP.  Read extended
   format if DOEXTEND.  Use *LSP for temporary storage.  Return 0 on
   success, an errno value on failure.  */
static int
tzloadbody(char const *name, struct state *sp, bool doextend,
	   union local_storage *lsp)
{
	register int			i;
	register int			fid;
	register int			stored;
	register ssize_t		nread;
	register bool doaccess;
	register union input_buffer *up = &lsp->u.u;
	register int tzheadsize = sizeof (struct tzhead);

	sp->goback = sp->goahead = false;

	if (! name) {
		name = TZDEFAULT;
		if (! name)
		  return EINVAL;
	}

	if (name[0] == ':')
		++name;
#ifdef SUPPRESS_TZDIR
	/* Do not prepend TZDIR.  This is intended for specialized
	   applications only, due to its security implications.  */
	doaccess = true;
#else
	doaccess = name[0] == '/';
#endif
	if (!doaccess) {
		char const *dot;
		size_t namelen = strlen(name);
		if (sizeof lsp->fullname - sizeof tzdirslash <= namelen)
		  return ENAMETOOLONG;

		/* Create a string "TZDIR/NAME".  Using sprintf here
		   would pull in stdio (and would fail if the
		   resulting string length exceeded INT_MAX!).  */
		memcpy(lsp->fullname, tzdirslash, sizeof tzdirslash);
		strcpy(lsp->fullname + sizeof tzdirslash, name);

		/* Set doaccess if NAME contains a ".." file name
		   component, as such a name could read a file outside
		   the TZDIR virtual subtree.  */
		for (dot = name; (dot = strchr(dot, '.')); dot++)
		  if ((dot == name || dot[-1] == '/') && dot[1] == '.'
		      && (dot[2] == '/' || !dot[2])) {
		    doaccess = true;
		    break;
		  }

		name = lsp->fullname;
	}
	if (doaccess && access(name, R_OK) != 0)
	  return errno;
	fid = open(name, OPEN_MODE);
	if (fid < 0)
	  return errno;

	nread = read(fid, up->buf, sizeof up->buf);
	if (nread < tzheadsize) {
	  int err = nread < 0 ? errno : EINVAL;
	  close(fid);
	  return err;
	}
	if (close(fid) < 0)
	  return errno;
	for (stored = 4; stored <= 8; stored *= 2) {
		int_fast32_t ttisstdcnt = detzcode(up->tzhead.tzh_ttisstdcnt);
		int_fast32_t ttisutcnt = detzcode(up->tzhead.tzh_ttisutcnt);
		int_fast64_t prevtr = 0;
		int_fast32_t prevcorr = 0;
		int_fast32_t leapcnt = detzcode(up->tzhead.tzh_leapcnt);
		int_fast32_t timecnt = detzcode(up->tzhead.tzh_timecnt);
		int_fast32_t typecnt = detzcode(up->tzhead.tzh_typecnt);
		int_fast32_t charcnt = detzcode(up->tzhead.tzh_charcnt);
		char const *p = up->buf + tzheadsize;
		/* Although tzfile(5) currently requires typecnt to be nonzero,
		   support future formats that may allow zero typecnt
		   in files that have a TZ string and no transitions.  */
		if (! (0 <= leapcnt && leapcnt < TZ_MAX_LEAPS
		       && 0 <= typecnt && typecnt < TZ_MAX_TYPES
		       && 0 <= timecnt && timecnt < TZ_MAX_TIMES
		       && 0 <= charcnt && charcnt < TZ_MAX_CHARS
		       && (ttisstdcnt == typecnt || ttisstdcnt == 0)
		       && (ttisutcnt == typecnt || ttisutcnt == 0)))
		  return EINVAL;
		if (nread
		    < (tzheadsize		/* struct tzhead */
		       + timecnt * stored	/* ats */
		       + timecnt		/* types */
		       + typecnt * 6		/* ttinfos */
		       + charcnt		/* chars */
		       + leapcnt * (stored + 4)	/* lsinfos */
		       + ttisstdcnt		/* ttisstds */
		       + ttisutcnt))		/* ttisuts */
		  return EINVAL;
		sp->leapcnt = leapcnt;
		sp->timecnt = timecnt;
		sp->typecnt = typecnt;
		sp->charcnt = charcnt;

		/* Read transitions, discarding those out of time_t range.
		   But pretend the last transition before TIME_T_MIN
		   occurred at TIME_T_MIN.  */
		timecnt = 0;
		for (i = 0; i < sp->timecnt; ++i) {
			int_fast64_t at
			  = stored == 4 ? detzcode(p) : detzcode64(p);
			sp->types[i] = at <= TIME_T_MAX;
			if (sp->types[i]) {
			  time_t attime
			    = ((TYPE_SIGNED(time_t) ? at < TIME_T_MIN : at < 0)
			       ? TIME_T_MIN : at);
			  if (timecnt && attime <= sp->ats[timecnt - 1]) {
			    if (attime < sp->ats[timecnt - 1])
			      return EINVAL;
			    sp->types[i - 1] = 0;
			    timecnt--;
			  }
			  sp->ats[timecnt++] = attime;
			}
			p += stored;
		}

		timecnt = 0;
		for (i = 0; i < sp->timecnt; ++i) {
			unsigned char typ = *p++;
			if (sp->typecnt <= typ)
			  return EINVAL;
			if (sp->types[i])
				sp->types[timecnt++] = typ;
		}
		sp->timecnt = timecnt;
		for (i = 0; i < sp->typecnt; ++i) {
			register struct ttinfo *	ttisp;
			unsigned char isdst, desigidx;

			ttisp = &sp->ttis[i];
			ttisp->tt_utoff = detzcode(p);
			p += 4;
			isdst = *p++;
			if (! (isdst < 2))
			  return EINVAL;
			ttisp->tt_isdst = isdst;
			desigidx = *p++;
			if (! (desigidx < sp->charcnt))
			  return EINVAL;
			ttisp->tt_desigidx = desigidx;
		}
		for (i = 0; i < sp->charcnt; ++i)
			sp->chars[i] = *p++;
		sp->chars[i] = '\0';	/* ensure '\0' at end */

		/* Read leap seconds, discarding those out of time_t range.  */
		leapcnt = 0;
		for (i = 0; i < sp->leapcnt; ++i) {
		  int_fast64_t tr = stored == 4 ? detzcode(p) : detzcode64(p);
		  int_fast32_t corr = detzcode(p + stored);
		  p += stored + 4;
		  /* Leap seconds cannot occur before the Epoch.  */
		  if (tr < 0)
		    return EINVAL;
		  if (tr <= TIME_T_MAX) {
		    /* Leap seconds cannot occur more than once per UTC month,
		       and UTC months are at least 28 days long (minus 1
		       second for a negative leap second).  Each leap second's
		       correction must differ from the previous one's by 1
		       second.  */
		    if (tr - prevtr < 28 * SECSPERDAY - 1
			|| (corr != prevcorr - 1 && corr != prevcorr + 1))
		      return EINVAL;
		    sp->lsis[leapcnt].ls_trans = prevtr = tr;
		    sp->lsis[leapcnt].ls_corr = prevcorr = corr;
		    leapcnt++;
		  }
		}
		sp->leapcnt = leapcnt;

		for (i = 0; i < sp->typecnt; ++i) {
			register struct ttinfo *	ttisp;

			ttisp = &sp->ttis[i];
			if (ttisstdcnt == 0)
				ttisp->tt_ttisstd = false;
			else {
				if (*p != true && *p != false)
				  return EINVAL;
				ttisp->tt_ttisstd = *p++;
			}
		}
		for (i = 0; i < sp->typecnt; ++i) {
			register struct ttinfo *	ttisp;

			ttisp = &sp->ttis[i];
			if (ttisutcnt == 0)
				ttisp->tt_ttisut = false;
			else {
				if (*p != true && *p != false)
						return EINVAL;
				ttisp->tt_ttisut = *p++;
			}
		}
		/*
		** If this is an old file, we're done.
		*/
		if (up->tzhead.tzh_version[0] == '\0')
			break;
		nread -= p - up->buf;
		memmove(up->buf, p, nread);
	}
	if (doextend && nread > 2 &&
		up->buf[0] == '\n' && up->buf[nread - 1] == '\n' &&
		sp->typecnt + 2 <= TZ_MAX_TYPES) {
			struct state	*ts = &lsp->u.st;

			up->buf[nread - 1] = '\0';
			if (tzparse(&up->buf[1], ts, false)) {

			  /* Attempt to reuse existing abbreviations.
			     Without this, America/Anchorage would be right on
			     the edge after 2037 when TZ_MAX_CHARS is 50, as
			     sp->charcnt equals 40 (for LMT AST AWT APT AHST
			     AHDT YST AKDT AKST) and ts->charcnt equals 10
			     (for AKST AKDT).  Reusing means sp->charcnt can
			     stay 40 in this example.  */
			  int gotabbr = 0;
			  int charcnt = sp->charcnt;
			  for (i = 0; i < ts->typecnt; i++) {
			    char *tsabbr = ts->chars + ts->ttis[i].tt_desigidx;
			    int j;
			    for (j = 0; j < charcnt; j++)
			      if (strcmp(sp->chars + j, tsabbr) == 0) {
				ts->ttis[i].tt_desigidx = j;
				gotabbr++;
				break;
			      }
			    if (! (j < charcnt)) {
			      int tsabbrlen = strlen(tsabbr);
			      if (j + tsabbrlen < TZ_MAX_CHARS) {
				strcpy(sp->chars + j, tsabbr);
				charcnt = j + tsabbrlen + 1;
				ts->ttis[i].tt_desigidx = j;
				gotabbr++;
			      }
			    }
			  }
			  if (gotabbr == ts->typecnt) {
			    sp->charcnt = charcnt;

			    /* Ignore any trailing, no-op transitions generated
			       by zic as they don't help here and can run afoul
			       of bugs in zic 2016j or earlier.  */
			    while (1 < sp->timecnt
				   && (sp->types[sp->timecnt - 1]
				       == sp->types[sp->timecnt - 2]))
			      sp->timecnt--;

			    for (i = 0; i < ts->timecnt; i++)
			      if (sp->timecnt == 0
				  || sp->ats[sp->timecnt - 1] < ts->ats[i])
				break;
			    while (i < ts->timecnt
				   && sp->timecnt < TZ_MAX_TIMES) {
			      sp->ats[sp->timecnt] = ts->ats[i];
			      sp->types[sp->timecnt] = (sp->typecnt
							+ ts->types[i]);
			      sp->timecnt++;
			      i++;
			    }
			    for (i = 0; i < ts->typecnt; i++)
			      sp->ttis[sp->typecnt++] = ts->ttis[i];
			  }
			}
	}
	if (sp->typecnt == 0)
	  return EINVAL;
	if (sp->timecnt > 1) {
		for (i = 1; i < sp->timecnt; ++i)
			if (typesequiv(sp, sp->types[i], sp->types[0]) &&
				differ_by_repeat(sp->ats[i], sp->ats[0])) {
					sp->goback = true;
					break;
				}
		for (i = sp->timecnt - 2; i >= 0; --i)
			if (typesequiv(sp, sp->types[sp->timecnt - 1],
				sp->types[i]) &&
				differ_by_repeat(sp->ats[sp->timecnt - 1],
				sp->ats[i])) {
					sp->goahead = true;
					break;
		}
	}

	/* Infer sp->defaulttype from the data.  Although this default
	   type is always zero for data from recent tzdb releases,
	   things are trickier for data from tzdb 2018e or earlier.

	   The first set of heuristics work around bugs in 32-bit data
	   generated by tzdb 2013c or earlier.  The workaround is for
	   zones like Australia/Macquarie where timestamps before the
	   first transition have a time type that is not the earliest
	   standard-time type.  See:
	   https://mm.icann.org/pipermail/tz/2013-May/019368.html */
	/*
	** If type 0 is unused in transitions,
	** it's the type to use for early times.
	*/
	for (i = 0; i < sp->timecnt; ++i)
		if (sp->types[i] == 0)
			break;
	i = i < sp->timecnt ? -1 : 0;
	/*
	** Absent the above,
	** if there are transition times
	** and the first transition is to a daylight time
	** find the standard type less than and closest to
	** the type of the first transition.
	*/
	if (i < 0 && sp->timecnt > 0 && sp->ttis[sp->types[0]].tt_isdst) {
		i = sp->types[0];
		while (--i >= 0)
			if (!sp->ttis[i].tt_isdst)
				break;
	}
	/* The next heuristics are for data generated by tzdb 2018e or
	   earlier, for zones like EST5EDT where the first transition
	   is to DST.  */
	/*
	** If no result yet, find the first standard type.
	** If there is none, punt to type zero.
	*/
	if (i < 0) {
		i = 0;
		while (sp->ttis[i].tt_isdst)
			if (++i >= sp->typecnt) {
				i = 0;
				break;
			}
	}
	/* A simple 'sp->defaulttype = 0;' would suffice here if we
	   didn't have to worry about 2018e-or-earlier data.  Even
	   simpler would be to remove the defaulttype member and just
	   use 0 in its place.  */
	sp->defaulttype = i;

	return 0;
}

/* Load tz data from the file named NAME into *SP.  Read extended
   format if DOEXTEND.  Return 0 on success, an errno value on failure.  */
static int
tzload(char const *name, struct state *sp, bool doextend)
{
#ifdef ALL_STATE
  union local_storage *lsp = malloc(sizeof *lsp);
  if (!lsp)
    return errno;
  else {
    int err = tzloadbody(name, sp, doextend, lsp);
    free(lsp);
    return err;
  }
#else
  union local_storage ls;
  return tzloadbody(name, sp, doextend, &ls);
#endif
}

static bool
typesequiv(const struct state *sp, int a, int b)
{
	register bool result;

	if (sp == NULL ||
		a < 0 || a >= sp->typecnt ||
		b < 0 || b >= sp->typecnt)
			result = false;
	else {
		register const struct ttinfo *	ap = &sp->ttis[a];
		register const struct ttinfo *	bp = &sp->ttis[b];
		result = (ap->tt_utoff == bp->tt_utoff
			  && ap->tt_isdst == bp->tt_isdst
			  && ap->tt_ttisstd == bp->tt_ttisstd
			  && ap->tt_ttisut == bp->tt_ttisut
			  && (strcmp(&sp->chars[ap->tt_desigidx],
				     &sp->chars[bp->tt_desigidx])
			      == 0));
	}
	return result;
}

static const int	mon_lengths[2][MONSPERYEAR] = {
	{ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
	{ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
};

static const int	year_lengths[2] = {
	DAYSPERNYEAR, DAYSPERLYEAR
};

/*
** Given a pointer into a timezone string, scan until a character that is not
** a valid character in a time zone abbreviation is found.
** Return a pointer to that character.
*/

static ATTRIBUTE_PURE const char *
getzname(register const char *strp)
{
	register char	c;

	while ((c = *strp) != '\0' && !is_digit(c) && c != ',' && c != '-' &&
		c != '+')
			++strp;
	return strp;
}

/*
** Given a pointer into an extended timezone string, scan until the ending
** delimiter of the time zone abbreviation is located.
** Return a pointer to the delimiter.
**
** As with getzname above, the legal character set is actually quite
** restricted, with other characters producing undefined results.
** We don't do any checking here; checking is done later in common-case code.
*/

static ATTRIBUTE_PURE const char *
getqzname(register const char *strp, const int delim)
{
	register int	c;

	while ((c = *strp) != '\0' && c != delim)
		++strp;
	return strp;
}

/*
** Given a pointer into a timezone string, extract a number from that string.
** Check that the number is within a specified range; if it is not, return
** NULL.
** Otherwise, return a pointer to the first character not part of the number.
*/

static const char *
getnum(register const char *strp, int *const nump, const int min, const int max)
{
	register char	c;
	register int	num;

	if (strp == NULL || !is_digit(c = *strp))
		return NULL;
	num = 0;
	do {
		num = num * 10 + (c - '0');
		if (num > max)
			return NULL;	/* illegal value */
		c = *++strp;
	} while (is_digit(c));
	if (num < min)
		return NULL;		/* illegal value */
	*nump = num;
	return strp;
}

/*
** Given a pointer into a timezone string, extract a number of seconds,
** in hh[:mm[:ss]] form, from the string.
** If any error occurs, return NULL.
** Otherwise, return a pointer to the first character not part of the number
** of seconds.
*/

static const char *
getsecs(register const char *strp, int_fast32_t *const secsp)
{
	int	num;

	/*
	** 'HOURSPERDAY * DAYSPERWEEK - 1' allows quasi-Posix rules like
	** "M10.4.6/26", which does not conform to Posix,
	** but which specifies the equivalent of
	** "02:00 on the first Sunday on or after 23 Oct".
	*/
	strp = getnum(strp, &num, 0, HOURSPERDAY * DAYSPERWEEK - 1);
	if (strp == NULL)
		return NULL;
	*secsp = num * (int_fast32_t) SECSPERHOUR;
	if (*strp == ':') {
		++strp;
		strp = getnum(strp, &num, 0, MINSPERHOUR - 1);
		if (strp == NULL)
			return NULL;
		*secsp += num * SECSPERMIN;
		if (*strp == ':') {
			++strp;
			/* 'SECSPERMIN' allows for leap seconds.  */
			strp = getnum(strp, &num, 0, SECSPERMIN);
			if (strp == NULL)
				return NULL;
			*secsp += num;
		}
	}
	return strp;
}

/*
** Given a pointer into a timezone string, extract an offset, in
** [+-]hh[:mm[:ss]] form, from the string.
** If any error occurs, return NULL.
** Otherwise, return a pointer to the first character not part of the time.
*/

static const char *
getoffset(register const char *strp, int_fast32_t *const offsetp)
{
	register bool neg = false;

	if (*strp == '-') {
		neg = true;
		++strp;
	} else if (*strp == '+')
		++strp;
	strp = getsecs(strp, offsetp);
	if (strp == NULL)
		return NULL;		/* illegal time */
	if (neg)
		*offsetp = -*offsetp;
	return strp;
}

/*
** Given a pointer into a timezone string, extract a rule in the form
** date[/time]. See POSIX section 8 for the format of "date" and "time".
** If a valid rule is not found, return NULL.
** Otherwise, return a pointer to the first character not part of the rule.
*/

static const char *
getrule(const char *strp, register struct rule *const rulep)
{
	if (*strp == 'J') {
		/*
		** Julian day.
		*/
		rulep->r_type = JULIAN_DAY;
		++strp;
		strp = getnum(strp, &rulep->r_day, 1, DAYSPERNYEAR);
	} else if (*strp == 'M') {
		/*
		** Month, week, day.
		*/
		rulep->r_type = MONTH_NTH_DAY_OF_WEEK;
		++strp;
		strp = getnum(strp, &rulep->r_mon, 1, MONSPERYEAR);
		if (strp == NULL)
			return NULL;
		if (*strp++ != '.')
			return NULL;
		strp = getnum(strp, &rulep->r_week, 1, 5);
		if (strp == NULL)
			return NULL;
		if (*strp++ != '.')
			return NULL;
		strp = getnum(strp, &rulep->r_day, 0, DAYSPERWEEK - 1);
	} else if (is_digit(*strp)) {
		/*
		** Day of year.
		*/
		rulep->r_type = DAY_OF_YEAR;
		strp = getnum(strp, &rulep->r_day, 0, DAYSPERLYEAR - 1);
	} else	return NULL;		/* invalid format */
	if (strp == NULL)
		return NULL;
	if (*strp == '/') {
		/*
		** Time specified.
		*/
		++strp;
		strp = getoffset(strp, &rulep->r_time);
	} else	rulep->r_time = 2 * SECSPERHOUR;	/* default = 2:00:00 */
	return strp;
}

/*
** Given a year, a rule, and the offset from UT at the time that rule takes
** effect, calculate the year-relative time that rule takes effect.
*/

static int_fast32_t
transtime(const int year, register const struct rule *const rulep,
	  const int_fast32_t offset)
{
	register bool	leapyear;
	register int_fast32_t value;
	register int	i;
	int		d, m1, yy0, yy1, yy2, dow;

	INITIALIZE(value);
	leapyear = isleap(year);
	switch (rulep->r_type) {

	case JULIAN_DAY:
		/*
		** Jn - Julian day, 1 == January 1, 60 == March 1 even in leap
		** years.
		** In non-leap years, or if the day number is 59 or less, just
		** add SECSPERDAY times the day number-1 to the time of
		** January 1, midnight, to get the day.
		*/
		value = (rulep->r_day - 1) * SECSPERDAY;
		if (leapyear && rulep->r_day >= 60)
			value += SECSPERDAY;
		break;

	case DAY_OF_YEAR:
		/*
		** n - day of year.
		** Just add SECSPERDAY times the day number to the time of
		** January 1, midnight, to get the day.
		*/
		value = rulep->r_day * SECSPERDAY;
		break;

	case MONTH_NTH_DAY_OF_WEEK:
		/*
		** Mm.n.d - nth "dth day" of month m.
		*/

		/*
		** Use Zeller's Congruence to get day-of-week of first day of
		** month.
		*/
		m1 = (rulep->r_mon + 9) % 12 + 1;
		yy0 = (rulep->r_mon <= 2) ? (year - 1) : year;
		yy1 = yy0 / 100;
		yy2 = yy0 % 100;
		dow = ((26 * m1 - 2) / 10 +
			1 + yy2 + yy2 / 4 + yy1 / 4 - 2 * yy1) % 7;
		if (dow < 0)
			dow += DAYSPERWEEK;

		/*
		** "dow" is the day-of-week of the first day of the month. Get
		** the day-of-month (zero-origin) of the first "dow" day of the
		** month.
		*/
		d = rulep->r_day - dow;
		if (d < 0)
			d += DAYSPERWEEK;
		for (i = 1; i < rulep->r_week; ++i) {
			if (d + DAYSPERWEEK >=
				mon_lengths[leapyear][rulep->r_mon - 1])
					break;
			d += DAYSPERWEEK;
		}

		/*
		** "d" is the day-of-month (zero-origin) of the day we want.
		*/
		value = d * SECSPERDAY;
		for (i = 0; i < rulep->r_mon - 1; ++i)
			value += mon_lengths[leapyear][i] * SECSPERDAY;
		break;
	}

	/*
	** "value" is the year-relative time of 00:00:00 UT on the day in
	** question. To get the year-relative time of the specified local
	** time on that day, add the transition time and the current offset
	** from UT.
	*/
	return value + rulep->r_time + offset;
}

/*
** Given a POSIX section 8-style TZ string, fill in the rule tables as
** appropriate.
*/

static bool
tzparse(const char *name, struct state *sp, bool lastditch)
{
	const char *			stdname;
	const char *			dstname;
	size_t				stdlen;
	size_t				dstlen;
	size_t				charcnt;
	int_fast32_t			stdoffset;
	int_fast32_t			dstoffset;
	register char *			cp;
	register bool			load_ok;

	stdname = name;
	if (lastditch) {
		stdlen = sizeof gmt - 1;
		name += stdlen;
		stdoffset = 0;
	} else {
		if (*name == '<') {
			name++;
			stdname = name;
			name = getqzname(name, '>');
			if (*name != '>')
			  return false;
			stdlen = name - stdname;
			name++;
		} else {
			name = getzname(name);
			stdlen = name - stdname;
		}
		if (!stdlen)
		  return false;
		name = getoffset(name, &stdoffset);
		if (name == NULL)
		  return false;
	}
	charcnt = stdlen + 1;
	if (sizeof sp->chars < charcnt)
	  return false;
	load_ok = tzload(TZDEFRULES, sp, false) == 0;
	if (!load_ok)
		sp->leapcnt = 0;		/* so, we're off a little */
	if (*name != '\0') {
		if (*name == '<') {
			dstname = ++name;
			name = getqzname(name, '>');
			if (*name != '>')
			  return false;
			dstlen = name - dstname;
			name++;
		} else {
			dstname = name;
			name = getzname(name);
			dstlen = name - dstname; /* length of DST abbr. */
		}
		if (!dstlen)
		  return false;
		charcnt += dstlen + 1;
		if (sizeof sp->chars < charcnt)
		  return false;
		if (*name != '\0' && *name != ',' && *name != ';') {
			name = getoffset(name, &dstoffset);
			if (name == NULL)
			  return false;
		} else	dstoffset = stdoffset - SECSPERHOUR;
		if (*name == '\0' && !load_ok)
			name = TZDEFRULESTRING;
		if (*name == ',' || *name == ';') {
			struct rule	start;
			struct rule	end;
			register int	year;
			register int	yearlim;
			register int	timecnt;
			time_t		janfirst;
			int_fast32_t janoffset = 0;
			int yearbeg;

			++name;
			if ((name = getrule(name, &start)) == NULL)
			  return false;
			if (*name++ != ',')
			  return false;
			if ((name = getrule(name, &end)) == NULL)
			  return false;
			if (*name != '\0')
			  return false;
			sp->typecnt = 2;	/* standard time and DST */
			/*
			** Two transitions per year, from EPOCH_YEAR forward.
			*/
			init_ttinfo(&sp->ttis[0], -stdoffset, false, 0);
			init_ttinfo(&sp->ttis[1], -dstoffset, true, stdlen + 1);
			sp->defaulttype = 0;
			timecnt = 0;
			janfirst = 0;
			yearbeg = EPOCH_YEAR;

			do {
			  int_fast32_t yearsecs
			    = year_lengths[isleap(yearbeg - 1)] * SECSPERDAY;
			  yearbeg--;
			  if (increment_overflow_time(&janfirst, -yearsecs)) {
			    janoffset = -yearsecs;
			    break;
			  }
			} while (EPOCH_YEAR - YEARSPERREPEAT / 2 < yearbeg);

			yearlim = yearbeg + YEARSPERREPEAT + 1;
			for (year = yearbeg; year < yearlim; year++) {
				int_fast32_t
				  starttime = transtime(year, &start, stdoffset),
				  endtime = transtime(year, &end, dstoffset);
				int_fast32_t
				  yearsecs = (year_lengths[isleap(year)]
					      * SECSPERDAY);
				bool reversed = endtime < starttime;
				if (reversed) {
					int_fast32_t swap = starttime;
					starttime = endtime;
					endtime = swap;
				}
				if (reversed
				    || (starttime < endtime
					&& (endtime - starttime
					    < (yearsecs
					       + (stdoffset - dstoffset))))) {
					if (TZ_MAX_TIMES - 2 < timecnt)
						break;
					sp->ats[timecnt] = janfirst;
					if (! increment_overflow_time
					    (&sp->ats[timecnt],
					     janoffset + starttime))
					  sp->types[timecnt++] = !reversed;
					sp->ats[timecnt] = janfirst;
					if (! increment_overflow_time
					    (&sp->ats[timecnt],
					     janoffset + endtime)) {
					  sp->types[timecnt++] = reversed;
					  yearlim = year + YEARSPERREPEAT + 1;
					}
				}
				if (increment_overflow_time
				    (&janfirst, janoffset + yearsecs))
					break;
				janoffset = 0;
			}
			sp->timecnt = timecnt;
			if (! timecnt) {
				sp->ttis[0] = sp->ttis[1];
				sp->typecnt = 1;	/* Perpetual DST.  */
			} else if (YEARSPERREPEAT < year - yearbeg)
				sp->goback = sp->goahead = true;
		} else {
			register int_fast32_t	theirstdoffset;
			register int_fast32_t	theirdstoffset;
			register int_fast32_t	theiroffset;
			register bool		isdst;
			register int		i;
			register int		j;

			if (*name != '\0')
			  return false;
			/*
			** Initial values of theirstdoffset and theirdstoffset.
			*/
			theirstdoffset = 0;
			for (i = 0; i < sp->timecnt; ++i) {
				j = sp->types[i];
				if (!sp->ttis[j].tt_isdst) {
					theirstdoffset =
						- sp->ttis[j].tt_utoff;
					break;
				}
			}
			theirdstoffset = 0;
			for (i = 0; i < sp->timecnt; ++i) {
				j = sp->types[i];
				if (sp->ttis[j].tt_isdst) {
					theirdstoffset =
						- sp->ttis[j].tt_utoff;
					break;
				}
			}
			/*
			** Initially we're assumed to be in standard time.
			*/
			isdst = false;
			theiroffset = theirstdoffset;
			/*
			** Now juggle transition times and types
			** tracking offsets as you do.
			*/
			for (i = 0; i < sp->timecnt; ++i) {
				j = sp->types[i];
				sp->types[i] = sp->ttis[j].tt_isdst;
				if (sp->ttis[j].tt_ttisut) {
					/* No adjustment to transition time */
				} else {
					/*
					** If daylight saving time is in
					** effect, and the transition time was
					** not specified as standard time, add
					** the daylight saving time offset to
					** the transition time; otherwise, add
					** the standard time offset to the
					** transition time.
					*/
					/*
					** Transitions from DST to DDST
					** will effectively disappear since
					** POSIX provides for only one DST
					** offset.
					*/
					if (isdst && !sp->ttis[j].tt_ttisstd) {
						sp->ats[i] += dstoffset -
							theirdstoffset;
					} else {
						sp->ats[i] += stdoffset -
							theirstdoffset;
					}
				}
				theiroffset = -sp->ttis[j].tt_utoff;
				if (sp->ttis[j].tt_isdst)
					theirdstoffset = theiroffset;
				else	theirstdoffset = theiroffset;
			}
			/*
			** Finally, fill in ttis.
			*/
			init_ttinfo(&sp->ttis[0], -stdoffset, false, 0);
			init_ttinfo(&sp->ttis[1], -dstoffset, true, stdlen + 1);
			sp->typecnt = 2;
			sp->defaulttype = 0;
		}
	} else {
		dstlen = 0;
		sp->typecnt = 1;		/* only standard time */
		sp->timecnt = 0;
		init_ttinfo(&sp->ttis[0], -stdoffset, false, 0);
		sp->defaulttype = 0;
	}
	sp->charcnt = charcnt;
	cp = sp->chars;
	memcpy(cp, stdname, stdlen);
	cp += stdlen;
	*cp++ = '\0';
	if (dstlen != 0) {
		memcpy(cp, dstname, dstlen);
		*(cp + dstlen) = '\0';
	}
	return true;
}

static void
gmtload(struct state *const sp)
{
	if (tzload(gmt, sp, true) != 0)
		tzparse(gmt, sp, true);
}

/* Initialize *SP to a value appropriate for the TZ setting NAME.
   Return 0 on success, an errno value on failure.  */
static int
zoneinit(struct state *sp, char const *name)
{
  if (name && ! name[0]) {
    /*
    ** User wants it fast rather than right.
    */
    sp->leapcnt = 0;		/* so, we're off a little */
    sp->timecnt = 0;
    sp->typecnt = 0;
    sp->charcnt = 0;
    sp->goback = sp->goahead = false;
    init_ttinfo(&sp->ttis[0], 0, false, 0);
    strcpy(sp->chars, gmt);
    sp->defaulttype = 0;
    return 0;
  } else {
    int err = tzload(name, sp, true);
    if (err != 0 && name && name[0] != ':' && tzparse(name, sp, false))
      err = 0;
    if (err == 0)
      scrub_abbrs(sp);
    return err;
  }
}

static void
tzsetlcl(char const *name)
{
  struct state *sp = lclptr;
  int lcl = name ? strlen(name) < sizeof lcl_TZname : -1;
  if (lcl < 0
      ? lcl_is_set < 0
      : 0 < lcl_is_set && strcmp(lcl_TZname, name) == 0)
    return;
#ifdef ALL_STATE
  if (! sp)
    lclptr = sp = malloc(sizeof *lclptr);
#endif /* defined ALL_STATE */
  if (sp) {
    if (zoneinit(sp, name) != 0)
      zoneinit(sp, "");
    if (0 < lcl)
      strcpy(lcl_TZname, name);
  }
  settzname();
  lcl_is_set = lcl;
}

#ifdef STD_INSPIRED
void
tzsetwall(void)
{
  if (lock() != 0)
    return;
  tzsetlcl(NULL);
  unlock();
}
#endif

static void
tzset_unlocked(void)
{
  tzsetlcl(getenv("TZ"));
}

void
tzset(void)
{
  if (lock() != 0)
    return;
  tzset_unlocked();
  unlock();
}

static void
gmtcheck(void)
{
  static bool gmt_is_set;
  if (lock() != 0)
    return;
  if (! gmt_is_set) {
#ifdef ALL_STATE
    gmtptr = malloc(sizeof *gmtptr);
#endif
    if (gmtptr)
      gmtload(gmtptr);
    gmt_is_set = true;
  }
  unlock();
}

#if NETBSD_INSPIRED

timezone_t
tzalloc(char const *name)
{
  timezone_t sp = malloc(sizeof *sp);
  if (sp) {
    int err = zoneinit(sp, name);
    if (err != 0) {
      free(sp);
      errno = err;
      return NULL;
    }
  }
  return sp;
}

void
tzfree(timezone_t sp)
{
  free(sp);
}

/*
** NetBSD 6.1.4 has ctime_rz, but omit it because POSIX says ctime and
** ctime_r are obsolescent and have potential security problems that
** ctime_rz would share.  Callers can instead use localtime_rz + strftime.
**
** NetBSD 6.1.4 has tzgetname, but omit it because it doesn't work
** in zones with three or more time zone abbreviations.
** Callers can instead use localtime_rz + strftime.
*/

#endif

/*
** The easy way to behave "as if no library function calls" localtime
** is to not call it, so we drop its guts into "localsub", which can be
** freely called. (And no, the PANS doesn't require the above behavior,
** but it *is* desirable.)
**
** If successful and SETNAME is nonzero,
** set the applicable parts of tzname, timezone and altzone;
** however, it's OK to omit this step if the timezone is POSIX-compatible,
** since in that case tzset should have already done this step correctly.
** SETNAME's type is intfast32_t for compatibility with gmtsub,
** but it is actually a boolean and its value should be 0 or 1.
*/

/*ARGSUSED*/
static struct tm *
localsub(struct state const *sp, time_t const *timep, int_fast32_t setname,
	 struct tm *const tmp)
{
	register const struct ttinfo *	ttisp;
	register int			i;
	register struct tm *		result;
	const time_t			t = *timep;

	if (sp == NULL) {
	  /* Don't bother to set tzname etc.; tzset has already done it.  */
	  return gmtsub(gmtptr, timep, 0, tmp);
	}
	if ((sp->goback && t < sp->ats[0]) ||
		(sp->goahead && t > sp->ats[sp->timecnt - 1])) {
			time_t			newt = t;
			register time_t		seconds;
			register time_t		years;

			if (t < sp->ats[0])
				seconds = sp->ats[0] - t;
			else	seconds = t - sp->ats[sp->timecnt - 1];
			--seconds;
			years = (seconds / SECSPERREPEAT + 1) * YEARSPERREPEAT;
			seconds = years * AVGSECSPERYEAR;
			if (t < sp->ats[0])
				newt += seconds;
			else	newt -= seconds;
			if (newt < sp->ats[0] ||
				newt > sp->ats[sp->timecnt - 1])
					return NULL;	/* "cannot happen" */
			result = localsub(sp, &newt, setname, tmp);
			if (result) {
				register int_fast64_t newy;

				newy = result->tm_year;
				if (t < sp->ats[0])
					newy -= years;
				else	newy += years;
				if (! (INT_MIN <= newy && newy <= INT_MAX))
					return NULL;
				result->tm_year = newy;
			}
			return result;
	}
	if (sp->timecnt == 0 || t < sp->ats[0]) {
		i = sp->defaulttype;
	} else {
		register int	lo = 1;
		register int	hi = sp->timecnt;

		while (lo < hi) {
			register int	mid = (lo + hi) >> 1;

			if (t < sp->ats[mid])
				hi = mid;
			else	lo = mid + 1;
		}
		i = (int) sp->types[lo - 1];
	}
	ttisp = &sp->ttis[i];
	/*
	** To get (wrong) behavior that's compatible with System V Release 2.0
	** you'd replace the statement below with
	**	t += ttisp->tt_utoff;
	**	timesub(&t, 0L, sp, tmp);
	*/
	result = timesub(&t, ttisp->tt_utoff, sp, tmp);
	if (result) {
	  result->tm_isdst = ttisp->tt_isdst;
#ifdef TM_ZONE
	  result->TM_ZONE = (char *) &sp->chars[ttisp->tt_desigidx];
#endif /* defined TM_ZONE */
	  if (setname)
	    update_tzname_etc(sp, ttisp);
	}
	return result;
}

#if NETBSD_INSPIRED

struct tm *
localtime_rz(struct state *sp, time_t const *timep, struct tm *tmp)
{
  return localsub(sp, timep, 0, tmp);
}

#endif

static struct tm *
localtime_tzset(time_t const *timep, struct tm *tmp, bool setname)
{
  int err = lock();
  if (err) {
    errno = err;
    return NULL;
  }
  if (setname || !lcl_is_set)
    tzset_unlocked();
  tmp = localsub(lclptr, timep, setname, tmp);
  unlock();
  return tmp;
}

struct tm *
localtime(const time_t *timep)
{
  return localtime_tzset(timep, &tm, true);
}

struct tm *
localtime_r(const time_t *timep, struct tm *tmp)
{
  return localtime_tzset(timep, tmp, false);
}

/*
** gmtsub is to gmtime as localsub is to localtime.
*/

static struct tm *
gmtsub(struct state const *sp, time_t const *timep, int_fast32_t offset,
       struct tm *tmp)
{
	register struct tm *	result;

	result = timesub(timep, offset, gmtptr, tmp);
#ifdef TM_ZONE
	/*
	** Could get fancy here and deliver something such as
	** "+xx" or "-xx" if offset is non-zero,
	** but this is no time for a treasure hunt.
	*/
	tmp->TM_ZONE = ((char *)
			(offset ? wildabbr : gmtptr ? gmtptr->chars : gmt));
#endif /* defined TM_ZONE */
	return result;
}

/*
* Re-entrant version of gmtime.
*/

struct tm *
gmtime_r(const time_t *timep, struct tm *tmp)
{
  gmtcheck();
  return gmtsub(gmtptr, timep, 0, tmp);
}

struct tm *
gmtime(const time_t *timep)
{
  return gmtime_r(timep, &tm);
}

#ifdef STD_INSPIRED

struct tm *
offtime(const time_t *timep, long offset)
{
  gmtcheck();
  return gmtsub(gmtptr, timep, offset, &tm);
}

#endif /* defined STD_INSPIRED */

/*
** Return the number of leap years through the end of the given year
** where, to make the math easy, the answer for year zero is defined as zero.
*/

static int
leaps_thru_end_of_nonneg(int y)
{
  return y / 4 - y / 100 + y / 400;
}

static int
leaps_thru_end_of(register const int y)
{
  return (y < 0
	  ? -1 - leaps_thru_end_of_nonneg(-1 - y)
	  : leaps_thru_end_of_nonneg(y));
}

static struct tm *
timesub(const time_t *timep, int_fast32_t offset,
	const struct state *sp, struct tm *tmp)
{
	register const struct lsinfo *	lp;
	register time_t			tdays;
	register int			idays;	/* unsigned would be so 2003 */
	register int_fast64_t		rem;
	int				y;
	register const int *		ip;
	register int_fast64_t		corr;
	register bool			hit;
	register int			i;

	corr = 0;
	hit = false;
	i = (sp == NULL) ? 0 : sp->leapcnt;
	while (--i >= 0) {
		lp = &sp->lsis[i];
		if (*timep >= lp->ls_trans) {
			corr = lp->ls_corr;
			hit = (*timep == lp->ls_trans
			       && (i == 0 ? 0 : lp[-1].ls_corr) < corr);
			break;
		}
	}
	y = EPOCH_YEAR;
	tdays = *timep / SECSPERDAY;
	rem = *timep % SECSPERDAY;
	while (tdays < 0 || tdays >= year_lengths[isleap(y)]) {
		int		newy;
		register time_t	tdelta;
		register int	idelta;
		register int	leapdays;

		tdelta = tdays / DAYSPERLYEAR;
		if (! ((! TYPE_SIGNED(time_t) || INT_MIN <= tdelta)
		       && tdelta <= INT_MAX))
		  goto out_of_range;
		idelta = tdelta;
		if (idelta == 0)
			idelta = (tdays < 0) ? -1 : 1;
		newy = y;
		if (increment_overflow(&newy, idelta))
		  goto out_of_range;
		leapdays = leaps_thru_end_of(newy - 1) -
			leaps_thru_end_of(y - 1);
		tdays -= ((time_t) newy - y) * DAYSPERNYEAR;
		tdays -= leapdays;
		y = newy;
	}
	/*
	** Given the range, we can now fearlessly cast...
	*/
	idays = tdays;
	rem += offset - corr;
	while (rem < 0) {
		rem += SECSPERDAY;
		--idays;
	}
	while (rem >= SECSPERDAY) {
		rem -= SECSPERDAY;
		++idays;
	}
	while (idays < 0) {
		if (increment_overflow(&y, -1))
		  goto out_of_range;
		idays += year_lengths[isleap(y)];
	}
	while (idays >= year_lengths[isleap(y)]) {
		idays -= year_lengths[isleap(y)];
		if (increment_overflow(&y, 1))
		  goto out_of_range;
	}
	tmp->tm_year = y;
	if (increment_overflow(&tmp->tm_year, -TM_YEAR_BASE))
	  goto out_of_range;
	tmp->tm_yday = idays;
	/*
	** The "extra" mods below avoid overflow problems.
	*/
	tmp->tm_wday = EPOCH_WDAY +
		((y - EPOCH_YEAR) % DAYSPERWEEK) *
		(DAYSPERNYEAR % DAYSPERWEEK) +
		leaps_thru_end_of(y - 1) -
		leaps_thru_end_of(EPOCH_YEAR - 1) +
		idays;
	tmp->tm_wday %= DAYSPERWEEK;
	if (tmp->tm_wday < 0)
		tmp->tm_wday += DAYSPERWEEK;
	tmp->tm_hour = (int) (rem / SECSPERHOUR);
	rem %= SECSPERHOUR;
	tmp->tm_min = (int) (rem / SECSPERMIN);
	/*
	** A positive leap second requires a special
	** representation. This uses "... ??:59:60" et seq.
	*/
	tmp->tm_sec = (int) (rem % SECSPERMIN) + hit;
	ip = mon_lengths[isleap(y)];
	for (tmp->tm_mon = 0; idays >= ip[tmp->tm_mon]; ++(tmp->tm_mon))
		idays -= ip[tmp->tm_mon];
	tmp->tm_mday = (int) (idays + 1);
	tmp->tm_isdst = 0;
#ifdef TM_GMTOFF
	tmp->TM_GMTOFF = offset;
#endif /* defined TM_GMTOFF */
	return tmp;

 out_of_range:
	errno = EOVERFLOW;
	return NULL;
}

char *
ctime(const time_t *timep)
{
/*
** Section 4.12.3.2 of X3.159-1989 requires that
**	The ctime function converts the calendar time pointed to by timer
**	to local time in the form of a string. It is equivalent to
**		asctime(localtime(timer))
*/
  struct tm *tmp = localtime(timep);
  return tmp ? asctime(tmp) : NULL;
}

char *
ctime_r(const time_t *timep, char *buf)
{
  struct tm mytm;
  struct tm *tmp = localtime_r(timep, &mytm);
  return tmp ? asctime_r(tmp, buf) : NULL;
}

/*
** Adapted from code provided by Robert Elz, who writes:
**	The "best" way to do mktime I think is based on an idea of Bob
**	Kridle's (so its said...) from a long time ago.
**	It does a binary search of the time_t space. Since time_t's are
**	just 32 bits, its a max of 32 iterations (even at 64 bits it
**	would still be very reasonable).
*/

#ifndef WRONG
#define WRONG	(-1)
#endif /* !defined WRONG */

/*
** Normalize logic courtesy Paul Eggert.
*/

static bool
increment_overflow(int *ip, int j)
{
	register int const	i = *ip;

	/*
	** If i >= 0 there can only be overflow if i + j > INT_MAX
	** or if j > INT_MAX - i; given i >= 0, INT_MAX - i cannot overflow.
	** If i < 0 there can only be overflow if i + j < INT_MIN
	** or if j < INT_MIN - i; given i < 0, INT_MIN - i cannot overflow.
	*/
	if ((i >= 0) ? (j > INT_MAX - i) : (j < INT_MIN - i))
		return true;
	*ip += j;
	return false;
}

static bool
increment_overflow32(int_fast32_t *const lp, int const m)
{
	register int_fast32_t const	l = *lp;

	if ((l >= 0) ? (m > INT_FAST32_MAX - l) : (m < INT_FAST32_MIN - l))
		return true;
	*lp += m;
	return false;
}

static bool
increment_overflow_time(time_t *tp, int_fast32_t j)
{
	/*
	** This is like
	** 'if (! (TIME_T_MIN <= *tp + j && *tp + j <= TIME_T_MAX)) ...',
	** except that it does the right thing even if *tp + j would overflow.
	*/
	if (! (j < 0
	       ? (TYPE_SIGNED(time_t) ? TIME_T_MIN - j <= *tp : -1 - j < *tp)
	       : *tp <= TIME_T_MAX - j))
		return true;
	*tp += j;
	return false;
}

static bool
normalize_overflow(int *const tensptr, int *const unitsptr, const int base)
{
	register int	tensdelta;

	tensdelta = (*unitsptr >= 0) ?
		(*unitsptr / base) :
		(-1 - (-1 - *unitsptr) / base);
	*unitsptr -= tensdelta * base;
	return increment_overflow(tensptr, tensdelta);
}

static bool
normalize_overflow32(int_fast32_t *tensptr, int *unitsptr, int base)
{
	register int	tensdelta;

	tensdelta = (*unitsptr >= 0) ?
		(*unitsptr / base) :
		(-1 - (-1 - *unitsptr) / base);
	*unitsptr -= tensdelta * base;
	return increment_overflow32(tensptr, tensdelta);
}

static int
tmcomp(register const struct tm *const atmp,
       register const struct tm *const btmp)
{
	register int	result;

	if (atmp->tm_year != btmp->tm_year)
		return atmp->tm_year < btmp->tm_year ? -1 : 1;
	if ((result = (atmp->tm_mon - btmp->tm_mon)) == 0 &&
		(result = (atmp->tm_mday - btmp->tm_mday)) == 0 &&
		(result = (atmp->tm_hour - btmp->tm_hour)) == 0 &&
		(result = (atmp->tm_min - btmp->tm_min)) == 0)
			result = atmp->tm_sec - btmp->tm_sec;
	return result;
}

static time_t
time2sub(struct tm *const tmp,
	 struct tm *(*funcp)(struct state const *, time_t const *,
			     int_fast32_t, struct tm *),
	 struct state const *sp,
	 const int_fast32_t offset,
	 bool *okayp,
	 bool do_norm_secs)
{
	register int			dir;
	register int			i, j;
	register int			saved_seconds;
	register int_fast32_t		li;
	register time_t			lo;
	register time_t			hi;
	int_fast32_t			y;
	time_t				newt;
	time_t				t;
	struct tm			yourtm, mytm;

	*okayp = false;
	yourtm = *tmp;
	if (do_norm_secs) {
		if (normalize_overflow(&yourtm.tm_min, &yourtm.tm_sec,
			SECSPERMIN))
				return WRONG;
	}
	if (normalize_overflow(&yourtm.tm_hour, &yourtm.tm_min, MINSPERHOUR))
		return WRONG;
	if (normalize_overflow(&yourtm.tm_mday, &yourtm.tm_hour, HOURSPERDAY))
		return WRONG;
	y = yourtm.tm_year;
	if (normalize_overflow32(&y, &yourtm.tm_mon, MONSPERYEAR))
		return WRONG;
	/*
	** Turn y into an actual year number for now.
	** It is converted back to an offset from TM_YEAR_BASE later.
	*/
	if (increment_overflow32(&y, TM_YEAR_BASE))
		return WRONG;
	while (yourtm.tm_mday <= 0) {
		if (increment_overflow32(&y, -1))
			return WRONG;
		li = y + (1 < yourtm.tm_mon);
		yourtm.tm_mday += year_lengths[isleap(li)];
	}
	while (yourtm.tm_mday > DAYSPERLYEAR) {
		li = y + (1 < yourtm.tm_mon);
		yourtm.tm_mday -= year_lengths[isleap(li)];
		if (increment_overflow32(&y, 1))
			return WRONG;
	}
	for ( ; ; ) {
		i = mon_lengths[isleap(y)][yourtm.tm_mon];
		if (yourtm.tm_mday <= i)
			break;
		yourtm.tm_mday -= i;
		if (++yourtm.tm_mon >= MONSPERYEAR) {
			yourtm.tm_mon = 0;
			if (increment_overflow32(&y, 1))
				return WRONG;
		}
	}
	if (increment_overflow32(&y, -TM_YEAR_BASE))
		return WRONG;
	if (! (INT_MIN <= y && y <= INT_MAX))
		return WRONG;
	yourtm.tm_year = y;
	if (yourtm.tm_sec >= 0 && yourtm.tm_sec < SECSPERMIN)
		saved_seconds = 0;
	else if (y + TM_YEAR_BASE < EPOCH_YEAR) {
		/*
		** We can't set tm_sec to 0, because that might push the
		** time below the minimum representable time.
		** Set tm_sec to 59 instead.
		** This assumes that the minimum representable time is
		** not in the same minute that a leap second was deleted from,
		** which is a safer assumption than using 58 would be.
		*/
		if (increment_overflow(&yourtm.tm_sec, 1 - SECSPERMIN))
			return WRONG;
		saved_seconds = yourtm.tm_sec;
		yourtm.tm_sec = SECSPERMIN - 1;
	} else {
		saved_seconds = yourtm.tm_sec;
		yourtm.tm_sec = 0;
	}
	/*
	** Do a binary search (this works whatever time_t's type is).
	*/
	lo = TIME_T_MIN;
	hi = TIME_T_MAX;
	for ( ; ; ) {
		t = lo / 2 + hi / 2;
		if (t < lo)
			t = lo;
		else if (t > hi)
			t = hi;
		if (! funcp(sp, &t, offset, &mytm)) {
			/*
			** Assume that t is too extreme to be represented in
			** a struct tm; arrange things so that it is less
			** extreme on the next pass.
			*/
			dir = (t > 0) ? 1 : -1;
		} else	dir = tmcomp(&mytm, &yourtm);
		if (dir != 0) {
			if (t == lo) {
				if (t == TIME_T_MAX)
					return WRONG;
				++t;
				++lo;
			} else if (t == hi) {
				if (t == TIME_T_MIN)
					return WRONG;
				--t;
				--hi;
			}
			if (lo > hi)
				return WRONG;
			if (dir > 0)
				hi = t;
			else	lo = t;
			continue;
		}
#if defined TM_GMTOFF && ! UNINIT_TRAP
		if (mytm.TM_GMTOFF != yourtm.TM_GMTOFF
		    && (yourtm.TM_GMTOFF < 0
			? (-SECSPERDAY <= yourtm.TM_GMTOFF
			   && (mytm.TM_GMTOFF <=
			       (SMALLEST (INT_FAST32_MAX, LONG_MAX)
				+ yourtm.TM_GMTOFF)))
			: (yourtm.TM_GMTOFF <= SECSPERDAY
			   && ((BIGGEST (INT_FAST32_MIN, LONG_MIN)
				+ yourtm.TM_GMTOFF)
			       <= mytm.TM_GMTOFF)))) {
		  /* MYTM matches YOURTM except with the wrong UT offset.
		     YOURTM.TM_GMTOFF is plausible, so try it instead.
		     It's OK if YOURTM.TM_GMTOFF contains uninitialized data,
		     since the guess gets checked.  */
		  time_t altt = t;
		  int_fast32_t diff = mytm.TM_GMTOFF - yourtm.TM_GMTOFF;
		  if (!increment_overflow_time(&altt, diff)) {
		    struct tm alttm;
		    if (funcp(sp, &altt, offset, &alttm)
			&& alttm.tm_isdst == mytm.tm_isdst
			&& alttm.TM_GMTOFF == yourtm.TM_GMTOFF
			&& tmcomp(&alttm, &yourtm) == 0) {
		      t = altt;
		      mytm = alttm;
		    }
		  }
		}
#endif
		if (yourtm.tm_isdst < 0 || mytm.tm_isdst == yourtm.tm_isdst)
			break;
		/*
		** Right time, wrong type.
		** Hunt for right time, right type.
		** It's okay to guess wrong since the guess
		** gets checked.
		*/
		if (sp == NULL)
			return WRONG;
		for (i = sp->typecnt - 1; i >= 0; --i) {
			if (sp->ttis[i].tt_isdst != yourtm.tm_isdst)
				continue;
			for (j = sp->typecnt - 1; j >= 0; --j) {
				if (sp->ttis[j].tt_isdst == yourtm.tm_isdst)
					continue;
				newt = (t + sp->ttis[j].tt_utoff
					- sp->ttis[i].tt_utoff);
				if (! funcp(sp, &newt, offset, &mytm))
					continue;
				if (tmcomp(&mytm, &yourtm) != 0)
					continue;
				if (mytm.tm_isdst != yourtm.tm_isdst)
					continue;
				/*
				** We have a match.
				*/
				t = newt;
				goto label;
			}
		}
		return WRONG;
	}
label:
	newt = t + saved_seconds;
	if ((newt < t) != (saved_seconds < 0))
		return WRONG;
	t = newt;
	if (funcp(sp, &t, offset, tmp))
		*okayp = true;
	return t;
}

static time_t
time2(struct tm * const	tmp,
      struct tm *(*funcp)(struct state const *, time_t const *,
			  int_fast32_t, struct tm *),
      struct state const *sp,
      const int_fast32_t offset,
      bool *okayp)
{
	time_t	t;

	/*
	** First try without normalization of seconds
	** (in case tm_sec contains a value associated with a leap second).
	** If that fails, try with normalization of seconds.
	*/
	t = time2sub(tmp, funcp, sp, offset, okayp, false);
	return *okayp ? t : time2sub(tmp, funcp, sp, offset, okayp, true);
}

static time_t
time1(struct tm *const tmp,
      struct tm *(*funcp) (struct state const *, time_t const *,
			   int_fast32_t, struct tm *),
      struct state const *sp,
      const int_fast32_t offset)
{
	register time_t			t;
	register int			samei, otheri;
	register int			sameind, otherind;
	register int			i;
	register int			nseen;
	char				seen[TZ_MAX_TYPES];
	unsigned char			types[TZ_MAX_TYPES];
	bool				okay;

	if (tmp == NULL) {
		errno = EINVAL;
		return WRONG;
	}
	if (tmp->tm_isdst > 1)
		tmp->tm_isdst = 1;
	t = time2(tmp, funcp, sp, offset, &okay);
	if (okay)
		return t;
	if (tmp->tm_isdst < 0)
#ifdef PCTS
		/*
		** POSIX Conformance Test Suite code courtesy Grant Sullivan.
		*/
		tmp->tm_isdst = 0;	/* reset to std and try again */
#else
		return t;
#endif /* !defined PCTS */
	/*
	** We're supposed to assume that somebody took a time of one type
	** and did some math on it that yielded a "struct tm" that's bad.
	** We try to divine the type they started from and adjust to the
	** type they need.
	*/
	if (sp == NULL)
		return WRONG;
	for (i = 0; i < sp->typecnt; ++i)
		seen[i] = false;
	nseen = 0;
	for (i = sp->timecnt - 1; i >= 0; --i)
		if (!seen[sp->types[i]]) {
			seen[sp->types[i]] = true;
			types[nseen++] = sp->types[i];
		}
	for (sameind = 0; sameind < nseen; ++sameind) {
		samei = types[sameind];
		if (sp->ttis[samei].tt_isdst != tmp->tm_isdst)
			continue;
		for (otherind = 0; otherind < nseen; ++otherind) {
			otheri = types[otherind];
			if (sp->ttis[otheri].tt_isdst == tmp->tm_isdst)
				continue;
			tmp->tm_sec += (sp->ttis[otheri].tt_utoff
					- sp->ttis[samei].tt_utoff);
			tmp->tm_isdst = !tmp->tm_isdst;
			t = time2(tmp, funcp, sp, offset, &okay);
			if (okay)
				return t;
			tmp->tm_sec -= (sp->ttis[otheri].tt_utoff
					- sp->ttis[samei].tt_utoff);
			tmp->tm_isdst = !tmp->tm_isdst;
		}
	}
	return WRONG;
}

static time_t
mktime_tzname(struct state *sp, struct tm *tmp, bool setname)
{
  if (sp)
    return time1(tmp, localsub, sp, setname);
  else {
    gmtcheck();
    return time1(tmp, gmtsub, gmtptr, 0);
  }
}

#if NETBSD_INSPIRED

time_t
mktime_z(struct state *sp, struct tm *tmp)
{
  return mktime_tzname(sp, tmp, false);
}

#endif

time_t
mktime(struct tm *tmp)
{
  time_t t;
  int err = lock();
  if (err) {
    errno = err;
    return -1;
  }
  tzset_unlocked();
  t = mktime_tzname(lclptr, tmp, true);
  unlock();
  return t;
}

#ifdef STD_INSPIRED

time_t
timelocal(struct tm *tmp)
{
	if (tmp != NULL)
		tmp->tm_isdst = -1;	/* in case it wasn't initialized */
	return mktime(tmp);
}

time_t
timegm(struct tm *tmp)
{
  return timeoff(tmp, 0);
}

time_t
timeoff(struct tm *tmp, long offset)
{
  if (tmp)
    tmp->tm_isdst = 0;
  gmtcheck();
  return time1(tmp, gmtsub, gmtptr, offset);
}

#endif /* defined STD_INSPIRED */

/*
** XXX--is the below the right way to conditionalize??
*/

#ifdef STD_INSPIRED

/*
** IEEE Std 1003.1 (POSIX) says that 536457599
** shall correspond to "Wed Dec 31 23:59:59 UTC 1986", which
** is not the case if we are accounting for leap seconds.
** So, we provide the following conversion routines for use
** when exchanging timestamps with POSIX conforming systems.
*/

static int_fast64_t
leapcorr(struct state const *sp, time_t t)
{
	register struct lsinfo const *	lp;
	register int			i;

	i = sp->leapcnt;
	while (--i >= 0) {
		lp = &sp->lsis[i];
		if (t >= lp->ls_trans)
			return lp->ls_corr;
	}
	return 0;
}

NETBSD_INSPIRED_EXTERN time_t
time2posix_z(struct state *sp, time_t t)
{
  return t - leapcorr(sp, t);
}

time_t
time2posix(time_t t)
{
  int err = lock();
  if (err) {
    errno = err;
    return -1;
  }
  if (!lcl_is_set)
    tzset_unlocked();
  if (lclptr)
    t = time2posix_z(lclptr, t);
  unlock();
  return t;
}

NETBSD_INSPIRED_EXTERN time_t
posix2time_z(struct state *sp, time_t t)
{
	time_t	x;
	time_t	y;
	/*
	** For a positive leap second hit, the result
	** is not unique. For a negative leap second
	** hit, the corresponding time doesn't exist,
	** so we return an adjacent second.
	*/
	x = t + leapcorr(sp, t);
	y = x - leapcorr(sp, x);
	if (y < t) {
		do {
			x++;
			y = x - leapcorr(sp, x);
		} while (y < t);
		x -= y != t;
	} else if (y > t) {
		do {
			--x;
			y = x - leapcorr(sp, x);
		} while (y > t);
		x += y != t;
	}
	return x;
}

time_t
posix2time(time_t t)
{
  int err = lock();
  if (err) {
    errno = err;
    return -1;
  }
  if (!lcl_is_set)
    tzset_unlocked();
  if (lclptr)
    t = posix2time_z(lclptr, t);
  unlock();
  return t;
}

#endif /* defined STD_INSPIRED */

#if TZ_TIME_T

# if !USG_COMPAT
#  define daylight 0
#  define timezone 0
# endif
# ifndef ALTZONE
#  define altzone 0
# endif

/* Convert from the underlying system's time_t to the ersatz time_tz,
   which is called 'time_t' in this file.  Typically, this merely
   converts the time's integer width.  On some platforms, the system
   time is local time not UT, or uses some epoch other than the POSIX
   epoch.

   Although this code appears to define a function named 'time' that
   returns time_t, the macros in private.h cause this code to actually
   define a function named 'tz_time' that returns tz_time_t.  The call
   to sys_time invokes the underlying system's 'time' function.  */

time_t
time(time_t *p)
{
  time_t r = sys_time(0);
  if (r != (time_t) -1) {
    int_fast32_t offset = EPOCH_LOCAL ? (daylight ? timezone : altzone) : 0;
    if (increment_overflow32(&offset, -EPOCH_OFFSET)
	|| increment_overflow_time (&r, offset)) {
      errno = EOVERFLOW;
      r = -1;
    }
  }
  if (p)
    *p = r;
  return r;
}

#endif
./tzdatabase/factory0000644000175000017500000000062413501635421014653 0ustar  anthonyanthony# tzdb data for noncommittal factory settings

# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.

# For distributors who don't want to specify a timezone in their
# installation procedures.  Users who run 'date' will get the
# time zone abbreviation "-00", indicating that the actual time zone
# is unknown.

# Zone	NAME	STDOFF	RULES	FORMAT
Zone	Factory	0	-	-00
./tzdatabase/date.10000644000175000017500000001106213314753111014255 0ustar  anthonyanthony.TH DATE 1
.SH NAME
date \- show and set date and time
.SH SYNOPSIS
.if n .nh
.if n .na
.ie \n(.g .ds - \f(CW-\fP
.el ds - \-
.B date
[
.B \*-u
] [
.B \*-c
] [
.B \*-r
.I seconds
] [
.BI + format
] [
\fR[\fIyyyy\fR]\fImmddhhmm\fR[\fIyy\fR][\fB.\fIss\fR]
]
.SH DESCRIPTION
.ie '\(lq'' .ds lq \&"\"
.el .ds lq \(lq\"
.ie '\(rq'' .ds rq \&"\"
.el .ds rq \(rq\"
.de q
\\$3\*(lq\\$1\*(rq\\$2
..
.I Date
without arguments writes the date and time to the standard output in
the form
.ce 1
Wed Mar  8 14:54:40 EST 1989
.br
with
.B EST
replaced by the local time zone's abbreviation
(or by the abbreviation for the time zone specified in the
.B TZ
environment variable if set).
The exact output format depends on the locale.
.PP
If a command-line argument starts with a plus sign (\c
.q "\fB+\fP" ),
the rest of the argument is used as a
.I format
that controls what appears in the output.
In the format, when a percent sign (\c
.q "\fB%\fP"
appears,
it and the character after it are not output,
but rather identify part of the date or time
to be output in a particular way
(or identify a special character to output):
.nf
.sp
.if t .in +.5i
.if n .in +2
.ta \w'%M\0\0'u +\w'Wed Mar  8 14:54:40 EST 1989\0\0'u
	Sample output	Explanation
%a	Wed	Abbreviated weekday name*
%A	Wednesday	Full weekday name*
%b	Mar	Abbreviated month name*
%B	March	Full month name*
%c	Wed Mar 08 14:54:40 1989	Date and time*
%C	19	Century
%d	08	Day of month (always two digits)
%D	03/08/89	Month/day/year (eight characters)
%e	 8	Day of month (leading zero blanked)
%h	Mar	Abbreviated month name*
%H	14	24-hour-clock hour (two digits)
%I	02	12-hour-clock hour (two digits)
%j	067	Julian day number (three digits)
%k	 2	12-hour-clock hour (leading zero blanked)
%l	14	24-hour-clock hour (leading zero blanked)
%m	03	Month number (two digits)
%M	54	Minute (two digits)
%n	\\n	newline character
%p	PM	AM/PM designation
%r	02:54:40 PM	Hour:minute:second AM/PM designation
%R	14:54	Hour:minute
%S	40	Second (two digits)
%t	\\t	tab character
%T	14:54:40	Hour:minute:second
%U	10	Sunday-based week number (two digits)
%w	3	Day number (one digit, Sunday is 0)
%W	10	Monday-based week number (two digits)
%x	03/08/89	Date*
%X	14:54:40	Time*
%y	89	Last two digits of year
%Y	1989	Year in full
%z	-0500	Numeric time zone
%Z	EST	Time zone abbreviation
%+	Wed Mar  8 14:54:40 EST 1989	Default output format*
.if t .in -.5i
.if n .in -2
* The exact output depends on the locale.
.sp
.fi
If a character other than one of those shown above appears after
a percent sign in the format,
that following character is output.
All other characters in the format are copied unchanged to the output;
a newline character is always added at the end of the output.
.PP
In Sunday-based week numbering,
the first Sunday of the year begins week 1;
days preceding it are part of
.q "week 0" .
In Monday-based week numbering,
the first Monday of the year begins week 1.
.PP
To set the date, use a command line argument with one of the following forms:
.nf
.if t .in +.5i
.if n .in +2
.ta \w'198903081454\0'u
1454	24-hour-clock hours (first two digits) and minutes
081454	Month day (first two digits), hours, and minutes
03081454	Month (two digits, January is 01), month day, hours, minutes
8903081454	Year, month, month day, hours, minutes
0308145489	Month, month day, hours, minutes, year
	(on System V-compatible systems)
030814541989	Month, month day, hours, minutes, four-digit year
198903081454	Four-digit year, month, month day, hours, minutes
.if t .in -.5i
.if n .in -2
.fi
If the century, year, month, or month day is not given,
the current value is used.
Any of the above forms may be followed by a period and two digits that give
the seconds part of the new time; if no seconds are given, zero is assumed.
.PP
These options are available:
.TP
.BR \*-u " or " \*-c
Use Universal Time when setting and showing the date and time.
.TP
.BI "\*-r " seconds
Output the date that corresponds to
.I seconds
past the epoch of 1970-01-01 00:00:00 UTC, where
.I seconds
should be an integer, either decimal, octal (leading 0), or
hexadecimal (leading 0x), preceded by an optional sign.
.SH FILES
.ta \w'/usr/share/zoneinfo/posixrules\0\0'u
/etc/localtime	local timezone file
.br
/usr/lib/locale/\f2L\fP/LC_TIME	description of time locale \f2L\fP
.br
/usr/share/zoneinfo	timezone information directory
.br
/usr/share/zoneinfo/posixrules	used with POSIX-style TZ's
.br
/usr/share/zoneinfo/GMT	for UTC leap seconds
.sp
If
.B /usr/share/zoneinfo/GMT
is absent,
UTC leap seconds are loaded from
.BR /usr/share/zoneinfo/posixrules .
.\" This file is in the public domain, so clarified as of
.\" 2009-05-17 by Arthur David Olson.
./tzdatabase/private.h0000644000175000017500000004451513323151404015107 0ustar  anthonyanthony/* Private header for tzdb code.  */

#ifndef PRIVATE_H

#define PRIVATE_H

/*
** This file is in the public domain, so clarified as of
** 1996-06-05 by Arthur David Olson.
*/

/*
** This header is for use ONLY with the time conversion code.
** There is no guarantee that it will remain unchanged,
** or that it will remain at all.
** Do NOT copy it to any system include directory.
** Thank you!
*/

/*
** zdump has been made independent of the rest of the time
** conversion package to increase confidence in the verification it provides.
** You can use zdump to help in verifying other implementations.
** To do this, compile with -DUSE_LTZ=0 and link without the tz library.
*/
#ifndef USE_LTZ
# define USE_LTZ 1
#endif

/* This string was in the Factory zone through version 2016f.  */
#define GRANDPARENTED	"Local time zone must be set--see zic manual page"

/*
** Defaults for preprocessor symbols.
** You can override these in your C compiler options, e.g. '-DHAVE_GETTEXT=1'.
*/

#ifndef HAVE_DECL_ASCTIME_R
#define HAVE_DECL_ASCTIME_R 1
#endif

#if !defined HAVE_GENERIC && defined __has_extension
# if __has_extension(c_generic_selections)
#  define HAVE_GENERIC 1
# else
#  define HAVE_GENERIC 0
# endif
#endif
/* _Generic is buggy in pre-4.9 GCC.  */
#if !defined HAVE_GENERIC && defined __GNUC__
# define HAVE_GENERIC (4 < __GNUC__ + (9 <= __GNUC_MINOR__))
#endif
#ifndef HAVE_GENERIC
# define HAVE_GENERIC (201112 <= __STDC_VERSION__)
#endif

#ifndef HAVE_GETTEXT
#define HAVE_GETTEXT		0
#endif /* !defined HAVE_GETTEXT */

#ifndef HAVE_INCOMPATIBLE_CTIME_R
#define HAVE_INCOMPATIBLE_CTIME_R	0
#endif

#ifndef HAVE_LINK
#define HAVE_LINK		1
#endif /* !defined HAVE_LINK */

#ifndef HAVE_POSIX_DECLS
#define HAVE_POSIX_DECLS 1
#endif

#ifndef HAVE_STDBOOL_H
#define HAVE_STDBOOL_H (199901 <= __STDC_VERSION__)
#endif

#ifndef HAVE_STRDUP
#define HAVE_STRDUP 1
#endif

#ifndef HAVE_STRTOLL
#define HAVE_STRTOLL 1
#endif

#ifndef HAVE_SYMLINK
#define HAVE_SYMLINK		1
#endif /* !defined HAVE_SYMLINK */

#ifndef HAVE_SYS_STAT_H
#define HAVE_SYS_STAT_H		1
#endif /* !defined HAVE_SYS_STAT_H */

#ifndef HAVE_SYS_WAIT_H
#define HAVE_SYS_WAIT_H		1
#endif /* !defined HAVE_SYS_WAIT_H */

#ifndef HAVE_UNISTD_H
#define HAVE_UNISTD_H		1
#endif /* !defined HAVE_UNISTD_H */

#ifndef HAVE_UTMPX_H
#define HAVE_UTMPX_H		1
#endif /* !defined HAVE_UTMPX_H */

#ifndef NETBSD_INSPIRED
# define NETBSD_INSPIRED 1
#endif

#if HAVE_INCOMPATIBLE_CTIME_R
#define asctime_r _incompatible_asctime_r
#define ctime_r _incompatible_ctime_r
#endif /* HAVE_INCOMPATIBLE_CTIME_R */

/* Enable tm_gmtoff, tm_zone, and environ on GNUish systems.  */
#define _GNU_SOURCE 1
/* Fix asctime_r on Solaris 11.  */
#define _POSIX_PTHREAD_SEMANTICS 1
/* Enable strtoimax on pre-C99 Solaris 11.  */
#define __EXTENSIONS__ 1

/* To avoid having 'stat' fail unnecessarily with errno == EOVERFLOW,
   enable large files on GNUish systems ...  */
#ifndef _FILE_OFFSET_BITS
# define _FILE_OFFSET_BITS 64
#endif
/* ... and on AIX ...  */
#define _LARGE_FILES 1
/* ... and enable large inode numbers on Mac OS X 10.5 and later.  */
#define _DARWIN_USE_64_BIT_INODE 1

/*
** Nested includes
*/

/* Avoid clashes with NetBSD by renaming NetBSD's declarations.  */
#define localtime_rz sys_localtime_rz
#define mktime_z sys_mktime_z
#define posix2time_z sys_posix2time_z
#define time2posix_z sys_time2posix_z
#define timezone_t sys_timezone_t
#define tzalloc sys_tzalloc
#define tzfree sys_tzfree
#include 
#undef localtime_rz
#undef mktime_z
#undef posix2time_z
#undef time2posix_z
#undef timezone_t
#undef tzalloc
#undef tzfree

#include 	/* for time_t */
#include 
#include 	/* for CHAR_BIT et al. */
#include 

#include 

#ifndef ENAMETOOLONG
# define ENAMETOOLONG EINVAL
#endif
#ifndef ENOTSUP
# define ENOTSUP EINVAL
#endif
#ifndef EOVERFLOW
# define EOVERFLOW EINVAL
#endif

#if HAVE_GETTEXT
#include 
#endif /* HAVE_GETTEXT */

#if HAVE_UNISTD_H
#include 	/* for R_OK, and other POSIX goodness */
#endif /* HAVE_UNISTD_H */

#ifndef HAVE_STRFTIME_L
# if _POSIX_VERSION < 200809
#  define HAVE_STRFTIME_L 0
# else
#  define HAVE_STRFTIME_L 1
# endif
#endif

#ifndef USG_COMPAT
# ifndef _XOPEN_VERSION
#  define USG_COMPAT 0
# else
#  define USG_COMPAT 1
# endif
#endif

#ifndef HAVE_TZNAME
# if _POSIX_VERSION < 198808 && !USG_COMPAT
#  define HAVE_TZNAME 0
# else
#  define HAVE_TZNAME 1
# endif
#endif

#ifndef R_OK
#define R_OK	4
#endif /* !defined R_OK */

/* Unlike 's isdigit, this also works if c < 0 | c > UCHAR_MAX. */
#define is_digit(c) ((unsigned)(c) - '0' <= 9)

/*
** Define HAVE_STDINT_H's default value here, rather than at the
** start, since __GLIBC__ and INTMAX_MAX's values depend on
** previously-included files.  glibc 2.1 and Solaris 10 and later have
** stdint.h, even with pre-C99 compilers.
*/
#ifndef HAVE_STDINT_H
#define HAVE_STDINT_H \
   (199901 <= __STDC_VERSION__ \
    || 2 < __GLIBC__ + (1 <= __GLIBC_MINOR__)	\
    || __CYGWIN__ || INTMAX_MAX)
#endif /* !defined HAVE_STDINT_H */

#if HAVE_STDINT_H
#include 
#endif /* !HAVE_STDINT_H */

#ifndef HAVE_INTTYPES_H
# define HAVE_INTTYPES_H HAVE_STDINT_H
#endif
#if HAVE_INTTYPES_H
# include 
#endif

/* Pre-C99 GCC compilers define __LONG_LONG_MAX__ instead of LLONG_MAX.  */
#ifdef __LONG_LONG_MAX__
# ifndef LLONG_MAX
#  define LLONG_MAX __LONG_LONG_MAX__
# endif
# ifndef LLONG_MIN
#  define LLONG_MIN (-1 - LLONG_MAX)
# endif
#endif

#ifndef INT_FAST64_MAX
# ifdef LLONG_MAX
typedef long long	int_fast64_t;
#  define INT_FAST64_MIN LLONG_MIN
#  define INT_FAST64_MAX LLONG_MAX
# else
#  if LONG_MAX >> 31 < 0xffffffff
Please use a compiler that supports a 64-bit integer type (or wider);
you may need to compile with "-DHAVE_STDINT_H".
#  endif
typedef long		int_fast64_t;
#  define INT_FAST64_MIN LONG_MIN
#  define INT_FAST64_MAX LONG_MAX
# endif
#endif

#ifndef PRIdFAST64
# if INT_FAST64_MAX == LLONG_MAX
#  define PRIdFAST64 "lld"
# else
#  define PRIdFAST64 "ld"
# endif
#endif

#ifndef SCNdFAST64
# define SCNdFAST64 PRIdFAST64
#endif

#ifndef INT_FAST32_MAX
# if INT_MAX >> 31 == 0
typedef long int_fast32_t;
#  define INT_FAST32_MAX LONG_MAX
#  define INT_FAST32_MIN LONG_MIN
# else
typedef int int_fast32_t;
#  define INT_FAST32_MAX INT_MAX
#  define INT_FAST32_MIN INT_MIN
# endif
#endif

#ifndef INTMAX_MAX
# ifdef LLONG_MAX
typedef long long intmax_t;
#  if HAVE_STRTOLL
#   define strtoimax strtoll
#  endif
#  define INTMAX_MAX LLONG_MAX
#  define INTMAX_MIN LLONG_MIN
# else
typedef long intmax_t;
#  define INTMAX_MAX LONG_MAX
#  define INTMAX_MIN LONG_MIN
# endif
# ifndef strtoimax
#  define strtoimax strtol
# endif
#endif

#ifndef PRIdMAX
# if INTMAX_MAX == LLONG_MAX
#  define PRIdMAX "lld"
# else
#  define PRIdMAX "ld"
# endif
#endif

#ifndef UINT_FAST64_MAX
# if defined ULLONG_MAX || defined __LONG_LONG_MAX__
typedef unsigned long long uint_fast64_t;
# else
#  if ULONG_MAX >> 31 >> 1 < 0xffffffff
Please use a compiler that supports a 64-bit integer type (or wider);
you may need to compile with "-DHAVE_STDINT_H".
#  endif
typedef unsigned long	uint_fast64_t;
# endif
#endif

#ifndef UINTMAX_MAX
# if defined ULLONG_MAX || defined __LONG_LONG_MAX__
typedef unsigned long long uintmax_t;
# else
typedef unsigned long uintmax_t;
# endif
#endif

#ifndef PRIuMAX
# if defined ULLONG_MAX || defined __LONG_LONG_MAX__
#  define PRIuMAX "llu"
# else
#  define PRIuMAX "lu"
# endif
#endif

#ifndef INT32_MAX
#define INT32_MAX 0x7fffffff
#endif /* !defined INT32_MAX */
#ifndef INT32_MIN
#define INT32_MIN (-1 - INT32_MAX)
#endif /* !defined INT32_MIN */

#ifndef SIZE_MAX
#define SIZE_MAX ((size_t) -1)
#endif

#if 3 <= __GNUC__
# define ATTRIBUTE_CONST __attribute__ ((const))
# define ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
# define ATTRIBUTE_PURE __attribute__ ((__pure__))
# define ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
#else
# define ATTRIBUTE_CONST /* empty */
# define ATTRIBUTE_MALLOC /* empty */
# define ATTRIBUTE_PURE /* empty */
# define ATTRIBUTE_FORMAT(spec) /* empty */
#endif

#if !defined _Noreturn && __STDC_VERSION__ < 201112
# if 2 < __GNUC__ + (8 <= __GNUC_MINOR__)
#  define _Noreturn __attribute__ ((__noreturn__))
# else
#  define _Noreturn
# endif
#endif

#if __STDC_VERSION__ < 199901 && !defined restrict
# define restrict /* empty */
#endif

/*
** Workarounds for compilers/systems.
*/

#ifndef EPOCH_LOCAL
# define EPOCH_LOCAL 0
#endif
#ifndef EPOCH_OFFSET
# define EPOCH_OFFSET 0
#endif
#ifndef RESERVE_STD_EXT_IDS
# define RESERVE_STD_EXT_IDS 0
#endif

/* If standard C identifiers with external linkage (e.g., localtime)
   are reserved and are not already being renamed anyway, rename them
   as if compiling with '-Dtime_tz=time_t'.  */
#if !defined time_tz && RESERVE_STD_EXT_IDS && USE_LTZ
# define time_tz time_t
#endif

/*
** Compile with -Dtime_tz=T to build the tz package with a private
** time_t type equivalent to T rather than the system-supplied time_t.
** This debugging feature can test unusual design decisions
** (e.g., time_t wider than 'long', or unsigned time_t) even on
** typical platforms.
*/
#if defined time_tz || EPOCH_LOCAL || EPOCH_OFFSET != 0
# define TZ_TIME_T 1
#else
# define TZ_TIME_T 0
#endif

#if TZ_TIME_T
# ifdef LOCALTIME_IMPLEMENTATION
static time_t sys_time(time_t *x) { return time(x); }
# endif

typedef time_tz tz_time_t;

# undef  ctime
# define ctime tz_ctime
# undef  ctime_r
# define ctime_r tz_ctime_r
# undef  difftime
# define difftime tz_difftime
# undef  gmtime
# define gmtime tz_gmtime
# undef  gmtime_r
# define gmtime_r tz_gmtime_r
# undef  localtime
# define localtime tz_localtime
# undef  localtime_r
# define localtime_r tz_localtime_r
# undef  localtime_rz
# define localtime_rz tz_localtime_rz
# undef  mktime
# define mktime tz_mktime
# undef  mktime_z
# define mktime_z tz_mktime_z
# undef  offtime
# define offtime tz_offtime
# undef  posix2time
# define posix2time tz_posix2time
# undef  posix2time_z
# define posix2time_z tz_posix2time_z
# undef  strftime
# define strftime tz_strftime
# undef  time
# define time tz_time
# undef  time2posix
# define time2posix tz_time2posix
# undef  time2posix_z
# define time2posix_z tz_time2posix_z
# undef  time_t
# define time_t tz_time_t
# undef  timegm
# define timegm tz_timegm
# undef  timelocal
# define timelocal tz_timelocal
# undef  timeoff
# define timeoff tz_timeoff
# undef  tzalloc
# define tzalloc tz_tzalloc
# undef  tzfree
# define tzfree tz_tzfree
# undef  tzset
# define tzset tz_tzset
# undef  tzsetwall
# define tzsetwall tz_tzsetwall
# if HAVE_STRFTIME_L
#  undef  strftime_l
#  define strftime_l tz_strftime_l
# endif
# if HAVE_TZNAME
#  undef  tzname
#  define tzname tz_tzname
# endif
# if USG_COMPAT
#  undef  daylight
#  define daylight tz_daylight
#  undef  timezone
#  define timezone tz_timezone
# endif
# ifdef ALTZONE
#  undef  altzone
#  define altzone tz_altzone
# endif

char *ctime(time_t const *);
char *ctime_r(time_t const *, char *);
double difftime(time_t, time_t) ATTRIBUTE_CONST;
size_t strftime(char *restrict, size_t, char const *restrict,
		struct tm const *restrict);
# if HAVE_STRFTIME_L
size_t strftime_l(char *restrict, size_t, char const *restrict,
		  struct tm const *restrict, locale_t);
# endif
struct tm *gmtime(time_t const *);
struct tm *gmtime_r(time_t const *restrict, struct tm *restrict);
struct tm *localtime(time_t const *);
struct tm *localtime_r(time_t const *restrict, struct tm *restrict);
time_t mktime(struct tm *);
time_t time(time_t *);
void tzset(void);
#endif

#if !HAVE_DECL_ASCTIME_R && !defined asctime_r
extern char *asctime_r(struct tm const *restrict, char *restrict);
#endif

#ifndef HAVE_DECL_ENVIRON
# if defined environ || defined __USE_GNU
#  define HAVE_DECL_ENVIRON 1
# else
#  define HAVE_DECL_ENVIRON 0
# endif
#endif

#if !HAVE_DECL_ENVIRON
extern char **environ;
#endif

#if TZ_TIME_T || !HAVE_POSIX_DECLS
# if HAVE_TZNAME
extern char *tzname[];
# endif
# if USG_COMPAT
extern long timezone;
extern int daylight;
# endif
#endif

#ifdef ALTZONE
extern long altzone;
#endif

/*
** The STD_INSPIRED functions are similar, but most also need
** declarations if time_tz is defined.
*/

#ifdef STD_INSPIRED
# if TZ_TIME_T || !defined tzsetwall
void tzsetwall(void);
# endif
# if TZ_TIME_T || !defined offtime
struct tm *offtime(time_t const *, long);
# endif
# if TZ_TIME_T || !defined timegm
time_t timegm(struct tm *);
# endif
# if TZ_TIME_T || !defined timelocal
time_t timelocal(struct tm *);
# endif
# if TZ_TIME_T || !defined timeoff
time_t timeoff(struct tm *, long);
# endif
# if TZ_TIME_T || !defined time2posix
time_t time2posix(time_t);
# endif
# if TZ_TIME_T || !defined posix2time
time_t posix2time(time_t);
# endif
#endif

/* Infer TM_ZONE on systems where this information is known, but suppress
   guessing if NO_TM_ZONE is defined.  Similarly for TM_GMTOFF.  */
#if (defined __GLIBC__ \
     || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ \
     || (defined __APPLE__ && defined __MACH__))
# if !defined TM_GMTOFF && !defined NO_TM_GMTOFF
#  define TM_GMTOFF tm_gmtoff
# endif
# if !defined TM_ZONE && !defined NO_TM_ZONE
#  define TM_ZONE tm_zone
# endif
#endif

/*
** Define functions that are ABI compatible with NetBSD but have
** better prototypes.  NetBSD 6.1.4 defines a pointer type timezone_t
** and labors under the misconception that 'const timezone_t' is a
** pointer to a constant.  This use of 'const' is ineffective, so it
** is not done here.  What we call 'struct state' NetBSD calls
** 'struct __state', but this is a private name so it doesn't matter.
*/
#if NETBSD_INSPIRED
typedef struct state *timezone_t;
struct tm *localtime_rz(timezone_t restrict, time_t const *restrict,
			struct tm *restrict);
time_t mktime_z(timezone_t restrict, struct tm *restrict);
timezone_t tzalloc(char const *);
void tzfree(timezone_t);
# ifdef STD_INSPIRED
#  if TZ_TIME_T || !defined posix2time_z
time_t posix2time_z(timezone_t, time_t) ATTRIBUTE_PURE;
#  endif
#  if TZ_TIME_T || !defined time2posix_z
time_t time2posix_z(timezone_t, time_t) ATTRIBUTE_PURE;
#  endif
# endif
#endif

/*
** Finally, some convenience items.
*/

#if HAVE_STDBOOL_H
# include 
#else
# define true 1
# define false 0
# define bool int
#endif

#define TYPE_BIT(type)	(sizeof (type) * CHAR_BIT)
#define TYPE_SIGNED(type) (((type) -1) < 0)
#define TWOS_COMPLEMENT(t) ((t) ~ (t) 0 < 0)

/* Max and min values of the integer type T, of which only the bottom
   B bits are used, and where the highest-order used bit is considered
   to be a sign bit if T is signed.  */
#define MAXVAL(t, b)						\
  ((t) (((t) 1 << ((b) - 1 - TYPE_SIGNED(t)))			\
	- 1 + ((t) 1 << ((b) - 1 - TYPE_SIGNED(t)))))
#define MINVAL(t, b)						\
  ((t) (TYPE_SIGNED(t) ? - TWOS_COMPLEMENT(t) - MAXVAL(t, b) : 0))

/* The extreme time values, assuming no padding.  */
#define TIME_T_MIN_NO_PADDING MINVAL(time_t, TYPE_BIT(time_t))
#define TIME_T_MAX_NO_PADDING MAXVAL(time_t, TYPE_BIT(time_t))

/* The extreme time values.  These are macros, not constants, so that
   any portability problem occur only when compiling .c files that use
   the macros, which is safer for applications that need only zdump and zic.
   This implementation assumes no padding if time_t is signed and
   either the compiler lacks support for _Generic or time_t is not one
   of the standard signed integer types.  */
#if HAVE_GENERIC
# define TIME_T_MIN \
    _Generic((time_t) 0, \
	     signed char: SCHAR_MIN, short: SHRT_MIN, \
	     int: INT_MIN, long: LONG_MIN, long long: LLONG_MIN, \
	     default: TIME_T_MIN_NO_PADDING)
# define TIME_T_MAX \
    (TYPE_SIGNED(time_t) \
     ? _Generic((time_t) 0, \
		signed char: SCHAR_MAX, short: SHRT_MAX, \
		int: INT_MAX, long: LONG_MAX, long long: LLONG_MAX, \
		default: TIME_T_MAX_NO_PADDING)			    \
     : (time_t) -1)
#else
# define TIME_T_MIN TIME_T_MIN_NO_PADDING
# define TIME_T_MAX TIME_T_MAX_NO_PADDING
#endif

/*
** 302 / 1000 is log10(2.0) rounded up.
** Subtract one for the sign bit if the type is signed;
** add one for integer division truncation;
** add one more for a minus sign if the type is signed.
*/
#define INT_STRLEN_MAXIMUM(type) \
	((TYPE_BIT(type) - TYPE_SIGNED(type)) * 302 / 1000 + \
	1 + TYPE_SIGNED(type))

/*
** INITIALIZE(x)
*/

#ifdef GCC_LINT
# define INITIALIZE(x)	((x) = 0)
#else
# define INITIALIZE(x)
#endif

#ifndef UNINIT_TRAP
# define UNINIT_TRAP 0
#endif

/*
** For the benefit of GNU folk...
** '_(MSGID)' uses the current locale's message library string for MSGID.
** The default is to use gettext if available, and use MSGID otherwise.
*/

#if HAVE_GETTEXT
#define _(msgid) gettext(msgid)
#else /* !HAVE_GETTEXT */
#define _(msgid) msgid
#endif /* !HAVE_GETTEXT */

#if !defined TZ_DOMAIN && defined HAVE_GETTEXT
# define TZ_DOMAIN "tz"
#endif

#if HAVE_INCOMPATIBLE_CTIME_R
#undef asctime_r
#undef ctime_r
char *asctime_r(struct tm const *, char *);
char *ctime_r(time_t const *, char *);
#endif /* HAVE_INCOMPATIBLE_CTIME_R */

/* Handy macros that are independent of tzfile implementation.  */

#define YEARSPERREPEAT		400	/* years before a Gregorian repeat */

#define SECSPERMIN	60
#define MINSPERHOUR	60
#define HOURSPERDAY	24
#define DAYSPERWEEK	7
#define DAYSPERNYEAR	365
#define DAYSPERLYEAR	366
#define SECSPERHOUR	(SECSPERMIN * MINSPERHOUR)
#define SECSPERDAY	((int_fast32_t) SECSPERHOUR * HOURSPERDAY)
#define MONSPERYEAR	12

#define TM_SUNDAY	0
#define TM_MONDAY	1
#define TM_TUESDAY	2
#define TM_WEDNESDAY	3
#define TM_THURSDAY	4
#define TM_FRIDAY	5
#define TM_SATURDAY	6

#define TM_JANUARY	0
#define TM_FEBRUARY	1
#define TM_MARCH	2
#define TM_APRIL	3
#define TM_MAY		4
#define TM_JUNE		5
#define TM_JULY		6
#define TM_AUGUST	7
#define TM_SEPTEMBER	8
#define TM_OCTOBER	9
#define TM_NOVEMBER	10
#define TM_DECEMBER	11

#define TM_YEAR_BASE	1900

#define EPOCH_YEAR	1970
#define EPOCH_WDAY	TM_THURSDAY

#define isleap(y) (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0))

/*
** Since everything in isleap is modulo 400 (or a factor of 400), we know that
**	isleap(y) == isleap(y % 400)
** and so
**	isleap(a + b) == isleap((a + b) % 400)
** or
**	isleap(a + b) == isleap(a % 400 + b % 400)
** This is true even if % means modulo rather than Fortran remainder
** (which is allowed by C89 but not by C99 or later).
** We use this to avoid addition overflow problems.
*/

#define isleap_sum(a, b)	isleap((a) % 400 + (b) % 400)


/*
** The Gregorian year averages 365.2425 days, which is 31556952 seconds.
*/

#define AVGSECSPERYEAR		31556952L
#define SECSPERREPEAT \
  ((int_fast64_t) YEARSPERREPEAT * (int_fast64_t) AVGSECSPERYEAR)
#define SECSPERREPEAT_BITS	34	/* ceil(log2(SECSPERREPEAT)) */

#endif /* !defined PRIVATE_H */
./tzdatabase/ziguard.awk0000644000175000017500000002230614275061325015440 0ustar  anthonyanthony# Convert tzdata source into vanguard or rearguard form.

# Contributed by Paul Eggert.  This file is in the public domain.

# This is not a general-purpose converter; it is designed for current tzdata.
# It just converts from current source to main, vanguard, and rearguard forms.
# Although it might be nice for it to be idempotent, or to be useful
# for converting back and forth between vanguard and rearguard formats,
# it does not do these nonessential tasks now.
#
# Although main and vanguard forms are currently equivalent,
# this need not always be the case.  When the two forms differ,
# this script can convert either from main to vanguard form (needed then),
# or from vanguard to main form (this conversion would be needed later,
# after main became rearguard and vanguard became main).
# There is no need to convert rearguard to other forms.
#
# When converting to vanguard form, the output can use negative SAVE
# values.
#
# When converting to rearguard form, the output uses only nonnegative
# SAVE values.  The idea is for the output data to simulate the behavior
# of the input data as best it can within the constraints of the
# rearguard format.

# Given a FIELD like "-0:30", return a minute count like -30.
function get_minutes(field, \
		     sign, hours, minutes)
{
  sign = field ~ /^-/ ? -1 : 1
  hours = +field
  if (field ~ /:/) {
    minutes = field
    sub(/[^:]*:/, "", minutes)
  }
  return 60 * hours + sign * minutes
}

# Given an OFFSET, which is a minute count like 300 or 330,
# return a %z-style abbreviation like "+05" or "+0530".
function offset_abbr(offset, \
		     hours, minutes, sign)
{
  hours = int(offset / 60)
  minutes = offset % 60
  if (minutes) {
    return sprintf("%+.4d", hours * 100 + minutes);
  } else {
    return sprintf("%+.2d", hours)
  }
}

# Round TIMESTAMP (a +-hh:mm:ss.dddd string) to the nearest second.
function round_to_second(timestamp, \
			 hh, mm, ss, seconds, dot_dddd, subseconds)
{
  dot_dddd = timestamp
  if (!sub(/^[+-]?[0-9]+:[0-9]+:[0-9]+\./, ".", dot_dddd))
    return timestamp
  hh = mm = ss = timestamp
  sub(/^[-+]?[0-9]+:[0-9]+:/, "", ss)
  sub(/^[-+]?[0-9]+:/, "", mm)
  sub(/^[-+]?/, "", hh)
  seconds = 3600 * hh + 60 * mm + ss
  subseconds = +dot_dddd
  seconds += 0.5 < subseconds || ((subseconds == 0.5) && (seconds % 2));
  return sprintf("%s%d:%.2d:%.2d", timestamp ~ /^-/ ? "-" : "", \
		 seconds / 3600, seconds / 60 % 60, seconds % 60)
}

BEGIN {
  dataform_type["vanguard"] = 1
  dataform_type["main"] = 1
  dataform_type["rearguard"] = 1

  if (PACKRATLIST) {
    while (getline =8 25:00"
  # to "Sun>=9 1:00", to cater to zic before 2007 and to older Java.
  if ($0 ~ /^Rule/ && $2 == "Japan") {
    if (DATAFORM == "rearguard") {
      if ($7 == "Sat>=8" && $8 == "25:00") {
	sub(/Sat>=8/, "Sun>=9")
	sub(/25:00/, " 1:00")
      }
    } else {
      if ($7 == "Sun>=9" && $8 == "1:00") {
	sub(/Sun>=9/, "Sat>=8")
	sub(/ 1:00/, "25:00")
      }
    }
  }

  # In rearguard form, change the Morocco lines with negative SAVE values
  # to use positive SAVE values.
  if ($2 == "Morocco") {
    if ($0 ~ /^Rule/) {
      if ($4 ~ /^201[78]$/ && $6 == "Oct") {
	if (DATAFORM == "rearguard") {
	  sub(/\t2018\t/, "\t2017\t")
	} else {
	  sub(/\t2017\t/, "\t2018\t")
	}
      }

      if (2019 <= $3) {
	if ($8 == "2:00") {
	  if (DATAFORM == "rearguard") {
	    sub(/\t0\t/, "\t1:00\t")
	  } else {
	    sub(/\t1:00\t/, "\t0\t")
	  }
	} else {
	  if (DATAFORM == "rearguard") {
	    sub(/\t-1:00\t/, "\t0\t")
	  } else {
	    sub(/\t0\t/, "\t-1:00\t")
	  }
	}
      }
    }
    if ($1 ~ /^[+0-9-]/ && NF == 3) {
      if (DATAFORM == "rearguard") {
	sub(/1:00\tMorocco/, "0:00\tMorocco")
	sub(/\t\+01\/\+00$/, "\t+00/+01")
      } else {
	sub(/0:00\tMorocco/, "1:00\tMorocco")
	sub(/\t\+00\/+01$/, "\t+01/+00")
      }
    }
  }
}

/^Zone/ {
  packrat_ignored = FILENAME == PACKRATDATA && PACKRATLIST && !packratlist[$2];
}
{
  if (packrat_ignored && $0 !~ /^Rule/) {
    sub(/^/, "#")
  }
}

# If a Link line is followed by a Link or Zone line for the same data, comment
# out the Link line.  This can happen if backzone overrides a Link
# with a Zone or a different Link.
/^Zone/ {
  sub(/^Link/, "#Link", line[linkline[$2]])
}
/^Link/ {
  sub(/^Link/, "#Link", line[linkline[$3]])
  linkline[$3] = NR
}

{ line[NR] = $0 }

END {
  for (i = 1; i <= NR; i++)
    print line[i]
}
./tzdatabase/time2posix.30000644000175000017500000000653012376652124015462 0ustar  anthonyanthony.TH TIME2POSIX 3
.SH NAME
time2posix, posix2time \- convert seconds since the Epoch
.SH SYNOPSIS
.nf
.ie \n(.g .ds - \f(CW-\fP
.el ds - \-
.B #include 
.PP
.B time_t time2posix(time_t t);
.PP
.B time_t posix2time(time_t t);
.PP
.B cc ... \*-ltz
.fi
.SH DESCRIPTION
.ie '\(en'' .ds en \-
.el .ds en \(en
.ie '\(lq'' .ds lq \&"\"
.el .ds lq \(lq\"
.ie '\(rq'' .ds rq \&"\"
.el .ds rq \(rq\"
.de q
\\$3\*(lq\\$1\*(rq\\$2
..
IEEE Standard 1003.1
(POSIX)
requires the time_t value 536457599 to stand for 1986-12-31 23:59:59 UTC.
This effectively implies that POSIX time_t values cannot include leap
seconds and,
therefore,
that the system time must be adjusted as each leap occurs.
.PP
If the time package is configured with leap-second support
enabled,
however,
no such adjustment is needed and
time_t values continue to increase over leap events
(as a true
.q "seconds since..."
value).
This means that these values will differ from those required by POSIX
by the net number of leap seconds inserted since the Epoch.
.PP
Typically this is not a problem as the type time_t is intended
to be
(mostly)
opaque \*(en time_t values should only be obtained-from and
passed-to functions such as
.IR time(2) ,
.IR localtime(3) ,
.IR mktime(3) ,
and
.IR difftime(3) .
However,
POSIX gives an arithmetic
expression for directly computing a time_t value from a given date/time,
and the same relationship is assumed by some
(usually older)
applications.
Any programs creating/dissecting time_t's
using such a relationship will typically not handle intervals
over leap seconds correctly.
.PP
The
.I time2posix
and
.I posix2time
functions are provided to address this time_t mismatch by converting
between local time_t values and their POSIX equivalents.
This is done by accounting for the number of time-base changes that
would have taken place on a POSIX system as leap seconds were inserted
or deleted.
These converted values can then be used in lieu of correcting the older
applications,
or when communicating with POSIX-compliant systems.
.PP
.I Time2posix
is single-valued.
That is,
every local time_t
corresponds to a single POSIX time_t.
.I Posix2time
is less well-behaved:
for a positive leap second hit the result is not unique,
and for a negative leap second hit the corresponding
POSIX time_t doesn't exist so an adjacent value is returned.
Both of these are good indicators of the inferiority of the
POSIX representation.
.PP
The following table summarizes the relationship between a time
T and it's conversion to,
and back from,
the POSIX representation over the leap second inserted at the end of June,
1993.
.nf
.ta \w'93/06/30 'u +\w'23:59:59 'u +\w'A+0 'u +\w'X=time2posix(T) 'u
DATE	TIME	T	X=time2posix(T)	posix2time(X)
93/06/30	23:59:59	A+0	B+0	A+0
93/06/30	23:59:60	A+1	B+1	A+1 or A+2
93/07/01	00:00:00	A+2	B+1	A+1 or A+2
93/07/01	00:00:01	A+3	B+2	A+3

A leap second deletion would look like...

DATE	TIME	T	X=time2posix(T)	posix2time(X)
??/06/30	23:59:58	A+0	B+0	A+0
??/07/01	00:00:00	A+1	B+2	A+1
??/07/01	00:00:01	A+2	B+3	A+2
.sp
.ce
	[Note: posix2time(B+1) => A+0 or A+1]
.fi
.PP
If leap-second support is not enabled,
local time_t's and
POSIX time_t's are equivalent,
and both
.I time2posix
and
.I posix2time
degenerate to the identity function.
.SH SEE ALSO
difftime(3),
localtime(3),
mktime(3),
time(2)
.\" This file is in the public domain, so clarified as of
.\" 1996-06-05 by Arthur David Olson.
./tzdatabase/zone.tab0000644000175000017500000004573314225413731014740 0ustar  anthonyanthony# tzdb timezone descriptions (deprecated version)
#
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.
#
# From Paul Eggert (2021-09-20):
# This file is intended as a backward-compatibility aid for older programs.
# New programs should use zone1970.tab.  This file is like zone1970.tab (see
# zone1970.tab's comments), but with the following additional restrictions:
#
# 1.  This file contains only ASCII characters.
# 2.  The first data column contains exactly one country code.
#
# Because of (2), each row stands for an area that is the intersection
# of a region identified by a country code and of a timezone where civil
# clocks have agreed since 1970; this is a narrower definition than
# that of zone1970.tab.
#
# Unlike zone1970.tab, a row's third column can be a Link from
# 'backward' instead of a Zone.
#
# This table is intended as an aid for users, to help them select timezones
# appropriate for their practical needs.  It is not intended to take or
# endorse any position on legal or territorial claims.
#
#country-
#code	coordinates	TZ			comments
AD	+4230+00131	Europe/Andorra
AE	+2518+05518	Asia/Dubai
AF	+3431+06912	Asia/Kabul
AG	+1703-06148	America/Antigua
AI	+1812-06304	America/Anguilla
AL	+4120+01950	Europe/Tirane
AM	+4011+04430	Asia/Yerevan
AO	-0848+01314	Africa/Luanda
AQ	-7750+16636	Antarctica/McMurdo	New Zealand time - McMurdo, South Pole
AQ	-6617+11031	Antarctica/Casey	Casey
AQ	-6835+07758	Antarctica/Davis	Davis
AQ	-6640+14001	Antarctica/DumontDUrville	Dumont-d'Urville
AQ	-6736+06253	Antarctica/Mawson	Mawson
AQ	-6448-06406	Antarctica/Palmer	Palmer
AQ	-6734-06808	Antarctica/Rothera	Rothera
AQ	-690022+0393524	Antarctica/Syowa	Syowa
AQ	-720041+0023206	Antarctica/Troll	Troll
AQ	-7824+10654	Antarctica/Vostok	Vostok
AR	-3436-05827	America/Argentina/Buenos_Aires	Buenos Aires (BA, CF)
AR	-3124-06411	America/Argentina/Cordoba	Argentina (most areas: CB, CC, CN, ER, FM, MN, SE, SF)
AR	-2447-06525	America/Argentina/Salta	Salta (SA, LP, NQ, RN)
AR	-2411-06518	America/Argentina/Jujuy	Jujuy (JY)
AR	-2649-06513	America/Argentina/Tucuman	Tucuman (TM)
AR	-2828-06547	America/Argentina/Catamarca	Catamarca (CT); Chubut (CH)
AR	-2926-06651	America/Argentina/La_Rioja	La Rioja (LR)
AR	-3132-06831	America/Argentina/San_Juan	San Juan (SJ)
AR	-3253-06849	America/Argentina/Mendoza	Mendoza (MZ)
AR	-3319-06621	America/Argentina/San_Luis	San Luis (SL)
AR	-5138-06913	America/Argentina/Rio_Gallegos	Santa Cruz (SC)
AR	-5448-06818	America/Argentina/Ushuaia	Tierra del Fuego (TF)
AS	-1416-17042	Pacific/Pago_Pago
AT	+4813+01620	Europe/Vienna
AU	-3133+15905	Australia/Lord_Howe	Lord Howe Island
AU	-5430+15857	Antarctica/Macquarie	Macquarie Island
AU	-4253+14719	Australia/Hobart	Tasmania
AU	-3749+14458	Australia/Melbourne	Victoria
AU	-3352+15113	Australia/Sydney	New South Wales (most areas)
AU	-3157+14127	Australia/Broken_Hill	New South Wales (Yancowinna)
AU	-2728+15302	Australia/Brisbane	Queensland (most areas)
AU	-2016+14900	Australia/Lindeman	Queensland (Whitsunday Islands)
AU	-3455+13835	Australia/Adelaide	South Australia
AU	-1228+13050	Australia/Darwin	Northern Territory
AU	-3157+11551	Australia/Perth	Western Australia (most areas)
AU	-3143+12852	Australia/Eucla	Western Australia (Eucla)
AW	+1230-06958	America/Aruba
AX	+6006+01957	Europe/Mariehamn
AZ	+4023+04951	Asia/Baku
BA	+4352+01825	Europe/Sarajevo
BB	+1306-05937	America/Barbados
BD	+2343+09025	Asia/Dhaka
BE	+5050+00420	Europe/Brussels
BF	+1222-00131	Africa/Ouagadougou
BG	+4241+02319	Europe/Sofia
BH	+2623+05035	Asia/Bahrain
BI	-0323+02922	Africa/Bujumbura
BJ	+0629+00237	Africa/Porto-Novo
BL	+1753-06251	America/St_Barthelemy
BM	+3217-06446	Atlantic/Bermuda
BN	+0456+11455	Asia/Brunei
BO	-1630-06809	America/La_Paz
BQ	+120903-0681636	America/Kralendijk
BR	-0351-03225	America/Noronha	Atlantic islands
BR	-0127-04829	America/Belem	Para (east); Amapa
BR	-0343-03830	America/Fortaleza	Brazil (northeast: MA, PI, CE, RN, PB)
BR	-0803-03454	America/Recife	Pernambuco
BR	-0712-04812	America/Araguaina	Tocantins
BR	-0940-03543	America/Maceio	Alagoas, Sergipe
BR	-1259-03831	America/Bahia	Bahia
BR	-2332-04637	America/Sao_Paulo	Brazil (southeast: GO, DF, MG, ES, RJ, SP, PR, SC, RS)
BR	-2027-05437	America/Campo_Grande	Mato Grosso do Sul
BR	-1535-05605	America/Cuiaba	Mato Grosso
BR	-0226-05452	America/Santarem	Para (west)
BR	-0846-06354	America/Porto_Velho	Rondonia
BR	+0249-06040	America/Boa_Vista	Roraima
BR	-0308-06001	America/Manaus	Amazonas (east)
BR	-0640-06952	America/Eirunepe	Amazonas (west)
BR	-0958-06748	America/Rio_Branco	Acre
BS	+2505-07721	America/Nassau
BT	+2728+08939	Asia/Thimphu
BW	-2439+02555	Africa/Gaborone
BY	+5354+02734	Europe/Minsk
BZ	+1730-08812	America/Belize
CA	+4734-05243	America/St_Johns	Newfoundland; Labrador (southeast)
CA	+4439-06336	America/Halifax	Atlantic - NS (most areas); PE
CA	+4612-05957	America/Glace_Bay	Atlantic - NS (Cape Breton)
CA	+4606-06447	America/Moncton	Atlantic - New Brunswick
CA	+5320-06025	America/Goose_Bay	Atlantic - Labrador (most areas)
CA	+5125-05707	America/Blanc-Sablon	AST - QC (Lower North Shore)
CA	+4339-07923	America/Toronto	Eastern - ON, QC (most areas)
CA	+4901-08816	America/Nipigon	Eastern - ON, QC (no DST 1967-73)
CA	+4823-08915	America/Thunder_Bay	Eastern - ON (Thunder Bay)
CA	+6344-06828	America/Iqaluit	Eastern - NU (most east areas)
CA	+6608-06544	America/Pangnirtung	Eastern - NU (Pangnirtung)
CA	+484531-0913718	America/Atikokan	EST - ON (Atikokan); NU (Coral H)
CA	+4953-09709	America/Winnipeg	Central - ON (west); Manitoba
CA	+4843-09434	America/Rainy_River	Central - ON (Rainy R, Ft Frances)
CA	+744144-0944945	America/Resolute	Central - NU (Resolute)
CA	+624900-0920459	America/Rankin_Inlet	Central - NU (central)
CA	+5024-10439	America/Regina	CST - SK (most areas)
CA	+5017-10750	America/Swift_Current	CST - SK (midwest)
CA	+5333-11328	America/Edmonton	Mountain - AB; BC (E); SK (W)
CA	+690650-1050310	America/Cambridge_Bay	Mountain - NU (west)
CA	+6227-11421	America/Yellowknife	Mountain - NT (central)
CA	+682059-1334300	America/Inuvik	Mountain - NT (west)
CA	+4906-11631	America/Creston	MST - BC (Creston)
CA	+5546-12014	America/Dawson_Creek	MST - BC (Dawson Cr, Ft St John)
CA	+5848-12242	America/Fort_Nelson	MST - BC (Ft Nelson)
CA	+6043-13503	America/Whitehorse	MST - Yukon (east)
CA	+6404-13925	America/Dawson	MST - Yukon (west)
CA	+4916-12307	America/Vancouver	Pacific - BC (most areas)
CC	-1210+09655	Indian/Cocos
CD	-0418+01518	Africa/Kinshasa	Dem. Rep. of Congo (west)
CD	-1140+02728	Africa/Lubumbashi	Dem. Rep. of Congo (east)
CF	+0422+01835	Africa/Bangui
CG	-0416+01517	Africa/Brazzaville
CH	+4723+00832	Europe/Zurich
CI	+0519-00402	Africa/Abidjan
CK	-2114-15946	Pacific/Rarotonga
CL	-3327-07040	America/Santiago	Chile (most areas)
CL	-5309-07055	America/Punta_Arenas	Region of Magallanes
CL	-2709-10926	Pacific/Easter	Easter Island
CM	+0403+00942	Africa/Douala
CN	+3114+12128	Asia/Shanghai	Beijing Time
CN	+4348+08735	Asia/Urumqi	Xinjiang Time
CO	+0436-07405	America/Bogota
CR	+0956-08405	America/Costa_Rica
CU	+2308-08222	America/Havana
CV	+1455-02331	Atlantic/Cape_Verde
CW	+1211-06900	America/Curacao
CX	-1025+10543	Indian/Christmas
CY	+3510+03322	Asia/Nicosia	Cyprus (most areas)
CY	+3507+03357	Asia/Famagusta	Northern Cyprus
CZ	+5005+01426	Europe/Prague
DE	+5230+01322	Europe/Berlin	Germany (most areas)
DE	+4742+00841	Europe/Busingen	Busingen
DJ	+1136+04309	Africa/Djibouti
DK	+5540+01235	Europe/Copenhagen
DM	+1518-06124	America/Dominica
DO	+1828-06954	America/Santo_Domingo
DZ	+3647+00303	Africa/Algiers
EC	-0210-07950	America/Guayaquil	Ecuador (mainland)
EC	-0054-08936	Pacific/Galapagos	Galapagos Islands
EE	+5925+02445	Europe/Tallinn
EG	+3003+03115	Africa/Cairo
EH	+2709-01312	Africa/El_Aaiun
ER	+1520+03853	Africa/Asmara
ES	+4024-00341	Europe/Madrid	Spain (mainland)
ES	+3553-00519	Africa/Ceuta	Ceuta, Melilla
ES	+2806-01524	Atlantic/Canary	Canary Islands
ET	+0902+03842	Africa/Addis_Ababa
FI	+6010+02458	Europe/Helsinki
FJ	-1808+17825	Pacific/Fiji
FK	-5142-05751	Atlantic/Stanley
FM	+0725+15147	Pacific/Chuuk	Chuuk/Truk, Yap
FM	+0658+15813	Pacific/Pohnpei	Pohnpei/Ponape
FM	+0519+16259	Pacific/Kosrae	Kosrae
FO	+6201-00646	Atlantic/Faroe
FR	+4852+00220	Europe/Paris
GA	+0023+00927	Africa/Libreville
GB	+513030-0000731	Europe/London
GD	+1203-06145	America/Grenada
GE	+4143+04449	Asia/Tbilisi
GF	+0456-05220	America/Cayenne
GG	+492717-0023210	Europe/Guernsey
GH	+0533-00013	Africa/Accra
GI	+3608-00521	Europe/Gibraltar
GL	+6411-05144	America/Nuuk	Greenland (most areas)
GL	+7646-01840	America/Danmarkshavn	National Park (east coast)
GL	+7029-02158	America/Scoresbysund	Scoresbysund/Ittoqqortoormiit
GL	+7634-06847	America/Thule	Thule/Pituffik
GM	+1328-01639	Africa/Banjul
GN	+0931-01343	Africa/Conakry
GP	+1614-06132	America/Guadeloupe
GQ	+0345+00847	Africa/Malabo
GR	+3758+02343	Europe/Athens
GS	-5416-03632	Atlantic/South_Georgia
GT	+1438-09031	America/Guatemala
GU	+1328+14445	Pacific/Guam
GW	+1151-01535	Africa/Bissau
GY	+0648-05810	America/Guyana
HK	+2217+11409	Asia/Hong_Kong
HN	+1406-08713	America/Tegucigalpa
HR	+4548+01558	Europe/Zagreb
HT	+1832-07220	America/Port-au-Prince
HU	+4730+01905	Europe/Budapest
ID	-0610+10648	Asia/Jakarta	Java, Sumatra
ID	-0002+10920	Asia/Pontianak	Borneo (west, central)
ID	-0507+11924	Asia/Makassar	Borneo (east, south); Sulawesi/Celebes, Bali, Nusa Tengarra; Timor (west)
ID	-0232+14042	Asia/Jayapura	New Guinea (West Papua / Irian Jaya); Malukus/Moluccas
IE	+5320-00615	Europe/Dublin
IL	+314650+0351326	Asia/Jerusalem
IM	+5409-00428	Europe/Isle_of_Man
IN	+2232+08822	Asia/Kolkata
IO	-0720+07225	Indian/Chagos
IQ	+3321+04425	Asia/Baghdad
IR	+3540+05126	Asia/Tehran
IS	+6409-02151	Atlantic/Reykjavik
IT	+4154+01229	Europe/Rome
JE	+491101-0020624	Europe/Jersey
JM	+175805-0764736	America/Jamaica
JO	+3157+03556	Asia/Amman
JP	+353916+1394441	Asia/Tokyo
KE	-0117+03649	Africa/Nairobi
KG	+4254+07436	Asia/Bishkek
KH	+1133+10455	Asia/Phnom_Penh
KI	+0125+17300	Pacific/Tarawa	Gilbert Islands
KI	-0247-17143	Pacific/Kanton	Phoenix Islands
KI	+0152-15720	Pacific/Kiritimati	Line Islands
KM	-1141+04316	Indian/Comoro
KN	+1718-06243	America/St_Kitts
KP	+3901+12545	Asia/Pyongyang
KR	+3733+12658	Asia/Seoul
KW	+2920+04759	Asia/Kuwait
KY	+1918-08123	America/Cayman
KZ	+4315+07657	Asia/Almaty	Kazakhstan (most areas)
KZ	+4448+06528	Asia/Qyzylorda	Qyzylorda/Kyzylorda/Kzyl-Orda
KZ	+5312+06337	Asia/Qostanay	Qostanay/Kostanay/Kustanay
KZ	+5017+05710	Asia/Aqtobe	Aqtobe/Aktobe
KZ	+4431+05016	Asia/Aqtau	Mangghystau/Mankistau
KZ	+4707+05156	Asia/Atyrau	Atyrau/Atirau/Gur'yev
KZ	+5113+05121	Asia/Oral	West Kazakhstan
LA	+1758+10236	Asia/Vientiane
LB	+3353+03530	Asia/Beirut
LC	+1401-06100	America/St_Lucia
LI	+4709+00931	Europe/Vaduz
LK	+0656+07951	Asia/Colombo
LR	+0618-01047	Africa/Monrovia
LS	-2928+02730	Africa/Maseru
LT	+5441+02519	Europe/Vilnius
LU	+4936+00609	Europe/Luxembourg
LV	+5657+02406	Europe/Riga
LY	+3254+01311	Africa/Tripoli
MA	+3339-00735	Africa/Casablanca
MC	+4342+00723	Europe/Monaco
MD	+4700+02850	Europe/Chisinau
ME	+4226+01916	Europe/Podgorica
MF	+1804-06305	America/Marigot
MG	-1855+04731	Indian/Antananarivo
MH	+0709+17112	Pacific/Majuro	Marshall Islands (most areas)
MH	+0905+16720	Pacific/Kwajalein	Kwajalein
MK	+4159+02126	Europe/Skopje
ML	+1239-00800	Africa/Bamako
MM	+1647+09610	Asia/Yangon
MN	+4755+10653	Asia/Ulaanbaatar	Mongolia (most areas)
MN	+4801+09139	Asia/Hovd	Bayan-Olgiy, Govi-Altai, Hovd, Uvs, Zavkhan
MN	+4804+11430	Asia/Choibalsan	Dornod, Sukhbaatar
MO	+221150+1133230	Asia/Macau
MP	+1512+14545	Pacific/Saipan
MQ	+1436-06105	America/Martinique
MR	+1806-01557	Africa/Nouakchott
MS	+1643-06213	America/Montserrat
MT	+3554+01431	Europe/Malta
MU	-2010+05730	Indian/Mauritius
MV	+0410+07330	Indian/Maldives
MW	-1547+03500	Africa/Blantyre
MX	+1924-09909	America/Mexico_City	Central Time
MX	+2105-08646	America/Cancun	Eastern Standard Time - Quintana Roo
MX	+2058-08937	America/Merida	Central Time - Campeche, Yucatan
MX	+2540-10019	America/Monterrey	Central Time - Durango; Coahuila, Nuevo Leon, Tamaulipas (most areas)
MX	+2550-09730	America/Matamoros	Central Time US - Coahuila, Nuevo Leon, Tamaulipas (US border)
MX	+2313-10625	America/Mazatlan	Mountain Time - Baja California Sur, Nayarit, Sinaloa
MX	+2838-10605	America/Chihuahua	Mountain Time - Chihuahua (most areas)
MX	+2934-10425	America/Ojinaga	Mountain Time US - Chihuahua (US border)
MX	+2904-11058	America/Hermosillo	Mountain Standard Time - Sonora
MX	+3232-11701	America/Tijuana	Pacific Time US - Baja California
MX	+2048-10515	America/Bahia_Banderas	Central Time - Bahia de Banderas
MY	+0310+10142	Asia/Kuala_Lumpur	Malaysia (peninsula)
MY	+0133+11020	Asia/Kuching	Sabah, Sarawak
MZ	-2558+03235	Africa/Maputo
NA	-2234+01706	Africa/Windhoek
NC	-2216+16627	Pacific/Noumea
NE	+1331+00207	Africa/Niamey
NF	-2903+16758	Pacific/Norfolk
NG	+0627+00324	Africa/Lagos
NI	+1209-08617	America/Managua
NL	+5222+00454	Europe/Amsterdam
NO	+5955+01045	Europe/Oslo
NP	+2743+08519	Asia/Kathmandu
NR	-0031+16655	Pacific/Nauru
NU	-1901-16955	Pacific/Niue
NZ	-3652+17446	Pacific/Auckland	New Zealand (most areas)
NZ	-4357-17633	Pacific/Chatham	Chatham Islands
OM	+2336+05835	Asia/Muscat
PA	+0858-07932	America/Panama
PE	-1203-07703	America/Lima
PF	-1732-14934	Pacific/Tahiti	Society Islands
PF	-0900-13930	Pacific/Marquesas	Marquesas Islands
PF	-2308-13457	Pacific/Gambier	Gambier Islands
PG	-0930+14710	Pacific/Port_Moresby	Papua New Guinea (most areas)
PG	-0613+15534	Pacific/Bougainville	Bougainville
PH	+1435+12100	Asia/Manila
PK	+2452+06703	Asia/Karachi
PL	+5215+02100	Europe/Warsaw
PM	+4703-05620	America/Miquelon
PN	-2504-13005	Pacific/Pitcairn
PR	+182806-0660622	America/Puerto_Rico
PS	+3130+03428	Asia/Gaza	Gaza Strip
PS	+313200+0350542	Asia/Hebron	West Bank
PT	+3843-00908	Europe/Lisbon	Portugal (mainland)
PT	+3238-01654	Atlantic/Madeira	Madeira Islands
PT	+3744-02540	Atlantic/Azores	Azores
PW	+0720+13429	Pacific/Palau
PY	-2516-05740	America/Asuncion
QA	+2517+05132	Asia/Qatar
RE	-2052+05528	Indian/Reunion
RO	+4426+02606	Europe/Bucharest
RS	+4450+02030	Europe/Belgrade
RU	+5443+02030	Europe/Kaliningrad	MSK-01 - Kaliningrad
RU	+554521+0373704	Europe/Moscow	MSK+00 - Moscow area
# The obsolescent zone.tab format cannot represent Europe/Simferopol well.
# Put it in RU section and list as UA.  See "territorial claims" above.
# Programs should use zone1970.tab instead; see above.
UA	+4457+03406	Europe/Simferopol	Crimea
RU	+5836+04939	Europe/Kirov	MSK+00 - Kirov
RU	+4844+04425	Europe/Volgograd	MSK+00 - Volgograd
RU	+4621+04803	Europe/Astrakhan	MSK+01 - Astrakhan
RU	+5134+04602	Europe/Saratov	MSK+01 - Saratov
RU	+5420+04824	Europe/Ulyanovsk	MSK+01 - Ulyanovsk
RU	+5312+05009	Europe/Samara	MSK+01 - Samara, Udmurtia
RU	+5651+06036	Asia/Yekaterinburg	MSK+02 - Urals
RU	+5500+07324	Asia/Omsk	MSK+03 - Omsk
RU	+5502+08255	Asia/Novosibirsk	MSK+04 - Novosibirsk
RU	+5322+08345	Asia/Barnaul	MSK+04 - Altai
RU	+5630+08458	Asia/Tomsk	MSK+04 - Tomsk
RU	+5345+08707	Asia/Novokuznetsk	MSK+04 - Kemerovo
RU	+5601+09250	Asia/Krasnoyarsk	MSK+04 - Krasnoyarsk area
RU	+5216+10420	Asia/Irkutsk	MSK+05 - Irkutsk, Buryatia
RU	+5203+11328	Asia/Chita	MSK+06 - Zabaykalsky
RU	+6200+12940	Asia/Yakutsk	MSK+06 - Lena River
RU	+623923+1353314	Asia/Khandyga	MSK+06 - Tomponsky, Ust-Maysky
RU	+4310+13156	Asia/Vladivostok	MSK+07 - Amur River
RU	+643337+1431336	Asia/Ust-Nera	MSK+07 - Oymyakonsky
RU	+5934+15048	Asia/Magadan	MSK+08 - Magadan
RU	+4658+14242	Asia/Sakhalin	MSK+08 - Sakhalin Island
RU	+6728+15343	Asia/Srednekolymsk	MSK+08 - Sakha (E); North Kuril Is
RU	+5301+15839	Asia/Kamchatka	MSK+09 - Kamchatka
RU	+6445+17729	Asia/Anadyr	MSK+09 - Bering Sea
RW	-0157+03004	Africa/Kigali
SA	+2438+04643	Asia/Riyadh
SB	-0932+16012	Pacific/Guadalcanal
SC	-0440+05528	Indian/Mahe
SD	+1536+03232	Africa/Khartoum
SE	+5920+01803	Europe/Stockholm
SG	+0117+10351	Asia/Singapore
SH	-1555-00542	Atlantic/St_Helena
SI	+4603+01431	Europe/Ljubljana
SJ	+7800+01600	Arctic/Longyearbyen
SK	+4809+01707	Europe/Bratislava
SL	+0830-01315	Africa/Freetown
SM	+4355+01228	Europe/San_Marino
SN	+1440-01726	Africa/Dakar
SO	+0204+04522	Africa/Mogadishu
SR	+0550-05510	America/Paramaribo
SS	+0451+03137	Africa/Juba
ST	+0020+00644	Africa/Sao_Tome
SV	+1342-08912	America/El_Salvador
SX	+180305-0630250	America/Lower_Princes
SY	+3330+03618	Asia/Damascus
SZ	-2618+03106	Africa/Mbabane
TC	+2128-07108	America/Grand_Turk
TD	+1207+01503	Africa/Ndjamena
TF	-492110+0701303	Indian/Kerguelen
TG	+0608+00113	Africa/Lome
TH	+1345+10031	Asia/Bangkok
TJ	+3835+06848	Asia/Dushanbe
TK	-0922-17114	Pacific/Fakaofo
TL	-0833+12535	Asia/Dili
TM	+3757+05823	Asia/Ashgabat
TN	+3648+01011	Africa/Tunis
TO	-210800-1751200	Pacific/Tongatapu
TR	+4101+02858	Europe/Istanbul
TT	+1039-06131	America/Port_of_Spain
TV	-0831+17913	Pacific/Funafuti
TW	+2503+12130	Asia/Taipei
TZ	-0648+03917	Africa/Dar_es_Salaam
UA	+5026+03031	Europe/Kyiv	Ukraine (most areas)
UA	+4837+02218	Europe/Uzhgorod	Transcarpathia
UA	+4750+03510	Europe/Zaporozhye	Zaporozhye and east Lugansk
UG	+0019+03225	Africa/Kampala
UM	+2813-17722	Pacific/Midway	Midway Islands
UM	+1917+16637	Pacific/Wake	Wake Island
US	+404251-0740023	America/New_York	Eastern (most areas)
US	+421953-0830245	America/Detroit	Eastern - MI (most areas)
US	+381515-0854534	America/Kentucky/Louisville	Eastern - KY (Louisville area)
US	+364947-0845057	America/Kentucky/Monticello	Eastern - KY (Wayne)
US	+394606-0860929	America/Indiana/Indianapolis	Eastern - IN (most areas)
US	+384038-0873143	America/Indiana/Vincennes	Eastern - IN (Da, Du, K, Mn)
US	+410305-0863611	America/Indiana/Winamac	Eastern - IN (Pulaski)
US	+382232-0862041	America/Indiana/Marengo	Eastern - IN (Crawford)
US	+382931-0871643	America/Indiana/Petersburg	Eastern - IN (Pike)
US	+384452-0850402	America/Indiana/Vevay	Eastern - IN (Switzerland)
US	+415100-0873900	America/Chicago	Central (most areas)
US	+375711-0864541	America/Indiana/Tell_City	Central - IN (Perry)
US	+411745-0863730	America/Indiana/Knox	Central - IN (Starke)
US	+450628-0873651	America/Menominee	Central - MI (Wisconsin border)
US	+470659-1011757	America/North_Dakota/Center	Central - ND (Oliver)
US	+465042-1012439	America/North_Dakota/New_Salem	Central - ND (Morton rural)
US	+471551-1014640	America/North_Dakota/Beulah	Central - ND (Mercer)
US	+394421-1045903	America/Denver	Mountain (most areas)
US	+433649-1161209	America/Boise	Mountain - ID (south); OR (east)
US	+332654-1120424	America/Phoenix	MST - Arizona (except Navajo)
US	+340308-1181434	America/Los_Angeles	Pacific
US	+611305-1495401	America/Anchorage	Alaska (most areas)
US	+581807-1342511	America/Juneau	Alaska - Juneau area
US	+571035-1351807	America/Sitka	Alaska - Sitka area
US	+550737-1313435	America/Metlakatla	Alaska - Annette Island
US	+593249-1394338	America/Yakutat	Alaska - Yakutat
US	+643004-1652423	America/Nome	Alaska (west)
US	+515248-1763929	America/Adak	Aleutian Islands
US	+211825-1575130	Pacific/Honolulu	Hawaii
UY	-345433-0561245	America/Montevideo
UZ	+3940+06648	Asia/Samarkand	Uzbekistan (west)
UZ	+4120+06918	Asia/Tashkent	Uzbekistan (east)
VA	+415408+0122711	Europe/Vatican
VC	+1309-06114	America/St_Vincent
VE	+1030-06656	America/Caracas
VG	+1827-06437	America/Tortola
VI	+1821-06456	America/St_Thomas
VN	+1045+10640	Asia/Ho_Chi_Minh
VU	-1740+16825	Pacific/Efate
WF	-1318-17610	Pacific/Wallis
WS	-1350-17144	Pacific/Apia
YE	+1245+04512	Asia/Aden
YT	-1247+04514	Indian/Mayotte
ZA	-2615+02800	Africa/Johannesburg
ZM	-1525+02817	Africa/Lusaka
ZW	-1750+03103	Africa/Harare
./tzdatabase/date.1.txt0000644000175000017500000001321513323151404015072 0ustar  anthonyanthonyDATE(1)                     General Commands Manual                    DATE(1)

NAME
       date - show and set date and time

SYNOPSIS
       date [ -u ] [ -c ] [ -r seconds ] [ +format ] [ [yyyy]mmddhhmm[yy][.ss]
       ]

DESCRIPTION
       Date without arguments writes the date and time to the standard output
       in the form
                            Wed Mar  8 14:54:40 EST 1989
       with EST replaced by the local time zone's abbreviation (or by the
       abbreviation for the time zone specified in the TZ environment variable
       if set).  The exact output format depends on the locale.

       If a command-line argument starts with a plus sign ("+"), the rest of
       the argument is used as a format that controls what appears in the
       output.  In the format, when a percent sign ("%" appears, it and the
       character after it are not output, but rather identify part of the date
       or time to be output in a particular way (or identify a special
       character to output):

             Sample output                 Explanation
         %a  Wed                           Abbreviated weekday name*
         %A  Wednesday                     Full weekday name*
         %b  Mar                           Abbreviated month name*
         %B  March                         Full month name*
         %c  Wed Mar 08 14:54:40 1989      Date and time*
         %C  19                            Century
         %d  08                            Day of month (always two digits)
         %D  03/08/89                      Month/day/year (eight characters)
         %e   8                            Day of month (leading zero blanked)
         %h  Mar                           Abbreviated month name*
         %H  14                            24-hour-clock hour (two digits)
         %I  02                            12-hour-clock hour (two digits)
         %j  067                           Julian day number (three digits)
         %k   2                            12-hour-clock hour (leading zero blanked)
         %l  14                            24-hour-clock hour (leading zero blanked)
         %m  03                            Month number (two digits)
         %M  54                            Minute (two digits)
         %n  \n                            newline character
         %p  PM                            AM/PM designation
         %r  02:54:40 PM                   Hour:minute:second AM/PM designation
         %R  14:54                         Hour:minute
         %S  40                            Second (two digits)
         %t  \t                            tab character
         %T  14:54:40                      Hour:minute:second
         %U  10                            Sunday-based week number (two digits)
         %w  3                             Day number (one digit, Sunday is 0)
         %W  10                            Monday-based week number (two digits)
         %x  03/08/89                      Date*
         %X  14:54:40                      Time*
         %y  89                            Last two digits of year
         %Y  1989                          Year in full
         %z  -0500                         Numeric time zone
         %Z  EST                           Time zone abbreviation
         %+  Wed Mar  8 14:54:40 EST 1989  Default output format*
       * The exact output depends on the locale.

       If a character other than one of those shown above appears after a
       percent sign in the format, that following character is output.  All
       other characters in the format are copied unchanged to the output; a
       newline character is always added at the end of the output.

       In Sunday-based week numbering, the first Sunday of the year begins
       week 1; days preceding it are part of "week 0".  In Monday-based week
       numbering, the first Monday of the year begins week 1.

       To set the date, use a command line argument with one of the following
       forms:
         1454         24-hour-clock hours (first two digits) and minutes
         081454       Month day (first two digits), hours, and minutes
         03081454     Month (two digits, January is 01), month day, hours, minutes
         8903081454   Year, month, month day, hours, minutes
         0308145489   Month, month day, hours, minutes, year
                      (on System V-compatible systems)
         030814541989 Month, month day, hours, minutes, four-digit year
         198903081454 Four-digit year, month, month day, hours, minutes
       If the century, year, month, or month day is not given, the current
       value is used.  Any of the above forms may be followed by a period and
       two digits that give the seconds part of the new time; if no seconds
       are given, zero is assumed.

       These options are available:

       -u or -c
              Use Universal Time when setting and showing the date and time.

       -r seconds
              Output the date that corresponds to seconds past the epoch of
              1970-01-01 00:00:00 UTC, where seconds should be an integer,
              either decimal, octal (leading 0), or hexadecimal (leading 0x),
              preceded by an optional sign.

FILES
       /etc/localtime                  local timezone file
       /usr/lib/locale/L/LC_TIME       description of time locale L
       /usr/share/zoneinfo             timezone information directory
       /usr/share/zoneinfo/posixrules  used with POSIX-style TZ's
       /usr/share/zoneinfo/GMT         for UTC leap seconds

       If /usr/share/zoneinfo/GMT is absent, UTC leap seconds are loaded from
       /usr/share/zoneinfo/posixrules.

                                                                       DATE(1)
./tzdatabase/australasia0000644000175000017500000027764214272547645015555 0ustar  anthonyanthony# tzdb data for Australasia and environs, and for much of the Pacific

# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.

# This file also includes Pacific islands.

# Notes are at the end of this file

###############################################################################

# Australia

# Please see the notes below for the controversy about "EST" versus "AEST" etc.

# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	Aus	1917	only	-	Jan	 1	2:00s	1:00	D
Rule	Aus	1917	only	-	Mar	lastSun	2:00s	0	S
Rule	Aus	1942	only	-	Jan	 1	2:00s	1:00	D
Rule	Aus	1942	only	-	Mar	lastSun	2:00s	0	S
Rule	Aus	1942	only	-	Sep	27	2:00s	1:00	D
Rule	Aus	1943	1944	-	Mar	lastSun	2:00s	0	S
Rule	Aus	1943	only	-	Oct	 3	2:00s	1:00	D

# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
# Northern Territory
Zone Australia/Darwin	 8:43:20 -	LMT	1895 Feb
			 9:00	-	ACST	1899 May
			 9:30	Aus	AC%sT
# Western Australia
#
# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	AW	1974	only	-	Oct	lastSun	2:00s	1:00	D
Rule	AW	1975	only	-	Mar	Sun>=1	2:00s	0	S
Rule	AW	1983	only	-	Oct	lastSun	2:00s	1:00	D
Rule	AW	1984	only	-	Mar	Sun>=1	2:00s	0	S
Rule	AW	1991	only	-	Nov	17	2:00s	1:00	D
Rule	AW	1992	only	-	Mar	Sun>=1	2:00s	0	S
Rule	AW	2006	only	-	Dec	 3	2:00s	1:00	D
Rule	AW	2007	2009	-	Mar	lastSun	2:00s	0	S
Rule	AW	2007	2008	-	Oct	lastSun	2:00s	1:00	D
Zone Australia/Perth	 7:43:24 -	LMT	1895 Dec
			 8:00	Aus	AW%sT	1943 Jul
			 8:00	AW	AW%sT
Zone Australia/Eucla	 8:35:28 -	LMT	1895 Dec
			 8:45	Aus +0845/+0945	1943 Jul
			 8:45	AW  +0845/+0945

# Queensland
#
# From Alex Livingston (1996-11-01):
# I have heard or read more than once that some resort islands off the coast
# of Queensland chose to keep observing daylight-saving time even after
# Queensland ceased to.
#
# From Paul Eggert (1996-11-22):
# IATA SSIM (1993-02/1994-09) say that the Holiday Islands (Hayman, Lindeman,
# Hamilton) observed DST for two years after the rest of Queensland stopped.
# Hamilton is the largest, but there is also a Hamilton in Victoria,
# so use Lindeman.
#
# From J William Piggott (2016-02-20):
# There is no location named Holiday Islands in Queensland Australia; holiday
# islands is a colloquial term used globally.  Hayman and Lindeman are at the
# north and south extremes of the Whitsunday Islands archipelago, and
# Hamilton is in between; it is reasonable to believe that this time zone
# applies to all of the Whitsundays.
# http://www.australia.gov.au/about-australia/australian-story/austn-islands
#
# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	AQ	1971	only	-	Oct	lastSun	2:00s	1:00	D
Rule	AQ	1972	only	-	Feb	lastSun	2:00s	0	S
Rule	AQ	1989	1991	-	Oct	lastSun	2:00s	1:00	D
Rule	AQ	1990	1992	-	Mar	Sun>=1	2:00s	0	S
Rule	Holiday	1992	1993	-	Oct	lastSun	2:00s	1:00	D
Rule	Holiday	1993	1994	-	Mar	Sun>=1	2:00s	0	S
Zone Australia/Brisbane	10:12:08 -	LMT	1895
			10:00	Aus	AE%sT	1971
			10:00	AQ	AE%sT
Zone Australia/Lindeman  9:55:56 -	LMT	1895
			10:00	Aus	AE%sT	1971
			10:00	AQ	AE%sT	1992 Jul
			10:00	Holiday	AE%sT

# South Australia
# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	AS	1971	1985	-	Oct	lastSun	2:00s	1:00	D
Rule	AS	1986	only	-	Oct	19	2:00s	1:00	D
Rule	AS	1987	2007	-	Oct	lastSun	2:00s	1:00	D
Rule	AS	1972	only	-	Feb	27	2:00s	0	S
Rule	AS	1973	1985	-	Mar	Sun>=1	2:00s	0	S
Rule	AS	1986	1990	-	Mar	Sun>=15	2:00s	0	S
Rule	AS	1991	only	-	Mar	3	2:00s	0	S
Rule	AS	1992	only	-	Mar	22	2:00s	0	S
Rule	AS	1993	only	-	Mar	7	2:00s	0	S
Rule	AS	1994	only	-	Mar	20	2:00s	0	S
Rule	AS	1995	2005	-	Mar	lastSun	2:00s	0	S
Rule	AS	2006	only	-	Apr	2	2:00s	0	S
Rule	AS	2007	only	-	Mar	lastSun	2:00s	0	S
Rule	AS	2008	max	-	Apr	Sun>=1	2:00s	0	S
Rule	AS	2008	max	-	Oct	Sun>=1	2:00s	1:00	D
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone Australia/Adelaide	9:14:20 -	LMT	1895 Feb
			9:00	-	ACST	1899 May
			9:30	Aus	AC%sT	1971
			9:30	AS	AC%sT

# Tasmania
#
# From Paul Eggert (2005-08-16):
# http://www.bom.gov.au/climate/averages/tables/dst_times.shtml
# says King Island didn't observe DST from WWII until late 1971.
#
# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	AT	1916	only	-	Oct	Sun>=1	2:00s	1:00	D
Rule	AT	1917	only	-	Mar	lastSun	2:00s	0	S
Rule	AT	1917	1918	-	Oct	Sun>=22	2:00s	1:00	D
Rule	AT	1918	1919	-	Mar	Sun>=1	2:00s	0	S
Rule	AT	1967	only	-	Oct	Sun>=1	2:00s	1:00	D
Rule	AT	1968	only	-	Mar	Sun>=29	2:00s	0	S
Rule	AT	1968	1985	-	Oct	lastSun	2:00s	1:00	D
Rule	AT	1969	1971	-	Mar	Sun>=8	2:00s	0	S
Rule	AT	1972	only	-	Feb	lastSun	2:00s	0	S
Rule	AT	1973	1981	-	Mar	Sun>=1	2:00s	0	S
Rule	AT	1982	1983	-	Mar	lastSun	2:00s	0	S
Rule	AT	1984	1986	-	Mar	Sun>=1	2:00s	0	S
Rule	AT	1986	only	-	Oct	Sun>=15	2:00s	1:00	D
Rule	AT	1987	1990	-	Mar	Sun>=15	2:00s	0	S
Rule	AT	1987	only	-	Oct	Sun>=22	2:00s	1:00	D
Rule	AT	1988	1990	-	Oct	lastSun	2:00s	1:00	D
Rule	AT	1991	1999	-	Oct	Sun>=1	2:00s	1:00	D
Rule	AT	1991	2005	-	Mar	lastSun	2:00s	0	S
Rule	AT	2000	only	-	Aug	lastSun	2:00s	1:00	D
Rule	AT	2001	max	-	Oct	Sun>=1	2:00s	1:00	D
Rule	AT	2006	only	-	Apr	Sun>=1	2:00s	0	S
Rule	AT	2007	only	-	Mar	lastSun	2:00s	0	S
Rule	AT	2008	max	-	Apr	Sun>=1	2:00s	0	S
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone Australia/Hobart	9:49:16	-	LMT	1895 Sep
			10:00	AT	AE%sT	1919 Oct 24
			10:00	Aus	AE%sT	1967
			10:00	AT	AE%sT

# Victoria
# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	AV	1971	1985	-	Oct	lastSun	2:00s	1:00	D
Rule	AV	1972	only	-	Feb	lastSun	2:00s	0	S
Rule	AV	1973	1985	-	Mar	Sun>=1	2:00s	0	S
Rule	AV	1986	1990	-	Mar	Sun>=15	2:00s	0	S
Rule	AV	1986	1987	-	Oct	Sun>=15	2:00s	1:00	D
Rule	AV	1988	1999	-	Oct	lastSun	2:00s	1:00	D
Rule	AV	1991	1994	-	Mar	Sun>=1	2:00s	0	S
Rule	AV	1995	2005	-	Mar	lastSun	2:00s	0	S
Rule	AV	2000	only	-	Aug	lastSun	2:00s	1:00	D
Rule	AV	2001	2007	-	Oct	lastSun	2:00s	1:00	D
Rule	AV	2006	only	-	Apr	Sun>=1	2:00s	0	S
Rule	AV	2007	only	-	Mar	lastSun	2:00s	0	S
Rule	AV	2008	max	-	Apr	Sun>=1	2:00s	0	S
Rule	AV	2008	max	-	Oct	Sun>=1	2:00s	1:00	D
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone Australia/Melbourne 9:39:52 -	LMT	1895 Feb
			10:00	Aus	AE%sT	1971
			10:00	AV	AE%sT

# New South Wales
# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	AN	1971	1985	-	Oct	lastSun	2:00s	1:00	D
Rule	AN	1972	only	-	Feb	27	2:00s	0	S
Rule	AN	1973	1981	-	Mar	Sun>=1	2:00s	0	S
Rule	AN	1982	only	-	Apr	Sun>=1	2:00s	0	S
Rule	AN	1983	1985	-	Mar	Sun>=1	2:00s	0	S
Rule	AN	1986	1989	-	Mar	Sun>=15	2:00s	0	S
Rule	AN	1986	only	-	Oct	19	2:00s	1:00	D
Rule	AN	1987	1999	-	Oct	lastSun	2:00s	1:00	D
Rule	AN	1990	1995	-	Mar	Sun>=1	2:00s	0	S
Rule	AN	1996	2005	-	Mar	lastSun	2:00s	0	S
Rule	AN	2000	only	-	Aug	lastSun	2:00s	1:00	D
Rule	AN	2001	2007	-	Oct	lastSun	2:00s	1:00	D
Rule	AN	2006	only	-	Apr	Sun>=1	2:00s	0	S
Rule	AN	2007	only	-	Mar	lastSun	2:00s	0	S
Rule	AN	2008	max	-	Apr	Sun>=1	2:00s	0	S
Rule	AN	2008	max	-	Oct	Sun>=1	2:00s	1:00	D
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone Australia/Sydney	10:04:52 -	LMT	1895 Feb
			10:00	Aus	AE%sT	1971
			10:00	AN	AE%sT
Zone Australia/Broken_Hill 9:25:48 -	LMT	1895 Feb
			10:00	-	AEST	1896 Aug 23
			9:00	-	ACST	1899 May
			9:30	Aus	AC%sT	1971
			9:30	AN	AC%sT	2000
			9:30	AS	AC%sT

# Lord Howe Island
# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	LH	1981	1984	-	Oct	lastSun	2:00	1:00	-
Rule	LH	1982	1985	-	Mar	Sun>=1	2:00	0	-
Rule	LH	1985	only	-	Oct	lastSun	2:00	0:30	-
Rule	LH	1986	1989	-	Mar	Sun>=15	2:00	0	-
Rule	LH	1986	only	-	Oct	19	2:00	0:30	-
Rule	LH	1987	1999	-	Oct	lastSun	2:00	0:30	-
Rule	LH	1990	1995	-	Mar	Sun>=1	2:00	0	-
Rule	LH	1996	2005	-	Mar	lastSun	2:00	0	-
Rule	LH	2000	only	-	Aug	lastSun	2:00	0:30	-
Rule	LH	2001	2007	-	Oct	lastSun	2:00	0:30	-
Rule	LH	2006	only	-	Apr	Sun>=1	2:00	0	-
Rule	LH	2007	only	-	Mar	lastSun	2:00	0	-
Rule	LH	2008	max	-	Apr	Sun>=1	2:00	0	-
Rule	LH	2008	max	-	Oct	Sun>=1	2:00	0:30	-
Zone Australia/Lord_Howe 10:36:20 -	LMT	1895 Feb
			10:00	-	AEST	1981 Mar
			10:30	LH	+1030/+1130 1985 Jul
			10:30	LH	+1030/+11

# Australian miscellany
#
# Ashmore Is, Cartier
# no indigenous inhabitants; only seasonal caretakers
# no times are set
#
# Coral Sea Is
# no indigenous inhabitants; only meteorologists
# no times are set
#
# Macquarie
# Permanent occupation (scientific station) 1911-1915 and since 25 March 1948;
# sealing and penguin oil station operated Nov 1899 to Apr 1919.  See the
# Tasmania Parks & Wildlife Service history of sealing at Macquarie Island
# http://www.parks.tas.gov.au/index.aspx?base=1828
# http://www.parks.tas.gov.au/index.aspx?base=1831
# Guess that it was like Australia/Hobart while inhabited before 2010.
#
# From Steffen Thorsen (2010-03-10):
# We got these changes from the Australian Antarctic Division:
# - Macquarie Island will stay on UTC+11 for winter and therefore not
# switch back from daylight savings time when other parts of Australia do
# on 4 April.
#
# From Arthur David Olson (2013-05-23):
# The 1919 transition is overspecified below so pre-2013 zics
# will produce a binary file with an [A]EST-type as the first 32-bit type;
# this is required for correct handling of times before 1916 by
# pre-2013 versions of localtime.
Zone Antarctica/Macquarie 0	-	-00	1899 Nov
			10:00	-	AEST	1916 Oct  1  2:00
			10:00	1:00	AEDT	1917 Feb
			10:00	Aus	AE%sT	1919 Apr  1  0:00s
			0	-	-00	1948 Mar 25
			10:00	Aus	AE%sT	1967
			10:00	AT	AE%sT	2010
			10:00	1:00	AEDT	2011
			10:00	AT	AE%sT

# Christmas
# See Asia/Bangkok.

# Cocos (Keeling) Is
# See Asia/Yangon.


# Fiji

# Milne gives 11:55:44 for Suva.

# From Alexander Krivenyshev (2009-11-10):
# According to Fiji Broadcasting Corporation,  Fiji plans to re-introduce DST
# from November 29th 2009  to April 25th 2010.
#
# "Daylight savings to commence this month"
# http://www.radiofiji.com.fj/fullstory.php?id=23719
# http://www.worldtimezone.com/dst_news/dst_news_fiji01.html

# From Steffen Thorsen (2009-11-10):
# The Fiji Government has posted some more details about the approved
# amendments:
# http://www.fiji.gov.fj/publish/page_16198.shtml

# From Steffen Thorsen (2010-03-03):
# The Cabinet in Fiji has decided to end DST about a month early, on
# 2010-03-28 at 03:00.
# The plan is to observe DST again, from 2010-10-24 to sometime in March
# 2011 (last Sunday a good guess?).
#
# Official source:
# http://www.fiji.gov.fj/index.php?option=com_content&view=article&id=1096:3310-cabinet-approves-change-in-daylight-savings-dates&catid=49:cabinet-releases&Itemid=166
#
# A bit more background info here:
# https://www.timeanddate.com/news/time/fiji-dst-ends-march-2010.html

# From Alexander Krivenyshev (2010-10-24):
# According to Radio Fiji and Fiji Times online, Fiji will end DST 3
# weeks earlier than expected - on March 6, 2011, not March 27, 2011...
# Here is confirmation from Government of the Republic of the Fiji Islands,
# Ministry of Information (fiji.gov.fj) web site:
# http://www.fiji.gov.fj/index.php?option=com_content&view=article&id=2608:daylight-savings&catid=71:press-releases&Itemid=155
# http://www.worldtimezone.com/dst_news/dst_news_fiji04.html

# From Steffen Thorsen (2011-10-03):
# Now the dates have been confirmed, and at least our start date
# assumption was correct (end date was one week wrong).
#
# http://www.fiji.gov.fj/index.php?option=com_content&view=article&id=4966:daylight-saving-starts-in-fiji&catid=71:press-releases&Itemid=155
# which says
# Members of the public are reminded to change their time to one hour in
# advance at 2am to 3am on October 23, 2011 and one hour back at 3am to
# 2am on February 26 next year.

# From Ken Rylander (2011-10-24)
# Another change to the Fiji DST end date. In the TZ database the end date for
# Fiji DST 2012, is currently Feb 26. This has been changed to Jan 22.
#
# http://www.fiji.gov.fj/index.php?option=com_content&view=article&id=5017:amendments-to-daylight-savings&catid=71:press-releases&Itemid=155
# states:
#
# The end of daylight saving scheduled initially for the 26th of February 2012
# has been brought forward to the 22nd of January 2012.
# The commencement of daylight saving will remain unchanged and start
# on the  23rd of October, 2011.

# From the Fiji Government Online Portal (2012-08-21) via Steffen Thorsen:
# The Minister for Labour, Industrial Relations and Employment Mr Jone Usamate
# today confirmed that Fiji will start daylight savings at 2 am on Sunday 21st
# October 2012 and end at 3 am on Sunday 20th January 2013.
# http://www.fiji.gov.fj/index.php?option=com_content&view=article&id=6702&catid=71&Itemid=155

# From the Fijian Government Media Center (2013-08-30) via David Wheeler:
# Fiji will start daylight savings on Sunday 27th October, 2013 ...
# move clocks forward by one hour from 2am
# http://www.fiji.gov.fj/Media-Center/Press-Releases/DAYLIGHT-SAVING-STARTS-ON-SUNDAY,-27th-OCTOBER-201.aspx

# From Steffen Thorsen (2013-01-10):
# Fiji will end DST on 2014-01-19 02:00:
# http://www.fiji.gov.fj/Media-Center/Press-Releases/DAYLIGHT-SAVINGS-TO-END-THIS-MONTH-%281%29.aspx

# From Ken Rylander (2014-10-20):
# DST will start Nov. 2 this year.
# http://www.fiji.gov.fj/Media-Center/Press-Releases/DAYLIGHT-SAVING-STARTS-ON-SUNDAY,-NOVEMBER-2ND.aspx

# From a government order dated 2015-08-26 and published as Legal Notice No. 77
# in the Government of Fiji Gazette Supplement No. 24 (2015-08-28),
# via Ken Rylander (2015-09-02):
# the daylight saving period is 1 hour in advance of the standard time
# commencing at 2.00 am on Sunday 1st November, 2015 and ending at
# 3.00 am on Sunday 17th January, 2016.

# From Raymond Kumar (2016-10-04):
# http://www.fiji.gov.fj/Media-Center/Press-Releases/DAYLIGHT-SAVING-STARTS-ON-6th-NOVEMBER,-2016.aspx
# "Fiji's daylight savings will begin on Sunday, 6 November 2016, when
# clocks go forward an hour at 2am to 3am....  Daylight Saving will
# end at 3.00am on Sunday 15th January 2017."

# From Paul Eggert (2017-08-21):
# Dominic Fok writes (2017-08-20) that DST ends 2018-01-14, citing
# Extraordinary Government of Fiji Gazette Supplement No. 21 (2017-08-27),
# [Legal Notice No. 41] of an order of the previous day by J Usamate.

# From Raymond Kumar (2018-07-13):
# http://www.fijitimes.com/government-approves-2018-daylight-saving/
# ... The daylight saving period will end at 3am on Sunday January 13, 2019.

# From Paul Eggert (2019-08-06):
# Today Raymond Kumar reported the Government of Fiji Gazette Supplement No. 27
# (2019-08-02) said that Fiji observes DST "commencing at 2.00 am on
# Sunday, 10 November 2019 and ending at 3.00 am on Sunday, 12 January 2020."
# For now, guess DST from 02:00 the second Sunday in November to 03:00
# the first Sunday on or after January 12.  January transitions reportedly
# depend on when school terms start.  Although the guess is ad hoc, it matches
# transitions planned this year and seems more likely to match future practice
# than guessing no DST.
# From Michael Deckers (2019-08-06):
# https://www.laws.gov.fj/LawsAsMade/downloadfile/848

# From Raymond Kumar (2020-10-08):
# [DST in Fiji] is from December 20th 2020, till 17th January 2021.
# From Alan Mintz (2020-10-08):
# https://www.laws.gov.fj/LawsAsMade/GetFile/1071
# From Tim Parenti (2020-10-08):
# https://www.fijivillage.com/news/Daylight-saving-from-Dec-20th-this-year-to-Jan-17th-2021-8rf4x5/
# "Minister for Employment, Parveen Bala says they had never thought of
# stopping daylight saving. He says it was just to decide on when it should
# start and end.  Bala says it is a short period..."
#
# From Tim Parenti (2021-10-11), per Jashneel Kumar (2021-10-11) and P Chan
# (2021-10-12):
# https://www.fiji.gov.fj/Media-Centre/Speeches/English/PM-BAINIMARAMA-S-COVID-19-ANNOUNCEMENT-10-10-21
# https://www.fbcnews.com.fj/news/covid-19/curfew-moved-back-to-11pm/
# In a 2021-10-10 speech concerning updated Covid-19 mitigation measures in
# Fiji, prime minister Josaia Voreqe "Frank" Bainimarama announced the
# suspension of DST for the 2021/2022 season: "Given that we are in the process
# of readjusting in the midst of so many changes, we will also put Daylight
# Savings Time on hold for this year. It will also make the reopening of
# scheduled commercial air service much smoother if we don't have to be
# concerned shifting arrival and departure times, which may look like a simple
# thing but requires some significant logistical adjustments domestically and
# internationally."
# Assume for now that DST will resume with the recent pre-2020 rules for the
# 2022/2023 season.

# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	Fiji	1998	1999	-	Nov	Sun>=1	2:00	1:00	-
Rule	Fiji	1999	2000	-	Feb	lastSun	3:00	0	-
Rule	Fiji	2009	only	-	Nov	29	2:00	1:00	-
Rule	Fiji	2010	only	-	Mar	lastSun	3:00	0	-
Rule	Fiji	2010	2013	-	Oct	Sun>=21	2:00	1:00	-
Rule	Fiji	2011	only	-	Mar	Sun>=1	3:00	0	-
Rule	Fiji	2012	2013	-	Jan	Sun>=18	3:00	0	-
Rule	Fiji	2014	only	-	Jan	Sun>=18	2:00	0	-
Rule	Fiji	2014	2018	-	Nov	Sun>=1	2:00	1:00	-
Rule	Fiji	2015	2021	-	Jan	Sun>=12	3:00	0	-
Rule	Fiji	2019	only	-	Nov	Sun>=8	2:00	1:00	-
Rule	Fiji	2020	only	-	Dec	20	2:00	1:00	-
Rule	Fiji	2022	max	-	Nov	Sun>=8	2:00	1:00	-
Rule	Fiji	2023	max	-	Jan	Sun>=12	3:00	0	-
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Pacific/Fiji	11:55:44 -	LMT	1915 Oct 26 # Suva
			12:00	Fiji	+12/+13

# French Polynesia
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Pacific/Gambier	 -8:59:48 -	LMT	1912 Oct # Rikitea
			 -9:00	-	-09
Zone	Pacific/Marquesas -9:18:00 -	LMT	1912 Oct
			 -9:30	-	-0930
Zone	Pacific/Tahiti	 -9:58:16 -	LMT	1912 Oct # Papeete
			-10:00	-	-10
# Clipperton (near North America) is administered from French Polynesia;
# it is uninhabited.

# Guam

# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
# http://guamlegislature.com/Public_Laws_5th/PL05-025.pdf
# http://documents.guam.gov/wp-content/uploads/E.O.-59-7-Guam-Daylight-Savings-Time-May-6-1959.pdf
Rule	Guam	1959	only	-	Jun	27	2:00	1:00	D
# http://documents.guam.gov/wp-content/uploads/E.O.-61-5-Revocation-of-Daylight-Saving-Time-and-Restoratio.pdf
Rule	Guam	1961	only	-	Jan	29	2:00	0	S
# http://documents.guam.gov/wp-content/uploads/E.O.-67-13-Guam-Daylight-Savings-Time.pdf
Rule	Guam	1967	only	-	Sep	 1	2:00	1:00	D
# http://documents.guam.gov/wp-content/uploads/E.O.-69-2-Repeal-of-Guam-Daylight-Saving-Time.pdf
Rule	Guam	1969	only	-	Jan	26	0:01	0	S
# http://documents.guam.gov/wp-content/uploads/E.O.-69-10-Guam-Daylight-Saving-Time.pdf
Rule	Guam	1969	only	-	Jun	22	2:00	1:00	D
Rule	Guam	1969	only	-	Aug	31	2:00	0	S
# http://documents.guam.gov/wp-content/uploads/E.O.-70-10-Guam-Daylight-Saving-Time.pdf
# http://documents.guam.gov/wp-content/uploads/E.O.-70-30-End-of-Guam-Daylight-Saving-Time.pdf
# http://documents.guam.gov/wp-content/uploads/E.O.-71-5-Guam-Daylight-Savings-Time.pdf
Rule	Guam	1970	1971	-	Apr	lastSun	2:00	1:00	D
Rule	Guam	1970	1971	-	Sep	Sun>=1	2:00	0	S
# http://documents.guam.gov/wp-content/uploads/E.O.-73-28.-Guam-Day-light-Saving-Time.pdf
Rule	Guam	1973	only	-	Dec	16	2:00	1:00	D
# http://documents.guam.gov/wp-content/uploads/E.O.-74-7-Guam-Daylight-Savings-Time-Rescinded.pdf
Rule	Guam	1974	only	-	Feb	24	2:00	0	S
# http://documents.guam.gov/wp-content/uploads/E.O.-76-13-Daylight-Savings-Time.pdf
Rule	Guam	1976	only	-	May	26	2:00	1:00	D
# http://documents.guam.gov/wp-content/uploads/E.O.-76-25-Revocation-of-E.O.-76-13.pdf
Rule	Guam	1976	only	-	Aug	22	2:01	0	S
# http://documents.guam.gov/wp-content/uploads/E.O.-77-4-Daylight-Savings-Time.pdf
Rule	Guam	1977	only	-	Apr	24	2:00	1:00	D
# http://documents.guam.gov/wp-content/uploads/E.O.-77-18-Guam-Standard-Time.pdf
Rule	Guam	1977	only	-	Aug	28	2:00	0	S

# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Pacific/Guam	-14:21:00 -	LMT	1844 Dec 31
			 9:39:00 -	LMT	1901        # Agana
			10:00	-	GST	1941 Dec 10 # Guam
			 9:00	-	+09	1944 Jul 31
			10:00	Guam	G%sT	2000 Dec 23
			10:00	-	ChST	# Chamorro Standard Time
Link Pacific/Guam Pacific/Saipan # N Mariana Is

# Kiribati
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone Pacific/Tarawa	 11:32:04 -	LMT	1901 # Bairiki
			 12:00	-	+12
Link Pacific/Tarawa Pacific/Funafuti
Link Pacific/Tarawa Pacific/Majuro
Link Pacific/Tarawa Pacific/Wake
Link Pacific/Tarawa Pacific/Wallis

Zone Pacific/Kanton	  0	-	-00	1937 Aug 31
			-12:00	-	-12	1979 Oct
			-11:00	-	-11	1994 Dec 31
			 13:00	-	+13
Zone Pacific/Kiritimati	-10:29:20 -	LMT	1901
			-10:40	-	-1040	1979 Oct
			-10:00	-	-10	1994 Dec 31
			 14:00	-	+14

# N Mariana Is
# See Pacific/Guam.

# Marshall Is
# See Pacific/Tarawa for most locations.
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone Pacific/Kwajalein	 11:09:20 -	LMT	1901
			 11:00	-	+11	1937
			 10:00	-	+10	1941 Apr  1
			  9:00	-	+09	1944 Feb  6
			 11:00	-	+11	1969 Oct
			-12:00	-	-12	1993 Aug 20 24:00
			 12:00	-	+12

# Micronesia
# For Chuuk and Yap see Pacific/Port_Moresby.
# For Pohnpei see Pacific/Guadalcanal.
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone Pacific/Kosrae	-13:08:04 -	LMT	1844 Dec 31
			 10:51:56 -	LMT	1901
			 11:00	-	+11	1914 Oct
			  9:00	-	+09	1919 Feb  1
			 11:00	-	+11	1937
			 10:00	-	+10	1941 Apr  1
			  9:00	-	+09	1945 Aug
			 11:00	-	+11	1969 Oct
			 12:00	-	+12	1999
			 11:00	-	+11

# Nauru
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Pacific/Nauru	11:07:40 -	LMT	1921 Jan 15 # Uaobe
			11:30	-	+1130	1942 Aug 29
			 9:00	-	+09	1945 Sep  8
			11:30	-	+1130	1979 Feb 10  2:00
			12:00	-	+12

# New Caledonia
# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	NC	1977	1978	-	Dec	Sun>=1	0:00	1:00	-
Rule	NC	1978	1979	-	Feb	27	0:00	0	-
Rule	NC	1996	only	-	Dec	 1	2:00s	1:00	-
# Shanks & Pottenger say the following was at 2:00; go with IATA.
Rule	NC	1997	only	-	Mar	 2	2:00s	0	-
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Pacific/Noumea	11:05:48 -	LMT	1912 Jan 13 # Nouméa
			11:00	NC	+11/+12


###############################################################################

# New Zealand

# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	NZ	1927	only	-	Nov	 6	2:00	1:00	S
Rule	NZ	1928	only	-	Mar	 4	2:00	0	M
Rule	NZ	1928	1933	-	Oct	Sun>=8	2:00	0:30	S
Rule	NZ	1929	1933	-	Mar	Sun>=15	2:00	0	M
Rule	NZ	1934	1940	-	Apr	lastSun	2:00	0	M
Rule	NZ	1934	1940	-	Sep	lastSun	2:00	0:30	S
Rule	NZ	1946	only	-	Jan	 1	0:00	0	S
# Since 1957 Chatham has been 45 minutes ahead of NZ, but until 2018a
# there was no documented single notation for the date and time of this
# transition.  Duplicate the Rule lines for now, to give the 2018a change
# time to percolate out.
Rule	NZ	1974	only	-	Nov	Sun>=1	2:00s	1:00	D
Rule	Chatham	1974	only	-	Nov	Sun>=1	2:45s	1:00	-
Rule	NZ	1975	only	-	Feb	lastSun	2:00s	0	S
Rule	Chatham	1975	only	-	Feb	lastSun	2:45s	0	-
Rule	NZ	1975	1988	-	Oct	lastSun	2:00s	1:00	D
Rule	Chatham	1975	1988	-	Oct	lastSun	2:45s	1:00	-
Rule	NZ	1976	1989	-	Mar	Sun>=1	2:00s	0	S
Rule	Chatham	1976	1989	-	Mar	Sun>=1	2:45s	0	-
Rule	NZ	1989	only	-	Oct	Sun>=8	2:00s	1:00	D
Rule	Chatham	1989	only	-	Oct	Sun>=8	2:45s	1:00	-
Rule	NZ	1990	2006	-	Oct	Sun>=1	2:00s	1:00	D
Rule	Chatham	1990	2006	-	Oct	Sun>=1	2:45s	1:00	-
Rule	NZ	1990	2007	-	Mar	Sun>=15	2:00s	0	S
Rule	Chatham	1990	2007	-	Mar	Sun>=15	2:45s	0	-
Rule	NZ	2007	max	-	Sep	lastSun	2:00s	1:00	D
Rule	Chatham	2007	max	-	Sep	lastSun	2:45s	1:00	-
Rule	NZ	2008	max	-	Apr	Sun>=1	2:00s	0	S
Rule	Chatham	2008	max	-	Apr	Sun>=1	2:45s	0	-
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone Pacific/Auckland	11:39:04 -	LMT	1868 Nov  2
			11:30	NZ	NZ%sT	1946 Jan  1
			12:00	NZ	NZ%sT
Link Pacific/Auckland Antarctica/McMurdo

Zone Pacific/Chatham	12:13:48 -	LMT	1868 Nov  2
			12:15	-	+1215	1946 Jan  1
			12:45	Chatham	+1245/+1345

# Auckland Is
# uninhabited; Māori and Moriori, colonial settlers, pastoralists, sealers,
# and scientific personnel have wintered

# Campbell I
# minor whaling stations operated 1909/1914
# scientific station operated 1941/1995;
# previously whalers, sealers, pastoralists, and scientific personnel wintered
# was probably like Pacific/Auckland

# Cook Is
#
# From Alexander Krivenyshev (2021-03-24):
# In 1899 the Cook Islands celebrated Christmas twice to correct the calendar.
# According to the old books, missionaries were unaware of
# the International Date line, when they came from Sydney.
# Thus the Cook Islands were one day ahead....
# http://nzetc.victoria.ac.nz/tm/scholarly/tei-KloDisc-t1-body-d18.html
# ... Appendix to the Journals of the House of Representatives, 1900
# https://atojs.natlib.govt.nz/cgi-bin/atojs?a=d&d=AJHR1900-I.2.1.2.3
# (page 20)
#
# From Michael Deckers (2021-03-24):
# ... in the Cook Island Act of 1915-10-11, online at
# http://www.paclii.org/ck/legis/ck-nz_act/cia1915132/
# "651. The hour of the day shall in each of the islands included in the
#  Cook Islands be determined in accordance with the meridian of that island."
# so that local (mean?) time was still used in Rarotonga (and Niue) in 1915.
# This was changed in the Cook Island Amendment Act of 1952-10-16 ...
# http://www.paclii.org/ck/legis/ck-nz_act/ciaa1952212/
# "651 (1) The hour of the day in each of the islands included in the Cook
#  Islands, other than Niue, shall be determined as if each island were
#  situated on the meridian one hundred and fifty-seven degrees thirty minutes
#  West of Greenwich.  (2) The hour of the day in the Island of Niue shall be
#  determined as if that island were situated on the meridian one hundred and
#  seventy degrees West of Greenwich."
# This act does not state when it takes effect, so one has to assume it
# applies since 1952-10-16.  But there is the possibility that the act just
# legalized prior existing practice, as we had seen with the Guernsey law of
# 1913-06-18 for the switch in 1909-04-19.
#
# From Paul Eggert (2021-03-24):
# Transitions after 1952 are from Shanks & Pottenger.
#
# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	Cook	1978	only	-	Nov	12	0:00	0:30	-
Rule	Cook	1979	1991	-	Mar	Sun>=1	0:00	0	-
Rule	Cook	1979	1990	-	Oct	lastSun	0:00	0:30	-
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone Pacific/Rarotonga	13:20:56 -	LMT	1899 Dec 26 # Avarua
			-10:39:04 -	LMT	1952 Oct 16
			-10:30	-	-1030	1978 Nov 12
			-10:00	Cook	-10/-0930

###############################################################################


# Niue
# See Pacific/Rarotonga comments for 1952 transition.
#
# From Tim Parenti (2021-09-13):
# Consecutive contemporaneous editions of The Air Almanac listed -11:20 for
# Niue as of Apr 1964 but -11 as of Aug 1964:
#   Apr 1964: https://books.google.com/books?id=_1So677Y5vUC&pg=SL1-PA23
#   Aug 1964: https://books.google.com/books?id=MbJloqd-zyUC&pg=SL1-PA23
# Without greater specificity, guess 1964-07-01 for this transition.

# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Pacific/Niue	-11:19:40 -	LMT	1952 Oct 16	# Alofi
			-11:20	-	-1120	1964 Jul
			-11:00	-	-11

# Norfolk
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Pacific/Norfolk	11:11:52 -	LMT	1901 # Kingston
			11:12	-	+1112	1951
			11:30	-	+1130	1974 Oct 27 02:00s
			11:30	1:00	+1230	1975 Mar  2 02:00s
			11:30	-	+1130	2015 Oct  4 02:00s
			11:00	-	+11	2019 Jul
			11:00	AN	+11/+12

# Palau (Belau)
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone Pacific/Palau	-15:02:04 -	LMT	1844 Dec 31	# Koror
			  8:57:56 -	LMT	1901
			  9:00	-	+09

# Papua New Guinea
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone Pacific/Port_Moresby 9:48:40 -	LMT	1880
			9:48:32	-	PMMT	1895 # Port Moresby Mean Time
			10:00	-	+10
Link Pacific/Port_Moresby Antarctica/DumontDUrville
Link Pacific/Port_Moresby Pacific/Chuuk
#
# From Paul Eggert (2014-10-13):
# Base the Bougainville entry on the Arawa-Kieta region, which appears to have
# the most people even though it was devastated in the Bougainville Civil War.
#
# Although Shanks gives 1942-03-15 / 1943-11-01 for UT +09, these dates
# are apparently rough guesswork from the starts of military campaigns.
# The World War II entries below are instead based on Arawa-Kieta.
# The Japanese occupied Kieta in July 1942,
# according to the Pacific War Online Encyclopedia
# https://pwencycl.kgbudge.com/B/o/Bougainville.htm
# and seem to have controlled it until their 1945-08-21 surrender.
#
# The Autonomous Region of Bougainville switched from UT +10 to +11
# on 2014-12-28 at 02:00.  They call +11 "Bougainville Standard Time".
# See:
# http://www.bougainville24.com/bougainville-issues/bougainville-gets-own-timezone/
#
Zone Pacific/Bougainville 10:22:16 -	LMT	1880
			 9:48:32 -	PMMT	1895
			10:00	-	+10	1942 Jul
			 9:00	-	+09	1945 Aug 21
			10:00	-	+10	2014 Dec 28  2:00
			11:00	-	+11

# Pitcairn
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone Pacific/Pitcairn	-8:40:20 -	LMT	1901        # Adamstown
			-8:30	-	-0830	1998 Apr 27  0:00
			-8:00	-	-08

# American Samoa
Zone Pacific/Pago_Pago	 12:37:12 -	LMT	1892 Jul  5
			-11:22:48 -	LMT	1911
			-11:00	-	SST	            # S=Samoa
Link Pacific/Pago_Pago Pacific/Midway # in US minor outlying islands

# Samoa (formerly and also known as Western Samoa)

# From Steffen Thorsen (2009-10-16):
# We have been in contact with the government of Samoa again, and received
# the following info:
#
# "Cabinet has now approved Daylight Saving to be effected next year
# commencing from the last Sunday of September 2010 and conclude first
# Sunday of April 2011."
#
# Background info:
# https://www.timeanddate.com/news/time/samoa-dst-plan-2009.html
#
# Samoa's Daylight Saving Time Act 2009 is available here, but does not
# contain any dates:
# http://www.parliament.gov.ws/documents/acts/Daylight%20Saving%20Act%20%202009%20%28English%29%20-%20Final%207-7-091.pdf

# From Laupue Raymond Hughes (2010-10-07):
# Please see
# http://www.mcil.gov.ws
# the Ministry of Commerce, Industry and Labour (sideframe) "Last Sunday
# September 2010 (26/09/10) - adjust clocks forward from 12:00 midnight
# to 01:00am and First Sunday April 2011 (03/04/11) - adjust clocks
# backwards from 1:00am to 12:00am"

# From Laupue Raymond Hughes (2011-03-07):
# [http://www.mcil.gov.ws/ftcd/daylight_saving_2011.pdf]
#
# ... when the standard time strikes the hour of four o'clock (4.00am
# or 0400 Hours) on the 2nd April 2011, then all instruments used to
# measure standard time are to be adjusted/changed to three o'clock
# (3:00am or 0300Hrs).

# From David Zülke (2011-05-09):
# Subject: Samoa to move timezone from east to west of international date line
#
# http://www.morningstar.co.uk/uk/markets/newsfeeditem.aspx?id=138501958347963

# From Paul Eggert (2014-06-27):
# The International Date Line Act 2011
# http://www.parliament.gov.ws/images/ACTS/International_Date_Line_Act__2011_-_Eng.pdf
# changed Samoa from UT -11 to +13, effective "12 o'clock midnight, on
# Thursday 29th December 2011".  The International Date Line was adjusted
# accordingly.

# From Laupue Raymond Hughes (2011-09-02):
# http://www.mcil.gov.ws/mcil_publications.html
#
# here is the official website publication for Samoa DST and dateline change
#
# DST
# Year  End      Time              Start        Time
# 2011  - - -    - - -             24 September 3:00am to 4:00am
# 2012  01 April 4:00am to 3:00am  - - -        - - -
#
# Dateline Change skip Friday 30th Dec 2011
# Thursday 29th December 2011	23:59:59 Hours
# Saturday 31st December 2011	00:00:00 Hours
#
# From Nicholas Pereira (2012-09-10):
# Daylight Saving Time commences on Sunday 30th September 2012 and
# ends on Sunday 7th of April 2013....
# http://www.mcil.gov.ws/mcil_publications.html
#
# From Paul Eggert (2014-07-08):
# That web page currently lists transitions for 2012/3 and 2013/4.
# Assume the pattern instituted in 2012 will continue indefinitely.
#
# From Geoffrey D. Bennett (2021-09-20):
# https://www.mcil.gov.ws/storage/2021/09/MCIL-Scan_20210920_120553.pdf
# DST has been cancelled for this year.

# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	WS	2010	only	-	Sep	lastSun	0:00	1	-
Rule	WS	2011	only	-	Apr	Sat>=1	4:00	0	-
Rule	WS	2011	only	-	Sep	lastSat	3:00	1	-
Rule	WS	2012	2021	-	Apr	Sun>=1	4:00	0	-
Rule	WS	2012	2020	-	Sep	lastSun	3:00	1	-
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone Pacific/Apia	 12:33:04 -	LMT	1892 Jul  5
			-11:26:56 -	LMT	1911
			-11:30	-	-1130	1950
			-11:00	WS	-11/-10	2011 Dec 29 24:00
			 13:00	WS	+13/+14

# Solomon Is
# excludes Bougainville, for which see Papua New Guinea
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone Pacific/Guadalcanal 10:39:48 -	LMT	1912 Oct # Honiara
			11:00	-	+11
Link Pacific/Guadalcanal Pacific/Pohnpei

# Tokelau
#
# From Gwillim Law (2011-12-29)
# A correspondent informed me that Tokelau, like Samoa, will be skipping
# December 31 this year ...
#
# From Steffen Thorsen (2012-07-25)
# ... we double checked by calling hotels and offices based in Tokelau asking
# about the time there, and they all told a time that agrees with UTC+13....
# Shanks says UT-10 from 1901 [but] ... there is a good chance the change
# actually was to UT-11 back then.
#
# From Paul Eggert (2012-07-25)
# A Google Books snippet of Appendix to the Journals of the House of
# Representatives of New Zealand, Session 1948,
# , page 65, says Tokelau
# was "11 hours slow on G.M.T."  Go with Thorsen and assume Shanks & Pottenger
# are off by an hour starting in 1901.

# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Pacific/Fakaofo	-11:24:56 -	LMT	1901
			-11:00	-	-11	2011 Dec 30
			13:00	-	+13

# Tonga
# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	Tonga	1999	only	-	Oct	 7	2:00s	1:00	-
Rule	Tonga	2000	only	-	Mar	19	2:00s	0	-
Rule	Tonga	2000	2001	-	Nov	Sun>=1	2:00	1:00	-
Rule	Tonga	2001	2002	-	Jan	lastSun	2:00	0	-
Rule	Tonga	2016	only	-	Nov	Sun>=1	2:00	1:00	-
Rule	Tonga	2017	only	-	Jan	Sun>=15	3:00	0	-
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone Pacific/Tongatapu	12:19:12 -	LMT	1945 Sep 10
			12:20	-	+1220	1961
			13:00	-	+13	1999
			13:00	Tonga	+13/+14

# Tuvalu
# See Pacific/Tarawa.


# US minor outlying islands

# Howland, Baker
# Howland was mined for guano by American companies 1857-1878 and British
# 1886-1891; Baker was similar but exact dates are not known.
# Inhabited by civilians 1935-1942; U.S. military bases 1943-1944;
# uninhabited thereafter.
# Howland observed Hawaii Standard Time (UT -10:30) in 1937;
# see page 206 of Elgen M. Long and Marie K. Long,
# Amelia Earhart: the Mystery Solved, Simon & Schuster (2000).
# So most likely Howland and Baker observed Hawaii Time from 1935
# until they were abandoned after the war.

# Jarvis
# Mined for guano by American companies 1857-1879 and British 1883?-1891?.
# Inhabited by civilians 1935-1942; IGY scientific base 1957-1958;
# uninhabited thereafter.
# no information; was probably like Pacific/Kiritimati

# Johnston
#
# From Paul Eggert (2017-02-10):
# Sometimes Johnston kept Hawaii time, and sometimes it was an hour behind.
# Details are uncertain.  We have no data for Johnston after 1970, so
# treat it like Hawaii for now.  Since Johnston is now uninhabited,
# its link to Pacific/Honolulu is in the 'backward' file.
#
# In his memoirs of June 6th to October 4, 1945
#  (2005), Herbert C. Bach writes,
# "We started our letdown to Kwajalein Atoll and landed there at 5:00 AM
# Johnston time, 1:30 AM Kwajalein time."  This was in June 1945, and
# confirms that Johnston kept the same time as Honolulu in summer 1945.
#
# From Lyle McElhaney (2014-03-11):
# [W]hen JI was being used for that [atomic bomb] testing, the time being used
# was not Hawaiian time but rather the same time being used on the ships,
# which had a GMT offset of -11 hours.  This apparently applied to at least the
# time from Operation Newsreel (Hardtack I/Teak shot, 1958-08-01) to the last
# Operation Fishbowl shot (Tightrope, 1962-11-04).... [See] Herman Hoerlin,
# "The United States High-Altitude Test Experience: A Review Emphasizing the
# Impact on the Environment", Los Alamos LA-6405, Oct 1976.
# https://www.fas.org/sgp/othergov/doe/lanl/docs1/00322994.pdf
# See the table on page 4 where he lists GMT and local times for the tests; a
# footnote for the JI tests reads that local time is "JI time = Hawaii Time
# Minus One Hour".

# Kingman
# uninhabited

# Midway
# See Pacific/Pago_Pago.

# Palmyra
# uninhabited since World War II; was probably like Pacific/Kiritimati

# Wake
# See Pacific/Tarawa.


# Vanuatu

# From P Chan (2020-11-27):
# Joint Daylight Saving Regulation No 59 of 1973
# New Hebrides Condominium Gazette No 336. December 1973
# http://www.paclii.org/vu/other/VUNHGovGaz//1973/11.pdf#page=15
#
# Joint Daylight Saving (Repeal) Regulation No 10 of 1974
# New Hebrides Condominium Gazette No 336. March 1974
# http://www.paclii.org/vu/other/VUNHGovGaz//1974/3.pdf#page=11
#
# Summer Time Act No. 35 of 1982 [commenced 1983-09-01]
# http://www.paclii.org/vu/other/VUGovGaz/1982/32.pdf#page=48
#
# Summer Time Act (Cap 157)
# Laws of the Republic of Vanuatu Revised Edition 1988
# http://www.paclii.org/cgi-bin/sinodisp/vu/legis/consol_act1988/sta147/sta147.html
#
# Summer Time (Amendment) Act No. 6 of 1991 [commenced 1991-11-11]
# http://www.paclii.org/vu/legis/num_act/sta1991227/
#
# Summer Time (Repeal) Act No. 4 of 1993 [commenced 1993-05-03]
# http://www.paclii.org/vu/other/VUGovGaz/1993/15.pdf#page=59

# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S
Rule	Vanuatu	1973	only	-	Dec	22	12:00u	1:00	-
Rule	Vanuatu	1974	only	-	Mar	30	12:00u	0	-
Rule	Vanuatu	1983	1991	-	Sep	Sat>=22	24:00	1:00	-
Rule	Vanuatu	1984	1991	-	Mar	Sat>=22	24:00	0	-
Rule	Vanuatu	1992	1993	-	Jan	Sat>=22	24:00	0	-
Rule	Vanuatu	1992	only	-	Oct	Sat>=22	24:00	1:00	-
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Pacific/Efate	11:13:16 -	LMT	1912 Jan 13 # Vila
			11:00	Vanuatu	+11/+12

# Wallis and Futuna
# See Pacific/Tarawa.

###############################################################################

# NOTES

# This file is by no means authoritative; if you think you know better,
# go ahead and edit the file (and please send any changes to
# tz@iana.org for general use in the future).  For more, please see
# the file CONTRIBUTING in the tz distribution.

# From Paul Eggert (2018-11-18):
#
# Unless otherwise specified, the source for data through 1990 is:
# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition),
# San Diego: ACS Publications, Inc. (2003).
# Unfortunately this book contains many errors and cites no sources.
#
# Many years ago Gwillim Law wrote that a good source
# for time zone data was the International Air Transport
# Association's Standard Schedules Information Manual (IATA SSIM),
# published semiannually.  Law sent in several helpful summaries
# of the IATA's data after 1990.  Except where otherwise noted,
# IATA SSIM is the source for entries after 1990.
#
# Another source occasionally used is Edward W. Whitman, World Time Differences,
# Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated), which
# I found in the UCLA library.
#
# For data circa 1899, a common source is:
# Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94.
# https://www.jstor.org/stable/1774359
#
# A reliable and entertaining source about time zones is
# Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997).
#
# I invented the abbreviation marked "*".
# The following abbreviations are from other sources.
# Corrections are welcome!
#		std	dst
#		LMT		Local Mean Time
#	  8:00	AWST	AWDT	Western Australia
#	  9:30	ACST	ACDT	Central Australia
#	 10:00	AEST	AEDT	Eastern Australia
#	 10:00	GST	GDT*	Guam through 2000
#	 10:00	ChST		Chamorro
#	 11:30	NZMT	NZST	New Zealand through 1945
#	 12:00	NZST	NZDT	New Zealand 1946-present
#	-11:00	SST		Samoa
#	-10:00	HST		Hawaii
#
# See the 'northamerica' file for Hawaii.
# See the 'southamerica' file for Easter I and the Galápagos Is.

###############################################################################

# Australia

# From Paul Eggert (2014-06-30):
# Daylight saving time has long been controversial in Australia, pitting
# region against region, rural against urban, and local against global.
# For example, in her review of Graeme Davison's _The Unforgiving
# Minute: how Australians learned to tell the time_ (1993), Perth native
# Phillipa J Martyr wrote, "The section entitled 'Saving Daylight' was
# very informative, but was (as can, sadly, only be expected from a
# Melbourne-based study) replete with the usual chuckleheaded
# Queenslanders and straw-chewing yokels from the West prattling fables
# about fading curtains and crazed farm animals."
# Electronic Journal of Australian and New Zealand History (1997-03-03)
# http://www.jcu.edu.au/aff/history/reviews/davison.htm

# From P Chan (2020-11-20):
# Daylight Saving Act 1916 (No. 40 of 1916) [1916-12-21, commenced 1917-01-01]
# http://classic.austlii.edu.au/au/legis/cth/num_act/dsa1916401916192/
#
# Daylight Saving Repeal Act 1917 (No. 35 of 1917) [1917-09-25]
# http://classic.austlii.edu.au/au/legis/cth/num_act/dsra1917351917243/
#
# Statutory Rules 1941, No. 323 [1941-12-24]
# https://www.legislation.gov.au/Details/C1941L00323
#
# Statutory Rules 1942, No. 392 [1942-09-10]
# https://www.legislation.gov.au/Details/C1942L00392
#
# Statutory Rules 1943, No. 241 [1943-09-29]
# https://www.legislation.gov.au/Details/C1943L00241
#
# All transition times should be 02:00 standard time.


# From Paul Eggert (2005-12-08):
# Implementation Dates of Daylight Saving Time within Australia
# http://www.bom.gov.au/climate/averages/tables/dst_times.shtml
# summarizes daylight saving issues in Australia.

# From Arthur David Olson (2005-12-12):
# Lawlink NSW:Daylight Saving in New South Wales
# http://www.lawlink.nsw.gov.au/lawlink/Corporate/ll_agdinfo.nsf/pages/community_relations_daylight_saving
# covers New South Wales in particular.

# From John Mackin (1991-03-06):
# We in Australia have _never_ referred to DST as 'daylight' time.
# It is called 'summer' time.  Now by a happy coincidence, 'summer'
# and 'standard' happen to start with the same letter; hence, the
# abbreviation does _not_ change...
# The legislation does not actually define abbreviations, at least
# in this State, but the abbreviation is just commonly taken to be the
# initials of the phrase, and the legislation here uniformly uses
# the phrase 'summer time' and does not use the phrase 'daylight
# time'.
# Announcers on the Commonwealth radio network, the ABC (for Australian
# Broadcasting Commission), use the phrases 'Eastern Standard Time'
# or 'Eastern Summer Time'.  (Note, though, that as I say in the
# current australasia file, there is really no such thing.)  Announcers
# on its overseas service, Radio Australia, use the same phrases
# prefixed by the word 'Australian' when referring to local times;
# time announcements on that service, naturally enough, are made in UTC.

# From Paul Eggert (2014-06-30):
#
# Inspired by Mackin's remarks quoted above, earlier versions of this
# file used "EST" for both Eastern Standard Time and Eastern Summer
# Time in Australia, and similarly for "CST", "CWST", and "WST".
# However, these abbreviations were confusing and were not common
# practice among Australians, and there were justifiable complaints
# about them, so I attempted to survey current Australian usage.
# For the tz database, the full English phrase is not that important;
# what matters is the abbreviation.  It's difficult to survey the web
# directly for abbreviation usage, as there are so many false hits for
# strings like "EST" and "EDT", so I looked for pages that defined an
# abbreviation for eastern or central DST in Australia, and got the
# following numbers of unique hits for the listed Google queries:
#
#   10 "Eastern Daylight Time AEST" site:au [some are false hits]
#   10 "Eastern Summer Time AEST" site:au
#   10 "Summer Time AEDT" site:au
#   13 "EDST Eastern Daylight Saving Time" site:au
#   18 "Summer Time ESST" site:au
#   28 "Eastern Daylight Saving Time EDST" site:au
#   39 "EDT Eastern Daylight Time" site:au [some are false hits]
#   53 "Eastern Daylight Time EDT" site:au [some are false hits]
#   54 "AEDT Australian Eastern Daylight Time" site:au
#  182 "Eastern Daylight Time AEDT" site:au
#
#   17 "Central Daylight Time CDT" site:au [some are false hits]
#   46 "Central Daylight Time ACDT" site:au
#
# I tried several other variants (e.g., "Eastern Summer Time EST") but
# they all returned fewer than 10 unique hits.  I also looked for pages
# mentioning both "western standard time" and an abbreviation, since
# there is no WST in the US to generate false hits, and found:
#
#  156 "western standard time" AWST site:au
#  226 "western standard time" WST site:au
#
# I then surveyed the top ten newspapers in Australia by circulation as
# listed in Wikipedia, using Google queries like "AEDT site:heraldsun.com.au"
# and obtaining estimated counts from the initial page of search results.
# All ten papers greatly preferred "AEDT" to "EDT".  The papers
# surveyed were the Herald Sun, The Daily Telegraph, The Courier-Mail,
# The Sydney Morning Herald, The West Australian, The Age, The Advertiser,
# The Australian, The Financial Review, and The Herald (Newcastle).
#
# I also searched for historical usage, to see whether abbreviations
# like "AEDT" are new.  A Trove search 
# found only one newspaper (The Canberra Times) with a house style
# dating back to the 1970s, I expect because other newspapers weren't
# fully indexed.  The Canberra Times strongly preferred abbreviations
# like "AEDT".  The first occurrence of "AEDT" was a World Weather
# column (1971-11-17, page 24), and of "ACDT" was a Scoreboard column
# (1993-01-24, p 16).  The style was the typical usage but was not
# strictly enforced; for example, "Welcome to the twilight zones ..."
# (1994-10-29, p 1) uses the abbreviations AEST/AEDT, CST/CDT, and
# WST, and goes on to say, "The confusion and frustration some feel
# about the lack of uniformity among Australia's six states and two
# territories has prompted one group to form its very own political
# party -- the Sydney-based Daylight Saving Extension Party."
#
# I also surveyed federal government sources.  They did not agree:
#
#   The Australian Government (2014-03-26)
#   http://australia.gov.au/about-australia/our-country/time
#   (This document was produced by the Department of Finance.)
#   AEST ACST AWST AEDT ACDT
#
#   Bureau of Meteorology (2012-11-08)
#   http://www.bom.gov.au/climate/averages/tables/daysavtm.shtml
#   EST CST WST EDT CDT
#
#   Civil Aviation Safety Authority (undated)
#   http://services.casa.gov.au/outnback/inc/pages/episode3/episode-3_time_zones.shtml
#   EST CST WST (no abbreviations given for DST)
#
#   Geoscience Australia (2011-11-24)
#   http://www.ga.gov.au/geodesy/astro/sunrise.jsp
#   AEST ACST AWST AEDT ACDT
#
#   Parliamentary Library (2008-11-10)
#   https://www.aph.gov.au/binaries/library/pubs/rp/2008-09/09rp14.pdf
#   EST CST WST preferred for standard time; AEST AEDT ACST ACDT also used
#
#   The Transport Safety Bureau has an extensive series of accident reports,
#   and investigators seem to use whatever abbreviation they like.
#   Googling site:atsb.gov.au found the following number of unique hits:
#   311 "ESuT", 195 "EDT", 26 "AEDT", 83 "CSuT", 46 "CDT".
#   "_SuT" tended to appear in older reports, and "A_DT" tended to
#   appear in reports of events with international implications.
#
# From the above it appears that there is a working consensus in
# Australia to use trailing "DT" for daylight saving time; although
# some sources use trailing "SST" or "ST" or "SuT" they are by far in
# the minority.  The case for leading "A" is weaker, but since it
# seems to be preferred in the overall web and is preferred in all
# the leading newspaper websites and in many government departments,
# it has a stronger case than omitting the leading "A".  The current
# version of the database therefore uses abbreviations like "AEST" and
# "AEDT" for Australian time zones.

# From Paul Eggert (1995-12-19):
# Shanks & Pottenger report 2:00 for all autumn changes in Australia and NZ.
# Mark Prior writes that his newspaper
# reports that NSW's fall 1995 change will occur at 2:00,
# but Robert Elz says it's been 3:00 in Victoria since 1970
# and perhaps the newspaper's '2:00' is referring to standard time.
# For now we'll continue to assume 2:00s for changes since 1960.

# From Eric Ulevik (1998-01-05):
#
# Here are some URLs to Australian time legislation. These URLs are stable,
# and should probably be included in the data file. There are probably more
# relevant entries in this database.
#
# NSW (including LHI and Broken Hill):
# Standard Time Act 1987 (updated 1995-04-04)
# https://www.austlii.edu.au/au/legis/nsw/consol_act/sta1987137/index.html
# ACT
# Standard Time and Summer Time Act 1972
# https://www.austlii.edu.au/au/legis/act/consol_act/stasta1972279/index.html
# SA
# Standard Time Act, 1898
# https://www.austlii.edu.au/au/legis/sa/consol_act/sta1898137/index.html

# From David Grosz (2005-06-13):
# It was announced last week that Daylight Saving would be extended by
# one week next year to allow for the 2006 Commonwealth Games.
# Daylight Saving is now to end for next year only on the first Sunday
# in April instead of the last Sunday in March.
#
# From Gwillim Law (2005-06-14):
# I did some Googling and found that all of those states (and territory) plan
# to extend DST together in 2006.
# ACT: http://www.cmd.act.gov.au/mediareleases/fileread.cfm?file=86.txt
# New South Wales: http://www.thecouriermail.news.com.au/common/story_page/0,5936,15538869%255E1702,00.html
# South Australia: http://www.news.com.au/story/0,10117,15555031-1246,00.html
# Tasmania: http://www.media.tas.gov.au/release.php?id=14772
# Victoria: I wasn't able to find anything separate, but the other articles
# allude to it.
# But not Queensland
# http://www.news.com.au/story/0,10117,15564030-1248,00.html

# Northern Territory

# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
# # The NORTHERN TERRITORY..  [ Courtesy N.T. Dept of the Chief Minister ]
# #					[ Nov 1990 ]
# #	N.T. have never utilised any DST due to sub-tropical/tropical location.
# ...
# Zone        Australia/North         9:30    -       CST

# From Bradley White (1991-03-04):
# A recent excerpt from an Australian newspaper...
# the Northern Territory do[es] not have daylight saving.

# Western Australia

# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
# #  The state of WESTERN AUSTRALIA..  [ Courtesy W.A. dept Premier+Cabinet ]
# #						[ Nov 1990 ]
# #	W.A. suffers from a great deal of public and political opposition to
# #	DST in principle. A bill is brought before parliament in most years, but
# #	usually defeated either in the upper house, or in party caucus
# #	before reaching parliament.
# ...
# Zone	Australia/West		8:00	AW	%sST
# ...
# Rule	AW	1974	only	-	Oct	lastSun	2:00	1:00	D
# Rule	AW	1975	only	-	Mar	Sun>=1	3:00	0	W
# Rule	AW	1983	only	-	Oct	lastSun	2:00	1:00	D
# Rule	AW	1984	only	-	Mar	Sun>=1	3:00	0	W

# From Bradley White (1991-03-04):
# A recent excerpt from an Australian newspaper...
# Western Australia...do[es] not have daylight saving.

# From John D. Newman via Bradley White (1991-11-02):
# Western Australia is still on "winter time". Some DH in Sydney
# rang me at home a few days ago at 6.00am. (He had just arrived at
# work at 9.00am.)
# W.A. is switching to Summer Time on Nov 17th just to confuse
# everybody again.

# From Arthur David Olson (1992-03-08):
# The 1992 ending date used in the rules is a best guess;
# it matches what was used in the past.

# The Australian Bureau of Meteorology FAQ
# http://www.bom.gov.au/faq/faqgen.htm
# (1999-09-27) writes that Giles Meteorological Station uses
# South Australian time even though it's located in Western Australia.

# From Paul Eggert (2018-04-01):
# The Guardian Express of Perth, Australia reported today that the
# government decided to advance the clocks permanently on January 1,
# 2019, from UT +08 to UT +09.  The article noted that an exemption
# would be made for people aged 61 and over, who "can apply in writing
# to have the extra hour of sunshine removed from their area."  See:
# Daylight saving coming to WA in 2019. Guardian Express. 2018-04-01.
# https://www.communitynews.com.au/guardian-express/news/exclusive-daylight-savings-coming-wa-summer-2018/
# [The article ends with "Today's date is April 1."]

# Queensland

# From Paul Eggert (2018-02-26):
# I lack access to the following source for Queensland DST:
# Pearce C. History of daylight saving time in Queensland.
# Queensland Hist J. 2017 Aug;23(6):389-403
# https://search.informit.com.au/documentSummary;dn=994682348436426;res=IELHSS

# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
# #   The state of QUEENSLAND.. [ Courtesy Qld. Dept Premier Econ&Trade Devel ]
# #						[ Dec 1990 ]
# ...
# Zone	Australia/Queensland	10:00	AQ	%sST
# ...
# Rule	AQ	1971	only	-	Oct	lastSun	2:00	1:00	D
# Rule	AQ	1972	only	-	Feb	lastSun	3:00	0	E
# Rule	AQ	1989	max	-	Oct	lastSun	2:00	1:00	D
# Rule	AQ	1990	max	-	Mar	Sun>=1	3:00	0	E

# From Bradley White (1989-12-24):
# "Australia/Queensland" now observes daylight time (i.e. from
# October 1989).

# From Bradley White (1991-03-04):
# A recent excerpt from an Australian newspaper...
# ...Queensland...[has] agreed to end daylight saving
# at 3am tomorrow (March 3)...

# From John Mackin (1991-03-06):
# I can certainly confirm for my part that Daylight Saving in NSW did in fact
# end on Sunday, 3 March.  I don't know at what hour, though.  (It surprised
# me.)

# From Bradley White (1992-03-08):
# ...there was recently a referendum in Queensland which resulted
# in the experimental daylight saving system being abandoned. So, ...
# ...
# Rule	QLD	1989	1991	-	Oct	lastSun	2:00	1:00	D
# Rule	QLD	1990	1992	-	Mar	Sun>=1	3:00	0	S
# ...

# From Arthur David Olson (1992-03-08):
# The chosen rules the union of the 1971/1972 change and the 1989-1992 changes.

# From Christopher Hunt (2006-11-21), after an advance warning
# from Jesper Nørgaard Welen (2006-11-01):
# WA are trialing DST for three years.
# http://www.parliament.wa.gov.au/parliament/bills.nsf/9A1B183144403DA54825721200088DF1/$File/Bill175-1B.pdf

# From Rives McDow (2002-04-09):
# The most interesting region I have found consists of three towns on the
# southern coast....  South Australia observes daylight saving time; Western
# Australia does not.  The two states are one and a half hours apart.  The
# residents decided to forget about this nonsense of changing the clock so
# much and set the local time 20 hours and 45 minutes from the
# international date line, or right in the middle of the time of South
# Australia and Western Australia....
#
# From Paul Eggert (2002-04-09):
# This is confirmed by the section entitled
# "What's the deal with time zones???" in
# http://www.earthsci.unimelb.edu.au/~awatkins/null.html
#
# From Alex Livingston (2006-12-07):
# ... it was just on four years ago that I drove along the Eyre Highway,
# which passes through eastern Western Australia close to the southern
# coast of the continent.
#
# I paid particular attention to the time kept there. There can be no
# dispute that UTC+08:45 was considered "the time" from the border
# village just inside the border with South Australia to as far west
# as just east of Caiguna. There can also be no dispute that Eucla is
# the largest population centre in this zone....
#
# Now that Western Australia is observing daylight saving, the
# question arose whether this part of the state would follow suit. I
# just called the border village and confirmed that indeed they have,
# meaning that they are now observing UTC+09:45.
#
# (2006-12-09):
# I personally doubt that either experimentation with daylight saving
# in WA or its introduction in SA had anything to do with the genesis
# of this time zone.  My hunch is that it's been around since well
# before 1975.  I remember seeing it noted on road maps decades ago.
#
# From Gilmore Davidson (2019-04-08):
# https://www.abc.net.au/news/2019-04-08/this-remote-stretch-of-desert-has-its-own-custom-time-zone/10981000
# ... include[s] a rough description of the geographical boundaries...
# "The time zone exists for about 340 kilometres and takes in the tiny
# roadhouse communities of Cocklebiddy, Madura, Eucla and Border Village."
# ... and an indication that the zone has definitely been in existence
# since before the 1970 cut-off of the database ...
# From Paul Eggert (2019-05-17):
# That ABC Esperance story by Christien de Garis also says:
#    Although the Central Western Time Zone is not officially recognised (your
#    phones won't automatically change), there is a sign instructing you which
#    way to wind your clocks 45 minutes and scrawled underneath one of them in
#    Texta is the word: 'Why'?
#    "Good question," Mr Pike said.
#    "I don't even know that, and it's been going for over 50 years."

# From Paul Eggert (2006-12-15):
# For lack of better info, assume the tradition dates back to the
# introduction of standard time in 1895.


# southeast Australia
#
# From Paul Eggert (2007-07-23):
# Starting autumn 2008 Victoria, NSW, South Australia, Tasmania and the ACT
# end DST the first Sunday in April and start DST the first Sunday in October.
# http://www.theage.com.au/news/national/daylight-savings-to-span-six-months/2007/06/27/1182623966703.html


# South Australia

# From Bradley White (1991-03-04):
# A recent excerpt from an Australian newspaper...
# ...South Australia...[has] agreed to end daylight saving
# at 3am tomorrow (March 3)...

# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
# #   The state of SOUTH AUSTRALIA....[ Courtesy of S.A. Dept of Labour ]
# #						[ Nov 1990 ]
# ...
# Zone	Australia/South		9:30	AS	%sST
# ...
# Rule	 AS	1971	max	-	Oct	lastSun	2:00	1:00	D
# Rule	 AS	1972	1985	-	Mar	Sun>=1	3:00	0	C
# Rule	 AS	1986	1990	-	Mar	Sun>=15	3:00	0	C
# Rule	 AS	1991	max	-	Mar	Sun>=1	3:00	0	C

# From Bradley White (1992-03-11):
# Recent correspondence with a friend in Adelaide
# contained the following exchange:  "Due to the Adelaide Festival,
# South Australia delays setting back our clocks for a few weeks."

# From Robert Elz (1992-03-13):
# I heard that apparently (or at least, it appears that)
# South Aus will have an extra 3 weeks daylight saving every even
# numbered year (from 1990).  That's when the Adelaide Festival
# is on...

# From Robert Elz (1992-03-16, 00:57:07 +1000):
# DST didn't end in Adelaide today (yesterday)....
# But whether it's "4th Sunday" or "2nd last Sunday" I have no idea whatever...
# (it's just as likely to be "the Sunday we pick for this year"...).

# From Bradley White (1994-04-11):
# If Sun, 15 March, 1992 was at +1030 as kre asserts, but yet Sun, 20 March,
# 1994 was at +0930 as John Connolly's customer seems to assert, then I can
# only conclude that the actual rule is more complicated....

# From John Warburton (1994-10-07):
# The new Daylight Savings dates for South Australia ...
# was gazetted in the Government Hansard on Sep 26 1994....
# start on last Sunday in October and end in last sunday in March.

# From Paul Eggert (2007-07-23):
# See "southeast Australia" above for 2008 and later.

# Tasmania

# From P Chan (2020-11-20):
# Tasmania observed DST in 1916-1919.
#
# Daylight Saving Act, 1916 (7 Geo V, No 2) [1916-09-22]
# http://classic.austlii.edu.au/au/legis/tas/num_act/tdsa19167gvn2267/
#
# Daylight Saving Amendment Act, 1917 (8 Geo V, No 5) [1917-10-01]
# http://classic.austlii.edu.au/au/legis/tas/num_act/tdsaa19178gvn5347/
#
# Daylight Saving Act Repeal Act, 1919 (10 Geo V, No 9) [1919-10-24]
# http://classic.austlii.edu.au/au/legis/tas/num_act/tdsara191910gvn9339/
#
# King Island is mentioned in the 1967 Act but not the 1968 Act.
# Therefore it possibly observed DST from 1968/69.
#
# Daylight Saving Act 1967 (No. 33 of 1967) [1967-09-22]
# http://classic.austlii.edu.au/au/legis/tas/num_act/dsa196733o1967211/
#
# Daylight Saving Act 1968 (No. 42 of 1968) [1968-10-15]
# http://classic.austlii.edu.au/au/legis/tas/num_act/dsa196842o1968211/

# The rules for 1967 through 1991 were reported by George Shepherd
# via Simon Woodhead via Robert Elz (1991-03-06):
# #  The state of TASMANIA.. [Courtesy Tasmanian Dept of Premier + Cabinet ]
# #					[ Nov 1990 ]

# From Bill Hart via Guy Harris (1991-10-10):
# Oh yes, the new daylight savings rules are uniquely tasmanian, we have
# 6 weeks a year now when we are out of sync with the rest of Australia
# (but nothing new about that).

# From Alex Livingston (1999-10-04):
# I heard on the ABC (Australian Broadcasting Corporation) radio news on the
# (long) weekend that Tasmania, which usually goes its own way in this regard,
# has decided to join with most of NSW, the ACT, and most of Victoria
# (Australia) and start daylight saving on the last Sunday in August in 2000
# instead of the first Sunday in October.

# Sim Alam (2000-07-03) reported a legal citation for the 2000/2001 rules:
# http://www.thelaw.tas.gov.au/fragview/42++1968+GS3A@EN+2000070300

# From Paul Eggert (2007-07-23):
# See "southeast Australia" above for 2008 and later.

# Victoria

# The rules for 1971 through 1991 were reported by George Shepherd
# via Simon Woodhead via Robert Elz (1991-03-06):
# #   The state of VICTORIA.. [ Courtesy of Vic. Dept of Premier + Cabinet ]
# #						[ Nov 1990 ]

# From Scott Harrington (2001-08-29):
# On KQED's "City Arts and Lectures" program last night I heard an
# interesting story about daylight savings time.  Dr. John Heilbron was
# discussing his book "The Sun in the Church: Cathedrals as Solar
# Observatories"[1], and in particular the Shrine of Remembrance[2] located
# in Melbourne, Australia.
#
# Apparently the shrine's main purpose is a beam of sunlight which
# illuminates a special spot on the floor at the 11th hour of the 11th day
# of the 11th month (Remembrance Day) every year in memory of Australia's
# fallen WWI soldiers.  And if you go there on Nov. 11, at 11am local time,
# you will indeed see the sunbeam illuminate the special spot at the
# expected time.
#
# However, that is only because of some special mirror contraption that had
# to be employed, since due to daylight savings time, the true solar time of
# the remembrance moment occurs one hour later (or earlier?).  Perhaps
# someone with more information on this jury-rig can tell us more.
#
# [1] http://www.hup.harvard.edu/catalog/HEISUN.html
# [2] http://www.shrine.org.au

# From Paul Eggert (2007-07-23):
# See "southeast Australia" above for 2008 and later.

# New South Wales

# From Arthur David Olson:
# New South Wales and subjurisdictions have their own ideas of a fun time.
# Based on law library research by John Mackin,
# who notes:
#	In Australia, time is not legislated federally, but rather by the
#	individual states.  Thus, while such terms as "Eastern Standard Time"
#	[I mean, of course, Australian EST, not any other kind] are in common
#	use, _they have NO REAL MEANING_, as they are not defined in the
#	legislation.  This is very important to understand.
#	I have researched New South Wales time only...

# From Eric Ulevik (1999-05-26):
# DST will start in NSW on the last Sunday of August, rather than the usual
# October in 2000.  See: Matthew Moore,
# Two months more daylight saving, Sydney Morning Herald (1999-05-26).
# http://www.smh.com.au/news/9905/26/pageone/pageone4.html

# From Paul Eggert (1999-09-27):
# See the following official NSW source:
# Daylight Saving in New South Wales.
# http://dir.gis.nsw.gov.au/cgi-bin/genobject/document/other/daylightsaving/tigGmZ
#
# Narrabri Shire (NSW) council has announced it will ignore the extension of
# daylight saving next year.  See:
# Narrabri Council to ignore daylight saving
# http://abc.net.au/news/regionals/neweng/monthly/regeng-22jul1999-1.htm
# (1999-07-22).  For now, we'll wait to see if this really happens.
#
# Victoria will follow NSW.  See:
# Vic to extend daylight saving (1999-07-28)
# http://abc.net.au/local/news/olympics/1999/07/item19990728112314_1.htm
#
# However, South Australia rejected the DST request.  See:
# South Australia rejects Olympics daylight savings request (1999-07-19)
# http://abc.net.au/news/olympics/1999/07/item19990719151754_1.htm
#
# Queensland also will not observe DST for the Olympics.  See:
# Qld says no to daylight savings for Olympics
# http://abc.net.au/news/olympics/1999/06/item19990601114608_1.htm
# (1999-06-01), which quotes Queensland Premier Peter Beattie as saying
# "Look you've got to remember in my family when this came up last time
# I voted for it, my wife voted against it and she said to me it's all very
# well for you, you don't have to worry about getting the children out of
# bed, getting them to school, getting them to sleep at night.
# I've been through all this argument domestically...my wife rules."
#
# Broken Hill will stick with South Australian time in 2000.  See:
# Broken Hill to be behind the times (1999-07-21)
# http://abc.net.au/news/regionals/brokenh/monthly/regbrok-21jul1999-6.htm

# IATA SSIM (1998-09) says that the spring 2000 change for Australian
# Capital Territory, New South Wales except Lord Howe Island and Broken
# Hill, and Victoria will be August 27, presumably due to the Sydney Olympics.

# From Eric Ulevik, referring to Sydney's Sun Herald (2000-08-13), page 29:
# The Queensland Premier Peter Beattie is encouraging northern NSW
# towns to use Queensland time.

# From Paul Eggert (2007-07-23):
# See "southeast Australia" above for 2008 and later.

# Yancowinna

# From John Mackin (1989-01-04):
# 'Broken Hill' means the County of Yancowinna.

# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
# # YANCOWINNA..  [ Confirmation courtesy of Broken Hill Postmaster ]
# #					[ Dec 1990 ]
# ...
# # Yancowinna uses Central Standard Time, despite [its] location on the
# # New South Wales side of the S.A. border. Most business and social dealings
# # are with CST zones, therefore CST is legislated by local government
# # although the switch to Summer Time occurs in line with N.S.W. There have
# # been years when this did not apply, but the historical data is not
# # presently available.
# Zone	Australia/Yancowinna	9:30	 AY	%sST
# ...
# Rule	 AY	1971	1985	-	Oct	lastSun	2:00	1:00	D
# Rule	 AY	1972	only	-	Feb	lastSun	3:00	0	C
# [followed by other Rules]

# Lord Howe Island

# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
# LHI...		[ Courtesy of Pauline Van Winsen ]
#					[ Dec 1990 ]
# Lord Howe Island is located off the New South Wales coast, and is half an
# hour ahead of NSW time.

# From James Lonergan, Secretary, Lord Howe Island Board (2000-01-27):
# Lord Howe Island summer time in 2000/2001 will commence on the same
# date as the rest of NSW (i.e. 2000-08-27).  For your information the
# Lord Howe Island Board (controlling authority for the Island) is
# seeking the community's views on various options for summer time
# arrangements on the Island, e.g. advance clocks by 1 full hour
# instead of only 30 minutes.  [Dependent] on the wishes of residents
# the Board may approach the NSW government to change the existing
# arrangements.  The starting date for summer time on the Island will
# however always coincide with the rest of NSW.

# From James Lonergan, Secretary, Lord Howe Island Board (2000-10-25):
# Lord Howe Island advances clocks by 30 minutes during DST in NSW and retards
# clocks by 30 minutes when DST finishes. Since DST was most recently
# introduced in NSW, the "changeover" time on the Island has been 02:00 as
# shown on clocks on LHI. I guess this means that for 30 minutes at the start
# of DST, LHI is actually 1 hour ahead of the rest of NSW.

# From Paul Eggert (2006-03-22):
# For Lord Howe dates we use Shanks & Pottenger through 1989, and
# Lonergan thereafter.  For times we use Lonergan.

# From Paul Eggert (2007-07-23):
# See "southeast Australia" above for 2008 and later.

# From Steffen Thorsen (2009-04-28):
# According to the official press release, South Australia's extended daylight
# saving period will continue with the same rules as used during the 2008-2009
# summer (southern hemisphere).
#
# From
# http://www.safework.sa.gov.au/uploaded_files/DaylightDatesSet.pdf
# The extended daylight saving period that South Australia has been trialling
# for over the last year is now set to be ongoing.
# Daylight saving will continue to start on the first Sunday in October each
# year and finish on the first Sunday in April the following year.
# Industrial Relations Minister, Paul Caica, says this provides South Australia
# with a consistent half hour time difference with NSW, Victoria, Tasmania and
# the ACT for all 52 weeks of the year...
#
# We have a wrap-up here:
# https://www.timeanddate.com/news/time/south-australia-extends-dst.html
###############################################################################

# New Zealand

# From Mark Davies (1990-10-03):
# the 1989/90 year was a trial of an extended "daylight saving" period.
# This trial was deemed successful and the extended period adopted for
# subsequent years (with the addition of a further week at the start).
# source - phone call to Ministry of Internal Affairs Head Office.

# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
# # The Country of New Zealand   (Australia's east island -) Gee they hate that!
# #				   or is Australia the west island of N.Z.
# #	[ courtesy of Geoff Tribble.. Auckland N.Z. ]
# #				[ Nov 1990 ]
# ...
# Rule	NZ      1974    1988	-	Oct	lastSun	2:00	1:00	D
# Rule	NZ	1989	max	-	Oct	Sun>=1	2:00	1:00	D
# Rule	NZ      1975    1989	-	Mar	Sun>=1	3:00	0	S
# Rule	NZ	1990	max	-	Mar	lastSun	3:00	0	S
# ...
# Zone	NZ			12:00	NZ		NZ%sT	# New Zealand
# Zone	NZ-CHAT			12:45	-		NZ-CHAT # Chatham Island

# From Arthur David Olson (1992-03-08):
# The chosen rules use the Davies October 8 values for the start of DST in 1989
# rather than the October 1 value.

# From Paul Eggert (1995-12-19);
# Shank & Pottenger report 2:00 for all autumn changes in Australia and NZ.
# Robert Uzgalis writes that the New Zealand Daylight
# Savings Time Order in Council dated 1990-06-18 specifies 2:00 standard
# time on both the first Sunday in October and the third Sunday in March.
# As with Australia, we'll assume the tradition is 2:00s, not 2:00.
#
# From Paul Eggert (2006-03-22):
# The Department of Internal Affairs (DIA) maintains a brief history,
# as does Carol Squires; see tz-link.html for the full references.
# Use these sources in preference to Shanks & Pottenger.
#
# For Chatham, IATA SSIM (1991/1999) gives the NZ rules but with
# transitions at 2:45 local standard time; this confirms that Chatham
# is always exactly 45 minutes ahead of Auckland.

# From Colin Sharples (2007-04-30):
# DST will now start on the last Sunday in September, and end on the
# first Sunday in April.  The changes take effect this year, meaning
# that DST will begin on 2007-09-30 2008-04-06.
# http://www.dia.govt.nz/diawebsite.nsf/wpg_URL/Services-Daylight-Saving-Daylight-saving-to-be-extended

# From Paul Eggert (2014-07-14):
# Chatham Island time was formally standardized on 1957-01-01 by
# New Zealand's Standard Time Amendment Act 1956 (1956-10-26).
# https://www.austlii.edu.au/nz/legis/hist_act/staa19561956n100244.pdf
# According to Google Books snippet view, a speaker in the New Zealand
# parliamentary debates in 1956 said "Clause 78 makes provision for standard
# time in the Chatham Islands.  The time there is 45 minutes in advance of New
# Zealand time.  I understand that is the time they keep locally, anyhow."
# For now, assume this practice goes back to the introduction of standard time
# in New Zealand, as this would make Chatham Islands time almost exactly match
# LMT back when New Zealand was at UT +11:30; also, assume Chatham Islands did
# not observe New Zealand's prewar DST.

###############################################################################


# Bonin (Ogasawara) Islands and Marcus Island (Minami-Tori-shima)

# From Wakaba (2019-01-28) via Phake Nick:
# National Diet Library of Japan has several reports by Japanese Government
# officers that describe the time used in islands when they visited there.
# According to them (and other sources such as newspapers), standard time UTC
# + 10 (JST + 1) and DST UTC + 11 (JST + 2) was used until its return to Japan
# at 1968-06-26 00:00 JST.  The exact periods of DST are still unknown.
# I guessed Guam, Mariana, and Bonin and Marcus districts might have
# synchronized their DST periods, but reports imply they had their own
# decisions, i.e. there were three or more different time zones....
#
# https://wiki.suikawiki.org/n/小笠原諸島の標準時

# From Phake Nick (2019-02-12):
# Because their last time change to return to Japanese time when they returned
# to Japanese rule was right before 1970, ... per the current tz database
# rule, the information doesn't warrant creation of a new timezone for Bonin
# Islands itself and is thus as an anecdotal note for interest purpose only.
# ... [The abovementioned link] described some special timekeeping phenomenon
# regarding Marcus island, another remote island currently owned by Japanese
# in the same administrative unit as Bonin Islands.  Many reports claim that
# the American coastal guard on the American quarter of the island use its own
# coastal guard time, and most sources describe the time as UTC+11, being two
# hours faster than JST used by some Japanese personnel on the island.  Some
# sites describe it as same as Wake Island/Guam time although it would be
# incorrect to be same as Guam.  And then in a few Japanese governmental
# report from 1980s (from National Institute of Information and Communications
# Technology) regarding the construction of VLBI facility on the Marcus
# Island, it claimed that there are three time standards being used on the
# island at the time which include not just JST (UTC+9) or [US]CG time
# (UTC+11) but also a JMSDF time (UTC+10) (Japan Maritime Self-Defense
# Force).  Unfortunately there are no other sources that mentioned such time
# and there are also no information on things like how the time was used.


# Fiji

# Howse writes (p 153) that in 1879 the British governor of Fiji
# enacted an ordinance standardizing the islands on Antipodean Time
# instead of the American system (which was one day behind).

# From Rives McDow (1998-10-08):
# Fiji will introduce DST effective 0200 local time, 1998-11-01
# until 0300 local time 1999-02-28.  Each year the DST period will
# be from the first Sunday in November until the last Sunday in February.

# From Paul Eggert (2000-01-08):
# IATA SSIM (1999-09) says DST ends 0100 local time.  Go with McDow.

# From the BBC World Service in
# http://news.bbc.co.uk/2/hi/asia-pacific/205226.stm (1998-10-31 16:03 UTC):
# The Fijian government says the main reasons for the time change is to
# improve productivity and reduce road accidents.... [T]he move is also
# intended to boost Fiji's ability to attract tourists to witness the dawning
# of the new millennium.

# http://www.fiji.gov.fj/press/2000_09/2000_09_13-05.shtml (2000-09-13)
# reports that Fiji has discontinued DST.


# Kiribati

# From Paul Eggert (1996-01-22):
# Today's _Wall Street Journal_ (page 1) reports that Kiribati
# "declared it the same day [throughout] the country as of Jan. 1, 1995"
# as part of the competition to be first into the 21st century.

# From Kerry Shetline (2018-02-03):
# December 31 was the day that was skipped, so that the transition
# would be from Friday December 30, 1994 to Sunday January 1, 1995.
# From Paul Eggert (2018-02-04):
# One source for this is page 202 of: Bartky IR. One Time Fits All:
# The Campaigns for Global Uniformity (2007).

# Kanton

# From Paul Eggert (2021-05-27):
# Kiribati's +13 timezone is represented by Kanton, its only populated
# island.  (It was formerly spelled "Canton", but Gilbertese lacks "C".)
# Kanton was settled on 1937-08-31 by two British radio operators
# ;
# Americans came the next year and built an airfield, partly to
# establish airline service and perhaps partly anticipating the
# next war.  Aside from the war, the airfield was used by commercial
# airlines until long-range jets became standard; although currently
# for emergency use only, China says it is considering rebuilding the
# airfield for high-end niche tourism.  Kanton has about two dozen
# people, caretakers who rotate in from the rest of Kiribati in 2-5
# year shifts, and who use some of the leftover structures
# .

# Kwajalein

# From an AP article (1993-08-22):
# "The nearly 3,000 Americans living on this remote Pacific atoll have a good
# excuse for not remembering Saturday night: there wasn't one.  Residents were
# going to bed Friday night and waking up Sunday morning because at midnight
# -- 8 A.M. Eastern daylight time on Saturday -- Kwajalein was jumping from
# one side of the international date line to the other."
# "In Marshall Islands, Friday is followed by Sunday", NY Times. 1993-08-22.
# https://www.nytimes.com/1993/08/22/world/in-marshall-islands-friday-is-followed-by-sunday.html

# From Paul Eggert (2022-03-31):
# Phake Nick (2018-10-27) noted 's
# citation of a 1993 AP article published in the New York Times saying
# Kwajalein synchronized its day with the US mainland about 40 years earlier.
# However the AP article is vague and possibly wrong about this.  The article
# says the earlier switch was "about 40 years ago when the United States
# Army established a missile test range here".  However, the Kwajalein Test
# Center was established on 1960-10-01 and was run by the US Navy.  It was
# transferred to the US Army on 1964-07-01.  See "Seize the High Ground"
# .
# Given that Shanks was right on the money about the 1993 change, I'm inclined
# to take Shanks's word for the 1969 change unless we find better evidence.


# N Mariana Is, Guam

# From Phake Nick (2018-10-27):
# Guam Island was briefly annexed by Japan during ... year 1941-1944 ...
# however there are no detailed information about what time it use during that
# period.  It would probably be reasonable to assume Guam use GMT+9 during
# that period of time like the surrounding area.

# From Paul Eggert (2018-11-18):
# Howse writes (p 153) "The Spaniards, on the other hand, reached the
# Philippines and the Ladrones from America," and implies that the Ladrones
# (now called the Marianas) kept American date for quite some time.
# For now, we assume the Ladrones switched at the same time as the Philippines;
# see Asia/Manila.
#
# Use 1941-12-10 and 1944-07-31 for Guam WWII transitions, as the rough start
# and end of Japanese control of Agana.  We don't know whether the Northern
# Marianas followed Guam's DST rules from 1959 through 1977; for now, assume
# they did as that avoids the need for a separate zone due to our 1970 cutoff.
#
# US Public Law 106-564 (2000-12-23) made UT +10 the official standard time,
# under the name "Chamorro Standard Time".  There is no official abbreviation,
# but Congressman Robert A. Underwood, author of the bill that became law,
# wrote in a press release (2000-12-27) that he will seek the use of "ChST".

# See also the commentary for Micronesia.


# Marshall Is
# See the commentary for Micronesia.


# Micronesia (and nearby)

# From Paul Eggert (2018-11-18):
# Like the Ladrones (see Guam commentary), assume the Spanish East Indies
# kept American time until the Philippines switched at the end of 1844.

# From Paul Eggert (1999-10-29):
# The Federated States of Micronesia Visitors Board writes in
# The Federated States of Micronesia - Visitor Information (1999-01-26)
# http://www.fsmgov.org/info/clocks.html
# that Truk and Yap are UT +10, and Ponape and Kosrae are +11.
# We don't know when Kosrae switched from +12; assume January 1 for now.

# From Phake Nick (2018-10-27):
#
# From a Japanese wiki site https://wiki.suikawiki.org/n/南洋群島の標準時
# ...
# For "Southern Islands" (modern region of Mariana + Palau + Federation of
# Micronesia + Marshall Islands):
#
# A 1906 Japanese magazine shown the Caroline Islands and Mariana Islands
# who was occupied by Germany at the time as GMT+10, together with the like
# of German New Guinea.  However there is a marking saying it have not been
# implemented (yet).  No further information after that were found.
#
# Japan invaded those islands in 1914, and records shows that they were
# instructed to use JST at the time.
#
# 1915 January telecommunication record on the Jaluit Atoll shows they use
# the meridian of 170E as standard time (GMT+11:20), which is similar to the
# longitude of the atoll.
# 1915 February record say the 170E standard time is to be used until
# February 9 noon, and after February 9 noon they are to use JST.
# However these are time used within the Japanese Military at the time and
# probably does not reflect the time used by local resident at the time (that
# is if they keep their own time back then)
#
# In January 1919 the occupying force issued a command that split the area
# into three different timezone with meridian of 135E, 150E, 165E (JST+0, +1,
# +2), and the command was to become effective from February 1 of the same
# year.  Despite the target of the command is still only for the occupying
# force itself, further publication have described the time as the standard
# time for the occupied area and thus it can probably be seen as such.
#  * Area that use meridian of 135E: Palau and Yap civil administration area
#    (Southern Islands Western Standard Time)
#  * Area that use meridian of 150E: Truk (Chuuk) and Saipan civil
#    administration area (Southern Islands Central Standard Time)
#  * Area that use meridian of 165E: Ponape (Pohnpei) and Jaluit civil
#    administration area (Southern Islands Eastern Standard Time).
#  * In the next few years Japanese occupation of those islands have been
#    formalized via League of Nation Mandate (South Pacific Mandate) and formal
#    governance structure have been established, these district [become
#    subprefectures] and timezone classification have been inherited as standard
#    time of the area.
#  * Saipan subprefecture include Mariana islands (exclude Guam which was
#    occupied by America at the time), Palau and Yap subprefecture rule the
#    Western Caroline Islands with 137E longitude as border, Truk and Ponape
#    subprefecture rule the Eastern Caroline Islands with 154E as border, Ponape
#    subprefecture also rule part of Marshall Islands to the west of 164E
#    starting from (1918?) and Jaluit subprefecture rule the rest of the
#    Marshall Islands.
#
# And then in year 1937, an announcement was made to change the time in the
# area into 2 timezones:
#  * Area that use meridian of 135E: area administered by Palau, Yap and
#    Saipan subprefecture (Southern Islands Western Standard Time)
#  * Area that use meridian of 150E: area administered by Truk (Chuuk),
#    Ponape (Pohnpei) and Jaluit subprefecture (Southern Islands Eastern
#    Standard Time)
#
# Another announcement issued in 1941 say that on April 1 that year,
# standard time of the Southern Islands would be changed to use the meridian
# of 135E (GMT+9), and thus abolishing timezone different within the area.
#
# Then Pacific theater of WWII started and Japan slowly lose control on the
# island.  The webpage I linked above contain no information during this
# period of time....
#
# After the end of WWII, in 1946 February, a document written by the
# (former?) Japanese military personnel describe there are 3 hours time
# different between Caroline islands time/Wake island time and the Chungking
# time, which would mean the time being used there at the time was GMT+10.
#
# After that, the area become Trust Territories of the Pacific Islands
# under American administration from year 1947.  The site listed some
# American/International books/maps/publications about time used in those
# area during this period of time but they doesn't seems to be reliable
# information so it would be the best if someone know where can more reliable
# information can be found.
#
#
# From Paul Eggert (2018-11-18):
#
# For the above, use vague dates like "1914" and "1945" for transitions that
# plausibly exist but for which the details are not known.  The information
# for Wake is too sketchy to act on.
#
# The 1906 GMT+10 info about German-controlled islands might not have been
# done, so omit it from the data for now.
#
# The Jaluit info governs Kwajalein.


# Midway

# From Charles T O'Connor, KMTH DJ (1956),
# quoted in the KTMH section of the Radio Heritage Collection
#  (2002-12-31):
# For the past two months we've been on what is known as Daylight
# Saving Time.  This time has put us on air at 5am in the morning,
# your time down there in New Zealand.  Starting September 2, 1956
# we'll again go back to Standard Time.  This'll mean that we'll go to
# air at 6am your time.
#
# From Paul Eggert (2003-03-23):
# We don't know the date of that quote, but we'll guess they
# started DST on June 3.  Possibly DST was observed other years
# in Midway, but we have no record of it.

# Nauru

# From Phake Nick (2018-10-31):
# Currently, the tz database say Nauru use LMT until 1921, and then
# switched to GMT+11:30 for the next two decades.
# However, a number of timezone map published in America/Japan back then
# showed its timezone as GMT+11 per https://wiki.suikawiki.org/n/ナウルの標準時
# And it would also be nice if the 1921 transition date could be sourced.
# ...
# The "Nauru Standard Time Act 1978 Time Change"
# http://ronlaw.gov.nr/nauru_lpms/files/gazettes/4b23a17d2030150404db7a5fa5872f52.pdf#page=3
# based on "Nauru Standard Time Act 1978 Time Change"
# http://www.paclii.org/nr/legis/num_act/nsta1978207/ defined that "Nauru
# Alternative Time" (GMT+12) should be in effect from 1979 Feb.
#
# From Paul Eggert (2018-11-19):
# The 1921-01-15 introduction of standard time is in Shanks; it is also in
# "Standard Time Throughout the World", US National Bureau of Standards (1935),
# page 3, which does not give the UT offset.  In response to a comment by
# Phake Nick I set the Nauru time of occupation by Japan to
# 1942-08-29/1945-09-08 by using dates from:
# https://en.wikipedia.org/wiki/Japanese_occupation_of_Nauru

# Norfolk

# From Alexander Krivenyshev (2015-09-23):
# Norfolk Island will change ... from +1130 to +1100:
# https://www.comlaw.gov.au/Details/F2015L01483/Explanatory%20Statement/Text
# ... at 12.30 am (by legal time in New South Wales) on 4 October 2015.
# http://www.norfolkisland.gov.nf/nia/MediaRelease/Media%20Release%20Norfolk%20Island%20Standard%20Time%20Change.pdf

# From Paul Eggert (2019-08-28):
# Transitions before 2015 are from timeanddate.com, which consulted
# the Norfolk Island Museum and the Australian Bureau of Meteorology's
# Norfolk Island station, and found no record of Norfolk observing DST
# other than in 1974/5.  See:
# https://www.timeanddate.com/time/australia/norfolk-island.html
# However, disagree with timeanddate about the 1975-03-02 transition;
# timeanddate has 02:00 but 02:00s corresponds to what the NSW law said
# (thanks to Michael Deckers).

# Norfolk started observing Australian DST in spring 2019.
# From Kyle Czech (2019-08-13):
# https://www.legislation.gov.au/Details/F2018L01702
# From Michael Deckers (2019-08-14):
# https://www.legislation.gov.au/Details/F2019C00010

# Palau
# See commentary for Micronesia.

# Pitcairn

# From Rives McDow (1999-11-08):
# A Proclamation was signed by the Governor of Pitcairn on the 27th March 1998
# with regard to Pitcairn Standard Time.  The Proclamation is as follows.
#
#	The local time for general purposes in the Islands shall be
#	Co-ordinated Universal time minus 8 hours and shall be known
#	as Pitcairn Standard Time.
#
# ... I have also seen Pitcairn listed as UTC minus 9 hours in several
# references, and can only assume that this was an error in interpretation
# somehow in light of this proclamation.

# From Rives McDow (1999-11-09):
# The Proclamation regarding Pitcairn time came into effect on 27 April 1998
# ... at midnight.

# From Howie Phelps (1999-11-10), who talked to a Pitcairner via shortwave:
# Betty Christian told me yesterday that their local time is the same as
# Pacific Standard Time. They used to be ½ hour different from us here in
# Sacramento but it was changed a couple of years ago.


# (Western) Samoa and American Samoa

# Howse writes (p 153) that after the 1879 standardization on Antipodean
# time by the British governor of Fiji, the King of Samoa decided to change
# "the date in his kingdom from the Antipodean to the American system,
# ordaining - by a masterpiece of diplomatic flattery - that
# the Fourth of July should be celebrated twice in that year."
# This happened in 1892, according to the Evening News (Sydney) of 1892-07-20.
# https://www.staff.science.uu.nl/~gent0113/idl/idl.htm

# Although Shanks & Pottenger says they both switched to UT -11:30
# in 1911, and to -11 in 1950. many earlier sources give -11
# for American Samoa, e.g., the US National Bureau of Standards
# circular "Standard Time Throughout the World", 1932.
# Assume American Samoa switched to -11 in 1911, not 1950,
# and that after 1950 they agreed until (western) Samoa skipped a
# day in 2011.  Assume also that the Samoas follow the US and New
# Zealand's "ST"/"DT" style of daylight-saving abbreviations.


# Tonga

# From Paul Eggert (2021-03-04):
# In 1943 "The standard time kept is 12 hrs. 19 min. 12 sec. fast
# on Greenwich mean time." according to the Admiralty's Hydrographic
# Dept., Pacific Islands Pilot, Vol. II, 7th ed., 1943, p 360.

# From Michael Deckers (2021-03-03):
# [Ian R Bartky: "One Time Fits All: The Campaigns for Global Uniformity".
# Stanford University Press. 2007. p. 255]:
# On 10 September 1945 Tonga adopted a standard time 12 hours,
# 20 minutes in advance of Greenwich.

# From Paul Eggert (1996-01-22):
# Today's _Wall Street Journal_ (p 1) reports that "Tonga has been plotting
# to sneak ahead of [New Zealanders] by introducing daylight-saving time."
# Since Kiribati has moved the Date Line it's not clear what Tonga will do.

# Don Mundell writes in the 1997-02-20 Tonga Chronicle
# How Tonga became 'The Land where Time Begins':
# http://www.tongatapu.net.to/tonga/homeland/timebegins.htm
#
# Until 1941 Tonga maintained a standard time 50 minutes ahead of NZST
# 12 hours and 20 minutes ahead of GMT.  When New Zealand adjusted its
# standard time in 1940s, Tonga had the choice of subtracting from its
# local time to come on the same standard time as New Zealand or of
# advancing its time to maintain the differential of 13°
# (approximately 50 minutes ahead of New Zealand time).
#
# Because His Majesty King Tāufaʻāhau Tupou IV, then Crown Prince
# Tungī, preferred to ensure Tonga's title as the land where time
# begins, the Legislative Assembly approved the latter change.
#
# But some of the older, more conservative members from the outer
# islands objected. "If at midnight on Dec. 31, we move ahead 40
# minutes, as your Royal Highness wishes, what becomes of the 40
# minutes we have lost?"
#
# The Crown Prince, presented an unanswerable argument: "Remember that
# on the World Day of Prayer, you would be the first people on Earth
# to say your prayers in the morning."
#
# From Tim Parenti (2021-09-13), per Paul Eggert (2006-03-22) and Michael
# Deckers (2021-03-03):
# Mundell places the transition from +12:20 to +13 in 1941, while Shanks &
# Pottenger say the transition was on 1968-10-01.
#
# The Air Almanac published contemporaneous tables of standard times,
# which listed +12:20 as of Nov 1960 and +13 as of Mar 1961:
#   Nov 1960: https://books.google.com/books?id=bVgtWM6kPZUC&pg=SL1-PA19
#   Mar 1961: https://books.google.com/books?id=W2nItAul4g0C&pg=SL1-PA19
# (Thanks to P Chan for pointing us toward these sources.)
# This agrees with Bartky, who writes that "since 1961 [Tonga's] official time
# has been thirteen hours in advance of Greenwich time" (p. 202) and further
# writes in an endnote that this was because "the legislation was amended" on
# 1960-10-19. (p. 255)
#
# Without greater specificity, presume that Bartky and the Air Almanac point to
# a 1961-01-01 transition, as Tāufaʻāhau Tupou IV was still Crown Prince in
# 1961 and this still jives with the gist of Mundell's telling, and go with
# this over Shanks & Pottenger.

# From Eric Ulevik (1999-05-03):
# Tonga's director of tourism, who is also secretary of the National Millennium
# Committee, has a plan to get Tonga back in front.
# He has proposed a one-off move to tropical daylight saving for Tonga from
# October to March, which has won approval in principle from the Tongan
# Government.

# From Steffen Thorsen (1999-09-09):
# * Tonga will introduce DST in November
#
# I was given this link by John Letts:
# http://news.bbc.co.uk/hi/english/world/asia-pacific/newsid_424000/424764.stm
#
# I have not been able to find exact dates for the transition in November
# yet. By reading this article it seems like Fiji will be 14 hours ahead
# of UTC as well, but as far as I know Fiji will only be 13 hours ahead
# (12 + 1 hour DST).

# From Arthur David Olson (1999-09-20):
# According to :
# "Daylight Savings Time will take effect on Oct. 2 through April 15, 2000
# and annually thereafter from the first Saturday in October through the
# third Saturday of April.  Under the system approved by Privy Council on
# Sept. 10, clocks must be turned ahead one hour on the opening day and
# set back an hour on the closing date."
# Alas, no indication of the time of day.

# From Rives McDow (1999-10-06):
# Tonga started its Daylight Saving on Saturday morning October 2nd at 0200am.
# Daylight Saving ends on April 16 at 0300am which is Sunday morning.

# From Steffen Thorsen (2000-10-31):
# Back in March I found a notice on the website http://www.tongaonline.com
# that Tonga changed back to standard time one month early, on March 19
# instead of the original reported date April 16. Unfortunately, the article
# is no longer available on the site, and I did not make a copy of the
# text, and I have forgotten to report it here.
# (Original URL was )

# From Rives McDow (2000-12-01):
# Tonga is observing DST as of 2000-11-04 and will stop on 2001-01-27.

# From Sione Moala-Mafi (2001-09-20) via Rives McDow:
# At 2:00am on the first Sunday of November, the standard time in the Kingdom
# shall be moved forward by one hour to 3:00am.  At 2:00am on the last Sunday
# of January the standard time in the Kingdom shall be moved backward by one
# hour to 1:00am.

# From Pulu ʻAnau (2002-11-05):
# The law was for 3 years, supposedly to get renewed.  It wasn't.

# From Pulu ʻAnau (2016-10-27):
# http://mic.gov.to/news-today/press-releases/6375-daylight-saving-set-to-run-from-6-november-2016-to-15-january-2017
# Cannot find anyone who knows the rules, has seen the duration or has seen
# the cabinet decision, but it appears we are following Fiji's rule set.
#
# From Tim Parenti (2016-10-26):
# Assume Tonga will observe DST from the first Sunday in November at 02:00
# through the third Sunday in January at 03:00, like Fiji, for now.

# From David Wade (2017-10-18):
# In August government was dissolved by the King.  The current prime minister
# continued in office in care taker mode.  It is easy to see that few
# decisions will be made until elections 16th November.
#
# From Paul Eggert (2017-10-18):
# For now, guess that DST is discontinued.  That's what the IATA is guessing.


###############################################################################

# The International Date Line

# From Gwillim Law (2000-01-03):
#
# The International Date Line is not defined by any international standard,
# convention, or treaty.  Mapmakers are free to draw it as they please.
# Reputable mapmakers will simply ensure that every point of land appears on
# the correct side of the IDL, according to the date legally observed there.
#
# When Kiribati adopted a uniform date in 1995, thereby moving the Phoenix and
# Line Islands to the west side of the IDL (or, if you prefer, moving the IDL
# to the east side of the Phoenix and Line Islands), I suppose that most
# mapmakers redrew the IDL following the boundary of Kiribati.  Even that line
# has a rather arbitrary nature.  The straight-line boundaries between Pacific
# island nations that are shown on many maps are based on an international
# convention, but are not legally binding national borders.... The date is
# governed by the IDL; therefore, even on the high seas, there may be some
# places as late as fourteen hours later than UTC.  And, since the IDL is not
# an international standard, there are some places on the high seas where the
# correct date is ambiguous.

# From Wikipedia  (2005-08-31):
# Before 1920, all ships kept local apparent time on the high seas by setting
# their clocks at night or at the morning sight so that, given the ship's
# speed and direction, it would be 12 o'clock when the Sun crossed the ship's
# meridian (12 o'clock = local apparent noon).  During 1917, at the
# Anglo-French Conference on Time-keeping at Sea, it was recommended that all
# ships, both military and civilian, should adopt hourly standard time zones
# on the high seas.  Whenever a ship was within the territorial waters of any
# nation it would use that nation's standard time.  The captain was permitted
# to change his ship's clocks at a time of his choice following his ship's
# entry into another zone time - he often chose midnight.  These zones were
# adopted by all major fleets between 1920 and 1925 but not by many
# independent merchant ships until World War II.

# From Paul Eggert, using references suggested by Oscar van Vlijmen
# (2005-03-20):
#
# The American Practical Navigator (2002)
# http://pollux.nss.nima.mil/pubs/pubs_j_apn_sections.html?rid=187
# talks only about the 180-degree meridian with respect to ships in
# international waters; it ignores the international date line.
./tzdatabase/backzone0000644000175000017500000017537614272547645015041 0ustar  anthonyanthony# Zones that go back beyond the scope of the tz database

# This file is in the public domain.

# This file is by no means authoritative; if you think you know
# better, go ahead and edit it (and please send any changes to
# tz@iana.org for general use in the future).  For more, please see
# the file CONTRIBUTING in the tz distribution.


# From Paul Eggert (2014-10-31):

# This file contains data outside the normal scope of the tz database,
# in that its zones do not differ from normal tz zones after 1970.
# Links in this file point to zones in this file, superseding links in
# the file 'backward'.

# Although zones in this file may be of some use for analyzing
# pre-1970 timestamps, they are less reliable, cover only a tiny
# sliver of the pre-1970 era, and cannot feasibly be improved to cover
# most of the era.  Because the zones are out of normal scope for the
# database, less effort is put into maintaining this file.  Many of
# the zones were formerly in other source files, but were removed or
# replaced by links as their data entries were questionable and/or they
# differed from other zones only in pre-1970 timestamps.

# Unless otherwise specified, the source for data through 1990 is:
# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition),
# San Diego: ACS Publications, Inc. (2003).
# Unfortunately this book contains many errors and cites no sources.

# This file is not intended to be compiled standalone, as it
# assumes rules from other files.  In the tz distribution, use
# 'make PACKRATDATA=backzone zones' to compile and install this file.


# From Paul Eggert (2020-04-15):
# The following remarks should be incorporated into this table sometime.
# Patches in 'git format-patch' format would be welcome.
#
# From Phake Nick (2020-04-15):
# ... the historical timezone data for those China zones seems to be
# incorrect.  The transition to GMT+8 date given there for these zones
# were 1980 which also contradict the file description that they do
# not disagree with normal zone after 1970.  According to sources that
# have also been cited in the asia file, except Xinjiang and Tibet,
# they should have adopted the Beijing Time from around 1949/1950
# depends on exactly when each of those cities were taken over by the
# communist army.  And they should also follow the DST setting of
# Asia/Shanghai after that point of time.  In addition,
# http://gaz.ncl.edu.tw/detail.jsp?sysid=E1091792 the document from
# Chongqing Nationalist government say in year 1945 all of China
# should adopt summer time due to the war (not sure whether it
# continued after WWII ends)(Probably only enforced in area under
# their rule at the time?)  The Asia/Harbin's 1932 and 1940 entry
# should also be incorrect.  As per sources recorded at
# https://wiki.suikawiki.org/n/%E6%BA%80%E5%B7%9E%E5%9B%BD%E3%81%AE%E6%A8%99%E6%BA%96%E6%99%82
# , in 1932 Harbin should have adopted UTC+8:00 instead of data
# currently listed in the tz database according to official
# announcement from Manchuko.  And they should have adopted GMT+9 in
# 1937 January 1st according to official announcement at the time
# being cited on the webpage.


# Zones are sorted by zone name.  Each zone is preceded by the
# name of the country that the zone is in, along with any other
# commentary and rules associated with the entry.
# If the zone overrides links in the main data, it
# is followed by the corresponding Link lines.
# If the zone overrides main-data links only when building with
# PACKRATLIST=zone.tab, it is followed by a commented-out Link line
# that starts with "#PACKRATLIST zone.tab".
#
# As explained in the zic man page, the zone columns are:
# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
# and the rule columns are:
# Rule	NAME	FROM	TO	-	IN	ON	AT	SAVE	LETTER/S


# Ghana

# From P Chan (2020-11-20):
# Interpretation Amendment Ordinance, 1915 (No.24 of 1915) [1915-11-02]
# Ordinances of the Gold Coast, Ashanti, Northern Territories 1915, p 69-71
# https://books.google.com/books?id=ErA-AQAAIAAJ&pg=PA70
# This Ordinance added "'Time' shall mean Greenwich Mean Time" to the
# Interpretation Ordinance, 1876.
#
# Determination of the Time Ordinance, 1919 (No. 18 of 1919) [1919-11-24]
# Ordinances of the Gold Coast, Ashanti, Northern Territories 1919, p 75-76
# https://books.google.com/books?id=MbA-AQAAIAAJ&pg=PA75
# This Ordinance removed the previous definition of time and introduced DST.
#
# Time Determination Ordinance (Cap. 214)
# The Laws of the Gold Coast (including Togoland Under British Mandate)
# Vol. II (1937), p 2328
# https://books.google.com/books?id=Z7M-AQAAIAAJ&pg=PA2328
# Revised edition of the 1919 Ordinance.
#
# Time Determination (Amendment) Ordinance, 1940 (No. 9 of 1940) [1940-04-06]
# Annual Volume of the Laws of the Gold Coast:
# Containing All Legislation Enacted During Year 1940, p 22
# https://books.google.com/books?id=1ao-AQAAIAAJ&pg=PA22
# This Ordinance changed the forward transition from September to May.
#
# Defence (Time Determination Ordinance Amendment) Regulations, 1942
# (Regulations No. 6 of 1942) [1942-01-31, commenced on 1942-02-08]
# Annual Volume of the Laws of the Gold Coast:
# Containing All Legislation Enacted During Year 1942, p 48
# https://books.google.com/books?id=Das-AQAAIAAJ&pg=PA48
# These regulations advanced the [standard] time by thirty minutes.
#
# Defence (Time Determination Ordinance Amendment (No.2)) Regulations,
# 1942 (Regulations No. 28 of 1942) [1942-04-25]
# Annual Volume of the Laws of the Gold Coast:
# Containing All Legislation Enacted During Year 1942, p 87
# https://books.google.com/books?id=Das-AQAAIAAJ&pg=PA87
# These regulations abolished DST and changed the time to GMT+0:30.
#
# Defence (Revocation) (No.4) Regulations, 1945 (Regulations No. 45 of
# 1945) [1945-10-24, commenced on 1946-01-06]
# Annual Volume of the Laws of the Gold Coast:
# Containing All Legislation Enacted During Year 1945, p 256
# https://books.google.com/books?id=9as-AQAAIAAJ&pg=PA256
# These regulations revoked the previous two sets of Regulations.
#
# Time Determination (Amendment) Ordinance, 1945 (No. 18 of 1945) [1946-01-06]
# Annual Volume of the Laws of the Gold Coast:
# Containing All Legislation Enacted During Year 1945, p 69
# https://books.google.com/books?id=9as-AQAAIAAJ&pg=PA69
# This Ordinance abolished DST.
#
# Time Determination (Amendment) Ordinance, 1950 (No. 26 of 1950) [1950-07-22]
# Annual Volume of the Laws of the Gold Coast:
# Containing All Legislation Enacted During Year 1950, p 35
# https://books.google.com/books?id=e60-AQAAIAAJ&pg=PA35
# This Ordinance restored DST but with thirty minutes offset.
#
# Time Determination Ordinance (Cap. 264)
# The Laws of the Gold Coast, Vol. V (1954), p 380
# https://books.google.com/books?id=Mqc-AQAAIAAJ&pg=PA380
# Revised edition of the Time Determination Ordinance.
#
# Time Determination (Amendment) Ordinance, 1956 (No. 21 of 1956) [1956-08-29]
# Annual Volume of the Ordinances of the Gold Coast Enacted During the
# Year 1956, p 83
# https://books.google.com/books?id=VLE-AQAAIAAJ&pg=PA83
# This Ordinance abolished DST.

Rule	Ghana	1919	only	-	Nov	24	0:00	0:20	+0020
Rule	Ghana	1920	1942	-	Jan	 1	2:00	0	GMT
Rule	Ghana	1920	1939	-	Sep	 1	2:00	0:20	+0020
Rule	Ghana	1940	1941	-	May	 1	2:00	0:20	+0020
Rule	Ghana	1950	1955	-	Sep	 1	2:00	0:30	+0030
Rule	Ghana	1951	1956	-	Jan	 1	2:00	0	GMT

Zone	Africa/Accra	-0:00:52 -	LMT	1915 Nov  2
			 0:00	Ghana	%s	1942 Feb  8
			 0:30	-	+0030	1946 Jan  6
			 0:00	Ghana	%s

# Ethiopia
# From Paul Eggert (2014-07-31):
# Like the Swahili of Kenya and Tanzania, many Ethiopians keep a
# 12-hour clock starting at our 06:00, so their "8 o'clock" is our
# 02:00 or 14:00.  Keep this in mind when you ask the time in Amharic.
#
# Shanks & Pottenger write that Ethiopia had six narrowly-spaced time
# zones between 1870 and 1890, that they merged to 38E50 (2:35:20) in
# 1890, and that they switched to 3:00 on 1936-05-05.  Perhaps 38E50
# was for Adis Dera.  Quite likely the Shanks data entries are wrong
# anyway.
Zone Africa/Addis_Ababa	2:34:48 -	LMT	1870
			2:35:20	-	ADMT	1936 May  5 # Adis Dera MT
			3:00	-	EAT

# Eritrea
Zone	Africa/Asmara	2:35:32 -	LMT	1870
			2:35:32	-	AMT	1890        # Asmara Mean Time
			2:35:20	-	ADMT	1936 May  5 # Adis Dera MT
			3:00	-	EAT
Link Africa/Asmara Africa/Asmera

# Mali (southern)
Zone	Africa/Bamako	-0:32:00 -	LMT	1912
			 0:00	-	GMT	1934 Feb 26
			-1:00	-	-01	1960 Jun 20
			 0:00	-	GMT
#PACKRATLIST zone.tab Link Africa/Bamako Africa/Timbuktu

# Central African Republic
Zone	Africa/Bangui	1:14:20	-	LMT	1912
			1:00	-	WAT

# The Gambia
# From P Chan (2020-12-09):
# Standard time of GMT-1 was adopted on 1933-04-01.  On 1942-02-01, GMT was
# adopted as a war time measure.  This was made permanent in 1946.
#
# Interpretation Ordinance, 1914 (No. 12 of 1914) [1914-09-29]
# Interpretation Ordinance, 1933 (No. 10 of 1933) [1933-03-31]
# Notice No. 5 of 1942, Colony of the Gambia Government Gazette, Vol. LIX,
# No.2, 1942-01-15, p 2
# Interpretation (Amendment) Ordinance, 1946 (No. 3 of 1946) [1946-07-15]
Zone	Africa/Banjul	-1:06:36 -	LMT	1912
			-1:06:36 -	BMT	1933 Apr  1 # Banjul Mean Time
			-1:00	-	-01	1942 Feb  1  0:00
			 0:00	-	GMT

# Malawi
# From P Chan (2020-12-09):
# In 1911, Zomba mean time was adopted as the legal time of Nyasaland.  In
# 1914, Zomba mean time switched from GMT+2:21:10 to GMT+2:21. On 1925-07-01,
# GMT+2 was adopted.
#
# Interpretation and General Clauses Ordinance, 1911 (No. 12 of 1911)
# [1911-07-24]
# Notice No. 124 of 1914, 1914-06-30, The Nyasaland Government Gazette, Vol.
# XXI, No. 8, 1914-06-30, p 122
# Interpretation and General Clauses (Amendment) Ordinance, 1925 (No. 3 of
# 1925) [1925-04-02]
Zone	Africa/Blantyre	2:20:00 -	LMT	1911 Jul 24
			2:21:10	-	ZMT	1914 Jun 30 # Zomba Mean Time
			2:21	-	ZMT	1925 Jul  1
			2:00	-	CAT

# Republic of the Congo
Zone Africa/Brazzaville	1:01:08 -	LMT	1912
			1:00	-	WAT

# Burundi
Zone Africa/Bujumbura	1:57:28	-	LMT	1890
			2:00	-	CAT

# Guinea
Zone	Africa/Conakry	-0:54:52 -	LMT	1912
			 0:00	-	GMT	1934 Feb 26
			-1:00	-	-01	1960
			 0:00	-	GMT

# Senegal
Zone	Africa/Dakar	-1:09:44 -	LMT	1912
			-1:00	-	-01	1941 Jun
			 0:00	-	GMT

# Tanzania
Zone Africa/Dar_es_Salaam 2:37:08 -	LMT	1931
			3:00	-	EAT	1948
			2:45	-	+0245	1961
			3:00	-	EAT

# Djibouti
Zone	Africa/Djibouti	2:52:36 -	LMT	1911 Jul
			3:00	-	EAT

# Cameroon
# Whitman says they switched to 1:00 in 1920; go with Shanks & Pottenger.
Zone	Africa/Douala	0:38:48	-	LMT	1912
			1:00	-	WAT
# Sierra Leone
# From P Chan (2020-12-09):
# Standard time of GMT-1 was adopted on 1913-07-01.  Twenty minutes of DST was
# introduce[d] in 1932 and was suspended in 1939.  In 1941, GMT was adopted by
# Defence Regulations.  This was made permanent in 1946.
#
# Government Notice No. 121 of 1913, 1913-06-06, Sierra Leone Royal Gazette,
# Vol. XLIV, No. 1384, 1913-06-14, p 347
# Alteration of Time Ordinance, 1932 (No. 34 of 1932) [1932-12-01]
# Alteration of Time (Amendment) Ordinance, 1938 (No. 25 of 1938) [1938-11-24]
# Defence Regulations (No. 9), 1939 (Regulations No. 9 of 1939), 1939-09-05
# Defence Regulations (No. 11), 1939 (Regulations No. 11 of 1939), 1939-09-27
# Defence (Amendment) (No. 17) Regulations, 1941 (Public Notice No. 157 of
# 1941), 1914-12-04
# Alteration of Time (Amendment) Ordinance, 1946 (No. 2 of 1946) [1946-02-07]

# From Tim Parenti (2021-03-02), per P Chan (2021-02-25):
# For Sierra Leone in 1957-1962, the standard time was defined in the
# Alteration of Time Ordinance, 1932 (as amended in 1946, renamed to Local Time
# Ordinance in 1960 and Local Time Act in 1961). It was unamended throughout
# that period.  See references to "Time" in the Alphabetical Index of the
# Legislation in force on the 31st day of December,
#   1957: https://books.google.com/books?id=lvQ-AQAAIAAJ&pg=RA2-PA49
#   1958: https://books.google.com/books?id=4fQ-AQAAIAAJ&pg=RA2-PA50
#   1959: https://books.google.com/books?id=p_U-AQAAIAAJ&pg=RA2-PA55
#   1960: https://books.google.com/books?id=JPY-AQAAIAAJ&pg=RA3-PA37
#   1961: https://books.google.com/books?id=7vY-AQAAIAAJ&pg=RA3-PA41
#   1962: https://books.google.com/books?id=W_c-AQAAIAAJ&pg=RA3-PA44
#   1963: https://books.google.com/books?id=9vk-AQAAIAAJ&pg=RA1-PA47
#
# Although Shanks & Pottenger had DST from Jun 1 00:00 to Sep 1 00:00 in this
# period, many contemporaneous almanacs agree that it wasn't used:
# https://mm.icann.org/pipermail/tz/2021-February/029866.html
# Go with the above.

Rule	SL	1932	only	-	Dec	 1	 0:00	0:20	-0040
Rule	SL	1933	1938	-	Mar	31	24:00	0	-01
Rule	SL	1933	1939	-	Aug	31	24:00	0:20	-0040
Rule	SL	1939	only	-	May	31	24:00	0	-01

Zone	Africa/Freetown	-0:53:00 -	LMT	1882
			-0:53:00 -	FMT	1913 Jul  1 # Freetown MT
			-1:00	SL	%s	1939 Sep  5
			-1:00	-	-01	1941 Dec  6 24:00
			 0:00	SL	GMT/+01

# Botswana
# From Paul Eggert (2013-02-21):
# Milne says they were regulated by the Cape Town Signal in 1899;
# assume they switched to 2:00 when Cape Town did.
Zone	Africa/Gaborone	1:43:40 -	LMT	1885
			1:30	-	SAST	1903 Mar
			2:00	-	CAT	1943 Sep 19  2:00
			2:00	1:00	CAST	1944 Mar 19  2:00
			2:00	-	CAT

# Zimbabwe
Zone	Africa/Harare	2:04:12 -	LMT	1903 Mar
			2:00	-	CAT

# Uganda
Zone	Africa/Kampala	2:09:40 -	LMT	1928 Jul
			3:00	-	EAT	1930
			2:30	-	+0230	1948
			2:45	-	+0245	1957
			3:00	-	EAT

# Rwanda
Zone	Africa/Kigali	2:00:16 -	LMT	1935 Jun
			2:00	-	CAT

# Democratic Republic of the Congo (west)
Zone Africa/Kinshasa	1:01:12 -	LMT	1897 Nov  9
			1:00	-	WAT

# Gabon
Zone Africa/Libreville	0:37:48 -	LMT	1912
			1:00	-	WAT

# Togo
Zone	Africa/Lome	0:04:52 -	LMT	1893
			0:00	-	GMT

# Angola
#
# From Paul Eggert (2018-02-16):
# Shanks gives 1911-05-26 for the transition to WAT,
# evidently confusing the date of the Portuguese decree
# (see Europe/Lisbon) with the date that it took effect.
#
Zone	Africa/Luanda	0:52:56	-	LMT	1892
			0:52:04	-	LMT	1911 Dec 31 23:00u # Luanda MT?
			1:00	-	WAT

# Democratic Republic of the Congo (east)
#
# From Alois Treindl (2022-02-28):
# My main source for its time zone history is
# Henri le Corre, Régimes horaires pour l'Europe et l'Afrique.
# Shanks follows le Corre.  As does Françoise Schneider-Gauquelin in her book
# Problèmes de l'heure résolus pour le monde entier.
#
Zone Africa/Lubumbashi	1:49:52 -	LMT	1897 Nov  9
			1:00	-	WAT	1920 Apr 25
			2:00	-	CAT

# Zambia
Zone	Africa/Lusaka	1:53:08 -	LMT	1903 Mar
			2:00	-	CAT

# Equatorial Guinea
#
# Although Shanks says that Malabo switched from UT +00 to +01 on 1963-12-15,
# a Google Books search says that London Calling, Issues 432-465 (1948), p 19,
# says that Spanish Guinea was at +01 back then.  The Shanks data entries
# are most likely wrong, but we have nothing better; use them here for now.
#
Zone	Africa/Malabo	0:35:08 -	LMT	1912
			0:00	-	GMT	1963 Dec 15
			1:00	-	WAT

# Lesotho
Zone	Africa/Maseru	1:50:00 -	LMT	1903 Mar
			2:00	-	SAST	1943 Sep 19  2:00
			2:00	1:00	SAST	1944 Mar 19  2:00
			2:00	-	SAST

# Eswatini (formerly Swaziland)
Zone	Africa/Mbabane	2:04:24 -	LMT	1903 Mar
			2:00	-	SAST

# Somalia
Zone Africa/Mogadishu	3:01:28 -	LMT	1893 Nov
			3:00	-	EAT	1931
			2:30	-	+0230	1957
			3:00	-	EAT

# Niger
Zone	Africa/Niamey	 0:08:28 -	LMT	1912
			-1:00	-	-01	1934 Feb 26
			 0:00	-	GMT	1960
			 1:00	-	WAT

# Mauritania
Zone Africa/Nouakchott	-1:03:48 -	LMT	1912
			 0:00	-	GMT	1934 Feb 26
			-1:00	-	-01	1960 Nov 28
			 0:00	-	GMT

# Burkina Faso
Zone Africa/Ouagadougou	-0:06:04 -	LMT	1912
			 0:00	-	GMT

# Benin
# Whitman says they switched to 1:00 in 1946, not 1934;
# go with Shanks & Pottenger.
Zone Africa/Porto-Novo	0:10:28	-	LMT	1912 Jan  1
			0:00	-	GMT	1934 Feb 26
			1:00	-	WAT

# Mali (northern)
Zone	Africa/Timbuktu	-0:12:04 -	LMT	1912
			 0:00	-	GMT

# Anguilla
Zone America/Anguilla	-4:12:16 -	LMT	1912 Mar  2
			-4:00	-	AST

# Antigua and Barbuda
Zone	America/Antigua	-4:07:12 -	LMT	1912 Mar 2
			-5:00	-	EST	1951
			-4:00	-	AST

# Chubut, Argentina
# The name "Comodoro Rivadavia" exceeds the 14-byte POSIX limit.
Zone America/Argentina/ComodRivadavia -4:30:00 - LMT	1894 Oct 31
			-4:16:48 -	CMT	1920 May
			-4:00	-	-04	1930 Dec
			-4:00	Arg	-04/-03	1969 Oct  5
			-3:00	Arg	-03/-02	1991 Mar  3
			-4:00	-	-04	1991 Oct 20
			-3:00	Arg	-03/-02	1999 Oct  3
			-4:00	Arg	-04/-03	2000 Mar  3
			-3:00	-	-03	2004 Jun  1
			-4:00	-	-04	2004 Jun 20
			-3:00	-	-03

# Aruba
Zone	America/Aruba	-4:40:24 -	LMT	1912 Feb 12 # Oranjestad
			-4:30	-	-0430	1965
			-4:00	-	AST

# Atikokan, Ontario

# From Paul Eggert (1997-10-17):
# Mark Brader writes that an article in the 1997-10-14 Toronto Star
# says that Atikokan, Ontario currently does not observe DST,
# but will vote on 11-10 whether to use EST/EDT.
# He also writes that the Ontario Time Act (1990, Chapter T.9)
# http://www.gov.on.ca/MBS/english/publications/statregs/conttext.html
# says that Ontario east of 90W uses EST/EDT, and west of 90W uses CST/CDT.
# Officially Atikokan is therefore on CST/CDT, and most likely this report
# concerns a non-official time observed as a matter of local practice.
#
# From Paul Eggert (2000-10-02):
# Matthews and Vincent (1998) write that Atikokan, Pickle Lake, and
# New Osnaburgh observe CST all year, that Big Trout Lake observes
# CST/CDT, and that Upsala and Shebandowan observe EST/EDT, all in
# violation of the official Ontario rules.
#
# From Paul Eggert (2006-07-09):
# Chris Walton (2006-07-06) mentioned an article by Stephanie MacLellan in the
# 2005-07-21 Chronicle-Journal, which said:
#
#	The clocks in Atikokan stay set on standard time year-round.
#	This means they spend about half the time on central time and
#	the other half on eastern time.
#
#	For the most part, the system works, Mayor Dennis Brown said.
#
#	"The majority of businesses in Atikokan deal more with Eastern
#	Canada, but there are some that deal with Western Canada," he
#	said.  "I don't see any changes happening here."
#
# Walton also writes "Supposedly Pickle Lake and Mishkeegogamang
# [New Osnaburgh] follow the same practice."

# From Garry McKinnon (2006-07-14) via Chris Walton:
# I chatted with a member of my board who has an outstanding memory
# and a long history in Atikokan (and in the telecom industry) and he
# can say for certain that Atikokan has been practicing the current
# time keeping since 1952, at least.

# From Paul Eggert (2006-07-17):
# Shanks & Pottenger say that Atikokan has agreed with Rainy River
# ever since standard time was introduced, but the information from
# McKinnon sounds more authoritative.  For now, assume that Atikokan
# switched to EST immediately after WWII era daylight saving time
# ended.  This matches the old (less-populous) America/Coral_Harbour
# entry since our cutoff date of 1970, so we can move
# America/Coral_Harbour to the 'backward' file.

Zone America/Atikokan	-6:06:28 -	LMT	1895
			-6:00	Canada	C%sT	1940 Sep 29
			-6:00	1:00	CDT	1942 Feb  9  2:00s
			-6:00	Canada	C%sT	1945 Sep 30  2:00
			-5:00	-	EST
#PACKRATLIST zone.tab Link America/Atikokan America/Coral_Harbour

# Quebec east of Natashquan

# From Paul Eggert (2021-05-09):
# H. David Matthews and Mary Vincent's map
# "It's about TIME", _Canadian Geographic_ (September-October 1998)
# http://www.canadiangeographic.ca/Magazine/SO98/alacarte.asp
# says that Quebec east of the -63 meridian is supposed to observe
# AST, but residents as far east as Natashquan use EST/EDT, and
# residents east of Natashquan use AST.
# The Quebec department of justice writes in
# "The situation in Minganie and Basse-Côte-Nord"
# https://www.justice.gouv.qc.ca/en/department/ministre/functions-and-responsabilities/legal-time-in-quebec/the-situation-in-minganie-and-basse-cote-nord/
# that the coastal strip from just east of Natashquan to Blanc-Sablon
# observes Atlantic standard time all year round.
# This common practice was codified into law as of 2007; see Legal Time Act,
# CQLR c T-5.1 .
# For lack of better info, guess this practice began around 1970, contra to
# Shanks & Pottenger who have this region observing AST/ADT.

Zone America/Blanc-Sablon -3:48:28 -	LMT	1884
			-4:00	Canada	A%sT	1970
			-4:00	-	AST

# Cayman Is
Zone	America/Cayman	-5:25:32 -	LMT	1890     # Georgetown
			-5:07:10 -	KMT	1912 Feb # Kingston Mean Time
			-5:00	-	EST

# United States
#
# From Paul Eggert (2018-03-18):
# America/Chillicothe would be tricky, as it was a city of two-timers:
# "To prevent a constant mixup at Chillicothe, caused by the courthouse
#  clock running on central time and the city running on 'daylight saving'
#  time, a third hand was added to the dial of the courthouse clock."
# -- Ohio news in brief. The Cedarville Herald. 1920-05-21;43(21):1 (col. 5)
# https://digitalcommons.cedarville.edu/cedarville_herald/794

# Canada
Zone America/Coral_Harbour -5:32:40 -	LMT	1884
			-5:00	NT_YK	E%sT	1946
			-5:00	-	EST

# From Chris Walton (2011-12-01):
# There are two areas within the Canadian province of British Columbia
# that do not currently observe daylight saving:
# a) The Creston Valley (includes the town of Creston and surrounding area)
# b) The eastern half of the Peace River Regional District
# (includes the cities of Dawson Creek and Fort St. John)

# Earlier this year I stumbled across a detailed article about the time
# keeping history of Creston; it was written by Tammy Hardwick who is the
# manager of the Creston & District Museum. The article was written in May 2009.
# http://www.ilovecreston.com/?p=articles&t=spec&ar=260
# According to the article, Creston has not changed its clocks since June 1918.
# i.e. Creston has been stuck on UT-7 for 93 years.
# Dawson Creek, on the other hand, changed its clocks as recently as April 1972.

# Unfortunately the exact date for the time change in June 1918 remains
# unknown and will be difficult to ascertain.  I e-mailed Tammy a few months
# ago to ask if Sunday June 2 was a reasonable guess.  She said it was just
# as plausible as any other date (in June).  She also said that after writing
# the article she had discovered another time change in 1916; this is the
# subject of another article which she wrote in October 2010.
# http://www.creston.museum.bc.ca/index.php?module=comments&uop=view_comment&cm+id=56

# Here is a summary of the three clock change events in Creston's history:
# 1. 1884 or 1885: adoption of Mountain Standard Time (GMT-7)
# Exact date unknown
# 2. Oct 1916: switch to Pacific Standard Time (GMT-8)
# Exact date in October unknown; Sunday October 1 is a reasonable guess.
# 3. June 1918: switch to Pacific Daylight Time (GMT-7)
# Exact date in June unknown; Sunday June 2 is a reasonable guess.
# note 1:
# On Oct 27/1918 when daylight saving ended in the rest of Canada,
# Creston did not change its clocks.
# note 2:
# During WWII when the Federal Government legislated a mandatory clock change,
# Creston did not oblige.
# note 3:
# There is no guarantee that Creston will remain on Mountain Standard Time
# (UTC-7) forever.
# The subject was debated at least once this year by the town Council.
# http://www.bclocalnews.com/kootenay_rockies/crestonvalleyadvance/news/116760809.html

# During a period WWII, summer time (Daylight saying) was mandatory in Canada.
# In Creston, that was handled by shifting the area to PST (-8:00) then applying
# summer time to cause the offset to be -7:00, the same as it had been before
# the change.  It can be argued that the timezone abbreviation during this
# period should be PDT rather than MST, but that doesn't seem important enough
# (to anyone) to further complicate the rules.

# The transition dates (and times) are guesses.

Zone America/Creston	-7:46:04 -	LMT	1884
			-7:00	-	MST	1916 Oct 1
			-8:00	-	PST	1918 Jun 2
			-7:00	-	MST

# Curaçao
# Milne gives 4:35:46.9 for Curaçao mean time; round to nearest.
#
# From Paul Eggert (2006-03-22):
# Shanks & Pottenger say that The Bottom and Philipsburg have been at
# -4:00 since standard time was introduced on 1912-03-02; and that
# Kralendijk and Rincon used Kralendijk Mean Time (-4:33:08) from
# 1912-02-02 to 1965-01-01.  The former is dubious, since S&P also say
# Saba Island has been like Curaçao.
# This all predates our 1970 cutoff, though.
#
# By July 2007 Curaçao and St Maarten are planned to become
# associated states within the Netherlands, much like Aruba;
# Bonaire, Saba and St Eustatius would become directly part of the
# Netherlands as Kingdom Islands.  This won't affect their time zones
# though, as far as we know.
#
Zone	America/Curacao	-4:35:47 -	LMT	1912 Feb 12 # Willemstad
			-4:30	-	-0430	1965
			-4:00	-	AST
Link	America/Curacao	America/Kralendijk
Link	America/Curacao	America/Lower_Princes

# Dominica
Zone America/Dominica	-4:05:36 -	LMT	1911 Jul  1  0:01 # Roseau
			-4:00	-	AST

# Baja California
# See 'northamerica' for why this entry is here rather than there.
Zone America/Ensenada	-7:46:28 -	LMT	1922 Jan  1  0:13:32
			-8:00	-	PST	1927 Jun 10 23:00
			-7:00	-	MST	1930 Nov 16
			-8:00	-	PST	1942 Apr
			-7:00	-	MST	1949 Jan 14
			-8:00	-	PST	1996
			-8:00	Mexico	P%sT

# Grenada
Zone	America/Grenada	-4:07:00 -	LMT	1911 Jul # St George's
			-4:00	-	AST

# Guadeloupe
Zone America/Guadeloupe	-4:06:08 -	LMT	1911 Jun  8 # Pointe-à-Pitre
			-4:00	 -	AST


# Canada
#
# From Paul Eggert (2015-03-24):
# Since 1970 most of Quebec has been like Toronto; see
# America/Toronto.  However, earlier versions of the tz database
# mistakenly relied on data from Shanks & Pottenger saying that Quebec
# differed from Ontario after 1970, and the following rules and zone
# were created for most of Quebec from the incorrect Shanks &
# Pottenger data.  The post-1970 entries have been corrected, but the
# pre-1970 entries are unchecked and probably have errors.
#
Rule	Mont	1917	only	-	Mar	25	2:00	1:00	D
Rule	Mont	1917	only	-	Apr	24	0:00	0	S
Rule	Mont	1919	only	-	Mar	31	2:30	1:00	D
Rule	Mont	1919	only	-	Oct	25	2:30	0	S
Rule	Mont	1920	only	-	May	 2	2:30	1:00	D
Rule	Mont	1920	1922	-	Oct	Sun>=1	2:30	0	S
Rule	Mont	1921	only	-	May	 1	2:00	1:00	D
Rule	Mont	1922	only	-	Apr	30	2:00	1:00	D
Rule	Mont	1924	only	-	May	17	2:00	1:00	D
Rule	Mont	1924	1926	-	Sep	lastSun	2:30	0	S
Rule	Mont	1925	1926	-	May	Sun>=1	2:00	1:00	D
Rule	Mont	1927	1937	-	Apr	lastSat	24:00	1:00	D
Rule	Mont	1927	1937	-	Sep	lastSat	24:00	0	S
Rule	Mont	1938	1940	-	Apr	lastSun	0:00	1:00	D
Rule	Mont	1938	1939	-	Sep	lastSun	0:00	0	S
Rule	Mont	1946	1973	-	Apr	lastSun	2:00	1:00	D
Rule	Mont	1945	1948	-	Sep	lastSun	2:00	0	S
Rule	Mont	1949	1950	-	Oct	lastSun	2:00	0	S
Rule	Mont	1951	1956	-	Sep	lastSun	2:00	0	S
Rule	Mont	1957	1973	-	Oct	lastSun	2:00	0	S
Zone America/Montreal	-4:54:16 -	LMT	1884
			-5:00	Mont	E%sT	1918
			-5:00	Canada	E%sT	1919
			-5:00	Mont	E%sT	1942 Feb  9  2:00s
			-5:00	Canada	E%sT	1946
			-5:00	Mont	E%sT	1974
			-5:00	Canada	E%sT

# Montserrat
# From Paul Eggert (2006-03-22):
# In 1995 volcanic eruptions forced evacuation of Plymouth, the capital.
# world.gazetteer.com says Cork Hill is the most populous location now.
Zone America/Montserrat	-4:08:52 -	LMT	1911 Jul  1  0:01 # Cork Hill
			-4:00	-	AST

# The Bahamas
#
# For 1899 Milne gives -5:09:29.5; round that.
#
# From P Chan (2020-11-27, corrected on 2020-12-02):
# There were two periods of DST observed in 1942-1945: 1942-05-01
# midnight to 1944-12-31 midnight and 1945-02-01 to 1945-10-17 midnight.
# "midnight" should mean 24:00 from the context.
#
# War Time Order 1942 [1942-05-01] and War Time (No. 2) Order 1942  [1942-09-29]
# Appendix to the Statutes of 7 George VI. and the Year 1942. p 34, 43
# https://books.google.com/books?id=5rlNAQAAIAAJ&pg=RA3-PA34
# https://books.google.com/books?id=5rlNAQAAIAAJ&pg=RA3-PA43
#
# War Time Order 1943 [1943-03-31] and War Time Order 1944 [1943-12-29]
# Appendix to the Statutes of 8 George VI. and the Year 1943. p 9-10, 28-29
# https://books.google.com/books?id=5rlNAQAAIAAJ&pg=RA4-PA9
# https://books.google.com/books?id=5rlNAQAAIAAJ&pg=RA4-PA28
#
# War Time Order 1945 [1945-01-31] and the Order which revoke War Time Order
# 1945 [1945-10-16] Appendix to the Statutes of 9 George VI. and the Year
# 1945. p 160, 247-248
# https://books.google.com/books?id=5rlNAQAAIAAJ&pg=RA6-PA160
# https://books.google.com/books?id=5rlNAQAAIAAJ&pg=RA6-PA247
#
# From Sue Williams (2006-12-07):
# The Bahamas announced about a month ago that they plan to change their DST
# rules to sync with the U.S. starting in 2007....
# http://www.jonesbahamas.com/?c=45&a=10412

Rule	Bahamas	1942	only	-	May	 1	24:00	1:00	W
Rule	Bahamas	1944	only	-	Dec	31	24:00	0	S
Rule	Bahamas	1945	only	-	Feb	 1	0:00	1:00	W
Rule	Bahamas	1945	only	-	Aug	14	23:00u	1:00	P # Peace
Rule	Bahamas	1945	only	-	Oct	17	24:00	0	S
Rule	Bahamas	1964	1975	-	Oct	lastSun	2:00	0	S
Rule	Bahamas	1964	1975	-	Apr	lastSun	2:00	1:00	D

Zone	America/Nassau	-5:09:30 -	LMT	1912 Mar 2
			-5:00	Bahamas	E%sT	1976
			-5:00	US	E%sT

# United States
#
# From Paul Eggert (2018-03-18):
# America/Palm_Springs would be tricky, as it kept two sets of clocks
# in 1946/7.  See the following notes.
#
# From Steve Allen (2018-01-19):
# The shadow of Mt. San Jacinto brings darkness very early in the winter
# months.  In 1946 the chamber of commerce decided to put the clocks of Palm
# Springs forward by an hour in the winter.
# https://www.desertsun.com/story/life/2017/12/27/palm-springs-struggle-daylight-savings-time-and-idea-sun-time/984416001/
# Desert Sun, Number 18, 1 November 1946
# https://cdnc.ucr.edu/cgi-bin/cdnc?a=d&d=DS19461101
# has proposal for meeting on front page and page 21.
# Desert Sun, Number 19, 5 November 1946
# https://cdnc.ucr.edu/cgi-bin/cdnc?a=d&d=DS19461105
# reports that Sun Time won at the meeting on front page and page 5.
# Desert Sun, Number 37, 7 January 1947
# https://cdnc.ucr.edu/cgi-bin/cdnc?a=d&d=DS19470107.2.12
# front page reports request to abandon Sun Time and page 7 notes a "class war".
# Desert Sun, Number 38, 10 January 1947
# https://cdnc.ucr.edu/cgi-bin/cdnc?a=d&d=DS19470110
# front page reports on end.

# Trinidad and Tobago
Zone America/Port_of_Spain -4:06:04 -	LMT	1912 Mar 2
			-4:00	-	AST
Link America/Port_of_Spain America/Marigot
Link America/Port_of_Spain America/St_Barthelemy

# Argentina
# This entry was intended for the following areas, but has been superseded by
# more detailed zones.
# Santa Fe (SF), Entre Ríos (ER), Corrientes (CN), Misiones (MN), Chaco (CC),
# Formosa (FM), La Pampa (LP), Chubut (CH)
Zone America/Rosario	-4:02:40 -	LMT	1894 Nov
			-4:16:44 -	CMT	1920 May
			-4:00	-	-04	1930 Dec
			-4:00	Arg	-04/-03	1969 Oct  5
			-3:00	Arg	-03/-02	1991 Jul
			-3:00	-	-03	1999 Oct  3  0:00
			-4:00	Arg	-04/-03	2000 Mar  3  0:00
			-3:00	-	-03

# St Kitts-Nevis
Zone America/St_Kitts	-4:10:52 -	LMT	1912 Mar  2 # Basseterre
			-4:00	-	AST

# St Lucia
Zone America/St_Lucia	-4:04:00 -	LMT	1890 # Castries
			-4:04:00 -	CMT	1912 # Castries Mean Time
			-4:00	-	AST

# US Virgin Is
Zone America/St_Thomas	-4:19:44 -	LMT	1911 Jul # Charlotte Amalie
			-4:00	-	AST
Link America/St_Thomas America/Virgin

# St Vincent and the Grenadines
Zone America/St_Vincent	-4:04:56 -	LMT	1890 # Kingstown
			-4:04:56 -	KMT	1912 # Kingstown Mean Time
			-4:00	-	AST

# British Virgin Is
Zone America/Tortola	-4:18:28 -	LMT	1911 Jul # Road Town
			-4:00	-	AST

# Dumont d'Urville, Île des Pétrels, -6640+14001, since 1956-11
#  (2005-12-05)
#
# Another base at Port-Martin, 50km east, began operation in 1947.
# It was destroyed by fire on 1952-01-14.
#
Zone Antarctica/DumontDUrville 0 -	-00	1947
			10:00	-	+10	1952 Jan 14
			0	-	-00	1956 Nov
			10:00	-	+10

# McMurdo, Ross Island, since 1955-12
Zone Antarctica/McMurdo	0	-	-00	1956
			12:00	NZ	NZ%sT
Link Antarctica/McMurdo Antarctica/South_Pole

# Syowa, Antarctica
#
# From Hideyuki Suzuki (1999-02-06):
# In all Japanese stations, +0300 is used as the standard time.
#
# Syowa station, which is the first antarctic station of Japan,
# was established on 1957-01-29.  Since Syowa station is still the main
# station of Japan, it's appropriate for the principal location.
# See:
# NIPR Antarctic Research Activities (1999-08-17)
# http://www.nipr.ac.jp/english/ara01.html
Zone Antarctica/Syowa	0	-	-00	1957 Jan 29
			3:00	-	+03

# Vostok, Antarctica
#
# Vostok, since 1957-12-16, temporarily closed 1994-02/1994-11
# From Craig Mundell (1994-12-15):
# http://quest.arc.nasa.gov/antarctica/QA/computers/Directions,Time,ZIP
# Vostok, which is one of the Russian stations, is set on the same
# time as Moscow, Russia.
#
# From Lee Hotz (2001-03-08):
# I queried the folks at Columbia who spent the summer at Vostok and this is
# what they had to say about time there:
# "in the US Camp (East Camp) we have been on New Zealand (McMurdo)
# time, which is 12 hours ahead of GMT. The Russian Station Vostok was
# 6 hours behind that (although only 2 miles away, i.e. 6 hours ahead
# of GMT). This is a time zone I think two hours east of Moscow. The
# natural time zone is in between the two: 8 hours ahead of GMT."
#
# From Paul Eggert (2001-05-04):
# This seems to be hopelessly confusing, so I asked Lee Hotz about it
# in person.  He said that some Antarctic locations set their local
# time so that noon is the warmest part of the day, and that this
# changes during the year and does not necessarily correspond to mean
# solar noon.  So the Vostok time might have been whatever the clocks
# happened to be during their visit.  So we still don't really know what time
# it is at Vostok.  But we'll guess +06.
#
Zone Antarctica/Vostok	0	-	-00	1957 Dec 16
			6:00	-	+06

# Yemen
# Milne says 2:59:54 was the meridian of the saluting battery at Aden,
# and that Yemen was at 1:55:56, the meridian of the Hagia Sophia.
Zone	Asia/Aden	2:59:54	-	LMT	1950
			3:00	-	+03

# Bahrain
#
# From Paul Eggert (2020-07-23):
# Most of this data comes from:
# Stewart A. Why Gulf Standard Time is far from standard: the fascinating story
# behind the time zone's invention. The National (Abu Dhabi). 2020-07-22.
# https://www.thenational.ae/arts-culture/why-gulf-standard-time-is-far-from-standard-the-fascinating-story-behind-the-time-zone-s-invention-1.1052589
# Stewart writes that before 1941 some companies in Bahrain were at +0330 and
# others at +0323.  Reginald George Alban, a British political agent based in
# Manama, worked to standardize this, and from 1941-07-20 Bahrain was at
# +0330.  However, BOAC asked that clocks be moved to gain more light at day's
# end, so Bahrain switched to +04 on 1944-01-01.
#
# Re the 1941 transition, Stewart privately sent me this citation:
# "File 16/53 Enquiries Re: Calculation of Local Time", British Library: India
# Office Records and Private Papers, IOR/R/15/2/1564, in Qatar Digital Library
# https://www.qdl.qa/archive/81055/vdc_100000000282.0x00012b
# It says there was no real standard in Bahrain before 1941-07-20.
# +0330 was used by steamers of the British India Co, by Petroleum Concessions
# and by Cable & Wireless; +0323 was used by the Eastern Bank Ltd, BOAC, and
# Bahrein Petroleum (Bapco), and California Arabian Standard Oil Co (Casoc)
# adopted DST effective 1941-05-24.  Alban suggested adopting DST, R.B. Coomb
# of C&W countersuggested +0330, and although C.A. Rodstrom of Casoc (formerly
# of Bapco) stated that Bahrain had formerly used +0330 before Bapco arrived
# but Bapco switched to +0323 because of "constant confusion", the consensus
# was +0330.  The government adopted +0330 in 1941-07-20 and companies seem to
# have switched by 08-01.  No time of day was given for the 1940s transitions.
Zone	Asia/Bahrain	3:22:20 -	LMT	1941 Jul 20  # Manamah
			3:30	-	+0330	1944 Jan  1
			4:00	-	+04	1972 Jun
			3:00	-	+03

# Brunei
Zone	Asia/Brunei	7:39:40 -	LMT	1926 Mar # Bandar Seri Begawan
			7:30	-	+0730	1933
			8:00	-	+08

# India
#
# From Paul Eggert (2014-09-06):
# The 1876 Report of the Secretary of the [US] Navy, p 305 says that Madras
# civil time was 5:20:57.3.
#
# From Paul Eggert (2014-08-21):
# In tomorrow's The Hindu, Nitya Menon reports that India had two civil time
# zones starting in 1884, one in Bombay and one in Calcutta, and that railways
# used a third time zone based on Madras time (80° 18' 30" E).  Also,
# in 1881 Bombay briefly switched to Madras time, but switched back.  See:
# http://www.thehindu.com/news/cities/chennai/madras-375-when-madras-clocked-the-time/article6339393.ece
#Zone	  Asia/Chennai  [not enough info to complete]

# China
# Long-shu Time (probably due to Long and Shu being two names of that area)
# Guangxi, Guizhou, Hainan, Ningxia, Sichuan, Shaanxi, and Yunnan;
# most of Gansu; west Inner Mongolia; west Qinghai; and the Guangdong
# counties Deqing, Enping, Kaiping, Luoding, Taishan, Xinxing,
# Yangchun, Yangjiang, Yu'nan, and Yunfu.
Zone	Asia/Chongqing	7:06:20	-	LMT	1928     # or Chungking
			7:00	-	+07	1980 May
			8:00	PRC	C%sT
Link Asia/Chongqing Asia/Chungking

# Vietnam
# From Paul Eggert (2014-10-13):
# See Asia/Ho_Chi_Minh for the source for this data.
# Trần's book says the 1954-55 transition to 07:00 in Hanoi was in
# October 1954, with exact date and time unspecified.
Zone	Asia/Hanoi	7:03:24 -	LMT	1906 Jul  1
			7:06:30	-	PLMT	1911 May  1
			7:00	-	+07	1942 Dec 31 23:00
			8:00	-	+08	1945 Mar 14 23:00
			9:00	-	+09	1945 Sep  2
			7:00	-	+07	1947 Apr  1
			8:00	-	+08	1954 Oct
			7:00	-	+07

# China
# Changbai Time ("Long-white Time", Long-white = Heilongjiang area)
# Heilongjiang (except Mohe county), Jilin
Zone	Asia/Harbin	8:26:44	-	LMT	1928     # or Haerbin
			8:30	-	+0830	1932 Mar
			8:00	-	CST	1940
			9:00	-	+09	1966 May
			8:30	-	+0830	1980 May
			8:00	PRC	C%sT

# far west China
Zone	Asia/Kashgar	5:03:56	-	LMT	1928     # or Kashi or Kaxgar
			5:30	-	+0530	1940
			5:00	-	+05	1980 May
			8:00	PRC	C%sT

# peninsular Malaysia
# taken from Mok Ly Yng (2003-10-30)
# https://web.archive.org/web/20190822231045/http://www.math.nus.edu.sg/~mathelmr/teaching/timezone.html
# This agrees with Singapore since 1905-06-01.
Zone Asia/Kuala_Lumpur	6:46:46 -	LMT	1901 Jan  1
			6:55:25	-	SMT	1905 Jun  1 # Singapore M.T.
			7:00	-	+07	1933 Jan  1
			7:00	0:20	+0720	1936 Jan  1
			7:20	-	+0720	1941 Sep  1
			7:30	-	+0730	1942 Feb 16
			9:00	-	+09	1945 Sep 12
			7:30	-	+0730	1982 Jan  1
			8:00	-	+08

# Kuwait
Zone	Asia/Kuwait	3:11:56 -	LMT	1950
			3:00	-	+03


# Oman
# Milne says 3:54:24 was the meridian of the Muscat Tidal Observatory.
Zone	Asia/Muscat	3:54:24 -	LMT	1920
			4:00	-	+04

# India
# From Paul Eggert (2014-08-11), after a heads-up from Stephen Colebourne:
# According to a Portuguese decree (1911-05-26)
# https://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf
# Portuguese India switched to UT +05 on 1912-01-01.
#Zone	Asia/Panaji	[not enough info to complete]

# Cambodia

# From an adoptive daughter of the late Cambodian ruler Prince Sihanouk,
# via Alois Treindl (2019-08-08):
#
# King Sihanouk said that, during the Japanese occupation, starting with
# what historians refer to as "le coup de force du 9 mars 1945", Cambodia,
# like the entire French Indochina, used Tokyo time zone. After Japan
# surrendered, 2 September 1945, Cambodia fell under French rule again and
# adopted Hanoi time zone again.
#
# However, on 7 January 1946, Sihanouk and Tioulong managed to obtain a
# status of "internal autonomy" from the government of Charles de Gaulle.
# Although many fields remained under the administration of the French
# (customs, taxes, justice, defence, foreign affairs, etc.), the Cambodian
# administration was responsible for religious matters and traditional
# celebrations, which included our calendar and time.  The time zone was GMT
# + 7 and _no_ DST was applied.
#
# After Sihanouk and Tioulong achieved full independence, on 9 November 1953,
# GMT + 7 was maintained.

# From Paul Eggert (2019-08-26):
# See Asia/Ho_Chi_Minh for the source for most of rest of this data.

Zone	Asia/Phnom_Penh	6:59:40 -	LMT	1906 Jul  1
			7:06:30	-	PLMT	1911 May  1
			7:00	-	+07	1942 Dec 31 23:00
			8:00	-	+08	1945 Mar 14 23:00
			9:00	-	+09	1945 Sep  2
			7:00	-	+07

# Israel
Zone	Asia/Tel_Aviv	2:19:04 -	LMT	1880
			2:21	-	JMT	1918
			2:00	Zion	I%sT

# Laos
# From Paul Eggert (2014-10-11):
# See Asia/Ho_Chi_Minh for the source for most of this data.
# Trần's book says that Laos reverted to UT +07 on 1955-04-15.
# Also, guess that Laos reverted to +07 on 1945-09-02, when Vietnam did;
# this is probably wrong but it's better than guessing no transition.
Zone	Asia/Vientiane	6:50:24 -	LMT	1906 Jul  1
			7:06:30	-	PLMT	1911 May  1
			7:00	-	+07	1942 Dec 31 23:00
			8:00	-	+08	1945 Mar 14 23:00
			9:00	-	+09	1945 Sep  2
			7:00	-	+07	1947 Apr  1
			8:00	-	+08	1955 Apr 15
			7:00	-	+07

# Jan Mayen
# From Whitman:
Zone Atlantic/Jan_Mayen	-1:00	-	-01

# Iceland
#
# From Adam David (1993-11-06):
# The name of the timezone in Iceland for system / mail / news purposes is GMT.
#
# (1993-12-05):
# This material is paraphrased from the 1988 edition of the University of
# Iceland Almanak.
#
# From January 1st, 1908 the whole of Iceland was standardised at 1 hour
# behind GMT. Previously, local mean solar time was used in different parts
# of Iceland, the almanak had been based on Reykjavík mean solar time which
# was 1 hour and 28 minutes behind GMT.
#
# "first day of winter" referred to [below] means the first day of the 26 weeks
# of winter, according to the old icelandic calendar that dates back to the
# time the norsemen first settled Iceland.  The first day of winter is always
# Saturday, but is not dependent on the Julian or Gregorian calendars.
#
# (1993-12-10):
# I have a reference from the Oxford Icelandic-English dictionary for the
# beginning of winter, which ties it to the ecclesiastical calendar (and thus
# to the julian/gregorian calendar) over the period in question.
#	the winter begins on the Saturday next before St. Luke's day
#	(old style), or on St. Luke's day, if a Saturday.
# St. Luke's day ought to be traceable from ecclesiastical sources. "old style"
# might be a reference to the Julian calendar as opposed to Gregorian, or it
# might mean something else (???).
#
# From Paul Eggert (2014-11-22):
# The information below is taken from the 1988 Almanak; see
# http://www.almanak.hi.is/klukkan.html
#
Rule	Iceland	1917	1919	-	Feb	19	23:00	1:00	-
Rule	Iceland	1917	only	-	Oct	21	 1:00	0	-
Rule	Iceland	1918	1919	-	Nov	16	 1:00	0	-
Rule	Iceland	1921	only	-	Mar	19	23:00	1:00	-
Rule	Iceland	1921	only	-	Jun	23	 1:00	0	-
Rule	Iceland	1939	only	-	Apr	29	23:00	1:00	-
Rule	Iceland	1939	only	-	Oct	29	 2:00	0	-
Rule	Iceland	1940	only	-	Feb	25	 2:00	1:00	-
Rule	Iceland	1940	1941	-	Nov	Sun>=2	 1:00s	0	-
Rule	Iceland	1941	1942	-	Mar	Sun>=2	 1:00s	1:00	-
# 1943-1946 - first Sunday in March until first Sunday in winter
Rule	Iceland	1943	1946	-	Mar	Sun>=1	 1:00s	1:00	-
Rule	Iceland	1942	1948	-	Oct	Sun>=22	 1:00s	0	-
# 1947-1967 - first Sunday in April until first Sunday in winter
Rule	Iceland	1947	1967	-	Apr	Sun>=1	 1:00s	1:00	-
# 1949 and 1967 Oct transitions delayed by 1 week
Rule	Iceland	1949	only	-	Oct	30	 1:00s	0	-
Rule	Iceland	1950	1966	-	Oct	Sun>=22	 1:00s	0	-
Rule	Iceland	1967	only	-	Oct	29	 1:00s	0	-

Zone Atlantic/Reykjavik	-1:28	-	LMT	1908
			-1:00	Iceland	-01/+00	1968 Apr  7  1:00s
			 0:00	-	GMT
Link Atlantic/Reykjavik Iceland

# St Helena
Zone Atlantic/St_Helena	-0:22:48 -	LMT	1890 # Jamestown
			-0:22:48 -	JMT	1951 # Jamestown Mean Time
			 0:00	-	GMT

# King Island
Zone Australia/Currie	9:35:28	-	LMT	1895 Sep
			10:00	AT	AE%sT	1919 Oct 24
			10:00	Aus	AE%sT	1968 Oct 15
			10:00	AT	AE%sT


# Netherlands

# Howse writes that the Netherlands' railways used GMT between 1892 and 1940,
# but for other purposes the Netherlands used Amsterdam mean time.

# However, Robert H. van Gent writes (2001-04-01):
# Howse's statement is only correct up to 1909. From 1909-05-01 (00:00:00
# Amsterdam mean time) onwards, the whole of the Netherlands (including
# the Dutch railways) was required by law to observe Amsterdam mean time
# (19 minutes 32.13 seconds ahead of GMT). This had already been the
# common practice (except for the railways) for many decades but it was
# not until 1909 when the Dutch government finally defined this by law.
# On 1937-07-01 this was changed to 20 minutes (exactly) ahead of GMT and
# was generally known as Dutch Time ("Nederlandse Tijd").
#
# (2001-04-08):
# 1892-05-01 was the date when the Dutch railways were by law required to
# observe GMT while the remainder of the Netherlands adhered to the common
# practice of following Amsterdam mean time.
#
# (2001-04-09):
# In 1835 the authorities of the province of North Holland requested the
# municipal authorities of the towns and cities in the province to observe
# Amsterdam mean time but I do not know in how many cases this request was
# actually followed.
#
# From 1852 onwards the Dutch telegraph offices were by law required to
# observe Amsterdam mean time. As the time signals from the observatory of
# Leiden were also distributed by the telegraph system, I assume that most
# places linked up with the telegraph (and railway) system automatically
# adopted Amsterdam mean time.
#
# Although the early Dutch railway companies initially observed a variety
# of times, most of them had adopted Amsterdam mean time by 1858 but it
# was not until 1866 when they were all required by law to observe
# Amsterdam mean time.

# The data entries before 1945 are taken from
# https://www.staff.science.uu.nl/~gent0113/wettijd/wettijd.htm

# From Paul Eggert (2021-05-09):
# I invented the abbreviations AMT for Amsterdam Mean Time and NST for
# Netherlands Summer Time, used in the Netherlands from 1835 to 1937.

Rule	Neth	1916	only	-	May	 1	0:00	1:00	NST	# Netherlands Summer Time
Rule	Neth	1916	only	-	Oct	 1	0:00	0	AMT	# Amsterdam Mean Time
Rule	Neth	1917	only	-	Apr	16	2:00s	1:00	NST
Rule	Neth	1917	only	-	Sep	17	2:00s	0	AMT
Rule	Neth	1918	1921	-	Apr	Mon>=1	2:00s	1:00	NST
Rule	Neth	1918	1921	-	Sep	lastMon	2:00s	0	AMT
Rule	Neth	1922	only	-	Mar	lastSun	2:00s	1:00	NST
Rule	Neth	1922	1936	-	Oct	Sun>=2	2:00s	0	AMT
Rule	Neth	1923	only	-	Jun	Fri>=1	2:00s	1:00	NST
Rule	Neth	1924	only	-	Mar	lastSun	2:00s	1:00	NST
Rule	Neth	1925	only	-	Jun	Fri>=1	2:00s	1:00	NST
# From 1926 through 1939 DST began 05-15, except that it was delayed by a week
# in years when 05-15 fell in the Pentecost weekend.
Rule	Neth	1926	1931	-	May	15	2:00s	1:00	NST
Rule	Neth	1932	only	-	May	22	2:00s	1:00	NST
Rule	Neth	1933	1936	-	May	15	2:00s	1:00	NST
Rule	Neth	1937	only	-	May	22	2:00s	1:00	NST
Rule	Neth	1937	only	-	Jul	 1	0:00	1:00	S
Rule	Neth	1937	1939	-	Oct	Sun>=2	2:00s	0	-
Rule	Neth	1938	1939	-	May	15	2:00s	1:00	S
Rule	Neth	1945	only	-	Apr	 2	2:00s	1:00	S
Rule	Neth	1945	only	-	Sep	16	2:00s	0	-
		#STDOFF	0:19:32.13
Zone Europe/Amsterdam	0:19:32 -	LMT	1835
			0:19:32	Neth	%s	1937 Jul  1
			0:20	Neth +0020/+0120 1940 May 16  0:00
			1:00	C-Eur	CE%sT	1945 Apr  2  2:00
			1:00	Neth	CE%sT	1977
			1:00	EU	CE%sT


# Northern Ireland
Zone	Europe/Belfast	-0:23:40 -	LMT	1880 Aug  2
			-0:25:21 -	DMT	1916 May 21  2:00
						# DMT = Dublin/Dunsink MT
			-0:25:21 1:00	IST	1916 Oct  1  2:00s
						# IST = Irish Summer Time
			 0:00	GB-Eire	%s	1968 Oct 27
			 1:00	-	BST	1971 Oct 31  2:00u
			 0:00	GB-Eire	%s	1996
			 0:00	EU	GMT/BST


# Denmark

# From Jesper Nørgaard Welen (2005-04-26):
# the law [introducing standard time] was in effect from 1894-01-01....
# The page https://www.retsinformation.dk/eli/lta/1893/83
# confirms this, and states that the law was put forth 1893-03-29.
#
# The EU [actually, EEC and Euratom] treaty with effect from 1973:
# https://www.retsinformation.dk/eli/lta/1972/21100
#
# This provoked a new law from 1974 to make possible summer time changes
# in subsequent decrees with the law
# https://www.retsinformation.dk/eli/lta/1974/223
#
# It seems however that no decree was set forward until 1980.  I have
# not found any decree, but in another related law, the effecting DST
# changes are stated explicitly to be from 1980-04-06 at 02:00 to
# 1980-09-28 at 02:00.  If this is true, this differs slightly from
# the EU rule in that DST runs to 02:00, not 03:00.  We don't know
# when Denmark began using the EU rule correctly, but we have only
# confirmation of the 1980-time, so I presume it was correct in 1981:
# The law is about the management of the extra hour, concerning
# working hours reported and effect on obligatory-rest rules (which
# was suspended on that night):
# https://web.archive.org/web/20140104053304/https://www.retsinformation.dk/Forms/R0710.aspx?id=60267

# From Jesper Nørgaard Welen (2005-06-11):
# The Herning Folkeblad (1980-09-26) reported that the night between
# Saturday and Sunday the clock is set back from three to two.

# From Paul Eggert (2005-06-11):
# Hence the "02:00" of the 1980 law refers to standard time, not
# wall-clock time, and so the EU rules were in effect in 1980.

Rule	Denmark	1916	only	-	May	14	23:00	1:00	S
Rule	Denmark	1916	only	-	Sep	30	23:00	0	-
Rule	Denmark	1940	only	-	May	15	 0:00	1:00	S
Rule	Denmark	1945	only	-	Apr	 2	 2:00s	1:00	S
Rule	Denmark	1945	only	-	Aug	15	 2:00s	0	-
Rule	Denmark	1946	only	-	May	 1	 2:00s	1:00	S
Rule	Denmark	1946	only	-	Sep	 1	 2:00s	0	-
Rule	Denmark	1947	only	-	May	 4	 2:00s	1:00	S
Rule	Denmark	1947	only	-	Aug	10	 2:00s	0	-
Rule	Denmark	1948	only	-	May	 9	 2:00s	1:00	S
Rule	Denmark	1948	only	-	Aug	 8	 2:00s	0	-
#
Zone Europe/Copenhagen	 0:50:20 -	LMT	1890
			 0:50:20 -	CMT	1894 Jan  1 # Copenhagen MT
			 1:00	Denmark	CE%sT	1942 Nov  2  2:00s
			 1:00	C-Eur	CE%sT	1945 Apr  2  2:00
			 1:00	Denmark	CE%sT	1980
			 1:00	EU	CE%sT

# Guernsey
# Data from Joseph S. Myers
# https://mm.icann.org/pipermail/tz/2013-September/019883.html
# References to be added
# LMT is for Town Church, St. Peter Port, 49° 27' 17" N, 2° 32' 10" W.
Zone	Europe/Guernsey	-0:10:09 -	LMT	1913 Jun 18
			 0:00	GB-Eire	%s	1940 Jul  2
			 1:00	C-Eur	CE%sT	1945 May  8
			 0:00	GB-Eire	%s	1968 Oct 27
			 1:00	-	BST	1971 Oct 31  2:00u
			 0:00	GB-Eire	%s	1996
			 0:00	EU	GMT/BST

# Isle of Man
#
# From Lester Caine (2013-09-04):
# The Isle of Man legislation is now on-line at
# , starting with the original Statutory
# Time Act in 1883 and including additional confirmation of some of
# the dates of the 'Summer Time' orders originating at
# Westminster.  There is a little uncertainty as to the starting date
# of the first summer time in 1916 which may have been announced a
# couple of days late.  There is still a substantial number of
# documents to work through, but it is thought that every GB change
# was also implemented on the island.
#
# AT4 of 1883 - The Statutory Time et cetera Act 1883 -
# LMT Location - 54.1508N -4.4814E - Tynwald Hill ( Manx parliament )
Zone Europe/Isle_of_Man	-0:17:55 -	LMT	1883 Mar 30  0:00s
			 0:00	GB-Eire	%s	1968 Oct 27
			 1:00	-	BST	1971 Oct 31  2:00u
			 0:00	GB-Eire	%s	1996
			 0:00	EU	GMT/BST

# Jersey
# Data from Joseph S. Myers
# https://mm.icann.org/pipermail/tz/2013-September/019883.html
# References to be added
# LMT is for Parish Church, St. Helier, 49° 11' 0.57" N, 2° 6' 24.33" W.
Zone	Europe/Jersey	-0:08:26 -	LMT	1898 Jun 11 16:00u
			 0:00	GB-Eire	%s	1940 Jul  2
			 1:00	C-Eur	CE%sT	1945 May  8
			 0:00	GB-Eire	%s	1968 Oct 27
			 1:00	-	BST	1971 Oct 31  2:00u
			 0:00	GB-Eire	%s	1996
			 0:00	EU	GMT/BST

# Slovenia
Zone Europe/Ljubljana	0:58:04	-	LMT	1884
			1:00	-	CET	1941 Apr 18 23:00
			1:00	C-Eur	CE%sT	1945 May  8  2:00s
			1:00	1:00	CEST	1945 Sep 16  2:00s
			1:00	-	CET	1982 Nov 27
			1:00	EU	CE%sT


# Luxembourg

# Whitman disagrees with most of these dates in minor ways;
# go with Shanks & Pottenger.
Rule	Lux	1916	only	-	May	14	23:00	1:00	S
Rule	Lux	1916	only	-	Oct	 1	 1:00	0	-
Rule	Lux	1917	only	-	Apr	28	23:00	1:00	S
Rule	Lux	1917	only	-	Sep	17	 1:00	0	-
Rule	Lux	1918	only	-	Apr	Mon>=15	 2:00s	1:00	S
Rule	Lux	1918	only	-	Sep	Mon>=15	 2:00s	0	-
Rule	Lux	1919	only	-	Mar	 1	23:00	1:00	S
Rule	Lux	1919	only	-	Oct	 5	 3:00	0	-
Rule	Lux	1920	only	-	Feb	14	23:00	1:00	S
Rule	Lux	1920	only	-	Oct	24	 2:00	0	-
Rule	Lux	1921	only	-	Mar	14	23:00	1:00	S
Rule	Lux	1921	only	-	Oct	26	 2:00	0	-
Rule	Lux	1922	only	-	Mar	25	23:00	1:00	S
Rule	Lux	1922	only	-	Oct	Sun>=2	 1:00	0	-
Rule	Lux	1923	only	-	Apr	21	23:00	1:00	S
Rule	Lux	1923	only	-	Oct	Sun>=2	 2:00	0	-
Rule	Lux	1924	only	-	Mar	29	23:00	1:00	S
Rule	Lux	1924	1928	-	Oct	Sun>=2	 1:00	0	-
Rule	Lux	1925	only	-	Apr	 5	23:00	1:00	S
Rule	Lux	1926	only	-	Apr	17	23:00	1:00	S
Rule	Lux	1927	only	-	Apr	 9	23:00	1:00	S
Rule	Lux	1928	only	-	Apr	14	23:00	1:00	S
Rule	Lux	1929	only	-	Apr	20	23:00	1:00	S

Zone Europe/Luxembourg	0:24:36 -	LMT	1904 Jun
			1:00	Lux	CE%sT	1918 Nov 25
			0:00	Lux	WE%sT	1929 Oct  6  2:00s
			0:00	Belgium	WE%sT	1940 May 14  3:00
			1:00	C-Eur	WE%sT	1944 Sep 18  3:00
			1:00	Belgium	CE%sT	1977
			1:00	EU	CE%sT

# Monaco
#
# From Michael Deckers (2020-06-12):
# In the "Journal de Monaco" of 1892-05-24, online at
# https://journaldemonaco.gouv.mc/var/jdm/storage/original/application/b1c67c12c5af11b41ea888fb048e4fe8.pdf
# we read: ...
#  [In virtue of a Sovereign Ordinance of the May 13 of the current [year],
#   legal time in the Principality will be set to, from the date of June 1,
#   1892 onwards, to the meridian of Paris, as in France.]
# In the "Journal de Monaco" of 1911-03-28, online at
# https://journaldemonaco.gouv.mc/var/jdm/storage/original/application/de74ffb7db53d4f599059fe8f0ed482a.pdf
# we read an ordinance of 1911-03-16: ...
#  [Legal time in the Principality will be set, from the date of promulgation
#   of the present ordinance, to legal time in France....  Consequently, legal
#   time will be retarded by 9 minutes and 21 seconds.]
#
Zone	Europe/Monaco	0:29:32 -	LMT	1892 Jun  1
			0:09:21	-	PMT	1911 Mar 29 # Paris Mean Time
			0:00	France	WE%sT	1945 Sep 16  3:00
			1:00	France	CE%sT	1977
			1:00	EU	CE%sT


# Norway

# http://met.no/met/met_lex/q_u/sommertid.html (2004-01) agrees with Shanks &
# Pottenger.
Rule	Norway	1916	only	-	May	22	1:00	1:00	S
Rule	Norway	1916	only	-	Sep	30	0:00	0	-
Rule	Norway	1945	only	-	Apr	 2	2:00s	1:00	S
Rule	Norway	1945	only	-	Oct	 1	2:00s	0	-
Rule	Norway	1959	1964	-	Mar	Sun>=15	2:00s	1:00	S
Rule	Norway	1959	1965	-	Sep	Sun>=15	2:00s	0	-
Rule	Norway	1965	only	-	Apr	25	2:00s	1:00	S

Zone	Europe/Oslo	0:43:00 -	LMT	1895 Jan  1
			1:00	Norway	CE%sT	1940 Aug 10 23:00
			1:00	C-Eur	CE%sT	1945 Apr  2  2:00
			1:00	Norway	CE%sT	1980
			1:00	EU	CE%sT
Link	Europe/Oslo	Arctic/Longyearbyen
#PACKRATLIST zone.tab Link Europe/Oslo Atlantic/Jan_Mayen

# Bosnia and Herzegovina
Zone	Europe/Sarajevo	1:13:40	-	LMT	1884
			1:00	-	CET	1941 Apr 18 23:00
			1:00	C-Eur	CE%sT	1945 May  8  2:00s
			1:00	1:00	CEST	1945 Sep 16  2:00s
			1:00	-	CET	1982 Nov 27
			1:00	EU	CE%sT

# North Macedonia
Zone	Europe/Skopje	1:25:44	-	LMT	1884
			1:00	-	CET	1941 Apr 18 23:00
			1:00	C-Eur	CE%sT	1945 May  8  2:00s
			1:00	1:00	CEST	1945 Sep 16  2:00s
			1:00	-	CET	1982 Nov 27
			1:00	EU	CE%sT


# Sweden

# From Ivan Nilsson (2001-04-13), superseding Shanks & Pottenger:
#
# The law "Svensk författningssamling 1878, no 14" about standard time in 1879:
# From the beginning of 1879 (that is 01-01 00:00) the time for all
# places in the country is "the mean solar time for the meridian at
# three degrees, or twelve minutes of time, to the west of the
# meridian of the Observatory of Stockholm".  The law is dated 1878-05-31.
#
# The observatory at that time had the meridian 18° 03' 30"
# eastern longitude = 01:12:14 in time.  Less 12 minutes gives the
# national standard time as 01:00:14 ahead of GMT....
#
# About the beginning of CET in Sweden. The lawtext ("Svensk
# författningssamling 1899, no 44") states, that "from the beginning
# of 1900... ... the same as the mean solar time for the meridian at
# the distance of one hour of time from the meridian of the English
# observatory at Greenwich, or at 12 minutes 14 seconds to the west
# from the meridian of the Observatory of Stockholm". The law is dated
# 1899-06-16.  In short: At 1900-01-01 00:00:00 the new standard time
# in Sweden is 01:00:00 ahead of GMT.
#
# 1916: The lawtext ("Svensk författningssamling 1916, no 124") states
# that "1916-05-15 is considered to begin one hour earlier". It is
# pretty obvious that at 05-14 23:00 the clocks are set to 05-15 00:00....
# Further the law says, that "1916-09-30 is considered to end one hour later".
#
# The laws regulating [DST] are available on the site of the Swedish
# Parliament beginning with 1985 - the laws regulating 1980/1984 are
# not available on the site (to my knowledge they are only available
# in Swedish):  (type
# "sommartid" without the quotes in the field "Fritext" and then click
# the Sök-button).
#
# (2001-05-13):
#
# I have now found a newspaper stating that at 1916-10-01 01:00
# summertime the church-clocks etc were set back one hour to show
# 1916-10-01 00:00 standard time.  The article also reports that some
# people thought the switch to standard time would take place already
# at 1916-10-01 00:00 summer time, but they had to wait for another
# hour before the event took place.
#
# Source: The newspaper "Dagens Nyheter", 1916-10-01, page 7 upper left.

# An extra-special abbreviation style is SET for Swedish Time (svensk
# normaltid) 1879-1899, 3° west of the Stockholm Observatory.

Zone Europe/Stockholm	1:12:12 -	LMT	1879 Jan  1
			1:00:14	-	SET	1900 Jan  1 # Swedish Time
			1:00	-	CET	1916 May 14 23:00
			1:00	1:00	CEST	1916 Oct  1  1:00
			1:00	-	CET	1980
			1:00	EU	CE%sT


# Moldova / Transnistria
Zone	Europe/Tiraspol	1:58:32	-	LMT	1880
			1:55	-	CMT	1918 Feb 15 # Chisinau MT
			1:44:24	-	BMT	1931 Jul 24 # Bucharest MT
			2:00	Romania	EE%sT	1940 Aug 15
			2:00	1:00	EEST	1941 Jul 17
			1:00	C-Eur	CE%sT	1944 Aug 24
			3:00	Russia	MSK/MSD	1991 Mar 31  2:00
			2:00	Russia	EE%sT	1992 Jan 19  2:00
			3:00	Russia	MSK/MSD

# Liechtenstein

# From Paul Eggert (2022-07-21):
# Shanks & Pottenger say Vaduz is like Zurich starting June 1894.

# From Alois Treindl (2019-07-04):
# I was able to access the online archive of the Vaduz paper Vaterland ...
# I could confirm from the paper that Liechtenstein did in fact follow
# the same DST in 1941 and 1942 as Switzerland did.

Zone	Europe/Vaduz	0:38:04 -	LMT	1894 Jun
			1:00	Swiss	CE%sT	1981
			1:00	EU	CE%sT

# Croatia
Zone	Europe/Zagreb	1:03:52	-	LMT	1884
			1:00	-	CET	1941 Apr 18 23:00
			1:00	C-Eur	CE%sT	1945 May  8  2:00s
			1:00	1:00	CEST	1945 Sep 16  2:00s
			1:00	-	CET	1982 Nov 27
			1:00	EU	CE%sT

# Madagascar
Zone Indian/Antananarivo 3:10:04 -	LMT	1911 Jul
			3:00	-	EAT	1954 Feb 27 23:00s
			3:00	1:00	EAST	1954 May 29 23:00s
			3:00	-	EAT

# Christmas
Zone Indian/Christmas	7:02:52 -	LMT	1895 Feb
			7:00	-	+07

# Cocos (Keeling) Is
# These islands were ruled by the Ross family from about 1830 to 1978.
# We don't know when standard time was introduced; for now, we guess 1900.
Zone	Indian/Cocos	6:27:40	-	LMT	1900
			6:30	-	+0630

# Comoros
Zone	Indian/Comoro	2:53:04 -	LMT	1911 Jul # Moroni, Gran Comoro
			3:00	-	EAT

# Kerguelen
Zone Indian/Kerguelen	0	-	-00	1950 # Port-aux-Français
			5:00	-	+05

# Seychelles
#
# From P Chan (2020-11-27):
# Standard Time was adopted on 1907-01-01.
#
# Standard Time Ordinance (Chapter 237)
# The Laws of Seychelles in Force on the 31st December, 1971, Vol. 6, p 571
# https://books.google.com/books?id=efE-AQAAIAAJ&pg=PA571
#
# From Tim Parenti (2020-12-05):
# A footnote on https://books.google.com/books?id=DYdDAQAAMAAJ&pg=PA1689
# confirms that Ordinance No. 9 of 1906 "was brought into force on the 1st
# January, 1907."

Zone	Indian/Mahe	3:41:48 -	LMT	1907 Jan  1 # Victoria
			4:00	-	+04
# From Paul Eggert (2001-05-30):
# Aldabra, Farquhar, and Desroches, originally dependencies of the
# Seychelles, were transferred to the British Indian Ocean Territory
# in 1965 and returned to Seychelles control in 1976.  We don't know
# whether this affected their time zone, so omit this for now.
# Possibly the islands were uninhabited.


# Mayotte
Zone	Indian/Mayotte	3:00:56 -	LMT	1911 Jul # Mamoutzou
			3:00	-	EAT

# Réunion
Zone	Indian/Reunion	3:41:52 -	LMT	1911 Jun # Saint-Denis
			4:00	-	+04
#
# Scattered Islands (Îles Éparses) administered from Réunion are as follows.
# The following information about them is taken from
# Îles Éparses (, 1997-07-22,
# in French; no longer available as of 1999-08-17).
# We have no info about their time zone histories.
#
# Bassas da India - uninhabited
# Europa Island - inhabited from 1905 to 1910 by two families
# Glorioso Is - inhabited until at least 1958
# Juan de Nova - uninhabited
# Tromelin - inhabited until at least 1958

# Micronesia
# Also see Pacific/Pohnpei and commentary for Micronesia in 'australasia'.
#
# From Paul Eggert (2018-11-18):
# Alan Eugene Davis writes (1996-03-16),
# "I am certain, having lived there for the past decade, that 'Truk'
# (now properly known as Chuuk) ... is in the time zone GMT+10."
# Shanks & Pottenger write that Truk switched from UT +10 to +11
# on 1978-10-01; ignore this for now.
Zone Pacific/Chuuk	-13:52:52 -	LMT	1844 Dec 31
			 10:07:08 -	LMT	1901
			 10:00	-	+10	1914 Oct
			  9:00	-	+09	1919 Feb  1
			 10:00	-	+10	1941 Apr  1
			  9:00	-	+09	1945 Aug
			 10:00	-	+10
Link Pacific/Chuuk Pacific/Truk
Link Pacific/Chuuk Pacific/Yap

# Phoenix Islands, Kiribati
# From Paul Eggert (2021-05-27):
# Enderbury was inhabited 1860/1880s to mine guano, and 1938-03-06/1942-02-09
# for aviation (ostensibly commercial, but military uses foreseen).
# The 19th-century dates are approximate.  See Pacific/Kanton for
# the currently-inhabited representative for this timezone.
Zone Pacific/Enderbury	0	-	-00	1860
			-11:24:20 -	LMT	1885
			0	-	-00	1938 Mar  6
			-12:00	-	-12	1942 Feb  9
			0	-	-00

# Tuvalu
Zone Pacific/Funafuti	11:56:52 -	LMT	1901
			12:00	-	+12

# Johnston
Zone Pacific/Johnston	-10:00	-	HST

# Marshall Is
Zone Pacific/Majuro	 11:24:48 -	LMT	1901
			 11:00	-	+11	1914 Oct
			  9:00	-	+09	1919 Feb  1
			 11:00	-	+11	1937
			 10:00	-	+10	1941 Apr  1
			  9:00	-	+09	1944 Jan 30
			 11:00	-	+11	1969 Oct
			 12:00	-	+12

# Midway
#
# From Mark Brader (2005-01-23):
# [Fallacies and Fantasies of Air Transport History, by R.E.G. Davies,
# published 1994 by Paladwr Press, McLean, VA, USA; ISBN 0-9626483-5-3]
# reproduced a Pan American Airways timetable from 1936, for their weekly
# "Orient Express" flights between San Francisco and Manila, and connecting
# flights to Chicago and the US East Coast.  As it uses some time zone
# designations that I've never seen before:....
# Fri. 6:30A Lv. HONOLOLU (Pearl Harbor), H.I.   H.L.T. Ar. 5:30P Sun.
#  "   3:00P Ar. MIDWAY ISLAND . . . . . . . . . M.L.T. Lv. 6:00A  "
#
Zone Pacific/Midway	-11:49:28 -	LMT	1901
			-11:00	-	-11	1956 Jun  3
			-11:00	1:00	-10	1956 Sep  2
			-11:00	-	-11

# Micronesia
# Also see Pacific/Chuuk and commentary for Micronesia in 'australasia'.
Zone Pacific/Pohnpei	-13:27:08 -	LMT	1844 Dec 31	# Kolonia
			 10:32:52 -	LMT	1901
			 11:00	-	+11	1914 Oct
			  9:00	-	+09	1919 Feb  1
			 11:00	-	+11	1937
			 10:00	-	+10	1941 Apr  1
			  9:00	-	+09	1945 Aug
			 11:00	-	+11
Link Pacific/Pohnpei Pacific/Ponape

# N Mariana Is
Zone Pacific/Saipan	-14:17:00 -	LMT	1844 Dec 31
			 9:43:00 -	LMT	1901
			 9:00	-	+09	1969 Oct
			10:00	-	+10	2000 Dec 23
			10:00	-	ChST	# Chamorro Standard Time


# Wake

# From Vernice Anderson, Personal Secretary to Philip Jessup,
# US Ambassador At Large (oral history interview, 1971-02-02):
#
# Saturday, the 14th [of October, 1950] - ...  The time was all the
# more confusing at that point, because we had crossed the
# International Date Line, thus getting two Sundays.  Furthermore, we
# discovered that Wake Island had two hours of daylight saving time
# making calculation of time in Washington difficult if not almost
# impossible.
#
# https://www.trumanlibrary.org/oralhist/andrsonv.htm

# From Paul Eggert (2003-03-23):
# We have no other report of DST in Wake Island, so omit this info for now.

# Also see commentary for Micronesia in 'australasia'.
Zone	Pacific/Wake	11:06:28 -	LMT	1901
			12:00	-	+12


# Wallis and Futuna
Zone	Pacific/Wallis	12:15:20 -	LMT	1901
			12:00	-	+12

# Local Variables:
# coding: utf-8
# End:
./tzdatabase/etcetera0000644000175000017500000000544414561207743015016 0ustar  anthonyanthony# tzdb data for ships at sea and other miscellany

# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.

# These entries are for uses not otherwise covered by the tz database.
# Their main practical use is for platforms like Android that lack
# support for POSIX-style TZ strings.  On such platforms these entries
# can be useful if the timezone database is wrong or if a ship or
# aircraft at sea is not in a timezone.

# Starting with POSIX 1003.1-2001, the entries below are all
# unnecessary as settings for the TZ environment variable.  E.g.,
# instead of TZ='Etc/GMT+4' one can use the POSIX setting TZ='<-04>+4'.
#
# Do not use a POSIX TZ setting like TZ='GMT+4', which is four hours
# behind GMT but uses the completely misleading abbreviation "GMT".

Zone	Etc/GMT		0	-	GMT

# The following zone is used by tzcode functions like gmtime,
# which load the "UTC" file to handle seconds properly.
Zone	Etc/UTC		0	-	UTC

# The following link uses older naming conventions,
# but it belongs here, not in the file 'backward',
# as it is needed for tzcode releases through 2022a,
# where functions like gmtime load "GMT" instead of the "Etc/UTC".
# We want this to work even on installations that omit 'backward'.
Link	Etc/GMT				GMT

Link	Etc/UTC				Etc/Universal
Link	Etc/UTC				Etc/Zulu

Link	Etc/GMT				Etc/Greenwich
Link	Etc/GMT				Etc/GMT-0
Link	Etc/GMT				Etc/GMT+0
Link	Etc/GMT				Etc/GMT0

# Be consistent with POSIX TZ settings in the Zone names,
# even though this is the opposite of what many people expect.
# POSIX has positive signs west of Greenwich, but many people expect
# positive signs east of Greenwich.  For example, TZ='Etc/GMT+4' uses
# the abbreviation "-04" and corresponds to 4 hours behind UT
# (i.e. west of Greenwich) even though many people would expect it to
# mean 4 hours ahead of UT (i.e. east of Greenwich).

# Earlier incarnations of this package were not POSIX-compliant,
# and had lines such as
#		Zone	GMT-12		-12	-	GMT-1200
# We did not want things to change quietly if someone accustomed to the old
# way does a
#		zic -l GMT-12
# so we moved the names into the Etc subdirectory.
# Also, the time zone abbreviations are now compatible with %z.

Zone	Etc/GMT-14	14	-	+14
Zone	Etc/GMT-13	13	-	+13
Zone	Etc/GMT-12	12	-	+12
Zone	Etc/GMT-11	11	-	+11
Zone	Etc/GMT-10	10	-	+10
Zone	Etc/GMT-9	9	-	+09
Zone	Etc/GMT-8	8	-	+08
Zone	Etc/GMT-7	7	-	+07
Zone	Etc/GMT-6	6	-	+06
Zone	Etc/GMT-5	5	-	+05
Zone	Etc/GMT-4	4	-	+04
Zone	Etc/GMT-3	3	-	+03
Zone	Etc/GMT-2	2	-	+02
Zone	Etc/GMT-1	1	-	+01
Zone	Etc/GMT+1	-1	-	-01
Zone	Etc/GMT+2	-2	-	-02
Zone	Etc/GMT+3	-3	-	-03
Zone	Etc/GMT+4	-4	-	-04
Zone	Etc/GMT+5	-5	-	-05
Zone	Etc/GMT+6	-6	-	-06
Zone	Etc/GMT+7	-7	-	-07
Zone	Etc/GMT+8	-8	-	-08
Zone	Etc/GMT+9	-9	-	-09
Zone	Etc/GMT+10	-10	-	-10
Zone	Etc/GMT+11	-11	-	-11
Zone	Etc/GMT+12	-12	-	-12
./tzdatabase/zdump.c0000644000175000017500000006754713404230412014576 0ustar  anthonyanthony/* Dump time zone data in a textual format.  */

/*
** This file is in the public domain, so clarified as of
** 2009-05-17 by Arthur David Olson.
*/

#include "version.h"

#ifndef NETBSD_INSPIRED
# define NETBSD_INSPIRED 1
#endif

#include "private.h"
#include 

#ifndef HAVE_SNPRINTF
# define HAVE_SNPRINTF (199901 <= __STDC_VERSION__)
#endif

#ifndef HAVE_LOCALTIME_R
# define HAVE_LOCALTIME_R 1
#endif

#ifndef HAVE_LOCALTIME_RZ
# ifdef TM_ZONE
#  define HAVE_LOCALTIME_RZ (NETBSD_INSPIRED && USE_LTZ)
# else
#  define HAVE_LOCALTIME_RZ 0
# endif
#endif

#ifndef HAVE_TZSET
# define HAVE_TZSET 1
#endif

#ifndef ZDUMP_LO_YEAR
#define ZDUMP_LO_YEAR	(-500)
#endif /* !defined ZDUMP_LO_YEAR */

#ifndef ZDUMP_HI_YEAR
#define ZDUMP_HI_YEAR	2500
#endif /* !defined ZDUMP_HI_YEAR */

#ifndef MAX_STRING_LENGTH
#define MAX_STRING_LENGTH	1024
#endif /* !defined MAX_STRING_LENGTH */

#define SECSPERNYEAR	(SECSPERDAY * DAYSPERNYEAR)
#define SECSPERLYEAR	(SECSPERNYEAR + SECSPERDAY)
#define SECSPER400YEARS	(SECSPERNYEAR * (intmax_t) (300 + 3)	\
			 + SECSPERLYEAR * (intmax_t) (100 - 3))

/*
** True if SECSPER400YEARS is known to be representable as an
** intmax_t.  It's OK that SECSPER400YEARS_FITS can in theory be false
** even if SECSPER400YEARS is representable, because when that happens
** the code merely runs a bit more slowly, and this slowness doesn't
** occur on any practical platform.
*/
enum { SECSPER400YEARS_FITS = SECSPERLYEAR <= INTMAX_MAX / 400 };

#if HAVE_GETTEXT
#include 	/* for setlocale */
#endif /* HAVE_GETTEXT */

#if ! HAVE_LOCALTIME_RZ
# undef  timezone_t
# define timezone_t char **
#endif

#if !HAVE_POSIX_DECLS
extern int	getopt(int argc, char * const argv[],
			const char * options);
extern char *	optarg;
extern int	optind;
#endif

/* The minimum and maximum finite time values.  */
enum { atime_shift = CHAR_BIT * sizeof (time_t) - 2 };
static time_t const absolute_min_time =
  ((time_t) -1 < 0
   ? (- ((time_t) ~ (time_t) 0 < 0)
      - (((time_t) 1 << atime_shift) - 1 + ((time_t) 1 << atime_shift)))
   : 0);
static time_t const absolute_max_time =
  ((time_t) -1 < 0
   ? (((time_t) 1 << atime_shift) - 1 + ((time_t) 1 << atime_shift))
   : -1);
static int	longest;
static char *	progname;
static bool	warned;
static bool	errout;

static char const *abbr(struct tm const *);
static intmax_t	delta(struct tm *, struct tm *) ATTRIBUTE_PURE;
static void dumptime(struct tm const *);
static time_t hunt(timezone_t, char *, time_t, time_t);
static void show(timezone_t, char *, time_t, bool);
static void showtrans(char const *, struct tm const *, time_t, char const *,
		      char const *);
static const char *tformat(void);
static time_t yeartot(intmax_t) ATTRIBUTE_PURE;

/* Unlike 's isdigit, this also works if c < 0 | c > UCHAR_MAX. */
#define is_digit(c) ((unsigned)(c) - '0' <= 9)

/* Is A an alphabetic character in the C locale?  */
static bool
is_alpha(char a)
{
	switch (a) {
	  default:
		return false;
	  case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G':
	  case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N':
	  case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U':
	  case 'V': case 'W': case 'X': case 'Y': case 'Z':
	  case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g':
	  case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n':
	  case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u':
	  case 'v': case 'w': case 'x': case 'y': case 'z':
		return true;
	}
}

/* Return A + B, exiting if the result would overflow.  */
static size_t
sumsize(size_t a, size_t b)
{
  size_t sum = a + b;
  if (sum < a) {
    fprintf(stderr, "%s: size overflow\n", progname);
    exit(EXIT_FAILURE);
  }
  return sum;
}

/* Return a pointer to a newly allocated buffer of size SIZE, exiting
   on failure.  SIZE should be nonzero.  */
static void * ATTRIBUTE_MALLOC
xmalloc(size_t size)
{
  void *p = malloc(size);
  if (!p) {
    perror(progname);
    exit(EXIT_FAILURE);
  }
  return p;
}

#if ! HAVE_TZSET
# undef tzset
# define tzset zdump_tzset
static void tzset(void) { }
#endif

/* Assume gmtime_r works if localtime_r does.
   A replacement localtime_r is defined below if needed.  */
#if ! HAVE_LOCALTIME_R

# undef gmtime_r
# define gmtime_r zdump_gmtime_r

static struct tm *
gmtime_r(time_t *tp, struct tm *tmp)
{
  struct tm *r = gmtime(tp);
  if (r) {
    *tmp = *r;
    r = tmp;
  }
  return r;
}

#endif

/* Platforms with TM_ZONE don't need tzname, so they can use the
   faster localtime_rz or localtime_r if available.  */

#if defined TM_ZONE && HAVE_LOCALTIME_RZ
# define USE_LOCALTIME_RZ true
#else
# define USE_LOCALTIME_RZ false
#endif

#if ! USE_LOCALTIME_RZ

# if !defined TM_ZONE || ! HAVE_LOCALTIME_R || ! HAVE_TZSET
#  undef localtime_r
#  define localtime_r zdump_localtime_r
static struct tm *
localtime_r(time_t *tp, struct tm *tmp)
{
  struct tm *r = localtime(tp);
  if (r) {
    *tmp = *r;
    r = tmp;
  }
  return r;
}
# endif

# undef localtime_rz
# define localtime_rz zdump_localtime_rz
static struct tm *
localtime_rz(timezone_t rz, time_t *tp, struct tm *tmp)
{
  return localtime_r(tp, tmp);
}

# ifdef TYPECHECK
#  undef mktime_z
#  define mktime_z zdump_mktime_z
static time_t
mktime_z(timezone_t tz, struct tm *tmp)
{
  return mktime(tmp);
}
# endif

# undef tzalloc
# undef tzfree
# define tzalloc zdump_tzalloc
# define tzfree zdump_tzfree

static timezone_t
tzalloc(char const *val)
{
  static char **fakeenv;
  char **env = fakeenv;
  char *env0;
  if (! env) {
    char **e = environ;
    int to;

    while (*e++)
      continue;
    env = xmalloc(sumsize(sizeof *environ,
			  (e - environ) * sizeof *environ));
    to = 1;
    for (e = environ; (env[to] = *e); e++)
      to += strncmp(*e, "TZ=", 3) != 0;
  }
  env0 = xmalloc(sumsize(sizeof "TZ=", strlen(val)));
  env[0] = strcat(strcpy(env0, "TZ="), val);
  environ = fakeenv = env;
  tzset();
  return env;
}

static void
tzfree(timezone_t env)
{
  environ = env + 1;
  free(env[0]);
}
#endif /* ! USE_LOCALTIME_RZ */

/* A UT time zone, and its initializer.  */
static timezone_t gmtz;
static void
gmtzinit(void)
{
  if (USE_LOCALTIME_RZ) {
    static char const utc[] = "UTC0";
    gmtz = tzalloc(utc);
    if (!gmtz) {
      perror(utc);
      exit(EXIT_FAILURE);
    }
  }
}

/* Convert *TP to UT, storing the broken-down time into *TMP.
   Return TMP if successful, NULL otherwise.  This is like gmtime_r(TP, TMP),
   except typically faster if USE_LOCALTIME_RZ.  */
static struct tm *
my_gmtime_r(time_t *tp, struct tm *tmp)
{
  return USE_LOCALTIME_RZ ? localtime_rz(gmtz, tp, tmp) : gmtime_r(tp, tmp);
}

#ifndef TYPECHECK
# define my_localtime_rz localtime_rz
#else /* !defined TYPECHECK */

static struct tm *
my_localtime_rz(timezone_t tz, time_t *tp, struct tm *tmp)
{
	tmp = localtime_rz(tz, tp, tmp);
	if (tmp) {
		struct tm	tm;
		register time_t	t;

		tm = *tmp;
		t = mktime_z(tz, &tm);
		if (t != *tp) {
			fflush(stdout);
			fprintf(stderr, "\n%s: ", progname);
			fprintf(stderr, tformat(), *tp);
			fprintf(stderr, " ->");
			fprintf(stderr, " year=%d", tmp->tm_year);
			fprintf(stderr, " mon=%d", tmp->tm_mon);
			fprintf(stderr, " mday=%d", tmp->tm_mday);
			fprintf(stderr, " hour=%d", tmp->tm_hour);
			fprintf(stderr, " min=%d", tmp->tm_min);
			fprintf(stderr, " sec=%d", tmp->tm_sec);
			fprintf(stderr, " isdst=%d", tmp->tm_isdst);
			fprintf(stderr, " -> ");
			fprintf(stderr, tformat(), t);
			fprintf(stderr, "\n");
			errout = true;
		}
	}
	return tmp;
}
#endif /* !defined TYPECHECK */

static void
abbrok(const char *const abbrp, const char *const zone)
{
	register const char *	cp;
	register const char *	wp;

	if (warned)
		return;
	cp = abbrp;
	while (is_alpha(*cp) || is_digit(*cp) || *cp == '-' || *cp == '+')
		++cp;
	if (cp - abbrp < 3)
	  wp = _("has fewer than 3 characters");
	else if (cp - abbrp > 6)
	  wp = _("has more than 6 characters");
	else if (*cp)
	  wp = _("has characters other than ASCII alphanumerics, '-' or '+'");
	else
	  return;
	fflush(stdout);
	fprintf(stderr,
		_("%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"),
		progname, zone, abbrp, wp);
	warned = errout = true;
}

/* Return a time zone abbreviation.  If the abbreviation needs to be
   saved, use *BUF (of size *BUFALLOC) to save it, and return the
   abbreviation in the possibly-reallocated *BUF.  Otherwise, just
   return the abbreviation.  Get the abbreviation from TMP.
   Exit on memory allocation failure.  */
static char const *
saveabbr(char **buf, size_t *bufalloc, struct tm const *tmp)
{
  char const *ab = abbr(tmp);
  if (HAVE_LOCALTIME_RZ)
    return ab;
  else {
    size_t ablen = strlen(ab);
    if (*bufalloc <= ablen) {
      free(*buf);

      /* Make the new buffer at least twice as long as the old,
	 to avoid O(N**2) behavior on repeated calls.  */
      *bufalloc = sumsize(*bufalloc, ablen + 1);

      *buf = xmalloc(*bufalloc);
    }
    return strcpy(*buf, ab);
  }
}

static void
close_file(FILE *stream)
{
  char const *e = (ferror(stream) ? _("I/O error")
		   : fclose(stream) != 0 ? strerror(errno) : NULL);
  if (e) {
    fprintf(stderr, "%s: %s\n", progname, e);
    exit(EXIT_FAILURE);
  }
}

static void
usage(FILE * const stream, const int status)
{
	fprintf(stream,
_("%s: usage: %s OPTIONS TIMEZONE ...\n"
  "Options include:\n"
  "  -c [L,]U   Start at year L (default -500), end before year U (default 2500)\n"
  "  -t [L,]U   Start at time L, end before time U (in seconds since 1970)\n"
  "  -i         List transitions briefly (format is experimental)\n" \
  "  -v         List transitions verbosely\n"
  "  -V         List transitions a bit less verbosely\n"
  "  --help     Output this help\n"
  "  --version  Output version info\n"
  "\n"
  "Report bugs to %s.\n"),
		progname, progname, REPORT_BUGS_TO);
	if (status == EXIT_SUCCESS)
	  close_file(stream);
	exit(status);
}

int
main(int argc, char *argv[])
{
	/* These are static so that they're initially zero.  */
	static char *		abbrev;
	static size_t		abbrevsize;

	register int		i;
	register bool		vflag;
	register bool		Vflag;
	register char *		cutarg;
	register char *		cuttimes;
	register time_t		cutlotime;
	register time_t		cuthitime;
	time_t			now;
	bool iflag = false;

	cutlotime = absolute_min_time;
	cuthitime = absolute_max_time;
#if HAVE_GETTEXT
	setlocale(LC_ALL, "");
#ifdef TZ_DOMAINDIR
	bindtextdomain(TZ_DOMAIN, TZ_DOMAINDIR);
#endif /* defined TEXTDOMAINDIR */
	textdomain(TZ_DOMAIN);
#endif /* HAVE_GETTEXT */
	progname = argv[0];
	for (i = 1; i < argc; ++i)
		if (strcmp(argv[i], "--version") == 0) {
			printf("zdump %s%s\n", PKGVERSION, TZVERSION);
			return EXIT_SUCCESS;
		} else if (strcmp(argv[i], "--help") == 0) {
			usage(stdout, EXIT_SUCCESS);
		}
	vflag = Vflag = false;
	cutarg = cuttimes = NULL;
	for (;;)
	  switch (getopt(argc, argv, "c:it:vV")) {
	  case 'c': cutarg = optarg; break;
	  case 't': cuttimes = optarg; break;
	  case 'i': iflag = true; break;
	  case 'v': vflag = true; break;
	  case 'V': Vflag = true; break;
	  case -1:
	    if (! (optind == argc - 1 && strcmp(argv[optind], "=") == 0))
	      goto arg_processing_done;
	    /* Fall through.  */
	  default:
	    usage(stderr, EXIT_FAILURE);
	  }
 arg_processing_done:;

	if (iflag | vflag | Vflag) {
		intmax_t	lo;
		intmax_t	hi;
		char *loend, *hiend;
		register intmax_t cutloyear = ZDUMP_LO_YEAR;
		register intmax_t cuthiyear = ZDUMP_HI_YEAR;
		if (cutarg != NULL) {
			lo = strtoimax(cutarg, &loend, 10);
			if (cutarg != loend && !*loend) {
				hi = lo;
				cuthiyear = hi;
			} else if (cutarg != loend && *loend == ','
				   && (hi = strtoimax(loend + 1, &hiend, 10),
				       loend + 1 != hiend && !*hiend)) {
				cutloyear = lo;
				cuthiyear = hi;
			} else {
				fprintf(stderr, _("%s: wild -c argument %s\n"),
					progname, cutarg);
				return EXIT_FAILURE;
			}
		}
		if (cutarg != NULL || cuttimes == NULL) {
			cutlotime = yeartot(cutloyear);
			cuthitime = yeartot(cuthiyear);
		}
		if (cuttimes != NULL) {
			lo = strtoimax(cuttimes, &loend, 10);
			if (cuttimes != loend && !*loend) {
				hi = lo;
				if (hi < cuthitime) {
					if (hi < absolute_min_time)
						hi = absolute_min_time;
					cuthitime = hi;
				}
			} else if (cuttimes != loend && *loend == ','
				   && (hi = strtoimax(loend + 1, &hiend, 10),
				       loend + 1 != hiend && !*hiend)) {
				if (cutlotime < lo) {
					if (absolute_max_time < lo)
						lo = absolute_max_time;
					cutlotime = lo;
				}
				if (hi < cuthitime) {
					if (hi < absolute_min_time)
						hi = absolute_min_time;
					cuthitime = hi;
				}
			} else {
				fprintf(stderr,
					_("%s: wild -t argument %s\n"),
					progname, cuttimes);
				return EXIT_FAILURE;
			}
		}
	}
	gmtzinit();
	INITIALIZE (now);
	if (! (iflag | vflag | Vflag))
	  now = time(NULL);
	longest = 0;
	for (i = optind; i < argc; i++) {
	  size_t arglen = strlen(argv[i]);
	  if (longest < arglen)
	    longest = arglen < INT_MAX ? arglen : INT_MAX;
	}

	for (i = optind; i < argc; ++i) {
		timezone_t tz = tzalloc(argv[i]);
		char const *ab;
		time_t t;
		struct tm tm, newtm;
		bool tm_ok;
		if (!tz) {
		  perror(argv[i]);
		  return EXIT_FAILURE;
		}
		if (! (iflag | vflag | Vflag)) {
			show(tz, argv[i], now, false);
			tzfree(tz);
			continue;
		}
		warned = false;
		t = absolute_min_time;
		if (! (iflag | Vflag)) {
			show(tz, argv[i], t, true);
			t += SECSPERDAY;
			show(tz, argv[i], t, true);
		}
		if (t < cutlotime)
			t = cutlotime;
		INITIALIZE (ab);
		tm_ok = my_localtime_rz(tz, &t, &tm) != NULL;
		if (tm_ok) {
		  ab = saveabbr(&abbrev, &abbrevsize, &tm);
		  if (iflag) {
		    showtrans("\nTZ=%f", &tm, t, ab, argv[i]);
		    showtrans("-\t-\t%Q", &tm, t, ab, argv[i]);
		  }
		}
		while (t < cuthitime) {
		  time_t newt = ((t < absolute_max_time - SECSPERDAY / 2
				  && t + SECSPERDAY / 2 < cuthitime)
				 ? t + SECSPERDAY / 2
				 : cuthitime);
		  struct tm *newtmp = localtime_rz(tz, &newt, &newtm);
		  bool newtm_ok = newtmp != NULL;
		  if (tm_ok != newtm_ok
		      || (tm_ok && (delta(&newtm, &tm) != newt - t
				    || newtm.tm_isdst != tm.tm_isdst
				    || strcmp(abbr(&newtm), ab) != 0))) {
		    newt = hunt(tz, argv[i], t, newt);
		    newtmp = localtime_rz(tz, &newt, &newtm);
		    newtm_ok = newtmp != NULL;
		    if (iflag)
		      showtrans("%Y-%m-%d\t%L\t%Q", newtmp, newt,
				newtm_ok ? abbr(&newtm) : NULL, argv[i]);
		    else {
		      show(tz, argv[i], newt - 1, true);
		      show(tz, argv[i], newt, true);
		    }
		  }
		  t = newt;
		  tm_ok = newtm_ok;
		  if (newtm_ok) {
		    ab = saveabbr(&abbrev, &abbrevsize, &newtm);
		    tm = newtm;
		  }
		}
		if (! (iflag | Vflag)) {
			t = absolute_max_time;
			t -= SECSPERDAY;
			show(tz, argv[i], t, true);
			t += SECSPERDAY;
			show(tz, argv[i], t, true);
		}
		tzfree(tz);
	}
	close_file(stdout);
	if (errout && (ferror(stderr) || fclose(stderr) != 0))
	  return EXIT_FAILURE;
	return EXIT_SUCCESS;
}

static time_t
yeartot(intmax_t y)
{
	register intmax_t	myy, seconds, years;
	register time_t		t;

	myy = EPOCH_YEAR;
	t = 0;
	while (myy < y) {
		if (SECSPER400YEARS_FITS && 400 <= y - myy) {
			intmax_t diff400 = (y - myy) / 400;
			if (INTMAX_MAX / SECSPER400YEARS < diff400)
				return absolute_max_time;
			seconds = diff400 * SECSPER400YEARS;
			years = diff400 * 400;
                } else {
			seconds = isleap(myy) ? SECSPERLYEAR : SECSPERNYEAR;
			years = 1;
		}
		myy += years;
		if (t > absolute_max_time - seconds)
			return absolute_max_time;
		t += seconds;
	}
	while (y < myy) {
		if (SECSPER400YEARS_FITS && y + 400 <= myy && myy < 0) {
			intmax_t diff400 = (myy - y) / 400;
			if (INTMAX_MAX / SECSPER400YEARS < diff400)
				return absolute_min_time;
			seconds = diff400 * SECSPER400YEARS;
			years = diff400 * 400;
		} else {
			seconds = isleap(myy - 1) ? SECSPERLYEAR : SECSPERNYEAR;
			years = 1;
		}
		myy -= years;
		if (t < absolute_min_time + seconds)
			return absolute_min_time;
		t -= seconds;
	}
	return t;
}

static time_t
hunt(timezone_t tz, char *name, time_t lot, time_t hit)
{
	static char *		loab;
	static size_t		loabsize;
	char const *		ab;
	time_t			t;
	struct tm		lotm;
	struct tm		tm;
	bool lotm_ok = my_localtime_rz(tz, &lot, &lotm) != NULL;
	bool tm_ok;

	if (lotm_ok)
	  ab = saveabbr(&loab, &loabsize, &lotm);
	for ( ; ; ) {
		time_t diff = hit - lot;
		if (diff < 2)
			break;
		t = lot;
		t += diff / 2;
		if (t <= lot)
			++t;
		else if (t >= hit)
			--t;
		tm_ok = my_localtime_rz(tz, &t, &tm) != NULL;
		if (lotm_ok & tm_ok
		    ? (delta(&tm, &lotm) == t - lot
		       && tm.tm_isdst == lotm.tm_isdst
		       && strcmp(abbr(&tm), ab) == 0)
		    : lotm_ok == tm_ok) {
		  lot = t;
		  if (tm_ok)
		    lotm = tm;
		} else	hit = t;
	}
	return hit;
}

/*
** Thanks to Paul Eggert for logic used in delta_nonneg.
*/

static intmax_t
delta_nonneg(struct tm *newp, struct tm *oldp)
{
	register intmax_t	result;
	register int		tmy;

	result = 0;
	for (tmy = oldp->tm_year; tmy < newp->tm_year; ++tmy)
		result += DAYSPERNYEAR + isleap_sum(tmy, TM_YEAR_BASE);
	result += newp->tm_yday - oldp->tm_yday;
	result *= HOURSPERDAY;
	result += newp->tm_hour - oldp->tm_hour;
	result *= MINSPERHOUR;
	result += newp->tm_min - oldp->tm_min;
	result *= SECSPERMIN;
	result += newp->tm_sec - oldp->tm_sec;
	return result;
}

static intmax_t
delta(struct tm *newp, struct tm *oldp)
{
  return (newp->tm_year < oldp->tm_year
	  ? -delta_nonneg(oldp, newp)
	  : delta_nonneg(newp, oldp));
}

#ifndef TM_GMTOFF
/* Return A->tm_yday, adjusted to compare it fairly to B->tm_yday.
   Assume A and B differ by at most one year.  */
static int
adjusted_yday(struct tm const *a, struct tm const *b)
{
  int yday = a->tm_yday;
  if (b->tm_year < a->tm_year)
    yday += 365 + isleap_sum(b->tm_year, TM_YEAR_BASE);
  return yday;
}
#endif

/* If A is the broken-down local time and B the broken-down UT for
   the same instant, return A's UT offset in seconds, where positive
   offsets are east of Greenwich.  On failure, return LONG_MIN.

   If T is nonnull, *T is the timestamp that corresponds to A; call
   my_gmtime_r and use its result instead of B.  Otherwise, B is the
   possibly nonnull result of an earlier call to my_gmtime_r.  */
static long
gmtoff(struct tm const *a, time_t *t, struct tm const *b)
{
#ifdef TM_GMTOFF
  return a->TM_GMTOFF;
#else
  struct tm tm;
  if (t)
    b = my_gmtime_r(t, &tm);
  if (! b)
    return LONG_MIN;
  else {
    int ayday = adjusted_yday(a, b);
    int byday = adjusted_yday(b, a);
    int days = ayday - byday;
    long hours = a->tm_hour - b->tm_hour + 24 * days;
    long minutes = a->tm_min - b->tm_min + 60 * hours;
    long seconds = a->tm_sec - b->tm_sec + 60 * minutes;
    return seconds;
  }
#endif
}

static void
show(timezone_t tz, char *zone, time_t t, bool v)
{
	register struct tm *	tmp;
	register struct tm *	gmtmp;
	struct tm tm, gmtm;

	printf("%-*s  ", longest, zone);
	if (v) {
		gmtmp = my_gmtime_r(&t, &gmtm);
		if (gmtmp == NULL) {
			printf(tformat(), t);
		} else {
			dumptime(gmtmp);
			printf(" UT");
		}
		printf(" = ");
	}
	tmp = my_localtime_rz(tz, &t, &tm);
	dumptime(tmp);
	if (tmp != NULL) {
		if (*abbr(tmp) != '\0')
			printf(" %s", abbr(tmp));
		if (v) {
			long off = gmtoff(tmp, NULL, gmtmp);
			printf(" isdst=%d", tmp->tm_isdst);
			if (off != LONG_MIN)
			  printf(" gmtoff=%ld", off);
		}
	}
	printf("\n");
	if (tmp != NULL && *abbr(tmp) != '\0')
		abbrok(abbr(tmp), zone);
}

#if HAVE_SNPRINTF
# define my_snprintf snprintf
#else
# include 

/* A substitute for snprintf that is good enough for zdump.  */
static int ATTRIBUTE_FORMAT((printf, 3, 4))
my_snprintf(char *s, size_t size, char const *format, ...)
{
  int n;
  va_list args;
  char const *arg;
  size_t arglen, slen;
  char buf[1024];
  va_start(args, format);
  if (strcmp(format, "%s") == 0) {
    arg = va_arg(args, char const *);
    arglen = strlen(arg);
  } else {
    n = vsprintf(buf, format, args);
    if (n < 0) {
      va_end(args);
      return n;
    }
    arg = buf;
    arglen = n;
  }
  slen = arglen < size ? arglen : size - 1;
  memcpy(s, arg, slen);
  s[slen] = '\0';
  n = arglen <= INT_MAX ? arglen : -1;
  va_end(args);
  return n;
}
#endif

/* Store into BUF, of size SIZE, a formatted local time taken from *TM.
   Use ISO 8601 format +HH:MM:SS.  Omit :SS if SS is zero, and omit
   :MM too if MM is also zero.

   Return the length of the resulting string.  If the string does not
   fit, return the length that the string would have been if it had
   fit; do not overrun the output buffer.  */
static int
format_local_time(char *buf, size_t size, struct tm const *tm)
{
  int ss = tm->tm_sec, mm = tm->tm_min, hh = tm->tm_hour;
  return (ss
	  ? my_snprintf(buf, size, "%02d:%02d:%02d", hh, mm, ss)
	  : mm
	  ? my_snprintf(buf, size, "%02d:%02d", hh, mm)
	  : my_snprintf(buf, size, "%02d", hh));
}

/* Store into BUF, of size SIZE, a formatted UT offset for the
   localtime *TM corresponding to time T.  Use ISO 8601 format
   +HHMMSS, or -HHMMSS for timestamps west of Greenwich; use the
   format -00 for unknown UT offsets.  If the hour needs more than
   two digits to represent, extend the length of HH as needed.
   Otherwise, omit SS if SS is zero, and omit MM too if MM is also
   zero.

   Return the length of the resulting string, or -1 if the result is
   not representable as a string.  If the string does not fit, return
   the length that the string would have been if it had fit; do not
   overrun the output buffer.  */
static int
format_utc_offset(char *buf, size_t size, struct tm const *tm, time_t t)
{
  long off = gmtoff(tm, &t, NULL);
  char sign = ((off < 0
		|| (off == 0
		    && (*abbr(tm) == '-' || strcmp(abbr(tm), "zzz") == 0)))
	       ? '-' : '+');
  long hh;
  int mm, ss;
  if (off < 0)
    {
      if (off == LONG_MIN)
	return -1;
      off = -off;
    }
  ss = off % 60;
  mm = off / 60 % 60;
  hh = off / 60 / 60;
  return (ss || 100 <= hh
	  ? my_snprintf(buf, size, "%c%02ld%02d%02d", sign, hh, mm, ss)
	  : mm
	  ? my_snprintf(buf, size, "%c%02ld%02d", sign, hh, mm)
	  : my_snprintf(buf, size, "%c%02ld", sign, hh));
}

/* Store into BUF (of size SIZE) a quoted string representation of P.
   If the representation's length is less than SIZE, return the
   length; the representation is not null terminated.  Otherwise
   return SIZE, to indicate that BUF is too small.  */
static size_t
format_quoted_string(char *buf, size_t size, char const *p)
{
  char *b = buf;
  size_t s = size;
  if (!s)
    return size;
  *b++ = '"', s--;
  for (;;) {
    char c = *p++;
    if (s <= 1)
      return size;
    switch (c) {
    default: *b++ = c, s--; continue;
    case '\0': *b++ = '"', s--; return size - s;
    case '"': case '\\': break;
    case ' ': c = 's'; break;
    case '\f': c = 'f'; break;
    case '\n': c = 'n'; break;
    case '\r': c = 'r'; break;
    case '\t': c = 't'; break;
    case '\v': c = 'v'; break;
    }
    *b++ = '\\', *b++ = c, s -= 2;
  }
}

/* Store into BUF (of size SIZE) a timestamp formatted by TIME_FMT.
   TM is the broken-down time, T the seconds count, AB the time zone
   abbreviation, and ZONE_NAME the zone name.  Return true if
   successful, false if the output would require more than SIZE bytes.
   TIME_FMT uses the same format that strftime uses, with these
   additions:

   %f zone name
   %L local time as per format_local_time
   %Q like "U\t%Z\tD" where U is the UT offset as for format_utc_offset
      and D is the isdst flag; except omit D if it is zero, omit %Z if
      it equals U, quote and escape %Z if it contains nonalphabetics,
      and omit any trailing tabs.  */

static bool
istrftime(char *buf, size_t size, char const *time_fmt,
	  struct tm const *tm, time_t t, char const *ab, char const *zone_name)
{
  char *b = buf;
  size_t s = size;
  char const *f = time_fmt, *p;

  for (p = f; ; p++)
    if (*p == '%' && p[1] == '%')
      p++;
    else if (!*p
	     || (*p == '%'
		 && (p[1] == 'f' || p[1] == 'L' || p[1] == 'Q'))) {
      size_t formatted_len;
      size_t f_prefix_len = p - f;
      size_t f_prefix_copy_size = p - f + 2;
      char fbuf[100];
      bool oversized = sizeof fbuf <= f_prefix_copy_size;
      char *f_prefix_copy = oversized ? xmalloc(f_prefix_copy_size) : fbuf;
      memcpy(f_prefix_copy, f, f_prefix_len);
      strcpy(f_prefix_copy + f_prefix_len, "X");
      formatted_len = strftime(b, s, f_prefix_copy, tm);
      if (oversized)
	free(f_prefix_copy);
      if (formatted_len == 0)
	return false;
      formatted_len--;
      b += formatted_len, s -= formatted_len;
      if (!*p++)
	break;
      switch (*p) {
      case 'f':
	formatted_len = format_quoted_string(b, s, zone_name);
	break;
      case 'L':
	formatted_len = format_local_time(b, s, tm);
	break;
      case 'Q':
	{
	  bool show_abbr;
	  int offlen = format_utc_offset(b, s, tm, t);
	  if (! (0 <= offlen && offlen < s))
	    return false;
	  show_abbr = strcmp(b, ab) != 0;
	  b += offlen, s -= offlen;
	  if (show_abbr) {
	    char const *abp;
	    size_t len;
	    if (s <= 1)
	      return false;
	    *b++ = '\t', s--;
	    for (abp = ab; is_alpha(*abp); abp++)
	      continue;
	    len = (!*abp && *ab
		   ? my_snprintf(b, s, "%s", ab)
		   : format_quoted_string(b, s, ab));
	    if (s <= len)
	      return false;
	    b += len, s -= len;
	  }
	  formatted_len
	    = (tm->tm_isdst
	       ? my_snprintf(b, s, &"\t\t%d"[show_abbr], tm->tm_isdst)
	       : 0);
	}
	break;
      }
      if (s <= formatted_len)
	return false;
      b += formatted_len, s -= formatted_len;
      f = p + 1;
    }
  *b = '\0';
  return true;
}

/* Show a time transition.  */
static void
showtrans(char const *time_fmt, struct tm const *tm, time_t t, char const *ab,
	  char const *zone_name)
{
  if (!tm) {
    printf(tformat(), t);
    putchar('\n');
  } else {
    char stackbuf[1000];
    size_t size = sizeof stackbuf;
    char *buf = stackbuf;
    char *bufalloc = NULL;
    while (! istrftime(buf, size, time_fmt, tm, t, ab, zone_name)) {
      size = sumsize(size, size);
      free(bufalloc);
      buf = bufalloc = xmalloc(size);
    }
    puts(buf);
    free(bufalloc);
  }
}

static char const *
abbr(struct tm const *tmp)
{
#ifdef TM_ZONE
	return tmp->TM_ZONE;
#else
# if HAVE_TZNAME
	if (0 <= tmp->tm_isdst && tzname[0 < tmp->tm_isdst])
	  return tzname[0 < tmp->tm_isdst];
# endif
	return "";
#endif
}

/*
** The code below can fail on certain theoretical systems;
** it works on all known real-world systems as of 2004-12-30.
*/

static const char *
tformat(void)
{
	if (0 > (time_t) -1) {		/* signed */
		if (sizeof (time_t) == sizeof (intmax_t))
			return "%"PRIdMAX;
		if (sizeof (time_t) > sizeof (long))
			return "%lld";
		if (sizeof (time_t) > sizeof (int))
			return "%ld";
		return "%d";
	}
#ifdef PRIuMAX
	if (sizeof (time_t) == sizeof (uintmax_t))
		return "%"PRIuMAX;
#endif
	if (sizeof (time_t) > sizeof (unsigned long))
		return "%llu";
	if (sizeof (time_t) > sizeof (unsigned int))
		return "%lu";
	return "%u";
}

static void
dumptime(register const struct tm *timeptr)
{
	static const char	wday_name[][4] = {
		"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
	};
	static const char	mon_name[][4] = {
		"Jan", "Feb", "Mar", "Apr", "May", "Jun",
		"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
	};
	register const char *	wn;
	register const char *	mn;
	register int		lead;
	register int		trail;

	if (timeptr == NULL) {
		printf("NULL");
		return;
	}
	/*
	** The packaged localtime_rz and gmtime_r never put out-of-range
	** values in tm_wday or tm_mon, but since this code might be compiled
	** with other (perhaps experimental) versions, paranoia is in order.
	*/
	if (timeptr->tm_wday < 0 || timeptr->tm_wday >=
		(int) (sizeof wday_name / sizeof wday_name[0]))
			wn = "???";
	else		wn = wday_name[timeptr->tm_wday];
	if (timeptr->tm_mon < 0 || timeptr->tm_mon >=
		(int) (sizeof mon_name / sizeof mon_name[0]))
			mn = "???";
	else		mn = mon_name[timeptr->tm_mon];
	printf("%s %s%3d %.2d:%.2d:%.2d ",
		wn, mn,
		timeptr->tm_mday, timeptr->tm_hour,
		timeptr->tm_min, timeptr->tm_sec);
#define DIVISOR	10
	trail = timeptr->tm_year % DIVISOR + TM_YEAR_BASE % DIVISOR;
	lead = timeptr->tm_year / DIVISOR + TM_YEAR_BASE / DIVISOR +
		trail / DIVISOR;
	trail %= DIVISOR;
	if (trail < 0 && lead > 0) {
		trail += DIVISOR;
		--lead;
	} else if (lead < 0 && trail > 0) {
		trail -= DIVISOR;
		++lead;
	}
	if (lead == 0)
		printf("%d", trail);
	else	printf("%d%d", lead, ((trail < 0) ? -trail : trail));
}
./tzdatabase/tz-link.html0000644000175000017500000014746313536125411015555 0ustar  anthonyanthony


Sources for time zone and daylight saving time data




Sources for time zone and daylight saving time data

Time zone and daylight-saving rules are controlled by individual governments. They are sometimes changed with little notice, and their histories and planned futures are often recorded only fitfully. Here is a summary of attempts to organize and record relevant data in this area.

Outline

The tz database

The public-domain time zone database contains code and data that represent the history of local time for many representative locations around the globe. It is updated periodically to reflect changes made by political bodies to time zone boundaries and daylight saving rules. This database (known as tz, tzdb, or zoneinfo) is used by several implementations, including the GNU C Library (used in GNU/Linux), Android, FreeBSD, NetBSD, OpenBSD, Chromium OS, Cygwin, MINIX, MySQL, webOS, AIX, BlackBerry 10, iOS, macOS, Microsoft Windows, OpenVMS, Oracle Database, and Oracle Solaris.

Each main entry in the database represents a timezone for a set of civil-time clocks that have all agreed since 1970. Timezones are typically identified by continent or ocean and then by the name of the largest city within the region containing the clocks. For example, America/New_York represents most of the US eastern time zone; America/Phoenix represents most of Arizona, which uses mountain time without daylight saving time (DST); America/Detroit represents most of Michigan, which uses eastern time but with different DST rules in 1975; and other entries represent smaller regions like Starke County, Indiana, which switched from central to eastern time in 1991 and switched back in 2006. To use the database on an extended POSIX implementation set the TZ environment variable to the location's full name, e.g., TZ="America/New_York".

Associated with each timezone is a history of offsets from Universal Time (UT), which is Greenwich Mean Time (GMT) with days beginning at midnight; for timestamps after 1960 this is more precisely Coordinated Universal Time (UTC). The database also records when daylight saving time was in use, along with some time zone abbreviations such as EST for Eastern Standard Time in the US.

Downloading the tz database

The following shell commands download the latest release's two tarballs to a GNU/Linux or similar host.

mkdir tzdb
cd tzdb
wget https://www.iana.org/time-zones/repository/tzcode-latest.tar.gz
wget https://www.iana.org/time-zones/repository/tzdata-latest.tar.gz
gzip -dc tzcode-latest.tar.gz | tar -xf -
gzip -dc tzdata-latest.tar.gz | tar -xf -

Alternatively, the following shell commands download the same release in a single-tarball format containing extra data useful for regression testing:

wget https://www.iana.org/time-zones/repository/tzdb-latest.tar.lz
lzip -dc tzdb-latest.tar.lz | tar -xf -

These commands use convenience links to the latest release of the tz database hosted by the Time Zone Database website of the Internet Assigned Numbers Authority (IANA). Older releases are in files named tzcodeV.tar.gz, tzdataV.tar.gz, and tzdb-V.tar.lz, where V is the version. Since 1996, each version has been a four-digit year followed by lower-case letter (a through z, then za through zz, then zza through zzz, and so on). Since version 2016h, each release has contained a text file named "version" whose first (and currently only) line is the version. The releases are also available in an FTP directory via a less-secure protocol.

Alternatively, a development repository of code and data can be retrieved from GitHub via the shell command:

git clone https://github.com/eggert/tz

Since version 2012e, each release has been tagged in development repositories. Untagged commits are less well tested and probably contain more errors.

After obtaining the code and data files, see the README file for what to do next. The code lets you compile the tz source files into machine-readable binary files, one for each location. The binary files are in a special timezone information format (TZif) specified by Internet RFC 8536. The code also lets you read a TZif file and interpret timestamps for that location.

Changes to the tz database

The tz code and data are by no means authoritative. If you find errors, please send changes to tz@iana.org, the time zone mailing list. You can also subscribe to it and browse the archive of old messages. Metadata for mailing list discussions and corresponding data changes can be generated automatically.

If your government plans to change its time zone boundaries or daylight saving rules, inform tz@iana.org well in advance, as this will coordinate updates to many cell phones, computers, and other devices around the world. With less than a year's notice there is a good chance that some computer-based clocks will operate incorrectly after the change, due to delays in propagating updates to software and data. The shorter the notice, the more likely clock problems will arise; see "On the Timing of Time Zone Changes" for examples.

Changes to the tz code and data are often propagated to clients via operating system updates, so client tz data can often be corrected by applying these updates. With GNU/Linux and similar systems, if your maintenance provider has not yet adopted the latest tz data, you can often short-circuit the process by tailoring the generic instructions in the tz README file and installing the latest data yourself. System-specific instructions for installing the latest tz data have also been published for AIX, Android, ICU, IBM and Oracle Java, Joda-Time, MySQL, and Noda Time (see below).

Sources for the tz database are UTF-8 text files with lines terminated by LF, which can be modified by common text editors such as GNU Emacs, gedit, and vim. Specialized source-file editing can be done via the Sublime zoneinfo package for Sublime Text and the VSCode zoneinfo extension for Visual Studio Code.

For further information about updates, please see Procedures for Maintaining the Time Zone Database (Internet RFC 6557). More detail can be found in Theory and pragmatics of the tz code and data. A0 TimeZone Migration displays changes between recent tzdb versions.

Commentary on the tz database

Web sites using recent versions of the tz database

These are listed roughly in ascending order of complexity and fanciness.

Network protocols for tz data

Other tz compilers

Although some of these do not fully support tz data, in recent tzdb distributions you can generally work around compatibility problems by running the command make rearguard_tarballs and compiling from the resulting tarballs instead.

Other TZif readers

  • The GNU C Library has an independent, thread-safe implementation of a TZif file reader. This library is freely available under the LGPL and is widely used in GNU/Linux systems.
  • GNOME's GLib has a TZif file reader written in C that creates a GTimeZone object representing sets of UT offsets. It is freely available under the LGPL.
  • The BDE Standard Library's baltzo::TimeZoneUtil component contains a C++ implementation of a TZif file reader. It is freely available under the Apache License.
  • CCTZ is a simple C++ library that translates between UT and civil time and can read TZif files. It is freely available under the Apache License.
  • ZoneInfo.java is a TZif file reader written in Java. It is freely available under the LGPL.
  • Timelib is a C library that reads TZif files and converts timestamps from one time zone or format to another. It is used by PHP, HHVM, and MongoDB. It is freely available under the MIT license.
  • Timezone is a JavaScript library that supports date arithmetic that is time zone aware. It is freely available under the MIT license.
  • Tcl, mentioned above, also contains a TZif file reader.
  • DateTime::TimeZone::Tzfile is a TZif file reader written in Perl. It is freely available under the same terms as Perl (dual GPL and Artistic license).
  • The public-domain tz.js library contains a Python tool that converts TZif data into JSON-format data suitable for use in its JavaScript library for time zone conversion. Dates before 1970 are not supported.
  • The timezone-olson package contains Haskell code that parses and uses TZif data. It is freely available under a BSD-style license.

Other tz-based time zone software

Other time zone databases

Maps

Time zone boundaries

Geographical boundaries between timezones are available from several geolocation services and other sources.

Civil time concepts and history

National histories of legal time

Australia
The Parliamentary Library commissioned a research paper on daylight saving time in Australia. The Bureau of Meteorology publishes a list of Implementation Dates of Daylight Savings Time within Australia.
Belgium
The Royal Observatory of Belgium maintains a table of time in Belgium (in Dutch and French).
Brazil
The Time Service Department of the National Observatory records Brazil's daylight saving time decrees (in Portuguese).
Canada
National Research Council Canada publishes current and some older information about time zones and daylight saving time.
Chile
The Hydrographic and Oceanographic Service of the Chilean Navy publishes a history of Chile's official time (in Spanish).
China
The Hong Kong Observatory maintains a history of summer time in Hong Kong, and Macau's Meteorological and Geophysical Bureau maintains a similar history for Macau. Unfortunately the latter is incomplete and has errors.
Czech Republic
When daylight saving time starts and ends (in Czech) summarizes and cites historical DST regulations.
Germany
The National Institute for Science and Technology maintains the Realisation of Legal Time in Germany.
Israel
The Interior Ministry periodically issues announcements (in Hebrew).
Italy
The National Institute of Metrological Research publishes a table of civil time (in Italian).
Malaysia
See Singapore below.
Mexico
The Investigation and Analysis Service of the Mexican Library of Congress has published a history of Mexican local time (in Spanish).
Netherlands
Legal time in the Netherlands (in Dutch) covers the history of local time in the Netherlands from ancient times.
New Zealand
The Department of Internal Affairs maintains a brief History of Daylight Saving.
Singapore
Why is Singapore in the "Wrong" Time Zone? details the history of legal time in Singapore and Malaysia.
United Kingdom
History of legal time in Britain discusses in detail the country with perhaps the best-documented history of clock adjustments.
United States
The Department of Transportation's Recent Time Zone Proceedings lists changes to time zone boundaries.
Uruguay
The Oceanography, Hydrography, and Meteorology Service of the Uruguayan Navy (SOHMA) publishes an annual almanac (in Spanish).

Precision timekeeping

  • The Science of Timekeeping is a thorough introduction to the theory and practice of precision timekeeping.
  • The Science of Time 2016 contains several freely-readable papers.
  • NTP: The Network Time Protocol (Internet RFC 5905) discusses how to synchronize clocks of Internet hosts.
  • The Huygens family of software algorithms can achieve accuracy to a few tens of nanoseconds in scalable server farms without special hardware.
  • The Precision Time Protocol (IEEE 1588) can achieve submicrosecond clock accuracy on a local area network with special-purpose hardware.
  • Timezone Options for DHCP (Internet RFC 4833) specifies a DHCP option for a server to configure a client's time zone and daylight saving settings automatically.
  • Astronomical Times explains more abstruse astronomical time scales like TDT, TCG, and TDB. Time Scales goes into more detail, particularly for historical variants.
  • The IAU's SOFA collection contains C and Fortran code for converting among time scales like TAI, TDB, TDT and UTC.
  • Mars24 Sunclock – Time on Mars describes Airy Mean Time (AMT) and the diverse local time scales used by each landed mission on Mars.
  • LeapSecond.com is dedicated not only to leap seconds but to precise time and frequency in general. It covers the state of the art in amateur timekeeping, and how the art has progressed over the past few decades.
  • The rules for leap seconds are specified in Annex 1 (Time scales) of Standard-frequency and time-signal emissions, International Telecommunication Union – Radiocommunication Sector (ITU-R) Recommendation TF.460-6 (02/2002).
  • IERS Bulletins contains official publications of the International Earth Rotation and Reference Systems Service, which decides when leap seconds occur. The tz code and data support leap seconds via an optional "right" configuration, as opposed to the default "posix" configuration.
  • Leap Smear discusses how to gradually adjust POSIX clocks near a leap second so that they disagree with UTC by at most a half second, even though every POSIX minute has exactly sixty seconds. This approach works with the default tz "posix" configuration, is supported by the NTP reference implementation, and is used by major cloud service providers. However, according to §3.7.1 of Network Time Protocol Best Current Practices (Internet RFC 8633), leap smearing is not suitable for applications requiring accurate UTC or civil time, and is intended for use only in single, well-controlled environments.
  • The Leap Second Discussion List covers McCarthy and Klepczynski's 1999 proposal to discontinue leap seconds, discussed further in The leap second: its history and possible future. UTC might be redefined without Leap Seconds gives pointers on this contentious issue, which was active until 2015 and could become active again.

Time notation

  • The Unicode Common Locale Data Repository (CLDR) Project has localizations for time zone names, abbreviations, identifiers, and formats. For example, it contains French translations for "Eastern European Summer Time", "EEST", and "Bucharest". Its by-type charts show these values for many locales. Data values are available in both LDML (an XML format) and JSON.
  • A summary of the international standard date and time notation covers ISO 8601-1:2019 – Date and time – Representations for information interchange – Part 1: Basic rules.
  • XML Schema: Datatypes – dateTime specifies a format inspired by ISO 8601 that is in common use in XML data.
  • §3.3 of Internet Message Format (Internet RFC 5322) specifies the time notation used in email and HTTP headers.
  • Date and Time on the Internet: Timestamps (Internet RFC 3339) specifies an ISO 8601 profile for use in new Internet protocols.
  • Date & Time Formats on the Web surveys web- and Internet-oriented date and time formats.
  • Alphabetic time zone abbreviations should not be used as unique identifiers for UT offsets as they are ambiguous in practice. For example, in English-speaking North America "CST" denotes 6 hours behind UT, but in China it denotes 8 hours ahead of UT, and French-speaking North Americans prefer "HNC" to "CST". The tz database contains English abbreviations for many timestamps; unfortunately some of these abbreviations were merely the database maintainers' inventions, and these have been removed when possible.
  • Numeric time zone abbreviations typically count hours east of UT, e.g., +09 for Japan and −10 for Hawaii. However, the POSIX TZ environment variable uses the opposite convention. For example, one might use TZ="JST-9" and TZ="HST10" for Japan and Hawaii, respectively. If the tz database is available, it is usually better to use settings like TZ="Asia/Tokyo" and TZ="Pacific/Honolulu" instead, as this should avoid confusion, handle old timestamps better, and insulate you better from any future changes to the rules. One should never set POSIX TZ to a value like "GMT-9", though, since this would incorrectly imply that local time is nine hours ahead of UT and the time zone is called "GMT".

See also


This web page is in the public domain, so clarified as of 2009-05-17 by Arthur David Olson.
Please send corrections to this web page to the time zone mailing list.
./tzdatabase/newstrftime.30000644000175000017500000001553313323151404015715 0ustar anthonyanthony.\" strftime man page .\" .\" Based on the UCB file whose corrected copyright information appears below. .\" Copyright 1989, 1991 The Regents of the University of California. .\" All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the American National Standards Committee X3, on Information .\" Processing Systems. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" from: @(#)strftime.3 5.12 (Berkeley) 6/29/91 .\" $Id: strftime.3,v 1.4 1993/12/15 20:33:00 jtc Exp $ .\" .TH NEWSTRFTIME 3 .SH NAME strftime \- format date and time .SH SYNOPSIS .nf .ie \n(.g .ds - \f(CW-\fP .el ds - \- .B #include .PP .B "size_t strftime(char *restrict buf, size_t maxsize," .B " char const *restrict format, struct tm const *restrict timeptr);" .PP .B cc ... \-ltz .fi .SH DESCRIPTION .ie '\(en'' .ds en \- .el .ds en \(en .ie '\(lq'' .ds lq \&"\" .el .ds lq \(lq\" .ie '\(rq'' .ds rq \&"\" .el .ds rq \(rq\" .de q \\$3\*(lq\\$1\*(rq\\$2 .. The .I strftime function formats the information from .I timeptr into the buffer .I buf according to the string pointed to by .IR format . .PP The .I format string consists of zero or more conversion specifications and ordinary characters. All ordinary characters are copied directly into the buffer. A conversion specification consists of a percent sign .Ql % and one other character. .PP No more than .I maxsize characters are placed into the array. If the total number of resulting characters, including the terminating null character, is not more than .IR maxsize , .I strftime returns the number of characters in the array, not counting the terminating null. Otherwise, zero is returned. .PP Each conversion specification is replaced by the characters as follows which are then copied into the buffer. .TP %A is replaced by the locale's full weekday name. .TP %a is replaced by the locale's abbreviated weekday name. .TP %B is replaced by the locale's full month name. .TP %b or %h is replaced by the locale's abbreviated month name. .TP %C is replaced by the century (a year divided by 100 and truncated to an integer) as a decimal number (00\*(en99). .TP %c is replaced by the locale's appropriate date and time representation. .TP %D is replaced by the date in the format %m/%d/%y. .TP %d is replaced by the day of the month as a decimal number (01\*(en31). .TP %e is replaced by the day of month as a decimal number (1\*(en31); single digits are preceded by a blank. .TP %F is replaced by the date in the format %Y\*-%m\*-%d. .TP %G is replaced by the ISO 8601 year with century as a decimal number. .TP %g is replaced by the ISO 8601 year without century as a decimal number (00\*(en99). .TP %H is replaced by the hour (24-hour clock) as a decimal number (00\*(en23). .TP %I is replaced by the hour (12-hour clock) as a decimal number (01\*(en12). .TP %j is replaced by the day of the year as a decimal number (001\*(en366). .TP %k is replaced by the hour (24-hour clock) as a decimal number (0\*(en23); single digits are preceded by a blank. .TP %l is replaced by the hour (12-hour clock) as a decimal number (1\*(en12); single digits are preceded by a blank. .TP %M is replaced by the minute as a decimal number (00\*(en59). .TP %m is replaced by the month as a decimal number (01\*(en12). .TP %n is replaced by a newline. .TP %p is replaced by the locale's equivalent of either AM or PM. .TP %R is replaced by the time in the format %H:%M. .TP %r is replaced by the locale's representation of 12-hour clock time using AM/PM notation. .TP %S is replaced by the second as a decimal number (00\*(en60). .TP %s is replaced by the number of seconds since the Epoch (see newctime(3)). .TP %T is replaced by the time in the format %H:%M:%S. .TP %t is replaced by a tab. .TP %U is replaced by the week number of the year (Sunday as the first day of the week) as a decimal number (00\*(en53). .TP %u is replaced by the weekday (Monday as the first day of the week) as a decimal number (1\*(en7). .TP %V is replaced by the week number of the year (Monday as the first day of the week) as a decimal number (01\*(en53). If the week containing January 1 has four or more days in the new year, then it is week 1; otherwise it is week 53 of the previous year, and the next week is week 1. .TP %W is replaced by the week number of the year (Monday as the first day of the week) as a decimal number (00\*(en53). .TP %w is replaced by the weekday (Sunday as the first day of the week) as a decimal number (0\*(en6). .TP %X is replaced by the locale's appropriate time representation. .TP %x is replaced by the locale's appropriate date representation. .TP %Y is replaced by the year with century as a decimal number. .TP %y is replaced by the year without century as a decimal number (00\*(en99). .TP %Z is replaced by the time zone abbreviation, or by the empty string if this is not determinable. .TP %z is replaced by the offset from the Prime Meridian in the format +HHMM or \*-HHMM as appropriate, with positive values representing locations east of Greenwich, or by the empty string if this is not determinable. The numeric time zone abbreviation \*-0000 is used when the time is Universal Time but local time is indeterminate; by convention this is used for locations while uninhabited, and corresponds to a zero offset when the time zone abbreviation begins with .q "\*-" . .TP %% is replaced by a single %. .TP %+ is replaced by the date and time in date(1) format. .SH SEE ALSO date(1), getenv(3), newctime(3), newtzset(3), time(2), tzfile(5) ./tzdatabase/tzfile.h0000644000175000017500000000763413502033252014732 0ustar anthonyanthony/* Layout and location of TZif files. */ #ifndef TZFILE_H #define TZFILE_H /* ** This file is in the public domain, so clarified as of ** 1996-06-05 by Arthur David Olson. */ /* ** This header is for use ONLY with the time conversion code. ** There is no guarantee that it will remain unchanged, ** or that it will remain at all. ** Do NOT copy it to any system include directory. ** Thank you! */ /* ** Information about time zone files. */ #ifndef TZDIR #define TZDIR "/usr/share/zoneinfo" /* Time zone object file directory */ #endif /* !defined TZDIR */ #ifndef TZDEFAULT #define TZDEFAULT "/etc/localtime" #endif /* !defined TZDEFAULT */ #ifndef TZDEFRULES #define TZDEFRULES "posixrules" #endif /* !defined TZDEFRULES */ /* See Internet RFC 8536 for more details about the following format. */ /* ** Each file begins with. . . */ #define TZ_MAGIC "TZif" struct tzhead { char tzh_magic[4]; /* TZ_MAGIC */ char tzh_version[1]; /* '\0' or '2' or '3' as of 2013 */ char tzh_reserved[15]; /* reserved; must be zero */ char tzh_ttisutcnt[4]; /* coded number of trans. time flags */ char tzh_ttisstdcnt[4]; /* coded number of trans. time flags */ char tzh_leapcnt[4]; /* coded number of leap seconds */ char tzh_timecnt[4]; /* coded number of transition times */ char tzh_typecnt[4]; /* coded number of local time types */ char tzh_charcnt[4]; /* coded number of abbr. chars */ }; /* ** . . .followed by. . . ** ** tzh_timecnt (char [4])s coded transition times a la time(2) ** tzh_timecnt (unsigned char)s types of local time starting at above ** tzh_typecnt repetitions of ** one (char [4]) coded UT offset in seconds ** one (unsigned char) used to set tm_isdst ** one (unsigned char) that's an abbreviation list index ** tzh_charcnt (char)s '\0'-terminated zone abbreviations ** tzh_leapcnt repetitions of ** one (char [4]) coded leap second transition times ** one (char [4]) total correction after above ** tzh_ttisstdcnt (char)s indexed by type; if 1, transition ** time is standard time, if 0, ** transition time is local (wall clock) ** time; if absent, transition times are ** assumed to be local time ** tzh_ttisutcnt (char)s indexed by type; if 1, transition ** time is UT, if 0, transition time is ** local time; if absent, transition ** times are assumed to be local time. ** When this is 1, the corresponding ** std/wall indicator must also be 1. */ /* ** If tzh_version is '2' or greater, the above is followed by a second instance ** of tzhead and a second instance of the data in which each coded transition ** time uses 8 rather than 4 chars, ** then a POSIX-TZ-environment-variable-style string for use in handling ** instants after the last transition time stored in the file ** (with nothing between the newlines if there is no POSIX representation for ** such instants). ** ** If tz_version is '3' or greater, the above is extended as follows. ** First, the POSIX TZ string's hour offset may range from -167 ** through 167 as compared to the POSIX-required 0 through 24. ** Second, its DST start time may be January 1 at 00:00 and its stop ** time December 31 at 24:00 plus the difference between DST and ** standard time, indicating DST all year. */ /* ** In the current implementation, "tzset()" refuses to deal with files that ** exceed any of the limits below. */ #ifndef TZ_MAX_TIMES #define TZ_MAX_TIMES 2000 #endif /* !defined TZ_MAX_TIMES */ #ifndef TZ_MAX_TYPES /* This must be at least 17 for Europe/Samara and Europe/Vilnius. */ #define TZ_MAX_TYPES 256 /* Limited by what (unsigned char)'s can hold */ #endif /* !defined TZ_MAX_TYPES */ #ifndef TZ_MAX_CHARS #define TZ_MAX_CHARS 50 /* Maximum number of abbreviation characters */ /* (limited by what unsigned chars can hold) */ #endif /* !defined TZ_MAX_CHARS */ #ifndef TZ_MAX_LEAPS #define TZ_MAX_LEAPS 50 /* Maximum number of leap second corrections */ #endif /* !defined TZ_MAX_LEAPS */ #endif /* !defined TZFILE_H */ ./tzdatabase/strftime.c0000644000175000017500000003734713314753111015275 0ustar anthonyanthony/* Convert a broken-down timestamp to a string. */ /* Copyright 1989 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* ** Based on the UCB version with the copyright notice appearing above. ** ** This is ANSIish only when "multibyte character == plain character". */ #include "private.h" #include #include #include #ifndef DEPRECATE_TWO_DIGIT_YEARS # define DEPRECATE_TWO_DIGIT_YEARS false #endif struct lc_time_T { const char * mon[MONSPERYEAR]; const char * month[MONSPERYEAR]; const char * wday[DAYSPERWEEK]; const char * weekday[DAYSPERWEEK]; const char * X_fmt; const char * x_fmt; const char * c_fmt; const char * am; const char * pm; const char * date_fmt; }; #define Locale (&C_time_locale) static const struct lc_time_T C_time_locale = { { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }, { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }, { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }, { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }, /* X_fmt */ "%H:%M:%S", /* ** x_fmt ** C99 and later require this format. ** Using just numbers (as here) makes Quakers happier; ** it's also compatible with SVR4. */ "%m/%d/%y", /* ** c_fmt ** C99 and later require this format. ** Previously this code used "%D %X", but we now conform to C99. ** Note that ** "%a %b %d %H:%M:%S %Y" ** is used by Solaris 2.3. */ "%a %b %e %T %Y", /* am */ "AM", /* pm */ "PM", /* date_fmt */ "%a %b %e %H:%M:%S %Z %Y" }; enum warn { IN_NONE, IN_SOME, IN_THIS, IN_ALL }; static char * _add(const char *, char *, const char *); static char * _conv(int, const char *, char *, const char *); static char * _fmt(const char *, const struct tm *, char *, const char *, enum warn *); static char * _yconv(int, int, bool, bool, char *, char const *); #ifndef YEAR_2000_NAME #define YEAR_2000_NAME "CHECK_STRFTIME_FORMATS_FOR_TWO_DIGIT_YEARS" #endif /* !defined YEAR_2000_NAME */ #if HAVE_STRFTIME_L size_t strftime_l(char *s, size_t maxsize, char const *format, struct tm const *t, locale_t locale) { /* Just call strftime, as only the C locale is supported. */ return strftime(s, maxsize, format, t); } #endif size_t strftime(char *s, size_t maxsize, const char *format, const struct tm *t) { char * p; enum warn warn = IN_NONE; tzset(); p = _fmt(format, t, s, s + maxsize, &warn); if (DEPRECATE_TWO_DIGIT_YEARS && warn != IN_NONE && getenv(YEAR_2000_NAME)) { fprintf(stderr, "\n"); fprintf(stderr, "strftime format \"%s\" ", format); fprintf(stderr, "yields only two digits of years in "); if (warn == IN_SOME) fprintf(stderr, "some locales"); else if (warn == IN_THIS) fprintf(stderr, "the current locale"); else fprintf(stderr, "all locales"); fprintf(stderr, "\n"); } if (p == s + maxsize) return 0; *p = '\0'; return p - s; } static char * _fmt(const char *format, const struct tm *t, char *pt, const char *ptlim, enum warn *warnp) { for ( ; *format; ++format) { if (*format == '%') { label: switch (*++format) { case '\0': --format; break; case 'A': pt = _add((t->tm_wday < 0 || t->tm_wday >= DAYSPERWEEK) ? "?" : Locale->weekday[t->tm_wday], pt, ptlim); continue; case 'a': pt = _add((t->tm_wday < 0 || t->tm_wday >= DAYSPERWEEK) ? "?" : Locale->wday[t->tm_wday], pt, ptlim); continue; case 'B': pt = _add((t->tm_mon < 0 || t->tm_mon >= MONSPERYEAR) ? "?" : Locale->month[t->tm_mon], pt, ptlim); continue; case 'b': case 'h': pt = _add((t->tm_mon < 0 || t->tm_mon >= MONSPERYEAR) ? "?" : Locale->mon[t->tm_mon], pt, ptlim); continue; case 'C': /* ** %C used to do a... ** _fmt("%a %b %e %X %Y", t); ** ...whereas now POSIX 1003.2 calls for ** something completely different. ** (ado, 1993-05-24) */ pt = _yconv(t->tm_year, TM_YEAR_BASE, true, false, pt, ptlim); continue; case 'c': { enum warn warn2 = IN_SOME; pt = _fmt(Locale->c_fmt, t, pt, ptlim, &warn2); if (warn2 == IN_ALL) warn2 = IN_THIS; if (warn2 > *warnp) *warnp = warn2; } continue; case 'D': pt = _fmt("%m/%d/%y", t, pt, ptlim, warnp); continue; case 'd': pt = _conv(t->tm_mday, "%02d", pt, ptlim); continue; case 'E': case 'O': /* ** Locale modifiers of C99 and later. ** The sequences ** %Ec %EC %Ex %EX %Ey %EY ** %Od %oe %OH %OI %Om %OM ** %OS %Ou %OU %OV %Ow %OW %Oy ** are supposed to provide alternative ** representations. */ goto label; case 'e': pt = _conv(t->tm_mday, "%2d", pt, ptlim); continue; case 'F': pt = _fmt("%Y-%m-%d", t, pt, ptlim, warnp); continue; case 'H': pt = _conv(t->tm_hour, "%02d", pt, ptlim); continue; case 'I': pt = _conv((t->tm_hour % 12) ? (t->tm_hour % 12) : 12, "%02d", pt, ptlim); continue; case 'j': pt = _conv(t->tm_yday + 1, "%03d", pt, ptlim); continue; case 'k': /* ** This used to be... ** _conv(t->tm_hour % 12 ? ** t->tm_hour % 12 : 12, 2, ' '); ** ...and has been changed to the below to ** match SunOS 4.1.1 and Arnold Robbins' ** strftime version 3.0. That is, "%k" and ** "%l" have been swapped. ** (ado, 1993-05-24) */ pt = _conv(t->tm_hour, "%2d", pt, ptlim); continue; #ifdef KITCHEN_SINK case 'K': /* ** After all this time, still unclaimed! */ pt = _add("kitchen sink", pt, ptlim); continue; #endif /* defined KITCHEN_SINK */ case 'l': /* ** This used to be... ** _conv(t->tm_hour, 2, ' '); ** ...and has been changed to the below to ** match SunOS 4.1.1 and Arnold Robbin's ** strftime version 3.0. That is, "%k" and ** "%l" have been swapped. ** (ado, 1993-05-24) */ pt = _conv((t->tm_hour % 12) ? (t->tm_hour % 12) : 12, "%2d", pt, ptlim); continue; case 'M': pt = _conv(t->tm_min, "%02d", pt, ptlim); continue; case 'm': pt = _conv(t->tm_mon + 1, "%02d", pt, ptlim); continue; case 'n': pt = _add("\n", pt, ptlim); continue; case 'p': pt = _add((t->tm_hour >= (HOURSPERDAY / 2)) ? Locale->pm : Locale->am, pt, ptlim); continue; case 'R': pt = _fmt("%H:%M", t, pt, ptlim, warnp); continue; case 'r': pt = _fmt("%I:%M:%S %p", t, pt, ptlim, warnp); continue; case 'S': pt = _conv(t->tm_sec, "%02d", pt, ptlim); continue; case 's': { struct tm tm; char buf[INT_STRLEN_MAXIMUM( time_t) + 1]; time_t mkt; tm = *t; mkt = mktime(&tm); if (TYPE_SIGNED(time_t)) sprintf(buf, "%"PRIdMAX, (intmax_t) mkt); else sprintf(buf, "%"PRIuMAX, (uintmax_t) mkt); pt = _add(buf, pt, ptlim); } continue; case 'T': pt = _fmt("%H:%M:%S", t, pt, ptlim, warnp); continue; case 't': pt = _add("\t", pt, ptlim); continue; case 'U': pt = _conv((t->tm_yday + DAYSPERWEEK - t->tm_wday) / DAYSPERWEEK, "%02d", pt, ptlim); continue; case 'u': /* ** From Arnold Robbins' strftime version 3.0: ** "ISO 8601: Weekday as a decimal number ** [1 (Monday) - 7]" ** (ado, 1993-05-24) */ pt = _conv((t->tm_wday == 0) ? DAYSPERWEEK : t->tm_wday, "%d", pt, ptlim); continue; case 'V': /* ISO 8601 week number */ case 'G': /* ISO 8601 year (four digits) */ case 'g': /* ISO 8601 year (two digits) */ /* ** From Arnold Robbins' strftime version 3.0: "the week number of the ** year (the first Monday as the first day of week 1) as a decimal number ** (01-53)." ** (ado, 1993-05-24) ** ** From by Markus Kuhn: ** "Week 01 of a year is per definition the first week which has the ** Thursday in this year, which is equivalent to the week which contains ** the fourth day of January. In other words, the first week of a new year ** is the week which has the majority of its days in the new year. Week 01 ** might also contain days from the previous year and the week before week ** 01 of a year is the last week (52 or 53) of the previous year even if ** it contains days from the new year. A week starts with Monday (day 1) ** and ends with Sunday (day 7). For example, the first week of the year ** 1997 lasts from 1996-12-30 to 1997-01-05..." ** (ado, 1996-01-02) */ { int year; int base; int yday; int wday; int w; year = t->tm_year; base = TM_YEAR_BASE; yday = t->tm_yday; wday = t->tm_wday; for ( ; ; ) { int len; int bot; int top; len = isleap_sum(year, base) ? DAYSPERLYEAR : DAYSPERNYEAR; /* ** What yday (-3 ... 3) does ** the ISO year begin on? */ bot = ((yday + 11 - wday) % DAYSPERWEEK) - 3; /* ** What yday does the NEXT ** ISO year begin on? */ top = bot - (len % DAYSPERWEEK); if (top < -3) top += DAYSPERWEEK; top += len; if (yday >= top) { ++base; w = 1; break; } if (yday >= bot) { w = 1 + ((yday - bot) / DAYSPERWEEK); break; } --base; yday += isleap_sum(year, base) ? DAYSPERLYEAR : DAYSPERNYEAR; } #ifdef XPG4_1994_04_09 if ((w == 52 && t->tm_mon == TM_JANUARY) || (w == 1 && t->tm_mon == TM_DECEMBER)) w = 53; #endif /* defined XPG4_1994_04_09 */ if (*format == 'V') pt = _conv(w, "%02d", pt, ptlim); else if (*format == 'g') { *warnp = IN_ALL; pt = _yconv(year, base, false, true, pt, ptlim); } else pt = _yconv(year, base, true, true, pt, ptlim); } continue; case 'v': /* ** From Arnold Robbins' strftime version 3.0: ** "date as dd-bbb-YYYY" ** (ado, 1993-05-24) */ pt = _fmt("%e-%b-%Y", t, pt, ptlim, warnp); continue; case 'W': pt = _conv((t->tm_yday + DAYSPERWEEK - (t->tm_wday ? (t->tm_wday - 1) : (DAYSPERWEEK - 1))) / DAYSPERWEEK, "%02d", pt, ptlim); continue; case 'w': pt = _conv(t->tm_wday, "%d", pt, ptlim); continue; case 'X': pt = _fmt(Locale->X_fmt, t, pt, ptlim, warnp); continue; case 'x': { enum warn warn2 = IN_SOME; pt = _fmt(Locale->x_fmt, t, pt, ptlim, &warn2); if (warn2 == IN_ALL) warn2 = IN_THIS; if (warn2 > *warnp) *warnp = warn2; } continue; case 'y': *warnp = IN_ALL; pt = _yconv(t->tm_year, TM_YEAR_BASE, false, true, pt, ptlim); continue; case 'Y': pt = _yconv(t->tm_year, TM_YEAR_BASE, true, true, pt, ptlim); continue; case 'Z': #ifdef TM_ZONE pt = _add(t->TM_ZONE, pt, ptlim); #elif HAVE_TZNAME if (t->tm_isdst >= 0) pt = _add(tzname[t->tm_isdst != 0], pt, ptlim); #endif /* ** C99 and later say that %Z must be ** replaced by the empty string if the ** time zone abbreviation is not ** determinable. */ continue; case 'z': #if defined TM_GMTOFF || USG_COMPAT || defined ALTZONE { long diff; char const * sign; bool negative; # ifdef TM_GMTOFF diff = t->TM_GMTOFF; # else /* ** C99 and later say that the UT offset must ** be computed by looking only at ** tm_isdst. This requirement is ** incorrect, since it means the code ** must rely on magic (in this case ** altzone and timezone), and the ** magic might not have the correct ** offset. Doing things correctly is ** tricky and requires disobeying the standard; ** see GNU C strftime for details. ** For now, punt and conform to the ** standard, even though it's incorrect. ** ** C99 and later say that %z must be replaced by ** the empty string if the time zone is not ** determinable, so output nothing if the ** appropriate variables are not available. */ if (t->tm_isdst < 0) continue; if (t->tm_isdst == 0) # if USG_COMPAT diff = -timezone; # else continue; # endif else # ifdef ALTZONE diff = -altzone; # else continue; # endif # endif negative = diff < 0; if (diff == 0) { #ifdef TM_ZONE negative = t->TM_ZONE[0] == '-'; #else negative = t->tm_isdst < 0; # if HAVE_TZNAME if (tzname[t->tm_isdst != 0][0] == '-') negative = true; # endif #endif } if (negative) { sign = "-"; diff = -diff; } else sign = "+"; pt = _add(sign, pt, ptlim); diff /= SECSPERMIN; diff = (diff / MINSPERHOUR) * 100 + (diff % MINSPERHOUR); pt = _conv(diff, "%04d", pt, ptlim); } #endif continue; case '+': pt = _fmt(Locale->date_fmt, t, pt, ptlim, warnp); continue; case '%': /* ** X311J/88-090 (4.12.3.5): if conversion char is ** undefined, behavior is undefined. Print out the ** character itself as printf(3) also does. */ default: break; } } if (pt == ptlim) break; *pt++ = *format; } return pt; } static char * _conv(int n, const char *format, char *pt, const char *ptlim) { char buf[INT_STRLEN_MAXIMUM(int) + 1]; sprintf(buf, format, n); return _add(buf, pt, ptlim); } static char * _add(const char *str, char *pt, const char *ptlim) { while (pt < ptlim && (*pt = *str++) != '\0') ++pt; return pt; } /* ** POSIX and the C Standard are unclear or inconsistent about ** what %C and %y do if the year is negative or exceeds 9999. ** Use the convention that %C concatenated with %y yields the ** same output as %Y, and that %Y contains at least 4 bytes, ** with more only if necessary. */ static char * _yconv(int a, int b, bool convert_top, bool convert_yy, char *pt, const char *ptlim) { register int lead; register int trail; #define DIVISOR 100 trail = a % DIVISOR + b % DIVISOR; lead = a / DIVISOR + b / DIVISOR + trail / DIVISOR; trail %= DIVISOR; if (trail < 0 && lead > 0) { trail += DIVISOR; --lead; } else if (lead < 0 && trail > 0) { trail -= DIVISOR; ++lead; } if (convert_top) { if (lead == 0 && trail < 0) pt = _add("-0", pt, ptlim); else pt = _conv(lead, "%02d", pt, ptlim); } if (convert_yy) pt = _conv(((trail < 0) ? -trail : trail), "%02d", pt, ptlim); return pt; } ./tzdatabase/zic.80000644000175000017500000004732213502227234014145 0ustar anthonyanthony.TH ZIC 8 .SH NAME zic \- timezone compiler .SH SYNOPSIS .B zic [ .I option \&... ] [ .I filename \&... ] .SH DESCRIPTION .ie '\(lq'' .ds lq \&"\" .el .ds lq \(lq\" .ie '\(rq'' .ds rq \&"\" .el .ds rq \(rq\" .de q \\$3\*(lq\\$1\*(rq\\$2 .. .ie '\(la'' .ds < < .el .ds < \(la .ie '\(ra'' .ds > > .el .ds > \(ra .ie \n(.g \{\ . ds : \: . ds - \f(CW-\fP .\} .el \{\ . ds : . ds - \- .\} The .B zic program reads text from the file(s) named on the command line and creates the time conversion information files specified in this input. If a .I filename is .q "\*-" , standard input is read. .SH OPTIONS .TP .B "\*-\*-version" Output version information and exit. .TP .B \*-\*-help Output short usage message and exit. .TP .BI "\*-b " bloat Output backward-compatibility data as specified by .IR bloat . If .I bloat is .BR fat , generate additional data entries that work around potential bugs or incompatibilities in older software, such as software that mishandles the 64-bit generated data. If .I bloat is .BR slim , keep the output files small; this can help check for the bugs and incompatibilities. Although the default is currently .BR fat , this is intended to change in future .B zic versions, as software that mishandles the 64-bit data typically mishandles timestamps after the year 2038 anyway. Also see the .B \*-r option for another way to shrink output size. .TP .BI "\*-d " directory Create time conversion information files in the named directory rather than in the standard directory named below. .TP .BI "\*-l " timezone Use .I timezone as local time. .B zic will act as if the input contained a link line of the form .sp .ti +.5i .ta \w'Link\0\0'u +\w'\fItimezone\fP\0\0'u Link \fItimezone\fP localtime .TP .BI "\*-L " leapsecondfilename Read leap second information from the file with the given name. If this option is not used, no leap second information appears in output files. .TP .BI "\*-p " timezone Use .IR timezone 's rules when handling nonstandard TZ strings like "EET\*-2EEST" that lack transition rules. .B zic will act as if the input contained a link line of the form .sp .ti +.5i Link \fItimezone\fP posixrules .sp This feature is obsolete and poorly supported. Among other things it should not be used for timestamps after the year 2037, and it should not be combined with .B "\*-b slim" if .IR timezone 's transitions are at standard time or UT instead of local time. .TP .BR "\*-r " "[\fB@\fP\fIlo\fP][\fB/@\fP\fIhi\fP]" Reduce the size of output files by limiting their applicability to timestamps in the range from .I lo (inclusive) to .I hi (exclusive), where .I lo and .I hi are possibly-signed decimal counts of seconds since the Epoch (1970-01-01 00:00:00 UTC). Omitted counts default to extreme values. For example, .q "zic \*-r @0" omits data intended for negative timestamps (i.e., before the Epoch), and .q "zic \*-r @0/@2147483648" outputs data intended only for nonnegative timestamps that fit into 31-bit signed integers. On platforms with GNU .BR date , .q "zic \-r @$(date +%s)" omits data intended for past timestamps. Also see the .B "\*-b slim" option for another way to shrink output size. .TP .BI "\*-t " file When creating local time information, put the configuration link in the named file rather than in the standard location. .TP .B \*-v Be more verbose, and complain about the following situations: .RS .PP The input specifies a link to a link. .PP A year that appears in a data file is outside the range of representable years. .PP A time of 24:00 or more appears in the input. Pre-1998 versions of .B zic prohibit 24:00, and pre-2007 versions prohibit times greater than 24:00. .PP A rule goes past the start or end of the month. Pre-2004 versions of .B zic prohibit this. .PP A time zone abbreviation uses a .B %z format. Pre-2015 versions of .B zic do not support this. .PP A timestamp contains fractional seconds. Pre-2018 versions of .B zic do not support this. .PP The input contains abbreviations that are mishandled by pre-2018 versions of .B zic due to a longstanding coding bug. These abbreviations include .q L for .q Link , .q mi for .q min , .q Sa for .q Sat , and .q Su for .q Sun . .PP The output file does not contain all the information about the long-term future of a timezone, because the future cannot be summarized as an extended POSIX TZ string. For example, as of 2019 this problem occurs for Iran's daylight-saving rules for the predicted future, as these rules are based on the Iranian calendar, which cannot be represented. .PP The output contains data that may not be handled properly by client code designed for older .B zic output formats. These compatibility issues affect only timestamps before 1970 or after the start of 2038. .PP The output file contains more than 1200 transitions, which may be mishandled by some clients. The current reference client supports at most 2000 transitions; pre-2014 versions of the reference client support at most 1200 transitions. .PP A time zone abbreviation has fewer than 3 or more than 6 characters. POSIX requires at least 3, and requires implementations to support at least 6. .PP An output file name contains a byte that is not an ASCII letter, .q "\*-" , .q "/" , or .q "_" ; or it contains a file name component that contains more than 14 bytes or that starts with .q "\*-" . .RE .SH FILES Input files use the format described in this section; output files use .IR tzfile (5) format. .PP Input files should be text files, that is, they should be a series of zero or more lines, each ending in a newline byte and containing at most 511 bytes, and without any NUL bytes. The input text's encoding is typically UTF-8 or ASCII; it should have a unibyte representation for the POSIX Portable Character Set (PPCS) \* and the encoding's non-unibyte characters should consist entirely of non-PPCS bytes. Non-PPCS characters typically occur only in comments: although output file names and time zone abbreviations can contain nearly any character, other software will work better if these are limited to the restricted syntax described under the .B \*-v option. .PP Input lines are made up of fields. Fields are separated from one another by one or more white space characters. The white space characters are space, form feed, carriage return, newline, tab, and vertical tab. Leading and trailing white space on input lines is ignored. An unquoted sharp character (#) in the input introduces a comment which extends to the end of the line the sharp character appears on. White space characters and sharp characters may be enclosed in double quotes (") if they're to be used as part of a field. Any line that is blank (after comment stripping) is ignored. Nonblank lines are expected to be of one of three types: rule lines, zone lines, and link lines. .PP Names must be in English and are case insensitive. They appear in several contexts, and include month and weekday names and keywords such as .BR "maximum" , .BR "only" , .BR "Rolling" , and .BR "Zone" . A name can be abbreviated by omitting all but an initial prefix; any abbreviation must be unambiguous in context. .PP A rule line has the form .nf .ti +.5i .ta \w'Rule\0\0'u +\w'NAME\0\0'u +\w'FROM\0\0'u +\w'1973\0\0'u +\w'TYPE\0\0'u +\w'Apr\0\0'u +\w'lastSun\0\0'u +\w'2:00w\0\0'u +\w'1:00d\0\0'u .sp Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S .sp For example: .ti +.5i .sp Rule US 1967 1973 \*- Apr lastSun 2:00w 1:00d D .sp .fi The fields that make up a rule line are: .TP "\w'LETTER/S'u" .B NAME Gives the name of the rule set that contains this line. The name must start with a character that is neither an ASCII digit nor .q \*- nor .q + . To allow for future extensions, an unquoted name should not contain characters from the set .q !$%&'()*,/:;<=>?@[\e]^`{|}~ . .TP .B FROM Gives the first year in which the rule applies. Any signed integer year can be supplied; the proleptic Gregorian calendar is assumed, with year 0 preceding year 1. The word .B minimum (or an abbreviation) means the indefinite past. The word .B maximum (or an abbreviation) means the indefinite future. Rules can describe times that are not representable as time values, with the unrepresentable times ignored; this allows rules to be portable among hosts with differing time value types. .TP .B TO Gives the final year in which the rule applies. In addition to .B minimum and .B maximum (as above), the word .B only (or an abbreviation) may be used to repeat the value of the .B FROM field. .TP .B TYPE should be .q \*- and is present for compatibility with older versions of .B zic in which it could contain year types. .TP .B IN Names the month in which the rule takes effect. Month names may be abbreviated. .TP .B ON Gives the day on which the rule takes effect. Recognized forms include: .nf .in +.5i .sp .ta \w'Sun<=25\0\0'u 5 the fifth of the month lastSun the last Sunday in the month lastMon the last Monday in the month Sun>=8 first Sunday on or after the eighth Sun<=25 last Sunday on or before the 25th .fi .in -.5i .sp A weekday name (e.g., .BR "Sunday" ) or a weekday name preceded by .q "last" (e.g., .BR "lastSunday" ) may be abbreviated or spelled out in full. There must be no white space characters within the .B ON field. The .q <= and .q >= constructs can result in a day in the neighboring month; for example, the IN-ON combination .q "Oct Sun>=31" stands for the first Sunday on or after October 31, even if that Sunday occurs in November. .TP .B AT Gives the time of day at which the rule takes effect, relative to 00:00, the start of a calendar day. Recognized forms include: .nf .in +.5i .sp .ta \w'00:19:32.13\0\0'u 2 time in hours 2:00 time in hours and minutes 01:28:14 time in hours, minutes, and seconds 00:19:32.13 time with fractional seconds 12:00 midday, 12 hours after 00:00 15:00 3 PM, 15 hours after 00:00 24:00 end of day, 24 hours after 00:00 260:00 260 hours after 00:00 \*-2:30 2.5 hours before 00:00 \*- equivalent to 0 .fi .in -.5i .sp Although .B zic rounds times to the nearest integer second (breaking ties to the even integer), the fractions may be useful to other applications requiring greater precision. The source format does not specify any maximum precision. Any of these forms may be followed by the letter .B w if the given time is local or .q "wall clock" time, .B s if the given time is standard time without any adjustment for daylight saving, or .B u (or .B g or .BR z ) if the given time is universal time; in the absence of an indicator, local (wall clock) time is assumed. These forms ignore leap seconds; for example, if a leap second occurs at 00:59:60 local time, .q "1:00" stands for 3601 seconds after local midnight instead of the usual 3600 seconds. The intent is that a rule line describes the instants when a clock/calendar set to the type of time specified in the .B AT field would show the specified date and time of day. .TP .B SAVE Gives the amount of time to be added to local standard time when the rule is in effect, and whether the resulting time is standard or daylight saving. This field has the same format as the .B AT field except with a different set of suffix letters: .B s for standard time and .B d for daylight saving time. The suffix letter is typically omitted, and defaults to .B s if the offset is zero and to .B d otherwise. Negative offsets are allowed; in Ireland, for example, daylight saving time is observed in winter and has a negative offset relative to Irish Standard Time. The offset is merely added to standard time; for example, .B zic does not distinguish a 10:30 standard time plus an 0:30 .B SAVE from a 10:00 standard time plus a 1:00 .BR SAVE . .TP .B LETTER/S Gives the .q "variable part" (for example, the .q "S" or .q "D" in .q "EST" or .q "EDT" ) of time zone abbreviations to be used when this rule is in effect. If this field is .q \*- , the variable part is null. .PP A zone line has the form .sp .nf .ti +.5i .ta \w'Zone\0\0'u +\w'Asia/Amman\0\0'u +\w'STDOFF\0\0'u +\w'Jordan\0\0'u +\w'FORMAT\0\0'u Zone NAME STDOFF RULES FORMAT [UNTIL] .sp For example: .sp .ti +.5i Zone Asia/Amman 2:00 Jordan EE%sT 2017 Oct 27 01:00 .sp .fi The fields that make up a zone line are: .TP "\w'STDOFF'u" .B NAME The name of the timezone. This is the name used in creating the time conversion information file for the timezone. It should not contain a file name component .q ".\&" or .q ".." ; a file name component is a maximal substring that does not contain .q "/" . .TP .B STDOFF The amount of time to add to UT to get standard time, without any adjustment for daylight saving. This field has the same format as the .B AT and .B SAVE fields of rule lines; begin the field with a minus sign if time must be subtracted from UT. .TP .B RULES The name of the rules that apply in the timezone or, alternatively, a field in the same format as a rule-line SAVE column, giving of the amount of time to be added to local standard time effect, and whether the resulting time is standard or daylight saving. If this field is .B \*- then standard time always applies. When an amount of time is given, only the sum of standard time and this amount matters. .TP .B FORMAT The format for time zone abbreviations. The pair of characters .B %s is used to show where the .q "variable part" of the time zone abbreviation goes. Alternatively, a format can use the pair of characters .B %z to stand for the UT offset in the form .RI \(+- hh , .RI \(+- hhmm , or .RI \(+- hhmmss , using the shortest form that does not lose information, where .IR hh , .IR mm , and .I ss are the hours, minutes, and seconds east (+) or west (\(mi) of UT. Alternatively, a slash (/) separates standard and daylight abbreviations. To conform to POSIX, a time zone abbreviation should contain only alphanumeric ASCII characters, .q "+" and .q "\*-". .TP .B UNTIL The time at which the UT offset or the rule(s) change for a location. It takes the form of one to four fields YEAR [MONTH [DAY [TIME]]]. If this is specified, the time zone information is generated from the given UT offset and rule change until the time specified, which is interpreted using the rules in effect just before the transition. The month, day, and time of day have the same format as the IN, ON, and AT fields of a rule; trailing fields can be omitted, and default to the earliest possible value for the missing fields. .IP The next line must be a .q "continuation" line; this has the same form as a zone line except that the string .q "Zone" and the name are omitted, as the continuation line will place information starting at the time specified as the .q "until" information in the previous line in the file used by the previous line. Continuation lines may contain .q "until" information, just as zone lines do, indicating that the next line is a further continuation. .PP If a zone changes at the same instant that a rule would otherwise take effect in the earlier zone or continuation line, the rule is ignored. A zone or continuation line .I L with a named rule set starts with standard time by default: that is, any of .IR L 's timestamps preceding .IR L 's earliest rule use the rule in effect after .IR L 's first transition into standard time. In a single zone it is an error if two rules take effect at the same instant, or if two zone changes take effect at the same instant. .PP A link line has the form .sp .nf .ti +.5i .ta \w'Link\0\0'u +\w'Europe/Istanbul\0\0'u Link TARGET LINK-NAME .sp For example: .sp .ti +.5i Link Europe/Istanbul Asia/Istanbul .sp .fi The .B TARGET field should appear as the .B NAME field in some zone line. The .B LINK-NAME field is used as an alternative name for that zone; it has the same syntax as a zone line's .B NAME field. .PP Except for continuation lines, lines may appear in any order in the input. However, the behavior is unspecified if multiple zone or link lines define the same name, or if the source of one link line is the target of another. .PP Lines in the file that describes leap seconds have the following form: .nf .ti +.5i .ta \w'Leap\0\0'u +\w'YEAR\0\0'u +\w'MONTH\0\0'u +\w'DAY\0\0'u +\w'HH:MM:SS\0\0'u +\w'CORR\0\0'u .sp Leap YEAR MONTH DAY HH:MM:SS CORR R/S .sp For example: .ti +.5i .sp Leap 2016 Dec 31 23:59:60 + S .sp .fi The .BR YEAR , .BR MONTH , .BR DAY , and .B HH:MM:SS fields tell when the leap second happened. The .B CORR field should be .q "+" if a second was added or .q "\*-" if a second was skipped. The .B R/S field should be (an abbreviation of) .q "Stationary" if the leap second time given by the other fields should be interpreted as UTC or (an abbreviation of) .q "Rolling" if the leap second time given by the other fields should be interpreted as local (wall clock) time. .SH "EXTENDED EXAMPLE" Here is an extended example of .B zic input, intended to illustrate many of its features. In this example, the EU rules are for the European Union and for its predecessor organization, the European Communities. .br .ne 22 .nf .in +2m .ta \w'# Rule\0\0'u +\w'NAME\0\0'u +\w'FROM\0\0'u +\w'1973\0\0'u +\w'TYPE\0\0'u +\w'Apr\0\0'u +\w'lastSun\0\0'u +\w'2:00\0\0'u +\w'SAVE\0\0'u .sp # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Swiss 1941 1942 \*- May Mon>=1 1:00 1:00 S Rule Swiss 1941 1942 \*- Oct Mon>=1 2:00 0 \*- .sp .5 Rule EU 1977 1980 \*- Apr Sun>=1 1:00u 1:00 S Rule EU 1977 only \*- Sep lastSun 1:00u 0 \*- Rule EU 1978 only \*- Oct 1 1:00u 0 \*- Rule EU 1979 1995 \*- Sep lastSun 1:00u 0 \*- Rule EU 1981 max \*- Mar lastSun 1:00u 1:00 S Rule EU 1996 max \*- Oct lastSun 1:00u 0 \*- .sp .ta \w'# Zone\0\0'u +\w'Europe/Zurich\0\0'u +\w'0:29:45.50\0\0'u +\w'RULES\0\0'u +\w'FORMAT\0\0'u # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Zurich 0:34:08 \*- LMT 1853 Jul 16 0:29:45.50 \*- BMT 1894 Jun 1:00 Swiss CE%sT 1981 1:00 EU CE%sT .sp Link Europe/Zurich Europe/Vaduz .sp .in .fi In this example, the timezone is named Europe/Zurich but it has an alias as Europe/Vaduz. This example says that Zurich was 34 minutes and 8 seconds east of UT until 1853-07-16 at 00:00, when the legal offset was changed to .ds o 7 degrees 26 minutes 22.50 seconds .if \n(.g .if c \(de .if c \(fm .if c \(sd .ds o 7\(de\|26\(fm\|22.50\(sd \*o, which works out to 0:29:45.50; .B zic treats this by rounding it to 0:29:46. After 1894-06-01 at 00:00 the UT offset became one hour and Swiss daylight saving rules (defined with lines beginning with .q "Rule Swiss") apply. From 1981 to the present, EU daylight saving rules have applied, and the UTC offset has remained at one hour. .PP In 1941 and 1942, daylight saving time applied from the first Monday in May at 01:00 to the first Monday in October at 02:00. The pre-1981 EU daylight-saving rules have no effect here, but are included for completeness. Since 1981, daylight saving has begun on the last Sunday in March at 01:00 UTC. Until 1995 it ended the last Sunday in September at 01:00 UTC, but this changed to the last Sunday in October starting in 1996. .PP For purposes of display, .q "LMT" and .q "BMT" were initially used, respectively. Since Swiss rules and later EU rules were applied, the time zone abbreviation has been CET for standard time and CEST for daylight saving time. .SH FILES .TP .I /etc/localtime Default local timezone file. .TP .I /usr/share/zoneinfo Default timezone information directory. .SH NOTES For areas with more than two types of local time, you may need to use local standard time in the .B AT field of the earliest transition time's rule to ensure that the earliest transition time recorded in the compiled file is correct. .PP If, for a particular timezone, a clock advance caused by the start of daylight saving coincides with and is equal to a clock retreat caused by a change in UT offset, .B zic produces a single transition to daylight saving at the new UT offset without any change in local (wall clock) time. To get separate transitions use multiple zone continuation lines specifying transition instants using universal time. .SH SEE ALSO .BR tzfile (5), .BR zdump (8) .\" This file is in the public domain, so clarified as of .\" 2009-05-17 by Arthur David Olson. ./tzdatabase/CONTRIBUTING0000644000175000017500000000626414156146517015133 0ustar anthonyanthony# Contributing to the tz code and data Please do not create issues or pull requests on GitHub, as the proper procedure for proposing and distributing patches is via email as described below. The time zone database is by no means authoritative: governments change timekeeping rules erratically and sometimes with little warning, the data entries do not cover all of civil time before 1970, and undoubtedly errors remain in the code and data. Feel free to fill gaps or fix mistakes, and please email improvements to for use in the future. In your email, please give reliable sources that reviewers can check. ## Contributing technical changes To email small changes, please run a POSIX shell command like 'diff -u old/europe new/europe >myfix.patch', and attach 'myfix.patch' to the email. For more-elaborate or possibly-controversial changes, such as renaming, adding or removing zones, please read "Theory and pragmatics of the tz code and data" . It is also good to browse the mailing list archives for examples of patches that tend to work well. Additions to data should contain commentary citing reliable sources as justification. Citations should use "https:" URLs if available. For changes that fix sensitive security-related bugs, please see the distribution's 'SECURITY' file. Please submit changes against either the latest release or the main branch of the development repository. The latter is preferred. ## Sample Git workflow for developing contributions If you use Git the following workflow may be helpful: * Copy the development repository. git clone https://github.com/eggert/tz.git cd tz * Get current with the main branch. git checkout main git pull * Switch to a new branch for the changes. Choose a different branch name for each change set. git checkout -b mybranch * Sleuth by using 'git blame'. For example, when fixing data for Africa/Sao_Tome, if the command 'git blame africa' outputs a line '2951fa3b (Paul Eggert 2018-01-08 09:03:13 -0800 1068) Zone Africa/Sao_Tome 0:26:56 - LMT 1884', commit 2951fa3b should provide some justification for the 'Zone Africa/Sao_Tome' line. * Edit source files. Include commentary that justifies the changes by citing reliable sources. * Debug the changes, e.g.: make check make install ./zdump -v America/Los_Angeles * For each separable change, commit it in the new branch, e.g.: git add northamerica git commit See recent 'git log' output for the commit-message style. * Create patch files 0001-..., 0002-..., ... git format-patch main * After reviewing the patch files, send the patches to for others to review. git send-email main For an archived example of such an email, see "[PROPOSED] Fix off-by-1 error for Jamaica and T&C before 1913" . * Start anew by getting current with the main branch again (the second step above). ----- This file is in the public domain. ./tzdatabase/asctime.c0000644000175000017500000001003513264711716015057 0ustar anthonyanthony/* asctime and asctime_r a la POSIX and ISO C, except pad years before 1000. */ /* ** This file is in the public domain, so clarified as of ** 1996-06-05 by Arthur David Olson. */ /* ** Avoid the temptation to punt entirely to strftime; ** the output of strftime is supposed to be locale specific ** whereas the output of asctime is supposed to be constant. */ /*LINTLIBRARY*/ #include "private.h" #include /* ** Some systems only handle "%.2d"; others only handle "%02d"; ** "%02.2d" makes (most) everybody happy. ** At least some versions of gcc warn about the %02.2d; ** we conditionalize below to avoid the warning. */ /* ** All years associated with 32-bit time_t values are exactly four digits long; ** some years associated with 64-bit time_t values are not. ** Vintage programs are coded for years that are always four digits long ** and may assume that the newline always lands in the same place. ** For years that are less than four digits, we pad the output with ** leading zeroes to get the newline in the traditional place. ** The -4 ensures that we get four characters of output even if ** we call a strftime variant that produces fewer characters for some years. ** The ISO C and POSIX standards prohibit padding the year, ** but many implementations pad anyway; most likely the standards are buggy. */ #ifdef __GNUC__ #define ASCTIME_FMT "%s %s%3d %2.2d:%2.2d:%2.2d %-4s\n" #else /* !defined __GNUC__ */ #define ASCTIME_FMT "%s %s%3d %02.2d:%02.2d:%02.2d %-4s\n" #endif /* !defined __GNUC__ */ /* ** For years that are more than four digits we put extra spaces before the year ** so that code trying to overwrite the newline won't end up overwriting ** a digit within a year and truncating the year (operating on the assumption ** that no output is better than wrong output). */ #ifdef __GNUC__ #define ASCTIME_FMT_B "%s %s%3d %2.2d:%2.2d:%2.2d %s\n" #else /* !defined __GNUC__ */ #define ASCTIME_FMT_B "%s %s%3d %02.2d:%02.2d:%02.2d %s\n" #endif /* !defined __GNUC__ */ #define STD_ASCTIME_BUF_SIZE 26 /* ** Big enough for something such as ** ??? ???-2147483648 -2147483648:-2147483648:-2147483648 -2147483648\n ** (two three-character abbreviations, five strings denoting integers, ** seven explicit spaces, two explicit colons, a newline, ** and a trailing NUL byte). ** The values above are for systems where an int is 32 bits and are provided ** as an example; the define below calculates the maximum for the system at ** hand. */ #define MAX_ASCTIME_BUF_SIZE (2*3+5*INT_STRLEN_MAXIMUM(int)+7+2+1+1) static char buf_asctime[MAX_ASCTIME_BUF_SIZE]; char * asctime_r(register const struct tm *timeptr, char *buf) { static const char wday_name[][4] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; static const char mon_name[][4] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; register const char * wn; register const char * mn; char year[INT_STRLEN_MAXIMUM(int) + 2]; char result[MAX_ASCTIME_BUF_SIZE]; if (timeptr == NULL) { errno = EINVAL; return strcpy(buf, "??? ??? ?? ??:??:?? ????\n"); } if (timeptr->tm_wday < 0 || timeptr->tm_wday >= DAYSPERWEEK) wn = "???"; else wn = wday_name[timeptr->tm_wday]; if (timeptr->tm_mon < 0 || timeptr->tm_mon >= MONSPERYEAR) mn = "???"; else mn = mon_name[timeptr->tm_mon]; /* ** Use strftime's %Y to generate the year, to avoid overflow problems ** when computing timeptr->tm_year + TM_YEAR_BASE. ** Assume that strftime is unaffected by other out-of-range members ** (e.g., timeptr->tm_mday) when processing "%Y". */ strftime(year, sizeof year, "%Y", timeptr); /* ** We avoid using snprintf since it's not available on all systems. */ sprintf(result, ((strlen(year) <= 4) ? ASCTIME_FMT : ASCTIME_FMT_B), wn, mn, timeptr->tm_mday, timeptr->tm_hour, timeptr->tm_min, timeptr->tm_sec, year); if (strlen(result) < STD_ASCTIME_BUF_SIZE || buf == buf_asctime) return strcpy(buf, result); else { errno = EOVERFLOW; return NULL; } } char * asctime(register const struct tm *timeptr) { return asctime_r(timeptr, buf_asctime); } ./tzdatabase/SECURITY0000644000175000017500000000140514037475766014474 0ustar anthonyanthonyPlease report any sensitive security-related bugs via email to the tzdb designated coordinators, currently Paul Eggert and Tim Parenti . Put "tzdb security" at the start of your email's subject line. We prefer communications to be in English. You should receive a response within a week. If not, please follow up via email to make sure we received your original message. If we confirm the bug, we plan to notify affected third-party services or software that we know about, prepare an advisory, commit fixes to the main development branch as quickly as is practical, and finally publish the advisory on tz@iana.org. As with all tzdb contributions, we give credit to security contributors unless they wish to remain anonymous. ./tzdatabase/pacificnew0000644000175000017500000000234113501635421015312 0ustar anthonyanthony# tzdb data for proposed US election time (this file is obsolete) # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. # From Arthur David Olson (1989-04-05): # On 1989-04-05, the U. S. House of Representatives passed (238-154) a bill # establishing "Pacific Presidential Election Time"; it was not acted on # by the Senate or signed into law by the President. # You might want to change the "PE" (Presidential Election) below to # "Q" (Quadrennial) to maintain three-character zone abbreviations. # If you're really conservative, you might want to change it to "D". # Avoid "L" (Leap Year), which won't be true in 2100. # If Presidential Election Time is ever established, replace "XXXX" below # with the year the law takes effect and uncomment the "##" lines. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S ## Rule Twilite XXXX max - Apr Sun>=1 2:00 1:00 D ## Rule Twilite XXXX max uspres Oct lastSun 2:00 1:00 PE ## Rule Twilite XXXX max uspres Nov Sun>=7 2:00 0 S ## Rule Twilite XXXX max nonpres Oct lastSun 2:00 0 S # Zone NAME STDOFF RULES/SAVE FORMAT [UNTIL] ## Zone America/Los_Angeles-PET -8:00 US P%sT XXXX ## -8:00 Twilite P%sT # For now... Link America/Los_Angeles US/Pacific-New ## ./tzdatabase/newctime.30000644000175000017500000001752013314753111015162 0ustar anthonyanthony.TH NEWCTIME 3 .SH NAME asctime, ctime, difftime, gmtime, localtime, mktime \- convert date and time .SH SYNOPSIS .nf .ie \n(.g .ds - \f(CW-\fP .el ds - \- .B #include .PP .BR "extern char *tzname[];" " /\(** (optional) \(**/" .PP .B char *ctime(time_t const *clock); .PP .B char *ctime_r(time_t const *clock, char *buf); .PP .B double difftime(time_t time1, time_t time0); .PP .B char *asctime(struct tm const *tm); .PP .B "char *asctime_r(struct tm const *restrict tm," .B " char *restrict result);" .PP .B struct tm *localtime(time_t const *clock); .PP .B "struct tm *localtime_r(time_t const *restrict clock," .B " struct tm *restrict result);" .PP .B "struct tm *localtime_rz(timezone_t restrict zone," .B " time_t const *restrict clock," .B " struct tm *restrict result);" .PP .B struct tm *gmtime(time_t const *clock); .PP .B "struct tm *gmtime_r(time_t const *restrict clock," .B " struct tm *restrict result);" .PP .B time_t mktime(struct tm *tm); .PP .B "time_t mktime_z(timezone_t restrict zone," .B " struct tm *restrict tm);" .PP .B cc ... \*-ltz .fi .SH DESCRIPTION .ie '\(en'' .ds en \- .el .ds en \(en .ie '\(lq'' .ds lq \&"\" .el .ds lq \(lq\" .ie '\(rq'' .ds rq \&"\" .el .ds rq \(rq\" .de q \\$3\*(lq\\$1\*(rq\\$2 .. .I Ctime converts a long integer, pointed to by .IR clock , and returns a pointer to a string of the form .br .ce .eo Thu Nov 24 18:22:48 1986\n\0 .br .ec Years requiring fewer than four characters are padded with leading zeroes. For years longer than four characters, the string is of the form .br .ce .eo Thu Nov 24 18:22:48 81986\n\0 .ec .br with five spaces before the year. These unusual formats are designed to make it less likely that older software that expects exactly 26 bytes of output will mistakenly output misleading values for out-of-range years. .PP The .BI * clock timestamp represents the time in seconds since 1970-01-01 00:00:00 Coordinated Universal Time (UTC). The POSIX standard says that timestamps must be nonnegative and must ignore leap seconds. Many implementations extend POSIX by allowing negative timestamps, and can therefore represent timestamps that predate the introduction of UTC and are some other flavor of Universal Time (UT). Some implementations support leap seconds, in contradiction to POSIX. .PP .I Localtime and .I gmtime return pointers to .q "tm" structures, described below. .I Localtime corrects for the time zone and any time zone adjustments (such as Daylight Saving Time in the United States). After filling in the .q "tm" structure, .I localtime sets the .BR tm_isdst 'th element of .B tzname to a pointer to a string that's the time zone abbreviation to be used with .IR localtime 's return value. .PP .I Gmtime converts to Coordinated Universal Time. .PP .I Asctime converts a time value contained in a .q "tm" structure to a string, as shown in the above example, and returns a pointer to the string. .PP .I Mktime converts the broken-down time, expressed as local time, in the structure pointed to by .I tm into a calendar time value with the same encoding as that of the values returned by the .I time function. The original values of the .B tm_wday and .B tm_yday components of the structure are ignored, and the original values of the other components are not restricted to their normal ranges. (A positive or zero value for .B tm_isdst causes .I mktime to presume initially that daylight saving time respectively, is or is not in effect for the specified time. A negative value for .B tm_isdst causes the .I mktime function to attempt to divine whether daylight saving time is in effect for the specified time; in this case it does not use a consistent rule and may give a different answer when later presented with the same argument.) On successful completion, the values of the .B tm_wday and .B tm_yday components of the structure are set appropriately, and the other components are set to represent the specified calendar time, but with their values forced to their normal ranges; the final value of .B tm_mday is not set until .B tm_mon and .B tm_year are determined. .I Mktime returns the specified calendar time; If the calendar time cannot be represented, it returns \-1. .PP .I Difftime returns the difference between two calendar times, .RI ( time1 \- .IR time0 ), expressed in seconds. .PP .IR Ctime_r , .IR localtime_r , .IR gmtime_r , and .I asctime_r are like their unsuffixed counterparts, except that they accept an additional argument specifying where to store the result if successful. .PP .IR Localtime_rz and .I mktime_z are like their unsuffixed counterparts, except that they accept an extra initial .B zone argument specifying the timezone to be used for conversion. If .B zone is null, UT is used; otherwise, .B zone should be have been allocated by .I tzalloc and should not be freed until after all uses (e.g., by calls to .IR strftime ) of the filled-in .B tm_zone fields. .PP Declarations of all the functions and externals, and the .q "tm" structure, are in the .B header file. The structure (of type) .B struct tm includes the following fields: .RS .PP .nf .ta 2n +\w'long tm_gmtoff;nn'u int tm_sec; /\(** seconds (0\*(en60) \(**/ int tm_min; /\(** minutes (0\*(en59) \(**/ int tm_hour; /\(** hours (0\*(en23) \(**/ int tm_mday; /\(** day of month (1\*(en31) \(**/ int tm_mon; /\(** month of year (0\*(en11) \(**/ int tm_year; /\(** year \- 1900 \(**/ int tm_wday; /\(** day of week (Sunday = 0) \(**/ int tm_yday; /\(** day of year (0\*(en365) \(**/ int tm_isdst; /\(** is daylight saving time in effect? \(**/ char \(**tm_zone; /\(** time zone abbreviation (optional) \(**/ long tm_gmtoff; /\(** offset from UT in seconds (optional) \(**/ .fi .RE .PP .I Tm_isdst is non-zero if daylight saving time is in effect. .PP .I Tm_gmtoff is the offset (in seconds) of the time represented from UT, with positive values indicating east of the Prime Meridian. The field's name is derived from Greenwich Mean Time, a precursor of UT. .PP In .B struct tm the .I tm_zone and .I tm_gmtoff fields exist, and are filled in, only if arrangements to do so were made when the library containing these functions was created. Similarly, the .B tzname variable is optional. There is no guarantee that these fields and this variable will continue to exist in this form in future releases of this code. .SH FILES .ta \w'/usr/share/zoneinfo/posixrules\0\0'u /usr/share/zoneinfo timezone information directory .br /usr/share/zoneinfo/localtime local timezone file .br /usr/share/zoneinfo/posixrules used with POSIX-style TZ's .br /usr/share/zoneinfo/GMT for UTC leap seconds .sp If .B /usr/share/zoneinfo/GMT is absent, UTC leap seconds are loaded from .BR /usr/share/zoneinfo/posixrules . .SH SEE ALSO getenv(3), newstrftime(3), newtzset(3), time(2), tzfile(5) .SH NOTES The return values of .IR asctime , .IR ctime , .IR gmtime , and .I localtime point to static data overwritten by each call. The .B tzname variable (once set) and the .B tm_zone field of a returned .B "struct tm" both point to an array of characters that can be freed or overwritten by later calls to the functions .IR localtime , .IR tzfree , and .IR tzset , if these functions affect the timezone information that specifies the abbreviation in question. The remaining functions and data are thread-safe. .PP .IR Asctime , .IR asctime_r , .IR ctime , and .I ctime_r behave strangely for years before 1000 or after 9999. The 1989 and 1999 editions of the C Standard say that years from \-99 through 999 are converted without extra spaces, but this conflicts with longstanding tradition and with this implementation. The 2011 edition says that the behavior is undefined if the year is before 1000 or after 9999. Traditional implementations of these two functions are restricted to years in the range 1900 through 2099. To avoid this portability mess, new programs should use .I strftime instead. .\" This file is in the public domain, so clarified as of .\" 2009-05-17 by Arthur David Olson. ./tzdatabase/leapseconds.awk0000644000175000017500000002127114270155152016270 0ustar anthonyanthony# Generate zic format 'leapseconds' from NIST format 'leap-seconds.list'. # This file is in the public domain. # This program uses awk arithmetic. POSIX requires awk to support # exact integer arithmetic only through 10**10, which means for NTP # timestamps this program works only to the year 2216, which is the # year 1900 plus 10**10 seconds. However, in practice # POSIX-conforming awk implementations invariably use IEEE-754 double # and so support exact integers through 2**53. By the year 2216, # POSIX will almost surely require at least 2**53 for awk, so for NTP # timestamps this program should be good until the year 285,428,681 # (the year 1900 plus 2**53 seconds). By then leap seconds will be # long obsolete, as the Earth will likely slow down so much that # there will be more than 25 hours per day and so some other scheme # will be needed. BEGIN { print "# Allowance for leap seconds added to each time zone file." print "" print "# This file is in the public domain." print "" print "# This file is generated automatically from the data in the public-domain" print "# NIST format leap-seconds.list file, which can be copied from" print "# " print "# or ." print "# The NIST file is used instead of its IERS upstream counterpart" print "# " print "# because under US law the NIST file is public domain" print "# whereas the IERS file's copyright and license status is unclear." print "# For more about leap-seconds.list, please see" print "# The NTP Timescale and Leap Seconds" print "# ." print "" print "# The rules for leap seconds are specified in Annex 1 (Time scales) of:" print "# Standard-frequency and time-signal emissions." print "# International Telecommunication Union - Radiocommunication Sector" print "# (ITU-R) Recommendation TF.460-6 (02/2002)" print "# ." print "# The International Earth Rotation and Reference Systems Service (IERS)" print "# periodically uses leap seconds to keep UTC to within 0.9 s of UT1" print "# (a proxy for Earth's angle in space as measured by astronomers)" print "# and publishes leap second data in a copyrighted file" print "# ." print "# See: Levine J. Coordinated Universal Time and the leap second." print "# URSI Radio Sci Bull. 2016;89(4):30-6. doi:10.23919/URSIRSB.2016.7909995" print "# ." print "" print "# There were no leap seconds before 1972, as no official mechanism" print "# accounted for the discrepancy between atomic time (TAI) and the earth's" print "# rotation. The first (\"1 Jan 1972\") data line in leap-seconds.list" print "# does not denote a leap second; it denotes the start of the current definition" print "# of UTC." print "" print "# All leap-seconds are Stationary (S) at the given UTC time." print "# The correction (+ or -) is made at the given time, so in the unlikely" print "# event of a negative leap second, a line would look like this:" print "# Leap YEAR MON DAY 23:59:59 - S" print "# Typical lines look like this:" print "# Leap YEAR MON DAY 23:59:60 + S" monthabbr[ 1] = "Jan" monthabbr[ 2] = "Feb" monthabbr[ 3] = "Mar" monthabbr[ 4] = "Apr" monthabbr[ 5] = "May" monthabbr[ 6] = "Jun" monthabbr[ 7] = "Jul" monthabbr[ 8] = "Aug" monthabbr[ 9] = "Sep" monthabbr[10] = "Oct" monthabbr[11] = "Nov" monthabbr[12] = "Dec" sstamp_init() } # In case the input has CRLF form a la NIST. { sub(/\r$/, "") } /^#[ \t]*[Uu]pdated through/ || /^#[ \t]*[Ff]ile expires on/ { last_lines = last_lines $0 "\n" } /^#[$][ \t]/ { updated = $2 } /^#[@][ \t]/ { expires = $2 } /^[ \t]*#/ { next } { NTP_timestamp = $1 TAI_minus_UTC = $2 if (old_TAI_minus_UTC) { if (old_TAI_minus_UTC < TAI_minus_UTC) { sign = "23:59:60\t+" } else { sign = "23:59:59\t-" } sstamp_to_ymdhMs(NTP_timestamp - 1, ss_NTP) printf "Leap\t%d\t%s\t%d\t%s\tS\n", \ ss_year, monthabbr[ss_month], ss_mday, sign } old_TAI_minus_UTC = TAI_minus_UTC } END { sstamp_to_ymdhMs(expires, ss_NTP) print "" print "# UTC timestamp when this leap second list expires." print "# Any additional leap seconds will come after this." if (! EXPIRES_LINE) { print "# This Expires line is commented out for now," print "# so that pre-2020a zic implementations do not reject this file." } printf "%sExpires %.4d\t%s\t%.2d\t%.2d:%.2d:%.2d\n", \ EXPIRES_LINE ? "" : "#", \ ss_year, monthabbr[ss_month], ss_mday, ss_hour, ss_min, ss_sec # The difference between the NTP and POSIX epochs is 70 years # (including 17 leap days), each 24 hours of 60 minutes of 60 # seconds each. epoch_minus_NTP = ((1970 - 1900) * 365 + 17) * 24 * 60 * 60 print "" print "# POSIX timestamps for the data in this file:" sstamp_to_ymdhMs(updated, ss_NTP) printf "#updated %d (%.4d-%.2d-%.2d %.2d:%.2d:%.2d UTC)\n", \ updated - epoch_minus_NTP, \ ss_year, ss_month, ss_mday, ss_hour, ss_min, ss_sec sstamp_to_ymdhMs(expires, ss_NTP) printf "#expires %d (%.4d-%.2d-%.2d %.2d:%.2d:%.2d UTC)\n", \ expires - epoch_minus_NTP, \ ss_year, ss_month, ss_mday, ss_hour, ss_min, ss_sec printf "\n%s", last_lines } # sstamp_to_ymdhMs - convert seconds timestamp to date and time # # Call as: # # sstamp_to_ymdhMs(sstamp, epoch_days) # # where: # # sstamp - is the seconds timestamp. # epoch_days - is the timestamp epoch in Gregorian days since 1600-03-01. # ss_NTP is appropriate for an NTP sstamp. # # Both arguments should be nonnegative integers. # On return, the following variables are set based on sstamp: # # ss_year - Gregorian calendar year # ss_month - month of the year (1-January to 12-December) # ss_mday - day of the month (1-31) # ss_hour - hour (0-23) # ss_min - minute (0-59) # ss_sec - second (0-59) # ss_wday - day of week (0-Sunday to 6-Saturday) # # The function sstamp_init should be called prior to using sstamp_to_ymdhMs. function sstamp_init() { # Days in month N, where March is month 0 and January month 10. ss_mon_days[ 0] = 31 ss_mon_days[ 1] = 30 ss_mon_days[ 2] = 31 ss_mon_days[ 3] = 30 ss_mon_days[ 4] = 31 ss_mon_days[ 5] = 31 ss_mon_days[ 6] = 30 ss_mon_days[ 7] = 31 ss_mon_days[ 8] = 30 ss_mon_days[ 9] = 31 ss_mon_days[10] = 31 # Counts of days in a Gregorian year, quad-year, century, and quad-century. ss_year_days = 365 ss_quadyear_days = ss_year_days * 4 + 1 ss_century_days = ss_quadyear_days * 25 - 1 ss_quadcentury_days = ss_century_days * 4 + 1 # Standard day epochs, suitable for epoch_days. # ss_MJD = 94493 # ss_POSIX = 135080 ss_NTP = 109513 } function sstamp_to_ymdhMs(sstamp, epoch_days, \ quadcentury, century, quadyear, year, month, day) { ss_hour = int(sstamp / 3600) % 24 ss_min = int(sstamp / 60) % 60 ss_sec = sstamp % 60 # Start with a count of days since 1600-03-01 Gregorian. day = epoch_days + int(sstamp / (24 * 60 * 60)) # Compute a year-month-day date with days of the month numbered # 0-30, months (March-February) numbered 0-11, and years that start # start March 1 and end after the last day of February. A quad-year # starts on March 1 of a year evenly divisible by 4 and ends after # the last day of February 4 years later. A century starts on and # ends before March 1 in years evenly divisible by 100. # A quad-century starts on and ends before March 1 in years divisible # by 400. While the number of days in a quad-century is a constant, # the number of days in each other time period can vary by 1. # Any variation is in the last day of the time period (there might # or might not be a February 29) where it is easy to deal with. quadcentury = int(day / ss_quadcentury_days) day -= quadcentury * ss_quadcentury_days ss_wday = (day + 3) % 7 century = int(day / ss_century_days) century -= century == 4 day -= century * ss_century_days quadyear = int(day / ss_quadyear_days) day -= quadyear * ss_quadyear_days year = int(day / ss_year_days) year -= year == 4 day -= year * ss_year_days for (month = 0; month < 11; month++) { if (day < ss_mon_days[month]) break day -= ss_mon_days[month] } # Convert the date to a conventional day of month (1-31), # month (1-12, January-December) and Gregorian year. ss_mday = day + 1 if (month <= 9) { ss_month = month + 3 } else { ss_month = month - 9 year++ } ss_year = 1600 + quadcentury * 400 + century * 100 + quadyear * 4 + year } ./tzdatabase/tz-art.html0000644000175000017500000006417213474302444015405 0ustar anthonyanthony Time and the Arts

Time and the Arts

Documentaries

Movies

  • In the 1946 movie A Matter of Life and Death (U.S. title Stairway to Heaven) there is a reference to British Double Summer Time. The time does not play a large part in the plot; it's just a passing reference to the time when one of the characters was supposed to have died (but didn't). (IMDb entry.) (Dave Cantor)
  • The 1953 railway comedy movie The Titfield Thunderbolt includes a play on words on British Double Summer Time. Valentine's wife wants him to leave the pub and asks him, "Do you know what time it is?" And he, happy where he is, replies: "Yes, my love. Summer double time." (IMDb entry.) (Mark Brader, 2009-10-02)
  • The premise of the 1999 caper movie Entrapment involves computers in an international banking network being shut down briefly at midnight in each time zone to avoid any problems at the transition from the year 1999 to 2000 in that zone. (Hmmmm.) If this shutdown is extended by 10 seconds, it will create a one-time opportunity for a gigantic computerized theft. To achieve this, at one location the crooks interfere with the microwave system supplying time signals to the computer, advancing the time by 0.1 second each minute over the last hour of 1999. (So this movie teaches us that 0.1 × 60 = 10.) (IMDb entry.) (Mark Brader, 2009-10-02)
  • One mustn't forget the trailer (2014; 2:23) for the movie Daylight Saving.

TV episodes

  • An episode of The Adventures of Superman entitled "The Mysterious Cube," first aired 1958-02-24, had Superman convincing the controllers of the Arlington Time Signal to broadcast ahead of actual time; doing so got a crook trying to be declared dead to emerge a bit too early from the titular enclosure. (IMDb entry.)
  • "The Chimes of Big Ben", The Prisoner, episode 2, ITC, 1967-10-06. Our protagonist tumbles to the fraudulent nature of a Poland-to-England escape upon hearing "Big Ben" chiming on Polish local time. (IMDb entry.)
  • "The Susie", Seinfeld, season 8, episode 15, NBC, 1997-02-13. Kramer decides that daylight saving time isn't coming fast enough, so he sets his watch ahead an hour.
  • "20 Hours in America", The West Wing, season 4, episodes 1–2, 2002-09-25, contained a scene that saw White House staffers stranded in Indiana; they thought they had time to catch Air Force One but were done in by intra-Indiana local time changes.
  • "In what time zone would you find New York City?" was a $200 question on the 1999-11-13 United States airing of Who Wants to Be a Millionaire?, and "In 1883, what industry led the movement to divide the U.S. into four time zones?" was a $32,000 question on the 2001-05-23 United States airing of the same show. At this rate, the million-dollar time-zone question should have been asked 2002-06-04.
  • A private jet's mid-flight change of time zones distorts Alison Dubois' premonition in the "We Had a Dream" episode of Medium (originally aired 2007-02-28).
  • In the 30 Rock episode "Anna Howard Shaw Day" (first broadcast 2010-02-11), Jack Donaghy's date realizes that a Geneva-to-New-York business phone call received in the evening must be fake given the difference in local times.
  • In the "Run by the Monkeys" episode of Da Vinci's Inquest (first broadcast 2002-11-17), a witness in a five-year-old fire case realizes they may not have set their clock back when daylight saving ended on the day of the fire, introducing the possibility of an hour when arson might have occurred.
  • In "The Todd Couple" episode of Outsourced (first aired 2011-02-10), Manmeet sets up Valentine's Day teledates for 6:00 and 9:00pm; since one is with a New Yorker and the other with a San Franciscan, hilarity ensues. (Never mind that this should be 7:30am in Mumbai, yet for some reason the show proceeds as though it's also mid-evening there.)
  • In the "14 Days to Go"/"T Minus..." episode of You, Me and the Apocalypse (first aired 2015-11-11 in the UK, 2016-03-10 in the US), the success of a mission to deal with a comet hinges on whether or not Russia observes daylight saving time. (In the US, the episode first aired in the week before the switch to DST.)
  • "The Lost Hour", Eerie, Indiana, episode 10, NBC, 1991-12-01. Despite Indiana's then-lack of DST, Marshall changes his clock with unusual consequences. See "Eerie, Indiana was a few dimensions ahead of its time".
  • "Time Tunnel", The Adventures of Pete & Pete, season 2, episode 5, Nickelodeon, 1994-10-23. The two Petes travel back in time an hour on the day that DST ends.
  • "King-Size Homer", The Simpsons, episode 135, Fox, 1995-11-05. Homer, working from home, remarks "8:58, first time I've ever been early for work. Except for all those daylight savings days. Lousy farmers."
  • Last Week Tonight with John Oliver, season 2, episode 5, 2015-03-08, asked, "Daylight Saving Time – How Is This Still A Thing?"
  • "Tracks", The Good Wife, season 7, episode 12, CBS, 2016-01-17. The applicability of a contract hinges on the time zone associated with a video timestamp.
  • "Justice", Veep, season 6, episode 4, HBO, 2017-05-07. Jonah's inability to understand DST ends up impressing a wealthy backer who sets him up for a 2020 presidential run.

Books, plays, and magazines

  • Jules Verne, Around the World in Eighty Days (Le tour du monde en quatre-vingts jours), 1873. Wall-clock time plays a central role in the plot. European readers of the 1870s clearly held the U.S. press in deep contempt; the protagonists cross the U.S. without once reading a paper. Available versions include an English translation, and the original French "with illustrations from the original 1873 French-language edition".
  • Nick Enright, Daylight Saving, 1989. A fast-paced comedy about love and loneliness as the clocks turn back.
  • Umberto Eco, The Island of the Day Before (L'isola del giorno prima), 1994. "...the story of a 17th century Italian nobleman trapped near an island on the International Date Line. Time and time zones play an integral part in the novel." (Paul Eggert, 2006-04-22)
  • John Dunning, Two O'Clock, Eastern Wartime, 2001. Mystery, history, daylight saving time, and old-time radio.
  • Surrealist artist Guy Billout's work "Date Line" appeared on page 103 of the 1999-11 Atlantic Monthly.
  • "Gloom, Gloom, Go Away" by Walter Kirn appeared on page 106 of Time magazine's 2002-11-11 issue; among other things, it proposed year-round DST as a way of lessening wintertime despair.

Music

Data on recordings of "Save That Time," Russ Long, Serrob Publishing, BMI:

ArtistKarrin Allyson
CDI Didn't Know About You
Copyright Date1993
LabelConcord Jazz, Inc.
IDCCD-4543
Track Time3:44
PersonnelKarrin Allyson, vocal; Russ Long, piano; Gerald Spaits, bass; Todd Strait, drums
NotesCD notes "additional lyric by Karrin Allyson; arranged by Russ Long and Karrin Allyson"
ADO Rating1 star
AMG Rating4 stars
Penguin Rating3.5 stars
 
ArtistKevin Mahogany
CDDouble Rainbow
Copyright Date1993
LabelEnja Records
IDENJ-7097 2
Track Time6:27
PersonnelKevin Mahogany, vocal; Kenny Barron, piano; Ray Drummond, bass; Ralph Moore, tenor saxophone; Lewis Nash, drums
ADO Rating1.5 stars
AMG Rating3 stars
Penguin Rating3 stars
 
ArtistJoe Williams
CDHere's to Life
Copyright Date1994
LabelTelarc International Corporation
IDCD-83357
Track Time3:58
PersonnelJoe Williams, vocal The Robert Farnon [39 piece] Orchestra
NotesThis CD is also available as part of a 3-CD package from Telarc, "Triple Play" (CD-83461)
ADO Ratingblack dot
AMG Rating2 stars
Penguin Rating3 stars
 
ArtistCharles Fambrough
CDKeeper of the Spirit
Copyright Date1995
LabelAudioQuest Music
IDAQ-CD1033
Track Time7:07
PersonnelCharles Fambrough, bass; Joel Levine, tenor recorder; Edward Simon, piano; Lenny White, drums; Marion Simon, percussion
ADO Rating2 stars
AMG Ratingunrated
Penguin Rating3 stars

Also of note:

ArtistHolly Cole Trio
CDBlame It On My Youth
Copyright Date1992
LabelManhattan
IDCDP 7 97349 2
Total Time37:45
PersonnelHolly Cole, voice; Aaron Davis, piano; David Piltch, string bass
NotesLyrical reference to "Eastern Standard Time" in Tom Waits' "Purple Avenue"
ADO Rating2.5 stars
AMG Rating3 stars
Penguin Ratingunrated
 
ArtistMilt Hinton
CDOld Man Time
Copyright Date1990
LabelChiaroscuro
IDCR(D) 310
Total Time149:38 (two CDs)
PersonnelMilt Hinton, bass; Doc Cheatham, Dizzy Gillespie, Clark Terry, trumpet; Al Grey, trombone; Eddie Barefield, Joe Camel (Flip Phillips), Buddy Tate, clarinet and saxophone; John Bunch, Red Richards, Norman Simmons, Derek Smith, Ralph Sutton, piano; Danny Barker, Al Casey, guitar; Gus Johnson, Gerryck King, Bob Rosengarden, Jackie Williams, drums; Lionel Hampton, vibraphone; Cab Calloway, Joe Williams, vocal; Buck Clayton, arrangements
Notestunes include Old Man Time, Time After Time, Sometimes I'm Happy, A Hot Time in the Old Town Tonight, Four or Five Times, Now's the Time, Time on My Hands, This Time It's Us, and Good Time Charlie. Album info is available.
ADO Rating3 stars
AMG Rating4.5 stars
Penguin Rating3 stars
 
ArtistAlan Broadbent
CDPacific Standard Time
Copyright Date1995
LabelConcord Jazz, Inc.
IDCCD-4664
Total Time62:42
PersonnelAlan Broadbent, piano; Putter Smith, Bass; Frank Gibson, Jr., drums
NotesThe CD cover features an analemma for equation-of-time fans
ADO Rating1 star
AMG Rating4 stars
Penguin Rating3.5 stars
 
ArtistAnthony Braxton/Richard Teitelbaum
CDSilence/Time Zones
Copyright Date1996
LabelBlack Lion
IDBLCD 760221
Total Time72:58
PersonnelAnthony Braxton, sopranino and alto saxophones, contrebasse clarinet, miscellaneous instruments; Leo Smith, trumpet and miscellaneous instruments; Leroy Jenkins, violin and miscellaneous instruments; Richard Teitelbaum, modular moog and micromoog synthesizer
ADO Ratingblack dot
AMG Rating4 stars
 
ArtistCharles Gayle
CDTime Zones
Copyright Date2006
LabelTompkins Square
IDTSQ2839
Total Time49:06
PersonnelCharles Gayle, piano
ADO Rating1 star
AMG Rating4.5 stars
 
ArtistThe Get Up Kids
CDEudora
Copyright Date2001
LabelVagrant
ID357
Total Time65:12
NotesIncludes the song "Central Standard Time." Thanks to Colin Bowern for this information.
AMG Rating2.5 stars
 
ArtistColdplay
SongClocks
Copyright Date2003
LabelCapitol Records
ID52608
Total Time4:13
NotesWon the 2004 Record of the Year honor at the Grammy Awards. Co-written and performed by Chris Martin, great-great-grandson of DST inventor William Willett. The song's first line is "Lights go out and I can't be saved".
 
ArtistJaime Guevara
SongQué hora es
Date1993
Total Time3:04
NotesThe song protested "Sixto Hour" in Ecuador (1992–3). Its lyrics include "Amanecía en mitad de la noche, los guaguas iban a clase sin sol" ("It was dawning in the middle of the night, the buses went to class without sun").
 
ArtistIrving Kahal and Harry Richman
SongThere Ought to be a Moonlight Saving Time
Copyright Date1931
NotesThis musical standard was a No. 1 hit for Guy Lombardo in 1931, and was also performed by Maurice Chevalier, Blossom Dearie and many others. The phrase "Moonlight saving time" also appears in the 1995 country song "Not Enough Hours in the Night" written by Aaron Barker, Kim Williams and Rob Harbin and performed by Doug Supernaw.
 
ArtistThe Microscopic Septet
CDLobster Leaps In
Copyright Date2008
LabelCuneiform
ID272
Total Time73:05
NotesIncludes the song "Twilight Time Zone."
AMG Rating3.5 stars
ADO Rating2 stars
 
ArtistBob Dylan
CDThe Times They Are a-Changin'
Copyright Date1964
LabelColumbia
IDCK-8905
Total Time45:36
AMG Rating4.5 stars
ADO Rating1.5 stars
NotesThe title song is also available on "Bob Dylan's Greatest Hits" and "The Essential Bob Dylan."
 
ArtistLuciana Souza
CDTide
Copyright Date2009
LabelUniversal Jazz France
IDB0012688-02
Total Time42:31
AMG Rating3.5 stars
ADO Rating2.5 stars
NotesIncludes the song "Fire and Wood" with the lyric "The clocks were turned back you remember/Think it's still November."
 
ArtistKen Nordine
CDYou're Getting Better: The Word Jazz Dot Masters
Copyright Date2005
LabelGeffen
IDB0005171-02
Total Time156:22
ADO Rating1 star
AMG Rating4.5 stars
NotesIncludes the piece "What Time Is It" ("He knew what time it was everywhere...that counted").

Comics

Jokes

  • The idea behind daylight saving time was first proposed as a joke by Benjamin Franklin. To enforce it, he suggested, "Every morning, as soon as the sun rises, let all the bells in every church be set ringing; and if that is not sufficient, let cannon be fired in every street, to wake the sluggards effectually, and make them open their eyes to see their true interest. All the difficulty will be in the first two or three days: after which the reformation will be as natural and easy as the present irregularity; for, ce n'est que le premier pas qui coûte." Franklin's joke was first published on 1784-04-26 by the Journal de Paris as an anonymous letter translated into French.
  • "We've been using the five-cent nickel in this country since 1492. Now that's pretty near 100 years, daylight saving." (Groucho Marx as Captain Spaulding in Animal Crackers, 1930, as noted by Will Fitzgerald)
  • BRADY. ...[Bishop Usher] determined that the Lord began the Creation on the 23rd of October in the Year 4,004 B.C. at – uh, 9 A.M.!
    DRUMMOND. That Eastern Standard Time? (Laughter.) Or Rocky Mountain Time? (More laughter.) It wasn't daylight-saving time, was it? Because the Lord didn't make the sun until the fourth day!
    (From the play Inherit the Wind by Jerome Lawrence and Robert E. Lee, filmed in 1960 with Spencer Tracy as Drummond and Fredric March as Brady, and several other times. Thanks to Mark Brader.)
  • "Good news." "What did they do? Extend Daylight Saving Time year round?" (Professional tanner George Hamilton, in dialog from a May, 1999 episode of the syndicated television series Baywatch)
  • "A fundamental belief held by Americans is that if you are on land, you cannot be killed by a fish...So most Americans remain on land, believing they're safe. Unfortunately, this belief – like so many myths, such as that there's a reason for 'Daylight Saving Time' – is false." (Dave Barry column, 2000-07-02)
  • "I once had sex for an hour and five minutes, but that was on the day when you turn the clocks ahead." (Garry Shandling, 52nd Annual Emmys, 2000-09-10)
  • "Would it impress you if I told you I invented Daylight Savings Time?" ("Sahjhan" to "Lilah" in dialog from the "Loyalty" episode of Angel, originally aired 2002-02-25)
  • "I thought you said Tulsa was a three-hour flight." "Well, you're forgetting about the time difference." ("Joey" and "Chandler" in dialog from the episode of Friends entitled "The One With Rachel's Phone Number," originally aired 2002-12-05)
  • "Is that a pertinent fact, or are you just trying to dazzle me with your command of time zones?" (Kelsey Grammer as "Frasier Crane" to "Roz" from the episode of Frasier entitled "The Kid," originally aired 1997-11-04)
  • "I put myself and my staff through this crazy, huge ordeal, all because I refused to go on at midnight, okay? And so I work, you know, and then I get this job at eleven, supposed to be a big deal. Then yesterday daylight [saving] time ended. Right now it's basically midnight." (Conan O'Brien on the 2010-11-08 premiere of Conan.)
  • "The best method, I told folks, was to hang a large clock high on a barn wall where all the cows could see it. If you have Holsteins, you will need to use an analog clock." (Jerry Nelson, How to adjust dairy cows to daylight saving time", Successful Farming, 2017-10-09.)
  • "And now, driving to California, I find that I must enter a password in order to change the time zone on my laptop clock. Evidently, someone is out to mess up my schedule and my clock must be secured." (Garrison Keillor, "We've never been here before", 2017-08-22)
  • "Well, in my time zone that's all the time I have, but maybe in your time zone I haven't finished yet. So stay tuned!" (Goldie Hawn, Rowan & Martin's Laugh-In No. 65, 1970-03-09)

See also


This web page is in the public domain, so clarified as of 2009-05-17 by Arthur David Olson.
Please send corrections to this web page to the time zone mailing list.
./tzdatabase/workman.sh0000644000175000017500000000115213323151404015264 0ustar anthonyanthony#! /bin/sh # Convert manual page troff stdin to formatted .txt stdout. # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. # Tell groff not to emit SGR escape sequences (ANSI color escapes). GROFF_NO_SGR=1 export GROFF_NO_SGR echo ".am TH .hy 0 .na .. .rm }H .rm }F" | nroff -man - ${1+"$@"} | perl -ne ' binmode STDIN, '\'':encoding(utf8)'\''; binmode STDOUT, '\'':encoding(utf8)'\''; chomp; s/.\010//g; s/\s*$//; if (/^$/) { $sawblank = 1; next; } else { if ($sawblank && $didprint) { print "\n"; $sawblank = 0; } print "$_\n"; $didprint = 1; } ' ./tzdatabase/theory.html0000644000175000017500000017115514276556501015504 0ustar anthonyanthony Theory and pragmatics of the tz code and data

Theory and pragmatics of the tz code and data

Outline

Scope of the tz database

The tz database attempts to record the history and predicted future of civil time scales. It organizes time zone and daylight saving time data by partitioning the world into timezones whose clocks all agree about timestamps that occur after the POSIX Epoch (1970-01-01 00:00:00 UTC). Although 1970 is a somewhat-arbitrary cutoff, there are significant challenges to moving the cutoff earlier even by a decade or two, due to the wide variety of local practices before computer timekeeping became prevalent. Most timezones correspond to a notable location and the database records all known clock transitions for that location; some timezones correspond instead to a fixed UTC offset.

Each timezone typically corresponds to a geographical region that is smaller than a traditional time zone, because clocks in a timezone all agree after 1970 whereas a traditional time zone merely specifies current standard time. For example, applications that deal with current and future timestamps in the traditional North American mountain time zone can choose from the timezones America/Denver which observes US-style daylight saving time (DST), America/Mazatlan which observes Mexican-style DST, and America/Phoenix which does not observe DST. Applications that also deal with past timestamps in the mountain time zone can choose from over a dozen timezones, such as America/Boise, America/Edmonton, and America/Hermosillo, each of which currently uses mountain time but differs from other timezones for some timestamps after 1970.

Clock transitions before 1970 are recorded for location-based timezones, because most systems support timestamps before 1970 and could misbehave if data entries were omitted for pre-1970 transitions. However, the database is not designed for and does not suffice for applications requiring accurate handling of all past times everywhere, as it would take far too much effort and guesswork to record all details of pre-1970 civil timekeeping. Although some information outside the scope of the database is collected in a file backzone that is distributed along with the database proper, this file is less reliable and does not necessarily follow database guidelines.

As described below, reference source code for using the tz database is also available. The tz code is upwards compatible with POSIX, an international standard for UNIX-like systems. As of this writing, the current edition of POSIX is: The Open Group Base Specifications Issue 7, IEEE Std 1003.1-2017, 2018 Edition. Because the database's scope encompasses real-world changes to civil timekeeping, its model for describing time is more complex than the standard and daylight saving times supported by POSIX. A tz timezone corresponds to a ruleset that can have more than two changes per year, these changes need not merely flip back and forth between two alternatives, and the rules themselves can change at times. Whether and when a timezone changes its clock, and even the timezone's notional base offset from UTC, are variable. It does not always make sense to talk about a timezone's "base offset", which is not necessarily a single number.

Timezone identifiers

Each timezone has a name that uniquely identifies the timezone. Inexperienced users are not expected to select these names unaided. Distributors should provide documentation and/or a simple selection interface that explains each name via a map or via descriptive text like "Czech Republic" instead of the timezone name "Europe/Prague". If geolocation information is available, a selection interface can locate the user on a timezone map or prioritize names that are geographically close. For an example selection interface, see the tzselect program in the tz code. The Unicode Common Locale Data Repository contains data that may be useful for other selection interfaces; it maps timezone names like Europe/Prague to locale-dependent strings like "Prague", "Praha", "Прага", and "布拉格".

The naming conventions attempt to strike a balance among the following goals:

  • Uniquely identify every timezone where clocks have agreed since 1970. This is essential for the intended use: static clocks keeping local civil time.
  • Indicate to experts where the timezone's clocks typically are.
  • Be robust in the presence of political changes. For example, names are typically not tied to countries, to avoid incompatibilities when countries change their name (e.g., Swaziland→Eswatini) or when locations change countries (e.g., Hong Kong from UK colony to China). There is no requirement that every country or national capital must have a timezone name.
  • Be portable to a wide variety of implementations.
  • Use a consistent naming conventions over the entire world.

Names normally have the form AREA/LOCATION, where AREA is a continent or ocean, and LOCATION is a specific location within the area. North and South America share the same area, 'America'. Typical names are 'Africa/Cairo', 'America/New_York', and 'Pacific/Honolulu'. Some names are further qualified to help avoid confusion; for example, 'America/Indiana/Petersburg' distinguishes Petersburg, Indiana from other Petersburgs in America.

Here are the general guidelines used for choosing timezone names, in decreasing order of importance:

  • Use only valid POSIX file name components (i.e., the parts of names other than '/'). Do not use the file name components '.' and '..'. Within a file name component, use only ASCII letters, '.', '-' and '_'. Do not use digits, as that might create an ambiguity with POSIX TZ strings. A file name component must not exceed 14 characters or start with '-'. E.g., prefer America/Noronha to America/Fernando_de_Noronha. Exceptions: see the discussion of legacy names below.
  • A name must not be empty, or contain '//', or start or end with '/'.
  • Do not use names that differ only in case. Although the reference implementation is case-sensitive, some other implementations are not, and they would mishandle names differing only in case.
  • If one name A is an initial prefix of another name AB (ignoring case), then B must not start with '/', as a regular file cannot have the same name as a directory in POSIX. For example, America/New_York precludes America/New_York/Bronx.
  • Uninhabited regions like the North Pole and Bouvet Island do not need locations, since local time is not defined there.
  • If all the clocks in a timezone have agreed since 1970, do not bother to include more than one timezone even if some of the clocks disagreed before 1970. Otherwise these tables would become annoyingly large.
  • If boundaries between regions are fluid, such as during a war or insurrection, do not bother to create a new timezone merely because of yet another boundary change. This helps prevent table bloat and simplifies maintenance.
  • If a name is ambiguous, use a less ambiguous alternative; e.g., many cities are named San José and Georgetown, so prefer America/Costa_Rica to America/San_Jose and America/Guyana to America/Georgetown.
  • Keep locations compact. Use cities or small islands, not countries or regions, so that any future changes do not split individual locations into different timezones. E.g., prefer Europe/Paris to Europe/France, since France has had multiple time zones.
  • Use mainstream English spelling, e.g., prefer Europe/Rome to Europa/Roma, and prefer Europe/Athens to the Greek Ευρώπη/Αθήνα or the Romanized Evrópi/Athína. The POSIX file name restrictions encourage this guideline.
  • Use the most populous among locations in a region, e.g., prefer Asia/Shanghai to Asia/Beijing. Among locations with similar populations, pick the best-known location, e.g., prefer Europe/Rome to Europe/Milan.
  • Use the singular form, e.g., prefer Atlantic/Canary to Atlantic/Canaries.
  • Omit common suffixes like '_Islands' and '_City', unless that would lead to ambiguity. E.g., prefer America/Cayman to America/Cayman_Islands and America/Guatemala to America/Guatemala_City, but prefer America/Mexico_City to America/Mexico because the country of Mexico has several time zones.
  • Use '_' to represent a space.
  • Omit '.' from abbreviations in names. E.g., prefer Atlantic/St_Helena to Atlantic/St._Helena.
  • Do not change established names if they only marginally violate the above guidelines. For example, do not change the existing name Europe/Rome to Europe/Milan merely because Milan's population has grown to be somewhat greater than Rome's.
  • If a name is changed, put its old spelling in the 'backward' file as a link to the new spelling. This means old spellings will continue to work. Ordinarily a name change should occur only in the rare case when a location's consensus English-language spelling changes; for example, in 2008 Asia/Calcutta was renamed to Asia/Kolkata due to long-time widespread use of the new city name instead of the old.

Guidelines have evolved with time, and names following old versions of these guidelines might not follow the current version. When guidelines have changed, old names continue to be supported. Guideline changes have included the following:

  • Older versions of this package used a different naming scheme. See the file 'backward' for most of these older names (e.g., 'US/Eastern' instead of 'America/New_York'). The other old-fashioned names still supported are 'WET', 'CET', 'MET', and 'EET' (see the file 'europe').
  • Older versions of this package defined legacy names that are incompatible with the first guideline of location names, but which are still supported. These legacy names are mostly defined in the file 'etcetera'. Also, the file 'backward' defines the legacy names 'GMT0', 'GMT-0' and 'GMT+0', and the file 'northamerica' defines the legacy names 'EST5EDT', 'CST6CDT', 'MST7MDT', and 'PST8PDT'.
  • Older versions of these guidelines said that there should typically be at least one name for each ISO 3166-1 officially assigned two-letter code for an inhabited country or territory. This old guideline has been dropped, as it was not needed to handle timestamps correctly and it increased maintenance burden.

The file zone1970.tab lists geographical locations used to name timezones. It is intended to be an exhaustive list of names for geographic regions as described above; this is a subset of the timezones in the data. Although a zone1970.tab location's longitude corresponds to its local mean time (LMT) offset with one hour for every 15° east longitude, this relationship is not exact. The backward-compatibility file zone.tab is similar but conforms to the older-version guidelines related to ISO 3166-1; it lists only one country code per entry and unlike zone1970.tab it can list names defined in backward.

The database defines each timezone name to be a zone, or a link to a zone. The source file backward defines links for backward compatibility; it does not define zones. Although backward was originally designed to be optional, nowadays distributions typically use it and no great weight should be attached to whether a link is defined in backward or in some other file. The source file etcetera defines names that may be useful on platforms that do not support POSIX-style TZ strings; no other source file other than backward contains links to its zones. One of etcetera's names is Etc/UTC, used by functions like gmtime to obtain leap second information on platforms that support leap seconds. Another etcetera name, GMT, is used by older code releases.

Time zone abbreviations

When this package is installed, it generates time zone abbreviations like 'EST' to be compatible with human tradition and POSIX. Here are the general guidelines used for choosing time zone abbreviations, in decreasing order of importance:

  • Use three to six characters that are ASCII alphanumerics or '+' or '-'. Previous editions of this database also used characters like space and '?', but these characters have a special meaning to the UNIX shell and cause commands like 'set `date`' to have unexpected effects. Previous editions of this guideline required upper-case letters, but the Congressman who introduced Chamorro Standard Time preferred "ChST", so lower-case letters are now allowed. Also, POSIX from 2001 on relaxed the rule to allow '-', '+', and alphanumeric characters from the portable character set in the current locale. In practice ASCII alphanumerics and '+' and '-' are safe in all locales.

    In other words, in the C locale the POSIX extended regular expression [-+[:alnum:]]{3,6} should match the abbreviation. This guarantees that all abbreviations could have been specified by a POSIX TZ string.

  • Use abbreviations that are in common use among English-speakers, e.g., 'EST' for Eastern Standard Time in North America. We assume that applications translate them to other languages as part of the normal localization process; for example, a French application might translate 'EST' to 'HNE'.

    These abbreviations (for standard/daylight/etc. time) are: ACST/ACDT Australian Central, AST/ADT/APT/AWT/ADDT Atlantic, AEST/AEDT Australian Eastern, AHST/AHDT Alaska-Hawaii, AKST/AKDT Alaska, AWST/AWDT Australian Western, BST/BDT Bering, CAT/CAST Central Africa, CET/CEST/CEMT Central European, ChST Chamorro, CST/CDT/CWT/CPT/CDDT Central [North America], CST/CDT China, GMT/BST/IST/BDST Greenwich, EAT East Africa, EST/EDT/EWT/EPT/EDDT Eastern [North America], EET/EEST Eastern European, GST/GDT Guam, HST/HDT/HWT/HPT Hawaii, HKT/HKST/HKWT Hong Kong, IST India, IST/GMT Irish, IST/IDT/IDDT Israel, JST/JDT Japan, KST/KDT Korea, MET/MEST Middle European (a backward-compatibility alias for Central European), MSK/MSD Moscow, MST/MDT/MWT/MPT/MDDT Mountain, NST/NDT/NWT/NPT/NDDT Newfoundland, NST/NDT/NWT/NPT Nome, NZMT/NZST New Zealand through 1945, NZST/NZDT New Zealand 1946–present, PKT/PKST Pakistan, PST/PDT/PWT/PPT/PDDT Pacific, PST/PDT Philippine, SAST South Africa, SST Samoa, UTC Universal, WAT/WAST West Africa, WET/WEST/WEMT Western European, WIB Waktu Indonesia Barat, WIT Waktu Indonesia Timur, WITA Waktu Indonesia Tengah, YST/YDT/YWT/YPT/YDDT Yukon.

  • For times taken from a city's longitude, use the traditional xMT notation. The only abbreviation like this in current use is 'GMT'. The others are for timestamps before 1960, except that Monrovia Mean Time persisted until 1972. Typically, numeric abbreviations (e.g., '-004430' for MMT) would cause trouble here, as the numeric strings would exceed the POSIX length limit.

    These abbreviations are: AMT Asunción, Athens; BMT Baghdad, Bangkok, Batavia, Bermuda, Bern, Bogotá, Bridgetown, Brussels, Bucharest; CMT Calamarca, Caracas, Chisinau, Colón, Córdoba; DMT Dublin/Dunsink; EMT Easter; FFMT Fort-de-France; FMT Funchal; GMT Greenwich; HMT Havana, Helsinki, Horta, Howrah; IMT Irkutsk, Istanbul; JMT Jerusalem; KMT Kaunas, Kyiv, Kingston; LMT Lima, Lisbon, local, Luanda; MMT Macassar, Madras, Malé, Managua, Minsk, Monrovia, Montevideo, Moratuwa, Moscow; PLMT Phù Liễn; PMT Paramaribo, Paris, Perm, Pontianak, Prague; PMMT Port Moresby; QMT Quito; RMT Rangoon, Riga, Rome; SDMT Santo Domingo; SJMT San José; SMT Santiago, Simferopol, Singapore, Stanley; TBMT Tbilisi; TMT Tallinn, Tehran; WMT Warsaw; ZMT Zomba.

    A few abbreviations also follow the pattern that GMT/BST established for time in the UK. They are: BMT/BST for Bermuda 1890–1930, CMT/BST for Calamarca Mean Time and Bolivian Summer Time 1890–1932, DMT/IST for Dublin/Dunsink Mean Time and Irish Summer Time 1880–1916, MMT/MST/MDST for Moscow 1880–1919, and RMT/LST for Riga Mean Time and Latvian Summer time 1880–1926.

  • Use 'LMT' for local mean time of locations before the introduction of standard time; see "Scope of the tz database".
  • If there is no common English abbreviation, use numeric offsets like -05 and +0530 that are generated by zic's %z notation.
  • Use current abbreviations for older timestamps to avoid confusion. For example, in 1910 a common English abbreviation for time in central Europe was 'MEZ' (short for both "Middle European Zone" and for "Mitteleuropäische Zeit" in German). Nowadays 'CET' ("Central European Time") is more common in English, and the database uses 'CET' even for circa-1910 timestamps as this is less confusing for modern users and avoids the need for determining when 'CET' supplanted 'MEZ' in common usage.
  • Use a consistent style in a timezone's history. For example, if a history tends to use numeric abbreviations and a particular entry could go either way, use a numeric abbreviation.
  • Use Universal Time (UT) (with time zone abbreviation '-00') for locations while uninhabited. The leading '-' is a flag that the UT offset is in some sense undefined; this notation is derived from Internet RFC 3339.

Application writers should note that these abbreviations are ambiguous in practice: e.g., 'CST' means one thing in China and something else in North America, and 'IST' can refer to time in India, Ireland or Israel. To avoid ambiguity, use numeric UT offsets like '-0600' instead of time zone abbreviations like 'CST'.

Accuracy of the tz database

The tz database is not authoritative, and it surely has errors. Corrections are welcome and encouraged; see the file CONTRIBUTING. Users requiring authoritative data should consult national standards bodies and the references cited in the database's comments.

Errors in the tz database arise from many sources:

  • The tz database predicts future timestamps, and current predictions will be incorrect after future governments change the rules. For example, if today someone schedules a meeting for 13:00 next October 1, Casablanca time, and tomorrow Morocco changes its daylight saving rules, software can mess up after the rule change if it blithely relies on conversions made before the change.
  • The pre-1970 entries in this database cover only a tiny sliver of how clocks actually behaved; the vast majority of the necessary information was lost or never recorded. Thousands more timezones would be needed if the tz database's scope were extended to cover even just the known or guessed history of standard time; for example, the current single entry for France would need to split into dozens of entries, perhaps hundreds. And in most of the world even this approach would be misleading due to widespread disagreement or indifference about what times should be observed. In her 2015 book The Global Transformation of Time, 1870–1950, Vanessa Ogle writes "Outside of Europe and North America there was no system of time zones at all, often not even a stable landscape of mean times, prior to the middle decades of the twentieth century". See: Timothy Shenk, Booked: A Global History of Time. Dissent 2015-12-17.
  • Most of the pre-1970 data entries come from unreliable sources, often astrology books that lack citations and whose compilers evidently invented entries when the true facts were unknown, without reporting which entries were known and which were invented. These books often contradict each other or give implausible entries, and on the rare occasions when they are checked they are typically found to be incorrect.
  • For the UK the tz database relies on years of first-class work done by Joseph Myers and others; see "History of legal time in Britain". Other countries are not done nearly as well.
  • Sometimes, different people in the same city maintain clocks that differ significantly. Historically, railway time was used by railroad companies (which did not always agree with each other), church-clock time was used for birth certificates, etc. More recently, competing political groups might disagree about clock settings. Often this is merely common practice, but sometimes it is set by law. For example, from 1891 to 1911 the UT offset in France was legally UT +00:09:21 outside train stations and UT +00:04:21 inside. Other examples include Chillicothe in 1920, Palm Springs in 1946/7, and Jerusalem and Ürümqi to this day.
  • Although a named location in the tz database stands for the containing region, its pre-1970 data entries are often accurate for only a small subset of that region. For example, Europe/London stands for the United Kingdom, but its pre-1847 times are valid only for locations that have London's exact meridian, and its 1847 transition to GMT is known to be valid only for the L&NW and the Caledonian railways.
  • The tz database does not record the earliest time for which a timezone's data entries are thereafter valid for every location in the region. For example, Europe/London is valid for all locations in its region after GMT was made the standard time, but the date of standardization (1880-08-02) is not in the tz database, other than in commentary. For many timezones the earliest time of validity is unknown.
  • The tz database does not record a region's boundaries, and in many cases the boundaries are not known. For example, the timezone America/Kentucky/Louisville represents a region around the city of Louisville, the boundaries of which are unclear.
  • Changes that are modeled as instantaneous transitions in the tz database were often spread out over hours, days, or even decades.
  • Even if the time is specified by law, locations sometimes deliberately flout the law.
  • Early timekeeping practices, even assuming perfect clocks, were often not specified to the accuracy that the tz database requires.
  • The tz database cannot represent stopped clocks. However, on 1911-03-11 at 00:00, some public-facing French clocks were changed by stopping them for a few minutes to effect a transition. The tz database models this via a backward transition; the relevant French legislation does not specify exactly how the transition was to occur.
  • Sometimes historical timekeeping was specified more precisely than what the tz code can handle. For example, from 1880 to 1916 clocks in Ireland observed Dublin Mean Time (estimated to be UT −00:25:21.1); although the tz source data can represent the .1 second, TZif files and the code cannot. In practice these old specifications were rarely if ever implemented to subsecond precision.
  • Even when all the timestamp transitions recorded by the tz database are correct, the tz rules that generate them may not faithfully reflect the historical rules. For example, from 1922 until World War II the UK moved clocks forward the day following the third Saturday in April unless that was Easter, in which case it moved clocks forward the previous Sunday. Because the tz database has no way to specify Easter, these exceptional years are entered as separate tz Rule lines, even though the legal rules did not change. When transitions are known but the historical rules behind them are not, the database contains Zone and Rule entries that are intended to represent only the generated transitions, not any underlying historical rules; however, this intent is recorded at best only in commentary.
  • The tz database models time using the proleptic Gregorian calendar with days containing 24 equal-length hours numbered 00 through 23, except when clock transitions occur. Pre-standard time is modeled as local mean time. However, historically many people used other calendars and other timescales. For example, the Roman Empire used the Julian calendar, and Roman timekeeping had twelve varying-length daytime hours with a non-hour-based system at night. And even today, some local practices diverge from the Gregorian calendar with 24-hour days. These divergences range from relatively minor, such as Japanese bars giving times like "24:30" for the wee hours of the morning, to more-significant differences such as the east African practice of starting the day at dawn, renumbering the Western 06:00 to be 12:00. These practices are largely outside the scope of the tz code and data, which provide only limited support for date and time localization such as that required by POSIX. If DST is not used a different time zone can often do the trick; for example, in Kenya a TZ setting like <-03>3 or America/Cayenne starts the day six hours later than Africa/Nairobi does.
  • Early clocks were less reliable, and data entries do not represent clock error.
  • The tz database assumes Universal Time (UT) as an origin, even though UT is not standardized for older timestamps. In the tz database commentary, UT denotes a family of time standards that includes Coordinated Universal Time (UTC) along with other variants such as UT1 and GMT, with days starting at midnight. Although UT equals UTC for modern timestamps, UTC was not defined until 1960, so commentary uses the more-general abbreviation UT for timestamps that might predate 1960. Since UT, UT1, etc. disagree slightly, and since pre-1972 UTC seconds varied in length, interpretation of older timestamps can be problematic when subsecond accuracy is needed.
  • Civil time was not based on atomic time before 1972, and we do not know the history of earth's rotation accurately enough to map SI seconds to historical solar time to more than about one-hour accuracy. See: Stephenson FR, Morrison LV, Hohenkerk CY. Measurement of the Earth's rotation: 720 BC to AD 2015. Proc Royal Soc A. 2016;472:20160404. Also see: Espenak F. Uncertainty in Delta T (ΔT).
  • The relationship between POSIX time (that is, UTC but ignoring leap seconds) and UTC is not agreed upon after 1972. Although the POSIX clock officially stops during an inserted leap second, at least one proposed standard has it jumping back a second instead; and in practice POSIX clocks more typically either progress glacially during a leap second, or are slightly slowed while near a leap second.
  • The tz database does not represent how uncertain its information is. Ideally it would contain information about when data entries are incomplete or dicey. Partial temporal knowledge is a field of active research, though, and it is not clear how to apply it here.

In short, many, perhaps most, of the tz database's pre-1970 and future timestamps are either wrong or misleading. Any attempt to pass the tz database off as the definition of time should be unacceptable to anybody who cares about the facts. In particular, the tz database's LMT offsets should not be considered meaningful, and should not prompt creation of timezones merely because two locations differ in LMT or transitioned to standard time at different dates.

Time and date functions

The tz code contains time and date functions that are upwards compatible with those of POSIX. Code compatible with this package is already part of many platforms, where the primary use of this package is to update obsolete time-related files. To do this, you may need to compile the time zone compiler 'zic' supplied with this package instead of using the system 'zic', since the format of zic's input is occasionally extended, and a platform may still be shipping an older zic.

POSIX properties and limitations

  • In POSIX, time display in a process is controlled by the environment variable TZ. Unfortunately, the POSIX TZ string takes a form that is hard to describe and is error-prone in practice. Also, POSIX TZ strings cannot deal with daylight saving time rules not based on the Gregorian calendar (as in Iran), or with situations where more than two time zone abbreviations or UT offsets are used in an area.

    The POSIX TZ string takes the following form:

    stdoffset[dst[offset][,date[/time],date[/time]]]

    where:

    std and dst
    are 3 or more characters specifying the standard and daylight saving time (DST) zone abbreviations. Starting with POSIX.1-2001, std and dst may also be in a quoted form like '<+09>'; this allows "+" and "-" in the names.
    offset
    is of the form '[±]hh:[mm[:ss]]' and specifies the offset west of UT. 'hh' may be a single digit; 0≤hh≤24. The default DST offset is one hour ahead of standard time.
    date[/time],date[/time]
    specifies the beginning and end of DST. If this is absent, the system supplies its own ruleset for DST, and its rules can differ from year to year; typically US DST rules are used.
    time
    takes the form 'hh:[mm[:ss]]' and defaults to 02:00. This is the same format as the offset, except that a leading '+' or '-' is not allowed.
    date
    takes one of the following forms:
    Jn (1≤n≤365)
    origin-1 day number not counting February 29
    n (0≤n≤365)
    origin-0 day number counting February 29 if present
    Mm.n.d (0[Sunday]≤d≤6[Saturday], 1≤n≤5, 1≤m≤12)
    for the dth day of week n of month m of the year, where week 1 is the first week in which day d appears, and '5' stands for the last week in which day d appears (which may be either the 4th or 5th week). Typically, this is the only useful form; the n and Jn forms are rarely used.

    Here is an example POSIX TZ string for New Zealand after 2007. It says that standard time (NZST) is 12 hours ahead of UT, and that daylight saving time (NZDT) is observed from September's last Sunday at 02:00 until April's first Sunday at 03:00:

    TZ='NZST-12NZDT,M9.5.0,M4.1.0/3'

    This POSIX TZ string is hard to remember, and mishandles some timestamps before 2008. With this package you can use this instead:

    TZ='Pacific/Auckland'
  • POSIX does not define the DST transitions for TZ values like "EST5EDT". Traditionally the current US DST rules were used to interpret such values, but this meant that the US DST rules were compiled into each program that did time conversion. This meant that when US time conversion rules changed (as in the United States in 1987), all programs that did time conversion had to be recompiled to ensure proper results.
  • The TZ environment variable is process-global, which makes it hard to write efficient, thread-safe applications that need access to multiple timezones.
  • In POSIX, there is no tamper-proof way for a process to learn the system's best idea of local (wall clock) time. This is important for applications that an administrator wants used only at certain times – without regard to whether the user has fiddled the TZ environment variable. While an administrator can "do everything in UT" to get around the problem, doing so is inconvenient and precludes handling daylight saving time shifts – as might be required to limit phone calls to off-peak hours.
  • POSIX provides no convenient and efficient way to determine the UT offset and time zone abbreviation of arbitrary timestamps, particularly for timezones that do not fit into the POSIX model.
  • POSIX requires that time_t clock counts exclude leap seconds.
  • The tz code attempts to support all the time_t implementations allowed by POSIX. The time_t type represents a nonnegative count of seconds since 1970-01-01 00:00:00 UTC, ignoring leap seconds. In practice, time_t is usually a signed 64- or 32-bit integer; 32-bit signed time_t values stop working after 2038-01-19 03:14:07 UTC, so new implementations these days typically use a signed 64-bit integer. Unsigned 32-bit integers are used on one or two platforms, and 36-bit and 40-bit integers are also used occasionally. Although earlier POSIX versions allowed time_t to be a floating-point type, this was not supported by any practical system, and POSIX.1-2013 and the tz code both require time_t to be an integer type.

Extensions to POSIX in the tz code

  • The TZ environment variable is used in generating the name of a file from which time-related information is read (or is interpreted à la POSIX); TZ is no longer constrained to be a string containing abbreviations and numeric data as described above. The file's format is TZif, a timezone information format that contains binary data; see Internet RFC 8536. The daylight saving time rules to be used for a particular timezone are encoded in the TZif file; the format of the file allows US, Australian, and other rules to be encoded, and allows for situations where more than two time zone abbreviations are used.

    It was recognized that allowing the TZ environment variable to take on values such as 'America/New_York' might cause "old" programs (that expect TZ to have a certain form) to operate incorrectly; consideration was given to using some other environment variable (for example, TIMEZONE) to hold the string used to generate the TZif file's name. In the end, however, it was decided to continue using TZ: it is widely used for time zone purposes; separately maintaining both TZ and TIMEZONE seemed a nuisance; and systems where "new" forms of TZ might cause problems can simply use legacy TZ values such as "EST5EDT" which can be used by "new" programs as well as by "old" programs that assume pre-POSIX TZ values.

  • The code supports platforms with a UT offset member in struct tm, e.g., tm_gmtoff, or with a time zone abbreviation member in struct tm, e.g., tm_zone. As noted in Austin Group defect 1533, a future version of POSIX is planned to require tm_gmtoff and tm_zone.
  • Functions tzalloc, tzfree, localtime_rz, and mktime_z for more-efficient thread-safe applications that need to use multiple timezones. The tzalloc and tzfree functions allocate and free objects of type timezone_t, and localtime_rz and mktime_z are like localtime_r and mktime with an extra timezone_t argument. The functions were inspired by NetBSD.
  • Negative time_t values are supported, on systems where time_t is signed.
  • These functions can account for leap seconds; see Leap seconds below.

POSIX features no longer needed

POSIX and ISO C define some APIs that are vestigial: they are not needed, and are relics of a too-simple model that does not suffice to handle many real-world timestamps. Although the tz code supports these vestigial APIs for backwards compatibility, they should be avoided in portable applications. The vestigial APIs are:

  • The POSIX tzname variable does not suffice and is no longer needed. To get a timestamp's time zone abbreviation, consult the tm_zone member if available; otherwise, use strftime's "%Z" conversion specification.
  • The POSIX daylight and timezone variables do not suffice and are no longer needed. To get a timestamp's UT offset, consult the tm_gmtoff member if available; otherwise, subtract values returned by localtime and gmtime using the rules of the Gregorian calendar, or use strftime's "%z" conversion specification if a string like "+0900" suffices.
  • The tm_isdst member is almost never needed and most of its uses should be discouraged in favor of the abovementioned APIs. Although it can still be used in arguments to mktime to disambiguate timestamps near a DST transition when the clock jumps back on platforms lacking tm_gmtoff, this disambiguation does not work when standard time itself jumps back, which can occur when a location changes to a time zone with a lesser UT offset.

Other portability notes

  • The 7th Edition UNIX timezone function is not present in this package; it is impossible to reliably map timezone's arguments (a "minutes west of GMT" value and a "daylight saving time in effect" flag) to a time zone abbreviation, and we refuse to guess. Programs that in the past used the timezone function may now examine localtime(&clock)->tm_zone (if TM_ZONE is defined) or tzname[localtime(&clock)->tm_isdst] (if HAVE_TZNAME is nonzero) to learn the correct time zone abbreviation to use.
  • The 4.2BSD gettimeofday function is not used in this package. This formerly let users obtain the current UTC offset and DST flag, but this functionality was removed in later versions of BSD.
  • In SVR2, time conversion fails for near-minimum or near-maximum time_t values when doing conversions for places that do not use UT. This package takes care to do these conversions correctly. A comment in the source code tells how to get compatibly wrong results.
  • The functions that are conditionally compiled if STD_INSPIRED is defined should, at this point, be looked on primarily as food for thought. They are not in any sense "standard compatible" – some are not, in fact, specified in any standard. They do, however, represent responses of various authors to standardization proposals.
  • Other time conversion proposals, in particular those supported by the Time Zone Database Parser, offer a wider selection of functions that provide capabilities beyond those provided here. The absence of such functions from this package is not meant to discourage the development, standardization, or use of such functions. Rather, their absence reflects the decision to make this package contain valid extensions to POSIX, to ensure its broad acceptability. If more powerful time conversion functions can be standardized, so much the better.

Interface stability

The tz code and data supply the following interfaces:

  • A set of timezone names as per "Timezone identifiers" above.
  • Library functions described in "Time and date functions" above.
  • The programs tzselect, zdump, and zic, documented in their man pages.
  • The format of zic input files, documented in the zic man page.
  • The format of zic output files, documented in the tzfile man page.
  • The format of zone table files, documented in zone1970.tab.
  • The format of the country code file, documented in iso3166.tab.
  • The version number of the code and data, as the first line of the text file 'version' in each release.

Interface changes in a release attempt to preserve compatibility with recent releases. For example, tz data files typically do not rely on recently-added zic features, so that users can run older zic versions to process newer data files. Downloading the tz database describes how releases are tagged and distributed.

Interfaces not listed above are less stable. For example, users should not rely on particular UT offsets or abbreviations for timestamps, as data entries are often based on guesswork and these guesses may be corrected or improved.

Timezone boundaries are not part of the stable interface. For example, even though the Asia/Bangkok timezone currently includes Chang Mai, Hanoi, and Phnom Penh, this is not part of the stable interface and the timezone can split at any time. If a calendar application records a future event in some location other than Bangkok by putting "Asia/Bangkok" in the event's record, the application should be robust in the presence of timezone splits between now and the future time.

Leap seconds

The tz code and data can account for leap seconds, thanks to code contributed by Bradley White. However, the leap second support of this package is rarely used directly because POSIX requires leap seconds to be excluded and many software packages would mishandle leap seconds if they were present. Instead, leap seconds are more commonly handled by occasionally adjusting the operating system kernel clock as described in Precision timekeeping, and this package by default installs a leapseconds file commonly used by NTP software that adjusts the kernel clock. However, kernel-clock twiddling approximates UTC only roughly, and systems needing more-precise UTC can use this package's leap second support directly.

The directly-supported mechanism assumes that time_t counts of seconds since the POSIX epoch normally include leap seconds, as opposed to POSIX time_t counts which exclude leap seconds. This modified timescale is converted to UTC at the same point that time zone and DST adjustments are applied – namely, at calls to localtime and analogous functions – and the process is driven by leap second information stored in alternate versions of the TZif files. Because a leap second adjustment may be needed even if no time zone correction is desired, calls to gmtime-like functions also need to consult a TZif file, conventionally named Etc/UTC (GMT in previous versions), to see whether leap second corrections are needed. To convert an application's time_t timestamps to or from POSIX time_t timestamps (for use when, say, embedding or interpreting timestamps in portable tar files), the application can call the utility functions time2posix and posix2time included with this package.

If the POSIX-compatible TZif file set is installed in a directory whose basename is zoneinfo, the leap-second-aware file set is by default installed in a separate directory zoneinfo-leaps. Although each process can have its own time zone by setting its TZ environment variable, there is no support for some processes being leap-second aware while other processes are POSIX-compatible; the leap-second choice is system-wide. So if you configure your kernel to count leap seconds, you should also discard zoneinfo and rename zoneinfo-leaps to zoneinfo. Alternatively, you can install just one set of TZif files in the first place; see the REDO variable in this package's makefile.

Calendrical issues

Calendrical issues are a bit out of scope for a time zone database, but they indicate the sort of problems that we would run into if we extended the time zone database further into the past. An excellent resource in this area is Edward M. Reingold and Nachum Dershowitz, Calendrical Calculations: The Ultimate Edition, Cambridge University Press (2018). Other information and sources are given in the file 'calendars' in the tz distribution. They sometimes disagree.

Time and time zones on other planets

Some people's work schedules have used Mars time. Jet Propulsion Laboratory (JPL) coordinators kept Mars time on and off during the Mars Pathfinder mission (1997). Some of their family members also adapted to Mars time. Dozens of special Mars watches were built for JPL workers who kept Mars time during the Mars Exploration Rovers (MER) mission (2004–2018). These timepieces looked like normal Seikos and Citizens but were adjusted to use Mars seconds rather than terrestrial seconds, although unfortunately the adjusted watches were unreliable and appear to have had only limited use.

A Mars solar day is called a "sol" and has a mean period equal to about 24 hours 39 minutes 35.244 seconds in terrestrial time. It is divided into a conventional 24-hour clock, so each Mars second equals about 1.02749125 terrestrial seconds. (One MER worker noted, "If I am working Mars hours, and Mars hours are 2.5% more than Earth hours, shouldn't I get an extra 2.5% pay raise?")

The prime meridian of Mars goes through the center of the crater Airy-0, named in honor of the British astronomer who built the Greenwich telescope that defines Earth's prime meridian. Mean solar time on the Mars prime meridian is called Mars Coordinated Time (MTC).

Each landed mission on Mars has adopted a different reference for solar timekeeping, so there is no real standard for Mars time zones. For example, the MER mission defined two time zones "Local Solar Time A" and "Local Solar Time B" for its two missions, each zone designed so that its time equals local true solar time at approximately the middle of the nominal mission. The A and B zones differ enough so that an MER worker assigned to the A zone might suffer "Mars lag" when switching to work in the B zone. Such a "time zone" is not particularly suited for any application other than the mission itself.

Many calendars have been proposed for Mars, but none have achieved wide acceptance. Astronomers often use Mars Sol Date (MSD) which is a sequential count of Mars solar days elapsed since about 1873-12-29 12:00 GMT.

In our solar system, Mars is the planet with time and calendar most like Earth's. On other planets, Sun-based time and calendars would work quite differently. For example, although Mercury's sidereal rotation period is 58.646 Earth days, Mercury revolves around the Sun so rapidly that an observer on Mercury's equator would see a sunrise only every 175.97 Earth days, i.e., a Mercury year is 0.5 of a Mercury day. Venus is more complicated, partly because its rotation is slightly retrograde: its year is 1.92 of its days. Gas giants like Jupiter are trickier still, as their polar and equatorial regions rotate at different rates, so that the length of a day depends on latitude. This effect is most pronounced on Neptune, where the day is about 12 hours at the poles and 18 hours at the equator.

Although the tz database does not support time on other planets, it is documented here in the hopes that support will be added eventually.

Sources for time on other planets:


This file is in the public domain, so clarified as of 2009-05-17 by Arthur David Olson.
./tzdatabase/zishrink.awk0000644000175000017500000002153114272543606015637 0ustar anthonyanthony# Convert tzdata source into a smaller version of itself. # Contributed by Paul Eggert. This file is in the public domain. # This is not a general-purpose converter; it is designed for current tzdata. # 'zic' should treat this script's output as if it were identical to # this script's input. # Record a hash N for the new name NAME, checking for collisions. function record_hash(n, name) { if (used_hashes[n]) { printf "# ! collision: %s %s\n", used_hashes[n], name exit 1 } used_hashes[n] = name } # Return a shortened rule name representing NAME, # and record this relationship to the hash table. function gen_rule_name(name, \ n) { # Use a simple mnemonic: the first two letters. n = substr(name, 1, 2) record_hash(n, name) # printf "# %s = %s\n", n, name return n } function prehash_rule_names( \ name) { # Rule names are not part of the tzdb API, so substitute shorter # ones. Shortening them consistently from one release to the next # simplifies comparison of the output. That being said, the # 1-letter names below are not standardized in any way, and can # change arbitrarily from one release to the next, as the main goal # here is compression not comparison. # Abbreviating these rules names to one letter saved the most space # circa 2018e. rule["Arg"] = "A" rule["Brazil"] = "B" rule["Canada"] = "C" rule["Denmark"] = "D" rule["EU"] = "E" rule["France"] = "F" rule["GB-Eire"] = "G" rule["Halifax"] = "H" rule["Italy"] = "I" rule["Jordan"] = "J" rule["Egypt"] = "K" # "Kemet" in ancient Egyptian rule["Libya"] = "L" rule["Morocco"] = "M" rule["Neth"] = "N" rule["Poland"] = "O" # arbitrary rule["Palestine"] = "P" rule["Cuba"] = "Q" # Its start sounds like "Q". rule["Russia"] = "R" rule["Syria"] = "S" rule["Turkey"] = "T" rule["Uruguay"] = "U" rule["Vincennes"] = "V" rule["Winn"] = "W" rule["Mongol"] = "X" # arbitrary rule["NT_YK"] = "Y" rule["Zion"] = "Z" rule["Austria"] = "a" rule["Belgium"] = "b" rule["C-Eur"] = "c" rule["Algeria"] = "d" # country code DZ rule["E-Eur"] = "e" rule["Taiwan"] = "f" # Formosa rule["Greece"] = "g" rule["Hungary"] = "h" rule["Iran"] = "i" rule["StJohns"] = "j" rule["Chatham"] = "k" # arbitrary rule["Lebanon"] = "l" rule["Mexico"] = "m" rule["Tunisia"] = "n" # country code TN rule["Moncton"] = "o" # arbitrary rule["Port"] = "p" rule["Albania"] = "q" # arbitrary rule["Regina"] = "r" rule["Spain"] = "s" rule["Toronto"] = "t" rule["US"] = "u" rule["Louisville"] = "v" # ville rule["Iceland"] = "w" # arbitrary rule["Chile"] = "x" # arbitrary rule["Para"] = "y" # country code PY rule["Romania"] = "z" # arbitrary rule["Macau"] = "_" # arbitrary # Use ISO 3166 alpha-2 country codes for remaining names that are countries. # This is more systematic, and avoids collisions (e.g., Malta and Moldova). rule["Armenia"] = "AM" rule["Aus"] = "AU" rule["Azer"] = "AZ" rule["Barb"] = "BB" rule["Dhaka"] = "BD" rule["Bulg"] = "BG" rule["Bahamas"] = "BS" rule["Belize"] = "BZ" rule["Swiss"] = "CH" rule["Cook"] = "CK" rule["PRC"] = "CN" rule["Cyprus"] = "CY" rule["Czech"] = "CZ" rule["Germany"] = "DE" rule["DR"] = "DO" rule["Ecuador"] = "EC" rule["Finland"] = "FI" rule["Fiji"] = "FJ" rule["Falk"] = "FK" rule["Ghana"] = "GH" rule["Guat"] = "GT" rule["Hond"] = "HN" rule["Haiti"] = "HT" rule["Eire"] = "IE" rule["Iraq"] = "IQ" rule["Japan"] = "JP" rule["Kyrgyz"] = "KG" rule["ROK"] = "KR" rule["Latvia"] = "LV" rule["Lux"] = "LX" rule["Moldova"] = "MD" rule["Malta"] = "MT" rule["Mauritius"] = "MU" rule["Namibia"] = "NA" rule["Nic"] = "NI" rule["Norway"] = "NO" rule["Peru"] = "PE" rule["Phil"] = "PH" rule["Pakistan"] = "PK" rule["Sudan"] = "SD" rule["Salv"] = "SV" rule["Tonga"] = "TO" rule["Vanuatu"] = "VU" # Avoid collisions. rule["Detroit"] = "Dt" # De = Denver for (name in rule) { record_hash(rule[name], name) } } function make_line(n, field, \ f, r) { r = field[1] for (f = 2; f <= n; f++) r = r " " field[f] return r } # Process the input line LINE and save it for later output. function process_input_line(line, \ f, field, end, i, n, r, startdef, \ linkline, ruleline, zoneline) { # Remove comments, normalize spaces, and append a space to each line. sub(/#.*/, "", line) line = line " " gsub(/[\t ]+/, " ", line) # Abbreviate keywords and determine line type. linkline = sub(/^Link /, "L ", line) ruleline = sub(/^Rule /, "R ", line) zoneline = sub(/^Zone /, "Z ", line) # Replace FooAsia rules with the same rules without "Asia", as they # are duplicates. if (match(line, /[^ ]Asia /)) { if (ruleline) return line = substr(line, 1, RSTART) substr(line, RSTART + 5) } # Abbreviate times. while (match(line, /[: ]0+[0-9]/)) line = substr(line, 1, RSTART) substr(line, RSTART + RLENGTH - 1) while (match(line, /:0[^:]/)) line = substr(line, 1, RSTART - 1) substr(line, RSTART + 2) # Abbreviate weekday names. while (match(line, / (last)?(Mon|Wed|Fri)[ <>]/)) { end = RSTART + RLENGTH line = substr(line, 1, end - 4) substr(line, end - 1) } while (match(line, / (last)?(Sun|Tue|Thu|Sat)[ <>]/)) { end = RSTART + RLENGTH line = substr(line, 1, end - 3) substr(line, end - 1) } # Abbreviate "max", "min", "only" and month names. gsub(/ max /, " ma ", line) gsub(/ min /, " mi ", line) gsub(/ only /, " o ", line) gsub(/ Jan /, " Ja ", line) gsub(/ Feb /, " F ", line) gsub(/ Apr /, " Ap ", line) gsub(/ Aug /, " Au ", line) gsub(/ Sep /, " S ", line) gsub(/ Oct /, " O ", line) gsub(/ Nov /, " N ", line) gsub(/ Dec /, " D ", line) # Strip leading and trailing space. sub(/^ /, "", line) sub(/ $/, "", line) # Remove unnecessary trailing zero fields. sub(/ 0+$/, "", line) # Remove unnecessary trailing days-of-month "1". if (match(line, /[A-Za-z] 1$/)) line = substr(line, 1, RSTART) # Remove unnecessary trailing " Ja" (for January). sub(/ Ja$/, "", line) n = split(line, field) # Record which rule names are used, and generate their abbreviations. f = zoneline ? 4 : linkline || ruleline ? 0 : 2 r = field[f] if (r ~ /^[^-+0-9]/) { rule_used[r] = 1 } # If this zone supersedes an earlier one, delete the earlier one # from the saved output lines. startdef = "" if (zoneline) zonename = startdef = field[2] else if (linkline) zonename = startdef = field[3] else if (ruleline) zonename = "" if (startdef) { i = zonedef[startdef] if (i) { do output_line[i - 1] = "" while (output_line[i++] ~ /^[-+0-9]/); } } zonedef[zonename] = nout + 1 # Save the line for later output. output_line[nout++] = make_line(n, field) } function omit_unused_rules( \ i, field) { for (i = 0; i < nout; i++) { split(output_line[i], field) if (field[1] == "R" && !rule_used[field[2]]) { output_line[i] = "" } } } function abbreviate_rule_names( \ abbr, f, field, i, n, r) { for (i = 0; i < nout; i++) { n = split(output_line[i], field) if (n) { f = field[1] == "Z" ? 4 : field[1] == "L" ? 0 : 2 r = field[f] if (r ~ /^[^-+0-9]/) { abbr = rule[r] if (!abbr) { rule[r] = abbr = gen_rule_name(r) } field[f] = abbr output_line[i] = make_line(n, field) } } } } function output_saved_lines( \ i) { for (i = 0; i < nout; i++) if (output_line[i]) print output_line[i] } BEGIN { # Files that the output normally depends on. default_dep["africa"] = 1 default_dep["antarctica"] = 1 default_dep["asia"] = 1 default_dep["australasia"] = 1 default_dep["backward"] = 1 default_dep["etcetera"] = 1 default_dep["europe"] = 1 default_dep["factory"] = 1 default_dep["northamerica"] = 1 default_dep["southamerica"] = 1 default_dep["ziguard.awk"] = 1 default_dep["zishrink.awk"] = 1 # Output a version string from 'version' and related configuration variables # supported by tzdb's Makefile. If you change the makefile or any other files # that affect the output of this script, you should append '-SOMETHING' # to the contents of 'version', where SOMETHING identifies what was changed. ndeps = split(deps, dep) ddeps = "" for (i = 1; i <= ndeps; i++) { if (default_dep[dep[i]]) { default_dep[dep[i]]++ } else { ddeps = ddeps " " dep[i] } } for (d in default_dep) { if (default_dep[d] == 1) { ddeps = ddeps " !" d } } print "# version", version if (dataform != "main") { print "# dataform", dataform } if (redo != "posix_right") { print "# redo " redo } if (ddeps) { print "# ddeps" ddeps } print "# This zic input file is in the public domain." prehash_rule_names() } /^[\t ]*[^#\t ]/ { process_input_line($0) } END { omit_unused_rules() abbreviate_rule_names() output_saved_lines() } ./tzdatabase/tzselect.8.txt0000644000175000017500000000602213323151404016017 0ustar anthonyanthonyTZSELECT(8) System Manager's Manual TZSELECT(8) NAME tzselect - select a timezone SYNOPSIS tzselect [ -c coord ] [ -n limit ] [ --help ] [ --version ] DESCRIPTION The tzselect program asks the user for information about the current location, and outputs the resulting timezone to standard output. The output is suitable as a value for the TZ environment variable. All interaction with the user is done via standard input and standard error. OPTIONS -c coord Instead of asking for continent and then country and then city, ask for selection from time zones whose largest cities are closest to the location with geographical coordinates coord. Use ISO 6709 notation for coord, that is, a latitude immediately followed by a longitude. The latitude and longitude should be signed integers followed by an optional decimal point and fraction: positive numbers represent north and east, negative south and west. Latitudes with two and longitudes with three integer digits are treated as degrees; latitudes with four or six and longitudes with five or seven integer digits are treated as DDMM, DDDMM, DDMMSS, or DDDMMSS representing DD or DDD degrees, MM minutes, and zero or SS seconds, with any trailing fractions represent fractional minutes or (if SS is present) seconds. The decimal point is that of the current locale. For example, in the (default) C locale, -c +40.689-074.045 specifies 40.689oN, 74.045oW, -c +4041.4-07402.7 specifies 40o41.4'N, 74o2.7'W, and -c +404121-0740240 specifies 40o41'21''N, 74o2'40''W. If coord is not one of the documented forms, the resulting behavior is unspecified. -n limit When -c is used, display the closest limit locations (default 10). --help Output help information and exit. --version Output version information and exit. ENVIRONMENT VARIABLES AWK Name of a Posix-compliant awk program (default: awk). TZDIR Name of the directory containing timezone data files (default: /usr/share/zoneinfo). FILES TZDIR/iso3166.tab Table of ISO 3166 2-letter country codes and country names. TZDIR/zone1970.tab Table of country codes, latitude and longitude, timezones, and descriptive comments. TZDIR/TZ Timezone data file for timezone TZ. EXIT STATUS The exit status is zero if a timezone was successfully obtained from the user, nonzero otherwise. SEE ALSO newctime(3), tzfile(5), zdump(8), zic(8) NOTES Applications should not assume that tzselect's output matches the user's political preferences. TZSELECT(8) ./tzdatabase/zdump.80000644000175000017500000001513113363701356014517 0ustar anthonyanthony.TH ZDUMP 8 .SH NAME zdump \- timezone dumper .SH SYNOPSIS .B zdump [ .I option \&... ] [ .I timezone \&... ] .SH DESCRIPTION .ie '\(lq'' .ds lq \&"\" .el .ds lq \(lq\" .ie '\(rq'' .ds rq \&"\" .el .ds rq \(rq\" .de q \\$3\*(lq\\$1\*(rq\\$2 .. .ie \n(.g .ds - \f(CW-\fP .el ds - \- The .B zdump program prints the current time in each .I timezone named on the command line. .SH OPTIONS .TP .B \*-\*-version Output version information and exit. .TP .B \*-\*-help Output short usage message and exit. .TP .B \*-i Output a description of time intervals. For each .I timezone on the command line, output an interval-format description of the timezone. See .q "INTERVAL FORMAT" below. .TP .B \*-v Output a verbose description of time intervals. For each .I timezone on the command line, print the time at the lowest possible time value, the time one day after the lowest possible time value, the times both one second before and exactly at each detected time discontinuity, the time at one day less than the highest possible time value, and the time at the highest possible time value. Each line is followed by .BI isdst= D where .I D is positive, zero, or negative depending on whether the given time is daylight saving time, standard time, or an unknown time type, respectively. Each line is also followed by .BI gmtoff= N if the given local time is known to be .I N seconds east of Greenwich. .TP .B \*-V Like .BR \*-v , except omit the times relative to the extreme time values. This generates output that is easier to compare to that of implementations with different time representations. .TP .BI "\*-c " \fR[\fIloyear , \fR]\fIhiyear Cut off interval output at the given year(s). Cutoff times are computed using the proleptic Gregorian calendar with year 0 and with Universal Time (UT) ignoring leap seconds. The lower bound is exclusive and the upper is inclusive; for example, a .I loyear of 1970 excludes a transition occurring at 1970-01-01 00:00:00 UTC but a .I hiyear of 1970 includes the transition. The default cutoff is .BR \*-500,2500 . .TP .BI "\*-t " \fR[\fIlotime , \fR]\fIhitime Cut off interval output at the given time(s), given in decimal seconds since 1970-01-01 00:00:00 Coordinated Universal Time (UTC). The .I timezone determines whether the count includes leap seconds. As with .BR \*-c , the cutoff's lower bound is exclusive and its upper bound is inclusive. .SH "INTERVAL FORMAT" The interval format is a compact text representation that is intended to be both human- and machine-readable. It consists of an empty line, then a line .q "TZ=\fIstring\fP" where .I string is a double-quoted string giving the timezone, a second line .q "\*- \*- \fIinterval\fP" describing the time interval before the first transition if any, and zero or more following lines .q "\fIdate time interval\fP", one line for each transition time and following interval. Fields are separated by single tabs. .PP Dates are in .IR yyyy - mm - dd format and times are in 24-hour .IR hh : mm : ss format where .IR hh <24. Times are in local time immediately after the transition. A time interval description consists of a UT offset in signed .RI \(+- hhmmss format, a time zone abbreviation, and an isdst flag. An abbreviation that equals the UT offset is omitted; other abbreviations are double-quoted strings unless they consist of one or more alphabetic characters. An isdst flag is omitted for standard time, and otherwise is a decimal integer that is unsigned and positive (typically 1) for daylight saving time and negative for unknown. .PP In times and in UT offsets with absolute value less than 100 hours, the seconds are omitted if they are zero, and the minutes are also omitted if they are also zero. Positive UT offsets are east of Greenwich. The UT offset \*-00 denotes a UT placeholder in areas where the actual offset is unspecified; by convention, this occurs when the UT offset is zero and the time zone abbreviation begins with .q "\*-" or is .q "zzz". .PP In double-quoted strings, escape sequences represent unusual characters. The escape sequences are \es for space, and \e", \e\e, \ef, \en, \er, \et, and \ev with their usual meaning in the C programming language. E.g., the double-quoted string \*(lq"CET\es\e"\e\e"\*(rq represents the character sequence \*(lqCET "\e\*(rq.\"" .PP .ne 9 Here is an example of the output, with the leading empty line omitted. (This example is shown with tab stops set far enough apart so that the tabbed columns line up.) .nf .sp .if \n(.g .ft CW .if t .in +.5i .if n .in +2 .nr w \w'1896-01-13 'u+\n(.i .ta \w'1896-01-13 'u +\w'12:01:26 'u +\w'-103126 'u +\w'HWT 'u TZ="Pacific/Honolulu" - - -103126 LMT 1896-01-13 12:01:26 -1030 HST 1933-04-30 03 -0930 HDT 1 1933-05-21 11 -1030 HST 1942-02-09 03 -0930 HWT 1 1945-08-14 13:30 -0930 HPT 1 1945-09-30 01 -1030 HST 1947-06-08 02:30 -10 HST .in .if \n(.g .ft .sp .fi Here, local time begins 10 hours, 31 minutes and 26 seconds west of UT, and is a standard time abbreviated LMT. Immediately after the first transition, the date is 1896-01-13 and the time is 12:01:26, and the following time interval is 10.5 hours west of UT, a standard time abbreviated HST. Immediately after the second transition, the date is 1933-04-30 and the time is 03:00:00 and the following time interval is 9.5 hours west of UT, is abbreviated HDT, and is daylight saving time. Immediately after the last transition the date is 1947-06-08 and the time is 02:30:00, and the following time interval is 10 hours west of UT, a standard time abbreviated HST. .PP .ne 10 Here are excerpts from another example: .nf .sp .if \n(.g .ft CW .if t .in +.5i .if n .in +2 TZ="Europe/Astrakhan" - - +031212 LMT 1924-04-30 23:47:48 +03 1930-06-21 01 +04 1981-04-01 01 +05 1 1981-09-30 23 +04 \&... 2014-10-26 01 +03 2016-03-27 03 +04 .in .if \n(.g .ft .sp .fi This time zone is east of UT, so its UT offsets are positive. Also, many of its time zone abbreviations are omitted since they duplicate the text of the UT offset. .SH LIMITATIONS Time discontinuities are found by sampling the results returned by localtime at twelve-hour intervals. This works in all real-world cases; one can construct artificial time zones for which this fails. .PP In the .B \*-v and .B \*-V output, .q "UT" denotes the value returned by .IR gmtime (3), which uses UTC for modern timestamps and some other UT flavor for timestamps that predate the introduction of UTC. No attempt is currently made to have the output use .q "UTC" for newer and .q "UT" for older timestamps, partly because the exact date of the introduction of UTC is problematic. .SH SEE ALSO .BR tzfile (5), .BR zic (8) .\" This file is in the public domain, so clarified as of .\" 2009-05-17 by Arthur David Olson. ./tzdatabase/tzfile.5.txt0000644000175000017500000003765713502225077015505 0ustar anthonyanthonyTZFILE(5) File Formats Manual TZFILE(5) NAME tzfile - timezone information DESCRIPTION The timezone information files used by tzset(3) are typically found under a directory with a name like /usr/share/zoneinfo. These files use the format described in Internet RFC 8536. Each file is a sequence of 8-bit bytes. In a file, a binary integer is represented by a sequence of one or more bytes in network order (bigendian, or high- order byte first), with all bits significant, a signed binary integer is represented using two's complement, and a boolean is represented by a one-byte binary integer that is either 0 (false) or 1 (true). The format begins with a 44-byte header containing the following fields: * The magic four-byte ASCII sequence "TZif" identifies the file as a timezone information file. * A byte identifying the version of the file's format (as of 2017, either an ASCII NUL, or "2", or "3"). * Fifteen bytes containing zeros reserved for future use. * Six four-byte integer values, in the following order: tzh_ttisutcnt The number of UT/local indicators stored in the file. tzh_ttisstdcnt The number of standard/wall indicators stored in the file. tzh_leapcnt The number of leap seconds for which data entries are stored in the file. tzh_timecnt The number of transition times for which data entries are stored in the file. tzh_typecnt The number of local time types for which data entries are stored in the file (must not be zero). tzh_charcnt The number of bytes of time zone abbreviation strings stored in the file. The above header is followed by the following fields, whose lengths depend on the contents of the header: * tzh_timecnt four-byte signed integer values sorted in ascending order. These values are written in network byte order. Each is used as a transition time (as returned by time(2)) at which the rules for computing local time change. * tzh_timecnt one-byte unsigned integer values; each one but the last tells which of the different types of local time types described in the file is associated with the time period starting with the same- indexed transition time and continuing up to but not including the next transition time. (The last time type is present only for consistency checking with the POSIX-style TZ string described below.) These values serve as indices into the next field. * tzh_typecnt ttinfo entries, each defined as follows: struct ttinfo { int32_t tt_utoff; unsigned char tt_isdst; unsigned char tt_desigidx; }; Each structure is written as a four-byte signed integer value for tt_utoff, in network byte order, followed by a one-byte boolean for tt_isdst and a one-byte value for tt_desigidx. In each structure, tt_utoff gives the number of seconds to be added to UT, tt_isdst tells whether tm_isdst should be set by localtime(3) and tt_desigidx serves as an index into the array of time zone abbreviation bytes that follow the ttinfo structure(s) in the file. The tt_utoff value is never equal to -2**31, to let 32-bit clients negate it without overflow. Also, in realistic applications tt_utoff is in the range [-89999, 93599] (i.e., more than -25 hours and less than 26 hours); this allows easy support by implementations that already support the POSIX-required range [-24:59:59, 25:59:59]. * tzh_leapcnt pairs of four-byte values, written in network byte order; the first value of each pair gives the nonnegative time (as returned by time(2)) at which a leap second occurs; the second is a signed integer specifying the total number of leap seconds to be applied during the time period starting at the given time. The pairs of values are sorted in ascending order by time. Each transition is for one leap second, either positive or negative; transitions always separated by at least 28 days minus 1 second. * tzh_ttisstdcnt standard/wall indicators, each stored as a one-byte boolean; they tell whether the transition times associated with local time types were specified as standard time or local (wall clock) time. * tzh_ttisutcnt UT/local indicators, each stored as a one-byte boolean; they tell whether the transition times associated with local time types were specified as UT or local time. If a UT/local indicator is set, the corresponding standard/wall indicator must also be set. The standard/wall and UT/local indicators were designed for transforming a TZif file's transition times into transitions appropriate for another time zone specified via a POSIX-style TZ string that lacks rules. For example, when TZ="EET-2EEST" and there is no TZif file "EET-2EEST", the idea was to adapt the transition times from a TZif file with the well-known name "posixrules" that is present only for this purpose and is a copy of the file "Europe/Brussels", a file with a different UT offset. POSIX does not specify this obsolete transformational behavior, the default rules are installation- dependent, and no implementation is known to support this feature for timestamps past 2037, so users desiring (say) Greek time should instead specify TZ="Europe/Athens" for better historical coverage, falling back on TZ="EET-2EEST,M3.5.0/3,M10.5.0/4" if POSIX conformance is required and older timestamps need not be handled accurately. The localtime(3) function normally uses the first ttinfo structure in the file if either tzh_timecnt is zero or the time argument is less than the first transition time recorded in the file. Version 2 format For version-2-format timezone files, the above header and data are followed by a second header and data, identical in format except that eight bytes are used for each transition time or leap second time. (Leap second counts remain four bytes.) After the second header and data comes a newline-enclosed, POSIX-TZ-environment-variable-style string for use in handling instants after the last transition time stored in the file or for all instants if the file has no transitions. The POSIX-style TZ string is empty (i.e., nothing between the newlines) if there is no POSIX representation for such instants. If nonempty, the POSIX-style TZ string must agree with the local time type after the last transition time if present in the eight-byte data; for example, given the string "WET0WEST,M3.5.0,M10.5.0/3" then if a last transition time is in July, the transition's local time type must specify a daylight-saving time abbreviated "WEST" that is one hour east of UT. Also, if there is at least one transition, time type 0 is associated with the time period from the indefinite past up to but not including the earliest transition time. Version 3 format For version-3-format timezone files, the POSIX-TZ-style string may use two minor extensions to the POSIX TZ format, as described in newtzset(3). First, the hours part of its transition times may be signed and range from -167 through 167 instead of the POSIX-required unsigned values from 0 through 24. Second, DST is in effect all year if it starts January 1 at 00:00 and ends December 31 at 24:00 plus the difference between daylight saving and standard time. Interoperability considerations Future changes to the format may append more data. Version 1 files are considered a legacy format and should be avoided, as they do not support transition times after the year 2038. Readers that only understand Version 1 must ignore any data that extends beyond the calculated end of the version 1 data block. Writers should generate a version 3 file if TZ string extensions are necessary to accurately model transition times. Otherwise, version 2 files should be generated. The sequence of time changes defined by the version 1 header and data block should be a contiguous subsequence of the time changes defined by the version 2+ header and data block, and by the footer. This guideline helps obsolescent version 1 readers agree with current readers about timestamps within the contiguous subsequence. It also lets writers not supporting obsolescent readers use a tzh_timecnt of zero in the version 1 data block to save space. Time zone designations should consist of at least three (3) and no more than six (6) ASCII characters from the set of alphanumerics, "-", and "+". This is for compatibility with POSIX requirements for time zone abbreviations. When reading a version 2 or 3 file, readers should ignore the version 1 header and data block except for the purpose of skipping over them. Readers should calculate the total lengths of the headers and data blocks and check that they all fit within the actual file size, as part of a validity check for the file. Common interoperability issues This section documents common problems in reading or writing TZif files. Most of these are problems in generating TZif files for use by older readers. The goals of this section are: * to help TZif writers output files that avoid common pitfalls in older or buggy TZif readers, * to help TZif readers avoid common pitfalls when reading files generated by future TZif writers, and * to help any future specification authors see what sort of problems arise when the TZif format is changed. When new versions of the TZif format have been defined, a design goal has been that a reader can successfully use a TZif file even if the file is of a later TZif version than what the reader was designed for. When complete compatibility was not achieved, an attempt was made to limit glitches to rarely-used timestamps, and to allow simple partial workarounds in writers designed to generate new-version data useful even for older-version readers. This section attempts to document these compatibility issues and workarounds, as well as to document other common bugs in readers. Interoperability problems with TZif include the following: * Some readers examine only version 1 data. As a partial workaround, a writer can output as much version 1 data as possible. However, a reader should ignore version 1 data, and should use version 2+ data even if the reader's native timestamps have only 32 bits. * Some readers designed for version 2 might mishandle timestamps after a version 3 file's last transition, because they cannot parse extensions to POSIX in the TZ-like string. As a partial workaround, a writer can output more transitions than necessary, so that only far-future timestamps are mishandled by version 2 readers. * Some readers designed for version 2 do not support permanent daylight saving time, e.g., a TZ string "EST5EDT,0/0,J365/25" denoting permanent Eastern Daylight Time (-04). As a partial workaround, a writer can substitute standard time for the next time zone east, e.g., "AST4" for permanent Atlantic Standard Time (-04). * Some readers ignore the footer, and instead predict future timestamps from the time type of the last transition. As a partial workaround, a writer can output more transitions than necessary. * Some readers do not use time type 0 for timestamps before the first transition, in that they infer a time type using a heuristic that does not always select time type 0. As a partial workaround, a writer can output a dummy (no-op) first transition at an early time. * Some readers mishandle timestamps before the first transition that has a timestamp not less than -2**31. Readers that support only 32-bit timestamps are likely to be more prone to this problem, for example, when they process 64-bit transitions only some of which are representable in 32 bits. As a partial workaround, a writer can output a dummy transition at timestamp -2**31. * Some readers mishandle a transition if its timestamp has the minimum possible signed 64-bit value. Timestamps less than -2**59 are not recommended. * Some readers mishandle POSIX-style TZ strings that contain "<" or ">". As a partial workaround, a writer can avoid using "<" or ">" for time zone abbreviations containing only alphabetic characters. * Many readers mishandle time zone abbreviations that contain non-ASCII characters. These characters are not recommended. * Some readers may mishandle time zone abbreviations that contain fewer than 3 or more than 6 characters, or that contain ASCII characters other than alphanumerics, "-", and "+". These abbreviations are not recommended. * Some readers mishandle TZif files that specify daylight-saving time UT offsets that are less than the UT offsets for the corresponding standard time. These readers do not support locations like Ireland, which uses the equivalent of the POSIX TZ string "IST-1GMT0,M10.5.0,M3.5.0/1", observing standard time (IST, +01) in summer and daylight saving time (GMT, +00) in winter. As a partial workaround, a writer can output data for the equivalent of the POSIX TZ string "GMT0IST,M3.5.0/1,M10.5.0", thus swapping standard and daylight saving time. Although this workaround misidentifies which part of the year uses daylight saving time, it records UT offsets and time zone abbreviations correctly. Some interoperability problems are reader bugs that are listed here mostly as warnings to developers of readers. * Some readers do not support negative timestamps. Developers of distributed applications should keep this in mind if they need to deal with pre-1970 data. * Some readers mishandle timestamps before the first transition that has a nonnegative timestamp. Readers that do not support negative timestamps are likely to be more prone to this problem. * Some readers mishandle time zone abbreviations like "-08" that contain "+", "-", or digits. * Some readers mishandle UT offsets that are out of the traditional range of -12 through +12 hours, and so do not support locations like Kiritimati that are outside this range. * Some readers mishandle UT offsets in the range [-3599, -1] seconds from UT, because they integer-divide the offset by 3600 to get 0 and then display the hour part as "+00". * Some readers mishandle UT offsets that are not a multiple of one hour, or of 15 minutes, or of 1 minute. SEE ALSO time(2), localtime(3), tzset(3), tzselect(8), zdump(8), zic(8). Olson A, Eggert P, Murchison K. The Time Zone Information Format (TZif). 2019 Feb. Internet RFC 8536 doi:10.17487/RFC8536 . TZFILE(5) ./tzdatabase/asia0000644000175000017500000053401014276564214014135 0ustar anthonyanthony# tzdb data for Asia and environs # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. # This file is by no means authoritative; if you think you know better, # go ahead and edit the file (and please send any changes to # tz@iana.org for general use in the future). For more, please see # the file CONTRIBUTING in the tz distribution. # From Paul Eggert (2019-07-11): # # Unless otherwise specified, the source for data through 1990 is: # Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition), # San Diego: ACS Publications, Inc. (2003). # Unfortunately this book contains many errors and cites no sources. # # Many years ago Gwillim Law wrote that a good source # for time zone data was the International Air Transport # Association's Standard Schedules Information Manual (IATA SSIM), # published semiannually. Law sent in several helpful summaries # of the IATA's data after 1990. Except where otherwise noted, # IATA SSIM is the source for entries after 1990. # # Another source occasionally used is Edward W. Whitman, World Time Differences, # Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated), which # I found in the UCLA library. # # For data circa 1899, a common source is: # Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94. # https://www.jstor.org/stable/1774359 # # For Russian data circa 1919, a source is: # Byalokoz EL. New Counting of Time in Russia since July 1, 1919. # (See the 'europe' file for a fuller citation.) # # The following alphabetic abbreviations appear in these tables # (corrections are welcome): # std dst # LMT Local Mean Time # 2:00 EET EEST Eastern European Time # 2:00 IST IDT Israel # 5:30 IST India # 7:00 WIB west Indonesia (Waktu Indonesia Barat) # 8:00 WITA central Indonesia (Waktu Indonesia Tengah) # 8:00 CST China # 8:00 HKT HKST Hong Kong (HKWT* for Winter Time in late 1941) # 8:00 PST PDT* Philippines # 8:30 KST KDT Korea when at +0830 # 9:00 WIT east Indonesia (Waktu Indonesia Timur) # 9:00 JST JDT Japan # 9:00 KST KDT Korea when at +09 # *I invented the abbreviations HKWT and PDT; see below. # Otherwise, these tables typically use numeric abbreviations like +03 # and +0330 for integer hour and minute UT offsets. Although earlier # editions invented alphabetic time zone abbreviations for every # offset, this did not reflect common practice. # # See the 'europe' file for Russia and Turkey in Asia. # From Guy Harris: # Incorporates data for Singapore from Robert Elz' asia 1.1, as well as # additional information from Tom Yap, Sun Microsystems Intercontinental # Technical Support (including a page from the Official Airline Guide - # Worldwide Edition). ############################################################################### # These rules are stolen from the 'europe' file. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule EUAsia 1981 max - Mar lastSun 1:00u 1:00 S Rule EUAsia 1979 1995 - Sep lastSun 1:00u 0 - Rule EUAsia 1996 max - Oct lastSun 1:00u 0 - Rule E-EurAsia 1981 max - Mar lastSun 0:00 1:00 - Rule E-EurAsia 1979 1995 - Sep lastSun 0:00 0 - Rule E-EurAsia 1996 max - Oct lastSun 0:00 0 - Rule RussiaAsia 1981 1984 - Apr 1 0:00 1:00 - Rule RussiaAsia 1981 1983 - Oct 1 0:00 0 - Rule RussiaAsia 1984 1995 - Sep lastSun 2:00s 0 - Rule RussiaAsia 1985 2010 - Mar lastSun 2:00s 1:00 - Rule RussiaAsia 1996 2010 - Oct lastSun 2:00s 0 - # Afghanistan # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Kabul 4:36:48 - LMT 1890 4:00 - +04 1945 4:30 - +0430 # Armenia # From Paul Eggert (2006-03-22): # Shanks & Pottenger have Yerevan switching to 3:00 (with Russian DST) # in spring 1991, then to 4:00 with no DST in fall 1995, then # readopting Russian DST in 1997. Go with Shanks & Pottenger, even # when they disagree with others. Edgar Der-Danieliantz # reported (1996-05-04) that Yerevan probably wouldn't use DST # in 1996, though it did use DST in 1995. IATA SSIM (1991/1998) reports that # Armenia switched from 3:00 to 4:00 in 1998 and observed DST after 1991, # but started switching at 3:00s in 1998. # From Arthur David Olson (2011-06-15): # While Russia abandoned DST in 2011, Armenia may choose to # follow Russia's "old" rules. # From Alexander Krivenyshev (2012-02-10): # According to News Armenia, on Feb 9, 2012, # http://newsarmenia.ru/society/20120209/42609695.html # # The Armenia National Assembly adopted final reading of Amendments to the # Law "On procedure of calculation time on the territory of the Republic of # Armenia" according to which Armenia [is] abolishing Daylight Saving Time. # or # (brief) # http://www.worldtimezone.com/dst_news/dst_news_armenia03.html # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Armenia 2011 only - Mar lastSun 2:00s 1:00 - Rule Armenia 2011 only - Oct lastSun 2:00s 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Yerevan 2:58:00 - LMT 1924 May 2 3:00 - +03 1957 Mar 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s 3:00 RussiaAsia +03/+04 1995 Sep 24 2:00s 4:00 - +04 1997 4:00 RussiaAsia +04/+05 2011 4:00 Armenia +04/+05 # Azerbaijan # From Rustam Aliyev of the Azerbaijan Internet Forum (2005-10-23): # According to the resolution of Cabinet of Ministers, 1997 # From Paul Eggert (2015-09-17): It was Resolution No. 21 (1997-03-17). # http://code.az/files/daylight_res.pdf # From Steffen Thorsen (2016-03-17): # ... the Azerbaijani Cabinet of Ministers has cancelled switching to # daylight saving time.... # https://www.azernews.az/azerbaijan/94137.html # http://vestnikkavkaza.net/news/Azerbaijani-Cabinet-of-Ministers-cancels-daylight-saving-time.html # http://en.apa.az/xeber_azerbaijan_abolishes_daylight_savings_ti_240862.html # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 - Rule Azer 1997 2015 - Oct lastSun 5:00 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Baku 3:19:24 - LMT 1924 May 2 3:00 - +03 1957 Mar 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s 3:00 RussiaAsia +03/+04 1992 Sep lastSun 2:00s 4:00 - +04 1996 4:00 EUAsia +04/+05 1997 4:00 Azer +04/+05 # Bahrain # See Asia/Qatar. # Bangladesh # From Alexander Krivenyshev (2009-05-13): # According to newspaper Asian Tribune (May 6, 2009) Bangladesh may introduce # Daylight Saving Time from June 16 to Sept 30 # # Bangladesh to introduce daylight saving time likely from June 16 # http://www.asiantribune.com/?q=node/17288 # http://www.worldtimezone.com/dst_news/dst_news_bangladesh02.html # # "... Bangladesh government has decided to switch daylight saving time from # June # 16 till September 30 in a bid to ensure maximum use of daylight to cope with # crippling power crisis. " # # The switch will remain in effect from June 16 to Sept 30 (2009) but if # implemented the next year, it will come in force from April 1, 2010 # From Steffen Thorsen (2009-06-02): # They have finally decided now, but changed the start date to midnight between # the 19th and 20th, and they have not set the end date yet. # # Some sources: # https://in.reuters.com/article/southAsiaNews/idINIndia-40017620090601 # http://bdnews24.com/details.php?id=85889&cid=2 # # Our wrap-up: # https://www.timeanddate.com/news/time/bangladesh-daylight-saving-2009.html # From A. N. M. Kamrus Saadat (2009-06-15): # Finally we've got the official mail regarding DST start time where DST start # time is mentioned as Jun 19 2009, 23:00 from BTRC (Bangladesh # Telecommunication Regulatory Commission). # # No DST end date has been announced yet. # From Alexander Krivenyshev (2009-09-25): # Bangladesh won't go back to Standard Time from October 1, 2009, # instead it will continue DST measure till the cabinet makes a fresh decision. # # Following report by same newspaper-"The Daily Star Friday": # "DST change awaits cabinet decision-Clock won't go back by 1-hr from Oct 1" # http://www.thedailystar.net/newDesign/news-details.php?nid=107021 # http://www.worldtimezone.com/dst_news/dst_news_bangladesh04.html # From Steffen Thorsen (2009-10-13): # IANS (Indo-Asian News Service) now reports: # Bangladesh has decided that the clock advanced by an hour to make # maximum use of daylight hours as an energy saving measure would # "continue for an indefinite period." # # One of many places where it is published: # http://www.thaindian.com/newsportal/business/bangladesh-to-continue-indefinitely-with-advanced-time_100259987.html # From Alexander Krivenyshev (2009-12-24): # According to Bangladesh newspaper "The Daily Star," # Bangladesh will change its clock back to Standard Time on Dec 31, 2009. # # Clock goes back 1-hr on Dec 31 night. # http://www.thedailystar.net/newDesign/news-details.php?nid=119228 # http://www.worldtimezone.com/dst_news/dst_news_bangladesh05.html # # "...The government yesterday decided to put the clock back by one hour # on December 31 midnight and the new time will continue until March 31, # 2010 midnight. The decision came at a cabinet meeting at the Prime # Minister's Office last night..." # From Alexander Krivenyshev (2010-03-22): # According to Bangladesh newspaper "The Daily Star," # Cabinet cancels Daylight Saving Time # http://www.thedailystar.net/newDesign/latest_news.php?nid=22817 # http://www.worldtimezone.com/dst_news/dst_news_bangladesh06.html # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Dhaka 2009 only - Jun 19 23:00 1:00 - Rule Dhaka 2009 only - Dec 31 24:00 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Dhaka 6:01:40 - LMT 1890 5:53:20 - HMT 1941 Oct # Howrah Mean Time? 6:30 - +0630 1942 May 15 5:30 - +0530 1942 Sep 6:30 - +0630 1951 Sep 30 6:00 - +06 2009 6:00 Dhaka +06/+07 # Bhutan # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Thimphu 5:58:36 - LMT 1947 Aug 15 # or Thimbu 5:30 - +0530 1987 Oct 6:00 - +06 # British Indian Ocean Territory # Whitman and the 1995 CIA time zone map say 5:00, but the # 1997 and later maps say 6:00. Assume the switch occurred in 1996. # We have no information as to when standard time was introduced; # assume it occurred in 1907, the same year as Mauritius (which # then contained the Chagos Archipelago). # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Indian/Chagos 4:49:40 - LMT 1907 5:00 - +05 1996 6:00 - +06 # Brunei # See Asia/Kuching. # Burma / Myanmar # Milne says 6:24:40 was the meridian of the time ball observatory at Rangoon. # From Paul Eggert (2017-04-20): # Page 27 of Reed & Low (cited for Asia/Kolkata) says "Rangoon local time is # used upon the railways and telegraphs of Burma, and is 6h. 24m. 47s. ahead # of Greenwich." This refers to the period before Burma's transition to +0630, # a transition for which Shanks is the only source. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Yangon 6:24:47 - LMT 1880 # or Rangoon 6:24:47 - RMT 1920 # Rangoon local time 6:30 - +0630 1942 May 9:00 - +09 1945 May 3 6:30 - +0630 Link Asia/Yangon Indian/Cocos # Cambodia # See Asia/Bangkok. # China # From Phake Nick (2020-04-15): # According to this news report: # http://news.sina.com.cn/c/2004-09-01/19524201403.shtml # on April 11, 1919, newspaper in Shanghai said clocks in Shanghai will spring # forward for an hour starting from midnight of that Saturday. The report did # not mention what happened in Shanghai thereafter, but it mentioned that a # similar trial in Tianjin which ended at October 1st as citizens are told to # recede the clock on September 30 from 12:00pm to 11:00pm. The trial at # Tianjin got terminated in 1920. # # From Paul Eggert (2020-04-15): # The Returns of Trade and Trade Reports, page 711, says "Daylight saving was # given a trial during the year, and from the 12th April to the 1st October # the clocks were all set one hour ahead of sun time. Though the scheme was # generally esteemed a success, it was announced early in 1920 that it would # not be repeated." # # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Shang 1919 only - Apr 12 24:00 1:00 D Rule Shang 1919 only - Sep 30 24:00 0 S # From Paul Eggert (2018-10-02): # The following comes from Table 1 of: # Li Yu. Research on the daylight saving movement in 1940s Shanghai. # Nanjing Journal of Social Sciences. 2014;(2):144-50. # http://oversea.cnki.net/kns55/detail.aspx?dbname=CJFD2014&filename=NJSH201402020 # The table lists dates only; I am guessing 00:00 and 24:00 transition times. # Also, the table lists the planned end of DST in 1949, but the corresponding # zone line cuts this off on May 28, when the Communists took power. # From Phake Nick (2020-04-15): # # For the history of time in Shanghai between 1940-1942, the situation is # actually slightly more complex than the table [below].... At the time, # there were three different authorities in Shanghai, including Shanghai # International Settlement, a settlement established by western countries with # its own westernized form of government, Shanghai French Concession, similar # to the international settlement but is controlled by French, and then the # rest of the city of Shanghai, which have already been controlled by Japanese # force through a puppet local government (Wang Jingwei regime). It was # additionally complicated by the circumstances that, according to the 1940s # Shanghai summer time essay cited in the database, some # departments/businesses/people in the Shanghai city itself during that time # period, refused to change their clock and instead only changed their opening # hours. # # For example, as quoted in the article, in 1940, other than the authority # itself, power, tram, bus companies, cinema, department stores, and other # public service organizations have all decided to follow the summer time and # spring forward the clock. On the other hand, the custom office refused to # spring forward the clock because of worry on mechanical wear to the physical # clock, postal office refused to spring forward because of disruption to # business and log-keeping, although they did changed their office hour to # match rest of the city. So is travel agents, and also weather # observatory. It is said both time standards had their own supporters in the # city at the time, those who prefer new time standard would have moved their # clock while those who prefer the old time standard would keep their clock # unchange, and there were different clocks that use different time standard # in the city at the time for people who use different time standard to adjust # their clock to their preferred time. # # a. For the 1940 May 31 spring forward, the essay [says] ... "Hong # Kong government implemented the spring forward in the same time on # the same date as Shanghai". # # b. For the 1940 fall back, it was said that they initially intended to do # so on September 30 00:59 at night, however they postponed it to October 12 # after discussion with relevant parties. However schools restored to the # original schedule ten days earlier. # # c. For the 1941 spring forward, it is said to start from March 15 # "following the previous year's method", and in addition to that the essay # cited an announcement in 1941 from the Wang regime which said the Special # City of Shanghai under Wang regime control will follow the DST rule set by # the Settlements, irrespective of the original DST plan announced by the Wang # regime for other area under its control(April 1 to September 30). (no idea # to situation before that announcement) # # d. For the 1941 fall back, it was said that the fall back would occurs at # the end of September (A newspaper headline cited by the essay, published on # October 1, 1941, have the headlines which said "French Concession would # rewind to the old clock this morning), but it ultimately didn't happen due # to disagreement between the international settlement authority and the # French concession authority, and the fall back ultimately occurred on # November 1. # # e. In 1941 December, Japan have officially started war with the United # States and the United Kingdom, and in Shanghai they have marched into the # international settlement, taken over its control # # f. For the 1942 spring forward, the essay said that the spring forward # started on January 31. It said this time the custom office and postal # department will also change their clocks, unlike before. # # g. The essay itself didn't cover any specific changes thereafter until the # end of the war, it quoted a November 1942 command from the government of the # Wang regime, which claim the daylight saving time applies year round during # the war. However, the essay ambiguously said the period is "February 1 to # September 30", which I don't really understand what is the meaning of such # period in the context of year round implementation here.. More researches # might be needed to show exactly what happened during that period of time. # From Phake Nick (2020-04-15): # According to a Japanese tour bus pamphlet in Nanjing area believed to be # from around year 1941: http://www.tt-museum.jp/tairiku_0280_nan1941.html , # the schedule listed was in the format of Japanese time. Which indicate some # use of the Japanese time (instead of syncing by DST) might have occurred in # the Yangtze river delta area during that period of time although the scope # of such use will need to be investigated to determine. # # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Shang 1940 only - Jun 1 0:00 1:00 D Rule Shang 1940 only - Oct 12 24:00 0 S Rule Shang 1941 only - Mar 15 0:00 1:00 D Rule Shang 1941 only - Nov 1 24:00 0 S Rule Shang 1942 only - Jan 31 0:00 1:00 D Rule Shang 1945 only - Sep 1 24:00 0 S Rule Shang 1946 only - May 15 0:00 1:00 D Rule Shang 1946 only - Sep 30 24:00 0 S Rule Shang 1947 only - Apr 15 0:00 1:00 D Rule Shang 1947 only - Oct 31 24:00 0 S Rule Shang 1948 1949 - May 1 0:00 1:00 D Rule Shang 1948 1949 - Sep 30 24:00 0 S #plan # From Guy Harris: # People's Republic of China. Yes, they really have only one time zone. # From Bob Devine (1988-01-28): # No they don't. See TIME mag, 1986-02-17 p.52. Even though # China is across 4 physical time zones, before Feb 1, 1986 only the # Peking (Beijing) time zone was recognized. Since that date, China # has two of 'em - Peking's and Ürümqi (named after the capital of # the Xinjiang Uyghur Autonomous Region). I don't know about DST for it. # # . . .I just deleted the DST table and this editor makes it too # painful to suck in another copy. So, here is what I have for # DST start/end dates for Peking's time zone (info from AP): # # 1986 May 4 - Sept 14 # 1987 mid-April - ?? # From U. S. Naval Observatory (1989-01-19): # CHINA 8 H AHEAD OF UTC ALL OF CHINA, INCL TAIWAN # CHINA 9 H AHEAD OF UTC APR 17 - SEP 10 # From Paul Eggert (2008-02-11): # Jim Mann, "A clumsy embrace for another western custom: China on daylight # time - sort of", Los Angeles Times, 1986-05-05 ... [says] that China began # observing daylight saving time in 1986. # From P Chan (2018-05-07): # The start and end time of DST in China [from 1986 on] should be 2:00 # (i.e. 2:00 to 3:00 at the start and 2:00 to 1:00 at the end).... # Government notices about summer time: # # 1986-04-12 http://www.zj.gov.cn/attach/zfgb/198608.pdf p.21-22 # (To establish summer time from 1986. On 4 May, set the clocks ahead one hour # at 2 am. On 14 September, set the clocks backward one hour at 2 am.) # # 1987-02-15 http://www.gov.cn/gongbao/shuju/1987/gwyb198703.pdf p.114 # (Summer time in 1987 to start from 12 April until 13 September) # # 1987-09-09 http://www.gov.cn/gongbao/shuju/1987/gwyb198721.pdf p.709 # (From 1988, summer time to start from 2 am of the first Sunday of mid-April # until 2 am of the first Sunday of mid-September) # # 1992-03-03 http://www.gov.cn/gongbao/shuju/1992/gwyb199205.pdf p.152 # (To suspend summer time from 1992) # # The first page of People's Daily on 12 April 1988 stating that summer time # to begin on 17 April. # http://data.people.com.cn/pic/101p/1988/04/1988041201.jpg # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule PRC 1986 only - May 4 2:00 1:00 D Rule PRC 1986 1991 - Sep Sun>=11 2:00 0 S Rule PRC 1987 1991 - Apr Sun>=11 2:00 1:00 D # From Anthony Fok (2001-12-20): # BTW, I did some research on-line and found some info regarding these five # historic timezones from some Taiwan websites. And yes, there are official # Chinese names for these locales (before 1949). # # From Jesper Nørgaard Welen (2006-07-14): # I have investigated the timezones around 1970 on the # https://www.astro.com/atlas site [with provinces and county # boundaries summarized below].... A few other exceptions were two # counties on the Sichuan side of the Xizang-Sichuan border, # counties Dege and Baiyu which lies on the Sichuan side and are # therefore supposed to be GMT+7, Xizang region being GMT+6, but Dege # county is GMT+8 according to astro.com while Baiyu county is GMT+6 # (could be true), for the moment I am assuming that those two # counties are mistakes in the astro.com data. # From Paul Eggert (2017-01-05): # Alois Treindl kindly sent me translations of the following two sources: # # (1) # Guo Qing-sheng (National Time-Service Center, CAS, Xi'an 710600, China) # Beijing Time at the Beginning of the PRC # China Historical Materials of Science and Technology # (Zhongguo ke ji shi liao, 中国科技史料). 2003;24(1):5-9. # http://oversea.cnki.net/kcms/detail/detail.aspx?filename=ZGKS200301000&dbname=CJFD2003 # It gives evidence that at the beginning of the PRC, Beijing time was # officially apparent solar time! However, Guo also says that the # evidence is dubious, as the relevant institute of astronomy had not # been taken over by the PRC yet. It's plausible that apparent solar # time was announced but never implemented, and that people continued # to use UT+8. As the Shanghai radio station (and I presume the # observatory) was still under control of French missionaries, it # could well have ignored any such mandate. # # (2) # Guo Qing-sheng (Shaanxi Astronomical Observatory, CAS, Xi'an 710600, China) # A Study on the Standard Time Changes for the Past 100 Years in China # [undated and unknown publication location] # It says several things: # * The Qing dynasty used local apparent solar time throughout China. # * The Republic of China instituted Beijing mean solar time effective # the official calendar book of 1914. # * The French Concession in Shanghai set up signal stations in # French docks in the 1890s, controlled by Xujiahui (Zikawei) # Observatory and set to local mean time. # * "From the end of the 19th century" it changed to UT+8. # * Chinese Customs (by then reduced to a tool of foreign powers) # eventually standardized on this time for all ports, and it # became used by railways as well. # * In 1918 the Central Observatory proposed dividing China into # five time zones (see below for details). This caught on # at first only in coastal areas observing UT+8. # * During WWII all of China was in theory was at UT+7. In practice # this was ignored in the west, and I presume was ignored in # Japanese-occupied territory. # * Japanese-occupied Manchuria was at UT+9, i.e., Japan time. # * The five-zone plan was resurrected after WWII and officially put into # place (with some modifications) in March 1948. It's not clear # how well it was observed in areas under Nationalist control. # * The People's Liberation Army used UT+8 during the civil war. # # An AP article "Shanghai Internat'l Area Little Changed" in the # Lewiston (ME) Daily Sun (1939-05-29), p 17, said "Even the time is # different - the occupied districts going by Tokyo time, an hour # ahead of that prevailing in the rest of Shanghai." Guess that the # Xujiahui Observatory was under French control and stuck with UT +08. # # In earlier versions of this file, China had many separate Zone entries, but # this was based on what were apparently incorrect data in Shanks & Pottenger. # This has now been simplified to the two entries Asia/Shanghai and # Asia/Urumqi, with the others being links for backward compatibility. # Proposed in 1918 and theoretically in effect until 1949 (although in practice # mainly observed in coastal areas), the five zones were: # # Changbai Time ("Long-white Time", Long-white = Heilongjiang area) UT +08:30 # Now part of Asia/Shanghai; its pre-1970 times are not recorded here. # Heilongjiang (except Mohe county), Jilin # # Zhongyuan Time ("Central plain Time") UT +08 # Now part of Asia/Shanghai. # most of China # Milne gives 8:05:43.2 for Xujiahui Observatory time.... # Guo says Shanghai switched to UT +08 "from the end of the 19th century". # # Long-shu Time (probably as Long and Shu were two names of the area) UT +07 # Now part of Asia/Shanghai; its pre-1970 times are not recorded here. # Guangxi, Guizhou, Hainan, Ningxia, Sichuan, Shaanxi, and Yunnan; # most of Gansu; west Inner Mongolia; east Qinghai; and the Guangdong # counties Deqing, Enping, Kaiping, Luoding, Taishan, Xinxing, # Yangchun, Yangjiang, Yu'nan, and Yunfu. # # Xin-zang Time ("Xinjiang-Tibet Time") UT +06 # This region is now part of either Asia/Urumqi or Asia/Shanghai with # current boundaries uncertain; times before 1970 for areas that # disagree with Ürümqi or Shanghai are not recorded here. # The Gansu counties Aksay, Anxi, Dunhuang, Subei; west Qinghai; # the Guangdong counties Xuwen, Haikang, Suixi, Lianjiang, # Zhanjiang, Wuchuan, Huazhou, Gaozhou, Maoming, Dianbai, and Xinyi; # east Tibet, including Lhasa, Chamdo, Shigaise, Jimsar, Shawan and Hutubi; # east Xinjiang, including Ürümqi, Turpan, Karamay, Korla, Minfeng, Jinghe, # Wusu, Qiemo, Xinyan, Wulanwusu, Jinghe, Yumin, Tacheng, Tuoli, Emin, # Shihezi, Changji, Yanqi, Heshuo, Tuokexun, Tulufan, Shanshan, Hami, # Fukang, Kuitun, Kumukuli, Miquan, Qitai, and Turfan. # # Kunlun Time UT +05:30 # This region is now in the same status as Xin-zang Time (see above). # West Tibet, including Pulan, Aheqi, Shufu, Shule; # West Xinjiang, including Aksu, Atushi, Yining, Hetian, Cele, Luopu, Nileke, # Zhaosu, Tekesi, Gongliu, Chabuchaer, Huocheng, Bole, Pishan, Suiding, # and Yarkand. # From Luther Ma (2009-10-17): # Almost all (>99.9%) ethnic Chinese (properly ethnic Han) living in # Xinjiang use Chinese Standard Time. Some are aware of Xinjiang time, # but have no need of it. All planes, trains, and schools function on # what is called "Beijing time." When Han make an appointment in Chinese # they implicitly use Beijing time. # # On the other hand, ethnic Uyghurs, who make up about half the # population of Xinjiang, typically use "Xinjiang time" which is two # hours behind Beijing time, or UT +06. The government of the Xinjiang # Uyghur Autonomous Region, (XAUR, or just Xinjiang for short) as well as # local governments such as the Ürümqi city government use both times in # publications, referring to what is popularly called Xinjiang time as # "Ürümqi time." When Uyghurs make an appointment in the Uyghur language # they almost invariably use Xinjiang time. # # (Their ethnic Han compatriots would typically have no clue of its # widespread use, however, because so extremely few of them are fluent in # Uyghur, comparable to the number of Anglo-Americans fluent in Navajo.) # # (...As with the rest of China there was a brief interval ending in 1990 # or 1991 when summer time was in use. The confusion was severe, with # the province not having dual times but four times in use at the same # time. Some areas remained on standard Xinjiang time or Beijing time and # others moving their clocks ahead.) # From Luther Ma (2009-11-19): # With the risk of being redundant to previous answers these are the most common # English "transliterations" (w/o using non-English symbols): # # 1. Wulumuqi... # 2. Kashi... # 3. Urumqi... # 4. Kashgar... # ... # 5. It seems that Uyghurs in Ürümqi has been using Xinjiang since at least the # 1960's. I know of one Han, now over 50, who grew up in the surrounding # countryside and used Xinjiang time as a child. # # 6. Likewise for Kashgar and the rest of south Xinjiang I don't know of any # start date for Xinjiang time. # # Without having access to local historical records, nor the ability to legally # publish them, I would go with October 1, 1949, when Xinjiang became the Uyghur # Autonomous Region under the PRC. (Before that Uyghurs, of course, would also # not be using Beijing time, but some local time.) # From David Cochrane (2014-03-26): # Just a confirmation that Ürümqi time was implemented in Ürümqi on 1 Feb 1986: # https://content.time.com/time/magazine/article/0,9171,960684,00.html # From Luther Ma (2014-04-22): # I have interviewed numerous people of various nationalities and from # different localities in Xinjiang and can confirm the information in Guo's # report regarding Xinjiang, as well as the Time article reference by David # Cochrane. Whether officially recognized or not (and both are officially # recognized), two separate times have been in use in Xinjiang since at least # the Cultural Revolution: Xinjiang Time (XJT), aka Ürümqi Time or local time; # and Beijing Time. There is no confusion in Xinjiang as to which name refers # to which time. Both are widely used in the province, although in some # population groups might be use one to the exclusion of the other. The only # problem is that computers and smart phones list Ürümqi (or Kashgar) as # having the same time as Beijing. # From Paul Eggert (2014-06-30): # In the early days of the PRC, Tibet was given its own time zone (UT +06) # but this was withdrawn in 1959 and never reinstated; see Tubten Khétsun, # Memories of life in Lhasa under Chinese Rule, Columbia U Press, ISBN # 978-0231142861 (2008), translator's introduction by Matthew Akester, p x. # As this is before our 1970 cutoff, Tibet doesn't need a separate zone. # # Xinjiang Time is well-documented as being officially recognized. E.g., see # "The Working-Calendar for The Xinjiang Uygur Autonomous Region Government" # (2014-04-22). # Unfortunately, we have no good records of time in Xinjiang before 1986. # During the 20th century parts of Xinjiang were ruled by the Qing dynasty, # the Republic of China, various warlords, the First and Second East Turkestan # Republics, the Soviet Union, the Kuomintang, and the People's Republic of # China, and tracking down all these organizations' timekeeping rules would be # quite a trick. Approximate this lost history by a transition from LMT to # UT +06 at the start of 1928, the year of accession of the warlord Jin Shuren, # which happens to be the date given by Shanks & Pottenger (no doubt as a # guess) as the transition from LMT. Ignore the usage of +08 before # 1986-02-01 under the theory that the transition date to +08 is unknown and # that the sort of users who prefer Asia/Urumqi now typically ignored the # +08 mandate back then. # Zone NAME STDOFF RULES FORMAT [UNTIL] # Beijing time, used throughout China; represented by Shanghai. #STDOFF 8:05:43.2 Zone Asia/Shanghai 8:05:43 - LMT 1901 8:00 Shang C%sT 1949 May 28 8:00 PRC C%sT # Xinjiang time, used by many in western China; represented by Ürümqi / Ürümchi # / Wulumuqi. (Please use Asia/Shanghai if you prefer Beijing time.) Zone Asia/Urumqi 5:50:20 - LMT 1928 6:00 - +06 Link Asia/Urumqi Antarctica/Vostok # Hong Kong # Milne gives 7:36:41.7. # From Lee Yiu Chung (2009-10-24): # I found there are some mistakes for the...DST rule for Hong # Kong. [According] to the DST record from Hong Kong Observatory (actually, # it is not [an] observatory, but the official meteorological agency of HK, # and also serves as the official timing agency), there are some missing # and incorrect rules. Although the exact switch over time is missing, I # think 3:30 is correct. # From Phake Nick (2018-10-27): # According to Singaporean newspaper # http://eresources.nlb.gov.sg/newspapers/Digitised/Article/singfreepresswk19041102-1.2.37 # the day that Hong Kong start using GMT+8 should be Oct 30, 1904. # # From Paul Eggert (2018-11-17): # Hong Kong had a time ball near the Marine Police Station, Tsim Sha Tsui. # "The ball was raised manually each day and dropped at exactly 1pm # (except on Sundays and Government holidays)." # Dyson AD. From Time Ball to Atomic Clock. Hong Kong Government. 1983. # # "From 1904 October 30 the time-ball at Hong Kong has been dropped by order # of the Governor of the Colony at 17h 0m 0s G.M.T., which is 23m 18s.14 in # advance of 1h 0m 0s of Hong Kong mean time." # Hollis HP. Universal Time, Longitudes, and Geodesy. Mon Not R Astron Soc. # 1905-02-10;65(4):405-6. https://doi.org/10.1093/mnras/65.4.382 # # From Joseph Myers (2018-11-18): # An astronomer before 1925 referring to GMT would have been using the old # astronomical convention where the day started at noon, not midnight. # # From Steve Allen (2018-11-17): # Meteorological Observations made at the Hongkong Observatory in the year 1904 # page 4 # ... the log of drop times in Table II shows that on Sunday 1904-10-30 the # ball was dropped. So that looks like a special case drop for the sake # of broadcasting the new local time. # # From Phake Nick (2018-11-18): # According to The Hong Kong Weekly Press, 1904-10-29, p.324, the # governor of Hong Kong at the time stated that "We are further desired to # make it known that the change will be effected by firing the gun and by the # dropping of the Ball at 23min. 18sec. before one." # From Paul Eggert (2018-11-18): # See for this; unfortunately Flash is required. # From Phake Nick (2018-10-26): # I went to check microfilm records stored at Hong Kong Public Library.... # on September 30 1941, according to Ta Kung Pao (Hong Kong edition), it was # stated that fallback would occur on the next day (the 1st)'s "03:00 am (Hong # Kong Time 04:00 am)" and the clock will fall back for a half hour. (03:00 # probably refer to the time commonly used in mainland China at the time given # the paper's background) ... the sunrise/sunset time given by South China # Morning Post for October 1st was indeed moved by half an hour compares to # before. After that, in December, the battle to capture Hong Kong started and # the library doesn't seems to have any record stored about press during that # period of time. Some media resumed publication soon after that within the # same month, but there were not much information about time there. Later they # started including a radio program guide when they restored radio service, # explicitly mentioning it use Tokyo standard time, and later added a note # saying it's half an hour ahead of the old Hong Kong standard time, and it # also seems to indicate that Hong Kong was not using GMT+8 when it was # captured by Japan. # # Image of related sections on newspaper: # * 1941-09-30, Ta Kung Pao (Hong Kong), "Winter Time start tomorrow". # https://i.imgur.com/6waY51Z.jpg (Chinese) # * 1941-09-29, South China Morning Post, Information on sunrise/sunset # time and other things for September 30 and October 1. # https://i.imgur.com/kCiUR78.jpg # * 1942-02-05. The Hong Kong News, Radio Program Guide. # https://i.imgur.com/eVvDMzS.jpg # * 1941-06-14. Hong Kong Daily Press, Daylight Saving from 3am Tomorrow. # https://i.imgur.com/05KkvtC.png # * 1941-09-30, Hong Kong Daily Press, Winter Time Warning. # https://i.imgur.com/dge4kFJ.png # From Paul Eggert (2019-07-11): # "Hong Kong winter time" is considered to be daylight saving. # "Hong Kong had adopted daylight saving on June 15 as a wartime measure, # clocks moving forward one hour until October 1, when they would be put back # by just half an hour for 'Hong Kong Winter time', so that daylight saving # operated year round." -- Low Z. The longest day: when wartime Hong Kong # introduced daylight saving. South China Morning Post. 2019-06-28. # https://www.scmp.com/magazines/post-magazine/short-reads/article/3016281/longest-day-when-wartime-hong-kong-introduced # From P Chan (2018-12-31): # * According to the Hong Kong Daylight-Saving Regulations, 1941, the # 1941 spring-forward transition was at 03:00. # http://sunzi.lib.hku.hk/hkgro/view/g1941/304271.pdf # http://sunzi.lib.hku.hk/hkgro/view/g1941/305516.pdf # * According to some articles from South China Morning Post, +08 was # resumed on 1945-11-18 at 02:00. # https://i.imgur.com/M2IsZ3c.png # https://i.imgur.com/iOPqrVo.png # https://i.imgur.com/fffcGDs.png # * Some newspapers ... said the 1946 spring-forward transition was on # 04-21 at 00:00. The Kung Sheung Evening News 1946-04-20 (Chinese) # https://i.imgur.com/ZSzent0.png # https://mmis.hkpl.gov.hk///c/portal/cover?c=QF757YsWv5%2FH7zGe%2FKF%2BFLYsuqGhRBfe p.4 # The Kung Sheung Daily News 1946-04-21 (Chinese) # https://i.imgur.com/7ecmRlcm.png # https://mmis.hkpl.gov.hk///c/portal/cover?c=QF757YsWv5%2BQBGt1%2BwUj5qG2GqtwR3Wh p.4 # * According to the Summer Time Ordinance (1946), the fallback # transitions between 1946 and 1952 were at 03:30 Standard Time (+08) # http://oelawhk.lib.hku.hk/archive/files/bb74b06a74d5294620a15de560ab33c6.pdf # * Some other laws and regulations related to DST from 1953 to 1979 # Summer Time Ordinance 1953 # https://i.imgur.com/IOlJMav.jpg # Summer Time (Amendment) Ordinance 1965 # https://i.imgur.com/8rofeLa.jpg # Interpretation and General Clauses Ordinance (1966) # https://i.imgur.com/joy3msj.jpg # Emergency (Summer Time) Regulation 1973 # Interpretation and General Clauses (Amendment) Ordinance 1977 # https://i.imgur.com/RaNqnc4.jpg # Resolution of the Legislative Council passed on 9 May 1979 # https://www.legco.gov.hk/yr78-79/english/lc_sitg/hansard/h790509.pdf#page=39 # From Paul Eggert (2020-04-15): # Here are the dates given at # https://www.hko.gov.hk/en/gts/time/Summertime.htm # as of 2020-02-10: # Year Period # 1941 15 Jun to 30 Sep # 1942 Whole year # 1943 Whole year # 1944 Whole year # 1945 Whole year # 1946 20 Apr to 1 Dec # 1947 13 Apr to 30 Nov # 1948 2 May to 31 Oct # 1949 3 Apr to 30 Oct # 1950 2 Apr to 29 Oct # 1951 1 Apr to 28 Oct # 1952 6 Apr to 2 Nov # 1953 5 Apr to 1 Nov # 1954 21 Mar to 31 Oct # 1955 20 Mar to 6 Nov # 1956 18 Mar to 4 Nov # 1957 24 Mar to 3 Nov # 1958 23 Mar to 2 Nov # 1959 22 Mar to 1 Nov # 1960 20 Mar to 6 Nov # 1961 19 Mar to 5 Nov # 1962 18 Mar to 4 Nov # 1963 24 Mar to 3 Nov # 1964 22 Mar to 1 Nov # 1965 18 Apr to 17 Oct # 1966 17 Apr to 16 Oct # 1967 16 Apr to 22 Oct # 1968 21 Apr to 20 Oct # 1969 20 Apr to 19 Oct # 1970 19 Apr to 18 Oct # 1971 18 Apr to 17 Oct # 1972 16 Apr to 22 Oct # 1973 22 Apr to 21 Oct # 1973/74 30 Dec 73 to 20 Oct 74 # 1975 20 Apr to 19 Oct # 1976 18 Apr to 17 Oct # 1977 Nil # 1978 Nil # 1979 13 May to 21 Oct # 1980 to Now Nil # The page does not give times of day for transitions, # or dates for the 1942 and 1945 transitions. # The Japanese occupation of Hong Kong began 1941-12-25. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule HK 1946 only - Apr 21 0:00 1:00 S Rule HK 1946 only - Dec 1 3:30s 0 - Rule HK 1947 only - Apr 13 3:30s 1:00 S Rule HK 1947 only - Nov 30 3:30s 0 - Rule HK 1948 only - May 2 3:30s 1:00 S Rule HK 1948 1952 - Oct Sun>=28 3:30s 0 - Rule HK 1949 1953 - Apr Sun>=1 3:30 1:00 S Rule HK 1953 1964 - Oct Sun>=31 3:30 0 - Rule HK 1954 1964 - Mar Sun>=18 3:30 1:00 S Rule HK 1965 1976 - Apr Sun>=16 3:30 1:00 S Rule HK 1965 1976 - Oct Sun>=16 3:30 0 - Rule HK 1973 only - Dec 30 3:30 1:00 S Rule HK 1979 only - May 13 3:30 1:00 S Rule HK 1979 only - Oct 21 3:30 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] #STDOFF 7:36:41.7 Zone Asia/Hong_Kong 7:36:42 - LMT 1904 Oct 29 17:00u 8:00 - HKT 1941 Jun 15 3:00 8:00 1:00 HKST 1941 Oct 1 4:00 8:00 0:30 HKWT 1941 Dec 25 9:00 - JST 1945 Nov 18 2:00 8:00 HK HK%sT ############################################################################### # Taiwan # From smallufo (2010-04-03): # According to Taiwan's CWB [Central Weather Bureau], # http://www.cwb.gov.tw/V6/astronomy/cdata/summert.htm # Taipei has DST in 1979 between July 1st and Sep 30. # From Yu-Cheng Chuang (2013-07-12): # On Dec 28, 1895, the Meiji Emperor announced Ordinance No. 167 of # Meiji Year 28 "The clause about standard time", mentioned that # Taiwan and Penghu Islands, as well as Yaeyama and Miyako Islands # (both in Okinawa) adopt the Western Standard Time which is based on # 120E. The adoption began from Jan 1, 1896. The original text can be # found on Wikisource: # https://ja.wikisource.org/wiki/標準時ニ關スル件_(公布時) # ... This could be the first adoption of time zone in Taiwan, because # during the Qing Dynasty, it seems that there was no time zone # declared officially. # # Later, in the beginning of World War II, on Sep 25, 1937, the Showa # Emperor announced Ordinance No. 529 of Showa Year 12 "The clause of # revision in the ordinance No. 167 of Meiji year 28 about standard # time", in which abolished the adoption of Western Standard Time in # western islands (listed above), which means the whole Japan # territory, including later occupations, adopt Japan Central Time # (UT+9). The adoption began on Oct 1, 1937. The original text can # be found on Wikisource: # https://ja.wikisource.org/wiki/明治二十八年勅令第百六十七號標準時ニ關スル件中改正ノ件 # # That is, the time zone of Taipei switched to UT+9 on Oct 1, 1937. # From Yu-Cheng Chuang (2014-07-02): # I've found more evidence about when the time zone was switched from UT+9 # back to UT+8 after WW2. I believe it was on Sep 21, 1945. In a document # during Japanese era [1] in which the officer told the staff to change time # zone back to Western Standard Time (UT+8) on Sep 21. And in another # history page of National Cheng Kung University [2], on Sep 21 there is a # note "from today, switch back to Western Standard Time". From these two # materials, I believe that the time zone change happened on Sep 21. And # today I have found another monthly journal called "The Astronomical Herald" # from The Astronomical Society of Japan [3] in which it mentioned the fact # that: # # 1. Standard Time of the Country (Japan) was adopted on Jan 1, 1888, using # the time at 135E (GMT+9) # # 2. Standard Time of the Country was renamed to Central Standard Time, on Jan # 1, 1898, and on the same day, the new territories Taiwan and Penghu islands, # as well as Yaeyama and Miyako islands, adopted a new time zone called # Western Standard Time, which is in GMT+8. # # 3. Western Standard Time was deprecated on Sep 30, 1937. From then all the # territories of Japan adopted the same time zone, which is Central Standard # Time. # # [1] Academica Historica, Taiwan: # http://163.29.208.22:8080/govsaleShowImage/connect_img.php?s=00101738900090036&e=00101738900090037 # [2] Nat'l Cheng Kung University 70th Anniversary Special Site: # http://www.ncku.edu.tw/~ncku70/menu/001/01_01.htm # [3] Yukio Niimi, The Standard Time in Japan (1997), p.475: # http://www.asj.or.jp/geppou/archive_open/1997/pdf/19971001c.pdf # Yu-Cheng Chuang (2014-07-03): # I finally have found the real official gazette about changing back to # Western Standard Time on Sep 21 in Taiwan. It's Taiwan Governor-General # Bulletin No. 386 in Showa 20 years (1945), published on Sep 19, 1945. [1] ... # [It] abolishes Bulletin No. 207 in Showa 12 years (1937), which is a local # bulletin in Taiwan for that Ordinance No. 529. It also mentioned that 1am on # Sep 21, 1945 will be 12am on Sep 21. I think this bulletin is much more # official than the one I mentioned in my first mail, because it's from the # top-level government in Taiwan. If you're going to quote any resource, this # would be a good one. # [1] Taiwan Governor-General Gazette, No. 1018, Sep 19, 1945: # http://db2.th.gov.tw/db2/view/viewImg.php?imgcode=0072031018a&num=19&bgn=019&end=019&otherImg=&type=gener # From Yu-Cheng Chuang (2014-07-02): # In 1946, DST in Taiwan was from May 15 and ended on Sep 30. The info from # Central Weather Bureau website was not correct. # # Original Bulletin: # http://subtpg.tpg.gov.tw/og/image2.asp?f=03502F0AKM1AF # http://subtpg.tpg.gov.tw/og/image2.asp?f=0350300AKM1B0 (cont.) # # In 1947, DST in Taiwan was expanded to Oct 31. There is a backup of that # telegram announcement from Taiwan Province Government: # # http://subtpg.tpg.gov.tw/og/image2.asp?f=0360310AKZ431 # # Here is a brief translation: # # The Summer Time this year is adopted from midnight Apr 15 until Sep 20 # midnight. To save (energy?) consumption, we're expanding Summer Time # adoption till Oct 31 midnight. # # The Central Weather Bureau website didn't mention that, however it can # be found from historical government announcement database. # From Paul Eggert (2014-07-03): # As per Yu-Cheng Chuang, say that Taiwan was at UT +09 from 1937-10-01 # until 1945-09-21 at 01:00, overriding Shanks & Pottenger. # Likewise, use Yu-Cheng Chuang's data for DST in Taiwan. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Taiwan 1946 only - May 15 0:00 1:00 D Rule Taiwan 1946 only - Oct 1 0:00 0 S Rule Taiwan 1947 only - Apr 15 0:00 1:00 D Rule Taiwan 1947 only - Nov 1 0:00 0 S Rule Taiwan 1948 1951 - May 1 0:00 1:00 D Rule Taiwan 1948 1951 - Oct 1 0:00 0 S Rule Taiwan 1952 only - Mar 1 0:00 1:00 D Rule Taiwan 1952 1954 - Nov 1 0:00 0 S Rule Taiwan 1953 1959 - Apr 1 0:00 1:00 D Rule Taiwan 1955 1961 - Oct 1 0:00 0 S Rule Taiwan 1960 1961 - Jun 1 0:00 1:00 D Rule Taiwan 1974 1975 - Apr 1 0:00 1:00 D Rule Taiwan 1974 1975 - Oct 1 0:00 0 S Rule Taiwan 1979 only - Jul 1 0:00 1:00 D Rule Taiwan 1979 only - Oct 1 0:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] # Taipei or Taibei or T'ai-pei Zone Asia/Taipei 8:06:00 - LMT 1896 Jan 1 8:00 - CST 1937 Oct 1 9:00 - JST 1945 Sep 21 1:00 8:00 Taiwan C%sT # Macau (Macao, Aomen) # # From P Chan (2018-05-10): # * LegisMac # http://legismac.safp.gov.mo/legismac/descqry/Descqry.jsf?lang=pt # A database for searching titles of legal documents of Macau in # Chinese and Portuguese. The term "HORÁRIO DE VERÃO" can be used for # searching decrees about summer time. # * Archives of Macao # http://www.archives.gov.mo/en/bo/ # It contains images of old official gazettes. # * The Macao Meteorological and Geophysical Bureau have a page listing the # summer time history. But it is not complete and has some mistakes. # http://www.smg.gov.mo/smg/geophysics/e_t_Summer%20Time.htm # Macau adopted GMT+8 on 30 Oct 1904 to follow Hong Kong. Clocks were # advanced by 25 minutes and 50 seconds. Which means the LMT used was # +7:34:10. As stated in the "Portaria No. 204" dated 21 October 1904 # and published in the Official Gazette on 29 October 1904. # http://igallery.icm.gov.mo/Images/Archives/BO/MO_AH_PUB_BO_1904_10/MO_AH_PUB_BO_1904_10_00025_Grey.JPG # # Therefore the 1911 decree of Portugal did not change time in Macau. # # From LegisMac, here is a list of decrees that changed the time ... # [Decree Gazette-no. date; titles omitted in this quotation] # DIL 732 BOCM 51 1941.12.20 # DIL 764 BOCM 9S 1942.04.30 # DIL 781 BOCM 21 1942.10.10 # PT 3434 BOCM 8S 1943.04.17 # PT 3504 BOCM 20 1943.09.25 # PT 3843 BOCM 39 1945.09.29 # PT 3961 BOCM 17 1946.04.27 # PT 4026 BOCM 39 1946.09.28 # PT 4153 BOCM 16 1947.04.10 # PT 4271 BOCM 48 1947.11.29 # PT 4374 BOCM 18 1948.05.01 # PT 4465 BOCM 44 1948.10.30 # PT 4590 BOCM 14 1949.04.02 # PT 4666 BOCM 44 1949.10.29 # PT 4771 BOCM 12 1950.03.25 # PT 4838 BOCM 43 1950.10.28 # PT 4946 BOCM 12 1951.03.24 # PT 5025 BO 43 1951.10.27 # PT 5149 BO 14 1952.04.05 # PT 5251 BO 43 1952.10.25 # PT 5366 BO 13 1953.03.28 # PT 5444 BO 44 1953.10.31 # PT 5540 BO 12 1954.03.20 # PT 5589 BO 44 1954.10.30 # PT 5676 BO 12 1955.03.19 # PT 5739 BO 45 1955.11.05 # PT 5823 BO 11 1956.03.17 # PT 5891 BO 44 1956.11.03 # PT 5981 BO 12 1957.03.23 # PT 6064 BO 43 1957.10.26 # PT 6172 BO 12 1958.03.22 # PT 6243 BO 43 1958.10.25 # PT 6341 BO 12 1959.03.21 # PT 6411 BO 43 1959.10.24 # PT 6514 BO 11 1960.03.12 # PT 6584 BO 44 1960.10.29 # PT 6721 BO 10 1961.03.11 # PT 6815 BO 43 1961.10.28 # PT 6947 BO 10 1962.03.10 # PT 7080 BO 43 1962.10.27 # PT 7218 BO 12 1963.03.23 # PT 7340 BO 43 1963.10.26 # PT 7491 BO 11 1964.03.14 # PT 7664 BO 43 1964.10.24 # PT 7846 BO 15 1965.04.10 # PT 7979 BO 42 1965.10.16 # PT 8146 BO 15 1966.04.09 # PT 8252 BO 41 1966.10.08 # PT 8429 BO 15 1967.04.15 # PT 8540 BO 41 1967.10.14 # PT 8735 BO 15 1968.04.13 # PT 8860 BO 41 1968.10.12 # PT 9035 BO 16 1969.04.19 # PT 9156 BO 42 1969.10.18 # PT 9328 BO 15 1970.04.11 # PT 9418 BO 41 1970.10.10 # PT 9587 BO 14 1971.04.03 # PT 9702 BO 41 1971.10.09 # PT 38-A/72 BO 14 1972.04.01 # PT 126-A/72 BO 41 1972.10.07 # PT 61/73 BO 14 1973.04.07 # PT 182/73 BO 40 1973.10.06 # PT 282/73 BO 51 1973.12.22 # PT 177/74 BO 41 1974.10.12 # PT 51/75 BO 15 1975.04.12 # PT 173/75 BO 41 1975.10.11 # PT 67/76/M BO 14 1976.04.03 # PT 169/76/M BO 41 1976.10.09 # PT 78/79/M BO 19 1979.05.12 # PT 166/79/M BO 42 1979.10.20 # Note that DIL 732 does not belong to "HORÁRIO DE VERÃO" according to # LegisMac.... Note that between 1942 and 1945, the time switched # between GMT+9 and GMT+10. Also in 1965 and 1965 the DST ended at 2:30am. # From Paul Eggert (2018-05-10): # The 1904 decree says that Macau changed from the meridian of # Fortaleza do Monte, presumably the basis for the 7:34:10 for LMT. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Macau 1942 1943 - Apr 30 23:00 1:00 - Rule Macau 1942 only - Nov 17 23:00 0 - Rule Macau 1943 only - Sep 30 23:00 0 S Rule Macau 1946 only - Apr 30 23:00s 1:00 D Rule Macau 1946 only - Sep 30 23:00s 0 S Rule Macau 1947 only - Apr 19 23:00s 1:00 D Rule Macau 1947 only - Nov 30 23:00s 0 S Rule Macau 1948 only - May 2 23:00s 1:00 D Rule Macau 1948 only - Oct 31 23:00s 0 S Rule Macau 1949 1950 - Apr Sat>=1 23:00s 1:00 D Rule Macau 1949 1950 - Oct lastSat 23:00s 0 S Rule Macau 1951 only - Mar 31 23:00s 1:00 D Rule Macau 1951 only - Oct 28 23:00s 0 S Rule Macau 1952 1953 - Apr Sat>=1 23:00s 1:00 D Rule Macau 1952 only - Nov 1 23:00s 0 S Rule Macau 1953 1954 - Oct lastSat 23:00s 0 S Rule Macau 1954 1956 - Mar Sat>=17 23:00s 1:00 D Rule Macau 1955 only - Nov 5 23:00s 0 S Rule Macau 1956 1964 - Nov Sun>=1 03:30 0 S Rule Macau 1957 1964 - Mar Sun>=18 03:30 1:00 D Rule Macau 1965 1973 - Apr Sun>=16 03:30 1:00 D Rule Macau 1965 1966 - Oct Sun>=16 02:30 0 S Rule Macau 1967 1976 - Oct Sun>=16 03:30 0 S Rule Macau 1973 only - Dec 30 03:30 1:00 D Rule Macau 1975 1976 - Apr Sun>=16 03:30 1:00 D Rule Macau 1979 only - May 13 03:30 1:00 D Rule Macau 1979 only - Oct Sun>=16 03:30 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Macau 7:34:10 - LMT 1904 Oct 30 8:00 - CST 1941 Dec 21 23:00 9:00 Macau +09/+10 1945 Sep 30 24:00 8:00 Macau C%sT ############################################################################### # Cyprus # Milne says the Eastern Telegraph Company used 2:14:00. Stick with LMT. # IATA SSIM (1998-09) has Cyprus using EU rules for the first time. # From Paul Eggert (2016-09-09): # Yesterday's Cyprus Mail reports that Northern Cyprus followed Turkey's # lead and switched from +02/+03 to +03 year-round. # http://cyprus-mail.com/2016/09/08/two-time-zones-cyprus-turkey-will-not-turn-clocks-back-next-month/ # # From Even Scharning (2016-10-31): # Looks like the time zone split in Cyprus went through last night. # http://cyprus-mail.com/2016/10/30/cyprus-new-division-two-time-zones-now-reality/ # From Paul Eggert (2017-10-18): # Northern Cyprus will reinstate winter time on October 29, thus # staying in sync with the rest of Cyprus. See: Anastasiou A. # Cyprus to remain united in time. Cyprus Mail 2017-10-17. # https://cyprus-mail.com/2017/10/17/cyprus-remain-united-time/ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Cyprus 1975 only - Apr 13 0:00 1:00 S Rule Cyprus 1975 only - Oct 12 0:00 0 - Rule Cyprus 1976 only - May 15 0:00 1:00 S Rule Cyprus 1976 only - Oct 11 0:00 0 - Rule Cyprus 1977 1980 - Apr Sun>=1 0:00 1:00 S Rule Cyprus 1977 only - Sep 25 0:00 0 - Rule Cyprus 1978 only - Oct 2 0:00 0 - Rule Cyprus 1979 1997 - Sep lastSun 0:00 0 - Rule Cyprus 1981 1998 - Mar lastSun 0:00 1:00 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Nicosia 2:13:28 - LMT 1921 Nov 14 2:00 Cyprus EE%sT 1998 Sep 2:00 EUAsia EE%sT Zone Asia/Famagusta 2:15:48 - LMT 1921 Nov 14 2:00 Cyprus EE%sT 1998 Sep 2:00 EUAsia EE%sT 2016 Sep 8 3:00 - +03 2017 Oct 29 1:00u 2:00 EUAsia EE%sT # Classically, Cyprus belongs to Asia; e.g. see Herodotus, Histories, I.72. # However, for various reasons many users expect to find it under Europe. Link Asia/Nicosia Europe/Nicosia # Georgia # From Paul Eggert (1994-11-19): # Today's _Economist_ (p 60) reports that Georgia moved its clocks forward # an hour recently, due to a law proposed by Zurab Murvanidze, # an MP who went on a hunger strike for 11 days to force discussion about it! # We have no details, but we'll guess they didn't move the clocks back in fall. # # From Mathew Englander, quoting AP (1996-10-23 13:05-04): # Instead of putting back clocks at the end of October, Georgia # will stay on daylight savings time this winter to save energy, # President Eduard Shevardnadze decreed Wednesday. # # From the BBC via Joseph S. Myers (2004-06-27): # # Georgia moved closer to Western Europe on Sunday... The former Soviet # republic has changed its time zone back to that of Moscow. As a result it # is now just four hours ahead of Greenwich Mean Time, rather than five hours # ahead. The switch was decreed by the pro-Western president of Georgia, # Mikheil Saakashvili, who said the change was partly prompted by the process # of integration into Europe. # From Teimuraz Abashidze (2005-11-07): # Government of Georgia ... decided to NOT CHANGE daylight savings time on # [Oct.] 30, as it was done before during last more than 10 years. # Currently, we are in fact GMT +4:00, as before 30 October it was GMT # +3:00.... The problem is, there is NO FORMAL LAW or governmental document # about it. As far as I can find, I was told, that there is no document, # because we just DIDN'T ISSUE document about switching to winter time.... # I don't know what can be done, especially knowing that some years ago our # DST rules where changed THREE TIMES during one month. # Milne 1899 says Tbilisi (Tiflis) time was 2:59:05.7. # Byalokoz 1919 says Georgia was 2:59:11. # Go with Byalokoz. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Tbilisi 2:59:11 - LMT 1880 2:59:11 - TBMT 1924 May 2 # Tbilisi Mean Time 3:00 - +03 1957 Mar 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s 3:00 RussiaAsia +03/+04 1992 3:00 E-EurAsia +03/+04 1994 Sep lastSun 4:00 E-EurAsia +04/+05 1996 Oct lastSun 4:00 1:00 +05 1997 Mar lastSun 4:00 E-EurAsia +04/+05 2004 Jun 27 3:00 RussiaAsia +03/+04 2005 Mar lastSun 2:00 4:00 - +04 # East Timor # See Indonesia for the 1945 transition. # From João Carrascalão, brother of the former governor of East Timor, in # East Timor may be late for its millennium # (1999-12-26/31): # Portugal tried to change the time forward in 1974 because the sun # rises too early but the suggestion raised a lot of problems with the # Timorese and I still don't think it would work today because it # conflicts with their way of life. # From Paul Eggert (2000-12-04): # We don't have any record of the above attempt. # Most likely our records are incomplete, but we have no better data. # From Manoel de Almeida e Silva, Deputy Spokesman for the UN Secretary-General # http://www.hri.org/news/world/undh/2000/00-08-16.undh.html # (2000-08-16): # The Cabinet of the East Timor Transition Administration decided # today to advance East Timor's time by one hour. The time change, # which will be permanent, with no seasonal adjustment, will happen at # midnight on Saturday, September 16. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Dili 8:22:20 - LMT 1912 Jan 1 8:00 - +08 1942 Feb 21 23:00 9:00 - +09 1976 May 3 8:00 - +08 2000 Sep 17 0:00 9:00 - +09 # India # British astronomer Henry Park Hollis disliked India Standard Time's offset: # "A new time system has been proposed for India, Further India, and Burmah. # The scheme suggested is that the times of the meridians 5½ and 6½ hours # east of Greenwich should be adopted in these territories. No reason is # given why hourly meridians five hours and six hours east should not be # chosen; a plan which would bring the time of India into harmony with # that of almost the whole of the civilised world." # Hollis HP. Universal Time, Longitudes, and Geodesy. Mon Not R Astron Soc. # 1905-02-10;65(4):405-6. https://doi.org/10.1093/mnras/65.4.382 # From Ian P. Beacock, in "A brief history of (modern) time", The Atlantic # https://www.theatlantic.com/technology/archive/2015/12/the-creation-of-modern-time/421419/ # (2015-12-22): # In January 1906, several thousand cotton-mill workers rioted on the # outskirts of Bombay.... They were protesting the proposed abolition of # local time in favor of Indian Standard Time.... Journalists called this # dispute the "Battle of the Clocks." It lasted nearly half a century. # From Paul Eggert (2017-04-20): # Good luck trying to nail down old timekeeping records in India. # "... in the nineteenth century ... Madras Observatory took its magnetic # measurements on Göttingen time, its meteorological measurements on Madras # (local) time, dropped its time ball on Greenwich (ocean navigator's) time, # and distributed civil (local time)." -- Bartky IR. Selling the true time: # 19th-century timekeeping in america. Stanford U Press (2000), 247 note 19. # "A more potent cause of resistance to the general adoption of the present # standard time lies in the fact that it is Madras time. The citizen of # Bombay, proud of being 'primus in Indis' and of Calcutta, equally proud of # his city being the Capital of India, and - for a part of the year - the Seat # of the Supreme Government, alike look down on Madras, and refuse to change # the time they are using, for that of what they regard as a benighted # Presidency; while Madras, having for long given the standard time to the # rest of India, would resist the adoption of any other Indian standard in its # place." -- Oldham RD. On Time in India: a suggestion for its improvement. # Proceedings of the Asiatic Society of Bengal (April 1899), 49-55. # # "In 1870 ... Madras time - 'now used by the telegraph and regulated from the # only government observatory' - was suggested as a standard railway time, # first to be adopted on the Great Indian Peninsular Railway (GIPR).... # Calcutta, Bombay, and Karachi, were to be allowed to continue with their # local time for civil purposes." - Prasad R. Tracks of Change: Railways and # Everyday Life in Colonial India. Cambridge University Press (2016), 145. # # Reed S, Low F. The Indian Year Book 1936-37. Bennett, Coleman, pp 27-8. # https://archive.org/details/in.ernet.dli.2015.282212 # This lists +052110 as Madras local time used in railways, and says that on # 1906-01-01 railways and telegraphs in India switched to +0530. Some # municipalities retained their former time, and the time in Calcutta # continued to depend on whether you were at the railway station or at # government offices. Government time was at +055320 (according to Shanks) or # at +0554 (according to the Indian Year Book). Railway time is more # appropriate for our purposes, as it was better documented, it is what we do # elsewhere (e.g., Europe/London before 1880), and after 1906 it was # consistent in the region now identified by Asia/Kolkata. So, use railway # time for 1870-1941. Shanks is our only (and dubious) source for the # 1941-1945 data. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Kolkata 5:53:28 - LMT 1854 Jun 28 # Kolkata 5:53:20 - HMT 1870 # Howrah Mean Time? 5:21:10 - MMT 1906 Jan 1 # Madras local time 5:30 - IST 1941 Oct 5:30 1:00 +0630 1942 May 15 5:30 - IST 1942 Sep 5:30 1:00 +0630 1945 Oct 15 5:30 - IST # Since 1970 the following are like Asia/Kolkata: # Andaman Is # Lakshadweep (Laccadive, Minicoy and Amindivi Is) # Nicobar Is # Indonesia # # From Paul Eggert (2014-09-06): # The 1876 Report of the Secretary of the [US] Navy, p 306 says that Batavia # civil time was 7:07:12.5. # # From Gwillim Law (2001-05-28), overriding Shanks & Pottenger: # http://www.sumatera-inc.com/go_to_invest/about_indonesia.asp#standtime # says that Indonesia's time zones changed on 1988-01-01. Looking at some # time zone maps, I think that must refer to Western Borneo (Kalimantan Barat # and Kalimantan Tengah) switching from UTC+8 to UTC+7. # # From Paul Eggert (2007-03-10): # Here is another correction to Shanks & Pottenger. # JohnTWB writes that Japanese forces did not surrender control in # Indonesia until 1945-09-01 00:00 at the earliest (in Jakarta) and # other formal surrender ceremonies were September 9, 11, and 13, plus # September 12 for the regional surrender to Mountbatten in Singapore. # These would be the earliest possible times for a change. # Régimes horaires pour le monde entier, by Henri Le Corre, (Éditions # Traditionnelles, 1987, Paris) says that Java and Madura switched # from UT +09 to +07:30 on 1945-09-23, and gives 1944-09-01 for Jayapura # (Hollandia). For now, assume all Indonesian locations other than Jayapura # switched on 1945-09-23. # # From Paul Eggert (2013-08-11): # Normally the tz database uses English-language abbreviations, but in # Indonesia it's typical to use Indonesian-language abbreviations even # when writing in English. For example, see the English-language # summary published by the Time and Frequency Laboratory of the # Research Center for Calibration, Instrumentation and Metrology, # Indonesia, (2006-09-29). # The time zone abbreviations and UT offsets are: # # WIB - +07 - Waktu Indonesia Barat (Indonesia western time) # WITA - +08 - Waktu Indonesia Tengah (Indonesia central time) # WIT - +09 - Waktu Indonesia Timur (Indonesia eastern time) # # Zone NAME STDOFF RULES FORMAT [UNTIL] # Java, Sumatra #STDOFF 7:07:12.5 Zone Asia/Jakarta 7:07:12 - LMT 1867 Aug 10 # Shanks & Pottenger say the next transition was at 1924 Jan 1 0:13, # but this must be a typo. 7:07:12 - BMT 1923 Dec 31 16:40u # Batavia 7:20 - +0720 1932 Nov 7:30 - +0730 1942 Mar 23 9:00 - +09 1945 Sep 23 7:30 - +0730 1948 May 8:00 - +08 1950 May 7:30 - +0730 1964 7:00 - WIB # west and central Borneo Zone Asia/Pontianak 7:17:20 - LMT 1908 May 7:17:20 - PMT 1932 Nov # Pontianak MT 7:30 - +0730 1942 Jan 29 9:00 - +09 1945 Sep 23 7:30 - +0730 1948 May 8:00 - +08 1950 May 7:30 - +0730 1964 8:00 - WITA 1988 Jan 1 7:00 - WIB # Sulawesi, Lesser Sundas, east and south Borneo Zone Asia/Makassar 7:57:36 - LMT 1920 7:57:36 - MMT 1932 Nov # Macassar MT 8:00 - +08 1942 Feb 9 9:00 - +09 1945 Sep 23 8:00 - WITA # Maluku Islands, West Papua, Papua Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov 9:00 - +09 1944 Sep 1 9:30 - +0930 1964 9:00 - WIT # Iran # From Roozbeh Pournader (2022-05-30): # Here's an order from the Cabinet to the rest of the government to switch to # Tehran time, which is mentioned to be already at +03:30: # https://qavanin.ir/Law/TreeText/180138 # Just in case that goes away, I also saved a copy at archive.org: # https://web.archive.org/web/20220530111940/https://qavanin.ir/Law/TreeText/180138 # Here's my translation: # # "Circular on Matching the Hours of Governmental and Official Circles # in Provinces # Approved 1314/03/22 [=1935-06-13] # According to the ruling of the Honorable Cabinet, it is ordered that from # now on in all internal provinces of the country, governmental and official # circles set their time to match Tehran time (three hours and half before # Greenwich).... # # I still haven't found out when Tehran itself switched to +03:30.... # # From Paul Eggert (2022-06-05): # Although the above says Tehran was at +03:30 before 1935-06-13, we don't # know when it switched to +03:30. For now, use 1935-06-13 as the switch date. # Although most likely wrong, we have no better info. # From Roozbeh Pournader (2022-06-01): # This is from Kayhan newspaper, one of the major Iranian newspapers, from # March 20, 1978, page 2: # # "Pull the clocks 60 minutes forward # As we informed before, from the fourth day of the month Farvardin of the # new year [=1978-03-24], clocks will be pulled forward, and people's daily # work and life program will start one hour earlier than the current program. # On the 1st day of the month Farvardin of this year [=1977-03-21], they had # pulled the clocks forward by one hour, but in the month of Mehr # [=1977-09-23], the clocks were pulled back by 30 minutes. # In this way, from the 4th day of the month Farvardin, clocks will be ahead # of the previous years by one hour and a half. # According to the new program, during the night of 4th of Farvardin, when # the midnight, meaning 24 o'clock is announced, the hands of the clock must # be pulled forward by one hour and thus consider midnight 1 o'clock in the # forenoon." # # This implies that in September 1977, when the daylight savings time was # done with, Iran didn't go back to +03:30, but immediately to +04:00. # # # This is from the major Iranian newspaper Ettela'at, dated [1978-08-03]..., # page 32. It looks like they decided to get the clocks back to +4:00 # just in time for Ramadan that year: # # "Tomorrow Night, Pull the Clocks Back by One Hour # At 1 o'clock in the forenoon of Saturday 14 Mordad [=1978-08-05], the # clocks will be pulled one hour back and instead of 1 o'clock in the # forenoon, Radio Iran will announce 24 o'clock. # This decision was made in the Cabinet of Ministers meeting of 25 Tir # [=1978-07-16], [...] # At the beginning of the year 2537 [=March 1978: Iran was using a different # year number for a few years then, based on the Coronation of Cyrus the # Great], the country's official time was pulled forward by one hour and now # the official time is one hour and a half ahead compared to last year, # because in Farvardin of last year [=March 1977], the official time was # pulled forward one hour and this continued until the second half of last # year [=September 1977] until in the second half of last year the official # time was pulled back half an hour and that half hour still remains." # # This matches the time of the true noon published in the newspapers, as they # clearly go from +05:00 to +04:00 after that date (which happened during a # long weekend in Iran). # From Roozbeh Pournader (2022-05-31): # [Movahedi S. Cultural preconceptions of time: Can we use operational time # to meddle in God's Time? Comp Stud Soc Hist. 1985;27(3):385-400] # https://www.jstor.org/stable/178704 # Here's the quotes from the paper: # 1. '"Iran's official time keeper moved the clock one hour forward as from # March 22, 1977 (Farvardin 2, 2536) to make maximum use of daylight and save # in energy consumption. Thus Iran joined such other countries as Britain in # observing what is known as 'daylight saving.' The proposal was originally # put forward by the Ministry of Energy, in no way having any influence on # observing religious ceremonies. Moving time one hour forward in summer # means that at 11:00 o'clock on March 21, the official time was set as # midnight March 22. Then September 24 will actually begin one hour later # than the end of September 23 [...]." Iran's time base thus continued to be # Greenwich Mean Time plus three and one-half hours (plus four and one-half # hours in summer).' # # The article sources this from Iran Almanac and Book of Facts, 1977, Tehran: # Echo of Iran, which is on Google Books at # https://www.google.com/books/edition/Iran_Almanac_and_Book_of_Facts/9ybVAAAAMAAJ. # (I confirmed it by searching for snippets.) # # 2. "After the fall of the shah, the revolutionary government returned to # daylight-saving time (DST) on 26 May 1979." # # This seems to have been announced just one day in advance, on 25 May 1979. # # The change in 1977 clearly seems to be the first daylight savings effort in # Iran. But the article doesn't mention what happened in 1978 (which was # still during the shah's government), or how things continued in 1979 # onwards (which was during the Islamic Republic). # From Francis Santoni (2022-06-01): # for Iran and 1977 the effective change is only 20 October # (UIT No. 143 17.XI.1977) and not 23 September (UIT No. 141 13.IX.1977). # UIT is the Operational Bulletin of International Telecommunication Union. # From Roozbeh Pournader (2003-03-15): # This is an English translation of what I just found (originally in Persian). # The Gregorian dates in brackets are mine: # # Official Newspaper No. 13548-1370/6/25 [1991-09-16] # No. 16760/T233 H 1370/6/10 [1991-09-01] # # The Rule About Change of the Official Time of the Country # # The Board of Ministers, in the meeting dated 1370/5/23 [1991-08-14], # based on the suggestion number 2221/D dated 1370/4/22 [1991-07-13] # of the Country's Organization for Official and Employment Affairs, # and referring to the law for equating the working hours of workers # and officers in the whole country dated 1359/4/23 [1980-07-14], and # for synchronizing the official times of the country, agreed that: # # The official time of the country will should move forward one hour # at the 24[:00] hours of the first day of Farvardin and should return # to its previous state at the 24[:00] hours of the 30th day of # Shahrivar. # # First Deputy to the President - Hassan Habibi # # From personal experience, that agrees with what has been followed # for at least the last 5 years. Before that, for a few years, the # date used was the first Thursday night of Farvardin and the last # Thursday night of Shahrivar, but I can't give exact dates.... # # From Roozbeh Pournader (2005-04-05): # The text of the Iranian law, in effect since 1925, clearly mentions # that the true solar year is the measure, and there is no arithmetic # leap year calculation involved. There has never been any serious # plan to change that law.... # # From Paul Eggert (2022-06-30): # Go with Pournader for 1935 through spring 1979, and for timestamps # after August 1991; go with with Shanks & Pottenger for other timestamps. # Go with Santoni's citation of the UIT for fall 1977, as 20 October 1977 # is 28 Mehr 1356, consistent with the "Mehr" in Pournader's source. # Assume that the UIT's "1930" is UTC, i.e., 24:00 local time. # # From Oscar van Vlijmen (2005-03-30), writing about future # discrepancies between cal-persia and the Iranian calendar: # For 2091 solar-longitude-after yields 2091-03-20 08:40:07.7 UT for # the vernal equinox and that gets so close to 12:00 some local # Iranian time that the definition of the correct location needs to be # known exactly, amongst other factors. 2157 is even closer: # 2157-03-20 08:37:15.5 UT. But the Gregorian year 2025 should give # no interpretation problem whatsoever. By the way, another instant # in the near future where there will be a discrepancy between # arithmetical and astronomical Iranian calendars will be in 2058: # vernal equinox on 2058-03-20 09:03:05.9 UT. The Java version of # Reingold's/Dershowitz' calculator gives correctly the Gregorian date # 2058-03-21 for 1 Farvardin 1437 (astronomical). # # From Steffen Thorsen (2006-03-22): # Several of my users have reported that Iran will not observe DST anymore: # http://www.irna.ir/en/news/view/line-17/0603193812164948.htm # # From Reuters (2007-09-16), with a heads-up from Jesper Nørgaard Welen: # ... the Guardian Council ... approved a law on Sunday to re-introduce # daylight saving time ... # https://uk.reuters.com/article/oilRpt/idUKBLA65048420070916 # # From Roozbeh Pournader (2007-11-05): # This is quoted from Official Gazette of the Islamic Republic of # Iran, Volume 63, No. 18242, dated Tuesday 1386/6/24 # [2007-10-16]. I am doing the best translation I can:... # The official time of the country will be moved forward for one hour # on the 24 hours of the first day of the month of Farvardin and will # be changed back to its previous state on the 24 hours of the # thirtieth day of Shahrivar. # # From Ali Mirjamali (2022-05-10): # Official IR News Agency announcement: irna.ir/xjJ3TT # ... # Highlights: DST will be cancelled for the next Iranian year 1402 # (i.e 2023-March-21) and forthcoming years. # # Rule NAME FROM TO - IN ON AT SAVE LETTER/S # Work around a bug in zic 2022a and earlier. Rule Iran 1910 only - Jan 1 00:00 0 - # Rule Iran 1977 only - Mar 21 23:00 1:00 - Rule Iran 1977 only - Oct 20 24:00 0 - Rule Iran 1978 only - Mar 24 24:00 1:00 - Rule Iran 1978 only - Aug 5 01:00 0 - Rule Iran 1979 only - May 26 24:00 1:00 - Rule Iran 1979 only - Sep 18 24:00 0 - Rule Iran 1980 only - Mar 20 24:00 1:00 - Rule Iran 1980 only - Sep 22 24:00 0 - Rule Iran 1991 only - May 2 24:00 1:00 - Rule Iran 1992 1995 - Mar 21 24:00 1:00 - Rule Iran 1991 1995 - Sep 21 24:00 0 - Rule Iran 1996 only - Mar 20 24:00 1:00 - Rule Iran 1996 only - Sep 20 24:00 0 - Rule Iran 1997 1999 - Mar 21 24:00 1:00 - Rule Iran 1997 1999 - Sep 21 24:00 0 - Rule Iran 2000 only - Mar 20 24:00 1:00 - Rule Iran 2000 only - Sep 20 24:00 0 - Rule Iran 2001 2003 - Mar 21 24:00 1:00 - Rule Iran 2001 2003 - Sep 21 24:00 0 - Rule Iran 2004 only - Mar 20 24:00 1:00 - Rule Iran 2004 only - Sep 20 24:00 0 - Rule Iran 2005 only - Mar 21 24:00 1:00 - Rule Iran 2005 only - Sep 21 24:00 0 - Rule Iran 2008 only - Mar 20 24:00 1:00 - Rule Iran 2008 only - Sep 20 24:00 0 - Rule Iran 2009 2011 - Mar 21 24:00 1:00 - Rule Iran 2009 2011 - Sep 21 24:00 0 - Rule Iran 2012 only - Mar 20 24:00 1:00 - Rule Iran 2012 only - Sep 20 24:00 0 - Rule Iran 2013 2015 - Mar 21 24:00 1:00 - Rule Iran 2013 2015 - Sep 21 24:00 0 - Rule Iran 2016 only - Mar 20 24:00 1:00 - Rule Iran 2016 only - Sep 20 24:00 0 - Rule Iran 2017 2019 - Mar 21 24:00 1:00 - Rule Iran 2017 2019 - Sep 21 24:00 0 - Rule Iran 2020 only - Mar 20 24:00 1:00 - Rule Iran 2020 only - Sep 20 24:00 0 - Rule Iran 2021 2022 - Mar 21 24:00 1:00 - Rule Iran 2021 2022 - Sep 21 24:00 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Tehran 3:25:44 - LMT 1916 3:25:44 - TMT 1935 Jun 13 # Tehran Mean Time 3:30 Iran +0330/+0430 1977 Oct 20 24:00 4:00 Iran +04/+05 1979 3:30 Iran +0330/+0430 # Iraq # # From Jonathan Lennox (2000-06-12): # An article in this week's Economist ("Inside the Saddam-free zone", p. 50 in # the U.S. edition) on the Iraqi Kurds contains a paragraph: # "The three northern provinces ... switched their clocks this spring and # are an hour ahead of Baghdad." # # But Rives McDow (2000-06-18) quotes a contact in Iraqi-Kurdistan as follows: # In the past, some Kurdish nationalists, as a protest to the Iraqi # Government, did not adhere to daylight saving time. They referred # to daylight saving as Saddam time. But, as of today, the time zone # in Iraqi-Kurdistan is on standard time with Baghdad, Iraq. # # So we'll ignore the Economist's claim. # From Steffen Thorsen (2008-03-10): # The cabinet in Iraq abolished DST last week, according to the following # news sources (in Arabic): # http://www.aljeeran.net/wesima_articles/news-20080305-98602.html # http://www.aswataliraq.info/look/article.tpl?id=2047&IdLanguage=17&IdPublication=4&NrArticle=71743&NrIssue=1&NrSection=10 # # We have published a short article in English about the change: # https://www.timeanddate.com/news/time/iraq-dumps-daylight-saving.html # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Iraq 1982 only - May 1 0:00 1:00 - Rule Iraq 1982 1984 - Oct 1 0:00 0 - Rule Iraq 1983 only - Mar 31 0:00 1:00 - Rule Iraq 1984 1985 - Apr 1 0:00 1:00 - Rule Iraq 1985 1990 - Sep lastSun 1:00s 0 - Rule Iraq 1986 1990 - Mar lastSun 1:00s 1:00 - # IATA SSIM (1991/1996) says Apr 1 12:01am UTC; guess the ':01' is a typo. # Shanks & Pottenger say Iraq did not observe DST 1992/1997; ignore this. # Rule Iraq 1991 2007 - Apr 1 3:00s 1:00 - Rule Iraq 1991 2007 - Oct 1 3:00s 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Baghdad 2:57:40 - LMT 1890 2:57:36 - BMT 1918 # Baghdad Mean Time? 3:00 - +03 1982 May 3:00 Iraq +03/+04 ############################################################################### # Israel # For more info about the motivation for DST in Israel, see: # Barak Y. Israel's Daylight Saving Time controversy. Israel Affairs. # 2020-08-11. https://doi.org/10.1080/13537121.2020.1806564 # From Ephraim Silverberg (2001-01-11): # # I coined "IST/IDT" circa 1988. Until then there were three # different abbreviations in use: # # JST Jerusalem Standard Time [Danny Braniss, Hebrew University] # IZT Israel Zonal (sic) Time [Prof. Haim Papo, Technion] # EEST Eastern Europe Standard Time [used by almost everyone else] # # Since timezones should be called by country and not capital cities, # I ruled out JST. As Israel is in Asia Minor and not Eastern Europe, # EEST was equally unacceptable. Since "zonal" was not compatible with # any other timezone abbreviation, I felt that 'IST' was the way to go # and, indeed, it has received almost universal acceptance in timezone # settings in Israeli computers. # # In any case, I am happy to share timezone abbreviations with India, # high on my favorite-country list (and not only because my wife's # family is from India). # From P Chan (2020-10-27), with corrections: # # 1940-1946 Supplement No. 2 to the Palestine Gazette # # issue page Order No. dated start end note # 1 1010 729 67 of 1940 1940-05-22 1940-05-31* 1940-09-30* revoked by #2 # 2 1013 758 73 of 1940 1940-05-31 1940-05-31 1940-09-30 # 3 1055 1574 196 of 1940 1940-11-06 1940-11-16 1940-12-31 # 4 1066 1811 208 of 1940 1940-12-17 1940-12-31 1941-12-31 # 5 1156 1967 116 of 1941 1941-12-16 1941-12-31 1942-12-31* amended by #6 # 6 1228 1608 86 of 1942 1942-10-14 1941-12-31 1942-10-31 # 7 1256 279 21 of 1943 1943-03-18 1943-03-31 1943-10-31 # 8 1323 249 19 of 1944 1944-03-13 1944-03-31 1944-10-31 # 9 1402 328 20 of 1945 1945-04-05 1945-04-15 1945-10-31 #10 1487 596 14 of 1946 1946-04-04 1946-04-15 1946-10-31 # # 1948 Iton Rishmi (Official Gazette of the Provisional Government) # # issue page dated start end #11 2 7 1948-05-20 1948-05-22 1948-10-31* # ^This moved timezone to +04, replaced by #12 from 1948-08-31 24:00 GMT. #12 17 (Annex B) 84 1948-08-22 1948-08-31 1948-10-31 # # 1949-2000 Kovetz HaTakanot (Collection of Regulations) # # issue page dated start end note #13 6 133 1949-03-23 1949-04-30 1949-10-31 #14 80 755 1950-03-17 1950-04-15 1950-09-14 #15 164 782 1951-03-22 1951-03-31 1951-09-29* amended by #16 #16 206 1940 1951-09-23 ---------- 1951-10-22* amended by #17 #17 212 78 1951-10-19 ---------- 1951-11-10 #18 254 652 1952-03-03 1952-04-19 1952-09-27* amended by #19 #19 300 11 1952-09-15 ---------- 1952-10-18 #20 348 817 1953-03-03 1953-04-11 1953-09-12 #21 420 385 1954-02-17 1954-06-12 1954-09-11 #22 497 548 1955-01-14 1955-06-11 1955-09-10 #23 591 608 1956-03-12 1956-06-02 1956-09-29 #24 680 957 1957-02-08 1957-04-27 1957-09-21 #25 3192 1418 1974-06-28 1974-07-06 1974-10-12 #26 3322 1389 1975-04-03 1975-04-19 1975-08-30 #27 4146 2089 1980-07-15 1980-08-02 1980-09-13 #28 4604 1081 1984-02-22 1984-05-05* 1984-08-25* revoked by #29 #29 4619 1312 1984-04-06 1984-05-05 1984-08-25 #30 4744 475 1984-12-23 1985-04-13 1985-09-14* amended by #31 #31 4851 1848 1985-08-18 ---------- 1985-08-31 #32 4932 899 1986-04-22 1986-05-17 1986-09-06 #33 5013 580 1987-02-15 1987-04-18* 1987-08-22* revoked by #34 #34 5021 744 1987-03-30 1987-04-14 1987-09-12 #35 5096 659 1988-02-14 1988-04-09 1988-09-03 #36 5167 514 1989-02-03 1989-04-29 1989-09-02 #37 5248 375 1990-01-23 1990-03-24 1990-08-25 #38 5335 612 1991-02-10 1991-03-09* 1991-08-31 amended by #39 # 1992-03-28 1992-09-05 #39 5339 709 1991-03-04 1991-03-23 ---------- #40 5506 503 1993-02-18 1993-04-02 1993-09-05 # 1994-04-01 1994-08-28 # 1995-03-31 1995-09-03 #41 5731 438 1996-01-01 1996-03-14 1996-09-15 # 1997-03-13* 1997-09-18* overridden by 1997 Temp Prov # 1998-03-19* 1998-09-17* revoked by #42 #42 5853 1243 1997-09-18 1998-03-19 1998-09-05 #43 5937 77 1998-10-18 1999-04-02 1999-09-03 # 2000-04-14* 2000-09-15* revoked by #44 # 2001-04-13* 2001-09-14* revoked by #44 #44 6024 39 2000-03-14 2000-04-14 2000-10-22* overridden by 2000 Temp Prov # 2001-04-06* 2001-10-10* overridden by 2000 Temp Prov # 2002-03-29* 2002-10-29* overridden by 2000 Temp Prov # # These are laws enacted by the Knesset since the Minister could only alter the # transition dates at least six months in advanced under the 1992 Law. # dated start end # 1997 Temporary Provisions 1997-03-06 1997-03-20 1997-09-13 # 2000 Temporary Provisions 2000-07-28 ---------- 2000-10-06 # 2001-04-09 2001-09-24 # 2002-03-29 2002-10-07 # 2003-03-28 2003-10-03 # 2004-04-07 2004-09-22 # Note: # Transition times in 1940-1957 (#1-#24) were midnight GMT, # in 1974-1998 (#25-#42 and the 1997 Temporary Provisions) were midnight, # in 1999-April 2000 (#43,#44) were 02:00, # in the 2000 Temporary Provisions were 01:00. # # ----------------------------------------------------------------------------- # Links: # 1 https://findit.library.yale.edu/images_layout/view?parentoid=15537490&increment=687 # 2 https://findit.library.yale.edu/images_layout/view?parentoid=15537490&increment=716 # 3 https://findit.library.yale.edu/images_layout/view?parentoid=15537491&increment=721 # 4 https://findit.library.yale.edu/images_layout/view?parentoid=15537491&increment=958 # 5 https://findit.library.yale.edu/images_layout/view?parentoid=15537502&increment=558 # 6 https://findit.library.yale.edu/images_layout/view?parentoid=15537511&increment=105 # 7 https://findit.library.yale.edu/images_layout/view?parentoid=15537516&increment=278 # 8 https://findit.library.yale.edu/images_layout/view?parentoid=15537522&increment=248 # 9 https://findit.library.yale.edu/images_layout/view?parentoid=15537530&increment=329 #10 https://findit.library.yale.edu/images_layout/view?parentoid=15537537&increment=601 #11 https://www.nevo.co.il/law_word/law12/er-002.pdf#page=3 #12 https://www.nevo.co.il/law_word/law12/er-017-t2.pdf#page=4 #13 https://www.nevo.co.il/law_word/law06/tak-0006.pdf#page=3 #14 https://www.nevo.co.il/law_word/law06/tak-0080.pdf#page=7 #15 https://www.nevo.co.il/law_word/law06/tak-0164.pdf#page=10 #16 https://www.nevo.co.il/law_word/law06/tak-0206.pdf#page=4 #17 https://www.nevo.co.il/law_word/law06/tak-0212.pdf#page=2 #18 https://www.nevo.co.il/law_word/law06/tak-0254.pdf#page=4 #19 https://www.nevo.co.il/law_word/law06/tak-0300.pdf#page=5 #20 https://www.nevo.co.il/law_word/law06/tak-0348.pdf#page=3 #21 https://www.nevo.co.il/law_word/law06/tak-0420.pdf#page=5 #22 https://www.nevo.co.il/law_word/law06/tak-0497.pdf#page=10 #23 https://www.nevo.co.il/law_word/law06/tak-0591.pdf#page=6 #24 https://www.nevo.co.il/law_word/law06/tak-0680.pdf#page=3 #25 https://www.nevo.co.il/law_word/law06/tak-3192.pdf#page=2 #26 https://www.nevo.co.il/law_word/law06/tak-3322.pdf#page=5 #27 https://www.nevo.co.il/law_word/law06/tak-4146.pdf#page=2 #28 https://www.nevo.co.il/law_word/law06/tak-4604.pdf#page=7 #29 https://www.nevo.co.il/law_word/law06/tak-4619.pdf#page=2 #30 https://www.nevo.co.il/law_word/law06/tak-4744.pdf#page=11 #31 https://www.nevo.co.il/law_word/law06/tak-4851.pdf#page=2 #32 https://www.nevo.co.il/law_word/law06/tak-4932.pdf#page=19 #33 https://www.nevo.co.il/law_word/law06/tak-5013.pdf#page=8 #34 https://www.nevo.co.il/law_word/law06/tak-5021.pdf#page=8 #35 https://www.nevo.co.il/law_word/law06/tak-5096.pdf#page=3 #36 https://www.nevo.co.il/law_word/law06/tak-5167.pdf#page=2 #37 https://www.nevo.co.il/law_word/law06/tak-5248.pdf#page=7 #38 https://www.nevo.co.il/law_word/law06/tak-5335.pdf#page=6 #39 https://www.nevo.co.il/law_word/law06/tak-5339.pdf#page=7 #40 https://www.nevo.co.il/law_word/law06/tak-5506.pdf#page=19 #41 https://www.nevo.co.il/law_word/law06/tak-5731.pdf#page=2 #42 https://www.nevo.co.il/law_word/law06/tak-5853.pdf#page=3 #43 https://www.nevo.co.il/law_word/law06/tak-5937.pdf#page=9 #44 https://www.nevo.co.il/law_word/law06/tak-6024.pdf#page=4 # # Time Determination (Temporary Provisions) Law, 1997 # https://www.nevo.co.il/law_html/law19/p201_003.htm # # Time Determination (Temporary Provisions) Law, 2000 # https://www.nevo.co.il/law_html/law19/p201_004.htm # # Time Determination Law, 1992 and amendments # https://www.nevo.co.il/law_html/law01/p201_002.htm # https://main.knesset.gov.il/Activity/Legislation/Laws/Pages/LawPrimary.aspx?lawitemid=2001174 # From Paul Eggert (2020-10-27): # Several of the midnight transitions mentioned above are ambiguous; # are they 00:00, 00:00s, 24:00, or 24:00s? When resolving these ambiguities, # try to minimize changes from previous tzdb versions, for lack of better info. # Commentary from previous versions is included below, to help explain this. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Zion 1940 only - May 31 24:00u 1:00 D Rule Zion 1940 only - Sep 30 24:00u 0 S Rule Zion 1940 only - Nov 16 24:00u 1:00 D Rule Zion 1942 1946 - Oct 31 24:00u 0 S Rule Zion 1943 1944 - Mar 31 24:00u 1:00 D Rule Zion 1945 1946 - Apr 15 24:00u 1:00 D Rule Zion 1948 only - May 22 24:00u 2:00 DD Rule Zion 1948 only - Aug 31 24:00u 1:00 D Rule Zion 1948 1949 - Oct 31 24:00u 0 S Rule Zion 1949 only - Apr 30 24:00u 1:00 D Rule Zion 1950 only - Apr 15 24:00u 1:00 D Rule Zion 1950 only - Sep 14 24:00u 0 S Rule Zion 1951 only - Mar 31 24:00u 1:00 D Rule Zion 1951 only - Nov 10 24:00u 0 S Rule Zion 1952 only - Apr 19 24:00u 1:00 D Rule Zion 1952 only - Oct 18 24:00u 0 S Rule Zion 1953 only - Apr 11 24:00u 1:00 D Rule Zion 1953 only - Sep 12 24:00u 0 S Rule Zion 1954 only - Jun 12 24:00u 1:00 D Rule Zion 1954 only - Sep 11 24:00u 0 S Rule Zion 1955 only - Jun 11 24:00u 1:00 D Rule Zion 1955 only - Sep 10 24:00u 0 S Rule Zion 1956 only - Jun 2 24:00u 1:00 D Rule Zion 1956 only - Sep 29 24:00u 0 S Rule Zion 1957 only - Apr 27 24:00u 1:00 D Rule Zion 1957 only - Sep 21 24:00u 0 S Rule Zion 1974 only - Jul 6 24:00 1:00 D Rule Zion 1974 only - Oct 12 24:00 0 S Rule Zion 1975 only - Apr 19 24:00 1:00 D Rule Zion 1975 only - Aug 30 24:00 0 S # From Alois Treindl (2019-03-06): # http://www.moin.gov.il/Documents/שעון%20קיץ/clock-50-years-7-2014.pdf # From Isaac Starkman (2019-03-06): # Summer time was in that period in 1980 and 1984, see # https://www.ynet.co.il/articles/0,7340,L-3951073,00.html # You can of course read it in translation. # I checked the local newspapers for that years. # It started on midnight and end at 01.00 am. # From Paul Eggert (2019-03-06): # Also see this thread about the moin.gov.il URL: # https://mm.icann.org/pipermail/tz/2018-November/027194.html Rule Zion 1980 only - Aug 2 24:00s 1:00 D Rule Zion 1980 only - Sep 13 24:00s 0 S Rule Zion 1984 only - May 5 24:00s 1:00 D Rule Zion 1984 only - Aug 25 24:00s 0 S Rule Zion 1985 only - Apr 13 24:00 1:00 D Rule Zion 1985 only - Aug 31 24:00 0 S Rule Zion 1986 only - May 17 24:00 1:00 D Rule Zion 1986 only - Sep 6 24:00 0 S Rule Zion 1987 only - Apr 14 24:00 1:00 D Rule Zion 1987 only - Sep 12 24:00 0 S # From Avigdor Finkelstein (2014-03-05): # I check the Parliament (Knesset) records and there it's stated that the # [1988] transition should take place on Saturday night, when the Sabbath # ends and changes to Sunday. Rule Zion 1988 only - Apr 9 24:00 1:00 D Rule Zion 1988 only - Sep 3 24:00 0 S # From Ephraim Silverberg # (1997-03-04, 1998-03-16, 1998-12-28, 2000-01-17, 2000-07-25, 2004-12-22, # and 2005-02-17): # According to the Office of the Secretary General of the Ministry of # Interior, there is NO set rule for Daylight-Savings/Standard time changes. # One thing is entrenched in law, however: that there must be at least 150 # days of daylight savings time annually. From 1993-1998, the change to # daylight savings time was on a Friday morning from midnight IST to # 1 a.m IDT; up until 1998, the change back to standard time was on a # Saturday night from midnight daylight savings time to 11 p.m. standard # time. 1996 is an exception to this rule where the change back to standard # time took place on Sunday night instead of Saturday night to avoid # conflicts with the Jewish New Year. In 1999, the change to # daylight savings time was still on a Friday morning but from # 2 a.m. IST to 3 a.m. IDT; furthermore, the change back to standard time # was also on a Friday morning from 2 a.m. IDT to 1 a.m. IST for # 1999 only. In the year 2000, the change to daylight savings time was # similar to 1999, but although the change back will be on a Friday, it # will take place from 1 a.m. IDT to midnight IST. Starting in 2001, all # changes to/from will take place at 1 a.m. old time, but now there is no # rule as to what day of the week it will take place in as the start date # (except in 2003) is the night after the Passover Seder (i.e. the eve # of the 16th of Nisan in the lunar Hebrew calendar) and the end date # (except in 2002) is three nights before Yom Kippur [Day of Atonement] # (the eve of the 7th of Tishrei in the lunar Hebrew calendar). # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Zion 1989 only - Apr 29 24:00 1:00 D Rule Zion 1989 only - Sep 2 24:00 0 S Rule Zion 1990 only - Mar 24 24:00 1:00 D Rule Zion 1990 only - Aug 25 24:00 0 S Rule Zion 1991 only - Mar 23 24:00 1:00 D Rule Zion 1991 only - Aug 31 24:00 0 S Rule Zion 1992 only - Mar 28 24:00 1:00 D Rule Zion 1992 only - Sep 5 24:00 0 S Rule Zion 1993 only - Apr 2 0:00 1:00 D Rule Zion 1993 only - Sep 5 0:00 0 S # The dates for 1994-1995 were obtained from Office of the Spokeswoman for the # Ministry of Interior, Jerusalem, Israel. The spokeswoman can be reached by # calling the office directly at 972-2-6701447 or 972-2-6701448. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Zion 1994 only - Apr 1 0:00 1:00 D Rule Zion 1994 only - Aug 28 0:00 0 S Rule Zion 1995 only - Mar 31 0:00 1:00 D Rule Zion 1995 only - Sep 3 0:00 0 S # The dates for 1996 were determined by the Minister of Interior of the # time, Haim Ramon. The official announcement regarding 1996-1998 # (with the dates for 1997-1998 no longer being relevant) can be viewed at: # # ftp://ftp.cs.huji.ac.il/pub/tz/announcements/1996-1998.ramon.ps.gz # # The dates for 1997-1998 were altered by his successor, Rabbi Eli Suissa. # # The official announcements for the years 1997-1999 can be viewed at: # # ftp://ftp.cs.huji.ac.il/pub/tz/announcements/YYYY.ps.gz # # where YYYY is the relevant year. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Zion 1996 only - Mar 14 24:00 1:00 D Rule Zion 1996 only - Sep 15 24:00 0 S Rule Zion 1997 only - Mar 20 24:00 1:00 D Rule Zion 1997 only - Sep 13 24:00 0 S Rule Zion 1998 only - Mar 20 0:00 1:00 D Rule Zion 1998 only - Sep 6 0:00 0 S Rule Zion 1999 only - Apr 2 2:00 1:00 D Rule Zion 1999 only - Sep 3 2:00 0 S # The Knesset Interior Committee has changed the dates for 2000 for # the third time in just over a year and have set new dates for the # years 2001-2004 as well. # # The official announcement for the start date of 2000 can be viewed at: # # ftp://ftp.cs.huji.ac.il/pub/tz/announcements/2000-start.ps.gz # # The official announcement for the end date of 2000 and the dates # for the years 2001-2004 can be viewed at: # # ftp://ftp.cs.huji.ac.il/pub/tz/announcements/2000-2004.ps.gz # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Zion 2000 only - Apr 14 2:00 1:00 D Rule Zion 2000 only - Oct 6 1:00 0 S Rule Zion 2001 only - Apr 9 1:00 1:00 D Rule Zion 2001 only - Sep 24 1:00 0 S Rule Zion 2002 only - Mar 29 1:00 1:00 D Rule Zion 2002 only - Oct 7 1:00 0 S Rule Zion 2003 only - Mar 28 1:00 1:00 D Rule Zion 2003 only - Oct 3 1:00 0 S Rule Zion 2004 only - Apr 7 1:00 1:00 D Rule Zion 2004 only - Sep 22 1:00 0 S # The proposed law agreed upon by the Knesset Interior Committee on # 2005-02-14 is that, for 2005 and beyond, DST starts at 02:00 the # last Friday before April 2nd (i.e. the last Friday in March or April # 1st itself if it falls on a Friday) and ends at 02:00 on the Saturday # night _before_ the fast of Yom Kippur. # # Those who can read Hebrew can view the announcement at: # # ftp://ftp.cs.huji.ac.il/pub/tz/announcements/2005+beyond.ps # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Zion 2005 2012 - Apr Fri<=1 2:00 1:00 D Rule Zion 2005 only - Oct 9 2:00 0 S Rule Zion 2006 only - Oct 1 2:00 0 S Rule Zion 2007 only - Sep 16 2:00 0 S Rule Zion 2008 only - Oct 5 2:00 0 S Rule Zion 2009 only - Sep 27 2:00 0 S Rule Zion 2010 only - Sep 12 2:00 0 S Rule Zion 2011 only - Oct 2 2:00 0 S Rule Zion 2012 only - Sep 23 2:00 0 S # From Ephraim Silverberg (2020-10-26): # The current time law (2013) from the State of Israel can be viewed # (in Hebrew) at: # ftp://ftp.cs.huji.ac.il/pub/tz/israel/announcements/2013+law.pdf # It translates to: # Every year, in the period from the Friday before the last Sunday in # the month of March at 02:00 a.m. until the last Sunday of the month # of October at 02:00 a.m., Israel Time will be advanced an additional # hour such that it will be UTC+3. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Zion 2013 max - Mar Fri>=23 2:00 1:00 D Rule Zion 2013 max - Oct lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Jerusalem 2:20:54 - LMT 1880 2:20:40 - JMT 1918 # Jerusalem Mean Time? 2:00 Zion I%sT ############################################################################### # Japan # '9:00' and 'JST' is from Guy Harris. # From Paul Eggert (2020-01-19): # Starting in the 7th century, Japan generally followed an ancient Chinese # timekeeping system that divided night and day into six hours each, # with hour length depending on season. In 1873 the government # started requiring the use of a Western style 24-hour clock. See: # Yulia Frumer, "Making Time: Astronomical Time Measurement in Tokugawa Japan" # . As the tzdb code and # data support only 24-hour clocks, its tables model timestamps before # 1873 using Western-style local mean time. # From Hideyuki Suzuki (1998-11-09): # 'Tokyo' usually stands for the former location of Tokyo Astronomical # Observatory: 139° 44' 40.90" E (9h 18m 58.727s), 35° 39' 16.0" N. # This data is from 'Rika Nenpyou (Chronological Scientific Tables) 1996' # edited by National Astronomical Observatory of Japan.... # JST (Japan Standard Time) has been used since 1888-01-01 00:00 (JST). # The law is enacted on 1886-07-07. # From Hideyuki Suzuki (1998-11-16): # The ordinance No. 51 (1886) established "standard time" in Japan, # which stands for the time on 135° E. # In the ordinance No. 167 (1895), "standard time" was renamed to "central # standard time". And the same ordinance also established "western standard # time", which stands for the time on 120° E.... But "western standard # time" was abolished in the ordinance No. 529 (1937). In the ordinance No. # 167, there is no mention regarding for what place western standard time is # standard.... # # I wrote "ordinance" above, but I don't know how to translate. # In Japanese it's "chokurei", which means ordinance from emperor. # From Yu-Cheng Chuang (2013-07-12): # ...the Meiji Emperor announced Ordinance No. 167 of Meiji Year 28 "The clause # about standard time" ... The adoption began from Jan 1, 1896. # https://ja.wikisource.org/wiki/標準時ニ關スル件_(公布時) # # ...the Showa Emperor announced Ordinance No. 529 of Showa Year 12 ... which # means the whole Japan territory, including later occupations, adopt Japan # Central Time (UT+9). The adoption began on Oct 1, 1937. # https://ja.wikisource.org/wiki/明治二十八年勅令第百六十七號標準時ニ關スル件中改正ノ件 # From Paul Eggert (1995-03-06): # Today's _Asahi Evening News_ (page 4) reports that Japan had # daylight saving between 1948 and 1951, but "the system was discontinued # because the public believed it would lead to longer working hours." # From Mayumi Negishi in the 2005-08-10 Japan Times: # http://www.japantimes.co.jp/cgi-bin/getarticle.pl5?nn20050810f2.htm # Occupation authorities imposed daylight-saving time on Japan on # [1948-05-01].... But lack of prior debate and the execution of # daylight-saving time just three days after the bill was passed generated # deep hatred of the concept.... The Diet unceremoniously passed a bill to # dump the unpopular system in October 1951, less than a month after the San # Francisco Peace Treaty was signed. (A government poll in 1951 showed 53% # of the Japanese wanted to scrap daylight-saving time, as opposed to 30% who # wanted to keep it.) # From Takayuki Nikai (2018-01-19): # The source of information is Japanese law. # http://www.shugiin.go.jp/internet/itdb_housei.nsf/html/houritsu/00219480428029.htm # http://www.shugiin.go.jp/internet/itdb_housei.nsf/html/houritsu/00719500331039.htm # ... In summary, it is written as follows. From 24:00 on the first Saturday # in May, until 0:00 on the day after the second Saturday in September. # From Phake Nick (2018-09-27): # [T]he webpage authored by National Astronomical Observatory of Japan # https://eco.mtk.nao.ac.jp/koyomi/wiki/BBFEB9EF2FB2C6BBFEB9EF.html # ... mentioned that using Showa 23 (year 1948) as example, 13pm of September # 11 in summer time will equal to 0am of September 12 in standard time. # It cited a document issued by the Liaison Office which briefly existed # during the postwar period of Japan, where the detail on implementation # of the summer time is described in the document. # https://eco.mtk.nao.ac.jp/koyomi/wiki/BBFEB9EF2FB2C6BBFEB9EFB2C6BBFEB9EFA4CEBCC2BBDCA4CBA4C4A4A4A4C6.pdf # The text in the document do instruct a fall back to occur at # September 11, 13pm in summer time, while ordinary citizens can # change the clock before they sleep. # # From Paul Eggert (2018-09-27): # This instruction is equivalent to "Sat>=8 25:00", so use that. zic treats # it like "Sun>=9 01:00", which is not quite the same but is the best we can # do in any POSIX or C platform. The "25:00" assumes zic from 2007 or later, # which should be safe now. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Japan 1948 only - May Sat>=1 24:00 1:00 D Rule Japan 1948 1951 - Sep Sat>=8 25:00 0 S Rule Japan 1949 only - Apr Sat>=1 24:00 1:00 D Rule Japan 1950 1951 - May Sat>=1 24:00 1:00 D # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Tokyo 9:18:59 - LMT 1887 Dec 31 15:00u 9:00 Japan J%sT # Since 1938, all Japanese possessions have been like Asia/Tokyo, # except that Truk (Chuuk), Ponape (Pohnpei), and Jaluit (Kosrae) did not # switch from +10 to +09 until 1941-04-01; see the 'australasia' file. # Jordan # # From # Jordan Week (1999-07-01) via Steffen Thorsen (1999-09-09): # Clocks in Jordan were forwarded one hour on Wednesday at midnight, # in accordance with the government's decision to implement summer time # all year round. # # From # Jordan Week (1999-09-30) via Steffen Thorsen (1999-11-09): # Winter time starts today Thursday, 30 September. Clocks will be turned back # by one hour. This is the latest government decision and it's final! # The decision was taken because of the increase in working hours in # government's departments from six to seven hours. # # From Paul Eggert (2005-11-22): # Starting 2003 transitions are from Steffen Thorsen's web site timeanddate.com. # # From Steffen Thorsen (2005-11-23): # For Jordan I have received multiple independent user reports every year # about DST end dates, as the end-rule is different every year. # # From Steffen Thorsen (2006-10-01), after a heads-up from Hilal Malawi: # http://www.petranews.gov.jo/nepras/2006/Sep/05/4000.htm # "Jordan will switch to winter time on Friday, October 27". # # From Steffen Thorsen (2009-04-02): # This single one might be good enough, (2009-03-24, Arabic): # http://petra.gov.jo/Artical.aspx?Lng=2&Section=8&Artical=95279 # # Google's translation: # # > The Council of Ministers decided in 2002 to adopt the principle of timely # > submission of the summer at 60 minutes as of midnight on the last Thursday # > of the month of March of each year. # # So - this means the midnight between Thursday and Friday since 2002. # From Arthur David Olson (2009-04-06): # We still have Jordan switching to DST on Thursdays in 2000 and 2001. # From Steffen Thorsen (2012-10-25): # Yesterday the government in Jordan announced that they will not # switch back to standard time this winter, so the will stay on DST # until about the same time next year (at least). # http://www.petra.gov.jo/Public_News/Nws_NewsDetails.aspx?NewsID=88950 # From Steffen Thorsen (2013-12-11): # Jordan Times and other sources say that Jordan is going back to # UTC+2 on 2013-12-19 at midnight: # http://jordantimes.com/govt-decides-to-switch-back-to-wintertime # Official, in Arabic: # http://www.petra.gov.jo/public_news/Nws_NewsDetails.aspx?Menu_ID=&Site_Id=2&lang=1&NewsID=133230&CatID=14 # ... Our background/permalink about it # https://www.timeanddate.com/news/time/jordan-reverses-dst-decision.html # ... # http://www.petra.gov.jo/Public_News/Nws_NewsDetails.aspx?lang=2&site_id=1&NewsID=133313&Type=P # ... says midnight for the coming one and 1:00 for the ones in the future # (and they will use DST again next year, using the normal schedule). # From Paul Eggert (2013-12-11): # As Steffen suggested, consider the past 21-month experiment to be DST. # From Steffen Thorsen (2021-09-24): # The Jordanian Government announced yesterday that they will start DST # in February instead of March: # https://petra.gov.jo/Include/InnerPage.jsp?ID=37683&lang=en&name=en_news (English) # https://petra.gov.jo/Include/InnerPage.jsp?ID=189969&lang=ar&name=news (Arabic) # From the Arabic version, it seems to say it would be at midnight # (assume 24:00) on the last Thursday in February, starting from 2022. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Jordan 1973 only - Jun 6 0:00 1:00 S Rule Jordan 1973 1975 - Oct 1 0:00 0 - Rule Jordan 1974 1977 - May 1 0:00 1:00 S Rule Jordan 1976 only - Nov 1 0:00 0 - Rule Jordan 1977 only - Oct 1 0:00 0 - Rule Jordan 1978 only - Apr 30 0:00 1:00 S Rule Jordan 1978 only - Sep 30 0:00 0 - Rule Jordan 1985 only - Apr 1 0:00 1:00 S Rule Jordan 1985 only - Oct 1 0:00 0 - Rule Jordan 1986 1988 - Apr Fri>=1 0:00 1:00 S Rule Jordan 1986 1990 - Oct Fri>=1 0:00 0 - Rule Jordan 1989 only - May 8 0:00 1:00 S Rule Jordan 1990 only - Apr 27 0:00 1:00 S Rule Jordan 1991 only - Apr 17 0:00 1:00 S Rule Jordan 1991 only - Sep 27 0:00 0 - Rule Jordan 1992 only - Apr 10 0:00 1:00 S Rule Jordan 1992 1993 - Oct Fri>=1 0:00 0 - Rule Jordan 1993 1998 - Apr Fri>=1 0:00 1:00 S Rule Jordan 1994 only - Sep Fri>=15 0:00 0 - Rule Jordan 1995 1998 - Sep Fri>=15 0:00s 0 - Rule Jordan 1999 only - Jul 1 0:00s 1:00 S Rule Jordan 1999 2002 - Sep lastFri 0:00s 0 - Rule Jordan 2000 2001 - Mar lastThu 0:00s 1:00 S Rule Jordan 2002 2012 - Mar lastThu 24:00 1:00 S Rule Jordan 2003 only - Oct 24 0:00s 0 - Rule Jordan 2004 only - Oct 15 0:00s 0 - Rule Jordan 2005 only - Sep lastFri 0:00s 0 - Rule Jordan 2006 2011 - Oct lastFri 0:00s 0 - Rule Jordan 2013 only - Dec 20 0:00 0 - Rule Jordan 2014 2021 - Mar lastThu 24:00 1:00 S Rule Jordan 2014 max - Oct lastFri 0:00s 0 - Rule Jordan 2022 max - Feb lastThu 24:00 1:00 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Amman 2:23:44 - LMT 1931 2:00 Jordan EE%sT # Kazakhstan # From Kazakhstan Embassy's News Bulletin No. 11 # (2005-03-21): # The Government of Kazakhstan passed a resolution March 15 abolishing # daylight saving time citing lack of economic benefits and health # complications coupled with a decrease in productivity. # # From Branislav Kojic (in Astana) via Gwillim Law (2005-06-28): # ... what happened was that the former Kazakhstan Eastern time zone # was "blended" with the Central zone. Therefore, Kazakhstan now has # two time zones, and difference between them is one hour. The zone # closer to UTC is the former Western zone (probably still called the # same), encompassing four provinces in the west: Aqtöbe, Atyraū, # Mangghystaū, and West Kazakhstan. The other zone encompasses # everything else.... I guess that would make Kazakhstan time zones # de jure UTC+5 and UTC+6 respectively. # From Stepan Golosunov (2016-03-27): # Review of the linked documents from http://adilet.zan.kz/ # produced the following data for post-1991 Kazakhstan: # # 0. Act of the Cabinet of Ministers of the USSR # from 1991-02-04 No. 20 # http://pravo.gov.ru/proxy/ips/?docbody=&nd=102010545 # removed the extra hour ("decree time") on the territory of the USSR # starting with the last Sunday of March 1991. # It also allowed (but not mandated) Kazakh SSR, Kirghiz SSR, Tajik SSR, # Turkmen SSR and Uzbek SSR to not have "summer" time. # # The 1992-01-13 act also refers to the act of the Cabinet of Ministers # of the Kazakh SSR from 1991-03-20 No. 170 "About the act of the Cabinet # of Ministers of the USSR from 1991-02-04 No. 20" but I didn't found its # text. # # According to Izvestia newspaper No. 68 (23334) from 1991-03-20 # -- page 6; available at http://libinfo.org/newsr/newsr2574.djvu via # http://libinfo.org/index.php?id=58564 -- on 1991-03-31 at 2:00 during # transition to "summer" time: # Republic of Georgia, Latvian SSR, Lithuanian SSR, SSR Moldova, # Estonian SSR; Komi ASSR; Kaliningrad oblast; Nenets autonomous okrug # were to move clocks 1 hour forward. # Kazakh SSR (excluding Uralsk oblast); Republic of Kyrgyzstan, Tajik # SSR; Andijan, Jizzakh, Namangan, Sirdarya, Tashkent, Fergana oblasts # of the Uzbek SSR were to move clocks 1 hour backwards. # Other territories were to not move clocks. # When the "summer" time would end on 1991-09-29, clocks were to be # moved 1 hour backwards on the territory of the USSR excluding # Kazakhstan, Kirghizia, Uzbekistan, Turkmenia, Tajikistan. # # Apparently there were last minute changes. Apparently Kazakh act No. 170 # was one of such changes. # # https://ru.wikipedia.org/wiki/Декретное_время # claims that Sovetskaya Rossiya newspaper on 1991-03-29 published that # Nenets autonomous okrug, Komi and Kazakhstan (excluding Uralsk oblast) # were to not move clocks and Uralsk oblast was to move clocks # forward; on 1991-09-29 Kazakhstan was to move clocks backwards. # (Probably there were changes even after that publication. There is an # article claiming that Kaliningrad oblast decided on 1991-03-29 to not # move clocks.) # # This implies that on 1991-03-31 Asia/Oral remained on +04/+05 while # the rest of Kazakhstan switched from +06/+07 to +05/06 or from +05/06 # to +04/+05. It's unclear how Qyzylorda oblast moved into the fifth # time belt. (By switching from +04/+05 to +05/+06 on 1991-09-29?) ... # # 1. Act of the Cabinet of Ministers of the Republic of Kazakhstan # from 1992-01-13 No. 28 # http://adilet.zan.kz/rus/docs/P920000028_ # (text includes modification from the 1996 act) # introduced new rules for calculation of time, mirroring Russian # 1992-01-08 act. It specified that time would be calculated # according to time belts plus extra hour ("decree time"), moved clocks # on the whole territory of Kazakhstan 1 hour forward on 1992-01-19 at # 2:00, specified DST rules. It acknowledged that Kazakhstan was # located in the fourth and the fifth time belts and specified the # border between them to be located east of Qostanay and Aktyubinsk # oblasts (notably including Turgai and Qyzylorda oblasts into the fifth # time belt). # # This means switch on 1992-01-19 at 2:00 from +04/+05 to +05/+06 for # Asia/Aqtau, Asia/Aqtobe, Asia/Oral, Atyraū and Qostanay oblasts; from # +05/+06 to +06/+07 for Asia/Almaty and Asia/Qyzylorda (and Arkalyk).... # # 2. Act of the Cabinet of Ministers of the Republic of Kazakhstan # from 1992-03-27 No. 284 # http://adilet.zan.kz/rus/docs/P920000284_ # cancels extra hour ("decree time") for Uralsk and Qyzylorda oblasts # since the last Sunday of March 1992, while keeping them in the fourth # and the fifth time belts respectively. # # 3. Order of the Prime Minister of the Republic of Kazakhstan # from 1994-09-23 No. 384 # http://adilet.zan.kz/rus/docs/R940000384_ # cancels the extra hour ("decree time") on the territory of Mangghystaū # oblast since the last Sunday of September 1994 (saying that time on # the territory would correspond to the third time belt as a # result).... # # 4. Act of the Government of the Republic of Kazakhstan # from 1996-05-08 No. 575 # http://adilet.zan.kz/rus/docs/P960000575_ # amends the 1992-01-13 act to end summer time in October instead # of September, mirroring identical Russian change from 1996-04-23 act. # # 5. Act of the Government of the Republic of Kazakhstan # from 1999-03-26 No. 305 # http://adilet.zan.kz/rus/docs/P990000305_ # cancels the extra hour ("decree time") for Atyraū oblast since the # last Sunday of March 1999 while retaining the oblast in the fourth # time belt. # # This means change from +05/+06 to +04/+05.... # # 6. Act of the Government of the Republic of Kazakhstan # from 2000-11-23 No. 1749 # http://adilet.zan.kz/rus/archive/docs/P000001749_/23.11.2000 # replaces the previous five documents. # # The only changes I noticed are in definition of the border between the # fourth and the fifth time belts. They account for changes in spelling # and administrative division (splitting of Turgai oblast in 1997 # probably changed time in territories incorporated into Qostanay oblast # (including Arkalyk) from +06/+07 to +05/+06) and move Qyzylorda oblast # from being in the fifth time belt and not using decree time into the # fourth time belt (no change in practice). # # 7. Act of the Government of the Republic of Kazakhstan # from 2003-12-29 No. 1342 # http://adilet.zan.kz/rus/docs/P030001342_ # modified the 2000-11-23 act. No relevant changes, apparently. # # 8. Act of the Government of the Republic of Kazakhstan # from 2004-07-20 No. 775 # http://adilet.zan.kz/rus/archive/docs/P040000775_/20.07.2004 # modified the 2000-11-23 act to move Qostanay and Qyzylorda oblasts into # the fifth time belt and add Aktobe oblast to the list of regions not # using extra hour ("decree time"), leaving Kazakhstan with only 2 time # zones (+04/+05 and +06/+07). The changes were to be implemented # during DST transitions in 2004 and 2005 but the acts got radically # amended before implementation happened. # # 9. Act of the Government of the Republic of Kazakhstan # from 2004-09-15 No. 1059 # http://adilet.zan.kz/rus/docs/P040001059_ # modified the 2000-11-23 act to remove exceptions from the "decree time" # (leaving Kazakhstan in +05/+06 and +06/+07 zones), amended the # 2004-07-20 act to implement changes for Atyraū, West Kazakhstan, # Qostanay, Qyzylorda and Mangghystaū oblasts by not moving clocks # during the 2004 transition to "winter" time. # # This means transition from +04/+05 to +05/+06 for Atyraū oblast (no # zone currently), Asia/Oral, Asia/Aqtau and transition from +05/+06 to # +06/+07 for Qostanay oblast (Qostanay and Arkalyk, no zones currently) # and Asia/Qyzylorda on 2004-10-31 at 3:00.... # # 10. Act of the Government of the Republic of Kazakhstan # from 2005-03-15 No. 231 # http://adilet.zan.kz/rus/docs/P050000231_ # removes DST provisions from the 2000-11-23 act, removes most of the # (already implemented) provisions from the 2004-07-20 and 2004-09-15 # acts, comes into effect 10 days after official publication. # The only practical effect seems to be the abolition of the summer # time. # # Unamended version of the act of the Government of the Russian Federation # No. 23 from 1992-01-08 [See 'europe' file for details]. # Kazakh 1992-01-13 act appears to provide the same rules and 1992-03-27 # act was to be enacted on the last Sunday of March 1992. # From Stepan Golosunov (2016-11-08): # Turgai reorganization should affect only southern part of Qostanay # oblast. Which should probably be separated into Asia/Arkalyk zone. # (There were also 1970, 1988 and 1990 Turgai oblast reorganizations # according to wikipedia.) # # [For Qostanay] http://www.ng.kz/gazeta/195/hranit/ # suggests that clocks were to be moved 40 minutes backwards on # 1920-01-01 to the fourth time belt. But I do not understand # how that could happen.... # # [For Atyrau and Oral] 1919 decree # (http://www.worldtimezone.com/dst_news/dst_news_russia-1919-02-08.html # and in Byalokoz) lists Ural river (plus 10 versts on its left bank) in # the third time belt (before 1930 this means +03). # From Alexander Konzurovski (2018-12-20): # (Asia/Qyzylorda) is changing its time zone from UTC+6 to UTC+5 # effective December 21st, 2018.... # http://adilet.zan.kz/rus/docs/P1800000817 (russian language). # Zone NAME STDOFF RULES FORMAT [UNTIL] # # Almaty (formerly Alma-Ata), representing most locations in Kazakhstan # This includes KZ-AKM, KZ-ALA, KZ-ALM, KZ-AST, KZ-BAY, KZ-VOS, KZ-ZHA, # KZ-KAR, KZ-SEV, KZ-PAV, and KZ-YUZ. Zone Asia/Almaty 5:07:48 - LMT 1924 May 2 # or Alma-Ata 5:00 - +05 1930 Jun 21 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s 5:00 RussiaAsia +05/+06 1992 Jan 19 2:00s 6:00 RussiaAsia +06/+07 2004 Oct 31 2:00s 6:00 - +06 # Qyzylorda (aka Kyzylorda, Kizilorda, Kzyl-Orda, etc.) (KZ-KZY) Zone Asia/Qyzylorda 4:21:52 - LMT 1924 May 2 4:00 - +04 1930 Jun 21 5:00 - +05 1981 Apr 1 5:00 1:00 +06 1981 Oct 1 6:00 - +06 1982 Apr 1 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s 4:00 RussiaAsia +04/+05 1991 Sep 29 2:00s 5:00 RussiaAsia +05/+06 1992 Jan 19 2:00s 6:00 RussiaAsia +06/+07 1992 Mar 29 2:00s 5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s 6:00 - +06 2018 Dec 21 0:00 5:00 - +05 # # Qostanay (aka Kostanay, Kustanay) (KZ-KUS) # The 1991/2 rules are unclear partly because of the 1997 Turgai # reorganization. Zone Asia/Qostanay 4:14:28 - LMT 1924 May 2 4:00 - +04 1930 Jun 21 5:00 - +05 1981 Apr 1 5:00 1:00 +06 1981 Oct 1 6:00 - +06 1982 Apr 1 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s 5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s 6:00 - +06 # Aqtöbe (aka Aktobe, formerly Aktyubinsk) (KZ-AKT) Zone Asia/Aqtobe 3:48:40 - LMT 1924 May 2 4:00 - +04 1930 Jun 21 5:00 - +05 1981 Apr 1 5:00 1:00 +06 1981 Oct 1 6:00 - +06 1982 Apr 1 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s 5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s 5:00 - +05 # Mangghystaū (KZ-MAN) # Aqtau was not founded until 1963, but it represents an inhabited region, # so include timestamps before 1963. Zone Asia/Aqtau 3:21:04 - LMT 1924 May 2 4:00 - +04 1930 Jun 21 5:00 - +05 1981 Oct 1 6:00 - +06 1982 Apr 1 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s 5:00 RussiaAsia +05/+06 1994 Sep 25 2:00s 4:00 RussiaAsia +04/+05 2004 Oct 31 2:00s 5:00 - +05 # Atyraū (KZ-ATY) is like Mangghystaū except it switched from # +04/+05 to +05/+06 in spring 1999, not fall 1994. Zone Asia/Atyrau 3:27:44 - LMT 1924 May 2 3:00 - +03 1930 Jun 21 5:00 - +05 1981 Oct 1 6:00 - +06 1982 Apr 1 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s 5:00 RussiaAsia +05/+06 1999 Mar 28 2:00s 4:00 RussiaAsia +04/+05 2004 Oct 31 2:00s 5:00 - +05 # West Kazakhstan (KZ-ZAP) # From Paul Eggert (2016-03-18): # The 1989 transition is from USSR act No. 227 (1989-03-14). Zone Asia/Oral 3:25:24 - LMT 1924 May 2 # or Ural'sk 3:00 - +03 1930 Jun 21 5:00 - +05 1981 Apr 1 5:00 1:00 +06 1981 Oct 1 6:00 - +06 1982 Apr 1 5:00 RussiaAsia +05/+06 1989 Mar 26 2:00s 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s 5:00 RussiaAsia +05/+06 1992 Mar 29 2:00s 4:00 RussiaAsia +04/+05 2004 Oct 31 2:00s 5:00 - +05 # Kyrgyzstan (Kirgizstan) # Transitions through 1991 are from Shanks & Pottenger. # From Paul Eggert (2005-08-15): # According to an article dated today in the Kyrgyzstan Development Gateway # http://eng.gateway.kg/cgi-bin/page.pl?id=1&story_name=doc9979.shtml # Kyrgyzstan is canceling the daylight saving time system. I take the article # to mean that they will leave their clocks at 6 hours ahead of UTC. # From Malik Abdugaliev (2005-09-21): # Our government cancels daylight saving time 6th of August 2005. # From 2005-08-12 our GMT-offset is +6, w/o any daylight saving. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Kyrgyz 1992 1996 - Apr Sun>=7 0:00s 1:00 - Rule Kyrgyz 1992 1996 - Sep lastSun 0:00 0 - Rule Kyrgyz 1997 2005 - Mar lastSun 2:30 1:00 - Rule Kyrgyz 1997 2004 - Oct lastSun 2:30 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Bishkek 4:58:24 - LMT 1924 May 2 5:00 - +05 1930 Jun 21 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s 5:00 RussiaAsia +05/+06 1991 Aug 31 2:00 5:00 Kyrgyz +05/+06 2005 Aug 12 6:00 - +06 ############################################################################### # Korea (North and South) # From Annie I. Bang (2006-07-10): # http://www.koreaherald.com/view.php?ud=200607100012 # Korea ran a daylight saving program from 1949-61 but stopped it # during the 1950-53 Korean War. The system was temporarily enforced # between 1987 and 1988 ... # From Sanghyuk Jung (2014-10-29): # https://mm.icann.org/pipermail/tz/2014-October/021830.html # According to the Korean Wikipedia # https://ko.wikipedia.org/wiki/한국_표준시 # [oldid=12896437 2014-09-04 08:03 UTC] # DST in Republic of Korea was as follows.... And I checked old # newspapers in Korean, all articles correspond with data in Wikipedia. # For example, the article in 1948 (Korean Language) proved that DST # started at June 1 in that year. For another example, the article in # 1988 said that DST started at 2:00 AM in that year. # From Phake Nick (2018-10-27): # 1. According to official announcement from Korean government, the DST end # date in South Korea should be # 1955-09-08 without specifying time # http://theme.archives.go.kr/next/common/viewEbook.do?singleData=N&archiveEventId=0027977557 # 1956-09-29 without specifying time # http://theme.archives.go.kr/next/common/viewEbook.do?singleData=N&archiveEventId=0027978341 # 1957-09-21 24 o'clock # http://theme.archives.go.kr/next/common/viewEbook.do?singleData=N&archiveEventId=0027979690#3 # 1958-09-20 24 o'clock # http://theme.archives.go.kr/next/common/viewEbook.do?singleData=N&archiveEventId=0027981189 # 1959-09-19 24 o'clock # http://theme.archives.go.kr/next/common/viewEbook.do?singleData=N&archiveEventId=0027982974#2 # 1960-09-17 24 o'clock # http://theme.archives.go.kr/next/common/viewEbook.do?singleData=N&archiveEventId=0028044104 # ... # 2.... https://namu.wiki/w/대한민국%20표준시 ... [says] # when Korea was using GMT+8:30 as standard time, the international # aviation/marine/meteorological industry in the country refused to # follow and continued to use GMT+9:00 for interoperability. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule ROK 1948 only - Jun 1 0:00 1:00 D Rule ROK 1948 only - Sep 12 24:00 0 S Rule ROK 1949 only - Apr 3 0:00 1:00 D Rule ROK 1949 1951 - Sep Sat>=7 24:00 0 S Rule ROK 1950 only - Apr 1 0:00 1:00 D Rule ROK 1951 only - May 6 0:00 1:00 D Rule ROK 1955 only - May 5 0:00 1:00 D Rule ROK 1955 only - Sep 8 24:00 0 S Rule ROK 1956 only - May 20 0:00 1:00 D Rule ROK 1956 only - Sep 29 24:00 0 S Rule ROK 1957 1960 - May Sun>=1 0:00 1:00 D Rule ROK 1957 1960 - Sep Sat>=17 24:00 0 S Rule ROK 1987 1988 - May Sun>=8 2:00 1:00 D Rule ROK 1987 1988 - Oct Sun>=8 3:00 0 S # From Paul Eggert (2016-08-23): # The Korean Wikipedia entry gives the following sources for UT offsets: # # 1908: Official Journal Article No. 3994 (decree No. 5) # 1912: Governor-General of Korea Official Gazette Issue No. 367 # (Announcement No. 338) # 1954: Presidential Decree No. 876 (1954-03-17) # 1961: Law No. 676 (1961-08-07) # # (Another source "1987: Law No. 3919 (1986-12-31)" was in the 2014-10-30 # edition of the Korean Wikipedia entry.) # # I guessed that time zone abbreviations through 1945 followed the same # rules as discussed under Taiwan, with nominal switches from JST to KST # when the respective cities were taken over by the Allies after WWII. # # For Pyongyang, guess no changes from World War II until 2015, as we # have no information otherwise. # From Steffen Thorsen (2015-08-07): # According to many news sources, North Korea is going to change to # the 8:30 time zone on August 15, one example: # http://www.bbc.com/news/world-asia-33815049 # # From Paul Eggert (2015-08-15): # Bells rang out midnight (00:00) Friday as part of the celebrations. See: # Talmadge E. North Korea celebrates new time zone, 'Pyongyang Time' # http://news.yahoo.com/north-korea-celebrates-time-zone-pyongyang-time-164038128.html # There is no common English-language abbreviation for this time zone. # Use KST, as that's what we already use for 1954-1961 in ROK. # From Kang Seonghoon (2018-04-29): # North Korea will revert its time zone from UTC+8:30 (PYT; Pyongyang # Time) back to UTC+9 (KST; Korea Standard Time). # # From Seo Sanghyeon (2018-04-30): # Rodong Sinmun 2018-04-30 announced Pyongyang Time transition plan. # https://www.nknews.org/kcna/wp-content/uploads/sites/5/2018/04/rodong-2018-04-30.pdf # ... the transition date is 2018-05-05 ... Citation should be Decree # No. 2232 of April 30, 2018, of the Presidium of the Supreme People's # Assembly, as published in Rodong Sinmun. # From Tim Parenti (2018-04-29): # It appears to be the front page story at the top in the right-most column. # # From Paul Eggert (2018-05-04): # The BBC reported that the transition was from 23:30 to 24:00 today. # https://www.bbc.com/news/world-asia-44010705 # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Seoul 8:27:52 - LMT 1908 Apr 1 8:30 - KST 1912 Jan 1 9:00 - JST 1945 Sep 8 9:00 ROK K%sT 1954 Mar 21 8:30 ROK K%sT 1961 Aug 10 9:00 ROK K%sT Zone Asia/Pyongyang 8:23:00 - LMT 1908 Apr 1 8:30 - KST 1912 Jan 1 9:00 - JST 1945 Aug 24 9:00 - KST 2015 Aug 15 00:00 8:30 - KST 2018 May 4 23:30 9:00 - KST ############################################################################### # Kuwait # See Asia/Riyadh. # Laos # See Asia/Bangkok. # Lebanon # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Lebanon 1920 only - Mar 28 0:00 1:00 S Rule Lebanon 1920 only - Oct 25 0:00 0 - Rule Lebanon 1921 only - Apr 3 0:00 1:00 S Rule Lebanon 1921 only - Oct 3 0:00 0 - Rule Lebanon 1922 only - Mar 26 0:00 1:00 S Rule Lebanon 1922 only - Oct 8 0:00 0 - Rule Lebanon 1923 only - Apr 22 0:00 1:00 S Rule Lebanon 1923 only - Sep 16 0:00 0 - Rule Lebanon 1957 1961 - May 1 0:00 1:00 S Rule Lebanon 1957 1961 - Oct 1 0:00 0 - Rule Lebanon 1972 only - Jun 22 0:00 1:00 S Rule Lebanon 1972 1977 - Oct 1 0:00 0 - Rule Lebanon 1973 1977 - May 1 0:00 1:00 S Rule Lebanon 1978 only - Apr 30 0:00 1:00 S Rule Lebanon 1978 only - Sep 30 0:00 0 - Rule Lebanon 1984 1987 - May 1 0:00 1:00 S Rule Lebanon 1984 1991 - Oct 16 0:00 0 - Rule Lebanon 1988 only - Jun 1 0:00 1:00 S Rule Lebanon 1989 only - May 10 0:00 1:00 S Rule Lebanon 1990 1992 - May 1 0:00 1:00 S Rule Lebanon 1992 only - Oct 4 0:00 0 - Rule Lebanon 1993 max - Mar lastSun 0:00 1:00 S Rule Lebanon 1993 1998 - Sep lastSun 0:00 0 - Rule Lebanon 1999 max - Oct lastSun 0:00 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Beirut 2:22:00 - LMT 1880 2:00 Lebanon EE%sT # Malaysia # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule NBorneo 1935 1941 - Sep 14 0:00 0:20 - Rule NBorneo 1935 1941 - Dec 14 0:00 0 - # # For peninsular Malaysia see Asia/Singapore. # # Sabah & Sarawak # From Paul Eggert (2014-08-12): # The data entries here are mostly from Shanks & Pottenger, but the 1942, 1945 # and 1982 transition dates are from Mok Ly Yng. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Kuching 7:21:20 - LMT 1926 Mar 7:30 - +0730 1933 8:00 NBorneo +08/+0820 1942 Feb 16 9:00 - +09 1945 Sep 12 8:00 - +08 Link Asia/Kuching Asia/Brunei # Maldives # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Indian/Maldives 4:54:00 - LMT 1880 # Malé 4:54:00 - MMT 1960 # Malé Mean Time 5:00 - +05 Link Indian/Maldives Indian/Kerguelen # Mongolia # Shanks & Pottenger say that Mongolia has three time zones, but # The USNO (1995-12-21) and the CIA map Standard Time Zones of the World # (2005-03) both say that it has just one. # From Oscar van Vlijmen (1999-12-11): # General Information Mongolia # (1999-09) # "Time: Mongolia has two time zones. Three westernmost provinces of # Bayan-Ölgii, Uvs, and Hovd are one hour earlier than the capital city, and # the rest of the country follows the Ulaanbaatar time, which is UTC/GMT plus # eight hours." # From Rives McDow (1999-12-13): # Mongolia discontinued the use of daylight savings time in 1999; 1998 # being the last year it was implemented. The dates of implementation I am # unsure of, but most probably it was similar to Russia, except for the time # of implementation may have been different.... # Some maps in the past have indicated that there was an additional time # zone in the eastern part of Mongolia, including the provinces of Dornod, # Sükhbaatar, and possibly Khentii. # From Paul Eggert (1999-12-15): # Naming and spelling is tricky in Mongolia. # We'll use Hovd (also spelled Chovd and Khovd) to represent the west zone; # the capital of the Hovd province is sometimes called Hovd, sometimes Dund-Us, # and sometimes Jirgalanta (with variant spellings), but the name Hovd # is good enough for our purposes. # From Rives McDow (2001-05-13): # In addition to Mongolia starting daylight savings as reported earlier # (adopted DST on 2001-04-27 02:00 local time, ending 2001-09-28), # there are three time zones. # # Provinces [at 7:00]: Bayan-Ölgii, Uvs, Khovd, Zavkhan, Govi-Altai # Provinces [at 8:00]: Khövsgöl, Bulgan, Arkhangai, Khentii, Töv, # Bayankhongor, Övörkhangai, Dundgovi, Dornogovi, Ömnögovi # Provinces [at 9:00]: Dornod, Sükhbaatar # # [The province of Selenge is omitted from the above lists.] # From Ganbold Ts., Ulaanbaatar (2004-04-17): # Daylight saving occurs at 02:00 local time last Saturday of March. # It will change back to normal at 02:00 local time last Saturday of # September.... As I remember this rule was changed in 2001. # # From Paul Eggert (2004-04-17): # For now, assume Rives McDow's informant got confused about Friday vs # Saturday, and that his 2001 dates should have 1 added to them. # From Paul Eggert (2005-07-26): # We have wildly conflicting information about Mongolia's time zones. # Bill Bonnet (2005-05-19) reports that the US Embassy in Ulaanbaatar says # there is only one time zone and that DST is observed, citing Microsoft # Windows XP as the source. Risto Nykänen (2005-05-16) reports that # travelmongolia.org says there are two time zones (UT +07, +08) with no DST. # Oscar van Vlijmen (2005-05-20) reports that the Mongolian Embassy in # Washington, DC says there are two time zones, with DST observed. # He also found # http://ubpost.mongolnews.mn/index.php?subaction=showcomments&id=1111634894&archive=&start_from=&ucat=1& # which also says that there is DST, and which has a comment by "Toddius" # (2005-03-31 06:05 +0700) saying "Mongolia actually has 3.5 time zones. # The West (OLGII) is +7 GMT, most of the country is ULAT is +8 GMT # and some Eastern provinces are +9 GMT but Sükhbaatar Aimag is SUHK +8.5 GMT. # The SUKH timezone is new this year, it is one of the few things the # parliament passed during the tumultuous winter session." # For now, let's ignore this information, until we have more confirmation. # From Ganbold Ts. (2007-02-26): # Parliament of Mongolia has just changed the daylight-saving rule in February. # They decided not to adopt daylight-saving time.... # http://www.mongolnews.mn/index.php?module=unuudur&sec=view&id=15742 # From Deborah Goldsmith (2008-03-30): # We received a bug report claiming that the tz database UTC offset for # Asia/Choibalsan (GMT+09:00) is incorrect, and that it should be GMT # +08:00 instead. Different sources appear to disagree with the tz # database on this, e.g.: # # https://www.timeanddate.com/worldclock/city.html?n=1026 # http://www.worldtimeserver.com/current_time_in_MN.aspx # # both say GMT+08:00. # From Steffen Thorsen (2008-03-31): # eznis airways, which operates several domestic flights, has a flight # schedule here: # http://www.eznis.com/Container.jsp?id=112 # (click the English flag for English) # # There it appears that flights between Choibalsan and Ulaanbaatar arrive # about 1:35 - 1:50 hours later in local clock time, no matter the # direction, while Ulaanbaatar-Khovd takes 2 hours in the Eastern # direction and 3:35 back, which indicates that Ulaanbaatar and Khovd are # in different time zones (like we know about), while Choibalsan and # Ulaanbaatar are in the same time zone (correction needed). # From Arthur David Olson (2008-05-19): # Assume that Choibalsan is indeed offset by 8:00. # XXX--in the absence of better information, assume that transition # was at the start of 2008-03-31 (the day of Steffen Thorsen's report); # this is almost surely wrong. # From Ganbold Tsagaankhuu (2015-03-10): # It seems like yesterday Mongolian Government meeting has concluded to use # daylight saving time in Mongolia.... Starting at 2:00AM of last Saturday of # March 2015, daylight saving time starts. And 00:00AM of last Saturday of # September daylight saving time ends. Source: # http://zasag.mn/news/view/8969 # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Mongol 1983 1984 - Apr 1 0:00 1:00 - Rule Mongol 1983 only - Oct 1 0:00 0 - # Shanks & Pottenger and IATA SSIM say 1990s switches occurred at 00:00, # but McDow says the 2001 switches occurred at 02:00. Also, IATA SSIM # (1996-09) says 1996-10-25. Go with Shanks & Pottenger through 1998. # # Shanks & Pottenger say that the Sept. 1984 through Sept. 1990 switches # in Choibalsan (more precisely, in Dornod and Sükhbaatar) took place # at 02:00 standard time, not at 00:00 local time as in the rest of # the country. That would be odd, and possibly is a result of their # correction of 02:00 (in the previous edition) not being done correctly # in the latest edition; so ignore it for now. # From Ganbold Tsagaankhuu (2017-02-09): # Mongolian Government meeting has concluded today to cancel daylight # saving time adoption in Mongolia. Source: http://zasag.mn/news/view/16192 Rule Mongol 1985 1998 - Mar lastSun 0:00 1:00 - Rule Mongol 1984 1998 - Sep lastSun 0:00 0 - # IATA SSIM (1999-09) says Mongolia no longer observes DST. Rule Mongol 2001 only - Apr lastSat 2:00 1:00 - Rule Mongol 2001 2006 - Sep lastSat 2:00 0 - Rule Mongol 2002 2006 - Mar lastSat 2:00 1:00 - Rule Mongol 2015 2016 - Mar lastSat 2:00 1:00 - Rule Mongol 2015 2016 - Sep lastSat 0:00 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] # Hovd, a.k.a. Chovd, Dund-Us, Dzhargalant, Khovd, Jirgalanta Zone Asia/Hovd 6:06:36 - LMT 1905 Aug 6:00 - +06 1978 7:00 Mongol +07/+08 # Ulaanbaatar, a.k.a. Ulan Bataar, Ulan Bator, Urga Zone Asia/Ulaanbaatar 7:07:32 - LMT 1905 Aug 7:00 - +07 1978 8:00 Mongol +08/+09 # Choibalsan, a.k.a. Bajan Tümen, Bajan Tumen, Chojbalsan, # Choybalsan, Sanbejse, Tchoibalsan Zone Asia/Choibalsan 7:38:00 - LMT 1905 Aug 7:00 - +07 1978 8:00 - +08 1983 Apr 9:00 Mongol +09/+10 2008 Mar 31 8:00 Mongol +08/+09 # Nepal # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Kathmandu 5:41:16 - LMT 1920 5:30 - +0530 1986 5:45 - +0545 # Oman # See Asia/Dubai. # Pakistan # From Rives McDow (2002-03-13): # I have been advised that Pakistan has decided to adopt dst on a # TRIAL basis for one year, starting 00:01 local time on April 7, 2002 # and ending at 00:01 local time October 6, 2002. This is what I was # told, but I believe that the actual time of change may be 00:00; the # 00:01 was to make it clear which day it was on. # From Paul Eggert (2002-03-15): # Jesper Nørgaard found this URL: # http://www.pak.gov.pk/public/news/app/app06_dec.htm # (dated 2001-12-06) which says that the Cabinet adopted a scheme "to # advance the clocks by one hour on the night between the first # Saturday and Sunday of April and revert to the original position on # 15th October each year". This agrees with McDow's 04-07 at 00:00, # but disagrees about the October transition, and makes it sound like # it's not on a trial basis. Also, the "between the first Saturday # and Sunday of April" phrase, if taken literally, means that the # transition takes place at 00:00 on the first Sunday on or after 04-02. # From Paul Eggert (2003-02-09): # DAWN reported on 2002-10-05 # that 2002 DST ended that day at midnight. Go with McDow for now. # From Steffen Thorsen (2003-03-14): # According to http://www.dawn.com/2003/03/07/top15.htm # there will be no DST in Pakistan this year: # # ISLAMABAD, March 6: Information and Media Development Minister Sheikh # Rashid Ahmed on Thursday said the cabinet had reversed a previous # decision to advance clocks by one hour in summer and put them back by # one hour in winter with the aim of saving light hours and energy. # # The minister told a news conference that the experiment had rather # shown 8 per cent higher consumption of electricity. # From Alex Krivenyshev (2008-05-15): # # Here is an article that Pakistan plan to introduce Daylight Saving Time # on June 1, 2008 for 3 months. # # "... The federal cabinet on Wednesday announced a new conservation plan to # help reduce load shedding by approving the closure of commercial centres at # 9pm and moving clocks forward by one hour for the next three months. ...." # # http://www.worldtimezone.com/dst_news/dst_news_pakistan01.html # http://www.dailytimes.com.pk/default.asp?page=2008%5C05%5C15%5Cstory_15-5-2008_pg1_4 # From Arthur David Olson (2008-05-19): # XXX--midnight transitions is a guess; 2008 only is a guess. # From Alexander Krivenyshev (2008-08-28): # Pakistan government has decided to keep the watches one-hour advanced # for another 2 months - plan to return to Standard Time on October 31 # instead of August 31. # # http://www.worldtimezone.com/dst_news/dst_news_pakistan02.html # http://dailymailnews.com/200808/28/news/dmbrn03.html # From Alexander Krivenyshev (2009-04-08): # Based on previous media reports that "... proposed plan to # advance clocks by one hour from May 1 will cause disturbance # to the working schedules rather than bringing discipline in # official working." # http://www.thenews.com.pk/daily_detail.asp?id=171280 # # recent news that instead of May 2009 - Pakistan plan to # introduce DST from April 15, 2009 # # FYI: Associated Press Of Pakistan # April 08, 2009 # Cabinet okays proposal to advance clocks by one hour from April 15 # http://www.app.com.pk/en_/index.php?option=com_content&task=view&id=73043&Itemid=1 # http://www.worldtimezone.com/dst_news/dst_news_pakistan05.html # # .... # The Federal Cabinet on Wednesday approved the proposal to # advance clocks in the country by one hour from April 15 to # conserve energy" # From Steffen Thorsen (2009-09-17): # "The News International," Pakistan reports that: "The Federal # Government has decided to restore the previous time by moving the # clocks backward by one hour from October 1. A formal announcement to # this effect will be made after the Prime Minister grants approval in # this regard." # http://www.thenews.com.pk/updates.asp?id=87168 # From Alexander Krivenyshev (2009-09-28): # According to Associated Press Of Pakistan, it is confirmed that # Pakistan clocks across the country would be turned back by an hour from # October 1, 2009. # # "Clocks to go back one hour from 1 Oct" # http://www.app.com.pk/en_/index.php?option=com_content&task=view&id=86715&Itemid=2 # http://www.worldtimezone.com/dst_news/dst_news_pakistan07.htm # # From Steffen Thorsen (2009-09-29): # Now they seem to have changed their mind, November 1 is the new date: # http://www.thenews.com.pk/top_story_detail.asp?Id=24742 # "The country's clocks will be reversed by one hour on November 1. # Officials of Federal Ministry for Interior told this to Geo News on # Monday." # # And more importantly, it seems that these dates will be kept every year: # "It has now been decided that clocks will be wound forward by one hour # on April 15 and reversed by an hour on November 1 every year without # obtaining prior approval, the officials added." # # We have confirmed this year's end date with both with the Ministry of # Water and Power and the Pakistan Electric Power Company: # https://www.timeanddate.com/news/time/pakistan-ends-dst09.html # From Christoph Göhre (2009-10-01): # [T]he German Consulate General in Karachi reported me today that Pakistan # will go back to standard time on 1st of November. # From Steffen Thorsen (2010-03-26): # Steffen Thorsen wrote: # > On Thursday (2010-03-25) it was announced that DST would start in # > Pakistan on 2010-04-01. # > # > Then today, the president said that they might have to revert the # > decision if it is not supported by the parliament. So at the time # > being, it seems unclear if DST will be actually observed or not - but # > April 1 could be a more likely date than April 15. # Now, it seems that the decision to not observe DST in final: # # "Govt Withdraws Plan To Advance Clocks" # http://www.apakistannews.com/govt-withdraws-plan-to-advance-clocks-172041 # # "People laud PM's announcement to end DST" # http://www.app.com.pk/en_/index.php?option=com_content&task=view&id=99374&Itemid=2 # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Pakistan 2002 only - Apr Sun>=2 0:00 1:00 S Rule Pakistan 2002 only - Oct Sun>=2 0:00 0 - Rule Pakistan 2008 only - Jun 1 0:00 1:00 S Rule Pakistan 2008 2009 - Nov 1 0:00 0 - Rule Pakistan 2009 only - Apr 15 0:00 1:00 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Karachi 4:28:12 - LMT 1907 5:30 - +0530 1942 Sep 5:30 1:00 +0630 1945 Oct 15 5:30 - +0530 1951 Sep 30 5:00 - +05 1971 Mar 26 5:00 Pakistan PK%sT # Pakistan Time # Palestine # From Amos Shapir (1998-02-15): # # From 1917 until 1948-05-15, all of Palestine, including the parts now # known as the Gaza Strip and the West Bank, was under British rule. # Therefore the rules given for Israel for that period, apply there too... # # The Gaza Strip was under Egyptian rule between 1948-05-15 until 1967-06-05 # (except a short occupation by Israel from 1956-11 till 1957-03, but no # time zone was affected then). It was never formally annexed to Egypt, # though. # # The rest of Palestine was under Jordanian rule at that time, formally # annexed in 1950 as the West Bank (and the word "Trans" was dropped from # the country's previous name of "the Hashemite Kingdom of the # Trans-Jordan"). So the rules for Jordan for that time apply. Major # towns in that area are Nablus (Shchem), El-Halil (Hebron), Ramallah, and # East Jerusalem. # # Both areas were occupied by Israel in June 1967, but not annexed (except # for East Jerusalem). They were on Israel time since then; there might # have been a Military Governor's order about time zones, but I'm not aware # of any (such orders may have been issued semi-annually whenever summer # time was in effect, but maybe the legal aspect of time was just neglected). # # The Palestinian Authority was established in 1993, and got hold of most # towns in the West Bank and Gaza by 1995. I know that in order to # demonstrate...independence, they have been switching to # summer time and back on a different schedule than Israel's, but I don't # know when this was started, or what algorithm is used (most likely the # Jordanian one). # # To summarize, the table should probably look something like that: # # Area \ when | 1918-1947 | 1948-1967 | 1967-1995 | 1996- # ------------+-----------+-----------+-----------+----------- # Israel | Zion | Zion | Zion | Zion # West bank | Zion | Jordan | Zion | Jordan # Gaza | Zion | Egypt | Zion | Jordan # # I guess more info may be available from the PA's web page (if/when they # have one). # From Paul Eggert (2006-03-22): # Shanks & Pottenger write that Gaza did not observe DST until 1957, but go # with Shapir and assume that it observed DST from 1940 through 1947, # and that it used Jordanian rules starting in 1996. # We don't yet need a separate entry for the West Bank, since # the only differences between it and Gaza that we know about # occurred before our cutoff date of 1970. # However, as we get more information, we may need to add entries # for parts of the West Bank as they transitioned from Israel's rules # to Palestine's rules. # From IINS News Service - Israel - 1998-03-23 10:38:07 Israel time, # forwarded by Ephraim Silverberg: # # Despite the fact that Israel changed over to daylight savings time # last week, the PLO Authority (PA) has decided not to turn its clocks # one-hour forward at this time. As a sign of independence from Israeli rule, # the PA has decided to implement DST in April. # From Paul Eggert (1999-09-20): # Daoud Kuttab writes in Holiday havoc # http://www.jpost.com/com/Archive/22.Apr.1999/Opinion/Article-2.html # (Jerusalem Post, 1999-04-22) that # the Palestinian National Authority changed to DST on 1999-04-15. # I vaguely recall that they switch back in October (sorry, forgot the source). # For now, let's assume that the spring switch was at 24:00, # and that they switch at 0:00 on the 3rd Fridays of April and October. # From Paul Eggert (2005-11-22): # Starting 2004 transitions are from Steffen Thorsen's web site timeanddate.com. # From Steffen Thorsen (2005-11-23): # A user from Gaza reported that Gaza made the change early because of # the Ramadan. Next year Ramadan will be even earlier, so I think # there is a good chance next year's end date will be around two weeks # earlier - the same goes for Jordan. # From Steffen Thorsen (2006-08-17): # I was informed by a user in Bethlehem that in Bethlehem it started the # same day as Israel, and after checking with other users in the area, I # was informed that they started DST one day after Israel. I was not # able to find any authoritative sources at the time, nor details if # Gaza changed as well, but presumed Gaza to follow the same rules as # the West Bank. # From Steffen Thorsen (2006-09-26): # according to the Palestine News Network (2006-09-19): # http://english.pnn.ps/index.php?option=com_content&task=view&id=596&Itemid=5 # > The Council of Ministers announced that this year its winter schedule # > will begin early, as of midnight Thursday. It is also time to turn # > back the clocks for winter. Friday will begin an hour late this week. # I guess it is likely that next year's date will be moved as well, # because of the Ramadan. # From Jesper Nørgaard Welen (2007-09-18): # According to Steffen Thorsen's web site the Gaza Strip and the rest of the # Palestinian territories left DST early on 13.th. of September at 2:00. # From Paul Eggert (2007-09-20): # My understanding is that Gaza and the West Bank disagree even over when # the weekend is (Thursday+Friday versus Friday+Saturday), so I'd be a bit # surprised if they agreed about DST. But for now, assume they agree. # For lack of better information, predict that future changes will be # the 2nd Thursday of September at 02:00. # From Alexander Krivenyshev (2008-08-28): # Here is an article, that Mideast running on different clocks at Ramadan. # # Gaza Strip (as Egypt) ended DST at midnight Thursday (Aug 28, 2008), while # the West Bank will end Daylight Saving Time at midnight Sunday (Aug 31, 2008). # # http://www.guardian.co.uk/world/feedarticle/7759001 # http://www.abcnews.go.com/International/wireStory?id=5676087 # http://www.worldtimezone.com/dst_news/dst_news_gazastrip01.html # From Alexander Krivenyshev (2009-03-26): # According to the Palestine News Network (arabic.pnn.ps), Palestinian # government decided to start Daylight Time on Thursday night March # 26 and continue until the night of 27 September 2009. # # (in Arabic) # http://arabic.pnn.ps/index.php?option=com_content&task=view&id=50850 # # (English translation) # http://www.worldtimezone.com/dst_news/dst_news_westbank01.html # From Steffen Thorsen (2009-08-31): # Palestine's Council of Ministers announced that they will revert back to # winter time on Friday, 2009-09-04. # # One news source: # http://www.safa.ps/ara/?action=showdetail&seid=4158 # (Palestinian press agency, Arabic), # Google translate: "Decided that the Palestinian government in Ramallah # headed by Salam Fayyad, the start of work in time for the winter of # 2009, starting on Friday approved the fourth delay Sept. clock sixty # minutes per hour as of Friday morning." # # We are not sure if Gaza will do the same, last year they had a different # end date, we will keep this page updated: # https://www.timeanddate.com/news/time/westbank-gaza-dst-2009.html # From Alexander Krivenyshev (2009-09-02): # Seems that Gaza Strip will go back to Winter Time same date as West Bank. # # According to Palestinian Ministry Of Interior, West Bank and Gaza Strip plan # to change time back to Standard time on September 4, 2009. # # "Winter time unite the West Bank and Gaza" # (from Palestinian National Authority): # http://www.moi.gov.ps/en/?page=633167343250594025&nid=11505 # http://www.worldtimezone.com/dst_news/dst_news_gazastrip02.html # From Alexander Krivenyshev (2010-03-19): # According to Voice of Palestine DST will last for 191 days, from March # 26, 2010 till "the last Sunday before the tenth day of Tishri # (October), each year" (October 03, 2010?) # # http://palvoice.org/forums/showthread.php?t=245697 # (in Arabic) # http://www.worldtimezone.com/dst_news/dst_news_westbank03.html # From Steffen Thorsen (2010-03-24): # ...Ma'an News Agency reports that Hamas cabinet has decided it will # start one day later, at 12:01am. Not sure if they really mean 12:01am or # noon though: # # http://www.maannews.net/eng/ViewDetails.aspx?ID=271178 # (Ma'an News Agency) # "At 12:01am Friday, clocks in Israel and the West Bank will change to # 1:01am, while Gaza clocks will change at 12:01am Saturday morning." # From Steffen Thorsen (2010-08-11): # According to several sources, including # http://www.maannews.net/eng/ViewDetails.aspx?ID=306795 # the clocks were set back one hour at 2010-08-11 00:00:00 local time in # Gaza and the West Bank. # Some more background info: # https://www.timeanddate.com/news/time/westbank-gaza-end-dst-2010.html # From Steffen Thorsen (2011-08-26): # Gaza and the West Bank did go back to standard time in the beginning of # August, and will now enter daylight saving time again on 2011-08-30 # 00:00 (so two periods of DST in 2011). The pause was because of # Ramadan. # # http://www.maannews.net/eng/ViewDetails.aspx?ID=416217 # Additional info: # https://www.timeanddate.com/news/time/palestine-dst-2011.html # From Alexander Krivenyshev (2011-08-27): # According to the article in The Jerusalem Post: # "...Earlier this month, the Palestinian government in the West Bank decided to # move to standard time for 30 days, during Ramadan. The Palestinians in the # Gaza Strip accepted the change and also moved their clocks one hour back. # The Hamas government said on Saturday that it won't observe summertime after # the Muslim feast of Id al-Fitr, which begins on Tuesday..." # ... # https://www.jpost.com/MiddleEast/Article.aspx?id=235650 # http://www.worldtimezone.com/dst_news/dst_news_gazastrip05.html # The rules for Egypt are stolen from the 'africa' file. # From Steffen Thorsen (2011-09-30): # West Bank did end Daylight Saving Time this morning/midnight (2011-09-30 # 00:00). # So West Bank and Gaza now have the same time again. # # Many sources, including: # http://www.maannews.net/eng/ViewDetails.aspx?ID=424808 # From Steffen Thorsen (2012-03-26): # Palestinian news sources tell that both Gaza and West Bank will start DST # on Friday (Thursday midnight, 2012-03-29 24:00). # Some of many sources in Arabic: # http://www.samanews.com/index.php?act=Show&id=122638 # # http://safa.ps/details/news/74352/%D8%A8%D8%AF%D8%A1-%D8%A7%D9%84%D8%AA%D9%88%D9%82%D9%8A%D8%AA-%D8%A7%D9%84%D8%B5%D9%8A%D9%81%D9%8A-%D8%A8%D8%A7%D9%84%D8%B6%D9%81%D8%A9-%D9%88%D8%BA%D8%B2%D8%A9-%D9%84%D9%8A%D9%84%D8%A9-%D8%A7%D9%84%D8%AC%D9%85%D8%B9%D8%A9.html # # Our brief summary: # https://www.timeanddate.com/news/time/gaza-west-bank-dst-2012.html # From Steffen Thorsen (2013-03-26): # The following news sources tells that Palestine will "start daylight saving # time from midnight on Friday, March 29, 2013" (translated). # [These are in Arabic and are for Gaza and for Ramallah, respectively.] # http://www.samanews.com/index.php?act=Show&id=154120 # http://safa.ps/details/news/99844/%D8%B1%D8%A7%D9%85-%D8%A7%D9%84%D9%84%D9%87-%D8%A8%D8%AF%D8%A1-%D8%A7%D9%84%D8%AA%D9%88%D9%82%D9%8A%D8%AA-%D8%A7%D9%84%D8%B5%D9%8A%D9%81%D9%8A-29-%D8%A7%D9%84%D8%AC%D8%A7%D8%B1%D9%8A.html # From Steffen Thorsen (2013-09-24): # The Gaza and West Bank are ending DST Thursday at midnight # (2013-09-27 00:00:00) (one hour earlier than last year...). # This source in English, says "that winter time will go into effect # at midnight on Thursday in the West Bank and Gaza Strip": # http://english.wafa.ps/index.php?action=detail&id=23246 # official source...: # http://www.palestinecabinet.gov.ps/ar/Views/ViewDetails.aspx?pid=1252 # From Steffen Thorsen (2015-03-03): # Sources such as http://www.alquds.com/news/article/view/id/548257 # and https://www.raya.ps/ar/news/890705.html say Palestine areas will # start DST on 2015-03-28 00:00 which is one day later than expected. # # From Paul Eggert (2015-03-03): # https://www.timeanddate.com/time/change/west-bank/ramallah?year=2014 # says that the fall 2014 transition was Oct 23 at 24:00. # From Hannah Kreitem (2016-03-09): # http://www.palestinecabinet.gov.ps/WebSite/ar/ViewDetails?ID=31728 # [Google translation]: "The Council also decided to start daylight # saving in Palestine as of one o'clock on Saturday morning, # 2016-03-26, to provide the clock 60 minutes ahead." # From Sharef Mustafa (2016-10-19): # [T]he Palestinian cabinet decision (Mar 8th 2016) published on # http://www.palestinecabinet.gov.ps/WebSite/Upload/Decree/GOV_17/16032016134830.pdf # states that summer time will end on Oct 29th at 01:00. # From Sharef Mustafa (2018-03-16): # Palestine summer time will start on Mar 24th 2018 ... # http://www.palestinecabinet.gov.ps/Website/AR/NDecrees/ViewFile.ashx?ID=e7a42ab7-ee23-435a-b9c8-a4f7e81f3817 # From Even Scharning (2019-03-23): # http://pnn.ps/news/401130 # http://palweather.ps/ar/node/50136.html # # From Sharif Mustafa (2019-03-26): # The Palestinian cabinet announced today that the switch to DST will # be on Fri Mar 29th 2019 by advancing the clock by 60 minutes. # http://palestinecabinet.gov.ps/Website/AR/NDecrees/ViewFile.ashx?ID=e54e9ea1-50ee-4137-84df-0d6c78da259b # # From Even Scharning (2019-04-10): # Our source in Palestine said it happened Friday 29 at 00:00 local time.... # From Sharef Mustafa (2019-10-18): # Palestine summer time will end on midnight Oct 26th 2019 ... # # From Steffen Thorsen (2020-10-20): # Some sources such as these say, and display on clocks, that DST ended at # midnight last year... # https://www.amad.ps/ar/post/320006 # # From Tim Parenti (2020-10-20): # The report of the Palestinian Cabinet meeting of 2019-10-14 confirms # a decision on (translated): "The start of the winter time in Palestine, by # delaying the clock by sixty minutes, starting from midnight on Friday / # Saturday corresponding to 26/10/2019." # http://www.palestinecabinet.gov.ps/portal/meeting/details/43948 # From Sharef Mustafa (2020-10-20): # As per the palestinian cabinet announcement yesterday , the day light saving # shall [end] on Oct 24th 2020 at 01:00AM by delaying the clock by 60 minutes. # http://www.palestinecabinet.gov.ps/portal/Meeting/Details/51584 # From Pierre Cashon (2020-10-20): # The summer time this year started on March 28 at 00:00. # https://wafa.ps/ar_page.aspx?id=GveQNZa872839351758aGveQNZ # http://www.palestinecabinet.gov.ps/portal/meeting/details/50284 # The winter time in 2015 started on October 23 at 01:00. # https://wafa.ps/ar_page.aspx?id=CgpCdYa670694628582aCgpCdY # http://www.palestinecabinet.gov.ps/portal/meeting/details/27583 # # From Paul Eggert (2019-04-10): # For now, guess spring-ahead transitions are at 00:00 on the Saturday # preceding March's last Sunday (i.e., Sat>=24). # From P Chan (2021-10-18): # http://wafa.ps/Pages/Details/34701 # Palestine winter time will start from midnight 2021-10-29 (Thursday-Friday). # # From Heba Hemad, Palestine Ministry of Telecom & IT (2021-10-20): # ... winter time will begin in Palestine from Friday 10-29, 01:00 AM # by 60 minutes backwards. # # From Tim Parenti (2021-10-25), per Paul Eggert (2021-10-24): # Guess future fall transitions at 01:00 on the Friday preceding October's # last Sunday (i.e., Fri>=23), as this is more consistent with recent practice. # From Heba Hamad (2022-03-10): # summer time will begin in Palestine from Sunday 03-27-2022, 00:00 AM. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule EgyptAsia 1957 only - May 10 0:00 1:00 S Rule EgyptAsia 1957 1958 - Oct 1 0:00 0 - Rule EgyptAsia 1958 only - May 1 0:00 1:00 S Rule EgyptAsia 1959 1967 - May 1 1:00 1:00 S Rule EgyptAsia 1959 1965 - Sep 30 3:00 0 - Rule EgyptAsia 1966 only - Oct 1 3:00 0 - Rule Palestine 1999 2005 - Apr Fri>=15 0:00 1:00 S Rule Palestine 1999 2003 - Oct Fri>=15 0:00 0 - Rule Palestine 2004 only - Oct 1 1:00 0 - Rule Palestine 2005 only - Oct 4 2:00 0 - Rule Palestine 2006 2007 - Apr 1 0:00 1:00 S Rule Palestine 2006 only - Sep 22 0:00 0 - Rule Palestine 2007 only - Sep 13 2:00 0 - Rule Palestine 2008 2009 - Mar lastFri 0:00 1:00 S Rule Palestine 2008 only - Sep 1 0:00 0 - Rule Palestine 2009 only - Sep 4 1:00 0 - Rule Palestine 2010 only - Mar 26 0:00 1:00 S Rule Palestine 2010 only - Aug 11 0:00 0 - Rule Palestine 2011 only - Apr 1 0:01 1:00 S Rule Palestine 2011 only - Aug 1 0:00 0 - Rule Palestine 2011 only - Aug 30 0:00 1:00 S Rule Palestine 2011 only - Sep 30 0:00 0 - Rule Palestine 2012 2014 - Mar lastThu 24:00 1:00 S Rule Palestine 2012 only - Sep 21 1:00 0 - Rule Palestine 2013 only - Sep 27 0:00 0 - Rule Palestine 2014 only - Oct 24 0:00 0 - Rule Palestine 2015 only - Mar 28 0:00 1:00 S Rule Palestine 2015 only - Oct 23 1:00 0 - Rule Palestine 2016 2018 - Mar Sat>=24 1:00 1:00 S Rule Palestine 2016 2018 - Oct Sat>=24 1:00 0 - Rule Palestine 2019 only - Mar 29 0:00 1:00 S Rule Palestine 2019 only - Oct Sat>=24 0:00 0 - Rule Palestine 2020 2021 - Mar Sat>=24 0:00 1:00 S Rule Palestine 2020 only - Oct 24 1:00 0 - Rule Palestine 2021 max - Oct Fri>=23 1:00 0 - Rule Palestine 2022 max - Mar Sun>=25 0:00 1:00 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Gaza 2:17:52 - LMT 1900 Oct 2:00 Zion EET/EEST 1948 May 15 2:00 EgyptAsia EE%sT 1967 Jun 5 2:00 Zion I%sT 1996 2:00 Jordan EE%sT 1999 2:00 Palestine EE%sT 2008 Aug 29 0:00 2:00 - EET 2008 Sep 2:00 Palestine EE%sT 2010 2:00 - EET 2010 Mar 27 0:01 2:00 Palestine EE%sT 2011 Aug 1 2:00 - EET 2012 2:00 Palestine EE%sT Zone Asia/Hebron 2:20:23 - LMT 1900 Oct 2:00 Zion EET/EEST 1948 May 15 2:00 EgyptAsia EE%sT 1967 Jun 5 2:00 Zion I%sT 1996 2:00 Jordan EE%sT 1999 2:00 Palestine EE%sT # Paracel Is # no information # Philippines # From Paul Eggert (2018-11-18): # The Spanish initially used American (west-of-Greenwich) time. # It is unknown what time Manila kept when the British occupied it from # 1762-10-06 through 1764-04; for now assume it kept American time. # On 1844-08-16, Narciso Clavería, governor-general of the # Philippines, issued a proclamation announcing that 1844-12-30 was to # be immediately followed by 1845-01-01; see R.H. van Gent's # History of the International Date Line # https://www.staff.science.uu.nl/~gent0113/idl/idl_philippines.htm # The rest of the data entries are from Shanks & Pottenger. # From Jesper Nørgaard Welen (2006-04-26): # ... claims that Philippines had DST last time in 1990: # http://story.philippinetimes.com/p.x/ct/9/id/145be20cc6b121c0/cid/3e5bbccc730d258c/ # [a story dated 2006-04-25 by Cris Larano of Dow Jones Newswires, # but no details] # From Paul Eggert (2014-08-14): # The following source says DST may be instituted November-January and again # March-June, but this is not definite. It also says DST was last proclaimed # during the Ramos administration (1992-1998); but again, no details. # Carcamo D. PNoy urged to declare use of daylight saving time. # Philippine Star 2014-08-05 # http://www.philstar.com/headlines/2014/08/05/1354152/pnoy-urged-declare-use-daylight-saving-time # From Paul Goyette (2018-06-15): # In the Philippines, there is a national law, Republic Act No. 10535 # which declares the official time here as "Philippine Standard Time". # The act [1] even specifies use of PST as the abbreviation, although # the FAQ provided by PAGASA [2] uses the "acronym PhST to distinguish # it from the Pacific Standard Time (PST)." # [1] http://www.officialgazette.gov.ph/2013/05/15/republic-act-no-10535/ # [2] https://www1.pagasa.dost.gov.ph/index.php/astronomy/philippine-standard-time#republic-act-10535 # # From Paul Eggert (2018-06-19): # I surveyed recent news reports, and my impression is that "PST" is # more popular among reliable English-language news sources. This is # not just a measure of Google hit counts: it's also the sizes and # influence of the sources. There is no current abbreviation for DST, # so use "PDT", the usual American style. # From P Chan (2021-05-10): # Here's a fairly comprehensive article in Japanese: # https://wiki.suikawiki.org/n/Philippine%20Time # From Paul Eggert (2021-05-10): # The info in the Japanese table has not been absorbed (yet) below. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Phil 1936 only - Nov 1 0:00 1:00 D Rule Phil 1937 only - Feb 1 0:00 0 S Rule Phil 1954 only - Apr 12 0:00 1:00 D Rule Phil 1954 only - Jul 1 0:00 0 S Rule Phil 1978 only - Mar 22 0:00 1:00 D Rule Phil 1978 only - Sep 21 0:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Manila -15:56:00 - LMT 1844 Dec 31 8:04:00 - LMT 1899 May 11 8:00 Phil P%sT 1942 May 9:00 - JST 1944 Nov 8:00 Phil P%sT # Qatar # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Qatar 3:26:08 - LMT 1920 # Al Dawhah / Doha 4:00 - +04 1972 Jun 3:00 - +03 Link Asia/Qatar Asia/Bahrain # Saudi Arabia # # From Paul Eggert (2018-08-29): # Time in Saudi Arabia and other countries in the Arabian peninsula was not # standardized until 1968 or so; we don't know exactly when, and possibly it # has never been made official. Richard P Hunt, in "Islam city yielding to # modern times", New York Times (1961-04-09), p 20, wrote that only airlines # observed standard time, and that people in Jeddah mostly observed quasi-solar # time, doing so by setting their watches at sunrise to 6 o'clock (or to 12 # o'clock for "Arab" time). # # Timekeeping differed depending on who you were and which part of Saudi # Arabia you were in. In 1969, Elias Antar wrote that although a common # practice had been to set one's watch to 12:00 (i.e., midnight) at sunset - # which meant that the time on one side of a mountain could differ greatly from # the time on the other side - many foreigners set their watches to 6pm # instead, while airlines instead used UTC +03 (except in Dhahran, where they # used UTC +04), Aramco used UTC +03 with DST, and the Trans-Arabian Pipe Line # Company used Aramco time in eastern Saudi Arabia and airline time in western. # (The American Military Aid Advisory Group used plain UTC.) Antar writes, # "A man named Higgins, so the story goes, used to run a local power # station. One day, the whole thing became too much for Higgins and he # assembled his staff and laid down the law. 'I've had enough of this,' he # shrieked. 'It is now 12 o'clock Higgins Time, and from now on this station is # going to run on Higgins Time.' And so, until last year, it did." See: # Antar E. Dinner at When? Saudi Aramco World, 1969 March/April. 2-3. # http://archive.aramcoworld.com/issue/196902/dinner.at.when.htm # Also see: Antar EN. Arabian flying is confusing. # Port Angeles (WA) Evening News. 1965-03-10. page 3. # # The TZ database cannot represent quasi-solar time; airline time is the best # we can do. The 1946 foreign air news digest of the U.S. Civil Aeronautics # Board (OCLC 42299995) reported that the "... Arabian Government, inaugurated # a weekly Dhahran-Cairo service, via the Saudi Arabian cities of Riyadh and # Jidda, on March 14, 1947". Shanks & Pottenger guessed 1950; go with the # earlier date. # # Shanks & Pottenger also state that until 1968-05-01 Saudi Arabia had two # time zones; the other zone, at UT +04, was in the far eastern part of # the country. Presumably this is documenting airline time. Ignore this, # as it's before our 1970 cutoff. # # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Riyadh 3:06:52 - LMT 1947 Mar 14 3:00 - +03 Link Asia/Riyadh Antarctica/Syowa Link Asia/Riyadh Asia/Aden # Yemen Link Asia/Riyadh Asia/Kuwait # Singapore # taken from Mok Ly Yng (2003-10-30) # https://web.archive.org/web/20190822231045/http://www.math.nus.edu.sg/~mathelmr/teaching/timezone.html # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Singapore 6:55:25 - LMT 1901 Jan 1 6:55:25 - SMT 1905 Jun 1 # Singapore M.T. 7:00 - +07 1933 Jan 1 7:00 0:20 +0720 1936 Jan 1 7:20 - +0720 1941 Sep 1 7:30 - +0730 1942 Feb 16 9:00 - +09 1945 Sep 12 7:30 - +0730 1982 Jan 1 8:00 - +08 Link Asia/Singapore Asia/Kuala_Lumpur # Spratly Is # no information # Sri Lanka # From Paul Eggert (2013-02-21): # Milne says "Madras mean time use from May 1, 1898. Prior to this Colombo # mean time, 5h. 4m. 21.9s. F., was used." But 5:04:21.9 differs considerably # from Colombo's meridian 5:19:24, so for now ignore Milne and stick with # Shanks and Pottenger. # From Paul Eggert (1996-09-03): # "Sri Lanka advances clock by an hour to avoid blackout" # (, 1996-05-24, # no longer available as of 1999-08-17) # reported "the country's standard time will be put forward by one hour at # midnight Friday (1830 GMT) 'in the light of the present power crisis'." # # From Dharmasiri Senanayake, Sri Lanka Media Minister (1996-10-24), as quoted # by Shamindra in Daily News - Hot News Section # (1996-10-26): # With effect from 12.30 a.m. on 26th October 1996 # Sri Lanka will be six (06) hours ahead of GMT. # From Jesper Nørgaard Welen (2006-04-14), quoting Sri Lanka News Online # (2006-04-13): # 0030 hrs on April 15, 2006 (midnight of April 14, 2006 +30 minutes) # at present, become 2400 hours of April 14, 2006 (midnight of April 14, 2006). # From Peter Apps and Ranga Sirila of Reuters (2006-04-12) in: # http://today.reuters.co.uk/news/newsArticle.aspx?type=scienceNews&storyID=2006-04-12T172228Z_01_COL295762_RTRIDST_0_SCIENCE-SRILANKA-TIME-DC.XML # [The Tamil Tigers] never accepted the original 1996 time change and simply # kept their clocks set five and a half hours ahead of Greenwich Mean # Time (GMT), in line with neighbor India. # From Paul Eggert (2006-04-18): # People who live in regions under Tamil control can use [TZ='Asia/Kolkata'], # as that zone has agreed with the Tamil areas since our cutoff date of 1970. # From Sadika Sumanapala (2016-10-19): # According to http://www.sltime.org (maintained by Measurement Units, # Standards & Services Department, Sri Lanka) abbreviation for Sri Lanka # standard time is SLST. # # From Paul Eggert (2016-10-18): # "SLST" seems to be reasonably recent and rarely-used outside time # zone nerd sources. I searched Google News and found three uses of # it in the International Business Times of India in February and # March of this year when discussing cricket match times, but nothing # since then (though there has been a lot of cricket) and nothing in # other English-language news sources. Our old abbreviation "LKT" is # even worse. For now, let's use a numeric abbreviation; we can # switch to "SLST" if it catches on. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Colombo 5:19:24 - LMT 1880 5:19:32 - MMT 1906 # Moratuwa Mean Time 5:30 - +0530 1942 Jan 5 5:30 0:30 +06 1942 Sep 5:30 1:00 +0630 1945 Oct 16 2:00 5:30 - +0530 1996 May 25 0:00 6:30 - +0630 1996 Oct 26 0:30 6:00 - +06 2006 Apr 15 0:30 5:30 - +0530 # Syria # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Syria 1920 1923 - Apr Sun>=15 2:00 1:00 S Rule Syria 1920 1923 - Oct Sun>=1 2:00 0 - Rule Syria 1962 only - Apr 29 2:00 1:00 S Rule Syria 1962 only - Oct 1 2:00 0 - Rule Syria 1963 1965 - May 1 2:00 1:00 S Rule Syria 1963 only - Sep 30 2:00 0 - Rule Syria 1964 only - Oct 1 2:00 0 - Rule Syria 1965 only - Sep 30 2:00 0 - Rule Syria 1966 only - Apr 24 2:00 1:00 S Rule Syria 1966 1976 - Oct 1 2:00 0 - Rule Syria 1967 1978 - May 1 2:00 1:00 S Rule Syria 1977 1978 - Sep 1 2:00 0 - Rule Syria 1983 1984 - Apr 9 2:00 1:00 S Rule Syria 1983 1984 - Oct 1 2:00 0 - Rule Syria 1986 only - Feb 16 2:00 1:00 S Rule Syria 1986 only - Oct 9 2:00 0 - Rule Syria 1987 only - Mar 1 2:00 1:00 S Rule Syria 1987 1988 - Oct 31 2:00 0 - Rule Syria 1988 only - Mar 15 2:00 1:00 S Rule Syria 1989 only - Mar 31 2:00 1:00 S Rule Syria 1989 only - Oct 1 2:00 0 - Rule Syria 1990 only - Apr 1 2:00 1:00 S Rule Syria 1990 only - Sep 30 2:00 0 - Rule Syria 1991 only - Apr 1 0:00 1:00 S Rule Syria 1991 1992 - Oct 1 0:00 0 - Rule Syria 1992 only - Apr 8 0:00 1:00 S Rule Syria 1993 only - Mar 26 0:00 1:00 S Rule Syria 1993 only - Sep 25 0:00 0 - # IATA SSIM (1998-02) says 1998-04-02; # (1998-09) says 1999-03-29 and 1999-09-29; (1999-02) says 1999-04-02, # 2000-04-02, and 2001-04-02; (1999-09) says 2000-03-31 and 2001-03-31; # (2006) says 2006-03-31 and 2006-09-22; # for now ignore all these claims and go with Shanks & Pottenger, # except for the 2006-09-22 claim (which seems right for Ramadan). Rule Syria 1994 1996 - Apr 1 0:00 1:00 S Rule Syria 1994 2005 - Oct 1 0:00 0 - Rule Syria 1997 1998 - Mar lastMon 0:00 1:00 S Rule Syria 1999 2006 - Apr 1 0:00 1:00 S # From Stephen Colebourne (2006-09-18): # According to IATA data, Syria will change DST on 21st September [21:00 UTC] # this year [only].... This is probably related to Ramadan, like Egypt. Rule Syria 2006 only - Sep 22 0:00 0 - # From Paul Eggert (2007-03-29): # Today the AP reported "Syria will switch to summertime at midnight Thursday." # http://www.iht.com/articles/ap/2007/03/29/africa/ME-GEN-Syria-Time-Change.php Rule Syria 2007 only - Mar lastFri 0:00 1:00 S # From Jesper Nørgaard (2007-10-27): # The sister center ICARDA of my work CIMMYT is confirming that Syria DST will # not take place 1st November at 0:00 o'clock but 1st November at 24:00 or # rather Midnight between Thursday and Friday. This does make more sense than # having it between Wednesday and Thursday (two workdays in Syria) since the # weekend in Syria is not Saturday and Sunday, but Friday and Saturday. So now # it is implemented at midnight of the last workday before weekend... # # From Steffen Thorsen (2007-10-27): # Jesper Nørgaard Welen wrote: # # > "Winter local time in Syria will be observed at midnight of Thursday 1 # > November 2007, and the clock will be put back 1 hour." # # I found confirmation on this in this gov.sy-article (Arabic): # http://wehda.alwehda.gov.sy/_print_veiw.asp?FileName=12521710520070926111247 # # which using Google's translate tools says: # Council of Ministers also approved the commencement of work on # identifying the winter time as of Friday, 2/11/2007 where the 60th # minute delay at midnight Thursday 1/11/2007. Rule Syria 2007 only - Nov Fri>=1 0:00 0 - # From Stephen Colebourne (2008-03-17): # For everyone's info, I saw an IATA time zone change for [Syria] for # this month (March 2008) in the last day or so.... # Country Time Standard --- DST Start --- --- DST End --- DST # Name Zone Variation Time Date Time Date # Variation # Syrian Arab # Republic SY +0200 2200 03APR08 2100 30SEP08 +0300 # 2200 02APR09 2100 30SEP09 +0300 # 2200 01APR10 2100 30SEP10 +0300 # From Arthur David Olson (2008-03-17): # Here's a link to English-language coverage by the Syrian Arab News # Agency (SANA)... # http://www.sana.sy/eng/21/2008/03/11/165173.htm # ...which reads (in part) "The Cabinet approved the suggestion of the # Ministry of Electricity to begin daylight savings time on Friday April # 4th, advancing clocks one hour ahead on midnight of Thursday April 3rd." # Since Syria is two hours east of UTC, the 2200 and 2100 transition times # shown above match up with midnight in Syria. # From Arthur David Olson (2008-03-18): # My best guess at a Syrian rule is "the Friday nearest April 1"; # coding that involves either using a "Mar Fri>=29" construct that old time zone # compilers can't handle or having multiple Rules (a la Israel). # For now, use "Apr Fri>=1", and go with IATA on a uniform Sep 30 end. # From Steffen Thorsen (2008-10-07): # Syria has now officially decided to end DST on 2008-11-01 this year, # according to the following article in the Syrian Arab News Agency (SANA). # # The article is in Arabic, and seems to tell that they will go back to # winter time on 2008-11-01 at 00:00 local daylight time (delaying/setting # clocks back 60 minutes). # # http://sana.sy/ara/2/2008/10/07/195459.htm # From Steffen Thorsen (2009-03-19): # Syria will start DST on 2009-03-27 00:00 this year according to many sources, # two examples: # # http://www.sana.sy/eng/21/2009/03/17/217563.htm # (English, Syrian Arab News # Agency) # http://thawra.alwehda.gov.sy/_View_news2.asp?FileName=94459258720090318012209 # (Arabic, gov-site) # # We have not found any sources saying anything about when DST ends this year. # # Our summary # https://www.timeanddate.com/news/time/syria-dst-starts-march-27-2009.html # From Steffen Thorsen (2009-10-27): # The Syrian Arab News Network on 2009-09-29 reported that Syria will # revert back to winter (standard) time on midnight between Thursday # 2009-10-29 and Friday 2009-10-30: # http://www.sana.sy/ara/2/2009/09/29/247012.htm (Arabic) # From Arthur David Olson (2009-10-28): # We'll see if future DST switching times turn out to be end of the last # Thursday of the month or the start of the last Friday of the month or # something else. For now, use the start of the last Friday. # From Steffen Thorsen (2010-03-17): # The "Syrian News Station" reported on 2010-03-16 that the Council of # Ministers has decided that Syria will start DST on midnight Thursday # 2010-04-01: (midnight between Thursday and Friday): # http://sns.sy/sns/?path=news/read/11421 (Arabic) # From Steffen Thorsen (2012-03-26): # Today, Syria's government announced that they will start DST early on Friday # (00:00). This is a bit earlier than the past two years. # # From Syrian Arab News Agency, in Arabic: # http://www.sana.sy/ara/2/2012/03/26/408215.htm # # Our brief summary: # https://www.timeanddate.com/news/time/syria-dst-2012.html # From Arthur David Olson (2012-03-27): # Assume last Friday in March going forward XXX. Rule Syria 2008 only - Apr Fri>=1 0:00 1:00 S Rule Syria 2008 only - Nov 1 0:00 0 - Rule Syria 2009 only - Mar lastFri 0:00 1:00 S Rule Syria 2010 2011 - Apr Fri>=1 0:00 1:00 S Rule Syria 2012 max - Mar lastFri 0:00 1:00 S Rule Syria 2009 max - Oct lastFri 0:00 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Damascus 2:25:12 - LMT 1920 # Dimashq 2:00 Syria EE%sT # Tajikistan # From Shanks & Pottenger. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Dushanbe 4:35:12 - LMT 1924 May 2 5:00 - +05 1930 Jun 21 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s 5:00 1:00 +06 1991 Sep 9 2:00s 5:00 - +05 # Thailand # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Bangkok 6:42:04 - LMT 1880 6:42:04 - BMT 1920 Apr # Bangkok Mean Time 7:00 - +07 Link Asia/Bangkok Asia/Phnom_Penh # Cambodia Link Asia/Bangkok Asia/Vientiane # Laos Link Asia/Bangkok Indian/Christmas # Turkmenistan # From Shanks & Pottenger. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Ashgabat 3:53:32 - LMT 1924 May 2 # or Ashkhabad 4:00 - +04 1930 Jun 21 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00 5:00 - +05 # United Arab Emirates # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Dubai 3:41:12 - LMT 1920 4:00 - +04 Link Asia/Dubai Asia/Muscat # Oman Link Asia/Dubai Indian/Mahe Link Asia/Dubai Indian/Reunion # Uzbekistan # Byalokoz 1919 says Uzbekistan was 4:27:53. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Samarkand 4:27:53 - LMT 1924 May 2 4:00 - +04 1930 Jun 21 5:00 - +05 1981 Apr 1 5:00 1:00 +06 1981 Oct 1 6:00 - +06 1982 Apr 1 5:00 RussiaAsia +05/+06 1992 5:00 - +05 # Milne says Tashkent was 4:37:10.8. #STDOFF 4:37:10.8 Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2 5:00 - +05 1930 Jun 21 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00 5:00 RussiaAsia +05/+06 1992 5:00 - +05 # Vietnam # From Paul Eggert (2014-10-04): # Milne gives 7:16:56 for the meridian of Saigon in 1899, as being # used in Lower Laos, Cambodia, and Annam. But this is quite a ways # from Saigon's location. For now, ignore this and stick with Shanks # and Pottenger for LMT before 1906. # From Arthur David Olson (2008-03-18): # The English-language name of Vietnam's most populous city is "Ho Chi Minh # City"; use Ho_Chi_Minh below to avoid a name of more than 14 characters. # From Paul Eggert (2022-07-27) after a 2014 heads-up from Trần Ngọc Quân: # Trần Tiến Bình's authoritative book "Lịch Việt Nam: thế kỷ XX-XXI (1901-2100)" # (Nhà xuất bản Văn Hoá - Thông Tin, Hanoi, 2005), pp 49-50, # is quoted verbatim in: # http://www.thoigian.com.vn/?mPage=P80D01 # is translated by Brian Inglis in: # https://mm.icann.org/pipermail/tz/2014-October/021654.html # and is the basis for the information below. # # The 1906 transition was effective July 1 and standardized Indochina to # Phù Liễn Observatory, legally 104° 17' 17" east of Paris. # It's unclear whether this meant legal Paris Mean Time (00:09:21) or # the Paris Meridian; for now guess the former and round the exact # 07:06:30.1333... to 07:06:30.13 as the legal spec used 66 2/3 ms precision. # which is used below even though the modern-day Phù Liễn Observatory # is closer to 07:06:31. Abbreviate Phù Liễn Mean Time as PLMT. # # The following transitions occurred in Indochina in general (before 1954) # and in South Vietnam in particular (after 1954): # To 07:00 on 1911-05-01. # To 08:00 on 1942-12-31 at 23:00. # To 09:00 on 1945-03-14 at 23:00. # To 07:00 on 1945-09-02 in Vietnam. # To 08:00 on 1947-04-01 in French-controlled Indochina. # To 07:00 on 1955-07-01 in South Vietnam. # To 08:00 on 1959-12-31 at 23:00 in South Vietnam. # To 07:00 on 1975-06-13 in South Vietnam. # # Trần cites the following sources; it's unclear which supplied the info above. # # Hoàng Xuân Hãn: "Lịch và lịch Việt Nam". Tập san Khoa học Xã hội, # No. 9, Paris, February 1982. # # Lê Thành Lân: "Lịch và niên biểu lịch sử hai mươi thế kỷ (0001-2010)", # NXB Thống kê, Hanoi, 2000. # # Lê Thành Lân: "Lịch hai thế kỷ (1802-2010) và các lịch vĩnh cửu", # NXB Thuận Hoá, Huế, 1995. # Zone NAME STDOFF RULES FORMAT [UNTIL] #STDOFF 7:06:30.13 Zone Asia/Ho_Chi_Minh 7:06:30 - LMT 1906 Jul 1 7:06:30 - PLMT 1911 May 1 # Phù Liễn MT 7:00 - +07 1942 Dec 31 23:00 8:00 - +08 1945 Mar 14 23:00 9:00 - +09 1945 Sep 2 7:00 - +07 1947 Apr 1 8:00 - +08 1955 Jul 1 7:00 - +07 1959 Dec 31 23:00 8:00 - +08 1975 Jun 13 7:00 - +07 # From Paul Eggert (2019-02-19): # # The Ho Chi Minh entry suffices for most purposes as it agrees with all of # Vietnam since 1975-06-13. Presumably clocks often changed in south Vietnam # in the early 1970s as locations changed hands during the war; however the # details are unknown and would likely be too voluminous for this database. # # For timestamps in north Vietnam back to 1970 (the tzdb cutoff), # use Asia/Bangkok; see the VN entries in the file zone1970.tab. # For timestamps before 1970, see Asia/Hanoi in the file 'backzone'. # Yemen # See Asia/Riyadh. ./tzdatabase/newtzset.3.txt0000644000175000017500000002445613502033252016052 0ustar anthonyanthonyNEWTZSET(3) Library Functions Manual NEWTZSET(3) NAME tzset - initialize time conversion information SYNOPSIS #include timezone_t tzalloc(char const *TZ); void tzfree(timezone_t tz); void tzset(void); cc ... -ltz DESCRIPTION Tzalloc allocates and returns a timezone object described by TZ. If TZ is not a valid timezone description, or if the object cannot be allocated, tzalloc returns a null pointer and sets errno. Tzfree frees a timezone object tz, which should have been successfully allocated by tzalloc. This invalidates any tm_zone pointers that tz was used to set. Tzset acts like tzalloc(getenv("TZ")), except it saves any resulting timezone object into internal storage that is accessed by localtime, localtime_r, and mktime. The anonymous shared timezone object is freed by the next call to tzset. If the implied call to tzalloc fails, tzset falls back on Universal Time (UT). If TZ is null, the best available approximation to local (wall clock) time, as specified by the tzfile(5)-format file localtime in the system time conversion information directory, is used. If TZ is the empty string, UT is used, with the abbreviation "UTC" and without leap second correction; please see newctime(3) for more about UT, UTC, and leap seconds. If TZ is nonnull and nonempty: if the value begins with a colon, it is used as a pathname of a file from which to read the time conversion information; if the value does not begin with a colon, it is first used as the pathname of a file from which to read the time conversion information, and, if that file cannot be read, is used directly as a specification of the time conversion information. When TZ is used as a pathname, if it begins with a slash, it is used as an absolute pathname; otherwise, it is used as a pathname relative to a system time conversion information directory. The file must be in the format specified in tzfile(5). When TZ is used directly as a specification of the time conversion information, it must have the following syntax (spaces inserted for clarity): stdoffset[dst[offset][,rule]] Where: std and dst Three or more bytes that are the designation for the standard (std) or the alternative (dst, such as daylight saving time) time zone. Only std is required; if dst is missing, then daylight saving time does not apply in this locale. Upper- and lowercase letters are explicitly allowed. Any characters except a leading colon (:), digits, comma (,), ASCII minus (-), ASCII plus (+), and NUL bytes are allowed. Alternatively, a designation can be surrounded by angle brackets < and >; in this case, the designation can contain any characters other than > and NUL. offset Indicates the value one must add to the local time to arrive at Coordinated Universal Time. The offset has the form: hh[:mm[:ss]] The minutes (mm) and seconds (ss) are optional. The hour (hh) is required and may be a single digit. The offset following std is required. If no offset follows dst, daylight saving time is assumed to be one hour ahead of standard time. One or more digits may be used; the value is always interpreted as a decimal number. The hour must be between zero and 24, and the minutes (and seconds) - if present - between zero and 59. If preceded by a "-", the time zone shall be east of the Prime Meridian; otherwise it shall be west (which may be indicated by an optional preceding "+". rule Indicates when to change to and back from daylight saving time. The rule has the form: date/time,date/time where the first date describes when the change from standard to daylight saving time occurs and the second date describes when the change back happens. Each time field describes when, in current local time, the change to the other time is made. As an extension to POSIX, daylight saving is assumed to be in effect all year if it begins January 1 at 00:00 and ends December 31 at 24:00 plus the difference between daylight saving and standard time, leaving no room for standard time in the calendar. The format of date is one of the following: Jn The Julian day n (1 <= n <= 365). Leap days are not counted; that is, in all years - including leap years - February 28 is day 59 and March 1 is day 60. It is impossible to explicitly refer to the occasional February 29. n The zero-based Julian day (0 <= n <= 365). Leap days are counted, and it is possible to refer to February 29. Mm.n.d The d'th day (0 <= d <= 6) of week n of month m of the year (1 <= n <= 5, 1 <= m <= 12, where week 5 means "the last d day in month m" which may occur in either the fourth or the fifth week). Week 1 is the first week in which the d'th day occurs. Day zero is Sunday. The time has the same format as offset except that POSIX does not allow a leading sign ("-" or "+"). As an extension to POSIX, the hours part of time can range from -167 through 167; this allows for unusual rules such as "the Saturday before the first Sunday of March". The default, if time is not given, is 02:00:00. Here are some examples of TZ values that directly specify the timezone; they use some of the extensions to POSIX. EST5 stands for US Eastern Standard Time (EST), 5 hours behind UT, without daylight saving. <+12>-12<+13>,M11.1.0,M1.2.1/147 stands for Fiji time, 12 hours ahead of UT, springing forward on November's first Sunday at 02:00, and falling back on January's second Monday at 147:00 (i.e., 03:00 on the first Sunday on or after January 14). The abbreviations for standard and daylight saving time are "+12" and "+13". IST-2IDT,M3.4.4/26,M10.5.0 stands for Israel Standard Time (IST) and Israel Daylight Time (IDT), 2 hours ahead of UT, springing forward on March's fourth Thursday at 26:00 (i.e., 02:00 on the first Friday on or after March 23), and falling back on October's last Sunday at 02:00. <-04>4<-03>,J1/0,J365/25 stands for permanent daylight saving time, 3 hours behind UT with abbreviation "-03". There is a dummy fall-back transition on December 31 at 25:00 daylight saving time (i.e., 24:00 standard time, equivalent to January 1 at 00:00 standard time), and a simultaneous spring-forward transition on January 1 at 00:00 standard time, so daylight saving time is in effect all year and the initial <-04> is a placeholder. <-03>3<-02>,M3.5.0/-2,M10.5.0/-1 stands for time in western Greenland, 3 hours behind UT, where clocks follow the EU rules of springing forward on March's last Sunday at 01:00 UT (-02:00 local time, i.e., 22:00 the previous day) and falling back on October's last Sunday at 01:00 UT (-01:00 local time, i.e., 23:00 the previous day). The abbreviations for standard and daylight saving time are "-03" and "-02". If no rule is present in TZ, the rules specified by the tzfile(5)-format file posixrules in the system time conversion information directory are used, with the standard and daylight saving time offsets from UT replaced by those specified by the offset values in TZ. For compatibility with System V Release 3.1, a semicolon (;) may be used to separate the rule from the rest of the specification. FILES /usr/share/zoneinfo timezone information directory /usr/share/zoneinfo/localtime local timezone file /usr/share/zoneinfo/posixrules used with POSIX-style TZ's /usr/share/zoneinfo/GMT for UTC leap seconds If /usr/share/zoneinfo/GMT is absent, UTC leap seconds are loaded from /usr/share/zoneinfo/posixrules. SEE ALSO getenv(3), newctime(3), newstrftime(3), time(2), tzfile(5) NEWTZSET(3) ./tzdatabase/to2050.tzs0000644000175000017500000250262413533271463014774 0ustar anthonyanthonyLink Africa/Abidjan Africa/Bamako Link Africa/Abidjan Africa/Banjul Link Africa/Abidjan Africa/Conakry Link Africa/Abidjan Africa/Dakar Link Africa/Abidjan Africa/Freetown Link Africa/Abidjan Africa/Lome Link Africa/Abidjan Africa/Nouakchott Link Africa/Abidjan Africa/Ouagadougou Link Africa/Abidjan Africa/Timbuktu Link Africa/Abidjan Atlantic/St_Helena Link Africa/Cairo Egypt Link Africa/Johannesburg Africa/Maseru Link Africa/Johannesburg Africa/Mbabane Link Africa/Lagos Africa/Bangui Link Africa/Lagos Africa/Brazzaville Link Africa/Lagos Africa/Douala Link Africa/Lagos Africa/Kinshasa Link Africa/Lagos Africa/Libreville Link Africa/Lagos Africa/Luanda Link Africa/Lagos Africa/Malabo Link Africa/Lagos Africa/Niamey Link Africa/Lagos Africa/Porto-Novo Link Africa/Maputo Africa/Blantyre Link Africa/Maputo Africa/Bujumbura Link Africa/Maputo Africa/Gaborone Link Africa/Maputo Africa/Harare Link Africa/Maputo Africa/Kigali Link Africa/Maputo Africa/Lubumbashi Link Africa/Maputo Africa/Lusaka Link Africa/Nairobi Africa/Addis_Ababa Link Africa/Nairobi Africa/Asmara Link Africa/Nairobi Africa/Asmera Link Africa/Nairobi Africa/Dar_es_Salaam Link Africa/Nairobi Africa/Djibouti Link Africa/Nairobi Africa/Kampala Link Africa/Nairobi Africa/Mogadishu Link Africa/Nairobi Indian/Antananarivo Link Africa/Nairobi Indian/Comoro Link Africa/Nairobi Indian/Mayotte Link Africa/Tripoli Libya Link America/Adak America/Atka Link America/Adak US/Aleutian Link America/Anchorage US/Alaska Link America/Argentina/Buenos_Aires America/Buenos_Aires Link America/Argentina/Catamarca America/Argentina/ComodRivadavia Link America/Argentina/Catamarca America/Catamarca Link America/Argentina/Cordoba America/Cordoba Link America/Argentina/Cordoba America/Rosario Link America/Argentina/Jujuy America/Jujuy Link America/Argentina/Mendoza America/Mendoza Link America/Atikokan America/Coral_Harbour Link America/Chicago US/Central Link America/Curacao America/Aruba Link America/Curacao America/Kralendijk Link America/Curacao America/Lower_Princes Link America/Denver America/Shiprock Link America/Denver Navajo Link America/Denver US/Mountain Link America/Detroit US/Michigan Link America/Edmonton Canada/Mountain Link America/Halifax Canada/Atlantic Link America/Havana Cuba Link America/Indiana/Indianapolis America/Fort_Wayne Link America/Indiana/Indianapolis America/Indianapolis Link America/Indiana/Indianapolis US/East-Indiana Link America/Indiana/Knox America/Knox_IN Link America/Indiana/Knox US/Indiana-Starke Link America/Jamaica Jamaica Link America/Kentucky/Louisville America/Louisville Link America/Los_Angeles US/Pacific Link America/Manaus Brazil/West Link America/Mazatlan Mexico/BajaSur Link America/Mexico_City Mexico/General Link America/New_York US/Eastern Link America/Noronha Brazil/DeNoronha Link America/Panama America/Cayman Link America/Phoenix US/Arizona Link America/Port_of_Spain America/Anguilla Link America/Port_of_Spain America/Antigua Link America/Port_of_Spain America/Dominica Link America/Port_of_Spain America/Grenada Link America/Port_of_Spain America/Guadeloupe Link America/Port_of_Spain America/Marigot Link America/Port_of_Spain America/Montserrat Link America/Port_of_Spain America/St_Barthelemy Link America/Port_of_Spain America/St_Kitts Link America/Port_of_Spain America/St_Lucia Link America/Port_of_Spain America/St_Thomas Link America/Port_of_Spain America/St_Vincent Link America/Port_of_Spain America/Tortola Link America/Port_of_Spain America/Virgin Link America/Regina Canada/Saskatchewan Link America/Rio_Branco America/Porto_Acre Link America/Rio_Branco Brazil/Acre Link America/Santiago Chile/Continental Link America/Sao_Paulo Brazil/East Link America/St_Johns Canada/Newfoundland Link America/Tijuana America/Ensenada Link America/Tijuana America/Santa_Isabel Link America/Tijuana Mexico/BajaNorte Link America/Toronto America/Montreal Link America/Toronto Canada/Eastern Link America/Vancouver Canada/Pacific Link America/Whitehorse Canada/Yukon Link America/Winnipeg Canada/Central Link Asia/Ashgabat Asia/Ashkhabad Link Asia/Bangkok Asia/Phnom_Penh Link Asia/Bangkok Asia/Vientiane Link Asia/Dhaka Asia/Dacca Link Asia/Dubai Asia/Muscat Link Asia/Ho_Chi_Minh Asia/Saigon Link Asia/Hong_Kong Hongkong Link Asia/Jerusalem Asia/Tel_Aviv Link Asia/Jerusalem Israel Link Asia/Kathmandu Asia/Katmandu Link Asia/Kolkata Asia/Calcutta Link Asia/Macau Asia/Macao Link Asia/Makassar Asia/Ujung_Pandang Link Asia/Nicosia Europe/Nicosia Link Asia/Qatar Asia/Bahrain Link Asia/Riyadh Asia/Aden Link Asia/Riyadh Asia/Kuwait Link Asia/Seoul ROK Link Asia/Shanghai Asia/Chongqing Link Asia/Shanghai Asia/Chungking Link Asia/Shanghai Asia/Harbin Link Asia/Shanghai PRC Link Asia/Singapore Singapore Link Asia/Taipei ROC Link Asia/Tehran Iran Link Asia/Thimphu Asia/Thimbu Link Asia/Tokyo Japan Link Asia/Ulaanbaatar Asia/Ulan_Bator Link Asia/Urumqi Asia/Kashgar Link Asia/Yangon Asia/Rangoon Link Atlantic/Faroe Atlantic/Faeroe Link Atlantic/Reykjavik Iceland Link Australia/Adelaide Australia/South Link Australia/Brisbane Australia/Queensland Link Australia/Broken_Hill Australia/Yancowinna Link Australia/Darwin Australia/North Link Australia/Hobart Australia/Tasmania Link Australia/Lord_Howe Australia/LHI Link Australia/Melbourne Australia/Victoria Link Australia/Perth Australia/West Link Australia/Sydney Australia/ACT Link Australia/Sydney Australia/Canberra Link Australia/Sydney Australia/NSW Link Etc/GMT Etc/GMT+0 Link Etc/GMT Etc/GMT-0 Link Etc/GMT Etc/GMT0 Link Etc/GMT Etc/Greenwich Link Etc/GMT GMT Link Etc/GMT GMT+0 Link Etc/GMT GMT-0 Link Etc/GMT GMT0 Link Etc/GMT Greenwich Link Etc/UTC Etc/UCT Link Etc/UTC Etc/Universal Link Etc/UTC Etc/Zulu Link Etc/UTC UCT Link Etc/UTC UTC Link Etc/UTC Universal Link Etc/UTC Zulu Link Europe/Belgrade Europe/Ljubljana Link Europe/Belgrade Europe/Podgorica Link Europe/Belgrade Europe/Sarajevo Link Europe/Belgrade Europe/Skopje Link Europe/Belgrade Europe/Zagreb Link Europe/Chisinau Europe/Tiraspol Link Europe/Dublin Eire Link Europe/Helsinki Europe/Mariehamn Link Europe/Istanbul Asia/Istanbul Link Europe/Istanbul Turkey Link Europe/Lisbon Portugal Link Europe/London Europe/Belfast Link Europe/London Europe/Guernsey Link Europe/London Europe/Isle_of_Man Link Europe/London Europe/Jersey Link Europe/London GB Link Europe/London GB-Eire Link Europe/Moscow W-SU Link Europe/Oslo Arctic/Longyearbyen Link Europe/Oslo Atlantic/Jan_Mayen Link Europe/Prague Europe/Bratislava Link Europe/Rome Europe/San_Marino Link Europe/Rome Europe/Vatican Link Europe/Warsaw Poland Link Europe/Zurich Europe/Busingen Link Europe/Zurich Europe/Vaduz Link Pacific/Auckland Antarctica/McMurdo Link Pacific/Auckland Antarctica/South_Pole Link Pacific/Auckland NZ Link Pacific/Chatham NZ-CHAT Link Pacific/Chuuk Pacific/Truk Link Pacific/Chuuk Pacific/Yap Link Pacific/Easter Chile/EasterIsland Link Pacific/Guam Pacific/Saipan Link Pacific/Honolulu Pacific/Johnston Link Pacific/Honolulu US/Hawaii Link Pacific/Kwajalein Kwajalein Link Pacific/Pago_Pago Pacific/Midway Link Pacific/Pago_Pago Pacific/Samoa Link Pacific/Pago_Pago US/Samoa Link Pacific/Pohnpei Pacific/Ponape TZ="Africa/Abidjan" - - -001608 LMT 1912-01-01 00:16:08 +00 GMT TZ="Africa/Accra" - - -000052 LMT 1918-01-01 00:00:52 +00 GMT 1920-09-01 00:20 +0020 1 1920-12-30 23:40 +00 GMT 1921-09-01 00:20 +0020 1 1921-12-30 23:40 +00 GMT 1922-09-01 00:20 +0020 1 1922-12-30 23:40 +00 GMT 1923-09-01 00:20 +0020 1 1923-12-30 23:40 +00 GMT 1924-09-01 00:20 +0020 1 1924-12-30 23:40 +00 GMT 1925-09-01 00:20 +0020 1 1925-12-30 23:40 +00 GMT 1926-09-01 00:20 +0020 1 1926-12-30 23:40 +00 GMT 1927-09-01 00:20 +0020 1 1927-12-30 23:40 +00 GMT 1928-09-01 00:20 +0020 1 1928-12-30 23:40 +00 GMT 1929-09-01 00:20 +0020 1 1929-12-30 23:40 +00 GMT 1930-09-01 00:20 +0020 1 1930-12-30 23:40 +00 GMT 1931-09-01 00:20 +0020 1 1931-12-30 23:40 +00 GMT 1932-09-01 00:20 +0020 1 1932-12-30 23:40 +00 GMT 1933-09-01 00:20 +0020 1 1933-12-30 23:40 +00 GMT 1934-09-01 00:20 +0020 1 1934-12-30 23:40 +00 GMT 1935-09-01 00:20 +0020 1 1935-12-30 23:40 +00 GMT 1936-09-01 00:20 +0020 1 1936-12-30 23:40 +00 GMT 1937-09-01 00:20 +0020 1 1937-12-30 23:40 +00 GMT 1938-09-01 00:20 +0020 1 1938-12-30 23:40 +00 GMT 1939-09-01 00:20 +0020 1 1939-12-30 23:40 +00 GMT 1940-09-01 00:20 +0020 1 1940-12-30 23:40 +00 GMT 1941-09-01 00:20 +0020 1 1941-12-30 23:40 +00 GMT 1942-09-01 00:20 +0020 1 1942-12-30 23:40 +00 GMT TZ="Africa/Algiers" - - +001212 LMT 1891-03-14 23:58:09 +000921 PMT 1911-03-10 23:50:39 +00 WET 1916-06-15 00 +01 WEST 1 1916-10-01 23 +00 WET 1917-03-25 00 +01 WEST 1 1917-10-07 23 +00 WET 1918-03-10 00 +01 WEST 1 1918-10-06 23 +00 WET 1919-03-02 00 +01 WEST 1 1919-10-05 23 +00 WET 1920-02-15 00 +01 WEST 1 1920-10-23 23 +00 WET 1921-03-15 00 +01 WEST 1 1921-06-21 23 +00 WET 1939-09-12 00 +01 WEST 1 1939-11-19 00 +00 WET 1940-02-25 03 +01 CET 1944-04-03 03 +02 CEST 1 1944-10-08 01 +01 CET 1945-04-02 03 +02 CEST 1 1945-09-16 00 +01 CET 1946-10-06 23 +00 WET 1956-01-29 01 +01 CET 1963-04-13 23 +00 WET 1971-04-26 00 +01 WEST 1 1971-09-26 23 +00 WET 1977-05-06 01 +01 WEST 1 1977-10-21 00 +01 CET 1978-03-24 02 +02 CEST 1 1978-09-22 02 +01 CET 1979-10-25 23 +00 WET 1980-04-25 01 +01 WEST 1 1980-10-31 01 +00 WET 1981-05-01 01 +01 CET TZ="Africa/Bissau" - - -010220 LMT 1912-01-01 00 -01 1975-01-01 01 +00 GMT TZ="Africa/Cairo" - - +020509 LMT 1900-09-30 23:54:51 +02 EET 1940-07-15 01 +03 EEST 1 1940-09-30 23 +02 EET 1941-04-15 01 +03 EEST 1 1941-09-15 23 +02 EET 1942-04-01 01 +03 EEST 1 1942-10-26 23 +02 EET 1943-04-01 01 +03 EEST 1 1943-10-31 23 +02 EET 1944-04-01 01 +03 EEST 1 1944-10-31 23 +02 EET 1945-04-16 01 +03 EEST 1 1945-10-31 23 +02 EET 1957-05-10 01 +03 EEST 1 1957-09-30 23 +02 EET 1958-05-01 01 +03 EEST 1 1958-09-30 23 +02 EET 1959-05-01 02 +03 EEST 1 1959-09-30 02 +02 EET 1960-05-01 02 +03 EEST 1 1960-09-30 02 +02 EET 1961-05-01 02 +03 EEST 1 1961-09-30 02 +02 EET 1962-05-01 02 +03 EEST 1 1962-09-30 02 +02 EET 1963-05-01 02 +03 EEST 1 1963-09-30 02 +02 EET 1964-05-01 02 +03 EEST 1 1964-09-30 02 +02 EET 1965-05-01 02 +03 EEST 1 1965-09-30 02 +02 EET 1966-05-01 02 +03 EEST 1 1966-10-01 02 +02 EET 1967-05-01 02 +03 EEST 1 1967-10-01 02 +02 EET 1968-05-01 02 +03 EEST 1 1968-10-01 02 +02 EET 1969-05-01 02 +03 EEST 1 1969-10-01 02 +02 EET 1970-05-01 02 +03 EEST 1 1970-10-01 02 +02 EET 1971-05-01 02 +03 EEST 1 1971-10-01 02 +02 EET 1972-05-01 02 +03 EEST 1 1972-10-01 02 +02 EET 1973-05-01 02 +03 EEST 1 1973-10-01 02 +02 EET 1974-05-01 02 +03 EEST 1 1974-10-01 02 +02 EET 1975-05-01 02 +03 EEST 1 1975-10-01 02 +02 EET 1976-05-01 02 +03 EEST 1 1976-10-01 02 +02 EET 1977-05-01 02 +03 EEST 1 1977-10-01 02 +02 EET 1978-05-01 02 +03 EEST 1 1978-10-01 02 +02 EET 1979-05-01 02 +03 EEST 1 1979-10-01 02 +02 EET 1980-05-01 02 +03 EEST 1 1980-10-01 02 +02 EET 1981-05-01 02 +03 EEST 1 1981-10-01 02 +02 EET 1982-07-25 02 +03 EEST 1 1982-10-01 02 +02 EET 1983-07-12 02 +03 EEST 1 1983-10-01 02 +02 EET 1984-05-01 02 +03 EEST 1 1984-10-01 02 +02 EET 1985-05-01 02 +03 EEST 1 1985-10-01 02 +02 EET 1986-05-01 02 +03 EEST 1 1986-10-01 02 +02 EET 1987-05-01 02 +03 EEST 1 1987-10-01 02 +02 EET 1988-05-01 02 +03 EEST 1 1988-10-01 02 +02 EET 1989-05-06 02 +03 EEST 1 1989-10-01 02 +02 EET 1990-05-01 02 +03 EEST 1 1990-10-01 02 +02 EET 1991-05-01 02 +03 EEST 1 1991-10-01 02 +02 EET 1992-05-01 02 +03 EEST 1 1992-10-01 02 +02 EET 1993-05-01 02 +03 EEST 1 1993-10-01 02 +02 EET 1994-05-01 02 +03 EEST 1 1994-10-01 02 +02 EET 1995-04-28 01 +03 EEST 1 1995-09-28 23 +02 EET 1996-04-26 01 +03 EEST 1 1996-09-26 23 +02 EET 1997-04-25 01 +03 EEST 1 1997-09-25 23 +02 EET 1998-04-24 01 +03 EEST 1 1998-09-24 23 +02 EET 1999-04-30 01 +03 EEST 1 1999-09-30 23 +02 EET 2000-04-28 01 +03 EEST 1 2000-09-28 23 +02 EET 2001-04-27 01 +03 EEST 1 2001-09-27 23 +02 EET 2002-04-26 01 +03 EEST 1 2002-09-26 23 +02 EET 2003-04-25 01 +03 EEST 1 2003-09-25 23 +02 EET 2004-04-30 01 +03 EEST 1 2004-09-30 23 +02 EET 2005-04-29 01 +03 EEST 1 2005-09-29 23 +02 EET 2006-04-28 01 +03 EEST 1 2006-09-21 23 +02 EET 2007-04-27 01 +03 EEST 1 2007-09-06 23 +02 EET 2008-04-25 01 +03 EEST 1 2008-08-28 23 +02 EET 2009-04-24 01 +03 EEST 1 2009-08-20 23 +02 EET 2010-04-30 01 +03 EEST 1 2010-08-10 23 +02 EET 2010-09-10 01 +03 EEST 1 2010-09-30 23 +02 EET 2014-05-16 01 +03 EEST 1 2014-06-26 23 +02 EET 2014-08-01 01 +03 EEST 1 2014-09-25 23 +02 EET TZ="Africa/Casablanca" - - -003020 LMT 1913-10-26 00:30:20 +00 1939-09-12 01 +01 1 1939-11-18 23 +00 1940-02-25 01 +01 1 1945-11-17 23 +00 1950-06-11 01 +01 1 1950-10-28 23 +00 1967-06-03 13 +01 1 1967-09-30 23 +00 1974-06-24 01 +01 1 1974-08-31 23 +00 1976-05-01 01 +01 1 1976-07-31 23 +00 1977-05-01 01 +01 1 1977-09-27 23 +00 1978-06-01 01 +01 1 1978-08-03 23 +00 1984-03-16 01 +01 1985-12-31 23 +00 2008-06-01 01 +01 1 2008-08-31 23 +00 2009-06-01 01 +01 1 2009-08-20 23 +00 2010-05-02 01 +01 1 2010-08-07 23 +00 2011-04-03 01 +01 1 2011-07-30 23 +00 2012-04-29 03 +01 1 2012-07-20 02 +00 2012-08-20 03 +01 1 2012-09-30 02 +00 2013-04-28 03 +01 1 2013-07-07 02 +00 2013-08-10 03 +01 1 2013-10-27 02 +00 2014-03-30 03 +01 1 2014-06-28 02 +00 2014-08-02 03 +01 1 2014-10-26 02 +00 2015-03-29 03 +01 1 2015-06-14 02 +00 2015-07-19 03 +01 1 2015-10-25 02 +00 2016-03-27 03 +01 1 2016-06-05 02 +00 2016-07-10 03 +01 1 2016-10-30 02 +00 2017-03-26 03 +01 1 2017-05-21 02 +00 2017-07-02 03 +01 1 2017-10-29 02 +00 2018-03-25 03 +01 1 2018-05-13 02 +00 2018-06-17 03 +01 1 2018-10-28 03 +01 2019-05-05 02 +00 1 2019-06-09 03 +01 2020-04-19 02 +00 1 2020-05-24 03 +01 2021-04-11 02 +00 1 2021-05-16 03 +01 2022-03-27 02 +00 1 2022-05-08 03 +01 2023-03-19 02 +00 1 2023-04-23 03 +01 2024-03-10 02 +00 1 2024-04-14 03 +01 2025-02-23 02 +00 1 2025-04-06 03 +01 2026-02-15 02 +00 1 2026-03-22 03 +01 2027-02-07 02 +00 1 2027-03-14 03 +01 2028-01-23 02 +00 1 2028-02-27 03 +01 2029-01-14 02 +00 1 2029-02-18 03 +01 2029-12-30 02 +00 1 2030-02-10 03 +01 2030-12-22 02 +00 1 2031-01-26 03 +01 2031-12-14 02 +00 1 2032-01-18 03 +01 2032-11-28 02 +00 1 2033-01-09 03 +01 2033-11-20 02 +00 1 2033-12-25 03 +01 2034-11-05 02 +00 1 2034-12-17 03 +01 2035-10-28 02 +00 1 2035-12-02 03 +01 2036-10-19 02 +00 1 2036-11-23 03 +01 2037-10-04 02 +00 1 2037-11-15 03 +01 2038-09-26 02 +00 1 2038-10-31 03 +01 2039-09-18 02 +00 1 2039-10-23 03 +01 2040-09-02 02 +00 1 2040-10-14 03 +01 2041-08-25 02 +00 1 2041-09-29 03 +01 2042-08-10 02 +00 1 2042-09-21 03 +01 2043-08-02 02 +00 1 2043-09-06 03 +01 2044-07-24 02 +00 1 2044-08-28 03 +01 2045-07-09 02 +00 1 2045-08-20 03 +01 2046-07-01 02 +00 1 2046-08-05 03 +01 2047-06-23 02 +00 1 2047-07-28 03 +01 2048-06-07 02 +00 1 2048-07-19 03 +01 2049-05-30 02 +00 1 2049-07-04 03 +01 TZ="Africa/Ceuta" - - -002116 LMT 1901-01-01 00 +00 WET 1918-05-07 00 +01 WEST 1 1918-10-07 22 +00 WET 1924-04-17 00 +01 WEST 1 1924-10-05 00 +00 WET 1926-04-18 00 +01 WEST 1 1926-10-03 00 +00 WET 1927-04-10 00 +01 WEST 1 1927-10-02 00 +00 WET 1928-04-15 01 +01 WEST 1 1928-10-07 00 +00 WET 1967-06-03 13 +01 WEST 1 1967-09-30 23 +00 WET 1974-06-24 01 +01 WEST 1 1974-08-31 23 +00 WET 1976-05-01 01 +01 WEST 1 1976-07-31 23 +00 WET 1977-05-01 01 +01 WEST 1 1977-09-27 23 +00 WET 1978-06-01 01 +01 WEST 1 1978-08-03 23 +00 WET 1984-03-16 01 +01 CET 1986-03-30 03 +02 CEST 1 1986-09-28 02 +01 CET 1987-03-29 03 +02 CEST 1 1987-09-27 02 +01 CET 1988-03-27 03 +02 CEST 1 1988-09-25 02 +01 CET 1989-03-26 03 +02 CEST 1 1989-09-24 02 +01 CET 1990-03-25 03 +02 CEST 1 1990-09-30 02 +01 CET 1991-03-31 03 +02 CEST 1 1991-09-29 02 +01 CET 1992-03-29 03 +02 CEST 1 1992-09-27 02 +01 CET 1993-03-28 03 +02 CEST 1 1993-09-26 02 +01 CET 1994-03-27 03 +02 CEST 1 1994-09-25 02 +01 CET 1995-03-26 03 +02 CEST 1 1995-09-24 02 +01 CET 1996-03-31 03 +02 CEST 1 1996-10-27 02 +01 CET 1997-03-30 03 +02 CEST 1 1997-10-26 02 +01 CET 1998-03-29 03 +02 CEST 1 1998-10-25 02 +01 CET 1999-03-28 03 +02 CEST 1 1999-10-31 02 +01 CET 2000-03-26 03 +02 CEST 1 2000-10-29 02 +01 CET 2001-03-25 03 +02 CEST 1 2001-10-28 02 +01 CET 2002-03-31 03 +02 CEST 1 2002-10-27 02 +01 CET 2003-03-30 03 +02 CEST 1 2003-10-26 02 +01 CET 2004-03-28 03 +02 CEST 1 2004-10-31 02 +01 CET 2005-03-27 03 +02 CEST 1 2005-10-30 02 +01 CET 2006-03-26 03 +02 CEST 1 2006-10-29 02 +01 CET 2007-03-25 03 +02 CEST 1 2007-10-28 02 +01 CET 2008-03-30 03 +02 CEST 1 2008-10-26 02 +01 CET 2009-03-29 03 +02 CEST 1 2009-10-25 02 +01 CET 2010-03-28 03 +02 CEST 1 2010-10-31 02 +01 CET 2011-03-27 03 +02 CEST 1 2011-10-30 02 +01 CET 2012-03-25 03 +02 CEST 1 2012-10-28 02 +01 CET 2013-03-31 03 +02 CEST 1 2013-10-27 02 +01 CET 2014-03-30 03 +02 CEST 1 2014-10-26 02 +01 CET 2015-03-29 03 +02 CEST 1 2015-10-25 02 +01 CET 2016-03-27 03 +02 CEST 1 2016-10-30 02 +01 CET 2017-03-26 03 +02 CEST 1 2017-10-29 02 +01 CET 2018-03-25 03 +02 CEST 1 2018-10-28 02 +01 CET 2019-03-31 03 +02 CEST 1 2019-10-27 02 +01 CET 2020-03-29 03 +02 CEST 1 2020-10-25 02 +01 CET 2021-03-28 03 +02 CEST 1 2021-10-31 02 +01 CET 2022-03-27 03 +02 CEST 1 2022-10-30 02 +01 CET 2023-03-26 03 +02 CEST 1 2023-10-29 02 +01 CET 2024-03-31 03 +02 CEST 1 2024-10-27 02 +01 CET 2025-03-30 03 +02 CEST 1 2025-10-26 02 +01 CET 2026-03-29 03 +02 CEST 1 2026-10-25 02 +01 CET 2027-03-28 03 +02 CEST 1 2027-10-31 02 +01 CET 2028-03-26 03 +02 CEST 1 2028-10-29 02 +01 CET 2029-03-25 03 +02 CEST 1 2029-10-28 02 +01 CET 2030-03-31 03 +02 CEST 1 2030-10-27 02 +01 CET 2031-03-30 03 +02 CEST 1 2031-10-26 02 +01 CET 2032-03-28 03 +02 CEST 1 2032-10-31 02 +01 CET 2033-03-27 03 +02 CEST 1 2033-10-30 02 +01 CET 2034-03-26 03 +02 CEST 1 2034-10-29 02 +01 CET 2035-03-25 03 +02 CEST 1 2035-10-28 02 +01 CET 2036-03-30 03 +02 CEST 1 2036-10-26 02 +01 CET 2037-03-29 03 +02 CEST 1 2037-10-25 02 +01 CET 2038-03-28 03 +02 CEST 1 2038-10-31 02 +01 CET 2039-03-27 03 +02 CEST 1 2039-10-30 02 +01 CET 2040-03-25 03 +02 CEST 1 2040-10-28 02 +01 CET 2041-03-31 03 +02 CEST 1 2041-10-27 02 +01 CET 2042-03-30 03 +02 CEST 1 2042-10-26 02 +01 CET 2043-03-29 03 +02 CEST 1 2043-10-25 02 +01 CET 2044-03-27 03 +02 CEST 1 2044-10-30 02 +01 CET 2045-03-26 03 +02 CEST 1 2045-10-29 02 +01 CET 2046-03-25 03 +02 CEST 1 2046-10-28 02 +01 CET 2047-03-31 03 +02 CEST 1 2047-10-27 02 +01 CET 2048-03-29 03 +02 CEST 1 2048-10-25 02 +01 CET 2049-03-28 03 +02 CEST 1 2049-10-31 02 +01 CET TZ="Africa/El_Aaiun" - - -005248 LMT 1933-12-31 23:52:48 -01 1976-04-14 01 +00 1976-05-01 01 +01 1 1976-07-31 23 +00 1977-05-01 01 +01 1 1977-09-27 23 +00 1978-06-01 01 +01 1 1978-08-03 23 +00 2008-06-01 01 +01 1 2008-08-31 23 +00 2009-06-01 01 +01 1 2009-08-20 23 +00 2010-05-02 01 +01 1 2010-08-07 23 +00 2011-04-03 01 +01 1 2011-07-30 23 +00 2012-04-29 03 +01 1 2012-07-20 02 +00 2012-08-20 03 +01 1 2012-09-30 02 +00 2013-04-28 03 +01 1 2013-07-07 02 +00 2013-08-10 03 +01 1 2013-10-27 02 +00 2014-03-30 03 +01 1 2014-06-28 02 +00 2014-08-02 03 +01 1 2014-10-26 02 +00 2015-03-29 03 +01 1 2015-06-14 02 +00 2015-07-19 03 +01 1 2015-10-25 02 +00 2016-03-27 03 +01 1 2016-06-05 02 +00 2016-07-10 03 +01 1 2016-10-30 02 +00 2017-03-26 03 +01 1 2017-05-21 02 +00 2017-07-02 03 +01 1 2017-10-29 02 +00 2018-03-25 03 +01 1 2018-05-13 02 +00 2018-06-17 03 +01 1 2018-10-28 03 +01 2019-05-05 02 +00 1 2019-06-09 03 +01 2020-04-19 02 +00 1 2020-05-24 03 +01 2021-04-11 02 +00 1 2021-05-16 03 +01 2022-03-27 02 +00 1 2022-05-08 03 +01 2023-03-19 02 +00 1 2023-04-23 03 +01 2024-03-10 02 +00 1 2024-04-14 03 +01 2025-02-23 02 +00 1 2025-04-06 03 +01 2026-02-15 02 +00 1 2026-03-22 03 +01 2027-02-07 02 +00 1 2027-03-14 03 +01 2028-01-23 02 +00 1 2028-02-27 03 +01 2029-01-14 02 +00 1 2029-02-18 03 +01 2029-12-30 02 +00 1 2030-02-10 03 +01 2030-12-22 02 +00 1 2031-01-26 03 +01 2031-12-14 02 +00 1 2032-01-18 03 +01 2032-11-28 02 +00 1 2033-01-09 03 +01 2033-11-20 02 +00 1 2033-12-25 03 +01 2034-11-05 02 +00 1 2034-12-17 03 +01 2035-10-28 02 +00 1 2035-12-02 03 +01 2036-10-19 02 +00 1 2036-11-23 03 +01 2037-10-04 02 +00 1 2037-11-15 03 +01 2038-09-26 02 +00 1 2038-10-31 03 +01 2039-09-18 02 +00 1 2039-10-23 03 +01 2040-09-02 02 +00 1 2040-10-14 03 +01 2041-08-25 02 +00 1 2041-09-29 03 +01 2042-08-10 02 +00 1 2042-09-21 03 +01 2043-08-02 02 +00 1 2043-09-06 03 +01 2044-07-24 02 +00 1 2044-08-28 03 +01 2045-07-09 02 +00 1 2045-08-20 03 +01 2046-07-01 02 +00 1 2046-08-05 03 +01 2047-06-23 02 +00 1 2047-07-28 03 +01 2048-06-07 02 +00 1 2048-07-19 03 +01 2049-05-30 02 +00 1 2049-07-04 03 +01 TZ="Africa/Johannesburg" - - +0152 LMT 1892-02-07 23:38 +0130 SAST 1903-03-01 00:30 +02 SAST 1942-09-20 03 +03 SAST 1 1943-03-21 01 +02 SAST 1943-09-19 03 +03 SAST 1 1944-03-19 01 +02 SAST TZ="Africa/Juba" - - +020628 LMT 1930-12-31 23:53:32 +02 CAT 1970-05-01 01 +03 CAST 1 1970-10-14 23 +02 CAT 1971-04-30 01 +03 CAST 1 1971-10-14 23 +02 CAT 1972-04-30 01 +03 CAST 1 1972-10-14 23 +02 CAT 1973-04-29 01 +03 CAST 1 1973-10-14 23 +02 CAT 1974-04-28 01 +03 CAST 1 1974-10-14 23 +02 CAT 1975-04-27 01 +03 CAST 1 1975-10-14 23 +02 CAT 1976-04-25 01 +03 CAST 1 1976-10-14 23 +02 CAT 1977-04-24 01 +03 CAST 1 1977-10-14 23 +02 CAT 1978-04-30 01 +03 CAST 1 1978-10-14 23 +02 CAT 1979-04-29 01 +03 CAST 1 1979-10-14 23 +02 CAT 1980-04-27 01 +03 CAST 1 1980-10-14 23 +02 CAT 1981-04-26 01 +03 CAST 1 1981-10-14 23 +02 CAT 1982-04-25 01 +03 CAST 1 1982-10-14 23 +02 CAT 1983-04-24 01 +03 CAST 1 1983-10-14 23 +02 CAT 1984-04-29 01 +03 CAST 1 1984-10-14 23 +02 CAT 1985-04-28 01 +03 CAST 1 1985-10-14 23 +02 CAT 2000-01-15 13 +03 EAT TZ="Africa/Khartoum" - - +021008 LMT 1930-12-31 23:49:52 +02 CAT 1970-05-01 01 +03 CAST 1 1970-10-14 23 +02 CAT 1971-04-30 01 +03 CAST 1 1971-10-14 23 +02 CAT 1972-04-30 01 +03 CAST 1 1972-10-14 23 +02 CAT 1973-04-29 01 +03 CAST 1 1973-10-14 23 +02 CAT 1974-04-28 01 +03 CAST 1 1974-10-14 23 +02 CAT 1975-04-27 01 +03 CAST 1 1975-10-14 23 +02 CAT 1976-04-25 01 +03 CAST 1 1976-10-14 23 +02 CAT 1977-04-24 01 +03 CAST 1 1977-10-14 23 +02 CAT 1978-04-30 01 +03 CAST 1 1978-10-14 23 +02 CAT 1979-04-29 01 +03 CAST 1 1979-10-14 23 +02 CAT 1980-04-27 01 +03 CAST 1 1980-10-14 23 +02 CAT 1981-04-26 01 +03 CAST 1 1981-10-14 23 +02 CAT 1982-04-25 01 +03 CAST 1 1982-10-14 23 +02 CAT 1983-04-24 01 +03 CAST 1 1983-10-14 23 +02 CAT 1984-04-29 01 +03 CAST 1 1984-10-14 23 +02 CAT 1985-04-28 01 +03 CAST 1 1985-10-14 23 +02 CAT 2000-01-15 13 +03 EAT 2017-10-31 23 +02 CAT TZ="Africa/Lagos" - - +001336 LMT 1919-09-01 00:46:24 +01 WAT TZ="Africa/Maputo" - - +021020 LMT 1903-02-28 23:49:40 +02 CAT TZ="Africa/Monrovia" - - -004308 LMT 1882-01-01 00 -004308 MMT 1919-02-28 23:58:38 -004430 MMT 1972-01-07 00:44:30 +00 GMT TZ="Africa/Nairobi" - - +022716 LMT 1928-07-01 00:32:44 +03 EAT 1929-12-31 23:30 +0230 1940-01-01 00:15 +0245 1960-01-01 00:15 +03 EAT TZ="Africa/Ndjamena" - - +010012 LMT 1911-12-31 23:59:48 +01 WAT 1979-10-14 01 +02 WAST 1 1980-03-07 23 +01 WAT TZ="Africa/Sao_Tome" - - +002656 LMT 1883-12-31 22:56:19 -003645 LMT 1912-01-01 00 +00 GMT 2018-01-01 02 +01 WAT 2019-01-01 01 +00 GMT TZ="Africa/Tripoli" - - +005244 LMT 1920-01-01 00:07:16 +01 CET 1951-10-14 03 +02 CEST 1 1951-12-31 23 +01 CET 1953-10-09 03 +02 CEST 1 1953-12-31 23 +01 CET 1955-09-30 01 +02 CEST 1 1955-12-31 23 +01 CET 1959-01-01 01 +02 EET 1981-12-31 23 +01 CET 1982-04-01 01 +02 CEST 1 1982-09-30 23 +01 CET 1983-04-01 01 +02 CEST 1 1983-09-30 23 +01 CET 1984-04-01 01 +02 CEST 1 1984-09-30 23 +01 CET 1985-04-06 01 +02 CEST 1 1985-09-30 23 +01 CET 1986-04-04 01 +02 CEST 1 1986-10-02 23 +01 CET 1987-04-01 01 +02 CEST 1 1987-09-30 23 +01 CET 1988-04-01 01 +02 CEST 1 1988-09-30 23 +01 CET 1989-04-01 01 +02 CEST 1 1989-09-30 23 +01 CET 1990-05-04 01 +02 EET 1996-09-29 23 +01 CET 1997-04-04 01 +02 CEST 1 1997-10-04 00 +02 EET 2012-11-10 01 +01 CET 2013-03-29 02 +02 CEST 1 2013-10-25 02 +02 EET TZ="Africa/Tunis" - - +004044 LMT 1881-05-11 23:28:37 +000921 PMT 1911-03-11 00:50:39 +01 CET 1939-04-16 00 +02 CEST 1 1939-11-18 23 +01 CET 1940-02-26 00 +02 CEST 1 1941-10-05 23 +01 CET 1942-03-09 01 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-04-17 01 +01 CET 1943-04-25 03 +02 CEST 1 1943-10-04 01 +01 CET 1944-04-03 03 +02 CEST 1 1944-10-07 23 +01 CET 1945-04-02 03 +02 CEST 1 1945-09-15 23 +01 CET 1977-04-30 01 +02 CEST 1 1977-09-24 00 +01 CET 1978-05-01 01 +02 CEST 1 1978-10-01 00 +01 CET 1988-06-01 01 +02 CEST 1 1988-09-25 00 +01 CET 1989-03-26 01 +02 CEST 1 1989-09-24 00 +01 CET 1990-05-01 01 +02 CEST 1 1990-09-30 00 +01 CET 2005-05-01 01 +02 CEST 1 2005-09-30 01 +01 CET 2006-03-26 03 +02 CEST 1 2006-10-29 02 +01 CET 2007-03-25 03 +02 CEST 1 2007-10-28 02 +01 CET 2008-03-30 03 +02 CEST 1 2008-10-26 02 +01 CET TZ="Africa/Windhoek" - - +010824 LMT 1892-02-08 00:21:36 +0130 1903-03-01 00:30 +02 SAST 1942-09-20 03 +03 SAST 1 1943-03-21 01 +02 SAST 1990-03-21 00 +02 CAT 1994-03-20 23 +01 WAT 1 1994-09-04 03 +02 CAT 1995-04-02 01 +01 WAT 1 1995-09-03 03 +02 CAT 1996-04-07 01 +01 WAT 1 1996-09-01 03 +02 CAT 1997-04-06 01 +01 WAT 1 1997-09-07 03 +02 CAT 1998-04-05 01 +01 WAT 1 1998-09-06 03 +02 CAT 1999-04-04 01 +01 WAT 1 1999-09-05 03 +02 CAT 2000-04-02 01 +01 WAT 1 2000-09-03 03 +02 CAT 2001-04-01 01 +01 WAT 1 2001-09-02 03 +02 CAT 2002-04-07 01 +01 WAT 1 2002-09-01 03 +02 CAT 2003-04-06 01 +01 WAT 1 2003-09-07 03 +02 CAT 2004-04-04 01 +01 WAT 1 2004-09-05 03 +02 CAT 2005-04-03 01 +01 WAT 1 2005-09-04 03 +02 CAT 2006-04-02 01 +01 WAT 1 2006-09-03 03 +02 CAT 2007-04-01 01 +01 WAT 1 2007-09-02 03 +02 CAT 2008-04-06 01 +01 WAT 1 2008-09-07 03 +02 CAT 2009-04-05 01 +01 WAT 1 2009-09-06 03 +02 CAT 2010-04-04 01 +01 WAT 1 2010-09-05 03 +02 CAT 2011-04-03 01 +01 WAT 1 2011-09-04 03 +02 CAT 2012-04-01 01 +01 WAT 1 2012-09-02 03 +02 CAT 2013-04-07 01 +01 WAT 1 2013-09-01 03 +02 CAT 2014-04-06 01 +01 WAT 1 2014-09-07 03 +02 CAT 2015-04-05 01 +01 WAT 1 2015-09-06 03 +02 CAT 2016-04-03 01 +01 WAT 1 2016-09-04 03 +02 CAT 2017-04-02 01 +01 WAT 1 2017-09-03 03 +02 CAT TZ="America/Adak" - - +121322 LMT 1867-10-18 12:44:35 -114638 LMT 1900-08-20 12:46:38 -11 NST 1942-02-09 03 -10 NWT 1 1945-08-14 13 -10 NPT 1 1945-09-30 01 -11 NST 1967-04-01 00 -11 BST 1969-04-27 03 -10 BDT 1 1969-10-26 01 -11 BST 1970-04-26 03 -10 BDT 1 1970-10-25 01 -11 BST 1971-04-25 03 -10 BDT 1 1971-10-31 01 -11 BST 1972-04-30 03 -10 BDT 1 1972-10-29 01 -11 BST 1973-04-29 03 -10 BDT 1 1973-10-28 01 -11 BST 1974-01-06 03 -10 BDT 1 1974-10-27 01 -11 BST 1975-02-23 03 -10 BDT 1 1975-10-26 01 -11 BST 1976-04-25 03 -10 BDT 1 1976-10-31 01 -11 BST 1977-04-24 03 -10 BDT 1 1977-10-30 01 -11 BST 1978-04-30 03 -10 BDT 1 1978-10-29 01 -11 BST 1979-04-29 03 -10 BDT 1 1979-10-28 01 -11 BST 1980-04-27 03 -10 BDT 1 1980-10-26 01 -11 BST 1981-04-26 03 -10 BDT 1 1981-10-25 01 -11 BST 1982-04-25 03 -10 BDT 1 1982-10-31 01 -11 BST 1983-04-24 03 -10 BDT 1 1983-10-30 02 -10 AHST 1983-11-30 00 -10 HST 1984-04-29 03 -09 HDT 1 1984-10-28 01 -10 HST 1985-04-28 03 -09 HDT 1 1985-10-27 01 -10 HST 1986-04-27 03 -09 HDT 1 1986-10-26 01 -10 HST 1987-04-05 03 -09 HDT 1 1987-10-25 01 -10 HST 1988-04-03 03 -09 HDT 1 1988-10-30 01 -10 HST 1989-04-02 03 -09 HDT 1 1989-10-29 01 -10 HST 1990-04-01 03 -09 HDT 1 1990-10-28 01 -10 HST 1991-04-07 03 -09 HDT 1 1991-10-27 01 -10 HST 1992-04-05 03 -09 HDT 1 1992-10-25 01 -10 HST 1993-04-04 03 -09 HDT 1 1993-10-31 01 -10 HST 1994-04-03 03 -09 HDT 1 1994-10-30 01 -10 HST 1995-04-02 03 -09 HDT 1 1995-10-29 01 -10 HST 1996-04-07 03 -09 HDT 1 1996-10-27 01 -10 HST 1997-04-06 03 -09 HDT 1 1997-10-26 01 -10 HST 1998-04-05 03 -09 HDT 1 1998-10-25 01 -10 HST 1999-04-04 03 -09 HDT 1 1999-10-31 01 -10 HST 2000-04-02 03 -09 HDT 1 2000-10-29 01 -10 HST 2001-04-01 03 -09 HDT 1 2001-10-28 01 -10 HST 2002-04-07 03 -09 HDT 1 2002-10-27 01 -10 HST 2003-04-06 03 -09 HDT 1 2003-10-26 01 -10 HST 2004-04-04 03 -09 HDT 1 2004-10-31 01 -10 HST 2005-04-03 03 -09 HDT 1 2005-10-30 01 -10 HST 2006-04-02 03 -09 HDT 1 2006-10-29 01 -10 HST 2007-03-11 03 -09 HDT 1 2007-11-04 01 -10 HST 2008-03-09 03 -09 HDT 1 2008-11-02 01 -10 HST 2009-03-08 03 -09 HDT 1 2009-11-01 01 -10 HST 2010-03-14 03 -09 HDT 1 2010-11-07 01 -10 HST 2011-03-13 03 -09 HDT 1 2011-11-06 01 -10 HST 2012-03-11 03 -09 HDT 1 2012-11-04 01 -10 HST 2013-03-10 03 -09 HDT 1 2013-11-03 01 -10 HST 2014-03-09 03 -09 HDT 1 2014-11-02 01 -10 HST 2015-03-08 03 -09 HDT 1 2015-11-01 01 -10 HST 2016-03-13 03 -09 HDT 1 2016-11-06 01 -10 HST 2017-03-12 03 -09 HDT 1 2017-11-05 01 -10 HST 2018-03-11 03 -09 HDT 1 2018-11-04 01 -10 HST 2019-03-10 03 -09 HDT 1 2019-11-03 01 -10 HST 2020-03-08 03 -09 HDT 1 2020-11-01 01 -10 HST 2021-03-14 03 -09 HDT 1 2021-11-07 01 -10 HST 2022-03-13 03 -09 HDT 1 2022-11-06 01 -10 HST 2023-03-12 03 -09 HDT 1 2023-11-05 01 -10 HST 2024-03-10 03 -09 HDT 1 2024-11-03 01 -10 HST 2025-03-09 03 -09 HDT 1 2025-11-02 01 -10 HST 2026-03-08 03 -09 HDT 1 2026-11-01 01 -10 HST 2027-03-14 03 -09 HDT 1 2027-11-07 01 -10 HST 2028-03-12 03 -09 HDT 1 2028-11-05 01 -10 HST 2029-03-11 03 -09 HDT 1 2029-11-04 01 -10 HST 2030-03-10 03 -09 HDT 1 2030-11-03 01 -10 HST 2031-03-09 03 -09 HDT 1 2031-11-02 01 -10 HST 2032-03-14 03 -09 HDT 1 2032-11-07 01 -10 HST 2033-03-13 03 -09 HDT 1 2033-11-06 01 -10 HST 2034-03-12 03 -09 HDT 1 2034-11-05 01 -10 HST 2035-03-11 03 -09 HDT 1 2035-11-04 01 -10 HST 2036-03-09 03 -09 HDT 1 2036-11-02 01 -10 HST 2037-03-08 03 -09 HDT 1 2037-11-01 01 -10 HST 2038-03-14 03 -09 HDT 1 2038-11-07 01 -10 HST 2039-03-13 03 -09 HDT 1 2039-11-06 01 -10 HST 2040-03-11 03 -09 HDT 1 2040-11-04 01 -10 HST 2041-03-10 03 -09 HDT 1 2041-11-03 01 -10 HST 2042-03-09 03 -09 HDT 1 2042-11-02 01 -10 HST 2043-03-08 03 -09 HDT 1 2043-11-01 01 -10 HST 2044-03-13 03 -09 HDT 1 2044-11-06 01 -10 HST 2045-03-12 03 -09 HDT 1 2045-11-05 01 -10 HST 2046-03-11 03 -09 HDT 1 2046-11-04 01 -10 HST 2047-03-10 03 -09 HDT 1 2047-11-03 01 -10 HST 2048-03-08 03 -09 HDT 1 2048-11-01 01 -10 HST 2049-03-14 03 -09 HDT 1 2049-11-07 01 -10 HST TZ="America/Anchorage" - - +140024 LMT 1867-10-18 14:31:37 -095936 LMT 1900-08-20 11:59:36 -10 AST 1942-02-09 03 -09 AWT 1 1945-08-14 14 -09 APT 1 1945-09-30 01 -10 AST 1967-04-01 00 -10 AHST 1969-04-27 03 -09 AHDT 1 1969-10-26 01 -10 AHST 1970-04-26 03 -09 AHDT 1 1970-10-25 01 -10 AHST 1971-04-25 03 -09 AHDT 1 1971-10-31 01 -10 AHST 1972-04-30 03 -09 AHDT 1 1972-10-29 01 -10 AHST 1973-04-29 03 -09 AHDT 1 1973-10-28 01 -10 AHST 1974-01-06 03 -09 AHDT 1 1974-10-27 01 -10 AHST 1975-02-23 03 -09 AHDT 1 1975-10-26 01 -10 AHST 1976-04-25 03 -09 AHDT 1 1976-10-31 01 -10 AHST 1977-04-24 03 -09 AHDT 1 1977-10-30 01 -10 AHST 1978-04-30 03 -09 AHDT 1 1978-10-29 01 -10 AHST 1979-04-29 03 -09 AHDT 1 1979-10-28 01 -10 AHST 1980-04-27 03 -09 AHDT 1 1980-10-26 01 -10 AHST 1981-04-26 03 -09 AHDT 1 1981-10-25 01 -10 AHST 1982-04-25 03 -09 AHDT 1 1982-10-31 01 -10 AHST 1983-04-24 03 -09 AHDT 1 1983-10-30 02 -09 YST 1983-11-30 00 -09 AKST 1984-04-29 03 -08 AKDT 1 1984-10-28 01 -09 AKST 1985-04-28 03 -08 AKDT 1 1985-10-27 01 -09 AKST 1986-04-27 03 -08 AKDT 1 1986-10-26 01 -09 AKST 1987-04-05 03 -08 AKDT 1 1987-10-25 01 -09 AKST 1988-04-03 03 -08 AKDT 1 1988-10-30 01 -09 AKST 1989-04-02 03 -08 AKDT 1 1989-10-29 01 -09 AKST 1990-04-01 03 -08 AKDT 1 1990-10-28 01 -09 AKST 1991-04-07 03 -08 AKDT 1 1991-10-27 01 -09 AKST 1992-04-05 03 -08 AKDT 1 1992-10-25 01 -09 AKST 1993-04-04 03 -08 AKDT 1 1993-10-31 01 -09 AKST 1994-04-03 03 -08 AKDT 1 1994-10-30 01 -09 AKST 1995-04-02 03 -08 AKDT 1 1995-10-29 01 -09 AKST 1996-04-07 03 -08 AKDT 1 1996-10-27 01 -09 AKST 1997-04-06 03 -08 AKDT 1 1997-10-26 01 -09 AKST 1998-04-05 03 -08 AKDT 1 1998-10-25 01 -09 AKST 1999-04-04 03 -08 AKDT 1 1999-10-31 01 -09 AKST 2000-04-02 03 -08 AKDT 1 2000-10-29 01 -09 AKST 2001-04-01 03 -08 AKDT 1 2001-10-28 01 -09 AKST 2002-04-07 03 -08 AKDT 1 2002-10-27 01 -09 AKST 2003-04-06 03 -08 AKDT 1 2003-10-26 01 -09 AKST 2004-04-04 03 -08 AKDT 1 2004-10-31 01 -09 AKST 2005-04-03 03 -08 AKDT 1 2005-10-30 01 -09 AKST 2006-04-02 03 -08 AKDT 1 2006-10-29 01 -09 AKST 2007-03-11 03 -08 AKDT 1 2007-11-04 01 -09 AKST 2008-03-09 03 -08 AKDT 1 2008-11-02 01 -09 AKST 2009-03-08 03 -08 AKDT 1 2009-11-01 01 -09 AKST 2010-03-14 03 -08 AKDT 1 2010-11-07 01 -09 AKST 2011-03-13 03 -08 AKDT 1 2011-11-06 01 -09 AKST 2012-03-11 03 -08 AKDT 1 2012-11-04 01 -09 AKST 2013-03-10 03 -08 AKDT 1 2013-11-03 01 -09 AKST 2014-03-09 03 -08 AKDT 1 2014-11-02 01 -09 AKST 2015-03-08 03 -08 AKDT 1 2015-11-01 01 -09 AKST 2016-03-13 03 -08 AKDT 1 2016-11-06 01 -09 AKST 2017-03-12 03 -08 AKDT 1 2017-11-05 01 -09 AKST 2018-03-11 03 -08 AKDT 1 2018-11-04 01 -09 AKST 2019-03-10 03 -08 AKDT 1 2019-11-03 01 -09 AKST 2020-03-08 03 -08 AKDT 1 2020-11-01 01 -09 AKST 2021-03-14 03 -08 AKDT 1 2021-11-07 01 -09 AKST 2022-03-13 03 -08 AKDT 1 2022-11-06 01 -09 AKST 2023-03-12 03 -08 AKDT 1 2023-11-05 01 -09 AKST 2024-03-10 03 -08 AKDT 1 2024-11-03 01 -09 AKST 2025-03-09 03 -08 AKDT 1 2025-11-02 01 -09 AKST 2026-03-08 03 -08 AKDT 1 2026-11-01 01 -09 AKST 2027-03-14 03 -08 AKDT 1 2027-11-07 01 -09 AKST 2028-03-12 03 -08 AKDT 1 2028-11-05 01 -09 AKST 2029-03-11 03 -08 AKDT 1 2029-11-04 01 -09 AKST 2030-03-10 03 -08 AKDT 1 2030-11-03 01 -09 AKST 2031-03-09 03 -08 AKDT 1 2031-11-02 01 -09 AKST 2032-03-14 03 -08 AKDT 1 2032-11-07 01 -09 AKST 2033-03-13 03 -08 AKDT 1 2033-11-06 01 -09 AKST 2034-03-12 03 -08 AKDT 1 2034-11-05 01 -09 AKST 2035-03-11 03 -08 AKDT 1 2035-11-04 01 -09 AKST 2036-03-09 03 -08 AKDT 1 2036-11-02 01 -09 AKST 2037-03-08 03 -08 AKDT 1 2037-11-01 01 -09 AKST 2038-03-14 03 -08 AKDT 1 2038-11-07 01 -09 AKST 2039-03-13 03 -08 AKDT 1 2039-11-06 01 -09 AKST 2040-03-11 03 -08 AKDT 1 2040-11-04 01 -09 AKST 2041-03-10 03 -08 AKDT 1 2041-11-03 01 -09 AKST 2042-03-09 03 -08 AKDT 1 2042-11-02 01 -09 AKST 2043-03-08 03 -08 AKDT 1 2043-11-01 01 -09 AKST 2044-03-13 03 -08 AKDT 1 2044-11-06 01 -09 AKST 2045-03-12 03 -08 AKDT 1 2045-11-05 01 -09 AKST 2046-03-11 03 -08 AKDT 1 2046-11-04 01 -09 AKST 2047-03-10 03 -08 AKDT 1 2047-11-03 01 -09 AKST 2048-03-08 03 -08 AKDT 1 2048-11-01 01 -09 AKST 2049-03-14 03 -08 AKDT 1 2049-11-07 01 -09 AKST TZ="America/Araguaina" - - -031248 LMT 1914-01-01 00:12:48 -03 1931-10-03 12 -02 1 1932-03-31 23 -03 1932-10-03 01 -02 1 1933-03-31 23 -03 1949-12-01 01 -02 1 1950-04-16 00 -03 1950-12-01 01 -02 1 1951-03-31 23 -03 1951-12-01 01 -02 1 1952-03-31 23 -03 1952-12-01 01 -02 1 1953-02-28 23 -03 1963-12-09 01 -02 1 1964-02-29 23 -03 1965-01-31 01 -02 1 1965-03-30 23 -03 1965-12-01 01 -02 1 1966-02-28 23 -03 1966-11-01 01 -02 1 1967-02-28 23 -03 1967-11-01 01 -02 1 1968-02-29 23 -03 1985-11-02 01 -02 1 1986-03-14 23 -03 1986-10-25 01 -02 1 1987-02-13 23 -03 1987-10-25 01 -02 1 1988-02-06 23 -03 1988-10-16 01 -02 1 1989-01-28 23 -03 1989-10-15 01 -02 1 1990-02-10 23 -03 1995-10-15 01 -02 1 1996-02-10 23 -03 1996-10-06 01 -02 1 1997-02-15 23 -03 1997-10-06 01 -02 1 1998-02-28 23 -03 1998-10-11 01 -02 1 1999-02-20 23 -03 1999-10-03 01 -02 1 2000-02-26 23 -03 2000-10-08 01 -02 1 2001-02-17 23 -03 2001-10-14 01 -02 1 2002-02-16 23 -03 2002-11-03 01 -02 1 2003-02-15 23 -03 2012-10-21 01 -02 1 2013-02-16 23 -03 TZ="America/Argentina/Buenos_Aires" - - -035348 LMT 1894-10-30 23:37 -041648 CMT 1920-05-01 00:16:48 -04 1930-12-01 01 -03 1 1931-03-31 23 -04 1931-10-15 01 -03 1 1932-02-29 23 -04 1932-11-01 01 -03 1 1933-02-28 23 -04 1933-11-01 01 -03 1 1934-02-28 23 -04 1934-11-01 01 -03 1 1935-02-28 23 -04 1935-11-01 01 -03 1 1936-02-29 23 -04 1936-11-01 01 -03 1 1937-02-28 23 -04 1937-11-01 01 -03 1 1938-02-28 23 -04 1938-11-01 01 -03 1 1939-02-28 23 -04 1939-11-01 01 -03 1 1940-02-29 23 -04 1940-07-01 01 -03 1 1941-06-14 23 -04 1941-10-15 01 -03 1 1943-07-31 23 -04 1943-10-15 01 -03 1 1946-02-28 23 -04 1946-10-01 01 -03 1 1963-09-30 23 -04 1963-12-15 01 -03 1 1964-02-29 23 -04 1964-10-15 01 -03 1 1965-02-28 23 -04 1965-10-15 01 -03 1 1966-02-28 23 -04 1966-10-15 01 -03 1 1967-04-01 23 -04 1967-10-01 01 -03 1 1968-04-06 23 -04 1968-10-06 01 -03 1 1969-04-05 23 -04 1969-10-05 01 -03 1974-01-23 01 -02 1 1974-04-30 23 -03 1988-12-01 01 -02 1 1989-03-04 23 -03 1989-10-15 01 -02 1 1990-03-03 23 -03 1990-10-21 01 -02 1 1991-03-02 23 -03 1991-10-20 01 -02 1 1992-02-29 23 -03 1992-10-18 01 -02 1 1993-03-06 23 -03 1999-10-03 00 -03 1 2000-03-03 00 -03 2007-12-30 01 -02 1 2008-03-15 23 -03 2008-10-19 01 -02 1 2009-03-14 23 -03 TZ="America/Argentina/Catamarca" - - -042308 LMT 1894-10-31 00:06:20 -041648 CMT 1920-05-01 00:16:48 -04 1930-12-01 01 -03 1 1931-03-31 23 -04 1931-10-15 01 -03 1 1932-02-29 23 -04 1932-11-01 01 -03 1 1933-02-28 23 -04 1933-11-01 01 -03 1 1934-02-28 23 -04 1934-11-01 01 -03 1 1935-02-28 23 -04 1935-11-01 01 -03 1 1936-02-29 23 -04 1936-11-01 01 -03 1 1937-02-28 23 -04 1937-11-01 01 -03 1 1938-02-28 23 -04 1938-11-01 01 -03 1 1939-02-28 23 -04 1939-11-01 01 -03 1 1940-02-29 23 -04 1940-07-01 01 -03 1 1941-06-14 23 -04 1941-10-15 01 -03 1 1943-07-31 23 -04 1943-10-15 01 -03 1 1946-02-28 23 -04 1946-10-01 01 -03 1 1963-09-30 23 -04 1963-12-15 01 -03 1 1964-02-29 23 -04 1964-10-15 01 -03 1 1965-02-28 23 -04 1965-10-15 01 -03 1 1966-02-28 23 -04 1966-10-15 01 -03 1 1967-04-01 23 -04 1967-10-01 01 -03 1 1968-04-06 23 -04 1968-10-06 01 -03 1 1969-04-05 23 -04 1969-10-05 01 -03 1974-01-23 01 -02 1 1974-04-30 23 -03 1988-12-01 01 -02 1 1989-03-04 23 -03 1989-10-15 01 -02 1 1990-03-03 23 -03 1990-10-21 01 -02 1 1991-03-02 22 -04 1991-10-20 02 -02 1 1992-02-29 23 -03 1992-10-18 01 -02 1 1993-03-06 23 -03 1999-10-03 00 -03 1 2000-03-03 00 -03 2004-05-31 23 -04 2004-06-20 01 -03 2007-12-30 01 -02 1 2008-03-15 23 -03 TZ="America/Argentina/Cordoba" - - -041648 LMT 1894-10-31 00 -041648 CMT 1920-05-01 00:16:48 -04 1930-12-01 01 -03 1 1931-03-31 23 -04 1931-10-15 01 -03 1 1932-02-29 23 -04 1932-11-01 01 -03 1 1933-02-28 23 -04 1933-11-01 01 -03 1 1934-02-28 23 -04 1934-11-01 01 -03 1 1935-02-28 23 -04 1935-11-01 01 -03 1 1936-02-29 23 -04 1936-11-01 01 -03 1 1937-02-28 23 -04 1937-11-01 01 -03 1 1938-02-28 23 -04 1938-11-01 01 -03 1 1939-02-28 23 -04 1939-11-01 01 -03 1 1940-02-29 23 -04 1940-07-01 01 -03 1 1941-06-14 23 -04 1941-10-15 01 -03 1 1943-07-31 23 -04 1943-10-15 01 -03 1 1946-02-28 23 -04 1946-10-01 01 -03 1 1963-09-30 23 -04 1963-12-15 01 -03 1 1964-02-29 23 -04 1964-10-15 01 -03 1 1965-02-28 23 -04 1965-10-15 01 -03 1 1966-02-28 23 -04 1966-10-15 01 -03 1 1967-04-01 23 -04 1967-10-01 01 -03 1 1968-04-06 23 -04 1968-10-06 01 -03 1 1969-04-05 23 -04 1969-10-05 01 -03 1974-01-23 01 -02 1 1974-04-30 23 -03 1988-12-01 01 -02 1 1989-03-04 23 -03 1989-10-15 01 -02 1 1990-03-03 23 -03 1990-10-21 01 -02 1 1991-03-02 22 -04 1991-10-20 02 -02 1 1992-02-29 23 -03 1992-10-18 01 -02 1 1993-03-06 23 -03 1999-10-03 00 -03 1 2000-03-03 00 -03 2007-12-30 01 -02 1 2008-03-15 23 -03 2008-10-19 01 -02 1 2009-03-14 23 -03 TZ="America/Argentina/Jujuy" - - -042112 LMT 1894-10-31 00:04:24 -041648 CMT 1920-05-01 00:16:48 -04 1930-12-01 01 -03 1 1931-03-31 23 -04 1931-10-15 01 -03 1 1932-02-29 23 -04 1932-11-01 01 -03 1 1933-02-28 23 -04 1933-11-01 01 -03 1 1934-02-28 23 -04 1934-11-01 01 -03 1 1935-02-28 23 -04 1935-11-01 01 -03 1 1936-02-29 23 -04 1936-11-01 01 -03 1 1937-02-28 23 -04 1937-11-01 01 -03 1 1938-02-28 23 -04 1938-11-01 01 -03 1 1939-02-28 23 -04 1939-11-01 01 -03 1 1940-02-29 23 -04 1940-07-01 01 -03 1 1941-06-14 23 -04 1941-10-15 01 -03 1 1943-07-31 23 -04 1943-10-15 01 -03 1 1946-02-28 23 -04 1946-10-01 01 -03 1 1963-09-30 23 -04 1963-12-15 01 -03 1 1964-02-29 23 -04 1964-10-15 01 -03 1 1965-02-28 23 -04 1965-10-15 01 -03 1 1966-02-28 23 -04 1966-10-15 01 -03 1 1967-04-01 23 -04 1967-10-01 01 -03 1 1968-04-06 23 -04 1968-10-06 01 -03 1 1969-04-05 23 -04 1969-10-05 01 -03 1974-01-23 01 -02 1 1974-04-30 23 -03 1988-12-01 01 -02 1 1989-03-04 23 -03 1989-10-15 01 -02 1 1990-03-03 22 -04 1990-10-28 01 -03 1 1991-03-16 23 -04 1991-10-06 02 -02 1 1992-02-29 23 -03 1992-10-18 01 -02 1 1993-03-06 23 -03 1999-10-03 00 -03 1 2000-03-03 00 -03 2007-12-30 01 -02 1 2008-03-15 23 -03 TZ="America/Argentina/La_Rioja" - - -042724 LMT 1894-10-31 00:10:36 -041648 CMT 1920-05-01 00:16:48 -04 1930-12-01 01 -03 1 1931-03-31 23 -04 1931-10-15 01 -03 1 1932-02-29 23 -04 1932-11-01 01 -03 1 1933-02-28 23 -04 1933-11-01 01 -03 1 1934-02-28 23 -04 1934-11-01 01 -03 1 1935-02-28 23 -04 1935-11-01 01 -03 1 1936-02-29 23 -04 1936-11-01 01 -03 1 1937-02-28 23 -04 1937-11-01 01 -03 1 1938-02-28 23 -04 1938-11-01 01 -03 1 1939-02-28 23 -04 1939-11-01 01 -03 1 1940-02-29 23 -04 1940-07-01 01 -03 1 1941-06-14 23 -04 1941-10-15 01 -03 1 1943-07-31 23 -04 1943-10-15 01 -03 1 1946-02-28 23 -04 1946-10-01 01 -03 1 1963-09-30 23 -04 1963-12-15 01 -03 1 1964-02-29 23 -04 1964-10-15 01 -03 1 1965-02-28 23 -04 1965-10-15 01 -03 1 1966-02-28 23 -04 1966-10-15 01 -03 1 1967-04-01 23 -04 1967-10-01 01 -03 1 1968-04-06 23 -04 1968-10-06 01 -03 1 1969-04-05 23 -04 1969-10-05 01 -03 1974-01-23 01 -02 1 1974-04-30 23 -03 1988-12-01 01 -02 1 1989-03-04 23 -03 1989-10-15 01 -02 1 1990-03-03 23 -03 1990-10-21 01 -02 1 1991-02-28 22 -04 1991-05-07 01 -03 1991-10-20 01 -02 1 1992-02-29 23 -03 1992-10-18 01 -02 1 1993-03-06 23 -03 1999-10-03 00 -03 1 2000-03-03 00 -03 2004-05-31 23 -04 2004-06-20 01 -03 2007-12-30 01 -02 1 2008-03-15 23 -03 TZ="America/Argentina/Mendoza" - - -043516 LMT 1894-10-31 00:18:28 -041648 CMT 1920-05-01 00:16:48 -04 1930-12-01 01 -03 1 1931-03-31 23 -04 1931-10-15 01 -03 1 1932-02-29 23 -04 1932-11-01 01 -03 1 1933-02-28 23 -04 1933-11-01 01 -03 1 1934-02-28 23 -04 1934-11-01 01 -03 1 1935-02-28 23 -04 1935-11-01 01 -03 1 1936-02-29 23 -04 1936-11-01 01 -03 1 1937-02-28 23 -04 1937-11-01 01 -03 1 1938-02-28 23 -04 1938-11-01 01 -03 1 1939-02-28 23 -04 1939-11-01 01 -03 1 1940-02-29 23 -04 1940-07-01 01 -03 1 1941-06-14 23 -04 1941-10-15 01 -03 1 1943-07-31 23 -04 1943-10-15 01 -03 1 1946-02-28 23 -04 1946-10-01 01 -03 1 1963-09-30 23 -04 1963-12-15 01 -03 1 1964-02-29 23 -04 1964-10-15 01 -03 1 1965-02-28 23 -04 1965-10-15 01 -03 1 1966-02-28 23 -04 1966-10-15 01 -03 1 1967-04-01 23 -04 1967-10-01 01 -03 1 1968-04-06 23 -04 1968-10-06 01 -03 1 1969-04-05 23 -04 1969-10-05 01 -03 1974-01-23 01 -02 1 1974-04-30 23 -03 1988-12-01 01 -02 1 1989-03-04 23 -03 1989-10-15 01 -02 1 1990-03-03 22 -04 1990-10-15 01 -03 1 1991-02-28 23 -04 1991-10-15 01 -03 1 1992-02-29 23 -04 1992-10-18 02 -02 1 1993-03-06 23 -03 1999-10-03 00 -03 1 2000-03-03 00 -03 2004-05-22 23 -04 2004-09-26 01 -03 2007-12-30 01 -02 1 2008-03-15 23 -03 TZ="America/Argentina/Rio_Gallegos" - - -043652 LMT 1894-10-31 00:20:04 -041648 CMT 1920-05-01 00:16:48 -04 1930-12-01 01 -03 1 1931-03-31 23 -04 1931-10-15 01 -03 1 1932-02-29 23 -04 1932-11-01 01 -03 1 1933-02-28 23 -04 1933-11-01 01 -03 1 1934-02-28 23 -04 1934-11-01 01 -03 1 1935-02-28 23 -04 1935-11-01 01 -03 1 1936-02-29 23 -04 1936-11-01 01 -03 1 1937-02-28 23 -04 1937-11-01 01 -03 1 1938-02-28 23 -04 1938-11-01 01 -03 1 1939-02-28 23 -04 1939-11-01 01 -03 1 1940-02-29 23 -04 1940-07-01 01 -03 1 1941-06-14 23 -04 1941-10-15 01 -03 1 1943-07-31 23 -04 1943-10-15 01 -03 1 1946-02-28 23 -04 1946-10-01 01 -03 1 1963-09-30 23 -04 1963-12-15 01 -03 1 1964-02-29 23 -04 1964-10-15 01 -03 1 1965-02-28 23 -04 1965-10-15 01 -03 1 1966-02-28 23 -04 1966-10-15 01 -03 1 1967-04-01 23 -04 1967-10-01 01 -03 1 1968-04-06 23 -04 1968-10-06 01 -03 1 1969-04-05 23 -04 1969-10-05 01 -03 1974-01-23 01 -02 1 1974-04-30 23 -03 1988-12-01 01 -02 1 1989-03-04 23 -03 1989-10-15 01 -02 1 1990-03-03 23 -03 1990-10-21 01 -02 1 1991-03-02 23 -03 1991-10-20 01 -02 1 1992-02-29 23 -03 1992-10-18 01 -02 1 1993-03-06 23 -03 1999-10-03 00 -03 1 2000-03-03 00 -03 2004-05-31 23 -04 2004-06-20 01 -03 2007-12-30 01 -02 1 2008-03-15 23 -03 TZ="America/Argentina/Salta" - - -042140 LMT 1894-10-31 00:04:52 -041648 CMT 1920-05-01 00:16:48 -04 1930-12-01 01 -03 1 1931-03-31 23 -04 1931-10-15 01 -03 1 1932-02-29 23 -04 1932-11-01 01 -03 1 1933-02-28 23 -04 1933-11-01 01 -03 1 1934-02-28 23 -04 1934-11-01 01 -03 1 1935-02-28 23 -04 1935-11-01 01 -03 1 1936-02-29 23 -04 1936-11-01 01 -03 1 1937-02-28 23 -04 1937-11-01 01 -03 1 1938-02-28 23 -04 1938-11-01 01 -03 1 1939-02-28 23 -04 1939-11-01 01 -03 1 1940-02-29 23 -04 1940-07-01 01 -03 1 1941-06-14 23 -04 1941-10-15 01 -03 1 1943-07-31 23 -04 1943-10-15 01 -03 1 1946-02-28 23 -04 1946-10-01 01 -03 1 1963-09-30 23 -04 1963-12-15 01 -03 1 1964-02-29 23 -04 1964-10-15 01 -03 1 1965-02-28 23 -04 1965-10-15 01 -03 1 1966-02-28 23 -04 1966-10-15 01 -03 1 1967-04-01 23 -04 1967-10-01 01 -03 1 1968-04-06 23 -04 1968-10-06 01 -03 1 1969-04-05 23 -04 1969-10-05 01 -03 1974-01-23 01 -02 1 1974-04-30 23 -03 1988-12-01 01 -02 1 1989-03-04 23 -03 1989-10-15 01 -02 1 1990-03-03 23 -03 1990-10-21 01 -02 1 1991-03-02 22 -04 1991-10-20 02 -02 1 1992-02-29 23 -03 1992-10-18 01 -02 1 1993-03-06 23 -03 1999-10-03 00 -03 1 2000-03-03 00 -03 2007-12-30 01 -02 1 2008-03-15 23 -03 TZ="America/Argentina/San_Juan" - - -043404 LMT 1894-10-31 00:17:16 -041648 CMT 1920-05-01 00:16:48 -04 1930-12-01 01 -03 1 1931-03-31 23 -04 1931-10-15 01 -03 1 1932-02-29 23 -04 1932-11-01 01 -03 1 1933-02-28 23 -04 1933-11-01 01 -03 1 1934-02-28 23 -04 1934-11-01 01 -03 1 1935-02-28 23 -04 1935-11-01 01 -03 1 1936-02-29 23 -04 1936-11-01 01 -03 1 1937-02-28 23 -04 1937-11-01 01 -03 1 1938-02-28 23 -04 1938-11-01 01 -03 1 1939-02-28 23 -04 1939-11-01 01 -03 1 1940-02-29 23 -04 1940-07-01 01 -03 1 1941-06-14 23 -04 1941-10-15 01 -03 1 1943-07-31 23 -04 1943-10-15 01 -03 1 1946-02-28 23 -04 1946-10-01 01 -03 1 1963-09-30 23 -04 1963-12-15 01 -03 1 1964-02-29 23 -04 1964-10-15 01 -03 1 1965-02-28 23 -04 1965-10-15 01 -03 1 1966-02-28 23 -04 1966-10-15 01 -03 1 1967-04-01 23 -04 1967-10-01 01 -03 1 1968-04-06 23 -04 1968-10-06 01 -03 1 1969-04-05 23 -04 1969-10-05 01 -03 1974-01-23 01 -02 1 1974-04-30 23 -03 1988-12-01 01 -02 1 1989-03-04 23 -03 1989-10-15 01 -02 1 1990-03-03 23 -03 1990-10-21 01 -02 1 1991-02-28 22 -04 1991-05-07 01 -03 1991-10-20 01 -02 1 1992-02-29 23 -03 1992-10-18 01 -02 1 1993-03-06 23 -03 1999-10-03 00 -03 1 2000-03-03 00 -03 2004-05-30 23 -04 2004-07-25 01 -03 2007-12-30 01 -02 1 2008-03-15 23 -03 TZ="America/Argentina/San_Luis" - - -042524 LMT 1894-10-31 00:08:36 -041648 CMT 1920-05-01 00:16:48 -04 1930-12-01 01 -03 1 1931-03-31 23 -04 1931-10-15 01 -03 1 1932-02-29 23 -04 1932-11-01 01 -03 1 1933-02-28 23 -04 1933-11-01 01 -03 1 1934-02-28 23 -04 1934-11-01 01 -03 1 1935-02-28 23 -04 1935-11-01 01 -03 1 1936-02-29 23 -04 1936-11-01 01 -03 1 1937-02-28 23 -04 1937-11-01 01 -03 1 1938-02-28 23 -04 1938-11-01 01 -03 1 1939-02-28 23 -04 1939-11-01 01 -03 1 1940-02-29 23 -04 1940-07-01 01 -03 1 1941-06-14 23 -04 1941-10-15 01 -03 1 1943-07-31 23 -04 1943-10-15 01 -03 1 1946-02-28 23 -04 1946-10-01 01 -03 1 1963-09-30 23 -04 1963-12-15 01 -03 1 1964-02-29 23 -04 1964-10-15 01 -03 1 1965-02-28 23 -04 1965-10-15 01 -03 1 1966-02-28 23 -04 1966-10-15 01 -03 1 1967-04-01 23 -04 1967-10-01 01 -03 1 1968-04-06 23 -04 1968-10-06 01 -03 1 1969-04-05 23 -04 1969-10-05 01 -03 1974-01-23 01 -02 1 1974-04-30 23 -03 1988-12-01 01 -02 1 1989-03-04 23 -03 1989-10-15 01 -02 1 1990-03-13 22 -04 1990-10-15 01 -03 1 1991-02-28 23 -04 1991-06-01 01 -03 1999-10-03 00 -03 1 2000-03-03 00 -03 2004-05-30 23 -04 2004-07-25 01 -03 2007-12-30 01 -02 1 2008-01-20 23 -03 1 2008-03-08 23 -04 2008-10-12 01 -03 1 2009-03-07 23 -04 2009-10-11 01 -03 TZ="America/Argentina/Tucuman" - - -042052 LMT 1894-10-31 00:04:04 -041648 CMT 1920-05-01 00:16:48 -04 1930-12-01 01 -03 1 1931-03-31 23 -04 1931-10-15 01 -03 1 1932-02-29 23 -04 1932-11-01 01 -03 1 1933-02-28 23 -04 1933-11-01 01 -03 1 1934-02-28 23 -04 1934-11-01 01 -03 1 1935-02-28 23 -04 1935-11-01 01 -03 1 1936-02-29 23 -04 1936-11-01 01 -03 1 1937-02-28 23 -04 1937-11-01 01 -03 1 1938-02-28 23 -04 1938-11-01 01 -03 1 1939-02-28 23 -04 1939-11-01 01 -03 1 1940-02-29 23 -04 1940-07-01 01 -03 1 1941-06-14 23 -04 1941-10-15 01 -03 1 1943-07-31 23 -04 1943-10-15 01 -03 1 1946-02-28 23 -04 1946-10-01 01 -03 1 1963-09-30 23 -04 1963-12-15 01 -03 1 1964-02-29 23 -04 1964-10-15 01 -03 1 1965-02-28 23 -04 1965-10-15 01 -03 1 1966-02-28 23 -04 1966-10-15 01 -03 1 1967-04-01 23 -04 1967-10-01 01 -03 1 1968-04-06 23 -04 1968-10-06 01 -03 1 1969-04-05 23 -04 1969-10-05 01 -03 1974-01-23 01 -02 1 1974-04-30 23 -03 1988-12-01 01 -02 1 1989-03-04 23 -03 1989-10-15 01 -02 1 1990-03-03 23 -03 1990-10-21 01 -02 1 1991-03-02 22 -04 1991-10-20 02 -02 1 1992-02-29 23 -03 1992-10-18 01 -02 1 1993-03-06 23 -03 1999-10-03 00 -03 1 2000-03-03 00 -03 2004-05-31 23 -04 2004-06-13 01 -03 2007-12-30 01 -02 1 2008-03-15 23 -03 2008-10-19 01 -02 1 2009-03-14 23 -03 TZ="America/Argentina/Ushuaia" - - -043312 LMT 1894-10-31 00:16:24 -041648 CMT 1920-05-01 00:16:48 -04 1930-12-01 01 -03 1 1931-03-31 23 -04 1931-10-15 01 -03 1 1932-02-29 23 -04 1932-11-01 01 -03 1 1933-02-28 23 -04 1933-11-01 01 -03 1 1934-02-28 23 -04 1934-11-01 01 -03 1 1935-02-28 23 -04 1935-11-01 01 -03 1 1936-02-29 23 -04 1936-11-01 01 -03 1 1937-02-28 23 -04 1937-11-01 01 -03 1 1938-02-28 23 -04 1938-11-01 01 -03 1 1939-02-28 23 -04 1939-11-01 01 -03 1 1940-02-29 23 -04 1940-07-01 01 -03 1 1941-06-14 23 -04 1941-10-15 01 -03 1 1943-07-31 23 -04 1943-10-15 01 -03 1 1946-02-28 23 -04 1946-10-01 01 -03 1 1963-09-30 23 -04 1963-12-15 01 -03 1 1964-02-29 23 -04 1964-10-15 01 -03 1 1965-02-28 23 -04 1965-10-15 01 -03 1 1966-02-28 23 -04 1966-10-15 01 -03 1 1967-04-01 23 -04 1967-10-01 01 -03 1 1968-04-06 23 -04 1968-10-06 01 -03 1 1969-04-05 23 -04 1969-10-05 01 -03 1974-01-23 01 -02 1 1974-04-30 23 -03 1988-12-01 01 -02 1 1989-03-04 23 -03 1989-10-15 01 -02 1 1990-03-03 23 -03 1990-10-21 01 -02 1 1991-03-02 23 -03 1991-10-20 01 -02 1 1992-02-29 23 -03 1992-10-18 01 -02 1 1993-03-06 23 -03 1999-10-03 00 -03 1 2000-03-03 00 -03 2004-05-29 23 -04 2004-06-20 01 -03 2007-12-30 01 -02 1 2008-03-15 23 -03 TZ="America/Asuncion" - - -035040 LMT 1890-01-01 00 -035040 AMT 1931-10-09 23:50:40 -04 1972-10-01 01 -03 1974-03-31 23 -04 1975-10-01 01 -03 1 1976-02-29 23 -04 1976-10-01 01 -03 1 1977-02-28 23 -04 1977-10-01 01 -03 1 1978-02-28 23 -04 1978-10-01 01 -03 1 1979-03-31 23 -04 1979-10-01 01 -03 1 1980-03-31 23 -04 1980-10-01 01 -03 1 1981-03-31 23 -04 1981-10-01 01 -03 1 1982-03-31 23 -04 1982-10-01 01 -03 1 1983-03-31 23 -04 1983-10-01 01 -03 1 1984-03-31 23 -04 1984-10-01 01 -03 1 1985-03-31 23 -04 1985-10-01 01 -03 1 1986-03-31 23 -04 1986-10-01 01 -03 1 1987-03-31 23 -04 1987-10-01 01 -03 1 1988-03-31 23 -04 1988-10-01 01 -03 1 1989-03-31 23 -04 1989-10-22 01 -03 1 1990-03-31 23 -04 1990-10-01 01 -03 1 1991-03-31 23 -04 1991-10-06 01 -03 1 1992-02-29 23 -04 1992-10-05 01 -03 1 1993-03-30 23 -04 1993-10-01 01 -03 1 1994-02-26 23 -04 1994-10-01 01 -03 1 1995-02-25 23 -04 1995-10-01 01 -03 1 1996-02-29 23 -04 1996-10-06 01 -03 1 1997-02-22 23 -04 1997-10-05 01 -03 1 1998-02-28 23 -04 1998-10-04 01 -03 1 1999-03-06 23 -04 1999-10-03 01 -03 1 2000-03-04 23 -04 2000-10-01 01 -03 1 2001-03-03 23 -04 2001-10-07 01 -03 1 2002-04-06 23 -04 2002-09-01 01 -03 1 2003-04-05 23 -04 2003-09-07 01 -03 1 2004-04-03 23 -04 2004-10-17 01 -03 1 2005-03-12 23 -04 2005-10-16 01 -03 1 2006-03-11 23 -04 2006-10-15 01 -03 1 2007-03-10 23 -04 2007-10-21 01 -03 1 2008-03-08 23 -04 2008-10-19 01 -03 1 2009-03-07 23 -04 2009-10-18 01 -03 1 2010-04-10 23 -04 2010-10-03 01 -03 1 2011-04-09 23 -04 2011-10-02 01 -03 1 2012-04-07 23 -04 2012-10-07 01 -03 1 2013-03-23 23 -04 2013-10-06 01 -03 1 2014-03-22 23 -04 2014-10-05 01 -03 1 2015-03-21 23 -04 2015-10-04 01 -03 1 2016-03-26 23 -04 2016-10-02 01 -03 1 2017-03-25 23 -04 2017-10-01 01 -03 1 2018-03-24 23 -04 2018-10-07 01 -03 1 2019-03-23 23 -04 2019-10-06 01 -03 1 2020-03-21 23 -04 2020-10-04 01 -03 1 2021-03-27 23 -04 2021-10-03 01 -03 1 2022-03-26 23 -04 2022-10-02 01 -03 1 2023-03-25 23 -04 2023-10-01 01 -03 1 2024-03-23 23 -04 2024-10-06 01 -03 1 2025-03-22 23 -04 2025-10-05 01 -03 1 2026-03-21 23 -04 2026-10-04 01 -03 1 2027-03-27 23 -04 2027-10-03 01 -03 1 2028-03-25 23 -04 2028-10-01 01 -03 1 2029-03-24 23 -04 2029-10-07 01 -03 1 2030-03-23 23 -04 2030-10-06 01 -03 1 2031-03-22 23 -04 2031-10-05 01 -03 1 2032-03-27 23 -04 2032-10-03 01 -03 1 2033-03-26 23 -04 2033-10-02 01 -03 1 2034-03-25 23 -04 2034-10-01 01 -03 1 2035-03-24 23 -04 2035-10-07 01 -03 1 2036-03-22 23 -04 2036-10-05 01 -03 1 2037-03-21 23 -04 2037-10-04 01 -03 1 2038-03-27 23 -04 2038-10-03 01 -03 1 2039-03-26 23 -04 2039-10-02 01 -03 1 2040-03-24 23 -04 2040-10-07 01 -03 1 2041-03-23 23 -04 2041-10-06 01 -03 1 2042-03-22 23 -04 2042-10-05 01 -03 1 2043-03-21 23 -04 2043-10-04 01 -03 1 2044-03-26 23 -04 2044-10-02 01 -03 1 2045-03-25 23 -04 2045-10-01 01 -03 1 2046-03-24 23 -04 2046-10-07 01 -03 1 2047-03-23 23 -04 2047-10-06 01 -03 1 2048-03-21 23 -04 2048-10-04 01 -03 1 2049-03-27 23 -04 2049-10-03 01 -03 1 TZ="America/Atikokan" - - -060628 LMT 1895-01-01 00:06:28 -06 CST 1918-04-14 03 -05 CDT 1 1918-10-27 01 -06 CST 1940-09-29 01 -05 CDT 1 1942-02-09 03 -05 CWT 1 1945-08-14 18 -05 CPT 1 1945-09-30 02 -05 EST TZ="America/Bahia" - - -023404 LMT 1913-12-31 23:34:04 -03 1931-10-03 12 -02 1 1932-03-31 23 -03 1932-10-03 01 -02 1 1933-03-31 23 -03 1949-12-01 01 -02 1 1950-04-16 00 -03 1950-12-01 01 -02 1 1951-03-31 23 -03 1951-12-01 01 -02 1 1952-03-31 23 -03 1952-12-01 01 -02 1 1953-02-28 23 -03 1963-12-09 01 -02 1 1964-02-29 23 -03 1965-01-31 01 -02 1 1965-03-30 23 -03 1965-12-01 01 -02 1 1966-02-28 23 -03 1966-11-01 01 -02 1 1967-02-28 23 -03 1967-11-01 01 -02 1 1968-02-29 23 -03 1985-11-02 01 -02 1 1986-03-14 23 -03 1986-10-25 01 -02 1 1987-02-13 23 -03 1987-10-25 01 -02 1 1988-02-06 23 -03 1988-10-16 01 -02 1 1989-01-28 23 -03 1989-10-15 01 -02 1 1990-02-10 23 -03 1990-10-21 01 -02 1 1991-02-16 23 -03 1991-10-20 01 -02 1 1992-02-08 23 -03 1992-10-25 01 -02 1 1993-01-30 23 -03 1993-10-17 01 -02 1 1994-02-19 23 -03 1994-10-16 01 -02 1 1995-02-18 23 -03 1995-10-15 01 -02 1 1996-02-10 23 -03 1996-10-06 01 -02 1 1997-02-15 23 -03 1997-10-06 01 -02 1 1998-02-28 23 -03 1998-10-11 01 -02 1 1999-02-20 23 -03 1999-10-03 01 -02 1 2000-02-26 23 -03 2000-10-08 01 -02 1 2001-02-17 23 -03 2001-10-14 01 -02 1 2002-02-16 23 -03 2002-11-03 01 -02 1 2003-02-15 23 -03 2011-10-16 01 -02 1 2012-02-25 23 -03 TZ="America/Bahia_Banderas" - - -0701 LMT 1922-01-01 00 -07 MST 1927-06-11 00 -06 CST 1930-11-14 23 -07 MST 1931-05-02 00 -06 CST 1931-09-30 23 -07 MST 1932-04-01 01 -06 CST 1942-04-23 23 -07 MST 1949-01-13 23 -08 PST 1970-01-01 01 -07 MST 1996-04-07 03 -06 MDT 1 1996-10-27 01 -07 MST 1997-04-06 03 -06 MDT 1 1997-10-26 01 -07 MST 1998-04-05 03 -06 MDT 1 1998-10-25 01 -07 MST 1999-04-04 03 -06 MDT 1 1999-10-31 01 -07 MST 2000-04-02 03 -06 MDT 1 2000-10-29 01 -07 MST 2001-05-06 03 -06 MDT 1 2001-09-30 01 -07 MST 2002-04-07 03 -06 MDT 1 2002-10-27 01 -07 MST 2003-04-06 03 -06 MDT 1 2003-10-26 01 -07 MST 2004-04-04 03 -06 MDT 1 2004-10-31 01 -07 MST 2005-04-03 03 -06 MDT 1 2005-10-30 01 -07 MST 2006-04-02 03 -06 MDT 1 2006-10-29 01 -07 MST 2007-04-01 03 -06 MDT 1 2007-10-28 01 -07 MST 2008-04-06 03 -06 MDT 1 2008-10-26 01 -07 MST 2009-04-05 03 -06 MDT 1 2009-10-25 01 -07 MST 2010-04-04 04 -05 CDT 1 2010-10-31 01 -06 CST 2011-04-03 03 -05 CDT 1 2011-10-30 01 -06 CST 2012-04-01 03 -05 CDT 1 2012-10-28 01 -06 CST 2013-04-07 03 -05 CDT 1 2013-10-27 01 -06 CST 2014-04-06 03 -05 CDT 1 2014-10-26 01 -06 CST 2015-04-05 03 -05 CDT 1 2015-10-25 01 -06 CST 2016-04-03 03 -05 CDT 1 2016-10-30 01 -06 CST 2017-04-02 03 -05 CDT 1 2017-10-29 01 -06 CST 2018-04-01 03 -05 CDT 1 2018-10-28 01 -06 CST 2019-04-07 03 -05 CDT 1 2019-10-27 01 -06 CST 2020-04-05 03 -05 CDT 1 2020-10-25 01 -06 CST 2021-04-04 03 -05 CDT 1 2021-10-31 01 -06 CST 2022-04-03 03 -05 CDT 1 2022-10-30 01 -06 CST 2023-04-02 03 -05 CDT 1 2023-10-29 01 -06 CST 2024-04-07 03 -05 CDT 1 2024-10-27 01 -06 CST 2025-04-06 03 -05 CDT 1 2025-10-26 01 -06 CST 2026-04-05 03 -05 CDT 1 2026-10-25 01 -06 CST 2027-04-04 03 -05 CDT 1 2027-10-31 01 -06 CST 2028-04-02 03 -05 CDT 1 2028-10-29 01 -06 CST 2029-04-01 03 -05 CDT 1 2029-10-28 01 -06 CST 2030-04-07 03 -05 CDT 1 2030-10-27 01 -06 CST 2031-04-06 03 -05 CDT 1 2031-10-26 01 -06 CST 2032-04-04 03 -05 CDT 1 2032-10-31 01 -06 CST 2033-04-03 03 -05 CDT 1 2033-10-30 01 -06 CST 2034-04-02 03 -05 CDT 1 2034-10-29 01 -06 CST 2035-04-01 03 -05 CDT 1 2035-10-28 01 -06 CST 2036-04-06 03 -05 CDT 1 2036-10-26 01 -06 CST 2037-04-05 03 -05 CDT 1 2037-10-25 01 -06 CST 2038-04-04 03 -05 CDT 1 2038-10-31 01 -06 CST 2039-04-03 03 -05 CDT 1 2039-10-30 01 -06 CST 2040-04-01 03 -05 CDT 1 2040-10-28 01 -06 CST 2041-04-07 03 -05 CDT 1 2041-10-27 01 -06 CST 2042-04-06 03 -05 CDT 1 2042-10-26 01 -06 CST 2043-04-05 03 -05 CDT 1 2043-10-25 01 -06 CST 2044-04-03 03 -05 CDT 1 2044-10-30 01 -06 CST 2045-04-02 03 -05 CDT 1 2045-10-29 01 -06 CST 2046-04-01 03 -05 CDT 1 2046-10-28 01 -06 CST 2047-04-07 03 -05 CDT 1 2047-10-27 01 -06 CST 2048-04-05 03 -05 CDT 1 2048-10-25 01 -06 CST 2049-04-04 03 -05 CDT 1 2049-10-31 01 -06 CST TZ="America/Barbados" - - -035829 LMT 1924-01-01 00 -035829 BMT 1931-12-31 23:58:29 -04 AST 1977-06-12 03 -03 ADT 1 1977-10-02 01 -04 AST 1978-04-16 03 -03 ADT 1 1978-10-01 01 -04 AST 1979-04-15 03 -03 ADT 1 1979-09-30 01 -04 AST 1980-04-20 03 -03 ADT 1 1980-09-25 01 -04 AST TZ="America/Belem" - - -031356 LMT 1914-01-01 00:13:56 -03 1931-10-03 12 -02 1 1932-03-31 23 -03 1932-10-03 01 -02 1 1933-03-31 23 -03 1949-12-01 01 -02 1 1950-04-16 00 -03 1950-12-01 01 -02 1 1951-03-31 23 -03 1951-12-01 01 -02 1 1952-03-31 23 -03 1952-12-01 01 -02 1 1953-02-28 23 -03 1963-12-09 01 -02 1 1964-02-29 23 -03 1965-01-31 01 -02 1 1965-03-30 23 -03 1965-12-01 01 -02 1 1966-02-28 23 -03 1966-11-01 01 -02 1 1967-02-28 23 -03 1967-11-01 01 -02 1 1968-02-29 23 -03 1985-11-02 01 -02 1 1986-03-14 23 -03 1986-10-25 01 -02 1 1987-02-13 23 -03 1987-10-25 01 -02 1 1988-02-06 23 -03 TZ="America/Belize" - - -055248 LMT 1912-03-31 23:52:48 -06 CST 1918-10-06 00:30 -0530 1 1919-02-08 23:30 -06 CST 1919-10-05 00:30 -0530 1 1920-02-14 23:30 -06 CST 1920-10-03 00:30 -0530 1 1921-02-12 23:30 -06 CST 1921-10-02 00:30 -0530 1 1922-02-11 23:30 -06 CST 1922-10-08 00:30 -0530 1 1923-02-10 23:30 -06 CST 1923-10-07 00:30 -0530 1 1924-02-09 23:30 -06 CST 1924-10-05 00:30 -0530 1 1925-02-14 23:30 -06 CST 1925-10-04 00:30 -0530 1 1926-02-13 23:30 -06 CST 1926-10-03 00:30 -0530 1 1927-02-12 23:30 -06 CST 1927-10-02 00:30 -0530 1 1928-02-11 23:30 -06 CST 1928-10-07 00:30 -0530 1 1929-02-09 23:30 -06 CST 1929-10-06 00:30 -0530 1 1930-02-08 23:30 -06 CST 1930-10-05 00:30 -0530 1 1931-02-14 23:30 -06 CST 1931-10-04 00:30 -0530 1 1932-02-13 23:30 -06 CST 1932-10-02 00:30 -0530 1 1933-02-11 23:30 -06 CST 1933-10-08 00:30 -0530 1 1934-02-10 23:30 -06 CST 1934-10-07 00:30 -0530 1 1935-02-09 23:30 -06 CST 1935-10-06 00:30 -0530 1 1936-02-08 23:30 -06 CST 1936-10-04 00:30 -0530 1 1937-02-13 23:30 -06 CST 1937-10-03 00:30 -0530 1 1938-02-12 23:30 -06 CST 1938-10-02 00:30 -0530 1 1939-02-11 23:30 -06 CST 1939-10-08 00:30 -0530 1 1940-02-10 23:30 -06 CST 1940-10-06 00:30 -0530 1 1941-02-08 23:30 -06 CST 1941-10-05 00:30 -0530 1 1942-02-14 23:30 -06 CST 1942-10-04 00:30 -0530 1 1943-02-13 23:30 -06 CST 1973-12-05 01 -05 CDT 1 1974-02-08 23 -06 CST 1982-12-18 01 -05 CDT 1 1983-02-11 23 -06 CST TZ="America/Blanc-Sablon" - - -034828 LMT 1883-12-31 23:48:28 -04 AST 1918-04-14 03 -03 ADT 1 1918-10-27 01 -04 AST 1942-02-09 03 -03 AWT 1 1945-08-14 20 -03 APT 1 1945-09-30 01 -04 AST TZ="America/Boa_Vista" - - -040240 LMT 1914-01-01 00:02:40 -04 1931-10-03 12 -03 1 1932-03-31 23 -04 1932-10-03 01 -03 1 1933-03-31 23 -04 1949-12-01 01 -03 1 1950-04-16 00 -04 1950-12-01 01 -03 1 1951-03-31 23 -04 1951-12-01 01 -03 1 1952-03-31 23 -04 1952-12-01 01 -03 1 1953-02-28 23 -04 1963-12-09 01 -03 1 1964-02-29 23 -04 1965-01-31 01 -03 1 1965-03-30 23 -04 1965-12-01 01 -03 1 1966-02-28 23 -04 1966-11-01 01 -03 1 1967-02-28 23 -04 1967-11-01 01 -03 1 1968-02-29 23 -04 1985-11-02 01 -03 1 1986-03-14 23 -04 1986-10-25 01 -03 1 1987-02-13 23 -04 1987-10-25 01 -03 1 1988-02-06 23 -04 1999-10-03 01 -03 1 2000-02-26 23 -04 2000-10-08 01 -03 1 2000-10-14 23 -04 TZ="America/Bogota" - - -045616 LMT 1884-03-13 00 -045616 BMT 1914-11-22 23:56:16 -05 1992-05-03 01 -04 1 1993-04-03 23 -05 TZ="America/Boise" - - -074449 LMT 1883-11-18 12 -08 PST 1918-03-31 03 -07 PDT 1 1918-10-27 01 -08 PST 1919-03-30 03 -07 PDT 1 1919-10-26 01 -08 PST 1923-05-13 03 -07 MST 1942-02-09 03 -06 MWT 1 1945-08-14 17 -06 MPT 1 1945-09-30 01 -07 MST 1967-04-30 03 -06 MDT 1 1967-10-29 01 -07 MST 1968-04-28 03 -06 MDT 1 1968-10-27 01 -07 MST 1969-04-27 03 -06 MDT 1 1969-10-26 01 -07 MST 1970-04-26 03 -06 MDT 1 1970-10-25 01 -07 MST 1971-04-25 03 -06 MDT 1 1971-10-31 01 -07 MST 1972-04-30 03 -06 MDT 1 1972-10-29 01 -07 MST 1973-04-29 03 -06 MDT 1 1973-10-28 01 -07 MST 1974-02-03 03 -06 MDT 1 1974-10-27 01 -07 MST 1975-02-23 03 -06 MDT 1 1975-10-26 01 -07 MST 1976-04-25 03 -06 MDT 1 1976-10-31 01 -07 MST 1977-04-24 03 -06 MDT 1 1977-10-30 01 -07 MST 1978-04-30 03 -06 MDT 1 1978-10-29 01 -07 MST 1979-04-29 03 -06 MDT 1 1979-10-28 01 -07 MST 1980-04-27 03 -06 MDT 1 1980-10-26 01 -07 MST 1981-04-26 03 -06 MDT 1 1981-10-25 01 -07 MST 1982-04-25 03 -06 MDT 1 1982-10-31 01 -07 MST 1983-04-24 03 -06 MDT 1 1983-10-30 01 -07 MST 1984-04-29 03 -06 MDT 1 1984-10-28 01 -07 MST 1985-04-28 03 -06 MDT 1 1985-10-27 01 -07 MST 1986-04-27 03 -06 MDT 1 1986-10-26 01 -07 MST 1987-04-05 03 -06 MDT 1 1987-10-25 01 -07 MST 1988-04-03 03 -06 MDT 1 1988-10-30 01 -07 MST 1989-04-02 03 -06 MDT 1 1989-10-29 01 -07 MST 1990-04-01 03 -06 MDT 1 1990-10-28 01 -07 MST 1991-04-07 03 -06 MDT 1 1991-10-27 01 -07 MST 1992-04-05 03 -06 MDT 1 1992-10-25 01 -07 MST 1993-04-04 03 -06 MDT 1 1993-10-31 01 -07 MST 1994-04-03 03 -06 MDT 1 1994-10-30 01 -07 MST 1995-04-02 03 -06 MDT 1 1995-10-29 01 -07 MST 1996-04-07 03 -06 MDT 1 1996-10-27 01 -07 MST 1997-04-06 03 -06 MDT 1 1997-10-26 01 -07 MST 1998-04-05 03 -06 MDT 1 1998-10-25 01 -07 MST 1999-04-04 03 -06 MDT 1 1999-10-31 01 -07 MST 2000-04-02 03 -06 MDT 1 2000-10-29 01 -07 MST 2001-04-01 03 -06 MDT 1 2001-10-28 01 -07 MST 2002-04-07 03 -06 MDT 1 2002-10-27 01 -07 MST 2003-04-06 03 -06 MDT 1 2003-10-26 01 -07 MST 2004-04-04 03 -06 MDT 1 2004-10-31 01 -07 MST 2005-04-03 03 -06 MDT 1 2005-10-30 01 -07 MST 2006-04-02 03 -06 MDT 1 2006-10-29 01 -07 MST 2007-03-11 03 -06 MDT 1 2007-11-04 01 -07 MST 2008-03-09 03 -06 MDT 1 2008-11-02 01 -07 MST 2009-03-08 03 -06 MDT 1 2009-11-01 01 -07 MST 2010-03-14 03 -06 MDT 1 2010-11-07 01 -07 MST 2011-03-13 03 -06 MDT 1 2011-11-06 01 -07 MST 2012-03-11 03 -06 MDT 1 2012-11-04 01 -07 MST 2013-03-10 03 -06 MDT 1 2013-11-03 01 -07 MST 2014-03-09 03 -06 MDT 1 2014-11-02 01 -07 MST 2015-03-08 03 -06 MDT 1 2015-11-01 01 -07 MST 2016-03-13 03 -06 MDT 1 2016-11-06 01 -07 MST 2017-03-12 03 -06 MDT 1 2017-11-05 01 -07 MST 2018-03-11 03 -06 MDT 1 2018-11-04 01 -07 MST 2019-03-10 03 -06 MDT 1 2019-11-03 01 -07 MST 2020-03-08 03 -06 MDT 1 2020-11-01 01 -07 MST 2021-03-14 03 -06 MDT 1 2021-11-07 01 -07 MST 2022-03-13 03 -06 MDT 1 2022-11-06 01 -07 MST 2023-03-12 03 -06 MDT 1 2023-11-05 01 -07 MST 2024-03-10 03 -06 MDT 1 2024-11-03 01 -07 MST 2025-03-09 03 -06 MDT 1 2025-11-02 01 -07 MST 2026-03-08 03 -06 MDT 1 2026-11-01 01 -07 MST 2027-03-14 03 -06 MDT 1 2027-11-07 01 -07 MST 2028-03-12 03 -06 MDT 1 2028-11-05 01 -07 MST 2029-03-11 03 -06 MDT 1 2029-11-04 01 -07 MST 2030-03-10 03 -06 MDT 1 2030-11-03 01 -07 MST 2031-03-09 03 -06 MDT 1 2031-11-02 01 -07 MST 2032-03-14 03 -06 MDT 1 2032-11-07 01 -07 MST 2033-03-13 03 -06 MDT 1 2033-11-06 01 -07 MST 2034-03-12 03 -06 MDT 1 2034-11-05 01 -07 MST 2035-03-11 03 -06 MDT 1 2035-11-04 01 -07 MST 2036-03-09 03 -06 MDT 1 2036-11-02 01 -07 MST 2037-03-08 03 -06 MDT 1 2037-11-01 01 -07 MST 2038-03-14 03 -06 MDT 1 2038-11-07 01 -07 MST 2039-03-13 03 -06 MDT 1 2039-11-06 01 -07 MST 2040-03-11 03 -06 MDT 1 2040-11-04 01 -07 MST 2041-03-10 03 -06 MDT 1 2041-11-03 01 -07 MST 2042-03-09 03 -06 MDT 1 2042-11-02 01 -07 MST 2043-03-08 03 -06 MDT 1 2043-11-01 01 -07 MST 2044-03-13 03 -06 MDT 1 2044-11-06 01 -07 MST 2045-03-12 03 -06 MDT 1 2045-11-05 01 -07 MST 2046-03-11 03 -06 MDT 1 2046-11-04 01 -07 MST 2047-03-10 03 -06 MDT 1 2047-11-03 01 -07 MST 2048-03-08 03 -06 MDT 1 2048-11-01 01 -07 MST 2049-03-14 03 -06 MDT 1 2049-11-07 01 -07 MST TZ="America/Cambridge_Bay" - - -00 1919-12-31 17 -07 MST 1942-02-09 03 -06 MWT 1 1945-08-14 17 -06 MPT 1 1945-09-30 01 -07 MST 1965-04-25 02 -05 MDDT 1 1965-10-31 00 -07 MST 1980-04-27 03 -06 MDT 1 1980-10-26 01 -07 MST 1981-04-26 03 -06 MDT 1 1981-10-25 01 -07 MST 1982-04-25 03 -06 MDT 1 1982-10-31 01 -07 MST 1983-04-24 03 -06 MDT 1 1983-10-30 01 -07 MST 1984-04-29 03 -06 MDT 1 1984-10-28 01 -07 MST 1985-04-28 03 -06 MDT 1 1985-10-27 01 -07 MST 1986-04-27 03 -06 MDT 1 1986-10-26 01 -07 MST 1987-04-05 03 -06 MDT 1 1987-10-25 01 -07 MST 1988-04-03 03 -06 MDT 1 1988-10-30 01 -07 MST 1989-04-02 03 -06 MDT 1 1989-10-29 01 -07 MST 1990-04-01 03 -06 MDT 1 1990-10-28 01 -07 MST 1991-04-07 03 -06 MDT 1 1991-10-27 01 -07 MST 1992-04-05 03 -06 MDT 1 1992-10-25 01 -07 MST 1993-04-04 03 -06 MDT 1 1993-10-31 01 -07 MST 1994-04-03 03 -06 MDT 1 1994-10-30 01 -07 MST 1995-04-02 03 -06 MDT 1 1995-10-29 01 -07 MST 1996-04-07 03 -06 MDT 1 1996-10-27 01 -07 MST 1997-04-06 03 -06 MDT 1 1997-10-26 01 -07 MST 1998-04-05 03 -06 MDT 1 1998-10-25 01 -07 MST 1999-04-04 03 -06 MDT 1 1999-10-31 02 -06 CST 2000-04-02 03 -05 CDT 1 2000-10-29 02 -05 EST 2000-11-04 23 -06 CST 2001-04-01 03 -06 MDT 1 2001-10-28 01 -07 MST 2002-04-07 03 -06 MDT 1 2002-10-27 01 -07 MST 2003-04-06 03 -06 MDT 1 2003-10-26 01 -07 MST 2004-04-04 03 -06 MDT 1 2004-10-31 01 -07 MST 2005-04-03 03 -06 MDT 1 2005-10-30 01 -07 MST 2006-04-02 03 -06 MDT 1 2006-10-29 01 -07 MST 2007-03-11 03 -06 MDT 1 2007-11-04 01 -07 MST 2008-03-09 03 -06 MDT 1 2008-11-02 01 -07 MST 2009-03-08 03 -06 MDT 1 2009-11-01 01 -07 MST 2010-03-14 03 -06 MDT 1 2010-11-07 01 -07 MST 2011-03-13 03 -06 MDT 1 2011-11-06 01 -07 MST 2012-03-11 03 -06 MDT 1 2012-11-04 01 -07 MST 2013-03-10 03 -06 MDT 1 2013-11-03 01 -07 MST 2014-03-09 03 -06 MDT 1 2014-11-02 01 -07 MST 2015-03-08 03 -06 MDT 1 2015-11-01 01 -07 MST 2016-03-13 03 -06 MDT 1 2016-11-06 01 -07 MST 2017-03-12 03 -06 MDT 1 2017-11-05 01 -07 MST 2018-03-11 03 -06 MDT 1 2018-11-04 01 -07 MST 2019-03-10 03 -06 MDT 1 2019-11-03 01 -07 MST 2020-03-08 03 -06 MDT 1 2020-11-01 01 -07 MST 2021-03-14 03 -06 MDT 1 2021-11-07 01 -07 MST 2022-03-13 03 -06 MDT 1 2022-11-06 01 -07 MST 2023-03-12 03 -06 MDT 1 2023-11-05 01 -07 MST 2024-03-10 03 -06 MDT 1 2024-11-03 01 -07 MST 2025-03-09 03 -06 MDT 1 2025-11-02 01 -07 MST 2026-03-08 03 -06 MDT 1 2026-11-01 01 -07 MST 2027-03-14 03 -06 MDT 1 2027-11-07 01 -07 MST 2028-03-12 03 -06 MDT 1 2028-11-05 01 -07 MST 2029-03-11 03 -06 MDT 1 2029-11-04 01 -07 MST 2030-03-10 03 -06 MDT 1 2030-11-03 01 -07 MST 2031-03-09 03 -06 MDT 1 2031-11-02 01 -07 MST 2032-03-14 03 -06 MDT 1 2032-11-07 01 -07 MST 2033-03-13 03 -06 MDT 1 2033-11-06 01 -07 MST 2034-03-12 03 -06 MDT 1 2034-11-05 01 -07 MST 2035-03-11 03 -06 MDT 1 2035-11-04 01 -07 MST 2036-03-09 03 -06 MDT 1 2036-11-02 01 -07 MST 2037-03-08 03 -06 MDT 1 2037-11-01 01 -07 MST 2038-03-14 03 -06 MDT 1 2038-11-07 01 -07 MST 2039-03-13 03 -06 MDT 1 2039-11-06 01 -07 MST 2040-03-11 03 -06 MDT 1 2040-11-04 01 -07 MST 2041-03-10 03 -06 MDT 1 2041-11-03 01 -07 MST 2042-03-09 03 -06 MDT 1 2042-11-02 01 -07 MST 2043-03-08 03 -06 MDT 1 2043-11-01 01 -07 MST 2044-03-13 03 -06 MDT 1 2044-11-06 01 -07 MST 2045-03-12 03 -06 MDT 1 2045-11-05 01 -07 MST 2046-03-11 03 -06 MDT 1 2046-11-04 01 -07 MST 2047-03-10 03 -06 MDT 1 2047-11-03 01 -07 MST 2048-03-08 03 -06 MDT 1 2048-11-01 01 -07 MST 2049-03-14 03 -06 MDT 1 2049-11-07 01 -07 MST TZ="America/Campo_Grande" - - -033828 LMT 1913-12-31 23:38:28 -04 1931-10-03 12 -03 1 1932-03-31 23 -04 1932-10-03 01 -03 1 1933-03-31 23 -04 1949-12-01 01 -03 1 1950-04-16 00 -04 1950-12-01 01 -03 1 1951-03-31 23 -04 1951-12-01 01 -03 1 1952-03-31 23 -04 1952-12-01 01 -03 1 1953-02-28 23 -04 1963-12-09 01 -03 1 1964-02-29 23 -04 1965-01-31 01 -03 1 1965-03-30 23 -04 1965-12-01 01 -03 1 1966-02-28 23 -04 1966-11-01 01 -03 1 1967-02-28 23 -04 1967-11-01 01 -03 1 1968-02-29 23 -04 1985-11-02 01 -03 1 1986-03-14 23 -04 1986-10-25 01 -03 1 1987-02-13 23 -04 1987-10-25 01 -03 1 1988-02-06 23 -04 1988-10-16 01 -03 1 1989-01-28 23 -04 1989-10-15 01 -03 1 1990-02-10 23 -04 1990-10-21 01 -03 1 1991-02-16 23 -04 1991-10-20 01 -03 1 1992-02-08 23 -04 1992-10-25 01 -03 1 1993-01-30 23 -04 1993-10-17 01 -03 1 1994-02-19 23 -04 1994-10-16 01 -03 1 1995-02-18 23 -04 1995-10-15 01 -03 1 1996-02-10 23 -04 1996-10-06 01 -03 1 1997-02-15 23 -04 1997-10-06 01 -03 1 1998-02-28 23 -04 1998-10-11 01 -03 1 1999-02-20 23 -04 1999-10-03 01 -03 1 2000-02-26 23 -04 2000-10-08 01 -03 1 2001-02-17 23 -04 2001-10-14 01 -03 1 2002-02-16 23 -04 2002-11-03 01 -03 1 2003-02-15 23 -04 2003-10-19 01 -03 1 2004-02-14 23 -04 2004-11-02 01 -03 1 2005-02-19 23 -04 2005-10-16 01 -03 1 2006-02-18 23 -04 2006-11-05 01 -03 1 2007-02-24 23 -04 2007-10-14 01 -03 1 2008-02-16 23 -04 2008-10-19 01 -03 1 2009-02-14 23 -04 2009-10-18 01 -03 1 2010-02-20 23 -04 2010-10-17 01 -03 1 2011-02-19 23 -04 2011-10-16 01 -03 1 2012-02-25 23 -04 2012-10-21 01 -03 1 2013-02-16 23 -04 2013-10-20 01 -03 1 2014-02-15 23 -04 2014-10-19 01 -03 1 2015-02-21 23 -04 2015-10-18 01 -03 1 2016-02-20 23 -04 2016-10-16 01 -03 1 2017-02-18 23 -04 2017-10-15 01 -03 1 2018-02-17 23 -04 2018-11-04 01 -03 1 2019-02-16 23 -04 TZ="America/Cancun" - - -054704 LMT 1922-01-01 00 -06 CST 1981-12-23 01 -05 EST 1996-04-07 03 -04 EDT 1 1996-10-27 01 -05 EST 1997-04-06 03 -04 EDT 1 1997-10-26 01 -05 EST 1998-04-05 03 -04 EDT 1 1998-08-02 01 -05 CDT 1 1998-10-25 01 -06 CST 1999-04-04 03 -05 CDT 1 1999-10-31 01 -06 CST 2000-04-02 03 -05 CDT 1 2000-10-29 01 -06 CST 2001-05-06 03 -05 CDT 1 2001-09-30 01 -06 CST 2002-04-07 03 -05 CDT 1 2002-10-27 01 -06 CST 2003-04-06 03 -05 CDT 1 2003-10-26 01 -06 CST 2004-04-04 03 -05 CDT 1 2004-10-31 01 -06 CST 2005-04-03 03 -05 CDT 1 2005-10-30 01 -06 CST 2006-04-02 03 -05 CDT 1 2006-10-29 01 -06 CST 2007-04-01 03 -05 CDT 1 2007-10-28 01 -06 CST 2008-04-06 03 -05 CDT 1 2008-10-26 01 -06 CST 2009-04-05 03 -05 CDT 1 2009-10-25 01 -06 CST 2010-04-04 03 -05 CDT 1 2010-10-31 01 -06 CST 2011-04-03 03 -05 CDT 1 2011-10-30 01 -06 CST 2012-04-01 03 -05 CDT 1 2012-10-28 01 -06 CST 2013-04-07 03 -05 CDT 1 2013-10-27 01 -06 CST 2014-04-06 03 -05 CDT 1 2014-10-26 01 -06 CST 2015-02-01 03 -05 EST TZ="America/Caracas" - - -042744 LMT 1890-01-01 00:00:04 -042740 CMT 1912-02-11 23:57:40 -0430 1965-01-01 00:30 -04 2007-12-09 02:30 -0430 2016-05-01 03 -04 TZ="America/Cayenne" - - -032920 LMT 1911-06-30 23:29:20 -04 1967-10-01 01 -03 TZ="America/Chicago" - - -055036 LMT 1883-11-18 12 -06 CST 1918-03-31 03 -05 CDT 1 1918-10-27 01 -06 CST 1919-03-30 03 -05 CDT 1 1919-10-26 01 -06 CST 1920-06-13 03 -05 CDT 1 1920-10-31 01 -06 CST 1921-03-27 03 -05 CDT 1 1921-10-30 01 -06 CST 1922-04-30 03 -05 CDT 1 1922-09-24 01 -06 CST 1923-04-29 03 -05 CDT 1 1923-09-30 01 -06 CST 1924-04-27 03 -05 CDT 1 1924-09-28 01 -06 CST 1925-04-26 03 -05 CDT 1 1925-09-27 01 -06 CST 1926-04-25 03 -05 CDT 1 1926-09-26 01 -06 CST 1927-04-24 03 -05 CDT 1 1927-09-25 01 -06 CST 1928-04-29 03 -05 CDT 1 1928-09-30 01 -06 CST 1929-04-28 03 -05 CDT 1 1929-09-29 01 -06 CST 1930-04-27 03 -05 CDT 1 1930-09-28 01 -06 CST 1931-04-26 03 -05 CDT 1 1931-09-27 01 -06 CST 1932-04-24 03 -05 CDT 1 1932-09-25 01 -06 CST 1933-04-30 03 -05 CDT 1 1933-09-24 01 -06 CST 1934-04-29 03 -05 CDT 1 1934-09-30 01 -06 CST 1935-04-28 03 -05 CDT 1 1935-09-29 01 -06 CST 1936-03-01 03 -05 EST 1936-11-15 01 -06 CST 1937-04-25 03 -05 CDT 1 1937-09-26 01 -06 CST 1938-04-24 03 -05 CDT 1 1938-09-25 01 -06 CST 1939-04-30 03 -05 CDT 1 1939-09-24 01 -06 CST 1940-04-28 03 -05 CDT 1 1940-09-29 01 -06 CST 1941-04-27 03 -05 CDT 1 1941-09-28 01 -06 CST 1942-02-09 03 -05 CWT 1 1945-08-14 18 -05 CPT 1 1945-09-30 01 -06 CST 1946-04-28 03 -05 CDT 1 1946-09-29 01 -06 CST 1947-04-27 03 -05 CDT 1 1947-09-28 01 -06 CST 1948-04-25 03 -05 CDT 1 1948-09-26 01 -06 CST 1949-04-24 03 -05 CDT 1 1949-09-25 01 -06 CST 1950-04-30 03 -05 CDT 1 1950-09-24 01 -06 CST 1951-04-29 03 -05 CDT 1 1951-09-30 01 -06 CST 1952-04-27 03 -05 CDT 1 1952-09-28 01 -06 CST 1953-04-26 03 -05 CDT 1 1953-09-27 01 -06 CST 1954-04-25 03 -05 CDT 1 1954-09-26 01 -06 CST 1955-04-24 03 -05 CDT 1 1955-10-30 01 -06 CST 1956-04-29 03 -05 CDT 1 1956-10-28 01 -06 CST 1957-04-28 03 -05 CDT 1 1957-10-27 01 -06 CST 1958-04-27 03 -05 CDT 1 1958-10-26 01 -06 CST 1959-04-26 03 -05 CDT 1 1959-10-25 01 -06 CST 1960-04-24 03 -05 CDT 1 1960-10-30 01 -06 CST 1961-04-30 03 -05 CDT 1 1961-10-29 01 -06 CST 1962-04-29 03 -05 CDT 1 1962-10-28 01 -06 CST 1963-04-28 03 -05 CDT 1 1963-10-27 01 -06 CST 1964-04-26 03 -05 CDT 1 1964-10-25 01 -06 CST 1965-04-25 03 -05 CDT 1 1965-10-31 01 -06 CST 1966-04-24 03 -05 CDT 1 1966-10-30 01 -06 CST 1967-04-30 03 -05 CDT 1 1967-10-29 01 -06 CST 1968-04-28 03 -05 CDT 1 1968-10-27 01 -06 CST 1969-04-27 03 -05 CDT 1 1969-10-26 01 -06 CST 1970-04-26 03 -05 CDT 1 1970-10-25 01 -06 CST 1971-04-25 03 -05 CDT 1 1971-10-31 01 -06 CST 1972-04-30 03 -05 CDT 1 1972-10-29 01 -06 CST 1973-04-29 03 -05 CDT 1 1973-10-28 01 -06 CST 1974-01-06 03 -05 CDT 1 1974-10-27 01 -06 CST 1975-02-23 03 -05 CDT 1 1975-10-26 01 -06 CST 1976-04-25 03 -05 CDT 1 1976-10-31 01 -06 CST 1977-04-24 03 -05 CDT 1 1977-10-30 01 -06 CST 1978-04-30 03 -05 CDT 1 1978-10-29 01 -06 CST 1979-04-29 03 -05 CDT 1 1979-10-28 01 -06 CST 1980-04-27 03 -05 CDT 1 1980-10-26 01 -06 CST 1981-04-26 03 -05 CDT 1 1981-10-25 01 -06 CST 1982-04-25 03 -05 CDT 1 1982-10-31 01 -06 CST 1983-04-24 03 -05 CDT 1 1983-10-30 01 -06 CST 1984-04-29 03 -05 CDT 1 1984-10-28 01 -06 CST 1985-04-28 03 -05 CDT 1 1985-10-27 01 -06 CST 1986-04-27 03 -05 CDT 1 1986-10-26 01 -06 CST 1987-04-05 03 -05 CDT 1 1987-10-25 01 -06 CST 1988-04-03 03 -05 CDT 1 1988-10-30 01 -06 CST 1989-04-02 03 -05 CDT 1 1989-10-29 01 -06 CST 1990-04-01 03 -05 CDT 1 1990-10-28 01 -06 CST 1991-04-07 03 -05 CDT 1 1991-10-27 01 -06 CST 1992-04-05 03 -05 CDT 1 1992-10-25 01 -06 CST 1993-04-04 03 -05 CDT 1 1993-10-31 01 -06 CST 1994-04-03 03 -05 CDT 1 1994-10-30 01 -06 CST 1995-04-02 03 -05 CDT 1 1995-10-29 01 -06 CST 1996-04-07 03 -05 CDT 1 1996-10-27 01 -06 CST 1997-04-06 03 -05 CDT 1 1997-10-26 01 -06 CST 1998-04-05 03 -05 CDT 1 1998-10-25 01 -06 CST 1999-04-04 03 -05 CDT 1 1999-10-31 01 -06 CST 2000-04-02 03 -05 CDT 1 2000-10-29 01 -06 CST 2001-04-01 03 -05 CDT 1 2001-10-28 01 -06 CST 2002-04-07 03 -05 CDT 1 2002-10-27 01 -06 CST 2003-04-06 03 -05 CDT 1 2003-10-26 01 -06 CST 2004-04-04 03 -05 CDT 1 2004-10-31 01 -06 CST 2005-04-03 03 -05 CDT 1 2005-10-30 01 -06 CST 2006-04-02 03 -05 CDT 1 2006-10-29 01 -06 CST 2007-03-11 03 -05 CDT 1 2007-11-04 01 -06 CST 2008-03-09 03 -05 CDT 1 2008-11-02 01 -06 CST 2009-03-08 03 -05 CDT 1 2009-11-01 01 -06 CST 2010-03-14 03 -05 CDT 1 2010-11-07 01 -06 CST 2011-03-13 03 -05 CDT 1 2011-11-06 01 -06 CST 2012-03-11 03 -05 CDT 1 2012-11-04 01 -06 CST 2013-03-10 03 -05 CDT 1 2013-11-03 01 -06 CST 2014-03-09 03 -05 CDT 1 2014-11-02 01 -06 CST 2015-03-08 03 -05 CDT 1 2015-11-01 01 -06 CST 2016-03-13 03 -05 CDT 1 2016-11-06 01 -06 CST 2017-03-12 03 -05 CDT 1 2017-11-05 01 -06 CST 2018-03-11 03 -05 CDT 1 2018-11-04 01 -06 CST 2019-03-10 03 -05 CDT 1 2019-11-03 01 -06 CST 2020-03-08 03 -05 CDT 1 2020-11-01 01 -06 CST 2021-03-14 03 -05 CDT 1 2021-11-07 01 -06 CST 2022-03-13 03 -05 CDT 1 2022-11-06 01 -06 CST 2023-03-12 03 -05 CDT 1 2023-11-05 01 -06 CST 2024-03-10 03 -05 CDT 1 2024-11-03 01 -06 CST 2025-03-09 03 -05 CDT 1 2025-11-02 01 -06 CST 2026-03-08 03 -05 CDT 1 2026-11-01 01 -06 CST 2027-03-14 03 -05 CDT 1 2027-11-07 01 -06 CST 2028-03-12 03 -05 CDT 1 2028-11-05 01 -06 CST 2029-03-11 03 -05 CDT 1 2029-11-04 01 -06 CST 2030-03-10 03 -05 CDT 1 2030-11-03 01 -06 CST 2031-03-09 03 -05 CDT 1 2031-11-02 01 -06 CST 2032-03-14 03 -05 CDT 1 2032-11-07 01 -06 CST 2033-03-13 03 -05 CDT 1 2033-11-06 01 -06 CST 2034-03-12 03 -05 CDT 1 2034-11-05 01 -06 CST 2035-03-11 03 -05 CDT 1 2035-11-04 01 -06 CST 2036-03-09 03 -05 CDT 1 2036-11-02 01 -06 CST 2037-03-08 03 -05 CDT 1 2037-11-01 01 -06 CST 2038-03-14 03 -05 CDT 1 2038-11-07 01 -06 CST 2039-03-13 03 -05 CDT 1 2039-11-06 01 -06 CST 2040-03-11 03 -05 CDT 1 2040-11-04 01 -06 CST 2041-03-10 03 -05 CDT 1 2041-11-03 01 -06 CST 2042-03-09 03 -05 CDT 1 2042-11-02 01 -06 CST 2043-03-08 03 -05 CDT 1 2043-11-01 01 -06 CST 2044-03-13 03 -05 CDT 1 2044-11-06 01 -06 CST 2045-03-12 03 -05 CDT 1 2045-11-05 01 -06 CST 2046-03-11 03 -05 CDT 1 2046-11-04 01 -06 CST 2047-03-10 03 -05 CDT 1 2047-11-03 01 -06 CST 2048-03-08 03 -05 CDT 1 2048-11-01 01 -06 CST 2049-03-14 03 -05 CDT 1 2049-11-07 01 -06 CST TZ="America/Chihuahua" - - -070420 LMT 1922-01-01 00 -07 MST 1927-06-11 00 -06 CST 1930-11-14 23 -07 MST 1931-05-02 00 -06 CST 1931-09-30 23 -07 MST 1932-04-01 01 -06 CST 1996-04-07 03 -05 CDT 1 1996-10-27 01 -06 CST 1997-04-06 03 -05 CDT 1 1997-10-26 01 -06 CST 1998-04-05 03 -06 MDT 1 1998-10-25 01 -07 MST 1999-04-04 03 -06 MDT 1 1999-10-31 01 -07 MST 2000-04-02 03 -06 MDT 1 2000-10-29 01 -07 MST 2001-05-06 03 -06 MDT 1 2001-09-30 01 -07 MST 2002-04-07 03 -06 MDT 1 2002-10-27 01 -07 MST 2003-04-06 03 -06 MDT 1 2003-10-26 01 -07 MST 2004-04-04 03 -06 MDT 1 2004-10-31 01 -07 MST 2005-04-03 03 -06 MDT 1 2005-10-30 01 -07 MST 2006-04-02 03 -06 MDT 1 2006-10-29 01 -07 MST 2007-04-01 03 -06 MDT 1 2007-10-28 01 -07 MST 2008-04-06 03 -06 MDT 1 2008-10-26 01 -07 MST 2009-04-05 03 -06 MDT 1 2009-10-25 01 -07 MST 2010-04-04 03 -06 MDT 1 2010-10-31 01 -07 MST 2011-04-03 03 -06 MDT 1 2011-10-30 01 -07 MST 2012-04-01 03 -06 MDT 1 2012-10-28 01 -07 MST 2013-04-07 03 -06 MDT 1 2013-10-27 01 -07 MST 2014-04-06 03 -06 MDT 1 2014-10-26 01 -07 MST 2015-04-05 03 -06 MDT 1 2015-10-25 01 -07 MST 2016-04-03 03 -06 MDT 1 2016-10-30 01 -07 MST 2017-04-02 03 -06 MDT 1 2017-10-29 01 -07 MST 2018-04-01 03 -06 MDT 1 2018-10-28 01 -07 MST 2019-04-07 03 -06 MDT 1 2019-10-27 01 -07 MST 2020-04-05 03 -06 MDT 1 2020-10-25 01 -07 MST 2021-04-04 03 -06 MDT 1 2021-10-31 01 -07 MST 2022-04-03 03 -06 MDT 1 2022-10-30 01 -07 MST 2023-04-02 03 -06 MDT 1 2023-10-29 01 -07 MST 2024-04-07 03 -06 MDT 1 2024-10-27 01 -07 MST 2025-04-06 03 -06 MDT 1 2025-10-26 01 -07 MST 2026-04-05 03 -06 MDT 1 2026-10-25 01 -07 MST 2027-04-04 03 -06 MDT 1 2027-10-31 01 -07 MST 2028-04-02 03 -06 MDT 1 2028-10-29 01 -07 MST 2029-04-01 03 -06 MDT 1 2029-10-28 01 -07 MST 2030-04-07 03 -06 MDT 1 2030-10-27 01 -07 MST 2031-04-06 03 -06 MDT 1 2031-10-26 01 -07 MST 2032-04-04 03 -06 MDT 1 2032-10-31 01 -07 MST 2033-04-03 03 -06 MDT 1 2033-10-30 01 -07 MST 2034-04-02 03 -06 MDT 1 2034-10-29 01 -07 MST 2035-04-01 03 -06 MDT 1 2035-10-28 01 -07 MST 2036-04-06 03 -06 MDT 1 2036-10-26 01 -07 MST 2037-04-05 03 -06 MDT 1 2037-10-25 01 -07 MST 2038-04-04 03 -06 MDT 1 2038-10-31 01 -07 MST 2039-04-03 03 -06 MDT 1 2039-10-30 01 -07 MST 2040-04-01 03 -06 MDT 1 2040-10-28 01 -07 MST 2041-04-07 03 -06 MDT 1 2041-10-27 01 -07 MST 2042-04-06 03 -06 MDT 1 2042-10-26 01 -07 MST 2043-04-05 03 -06 MDT 1 2043-10-25 01 -07 MST 2044-04-03 03 -06 MDT 1 2044-10-30 01 -07 MST 2045-04-02 03 -06 MDT 1 2045-10-29 01 -07 MST 2046-04-01 03 -06 MDT 1 2046-10-28 01 -07 MST 2047-04-07 03 -06 MDT 1 2047-10-27 01 -07 MST 2048-04-05 03 -06 MDT 1 2048-10-25 01 -07 MST 2049-04-04 03 -06 MDT 1 2049-10-31 01 -07 MST TZ="America/Costa_Rica" - - -053613 LMT 1890-01-01 00 -053613 SJMT 1921-01-14 23:36:13 -06 CST 1979-02-25 01 -05 CDT 1 1979-06-02 23 -06 CST 1980-02-24 01 -05 CDT 1 1980-05-31 23 -06 CST 1991-01-19 01 -05 CDT 1 1991-06-30 23 -06 CST 1992-01-18 01 -05 CDT 1 1992-03-14 23 -06 CST TZ="America/Creston" - - -074604 LMT 1884-01-01 00:46:04 -07 MST 1916-09-30 23 -08 PST 1918-06-02 01 -07 MST TZ="America/Cuiaba" - - -034420 LMT 1913-12-31 23:44:20 -04 1931-10-03 12 -03 1 1932-03-31 23 -04 1932-10-03 01 -03 1 1933-03-31 23 -04 1949-12-01 01 -03 1 1950-04-16 00 -04 1950-12-01 01 -03 1 1951-03-31 23 -04 1951-12-01 01 -03 1 1952-03-31 23 -04 1952-12-01 01 -03 1 1953-02-28 23 -04 1963-12-09 01 -03 1 1964-02-29 23 -04 1965-01-31 01 -03 1 1965-03-30 23 -04 1965-12-01 01 -03 1 1966-02-28 23 -04 1966-11-01 01 -03 1 1967-02-28 23 -04 1967-11-01 01 -03 1 1968-02-29 23 -04 1985-11-02 01 -03 1 1986-03-14 23 -04 1986-10-25 01 -03 1 1987-02-13 23 -04 1987-10-25 01 -03 1 1988-02-06 23 -04 1988-10-16 01 -03 1 1989-01-28 23 -04 1989-10-15 01 -03 1 1990-02-10 23 -04 1990-10-21 01 -03 1 1991-02-16 23 -04 1991-10-20 01 -03 1 1992-02-08 23 -04 1992-10-25 01 -03 1 1993-01-30 23 -04 1993-10-17 01 -03 1 1994-02-19 23 -04 1994-10-16 01 -03 1 1995-02-18 23 -04 1995-10-15 01 -03 1 1996-02-10 23 -04 1996-10-06 01 -03 1 1997-02-15 23 -04 1997-10-06 01 -03 1 1998-02-28 23 -04 1998-10-11 01 -03 1 1999-02-20 23 -04 1999-10-03 01 -03 1 2000-02-26 23 -04 2000-10-08 01 -03 1 2001-02-17 23 -04 2001-10-14 01 -03 1 2002-02-16 23 -04 2002-11-03 01 -03 1 2003-02-15 23 -04 2004-11-02 01 -03 1 2005-02-19 23 -04 2005-10-16 01 -03 1 2006-02-18 23 -04 2006-11-05 01 -03 1 2007-02-24 23 -04 2007-10-14 01 -03 1 2008-02-16 23 -04 2008-10-19 01 -03 1 2009-02-14 23 -04 2009-10-18 01 -03 1 2010-02-20 23 -04 2010-10-17 01 -03 1 2011-02-19 23 -04 2011-10-16 01 -03 1 2012-02-25 23 -04 2012-10-21 01 -03 1 2013-02-16 23 -04 2013-10-20 01 -03 1 2014-02-15 23 -04 2014-10-19 01 -03 1 2015-02-21 23 -04 2015-10-18 01 -03 1 2016-02-20 23 -04 2016-10-16 01 -03 1 2017-02-18 23 -04 2017-10-15 01 -03 1 2018-02-17 23 -04 2018-11-04 01 -03 1 2019-02-16 23 -04 TZ="America/Curacao" - - -043547 LMT 1912-02-12 00:05:47 -0430 1965-01-01 00:30 -04 AST TZ="America/Danmarkshavn" - - -011440 LMT 1916-07-27 22:14:40 -03 1980-04-06 03 -02 1 1980-09-27 22 -03 1981-03-28 23 -02 1 1981-09-26 22 -03 1982-03-27 23 -02 1 1982-09-25 22 -03 1983-03-26 23 -02 1 1983-09-24 22 -03 1984-03-24 23 -02 1 1984-09-29 22 -03 1985-03-30 23 -02 1 1985-09-28 22 -03 1986-03-29 23 -02 1 1986-09-27 22 -03 1987-03-28 23 -02 1 1987-09-26 22 -03 1988-03-26 23 -02 1 1988-09-24 22 -03 1989-03-25 23 -02 1 1989-09-23 22 -03 1990-03-24 23 -02 1 1990-09-29 22 -03 1991-03-30 23 -02 1 1991-09-28 22 -03 1992-03-28 23 -02 1 1992-09-26 22 -03 1993-03-27 23 -02 1 1993-09-25 22 -03 1994-03-26 23 -02 1 1994-09-24 22 -03 1995-03-25 23 -02 1 1995-09-23 22 -03 1996-01-01 03 +00 GMT TZ="America/Dawson" - - -091740 LMT 1900-08-20 00:17:40 -09 YST 1918-04-14 03 -08 YDT 1 1918-10-27 01 -09 YST 1919-05-25 03 -08 YDT 1 1919-10-31 23 -09 YST 1942-02-09 03 -08 YWT 1 1945-08-14 15 -08 YPT 1 1945-09-30 01 -09 YST 1965-04-25 02 -07 YDDT 1 1965-10-31 00 -09 YST 1973-10-28 01 -08 PST 1980-04-27 03 -07 PDT 1 1980-10-26 01 -08 PST 1981-04-26 03 -07 PDT 1 1981-10-25 01 -08 PST 1982-04-25 03 -07 PDT 1 1982-10-31 01 -08 PST 1983-04-24 03 -07 PDT 1 1983-10-30 01 -08 PST 1984-04-29 03 -07 PDT 1 1984-10-28 01 -08 PST 1985-04-28 03 -07 PDT 1 1985-10-27 01 -08 PST 1986-04-27 03 -07 PDT 1 1986-10-26 01 -08 PST 1987-04-05 03 -07 PDT 1 1987-10-25 01 -08 PST 1988-04-03 03 -07 PDT 1 1988-10-30 01 -08 PST 1989-04-02 03 -07 PDT 1 1989-10-29 01 -08 PST 1990-04-01 03 -07 PDT 1 1990-10-28 01 -08 PST 1991-04-07 03 -07 PDT 1 1991-10-27 01 -08 PST 1992-04-05 03 -07 PDT 1 1992-10-25 01 -08 PST 1993-04-04 03 -07 PDT 1 1993-10-31 01 -08 PST 1994-04-03 03 -07 PDT 1 1994-10-30 01 -08 PST 1995-04-02 03 -07 PDT 1 1995-10-29 01 -08 PST 1996-04-07 03 -07 PDT 1 1996-10-27 01 -08 PST 1997-04-06 03 -07 PDT 1 1997-10-26 01 -08 PST 1998-04-05 03 -07 PDT 1 1998-10-25 01 -08 PST 1999-04-04 03 -07 PDT 1 1999-10-31 01 -08 PST 2000-04-02 03 -07 PDT 1 2000-10-29 01 -08 PST 2001-04-01 03 -07 PDT 1 2001-10-28 01 -08 PST 2002-04-07 03 -07 PDT 1 2002-10-27 01 -08 PST 2003-04-06 03 -07 PDT 1 2003-10-26 01 -08 PST 2004-04-04 03 -07 PDT 1 2004-10-31 01 -08 PST 2005-04-03 03 -07 PDT 1 2005-10-30 01 -08 PST 2006-04-02 03 -07 PDT 1 2006-10-29 01 -08 PST 2007-03-11 03 -07 PDT 1 2007-11-04 01 -08 PST 2008-03-09 03 -07 PDT 1 2008-11-02 01 -08 PST 2009-03-08 03 -07 PDT 1 2009-11-01 01 -08 PST 2010-03-14 03 -07 PDT 1 2010-11-07 01 -08 PST 2011-03-13 03 -07 PDT 1 2011-11-06 01 -08 PST 2012-03-11 03 -07 PDT 1 2012-11-04 01 -08 PST 2013-03-10 03 -07 PDT 1 2013-11-03 01 -08 PST 2014-03-09 03 -07 PDT 1 2014-11-02 01 -08 PST 2015-03-08 03 -07 PDT 1 2015-11-01 01 -08 PST 2016-03-13 03 -07 PDT 1 2016-11-06 01 -08 PST 2017-03-12 03 -07 PDT 1 2017-11-05 01 -08 PST 2018-03-11 03 -07 PDT 1 2018-11-04 01 -08 PST 2019-03-10 03 -07 PDT 1 2019-11-03 01 -08 PST 2020-03-08 03 -07 PDT 1 2020-11-01 01 -08 PST 2021-03-14 03 -07 PDT 1 2021-11-07 01 -08 PST 2022-03-13 03 -07 PDT 1 2022-11-06 01 -08 PST 2023-03-12 03 -07 PDT 1 2023-11-05 01 -08 PST 2024-03-10 03 -07 PDT 1 2024-11-03 01 -08 PST 2025-03-09 03 -07 PDT 1 2025-11-02 01 -08 PST 2026-03-08 03 -07 PDT 1 2026-11-01 01 -08 PST 2027-03-14 03 -07 PDT 1 2027-11-07 01 -08 PST 2028-03-12 03 -07 PDT 1 2028-11-05 01 -08 PST 2029-03-11 03 -07 PDT 1 2029-11-04 01 -08 PST 2030-03-10 03 -07 PDT 1 2030-11-03 01 -08 PST 2031-03-09 03 -07 PDT 1 2031-11-02 01 -08 PST 2032-03-14 03 -07 PDT 1 2032-11-07 01 -08 PST 2033-03-13 03 -07 PDT 1 2033-11-06 01 -08 PST 2034-03-12 03 -07 PDT 1 2034-11-05 01 -08 PST 2035-03-11 03 -07 PDT 1 2035-11-04 01 -08 PST 2036-03-09 03 -07 PDT 1 2036-11-02 01 -08 PST 2037-03-08 03 -07 PDT 1 2037-11-01 01 -08 PST 2038-03-14 03 -07 PDT 1 2038-11-07 01 -08 PST 2039-03-13 03 -07 PDT 1 2039-11-06 01 -08 PST 2040-03-11 03 -07 PDT 1 2040-11-04 01 -08 PST 2041-03-10 03 -07 PDT 1 2041-11-03 01 -08 PST 2042-03-09 03 -07 PDT 1 2042-11-02 01 -08 PST 2043-03-08 03 -07 PDT 1 2043-11-01 01 -08 PST 2044-03-13 03 -07 PDT 1 2044-11-06 01 -08 PST 2045-03-12 03 -07 PDT 1 2045-11-05 01 -08 PST 2046-03-11 03 -07 PDT 1 2046-11-04 01 -08 PST 2047-03-10 03 -07 PDT 1 2047-11-03 01 -08 PST 2048-03-08 03 -07 PDT 1 2048-11-01 01 -08 PST 2049-03-14 03 -07 PDT 1 2049-11-07 01 -08 PST TZ="America/Dawson_Creek" - - -080056 LMT 1884-01-01 00:00:56 -08 PST 1918-04-14 03 -07 PDT 1 1918-10-27 01 -08 PST 1942-02-09 03 -07 PWT 1 1945-08-14 16 -07 PPT 1 1945-09-30 01 -08 PST 1947-04-27 03 -07 PDT 1 1947-09-28 01 -08 PST 1948-04-25 03 -07 PDT 1 1948-09-26 01 -08 PST 1949-04-24 03 -07 PDT 1 1949-09-25 01 -08 PST 1950-04-30 03 -07 PDT 1 1950-09-24 01 -08 PST 1951-04-29 03 -07 PDT 1 1951-09-30 01 -08 PST 1952-04-27 03 -07 PDT 1 1952-09-28 01 -08 PST 1953-04-26 03 -07 PDT 1 1953-09-27 01 -08 PST 1954-04-25 03 -07 PDT 1 1954-09-26 01 -08 PST 1955-04-24 03 -07 PDT 1 1955-09-25 01 -08 PST 1956-04-29 03 -07 PDT 1 1956-09-30 01 -08 PST 1957-04-28 03 -07 PDT 1 1957-09-29 01 -08 PST 1958-04-27 03 -07 PDT 1 1958-09-28 01 -08 PST 1959-04-26 03 -07 PDT 1 1959-09-27 01 -08 PST 1960-04-24 03 -07 PDT 1 1960-09-25 01 -08 PST 1961-04-30 03 -07 PDT 1 1961-09-24 01 -08 PST 1962-04-29 03 -07 PDT 1 1962-10-28 01 -08 PST 1963-04-28 03 -07 PDT 1 1963-10-27 01 -08 PST 1964-04-26 03 -07 PDT 1 1964-10-25 01 -08 PST 1965-04-25 03 -07 PDT 1 1965-10-31 01 -08 PST 1966-04-24 03 -07 PDT 1 1966-10-30 01 -08 PST 1967-04-30 03 -07 PDT 1 1967-10-29 01 -08 PST 1968-04-28 03 -07 PDT 1 1968-10-27 01 -08 PST 1969-04-27 03 -07 PDT 1 1969-10-26 01 -08 PST 1970-04-26 03 -07 PDT 1 1970-10-25 01 -08 PST 1971-04-25 03 -07 PDT 1 1971-10-31 01 -08 PST 1972-04-30 03 -07 PDT 1 1972-08-30 02 -07 MST TZ="America/Denver" - - -065956 LMT 1883-11-18 12 -07 MST 1918-03-31 03 -06 MDT 1 1918-10-27 01 -07 MST 1919-03-30 03 -06 MDT 1 1919-10-26 01 -07 MST 1920-03-28 03 -06 MDT 1 1920-10-31 01 -07 MST 1921-03-27 03 -06 MDT 1 1921-05-22 01 -07 MST 1942-02-09 03 -06 MWT 1 1945-08-14 17 -06 MPT 1 1945-09-30 01 -07 MST 1965-04-25 03 -06 MDT 1 1965-10-31 01 -07 MST 1966-04-24 03 -06 MDT 1 1966-10-30 01 -07 MST 1967-04-30 03 -06 MDT 1 1967-10-29 01 -07 MST 1968-04-28 03 -06 MDT 1 1968-10-27 01 -07 MST 1969-04-27 03 -06 MDT 1 1969-10-26 01 -07 MST 1970-04-26 03 -06 MDT 1 1970-10-25 01 -07 MST 1971-04-25 03 -06 MDT 1 1971-10-31 01 -07 MST 1972-04-30 03 -06 MDT 1 1972-10-29 01 -07 MST 1973-04-29 03 -06 MDT 1 1973-10-28 01 -07 MST 1974-01-06 03 -06 MDT 1 1974-10-27 01 -07 MST 1975-02-23 03 -06 MDT 1 1975-10-26 01 -07 MST 1976-04-25 03 -06 MDT 1 1976-10-31 01 -07 MST 1977-04-24 03 -06 MDT 1 1977-10-30 01 -07 MST 1978-04-30 03 -06 MDT 1 1978-10-29 01 -07 MST 1979-04-29 03 -06 MDT 1 1979-10-28 01 -07 MST 1980-04-27 03 -06 MDT 1 1980-10-26 01 -07 MST 1981-04-26 03 -06 MDT 1 1981-10-25 01 -07 MST 1982-04-25 03 -06 MDT 1 1982-10-31 01 -07 MST 1983-04-24 03 -06 MDT 1 1983-10-30 01 -07 MST 1984-04-29 03 -06 MDT 1 1984-10-28 01 -07 MST 1985-04-28 03 -06 MDT 1 1985-10-27 01 -07 MST 1986-04-27 03 -06 MDT 1 1986-10-26 01 -07 MST 1987-04-05 03 -06 MDT 1 1987-10-25 01 -07 MST 1988-04-03 03 -06 MDT 1 1988-10-30 01 -07 MST 1989-04-02 03 -06 MDT 1 1989-10-29 01 -07 MST 1990-04-01 03 -06 MDT 1 1990-10-28 01 -07 MST 1991-04-07 03 -06 MDT 1 1991-10-27 01 -07 MST 1992-04-05 03 -06 MDT 1 1992-10-25 01 -07 MST 1993-04-04 03 -06 MDT 1 1993-10-31 01 -07 MST 1994-04-03 03 -06 MDT 1 1994-10-30 01 -07 MST 1995-04-02 03 -06 MDT 1 1995-10-29 01 -07 MST 1996-04-07 03 -06 MDT 1 1996-10-27 01 -07 MST 1997-04-06 03 -06 MDT 1 1997-10-26 01 -07 MST 1998-04-05 03 -06 MDT 1 1998-10-25 01 -07 MST 1999-04-04 03 -06 MDT 1 1999-10-31 01 -07 MST 2000-04-02 03 -06 MDT 1 2000-10-29 01 -07 MST 2001-04-01 03 -06 MDT 1 2001-10-28 01 -07 MST 2002-04-07 03 -06 MDT 1 2002-10-27 01 -07 MST 2003-04-06 03 -06 MDT 1 2003-10-26 01 -07 MST 2004-04-04 03 -06 MDT 1 2004-10-31 01 -07 MST 2005-04-03 03 -06 MDT 1 2005-10-30 01 -07 MST 2006-04-02 03 -06 MDT 1 2006-10-29 01 -07 MST 2007-03-11 03 -06 MDT 1 2007-11-04 01 -07 MST 2008-03-09 03 -06 MDT 1 2008-11-02 01 -07 MST 2009-03-08 03 -06 MDT 1 2009-11-01 01 -07 MST 2010-03-14 03 -06 MDT 1 2010-11-07 01 -07 MST 2011-03-13 03 -06 MDT 1 2011-11-06 01 -07 MST 2012-03-11 03 -06 MDT 1 2012-11-04 01 -07 MST 2013-03-10 03 -06 MDT 1 2013-11-03 01 -07 MST 2014-03-09 03 -06 MDT 1 2014-11-02 01 -07 MST 2015-03-08 03 -06 MDT 1 2015-11-01 01 -07 MST 2016-03-13 03 -06 MDT 1 2016-11-06 01 -07 MST 2017-03-12 03 -06 MDT 1 2017-11-05 01 -07 MST 2018-03-11 03 -06 MDT 1 2018-11-04 01 -07 MST 2019-03-10 03 -06 MDT 1 2019-11-03 01 -07 MST 2020-03-08 03 -06 MDT 1 2020-11-01 01 -07 MST 2021-03-14 03 -06 MDT 1 2021-11-07 01 -07 MST 2022-03-13 03 -06 MDT 1 2022-11-06 01 -07 MST 2023-03-12 03 -06 MDT 1 2023-11-05 01 -07 MST 2024-03-10 03 -06 MDT 1 2024-11-03 01 -07 MST 2025-03-09 03 -06 MDT 1 2025-11-02 01 -07 MST 2026-03-08 03 -06 MDT 1 2026-11-01 01 -07 MST 2027-03-14 03 -06 MDT 1 2027-11-07 01 -07 MST 2028-03-12 03 -06 MDT 1 2028-11-05 01 -07 MST 2029-03-11 03 -06 MDT 1 2029-11-04 01 -07 MST 2030-03-10 03 -06 MDT 1 2030-11-03 01 -07 MST 2031-03-09 03 -06 MDT 1 2031-11-02 01 -07 MST 2032-03-14 03 -06 MDT 1 2032-11-07 01 -07 MST 2033-03-13 03 -06 MDT 1 2033-11-06 01 -07 MST 2034-03-12 03 -06 MDT 1 2034-11-05 01 -07 MST 2035-03-11 03 -06 MDT 1 2035-11-04 01 -07 MST 2036-03-09 03 -06 MDT 1 2036-11-02 01 -07 MST 2037-03-08 03 -06 MDT 1 2037-11-01 01 -07 MST 2038-03-14 03 -06 MDT 1 2038-11-07 01 -07 MST 2039-03-13 03 -06 MDT 1 2039-11-06 01 -07 MST 2040-03-11 03 -06 MDT 1 2040-11-04 01 -07 MST 2041-03-10 03 -06 MDT 1 2041-11-03 01 -07 MST 2042-03-09 03 -06 MDT 1 2042-11-02 01 -07 MST 2043-03-08 03 -06 MDT 1 2043-11-01 01 -07 MST 2044-03-13 03 -06 MDT 1 2044-11-06 01 -07 MST 2045-03-12 03 -06 MDT 1 2045-11-05 01 -07 MST 2046-03-11 03 -06 MDT 1 2046-11-04 01 -07 MST 2047-03-10 03 -06 MDT 1 2047-11-03 01 -07 MST 2048-03-08 03 -06 MDT 1 2048-11-01 01 -07 MST 2049-03-14 03 -06 MDT 1 2049-11-07 01 -07 MST TZ="America/Detroit" - - -053211 LMT 1904-12-31 23:32:11 -06 CST 1915-05-15 03 -05 EST 1942-02-09 03 -04 EWT 1 1945-08-14 19 -04 EPT 1 1945-09-30 01 -05 EST 1948-04-25 03 -04 EDT 1 1948-09-26 01 -05 EST 1967-06-14 01:01 -04 EDT 1 1967-10-29 01 -05 EST 1968-04-28 03 -04 EDT 1 1968-10-27 01 -05 EST 1973-04-29 03 -04 EDT 1 1973-10-28 01 -05 EST 1974-01-06 03 -04 EDT 1 1974-10-27 01 -05 EST 1975-04-27 03 -04 EDT 1 1975-10-26 01 -05 EST 1976-04-25 03 -04 EDT 1 1976-10-31 01 -05 EST 1977-04-24 03 -04 EDT 1 1977-10-30 01 -05 EST 1978-04-30 03 -04 EDT 1 1978-10-29 01 -05 EST 1979-04-29 03 -04 EDT 1 1979-10-28 01 -05 EST 1980-04-27 03 -04 EDT 1 1980-10-26 01 -05 EST 1981-04-26 03 -04 EDT 1 1981-10-25 01 -05 EST 1982-04-25 03 -04 EDT 1 1982-10-31 01 -05 EST 1983-04-24 03 -04 EDT 1 1983-10-30 01 -05 EST 1984-04-29 03 -04 EDT 1 1984-10-28 01 -05 EST 1985-04-28 03 -04 EDT 1 1985-10-27 01 -05 EST 1986-04-27 03 -04 EDT 1 1986-10-26 01 -05 EST 1987-04-05 03 -04 EDT 1 1987-10-25 01 -05 EST 1988-04-03 03 -04 EDT 1 1988-10-30 01 -05 EST 1989-04-02 03 -04 EDT 1 1989-10-29 01 -05 EST 1990-04-01 03 -04 EDT 1 1990-10-28 01 -05 EST 1991-04-07 03 -04 EDT 1 1991-10-27 01 -05 EST 1992-04-05 03 -04 EDT 1 1992-10-25 01 -05 EST 1993-04-04 03 -04 EDT 1 1993-10-31 01 -05 EST 1994-04-03 03 -04 EDT 1 1994-10-30 01 -05 EST 1995-04-02 03 -04 EDT 1 1995-10-29 01 -05 EST 1996-04-07 03 -04 EDT 1 1996-10-27 01 -05 EST 1997-04-06 03 -04 EDT 1 1997-10-26 01 -05 EST 1998-04-05 03 -04 EDT 1 1998-10-25 01 -05 EST 1999-04-04 03 -04 EDT 1 1999-10-31 01 -05 EST 2000-04-02 03 -04 EDT 1 2000-10-29 01 -05 EST 2001-04-01 03 -04 EDT 1 2001-10-28 01 -05 EST 2002-04-07 03 -04 EDT 1 2002-10-27 01 -05 EST 2003-04-06 03 -04 EDT 1 2003-10-26 01 -05 EST 2004-04-04 03 -04 EDT 1 2004-10-31 01 -05 EST 2005-04-03 03 -04 EDT 1 2005-10-30 01 -05 EST 2006-04-02 03 -04 EDT 1 2006-10-29 01 -05 EST 2007-03-11 03 -04 EDT 1 2007-11-04 01 -05 EST 2008-03-09 03 -04 EDT 1 2008-11-02 01 -05 EST 2009-03-08 03 -04 EDT 1 2009-11-01 01 -05 EST 2010-03-14 03 -04 EDT 1 2010-11-07 01 -05 EST 2011-03-13 03 -04 EDT 1 2011-11-06 01 -05 EST 2012-03-11 03 -04 EDT 1 2012-11-04 01 -05 EST 2013-03-10 03 -04 EDT 1 2013-11-03 01 -05 EST 2014-03-09 03 -04 EDT 1 2014-11-02 01 -05 EST 2015-03-08 03 -04 EDT 1 2015-11-01 01 -05 EST 2016-03-13 03 -04 EDT 1 2016-11-06 01 -05 EST 2017-03-12 03 -04 EDT 1 2017-11-05 01 -05 EST 2018-03-11 03 -04 EDT 1 2018-11-04 01 -05 EST 2019-03-10 03 -04 EDT 1 2019-11-03 01 -05 EST 2020-03-08 03 -04 EDT 1 2020-11-01 01 -05 EST 2021-03-14 03 -04 EDT 1 2021-11-07 01 -05 EST 2022-03-13 03 -04 EDT 1 2022-11-06 01 -05 EST 2023-03-12 03 -04 EDT 1 2023-11-05 01 -05 EST 2024-03-10 03 -04 EDT 1 2024-11-03 01 -05 EST 2025-03-09 03 -04 EDT 1 2025-11-02 01 -05 EST 2026-03-08 03 -04 EDT 1 2026-11-01 01 -05 EST 2027-03-14 03 -04 EDT 1 2027-11-07 01 -05 EST 2028-03-12 03 -04 EDT 1 2028-11-05 01 -05 EST 2029-03-11 03 -04 EDT 1 2029-11-04 01 -05 EST 2030-03-10 03 -04 EDT 1 2030-11-03 01 -05 EST 2031-03-09 03 -04 EDT 1 2031-11-02 01 -05 EST 2032-03-14 03 -04 EDT 1 2032-11-07 01 -05 EST 2033-03-13 03 -04 EDT 1 2033-11-06 01 -05 EST 2034-03-12 03 -04 EDT 1 2034-11-05 01 -05 EST 2035-03-11 03 -04 EDT 1 2035-11-04 01 -05 EST 2036-03-09 03 -04 EDT 1 2036-11-02 01 -05 EST 2037-03-08 03 -04 EDT 1 2037-11-01 01 -05 EST 2038-03-14 03 -04 EDT 1 2038-11-07 01 -05 EST 2039-03-13 03 -04 EDT 1 2039-11-06 01 -05 EST 2040-03-11 03 -04 EDT 1 2040-11-04 01 -05 EST 2041-03-10 03 -04 EDT 1 2041-11-03 01 -05 EST 2042-03-09 03 -04 EDT 1 2042-11-02 01 -05 EST 2043-03-08 03 -04 EDT 1 2043-11-01 01 -05 EST 2044-03-13 03 -04 EDT 1 2044-11-06 01 -05 EST 2045-03-12 03 -04 EDT 1 2045-11-05 01 -05 EST 2046-03-11 03 -04 EDT 1 2046-11-04 01 -05 EST 2047-03-10 03 -04 EDT 1 2047-11-03 01 -05 EST 2048-03-08 03 -04 EDT 1 2048-11-01 01 -05 EST 2049-03-14 03 -04 EDT 1 2049-11-07 01 -05 EST TZ="America/Edmonton" - - -073352 LMT 1906-09-01 00:33:52 -07 MST 1918-04-14 03 -06 MDT 1 1918-10-27 01 -07 MST 1919-04-13 03 -06 MDT 1 1919-05-27 01 -07 MST 1920-04-25 03 -06 MDT 1 1920-10-31 01 -07 MST 1921-04-24 03 -06 MDT 1 1921-09-25 01 -07 MST 1922-04-30 03 -06 MDT 1 1922-09-24 01 -07 MST 1923-04-29 03 -06 MDT 1 1923-09-30 01 -07 MST 1942-02-09 03 -06 MWT 1 1945-08-14 17 -06 MPT 1 1945-09-30 01 -07 MST 1947-04-27 03 -06 MDT 1 1947-09-28 01 -07 MST 1972-04-30 03 -06 MDT 1 1972-10-29 01 -07 MST 1973-04-29 03 -06 MDT 1 1973-10-28 01 -07 MST 1974-04-28 03 -06 MDT 1 1974-10-27 01 -07 MST 1975-04-27 03 -06 MDT 1 1975-10-26 01 -07 MST 1976-04-25 03 -06 MDT 1 1976-10-31 01 -07 MST 1977-04-24 03 -06 MDT 1 1977-10-30 01 -07 MST 1978-04-30 03 -06 MDT 1 1978-10-29 01 -07 MST 1979-04-29 03 -06 MDT 1 1979-10-28 01 -07 MST 1980-04-27 03 -06 MDT 1 1980-10-26 01 -07 MST 1981-04-26 03 -06 MDT 1 1981-10-25 01 -07 MST 1982-04-25 03 -06 MDT 1 1982-10-31 01 -07 MST 1983-04-24 03 -06 MDT 1 1983-10-30 01 -07 MST 1984-04-29 03 -06 MDT 1 1984-10-28 01 -07 MST 1985-04-28 03 -06 MDT 1 1985-10-27 01 -07 MST 1986-04-27 03 -06 MDT 1 1986-10-26 01 -07 MST 1987-04-05 03 -06 MDT 1 1987-10-25 01 -07 MST 1988-04-03 03 -06 MDT 1 1988-10-30 01 -07 MST 1989-04-02 03 -06 MDT 1 1989-10-29 01 -07 MST 1990-04-01 03 -06 MDT 1 1990-10-28 01 -07 MST 1991-04-07 03 -06 MDT 1 1991-10-27 01 -07 MST 1992-04-05 03 -06 MDT 1 1992-10-25 01 -07 MST 1993-04-04 03 -06 MDT 1 1993-10-31 01 -07 MST 1994-04-03 03 -06 MDT 1 1994-10-30 01 -07 MST 1995-04-02 03 -06 MDT 1 1995-10-29 01 -07 MST 1996-04-07 03 -06 MDT 1 1996-10-27 01 -07 MST 1997-04-06 03 -06 MDT 1 1997-10-26 01 -07 MST 1998-04-05 03 -06 MDT 1 1998-10-25 01 -07 MST 1999-04-04 03 -06 MDT 1 1999-10-31 01 -07 MST 2000-04-02 03 -06 MDT 1 2000-10-29 01 -07 MST 2001-04-01 03 -06 MDT 1 2001-10-28 01 -07 MST 2002-04-07 03 -06 MDT 1 2002-10-27 01 -07 MST 2003-04-06 03 -06 MDT 1 2003-10-26 01 -07 MST 2004-04-04 03 -06 MDT 1 2004-10-31 01 -07 MST 2005-04-03 03 -06 MDT 1 2005-10-30 01 -07 MST 2006-04-02 03 -06 MDT 1 2006-10-29 01 -07 MST 2007-03-11 03 -06 MDT 1 2007-11-04 01 -07 MST 2008-03-09 03 -06 MDT 1 2008-11-02 01 -07 MST 2009-03-08 03 -06 MDT 1 2009-11-01 01 -07 MST 2010-03-14 03 -06 MDT 1 2010-11-07 01 -07 MST 2011-03-13 03 -06 MDT 1 2011-11-06 01 -07 MST 2012-03-11 03 -06 MDT 1 2012-11-04 01 -07 MST 2013-03-10 03 -06 MDT 1 2013-11-03 01 -07 MST 2014-03-09 03 -06 MDT 1 2014-11-02 01 -07 MST 2015-03-08 03 -06 MDT 1 2015-11-01 01 -07 MST 2016-03-13 03 -06 MDT 1 2016-11-06 01 -07 MST 2017-03-12 03 -06 MDT 1 2017-11-05 01 -07 MST 2018-03-11 03 -06 MDT 1 2018-11-04 01 -07 MST 2019-03-10 03 -06 MDT 1 2019-11-03 01 -07 MST 2020-03-08 03 -06 MDT 1 2020-11-01 01 -07 MST 2021-03-14 03 -06 MDT 1 2021-11-07 01 -07 MST 2022-03-13 03 -06 MDT 1 2022-11-06 01 -07 MST 2023-03-12 03 -06 MDT 1 2023-11-05 01 -07 MST 2024-03-10 03 -06 MDT 1 2024-11-03 01 -07 MST 2025-03-09 03 -06 MDT 1 2025-11-02 01 -07 MST 2026-03-08 03 -06 MDT 1 2026-11-01 01 -07 MST 2027-03-14 03 -06 MDT 1 2027-11-07 01 -07 MST 2028-03-12 03 -06 MDT 1 2028-11-05 01 -07 MST 2029-03-11 03 -06 MDT 1 2029-11-04 01 -07 MST 2030-03-10 03 -06 MDT 1 2030-11-03 01 -07 MST 2031-03-09 03 -06 MDT 1 2031-11-02 01 -07 MST 2032-03-14 03 -06 MDT 1 2032-11-07 01 -07 MST 2033-03-13 03 -06 MDT 1 2033-11-06 01 -07 MST 2034-03-12 03 -06 MDT 1 2034-11-05 01 -07 MST 2035-03-11 03 -06 MDT 1 2035-11-04 01 -07 MST 2036-03-09 03 -06 MDT 1 2036-11-02 01 -07 MST 2037-03-08 03 -06 MDT 1 2037-11-01 01 -07 MST 2038-03-14 03 -06 MDT 1 2038-11-07 01 -07 MST 2039-03-13 03 -06 MDT 1 2039-11-06 01 -07 MST 2040-03-11 03 -06 MDT 1 2040-11-04 01 -07 MST 2041-03-10 03 -06 MDT 1 2041-11-03 01 -07 MST 2042-03-09 03 -06 MDT 1 2042-11-02 01 -07 MST 2043-03-08 03 -06 MDT 1 2043-11-01 01 -07 MST 2044-03-13 03 -06 MDT 1 2044-11-06 01 -07 MST 2045-03-12 03 -06 MDT 1 2045-11-05 01 -07 MST 2046-03-11 03 -06 MDT 1 2046-11-04 01 -07 MST 2047-03-10 03 -06 MDT 1 2047-11-03 01 -07 MST 2048-03-08 03 -06 MDT 1 2048-11-01 01 -07 MST 2049-03-14 03 -06 MDT 1 2049-11-07 01 -07 MST TZ="America/Eirunepe" - - -043928 LMT 1913-12-31 23:39:28 -05 1931-10-03 12 -04 1 1932-03-31 23 -05 1932-10-03 01 -04 1 1933-03-31 23 -05 1949-12-01 01 -04 1 1950-04-16 00 -05 1950-12-01 01 -04 1 1951-03-31 23 -05 1951-12-01 01 -04 1 1952-03-31 23 -05 1952-12-01 01 -04 1 1953-02-28 23 -05 1963-12-09 01 -04 1 1964-02-29 23 -05 1965-01-31 01 -04 1 1965-03-30 23 -05 1965-12-01 01 -04 1 1966-02-28 23 -05 1966-11-01 01 -04 1 1967-02-28 23 -05 1967-11-01 01 -04 1 1968-02-29 23 -05 1985-11-02 01 -04 1 1986-03-14 23 -05 1986-10-25 01 -04 1 1987-02-13 23 -05 1987-10-25 01 -04 1 1988-02-06 23 -05 1993-10-17 01 -04 1 1994-02-19 23 -05 2008-06-24 01 -04 2013-11-09 23 -05 TZ="America/El_Salvador" - - -055648 LMT 1920-12-31 23:56:48 -06 CST 1987-05-03 01 -05 CDT 1 1987-09-26 23 -06 CST 1988-05-01 01 -05 CDT 1 1988-09-24 23 -06 CST TZ="America/Fort_Nelson" - - -081047 LMT 1884-01-01 00:10:47 -08 PST 1918-04-14 03 -07 PDT 1 1918-10-27 01 -08 PST 1942-02-09 03 -07 PWT 1 1945-08-14 16 -07 PPT 1 1945-09-30 01 -08 PST 1947-04-27 03 -07 PDT 1 1947-09-28 01 -08 PST 1948-04-25 03 -07 PDT 1 1948-09-26 01 -08 PST 1949-04-24 03 -07 PDT 1 1949-09-25 01 -08 PST 1950-04-30 03 -07 PDT 1 1950-09-24 01 -08 PST 1951-04-29 03 -07 PDT 1 1951-09-30 01 -08 PST 1952-04-27 03 -07 PDT 1 1952-09-28 01 -08 PST 1953-04-26 03 -07 PDT 1 1953-09-27 01 -08 PST 1954-04-25 03 -07 PDT 1 1954-09-26 01 -08 PST 1955-04-24 03 -07 PDT 1 1955-09-25 01 -08 PST 1956-04-29 03 -07 PDT 1 1956-09-30 01 -08 PST 1957-04-28 03 -07 PDT 1 1957-09-29 01 -08 PST 1958-04-27 03 -07 PDT 1 1958-09-28 01 -08 PST 1959-04-26 03 -07 PDT 1 1959-09-27 01 -08 PST 1960-04-24 03 -07 PDT 1 1960-09-25 01 -08 PST 1961-04-30 03 -07 PDT 1 1961-09-24 01 -08 PST 1962-04-29 03 -07 PDT 1 1962-10-28 01 -08 PST 1963-04-28 03 -07 PDT 1 1963-10-27 01 -08 PST 1964-04-26 03 -07 PDT 1 1964-10-25 01 -08 PST 1965-04-25 03 -07 PDT 1 1965-10-31 01 -08 PST 1966-04-24 03 -07 PDT 1 1966-10-30 01 -08 PST 1967-04-30 03 -07 PDT 1 1967-10-29 01 -08 PST 1968-04-28 03 -07 PDT 1 1968-10-27 01 -08 PST 1969-04-27 03 -07 PDT 1 1969-10-26 01 -08 PST 1970-04-26 03 -07 PDT 1 1970-10-25 01 -08 PST 1971-04-25 03 -07 PDT 1 1971-10-31 01 -08 PST 1972-04-30 03 -07 PDT 1 1972-10-29 01 -08 PST 1973-04-29 03 -07 PDT 1 1973-10-28 01 -08 PST 1974-04-28 03 -07 PDT 1 1974-10-27 01 -08 PST 1975-04-27 03 -07 PDT 1 1975-10-26 01 -08 PST 1976-04-25 03 -07 PDT 1 1976-10-31 01 -08 PST 1977-04-24 03 -07 PDT 1 1977-10-30 01 -08 PST 1978-04-30 03 -07 PDT 1 1978-10-29 01 -08 PST 1979-04-29 03 -07 PDT 1 1979-10-28 01 -08 PST 1980-04-27 03 -07 PDT 1 1980-10-26 01 -08 PST 1981-04-26 03 -07 PDT 1 1981-10-25 01 -08 PST 1982-04-25 03 -07 PDT 1 1982-10-31 01 -08 PST 1983-04-24 03 -07 PDT 1 1983-10-30 01 -08 PST 1984-04-29 03 -07 PDT 1 1984-10-28 01 -08 PST 1985-04-28 03 -07 PDT 1 1985-10-27 01 -08 PST 1986-04-27 03 -07 PDT 1 1986-10-26 01 -08 PST 1987-04-05 03 -07 PDT 1 1987-10-25 01 -08 PST 1988-04-03 03 -07 PDT 1 1988-10-30 01 -08 PST 1989-04-02 03 -07 PDT 1 1989-10-29 01 -08 PST 1990-04-01 03 -07 PDT 1 1990-10-28 01 -08 PST 1991-04-07 03 -07 PDT 1 1991-10-27 01 -08 PST 1992-04-05 03 -07 PDT 1 1992-10-25 01 -08 PST 1993-04-04 03 -07 PDT 1 1993-10-31 01 -08 PST 1994-04-03 03 -07 PDT 1 1994-10-30 01 -08 PST 1995-04-02 03 -07 PDT 1 1995-10-29 01 -08 PST 1996-04-07 03 -07 PDT 1 1996-10-27 01 -08 PST 1997-04-06 03 -07 PDT 1 1997-10-26 01 -08 PST 1998-04-05 03 -07 PDT 1 1998-10-25 01 -08 PST 1999-04-04 03 -07 PDT 1 1999-10-31 01 -08 PST 2000-04-02 03 -07 PDT 1 2000-10-29 01 -08 PST 2001-04-01 03 -07 PDT 1 2001-10-28 01 -08 PST 2002-04-07 03 -07 PDT 1 2002-10-27 01 -08 PST 2003-04-06 03 -07 PDT 1 2003-10-26 01 -08 PST 2004-04-04 03 -07 PDT 1 2004-10-31 01 -08 PST 2005-04-03 03 -07 PDT 1 2005-10-30 01 -08 PST 2006-04-02 03 -07 PDT 1 2006-10-29 01 -08 PST 2007-03-11 03 -07 PDT 1 2007-11-04 01 -08 PST 2008-03-09 03 -07 PDT 1 2008-11-02 01 -08 PST 2009-03-08 03 -07 PDT 1 2009-11-01 01 -08 PST 2010-03-14 03 -07 PDT 1 2010-11-07 01 -08 PST 2011-03-13 03 -07 PDT 1 2011-11-06 01 -08 PST 2012-03-11 03 -07 PDT 1 2012-11-04 01 -08 PST 2013-03-10 03 -07 PDT 1 2013-11-03 01 -08 PST 2014-03-09 03 -07 PDT 1 2014-11-02 01 -08 PST 2015-03-08 03 -07 MST TZ="America/Fortaleza" - - -0234 LMT 1913-12-31 23:34 -03 1931-10-03 12 -02 1 1932-03-31 23 -03 1932-10-03 01 -02 1 1933-03-31 23 -03 1949-12-01 01 -02 1 1950-04-16 00 -03 1950-12-01 01 -02 1 1951-03-31 23 -03 1951-12-01 01 -02 1 1952-03-31 23 -03 1952-12-01 01 -02 1 1953-02-28 23 -03 1963-12-09 01 -02 1 1964-02-29 23 -03 1965-01-31 01 -02 1 1965-03-30 23 -03 1965-12-01 01 -02 1 1966-02-28 23 -03 1966-11-01 01 -02 1 1967-02-28 23 -03 1967-11-01 01 -02 1 1968-02-29 23 -03 1985-11-02 01 -02 1 1986-03-14 23 -03 1986-10-25 01 -02 1 1987-02-13 23 -03 1987-10-25 01 -02 1 1988-02-06 23 -03 1988-10-16 01 -02 1 1989-01-28 23 -03 1989-10-15 01 -02 1 1990-02-10 23 -03 1999-10-03 01 -02 1 2000-02-26 23 -03 2000-10-08 01 -02 1 2000-10-21 23 -03 2001-10-14 01 -02 1 2002-02-16 23 -03 TZ="America/Glace_Bay" - - -035948 LMT 1902-06-14 23:59:48 -04 AST 1918-04-14 03 -03 ADT 1 1918-10-27 01 -04 AST 1942-02-09 03 -03 AWT 1 1945-08-14 20 -03 APT 1 1945-09-30 01 -04 AST 1953-04-26 03 -03 ADT 1 1953-09-27 01 -04 AST 1972-04-30 03 -03 ADT 1 1972-10-29 01 -04 AST 1973-04-29 03 -03 ADT 1 1973-10-28 01 -04 AST 1974-04-28 03 -03 ADT 1 1974-10-27 01 -04 AST 1975-04-27 03 -03 ADT 1 1975-10-26 01 -04 AST 1976-04-25 03 -03 ADT 1 1976-10-31 01 -04 AST 1977-04-24 03 -03 ADT 1 1977-10-30 01 -04 AST 1978-04-30 03 -03 ADT 1 1978-10-29 01 -04 AST 1979-04-29 03 -03 ADT 1 1979-10-28 01 -04 AST 1980-04-27 03 -03 ADT 1 1980-10-26 01 -04 AST 1981-04-26 03 -03 ADT 1 1981-10-25 01 -04 AST 1982-04-25 03 -03 ADT 1 1982-10-31 01 -04 AST 1983-04-24 03 -03 ADT 1 1983-10-30 01 -04 AST 1984-04-29 03 -03 ADT 1 1984-10-28 01 -04 AST 1985-04-28 03 -03 ADT 1 1985-10-27 01 -04 AST 1986-04-27 03 -03 ADT 1 1986-10-26 01 -04 AST 1987-04-05 03 -03 ADT 1 1987-10-25 01 -04 AST 1988-04-03 03 -03 ADT 1 1988-10-30 01 -04 AST 1989-04-02 03 -03 ADT 1 1989-10-29 01 -04 AST 1990-04-01 03 -03 ADT 1 1990-10-28 01 -04 AST 1991-04-07 03 -03 ADT 1 1991-10-27 01 -04 AST 1992-04-05 03 -03 ADT 1 1992-10-25 01 -04 AST 1993-04-04 03 -03 ADT 1 1993-10-31 01 -04 AST 1994-04-03 03 -03 ADT 1 1994-10-30 01 -04 AST 1995-04-02 03 -03 ADT 1 1995-10-29 01 -04 AST 1996-04-07 03 -03 ADT 1 1996-10-27 01 -04 AST 1997-04-06 03 -03 ADT 1 1997-10-26 01 -04 AST 1998-04-05 03 -03 ADT 1 1998-10-25 01 -04 AST 1999-04-04 03 -03 ADT 1 1999-10-31 01 -04 AST 2000-04-02 03 -03 ADT 1 2000-10-29 01 -04 AST 2001-04-01 03 -03 ADT 1 2001-10-28 01 -04 AST 2002-04-07 03 -03 ADT 1 2002-10-27 01 -04 AST 2003-04-06 03 -03 ADT 1 2003-10-26 01 -04 AST 2004-04-04 03 -03 ADT 1 2004-10-31 01 -04 AST 2005-04-03 03 -03 ADT 1 2005-10-30 01 -04 AST 2006-04-02 03 -03 ADT 1 2006-10-29 01 -04 AST 2007-03-11 03 -03 ADT 1 2007-11-04 01 -04 AST 2008-03-09 03 -03 ADT 1 2008-11-02 01 -04 AST 2009-03-08 03 -03 ADT 1 2009-11-01 01 -04 AST 2010-03-14 03 -03 ADT 1 2010-11-07 01 -04 AST 2011-03-13 03 -03 ADT 1 2011-11-06 01 -04 AST 2012-03-11 03 -03 ADT 1 2012-11-04 01 -04 AST 2013-03-10 03 -03 ADT 1 2013-11-03 01 -04 AST 2014-03-09 03 -03 ADT 1 2014-11-02 01 -04 AST 2015-03-08 03 -03 ADT 1 2015-11-01 01 -04 AST 2016-03-13 03 -03 ADT 1 2016-11-06 01 -04 AST 2017-03-12 03 -03 ADT 1 2017-11-05 01 -04 AST 2018-03-11 03 -03 ADT 1 2018-11-04 01 -04 AST 2019-03-10 03 -03 ADT 1 2019-11-03 01 -04 AST 2020-03-08 03 -03 ADT 1 2020-11-01 01 -04 AST 2021-03-14 03 -03 ADT 1 2021-11-07 01 -04 AST 2022-03-13 03 -03 ADT 1 2022-11-06 01 -04 AST 2023-03-12 03 -03 ADT 1 2023-11-05 01 -04 AST 2024-03-10 03 -03 ADT 1 2024-11-03 01 -04 AST 2025-03-09 03 -03 ADT 1 2025-11-02 01 -04 AST 2026-03-08 03 -03 ADT 1 2026-11-01 01 -04 AST 2027-03-14 03 -03 ADT 1 2027-11-07 01 -04 AST 2028-03-12 03 -03 ADT 1 2028-11-05 01 -04 AST 2029-03-11 03 -03 ADT 1 2029-11-04 01 -04 AST 2030-03-10 03 -03 ADT 1 2030-11-03 01 -04 AST 2031-03-09 03 -03 ADT 1 2031-11-02 01 -04 AST 2032-03-14 03 -03 ADT 1 2032-11-07 01 -04 AST 2033-03-13 03 -03 ADT 1 2033-11-06 01 -04 AST 2034-03-12 03 -03 ADT 1 2034-11-05 01 -04 AST 2035-03-11 03 -03 ADT 1 2035-11-04 01 -04 AST 2036-03-09 03 -03 ADT 1 2036-11-02 01 -04 AST 2037-03-08 03 -03 ADT 1 2037-11-01 01 -04 AST 2038-03-14 03 -03 ADT 1 2038-11-07 01 -04 AST 2039-03-13 03 -03 ADT 1 2039-11-06 01 -04 AST 2040-03-11 03 -03 ADT 1 2040-11-04 01 -04 AST 2041-03-10 03 -03 ADT 1 2041-11-03 01 -04 AST 2042-03-09 03 -03 ADT 1 2042-11-02 01 -04 AST 2043-03-08 03 -03 ADT 1 2043-11-01 01 -04 AST 2044-03-13 03 -03 ADT 1 2044-11-06 01 -04 AST 2045-03-12 03 -03 ADT 1 2045-11-05 01 -04 AST 2046-03-11 03 -03 ADT 1 2046-11-04 01 -04 AST 2047-03-10 03 -03 ADT 1 2047-11-03 01 -04 AST 2048-03-08 03 -03 ADT 1 2048-11-01 01 -04 AST 2049-03-14 03 -03 ADT 1 2049-11-07 01 -04 AST TZ="America/Godthab" - - -032656 LMT 1916-07-28 00:26:56 -03 1980-04-06 03 -02 1 1980-09-27 22 -03 1981-03-28 23 -02 1 1981-09-26 22 -03 1982-03-27 23 -02 1 1982-09-25 22 -03 1983-03-26 23 -02 1 1983-09-24 22 -03 1984-03-24 23 -02 1 1984-09-29 22 -03 1985-03-30 23 -02 1 1985-09-28 22 -03 1986-03-29 23 -02 1 1986-09-27 22 -03 1987-03-28 23 -02 1 1987-09-26 22 -03 1988-03-26 23 -02 1 1988-09-24 22 -03 1989-03-25 23 -02 1 1989-09-23 22 -03 1990-03-24 23 -02 1 1990-09-29 22 -03 1991-03-30 23 -02 1 1991-09-28 22 -03 1992-03-28 23 -02 1 1992-09-26 22 -03 1993-03-27 23 -02 1 1993-09-25 22 -03 1994-03-26 23 -02 1 1994-09-24 22 -03 1995-03-25 23 -02 1 1995-09-23 22 -03 1996-03-30 23 -02 1 1996-10-26 22 -03 1997-03-29 23 -02 1 1997-10-25 22 -03 1998-03-28 23 -02 1 1998-10-24 22 -03 1999-03-27 23 -02 1 1999-10-30 22 -03 2000-03-25 23 -02 1 2000-10-28 22 -03 2001-03-24 23 -02 1 2001-10-27 22 -03 2002-03-30 23 -02 1 2002-10-26 22 -03 2003-03-29 23 -02 1 2003-10-25 22 -03 2004-03-27 23 -02 1 2004-10-30 22 -03 2005-03-26 23 -02 1 2005-10-29 22 -03 2006-03-25 23 -02 1 2006-10-28 22 -03 2007-03-24 23 -02 1 2007-10-27 22 -03 2008-03-29 23 -02 1 2008-10-25 22 -03 2009-03-28 23 -02 1 2009-10-24 22 -03 2010-03-27 23 -02 1 2010-10-30 22 -03 2011-03-26 23 -02 1 2011-10-29 22 -03 2012-03-24 23 -02 1 2012-10-27 22 -03 2013-03-30 23 -02 1 2013-10-26 22 -03 2014-03-29 23 -02 1 2014-10-25 22 -03 2015-03-28 23 -02 1 2015-10-24 22 -03 2016-03-26 23 -02 1 2016-10-29 22 -03 2017-03-25 23 -02 1 2017-10-28 22 -03 2018-03-24 23 -02 1 2018-10-27 22 -03 2019-03-30 23 -02 1 2019-10-26 22 -03 2020-03-28 23 -02 1 2020-10-24 22 -03 2021-03-27 23 -02 1 2021-10-30 22 -03 2022-03-26 23 -02 1 2022-10-29 22 -03 2023-03-25 23 -02 1 2023-10-28 22 -03 2024-03-30 23 -02 1 2024-10-26 22 -03 2025-03-29 23 -02 1 2025-10-25 22 -03 2026-03-28 23 -02 1 2026-10-24 22 -03 2027-03-27 23 -02 1 2027-10-30 22 -03 2028-03-25 23 -02 1 2028-10-28 22 -03 2029-03-24 23 -02 1 2029-10-27 22 -03 2030-03-30 23 -02 1 2030-10-26 22 -03 2031-03-29 23 -02 1 2031-10-25 22 -03 2032-03-27 23 -02 1 2032-10-30 22 -03 2033-03-26 23 -02 1 2033-10-29 22 -03 2034-03-25 23 -02 1 2034-10-28 22 -03 2035-03-24 23 -02 1 2035-10-27 22 -03 2036-03-29 23 -02 1 2036-10-25 22 -03 2037-03-28 23 -02 1 2037-10-24 22 -03 2038-03-27 23 -02 1 2038-10-30 22 -03 2039-03-26 23 -02 1 2039-10-29 22 -03 2040-03-24 23 -02 1 2040-10-27 22 -03 2041-03-30 23 -02 1 2041-10-26 22 -03 2042-03-29 23 -02 1 2042-10-25 22 -03 2043-03-28 23 -02 1 2043-10-24 22 -03 2044-03-26 23 -02 1 2044-10-29 22 -03 2045-03-25 23 -02 1 2045-10-28 22 -03 2046-03-24 23 -02 1 2046-10-27 22 -03 2047-03-30 23 -02 1 2047-10-26 22 -03 2048-03-28 23 -02 1 2048-10-24 22 -03 2049-03-27 23 -02 1 2049-10-30 22 -03 TZ="America/Goose_Bay" - - -040140 LMT 1884-01-01 00:30:48 -033052 NST 1918-04-14 03 -023052 NDT 1 1918-10-27 01 -033052 NST 1935-03-30 00:00:52 -0330 NST 1936-05-11 01 -0230 NDT 1 1936-10-04 23 -0330 NST 1937-05-10 01 -0230 NDT 1 1937-10-03 23 -0330 NST 1938-05-09 01 -0230 NDT 1 1938-10-02 23 -0330 NST 1939-05-15 01 -0230 NDT 1 1939-10-01 23 -0330 NST 1940-05-13 01 -0230 NDT 1 1940-10-06 23 -0330 NST 1941-05-12 01 -0230 NDT 1 1941-10-05 23 -0330 NST 1942-05-11 01 -0230 NWT 1 1945-08-14 20:30 -0230 NPT 1 1945-09-30 01 -0330 NST 1946-05-12 03 -0230 NDT 1 1946-10-06 01 -0330 NST 1947-05-11 03 -0230 NDT 1 1947-10-05 01 -0330 NST 1948-05-09 03 -0230 NDT 1 1948-10-03 01 -0330 NST 1949-05-08 03 -0230 NDT 1 1949-10-02 01 -0330 NST 1950-05-14 03 -0230 NDT 1 1950-10-08 01 -0330 NST 1951-04-29 03 -0230 NDT 1 1951-09-30 01 -0330 NST 1952-04-27 03 -0230 NDT 1 1952-09-28 01 -0330 NST 1953-04-26 03 -0230 NDT 1 1953-09-27 01 -0330 NST 1954-04-25 03 -0230 NDT 1 1954-09-26 01 -0330 NST 1955-04-24 03 -0230 NDT 1 1955-09-25 01 -0330 NST 1956-04-29 03 -0230 NDT 1 1956-09-30 01 -0330 NST 1957-04-28 03 -0230 NDT 1 1957-09-29 01 -0330 NST 1958-04-27 03 -0230 NDT 1 1958-09-28 01 -0330 NST 1959-04-26 03 -0230 NDT 1 1959-09-27 01 -0330 NST 1960-04-24 03 -0230 NDT 1 1960-10-30 01 -0330 NST 1961-04-30 03 -0230 NDT 1 1961-10-29 01 -0330 NST 1962-04-29 03 -0230 NDT 1 1962-10-28 01 -0330 NST 1963-04-28 03 -0230 NDT 1 1963-10-27 01 -0330 NST 1964-04-26 03 -0230 NDT 1 1964-10-25 01 -0330 NST 1965-04-25 03 -0230 NDT 1 1965-10-31 01 -0330 NST 1966-03-15 01:30 -04 AST 1966-04-24 03 -03 ADT 1 1966-10-30 01 -04 AST 1967-04-30 03 -03 ADT 1 1967-10-29 01 -04 AST 1968-04-28 03 -03 ADT 1 1968-10-27 01 -04 AST 1969-04-27 03 -03 ADT 1 1969-10-26 01 -04 AST 1970-04-26 03 -03 ADT 1 1970-10-25 01 -04 AST 1971-04-25 03 -03 ADT 1 1971-10-31 01 -04 AST 1972-04-30 03 -03 ADT 1 1972-10-29 01 -04 AST 1973-04-29 03 -03 ADT 1 1973-10-28 01 -04 AST 1974-04-28 03 -03 ADT 1 1974-10-27 01 -04 AST 1975-04-27 03 -03 ADT 1 1975-10-26 01 -04 AST 1976-04-25 03 -03 ADT 1 1976-10-31 01 -04 AST 1977-04-24 03 -03 ADT 1 1977-10-30 01 -04 AST 1978-04-30 03 -03 ADT 1 1978-10-29 01 -04 AST 1979-04-29 03 -03 ADT 1 1979-10-28 01 -04 AST 1980-04-27 03 -03 ADT 1 1980-10-26 01 -04 AST 1981-04-26 03 -03 ADT 1 1981-10-25 01 -04 AST 1982-04-25 03 -03 ADT 1 1982-10-31 01 -04 AST 1983-04-24 03 -03 ADT 1 1983-10-30 01 -04 AST 1984-04-29 03 -03 ADT 1 1984-10-28 01 -04 AST 1985-04-28 03 -03 ADT 1 1985-10-27 01 -04 AST 1986-04-27 03 -03 ADT 1 1986-10-26 01 -04 AST 1987-04-05 01:01 -03 ADT 1 1987-10-24 23:01 -04 AST 1988-04-03 02:01 -02 ADDT 1 1988-10-29 22:01 -04 AST 1989-04-02 01:01 -03 ADT 1 1989-10-28 23:01 -04 AST 1990-04-01 01:01 -03 ADT 1 1990-10-27 23:01 -04 AST 1991-04-07 01:01 -03 ADT 1 1991-10-26 23:01 -04 AST 1992-04-05 01:01 -03 ADT 1 1992-10-24 23:01 -04 AST 1993-04-04 01:01 -03 ADT 1 1993-10-30 23:01 -04 AST 1994-04-03 01:01 -03 ADT 1 1994-10-29 23:01 -04 AST 1995-04-02 01:01 -03 ADT 1 1995-10-28 23:01 -04 AST 1996-04-07 01:01 -03 ADT 1 1996-10-26 23:01 -04 AST 1997-04-06 01:01 -03 ADT 1 1997-10-25 23:01 -04 AST 1998-04-05 01:01 -03 ADT 1 1998-10-24 23:01 -04 AST 1999-04-04 01:01 -03 ADT 1 1999-10-30 23:01 -04 AST 2000-04-02 01:01 -03 ADT 1 2000-10-28 23:01 -04 AST 2001-04-01 01:01 -03 ADT 1 2001-10-27 23:01 -04 AST 2002-04-07 01:01 -03 ADT 1 2002-10-26 23:01 -04 AST 2003-04-06 01:01 -03 ADT 1 2003-10-25 23:01 -04 AST 2004-04-04 01:01 -03 ADT 1 2004-10-30 23:01 -04 AST 2005-04-03 01:01 -03 ADT 1 2005-10-29 23:01 -04 AST 2006-04-02 01:01 -03 ADT 1 2006-10-28 23:01 -04 AST 2007-03-11 01:01 -03 ADT 1 2007-11-03 23:01 -04 AST 2008-03-09 01:01 -03 ADT 1 2008-11-01 23:01 -04 AST 2009-03-08 01:01 -03 ADT 1 2009-10-31 23:01 -04 AST 2010-03-14 01:01 -03 ADT 1 2010-11-06 23:01 -04 AST 2011-03-13 01:01 -03 ADT 1 2011-11-06 01 -04 AST 2012-03-11 03 -03 ADT 1 2012-11-04 01 -04 AST 2013-03-10 03 -03 ADT 1 2013-11-03 01 -04 AST 2014-03-09 03 -03 ADT 1 2014-11-02 01 -04 AST 2015-03-08 03 -03 ADT 1 2015-11-01 01 -04 AST 2016-03-13 03 -03 ADT 1 2016-11-06 01 -04 AST 2017-03-12 03 -03 ADT 1 2017-11-05 01 -04 AST 2018-03-11 03 -03 ADT 1 2018-11-04 01 -04 AST 2019-03-10 03 -03 ADT 1 2019-11-03 01 -04 AST 2020-03-08 03 -03 ADT 1 2020-11-01 01 -04 AST 2021-03-14 03 -03 ADT 1 2021-11-07 01 -04 AST 2022-03-13 03 -03 ADT 1 2022-11-06 01 -04 AST 2023-03-12 03 -03 ADT 1 2023-11-05 01 -04 AST 2024-03-10 03 -03 ADT 1 2024-11-03 01 -04 AST 2025-03-09 03 -03 ADT 1 2025-11-02 01 -04 AST 2026-03-08 03 -03 ADT 1 2026-11-01 01 -04 AST 2027-03-14 03 -03 ADT 1 2027-11-07 01 -04 AST 2028-03-12 03 -03 ADT 1 2028-11-05 01 -04 AST 2029-03-11 03 -03 ADT 1 2029-11-04 01 -04 AST 2030-03-10 03 -03 ADT 1 2030-11-03 01 -04 AST 2031-03-09 03 -03 ADT 1 2031-11-02 01 -04 AST 2032-03-14 03 -03 ADT 1 2032-11-07 01 -04 AST 2033-03-13 03 -03 ADT 1 2033-11-06 01 -04 AST 2034-03-12 03 -03 ADT 1 2034-11-05 01 -04 AST 2035-03-11 03 -03 ADT 1 2035-11-04 01 -04 AST 2036-03-09 03 -03 ADT 1 2036-11-02 01 -04 AST 2037-03-08 03 -03 ADT 1 2037-11-01 01 -04 AST 2038-03-14 03 -03 ADT 1 2038-11-07 01 -04 AST 2039-03-13 03 -03 ADT 1 2039-11-06 01 -04 AST 2040-03-11 03 -03 ADT 1 2040-11-04 01 -04 AST 2041-03-10 03 -03 ADT 1 2041-11-03 01 -04 AST 2042-03-09 03 -03 ADT 1 2042-11-02 01 -04 AST 2043-03-08 03 -03 ADT 1 2043-11-01 01 -04 AST 2044-03-13 03 -03 ADT 1 2044-11-06 01 -04 AST 2045-03-12 03 -03 ADT 1 2045-11-05 01 -04 AST 2046-03-11 03 -03 ADT 1 2046-11-04 01 -04 AST 2047-03-10 03 -03 ADT 1 2047-11-03 01 -04 AST 2048-03-08 03 -03 ADT 1 2048-11-01 01 -04 AST 2049-03-14 03 -03 ADT 1 2049-11-07 01 -04 AST TZ="America/Grand_Turk" - - -044432 LMT 1889-12-31 23:37:22 -050710 KMT 1912-02-01 00:07:10 -05 EST 1979-04-29 03 -04 EDT 1 1979-10-28 01 -05 EST 1980-04-27 03 -04 EDT 1 1980-10-26 01 -05 EST 1981-04-26 03 -04 EDT 1 1981-10-25 01 -05 EST 1982-04-25 03 -04 EDT 1 1982-10-31 01 -05 EST 1983-04-24 03 -04 EDT 1 1983-10-30 01 -05 EST 1984-04-29 03 -04 EDT 1 1984-10-28 01 -05 EST 1985-04-28 03 -04 EDT 1 1985-10-27 01 -05 EST 1986-04-27 03 -04 EDT 1 1986-10-26 01 -05 EST 1987-04-05 03 -04 EDT 1 1987-10-25 01 -05 EST 1988-04-03 03 -04 EDT 1 1988-10-30 01 -05 EST 1989-04-02 03 -04 EDT 1 1989-10-29 01 -05 EST 1990-04-01 03 -04 EDT 1 1990-10-28 01 -05 EST 1991-04-07 03 -04 EDT 1 1991-10-27 01 -05 EST 1992-04-05 03 -04 EDT 1 1992-10-25 01 -05 EST 1993-04-04 03 -04 EDT 1 1993-10-31 01 -05 EST 1994-04-03 03 -04 EDT 1 1994-10-30 01 -05 EST 1995-04-02 03 -04 EDT 1 1995-10-29 01 -05 EST 1996-04-07 03 -04 EDT 1 1996-10-27 01 -05 EST 1997-04-06 03 -04 EDT 1 1997-10-26 01 -05 EST 1998-04-05 03 -04 EDT 1 1998-10-25 01 -05 EST 1999-04-04 03 -04 EDT 1 1999-10-31 01 -05 EST 2000-04-02 03 -04 EDT 1 2000-10-29 01 -05 EST 2001-04-01 03 -04 EDT 1 2001-10-28 01 -05 EST 2002-04-07 03 -04 EDT 1 2002-10-27 01 -05 EST 2003-04-06 03 -04 EDT 1 2003-10-26 01 -05 EST 2004-04-04 03 -04 EDT 1 2004-10-31 01 -05 EST 2005-04-03 03 -04 EDT 1 2005-10-30 01 -05 EST 2006-04-02 03 -04 EDT 1 2006-10-29 01 -05 EST 2007-03-11 03 -04 EDT 1 2007-11-04 01 -05 EST 2008-03-09 03 -04 EDT 1 2008-11-02 01 -05 EST 2009-03-08 03 -04 EDT 1 2009-11-01 01 -05 EST 2010-03-14 03 -04 EDT 1 2010-11-07 01 -05 EST 2011-03-13 03 -04 EDT 1 2011-11-06 01 -05 EST 2012-03-11 03 -04 EDT 1 2012-11-04 01 -05 EST 2013-03-10 03 -04 EDT 1 2013-11-03 01 -05 EST 2014-03-09 03 -04 EDT 1 2014-11-02 01 -05 EST 2015-03-08 03 -04 EDT 1 2015-11-01 02 -04 AST 2018-03-11 03 -04 EDT 1 2018-11-04 01 -05 EST 2019-03-10 03 -04 EDT 1 2019-11-03 01 -05 EST 2020-03-08 03 -04 EDT 1 2020-11-01 01 -05 EST 2021-03-14 03 -04 EDT 1 2021-11-07 01 -05 EST 2022-03-13 03 -04 EDT 1 2022-11-06 01 -05 EST 2023-03-12 03 -04 EDT 1 2023-11-05 01 -05 EST 2024-03-10 03 -04 EDT 1 2024-11-03 01 -05 EST 2025-03-09 03 -04 EDT 1 2025-11-02 01 -05 EST 2026-03-08 03 -04 EDT 1 2026-11-01 01 -05 EST 2027-03-14 03 -04 EDT 1 2027-11-07 01 -05 EST 2028-03-12 03 -04 EDT 1 2028-11-05 01 -05 EST 2029-03-11 03 -04 EDT 1 2029-11-04 01 -05 EST 2030-03-10 03 -04 EDT 1 2030-11-03 01 -05 EST 2031-03-09 03 -04 EDT 1 2031-11-02 01 -05 EST 2032-03-14 03 -04 EDT 1 2032-11-07 01 -05 EST 2033-03-13 03 -04 EDT 1 2033-11-06 01 -05 EST 2034-03-12 03 -04 EDT 1 2034-11-05 01 -05 EST 2035-03-11 03 -04 EDT 1 2035-11-04 01 -05 EST 2036-03-09 03 -04 EDT 1 2036-11-02 01 -05 EST 2037-03-08 03 -04 EDT 1 2037-11-01 01 -05 EST 2038-03-14 03 -04 EDT 1 2038-11-07 01 -05 EST 2039-03-13 03 -04 EDT 1 2039-11-06 01 -05 EST 2040-03-11 03 -04 EDT 1 2040-11-04 01 -05 EST 2041-03-10 03 -04 EDT 1 2041-11-03 01 -05 EST 2042-03-09 03 -04 EDT 1 2042-11-02 01 -05 EST 2043-03-08 03 -04 EDT 1 2043-11-01 01 -05 EST 2044-03-13 03 -04 EDT 1 2044-11-06 01 -05 EST 2045-03-12 03 -04 EDT 1 2045-11-05 01 -05 EST 2046-03-11 03 -04 EDT 1 2046-11-04 01 -05 EST 2047-03-10 03 -04 EDT 1 2047-11-03 01 -05 EST 2048-03-08 03 -04 EDT 1 2048-11-01 01 -05 EST 2049-03-14 03 -04 EDT 1 2049-11-07 01 -05 EST TZ="America/Guatemala" - - -060204 LMT 1918-10-05 00:02:04 -06 CST 1973-11-25 01 -05 CDT 1 1974-02-23 23 -06 CST 1983-05-21 01 -05 CDT 1 1983-09-21 23 -06 CST 1991-03-23 01 -05 CDT 1 1991-09-06 23 -06 CST 2006-04-30 01 -05 CDT 1 2006-09-30 23 -06 CST TZ="America/Guayaquil" - - -051920 LMT 1890-01-01 00:05:20 -0514 QMT 1931-01-01 00:14 -05 1992-11-28 01 -04 1 1993-02-04 23 -05 TZ="America/Guyana" - - -035240 LMT 1915-03-01 00:07:40 -0345 1975-07-31 00:45 -03 1990-12-31 23 -04 TZ="America/Halifax" - - -041424 LMT 1902-06-15 00:14:24 -04 AST 1916-04-01 01 -03 ADT 1 1916-09-30 23 -04 AST 1918-04-14 03 -03 ADT 1 1918-10-27 01 -04 AST 1920-05-09 01 -03 ADT 1 1920-08-28 23 -04 AST 1921-05-06 01 -03 ADT 1 1921-09-04 23 -04 AST 1922-04-30 01 -03 ADT 1 1922-09-04 23 -04 AST 1923-05-06 01 -03 ADT 1 1923-09-03 23 -04 AST 1924-05-04 01 -03 ADT 1 1924-09-14 23 -04 AST 1925-05-03 01 -03 ADT 1 1925-09-27 23 -04 AST 1926-05-16 01 -03 ADT 1 1926-09-12 23 -04 AST 1927-05-01 01 -03 ADT 1 1927-09-25 23 -04 AST 1928-05-13 01 -03 ADT 1 1928-09-08 23 -04 AST 1929-05-12 01 -03 ADT 1 1929-09-02 23 -04 AST 1930-05-11 01 -03 ADT 1 1930-09-14 23 -04 AST 1931-05-10 01 -03 ADT 1 1931-09-27 23 -04 AST 1932-05-01 01 -03 ADT 1 1932-09-25 23 -04 AST 1933-04-30 01 -03 ADT 1 1933-10-01 23 -04 AST 1934-05-20 01 -03 ADT 1 1934-09-15 23 -04 AST 1935-06-02 01 -03 ADT 1 1935-09-29 23 -04 AST 1936-06-01 01 -03 ADT 1 1936-09-13 23 -04 AST 1937-05-02 01 -03 ADT 1 1937-09-26 23 -04 AST 1938-05-01 01 -03 ADT 1 1938-09-25 23 -04 AST 1939-05-28 01 -03 ADT 1 1939-09-24 23 -04 AST 1940-05-05 01 -03 ADT 1 1940-09-29 23 -04 AST 1941-05-04 01 -03 ADT 1 1941-09-28 23 -04 AST 1942-02-09 03 -03 AWT 1 1945-08-14 20 -03 APT 1 1945-09-30 01 -04 AST 1946-04-28 03 -03 ADT 1 1946-09-29 01 -04 AST 1947-04-27 03 -03 ADT 1 1947-09-28 01 -04 AST 1948-04-25 03 -03 ADT 1 1948-09-26 01 -04 AST 1949-04-24 03 -03 ADT 1 1949-09-25 01 -04 AST 1951-04-29 03 -03 ADT 1 1951-09-30 01 -04 AST 1952-04-27 03 -03 ADT 1 1952-09-28 01 -04 AST 1953-04-26 03 -03 ADT 1 1953-09-27 01 -04 AST 1954-04-25 03 -03 ADT 1 1954-09-26 01 -04 AST 1956-04-29 03 -03 ADT 1 1956-09-30 01 -04 AST 1957-04-28 03 -03 ADT 1 1957-09-29 01 -04 AST 1958-04-27 03 -03 ADT 1 1958-09-28 01 -04 AST 1959-04-26 03 -03 ADT 1 1959-09-27 01 -04 AST 1962-04-29 03 -03 ADT 1 1962-10-28 01 -04 AST 1963-04-28 03 -03 ADT 1 1963-10-27 01 -04 AST 1964-04-26 03 -03 ADT 1 1964-10-25 01 -04 AST 1965-04-25 03 -03 ADT 1 1965-10-31 01 -04 AST 1966-04-24 03 -03 ADT 1 1966-10-30 01 -04 AST 1967-04-30 03 -03 ADT 1 1967-10-29 01 -04 AST 1968-04-28 03 -03 ADT 1 1968-10-27 01 -04 AST 1969-04-27 03 -03 ADT 1 1969-10-26 01 -04 AST 1970-04-26 03 -03 ADT 1 1970-10-25 01 -04 AST 1971-04-25 03 -03 ADT 1 1971-10-31 01 -04 AST 1972-04-30 03 -03 ADT 1 1972-10-29 01 -04 AST 1973-04-29 03 -03 ADT 1 1973-10-28 01 -04 AST 1974-04-28 03 -03 ADT 1 1974-10-27 01 -04 AST 1975-04-27 03 -03 ADT 1 1975-10-26 01 -04 AST 1976-04-25 03 -03 ADT 1 1976-10-31 01 -04 AST 1977-04-24 03 -03 ADT 1 1977-10-30 01 -04 AST 1978-04-30 03 -03 ADT 1 1978-10-29 01 -04 AST 1979-04-29 03 -03 ADT 1 1979-10-28 01 -04 AST 1980-04-27 03 -03 ADT 1 1980-10-26 01 -04 AST 1981-04-26 03 -03 ADT 1 1981-10-25 01 -04 AST 1982-04-25 03 -03 ADT 1 1982-10-31 01 -04 AST 1983-04-24 03 -03 ADT 1 1983-10-30 01 -04 AST 1984-04-29 03 -03 ADT 1 1984-10-28 01 -04 AST 1985-04-28 03 -03 ADT 1 1985-10-27 01 -04 AST 1986-04-27 03 -03 ADT 1 1986-10-26 01 -04 AST 1987-04-05 03 -03 ADT 1 1987-10-25 01 -04 AST 1988-04-03 03 -03 ADT 1 1988-10-30 01 -04 AST 1989-04-02 03 -03 ADT 1 1989-10-29 01 -04 AST 1990-04-01 03 -03 ADT 1 1990-10-28 01 -04 AST 1991-04-07 03 -03 ADT 1 1991-10-27 01 -04 AST 1992-04-05 03 -03 ADT 1 1992-10-25 01 -04 AST 1993-04-04 03 -03 ADT 1 1993-10-31 01 -04 AST 1994-04-03 03 -03 ADT 1 1994-10-30 01 -04 AST 1995-04-02 03 -03 ADT 1 1995-10-29 01 -04 AST 1996-04-07 03 -03 ADT 1 1996-10-27 01 -04 AST 1997-04-06 03 -03 ADT 1 1997-10-26 01 -04 AST 1998-04-05 03 -03 ADT 1 1998-10-25 01 -04 AST 1999-04-04 03 -03 ADT 1 1999-10-31 01 -04 AST 2000-04-02 03 -03 ADT 1 2000-10-29 01 -04 AST 2001-04-01 03 -03 ADT 1 2001-10-28 01 -04 AST 2002-04-07 03 -03 ADT 1 2002-10-27 01 -04 AST 2003-04-06 03 -03 ADT 1 2003-10-26 01 -04 AST 2004-04-04 03 -03 ADT 1 2004-10-31 01 -04 AST 2005-04-03 03 -03 ADT 1 2005-10-30 01 -04 AST 2006-04-02 03 -03 ADT 1 2006-10-29 01 -04 AST 2007-03-11 03 -03 ADT 1 2007-11-04 01 -04 AST 2008-03-09 03 -03 ADT 1 2008-11-02 01 -04 AST 2009-03-08 03 -03 ADT 1 2009-11-01 01 -04 AST 2010-03-14 03 -03 ADT 1 2010-11-07 01 -04 AST 2011-03-13 03 -03 ADT 1 2011-11-06 01 -04 AST 2012-03-11 03 -03 ADT 1 2012-11-04 01 -04 AST 2013-03-10 03 -03 ADT 1 2013-11-03 01 -04 AST 2014-03-09 03 -03 ADT 1 2014-11-02 01 -04 AST 2015-03-08 03 -03 ADT 1 2015-11-01 01 -04 AST 2016-03-13 03 -03 ADT 1 2016-11-06 01 -04 AST 2017-03-12 03 -03 ADT 1 2017-11-05 01 -04 AST 2018-03-11 03 -03 ADT 1 2018-11-04 01 -04 AST 2019-03-10 03 -03 ADT 1 2019-11-03 01 -04 AST 2020-03-08 03 -03 ADT 1 2020-11-01 01 -04 AST 2021-03-14 03 -03 ADT 1 2021-11-07 01 -04 AST 2022-03-13 03 -03 ADT 1 2022-11-06 01 -04 AST 2023-03-12 03 -03 ADT 1 2023-11-05 01 -04 AST 2024-03-10 03 -03 ADT 1 2024-11-03 01 -04 AST 2025-03-09 03 -03 ADT 1 2025-11-02 01 -04 AST 2026-03-08 03 -03 ADT 1 2026-11-01 01 -04 AST 2027-03-14 03 -03 ADT 1 2027-11-07 01 -04 AST 2028-03-12 03 -03 ADT 1 2028-11-05 01 -04 AST 2029-03-11 03 -03 ADT 1 2029-11-04 01 -04 AST 2030-03-10 03 -03 ADT 1 2030-11-03 01 -04 AST 2031-03-09 03 -03 ADT 1 2031-11-02 01 -04 AST 2032-03-14 03 -03 ADT 1 2032-11-07 01 -04 AST 2033-03-13 03 -03 ADT 1 2033-11-06 01 -04 AST 2034-03-12 03 -03 ADT 1 2034-11-05 01 -04 AST 2035-03-11 03 -03 ADT 1 2035-11-04 01 -04 AST 2036-03-09 03 -03 ADT 1 2036-11-02 01 -04 AST 2037-03-08 03 -03 ADT 1 2037-11-01 01 -04 AST 2038-03-14 03 -03 ADT 1 2038-11-07 01 -04 AST 2039-03-13 03 -03 ADT 1 2039-11-06 01 -04 AST 2040-03-11 03 -03 ADT 1 2040-11-04 01 -04 AST 2041-03-10 03 -03 ADT 1 2041-11-03 01 -04 AST 2042-03-09 03 -03 ADT 1 2042-11-02 01 -04 AST 2043-03-08 03 -03 ADT 1 2043-11-01 01 -04 AST 2044-03-13 03 -03 ADT 1 2044-11-06 01 -04 AST 2045-03-12 03 -03 ADT 1 2045-11-05 01 -04 AST 2046-03-11 03 -03 ADT 1 2046-11-04 01 -04 AST 2047-03-10 03 -03 ADT 1 2047-11-03 01 -04 AST 2048-03-08 03 -03 ADT 1 2048-11-01 01 -04 AST 2049-03-14 03 -03 ADT 1 2049-11-07 01 -04 AST TZ="America/Havana" - - -052928 LMT 1889-12-31 23:59:52 -052936 HMT 1925-07-19 12:29:36 -05 CST 1928-06-10 01 -04 CDT 1 1928-10-09 23 -05 CST 1940-06-02 01 -04 CDT 1 1940-08-31 23 -05 CST 1941-06-01 01 -04 CDT 1 1941-09-06 23 -05 CST 1942-06-07 01 -04 CDT 1 1942-09-05 23 -05 CST 1945-06-03 01 -04 CDT 1 1945-09-01 23 -05 CST 1946-06-02 01 -04 CDT 1 1946-08-31 23 -05 CST 1965-06-01 01 -04 CDT 1 1965-09-29 23 -05 CST 1966-05-29 01 -04 CDT 1 1966-10-01 23 -05 CST 1967-04-08 01 -04 CDT 1 1967-09-09 23 -05 CST 1968-04-14 01 -04 CDT 1 1968-09-07 23 -05 CST 1969-04-27 01 -04 CDT 1 1969-10-25 23 -05 CST 1970-04-26 01 -04 CDT 1 1970-10-24 23 -05 CST 1971-04-25 01 -04 CDT 1 1971-10-30 23 -05 CST 1972-04-30 01 -04 CDT 1 1972-10-07 23 -05 CST 1973-04-29 01 -04 CDT 1 1973-10-07 23 -05 CST 1974-04-28 01 -04 CDT 1 1974-10-07 23 -05 CST 1975-04-27 01 -04 CDT 1 1975-10-25 23 -05 CST 1976-04-25 01 -04 CDT 1 1976-10-30 23 -05 CST 1977-04-24 01 -04 CDT 1 1977-10-29 23 -05 CST 1978-05-07 01 -04 CDT 1 1978-10-07 23 -05 CST 1979-03-18 01 -04 CDT 1 1979-10-13 23 -05 CST 1980-03-16 01 -04 CDT 1 1980-10-11 23 -05 CST 1981-05-10 01 -04 CDT 1 1981-10-10 23 -05 CST 1982-05-09 01 -04 CDT 1 1982-10-09 23 -05 CST 1983-05-08 01 -04 CDT 1 1983-10-08 23 -05 CST 1984-05-06 01 -04 CDT 1 1984-10-13 23 -05 CST 1985-05-05 01 -04 CDT 1 1985-10-12 23 -05 CST 1986-03-16 01 -04 CDT 1 1986-10-11 23 -05 CST 1987-03-15 01 -04 CDT 1 1987-10-10 23 -05 CST 1988-03-20 01 -04 CDT 1 1988-10-08 23 -05 CST 1989-03-19 01 -04 CDT 1 1989-10-07 23 -05 CST 1990-04-01 01 -04 CDT 1 1990-10-13 23 -05 CST 1991-04-07 01 -04 CDT 1 1991-10-13 00 -05 CST 1992-04-05 01 -04 CDT 1 1992-10-11 00 -05 CST 1993-04-04 01 -04 CDT 1 1993-10-10 00 -05 CST 1994-04-03 01 -04 CDT 1 1994-10-09 00 -05 CST 1995-04-02 01 -04 CDT 1 1995-10-08 00 -05 CST 1996-04-07 01 -04 CDT 1 1996-10-06 00 -05 CST 1997-04-06 01 -04 CDT 1 1997-10-12 00 -05 CST 1998-03-29 01 -04 CDT 1 1998-10-25 00 -05 CST 1999-03-28 01 -04 CDT 1 1999-10-31 00 -05 CST 2000-04-02 01 -04 CDT 1 2000-10-29 00 -05 CST 2001-04-01 01 -04 CDT 1 2001-10-28 00 -05 CST 2002-04-07 01 -04 CDT 1 2002-10-27 00 -05 CST 2003-04-06 01 -04 CDT 1 2003-10-26 00 -05 CST 2004-03-28 01 -04 CDT 1 2006-10-29 00 -05 CST 2007-03-11 01 -04 CDT 1 2007-10-28 00 -05 CST 2008-03-16 01 -04 CDT 1 2008-10-26 00 -05 CST 2009-03-08 01 -04 CDT 1 2009-10-25 00 -05 CST 2010-03-14 01 -04 CDT 1 2010-10-31 00 -05 CST 2011-03-20 01 -04 CDT 1 2011-11-13 00 -05 CST 2012-04-01 01 -04 CDT 1 2012-11-04 00 -05 CST 2013-03-10 01 -04 CDT 1 2013-11-03 00 -05 CST 2014-03-09 01 -04 CDT 1 2014-11-02 00 -05 CST 2015-03-08 01 -04 CDT 1 2015-11-01 00 -05 CST 2016-03-13 01 -04 CDT 1 2016-11-06 00 -05 CST 2017-03-12 01 -04 CDT 1 2017-11-05 00 -05 CST 2018-03-11 01 -04 CDT 1 2018-11-04 00 -05 CST 2019-03-10 01 -04 CDT 1 2019-11-03 00 -05 CST 2020-03-08 01 -04 CDT 1 2020-11-01 00 -05 CST 2021-03-14 01 -04 CDT 1 2021-11-07 00 -05 CST 2022-03-13 01 -04 CDT 1 2022-11-06 00 -05 CST 2023-03-12 01 -04 CDT 1 2023-11-05 00 -05 CST 2024-03-10 01 -04 CDT 1 2024-11-03 00 -05 CST 2025-03-09 01 -04 CDT 1 2025-11-02 00 -05 CST 2026-03-08 01 -04 CDT 1 2026-11-01 00 -05 CST 2027-03-14 01 -04 CDT 1 2027-11-07 00 -05 CST 2028-03-12 01 -04 CDT 1 2028-11-05 00 -05 CST 2029-03-11 01 -04 CDT 1 2029-11-04 00 -05 CST 2030-03-10 01 -04 CDT 1 2030-11-03 00 -05 CST 2031-03-09 01 -04 CDT 1 2031-11-02 00 -05 CST 2032-03-14 01 -04 CDT 1 2032-11-07 00 -05 CST 2033-03-13 01 -04 CDT 1 2033-11-06 00 -05 CST 2034-03-12 01 -04 CDT 1 2034-11-05 00 -05 CST 2035-03-11 01 -04 CDT 1 2035-11-04 00 -05 CST 2036-03-09 01 -04 CDT 1 2036-11-02 00 -05 CST 2037-03-08 01 -04 CDT 1 2037-11-01 00 -05 CST 2038-03-14 01 -04 CDT 1 2038-11-07 00 -05 CST 2039-03-13 01 -04 CDT 1 2039-11-06 00 -05 CST 2040-03-11 01 -04 CDT 1 2040-11-04 00 -05 CST 2041-03-10 01 -04 CDT 1 2041-11-03 00 -05 CST 2042-03-09 01 -04 CDT 1 2042-11-02 00 -05 CST 2043-03-08 01 -04 CDT 1 2043-11-01 00 -05 CST 2044-03-13 01 -04 CDT 1 2044-11-06 00 -05 CST 2045-03-12 01 -04 CDT 1 2045-11-05 00 -05 CST 2046-03-11 01 -04 CDT 1 2046-11-04 00 -05 CST 2047-03-10 01 -04 CDT 1 2047-11-03 00 -05 CST 2048-03-08 01 -04 CDT 1 2048-11-01 00 -05 CST 2049-03-14 01 -04 CDT 1 2049-11-07 00 -05 CST TZ="America/Hermosillo" - - -072352 LMT 1922-01-01 00 -07 MST 1927-06-11 00 -06 CST 1930-11-14 23 -07 MST 1931-05-02 00 -06 CST 1931-09-30 23 -07 MST 1932-04-01 01 -06 CST 1942-04-23 23 -07 MST 1949-01-13 23 -08 PST 1970-01-01 01 -07 MST 1996-04-07 03 -06 MDT 1 1996-10-27 01 -07 MST 1997-04-06 03 -06 MDT 1 1997-10-26 01 -07 MST 1998-04-05 03 -06 MDT 1 1998-10-25 01 -07 MST TZ="America/Indiana/Indianapolis" - - -054438 LMT 1883-11-18 12 -06 CST 1918-03-31 03 -05 CDT 1 1918-10-27 01 -06 CST 1919-03-30 03 -05 CDT 1 1919-10-26 01 -06 CST 1941-06-22 03 -05 CDT 1 1941-09-28 01 -06 CST 1942-02-09 03 -05 CWT 1 1945-08-14 18 -05 CPT 1 1945-09-30 01 -06 CST 1946-04-28 03 -05 CDT 1 1946-09-29 01 -06 CST 1947-04-27 03 -05 CDT 1 1947-09-28 01 -06 CST 1948-04-25 03 -05 CDT 1 1948-09-26 01 -06 CST 1949-04-24 03 -05 CDT 1 1949-09-25 01 -06 CST 1950-04-30 03 -05 CDT 1 1950-09-24 01 -06 CST 1951-04-29 03 -05 CDT 1 1951-09-30 01 -06 CST 1952-04-27 03 -05 CDT 1 1952-09-28 01 -06 CST 1953-04-26 03 -05 CDT 1 1953-09-27 01 -06 CST 1954-04-25 03 -05 CDT 1 1954-09-26 01 -06 CST 1955-04-24 03 -05 EST 1957-09-29 01 -06 CST 1958-04-27 03 -05 EST 1969-04-27 03 -04 EDT 1 1969-10-26 01 -05 EST 1970-04-26 03 -04 EDT 1 1970-10-25 01 -05 EST 2006-04-02 03 -04 EDT 1 2006-10-29 01 -05 EST 2007-03-11 03 -04 EDT 1 2007-11-04 01 -05 EST 2008-03-09 03 -04 EDT 1 2008-11-02 01 -05 EST 2009-03-08 03 -04 EDT 1 2009-11-01 01 -05 EST 2010-03-14 03 -04 EDT 1 2010-11-07 01 -05 EST 2011-03-13 03 -04 EDT 1 2011-11-06 01 -05 EST 2012-03-11 03 -04 EDT 1 2012-11-04 01 -05 EST 2013-03-10 03 -04 EDT 1 2013-11-03 01 -05 EST 2014-03-09 03 -04 EDT 1 2014-11-02 01 -05 EST 2015-03-08 03 -04 EDT 1 2015-11-01 01 -05 EST 2016-03-13 03 -04 EDT 1 2016-11-06 01 -05 EST 2017-03-12 03 -04 EDT 1 2017-11-05 01 -05 EST 2018-03-11 03 -04 EDT 1 2018-11-04 01 -05 EST 2019-03-10 03 -04 EDT 1 2019-11-03 01 -05 EST 2020-03-08 03 -04 EDT 1 2020-11-01 01 -05 EST 2021-03-14 03 -04 EDT 1 2021-11-07 01 -05 EST 2022-03-13 03 -04 EDT 1 2022-11-06 01 -05 EST 2023-03-12 03 -04 EDT 1 2023-11-05 01 -05 EST 2024-03-10 03 -04 EDT 1 2024-11-03 01 -05 EST 2025-03-09 03 -04 EDT 1 2025-11-02 01 -05 EST 2026-03-08 03 -04 EDT 1 2026-11-01 01 -05 EST 2027-03-14 03 -04 EDT 1 2027-11-07 01 -05 EST 2028-03-12 03 -04 EDT 1 2028-11-05 01 -05 EST 2029-03-11 03 -04 EDT 1 2029-11-04 01 -05 EST 2030-03-10 03 -04 EDT 1 2030-11-03 01 -05 EST 2031-03-09 03 -04 EDT 1 2031-11-02 01 -05 EST 2032-03-14 03 -04 EDT 1 2032-11-07 01 -05 EST 2033-03-13 03 -04 EDT 1 2033-11-06 01 -05 EST 2034-03-12 03 -04 EDT 1 2034-11-05 01 -05 EST 2035-03-11 03 -04 EDT 1 2035-11-04 01 -05 EST 2036-03-09 03 -04 EDT 1 2036-11-02 01 -05 EST 2037-03-08 03 -04 EDT 1 2037-11-01 01 -05 EST 2038-03-14 03 -04 EDT 1 2038-11-07 01 -05 EST 2039-03-13 03 -04 EDT 1 2039-11-06 01 -05 EST 2040-03-11 03 -04 EDT 1 2040-11-04 01 -05 EST 2041-03-10 03 -04 EDT 1 2041-11-03 01 -05 EST 2042-03-09 03 -04 EDT 1 2042-11-02 01 -05 EST 2043-03-08 03 -04 EDT 1 2043-11-01 01 -05 EST 2044-03-13 03 -04 EDT 1 2044-11-06 01 -05 EST 2045-03-12 03 -04 EDT 1 2045-11-05 01 -05 EST 2046-03-11 03 -04 EDT 1 2046-11-04 01 -05 EST 2047-03-10 03 -04 EDT 1 2047-11-03 01 -05 EST 2048-03-08 03 -04 EDT 1 2048-11-01 01 -05 EST 2049-03-14 03 -04 EDT 1 2049-11-07 01 -05 EST TZ="America/Indiana/Knox" - - -054630 LMT 1883-11-18 12 -06 CST 1918-03-31 03 -05 CDT 1 1918-10-27 01 -06 CST 1919-03-30 03 -05 CDT 1 1919-10-26 01 -06 CST 1942-02-09 03 -05 CWT 1 1945-08-14 18 -05 CPT 1 1945-09-30 01 -06 CST 1947-04-27 03 -05 CDT 1 1947-09-28 01 -06 CST 1948-04-25 03 -05 CDT 1 1948-09-26 01 -06 CST 1949-04-24 03 -05 CDT 1 1949-09-25 01 -06 CST 1950-04-30 03 -05 CDT 1 1950-09-24 01 -06 CST 1951-04-29 03 -05 CDT 1 1951-09-30 01 -06 CST 1952-04-27 03 -05 CDT 1 1952-09-28 01 -06 CST 1953-04-26 03 -05 CDT 1 1953-09-27 01 -06 CST 1954-04-25 03 -05 CDT 1 1954-09-26 01 -06 CST 1955-04-24 03 -05 CDT 1 1955-10-30 01 -06 CST 1956-04-29 03 -05 CDT 1 1956-10-28 01 -06 CST 1957-04-28 03 -05 CDT 1 1957-09-29 01 -06 CST 1958-04-27 03 -05 CDT 1 1958-09-28 01 -06 CST 1959-04-26 03 -05 CDT 1 1959-10-25 01 -06 CST 1960-04-24 03 -05 CDT 1 1960-10-30 01 -06 CST 1961-04-30 03 -05 CDT 1 1961-10-29 01 -06 CST 1962-04-29 03 -05 EST 1963-10-27 01 -06 CST 1967-04-30 03 -05 CDT 1 1967-10-29 01 -06 CST 1968-04-28 03 -05 CDT 1 1968-10-27 01 -06 CST 1969-04-27 03 -05 CDT 1 1969-10-26 01 -06 CST 1970-04-26 03 -05 CDT 1 1970-10-25 01 -06 CST 1971-04-25 03 -05 CDT 1 1971-10-31 01 -06 CST 1972-04-30 03 -05 CDT 1 1972-10-29 01 -06 CST 1973-04-29 03 -05 CDT 1 1973-10-28 01 -06 CST 1974-01-06 03 -05 CDT 1 1974-10-27 01 -06 CST 1975-02-23 03 -05 CDT 1 1975-10-26 01 -06 CST 1976-04-25 03 -05 CDT 1 1976-10-31 01 -06 CST 1977-04-24 03 -05 CDT 1 1977-10-30 01 -06 CST 1978-04-30 03 -05 CDT 1 1978-10-29 01 -06 CST 1979-04-29 03 -05 CDT 1 1979-10-28 01 -06 CST 1980-04-27 03 -05 CDT 1 1980-10-26 01 -06 CST 1981-04-26 03 -05 CDT 1 1981-10-25 01 -06 CST 1982-04-25 03 -05 CDT 1 1982-10-31 01 -06 CST 1983-04-24 03 -05 CDT 1 1983-10-30 01 -06 CST 1984-04-29 03 -05 CDT 1 1984-10-28 01 -06 CST 1985-04-28 03 -05 CDT 1 1985-10-27 01 -06 CST 1986-04-27 03 -05 CDT 1 1986-10-26 01 -06 CST 1987-04-05 03 -05 CDT 1 1987-10-25 01 -06 CST 1988-04-03 03 -05 CDT 1 1988-10-30 01 -06 CST 1989-04-02 03 -05 CDT 1 1989-10-29 01 -06 CST 1990-04-01 03 -05 CDT 1 1990-10-28 01 -06 CST 1991-04-07 03 -05 CDT 1 1991-10-27 02 -05 EST 2006-04-02 02 -05 CDT 1 2006-10-29 01 -06 CST 2007-03-11 03 -05 CDT 1 2007-11-04 01 -06 CST 2008-03-09 03 -05 CDT 1 2008-11-02 01 -06 CST 2009-03-08 03 -05 CDT 1 2009-11-01 01 -06 CST 2010-03-14 03 -05 CDT 1 2010-11-07 01 -06 CST 2011-03-13 03 -05 CDT 1 2011-11-06 01 -06 CST 2012-03-11 03 -05 CDT 1 2012-11-04 01 -06 CST 2013-03-10 03 -05 CDT 1 2013-11-03 01 -06 CST 2014-03-09 03 -05 CDT 1 2014-11-02 01 -06 CST 2015-03-08 03 -05 CDT 1 2015-11-01 01 -06 CST 2016-03-13 03 -05 CDT 1 2016-11-06 01 -06 CST 2017-03-12 03 -05 CDT 1 2017-11-05 01 -06 CST 2018-03-11 03 -05 CDT 1 2018-11-04 01 -06 CST 2019-03-10 03 -05 CDT 1 2019-11-03 01 -06 CST 2020-03-08 03 -05 CDT 1 2020-11-01 01 -06 CST 2021-03-14 03 -05 CDT 1 2021-11-07 01 -06 CST 2022-03-13 03 -05 CDT 1 2022-11-06 01 -06 CST 2023-03-12 03 -05 CDT 1 2023-11-05 01 -06 CST 2024-03-10 03 -05 CDT 1 2024-11-03 01 -06 CST 2025-03-09 03 -05 CDT 1 2025-11-02 01 -06 CST 2026-03-08 03 -05 CDT 1 2026-11-01 01 -06 CST 2027-03-14 03 -05 CDT 1 2027-11-07 01 -06 CST 2028-03-12 03 -05 CDT 1 2028-11-05 01 -06 CST 2029-03-11 03 -05 CDT 1 2029-11-04 01 -06 CST 2030-03-10 03 -05 CDT 1 2030-11-03 01 -06 CST 2031-03-09 03 -05 CDT 1 2031-11-02 01 -06 CST 2032-03-14 03 -05 CDT 1 2032-11-07 01 -06 CST 2033-03-13 03 -05 CDT 1 2033-11-06 01 -06 CST 2034-03-12 03 -05 CDT 1 2034-11-05 01 -06 CST 2035-03-11 03 -05 CDT 1 2035-11-04 01 -06 CST 2036-03-09 03 -05 CDT 1 2036-11-02 01 -06 CST 2037-03-08 03 -05 CDT 1 2037-11-01 01 -06 CST 2038-03-14 03 -05 CDT 1 2038-11-07 01 -06 CST 2039-03-13 03 -05 CDT 1 2039-11-06 01 -06 CST 2040-03-11 03 -05 CDT 1 2040-11-04 01 -06 CST 2041-03-10 03 -05 CDT 1 2041-11-03 01 -06 CST 2042-03-09 03 -05 CDT 1 2042-11-02 01 -06 CST 2043-03-08 03 -05 CDT 1 2043-11-01 01 -06 CST 2044-03-13 03 -05 CDT 1 2044-11-06 01 -06 CST 2045-03-12 03 -05 CDT 1 2045-11-05 01 -06 CST 2046-03-11 03 -05 CDT 1 2046-11-04 01 -06 CST 2047-03-10 03 -05 CDT 1 2047-11-03 01 -06 CST 2048-03-08 03 -05 CDT 1 2048-11-01 01 -06 CST 2049-03-14 03 -05 CDT 1 2049-11-07 01 -06 CST TZ="America/Indiana/Marengo" - - -054523 LMT 1883-11-18 12 -06 CST 1918-03-31 03 -05 CDT 1 1918-10-27 01 -06 CST 1919-03-30 03 -05 CDT 1 1919-10-26 01 -06 CST 1942-02-09 03 -05 CWT 1 1945-08-14 18 -05 CPT 1 1945-09-30 01 -06 CST 1951-04-29 03 -05 CDT 1 1951-09-30 01 -06 CST 1954-04-25 03 -05 CDT 1 1954-09-26 01 -06 CST 1955-04-24 03 -05 CDT 1 1955-09-25 01 -06 CST 1956-04-29 03 -05 CDT 1 1956-09-30 01 -06 CST 1957-04-28 03 -05 CDT 1 1957-09-29 01 -06 CST 1958-04-27 03 -05 CDT 1 1958-09-28 01 -06 CST 1959-04-26 03 -05 CDT 1 1959-09-27 01 -06 CST 1960-04-24 03 -05 CDT 1 1960-09-25 01 -06 CST 1961-04-30 03 -05 EST 1969-04-27 03 -04 EDT 1 1969-10-26 01 -05 EST 1970-04-26 03 -04 EDT 1 1970-10-25 01 -05 EST 1971-04-25 03 -04 EDT 1 1971-10-31 01 -05 EST 1972-04-30 03 -04 EDT 1 1972-10-29 01 -05 EST 1973-04-29 03 -04 EDT 1 1973-10-28 01 -05 EST 1974-01-06 02 -05 CDT 1 1974-10-27 02 -05 EST 1975-02-23 03 -04 EDT 1 1975-10-26 01 -05 EST 2006-04-02 03 -04 EDT 1 2006-10-29 01 -05 EST 2007-03-11 03 -04 EDT 1 2007-11-04 01 -05 EST 2008-03-09 03 -04 EDT 1 2008-11-02 01 -05 EST 2009-03-08 03 -04 EDT 1 2009-11-01 01 -05 EST 2010-03-14 03 -04 EDT 1 2010-11-07 01 -05 EST 2011-03-13 03 -04 EDT 1 2011-11-06 01 -05 EST 2012-03-11 03 -04 EDT 1 2012-11-04 01 -05 EST 2013-03-10 03 -04 EDT 1 2013-11-03 01 -05 EST 2014-03-09 03 -04 EDT 1 2014-11-02 01 -05 EST 2015-03-08 03 -04 EDT 1 2015-11-01 01 -05 EST 2016-03-13 03 -04 EDT 1 2016-11-06 01 -05 EST 2017-03-12 03 -04 EDT 1 2017-11-05 01 -05 EST 2018-03-11 03 -04 EDT 1 2018-11-04 01 -05 EST 2019-03-10 03 -04 EDT 1 2019-11-03 01 -05 EST 2020-03-08 03 -04 EDT 1 2020-11-01 01 -05 EST 2021-03-14 03 -04 EDT 1 2021-11-07 01 -05 EST 2022-03-13 03 -04 EDT 1 2022-11-06 01 -05 EST 2023-03-12 03 -04 EDT 1 2023-11-05 01 -05 EST 2024-03-10 03 -04 EDT 1 2024-11-03 01 -05 EST 2025-03-09 03 -04 EDT 1 2025-11-02 01 -05 EST 2026-03-08 03 -04 EDT 1 2026-11-01 01 -05 EST 2027-03-14 03 -04 EDT 1 2027-11-07 01 -05 EST 2028-03-12 03 -04 EDT 1 2028-11-05 01 -05 EST 2029-03-11 03 -04 EDT 1 2029-11-04 01 -05 EST 2030-03-10 03 -04 EDT 1 2030-11-03 01 -05 EST 2031-03-09 03 -04 EDT 1 2031-11-02 01 -05 EST 2032-03-14 03 -04 EDT 1 2032-11-07 01 -05 EST 2033-03-13 03 -04 EDT 1 2033-11-06 01 -05 EST 2034-03-12 03 -04 EDT 1 2034-11-05 01 -05 EST 2035-03-11 03 -04 EDT 1 2035-11-04 01 -05 EST 2036-03-09 03 -04 EDT 1 2036-11-02 01 -05 EST 2037-03-08 03 -04 EDT 1 2037-11-01 01 -05 EST 2038-03-14 03 -04 EDT 1 2038-11-07 01 -05 EST 2039-03-13 03 -04 EDT 1 2039-11-06 01 -05 EST 2040-03-11 03 -04 EDT 1 2040-11-04 01 -05 EST 2041-03-10 03 -04 EDT 1 2041-11-03 01 -05 EST 2042-03-09 03 -04 EDT 1 2042-11-02 01 -05 EST 2043-03-08 03 -04 EDT 1 2043-11-01 01 -05 EST 2044-03-13 03 -04 EDT 1 2044-11-06 01 -05 EST 2045-03-12 03 -04 EDT 1 2045-11-05 01 -05 EST 2046-03-11 03 -04 EDT 1 2046-11-04 01 -05 EST 2047-03-10 03 -04 EDT 1 2047-11-03 01 -05 EST 2048-03-08 03 -04 EDT 1 2048-11-01 01 -05 EST 2049-03-14 03 -04 EDT 1 2049-11-07 01 -05 EST TZ="America/Indiana/Petersburg" - - -054907 LMT 1883-11-18 12 -06 CST 1918-03-31 03 -05 CDT 1 1918-10-27 01 -06 CST 1919-03-30 03 -05 CDT 1 1919-10-26 01 -06 CST 1942-02-09 03 -05 CWT 1 1945-08-14 18 -05 CPT 1 1945-09-30 01 -06 CST 1955-05-01 01 -05 CDT 1 1955-09-25 01 -06 CST 1956-04-29 03 -05 CDT 1 1956-09-30 01 -06 CST 1957-04-28 03 -05 CDT 1 1957-09-29 01 -06 CST 1958-04-27 03 -05 CDT 1 1958-09-28 01 -06 CST 1959-04-26 03 -05 CDT 1 1959-09-27 01 -06 CST 1960-04-24 03 -05 CDT 1 1960-09-25 01 -06 CST 1961-04-30 03 -05 CDT 1 1961-10-29 01 -06 CST 1962-04-29 03 -05 CDT 1 1962-10-28 01 -06 CST 1963-04-28 03 -05 CDT 1 1963-10-27 01 -06 CST 1964-04-26 03 -05 CDT 1 1964-10-25 01 -06 CST 1965-04-25 03 -05 EST 1966-10-30 01 -06 CST 1967-04-30 03 -05 CDT 1 1967-10-29 01 -06 CST 1968-04-28 03 -05 CDT 1 1968-10-27 01 -06 CST 1969-04-27 03 -05 CDT 1 1969-10-26 01 -06 CST 1970-04-26 03 -05 CDT 1 1970-10-25 01 -06 CST 1971-04-25 03 -05 CDT 1 1971-10-31 01 -06 CST 1972-04-30 03 -05 CDT 1 1972-10-29 01 -06 CST 1973-04-29 03 -05 CDT 1 1973-10-28 01 -06 CST 1974-01-06 03 -05 CDT 1 1974-10-27 01 -06 CST 1975-02-23 03 -05 CDT 1 1975-10-26 01 -06 CST 1976-04-25 03 -05 CDT 1 1976-10-31 01 -06 CST 1977-04-24 03 -05 CDT 1 1977-10-30 02 -05 EST 2006-04-02 02 -05 CDT 1 2006-10-29 01 -06 CST 2007-03-11 03 -05 CDT 1 2007-11-04 02 -05 EST 2008-03-09 03 -04 EDT 1 2008-11-02 01 -05 EST 2009-03-08 03 -04 EDT 1 2009-11-01 01 -05 EST 2010-03-14 03 -04 EDT 1 2010-11-07 01 -05 EST 2011-03-13 03 -04 EDT 1 2011-11-06 01 -05 EST 2012-03-11 03 -04 EDT 1 2012-11-04 01 -05 EST 2013-03-10 03 -04 EDT 1 2013-11-03 01 -05 EST 2014-03-09 03 -04 EDT 1 2014-11-02 01 -05 EST 2015-03-08 03 -04 EDT 1 2015-11-01 01 -05 EST 2016-03-13 03 -04 EDT 1 2016-11-06 01 -05 EST 2017-03-12 03 -04 EDT 1 2017-11-05 01 -05 EST 2018-03-11 03 -04 EDT 1 2018-11-04 01 -05 EST 2019-03-10 03 -04 EDT 1 2019-11-03 01 -05 EST 2020-03-08 03 -04 EDT 1 2020-11-01 01 -05 EST 2021-03-14 03 -04 EDT 1 2021-11-07 01 -05 EST 2022-03-13 03 -04 EDT 1 2022-11-06 01 -05 EST 2023-03-12 03 -04 EDT 1 2023-11-05 01 -05 EST 2024-03-10 03 -04 EDT 1 2024-11-03 01 -05 EST 2025-03-09 03 -04 EDT 1 2025-11-02 01 -05 EST 2026-03-08 03 -04 EDT 1 2026-11-01 01 -05 EST 2027-03-14 03 -04 EDT 1 2027-11-07 01 -05 EST 2028-03-12 03 -04 EDT 1 2028-11-05 01 -05 EST 2029-03-11 03 -04 EDT 1 2029-11-04 01 -05 EST 2030-03-10 03 -04 EDT 1 2030-11-03 01 -05 EST 2031-03-09 03 -04 EDT 1 2031-11-02 01 -05 EST 2032-03-14 03 -04 EDT 1 2032-11-07 01 -05 EST 2033-03-13 03 -04 EDT 1 2033-11-06 01 -05 EST 2034-03-12 03 -04 EDT 1 2034-11-05 01 -05 EST 2035-03-11 03 -04 EDT 1 2035-11-04 01 -05 EST 2036-03-09 03 -04 EDT 1 2036-11-02 01 -05 EST 2037-03-08 03 -04 EDT 1 2037-11-01 01 -05 EST 2038-03-14 03 -04 EDT 1 2038-11-07 01 -05 EST 2039-03-13 03 -04 EDT 1 2039-11-06 01 -05 EST 2040-03-11 03 -04 EDT 1 2040-11-04 01 -05 EST 2041-03-10 03 -04 EDT 1 2041-11-03 01 -05 EST 2042-03-09 03 -04 EDT 1 2042-11-02 01 -05 EST 2043-03-08 03 -04 EDT 1 2043-11-01 01 -05 EST 2044-03-13 03 -04 EDT 1 2044-11-06 01 -05 EST 2045-03-12 03 -04 EDT 1 2045-11-05 01 -05 EST 2046-03-11 03 -04 EDT 1 2046-11-04 01 -05 EST 2047-03-10 03 -04 EDT 1 2047-11-03 01 -05 EST 2048-03-08 03 -04 EDT 1 2048-11-01 01 -05 EST 2049-03-14 03 -04 EDT 1 2049-11-07 01 -05 EST TZ="America/Indiana/Tell_City" - - -054703 LMT 1883-11-18 12 -06 CST 1918-03-31 03 -05 CDT 1 1918-10-27 01 -06 CST 1919-03-30 03 -05 CDT 1 1919-10-26 01 -06 CST 1942-02-09 03 -05 CWT 1 1945-08-14 18 -05 CPT 1 1945-09-30 01 -06 CST 1955-05-01 01 -05 CDT 1 1955-09-25 01 -06 CST 1956-04-29 03 -05 CDT 1 1956-09-30 01 -06 CST 1957-04-28 03 -05 CDT 1 1957-09-29 01 -06 CST 1958-04-27 03 -05 CDT 1 1958-09-28 01 -06 CST 1959-04-26 03 -05 CDT 1 1959-09-27 01 -06 CST 1960-04-24 03 -05 CDT 1 1960-09-25 01 -06 CST 1961-04-30 03 -05 CDT 1 1961-10-29 01 -06 CST 1962-04-29 03 -05 CDT 1 1962-10-28 01 -06 CST 1963-04-28 03 -05 CDT 1 1963-10-27 01 -06 CST 1964-04-26 03 -05 EST 1967-10-29 01 -06 CST 1968-04-28 03 -05 CDT 1 1968-10-27 01 -06 CST 1969-04-27 04 -04 EDT 1 1969-10-26 01 -05 EST 1970-04-26 03 -04 EDT 1 1970-10-25 01 -05 EST 2006-04-02 02 -05 CDT 1 2006-10-29 01 -06 CST 2007-03-11 03 -05 CDT 1 2007-11-04 01 -06 CST 2008-03-09 03 -05 CDT 1 2008-11-02 01 -06 CST 2009-03-08 03 -05 CDT 1 2009-11-01 01 -06 CST 2010-03-14 03 -05 CDT 1 2010-11-07 01 -06 CST 2011-03-13 03 -05 CDT 1 2011-11-06 01 -06 CST 2012-03-11 03 -05 CDT 1 2012-11-04 01 -06 CST 2013-03-10 03 -05 CDT 1 2013-11-03 01 -06 CST 2014-03-09 03 -05 CDT 1 2014-11-02 01 -06 CST 2015-03-08 03 -05 CDT 1 2015-11-01 01 -06 CST 2016-03-13 03 -05 CDT 1 2016-11-06 01 -06 CST 2017-03-12 03 -05 CDT 1 2017-11-05 01 -06 CST 2018-03-11 03 -05 CDT 1 2018-11-04 01 -06 CST 2019-03-10 03 -05 CDT 1 2019-11-03 01 -06 CST 2020-03-08 03 -05 CDT 1 2020-11-01 01 -06 CST 2021-03-14 03 -05 CDT 1 2021-11-07 01 -06 CST 2022-03-13 03 -05 CDT 1 2022-11-06 01 -06 CST 2023-03-12 03 -05 CDT 1 2023-11-05 01 -06 CST 2024-03-10 03 -05 CDT 1 2024-11-03 01 -06 CST 2025-03-09 03 -05 CDT 1 2025-11-02 01 -06 CST 2026-03-08 03 -05 CDT 1 2026-11-01 01 -06 CST 2027-03-14 03 -05 CDT 1 2027-11-07 01 -06 CST 2028-03-12 03 -05 CDT 1 2028-11-05 01 -06 CST 2029-03-11 03 -05 CDT 1 2029-11-04 01 -06 CST 2030-03-10 03 -05 CDT 1 2030-11-03 01 -06 CST 2031-03-09 03 -05 CDT 1 2031-11-02 01 -06 CST 2032-03-14 03 -05 CDT 1 2032-11-07 01 -06 CST 2033-03-13 03 -05 CDT 1 2033-11-06 01 -06 CST 2034-03-12 03 -05 CDT 1 2034-11-05 01 -06 CST 2035-03-11 03 -05 CDT 1 2035-11-04 01 -06 CST 2036-03-09 03 -05 CDT 1 2036-11-02 01 -06 CST 2037-03-08 03 -05 CDT 1 2037-11-01 01 -06 CST 2038-03-14 03 -05 CDT 1 2038-11-07 01 -06 CST 2039-03-13 03 -05 CDT 1 2039-11-06 01 -06 CST 2040-03-11 03 -05 CDT 1 2040-11-04 01 -06 CST 2041-03-10 03 -05 CDT 1 2041-11-03 01 -06 CST 2042-03-09 03 -05 CDT 1 2042-11-02 01 -06 CST 2043-03-08 03 -05 CDT 1 2043-11-01 01 -06 CST 2044-03-13 03 -05 CDT 1 2044-11-06 01 -06 CST 2045-03-12 03 -05 CDT 1 2045-11-05 01 -06 CST 2046-03-11 03 -05 CDT 1 2046-11-04 01 -06 CST 2047-03-10 03 -05 CDT 1 2047-11-03 01 -06 CST 2048-03-08 03 -05 CDT 1 2048-11-01 01 -06 CST 2049-03-14 03 -05 CDT 1 2049-11-07 01 -06 CST TZ="America/Indiana/Vevay" - - -054016 LMT 1883-11-18 12 -06 CST 1918-03-31 03 -05 CDT 1 1918-10-27 01 -06 CST 1919-03-30 03 -05 CDT 1 1919-10-26 01 -06 CST 1942-02-09 03 -05 CWT 1 1945-08-14 18 -05 CPT 1 1945-09-30 01 -06 CST 1954-04-25 03 -05 EST 1969-04-27 03 -04 EDT 1 1969-10-26 01 -05 EST 1970-04-26 03 -04 EDT 1 1970-10-25 01 -05 EST 1971-04-25 03 -04 EDT 1 1971-10-31 01 -05 EST 1972-04-30 03 -04 EDT 1 1972-10-29 01 -05 EST 2006-04-02 03 -04 EDT 1 2006-10-29 01 -05 EST 2007-03-11 03 -04 EDT 1 2007-11-04 01 -05 EST 2008-03-09 03 -04 EDT 1 2008-11-02 01 -05 EST 2009-03-08 03 -04 EDT 1 2009-11-01 01 -05 EST 2010-03-14 03 -04 EDT 1 2010-11-07 01 -05 EST 2011-03-13 03 -04 EDT 1 2011-11-06 01 -05 EST 2012-03-11 03 -04 EDT 1 2012-11-04 01 -05 EST 2013-03-10 03 -04 EDT 1 2013-11-03 01 -05 EST 2014-03-09 03 -04 EDT 1 2014-11-02 01 -05 EST 2015-03-08 03 -04 EDT 1 2015-11-01 01 -05 EST 2016-03-13 03 -04 EDT 1 2016-11-06 01 -05 EST 2017-03-12 03 -04 EDT 1 2017-11-05 01 -05 EST 2018-03-11 03 -04 EDT 1 2018-11-04 01 -05 EST 2019-03-10 03 -04 EDT 1 2019-11-03 01 -05 EST 2020-03-08 03 -04 EDT 1 2020-11-01 01 -05 EST 2021-03-14 03 -04 EDT 1 2021-11-07 01 -05 EST 2022-03-13 03 -04 EDT 1 2022-11-06 01 -05 EST 2023-03-12 03 -04 EDT 1 2023-11-05 01 -05 EST 2024-03-10 03 -04 EDT 1 2024-11-03 01 -05 EST 2025-03-09 03 -04 EDT 1 2025-11-02 01 -05 EST 2026-03-08 03 -04 EDT 1 2026-11-01 01 -05 EST 2027-03-14 03 -04 EDT 1 2027-11-07 01 -05 EST 2028-03-12 03 -04 EDT 1 2028-11-05 01 -05 EST 2029-03-11 03 -04 EDT 1 2029-11-04 01 -05 EST 2030-03-10 03 -04 EDT 1 2030-11-03 01 -05 EST 2031-03-09 03 -04 EDT 1 2031-11-02 01 -05 EST 2032-03-14 03 -04 EDT 1 2032-11-07 01 -05 EST 2033-03-13 03 -04 EDT 1 2033-11-06 01 -05 EST 2034-03-12 03 -04 EDT 1 2034-11-05 01 -05 EST 2035-03-11 03 -04 EDT 1 2035-11-04 01 -05 EST 2036-03-09 03 -04 EDT 1 2036-11-02 01 -05 EST 2037-03-08 03 -04 EDT 1 2037-11-01 01 -05 EST 2038-03-14 03 -04 EDT 1 2038-11-07 01 -05 EST 2039-03-13 03 -04 EDT 1 2039-11-06 01 -05 EST 2040-03-11 03 -04 EDT 1 2040-11-04 01 -05 EST 2041-03-10 03 -04 EDT 1 2041-11-03 01 -05 EST 2042-03-09 03 -04 EDT 1 2042-11-02 01 -05 EST 2043-03-08 03 -04 EDT 1 2043-11-01 01 -05 EST 2044-03-13 03 -04 EDT 1 2044-11-06 01 -05 EST 2045-03-12 03 -04 EDT 1 2045-11-05 01 -05 EST 2046-03-11 03 -04 EDT 1 2046-11-04 01 -05 EST 2047-03-10 03 -04 EDT 1 2047-11-03 01 -05 EST 2048-03-08 03 -04 EDT 1 2048-11-01 01 -05 EST 2049-03-14 03 -04 EDT 1 2049-11-07 01 -05 EST TZ="America/Indiana/Vincennes" - - -055007 LMT 1883-11-18 12 -06 CST 1918-03-31 03 -05 CDT 1 1918-10-27 01 -06 CST 1919-03-30 03 -05 CDT 1 1919-10-26 01 -06 CST 1942-02-09 03 -05 CWT 1 1945-08-14 18 -05 CPT 1 1945-09-30 01 -06 CST 1946-04-28 03 -05 CDT 1 1946-09-29 01 -06 CST 1953-04-26 03 -05 CDT 1 1953-09-27 01 -06 CST 1954-04-25 03 -05 CDT 1 1954-09-26 01 -06 CST 1955-05-01 01 -05 CDT 1 1955-09-25 01 -06 CST 1956-04-29 03 -05 CDT 1 1956-09-30 01 -06 CST 1957-04-28 03 -05 CDT 1 1957-09-29 01 -06 CST 1958-04-27 03 -05 CDT 1 1958-09-28 01 -06 CST 1959-04-26 03 -05 CDT 1 1959-09-27 01 -06 CST 1960-04-24 03 -05 CDT 1 1960-10-30 01 -06 CST 1961-04-30 03 -05 CDT 1 1961-09-24 01 -06 CST 1962-04-29 03 -05 CDT 1 1962-10-28 01 -06 CST 1963-04-28 03 -05 CDT 1 1963-10-27 01 -06 CST 1964-04-26 03 -05 EST 1969-04-27 03 -04 EDT 1 1969-10-26 01 -05 EST 1970-04-26 03 -04 EDT 1 1970-10-25 01 -05 EST 2006-04-02 02 -05 CDT 1 2006-10-29 01 -06 CST 2007-03-11 03 -05 CDT 1 2007-11-04 02 -05 EST 2008-03-09 03 -04 EDT 1 2008-11-02 01 -05 EST 2009-03-08 03 -04 EDT 1 2009-11-01 01 -05 EST 2010-03-14 03 -04 EDT 1 2010-11-07 01 -05 EST 2011-03-13 03 -04 EDT 1 2011-11-06 01 -05 EST 2012-03-11 03 -04 EDT 1 2012-11-04 01 -05 EST 2013-03-10 03 -04 EDT 1 2013-11-03 01 -05 EST 2014-03-09 03 -04 EDT 1 2014-11-02 01 -05 EST 2015-03-08 03 -04 EDT 1 2015-11-01 01 -05 EST 2016-03-13 03 -04 EDT 1 2016-11-06 01 -05 EST 2017-03-12 03 -04 EDT 1 2017-11-05 01 -05 EST 2018-03-11 03 -04 EDT 1 2018-11-04 01 -05 EST 2019-03-10 03 -04 EDT 1 2019-11-03 01 -05 EST 2020-03-08 03 -04 EDT 1 2020-11-01 01 -05 EST 2021-03-14 03 -04 EDT 1 2021-11-07 01 -05 EST 2022-03-13 03 -04 EDT 1 2022-11-06 01 -05 EST 2023-03-12 03 -04 EDT 1 2023-11-05 01 -05 EST 2024-03-10 03 -04 EDT 1 2024-11-03 01 -05 EST 2025-03-09 03 -04 EDT 1 2025-11-02 01 -05 EST 2026-03-08 03 -04 EDT 1 2026-11-01 01 -05 EST 2027-03-14 03 -04 EDT 1 2027-11-07 01 -05 EST 2028-03-12 03 -04 EDT 1 2028-11-05 01 -05 EST 2029-03-11 03 -04 EDT 1 2029-11-04 01 -05 EST 2030-03-10 03 -04 EDT 1 2030-11-03 01 -05 EST 2031-03-09 03 -04 EDT 1 2031-11-02 01 -05 EST 2032-03-14 03 -04 EDT 1 2032-11-07 01 -05 EST 2033-03-13 03 -04 EDT 1 2033-11-06 01 -05 EST 2034-03-12 03 -04 EDT 1 2034-11-05 01 -05 EST 2035-03-11 03 -04 EDT 1 2035-11-04 01 -05 EST 2036-03-09 03 -04 EDT 1 2036-11-02 01 -05 EST 2037-03-08 03 -04 EDT 1 2037-11-01 01 -05 EST 2038-03-14 03 -04 EDT 1 2038-11-07 01 -05 EST 2039-03-13 03 -04 EDT 1 2039-11-06 01 -05 EST 2040-03-11 03 -04 EDT 1 2040-11-04 01 -05 EST 2041-03-10 03 -04 EDT 1 2041-11-03 01 -05 EST 2042-03-09 03 -04 EDT 1 2042-11-02 01 -05 EST 2043-03-08 03 -04 EDT 1 2043-11-01 01 -05 EST 2044-03-13 03 -04 EDT 1 2044-11-06 01 -05 EST 2045-03-12 03 -04 EDT 1 2045-11-05 01 -05 EST 2046-03-11 03 -04 EDT 1 2046-11-04 01 -05 EST 2047-03-10 03 -04 EDT 1 2047-11-03 01 -05 EST 2048-03-08 03 -04 EDT 1 2048-11-01 01 -05 EST 2049-03-14 03 -04 EDT 1 2049-11-07 01 -05 EST TZ="America/Indiana/Winamac" - - -054625 LMT 1883-11-18 12 -06 CST 1918-03-31 03 -05 CDT 1 1918-10-27 01 -06 CST 1919-03-30 03 -05 CDT 1 1919-10-26 01 -06 CST 1942-02-09 03 -05 CWT 1 1945-08-14 18 -05 CPT 1 1945-09-30 01 -06 CST 1946-04-28 03 -05 CDT 1 1946-09-29 01 -06 CST 1947-04-27 03 -05 CDT 1 1947-09-28 01 -06 CST 1948-04-25 03 -05 CDT 1 1948-09-26 01 -06 CST 1949-04-24 03 -05 CDT 1 1949-09-25 01 -06 CST 1950-04-30 03 -05 CDT 1 1950-09-24 01 -06 CST 1951-04-29 03 -05 CDT 1 1951-09-30 01 -06 CST 1952-04-27 03 -05 CDT 1 1952-09-28 01 -06 CST 1953-04-26 03 -05 CDT 1 1953-09-27 01 -06 CST 1954-04-25 03 -05 CDT 1 1954-09-26 01 -06 CST 1955-04-24 03 -05 CDT 1 1955-10-30 01 -06 CST 1956-04-29 03 -05 CDT 1 1956-10-28 01 -06 CST 1957-04-28 03 -05 CDT 1 1957-09-29 01 -06 CST 1958-04-27 03 -05 CDT 1 1958-09-28 01 -06 CST 1959-04-26 03 -05 CDT 1 1959-09-27 01 -06 CST 1960-04-24 03 -05 CDT 1 1960-09-25 01 -06 CST 1961-04-30 03 -05 EST 1969-04-27 03 -04 EDT 1 1969-10-26 01 -05 EST 1970-04-26 03 -04 EDT 1 1970-10-25 01 -05 EST 2006-04-02 02 -05 CDT 1 2006-10-29 01 -06 CST 2007-03-11 04 -04 EDT 1 2007-11-04 01 -05 EST 2008-03-09 03 -04 EDT 1 2008-11-02 01 -05 EST 2009-03-08 03 -04 EDT 1 2009-11-01 01 -05 EST 2010-03-14 03 -04 EDT 1 2010-11-07 01 -05 EST 2011-03-13 03 -04 EDT 1 2011-11-06 01 -05 EST 2012-03-11 03 -04 EDT 1 2012-11-04 01 -05 EST 2013-03-10 03 -04 EDT 1 2013-11-03 01 -05 EST 2014-03-09 03 -04 EDT 1 2014-11-02 01 -05 EST 2015-03-08 03 -04 EDT 1 2015-11-01 01 -05 EST 2016-03-13 03 -04 EDT 1 2016-11-06 01 -05 EST 2017-03-12 03 -04 EDT 1 2017-11-05 01 -05 EST 2018-03-11 03 -04 EDT 1 2018-11-04 01 -05 EST 2019-03-10 03 -04 EDT 1 2019-11-03 01 -05 EST 2020-03-08 03 -04 EDT 1 2020-11-01 01 -05 EST 2021-03-14 03 -04 EDT 1 2021-11-07 01 -05 EST 2022-03-13 03 -04 EDT 1 2022-11-06 01 -05 EST 2023-03-12 03 -04 EDT 1 2023-11-05 01 -05 EST 2024-03-10 03 -04 EDT 1 2024-11-03 01 -05 EST 2025-03-09 03 -04 EDT 1 2025-11-02 01 -05 EST 2026-03-08 03 -04 EDT 1 2026-11-01 01 -05 EST 2027-03-14 03 -04 EDT 1 2027-11-07 01 -05 EST 2028-03-12 03 -04 EDT 1 2028-11-05 01 -05 EST 2029-03-11 03 -04 EDT 1 2029-11-04 01 -05 EST 2030-03-10 03 -04 EDT 1 2030-11-03 01 -05 EST 2031-03-09 03 -04 EDT 1 2031-11-02 01 -05 EST 2032-03-14 03 -04 EDT 1 2032-11-07 01 -05 EST 2033-03-13 03 -04 EDT 1 2033-11-06 01 -05 EST 2034-03-12 03 -04 EDT 1 2034-11-05 01 -05 EST 2035-03-11 03 -04 EDT 1 2035-11-04 01 -05 EST 2036-03-09 03 -04 EDT 1 2036-11-02 01 -05 EST 2037-03-08 03 -04 EDT 1 2037-11-01 01 -05 EST 2038-03-14 03 -04 EDT 1 2038-11-07 01 -05 EST 2039-03-13 03 -04 EDT 1 2039-11-06 01 -05 EST 2040-03-11 03 -04 EDT 1 2040-11-04 01 -05 EST 2041-03-10 03 -04 EDT 1 2041-11-03 01 -05 EST 2042-03-09 03 -04 EDT 1 2042-11-02 01 -05 EST 2043-03-08 03 -04 EDT 1 2043-11-01 01 -05 EST 2044-03-13 03 -04 EDT 1 2044-11-06 01 -05 EST 2045-03-12 03 -04 EDT 1 2045-11-05 01 -05 EST 2046-03-11 03 -04 EDT 1 2046-11-04 01 -05 EST 2047-03-10 03 -04 EDT 1 2047-11-03 01 -05 EST 2048-03-08 03 -04 EDT 1 2048-11-01 01 -05 EST 2049-03-14 03 -04 EDT 1 2049-11-07 01 -05 EST TZ="America/Inuvik" - - -00 1952-12-31 16 -08 PST 1965-04-25 02 -06 PDDT 1 1965-10-31 00 -08 PST 1979-04-29 03 -07 MST 1980-04-27 03 -06 MDT 1 1980-10-26 01 -07 MST 1981-04-26 03 -06 MDT 1 1981-10-25 01 -07 MST 1982-04-25 03 -06 MDT 1 1982-10-31 01 -07 MST 1983-04-24 03 -06 MDT 1 1983-10-30 01 -07 MST 1984-04-29 03 -06 MDT 1 1984-10-28 01 -07 MST 1985-04-28 03 -06 MDT 1 1985-10-27 01 -07 MST 1986-04-27 03 -06 MDT 1 1986-10-26 01 -07 MST 1987-04-05 03 -06 MDT 1 1987-10-25 01 -07 MST 1988-04-03 03 -06 MDT 1 1988-10-30 01 -07 MST 1989-04-02 03 -06 MDT 1 1989-10-29 01 -07 MST 1990-04-01 03 -06 MDT 1 1990-10-28 01 -07 MST 1991-04-07 03 -06 MDT 1 1991-10-27 01 -07 MST 1992-04-05 03 -06 MDT 1 1992-10-25 01 -07 MST 1993-04-04 03 -06 MDT 1 1993-10-31 01 -07 MST 1994-04-03 03 -06 MDT 1 1994-10-30 01 -07 MST 1995-04-02 03 -06 MDT 1 1995-10-29 01 -07 MST 1996-04-07 03 -06 MDT 1 1996-10-27 01 -07 MST 1997-04-06 03 -06 MDT 1 1997-10-26 01 -07 MST 1998-04-05 03 -06 MDT 1 1998-10-25 01 -07 MST 1999-04-04 03 -06 MDT 1 1999-10-31 01 -07 MST 2000-04-02 03 -06 MDT 1 2000-10-29 01 -07 MST 2001-04-01 03 -06 MDT 1 2001-10-28 01 -07 MST 2002-04-07 03 -06 MDT 1 2002-10-27 01 -07 MST 2003-04-06 03 -06 MDT 1 2003-10-26 01 -07 MST 2004-04-04 03 -06 MDT 1 2004-10-31 01 -07 MST 2005-04-03 03 -06 MDT 1 2005-10-30 01 -07 MST 2006-04-02 03 -06 MDT 1 2006-10-29 01 -07 MST 2007-03-11 03 -06 MDT 1 2007-11-04 01 -07 MST 2008-03-09 03 -06 MDT 1 2008-11-02 01 -07 MST 2009-03-08 03 -06 MDT 1 2009-11-01 01 -07 MST 2010-03-14 03 -06 MDT 1 2010-11-07 01 -07 MST 2011-03-13 03 -06 MDT 1 2011-11-06 01 -07 MST 2012-03-11 03 -06 MDT 1 2012-11-04 01 -07 MST 2013-03-10 03 -06 MDT 1 2013-11-03 01 -07 MST 2014-03-09 03 -06 MDT 1 2014-11-02 01 -07 MST 2015-03-08 03 -06 MDT 1 2015-11-01 01 -07 MST 2016-03-13 03 -06 MDT 1 2016-11-06 01 -07 MST 2017-03-12 03 -06 MDT 1 2017-11-05 01 -07 MST 2018-03-11 03 -06 MDT 1 2018-11-04 01 -07 MST 2019-03-10 03 -06 MDT 1 2019-11-03 01 -07 MST 2020-03-08 03 -06 MDT 1 2020-11-01 01 -07 MST 2021-03-14 03 -06 MDT 1 2021-11-07 01 -07 MST 2022-03-13 03 -06 MDT 1 2022-11-06 01 -07 MST 2023-03-12 03 -06 MDT 1 2023-11-05 01 -07 MST 2024-03-10 03 -06 MDT 1 2024-11-03 01 -07 MST 2025-03-09 03 -06 MDT 1 2025-11-02 01 -07 MST 2026-03-08 03 -06 MDT 1 2026-11-01 01 -07 MST 2027-03-14 03 -06 MDT 1 2027-11-07 01 -07 MST 2028-03-12 03 -06 MDT 1 2028-11-05 01 -07 MST 2029-03-11 03 -06 MDT 1 2029-11-04 01 -07 MST 2030-03-10 03 -06 MDT 1 2030-11-03 01 -07 MST 2031-03-09 03 -06 MDT 1 2031-11-02 01 -07 MST 2032-03-14 03 -06 MDT 1 2032-11-07 01 -07 MST 2033-03-13 03 -06 MDT 1 2033-11-06 01 -07 MST 2034-03-12 03 -06 MDT 1 2034-11-05 01 -07 MST 2035-03-11 03 -06 MDT 1 2035-11-04 01 -07 MST 2036-03-09 03 -06 MDT 1 2036-11-02 01 -07 MST 2037-03-08 03 -06 MDT 1 2037-11-01 01 -07 MST 2038-03-14 03 -06 MDT 1 2038-11-07 01 -07 MST 2039-03-13 03 -06 MDT 1 2039-11-06 01 -07 MST 2040-03-11 03 -06 MDT 1 2040-11-04 01 -07 MST 2041-03-10 03 -06 MDT 1 2041-11-03 01 -07 MST 2042-03-09 03 -06 MDT 1 2042-11-02 01 -07 MST 2043-03-08 03 -06 MDT 1 2043-11-01 01 -07 MST 2044-03-13 03 -06 MDT 1 2044-11-06 01 -07 MST 2045-03-12 03 -06 MDT 1 2045-11-05 01 -07 MST 2046-03-11 03 -06 MDT 1 2046-11-04 01 -07 MST 2047-03-10 03 -06 MDT 1 2047-11-03 01 -07 MST 2048-03-08 03 -06 MDT 1 2048-11-01 01 -07 MST 2049-03-14 03 -06 MDT 1 2049-11-07 01 -07 MST TZ="America/Iqaluit" - - -00 1942-07-31 20 -04 EWT 1 1945-08-14 19 -04 EPT 1 1945-09-30 01 -05 EST 1965-04-25 02 -03 EDDT 1 1965-10-31 00 -05 EST 1980-04-27 03 -04 EDT 1 1980-10-26 01 -05 EST 1981-04-26 03 -04 EDT 1 1981-10-25 01 -05 EST 1982-04-25 03 -04 EDT 1 1982-10-31 01 -05 EST 1983-04-24 03 -04 EDT 1 1983-10-30 01 -05 EST 1984-04-29 03 -04 EDT 1 1984-10-28 01 -05 EST 1985-04-28 03 -04 EDT 1 1985-10-27 01 -05 EST 1986-04-27 03 -04 EDT 1 1986-10-26 01 -05 EST 1987-04-05 03 -04 EDT 1 1987-10-25 01 -05 EST 1988-04-03 03 -04 EDT 1 1988-10-30 01 -05 EST 1989-04-02 03 -04 EDT 1 1989-10-29 01 -05 EST 1990-04-01 03 -04 EDT 1 1990-10-28 01 -05 EST 1991-04-07 03 -04 EDT 1 1991-10-27 01 -05 EST 1992-04-05 03 -04 EDT 1 1992-10-25 01 -05 EST 1993-04-04 03 -04 EDT 1 1993-10-31 01 -05 EST 1994-04-03 03 -04 EDT 1 1994-10-30 01 -05 EST 1995-04-02 03 -04 EDT 1 1995-10-29 01 -05 EST 1996-04-07 03 -04 EDT 1 1996-10-27 01 -05 EST 1997-04-06 03 -04 EDT 1 1997-10-26 01 -05 EST 1998-04-05 03 -04 EDT 1 1998-10-25 01 -05 EST 1999-04-04 03 -04 EDT 1 1999-10-31 00 -06 CST 2000-04-02 03 -05 CDT 1 2000-10-29 02 -05 EST 2001-04-01 03 -04 EDT 1 2001-10-28 01 -05 EST 2002-04-07 03 -04 EDT 1 2002-10-27 01 -05 EST 2003-04-06 03 -04 EDT 1 2003-10-26 01 -05 EST 2004-04-04 03 -04 EDT 1 2004-10-31 01 -05 EST 2005-04-03 03 -04 EDT 1 2005-10-30 01 -05 EST 2006-04-02 03 -04 EDT 1 2006-10-29 01 -05 EST 2007-03-11 03 -04 EDT 1 2007-11-04 01 -05 EST 2008-03-09 03 -04 EDT 1 2008-11-02 01 -05 EST 2009-03-08 03 -04 EDT 1 2009-11-01 01 -05 EST 2010-03-14 03 -04 EDT 1 2010-11-07 01 -05 EST 2011-03-13 03 -04 EDT 1 2011-11-06 01 -05 EST 2012-03-11 03 -04 EDT 1 2012-11-04 01 -05 EST 2013-03-10 03 -04 EDT 1 2013-11-03 01 -05 EST 2014-03-09 03 -04 EDT 1 2014-11-02 01 -05 EST 2015-03-08 03 -04 EDT 1 2015-11-01 01 -05 EST 2016-03-13 03 -04 EDT 1 2016-11-06 01 -05 EST 2017-03-12 03 -04 EDT 1 2017-11-05 01 -05 EST 2018-03-11 03 -04 EDT 1 2018-11-04 01 -05 EST 2019-03-10 03 -04 EDT 1 2019-11-03 01 -05 EST 2020-03-08 03 -04 EDT 1 2020-11-01 01 -05 EST 2021-03-14 03 -04 EDT 1 2021-11-07 01 -05 EST 2022-03-13 03 -04 EDT 1 2022-11-06 01 -05 EST 2023-03-12 03 -04 EDT 1 2023-11-05 01 -05 EST 2024-03-10 03 -04 EDT 1 2024-11-03 01 -05 EST 2025-03-09 03 -04 EDT 1 2025-11-02 01 -05 EST 2026-03-08 03 -04 EDT 1 2026-11-01 01 -05 EST 2027-03-14 03 -04 EDT 1 2027-11-07 01 -05 EST 2028-03-12 03 -04 EDT 1 2028-11-05 01 -05 EST 2029-03-11 03 -04 EDT 1 2029-11-04 01 -05 EST 2030-03-10 03 -04 EDT 1 2030-11-03 01 -05 EST 2031-03-09 03 -04 EDT 1 2031-11-02 01 -05 EST 2032-03-14 03 -04 EDT 1 2032-11-07 01 -05 EST 2033-03-13 03 -04 EDT 1 2033-11-06 01 -05 EST 2034-03-12 03 -04 EDT 1 2034-11-05 01 -05 EST 2035-03-11 03 -04 EDT 1 2035-11-04 01 -05 EST 2036-03-09 03 -04 EDT 1 2036-11-02 01 -05 EST 2037-03-08 03 -04 EDT 1 2037-11-01 01 -05 EST 2038-03-14 03 -04 EDT 1 2038-11-07 01 -05 EST 2039-03-13 03 -04 EDT 1 2039-11-06 01 -05 EST 2040-03-11 03 -04 EDT 1 2040-11-04 01 -05 EST 2041-03-10 03 -04 EDT 1 2041-11-03 01 -05 EST 2042-03-09 03 -04 EDT 1 2042-11-02 01 -05 EST 2043-03-08 03 -04 EDT 1 2043-11-01 01 -05 EST 2044-03-13 03 -04 EDT 1 2044-11-06 01 -05 EST 2045-03-12 03 -04 EDT 1 2045-11-05 01 -05 EST 2046-03-11 03 -04 EDT 1 2046-11-04 01 -05 EST 2047-03-10 03 -04 EDT 1 2047-11-03 01 -05 EST 2048-03-08 03 -04 EDT 1 2048-11-01 01 -05 EST 2049-03-14 03 -04 EDT 1 2049-11-07 01 -05 EST TZ="America/Jamaica" - - -050710 LMT 1890-01-01 00 -050710 KMT 1912-02-01 00:07:10 -05 EST 1974-01-06 03 -04 EDT 1 1974-10-27 01 -05 EST 1975-02-23 03 -04 EDT 1 1975-10-26 01 -05 EST 1976-04-25 03 -04 EDT 1 1976-10-31 01 -05 EST 1977-04-24 03 -04 EDT 1 1977-10-30 01 -05 EST 1978-04-30 03 -04 EDT 1 1978-10-29 01 -05 EST 1979-04-29 03 -04 EDT 1 1979-10-28 01 -05 EST 1980-04-27 03 -04 EDT 1 1980-10-26 01 -05 EST 1981-04-26 03 -04 EDT 1 1981-10-25 01 -05 EST 1982-04-25 03 -04 EDT 1 1982-10-31 01 -05 EST 1983-04-24 03 -04 EDT 1 1983-10-30 01 -05 EST TZ="America/Juneau" - - +150219 LMT 1867-10-18 15:33:32 -085741 LMT 1900-08-20 12:57:41 -08 PST 1942-02-09 03 -07 PWT 1 1945-08-14 16 -07 PPT 1 1945-09-30 01 -08 PST 1969-04-27 03 -07 PDT 1 1969-10-26 01 -08 PST 1970-04-26 03 -07 PDT 1 1970-10-25 01 -08 PST 1971-04-25 03 -07 PDT 1 1971-10-31 01 -08 PST 1972-04-30 03 -07 PDT 1 1972-10-29 01 -08 PST 1973-04-29 03 -07 PDT 1 1973-10-28 01 -08 PST 1974-01-06 03 -07 PDT 1 1974-10-27 01 -08 PST 1975-02-23 03 -07 PDT 1 1975-10-26 01 -08 PST 1976-04-25 03 -07 PDT 1 1976-10-31 01 -08 PST 1977-04-24 03 -07 PDT 1 1977-10-30 01 -08 PST 1978-04-30 03 -07 PDT 1 1978-10-29 01 -08 PST 1979-04-29 03 -07 PDT 1 1979-10-28 01 -08 PST 1980-04-27 02 -08 YDT 1 1980-10-26 02 -08 PST 1981-04-26 03 -07 PDT 1 1981-10-25 01 -08 PST 1982-04-25 03 -07 PDT 1 1982-10-31 01 -08 PST 1983-04-24 03 -07 PDT 1 1983-10-30 00 -09 YST 1983-11-30 00 -09 AKST 1984-04-29 03 -08 AKDT 1 1984-10-28 01 -09 AKST 1985-04-28 03 -08 AKDT 1 1985-10-27 01 -09 AKST 1986-04-27 03 -08 AKDT 1 1986-10-26 01 -09 AKST 1987-04-05 03 -08 AKDT 1 1987-10-25 01 -09 AKST 1988-04-03 03 -08 AKDT 1 1988-10-30 01 -09 AKST 1989-04-02 03 -08 AKDT 1 1989-10-29 01 -09 AKST 1990-04-01 03 -08 AKDT 1 1990-10-28 01 -09 AKST 1991-04-07 03 -08 AKDT 1 1991-10-27 01 -09 AKST 1992-04-05 03 -08 AKDT 1 1992-10-25 01 -09 AKST 1993-04-04 03 -08 AKDT 1 1993-10-31 01 -09 AKST 1994-04-03 03 -08 AKDT 1 1994-10-30 01 -09 AKST 1995-04-02 03 -08 AKDT 1 1995-10-29 01 -09 AKST 1996-04-07 03 -08 AKDT 1 1996-10-27 01 -09 AKST 1997-04-06 03 -08 AKDT 1 1997-10-26 01 -09 AKST 1998-04-05 03 -08 AKDT 1 1998-10-25 01 -09 AKST 1999-04-04 03 -08 AKDT 1 1999-10-31 01 -09 AKST 2000-04-02 03 -08 AKDT 1 2000-10-29 01 -09 AKST 2001-04-01 03 -08 AKDT 1 2001-10-28 01 -09 AKST 2002-04-07 03 -08 AKDT 1 2002-10-27 01 -09 AKST 2003-04-06 03 -08 AKDT 1 2003-10-26 01 -09 AKST 2004-04-04 03 -08 AKDT 1 2004-10-31 01 -09 AKST 2005-04-03 03 -08 AKDT 1 2005-10-30 01 -09 AKST 2006-04-02 03 -08 AKDT 1 2006-10-29 01 -09 AKST 2007-03-11 03 -08 AKDT 1 2007-11-04 01 -09 AKST 2008-03-09 03 -08 AKDT 1 2008-11-02 01 -09 AKST 2009-03-08 03 -08 AKDT 1 2009-11-01 01 -09 AKST 2010-03-14 03 -08 AKDT 1 2010-11-07 01 -09 AKST 2011-03-13 03 -08 AKDT 1 2011-11-06 01 -09 AKST 2012-03-11 03 -08 AKDT 1 2012-11-04 01 -09 AKST 2013-03-10 03 -08 AKDT 1 2013-11-03 01 -09 AKST 2014-03-09 03 -08 AKDT 1 2014-11-02 01 -09 AKST 2015-03-08 03 -08 AKDT 1 2015-11-01 01 -09 AKST 2016-03-13 03 -08 AKDT 1 2016-11-06 01 -09 AKST 2017-03-12 03 -08 AKDT 1 2017-11-05 01 -09 AKST 2018-03-11 03 -08 AKDT 1 2018-11-04 01 -09 AKST 2019-03-10 03 -08 AKDT 1 2019-11-03 01 -09 AKST 2020-03-08 03 -08 AKDT 1 2020-11-01 01 -09 AKST 2021-03-14 03 -08 AKDT 1 2021-11-07 01 -09 AKST 2022-03-13 03 -08 AKDT 1 2022-11-06 01 -09 AKST 2023-03-12 03 -08 AKDT 1 2023-11-05 01 -09 AKST 2024-03-10 03 -08 AKDT 1 2024-11-03 01 -09 AKST 2025-03-09 03 -08 AKDT 1 2025-11-02 01 -09 AKST 2026-03-08 03 -08 AKDT 1 2026-11-01 01 -09 AKST 2027-03-14 03 -08 AKDT 1 2027-11-07 01 -09 AKST 2028-03-12 03 -08 AKDT 1 2028-11-05 01 -09 AKST 2029-03-11 03 -08 AKDT 1 2029-11-04 01 -09 AKST 2030-03-10 03 -08 AKDT 1 2030-11-03 01 -09 AKST 2031-03-09 03 -08 AKDT 1 2031-11-02 01 -09 AKST 2032-03-14 03 -08 AKDT 1 2032-11-07 01 -09 AKST 2033-03-13 03 -08 AKDT 1 2033-11-06 01 -09 AKST 2034-03-12 03 -08 AKDT 1 2034-11-05 01 -09 AKST 2035-03-11 03 -08 AKDT 1 2035-11-04 01 -09 AKST 2036-03-09 03 -08 AKDT 1 2036-11-02 01 -09 AKST 2037-03-08 03 -08 AKDT 1 2037-11-01 01 -09 AKST 2038-03-14 03 -08 AKDT 1 2038-11-07 01 -09 AKST 2039-03-13 03 -08 AKDT 1 2039-11-06 01 -09 AKST 2040-03-11 03 -08 AKDT 1 2040-11-04 01 -09 AKST 2041-03-10 03 -08 AKDT 1 2041-11-03 01 -09 AKST 2042-03-09 03 -08 AKDT 1 2042-11-02 01 -09 AKST 2043-03-08 03 -08 AKDT 1 2043-11-01 01 -09 AKST 2044-03-13 03 -08 AKDT 1 2044-11-06 01 -09 AKST 2045-03-12 03 -08 AKDT 1 2045-11-05 01 -09 AKST 2046-03-11 03 -08 AKDT 1 2046-11-04 01 -09 AKST 2047-03-10 03 -08 AKDT 1 2047-11-03 01 -09 AKST 2048-03-08 03 -08 AKDT 1 2048-11-01 01 -09 AKST 2049-03-14 03 -08 AKDT 1 2049-11-07 01 -09 AKST TZ="America/Kentucky/Louisville" - - -054302 LMT 1883-11-18 12 -06 CST 1918-03-31 03 -05 CDT 1 1918-10-27 01 -06 CST 1919-03-30 03 -05 CDT 1 1919-10-26 01 -06 CST 1921-05-01 03 -05 CDT 1 1921-09-01 01 -06 CST 1941-04-27 03 -05 CDT 1 1941-09-28 01 -06 CST 1942-02-09 03 -05 CWT 1 1945-08-14 18 -05 CPT 1 1945-09-30 01 -06 CST 1946-04-28 01:01 -05 CDT 1 1946-06-02 01 -06 CST 1950-04-30 03 -05 CDT 1 1950-09-24 01 -06 CST 1951-04-29 03 -05 CDT 1 1951-09-30 01 -06 CST 1952-04-27 03 -05 CDT 1 1952-09-28 01 -06 CST 1953-04-26 03 -05 CDT 1 1953-09-27 01 -06 CST 1954-04-25 03 -05 CDT 1 1954-09-26 01 -06 CST 1955-04-24 03 -05 CDT 1 1955-09-25 01 -06 CST 1956-04-29 03 -05 CDT 1 1956-10-28 01 -06 CST 1957-04-28 03 -05 CDT 1 1957-10-27 01 -06 CST 1958-04-27 03 -05 CDT 1 1958-10-26 01 -06 CST 1959-04-26 03 -05 CDT 1 1959-10-25 01 -06 CST 1960-04-24 03 -05 CDT 1 1960-10-30 01 -06 CST 1961-04-30 03 -05 CDT 1 1961-07-23 02 -05 EST 1968-04-28 03 -04 EDT 1 1968-10-27 01 -05 EST 1969-04-27 03 -04 EDT 1 1969-10-26 01 -05 EST 1970-04-26 03 -04 EDT 1 1970-10-25 01 -05 EST 1971-04-25 03 -04 EDT 1 1971-10-31 01 -05 EST 1972-04-30 03 -04 EDT 1 1972-10-29 01 -05 EST 1973-04-29 03 -04 EDT 1 1973-10-28 01 -05 EST 1974-01-06 02 -05 CDT 1 1974-10-27 02 -05 EST 1975-02-23 03 -04 EDT 1 1975-10-26 01 -05 EST 1976-04-25 03 -04 EDT 1 1976-10-31 01 -05 EST 1977-04-24 03 -04 EDT 1 1977-10-30 01 -05 EST 1978-04-30 03 -04 EDT 1 1978-10-29 01 -05 EST 1979-04-29 03 -04 EDT 1 1979-10-28 01 -05 EST 1980-04-27 03 -04 EDT 1 1980-10-26 01 -05 EST 1981-04-26 03 -04 EDT 1 1981-10-25 01 -05 EST 1982-04-25 03 -04 EDT 1 1982-10-31 01 -05 EST 1983-04-24 03 -04 EDT 1 1983-10-30 01 -05 EST 1984-04-29 03 -04 EDT 1 1984-10-28 01 -05 EST 1985-04-28 03 -04 EDT 1 1985-10-27 01 -05 EST 1986-04-27 03 -04 EDT 1 1986-10-26 01 -05 EST 1987-04-05 03 -04 EDT 1 1987-10-25 01 -05 EST 1988-04-03 03 -04 EDT 1 1988-10-30 01 -05 EST 1989-04-02 03 -04 EDT 1 1989-10-29 01 -05 EST 1990-04-01 03 -04 EDT 1 1990-10-28 01 -05 EST 1991-04-07 03 -04 EDT 1 1991-10-27 01 -05 EST 1992-04-05 03 -04 EDT 1 1992-10-25 01 -05 EST 1993-04-04 03 -04 EDT 1 1993-10-31 01 -05 EST 1994-04-03 03 -04 EDT 1 1994-10-30 01 -05 EST 1995-04-02 03 -04 EDT 1 1995-10-29 01 -05 EST 1996-04-07 03 -04 EDT 1 1996-10-27 01 -05 EST 1997-04-06 03 -04 EDT 1 1997-10-26 01 -05 EST 1998-04-05 03 -04 EDT 1 1998-10-25 01 -05 EST 1999-04-04 03 -04 EDT 1 1999-10-31 01 -05 EST 2000-04-02 03 -04 EDT 1 2000-10-29 01 -05 EST 2001-04-01 03 -04 EDT 1 2001-10-28 01 -05 EST 2002-04-07 03 -04 EDT 1 2002-10-27 01 -05 EST 2003-04-06 03 -04 EDT 1 2003-10-26 01 -05 EST 2004-04-04 03 -04 EDT 1 2004-10-31 01 -05 EST 2005-04-03 03 -04 EDT 1 2005-10-30 01 -05 EST 2006-04-02 03 -04 EDT 1 2006-10-29 01 -05 EST 2007-03-11 03 -04 EDT 1 2007-11-04 01 -05 EST 2008-03-09 03 -04 EDT 1 2008-11-02 01 -05 EST 2009-03-08 03 -04 EDT 1 2009-11-01 01 -05 EST 2010-03-14 03 -04 EDT 1 2010-11-07 01 -05 EST 2011-03-13 03 -04 EDT 1 2011-11-06 01 -05 EST 2012-03-11 03 -04 EDT 1 2012-11-04 01 -05 EST 2013-03-10 03 -04 EDT 1 2013-11-03 01 -05 EST 2014-03-09 03 -04 EDT 1 2014-11-02 01 -05 EST 2015-03-08 03 -04 EDT 1 2015-11-01 01 -05 EST 2016-03-13 03 -04 EDT 1 2016-11-06 01 -05 EST 2017-03-12 03 -04 EDT 1 2017-11-05 01 -05 EST 2018-03-11 03 -04 EDT 1 2018-11-04 01 -05 EST 2019-03-10 03 -04 EDT 1 2019-11-03 01 -05 EST 2020-03-08 03 -04 EDT 1 2020-11-01 01 -05 EST 2021-03-14 03 -04 EDT 1 2021-11-07 01 -05 EST 2022-03-13 03 -04 EDT 1 2022-11-06 01 -05 EST 2023-03-12 03 -04 EDT 1 2023-11-05 01 -05 EST 2024-03-10 03 -04 EDT 1 2024-11-03 01 -05 EST 2025-03-09 03 -04 EDT 1 2025-11-02 01 -05 EST 2026-03-08 03 -04 EDT 1 2026-11-01 01 -05 EST 2027-03-14 03 -04 EDT 1 2027-11-07 01 -05 EST 2028-03-12 03 -04 EDT 1 2028-11-05 01 -05 EST 2029-03-11 03 -04 EDT 1 2029-11-04 01 -05 EST 2030-03-10 03 -04 EDT 1 2030-11-03 01 -05 EST 2031-03-09 03 -04 EDT 1 2031-11-02 01 -05 EST 2032-03-14 03 -04 EDT 1 2032-11-07 01 -05 EST 2033-03-13 03 -04 EDT 1 2033-11-06 01 -05 EST 2034-03-12 03 -04 EDT 1 2034-11-05 01 -05 EST 2035-03-11 03 -04 EDT 1 2035-11-04 01 -05 EST 2036-03-09 03 -04 EDT 1 2036-11-02 01 -05 EST 2037-03-08 03 -04 EDT 1 2037-11-01 01 -05 EST 2038-03-14 03 -04 EDT 1 2038-11-07 01 -05 EST 2039-03-13 03 -04 EDT 1 2039-11-06 01 -05 EST 2040-03-11 03 -04 EDT 1 2040-11-04 01 -05 EST 2041-03-10 03 -04 EDT 1 2041-11-03 01 -05 EST 2042-03-09 03 -04 EDT 1 2042-11-02 01 -05 EST 2043-03-08 03 -04 EDT 1 2043-11-01 01 -05 EST 2044-03-13 03 -04 EDT 1 2044-11-06 01 -05 EST 2045-03-12 03 -04 EDT 1 2045-11-05 01 -05 EST 2046-03-11 03 -04 EDT 1 2046-11-04 01 -05 EST 2047-03-10 03 -04 EDT 1 2047-11-03 01 -05 EST 2048-03-08 03 -04 EDT 1 2048-11-01 01 -05 EST 2049-03-14 03 -04 EDT 1 2049-11-07 01 -05 EST TZ="America/Kentucky/Monticello" - - -053924 LMT 1883-11-18 12 -06 CST 1918-03-31 03 -05 CDT 1 1918-10-27 01 -06 CST 1919-03-30 03 -05 CDT 1 1919-10-26 01 -06 CST 1942-02-09 03 -05 CWT 1 1945-08-14 18 -05 CPT 1 1945-09-30 01 -06 CST 1968-04-28 03 -05 CDT 1 1968-10-27 01 -06 CST 1969-04-27 03 -05 CDT 1 1969-10-26 01 -06 CST 1970-04-26 03 -05 CDT 1 1970-10-25 01 -06 CST 1971-04-25 03 -05 CDT 1 1971-10-31 01 -06 CST 1972-04-30 03 -05 CDT 1 1972-10-29 01 -06 CST 1973-04-29 03 -05 CDT 1 1973-10-28 01 -06 CST 1974-01-06 03 -05 CDT 1 1974-10-27 01 -06 CST 1975-02-23 03 -05 CDT 1 1975-10-26 01 -06 CST 1976-04-25 03 -05 CDT 1 1976-10-31 01 -06 CST 1977-04-24 03 -05 CDT 1 1977-10-30 01 -06 CST 1978-04-30 03 -05 CDT 1 1978-10-29 01 -06 CST 1979-04-29 03 -05 CDT 1 1979-10-28 01 -06 CST 1980-04-27 03 -05 CDT 1 1980-10-26 01 -06 CST 1981-04-26 03 -05 CDT 1 1981-10-25 01 -06 CST 1982-04-25 03 -05 CDT 1 1982-10-31 01 -06 CST 1983-04-24 03 -05 CDT 1 1983-10-30 01 -06 CST 1984-04-29 03 -05 CDT 1 1984-10-28 01 -06 CST 1985-04-28 03 -05 CDT 1 1985-10-27 01 -06 CST 1986-04-27 03 -05 CDT 1 1986-10-26 01 -06 CST 1987-04-05 03 -05 CDT 1 1987-10-25 01 -06 CST 1988-04-03 03 -05 CDT 1 1988-10-30 01 -06 CST 1989-04-02 03 -05 CDT 1 1989-10-29 01 -06 CST 1990-04-01 03 -05 CDT 1 1990-10-28 01 -06 CST 1991-04-07 03 -05 CDT 1 1991-10-27 01 -06 CST 1992-04-05 03 -05 CDT 1 1992-10-25 01 -06 CST 1993-04-04 03 -05 CDT 1 1993-10-31 01 -06 CST 1994-04-03 03 -05 CDT 1 1994-10-30 01 -06 CST 1995-04-02 03 -05 CDT 1 1995-10-29 01 -06 CST 1996-04-07 03 -05 CDT 1 1996-10-27 01 -06 CST 1997-04-06 03 -05 CDT 1 1997-10-26 01 -06 CST 1998-04-05 03 -05 CDT 1 1998-10-25 01 -06 CST 1999-04-04 03 -05 CDT 1 1999-10-31 01 -06 CST 2000-04-02 03 -05 CDT 1 2000-10-29 02 -05 EST 2001-04-01 03 -04 EDT 1 2001-10-28 01 -05 EST 2002-04-07 03 -04 EDT 1 2002-10-27 01 -05 EST 2003-04-06 03 -04 EDT 1 2003-10-26 01 -05 EST 2004-04-04 03 -04 EDT 1 2004-10-31 01 -05 EST 2005-04-03 03 -04 EDT 1 2005-10-30 01 -05 EST 2006-04-02 03 -04 EDT 1 2006-10-29 01 -05 EST 2007-03-11 03 -04 EDT 1 2007-11-04 01 -05 EST 2008-03-09 03 -04 EDT 1 2008-11-02 01 -05 EST 2009-03-08 03 -04 EDT 1 2009-11-01 01 -05 EST 2010-03-14 03 -04 EDT 1 2010-11-07 01 -05 EST 2011-03-13 03 -04 EDT 1 2011-11-06 01 -05 EST 2012-03-11 03 -04 EDT 1 2012-11-04 01 -05 EST 2013-03-10 03 -04 EDT 1 2013-11-03 01 -05 EST 2014-03-09 03 -04 EDT 1 2014-11-02 01 -05 EST 2015-03-08 03 -04 EDT 1 2015-11-01 01 -05 EST 2016-03-13 03 -04 EDT 1 2016-11-06 01 -05 EST 2017-03-12 03 -04 EDT 1 2017-11-05 01 -05 EST 2018-03-11 03 -04 EDT 1 2018-11-04 01 -05 EST 2019-03-10 03 -04 EDT 1 2019-11-03 01 -05 EST 2020-03-08 03 -04 EDT 1 2020-11-01 01 -05 EST 2021-03-14 03 -04 EDT 1 2021-11-07 01 -05 EST 2022-03-13 03 -04 EDT 1 2022-11-06 01 -05 EST 2023-03-12 03 -04 EDT 1 2023-11-05 01 -05 EST 2024-03-10 03 -04 EDT 1 2024-11-03 01 -05 EST 2025-03-09 03 -04 EDT 1 2025-11-02 01 -05 EST 2026-03-08 03 -04 EDT 1 2026-11-01 01 -05 EST 2027-03-14 03 -04 EDT 1 2027-11-07 01 -05 EST 2028-03-12 03 -04 EDT 1 2028-11-05 01 -05 EST 2029-03-11 03 -04 EDT 1 2029-11-04 01 -05 EST 2030-03-10 03 -04 EDT 1 2030-11-03 01 -05 EST 2031-03-09 03 -04 EDT 1 2031-11-02 01 -05 EST 2032-03-14 03 -04 EDT 1 2032-11-07 01 -05 EST 2033-03-13 03 -04 EDT 1 2033-11-06 01 -05 EST 2034-03-12 03 -04 EDT 1 2034-11-05 01 -05 EST 2035-03-11 03 -04 EDT 1 2035-11-04 01 -05 EST 2036-03-09 03 -04 EDT 1 2036-11-02 01 -05 EST 2037-03-08 03 -04 EDT 1 2037-11-01 01 -05 EST 2038-03-14 03 -04 EDT 1 2038-11-07 01 -05 EST 2039-03-13 03 -04 EDT 1 2039-11-06 01 -05 EST 2040-03-11 03 -04 EDT 1 2040-11-04 01 -05 EST 2041-03-10 03 -04 EDT 1 2041-11-03 01 -05 EST 2042-03-09 03 -04 EDT 1 2042-11-02 01 -05 EST 2043-03-08 03 -04 EDT 1 2043-11-01 01 -05 EST 2044-03-13 03 -04 EDT 1 2044-11-06 01 -05 EST 2045-03-12 03 -04 EDT 1 2045-11-05 01 -05 EST 2046-03-11 03 -04 EDT 1 2046-11-04 01 -05 EST 2047-03-10 03 -04 EDT 1 2047-11-03 01 -05 EST 2048-03-08 03 -04 EDT 1 2048-11-01 01 -05 EST 2049-03-14 03 -04 EDT 1 2049-11-07 01 -05 EST TZ="America/La_Paz" - - -043236 LMT 1890-01-01 00 -043236 CMT 1931-10-15 01 -033236 BST 1 1932-03-20 23:32:36 -04 TZ="America/Lima" - - -050812 LMT 1889-12-31 23:59:36 -050836 LMT 1908-07-28 00:08:36 -05 1938-01-01 01 -04 1 1938-03-31 23 -05 1938-09-25 01 -04 1 1939-03-25 23 -05 1939-09-24 01 -04 1 1940-03-23 23 -05 1986-01-01 01 -04 1 1986-03-31 23 -05 1987-01-01 01 -04 1 1987-03-31 23 -05 1990-01-01 01 -04 1 1990-03-31 23 -05 1994-01-01 01 -04 1 1994-03-31 23 -05 TZ="America/Los_Angeles" - - -075258 LMT 1883-11-18 12 -08 PST 1918-03-31 03 -07 PDT 1 1918-10-27 01 -08 PST 1919-03-30 03 -07 PDT 1 1919-10-26 01 -08 PST 1942-02-09 03 -07 PWT 1 1945-08-14 16 -07 PPT 1 1945-09-30 01 -08 PST 1948-03-14 03:01 -07 PDT 1 1949-01-01 01 -08 PST 1950-04-30 02 -07 PDT 1 1950-09-24 01 -08 PST 1951-04-29 02 -07 PDT 1 1951-09-30 01 -08 PST 1952-04-27 02 -07 PDT 1 1952-09-28 01 -08 PST 1953-04-26 02 -07 PDT 1 1953-09-27 01 -08 PST 1954-04-25 02 -07 PDT 1 1954-09-26 01 -08 PST 1955-04-24 02 -07 PDT 1 1955-09-25 01 -08 PST 1956-04-29 02 -07 PDT 1 1956-09-30 01 -08 PST 1957-04-28 02 -07 PDT 1 1957-09-29 01 -08 PST 1958-04-27 02 -07 PDT 1 1958-09-28 01 -08 PST 1959-04-26 02 -07 PDT 1 1959-09-27 01 -08 PST 1960-04-24 02 -07 PDT 1 1960-09-25 01 -08 PST 1961-04-30 02 -07 PDT 1 1961-09-24 01 -08 PST 1962-04-29 02 -07 PDT 1 1962-10-28 01 -08 PST 1963-04-28 02 -07 PDT 1 1963-10-27 01 -08 PST 1964-04-26 02 -07 PDT 1 1964-10-25 01 -08 PST 1965-04-25 02 -07 PDT 1 1965-10-31 01 -08 PST 1966-04-24 02 -07 PDT 1 1966-10-30 01 -08 PST 1967-04-30 03 -07 PDT 1 1967-10-29 01 -08 PST 1968-04-28 03 -07 PDT 1 1968-10-27 01 -08 PST 1969-04-27 03 -07 PDT 1 1969-10-26 01 -08 PST 1970-04-26 03 -07 PDT 1 1970-10-25 01 -08 PST 1971-04-25 03 -07 PDT 1 1971-10-31 01 -08 PST 1972-04-30 03 -07 PDT 1 1972-10-29 01 -08 PST 1973-04-29 03 -07 PDT 1 1973-10-28 01 -08 PST 1974-01-06 03 -07 PDT 1 1974-10-27 01 -08 PST 1975-02-23 03 -07 PDT 1 1975-10-26 01 -08 PST 1976-04-25 03 -07 PDT 1 1976-10-31 01 -08 PST 1977-04-24 03 -07 PDT 1 1977-10-30 01 -08 PST 1978-04-30 03 -07 PDT 1 1978-10-29 01 -08 PST 1979-04-29 03 -07 PDT 1 1979-10-28 01 -08 PST 1980-04-27 03 -07 PDT 1 1980-10-26 01 -08 PST 1981-04-26 03 -07 PDT 1 1981-10-25 01 -08 PST 1982-04-25 03 -07 PDT 1 1982-10-31 01 -08 PST 1983-04-24 03 -07 PDT 1 1983-10-30 01 -08 PST 1984-04-29 03 -07 PDT 1 1984-10-28 01 -08 PST 1985-04-28 03 -07 PDT 1 1985-10-27 01 -08 PST 1986-04-27 03 -07 PDT 1 1986-10-26 01 -08 PST 1987-04-05 03 -07 PDT 1 1987-10-25 01 -08 PST 1988-04-03 03 -07 PDT 1 1988-10-30 01 -08 PST 1989-04-02 03 -07 PDT 1 1989-10-29 01 -08 PST 1990-04-01 03 -07 PDT 1 1990-10-28 01 -08 PST 1991-04-07 03 -07 PDT 1 1991-10-27 01 -08 PST 1992-04-05 03 -07 PDT 1 1992-10-25 01 -08 PST 1993-04-04 03 -07 PDT 1 1993-10-31 01 -08 PST 1994-04-03 03 -07 PDT 1 1994-10-30 01 -08 PST 1995-04-02 03 -07 PDT 1 1995-10-29 01 -08 PST 1996-04-07 03 -07 PDT 1 1996-10-27 01 -08 PST 1997-04-06 03 -07 PDT 1 1997-10-26 01 -08 PST 1998-04-05 03 -07 PDT 1 1998-10-25 01 -08 PST 1999-04-04 03 -07 PDT 1 1999-10-31 01 -08 PST 2000-04-02 03 -07 PDT 1 2000-10-29 01 -08 PST 2001-04-01 03 -07 PDT 1 2001-10-28 01 -08 PST 2002-04-07 03 -07 PDT 1 2002-10-27 01 -08 PST 2003-04-06 03 -07 PDT 1 2003-10-26 01 -08 PST 2004-04-04 03 -07 PDT 1 2004-10-31 01 -08 PST 2005-04-03 03 -07 PDT 1 2005-10-30 01 -08 PST 2006-04-02 03 -07 PDT 1 2006-10-29 01 -08 PST 2007-03-11 03 -07 PDT 1 2007-11-04 01 -08 PST 2008-03-09 03 -07 PDT 1 2008-11-02 01 -08 PST 2009-03-08 03 -07 PDT 1 2009-11-01 01 -08 PST 2010-03-14 03 -07 PDT 1 2010-11-07 01 -08 PST 2011-03-13 03 -07 PDT 1 2011-11-06 01 -08 PST 2012-03-11 03 -07 PDT 1 2012-11-04 01 -08 PST 2013-03-10 03 -07 PDT 1 2013-11-03 01 -08 PST 2014-03-09 03 -07 PDT 1 2014-11-02 01 -08 PST 2015-03-08 03 -07 PDT 1 2015-11-01 01 -08 PST 2016-03-13 03 -07 PDT 1 2016-11-06 01 -08 PST 2017-03-12 03 -07 PDT 1 2017-11-05 01 -08 PST 2018-03-11 03 -07 PDT 1 2018-11-04 01 -08 PST 2019-03-10 03 -07 PDT 1 2019-11-03 01 -08 PST 2020-03-08 03 -07 PDT 1 2020-11-01 01 -08 PST 2021-03-14 03 -07 PDT 1 2021-11-07 01 -08 PST 2022-03-13 03 -07 PDT 1 2022-11-06 01 -08 PST 2023-03-12 03 -07 PDT 1 2023-11-05 01 -08 PST 2024-03-10 03 -07 PDT 1 2024-11-03 01 -08 PST 2025-03-09 03 -07 PDT 1 2025-11-02 01 -08 PST 2026-03-08 03 -07 PDT 1 2026-11-01 01 -08 PST 2027-03-14 03 -07 PDT 1 2027-11-07 01 -08 PST 2028-03-12 03 -07 PDT 1 2028-11-05 01 -08 PST 2029-03-11 03 -07 PDT 1 2029-11-04 01 -08 PST 2030-03-10 03 -07 PDT 1 2030-11-03 01 -08 PST 2031-03-09 03 -07 PDT 1 2031-11-02 01 -08 PST 2032-03-14 03 -07 PDT 1 2032-11-07 01 -08 PST 2033-03-13 03 -07 PDT 1 2033-11-06 01 -08 PST 2034-03-12 03 -07 PDT 1 2034-11-05 01 -08 PST 2035-03-11 03 -07 PDT 1 2035-11-04 01 -08 PST 2036-03-09 03 -07 PDT 1 2036-11-02 01 -08 PST 2037-03-08 03 -07 PDT 1 2037-11-01 01 -08 PST 2038-03-14 03 -07 PDT 1 2038-11-07 01 -08 PST 2039-03-13 03 -07 PDT 1 2039-11-06 01 -08 PST 2040-03-11 03 -07 PDT 1 2040-11-04 01 -08 PST 2041-03-10 03 -07 PDT 1 2041-11-03 01 -08 PST 2042-03-09 03 -07 PDT 1 2042-11-02 01 -08 PST 2043-03-08 03 -07 PDT 1 2043-11-01 01 -08 PST 2044-03-13 03 -07 PDT 1 2044-11-06 01 -08 PST 2045-03-12 03 -07 PDT 1 2045-11-05 01 -08 PST 2046-03-11 03 -07 PDT 1 2046-11-04 01 -08 PST 2047-03-10 03 -07 PDT 1 2047-11-03 01 -08 PST 2048-03-08 03 -07 PDT 1 2048-11-01 01 -08 PST 2049-03-14 03 -07 PDT 1 2049-11-07 01 -08 PST TZ="America/Maceio" - - -022252 LMT 1913-12-31 23:22:52 -03 1931-10-03 12 -02 1 1932-03-31 23 -03 1932-10-03 01 -02 1 1933-03-31 23 -03 1949-12-01 01 -02 1 1950-04-16 00 -03 1950-12-01 01 -02 1 1951-03-31 23 -03 1951-12-01 01 -02 1 1952-03-31 23 -03 1952-12-01 01 -02 1 1953-02-28 23 -03 1963-12-09 01 -02 1 1964-02-29 23 -03 1965-01-31 01 -02 1 1965-03-30 23 -03 1965-12-01 01 -02 1 1966-02-28 23 -03 1966-11-01 01 -02 1 1967-02-28 23 -03 1967-11-01 01 -02 1 1968-02-29 23 -03 1985-11-02 01 -02 1 1986-03-14 23 -03 1986-10-25 01 -02 1 1987-02-13 23 -03 1987-10-25 01 -02 1 1988-02-06 23 -03 1988-10-16 01 -02 1 1989-01-28 23 -03 1989-10-15 01 -02 1 1990-02-10 23 -03 1995-10-15 01 -02 1 1996-02-10 23 -03 1999-10-03 01 -02 1 2000-02-26 23 -03 2000-10-08 01 -02 1 2000-10-21 23 -03 2001-10-14 01 -02 1 2002-02-16 23 -03 TZ="America/Managua" - - -054508 LMT 1889-12-31 23:59:56 -054512 MMT 1934-06-22 23:45:12 -06 CST 1973-05-01 01 -05 EST 1975-02-15 23 -06 CST 1979-03-18 01 -05 CDT 1 1979-06-24 23 -06 CST 1980-03-16 01 -05 CDT 1 1980-06-22 23 -06 CST 1992-01-01 05 -05 EST 1992-09-23 23 -06 CST 1993-01-01 01 -05 EST 1996-12-31 23 -06 CST 2005-04-10 01 -05 CDT 1 2005-10-01 23 -06 CST 2006-04-30 03 -05 CDT 1 2006-10-01 00 -06 CST TZ="America/Manaus" - - -040004 LMT 1914-01-01 00:00:04 -04 1931-10-03 12 -03 1 1932-03-31 23 -04 1932-10-03 01 -03 1 1933-03-31 23 -04 1949-12-01 01 -03 1 1950-04-16 00 -04 1950-12-01 01 -03 1 1951-03-31 23 -04 1951-12-01 01 -03 1 1952-03-31 23 -04 1952-12-01 01 -03 1 1953-02-28 23 -04 1963-12-09 01 -03 1 1964-02-29 23 -04 1965-01-31 01 -03 1 1965-03-30 23 -04 1965-12-01 01 -03 1 1966-02-28 23 -04 1966-11-01 01 -03 1 1967-02-28 23 -04 1967-11-01 01 -03 1 1968-02-29 23 -04 1985-11-02 01 -03 1 1986-03-14 23 -04 1986-10-25 01 -03 1 1987-02-13 23 -04 1987-10-25 01 -03 1 1988-02-06 23 -04 1993-10-17 01 -03 1 1994-02-19 23 -04 TZ="America/Martinique" - - -040420 LMT 1890-01-01 00 -040420 FFMT 1911-05-01 00:04:20 -04 AST 1980-04-06 01 -03 ADT 1 1980-09-27 23 -04 AST TZ="America/Matamoros" - - -0640 LMT 1922-01-01 00 -06 CST 1988-04-03 03 -05 CDT 1 1988-10-30 01 -06 CST 1996-04-07 03 -05 CDT 1 1996-10-27 01 -06 CST 1997-04-06 03 -05 CDT 1 1997-10-26 01 -06 CST 1998-04-05 03 -05 CDT 1 1998-10-25 01 -06 CST 1999-04-04 03 -05 CDT 1 1999-10-31 01 -06 CST 2000-04-02 03 -05 CDT 1 2000-10-29 01 -06 CST 2001-05-06 03 -05 CDT 1 2001-09-30 01 -06 CST 2002-04-07 03 -05 CDT 1 2002-10-27 01 -06 CST 2003-04-06 03 -05 CDT 1 2003-10-26 01 -06 CST 2004-04-04 03 -05 CDT 1 2004-10-31 01 -06 CST 2005-04-03 03 -05 CDT 1 2005-10-30 01 -06 CST 2006-04-02 03 -05 CDT 1 2006-10-29 01 -06 CST 2007-04-01 03 -05 CDT 1 2007-10-28 01 -06 CST 2008-04-06 03 -05 CDT 1 2008-10-26 01 -06 CST 2009-04-05 03 -05 CDT 1 2009-10-25 01 -06 CST 2010-03-14 03 -05 CDT 1 2010-11-07 01 -06 CST 2011-03-13 03 -05 CDT 1 2011-11-06 01 -06 CST 2012-03-11 03 -05 CDT 1 2012-11-04 01 -06 CST 2013-03-10 03 -05 CDT 1 2013-11-03 01 -06 CST 2014-03-09 03 -05 CDT 1 2014-11-02 01 -06 CST 2015-03-08 03 -05 CDT 1 2015-11-01 01 -06 CST 2016-03-13 03 -05 CDT 1 2016-11-06 01 -06 CST 2017-03-12 03 -05 CDT 1 2017-11-05 01 -06 CST 2018-03-11 03 -05 CDT 1 2018-11-04 01 -06 CST 2019-03-10 03 -05 CDT 1 2019-11-03 01 -06 CST 2020-03-08 03 -05 CDT 1 2020-11-01 01 -06 CST 2021-03-14 03 -05 CDT 1 2021-11-07 01 -06 CST 2022-03-13 03 -05 CDT 1 2022-11-06 01 -06 CST 2023-03-12 03 -05 CDT 1 2023-11-05 01 -06 CST 2024-03-10 03 -05 CDT 1 2024-11-03 01 -06 CST 2025-03-09 03 -05 CDT 1 2025-11-02 01 -06 CST 2026-03-08 03 -05 CDT 1 2026-11-01 01 -06 CST 2027-03-14 03 -05 CDT 1 2027-11-07 01 -06 CST 2028-03-12 03 -05 CDT 1 2028-11-05 01 -06 CST 2029-03-11 03 -05 CDT 1 2029-11-04 01 -06 CST 2030-03-10 03 -05 CDT 1 2030-11-03 01 -06 CST 2031-03-09 03 -05 CDT 1 2031-11-02 01 -06 CST 2032-03-14 03 -05 CDT 1 2032-11-07 01 -06 CST 2033-03-13 03 -05 CDT 1 2033-11-06 01 -06 CST 2034-03-12 03 -05 CDT 1 2034-11-05 01 -06 CST 2035-03-11 03 -05 CDT 1 2035-11-04 01 -06 CST 2036-03-09 03 -05 CDT 1 2036-11-02 01 -06 CST 2037-03-08 03 -05 CDT 1 2037-11-01 01 -06 CST 2038-03-14 03 -05 CDT 1 2038-11-07 01 -06 CST 2039-03-13 03 -05 CDT 1 2039-11-06 01 -06 CST 2040-03-11 03 -05 CDT 1 2040-11-04 01 -06 CST 2041-03-10 03 -05 CDT 1 2041-11-03 01 -06 CST 2042-03-09 03 -05 CDT 1 2042-11-02 01 -06 CST 2043-03-08 03 -05 CDT 1 2043-11-01 01 -06 CST 2044-03-13 03 -05 CDT 1 2044-11-06 01 -06 CST 2045-03-12 03 -05 CDT 1 2045-11-05 01 -06 CST 2046-03-11 03 -05 CDT 1 2046-11-04 01 -06 CST 2047-03-10 03 -05 CDT 1 2047-11-03 01 -06 CST 2048-03-08 03 -05 CDT 1 2048-11-01 01 -06 CST 2049-03-14 03 -05 CDT 1 2049-11-07 01 -06 CST TZ="America/Mazatlan" - - -070540 LMT 1922-01-01 00 -07 MST 1927-06-11 00 -06 CST 1930-11-14 23 -07 MST 1931-05-02 00 -06 CST 1931-09-30 23 -07 MST 1932-04-01 01 -06 CST 1942-04-23 23 -07 MST 1949-01-13 23 -08 PST 1970-01-01 01 -07 MST 1996-04-07 03 -06 MDT 1 1996-10-27 01 -07 MST 1997-04-06 03 -06 MDT 1 1997-10-26 01 -07 MST 1998-04-05 03 -06 MDT 1 1998-10-25 01 -07 MST 1999-04-04 03 -06 MDT 1 1999-10-31 01 -07 MST 2000-04-02 03 -06 MDT 1 2000-10-29 01 -07 MST 2001-05-06 03 -06 MDT 1 2001-09-30 01 -07 MST 2002-04-07 03 -06 MDT 1 2002-10-27 01 -07 MST 2003-04-06 03 -06 MDT 1 2003-10-26 01 -07 MST 2004-04-04 03 -06 MDT 1 2004-10-31 01 -07 MST 2005-04-03 03 -06 MDT 1 2005-10-30 01 -07 MST 2006-04-02 03 -06 MDT 1 2006-10-29 01 -07 MST 2007-04-01 03 -06 MDT 1 2007-10-28 01 -07 MST 2008-04-06 03 -06 MDT 1 2008-10-26 01 -07 MST 2009-04-05 03 -06 MDT 1 2009-10-25 01 -07 MST 2010-04-04 03 -06 MDT 1 2010-10-31 01 -07 MST 2011-04-03 03 -06 MDT 1 2011-10-30 01 -07 MST 2012-04-01 03 -06 MDT 1 2012-10-28 01 -07 MST 2013-04-07 03 -06 MDT 1 2013-10-27 01 -07 MST 2014-04-06 03 -06 MDT 1 2014-10-26 01 -07 MST 2015-04-05 03 -06 MDT 1 2015-10-25 01 -07 MST 2016-04-03 03 -06 MDT 1 2016-10-30 01 -07 MST 2017-04-02 03 -06 MDT 1 2017-10-29 01 -07 MST 2018-04-01 03 -06 MDT 1 2018-10-28 01 -07 MST 2019-04-07 03 -06 MDT 1 2019-10-27 01 -07 MST 2020-04-05 03 -06 MDT 1 2020-10-25 01 -07 MST 2021-04-04 03 -06 MDT 1 2021-10-31 01 -07 MST 2022-04-03 03 -06 MDT 1 2022-10-30 01 -07 MST 2023-04-02 03 -06 MDT 1 2023-10-29 01 -07 MST 2024-04-07 03 -06 MDT 1 2024-10-27 01 -07 MST 2025-04-06 03 -06 MDT 1 2025-10-26 01 -07 MST 2026-04-05 03 -06 MDT 1 2026-10-25 01 -07 MST 2027-04-04 03 -06 MDT 1 2027-10-31 01 -07 MST 2028-04-02 03 -06 MDT 1 2028-10-29 01 -07 MST 2029-04-01 03 -06 MDT 1 2029-10-28 01 -07 MST 2030-04-07 03 -06 MDT 1 2030-10-27 01 -07 MST 2031-04-06 03 -06 MDT 1 2031-10-26 01 -07 MST 2032-04-04 03 -06 MDT 1 2032-10-31 01 -07 MST 2033-04-03 03 -06 MDT 1 2033-10-30 01 -07 MST 2034-04-02 03 -06 MDT 1 2034-10-29 01 -07 MST 2035-04-01 03 -06 MDT 1 2035-10-28 01 -07 MST 2036-04-06 03 -06 MDT 1 2036-10-26 01 -07 MST 2037-04-05 03 -06 MDT 1 2037-10-25 01 -07 MST 2038-04-04 03 -06 MDT 1 2038-10-31 01 -07 MST 2039-04-03 03 -06 MDT 1 2039-10-30 01 -07 MST 2040-04-01 03 -06 MDT 1 2040-10-28 01 -07 MST 2041-04-07 03 -06 MDT 1 2041-10-27 01 -07 MST 2042-04-06 03 -06 MDT 1 2042-10-26 01 -07 MST 2043-04-05 03 -06 MDT 1 2043-10-25 01 -07 MST 2044-04-03 03 -06 MDT 1 2044-10-30 01 -07 MST 2045-04-02 03 -06 MDT 1 2045-10-29 01 -07 MST 2046-04-01 03 -06 MDT 1 2046-10-28 01 -07 MST 2047-04-07 03 -06 MDT 1 2047-10-27 01 -07 MST 2048-04-05 03 -06 MDT 1 2048-10-25 01 -07 MST 2049-04-04 03 -06 MDT 1 2049-10-31 01 -07 MST TZ="America/Menominee" - - -055027 LMT 1885-09-18 11:50:27 -06 CST 1918-03-31 03 -05 CDT 1 1918-10-27 01 -06 CST 1919-03-30 03 -05 CDT 1 1919-10-26 01 -06 CST 1942-02-09 03 -05 CWT 1 1945-08-14 18 -05 CPT 1 1945-09-30 01 -06 CST 1946-04-28 03 -05 CDT 1 1946-09-29 01 -06 CST 1966-04-24 03 -05 CDT 1 1966-10-30 01 -06 CST 1969-04-27 03 -05 EST 1973-04-29 02 -05 CDT 1 1973-10-28 01 -06 CST 1974-01-06 03 -05 CDT 1 1974-10-27 01 -06 CST 1975-02-23 03 -05 CDT 1 1975-10-26 01 -06 CST 1976-04-25 03 -05 CDT 1 1976-10-31 01 -06 CST 1977-04-24 03 -05 CDT 1 1977-10-30 01 -06 CST 1978-04-30 03 -05 CDT 1 1978-10-29 01 -06 CST 1979-04-29 03 -05 CDT 1 1979-10-28 01 -06 CST 1980-04-27 03 -05 CDT 1 1980-10-26 01 -06 CST 1981-04-26 03 -05 CDT 1 1981-10-25 01 -06 CST 1982-04-25 03 -05 CDT 1 1982-10-31 01 -06 CST 1983-04-24 03 -05 CDT 1 1983-10-30 01 -06 CST 1984-04-29 03 -05 CDT 1 1984-10-28 01 -06 CST 1985-04-28 03 -05 CDT 1 1985-10-27 01 -06 CST 1986-04-27 03 -05 CDT 1 1986-10-26 01 -06 CST 1987-04-05 03 -05 CDT 1 1987-10-25 01 -06 CST 1988-04-03 03 -05 CDT 1 1988-10-30 01 -06 CST 1989-04-02 03 -05 CDT 1 1989-10-29 01 -06 CST 1990-04-01 03 -05 CDT 1 1990-10-28 01 -06 CST 1991-04-07 03 -05 CDT 1 1991-10-27 01 -06 CST 1992-04-05 03 -05 CDT 1 1992-10-25 01 -06 CST 1993-04-04 03 -05 CDT 1 1993-10-31 01 -06 CST 1994-04-03 03 -05 CDT 1 1994-10-30 01 -06 CST 1995-04-02 03 -05 CDT 1 1995-10-29 01 -06 CST 1996-04-07 03 -05 CDT 1 1996-10-27 01 -06 CST 1997-04-06 03 -05 CDT 1 1997-10-26 01 -06 CST 1998-04-05 03 -05 CDT 1 1998-10-25 01 -06 CST 1999-04-04 03 -05 CDT 1 1999-10-31 01 -06 CST 2000-04-02 03 -05 CDT 1 2000-10-29 01 -06 CST 2001-04-01 03 -05 CDT 1 2001-10-28 01 -06 CST 2002-04-07 03 -05 CDT 1 2002-10-27 01 -06 CST 2003-04-06 03 -05 CDT 1 2003-10-26 01 -06 CST 2004-04-04 03 -05 CDT 1 2004-10-31 01 -06 CST 2005-04-03 03 -05 CDT 1 2005-10-30 01 -06 CST 2006-04-02 03 -05 CDT 1 2006-10-29 01 -06 CST 2007-03-11 03 -05 CDT 1 2007-11-04 01 -06 CST 2008-03-09 03 -05 CDT 1 2008-11-02 01 -06 CST 2009-03-08 03 -05 CDT 1 2009-11-01 01 -06 CST 2010-03-14 03 -05 CDT 1 2010-11-07 01 -06 CST 2011-03-13 03 -05 CDT 1 2011-11-06 01 -06 CST 2012-03-11 03 -05 CDT 1 2012-11-04 01 -06 CST 2013-03-10 03 -05 CDT 1 2013-11-03 01 -06 CST 2014-03-09 03 -05 CDT 1 2014-11-02 01 -06 CST 2015-03-08 03 -05 CDT 1 2015-11-01 01 -06 CST 2016-03-13 03 -05 CDT 1 2016-11-06 01 -06 CST 2017-03-12 03 -05 CDT 1 2017-11-05 01 -06 CST 2018-03-11 03 -05 CDT 1 2018-11-04 01 -06 CST 2019-03-10 03 -05 CDT 1 2019-11-03 01 -06 CST 2020-03-08 03 -05 CDT 1 2020-11-01 01 -06 CST 2021-03-14 03 -05 CDT 1 2021-11-07 01 -06 CST 2022-03-13 03 -05 CDT 1 2022-11-06 01 -06 CST 2023-03-12 03 -05 CDT 1 2023-11-05 01 -06 CST 2024-03-10 03 -05 CDT 1 2024-11-03 01 -06 CST 2025-03-09 03 -05 CDT 1 2025-11-02 01 -06 CST 2026-03-08 03 -05 CDT 1 2026-11-01 01 -06 CST 2027-03-14 03 -05 CDT 1 2027-11-07 01 -06 CST 2028-03-12 03 -05 CDT 1 2028-11-05 01 -06 CST 2029-03-11 03 -05 CDT 1 2029-11-04 01 -06 CST 2030-03-10 03 -05 CDT 1 2030-11-03 01 -06 CST 2031-03-09 03 -05 CDT 1 2031-11-02 01 -06 CST 2032-03-14 03 -05 CDT 1 2032-11-07 01 -06 CST 2033-03-13 03 -05 CDT 1 2033-11-06 01 -06 CST 2034-03-12 03 -05 CDT 1 2034-11-05 01 -06 CST 2035-03-11 03 -05 CDT 1 2035-11-04 01 -06 CST 2036-03-09 03 -05 CDT 1 2036-11-02 01 -06 CST 2037-03-08 03 -05 CDT 1 2037-11-01 01 -06 CST 2038-03-14 03 -05 CDT 1 2038-11-07 01 -06 CST 2039-03-13 03 -05 CDT 1 2039-11-06 01 -06 CST 2040-03-11 03 -05 CDT 1 2040-11-04 01 -06 CST 2041-03-10 03 -05 CDT 1 2041-11-03 01 -06 CST 2042-03-09 03 -05 CDT 1 2042-11-02 01 -06 CST 2043-03-08 03 -05 CDT 1 2043-11-01 01 -06 CST 2044-03-13 03 -05 CDT 1 2044-11-06 01 -06 CST 2045-03-12 03 -05 CDT 1 2045-11-05 01 -06 CST 2046-03-11 03 -05 CDT 1 2046-11-04 01 -06 CST 2047-03-10 03 -05 CDT 1 2047-11-03 01 -06 CST 2048-03-08 03 -05 CDT 1 2048-11-01 01 -06 CST 2049-03-14 03 -05 CDT 1 2049-11-07 01 -06 CST TZ="America/Merida" - - -055828 LMT 1922-01-01 00 -06 CST 1981-12-23 01 -05 EST 1982-12-01 23 -06 CST 1996-04-07 03 -05 CDT 1 1996-10-27 01 -06 CST 1997-04-06 03 -05 CDT 1 1997-10-26 01 -06 CST 1998-04-05 03 -05 CDT 1 1998-10-25 01 -06 CST 1999-04-04 03 -05 CDT 1 1999-10-31 01 -06 CST 2000-04-02 03 -05 CDT 1 2000-10-29 01 -06 CST 2001-05-06 03 -05 CDT 1 2001-09-30 01 -06 CST 2002-04-07 03 -05 CDT 1 2002-10-27 01 -06 CST 2003-04-06 03 -05 CDT 1 2003-10-26 01 -06 CST 2004-04-04 03 -05 CDT 1 2004-10-31 01 -06 CST 2005-04-03 03 -05 CDT 1 2005-10-30 01 -06 CST 2006-04-02 03 -05 CDT 1 2006-10-29 01 -06 CST 2007-04-01 03 -05 CDT 1 2007-10-28 01 -06 CST 2008-04-06 03 -05 CDT 1 2008-10-26 01 -06 CST 2009-04-05 03 -05 CDT 1 2009-10-25 01 -06 CST 2010-04-04 03 -05 CDT 1 2010-10-31 01 -06 CST 2011-04-03 03 -05 CDT 1 2011-10-30 01 -06 CST 2012-04-01 03 -05 CDT 1 2012-10-28 01 -06 CST 2013-04-07 03 -05 CDT 1 2013-10-27 01 -06 CST 2014-04-06 03 -05 CDT 1 2014-10-26 01 -06 CST 2015-04-05 03 -05 CDT 1 2015-10-25 01 -06 CST 2016-04-03 03 -05 CDT 1 2016-10-30 01 -06 CST 2017-04-02 03 -05 CDT 1 2017-10-29 01 -06 CST 2018-04-01 03 -05 CDT 1 2018-10-28 01 -06 CST 2019-04-07 03 -05 CDT 1 2019-10-27 01 -06 CST 2020-04-05 03 -05 CDT 1 2020-10-25 01 -06 CST 2021-04-04 03 -05 CDT 1 2021-10-31 01 -06 CST 2022-04-03 03 -05 CDT 1 2022-10-30 01 -06 CST 2023-04-02 03 -05 CDT 1 2023-10-29 01 -06 CST 2024-04-07 03 -05 CDT 1 2024-10-27 01 -06 CST 2025-04-06 03 -05 CDT 1 2025-10-26 01 -06 CST 2026-04-05 03 -05 CDT 1 2026-10-25 01 -06 CST 2027-04-04 03 -05 CDT 1 2027-10-31 01 -06 CST 2028-04-02 03 -05 CDT 1 2028-10-29 01 -06 CST 2029-04-01 03 -05 CDT 1 2029-10-28 01 -06 CST 2030-04-07 03 -05 CDT 1 2030-10-27 01 -06 CST 2031-04-06 03 -05 CDT 1 2031-10-26 01 -06 CST 2032-04-04 03 -05 CDT 1 2032-10-31 01 -06 CST 2033-04-03 03 -05 CDT 1 2033-10-30 01 -06 CST 2034-04-02 03 -05 CDT 1 2034-10-29 01 -06 CST 2035-04-01 03 -05 CDT 1 2035-10-28 01 -06 CST 2036-04-06 03 -05 CDT 1 2036-10-26 01 -06 CST 2037-04-05 03 -05 CDT 1 2037-10-25 01 -06 CST 2038-04-04 03 -05 CDT 1 2038-10-31 01 -06 CST 2039-04-03 03 -05 CDT 1 2039-10-30 01 -06 CST 2040-04-01 03 -05 CDT 1 2040-10-28 01 -06 CST 2041-04-07 03 -05 CDT 1 2041-10-27 01 -06 CST 2042-04-06 03 -05 CDT 1 2042-10-26 01 -06 CST 2043-04-05 03 -05 CDT 1 2043-10-25 01 -06 CST 2044-04-03 03 -05 CDT 1 2044-10-30 01 -06 CST 2045-04-02 03 -05 CDT 1 2045-10-29 01 -06 CST 2046-04-01 03 -05 CDT 1 2046-10-28 01 -06 CST 2047-04-07 03 -05 CDT 1 2047-10-27 01 -06 CST 2048-04-05 03 -05 CDT 1 2048-10-25 01 -06 CST 2049-04-04 03 -05 CDT 1 2049-10-31 01 -06 CST TZ="America/Metlakatla" - - +151342 LMT 1867-10-18 15:44:55 -084618 LMT 1900-08-20 12:46:18 -08 PST 1942-02-09 03 -07 PWT 1 1945-08-14 16 -07 PPT 1 1945-09-30 01 -08 PST 1969-04-27 03 -07 PDT 1 1969-10-26 01 -08 PST 1970-04-26 03 -07 PDT 1 1970-10-25 01 -08 PST 1971-04-25 03 -07 PDT 1 1971-10-31 01 -08 PST 1972-04-30 03 -07 PDT 1 1972-10-29 01 -08 PST 1973-04-29 03 -07 PDT 1 1973-10-28 01 -08 PST 1974-01-06 03 -07 PDT 1 1974-10-27 01 -08 PST 1975-02-23 03 -07 PDT 1 1975-10-26 01 -08 PST 1976-04-25 03 -07 PDT 1 1976-10-31 01 -08 PST 1977-04-24 03 -07 PDT 1 1977-10-30 01 -08 PST 1978-04-30 03 -07 PDT 1 1978-10-29 01 -08 PST 1979-04-29 03 -07 PDT 1 1979-10-28 01 -08 PST 1980-04-27 03 -07 PDT 1 1980-10-26 01 -08 PST 1981-04-26 03 -07 PDT 1 1981-10-25 01 -08 PST 1982-04-25 03 -07 PDT 1 1982-10-31 01 -08 PST 1983-04-24 03 -07 PDT 1 1983-10-30 01 -08 PST 2015-11-01 01 -09 AKST 2016-03-13 03 -08 AKDT 1 2016-11-06 01 -09 AKST 2017-03-12 03 -08 AKDT 1 2017-11-05 01 -09 AKST 2018-03-11 03 -08 AKDT 1 2018-11-04 02 -08 PST 2019-01-20 01 -09 AKST 2019-03-10 03 -08 AKDT 1 2019-11-03 01 -09 AKST 2020-03-08 03 -08 AKDT 1 2020-11-01 01 -09 AKST 2021-03-14 03 -08 AKDT 1 2021-11-07 01 -09 AKST 2022-03-13 03 -08 AKDT 1 2022-11-06 01 -09 AKST 2023-03-12 03 -08 AKDT 1 2023-11-05 01 -09 AKST 2024-03-10 03 -08 AKDT 1 2024-11-03 01 -09 AKST 2025-03-09 03 -08 AKDT 1 2025-11-02 01 -09 AKST 2026-03-08 03 -08 AKDT 1 2026-11-01 01 -09 AKST 2027-03-14 03 -08 AKDT 1 2027-11-07 01 -09 AKST 2028-03-12 03 -08 AKDT 1 2028-11-05 01 -09 AKST 2029-03-11 03 -08 AKDT 1 2029-11-04 01 -09 AKST 2030-03-10 03 -08 AKDT 1 2030-11-03 01 -09 AKST 2031-03-09 03 -08 AKDT 1 2031-11-02 01 -09 AKST 2032-03-14 03 -08 AKDT 1 2032-11-07 01 -09 AKST 2033-03-13 03 -08 AKDT 1 2033-11-06 01 -09 AKST 2034-03-12 03 -08 AKDT 1 2034-11-05 01 -09 AKST 2035-03-11 03 -08 AKDT 1 2035-11-04 01 -09 AKST 2036-03-09 03 -08 AKDT 1 2036-11-02 01 -09 AKST 2037-03-08 03 -08 AKDT 1 2037-11-01 01 -09 AKST 2038-03-14 03 -08 AKDT 1 2038-11-07 01 -09 AKST 2039-03-13 03 -08 AKDT 1 2039-11-06 01 -09 AKST 2040-03-11 03 -08 AKDT 1 2040-11-04 01 -09 AKST 2041-03-10 03 -08 AKDT 1 2041-11-03 01 -09 AKST 2042-03-09 03 -08 AKDT 1 2042-11-02 01 -09 AKST 2043-03-08 03 -08 AKDT 1 2043-11-01 01 -09 AKST 2044-03-13 03 -08 AKDT 1 2044-11-06 01 -09 AKST 2045-03-12 03 -08 AKDT 1 2045-11-05 01 -09 AKST 2046-03-11 03 -08 AKDT 1 2046-11-04 01 -09 AKST 2047-03-10 03 -08 AKDT 1 2047-11-03 01 -09 AKST 2048-03-08 03 -08 AKDT 1 2048-11-01 01 -09 AKST 2049-03-14 03 -08 AKDT 1 2049-11-07 01 -09 AKST TZ="America/Mexico_City" - - -063636 LMT 1922-01-01 00 -07 MST 1927-06-11 00 -06 CST 1930-11-14 23 -07 MST 1931-05-02 00 -06 CST 1931-09-30 23 -07 MST 1932-04-01 01 -06 CST 1939-02-05 01 -05 CDT 1 1939-06-24 23 -06 CST 1940-12-09 01 -05 CDT 1 1941-03-31 23 -06 CST 1943-12-16 01 -05 CWT 1 1944-04-30 23 -06 CST 1950-02-12 01 -05 CDT 1 1950-07-29 23 -06 CST 1996-04-07 03 -05 CDT 1 1996-10-27 01 -06 CST 1997-04-06 03 -05 CDT 1 1997-10-26 01 -06 CST 1998-04-05 03 -05 CDT 1 1998-10-25 01 -06 CST 1999-04-04 03 -05 CDT 1 1999-10-31 01 -06 CST 2000-04-02 03 -05 CDT 1 2000-10-29 01 -06 CST 2001-05-06 03 -05 CDT 1 2001-09-30 01 -06 CST 2002-04-07 03 -05 CDT 1 2002-10-27 01 -06 CST 2003-04-06 03 -05 CDT 1 2003-10-26 01 -06 CST 2004-04-04 03 -05 CDT 1 2004-10-31 01 -06 CST 2005-04-03 03 -05 CDT 1 2005-10-30 01 -06 CST 2006-04-02 03 -05 CDT 1 2006-10-29 01 -06 CST 2007-04-01 03 -05 CDT 1 2007-10-28 01 -06 CST 2008-04-06 03 -05 CDT 1 2008-10-26 01 -06 CST 2009-04-05 03 -05 CDT 1 2009-10-25 01 -06 CST 2010-04-04 03 -05 CDT 1 2010-10-31 01 -06 CST 2011-04-03 03 -05 CDT 1 2011-10-30 01 -06 CST 2012-04-01 03 -05 CDT 1 2012-10-28 01 -06 CST 2013-04-07 03 -05 CDT 1 2013-10-27 01 -06 CST 2014-04-06 03 -05 CDT 1 2014-10-26 01 -06 CST 2015-04-05 03 -05 CDT 1 2015-10-25 01 -06 CST 2016-04-03 03 -05 CDT 1 2016-10-30 01 -06 CST 2017-04-02 03 -05 CDT 1 2017-10-29 01 -06 CST 2018-04-01 03 -05 CDT 1 2018-10-28 01 -06 CST 2019-04-07 03 -05 CDT 1 2019-10-27 01 -06 CST 2020-04-05 03 -05 CDT 1 2020-10-25 01 -06 CST 2021-04-04 03 -05 CDT 1 2021-10-31 01 -06 CST 2022-04-03 03 -05 CDT 1 2022-10-30 01 -06 CST 2023-04-02 03 -05 CDT 1 2023-10-29 01 -06 CST 2024-04-07 03 -05 CDT 1 2024-10-27 01 -06 CST 2025-04-06 03 -05 CDT 1 2025-10-26 01 -06 CST 2026-04-05 03 -05 CDT 1 2026-10-25 01 -06 CST 2027-04-04 03 -05 CDT 1 2027-10-31 01 -06 CST 2028-04-02 03 -05 CDT 1 2028-10-29 01 -06 CST 2029-04-01 03 -05 CDT 1 2029-10-28 01 -06 CST 2030-04-07 03 -05 CDT 1 2030-10-27 01 -06 CST 2031-04-06 03 -05 CDT 1 2031-10-26 01 -06 CST 2032-04-04 03 -05 CDT 1 2032-10-31 01 -06 CST 2033-04-03 03 -05 CDT 1 2033-10-30 01 -06 CST 2034-04-02 03 -05 CDT 1 2034-10-29 01 -06 CST 2035-04-01 03 -05 CDT 1 2035-10-28 01 -06 CST 2036-04-06 03 -05 CDT 1 2036-10-26 01 -06 CST 2037-04-05 03 -05 CDT 1 2037-10-25 01 -06 CST 2038-04-04 03 -05 CDT 1 2038-10-31 01 -06 CST 2039-04-03 03 -05 CDT 1 2039-10-30 01 -06 CST 2040-04-01 03 -05 CDT 1 2040-10-28 01 -06 CST 2041-04-07 03 -05 CDT 1 2041-10-27 01 -06 CST 2042-04-06 03 -05 CDT 1 2042-10-26 01 -06 CST 2043-04-05 03 -05 CDT 1 2043-10-25 01 -06 CST 2044-04-03 03 -05 CDT 1 2044-10-30 01 -06 CST 2045-04-02 03 -05 CDT 1 2045-10-29 01 -06 CST 2046-04-01 03 -05 CDT 1 2046-10-28 01 -06 CST 2047-04-07 03 -05 CDT 1 2047-10-27 01 -06 CST 2048-04-05 03 -05 CDT 1 2048-10-25 01 -06 CST 2049-04-04 03 -05 CDT 1 2049-10-31 01 -06 CST TZ="America/Miquelon" - - -034440 LMT 1911-05-14 23:44:40 -04 AST 1980-05-01 01 -03 1987-04-05 03 -02 1 1987-10-25 01 -03 1988-04-03 03 -02 1 1988-10-30 01 -03 1989-04-02 03 -02 1 1989-10-29 01 -03 1990-04-01 03 -02 1 1990-10-28 01 -03 1991-04-07 03 -02 1 1991-10-27 01 -03 1992-04-05 03 -02 1 1992-10-25 01 -03 1993-04-04 03 -02 1 1993-10-31 01 -03 1994-04-03 03 -02 1 1994-10-30 01 -03 1995-04-02 03 -02 1 1995-10-29 01 -03 1996-04-07 03 -02 1 1996-10-27 01 -03 1997-04-06 03 -02 1 1997-10-26 01 -03 1998-04-05 03 -02 1 1998-10-25 01 -03 1999-04-04 03 -02 1 1999-10-31 01 -03 2000-04-02 03 -02 1 2000-10-29 01 -03 2001-04-01 03 -02 1 2001-10-28 01 -03 2002-04-07 03 -02 1 2002-10-27 01 -03 2003-04-06 03 -02 1 2003-10-26 01 -03 2004-04-04 03 -02 1 2004-10-31 01 -03 2005-04-03 03 -02 1 2005-10-30 01 -03 2006-04-02 03 -02 1 2006-10-29 01 -03 2007-03-11 03 -02 1 2007-11-04 01 -03 2008-03-09 03 -02 1 2008-11-02 01 -03 2009-03-08 03 -02 1 2009-11-01 01 -03 2010-03-14 03 -02 1 2010-11-07 01 -03 2011-03-13 03 -02 1 2011-11-06 01 -03 2012-03-11 03 -02 1 2012-11-04 01 -03 2013-03-10 03 -02 1 2013-11-03 01 -03 2014-03-09 03 -02 1 2014-11-02 01 -03 2015-03-08 03 -02 1 2015-11-01 01 -03 2016-03-13 03 -02 1 2016-11-06 01 -03 2017-03-12 03 -02 1 2017-11-05 01 -03 2018-03-11 03 -02 1 2018-11-04 01 -03 2019-03-10 03 -02 1 2019-11-03 01 -03 2020-03-08 03 -02 1 2020-11-01 01 -03 2021-03-14 03 -02 1 2021-11-07 01 -03 2022-03-13 03 -02 1 2022-11-06 01 -03 2023-03-12 03 -02 1 2023-11-05 01 -03 2024-03-10 03 -02 1 2024-11-03 01 -03 2025-03-09 03 -02 1 2025-11-02 01 -03 2026-03-08 03 -02 1 2026-11-01 01 -03 2027-03-14 03 -02 1 2027-11-07 01 -03 2028-03-12 03 -02 1 2028-11-05 01 -03 2029-03-11 03 -02 1 2029-11-04 01 -03 2030-03-10 03 -02 1 2030-11-03 01 -03 2031-03-09 03 -02 1 2031-11-02 01 -03 2032-03-14 03 -02 1 2032-11-07 01 -03 2033-03-13 03 -02 1 2033-11-06 01 -03 2034-03-12 03 -02 1 2034-11-05 01 -03 2035-03-11 03 -02 1 2035-11-04 01 -03 2036-03-09 03 -02 1 2036-11-02 01 -03 2037-03-08 03 -02 1 2037-11-01 01 -03 2038-03-14 03 -02 1 2038-11-07 01 -03 2039-03-13 03 -02 1 2039-11-06 01 -03 2040-03-11 03 -02 1 2040-11-04 01 -03 2041-03-10 03 -02 1 2041-11-03 01 -03 2042-03-09 03 -02 1 2042-11-02 01 -03 2043-03-08 03 -02 1 2043-11-01 01 -03 2044-03-13 03 -02 1 2044-11-06 01 -03 2045-03-12 03 -02 1 2045-11-05 01 -03 2046-03-11 03 -02 1 2046-11-04 01 -03 2047-03-10 03 -02 1 2047-11-03 01 -03 2048-03-08 03 -02 1 2048-11-01 01 -03 2049-03-14 03 -02 1 2049-11-07 01 -03 TZ="America/Moncton" - - -041908 LMT 1883-12-08 23:19:08 -05 EST 1902-06-15 01 -04 AST 1918-04-14 03 -03 ADT 1 1918-10-27 01 -04 AST 1933-06-11 02 -03 ADT 1 1933-09-10 00 -04 AST 1934-06-10 02 -03 ADT 1 1934-09-09 00 -04 AST 1935-06-09 02 -03 ADT 1 1935-09-08 00 -04 AST 1936-06-07 02 -03 ADT 1 1936-09-06 00 -04 AST 1937-06-06 02 -03 ADT 1 1937-09-05 00 -04 AST 1938-06-05 02 -03 ADT 1 1938-09-04 00 -04 AST 1939-05-27 02 -03 ADT 1 1939-09-23 00 -04 AST 1940-05-19 02 -03 ADT 1 1940-09-21 00 -04 AST 1941-05-04 02 -03 ADT 1 1941-09-27 00 -04 AST 1942-02-09 03 -03 AWT 1 1945-08-14 20 -03 APT 1 1945-09-30 01 -04 AST 1946-04-28 03 -03 ADT 1 1946-09-29 01 -04 AST 1947-04-27 03 -03 ADT 1 1947-09-28 01 -04 AST 1948-04-25 03 -03 ADT 1 1948-09-26 01 -04 AST 1949-04-24 03 -03 ADT 1 1949-09-25 01 -04 AST 1950-04-30 03 -03 ADT 1 1950-09-24 01 -04 AST 1951-04-29 03 -03 ADT 1 1951-09-30 01 -04 AST 1952-04-27 03 -03 ADT 1 1952-09-28 01 -04 AST 1953-04-26 03 -03 ADT 1 1953-09-27 01 -04 AST 1954-04-25 03 -03 ADT 1 1954-09-26 01 -04 AST 1955-04-24 03 -03 ADT 1 1955-09-25 01 -04 AST 1956-04-29 03 -03 ADT 1 1956-09-30 01 -04 AST 1957-04-28 03 -03 ADT 1 1957-10-27 01 -04 AST 1958-04-27 03 -03 ADT 1 1958-10-26 01 -04 AST 1959-04-26 03 -03 ADT 1 1959-10-25 01 -04 AST 1960-04-24 03 -03 ADT 1 1960-10-30 01 -04 AST 1961-04-30 03 -03 ADT 1 1961-10-29 01 -04 AST 1962-04-29 03 -03 ADT 1 1962-10-28 01 -04 AST 1963-04-28 03 -03 ADT 1 1963-10-27 01 -04 AST 1964-04-26 03 -03 ADT 1 1964-10-25 01 -04 AST 1965-04-25 03 -03 ADT 1 1965-10-31 01 -04 AST 1966-04-24 03 -03 ADT 1 1966-10-30 01 -04 AST 1967-04-30 03 -03 ADT 1 1967-10-29 01 -04 AST 1968-04-28 03 -03 ADT 1 1968-10-27 01 -04 AST 1969-04-27 03 -03 ADT 1 1969-10-26 01 -04 AST 1970-04-26 03 -03 ADT 1 1970-10-25 01 -04 AST 1971-04-25 03 -03 ADT 1 1971-10-31 01 -04 AST 1972-04-30 03 -03 ADT 1 1972-10-29 01 -04 AST 1974-04-28 03 -03 ADT 1 1974-10-27 01 -04 AST 1975-04-27 03 -03 ADT 1 1975-10-26 01 -04 AST 1976-04-25 03 -03 ADT 1 1976-10-31 01 -04 AST 1977-04-24 03 -03 ADT 1 1977-10-30 01 -04 AST 1978-04-30 03 -03 ADT 1 1978-10-29 01 -04 AST 1979-04-29 03 -03 ADT 1 1979-10-28 01 -04 AST 1980-04-27 03 -03 ADT 1 1980-10-26 01 -04 AST 1981-04-26 03 -03 ADT 1 1981-10-25 01 -04 AST 1982-04-25 03 -03 ADT 1 1982-10-31 01 -04 AST 1983-04-24 03 -03 ADT 1 1983-10-30 01 -04 AST 1984-04-29 03 -03 ADT 1 1984-10-28 01 -04 AST 1985-04-28 03 -03 ADT 1 1985-10-27 01 -04 AST 1986-04-27 03 -03 ADT 1 1986-10-26 01 -04 AST 1987-04-05 03 -03 ADT 1 1987-10-25 01 -04 AST 1988-04-03 03 -03 ADT 1 1988-10-30 01 -04 AST 1989-04-02 03 -03 ADT 1 1989-10-29 01 -04 AST 1990-04-01 03 -03 ADT 1 1990-10-28 01 -04 AST 1991-04-07 03 -03 ADT 1 1991-10-27 01 -04 AST 1992-04-05 03 -03 ADT 1 1992-10-25 01 -04 AST 1993-04-04 01:01 -03 ADT 1 1993-10-30 23:01 -04 AST 1994-04-03 01:01 -03 ADT 1 1994-10-29 23:01 -04 AST 1995-04-02 01:01 -03 ADT 1 1995-10-28 23:01 -04 AST 1996-04-07 01:01 -03 ADT 1 1996-10-26 23:01 -04 AST 1997-04-06 01:01 -03 ADT 1 1997-10-25 23:01 -04 AST 1998-04-05 01:01 -03 ADT 1 1998-10-24 23:01 -04 AST 1999-04-04 01:01 -03 ADT 1 1999-10-30 23:01 -04 AST 2000-04-02 01:01 -03 ADT 1 2000-10-28 23:01 -04 AST 2001-04-01 01:01 -03 ADT 1 2001-10-27 23:01 -04 AST 2002-04-07 01:01 -03 ADT 1 2002-10-26 23:01 -04 AST 2003-04-06 01:01 -03 ADT 1 2003-10-25 23:01 -04 AST 2004-04-04 01:01 -03 ADT 1 2004-10-30 23:01 -04 AST 2005-04-03 01:01 -03 ADT 1 2005-10-29 23:01 -04 AST 2006-04-02 01:01 -03 ADT 1 2006-10-28 23:01 -04 AST 2007-03-11 03 -03 ADT 1 2007-11-04 01 -04 AST 2008-03-09 03 -03 ADT 1 2008-11-02 01 -04 AST 2009-03-08 03 -03 ADT 1 2009-11-01 01 -04 AST 2010-03-14 03 -03 ADT 1 2010-11-07 01 -04 AST 2011-03-13 03 -03 ADT 1 2011-11-06 01 -04 AST 2012-03-11 03 -03 ADT 1 2012-11-04 01 -04 AST 2013-03-10 03 -03 ADT 1 2013-11-03 01 -04 AST 2014-03-09 03 -03 ADT 1 2014-11-02 01 -04 AST 2015-03-08 03 -03 ADT 1 2015-11-01 01 -04 AST 2016-03-13 03 -03 ADT 1 2016-11-06 01 -04 AST 2017-03-12 03 -03 ADT 1 2017-11-05 01 -04 AST 2018-03-11 03 -03 ADT 1 2018-11-04 01 -04 AST 2019-03-10 03 -03 ADT 1 2019-11-03 01 -04 AST 2020-03-08 03 -03 ADT 1 2020-11-01 01 -04 AST 2021-03-14 03 -03 ADT 1 2021-11-07 01 -04 AST 2022-03-13 03 -03 ADT 1 2022-11-06 01 -04 AST 2023-03-12 03 -03 ADT 1 2023-11-05 01 -04 AST 2024-03-10 03 -03 ADT 1 2024-11-03 01 -04 AST 2025-03-09 03 -03 ADT 1 2025-11-02 01 -04 AST 2026-03-08 03 -03 ADT 1 2026-11-01 01 -04 AST 2027-03-14 03 -03 ADT 1 2027-11-07 01 -04 AST 2028-03-12 03 -03 ADT 1 2028-11-05 01 -04 AST 2029-03-11 03 -03 ADT 1 2029-11-04 01 -04 AST 2030-03-10 03 -03 ADT 1 2030-11-03 01 -04 AST 2031-03-09 03 -03 ADT 1 2031-11-02 01 -04 AST 2032-03-14 03 -03 ADT 1 2032-11-07 01 -04 AST 2033-03-13 03 -03 ADT 1 2033-11-06 01 -04 AST 2034-03-12 03 -03 ADT 1 2034-11-05 01 -04 AST 2035-03-11 03 -03 ADT 1 2035-11-04 01 -04 AST 2036-03-09 03 -03 ADT 1 2036-11-02 01 -04 AST 2037-03-08 03 -03 ADT 1 2037-11-01 01 -04 AST 2038-03-14 03 -03 ADT 1 2038-11-07 01 -04 AST 2039-03-13 03 -03 ADT 1 2039-11-06 01 -04 AST 2040-03-11 03 -03 ADT 1 2040-11-04 01 -04 AST 2041-03-10 03 -03 ADT 1 2041-11-03 01 -04 AST 2042-03-09 03 -03 ADT 1 2042-11-02 01 -04 AST 2043-03-08 03 -03 ADT 1 2043-11-01 01 -04 AST 2044-03-13 03 -03 ADT 1 2044-11-06 01 -04 AST 2045-03-12 03 -03 ADT 1 2045-11-05 01 -04 AST 2046-03-11 03 -03 ADT 1 2046-11-04 01 -04 AST 2047-03-10 03 -03 ADT 1 2047-11-03 01 -04 AST 2048-03-08 03 -03 ADT 1 2048-11-01 01 -04 AST 2049-03-14 03 -03 ADT 1 2049-11-07 01 -04 AST TZ="America/Monterrey" - - -064116 LMT 1922-01-01 00 -06 CST 1988-04-03 03 -05 CDT 1 1988-10-30 01 -06 CST 1996-04-07 03 -05 CDT 1 1996-10-27 01 -06 CST 1997-04-06 03 -05 CDT 1 1997-10-26 01 -06 CST 1998-04-05 03 -05 CDT 1 1998-10-25 01 -06 CST 1999-04-04 03 -05 CDT 1 1999-10-31 01 -06 CST 2000-04-02 03 -05 CDT 1 2000-10-29 01 -06 CST 2001-05-06 03 -05 CDT 1 2001-09-30 01 -06 CST 2002-04-07 03 -05 CDT 1 2002-10-27 01 -06 CST 2003-04-06 03 -05 CDT 1 2003-10-26 01 -06 CST 2004-04-04 03 -05 CDT 1 2004-10-31 01 -06 CST 2005-04-03 03 -05 CDT 1 2005-10-30 01 -06 CST 2006-04-02 03 -05 CDT 1 2006-10-29 01 -06 CST 2007-04-01 03 -05 CDT 1 2007-10-28 01 -06 CST 2008-04-06 03 -05 CDT 1 2008-10-26 01 -06 CST 2009-04-05 03 -05 CDT 1 2009-10-25 01 -06 CST 2010-04-04 03 -05 CDT 1 2010-10-31 01 -06 CST 2011-04-03 03 -05 CDT 1 2011-10-30 01 -06 CST 2012-04-01 03 -05 CDT 1 2012-10-28 01 -06 CST 2013-04-07 03 -05 CDT 1 2013-10-27 01 -06 CST 2014-04-06 03 -05 CDT 1 2014-10-26 01 -06 CST 2015-04-05 03 -05 CDT 1 2015-10-25 01 -06 CST 2016-04-03 03 -05 CDT 1 2016-10-30 01 -06 CST 2017-04-02 03 -05 CDT 1 2017-10-29 01 -06 CST 2018-04-01 03 -05 CDT 1 2018-10-28 01 -06 CST 2019-04-07 03 -05 CDT 1 2019-10-27 01 -06 CST 2020-04-05 03 -05 CDT 1 2020-10-25 01 -06 CST 2021-04-04 03 -05 CDT 1 2021-10-31 01 -06 CST 2022-04-03 03 -05 CDT 1 2022-10-30 01 -06 CST 2023-04-02 03 -05 CDT 1 2023-10-29 01 -06 CST 2024-04-07 03 -05 CDT 1 2024-10-27 01 -06 CST 2025-04-06 03 -05 CDT 1 2025-10-26 01 -06 CST 2026-04-05 03 -05 CDT 1 2026-10-25 01 -06 CST 2027-04-04 03 -05 CDT 1 2027-10-31 01 -06 CST 2028-04-02 03 -05 CDT 1 2028-10-29 01 -06 CST 2029-04-01 03 -05 CDT 1 2029-10-28 01 -06 CST 2030-04-07 03 -05 CDT 1 2030-10-27 01 -06 CST 2031-04-06 03 -05 CDT 1 2031-10-26 01 -06 CST 2032-04-04 03 -05 CDT 1 2032-10-31 01 -06 CST 2033-04-03 03 -05 CDT 1 2033-10-30 01 -06 CST 2034-04-02 03 -05 CDT 1 2034-10-29 01 -06 CST 2035-04-01 03 -05 CDT 1 2035-10-28 01 -06 CST 2036-04-06 03 -05 CDT 1 2036-10-26 01 -06 CST 2037-04-05 03 -05 CDT 1 2037-10-25 01 -06 CST 2038-04-04 03 -05 CDT 1 2038-10-31 01 -06 CST 2039-04-03 03 -05 CDT 1 2039-10-30 01 -06 CST 2040-04-01 03 -05 CDT 1 2040-10-28 01 -06 CST 2041-04-07 03 -05 CDT 1 2041-10-27 01 -06 CST 2042-04-06 03 -05 CDT 1 2042-10-26 01 -06 CST 2043-04-05 03 -05 CDT 1 2043-10-25 01 -06 CST 2044-04-03 03 -05 CDT 1 2044-10-30 01 -06 CST 2045-04-02 03 -05 CDT 1 2045-10-29 01 -06 CST 2046-04-01 03 -05 CDT 1 2046-10-28 01 -06 CST 2047-04-07 03 -05 CDT 1 2047-10-27 01 -06 CST 2048-04-05 03 -05 CDT 1 2048-10-25 01 -06 CST 2049-04-04 03 -05 CDT 1 2049-10-31 01 -06 CST TZ="America/Montevideo" - - -034451 LMT 1908-06-10 00 -034451 MMT 1920-04-30 23:44:51 -04 1923-10-01 01 -03 1 1924-03-31 23:30 -0330 1924-10-01 00:30 -03 1 1925-03-31 23:30 -0330 1925-10-01 00:30 -03 1 1926-03-31 23:30 -0330 1933-10-29 00:30 -03 1 1934-03-31 23:30 -0330 1934-10-28 00:30 -03 1 1935-03-30 23:30 -0330 1935-10-27 00:30 -03 1 1936-03-28 23:30 -0330 1936-10-25 00:30 -03 1 1937-03-27 23:30 -0330 1937-10-31 00:30 -03 1 1938-03-26 23:30 -0330 1938-10-30 00:30 -03 1 1939-03-25 23:30 -0330 1939-10-01 00:30 -03 1 1940-03-30 23:30 -0330 1940-10-27 00:30 -03 1 1941-03-29 23:30 -0330 1941-08-01 00:30 -03 1 1942-12-14 00:30 -0230 1 1943-03-13 23:30 -03 1959-05-24 00:30 -0230 1 1959-11-14 23:30 -03 1960-01-17 01 -02 1 1960-03-05 23 -03 1965-04-04 01 -02 1 1965-09-25 23 -03 1968-05-27 00:30 -0230 1 1968-11-30 23:30 -03 1970-04-25 01 -02 1 1970-06-13 23 -03 1972-04-23 01 -02 1 1972-07-15 23 -03 1974-01-13 01:30 -0130 1 1974-03-09 23 -0230 1 1974-08-31 23:30 -03 1974-12-22 01 -02 1 1975-03-29 23 -03 1976-12-19 01 -02 1 1977-03-05 23 -03 1977-12-04 01 -02 1 1978-03-04 23 -03 1978-12-17 01 -02 1 1979-03-03 23 -03 1979-04-29 01 -02 1 1980-03-15 23 -03 1987-12-14 01 -02 1 1988-02-27 23 -03 1988-12-11 01 -02 1 1989-03-04 23 -03 1989-10-29 01 -02 1 1990-02-24 23 -03 1990-10-21 01 -02 1 1991-03-02 23 -03 1991-10-27 01 -02 1 1992-02-29 23 -03 1992-10-18 01 -02 1 1993-02-27 23 -03 2004-09-19 01 -02 1 2005-03-27 01 -03 2005-10-09 03 -02 1 2006-03-12 01 -03 2006-10-01 03 -02 1 2007-03-11 01 -03 2007-10-07 03 -02 1 2008-03-09 01 -03 2008-10-05 03 -02 1 2009-03-08 01 -03 2009-10-04 03 -02 1 2010-03-14 01 -03 2010-10-03 03 -02 1 2011-03-13 01 -03 2011-10-02 03 -02 1 2012-03-11 01 -03 2012-10-07 03 -02 1 2013-03-10 01 -03 2013-10-06 03 -02 1 2014-03-09 01 -03 2014-10-05 03 -02 1 2015-03-08 01 -03 TZ="America/Nassau" - - -050930 LMT 1912-03-02 00:09:30 -05 EST 1964-04-26 03 -04 EDT 1 1964-10-25 01 -05 EST 1965-04-25 03 -04 EDT 1 1965-10-31 01 -05 EST 1966-04-24 03 -04 EDT 1 1966-10-30 01 -05 EST 1967-04-30 03 -04 EDT 1 1967-10-29 01 -05 EST 1968-04-28 03 -04 EDT 1 1968-10-27 01 -05 EST 1969-04-27 03 -04 EDT 1 1969-10-26 01 -05 EST 1970-04-26 03 -04 EDT 1 1970-10-25 01 -05 EST 1971-04-25 03 -04 EDT 1 1971-10-31 01 -05 EST 1972-04-30 03 -04 EDT 1 1972-10-29 01 -05 EST 1973-04-29 03 -04 EDT 1 1973-10-28 01 -05 EST 1974-04-28 03 -04 EDT 1 1974-10-27 01 -05 EST 1975-04-27 03 -04 EDT 1 1975-10-26 01 -05 EST 1976-04-25 03 -04 EDT 1 1976-10-31 01 -05 EST 1977-04-24 03 -04 EDT 1 1977-10-30 01 -05 EST 1978-04-30 03 -04 EDT 1 1978-10-29 01 -05 EST 1979-04-29 03 -04 EDT 1 1979-10-28 01 -05 EST 1980-04-27 03 -04 EDT 1 1980-10-26 01 -05 EST 1981-04-26 03 -04 EDT 1 1981-10-25 01 -05 EST 1982-04-25 03 -04 EDT 1 1982-10-31 01 -05 EST 1983-04-24 03 -04 EDT 1 1983-10-30 01 -05 EST 1984-04-29 03 -04 EDT 1 1984-10-28 01 -05 EST 1985-04-28 03 -04 EDT 1 1985-10-27 01 -05 EST 1986-04-27 03 -04 EDT 1 1986-10-26 01 -05 EST 1987-04-05 03 -04 EDT 1 1987-10-25 01 -05 EST 1988-04-03 03 -04 EDT 1 1988-10-30 01 -05 EST 1989-04-02 03 -04 EDT 1 1989-10-29 01 -05 EST 1990-04-01 03 -04 EDT 1 1990-10-28 01 -05 EST 1991-04-07 03 -04 EDT 1 1991-10-27 01 -05 EST 1992-04-05 03 -04 EDT 1 1992-10-25 01 -05 EST 1993-04-04 03 -04 EDT 1 1993-10-31 01 -05 EST 1994-04-03 03 -04 EDT 1 1994-10-30 01 -05 EST 1995-04-02 03 -04 EDT 1 1995-10-29 01 -05 EST 1996-04-07 03 -04 EDT 1 1996-10-27 01 -05 EST 1997-04-06 03 -04 EDT 1 1997-10-26 01 -05 EST 1998-04-05 03 -04 EDT 1 1998-10-25 01 -05 EST 1999-04-04 03 -04 EDT 1 1999-10-31 01 -05 EST 2000-04-02 03 -04 EDT 1 2000-10-29 01 -05 EST 2001-04-01 03 -04 EDT 1 2001-10-28 01 -05 EST 2002-04-07 03 -04 EDT 1 2002-10-27 01 -05 EST 2003-04-06 03 -04 EDT 1 2003-10-26 01 -05 EST 2004-04-04 03 -04 EDT 1 2004-10-31 01 -05 EST 2005-04-03 03 -04 EDT 1 2005-10-30 01 -05 EST 2006-04-02 03 -04 EDT 1 2006-10-29 01 -05 EST 2007-03-11 03 -04 EDT 1 2007-11-04 01 -05 EST 2008-03-09 03 -04 EDT 1 2008-11-02 01 -05 EST 2009-03-08 03 -04 EDT 1 2009-11-01 01 -05 EST 2010-03-14 03 -04 EDT 1 2010-11-07 01 -05 EST 2011-03-13 03 -04 EDT 1 2011-11-06 01 -05 EST 2012-03-11 03 -04 EDT 1 2012-11-04 01 -05 EST 2013-03-10 03 -04 EDT 1 2013-11-03 01 -05 EST 2014-03-09 03 -04 EDT 1 2014-11-02 01 -05 EST 2015-03-08 03 -04 EDT 1 2015-11-01 01 -05 EST 2016-03-13 03 -04 EDT 1 2016-11-06 01 -05 EST 2017-03-12 03 -04 EDT 1 2017-11-05 01 -05 EST 2018-03-11 03 -04 EDT 1 2018-11-04 01 -05 EST 2019-03-10 03 -04 EDT 1 2019-11-03 01 -05 EST 2020-03-08 03 -04 EDT 1 2020-11-01 01 -05 EST 2021-03-14 03 -04 EDT 1 2021-11-07 01 -05 EST 2022-03-13 03 -04 EDT 1 2022-11-06 01 -05 EST 2023-03-12 03 -04 EDT 1 2023-11-05 01 -05 EST 2024-03-10 03 -04 EDT 1 2024-11-03 01 -05 EST 2025-03-09 03 -04 EDT 1 2025-11-02 01 -05 EST 2026-03-08 03 -04 EDT 1 2026-11-01 01 -05 EST 2027-03-14 03 -04 EDT 1 2027-11-07 01 -05 EST 2028-03-12 03 -04 EDT 1 2028-11-05 01 -05 EST 2029-03-11 03 -04 EDT 1 2029-11-04 01 -05 EST 2030-03-10 03 -04 EDT 1 2030-11-03 01 -05 EST 2031-03-09 03 -04 EDT 1 2031-11-02 01 -05 EST 2032-03-14 03 -04 EDT 1 2032-11-07 01 -05 EST 2033-03-13 03 -04 EDT 1 2033-11-06 01 -05 EST 2034-03-12 03 -04 EDT 1 2034-11-05 01 -05 EST 2035-03-11 03 -04 EDT 1 2035-11-04 01 -05 EST 2036-03-09 03 -04 EDT 1 2036-11-02 01 -05 EST 2037-03-08 03 -04 EDT 1 2037-11-01 01 -05 EST 2038-03-14 03 -04 EDT 1 2038-11-07 01 -05 EST 2039-03-13 03 -04 EDT 1 2039-11-06 01 -05 EST 2040-03-11 03 -04 EDT 1 2040-11-04 01 -05 EST 2041-03-10 03 -04 EDT 1 2041-11-03 01 -05 EST 2042-03-09 03 -04 EDT 1 2042-11-02 01 -05 EST 2043-03-08 03 -04 EDT 1 2043-11-01 01 -05 EST 2044-03-13 03 -04 EDT 1 2044-11-06 01 -05 EST 2045-03-12 03 -04 EDT 1 2045-11-05 01 -05 EST 2046-03-11 03 -04 EDT 1 2046-11-04 01 -05 EST 2047-03-10 03 -04 EDT 1 2047-11-03 01 -05 EST 2048-03-08 03 -04 EDT 1 2048-11-01 01 -05 EST 2049-03-14 03 -04 EDT 1 2049-11-07 01 -05 EST TZ="America/New_York" - - -045602 LMT 1883-11-18 12 -05 EST 1918-03-31 03 -04 EDT 1 1918-10-27 01 -05 EST 1919-03-30 03 -04 EDT 1 1919-10-26 01 -05 EST 1920-03-28 03 -04 EDT 1 1920-10-31 01 -05 EST 1921-04-24 03 -04 EDT 1 1921-09-25 01 -05 EST 1922-04-30 03 -04 EDT 1 1922-09-24 01 -05 EST 1923-04-29 03 -04 EDT 1 1923-09-30 01 -05 EST 1924-04-27 03 -04 EDT 1 1924-09-28 01 -05 EST 1925-04-26 03 -04 EDT 1 1925-09-27 01 -05 EST 1926-04-25 03 -04 EDT 1 1926-09-26 01 -05 EST 1927-04-24 03 -04 EDT 1 1927-09-25 01 -05 EST 1928-04-29 03 -04 EDT 1 1928-09-30 01 -05 EST 1929-04-28 03 -04 EDT 1 1929-09-29 01 -05 EST 1930-04-27 03 -04 EDT 1 1930-09-28 01 -05 EST 1931-04-26 03 -04 EDT 1 1931-09-27 01 -05 EST 1932-04-24 03 -04 EDT 1 1932-09-25 01 -05 EST 1933-04-30 03 -04 EDT 1 1933-09-24 01 -05 EST 1934-04-29 03 -04 EDT 1 1934-09-30 01 -05 EST 1935-04-28 03 -04 EDT 1 1935-09-29 01 -05 EST 1936-04-26 03 -04 EDT 1 1936-09-27 01 -05 EST 1937-04-25 03 -04 EDT 1 1937-09-26 01 -05 EST 1938-04-24 03 -04 EDT 1 1938-09-25 01 -05 EST 1939-04-30 03 -04 EDT 1 1939-09-24 01 -05 EST 1940-04-28 03 -04 EDT 1 1940-09-29 01 -05 EST 1941-04-27 03 -04 EDT 1 1941-09-28 01 -05 EST 1942-02-09 03 -04 EWT 1 1945-08-14 19 -04 EPT 1 1945-09-30 01 -05 EST 1946-04-28 03 -04 EDT 1 1946-09-29 01 -05 EST 1947-04-27 03 -04 EDT 1 1947-09-28 01 -05 EST 1948-04-25 03 -04 EDT 1 1948-09-26 01 -05 EST 1949-04-24 03 -04 EDT 1 1949-09-25 01 -05 EST 1950-04-30 03 -04 EDT 1 1950-09-24 01 -05 EST 1951-04-29 03 -04 EDT 1 1951-09-30 01 -05 EST 1952-04-27 03 -04 EDT 1 1952-09-28 01 -05 EST 1953-04-26 03 -04 EDT 1 1953-09-27 01 -05 EST 1954-04-25 03 -04 EDT 1 1954-09-26 01 -05 EST 1955-04-24 03 -04 EDT 1 1955-10-30 01 -05 EST 1956-04-29 03 -04 EDT 1 1956-10-28 01 -05 EST 1957-04-28 03 -04 EDT 1 1957-10-27 01 -05 EST 1958-04-27 03 -04 EDT 1 1958-10-26 01 -05 EST 1959-04-26 03 -04 EDT 1 1959-10-25 01 -05 EST 1960-04-24 03 -04 EDT 1 1960-10-30 01 -05 EST 1961-04-30 03 -04 EDT 1 1961-10-29 01 -05 EST 1962-04-29 03 -04 EDT 1 1962-10-28 01 -05 EST 1963-04-28 03 -04 EDT 1 1963-10-27 01 -05 EST 1964-04-26 03 -04 EDT 1 1964-10-25 01 -05 EST 1965-04-25 03 -04 EDT 1 1965-10-31 01 -05 EST 1966-04-24 03 -04 EDT 1 1966-10-30 01 -05 EST 1967-04-30 03 -04 EDT 1 1967-10-29 01 -05 EST 1968-04-28 03 -04 EDT 1 1968-10-27 01 -05 EST 1969-04-27 03 -04 EDT 1 1969-10-26 01 -05 EST 1970-04-26 03 -04 EDT 1 1970-10-25 01 -05 EST 1971-04-25 03 -04 EDT 1 1971-10-31 01 -05 EST 1972-04-30 03 -04 EDT 1 1972-10-29 01 -05 EST 1973-04-29 03 -04 EDT 1 1973-10-28 01 -05 EST 1974-01-06 03 -04 EDT 1 1974-10-27 01 -05 EST 1975-02-23 03 -04 EDT 1 1975-10-26 01 -05 EST 1976-04-25 03 -04 EDT 1 1976-10-31 01 -05 EST 1977-04-24 03 -04 EDT 1 1977-10-30 01 -05 EST 1978-04-30 03 -04 EDT 1 1978-10-29 01 -05 EST 1979-04-29 03 -04 EDT 1 1979-10-28 01 -05 EST 1980-04-27 03 -04 EDT 1 1980-10-26 01 -05 EST 1981-04-26 03 -04 EDT 1 1981-10-25 01 -05 EST 1982-04-25 03 -04 EDT 1 1982-10-31 01 -05 EST 1983-04-24 03 -04 EDT 1 1983-10-30 01 -05 EST 1984-04-29 03 -04 EDT 1 1984-10-28 01 -05 EST 1985-04-28 03 -04 EDT 1 1985-10-27 01 -05 EST 1986-04-27 03 -04 EDT 1 1986-10-26 01 -05 EST 1987-04-05 03 -04 EDT 1 1987-10-25 01 -05 EST 1988-04-03 03 -04 EDT 1 1988-10-30 01 -05 EST 1989-04-02 03 -04 EDT 1 1989-10-29 01 -05 EST 1990-04-01 03 -04 EDT 1 1990-10-28 01 -05 EST 1991-04-07 03 -04 EDT 1 1991-10-27 01 -05 EST 1992-04-05 03 -04 EDT 1 1992-10-25 01 -05 EST 1993-04-04 03 -04 EDT 1 1993-10-31 01 -05 EST 1994-04-03 03 -04 EDT 1 1994-10-30 01 -05 EST 1995-04-02 03 -04 EDT 1 1995-10-29 01 -05 EST 1996-04-07 03 -04 EDT 1 1996-10-27 01 -05 EST 1997-04-06 03 -04 EDT 1 1997-10-26 01 -05 EST 1998-04-05 03 -04 EDT 1 1998-10-25 01 -05 EST 1999-04-04 03 -04 EDT 1 1999-10-31 01 -05 EST 2000-04-02 03 -04 EDT 1 2000-10-29 01 -05 EST 2001-04-01 03 -04 EDT 1 2001-10-28 01 -05 EST 2002-04-07 03 -04 EDT 1 2002-10-27 01 -05 EST 2003-04-06 03 -04 EDT 1 2003-10-26 01 -05 EST 2004-04-04 03 -04 EDT 1 2004-10-31 01 -05 EST 2005-04-03 03 -04 EDT 1 2005-10-30 01 -05 EST 2006-04-02 03 -04 EDT 1 2006-10-29 01 -05 EST 2007-03-11 03 -04 EDT 1 2007-11-04 01 -05 EST 2008-03-09 03 -04 EDT 1 2008-11-02 01 -05 EST 2009-03-08 03 -04 EDT 1 2009-11-01 01 -05 EST 2010-03-14 03 -04 EDT 1 2010-11-07 01 -05 EST 2011-03-13 03 -04 EDT 1 2011-11-06 01 -05 EST 2012-03-11 03 -04 EDT 1 2012-11-04 01 -05 EST 2013-03-10 03 -04 EDT 1 2013-11-03 01 -05 EST 2014-03-09 03 -04 EDT 1 2014-11-02 01 -05 EST 2015-03-08 03 -04 EDT 1 2015-11-01 01 -05 EST 2016-03-13 03 -04 EDT 1 2016-11-06 01 -05 EST 2017-03-12 03 -04 EDT 1 2017-11-05 01 -05 EST 2018-03-11 03 -04 EDT 1 2018-11-04 01 -05 EST 2019-03-10 03 -04 EDT 1 2019-11-03 01 -05 EST 2020-03-08 03 -04 EDT 1 2020-11-01 01 -05 EST 2021-03-14 03 -04 EDT 1 2021-11-07 01 -05 EST 2022-03-13 03 -04 EDT 1 2022-11-06 01 -05 EST 2023-03-12 03 -04 EDT 1 2023-11-05 01 -05 EST 2024-03-10 03 -04 EDT 1 2024-11-03 01 -05 EST 2025-03-09 03 -04 EDT 1 2025-11-02 01 -05 EST 2026-03-08 03 -04 EDT 1 2026-11-01 01 -05 EST 2027-03-14 03 -04 EDT 1 2027-11-07 01 -05 EST 2028-03-12 03 -04 EDT 1 2028-11-05 01 -05 EST 2029-03-11 03 -04 EDT 1 2029-11-04 01 -05 EST 2030-03-10 03 -04 EDT 1 2030-11-03 01 -05 EST 2031-03-09 03 -04 EDT 1 2031-11-02 01 -05 EST 2032-03-14 03 -04 EDT 1 2032-11-07 01 -05 EST 2033-03-13 03 -04 EDT 1 2033-11-06 01 -05 EST 2034-03-12 03 -04 EDT 1 2034-11-05 01 -05 EST 2035-03-11 03 -04 EDT 1 2035-11-04 01 -05 EST 2036-03-09 03 -04 EDT 1 2036-11-02 01 -05 EST 2037-03-08 03 -04 EDT 1 2037-11-01 01 -05 EST 2038-03-14 03 -04 EDT 1 2038-11-07 01 -05 EST 2039-03-13 03 -04 EDT 1 2039-11-06 01 -05 EST 2040-03-11 03 -04 EDT 1 2040-11-04 01 -05 EST 2041-03-10 03 -04 EDT 1 2041-11-03 01 -05 EST 2042-03-09 03 -04 EDT 1 2042-11-02 01 -05 EST 2043-03-08 03 -04 EDT 1 2043-11-01 01 -05 EST 2044-03-13 03 -04 EDT 1 2044-11-06 01 -05 EST 2045-03-12 03 -04 EDT 1 2045-11-05 01 -05 EST 2046-03-11 03 -04 EDT 1 2046-11-04 01 -05 EST 2047-03-10 03 -04 EDT 1 2047-11-03 01 -05 EST 2048-03-08 03 -04 EDT 1 2048-11-01 01 -05 EST 2049-03-14 03 -04 EDT 1 2049-11-07 01 -05 EST TZ="America/Nipigon" - - -055304 LMT 1895-01-01 00:53:04 -05 EST 1918-04-14 03 -04 EDT 1 1918-10-27 01 -05 EST 1940-09-29 01 -04 EDT 1 1942-02-09 03 -04 EWT 1 1945-08-14 19 -04 EPT 1 1945-09-30 01 -05 EST 1974-04-28 03 -04 EDT 1 1974-10-27 01 -05 EST 1975-04-27 03 -04 EDT 1 1975-10-26 01 -05 EST 1976-04-25 03 -04 EDT 1 1976-10-31 01 -05 EST 1977-04-24 03 -04 EDT 1 1977-10-30 01 -05 EST 1978-04-30 03 -04 EDT 1 1978-10-29 01 -05 EST 1979-04-29 03 -04 EDT 1 1979-10-28 01 -05 EST 1980-04-27 03 -04 EDT 1 1980-10-26 01 -05 EST 1981-04-26 03 -04 EDT 1 1981-10-25 01 -05 EST 1982-04-25 03 -04 EDT 1 1982-10-31 01 -05 EST 1983-04-24 03 -04 EDT 1 1983-10-30 01 -05 EST 1984-04-29 03 -04 EDT 1 1984-10-28 01 -05 EST 1985-04-28 03 -04 EDT 1 1985-10-27 01 -05 EST 1986-04-27 03 -04 EDT 1 1986-10-26 01 -05 EST 1987-04-05 03 -04 EDT 1 1987-10-25 01 -05 EST 1988-04-03 03 -04 EDT 1 1988-10-30 01 -05 EST 1989-04-02 03 -04 EDT 1 1989-10-29 01 -05 EST 1990-04-01 03 -04 EDT 1 1990-10-28 01 -05 EST 1991-04-07 03 -04 EDT 1 1991-10-27 01 -05 EST 1992-04-05 03 -04 EDT 1 1992-10-25 01 -05 EST 1993-04-04 03 -04 EDT 1 1993-10-31 01 -05 EST 1994-04-03 03 -04 EDT 1 1994-10-30 01 -05 EST 1995-04-02 03 -04 EDT 1 1995-10-29 01 -05 EST 1996-04-07 03 -04 EDT 1 1996-10-27 01 -05 EST 1997-04-06 03 -04 EDT 1 1997-10-26 01 -05 EST 1998-04-05 03 -04 EDT 1 1998-10-25 01 -05 EST 1999-04-04 03 -04 EDT 1 1999-10-31 01 -05 EST 2000-04-02 03 -04 EDT 1 2000-10-29 01 -05 EST 2001-04-01 03 -04 EDT 1 2001-10-28 01 -05 EST 2002-04-07 03 -04 EDT 1 2002-10-27 01 -05 EST 2003-04-06 03 -04 EDT 1 2003-10-26 01 -05 EST 2004-04-04 03 -04 EDT 1 2004-10-31 01 -05 EST 2005-04-03 03 -04 EDT 1 2005-10-30 01 -05 EST 2006-04-02 03 -04 EDT 1 2006-10-29 01 -05 EST 2007-03-11 03 -04 EDT 1 2007-11-04 01 -05 EST 2008-03-09 03 -04 EDT 1 2008-11-02 01 -05 EST 2009-03-08 03 -04 EDT 1 2009-11-01 01 -05 EST 2010-03-14 03 -04 EDT 1 2010-11-07 01 -05 EST 2011-03-13 03 -04 EDT 1 2011-11-06 01 -05 EST 2012-03-11 03 -04 EDT 1 2012-11-04 01 -05 EST 2013-03-10 03 -04 EDT 1 2013-11-03 01 -05 EST 2014-03-09 03 -04 EDT 1 2014-11-02 01 -05 EST 2015-03-08 03 -04 EDT 1 2015-11-01 01 -05 EST 2016-03-13 03 -04 EDT 1 2016-11-06 01 -05 EST 2017-03-12 03 -04 EDT 1 2017-11-05 01 -05 EST 2018-03-11 03 -04 EDT 1 2018-11-04 01 -05 EST 2019-03-10 03 -04 EDT 1 2019-11-03 01 -05 EST 2020-03-08 03 -04 EDT 1 2020-11-01 01 -05 EST 2021-03-14 03 -04 EDT 1 2021-11-07 01 -05 EST 2022-03-13 03 -04 EDT 1 2022-11-06 01 -05 EST 2023-03-12 03 -04 EDT 1 2023-11-05 01 -05 EST 2024-03-10 03 -04 EDT 1 2024-11-03 01 -05 EST 2025-03-09 03 -04 EDT 1 2025-11-02 01 -05 EST 2026-03-08 03 -04 EDT 1 2026-11-01 01 -05 EST 2027-03-14 03 -04 EDT 1 2027-11-07 01 -05 EST 2028-03-12 03 -04 EDT 1 2028-11-05 01 -05 EST 2029-03-11 03 -04 EDT 1 2029-11-04 01 -05 EST 2030-03-10 03 -04 EDT 1 2030-11-03 01 -05 EST 2031-03-09 03 -04 EDT 1 2031-11-02 01 -05 EST 2032-03-14 03 -04 EDT 1 2032-11-07 01 -05 EST 2033-03-13 03 -04 EDT 1 2033-11-06 01 -05 EST 2034-03-12 03 -04 EDT 1 2034-11-05 01 -05 EST 2035-03-11 03 -04 EDT 1 2035-11-04 01 -05 EST 2036-03-09 03 -04 EDT 1 2036-11-02 01 -05 EST 2037-03-08 03 -04 EDT 1 2037-11-01 01 -05 EST 2038-03-14 03 -04 EDT 1 2038-11-07 01 -05 EST 2039-03-13 03 -04 EDT 1 2039-11-06 01 -05 EST 2040-03-11 03 -04 EDT 1 2040-11-04 01 -05 EST 2041-03-10 03 -04 EDT 1 2041-11-03 01 -05 EST 2042-03-09 03 -04 EDT 1 2042-11-02 01 -05 EST 2043-03-08 03 -04 EDT 1 2043-11-01 01 -05 EST 2044-03-13 03 -04 EDT 1 2044-11-06 01 -05 EST 2045-03-12 03 -04 EDT 1 2045-11-05 01 -05 EST 2046-03-11 03 -04 EDT 1 2046-11-04 01 -05 EST 2047-03-10 03 -04 EDT 1 2047-11-03 01 -05 EST 2048-03-08 03 -04 EDT 1 2048-11-01 01 -05 EST 2049-03-14 03 -04 EDT 1 2049-11-07 01 -05 EST TZ="America/Nome" - - +125822 LMT 1867-10-18 13:29:35 -110138 LMT 1900-08-20 12:01:38 -11 NST 1942-02-09 03 -10 NWT 1 1945-08-14 13 -10 NPT 1 1945-09-30 01 -11 NST 1967-04-01 00 -11 BST 1969-04-27 03 -10 BDT 1 1969-10-26 01 -11 BST 1970-04-26 03 -10 BDT 1 1970-10-25 01 -11 BST 1971-04-25 03 -10 BDT 1 1971-10-31 01 -11 BST 1972-04-30 03 -10 BDT 1 1972-10-29 01 -11 BST 1973-04-29 03 -10 BDT 1 1973-10-28 01 -11 BST 1974-01-06 03 -10 BDT 1 1974-10-27 01 -11 BST 1975-02-23 03 -10 BDT 1 1975-10-26 01 -11 BST 1976-04-25 03 -10 BDT 1 1976-10-31 01 -11 BST 1977-04-24 03 -10 BDT 1 1977-10-30 01 -11 BST 1978-04-30 03 -10 BDT 1 1978-10-29 01 -11 BST 1979-04-29 03 -10 BDT 1 1979-10-28 01 -11 BST 1980-04-27 03 -10 BDT 1 1980-10-26 01 -11 BST 1981-04-26 03 -10 BDT 1 1981-10-25 01 -11 BST 1982-04-25 03 -10 BDT 1 1982-10-31 01 -11 BST 1983-04-24 03 -10 BDT 1 1983-10-30 03 -09 YST 1983-11-30 00 -09 AKST 1984-04-29 03 -08 AKDT 1 1984-10-28 01 -09 AKST 1985-04-28 03 -08 AKDT 1 1985-10-27 01 -09 AKST 1986-04-27 03 -08 AKDT 1 1986-10-26 01 -09 AKST 1987-04-05 03 -08 AKDT 1 1987-10-25 01 -09 AKST 1988-04-03 03 -08 AKDT 1 1988-10-30 01 -09 AKST 1989-04-02 03 -08 AKDT 1 1989-10-29 01 -09 AKST 1990-04-01 03 -08 AKDT 1 1990-10-28 01 -09 AKST 1991-04-07 03 -08 AKDT 1 1991-10-27 01 -09 AKST 1992-04-05 03 -08 AKDT 1 1992-10-25 01 -09 AKST 1993-04-04 03 -08 AKDT 1 1993-10-31 01 -09 AKST 1994-04-03 03 -08 AKDT 1 1994-10-30 01 -09 AKST 1995-04-02 03 -08 AKDT 1 1995-10-29 01 -09 AKST 1996-04-07 03 -08 AKDT 1 1996-10-27 01 -09 AKST 1997-04-06 03 -08 AKDT 1 1997-10-26 01 -09 AKST 1998-04-05 03 -08 AKDT 1 1998-10-25 01 -09 AKST 1999-04-04 03 -08 AKDT 1 1999-10-31 01 -09 AKST 2000-04-02 03 -08 AKDT 1 2000-10-29 01 -09 AKST 2001-04-01 03 -08 AKDT 1 2001-10-28 01 -09 AKST 2002-04-07 03 -08 AKDT 1 2002-10-27 01 -09 AKST 2003-04-06 03 -08 AKDT 1 2003-10-26 01 -09 AKST 2004-04-04 03 -08 AKDT 1 2004-10-31 01 -09 AKST 2005-04-03 03 -08 AKDT 1 2005-10-30 01 -09 AKST 2006-04-02 03 -08 AKDT 1 2006-10-29 01 -09 AKST 2007-03-11 03 -08 AKDT 1 2007-11-04 01 -09 AKST 2008-03-09 03 -08 AKDT 1 2008-11-02 01 -09 AKST 2009-03-08 03 -08 AKDT 1 2009-11-01 01 -09 AKST 2010-03-14 03 -08 AKDT 1 2010-11-07 01 -09 AKST 2011-03-13 03 -08 AKDT 1 2011-11-06 01 -09 AKST 2012-03-11 03 -08 AKDT 1 2012-11-04 01 -09 AKST 2013-03-10 03 -08 AKDT 1 2013-11-03 01 -09 AKST 2014-03-09 03 -08 AKDT 1 2014-11-02 01 -09 AKST 2015-03-08 03 -08 AKDT 1 2015-11-01 01 -09 AKST 2016-03-13 03 -08 AKDT 1 2016-11-06 01 -09 AKST 2017-03-12 03 -08 AKDT 1 2017-11-05 01 -09 AKST 2018-03-11 03 -08 AKDT 1 2018-11-04 01 -09 AKST 2019-03-10 03 -08 AKDT 1 2019-11-03 01 -09 AKST 2020-03-08 03 -08 AKDT 1 2020-11-01 01 -09 AKST 2021-03-14 03 -08 AKDT 1 2021-11-07 01 -09 AKST 2022-03-13 03 -08 AKDT 1 2022-11-06 01 -09 AKST 2023-03-12 03 -08 AKDT 1 2023-11-05 01 -09 AKST 2024-03-10 03 -08 AKDT 1 2024-11-03 01 -09 AKST 2025-03-09 03 -08 AKDT 1 2025-11-02 01 -09 AKST 2026-03-08 03 -08 AKDT 1 2026-11-01 01 -09 AKST 2027-03-14 03 -08 AKDT 1 2027-11-07 01 -09 AKST 2028-03-12 03 -08 AKDT 1 2028-11-05 01 -09 AKST 2029-03-11 03 -08 AKDT 1 2029-11-04 01 -09 AKST 2030-03-10 03 -08 AKDT 1 2030-11-03 01 -09 AKST 2031-03-09 03 -08 AKDT 1 2031-11-02 01 -09 AKST 2032-03-14 03 -08 AKDT 1 2032-11-07 01 -09 AKST 2033-03-13 03 -08 AKDT 1 2033-11-06 01 -09 AKST 2034-03-12 03 -08 AKDT 1 2034-11-05 01 -09 AKST 2035-03-11 03 -08 AKDT 1 2035-11-04 01 -09 AKST 2036-03-09 03 -08 AKDT 1 2036-11-02 01 -09 AKST 2037-03-08 03 -08 AKDT 1 2037-11-01 01 -09 AKST 2038-03-14 03 -08 AKDT 1 2038-11-07 01 -09 AKST 2039-03-13 03 -08 AKDT 1 2039-11-06 01 -09 AKST 2040-03-11 03 -08 AKDT 1 2040-11-04 01 -09 AKST 2041-03-10 03 -08 AKDT 1 2041-11-03 01 -09 AKST 2042-03-09 03 -08 AKDT 1 2042-11-02 01 -09 AKST 2043-03-08 03 -08 AKDT 1 2043-11-01 01 -09 AKST 2044-03-13 03 -08 AKDT 1 2044-11-06 01 -09 AKST 2045-03-12 03 -08 AKDT 1 2045-11-05 01 -09 AKST 2046-03-11 03 -08 AKDT 1 2046-11-04 01 -09 AKST 2047-03-10 03 -08 AKDT 1 2047-11-03 01 -09 AKST 2048-03-08 03 -08 AKDT 1 2048-11-01 01 -09 AKST 2049-03-14 03 -08 AKDT 1 2049-11-07 01 -09 AKST TZ="America/Noronha" - - -020940 LMT 1914-01-01 00:09:40 -02 1931-10-03 12 -01 1 1932-03-31 23 -02 1932-10-03 01 -01 1 1933-03-31 23 -02 1949-12-01 01 -01 1 1950-04-16 00 -02 1950-12-01 01 -01 1 1951-03-31 23 -02 1951-12-01 01 -01 1 1952-03-31 23 -02 1952-12-01 01 -01 1 1953-02-28 23 -02 1963-12-09 01 -01 1 1964-02-29 23 -02 1965-01-31 01 -01 1 1965-03-30 23 -02 1965-12-01 01 -01 1 1966-02-28 23 -02 1966-11-01 01 -01 1 1967-02-28 23 -02 1967-11-01 01 -01 1 1968-02-29 23 -02 1985-11-02 01 -01 1 1986-03-14 23 -02 1986-10-25 01 -01 1 1987-02-13 23 -02 1987-10-25 01 -01 1 1988-02-06 23 -02 1988-10-16 01 -01 1 1989-01-28 23 -02 1989-10-15 01 -01 1 1990-02-10 23 -02 1999-10-03 01 -01 1 2000-02-26 23 -02 2000-10-08 01 -01 1 2000-10-14 23 -02 2001-10-14 01 -01 1 2002-02-16 23 -02 TZ="America/North_Dakota/Beulah" - - -064707 LMT 1883-11-18 12 -07 MST 1918-03-31 03 -06 MDT 1 1918-10-27 01 -07 MST 1919-03-30 03 -06 MDT 1 1919-10-26 01 -07 MST 1942-02-09 03 -06 MWT 1 1945-08-14 17 -06 MPT 1 1945-09-30 01 -07 MST 1967-04-30 03 -06 MDT 1 1967-10-29 01 -07 MST 1968-04-28 03 -06 MDT 1 1968-10-27 01 -07 MST 1969-04-27 03 -06 MDT 1 1969-10-26 01 -07 MST 1970-04-26 03 -06 MDT 1 1970-10-25 01 -07 MST 1971-04-25 03 -06 MDT 1 1971-10-31 01 -07 MST 1972-04-30 03 -06 MDT 1 1972-10-29 01 -07 MST 1973-04-29 03 -06 MDT 1 1973-10-28 01 -07 MST 1974-01-06 03 -06 MDT 1 1974-10-27 01 -07 MST 1975-02-23 03 -06 MDT 1 1975-10-26 01 -07 MST 1976-04-25 03 -06 MDT 1 1976-10-31 01 -07 MST 1977-04-24 03 -06 MDT 1 1977-10-30 01 -07 MST 1978-04-30 03 -06 MDT 1 1978-10-29 01 -07 MST 1979-04-29 03 -06 MDT 1 1979-10-28 01 -07 MST 1980-04-27 03 -06 MDT 1 1980-10-26 01 -07 MST 1981-04-26 03 -06 MDT 1 1981-10-25 01 -07 MST 1982-04-25 03 -06 MDT 1 1982-10-31 01 -07 MST 1983-04-24 03 -06 MDT 1 1983-10-30 01 -07 MST 1984-04-29 03 -06 MDT 1 1984-10-28 01 -07 MST 1985-04-28 03 -06 MDT 1 1985-10-27 01 -07 MST 1986-04-27 03 -06 MDT 1 1986-10-26 01 -07 MST 1987-04-05 03 -06 MDT 1 1987-10-25 01 -07 MST 1988-04-03 03 -06 MDT 1 1988-10-30 01 -07 MST 1989-04-02 03 -06 MDT 1 1989-10-29 01 -07 MST 1990-04-01 03 -06 MDT 1 1990-10-28 01 -07 MST 1991-04-07 03 -06 MDT 1 1991-10-27 01 -07 MST 1992-04-05 03 -06 MDT 1 1992-10-25 01 -07 MST 1993-04-04 03 -06 MDT 1 1993-10-31 01 -07 MST 1994-04-03 03 -06 MDT 1 1994-10-30 01 -07 MST 1995-04-02 03 -06 MDT 1 1995-10-29 01 -07 MST 1996-04-07 03 -06 MDT 1 1996-10-27 01 -07 MST 1997-04-06 03 -06 MDT 1 1997-10-26 01 -07 MST 1998-04-05 03 -06 MDT 1 1998-10-25 01 -07 MST 1999-04-04 03 -06 MDT 1 1999-10-31 01 -07 MST 2000-04-02 03 -06 MDT 1 2000-10-29 01 -07 MST 2001-04-01 03 -06 MDT 1 2001-10-28 01 -07 MST 2002-04-07 03 -06 MDT 1 2002-10-27 01 -07 MST 2003-04-06 03 -06 MDT 1 2003-10-26 01 -07 MST 2004-04-04 03 -06 MDT 1 2004-10-31 01 -07 MST 2005-04-03 03 -06 MDT 1 2005-10-30 01 -07 MST 2006-04-02 03 -06 MDT 1 2006-10-29 01 -07 MST 2007-03-11 03 -06 MDT 1 2007-11-04 01 -07 MST 2008-03-09 03 -06 MDT 1 2008-11-02 01 -07 MST 2009-03-08 03 -06 MDT 1 2009-11-01 01 -07 MST 2010-03-14 03 -06 MDT 1 2010-11-07 02 -06 CST 2011-03-13 03 -05 CDT 1 2011-11-06 01 -06 CST 2012-03-11 03 -05 CDT 1 2012-11-04 01 -06 CST 2013-03-10 03 -05 CDT 1 2013-11-03 01 -06 CST 2014-03-09 03 -05 CDT 1 2014-11-02 01 -06 CST 2015-03-08 03 -05 CDT 1 2015-11-01 01 -06 CST 2016-03-13 03 -05 CDT 1 2016-11-06 01 -06 CST 2017-03-12 03 -05 CDT 1 2017-11-05 01 -06 CST 2018-03-11 03 -05 CDT 1 2018-11-04 01 -06 CST 2019-03-10 03 -05 CDT 1 2019-11-03 01 -06 CST 2020-03-08 03 -05 CDT 1 2020-11-01 01 -06 CST 2021-03-14 03 -05 CDT 1 2021-11-07 01 -06 CST 2022-03-13 03 -05 CDT 1 2022-11-06 01 -06 CST 2023-03-12 03 -05 CDT 1 2023-11-05 01 -06 CST 2024-03-10 03 -05 CDT 1 2024-11-03 01 -06 CST 2025-03-09 03 -05 CDT 1 2025-11-02 01 -06 CST 2026-03-08 03 -05 CDT 1 2026-11-01 01 -06 CST 2027-03-14 03 -05 CDT 1 2027-11-07 01 -06 CST 2028-03-12 03 -05 CDT 1 2028-11-05 01 -06 CST 2029-03-11 03 -05 CDT 1 2029-11-04 01 -06 CST 2030-03-10 03 -05 CDT 1 2030-11-03 01 -06 CST 2031-03-09 03 -05 CDT 1 2031-11-02 01 -06 CST 2032-03-14 03 -05 CDT 1 2032-11-07 01 -06 CST 2033-03-13 03 -05 CDT 1 2033-11-06 01 -06 CST 2034-03-12 03 -05 CDT 1 2034-11-05 01 -06 CST 2035-03-11 03 -05 CDT 1 2035-11-04 01 -06 CST 2036-03-09 03 -05 CDT 1 2036-11-02 01 -06 CST 2037-03-08 03 -05 CDT 1 2037-11-01 01 -06 CST 2038-03-14 03 -05 CDT 1 2038-11-07 01 -06 CST 2039-03-13 03 -05 CDT 1 2039-11-06 01 -06 CST 2040-03-11 03 -05 CDT 1 2040-11-04 01 -06 CST 2041-03-10 03 -05 CDT 1 2041-11-03 01 -06 CST 2042-03-09 03 -05 CDT 1 2042-11-02 01 -06 CST 2043-03-08 03 -05 CDT 1 2043-11-01 01 -06 CST 2044-03-13 03 -05 CDT 1 2044-11-06 01 -06 CST 2045-03-12 03 -05 CDT 1 2045-11-05 01 -06 CST 2046-03-11 03 -05 CDT 1 2046-11-04 01 -06 CST 2047-03-10 03 -05 CDT 1 2047-11-03 01 -06 CST 2048-03-08 03 -05 CDT 1 2048-11-01 01 -06 CST 2049-03-14 03 -05 CDT 1 2049-11-07 01 -06 CST TZ="America/North_Dakota/Center" - - -064512 LMT 1883-11-18 12 -07 MST 1918-03-31 03 -06 MDT 1 1918-10-27 01 -07 MST 1919-03-30 03 -06 MDT 1 1919-10-26 01 -07 MST 1942-02-09 03 -06 MWT 1 1945-08-14 17 -06 MPT 1 1945-09-30 01 -07 MST 1967-04-30 03 -06 MDT 1 1967-10-29 01 -07 MST 1968-04-28 03 -06 MDT 1 1968-10-27 01 -07 MST 1969-04-27 03 -06 MDT 1 1969-10-26 01 -07 MST 1970-04-26 03 -06 MDT 1 1970-10-25 01 -07 MST 1971-04-25 03 -06 MDT 1 1971-10-31 01 -07 MST 1972-04-30 03 -06 MDT 1 1972-10-29 01 -07 MST 1973-04-29 03 -06 MDT 1 1973-10-28 01 -07 MST 1974-01-06 03 -06 MDT 1 1974-10-27 01 -07 MST 1975-02-23 03 -06 MDT 1 1975-10-26 01 -07 MST 1976-04-25 03 -06 MDT 1 1976-10-31 01 -07 MST 1977-04-24 03 -06 MDT 1 1977-10-30 01 -07 MST 1978-04-30 03 -06 MDT 1 1978-10-29 01 -07 MST 1979-04-29 03 -06 MDT 1 1979-10-28 01 -07 MST 1980-04-27 03 -06 MDT 1 1980-10-26 01 -07 MST 1981-04-26 03 -06 MDT 1 1981-10-25 01 -07 MST 1982-04-25 03 -06 MDT 1 1982-10-31 01 -07 MST 1983-04-24 03 -06 MDT 1 1983-10-30 01 -07 MST 1984-04-29 03 -06 MDT 1 1984-10-28 01 -07 MST 1985-04-28 03 -06 MDT 1 1985-10-27 01 -07 MST 1986-04-27 03 -06 MDT 1 1986-10-26 01 -07 MST 1987-04-05 03 -06 MDT 1 1987-10-25 01 -07 MST 1988-04-03 03 -06 MDT 1 1988-10-30 01 -07 MST 1989-04-02 03 -06 MDT 1 1989-10-29 01 -07 MST 1990-04-01 03 -06 MDT 1 1990-10-28 01 -07 MST 1991-04-07 03 -06 MDT 1 1991-10-27 01 -07 MST 1992-04-05 03 -06 MDT 1 1992-10-25 02 -06 CST 1993-04-04 03 -05 CDT 1 1993-10-31 01 -06 CST 1994-04-03 03 -05 CDT 1 1994-10-30 01 -06 CST 1995-04-02 03 -05 CDT 1 1995-10-29 01 -06 CST 1996-04-07 03 -05 CDT 1 1996-10-27 01 -06 CST 1997-04-06 03 -05 CDT 1 1997-10-26 01 -06 CST 1998-04-05 03 -05 CDT 1 1998-10-25 01 -06 CST 1999-04-04 03 -05 CDT 1 1999-10-31 01 -06 CST 2000-04-02 03 -05 CDT 1 2000-10-29 01 -06 CST 2001-04-01 03 -05 CDT 1 2001-10-28 01 -06 CST 2002-04-07 03 -05 CDT 1 2002-10-27 01 -06 CST 2003-04-06 03 -05 CDT 1 2003-10-26 01 -06 CST 2004-04-04 03 -05 CDT 1 2004-10-31 01 -06 CST 2005-04-03 03 -05 CDT 1 2005-10-30 01 -06 CST 2006-04-02 03 -05 CDT 1 2006-10-29 01 -06 CST 2007-03-11 03 -05 CDT 1 2007-11-04 01 -06 CST 2008-03-09 03 -05 CDT 1 2008-11-02 01 -06 CST 2009-03-08 03 -05 CDT 1 2009-11-01 01 -06 CST 2010-03-14 03 -05 CDT 1 2010-11-07 01 -06 CST 2011-03-13 03 -05 CDT 1 2011-11-06 01 -06 CST 2012-03-11 03 -05 CDT 1 2012-11-04 01 -06 CST 2013-03-10 03 -05 CDT 1 2013-11-03 01 -06 CST 2014-03-09 03 -05 CDT 1 2014-11-02 01 -06 CST 2015-03-08 03 -05 CDT 1 2015-11-01 01 -06 CST 2016-03-13 03 -05 CDT 1 2016-11-06 01 -06 CST 2017-03-12 03 -05 CDT 1 2017-11-05 01 -06 CST 2018-03-11 03 -05 CDT 1 2018-11-04 01 -06 CST 2019-03-10 03 -05 CDT 1 2019-11-03 01 -06 CST 2020-03-08 03 -05 CDT 1 2020-11-01 01 -06 CST 2021-03-14 03 -05 CDT 1 2021-11-07 01 -06 CST 2022-03-13 03 -05 CDT 1 2022-11-06 01 -06 CST 2023-03-12 03 -05 CDT 1 2023-11-05 01 -06 CST 2024-03-10 03 -05 CDT 1 2024-11-03 01 -06 CST 2025-03-09 03 -05 CDT 1 2025-11-02 01 -06 CST 2026-03-08 03 -05 CDT 1 2026-11-01 01 -06 CST 2027-03-14 03 -05 CDT 1 2027-11-07 01 -06 CST 2028-03-12 03 -05 CDT 1 2028-11-05 01 -06 CST 2029-03-11 03 -05 CDT 1 2029-11-04 01 -06 CST 2030-03-10 03 -05 CDT 1 2030-11-03 01 -06 CST 2031-03-09 03 -05 CDT 1 2031-11-02 01 -06 CST 2032-03-14 03 -05 CDT 1 2032-11-07 01 -06 CST 2033-03-13 03 -05 CDT 1 2033-11-06 01 -06 CST 2034-03-12 03 -05 CDT 1 2034-11-05 01 -06 CST 2035-03-11 03 -05 CDT 1 2035-11-04 01 -06 CST 2036-03-09 03 -05 CDT 1 2036-11-02 01 -06 CST 2037-03-08 03 -05 CDT 1 2037-11-01 01 -06 CST 2038-03-14 03 -05 CDT 1 2038-11-07 01 -06 CST 2039-03-13 03 -05 CDT 1 2039-11-06 01 -06 CST 2040-03-11 03 -05 CDT 1 2040-11-04 01 -06 CST 2041-03-10 03 -05 CDT 1 2041-11-03 01 -06 CST 2042-03-09 03 -05 CDT 1 2042-11-02 01 -06 CST 2043-03-08 03 -05 CDT 1 2043-11-01 01 -06 CST 2044-03-13 03 -05 CDT 1 2044-11-06 01 -06 CST 2045-03-12 03 -05 CDT 1 2045-11-05 01 -06 CST 2046-03-11 03 -05 CDT 1 2046-11-04 01 -06 CST 2047-03-10 03 -05 CDT 1 2047-11-03 01 -06 CST 2048-03-08 03 -05 CDT 1 2048-11-01 01 -06 CST 2049-03-14 03 -05 CDT 1 2049-11-07 01 -06 CST TZ="America/North_Dakota/New_Salem" - - -064539 LMT 1883-11-18 12 -07 MST 1918-03-31 03 -06 MDT 1 1918-10-27 01 -07 MST 1919-03-30 03 -06 MDT 1 1919-10-26 01 -07 MST 1942-02-09 03 -06 MWT 1 1945-08-14 17 -06 MPT 1 1945-09-30 01 -07 MST 1967-04-30 03 -06 MDT 1 1967-10-29 01 -07 MST 1968-04-28 03 -06 MDT 1 1968-10-27 01 -07 MST 1969-04-27 03 -06 MDT 1 1969-10-26 01 -07 MST 1970-04-26 03 -06 MDT 1 1970-10-25 01 -07 MST 1971-04-25 03 -06 MDT 1 1971-10-31 01 -07 MST 1972-04-30 03 -06 MDT 1 1972-10-29 01 -07 MST 1973-04-29 03 -06 MDT 1 1973-10-28 01 -07 MST 1974-01-06 03 -06 MDT 1 1974-10-27 01 -07 MST 1975-02-23 03 -06 MDT 1 1975-10-26 01 -07 MST 1976-04-25 03 -06 MDT 1 1976-10-31 01 -07 MST 1977-04-24 03 -06 MDT 1 1977-10-30 01 -07 MST 1978-04-30 03 -06 MDT 1 1978-10-29 01 -07 MST 1979-04-29 03 -06 MDT 1 1979-10-28 01 -07 MST 1980-04-27 03 -06 MDT 1 1980-10-26 01 -07 MST 1981-04-26 03 -06 MDT 1 1981-10-25 01 -07 MST 1982-04-25 03 -06 MDT 1 1982-10-31 01 -07 MST 1983-04-24 03 -06 MDT 1 1983-10-30 01 -07 MST 1984-04-29 03 -06 MDT 1 1984-10-28 01 -07 MST 1985-04-28 03 -06 MDT 1 1985-10-27 01 -07 MST 1986-04-27 03 -06 MDT 1 1986-10-26 01 -07 MST 1987-04-05 03 -06 MDT 1 1987-10-25 01 -07 MST 1988-04-03 03 -06 MDT 1 1988-10-30 01 -07 MST 1989-04-02 03 -06 MDT 1 1989-10-29 01 -07 MST 1990-04-01 03 -06 MDT 1 1990-10-28 01 -07 MST 1991-04-07 03 -06 MDT 1 1991-10-27 01 -07 MST 1992-04-05 03 -06 MDT 1 1992-10-25 01 -07 MST 1993-04-04 03 -06 MDT 1 1993-10-31 01 -07 MST 1994-04-03 03 -06 MDT 1 1994-10-30 01 -07 MST 1995-04-02 03 -06 MDT 1 1995-10-29 01 -07 MST 1996-04-07 03 -06 MDT 1 1996-10-27 01 -07 MST 1997-04-06 03 -06 MDT 1 1997-10-26 01 -07 MST 1998-04-05 03 -06 MDT 1 1998-10-25 01 -07 MST 1999-04-04 03 -06 MDT 1 1999-10-31 01 -07 MST 2000-04-02 03 -06 MDT 1 2000-10-29 01 -07 MST 2001-04-01 03 -06 MDT 1 2001-10-28 01 -07 MST 2002-04-07 03 -06 MDT 1 2002-10-27 01 -07 MST 2003-04-06 03 -06 MDT 1 2003-10-26 02 -06 CST 2004-04-04 03 -05 CDT 1 2004-10-31 01 -06 CST 2005-04-03 03 -05 CDT 1 2005-10-30 01 -06 CST 2006-04-02 03 -05 CDT 1 2006-10-29 01 -06 CST 2007-03-11 03 -05 CDT 1 2007-11-04 01 -06 CST 2008-03-09 03 -05 CDT 1 2008-11-02 01 -06 CST 2009-03-08 03 -05 CDT 1 2009-11-01 01 -06 CST 2010-03-14 03 -05 CDT 1 2010-11-07 01 -06 CST 2011-03-13 03 -05 CDT 1 2011-11-06 01 -06 CST 2012-03-11 03 -05 CDT 1 2012-11-04 01 -06 CST 2013-03-10 03 -05 CDT 1 2013-11-03 01 -06 CST 2014-03-09 03 -05 CDT 1 2014-11-02 01 -06 CST 2015-03-08 03 -05 CDT 1 2015-11-01 01 -06 CST 2016-03-13 03 -05 CDT 1 2016-11-06 01 -06 CST 2017-03-12 03 -05 CDT 1 2017-11-05 01 -06 CST 2018-03-11 03 -05 CDT 1 2018-11-04 01 -06 CST 2019-03-10 03 -05 CDT 1 2019-11-03 01 -06 CST 2020-03-08 03 -05 CDT 1 2020-11-01 01 -06 CST 2021-03-14 03 -05 CDT 1 2021-11-07 01 -06 CST 2022-03-13 03 -05 CDT 1 2022-11-06 01 -06 CST 2023-03-12 03 -05 CDT 1 2023-11-05 01 -06 CST 2024-03-10 03 -05 CDT 1 2024-11-03 01 -06 CST 2025-03-09 03 -05 CDT 1 2025-11-02 01 -06 CST 2026-03-08 03 -05 CDT 1 2026-11-01 01 -06 CST 2027-03-14 03 -05 CDT 1 2027-11-07 01 -06 CST 2028-03-12 03 -05 CDT 1 2028-11-05 01 -06 CST 2029-03-11 03 -05 CDT 1 2029-11-04 01 -06 CST 2030-03-10 03 -05 CDT 1 2030-11-03 01 -06 CST 2031-03-09 03 -05 CDT 1 2031-11-02 01 -06 CST 2032-03-14 03 -05 CDT 1 2032-11-07 01 -06 CST 2033-03-13 03 -05 CDT 1 2033-11-06 01 -06 CST 2034-03-12 03 -05 CDT 1 2034-11-05 01 -06 CST 2035-03-11 03 -05 CDT 1 2035-11-04 01 -06 CST 2036-03-09 03 -05 CDT 1 2036-11-02 01 -06 CST 2037-03-08 03 -05 CDT 1 2037-11-01 01 -06 CST 2038-03-14 03 -05 CDT 1 2038-11-07 01 -06 CST 2039-03-13 03 -05 CDT 1 2039-11-06 01 -06 CST 2040-03-11 03 -05 CDT 1 2040-11-04 01 -06 CST 2041-03-10 03 -05 CDT 1 2041-11-03 01 -06 CST 2042-03-09 03 -05 CDT 1 2042-11-02 01 -06 CST 2043-03-08 03 -05 CDT 1 2043-11-01 01 -06 CST 2044-03-13 03 -05 CDT 1 2044-11-06 01 -06 CST 2045-03-12 03 -05 CDT 1 2045-11-05 01 -06 CST 2046-03-11 03 -05 CDT 1 2046-11-04 01 -06 CST 2047-03-10 03 -05 CDT 1 2047-11-03 01 -06 CST 2048-03-08 03 -05 CDT 1 2048-11-01 01 -06 CST 2049-03-14 03 -05 CDT 1 2049-11-07 01 -06 CST TZ="America/Ojinaga" - - -065740 LMT 1922-01-01 00 -07 MST 1927-06-11 00 -06 CST 1930-11-14 23 -07 MST 1931-05-02 00 -06 CST 1931-09-30 23 -07 MST 1932-04-01 01 -06 CST 1996-04-07 03 -05 CDT 1 1996-10-27 01 -06 CST 1997-04-06 03 -05 CDT 1 1997-10-26 01 -06 CST 1998-04-05 03 -06 MDT 1 1998-10-25 01 -07 MST 1999-04-04 03 -06 MDT 1 1999-10-31 01 -07 MST 2000-04-02 03 -06 MDT 1 2000-10-29 01 -07 MST 2001-05-06 03 -06 MDT 1 2001-09-30 01 -07 MST 2002-04-07 03 -06 MDT 1 2002-10-27 01 -07 MST 2003-04-06 03 -06 MDT 1 2003-10-26 01 -07 MST 2004-04-04 03 -06 MDT 1 2004-10-31 01 -07 MST 2005-04-03 03 -06 MDT 1 2005-10-30 01 -07 MST 2006-04-02 03 -06 MDT 1 2006-10-29 01 -07 MST 2007-04-01 03 -06 MDT 1 2007-10-28 01 -07 MST 2008-04-06 03 -06 MDT 1 2008-10-26 01 -07 MST 2009-04-05 03 -06 MDT 1 2009-10-25 01 -07 MST 2010-03-14 03 -06 MDT 1 2010-11-07 01 -07 MST 2011-03-13 03 -06 MDT 1 2011-11-06 01 -07 MST 2012-03-11 03 -06 MDT 1 2012-11-04 01 -07 MST 2013-03-10 03 -06 MDT 1 2013-11-03 01 -07 MST 2014-03-09 03 -06 MDT 1 2014-11-02 01 -07 MST 2015-03-08 03 -06 MDT 1 2015-11-01 01 -07 MST 2016-03-13 03 -06 MDT 1 2016-11-06 01 -07 MST 2017-03-12 03 -06 MDT 1 2017-11-05 01 -07 MST 2018-03-11 03 -06 MDT 1 2018-11-04 01 -07 MST 2019-03-10 03 -06 MDT 1 2019-11-03 01 -07 MST 2020-03-08 03 -06 MDT 1 2020-11-01 01 -07 MST 2021-03-14 03 -06 MDT 1 2021-11-07 01 -07 MST 2022-03-13 03 -06 MDT 1 2022-11-06 01 -07 MST 2023-03-12 03 -06 MDT 1 2023-11-05 01 -07 MST 2024-03-10 03 -06 MDT 1 2024-11-03 01 -07 MST 2025-03-09 03 -06 MDT 1 2025-11-02 01 -07 MST 2026-03-08 03 -06 MDT 1 2026-11-01 01 -07 MST 2027-03-14 03 -06 MDT 1 2027-11-07 01 -07 MST 2028-03-12 03 -06 MDT 1 2028-11-05 01 -07 MST 2029-03-11 03 -06 MDT 1 2029-11-04 01 -07 MST 2030-03-10 03 -06 MDT 1 2030-11-03 01 -07 MST 2031-03-09 03 -06 MDT 1 2031-11-02 01 -07 MST 2032-03-14 03 -06 MDT 1 2032-11-07 01 -07 MST 2033-03-13 03 -06 MDT 1 2033-11-06 01 -07 MST 2034-03-12 03 -06 MDT 1 2034-11-05 01 -07 MST 2035-03-11 03 -06 MDT 1 2035-11-04 01 -07 MST 2036-03-09 03 -06 MDT 1 2036-11-02 01 -07 MST 2037-03-08 03 -06 MDT 1 2037-11-01 01 -07 MST 2038-03-14 03 -06 MDT 1 2038-11-07 01 -07 MST 2039-03-13 03 -06 MDT 1 2039-11-06 01 -07 MST 2040-03-11 03 -06 MDT 1 2040-11-04 01 -07 MST 2041-03-10 03 -06 MDT 1 2041-11-03 01 -07 MST 2042-03-09 03 -06 MDT 1 2042-11-02 01 -07 MST 2043-03-08 03 -06 MDT 1 2043-11-01 01 -07 MST 2044-03-13 03 -06 MDT 1 2044-11-06 01 -07 MST 2045-03-12 03 -06 MDT 1 2045-11-05 01 -07 MST 2046-03-11 03 -06 MDT 1 2046-11-04 01 -07 MST 2047-03-10 03 -06 MDT 1 2047-11-03 01 -07 MST 2048-03-08 03 -06 MDT 1 2048-11-01 01 -07 MST 2049-03-14 03 -06 MDT 1 2049-11-07 01 -07 MST TZ="America/Panama" - - -051808 LMT 1889-12-31 23:58:32 -051936 CMT 1908-04-22 00:19:36 -05 EST TZ="America/Pangnirtung" - - -00 1920-12-31 20 -04 AST 1942-02-09 03 -03 AWT 1 1945-08-14 20 -03 APT 1 1945-09-30 01 -04 AST 1965-04-25 02 -02 ADDT 1 1965-10-31 00 -04 AST 1980-04-27 03 -03 ADT 1 1980-10-26 01 -04 AST 1981-04-26 03 -03 ADT 1 1981-10-25 01 -04 AST 1982-04-25 03 -03 ADT 1 1982-10-31 01 -04 AST 1983-04-24 03 -03 ADT 1 1983-10-30 01 -04 AST 1984-04-29 03 -03 ADT 1 1984-10-28 01 -04 AST 1985-04-28 03 -03 ADT 1 1985-10-27 01 -04 AST 1986-04-27 03 -03 ADT 1 1986-10-26 01 -04 AST 1987-04-05 03 -03 ADT 1 1987-10-25 01 -04 AST 1988-04-03 03 -03 ADT 1 1988-10-30 01 -04 AST 1989-04-02 03 -03 ADT 1 1989-10-29 01 -04 AST 1990-04-01 03 -03 ADT 1 1990-10-28 01 -04 AST 1991-04-07 03 -03 ADT 1 1991-10-27 01 -04 AST 1992-04-05 03 -03 ADT 1 1992-10-25 01 -04 AST 1993-04-04 03 -03 ADT 1 1993-10-31 01 -04 AST 1994-04-03 03 -03 ADT 1 1994-10-30 01 -04 AST 1995-04-02 02 -04 EDT 1 1995-10-29 01 -05 EST 1996-04-07 03 -04 EDT 1 1996-10-27 01 -05 EST 1997-04-06 03 -04 EDT 1 1997-10-26 01 -05 EST 1998-04-05 03 -04 EDT 1 1998-10-25 01 -05 EST 1999-04-04 03 -04 EDT 1 1999-10-31 00 -06 CST 2000-04-02 03 -05 CDT 1 2000-10-29 02 -05 EST 2001-04-01 03 -04 EDT 1 2001-10-28 01 -05 EST 2002-04-07 03 -04 EDT 1 2002-10-27 01 -05 EST 2003-04-06 03 -04 EDT 1 2003-10-26 01 -05 EST 2004-04-04 03 -04 EDT 1 2004-10-31 01 -05 EST 2005-04-03 03 -04 EDT 1 2005-10-30 01 -05 EST 2006-04-02 03 -04 EDT 1 2006-10-29 01 -05 EST 2007-03-11 03 -04 EDT 1 2007-11-04 01 -05 EST 2008-03-09 03 -04 EDT 1 2008-11-02 01 -05 EST 2009-03-08 03 -04 EDT 1 2009-11-01 01 -05 EST 2010-03-14 03 -04 EDT 1 2010-11-07 01 -05 EST 2011-03-13 03 -04 EDT 1 2011-11-06 01 -05 EST 2012-03-11 03 -04 EDT 1 2012-11-04 01 -05 EST 2013-03-10 03 -04 EDT 1 2013-11-03 01 -05 EST 2014-03-09 03 -04 EDT 1 2014-11-02 01 -05 EST 2015-03-08 03 -04 EDT 1 2015-11-01 01 -05 EST 2016-03-13 03 -04 EDT 1 2016-11-06 01 -05 EST 2017-03-12 03 -04 EDT 1 2017-11-05 01 -05 EST 2018-03-11 03 -04 EDT 1 2018-11-04 01 -05 EST 2019-03-10 03 -04 EDT 1 2019-11-03 01 -05 EST 2020-03-08 03 -04 EDT 1 2020-11-01 01 -05 EST 2021-03-14 03 -04 EDT 1 2021-11-07 01 -05 EST 2022-03-13 03 -04 EDT 1 2022-11-06 01 -05 EST 2023-03-12 03 -04 EDT 1 2023-11-05 01 -05 EST 2024-03-10 03 -04 EDT 1 2024-11-03 01 -05 EST 2025-03-09 03 -04 EDT 1 2025-11-02 01 -05 EST 2026-03-08 03 -04 EDT 1 2026-11-01 01 -05 EST 2027-03-14 03 -04 EDT 1 2027-11-07 01 -05 EST 2028-03-12 03 -04 EDT 1 2028-11-05 01 -05 EST 2029-03-11 03 -04 EDT 1 2029-11-04 01 -05 EST 2030-03-10 03 -04 EDT 1 2030-11-03 01 -05 EST 2031-03-09 03 -04 EDT 1 2031-11-02 01 -05 EST 2032-03-14 03 -04 EDT 1 2032-11-07 01 -05 EST 2033-03-13 03 -04 EDT 1 2033-11-06 01 -05 EST 2034-03-12 03 -04 EDT 1 2034-11-05 01 -05 EST 2035-03-11 03 -04 EDT 1 2035-11-04 01 -05 EST 2036-03-09 03 -04 EDT 1 2036-11-02 01 -05 EST 2037-03-08 03 -04 EDT 1 2037-11-01 01 -05 EST 2038-03-14 03 -04 EDT 1 2038-11-07 01 -05 EST 2039-03-13 03 -04 EDT 1 2039-11-06 01 -05 EST 2040-03-11 03 -04 EDT 1 2040-11-04 01 -05 EST 2041-03-10 03 -04 EDT 1 2041-11-03 01 -05 EST 2042-03-09 03 -04 EDT 1 2042-11-02 01 -05 EST 2043-03-08 03 -04 EDT 1 2043-11-01 01 -05 EST 2044-03-13 03 -04 EDT 1 2044-11-06 01 -05 EST 2045-03-12 03 -04 EDT 1 2045-11-05 01 -05 EST 2046-03-11 03 -04 EDT 1 2046-11-04 01 -05 EST 2047-03-10 03 -04 EDT 1 2047-11-03 01 -05 EST 2048-03-08 03 -04 EDT 1 2048-11-01 01 -05 EST 2049-03-14 03 -04 EDT 1 2049-11-07 01 -05 EST TZ="America/Paramaribo" - - -034040 LMT 1910-12-31 23:59:48 -034052 PMT 1935-01-01 00:00:16 -034036 PMT 1945-10-01 00:10:36 -0330 1984-10-01 00:30 -03 TZ="America/Phoenix" - - -072818 LMT 1883-11-18 12 -07 MST 1918-03-31 03 -06 MDT 1 1918-10-27 01 -07 MST 1919-03-30 03 -06 MDT 1 1919-10-26 01 -07 MST 1942-02-09 03 -06 MWT 1 1943-12-31 23:01 -07 MST 1944-04-01 01:01 -06 MWT 1 1944-09-30 23:01 -07 MST 1967-04-30 03 -06 MDT 1 1967-10-29 01 -07 MST TZ="America/Port-au-Prince" - - -044920 LMT 1890-01-01 00:00:20 -0449 PPMT 1917-01-24 11:49 -05 EST 1983-05-08 01 -04 EDT 1 1983-10-29 23 -05 EST 1984-04-29 01 -04 EDT 1 1984-10-27 23 -05 EST 1985-04-28 01 -04 EDT 1 1985-10-26 23 -05 EST 1986-04-27 01 -04 EDT 1 1986-10-25 23 -05 EST 1987-04-26 01 -04 EDT 1 1987-10-24 23 -05 EST 1988-04-03 02 -04 EDT 1 1988-10-30 01 -05 EST 1989-04-02 02 -04 EDT 1 1989-10-29 01 -05 EST 1990-04-01 02 -04 EDT 1 1990-10-28 01 -05 EST 1991-04-07 02 -04 EDT 1 1991-10-27 01 -05 EST 1992-04-05 02 -04 EDT 1 1992-10-25 01 -05 EST 1993-04-04 02 -04 EDT 1 1993-10-31 01 -05 EST 1994-04-03 02 -04 EDT 1 1994-10-30 01 -05 EST 1995-04-02 02 -04 EDT 1 1995-10-29 01 -05 EST 1996-04-07 02 -04 EDT 1 1996-10-27 01 -05 EST 1997-04-06 02 -04 EDT 1 1997-10-26 01 -05 EST 2005-04-03 01 -04 EDT 1 2005-10-29 23 -05 EST 2006-04-02 01 -04 EDT 1 2006-10-28 23 -05 EST 2012-03-11 03 -04 EDT 1 2012-11-04 01 -05 EST 2013-03-10 03 -04 EDT 1 2013-11-03 01 -05 EST 2014-03-09 03 -04 EDT 1 2014-11-02 01 -05 EST 2015-03-08 03 -04 EDT 1 2015-11-01 01 -05 EST 2017-03-12 03 -04 EDT 1 2017-11-05 01 -05 EST 2018-03-11 03 -04 EDT 1 2018-11-04 01 -05 EST 2019-03-10 03 -04 EDT 1 2019-11-03 01 -05 EST 2020-03-08 03 -04 EDT 1 2020-11-01 01 -05 EST 2021-03-14 03 -04 EDT 1 2021-11-07 01 -05 EST 2022-03-13 03 -04 EDT 1 2022-11-06 01 -05 EST 2023-03-12 03 -04 EDT 1 2023-11-05 01 -05 EST 2024-03-10 03 -04 EDT 1 2024-11-03 01 -05 EST 2025-03-09 03 -04 EDT 1 2025-11-02 01 -05 EST 2026-03-08 03 -04 EDT 1 2026-11-01 01 -05 EST 2027-03-14 03 -04 EDT 1 2027-11-07 01 -05 EST 2028-03-12 03 -04 EDT 1 2028-11-05 01 -05 EST 2029-03-11 03 -04 EDT 1 2029-11-04 01 -05 EST 2030-03-10 03 -04 EDT 1 2030-11-03 01 -05 EST 2031-03-09 03 -04 EDT 1 2031-11-02 01 -05 EST 2032-03-14 03 -04 EDT 1 2032-11-07 01 -05 EST 2033-03-13 03 -04 EDT 1 2033-11-06 01 -05 EST 2034-03-12 03 -04 EDT 1 2034-11-05 01 -05 EST 2035-03-11 03 -04 EDT 1 2035-11-04 01 -05 EST 2036-03-09 03 -04 EDT 1 2036-11-02 01 -05 EST 2037-03-08 03 -04 EDT 1 2037-11-01 01 -05 EST 2038-03-14 03 -04 EDT 1 2038-11-07 01 -05 EST 2039-03-13 03 -04 EDT 1 2039-11-06 01 -05 EST 2040-03-11 03 -04 EDT 1 2040-11-04 01 -05 EST 2041-03-10 03 -04 EDT 1 2041-11-03 01 -05 EST 2042-03-09 03 -04 EDT 1 2042-11-02 01 -05 EST 2043-03-08 03 -04 EDT 1 2043-11-01 01 -05 EST 2044-03-13 03 -04 EDT 1 2044-11-06 01 -05 EST 2045-03-12 03 -04 EDT 1 2045-11-05 01 -05 EST 2046-03-11 03 -04 EDT 1 2046-11-04 01 -05 EST 2047-03-10 03 -04 EDT 1 2047-11-03 01 -05 EST 2048-03-08 03 -04 EDT 1 2048-11-01 01 -05 EST 2049-03-14 03 -04 EDT 1 2049-11-07 01 -05 EST TZ="America/Port_of_Spain" - - -040604 LMT 1912-03-02 00:06:04 -04 AST TZ="America/Porto_Velho" - - -041536 LMT 1914-01-01 00:15:36 -04 1931-10-03 12 -03 1 1932-03-31 23 -04 1932-10-03 01 -03 1 1933-03-31 23 -04 1949-12-01 01 -03 1 1950-04-16 00 -04 1950-12-01 01 -03 1 1951-03-31 23 -04 1951-12-01 01 -03 1 1952-03-31 23 -04 1952-12-01 01 -03 1 1953-02-28 23 -04 1963-12-09 01 -03 1 1964-02-29 23 -04 1965-01-31 01 -03 1 1965-03-30 23 -04 1965-12-01 01 -03 1 1966-02-28 23 -04 1966-11-01 01 -03 1 1967-02-28 23 -04 1967-11-01 01 -03 1 1968-02-29 23 -04 1985-11-02 01 -03 1 1986-03-14 23 -04 1986-10-25 01 -03 1 1987-02-13 23 -04 1987-10-25 01 -03 1 1988-02-06 23 -04 TZ="America/Puerto_Rico" - - -042425 LMT 1899-03-28 12:24:25 -04 AST 1942-05-03 01 -03 AWT 1 1945-08-14 20 -03 APT 1 1945-09-30 01 -04 AST TZ="America/Punta_Arenas" - - -044340 LMT 1890-01-01 00:00:54 -044246 SMT 1910-01-09 23:42:46 -05 1916-07-01 00:17:14 -044246 SMT 1918-09-10 00:42:46 -04 1919-06-30 23:17:14 -044246 SMT 1927-09-01 00:42:46 -04 1 1928-03-31 23 -05 1928-09-01 01 -04 1 1929-03-31 23 -05 1929-09-01 01 -04 1 1930-03-31 23 -05 1930-09-01 01 -04 1 1931-03-31 23 -05 1931-09-01 01 -04 1 1932-03-31 23 -05 1932-09-01 01 -04 1942-05-31 23 -05 1942-08-01 01 -04 1947-03-31 23 -05 1947-05-22 00 -04 1968-11-03 01 -03 1 1969-03-29 23 -04 1969-11-23 01 -03 1 1970-03-28 23 -04 1970-10-11 01 -03 1 1971-03-13 23 -04 1971-10-10 01 -03 1 1972-03-11 23 -04 1972-10-15 01 -03 1 1973-03-10 23 -04 1973-09-30 01 -03 1 1974-03-09 23 -04 1974-10-13 01 -03 1 1975-03-08 23 -04 1975-10-12 01 -03 1 1976-03-13 23 -04 1976-10-10 01 -03 1 1977-03-12 23 -04 1977-10-09 01 -03 1 1978-03-11 23 -04 1978-10-15 01 -03 1 1979-03-10 23 -04 1979-10-14 01 -03 1 1980-03-08 23 -04 1980-10-12 01 -03 1 1981-03-14 23 -04 1981-10-11 01 -03 1 1982-03-13 23 -04 1982-10-10 01 -03 1 1983-03-12 23 -04 1983-10-09 01 -03 1 1984-03-10 23 -04 1984-10-14 01 -03 1 1985-03-09 23 -04 1985-10-13 01 -03 1 1986-03-08 23 -04 1986-10-12 01 -03 1 1987-04-11 23 -04 1987-10-11 01 -03 1 1988-03-12 23 -04 1988-10-09 01 -03 1 1989-03-11 23 -04 1989-10-15 01 -03 1 1990-03-10 23 -04 1990-09-16 01 -03 1 1991-03-09 23 -04 1991-10-13 01 -03 1 1992-03-14 23 -04 1992-10-11 01 -03 1 1993-03-13 23 -04 1993-10-10 01 -03 1 1994-03-12 23 -04 1994-10-09 01 -03 1 1995-03-11 23 -04 1995-10-15 01 -03 1 1996-03-09 23 -04 1996-10-13 01 -03 1 1997-03-29 23 -04 1997-10-12 01 -03 1 1998-03-14 23 -04 1998-09-27 01 -03 1 1999-04-03 23 -04 1999-10-10 01 -03 1 2000-03-11 23 -04 2000-10-15 01 -03 1 2001-03-10 23 -04 2001-10-14 01 -03 1 2002-03-09 23 -04 2002-10-13 01 -03 1 2003-03-08 23 -04 2003-10-12 01 -03 1 2004-03-13 23 -04 2004-10-10 01 -03 1 2005-03-12 23 -04 2005-10-09 01 -03 1 2006-03-11 23 -04 2006-10-15 01 -03 1 2007-03-10 23 -04 2007-10-14 01 -03 1 2008-03-29 23 -04 2008-10-12 01 -03 1 2009-03-14 23 -04 2009-10-11 01 -03 1 2010-04-03 23 -04 2010-10-10 01 -03 1 2011-05-07 23 -04 2011-08-21 01 -03 1 2012-04-28 23 -04 2012-09-02 01 -03 1 2013-04-27 23 -04 2013-09-08 01 -03 1 2014-04-26 23 -04 2014-09-07 01 -03 1 2016-05-14 23 -04 2016-08-14 01 -03 1 2016-12-04 00 -03 TZ="America/Rainy_River" - - -061816 LMT 1895-01-01 00:18:16 -06 CST 1918-04-14 03 -05 CDT 1 1918-10-27 01 -06 CST 1940-09-29 01 -05 CDT 1 1942-02-09 03 -05 CWT 1 1945-08-14 18 -05 CPT 1 1945-09-30 01 -06 CST 1974-04-28 03 -05 CDT 1 1974-10-27 01 -06 CST 1975-04-27 03 -05 CDT 1 1975-10-26 01 -06 CST 1976-04-25 03 -05 CDT 1 1976-10-31 01 -06 CST 1977-04-24 03 -05 CDT 1 1977-10-30 01 -06 CST 1978-04-30 03 -05 CDT 1 1978-10-29 01 -06 CST 1979-04-29 03 -05 CDT 1 1979-10-28 01 -06 CST 1980-04-27 03 -05 CDT 1 1980-10-26 01 -06 CST 1981-04-26 03 -05 CDT 1 1981-10-25 01 -06 CST 1982-04-25 03 -05 CDT 1 1982-10-31 01 -06 CST 1983-04-24 03 -05 CDT 1 1983-10-30 01 -06 CST 1984-04-29 03 -05 CDT 1 1984-10-28 01 -06 CST 1985-04-28 03 -05 CDT 1 1985-10-27 01 -06 CST 1986-04-27 03 -05 CDT 1 1986-10-26 01 -06 CST 1987-04-05 03 -05 CDT 1 1987-10-25 01 -06 CST 1988-04-03 03 -05 CDT 1 1988-10-30 01 -06 CST 1989-04-02 03 -05 CDT 1 1989-10-29 01 -06 CST 1990-04-01 03 -05 CDT 1 1990-10-28 01 -06 CST 1991-04-07 03 -05 CDT 1 1991-10-27 01 -06 CST 1992-04-05 03 -05 CDT 1 1992-10-25 01 -06 CST 1993-04-04 03 -05 CDT 1 1993-10-31 01 -06 CST 1994-04-03 03 -05 CDT 1 1994-10-30 01 -06 CST 1995-04-02 03 -05 CDT 1 1995-10-29 01 -06 CST 1996-04-07 03 -05 CDT 1 1996-10-27 01 -06 CST 1997-04-06 03 -05 CDT 1 1997-10-26 01 -06 CST 1998-04-05 03 -05 CDT 1 1998-10-25 01 -06 CST 1999-04-04 03 -05 CDT 1 1999-10-31 01 -06 CST 2000-04-02 03 -05 CDT 1 2000-10-29 01 -06 CST 2001-04-01 03 -05 CDT 1 2001-10-28 01 -06 CST 2002-04-07 03 -05 CDT 1 2002-10-27 01 -06 CST 2003-04-06 03 -05 CDT 1 2003-10-26 01 -06 CST 2004-04-04 03 -05 CDT 1 2004-10-31 01 -06 CST 2005-04-03 03 -05 CDT 1 2005-10-30 01 -06 CST 2006-04-02 03 -05 CDT 1 2006-10-29 01 -06 CST 2007-03-11 03 -05 CDT 1 2007-11-04 01 -06 CST 2008-03-09 03 -05 CDT 1 2008-11-02 01 -06 CST 2009-03-08 03 -05 CDT 1 2009-11-01 01 -06 CST 2010-03-14 03 -05 CDT 1 2010-11-07 01 -06 CST 2011-03-13 03 -05 CDT 1 2011-11-06 01 -06 CST 2012-03-11 03 -05 CDT 1 2012-11-04 01 -06 CST 2013-03-10 03 -05 CDT 1 2013-11-03 01 -06 CST 2014-03-09 03 -05 CDT 1 2014-11-02 01 -06 CST 2015-03-08 03 -05 CDT 1 2015-11-01 01 -06 CST 2016-03-13 03 -05 CDT 1 2016-11-06 01 -06 CST 2017-03-12 03 -05 CDT 1 2017-11-05 01 -06 CST 2018-03-11 03 -05 CDT 1 2018-11-04 01 -06 CST 2019-03-10 03 -05 CDT 1 2019-11-03 01 -06 CST 2020-03-08 03 -05 CDT 1 2020-11-01 01 -06 CST 2021-03-14 03 -05 CDT 1 2021-11-07 01 -06 CST 2022-03-13 03 -05 CDT 1 2022-11-06 01 -06 CST 2023-03-12 03 -05 CDT 1 2023-11-05 01 -06 CST 2024-03-10 03 -05 CDT 1 2024-11-03 01 -06 CST 2025-03-09 03 -05 CDT 1 2025-11-02 01 -06 CST 2026-03-08 03 -05 CDT 1 2026-11-01 01 -06 CST 2027-03-14 03 -05 CDT 1 2027-11-07 01 -06 CST 2028-03-12 03 -05 CDT 1 2028-11-05 01 -06 CST 2029-03-11 03 -05 CDT 1 2029-11-04 01 -06 CST 2030-03-10 03 -05 CDT 1 2030-11-03 01 -06 CST 2031-03-09 03 -05 CDT 1 2031-11-02 01 -06 CST 2032-03-14 03 -05 CDT 1 2032-11-07 01 -06 CST 2033-03-13 03 -05 CDT 1 2033-11-06 01 -06 CST 2034-03-12 03 -05 CDT 1 2034-11-05 01 -06 CST 2035-03-11 03 -05 CDT 1 2035-11-04 01 -06 CST 2036-03-09 03 -05 CDT 1 2036-11-02 01 -06 CST 2037-03-08 03 -05 CDT 1 2037-11-01 01 -06 CST 2038-03-14 03 -05 CDT 1 2038-11-07 01 -06 CST 2039-03-13 03 -05 CDT 1 2039-11-06 01 -06 CST 2040-03-11 03 -05 CDT 1 2040-11-04 01 -06 CST 2041-03-10 03 -05 CDT 1 2041-11-03 01 -06 CST 2042-03-09 03 -05 CDT 1 2042-11-02 01 -06 CST 2043-03-08 03 -05 CDT 1 2043-11-01 01 -06 CST 2044-03-13 03 -05 CDT 1 2044-11-06 01 -06 CST 2045-03-12 03 -05 CDT 1 2045-11-05 01 -06 CST 2046-03-11 03 -05 CDT 1 2046-11-04 01 -06 CST 2047-03-10 03 -05 CDT 1 2047-11-03 01 -06 CST 2048-03-08 03 -05 CDT 1 2048-11-01 01 -06 CST 2049-03-14 03 -05 CDT 1 2049-11-07 01 -06 CST TZ="America/Rankin_Inlet" - - -00 1956-12-31 18 -06 CST 1965-04-25 02 -04 CDDT 1 1965-10-31 00 -06 CST 1980-04-27 03 -05 CDT 1 1980-10-26 01 -06 CST 1981-04-26 03 -05 CDT 1 1981-10-25 01 -06 CST 1982-04-25 03 -05 CDT 1 1982-10-31 01 -06 CST 1983-04-24 03 -05 CDT 1 1983-10-30 01 -06 CST 1984-04-29 03 -05 CDT 1 1984-10-28 01 -06 CST 1985-04-28 03 -05 CDT 1 1985-10-27 01 -06 CST 1986-04-27 03 -05 CDT 1 1986-10-26 01 -06 CST 1987-04-05 03 -05 CDT 1 1987-10-25 01 -06 CST 1988-04-03 03 -05 CDT 1 1988-10-30 01 -06 CST 1989-04-02 03 -05 CDT 1 1989-10-29 01 -06 CST 1990-04-01 03 -05 CDT 1 1990-10-28 01 -06 CST 1991-04-07 03 -05 CDT 1 1991-10-27 01 -06 CST 1992-04-05 03 -05 CDT 1 1992-10-25 01 -06 CST 1993-04-04 03 -05 CDT 1 1993-10-31 01 -06 CST 1994-04-03 03 -05 CDT 1 1994-10-30 01 -06 CST 1995-04-02 03 -05 CDT 1 1995-10-29 01 -06 CST 1996-04-07 03 -05 CDT 1 1996-10-27 01 -06 CST 1997-04-06 03 -05 CDT 1 1997-10-26 01 -06 CST 1998-04-05 03 -05 CDT 1 1998-10-25 01 -06 CST 1999-04-04 03 -05 CDT 1 1999-10-31 01 -06 CST 2000-04-02 03 -05 CDT 1 2000-10-29 02 -05 EST 2001-04-01 03 -05 CDT 1 2001-10-28 01 -06 CST 2002-04-07 03 -05 CDT 1 2002-10-27 01 -06 CST 2003-04-06 03 -05 CDT 1 2003-10-26 01 -06 CST 2004-04-04 03 -05 CDT 1 2004-10-31 01 -06 CST 2005-04-03 03 -05 CDT 1 2005-10-30 01 -06 CST 2006-04-02 03 -05 CDT 1 2006-10-29 01 -06 CST 2007-03-11 03 -05 CDT 1 2007-11-04 01 -06 CST 2008-03-09 03 -05 CDT 1 2008-11-02 01 -06 CST 2009-03-08 03 -05 CDT 1 2009-11-01 01 -06 CST 2010-03-14 03 -05 CDT 1 2010-11-07 01 -06 CST 2011-03-13 03 -05 CDT 1 2011-11-06 01 -06 CST 2012-03-11 03 -05 CDT 1 2012-11-04 01 -06 CST 2013-03-10 03 -05 CDT 1 2013-11-03 01 -06 CST 2014-03-09 03 -05 CDT 1 2014-11-02 01 -06 CST 2015-03-08 03 -05 CDT 1 2015-11-01 01 -06 CST 2016-03-13 03 -05 CDT 1 2016-11-06 01 -06 CST 2017-03-12 03 -05 CDT 1 2017-11-05 01 -06 CST 2018-03-11 03 -05 CDT 1 2018-11-04 01 -06 CST 2019-03-10 03 -05 CDT 1 2019-11-03 01 -06 CST 2020-03-08 03 -05 CDT 1 2020-11-01 01 -06 CST 2021-03-14 03 -05 CDT 1 2021-11-07 01 -06 CST 2022-03-13 03 -05 CDT 1 2022-11-06 01 -06 CST 2023-03-12 03 -05 CDT 1 2023-11-05 01 -06 CST 2024-03-10 03 -05 CDT 1 2024-11-03 01 -06 CST 2025-03-09 03 -05 CDT 1 2025-11-02 01 -06 CST 2026-03-08 03 -05 CDT 1 2026-11-01 01 -06 CST 2027-03-14 03 -05 CDT 1 2027-11-07 01 -06 CST 2028-03-12 03 -05 CDT 1 2028-11-05 01 -06 CST 2029-03-11 03 -05 CDT 1 2029-11-04 01 -06 CST 2030-03-10 03 -05 CDT 1 2030-11-03 01 -06 CST 2031-03-09 03 -05 CDT 1 2031-11-02 01 -06 CST 2032-03-14 03 -05 CDT 1 2032-11-07 01 -06 CST 2033-03-13 03 -05 CDT 1 2033-11-06 01 -06 CST 2034-03-12 03 -05 CDT 1 2034-11-05 01 -06 CST 2035-03-11 03 -05 CDT 1 2035-11-04 01 -06 CST 2036-03-09 03 -05 CDT 1 2036-11-02 01 -06 CST 2037-03-08 03 -05 CDT 1 2037-11-01 01 -06 CST 2038-03-14 03 -05 CDT 1 2038-11-07 01 -06 CST 2039-03-13 03 -05 CDT 1 2039-11-06 01 -06 CST 2040-03-11 03 -05 CDT 1 2040-11-04 01 -06 CST 2041-03-10 03 -05 CDT 1 2041-11-03 01 -06 CST 2042-03-09 03 -05 CDT 1 2042-11-02 01 -06 CST 2043-03-08 03 -05 CDT 1 2043-11-01 01 -06 CST 2044-03-13 03 -05 CDT 1 2044-11-06 01 -06 CST 2045-03-12 03 -05 CDT 1 2045-11-05 01 -06 CST 2046-03-11 03 -05 CDT 1 2046-11-04 01 -06 CST 2047-03-10 03 -05 CDT 1 2047-11-03 01 -06 CST 2048-03-08 03 -05 CDT 1 2048-11-01 01 -06 CST 2049-03-14 03 -05 CDT 1 2049-11-07 01 -06 CST TZ="America/Recife" - - -021936 LMT 1913-12-31 23:19:36 -03 1931-10-03 12 -02 1 1932-03-31 23 -03 1932-10-03 01 -02 1 1933-03-31 23 -03 1949-12-01 01 -02 1 1950-04-16 00 -03 1950-12-01 01 -02 1 1951-03-31 23 -03 1951-12-01 01 -02 1 1952-03-31 23 -03 1952-12-01 01 -02 1 1953-02-28 23 -03 1963-12-09 01 -02 1 1964-02-29 23 -03 1965-01-31 01 -02 1 1965-03-30 23 -03 1965-12-01 01 -02 1 1966-02-28 23 -03 1966-11-01 01 -02 1 1967-02-28 23 -03 1967-11-01 01 -02 1 1968-02-29 23 -03 1985-11-02 01 -02 1 1986-03-14 23 -03 1986-10-25 01 -02 1 1987-02-13 23 -03 1987-10-25 01 -02 1 1988-02-06 23 -03 1988-10-16 01 -02 1 1989-01-28 23 -03 1989-10-15 01 -02 1 1990-02-10 23 -03 1999-10-03 01 -02 1 2000-02-26 23 -03 2000-10-08 01 -02 1 2000-10-14 23 -03 2001-10-14 01 -02 1 2002-02-16 23 -03 TZ="America/Regina" - - -065836 LMT 1905-08-31 23:58:36 -07 MST 1918-04-14 03 -06 MDT 1 1918-10-27 01 -07 MST 1930-05-04 01 -06 MDT 1 1930-10-04 23 -07 MST 1931-05-03 01 -06 MDT 1 1931-10-03 23 -07 MST 1932-05-01 01 -06 MDT 1 1932-10-01 23 -07 MST 1933-05-07 01 -06 MDT 1 1933-09-30 23 -07 MST 1934-05-06 01 -06 MDT 1 1934-10-06 23 -07 MST 1937-04-11 01 -06 MDT 1 1937-10-09 23 -07 MST 1938-04-10 01 -06 MDT 1 1938-10-01 23 -07 MST 1939-04-09 01 -06 MDT 1 1939-10-07 23 -07 MST 1940-04-14 01 -06 MDT 1 1940-10-12 23 -07 MST 1941-04-13 01 -06 MDT 1 1941-10-11 23 -07 MST 1942-02-09 03 -06 MWT 1 1945-08-14 17 -06 MPT 1 1945-09-30 01 -07 MST 1946-04-14 03 -06 MDT 1 1946-10-13 01 -07 MST 1947-04-27 03 -06 MDT 1 1947-09-28 01 -07 MST 1948-04-25 03 -06 MDT 1 1948-09-26 01 -07 MST 1949-04-24 03 -06 MDT 1 1949-09-25 01 -07 MST 1950-04-30 03 -06 MDT 1 1950-09-24 01 -07 MST 1951-04-29 03 -06 MDT 1 1951-09-30 01 -07 MST 1952-04-27 03 -06 MDT 1 1952-09-28 01 -07 MST 1953-04-26 03 -06 MDT 1 1953-09-27 01 -07 MST 1954-04-25 03 -06 MDT 1 1954-09-26 01 -07 MST 1955-04-24 03 -06 MDT 1 1955-09-25 01 -07 MST 1956-04-29 03 -06 MDT 1 1956-09-30 01 -07 MST 1957-04-28 03 -06 MDT 1 1957-09-29 01 -07 MST 1959-04-26 03 -06 MDT 1 1959-10-25 01 -07 MST 1960-04-24 03 -06 CST TZ="America/Resolute" - - -00 1947-08-30 18 -06 CST 1965-04-25 02 -04 CDDT 1 1965-10-31 00 -06 CST 1980-04-27 03 -05 CDT 1 1980-10-26 01 -06 CST 1981-04-26 03 -05 CDT 1 1981-10-25 01 -06 CST 1982-04-25 03 -05 CDT 1 1982-10-31 01 -06 CST 1983-04-24 03 -05 CDT 1 1983-10-30 01 -06 CST 1984-04-29 03 -05 CDT 1 1984-10-28 01 -06 CST 1985-04-28 03 -05 CDT 1 1985-10-27 01 -06 CST 1986-04-27 03 -05 CDT 1 1986-10-26 01 -06 CST 1987-04-05 03 -05 CDT 1 1987-10-25 01 -06 CST 1988-04-03 03 -05 CDT 1 1988-10-30 01 -06 CST 1989-04-02 03 -05 CDT 1 1989-10-29 01 -06 CST 1990-04-01 03 -05 CDT 1 1990-10-28 01 -06 CST 1991-04-07 03 -05 CDT 1 1991-10-27 01 -06 CST 1992-04-05 03 -05 CDT 1 1992-10-25 01 -06 CST 1993-04-04 03 -05 CDT 1 1993-10-31 01 -06 CST 1994-04-03 03 -05 CDT 1 1994-10-30 01 -06 CST 1995-04-02 03 -05 CDT 1 1995-10-29 01 -06 CST 1996-04-07 03 -05 CDT 1 1996-10-27 01 -06 CST 1997-04-06 03 -05 CDT 1 1997-10-26 01 -06 CST 1998-04-05 03 -05 CDT 1 1998-10-25 01 -06 CST 1999-04-04 03 -05 CDT 1 1999-10-31 01 -06 CST 2000-04-02 03 -05 CDT 1 2000-10-29 02 -05 EST 2001-04-01 03 -05 CDT 1 2001-10-28 01 -06 CST 2002-04-07 03 -05 CDT 1 2002-10-27 01 -06 CST 2003-04-06 03 -05 CDT 1 2003-10-26 01 -06 CST 2004-04-04 03 -05 CDT 1 2004-10-31 01 -06 CST 2005-04-03 03 -05 CDT 1 2005-10-30 01 -06 CST 2006-04-02 03 -05 CDT 1 2006-10-29 02 -05 EST 2007-03-11 03 -05 CDT 1 2007-11-04 01 -06 CST 2008-03-09 03 -05 CDT 1 2008-11-02 01 -06 CST 2009-03-08 03 -05 CDT 1 2009-11-01 01 -06 CST 2010-03-14 03 -05 CDT 1 2010-11-07 01 -06 CST 2011-03-13 03 -05 CDT 1 2011-11-06 01 -06 CST 2012-03-11 03 -05 CDT 1 2012-11-04 01 -06 CST 2013-03-10 03 -05 CDT 1 2013-11-03 01 -06 CST 2014-03-09 03 -05 CDT 1 2014-11-02 01 -06 CST 2015-03-08 03 -05 CDT 1 2015-11-01 01 -06 CST 2016-03-13 03 -05 CDT 1 2016-11-06 01 -06 CST 2017-03-12 03 -05 CDT 1 2017-11-05 01 -06 CST 2018-03-11 03 -05 CDT 1 2018-11-04 01 -06 CST 2019-03-10 03 -05 CDT 1 2019-11-03 01 -06 CST 2020-03-08 03 -05 CDT 1 2020-11-01 01 -06 CST 2021-03-14 03 -05 CDT 1 2021-11-07 01 -06 CST 2022-03-13 03 -05 CDT 1 2022-11-06 01 -06 CST 2023-03-12 03 -05 CDT 1 2023-11-05 01 -06 CST 2024-03-10 03 -05 CDT 1 2024-11-03 01 -06 CST 2025-03-09 03 -05 CDT 1 2025-11-02 01 -06 CST 2026-03-08 03 -05 CDT 1 2026-11-01 01 -06 CST 2027-03-14 03 -05 CDT 1 2027-11-07 01 -06 CST 2028-03-12 03 -05 CDT 1 2028-11-05 01 -06 CST 2029-03-11 03 -05 CDT 1 2029-11-04 01 -06 CST 2030-03-10 03 -05 CDT 1 2030-11-03 01 -06 CST 2031-03-09 03 -05 CDT 1 2031-11-02 01 -06 CST 2032-03-14 03 -05 CDT 1 2032-11-07 01 -06 CST 2033-03-13 03 -05 CDT 1 2033-11-06 01 -06 CST 2034-03-12 03 -05 CDT 1 2034-11-05 01 -06 CST 2035-03-11 03 -05 CDT 1 2035-11-04 01 -06 CST 2036-03-09 03 -05 CDT 1 2036-11-02 01 -06 CST 2037-03-08 03 -05 CDT 1 2037-11-01 01 -06 CST 2038-03-14 03 -05 CDT 1 2038-11-07 01 -06 CST 2039-03-13 03 -05 CDT 1 2039-11-06 01 -06 CST 2040-03-11 03 -05 CDT 1 2040-11-04 01 -06 CST 2041-03-10 03 -05 CDT 1 2041-11-03 01 -06 CST 2042-03-09 03 -05 CDT 1 2042-11-02 01 -06 CST 2043-03-08 03 -05 CDT 1 2043-11-01 01 -06 CST 2044-03-13 03 -05 CDT 1 2044-11-06 01 -06 CST 2045-03-12 03 -05 CDT 1 2045-11-05 01 -06 CST 2046-03-11 03 -05 CDT 1 2046-11-04 01 -06 CST 2047-03-10 03 -05 CDT 1 2047-11-03 01 -06 CST 2048-03-08 03 -05 CDT 1 2048-11-01 01 -06 CST 2049-03-14 03 -05 CDT 1 2049-11-07 01 -06 CST TZ="America/Rio_Branco" - - -043112 LMT 1913-12-31 23:31:12 -05 1931-10-03 12 -04 1 1932-03-31 23 -05 1932-10-03 01 -04 1 1933-03-31 23 -05 1949-12-01 01 -04 1 1950-04-16 00 -05 1950-12-01 01 -04 1 1951-03-31 23 -05 1951-12-01 01 -04 1 1952-03-31 23 -05 1952-12-01 01 -04 1 1953-02-28 23 -05 1963-12-09 01 -04 1 1964-02-29 23 -05 1965-01-31 01 -04 1 1965-03-30 23 -05 1965-12-01 01 -04 1 1966-02-28 23 -05 1966-11-01 01 -04 1 1967-02-28 23 -05 1967-11-01 01 -04 1 1968-02-29 23 -05 1985-11-02 01 -04 1 1986-03-14 23 -05 1986-10-25 01 -04 1 1987-02-13 23 -05 1987-10-25 01 -04 1 1988-02-06 23 -05 2008-06-24 01 -04 2013-11-09 23 -05 TZ="America/Santarem" - - -033848 LMT 1913-12-31 23:38:48 -04 1931-10-03 12 -03 1 1932-03-31 23 -04 1932-10-03 01 -03 1 1933-03-31 23 -04 1949-12-01 01 -03 1 1950-04-16 00 -04 1950-12-01 01 -03 1 1951-03-31 23 -04 1951-12-01 01 -03 1 1952-03-31 23 -04 1952-12-01 01 -03 1 1953-02-28 23 -04 1963-12-09 01 -03 1 1964-02-29 23 -04 1965-01-31 01 -03 1 1965-03-30 23 -04 1965-12-01 01 -03 1 1966-02-28 23 -04 1966-11-01 01 -03 1 1967-02-28 23 -04 1967-11-01 01 -03 1 1968-02-29 23 -04 1985-11-02 01 -03 1 1986-03-14 23 -04 1986-10-25 01 -03 1 1987-02-13 23 -04 1987-10-25 01 -03 1 1988-02-06 23 -04 2008-06-24 01 -03 TZ="America/Santiago" - - -044246 LMT 1890-01-01 00 -044246 SMT 1910-01-09 23:42:46 -05 1916-07-01 00:17:14 -044246 SMT 1918-09-10 00:42:46 -04 1919-06-30 23:17:14 -044246 SMT 1927-09-01 00:42:46 -04 1 1928-03-31 23 -05 1928-09-01 01 -04 1 1929-03-31 23 -05 1929-09-01 01 -04 1 1930-03-31 23 -05 1930-09-01 01 -04 1 1931-03-31 23 -05 1931-09-01 01 -04 1 1932-03-31 23 -05 1932-09-01 01 -04 1942-05-31 23 -05 1942-08-01 01 -04 1946-07-15 01 -03 1 1946-08-31 23 -04 1947-03-31 23 -05 1947-05-22 00 -04 1968-11-03 01 -03 1 1969-03-29 23 -04 1969-11-23 01 -03 1 1970-03-28 23 -04 1970-10-11 01 -03 1 1971-03-13 23 -04 1971-10-10 01 -03 1 1972-03-11 23 -04 1972-10-15 01 -03 1 1973-03-10 23 -04 1973-09-30 01 -03 1 1974-03-09 23 -04 1974-10-13 01 -03 1 1975-03-08 23 -04 1975-10-12 01 -03 1 1976-03-13 23 -04 1976-10-10 01 -03 1 1977-03-12 23 -04 1977-10-09 01 -03 1 1978-03-11 23 -04 1978-10-15 01 -03 1 1979-03-10 23 -04 1979-10-14 01 -03 1 1980-03-08 23 -04 1980-10-12 01 -03 1 1981-03-14 23 -04 1981-10-11 01 -03 1 1982-03-13 23 -04 1982-10-10 01 -03 1 1983-03-12 23 -04 1983-10-09 01 -03 1 1984-03-10 23 -04 1984-10-14 01 -03 1 1985-03-09 23 -04 1985-10-13 01 -03 1 1986-03-08 23 -04 1986-10-12 01 -03 1 1987-04-11 23 -04 1987-10-11 01 -03 1 1988-03-12 23 -04 1988-10-09 01 -03 1 1989-03-11 23 -04 1989-10-15 01 -03 1 1990-03-10 23 -04 1990-09-16 01 -03 1 1991-03-09 23 -04 1991-10-13 01 -03 1 1992-03-14 23 -04 1992-10-11 01 -03 1 1993-03-13 23 -04 1993-10-10 01 -03 1 1994-03-12 23 -04 1994-10-09 01 -03 1 1995-03-11 23 -04 1995-10-15 01 -03 1 1996-03-09 23 -04 1996-10-13 01 -03 1 1997-03-29 23 -04 1997-10-12 01 -03 1 1998-03-14 23 -04 1998-09-27 01 -03 1 1999-04-03 23 -04 1999-10-10 01 -03 1 2000-03-11 23 -04 2000-10-15 01 -03 1 2001-03-10 23 -04 2001-10-14 01 -03 1 2002-03-09 23 -04 2002-10-13 01 -03 1 2003-03-08 23 -04 2003-10-12 01 -03 1 2004-03-13 23 -04 2004-10-10 01 -03 1 2005-03-12 23 -04 2005-10-09 01 -03 1 2006-03-11 23 -04 2006-10-15 01 -03 1 2007-03-10 23 -04 2007-10-14 01 -03 1 2008-03-29 23 -04 2008-10-12 01 -03 1 2009-03-14 23 -04 2009-10-11 01 -03 1 2010-04-03 23 -04 2010-10-10 01 -03 1 2011-05-07 23 -04 2011-08-21 01 -03 1 2012-04-28 23 -04 2012-09-02 01 -03 1 2013-04-27 23 -04 2013-09-08 01 -03 1 2014-04-26 23 -04 2014-09-07 01 -03 1 2016-05-14 23 -04 2016-08-14 01 -03 1 2017-05-13 23 -04 2017-08-13 01 -03 1 2018-05-12 23 -04 2018-08-12 01 -03 1 2019-04-06 23 -04 2019-09-08 01 -03 1 2020-04-04 23 -04 2020-09-06 01 -03 1 2021-04-03 23 -04 2021-09-05 01 -03 1 2022-04-02 23 -04 2022-09-04 01 -03 1 2023-04-01 23 -04 2023-09-03 01 -03 1 2024-04-06 23 -04 2024-09-08 01 -03 1 2025-04-05 23 -04 2025-09-07 01 -03 1 2026-04-04 23 -04 2026-09-06 01 -03 1 2027-04-03 23 -04 2027-09-05 01 -03 1 2028-04-01 23 -04 2028-09-03 01 -03 1 2029-04-07 23 -04 2029-09-02 01 -03 1 2030-04-06 23 -04 2030-09-08 01 -03 1 2031-04-05 23 -04 2031-09-07 01 -03 1 2032-04-03 23 -04 2032-09-05 01 -03 1 2033-04-02 23 -04 2033-09-04 01 -03 1 2034-04-01 23 -04 2034-09-03 01 -03 1 2035-04-07 23 -04 2035-09-02 01 -03 1 2036-04-05 23 -04 2036-09-07 01 -03 1 2037-04-04 23 -04 2037-09-06 01 -03 1 2038-04-03 23 -04 2038-09-05 01 -03 1 2039-04-02 23 -04 2039-09-04 01 -03 1 2040-04-07 23 -04 2040-09-02 01 -03 1 2041-04-06 23 -04 2041-09-08 01 -03 1 2042-04-05 23 -04 2042-09-07 01 -03 1 2043-04-04 23 -04 2043-09-06 01 -03 1 2044-04-02 23 -04 2044-09-04 01 -03 1 2045-04-01 23 -04 2045-09-03 01 -03 1 2046-04-07 23 -04 2046-09-02 01 -03 1 2047-04-06 23 -04 2047-09-08 01 -03 1 2048-04-04 23 -04 2048-09-06 01 -03 1 2049-04-03 23 -04 2049-09-05 01 -03 1 TZ="America/Santo_Domingo" - - -043936 LMT 1889-12-31 23:59:36 -0440 SDMT 1933-04-01 11:40 -05 EST 1966-10-30 01 -04 EDT 1 1967-02-27 23 -05 EST 1969-10-26 00:30 -0430 1 1970-02-20 23:30 -05 EST 1970-10-25 00:30 -0430 1 1971-01-19 23:30 -05 EST 1971-10-31 00:30 -0430 1 1972-01-20 23:30 -05 EST 1972-10-29 00:30 -0430 1 1973-01-20 23:30 -05 EST 1973-10-28 00:30 -0430 1 1974-01-20 23:30 -05 EST 1974-10-27 01 -04 AST 2000-10-29 01 -05 EST 2000-12-03 02 -04 AST TZ="America/Sao_Paulo" - - -030628 LMT 1914-01-01 00:06:28 -03 1931-10-03 12 -02 1 1932-03-31 23 -03 1932-10-03 01 -02 1 1933-03-31 23 -03 1949-12-01 01 -02 1 1950-04-16 00 -03 1950-12-01 01 -02 1 1951-03-31 23 -03 1951-12-01 01 -02 1 1952-03-31 23 -03 1952-12-01 01 -02 1 1953-02-28 23 -03 1963-10-23 01 -02 1 1964-02-29 23 -03 1965-01-31 01 -02 1 1965-03-30 23 -03 1965-12-01 01 -02 1 1966-02-28 23 -03 1966-11-01 01 -02 1 1967-02-28 23 -03 1967-11-01 01 -02 1 1968-02-29 23 -03 1985-11-02 01 -02 1 1986-03-14 23 -03 1986-10-25 01 -02 1 1987-02-13 23 -03 1987-10-25 01 -02 1 1988-02-06 23 -03 1988-10-16 01 -02 1 1989-01-28 23 -03 1989-10-15 01 -02 1 1990-02-10 23 -03 1990-10-21 01 -02 1 1991-02-16 23 -03 1991-10-20 01 -02 1 1992-02-08 23 -03 1992-10-25 01 -02 1 1993-01-30 23 -03 1993-10-17 01 -02 1 1994-02-19 23 -03 1994-10-16 01 -02 1 1995-02-18 23 -03 1995-10-15 01 -02 1 1996-02-10 23 -03 1996-10-06 01 -02 1 1997-02-15 23 -03 1997-10-06 01 -02 1 1998-02-28 23 -03 1998-10-11 01 -02 1 1999-02-20 23 -03 1999-10-03 01 -02 1 2000-02-26 23 -03 2000-10-08 01 -02 1 2001-02-17 23 -03 2001-10-14 01 -02 1 2002-02-16 23 -03 2002-11-03 01 -02 1 2003-02-15 23 -03 2003-10-19 01 -02 1 2004-02-14 23 -03 2004-11-02 01 -02 1 2005-02-19 23 -03 2005-10-16 01 -02 1 2006-02-18 23 -03 2006-11-05 01 -02 1 2007-02-24 23 -03 2007-10-14 01 -02 1 2008-02-16 23 -03 2008-10-19 01 -02 1 2009-02-14 23 -03 2009-10-18 01 -02 1 2010-02-20 23 -03 2010-10-17 01 -02 1 2011-02-19 23 -03 2011-10-16 01 -02 1 2012-02-25 23 -03 2012-10-21 01 -02 1 2013-02-16 23 -03 2013-10-20 01 -02 1 2014-02-15 23 -03 2014-10-19 01 -02 1 2015-02-21 23 -03 2015-10-18 01 -02 1 2016-02-20 23 -03 2016-10-16 01 -02 1 2017-02-18 23 -03 2017-10-15 01 -02 1 2018-02-17 23 -03 2018-11-04 01 -02 1 2019-02-16 23 -03 TZ="America/Scoresbysund" - - -012752 LMT 1916-07-27 23:27:52 -02 1980-04-06 03 -01 1 1980-09-28 02 -02 1981-03-29 02 +00 1 1981-09-27 00 -01 1982-03-28 01 +00 1 1982-09-26 00 -01 1983-03-27 01 +00 1 1983-09-25 00 -01 1984-03-25 01 +00 1 1984-09-30 00 -01 1985-03-31 01 +00 1 1985-09-29 00 -01 1986-03-30 01 +00 1 1986-09-28 00 -01 1987-03-29 01 +00 1 1987-09-27 00 -01 1988-03-27 01 +00 1 1988-09-25 00 -01 1989-03-26 01 +00 1 1989-09-24 00 -01 1990-03-25 01 +00 1 1990-09-30 00 -01 1991-03-31 01 +00 1 1991-09-29 00 -01 1992-03-29 01 +00 1 1992-09-27 00 -01 1993-03-28 01 +00 1 1993-09-26 00 -01 1994-03-27 01 +00 1 1994-09-25 00 -01 1995-03-26 01 +00 1 1995-09-24 00 -01 1996-03-31 01 +00 1 1996-10-27 00 -01 1997-03-30 01 +00 1 1997-10-26 00 -01 1998-03-29 01 +00 1 1998-10-25 00 -01 1999-03-28 01 +00 1 1999-10-31 00 -01 2000-03-26 01 +00 1 2000-10-29 00 -01 2001-03-25 01 +00 1 2001-10-28 00 -01 2002-03-31 01 +00 1 2002-10-27 00 -01 2003-03-30 01 +00 1 2003-10-26 00 -01 2004-03-28 01 +00 1 2004-10-31 00 -01 2005-03-27 01 +00 1 2005-10-30 00 -01 2006-03-26 01 +00 1 2006-10-29 00 -01 2007-03-25 01 +00 1 2007-10-28 00 -01 2008-03-30 01 +00 1 2008-10-26 00 -01 2009-03-29 01 +00 1 2009-10-25 00 -01 2010-03-28 01 +00 1 2010-10-31 00 -01 2011-03-27 01 +00 1 2011-10-30 00 -01 2012-03-25 01 +00 1 2012-10-28 00 -01 2013-03-31 01 +00 1 2013-10-27 00 -01 2014-03-30 01 +00 1 2014-10-26 00 -01 2015-03-29 01 +00 1 2015-10-25 00 -01 2016-03-27 01 +00 1 2016-10-30 00 -01 2017-03-26 01 +00 1 2017-10-29 00 -01 2018-03-25 01 +00 1 2018-10-28 00 -01 2019-03-31 01 +00 1 2019-10-27 00 -01 2020-03-29 01 +00 1 2020-10-25 00 -01 2021-03-28 01 +00 1 2021-10-31 00 -01 2022-03-27 01 +00 1 2022-10-30 00 -01 2023-03-26 01 +00 1 2023-10-29 00 -01 2024-03-31 01 +00 1 2024-10-27 00 -01 2025-03-30 01 +00 1 2025-10-26 00 -01 2026-03-29 01 +00 1 2026-10-25 00 -01 2027-03-28 01 +00 1 2027-10-31 00 -01 2028-03-26 01 +00 1 2028-10-29 00 -01 2029-03-25 01 +00 1 2029-10-28 00 -01 2030-03-31 01 +00 1 2030-10-27 00 -01 2031-03-30 01 +00 1 2031-10-26 00 -01 2032-03-28 01 +00 1 2032-10-31 00 -01 2033-03-27 01 +00 1 2033-10-30 00 -01 2034-03-26 01 +00 1 2034-10-29 00 -01 2035-03-25 01 +00 1 2035-10-28 00 -01 2036-03-30 01 +00 1 2036-10-26 00 -01 2037-03-29 01 +00 1 2037-10-25 00 -01 2038-03-28 01 +00 1 2038-10-31 00 -01 2039-03-27 01 +00 1 2039-10-30 00 -01 2040-03-25 01 +00 1 2040-10-28 00 -01 2041-03-31 01 +00 1 2041-10-27 00 -01 2042-03-30 01 +00 1 2042-10-26 00 -01 2043-03-29 01 +00 1 2043-10-25 00 -01 2044-03-27 01 +00 1 2044-10-30 00 -01 2045-03-26 01 +00 1 2045-10-29 00 -01 2046-03-25 01 +00 1 2046-10-28 00 -01 2047-03-31 01 +00 1 2047-10-27 00 -01 2048-03-29 01 +00 1 2048-10-25 00 -01 2049-03-28 01 +00 1 2049-10-31 00 -01 TZ="America/Sitka" - - +145847 LMT 1867-10-18 15:30 -090113 LMT 1900-08-20 13:01:13 -08 PST 1942-02-09 03 -07 PWT 1 1945-08-14 16 -07 PPT 1 1945-09-30 01 -08 PST 1969-04-27 03 -07 PDT 1 1969-10-26 01 -08 PST 1970-04-26 03 -07 PDT 1 1970-10-25 01 -08 PST 1971-04-25 03 -07 PDT 1 1971-10-31 01 -08 PST 1972-04-30 03 -07 PDT 1 1972-10-29 01 -08 PST 1973-04-29 03 -07 PDT 1 1973-10-28 01 -08 PST 1974-01-06 03 -07 PDT 1 1974-10-27 01 -08 PST 1975-02-23 03 -07 PDT 1 1975-10-26 01 -08 PST 1976-04-25 03 -07 PDT 1 1976-10-31 01 -08 PST 1977-04-24 03 -07 PDT 1 1977-10-30 01 -08 PST 1978-04-30 03 -07 PDT 1 1978-10-29 01 -08 PST 1979-04-29 03 -07 PDT 1 1979-10-28 01 -08 PST 1980-04-27 03 -07 PDT 1 1980-10-26 01 -08 PST 1981-04-26 03 -07 PDT 1 1981-10-25 01 -08 PST 1982-04-25 03 -07 PDT 1 1982-10-31 01 -08 PST 1983-04-24 03 -07 PDT 1 1983-10-30 00 -09 YST 1983-11-30 00 -09 AKST 1984-04-29 03 -08 AKDT 1 1984-10-28 01 -09 AKST 1985-04-28 03 -08 AKDT 1 1985-10-27 01 -09 AKST 1986-04-27 03 -08 AKDT 1 1986-10-26 01 -09 AKST 1987-04-05 03 -08 AKDT 1 1987-10-25 01 -09 AKST 1988-04-03 03 -08 AKDT 1 1988-10-30 01 -09 AKST 1989-04-02 03 -08 AKDT 1 1989-10-29 01 -09 AKST 1990-04-01 03 -08 AKDT 1 1990-10-28 01 -09 AKST 1991-04-07 03 -08 AKDT 1 1991-10-27 01 -09 AKST 1992-04-05 03 -08 AKDT 1 1992-10-25 01 -09 AKST 1993-04-04 03 -08 AKDT 1 1993-10-31 01 -09 AKST 1994-04-03 03 -08 AKDT 1 1994-10-30 01 -09 AKST 1995-04-02 03 -08 AKDT 1 1995-10-29 01 -09 AKST 1996-04-07 03 -08 AKDT 1 1996-10-27 01 -09 AKST 1997-04-06 03 -08 AKDT 1 1997-10-26 01 -09 AKST 1998-04-05 03 -08 AKDT 1 1998-10-25 01 -09 AKST 1999-04-04 03 -08 AKDT 1 1999-10-31 01 -09 AKST 2000-04-02 03 -08 AKDT 1 2000-10-29 01 -09 AKST 2001-04-01 03 -08 AKDT 1 2001-10-28 01 -09 AKST 2002-04-07 03 -08 AKDT 1 2002-10-27 01 -09 AKST 2003-04-06 03 -08 AKDT 1 2003-10-26 01 -09 AKST 2004-04-04 03 -08 AKDT 1 2004-10-31 01 -09 AKST 2005-04-03 03 -08 AKDT 1 2005-10-30 01 -09 AKST 2006-04-02 03 -08 AKDT 1 2006-10-29 01 -09 AKST 2007-03-11 03 -08 AKDT 1 2007-11-04 01 -09 AKST 2008-03-09 03 -08 AKDT 1 2008-11-02 01 -09 AKST 2009-03-08 03 -08 AKDT 1 2009-11-01 01 -09 AKST 2010-03-14 03 -08 AKDT 1 2010-11-07 01 -09 AKST 2011-03-13 03 -08 AKDT 1 2011-11-06 01 -09 AKST 2012-03-11 03 -08 AKDT 1 2012-11-04 01 -09 AKST 2013-03-10 03 -08 AKDT 1 2013-11-03 01 -09 AKST 2014-03-09 03 -08 AKDT 1 2014-11-02 01 -09 AKST 2015-03-08 03 -08 AKDT 1 2015-11-01 01 -09 AKST 2016-03-13 03 -08 AKDT 1 2016-11-06 01 -09 AKST 2017-03-12 03 -08 AKDT 1 2017-11-05 01 -09 AKST 2018-03-11 03 -08 AKDT 1 2018-11-04 01 -09 AKST 2019-03-10 03 -08 AKDT 1 2019-11-03 01 -09 AKST 2020-03-08 03 -08 AKDT 1 2020-11-01 01 -09 AKST 2021-03-14 03 -08 AKDT 1 2021-11-07 01 -09 AKST 2022-03-13 03 -08 AKDT 1 2022-11-06 01 -09 AKST 2023-03-12 03 -08 AKDT 1 2023-11-05 01 -09 AKST 2024-03-10 03 -08 AKDT 1 2024-11-03 01 -09 AKST 2025-03-09 03 -08 AKDT 1 2025-11-02 01 -09 AKST 2026-03-08 03 -08 AKDT 1 2026-11-01 01 -09 AKST 2027-03-14 03 -08 AKDT 1 2027-11-07 01 -09 AKST 2028-03-12 03 -08 AKDT 1 2028-11-05 01 -09 AKST 2029-03-11 03 -08 AKDT 1 2029-11-04 01 -09 AKST 2030-03-10 03 -08 AKDT 1 2030-11-03 01 -09 AKST 2031-03-09 03 -08 AKDT 1 2031-11-02 01 -09 AKST 2032-03-14 03 -08 AKDT 1 2032-11-07 01 -09 AKST 2033-03-13 03 -08 AKDT 1 2033-11-06 01 -09 AKST 2034-03-12 03 -08 AKDT 1 2034-11-05 01 -09 AKST 2035-03-11 03 -08 AKDT 1 2035-11-04 01 -09 AKST 2036-03-09 03 -08 AKDT 1 2036-11-02 01 -09 AKST 2037-03-08 03 -08 AKDT 1 2037-11-01 01 -09 AKST 2038-03-14 03 -08 AKDT 1 2038-11-07 01 -09 AKST 2039-03-13 03 -08 AKDT 1 2039-11-06 01 -09 AKST 2040-03-11 03 -08 AKDT 1 2040-11-04 01 -09 AKST 2041-03-10 03 -08 AKDT 1 2041-11-03 01 -09 AKST 2042-03-09 03 -08 AKDT 1 2042-11-02 01 -09 AKST 2043-03-08 03 -08 AKDT 1 2043-11-01 01 -09 AKST 2044-03-13 03 -08 AKDT 1 2044-11-06 01 -09 AKST 2045-03-12 03 -08 AKDT 1 2045-11-05 01 -09 AKST 2046-03-11 03 -08 AKDT 1 2046-11-04 01 -09 AKST 2047-03-10 03 -08 AKDT 1 2047-11-03 01 -09 AKST 2048-03-08 03 -08 AKDT 1 2048-11-01 01 -09 AKST 2049-03-14 03 -08 AKDT 1 2049-11-07 01 -09 AKST TZ="America/St_Johns" - - -033052 LMT 1884-01-01 00 -033052 NST 1917-04-08 03 -023052 NDT 1 1917-09-17 01 -033052 NST 1918-04-14 03 -023052 NDT 1 1918-10-27 01 -033052 NST 1919-05-06 00 -023052 NDT 1 1919-08-12 22 -033052 NST 1920-05-03 00 -023052 NDT 1 1920-10-31 22 -033052 NST 1921-05-02 00 -023052 NDT 1 1921-10-30 22 -033052 NST 1922-05-08 00 -023052 NDT 1 1922-10-29 22 -033052 NST 1923-05-07 00 -023052 NDT 1 1923-10-28 22 -033052 NST 1924-05-05 00 -023052 NDT 1 1924-10-26 22 -033052 NST 1925-05-04 00 -023052 NDT 1 1925-10-25 22 -033052 NST 1926-05-03 00 -023052 NDT 1 1926-10-31 22 -033052 NST 1927-05-02 00 -023052 NDT 1 1927-10-30 22 -033052 NST 1928-05-07 00 -023052 NDT 1 1928-10-28 22 -033052 NST 1929-05-06 00 -023052 NDT 1 1929-10-27 22 -033052 NST 1930-05-05 00 -023052 NDT 1 1930-10-26 22 -033052 NST 1931-05-04 00 -023052 NDT 1 1931-10-25 22 -033052 NST 1932-05-02 00 -023052 NDT 1 1932-10-30 22 -033052 NST 1933-05-08 00 -023052 NDT 1 1933-10-29 22 -033052 NST 1934-05-07 00 -023052 NDT 1 1934-10-28 22 -033052 NST 1935-03-30 00:00:52 -0330 NST 1935-05-06 00 -0230 NDT 1 1935-10-27 22 -0330 NST 1936-05-11 01 -0230 NDT 1 1936-10-04 23 -0330 NST 1937-05-10 01 -0230 NDT 1 1937-10-03 23 -0330 NST 1938-05-09 01 -0230 NDT 1 1938-10-02 23 -0330 NST 1939-05-15 01 -0230 NDT 1 1939-10-01 23 -0330 NST 1940-05-13 01 -0230 NDT 1 1940-10-06 23 -0330 NST 1941-05-12 01 -0230 NDT 1 1941-10-05 23 -0330 NST 1942-05-11 01 -0230 NWT 1 1945-08-14 20:30 -0230 NPT 1 1945-09-30 01 -0330 NST 1946-05-12 03 -0230 NDT 1 1946-10-06 01 -0330 NST 1947-05-11 03 -0230 NDT 1 1947-10-05 01 -0330 NST 1948-05-09 03 -0230 NDT 1 1948-10-03 01 -0330 NST 1949-05-08 03 -0230 NDT 1 1949-10-02 01 -0330 NST 1950-05-14 03 -0230 NDT 1 1950-10-08 01 -0330 NST 1951-04-29 03 -0230 NDT 1 1951-09-30 01 -0330 NST 1952-04-27 03 -0230 NDT 1 1952-09-28 01 -0330 NST 1953-04-26 03 -0230 NDT 1 1953-09-27 01 -0330 NST 1954-04-25 03 -0230 NDT 1 1954-09-26 01 -0330 NST 1955-04-24 03 -0230 NDT 1 1955-09-25 01 -0330 NST 1956-04-29 03 -0230 NDT 1 1956-09-30 01 -0330 NST 1957-04-28 03 -0230 NDT 1 1957-09-29 01 -0330 NST 1958-04-27 03 -0230 NDT 1 1958-09-28 01 -0330 NST 1959-04-26 03 -0230 NDT 1 1959-09-27 01 -0330 NST 1960-04-24 03 -0230 NDT 1 1960-10-30 01 -0330 NST 1961-04-30 03 -0230 NDT 1 1961-10-29 01 -0330 NST 1962-04-29 03 -0230 NDT 1 1962-10-28 01 -0330 NST 1963-04-28 03 -0230 NDT 1 1963-10-27 01 -0330 NST 1964-04-26 03 -0230 NDT 1 1964-10-25 01 -0330 NST 1965-04-25 03 -0230 NDT 1 1965-10-31 01 -0330 NST 1966-04-24 03 -0230 NDT 1 1966-10-30 01 -0330 NST 1967-04-30 03 -0230 NDT 1 1967-10-29 01 -0330 NST 1968-04-28 03 -0230 NDT 1 1968-10-27 01 -0330 NST 1969-04-27 03 -0230 NDT 1 1969-10-26 01 -0330 NST 1970-04-26 03 -0230 NDT 1 1970-10-25 01 -0330 NST 1971-04-25 03 -0230 NDT 1 1971-10-31 01 -0330 NST 1972-04-30 03 -0230 NDT 1 1972-10-29 01 -0330 NST 1973-04-29 03 -0230 NDT 1 1973-10-28 01 -0330 NST 1974-04-28 03 -0230 NDT 1 1974-10-27 01 -0330 NST 1975-04-27 03 -0230 NDT 1 1975-10-26 01 -0330 NST 1976-04-25 03 -0230 NDT 1 1976-10-31 01 -0330 NST 1977-04-24 03 -0230 NDT 1 1977-10-30 01 -0330 NST 1978-04-30 03 -0230 NDT 1 1978-10-29 01 -0330 NST 1979-04-29 03 -0230 NDT 1 1979-10-28 01 -0330 NST 1980-04-27 03 -0230 NDT 1 1980-10-26 01 -0330 NST 1981-04-26 03 -0230 NDT 1 1981-10-25 01 -0330 NST 1982-04-25 03 -0230 NDT 1 1982-10-31 01 -0330 NST 1983-04-24 03 -0230 NDT 1 1983-10-30 01 -0330 NST 1984-04-29 03 -0230 NDT 1 1984-10-28 01 -0330 NST 1985-04-28 03 -0230 NDT 1 1985-10-27 01 -0330 NST 1986-04-27 03 -0230 NDT 1 1986-10-26 01 -0330 NST 1987-04-05 01:01 -0230 NDT 1 1987-10-24 23:01 -0330 NST 1988-04-03 02:01 -0130 NDDT 1 1988-10-29 22:01 -0330 NST 1989-04-02 01:01 -0230 NDT 1 1989-10-28 23:01 -0330 NST 1990-04-01 01:01 -0230 NDT 1 1990-10-27 23:01 -0330 NST 1991-04-07 01:01 -0230 NDT 1 1991-10-26 23:01 -0330 NST 1992-04-05 01:01 -0230 NDT 1 1992-10-24 23:01 -0330 NST 1993-04-04 01:01 -0230 NDT 1 1993-10-30 23:01 -0330 NST 1994-04-03 01:01 -0230 NDT 1 1994-10-29 23:01 -0330 NST 1995-04-02 01:01 -0230 NDT 1 1995-10-28 23:01 -0330 NST 1996-04-07 01:01 -0230 NDT 1 1996-10-26 23:01 -0330 NST 1997-04-06 01:01 -0230 NDT 1 1997-10-25 23:01 -0330 NST 1998-04-05 01:01 -0230 NDT 1 1998-10-24 23:01 -0330 NST 1999-04-04 01:01 -0230 NDT 1 1999-10-30 23:01 -0330 NST 2000-04-02 01:01 -0230 NDT 1 2000-10-28 23:01 -0330 NST 2001-04-01 01:01 -0230 NDT 1 2001-10-27 23:01 -0330 NST 2002-04-07 01:01 -0230 NDT 1 2002-10-26 23:01 -0330 NST 2003-04-06 01:01 -0230 NDT 1 2003-10-25 23:01 -0330 NST 2004-04-04 01:01 -0230 NDT 1 2004-10-30 23:01 -0330 NST 2005-04-03 01:01 -0230 NDT 1 2005-10-29 23:01 -0330 NST 2006-04-02 01:01 -0230 NDT 1 2006-10-28 23:01 -0330 NST 2007-03-11 01:01 -0230 NDT 1 2007-11-03 23:01 -0330 NST 2008-03-09 01:01 -0230 NDT 1 2008-11-01 23:01 -0330 NST 2009-03-08 01:01 -0230 NDT 1 2009-10-31 23:01 -0330 NST 2010-03-14 01:01 -0230 NDT 1 2010-11-06 23:01 -0330 NST 2011-03-13 01:01 -0230 NDT 1 2011-11-06 01 -0330 NST 2012-03-11 03 -0230 NDT 1 2012-11-04 01 -0330 NST 2013-03-10 03 -0230 NDT 1 2013-11-03 01 -0330 NST 2014-03-09 03 -0230 NDT 1 2014-11-02 01 -0330 NST 2015-03-08 03 -0230 NDT 1 2015-11-01 01 -0330 NST 2016-03-13 03 -0230 NDT 1 2016-11-06 01 -0330 NST 2017-03-12 03 -0230 NDT 1 2017-11-05 01 -0330 NST 2018-03-11 03 -0230 NDT 1 2018-11-04 01 -0330 NST 2019-03-10 03 -0230 NDT 1 2019-11-03 01 -0330 NST 2020-03-08 03 -0230 NDT 1 2020-11-01 01 -0330 NST 2021-03-14 03 -0230 NDT 1 2021-11-07 01 -0330 NST 2022-03-13 03 -0230 NDT 1 2022-11-06 01 -0330 NST 2023-03-12 03 -0230 NDT 1 2023-11-05 01 -0330 NST 2024-03-10 03 -0230 NDT 1 2024-11-03 01 -0330 NST 2025-03-09 03 -0230 NDT 1 2025-11-02 01 -0330 NST 2026-03-08 03 -0230 NDT 1 2026-11-01 01 -0330 NST 2027-03-14 03 -0230 NDT 1 2027-11-07 01 -0330 NST 2028-03-12 03 -0230 NDT 1 2028-11-05 01 -0330 NST 2029-03-11 03 -0230 NDT 1 2029-11-04 01 -0330 NST 2030-03-10 03 -0230 NDT 1 2030-11-03 01 -0330 NST 2031-03-09 03 -0230 NDT 1 2031-11-02 01 -0330 NST 2032-03-14 03 -0230 NDT 1 2032-11-07 01 -0330 NST 2033-03-13 03 -0230 NDT 1 2033-11-06 01 -0330 NST 2034-03-12 03 -0230 NDT 1 2034-11-05 01 -0330 NST 2035-03-11 03 -0230 NDT 1 2035-11-04 01 -0330 NST 2036-03-09 03 -0230 NDT 1 2036-11-02 01 -0330 NST 2037-03-08 03 -0230 NDT 1 2037-11-01 01 -0330 NST 2038-03-14 03 -0230 NDT 1 2038-11-07 01 -0330 NST 2039-03-13 03 -0230 NDT 1 2039-11-06 01 -0330 NST 2040-03-11 03 -0230 NDT 1 2040-11-04 01 -0330 NST 2041-03-10 03 -0230 NDT 1 2041-11-03 01 -0330 NST 2042-03-09 03 -0230 NDT 1 2042-11-02 01 -0330 NST 2043-03-08 03 -0230 NDT 1 2043-11-01 01 -0330 NST 2044-03-13 03 -0230 NDT 1 2044-11-06 01 -0330 NST 2045-03-12 03 -0230 NDT 1 2045-11-05 01 -0330 NST 2046-03-11 03 -0230 NDT 1 2046-11-04 01 -0330 NST 2047-03-10 03 -0230 NDT 1 2047-11-03 01 -0330 NST 2048-03-08 03 -0230 NDT 1 2048-11-01 01 -0330 NST 2049-03-14 03 -0230 NDT 1 2049-11-07 01 -0330 NST TZ="America/Swift_Current" - - -071120 LMT 1905-09-01 00:11:20 -07 MST 1918-04-14 03 -06 MDT 1 1918-10-27 01 -07 MST 1942-02-09 03 -06 MWT 1 1945-08-14 17 -06 MPT 1 1945-09-30 01 -07 MST 1946-04-28 03 -06 MDT 1 1946-10-13 01 -07 MST 1947-04-27 03 -06 MDT 1 1947-09-28 01 -07 MST 1948-04-25 03 -06 MDT 1 1948-09-26 01 -07 MST 1949-04-24 03 -06 MDT 1 1949-09-25 01 -07 MST 1957-04-28 03 -06 MDT 1 1957-10-27 01 -07 MST 1959-04-26 03 -06 MDT 1 1959-10-25 01 -07 MST 1960-04-24 03 -06 MDT 1 1960-09-25 01 -07 MST 1961-04-30 03 -06 MDT 1 1961-09-24 01 -07 MST 1972-04-30 03 -06 CST TZ="America/Tegucigalpa" - - -054852 LMT 1921-03-31 23:48:52 -06 CST 1987-05-03 01 -05 CDT 1 1987-09-26 23 -06 CST 1988-05-01 01 -05 CDT 1 1988-09-24 23 -06 CST 2006-05-07 01 -05 CDT 1 2006-08-06 23 -06 CST TZ="America/Thule" - - -043508 LMT 1916-07-28 00:35:08 -04 AST 1991-03-31 03 -03 ADT 1 1991-09-29 01 -04 AST 1992-03-29 03 -03 ADT 1 1992-09-27 01 -04 AST 1993-04-04 03 -03 ADT 1 1993-10-31 01 -04 AST 1994-04-03 03 -03 ADT 1 1994-10-30 01 -04 AST 1995-04-02 03 -03 ADT 1 1995-10-29 01 -04 AST 1996-04-07 03 -03 ADT 1 1996-10-27 01 -04 AST 1997-04-06 03 -03 ADT 1 1997-10-26 01 -04 AST 1998-04-05 03 -03 ADT 1 1998-10-25 01 -04 AST 1999-04-04 03 -03 ADT 1 1999-10-31 01 -04 AST 2000-04-02 03 -03 ADT 1 2000-10-29 01 -04 AST 2001-04-01 03 -03 ADT 1 2001-10-28 01 -04 AST 2002-04-07 03 -03 ADT 1 2002-10-27 01 -04 AST 2003-04-06 03 -03 ADT 1 2003-10-26 01 -04 AST 2004-04-04 03 -03 ADT 1 2004-10-31 01 -04 AST 2005-04-03 03 -03 ADT 1 2005-10-30 01 -04 AST 2006-04-02 03 -03 ADT 1 2006-10-29 01 -04 AST 2007-03-11 03 -03 ADT 1 2007-11-04 01 -04 AST 2008-03-09 03 -03 ADT 1 2008-11-02 01 -04 AST 2009-03-08 03 -03 ADT 1 2009-11-01 01 -04 AST 2010-03-14 03 -03 ADT 1 2010-11-07 01 -04 AST 2011-03-13 03 -03 ADT 1 2011-11-06 01 -04 AST 2012-03-11 03 -03 ADT 1 2012-11-04 01 -04 AST 2013-03-10 03 -03 ADT 1 2013-11-03 01 -04 AST 2014-03-09 03 -03 ADT 1 2014-11-02 01 -04 AST 2015-03-08 03 -03 ADT 1 2015-11-01 01 -04 AST 2016-03-13 03 -03 ADT 1 2016-11-06 01 -04 AST 2017-03-12 03 -03 ADT 1 2017-11-05 01 -04 AST 2018-03-11 03 -03 ADT 1 2018-11-04 01 -04 AST 2019-03-10 03 -03 ADT 1 2019-11-03 01 -04 AST 2020-03-08 03 -03 ADT 1 2020-11-01 01 -04 AST 2021-03-14 03 -03 ADT 1 2021-11-07 01 -04 AST 2022-03-13 03 -03 ADT 1 2022-11-06 01 -04 AST 2023-03-12 03 -03 ADT 1 2023-11-05 01 -04 AST 2024-03-10 03 -03 ADT 1 2024-11-03 01 -04 AST 2025-03-09 03 -03 ADT 1 2025-11-02 01 -04 AST 2026-03-08 03 -03 ADT 1 2026-11-01 01 -04 AST 2027-03-14 03 -03 ADT 1 2027-11-07 01 -04 AST 2028-03-12 03 -03 ADT 1 2028-11-05 01 -04 AST 2029-03-11 03 -03 ADT 1 2029-11-04 01 -04 AST 2030-03-10 03 -03 ADT 1 2030-11-03 01 -04 AST 2031-03-09 03 -03 ADT 1 2031-11-02 01 -04 AST 2032-03-14 03 -03 ADT 1 2032-11-07 01 -04 AST 2033-03-13 03 -03 ADT 1 2033-11-06 01 -04 AST 2034-03-12 03 -03 ADT 1 2034-11-05 01 -04 AST 2035-03-11 03 -03 ADT 1 2035-11-04 01 -04 AST 2036-03-09 03 -03 ADT 1 2036-11-02 01 -04 AST 2037-03-08 03 -03 ADT 1 2037-11-01 01 -04 AST 2038-03-14 03 -03 ADT 1 2038-11-07 01 -04 AST 2039-03-13 03 -03 ADT 1 2039-11-06 01 -04 AST 2040-03-11 03 -03 ADT 1 2040-11-04 01 -04 AST 2041-03-10 03 -03 ADT 1 2041-11-03 01 -04 AST 2042-03-09 03 -03 ADT 1 2042-11-02 01 -04 AST 2043-03-08 03 -03 ADT 1 2043-11-01 01 -04 AST 2044-03-13 03 -03 ADT 1 2044-11-06 01 -04 AST 2045-03-12 03 -03 ADT 1 2045-11-05 01 -04 AST 2046-03-11 03 -03 ADT 1 2046-11-04 01 -04 AST 2047-03-10 03 -03 ADT 1 2047-11-03 01 -04 AST 2048-03-08 03 -03 ADT 1 2048-11-01 01 -04 AST 2049-03-14 03 -03 ADT 1 2049-11-07 01 -04 AST TZ="America/Thunder_Bay" - - -0557 LMT 1894-12-31 23:57 -06 CST 1910-01-01 01 -05 EST 1942-02-09 03 -04 EWT 1 1945-08-14 19 -04 EPT 1 1945-09-30 01 -05 EST 1970-04-26 03 -04 EDT 1 1970-10-25 01 -05 EST 1971-04-25 03 -04 EDT 1 1971-10-31 01 -05 EST 1972-04-30 03 -04 EDT 1 1972-10-29 01 -05 EST 1974-04-28 03 -04 EDT 1 1974-10-27 01 -05 EST 1975-04-27 03 -04 EDT 1 1975-10-26 01 -05 EST 1976-04-25 03 -04 EDT 1 1976-10-31 01 -05 EST 1977-04-24 03 -04 EDT 1 1977-10-30 01 -05 EST 1978-04-30 03 -04 EDT 1 1978-10-29 01 -05 EST 1979-04-29 03 -04 EDT 1 1979-10-28 01 -05 EST 1980-04-27 03 -04 EDT 1 1980-10-26 01 -05 EST 1981-04-26 03 -04 EDT 1 1981-10-25 01 -05 EST 1982-04-25 03 -04 EDT 1 1982-10-31 01 -05 EST 1983-04-24 03 -04 EDT 1 1983-10-30 01 -05 EST 1984-04-29 03 -04 EDT 1 1984-10-28 01 -05 EST 1985-04-28 03 -04 EDT 1 1985-10-27 01 -05 EST 1986-04-27 03 -04 EDT 1 1986-10-26 01 -05 EST 1987-04-05 03 -04 EDT 1 1987-10-25 01 -05 EST 1988-04-03 03 -04 EDT 1 1988-10-30 01 -05 EST 1989-04-02 03 -04 EDT 1 1989-10-29 01 -05 EST 1990-04-01 03 -04 EDT 1 1990-10-28 01 -05 EST 1991-04-07 03 -04 EDT 1 1991-10-27 01 -05 EST 1992-04-05 03 -04 EDT 1 1992-10-25 01 -05 EST 1993-04-04 03 -04 EDT 1 1993-10-31 01 -05 EST 1994-04-03 03 -04 EDT 1 1994-10-30 01 -05 EST 1995-04-02 03 -04 EDT 1 1995-10-29 01 -05 EST 1996-04-07 03 -04 EDT 1 1996-10-27 01 -05 EST 1997-04-06 03 -04 EDT 1 1997-10-26 01 -05 EST 1998-04-05 03 -04 EDT 1 1998-10-25 01 -05 EST 1999-04-04 03 -04 EDT 1 1999-10-31 01 -05 EST 2000-04-02 03 -04 EDT 1 2000-10-29 01 -05 EST 2001-04-01 03 -04 EDT 1 2001-10-28 01 -05 EST 2002-04-07 03 -04 EDT 1 2002-10-27 01 -05 EST 2003-04-06 03 -04 EDT 1 2003-10-26 01 -05 EST 2004-04-04 03 -04 EDT 1 2004-10-31 01 -05 EST 2005-04-03 03 -04 EDT 1 2005-10-30 01 -05 EST 2006-04-02 03 -04 EDT 1 2006-10-29 01 -05 EST 2007-03-11 03 -04 EDT 1 2007-11-04 01 -05 EST 2008-03-09 03 -04 EDT 1 2008-11-02 01 -05 EST 2009-03-08 03 -04 EDT 1 2009-11-01 01 -05 EST 2010-03-14 03 -04 EDT 1 2010-11-07 01 -05 EST 2011-03-13 03 -04 EDT 1 2011-11-06 01 -05 EST 2012-03-11 03 -04 EDT 1 2012-11-04 01 -05 EST 2013-03-10 03 -04 EDT 1 2013-11-03 01 -05 EST 2014-03-09 03 -04 EDT 1 2014-11-02 01 -05 EST 2015-03-08 03 -04 EDT 1 2015-11-01 01 -05 EST 2016-03-13 03 -04 EDT 1 2016-11-06 01 -05 EST 2017-03-12 03 -04 EDT 1 2017-11-05 01 -05 EST 2018-03-11 03 -04 EDT 1 2018-11-04 01 -05 EST 2019-03-10 03 -04 EDT 1 2019-11-03 01 -05 EST 2020-03-08 03 -04 EDT 1 2020-11-01 01 -05 EST 2021-03-14 03 -04 EDT 1 2021-11-07 01 -05 EST 2022-03-13 03 -04 EDT 1 2022-11-06 01 -05 EST 2023-03-12 03 -04 EDT 1 2023-11-05 01 -05 EST 2024-03-10 03 -04 EDT 1 2024-11-03 01 -05 EST 2025-03-09 03 -04 EDT 1 2025-11-02 01 -05 EST 2026-03-08 03 -04 EDT 1 2026-11-01 01 -05 EST 2027-03-14 03 -04 EDT 1 2027-11-07 01 -05 EST 2028-03-12 03 -04 EDT 1 2028-11-05 01 -05 EST 2029-03-11 03 -04 EDT 1 2029-11-04 01 -05 EST 2030-03-10 03 -04 EDT 1 2030-11-03 01 -05 EST 2031-03-09 03 -04 EDT 1 2031-11-02 01 -05 EST 2032-03-14 03 -04 EDT 1 2032-11-07 01 -05 EST 2033-03-13 03 -04 EDT 1 2033-11-06 01 -05 EST 2034-03-12 03 -04 EDT 1 2034-11-05 01 -05 EST 2035-03-11 03 -04 EDT 1 2035-11-04 01 -05 EST 2036-03-09 03 -04 EDT 1 2036-11-02 01 -05 EST 2037-03-08 03 -04 EDT 1 2037-11-01 01 -05 EST 2038-03-14 03 -04 EDT 1 2038-11-07 01 -05 EST 2039-03-13 03 -04 EDT 1 2039-11-06 01 -05 EST 2040-03-11 03 -04 EDT 1 2040-11-04 01 -05 EST 2041-03-10 03 -04 EDT 1 2041-11-03 01 -05 EST 2042-03-09 03 -04 EDT 1 2042-11-02 01 -05 EST 2043-03-08 03 -04 EDT 1 2043-11-01 01 -05 EST 2044-03-13 03 -04 EDT 1 2044-11-06 01 -05 EST 2045-03-12 03 -04 EDT 1 2045-11-05 01 -05 EST 2046-03-11 03 -04 EDT 1 2046-11-04 01 -05 EST 2047-03-10 03 -04 EDT 1 2047-11-03 01 -05 EST 2048-03-08 03 -04 EDT 1 2048-11-01 01 -05 EST 2049-03-14 03 -04 EDT 1 2049-11-07 01 -05 EST TZ="America/Tijuana" - - -074804 LMT 1922-01-01 01 -07 MST 1923-12-31 23 -08 PST 1927-06-11 00 -07 MST 1930-11-14 23 -08 PST 1931-04-01 01 -07 PDT 1 1931-09-29 23 -08 PST 1942-04-24 01 -07 PWT 1 1945-08-14 16 -07 PPT 1 1945-11-11 23 -08 PST 1948-04-05 01 -07 PDT 1 1949-01-13 23 -08 PST 1954-04-25 02 -07 PDT 1 1954-09-26 01 -08 PST 1955-04-24 02 -07 PDT 1 1955-09-25 01 -08 PST 1956-04-29 02 -07 PDT 1 1956-09-30 01 -08 PST 1957-04-28 02 -07 PDT 1 1957-09-29 01 -08 PST 1958-04-27 02 -07 PDT 1 1958-09-28 01 -08 PST 1959-04-26 02 -07 PDT 1 1959-09-27 01 -08 PST 1960-04-24 02 -07 PDT 1 1960-09-25 01 -08 PST 1976-04-25 03 -07 PDT 1 1976-10-31 01 -08 PST 1977-04-24 03 -07 PDT 1 1977-10-30 01 -08 PST 1978-04-30 03 -07 PDT 1 1978-10-29 01 -08 PST 1979-04-29 03 -07 PDT 1 1979-10-28 01 -08 PST 1980-04-27 03 -07 PDT 1 1980-10-26 01 -08 PST 1981-04-26 03 -07 PDT 1 1981-10-25 01 -08 PST 1982-04-25 03 -07 PDT 1 1982-10-31 01 -08 PST 1983-04-24 03 -07 PDT 1 1983-10-30 01 -08 PST 1984-04-29 03 -07 PDT 1 1984-10-28 01 -08 PST 1985-04-28 03 -07 PDT 1 1985-10-27 01 -08 PST 1986-04-27 03 -07 PDT 1 1986-10-26 01 -08 PST 1987-04-05 03 -07 PDT 1 1987-10-25 01 -08 PST 1988-04-03 03 -07 PDT 1 1988-10-30 01 -08 PST 1989-04-02 03 -07 PDT 1 1989-10-29 01 -08 PST 1990-04-01 03 -07 PDT 1 1990-10-28 01 -08 PST 1991-04-07 03 -07 PDT 1 1991-10-27 01 -08 PST 1992-04-05 03 -07 PDT 1 1992-10-25 01 -08 PST 1993-04-04 03 -07 PDT 1 1993-10-31 01 -08 PST 1994-04-03 03 -07 PDT 1 1994-10-30 01 -08 PST 1995-04-02 03 -07 PDT 1 1995-10-29 01 -08 PST 1996-04-07 03 -07 PDT 1 1996-10-27 01 -08 PST 1997-04-06 03 -07 PDT 1 1997-10-26 01 -08 PST 1998-04-05 03 -07 PDT 1 1998-10-25 01 -08 PST 1999-04-04 03 -07 PDT 1 1999-10-31 01 -08 PST 2000-04-02 03 -07 PDT 1 2000-10-29 01 -08 PST 2001-04-01 03 -07 PDT 1 2001-10-28 01 -08 PST 2002-04-07 03 -07 PDT 1 2002-10-27 01 -08 PST 2003-04-06 03 -07 PDT 1 2003-10-26 01 -08 PST 2004-04-04 03 -07 PDT 1 2004-10-31 01 -08 PST 2005-04-03 03 -07 PDT 1 2005-10-30 01 -08 PST 2006-04-02 03 -07 PDT 1 2006-10-29 01 -08 PST 2007-04-01 03 -07 PDT 1 2007-10-28 01 -08 PST 2008-04-06 03 -07 PDT 1 2008-10-26 01 -08 PST 2009-04-05 03 -07 PDT 1 2009-10-25 01 -08 PST 2010-03-14 03 -07 PDT 1 2010-11-07 01 -08 PST 2011-03-13 03 -07 PDT 1 2011-11-06 01 -08 PST 2012-03-11 03 -07 PDT 1 2012-11-04 01 -08 PST 2013-03-10 03 -07 PDT 1 2013-11-03 01 -08 PST 2014-03-09 03 -07 PDT 1 2014-11-02 01 -08 PST 2015-03-08 03 -07 PDT 1 2015-11-01 01 -08 PST 2016-03-13 03 -07 PDT 1 2016-11-06 01 -08 PST 2017-03-12 03 -07 PDT 1 2017-11-05 01 -08 PST 2018-03-11 03 -07 PDT 1 2018-11-04 01 -08 PST 2019-03-10 03 -07 PDT 1 2019-11-03 01 -08 PST 2020-03-08 03 -07 PDT 1 2020-11-01 01 -08 PST 2021-03-14 03 -07 PDT 1 2021-11-07 01 -08 PST 2022-03-13 03 -07 PDT 1 2022-11-06 01 -08 PST 2023-03-12 03 -07 PDT 1 2023-11-05 01 -08 PST 2024-03-10 03 -07 PDT 1 2024-11-03 01 -08 PST 2025-03-09 03 -07 PDT 1 2025-11-02 01 -08 PST 2026-03-08 03 -07 PDT 1 2026-11-01 01 -08 PST 2027-03-14 03 -07 PDT 1 2027-11-07 01 -08 PST 2028-03-12 03 -07 PDT 1 2028-11-05 01 -08 PST 2029-03-11 03 -07 PDT 1 2029-11-04 01 -08 PST 2030-03-10 03 -07 PDT 1 2030-11-03 01 -08 PST 2031-03-09 03 -07 PDT 1 2031-11-02 01 -08 PST 2032-03-14 03 -07 PDT 1 2032-11-07 01 -08 PST 2033-03-13 03 -07 PDT 1 2033-11-06 01 -08 PST 2034-03-12 03 -07 PDT 1 2034-11-05 01 -08 PST 2035-03-11 03 -07 PDT 1 2035-11-04 01 -08 PST 2036-03-09 03 -07 PDT 1 2036-11-02 01 -08 PST 2037-03-08 03 -07 PDT 1 2037-11-01 01 -08 PST 2038-03-14 03 -07 PDT 1 2038-11-07 01 -08 PST 2039-03-13 03 -07 PDT 1 2039-11-06 01 -08 PST 2040-03-11 03 -07 PDT 1 2040-11-04 01 -08 PST 2041-03-10 03 -07 PDT 1 2041-11-03 01 -08 PST 2042-03-09 03 -07 PDT 1 2042-11-02 01 -08 PST 2043-03-08 03 -07 PDT 1 2043-11-01 01 -08 PST 2044-03-13 03 -07 PDT 1 2044-11-06 01 -08 PST 2045-03-12 03 -07 PDT 1 2045-11-05 01 -08 PST 2046-03-11 03 -07 PDT 1 2046-11-04 01 -08 PST 2047-03-10 03 -07 PDT 1 2047-11-03 01 -08 PST 2048-03-08 03 -07 PDT 1 2048-11-01 01 -08 PST 2049-03-14 03 -07 PDT 1 2049-11-07 01 -08 PST TZ="America/Toronto" - - -051732 LMT 1895-01-01 00:17:32 -05 EST 1918-04-14 03 -04 EDT 1 1918-10-27 01 -05 EST 1919-03-31 00:30 -04 EDT 1 1919-10-25 23 -05 EST 1920-05-02 03 -04 EDT 1 1920-09-25 23 -05 EST 1921-05-15 03 -04 EDT 1 1921-09-15 01 -05 EST 1922-05-14 03 -04 EDT 1 1922-09-17 01 -05 EST 1923-05-13 03 -04 EDT 1 1923-09-16 01 -05 EST 1924-05-04 03 -04 EDT 1 1924-09-21 01 -05 EST 1925-05-03 03 -04 EDT 1 1925-09-20 01 -05 EST 1926-05-02 03 -04 EDT 1 1926-09-19 01 -05 EST 1927-05-01 03 -04 EDT 1 1927-09-25 01 -05 EST 1928-04-29 03 -04 EDT 1 1928-09-30 01 -05 EST 1929-04-28 03 -04 EDT 1 1929-09-29 01 -05 EST 1930-04-27 03 -04 EDT 1 1930-09-28 01 -05 EST 1931-04-26 03 -04 EDT 1 1931-09-27 01 -05 EST 1932-05-01 03 -04 EDT 1 1932-09-25 01 -05 EST 1933-04-30 03 -04 EDT 1 1933-10-01 01 -05 EST 1934-04-29 03 -04 EDT 1 1934-09-30 01 -05 EST 1935-04-28 03 -04 EDT 1 1935-09-29 01 -05 EST 1936-04-26 03 -04 EDT 1 1936-09-27 01 -05 EST 1937-04-25 03 -04 EDT 1 1937-09-26 01 -05 EST 1938-04-24 03 -04 EDT 1 1938-09-25 01 -05 EST 1939-04-30 03 -04 EDT 1 1939-09-24 01 -05 EST 1940-04-28 03 -04 EDT 1 1942-02-09 03 -04 EWT 1 1945-08-14 19 -04 EPT 1 1945-09-30 01 -05 EST 1946-04-28 03 -04 EDT 1 1946-09-29 01 -05 EST 1947-04-27 01 -04 EDT 1 1947-09-27 23 -05 EST 1948-04-25 01 -04 EDT 1 1948-09-25 23 -05 EST 1949-04-24 01 -04 EDT 1 1949-11-26 23 -05 EST 1950-04-30 03 -04 EDT 1 1950-11-26 01 -05 EST 1951-04-29 03 -04 EDT 1 1951-09-30 01 -05 EST 1952-04-27 03 -04 EDT 1 1952-09-28 01 -05 EST 1953-04-26 03 -04 EDT 1 1953-09-27 01 -05 EST 1954-04-25 03 -04 EDT 1 1954-09-26 01 -05 EST 1955-04-24 03 -04 EDT 1 1955-09-25 01 -05 EST 1956-04-29 03 -04 EDT 1 1956-09-30 01 -05 EST 1957-04-28 03 -04 EDT 1 1957-10-27 01 -05 EST 1958-04-27 03 -04 EDT 1 1958-10-26 01 -05 EST 1959-04-26 03 -04 EDT 1 1959-10-25 01 -05 EST 1960-04-24 03 -04 EDT 1 1960-10-30 01 -05 EST 1961-04-30 03 -04 EDT 1 1961-10-29 01 -05 EST 1962-04-29 03 -04 EDT 1 1962-10-28 01 -05 EST 1963-04-28 03 -04 EDT 1 1963-10-27 01 -05 EST 1964-04-26 03 -04 EDT 1 1964-10-25 01 -05 EST 1965-04-25 03 -04 EDT 1 1965-10-31 01 -05 EST 1966-04-24 03 -04 EDT 1 1966-10-30 01 -05 EST 1967-04-30 03 -04 EDT 1 1967-10-29 01 -05 EST 1968-04-28 03 -04 EDT 1 1968-10-27 01 -05 EST 1969-04-27 03 -04 EDT 1 1969-10-26 01 -05 EST 1970-04-26 03 -04 EDT 1 1970-10-25 01 -05 EST 1971-04-25 03 -04 EDT 1 1971-10-31 01 -05 EST 1972-04-30 03 -04 EDT 1 1972-10-29 01 -05 EST 1973-04-29 03 -04 EDT 1 1973-10-28 01 -05 EST 1974-04-28 03 -04 EDT 1 1974-10-27 01 -05 EST 1975-04-27 03 -04 EDT 1 1975-10-26 01 -05 EST 1976-04-25 03 -04 EDT 1 1976-10-31 01 -05 EST 1977-04-24 03 -04 EDT 1 1977-10-30 01 -05 EST 1978-04-30 03 -04 EDT 1 1978-10-29 01 -05 EST 1979-04-29 03 -04 EDT 1 1979-10-28 01 -05 EST 1980-04-27 03 -04 EDT 1 1980-10-26 01 -05 EST 1981-04-26 03 -04 EDT 1 1981-10-25 01 -05 EST 1982-04-25 03 -04 EDT 1 1982-10-31 01 -05 EST 1983-04-24 03 -04 EDT 1 1983-10-30 01 -05 EST 1984-04-29 03 -04 EDT 1 1984-10-28 01 -05 EST 1985-04-28 03 -04 EDT 1 1985-10-27 01 -05 EST 1986-04-27 03 -04 EDT 1 1986-10-26 01 -05 EST 1987-04-05 03 -04 EDT 1 1987-10-25 01 -05 EST 1988-04-03 03 -04 EDT 1 1988-10-30 01 -05 EST 1989-04-02 03 -04 EDT 1 1989-10-29 01 -05 EST 1990-04-01 03 -04 EDT 1 1990-10-28 01 -05 EST 1991-04-07 03 -04 EDT 1 1991-10-27 01 -05 EST 1992-04-05 03 -04 EDT 1 1992-10-25 01 -05 EST 1993-04-04 03 -04 EDT 1 1993-10-31 01 -05 EST 1994-04-03 03 -04 EDT 1 1994-10-30 01 -05 EST 1995-04-02 03 -04 EDT 1 1995-10-29 01 -05 EST 1996-04-07 03 -04 EDT 1 1996-10-27 01 -05 EST 1997-04-06 03 -04 EDT 1 1997-10-26 01 -05 EST 1998-04-05 03 -04 EDT 1 1998-10-25 01 -05 EST 1999-04-04 03 -04 EDT 1 1999-10-31 01 -05 EST 2000-04-02 03 -04 EDT 1 2000-10-29 01 -05 EST 2001-04-01 03 -04 EDT 1 2001-10-28 01 -05 EST 2002-04-07 03 -04 EDT 1 2002-10-27 01 -05 EST 2003-04-06 03 -04 EDT 1 2003-10-26 01 -05 EST 2004-04-04 03 -04 EDT 1 2004-10-31 01 -05 EST 2005-04-03 03 -04 EDT 1 2005-10-30 01 -05 EST 2006-04-02 03 -04 EDT 1 2006-10-29 01 -05 EST 2007-03-11 03 -04 EDT 1 2007-11-04 01 -05 EST 2008-03-09 03 -04 EDT 1 2008-11-02 01 -05 EST 2009-03-08 03 -04 EDT 1 2009-11-01 01 -05 EST 2010-03-14 03 -04 EDT 1 2010-11-07 01 -05 EST 2011-03-13 03 -04 EDT 1 2011-11-06 01 -05 EST 2012-03-11 03 -04 EDT 1 2012-11-04 01 -05 EST 2013-03-10 03 -04 EDT 1 2013-11-03 01 -05 EST 2014-03-09 03 -04 EDT 1 2014-11-02 01 -05 EST 2015-03-08 03 -04 EDT 1 2015-11-01 01 -05 EST 2016-03-13 03 -04 EDT 1 2016-11-06 01 -05 EST 2017-03-12 03 -04 EDT 1 2017-11-05 01 -05 EST 2018-03-11 03 -04 EDT 1 2018-11-04 01 -05 EST 2019-03-10 03 -04 EDT 1 2019-11-03 01 -05 EST 2020-03-08 03 -04 EDT 1 2020-11-01 01 -05 EST 2021-03-14 03 -04 EDT 1 2021-11-07 01 -05 EST 2022-03-13 03 -04 EDT 1 2022-11-06 01 -05 EST 2023-03-12 03 -04 EDT 1 2023-11-05 01 -05 EST 2024-03-10 03 -04 EDT 1 2024-11-03 01 -05 EST 2025-03-09 03 -04 EDT 1 2025-11-02 01 -05 EST 2026-03-08 03 -04 EDT 1 2026-11-01 01 -05 EST 2027-03-14 03 -04 EDT 1 2027-11-07 01 -05 EST 2028-03-12 03 -04 EDT 1 2028-11-05 01 -05 EST 2029-03-11 03 -04 EDT 1 2029-11-04 01 -05 EST 2030-03-10 03 -04 EDT 1 2030-11-03 01 -05 EST 2031-03-09 03 -04 EDT 1 2031-11-02 01 -05 EST 2032-03-14 03 -04 EDT 1 2032-11-07 01 -05 EST 2033-03-13 03 -04 EDT 1 2033-11-06 01 -05 EST 2034-03-12 03 -04 EDT 1 2034-11-05 01 -05 EST 2035-03-11 03 -04 EDT 1 2035-11-04 01 -05 EST 2036-03-09 03 -04 EDT 1 2036-11-02 01 -05 EST 2037-03-08 03 -04 EDT 1 2037-11-01 01 -05 EST 2038-03-14 03 -04 EDT 1 2038-11-07 01 -05 EST 2039-03-13 03 -04 EDT 1 2039-11-06 01 -05 EST 2040-03-11 03 -04 EDT 1 2040-11-04 01 -05 EST 2041-03-10 03 -04 EDT 1 2041-11-03 01 -05 EST 2042-03-09 03 -04 EDT 1 2042-11-02 01 -05 EST 2043-03-08 03 -04 EDT 1 2043-11-01 01 -05 EST 2044-03-13 03 -04 EDT 1 2044-11-06 01 -05 EST 2045-03-12 03 -04 EDT 1 2045-11-05 01 -05 EST 2046-03-11 03 -04 EDT 1 2046-11-04 01 -05 EST 2047-03-10 03 -04 EDT 1 2047-11-03 01 -05 EST 2048-03-08 03 -04 EDT 1 2048-11-01 01 -05 EST 2049-03-14 03 -04 EDT 1 2049-11-07 01 -05 EST TZ="America/Vancouver" - - -081228 LMT 1884-01-01 00:12:28 -08 PST 1918-04-14 03 -07 PDT 1 1918-10-27 01 -08 PST 1942-02-09 03 -07 PWT 1 1945-08-14 16 -07 PPT 1 1945-09-30 01 -08 PST 1946-04-28 03 -07 PDT 1 1946-09-29 01 -08 PST 1947-04-27 03 -07 PDT 1 1947-09-28 01 -08 PST 1948-04-25 03 -07 PDT 1 1948-09-26 01 -08 PST 1949-04-24 03 -07 PDT 1 1949-09-25 01 -08 PST 1950-04-30 03 -07 PDT 1 1950-09-24 01 -08 PST 1951-04-29 03 -07 PDT 1 1951-09-30 01 -08 PST 1952-04-27 03 -07 PDT 1 1952-09-28 01 -08 PST 1953-04-26 03 -07 PDT 1 1953-09-27 01 -08 PST 1954-04-25 03 -07 PDT 1 1954-09-26 01 -08 PST 1955-04-24 03 -07 PDT 1 1955-09-25 01 -08 PST 1956-04-29 03 -07 PDT 1 1956-09-30 01 -08 PST 1957-04-28 03 -07 PDT 1 1957-09-29 01 -08 PST 1958-04-27 03 -07 PDT 1 1958-09-28 01 -08 PST 1959-04-26 03 -07 PDT 1 1959-09-27 01 -08 PST 1960-04-24 03 -07 PDT 1 1960-09-25 01 -08 PST 1961-04-30 03 -07 PDT 1 1961-09-24 01 -08 PST 1962-04-29 03 -07 PDT 1 1962-10-28 01 -08 PST 1963-04-28 03 -07 PDT 1 1963-10-27 01 -08 PST 1964-04-26 03 -07 PDT 1 1964-10-25 01 -08 PST 1965-04-25 03 -07 PDT 1 1965-10-31 01 -08 PST 1966-04-24 03 -07 PDT 1 1966-10-30 01 -08 PST 1967-04-30 03 -07 PDT 1 1967-10-29 01 -08 PST 1968-04-28 03 -07 PDT 1 1968-10-27 01 -08 PST 1969-04-27 03 -07 PDT 1 1969-10-26 01 -08 PST 1970-04-26 03 -07 PDT 1 1970-10-25 01 -08 PST 1971-04-25 03 -07 PDT 1 1971-10-31 01 -08 PST 1972-04-30 03 -07 PDT 1 1972-10-29 01 -08 PST 1973-04-29 03 -07 PDT 1 1973-10-28 01 -08 PST 1974-04-28 03 -07 PDT 1 1974-10-27 01 -08 PST 1975-04-27 03 -07 PDT 1 1975-10-26 01 -08 PST 1976-04-25 03 -07 PDT 1 1976-10-31 01 -08 PST 1977-04-24 03 -07 PDT 1 1977-10-30 01 -08 PST 1978-04-30 03 -07 PDT 1 1978-10-29 01 -08 PST 1979-04-29 03 -07 PDT 1 1979-10-28 01 -08 PST 1980-04-27 03 -07 PDT 1 1980-10-26 01 -08 PST 1981-04-26 03 -07 PDT 1 1981-10-25 01 -08 PST 1982-04-25 03 -07 PDT 1 1982-10-31 01 -08 PST 1983-04-24 03 -07 PDT 1 1983-10-30 01 -08 PST 1984-04-29 03 -07 PDT 1 1984-10-28 01 -08 PST 1985-04-28 03 -07 PDT 1 1985-10-27 01 -08 PST 1986-04-27 03 -07 PDT 1 1986-10-26 01 -08 PST 1987-04-05 03 -07 PDT 1 1987-10-25 01 -08 PST 1988-04-03 03 -07 PDT 1 1988-10-30 01 -08 PST 1989-04-02 03 -07 PDT 1 1989-10-29 01 -08 PST 1990-04-01 03 -07 PDT 1 1990-10-28 01 -08 PST 1991-04-07 03 -07 PDT 1 1991-10-27 01 -08 PST 1992-04-05 03 -07 PDT 1 1992-10-25 01 -08 PST 1993-04-04 03 -07 PDT 1 1993-10-31 01 -08 PST 1994-04-03 03 -07 PDT 1 1994-10-30 01 -08 PST 1995-04-02 03 -07 PDT 1 1995-10-29 01 -08 PST 1996-04-07 03 -07 PDT 1 1996-10-27 01 -08 PST 1997-04-06 03 -07 PDT 1 1997-10-26 01 -08 PST 1998-04-05 03 -07 PDT 1 1998-10-25 01 -08 PST 1999-04-04 03 -07 PDT 1 1999-10-31 01 -08 PST 2000-04-02 03 -07 PDT 1 2000-10-29 01 -08 PST 2001-04-01 03 -07 PDT 1 2001-10-28 01 -08 PST 2002-04-07 03 -07 PDT 1 2002-10-27 01 -08 PST 2003-04-06 03 -07 PDT 1 2003-10-26 01 -08 PST 2004-04-04 03 -07 PDT 1 2004-10-31 01 -08 PST 2005-04-03 03 -07 PDT 1 2005-10-30 01 -08 PST 2006-04-02 03 -07 PDT 1 2006-10-29 01 -08 PST 2007-03-11 03 -07 PDT 1 2007-11-04 01 -08 PST 2008-03-09 03 -07 PDT 1 2008-11-02 01 -08 PST 2009-03-08 03 -07 PDT 1 2009-11-01 01 -08 PST 2010-03-14 03 -07 PDT 1 2010-11-07 01 -08 PST 2011-03-13 03 -07 PDT 1 2011-11-06 01 -08 PST 2012-03-11 03 -07 PDT 1 2012-11-04 01 -08 PST 2013-03-10 03 -07 PDT 1 2013-11-03 01 -08 PST 2014-03-09 03 -07 PDT 1 2014-11-02 01 -08 PST 2015-03-08 03 -07 PDT 1 2015-11-01 01 -08 PST 2016-03-13 03 -07 PDT 1 2016-11-06 01 -08 PST 2017-03-12 03 -07 PDT 1 2017-11-05 01 -08 PST 2018-03-11 03 -07 PDT 1 2018-11-04 01 -08 PST 2019-03-10 03 -07 PDT 1 2019-11-03 01 -08 PST 2020-03-08 03 -07 PDT 1 2020-11-01 01 -08 PST 2021-03-14 03 -07 PDT 1 2021-11-07 01 -08 PST 2022-03-13 03 -07 PDT 1 2022-11-06 01 -08 PST 2023-03-12 03 -07 PDT 1 2023-11-05 01 -08 PST 2024-03-10 03 -07 PDT 1 2024-11-03 01 -08 PST 2025-03-09 03 -07 PDT 1 2025-11-02 01 -08 PST 2026-03-08 03 -07 PDT 1 2026-11-01 01 -08 PST 2027-03-14 03 -07 PDT 1 2027-11-07 01 -08 PST 2028-03-12 03 -07 PDT 1 2028-11-05 01 -08 PST 2029-03-11 03 -07 PDT 1 2029-11-04 01 -08 PST 2030-03-10 03 -07 PDT 1 2030-11-03 01 -08 PST 2031-03-09 03 -07 PDT 1 2031-11-02 01 -08 PST 2032-03-14 03 -07 PDT 1 2032-11-07 01 -08 PST 2033-03-13 03 -07 PDT 1 2033-11-06 01 -08 PST 2034-03-12 03 -07 PDT 1 2034-11-05 01 -08 PST 2035-03-11 03 -07 PDT 1 2035-11-04 01 -08 PST 2036-03-09 03 -07 PDT 1 2036-11-02 01 -08 PST 2037-03-08 03 -07 PDT 1 2037-11-01 01 -08 PST 2038-03-14 03 -07 PDT 1 2038-11-07 01 -08 PST 2039-03-13 03 -07 PDT 1 2039-11-06 01 -08 PST 2040-03-11 03 -07 PDT 1 2040-11-04 01 -08 PST 2041-03-10 03 -07 PDT 1 2041-11-03 01 -08 PST 2042-03-09 03 -07 PDT 1 2042-11-02 01 -08 PST 2043-03-08 03 -07 PDT 1 2043-11-01 01 -08 PST 2044-03-13 03 -07 PDT 1 2044-11-06 01 -08 PST 2045-03-12 03 -07 PDT 1 2045-11-05 01 -08 PST 2046-03-11 03 -07 PDT 1 2046-11-04 01 -08 PST 2047-03-10 03 -07 PDT 1 2047-11-03 01 -08 PST 2048-03-08 03 -07 PDT 1 2048-11-01 01 -08 PST 2049-03-14 03 -07 PDT 1 2049-11-07 01 -08 PST TZ="America/Whitehorse" - - -090012 LMT 1900-08-20 00:00:12 -09 YST 1918-04-14 03 -08 YDT 1 1918-10-27 01 -09 YST 1919-05-25 03 -08 YDT 1 1919-10-31 23 -09 YST 1942-02-09 03 -08 YWT 1 1945-08-14 15 -08 YPT 1 1945-09-30 01 -09 YST 1965-04-25 02 -07 YDDT 1 1965-10-31 00 -09 YST 1967-05-28 01 -08 PST 1980-04-27 03 -07 PDT 1 1980-10-26 01 -08 PST 1981-04-26 03 -07 PDT 1 1981-10-25 01 -08 PST 1982-04-25 03 -07 PDT 1 1982-10-31 01 -08 PST 1983-04-24 03 -07 PDT 1 1983-10-30 01 -08 PST 1984-04-29 03 -07 PDT 1 1984-10-28 01 -08 PST 1985-04-28 03 -07 PDT 1 1985-10-27 01 -08 PST 1986-04-27 03 -07 PDT 1 1986-10-26 01 -08 PST 1987-04-05 03 -07 PDT 1 1987-10-25 01 -08 PST 1988-04-03 03 -07 PDT 1 1988-10-30 01 -08 PST 1989-04-02 03 -07 PDT 1 1989-10-29 01 -08 PST 1990-04-01 03 -07 PDT 1 1990-10-28 01 -08 PST 1991-04-07 03 -07 PDT 1 1991-10-27 01 -08 PST 1992-04-05 03 -07 PDT 1 1992-10-25 01 -08 PST 1993-04-04 03 -07 PDT 1 1993-10-31 01 -08 PST 1994-04-03 03 -07 PDT 1 1994-10-30 01 -08 PST 1995-04-02 03 -07 PDT 1 1995-10-29 01 -08 PST 1996-04-07 03 -07 PDT 1 1996-10-27 01 -08 PST 1997-04-06 03 -07 PDT 1 1997-10-26 01 -08 PST 1998-04-05 03 -07 PDT 1 1998-10-25 01 -08 PST 1999-04-04 03 -07 PDT 1 1999-10-31 01 -08 PST 2000-04-02 03 -07 PDT 1 2000-10-29 01 -08 PST 2001-04-01 03 -07 PDT 1 2001-10-28 01 -08 PST 2002-04-07 03 -07 PDT 1 2002-10-27 01 -08 PST 2003-04-06 03 -07 PDT 1 2003-10-26 01 -08 PST 2004-04-04 03 -07 PDT 1 2004-10-31 01 -08 PST 2005-04-03 03 -07 PDT 1 2005-10-30 01 -08 PST 2006-04-02 03 -07 PDT 1 2006-10-29 01 -08 PST 2007-03-11 03 -07 PDT 1 2007-11-04 01 -08 PST 2008-03-09 03 -07 PDT 1 2008-11-02 01 -08 PST 2009-03-08 03 -07 PDT 1 2009-11-01 01 -08 PST 2010-03-14 03 -07 PDT 1 2010-11-07 01 -08 PST 2011-03-13 03 -07 PDT 1 2011-11-06 01 -08 PST 2012-03-11 03 -07 PDT 1 2012-11-04 01 -08 PST 2013-03-10 03 -07 PDT 1 2013-11-03 01 -08 PST 2014-03-09 03 -07 PDT 1 2014-11-02 01 -08 PST 2015-03-08 03 -07 PDT 1 2015-11-01 01 -08 PST 2016-03-13 03 -07 PDT 1 2016-11-06 01 -08 PST 2017-03-12 03 -07 PDT 1 2017-11-05 01 -08 PST 2018-03-11 03 -07 PDT 1 2018-11-04 01 -08 PST 2019-03-10 03 -07 PDT 1 2019-11-03 01 -08 PST 2020-03-08 03 -07 PDT 1 2020-11-01 01 -08 PST 2021-03-14 03 -07 PDT 1 2021-11-07 01 -08 PST 2022-03-13 03 -07 PDT 1 2022-11-06 01 -08 PST 2023-03-12 03 -07 PDT 1 2023-11-05 01 -08 PST 2024-03-10 03 -07 PDT 1 2024-11-03 01 -08 PST 2025-03-09 03 -07 PDT 1 2025-11-02 01 -08 PST 2026-03-08 03 -07 PDT 1 2026-11-01 01 -08 PST 2027-03-14 03 -07 PDT 1 2027-11-07 01 -08 PST 2028-03-12 03 -07 PDT 1 2028-11-05 01 -08 PST 2029-03-11 03 -07 PDT 1 2029-11-04 01 -08 PST 2030-03-10 03 -07 PDT 1 2030-11-03 01 -08 PST 2031-03-09 03 -07 PDT 1 2031-11-02 01 -08 PST 2032-03-14 03 -07 PDT 1 2032-11-07 01 -08 PST 2033-03-13 03 -07 PDT 1 2033-11-06 01 -08 PST 2034-03-12 03 -07 PDT 1 2034-11-05 01 -08 PST 2035-03-11 03 -07 PDT 1 2035-11-04 01 -08 PST 2036-03-09 03 -07 PDT 1 2036-11-02 01 -08 PST 2037-03-08 03 -07 PDT 1 2037-11-01 01 -08 PST 2038-03-14 03 -07 PDT 1 2038-11-07 01 -08 PST 2039-03-13 03 -07 PDT 1 2039-11-06 01 -08 PST 2040-03-11 03 -07 PDT 1 2040-11-04 01 -08 PST 2041-03-10 03 -07 PDT 1 2041-11-03 01 -08 PST 2042-03-09 03 -07 PDT 1 2042-11-02 01 -08 PST 2043-03-08 03 -07 PDT 1 2043-11-01 01 -08 PST 2044-03-13 03 -07 PDT 1 2044-11-06 01 -08 PST 2045-03-12 03 -07 PDT 1 2045-11-05 01 -08 PST 2046-03-11 03 -07 PDT 1 2046-11-04 01 -08 PST 2047-03-10 03 -07 PDT 1 2047-11-03 01 -08 PST 2048-03-08 03 -07 PDT 1 2048-11-01 01 -08 PST 2049-03-14 03 -07 PDT 1 2049-11-07 01 -08 PST TZ="America/Winnipeg" - - -062836 LMT 1887-07-16 00:28:36 -06 CST 1916-04-23 01 -05 CDT 1 1916-09-16 23 -06 CST 1918-04-14 03 -05 CDT 1 1918-10-27 01 -06 CST 1937-05-16 03 -05 CDT 1 1937-09-26 01 -06 CST 1942-02-09 03 -05 CWT 1 1945-08-14 18 -05 CPT 1 1945-09-30 01 -06 CST 1946-05-12 03 -05 CDT 1 1946-10-13 01 -06 CST 1947-04-27 03 -05 CDT 1 1947-09-28 01 -06 CST 1948-04-25 03 -05 CDT 1 1948-09-26 01 -06 CST 1949-04-24 03 -05 CDT 1 1949-09-25 01 -06 CST 1950-05-01 03 -05 CDT 1 1950-09-30 01 -06 CST 1951-04-29 03 -05 CDT 1 1951-09-30 01 -06 CST 1952-04-27 03 -05 CDT 1 1952-09-28 01 -06 CST 1953-04-26 03 -05 CDT 1 1953-09-27 01 -06 CST 1954-04-25 03 -05 CDT 1 1954-09-26 01 -06 CST 1955-04-24 03 -05 CDT 1 1955-09-25 01 -06 CST 1956-04-29 03 -05 CDT 1 1956-09-30 01 -06 CST 1957-04-28 03 -05 CDT 1 1957-09-29 01 -06 CST 1958-04-27 03 -05 CDT 1 1958-09-28 01 -06 CST 1959-04-26 03 -05 CDT 1 1959-10-25 01 -06 CST 1960-04-24 03 -05 CDT 1 1960-09-25 01 -06 CST 1963-04-28 03 -05 CDT 1 1963-09-22 01 -06 CST 1966-04-24 03 -05 CDT 1 1966-10-30 02 -06 CST 1967-04-30 03 -05 CDT 1 1967-10-29 02 -06 CST 1968-04-28 03 -05 CDT 1 1968-10-27 02 -06 CST 1969-04-27 03 -05 CDT 1 1969-10-26 02 -06 CST 1970-04-26 03 -05 CDT 1 1970-10-25 02 -06 CST 1971-04-25 03 -05 CDT 1 1971-10-31 02 -06 CST 1972-04-30 03 -05 CDT 1 1972-10-29 02 -06 CST 1973-04-29 03 -05 CDT 1 1973-10-28 02 -06 CST 1974-04-28 03 -05 CDT 1 1974-10-27 02 -06 CST 1975-04-27 03 -05 CDT 1 1975-10-26 02 -06 CST 1976-04-25 03 -05 CDT 1 1976-10-31 02 -06 CST 1977-04-24 03 -05 CDT 1 1977-10-30 02 -06 CST 1978-04-30 03 -05 CDT 1 1978-10-29 02 -06 CST 1979-04-29 03 -05 CDT 1 1979-10-28 02 -06 CST 1980-04-27 03 -05 CDT 1 1980-10-26 02 -06 CST 1981-04-26 03 -05 CDT 1 1981-10-25 02 -06 CST 1982-04-25 03 -05 CDT 1 1982-10-31 02 -06 CST 1983-04-24 03 -05 CDT 1 1983-10-30 02 -06 CST 1984-04-29 03 -05 CDT 1 1984-10-28 02 -06 CST 1985-04-28 03 -05 CDT 1 1985-10-27 02 -06 CST 1986-04-27 03 -05 CDT 1 1986-10-26 02 -06 CST 1987-04-05 03 -05 CDT 1 1987-10-25 02 -06 CST 1988-04-03 03 -05 CDT 1 1988-10-30 02 -06 CST 1989-04-02 03 -05 CDT 1 1989-10-29 02 -06 CST 1990-04-01 03 -05 CDT 1 1990-10-28 02 -06 CST 1991-04-07 03 -05 CDT 1 1991-10-27 02 -06 CST 1992-04-05 03 -05 CDT 1 1992-10-25 02 -06 CST 1993-04-04 03 -05 CDT 1 1993-10-31 02 -06 CST 1994-04-03 03 -05 CDT 1 1994-10-30 02 -06 CST 1995-04-02 03 -05 CDT 1 1995-10-29 02 -06 CST 1996-04-07 03 -05 CDT 1 1996-10-27 02 -06 CST 1997-04-06 03 -05 CDT 1 1997-10-26 02 -06 CST 1998-04-05 03 -05 CDT 1 1998-10-25 02 -06 CST 1999-04-04 03 -05 CDT 1 1999-10-31 02 -06 CST 2000-04-02 03 -05 CDT 1 2000-10-29 02 -06 CST 2001-04-01 03 -05 CDT 1 2001-10-28 02 -06 CST 2002-04-07 03 -05 CDT 1 2002-10-27 02 -06 CST 2003-04-06 03 -05 CDT 1 2003-10-26 02 -06 CST 2004-04-04 03 -05 CDT 1 2004-10-31 02 -06 CST 2005-04-03 03 -05 CDT 1 2005-10-30 02 -06 CST 2006-04-02 03 -05 CDT 1 2006-10-29 01 -06 CST 2007-03-11 03 -05 CDT 1 2007-11-04 01 -06 CST 2008-03-09 03 -05 CDT 1 2008-11-02 01 -06 CST 2009-03-08 03 -05 CDT 1 2009-11-01 01 -06 CST 2010-03-14 03 -05 CDT 1 2010-11-07 01 -06 CST 2011-03-13 03 -05 CDT 1 2011-11-06 01 -06 CST 2012-03-11 03 -05 CDT 1 2012-11-04 01 -06 CST 2013-03-10 03 -05 CDT 1 2013-11-03 01 -06 CST 2014-03-09 03 -05 CDT 1 2014-11-02 01 -06 CST 2015-03-08 03 -05 CDT 1 2015-11-01 01 -06 CST 2016-03-13 03 -05 CDT 1 2016-11-06 01 -06 CST 2017-03-12 03 -05 CDT 1 2017-11-05 01 -06 CST 2018-03-11 03 -05 CDT 1 2018-11-04 01 -06 CST 2019-03-10 03 -05 CDT 1 2019-11-03 01 -06 CST 2020-03-08 03 -05 CDT 1 2020-11-01 01 -06 CST 2021-03-14 03 -05 CDT 1 2021-11-07 01 -06 CST 2022-03-13 03 -05 CDT 1 2022-11-06 01 -06 CST 2023-03-12 03 -05 CDT 1 2023-11-05 01 -06 CST 2024-03-10 03 -05 CDT 1 2024-11-03 01 -06 CST 2025-03-09 03 -05 CDT 1 2025-11-02 01 -06 CST 2026-03-08 03 -05 CDT 1 2026-11-01 01 -06 CST 2027-03-14 03 -05 CDT 1 2027-11-07 01 -06 CST 2028-03-12 03 -05 CDT 1 2028-11-05 01 -06 CST 2029-03-11 03 -05 CDT 1 2029-11-04 01 -06 CST 2030-03-10 03 -05 CDT 1 2030-11-03 01 -06 CST 2031-03-09 03 -05 CDT 1 2031-11-02 01 -06 CST 2032-03-14 03 -05 CDT 1 2032-11-07 01 -06 CST 2033-03-13 03 -05 CDT 1 2033-11-06 01 -06 CST 2034-03-12 03 -05 CDT 1 2034-11-05 01 -06 CST 2035-03-11 03 -05 CDT 1 2035-11-04 01 -06 CST 2036-03-09 03 -05 CDT 1 2036-11-02 01 -06 CST 2037-03-08 03 -05 CDT 1 2037-11-01 01 -06 CST 2038-03-14 03 -05 CDT 1 2038-11-07 01 -06 CST 2039-03-13 03 -05 CDT 1 2039-11-06 01 -06 CST 2040-03-11 03 -05 CDT 1 2040-11-04 01 -06 CST 2041-03-10 03 -05 CDT 1 2041-11-03 01 -06 CST 2042-03-09 03 -05 CDT 1 2042-11-02 01 -06 CST 2043-03-08 03 -05 CDT 1 2043-11-01 01 -06 CST 2044-03-13 03 -05 CDT 1 2044-11-06 01 -06 CST 2045-03-12 03 -05 CDT 1 2045-11-05 01 -06 CST 2046-03-11 03 -05 CDT 1 2046-11-04 01 -06 CST 2047-03-10 03 -05 CDT 1 2047-11-03 01 -06 CST 2048-03-08 03 -05 CDT 1 2048-11-01 01 -06 CST 2049-03-14 03 -05 CDT 1 2049-11-07 01 -06 CST TZ="America/Yakutat" - - +144105 LMT 1867-10-18 15:12:18 -091855 LMT 1900-08-20 12:18:55 -09 YST 1942-02-09 03 -08 YWT 1 1945-08-14 15 -08 YPT 1 1945-09-30 01 -09 YST 1969-04-27 03 -08 YDT 1 1969-10-26 01 -09 YST 1970-04-26 03 -08 YDT 1 1970-10-25 01 -09 YST 1971-04-25 03 -08 YDT 1 1971-10-31 01 -09 YST 1972-04-30 03 -08 YDT 1 1972-10-29 01 -09 YST 1973-04-29 03 -08 YDT 1 1973-10-28 01 -09 YST 1974-01-06 03 -08 YDT 1 1974-10-27 01 -09 YST 1975-02-23 03 -08 YDT 1 1975-10-26 01 -09 YST 1976-04-25 03 -08 YDT 1 1976-10-31 01 -09 YST 1977-04-24 03 -08 YDT 1 1977-10-30 01 -09 YST 1978-04-30 03 -08 YDT 1 1978-10-29 01 -09 YST 1979-04-29 03 -08 YDT 1 1979-10-28 01 -09 YST 1980-04-27 03 -08 YDT 1 1980-10-26 01 -09 YST 1981-04-26 03 -08 YDT 1 1981-10-25 01 -09 YST 1982-04-25 03 -08 YDT 1 1982-10-31 01 -09 YST 1983-04-24 03 -08 YDT 1 1983-10-30 01 -09 YST 1983-11-30 00 -09 AKST 1984-04-29 03 -08 AKDT 1 1984-10-28 01 -09 AKST 1985-04-28 03 -08 AKDT 1 1985-10-27 01 -09 AKST 1986-04-27 03 -08 AKDT 1 1986-10-26 01 -09 AKST 1987-04-05 03 -08 AKDT 1 1987-10-25 01 -09 AKST 1988-04-03 03 -08 AKDT 1 1988-10-30 01 -09 AKST 1989-04-02 03 -08 AKDT 1 1989-10-29 01 -09 AKST 1990-04-01 03 -08 AKDT 1 1990-10-28 01 -09 AKST 1991-04-07 03 -08 AKDT 1 1991-10-27 01 -09 AKST 1992-04-05 03 -08 AKDT 1 1992-10-25 01 -09 AKST 1993-04-04 03 -08 AKDT 1 1993-10-31 01 -09 AKST 1994-04-03 03 -08 AKDT 1 1994-10-30 01 -09 AKST 1995-04-02 03 -08 AKDT 1 1995-10-29 01 -09 AKST 1996-04-07 03 -08 AKDT 1 1996-10-27 01 -09 AKST 1997-04-06 03 -08 AKDT 1 1997-10-26 01 -09 AKST 1998-04-05 03 -08 AKDT 1 1998-10-25 01 -09 AKST 1999-04-04 03 -08 AKDT 1 1999-10-31 01 -09 AKST 2000-04-02 03 -08 AKDT 1 2000-10-29 01 -09 AKST 2001-04-01 03 -08 AKDT 1 2001-10-28 01 -09 AKST 2002-04-07 03 -08 AKDT 1 2002-10-27 01 -09 AKST 2003-04-06 03 -08 AKDT 1 2003-10-26 01 -09 AKST 2004-04-04 03 -08 AKDT 1 2004-10-31 01 -09 AKST 2005-04-03 03 -08 AKDT 1 2005-10-30 01 -09 AKST 2006-04-02 03 -08 AKDT 1 2006-10-29 01 -09 AKST 2007-03-11 03 -08 AKDT 1 2007-11-04 01 -09 AKST 2008-03-09 03 -08 AKDT 1 2008-11-02 01 -09 AKST 2009-03-08 03 -08 AKDT 1 2009-11-01 01 -09 AKST 2010-03-14 03 -08 AKDT 1 2010-11-07 01 -09 AKST 2011-03-13 03 -08 AKDT 1 2011-11-06 01 -09 AKST 2012-03-11 03 -08 AKDT 1 2012-11-04 01 -09 AKST 2013-03-10 03 -08 AKDT 1 2013-11-03 01 -09 AKST 2014-03-09 03 -08 AKDT 1 2014-11-02 01 -09 AKST 2015-03-08 03 -08 AKDT 1 2015-11-01 01 -09 AKST 2016-03-13 03 -08 AKDT 1 2016-11-06 01 -09 AKST 2017-03-12 03 -08 AKDT 1 2017-11-05 01 -09 AKST 2018-03-11 03 -08 AKDT 1 2018-11-04 01 -09 AKST 2019-03-10 03 -08 AKDT 1 2019-11-03 01 -09 AKST 2020-03-08 03 -08 AKDT 1 2020-11-01 01 -09 AKST 2021-03-14 03 -08 AKDT 1 2021-11-07 01 -09 AKST 2022-03-13 03 -08 AKDT 1 2022-11-06 01 -09 AKST 2023-03-12 03 -08 AKDT 1 2023-11-05 01 -09 AKST 2024-03-10 03 -08 AKDT 1 2024-11-03 01 -09 AKST 2025-03-09 03 -08 AKDT 1 2025-11-02 01 -09 AKST 2026-03-08 03 -08 AKDT 1 2026-11-01 01 -09 AKST 2027-03-14 03 -08 AKDT 1 2027-11-07 01 -09 AKST 2028-03-12 03 -08 AKDT 1 2028-11-05 01 -09 AKST 2029-03-11 03 -08 AKDT 1 2029-11-04 01 -09 AKST 2030-03-10 03 -08 AKDT 1 2030-11-03 01 -09 AKST 2031-03-09 03 -08 AKDT 1 2031-11-02 01 -09 AKST 2032-03-14 03 -08 AKDT 1 2032-11-07 01 -09 AKST 2033-03-13 03 -08 AKDT 1 2033-11-06 01 -09 AKST 2034-03-12 03 -08 AKDT 1 2034-11-05 01 -09 AKST 2035-03-11 03 -08 AKDT 1 2035-11-04 01 -09 AKST 2036-03-09 03 -08 AKDT 1 2036-11-02 01 -09 AKST 2037-03-08 03 -08 AKDT 1 2037-11-01 01 -09 AKST 2038-03-14 03 -08 AKDT 1 2038-11-07 01 -09 AKST 2039-03-13 03 -08 AKDT 1 2039-11-06 01 -09 AKST 2040-03-11 03 -08 AKDT 1 2040-11-04 01 -09 AKST 2041-03-10 03 -08 AKDT 1 2041-11-03 01 -09 AKST 2042-03-09 03 -08 AKDT 1 2042-11-02 01 -09 AKST 2043-03-08 03 -08 AKDT 1 2043-11-01 01 -09 AKST 2044-03-13 03 -08 AKDT 1 2044-11-06 01 -09 AKST 2045-03-12 03 -08 AKDT 1 2045-11-05 01 -09 AKST 2046-03-11 03 -08 AKDT 1 2046-11-04 01 -09 AKST 2047-03-10 03 -08 AKDT 1 2047-11-03 01 -09 AKST 2048-03-08 03 -08 AKDT 1 2048-11-01 01 -09 AKST 2049-03-14 03 -08 AKDT 1 2049-11-07 01 -09 AKST TZ="America/Yellowknife" - - -00 1934-12-31 17 -07 MST 1942-02-09 03 -06 MWT 1 1945-08-14 17 -06 MPT 1 1945-09-30 01 -07 MST 1965-04-25 02 -05 MDDT 1 1965-10-31 00 -07 MST 1980-04-27 03 -06 MDT 1 1980-10-26 01 -07 MST 1981-04-26 03 -06 MDT 1 1981-10-25 01 -07 MST 1982-04-25 03 -06 MDT 1 1982-10-31 01 -07 MST 1983-04-24 03 -06 MDT 1 1983-10-30 01 -07 MST 1984-04-29 03 -06 MDT 1 1984-10-28 01 -07 MST 1985-04-28 03 -06 MDT 1 1985-10-27 01 -07 MST 1986-04-27 03 -06 MDT 1 1986-10-26 01 -07 MST 1987-04-05 03 -06 MDT 1 1987-10-25 01 -07 MST 1988-04-03 03 -06 MDT 1 1988-10-30 01 -07 MST 1989-04-02 03 -06 MDT 1 1989-10-29 01 -07 MST 1990-04-01 03 -06 MDT 1 1990-10-28 01 -07 MST 1991-04-07 03 -06 MDT 1 1991-10-27 01 -07 MST 1992-04-05 03 -06 MDT 1 1992-10-25 01 -07 MST 1993-04-04 03 -06 MDT 1 1993-10-31 01 -07 MST 1994-04-03 03 -06 MDT 1 1994-10-30 01 -07 MST 1995-04-02 03 -06 MDT 1 1995-10-29 01 -07 MST 1996-04-07 03 -06 MDT 1 1996-10-27 01 -07 MST 1997-04-06 03 -06 MDT 1 1997-10-26 01 -07 MST 1998-04-05 03 -06 MDT 1 1998-10-25 01 -07 MST 1999-04-04 03 -06 MDT 1 1999-10-31 01 -07 MST 2000-04-02 03 -06 MDT 1 2000-10-29 01 -07 MST 2001-04-01 03 -06 MDT 1 2001-10-28 01 -07 MST 2002-04-07 03 -06 MDT 1 2002-10-27 01 -07 MST 2003-04-06 03 -06 MDT 1 2003-10-26 01 -07 MST 2004-04-04 03 -06 MDT 1 2004-10-31 01 -07 MST 2005-04-03 03 -06 MDT 1 2005-10-30 01 -07 MST 2006-04-02 03 -06 MDT 1 2006-10-29 01 -07 MST 2007-03-11 03 -06 MDT 1 2007-11-04 01 -07 MST 2008-03-09 03 -06 MDT 1 2008-11-02 01 -07 MST 2009-03-08 03 -06 MDT 1 2009-11-01 01 -07 MST 2010-03-14 03 -06 MDT 1 2010-11-07 01 -07 MST 2011-03-13 03 -06 MDT 1 2011-11-06 01 -07 MST 2012-03-11 03 -06 MDT 1 2012-11-04 01 -07 MST 2013-03-10 03 -06 MDT 1 2013-11-03 01 -07 MST 2014-03-09 03 -06 MDT 1 2014-11-02 01 -07 MST 2015-03-08 03 -06 MDT 1 2015-11-01 01 -07 MST 2016-03-13 03 -06 MDT 1 2016-11-06 01 -07 MST 2017-03-12 03 -06 MDT 1 2017-11-05 01 -07 MST 2018-03-11 03 -06 MDT 1 2018-11-04 01 -07 MST 2019-03-10 03 -06 MDT 1 2019-11-03 01 -07 MST 2020-03-08 03 -06 MDT 1 2020-11-01 01 -07 MST 2021-03-14 03 -06 MDT 1 2021-11-07 01 -07 MST 2022-03-13 03 -06 MDT 1 2022-11-06 01 -07 MST 2023-03-12 03 -06 MDT 1 2023-11-05 01 -07 MST 2024-03-10 03 -06 MDT 1 2024-11-03 01 -07 MST 2025-03-09 03 -06 MDT 1 2025-11-02 01 -07 MST 2026-03-08 03 -06 MDT 1 2026-11-01 01 -07 MST 2027-03-14 03 -06 MDT 1 2027-11-07 01 -07 MST 2028-03-12 03 -06 MDT 1 2028-11-05 01 -07 MST 2029-03-11 03 -06 MDT 1 2029-11-04 01 -07 MST 2030-03-10 03 -06 MDT 1 2030-11-03 01 -07 MST 2031-03-09 03 -06 MDT 1 2031-11-02 01 -07 MST 2032-03-14 03 -06 MDT 1 2032-11-07 01 -07 MST 2033-03-13 03 -06 MDT 1 2033-11-06 01 -07 MST 2034-03-12 03 -06 MDT 1 2034-11-05 01 -07 MST 2035-03-11 03 -06 MDT 1 2035-11-04 01 -07 MST 2036-03-09 03 -06 MDT 1 2036-11-02 01 -07 MST 2037-03-08 03 -06 MDT 1 2037-11-01 01 -07 MST 2038-03-14 03 -06 MDT 1 2038-11-07 01 -07 MST 2039-03-13 03 -06 MDT 1 2039-11-06 01 -07 MST 2040-03-11 03 -06 MDT 1 2040-11-04 01 -07 MST 2041-03-10 03 -06 MDT 1 2041-11-03 01 -07 MST 2042-03-09 03 -06 MDT 1 2042-11-02 01 -07 MST 2043-03-08 03 -06 MDT 1 2043-11-01 01 -07 MST 2044-03-13 03 -06 MDT 1 2044-11-06 01 -07 MST 2045-03-12 03 -06 MDT 1 2045-11-05 01 -07 MST 2046-03-11 03 -06 MDT 1 2046-11-04 01 -07 MST 2047-03-10 03 -06 MDT 1 2047-11-03 01 -07 MST 2048-03-08 03 -06 MDT 1 2048-11-01 01 -07 MST 2049-03-14 03 -06 MDT 1 2049-11-07 01 -07 MST TZ="Antarctica/Casey" - - -00 1969-01-01 08 +08 2009-10-18 05 +11 2010-03-04 23 +08 2011-10-28 05 +11 2012-02-22 01 +08 2016-10-22 03 +11 2018-03-11 01 +08 TZ="Antarctica/Davis" - - -00 1957-01-13 07 +07 1964-10-31 17 -00 1969-02-01 07 +07 2009-10-18 00 +05 2010-03-11 03 +07 2011-10-28 00 +05 2012-02-22 03 +07 TZ="Antarctica/DumontDUrville" - - -00 1947-01-01 10 +10 1952-01-13 14 -00 1956-11-01 10 +10 TZ="Antarctica/Macquarie" - - -00 1899-11-01 10 +10 AEST 1916-10-01 03 +11 AEDT 1 1917-03-25 01 +10 AEST 1919-03-31 14 -00 1948-03-25 10 +10 AEST 1967-10-01 03 +11 AEDT 1 1968-03-31 02 +10 AEST 1968-10-27 03 +11 AEDT 1 1969-03-09 02 +10 AEST 1969-10-26 03 +11 AEDT 1 1970-03-08 02 +10 AEST 1970-10-25 03 +11 AEDT 1 1971-03-14 02 +10 AEST 1971-10-31 03 +11 AEDT 1 1972-02-27 02 +10 AEST 1972-10-29 03 +11 AEDT 1 1973-03-04 02 +10 AEST 1973-10-28 03 +11 AEDT 1 1974-03-03 02 +10 AEST 1974-10-27 03 +11 AEDT 1 1975-03-02 02 +10 AEST 1975-10-26 03 +11 AEDT 1 1976-03-07 02 +10 AEST 1976-10-31 03 +11 AEDT 1 1977-03-06 02 +10 AEST 1977-10-30 03 +11 AEDT 1 1978-03-05 02 +10 AEST 1978-10-29 03 +11 AEDT 1 1979-03-04 02 +10 AEST 1979-10-28 03 +11 AEDT 1 1980-03-02 02 +10 AEST 1980-10-26 03 +11 AEDT 1 1981-03-01 02 +10 AEST 1981-10-25 03 +11 AEDT 1 1982-03-28 02 +10 AEST 1982-10-31 03 +11 AEDT 1 1983-03-27 02 +10 AEST 1983-10-30 03 +11 AEDT 1 1984-03-04 02 +10 AEST 1984-10-28 03 +11 AEDT 1 1985-03-03 02 +10 AEST 1985-10-27 03 +11 AEDT 1 1986-03-02 02 +10 AEST 1986-10-19 03 +11 AEDT 1 1987-03-15 02 +10 AEST 1987-10-25 03 +11 AEDT 1 1988-03-20 02 +10 AEST 1988-10-30 03 +11 AEDT 1 1989-03-19 02 +10 AEST 1989-10-29 03 +11 AEDT 1 1990-03-18 02 +10 AEST 1990-10-28 03 +11 AEDT 1 1991-03-31 02 +10 AEST 1991-10-06 03 +11 AEDT 1 1992-03-29 02 +10 AEST 1992-10-04 03 +11 AEDT 1 1993-03-28 02 +10 AEST 1993-10-03 03 +11 AEDT 1 1994-03-27 02 +10 AEST 1994-10-02 03 +11 AEDT 1 1995-03-26 02 +10 AEST 1995-10-01 03 +11 AEDT 1 1996-03-31 02 +10 AEST 1996-10-06 03 +11 AEDT 1 1997-03-30 02 +10 AEST 1997-10-05 03 +11 AEDT 1 1998-03-29 02 +10 AEST 1998-10-04 03 +11 AEDT 1 1999-03-28 02 +10 AEST 1999-10-03 03 +11 AEDT 1 2000-03-26 02 +10 AEST 2000-08-27 03 +11 AEDT 1 2001-03-25 02 +10 AEST 2001-10-07 03 +11 AEDT 1 2002-03-31 02 +10 AEST 2002-10-06 03 +11 AEDT 1 2003-03-30 02 +10 AEST 2003-10-05 03 +11 AEDT 1 2004-03-28 02 +10 AEST 2004-10-03 03 +11 AEDT 1 2005-03-27 02 +10 AEST 2005-10-02 03 +11 AEDT 1 2006-04-02 02 +10 AEST 2006-10-01 03 +11 AEDT 1 2007-03-25 02 +10 AEST 2007-10-07 03 +11 AEDT 1 2008-04-06 02 +10 AEST 2008-10-05 03 +11 AEDT 1 2009-04-05 02 +10 AEST 2009-10-04 03 +11 AEDT 1 2010-04-04 03 +11 TZ="Antarctica/Mawson" - - -00 1954-02-13 06 +06 2009-10-18 01 +05 TZ="Antarctica/Palmer" - - -00 1964-12-31 21 -03 1 1965-02-28 23 -04 1965-10-15 01 -03 1 1966-02-28 23 -04 1966-10-15 01 -03 1 1967-04-01 23 -04 1967-10-01 01 -03 1 1968-04-06 23 -04 1968-10-06 01 -03 1 1969-04-05 23 -04 1969-10-05 01 -03 1974-01-23 01 -02 1 1974-04-30 23 -03 1982-04-30 23 -04 1982-10-10 01 -03 1 1983-03-12 23 -04 1983-10-09 01 -03 1 1984-03-10 23 -04 1984-10-14 01 -03 1 1985-03-09 23 -04 1985-10-13 01 -03 1 1986-03-08 23 -04 1986-10-12 01 -03 1 1987-04-11 23 -04 1987-10-11 01 -03 1 1988-03-12 23 -04 1988-10-09 01 -03 1 1989-03-11 23 -04 1989-10-15 01 -03 1 1990-03-10 23 -04 1990-09-16 01 -03 1 1991-03-09 23 -04 1991-10-13 01 -03 1 1992-03-14 23 -04 1992-10-11 01 -03 1 1993-03-13 23 -04 1993-10-10 01 -03 1 1994-03-12 23 -04 1994-10-09 01 -03 1 1995-03-11 23 -04 1995-10-15 01 -03 1 1996-03-09 23 -04 1996-10-13 01 -03 1 1997-03-29 23 -04 1997-10-12 01 -03 1 1998-03-14 23 -04 1998-09-27 01 -03 1 1999-04-03 23 -04 1999-10-10 01 -03 1 2000-03-11 23 -04 2000-10-15 01 -03 1 2001-03-10 23 -04 2001-10-14 01 -03 1 2002-03-09 23 -04 2002-10-13 01 -03 1 2003-03-08 23 -04 2003-10-12 01 -03 1 2004-03-13 23 -04 2004-10-10 01 -03 1 2005-03-12 23 -04 2005-10-09 01 -03 1 2006-03-11 23 -04 2006-10-15 01 -03 1 2007-03-10 23 -04 2007-10-14 01 -03 1 2008-03-29 23 -04 2008-10-12 01 -03 1 2009-03-14 23 -04 2009-10-11 01 -03 1 2010-04-03 23 -04 2010-10-10 01 -03 1 2011-05-07 23 -04 2011-08-21 01 -03 1 2012-04-28 23 -04 2012-09-02 01 -03 1 2013-04-27 23 -04 2013-09-08 01 -03 1 2014-04-26 23 -04 2014-09-07 01 -03 1 2016-05-14 23 -04 2016-08-14 01 -03 1 2016-12-04 00 -03 TZ="Antarctica/Rothera" - - -00 1976-11-30 21 -03 TZ="Antarctica/Syowa" - - -00 1957-01-29 03 +03 TZ="Antarctica/Troll" - - -00 2005-02-12 00 +00 2005-03-27 03 +02 1 2005-10-30 01 +00 2006-03-26 03 +02 1 2006-10-29 01 +00 2007-03-25 03 +02 1 2007-10-28 01 +00 2008-03-30 03 +02 1 2008-10-26 01 +00 2009-03-29 03 +02 1 2009-10-25 01 +00 2010-03-28 03 +02 1 2010-10-31 01 +00 2011-03-27 03 +02 1 2011-10-30 01 +00 2012-03-25 03 +02 1 2012-10-28 01 +00 2013-03-31 03 +02 1 2013-10-27 01 +00 2014-03-30 03 +02 1 2014-10-26 01 +00 2015-03-29 03 +02 1 2015-10-25 01 +00 2016-03-27 03 +02 1 2016-10-30 01 +00 2017-03-26 03 +02 1 2017-10-29 01 +00 2018-03-25 03 +02 1 2018-10-28 01 +00 2019-03-31 03 +02 1 2019-10-27 01 +00 2020-03-29 03 +02 1 2020-10-25 01 +00 2021-03-28 03 +02 1 2021-10-31 01 +00 2022-03-27 03 +02 1 2022-10-30 01 +00 2023-03-26 03 +02 1 2023-10-29 01 +00 2024-03-31 03 +02 1 2024-10-27 01 +00 2025-03-30 03 +02 1 2025-10-26 01 +00 2026-03-29 03 +02 1 2026-10-25 01 +00 2027-03-28 03 +02 1 2027-10-31 01 +00 2028-03-26 03 +02 1 2028-10-29 01 +00 2029-03-25 03 +02 1 2029-10-28 01 +00 2030-03-31 03 +02 1 2030-10-27 01 +00 2031-03-30 03 +02 1 2031-10-26 01 +00 2032-03-28 03 +02 1 2032-10-31 01 +00 2033-03-27 03 +02 1 2033-10-30 01 +00 2034-03-26 03 +02 1 2034-10-29 01 +00 2035-03-25 03 +02 1 2035-10-28 01 +00 2036-03-30 03 +02 1 2036-10-26 01 +00 2037-03-29 03 +02 1 2037-10-25 01 +00 2038-03-28 03 +02 1 2038-10-31 01 +00 2039-03-27 03 +02 1 2039-10-30 01 +00 2040-03-25 03 +02 1 2040-10-28 01 +00 2041-03-31 03 +02 1 2041-10-27 01 +00 2042-03-30 03 +02 1 2042-10-26 01 +00 2043-03-29 03 +02 1 2043-10-25 01 +00 2044-03-27 03 +02 1 2044-10-30 01 +00 2045-03-26 03 +02 1 2045-10-29 01 +00 2046-03-25 03 +02 1 2046-10-28 01 +00 2047-03-31 03 +02 1 2047-10-27 01 +00 2048-03-29 03 +02 1 2048-10-25 01 +00 2049-03-28 03 +02 1 2049-10-31 01 +00 TZ="Antarctica/Vostok" - - -00 1957-12-16 06 +06 TZ="Asia/Almaty" - - +050748 LMT 1924-05-01 23:52:12 +05 1930-06-21 01 +06 1981-04-01 01 +07 1 1981-09-30 23 +06 1982-04-01 01 +07 1 1982-09-30 23 +06 1983-04-01 01 +07 1 1983-09-30 23 +06 1984-04-01 01 +07 1 1984-09-30 02 +06 1985-03-31 03 +07 1 1985-09-29 02 +06 1986-03-30 03 +07 1 1986-09-28 02 +06 1987-03-29 03 +07 1 1987-09-27 02 +06 1988-03-27 03 +07 1 1988-09-25 02 +06 1989-03-26 03 +07 1 1989-09-24 02 +06 1990-03-25 03 +07 1 1990-09-30 02 +06 1991-03-31 02 +06 1 1991-09-29 02 +05 1992-01-19 03 +06 1992-03-29 03 +07 1 1992-09-27 02 +06 1993-03-28 03 +07 1 1993-09-26 02 +06 1994-03-27 03 +07 1 1994-09-25 02 +06 1995-03-26 03 +07 1 1995-09-24 02 +06 1996-03-31 03 +07 1 1996-10-27 02 +06 1997-03-30 03 +07 1 1997-10-26 02 +06 1998-03-29 03 +07 1 1998-10-25 02 +06 1999-03-28 03 +07 1 1999-10-31 02 +06 2000-03-26 03 +07 1 2000-10-29 02 +06 2001-03-25 03 +07 1 2001-10-28 02 +06 2002-03-31 03 +07 1 2002-10-27 02 +06 2003-03-30 03 +07 1 2003-10-26 02 +06 2004-03-28 03 +07 1 2004-10-31 02 +06 TZ="Asia/Amman" - - +022344 LMT 1930-12-31 23:36:16 +02 EET 1973-06-06 01 +03 EEST 1 1973-09-30 23 +02 EET 1974-05-01 01 +03 EEST 1 1974-09-30 23 +02 EET 1975-05-01 01 +03 EEST 1 1975-09-30 23 +02 EET 1976-05-01 01 +03 EEST 1 1976-10-31 23 +02 EET 1977-05-01 01 +03 EEST 1 1977-09-30 23 +02 EET 1978-04-30 01 +03 EEST 1 1978-09-29 23 +02 EET 1985-04-01 01 +03 EEST 1 1985-09-30 23 +02 EET 1986-04-04 01 +03 EEST 1 1986-10-02 23 +02 EET 1987-04-03 01 +03 EEST 1 1987-10-01 23 +02 EET 1988-04-01 01 +03 EEST 1 1988-10-06 23 +02 EET 1989-05-08 01 +03 EEST 1 1989-10-05 23 +02 EET 1990-04-27 01 +03 EEST 1 1990-10-04 23 +02 EET 1991-04-17 01 +03 EEST 1 1991-09-26 23 +02 EET 1992-04-10 01 +03 EEST 1 1992-10-01 23 +02 EET 1993-04-02 01 +03 EEST 1 1993-09-30 23 +02 EET 1994-04-01 01 +03 EEST 1 1994-09-15 23 +02 EET 1995-04-07 01 +03 EEST 1 1995-09-15 00 +02 EET 1996-04-05 01 +03 EEST 1 1996-09-20 00 +02 EET 1997-04-04 01 +03 EEST 1 1997-09-19 00 +02 EET 1998-04-03 01 +03 EEST 1 1998-09-18 00 +02 EET 1999-07-01 01 +03 EEST 1 1999-09-24 00 +02 EET 2000-03-30 01 +03 EEST 1 2000-09-29 00 +02 EET 2001-03-29 01 +03 EEST 1 2001-09-28 00 +02 EET 2002-03-29 01 +03 EEST 1 2002-09-27 00 +02 EET 2003-03-28 01 +03 EEST 1 2003-10-24 00 +02 EET 2004-03-26 01 +03 EEST 1 2004-10-15 00 +02 EET 2005-04-01 01 +03 EEST 1 2005-09-30 00 +02 EET 2006-03-31 01 +03 EEST 1 2006-10-27 00 +02 EET 2007-03-30 01 +03 EEST 1 2007-10-26 00 +02 EET 2008-03-28 01 +03 EEST 1 2008-10-31 00 +02 EET 2009-03-27 01 +03 EEST 1 2009-10-30 00 +02 EET 2010-03-26 01 +03 EEST 1 2010-10-29 00 +02 EET 2011-04-01 01 +03 EEST 1 2011-10-28 00 +02 EET 2012-03-30 01 +03 EEST 1 2013-12-19 23 +02 EET 2014-03-28 01 +03 EEST 1 2014-10-31 00 +02 EET 2015-03-27 01 +03 EEST 1 2015-10-30 00 +02 EET 2016-04-01 01 +03 EEST 1 2016-10-28 00 +02 EET 2017-03-31 01 +03 EEST 1 2017-10-27 00 +02 EET 2018-03-30 01 +03 EEST 1 2018-10-26 00 +02 EET 2019-03-29 01 +03 EEST 1 2019-10-25 00 +02 EET 2020-03-27 01 +03 EEST 1 2020-10-30 00 +02 EET 2021-03-26 01 +03 EEST 1 2021-10-29 00 +02 EET 2022-04-01 01 +03 EEST 1 2022-10-28 00 +02 EET 2023-03-31 01 +03 EEST 1 2023-10-27 00 +02 EET 2024-03-29 01 +03 EEST 1 2024-10-25 00 +02 EET 2025-03-28 01 +03 EEST 1 2025-10-31 00 +02 EET 2026-03-27 01 +03 EEST 1 2026-10-30 00 +02 EET 2027-03-26 01 +03 EEST 1 2027-10-29 00 +02 EET 2028-03-31 01 +03 EEST 1 2028-10-27 00 +02 EET 2029-03-30 01 +03 EEST 1 2029-10-26 00 +02 EET 2030-03-29 01 +03 EEST 1 2030-10-25 00 +02 EET 2031-03-28 01 +03 EEST 1 2031-10-31 00 +02 EET 2032-03-26 01 +03 EEST 1 2032-10-29 00 +02 EET 2033-04-01 01 +03 EEST 1 2033-10-28 00 +02 EET 2034-03-31 01 +03 EEST 1 2034-10-27 00 +02 EET 2035-03-30 01 +03 EEST 1 2035-10-26 00 +02 EET 2036-03-28 01 +03 EEST 1 2036-10-31 00 +02 EET 2037-03-27 01 +03 EEST 1 2037-10-30 00 +02 EET 2038-03-26 01 +03 EEST 1 2038-10-29 00 +02 EET 2039-04-01 01 +03 EEST 1 2039-10-28 00 +02 EET 2040-03-30 01 +03 EEST 1 2040-10-26 00 +02 EET 2041-03-29 01 +03 EEST 1 2041-10-25 00 +02 EET 2042-03-28 01 +03 EEST 1 2042-10-31 00 +02 EET 2043-03-27 01 +03 EEST 1 2043-10-30 00 +02 EET 2044-04-01 01 +03 EEST 1 2044-10-28 00 +02 EET 2045-03-31 01 +03 EEST 1 2045-10-27 00 +02 EET 2046-03-30 01 +03 EEST 1 2046-10-26 00 +02 EET 2047-03-29 01 +03 EEST 1 2047-10-25 00 +02 EET 2048-03-27 01 +03 EEST 1 2048-10-30 00 +02 EET 2049-03-26 01 +03 EEST 1 2049-10-29 00 +02 EET TZ="Asia/Anadyr" - - +114956 LMT 1924-05-02 00:10:04 +12 1930-06-21 01 +13 1981-04-01 01 +14 1 1981-09-30 23 +13 1982-04-01 00 +13 1 1982-09-30 23 +12 1983-04-01 01 +13 1 1983-09-30 23 +12 1984-04-01 01 +13 1 1984-09-30 02 +12 1985-03-31 03 +13 1 1985-09-29 02 +12 1986-03-30 03 +13 1 1986-09-28 02 +12 1987-03-29 03 +13 1 1987-09-27 02 +12 1988-03-27 03 +13 1 1988-09-25 02 +12 1989-03-26 03 +13 1 1989-09-24 02 +12 1990-03-25 03 +13 1 1990-09-30 02 +12 1991-03-31 02 +12 1 1991-09-29 02 +11 1992-01-19 03 +12 1992-03-29 03 +13 1 1992-09-27 02 +12 1993-03-28 03 +13 1 1993-09-26 02 +12 1994-03-27 03 +13 1 1994-09-25 02 +12 1995-03-26 03 +13 1 1995-09-24 02 +12 1996-03-31 03 +13 1 1996-10-27 02 +12 1997-03-30 03 +13 1 1997-10-26 02 +12 1998-03-29 03 +13 1 1998-10-25 02 +12 1999-03-28 03 +13 1 1999-10-31 02 +12 2000-03-26 03 +13 1 2000-10-29 02 +12 2001-03-25 03 +13 1 2001-10-28 02 +12 2002-03-31 03 +13 1 2002-10-27 02 +12 2003-03-30 03 +13 1 2003-10-26 02 +12 2004-03-28 03 +13 1 2004-10-31 02 +12 2005-03-27 03 +13 1 2005-10-30 02 +12 2006-03-26 03 +13 1 2006-10-29 02 +12 2007-03-25 03 +13 1 2007-10-28 02 +12 2008-03-30 03 +13 1 2008-10-26 02 +12 2009-03-29 03 +13 1 2009-10-25 02 +12 2010-03-28 02 +12 1 2010-10-31 02 +11 2011-03-27 03 +12 TZ="Asia/Aqtau" - - +032104 LMT 1924-05-02 00:38:56 +04 1930-06-21 01 +05 1981-10-01 01 +06 1982-04-01 00 +06 1 1982-09-30 23 +05 1983-04-01 01 +06 1 1983-09-30 23 +05 1984-04-01 01 +06 1 1984-09-30 02 +05 1985-03-31 03 +06 1 1985-09-29 02 +05 1986-03-30 03 +06 1 1986-09-28 02 +05 1987-03-29 03 +06 1 1987-09-27 02 +05 1988-03-27 03 +06 1 1988-09-25 02 +05 1989-03-26 03 +06 1 1989-09-24 02 +05 1990-03-25 03 +06 1 1990-09-30 02 +05 1991-03-31 02 +05 1 1991-09-29 02 +04 1992-01-19 03 +05 1992-03-29 03 +06 1 1992-09-27 02 +05 1993-03-28 03 +06 1 1993-09-26 02 +05 1994-03-27 03 +06 1 1994-09-25 01 +04 1995-03-26 03 +05 1 1995-09-24 02 +04 1996-03-31 03 +05 1 1996-10-27 02 +04 1997-03-30 03 +05 1 1997-10-26 02 +04 1998-03-29 03 +05 1 1998-10-25 02 +04 1999-03-28 03 +05 1 1999-10-31 02 +04 2000-03-26 03 +05 1 2000-10-29 02 +04 2001-03-25 03 +05 1 2001-10-28 02 +04 2002-03-31 03 +05 1 2002-10-27 02 +04 2003-03-30 03 +05 1 2003-10-26 02 +04 2004-03-28 03 +05 1 2004-10-31 03 +05 TZ="Asia/Aqtobe" - - +034840 LMT 1924-05-02 00:11:20 +04 1930-06-21 01 +05 1981-04-01 01 +06 1 1981-10-01 00 +06 1982-04-01 00 +06 1 1982-09-30 23 +05 1983-04-01 01 +06 1 1983-09-30 23 +05 1984-04-01 01 +06 1 1984-09-30 02 +05 1985-03-31 03 +06 1 1985-09-29 02 +05 1986-03-30 03 +06 1 1986-09-28 02 +05 1987-03-29 03 +06 1 1987-09-27 02 +05 1988-03-27 03 +06 1 1988-09-25 02 +05 1989-03-26 03 +06 1 1989-09-24 02 +05 1990-03-25 03 +06 1 1990-09-30 02 +05 1991-03-31 02 +05 1 1991-09-29 02 +04 1992-01-19 03 +05 1992-03-29 03 +06 1 1992-09-27 02 +05 1993-03-28 03 +06 1 1993-09-26 02 +05 1994-03-27 03 +06 1 1994-09-25 02 +05 1995-03-26 03 +06 1 1995-09-24 02 +05 1996-03-31 03 +06 1 1996-10-27 02 +05 1997-03-30 03 +06 1 1997-10-26 02 +05 1998-03-29 03 +06 1 1998-10-25 02 +05 1999-03-28 03 +06 1 1999-10-31 02 +05 2000-03-26 03 +06 1 2000-10-29 02 +05 2001-03-25 03 +06 1 2001-10-28 02 +05 2002-03-31 03 +06 1 2002-10-27 02 +05 2003-03-30 03 +06 1 2003-10-26 02 +05 2004-03-28 03 +06 1 2004-10-31 02 +05 TZ="Asia/Ashgabat" - - +035332 LMT 1924-05-02 00:06:28 +04 1930-06-21 01 +05 1981-04-01 01 +06 1 1981-09-30 23 +05 1982-04-01 01 +06 1 1982-09-30 23 +05 1983-04-01 01 +06 1 1983-09-30 23 +05 1984-04-01 01 +06 1 1984-09-30 02 +05 1985-03-31 03 +06 1 1985-09-29 02 +05 1986-03-30 03 +06 1 1986-09-28 02 +05 1987-03-29 03 +06 1 1987-09-27 02 +05 1988-03-27 03 +06 1 1988-09-25 02 +05 1989-03-26 03 +06 1 1989-09-24 02 +05 1990-03-25 03 +06 1 1990-09-30 02 +05 1991-03-31 02 +05 1 1991-09-29 02 +04 1992-01-19 03 +05 TZ="Asia/Atyrau" - - +032744 LMT 1924-05-01 23:32:16 +03 1930-06-21 02 +05 1981-10-01 01 +06 1982-04-01 00 +06 1 1982-09-30 23 +05 1983-04-01 01 +06 1 1983-09-30 23 +05 1984-04-01 01 +06 1 1984-09-30 02 +05 1985-03-31 03 +06 1 1985-09-29 02 +05 1986-03-30 03 +06 1 1986-09-28 02 +05 1987-03-29 03 +06 1 1987-09-27 02 +05 1988-03-27 03 +06 1 1988-09-25 02 +05 1989-03-26 03 +06 1 1989-09-24 02 +05 1990-03-25 03 +06 1 1990-09-30 02 +05 1991-03-31 02 +05 1 1991-09-29 02 +04 1992-01-19 03 +05 1992-03-29 03 +06 1 1992-09-27 02 +05 1993-03-28 03 +06 1 1993-09-26 02 +05 1994-03-27 03 +06 1 1994-09-25 02 +05 1995-03-26 03 +06 1 1995-09-24 02 +05 1996-03-31 03 +06 1 1996-10-27 02 +05 1997-03-30 03 +06 1 1997-10-26 02 +05 1998-03-29 03 +06 1 1998-10-25 02 +05 1999-03-28 02 +05 1 1999-10-31 02 +04 2000-03-26 03 +05 1 2000-10-29 02 +04 2001-03-25 03 +05 1 2001-10-28 02 +04 2002-03-31 03 +05 1 2002-10-27 02 +04 2003-03-30 03 +05 1 2003-10-26 02 +04 2004-03-28 03 +05 1 2004-10-31 03 +05 TZ="Asia/Baghdad" - - +025740 LMT 1889-12-31 23:59:56 +025736 BMT 1918-01-01 00:02:24 +03 1982-05-01 01 +04 1 1982-09-30 23 +03 1983-03-31 01 +04 1 1983-09-30 23 +03 1984-04-01 01 +04 1 1984-09-30 23 +03 1985-04-01 01 +04 1 1985-09-29 01 +03 1986-03-30 02 +04 1 1986-09-28 01 +03 1987-03-29 02 +04 1 1987-09-27 01 +03 1988-03-27 02 +04 1 1988-09-25 01 +03 1989-03-26 02 +04 1 1989-09-24 01 +03 1990-03-25 02 +04 1 1990-09-30 01 +03 1991-04-01 04 +04 1 1991-10-01 03 +03 1992-04-01 04 +04 1 1992-10-01 03 +03 1993-04-01 04 +04 1 1993-10-01 03 +03 1994-04-01 04 +04 1 1994-10-01 03 +03 1995-04-01 04 +04 1 1995-10-01 03 +03 1996-04-01 04 +04 1 1996-10-01 03 +03 1997-04-01 04 +04 1 1997-10-01 03 +03 1998-04-01 04 +04 1 1998-10-01 03 +03 1999-04-01 04 +04 1 1999-10-01 03 +03 2000-04-01 04 +04 1 2000-10-01 03 +03 2001-04-01 04 +04 1 2001-10-01 03 +03 2002-04-01 04 +04 1 2002-10-01 03 +03 2003-04-01 04 +04 1 2003-10-01 03 +03 2004-04-01 04 +04 1 2004-10-01 03 +03 2005-04-01 04 +04 1 2005-10-01 03 +03 2006-04-01 04 +04 1 2006-10-01 03 +03 2007-04-01 04 +04 1 2007-10-01 03 +03 TZ="Asia/Baku" - - +031924 LMT 1924-05-01 23:40:36 +03 1957-03-01 01 +04 1981-04-01 01 +05 1 1981-09-30 23 +04 1982-04-01 01 +05 1 1982-09-30 23 +04 1983-04-01 01 +05 1 1983-09-30 23 +04 1984-04-01 01 +05 1 1984-09-30 02 +04 1985-03-31 03 +05 1 1985-09-29 02 +04 1986-03-30 03 +05 1 1986-09-28 02 +04 1987-03-29 03 +05 1 1987-09-27 02 +04 1988-03-27 03 +05 1 1988-09-25 02 +04 1989-03-26 03 +05 1 1989-09-24 02 +04 1990-03-25 03 +05 1 1990-09-30 02 +04 1991-03-31 02 +04 1 1991-09-29 02 +03 1992-03-29 03 +04 1 1992-09-27 03 +04 1996-03-31 06 +05 1 1996-10-27 05 +04 1997-03-30 05 +05 1 1997-10-26 04 +04 1998-03-29 05 +05 1 1998-10-25 04 +04 1999-03-28 05 +05 1 1999-10-31 04 +04 2000-03-26 05 +05 1 2000-10-29 04 +04 2001-03-25 05 +05 1 2001-10-28 04 +04 2002-03-31 05 +05 1 2002-10-27 04 +04 2003-03-30 05 +05 1 2003-10-26 04 +04 2004-03-28 05 +05 1 2004-10-31 04 +04 2005-03-27 05 +05 1 2005-10-30 04 +04 2006-03-26 05 +05 1 2006-10-29 04 +04 2007-03-25 05 +05 1 2007-10-28 04 +04 2008-03-30 05 +05 1 2008-10-26 04 +04 2009-03-29 05 +05 1 2009-10-25 04 +04 2010-03-28 05 +05 1 2010-10-31 04 +04 2011-03-27 05 +05 1 2011-10-30 04 +04 2012-03-25 05 +05 1 2012-10-28 04 +04 2013-03-31 05 +05 1 2013-10-27 04 +04 2014-03-30 05 +05 1 2014-10-26 04 +04 2015-03-29 05 +05 1 2015-10-25 04 +04 TZ="Asia/Bangkok" - - +064204 LMT 1880-01-01 00 +064204 BMT 1920-04-01 00:17:56 +07 TZ="Asia/Barnaul" - - +0535 LMT 1919-12-10 00:25 +06 1930-06-21 01 +07 1981-04-01 01 +08 1 1981-09-30 23 +07 1982-04-01 01 +08 1 1982-09-30 23 +07 1983-04-01 01 +08 1 1983-09-30 23 +07 1984-04-01 01 +08 1 1984-09-30 02 +07 1985-03-31 03 +08 1 1985-09-29 02 +07 1986-03-30 03 +08 1 1986-09-28 02 +07 1987-03-29 03 +08 1 1987-09-27 02 +07 1988-03-27 03 +08 1 1988-09-25 02 +07 1989-03-26 03 +08 1 1989-09-24 02 +07 1990-03-25 03 +08 1 1990-09-30 02 +07 1991-03-31 02 +07 1 1991-09-29 02 +06 1992-01-19 03 +07 1992-03-29 03 +08 1 1992-09-27 02 +07 1993-03-28 03 +08 1 1993-09-26 02 +07 1994-03-27 03 +08 1 1994-09-25 02 +07 1995-03-26 03 +08 1 1995-05-27 23 +07 1 1995-09-24 02 +06 1996-03-31 03 +07 1 1996-10-27 02 +06 1997-03-30 03 +07 1 1997-10-26 02 +06 1998-03-29 03 +07 1 1998-10-25 02 +06 1999-03-28 03 +07 1 1999-10-31 02 +06 2000-03-26 03 +07 1 2000-10-29 02 +06 2001-03-25 03 +07 1 2001-10-28 02 +06 2002-03-31 03 +07 1 2002-10-27 02 +06 2003-03-30 03 +07 1 2003-10-26 02 +06 2004-03-28 03 +07 1 2004-10-31 02 +06 2005-03-27 03 +07 1 2005-10-30 02 +06 2006-03-26 03 +07 1 2006-10-29 02 +06 2007-03-25 03 +07 1 2007-10-28 02 +06 2008-03-30 03 +07 1 2008-10-26 02 +06 2009-03-29 03 +07 1 2009-10-25 02 +06 2010-03-28 03 +07 1 2010-10-31 02 +06 2011-03-27 03 +07 2014-10-26 01 +06 2016-03-27 03 +07 TZ="Asia/Beirut" - - +0222 LMT 1879-12-31 23:38 +02 EET 1920-03-28 01 +03 EEST 1 1920-10-24 23 +02 EET 1921-04-03 01 +03 EEST 1 1921-10-02 23 +02 EET 1922-03-26 01 +03 EEST 1 1922-10-07 23 +02 EET 1923-04-22 01 +03 EEST 1 1923-09-15 23 +02 EET 1957-05-01 01 +03 EEST 1 1957-09-30 23 +02 EET 1958-05-01 01 +03 EEST 1 1958-09-30 23 +02 EET 1959-05-01 01 +03 EEST 1 1959-09-30 23 +02 EET 1960-05-01 01 +03 EEST 1 1960-09-30 23 +02 EET 1961-05-01 01 +03 EEST 1 1961-09-30 23 +02 EET 1972-06-22 01 +03 EEST 1 1972-09-30 23 +02 EET 1973-05-01 01 +03 EEST 1 1973-09-30 23 +02 EET 1974-05-01 01 +03 EEST 1 1974-09-30 23 +02 EET 1975-05-01 01 +03 EEST 1 1975-09-30 23 +02 EET 1976-05-01 01 +03 EEST 1 1976-09-30 23 +02 EET 1977-05-01 01 +03 EEST 1 1977-09-30 23 +02 EET 1978-04-30 01 +03 EEST 1 1978-09-29 23 +02 EET 1984-05-01 01 +03 EEST 1 1984-10-15 23 +02 EET 1985-05-01 01 +03 EEST 1 1985-10-15 23 +02 EET 1986-05-01 01 +03 EEST 1 1986-10-15 23 +02 EET 1987-05-01 01 +03 EEST 1 1987-10-15 23 +02 EET 1988-06-01 01 +03 EEST 1 1988-10-15 23 +02 EET 1989-05-10 01 +03 EEST 1 1989-10-15 23 +02 EET 1990-05-01 01 +03 EEST 1 1990-10-15 23 +02 EET 1991-05-01 01 +03 EEST 1 1991-10-15 23 +02 EET 1992-05-01 01 +03 EEST 1 1992-10-03 23 +02 EET 1993-03-28 01 +03 EEST 1 1993-09-25 23 +02 EET 1994-03-27 01 +03 EEST 1 1994-09-24 23 +02 EET 1995-03-26 01 +03 EEST 1 1995-09-23 23 +02 EET 1996-03-31 01 +03 EEST 1 1996-09-28 23 +02 EET 1997-03-30 01 +03 EEST 1 1997-09-27 23 +02 EET 1998-03-29 01 +03 EEST 1 1998-09-26 23 +02 EET 1999-03-28 01 +03 EEST 1 1999-10-30 23 +02 EET 2000-03-26 01 +03 EEST 1 2000-10-28 23 +02 EET 2001-03-25 01 +03 EEST 1 2001-10-27 23 +02 EET 2002-03-31 01 +03 EEST 1 2002-10-26 23 +02 EET 2003-03-30 01 +03 EEST 1 2003-10-25 23 +02 EET 2004-03-28 01 +03 EEST 1 2004-10-30 23 +02 EET 2005-03-27 01 +03 EEST 1 2005-10-29 23 +02 EET 2006-03-26 01 +03 EEST 1 2006-10-28 23 +02 EET 2007-03-25 01 +03 EEST 1 2007-10-27 23 +02 EET 2008-03-30 01 +03 EEST 1 2008-10-25 23 +02 EET 2009-03-29 01 +03 EEST 1 2009-10-24 23 +02 EET 2010-03-28 01 +03 EEST 1 2010-10-30 23 +02 EET 2011-03-27 01 +03 EEST 1 2011-10-29 23 +02 EET 2012-03-25 01 +03 EEST 1 2012-10-27 23 +02 EET 2013-03-31 01 +03 EEST 1 2013-10-26 23 +02 EET 2014-03-30 01 +03 EEST 1 2014-10-25 23 +02 EET 2015-03-29 01 +03 EEST 1 2015-10-24 23 +02 EET 2016-03-27 01 +03 EEST 1 2016-10-29 23 +02 EET 2017-03-26 01 +03 EEST 1 2017-10-28 23 +02 EET 2018-03-25 01 +03 EEST 1 2018-10-27 23 +02 EET 2019-03-31 01 +03 EEST 1 2019-10-26 23 +02 EET 2020-03-29 01 +03 EEST 1 2020-10-24 23 +02 EET 2021-03-28 01 +03 EEST 1 2021-10-30 23 +02 EET 2022-03-27 01 +03 EEST 1 2022-10-29 23 +02 EET 2023-03-26 01 +03 EEST 1 2023-10-28 23 +02 EET 2024-03-31 01 +03 EEST 1 2024-10-26 23 +02 EET 2025-03-30 01 +03 EEST 1 2025-10-25 23 +02 EET 2026-03-29 01 +03 EEST 1 2026-10-24 23 +02 EET 2027-03-28 01 +03 EEST 1 2027-10-30 23 +02 EET 2028-03-26 01 +03 EEST 1 2028-10-28 23 +02 EET 2029-03-25 01 +03 EEST 1 2029-10-27 23 +02 EET 2030-03-31 01 +03 EEST 1 2030-10-26 23 +02 EET 2031-03-30 01 +03 EEST 1 2031-10-25 23 +02 EET 2032-03-28 01 +03 EEST 1 2032-10-30 23 +02 EET 2033-03-27 01 +03 EEST 1 2033-10-29 23 +02 EET 2034-03-26 01 +03 EEST 1 2034-10-28 23 +02 EET 2035-03-25 01 +03 EEST 1 2035-10-27 23 +02 EET 2036-03-30 01 +03 EEST 1 2036-10-25 23 +02 EET 2037-03-29 01 +03 EEST 1 2037-10-24 23 +02 EET 2038-03-28 01 +03 EEST 1 2038-10-30 23 +02 EET 2039-03-27 01 +03 EEST 1 2039-10-29 23 +02 EET 2040-03-25 01 +03 EEST 1 2040-10-27 23 +02 EET 2041-03-31 01 +03 EEST 1 2041-10-26 23 +02 EET 2042-03-30 01 +03 EEST 1 2042-10-25 23 +02 EET 2043-03-29 01 +03 EEST 1 2043-10-24 23 +02 EET 2044-03-27 01 +03 EEST 1 2044-10-29 23 +02 EET 2045-03-26 01 +03 EEST 1 2045-10-28 23 +02 EET 2046-03-25 01 +03 EEST 1 2046-10-27 23 +02 EET 2047-03-31 01 +03 EEST 1 2047-10-26 23 +02 EET 2048-03-29 01 +03 EEST 1 2048-10-24 23 +02 EET 2049-03-28 01 +03 EEST 1 2049-10-30 23 +02 EET TZ="Asia/Bishkek" - - +045824 LMT 1924-05-02 00:01:36 +05 1930-06-21 01 +06 1981-04-01 01 +07 1 1981-09-30 23 +06 1982-04-01 01 +07 1 1982-09-30 23 +06 1983-04-01 01 +07 1 1983-09-30 23 +06 1984-04-01 01 +07 1 1984-09-30 02 +06 1985-03-31 03 +07 1 1985-09-29 02 +06 1986-03-30 03 +07 1 1986-09-28 02 +06 1987-03-29 03 +07 1 1987-09-27 02 +06 1988-03-27 03 +07 1 1988-09-25 02 +06 1989-03-26 03 +07 1 1989-09-24 02 +06 1990-03-25 03 +07 1 1990-09-30 02 +06 1991-03-31 02 +06 1 1991-08-31 01 +05 1992-04-12 01 +06 1 1992-09-26 23 +05 1993-04-11 01 +06 1 1993-09-25 23 +05 1994-04-10 01 +06 1 1994-09-24 23 +05 1995-04-09 01 +06 1 1995-09-23 23 +05 1996-04-07 01 +06 1 1996-09-28 23 +05 1997-03-30 03:30 +06 1 1997-10-26 01:30 +05 1998-03-29 03:30 +06 1 1998-10-25 01:30 +05 1999-03-28 03:30 +06 1 1999-10-31 01:30 +05 2000-03-26 03:30 +06 1 2000-10-29 01:30 +05 2001-03-25 03:30 +06 1 2001-10-28 01:30 +05 2002-03-31 03:30 +06 1 2002-10-27 01:30 +05 2003-03-30 03:30 +06 1 2003-10-26 01:30 +05 2004-03-28 03:30 +06 1 2004-10-31 01:30 +05 2005-03-27 03:30 +06 1 2005-08-12 00 +06 TZ="Asia/Brunei" - - +073940 LMT 1926-02-28 23:50:20 +0730 1933-01-01 00:30 +08 TZ="Asia/Chita" - - +073352 LMT 1919-12-15 00:26:08 +08 1930-06-21 01 +09 1981-04-01 01 +10 1 1981-09-30 23 +09 1982-04-01 01 +10 1 1982-09-30 23 +09 1983-04-01 01 +10 1 1983-09-30 23 +09 1984-04-01 01 +10 1 1984-09-30 02 +09 1985-03-31 03 +10 1 1985-09-29 02 +09 1986-03-30 03 +10 1 1986-09-28 02 +09 1987-03-29 03 +10 1 1987-09-27 02 +09 1988-03-27 03 +10 1 1988-09-25 02 +09 1989-03-26 03 +10 1 1989-09-24 02 +09 1990-03-25 03 +10 1 1990-09-30 02 +09 1991-03-31 02 +09 1 1991-09-29 02 +08 1992-01-19 03 +09 1992-03-29 03 +10 1 1992-09-27 02 +09 1993-03-28 03 +10 1 1993-09-26 02 +09 1994-03-27 03 +10 1 1994-09-25 02 +09 1995-03-26 03 +10 1 1995-09-24 02 +09 1996-03-31 03 +10 1 1996-10-27 02 +09 1997-03-30 03 +10 1 1997-10-26 02 +09 1998-03-29 03 +10 1 1998-10-25 02 +09 1999-03-28 03 +10 1 1999-10-31 02 +09 2000-03-26 03 +10 1 2000-10-29 02 +09 2001-03-25 03 +10 1 2001-10-28 02 +09 2002-03-31 03 +10 1 2002-10-27 02 +09 2003-03-30 03 +10 1 2003-10-26 02 +09 2004-03-28 03 +10 1 2004-10-31 02 +09 2005-03-27 03 +10 1 2005-10-30 02 +09 2006-03-26 03 +10 1 2006-10-29 02 +09 2007-03-25 03 +10 1 2007-10-28 02 +09 2008-03-30 03 +10 1 2008-10-26 02 +09 2009-03-29 03 +10 1 2009-10-25 02 +09 2010-03-28 03 +10 1 2010-10-31 02 +09 2011-03-27 03 +10 2014-10-26 00 +08 2016-03-27 03 +09 TZ="Asia/Choibalsan" - - +0738 LMT 1905-07-31 23:22 +07 1978-01-01 01 +08 1983-04-01 02 +10 1 1983-09-30 23 +09 1984-04-01 01 +10 1 1984-09-29 23 +09 1985-03-31 01 +10 1 1985-09-28 23 +09 1986-03-30 01 +10 1 1986-09-27 23 +09 1987-03-29 01 +10 1 1987-09-26 23 +09 1988-03-27 01 +10 1 1988-09-24 23 +09 1989-03-26 01 +10 1 1989-09-23 23 +09 1990-03-25 01 +10 1 1990-09-29 23 +09 1991-03-31 01 +10 1 1991-09-28 23 +09 1992-03-29 01 +10 1 1992-09-26 23 +09 1993-03-28 01 +10 1 1993-09-25 23 +09 1994-03-27 01 +10 1 1994-09-24 23 +09 1995-03-26 01 +10 1 1995-09-23 23 +09 1996-03-31 01 +10 1 1996-09-28 23 +09 1997-03-30 01 +10 1 1997-09-27 23 +09 1998-03-29 01 +10 1 1998-09-26 23 +09 2001-04-28 03 +10 1 2001-09-29 01 +09 2002-03-30 03 +10 1 2002-09-28 01 +09 2003-03-29 03 +10 1 2003-09-27 01 +09 2004-03-27 03 +10 1 2004-09-25 01 +09 2005-03-26 03 +10 1 2005-09-24 01 +09 2006-03-25 03 +10 1 2006-09-30 01 +09 2008-03-30 23 +08 2015-03-28 03 +09 1 2015-09-25 23 +08 2016-03-26 03 +09 1 2016-09-23 23 +08 TZ="Asia/Colombo" - - +051924 LMT 1880-01-01 00:00:08 +051932 MMT 1906-01-01 00:10:28 +0530 1942-01-05 00:30 +06 1 1942-09-01 00:30 +0630 1 1945-10-16 01 +0530 1996-05-25 01 +0630 1996-10-26 00 +06 2006-04-15 00 +0530 TZ="Asia/Damascus" - - +022512 LMT 1919-12-31 23:34:48 +02 EET 1920-04-18 03 +03 EEST 1 1920-10-03 01 +02 EET 1921-04-17 03 +03 EEST 1 1921-10-02 01 +02 EET 1922-04-16 03 +03 EEST 1 1922-10-01 01 +02 EET 1923-04-15 03 +03 EEST 1 1923-10-07 01 +02 EET 1962-04-29 03 +03 EEST 1 1962-10-01 01 +02 EET 1963-05-01 03 +03 EEST 1 1963-09-30 01 +02 EET 1964-05-01 03 +03 EEST 1 1964-10-01 01 +02 EET 1965-05-01 03 +03 EEST 1 1965-09-30 01 +02 EET 1966-04-24 03 +03 EEST 1 1966-10-01 01 +02 EET 1967-05-01 03 +03 EEST 1 1967-10-01 01 +02 EET 1968-05-01 03 +03 EEST 1 1968-10-01 01 +02 EET 1969-05-01 03 +03 EEST 1 1969-10-01 01 +02 EET 1970-05-01 03 +03 EEST 1 1970-10-01 01 +02 EET 1971-05-01 03 +03 EEST 1 1971-10-01 01 +02 EET 1972-05-01 03 +03 EEST 1 1972-10-01 01 +02 EET 1973-05-01 03 +03 EEST 1 1973-10-01 01 +02 EET 1974-05-01 03 +03 EEST 1 1974-10-01 01 +02 EET 1975-05-01 03 +03 EEST 1 1975-10-01 01 +02 EET 1976-05-01 03 +03 EEST 1 1976-10-01 01 +02 EET 1977-05-01 03 +03 EEST 1 1977-09-01 01 +02 EET 1978-05-01 03 +03 EEST 1 1978-09-01 01 +02 EET 1983-04-09 03 +03 EEST 1 1983-10-01 01 +02 EET 1984-04-09 03 +03 EEST 1 1984-10-01 01 +02 EET 1986-02-16 03 +03 EEST 1 1986-10-09 01 +02 EET 1987-03-01 03 +03 EEST 1 1987-10-31 01 +02 EET 1988-03-15 03 +03 EEST 1 1988-10-31 01 +02 EET 1989-03-31 03 +03 EEST 1 1989-10-01 01 +02 EET 1990-04-01 03 +03 EEST 1 1990-09-30 01 +02 EET 1991-04-01 01 +03 EEST 1 1991-09-30 23 +02 EET 1992-04-08 01 +03 EEST 1 1992-09-30 23 +02 EET 1993-03-26 01 +03 EEST 1 1993-09-24 23 +02 EET 1994-04-01 01 +03 EEST 1 1994-09-30 23 +02 EET 1995-04-01 01 +03 EEST 1 1995-09-30 23 +02 EET 1996-04-01 01 +03 EEST 1 1996-09-30 23 +02 EET 1997-03-31 01 +03 EEST 1 1997-09-30 23 +02 EET 1998-03-30 01 +03 EEST 1 1998-09-30 23 +02 EET 1999-04-01 01 +03 EEST 1 1999-09-30 23 +02 EET 2000-04-01 01 +03 EEST 1 2000-09-30 23 +02 EET 2001-04-01 01 +03 EEST 1 2001-09-30 23 +02 EET 2002-04-01 01 +03 EEST 1 2002-09-30 23 +02 EET 2003-04-01 01 +03 EEST 1 2003-09-30 23 +02 EET 2004-04-01 01 +03 EEST 1 2004-09-30 23 +02 EET 2005-04-01 01 +03 EEST 1 2005-09-30 23 +02 EET 2006-04-01 01 +03 EEST 1 2006-09-21 23 +02 EET 2007-03-30 01 +03 EEST 1 2007-11-01 23 +02 EET 2008-04-04 01 +03 EEST 1 2008-10-31 23 +02 EET 2009-03-27 01 +03 EEST 1 2009-10-29 23 +02 EET 2010-04-02 01 +03 EEST 1 2010-10-28 23 +02 EET 2011-04-01 01 +03 EEST 1 2011-10-27 23 +02 EET 2012-03-30 01 +03 EEST 1 2012-10-25 23 +02 EET 2013-03-29 01 +03 EEST 1 2013-10-24 23 +02 EET 2014-03-28 01 +03 EEST 1 2014-10-30 23 +02 EET 2015-03-27 01 +03 EEST 1 2015-10-29 23 +02 EET 2016-03-25 01 +03 EEST 1 2016-10-27 23 +02 EET 2017-03-31 01 +03 EEST 1 2017-10-26 23 +02 EET 2018-03-30 01 +03 EEST 1 2018-10-25 23 +02 EET 2019-03-29 01 +03 EEST 1 2019-10-24 23 +02 EET 2020-03-27 01 +03 EEST 1 2020-10-29 23 +02 EET 2021-03-26 01 +03 EEST 1 2021-10-28 23 +02 EET 2022-03-25 01 +03 EEST 1 2022-10-27 23 +02 EET 2023-03-31 01 +03 EEST 1 2023-10-26 23 +02 EET 2024-03-29 01 +03 EEST 1 2024-10-24 23 +02 EET 2025-03-28 01 +03 EEST 1 2025-10-30 23 +02 EET 2026-03-27 01 +03 EEST 1 2026-10-29 23 +02 EET 2027-03-26 01 +03 EEST 1 2027-10-28 23 +02 EET 2028-03-31 01 +03 EEST 1 2028-10-26 23 +02 EET 2029-03-30 01 +03 EEST 1 2029-10-25 23 +02 EET 2030-03-29 01 +03 EEST 1 2030-10-24 23 +02 EET 2031-03-28 01 +03 EEST 1 2031-10-30 23 +02 EET 2032-03-26 01 +03 EEST 1 2032-10-28 23 +02 EET 2033-03-25 01 +03 EEST 1 2033-10-27 23 +02 EET 2034-03-31 01 +03 EEST 1 2034-10-26 23 +02 EET 2035-03-30 01 +03 EEST 1 2035-10-25 23 +02 EET 2036-03-28 01 +03 EEST 1 2036-10-30 23 +02 EET 2037-03-27 01 +03 EEST 1 2037-10-29 23 +02 EET 2038-03-26 01 +03 EEST 1 2038-10-28 23 +02 EET 2039-03-25 01 +03 EEST 1 2039-10-27 23 +02 EET 2040-03-30 01 +03 EEST 1 2040-10-25 23 +02 EET 2041-03-29 01 +03 EEST 1 2041-10-24 23 +02 EET 2042-03-28 01 +03 EEST 1 2042-10-30 23 +02 EET 2043-03-27 01 +03 EEST 1 2043-10-29 23 +02 EET 2044-03-25 01 +03 EEST 1 2044-10-27 23 +02 EET 2045-03-31 01 +03 EEST 1 2045-10-26 23 +02 EET 2046-03-30 01 +03 EEST 1 2046-10-25 23 +02 EET 2047-03-29 01 +03 EEST 1 2047-10-24 23 +02 EET 2048-03-27 01 +03 EEST 1 2048-10-29 23 +02 EET 2049-03-26 01 +03 EEST 1 2049-10-28 23 +02 EET TZ="Asia/Dhaka" - - +060140 LMT 1889-12-31 23:51:40 +055320 HMT 1941-10-01 00:36:40 +0630 1942-05-14 23 +0530 1942-09-01 01 +0630 1951-09-29 23:30 +06 2009-06-20 00 +07 1 2009-12-31 23 +06 TZ="Asia/Dili" - - +082220 LMT 1911-12-31 23:37:40 +08 1942-02-22 00 +09 1976-05-02 23 +08 2000-09-17 01 +09 TZ="Asia/Dubai" - - +034112 LMT 1920-01-01 00:18:48 +04 TZ="Asia/Dushanbe" - - +043512 LMT 1924-05-02 00:24:48 +05 1930-06-21 01 +06 1981-04-01 01 +07 1 1981-09-30 23 +06 1982-04-01 01 +07 1 1982-09-30 23 +06 1983-04-01 01 +07 1 1983-09-30 23 +06 1984-04-01 01 +07 1 1984-09-30 02 +06 1985-03-31 03 +07 1 1985-09-29 02 +06 1986-03-30 03 +07 1 1986-09-28 02 +06 1987-03-29 03 +07 1 1987-09-27 02 +06 1988-03-27 03 +07 1 1988-09-25 02 +06 1989-03-26 03 +07 1 1989-09-24 02 +06 1990-03-25 03 +07 1 1990-09-30 02 +06 1991-03-31 02 +06 1 1991-09-09 02 +05 TZ="Asia/Famagusta" - - +021548 LMT 1921-11-13 23:44:12 +02 EET 1975-04-13 01 +03 EEST 1 1975-10-11 23 +02 EET 1976-05-15 01 +03 EEST 1 1976-10-10 23 +02 EET 1977-04-03 01 +03 EEST 1 1977-09-24 23 +02 EET 1978-04-02 01 +03 EEST 1 1978-10-01 23 +02 EET 1979-04-01 01 +03 EEST 1 1979-09-29 23 +02 EET 1980-04-06 01 +03 EEST 1 1980-09-27 23 +02 EET 1981-03-29 01 +03 EEST 1 1981-09-26 23 +02 EET 1982-03-28 01 +03 EEST 1 1982-09-25 23 +02 EET 1983-03-27 01 +03 EEST 1 1983-09-24 23 +02 EET 1984-03-25 01 +03 EEST 1 1984-09-29 23 +02 EET 1985-03-31 01 +03 EEST 1 1985-09-28 23 +02 EET 1986-03-30 01 +03 EEST 1 1986-09-27 23 +02 EET 1987-03-29 01 +03 EEST 1 1987-09-26 23 +02 EET 1988-03-27 01 +03 EEST 1 1988-09-24 23 +02 EET 1989-03-26 01 +03 EEST 1 1989-09-23 23 +02 EET 1990-03-25 01 +03 EEST 1 1990-09-29 23 +02 EET 1991-03-31 01 +03 EEST 1 1991-09-28 23 +02 EET 1992-03-29 01 +03 EEST 1 1992-09-26 23 +02 EET 1993-03-28 01 +03 EEST 1 1993-09-25 23 +02 EET 1994-03-27 01 +03 EEST 1 1994-09-24 23 +02 EET 1995-03-26 01 +03 EEST 1 1995-09-23 23 +02 EET 1996-03-31 01 +03 EEST 1 1996-09-28 23 +02 EET 1997-03-30 01 +03 EEST 1 1997-09-27 23 +02 EET 1998-03-29 01 +03 EEST 1 1998-10-25 03 +02 EET 1999-03-28 04 +03 EEST 1 1999-10-31 03 +02 EET 2000-03-26 04 +03 EEST 1 2000-10-29 03 +02 EET 2001-03-25 04 +03 EEST 1 2001-10-28 03 +02 EET 2002-03-31 04 +03 EEST 1 2002-10-27 03 +02 EET 2003-03-30 04 +03 EEST 1 2003-10-26 03 +02 EET 2004-03-28 04 +03 EEST 1 2004-10-31 03 +02 EET 2005-03-27 04 +03 EEST 1 2005-10-30 03 +02 EET 2006-03-26 04 +03 EEST 1 2006-10-29 03 +02 EET 2007-03-25 04 +03 EEST 1 2007-10-28 03 +02 EET 2008-03-30 04 +03 EEST 1 2008-10-26 03 +02 EET 2009-03-29 04 +03 EEST 1 2009-10-25 03 +02 EET 2010-03-28 04 +03 EEST 1 2010-10-31 03 +02 EET 2011-03-27 04 +03 EEST 1 2011-10-30 03 +02 EET 2012-03-25 04 +03 EEST 1 2012-10-28 03 +02 EET 2013-03-31 04 +03 EEST 1 2013-10-27 03 +02 EET 2014-03-30 04 +03 EEST 1 2014-10-26 03 +02 EET 2015-03-29 04 +03 EEST 1 2015-10-25 03 +02 EET 2016-03-27 04 +03 EEST 1 2016-09-08 00 +03 2017-10-29 03 +02 EET 2018-03-25 04 +03 EEST 1 2018-10-28 03 +02 EET 2019-03-31 04 +03 EEST 1 2019-10-27 03 +02 EET 2020-03-29 04 +03 EEST 1 2020-10-25 03 +02 EET 2021-03-28 04 +03 EEST 1 2021-10-31 03 +02 EET 2022-03-27 04 +03 EEST 1 2022-10-30 03 +02 EET 2023-03-26 04 +03 EEST 1 2023-10-29 03 +02 EET 2024-03-31 04 +03 EEST 1 2024-10-27 03 +02 EET 2025-03-30 04 +03 EEST 1 2025-10-26 03 +02 EET 2026-03-29 04 +03 EEST 1 2026-10-25 03 +02 EET 2027-03-28 04 +03 EEST 1 2027-10-31 03 +02 EET 2028-03-26 04 +03 EEST 1 2028-10-29 03 +02 EET 2029-03-25 04 +03 EEST 1 2029-10-28 03 +02 EET 2030-03-31 04 +03 EEST 1 2030-10-27 03 +02 EET 2031-03-30 04 +03 EEST 1 2031-10-26 03 +02 EET 2032-03-28 04 +03 EEST 1 2032-10-31 03 +02 EET 2033-03-27 04 +03 EEST 1 2033-10-30 03 +02 EET 2034-03-26 04 +03 EEST 1 2034-10-29 03 +02 EET 2035-03-25 04 +03 EEST 1 2035-10-28 03 +02 EET 2036-03-30 04 +03 EEST 1 2036-10-26 03 +02 EET 2037-03-29 04 +03 EEST 1 2037-10-25 03 +02 EET 2038-03-28 04 +03 EEST 1 2038-10-31 03 +02 EET 2039-03-27 04 +03 EEST 1 2039-10-30 03 +02 EET 2040-03-25 04 +03 EEST 1 2040-10-28 03 +02 EET 2041-03-31 04 +03 EEST 1 2041-10-27 03 +02 EET 2042-03-30 04 +03 EEST 1 2042-10-26 03 +02 EET 2043-03-29 04 +03 EEST 1 2043-10-25 03 +02 EET 2044-03-27 04 +03 EEST 1 2044-10-30 03 +02 EET 2045-03-26 04 +03 EEST 1 2045-10-29 03 +02 EET 2046-03-25 04 +03 EEST 1 2046-10-28 03 +02 EET 2047-03-31 04 +03 EEST 1 2047-10-27 03 +02 EET 2048-03-29 04 +03 EEST 1 2048-10-25 03 +02 EET 2049-03-28 04 +03 EEST 1 2049-10-31 03 +02 EET TZ="Asia/Gaza" - - +021752 LMT 1900-09-30 23:42:08 +02 EET 1940-06-01 01 +03 EEST 1 1942-10-31 23 +02 EET 1943-04-01 03 +03 EEST 1 1943-10-31 23 +02 EET 1944-04-01 01 +03 EEST 1 1944-10-31 23 +02 EET 1945-04-16 01 +03 EEST 1 1945-11-01 01 +02 EET 1946-04-16 03 +03 EEST 1 1946-10-31 23 +02 EET 1957-05-10 01 +03 EEST 1 1957-09-30 23 +02 EET 1958-05-01 01 +03 EEST 1 1958-09-30 23 +02 EET 1959-05-01 02 +03 EEST 1 1959-09-30 02 +02 EET 1960-05-01 02 +03 EEST 1 1960-09-30 02 +02 EET 1961-05-01 02 +03 EEST 1 1961-09-30 02 +02 EET 1962-05-01 02 +03 EEST 1 1962-09-30 02 +02 EET 1963-05-01 02 +03 EEST 1 1963-09-30 02 +02 EET 1964-05-01 02 +03 EEST 1 1964-09-30 02 +02 EET 1965-05-01 02 +03 EEST 1 1965-09-30 02 +02 EET 1966-05-01 02 +03 EEST 1 1966-10-01 02 +02 EET 1967-05-01 02 +03 EEST 1 1967-06-04 23 +02 IST 1974-07-07 01 +03 IDT 1 1974-10-12 23 +02 IST 1975-04-20 01 +03 IDT 1 1975-08-30 23 +02 IST 1980-08-02 01 +03 IDT 1 1980-09-13 00 +02 IST 1984-05-05 01 +03 IDT 1 1984-08-25 00 +02 IST 1985-04-14 01 +03 IDT 1 1985-09-14 23 +02 IST 1986-05-18 01 +03 IDT 1 1986-09-06 23 +02 IST 1987-04-15 01 +03 IDT 1 1987-09-12 23 +02 IST 1988-04-10 01 +03 IDT 1 1988-09-03 23 +02 IST 1989-04-30 01 +03 IDT 1 1989-09-02 23 +02 IST 1990-03-25 01 +03 IDT 1 1990-08-25 23 +02 IST 1991-03-24 01 +03 IDT 1 1991-08-31 23 +02 IST 1992-03-29 01 +03 IDT 1 1992-09-05 23 +02 IST 1993-04-02 01 +03 IDT 1 1993-09-04 23 +02 IST 1994-04-01 01 +03 IDT 1 1994-08-27 23 +02 IST 1995-03-31 01 +03 IDT 1 1995-09-02 23 +02 IST 1996-01-01 00 +02 EET 1996-04-05 01 +03 EEST 1 1996-09-20 00 +02 EET 1997-04-04 01 +03 EEST 1 1997-09-19 00 +02 EET 1998-04-03 01 +03 EEST 1 1998-09-18 00 +02 EET 1999-04-16 01 +03 EEST 1 1999-10-14 23 +02 EET 2000-04-21 01 +03 EEST 1 2000-10-19 23 +02 EET 2001-04-20 01 +03 EEST 1 2001-10-18 23 +02 EET 2002-04-19 01 +03 EEST 1 2002-10-17 23 +02 EET 2003-04-18 01 +03 EEST 1 2003-10-16 23 +02 EET 2004-04-16 01 +03 EEST 1 2004-10-01 00 +02 EET 2005-04-15 01 +03 EEST 1 2005-10-04 01 +02 EET 2006-04-01 01 +03 EEST 1 2006-09-21 23 +02 EET 2007-04-01 01 +03 EEST 1 2007-09-13 01 +02 EET 2008-03-28 01 +03 EEST 1 2008-08-28 23 +02 EET 2009-03-27 01 +03 EEST 1 2009-09-04 00 +02 EET 2010-03-27 01:01 +03 EEST 1 2010-08-10 23 +02 EET 2011-04-01 01:01 +03 EEST 1 2011-07-31 23 +02 EET 2012-03-30 01 +03 EEST 1 2012-09-21 00 +02 EET 2013-03-29 01 +03 EEST 1 2013-09-26 23 +02 EET 2014-03-28 01 +03 EEST 1 2014-10-23 23 +02 EET 2015-03-28 01 +03 EEST 1 2015-10-22 23 +02 EET 2016-03-26 02 +03 EEST 1 2016-10-29 00 +02 EET 2017-03-25 02 +03 EEST 1 2017-10-28 00 +02 EET 2018-03-24 02 +03 EEST 1 2018-10-27 00 +02 EET 2019-03-29 01 +03 EEST 1 2019-10-26 00 +02 EET 2020-03-27 01 +03 EEST 1 2020-10-31 00 +02 EET 2021-03-26 01 +03 EEST 1 2021-10-30 00 +02 EET 2022-03-25 01 +03 EEST 1 2022-10-29 00 +02 EET 2023-03-31 01 +03 EEST 1 2023-10-28 00 +02 EET 2024-03-29 01 +03 EEST 1 2024-10-26 00 +02 EET 2025-03-28 01 +03 EEST 1 2025-10-25 00 +02 EET 2026-03-27 01 +03 EEST 1 2026-10-31 00 +02 EET 2027-03-26 01 +03 EEST 1 2027-10-30 00 +02 EET 2028-03-31 01 +03 EEST 1 2028-10-28 00 +02 EET 2029-03-30 01 +03 EEST 1 2029-10-27 00 +02 EET 2030-03-29 01 +03 EEST 1 2030-10-26 00 +02 EET 2031-03-28 01 +03 EEST 1 2031-10-25 00 +02 EET 2032-03-26 01 +03 EEST 1 2032-10-30 00 +02 EET 2033-03-25 01 +03 EEST 1 2033-10-29 00 +02 EET 2034-03-31 01 +03 EEST 1 2034-10-28 00 +02 EET 2035-03-30 01 +03 EEST 1 2035-10-27 00 +02 EET 2036-03-28 01 +03 EEST 1 2036-10-25 00 +02 EET 2037-03-27 01 +03 EEST 1 2037-10-31 00 +02 EET 2038-03-26 01 +03 EEST 1 2038-10-30 00 +02 EET 2039-03-25 01 +03 EEST 1 2039-10-29 00 +02 EET 2040-03-30 01 +03 EEST 1 2040-10-27 00 +02 EET 2041-03-29 01 +03 EEST 1 2041-10-26 00 +02 EET 2042-03-28 01 +03 EEST 1 2042-10-25 00 +02 EET 2043-03-27 01 +03 EEST 1 2043-10-31 00 +02 EET 2044-03-25 01 +03 EEST 1 2044-10-29 00 +02 EET 2045-03-31 01 +03 EEST 1 2045-10-28 00 +02 EET 2046-03-30 01 +03 EEST 1 2046-10-27 00 +02 EET 2047-03-29 01 +03 EEST 1 2047-10-26 00 +02 EET 2048-03-27 01 +03 EEST 1 2048-10-31 00 +02 EET 2049-03-26 01 +03 EEST 1 2049-10-30 00 +02 EET TZ="Asia/Hebron" - - +022023 LMT 1900-09-30 23:39:37 +02 EET 1940-06-01 01 +03 EEST 1 1942-10-31 23 +02 EET 1943-04-01 03 +03 EEST 1 1943-10-31 23 +02 EET 1944-04-01 01 +03 EEST 1 1944-10-31 23 +02 EET 1945-04-16 01 +03 EEST 1 1945-11-01 01 +02 EET 1946-04-16 03 +03 EEST 1 1946-10-31 23 +02 EET 1957-05-10 01 +03 EEST 1 1957-09-30 23 +02 EET 1958-05-01 01 +03 EEST 1 1958-09-30 23 +02 EET 1959-05-01 02 +03 EEST 1 1959-09-30 02 +02 EET 1960-05-01 02 +03 EEST 1 1960-09-30 02 +02 EET 1961-05-01 02 +03 EEST 1 1961-09-30 02 +02 EET 1962-05-01 02 +03 EEST 1 1962-09-30 02 +02 EET 1963-05-01 02 +03 EEST 1 1963-09-30 02 +02 EET 1964-05-01 02 +03 EEST 1 1964-09-30 02 +02 EET 1965-05-01 02 +03 EEST 1 1965-09-30 02 +02 EET 1966-05-01 02 +03 EEST 1 1966-10-01 02 +02 EET 1967-05-01 02 +03 EEST 1 1967-06-04 23 +02 IST 1974-07-07 01 +03 IDT 1 1974-10-12 23 +02 IST 1975-04-20 01 +03 IDT 1 1975-08-30 23 +02 IST 1980-08-02 01 +03 IDT 1 1980-09-13 00 +02 IST 1984-05-05 01 +03 IDT 1 1984-08-25 00 +02 IST 1985-04-14 01 +03 IDT 1 1985-09-14 23 +02 IST 1986-05-18 01 +03 IDT 1 1986-09-06 23 +02 IST 1987-04-15 01 +03 IDT 1 1987-09-12 23 +02 IST 1988-04-10 01 +03 IDT 1 1988-09-03 23 +02 IST 1989-04-30 01 +03 IDT 1 1989-09-02 23 +02 IST 1990-03-25 01 +03 IDT 1 1990-08-25 23 +02 IST 1991-03-24 01 +03 IDT 1 1991-08-31 23 +02 IST 1992-03-29 01 +03 IDT 1 1992-09-05 23 +02 IST 1993-04-02 01 +03 IDT 1 1993-09-04 23 +02 IST 1994-04-01 01 +03 IDT 1 1994-08-27 23 +02 IST 1995-03-31 01 +03 IDT 1 1995-09-02 23 +02 IST 1996-01-01 00 +02 EET 1996-04-05 01 +03 EEST 1 1996-09-20 00 +02 EET 1997-04-04 01 +03 EEST 1 1997-09-19 00 +02 EET 1998-04-03 01 +03 EEST 1 1998-09-18 00 +02 EET 1999-04-16 01 +03 EEST 1 1999-10-14 23 +02 EET 2000-04-21 01 +03 EEST 1 2000-10-19 23 +02 EET 2001-04-20 01 +03 EEST 1 2001-10-18 23 +02 EET 2002-04-19 01 +03 EEST 1 2002-10-17 23 +02 EET 2003-04-18 01 +03 EEST 1 2003-10-16 23 +02 EET 2004-04-16 01 +03 EEST 1 2004-10-01 00 +02 EET 2005-04-15 01 +03 EEST 1 2005-10-04 01 +02 EET 2006-04-01 01 +03 EEST 1 2006-09-21 23 +02 EET 2007-04-01 01 +03 EEST 1 2007-09-13 01 +02 EET 2008-03-28 01 +03 EEST 1 2008-08-31 23 +02 EET 2009-03-27 01 +03 EEST 1 2009-09-04 00 +02 EET 2010-03-26 01 +03 EEST 1 2010-08-10 23 +02 EET 2011-04-01 01:01 +03 EEST 1 2011-07-31 23 +02 EET 2011-08-30 01 +03 EEST 1 2011-09-29 23 +02 EET 2012-03-30 01 +03 EEST 1 2012-09-21 00 +02 EET 2013-03-29 01 +03 EEST 1 2013-09-26 23 +02 EET 2014-03-28 01 +03 EEST 1 2014-10-23 23 +02 EET 2015-03-28 01 +03 EEST 1 2015-10-22 23 +02 EET 2016-03-26 02 +03 EEST 1 2016-10-29 00 +02 EET 2017-03-25 02 +03 EEST 1 2017-10-28 00 +02 EET 2018-03-24 02 +03 EEST 1 2018-10-27 00 +02 EET 2019-03-29 01 +03 EEST 1 2019-10-26 00 +02 EET 2020-03-27 01 +03 EEST 1 2020-10-31 00 +02 EET 2021-03-26 01 +03 EEST 1 2021-10-30 00 +02 EET 2022-03-25 01 +03 EEST 1 2022-10-29 00 +02 EET 2023-03-31 01 +03 EEST 1 2023-10-28 00 +02 EET 2024-03-29 01 +03 EEST 1 2024-10-26 00 +02 EET 2025-03-28 01 +03 EEST 1 2025-10-25 00 +02 EET 2026-03-27 01 +03 EEST 1 2026-10-31 00 +02 EET 2027-03-26 01 +03 EEST 1 2027-10-30 00 +02 EET 2028-03-31 01 +03 EEST 1 2028-10-28 00 +02 EET 2029-03-30 01 +03 EEST 1 2029-10-27 00 +02 EET 2030-03-29 01 +03 EEST 1 2030-10-26 00 +02 EET 2031-03-28 01 +03 EEST 1 2031-10-25 00 +02 EET 2032-03-26 01 +03 EEST 1 2032-10-30 00 +02 EET 2033-03-25 01 +03 EEST 1 2033-10-29 00 +02 EET 2034-03-31 01 +03 EEST 1 2034-10-28 00 +02 EET 2035-03-30 01 +03 EEST 1 2035-10-27 00 +02 EET 2036-03-28 01 +03 EEST 1 2036-10-25 00 +02 EET 2037-03-27 01 +03 EEST 1 2037-10-31 00 +02 EET 2038-03-26 01 +03 EEST 1 2038-10-30 00 +02 EET 2039-03-25 01 +03 EEST 1 2039-10-29 00 +02 EET 2040-03-30 01 +03 EEST 1 2040-10-27 00 +02 EET 2041-03-29 01 +03 EEST 1 2041-10-26 00 +02 EET 2042-03-28 01 +03 EEST 1 2042-10-25 00 +02 EET 2043-03-27 01 +03 EEST 1 2043-10-31 00 +02 EET 2044-03-25 01 +03 EEST 1 2044-10-29 00 +02 EET 2045-03-31 01 +03 EEST 1 2045-10-28 00 +02 EET 2046-03-30 01 +03 EEST 1 2046-10-27 00 +02 EET 2047-03-29 01 +03 EEST 1 2047-10-26 00 +02 EET 2048-03-27 01 +03 EEST 1 2048-10-31 00 +02 EET 2049-03-26 01 +03 EEST 1 2049-10-30 00 +02 EET TZ="Asia/Ho_Chi_Minh" - - +070640 LMT 1906-06-30 23:59:50 +070630 PLMT 1911-04-30 23:53:30 +07 1943-01-01 00 +08 1945-03-15 00 +09 1945-09-01 22 +07 1947-04-01 01 +08 1955-06-30 23 +07 1960-01-01 00 +08 1975-06-12 23 +07 TZ="Asia/Hong_Kong" - - +073642 LMT 1904-10-30 01 +08 HKT 1941-06-15 04 +09 HKST 1 1941-10-01 03:30 +0830 HKWT 1 1941-12-25 00:30 +09 JST 1945-11-18 01 +08 HKT 1946-04-21 01 +09 HKST 1 1946-12-01 03:30 +08 HKT 1947-04-13 04:30 +09 HKST 1 1947-11-30 03:30 +08 HKT 1948-05-02 04:30 +09 HKST 1 1948-10-31 03:30 +08 HKT 1949-04-03 04:30 +09 HKST 1 1949-10-30 03:30 +08 HKT 1950-04-02 04:30 +09 HKST 1 1950-10-29 03:30 +08 HKT 1951-04-01 04:30 +09 HKST 1 1951-10-28 03:30 +08 HKT 1952-04-06 04:30 +09 HKST 1 1952-11-02 03:30 +08 HKT 1953-04-05 04:30 +09 HKST 1 1953-11-01 02:30 +08 HKT 1954-03-21 04:30 +09 HKST 1 1954-10-31 02:30 +08 HKT 1955-03-20 04:30 +09 HKST 1 1955-11-06 02:30 +08 HKT 1956-03-18 04:30 +09 HKST 1 1956-11-04 02:30 +08 HKT 1957-03-24 04:30 +09 HKST 1 1957-11-03 02:30 +08 HKT 1958-03-23 04:30 +09 HKST 1 1958-11-02 02:30 +08 HKT 1959-03-22 04:30 +09 HKST 1 1959-11-01 02:30 +08 HKT 1960-03-20 04:30 +09 HKST 1 1960-11-06 02:30 +08 HKT 1961-03-19 04:30 +09 HKST 1 1961-11-05 02:30 +08 HKT 1962-03-18 04:30 +09 HKST 1 1962-11-04 02:30 +08 HKT 1963-03-24 04:30 +09 HKST 1 1963-11-03 02:30 +08 HKT 1964-03-22 04:30 +09 HKST 1 1964-11-01 02:30 +08 HKT 1965-04-18 04:30 +09 HKST 1 1965-10-17 02:30 +08 HKT 1966-04-17 04:30 +09 HKST 1 1966-10-16 02:30 +08 HKT 1967-04-16 04:30 +09 HKST 1 1967-10-22 02:30 +08 HKT 1968-04-21 04:30 +09 HKST 1 1968-10-20 02:30 +08 HKT 1969-04-20 04:30 +09 HKST 1 1969-10-19 02:30 +08 HKT 1970-04-19 04:30 +09 HKST 1 1970-10-18 02:30 +08 HKT 1971-04-18 04:30 +09 HKST 1 1971-10-17 02:30 +08 HKT 1972-04-16 04:30 +09 HKST 1 1972-10-22 02:30 +08 HKT 1973-04-22 04:30 +09 HKST 1 1973-10-21 02:30 +08 HKT 1973-12-30 04:30 +09 HKST 1 1974-10-20 02:30 +08 HKT 1975-04-20 04:30 +09 HKST 1 1975-10-19 02:30 +08 HKT 1976-04-18 04:30 +09 HKST 1 1976-10-17 02:30 +08 HKT 1979-05-13 04:30 +09 HKST 1 1979-10-21 02:30 +08 HKT TZ="Asia/Hovd" - - +060636 LMT 1905-07-31 23:53:24 +06 1978-01-01 01 +07 1983-04-01 01 +08 1 1983-09-30 23 +07 1984-04-01 01 +08 1 1984-09-29 23 +07 1985-03-31 01 +08 1 1985-09-28 23 +07 1986-03-30 01 +08 1 1986-09-27 23 +07 1987-03-29 01 +08 1 1987-09-26 23 +07 1988-03-27 01 +08 1 1988-09-24 23 +07 1989-03-26 01 +08 1 1989-09-23 23 +07 1990-03-25 01 +08 1 1990-09-29 23 +07 1991-03-31 01 +08 1 1991-09-28 23 +07 1992-03-29 01 +08 1 1992-09-26 23 +07 1993-03-28 01 +08 1 1993-09-25 23 +07 1994-03-27 01 +08 1 1994-09-24 23 +07 1995-03-26 01 +08 1 1995-09-23 23 +07 1996-03-31 01 +08 1 1996-09-28 23 +07 1997-03-30 01 +08 1 1997-09-27 23 +07 1998-03-29 01 +08 1 1998-09-26 23 +07 2001-04-28 03 +08 1 2001-09-29 01 +07 2002-03-30 03 +08 1 2002-09-28 01 +07 2003-03-29 03 +08 1 2003-09-27 01 +07 2004-03-27 03 +08 1 2004-09-25 01 +07 2005-03-26 03 +08 1 2005-09-24 01 +07 2006-03-25 03 +08 1 2006-09-30 01 +07 2015-03-28 03 +08 1 2015-09-25 23 +07 2016-03-26 03 +08 1 2016-09-23 23 +07 TZ="Asia/Irkutsk" - - +065705 LMT 1880-01-01 00 +065705 IMT 1920-01-25 00:02:55 +07 1930-06-21 01 +08 1981-04-01 01 +09 1 1981-09-30 23 +08 1982-04-01 01 +09 1 1982-09-30 23 +08 1983-04-01 01 +09 1 1983-09-30 23 +08 1984-04-01 01 +09 1 1984-09-30 02 +08 1985-03-31 03 +09 1 1985-09-29 02 +08 1986-03-30 03 +09 1 1986-09-28 02 +08 1987-03-29 03 +09 1 1987-09-27 02 +08 1988-03-27 03 +09 1 1988-09-25 02 +08 1989-03-26 03 +09 1 1989-09-24 02 +08 1990-03-25 03 +09 1 1990-09-30 02 +08 1991-03-31 02 +08 1 1991-09-29 02 +07 1992-01-19 03 +08 1992-03-29 03 +09 1 1992-09-27 02 +08 1993-03-28 03 +09 1 1993-09-26 02 +08 1994-03-27 03 +09 1 1994-09-25 02 +08 1995-03-26 03 +09 1 1995-09-24 02 +08 1996-03-31 03 +09 1 1996-10-27 02 +08 1997-03-30 03 +09 1 1997-10-26 02 +08 1998-03-29 03 +09 1 1998-10-25 02 +08 1999-03-28 03 +09 1 1999-10-31 02 +08 2000-03-26 03 +09 1 2000-10-29 02 +08 2001-03-25 03 +09 1 2001-10-28 02 +08 2002-03-31 03 +09 1 2002-10-27 02 +08 2003-03-30 03 +09 1 2003-10-26 02 +08 2004-03-28 03 +09 1 2004-10-31 02 +08 2005-03-27 03 +09 1 2005-10-30 02 +08 2006-03-26 03 +09 1 2006-10-29 02 +08 2007-03-25 03 +09 1 2007-10-28 02 +08 2008-03-30 03 +09 1 2008-10-26 02 +08 2009-03-29 03 +09 1 2009-10-25 02 +08 2010-03-28 03 +09 1 2010-10-31 02 +08 2011-03-27 03 +09 2014-10-26 01 +08 TZ="Asia/Jakarta" - - +070712 LMT 1867-08-10 00 +070712 BMT 1924-01-01 00 +0720 1932-11-01 00:10 +0730 1942-03-23 01:30 +09 1945-09-22 22:30 +0730 1948-05-01 00:30 +08 1950-04-30 23:30 +0730 1963-12-31 23:30 +07 WIB TZ="Asia/Jayapura" - - +092248 LMT 1932-10-31 23:37:12 +09 1944-09-01 00:30 +0930 1963-12-31 23:30 +09 WIT TZ="Asia/Jerusalem" - - +022054 LMT 1879-12-31 23:59:46 +022040 JMT 1917-12-31 23:39:20 +02 IST 1940-06-01 01 +03 IDT 1 1942-10-31 23 +02 IST 1943-04-01 03 +03 IDT 1 1943-10-31 23 +02 IST 1944-04-01 01 +03 IDT 1 1944-10-31 23 +02 IST 1945-04-16 01 +03 IDT 1 1945-11-01 01 +02 IST 1946-04-16 03 +03 IDT 1 1946-10-31 23 +02 IST 1948-05-23 02 +04 IDDT 1 1948-08-31 23 +03 IDT 1 1948-11-01 01 +02 IST 1949-05-01 01 +03 IDT 1 1949-11-01 01 +02 IST 1950-04-16 01 +03 IDT 1 1950-09-15 02 +02 IST 1951-04-01 01 +03 IDT 1 1951-11-11 02 +02 IST 1952-04-20 03 +03 IDT 1 1952-10-19 02 +02 IST 1953-04-12 03 +03 IDT 1 1953-09-13 02 +02 IST 1954-06-13 01 +03 IDT 1 1954-09-11 23 +02 IST 1955-06-11 03 +03 IDT 1 1955-09-10 23 +02 IST 1956-06-03 01 +03 IDT 1 1956-09-30 02 +02 IST 1957-04-29 03 +03 IDT 1 1957-09-21 23 +02 IST 1974-07-07 01 +03 IDT 1 1974-10-12 23 +02 IST 1975-04-20 01 +03 IDT 1 1975-08-30 23 +02 IST 1980-08-02 01 +03 IDT 1 1980-09-13 00 +02 IST 1984-05-05 01 +03 IDT 1 1984-08-25 00 +02 IST 1985-04-14 01 +03 IDT 1 1985-09-14 23 +02 IST 1986-05-18 01 +03 IDT 1 1986-09-06 23 +02 IST 1987-04-15 01 +03 IDT 1 1987-09-12 23 +02 IST 1988-04-10 01 +03 IDT 1 1988-09-03 23 +02 IST 1989-04-30 01 +03 IDT 1 1989-09-02 23 +02 IST 1990-03-25 01 +03 IDT 1 1990-08-25 23 +02 IST 1991-03-24 01 +03 IDT 1 1991-08-31 23 +02 IST 1992-03-29 01 +03 IDT 1 1992-09-05 23 +02 IST 1993-04-02 01 +03 IDT 1 1993-09-04 23 +02 IST 1994-04-01 01 +03 IDT 1 1994-08-27 23 +02 IST 1995-03-31 01 +03 IDT 1 1995-09-02 23 +02 IST 1996-03-15 01 +03 IDT 1 1996-09-15 23 +02 IST 1997-03-21 01 +03 IDT 1 1997-09-13 23 +02 IST 1998-03-20 01 +03 IDT 1 1998-09-05 23 +02 IST 1999-04-02 03 +03 IDT 1 1999-09-03 01 +02 IST 2000-04-14 03 +03 IDT 1 2000-10-06 00 +02 IST 2001-04-09 02 +03 IDT 1 2001-09-24 00 +02 IST 2002-03-29 02 +03 IDT 1 2002-10-07 00 +02 IST 2003-03-28 02 +03 IDT 1 2003-10-03 00 +02 IST 2004-04-07 02 +03 IDT 1 2004-09-22 00 +02 IST 2005-04-01 03 +03 IDT 1 2005-10-09 01 +02 IST 2006-03-31 03 +03 IDT 1 2006-10-01 01 +02 IST 2007-03-30 03 +03 IDT 1 2007-09-16 01 +02 IST 2008-03-28 03 +03 IDT 1 2008-10-05 01 +02 IST 2009-03-27 03 +03 IDT 1 2009-09-27 01 +02 IST 2010-03-26 03 +03 IDT 1 2010-09-12 01 +02 IST 2011-04-01 03 +03 IDT 1 2011-10-02 01 +02 IST 2012-03-30 03 +03 IDT 1 2012-09-23 01 +02 IST 2013-03-29 03 +03 IDT 1 2013-10-27 01 +02 IST 2014-03-28 03 +03 IDT 1 2014-10-26 01 +02 IST 2015-03-27 03 +03 IDT 1 2015-10-25 01 +02 IST 2016-03-25 03 +03 IDT 1 2016-10-30 01 +02 IST 2017-03-24 03 +03 IDT 1 2017-10-29 01 +02 IST 2018-03-23 03 +03 IDT 1 2018-10-28 01 +02 IST 2019-03-29 03 +03 IDT 1 2019-10-27 01 +02 IST 2020-03-27 03 +03 IDT 1 2020-10-25 01 +02 IST 2021-03-26 03 +03 IDT 1 2021-10-31 01 +02 IST 2022-03-25 03 +03 IDT 1 2022-10-30 01 +02 IST 2023-03-24 03 +03 IDT 1 2023-10-29 01 +02 IST 2024-03-29 03 +03 IDT 1 2024-10-27 01 +02 IST 2025-03-28 03 +03 IDT 1 2025-10-26 01 +02 IST 2026-03-27 03 +03 IDT 1 2026-10-25 01 +02 IST 2027-03-26 03 +03 IDT 1 2027-10-31 01 +02 IST 2028-03-24 03 +03 IDT 1 2028-10-29 01 +02 IST 2029-03-23 03 +03 IDT 1 2029-10-28 01 +02 IST 2030-03-29 03 +03 IDT 1 2030-10-27 01 +02 IST 2031-03-28 03 +03 IDT 1 2031-10-26 01 +02 IST 2032-03-26 03 +03 IDT 1 2032-10-31 01 +02 IST 2033-03-25 03 +03 IDT 1 2033-10-30 01 +02 IST 2034-03-24 03 +03 IDT 1 2034-10-29 01 +02 IST 2035-03-23 03 +03 IDT 1 2035-10-28 01 +02 IST 2036-03-28 03 +03 IDT 1 2036-10-26 01 +02 IST 2037-03-27 03 +03 IDT 1 2037-10-25 01 +02 IST 2038-03-26 03 +03 IDT 1 2038-10-31 01 +02 IST 2039-03-25 03 +03 IDT 1 2039-10-30 01 +02 IST 2040-03-23 03 +03 IDT 1 2040-10-28 01 +02 IST 2041-03-29 03 +03 IDT 1 2041-10-27 01 +02 IST 2042-03-28 03 +03 IDT 1 2042-10-26 01 +02 IST 2043-03-27 03 +03 IDT 1 2043-10-25 01 +02 IST 2044-03-25 03 +03 IDT 1 2044-10-30 01 +02 IST 2045-03-24 03 +03 IDT 1 2045-10-29 01 +02 IST 2046-03-23 03 +03 IDT 1 2046-10-28 01 +02 IST 2047-03-29 03 +03 IDT 1 2047-10-27 01 +02 IST 2048-03-27 03 +03 IDT 1 2048-10-25 01 +02 IST 2049-03-26 03 +03 IDT 1 2049-10-31 01 +02 IST TZ="Asia/Kabul" - - +043648 LMT 1889-12-31 23:23:12 +04 1945-01-01 00:30 +0430 TZ="Asia/Kamchatka" - - +103436 LMT 1922-11-10 00:25:24 +11 1930-06-21 01 +12 1981-04-01 01 +13 1 1981-09-30 23 +12 1982-04-01 01 +13 1 1982-09-30 23 +12 1983-04-01 01 +13 1 1983-09-30 23 +12 1984-04-01 01 +13 1 1984-09-30 02 +12 1985-03-31 03 +13 1 1985-09-29 02 +12 1986-03-30 03 +13 1 1986-09-28 02 +12 1987-03-29 03 +13 1 1987-09-27 02 +12 1988-03-27 03 +13 1 1988-09-25 02 +12 1989-03-26 03 +13 1 1989-09-24 02 +12 1990-03-25 03 +13 1 1990-09-30 02 +12 1991-03-31 02 +12 1 1991-09-29 02 +11 1992-01-19 03 +12 1992-03-29 03 +13 1 1992-09-27 02 +12 1993-03-28 03 +13 1 1993-09-26 02 +12 1994-03-27 03 +13 1 1994-09-25 02 +12 1995-03-26 03 +13 1 1995-09-24 02 +12 1996-03-31 03 +13 1 1996-10-27 02 +12 1997-03-30 03 +13 1 1997-10-26 02 +12 1998-03-29 03 +13 1 1998-10-25 02 +12 1999-03-28 03 +13 1 1999-10-31 02 +12 2000-03-26 03 +13 1 2000-10-29 02 +12 2001-03-25 03 +13 1 2001-10-28 02 +12 2002-03-31 03 +13 1 2002-10-27 02 +12 2003-03-30 03 +13 1 2003-10-26 02 +12 2004-03-28 03 +13 1 2004-10-31 02 +12 2005-03-27 03 +13 1 2005-10-30 02 +12 2006-03-26 03 +13 1 2006-10-29 02 +12 2007-03-25 03 +13 1 2007-10-28 02 +12 2008-03-30 03 +13 1 2008-10-26 02 +12 2009-03-29 03 +13 1 2009-10-25 02 +12 2010-03-28 02 +12 1 2010-10-31 02 +11 2011-03-27 03 +12 TZ="Asia/Karachi" - - +042812 LMT 1907-01-01 01:01:48 +0530 1942-09-01 01 +0630 1 1945-10-14 23 +0530 1951-09-29 23:30 +05 1971-03-26 00 +05 PKT 2002-04-07 01 +06 PKST 1 2002-10-05 23 +05 PKT 2008-06-01 01 +06 PKST 1 2008-10-31 23 +05 PKT 2009-04-15 01 +06 PKST 1 2009-10-31 23 +05 PKT TZ="Asia/Kathmandu" - - +054116 LMT 1919-12-31 23:48:44 +0530 1986-01-01 00:15 +0545 TZ="Asia/Khandyga" - - +090213 LMT 1919-12-14 22:57:47 +08 1930-06-21 01 +09 1981-04-01 01 +10 1 1981-09-30 23 +09 1982-04-01 01 +10 1 1982-09-30 23 +09 1983-04-01 01 +10 1 1983-09-30 23 +09 1984-04-01 01 +10 1 1984-09-30 02 +09 1985-03-31 03 +10 1 1985-09-29 02 +09 1986-03-30 03 +10 1 1986-09-28 02 +09 1987-03-29 03 +10 1 1987-09-27 02 +09 1988-03-27 03 +10 1 1988-09-25 02 +09 1989-03-26 03 +10 1 1989-09-24 02 +09 1990-03-25 03 +10 1 1990-09-30 02 +09 1991-03-31 02 +09 1 1991-09-29 02 +08 1992-01-19 03 +09 1992-03-29 03 +10 1 1992-09-27 02 +09 1993-03-28 03 +10 1 1993-09-26 02 +09 1994-03-27 03 +10 1 1994-09-25 02 +09 1995-03-26 03 +10 1 1995-09-24 02 +09 1996-03-31 03 +10 1 1996-10-27 02 +09 1997-03-30 03 +10 1 1997-10-26 02 +09 1998-03-29 03 +10 1 1998-10-25 02 +09 1999-03-28 03 +10 1 1999-10-31 02 +09 2000-03-26 03 +10 1 2000-10-29 02 +09 2001-03-25 03 +10 1 2001-10-28 02 +09 2002-03-31 03 +10 1 2002-10-27 02 +09 2003-03-30 03 +10 1 2003-10-26 02 +09 2004-01-01 01 +10 2004-03-28 03 +11 1 2004-10-31 02 +10 2005-03-27 03 +11 1 2005-10-30 02 +10 2006-03-26 03 +11 1 2006-10-29 02 +10 2007-03-25 03 +11 1 2007-10-28 02 +10 2008-03-30 03 +11 1 2008-10-26 02 +10 2009-03-29 03 +11 1 2009-10-25 02 +10 2010-03-28 03 +11 1 2010-10-31 02 +10 2011-03-27 03 +11 2011-09-12 23 +10 2014-10-26 01 +09 TZ="Asia/Kolkata" - - +055328 LMT 1854-06-27 23:59:52 +055320 HMT 1869-12-31 23:27:50 +052110 MMT 1906-01-01 00:08:50 +0530 IST 1941-10-01 01 +0630 1 1942-05-14 23 +0530 IST 1942-09-01 01 +0630 1 1945-10-14 23 +0530 IST TZ="Asia/Krasnoyarsk" - - +061126 LMT 1920-01-05 23:48:34 +06 1930-06-21 01 +07 1981-04-01 01 +08 1 1981-09-30 23 +07 1982-04-01 01 +08 1 1982-09-30 23 +07 1983-04-01 01 +08 1 1983-09-30 23 +07 1984-04-01 01 +08 1 1984-09-30 02 +07 1985-03-31 03 +08 1 1985-09-29 02 +07 1986-03-30 03 +08 1 1986-09-28 02 +07 1987-03-29 03 +08 1 1987-09-27 02 +07 1988-03-27 03 +08 1 1988-09-25 02 +07 1989-03-26 03 +08 1 1989-09-24 02 +07 1990-03-25 03 +08 1 1990-09-30 02 +07 1991-03-31 02 +07 1 1991-09-29 02 +06 1992-01-19 03 +07 1992-03-29 03 +08 1 1992-09-27 02 +07 1993-03-28 03 +08 1 1993-09-26 02 +07 1994-03-27 03 +08 1 1994-09-25 02 +07 1995-03-26 03 +08 1 1995-09-24 02 +07 1996-03-31 03 +08 1 1996-10-27 02 +07 1997-03-30 03 +08 1 1997-10-26 02 +07 1998-03-29 03 +08 1 1998-10-25 02 +07 1999-03-28 03 +08 1 1999-10-31 02 +07 2000-03-26 03 +08 1 2000-10-29 02 +07 2001-03-25 03 +08 1 2001-10-28 02 +07 2002-03-31 03 +08 1 2002-10-27 02 +07 2003-03-30 03 +08 1 2003-10-26 02 +07 2004-03-28 03 +08 1 2004-10-31 02 +07 2005-03-27 03 +08 1 2005-10-30 02 +07 2006-03-26 03 +08 1 2006-10-29 02 +07 2007-03-25 03 +08 1 2007-10-28 02 +07 2008-03-30 03 +08 1 2008-10-26 02 +07 2009-03-29 03 +08 1 2009-10-25 02 +07 2010-03-28 03 +08 1 2010-10-31 02 +07 2011-03-27 03 +08 2014-10-26 01 +07 TZ="Asia/Kuala_Lumpur" - - +064646 LMT 1901-01-01 00:08:39 +065525 SMT 1905-06-01 00:04:35 +07 1933-01-01 00:20 +0720 1 1936-01-01 00 +0720 1941-09-01 00:10 +0730 1942-02-16 01:30 +09 1945-09-11 22:30 +0730 1982-01-01 00:30 +08 TZ="Asia/Kuching" - - +072120 LMT 1926-03-01 00:08:40 +0730 1933-01-01 00:30 +08 1935-09-14 00:20 +0820 1 1935-12-13 23:40 +08 1936-09-14 00:20 +0820 1 1936-12-13 23:40 +08 1937-09-14 00:20 +0820 1 1937-12-13 23:40 +08 1938-09-14 00:20 +0820 1 1938-12-13 23:40 +08 1939-09-14 00:20 +0820 1 1939-12-13 23:40 +08 1940-09-14 00:20 +0820 1 1940-12-13 23:40 +08 1941-09-14 00:20 +0820 1 1941-12-13 23:40 +08 1942-02-16 01 +09 1945-09-11 23 +08 TZ="Asia/Macau" - - +073410 LMT 1904-10-30 00:25:50 +08 CST 1941-12-22 00 +09 1942-05-01 00 +10 1 1942-11-17 22 +09 1943-05-01 00 +10 1 1943-09-30 22 +09 1945-09-30 23 +08 CST 1946-05-01 00 +09 CDT 1 1946-09-30 23 +08 CST 1947-04-20 00 +09 CDT 1 1947-11-30 23 +08 CST 1948-05-03 00 +09 CDT 1 1948-10-31 23 +08 CST 1949-04-03 00 +09 CDT 1 1949-10-29 23 +08 CST 1950-04-02 00 +09 CDT 1 1950-10-28 23 +08 CST 1951-04-01 00 +09 CDT 1 1951-10-28 23 +08 CST 1952-04-06 00 +09 CDT 1 1952-11-01 23 +08 CST 1953-04-05 00 +09 CDT 1 1953-10-31 23 +08 CST 1954-03-21 00 +09 CDT 1 1954-10-30 23 +08 CST 1955-03-20 00 +09 CDT 1 1955-11-05 23 +08 CST 1956-03-18 00 +09 CDT 1 1956-11-04 02:30 +08 CST 1957-03-24 04:30 +09 CDT 1 1957-11-03 02:30 +08 CST 1958-03-23 04:30 +09 CDT 1 1958-11-02 02:30 +08 CST 1959-03-22 04:30 +09 CDT 1 1959-11-01 02:30 +08 CST 1960-03-20 04:30 +09 CDT 1 1960-11-06 02:30 +08 CST 1961-03-19 04:30 +09 CDT 1 1961-11-05 02:30 +08 CST 1962-03-18 04:30 +09 CDT 1 1962-11-04 02:30 +08 CST 1963-03-24 04:30 +09 CDT 1 1963-11-03 02:30 +08 CST 1964-03-22 04:30 +09 CDT 1 1964-11-01 02:30 +08 CST 1965-04-18 04:30 +09 CDT 1 1965-10-17 01:30 +08 CST 1966-04-17 04:30 +09 CDT 1 1966-10-16 01:30 +08 CST 1967-04-16 04:30 +09 CDT 1 1967-10-22 02:30 +08 CST 1968-04-21 04:30 +09 CDT 1 1968-10-20 02:30 +08 CST 1969-04-20 04:30 +09 CDT 1 1969-10-19 02:30 +08 CST 1970-04-19 04:30 +09 CDT 1 1970-10-18 02:30 +08 CST 1971-04-18 04:30 +09 CDT 1 1971-10-17 02:30 +08 CST 1972-04-16 04:30 +09 CDT 1 1972-10-22 02:30 +08 CST 1973-04-22 04:30 +09 CDT 1 1973-10-21 02:30 +08 CST 1973-12-30 04:30 +09 CDT 1 1974-10-20 02:30 +08 CST 1975-04-20 04:30 +09 CDT 1 1975-10-19 02:30 +08 CST 1976-04-18 04:30 +09 CDT 1 1976-10-17 02:30 +08 CST 1979-05-13 04:30 +09 CDT 1 1979-10-21 02:30 +08 CST TZ="Asia/Magadan" - - +100312 LMT 1924-05-01 23:56:48 +10 1930-06-21 01 +11 1981-04-01 01 +12 1 1981-09-30 23 +11 1982-04-01 01 +12 1 1982-09-30 23 +11 1983-04-01 01 +12 1 1983-09-30 23 +11 1984-04-01 01 +12 1 1984-09-30 02 +11 1985-03-31 03 +12 1 1985-09-29 02 +11 1986-03-30 03 +12 1 1986-09-28 02 +11 1987-03-29 03 +12 1 1987-09-27 02 +11 1988-03-27 03 +12 1 1988-09-25 02 +11 1989-03-26 03 +12 1 1989-09-24 02 +11 1990-03-25 03 +12 1 1990-09-30 02 +11 1991-03-31 02 +11 1 1991-09-29 02 +10 1992-01-19 03 +11 1992-03-29 03 +12 1 1992-09-27 02 +11 1993-03-28 03 +12 1 1993-09-26 02 +11 1994-03-27 03 +12 1 1994-09-25 02 +11 1995-03-26 03 +12 1 1995-09-24 02 +11 1996-03-31 03 +12 1 1996-10-27 02 +11 1997-03-30 03 +12 1 1997-10-26 02 +11 1998-03-29 03 +12 1 1998-10-25 02 +11 1999-03-28 03 +12 1 1999-10-31 02 +11 2000-03-26 03 +12 1 2000-10-29 02 +11 2001-03-25 03 +12 1 2001-10-28 02 +11 2002-03-31 03 +12 1 2002-10-27 02 +11 2003-03-30 03 +12 1 2003-10-26 02 +11 2004-03-28 03 +12 1 2004-10-31 02 +11 2005-03-27 03 +12 1 2005-10-30 02 +11 2006-03-26 03 +12 1 2006-10-29 02 +11 2007-03-25 03 +12 1 2007-10-28 02 +11 2008-03-30 03 +12 1 2008-10-26 02 +11 2009-03-29 03 +12 1 2009-10-25 02 +11 2010-03-28 03 +12 1 2010-10-31 02 +11 2011-03-27 03 +12 2014-10-26 00 +10 2016-04-24 03 +11 TZ="Asia/Makassar" - - +075736 LMT 1920-01-01 00 +075736 MMT 1932-11-01 00:02:24 +08 1942-02-09 01 +09 1945-09-22 23 +08 WITA TZ="Asia/Manila" - - -1556 LMT 1845-01-01 00 +0804 LMT 1899-05-10 23:56 +08 PST 1936-11-01 01 +09 PDT 1 1937-01-31 23 +08 PST 1942-05-01 01 +09 JST 1944-10-31 23 +08 PST 1954-04-12 01 +09 PDT 1 1954-06-30 23 +08 PST 1978-03-22 01 +09 PDT 1 1978-09-20 23 +08 PST TZ="Asia/Nicosia" - - +021328 LMT 1921-11-13 23:46:32 +02 EET 1975-04-13 01 +03 EEST 1 1975-10-11 23 +02 EET 1976-05-15 01 +03 EEST 1 1976-10-10 23 +02 EET 1977-04-03 01 +03 EEST 1 1977-09-24 23 +02 EET 1978-04-02 01 +03 EEST 1 1978-10-01 23 +02 EET 1979-04-01 01 +03 EEST 1 1979-09-29 23 +02 EET 1980-04-06 01 +03 EEST 1 1980-09-27 23 +02 EET 1981-03-29 01 +03 EEST 1 1981-09-26 23 +02 EET 1982-03-28 01 +03 EEST 1 1982-09-25 23 +02 EET 1983-03-27 01 +03 EEST 1 1983-09-24 23 +02 EET 1984-03-25 01 +03 EEST 1 1984-09-29 23 +02 EET 1985-03-31 01 +03 EEST 1 1985-09-28 23 +02 EET 1986-03-30 01 +03 EEST 1 1986-09-27 23 +02 EET 1987-03-29 01 +03 EEST 1 1987-09-26 23 +02 EET 1988-03-27 01 +03 EEST 1 1988-09-24 23 +02 EET 1989-03-26 01 +03 EEST 1 1989-09-23 23 +02 EET 1990-03-25 01 +03 EEST 1 1990-09-29 23 +02 EET 1991-03-31 01 +03 EEST 1 1991-09-28 23 +02 EET 1992-03-29 01 +03 EEST 1 1992-09-26 23 +02 EET 1993-03-28 01 +03 EEST 1 1993-09-25 23 +02 EET 1994-03-27 01 +03 EEST 1 1994-09-24 23 +02 EET 1995-03-26 01 +03 EEST 1 1995-09-23 23 +02 EET 1996-03-31 01 +03 EEST 1 1996-09-28 23 +02 EET 1997-03-30 01 +03 EEST 1 1997-09-27 23 +02 EET 1998-03-29 01 +03 EEST 1 1998-10-25 03 +02 EET 1999-03-28 04 +03 EEST 1 1999-10-31 03 +02 EET 2000-03-26 04 +03 EEST 1 2000-10-29 03 +02 EET 2001-03-25 04 +03 EEST 1 2001-10-28 03 +02 EET 2002-03-31 04 +03 EEST 1 2002-10-27 03 +02 EET 2003-03-30 04 +03 EEST 1 2003-10-26 03 +02 EET 2004-03-28 04 +03 EEST 1 2004-10-31 03 +02 EET 2005-03-27 04 +03 EEST 1 2005-10-30 03 +02 EET 2006-03-26 04 +03 EEST 1 2006-10-29 03 +02 EET 2007-03-25 04 +03 EEST 1 2007-10-28 03 +02 EET 2008-03-30 04 +03 EEST 1 2008-10-26 03 +02 EET 2009-03-29 04 +03 EEST 1 2009-10-25 03 +02 EET 2010-03-28 04 +03 EEST 1 2010-10-31 03 +02 EET 2011-03-27 04 +03 EEST 1 2011-10-30 03 +02 EET 2012-03-25 04 +03 EEST 1 2012-10-28 03 +02 EET 2013-03-31 04 +03 EEST 1 2013-10-27 03 +02 EET 2014-03-30 04 +03 EEST 1 2014-10-26 03 +02 EET 2015-03-29 04 +03 EEST 1 2015-10-25 03 +02 EET 2016-03-27 04 +03 EEST 1 2016-10-30 03 +02 EET 2017-03-26 04 +03 EEST 1 2017-10-29 03 +02 EET 2018-03-25 04 +03 EEST 1 2018-10-28 03 +02 EET 2019-03-31 04 +03 EEST 1 2019-10-27 03 +02 EET 2020-03-29 04 +03 EEST 1 2020-10-25 03 +02 EET 2021-03-28 04 +03 EEST 1 2021-10-31 03 +02 EET 2022-03-27 04 +03 EEST 1 2022-10-30 03 +02 EET 2023-03-26 04 +03 EEST 1 2023-10-29 03 +02 EET 2024-03-31 04 +03 EEST 1 2024-10-27 03 +02 EET 2025-03-30 04 +03 EEST 1 2025-10-26 03 +02 EET 2026-03-29 04 +03 EEST 1 2026-10-25 03 +02 EET 2027-03-28 04 +03 EEST 1 2027-10-31 03 +02 EET 2028-03-26 04 +03 EEST 1 2028-10-29 03 +02 EET 2029-03-25 04 +03 EEST 1 2029-10-28 03 +02 EET 2030-03-31 04 +03 EEST 1 2030-10-27 03 +02 EET 2031-03-30 04 +03 EEST 1 2031-10-26 03 +02 EET 2032-03-28 04 +03 EEST 1 2032-10-31 03 +02 EET 2033-03-27 04 +03 EEST 1 2033-10-30 03 +02 EET 2034-03-26 04 +03 EEST 1 2034-10-29 03 +02 EET 2035-03-25 04 +03 EEST 1 2035-10-28 03 +02 EET 2036-03-30 04 +03 EEST 1 2036-10-26 03 +02 EET 2037-03-29 04 +03 EEST 1 2037-10-25 03 +02 EET 2038-03-28 04 +03 EEST 1 2038-10-31 03 +02 EET 2039-03-27 04 +03 EEST 1 2039-10-30 03 +02 EET 2040-03-25 04 +03 EEST 1 2040-10-28 03 +02 EET 2041-03-31 04 +03 EEST 1 2041-10-27 03 +02 EET 2042-03-30 04 +03 EEST 1 2042-10-26 03 +02 EET 2043-03-29 04 +03 EEST 1 2043-10-25 03 +02 EET 2044-03-27 04 +03 EEST 1 2044-10-30 03 +02 EET 2045-03-26 04 +03 EEST 1 2045-10-29 03 +02 EET 2046-03-25 04 +03 EEST 1 2046-10-28 03 +02 EET 2047-03-31 04 +03 EEST 1 2047-10-27 03 +02 EET 2048-03-29 04 +03 EEST 1 2048-10-25 03 +02 EET 2049-03-28 04 +03 EEST 1 2049-10-31 03 +02 EET TZ="Asia/Novokuznetsk" - - +054848 LMT 1924-05-01 00:11:12 +06 1930-06-21 01 +07 1981-04-01 01 +08 1 1981-09-30 23 +07 1982-04-01 01 +08 1 1982-09-30 23 +07 1983-04-01 01 +08 1 1983-09-30 23 +07 1984-04-01 01 +08 1 1984-09-30 02 +07 1985-03-31 03 +08 1 1985-09-29 02 +07 1986-03-30 03 +08 1 1986-09-28 02 +07 1987-03-29 03 +08 1 1987-09-27 02 +07 1988-03-27 03 +08 1 1988-09-25 02 +07 1989-03-26 03 +08 1 1989-09-24 02 +07 1990-03-25 03 +08 1 1990-09-30 02 +07 1991-03-31 02 +07 1 1991-09-29 02 +06 1992-01-19 03 +07 1992-03-29 03 +08 1 1992-09-27 02 +07 1993-03-28 03 +08 1 1993-09-26 02 +07 1994-03-27 03 +08 1 1994-09-25 02 +07 1995-03-26 03 +08 1 1995-09-24 02 +07 1996-03-31 03 +08 1 1996-10-27 02 +07 1997-03-30 03 +08 1 1997-10-26 02 +07 1998-03-29 03 +08 1 1998-10-25 02 +07 1999-03-28 03 +08 1 1999-10-31 02 +07 2000-03-26 03 +08 1 2000-10-29 02 +07 2001-03-25 03 +08 1 2001-10-28 02 +07 2002-03-31 03 +08 1 2002-10-27 02 +07 2003-03-30 03 +08 1 2003-10-26 02 +07 2004-03-28 03 +08 1 2004-10-31 02 +07 2005-03-27 03 +08 1 2005-10-30 02 +07 2006-03-26 03 +08 1 2006-10-29 02 +07 2007-03-25 03 +08 1 2007-10-28 02 +07 2008-03-30 03 +08 1 2008-10-26 02 +07 2009-03-29 03 +08 1 2009-10-25 02 +07 2010-03-28 02 +07 1 2010-10-31 02 +06 2011-03-27 03 +07 TZ="Asia/Novosibirsk" - - +053140 LMT 1919-12-14 06:28:20 +06 1930-06-21 01 +07 1981-04-01 01 +08 1 1981-09-30 23 +07 1982-04-01 01 +08 1 1982-09-30 23 +07 1983-04-01 01 +08 1 1983-09-30 23 +07 1984-04-01 01 +08 1 1984-09-30 02 +07 1985-03-31 03 +08 1 1985-09-29 02 +07 1986-03-30 03 +08 1 1986-09-28 02 +07 1987-03-29 03 +08 1 1987-09-27 02 +07 1988-03-27 03 +08 1 1988-09-25 02 +07 1989-03-26 03 +08 1 1989-09-24 02 +07 1990-03-25 03 +08 1 1990-09-30 02 +07 1991-03-31 02 +07 1 1991-09-29 02 +06 1992-01-19 03 +07 1992-03-29 03 +08 1 1992-09-27 02 +07 1993-03-28 03 +08 1 1993-05-22 23 +07 1 1993-09-26 02 +06 1994-03-27 03 +07 1 1994-09-25 02 +06 1995-03-26 03 +07 1 1995-09-24 02 +06 1996-03-31 03 +07 1 1996-10-27 02 +06 1997-03-30 03 +07 1 1997-10-26 02 +06 1998-03-29 03 +07 1 1998-10-25 02 +06 1999-03-28 03 +07 1 1999-10-31 02 +06 2000-03-26 03 +07 1 2000-10-29 02 +06 2001-03-25 03 +07 1 2001-10-28 02 +06 2002-03-31 03 +07 1 2002-10-27 02 +06 2003-03-30 03 +07 1 2003-10-26 02 +06 2004-03-28 03 +07 1 2004-10-31 02 +06 2005-03-27 03 +07 1 2005-10-30 02 +06 2006-03-26 03 +07 1 2006-10-29 02 +06 2007-03-25 03 +07 1 2007-10-28 02 +06 2008-03-30 03 +07 1 2008-10-26 02 +06 2009-03-29 03 +07 1 2009-10-25 02 +06 2010-03-28 03 +07 1 2010-10-31 02 +06 2011-03-27 03 +07 2014-10-26 01 +06 2016-07-24 03 +07 TZ="Asia/Omsk" - - +045330 LMT 1919-11-14 00:06:30 +05 1930-06-21 01 +06 1981-04-01 01 +07 1 1981-09-30 23 +06 1982-04-01 01 +07 1 1982-09-30 23 +06 1983-04-01 01 +07 1 1983-09-30 23 +06 1984-04-01 01 +07 1 1984-09-30 02 +06 1985-03-31 03 +07 1 1985-09-29 02 +06 1986-03-30 03 +07 1 1986-09-28 02 +06 1987-03-29 03 +07 1 1987-09-27 02 +06 1988-03-27 03 +07 1 1988-09-25 02 +06 1989-03-26 03 +07 1 1989-09-24 02 +06 1990-03-25 03 +07 1 1990-09-30 02 +06 1991-03-31 02 +06 1 1991-09-29 02 +05 1992-01-19 03 +06 1992-03-29 03 +07 1 1992-09-27 02 +06 1993-03-28 03 +07 1 1993-09-26 02 +06 1994-03-27 03 +07 1 1994-09-25 02 +06 1995-03-26 03 +07 1 1995-09-24 02 +06 1996-03-31 03 +07 1 1996-10-27 02 +06 1997-03-30 03 +07 1 1997-10-26 02 +06 1998-03-29 03 +07 1 1998-10-25 02 +06 1999-03-28 03 +07 1 1999-10-31 02 +06 2000-03-26 03 +07 1 2000-10-29 02 +06 2001-03-25 03 +07 1 2001-10-28 02 +06 2002-03-31 03 +07 1 2002-10-27 02 +06 2003-03-30 03 +07 1 2003-10-26 02 +06 2004-03-28 03 +07 1 2004-10-31 02 +06 2005-03-27 03 +07 1 2005-10-30 02 +06 2006-03-26 03 +07 1 2006-10-29 02 +06 2007-03-25 03 +07 1 2007-10-28 02 +06 2008-03-30 03 +07 1 2008-10-26 02 +06 2009-03-29 03 +07 1 2009-10-25 02 +06 2010-03-28 03 +07 1 2010-10-31 02 +06 2011-03-27 03 +07 2014-10-26 01 +06 TZ="Asia/Oral" - - +032524 LMT 1924-05-01 23:34:36 +03 1930-06-21 02 +05 1981-04-01 01 +06 1 1981-10-01 00 +06 1982-04-01 00 +06 1 1982-09-30 23 +05 1983-04-01 01 +06 1 1983-09-30 23 +05 1984-04-01 01 +06 1 1984-09-30 02 +05 1985-03-31 03 +06 1 1985-09-29 02 +05 1986-03-30 03 +06 1 1986-09-28 02 +05 1987-03-29 03 +06 1 1987-09-27 02 +05 1988-03-27 03 +06 1 1988-09-25 02 +05 1989-03-26 02 +05 1 1989-09-24 02 +04 1990-03-25 03 +05 1 1990-09-30 02 +04 1991-03-31 03 +05 1 1991-09-29 02 +04 1992-01-19 03 +05 1992-03-29 02 +05 1 1992-09-27 02 +04 1993-03-28 03 +05 1 1993-09-26 02 +04 1994-03-27 03 +05 1 1994-09-25 02 +04 1995-03-26 03 +05 1 1995-09-24 02 +04 1996-03-31 03 +05 1 1996-10-27 02 +04 1997-03-30 03 +05 1 1997-10-26 02 +04 1998-03-29 03 +05 1 1998-10-25 02 +04 1999-03-28 03 +05 1 1999-10-31 02 +04 2000-03-26 03 +05 1 2000-10-29 02 +04 2001-03-25 03 +05 1 2001-10-28 02 +04 2002-03-31 03 +05 1 2002-10-27 02 +04 2003-03-30 03 +05 1 2003-10-26 02 +04 2004-03-28 03 +05 1 2004-10-31 03 +05 TZ="Asia/Pontianak" - - +071720 LMT 1908-05-01 00 +071720 PMT 1932-11-01 00:12:40 +0730 1942-01-29 01:30 +09 1945-09-22 22:30 +0730 1948-05-01 00:30 +08 1950-04-30 23:30 +0730 1964-01-01 00:30 +08 WITA 1987-12-31 23 +07 WIB TZ="Asia/Pyongyang" - - +0823 LMT 1908-04-01 00:07 +0830 KST 1912-01-01 00:30 +09 JST 1945-08-24 00 +09 KST 2015-08-14 23:30 +0830 KST 2018-05-05 00 +09 KST TZ="Asia/Qatar" - - +032608 LMT 1920-01-01 00:33:52 +04 1972-05-31 23 +03 TZ="Asia/Qostanay" - - +041428 LMT 1924-05-01 23:45:32 +04 1930-06-21 01 +05 1981-04-01 01 +06 1 1981-10-01 00 +06 1982-04-01 00 +06 1 1982-09-30 23 +05 1983-04-01 01 +06 1 1983-09-30 23 +05 1984-04-01 01 +06 1 1984-09-30 02 +05 1985-03-31 03 +06 1 1985-09-29 02 +05 1986-03-30 03 +06 1 1986-09-28 02 +05 1987-03-29 03 +06 1 1987-09-27 02 +05 1988-03-27 03 +06 1 1988-09-25 02 +05 1989-03-26 03 +06 1 1989-09-24 02 +05 1990-03-25 03 +06 1 1990-09-30 02 +05 1991-03-31 02 +05 1 1991-09-29 02 +04 1992-01-19 03 +05 1992-03-29 03 +06 1 1992-09-27 02 +05 1993-03-28 03 +06 1 1993-09-26 02 +05 1994-03-27 03 +06 1 1994-09-25 02 +05 1995-03-26 03 +06 1 1995-09-24 02 +05 1996-03-31 03 +06 1 1996-10-27 02 +05 1997-03-30 03 +06 1 1997-10-26 02 +05 1998-03-29 03 +06 1 1998-10-25 02 +05 1999-03-28 03 +06 1 1999-10-31 02 +05 2000-03-26 03 +06 1 2000-10-29 02 +05 2001-03-25 03 +06 1 2001-10-28 02 +05 2002-03-31 03 +06 1 2002-10-27 02 +05 2003-03-30 03 +06 1 2003-10-26 02 +05 2004-03-28 03 +06 1 2004-10-31 03 +06 TZ="Asia/Qyzylorda" - - +042152 LMT 1924-05-01 23:38:08 +04 1930-06-21 01 +05 1981-04-01 01 +06 1 1981-10-01 00 +06 1982-04-01 00 +06 1 1982-09-30 23 +05 1983-04-01 01 +06 1 1983-09-30 23 +05 1984-04-01 01 +06 1 1984-09-30 02 +05 1985-03-31 03 +06 1 1985-09-29 02 +05 1986-03-30 03 +06 1 1986-09-28 02 +05 1987-03-29 03 +06 1 1987-09-27 02 +05 1988-03-27 03 +06 1 1988-09-25 02 +05 1989-03-26 03 +06 1 1989-09-24 02 +05 1990-03-25 03 +06 1 1990-09-30 02 +05 1991-03-31 02 +05 1 1991-09-29 03 +05 1992-01-19 03 +06 1992-03-29 02 +06 1 1992-09-27 02 +05 1993-03-28 03 +06 1 1993-09-26 02 +05 1994-03-27 03 +06 1 1994-09-25 02 +05 1995-03-26 03 +06 1 1995-09-24 02 +05 1996-03-31 03 +06 1 1996-10-27 02 +05 1997-03-30 03 +06 1 1997-10-26 02 +05 1998-03-29 03 +06 1 1998-10-25 02 +05 1999-03-28 03 +06 1 1999-10-31 02 +05 2000-03-26 03 +06 1 2000-10-29 02 +05 2001-03-25 03 +06 1 2001-10-28 02 +05 2002-03-31 03 +06 1 2002-10-27 02 +05 2003-03-30 03 +06 1 2003-10-26 02 +05 2004-03-28 03 +06 1 2004-10-31 03 +06 2018-12-20 23 +05 TZ="Asia/Riyadh" - - +030652 LMT 1947-03-13 23:53:08 +03 TZ="Asia/Sakhalin" - - +093048 LMT 1905-08-22 23:29:12 +09 1945-08-25 02 +11 1981-04-01 01 +12 1 1981-09-30 23 +11 1982-04-01 01 +12 1 1982-09-30 23 +11 1983-04-01 01 +12 1 1983-09-30 23 +11 1984-04-01 01 +12 1 1984-09-30 02 +11 1985-03-31 03 +12 1 1985-09-29 02 +11 1986-03-30 03 +12 1 1986-09-28 02 +11 1987-03-29 03 +12 1 1987-09-27 02 +11 1988-03-27 03 +12 1 1988-09-25 02 +11 1989-03-26 03 +12 1 1989-09-24 02 +11 1990-03-25 03 +12 1 1990-09-30 02 +11 1991-03-31 02 +11 1 1991-09-29 02 +10 1992-01-19 03 +11 1992-03-29 03 +12 1 1992-09-27 02 +11 1993-03-28 03 +12 1 1993-09-26 02 +11 1994-03-27 03 +12 1 1994-09-25 02 +11 1995-03-26 03 +12 1 1995-09-24 02 +11 1996-03-31 03 +12 1 1996-10-27 02 +11 1997-03-30 02 +11 1 1997-10-26 02 +10 1998-03-29 03 +11 1 1998-10-25 02 +10 1999-03-28 03 +11 1 1999-10-31 02 +10 2000-03-26 03 +11 1 2000-10-29 02 +10 2001-03-25 03 +11 1 2001-10-28 02 +10 2002-03-31 03 +11 1 2002-10-27 02 +10 2003-03-30 03 +11 1 2003-10-26 02 +10 2004-03-28 03 +11 1 2004-10-31 02 +10 2005-03-27 03 +11 1 2005-10-30 02 +10 2006-03-26 03 +11 1 2006-10-29 02 +10 2007-03-25 03 +11 1 2007-10-28 02 +10 2008-03-30 03 +11 1 2008-10-26 02 +10 2009-03-29 03 +11 1 2009-10-25 02 +10 2010-03-28 03 +11 1 2010-10-31 02 +10 2011-03-27 03 +11 2014-10-26 01 +10 2016-03-27 03 +11 TZ="Asia/Samarkand" - - +042753 LMT 1924-05-01 23:32:07 +04 1930-06-21 01 +05 1981-04-01 01 +06 1 1981-10-01 00 +06 1982-04-01 00 +06 1 1982-09-30 23 +05 1983-04-01 01 +06 1 1983-09-30 23 +05 1984-04-01 01 +06 1 1984-09-30 02 +05 1985-03-31 03 +06 1 1985-09-29 02 +05 1986-03-30 03 +06 1 1986-09-28 02 +05 1987-03-29 03 +06 1 1987-09-27 02 +05 1988-03-27 03 +06 1 1988-09-25 02 +05 1989-03-26 03 +06 1 1989-09-24 02 +05 1990-03-25 03 +06 1 1990-09-30 02 +05 1991-03-31 03 +06 1 1991-09-29 02 +05 TZ="Asia/Seoul" - - +082752 LMT 1908-04-01 00:02:08 +0830 KST 1912-01-01 00:30 +09 JST 1945-09-08 00 +09 KST 1948-06-01 01 +10 KDT 1 1948-09-12 23 +09 KST 1949-04-03 01 +10 KDT 1 1949-09-10 23 +09 KST 1950-04-01 01 +10 KDT 1 1950-09-09 23 +09 KST 1951-05-06 01 +10 KDT 1 1951-09-08 23 +09 KST 1954-03-20 23:30 +0830 KST 1955-05-05 01 +0930 KDT 1 1955-09-08 23 +0830 KST 1956-05-20 01 +0930 KDT 1 1956-09-29 23 +0830 KST 1957-05-05 01 +0930 KDT 1 1957-09-21 23 +0830 KST 1958-05-04 01 +0930 KDT 1 1958-09-20 23 +0830 KST 1959-05-03 01 +0930 KDT 1 1959-09-19 23 +0830 KST 1960-05-01 01 +0930 KDT 1 1960-09-17 23 +0830 KST 1961-08-10 00:30 +09 KST 1987-05-10 03 +10 KDT 1 1987-10-11 02 +09 KST 1988-05-08 03 +10 KDT 1 1988-10-09 02 +09 KST TZ="Asia/Shanghai" - - +080543 LMT 1900-12-31 23:54:17 +08 CST 1940-06-01 01 +09 CDT 1 1940-10-12 23 +08 CST 1941-03-15 01 +09 CDT 1 1941-11-01 23 +08 CST 1942-01-31 01 +09 CDT 1 1945-09-01 23 +08 CST 1946-05-15 01 +09 CDT 1 1946-09-30 23 +08 CST 1947-04-15 01 +09 CDT 1 1947-10-31 23 +08 CST 1948-05-01 01 +09 CDT 1 1948-09-30 23 +08 CST 1949-05-01 01 +09 CDT 1 1949-05-27 23 +08 CST 1986-05-04 03 +09 CDT 1 1986-09-14 01 +08 CST 1987-04-12 03 +09 CDT 1 1987-09-13 01 +08 CST 1988-04-17 03 +09 CDT 1 1988-09-11 01 +08 CST 1989-04-16 03 +09 CDT 1 1989-09-17 01 +08 CST 1990-04-15 03 +09 CDT 1 1990-09-16 01 +08 CST 1991-04-14 03 +09 CDT 1 1991-09-15 01 +08 CST TZ="Asia/Singapore" - - +065525 LMT 1901-01-01 00 +065525 SMT 1905-06-01 00:04:35 +07 1933-01-01 00:20 +0720 1 1936-01-01 00 +0720 1941-09-01 00:10 +0730 1942-02-16 01:30 +09 1945-09-11 22:30 +0730 1982-01-01 00:30 +08 TZ="Asia/Srednekolymsk" - - +101452 LMT 1924-05-01 23:45:08 +10 1930-06-21 01 +11 1981-04-01 01 +12 1 1981-09-30 23 +11 1982-04-01 01 +12 1 1982-09-30 23 +11 1983-04-01 01 +12 1 1983-09-30 23 +11 1984-04-01 01 +12 1 1984-09-30 02 +11 1985-03-31 03 +12 1 1985-09-29 02 +11 1986-03-30 03 +12 1 1986-09-28 02 +11 1987-03-29 03 +12 1 1987-09-27 02 +11 1988-03-27 03 +12 1 1988-09-25 02 +11 1989-03-26 03 +12 1 1989-09-24 02 +11 1990-03-25 03 +12 1 1990-09-30 02 +11 1991-03-31 02 +11 1 1991-09-29 02 +10 1992-01-19 03 +11 1992-03-29 03 +12 1 1992-09-27 02 +11 1993-03-28 03 +12 1 1993-09-26 02 +11 1994-03-27 03 +12 1 1994-09-25 02 +11 1995-03-26 03 +12 1 1995-09-24 02 +11 1996-03-31 03 +12 1 1996-10-27 02 +11 1997-03-30 03 +12 1 1997-10-26 02 +11 1998-03-29 03 +12 1 1998-10-25 02 +11 1999-03-28 03 +12 1 1999-10-31 02 +11 2000-03-26 03 +12 1 2000-10-29 02 +11 2001-03-25 03 +12 1 2001-10-28 02 +11 2002-03-31 03 +12 1 2002-10-27 02 +11 2003-03-30 03 +12 1 2003-10-26 02 +11 2004-03-28 03 +12 1 2004-10-31 02 +11 2005-03-27 03 +12 1 2005-10-30 02 +11 2006-03-26 03 +12 1 2006-10-29 02 +11 2007-03-25 03 +12 1 2007-10-28 02 +11 2008-03-30 03 +12 1 2008-10-26 02 +11 2009-03-29 03 +12 1 2009-10-25 02 +11 2010-03-28 03 +12 1 2010-10-31 02 +11 2011-03-27 03 +12 2014-10-26 01 +11 TZ="Asia/Taipei" - - +0806 LMT 1895-12-31 23:54 +08 CST 1937-10-01 01 +09 JST 1945-09-21 00 +08 CST 1946-05-15 01 +09 CDT 1 1946-09-30 23 +08 CST 1947-04-15 01 +09 CDT 1 1947-10-31 23 +08 CST 1948-05-01 01 +09 CDT 1 1948-09-30 23 +08 CST 1949-05-01 01 +09 CDT 1 1949-09-30 23 +08 CST 1950-05-01 01 +09 CDT 1 1950-09-30 23 +08 CST 1951-05-01 01 +09 CDT 1 1951-09-30 23 +08 CST 1952-03-01 01 +09 CDT 1 1952-10-31 23 +08 CST 1953-04-01 01 +09 CDT 1 1953-10-31 23 +08 CST 1954-04-01 01 +09 CDT 1 1954-10-31 23 +08 CST 1955-04-01 01 +09 CDT 1 1955-09-30 23 +08 CST 1956-04-01 01 +09 CDT 1 1956-09-30 23 +08 CST 1957-04-01 01 +09 CDT 1 1957-09-30 23 +08 CST 1958-04-01 01 +09 CDT 1 1958-09-30 23 +08 CST 1959-04-01 01 +09 CDT 1 1959-09-30 23 +08 CST 1960-06-01 01 +09 CDT 1 1960-09-30 23 +08 CST 1961-06-01 01 +09 CDT 1 1961-09-30 23 +08 CST 1974-04-01 01 +09 CDT 1 1974-09-30 23 +08 CST 1975-04-01 01 +09 CDT 1 1975-09-30 23 +08 CST 1979-07-01 01 +09 CDT 1 1979-09-30 23 +08 CST TZ="Asia/Tashkent" - - +043711 LMT 1924-05-02 00:22:49 +05 1930-06-21 01 +06 1981-04-01 01 +07 1 1981-09-30 23 +06 1982-04-01 01 +07 1 1982-09-30 23 +06 1983-04-01 01 +07 1 1983-09-30 23 +06 1984-04-01 01 +07 1 1984-09-30 02 +06 1985-03-31 03 +07 1 1985-09-29 02 +06 1986-03-30 03 +07 1 1986-09-28 02 +06 1987-03-29 03 +07 1 1987-09-27 02 +06 1988-03-27 03 +07 1 1988-09-25 02 +06 1989-03-26 03 +07 1 1989-09-24 02 +06 1990-03-25 03 +07 1 1990-09-30 02 +06 1991-03-31 02 +06 1 1991-09-29 02 +05 TZ="Asia/Tbilisi" - - +025911 LMT 1880-01-01 00 +025911 TBMT 1924-05-02 00:00:49 +03 1957-03-01 01 +04 1981-04-01 01 +05 1 1981-09-30 23 +04 1982-04-01 01 +05 1 1982-09-30 23 +04 1983-04-01 01 +05 1 1983-09-30 23 +04 1984-04-01 01 +05 1 1984-09-30 02 +04 1985-03-31 03 +05 1 1985-09-29 02 +04 1986-03-30 03 +05 1 1986-09-28 02 +04 1987-03-29 03 +05 1 1987-09-27 02 +04 1988-03-27 03 +05 1 1988-09-25 02 +04 1989-03-26 03 +05 1 1989-09-24 02 +04 1990-03-25 03 +05 1 1990-09-30 02 +04 1991-03-31 02 +04 1 1991-09-29 02 +03 1992-03-29 01 +04 1 1992-09-26 23 +03 1993-03-28 01 +04 1 1993-09-25 23 +03 1994-03-27 01 +04 1 1994-09-25 00 +04 1995-03-26 01 +05 1 1995-09-23 23 +04 1996-03-31 01 +05 1 1997-10-25 23 +04 1998-03-29 01 +05 1 1998-10-24 23 +04 1999-03-28 01 +05 1 1999-10-30 23 +04 2000-03-26 01 +05 1 2000-10-28 23 +04 2001-03-25 01 +05 1 2001-10-27 23 +04 2002-03-31 01 +05 1 2002-10-26 23 +04 2003-03-30 01 +05 1 2003-10-25 23 +04 2004-03-28 01 +05 1 2004-06-26 23 +04 1 2004-10-31 02 +03 2005-03-27 03 +04 TZ="Asia/Tehran" - - +032544 LMT 1916-01-01 00 +032544 TMT 1946-01-01 00:04:16 +0330 1977-11-01 00:30 +04 1978-03-21 01 +05 1 1978-10-20 23 +04 1978-12-31 23:30 +0330 1979-03-21 01 +0430 1 1979-09-18 23 +0330 1980-03-21 01 +0430 1 1980-09-22 23 +0330 1991-05-03 01 +0430 1 1991-09-21 23 +0330 1992-03-22 01 +0430 1 1992-09-21 23 +0330 1993-03-22 01 +0430 1 1993-09-21 23 +0330 1994-03-22 01 +0430 1 1994-09-21 23 +0330 1995-03-22 01 +0430 1 1995-09-21 23 +0330 1996-03-21 01 +0430 1 1996-09-20 23 +0330 1997-03-22 01 +0430 1 1997-09-21 23 +0330 1998-03-22 01 +0430 1 1998-09-21 23 +0330 1999-03-22 01 +0430 1 1999-09-21 23 +0330 2000-03-21 01 +0430 1 2000-09-20 23 +0330 2001-03-22 01 +0430 1 2001-09-21 23 +0330 2002-03-22 01 +0430 1 2002-09-21 23 +0330 2003-03-22 01 +0430 1 2003-09-21 23 +0330 2004-03-21 01 +0430 1 2004-09-20 23 +0330 2005-03-22 01 +0430 1 2005-09-21 23 +0330 2008-03-21 01 +0430 1 2008-09-20 23 +0330 2009-03-22 01 +0430 1 2009-09-21 23 +0330 2010-03-22 01 +0430 1 2010-09-21 23 +0330 2011-03-22 01 +0430 1 2011-09-21 23 +0330 2012-03-21 01 +0430 1 2012-09-20 23 +0330 2013-03-22 01 +0430 1 2013-09-21 23 +0330 2014-03-22 01 +0430 1 2014-09-21 23 +0330 2015-03-22 01 +0430 1 2015-09-21 23 +0330 2016-03-21 01 +0430 1 2016-09-20 23 +0330 2017-03-22 01 +0430 1 2017-09-21 23 +0330 2018-03-22 01 +0430 1 2018-09-21 23 +0330 2019-03-22 01 +0430 1 2019-09-21 23 +0330 2020-03-21 01 +0430 1 2020-09-20 23 +0330 2021-03-22 01 +0430 1 2021-09-21 23 +0330 2022-03-22 01 +0430 1 2022-09-21 23 +0330 2023-03-22 01 +0430 1 2023-09-21 23 +0330 2024-03-21 01 +0430 1 2024-09-20 23 +0330 2025-03-22 01 +0430 1 2025-09-21 23 +0330 2026-03-22 01 +0430 1 2026-09-21 23 +0330 2027-03-22 01 +0430 1 2027-09-21 23 +0330 2028-03-21 01 +0430 1 2028-09-20 23 +0330 2029-03-21 01 +0430 1 2029-09-20 23 +0330 2030-03-22 01 +0430 1 2030-09-21 23 +0330 2031-03-22 01 +0430 1 2031-09-21 23 +0330 2032-03-21 01 +0430 1 2032-09-20 23 +0330 2033-03-21 01 +0430 1 2033-09-20 23 +0330 2034-03-22 01 +0430 1 2034-09-21 23 +0330 2035-03-22 01 +0430 1 2035-09-21 23 +0330 2036-03-21 01 +0430 1 2036-09-20 23 +0330 2037-03-21 01 +0430 1 2037-09-20 23 +0330 2038-03-22 01 +0430 1 2038-09-21 23 +0330 2039-03-22 01 +0430 1 2039-09-21 23 +0330 2040-03-21 01 +0430 1 2040-09-20 23 +0330 2041-03-21 01 +0430 1 2041-09-20 23 +0330 2042-03-22 01 +0430 1 2042-09-21 23 +0330 2043-03-22 01 +0430 1 2043-09-21 23 +0330 2044-03-21 01 +0430 1 2044-09-20 23 +0330 2045-03-21 01 +0430 1 2045-09-20 23 +0330 2046-03-22 01 +0430 1 2046-09-21 23 +0330 2047-03-22 01 +0430 1 2047-09-21 23 +0330 2048-03-21 01 +0430 1 2048-09-20 23 +0330 2049-03-21 01 +0430 1 2049-09-20 23 +0330 TZ="Asia/Thimphu" - - +055836 LMT 1947-08-14 23:31:24 +0530 1987-10-01 00:30 +06 TZ="Asia/Tokyo" - - +091859 LMT 1888-01-01 00 +09 JST 1948-05-02 01 +10 JDT 1 1948-09-12 00 +09 JST 1949-04-03 01 +10 JDT 1 1949-09-11 00 +09 JST 1950-05-07 01 +10 JDT 1 1950-09-10 00 +09 JST 1951-05-06 01 +10 JDT 1 1951-09-09 00 +09 JST TZ="Asia/Tomsk" - - +053951 LMT 1919-12-22 00:20:09 +06 1930-06-21 01 +07 1981-04-01 01 +08 1 1981-09-30 23 +07 1982-04-01 01 +08 1 1982-09-30 23 +07 1983-04-01 01 +08 1 1983-09-30 23 +07 1984-04-01 01 +08 1 1984-09-30 02 +07 1985-03-31 03 +08 1 1985-09-29 02 +07 1986-03-30 03 +08 1 1986-09-28 02 +07 1987-03-29 03 +08 1 1987-09-27 02 +07 1988-03-27 03 +08 1 1988-09-25 02 +07 1989-03-26 03 +08 1 1989-09-24 02 +07 1990-03-25 03 +08 1 1990-09-30 02 +07 1991-03-31 02 +07 1 1991-09-29 02 +06 1992-01-19 03 +07 1992-03-29 03 +08 1 1992-09-27 02 +07 1993-03-28 03 +08 1 1993-09-26 02 +07 1994-03-27 03 +08 1 1994-09-25 02 +07 1995-03-26 03 +08 1 1995-09-24 02 +07 1996-03-31 03 +08 1 1996-10-27 02 +07 1997-03-30 03 +08 1 1997-10-26 02 +07 1998-03-29 03 +08 1 1998-10-25 02 +07 1999-03-28 03 +08 1 1999-10-31 02 +07 2000-03-26 03 +08 1 2000-10-29 02 +07 2001-03-25 03 +08 1 2001-10-28 02 +07 2002-03-31 03 +08 1 2002-05-01 02 +07 1 2002-10-27 02 +06 2003-03-30 03 +07 1 2003-10-26 02 +06 2004-03-28 03 +07 1 2004-10-31 02 +06 2005-03-27 03 +07 1 2005-10-30 02 +06 2006-03-26 03 +07 1 2006-10-29 02 +06 2007-03-25 03 +07 1 2007-10-28 02 +06 2008-03-30 03 +07 1 2008-10-26 02 +06 2009-03-29 03 +07 1 2009-10-25 02 +06 2010-03-28 03 +07 1 2010-10-31 02 +06 2011-03-27 03 +07 2014-10-26 01 +06 2016-05-29 03 +07 TZ="Asia/Ulaanbaatar" - - +070732 LMT 1905-07-31 23:52:28 +07 1978-01-01 01 +08 1983-04-01 01 +09 1 1983-09-30 23 +08 1984-04-01 01 +09 1 1984-09-29 23 +08 1985-03-31 01 +09 1 1985-09-28 23 +08 1986-03-30 01 +09 1 1986-09-27 23 +08 1987-03-29 01 +09 1 1987-09-26 23 +08 1988-03-27 01 +09 1 1988-09-24 23 +08 1989-03-26 01 +09 1 1989-09-23 23 +08 1990-03-25 01 +09 1 1990-09-29 23 +08 1991-03-31 01 +09 1 1991-09-28 23 +08 1992-03-29 01 +09 1 1992-09-26 23 +08 1993-03-28 01 +09 1 1993-09-25 23 +08 1994-03-27 01 +09 1 1994-09-24 23 +08 1995-03-26 01 +09 1 1995-09-23 23 +08 1996-03-31 01 +09 1 1996-09-28 23 +08 1997-03-30 01 +09 1 1997-09-27 23 +08 1998-03-29 01 +09 1 1998-09-26 23 +08 2001-04-28 03 +09 1 2001-09-29 01 +08 2002-03-30 03 +09 1 2002-09-28 01 +08 2003-03-29 03 +09 1 2003-09-27 01 +08 2004-03-27 03 +09 1 2004-09-25 01 +08 2005-03-26 03 +09 1 2005-09-24 01 +08 2006-03-25 03 +09 1 2006-09-30 01 +08 2015-03-28 03 +09 1 2015-09-25 23 +08 2016-03-26 03 +09 1 2016-09-23 23 +08 TZ="Asia/Urumqi" - - +055020 LMT 1928-01-01 00:09:40 +06 TZ="Asia/Ust-Nera" - - +093254 LMT 1919-12-14 22:27:06 +08 1930-06-21 01 +09 1981-04-01 03 +12 1 1981-09-30 23 +11 1982-04-01 01 +12 1 1982-09-30 23 +11 1983-04-01 01 +12 1 1983-09-30 23 +11 1984-04-01 01 +12 1 1984-09-30 02 +11 1985-03-31 03 +12 1 1985-09-29 02 +11 1986-03-30 03 +12 1 1986-09-28 02 +11 1987-03-29 03 +12 1 1987-09-27 02 +11 1988-03-27 03 +12 1 1988-09-25 02 +11 1989-03-26 03 +12 1 1989-09-24 02 +11 1990-03-25 03 +12 1 1990-09-30 02 +11 1991-03-31 02 +11 1 1991-09-29 02 +10 1992-01-19 03 +11 1992-03-29 03 +12 1 1992-09-27 02 +11 1993-03-28 03 +12 1 1993-09-26 02 +11 1994-03-27 03 +12 1 1994-09-25 02 +11 1995-03-26 03 +12 1 1995-09-24 02 +11 1996-03-31 03 +12 1 1996-10-27 02 +11 1997-03-30 03 +12 1 1997-10-26 02 +11 1998-03-29 03 +12 1 1998-10-25 02 +11 1999-03-28 03 +12 1 1999-10-31 02 +11 2000-03-26 03 +12 1 2000-10-29 02 +11 2001-03-25 03 +12 1 2001-10-28 02 +11 2002-03-31 03 +12 1 2002-10-27 02 +11 2003-03-30 03 +12 1 2003-10-26 02 +11 2004-03-28 03 +12 1 2004-10-31 02 +11 2005-03-27 03 +12 1 2005-10-30 02 +11 2006-03-26 03 +12 1 2006-10-29 02 +11 2007-03-25 03 +12 1 2007-10-28 02 +11 2008-03-30 03 +12 1 2008-10-26 02 +11 2009-03-29 03 +12 1 2009-10-25 02 +11 2010-03-28 03 +12 1 2010-10-31 02 +11 2011-03-27 03 +12 2011-09-12 23 +11 2014-10-26 01 +10 TZ="Asia/Vladivostok" - - +084731 LMT 1922-11-15 00:12:29 +09 1930-06-21 01 +10 1981-04-01 01 +11 1 1981-09-30 23 +10 1982-04-01 01 +11 1 1982-09-30 23 +10 1983-04-01 01 +11 1 1983-09-30 23 +10 1984-04-01 01 +11 1 1984-09-30 02 +10 1985-03-31 03 +11 1 1985-09-29 02 +10 1986-03-30 03 +11 1 1986-09-28 02 +10 1987-03-29 03 +11 1 1987-09-27 02 +10 1988-03-27 03 +11 1 1988-09-25 02 +10 1989-03-26 03 +11 1 1989-09-24 02 +10 1990-03-25 03 +11 1 1990-09-30 02 +10 1991-03-31 02 +10 1 1991-09-29 02 +09 1992-01-19 03 +10 1992-03-29 03 +11 1 1992-09-27 02 +10 1993-03-28 03 +11 1 1993-09-26 02 +10 1994-03-27 03 +11 1 1994-09-25 02 +10 1995-03-26 03 +11 1 1995-09-24 02 +10 1996-03-31 03 +11 1 1996-10-27 02 +10 1997-03-30 03 +11 1 1997-10-26 02 +10 1998-03-29 03 +11 1 1998-10-25 02 +10 1999-03-28 03 +11 1 1999-10-31 02 +10 2000-03-26 03 +11 1 2000-10-29 02 +10 2001-03-25 03 +11 1 2001-10-28 02 +10 2002-03-31 03 +11 1 2002-10-27 02 +10 2003-03-30 03 +11 1 2003-10-26 02 +10 2004-03-28 03 +11 1 2004-10-31 02 +10 2005-03-27 03 +11 1 2005-10-30 02 +10 2006-03-26 03 +11 1 2006-10-29 02 +10 2007-03-25 03 +11 1 2007-10-28 02 +10 2008-03-30 03 +11 1 2008-10-26 02 +10 2009-03-29 03 +11 1 2009-10-25 02 +10 2010-03-28 03 +11 1 2010-10-31 02 +10 2011-03-27 03 +11 2014-10-26 01 +10 TZ="Asia/Yakutsk" - - +083858 LMT 1919-12-14 23:21:02 +08 1930-06-21 01 +09 1981-04-01 01 +10 1 1981-09-30 23 +09 1982-04-01 01 +10 1 1982-09-30 23 +09 1983-04-01 01 +10 1 1983-09-30 23 +09 1984-04-01 01 +10 1 1984-09-30 02 +09 1985-03-31 03 +10 1 1985-09-29 02 +09 1986-03-30 03 +10 1 1986-09-28 02 +09 1987-03-29 03 +10 1 1987-09-27 02 +09 1988-03-27 03 +10 1 1988-09-25 02 +09 1989-03-26 03 +10 1 1989-09-24 02 +09 1990-03-25 03 +10 1 1990-09-30 02 +09 1991-03-31 02 +09 1 1991-09-29 02 +08 1992-01-19 03 +09 1992-03-29 03 +10 1 1992-09-27 02 +09 1993-03-28 03 +10 1 1993-09-26 02 +09 1994-03-27 03 +10 1 1994-09-25 02 +09 1995-03-26 03 +10 1 1995-09-24 02 +09 1996-03-31 03 +10 1 1996-10-27 02 +09 1997-03-30 03 +10 1 1997-10-26 02 +09 1998-03-29 03 +10 1 1998-10-25 02 +09 1999-03-28 03 +10 1 1999-10-31 02 +09 2000-03-26 03 +10 1 2000-10-29 02 +09 2001-03-25 03 +10 1 2001-10-28 02 +09 2002-03-31 03 +10 1 2002-10-27 02 +09 2003-03-30 03 +10 1 2003-10-26 02 +09 2004-03-28 03 +10 1 2004-10-31 02 +09 2005-03-27 03 +10 1 2005-10-30 02 +09 2006-03-26 03 +10 1 2006-10-29 02 +09 2007-03-25 03 +10 1 2007-10-28 02 +09 2008-03-30 03 +10 1 2008-10-26 02 +09 2009-03-29 03 +10 1 2009-10-25 02 +09 2010-03-28 03 +10 1 2010-10-31 02 +09 2011-03-27 03 +10 2014-10-26 01 +09 TZ="Asia/Yangon" - - +062447 LMT 1880-01-01 00 +062447 RMT 1920-01-01 00:05:13 +0630 1942-05-01 02:30 +09 1945-05-02 21:30 +0630 TZ="Asia/Yekaterinburg" - - +040233 LMT 1916-07-02 23:42:32 +034505 PMT 1919-07-15 04:14:55 +04 1930-06-21 01 +05 1981-04-01 01 +06 1 1981-09-30 23 +05 1982-04-01 01 +06 1 1982-09-30 23 +05 1983-04-01 01 +06 1 1983-09-30 23 +05 1984-04-01 01 +06 1 1984-09-30 02 +05 1985-03-31 03 +06 1 1985-09-29 02 +05 1986-03-30 03 +06 1 1986-09-28 02 +05 1987-03-29 03 +06 1 1987-09-27 02 +05 1988-03-27 03 +06 1 1988-09-25 02 +05 1989-03-26 03 +06 1 1989-09-24 02 +05 1990-03-25 03 +06 1 1990-09-30 02 +05 1991-03-31 02 +05 1 1991-09-29 02 +04 1992-01-19 03 +05 1992-03-29 03 +06 1 1992-09-27 02 +05 1993-03-28 03 +06 1 1993-09-26 02 +05 1994-03-27 03 +06 1 1994-09-25 02 +05 1995-03-26 03 +06 1 1995-09-24 02 +05 1996-03-31 03 +06 1 1996-10-27 02 +05 1997-03-30 03 +06 1 1997-10-26 02 +05 1998-03-29 03 +06 1 1998-10-25 02 +05 1999-03-28 03 +06 1 1999-10-31 02 +05 2000-03-26 03 +06 1 2000-10-29 02 +05 2001-03-25 03 +06 1 2001-10-28 02 +05 2002-03-31 03 +06 1 2002-10-27 02 +05 2003-03-30 03 +06 1 2003-10-26 02 +05 2004-03-28 03 +06 1 2004-10-31 02 +05 2005-03-27 03 +06 1 2005-10-30 02 +05 2006-03-26 03 +06 1 2006-10-29 02 +05 2007-03-25 03 +06 1 2007-10-28 02 +05 2008-03-30 03 +06 1 2008-10-26 02 +05 2009-03-29 03 +06 1 2009-10-25 02 +05 2010-03-28 03 +06 1 2010-10-31 02 +05 2011-03-27 03 +06 2014-10-26 01 +05 TZ="Asia/Yerevan" - - +0258 LMT 1924-05-02 00:02 +03 1957-03-01 01 +04 1981-04-01 01 +05 1 1981-09-30 23 +04 1982-04-01 01 +05 1 1982-09-30 23 +04 1983-04-01 01 +05 1 1983-09-30 23 +04 1984-04-01 01 +05 1 1984-09-30 02 +04 1985-03-31 03 +05 1 1985-09-29 02 +04 1986-03-30 03 +05 1 1986-09-28 02 +04 1987-03-29 03 +05 1 1987-09-27 02 +04 1988-03-27 03 +05 1 1988-09-25 02 +04 1989-03-26 03 +05 1 1989-09-24 02 +04 1990-03-25 03 +05 1 1990-09-30 02 +04 1991-03-31 02 +04 1 1991-09-29 02 +03 1992-03-29 03 +04 1 1992-09-27 02 +03 1993-03-28 03 +04 1 1993-09-26 02 +03 1994-03-27 03 +04 1 1994-09-25 02 +03 1995-03-26 03 +04 1 1995-09-24 03 +04 1997-03-30 03 +05 1 1997-10-26 02 +04 1998-03-29 03 +05 1 1998-10-25 02 +04 1999-03-28 03 +05 1 1999-10-31 02 +04 2000-03-26 03 +05 1 2000-10-29 02 +04 2001-03-25 03 +05 1 2001-10-28 02 +04 2002-03-31 03 +05 1 2002-10-27 02 +04 2003-03-30 03 +05 1 2003-10-26 02 +04 2004-03-28 03 +05 1 2004-10-31 02 +04 2005-03-27 03 +05 1 2005-10-30 02 +04 2006-03-26 03 +05 1 2006-10-29 02 +04 2007-03-25 03 +05 1 2007-10-28 02 +04 2008-03-30 03 +05 1 2008-10-26 02 +04 2009-03-29 03 +05 1 2009-10-25 02 +04 2010-03-28 03 +05 1 2010-10-31 02 +04 2011-03-27 03 +05 1 2011-10-30 02 +04 TZ="Atlantic/Azores" - - -014240 LMT 1883-12-31 23:48:08 -015432 HMT 1912-01-01 00 -02 1916-06-18 00 -01 1 1916-11-01 00 -02 1917-03-01 00 -01 1 1917-10-14 23 -02 1918-03-02 00 -01 1 1918-10-14 23 -02 1919-03-01 00 -01 1 1919-10-14 23 -02 1920-03-01 00 -01 1 1920-10-14 23 -02 1921-03-01 00 -01 1 1921-10-14 23 -02 1924-04-17 00 -01 1 1924-10-14 23 -02 1926-04-18 00 -01 1 1926-10-02 23 -02 1927-04-10 00 -01 1 1927-10-01 23 -02 1928-04-15 00 -01 1 1928-10-06 23 -02 1929-04-21 00 -01 1 1929-10-05 23 -02 1931-04-19 00 -01 1 1931-10-03 23 -02 1932-04-03 00 -01 1 1932-10-01 23 -02 1934-04-08 00 -01 1 1934-10-06 23 -02 1935-03-31 00 -01 1 1935-10-05 23 -02 1936-04-19 00 -01 1 1936-10-03 23 -02 1937-04-04 00 -01 1 1937-10-02 23 -02 1938-03-27 00 -01 1 1938-10-01 23 -02 1939-04-16 00 -01 1 1939-11-18 23 -02 1940-02-25 00 -01 1 1940-10-05 23 -02 1941-04-06 00 -01 1 1941-10-05 23 -02 1942-03-15 00 -01 1 1942-04-26 00 +00 1 1942-08-15 23 -01 1 1942-10-24 23 -02 1943-03-14 00 -01 1 1943-04-18 00 +00 1 1943-08-28 23 -01 1 1943-10-30 23 -02 1944-03-12 00 -01 1 1944-04-23 00 +00 1 1944-08-26 23 -01 1 1944-10-28 23 -02 1945-03-11 00 -01 1 1945-04-22 00 +00 1 1945-08-25 23 -01 1 1945-10-27 23 -02 1946-04-07 00 -01 1 1946-10-05 23 -02 1947-04-06 03 -01 1 1947-10-05 02 -02 1948-04-04 03 -01 1 1948-10-03 02 -02 1949-04-03 03 -01 1 1949-10-02 02 -02 1951-04-01 03 -01 1 1951-10-07 02 -02 1952-04-06 03 -01 1 1952-10-05 02 -02 1953-04-05 03 -01 1 1953-10-04 02 -02 1954-04-04 03 -01 1 1954-10-03 02 -02 1955-04-03 03 -01 1 1955-10-02 02 -02 1956-04-01 03 -01 1 1956-10-07 02 -02 1957-04-07 03 -01 1 1957-10-06 02 -02 1958-04-06 03 -01 1 1958-10-05 02 -02 1959-04-05 03 -01 1 1959-10-04 02 -02 1960-04-03 03 -01 1 1960-10-02 02 -02 1961-04-02 03 -01 1 1961-10-01 02 -02 1962-04-01 03 -01 1 1962-10-07 02 -02 1963-04-07 03 -01 1 1963-10-06 02 -02 1964-04-05 03 -01 1 1964-10-04 02 -02 1965-04-04 03 -01 1 1965-10-03 02 -02 1966-04-03 03 -01 1977-03-27 01 +00 1 1977-09-25 00 -01 1978-04-02 01 +00 1 1978-10-01 00 -01 1979-04-01 01 +00 1 1979-09-30 01 -01 1980-03-30 01 +00 1 1980-09-28 01 -01 1981-03-29 02 +00 1 1981-09-27 01 -01 1982-03-28 02 +00 1 1982-09-26 01 -01 1983-03-27 03 +00 1 1983-09-25 01 -01 1984-03-25 02 +00 1 1984-09-30 01 -01 1985-03-31 02 +00 1 1985-09-29 01 -01 1986-03-30 02 +00 1 1986-09-28 01 -01 1987-03-29 02 +00 1 1987-09-27 01 -01 1988-03-27 02 +00 1 1988-09-25 01 -01 1989-03-26 02 +00 1 1989-09-24 01 -01 1990-03-25 02 +00 1 1990-09-30 01 -01 1991-03-31 02 +00 1 1991-09-29 01 -01 1992-03-29 02 +00 1 1992-09-27 02 +00 WET 1993-03-28 01 +00 1 1993-09-26 00 -01 1994-03-27 01 +00 1 1994-09-25 00 -01 1995-03-26 01 +00 1 1995-09-24 00 -01 1996-03-31 01 +00 1 1996-10-27 00 -01 1997-03-30 01 +00 1 1997-10-26 00 -01 1998-03-29 01 +00 1 1998-10-25 00 -01 1999-03-28 01 +00 1 1999-10-31 00 -01 2000-03-26 01 +00 1 2000-10-29 00 -01 2001-03-25 01 +00 1 2001-10-28 00 -01 2002-03-31 01 +00 1 2002-10-27 00 -01 2003-03-30 01 +00 1 2003-10-26 00 -01 2004-03-28 01 +00 1 2004-10-31 00 -01 2005-03-27 01 +00 1 2005-10-30 00 -01 2006-03-26 01 +00 1 2006-10-29 00 -01 2007-03-25 01 +00 1 2007-10-28 00 -01 2008-03-30 01 +00 1 2008-10-26 00 -01 2009-03-29 01 +00 1 2009-10-25 00 -01 2010-03-28 01 +00 1 2010-10-31 00 -01 2011-03-27 01 +00 1 2011-10-30 00 -01 2012-03-25 01 +00 1 2012-10-28 00 -01 2013-03-31 01 +00 1 2013-10-27 00 -01 2014-03-30 01 +00 1 2014-10-26 00 -01 2015-03-29 01 +00 1 2015-10-25 00 -01 2016-03-27 01 +00 1 2016-10-30 00 -01 2017-03-26 01 +00 1 2017-10-29 00 -01 2018-03-25 01 +00 1 2018-10-28 00 -01 2019-03-31 01 +00 1 2019-10-27 00 -01 2020-03-29 01 +00 1 2020-10-25 00 -01 2021-03-28 01 +00 1 2021-10-31 00 -01 2022-03-27 01 +00 1 2022-10-30 00 -01 2023-03-26 01 +00 1 2023-10-29 00 -01 2024-03-31 01 +00 1 2024-10-27 00 -01 2025-03-30 01 +00 1 2025-10-26 00 -01 2026-03-29 01 +00 1 2026-10-25 00 -01 2027-03-28 01 +00 1 2027-10-31 00 -01 2028-03-26 01 +00 1 2028-10-29 00 -01 2029-03-25 01 +00 1 2029-10-28 00 -01 2030-03-31 01 +00 1 2030-10-27 00 -01 2031-03-30 01 +00 1 2031-10-26 00 -01 2032-03-28 01 +00 1 2032-10-31 00 -01 2033-03-27 01 +00 1 2033-10-30 00 -01 2034-03-26 01 +00 1 2034-10-29 00 -01 2035-03-25 01 +00 1 2035-10-28 00 -01 2036-03-30 01 +00 1 2036-10-26 00 -01 2037-03-29 01 +00 1 2037-10-25 00 -01 2038-03-28 01 +00 1 2038-10-31 00 -01 2039-03-27 01 +00 1 2039-10-30 00 -01 2040-03-25 01 +00 1 2040-10-28 00 -01 2041-03-31 01 +00 1 2041-10-27 00 -01 2042-03-30 01 +00 1 2042-10-26 00 -01 2043-03-29 01 +00 1 2043-10-25 00 -01 2044-03-27 01 +00 1 2044-10-30 00 -01 2045-03-26 01 +00 1 2045-10-29 00 -01 2046-03-25 01 +00 1 2046-10-28 00 -01 2047-03-31 01 +00 1 2047-10-27 00 -01 2048-03-29 01 +00 1 2048-10-25 00 -01 2049-03-28 01 +00 1 2049-10-31 00 -01 TZ="Atlantic/Bermuda" - - -041918 LMT 1930-01-01 02:19:18 -04 AST 1974-04-28 03 -03 ADT 1 1974-10-27 01 -04 AST 1975-04-27 03 -03 ADT 1 1975-10-26 01 -04 AST 1976-04-25 03 -03 ADT 1 1976-10-31 01 -04 AST 1977-04-24 03 -03 ADT 1 1977-10-30 01 -04 AST 1978-04-30 03 -03 ADT 1 1978-10-29 01 -04 AST 1979-04-29 03 -03 ADT 1 1979-10-28 01 -04 AST 1980-04-27 03 -03 ADT 1 1980-10-26 01 -04 AST 1981-04-26 03 -03 ADT 1 1981-10-25 01 -04 AST 1982-04-25 03 -03 ADT 1 1982-10-31 01 -04 AST 1983-04-24 03 -03 ADT 1 1983-10-30 01 -04 AST 1984-04-29 03 -03 ADT 1 1984-10-28 01 -04 AST 1985-04-28 03 -03 ADT 1 1985-10-27 01 -04 AST 1986-04-27 03 -03 ADT 1 1986-10-26 01 -04 AST 1987-04-05 03 -03 ADT 1 1987-10-25 01 -04 AST 1988-04-03 03 -03 ADT 1 1988-10-30 01 -04 AST 1989-04-02 03 -03 ADT 1 1989-10-29 01 -04 AST 1990-04-01 03 -03 ADT 1 1990-10-28 01 -04 AST 1991-04-07 03 -03 ADT 1 1991-10-27 01 -04 AST 1992-04-05 03 -03 ADT 1 1992-10-25 01 -04 AST 1993-04-04 03 -03 ADT 1 1993-10-31 01 -04 AST 1994-04-03 03 -03 ADT 1 1994-10-30 01 -04 AST 1995-04-02 03 -03 ADT 1 1995-10-29 01 -04 AST 1996-04-07 03 -03 ADT 1 1996-10-27 01 -04 AST 1997-04-06 03 -03 ADT 1 1997-10-26 01 -04 AST 1998-04-05 03 -03 ADT 1 1998-10-25 01 -04 AST 1999-04-04 03 -03 ADT 1 1999-10-31 01 -04 AST 2000-04-02 03 -03 ADT 1 2000-10-29 01 -04 AST 2001-04-01 03 -03 ADT 1 2001-10-28 01 -04 AST 2002-04-07 03 -03 ADT 1 2002-10-27 01 -04 AST 2003-04-06 03 -03 ADT 1 2003-10-26 01 -04 AST 2004-04-04 03 -03 ADT 1 2004-10-31 01 -04 AST 2005-04-03 03 -03 ADT 1 2005-10-30 01 -04 AST 2006-04-02 03 -03 ADT 1 2006-10-29 01 -04 AST 2007-03-11 03 -03 ADT 1 2007-11-04 01 -04 AST 2008-03-09 03 -03 ADT 1 2008-11-02 01 -04 AST 2009-03-08 03 -03 ADT 1 2009-11-01 01 -04 AST 2010-03-14 03 -03 ADT 1 2010-11-07 01 -04 AST 2011-03-13 03 -03 ADT 1 2011-11-06 01 -04 AST 2012-03-11 03 -03 ADT 1 2012-11-04 01 -04 AST 2013-03-10 03 -03 ADT 1 2013-11-03 01 -04 AST 2014-03-09 03 -03 ADT 1 2014-11-02 01 -04 AST 2015-03-08 03 -03 ADT 1 2015-11-01 01 -04 AST 2016-03-13 03 -03 ADT 1 2016-11-06 01 -04 AST 2017-03-12 03 -03 ADT 1 2017-11-05 01 -04 AST 2018-03-11 03 -03 ADT 1 2018-11-04 01 -04 AST 2019-03-10 03 -03 ADT 1 2019-11-03 01 -04 AST 2020-03-08 03 -03 ADT 1 2020-11-01 01 -04 AST 2021-03-14 03 -03 ADT 1 2021-11-07 01 -04 AST 2022-03-13 03 -03 ADT 1 2022-11-06 01 -04 AST 2023-03-12 03 -03 ADT 1 2023-11-05 01 -04 AST 2024-03-10 03 -03 ADT 1 2024-11-03 01 -04 AST 2025-03-09 03 -03 ADT 1 2025-11-02 01 -04 AST 2026-03-08 03 -03 ADT 1 2026-11-01 01 -04 AST 2027-03-14 03 -03 ADT 1 2027-11-07 01 -04 AST 2028-03-12 03 -03 ADT 1 2028-11-05 01 -04 AST 2029-03-11 03 -03 ADT 1 2029-11-04 01 -04 AST 2030-03-10 03 -03 ADT 1 2030-11-03 01 -04 AST 2031-03-09 03 -03 ADT 1 2031-11-02 01 -04 AST 2032-03-14 03 -03 ADT 1 2032-11-07 01 -04 AST 2033-03-13 03 -03 ADT 1 2033-11-06 01 -04 AST 2034-03-12 03 -03 ADT 1 2034-11-05 01 -04 AST 2035-03-11 03 -03 ADT 1 2035-11-04 01 -04 AST 2036-03-09 03 -03 ADT 1 2036-11-02 01 -04 AST 2037-03-08 03 -03 ADT 1 2037-11-01 01 -04 AST 2038-03-14 03 -03 ADT 1 2038-11-07 01 -04 AST 2039-03-13 03 -03 ADT 1 2039-11-06 01 -04 AST 2040-03-11 03 -03 ADT 1 2040-11-04 01 -04 AST 2041-03-10 03 -03 ADT 1 2041-11-03 01 -04 AST 2042-03-09 03 -03 ADT 1 2042-11-02 01 -04 AST 2043-03-08 03 -03 ADT 1 2043-11-01 01 -04 AST 2044-03-13 03 -03 ADT 1 2044-11-06 01 -04 AST 2045-03-12 03 -03 ADT 1 2045-11-05 01 -04 AST 2046-03-11 03 -03 ADT 1 2046-11-04 01 -04 AST 2047-03-10 03 -03 ADT 1 2047-11-03 01 -04 AST 2048-03-08 03 -03 ADT 1 2048-11-01 01 -04 AST 2049-03-14 03 -03 ADT 1 2049-11-07 01 -04 AST TZ="Atlantic/Canary" - - -010136 LMT 1922-03-01 00:01:36 -01 1946-09-30 02 +00 WET 1980-04-06 01 +01 WEST 1 1980-09-28 01 +00 WET 1981-03-29 02 +01 WEST 1 1981-09-27 01 +00 WET 1982-03-28 02 +01 WEST 1 1982-09-26 01 +00 WET 1983-03-27 02 +01 WEST 1 1983-09-25 01 +00 WET 1984-03-25 02 +01 WEST 1 1984-09-30 01 +00 WET 1985-03-31 02 +01 WEST 1 1985-09-29 01 +00 WET 1986-03-30 02 +01 WEST 1 1986-09-28 01 +00 WET 1987-03-29 02 +01 WEST 1 1987-09-27 01 +00 WET 1988-03-27 02 +01 WEST 1 1988-09-25 01 +00 WET 1989-03-26 02 +01 WEST 1 1989-09-24 01 +00 WET 1990-03-25 02 +01 WEST 1 1990-09-30 01 +00 WET 1991-03-31 02 +01 WEST 1 1991-09-29 01 +00 WET 1992-03-29 02 +01 WEST 1 1992-09-27 01 +00 WET 1993-03-28 02 +01 WEST 1 1993-09-26 01 +00 WET 1994-03-27 02 +01 WEST 1 1994-09-25 01 +00 WET 1995-03-26 02 +01 WEST 1 1995-09-24 01 +00 WET 1996-03-31 02 +01 WEST 1 1996-10-27 01 +00 WET 1997-03-30 02 +01 WEST 1 1997-10-26 01 +00 WET 1998-03-29 02 +01 WEST 1 1998-10-25 01 +00 WET 1999-03-28 02 +01 WEST 1 1999-10-31 01 +00 WET 2000-03-26 02 +01 WEST 1 2000-10-29 01 +00 WET 2001-03-25 02 +01 WEST 1 2001-10-28 01 +00 WET 2002-03-31 02 +01 WEST 1 2002-10-27 01 +00 WET 2003-03-30 02 +01 WEST 1 2003-10-26 01 +00 WET 2004-03-28 02 +01 WEST 1 2004-10-31 01 +00 WET 2005-03-27 02 +01 WEST 1 2005-10-30 01 +00 WET 2006-03-26 02 +01 WEST 1 2006-10-29 01 +00 WET 2007-03-25 02 +01 WEST 1 2007-10-28 01 +00 WET 2008-03-30 02 +01 WEST 1 2008-10-26 01 +00 WET 2009-03-29 02 +01 WEST 1 2009-10-25 01 +00 WET 2010-03-28 02 +01 WEST 1 2010-10-31 01 +00 WET 2011-03-27 02 +01 WEST 1 2011-10-30 01 +00 WET 2012-03-25 02 +01 WEST 1 2012-10-28 01 +00 WET 2013-03-31 02 +01 WEST 1 2013-10-27 01 +00 WET 2014-03-30 02 +01 WEST 1 2014-10-26 01 +00 WET 2015-03-29 02 +01 WEST 1 2015-10-25 01 +00 WET 2016-03-27 02 +01 WEST 1 2016-10-30 01 +00 WET 2017-03-26 02 +01 WEST 1 2017-10-29 01 +00 WET 2018-03-25 02 +01 WEST 1 2018-10-28 01 +00 WET 2019-03-31 02 +01 WEST 1 2019-10-27 01 +00 WET 2020-03-29 02 +01 WEST 1 2020-10-25 01 +00 WET 2021-03-28 02 +01 WEST 1 2021-10-31 01 +00 WET 2022-03-27 02 +01 WEST 1 2022-10-30 01 +00 WET 2023-03-26 02 +01 WEST 1 2023-10-29 01 +00 WET 2024-03-31 02 +01 WEST 1 2024-10-27 01 +00 WET 2025-03-30 02 +01 WEST 1 2025-10-26 01 +00 WET 2026-03-29 02 +01 WEST 1 2026-10-25 01 +00 WET 2027-03-28 02 +01 WEST 1 2027-10-31 01 +00 WET 2028-03-26 02 +01 WEST 1 2028-10-29 01 +00 WET 2029-03-25 02 +01 WEST 1 2029-10-28 01 +00 WET 2030-03-31 02 +01 WEST 1 2030-10-27 01 +00 WET 2031-03-30 02 +01 WEST 1 2031-10-26 01 +00 WET 2032-03-28 02 +01 WEST 1 2032-10-31 01 +00 WET 2033-03-27 02 +01 WEST 1 2033-10-30 01 +00 WET 2034-03-26 02 +01 WEST 1 2034-10-29 01 +00 WET 2035-03-25 02 +01 WEST 1 2035-10-28 01 +00 WET 2036-03-30 02 +01 WEST 1 2036-10-26 01 +00 WET 2037-03-29 02 +01 WEST 1 2037-10-25 01 +00 WET 2038-03-28 02 +01 WEST 1 2038-10-31 01 +00 WET 2039-03-27 02 +01 WEST 1 2039-10-30 01 +00 WET 2040-03-25 02 +01 WEST 1 2040-10-28 01 +00 WET 2041-03-31 02 +01 WEST 1 2041-10-27 01 +00 WET 2042-03-30 02 +01 WEST 1 2042-10-26 01 +00 WET 2043-03-29 02 +01 WEST 1 2043-10-25 01 +00 WET 2044-03-27 02 +01 WEST 1 2044-10-30 01 +00 WET 2045-03-26 02 +01 WEST 1 2045-10-29 01 +00 WET 2046-03-25 02 +01 WEST 1 2046-10-28 01 +00 WET 2047-03-31 02 +01 WEST 1 2047-10-27 01 +00 WET 2048-03-29 02 +01 WEST 1 2048-10-25 01 +00 WET 2049-03-28 02 +01 WEST 1 2049-10-31 01 +00 WET TZ="Atlantic/Cape_Verde" - - -013404 LMT 1912-01-01 00 -02 1942-09-01 01 -01 1 1945-10-14 23 -02 1975-11-25 03 -01 TZ="Atlantic/Faroe" - - -002704 LMT 1908-01-11 00:27:04 +00 WET 1981-03-29 02 +01 WEST 1 1981-09-27 01 +00 WET 1982-03-28 02 +01 WEST 1 1982-09-26 01 +00 WET 1983-03-27 02 +01 WEST 1 1983-09-25 01 +00 WET 1984-03-25 02 +01 WEST 1 1984-09-30 01 +00 WET 1985-03-31 02 +01 WEST 1 1985-09-29 01 +00 WET 1986-03-30 02 +01 WEST 1 1986-09-28 01 +00 WET 1987-03-29 02 +01 WEST 1 1987-09-27 01 +00 WET 1988-03-27 02 +01 WEST 1 1988-09-25 01 +00 WET 1989-03-26 02 +01 WEST 1 1989-09-24 01 +00 WET 1990-03-25 02 +01 WEST 1 1990-09-30 01 +00 WET 1991-03-31 02 +01 WEST 1 1991-09-29 01 +00 WET 1992-03-29 02 +01 WEST 1 1992-09-27 01 +00 WET 1993-03-28 02 +01 WEST 1 1993-09-26 01 +00 WET 1994-03-27 02 +01 WEST 1 1994-09-25 01 +00 WET 1995-03-26 02 +01 WEST 1 1995-09-24 01 +00 WET 1996-03-31 02 +01 WEST 1 1996-10-27 01 +00 WET 1997-03-30 02 +01 WEST 1 1997-10-26 01 +00 WET 1998-03-29 02 +01 WEST 1 1998-10-25 01 +00 WET 1999-03-28 02 +01 WEST 1 1999-10-31 01 +00 WET 2000-03-26 02 +01 WEST 1 2000-10-29 01 +00 WET 2001-03-25 02 +01 WEST 1 2001-10-28 01 +00 WET 2002-03-31 02 +01 WEST 1 2002-10-27 01 +00 WET 2003-03-30 02 +01 WEST 1 2003-10-26 01 +00 WET 2004-03-28 02 +01 WEST 1 2004-10-31 01 +00 WET 2005-03-27 02 +01 WEST 1 2005-10-30 01 +00 WET 2006-03-26 02 +01 WEST 1 2006-10-29 01 +00 WET 2007-03-25 02 +01 WEST 1 2007-10-28 01 +00 WET 2008-03-30 02 +01 WEST 1 2008-10-26 01 +00 WET 2009-03-29 02 +01 WEST 1 2009-10-25 01 +00 WET 2010-03-28 02 +01 WEST 1 2010-10-31 01 +00 WET 2011-03-27 02 +01 WEST 1 2011-10-30 01 +00 WET 2012-03-25 02 +01 WEST 1 2012-10-28 01 +00 WET 2013-03-31 02 +01 WEST 1 2013-10-27 01 +00 WET 2014-03-30 02 +01 WEST 1 2014-10-26 01 +00 WET 2015-03-29 02 +01 WEST 1 2015-10-25 01 +00 WET 2016-03-27 02 +01 WEST 1 2016-10-30 01 +00 WET 2017-03-26 02 +01 WEST 1 2017-10-29 01 +00 WET 2018-03-25 02 +01 WEST 1 2018-10-28 01 +00 WET 2019-03-31 02 +01 WEST 1 2019-10-27 01 +00 WET 2020-03-29 02 +01 WEST 1 2020-10-25 01 +00 WET 2021-03-28 02 +01 WEST 1 2021-10-31 01 +00 WET 2022-03-27 02 +01 WEST 1 2022-10-30 01 +00 WET 2023-03-26 02 +01 WEST 1 2023-10-29 01 +00 WET 2024-03-31 02 +01 WEST 1 2024-10-27 01 +00 WET 2025-03-30 02 +01 WEST 1 2025-10-26 01 +00 WET 2026-03-29 02 +01 WEST 1 2026-10-25 01 +00 WET 2027-03-28 02 +01 WEST 1 2027-10-31 01 +00 WET 2028-03-26 02 +01 WEST 1 2028-10-29 01 +00 WET 2029-03-25 02 +01 WEST 1 2029-10-28 01 +00 WET 2030-03-31 02 +01 WEST 1 2030-10-27 01 +00 WET 2031-03-30 02 +01 WEST 1 2031-10-26 01 +00 WET 2032-03-28 02 +01 WEST 1 2032-10-31 01 +00 WET 2033-03-27 02 +01 WEST 1 2033-10-30 01 +00 WET 2034-03-26 02 +01 WEST 1 2034-10-29 01 +00 WET 2035-03-25 02 +01 WEST 1 2035-10-28 01 +00 WET 2036-03-30 02 +01 WEST 1 2036-10-26 01 +00 WET 2037-03-29 02 +01 WEST 1 2037-10-25 01 +00 WET 2038-03-28 02 +01 WEST 1 2038-10-31 01 +00 WET 2039-03-27 02 +01 WEST 1 2039-10-30 01 +00 WET 2040-03-25 02 +01 WEST 1 2040-10-28 01 +00 WET 2041-03-31 02 +01 WEST 1 2041-10-27 01 +00 WET 2042-03-30 02 +01 WEST 1 2042-10-26 01 +00 WET 2043-03-29 02 +01 WEST 1 2043-10-25 01 +00 WET 2044-03-27 02 +01 WEST 1 2044-10-30 01 +00 WET 2045-03-26 02 +01 WEST 1 2045-10-29 01 +00 WET 2046-03-25 02 +01 WEST 1 2046-10-28 01 +00 WET 2047-03-31 02 +01 WEST 1 2047-10-27 01 +00 WET 2048-03-29 02 +01 WEST 1 2048-10-25 01 +00 WET 2049-03-28 02 +01 WEST 1 2049-10-31 01 +00 WET TZ="Atlantic/Madeira" - - -010736 LMT 1884-01-01 00 -010736 FMT 1912-01-01 00 -01 1916-06-18 00 +00 1 1916-11-01 00 -01 1917-03-01 00 +00 1 1917-10-14 23 -01 1918-03-02 00 +00 1 1918-10-14 23 -01 1919-03-01 00 +00 1 1919-10-14 23 -01 1920-03-01 00 +00 1 1920-10-14 23 -01 1921-03-01 00 +00 1 1921-10-14 23 -01 1924-04-17 00 +00 1 1924-10-14 23 -01 1926-04-18 00 +00 1 1926-10-02 23 -01 1927-04-10 00 +00 1 1927-10-01 23 -01 1928-04-15 00 +00 1 1928-10-06 23 -01 1929-04-21 00 +00 1 1929-10-05 23 -01 1931-04-19 00 +00 1 1931-10-03 23 -01 1932-04-03 00 +00 1 1932-10-01 23 -01 1934-04-08 00 +00 1 1934-10-06 23 -01 1935-03-31 00 +00 1 1935-10-05 23 -01 1936-04-19 00 +00 1 1936-10-03 23 -01 1937-04-04 00 +00 1 1937-10-02 23 -01 1938-03-27 00 +00 1 1938-10-01 23 -01 1939-04-16 00 +00 1 1939-11-18 23 -01 1940-02-25 00 +00 1 1940-10-05 23 -01 1941-04-06 00 +00 1 1941-10-05 23 -01 1942-03-15 00 +00 1 1942-04-26 00 +01 1 1942-08-15 23 +00 1 1942-10-24 23 -01 1943-03-14 00 +00 1 1943-04-18 00 +01 1 1943-08-28 23 +00 1 1943-10-30 23 -01 1944-03-12 00 +00 1 1944-04-23 00 +01 1 1944-08-26 23 +00 1 1944-10-28 23 -01 1945-03-11 00 +00 1 1945-04-22 00 +01 1 1945-08-25 23 +00 1 1945-10-27 23 -01 1946-04-07 00 +00 1 1946-10-05 23 -01 1947-04-06 03 +00 1 1947-10-05 02 -01 1948-04-04 03 +00 1 1948-10-03 02 -01 1949-04-03 03 +00 1 1949-10-02 02 -01 1951-04-01 03 +00 1 1951-10-07 02 -01 1952-04-06 03 +00 1 1952-10-05 02 -01 1953-04-05 03 +00 1 1953-10-04 02 -01 1954-04-04 03 +00 1 1954-10-03 02 -01 1955-04-03 03 +00 1 1955-10-02 02 -01 1956-04-01 03 +00 1 1956-10-07 02 -01 1957-04-07 03 +00 1 1957-10-06 02 -01 1958-04-06 03 +00 1 1958-10-05 02 -01 1959-04-05 03 +00 1 1959-10-04 02 -01 1960-04-03 03 +00 1 1960-10-02 02 -01 1961-04-02 03 +00 1 1961-10-01 02 -01 1962-04-01 03 +00 1 1962-10-07 02 -01 1963-04-07 03 +00 1 1963-10-06 02 -01 1964-04-05 03 +00 1 1964-10-04 02 -01 1965-04-04 03 +00 1 1965-10-03 02 -01 1966-04-03 03 +00 WET 1977-03-27 01 +01 WEST 1 1977-09-25 00 +00 WET 1978-04-02 01 +01 WEST 1 1978-10-01 00 +00 WET 1979-04-01 01 +01 WEST 1 1979-09-30 01 +00 WET 1980-03-30 01 +01 WEST 1 1980-09-28 01 +00 WET 1981-03-29 02 +01 WEST 1 1981-09-27 01 +00 WET 1982-03-28 02 +01 WEST 1 1982-09-26 01 +00 WET 1983-03-27 03 +01 WEST 1 1983-09-25 01 +00 WET 1984-03-25 02 +01 WEST 1 1984-09-30 01 +00 WET 1985-03-31 02 +01 WEST 1 1985-09-29 01 +00 WET 1986-03-30 02 +01 WEST 1 1986-09-28 01 +00 WET 1987-03-29 02 +01 WEST 1 1987-09-27 01 +00 WET 1988-03-27 02 +01 WEST 1 1988-09-25 01 +00 WET 1989-03-26 02 +01 WEST 1 1989-09-24 01 +00 WET 1990-03-25 02 +01 WEST 1 1990-09-30 01 +00 WET 1991-03-31 02 +01 WEST 1 1991-09-29 01 +00 WET 1992-03-29 02 +01 WEST 1 1992-09-27 01 +00 WET 1993-03-28 02 +01 WEST 1 1993-09-26 01 +00 WET 1994-03-27 02 +01 WEST 1 1994-09-25 01 +00 WET 1995-03-26 02 +01 WEST 1 1995-09-24 01 +00 WET 1996-03-31 02 +01 WEST 1 1996-10-27 01 +00 WET 1997-03-30 02 +01 WEST 1 1997-10-26 01 +00 WET 1998-03-29 02 +01 WEST 1 1998-10-25 01 +00 WET 1999-03-28 02 +01 WEST 1 1999-10-31 01 +00 WET 2000-03-26 02 +01 WEST 1 2000-10-29 01 +00 WET 2001-03-25 02 +01 WEST 1 2001-10-28 01 +00 WET 2002-03-31 02 +01 WEST 1 2002-10-27 01 +00 WET 2003-03-30 02 +01 WEST 1 2003-10-26 01 +00 WET 2004-03-28 02 +01 WEST 1 2004-10-31 01 +00 WET 2005-03-27 02 +01 WEST 1 2005-10-30 01 +00 WET 2006-03-26 02 +01 WEST 1 2006-10-29 01 +00 WET 2007-03-25 02 +01 WEST 1 2007-10-28 01 +00 WET 2008-03-30 02 +01 WEST 1 2008-10-26 01 +00 WET 2009-03-29 02 +01 WEST 1 2009-10-25 01 +00 WET 2010-03-28 02 +01 WEST 1 2010-10-31 01 +00 WET 2011-03-27 02 +01 WEST 1 2011-10-30 01 +00 WET 2012-03-25 02 +01 WEST 1 2012-10-28 01 +00 WET 2013-03-31 02 +01 WEST 1 2013-10-27 01 +00 WET 2014-03-30 02 +01 WEST 1 2014-10-26 01 +00 WET 2015-03-29 02 +01 WEST 1 2015-10-25 01 +00 WET 2016-03-27 02 +01 WEST 1 2016-10-30 01 +00 WET 2017-03-26 02 +01 WEST 1 2017-10-29 01 +00 WET 2018-03-25 02 +01 WEST 1 2018-10-28 01 +00 WET 2019-03-31 02 +01 WEST 1 2019-10-27 01 +00 WET 2020-03-29 02 +01 WEST 1 2020-10-25 01 +00 WET 2021-03-28 02 +01 WEST 1 2021-10-31 01 +00 WET 2022-03-27 02 +01 WEST 1 2022-10-30 01 +00 WET 2023-03-26 02 +01 WEST 1 2023-10-29 01 +00 WET 2024-03-31 02 +01 WEST 1 2024-10-27 01 +00 WET 2025-03-30 02 +01 WEST 1 2025-10-26 01 +00 WET 2026-03-29 02 +01 WEST 1 2026-10-25 01 +00 WET 2027-03-28 02 +01 WEST 1 2027-10-31 01 +00 WET 2028-03-26 02 +01 WEST 1 2028-10-29 01 +00 WET 2029-03-25 02 +01 WEST 1 2029-10-28 01 +00 WET 2030-03-31 02 +01 WEST 1 2030-10-27 01 +00 WET 2031-03-30 02 +01 WEST 1 2031-10-26 01 +00 WET 2032-03-28 02 +01 WEST 1 2032-10-31 01 +00 WET 2033-03-27 02 +01 WEST 1 2033-10-30 01 +00 WET 2034-03-26 02 +01 WEST 1 2034-10-29 01 +00 WET 2035-03-25 02 +01 WEST 1 2035-10-28 01 +00 WET 2036-03-30 02 +01 WEST 1 2036-10-26 01 +00 WET 2037-03-29 02 +01 WEST 1 2037-10-25 01 +00 WET 2038-03-28 02 +01 WEST 1 2038-10-31 01 +00 WET 2039-03-27 02 +01 WEST 1 2039-10-30 01 +00 WET 2040-03-25 02 +01 WEST 1 2040-10-28 01 +00 WET 2041-03-31 02 +01 WEST 1 2041-10-27 01 +00 WET 2042-03-30 02 +01 WEST 1 2042-10-26 01 +00 WET 2043-03-29 02 +01 WEST 1 2043-10-25 01 +00 WET 2044-03-27 02 +01 WEST 1 2044-10-30 01 +00 WET 2045-03-26 02 +01 WEST 1 2045-10-29 01 +00 WET 2046-03-25 02 +01 WEST 1 2046-10-28 01 +00 WET 2047-03-31 02 +01 WEST 1 2047-10-27 01 +00 WET 2048-03-29 02 +01 WEST 1 2048-10-25 01 +00 WET 2049-03-28 02 +01 WEST 1 2049-10-31 01 +00 WET TZ="Atlantic/Reykjavik" - - -0128 LMT 1908-01-01 00:28 -01 1917-02-20 00 +00 1 1917-10-21 00 -01 1918-02-20 00 +00 1 1918-11-16 00 -01 1919-02-20 00 +00 1 1919-11-16 00 -01 1921-03-20 00 +00 1 1921-06-23 00 -01 1939-04-30 00 +00 1 1939-10-29 01 -01 1940-02-25 03 +00 1 1940-11-03 01 -01 1941-03-02 02 +00 1 1941-11-02 01 -01 1942-03-08 02 +00 1 1942-10-25 01 -01 1943-03-07 02 +00 1 1943-10-24 01 -01 1944-03-05 02 +00 1 1944-10-22 01 -01 1945-03-04 02 +00 1 1945-10-28 01 -01 1946-03-03 02 +00 1 1946-10-27 01 -01 1947-04-06 02 +00 1 1947-10-26 01 -01 1948-04-04 02 +00 1 1948-10-24 01 -01 1949-04-03 02 +00 1 1949-10-30 01 -01 1950-04-02 02 +00 1 1950-10-22 01 -01 1951-04-01 02 +00 1 1951-10-28 01 -01 1952-04-06 02 +00 1 1952-10-26 01 -01 1953-04-05 02 +00 1 1953-10-25 01 -01 1954-04-04 02 +00 1 1954-10-24 01 -01 1955-04-03 02 +00 1 1955-10-23 01 -01 1956-04-01 02 +00 1 1956-10-28 01 -01 1957-04-07 02 +00 1 1957-10-27 01 -01 1958-04-06 02 +00 1 1958-10-26 01 -01 1959-04-05 02 +00 1 1959-10-25 01 -01 1960-04-03 02 +00 1 1960-10-23 01 -01 1961-04-02 02 +00 1 1961-10-22 01 -01 1962-04-01 02 +00 1 1962-10-28 01 -01 1963-04-07 02 +00 1 1963-10-27 01 -01 1964-04-05 02 +00 1 1964-10-25 01 -01 1965-04-04 02 +00 1 1965-10-24 01 -01 1966-04-03 02 +00 1 1966-10-23 01 -01 1967-04-02 02 +00 1 1967-10-29 01 -01 1968-04-07 02 +00 GMT TZ="Atlantic/South_Georgia" - - -022608 LMT 1890-01-01 00:26:08 -02 TZ="Atlantic/Stanley" - - -035124 LMT 1890-01-01 00 -035124 SMT 1912-03-11 23:51:24 -04 1937-09-26 01 -03 1 1938-03-19 23 -04 1938-09-25 01 -03 1 1939-03-18 23 -04 1939-10-01 01 -03 1 1940-03-23 23 -04 1940-09-29 01 -03 1 1941-03-22 23 -04 1941-09-28 01 -03 1 1942-03-21 23 -04 1942-09-27 01 -03 1 1942-12-31 23 -04 1983-05-01 01 -03 1983-09-25 01 -02 1 1984-04-28 23 -03 1984-09-16 01 -02 1 1985-04-27 23 -03 1985-09-15 00 -03 1 1986-04-19 23 -04 1986-09-14 01 -03 1 1987-04-18 23 -04 1987-09-13 01 -03 1 1988-04-16 23 -04 1988-09-11 01 -03 1 1989-04-15 23 -04 1989-09-10 01 -03 1 1990-04-21 23 -04 1990-09-09 01 -03 1 1991-04-20 23 -04 1991-09-15 01 -03 1 1992-04-18 23 -04 1992-09-13 01 -03 1 1993-04-17 23 -04 1993-09-12 01 -03 1 1994-04-16 23 -04 1994-09-11 01 -03 1 1995-04-15 23 -04 1995-09-10 01 -03 1 1996-04-20 23 -04 1996-09-15 01 -03 1 1997-04-19 23 -04 1997-09-14 01 -03 1 1998-04-18 23 -04 1998-09-13 01 -03 1 1999-04-17 23 -04 1999-09-12 01 -03 1 2000-04-15 23 -04 2000-09-10 01 -03 1 2001-04-15 01 -04 2001-09-02 03 -03 1 2002-04-21 01 -04 2002-09-01 03 -03 1 2003-04-20 01 -04 2003-09-07 03 -03 1 2004-04-18 01 -04 2004-09-05 03 -03 1 2005-04-17 01 -04 2005-09-04 03 -03 1 2006-04-16 01 -04 2006-09-03 03 -03 1 2007-04-15 01 -04 2007-09-02 03 -03 1 2008-04-20 01 -04 2008-09-07 03 -03 1 2009-04-19 01 -04 2009-09-06 03 -03 1 2010-04-18 01 -04 2010-09-05 03 -03 TZ="Australia/Adelaide" - - +091420 LMT 1895-01-31 23:45:40 +09 ACST 1899-05-01 00:30 +0930 ACST 1917-01-01 01:01 +1030 ACDT 1 1917-03-25 01 +0930 ACST 1942-01-01 03 +1030 ACDT 1 1942-03-29 01 +0930 ACST 1942-09-27 03 +1030 ACDT 1 1943-03-28 01 +0930 ACST 1943-10-03 03 +1030 ACDT 1 1944-03-26 01 +0930 ACST 1971-10-31 03 +1030 ACDT 1 1972-02-27 02 +0930 ACST 1972-10-29 03 +1030 ACDT 1 1973-03-04 02 +0930 ACST 1973-10-28 03 +1030 ACDT 1 1974-03-03 02 +0930 ACST 1974-10-27 03 +1030 ACDT 1 1975-03-02 02 +0930 ACST 1975-10-26 03 +1030 ACDT 1 1976-03-07 02 +0930 ACST 1976-10-31 03 +1030 ACDT 1 1977-03-06 02 +0930 ACST 1977-10-30 03 +1030 ACDT 1 1978-03-05 02 +0930 ACST 1978-10-29 03 +1030 ACDT 1 1979-03-04 02 +0930 ACST 1979-10-28 03 +1030 ACDT 1 1980-03-02 02 +0930 ACST 1980-10-26 03 +1030 ACDT 1 1981-03-01 02 +0930 ACST 1981-10-25 03 +1030 ACDT 1 1982-03-07 02 +0930 ACST 1982-10-31 03 +1030 ACDT 1 1983-03-06 02 +0930 ACST 1983-10-30 03 +1030 ACDT 1 1984-03-04 02 +0930 ACST 1984-10-28 03 +1030 ACDT 1 1985-03-03 02 +0930 ACST 1985-10-27 03 +1030 ACDT 1 1986-03-16 02 +0930 ACST 1986-10-19 03 +1030 ACDT 1 1987-03-15 02 +0930 ACST 1987-10-25 03 +1030 ACDT 1 1988-03-20 02 +0930 ACST 1988-10-30 03 +1030 ACDT 1 1989-03-19 02 +0930 ACST 1989-10-29 03 +1030 ACDT 1 1990-03-18 02 +0930 ACST 1990-10-28 03 +1030 ACDT 1 1991-03-03 02 +0930 ACST 1991-10-27 03 +1030 ACDT 1 1992-03-22 02 +0930 ACST 1992-10-25 03 +1030 ACDT 1 1993-03-07 02 +0930 ACST 1993-10-31 03 +1030 ACDT 1 1994-03-20 02 +0930 ACST 1994-10-30 03 +1030 ACDT 1 1995-03-26 02 +0930 ACST 1995-10-29 03 +1030 ACDT 1 1996-03-31 02 +0930 ACST 1996-10-27 03 +1030 ACDT 1 1997-03-30 02 +0930 ACST 1997-10-26 03 +1030 ACDT 1 1998-03-29 02 +0930 ACST 1998-10-25 03 +1030 ACDT 1 1999-03-28 02 +0930 ACST 1999-10-31 03 +1030 ACDT 1 2000-03-26 02 +0930 ACST 2000-10-29 03 +1030 ACDT 1 2001-03-25 02 +0930 ACST 2001-10-28 03 +1030 ACDT 1 2002-03-31 02 +0930 ACST 2002-10-27 03 +1030 ACDT 1 2003-03-30 02 +0930 ACST 2003-10-26 03 +1030 ACDT 1 2004-03-28 02 +0930 ACST 2004-10-31 03 +1030 ACDT 1 2005-03-27 02 +0930 ACST 2005-10-30 03 +1030 ACDT 1 2006-04-02 02 +0930 ACST 2006-10-29 03 +1030 ACDT 1 2007-03-25 02 +0930 ACST 2007-10-28 03 +1030 ACDT 1 2008-04-06 02 +0930 ACST 2008-10-05 03 +1030 ACDT 1 2009-04-05 02 +0930 ACST 2009-10-04 03 +1030 ACDT 1 2010-04-04 02 +0930 ACST 2010-10-03 03 +1030 ACDT 1 2011-04-03 02 +0930 ACST 2011-10-02 03 +1030 ACDT 1 2012-04-01 02 +0930 ACST 2012-10-07 03 +1030 ACDT 1 2013-04-07 02 +0930 ACST 2013-10-06 03 +1030 ACDT 1 2014-04-06 02 +0930 ACST 2014-10-05 03 +1030 ACDT 1 2015-04-05 02 +0930 ACST 2015-10-04 03 +1030 ACDT 1 2016-04-03 02 +0930 ACST 2016-10-02 03 +1030 ACDT 1 2017-04-02 02 +0930 ACST 2017-10-01 03 +1030 ACDT 1 2018-04-01 02 +0930 ACST 2018-10-07 03 +1030 ACDT 1 2019-04-07 02 +0930 ACST 2019-10-06 03 +1030 ACDT 1 2020-04-05 02 +0930 ACST 2020-10-04 03 +1030 ACDT 1 2021-04-04 02 +0930 ACST 2021-10-03 03 +1030 ACDT 1 2022-04-03 02 +0930 ACST 2022-10-02 03 +1030 ACDT 1 2023-04-02 02 +0930 ACST 2023-10-01 03 +1030 ACDT 1 2024-04-07 02 +0930 ACST 2024-10-06 03 +1030 ACDT 1 2025-04-06 02 +0930 ACST 2025-10-05 03 +1030 ACDT 1 2026-04-05 02 +0930 ACST 2026-10-04 03 +1030 ACDT 1 2027-04-04 02 +0930 ACST 2027-10-03 03 +1030 ACDT 1 2028-04-02 02 +0930 ACST 2028-10-01 03 +1030 ACDT 1 2029-04-01 02 +0930 ACST 2029-10-07 03 +1030 ACDT 1 2030-04-07 02 +0930 ACST 2030-10-06 03 +1030 ACDT 1 2031-04-06 02 +0930 ACST 2031-10-05 03 +1030 ACDT 1 2032-04-04 02 +0930 ACST 2032-10-03 03 +1030 ACDT 1 2033-04-03 02 +0930 ACST 2033-10-02 03 +1030 ACDT 1 2034-04-02 02 +0930 ACST 2034-10-01 03 +1030 ACDT 1 2035-04-01 02 +0930 ACST 2035-10-07 03 +1030 ACDT 1 2036-04-06 02 +0930 ACST 2036-10-05 03 +1030 ACDT 1 2037-04-05 02 +0930 ACST 2037-10-04 03 +1030 ACDT 1 2038-04-04 02 +0930 ACST 2038-10-03 03 +1030 ACDT 1 2039-04-03 02 +0930 ACST 2039-10-02 03 +1030 ACDT 1 2040-04-01 02 +0930 ACST 2040-10-07 03 +1030 ACDT 1 2041-04-07 02 +0930 ACST 2041-10-06 03 +1030 ACDT 1 2042-04-06 02 +0930 ACST 2042-10-05 03 +1030 ACDT 1 2043-04-05 02 +0930 ACST 2043-10-04 03 +1030 ACDT 1 2044-04-03 02 +0930 ACST 2044-10-02 03 +1030 ACDT 1 2045-04-02 02 +0930 ACST 2045-10-01 03 +1030 ACDT 1 2046-04-01 02 +0930 ACST 2046-10-07 03 +1030 ACDT 1 2047-04-07 02 +0930 ACST 2047-10-06 03 +1030 ACDT 1 2048-04-05 02 +0930 ACST 2048-10-04 03 +1030 ACDT 1 2049-04-04 02 +0930 ACST 2049-10-03 03 +1030 ACDT 1 TZ="Australia/Brisbane" - - +101208 LMT 1894-12-31 23:47:52 +10 AEST 1917-01-01 01:01 +11 AEDT 1 1917-03-25 01 +10 AEST 1942-01-01 03 +11 AEDT 1 1942-03-29 01 +10 AEST 1942-09-27 03 +11 AEDT 1 1943-03-28 01 +10 AEST 1943-10-03 03 +11 AEDT 1 1944-03-26 01 +10 AEST 1971-10-31 03 +11 AEDT 1 1972-02-27 02 +10 AEST 1989-10-29 03 +11 AEDT 1 1990-03-04 02 +10 AEST 1990-10-28 03 +11 AEDT 1 1991-03-03 02 +10 AEST 1991-10-27 03 +11 AEDT 1 1992-03-01 02 +10 AEST TZ="Australia/Broken_Hill" - - +092548 LMT 1895-02-01 00:34:12 +10 AEST 1896-08-22 23 +09 ACST 1899-05-01 00:30 +0930 ACST 1917-01-01 01:01 +1030 ACDT 1 1917-03-25 01 +0930 ACST 1942-01-01 03 +1030 ACDT 1 1942-03-29 01 +0930 ACST 1942-09-27 03 +1030 ACDT 1 1943-03-28 01 +0930 ACST 1943-10-03 03 +1030 ACDT 1 1944-03-26 01 +0930 ACST 1971-10-31 03 +1030 ACDT 1 1972-02-27 02 +0930 ACST 1972-10-29 03 +1030 ACDT 1 1973-03-04 02 +0930 ACST 1973-10-28 03 +1030 ACDT 1 1974-03-03 02 +0930 ACST 1974-10-27 03 +1030 ACDT 1 1975-03-02 02 +0930 ACST 1975-10-26 03 +1030 ACDT 1 1976-03-07 02 +0930 ACST 1976-10-31 03 +1030 ACDT 1 1977-03-06 02 +0930 ACST 1977-10-30 03 +1030 ACDT 1 1978-03-05 02 +0930 ACST 1978-10-29 03 +1030 ACDT 1 1979-03-04 02 +0930 ACST 1979-10-28 03 +1030 ACDT 1 1980-03-02 02 +0930 ACST 1980-10-26 03 +1030 ACDT 1 1981-03-01 02 +0930 ACST 1981-10-25 03 +1030 ACDT 1 1982-04-04 02 +0930 ACST 1982-10-31 03 +1030 ACDT 1 1983-03-06 02 +0930 ACST 1983-10-30 03 +1030 ACDT 1 1984-03-04 02 +0930 ACST 1984-10-28 03 +1030 ACDT 1 1985-03-03 02 +0930 ACST 1985-10-27 03 +1030 ACDT 1 1986-03-16 02 +0930 ACST 1986-10-19 03 +1030 ACDT 1 1987-03-15 02 +0930 ACST 1987-10-25 03 +1030 ACDT 1 1988-03-20 02 +0930 ACST 1988-10-30 03 +1030 ACDT 1 1989-03-19 02 +0930 ACST 1989-10-29 03 +1030 ACDT 1 1990-03-04 02 +0930 ACST 1990-10-28 03 +1030 ACDT 1 1991-03-03 02 +0930 ACST 1991-10-27 03 +1030 ACDT 1 1992-03-01 02 +0930 ACST 1992-10-25 03 +1030 ACDT 1 1993-03-07 02 +0930 ACST 1993-10-31 03 +1030 ACDT 1 1994-03-06 02 +0930 ACST 1994-10-30 03 +1030 ACDT 1 1995-03-05 02 +0930 ACST 1995-10-29 03 +1030 ACDT 1 1996-03-31 02 +0930 ACST 1996-10-27 03 +1030 ACDT 1 1997-03-30 02 +0930 ACST 1997-10-26 03 +1030 ACDT 1 1998-03-29 02 +0930 ACST 1998-10-25 03 +1030 ACDT 1 1999-03-28 02 +0930 ACST 1999-10-31 03 +1030 ACDT 1 2000-03-26 02 +0930 ACST 2000-10-29 03 +1030 ACDT 1 2001-03-25 02 +0930 ACST 2001-10-28 03 +1030 ACDT 1 2002-03-31 02 +0930 ACST 2002-10-27 03 +1030 ACDT 1 2003-03-30 02 +0930 ACST 2003-10-26 03 +1030 ACDT 1 2004-03-28 02 +0930 ACST 2004-10-31 03 +1030 ACDT 1 2005-03-27 02 +0930 ACST 2005-10-30 03 +1030 ACDT 1 2006-04-02 02 +0930 ACST 2006-10-29 03 +1030 ACDT 1 2007-03-25 02 +0930 ACST 2007-10-28 03 +1030 ACDT 1 2008-04-06 02 +0930 ACST 2008-10-05 03 +1030 ACDT 1 2009-04-05 02 +0930 ACST 2009-10-04 03 +1030 ACDT 1 2010-04-04 02 +0930 ACST 2010-10-03 03 +1030 ACDT 1 2011-04-03 02 +0930 ACST 2011-10-02 03 +1030 ACDT 1 2012-04-01 02 +0930 ACST 2012-10-07 03 +1030 ACDT 1 2013-04-07 02 +0930 ACST 2013-10-06 03 +1030 ACDT 1 2014-04-06 02 +0930 ACST 2014-10-05 03 +1030 ACDT 1 2015-04-05 02 +0930 ACST 2015-10-04 03 +1030 ACDT 1 2016-04-03 02 +0930 ACST 2016-10-02 03 +1030 ACDT 1 2017-04-02 02 +0930 ACST 2017-10-01 03 +1030 ACDT 1 2018-04-01 02 +0930 ACST 2018-10-07 03 +1030 ACDT 1 2019-04-07 02 +0930 ACST 2019-10-06 03 +1030 ACDT 1 2020-04-05 02 +0930 ACST 2020-10-04 03 +1030 ACDT 1 2021-04-04 02 +0930 ACST 2021-10-03 03 +1030 ACDT 1 2022-04-03 02 +0930 ACST 2022-10-02 03 +1030 ACDT 1 2023-04-02 02 +0930 ACST 2023-10-01 03 +1030 ACDT 1 2024-04-07 02 +0930 ACST 2024-10-06 03 +1030 ACDT 1 2025-04-06 02 +0930 ACST 2025-10-05 03 +1030 ACDT 1 2026-04-05 02 +0930 ACST 2026-10-04 03 +1030 ACDT 1 2027-04-04 02 +0930 ACST 2027-10-03 03 +1030 ACDT 1 2028-04-02 02 +0930 ACST 2028-10-01 03 +1030 ACDT 1 2029-04-01 02 +0930 ACST 2029-10-07 03 +1030 ACDT 1 2030-04-07 02 +0930 ACST 2030-10-06 03 +1030 ACDT 1 2031-04-06 02 +0930 ACST 2031-10-05 03 +1030 ACDT 1 2032-04-04 02 +0930 ACST 2032-10-03 03 +1030 ACDT 1 2033-04-03 02 +0930 ACST 2033-10-02 03 +1030 ACDT 1 2034-04-02 02 +0930 ACST 2034-10-01 03 +1030 ACDT 1 2035-04-01 02 +0930 ACST 2035-10-07 03 +1030 ACDT 1 2036-04-06 02 +0930 ACST 2036-10-05 03 +1030 ACDT 1 2037-04-05 02 +0930 ACST 2037-10-04 03 +1030 ACDT 1 2038-04-04 02 +0930 ACST 2038-10-03 03 +1030 ACDT 1 2039-04-03 02 +0930 ACST 2039-10-02 03 +1030 ACDT 1 2040-04-01 02 +0930 ACST 2040-10-07 03 +1030 ACDT 1 2041-04-07 02 +0930 ACST 2041-10-06 03 +1030 ACDT 1 2042-04-06 02 +0930 ACST 2042-10-05 03 +1030 ACDT 1 2043-04-05 02 +0930 ACST 2043-10-04 03 +1030 ACDT 1 2044-04-03 02 +0930 ACST 2044-10-02 03 +1030 ACDT 1 2045-04-02 02 +0930 ACST 2045-10-01 03 +1030 ACDT 1 2046-04-01 02 +0930 ACST 2046-10-07 03 +1030 ACDT 1 2047-04-07 02 +0930 ACST 2047-10-06 03 +1030 ACDT 1 2048-04-05 02 +0930 ACST 2048-10-04 03 +1030 ACDT 1 2049-04-04 02 +0930 ACST 2049-10-03 03 +1030 ACDT 1 TZ="Australia/Currie" - - +093528 LMT 1895-09-01 00:24:32 +10 AEST 1916-10-01 03 +11 AEDT 1 1917-03-25 01 +10 AEST 1942-01-01 03 +11 AEDT 1 1942-03-29 01 +10 AEST 1942-09-27 03 +11 AEDT 1 1943-03-28 01 +10 AEST 1943-10-03 03 +11 AEDT 1 1944-03-26 01 +10 AEST 1971-10-31 03 +11 AEDT 1 1972-02-27 02 +10 AEST 1972-10-29 03 +11 AEDT 1 1973-03-04 02 +10 AEST 1973-10-28 03 +11 AEDT 1 1974-03-03 02 +10 AEST 1974-10-27 03 +11 AEDT 1 1975-03-02 02 +10 AEST 1975-10-26 03 +11 AEDT 1 1976-03-07 02 +10 AEST 1976-10-31 03 +11 AEDT 1 1977-03-06 02 +10 AEST 1977-10-30 03 +11 AEDT 1 1978-03-05 02 +10 AEST 1978-10-29 03 +11 AEDT 1 1979-03-04 02 +10 AEST 1979-10-28 03 +11 AEDT 1 1980-03-02 02 +10 AEST 1980-10-26 03 +11 AEDT 1 1981-03-01 02 +10 AEST 1981-10-25 03 +11 AEDT 1 1982-03-28 02 +10 AEST 1982-10-31 03 +11 AEDT 1 1983-03-27 02 +10 AEST 1983-10-30 03 +11 AEDT 1 1984-03-04 02 +10 AEST 1984-10-28 03 +11 AEDT 1 1985-03-03 02 +10 AEST 1985-10-27 03 +11 AEDT 1 1986-03-02 02 +10 AEST 1986-10-19 03 +11 AEDT 1 1987-03-15 02 +10 AEST 1987-10-25 03 +11 AEDT 1 1988-03-20 02 +10 AEST 1988-10-30 03 +11 AEDT 1 1989-03-19 02 +10 AEST 1989-10-29 03 +11 AEDT 1 1990-03-18 02 +10 AEST 1990-10-28 03 +11 AEDT 1 1991-03-31 02 +10 AEST 1991-10-06 03 +11 AEDT 1 1992-03-29 02 +10 AEST 1992-10-04 03 +11 AEDT 1 1993-03-28 02 +10 AEST 1993-10-03 03 +11 AEDT 1 1994-03-27 02 +10 AEST 1994-10-02 03 +11 AEDT 1 1995-03-26 02 +10 AEST 1995-10-01 03 +11 AEDT 1 1996-03-31 02 +10 AEST 1996-10-06 03 +11 AEDT 1 1997-03-30 02 +10 AEST 1997-10-05 03 +11 AEDT 1 1998-03-29 02 +10 AEST 1998-10-04 03 +11 AEDT 1 1999-03-28 02 +10 AEST 1999-10-03 03 +11 AEDT 1 2000-03-26 02 +10 AEST 2000-08-27 03 +11 AEDT 1 2001-03-25 02 +10 AEST 2001-10-07 03 +11 AEDT 1 2002-03-31 02 +10 AEST 2002-10-06 03 +11 AEDT 1 2003-03-30 02 +10 AEST 2003-10-05 03 +11 AEDT 1 2004-03-28 02 +10 AEST 2004-10-03 03 +11 AEDT 1 2005-03-27 02 +10 AEST 2005-10-02 03 +11 AEDT 1 2006-04-02 02 +10 AEST 2006-10-01 03 +11 AEDT 1 2007-03-25 02 +10 AEST 2007-10-07 03 +11 AEDT 1 2008-04-06 02 +10 AEST 2008-10-05 03 +11 AEDT 1 2009-04-05 02 +10 AEST 2009-10-04 03 +11 AEDT 1 2010-04-04 02 +10 AEST 2010-10-03 03 +11 AEDT 1 2011-04-03 02 +10 AEST 2011-10-02 03 +11 AEDT 1 2012-04-01 02 +10 AEST 2012-10-07 03 +11 AEDT 1 2013-04-07 02 +10 AEST 2013-10-06 03 +11 AEDT 1 2014-04-06 02 +10 AEST 2014-10-05 03 +11 AEDT 1 2015-04-05 02 +10 AEST 2015-10-04 03 +11 AEDT 1 2016-04-03 02 +10 AEST 2016-10-02 03 +11 AEDT 1 2017-04-02 02 +10 AEST 2017-10-01 03 +11 AEDT 1 2018-04-01 02 +10 AEST 2018-10-07 03 +11 AEDT 1 2019-04-07 02 +10 AEST 2019-10-06 03 +11 AEDT 1 2020-04-05 02 +10 AEST 2020-10-04 03 +11 AEDT 1 2021-04-04 02 +10 AEST 2021-10-03 03 +11 AEDT 1 2022-04-03 02 +10 AEST 2022-10-02 03 +11 AEDT 1 2023-04-02 02 +10 AEST 2023-10-01 03 +11 AEDT 1 2024-04-07 02 +10 AEST 2024-10-06 03 +11 AEDT 1 2025-04-06 02 +10 AEST 2025-10-05 03 +11 AEDT 1 2026-04-05 02 +10 AEST 2026-10-04 03 +11 AEDT 1 2027-04-04 02 +10 AEST 2027-10-03 03 +11 AEDT 1 2028-04-02 02 +10 AEST 2028-10-01 03 +11 AEDT 1 2029-04-01 02 +10 AEST 2029-10-07 03 +11 AEDT 1 2030-04-07 02 +10 AEST 2030-10-06 03 +11 AEDT 1 2031-04-06 02 +10 AEST 2031-10-05 03 +11 AEDT 1 2032-04-04 02 +10 AEST 2032-10-03 03 +11 AEDT 1 2033-04-03 02 +10 AEST 2033-10-02 03 +11 AEDT 1 2034-04-02 02 +10 AEST 2034-10-01 03 +11 AEDT 1 2035-04-01 02 +10 AEST 2035-10-07 03 +11 AEDT 1 2036-04-06 02 +10 AEST 2036-10-05 03 +11 AEDT 1 2037-04-05 02 +10 AEST 2037-10-04 03 +11 AEDT 1 2038-04-04 02 +10 AEST 2038-10-03 03 +11 AEDT 1 2039-04-03 02 +10 AEST 2039-10-02 03 +11 AEDT 1 2040-04-01 02 +10 AEST 2040-10-07 03 +11 AEDT 1 2041-04-07 02 +10 AEST 2041-10-06 03 +11 AEDT 1 2042-04-06 02 +10 AEST 2042-10-05 03 +11 AEDT 1 2043-04-05 02 +10 AEST 2043-10-04 03 +11 AEDT 1 2044-04-03 02 +10 AEST 2044-10-02 03 +11 AEDT 1 2045-04-02 02 +10 AEST 2045-10-01 03 +11 AEDT 1 2046-04-01 02 +10 AEST 2046-10-07 03 +11 AEDT 1 2047-04-07 02 +10 AEST 2047-10-06 03 +11 AEDT 1 2048-04-05 02 +10 AEST 2048-10-04 03 +11 AEDT 1 2049-04-04 02 +10 AEST 2049-10-03 03 +11 AEDT 1 TZ="Australia/Darwin" - - +084320 LMT 1895-02-01 00:16:40 +09 ACST 1899-05-01 00:30 +0930 ACST 1917-01-01 01:01 +1030 ACDT 1 1917-03-25 01 +0930 ACST 1942-01-01 03 +1030 ACDT 1 1942-03-29 01 +0930 ACST 1942-09-27 03 +1030 ACDT 1 1943-03-28 01 +0930 ACST 1943-10-03 03 +1030 ACDT 1 1944-03-26 01 +0930 ACST TZ="Australia/Eucla" - - +083528 LMT 1895-12-01 00:09:32 +0845 1917-01-01 01:01 +0945 1 1917-03-25 01 +0845 1942-01-01 03 +0945 1 1942-03-29 01 +0845 1942-09-27 03 +0945 1 1943-03-28 01 +0845 1974-10-27 03 +0945 1 1975-03-02 02 +0845 1983-10-30 03 +0945 1 1984-03-04 02 +0845 1991-11-17 03 +0945 1 1992-03-01 02 +0845 2006-12-03 03 +0945 1 2007-03-25 02 +0845 2007-10-28 03 +0945 1 2008-03-30 02 +0845 2008-10-26 03 +0945 1 2009-03-29 02 +0845 TZ="Australia/Hobart" - - +094916 LMT 1895-09-01 00:10:44 +10 AEST 1916-10-01 03 +11 AEDT 1 1917-03-25 01 +10 AEST 1942-01-01 03 +11 AEDT 1 1942-03-29 01 +10 AEST 1942-09-27 03 +11 AEDT 1 1943-03-28 01 +10 AEST 1943-10-03 03 +11 AEDT 1 1944-03-26 01 +10 AEST 1967-10-01 03 +11 AEDT 1 1968-03-31 02 +10 AEST 1968-10-27 03 +11 AEDT 1 1969-03-09 02 +10 AEST 1969-10-26 03 +11 AEDT 1 1970-03-08 02 +10 AEST 1970-10-25 03 +11 AEDT 1 1971-03-14 02 +10 AEST 1971-10-31 03 +11 AEDT 1 1972-02-27 02 +10 AEST 1972-10-29 03 +11 AEDT 1 1973-03-04 02 +10 AEST 1973-10-28 03 +11 AEDT 1 1974-03-03 02 +10 AEST 1974-10-27 03 +11 AEDT 1 1975-03-02 02 +10 AEST 1975-10-26 03 +11 AEDT 1 1976-03-07 02 +10 AEST 1976-10-31 03 +11 AEDT 1 1977-03-06 02 +10 AEST 1977-10-30 03 +11 AEDT 1 1978-03-05 02 +10 AEST 1978-10-29 03 +11 AEDT 1 1979-03-04 02 +10 AEST 1979-10-28 03 +11 AEDT 1 1980-03-02 02 +10 AEST 1980-10-26 03 +11 AEDT 1 1981-03-01 02 +10 AEST 1981-10-25 03 +11 AEDT 1 1982-03-28 02 +10 AEST 1982-10-31 03 +11 AEDT 1 1983-03-27 02 +10 AEST 1983-10-30 03 +11 AEDT 1 1984-03-04 02 +10 AEST 1984-10-28 03 +11 AEDT 1 1985-03-03 02 +10 AEST 1985-10-27 03 +11 AEDT 1 1986-03-02 02 +10 AEST 1986-10-19 03 +11 AEDT 1 1987-03-15 02 +10 AEST 1987-10-25 03 +11 AEDT 1 1988-03-20 02 +10 AEST 1988-10-30 03 +11 AEDT 1 1989-03-19 02 +10 AEST 1989-10-29 03 +11 AEDT 1 1990-03-18 02 +10 AEST 1990-10-28 03 +11 AEDT 1 1991-03-31 02 +10 AEST 1991-10-06 03 +11 AEDT 1 1992-03-29 02 +10 AEST 1992-10-04 03 +11 AEDT 1 1993-03-28 02 +10 AEST 1993-10-03 03 +11 AEDT 1 1994-03-27 02 +10 AEST 1994-10-02 03 +11 AEDT 1 1995-03-26 02 +10 AEST 1995-10-01 03 +11 AEDT 1 1996-03-31 02 +10 AEST 1996-10-06 03 +11 AEDT 1 1997-03-30 02 +10 AEST 1997-10-05 03 +11 AEDT 1 1998-03-29 02 +10 AEST 1998-10-04 03 +11 AEDT 1 1999-03-28 02 +10 AEST 1999-10-03 03 +11 AEDT 1 2000-03-26 02 +10 AEST 2000-08-27 03 +11 AEDT 1 2001-03-25 02 +10 AEST 2001-10-07 03 +11 AEDT 1 2002-03-31 02 +10 AEST 2002-10-06 03 +11 AEDT 1 2003-03-30 02 +10 AEST 2003-10-05 03 +11 AEDT 1 2004-03-28 02 +10 AEST 2004-10-03 03 +11 AEDT 1 2005-03-27 02 +10 AEST 2005-10-02 03 +11 AEDT 1 2006-04-02 02 +10 AEST 2006-10-01 03 +11 AEDT 1 2007-03-25 02 +10 AEST 2007-10-07 03 +11 AEDT 1 2008-04-06 02 +10 AEST 2008-10-05 03 +11 AEDT 1 2009-04-05 02 +10 AEST 2009-10-04 03 +11 AEDT 1 2010-04-04 02 +10 AEST 2010-10-03 03 +11 AEDT 1 2011-04-03 02 +10 AEST 2011-10-02 03 +11 AEDT 1 2012-04-01 02 +10 AEST 2012-10-07 03 +11 AEDT 1 2013-04-07 02 +10 AEST 2013-10-06 03 +11 AEDT 1 2014-04-06 02 +10 AEST 2014-10-05 03 +11 AEDT 1 2015-04-05 02 +10 AEST 2015-10-04 03 +11 AEDT 1 2016-04-03 02 +10 AEST 2016-10-02 03 +11 AEDT 1 2017-04-02 02 +10 AEST 2017-10-01 03 +11 AEDT 1 2018-04-01 02 +10 AEST 2018-10-07 03 +11 AEDT 1 2019-04-07 02 +10 AEST 2019-10-06 03 +11 AEDT 1 2020-04-05 02 +10 AEST 2020-10-04 03 +11 AEDT 1 2021-04-04 02 +10 AEST 2021-10-03 03 +11 AEDT 1 2022-04-03 02 +10 AEST 2022-10-02 03 +11 AEDT 1 2023-04-02 02 +10 AEST 2023-10-01 03 +11 AEDT 1 2024-04-07 02 +10 AEST 2024-10-06 03 +11 AEDT 1 2025-04-06 02 +10 AEST 2025-10-05 03 +11 AEDT 1 2026-04-05 02 +10 AEST 2026-10-04 03 +11 AEDT 1 2027-04-04 02 +10 AEST 2027-10-03 03 +11 AEDT 1 2028-04-02 02 +10 AEST 2028-10-01 03 +11 AEDT 1 2029-04-01 02 +10 AEST 2029-10-07 03 +11 AEDT 1 2030-04-07 02 +10 AEST 2030-10-06 03 +11 AEDT 1 2031-04-06 02 +10 AEST 2031-10-05 03 +11 AEDT 1 2032-04-04 02 +10 AEST 2032-10-03 03 +11 AEDT 1 2033-04-03 02 +10 AEST 2033-10-02 03 +11 AEDT 1 2034-04-02 02 +10 AEST 2034-10-01 03 +11 AEDT 1 2035-04-01 02 +10 AEST 2035-10-07 03 +11 AEDT 1 2036-04-06 02 +10 AEST 2036-10-05 03 +11 AEDT 1 2037-04-05 02 +10 AEST 2037-10-04 03 +11 AEDT 1 2038-04-04 02 +10 AEST 2038-10-03 03 +11 AEDT 1 2039-04-03 02 +10 AEST 2039-10-02 03 +11 AEDT 1 2040-04-01 02 +10 AEST 2040-10-07 03 +11 AEDT 1 2041-04-07 02 +10 AEST 2041-10-06 03 +11 AEDT 1 2042-04-06 02 +10 AEST 2042-10-05 03 +11 AEDT 1 2043-04-05 02 +10 AEST 2043-10-04 03 +11 AEDT 1 2044-04-03 02 +10 AEST 2044-10-02 03 +11 AEDT 1 2045-04-02 02 +10 AEST 2045-10-01 03 +11 AEDT 1 2046-04-01 02 +10 AEST 2046-10-07 03 +11 AEDT 1 2047-04-07 02 +10 AEST 2047-10-06 03 +11 AEDT 1 2048-04-05 02 +10 AEST 2048-10-04 03 +11 AEDT 1 2049-04-04 02 +10 AEST 2049-10-03 03 +11 AEDT 1 TZ="Australia/Lindeman" - - +095556 LMT 1895-01-01 00:04:04 +10 AEST 1917-01-01 01:01 +11 AEDT 1 1917-03-25 01 +10 AEST 1942-01-01 03 +11 AEDT 1 1942-03-29 01 +10 AEST 1942-09-27 03 +11 AEDT 1 1943-03-28 01 +10 AEST 1943-10-03 03 +11 AEDT 1 1944-03-26 01 +10 AEST 1971-10-31 03 +11 AEDT 1 1972-02-27 02 +10 AEST 1989-10-29 03 +11 AEDT 1 1990-03-04 02 +10 AEST 1990-10-28 03 +11 AEDT 1 1991-03-03 02 +10 AEST 1991-10-27 03 +11 AEDT 1 1992-03-01 02 +10 AEST 1992-10-25 03 +11 AEDT 1 1993-03-07 02 +10 AEST 1993-10-31 03 +11 AEDT 1 1994-03-06 02 +10 AEST TZ="Australia/Lord_Howe" - - +103620 LMT 1895-01-31 23:23:40 +10 AEST 1981-03-01 00:30 +1030 1981-10-25 03 +1130 1 1982-03-07 01 +1030 1982-10-31 03 +1130 1 1983-03-06 01 +1030 1983-10-30 03 +1130 1 1984-03-04 01 +1030 1984-10-28 03 +1130 1 1985-03-03 01 +1030 1985-10-27 02:30 +11 1 1986-03-16 01:30 +1030 1986-10-19 02:30 +11 1 1987-03-15 01:30 +1030 1987-10-25 02:30 +11 1 1988-03-20 01:30 +1030 1988-10-30 02:30 +11 1 1989-03-19 01:30 +1030 1989-10-29 02:30 +11 1 1990-03-04 01:30 +1030 1990-10-28 02:30 +11 1 1991-03-03 01:30 +1030 1991-10-27 02:30 +11 1 1992-03-01 01:30 +1030 1992-10-25 02:30 +11 1 1993-03-07 01:30 +1030 1993-10-31 02:30 +11 1 1994-03-06 01:30 +1030 1994-10-30 02:30 +11 1 1995-03-05 01:30 +1030 1995-10-29 02:30 +11 1 1996-03-31 01:30 +1030 1996-10-27 02:30 +11 1 1997-03-30 01:30 +1030 1997-10-26 02:30 +11 1 1998-03-29 01:30 +1030 1998-10-25 02:30 +11 1 1999-03-28 01:30 +1030 1999-10-31 02:30 +11 1 2000-03-26 01:30 +1030 2000-08-27 02:30 +11 1 2001-03-25 01:30 +1030 2001-10-28 02:30 +11 1 2002-03-31 01:30 +1030 2002-10-27 02:30 +11 1 2003-03-30 01:30 +1030 2003-10-26 02:30 +11 1 2004-03-28 01:30 +1030 2004-10-31 02:30 +11 1 2005-03-27 01:30 +1030 2005-10-30 02:30 +11 1 2006-04-02 01:30 +1030 2006-10-29 02:30 +11 1 2007-03-25 01:30 +1030 2007-10-28 02:30 +11 1 2008-04-06 01:30 +1030 2008-10-05 02:30 +11 1 2009-04-05 01:30 +1030 2009-10-04 02:30 +11 1 2010-04-04 01:30 +1030 2010-10-03 02:30 +11 1 2011-04-03 01:30 +1030 2011-10-02 02:30 +11 1 2012-04-01 01:30 +1030 2012-10-07 02:30 +11 1 2013-04-07 01:30 +1030 2013-10-06 02:30 +11 1 2014-04-06 01:30 +1030 2014-10-05 02:30 +11 1 2015-04-05 01:30 +1030 2015-10-04 02:30 +11 1 2016-04-03 01:30 +1030 2016-10-02 02:30 +11 1 2017-04-02 01:30 +1030 2017-10-01 02:30 +11 1 2018-04-01 01:30 +1030 2018-10-07 02:30 +11 1 2019-04-07 01:30 +1030 2019-10-06 02:30 +11 1 2020-04-05 01:30 +1030 2020-10-04 02:30 +11 1 2021-04-04 01:30 +1030 2021-10-03 02:30 +11 1 2022-04-03 01:30 +1030 2022-10-02 02:30 +11 1 2023-04-02 01:30 +1030 2023-10-01 02:30 +11 1 2024-04-07 01:30 +1030 2024-10-06 02:30 +11 1 2025-04-06 01:30 +1030 2025-10-05 02:30 +11 1 2026-04-05 01:30 +1030 2026-10-04 02:30 +11 1 2027-04-04 01:30 +1030 2027-10-03 02:30 +11 1 2028-04-02 01:30 +1030 2028-10-01 02:30 +11 1 2029-04-01 01:30 +1030 2029-10-07 02:30 +11 1 2030-04-07 01:30 +1030 2030-10-06 02:30 +11 1 2031-04-06 01:30 +1030 2031-10-05 02:30 +11 1 2032-04-04 01:30 +1030 2032-10-03 02:30 +11 1 2033-04-03 01:30 +1030 2033-10-02 02:30 +11 1 2034-04-02 01:30 +1030 2034-10-01 02:30 +11 1 2035-04-01 01:30 +1030 2035-10-07 02:30 +11 1 2036-04-06 01:30 +1030 2036-10-05 02:30 +11 1 2037-04-05 01:30 +1030 2037-10-04 02:30 +11 1 2038-04-04 01:30 +1030 2038-10-03 02:30 +11 1 2039-04-03 01:30 +1030 2039-10-02 02:30 +11 1 2040-04-01 01:30 +1030 2040-10-07 02:30 +11 1 2041-04-07 01:30 +1030 2041-10-06 02:30 +11 1 2042-04-06 01:30 +1030 2042-10-05 02:30 +11 1 2043-04-05 01:30 +1030 2043-10-04 02:30 +11 1 2044-04-03 01:30 +1030 2044-10-02 02:30 +11 1 2045-04-02 01:30 +1030 2045-10-01 02:30 +11 1 2046-04-01 01:30 +1030 2046-10-07 02:30 +11 1 2047-04-07 01:30 +1030 2047-10-06 02:30 +11 1 2048-04-05 01:30 +1030 2048-10-04 02:30 +11 1 2049-04-04 01:30 +1030 2049-10-03 02:30 +11 1 TZ="Australia/Melbourne" - - +093952 LMT 1895-02-01 00:20:08 +10 AEST 1917-01-01 01:01 +11 AEDT 1 1917-03-25 01 +10 AEST 1942-01-01 03 +11 AEDT 1 1942-03-29 01 +10 AEST 1942-09-27 03 +11 AEDT 1 1943-03-28 01 +10 AEST 1943-10-03 03 +11 AEDT 1 1944-03-26 01 +10 AEST 1971-10-31 03 +11 AEDT 1 1972-02-27 02 +10 AEST 1972-10-29 03 +11 AEDT 1 1973-03-04 02 +10 AEST 1973-10-28 03 +11 AEDT 1 1974-03-03 02 +10 AEST 1974-10-27 03 +11 AEDT 1 1975-03-02 02 +10 AEST 1975-10-26 03 +11 AEDT 1 1976-03-07 02 +10 AEST 1976-10-31 03 +11 AEDT 1 1977-03-06 02 +10 AEST 1977-10-30 03 +11 AEDT 1 1978-03-05 02 +10 AEST 1978-10-29 03 +11 AEDT 1 1979-03-04 02 +10 AEST 1979-10-28 03 +11 AEDT 1 1980-03-02 02 +10 AEST 1980-10-26 03 +11 AEDT 1 1981-03-01 02 +10 AEST 1981-10-25 03 +11 AEDT 1 1982-03-07 02 +10 AEST 1982-10-31 03 +11 AEDT 1 1983-03-06 02 +10 AEST 1983-10-30 03 +11 AEDT 1 1984-03-04 02 +10 AEST 1984-10-28 03 +11 AEDT 1 1985-03-03 02 +10 AEST 1985-10-27 03 +11 AEDT 1 1986-03-16 02 +10 AEST 1986-10-19 03 +11 AEDT 1 1987-03-15 02 +10 AEST 1987-10-18 03 +11 AEDT 1 1988-03-20 02 +10 AEST 1988-10-30 03 +11 AEDT 1 1989-03-19 02 +10 AEST 1989-10-29 03 +11 AEDT 1 1990-03-18 02 +10 AEST 1990-10-28 03 +11 AEDT 1 1991-03-03 02 +10 AEST 1991-10-27 03 +11 AEDT 1 1992-03-01 02 +10 AEST 1992-10-25 03 +11 AEDT 1 1993-03-07 02 +10 AEST 1993-10-31 03 +11 AEDT 1 1994-03-06 02 +10 AEST 1994-10-30 03 +11 AEDT 1 1995-03-26 02 +10 AEST 1995-10-29 03 +11 AEDT 1 1996-03-31 02 +10 AEST 1996-10-27 03 +11 AEDT 1 1997-03-30 02 +10 AEST 1997-10-26 03 +11 AEDT 1 1998-03-29 02 +10 AEST 1998-10-25 03 +11 AEDT 1 1999-03-28 02 +10 AEST 1999-10-31 03 +11 AEDT 1 2000-03-26 02 +10 AEST 2000-08-27 03 +11 AEDT 1 2001-03-25 02 +10 AEST 2001-10-28 03 +11 AEDT 1 2002-03-31 02 +10 AEST 2002-10-27 03 +11 AEDT 1 2003-03-30 02 +10 AEST 2003-10-26 03 +11 AEDT 1 2004-03-28 02 +10 AEST 2004-10-31 03 +11 AEDT 1 2005-03-27 02 +10 AEST 2005-10-30 03 +11 AEDT 1 2006-04-02 02 +10 AEST 2006-10-29 03 +11 AEDT 1 2007-03-25 02 +10 AEST 2007-10-28 03 +11 AEDT 1 2008-04-06 02 +10 AEST 2008-10-05 03 +11 AEDT 1 2009-04-05 02 +10 AEST 2009-10-04 03 +11 AEDT 1 2010-04-04 02 +10 AEST 2010-10-03 03 +11 AEDT 1 2011-04-03 02 +10 AEST 2011-10-02 03 +11 AEDT 1 2012-04-01 02 +10 AEST 2012-10-07 03 +11 AEDT 1 2013-04-07 02 +10 AEST 2013-10-06 03 +11 AEDT 1 2014-04-06 02 +10 AEST 2014-10-05 03 +11 AEDT 1 2015-04-05 02 +10 AEST 2015-10-04 03 +11 AEDT 1 2016-04-03 02 +10 AEST 2016-10-02 03 +11 AEDT 1 2017-04-02 02 +10 AEST 2017-10-01 03 +11 AEDT 1 2018-04-01 02 +10 AEST 2018-10-07 03 +11 AEDT 1 2019-04-07 02 +10 AEST 2019-10-06 03 +11 AEDT 1 2020-04-05 02 +10 AEST 2020-10-04 03 +11 AEDT 1 2021-04-04 02 +10 AEST 2021-10-03 03 +11 AEDT 1 2022-04-03 02 +10 AEST 2022-10-02 03 +11 AEDT 1 2023-04-02 02 +10 AEST 2023-10-01 03 +11 AEDT 1 2024-04-07 02 +10 AEST 2024-10-06 03 +11 AEDT 1 2025-04-06 02 +10 AEST 2025-10-05 03 +11 AEDT 1 2026-04-05 02 +10 AEST 2026-10-04 03 +11 AEDT 1 2027-04-04 02 +10 AEST 2027-10-03 03 +11 AEDT 1 2028-04-02 02 +10 AEST 2028-10-01 03 +11 AEDT 1 2029-04-01 02 +10 AEST 2029-10-07 03 +11 AEDT 1 2030-04-07 02 +10 AEST 2030-10-06 03 +11 AEDT 1 2031-04-06 02 +10 AEST 2031-10-05 03 +11 AEDT 1 2032-04-04 02 +10 AEST 2032-10-03 03 +11 AEDT 1 2033-04-03 02 +10 AEST 2033-10-02 03 +11 AEDT 1 2034-04-02 02 +10 AEST 2034-10-01 03 +11 AEDT 1 2035-04-01 02 +10 AEST 2035-10-07 03 +11 AEDT 1 2036-04-06 02 +10 AEST 2036-10-05 03 +11 AEDT 1 2037-04-05 02 +10 AEST 2037-10-04 03 +11 AEDT 1 2038-04-04 02 +10 AEST 2038-10-03 03 +11 AEDT 1 2039-04-03 02 +10 AEST 2039-10-02 03 +11 AEDT 1 2040-04-01 02 +10 AEST 2040-10-07 03 +11 AEDT 1 2041-04-07 02 +10 AEST 2041-10-06 03 +11 AEDT 1 2042-04-06 02 +10 AEST 2042-10-05 03 +11 AEDT 1 2043-04-05 02 +10 AEST 2043-10-04 03 +11 AEDT 1 2044-04-03 02 +10 AEST 2044-10-02 03 +11 AEDT 1 2045-04-02 02 +10 AEST 2045-10-01 03 +11 AEDT 1 2046-04-01 02 +10 AEST 2046-10-07 03 +11 AEDT 1 2047-04-07 02 +10 AEST 2047-10-06 03 +11 AEDT 1 2048-04-05 02 +10 AEST 2048-10-04 03 +11 AEDT 1 2049-04-04 02 +10 AEST 2049-10-03 03 +11 AEDT 1 TZ="Australia/Perth" - - +074324 LMT 1895-12-01 00:16:36 +08 AWST 1917-01-01 01:01 +09 AWDT 1 1917-03-25 01 +08 AWST 1942-01-01 03 +09 AWDT 1 1942-03-29 01 +08 AWST 1942-09-27 03 +09 AWDT 1 1943-03-28 01 +08 AWST 1974-10-27 03 +09 AWDT 1 1975-03-02 02 +08 AWST 1983-10-30 03 +09 AWDT 1 1984-03-04 02 +08 AWST 1991-11-17 03 +09 AWDT 1 1992-03-01 02 +08 AWST 2006-12-03 03 +09 AWDT 1 2007-03-25 02 +08 AWST 2007-10-28 03 +09 AWDT 1 2008-03-30 02 +08 AWST 2008-10-26 03 +09 AWDT 1 2009-03-29 02 +08 AWST TZ="Australia/Sydney" - - +100452 LMT 1895-01-31 23:55:08 +10 AEST 1917-01-01 01:01 +11 AEDT 1 1917-03-25 01 +10 AEST 1942-01-01 03 +11 AEDT 1 1942-03-29 01 +10 AEST 1942-09-27 03 +11 AEDT 1 1943-03-28 01 +10 AEST 1943-10-03 03 +11 AEDT 1 1944-03-26 01 +10 AEST 1971-10-31 03 +11 AEDT 1 1972-02-27 02 +10 AEST 1972-10-29 03 +11 AEDT 1 1973-03-04 02 +10 AEST 1973-10-28 03 +11 AEDT 1 1974-03-03 02 +10 AEST 1974-10-27 03 +11 AEDT 1 1975-03-02 02 +10 AEST 1975-10-26 03 +11 AEDT 1 1976-03-07 02 +10 AEST 1976-10-31 03 +11 AEDT 1 1977-03-06 02 +10 AEST 1977-10-30 03 +11 AEDT 1 1978-03-05 02 +10 AEST 1978-10-29 03 +11 AEDT 1 1979-03-04 02 +10 AEST 1979-10-28 03 +11 AEDT 1 1980-03-02 02 +10 AEST 1980-10-26 03 +11 AEDT 1 1981-03-01 02 +10 AEST 1981-10-25 03 +11 AEDT 1 1982-04-04 02 +10 AEST 1982-10-31 03 +11 AEDT 1 1983-03-06 02 +10 AEST 1983-10-30 03 +11 AEDT 1 1984-03-04 02 +10 AEST 1984-10-28 03 +11 AEDT 1 1985-03-03 02 +10 AEST 1985-10-27 03 +11 AEDT 1 1986-03-16 02 +10 AEST 1986-10-19 03 +11 AEDT 1 1987-03-15 02 +10 AEST 1987-10-25 03 +11 AEDT 1 1988-03-20 02 +10 AEST 1988-10-30 03 +11 AEDT 1 1989-03-19 02 +10 AEST 1989-10-29 03 +11 AEDT 1 1990-03-04 02 +10 AEST 1990-10-28 03 +11 AEDT 1 1991-03-03 02 +10 AEST 1991-10-27 03 +11 AEDT 1 1992-03-01 02 +10 AEST 1992-10-25 03 +11 AEDT 1 1993-03-07 02 +10 AEST 1993-10-31 03 +11 AEDT 1 1994-03-06 02 +10 AEST 1994-10-30 03 +11 AEDT 1 1995-03-05 02 +10 AEST 1995-10-29 03 +11 AEDT 1 1996-03-31 02 +10 AEST 1996-10-27 03 +11 AEDT 1 1997-03-30 02 +10 AEST 1997-10-26 03 +11 AEDT 1 1998-03-29 02 +10 AEST 1998-10-25 03 +11 AEDT 1 1999-03-28 02 +10 AEST 1999-10-31 03 +11 AEDT 1 2000-03-26 02 +10 AEST 2000-08-27 03 +11 AEDT 1 2001-03-25 02 +10 AEST 2001-10-28 03 +11 AEDT 1 2002-03-31 02 +10 AEST 2002-10-27 03 +11 AEDT 1 2003-03-30 02 +10 AEST 2003-10-26 03 +11 AEDT 1 2004-03-28 02 +10 AEST 2004-10-31 03 +11 AEDT 1 2005-03-27 02 +10 AEST 2005-10-30 03 +11 AEDT 1 2006-04-02 02 +10 AEST 2006-10-29 03 +11 AEDT 1 2007-03-25 02 +10 AEST 2007-10-28 03 +11 AEDT 1 2008-04-06 02 +10 AEST 2008-10-05 03 +11 AEDT 1 2009-04-05 02 +10 AEST 2009-10-04 03 +11 AEDT 1 2010-04-04 02 +10 AEST 2010-10-03 03 +11 AEDT 1 2011-04-03 02 +10 AEST 2011-10-02 03 +11 AEDT 1 2012-04-01 02 +10 AEST 2012-10-07 03 +11 AEDT 1 2013-04-07 02 +10 AEST 2013-10-06 03 +11 AEDT 1 2014-04-06 02 +10 AEST 2014-10-05 03 +11 AEDT 1 2015-04-05 02 +10 AEST 2015-10-04 03 +11 AEDT 1 2016-04-03 02 +10 AEST 2016-10-02 03 +11 AEDT 1 2017-04-02 02 +10 AEST 2017-10-01 03 +11 AEDT 1 2018-04-01 02 +10 AEST 2018-10-07 03 +11 AEDT 1 2019-04-07 02 +10 AEST 2019-10-06 03 +11 AEDT 1 2020-04-05 02 +10 AEST 2020-10-04 03 +11 AEDT 1 2021-04-04 02 +10 AEST 2021-10-03 03 +11 AEDT 1 2022-04-03 02 +10 AEST 2022-10-02 03 +11 AEDT 1 2023-04-02 02 +10 AEST 2023-10-01 03 +11 AEDT 1 2024-04-07 02 +10 AEST 2024-10-06 03 +11 AEDT 1 2025-04-06 02 +10 AEST 2025-10-05 03 +11 AEDT 1 2026-04-05 02 +10 AEST 2026-10-04 03 +11 AEDT 1 2027-04-04 02 +10 AEST 2027-10-03 03 +11 AEDT 1 2028-04-02 02 +10 AEST 2028-10-01 03 +11 AEDT 1 2029-04-01 02 +10 AEST 2029-10-07 03 +11 AEDT 1 2030-04-07 02 +10 AEST 2030-10-06 03 +11 AEDT 1 2031-04-06 02 +10 AEST 2031-10-05 03 +11 AEDT 1 2032-04-04 02 +10 AEST 2032-10-03 03 +11 AEDT 1 2033-04-03 02 +10 AEST 2033-10-02 03 +11 AEDT 1 2034-04-02 02 +10 AEST 2034-10-01 03 +11 AEDT 1 2035-04-01 02 +10 AEST 2035-10-07 03 +11 AEDT 1 2036-04-06 02 +10 AEST 2036-10-05 03 +11 AEDT 1 2037-04-05 02 +10 AEST 2037-10-04 03 +11 AEDT 1 2038-04-04 02 +10 AEST 2038-10-03 03 +11 AEDT 1 2039-04-03 02 +10 AEST 2039-10-02 03 +11 AEDT 1 2040-04-01 02 +10 AEST 2040-10-07 03 +11 AEDT 1 2041-04-07 02 +10 AEST 2041-10-06 03 +11 AEDT 1 2042-04-06 02 +10 AEST 2042-10-05 03 +11 AEDT 1 2043-04-05 02 +10 AEST 2043-10-04 03 +11 AEDT 1 2044-04-03 02 +10 AEST 2044-10-02 03 +11 AEDT 1 2045-04-02 02 +10 AEST 2045-10-01 03 +11 AEDT 1 2046-04-01 02 +10 AEST 2046-10-07 03 +11 AEDT 1 2047-04-07 02 +10 AEST 2047-10-06 03 +11 AEDT 1 2048-04-05 02 +10 AEST 2048-10-04 03 +11 AEDT 1 2049-04-04 02 +10 AEST 2049-10-03 03 +11 AEDT 1 TZ="CET" - - +01 CET 1916-05-01 00 +02 CEST 1 1916-10-01 00 +01 CET 1917-04-16 03 +02 CEST 1 1917-09-17 02 +01 CET 1918-04-15 03 +02 CEST 1 1918-09-16 02 +01 CET 1940-04-01 03 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1944-04-03 03 +02 CEST 1 1944-10-02 02 +01 CET 1945-04-02 03 +02 CEST 1 1945-09-16 02 +01 CET 1977-04-03 03 +02 CEST 1 1977-09-25 02 +01 CET 1978-04-02 03 +02 CEST 1 1978-10-01 02 +01 CET 1979-04-01 03 +02 CEST 1 1979-09-30 02 +01 CET 1980-04-06 03 +02 CEST 1 1980-09-28 02 +01 CET 1981-03-29 03 +02 CEST 1 1981-09-27 02 +01 CET 1982-03-28 03 +02 CEST 1 1982-09-26 02 +01 CET 1983-03-27 03 +02 CEST 1 1983-09-25 02 +01 CET 1984-03-25 03 +02 CEST 1 1984-09-30 02 +01 CET 1985-03-31 03 +02 CEST 1 1985-09-29 02 +01 CET 1986-03-30 03 +02 CEST 1 1986-09-28 02 +01 CET 1987-03-29 03 +02 CEST 1 1987-09-27 02 +01 CET 1988-03-27 03 +02 CEST 1 1988-09-25 02 +01 CET 1989-03-26 03 +02 CEST 1 1989-09-24 02 +01 CET 1990-03-25 03 +02 CEST 1 1990-09-30 02 +01 CET 1991-03-31 03 +02 CEST 1 1991-09-29 02 +01 CET 1992-03-29 03 +02 CEST 1 1992-09-27 02 +01 CET 1993-03-28 03 +02 CEST 1 1993-09-26 02 +01 CET 1994-03-27 03 +02 CEST 1 1994-09-25 02 +01 CET 1995-03-26 03 +02 CEST 1 1995-09-24 02 +01 CET 1996-03-31 03 +02 CEST 1 1996-10-27 02 +01 CET 1997-03-30 03 +02 CEST 1 1997-10-26 02 +01 CET 1998-03-29 03 +02 CEST 1 1998-10-25 02 +01 CET 1999-03-28 03 +02 CEST 1 1999-10-31 02 +01 CET 2000-03-26 03 +02 CEST 1 2000-10-29 02 +01 CET 2001-03-25 03 +02 CEST 1 2001-10-28 02 +01 CET 2002-03-31 03 +02 CEST 1 2002-10-27 02 +01 CET 2003-03-30 03 +02 CEST 1 2003-10-26 02 +01 CET 2004-03-28 03 +02 CEST 1 2004-10-31 02 +01 CET 2005-03-27 03 +02 CEST 1 2005-10-30 02 +01 CET 2006-03-26 03 +02 CEST 1 2006-10-29 02 +01 CET 2007-03-25 03 +02 CEST 1 2007-10-28 02 +01 CET 2008-03-30 03 +02 CEST 1 2008-10-26 02 +01 CET 2009-03-29 03 +02 CEST 1 2009-10-25 02 +01 CET 2010-03-28 03 +02 CEST 1 2010-10-31 02 +01 CET 2011-03-27 03 +02 CEST 1 2011-10-30 02 +01 CET 2012-03-25 03 +02 CEST 1 2012-10-28 02 +01 CET 2013-03-31 03 +02 CEST 1 2013-10-27 02 +01 CET 2014-03-30 03 +02 CEST 1 2014-10-26 02 +01 CET 2015-03-29 03 +02 CEST 1 2015-10-25 02 +01 CET 2016-03-27 03 +02 CEST 1 2016-10-30 02 +01 CET 2017-03-26 03 +02 CEST 1 2017-10-29 02 +01 CET 2018-03-25 03 +02 CEST 1 2018-10-28 02 +01 CET 2019-03-31 03 +02 CEST 1 2019-10-27 02 +01 CET 2020-03-29 03 +02 CEST 1 2020-10-25 02 +01 CET 2021-03-28 03 +02 CEST 1 2021-10-31 02 +01 CET 2022-03-27 03 +02 CEST 1 2022-10-30 02 +01 CET 2023-03-26 03 +02 CEST 1 2023-10-29 02 +01 CET 2024-03-31 03 +02 CEST 1 2024-10-27 02 +01 CET 2025-03-30 03 +02 CEST 1 2025-10-26 02 +01 CET 2026-03-29 03 +02 CEST 1 2026-10-25 02 +01 CET 2027-03-28 03 +02 CEST 1 2027-10-31 02 +01 CET 2028-03-26 03 +02 CEST 1 2028-10-29 02 +01 CET 2029-03-25 03 +02 CEST 1 2029-10-28 02 +01 CET 2030-03-31 03 +02 CEST 1 2030-10-27 02 +01 CET 2031-03-30 03 +02 CEST 1 2031-10-26 02 +01 CET 2032-03-28 03 +02 CEST 1 2032-10-31 02 +01 CET 2033-03-27 03 +02 CEST 1 2033-10-30 02 +01 CET 2034-03-26 03 +02 CEST 1 2034-10-29 02 +01 CET 2035-03-25 03 +02 CEST 1 2035-10-28 02 +01 CET 2036-03-30 03 +02 CEST 1 2036-10-26 02 +01 CET 2037-03-29 03 +02 CEST 1 2037-10-25 02 +01 CET 2038-03-28 03 +02 CEST 1 2038-10-31 02 +01 CET 2039-03-27 03 +02 CEST 1 2039-10-30 02 +01 CET 2040-03-25 03 +02 CEST 1 2040-10-28 02 +01 CET 2041-03-31 03 +02 CEST 1 2041-10-27 02 +01 CET 2042-03-30 03 +02 CEST 1 2042-10-26 02 +01 CET 2043-03-29 03 +02 CEST 1 2043-10-25 02 +01 CET 2044-03-27 03 +02 CEST 1 2044-10-30 02 +01 CET 2045-03-26 03 +02 CEST 1 2045-10-29 02 +01 CET 2046-03-25 03 +02 CEST 1 2046-10-28 02 +01 CET 2047-03-31 03 +02 CEST 1 2047-10-27 02 +01 CET 2048-03-29 03 +02 CEST 1 2048-10-25 02 +01 CET 2049-03-28 03 +02 CEST 1 2049-10-31 02 +01 CET TZ="CST6CDT" - - -06 CST 1918-03-31 03 -05 CDT 1 1918-10-27 01 -06 CST 1919-03-30 03 -05 CDT 1 1919-10-26 01 -06 CST 1942-02-09 03 -05 CWT 1 1945-08-14 18 -05 CPT 1 1945-09-30 01 -06 CST 1967-04-30 03 -05 CDT 1 1967-10-29 01 -06 CST 1968-04-28 03 -05 CDT 1 1968-10-27 01 -06 CST 1969-04-27 03 -05 CDT 1 1969-10-26 01 -06 CST 1970-04-26 03 -05 CDT 1 1970-10-25 01 -06 CST 1971-04-25 03 -05 CDT 1 1971-10-31 01 -06 CST 1972-04-30 03 -05 CDT 1 1972-10-29 01 -06 CST 1973-04-29 03 -05 CDT 1 1973-10-28 01 -06 CST 1974-01-06 03 -05 CDT 1 1974-10-27 01 -06 CST 1975-02-23 03 -05 CDT 1 1975-10-26 01 -06 CST 1976-04-25 03 -05 CDT 1 1976-10-31 01 -06 CST 1977-04-24 03 -05 CDT 1 1977-10-30 01 -06 CST 1978-04-30 03 -05 CDT 1 1978-10-29 01 -06 CST 1979-04-29 03 -05 CDT 1 1979-10-28 01 -06 CST 1980-04-27 03 -05 CDT 1 1980-10-26 01 -06 CST 1981-04-26 03 -05 CDT 1 1981-10-25 01 -06 CST 1982-04-25 03 -05 CDT 1 1982-10-31 01 -06 CST 1983-04-24 03 -05 CDT 1 1983-10-30 01 -06 CST 1984-04-29 03 -05 CDT 1 1984-10-28 01 -06 CST 1985-04-28 03 -05 CDT 1 1985-10-27 01 -06 CST 1986-04-27 03 -05 CDT 1 1986-10-26 01 -06 CST 1987-04-05 03 -05 CDT 1 1987-10-25 01 -06 CST 1988-04-03 03 -05 CDT 1 1988-10-30 01 -06 CST 1989-04-02 03 -05 CDT 1 1989-10-29 01 -06 CST 1990-04-01 03 -05 CDT 1 1990-10-28 01 -06 CST 1991-04-07 03 -05 CDT 1 1991-10-27 01 -06 CST 1992-04-05 03 -05 CDT 1 1992-10-25 01 -06 CST 1993-04-04 03 -05 CDT 1 1993-10-31 01 -06 CST 1994-04-03 03 -05 CDT 1 1994-10-30 01 -06 CST 1995-04-02 03 -05 CDT 1 1995-10-29 01 -06 CST 1996-04-07 03 -05 CDT 1 1996-10-27 01 -06 CST 1997-04-06 03 -05 CDT 1 1997-10-26 01 -06 CST 1998-04-05 03 -05 CDT 1 1998-10-25 01 -06 CST 1999-04-04 03 -05 CDT 1 1999-10-31 01 -06 CST 2000-04-02 03 -05 CDT 1 2000-10-29 01 -06 CST 2001-04-01 03 -05 CDT 1 2001-10-28 01 -06 CST 2002-04-07 03 -05 CDT 1 2002-10-27 01 -06 CST 2003-04-06 03 -05 CDT 1 2003-10-26 01 -06 CST 2004-04-04 03 -05 CDT 1 2004-10-31 01 -06 CST 2005-04-03 03 -05 CDT 1 2005-10-30 01 -06 CST 2006-04-02 03 -05 CDT 1 2006-10-29 01 -06 CST 2007-03-11 03 -05 CDT 1 2007-11-04 01 -06 CST 2008-03-09 03 -05 CDT 1 2008-11-02 01 -06 CST 2009-03-08 03 -05 CDT 1 2009-11-01 01 -06 CST 2010-03-14 03 -05 CDT 1 2010-11-07 01 -06 CST 2011-03-13 03 -05 CDT 1 2011-11-06 01 -06 CST 2012-03-11 03 -05 CDT 1 2012-11-04 01 -06 CST 2013-03-10 03 -05 CDT 1 2013-11-03 01 -06 CST 2014-03-09 03 -05 CDT 1 2014-11-02 01 -06 CST 2015-03-08 03 -05 CDT 1 2015-11-01 01 -06 CST 2016-03-13 03 -05 CDT 1 2016-11-06 01 -06 CST 2017-03-12 03 -05 CDT 1 2017-11-05 01 -06 CST 2018-03-11 03 -05 CDT 1 2018-11-04 01 -06 CST 2019-03-10 03 -05 CDT 1 2019-11-03 01 -06 CST 2020-03-08 03 -05 CDT 1 2020-11-01 01 -06 CST 2021-03-14 03 -05 CDT 1 2021-11-07 01 -06 CST 2022-03-13 03 -05 CDT 1 2022-11-06 01 -06 CST 2023-03-12 03 -05 CDT 1 2023-11-05 01 -06 CST 2024-03-10 03 -05 CDT 1 2024-11-03 01 -06 CST 2025-03-09 03 -05 CDT 1 2025-11-02 01 -06 CST 2026-03-08 03 -05 CDT 1 2026-11-01 01 -06 CST 2027-03-14 03 -05 CDT 1 2027-11-07 01 -06 CST 2028-03-12 03 -05 CDT 1 2028-11-05 01 -06 CST 2029-03-11 03 -05 CDT 1 2029-11-04 01 -06 CST 2030-03-10 03 -05 CDT 1 2030-11-03 01 -06 CST 2031-03-09 03 -05 CDT 1 2031-11-02 01 -06 CST 2032-03-14 03 -05 CDT 1 2032-11-07 01 -06 CST 2033-03-13 03 -05 CDT 1 2033-11-06 01 -06 CST 2034-03-12 03 -05 CDT 1 2034-11-05 01 -06 CST 2035-03-11 03 -05 CDT 1 2035-11-04 01 -06 CST 2036-03-09 03 -05 CDT 1 2036-11-02 01 -06 CST 2037-03-08 03 -05 CDT 1 2037-11-01 01 -06 CST 2038-03-14 03 -05 CDT 1 2038-11-07 01 -06 CST 2039-03-13 03 -05 CDT 1 2039-11-06 01 -06 CST 2040-03-11 03 -05 CDT 1 2040-11-04 01 -06 CST 2041-03-10 03 -05 CDT 1 2041-11-03 01 -06 CST 2042-03-09 03 -05 CDT 1 2042-11-02 01 -06 CST 2043-03-08 03 -05 CDT 1 2043-11-01 01 -06 CST 2044-03-13 03 -05 CDT 1 2044-11-06 01 -06 CST 2045-03-12 03 -05 CDT 1 2045-11-05 01 -06 CST 2046-03-11 03 -05 CDT 1 2046-11-04 01 -06 CST 2047-03-10 03 -05 CDT 1 2047-11-03 01 -06 CST 2048-03-08 03 -05 CDT 1 2048-11-01 01 -06 CST 2049-03-14 03 -05 CDT 1 2049-11-07 01 -06 CST TZ="EET" - - +02 EET 1977-04-03 04 +03 EEST 1 1977-09-25 03 +02 EET 1978-04-02 04 +03 EEST 1 1978-10-01 03 +02 EET 1979-04-01 04 +03 EEST 1 1979-09-30 03 +02 EET 1980-04-06 04 +03 EEST 1 1980-09-28 03 +02 EET 1981-03-29 04 +03 EEST 1 1981-09-27 03 +02 EET 1982-03-28 04 +03 EEST 1 1982-09-26 03 +02 EET 1983-03-27 04 +03 EEST 1 1983-09-25 03 +02 EET 1984-03-25 04 +03 EEST 1 1984-09-30 03 +02 EET 1985-03-31 04 +03 EEST 1 1985-09-29 03 +02 EET 1986-03-30 04 +03 EEST 1 1986-09-28 03 +02 EET 1987-03-29 04 +03 EEST 1 1987-09-27 03 +02 EET 1988-03-27 04 +03 EEST 1 1988-09-25 03 +02 EET 1989-03-26 04 +03 EEST 1 1989-09-24 03 +02 EET 1990-03-25 04 +03 EEST 1 1990-09-30 03 +02 EET 1991-03-31 04 +03 EEST 1 1991-09-29 03 +02 EET 1992-03-29 04 +03 EEST 1 1992-09-27 03 +02 EET 1993-03-28 04 +03 EEST 1 1993-09-26 03 +02 EET 1994-03-27 04 +03 EEST 1 1994-09-25 03 +02 EET 1995-03-26 04 +03 EEST 1 1995-09-24 03 +02 EET 1996-03-31 04 +03 EEST 1 1996-10-27 03 +02 EET 1997-03-30 04 +03 EEST 1 1997-10-26 03 +02 EET 1998-03-29 04 +03 EEST 1 1998-10-25 03 +02 EET 1999-03-28 04 +03 EEST 1 1999-10-31 03 +02 EET 2000-03-26 04 +03 EEST 1 2000-10-29 03 +02 EET 2001-03-25 04 +03 EEST 1 2001-10-28 03 +02 EET 2002-03-31 04 +03 EEST 1 2002-10-27 03 +02 EET 2003-03-30 04 +03 EEST 1 2003-10-26 03 +02 EET 2004-03-28 04 +03 EEST 1 2004-10-31 03 +02 EET 2005-03-27 04 +03 EEST 1 2005-10-30 03 +02 EET 2006-03-26 04 +03 EEST 1 2006-10-29 03 +02 EET 2007-03-25 04 +03 EEST 1 2007-10-28 03 +02 EET 2008-03-30 04 +03 EEST 1 2008-10-26 03 +02 EET 2009-03-29 04 +03 EEST 1 2009-10-25 03 +02 EET 2010-03-28 04 +03 EEST 1 2010-10-31 03 +02 EET 2011-03-27 04 +03 EEST 1 2011-10-30 03 +02 EET 2012-03-25 04 +03 EEST 1 2012-10-28 03 +02 EET 2013-03-31 04 +03 EEST 1 2013-10-27 03 +02 EET 2014-03-30 04 +03 EEST 1 2014-10-26 03 +02 EET 2015-03-29 04 +03 EEST 1 2015-10-25 03 +02 EET 2016-03-27 04 +03 EEST 1 2016-10-30 03 +02 EET 2017-03-26 04 +03 EEST 1 2017-10-29 03 +02 EET 2018-03-25 04 +03 EEST 1 2018-10-28 03 +02 EET 2019-03-31 04 +03 EEST 1 2019-10-27 03 +02 EET 2020-03-29 04 +03 EEST 1 2020-10-25 03 +02 EET 2021-03-28 04 +03 EEST 1 2021-10-31 03 +02 EET 2022-03-27 04 +03 EEST 1 2022-10-30 03 +02 EET 2023-03-26 04 +03 EEST 1 2023-10-29 03 +02 EET 2024-03-31 04 +03 EEST 1 2024-10-27 03 +02 EET 2025-03-30 04 +03 EEST 1 2025-10-26 03 +02 EET 2026-03-29 04 +03 EEST 1 2026-10-25 03 +02 EET 2027-03-28 04 +03 EEST 1 2027-10-31 03 +02 EET 2028-03-26 04 +03 EEST 1 2028-10-29 03 +02 EET 2029-03-25 04 +03 EEST 1 2029-10-28 03 +02 EET 2030-03-31 04 +03 EEST 1 2030-10-27 03 +02 EET 2031-03-30 04 +03 EEST 1 2031-10-26 03 +02 EET 2032-03-28 04 +03 EEST 1 2032-10-31 03 +02 EET 2033-03-27 04 +03 EEST 1 2033-10-30 03 +02 EET 2034-03-26 04 +03 EEST 1 2034-10-29 03 +02 EET 2035-03-25 04 +03 EEST 1 2035-10-28 03 +02 EET 2036-03-30 04 +03 EEST 1 2036-10-26 03 +02 EET 2037-03-29 04 +03 EEST 1 2037-10-25 03 +02 EET 2038-03-28 04 +03 EEST 1 2038-10-31 03 +02 EET 2039-03-27 04 +03 EEST 1 2039-10-30 03 +02 EET 2040-03-25 04 +03 EEST 1 2040-10-28 03 +02 EET 2041-03-31 04 +03 EEST 1 2041-10-27 03 +02 EET 2042-03-30 04 +03 EEST 1 2042-10-26 03 +02 EET 2043-03-29 04 +03 EEST 1 2043-10-25 03 +02 EET 2044-03-27 04 +03 EEST 1 2044-10-30 03 +02 EET 2045-03-26 04 +03 EEST 1 2045-10-29 03 +02 EET 2046-03-25 04 +03 EEST 1 2046-10-28 03 +02 EET 2047-03-31 04 +03 EEST 1 2047-10-27 03 +02 EET 2048-03-29 04 +03 EEST 1 2048-10-25 03 +02 EET 2049-03-28 04 +03 EEST 1 2049-10-31 03 +02 EET TZ="EST" - - -05 EST TZ="EST5EDT" - - -05 EST 1918-03-31 03 -04 EDT 1 1918-10-27 01 -05 EST 1919-03-30 03 -04 EDT 1 1919-10-26 01 -05 EST 1942-02-09 03 -04 EWT 1 1945-08-14 19 -04 EPT 1 1945-09-30 01 -05 EST 1967-04-30 03 -04 EDT 1 1967-10-29 01 -05 EST 1968-04-28 03 -04 EDT 1 1968-10-27 01 -05 EST 1969-04-27 03 -04 EDT 1 1969-10-26 01 -05 EST 1970-04-26 03 -04 EDT 1 1970-10-25 01 -05 EST 1971-04-25 03 -04 EDT 1 1971-10-31 01 -05 EST 1972-04-30 03 -04 EDT 1 1972-10-29 01 -05 EST 1973-04-29 03 -04 EDT 1 1973-10-28 01 -05 EST 1974-01-06 03 -04 EDT 1 1974-10-27 01 -05 EST 1975-02-23 03 -04 EDT 1 1975-10-26 01 -05 EST 1976-04-25 03 -04 EDT 1 1976-10-31 01 -05 EST 1977-04-24 03 -04 EDT 1 1977-10-30 01 -05 EST 1978-04-30 03 -04 EDT 1 1978-10-29 01 -05 EST 1979-04-29 03 -04 EDT 1 1979-10-28 01 -05 EST 1980-04-27 03 -04 EDT 1 1980-10-26 01 -05 EST 1981-04-26 03 -04 EDT 1 1981-10-25 01 -05 EST 1982-04-25 03 -04 EDT 1 1982-10-31 01 -05 EST 1983-04-24 03 -04 EDT 1 1983-10-30 01 -05 EST 1984-04-29 03 -04 EDT 1 1984-10-28 01 -05 EST 1985-04-28 03 -04 EDT 1 1985-10-27 01 -05 EST 1986-04-27 03 -04 EDT 1 1986-10-26 01 -05 EST 1987-04-05 03 -04 EDT 1 1987-10-25 01 -05 EST 1988-04-03 03 -04 EDT 1 1988-10-30 01 -05 EST 1989-04-02 03 -04 EDT 1 1989-10-29 01 -05 EST 1990-04-01 03 -04 EDT 1 1990-10-28 01 -05 EST 1991-04-07 03 -04 EDT 1 1991-10-27 01 -05 EST 1992-04-05 03 -04 EDT 1 1992-10-25 01 -05 EST 1993-04-04 03 -04 EDT 1 1993-10-31 01 -05 EST 1994-04-03 03 -04 EDT 1 1994-10-30 01 -05 EST 1995-04-02 03 -04 EDT 1 1995-10-29 01 -05 EST 1996-04-07 03 -04 EDT 1 1996-10-27 01 -05 EST 1997-04-06 03 -04 EDT 1 1997-10-26 01 -05 EST 1998-04-05 03 -04 EDT 1 1998-10-25 01 -05 EST 1999-04-04 03 -04 EDT 1 1999-10-31 01 -05 EST 2000-04-02 03 -04 EDT 1 2000-10-29 01 -05 EST 2001-04-01 03 -04 EDT 1 2001-10-28 01 -05 EST 2002-04-07 03 -04 EDT 1 2002-10-27 01 -05 EST 2003-04-06 03 -04 EDT 1 2003-10-26 01 -05 EST 2004-04-04 03 -04 EDT 1 2004-10-31 01 -05 EST 2005-04-03 03 -04 EDT 1 2005-10-30 01 -05 EST 2006-04-02 03 -04 EDT 1 2006-10-29 01 -05 EST 2007-03-11 03 -04 EDT 1 2007-11-04 01 -05 EST 2008-03-09 03 -04 EDT 1 2008-11-02 01 -05 EST 2009-03-08 03 -04 EDT 1 2009-11-01 01 -05 EST 2010-03-14 03 -04 EDT 1 2010-11-07 01 -05 EST 2011-03-13 03 -04 EDT 1 2011-11-06 01 -05 EST 2012-03-11 03 -04 EDT 1 2012-11-04 01 -05 EST 2013-03-10 03 -04 EDT 1 2013-11-03 01 -05 EST 2014-03-09 03 -04 EDT 1 2014-11-02 01 -05 EST 2015-03-08 03 -04 EDT 1 2015-11-01 01 -05 EST 2016-03-13 03 -04 EDT 1 2016-11-06 01 -05 EST 2017-03-12 03 -04 EDT 1 2017-11-05 01 -05 EST 2018-03-11 03 -04 EDT 1 2018-11-04 01 -05 EST 2019-03-10 03 -04 EDT 1 2019-11-03 01 -05 EST 2020-03-08 03 -04 EDT 1 2020-11-01 01 -05 EST 2021-03-14 03 -04 EDT 1 2021-11-07 01 -05 EST 2022-03-13 03 -04 EDT 1 2022-11-06 01 -05 EST 2023-03-12 03 -04 EDT 1 2023-11-05 01 -05 EST 2024-03-10 03 -04 EDT 1 2024-11-03 01 -05 EST 2025-03-09 03 -04 EDT 1 2025-11-02 01 -05 EST 2026-03-08 03 -04 EDT 1 2026-11-01 01 -05 EST 2027-03-14 03 -04 EDT 1 2027-11-07 01 -05 EST 2028-03-12 03 -04 EDT 1 2028-11-05 01 -05 EST 2029-03-11 03 -04 EDT 1 2029-11-04 01 -05 EST 2030-03-10 03 -04 EDT 1 2030-11-03 01 -05 EST 2031-03-09 03 -04 EDT 1 2031-11-02 01 -05 EST 2032-03-14 03 -04 EDT 1 2032-11-07 01 -05 EST 2033-03-13 03 -04 EDT 1 2033-11-06 01 -05 EST 2034-03-12 03 -04 EDT 1 2034-11-05 01 -05 EST 2035-03-11 03 -04 EDT 1 2035-11-04 01 -05 EST 2036-03-09 03 -04 EDT 1 2036-11-02 01 -05 EST 2037-03-08 03 -04 EDT 1 2037-11-01 01 -05 EST 2038-03-14 03 -04 EDT 1 2038-11-07 01 -05 EST 2039-03-13 03 -04 EDT 1 2039-11-06 01 -05 EST 2040-03-11 03 -04 EDT 1 2040-11-04 01 -05 EST 2041-03-10 03 -04 EDT 1 2041-11-03 01 -05 EST 2042-03-09 03 -04 EDT 1 2042-11-02 01 -05 EST 2043-03-08 03 -04 EDT 1 2043-11-01 01 -05 EST 2044-03-13 03 -04 EDT 1 2044-11-06 01 -05 EST 2045-03-12 03 -04 EDT 1 2045-11-05 01 -05 EST 2046-03-11 03 -04 EDT 1 2046-11-04 01 -05 EST 2047-03-10 03 -04 EDT 1 2047-11-03 01 -05 EST 2048-03-08 03 -04 EDT 1 2048-11-01 01 -05 EST 2049-03-14 03 -04 EDT 1 2049-11-07 01 -05 EST TZ="Etc/GMT" - - +00 GMT TZ="Etc/GMT+1" - - -01 TZ="Etc/GMT+10" - - -10 TZ="Etc/GMT+11" - - -11 TZ="Etc/GMT+12" - - -12 TZ="Etc/GMT+2" - - -02 TZ="Etc/GMT+3" - - -03 TZ="Etc/GMT+4" - - -04 TZ="Etc/GMT+5" - - -05 TZ="Etc/GMT+6" - - -06 TZ="Etc/GMT+7" - - -07 TZ="Etc/GMT+8" - - -08 TZ="Etc/GMT+9" - - -09 TZ="Etc/GMT-1" - - +01 TZ="Etc/GMT-10" - - +10 TZ="Etc/GMT-11" - - +11 TZ="Etc/GMT-12" - - +12 TZ="Etc/GMT-13" - - +13 TZ="Etc/GMT-14" - - +14 TZ="Etc/GMT-2" - - +02 TZ="Etc/GMT-3" - - +03 TZ="Etc/GMT-4" - - +04 TZ="Etc/GMT-5" - - +05 TZ="Etc/GMT-6" - - +06 TZ="Etc/GMT-7" - - +07 TZ="Etc/GMT-8" - - +08 TZ="Etc/GMT-9" - - +09 TZ="Etc/UTC" - - +00 UTC TZ="Europe/Amsterdam" - - +001932 LMT 1835-01-01 00 +001932 AMT 1916-05-01 01 +011932 NST 1 1916-09-30 23 +001932 AMT 1917-04-16 03 +011932 NST 1 1917-09-17 02 +001932 AMT 1918-04-01 03 +011932 NST 1 1918-09-30 02 +001932 AMT 1919-04-07 03 +011932 NST 1 1919-09-29 02 +001932 AMT 1920-04-05 03 +011932 NST 1 1920-09-27 02 +001932 AMT 1921-04-04 03 +011932 NST 1 1921-09-26 02 +001932 AMT 1922-03-26 03 +011932 NST 1 1922-10-08 02 +001932 AMT 1923-06-01 03 +011932 NST 1 1923-10-07 02 +001932 AMT 1924-03-30 03 +011932 NST 1 1924-10-05 02 +001932 AMT 1925-06-05 03 +011932 NST 1 1925-10-04 02 +001932 AMT 1926-05-15 03 +011932 NST 1 1926-10-03 02 +001932 AMT 1927-05-15 03 +011932 NST 1 1927-10-02 02 +001932 AMT 1928-05-15 03 +011932 NST 1 1928-10-07 02 +001932 AMT 1929-05-15 03 +011932 NST 1 1929-10-06 02 +001932 AMT 1930-05-15 03 +011932 NST 1 1930-10-05 02 +001932 AMT 1931-05-15 03 +011932 NST 1 1931-10-04 02 +001932 AMT 1932-05-22 03 +011932 NST 1 1932-10-02 02 +001932 AMT 1933-05-15 03 +011932 NST 1 1933-10-08 02 +001932 AMT 1934-05-15 03 +011932 NST 1 1934-10-07 02 +001932 AMT 1935-05-15 03 +011932 NST 1 1935-10-06 02 +001932 AMT 1936-05-15 03 +011932 NST 1 1936-10-04 02 +001932 AMT 1937-05-22 03 +011932 NST 1 1937-07-01 00:00:28 +0120 1 1937-10-03 02 +0020 1938-05-15 03 +0120 1 1938-10-02 02 +0020 1939-05-15 03 +0120 1 1939-10-08 02 +0020 1940-05-16 01:40 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1944-04-03 03 +02 CEST 1 1944-10-02 02 +01 CET 1945-04-02 03 +02 CEST 1 1945-09-16 02 +01 CET 1977-04-03 03 +02 CEST 1 1977-09-25 02 +01 CET 1978-04-02 03 +02 CEST 1 1978-10-01 02 +01 CET 1979-04-01 03 +02 CEST 1 1979-09-30 02 +01 CET 1980-04-06 03 +02 CEST 1 1980-09-28 02 +01 CET 1981-03-29 03 +02 CEST 1 1981-09-27 02 +01 CET 1982-03-28 03 +02 CEST 1 1982-09-26 02 +01 CET 1983-03-27 03 +02 CEST 1 1983-09-25 02 +01 CET 1984-03-25 03 +02 CEST 1 1984-09-30 02 +01 CET 1985-03-31 03 +02 CEST 1 1985-09-29 02 +01 CET 1986-03-30 03 +02 CEST 1 1986-09-28 02 +01 CET 1987-03-29 03 +02 CEST 1 1987-09-27 02 +01 CET 1988-03-27 03 +02 CEST 1 1988-09-25 02 +01 CET 1989-03-26 03 +02 CEST 1 1989-09-24 02 +01 CET 1990-03-25 03 +02 CEST 1 1990-09-30 02 +01 CET 1991-03-31 03 +02 CEST 1 1991-09-29 02 +01 CET 1992-03-29 03 +02 CEST 1 1992-09-27 02 +01 CET 1993-03-28 03 +02 CEST 1 1993-09-26 02 +01 CET 1994-03-27 03 +02 CEST 1 1994-09-25 02 +01 CET 1995-03-26 03 +02 CEST 1 1995-09-24 02 +01 CET 1996-03-31 03 +02 CEST 1 1996-10-27 02 +01 CET 1997-03-30 03 +02 CEST 1 1997-10-26 02 +01 CET 1998-03-29 03 +02 CEST 1 1998-10-25 02 +01 CET 1999-03-28 03 +02 CEST 1 1999-10-31 02 +01 CET 2000-03-26 03 +02 CEST 1 2000-10-29 02 +01 CET 2001-03-25 03 +02 CEST 1 2001-10-28 02 +01 CET 2002-03-31 03 +02 CEST 1 2002-10-27 02 +01 CET 2003-03-30 03 +02 CEST 1 2003-10-26 02 +01 CET 2004-03-28 03 +02 CEST 1 2004-10-31 02 +01 CET 2005-03-27 03 +02 CEST 1 2005-10-30 02 +01 CET 2006-03-26 03 +02 CEST 1 2006-10-29 02 +01 CET 2007-03-25 03 +02 CEST 1 2007-10-28 02 +01 CET 2008-03-30 03 +02 CEST 1 2008-10-26 02 +01 CET 2009-03-29 03 +02 CEST 1 2009-10-25 02 +01 CET 2010-03-28 03 +02 CEST 1 2010-10-31 02 +01 CET 2011-03-27 03 +02 CEST 1 2011-10-30 02 +01 CET 2012-03-25 03 +02 CEST 1 2012-10-28 02 +01 CET 2013-03-31 03 +02 CEST 1 2013-10-27 02 +01 CET 2014-03-30 03 +02 CEST 1 2014-10-26 02 +01 CET 2015-03-29 03 +02 CEST 1 2015-10-25 02 +01 CET 2016-03-27 03 +02 CEST 1 2016-10-30 02 +01 CET 2017-03-26 03 +02 CEST 1 2017-10-29 02 +01 CET 2018-03-25 03 +02 CEST 1 2018-10-28 02 +01 CET 2019-03-31 03 +02 CEST 1 2019-10-27 02 +01 CET 2020-03-29 03 +02 CEST 1 2020-10-25 02 +01 CET 2021-03-28 03 +02 CEST 1 2021-10-31 02 +01 CET 2022-03-27 03 +02 CEST 1 2022-10-30 02 +01 CET 2023-03-26 03 +02 CEST 1 2023-10-29 02 +01 CET 2024-03-31 03 +02 CEST 1 2024-10-27 02 +01 CET 2025-03-30 03 +02 CEST 1 2025-10-26 02 +01 CET 2026-03-29 03 +02 CEST 1 2026-10-25 02 +01 CET 2027-03-28 03 +02 CEST 1 2027-10-31 02 +01 CET 2028-03-26 03 +02 CEST 1 2028-10-29 02 +01 CET 2029-03-25 03 +02 CEST 1 2029-10-28 02 +01 CET 2030-03-31 03 +02 CEST 1 2030-10-27 02 +01 CET 2031-03-30 03 +02 CEST 1 2031-10-26 02 +01 CET 2032-03-28 03 +02 CEST 1 2032-10-31 02 +01 CET 2033-03-27 03 +02 CEST 1 2033-10-30 02 +01 CET 2034-03-26 03 +02 CEST 1 2034-10-29 02 +01 CET 2035-03-25 03 +02 CEST 1 2035-10-28 02 +01 CET 2036-03-30 03 +02 CEST 1 2036-10-26 02 +01 CET 2037-03-29 03 +02 CEST 1 2037-10-25 02 +01 CET 2038-03-28 03 +02 CEST 1 2038-10-31 02 +01 CET 2039-03-27 03 +02 CEST 1 2039-10-30 02 +01 CET 2040-03-25 03 +02 CEST 1 2040-10-28 02 +01 CET 2041-03-31 03 +02 CEST 1 2041-10-27 02 +01 CET 2042-03-30 03 +02 CEST 1 2042-10-26 02 +01 CET 2043-03-29 03 +02 CEST 1 2043-10-25 02 +01 CET 2044-03-27 03 +02 CEST 1 2044-10-30 02 +01 CET 2045-03-26 03 +02 CEST 1 2045-10-29 02 +01 CET 2046-03-25 03 +02 CEST 1 2046-10-28 02 +01 CET 2047-03-31 03 +02 CEST 1 2047-10-27 02 +01 CET 2048-03-29 03 +02 CEST 1 2048-10-25 02 +01 CET 2049-03-28 03 +02 CEST 1 2049-10-31 02 +01 CET TZ="Europe/Andorra" - - +000604 LMT 1900-12-31 23:53:56 +00 WET 1946-09-30 01 +01 CET 1985-03-31 03 +02 CEST 1 1985-09-29 02 +01 CET 1986-03-30 03 +02 CEST 1 1986-09-28 02 +01 CET 1987-03-29 03 +02 CEST 1 1987-09-27 02 +01 CET 1988-03-27 03 +02 CEST 1 1988-09-25 02 +01 CET 1989-03-26 03 +02 CEST 1 1989-09-24 02 +01 CET 1990-03-25 03 +02 CEST 1 1990-09-30 02 +01 CET 1991-03-31 03 +02 CEST 1 1991-09-29 02 +01 CET 1992-03-29 03 +02 CEST 1 1992-09-27 02 +01 CET 1993-03-28 03 +02 CEST 1 1993-09-26 02 +01 CET 1994-03-27 03 +02 CEST 1 1994-09-25 02 +01 CET 1995-03-26 03 +02 CEST 1 1995-09-24 02 +01 CET 1996-03-31 03 +02 CEST 1 1996-10-27 02 +01 CET 1997-03-30 03 +02 CEST 1 1997-10-26 02 +01 CET 1998-03-29 03 +02 CEST 1 1998-10-25 02 +01 CET 1999-03-28 03 +02 CEST 1 1999-10-31 02 +01 CET 2000-03-26 03 +02 CEST 1 2000-10-29 02 +01 CET 2001-03-25 03 +02 CEST 1 2001-10-28 02 +01 CET 2002-03-31 03 +02 CEST 1 2002-10-27 02 +01 CET 2003-03-30 03 +02 CEST 1 2003-10-26 02 +01 CET 2004-03-28 03 +02 CEST 1 2004-10-31 02 +01 CET 2005-03-27 03 +02 CEST 1 2005-10-30 02 +01 CET 2006-03-26 03 +02 CEST 1 2006-10-29 02 +01 CET 2007-03-25 03 +02 CEST 1 2007-10-28 02 +01 CET 2008-03-30 03 +02 CEST 1 2008-10-26 02 +01 CET 2009-03-29 03 +02 CEST 1 2009-10-25 02 +01 CET 2010-03-28 03 +02 CEST 1 2010-10-31 02 +01 CET 2011-03-27 03 +02 CEST 1 2011-10-30 02 +01 CET 2012-03-25 03 +02 CEST 1 2012-10-28 02 +01 CET 2013-03-31 03 +02 CEST 1 2013-10-27 02 +01 CET 2014-03-30 03 +02 CEST 1 2014-10-26 02 +01 CET 2015-03-29 03 +02 CEST 1 2015-10-25 02 +01 CET 2016-03-27 03 +02 CEST 1 2016-10-30 02 +01 CET 2017-03-26 03 +02 CEST 1 2017-10-29 02 +01 CET 2018-03-25 03 +02 CEST 1 2018-10-28 02 +01 CET 2019-03-31 03 +02 CEST 1 2019-10-27 02 +01 CET 2020-03-29 03 +02 CEST 1 2020-10-25 02 +01 CET 2021-03-28 03 +02 CEST 1 2021-10-31 02 +01 CET 2022-03-27 03 +02 CEST 1 2022-10-30 02 +01 CET 2023-03-26 03 +02 CEST 1 2023-10-29 02 +01 CET 2024-03-31 03 +02 CEST 1 2024-10-27 02 +01 CET 2025-03-30 03 +02 CEST 1 2025-10-26 02 +01 CET 2026-03-29 03 +02 CEST 1 2026-10-25 02 +01 CET 2027-03-28 03 +02 CEST 1 2027-10-31 02 +01 CET 2028-03-26 03 +02 CEST 1 2028-10-29 02 +01 CET 2029-03-25 03 +02 CEST 1 2029-10-28 02 +01 CET 2030-03-31 03 +02 CEST 1 2030-10-27 02 +01 CET 2031-03-30 03 +02 CEST 1 2031-10-26 02 +01 CET 2032-03-28 03 +02 CEST 1 2032-10-31 02 +01 CET 2033-03-27 03 +02 CEST 1 2033-10-30 02 +01 CET 2034-03-26 03 +02 CEST 1 2034-10-29 02 +01 CET 2035-03-25 03 +02 CEST 1 2035-10-28 02 +01 CET 2036-03-30 03 +02 CEST 1 2036-10-26 02 +01 CET 2037-03-29 03 +02 CEST 1 2037-10-25 02 +01 CET 2038-03-28 03 +02 CEST 1 2038-10-31 02 +01 CET 2039-03-27 03 +02 CEST 1 2039-10-30 02 +01 CET 2040-03-25 03 +02 CEST 1 2040-10-28 02 +01 CET 2041-03-31 03 +02 CEST 1 2041-10-27 02 +01 CET 2042-03-30 03 +02 CEST 1 2042-10-26 02 +01 CET 2043-03-29 03 +02 CEST 1 2043-10-25 02 +01 CET 2044-03-27 03 +02 CEST 1 2044-10-30 02 +01 CET 2045-03-26 03 +02 CEST 1 2045-10-29 02 +01 CET 2046-03-25 03 +02 CEST 1 2046-10-28 02 +01 CET 2047-03-31 03 +02 CEST 1 2047-10-27 02 +01 CET 2048-03-29 03 +02 CEST 1 2048-10-25 02 +01 CET 2049-03-28 03 +02 CEST 1 2049-10-31 02 +01 CET TZ="Europe/Astrakhan" - - +031212 LMT 1924-04-30 23:47:48 +03 1930-06-21 01 +04 1981-04-01 01 +05 1 1981-09-30 23 +04 1982-04-01 01 +05 1 1982-09-30 23 +04 1983-04-01 01 +05 1 1983-09-30 23 +04 1984-04-01 01 +05 1 1984-09-30 02 +04 1985-03-31 03 +05 1 1985-09-29 02 +04 1986-03-30 03 +05 1 1986-09-28 02 +04 1987-03-29 03 +05 1 1987-09-27 02 +04 1988-03-27 03 +05 1 1988-09-25 02 +04 1989-03-26 02 +04 1 1989-09-24 02 +03 1990-03-25 03 +04 1 1990-09-30 02 +03 1991-03-31 03 +04 1992-03-29 02 +04 1 1992-09-27 02 +03 1993-03-28 03 +04 1 1993-09-26 02 +03 1994-03-27 03 +04 1 1994-09-25 02 +03 1995-03-26 03 +04 1 1995-09-24 02 +03 1996-03-31 03 +04 1 1996-10-27 02 +03 1997-03-30 03 +04 1 1997-10-26 02 +03 1998-03-29 03 +04 1 1998-10-25 02 +03 1999-03-28 03 +04 1 1999-10-31 02 +03 2000-03-26 03 +04 1 2000-10-29 02 +03 2001-03-25 03 +04 1 2001-10-28 02 +03 2002-03-31 03 +04 1 2002-10-27 02 +03 2003-03-30 03 +04 1 2003-10-26 02 +03 2004-03-28 03 +04 1 2004-10-31 02 +03 2005-03-27 03 +04 1 2005-10-30 02 +03 2006-03-26 03 +04 1 2006-10-29 02 +03 2007-03-25 03 +04 1 2007-10-28 02 +03 2008-03-30 03 +04 1 2008-10-26 02 +03 2009-03-29 03 +04 1 2009-10-25 02 +03 2010-03-28 03 +04 1 2010-10-31 02 +03 2011-03-27 03 +04 2014-10-26 01 +03 2016-03-27 03 +04 TZ="Europe/Athens" - - +013452 LMT 1895-09-14 00 +013452 AMT 1916-07-28 00:26:08 +02 EET 1932-07-07 01 +03 EEST 1 1932-08-31 23 +02 EET 1941-04-07 01 +03 EEST 1 1941-04-29 23 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-30 01 +02 CEST 1 1943-10-03 23 +01 CET 1944-04-04 01 +02 EET 1952-07-01 01 +03 EEST 1 1952-11-01 23 +02 EET 1975-04-12 01 +03 EEST 1 1975-11-26 00 +02 EET 1976-04-11 03 +03 EEST 1 1976-10-10 02 +02 EET 1977-04-03 03 +03 EEST 1 1977-09-26 02 +02 EET 1978-04-02 03 +03 EEST 1 1978-09-24 03 +02 EET 1979-04-01 10 +03 EEST 1 1979-09-29 01 +02 EET 1980-04-01 01 +03 EEST 1 1980-09-27 23 +02 EET 1981-03-29 04 +03 EEST 1 1981-09-27 03 +02 EET 1982-03-28 04 +03 EEST 1 1982-09-26 03 +02 EET 1983-03-27 04 +03 EEST 1 1983-09-25 03 +02 EET 1984-03-25 04 +03 EEST 1 1984-09-30 03 +02 EET 1985-03-31 04 +03 EEST 1 1985-09-29 03 +02 EET 1986-03-30 04 +03 EEST 1 1986-09-28 03 +02 EET 1987-03-29 04 +03 EEST 1 1987-09-27 03 +02 EET 1988-03-27 04 +03 EEST 1 1988-09-25 03 +02 EET 1989-03-26 04 +03 EEST 1 1989-09-24 03 +02 EET 1990-03-25 04 +03 EEST 1 1990-09-30 03 +02 EET 1991-03-31 04 +03 EEST 1 1991-09-29 03 +02 EET 1992-03-29 04 +03 EEST 1 1992-09-27 03 +02 EET 1993-03-28 04 +03 EEST 1 1993-09-26 03 +02 EET 1994-03-27 04 +03 EEST 1 1994-09-25 03 +02 EET 1995-03-26 04 +03 EEST 1 1995-09-24 03 +02 EET 1996-03-31 04 +03 EEST 1 1996-10-27 03 +02 EET 1997-03-30 04 +03 EEST 1 1997-10-26 03 +02 EET 1998-03-29 04 +03 EEST 1 1998-10-25 03 +02 EET 1999-03-28 04 +03 EEST 1 1999-10-31 03 +02 EET 2000-03-26 04 +03 EEST 1 2000-10-29 03 +02 EET 2001-03-25 04 +03 EEST 1 2001-10-28 03 +02 EET 2002-03-31 04 +03 EEST 1 2002-10-27 03 +02 EET 2003-03-30 04 +03 EEST 1 2003-10-26 03 +02 EET 2004-03-28 04 +03 EEST 1 2004-10-31 03 +02 EET 2005-03-27 04 +03 EEST 1 2005-10-30 03 +02 EET 2006-03-26 04 +03 EEST 1 2006-10-29 03 +02 EET 2007-03-25 04 +03 EEST 1 2007-10-28 03 +02 EET 2008-03-30 04 +03 EEST 1 2008-10-26 03 +02 EET 2009-03-29 04 +03 EEST 1 2009-10-25 03 +02 EET 2010-03-28 04 +03 EEST 1 2010-10-31 03 +02 EET 2011-03-27 04 +03 EEST 1 2011-10-30 03 +02 EET 2012-03-25 04 +03 EEST 1 2012-10-28 03 +02 EET 2013-03-31 04 +03 EEST 1 2013-10-27 03 +02 EET 2014-03-30 04 +03 EEST 1 2014-10-26 03 +02 EET 2015-03-29 04 +03 EEST 1 2015-10-25 03 +02 EET 2016-03-27 04 +03 EEST 1 2016-10-30 03 +02 EET 2017-03-26 04 +03 EEST 1 2017-10-29 03 +02 EET 2018-03-25 04 +03 EEST 1 2018-10-28 03 +02 EET 2019-03-31 04 +03 EEST 1 2019-10-27 03 +02 EET 2020-03-29 04 +03 EEST 1 2020-10-25 03 +02 EET 2021-03-28 04 +03 EEST 1 2021-10-31 03 +02 EET 2022-03-27 04 +03 EEST 1 2022-10-30 03 +02 EET 2023-03-26 04 +03 EEST 1 2023-10-29 03 +02 EET 2024-03-31 04 +03 EEST 1 2024-10-27 03 +02 EET 2025-03-30 04 +03 EEST 1 2025-10-26 03 +02 EET 2026-03-29 04 +03 EEST 1 2026-10-25 03 +02 EET 2027-03-28 04 +03 EEST 1 2027-10-31 03 +02 EET 2028-03-26 04 +03 EEST 1 2028-10-29 03 +02 EET 2029-03-25 04 +03 EEST 1 2029-10-28 03 +02 EET 2030-03-31 04 +03 EEST 1 2030-10-27 03 +02 EET 2031-03-30 04 +03 EEST 1 2031-10-26 03 +02 EET 2032-03-28 04 +03 EEST 1 2032-10-31 03 +02 EET 2033-03-27 04 +03 EEST 1 2033-10-30 03 +02 EET 2034-03-26 04 +03 EEST 1 2034-10-29 03 +02 EET 2035-03-25 04 +03 EEST 1 2035-10-28 03 +02 EET 2036-03-30 04 +03 EEST 1 2036-10-26 03 +02 EET 2037-03-29 04 +03 EEST 1 2037-10-25 03 +02 EET 2038-03-28 04 +03 EEST 1 2038-10-31 03 +02 EET 2039-03-27 04 +03 EEST 1 2039-10-30 03 +02 EET 2040-03-25 04 +03 EEST 1 2040-10-28 03 +02 EET 2041-03-31 04 +03 EEST 1 2041-10-27 03 +02 EET 2042-03-30 04 +03 EEST 1 2042-10-26 03 +02 EET 2043-03-29 04 +03 EEST 1 2043-10-25 03 +02 EET 2044-03-27 04 +03 EEST 1 2044-10-30 03 +02 EET 2045-03-26 04 +03 EEST 1 2045-10-29 03 +02 EET 2046-03-25 04 +03 EEST 1 2046-10-28 03 +02 EET 2047-03-31 04 +03 EEST 1 2047-10-27 03 +02 EET 2048-03-29 04 +03 EEST 1 2048-10-25 03 +02 EET 2049-03-28 04 +03 EEST 1 2049-10-31 03 +02 EET TZ="Europe/Belgrade" - - +0122 LMT 1883-12-31 23:38 +01 CET 1941-04-19 00 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1944-04-03 03 +02 CEST 1 1944-10-02 02 +01 CET 1945-05-08 03 +02 CEST 1 1945-09-16 02 +01 CET 1983-03-27 03 +02 CEST 1 1983-09-25 02 +01 CET 1984-03-25 03 +02 CEST 1 1984-09-30 02 +01 CET 1985-03-31 03 +02 CEST 1 1985-09-29 02 +01 CET 1986-03-30 03 +02 CEST 1 1986-09-28 02 +01 CET 1987-03-29 03 +02 CEST 1 1987-09-27 02 +01 CET 1988-03-27 03 +02 CEST 1 1988-09-25 02 +01 CET 1989-03-26 03 +02 CEST 1 1989-09-24 02 +01 CET 1990-03-25 03 +02 CEST 1 1990-09-30 02 +01 CET 1991-03-31 03 +02 CEST 1 1991-09-29 02 +01 CET 1992-03-29 03 +02 CEST 1 1992-09-27 02 +01 CET 1993-03-28 03 +02 CEST 1 1993-09-26 02 +01 CET 1994-03-27 03 +02 CEST 1 1994-09-25 02 +01 CET 1995-03-26 03 +02 CEST 1 1995-09-24 02 +01 CET 1996-03-31 03 +02 CEST 1 1996-10-27 02 +01 CET 1997-03-30 03 +02 CEST 1 1997-10-26 02 +01 CET 1998-03-29 03 +02 CEST 1 1998-10-25 02 +01 CET 1999-03-28 03 +02 CEST 1 1999-10-31 02 +01 CET 2000-03-26 03 +02 CEST 1 2000-10-29 02 +01 CET 2001-03-25 03 +02 CEST 1 2001-10-28 02 +01 CET 2002-03-31 03 +02 CEST 1 2002-10-27 02 +01 CET 2003-03-30 03 +02 CEST 1 2003-10-26 02 +01 CET 2004-03-28 03 +02 CEST 1 2004-10-31 02 +01 CET 2005-03-27 03 +02 CEST 1 2005-10-30 02 +01 CET 2006-03-26 03 +02 CEST 1 2006-10-29 02 +01 CET 2007-03-25 03 +02 CEST 1 2007-10-28 02 +01 CET 2008-03-30 03 +02 CEST 1 2008-10-26 02 +01 CET 2009-03-29 03 +02 CEST 1 2009-10-25 02 +01 CET 2010-03-28 03 +02 CEST 1 2010-10-31 02 +01 CET 2011-03-27 03 +02 CEST 1 2011-10-30 02 +01 CET 2012-03-25 03 +02 CEST 1 2012-10-28 02 +01 CET 2013-03-31 03 +02 CEST 1 2013-10-27 02 +01 CET 2014-03-30 03 +02 CEST 1 2014-10-26 02 +01 CET 2015-03-29 03 +02 CEST 1 2015-10-25 02 +01 CET 2016-03-27 03 +02 CEST 1 2016-10-30 02 +01 CET 2017-03-26 03 +02 CEST 1 2017-10-29 02 +01 CET 2018-03-25 03 +02 CEST 1 2018-10-28 02 +01 CET 2019-03-31 03 +02 CEST 1 2019-10-27 02 +01 CET 2020-03-29 03 +02 CEST 1 2020-10-25 02 +01 CET 2021-03-28 03 +02 CEST 1 2021-10-31 02 +01 CET 2022-03-27 03 +02 CEST 1 2022-10-30 02 +01 CET 2023-03-26 03 +02 CEST 1 2023-10-29 02 +01 CET 2024-03-31 03 +02 CEST 1 2024-10-27 02 +01 CET 2025-03-30 03 +02 CEST 1 2025-10-26 02 +01 CET 2026-03-29 03 +02 CEST 1 2026-10-25 02 +01 CET 2027-03-28 03 +02 CEST 1 2027-10-31 02 +01 CET 2028-03-26 03 +02 CEST 1 2028-10-29 02 +01 CET 2029-03-25 03 +02 CEST 1 2029-10-28 02 +01 CET 2030-03-31 03 +02 CEST 1 2030-10-27 02 +01 CET 2031-03-30 03 +02 CEST 1 2031-10-26 02 +01 CET 2032-03-28 03 +02 CEST 1 2032-10-31 02 +01 CET 2033-03-27 03 +02 CEST 1 2033-10-30 02 +01 CET 2034-03-26 03 +02 CEST 1 2034-10-29 02 +01 CET 2035-03-25 03 +02 CEST 1 2035-10-28 02 +01 CET 2036-03-30 03 +02 CEST 1 2036-10-26 02 +01 CET 2037-03-29 03 +02 CEST 1 2037-10-25 02 +01 CET 2038-03-28 03 +02 CEST 1 2038-10-31 02 +01 CET 2039-03-27 03 +02 CEST 1 2039-10-30 02 +01 CET 2040-03-25 03 +02 CEST 1 2040-10-28 02 +01 CET 2041-03-31 03 +02 CEST 1 2041-10-27 02 +01 CET 2042-03-30 03 +02 CEST 1 2042-10-26 02 +01 CET 2043-03-29 03 +02 CEST 1 2043-10-25 02 +01 CET 2044-03-27 03 +02 CEST 1 2044-10-30 02 +01 CET 2045-03-26 03 +02 CEST 1 2045-10-29 02 +01 CET 2046-03-25 03 +02 CEST 1 2046-10-28 02 +01 CET 2047-03-31 03 +02 CEST 1 2047-10-27 02 +01 CET 2048-03-29 03 +02 CEST 1 2048-10-25 02 +01 CET 2049-03-28 03 +02 CEST 1 2049-10-31 02 +01 CET TZ="Europe/Berlin" - - +005328 LMT 1893-04-01 00:06:32 +01 CET 1916-05-01 00 +02 CEST 1 1916-10-01 00 +01 CET 1917-04-16 03 +02 CEST 1 1917-09-17 02 +01 CET 1918-04-15 03 +02 CEST 1 1918-09-16 02 +01 CET 1940-04-01 03 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1944-04-03 03 +02 CEST 1 1944-10-02 02 +01 CET 1945-04-02 03 +02 CEST 1 1945-05-24 03 +03 CEMT 1 1945-09-24 02 +02 CEST 1 1945-11-18 02 +01 CET 1946-04-14 03 +02 CEST 1 1946-10-07 02 +01 CET 1947-04-06 04 +02 CEST 1 1947-05-11 04 +03 CEMT 1 1947-06-29 02 +02 CEST 1 1947-10-05 02 +01 CET 1948-04-18 03 +02 CEST 1 1948-10-03 02 +01 CET 1949-04-10 03 +02 CEST 1 1949-10-02 02 +01 CET 1980-04-06 03 +02 CEST 1 1980-09-28 02 +01 CET 1981-03-29 03 +02 CEST 1 1981-09-27 02 +01 CET 1982-03-28 03 +02 CEST 1 1982-09-26 02 +01 CET 1983-03-27 03 +02 CEST 1 1983-09-25 02 +01 CET 1984-03-25 03 +02 CEST 1 1984-09-30 02 +01 CET 1985-03-31 03 +02 CEST 1 1985-09-29 02 +01 CET 1986-03-30 03 +02 CEST 1 1986-09-28 02 +01 CET 1987-03-29 03 +02 CEST 1 1987-09-27 02 +01 CET 1988-03-27 03 +02 CEST 1 1988-09-25 02 +01 CET 1989-03-26 03 +02 CEST 1 1989-09-24 02 +01 CET 1990-03-25 03 +02 CEST 1 1990-09-30 02 +01 CET 1991-03-31 03 +02 CEST 1 1991-09-29 02 +01 CET 1992-03-29 03 +02 CEST 1 1992-09-27 02 +01 CET 1993-03-28 03 +02 CEST 1 1993-09-26 02 +01 CET 1994-03-27 03 +02 CEST 1 1994-09-25 02 +01 CET 1995-03-26 03 +02 CEST 1 1995-09-24 02 +01 CET 1996-03-31 03 +02 CEST 1 1996-10-27 02 +01 CET 1997-03-30 03 +02 CEST 1 1997-10-26 02 +01 CET 1998-03-29 03 +02 CEST 1 1998-10-25 02 +01 CET 1999-03-28 03 +02 CEST 1 1999-10-31 02 +01 CET 2000-03-26 03 +02 CEST 1 2000-10-29 02 +01 CET 2001-03-25 03 +02 CEST 1 2001-10-28 02 +01 CET 2002-03-31 03 +02 CEST 1 2002-10-27 02 +01 CET 2003-03-30 03 +02 CEST 1 2003-10-26 02 +01 CET 2004-03-28 03 +02 CEST 1 2004-10-31 02 +01 CET 2005-03-27 03 +02 CEST 1 2005-10-30 02 +01 CET 2006-03-26 03 +02 CEST 1 2006-10-29 02 +01 CET 2007-03-25 03 +02 CEST 1 2007-10-28 02 +01 CET 2008-03-30 03 +02 CEST 1 2008-10-26 02 +01 CET 2009-03-29 03 +02 CEST 1 2009-10-25 02 +01 CET 2010-03-28 03 +02 CEST 1 2010-10-31 02 +01 CET 2011-03-27 03 +02 CEST 1 2011-10-30 02 +01 CET 2012-03-25 03 +02 CEST 1 2012-10-28 02 +01 CET 2013-03-31 03 +02 CEST 1 2013-10-27 02 +01 CET 2014-03-30 03 +02 CEST 1 2014-10-26 02 +01 CET 2015-03-29 03 +02 CEST 1 2015-10-25 02 +01 CET 2016-03-27 03 +02 CEST 1 2016-10-30 02 +01 CET 2017-03-26 03 +02 CEST 1 2017-10-29 02 +01 CET 2018-03-25 03 +02 CEST 1 2018-10-28 02 +01 CET 2019-03-31 03 +02 CEST 1 2019-10-27 02 +01 CET 2020-03-29 03 +02 CEST 1 2020-10-25 02 +01 CET 2021-03-28 03 +02 CEST 1 2021-10-31 02 +01 CET 2022-03-27 03 +02 CEST 1 2022-10-30 02 +01 CET 2023-03-26 03 +02 CEST 1 2023-10-29 02 +01 CET 2024-03-31 03 +02 CEST 1 2024-10-27 02 +01 CET 2025-03-30 03 +02 CEST 1 2025-10-26 02 +01 CET 2026-03-29 03 +02 CEST 1 2026-10-25 02 +01 CET 2027-03-28 03 +02 CEST 1 2027-10-31 02 +01 CET 2028-03-26 03 +02 CEST 1 2028-10-29 02 +01 CET 2029-03-25 03 +02 CEST 1 2029-10-28 02 +01 CET 2030-03-31 03 +02 CEST 1 2030-10-27 02 +01 CET 2031-03-30 03 +02 CEST 1 2031-10-26 02 +01 CET 2032-03-28 03 +02 CEST 1 2032-10-31 02 +01 CET 2033-03-27 03 +02 CEST 1 2033-10-30 02 +01 CET 2034-03-26 03 +02 CEST 1 2034-10-29 02 +01 CET 2035-03-25 03 +02 CEST 1 2035-10-28 02 +01 CET 2036-03-30 03 +02 CEST 1 2036-10-26 02 +01 CET 2037-03-29 03 +02 CEST 1 2037-10-25 02 +01 CET 2038-03-28 03 +02 CEST 1 2038-10-31 02 +01 CET 2039-03-27 03 +02 CEST 1 2039-10-30 02 +01 CET 2040-03-25 03 +02 CEST 1 2040-10-28 02 +01 CET 2041-03-31 03 +02 CEST 1 2041-10-27 02 +01 CET 2042-03-30 03 +02 CEST 1 2042-10-26 02 +01 CET 2043-03-29 03 +02 CEST 1 2043-10-25 02 +01 CET 2044-03-27 03 +02 CEST 1 2044-10-30 02 +01 CET 2045-03-26 03 +02 CEST 1 2045-10-29 02 +01 CET 2046-03-25 03 +02 CEST 1 2046-10-28 02 +01 CET 2047-03-31 03 +02 CEST 1 2047-10-27 02 +01 CET 2048-03-29 03 +02 CEST 1 2048-10-25 02 +01 CET 2049-03-28 03 +02 CEST 1 2049-10-31 02 +01 CET TZ="Europe/Brussels" - - +001730 LMT 1880-01-01 00 +001730 BMT 1892-05-01 00 +00 WET 1914-11-08 01 +01 CET 1916-05-01 01 +02 CEST 1 1916-10-01 00 +01 CET 1917-04-16 03 +02 CEST 1 1917-09-17 02 +01 CET 1918-04-15 03 +02 CEST 1 1918-09-16 02 +01 CET 1918-11-11 11 +00 WET 1919-03-02 00 +01 WEST 1 1919-10-04 23 +00 WET 1920-02-15 00 +01 WEST 1 1920-10-23 23 +00 WET 1921-03-15 00 +01 WEST 1 1921-10-25 23 +00 WET 1922-03-26 00 +01 WEST 1 1922-10-07 23 +00 WET 1923-04-22 00 +01 WEST 1 1923-10-06 23 +00 WET 1924-03-30 00 +01 WEST 1 1924-10-04 23 +00 WET 1925-04-05 00 +01 WEST 1 1925-10-03 23 +00 WET 1926-04-18 00 +01 WEST 1 1926-10-02 23 +00 WET 1927-04-10 00 +01 WEST 1 1927-10-01 23 +00 WET 1928-04-15 00 +01 WEST 1 1928-10-07 02 +00 WET 1929-04-21 03 +01 WEST 1 1929-10-06 02 +00 WET 1930-04-13 03 +01 WEST 1 1930-10-05 02 +00 WET 1931-04-19 03 +01 WEST 1 1931-10-04 02 +00 WET 1932-04-03 03 +01 WEST 1 1932-10-02 02 +00 WET 1933-03-26 03 +01 WEST 1 1933-10-08 02 +00 WET 1934-04-08 03 +01 WEST 1 1934-10-07 02 +00 WET 1935-03-31 03 +01 WEST 1 1935-10-06 02 +00 WET 1936-04-19 03 +01 WEST 1 1936-10-04 02 +00 WET 1937-04-04 03 +01 WEST 1 1937-10-03 02 +00 WET 1938-03-27 03 +01 WEST 1 1938-10-02 02 +00 WET 1939-04-16 03 +01 WEST 1 1939-11-19 02 +00 WET 1940-02-25 03 +01 WEST 1 1940-05-20 04 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1944-04-03 03 +02 CEST 1 1944-09-17 02 +01 CET 1945-04-02 03 +02 CEST 1 1945-09-16 02 +01 CET 1946-05-19 03 +02 CEST 1 1946-10-07 02 +01 CET 1977-04-03 03 +02 CEST 1 1977-09-25 02 +01 CET 1978-04-02 03 +02 CEST 1 1978-10-01 02 +01 CET 1979-04-01 03 +02 CEST 1 1979-09-30 02 +01 CET 1980-04-06 03 +02 CEST 1 1980-09-28 02 +01 CET 1981-03-29 03 +02 CEST 1 1981-09-27 02 +01 CET 1982-03-28 03 +02 CEST 1 1982-09-26 02 +01 CET 1983-03-27 03 +02 CEST 1 1983-09-25 02 +01 CET 1984-03-25 03 +02 CEST 1 1984-09-30 02 +01 CET 1985-03-31 03 +02 CEST 1 1985-09-29 02 +01 CET 1986-03-30 03 +02 CEST 1 1986-09-28 02 +01 CET 1987-03-29 03 +02 CEST 1 1987-09-27 02 +01 CET 1988-03-27 03 +02 CEST 1 1988-09-25 02 +01 CET 1989-03-26 03 +02 CEST 1 1989-09-24 02 +01 CET 1990-03-25 03 +02 CEST 1 1990-09-30 02 +01 CET 1991-03-31 03 +02 CEST 1 1991-09-29 02 +01 CET 1992-03-29 03 +02 CEST 1 1992-09-27 02 +01 CET 1993-03-28 03 +02 CEST 1 1993-09-26 02 +01 CET 1994-03-27 03 +02 CEST 1 1994-09-25 02 +01 CET 1995-03-26 03 +02 CEST 1 1995-09-24 02 +01 CET 1996-03-31 03 +02 CEST 1 1996-10-27 02 +01 CET 1997-03-30 03 +02 CEST 1 1997-10-26 02 +01 CET 1998-03-29 03 +02 CEST 1 1998-10-25 02 +01 CET 1999-03-28 03 +02 CEST 1 1999-10-31 02 +01 CET 2000-03-26 03 +02 CEST 1 2000-10-29 02 +01 CET 2001-03-25 03 +02 CEST 1 2001-10-28 02 +01 CET 2002-03-31 03 +02 CEST 1 2002-10-27 02 +01 CET 2003-03-30 03 +02 CEST 1 2003-10-26 02 +01 CET 2004-03-28 03 +02 CEST 1 2004-10-31 02 +01 CET 2005-03-27 03 +02 CEST 1 2005-10-30 02 +01 CET 2006-03-26 03 +02 CEST 1 2006-10-29 02 +01 CET 2007-03-25 03 +02 CEST 1 2007-10-28 02 +01 CET 2008-03-30 03 +02 CEST 1 2008-10-26 02 +01 CET 2009-03-29 03 +02 CEST 1 2009-10-25 02 +01 CET 2010-03-28 03 +02 CEST 1 2010-10-31 02 +01 CET 2011-03-27 03 +02 CEST 1 2011-10-30 02 +01 CET 2012-03-25 03 +02 CEST 1 2012-10-28 02 +01 CET 2013-03-31 03 +02 CEST 1 2013-10-27 02 +01 CET 2014-03-30 03 +02 CEST 1 2014-10-26 02 +01 CET 2015-03-29 03 +02 CEST 1 2015-10-25 02 +01 CET 2016-03-27 03 +02 CEST 1 2016-10-30 02 +01 CET 2017-03-26 03 +02 CEST 1 2017-10-29 02 +01 CET 2018-03-25 03 +02 CEST 1 2018-10-28 02 +01 CET 2019-03-31 03 +02 CEST 1 2019-10-27 02 +01 CET 2020-03-29 03 +02 CEST 1 2020-10-25 02 +01 CET 2021-03-28 03 +02 CEST 1 2021-10-31 02 +01 CET 2022-03-27 03 +02 CEST 1 2022-10-30 02 +01 CET 2023-03-26 03 +02 CEST 1 2023-10-29 02 +01 CET 2024-03-31 03 +02 CEST 1 2024-10-27 02 +01 CET 2025-03-30 03 +02 CEST 1 2025-10-26 02 +01 CET 2026-03-29 03 +02 CEST 1 2026-10-25 02 +01 CET 2027-03-28 03 +02 CEST 1 2027-10-31 02 +01 CET 2028-03-26 03 +02 CEST 1 2028-10-29 02 +01 CET 2029-03-25 03 +02 CEST 1 2029-10-28 02 +01 CET 2030-03-31 03 +02 CEST 1 2030-10-27 02 +01 CET 2031-03-30 03 +02 CEST 1 2031-10-26 02 +01 CET 2032-03-28 03 +02 CEST 1 2032-10-31 02 +01 CET 2033-03-27 03 +02 CEST 1 2033-10-30 02 +01 CET 2034-03-26 03 +02 CEST 1 2034-10-29 02 +01 CET 2035-03-25 03 +02 CEST 1 2035-10-28 02 +01 CET 2036-03-30 03 +02 CEST 1 2036-10-26 02 +01 CET 2037-03-29 03 +02 CEST 1 2037-10-25 02 +01 CET 2038-03-28 03 +02 CEST 1 2038-10-31 02 +01 CET 2039-03-27 03 +02 CEST 1 2039-10-30 02 +01 CET 2040-03-25 03 +02 CEST 1 2040-10-28 02 +01 CET 2041-03-31 03 +02 CEST 1 2041-10-27 02 +01 CET 2042-03-30 03 +02 CEST 1 2042-10-26 02 +01 CET 2043-03-29 03 +02 CEST 1 2043-10-25 02 +01 CET 2044-03-27 03 +02 CEST 1 2044-10-30 02 +01 CET 2045-03-26 03 +02 CEST 1 2045-10-29 02 +01 CET 2046-03-25 03 +02 CEST 1 2046-10-28 02 +01 CET 2047-03-31 03 +02 CEST 1 2047-10-27 02 +01 CET 2048-03-29 03 +02 CEST 1 2048-10-25 02 +01 CET 2049-03-28 03 +02 CEST 1 2049-10-31 02 +01 CET TZ="Europe/Bucharest" - - +014424 LMT 1891-10-01 00 +014424 BMT 1931-07-24 00:15:36 +02 EET 1932-05-21 01 +03 EEST 1 1932-10-02 00 +02 EET 1933-04-02 01 +03 EEST 1 1933-10-01 00 +02 EET 1934-04-08 01 +03 EEST 1 1934-10-07 00 +02 EET 1935-04-07 01 +03 EEST 1 1935-10-06 00 +02 EET 1936-04-05 01 +03 EEST 1 1936-10-04 00 +02 EET 1937-04-04 01 +03 EEST 1 1937-10-03 00 +02 EET 1938-04-03 01 +03 EEST 1 1938-10-02 00 +02 EET 1939-04-02 01 +03 EEST 1 1939-10-01 00 +02 EET 1979-05-27 01 +03 EEST 1 1979-09-29 23 +02 EET 1980-04-06 00 +03 EEST 1 1980-09-28 00 +02 EET 1981-03-29 03 +03 EEST 1 1981-09-27 02 +02 EET 1982-03-28 03 +03 EEST 1 1982-09-26 02 +02 EET 1983-03-27 03 +03 EEST 1 1983-09-25 02 +02 EET 1984-03-25 03 +03 EEST 1 1984-09-30 02 +02 EET 1985-03-31 03 +03 EEST 1 1985-09-29 02 +02 EET 1986-03-30 03 +03 EEST 1 1986-09-28 02 +02 EET 1987-03-29 03 +03 EEST 1 1987-09-27 02 +02 EET 1988-03-27 03 +03 EEST 1 1988-09-25 02 +02 EET 1989-03-26 03 +03 EEST 1 1989-09-24 02 +02 EET 1990-03-25 03 +03 EEST 1 1990-09-30 02 +02 EET 1991-03-31 01 +03 EEST 1 1991-09-29 00 +02 EET 1992-03-29 01 +03 EEST 1 1992-09-27 00 +02 EET 1993-03-28 01 +03 EEST 1 1993-09-26 00 +02 EET 1994-03-27 01 +03 EEST 1 1994-09-24 23 +02 EET 1995-03-26 01 +03 EEST 1 1995-09-23 23 +02 EET 1996-03-31 01 +03 EEST 1 1996-10-26 23 +02 EET 1997-03-30 04 +03 EEST 1 1997-10-26 03 +02 EET 1998-03-29 04 +03 EEST 1 1998-10-25 03 +02 EET 1999-03-28 04 +03 EEST 1 1999-10-31 03 +02 EET 2000-03-26 04 +03 EEST 1 2000-10-29 03 +02 EET 2001-03-25 04 +03 EEST 1 2001-10-28 03 +02 EET 2002-03-31 04 +03 EEST 1 2002-10-27 03 +02 EET 2003-03-30 04 +03 EEST 1 2003-10-26 03 +02 EET 2004-03-28 04 +03 EEST 1 2004-10-31 03 +02 EET 2005-03-27 04 +03 EEST 1 2005-10-30 03 +02 EET 2006-03-26 04 +03 EEST 1 2006-10-29 03 +02 EET 2007-03-25 04 +03 EEST 1 2007-10-28 03 +02 EET 2008-03-30 04 +03 EEST 1 2008-10-26 03 +02 EET 2009-03-29 04 +03 EEST 1 2009-10-25 03 +02 EET 2010-03-28 04 +03 EEST 1 2010-10-31 03 +02 EET 2011-03-27 04 +03 EEST 1 2011-10-30 03 +02 EET 2012-03-25 04 +03 EEST 1 2012-10-28 03 +02 EET 2013-03-31 04 +03 EEST 1 2013-10-27 03 +02 EET 2014-03-30 04 +03 EEST 1 2014-10-26 03 +02 EET 2015-03-29 04 +03 EEST 1 2015-10-25 03 +02 EET 2016-03-27 04 +03 EEST 1 2016-10-30 03 +02 EET 2017-03-26 04 +03 EEST 1 2017-10-29 03 +02 EET 2018-03-25 04 +03 EEST 1 2018-10-28 03 +02 EET 2019-03-31 04 +03 EEST 1 2019-10-27 03 +02 EET 2020-03-29 04 +03 EEST 1 2020-10-25 03 +02 EET 2021-03-28 04 +03 EEST 1 2021-10-31 03 +02 EET 2022-03-27 04 +03 EEST 1 2022-10-30 03 +02 EET 2023-03-26 04 +03 EEST 1 2023-10-29 03 +02 EET 2024-03-31 04 +03 EEST 1 2024-10-27 03 +02 EET 2025-03-30 04 +03 EEST 1 2025-10-26 03 +02 EET 2026-03-29 04 +03 EEST 1 2026-10-25 03 +02 EET 2027-03-28 04 +03 EEST 1 2027-10-31 03 +02 EET 2028-03-26 04 +03 EEST 1 2028-10-29 03 +02 EET 2029-03-25 04 +03 EEST 1 2029-10-28 03 +02 EET 2030-03-31 04 +03 EEST 1 2030-10-27 03 +02 EET 2031-03-30 04 +03 EEST 1 2031-10-26 03 +02 EET 2032-03-28 04 +03 EEST 1 2032-10-31 03 +02 EET 2033-03-27 04 +03 EEST 1 2033-10-30 03 +02 EET 2034-03-26 04 +03 EEST 1 2034-10-29 03 +02 EET 2035-03-25 04 +03 EEST 1 2035-10-28 03 +02 EET 2036-03-30 04 +03 EEST 1 2036-10-26 03 +02 EET 2037-03-29 04 +03 EEST 1 2037-10-25 03 +02 EET 2038-03-28 04 +03 EEST 1 2038-10-31 03 +02 EET 2039-03-27 04 +03 EEST 1 2039-10-30 03 +02 EET 2040-03-25 04 +03 EEST 1 2040-10-28 03 +02 EET 2041-03-31 04 +03 EEST 1 2041-10-27 03 +02 EET 2042-03-30 04 +03 EEST 1 2042-10-26 03 +02 EET 2043-03-29 04 +03 EEST 1 2043-10-25 03 +02 EET 2044-03-27 04 +03 EEST 1 2044-10-30 03 +02 EET 2045-03-26 04 +03 EEST 1 2045-10-29 03 +02 EET 2046-03-25 04 +03 EEST 1 2046-10-28 03 +02 EET 2047-03-31 04 +03 EEST 1 2047-10-27 03 +02 EET 2048-03-29 04 +03 EEST 1 2048-10-25 03 +02 EET 2049-03-28 04 +03 EEST 1 2049-10-31 03 +02 EET TZ="Europe/Budapest" - - +011620 LMT 1890-09-30 23:43:40 +01 CET 1916-05-01 00 +02 CEST 1 1916-10-01 00 +01 CET 1917-04-16 03 +02 CEST 1 1917-09-17 02 +01 CET 1918-04-01 04 +02 CEST 1 1918-09-16 02 +01 CET 1919-04-15 04 +02 CEST 1 1919-11-24 02 +01 CET 1941-04-08 01 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1944-04-03 03 +02 CEST 1 1944-10-02 02 +01 CET 1945-05-02 00 +02 CEST 1 1945-10-31 23 +01 CET 1946-03-31 03 +02 CEST 1 1946-10-06 02 +01 CET 1947-04-06 03 +02 CEST 1 1947-10-05 02 +01 CET 1948-04-04 03 +02 CEST 1 1948-10-03 02 +01 CET 1949-04-10 03 +02 CEST 1 1949-10-02 02 +01 CET 1950-04-17 03 +02 CEST 1 1950-10-23 02 +01 CET 1954-05-23 01 +02 CEST 1 1954-10-02 23 +01 CET 1955-05-23 01 +02 CEST 1 1955-10-02 23 +01 CET 1956-06-03 01 +02 CEST 1 1956-09-29 23 +01 CET 1957-06-02 02 +02 CEST 1 1957-09-29 02 +01 CET 1980-04-06 02 +02 CEST 1 1980-09-28 02 +01 CET 1981-03-29 03 +02 CEST 1 1981-09-27 02 +01 CET 1982-03-28 03 +02 CEST 1 1982-09-26 02 +01 CET 1983-03-27 03 +02 CEST 1 1983-09-25 02 +01 CET 1984-03-25 03 +02 CEST 1 1984-09-30 02 +01 CET 1985-03-31 03 +02 CEST 1 1985-09-29 02 +01 CET 1986-03-30 03 +02 CEST 1 1986-09-28 02 +01 CET 1987-03-29 03 +02 CEST 1 1987-09-27 02 +01 CET 1988-03-27 03 +02 CEST 1 1988-09-25 02 +01 CET 1989-03-26 03 +02 CEST 1 1989-09-24 02 +01 CET 1990-03-25 03 +02 CEST 1 1990-09-30 02 +01 CET 1991-03-31 03 +02 CEST 1 1991-09-29 02 +01 CET 1992-03-29 03 +02 CEST 1 1992-09-27 02 +01 CET 1993-03-28 03 +02 CEST 1 1993-09-26 02 +01 CET 1994-03-27 03 +02 CEST 1 1994-09-25 02 +01 CET 1995-03-26 03 +02 CEST 1 1995-09-24 02 +01 CET 1996-03-31 03 +02 CEST 1 1996-10-27 02 +01 CET 1997-03-30 03 +02 CEST 1 1997-10-26 02 +01 CET 1998-03-29 03 +02 CEST 1 1998-10-25 02 +01 CET 1999-03-28 03 +02 CEST 1 1999-10-31 02 +01 CET 2000-03-26 03 +02 CEST 1 2000-10-29 02 +01 CET 2001-03-25 03 +02 CEST 1 2001-10-28 02 +01 CET 2002-03-31 03 +02 CEST 1 2002-10-27 02 +01 CET 2003-03-30 03 +02 CEST 1 2003-10-26 02 +01 CET 2004-03-28 03 +02 CEST 1 2004-10-31 02 +01 CET 2005-03-27 03 +02 CEST 1 2005-10-30 02 +01 CET 2006-03-26 03 +02 CEST 1 2006-10-29 02 +01 CET 2007-03-25 03 +02 CEST 1 2007-10-28 02 +01 CET 2008-03-30 03 +02 CEST 1 2008-10-26 02 +01 CET 2009-03-29 03 +02 CEST 1 2009-10-25 02 +01 CET 2010-03-28 03 +02 CEST 1 2010-10-31 02 +01 CET 2011-03-27 03 +02 CEST 1 2011-10-30 02 +01 CET 2012-03-25 03 +02 CEST 1 2012-10-28 02 +01 CET 2013-03-31 03 +02 CEST 1 2013-10-27 02 +01 CET 2014-03-30 03 +02 CEST 1 2014-10-26 02 +01 CET 2015-03-29 03 +02 CEST 1 2015-10-25 02 +01 CET 2016-03-27 03 +02 CEST 1 2016-10-30 02 +01 CET 2017-03-26 03 +02 CEST 1 2017-10-29 02 +01 CET 2018-03-25 03 +02 CEST 1 2018-10-28 02 +01 CET 2019-03-31 03 +02 CEST 1 2019-10-27 02 +01 CET 2020-03-29 03 +02 CEST 1 2020-10-25 02 +01 CET 2021-03-28 03 +02 CEST 1 2021-10-31 02 +01 CET 2022-03-27 03 +02 CEST 1 2022-10-30 02 +01 CET 2023-03-26 03 +02 CEST 1 2023-10-29 02 +01 CET 2024-03-31 03 +02 CEST 1 2024-10-27 02 +01 CET 2025-03-30 03 +02 CEST 1 2025-10-26 02 +01 CET 2026-03-29 03 +02 CEST 1 2026-10-25 02 +01 CET 2027-03-28 03 +02 CEST 1 2027-10-31 02 +01 CET 2028-03-26 03 +02 CEST 1 2028-10-29 02 +01 CET 2029-03-25 03 +02 CEST 1 2029-10-28 02 +01 CET 2030-03-31 03 +02 CEST 1 2030-10-27 02 +01 CET 2031-03-30 03 +02 CEST 1 2031-10-26 02 +01 CET 2032-03-28 03 +02 CEST 1 2032-10-31 02 +01 CET 2033-03-27 03 +02 CEST 1 2033-10-30 02 +01 CET 2034-03-26 03 +02 CEST 1 2034-10-29 02 +01 CET 2035-03-25 03 +02 CEST 1 2035-10-28 02 +01 CET 2036-03-30 03 +02 CEST 1 2036-10-26 02 +01 CET 2037-03-29 03 +02 CEST 1 2037-10-25 02 +01 CET 2038-03-28 03 +02 CEST 1 2038-10-31 02 +01 CET 2039-03-27 03 +02 CEST 1 2039-10-30 02 +01 CET 2040-03-25 03 +02 CEST 1 2040-10-28 02 +01 CET 2041-03-31 03 +02 CEST 1 2041-10-27 02 +01 CET 2042-03-30 03 +02 CEST 1 2042-10-26 02 +01 CET 2043-03-29 03 +02 CEST 1 2043-10-25 02 +01 CET 2044-03-27 03 +02 CEST 1 2044-10-30 02 +01 CET 2045-03-26 03 +02 CEST 1 2045-10-29 02 +01 CET 2046-03-25 03 +02 CEST 1 2046-10-28 02 +01 CET 2047-03-31 03 +02 CEST 1 2047-10-27 02 +01 CET 2048-03-29 03 +02 CEST 1 2048-10-25 02 +01 CET 2049-03-28 03 +02 CEST 1 2049-10-31 02 +01 CET TZ="Europe/Chisinau" - - +015520 LMT 1879-12-31 23:59:40 +0155 CMT 1918-02-14 23:49:24 +014424 BMT 1931-07-24 00:15:36 +02 EET 1932-05-21 01 +03 EEST 1 1932-10-02 00 +02 EET 1933-04-02 01 +03 EEST 1 1933-10-01 00 +02 EET 1934-04-08 01 +03 EEST 1 1934-10-07 00 +02 EET 1935-04-07 01 +03 EEST 1 1935-10-06 00 +02 EET 1936-04-05 01 +03 EEST 1 1936-10-04 00 +02 EET 1937-04-04 01 +03 EEST 1 1937-10-03 00 +02 EET 1938-04-03 01 +03 EEST 1 1938-10-02 00 +02 EET 1939-04-02 01 +03 EEST 1 1939-10-01 00 +02 EET 1940-08-15 01 +03 EEST 1 1941-07-16 23 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1944-04-03 03 +02 CEST 1 1944-08-24 01 +03 MSK 1981-04-01 01 +04 MSD 1 1981-09-30 23 +03 MSK 1982-04-01 01 +04 MSD 1 1982-09-30 23 +03 MSK 1983-04-01 01 +04 MSD 1 1983-09-30 23 +03 MSK 1984-04-01 01 +04 MSD 1 1984-09-30 02 +03 MSK 1985-03-31 03 +04 MSD 1 1985-09-29 02 +03 MSK 1986-03-30 03 +04 MSD 1 1986-09-28 02 +03 MSK 1987-03-29 03 +04 MSD 1 1987-09-27 02 +03 MSK 1988-03-27 03 +04 MSD 1 1988-09-25 02 +03 MSK 1989-03-26 03 +04 MSD 1 1989-09-24 02 +03 MSK 1990-03-25 03 +04 MSD 1 1990-05-06 01 +03 EEST 1 1990-09-30 02 +02 EET 1991-03-31 03 +03 EEST 1 1991-09-29 02 +02 EET 1992-03-29 01 +03 EEST 1 1992-09-26 23 +02 EET 1993-03-28 01 +03 EEST 1 1993-09-25 23 +02 EET 1994-03-27 01 +03 EEST 1 1994-09-24 23 +02 EET 1995-03-26 01 +03 EEST 1 1995-09-23 23 +02 EET 1996-03-31 01 +03 EEST 1 1996-10-26 23 +02 EET 1997-03-30 03 +03 EEST 1 1997-10-26 02 +02 EET 1998-03-29 03 +03 EEST 1 1998-10-25 02 +02 EET 1999-03-28 03 +03 EEST 1 1999-10-31 02 +02 EET 2000-03-26 03 +03 EEST 1 2000-10-29 02 +02 EET 2001-03-25 03 +03 EEST 1 2001-10-28 02 +02 EET 2002-03-31 03 +03 EEST 1 2002-10-27 02 +02 EET 2003-03-30 03 +03 EEST 1 2003-10-26 02 +02 EET 2004-03-28 03 +03 EEST 1 2004-10-31 02 +02 EET 2005-03-27 03 +03 EEST 1 2005-10-30 02 +02 EET 2006-03-26 03 +03 EEST 1 2006-10-29 02 +02 EET 2007-03-25 03 +03 EEST 1 2007-10-28 02 +02 EET 2008-03-30 03 +03 EEST 1 2008-10-26 02 +02 EET 2009-03-29 03 +03 EEST 1 2009-10-25 02 +02 EET 2010-03-28 03 +03 EEST 1 2010-10-31 02 +02 EET 2011-03-27 03 +03 EEST 1 2011-10-30 02 +02 EET 2012-03-25 03 +03 EEST 1 2012-10-28 02 +02 EET 2013-03-31 03 +03 EEST 1 2013-10-27 02 +02 EET 2014-03-30 03 +03 EEST 1 2014-10-26 02 +02 EET 2015-03-29 03 +03 EEST 1 2015-10-25 02 +02 EET 2016-03-27 03 +03 EEST 1 2016-10-30 02 +02 EET 2017-03-26 03 +03 EEST 1 2017-10-29 02 +02 EET 2018-03-25 03 +03 EEST 1 2018-10-28 02 +02 EET 2019-03-31 03 +03 EEST 1 2019-10-27 02 +02 EET 2020-03-29 03 +03 EEST 1 2020-10-25 02 +02 EET 2021-03-28 03 +03 EEST 1 2021-10-31 02 +02 EET 2022-03-27 03 +03 EEST 1 2022-10-30 02 +02 EET 2023-03-26 03 +03 EEST 1 2023-10-29 02 +02 EET 2024-03-31 03 +03 EEST 1 2024-10-27 02 +02 EET 2025-03-30 03 +03 EEST 1 2025-10-26 02 +02 EET 2026-03-29 03 +03 EEST 1 2026-10-25 02 +02 EET 2027-03-28 03 +03 EEST 1 2027-10-31 02 +02 EET 2028-03-26 03 +03 EEST 1 2028-10-29 02 +02 EET 2029-03-25 03 +03 EEST 1 2029-10-28 02 +02 EET 2030-03-31 03 +03 EEST 1 2030-10-27 02 +02 EET 2031-03-30 03 +03 EEST 1 2031-10-26 02 +02 EET 2032-03-28 03 +03 EEST 1 2032-10-31 02 +02 EET 2033-03-27 03 +03 EEST 1 2033-10-30 02 +02 EET 2034-03-26 03 +03 EEST 1 2034-10-29 02 +02 EET 2035-03-25 03 +03 EEST 1 2035-10-28 02 +02 EET 2036-03-30 03 +03 EEST 1 2036-10-26 02 +02 EET 2037-03-29 03 +03 EEST 1 2037-10-25 02 +02 EET 2038-03-28 03 +03 EEST 1 2038-10-31 02 +02 EET 2039-03-27 03 +03 EEST 1 2039-10-30 02 +02 EET 2040-03-25 03 +03 EEST 1 2040-10-28 02 +02 EET 2041-03-31 03 +03 EEST 1 2041-10-27 02 +02 EET 2042-03-30 03 +03 EEST 1 2042-10-26 02 +02 EET 2043-03-29 03 +03 EEST 1 2043-10-25 02 +02 EET 2044-03-27 03 +03 EEST 1 2044-10-30 02 +02 EET 2045-03-26 03 +03 EEST 1 2045-10-29 02 +02 EET 2046-03-25 03 +03 EEST 1 2046-10-28 02 +02 EET 2047-03-31 03 +03 EEST 1 2047-10-27 02 +02 EET 2048-03-29 03 +03 EEST 1 2048-10-25 02 +02 EET 2049-03-28 03 +03 EEST 1 2049-10-31 02 +02 EET TZ="Europe/Copenhagen" - - +005020 LMT 1890-01-01 00 +005020 CMT 1894-01-01 00:09:40 +01 CET 1916-05-15 00 +02 CEST 1 1916-09-30 22 +01 CET 1940-05-15 01 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1944-04-03 03 +02 CEST 1 1944-10-02 02 +01 CET 1945-04-02 03 +02 CEST 1 1945-08-15 02 +01 CET 1946-05-01 03 +02 CEST 1 1946-09-01 02 +01 CET 1947-05-04 03 +02 CEST 1 1947-08-10 02 +01 CET 1948-05-09 03 +02 CEST 1 1948-08-08 02 +01 CET 1980-04-06 03 +02 CEST 1 1980-09-28 02 +01 CET 1981-03-29 03 +02 CEST 1 1981-09-27 02 +01 CET 1982-03-28 03 +02 CEST 1 1982-09-26 02 +01 CET 1983-03-27 03 +02 CEST 1 1983-09-25 02 +01 CET 1984-03-25 03 +02 CEST 1 1984-09-30 02 +01 CET 1985-03-31 03 +02 CEST 1 1985-09-29 02 +01 CET 1986-03-30 03 +02 CEST 1 1986-09-28 02 +01 CET 1987-03-29 03 +02 CEST 1 1987-09-27 02 +01 CET 1988-03-27 03 +02 CEST 1 1988-09-25 02 +01 CET 1989-03-26 03 +02 CEST 1 1989-09-24 02 +01 CET 1990-03-25 03 +02 CEST 1 1990-09-30 02 +01 CET 1991-03-31 03 +02 CEST 1 1991-09-29 02 +01 CET 1992-03-29 03 +02 CEST 1 1992-09-27 02 +01 CET 1993-03-28 03 +02 CEST 1 1993-09-26 02 +01 CET 1994-03-27 03 +02 CEST 1 1994-09-25 02 +01 CET 1995-03-26 03 +02 CEST 1 1995-09-24 02 +01 CET 1996-03-31 03 +02 CEST 1 1996-10-27 02 +01 CET 1997-03-30 03 +02 CEST 1 1997-10-26 02 +01 CET 1998-03-29 03 +02 CEST 1 1998-10-25 02 +01 CET 1999-03-28 03 +02 CEST 1 1999-10-31 02 +01 CET 2000-03-26 03 +02 CEST 1 2000-10-29 02 +01 CET 2001-03-25 03 +02 CEST 1 2001-10-28 02 +01 CET 2002-03-31 03 +02 CEST 1 2002-10-27 02 +01 CET 2003-03-30 03 +02 CEST 1 2003-10-26 02 +01 CET 2004-03-28 03 +02 CEST 1 2004-10-31 02 +01 CET 2005-03-27 03 +02 CEST 1 2005-10-30 02 +01 CET 2006-03-26 03 +02 CEST 1 2006-10-29 02 +01 CET 2007-03-25 03 +02 CEST 1 2007-10-28 02 +01 CET 2008-03-30 03 +02 CEST 1 2008-10-26 02 +01 CET 2009-03-29 03 +02 CEST 1 2009-10-25 02 +01 CET 2010-03-28 03 +02 CEST 1 2010-10-31 02 +01 CET 2011-03-27 03 +02 CEST 1 2011-10-30 02 +01 CET 2012-03-25 03 +02 CEST 1 2012-10-28 02 +01 CET 2013-03-31 03 +02 CEST 1 2013-10-27 02 +01 CET 2014-03-30 03 +02 CEST 1 2014-10-26 02 +01 CET 2015-03-29 03 +02 CEST 1 2015-10-25 02 +01 CET 2016-03-27 03 +02 CEST 1 2016-10-30 02 +01 CET 2017-03-26 03 +02 CEST 1 2017-10-29 02 +01 CET 2018-03-25 03 +02 CEST 1 2018-10-28 02 +01 CET 2019-03-31 03 +02 CEST 1 2019-10-27 02 +01 CET 2020-03-29 03 +02 CEST 1 2020-10-25 02 +01 CET 2021-03-28 03 +02 CEST 1 2021-10-31 02 +01 CET 2022-03-27 03 +02 CEST 1 2022-10-30 02 +01 CET 2023-03-26 03 +02 CEST 1 2023-10-29 02 +01 CET 2024-03-31 03 +02 CEST 1 2024-10-27 02 +01 CET 2025-03-30 03 +02 CEST 1 2025-10-26 02 +01 CET 2026-03-29 03 +02 CEST 1 2026-10-25 02 +01 CET 2027-03-28 03 +02 CEST 1 2027-10-31 02 +01 CET 2028-03-26 03 +02 CEST 1 2028-10-29 02 +01 CET 2029-03-25 03 +02 CEST 1 2029-10-28 02 +01 CET 2030-03-31 03 +02 CEST 1 2030-10-27 02 +01 CET 2031-03-30 03 +02 CEST 1 2031-10-26 02 +01 CET 2032-03-28 03 +02 CEST 1 2032-10-31 02 +01 CET 2033-03-27 03 +02 CEST 1 2033-10-30 02 +01 CET 2034-03-26 03 +02 CEST 1 2034-10-29 02 +01 CET 2035-03-25 03 +02 CEST 1 2035-10-28 02 +01 CET 2036-03-30 03 +02 CEST 1 2036-10-26 02 +01 CET 2037-03-29 03 +02 CEST 1 2037-10-25 02 +01 CET 2038-03-28 03 +02 CEST 1 2038-10-31 02 +01 CET 2039-03-27 03 +02 CEST 1 2039-10-30 02 +01 CET 2040-03-25 03 +02 CEST 1 2040-10-28 02 +01 CET 2041-03-31 03 +02 CEST 1 2041-10-27 02 +01 CET 2042-03-30 03 +02 CEST 1 2042-10-26 02 +01 CET 2043-03-29 03 +02 CEST 1 2043-10-25 02 +01 CET 2044-03-27 03 +02 CEST 1 2044-10-30 02 +01 CET 2045-03-26 03 +02 CEST 1 2045-10-29 02 +01 CET 2046-03-25 03 +02 CEST 1 2046-10-28 02 +01 CET 2047-03-31 03 +02 CEST 1 2047-10-27 02 +01 CET 2048-03-29 03 +02 CEST 1 2048-10-25 02 +01 CET 2049-03-28 03 +02 CEST 1 2049-10-31 02 +01 CET TZ="Europe/Dublin" - - -0025 LMT 1880-08-01 23:59:39 -002521 DMT 1916-05-21 03 +003439 IST 1 1916-10-01 02:25:21 +00 GMT 1917-04-08 03 +01 BST 1 1917-09-17 02 +00 GMT 1918-03-24 03 +01 BST 1 1918-09-30 02 +00 GMT 1919-03-30 03 +01 BST 1 1919-09-29 02 +00 GMT 1920-03-28 03 +01 BST 1 1920-10-25 02 +00 GMT 1921-04-03 03 +01 BST 1 1921-10-03 02 +00 GMT 1922-03-26 03 +01 IST 1 1922-10-08 02 +00 GMT 1923-04-22 03 +01 IST 1 1923-09-16 02 +00 GMT 1924-04-13 03 +01 IST 1 1924-09-21 02 +00 GMT 1925-04-19 03 +01 IST 1 1925-10-04 02 +00 GMT 1926-04-18 03 +01 IST 1 1926-10-03 02 +00 GMT 1927-04-10 03 +01 IST 1 1927-10-02 02 +00 GMT 1928-04-22 03 +01 IST 1 1928-10-07 02 +00 GMT 1929-04-21 03 +01 IST 1 1929-10-06 02 +00 GMT 1930-04-13 03 +01 IST 1 1930-10-05 02 +00 GMT 1931-04-19 03 +01 IST 1 1931-10-04 02 +00 GMT 1932-04-17 03 +01 IST 1 1932-10-02 02 +00 GMT 1933-04-09 03 +01 IST 1 1933-10-08 02 +00 GMT 1934-04-22 03 +01 IST 1 1934-10-07 02 +00 GMT 1935-04-14 03 +01 IST 1 1935-10-06 02 +00 GMT 1936-04-19 03 +01 IST 1 1936-10-04 02 +00 GMT 1937-04-18 03 +01 IST 1 1937-10-03 02 +00 GMT 1938-04-10 03 +01 IST 1 1938-10-02 02 +00 GMT 1939-04-16 03 +01 IST 1 1939-11-19 02 +00 GMT 1940-02-25 03 +01 IST 1 1946-10-06 02 +00 GMT 1947-03-16 03 +01 IST 1 1947-11-02 02 +00 GMT 1948-04-18 03 +01 IST 1 1948-10-31 02 +00 GMT 1949-04-03 03 +01 IST 1 1949-10-30 02 +00 GMT 1950-04-16 03 +01 IST 1 1950-10-22 02 +00 GMT 1951-04-15 03 +01 IST 1 1951-10-21 02 +00 GMT 1952-04-20 03 +01 IST 1 1952-10-26 02 +00 GMT 1953-04-19 03 +01 IST 1 1953-10-04 02 +00 GMT 1954-04-11 03 +01 IST 1 1954-10-03 02 +00 GMT 1955-04-17 03 +01 IST 1 1955-10-02 02 +00 GMT 1956-04-22 03 +01 IST 1 1956-10-07 02 +00 GMT 1957-04-14 03 +01 IST 1 1957-10-06 02 +00 GMT 1958-04-20 03 +01 IST 1 1958-10-05 02 +00 GMT 1959-04-19 03 +01 IST 1 1959-10-04 02 +00 GMT 1960-04-10 03 +01 IST 1 1960-10-02 02 +00 GMT 1961-03-26 03 +01 IST 1 1961-10-29 02 +00 GMT 1962-03-25 03 +01 IST 1 1962-10-28 02 +00 GMT 1963-03-31 03 +01 IST 1 1963-10-27 02 +00 GMT 1964-03-22 03 +01 IST 1 1964-10-25 02 +00 GMT 1965-03-21 03 +01 IST 1 1965-10-24 02 +00 GMT 1966-03-20 03 +01 IST 1 1966-10-23 02 +00 GMT 1967-03-19 03 +01 IST 1 1967-10-29 02 +00 GMT 1968-02-18 03 +01 IST 1 1968-10-27 00 +01 IST 1971-10-31 02 +00 GMT 1 1972-03-19 03 +01 IST 1972-10-29 02 +00 GMT 1 1973-03-18 03 +01 IST 1973-10-28 02 +00 GMT 1 1974-03-17 03 +01 IST 1974-10-27 02 +00 GMT 1 1975-03-16 03 +01 IST 1975-10-26 02 +00 GMT 1 1976-03-21 03 +01 IST 1976-10-24 02 +00 GMT 1 1977-03-20 03 +01 IST 1977-10-23 02 +00 GMT 1 1978-03-19 03 +01 IST 1978-10-29 02 +00 GMT 1 1979-03-18 03 +01 IST 1979-10-28 02 +00 GMT 1 1980-03-16 03 +01 IST 1980-10-26 02 +00 GMT 1 1981-03-29 02 +01 IST 1981-10-25 01 +00 GMT 1 1982-03-28 02 +01 IST 1982-10-24 01 +00 GMT 1 1983-03-27 02 +01 IST 1983-10-23 01 +00 GMT 1 1984-03-25 02 +01 IST 1984-10-28 01 +00 GMT 1 1985-03-31 02 +01 IST 1985-10-27 01 +00 GMT 1 1986-03-30 02 +01 IST 1986-10-26 01 +00 GMT 1 1987-03-29 02 +01 IST 1987-10-25 01 +00 GMT 1 1988-03-27 02 +01 IST 1988-10-23 01 +00 GMT 1 1989-03-26 02 +01 IST 1989-10-29 01 +00 GMT 1 1990-03-25 02 +01 IST 1990-10-28 01 +00 GMT 1 1991-03-31 02 +01 IST 1991-10-27 01 +00 GMT 1 1992-03-29 02 +01 IST 1992-10-25 01 +00 GMT 1 1993-03-28 02 +01 IST 1993-10-24 01 +00 GMT 1 1994-03-27 02 +01 IST 1994-10-23 01 +00 GMT 1 1995-03-26 02 +01 IST 1995-10-22 01 +00 GMT 1 1996-03-31 02 +01 IST 1996-10-27 01 +00 GMT 1 1997-03-30 02 +01 IST 1997-10-26 01 +00 GMT 1 1998-03-29 02 +01 IST 1998-10-25 01 +00 GMT 1 1999-03-28 02 +01 IST 1999-10-31 01 +00 GMT 1 2000-03-26 02 +01 IST 2000-10-29 01 +00 GMT 1 2001-03-25 02 +01 IST 2001-10-28 01 +00 GMT 1 2002-03-31 02 +01 IST 2002-10-27 01 +00 GMT 1 2003-03-30 02 +01 IST 2003-10-26 01 +00 GMT 1 2004-03-28 02 +01 IST 2004-10-31 01 +00 GMT 1 2005-03-27 02 +01 IST 2005-10-30 01 +00 GMT 1 2006-03-26 02 +01 IST 2006-10-29 01 +00 GMT 1 2007-03-25 02 +01 IST 2007-10-28 01 +00 GMT 1 2008-03-30 02 +01 IST 2008-10-26 01 +00 GMT 1 2009-03-29 02 +01 IST 2009-10-25 01 +00 GMT 1 2010-03-28 02 +01 IST 2010-10-31 01 +00 GMT 1 2011-03-27 02 +01 IST 2011-10-30 01 +00 GMT 1 2012-03-25 02 +01 IST 2012-10-28 01 +00 GMT 1 2013-03-31 02 +01 IST 2013-10-27 01 +00 GMT 1 2014-03-30 02 +01 IST 2014-10-26 01 +00 GMT 1 2015-03-29 02 +01 IST 2015-10-25 01 +00 GMT 1 2016-03-27 02 +01 IST 2016-10-30 01 +00 GMT 1 2017-03-26 02 +01 IST 2017-10-29 01 +00 GMT 1 2018-03-25 02 +01 IST 2018-10-28 01 +00 GMT 1 2019-03-31 02 +01 IST 2019-10-27 01 +00 GMT 1 2020-03-29 02 +01 IST 2020-10-25 01 +00 GMT 1 2021-03-28 02 +01 IST 2021-10-31 01 +00 GMT 1 2022-03-27 02 +01 IST 2022-10-30 01 +00 GMT 1 2023-03-26 02 +01 IST 2023-10-29 01 +00 GMT 1 2024-03-31 02 +01 IST 2024-10-27 01 +00 GMT 1 2025-03-30 02 +01 IST 2025-10-26 01 +00 GMT 1 2026-03-29 02 +01 IST 2026-10-25 01 +00 GMT 1 2027-03-28 02 +01 IST 2027-10-31 01 +00 GMT 1 2028-03-26 02 +01 IST 2028-10-29 01 +00 GMT 1 2029-03-25 02 +01 IST 2029-10-28 01 +00 GMT 1 2030-03-31 02 +01 IST 2030-10-27 01 +00 GMT 1 2031-03-30 02 +01 IST 2031-10-26 01 +00 GMT 1 2032-03-28 02 +01 IST 2032-10-31 01 +00 GMT 1 2033-03-27 02 +01 IST 2033-10-30 01 +00 GMT 1 2034-03-26 02 +01 IST 2034-10-29 01 +00 GMT 1 2035-03-25 02 +01 IST 2035-10-28 01 +00 GMT 1 2036-03-30 02 +01 IST 2036-10-26 01 +00 GMT 1 2037-03-29 02 +01 IST 2037-10-25 01 +00 GMT 1 2038-03-28 02 +01 IST 2038-10-31 01 +00 GMT 1 2039-03-27 02 +01 IST 2039-10-30 01 +00 GMT 1 2040-03-25 02 +01 IST 2040-10-28 01 +00 GMT 1 2041-03-31 02 +01 IST 2041-10-27 01 +00 GMT 1 2042-03-30 02 +01 IST 2042-10-26 01 +00 GMT 1 2043-03-29 02 +01 IST 2043-10-25 01 +00 GMT 1 2044-03-27 02 +01 IST 2044-10-30 01 +00 GMT 1 2045-03-26 02 +01 IST 2045-10-29 01 +00 GMT 1 2046-03-25 02 +01 IST 2046-10-28 01 +00 GMT 1 2047-03-31 02 +01 IST 2047-10-27 01 +00 GMT 1 2048-03-29 02 +01 IST 2048-10-25 01 +00 GMT 1 2049-03-28 02 +01 IST 2049-10-31 01 +00 GMT 1 TZ="Europe/Gibraltar" - - -002124 LMT 1880-08-02 00:21:24 +00 GMT 1916-05-21 03 +01 BST 1 1916-10-01 02 +00 GMT 1917-04-08 03 +01 BST 1 1917-09-17 02 +00 GMT 1918-03-24 03 +01 BST 1 1918-09-30 02 +00 GMT 1919-03-30 03 +01 BST 1 1919-09-29 02 +00 GMT 1920-03-28 03 +01 BST 1 1920-10-25 02 +00 GMT 1921-04-03 03 +01 BST 1 1921-10-03 02 +00 GMT 1922-03-26 03 +01 BST 1 1922-10-08 02 +00 GMT 1923-04-22 03 +01 BST 1 1923-09-16 02 +00 GMT 1924-04-13 03 +01 BST 1 1924-09-21 02 +00 GMT 1925-04-19 03 +01 BST 1 1925-10-04 02 +00 GMT 1926-04-18 03 +01 BST 1 1926-10-03 02 +00 GMT 1927-04-10 03 +01 BST 1 1927-10-02 02 +00 GMT 1928-04-22 03 +01 BST 1 1928-10-07 02 +00 GMT 1929-04-21 03 +01 BST 1 1929-10-06 02 +00 GMT 1930-04-13 03 +01 BST 1 1930-10-05 02 +00 GMT 1931-04-19 03 +01 BST 1 1931-10-04 02 +00 GMT 1932-04-17 03 +01 BST 1 1932-10-02 02 +00 GMT 1933-04-09 03 +01 BST 1 1933-10-08 02 +00 GMT 1934-04-22 03 +01 BST 1 1934-10-07 02 +00 GMT 1935-04-14 03 +01 BST 1 1935-10-06 02 +00 GMT 1936-04-19 03 +01 BST 1 1936-10-04 02 +00 GMT 1937-04-18 03 +01 BST 1 1937-10-03 02 +00 GMT 1938-04-10 03 +01 BST 1 1938-10-02 02 +00 GMT 1939-04-16 03 +01 BST 1 1939-11-19 02 +00 GMT 1940-02-25 03 +01 BST 1 1941-05-04 03 +02 BDST 1 1941-08-10 02 +01 BST 1 1942-04-05 03 +02 BDST 1 1942-08-09 02 +01 BST 1 1943-04-04 03 +02 BDST 1 1943-08-15 02 +01 BST 1 1944-04-02 03 +02 BDST 1 1944-09-17 02 +01 BST 1 1945-04-02 03 +02 BDST 1 1945-07-15 02 +01 BST 1 1945-10-07 02 +00 GMT 1946-04-14 03 +01 BST 1 1946-10-06 02 +00 GMT 1947-03-16 03 +01 BST 1 1947-04-13 03 +02 BDST 1 1947-08-10 02 +01 BST 1 1947-11-02 02 +00 GMT 1948-03-14 03 +01 BST 1 1948-10-31 02 +00 GMT 1949-04-03 03 +01 BST 1 1949-10-30 02 +00 GMT 1950-04-16 03 +01 BST 1 1950-10-22 02 +00 GMT 1951-04-15 03 +01 BST 1 1951-10-21 02 +00 GMT 1952-04-20 03 +01 BST 1 1952-10-26 02 +00 GMT 1953-04-19 03 +01 BST 1 1953-10-04 02 +00 GMT 1954-04-11 03 +01 BST 1 1954-10-03 02 +00 GMT 1955-04-17 03 +01 BST 1 1955-10-02 02 +00 GMT 1956-04-22 03 +01 BST 1 1956-10-07 02 +00 GMT 1957-04-14 03 +01 CET 1982-03-28 03 +02 CEST 1 1982-09-26 02 +01 CET 1983-03-27 03 +02 CEST 1 1983-09-25 02 +01 CET 1984-03-25 03 +02 CEST 1 1984-09-30 02 +01 CET 1985-03-31 03 +02 CEST 1 1985-09-29 02 +01 CET 1986-03-30 03 +02 CEST 1 1986-09-28 02 +01 CET 1987-03-29 03 +02 CEST 1 1987-09-27 02 +01 CET 1988-03-27 03 +02 CEST 1 1988-09-25 02 +01 CET 1989-03-26 03 +02 CEST 1 1989-09-24 02 +01 CET 1990-03-25 03 +02 CEST 1 1990-09-30 02 +01 CET 1991-03-31 03 +02 CEST 1 1991-09-29 02 +01 CET 1992-03-29 03 +02 CEST 1 1992-09-27 02 +01 CET 1993-03-28 03 +02 CEST 1 1993-09-26 02 +01 CET 1994-03-27 03 +02 CEST 1 1994-09-25 02 +01 CET 1995-03-26 03 +02 CEST 1 1995-09-24 02 +01 CET 1996-03-31 03 +02 CEST 1 1996-10-27 02 +01 CET 1997-03-30 03 +02 CEST 1 1997-10-26 02 +01 CET 1998-03-29 03 +02 CEST 1 1998-10-25 02 +01 CET 1999-03-28 03 +02 CEST 1 1999-10-31 02 +01 CET 2000-03-26 03 +02 CEST 1 2000-10-29 02 +01 CET 2001-03-25 03 +02 CEST 1 2001-10-28 02 +01 CET 2002-03-31 03 +02 CEST 1 2002-10-27 02 +01 CET 2003-03-30 03 +02 CEST 1 2003-10-26 02 +01 CET 2004-03-28 03 +02 CEST 1 2004-10-31 02 +01 CET 2005-03-27 03 +02 CEST 1 2005-10-30 02 +01 CET 2006-03-26 03 +02 CEST 1 2006-10-29 02 +01 CET 2007-03-25 03 +02 CEST 1 2007-10-28 02 +01 CET 2008-03-30 03 +02 CEST 1 2008-10-26 02 +01 CET 2009-03-29 03 +02 CEST 1 2009-10-25 02 +01 CET 2010-03-28 03 +02 CEST 1 2010-10-31 02 +01 CET 2011-03-27 03 +02 CEST 1 2011-10-30 02 +01 CET 2012-03-25 03 +02 CEST 1 2012-10-28 02 +01 CET 2013-03-31 03 +02 CEST 1 2013-10-27 02 +01 CET 2014-03-30 03 +02 CEST 1 2014-10-26 02 +01 CET 2015-03-29 03 +02 CEST 1 2015-10-25 02 +01 CET 2016-03-27 03 +02 CEST 1 2016-10-30 02 +01 CET 2017-03-26 03 +02 CEST 1 2017-10-29 02 +01 CET 2018-03-25 03 +02 CEST 1 2018-10-28 02 +01 CET 2019-03-31 03 +02 CEST 1 2019-10-27 02 +01 CET 2020-03-29 03 +02 CEST 1 2020-10-25 02 +01 CET 2021-03-28 03 +02 CEST 1 2021-10-31 02 +01 CET 2022-03-27 03 +02 CEST 1 2022-10-30 02 +01 CET 2023-03-26 03 +02 CEST 1 2023-10-29 02 +01 CET 2024-03-31 03 +02 CEST 1 2024-10-27 02 +01 CET 2025-03-30 03 +02 CEST 1 2025-10-26 02 +01 CET 2026-03-29 03 +02 CEST 1 2026-10-25 02 +01 CET 2027-03-28 03 +02 CEST 1 2027-10-31 02 +01 CET 2028-03-26 03 +02 CEST 1 2028-10-29 02 +01 CET 2029-03-25 03 +02 CEST 1 2029-10-28 02 +01 CET 2030-03-31 03 +02 CEST 1 2030-10-27 02 +01 CET 2031-03-30 03 +02 CEST 1 2031-10-26 02 +01 CET 2032-03-28 03 +02 CEST 1 2032-10-31 02 +01 CET 2033-03-27 03 +02 CEST 1 2033-10-30 02 +01 CET 2034-03-26 03 +02 CEST 1 2034-10-29 02 +01 CET 2035-03-25 03 +02 CEST 1 2035-10-28 02 +01 CET 2036-03-30 03 +02 CEST 1 2036-10-26 02 +01 CET 2037-03-29 03 +02 CEST 1 2037-10-25 02 +01 CET 2038-03-28 03 +02 CEST 1 2038-10-31 02 +01 CET 2039-03-27 03 +02 CEST 1 2039-10-30 02 +01 CET 2040-03-25 03 +02 CEST 1 2040-10-28 02 +01 CET 2041-03-31 03 +02 CEST 1 2041-10-27 02 +01 CET 2042-03-30 03 +02 CEST 1 2042-10-26 02 +01 CET 2043-03-29 03 +02 CEST 1 2043-10-25 02 +01 CET 2044-03-27 03 +02 CEST 1 2044-10-30 02 +01 CET 2045-03-26 03 +02 CEST 1 2045-10-29 02 +01 CET 2046-03-25 03 +02 CEST 1 2046-10-28 02 +01 CET 2047-03-31 03 +02 CEST 1 2047-10-27 02 +01 CET 2048-03-29 03 +02 CEST 1 2048-10-25 02 +01 CET 2049-03-28 03 +02 CEST 1 2049-10-31 02 +01 CET TZ="Europe/Helsinki" - - +013949 LMT 1878-05-31 00 +013949 HMT 1921-05-01 00:20:11 +02 EET 1942-04-03 01 +03 EEST 1 1942-10-04 00 +02 EET 1981-03-29 03 +03 EEST 1 1981-09-27 02 +02 EET 1982-03-28 03 +03 EEST 1 1982-09-26 02 +02 EET 1983-03-27 04 +03 EEST 1 1983-09-25 03 +02 EET 1984-03-25 04 +03 EEST 1 1984-09-30 03 +02 EET 1985-03-31 04 +03 EEST 1 1985-09-29 03 +02 EET 1986-03-30 04 +03 EEST 1 1986-09-28 03 +02 EET 1987-03-29 04 +03 EEST 1 1987-09-27 03 +02 EET 1988-03-27 04 +03 EEST 1 1988-09-25 03 +02 EET 1989-03-26 04 +03 EEST 1 1989-09-24 03 +02 EET 1990-03-25 04 +03 EEST 1 1990-09-30 03 +02 EET 1991-03-31 04 +03 EEST 1 1991-09-29 03 +02 EET 1992-03-29 04 +03 EEST 1 1992-09-27 03 +02 EET 1993-03-28 04 +03 EEST 1 1993-09-26 03 +02 EET 1994-03-27 04 +03 EEST 1 1994-09-25 03 +02 EET 1995-03-26 04 +03 EEST 1 1995-09-24 03 +02 EET 1996-03-31 04 +03 EEST 1 1996-10-27 03 +02 EET 1997-03-30 04 +03 EEST 1 1997-10-26 03 +02 EET 1998-03-29 04 +03 EEST 1 1998-10-25 03 +02 EET 1999-03-28 04 +03 EEST 1 1999-10-31 03 +02 EET 2000-03-26 04 +03 EEST 1 2000-10-29 03 +02 EET 2001-03-25 04 +03 EEST 1 2001-10-28 03 +02 EET 2002-03-31 04 +03 EEST 1 2002-10-27 03 +02 EET 2003-03-30 04 +03 EEST 1 2003-10-26 03 +02 EET 2004-03-28 04 +03 EEST 1 2004-10-31 03 +02 EET 2005-03-27 04 +03 EEST 1 2005-10-30 03 +02 EET 2006-03-26 04 +03 EEST 1 2006-10-29 03 +02 EET 2007-03-25 04 +03 EEST 1 2007-10-28 03 +02 EET 2008-03-30 04 +03 EEST 1 2008-10-26 03 +02 EET 2009-03-29 04 +03 EEST 1 2009-10-25 03 +02 EET 2010-03-28 04 +03 EEST 1 2010-10-31 03 +02 EET 2011-03-27 04 +03 EEST 1 2011-10-30 03 +02 EET 2012-03-25 04 +03 EEST 1 2012-10-28 03 +02 EET 2013-03-31 04 +03 EEST 1 2013-10-27 03 +02 EET 2014-03-30 04 +03 EEST 1 2014-10-26 03 +02 EET 2015-03-29 04 +03 EEST 1 2015-10-25 03 +02 EET 2016-03-27 04 +03 EEST 1 2016-10-30 03 +02 EET 2017-03-26 04 +03 EEST 1 2017-10-29 03 +02 EET 2018-03-25 04 +03 EEST 1 2018-10-28 03 +02 EET 2019-03-31 04 +03 EEST 1 2019-10-27 03 +02 EET 2020-03-29 04 +03 EEST 1 2020-10-25 03 +02 EET 2021-03-28 04 +03 EEST 1 2021-10-31 03 +02 EET 2022-03-27 04 +03 EEST 1 2022-10-30 03 +02 EET 2023-03-26 04 +03 EEST 1 2023-10-29 03 +02 EET 2024-03-31 04 +03 EEST 1 2024-10-27 03 +02 EET 2025-03-30 04 +03 EEST 1 2025-10-26 03 +02 EET 2026-03-29 04 +03 EEST 1 2026-10-25 03 +02 EET 2027-03-28 04 +03 EEST 1 2027-10-31 03 +02 EET 2028-03-26 04 +03 EEST 1 2028-10-29 03 +02 EET 2029-03-25 04 +03 EEST 1 2029-10-28 03 +02 EET 2030-03-31 04 +03 EEST 1 2030-10-27 03 +02 EET 2031-03-30 04 +03 EEST 1 2031-10-26 03 +02 EET 2032-03-28 04 +03 EEST 1 2032-10-31 03 +02 EET 2033-03-27 04 +03 EEST 1 2033-10-30 03 +02 EET 2034-03-26 04 +03 EEST 1 2034-10-29 03 +02 EET 2035-03-25 04 +03 EEST 1 2035-10-28 03 +02 EET 2036-03-30 04 +03 EEST 1 2036-10-26 03 +02 EET 2037-03-29 04 +03 EEST 1 2037-10-25 03 +02 EET 2038-03-28 04 +03 EEST 1 2038-10-31 03 +02 EET 2039-03-27 04 +03 EEST 1 2039-10-30 03 +02 EET 2040-03-25 04 +03 EEST 1 2040-10-28 03 +02 EET 2041-03-31 04 +03 EEST 1 2041-10-27 03 +02 EET 2042-03-30 04 +03 EEST 1 2042-10-26 03 +02 EET 2043-03-29 04 +03 EEST 1 2043-10-25 03 +02 EET 2044-03-27 04 +03 EEST 1 2044-10-30 03 +02 EET 2045-03-26 04 +03 EEST 1 2045-10-29 03 +02 EET 2046-03-25 04 +03 EEST 1 2046-10-28 03 +02 EET 2047-03-31 04 +03 EEST 1 2047-10-27 03 +02 EET 2048-03-29 04 +03 EEST 1 2048-10-25 03 +02 EET 2049-03-28 04 +03 EEST 1 2049-10-31 03 +02 EET TZ="Europe/Istanbul" - - +015552 LMT 1880-01-01 00:01:04 +015656 IMT 1910-10-01 00:03:04 +02 EET 1916-05-01 01 +03 EEST 1 1916-09-30 23 +02 EET 1920-03-28 01 +03 EEST 1 1920-10-24 23 +02 EET 1921-04-03 01 +03 EEST 1 1921-10-02 23 +02 EET 1922-03-26 01 +03 EEST 1 1922-10-07 23 +02 EET 1924-05-13 01 +03 EEST 1 1924-09-30 23 +02 EET 1925-05-01 01 +03 EEST 1 1925-09-30 23 +02 EET 1940-07-01 01 +03 EEST 1 1940-10-05 23 +02 EET 1940-12-01 01 +03 EEST 1 1941-09-20 23 +02 EET 1942-04-01 01 +03 EEST 1 1945-10-07 23 +02 EET 1946-06-01 01 +03 EEST 1 1946-09-30 23 +02 EET 1947-04-20 01 +03 EEST 1 1947-10-04 23 +02 EET 1948-04-18 01 +03 EEST 1 1948-10-02 23 +02 EET 1949-04-10 01 +03 EEST 1 1949-10-01 23 +02 EET 1950-04-16 01 +03 EEST 1 1950-10-07 23 +02 EET 1951-04-22 01 +03 EEST 1 1951-10-06 23 +02 EET 1962-07-15 01 +03 EEST 1 1963-10-29 23 +02 EET 1964-05-15 01 +03 EEST 1 1964-09-30 23 +02 EET 1973-06-03 02 +03 EEST 1 1973-11-04 01 +02 EET 1974-03-31 03 +03 EEST 1 1974-11-03 01 +02 EET 1975-03-22 03 +03 EEST 1 1975-11-02 01 +02 EET 1976-03-21 03 +03 EEST 1 1976-10-31 01 +02 EET 1977-04-03 03 +03 EEST 1 1977-10-16 01 +02 EET 1978-04-02 03 +03 EEST 1 1978-06-29 00 +03 1983-07-31 03 +04 1 1983-10-02 01 +03 1984-11-01 01 +02 EET 1985-04-20 02 +03 EEST 1 1985-09-28 01 +02 EET 1986-03-30 02 +03 EEST 1 1986-09-28 01 +02 EET 1987-03-29 02 +03 EEST 1 1987-09-27 01 +02 EET 1988-03-27 02 +03 EEST 1 1988-09-25 01 +02 EET 1989-03-26 02 +03 EEST 1 1989-09-24 01 +02 EET 1990-03-25 02 +03 EEST 1 1990-09-30 01 +02 EET 1991-03-31 02 +03 EEST 1 1991-09-29 01 +02 EET 1992-03-29 02 +03 EEST 1 1992-09-27 01 +02 EET 1993-03-28 02 +03 EEST 1 1993-09-26 01 +02 EET 1994-03-20 02 +03 EEST 1 1994-09-25 01 +02 EET 1995-03-26 02 +03 EEST 1 1995-09-24 01 +02 EET 1996-03-31 02 +03 EEST 1 1996-10-27 01 +02 EET 1997-03-30 02 +03 EEST 1 1997-10-26 01 +02 EET 1998-03-29 02 +03 EEST 1 1998-10-25 01 +02 EET 1999-03-28 02 +03 EEST 1 1999-10-31 01 +02 EET 2000-03-26 02 +03 EEST 1 2000-10-29 01 +02 EET 2001-03-25 02 +03 EEST 1 2001-10-28 01 +02 EET 2002-03-31 02 +03 EEST 1 2002-10-27 01 +02 EET 2003-03-30 02 +03 EEST 1 2003-10-26 01 +02 EET 2004-03-28 02 +03 EEST 1 2004-10-31 01 +02 EET 2005-03-27 02 +03 EEST 1 2005-10-30 01 +02 EET 2006-03-26 02 +03 EEST 1 2006-10-29 01 +02 EET 2007-03-25 04 +03 EEST 1 2007-10-28 03 +02 EET 2008-03-30 04 +03 EEST 1 2008-10-26 03 +02 EET 2009-03-29 04 +03 EEST 1 2009-10-25 03 +02 EET 2010-03-28 04 +03 EEST 1 2010-10-31 03 +02 EET 2011-03-28 04 +03 EEST 1 2011-10-30 03 +02 EET 2012-03-25 04 +03 EEST 1 2012-10-28 03 +02 EET 2013-03-31 04 +03 EEST 1 2013-10-27 03 +02 EET 2014-03-31 04 +03 EEST 1 2014-10-26 03 +02 EET 2015-03-29 04 +03 EEST 1 2015-11-08 03 +02 EET 2016-03-27 04 +03 EEST 1 2016-09-07 00 +03 TZ="Europe/Kaliningrad" - - +0122 LMT 1893-03-31 23:38 +01 CET 1916-05-01 00 +02 CEST 1 1916-10-01 00 +01 CET 1917-04-16 03 +02 CEST 1 1917-09-17 02 +01 CET 1918-04-15 03 +02 CEST 1 1918-09-16 02 +01 CET 1940-04-01 03 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1944-04-03 03 +02 CEST 1 1944-10-02 02 +01 CET 1945-04-02 03 +02 CEST 1 1945-04-10 00 +02 EET 1945-04-29 01 +03 EEST 1 1945-10-31 23 +02 EET 1946-04-07 01 +03 MSK 1981-04-01 01 +04 MSD 1 1981-09-30 23 +03 MSK 1982-04-01 01 +04 MSD 1 1982-09-30 23 +03 MSK 1983-04-01 01 +04 MSD 1 1983-09-30 23 +03 MSK 1984-04-01 01 +04 MSD 1 1984-09-30 02 +03 MSK 1985-03-31 03 +04 MSD 1 1985-09-29 02 +03 MSK 1986-03-30 03 +04 MSD 1 1986-09-28 02 +03 MSK 1987-03-29 03 +04 MSD 1 1987-09-27 02 +03 MSK 1988-03-27 03 +04 MSD 1 1988-09-25 02 +03 MSK 1989-03-26 02 +03 EEST 1 1989-09-24 02 +02 EET 1990-03-25 03 +03 EEST 1 1990-09-30 02 +02 EET 1991-03-31 03 +03 EEST 1 1991-09-29 02 +02 EET 1992-03-29 03 +03 EEST 1 1992-09-27 02 +02 EET 1993-03-28 03 +03 EEST 1 1993-09-26 02 +02 EET 1994-03-27 03 +03 EEST 1 1994-09-25 02 +02 EET 1995-03-26 03 +03 EEST 1 1995-09-24 02 +02 EET 1996-03-31 03 +03 EEST 1 1996-10-27 02 +02 EET 1997-03-30 03 +03 EEST 1 1997-10-26 02 +02 EET 1998-03-29 03 +03 EEST 1 1998-10-25 02 +02 EET 1999-03-28 03 +03 EEST 1 1999-10-31 02 +02 EET 2000-03-26 03 +03 EEST 1 2000-10-29 02 +02 EET 2001-03-25 03 +03 EEST 1 2001-10-28 02 +02 EET 2002-03-31 03 +03 EEST 1 2002-10-27 02 +02 EET 2003-03-30 03 +03 EEST 1 2003-10-26 02 +02 EET 2004-03-28 03 +03 EEST 1 2004-10-31 02 +02 EET 2005-03-27 03 +03 EEST 1 2005-10-30 02 +02 EET 2006-03-26 03 +03 EEST 1 2006-10-29 02 +02 EET 2007-03-25 03 +03 EEST 1 2007-10-28 02 +02 EET 2008-03-30 03 +03 EEST 1 2008-10-26 02 +02 EET 2009-03-29 03 +03 EEST 1 2009-10-25 02 +02 EET 2010-03-28 03 +03 EEST 1 2010-10-31 02 +02 EET 2011-03-27 03 +03 2014-10-26 01 +02 EET TZ="Europe/Kiev" - - +020204 LMT 1880-01-01 00 +020204 KMT 1924-05-01 23:57:56 +02 EET 1930-06-21 01 +03 MSK 1941-09-19 23 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1943-11-06 02 +03 MSK 1981-04-01 01 +04 MSD 1 1981-09-30 23 +03 MSK 1982-04-01 01 +04 MSD 1 1982-09-30 23 +03 MSK 1983-04-01 01 +04 MSD 1 1983-09-30 23 +03 MSK 1984-04-01 01 +04 MSD 1 1984-09-30 02 +03 MSK 1985-03-31 03 +04 MSD 1 1985-09-29 02 +03 MSK 1986-03-30 03 +04 MSD 1 1986-09-28 02 +03 MSK 1987-03-29 03 +04 MSD 1 1987-09-27 02 +03 MSK 1988-03-27 03 +04 MSD 1 1988-09-25 02 +03 MSK 1989-03-26 03 +04 MSD 1 1989-09-24 02 +03 MSK 1990-03-25 03 +04 MSD 1 1990-07-01 01 +03 EEST 1 1991-09-29 02 +02 EET 1992-03-29 01 +03 EEST 1 1992-09-26 23 +02 EET 1993-03-28 01 +03 EEST 1 1993-09-25 23 +02 EET 1994-03-27 01 +03 EEST 1 1994-09-24 23 +02 EET 1995-03-26 04 +03 EEST 1 1995-09-24 03 +02 EET 1996-03-31 04 +03 EEST 1 1996-10-27 03 +02 EET 1997-03-30 04 +03 EEST 1 1997-10-26 03 +02 EET 1998-03-29 04 +03 EEST 1 1998-10-25 03 +02 EET 1999-03-28 04 +03 EEST 1 1999-10-31 03 +02 EET 2000-03-26 04 +03 EEST 1 2000-10-29 03 +02 EET 2001-03-25 04 +03 EEST 1 2001-10-28 03 +02 EET 2002-03-31 04 +03 EEST 1 2002-10-27 03 +02 EET 2003-03-30 04 +03 EEST 1 2003-10-26 03 +02 EET 2004-03-28 04 +03 EEST 1 2004-10-31 03 +02 EET 2005-03-27 04 +03 EEST 1 2005-10-30 03 +02 EET 2006-03-26 04 +03 EEST 1 2006-10-29 03 +02 EET 2007-03-25 04 +03 EEST 1 2007-10-28 03 +02 EET 2008-03-30 04 +03 EEST 1 2008-10-26 03 +02 EET 2009-03-29 04 +03 EEST 1 2009-10-25 03 +02 EET 2010-03-28 04 +03 EEST 1 2010-10-31 03 +02 EET 2011-03-27 04 +03 EEST 1 2011-10-30 03 +02 EET 2012-03-25 04 +03 EEST 1 2012-10-28 03 +02 EET 2013-03-31 04 +03 EEST 1 2013-10-27 03 +02 EET 2014-03-30 04 +03 EEST 1 2014-10-26 03 +02 EET 2015-03-29 04 +03 EEST 1 2015-10-25 03 +02 EET 2016-03-27 04 +03 EEST 1 2016-10-30 03 +02 EET 2017-03-26 04 +03 EEST 1 2017-10-29 03 +02 EET 2018-03-25 04 +03 EEST 1 2018-10-28 03 +02 EET 2019-03-31 04 +03 EEST 1 2019-10-27 03 +02 EET 2020-03-29 04 +03 EEST 1 2020-10-25 03 +02 EET 2021-03-28 04 +03 EEST 1 2021-10-31 03 +02 EET 2022-03-27 04 +03 EEST 1 2022-10-30 03 +02 EET 2023-03-26 04 +03 EEST 1 2023-10-29 03 +02 EET 2024-03-31 04 +03 EEST 1 2024-10-27 03 +02 EET 2025-03-30 04 +03 EEST 1 2025-10-26 03 +02 EET 2026-03-29 04 +03 EEST 1 2026-10-25 03 +02 EET 2027-03-28 04 +03 EEST 1 2027-10-31 03 +02 EET 2028-03-26 04 +03 EEST 1 2028-10-29 03 +02 EET 2029-03-25 04 +03 EEST 1 2029-10-28 03 +02 EET 2030-03-31 04 +03 EEST 1 2030-10-27 03 +02 EET 2031-03-30 04 +03 EEST 1 2031-10-26 03 +02 EET 2032-03-28 04 +03 EEST 1 2032-10-31 03 +02 EET 2033-03-27 04 +03 EEST 1 2033-10-30 03 +02 EET 2034-03-26 04 +03 EEST 1 2034-10-29 03 +02 EET 2035-03-25 04 +03 EEST 1 2035-10-28 03 +02 EET 2036-03-30 04 +03 EEST 1 2036-10-26 03 +02 EET 2037-03-29 04 +03 EEST 1 2037-10-25 03 +02 EET 2038-03-28 04 +03 EEST 1 2038-10-31 03 +02 EET 2039-03-27 04 +03 EEST 1 2039-10-30 03 +02 EET 2040-03-25 04 +03 EEST 1 2040-10-28 03 +02 EET 2041-03-31 04 +03 EEST 1 2041-10-27 03 +02 EET 2042-03-30 04 +03 EEST 1 2042-10-26 03 +02 EET 2043-03-29 04 +03 EEST 1 2043-10-25 03 +02 EET 2044-03-27 04 +03 EEST 1 2044-10-30 03 +02 EET 2045-03-26 04 +03 EEST 1 2045-10-29 03 +02 EET 2046-03-25 04 +03 EEST 1 2046-10-28 03 +02 EET 2047-03-31 04 +03 EEST 1 2047-10-27 03 +02 EET 2048-03-29 04 +03 EEST 1 2048-10-25 03 +02 EET 2049-03-28 04 +03 EEST 1 2049-10-31 03 +02 EET TZ="Europe/Kirov" - - +031848 LMT 1919-07-01 03 +03 1930-06-21 01 +04 1981-04-01 01 +05 1 1981-09-30 23 +04 1982-04-01 01 +05 1 1982-09-30 23 +04 1983-04-01 01 +05 1 1983-09-30 23 +04 1984-04-01 01 +05 1 1984-09-30 02 +04 1985-03-31 03 +05 1 1985-09-29 02 +04 1986-03-30 03 +05 1 1986-09-28 02 +04 1987-03-29 03 +05 1 1987-09-27 02 +04 1988-03-27 03 +05 1 1988-09-25 02 +04 1989-03-26 02 +04 1 1989-09-24 02 +03 1990-03-25 03 +04 1 1990-09-30 02 +03 1991-03-31 03 +04 1992-03-29 02 +04 1 1992-09-27 02 +03 1993-03-28 03 +04 1 1993-09-26 02 +03 1994-03-27 03 +04 1 1994-09-25 02 +03 1995-03-26 03 +04 1 1995-09-24 02 +03 1996-03-31 03 +04 1 1996-10-27 02 +03 1997-03-30 03 +04 1 1997-10-26 02 +03 1998-03-29 03 +04 1 1998-10-25 02 +03 1999-03-28 03 +04 1 1999-10-31 02 +03 2000-03-26 03 +04 1 2000-10-29 02 +03 2001-03-25 03 +04 1 2001-10-28 02 +03 2002-03-31 03 +04 1 2002-10-27 02 +03 2003-03-30 03 +04 1 2003-10-26 02 +03 2004-03-28 03 +04 1 2004-10-31 02 +03 2005-03-27 03 +04 1 2005-10-30 02 +03 2006-03-26 03 +04 1 2006-10-29 02 +03 2007-03-25 03 +04 1 2007-10-28 02 +03 2008-03-30 03 +04 1 2008-10-26 02 +03 2009-03-29 03 +04 1 2009-10-25 02 +03 2010-03-28 03 +04 1 2010-10-31 02 +03 2011-03-27 03 +04 2014-10-26 01 +03 TZ="Europe/Lisbon" - - -003645 LMT 1912-01-01 00 +00 WET 1916-06-18 00 +01 WEST 1 1916-11-01 00 +00 WET 1917-03-01 00 +01 WEST 1 1917-10-14 23 +00 WET 1918-03-02 00 +01 WEST 1 1918-10-14 23 +00 WET 1919-03-01 00 +01 WEST 1 1919-10-14 23 +00 WET 1920-03-01 00 +01 WEST 1 1920-10-14 23 +00 WET 1921-03-01 00 +01 WEST 1 1921-10-14 23 +00 WET 1924-04-17 00 +01 WEST 1 1924-10-14 23 +00 WET 1926-04-18 00 +01 WEST 1 1926-10-02 23 +00 WET 1927-04-10 00 +01 WEST 1 1927-10-01 23 +00 WET 1928-04-15 00 +01 WEST 1 1928-10-06 23 +00 WET 1929-04-21 00 +01 WEST 1 1929-10-05 23 +00 WET 1931-04-19 00 +01 WEST 1 1931-10-03 23 +00 WET 1932-04-03 00 +01 WEST 1 1932-10-01 23 +00 WET 1934-04-08 00 +01 WEST 1 1934-10-06 23 +00 WET 1935-03-31 00 +01 WEST 1 1935-10-05 23 +00 WET 1936-04-19 00 +01 WEST 1 1936-10-03 23 +00 WET 1937-04-04 00 +01 WEST 1 1937-10-02 23 +00 WET 1938-03-27 00 +01 WEST 1 1938-10-01 23 +00 WET 1939-04-16 00 +01 WEST 1 1939-11-18 23 +00 WET 1940-02-25 00 +01 WEST 1 1940-10-05 23 +00 WET 1941-04-06 00 +01 WEST 1 1941-10-05 23 +00 WET 1942-03-15 00 +01 WEST 1 1942-04-26 00 +02 WEMT 1 1942-08-15 23 +01 WEST 1 1942-10-24 23 +00 WET 1943-03-14 00 +01 WEST 1 1943-04-18 00 +02 WEMT 1 1943-08-28 23 +01 WEST 1 1943-10-30 23 +00 WET 1944-03-12 00 +01 WEST 1 1944-04-23 00 +02 WEMT 1 1944-08-26 23 +01 WEST 1 1944-10-28 23 +00 WET 1945-03-11 00 +01 WEST 1 1945-04-22 00 +02 WEMT 1 1945-08-25 23 +01 WEST 1 1945-10-27 23 +00 WET 1946-04-07 00 +01 WEST 1 1946-10-05 23 +00 WET 1947-04-06 03 +01 WEST 1 1947-10-05 02 +00 WET 1948-04-04 03 +01 WEST 1 1948-10-03 02 +00 WET 1949-04-03 03 +01 WEST 1 1949-10-02 02 +00 WET 1951-04-01 03 +01 WEST 1 1951-10-07 02 +00 WET 1952-04-06 03 +01 WEST 1 1952-10-05 02 +00 WET 1953-04-05 03 +01 WEST 1 1953-10-04 02 +00 WET 1954-04-04 03 +01 WEST 1 1954-10-03 02 +00 WET 1955-04-03 03 +01 WEST 1 1955-10-02 02 +00 WET 1956-04-01 03 +01 WEST 1 1956-10-07 02 +00 WET 1957-04-07 03 +01 WEST 1 1957-10-06 02 +00 WET 1958-04-06 03 +01 WEST 1 1958-10-05 02 +00 WET 1959-04-05 03 +01 WEST 1 1959-10-04 02 +00 WET 1960-04-03 03 +01 WEST 1 1960-10-02 02 +00 WET 1961-04-02 03 +01 WEST 1 1961-10-01 02 +00 WET 1962-04-01 03 +01 WEST 1 1962-10-07 02 +00 WET 1963-04-07 03 +01 WEST 1 1963-10-06 02 +00 WET 1964-04-05 03 +01 WEST 1 1964-10-04 02 +00 WET 1965-04-04 03 +01 WEST 1 1965-10-03 02 +00 WET 1966-04-03 03 +01 CET 1976-09-26 00 +00 WET 1977-03-27 01 +01 WEST 1 1977-09-25 00 +00 WET 1978-04-02 01 +01 WEST 1 1978-10-01 00 +00 WET 1979-04-01 01 +01 WEST 1 1979-09-30 01 +00 WET 1980-03-30 01 +01 WEST 1 1980-09-28 01 +00 WET 1981-03-29 02 +01 WEST 1 1981-09-27 01 +00 WET 1982-03-28 02 +01 WEST 1 1982-09-26 01 +00 WET 1983-03-27 03 +01 WEST 1 1983-09-25 01 +00 WET 1984-03-25 02 +01 WEST 1 1984-09-30 01 +00 WET 1985-03-31 02 +01 WEST 1 1985-09-29 01 +00 WET 1986-03-30 02 +01 WEST 1 1986-09-28 01 +00 WET 1987-03-29 02 +01 WEST 1 1987-09-27 01 +00 WET 1988-03-27 02 +01 WEST 1 1988-09-25 01 +00 WET 1989-03-26 02 +01 WEST 1 1989-09-24 01 +00 WET 1990-03-25 02 +01 WEST 1 1990-09-30 01 +00 WET 1991-03-31 02 +01 WEST 1 1991-09-29 01 +00 WET 1992-03-29 02 +01 WEST 1 1992-09-27 02 +01 CET 1993-03-28 03 +02 CEST 1 1993-09-26 02 +01 CET 1994-03-27 03 +02 CEST 1 1994-09-25 02 +01 CET 1995-03-26 03 +02 CEST 1 1995-09-24 02 +01 CET 1996-03-31 02 +01 WEST 1 1996-10-27 01 +00 WET 1997-03-30 02 +01 WEST 1 1997-10-26 01 +00 WET 1998-03-29 02 +01 WEST 1 1998-10-25 01 +00 WET 1999-03-28 02 +01 WEST 1 1999-10-31 01 +00 WET 2000-03-26 02 +01 WEST 1 2000-10-29 01 +00 WET 2001-03-25 02 +01 WEST 1 2001-10-28 01 +00 WET 2002-03-31 02 +01 WEST 1 2002-10-27 01 +00 WET 2003-03-30 02 +01 WEST 1 2003-10-26 01 +00 WET 2004-03-28 02 +01 WEST 1 2004-10-31 01 +00 WET 2005-03-27 02 +01 WEST 1 2005-10-30 01 +00 WET 2006-03-26 02 +01 WEST 1 2006-10-29 01 +00 WET 2007-03-25 02 +01 WEST 1 2007-10-28 01 +00 WET 2008-03-30 02 +01 WEST 1 2008-10-26 01 +00 WET 2009-03-29 02 +01 WEST 1 2009-10-25 01 +00 WET 2010-03-28 02 +01 WEST 1 2010-10-31 01 +00 WET 2011-03-27 02 +01 WEST 1 2011-10-30 01 +00 WET 2012-03-25 02 +01 WEST 1 2012-10-28 01 +00 WET 2013-03-31 02 +01 WEST 1 2013-10-27 01 +00 WET 2014-03-30 02 +01 WEST 1 2014-10-26 01 +00 WET 2015-03-29 02 +01 WEST 1 2015-10-25 01 +00 WET 2016-03-27 02 +01 WEST 1 2016-10-30 01 +00 WET 2017-03-26 02 +01 WEST 1 2017-10-29 01 +00 WET 2018-03-25 02 +01 WEST 1 2018-10-28 01 +00 WET 2019-03-31 02 +01 WEST 1 2019-10-27 01 +00 WET 2020-03-29 02 +01 WEST 1 2020-10-25 01 +00 WET 2021-03-28 02 +01 WEST 1 2021-10-31 01 +00 WET 2022-03-27 02 +01 WEST 1 2022-10-30 01 +00 WET 2023-03-26 02 +01 WEST 1 2023-10-29 01 +00 WET 2024-03-31 02 +01 WEST 1 2024-10-27 01 +00 WET 2025-03-30 02 +01 WEST 1 2025-10-26 01 +00 WET 2026-03-29 02 +01 WEST 1 2026-10-25 01 +00 WET 2027-03-28 02 +01 WEST 1 2027-10-31 01 +00 WET 2028-03-26 02 +01 WEST 1 2028-10-29 01 +00 WET 2029-03-25 02 +01 WEST 1 2029-10-28 01 +00 WET 2030-03-31 02 +01 WEST 1 2030-10-27 01 +00 WET 2031-03-30 02 +01 WEST 1 2031-10-26 01 +00 WET 2032-03-28 02 +01 WEST 1 2032-10-31 01 +00 WET 2033-03-27 02 +01 WEST 1 2033-10-30 01 +00 WET 2034-03-26 02 +01 WEST 1 2034-10-29 01 +00 WET 2035-03-25 02 +01 WEST 1 2035-10-28 01 +00 WET 2036-03-30 02 +01 WEST 1 2036-10-26 01 +00 WET 2037-03-29 02 +01 WEST 1 2037-10-25 01 +00 WET 2038-03-28 02 +01 WEST 1 2038-10-31 01 +00 WET 2039-03-27 02 +01 WEST 1 2039-10-30 01 +00 WET 2040-03-25 02 +01 WEST 1 2040-10-28 01 +00 WET 2041-03-31 02 +01 WEST 1 2041-10-27 01 +00 WET 2042-03-30 02 +01 WEST 1 2042-10-26 01 +00 WET 2043-03-29 02 +01 WEST 1 2043-10-25 01 +00 WET 2044-03-27 02 +01 WEST 1 2044-10-30 01 +00 WET 2045-03-26 02 +01 WEST 1 2045-10-29 01 +00 WET 2046-03-25 02 +01 WEST 1 2046-10-28 01 +00 WET 2047-03-31 02 +01 WEST 1 2047-10-27 01 +00 WET 2048-03-29 02 +01 WEST 1 2048-10-25 01 +00 WET 2049-03-28 02 +01 WEST 1 2049-10-31 01 +00 WET TZ="Europe/London" - - -000115 LMT 1847-12-01 00:01:15 +00 GMT 1916-05-21 03 +01 BST 1 1916-10-01 02 +00 GMT 1917-04-08 03 +01 BST 1 1917-09-17 02 +00 GMT 1918-03-24 03 +01 BST 1 1918-09-30 02 +00 GMT 1919-03-30 03 +01 BST 1 1919-09-29 02 +00 GMT 1920-03-28 03 +01 BST 1 1920-10-25 02 +00 GMT 1921-04-03 03 +01 BST 1 1921-10-03 02 +00 GMT 1922-03-26 03 +01 BST 1 1922-10-08 02 +00 GMT 1923-04-22 03 +01 BST 1 1923-09-16 02 +00 GMT 1924-04-13 03 +01 BST 1 1924-09-21 02 +00 GMT 1925-04-19 03 +01 BST 1 1925-10-04 02 +00 GMT 1926-04-18 03 +01 BST 1 1926-10-03 02 +00 GMT 1927-04-10 03 +01 BST 1 1927-10-02 02 +00 GMT 1928-04-22 03 +01 BST 1 1928-10-07 02 +00 GMT 1929-04-21 03 +01 BST 1 1929-10-06 02 +00 GMT 1930-04-13 03 +01 BST 1 1930-10-05 02 +00 GMT 1931-04-19 03 +01 BST 1 1931-10-04 02 +00 GMT 1932-04-17 03 +01 BST 1 1932-10-02 02 +00 GMT 1933-04-09 03 +01 BST 1 1933-10-08 02 +00 GMT 1934-04-22 03 +01 BST 1 1934-10-07 02 +00 GMT 1935-04-14 03 +01 BST 1 1935-10-06 02 +00 GMT 1936-04-19 03 +01 BST 1 1936-10-04 02 +00 GMT 1937-04-18 03 +01 BST 1 1937-10-03 02 +00 GMT 1938-04-10 03 +01 BST 1 1938-10-02 02 +00 GMT 1939-04-16 03 +01 BST 1 1939-11-19 02 +00 GMT 1940-02-25 03 +01 BST 1 1941-05-04 03 +02 BDST 1 1941-08-10 02 +01 BST 1 1942-04-05 03 +02 BDST 1 1942-08-09 02 +01 BST 1 1943-04-04 03 +02 BDST 1 1943-08-15 02 +01 BST 1 1944-04-02 03 +02 BDST 1 1944-09-17 02 +01 BST 1 1945-04-02 03 +02 BDST 1 1945-07-15 02 +01 BST 1 1945-10-07 02 +00 GMT 1946-04-14 03 +01 BST 1 1946-10-06 02 +00 GMT 1947-03-16 03 +01 BST 1 1947-04-13 03 +02 BDST 1 1947-08-10 02 +01 BST 1 1947-11-02 02 +00 GMT 1948-03-14 03 +01 BST 1 1948-10-31 02 +00 GMT 1949-04-03 03 +01 BST 1 1949-10-30 02 +00 GMT 1950-04-16 03 +01 BST 1 1950-10-22 02 +00 GMT 1951-04-15 03 +01 BST 1 1951-10-21 02 +00 GMT 1952-04-20 03 +01 BST 1 1952-10-26 02 +00 GMT 1953-04-19 03 +01 BST 1 1953-10-04 02 +00 GMT 1954-04-11 03 +01 BST 1 1954-10-03 02 +00 GMT 1955-04-17 03 +01 BST 1 1955-10-02 02 +00 GMT 1956-04-22 03 +01 BST 1 1956-10-07 02 +00 GMT 1957-04-14 03 +01 BST 1 1957-10-06 02 +00 GMT 1958-04-20 03 +01 BST 1 1958-10-05 02 +00 GMT 1959-04-19 03 +01 BST 1 1959-10-04 02 +00 GMT 1960-04-10 03 +01 BST 1 1960-10-02 02 +00 GMT 1961-03-26 03 +01 BST 1 1961-10-29 02 +00 GMT 1962-03-25 03 +01 BST 1 1962-10-28 02 +00 GMT 1963-03-31 03 +01 BST 1 1963-10-27 02 +00 GMT 1964-03-22 03 +01 BST 1 1964-10-25 02 +00 GMT 1965-03-21 03 +01 BST 1 1965-10-24 02 +00 GMT 1966-03-20 03 +01 BST 1 1966-10-23 02 +00 GMT 1967-03-19 03 +01 BST 1 1967-10-29 02 +00 GMT 1968-02-18 03 +01 BST 1 1968-10-27 00 +01 BST 1971-10-31 02 +00 GMT 1972-03-19 03 +01 BST 1 1972-10-29 02 +00 GMT 1973-03-18 03 +01 BST 1 1973-10-28 02 +00 GMT 1974-03-17 03 +01 BST 1 1974-10-27 02 +00 GMT 1975-03-16 03 +01 BST 1 1975-10-26 02 +00 GMT 1976-03-21 03 +01 BST 1 1976-10-24 02 +00 GMT 1977-03-20 03 +01 BST 1 1977-10-23 02 +00 GMT 1978-03-19 03 +01 BST 1 1978-10-29 02 +00 GMT 1979-03-18 03 +01 BST 1 1979-10-28 02 +00 GMT 1980-03-16 03 +01 BST 1 1980-10-26 02 +00 GMT 1981-03-29 02 +01 BST 1 1981-10-25 01 +00 GMT 1982-03-28 02 +01 BST 1 1982-10-24 01 +00 GMT 1983-03-27 02 +01 BST 1 1983-10-23 01 +00 GMT 1984-03-25 02 +01 BST 1 1984-10-28 01 +00 GMT 1985-03-31 02 +01 BST 1 1985-10-27 01 +00 GMT 1986-03-30 02 +01 BST 1 1986-10-26 01 +00 GMT 1987-03-29 02 +01 BST 1 1987-10-25 01 +00 GMT 1988-03-27 02 +01 BST 1 1988-10-23 01 +00 GMT 1989-03-26 02 +01 BST 1 1989-10-29 01 +00 GMT 1990-03-25 02 +01 BST 1 1990-10-28 01 +00 GMT 1991-03-31 02 +01 BST 1 1991-10-27 01 +00 GMT 1992-03-29 02 +01 BST 1 1992-10-25 01 +00 GMT 1993-03-28 02 +01 BST 1 1993-10-24 01 +00 GMT 1994-03-27 02 +01 BST 1 1994-10-23 01 +00 GMT 1995-03-26 02 +01 BST 1 1995-10-22 01 +00 GMT 1996-03-31 02 +01 BST 1 1996-10-27 01 +00 GMT 1997-03-30 02 +01 BST 1 1997-10-26 01 +00 GMT 1998-03-29 02 +01 BST 1 1998-10-25 01 +00 GMT 1999-03-28 02 +01 BST 1 1999-10-31 01 +00 GMT 2000-03-26 02 +01 BST 1 2000-10-29 01 +00 GMT 2001-03-25 02 +01 BST 1 2001-10-28 01 +00 GMT 2002-03-31 02 +01 BST 1 2002-10-27 01 +00 GMT 2003-03-30 02 +01 BST 1 2003-10-26 01 +00 GMT 2004-03-28 02 +01 BST 1 2004-10-31 01 +00 GMT 2005-03-27 02 +01 BST 1 2005-10-30 01 +00 GMT 2006-03-26 02 +01 BST 1 2006-10-29 01 +00 GMT 2007-03-25 02 +01 BST 1 2007-10-28 01 +00 GMT 2008-03-30 02 +01 BST 1 2008-10-26 01 +00 GMT 2009-03-29 02 +01 BST 1 2009-10-25 01 +00 GMT 2010-03-28 02 +01 BST 1 2010-10-31 01 +00 GMT 2011-03-27 02 +01 BST 1 2011-10-30 01 +00 GMT 2012-03-25 02 +01 BST 1 2012-10-28 01 +00 GMT 2013-03-31 02 +01 BST 1 2013-10-27 01 +00 GMT 2014-03-30 02 +01 BST 1 2014-10-26 01 +00 GMT 2015-03-29 02 +01 BST 1 2015-10-25 01 +00 GMT 2016-03-27 02 +01 BST 1 2016-10-30 01 +00 GMT 2017-03-26 02 +01 BST 1 2017-10-29 01 +00 GMT 2018-03-25 02 +01 BST 1 2018-10-28 01 +00 GMT 2019-03-31 02 +01 BST 1 2019-10-27 01 +00 GMT 2020-03-29 02 +01 BST 1 2020-10-25 01 +00 GMT 2021-03-28 02 +01 BST 1 2021-10-31 01 +00 GMT 2022-03-27 02 +01 BST 1 2022-10-30 01 +00 GMT 2023-03-26 02 +01 BST 1 2023-10-29 01 +00 GMT 2024-03-31 02 +01 BST 1 2024-10-27 01 +00 GMT 2025-03-30 02 +01 BST 1 2025-10-26 01 +00 GMT 2026-03-29 02 +01 BST 1 2026-10-25 01 +00 GMT 2027-03-28 02 +01 BST 1 2027-10-31 01 +00 GMT 2028-03-26 02 +01 BST 1 2028-10-29 01 +00 GMT 2029-03-25 02 +01 BST 1 2029-10-28 01 +00 GMT 2030-03-31 02 +01 BST 1 2030-10-27 01 +00 GMT 2031-03-30 02 +01 BST 1 2031-10-26 01 +00 GMT 2032-03-28 02 +01 BST 1 2032-10-31 01 +00 GMT 2033-03-27 02 +01 BST 1 2033-10-30 01 +00 GMT 2034-03-26 02 +01 BST 1 2034-10-29 01 +00 GMT 2035-03-25 02 +01 BST 1 2035-10-28 01 +00 GMT 2036-03-30 02 +01 BST 1 2036-10-26 01 +00 GMT 2037-03-29 02 +01 BST 1 2037-10-25 01 +00 GMT 2038-03-28 02 +01 BST 1 2038-10-31 01 +00 GMT 2039-03-27 02 +01 BST 1 2039-10-30 01 +00 GMT 2040-03-25 02 +01 BST 1 2040-10-28 01 +00 GMT 2041-03-31 02 +01 BST 1 2041-10-27 01 +00 GMT 2042-03-30 02 +01 BST 1 2042-10-26 01 +00 GMT 2043-03-29 02 +01 BST 1 2043-10-25 01 +00 GMT 2044-03-27 02 +01 BST 1 2044-10-30 01 +00 GMT 2045-03-26 02 +01 BST 1 2045-10-29 01 +00 GMT 2046-03-25 02 +01 BST 1 2046-10-28 01 +00 GMT 2047-03-31 02 +01 BST 1 2047-10-27 01 +00 GMT 2048-03-29 02 +01 BST 1 2048-10-25 01 +00 GMT 2049-03-28 02 +01 BST 1 2049-10-31 01 +00 GMT TZ="Europe/Luxembourg" - - +002436 LMT 1904-06-01 00:35:24 +01 CET 1916-05-15 00 +02 CEST 1 1916-10-01 00 +01 CET 1917-04-29 00 +02 CEST 1 1917-09-17 00 +01 CET 1918-04-15 03 +02 CEST 1 1918-09-16 02 +01 CET 1918-11-24 23 +00 WET 1919-03-02 00 +01 WEST 1 1919-10-05 02 +00 WET 1920-02-15 00 +01 WEST 1 1920-10-24 01 +00 WET 1921-03-15 00 +01 WEST 1 1921-10-26 01 +00 WET 1922-03-26 00 +01 WEST 1 1922-10-08 00 +00 WET 1923-04-22 00 +01 WEST 1 1923-10-07 01 +00 WET 1924-03-30 00 +01 WEST 1 1924-10-05 00 +00 WET 1925-04-06 00 +01 WEST 1 1925-10-04 00 +00 WET 1926-04-18 00 +01 WEST 1 1926-10-03 00 +00 WET 1927-04-10 00 +01 WEST 1 1927-10-02 00 +00 WET 1928-04-15 00 +01 WEST 1 1928-10-07 00 +00 WET 1929-04-21 00 +01 WEST 1 1929-10-06 02 +00 WET 1930-04-13 03 +01 WEST 1 1930-10-05 02 +00 WET 1931-04-19 03 +01 WEST 1 1931-10-04 02 +00 WET 1932-04-03 03 +01 WEST 1 1932-10-02 02 +00 WET 1933-03-26 03 +01 WEST 1 1933-10-08 02 +00 WET 1934-04-08 03 +01 WEST 1 1934-10-07 02 +00 WET 1935-03-31 03 +01 WEST 1 1935-10-06 02 +00 WET 1936-04-19 03 +01 WEST 1 1936-10-04 02 +00 WET 1937-04-04 03 +01 WEST 1 1937-10-03 02 +00 WET 1938-03-27 03 +01 WEST 1 1938-10-02 02 +00 WET 1939-04-16 03 +01 WEST 1 1939-11-19 02 +00 WET 1940-02-25 03 +01 WEST 1 1940-05-14 04 +02 WEST 1 1942-11-02 02 +01 WET 1943-03-29 03 +02 WEST 1 1943-10-04 02 +01 WET 1944-04-03 03 +02 WEST 1 1944-09-18 02 +01 CET 1945-04-02 03 +02 CEST 1 1945-09-16 02 +01 CET 1946-05-19 03 +02 CEST 1 1946-10-07 02 +01 CET 1977-04-03 03 +02 CEST 1 1977-09-25 02 +01 CET 1978-04-02 03 +02 CEST 1 1978-10-01 02 +01 CET 1979-04-01 03 +02 CEST 1 1979-09-30 02 +01 CET 1980-04-06 03 +02 CEST 1 1980-09-28 02 +01 CET 1981-03-29 03 +02 CEST 1 1981-09-27 02 +01 CET 1982-03-28 03 +02 CEST 1 1982-09-26 02 +01 CET 1983-03-27 03 +02 CEST 1 1983-09-25 02 +01 CET 1984-03-25 03 +02 CEST 1 1984-09-30 02 +01 CET 1985-03-31 03 +02 CEST 1 1985-09-29 02 +01 CET 1986-03-30 03 +02 CEST 1 1986-09-28 02 +01 CET 1987-03-29 03 +02 CEST 1 1987-09-27 02 +01 CET 1988-03-27 03 +02 CEST 1 1988-09-25 02 +01 CET 1989-03-26 03 +02 CEST 1 1989-09-24 02 +01 CET 1990-03-25 03 +02 CEST 1 1990-09-30 02 +01 CET 1991-03-31 03 +02 CEST 1 1991-09-29 02 +01 CET 1992-03-29 03 +02 CEST 1 1992-09-27 02 +01 CET 1993-03-28 03 +02 CEST 1 1993-09-26 02 +01 CET 1994-03-27 03 +02 CEST 1 1994-09-25 02 +01 CET 1995-03-26 03 +02 CEST 1 1995-09-24 02 +01 CET 1996-03-31 03 +02 CEST 1 1996-10-27 02 +01 CET 1997-03-30 03 +02 CEST 1 1997-10-26 02 +01 CET 1998-03-29 03 +02 CEST 1 1998-10-25 02 +01 CET 1999-03-28 03 +02 CEST 1 1999-10-31 02 +01 CET 2000-03-26 03 +02 CEST 1 2000-10-29 02 +01 CET 2001-03-25 03 +02 CEST 1 2001-10-28 02 +01 CET 2002-03-31 03 +02 CEST 1 2002-10-27 02 +01 CET 2003-03-30 03 +02 CEST 1 2003-10-26 02 +01 CET 2004-03-28 03 +02 CEST 1 2004-10-31 02 +01 CET 2005-03-27 03 +02 CEST 1 2005-10-30 02 +01 CET 2006-03-26 03 +02 CEST 1 2006-10-29 02 +01 CET 2007-03-25 03 +02 CEST 1 2007-10-28 02 +01 CET 2008-03-30 03 +02 CEST 1 2008-10-26 02 +01 CET 2009-03-29 03 +02 CEST 1 2009-10-25 02 +01 CET 2010-03-28 03 +02 CEST 1 2010-10-31 02 +01 CET 2011-03-27 03 +02 CEST 1 2011-10-30 02 +01 CET 2012-03-25 03 +02 CEST 1 2012-10-28 02 +01 CET 2013-03-31 03 +02 CEST 1 2013-10-27 02 +01 CET 2014-03-30 03 +02 CEST 1 2014-10-26 02 +01 CET 2015-03-29 03 +02 CEST 1 2015-10-25 02 +01 CET 2016-03-27 03 +02 CEST 1 2016-10-30 02 +01 CET 2017-03-26 03 +02 CEST 1 2017-10-29 02 +01 CET 2018-03-25 03 +02 CEST 1 2018-10-28 02 +01 CET 2019-03-31 03 +02 CEST 1 2019-10-27 02 +01 CET 2020-03-29 03 +02 CEST 1 2020-10-25 02 +01 CET 2021-03-28 03 +02 CEST 1 2021-10-31 02 +01 CET 2022-03-27 03 +02 CEST 1 2022-10-30 02 +01 CET 2023-03-26 03 +02 CEST 1 2023-10-29 02 +01 CET 2024-03-31 03 +02 CEST 1 2024-10-27 02 +01 CET 2025-03-30 03 +02 CEST 1 2025-10-26 02 +01 CET 2026-03-29 03 +02 CEST 1 2026-10-25 02 +01 CET 2027-03-28 03 +02 CEST 1 2027-10-31 02 +01 CET 2028-03-26 03 +02 CEST 1 2028-10-29 02 +01 CET 2029-03-25 03 +02 CEST 1 2029-10-28 02 +01 CET 2030-03-31 03 +02 CEST 1 2030-10-27 02 +01 CET 2031-03-30 03 +02 CEST 1 2031-10-26 02 +01 CET 2032-03-28 03 +02 CEST 1 2032-10-31 02 +01 CET 2033-03-27 03 +02 CEST 1 2033-10-30 02 +01 CET 2034-03-26 03 +02 CEST 1 2034-10-29 02 +01 CET 2035-03-25 03 +02 CEST 1 2035-10-28 02 +01 CET 2036-03-30 03 +02 CEST 1 2036-10-26 02 +01 CET 2037-03-29 03 +02 CEST 1 2037-10-25 02 +01 CET 2038-03-28 03 +02 CEST 1 2038-10-31 02 +01 CET 2039-03-27 03 +02 CEST 1 2039-10-30 02 +01 CET 2040-03-25 03 +02 CEST 1 2040-10-28 02 +01 CET 2041-03-31 03 +02 CEST 1 2041-10-27 02 +01 CET 2042-03-30 03 +02 CEST 1 2042-10-26 02 +01 CET 2043-03-29 03 +02 CEST 1 2043-10-25 02 +01 CET 2044-03-27 03 +02 CEST 1 2044-10-30 02 +01 CET 2045-03-26 03 +02 CEST 1 2045-10-29 02 +01 CET 2046-03-25 03 +02 CEST 1 2046-10-28 02 +01 CET 2047-03-31 03 +02 CEST 1 2047-10-27 02 +01 CET 2048-03-29 03 +02 CEST 1 2048-10-25 02 +01 CET 2049-03-28 03 +02 CEST 1 2049-10-31 02 +01 CET TZ="Europe/Madrid" - - -001444 LMT 1901-01-01 00 +00 WET 1918-04-16 00 +01 WEST 1 1918-10-07 00 +00 WET 1919-04-07 00 +01 WEST 1 1919-10-07 00 +00 WET 1924-04-17 00 +01 WEST 1 1924-10-05 00 +00 WET 1926-04-18 00 +01 WEST 1 1926-10-03 00 +00 WET 1927-04-10 00 +01 WEST 1 1927-10-02 00 +00 WET 1928-04-15 01 +01 WEST 1 1928-10-07 00 +00 WET 1929-04-21 00 +01 WEST 1 1929-10-06 00 +00 WET 1937-06-17 00 +01 WEST 1 1937-10-03 00 +00 WET 1938-04-03 00 +01 WEST 1 1938-05-01 00 +02 WEMT 1 1938-10-02 23 +01 WEST 1 1939-10-08 00 +00 WET 1940-03-17 00 +01 CET 1942-05-03 00 +02 CEST 1 1942-09-01 00 +01 CET 1943-04-18 00 +02 CEST 1 1943-10-03 00 +01 CET 1944-04-16 00 +02 CEST 1 1944-10-01 00 +01 CET 1945-04-15 00 +02 CEST 1 1945-09-30 00 +01 CET 1946-04-14 00 +02 CEST 1 1946-09-29 00 +01 CET 1949-05-01 00 +02 CEST 1 1949-10-02 00 +01 CET 1974-04-14 00 +02 CEST 1 1974-10-06 00 +01 CET 1975-04-13 00 +02 CEST 1 1975-10-05 00 +01 CET 1976-03-28 00 +02 CEST 1 1976-09-26 00 +01 CET 1977-04-03 00 +02 CEST 1 1977-09-25 00 +01 CET 1978-04-02 03 +02 CEST 1 1978-10-01 02 +01 CET 1979-04-01 03 +02 CEST 1 1979-09-30 02 +01 CET 1980-04-06 03 +02 CEST 1 1980-09-28 02 +01 CET 1981-03-29 03 +02 CEST 1 1981-09-27 02 +01 CET 1982-03-28 03 +02 CEST 1 1982-09-26 02 +01 CET 1983-03-27 03 +02 CEST 1 1983-09-25 02 +01 CET 1984-03-25 03 +02 CEST 1 1984-09-30 02 +01 CET 1985-03-31 03 +02 CEST 1 1985-09-29 02 +01 CET 1986-03-30 03 +02 CEST 1 1986-09-28 02 +01 CET 1987-03-29 03 +02 CEST 1 1987-09-27 02 +01 CET 1988-03-27 03 +02 CEST 1 1988-09-25 02 +01 CET 1989-03-26 03 +02 CEST 1 1989-09-24 02 +01 CET 1990-03-25 03 +02 CEST 1 1990-09-30 02 +01 CET 1991-03-31 03 +02 CEST 1 1991-09-29 02 +01 CET 1992-03-29 03 +02 CEST 1 1992-09-27 02 +01 CET 1993-03-28 03 +02 CEST 1 1993-09-26 02 +01 CET 1994-03-27 03 +02 CEST 1 1994-09-25 02 +01 CET 1995-03-26 03 +02 CEST 1 1995-09-24 02 +01 CET 1996-03-31 03 +02 CEST 1 1996-10-27 02 +01 CET 1997-03-30 03 +02 CEST 1 1997-10-26 02 +01 CET 1998-03-29 03 +02 CEST 1 1998-10-25 02 +01 CET 1999-03-28 03 +02 CEST 1 1999-10-31 02 +01 CET 2000-03-26 03 +02 CEST 1 2000-10-29 02 +01 CET 2001-03-25 03 +02 CEST 1 2001-10-28 02 +01 CET 2002-03-31 03 +02 CEST 1 2002-10-27 02 +01 CET 2003-03-30 03 +02 CEST 1 2003-10-26 02 +01 CET 2004-03-28 03 +02 CEST 1 2004-10-31 02 +01 CET 2005-03-27 03 +02 CEST 1 2005-10-30 02 +01 CET 2006-03-26 03 +02 CEST 1 2006-10-29 02 +01 CET 2007-03-25 03 +02 CEST 1 2007-10-28 02 +01 CET 2008-03-30 03 +02 CEST 1 2008-10-26 02 +01 CET 2009-03-29 03 +02 CEST 1 2009-10-25 02 +01 CET 2010-03-28 03 +02 CEST 1 2010-10-31 02 +01 CET 2011-03-27 03 +02 CEST 1 2011-10-30 02 +01 CET 2012-03-25 03 +02 CEST 1 2012-10-28 02 +01 CET 2013-03-31 03 +02 CEST 1 2013-10-27 02 +01 CET 2014-03-30 03 +02 CEST 1 2014-10-26 02 +01 CET 2015-03-29 03 +02 CEST 1 2015-10-25 02 +01 CET 2016-03-27 03 +02 CEST 1 2016-10-30 02 +01 CET 2017-03-26 03 +02 CEST 1 2017-10-29 02 +01 CET 2018-03-25 03 +02 CEST 1 2018-10-28 02 +01 CET 2019-03-31 03 +02 CEST 1 2019-10-27 02 +01 CET 2020-03-29 03 +02 CEST 1 2020-10-25 02 +01 CET 2021-03-28 03 +02 CEST 1 2021-10-31 02 +01 CET 2022-03-27 03 +02 CEST 1 2022-10-30 02 +01 CET 2023-03-26 03 +02 CEST 1 2023-10-29 02 +01 CET 2024-03-31 03 +02 CEST 1 2024-10-27 02 +01 CET 2025-03-30 03 +02 CEST 1 2025-10-26 02 +01 CET 2026-03-29 03 +02 CEST 1 2026-10-25 02 +01 CET 2027-03-28 03 +02 CEST 1 2027-10-31 02 +01 CET 2028-03-26 03 +02 CEST 1 2028-10-29 02 +01 CET 2029-03-25 03 +02 CEST 1 2029-10-28 02 +01 CET 2030-03-31 03 +02 CEST 1 2030-10-27 02 +01 CET 2031-03-30 03 +02 CEST 1 2031-10-26 02 +01 CET 2032-03-28 03 +02 CEST 1 2032-10-31 02 +01 CET 2033-03-27 03 +02 CEST 1 2033-10-30 02 +01 CET 2034-03-26 03 +02 CEST 1 2034-10-29 02 +01 CET 2035-03-25 03 +02 CEST 1 2035-10-28 02 +01 CET 2036-03-30 03 +02 CEST 1 2036-10-26 02 +01 CET 2037-03-29 03 +02 CEST 1 2037-10-25 02 +01 CET 2038-03-28 03 +02 CEST 1 2038-10-31 02 +01 CET 2039-03-27 03 +02 CEST 1 2039-10-30 02 +01 CET 2040-03-25 03 +02 CEST 1 2040-10-28 02 +01 CET 2041-03-31 03 +02 CEST 1 2041-10-27 02 +01 CET 2042-03-30 03 +02 CEST 1 2042-10-26 02 +01 CET 2043-03-29 03 +02 CEST 1 2043-10-25 02 +01 CET 2044-03-27 03 +02 CEST 1 2044-10-30 02 +01 CET 2045-03-26 03 +02 CEST 1 2045-10-29 02 +01 CET 2046-03-25 03 +02 CEST 1 2046-10-28 02 +01 CET 2047-03-31 03 +02 CEST 1 2047-10-27 02 +01 CET 2048-03-29 03 +02 CEST 1 2048-10-25 02 +01 CET 2049-03-28 03 +02 CEST 1 2049-10-31 02 +01 CET TZ="Europe/Malta" - - +005804 LMT 1893-11-02 00:01:56 +01 CET 1916-06-04 01 +02 CEST 1 1916-09-30 23 +01 CET 1917-04-01 01 +02 CEST 1 1917-09-30 23 +01 CET 1918-03-10 01 +02 CEST 1 1918-10-06 23 +01 CET 1919-03-02 01 +02 CEST 1 1919-10-04 23 +01 CET 1920-03-21 01 +02 CEST 1 1920-09-18 23 +01 CET 1940-06-15 01 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1944-04-02 03 +02 CEST 1 1944-09-17 02 +01 CET 1945-04-02 03 +02 CEST 1 1945-09-15 00 +01 CET 1946-03-17 03 +02 CEST 1 1946-10-06 02 +01 CET 1947-03-16 01 +02 CEST 1 1947-10-05 00 +01 CET 1948-02-29 03 +02 CEST 1 1948-10-03 02 +01 CET 1966-05-22 01 +02 CEST 1 1966-09-24 23 +01 CET 1967-05-28 01 +02 CEST 1 1967-09-24 00 +01 CET 1968-05-26 01 +02 CEST 1 1968-09-22 00 +01 CET 1969-06-01 01 +02 CEST 1 1969-09-28 00 +01 CET 1970-05-31 01 +02 CEST 1 1970-09-27 00 +01 CET 1971-05-23 01 +02 CEST 1 1971-09-26 00 +01 CET 1972-05-28 01 +02 CEST 1 1972-10-01 00 +01 CET 1973-03-31 01 +02 CEST 1 1973-09-29 00 +01 CET 1974-04-21 01 +02 CEST 1 1974-09-16 00 +01 CET 1975-04-20 03 +02 CEST 1 1975-09-21 01 +01 CET 1976-04-18 03 +02 CEST 1 1976-09-19 01 +01 CET 1977-04-17 03 +02 CEST 1 1977-09-18 01 +01 CET 1978-04-16 03 +02 CEST 1 1978-09-17 01 +01 CET 1979-04-15 03 +02 CEST 1 1979-09-16 01 +01 CET 1980-03-31 03 +02 CEST 1 1980-09-21 01 +01 CET 1981-03-29 03 +02 CEST 1 1981-09-27 02 +01 CET 1982-03-28 03 +02 CEST 1 1982-09-26 02 +01 CET 1983-03-27 03 +02 CEST 1 1983-09-25 02 +01 CET 1984-03-25 03 +02 CEST 1 1984-09-30 02 +01 CET 1985-03-31 03 +02 CEST 1 1985-09-29 02 +01 CET 1986-03-30 03 +02 CEST 1 1986-09-28 02 +01 CET 1987-03-29 03 +02 CEST 1 1987-09-27 02 +01 CET 1988-03-27 03 +02 CEST 1 1988-09-25 02 +01 CET 1989-03-26 03 +02 CEST 1 1989-09-24 02 +01 CET 1990-03-25 03 +02 CEST 1 1990-09-30 02 +01 CET 1991-03-31 03 +02 CEST 1 1991-09-29 02 +01 CET 1992-03-29 03 +02 CEST 1 1992-09-27 02 +01 CET 1993-03-28 03 +02 CEST 1 1993-09-26 02 +01 CET 1994-03-27 03 +02 CEST 1 1994-09-25 02 +01 CET 1995-03-26 03 +02 CEST 1 1995-09-24 02 +01 CET 1996-03-31 03 +02 CEST 1 1996-10-27 02 +01 CET 1997-03-30 03 +02 CEST 1 1997-10-26 02 +01 CET 1998-03-29 03 +02 CEST 1 1998-10-25 02 +01 CET 1999-03-28 03 +02 CEST 1 1999-10-31 02 +01 CET 2000-03-26 03 +02 CEST 1 2000-10-29 02 +01 CET 2001-03-25 03 +02 CEST 1 2001-10-28 02 +01 CET 2002-03-31 03 +02 CEST 1 2002-10-27 02 +01 CET 2003-03-30 03 +02 CEST 1 2003-10-26 02 +01 CET 2004-03-28 03 +02 CEST 1 2004-10-31 02 +01 CET 2005-03-27 03 +02 CEST 1 2005-10-30 02 +01 CET 2006-03-26 03 +02 CEST 1 2006-10-29 02 +01 CET 2007-03-25 03 +02 CEST 1 2007-10-28 02 +01 CET 2008-03-30 03 +02 CEST 1 2008-10-26 02 +01 CET 2009-03-29 03 +02 CEST 1 2009-10-25 02 +01 CET 2010-03-28 03 +02 CEST 1 2010-10-31 02 +01 CET 2011-03-27 03 +02 CEST 1 2011-10-30 02 +01 CET 2012-03-25 03 +02 CEST 1 2012-10-28 02 +01 CET 2013-03-31 03 +02 CEST 1 2013-10-27 02 +01 CET 2014-03-30 03 +02 CEST 1 2014-10-26 02 +01 CET 2015-03-29 03 +02 CEST 1 2015-10-25 02 +01 CET 2016-03-27 03 +02 CEST 1 2016-10-30 02 +01 CET 2017-03-26 03 +02 CEST 1 2017-10-29 02 +01 CET 2018-03-25 03 +02 CEST 1 2018-10-28 02 +01 CET 2019-03-31 03 +02 CEST 1 2019-10-27 02 +01 CET 2020-03-29 03 +02 CEST 1 2020-10-25 02 +01 CET 2021-03-28 03 +02 CEST 1 2021-10-31 02 +01 CET 2022-03-27 03 +02 CEST 1 2022-10-30 02 +01 CET 2023-03-26 03 +02 CEST 1 2023-10-29 02 +01 CET 2024-03-31 03 +02 CEST 1 2024-10-27 02 +01 CET 2025-03-30 03 +02 CEST 1 2025-10-26 02 +01 CET 2026-03-29 03 +02 CEST 1 2026-10-25 02 +01 CET 2027-03-28 03 +02 CEST 1 2027-10-31 02 +01 CET 2028-03-26 03 +02 CEST 1 2028-10-29 02 +01 CET 2029-03-25 03 +02 CEST 1 2029-10-28 02 +01 CET 2030-03-31 03 +02 CEST 1 2030-10-27 02 +01 CET 2031-03-30 03 +02 CEST 1 2031-10-26 02 +01 CET 2032-03-28 03 +02 CEST 1 2032-10-31 02 +01 CET 2033-03-27 03 +02 CEST 1 2033-10-30 02 +01 CET 2034-03-26 03 +02 CEST 1 2034-10-29 02 +01 CET 2035-03-25 03 +02 CEST 1 2035-10-28 02 +01 CET 2036-03-30 03 +02 CEST 1 2036-10-26 02 +01 CET 2037-03-29 03 +02 CEST 1 2037-10-25 02 +01 CET 2038-03-28 03 +02 CEST 1 2038-10-31 02 +01 CET 2039-03-27 03 +02 CEST 1 2039-10-30 02 +01 CET 2040-03-25 03 +02 CEST 1 2040-10-28 02 +01 CET 2041-03-31 03 +02 CEST 1 2041-10-27 02 +01 CET 2042-03-30 03 +02 CEST 1 2042-10-26 02 +01 CET 2043-03-29 03 +02 CEST 1 2043-10-25 02 +01 CET 2044-03-27 03 +02 CEST 1 2044-10-30 02 +01 CET 2045-03-26 03 +02 CEST 1 2045-10-29 02 +01 CET 2046-03-25 03 +02 CEST 1 2046-10-28 02 +01 CET 2047-03-31 03 +02 CEST 1 2047-10-27 02 +01 CET 2048-03-29 03 +02 CEST 1 2048-10-25 02 +01 CET 2049-03-28 03 +02 CEST 1 2049-10-31 02 +01 CET TZ="Europe/Minsk" - - +015016 LMT 1879-12-31 23:59:44 +0150 MMT 1924-05-02 00:10 +02 EET 1930-06-21 01 +03 MSK 1941-06-27 23 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1944-04-03 03 +02 CEST 1 1944-07-03 01 +03 MSK 1981-04-01 01 +04 MSD 1 1981-09-30 23 +03 MSK 1982-04-01 01 +04 MSD 1 1982-09-30 23 +03 MSK 1983-04-01 01 +04 MSD 1 1983-09-30 23 +03 MSK 1984-04-01 01 +04 MSD 1 1984-09-30 02 +03 MSK 1985-03-31 03 +04 MSD 1 1985-09-29 02 +03 MSK 1986-03-30 03 +04 MSD 1 1986-09-28 02 +03 MSK 1987-03-29 03 +04 MSD 1 1987-09-27 02 +03 MSK 1988-03-27 03 +04 MSD 1 1988-09-25 02 +03 MSK 1989-03-26 03 +04 MSD 1 1989-09-24 02 +03 MSK 1991-03-31 02 +03 EEST 1 1991-09-29 02 +02 EET 1992-03-29 03 +03 EEST 1 1992-09-27 02 +02 EET 1993-03-28 03 +03 EEST 1 1993-09-26 02 +02 EET 1994-03-27 03 +03 EEST 1 1994-09-25 02 +02 EET 1995-03-26 03 +03 EEST 1 1995-09-24 02 +02 EET 1996-03-31 03 +03 EEST 1 1996-10-27 02 +02 EET 1997-03-30 03 +03 EEST 1 1997-10-26 02 +02 EET 1998-03-29 03 +03 EEST 1 1998-10-25 02 +02 EET 1999-03-28 03 +03 EEST 1 1999-10-31 02 +02 EET 2000-03-26 03 +03 EEST 1 2000-10-29 02 +02 EET 2001-03-25 03 +03 EEST 1 2001-10-28 02 +02 EET 2002-03-31 03 +03 EEST 1 2002-10-27 02 +02 EET 2003-03-30 03 +03 EEST 1 2003-10-26 02 +02 EET 2004-03-28 03 +03 EEST 1 2004-10-31 02 +02 EET 2005-03-27 03 +03 EEST 1 2005-10-30 02 +02 EET 2006-03-26 03 +03 EEST 1 2006-10-29 02 +02 EET 2007-03-25 03 +03 EEST 1 2007-10-28 02 +02 EET 2008-03-30 03 +03 EEST 1 2008-10-26 02 +02 EET 2009-03-29 03 +03 EEST 1 2009-10-25 02 +02 EET 2010-03-28 03 +03 EEST 1 2010-10-31 02 +02 EET 2011-03-27 03 +03 TZ="Europe/Monaco" - - +002932 LMT 1891-03-14 23:39:49 +000921 PMT 1911-03-10 23:50:39 +00 WET 1916-06-15 00 +01 WEST 1 1916-10-01 23 +00 WET 1917-03-25 00 +01 WEST 1 1917-10-07 23 +00 WET 1918-03-10 00 +01 WEST 1 1918-10-06 23 +00 WET 1919-03-02 00 +01 WEST 1 1919-10-05 23 +00 WET 1920-02-15 00 +01 WEST 1 1920-10-23 23 +00 WET 1921-03-15 00 +01 WEST 1 1921-10-25 23 +00 WET 1922-03-26 00 +01 WEST 1 1922-10-07 23 +00 WET 1923-05-27 00 +01 WEST 1 1923-10-06 23 +00 WET 1924-03-30 00 +01 WEST 1 1924-10-04 23 +00 WET 1925-04-05 00 +01 WEST 1 1925-10-03 23 +00 WET 1926-04-18 00 +01 WEST 1 1926-10-02 23 +00 WET 1927-04-10 00 +01 WEST 1 1927-10-01 23 +00 WET 1928-04-15 00 +01 WEST 1 1928-10-06 23 +00 WET 1929-04-21 00 +01 WEST 1 1929-10-05 23 +00 WET 1930-04-13 00 +01 WEST 1 1930-10-04 23 +00 WET 1931-04-19 00 +01 WEST 1 1931-10-03 23 +00 WET 1932-04-03 00 +01 WEST 1 1932-10-01 23 +00 WET 1933-03-26 00 +01 WEST 1 1933-10-07 23 +00 WET 1934-04-08 00 +01 WEST 1 1934-10-06 23 +00 WET 1935-03-31 00 +01 WEST 1 1935-10-05 23 +00 WET 1936-04-19 00 +01 WEST 1 1936-10-03 23 +00 WET 1937-04-04 00 +01 WEST 1 1937-10-02 23 +00 WET 1938-03-27 00 +01 WEST 1 1938-10-01 23 +00 WET 1939-04-16 00 +01 WEST 1 1939-11-18 23 +00 WET 1940-02-25 03 +01 WEST 1 1941-05-05 01 +02 WEMT 1 1941-10-05 23 +01 WEST 1 1942-03-09 01 +02 WEMT 1 1942-11-02 02 +01 WEST 1 1943-03-29 03 +02 WEMT 1 1943-10-04 02 +01 WEST 1 1944-04-03 03 +02 WEMT 1 1944-10-08 00 +01 WEST 1 1945-04-02 03 +02 WEMT 1 1945-09-16 02 +01 CET 1976-03-28 02 +02 CEST 1 1976-09-26 00 +01 CET 1977-04-03 03 +02 CEST 1 1977-09-25 02 +01 CET 1978-04-02 03 +02 CEST 1 1978-10-01 02 +01 CET 1979-04-01 03 +02 CEST 1 1979-09-30 02 +01 CET 1980-04-06 03 +02 CEST 1 1980-09-28 02 +01 CET 1981-03-29 03 +02 CEST 1 1981-09-27 02 +01 CET 1982-03-28 03 +02 CEST 1 1982-09-26 02 +01 CET 1983-03-27 03 +02 CEST 1 1983-09-25 02 +01 CET 1984-03-25 03 +02 CEST 1 1984-09-30 02 +01 CET 1985-03-31 03 +02 CEST 1 1985-09-29 02 +01 CET 1986-03-30 03 +02 CEST 1 1986-09-28 02 +01 CET 1987-03-29 03 +02 CEST 1 1987-09-27 02 +01 CET 1988-03-27 03 +02 CEST 1 1988-09-25 02 +01 CET 1989-03-26 03 +02 CEST 1 1989-09-24 02 +01 CET 1990-03-25 03 +02 CEST 1 1990-09-30 02 +01 CET 1991-03-31 03 +02 CEST 1 1991-09-29 02 +01 CET 1992-03-29 03 +02 CEST 1 1992-09-27 02 +01 CET 1993-03-28 03 +02 CEST 1 1993-09-26 02 +01 CET 1994-03-27 03 +02 CEST 1 1994-09-25 02 +01 CET 1995-03-26 03 +02 CEST 1 1995-09-24 02 +01 CET 1996-03-31 03 +02 CEST 1 1996-10-27 02 +01 CET 1997-03-30 03 +02 CEST 1 1997-10-26 02 +01 CET 1998-03-29 03 +02 CEST 1 1998-10-25 02 +01 CET 1999-03-28 03 +02 CEST 1 1999-10-31 02 +01 CET 2000-03-26 03 +02 CEST 1 2000-10-29 02 +01 CET 2001-03-25 03 +02 CEST 1 2001-10-28 02 +01 CET 2002-03-31 03 +02 CEST 1 2002-10-27 02 +01 CET 2003-03-30 03 +02 CEST 1 2003-10-26 02 +01 CET 2004-03-28 03 +02 CEST 1 2004-10-31 02 +01 CET 2005-03-27 03 +02 CEST 1 2005-10-30 02 +01 CET 2006-03-26 03 +02 CEST 1 2006-10-29 02 +01 CET 2007-03-25 03 +02 CEST 1 2007-10-28 02 +01 CET 2008-03-30 03 +02 CEST 1 2008-10-26 02 +01 CET 2009-03-29 03 +02 CEST 1 2009-10-25 02 +01 CET 2010-03-28 03 +02 CEST 1 2010-10-31 02 +01 CET 2011-03-27 03 +02 CEST 1 2011-10-30 02 +01 CET 2012-03-25 03 +02 CEST 1 2012-10-28 02 +01 CET 2013-03-31 03 +02 CEST 1 2013-10-27 02 +01 CET 2014-03-30 03 +02 CEST 1 2014-10-26 02 +01 CET 2015-03-29 03 +02 CEST 1 2015-10-25 02 +01 CET 2016-03-27 03 +02 CEST 1 2016-10-30 02 +01 CET 2017-03-26 03 +02 CEST 1 2017-10-29 02 +01 CET 2018-03-25 03 +02 CEST 1 2018-10-28 02 +01 CET 2019-03-31 03 +02 CEST 1 2019-10-27 02 +01 CET 2020-03-29 03 +02 CEST 1 2020-10-25 02 +01 CET 2021-03-28 03 +02 CEST 1 2021-10-31 02 +01 CET 2022-03-27 03 +02 CEST 1 2022-10-30 02 +01 CET 2023-03-26 03 +02 CEST 1 2023-10-29 02 +01 CET 2024-03-31 03 +02 CEST 1 2024-10-27 02 +01 CET 2025-03-30 03 +02 CEST 1 2025-10-26 02 +01 CET 2026-03-29 03 +02 CEST 1 2026-10-25 02 +01 CET 2027-03-28 03 +02 CEST 1 2027-10-31 02 +01 CET 2028-03-26 03 +02 CEST 1 2028-10-29 02 +01 CET 2029-03-25 03 +02 CEST 1 2029-10-28 02 +01 CET 2030-03-31 03 +02 CEST 1 2030-10-27 02 +01 CET 2031-03-30 03 +02 CEST 1 2031-10-26 02 +01 CET 2032-03-28 03 +02 CEST 1 2032-10-31 02 +01 CET 2033-03-27 03 +02 CEST 1 2033-10-30 02 +01 CET 2034-03-26 03 +02 CEST 1 2034-10-29 02 +01 CET 2035-03-25 03 +02 CEST 1 2035-10-28 02 +01 CET 2036-03-30 03 +02 CEST 1 2036-10-26 02 +01 CET 2037-03-29 03 +02 CEST 1 2037-10-25 02 +01 CET 2038-03-28 03 +02 CEST 1 2038-10-31 02 +01 CET 2039-03-27 03 +02 CEST 1 2039-10-30 02 +01 CET 2040-03-25 03 +02 CEST 1 2040-10-28 02 +01 CET 2041-03-31 03 +02 CEST 1 2041-10-27 02 +01 CET 2042-03-30 03 +02 CEST 1 2042-10-26 02 +01 CET 2043-03-29 03 +02 CEST 1 2043-10-25 02 +01 CET 2044-03-27 03 +02 CEST 1 2044-10-30 02 +01 CET 2045-03-26 03 +02 CEST 1 2045-10-29 02 +01 CET 2046-03-25 03 +02 CEST 1 2046-10-28 02 +01 CET 2047-03-31 03 +02 CEST 1 2047-10-27 02 +01 CET 2048-03-29 03 +02 CEST 1 2048-10-25 02 +01 CET 2049-03-28 03 +02 CEST 1 2049-10-31 02 +01 CET TZ="Europe/Moscow" - - +023017 LMT 1880-01-01 00 +023017 MMT 1916-07-03 00:01:02 +023119 MMT 1917-07-02 00 +033119 MST 1 1917-12-27 23 +023119 MMT 1918-06-01 00 +043119 MDST 1 1918-09-16 00 +033119 MST 1 1919-06-01 00 +043119 MDST 1 1919-07-01 04 +04 MSD 1 1919-08-15 23 +03 MSK 1921-02-15 00 +04 MSD 1 1921-03-21 00 +05 1 1921-08-31 23 +04 MSD 1 1921-09-30 23 +03 MSK 1922-09-30 23 +02 EET 1930-06-21 01 +03 MSK 1981-04-01 01 +04 MSD 1 1981-09-30 23 +03 MSK 1982-04-01 01 +04 MSD 1 1982-09-30 23 +03 MSK 1983-04-01 01 +04 MSD 1 1983-09-30 23 +03 MSK 1984-04-01 01 +04 MSD 1 1984-09-30 02 +03 MSK 1985-03-31 03 +04 MSD 1 1985-09-29 02 +03 MSK 1986-03-30 03 +04 MSD 1 1986-09-28 02 +03 MSK 1987-03-29 03 +04 MSD 1 1987-09-27 02 +03 MSK 1988-03-27 03 +04 MSD 1 1988-09-25 02 +03 MSK 1989-03-26 03 +04 MSD 1 1989-09-24 02 +03 MSK 1990-03-25 03 +04 MSD 1 1990-09-30 02 +03 MSK 1991-03-31 02 +03 EEST 1 1991-09-29 02 +02 EET 1992-01-19 03 +03 MSK 1992-03-29 03 +04 MSD 1 1992-09-27 02 +03 MSK 1993-03-28 03 +04 MSD 1 1993-09-26 02 +03 MSK 1994-03-27 03 +04 MSD 1 1994-09-25 02 +03 MSK 1995-03-26 03 +04 MSD 1 1995-09-24 02 +03 MSK 1996-03-31 03 +04 MSD 1 1996-10-27 02 +03 MSK 1997-03-30 03 +04 MSD 1 1997-10-26 02 +03 MSK 1998-03-29 03 +04 MSD 1 1998-10-25 02 +03 MSK 1999-03-28 03 +04 MSD 1 1999-10-31 02 +03 MSK 2000-03-26 03 +04 MSD 1 2000-10-29 02 +03 MSK 2001-03-25 03 +04 MSD 1 2001-10-28 02 +03 MSK 2002-03-31 03 +04 MSD 1 2002-10-27 02 +03 MSK 2003-03-30 03 +04 MSD 1 2003-10-26 02 +03 MSK 2004-03-28 03 +04 MSD 1 2004-10-31 02 +03 MSK 2005-03-27 03 +04 MSD 1 2005-10-30 02 +03 MSK 2006-03-26 03 +04 MSD 1 2006-10-29 02 +03 MSK 2007-03-25 03 +04 MSD 1 2007-10-28 02 +03 MSK 2008-03-30 03 +04 MSD 1 2008-10-26 02 +03 MSK 2009-03-29 03 +04 MSD 1 2009-10-25 02 +03 MSK 2010-03-28 03 +04 MSD 1 2010-10-31 02 +03 MSK 2011-03-27 03 +04 MSK 2014-10-26 01 +03 MSK TZ="Europe/Oslo" - - +0043 LMT 1895-01-01 00:17 +01 CET 1916-05-22 02 +02 CEST 1 1916-09-29 23 +01 CET 1940-08-11 00 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1944-04-03 03 +02 CEST 1 1944-10-02 02 +01 CET 1945-04-02 03 +02 CEST 1 1945-10-01 02 +01 CET 1959-03-15 03 +02 CEST 1 1959-09-20 02 +01 CET 1960-03-20 03 +02 CEST 1 1960-09-18 02 +01 CET 1961-03-19 03 +02 CEST 1 1961-09-17 02 +01 CET 1962-03-18 03 +02 CEST 1 1962-09-16 02 +01 CET 1963-03-17 03 +02 CEST 1 1963-09-15 02 +01 CET 1964-03-15 03 +02 CEST 1 1964-09-20 02 +01 CET 1965-04-25 03 +02 CEST 1 1965-09-19 02 +01 CET 1980-04-06 03 +02 CEST 1 1980-09-28 02 +01 CET 1981-03-29 03 +02 CEST 1 1981-09-27 02 +01 CET 1982-03-28 03 +02 CEST 1 1982-09-26 02 +01 CET 1983-03-27 03 +02 CEST 1 1983-09-25 02 +01 CET 1984-03-25 03 +02 CEST 1 1984-09-30 02 +01 CET 1985-03-31 03 +02 CEST 1 1985-09-29 02 +01 CET 1986-03-30 03 +02 CEST 1 1986-09-28 02 +01 CET 1987-03-29 03 +02 CEST 1 1987-09-27 02 +01 CET 1988-03-27 03 +02 CEST 1 1988-09-25 02 +01 CET 1989-03-26 03 +02 CEST 1 1989-09-24 02 +01 CET 1990-03-25 03 +02 CEST 1 1990-09-30 02 +01 CET 1991-03-31 03 +02 CEST 1 1991-09-29 02 +01 CET 1992-03-29 03 +02 CEST 1 1992-09-27 02 +01 CET 1993-03-28 03 +02 CEST 1 1993-09-26 02 +01 CET 1994-03-27 03 +02 CEST 1 1994-09-25 02 +01 CET 1995-03-26 03 +02 CEST 1 1995-09-24 02 +01 CET 1996-03-31 03 +02 CEST 1 1996-10-27 02 +01 CET 1997-03-30 03 +02 CEST 1 1997-10-26 02 +01 CET 1998-03-29 03 +02 CEST 1 1998-10-25 02 +01 CET 1999-03-28 03 +02 CEST 1 1999-10-31 02 +01 CET 2000-03-26 03 +02 CEST 1 2000-10-29 02 +01 CET 2001-03-25 03 +02 CEST 1 2001-10-28 02 +01 CET 2002-03-31 03 +02 CEST 1 2002-10-27 02 +01 CET 2003-03-30 03 +02 CEST 1 2003-10-26 02 +01 CET 2004-03-28 03 +02 CEST 1 2004-10-31 02 +01 CET 2005-03-27 03 +02 CEST 1 2005-10-30 02 +01 CET 2006-03-26 03 +02 CEST 1 2006-10-29 02 +01 CET 2007-03-25 03 +02 CEST 1 2007-10-28 02 +01 CET 2008-03-30 03 +02 CEST 1 2008-10-26 02 +01 CET 2009-03-29 03 +02 CEST 1 2009-10-25 02 +01 CET 2010-03-28 03 +02 CEST 1 2010-10-31 02 +01 CET 2011-03-27 03 +02 CEST 1 2011-10-30 02 +01 CET 2012-03-25 03 +02 CEST 1 2012-10-28 02 +01 CET 2013-03-31 03 +02 CEST 1 2013-10-27 02 +01 CET 2014-03-30 03 +02 CEST 1 2014-10-26 02 +01 CET 2015-03-29 03 +02 CEST 1 2015-10-25 02 +01 CET 2016-03-27 03 +02 CEST 1 2016-10-30 02 +01 CET 2017-03-26 03 +02 CEST 1 2017-10-29 02 +01 CET 2018-03-25 03 +02 CEST 1 2018-10-28 02 +01 CET 2019-03-31 03 +02 CEST 1 2019-10-27 02 +01 CET 2020-03-29 03 +02 CEST 1 2020-10-25 02 +01 CET 2021-03-28 03 +02 CEST 1 2021-10-31 02 +01 CET 2022-03-27 03 +02 CEST 1 2022-10-30 02 +01 CET 2023-03-26 03 +02 CEST 1 2023-10-29 02 +01 CET 2024-03-31 03 +02 CEST 1 2024-10-27 02 +01 CET 2025-03-30 03 +02 CEST 1 2025-10-26 02 +01 CET 2026-03-29 03 +02 CEST 1 2026-10-25 02 +01 CET 2027-03-28 03 +02 CEST 1 2027-10-31 02 +01 CET 2028-03-26 03 +02 CEST 1 2028-10-29 02 +01 CET 2029-03-25 03 +02 CEST 1 2029-10-28 02 +01 CET 2030-03-31 03 +02 CEST 1 2030-10-27 02 +01 CET 2031-03-30 03 +02 CEST 1 2031-10-26 02 +01 CET 2032-03-28 03 +02 CEST 1 2032-10-31 02 +01 CET 2033-03-27 03 +02 CEST 1 2033-10-30 02 +01 CET 2034-03-26 03 +02 CEST 1 2034-10-29 02 +01 CET 2035-03-25 03 +02 CEST 1 2035-10-28 02 +01 CET 2036-03-30 03 +02 CEST 1 2036-10-26 02 +01 CET 2037-03-29 03 +02 CEST 1 2037-10-25 02 +01 CET 2038-03-28 03 +02 CEST 1 2038-10-31 02 +01 CET 2039-03-27 03 +02 CEST 1 2039-10-30 02 +01 CET 2040-03-25 03 +02 CEST 1 2040-10-28 02 +01 CET 2041-03-31 03 +02 CEST 1 2041-10-27 02 +01 CET 2042-03-30 03 +02 CEST 1 2042-10-26 02 +01 CET 2043-03-29 03 +02 CEST 1 2043-10-25 02 +01 CET 2044-03-27 03 +02 CEST 1 2044-10-30 02 +01 CET 2045-03-26 03 +02 CEST 1 2045-10-29 02 +01 CET 2046-03-25 03 +02 CEST 1 2046-10-28 02 +01 CET 2047-03-31 03 +02 CEST 1 2047-10-27 02 +01 CET 2048-03-29 03 +02 CEST 1 2048-10-25 02 +01 CET 2049-03-28 03 +02 CEST 1 2049-10-31 02 +01 CET TZ="Europe/Paris" - - +000921 LMT 1891-03-15 00:01 +000921 PMT 1911-03-10 23:51:39 +00 WET 1916-06-15 00 +01 WEST 1 1916-10-01 23 +00 WET 1917-03-25 00 +01 WEST 1 1917-10-07 23 +00 WET 1918-03-10 00 +01 WEST 1 1918-10-06 23 +00 WET 1919-03-02 00 +01 WEST 1 1919-10-05 23 +00 WET 1920-02-15 00 +01 WEST 1 1920-10-23 23 +00 WET 1921-03-15 00 +01 WEST 1 1921-10-25 23 +00 WET 1922-03-26 00 +01 WEST 1 1922-10-07 23 +00 WET 1923-05-27 00 +01 WEST 1 1923-10-06 23 +00 WET 1924-03-30 00 +01 WEST 1 1924-10-04 23 +00 WET 1925-04-05 00 +01 WEST 1 1925-10-03 23 +00 WET 1926-04-18 00 +01 WEST 1 1926-10-02 23 +00 WET 1927-04-10 00 +01 WEST 1 1927-10-01 23 +00 WET 1928-04-15 00 +01 WEST 1 1928-10-06 23 +00 WET 1929-04-21 00 +01 WEST 1 1929-10-05 23 +00 WET 1930-04-13 00 +01 WEST 1 1930-10-04 23 +00 WET 1931-04-19 00 +01 WEST 1 1931-10-03 23 +00 WET 1932-04-03 00 +01 WEST 1 1932-10-01 23 +00 WET 1933-03-26 00 +01 WEST 1 1933-10-07 23 +00 WET 1934-04-08 00 +01 WEST 1 1934-10-06 23 +00 WET 1935-03-31 00 +01 WEST 1 1935-10-05 23 +00 WET 1936-04-19 00 +01 WEST 1 1936-10-03 23 +00 WET 1937-04-04 00 +01 WEST 1 1937-10-02 23 +00 WET 1938-03-27 00 +01 WEST 1 1938-10-01 23 +00 WET 1939-04-16 00 +01 WEST 1 1939-11-18 23 +00 WET 1940-02-25 03 +01 WEST 1 1940-06-15 00 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1944-04-03 03 +02 CEST 1 1944-08-25 00 +02 WEMT 1 1944-10-08 00 +01 WEST 1 1945-04-02 03 +02 WEMT 1 1945-09-16 02 +01 CET 1976-03-28 02 +02 CEST 1 1976-09-26 00 +01 CET 1977-04-03 03 +02 CEST 1 1977-09-25 02 +01 CET 1978-04-02 03 +02 CEST 1 1978-10-01 02 +01 CET 1979-04-01 03 +02 CEST 1 1979-09-30 02 +01 CET 1980-04-06 03 +02 CEST 1 1980-09-28 02 +01 CET 1981-03-29 03 +02 CEST 1 1981-09-27 02 +01 CET 1982-03-28 03 +02 CEST 1 1982-09-26 02 +01 CET 1983-03-27 03 +02 CEST 1 1983-09-25 02 +01 CET 1984-03-25 03 +02 CEST 1 1984-09-30 02 +01 CET 1985-03-31 03 +02 CEST 1 1985-09-29 02 +01 CET 1986-03-30 03 +02 CEST 1 1986-09-28 02 +01 CET 1987-03-29 03 +02 CEST 1 1987-09-27 02 +01 CET 1988-03-27 03 +02 CEST 1 1988-09-25 02 +01 CET 1989-03-26 03 +02 CEST 1 1989-09-24 02 +01 CET 1990-03-25 03 +02 CEST 1 1990-09-30 02 +01 CET 1991-03-31 03 +02 CEST 1 1991-09-29 02 +01 CET 1992-03-29 03 +02 CEST 1 1992-09-27 02 +01 CET 1993-03-28 03 +02 CEST 1 1993-09-26 02 +01 CET 1994-03-27 03 +02 CEST 1 1994-09-25 02 +01 CET 1995-03-26 03 +02 CEST 1 1995-09-24 02 +01 CET 1996-03-31 03 +02 CEST 1 1996-10-27 02 +01 CET 1997-03-30 03 +02 CEST 1 1997-10-26 02 +01 CET 1998-03-29 03 +02 CEST 1 1998-10-25 02 +01 CET 1999-03-28 03 +02 CEST 1 1999-10-31 02 +01 CET 2000-03-26 03 +02 CEST 1 2000-10-29 02 +01 CET 2001-03-25 03 +02 CEST 1 2001-10-28 02 +01 CET 2002-03-31 03 +02 CEST 1 2002-10-27 02 +01 CET 2003-03-30 03 +02 CEST 1 2003-10-26 02 +01 CET 2004-03-28 03 +02 CEST 1 2004-10-31 02 +01 CET 2005-03-27 03 +02 CEST 1 2005-10-30 02 +01 CET 2006-03-26 03 +02 CEST 1 2006-10-29 02 +01 CET 2007-03-25 03 +02 CEST 1 2007-10-28 02 +01 CET 2008-03-30 03 +02 CEST 1 2008-10-26 02 +01 CET 2009-03-29 03 +02 CEST 1 2009-10-25 02 +01 CET 2010-03-28 03 +02 CEST 1 2010-10-31 02 +01 CET 2011-03-27 03 +02 CEST 1 2011-10-30 02 +01 CET 2012-03-25 03 +02 CEST 1 2012-10-28 02 +01 CET 2013-03-31 03 +02 CEST 1 2013-10-27 02 +01 CET 2014-03-30 03 +02 CEST 1 2014-10-26 02 +01 CET 2015-03-29 03 +02 CEST 1 2015-10-25 02 +01 CET 2016-03-27 03 +02 CEST 1 2016-10-30 02 +01 CET 2017-03-26 03 +02 CEST 1 2017-10-29 02 +01 CET 2018-03-25 03 +02 CEST 1 2018-10-28 02 +01 CET 2019-03-31 03 +02 CEST 1 2019-10-27 02 +01 CET 2020-03-29 03 +02 CEST 1 2020-10-25 02 +01 CET 2021-03-28 03 +02 CEST 1 2021-10-31 02 +01 CET 2022-03-27 03 +02 CEST 1 2022-10-30 02 +01 CET 2023-03-26 03 +02 CEST 1 2023-10-29 02 +01 CET 2024-03-31 03 +02 CEST 1 2024-10-27 02 +01 CET 2025-03-30 03 +02 CEST 1 2025-10-26 02 +01 CET 2026-03-29 03 +02 CEST 1 2026-10-25 02 +01 CET 2027-03-28 03 +02 CEST 1 2027-10-31 02 +01 CET 2028-03-26 03 +02 CEST 1 2028-10-29 02 +01 CET 2029-03-25 03 +02 CEST 1 2029-10-28 02 +01 CET 2030-03-31 03 +02 CEST 1 2030-10-27 02 +01 CET 2031-03-30 03 +02 CEST 1 2031-10-26 02 +01 CET 2032-03-28 03 +02 CEST 1 2032-10-31 02 +01 CET 2033-03-27 03 +02 CEST 1 2033-10-30 02 +01 CET 2034-03-26 03 +02 CEST 1 2034-10-29 02 +01 CET 2035-03-25 03 +02 CEST 1 2035-10-28 02 +01 CET 2036-03-30 03 +02 CEST 1 2036-10-26 02 +01 CET 2037-03-29 03 +02 CEST 1 2037-10-25 02 +01 CET 2038-03-28 03 +02 CEST 1 2038-10-31 02 +01 CET 2039-03-27 03 +02 CEST 1 2039-10-30 02 +01 CET 2040-03-25 03 +02 CEST 1 2040-10-28 02 +01 CET 2041-03-31 03 +02 CEST 1 2041-10-27 02 +01 CET 2042-03-30 03 +02 CEST 1 2042-10-26 02 +01 CET 2043-03-29 03 +02 CEST 1 2043-10-25 02 +01 CET 2044-03-27 03 +02 CEST 1 2044-10-30 02 +01 CET 2045-03-26 03 +02 CEST 1 2045-10-29 02 +01 CET 2046-03-25 03 +02 CEST 1 2046-10-28 02 +01 CET 2047-03-31 03 +02 CEST 1 2047-10-27 02 +01 CET 2048-03-29 03 +02 CEST 1 2048-10-25 02 +01 CET 2049-03-28 03 +02 CEST 1 2049-10-31 02 +01 CET TZ="Europe/Prague" - - +005744 LMT 1850-01-01 00 +005744 PMT 1891-10-01 00:02:16 +01 CET 1916-05-01 00 +02 CEST 1 1916-10-01 00 +01 CET 1917-04-16 03 +02 CEST 1 1917-09-17 02 +01 CET 1918-04-15 03 +02 CEST 1 1918-09-16 02 +01 CET 1940-04-01 03 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1944-04-03 03 +02 CEST 1 1944-10-02 02 +01 CET 1945-04-02 03 +02 CEST 1 1945-10-01 02 +01 CET 1946-05-06 03 +02 CEST 1 1946-10-06 02 +01 CET 1946-12-01 02 +00 GMT 1 1947-02-23 03 +01 CET 1947-04-20 03 +02 CEST 1 1947-10-05 02 +01 CET 1948-04-18 03 +02 CEST 1 1948-10-03 02 +01 CET 1949-04-09 03 +02 CEST 1 1949-10-02 02 +01 CET 1979-04-01 03 +02 CEST 1 1979-09-30 02 +01 CET 1980-04-06 03 +02 CEST 1 1980-09-28 02 +01 CET 1981-03-29 03 +02 CEST 1 1981-09-27 02 +01 CET 1982-03-28 03 +02 CEST 1 1982-09-26 02 +01 CET 1983-03-27 03 +02 CEST 1 1983-09-25 02 +01 CET 1984-03-25 03 +02 CEST 1 1984-09-30 02 +01 CET 1985-03-31 03 +02 CEST 1 1985-09-29 02 +01 CET 1986-03-30 03 +02 CEST 1 1986-09-28 02 +01 CET 1987-03-29 03 +02 CEST 1 1987-09-27 02 +01 CET 1988-03-27 03 +02 CEST 1 1988-09-25 02 +01 CET 1989-03-26 03 +02 CEST 1 1989-09-24 02 +01 CET 1990-03-25 03 +02 CEST 1 1990-09-30 02 +01 CET 1991-03-31 03 +02 CEST 1 1991-09-29 02 +01 CET 1992-03-29 03 +02 CEST 1 1992-09-27 02 +01 CET 1993-03-28 03 +02 CEST 1 1993-09-26 02 +01 CET 1994-03-27 03 +02 CEST 1 1994-09-25 02 +01 CET 1995-03-26 03 +02 CEST 1 1995-09-24 02 +01 CET 1996-03-31 03 +02 CEST 1 1996-10-27 02 +01 CET 1997-03-30 03 +02 CEST 1 1997-10-26 02 +01 CET 1998-03-29 03 +02 CEST 1 1998-10-25 02 +01 CET 1999-03-28 03 +02 CEST 1 1999-10-31 02 +01 CET 2000-03-26 03 +02 CEST 1 2000-10-29 02 +01 CET 2001-03-25 03 +02 CEST 1 2001-10-28 02 +01 CET 2002-03-31 03 +02 CEST 1 2002-10-27 02 +01 CET 2003-03-30 03 +02 CEST 1 2003-10-26 02 +01 CET 2004-03-28 03 +02 CEST 1 2004-10-31 02 +01 CET 2005-03-27 03 +02 CEST 1 2005-10-30 02 +01 CET 2006-03-26 03 +02 CEST 1 2006-10-29 02 +01 CET 2007-03-25 03 +02 CEST 1 2007-10-28 02 +01 CET 2008-03-30 03 +02 CEST 1 2008-10-26 02 +01 CET 2009-03-29 03 +02 CEST 1 2009-10-25 02 +01 CET 2010-03-28 03 +02 CEST 1 2010-10-31 02 +01 CET 2011-03-27 03 +02 CEST 1 2011-10-30 02 +01 CET 2012-03-25 03 +02 CEST 1 2012-10-28 02 +01 CET 2013-03-31 03 +02 CEST 1 2013-10-27 02 +01 CET 2014-03-30 03 +02 CEST 1 2014-10-26 02 +01 CET 2015-03-29 03 +02 CEST 1 2015-10-25 02 +01 CET 2016-03-27 03 +02 CEST 1 2016-10-30 02 +01 CET 2017-03-26 03 +02 CEST 1 2017-10-29 02 +01 CET 2018-03-25 03 +02 CEST 1 2018-10-28 02 +01 CET 2019-03-31 03 +02 CEST 1 2019-10-27 02 +01 CET 2020-03-29 03 +02 CEST 1 2020-10-25 02 +01 CET 2021-03-28 03 +02 CEST 1 2021-10-31 02 +01 CET 2022-03-27 03 +02 CEST 1 2022-10-30 02 +01 CET 2023-03-26 03 +02 CEST 1 2023-10-29 02 +01 CET 2024-03-31 03 +02 CEST 1 2024-10-27 02 +01 CET 2025-03-30 03 +02 CEST 1 2025-10-26 02 +01 CET 2026-03-29 03 +02 CEST 1 2026-10-25 02 +01 CET 2027-03-28 03 +02 CEST 1 2027-10-31 02 +01 CET 2028-03-26 03 +02 CEST 1 2028-10-29 02 +01 CET 2029-03-25 03 +02 CEST 1 2029-10-28 02 +01 CET 2030-03-31 03 +02 CEST 1 2030-10-27 02 +01 CET 2031-03-30 03 +02 CEST 1 2031-10-26 02 +01 CET 2032-03-28 03 +02 CEST 1 2032-10-31 02 +01 CET 2033-03-27 03 +02 CEST 1 2033-10-30 02 +01 CET 2034-03-26 03 +02 CEST 1 2034-10-29 02 +01 CET 2035-03-25 03 +02 CEST 1 2035-10-28 02 +01 CET 2036-03-30 03 +02 CEST 1 2036-10-26 02 +01 CET 2037-03-29 03 +02 CEST 1 2037-10-25 02 +01 CET 2038-03-28 03 +02 CEST 1 2038-10-31 02 +01 CET 2039-03-27 03 +02 CEST 1 2039-10-30 02 +01 CET 2040-03-25 03 +02 CEST 1 2040-10-28 02 +01 CET 2041-03-31 03 +02 CEST 1 2041-10-27 02 +01 CET 2042-03-30 03 +02 CEST 1 2042-10-26 02 +01 CET 2043-03-29 03 +02 CEST 1 2043-10-25 02 +01 CET 2044-03-27 03 +02 CEST 1 2044-10-30 02 +01 CET 2045-03-26 03 +02 CEST 1 2045-10-29 02 +01 CET 2046-03-25 03 +02 CEST 1 2046-10-28 02 +01 CET 2047-03-31 03 +02 CEST 1 2047-10-27 02 +01 CET 2048-03-29 03 +02 CEST 1 2048-10-25 02 +01 CET 2049-03-28 03 +02 CEST 1 2049-10-31 02 +01 CET TZ="Europe/Riga" - - +013634 LMT 1880-01-01 00 +013634 RMT 1918-04-15 03 +023634 LST 1 1918-09-16 02 +013634 RMT 1919-04-01 03 +023634 LST 1 1919-05-22 02 +013634 RMT 1926-05-11 00:23:26 +02 EET 1940-08-05 01 +03 MSK 1941-06-30 23 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1944-04-03 03 +02 CEST 1 1944-10-02 02 +01 CET 1944-10-13 02 +03 MSK 1981-04-01 01 +04 MSD 1 1981-09-30 23 +03 MSK 1982-04-01 01 +04 MSD 1 1982-09-30 23 +03 MSK 1983-04-01 01 +04 MSD 1 1983-09-30 23 +03 MSK 1984-04-01 01 +04 MSD 1 1984-09-30 02 +03 MSK 1985-03-31 03 +04 MSD 1 1985-09-29 02 +03 MSK 1986-03-30 03 +04 MSD 1 1986-09-28 02 +03 MSK 1987-03-29 03 +04 MSD 1 1987-09-27 02 +03 MSK 1988-03-27 03 +04 MSD 1 1988-09-25 02 +03 MSK 1989-03-26 02 +03 EEST 1 1989-09-24 02 +02 EET 1990-03-25 03 +03 EEST 1 1990-09-30 02 +02 EET 1991-03-31 03 +03 EEST 1 1991-09-29 02 +02 EET 1992-03-29 03 +03 EEST 1 1992-09-27 02 +02 EET 1993-03-28 03 +03 EEST 1 1993-09-26 02 +02 EET 1994-03-27 03 +03 EEST 1 1994-09-25 02 +02 EET 1995-03-26 03 +03 EEST 1 1995-09-24 02 +02 EET 1996-03-31 03 +03 EEST 1 1996-09-29 02 +02 EET 1997-03-30 04 +03 EEST 1 1997-10-26 03 +02 EET 1998-03-29 04 +03 EEST 1 1998-10-25 03 +02 EET 1999-03-28 04 +03 EEST 1 1999-10-31 03 +02 EET 2001-03-25 04 +03 EEST 1 2001-10-28 03 +02 EET 2002-03-31 04 +03 EEST 1 2002-10-27 03 +02 EET 2003-03-30 04 +03 EEST 1 2003-10-26 03 +02 EET 2004-03-28 04 +03 EEST 1 2004-10-31 03 +02 EET 2005-03-27 04 +03 EEST 1 2005-10-30 03 +02 EET 2006-03-26 04 +03 EEST 1 2006-10-29 03 +02 EET 2007-03-25 04 +03 EEST 1 2007-10-28 03 +02 EET 2008-03-30 04 +03 EEST 1 2008-10-26 03 +02 EET 2009-03-29 04 +03 EEST 1 2009-10-25 03 +02 EET 2010-03-28 04 +03 EEST 1 2010-10-31 03 +02 EET 2011-03-27 04 +03 EEST 1 2011-10-30 03 +02 EET 2012-03-25 04 +03 EEST 1 2012-10-28 03 +02 EET 2013-03-31 04 +03 EEST 1 2013-10-27 03 +02 EET 2014-03-30 04 +03 EEST 1 2014-10-26 03 +02 EET 2015-03-29 04 +03 EEST 1 2015-10-25 03 +02 EET 2016-03-27 04 +03 EEST 1 2016-10-30 03 +02 EET 2017-03-26 04 +03 EEST 1 2017-10-29 03 +02 EET 2018-03-25 04 +03 EEST 1 2018-10-28 03 +02 EET 2019-03-31 04 +03 EEST 1 2019-10-27 03 +02 EET 2020-03-29 04 +03 EEST 1 2020-10-25 03 +02 EET 2021-03-28 04 +03 EEST 1 2021-10-31 03 +02 EET 2022-03-27 04 +03 EEST 1 2022-10-30 03 +02 EET 2023-03-26 04 +03 EEST 1 2023-10-29 03 +02 EET 2024-03-31 04 +03 EEST 1 2024-10-27 03 +02 EET 2025-03-30 04 +03 EEST 1 2025-10-26 03 +02 EET 2026-03-29 04 +03 EEST 1 2026-10-25 03 +02 EET 2027-03-28 04 +03 EEST 1 2027-10-31 03 +02 EET 2028-03-26 04 +03 EEST 1 2028-10-29 03 +02 EET 2029-03-25 04 +03 EEST 1 2029-10-28 03 +02 EET 2030-03-31 04 +03 EEST 1 2030-10-27 03 +02 EET 2031-03-30 04 +03 EEST 1 2031-10-26 03 +02 EET 2032-03-28 04 +03 EEST 1 2032-10-31 03 +02 EET 2033-03-27 04 +03 EEST 1 2033-10-30 03 +02 EET 2034-03-26 04 +03 EEST 1 2034-10-29 03 +02 EET 2035-03-25 04 +03 EEST 1 2035-10-28 03 +02 EET 2036-03-30 04 +03 EEST 1 2036-10-26 03 +02 EET 2037-03-29 04 +03 EEST 1 2037-10-25 03 +02 EET 2038-03-28 04 +03 EEST 1 2038-10-31 03 +02 EET 2039-03-27 04 +03 EEST 1 2039-10-30 03 +02 EET 2040-03-25 04 +03 EEST 1 2040-10-28 03 +02 EET 2041-03-31 04 +03 EEST 1 2041-10-27 03 +02 EET 2042-03-30 04 +03 EEST 1 2042-10-26 03 +02 EET 2043-03-29 04 +03 EEST 1 2043-10-25 03 +02 EET 2044-03-27 04 +03 EEST 1 2044-10-30 03 +02 EET 2045-03-26 04 +03 EEST 1 2045-10-29 03 +02 EET 2046-03-25 04 +03 EEST 1 2046-10-28 03 +02 EET 2047-03-31 04 +03 EEST 1 2047-10-27 03 +02 EET 2048-03-29 04 +03 EEST 1 2048-10-25 03 +02 EET 2049-03-28 04 +03 EEST 1 2049-10-31 03 +02 EET TZ="Europe/Rome" - - +004956 LMT 1866-12-12 00 +004956 RMT 1893-11-01 00 +01 CET 1916-06-04 01 +02 CEST 1 1916-09-30 23 +01 CET 1917-04-01 01 +02 CEST 1 1917-09-30 23 +01 CET 1918-03-10 01 +02 CEST 1 1918-10-06 23 +01 CET 1919-03-02 01 +02 CEST 1 1919-10-04 23 +01 CET 1920-03-21 01 +02 CEST 1 1920-09-18 23 +01 CET 1940-06-15 01 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1944-04-03 03 +02 CEST 1 1944-09-17 02 +01 CET 1945-04-02 03 +02 CEST 1 1945-09-15 00 +01 CET 1946-03-17 03 +02 CEST 1 1946-10-06 02 +01 CET 1947-03-16 01 +02 CEST 1 1947-10-05 00 +01 CET 1948-02-29 03 +02 CEST 1 1948-10-03 02 +01 CET 1966-05-22 01 +02 CEST 1 1966-09-24 23 +01 CET 1967-05-28 01 +02 CEST 1 1967-09-24 00 +01 CET 1968-05-26 01 +02 CEST 1 1968-09-22 00 +01 CET 1969-06-01 01 +02 CEST 1 1969-09-28 00 +01 CET 1970-05-31 01 +02 CEST 1 1970-09-27 00 +01 CET 1971-05-23 01 +02 CEST 1 1971-09-26 00 +01 CET 1972-05-28 01 +02 CEST 1 1972-10-01 00 +01 CET 1973-06-03 01 +02 CEST 1 1973-09-30 00 +01 CET 1974-05-26 01 +02 CEST 1 1974-09-29 00 +01 CET 1975-06-01 01 +02 CEST 1 1975-09-28 00 +01 CET 1976-05-30 01 +02 CEST 1 1976-09-26 00 +01 CET 1977-05-22 01 +02 CEST 1 1977-09-25 00 +01 CET 1978-05-28 01 +02 CEST 1 1978-10-01 00 +01 CET 1979-05-27 01 +02 CEST 1 1979-09-30 00 +01 CET 1980-04-06 03 +02 CEST 1 1980-09-28 02 +01 CET 1981-03-29 03 +02 CEST 1 1981-09-27 02 +01 CET 1982-03-28 03 +02 CEST 1 1982-09-26 02 +01 CET 1983-03-27 03 +02 CEST 1 1983-09-25 02 +01 CET 1984-03-25 03 +02 CEST 1 1984-09-30 02 +01 CET 1985-03-31 03 +02 CEST 1 1985-09-29 02 +01 CET 1986-03-30 03 +02 CEST 1 1986-09-28 02 +01 CET 1987-03-29 03 +02 CEST 1 1987-09-27 02 +01 CET 1988-03-27 03 +02 CEST 1 1988-09-25 02 +01 CET 1989-03-26 03 +02 CEST 1 1989-09-24 02 +01 CET 1990-03-25 03 +02 CEST 1 1990-09-30 02 +01 CET 1991-03-31 03 +02 CEST 1 1991-09-29 02 +01 CET 1992-03-29 03 +02 CEST 1 1992-09-27 02 +01 CET 1993-03-28 03 +02 CEST 1 1993-09-26 02 +01 CET 1994-03-27 03 +02 CEST 1 1994-09-25 02 +01 CET 1995-03-26 03 +02 CEST 1 1995-09-24 02 +01 CET 1996-03-31 03 +02 CEST 1 1996-10-27 02 +01 CET 1997-03-30 03 +02 CEST 1 1997-10-26 02 +01 CET 1998-03-29 03 +02 CEST 1 1998-10-25 02 +01 CET 1999-03-28 03 +02 CEST 1 1999-10-31 02 +01 CET 2000-03-26 03 +02 CEST 1 2000-10-29 02 +01 CET 2001-03-25 03 +02 CEST 1 2001-10-28 02 +01 CET 2002-03-31 03 +02 CEST 1 2002-10-27 02 +01 CET 2003-03-30 03 +02 CEST 1 2003-10-26 02 +01 CET 2004-03-28 03 +02 CEST 1 2004-10-31 02 +01 CET 2005-03-27 03 +02 CEST 1 2005-10-30 02 +01 CET 2006-03-26 03 +02 CEST 1 2006-10-29 02 +01 CET 2007-03-25 03 +02 CEST 1 2007-10-28 02 +01 CET 2008-03-30 03 +02 CEST 1 2008-10-26 02 +01 CET 2009-03-29 03 +02 CEST 1 2009-10-25 02 +01 CET 2010-03-28 03 +02 CEST 1 2010-10-31 02 +01 CET 2011-03-27 03 +02 CEST 1 2011-10-30 02 +01 CET 2012-03-25 03 +02 CEST 1 2012-10-28 02 +01 CET 2013-03-31 03 +02 CEST 1 2013-10-27 02 +01 CET 2014-03-30 03 +02 CEST 1 2014-10-26 02 +01 CET 2015-03-29 03 +02 CEST 1 2015-10-25 02 +01 CET 2016-03-27 03 +02 CEST 1 2016-10-30 02 +01 CET 2017-03-26 03 +02 CEST 1 2017-10-29 02 +01 CET 2018-03-25 03 +02 CEST 1 2018-10-28 02 +01 CET 2019-03-31 03 +02 CEST 1 2019-10-27 02 +01 CET 2020-03-29 03 +02 CEST 1 2020-10-25 02 +01 CET 2021-03-28 03 +02 CEST 1 2021-10-31 02 +01 CET 2022-03-27 03 +02 CEST 1 2022-10-30 02 +01 CET 2023-03-26 03 +02 CEST 1 2023-10-29 02 +01 CET 2024-03-31 03 +02 CEST 1 2024-10-27 02 +01 CET 2025-03-30 03 +02 CEST 1 2025-10-26 02 +01 CET 2026-03-29 03 +02 CEST 1 2026-10-25 02 +01 CET 2027-03-28 03 +02 CEST 1 2027-10-31 02 +01 CET 2028-03-26 03 +02 CEST 1 2028-10-29 02 +01 CET 2029-03-25 03 +02 CEST 1 2029-10-28 02 +01 CET 2030-03-31 03 +02 CEST 1 2030-10-27 02 +01 CET 2031-03-30 03 +02 CEST 1 2031-10-26 02 +01 CET 2032-03-28 03 +02 CEST 1 2032-10-31 02 +01 CET 2033-03-27 03 +02 CEST 1 2033-10-30 02 +01 CET 2034-03-26 03 +02 CEST 1 2034-10-29 02 +01 CET 2035-03-25 03 +02 CEST 1 2035-10-28 02 +01 CET 2036-03-30 03 +02 CEST 1 2036-10-26 02 +01 CET 2037-03-29 03 +02 CEST 1 2037-10-25 02 +01 CET 2038-03-28 03 +02 CEST 1 2038-10-31 02 +01 CET 2039-03-27 03 +02 CEST 1 2039-10-30 02 +01 CET 2040-03-25 03 +02 CEST 1 2040-10-28 02 +01 CET 2041-03-31 03 +02 CEST 1 2041-10-27 02 +01 CET 2042-03-30 03 +02 CEST 1 2042-10-26 02 +01 CET 2043-03-29 03 +02 CEST 1 2043-10-25 02 +01 CET 2044-03-27 03 +02 CEST 1 2044-10-30 02 +01 CET 2045-03-26 03 +02 CEST 1 2045-10-29 02 +01 CET 2046-03-25 03 +02 CEST 1 2046-10-28 02 +01 CET 2047-03-31 03 +02 CEST 1 2047-10-27 02 +01 CET 2048-03-29 03 +02 CEST 1 2048-10-25 02 +01 CET 2049-03-28 03 +02 CEST 1 2049-10-31 02 +01 CET TZ="Europe/Samara" - - +032020 LMT 1919-07-01 03 +03 1930-06-21 01 +04 1981-04-01 01 +05 1 1981-09-30 23 +04 1982-04-01 01 +05 1 1982-09-30 23 +04 1983-04-01 01 +05 1 1983-09-30 23 +04 1984-04-01 01 +05 1 1984-09-30 02 +04 1985-03-31 03 +05 1 1985-09-29 02 +04 1986-03-30 03 +05 1 1986-09-28 02 +04 1987-03-29 03 +05 1 1987-09-27 02 +04 1988-03-27 03 +05 1 1988-09-25 02 +04 1989-03-26 02 +04 1 1989-09-24 02 +03 1990-03-25 03 +04 1 1990-09-30 02 +03 1991-03-31 02 +03 1 1991-09-29 03 +03 1991-10-20 04 +04 1992-03-29 03 +05 1 1992-09-27 02 +04 1993-03-28 03 +05 1 1993-09-26 02 +04 1994-03-27 03 +05 1 1994-09-25 02 +04 1995-03-26 03 +05 1 1995-09-24 02 +04 1996-03-31 03 +05 1 1996-10-27 02 +04 1997-03-30 03 +05 1 1997-10-26 02 +04 1998-03-29 03 +05 1 1998-10-25 02 +04 1999-03-28 03 +05 1 1999-10-31 02 +04 2000-03-26 03 +05 1 2000-10-29 02 +04 2001-03-25 03 +05 1 2001-10-28 02 +04 2002-03-31 03 +05 1 2002-10-27 02 +04 2003-03-30 03 +05 1 2003-10-26 02 +04 2004-03-28 03 +05 1 2004-10-31 02 +04 2005-03-27 03 +05 1 2005-10-30 02 +04 2006-03-26 03 +05 1 2006-10-29 02 +04 2007-03-25 03 +05 1 2007-10-28 02 +04 2008-03-30 03 +05 1 2008-10-26 02 +04 2009-03-29 03 +05 1 2009-10-25 02 +04 2010-03-28 02 +04 1 2010-10-31 02 +03 2011-03-27 03 +04 TZ="Europe/Saratov" - - +030418 LMT 1919-07-01 03 +03 1930-06-21 01 +04 1981-04-01 01 +05 1 1981-09-30 23 +04 1982-04-01 01 +05 1 1982-09-30 23 +04 1983-04-01 01 +05 1 1983-09-30 23 +04 1984-04-01 01 +05 1 1984-09-30 02 +04 1985-03-31 03 +05 1 1985-09-29 02 +04 1986-03-30 03 +05 1 1986-09-28 02 +04 1987-03-29 03 +05 1 1987-09-27 02 +04 1988-03-27 02 +04 1 1988-09-25 02 +03 1989-03-26 03 +04 1 1989-09-24 02 +03 1990-03-25 03 +04 1 1990-09-30 02 +03 1991-03-31 03 +04 1992-03-29 02 +04 1 1992-09-27 02 +03 1993-03-28 03 +04 1 1993-09-26 02 +03 1994-03-27 03 +04 1 1994-09-25 02 +03 1995-03-26 03 +04 1 1995-09-24 02 +03 1996-03-31 03 +04 1 1996-10-27 02 +03 1997-03-30 03 +04 1 1997-10-26 02 +03 1998-03-29 03 +04 1 1998-10-25 02 +03 1999-03-28 03 +04 1 1999-10-31 02 +03 2000-03-26 03 +04 1 2000-10-29 02 +03 2001-03-25 03 +04 1 2001-10-28 02 +03 2002-03-31 03 +04 1 2002-10-27 02 +03 2003-03-30 03 +04 1 2003-10-26 02 +03 2004-03-28 03 +04 1 2004-10-31 02 +03 2005-03-27 03 +04 1 2005-10-30 02 +03 2006-03-26 03 +04 1 2006-10-29 02 +03 2007-03-25 03 +04 1 2007-10-28 02 +03 2008-03-30 03 +04 1 2008-10-26 02 +03 2009-03-29 03 +04 1 2009-10-25 02 +03 2010-03-28 03 +04 1 2010-10-31 02 +03 2011-03-27 03 +04 2014-10-26 01 +03 2016-12-04 03 +04 TZ="Europe/Simferopol" - - +021624 LMT 1879-12-31 23:59:36 +0216 SMT 1924-05-01 23:44 +02 EET 1930-06-21 01 +03 MSK 1941-10-31 23 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1944-04-03 03 +02 CEST 1 1944-04-13 01 +03 MSK 1981-04-01 01 +04 MSD 1 1981-09-30 23 +03 MSK 1982-04-01 01 +04 MSD 1 1982-09-30 23 +03 MSK 1983-04-01 01 +04 MSD 1 1983-09-30 23 +03 MSK 1984-04-01 01 +04 MSD 1 1984-09-30 02 +03 MSK 1985-03-31 03 +04 MSD 1 1985-09-29 02 +03 MSK 1986-03-30 03 +04 MSD 1 1986-09-28 02 +03 MSK 1987-03-29 03 +04 MSD 1 1987-09-27 02 +03 MSK 1988-03-27 03 +04 MSD 1 1988-09-25 02 +03 MSK 1989-03-26 03 +04 MSD 1 1989-09-24 02 +03 MSK 1990-07-01 01 +02 EET 1992-03-29 01 +03 EEST 1 1992-09-26 23 +02 EET 1993-03-28 01 +03 EEST 1 1993-09-25 23 +02 EET 1994-03-27 01 +03 EEST 1 1994-05-01 01 +04 MSD 1 1994-09-24 23 +03 MSK 1995-03-26 01 +04 MSD 1 1995-09-23 23 +03 MSK 1996-03-31 01 +04 MSD 1 1996-10-27 03 +03 MSK 1997-03-30 04 +03 EEST 1 1997-10-26 03 +02 EET 1998-03-29 04 +03 EEST 1 1998-10-25 03 +02 EET 1999-03-28 04 +03 EEST 1 1999-10-31 03 +02 EET 2000-03-26 04 +03 EEST 1 2000-10-29 03 +02 EET 2001-03-25 04 +03 EEST 1 2001-10-28 03 +02 EET 2002-03-31 04 +03 EEST 1 2002-10-27 03 +02 EET 2003-03-30 04 +03 EEST 1 2003-10-26 03 +02 EET 2004-03-28 04 +03 EEST 1 2004-10-31 03 +02 EET 2005-03-27 04 +03 EEST 1 2005-10-30 03 +02 EET 2006-03-26 04 +03 EEST 1 2006-10-29 03 +02 EET 2007-03-25 04 +03 EEST 1 2007-10-28 03 +02 EET 2008-03-30 04 +03 EEST 1 2008-10-26 03 +02 EET 2009-03-29 04 +03 EEST 1 2009-10-25 03 +02 EET 2010-03-28 04 +03 EEST 1 2010-10-31 03 +02 EET 2011-03-27 04 +03 EEST 1 2011-10-30 03 +02 EET 2012-03-25 04 +03 EEST 1 2012-10-28 03 +02 EET 2013-03-31 04 +03 EEST 1 2013-10-27 03 +02 EET 2014-03-30 04 +04 MSK 2014-10-26 01 +03 MSK TZ="Europe/Sofia" - - +013316 LMT 1880-01-01 00:23:40 +015656 IMT 1894-11-30 00:03:04 +02 EET 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1944-04-03 03 +02 CEST 1 1944-10-02 02 +01 CET 1945-04-02 04 +02 EET 1979-04-01 00 +03 EEST 1 1979-10-01 00 +02 EET 1980-04-06 00 +03 EEST 1 1980-09-29 00 +02 EET 1981-04-05 00 +03 EEST 1 1981-09-27 01 +02 EET 1982-04-04 00 +03 EEST 1 1982-09-26 02 +02 EET 1983-03-27 03 +03 EEST 1 1983-09-25 02 +02 EET 1984-03-25 03 +03 EEST 1 1984-09-30 02 +02 EET 1985-03-31 03 +03 EEST 1 1985-09-29 02 +02 EET 1986-03-30 03 +03 EEST 1 1986-09-28 02 +02 EET 1987-03-29 03 +03 EEST 1 1987-09-27 02 +02 EET 1988-03-27 03 +03 EEST 1 1988-09-25 02 +02 EET 1989-03-26 03 +03 EEST 1 1989-09-24 02 +02 EET 1990-03-25 03 +03 EEST 1 1990-09-30 02 +02 EET 1991-03-31 01 +03 EEST 1 1991-09-28 23 +02 EET 1992-03-29 01 +03 EEST 1 1992-09-26 23 +02 EET 1993-03-28 01 +03 EEST 1 1993-09-25 23 +02 EET 1994-03-27 01 +03 EEST 1 1994-09-24 23 +02 EET 1995-03-26 01 +03 EEST 1 1995-09-23 23 +02 EET 1996-03-31 01 +03 EEST 1 1996-10-26 23 +02 EET 1997-03-30 04 +03 EEST 1 1997-10-26 03 +02 EET 1998-03-29 04 +03 EEST 1 1998-10-25 03 +02 EET 1999-03-28 04 +03 EEST 1 1999-10-31 03 +02 EET 2000-03-26 04 +03 EEST 1 2000-10-29 03 +02 EET 2001-03-25 04 +03 EEST 1 2001-10-28 03 +02 EET 2002-03-31 04 +03 EEST 1 2002-10-27 03 +02 EET 2003-03-30 04 +03 EEST 1 2003-10-26 03 +02 EET 2004-03-28 04 +03 EEST 1 2004-10-31 03 +02 EET 2005-03-27 04 +03 EEST 1 2005-10-30 03 +02 EET 2006-03-26 04 +03 EEST 1 2006-10-29 03 +02 EET 2007-03-25 04 +03 EEST 1 2007-10-28 03 +02 EET 2008-03-30 04 +03 EEST 1 2008-10-26 03 +02 EET 2009-03-29 04 +03 EEST 1 2009-10-25 03 +02 EET 2010-03-28 04 +03 EEST 1 2010-10-31 03 +02 EET 2011-03-27 04 +03 EEST 1 2011-10-30 03 +02 EET 2012-03-25 04 +03 EEST 1 2012-10-28 03 +02 EET 2013-03-31 04 +03 EEST 1 2013-10-27 03 +02 EET 2014-03-30 04 +03 EEST 1 2014-10-26 03 +02 EET 2015-03-29 04 +03 EEST 1 2015-10-25 03 +02 EET 2016-03-27 04 +03 EEST 1 2016-10-30 03 +02 EET 2017-03-26 04 +03 EEST 1 2017-10-29 03 +02 EET 2018-03-25 04 +03 EEST 1 2018-10-28 03 +02 EET 2019-03-31 04 +03 EEST 1 2019-10-27 03 +02 EET 2020-03-29 04 +03 EEST 1 2020-10-25 03 +02 EET 2021-03-28 04 +03 EEST 1 2021-10-31 03 +02 EET 2022-03-27 04 +03 EEST 1 2022-10-30 03 +02 EET 2023-03-26 04 +03 EEST 1 2023-10-29 03 +02 EET 2024-03-31 04 +03 EEST 1 2024-10-27 03 +02 EET 2025-03-30 04 +03 EEST 1 2025-10-26 03 +02 EET 2026-03-29 04 +03 EEST 1 2026-10-25 03 +02 EET 2027-03-28 04 +03 EEST 1 2027-10-31 03 +02 EET 2028-03-26 04 +03 EEST 1 2028-10-29 03 +02 EET 2029-03-25 04 +03 EEST 1 2029-10-28 03 +02 EET 2030-03-31 04 +03 EEST 1 2030-10-27 03 +02 EET 2031-03-30 04 +03 EEST 1 2031-10-26 03 +02 EET 2032-03-28 04 +03 EEST 1 2032-10-31 03 +02 EET 2033-03-27 04 +03 EEST 1 2033-10-30 03 +02 EET 2034-03-26 04 +03 EEST 1 2034-10-29 03 +02 EET 2035-03-25 04 +03 EEST 1 2035-10-28 03 +02 EET 2036-03-30 04 +03 EEST 1 2036-10-26 03 +02 EET 2037-03-29 04 +03 EEST 1 2037-10-25 03 +02 EET 2038-03-28 04 +03 EEST 1 2038-10-31 03 +02 EET 2039-03-27 04 +03 EEST 1 2039-10-30 03 +02 EET 2040-03-25 04 +03 EEST 1 2040-10-28 03 +02 EET 2041-03-31 04 +03 EEST 1 2041-10-27 03 +02 EET 2042-03-30 04 +03 EEST 1 2042-10-26 03 +02 EET 2043-03-29 04 +03 EEST 1 2043-10-25 03 +02 EET 2044-03-27 04 +03 EEST 1 2044-10-30 03 +02 EET 2045-03-26 04 +03 EEST 1 2045-10-29 03 +02 EET 2046-03-25 04 +03 EEST 1 2046-10-28 03 +02 EET 2047-03-31 04 +03 EEST 1 2047-10-27 03 +02 EET 2048-03-29 04 +03 EEST 1 2048-10-25 03 +02 EET 2049-03-28 04 +03 EEST 1 2049-10-31 03 +02 EET TZ="Europe/Stockholm" - - +011212 LMT 1878-12-31 23:48:02 +010014 SET 1899-12-31 23:59:46 +01 CET 1916-05-15 00 +02 CEST 1 1916-10-01 00 +01 CET 1980-04-06 03 +02 CEST 1 1980-09-28 02 +01 CET 1981-03-29 03 +02 CEST 1 1981-09-27 02 +01 CET 1982-03-28 03 +02 CEST 1 1982-09-26 02 +01 CET 1983-03-27 03 +02 CEST 1 1983-09-25 02 +01 CET 1984-03-25 03 +02 CEST 1 1984-09-30 02 +01 CET 1985-03-31 03 +02 CEST 1 1985-09-29 02 +01 CET 1986-03-30 03 +02 CEST 1 1986-09-28 02 +01 CET 1987-03-29 03 +02 CEST 1 1987-09-27 02 +01 CET 1988-03-27 03 +02 CEST 1 1988-09-25 02 +01 CET 1989-03-26 03 +02 CEST 1 1989-09-24 02 +01 CET 1990-03-25 03 +02 CEST 1 1990-09-30 02 +01 CET 1991-03-31 03 +02 CEST 1 1991-09-29 02 +01 CET 1992-03-29 03 +02 CEST 1 1992-09-27 02 +01 CET 1993-03-28 03 +02 CEST 1 1993-09-26 02 +01 CET 1994-03-27 03 +02 CEST 1 1994-09-25 02 +01 CET 1995-03-26 03 +02 CEST 1 1995-09-24 02 +01 CET 1996-03-31 03 +02 CEST 1 1996-10-27 02 +01 CET 1997-03-30 03 +02 CEST 1 1997-10-26 02 +01 CET 1998-03-29 03 +02 CEST 1 1998-10-25 02 +01 CET 1999-03-28 03 +02 CEST 1 1999-10-31 02 +01 CET 2000-03-26 03 +02 CEST 1 2000-10-29 02 +01 CET 2001-03-25 03 +02 CEST 1 2001-10-28 02 +01 CET 2002-03-31 03 +02 CEST 1 2002-10-27 02 +01 CET 2003-03-30 03 +02 CEST 1 2003-10-26 02 +01 CET 2004-03-28 03 +02 CEST 1 2004-10-31 02 +01 CET 2005-03-27 03 +02 CEST 1 2005-10-30 02 +01 CET 2006-03-26 03 +02 CEST 1 2006-10-29 02 +01 CET 2007-03-25 03 +02 CEST 1 2007-10-28 02 +01 CET 2008-03-30 03 +02 CEST 1 2008-10-26 02 +01 CET 2009-03-29 03 +02 CEST 1 2009-10-25 02 +01 CET 2010-03-28 03 +02 CEST 1 2010-10-31 02 +01 CET 2011-03-27 03 +02 CEST 1 2011-10-30 02 +01 CET 2012-03-25 03 +02 CEST 1 2012-10-28 02 +01 CET 2013-03-31 03 +02 CEST 1 2013-10-27 02 +01 CET 2014-03-30 03 +02 CEST 1 2014-10-26 02 +01 CET 2015-03-29 03 +02 CEST 1 2015-10-25 02 +01 CET 2016-03-27 03 +02 CEST 1 2016-10-30 02 +01 CET 2017-03-26 03 +02 CEST 1 2017-10-29 02 +01 CET 2018-03-25 03 +02 CEST 1 2018-10-28 02 +01 CET 2019-03-31 03 +02 CEST 1 2019-10-27 02 +01 CET 2020-03-29 03 +02 CEST 1 2020-10-25 02 +01 CET 2021-03-28 03 +02 CEST 1 2021-10-31 02 +01 CET 2022-03-27 03 +02 CEST 1 2022-10-30 02 +01 CET 2023-03-26 03 +02 CEST 1 2023-10-29 02 +01 CET 2024-03-31 03 +02 CEST 1 2024-10-27 02 +01 CET 2025-03-30 03 +02 CEST 1 2025-10-26 02 +01 CET 2026-03-29 03 +02 CEST 1 2026-10-25 02 +01 CET 2027-03-28 03 +02 CEST 1 2027-10-31 02 +01 CET 2028-03-26 03 +02 CEST 1 2028-10-29 02 +01 CET 2029-03-25 03 +02 CEST 1 2029-10-28 02 +01 CET 2030-03-31 03 +02 CEST 1 2030-10-27 02 +01 CET 2031-03-30 03 +02 CEST 1 2031-10-26 02 +01 CET 2032-03-28 03 +02 CEST 1 2032-10-31 02 +01 CET 2033-03-27 03 +02 CEST 1 2033-10-30 02 +01 CET 2034-03-26 03 +02 CEST 1 2034-10-29 02 +01 CET 2035-03-25 03 +02 CEST 1 2035-10-28 02 +01 CET 2036-03-30 03 +02 CEST 1 2036-10-26 02 +01 CET 2037-03-29 03 +02 CEST 1 2037-10-25 02 +01 CET 2038-03-28 03 +02 CEST 1 2038-10-31 02 +01 CET 2039-03-27 03 +02 CEST 1 2039-10-30 02 +01 CET 2040-03-25 03 +02 CEST 1 2040-10-28 02 +01 CET 2041-03-31 03 +02 CEST 1 2041-10-27 02 +01 CET 2042-03-30 03 +02 CEST 1 2042-10-26 02 +01 CET 2043-03-29 03 +02 CEST 1 2043-10-25 02 +01 CET 2044-03-27 03 +02 CEST 1 2044-10-30 02 +01 CET 2045-03-26 03 +02 CEST 1 2045-10-29 02 +01 CET 2046-03-25 03 +02 CEST 1 2046-10-28 02 +01 CET 2047-03-31 03 +02 CEST 1 2047-10-27 02 +01 CET 2048-03-29 03 +02 CEST 1 2048-10-25 02 +01 CET 2049-03-28 03 +02 CEST 1 2049-10-31 02 +01 CET TZ="Europe/Tallinn" - - +0139 LMT 1880-01-01 00 +0139 TMT 1918-01-31 23:21 +01 CET 1918-04-15 03 +02 CEST 1 1918-09-16 02 +01 CET 1919-07-01 00:39 +0139 TMT 1921-05-01 00:21 +02 EET 1940-08-06 01 +03 MSK 1941-09-14 23 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1944-04-03 03 +02 CEST 1 1944-09-22 01 +03 MSK 1981-04-01 01 +04 MSD 1 1981-09-30 23 +03 MSK 1982-04-01 01 +04 MSD 1 1982-09-30 23 +03 MSK 1983-04-01 01 +04 MSD 1 1983-09-30 23 +03 MSK 1984-04-01 01 +04 MSD 1 1984-09-30 02 +03 MSK 1985-03-31 03 +04 MSD 1 1985-09-29 02 +03 MSK 1986-03-30 03 +04 MSD 1 1986-09-28 02 +03 MSK 1987-03-29 03 +04 MSD 1 1987-09-27 02 +03 MSK 1988-03-27 03 +04 MSD 1 1988-09-25 02 +03 MSK 1989-03-26 02 +03 EEST 1 1989-09-24 02 +02 EET 1990-03-25 03 +03 EEST 1 1990-09-30 02 +02 EET 1991-03-31 03 +03 EEST 1 1991-09-29 02 +02 EET 1992-03-29 03 +03 EEST 1 1992-09-27 02 +02 EET 1993-03-28 03 +03 EEST 1 1993-09-26 02 +02 EET 1994-03-27 03 +03 EEST 1 1994-09-25 02 +02 EET 1995-03-26 03 +03 EEST 1 1995-09-24 02 +02 EET 1996-03-31 03 +03 EEST 1 1996-10-27 02 +02 EET 1997-03-30 03 +03 EEST 1 1997-10-26 02 +02 EET 1998-03-29 03 +03 EEST 1 1998-10-25 03 +02 EET 1999-03-28 04 +03 EEST 1 1999-10-31 03 +02 EET 2002-03-31 04 +03 EEST 1 2002-10-27 03 +02 EET 2003-03-30 04 +03 EEST 1 2003-10-26 03 +02 EET 2004-03-28 04 +03 EEST 1 2004-10-31 03 +02 EET 2005-03-27 04 +03 EEST 1 2005-10-30 03 +02 EET 2006-03-26 04 +03 EEST 1 2006-10-29 03 +02 EET 2007-03-25 04 +03 EEST 1 2007-10-28 03 +02 EET 2008-03-30 04 +03 EEST 1 2008-10-26 03 +02 EET 2009-03-29 04 +03 EEST 1 2009-10-25 03 +02 EET 2010-03-28 04 +03 EEST 1 2010-10-31 03 +02 EET 2011-03-27 04 +03 EEST 1 2011-10-30 03 +02 EET 2012-03-25 04 +03 EEST 1 2012-10-28 03 +02 EET 2013-03-31 04 +03 EEST 1 2013-10-27 03 +02 EET 2014-03-30 04 +03 EEST 1 2014-10-26 03 +02 EET 2015-03-29 04 +03 EEST 1 2015-10-25 03 +02 EET 2016-03-27 04 +03 EEST 1 2016-10-30 03 +02 EET 2017-03-26 04 +03 EEST 1 2017-10-29 03 +02 EET 2018-03-25 04 +03 EEST 1 2018-10-28 03 +02 EET 2019-03-31 04 +03 EEST 1 2019-10-27 03 +02 EET 2020-03-29 04 +03 EEST 1 2020-10-25 03 +02 EET 2021-03-28 04 +03 EEST 1 2021-10-31 03 +02 EET 2022-03-27 04 +03 EEST 1 2022-10-30 03 +02 EET 2023-03-26 04 +03 EEST 1 2023-10-29 03 +02 EET 2024-03-31 04 +03 EEST 1 2024-10-27 03 +02 EET 2025-03-30 04 +03 EEST 1 2025-10-26 03 +02 EET 2026-03-29 04 +03 EEST 1 2026-10-25 03 +02 EET 2027-03-28 04 +03 EEST 1 2027-10-31 03 +02 EET 2028-03-26 04 +03 EEST 1 2028-10-29 03 +02 EET 2029-03-25 04 +03 EEST 1 2029-10-28 03 +02 EET 2030-03-31 04 +03 EEST 1 2030-10-27 03 +02 EET 2031-03-30 04 +03 EEST 1 2031-10-26 03 +02 EET 2032-03-28 04 +03 EEST 1 2032-10-31 03 +02 EET 2033-03-27 04 +03 EEST 1 2033-10-30 03 +02 EET 2034-03-26 04 +03 EEST 1 2034-10-29 03 +02 EET 2035-03-25 04 +03 EEST 1 2035-10-28 03 +02 EET 2036-03-30 04 +03 EEST 1 2036-10-26 03 +02 EET 2037-03-29 04 +03 EEST 1 2037-10-25 03 +02 EET 2038-03-28 04 +03 EEST 1 2038-10-31 03 +02 EET 2039-03-27 04 +03 EEST 1 2039-10-30 03 +02 EET 2040-03-25 04 +03 EEST 1 2040-10-28 03 +02 EET 2041-03-31 04 +03 EEST 1 2041-10-27 03 +02 EET 2042-03-30 04 +03 EEST 1 2042-10-26 03 +02 EET 2043-03-29 04 +03 EEST 1 2043-10-25 03 +02 EET 2044-03-27 04 +03 EEST 1 2044-10-30 03 +02 EET 2045-03-26 04 +03 EEST 1 2045-10-29 03 +02 EET 2046-03-25 04 +03 EEST 1 2046-10-28 03 +02 EET 2047-03-31 04 +03 EEST 1 2047-10-27 03 +02 EET 2048-03-29 04 +03 EEST 1 2048-10-25 03 +02 EET 2049-03-28 04 +03 EEST 1 2049-10-31 03 +02 EET TZ="Europe/Tirane" - - +011920 LMT 1913-12-31 23:40:40 +01 CET 1940-06-16 01 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-04-10 02 +01 CET 1974-05-04 01 +02 CEST 1 1974-10-01 23 +01 CET 1975-05-01 01 +02 CEST 1 1975-10-01 23 +01 CET 1976-05-02 01 +02 CEST 1 1976-10-02 23 +01 CET 1977-05-08 01 +02 CEST 1 1977-10-01 23 +01 CET 1978-05-06 01 +02 CEST 1 1978-09-30 23 +01 CET 1979-05-05 01 +02 CEST 1 1979-09-29 23 +01 CET 1980-05-03 01 +02 CEST 1 1980-10-03 23 +01 CET 1981-04-26 01 +02 CEST 1 1981-09-26 23 +01 CET 1982-05-02 01 +02 CEST 1 1982-10-02 23 +01 CET 1983-04-18 01 +02 CEST 1 1983-09-30 23 +01 CET 1984-04-01 01 +02 CEST 1 1984-09-30 02 +01 CET 1985-03-31 03 +02 CEST 1 1985-09-29 02 +01 CET 1986-03-30 03 +02 CEST 1 1986-09-28 02 +01 CET 1987-03-29 03 +02 CEST 1 1987-09-27 02 +01 CET 1988-03-27 03 +02 CEST 1 1988-09-25 02 +01 CET 1989-03-26 03 +02 CEST 1 1989-09-24 02 +01 CET 1990-03-25 03 +02 CEST 1 1990-09-30 02 +01 CET 1991-03-31 03 +02 CEST 1 1991-09-29 02 +01 CET 1992-03-29 03 +02 CEST 1 1992-09-27 02 +01 CET 1993-03-28 03 +02 CEST 1 1993-09-26 02 +01 CET 1994-03-27 03 +02 CEST 1 1994-09-25 02 +01 CET 1995-03-26 03 +02 CEST 1 1995-09-24 02 +01 CET 1996-03-31 03 +02 CEST 1 1996-10-27 02 +01 CET 1997-03-30 03 +02 CEST 1 1997-10-26 02 +01 CET 1998-03-29 03 +02 CEST 1 1998-10-25 02 +01 CET 1999-03-28 03 +02 CEST 1 1999-10-31 02 +01 CET 2000-03-26 03 +02 CEST 1 2000-10-29 02 +01 CET 2001-03-25 03 +02 CEST 1 2001-10-28 02 +01 CET 2002-03-31 03 +02 CEST 1 2002-10-27 02 +01 CET 2003-03-30 03 +02 CEST 1 2003-10-26 02 +01 CET 2004-03-28 03 +02 CEST 1 2004-10-31 02 +01 CET 2005-03-27 03 +02 CEST 1 2005-10-30 02 +01 CET 2006-03-26 03 +02 CEST 1 2006-10-29 02 +01 CET 2007-03-25 03 +02 CEST 1 2007-10-28 02 +01 CET 2008-03-30 03 +02 CEST 1 2008-10-26 02 +01 CET 2009-03-29 03 +02 CEST 1 2009-10-25 02 +01 CET 2010-03-28 03 +02 CEST 1 2010-10-31 02 +01 CET 2011-03-27 03 +02 CEST 1 2011-10-30 02 +01 CET 2012-03-25 03 +02 CEST 1 2012-10-28 02 +01 CET 2013-03-31 03 +02 CEST 1 2013-10-27 02 +01 CET 2014-03-30 03 +02 CEST 1 2014-10-26 02 +01 CET 2015-03-29 03 +02 CEST 1 2015-10-25 02 +01 CET 2016-03-27 03 +02 CEST 1 2016-10-30 02 +01 CET 2017-03-26 03 +02 CEST 1 2017-10-29 02 +01 CET 2018-03-25 03 +02 CEST 1 2018-10-28 02 +01 CET 2019-03-31 03 +02 CEST 1 2019-10-27 02 +01 CET 2020-03-29 03 +02 CEST 1 2020-10-25 02 +01 CET 2021-03-28 03 +02 CEST 1 2021-10-31 02 +01 CET 2022-03-27 03 +02 CEST 1 2022-10-30 02 +01 CET 2023-03-26 03 +02 CEST 1 2023-10-29 02 +01 CET 2024-03-31 03 +02 CEST 1 2024-10-27 02 +01 CET 2025-03-30 03 +02 CEST 1 2025-10-26 02 +01 CET 2026-03-29 03 +02 CEST 1 2026-10-25 02 +01 CET 2027-03-28 03 +02 CEST 1 2027-10-31 02 +01 CET 2028-03-26 03 +02 CEST 1 2028-10-29 02 +01 CET 2029-03-25 03 +02 CEST 1 2029-10-28 02 +01 CET 2030-03-31 03 +02 CEST 1 2030-10-27 02 +01 CET 2031-03-30 03 +02 CEST 1 2031-10-26 02 +01 CET 2032-03-28 03 +02 CEST 1 2032-10-31 02 +01 CET 2033-03-27 03 +02 CEST 1 2033-10-30 02 +01 CET 2034-03-26 03 +02 CEST 1 2034-10-29 02 +01 CET 2035-03-25 03 +02 CEST 1 2035-10-28 02 +01 CET 2036-03-30 03 +02 CEST 1 2036-10-26 02 +01 CET 2037-03-29 03 +02 CEST 1 2037-10-25 02 +01 CET 2038-03-28 03 +02 CEST 1 2038-10-31 02 +01 CET 2039-03-27 03 +02 CEST 1 2039-10-30 02 +01 CET 2040-03-25 03 +02 CEST 1 2040-10-28 02 +01 CET 2041-03-31 03 +02 CEST 1 2041-10-27 02 +01 CET 2042-03-30 03 +02 CEST 1 2042-10-26 02 +01 CET 2043-03-29 03 +02 CEST 1 2043-10-25 02 +01 CET 2044-03-27 03 +02 CEST 1 2044-10-30 02 +01 CET 2045-03-26 03 +02 CEST 1 2045-10-29 02 +01 CET 2046-03-25 03 +02 CEST 1 2046-10-28 02 +01 CET 2047-03-31 03 +02 CEST 1 2047-10-27 02 +01 CET 2048-03-29 03 +02 CEST 1 2048-10-25 02 +01 CET 2049-03-28 03 +02 CEST 1 2049-10-31 02 +01 CET TZ="Europe/Ulyanovsk" - - +031336 LMT 1919-07-01 03 +03 1930-06-21 01 +04 1981-04-01 01 +05 1 1981-09-30 23 +04 1982-04-01 01 +05 1 1982-09-30 23 +04 1983-04-01 01 +05 1 1983-09-30 23 +04 1984-04-01 01 +05 1 1984-09-30 02 +04 1985-03-31 03 +05 1 1985-09-29 02 +04 1986-03-30 03 +05 1 1986-09-28 02 +04 1987-03-29 03 +05 1 1987-09-27 02 +04 1988-03-27 03 +05 1 1988-09-25 02 +04 1989-03-26 02 +04 1 1989-09-24 02 +03 1990-03-25 03 +04 1 1990-09-30 02 +03 1991-03-31 02 +03 1 1991-09-29 02 +02 1992-01-19 03 +03 1992-03-29 03 +04 1 1992-09-27 02 +03 1993-03-28 03 +04 1 1993-09-26 02 +03 1994-03-27 03 +04 1 1994-09-25 02 +03 1995-03-26 03 +04 1 1995-09-24 02 +03 1996-03-31 03 +04 1 1996-10-27 02 +03 1997-03-30 03 +04 1 1997-10-26 02 +03 1998-03-29 03 +04 1 1998-10-25 02 +03 1999-03-28 03 +04 1 1999-10-31 02 +03 2000-03-26 03 +04 1 2000-10-29 02 +03 2001-03-25 03 +04 1 2001-10-28 02 +03 2002-03-31 03 +04 1 2002-10-27 02 +03 2003-03-30 03 +04 1 2003-10-26 02 +03 2004-03-28 03 +04 1 2004-10-31 02 +03 2005-03-27 03 +04 1 2005-10-30 02 +03 2006-03-26 03 +04 1 2006-10-29 02 +03 2007-03-25 03 +04 1 2007-10-28 02 +03 2008-03-30 03 +04 1 2008-10-26 02 +03 2009-03-29 03 +04 1 2009-10-25 02 +03 2010-03-28 03 +04 1 2010-10-31 02 +03 2011-03-27 03 +04 2014-10-26 01 +03 2016-03-27 03 +04 TZ="Europe/Uzhgorod" - - +012912 LMT 1890-09-30 23:30:48 +01 CET 1940-04-01 03 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1944-04-03 03 +02 CEST 1 1944-10-25 23 +01 CET 1945-06-29 02 +03 MSK 1981-04-01 01 +04 MSD 1 1981-09-30 23 +03 MSK 1982-04-01 01 +04 MSD 1 1982-09-30 23 +03 MSK 1983-04-01 01 +04 MSD 1 1983-09-30 23 +03 MSK 1984-04-01 01 +04 MSD 1 1984-09-30 02 +03 MSK 1985-03-31 03 +04 MSD 1 1985-09-29 02 +03 MSK 1986-03-30 03 +04 MSD 1 1986-09-28 02 +03 MSK 1987-03-29 03 +04 MSD 1 1987-09-27 02 +03 MSK 1988-03-27 03 +04 MSD 1 1988-09-25 02 +03 MSK 1989-03-26 03 +04 MSD 1 1989-09-24 02 +03 MSK 1990-07-01 00 +01 CET 1991-03-31 04 +02 EET 1992-03-29 01 +03 EEST 1 1992-09-26 23 +02 EET 1993-03-28 01 +03 EEST 1 1993-09-25 23 +02 EET 1994-03-27 01 +03 EEST 1 1994-09-24 23 +02 EET 1995-03-26 04 +03 EEST 1 1995-09-24 03 +02 EET 1996-03-31 04 +03 EEST 1 1996-10-27 03 +02 EET 1997-03-30 04 +03 EEST 1 1997-10-26 03 +02 EET 1998-03-29 04 +03 EEST 1 1998-10-25 03 +02 EET 1999-03-28 04 +03 EEST 1 1999-10-31 03 +02 EET 2000-03-26 04 +03 EEST 1 2000-10-29 03 +02 EET 2001-03-25 04 +03 EEST 1 2001-10-28 03 +02 EET 2002-03-31 04 +03 EEST 1 2002-10-27 03 +02 EET 2003-03-30 04 +03 EEST 1 2003-10-26 03 +02 EET 2004-03-28 04 +03 EEST 1 2004-10-31 03 +02 EET 2005-03-27 04 +03 EEST 1 2005-10-30 03 +02 EET 2006-03-26 04 +03 EEST 1 2006-10-29 03 +02 EET 2007-03-25 04 +03 EEST 1 2007-10-28 03 +02 EET 2008-03-30 04 +03 EEST 1 2008-10-26 03 +02 EET 2009-03-29 04 +03 EEST 1 2009-10-25 03 +02 EET 2010-03-28 04 +03 EEST 1 2010-10-31 03 +02 EET 2011-03-27 04 +03 EEST 1 2011-10-30 03 +02 EET 2012-03-25 04 +03 EEST 1 2012-10-28 03 +02 EET 2013-03-31 04 +03 EEST 1 2013-10-27 03 +02 EET 2014-03-30 04 +03 EEST 1 2014-10-26 03 +02 EET 2015-03-29 04 +03 EEST 1 2015-10-25 03 +02 EET 2016-03-27 04 +03 EEST 1 2016-10-30 03 +02 EET 2017-03-26 04 +03 EEST 1 2017-10-29 03 +02 EET 2018-03-25 04 +03 EEST 1 2018-10-28 03 +02 EET 2019-03-31 04 +03 EEST 1 2019-10-27 03 +02 EET 2020-03-29 04 +03 EEST 1 2020-10-25 03 +02 EET 2021-03-28 04 +03 EEST 1 2021-10-31 03 +02 EET 2022-03-27 04 +03 EEST 1 2022-10-30 03 +02 EET 2023-03-26 04 +03 EEST 1 2023-10-29 03 +02 EET 2024-03-31 04 +03 EEST 1 2024-10-27 03 +02 EET 2025-03-30 04 +03 EEST 1 2025-10-26 03 +02 EET 2026-03-29 04 +03 EEST 1 2026-10-25 03 +02 EET 2027-03-28 04 +03 EEST 1 2027-10-31 03 +02 EET 2028-03-26 04 +03 EEST 1 2028-10-29 03 +02 EET 2029-03-25 04 +03 EEST 1 2029-10-28 03 +02 EET 2030-03-31 04 +03 EEST 1 2030-10-27 03 +02 EET 2031-03-30 04 +03 EEST 1 2031-10-26 03 +02 EET 2032-03-28 04 +03 EEST 1 2032-10-31 03 +02 EET 2033-03-27 04 +03 EEST 1 2033-10-30 03 +02 EET 2034-03-26 04 +03 EEST 1 2034-10-29 03 +02 EET 2035-03-25 04 +03 EEST 1 2035-10-28 03 +02 EET 2036-03-30 04 +03 EEST 1 2036-10-26 03 +02 EET 2037-03-29 04 +03 EEST 1 2037-10-25 03 +02 EET 2038-03-28 04 +03 EEST 1 2038-10-31 03 +02 EET 2039-03-27 04 +03 EEST 1 2039-10-30 03 +02 EET 2040-03-25 04 +03 EEST 1 2040-10-28 03 +02 EET 2041-03-31 04 +03 EEST 1 2041-10-27 03 +02 EET 2042-03-30 04 +03 EEST 1 2042-10-26 03 +02 EET 2043-03-29 04 +03 EEST 1 2043-10-25 03 +02 EET 2044-03-27 04 +03 EEST 1 2044-10-30 03 +02 EET 2045-03-26 04 +03 EEST 1 2045-10-29 03 +02 EET 2046-03-25 04 +03 EEST 1 2046-10-28 03 +02 EET 2047-03-31 04 +03 EEST 1 2047-10-27 03 +02 EET 2048-03-29 04 +03 EEST 1 2048-10-25 03 +02 EET 2049-03-28 04 +03 EEST 1 2049-10-31 03 +02 EET TZ="Europe/Vienna" - - +010521 LMT 1893-03-31 23:54:39 +01 CET 1916-05-01 00 +02 CEST 1 1916-10-01 00 +01 CET 1917-04-16 03 +02 CEST 1 1917-09-17 02 +01 CET 1918-04-15 03 +02 CEST 1 1918-09-16 02 +01 CET 1920-04-05 03 +02 CEST 1 1920-09-13 02 +01 CET 1940-04-01 03 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1944-04-03 03 +02 CEST 1 1944-10-02 02 +01 CET 1945-04-02 03 +02 CEST 1 1945-04-12 02 +01 CET 1946-04-14 03 +02 CEST 1 1946-10-07 02 +01 CET 1947-04-06 03 +02 CEST 1 1947-10-05 02 +01 CET 1948-04-18 03 +02 CEST 1 1948-10-03 02 +01 CET 1980-04-06 01 +02 CEST 1 1980-09-27 23 +01 CET 1981-03-29 03 +02 CEST 1 1981-09-27 02 +01 CET 1982-03-28 03 +02 CEST 1 1982-09-26 02 +01 CET 1983-03-27 03 +02 CEST 1 1983-09-25 02 +01 CET 1984-03-25 03 +02 CEST 1 1984-09-30 02 +01 CET 1985-03-31 03 +02 CEST 1 1985-09-29 02 +01 CET 1986-03-30 03 +02 CEST 1 1986-09-28 02 +01 CET 1987-03-29 03 +02 CEST 1 1987-09-27 02 +01 CET 1988-03-27 03 +02 CEST 1 1988-09-25 02 +01 CET 1989-03-26 03 +02 CEST 1 1989-09-24 02 +01 CET 1990-03-25 03 +02 CEST 1 1990-09-30 02 +01 CET 1991-03-31 03 +02 CEST 1 1991-09-29 02 +01 CET 1992-03-29 03 +02 CEST 1 1992-09-27 02 +01 CET 1993-03-28 03 +02 CEST 1 1993-09-26 02 +01 CET 1994-03-27 03 +02 CEST 1 1994-09-25 02 +01 CET 1995-03-26 03 +02 CEST 1 1995-09-24 02 +01 CET 1996-03-31 03 +02 CEST 1 1996-10-27 02 +01 CET 1997-03-30 03 +02 CEST 1 1997-10-26 02 +01 CET 1998-03-29 03 +02 CEST 1 1998-10-25 02 +01 CET 1999-03-28 03 +02 CEST 1 1999-10-31 02 +01 CET 2000-03-26 03 +02 CEST 1 2000-10-29 02 +01 CET 2001-03-25 03 +02 CEST 1 2001-10-28 02 +01 CET 2002-03-31 03 +02 CEST 1 2002-10-27 02 +01 CET 2003-03-30 03 +02 CEST 1 2003-10-26 02 +01 CET 2004-03-28 03 +02 CEST 1 2004-10-31 02 +01 CET 2005-03-27 03 +02 CEST 1 2005-10-30 02 +01 CET 2006-03-26 03 +02 CEST 1 2006-10-29 02 +01 CET 2007-03-25 03 +02 CEST 1 2007-10-28 02 +01 CET 2008-03-30 03 +02 CEST 1 2008-10-26 02 +01 CET 2009-03-29 03 +02 CEST 1 2009-10-25 02 +01 CET 2010-03-28 03 +02 CEST 1 2010-10-31 02 +01 CET 2011-03-27 03 +02 CEST 1 2011-10-30 02 +01 CET 2012-03-25 03 +02 CEST 1 2012-10-28 02 +01 CET 2013-03-31 03 +02 CEST 1 2013-10-27 02 +01 CET 2014-03-30 03 +02 CEST 1 2014-10-26 02 +01 CET 2015-03-29 03 +02 CEST 1 2015-10-25 02 +01 CET 2016-03-27 03 +02 CEST 1 2016-10-30 02 +01 CET 2017-03-26 03 +02 CEST 1 2017-10-29 02 +01 CET 2018-03-25 03 +02 CEST 1 2018-10-28 02 +01 CET 2019-03-31 03 +02 CEST 1 2019-10-27 02 +01 CET 2020-03-29 03 +02 CEST 1 2020-10-25 02 +01 CET 2021-03-28 03 +02 CEST 1 2021-10-31 02 +01 CET 2022-03-27 03 +02 CEST 1 2022-10-30 02 +01 CET 2023-03-26 03 +02 CEST 1 2023-10-29 02 +01 CET 2024-03-31 03 +02 CEST 1 2024-10-27 02 +01 CET 2025-03-30 03 +02 CEST 1 2025-10-26 02 +01 CET 2026-03-29 03 +02 CEST 1 2026-10-25 02 +01 CET 2027-03-28 03 +02 CEST 1 2027-10-31 02 +01 CET 2028-03-26 03 +02 CEST 1 2028-10-29 02 +01 CET 2029-03-25 03 +02 CEST 1 2029-10-28 02 +01 CET 2030-03-31 03 +02 CEST 1 2030-10-27 02 +01 CET 2031-03-30 03 +02 CEST 1 2031-10-26 02 +01 CET 2032-03-28 03 +02 CEST 1 2032-10-31 02 +01 CET 2033-03-27 03 +02 CEST 1 2033-10-30 02 +01 CET 2034-03-26 03 +02 CEST 1 2034-10-29 02 +01 CET 2035-03-25 03 +02 CEST 1 2035-10-28 02 +01 CET 2036-03-30 03 +02 CEST 1 2036-10-26 02 +01 CET 2037-03-29 03 +02 CEST 1 2037-10-25 02 +01 CET 2038-03-28 03 +02 CEST 1 2038-10-31 02 +01 CET 2039-03-27 03 +02 CEST 1 2039-10-30 02 +01 CET 2040-03-25 03 +02 CEST 1 2040-10-28 02 +01 CET 2041-03-31 03 +02 CEST 1 2041-10-27 02 +01 CET 2042-03-30 03 +02 CEST 1 2042-10-26 02 +01 CET 2043-03-29 03 +02 CEST 1 2043-10-25 02 +01 CET 2044-03-27 03 +02 CEST 1 2044-10-30 02 +01 CET 2045-03-26 03 +02 CEST 1 2045-10-29 02 +01 CET 2046-03-25 03 +02 CEST 1 2046-10-28 02 +01 CET 2047-03-31 03 +02 CEST 1 2047-10-27 02 +01 CET 2048-03-29 03 +02 CEST 1 2048-10-25 02 +01 CET 2049-03-28 03 +02 CEST 1 2049-10-31 02 +01 CET TZ="Europe/Vilnius" - - +014116 LMT 1879-12-31 23:42:44 +0124 WMT 1917-01-01 00:11:36 +013536 KMT 1919-10-09 23:24:24 +01 CET 1920-07-12 01 +02 EET 1920-10-08 23 +01 CET 1940-08-03 02 +03 MSK 1941-06-23 23 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1944-04-03 03 +02 CEST 1 1944-08-01 01 +03 MSK 1981-04-01 01 +04 MSD 1 1981-09-30 23 +03 MSK 1982-04-01 01 +04 MSD 1 1982-09-30 23 +03 MSK 1983-04-01 01 +04 MSD 1 1983-09-30 23 +03 MSK 1984-04-01 01 +04 MSD 1 1984-09-30 02 +03 MSK 1985-03-31 03 +04 MSD 1 1985-09-29 02 +03 MSK 1986-03-30 03 +04 MSD 1 1986-09-28 02 +03 MSK 1987-03-29 03 +04 MSD 1 1987-09-27 02 +03 MSK 1988-03-27 03 +04 MSD 1 1988-09-25 02 +03 MSK 1989-03-26 02 +03 EEST 1 1989-09-24 02 +02 EET 1990-03-25 03 +03 EEST 1 1990-09-30 02 +02 EET 1991-03-31 03 +03 EEST 1 1991-09-29 02 +02 EET 1992-03-29 03 +03 EEST 1 1992-09-27 02 +02 EET 1993-03-28 03 +03 EEST 1 1993-09-26 02 +02 EET 1994-03-27 03 +03 EEST 1 1994-09-25 02 +02 EET 1995-03-26 03 +03 EEST 1 1995-09-24 02 +02 EET 1996-03-31 03 +03 EEST 1 1996-10-27 02 +02 EET 1997-03-30 03 +03 EEST 1 1997-10-26 02 +02 EET 1998-03-29 03 +02 CEST 1 1998-10-25 02 +01 CET 1999-03-28 03 +02 CEST 1 1999-10-31 03 +02 EET 2003-03-30 04 +03 EEST 1 2003-10-26 03 +02 EET 2004-03-28 04 +03 EEST 1 2004-10-31 03 +02 EET 2005-03-27 04 +03 EEST 1 2005-10-30 03 +02 EET 2006-03-26 04 +03 EEST 1 2006-10-29 03 +02 EET 2007-03-25 04 +03 EEST 1 2007-10-28 03 +02 EET 2008-03-30 04 +03 EEST 1 2008-10-26 03 +02 EET 2009-03-29 04 +03 EEST 1 2009-10-25 03 +02 EET 2010-03-28 04 +03 EEST 1 2010-10-31 03 +02 EET 2011-03-27 04 +03 EEST 1 2011-10-30 03 +02 EET 2012-03-25 04 +03 EEST 1 2012-10-28 03 +02 EET 2013-03-31 04 +03 EEST 1 2013-10-27 03 +02 EET 2014-03-30 04 +03 EEST 1 2014-10-26 03 +02 EET 2015-03-29 04 +03 EEST 1 2015-10-25 03 +02 EET 2016-03-27 04 +03 EEST 1 2016-10-30 03 +02 EET 2017-03-26 04 +03 EEST 1 2017-10-29 03 +02 EET 2018-03-25 04 +03 EEST 1 2018-10-28 03 +02 EET 2019-03-31 04 +03 EEST 1 2019-10-27 03 +02 EET 2020-03-29 04 +03 EEST 1 2020-10-25 03 +02 EET 2021-03-28 04 +03 EEST 1 2021-10-31 03 +02 EET 2022-03-27 04 +03 EEST 1 2022-10-30 03 +02 EET 2023-03-26 04 +03 EEST 1 2023-10-29 03 +02 EET 2024-03-31 04 +03 EEST 1 2024-10-27 03 +02 EET 2025-03-30 04 +03 EEST 1 2025-10-26 03 +02 EET 2026-03-29 04 +03 EEST 1 2026-10-25 03 +02 EET 2027-03-28 04 +03 EEST 1 2027-10-31 03 +02 EET 2028-03-26 04 +03 EEST 1 2028-10-29 03 +02 EET 2029-03-25 04 +03 EEST 1 2029-10-28 03 +02 EET 2030-03-31 04 +03 EEST 1 2030-10-27 03 +02 EET 2031-03-30 04 +03 EEST 1 2031-10-26 03 +02 EET 2032-03-28 04 +03 EEST 1 2032-10-31 03 +02 EET 2033-03-27 04 +03 EEST 1 2033-10-30 03 +02 EET 2034-03-26 04 +03 EEST 1 2034-10-29 03 +02 EET 2035-03-25 04 +03 EEST 1 2035-10-28 03 +02 EET 2036-03-30 04 +03 EEST 1 2036-10-26 03 +02 EET 2037-03-29 04 +03 EEST 1 2037-10-25 03 +02 EET 2038-03-28 04 +03 EEST 1 2038-10-31 03 +02 EET 2039-03-27 04 +03 EEST 1 2039-10-30 03 +02 EET 2040-03-25 04 +03 EEST 1 2040-10-28 03 +02 EET 2041-03-31 04 +03 EEST 1 2041-10-27 03 +02 EET 2042-03-30 04 +03 EEST 1 2042-10-26 03 +02 EET 2043-03-29 04 +03 EEST 1 2043-10-25 03 +02 EET 2044-03-27 04 +03 EEST 1 2044-10-30 03 +02 EET 2045-03-26 04 +03 EEST 1 2045-10-29 03 +02 EET 2046-03-25 04 +03 EEST 1 2046-10-28 03 +02 EET 2047-03-31 04 +03 EEST 1 2047-10-27 03 +02 EET 2048-03-29 04 +03 EEST 1 2048-10-25 03 +02 EET 2049-03-28 04 +03 EEST 1 2049-10-31 03 +02 EET TZ="Europe/Volgograd" - - +025740 LMT 1920-01-03 00:02:20 +03 1930-06-21 01 +04 1981-04-01 01 +05 1 1981-09-30 23 +04 1982-04-01 01 +05 1 1982-09-30 23 +04 1983-04-01 01 +05 1 1983-09-30 23 +04 1984-04-01 01 +05 1 1984-09-30 02 +04 1985-03-31 03 +05 1 1985-09-29 02 +04 1986-03-30 03 +05 1 1986-09-28 02 +04 1987-03-29 03 +05 1 1987-09-27 02 +04 1988-03-27 02 +04 1 1988-09-25 02 +03 1989-03-26 03 +04 1 1989-09-24 02 +03 1990-03-25 03 +04 1 1990-09-30 02 +03 1991-03-31 03 +04 1992-03-29 02 +04 1 1992-09-27 02 +03 1993-03-28 03 +04 1 1993-09-26 02 +03 1994-03-27 03 +04 1 1994-09-25 02 +03 1995-03-26 03 +04 1 1995-09-24 02 +03 1996-03-31 03 +04 1 1996-10-27 02 +03 1997-03-30 03 +04 1 1997-10-26 02 +03 1998-03-29 03 +04 1 1998-10-25 02 +03 1999-03-28 03 +04 1 1999-10-31 02 +03 2000-03-26 03 +04 1 2000-10-29 02 +03 2001-03-25 03 +04 1 2001-10-28 02 +03 2002-03-31 03 +04 1 2002-10-27 02 +03 2003-03-30 03 +04 1 2003-10-26 02 +03 2004-03-28 03 +04 1 2004-10-31 02 +03 2005-03-27 03 +04 1 2005-10-30 02 +03 2006-03-26 03 +04 1 2006-10-29 02 +03 2007-03-25 03 +04 1 2007-10-28 02 +03 2008-03-30 03 +04 1 2008-10-26 02 +03 2009-03-29 03 +04 1 2009-10-25 02 +03 2010-03-28 03 +04 1 2010-10-31 02 +03 2011-03-27 03 +04 2014-10-26 01 +03 2018-10-28 03 +04 TZ="Europe/Warsaw" - - +0124 LMT 1880-01-01 00 +0124 WMT 1915-08-04 23:36 +01 CET 1916-05-01 00 +02 CEST 1 1916-10-01 00 +01 CET 1917-04-16 03 +02 CEST 1 1917-09-17 02 +01 CET 1918-04-15 03 +02 CEST 1 1918-09-16 03 +02 EET 1919-04-15 03 +03 EEST 1 1919-09-16 02 +02 EET 1922-05-31 23 +01 CET 1940-06-23 03 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1944-04-03 03 +02 CEST 1 1944-10-04 01 +01 CET 1945-04-29 01 +02 CEST 1 1945-10-31 23 +01 CET 1946-04-14 01 +02 CEST 1 1946-10-07 02 +01 CET 1947-05-04 03 +02 CEST 1 1947-10-05 02 +01 CET 1948-04-18 03 +02 CEST 1 1948-10-03 02 +01 CET 1949-04-10 03 +02 CEST 1 1949-10-02 02 +01 CET 1957-06-02 02 +02 CEST 1 1957-09-29 01 +01 CET 1958-03-30 02 +02 CEST 1 1958-09-28 01 +01 CET 1959-05-31 02 +02 CEST 1 1959-10-04 01 +01 CET 1960-04-03 02 +02 CEST 1 1960-10-02 01 +01 CET 1961-05-28 02 +02 CEST 1 1961-10-01 01 +01 CET 1962-05-27 02 +02 CEST 1 1962-09-30 01 +01 CET 1963-05-26 02 +02 CEST 1 1963-09-29 01 +01 CET 1964-05-31 02 +02 CEST 1 1964-09-27 01 +01 CET 1977-04-03 02 +02 CEST 1 1977-09-25 01 +01 CET 1978-04-02 02 +02 CEST 1 1978-10-01 01 +01 CET 1979-04-01 02 +02 CEST 1 1979-09-30 01 +01 CET 1980-04-06 02 +02 CEST 1 1980-09-28 01 +01 CET 1981-03-29 02 +02 CEST 1 1981-09-27 01 +01 CET 1982-03-28 02 +02 CEST 1 1982-09-26 01 +01 CET 1983-03-27 02 +02 CEST 1 1983-09-25 01 +01 CET 1984-03-25 02 +02 CEST 1 1984-09-30 01 +01 CET 1985-03-31 02 +02 CEST 1 1985-09-29 01 +01 CET 1986-03-30 02 +02 CEST 1 1986-09-28 01 +01 CET 1987-03-29 02 +02 CEST 1 1987-09-27 01 +01 CET 1988-03-27 03 +02 CEST 1 1988-09-25 02 +01 CET 1989-03-26 03 +02 CEST 1 1989-09-24 02 +01 CET 1990-03-25 03 +02 CEST 1 1990-09-30 02 +01 CET 1991-03-31 03 +02 CEST 1 1991-09-29 02 +01 CET 1992-03-29 03 +02 CEST 1 1992-09-27 02 +01 CET 1993-03-28 03 +02 CEST 1 1993-09-26 02 +01 CET 1994-03-27 03 +02 CEST 1 1994-09-25 02 +01 CET 1995-03-26 03 +02 CEST 1 1995-09-24 02 +01 CET 1996-03-31 03 +02 CEST 1 1996-10-27 02 +01 CET 1997-03-30 03 +02 CEST 1 1997-10-26 02 +01 CET 1998-03-29 03 +02 CEST 1 1998-10-25 02 +01 CET 1999-03-28 03 +02 CEST 1 1999-10-31 02 +01 CET 2000-03-26 03 +02 CEST 1 2000-10-29 02 +01 CET 2001-03-25 03 +02 CEST 1 2001-10-28 02 +01 CET 2002-03-31 03 +02 CEST 1 2002-10-27 02 +01 CET 2003-03-30 03 +02 CEST 1 2003-10-26 02 +01 CET 2004-03-28 03 +02 CEST 1 2004-10-31 02 +01 CET 2005-03-27 03 +02 CEST 1 2005-10-30 02 +01 CET 2006-03-26 03 +02 CEST 1 2006-10-29 02 +01 CET 2007-03-25 03 +02 CEST 1 2007-10-28 02 +01 CET 2008-03-30 03 +02 CEST 1 2008-10-26 02 +01 CET 2009-03-29 03 +02 CEST 1 2009-10-25 02 +01 CET 2010-03-28 03 +02 CEST 1 2010-10-31 02 +01 CET 2011-03-27 03 +02 CEST 1 2011-10-30 02 +01 CET 2012-03-25 03 +02 CEST 1 2012-10-28 02 +01 CET 2013-03-31 03 +02 CEST 1 2013-10-27 02 +01 CET 2014-03-30 03 +02 CEST 1 2014-10-26 02 +01 CET 2015-03-29 03 +02 CEST 1 2015-10-25 02 +01 CET 2016-03-27 03 +02 CEST 1 2016-10-30 02 +01 CET 2017-03-26 03 +02 CEST 1 2017-10-29 02 +01 CET 2018-03-25 03 +02 CEST 1 2018-10-28 02 +01 CET 2019-03-31 03 +02 CEST 1 2019-10-27 02 +01 CET 2020-03-29 03 +02 CEST 1 2020-10-25 02 +01 CET 2021-03-28 03 +02 CEST 1 2021-10-31 02 +01 CET 2022-03-27 03 +02 CEST 1 2022-10-30 02 +01 CET 2023-03-26 03 +02 CEST 1 2023-10-29 02 +01 CET 2024-03-31 03 +02 CEST 1 2024-10-27 02 +01 CET 2025-03-30 03 +02 CEST 1 2025-10-26 02 +01 CET 2026-03-29 03 +02 CEST 1 2026-10-25 02 +01 CET 2027-03-28 03 +02 CEST 1 2027-10-31 02 +01 CET 2028-03-26 03 +02 CEST 1 2028-10-29 02 +01 CET 2029-03-25 03 +02 CEST 1 2029-10-28 02 +01 CET 2030-03-31 03 +02 CEST 1 2030-10-27 02 +01 CET 2031-03-30 03 +02 CEST 1 2031-10-26 02 +01 CET 2032-03-28 03 +02 CEST 1 2032-10-31 02 +01 CET 2033-03-27 03 +02 CEST 1 2033-10-30 02 +01 CET 2034-03-26 03 +02 CEST 1 2034-10-29 02 +01 CET 2035-03-25 03 +02 CEST 1 2035-10-28 02 +01 CET 2036-03-30 03 +02 CEST 1 2036-10-26 02 +01 CET 2037-03-29 03 +02 CEST 1 2037-10-25 02 +01 CET 2038-03-28 03 +02 CEST 1 2038-10-31 02 +01 CET 2039-03-27 03 +02 CEST 1 2039-10-30 02 +01 CET 2040-03-25 03 +02 CEST 1 2040-10-28 02 +01 CET 2041-03-31 03 +02 CEST 1 2041-10-27 02 +01 CET 2042-03-30 03 +02 CEST 1 2042-10-26 02 +01 CET 2043-03-29 03 +02 CEST 1 2043-10-25 02 +01 CET 2044-03-27 03 +02 CEST 1 2044-10-30 02 +01 CET 2045-03-26 03 +02 CEST 1 2045-10-29 02 +01 CET 2046-03-25 03 +02 CEST 1 2046-10-28 02 +01 CET 2047-03-31 03 +02 CEST 1 2047-10-27 02 +01 CET 2048-03-29 03 +02 CEST 1 2048-10-25 02 +01 CET 2049-03-28 03 +02 CEST 1 2049-10-31 02 +01 CET TZ="Europe/Zaporozhye" - - +022040 LMT 1879-12-31 23:59:20 +0220 1924-05-01 23:40 +02 EET 1930-06-21 01 +03 MSK 1941-08-24 23 +02 CEST 1 1942-11-02 02 +01 CET 1943-03-29 03 +02 CEST 1 1943-10-04 02 +01 CET 1943-10-25 02 +03 MSK 1981-04-01 01 +04 MSD 1 1981-09-30 23 +03 MSK 1982-04-01 01 +04 MSD 1 1982-09-30 23 +03 MSK 1983-04-01 01 +04 MSD 1 1983-09-30 23 +03 MSK 1984-04-01 01 +04 MSD 1 1984-09-30 02 +03 MSK 1985-03-31 03 +04 MSD 1 1985-09-29 02 +03 MSK 1986-03-30 03 +04 MSD 1 1986-09-28 02 +03 MSK 1987-03-29 03 +04 MSD 1 1987-09-27 02 +03 MSK 1988-03-27 03 +04 MSD 1 1988-09-25 02 +03 MSK 1989-03-26 03 +04 MSD 1 1989-09-24 02 +03 MSK 1990-03-25 03 +04 MSD 1 1990-09-30 02 +03 MSK 1991-03-31 02 +03 EEST 1 1991-09-28 23 +02 EET 1992-03-29 01 +03 EEST 1 1992-09-26 23 +02 EET 1993-03-28 01 +03 EEST 1 1993-09-25 23 +02 EET 1994-03-27 01 +03 EEST 1 1994-09-24 23 +02 EET 1995-03-26 04 +03 EEST 1 1995-09-24 03 +02 EET 1996-03-31 04 +03 EEST 1 1996-10-27 03 +02 EET 1997-03-30 04 +03 EEST 1 1997-10-26 03 +02 EET 1998-03-29 04 +03 EEST 1 1998-10-25 03 +02 EET 1999-03-28 04 +03 EEST 1 1999-10-31 03 +02 EET 2000-03-26 04 +03 EEST 1 2000-10-29 03 +02 EET 2001-03-25 04 +03 EEST 1 2001-10-28 03 +02 EET 2002-03-31 04 +03 EEST 1 2002-10-27 03 +02 EET 2003-03-30 04 +03 EEST 1 2003-10-26 03 +02 EET 2004-03-28 04 +03 EEST 1 2004-10-31 03 +02 EET 2005-03-27 04 +03 EEST 1 2005-10-30 03 +02 EET 2006-03-26 04 +03 EEST 1 2006-10-29 03 +02 EET 2007-03-25 04 +03 EEST 1 2007-10-28 03 +02 EET 2008-03-30 04 +03 EEST 1 2008-10-26 03 +02 EET 2009-03-29 04 +03 EEST 1 2009-10-25 03 +02 EET 2010-03-28 04 +03 EEST 1 2010-10-31 03 +02 EET 2011-03-27 04 +03 EEST 1 2011-10-30 03 +02 EET 2012-03-25 04 +03 EEST 1 2012-10-28 03 +02 EET 2013-03-31 04 +03 EEST 1 2013-10-27 03 +02 EET 2014-03-30 04 +03 EEST 1 2014-10-26 03 +02 EET 2015-03-29 04 +03 EEST 1 2015-10-25 03 +02 EET 2016-03-27 04 +03 EEST 1 2016-10-30 03 +02 EET 2017-03-26 04 +03 EEST 1 2017-10-29 03 +02 EET 2018-03-25 04 +03 EEST 1 2018-10-28 03 +02 EET 2019-03-31 04 +03 EEST 1 2019-10-27 03 +02 EET 2020-03-29 04 +03 EEST 1 2020-10-25 03 +02 EET 2021-03-28 04 +03 EEST 1 2021-10-31 03 +02 EET 2022-03-27 04 +03 EEST 1 2022-10-30 03 +02 EET 2023-03-26 04 +03 EEST 1 2023-10-29 03 +02 EET 2024-03-31 04 +03 EEST 1 2024-10-27 03 +02 EET 2025-03-30 04 +03 EEST 1 2025-10-26 03 +02 EET 2026-03-29 04 +03 EEST 1 2026-10-25 03 +02 EET 2027-03-28 04 +03 EEST 1 2027-10-31 03 +02 EET 2028-03-26 04 +03 EEST 1 2028-10-29 03 +02 EET 2029-03-25 04 +03 EEST 1 2029-10-28 03 +02 EET 2030-03-31 04 +03 EEST 1 2030-10-27 03 +02 EET 2031-03-30 04 +03 EEST 1 2031-10-26 03 +02 EET 2032-03-28 04 +03 EEST 1 2032-10-31 03 +02 EET 2033-03-27 04 +03 EEST 1 2033-10-30 03 +02 EET 2034-03-26 04 +03 EEST 1 2034-10-29 03 +02 EET 2035-03-25 04 +03 EEST 1 2035-10-28 03 +02 EET 2036-03-30 04 +03 EEST 1 2036-10-26 03 +02 EET 2037-03-29 04 +03 EEST 1 2037-10-25 03 +02 EET 2038-03-28 04 +03 EEST 1 2038-10-31 03 +02 EET 2039-03-27 04 +03 EEST 1 2039-10-30 03 +02 EET 2040-03-25 04 +03 EEST 1 2040-10-28 03 +02 EET 2041-03-31 04 +03 EEST 1 2041-10-27 03 +02 EET 2042-03-30 04 +03 EEST 1 2042-10-26 03 +02 EET 2043-03-29 04 +03 EEST 1 2043-10-25 03 +02 EET 2044-03-27 04 +03 EEST 1 2044-10-30 03 +02 EET 2045-03-26 04 +03 EEST 1 2045-10-29 03 +02 EET 2046-03-25 04 +03 EEST 1 2046-10-28 03 +02 EET 2047-03-31 04 +03 EEST 1 2047-10-27 03 +02 EET 2048-03-29 04 +03 EEST 1 2048-10-25 03 +02 EET 2049-03-28 04 +03 EEST 1 2049-10-31 03 +02 EET TZ="Europe/Zurich" - - +003408 LMT 1853-07-15 23:55:38 +002946 BMT 1894-06-01 00:30:14 +01 CET 1941-05-05 02 +02 CEST 1 1941-10-06 01 +01 CET 1942-05-04 02 +02 CEST 1 1942-10-05 01 +01 CET 1981-03-29 03 +02 CEST 1 1981-09-27 02 +01 CET 1982-03-28 03 +02 CEST 1 1982-09-26 02 +01 CET 1983-03-27 03 +02 CEST 1 1983-09-25 02 +01 CET 1984-03-25 03 +02 CEST 1 1984-09-30 02 +01 CET 1985-03-31 03 +02 CEST 1 1985-09-29 02 +01 CET 1986-03-30 03 +02 CEST 1 1986-09-28 02 +01 CET 1987-03-29 03 +02 CEST 1 1987-09-27 02 +01 CET 1988-03-27 03 +02 CEST 1 1988-09-25 02 +01 CET 1989-03-26 03 +02 CEST 1 1989-09-24 02 +01 CET 1990-03-25 03 +02 CEST 1 1990-09-30 02 +01 CET 1991-03-31 03 +02 CEST 1 1991-09-29 02 +01 CET 1992-03-29 03 +02 CEST 1 1992-09-27 02 +01 CET 1993-03-28 03 +02 CEST 1 1993-09-26 02 +01 CET 1994-03-27 03 +02 CEST 1 1994-09-25 02 +01 CET 1995-03-26 03 +02 CEST 1 1995-09-24 02 +01 CET 1996-03-31 03 +02 CEST 1 1996-10-27 02 +01 CET 1997-03-30 03 +02 CEST 1 1997-10-26 02 +01 CET 1998-03-29 03 +02 CEST 1 1998-10-25 02 +01 CET 1999-03-28 03 +02 CEST 1 1999-10-31 02 +01 CET 2000-03-26 03 +02 CEST 1 2000-10-29 02 +01 CET 2001-03-25 03 +02 CEST 1 2001-10-28 02 +01 CET 2002-03-31 03 +02 CEST 1 2002-10-27 02 +01 CET 2003-03-30 03 +02 CEST 1 2003-10-26 02 +01 CET 2004-03-28 03 +02 CEST 1 2004-10-31 02 +01 CET 2005-03-27 03 +02 CEST 1 2005-10-30 02 +01 CET 2006-03-26 03 +02 CEST 1 2006-10-29 02 +01 CET 2007-03-25 03 +02 CEST 1 2007-10-28 02 +01 CET 2008-03-30 03 +02 CEST 1 2008-10-26 02 +01 CET 2009-03-29 03 +02 CEST 1 2009-10-25 02 +01 CET 2010-03-28 03 +02 CEST 1 2010-10-31 02 +01 CET 2011-03-27 03 +02 CEST 1 2011-10-30 02 +01 CET 2012-03-25 03 +02 CEST 1 2012-10-28 02 +01 CET 2013-03-31 03 +02 CEST 1 2013-10-27 02 +01 CET 2014-03-30 03 +02 CEST 1 2014-10-26 02 +01 CET 2015-03-29 03 +02 CEST 1 2015-10-25 02 +01 CET 2016-03-27 03 +02 CEST 1 2016-10-30 02 +01 CET 2017-03-26 03 +02 CEST 1 2017-10-29 02 +01 CET 2018-03-25 03 +02 CEST 1 2018-10-28 02 +01 CET 2019-03-31 03 +02 CEST 1 2019-10-27 02 +01 CET 2020-03-29 03 +02 CEST 1 2020-10-25 02 +01 CET 2021-03-28 03 +02 CEST 1 2021-10-31 02 +01 CET 2022-03-27 03 +02 CEST 1 2022-10-30 02 +01 CET 2023-03-26 03 +02 CEST 1 2023-10-29 02 +01 CET 2024-03-31 03 +02 CEST 1 2024-10-27 02 +01 CET 2025-03-30 03 +02 CEST 1 2025-10-26 02 +01 CET 2026-03-29 03 +02 CEST 1 2026-10-25 02 +01 CET 2027-03-28 03 +02 CEST 1 2027-10-31 02 +01 CET 2028-03-26 03 +02 CEST 1 2028-10-29 02 +01 CET 2029-03-25 03 +02 CEST 1 2029-10-28 02 +01 CET 2030-03-31 03 +02 CEST 1 2030-10-27 02 +01 CET 2031-03-30 03 +02 CEST 1 2031-10-26 02 +01 CET 2032-03-28 03 +02 CEST 1 2032-10-31 02 +01 CET 2033-03-27 03 +02 CEST 1 2033-10-30 02 +01 CET 2034-03-26 03 +02 CEST 1 2034-10-29 02 +01 CET 2035-03-25 03 +02 CEST 1 2035-10-28 02 +01 CET 2036-03-30 03 +02 CEST 1 2036-10-26 02 +01 CET 2037-03-29 03 +02 CEST 1 2037-10-25 02 +01 CET 2038-03-28 03 +02 CEST 1 2038-10-31 02 +01 CET 2039-03-27 03 +02 CEST 1 2039-10-30 02 +01 CET 2040-03-25 03 +02 CEST 1 2040-10-28 02 +01 CET 2041-03-31 03 +02 CEST 1 2041-10-27 02 +01 CET 2042-03-30 03 +02 CEST 1 2042-10-26 02 +01 CET 2043-03-29 03 +02 CEST 1 2043-10-25 02 +01 CET 2044-03-27 03 +02 CEST 1 2044-10-30 02 +01 CET 2045-03-26 03 +02 CEST 1 2045-10-29 02 +01 CET 2046-03-25 03 +02 CEST 1 2046-10-28 02 +01 CET 2047-03-31 03 +02 CEST 1 2047-10-27 02 +01 CET 2048-03-29 03 +02 CEST 1 2048-10-25 02 +01 CET 2049-03-28 03 +02 CEST 1 2049-10-31 02 +01 CET TZ="Factory" - - -00 TZ="HST" - - -10 HST TZ="Indian/Chagos" - - +044940 LMT 1907-01-01 00:10:20 +05 1996-01-01 01 +06 TZ="Indian/Christmas" - - +070252 LMT 1895-01-31 23:57:08 +07 TZ="Indian/Cocos" - - +062740 LMT 1900-01-01 00:02:20 +0630 TZ="Indian/Kerguelen" - - -00 1950-01-01 05 +05 TZ="Indian/Mahe" - - +034148 LMT 1906-06-01 00:18:12 +04 TZ="Indian/Maldives" - - +0454 LMT 1880-01-01 00 +0454 MMT 1960-01-01 00:06 +05 TZ="Indian/Mauritius" - - +0350 LMT 1907-01-01 00:10 +04 1982-10-10 01 +05 1 1983-03-20 23 +04 2008-10-26 03 +05 1 2009-03-29 01 +04 TZ="Indian/Reunion" - - +034152 LMT 1911-06-01 00:18:08 +04 TZ="MET" - - +01 MET 1916-05-01 00 +02 MEST 1 1916-10-01 00 +01 MET 1917-04-16 03 +02 MEST 1 1917-09-17 02 +01 MET 1918-04-15 03 +02 MEST 1 1918-09-16 02 +01 MET 1940-04-01 03 +02 MEST 1 1942-11-02 02 +01 MET 1943-03-29 03 +02 MEST 1 1943-10-04 02 +01 MET 1944-04-03 03 +02 MEST 1 1944-10-02 02 +01 MET 1945-04-02 03 +02 MEST 1 1945-09-16 02 +01 MET 1977-04-03 03 +02 MEST 1 1977-09-25 02 +01 MET 1978-04-02 03 +02 MEST 1 1978-10-01 02 +01 MET 1979-04-01 03 +02 MEST 1 1979-09-30 02 +01 MET 1980-04-06 03 +02 MEST 1 1980-09-28 02 +01 MET 1981-03-29 03 +02 MEST 1 1981-09-27 02 +01 MET 1982-03-28 03 +02 MEST 1 1982-09-26 02 +01 MET 1983-03-27 03 +02 MEST 1 1983-09-25 02 +01 MET 1984-03-25 03 +02 MEST 1 1984-09-30 02 +01 MET 1985-03-31 03 +02 MEST 1 1985-09-29 02 +01 MET 1986-03-30 03 +02 MEST 1 1986-09-28 02 +01 MET 1987-03-29 03 +02 MEST 1 1987-09-27 02 +01 MET 1988-03-27 03 +02 MEST 1 1988-09-25 02 +01 MET 1989-03-26 03 +02 MEST 1 1989-09-24 02 +01 MET 1990-03-25 03 +02 MEST 1 1990-09-30 02 +01 MET 1991-03-31 03 +02 MEST 1 1991-09-29 02 +01 MET 1992-03-29 03 +02 MEST 1 1992-09-27 02 +01 MET 1993-03-28 03 +02 MEST 1 1993-09-26 02 +01 MET 1994-03-27 03 +02 MEST 1 1994-09-25 02 +01 MET 1995-03-26 03 +02 MEST 1 1995-09-24 02 +01 MET 1996-03-31 03 +02 MEST 1 1996-10-27 02 +01 MET 1997-03-30 03 +02 MEST 1 1997-10-26 02 +01 MET 1998-03-29 03 +02 MEST 1 1998-10-25 02 +01 MET 1999-03-28 03 +02 MEST 1 1999-10-31 02 +01 MET 2000-03-26 03 +02 MEST 1 2000-10-29 02 +01 MET 2001-03-25 03 +02 MEST 1 2001-10-28 02 +01 MET 2002-03-31 03 +02 MEST 1 2002-10-27 02 +01 MET 2003-03-30 03 +02 MEST 1 2003-10-26 02 +01 MET 2004-03-28 03 +02 MEST 1 2004-10-31 02 +01 MET 2005-03-27 03 +02 MEST 1 2005-10-30 02 +01 MET 2006-03-26 03 +02 MEST 1 2006-10-29 02 +01 MET 2007-03-25 03 +02 MEST 1 2007-10-28 02 +01 MET 2008-03-30 03 +02 MEST 1 2008-10-26 02 +01 MET 2009-03-29 03 +02 MEST 1 2009-10-25 02 +01 MET 2010-03-28 03 +02 MEST 1 2010-10-31 02 +01 MET 2011-03-27 03 +02 MEST 1 2011-10-30 02 +01 MET 2012-03-25 03 +02 MEST 1 2012-10-28 02 +01 MET 2013-03-31 03 +02 MEST 1 2013-10-27 02 +01 MET 2014-03-30 03 +02 MEST 1 2014-10-26 02 +01 MET 2015-03-29 03 +02 MEST 1 2015-10-25 02 +01 MET 2016-03-27 03 +02 MEST 1 2016-10-30 02 +01 MET 2017-03-26 03 +02 MEST 1 2017-10-29 02 +01 MET 2018-03-25 03 +02 MEST 1 2018-10-28 02 +01 MET 2019-03-31 03 +02 MEST 1 2019-10-27 02 +01 MET 2020-03-29 03 +02 MEST 1 2020-10-25 02 +01 MET 2021-03-28 03 +02 MEST 1 2021-10-31 02 +01 MET 2022-03-27 03 +02 MEST 1 2022-10-30 02 +01 MET 2023-03-26 03 +02 MEST 1 2023-10-29 02 +01 MET 2024-03-31 03 +02 MEST 1 2024-10-27 02 +01 MET 2025-03-30 03 +02 MEST 1 2025-10-26 02 +01 MET 2026-03-29 03 +02 MEST 1 2026-10-25 02 +01 MET 2027-03-28 03 +02 MEST 1 2027-10-31 02 +01 MET 2028-03-26 03 +02 MEST 1 2028-10-29 02 +01 MET 2029-03-25 03 +02 MEST 1 2029-10-28 02 +01 MET 2030-03-31 03 +02 MEST 1 2030-10-27 02 +01 MET 2031-03-30 03 +02 MEST 1 2031-10-26 02 +01 MET 2032-03-28 03 +02 MEST 1 2032-10-31 02 +01 MET 2033-03-27 03 +02 MEST 1 2033-10-30 02 +01 MET 2034-03-26 03 +02 MEST 1 2034-10-29 02 +01 MET 2035-03-25 03 +02 MEST 1 2035-10-28 02 +01 MET 2036-03-30 03 +02 MEST 1 2036-10-26 02 +01 MET 2037-03-29 03 +02 MEST 1 2037-10-25 02 +01 MET 2038-03-28 03 +02 MEST 1 2038-10-31 02 +01 MET 2039-03-27 03 +02 MEST 1 2039-10-30 02 +01 MET 2040-03-25 03 +02 MEST 1 2040-10-28 02 +01 MET 2041-03-31 03 +02 MEST 1 2041-10-27 02 +01 MET 2042-03-30 03 +02 MEST 1 2042-10-26 02 +01 MET 2043-03-29 03 +02 MEST 1 2043-10-25 02 +01 MET 2044-03-27 03 +02 MEST 1 2044-10-30 02 +01 MET 2045-03-26 03 +02 MEST 1 2045-10-29 02 +01 MET 2046-03-25 03 +02 MEST 1 2046-10-28 02 +01 MET 2047-03-31 03 +02 MEST 1 2047-10-27 02 +01 MET 2048-03-29 03 +02 MEST 1 2048-10-25 02 +01 MET 2049-03-28 03 +02 MEST 1 2049-10-31 02 +01 MET TZ="MST" - - -07 MST TZ="MST7MDT" - - -07 MST 1918-03-31 03 -06 MDT 1 1918-10-27 01 -07 MST 1919-03-30 03 -06 MDT 1 1919-10-26 01 -07 MST 1942-02-09 03 -06 MWT 1 1945-08-14 17 -06 MPT 1 1945-09-30 01 -07 MST 1967-04-30 03 -06 MDT 1 1967-10-29 01 -07 MST 1968-04-28 03 -06 MDT 1 1968-10-27 01 -07 MST 1969-04-27 03 -06 MDT 1 1969-10-26 01 -07 MST 1970-04-26 03 -06 MDT 1 1970-10-25 01 -07 MST 1971-04-25 03 -06 MDT 1 1971-10-31 01 -07 MST 1972-04-30 03 -06 MDT 1 1972-10-29 01 -07 MST 1973-04-29 03 -06 MDT 1 1973-10-28 01 -07 MST 1974-01-06 03 -06 MDT 1 1974-10-27 01 -07 MST 1975-02-23 03 -06 MDT 1 1975-10-26 01 -07 MST 1976-04-25 03 -06 MDT 1 1976-10-31 01 -07 MST 1977-04-24 03 -06 MDT 1 1977-10-30 01 -07 MST 1978-04-30 03 -06 MDT 1 1978-10-29 01 -07 MST 1979-04-29 03 -06 MDT 1 1979-10-28 01 -07 MST 1980-04-27 03 -06 MDT 1 1980-10-26 01 -07 MST 1981-04-26 03 -06 MDT 1 1981-10-25 01 -07 MST 1982-04-25 03 -06 MDT 1 1982-10-31 01 -07 MST 1983-04-24 03 -06 MDT 1 1983-10-30 01 -07 MST 1984-04-29 03 -06 MDT 1 1984-10-28 01 -07 MST 1985-04-28 03 -06 MDT 1 1985-10-27 01 -07 MST 1986-04-27 03 -06 MDT 1 1986-10-26 01 -07 MST 1987-04-05 03 -06 MDT 1 1987-10-25 01 -07 MST 1988-04-03 03 -06 MDT 1 1988-10-30 01 -07 MST 1989-04-02 03 -06 MDT 1 1989-10-29 01 -07 MST 1990-04-01 03 -06 MDT 1 1990-10-28 01 -07 MST 1991-04-07 03 -06 MDT 1 1991-10-27 01 -07 MST 1992-04-05 03 -06 MDT 1 1992-10-25 01 -07 MST 1993-04-04 03 -06 MDT 1 1993-10-31 01 -07 MST 1994-04-03 03 -06 MDT 1 1994-10-30 01 -07 MST 1995-04-02 03 -06 MDT 1 1995-10-29 01 -07 MST 1996-04-07 03 -06 MDT 1 1996-10-27 01 -07 MST 1997-04-06 03 -06 MDT 1 1997-10-26 01 -07 MST 1998-04-05 03 -06 MDT 1 1998-10-25 01 -07 MST 1999-04-04 03 -06 MDT 1 1999-10-31 01 -07 MST 2000-04-02 03 -06 MDT 1 2000-10-29 01 -07 MST 2001-04-01 03 -06 MDT 1 2001-10-28 01 -07 MST 2002-04-07 03 -06 MDT 1 2002-10-27 01 -07 MST 2003-04-06 03 -06 MDT 1 2003-10-26 01 -07 MST 2004-04-04 03 -06 MDT 1 2004-10-31 01 -07 MST 2005-04-03 03 -06 MDT 1 2005-10-30 01 -07 MST 2006-04-02 03 -06 MDT 1 2006-10-29 01 -07 MST 2007-03-11 03 -06 MDT 1 2007-11-04 01 -07 MST 2008-03-09 03 -06 MDT 1 2008-11-02 01 -07 MST 2009-03-08 03 -06 MDT 1 2009-11-01 01 -07 MST 2010-03-14 03 -06 MDT 1 2010-11-07 01 -07 MST 2011-03-13 03 -06 MDT 1 2011-11-06 01 -07 MST 2012-03-11 03 -06 MDT 1 2012-11-04 01 -07 MST 2013-03-10 03 -06 MDT 1 2013-11-03 01 -07 MST 2014-03-09 03 -06 MDT 1 2014-11-02 01 -07 MST 2015-03-08 03 -06 MDT 1 2015-11-01 01 -07 MST 2016-03-13 03 -06 MDT 1 2016-11-06 01 -07 MST 2017-03-12 03 -06 MDT 1 2017-11-05 01 -07 MST 2018-03-11 03 -06 MDT 1 2018-11-04 01 -07 MST 2019-03-10 03 -06 MDT 1 2019-11-03 01 -07 MST 2020-03-08 03 -06 MDT 1 2020-11-01 01 -07 MST 2021-03-14 03 -06 MDT 1 2021-11-07 01 -07 MST 2022-03-13 03 -06 MDT 1 2022-11-06 01 -07 MST 2023-03-12 03 -06 MDT 1 2023-11-05 01 -07 MST 2024-03-10 03 -06 MDT 1 2024-11-03 01 -07 MST 2025-03-09 03 -06 MDT 1 2025-11-02 01 -07 MST 2026-03-08 03 -06 MDT 1 2026-11-01 01 -07 MST 2027-03-14 03 -06 MDT 1 2027-11-07 01 -07 MST 2028-03-12 03 -06 MDT 1 2028-11-05 01 -07 MST 2029-03-11 03 -06 MDT 1 2029-11-04 01 -07 MST 2030-03-10 03 -06 MDT 1 2030-11-03 01 -07 MST 2031-03-09 03 -06 MDT 1 2031-11-02 01 -07 MST 2032-03-14 03 -06 MDT 1 2032-11-07 01 -07 MST 2033-03-13 03 -06 MDT 1 2033-11-06 01 -07 MST 2034-03-12 03 -06 MDT 1 2034-11-05 01 -07 MST 2035-03-11 03 -06 MDT 1 2035-11-04 01 -07 MST 2036-03-09 03 -06 MDT 1 2036-11-02 01 -07 MST 2037-03-08 03 -06 MDT 1 2037-11-01 01 -07 MST 2038-03-14 03 -06 MDT 1 2038-11-07 01 -07 MST 2039-03-13 03 -06 MDT 1 2039-11-06 01 -07 MST 2040-03-11 03 -06 MDT 1 2040-11-04 01 -07 MST 2041-03-10 03 -06 MDT 1 2041-11-03 01 -07 MST 2042-03-09 03 -06 MDT 1 2042-11-02 01 -07 MST 2043-03-08 03 -06 MDT 1 2043-11-01 01 -07 MST 2044-03-13 03 -06 MDT 1 2044-11-06 01 -07 MST 2045-03-12 03 -06 MDT 1 2045-11-05 01 -07 MST 2046-03-11 03 -06 MDT 1 2046-11-04 01 -07 MST 2047-03-10 03 -06 MDT 1 2047-11-03 01 -07 MST 2048-03-08 03 -06 MDT 1 2048-11-01 01 -07 MST 2049-03-14 03 -06 MDT 1 2049-11-07 01 -07 MST TZ="PST8PDT" - - -08 PST 1918-03-31 03 -07 PDT 1 1918-10-27 01 -08 PST 1919-03-30 03 -07 PDT 1 1919-10-26 01 -08 PST 1942-02-09 03 -07 PWT 1 1945-08-14 16 -07 PPT 1 1945-09-30 01 -08 PST 1967-04-30 03 -07 PDT 1 1967-10-29 01 -08 PST 1968-04-28 03 -07 PDT 1 1968-10-27 01 -08 PST 1969-04-27 03 -07 PDT 1 1969-10-26 01 -08 PST 1970-04-26 03 -07 PDT 1 1970-10-25 01 -08 PST 1971-04-25 03 -07 PDT 1 1971-10-31 01 -08 PST 1972-04-30 03 -07 PDT 1 1972-10-29 01 -08 PST 1973-04-29 03 -07 PDT 1 1973-10-28 01 -08 PST 1974-01-06 03 -07 PDT 1 1974-10-27 01 -08 PST 1975-02-23 03 -07 PDT 1 1975-10-26 01 -08 PST 1976-04-25 03 -07 PDT 1 1976-10-31 01 -08 PST 1977-04-24 03 -07 PDT 1 1977-10-30 01 -08 PST 1978-04-30 03 -07 PDT 1 1978-10-29 01 -08 PST 1979-04-29 03 -07 PDT 1 1979-10-28 01 -08 PST 1980-04-27 03 -07 PDT 1 1980-10-26 01 -08 PST 1981-04-26 03 -07 PDT 1 1981-10-25 01 -08 PST 1982-04-25 03 -07 PDT 1 1982-10-31 01 -08 PST 1983-04-24 03 -07 PDT 1 1983-10-30 01 -08 PST 1984-04-29 03 -07 PDT 1 1984-10-28 01 -08 PST 1985-04-28 03 -07 PDT 1 1985-10-27 01 -08 PST 1986-04-27 03 -07 PDT 1 1986-10-26 01 -08 PST 1987-04-05 03 -07 PDT 1 1987-10-25 01 -08 PST 1988-04-03 03 -07 PDT 1 1988-10-30 01 -08 PST 1989-04-02 03 -07 PDT 1 1989-10-29 01 -08 PST 1990-04-01 03 -07 PDT 1 1990-10-28 01 -08 PST 1991-04-07 03 -07 PDT 1 1991-10-27 01 -08 PST 1992-04-05 03 -07 PDT 1 1992-10-25 01 -08 PST 1993-04-04 03 -07 PDT 1 1993-10-31 01 -08 PST 1994-04-03 03 -07 PDT 1 1994-10-30 01 -08 PST 1995-04-02 03 -07 PDT 1 1995-10-29 01 -08 PST 1996-04-07 03 -07 PDT 1 1996-10-27 01 -08 PST 1997-04-06 03 -07 PDT 1 1997-10-26 01 -08 PST 1998-04-05 03 -07 PDT 1 1998-10-25 01 -08 PST 1999-04-04 03 -07 PDT 1 1999-10-31 01 -08 PST 2000-04-02 03 -07 PDT 1 2000-10-29 01 -08 PST 2001-04-01 03 -07 PDT 1 2001-10-28 01 -08 PST 2002-04-07 03 -07 PDT 1 2002-10-27 01 -08 PST 2003-04-06 03 -07 PDT 1 2003-10-26 01 -08 PST 2004-04-04 03 -07 PDT 1 2004-10-31 01 -08 PST 2005-04-03 03 -07 PDT 1 2005-10-30 01 -08 PST 2006-04-02 03 -07 PDT 1 2006-10-29 01 -08 PST 2007-03-11 03 -07 PDT 1 2007-11-04 01 -08 PST 2008-03-09 03 -07 PDT 1 2008-11-02 01 -08 PST 2009-03-08 03 -07 PDT 1 2009-11-01 01 -08 PST 2010-03-14 03 -07 PDT 1 2010-11-07 01 -08 PST 2011-03-13 03 -07 PDT 1 2011-11-06 01 -08 PST 2012-03-11 03 -07 PDT 1 2012-11-04 01 -08 PST 2013-03-10 03 -07 PDT 1 2013-11-03 01 -08 PST 2014-03-09 03 -07 PDT 1 2014-11-02 01 -08 PST 2015-03-08 03 -07 PDT 1 2015-11-01 01 -08 PST 2016-03-13 03 -07 PDT 1 2016-11-06 01 -08 PST 2017-03-12 03 -07 PDT 1 2017-11-05 01 -08 PST 2018-03-11 03 -07 PDT 1 2018-11-04 01 -08 PST 2019-03-10 03 -07 PDT 1 2019-11-03 01 -08 PST 2020-03-08 03 -07 PDT 1 2020-11-01 01 -08 PST 2021-03-14 03 -07 PDT 1 2021-11-07 01 -08 PST 2022-03-13 03 -07 PDT 1 2022-11-06 01 -08 PST 2023-03-12 03 -07 PDT 1 2023-11-05 01 -08 PST 2024-03-10 03 -07 PDT 1 2024-11-03 01 -08 PST 2025-03-09 03 -07 PDT 1 2025-11-02 01 -08 PST 2026-03-08 03 -07 PDT 1 2026-11-01 01 -08 PST 2027-03-14 03 -07 PDT 1 2027-11-07 01 -08 PST 2028-03-12 03 -07 PDT 1 2028-11-05 01 -08 PST 2029-03-11 03 -07 PDT 1 2029-11-04 01 -08 PST 2030-03-10 03 -07 PDT 1 2030-11-03 01 -08 PST 2031-03-09 03 -07 PDT 1 2031-11-02 01 -08 PST 2032-03-14 03 -07 PDT 1 2032-11-07 01 -08 PST 2033-03-13 03 -07 PDT 1 2033-11-06 01 -08 PST 2034-03-12 03 -07 PDT 1 2034-11-05 01 -08 PST 2035-03-11 03 -07 PDT 1 2035-11-04 01 -08 PST 2036-03-09 03 -07 PDT 1 2036-11-02 01 -08 PST 2037-03-08 03 -07 PDT 1 2037-11-01 01 -08 PST 2038-03-14 03 -07 PDT 1 2038-11-07 01 -08 PST 2039-03-13 03 -07 PDT 1 2039-11-06 01 -08 PST 2040-03-11 03 -07 PDT 1 2040-11-04 01 -08 PST 2041-03-10 03 -07 PDT 1 2041-11-03 01 -08 PST 2042-03-09 03 -07 PDT 1 2042-11-02 01 -08 PST 2043-03-08 03 -07 PDT 1 2043-11-01 01 -08 PST 2044-03-13 03 -07 PDT 1 2044-11-06 01 -08 PST 2045-03-12 03 -07 PDT 1 2045-11-05 01 -08 PST 2046-03-11 03 -07 PDT 1 2046-11-04 01 -08 PST 2047-03-10 03 -07 PDT 1 2047-11-03 01 -08 PST 2048-03-08 03 -07 PDT 1 2048-11-01 01 -08 PST 2049-03-14 03 -07 PDT 1 2049-11-07 01 -08 PST TZ="Pacific/Apia" - - +123304 LMT 1892-07-04 00 -112656 LMT 1910-12-31 23:56:56 -1130 1950-01-01 00:30 -11 2010-09-26 01 -10 1 2011-04-02 03 -11 2011-09-24 04 -10 1 2011-12-31 00 +14 1 2012-04-01 03 +13 2012-09-30 04 +14 1 2013-04-07 03 +13 2013-09-29 04 +14 1 2014-04-06 03 +13 2014-09-28 04 +14 1 2015-04-05 03 +13 2015-09-27 04 +14 1 2016-04-03 03 +13 2016-09-25 04 +14 1 2017-04-02 03 +13 2017-09-24 04 +14 1 2018-04-01 03 +13 2018-09-30 04 +14 1 2019-04-07 03 +13 2019-09-29 04 +14 1 2020-04-05 03 +13 2020-09-27 04 +14 1 2021-04-04 03 +13 2021-09-26 04 +14 1 2022-04-03 03 +13 2022-09-25 04 +14 1 2023-04-02 03 +13 2023-09-24 04 +14 1 2024-04-07 03 +13 2024-09-29 04 +14 1 2025-04-06 03 +13 2025-09-28 04 +14 1 2026-04-05 03 +13 2026-09-27 04 +14 1 2027-04-04 03 +13 2027-09-26 04 +14 1 2028-04-02 03 +13 2028-09-24 04 +14 1 2029-04-01 03 +13 2029-09-30 04 +14 1 2030-04-07 03 +13 2030-09-29 04 +14 1 2031-04-06 03 +13 2031-09-28 04 +14 1 2032-04-04 03 +13 2032-09-26 04 +14 1 2033-04-03 03 +13 2033-09-25 04 +14 1 2034-04-02 03 +13 2034-09-24 04 +14 1 2035-04-01 03 +13 2035-09-30 04 +14 1 2036-04-06 03 +13 2036-09-28 04 +14 1 2037-04-05 03 +13 2037-09-27 04 +14 1 2038-04-04 03 +13 2038-09-26 04 +14 1 2039-04-03 03 +13 2039-09-25 04 +14 1 2040-04-01 03 +13 2040-09-30 04 +14 1 2041-04-07 03 +13 2041-09-29 04 +14 1 2042-04-06 03 +13 2042-09-28 04 +14 1 2043-04-05 03 +13 2043-09-27 04 +14 1 2044-04-03 03 +13 2044-09-25 04 +14 1 2045-04-02 03 +13 2045-09-24 04 +14 1 2046-04-01 03 +13 2046-09-30 04 +14 1 2047-04-07 03 +13 2047-09-29 04 +14 1 2048-04-05 03 +13 2048-09-27 04 +14 1 2049-04-04 03 +13 2049-09-26 04 +14 1 TZ="Pacific/Auckland" - - +113904 LMT 1868-11-01 23:50:56 +1130 NZMT 1927-11-06 03 +1230 NZST 1 1928-03-04 01 +1130 NZMT 1928-10-14 02:30 +12 NZST 1 1929-03-17 01:30 +1130 NZMT 1929-10-13 02:30 +12 NZST 1 1930-03-16 01:30 +1130 NZMT 1930-10-12 02:30 +12 NZST 1 1931-03-15 01:30 +1130 NZMT 1931-10-11 02:30 +12 NZST 1 1932-03-20 01:30 +1130 NZMT 1932-10-09 02:30 +12 NZST 1 1933-03-19 01:30 +1130 NZMT 1933-10-08 02:30 +12 NZST 1 1934-04-29 01:30 +1130 NZMT 1934-09-30 02:30 +12 NZST 1 1935-04-28 01:30 +1130 NZMT 1935-09-29 02:30 +12 NZST 1 1936-04-26 01:30 +1130 NZMT 1936-09-27 02:30 +12 NZST 1 1937-04-25 01:30 +1130 NZMT 1937-09-26 02:30 +12 NZST 1 1938-04-24 01:30 +1130 NZMT 1938-09-25 02:30 +12 NZST 1 1939-04-30 01:30 +1130 NZMT 1939-09-24 02:30 +12 NZST 1 1940-04-28 01:30 +1130 NZMT 1940-09-29 02:30 +12 NZST 1 1946-01-01 00 +12 NZST 1974-11-03 03 +13 NZDT 1 1975-02-23 02 +12 NZST 1975-10-26 03 +13 NZDT 1 1976-03-07 02 +12 NZST 1976-10-31 03 +13 NZDT 1 1977-03-06 02 +12 NZST 1977-10-30 03 +13 NZDT 1 1978-03-05 02 +12 NZST 1978-10-29 03 +13 NZDT 1 1979-03-04 02 +12 NZST 1979-10-28 03 +13 NZDT 1 1980-03-02 02 +12 NZST 1980-10-26 03 +13 NZDT 1 1981-03-01 02 +12 NZST 1981-10-25 03 +13 NZDT 1 1982-03-07 02 +12 NZST 1982-10-31 03 +13 NZDT 1 1983-03-06 02 +12 NZST 1983-10-30 03 +13 NZDT 1 1984-03-04 02 +12 NZST 1984-10-28 03 +13 NZDT 1 1985-03-03 02 +12 NZST 1985-10-27 03 +13 NZDT 1 1986-03-02 02 +12 NZST 1986-10-26 03 +13 NZDT 1 1987-03-01 02 +12 NZST 1987-10-25 03 +13 NZDT 1 1988-03-06 02 +12 NZST 1988-10-30 03 +13 NZDT 1 1989-03-05 02 +12 NZST 1989-10-08 03 +13 NZDT 1 1990-03-18 02 +12 NZST 1990-10-07 03 +13 NZDT 1 1991-03-17 02 +12 NZST 1991-10-06 03 +13 NZDT 1 1992-03-15 02 +12 NZST 1992-10-04 03 +13 NZDT 1 1993-03-21 02 +12 NZST 1993-10-03 03 +13 NZDT 1 1994-03-20 02 +12 NZST 1994-10-02 03 +13 NZDT 1 1995-03-19 02 +12 NZST 1995-10-01 03 +13 NZDT 1 1996-03-17 02 +12 NZST 1996-10-06 03 +13 NZDT 1 1997-03-16 02 +12 NZST 1997-10-05 03 +13 NZDT 1 1998-03-15 02 +12 NZST 1998-10-04 03 +13 NZDT 1 1999-03-21 02 +12 NZST 1999-10-03 03 +13 NZDT 1 2000-03-19 02 +12 NZST 2000-10-01 03 +13 NZDT 1 2001-03-18 02 +12 NZST 2001-10-07 03 +13 NZDT 1 2002-03-17 02 +12 NZST 2002-10-06 03 +13 NZDT 1 2003-03-16 02 +12 NZST 2003-10-05 03 +13 NZDT 1 2004-03-21 02 +12 NZST 2004-10-03 03 +13 NZDT 1 2005-03-20 02 +12 NZST 2005-10-02 03 +13 NZDT 1 2006-03-19 02 +12 NZST 2006-10-01 03 +13 NZDT 1 2007-03-18 02 +12 NZST 2007-09-30 03 +13 NZDT 1 2008-04-06 02 +12 NZST 2008-09-28 03 +13 NZDT 1 2009-04-05 02 +12 NZST 2009-09-27 03 +13 NZDT 1 2010-04-04 02 +12 NZST 2010-09-26 03 +13 NZDT 1 2011-04-03 02 +12 NZST 2011-09-25 03 +13 NZDT 1 2012-04-01 02 +12 NZST 2012-09-30 03 +13 NZDT 1 2013-04-07 02 +12 NZST 2013-09-29 03 +13 NZDT 1 2014-04-06 02 +12 NZST 2014-09-28 03 +13 NZDT 1 2015-04-05 02 +12 NZST 2015-09-27 03 +13 NZDT 1 2016-04-03 02 +12 NZST 2016-09-25 03 +13 NZDT 1 2017-04-02 02 +12 NZST 2017-09-24 03 +13 NZDT 1 2018-04-01 02 +12 NZST 2018-09-30 03 +13 NZDT 1 2019-04-07 02 +12 NZST 2019-09-29 03 +13 NZDT 1 2020-04-05 02 +12 NZST 2020-09-27 03 +13 NZDT 1 2021-04-04 02 +12 NZST 2021-09-26 03 +13 NZDT 1 2022-04-03 02 +12 NZST 2022-09-25 03 +13 NZDT 1 2023-04-02 02 +12 NZST 2023-09-24 03 +13 NZDT 1 2024-04-07 02 +12 NZST 2024-09-29 03 +13 NZDT 1 2025-04-06 02 +12 NZST 2025-09-28 03 +13 NZDT 1 2026-04-05 02 +12 NZST 2026-09-27 03 +13 NZDT 1 2027-04-04 02 +12 NZST 2027-09-26 03 +13 NZDT 1 2028-04-02 02 +12 NZST 2028-09-24 03 +13 NZDT 1 2029-04-01 02 +12 NZST 2029-09-30 03 +13 NZDT 1 2030-04-07 02 +12 NZST 2030-09-29 03 +13 NZDT 1 2031-04-06 02 +12 NZST 2031-09-28 03 +13 NZDT 1 2032-04-04 02 +12 NZST 2032-09-26 03 +13 NZDT 1 2033-04-03 02 +12 NZST 2033-09-25 03 +13 NZDT 1 2034-04-02 02 +12 NZST 2034-09-24 03 +13 NZDT 1 2035-04-01 02 +12 NZST 2035-09-30 03 +13 NZDT 1 2036-04-06 02 +12 NZST 2036-09-28 03 +13 NZDT 1 2037-04-05 02 +12 NZST 2037-09-27 03 +13 NZDT 1 2038-04-04 02 +12 NZST 2038-09-26 03 +13 NZDT 1 2039-04-03 02 +12 NZST 2039-09-25 03 +13 NZDT 1 2040-04-01 02 +12 NZST 2040-09-30 03 +13 NZDT 1 2041-04-07 02 +12 NZST 2041-09-29 03 +13 NZDT 1 2042-04-06 02 +12 NZST 2042-09-28 03 +13 NZDT 1 2043-04-05 02 +12 NZST 2043-09-27 03 +13 NZDT 1 2044-04-03 02 +12 NZST 2044-09-25 03 +13 NZDT 1 2045-04-02 02 +12 NZST 2045-09-24 03 +13 NZDT 1 2046-04-01 02 +12 NZST 2046-09-30 03 +13 NZDT 1 2047-04-07 02 +12 NZST 2047-09-29 03 +13 NZDT 1 2048-04-05 02 +12 NZST 2048-09-27 03 +13 NZDT 1 2049-04-04 02 +12 NZST 2049-09-26 03 +13 NZDT 1 TZ="Pacific/Bougainville" - - +102216 LMT 1879-12-31 23:26:16 +094832 PMMT 1895-01-01 00:11:28 +10 1942-06-30 23 +09 1945-08-21 01 +10 2014-12-28 03 +11 TZ="Pacific/Chatham" - - +121348 LMT 1868-11-02 00:01:12 +1215 1946-01-01 00:30 +1245 1974-11-03 03:45 +1345 1 1975-02-23 02:45 +1245 1975-10-26 03:45 +1345 1 1976-03-07 02:45 +1245 1976-10-31 03:45 +1345 1 1977-03-06 02:45 +1245 1977-10-30 03:45 +1345 1 1978-03-05 02:45 +1245 1978-10-29 03:45 +1345 1 1979-03-04 02:45 +1245 1979-10-28 03:45 +1345 1 1980-03-02 02:45 +1245 1980-10-26 03:45 +1345 1 1981-03-01 02:45 +1245 1981-10-25 03:45 +1345 1 1982-03-07 02:45 +1245 1982-10-31 03:45 +1345 1 1983-03-06 02:45 +1245 1983-10-30 03:45 +1345 1 1984-03-04 02:45 +1245 1984-10-28 03:45 +1345 1 1985-03-03 02:45 +1245 1985-10-27 03:45 +1345 1 1986-03-02 02:45 +1245 1986-10-26 03:45 +1345 1 1987-03-01 02:45 +1245 1987-10-25 03:45 +1345 1 1988-03-06 02:45 +1245 1988-10-30 03:45 +1345 1 1989-03-05 02:45 +1245 1989-10-08 03:45 +1345 1 1990-03-18 02:45 +1245 1990-10-07 03:45 +1345 1 1991-03-17 02:45 +1245 1991-10-06 03:45 +1345 1 1992-03-15 02:45 +1245 1992-10-04 03:45 +1345 1 1993-03-21 02:45 +1245 1993-10-03 03:45 +1345 1 1994-03-20 02:45 +1245 1994-10-02 03:45 +1345 1 1995-03-19 02:45 +1245 1995-10-01 03:45 +1345 1 1996-03-17 02:45 +1245 1996-10-06 03:45 +1345 1 1997-03-16 02:45 +1245 1997-10-05 03:45 +1345 1 1998-03-15 02:45 +1245 1998-10-04 03:45 +1345 1 1999-03-21 02:45 +1245 1999-10-03 03:45 +1345 1 2000-03-19 02:45 +1245 2000-10-01 03:45 +1345 1 2001-03-18 02:45 +1245 2001-10-07 03:45 +1345 1 2002-03-17 02:45 +1245 2002-10-06 03:45 +1345 1 2003-03-16 02:45 +1245 2003-10-05 03:45 +1345 1 2004-03-21 02:45 +1245 2004-10-03 03:45 +1345 1 2005-03-20 02:45 +1245 2005-10-02 03:45 +1345 1 2006-03-19 02:45 +1245 2006-10-01 03:45 +1345 1 2007-03-18 02:45 +1245 2007-09-30 03:45 +1345 1 2008-04-06 02:45 +1245 2008-09-28 03:45 +1345 1 2009-04-05 02:45 +1245 2009-09-27 03:45 +1345 1 2010-04-04 02:45 +1245 2010-09-26 03:45 +1345 1 2011-04-03 02:45 +1245 2011-09-25 03:45 +1345 1 2012-04-01 02:45 +1245 2012-09-30 03:45 +1345 1 2013-04-07 02:45 +1245 2013-09-29 03:45 +1345 1 2014-04-06 02:45 +1245 2014-09-28 03:45 +1345 1 2015-04-05 02:45 +1245 2015-09-27 03:45 +1345 1 2016-04-03 02:45 +1245 2016-09-25 03:45 +1345 1 2017-04-02 02:45 +1245 2017-09-24 03:45 +1345 1 2018-04-01 02:45 +1245 2018-09-30 03:45 +1345 1 2019-04-07 02:45 +1245 2019-09-29 03:45 +1345 1 2020-04-05 02:45 +1245 2020-09-27 03:45 +1345 1 2021-04-04 02:45 +1245 2021-09-26 03:45 +1345 1 2022-04-03 02:45 +1245 2022-09-25 03:45 +1345 1 2023-04-02 02:45 +1245 2023-09-24 03:45 +1345 1 2024-04-07 02:45 +1245 2024-09-29 03:45 +1345 1 2025-04-06 02:45 +1245 2025-09-28 03:45 +1345 1 2026-04-05 02:45 +1245 2026-09-27 03:45 +1345 1 2027-04-04 02:45 +1245 2027-09-26 03:45 +1345 1 2028-04-02 02:45 +1245 2028-09-24 03:45 +1345 1 2029-04-01 02:45 +1245 2029-09-30 03:45 +1345 1 2030-04-07 02:45 +1245 2030-09-29 03:45 +1345 1 2031-04-06 02:45 +1245 2031-09-28 03:45 +1345 1 2032-04-04 02:45 +1245 2032-09-26 03:45 +1345 1 2033-04-03 02:45 +1245 2033-09-25 03:45 +1345 1 2034-04-02 02:45 +1245 2034-09-24 03:45 +1345 1 2035-04-01 02:45 +1245 2035-09-30 03:45 +1345 1 2036-04-06 02:45 +1245 2036-09-28 03:45 +1345 1 2037-04-05 02:45 +1245 2037-09-27 03:45 +1345 1 2038-04-04 02:45 +1245 2038-09-26 03:45 +1345 1 2039-04-03 02:45 +1245 2039-09-25 03:45 +1345 1 2040-04-01 02:45 +1245 2040-09-30 03:45 +1345 1 2041-04-07 02:45 +1245 2041-09-29 03:45 +1345 1 2042-04-06 02:45 +1245 2042-09-28 03:45 +1345 1 2043-04-05 02:45 +1245 2043-09-27 03:45 +1345 1 2044-04-03 02:45 +1245 2044-09-25 03:45 +1345 1 2045-04-02 02:45 +1245 2045-09-24 03:45 +1345 1 2046-04-01 02:45 +1245 2046-09-30 03:45 +1345 1 2047-04-07 02:45 +1245 2047-09-29 03:45 +1345 1 2048-04-05 02:45 +1245 2048-09-27 03:45 +1345 1 2049-04-04 02:45 +1245 2049-09-26 03:45 +1345 1 TZ="Pacific/Chuuk" - - -135252 LMT 1845-01-01 00 +100708 LMT 1900-12-31 23:52:52 +10 1914-09-30 23 +09 1919-02-01 01 +10 1941-03-31 23 +09 1945-08-01 01 +10 TZ="Pacific/Easter" - - -071728 LMT 1890-01-01 00 -071728 EMT 1932-09-01 00:17:28 -07 1968-11-02 22 -06 1 1969-03-29 20 -07 1969-11-22 22 -06 1 1970-03-28 20 -07 1970-10-10 22 -06 1 1971-03-13 20 -07 1971-10-09 22 -06 1 1972-03-11 20 -07 1972-10-14 22 -06 1 1973-03-10 20 -07 1973-09-29 22 -06 1 1974-03-09 20 -07 1974-10-12 22 -06 1 1975-03-08 20 -07 1975-10-11 22 -06 1 1976-03-13 20 -07 1976-10-09 22 -06 1 1977-03-12 20 -07 1977-10-08 22 -06 1 1978-03-11 20 -07 1978-10-14 22 -06 1 1979-03-10 20 -07 1979-10-13 22 -06 1 1980-03-08 20 -07 1980-10-11 22 -06 1 1981-03-14 20 -07 1981-10-10 22 -06 1 1982-03-13 21 -06 1982-10-09 23 -05 1 1983-03-12 21 -06 1983-10-08 23 -05 1 1984-03-10 21 -06 1984-10-13 23 -05 1 1985-03-09 21 -06 1985-10-12 23 -05 1 1986-03-08 21 -06 1986-10-11 23 -05 1 1987-04-11 21 -06 1987-10-10 23 -05 1 1988-03-12 21 -06 1988-10-08 23 -05 1 1989-03-11 21 -06 1989-10-14 23 -05 1 1990-03-10 21 -06 1990-09-15 23 -05 1 1991-03-09 21 -06 1991-10-12 23 -05 1 1992-03-14 21 -06 1992-10-10 23 -05 1 1993-03-13 21 -06 1993-10-09 23 -05 1 1994-03-12 21 -06 1994-10-08 23 -05 1 1995-03-11 21 -06 1995-10-14 23 -05 1 1996-03-09 21 -06 1996-10-12 23 -05 1 1997-03-29 21 -06 1997-10-11 23 -05 1 1998-03-14 21 -06 1998-09-26 23 -05 1 1999-04-03 21 -06 1999-10-09 23 -05 1 2000-03-11 21 -06 2000-10-14 23 -05 1 2001-03-10 21 -06 2001-10-13 23 -05 1 2002-03-09 21 -06 2002-10-12 23 -05 1 2003-03-08 21 -06 2003-10-11 23 -05 1 2004-03-13 21 -06 2004-10-09 23 -05 1 2005-03-12 21 -06 2005-10-08 23 -05 1 2006-03-11 21 -06 2006-10-14 23 -05 1 2007-03-10 21 -06 2007-10-13 23 -05 1 2008-03-29 21 -06 2008-10-11 23 -05 1 2009-03-14 21 -06 2009-10-10 23 -05 1 2010-04-03 21 -06 2010-10-09 23 -05 1 2011-05-07 21 -06 2011-08-20 23 -05 1 2012-04-28 21 -06 2012-09-01 23 -05 1 2013-04-27 21 -06 2013-09-07 23 -05 1 2014-04-26 21 -06 2014-09-06 23 -05 1 2016-05-14 21 -06 2016-08-13 23 -05 1 2017-05-13 21 -06 2017-08-12 23 -05 1 2018-05-12 21 -06 2018-08-11 23 -05 1 2019-04-06 21 -06 2019-09-07 23 -05 1 2020-04-04 21 -06 2020-09-05 23 -05 1 2021-04-03 21 -06 2021-09-04 23 -05 1 2022-04-02 21 -06 2022-09-03 23 -05 1 2023-04-01 21 -06 2023-09-02 23 -05 1 2024-04-06 21 -06 2024-09-07 23 -05 1 2025-04-05 21 -06 2025-09-06 23 -05 1 2026-04-04 21 -06 2026-09-05 23 -05 1 2027-04-03 21 -06 2027-09-04 23 -05 1 2028-04-01 21 -06 2028-09-02 23 -05 1 2029-04-07 21 -06 2029-09-01 23 -05 1 2030-04-06 21 -06 2030-09-07 23 -05 1 2031-04-05 21 -06 2031-09-06 23 -05 1 2032-04-03 21 -06 2032-09-04 23 -05 1 2033-04-02 21 -06 2033-09-03 23 -05 1 2034-04-01 21 -06 2034-09-02 23 -05 1 2035-04-07 21 -06 2035-09-01 23 -05 1 2036-04-05 21 -06 2036-09-06 23 -05 1 2037-04-04 21 -06 2037-09-05 23 -05 1 2038-04-03 21 -06 2038-09-04 23 -05 1 2039-04-02 21 -06 2039-09-03 23 -05 1 2040-04-07 21 -06 2040-09-01 23 -05 1 2041-04-06 21 -06 2041-09-07 23 -05 1 2042-04-05 21 -06 2042-09-06 23 -05 1 2043-04-04 21 -06 2043-09-05 23 -05 1 2044-04-02 21 -06 2044-09-03 23 -05 1 2045-04-01 21 -06 2045-09-02 23 -05 1 2046-04-07 21 -06 2046-09-01 23 -05 1 2047-04-06 21 -06 2047-09-07 23 -05 1 2048-04-04 21 -06 2048-09-05 23 -05 1 2049-04-03 21 -06 2049-09-04 23 -05 1 TZ="Pacific/Efate" - - +111316 LMT 1912-01-12 23:46:44 +11 1983-09-25 01 +12 1 1984-03-24 23 +11 1984-10-23 01 +12 1 1985-03-23 23 +11 1985-09-29 01 +12 1 1986-03-22 23 +11 1986-09-28 01 +12 1 1987-03-28 23 +11 1987-09-27 01 +12 1 1988-03-26 23 +11 1988-09-25 01 +12 1 1989-03-25 23 +11 1989-09-24 01 +12 1 1990-03-24 23 +11 1990-09-23 01 +12 1 1991-03-23 23 +11 1991-09-29 01 +12 1 1992-01-25 23 +11 1992-10-25 01 +12 1 1993-01-23 23 +11 TZ="Pacific/Enderbury" - - -112420 LMT 1900-12-31 23:24:20 -12 1979-10-01 01 -11 1995-01-01 00 +13 TZ="Pacific/Fakaofo" - - -112456 LMT 1901-01-01 00:24:56 -11 2011-12-31 00 +13 TZ="Pacific/Fiji" - - +115544 LMT 1915-10-26 00:04:16 +12 1998-11-01 03 +13 1 1999-02-28 02 +12 1999-11-07 03 +13 1 2000-02-27 02 +12 2009-11-29 03 +13 1 2010-03-28 02 +12 2010-10-24 03 +13 1 2011-03-06 02 +12 2011-10-23 03 +13 1 2012-01-22 02 +12 2012-10-21 03 +13 1 2013-01-20 02 +12 2013-10-27 03 +13 1 2014-01-19 01 +12 2014-11-02 03 +13 1 2015-01-18 02 +12 2015-11-01 03 +13 1 2016-01-17 02 +12 2016-11-06 03 +13 1 2017-01-15 02 +12 2017-11-05 03 +13 1 2018-01-14 02 +12 2018-11-04 03 +13 1 2019-01-13 02 +12 2019-11-10 03 +13 1 2020-01-12 02 +12 2020-11-08 03 +13 1 2021-01-17 02 +12 2021-11-14 03 +13 1 2022-01-16 02 +12 2022-11-13 03 +13 1 2023-01-15 02 +12 2023-11-12 03 +13 1 2024-01-14 02 +12 2024-11-10 03 +13 1 2025-01-12 02 +12 2025-11-09 03 +13 1 2026-01-18 02 +12 2026-11-08 03 +13 1 2027-01-17 02 +12 2027-11-14 03 +13 1 2028-01-16 02 +12 2028-11-12 03 +13 1 2029-01-14 02 +12 2029-11-11 03 +13 1 2030-01-13 02 +12 2030-11-10 03 +13 1 2031-01-12 02 +12 2031-11-09 03 +13 1 2032-01-18 02 +12 2032-11-14 03 +13 1 2033-01-16 02 +12 2033-11-13 03 +13 1 2034-01-15 02 +12 2034-11-12 03 +13 1 2035-01-14 02 +12 2035-11-11 03 +13 1 2036-01-13 02 +12 2036-11-09 03 +13 1 2037-01-18 02 +12 2037-11-08 03 +13 1 2038-01-17 02 +12 2038-11-14 03 +13 1 2039-01-16 02 +12 2039-11-13 03 +13 1 2040-01-15 02 +12 2040-11-11 03 +13 1 2041-01-13 02 +12 2041-11-10 03 +13 1 2042-01-12 02 +12 2042-11-09 03 +13 1 2043-01-18 02 +12 2043-11-08 03 +13 1 2044-01-17 02 +12 2044-11-13 03 +13 1 2045-01-15 02 +12 2045-11-12 03 +13 1 2046-01-14 02 +12 2046-11-11 03 +13 1 2047-01-13 02 +12 2047-11-10 03 +13 1 2048-01-12 02 +12 2048-11-08 03 +13 1 2049-01-17 02 +12 2049-11-14 03 +13 1 TZ="Pacific/Funafuti" - - +115652 LMT 1901-01-01 00:03:08 +12 TZ="Pacific/Galapagos" - - -055824 LMT 1931-01-01 00:58:24 -05 1985-12-31 23 -06 1992-11-28 01 -05 1 1993-02-04 23 -06 TZ="Pacific/Gambier" - - -085948 LMT 1912-09-30 23:59:48 -09 TZ="Pacific/Guadalcanal" - - +103948 LMT 1912-10-01 00:20:12 +11 TZ="Pacific/Guam" - - -1421 LMT 1845-01-01 00 +0939 LMT 1901-01-01 00:21 +10 GST 1941-12-09 23 +09 1944-07-31 01 +10 GST 1959-06-27 03 +11 GDT 1 1961-01-29 01 +10 GST 1967-09-01 03 +11 GDT 1 1969-01-25 23:01 +10 GST 1969-06-22 03 +11 GDT 1 1969-08-31 01 +10 GST 1970-04-26 03 +11 GDT 1 1970-09-06 01 +10 GST 1971-04-25 03 +11 GDT 1 1971-09-05 01 +10 GST 1973-12-16 03 +11 GDT 1 1974-02-24 01 +10 GST 1976-05-26 03 +11 GDT 1 1976-08-22 01:01 +10 GST 1977-04-24 03 +11 GDT 1 1977-08-28 01 +10 GST 2000-12-23 00 +10 ChST TZ="Pacific/Honolulu" - - -103126 LMT 1896-01-13 12:01:26 -1030 HST 1933-04-30 03 -0930 HDT 1 1933-05-21 11 -1030 HST 1942-02-09 03 -0930 HWT 1 1945-08-14 13:30 -0930 HPT 1 1945-09-30 01 -1030 HST 1947-06-08 02:30 -10 HST TZ="Pacific/Kiritimati" - - -102920 LMT 1900-12-31 23:49:20 -1040 1979-10-01 00:40 -10 1995-01-01 00 +14 TZ="Pacific/Kosrae" - - -130804 LMT 1845-01-01 00 +105156 LMT 1901-01-01 00:08:04 +11 1914-09-30 22 +09 1919-02-01 02 +11 1936-12-31 23 +10 1941-03-31 23 +09 1945-08-01 02 +11 1969-10-01 01 +12 1998-12-31 23 +11 TZ="Pacific/Kwajalein" - - +110920 LMT 1900-12-31 23:50:40 +11 1936-12-31 23 +10 1941-03-31 23 +09 1944-02-06 02 +11 1969-09-30 01 -12 1993-08-22 00 +12 TZ="Pacific/Majuro" - - +112448 LMT 1900-12-31 23:35:12 +11 1914-09-30 22 +09 1919-02-01 02 +11 1936-12-31 23 +10 1941-03-31 23 +09 1944-01-30 02 +11 1969-10-01 01 +12 TZ="Pacific/Marquesas" - - -0918 LMT 1912-09-30 23:48 -0930 TZ="Pacific/Nauru" - - +110740 LMT 1921-01-15 00:22:20 +1130 1942-08-28 21:30 +09 1945-09-08 02:30 +1130 1979-02-10 02:30 +12 TZ="Pacific/Niue" - - -111940 LMT 1900-12-31 23:59:40 -1120 1950-12-31 23:50 -1130 1978-10-01 00:30 -11 TZ="Pacific/Norfolk" - - +111152 LMT 1901-01-01 00:00:08 +1112 1951-01-01 00:18 +1130 1974-10-27 03 +1230 1 1975-03-02 02 +1130 2015-10-04 01:30 +11 2019-10-06 03 +12 1 2020-04-05 02 +11 2020-10-04 03 +12 1 2021-04-04 02 +11 2021-10-03 03 +12 1 2022-04-03 02 +11 2022-10-02 03 +12 1 2023-04-02 02 +11 2023-10-01 03 +12 1 2024-04-07 02 +11 2024-10-06 03 +12 1 2025-04-06 02 +11 2025-10-05 03 +12 1 2026-04-05 02 +11 2026-10-04 03 +12 1 2027-04-04 02 +11 2027-10-03 03 +12 1 2028-04-02 02 +11 2028-10-01 03 +12 1 2029-04-01 02 +11 2029-10-07 03 +12 1 2030-04-07 02 +11 2030-10-06 03 +12 1 2031-04-06 02 +11 2031-10-05 03 +12 1 2032-04-04 02 +11 2032-10-03 03 +12 1 2033-04-03 02 +11 2033-10-02 03 +12 1 2034-04-02 02 +11 2034-10-01 03 +12 1 2035-04-01 02 +11 2035-10-07 03 +12 1 2036-04-06 02 +11 2036-10-05 03 +12 1 2037-04-05 02 +11 2037-10-04 03 +12 1 2038-04-04 02 +11 2038-10-03 03 +12 1 2039-04-03 02 +11 2039-10-02 03 +12 1 2040-04-01 02 +11 2040-10-07 03 +12 1 2041-04-07 02 +11 2041-10-06 03 +12 1 2042-04-06 02 +11 2042-10-05 03 +12 1 2043-04-05 02 +11 2043-10-04 03 +12 1 2044-04-03 02 +11 2044-10-02 03 +12 1 2045-04-02 02 +11 2045-10-01 03 +12 1 2046-04-01 02 +11 2046-10-07 03 +12 1 2047-04-07 02 +11 2047-10-06 03 +12 1 2048-04-05 02 +11 2048-10-04 03 +12 1 2049-04-04 02 +11 2049-10-03 03 +12 1 TZ="Pacific/Noumea" - - +110548 LMT 1912-01-12 23:54:12 +11 1977-12-04 01 +12 1 1978-02-26 23 +11 1978-12-03 01 +12 1 1979-02-26 23 +11 1996-12-01 03 +12 1 1997-03-02 02 +11 TZ="Pacific/Pago_Pago" - - +123712 LMT 1892-07-04 00 -112248 LMT 1911-01-01 00:22:48 -11 SST TZ="Pacific/Palau" - - -150204 LMT 1845-01-01 00 +085756 LMT 1901-01-01 00:02:04 +09 TZ="Pacific/Pitcairn" - - -084020 LMT 1901-01-01 00:10:20 -0830 1998-04-27 00:30 -08 TZ="Pacific/Pohnpei" - - -132708 LMT 1845-01-01 00 +103252 LMT 1901-01-01 00:27:08 +11 1914-09-30 22 +09 1919-02-01 02 +11 1936-12-31 23 +10 1941-03-31 23 +09 1945-08-01 02 +11 TZ="Pacific/Port_Moresby" - - +094840 LMT 1879-12-31 23:59:52 +094832 PMMT 1895-01-01 00:11:28 +10 TZ="Pacific/Rarotonga" - - -103904 LMT 1901-01-01 00:09:04 -1030 1978-11-12 01 -0930 1 1979-03-03 23:30 -10 1979-10-28 00:30 -0930 1 1980-03-01 23:30 -10 1980-10-26 00:30 -0930 1 1981-02-28 23:30 -10 1981-10-25 00:30 -0930 1 1982-03-06 23:30 -10 1982-10-31 00:30 -0930 1 1983-03-05 23:30 -10 1983-10-30 00:30 -0930 1 1984-03-03 23:30 -10 1984-10-28 00:30 -0930 1 1985-03-02 23:30 -10 1985-10-27 00:30 -0930 1 1986-03-01 23:30 -10 1986-10-26 00:30 -0930 1 1987-02-28 23:30 -10 1987-10-25 00:30 -0930 1 1988-03-05 23:30 -10 1988-10-30 00:30 -0930 1 1989-03-04 23:30 -10 1989-10-29 00:30 -0930 1 1990-03-03 23:30 -10 1990-10-28 00:30 -0930 1 1991-03-02 23:30 -10 TZ="Pacific/Tahiti" - - -095816 LMT 1912-09-30 23:58:16 -10 TZ="Pacific/Tarawa" - - +113204 LMT 1901-01-01 00:27:56 +12 TZ="Pacific/Tongatapu" - - +121920 LMT 1901-01-01 00:00:40 +1220 1941-01-01 00:40 +13 1999-10-07 03 +14 1 2000-03-19 02 +13 2000-11-05 03 +14 1 2001-01-28 01 +13 2001-11-04 03 +14 1 2002-01-27 01 +13 2016-11-06 03 +14 1 2017-01-15 02 +13 TZ="Pacific/Wake" - - +110628 LMT 1901-01-01 00:53:32 +12 TZ="Pacific/Wallis" - - +121520 LMT 1900-12-31 23:44:40 +12 TZ="WET" - - +00 WET 1977-04-03 02 +01 WEST 1 1977-09-25 01 +00 WET 1978-04-02 02 +01 WEST 1 1978-10-01 01 +00 WET 1979-04-01 02 +01 WEST 1 1979-09-30 01 +00 WET 1980-04-06 02 +01 WEST 1 1980-09-28 01 +00 WET 1981-03-29 02 +01 WEST 1 1981-09-27 01 +00 WET 1982-03-28 02 +01 WEST 1 1982-09-26 01 +00 WET 1983-03-27 02 +01 WEST 1 1983-09-25 01 +00 WET 1984-03-25 02 +01 WEST 1 1984-09-30 01 +00 WET 1985-03-31 02 +01 WEST 1 1985-09-29 01 +00 WET 1986-03-30 02 +01 WEST 1 1986-09-28 01 +00 WET 1987-03-29 02 +01 WEST 1 1987-09-27 01 +00 WET 1988-03-27 02 +01 WEST 1 1988-09-25 01 +00 WET 1989-03-26 02 +01 WEST 1 1989-09-24 01 +00 WET 1990-03-25 02 +01 WEST 1 1990-09-30 01 +00 WET 1991-03-31 02 +01 WEST 1 1991-09-29 01 +00 WET 1992-03-29 02 +01 WEST 1 1992-09-27 01 +00 WET 1993-03-28 02 +01 WEST 1 1993-09-26 01 +00 WET 1994-03-27 02 +01 WEST 1 1994-09-25 01 +00 WET 1995-03-26 02 +01 WEST 1 1995-09-24 01 +00 WET 1996-03-31 02 +01 WEST 1 1996-10-27 01 +00 WET 1997-03-30 02 +01 WEST 1 1997-10-26 01 +00 WET 1998-03-29 02 +01 WEST 1 1998-10-25 01 +00 WET 1999-03-28 02 +01 WEST 1 1999-10-31 01 +00 WET 2000-03-26 02 +01 WEST 1 2000-10-29 01 +00 WET 2001-03-25 02 +01 WEST 1 2001-10-28 01 +00 WET 2002-03-31 02 +01 WEST 1 2002-10-27 01 +00 WET 2003-03-30 02 +01 WEST 1 2003-10-26 01 +00 WET 2004-03-28 02 +01 WEST 1 2004-10-31 01 +00 WET 2005-03-27 02 +01 WEST 1 2005-10-30 01 +00 WET 2006-03-26 02 +01 WEST 1 2006-10-29 01 +00 WET 2007-03-25 02 +01 WEST 1 2007-10-28 01 +00 WET 2008-03-30 02 +01 WEST 1 2008-10-26 01 +00 WET 2009-03-29 02 +01 WEST 1 2009-10-25 01 +00 WET 2010-03-28 02 +01 WEST 1 2010-10-31 01 +00 WET 2011-03-27 02 +01 WEST 1 2011-10-30 01 +00 WET 2012-03-25 02 +01 WEST 1 2012-10-28 01 +00 WET 2013-03-31 02 +01 WEST 1 2013-10-27 01 +00 WET 2014-03-30 02 +01 WEST 1 2014-10-26 01 +00 WET 2015-03-29 02 +01 WEST 1 2015-10-25 01 +00 WET 2016-03-27 02 +01 WEST 1 2016-10-30 01 +00 WET 2017-03-26 02 +01 WEST 1 2017-10-29 01 +00 WET 2018-03-25 02 +01 WEST 1 2018-10-28 01 +00 WET 2019-03-31 02 +01 WEST 1 2019-10-27 01 +00 WET 2020-03-29 02 +01 WEST 1 2020-10-25 01 +00 WET 2021-03-28 02 +01 WEST 1 2021-10-31 01 +00 WET 2022-03-27 02 +01 WEST 1 2022-10-30 01 +00 WET 2023-03-26 02 +01 WEST 1 2023-10-29 01 +00 WET 2024-03-31 02 +01 WEST 1 2024-10-27 01 +00 WET 2025-03-30 02 +01 WEST 1 2025-10-26 01 +00 WET 2026-03-29 02 +01 WEST 1 2026-10-25 01 +00 WET 2027-03-28 02 +01 WEST 1 2027-10-31 01 +00 WET 2028-03-26 02 +01 WEST 1 2028-10-29 01 +00 WET 2029-03-25 02 +01 WEST 1 2029-10-28 01 +00 WET 2030-03-31 02 +01 WEST 1 2030-10-27 01 +00 WET 2031-03-30 02 +01 WEST 1 2031-10-26 01 +00 WET 2032-03-28 02 +01 WEST 1 2032-10-31 01 +00 WET 2033-03-27 02 +01 WEST 1 2033-10-30 01 +00 WET 2034-03-26 02 +01 WEST 1 2034-10-29 01 +00 WET 2035-03-25 02 +01 WEST 1 2035-10-28 01 +00 WET 2036-03-30 02 +01 WEST 1 2036-10-26 01 +00 WET 2037-03-29 02 +01 WEST 1 2037-10-25 01 +00 WET 2038-03-28 02 +01 WEST 1 2038-10-31 01 +00 WET 2039-03-27 02 +01 WEST 1 2039-10-30 01 +00 WET 2040-03-25 02 +01 WEST 1 2040-10-28 01 +00 WET 2041-03-31 02 +01 WEST 1 2041-10-27 01 +00 WET 2042-03-30 02 +01 WEST 1 2042-10-26 01 +00 WET 2043-03-29 02 +01 WEST 1 2043-10-25 01 +00 WET 2044-03-27 02 +01 WEST 1 2044-10-30 01 +00 WET 2045-03-26 02 +01 WEST 1 2045-10-29 01 +00 WET 2046-03-25 02 +01 WEST 1 2046-10-28 01 +00 WET 2047-03-31 02 +01 WEST 1 2047-10-27 01 +00 WET 2048-03-29 02 +01 WEST 1 2048-10-25 01 +00 WET 2049-03-28 02 +01 WEST 1 2049-10-31 01 +00 WET ./tzdatabase/tzselect.80000644000175000017500000000551513314753111015212 0ustar anthonyanthony.TH TZSELECT 8 .SH NAME tzselect \- select a timezone .SH SYNOPSIS .ie \n(.g .ds - \f(CW-\fP .el ds - \- .B tzselect [ .B \*-c .I coord ] [ .B \*-n .I limit ] [ .B \*-\*-help ] [ .B \*-\*-version ] .SH DESCRIPTION The .B tzselect program asks the user for information about the current location, and outputs the resulting timezone to standard output. The output is suitable as a value for the TZ environment variable. .PP All interaction with the user is done via standard input and standard error. .SH OPTIONS .TP .BI "\*-c " coord Instead of asking for continent and then country and then city, ask for selection from time zones whose largest cities are closest to the location with geographical coordinates .I coord. Use ISO 6709 notation for .I coord, that is, a latitude immediately followed by a longitude. The latitude and longitude should be signed integers followed by an optional decimal point and fraction: positive numbers represent north and east, negative south and west. Latitudes with two and longitudes with three integer digits are treated as degrees; latitudes with four or six and longitudes with five or seven integer digits are treated as .I "DDMM, DDDMM, DDMMSS," or .I DDDMMSS representing .I DD or .I DDD degrees, .I MM minutes, and zero or .I SS seconds, with any trailing fractions represent fractional minutes or (if .I SS is present) seconds. The decimal point is that of the current locale. For example, in the (default) C locale, .B "\*-c\ +40.689\*-074.045" specifies 40.689\(de\|N, 74.045\(de\|W, .B "\*-c\ +4041.4\*-07402.7" specifies 40\(de\|41.4\(fm\|N, 74\(de\|2.7\(fm\|W, and .B "\*-c\ +404121\*-0740240" specifies 40\(de\|41\(fm\|21\(sd\|N, 74\(de\|2\(fm\|40\(sd\|W. If .I coord is not one of the documented forms, the resulting behavior is unspecified. .TP .BI "\*-n " limit When .B \*-c is used, display the closest .I limit locations (default 10). .TP .B "\*-\*-help" Output help information and exit. .TP .B "\*-\*-version" Output version information and exit. .SH "ENVIRONMENT VARIABLES" .TP \f3AWK\fP Name of a Posix-compliant .I awk program (default: .BR awk ). .TP \f3TZDIR\fP Name of the directory containing timezone data files (default: .BR /usr/share/zoneinfo ). .SH FILES .TP \f2TZDIR\fP\f3/iso3166.tab\fP Table of ISO 3166 2-letter country codes and country names. .TP \f2TZDIR\fP\f3/zone1970.tab\fP Table of country codes, latitude and longitude, timezones, and descriptive comments. .TP \f2TZDIR\fP\f3/\fP\f2TZ\fP Timezone data file for timezone \f2TZ\fP. .SH "EXIT STATUS" The exit status is zero if a timezone was successfully obtained from the user, nonzero otherwise. .SH "SEE ALSO" newctime(3), tzfile(5), zdump(8), zic(8) .SH NOTES Applications should not assume that .BR tzselect 's output matches the user's political preferences. .\" This file is in the public domain, so clarified as of .\" 2009-05-17 by Arthur David Olson. ./tzdatabase/Makefile0000644000175000017500000013460414276556501014742 0ustar anthonyanthony# Make and install tzdb code and data. # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. # Package name for the code distribution. PACKAGE= tzcode # Version number for the distribution, overridden in the 'tarballs' rule below. VERSION= unknown # Email address for bug reports. BUGEMAIL= tz@iana.org # DATAFORM selects the data format. # Available formats represent essentially the same data, albeit # possibly with minor discrepancies that users are not likely to notice. # To get new features and the best data right away, use: # DATAFORM= vanguard # To wait a while before using new features, to give downstream users # time to upgrade zic (the default), use: # DATAFORM= main # To wait even longer for new features, use: # DATAFORM= rearguard # Rearguard users might also want "ZFLAGS = -b fat"; see below. DATAFORM= main # Change the line below for your timezone (after finding the one you want in # one of the $(TDATA) source files, or adding it to a source file). # Alternatively, if you discover you've got the wrong timezone, you can just # 'zic -l -' to remove it, or 'zic -l rightzone' to change it. # Use the command # make zonenames # to get a list of the values you can use for LOCALTIME. LOCALTIME= Factory # The POSIXRULES macro controls interpretation of nonstandard and obsolete # POSIX-like TZ settings like TZ='EET-2EEST' that lack DST transition rules. # Such a setting uses the rules in a template file to determine # "spring forward" and "fall back" days and times; the environment # variable itself specifies UT offsets of standard and daylight saving time. # # If POSIXRULES is '-', no template is installed; this is the default. # # Any other value for POSIXRULES is obsolete and should not be relied on, as: # * It does not work correctly in popular implementations such as GNU/Linux. # * It does not work even in tzcode, except for historical timestamps # that precede the last explicit transition in the POSIXRULES file. # Hence it typically does not work for current and future timestamps. # In short, software should avoid ruleless settings like TZ='EET-2EEST' # and so should not depend on the value of POSIXRULES. # # If, despite the above, you want a template for handling these settings, # you can change the line below (after finding the timezone you want in the # one of the $(TDATA) source files, or adding it to a source file). # Alternatively, if you discover you've got the wrong timezone, you can just # 'zic -p -' to remove it, or 'zic -p rightzone' to change it. # Use the command # make zonenames # to get a list of the values you can use for POSIXRULES. POSIXRULES= - # Also see TZDEFRULESTRING below, which takes effect only # if the time zone files cannot be accessed. # Installation locations. # # The defaults are suitable for Debian, except that if REDO is # posix_right or right_posix then files that Debian puts under # /usr/share/zoneinfo/posix and /usr/share/zoneinfo/right are instead # put under /usr/share/zoneinfo-posix and /usr/share/zoneinfo-leaps, # respectively. Problems with the Debian approach are discussed in # the commentary for the right_posix rule (below). # Destination directory, which can be used for staging. # 'make DESTDIR=/stage install' installs under /stage (e.g., to # /stage/etc/localtime instead of to /etc/localtime). Files under # /stage are not intended to work as-is, but can be copied by hand to # the root directory later. If DESTDIR is empty, 'make install' does # not stage, but installs directly into production locations. DESTDIR = # Everything is installed into subdirectories of TOPDIR, and used there. # TOPDIR should be empty (meaning the root directory), # or a directory name that does not end in "/". # TOPDIR should be empty or an absolute name unless you're just testing. TOPDIR = # The default local timezone is taken from the file TZDEFAULT. TZDEFAULT = $(TOPDIR)/etc/localtime # The subdirectory containing installed program and data files, and # likewise for installed files that can be shared among architectures. # These should be relative file names. USRDIR = usr USRSHAREDIR = $(USRDIR)/share # "Compiled" timezone information is placed in the "TZDIR" directory # (and subdirectories). # TZDIR_BASENAME should not contain "/" and should not be ".", ".." or empty. TZDIR_BASENAME= zoneinfo TZDIR = $(TOPDIR)/$(USRSHAREDIR)/$(TZDIR_BASENAME) # The "tzselect" and (if you do "make INSTALL") "date" commands go in: BINDIR = $(TOPDIR)/$(USRDIR)/bin # The "zdump" command goes in: ZDUMPDIR = $(BINDIR) # The "zic" command goes in: ZICDIR = $(TOPDIR)/$(USRDIR)/sbin # Manual pages go in subdirectories of. . . MANDIR = $(TOPDIR)/$(USRSHAREDIR)/man # Library functions are put in an archive in LIBDIR. LIBDIR = $(TOPDIR)/$(USRDIR)/lib # Types to try, as an alternative to time_t. TIME_T_ALTERNATIVES = $(TIME_T_ALTERNATIVES_HEAD) $(TIME_T_ALTERNATIVES_TAIL) TIME_T_ALTERNATIVES_HEAD = int_least64_t TIME_T_ALTERNATIVES_TAIL = int_least32_t uint_least32_t uint_least64_t # What kind of TZif data files to generate. (TZif is the binary time # zone data format that zic generates; see Internet RFC 8536.) # If you want only POSIX time, with time values interpreted as # seconds since the epoch (not counting leap seconds), use # REDO= posix_only # below. If you want only "right" time, with values interpreted # as seconds since the epoch (counting leap seconds), use # REDO= right_only # below. If you want both sets of data available, with leap seconds not # counted normally, use # REDO= posix_right # below. If you want both sets of data available, with leap seconds counted # normally, use # REDO= right_posix # below. POSIX mandates that leap seconds not be counted; for compatibility # with it, use "posix_only" or "posix_right". Use POSIX time on systems with # leap smearing; this can work better than unsmeared "right" time with # applications that are not leap second aware, and is closer to unsmeared # "right" time than unsmeared POSIX time is (e.g., 0.5 vs 1.0 s max error). REDO= posix_right # Whether to put an "Expires" line in the leapseconds file. # Use EXPIRES_LINE=1 to put the line in, 0 to omit it. # The EXPIRES_LINE value matters only if REDO's value contains "right". # If you change EXPIRES_LINE, remove the leapseconds file before running "make". # zic's support for the Expires line was introduced in tzdb 2020a, # and was modified in tzdb 2021b to generate version 4 TZif files. # EXPIRES_LINE defaults to 0 for now so that the leapseconds file # can be given to pre-2020a zic implementations and so that TZif files # built by newer zic implementations can be read by pre-2021b libraries. EXPIRES_LINE= 0 # To install data in text form that has all the information of the TZif data, # (optionally incorporating leap second information), use # TZDATA_TEXT= tzdata.zi leapseconds # To install text data without leap second information (e.g., because # REDO='posix_only'), use # TZDATA_TEXT= tzdata.zi # To avoid installing text data, use # TZDATA_TEXT= TZDATA_TEXT= leapseconds tzdata.zi # For backward-compatibility links for old zone names, use # BACKWARD= backward # To omit these links, use # BACKWARD= BACKWARD= backward # If you want out-of-scope and often-wrong data from the file 'backzone', # but only for entries listed in the backward-compatibility file zone.tab, use # PACKRATDATA= backzone # PACKRATLIST= zone.tab # If you want all the 'backzone' data, use # PACKRATDATA= backzone # PACKRATLIST= # To omit this data, use # PACKRATDATA= # PACKRATLIST= PACKRATDATA= PACKRATLIST= # The name of a locale using the UTF-8 encoding, used during self-tests. # The tests are skipped if the name does not appear to work on this system. UTF8_LOCALE= en_US.utf8 # Non-default libraries needed to link. LDLIBS= # Add the following to the end of the "CFLAGS=" line as needed to override # defaults specified in the source code. "-DFOO" is equivalent to "-DFOO=1". # -DDEPRECATE_TWO_DIGIT_YEARS for optional runtime warnings about strftime # formats that generate only the last two digits of year numbers # -DEPOCH_LOCAL if the 'time' function returns local time not UT # -DEPOCH_OFFSET=N if the 'time' function returns a value N greater # than what POSIX specifies, assuming local time is UT. # For example, N is 252460800 on AmigaOS. # -DHAVE_DECL_ASCTIME_R=0 if does not declare asctime_r # -DHAVE_DECL_ENVIRON if declares 'environ' # -DHAVE_DIRECT_H if mkdir needs (MS-Windows) # -DHAVE_GENERIC=0 if _Generic does not work # -DHAVE_GETTEXT if 'gettext' works (e.g., GNU/Linux, FreeBSD, Solaris) # -DHAVE_INCOMPATIBLE_CTIME_R if your system's time.h declares # ctime_r and asctime_r incompatibly with the POSIX standard # (Solaris when _POSIX_PTHREAD_SEMANTICS is not defined). # -DHAVE_INTTYPES_H if you have a non-C99 compiler with # -DHAVE_LINK=0 if your system lacks a link function # -DHAVE_LOCALTIME_R=0 if your system lacks a localtime_r function # -DHAVE_LOCALTIME_RZ=0 if you do not want zdump to use localtime_rz # localtime_rz can make zdump significantly faster, but is nonstandard. # -DHAVE_MALLOC_ERRNO=0 if malloc etc. do not set errno on failure. # -DHAVE_POSIX_DECLS=0 if your system's include files do not declare # functions like 'link' or variables like 'tzname' required by POSIX # -DHAVE_SNPRINTF=0 if your system lacks the snprintf function # -DHAVE_STDBOOL_H if you have a non-C99 compiler with # -DHAVE_STDINT_H if you have a non-C99 compiler with # -DHAVE_STRFTIME_L if declares locale_t and strftime_l # -DHAVE_STRDUP=0 if your system lacks the strdup function # -DHAVE_STRTOLL=0 if your system lacks the strtoll function # -DHAVE_SYMLINK=0 if your system lacks the symlink function # -DHAVE_SYS_STAT_H=0 if your compiler lacks a # -DHAVE_TZSET=0 if your system lacks a tzset function # -DHAVE_UNISTD_H=0 if your compiler lacks a # -Dlocale_t=XXX if your system uses XXX instead of locale_t # -DRESERVE_STD_EXT_IDS if your platform reserves standard identifiers # with external linkage, e.g., applications cannot define 'localtime'. # -Dssize_t=long on hosts like MS-Windows that lack ssize_t # -DSUPPRESS_TZDIR to not prepend TZDIR to file names; this has # security implications and is not recommended for general use # -DTHREAD_SAFE to make localtime.c thread-safe, as POSIX requires; # not needed by the main-program tz code, which is single-threaded. # Append other compiler flags as needed, e.g., -pthread on GNU/Linux. # -Dtime_tz=\"T\" to use T as the time_t type, rather than the system time_t # This is intended for internal use only; it mangles external names. # -DTZ_DOMAIN=\"foo\" to use "foo" for gettext domain name; default is "tz" # -DTZ_DOMAINDIR=\"/path\" to use "/path" for gettext directory; # the default is system-supplied, typically "/usr/lib/locale" # -DTZDEFRULESTRING=\",date/time,date/time\" to default to the specified # DST transitions if the time zone files cannot be accessed # -DUNINIT_TRAP if reading uninitialized storage can cause problems # other than simply getting garbage data # -DUSE_LTZ=0 to build zdump with the system time zone library # Also set TZDOBJS=zdump.o and CHECK_TIME_T_ALTERNATIVES= below. # -DZIC_BLOAT_DEFAULT=\"fat\" to default zic's -b option to "fat", and # similarly for "slim". Fat TZif files work around incompatibilities # and bugs in some TZif readers, notably readers that mishandle 64-bit # data in TZif files. Slim TZif files are more efficient and do not # work around these incompatibilities and bugs. If not given, the # default is "slim". # -DZIC_MAX_ABBR_LEN_WO_WARN=3 # (or some other number) to set the maximum time zone abbreviation length # that zic will accept without a warning (the default is 6) # $(GCC_DEBUG_FLAGS) if you are using recent GCC and want lots of checking # Select instrumentation via "make GCC_INSTRUMENT='whatever'". GCC_INSTRUMENT = \ -fsanitize=undefined -fsanitize-address-use-after-scope \ -fsanitize-undefined-trap-on-error -fstack-protector # Omit -fanalyzer from GCC_DEBUG_FLAGS, as it makes GCC too slow. GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \ $(GCC_INSTRUMENT) \ -Wall -Wextra \ -Walloc-size-larger-than=100000 -Warray-bounds=2 \ -Wbad-function-cast -Wbidi-chars=any,ucn -Wcast-align=strict -Wdate-time \ -Wdeclaration-after-statement -Wdouble-promotion \ -Wduplicated-branches -Wduplicated-cond \ -Wformat=2 -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation \ -Winit-self -Wlogical-op \ -Wmissing-declarations -Wmissing-prototypes -Wnested-externs \ -Wnull-dereference \ -Wold-style-definition -Woverlength-strings -Wpointer-arith \ -Wshadow -Wshift-overflow=2 -Wstrict-overflow \ -Wstrict-prototypes -Wstringop-overflow=4 \ -Wstringop-truncation -Wsuggest-attribute=cold \ -Wsuggest-attribute=const -Wsuggest-attribute=format \ -Wsuggest-attribute=malloc \ -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure \ -Wtrampolines -Wundef -Wuninitialized -Wunused-macros -Wuse-after-free=3 \ -Wvariadic-macros -Wvla -Wwrite-strings \ -Wno-address -Wno-format-nonliteral -Wno-sign-compare \ -Wno-type-limits -Wno-unused-parameter # # If your system has a "GMT offset" field in its "struct tm"s # (or if you decide to add such a field in your system's "time.h" file), # add the name to a define such as # -DTM_GMTOFF=tm_gmtoff # to the end of the "CFLAGS=" line. If not defined, the code attempts to # guess TM_GMTOFF from other macros; define NO_TM_GMTOFF to suppress this. # Similarly, if your system has a "zone abbreviation" field, define # -DTM_ZONE=tm_zone # and define NO_TM_ZONE to suppress any guessing. Although these two fields # not required by POSIX, a future version of POSIX is planned to require them # and they are widely available on GNU/Linux and BSD systems. # # The next batch of options control support for external variables # exported by tzcode. In practice these variables are less useful # than TM_GMTOFF and TM_ZONE. However, most of them are standardized. # # # # To omit or support the external variable "tzname", add one of: # # -DHAVE_TZNAME=0 # do not support "tzname" # # -DHAVE_TZNAME=1 # support "tzname", which is defined by system library # # -DHAVE_TZNAME=2 # support and define "tzname" # # to the "CFLAGS=" line. "tzname" is required by POSIX 1988 and later. # # If not defined, the code attempts to guess HAVE_TZNAME from other macros. # # Warning: unless time_tz is also defined, HAVE_TZNAME=1 can cause # # crashes when combined with some platforms' standard libraries, # # presumably due to memory allocation issues. # # # # To omit or support the external variables "timezone" and "daylight", add # # -DUSG_COMPAT=0 # do not support # # -DUSG_COMPAT=1 # support, and variables are defined by system library # # -DUSG_COMPAT=2 # support and define variables # # to the "CFLAGS=" line; "timezone" and "daylight" are inspired by # # Unix Systems Group code and are required by POSIX 2008 (with XSI) and later. # # If not defined, the code attempts to guess USG_COMPAT from other macros. # # # # To support the external variable "altzone", add # # -DALTZONE=0 # do not support # # -DALTZONE=1 # support "altzone", which is defined by system library # # -DALTZONE=2 # support and define "altzone" # # to the end of the "CFLAGS=" line; although "altzone" appeared in # # System V Release 3.1 it has not been standardized. # # If not defined, the code attempts to guess ALTZONE from other macros. # # If you want functions that were inspired by early versions of X3J11's work, # add # -DSTD_INSPIRED # to the end of the "CFLAGS=" line. This arranges for the functions # "offtime", "timelocal", "timegm", "timeoff", # "posix2time", and "time2posix" to be added to the time conversion library. # "offtime" is like "gmtime" except that it accepts a second (long) argument # that gives an offset to add to the time_t when converting it. # "timelocal" is equivalent to "mktime". # "timegm" is like "timelocal" except that it turns a struct tm into # a time_t using UT (rather than local time as "timelocal" does). # "timeoff" is like "timegm" except that it accepts a second (long) argument # that gives an offset to use when converting to a time_t. # "posix2time" and "time2posix" are described in an included manual page. # X3J11's work does not describe any of these functions. # These functions may well disappear in future releases of the time # conversion package. # # If you don't want functions that were inspired by NetBSD, add # -DNETBSD_INSPIRED=0 # to the end of the "CFLAGS=" line. Otherwise, the functions # "localtime_rz", "mktime_z", "tzalloc", and "tzfree" are added to the # time library, and if STD_INSPIRED is also defined the functions # "posix2time_z" and "time2posix_z" are added as well. # The functions ending in "_z" (or "_rz") are like their unsuffixed # (or suffixed-by-"_r") counterparts, except with an extra first # argument of opaque type timezone_t that specifies the timezone. # "tzalloc" allocates a timezone_t value, and "tzfree" frees it. # # If you want to allocate state structures in localtime, add # -DALL_STATE # to the end of the "CFLAGS=" line. Storage is obtained by calling malloc. # # NIST-PCTS:151-2, Version 1.4, (1993-12-03) is a test suite put # out by the National Institute of Standards and Technology # which claims to test C and Posix conformance. If you want to pass PCTS, add # -DPCTS # to the end of the "CFLAGS=" line. # # If you want strict compliance with XPG4 as of 1994-04-09, add # -DXPG4_1994_04_09 # to the end of the "CFLAGS=" line. This causes "strftime" to always return # 53 as a week number (rather than 52 or 53) for January days before # January's first Monday when a "%V" format is used and January 1 # falls on a Friday, Saturday, or Sunday. CFLAGS= # Linker flags. Default to $(LFLAGS) for backwards compatibility # to release 2012h and earlier. LDFLAGS= $(LFLAGS) # For leap seconds, this Makefile uses LEAPSECONDS='-L leapseconds' in # submake command lines. The default is no leap seconds. LEAPSECONDS= # The zic command and its arguments. zic= ./zic ZIC= $(zic) $(ZFLAGS) # To shrink the size of installed TZif files, # append "-r @N" to omit data before N-seconds-after-the-Epoch. # To grow the files and work around older application bugs, append "-b fat"; # see ZIC_BLOAT_DEFAULT above. # See the zic man page for more about -b and -r. ZFLAGS= # How to use zic to install TZif files. ZIC_INSTALL= $(ZIC) -d '$(DESTDIR)$(TZDIR)' $(LEAPSECONDS) # The name of a Posix-compliant 'awk' on your system. # mawk 1.3.3 and Solaris 10 /usr/bin/awk do not work. # Also, it is better (though not essential) if 'awk' supports UTF-8, # and unfortunately mawk and busybox awk do not support UTF-8. # Try AWK=gawk or AWK=nawk if your awk has the abovementioned problems. AWK= awk # The full path name of a Posix-compliant shell, preferably one that supports # the Korn shell's 'select' statement as an extension. # These days, Bash is the most popular. # It should be OK to set this to /bin/sh, on platforms where /bin/sh # lacks 'select' or doesn't completely conform to Posix, but /bin/bash # is typically nicer if it works. KSHELL= /bin/bash # Name of curl , used for HTML validation. CURL= curl # Name of GNU Privacy Guard , used to sign distributions. GPG= gpg # This expensive test requires USE_LTZ. # To suppress it, define this macro to be empty. CHECK_TIME_T_ALTERNATIVES = check_time_t_alternatives # SAFE_CHAR is a regular expression that matches a safe character. # Some parts of this distribution are limited to safe characters; # others can use any UTF-8 character. # For now, the safe characters are a safe subset of ASCII. # The caller must set the shell variable 'sharp' to the character '#', # since Makefile macros cannot contain '#'. # TAB_CHAR is a single tab character, in single quotes. TAB_CHAR= ' ' SAFE_CHARSET1= $(TAB_CHAR)' !\"'$$sharp'$$%&'\''()*+,./0123456789:;<=>?@' SAFE_CHARSET2= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\^_`' SAFE_CHARSET3= 'abcdefghijklmnopqrstuvwxyz{|}~' SAFE_CHARSET= $(SAFE_CHARSET1)$(SAFE_CHARSET2)$(SAFE_CHARSET3) SAFE_CHAR= '[]'$(SAFE_CHARSET)'-]' # These characters are Latin-1, and so are likely to be displayable # even in editors with limited character sets. UNUSUAL_OK_LATIN_1 = «°±»½¾× # This IPA symbol is represented in Unicode as the composition of # U+0075 and U+032F, and U+032F is not considered alphabetic by some # grep implementations that do not grok composition. UNUSUAL_OK_IPA = u̯ # Non-ASCII non-letters that OK_CHAR allows, as these characters are # useful in commentary. UNUSUAL_OK_CHARSET= $(UNUSUAL_OK_LATIN_1)$(UNUSUAL_OK_IPA) # Put this in a bracket expression to match spaces. s = [:space:] # OK_CHAR matches any character allowed in the distributed files. # This is the same as SAFE_CHAR, except that UNUSUAL_OK_CHARSET and # multibyte letters are also allowed so that commentary can contain a # few safe symbols and people's names and can quote non-English sources. # Other non-letters are limited to ASCII renderings for the # convenience of maintainers using XEmacs 21.5.34, which by default # mishandles Unicode characters U+0100 and greater. OK_CHAR= '[][:alpha:]$(UNUSUAL_OK_CHARSET)'$(SAFE_CHARSET)'-]' # SAFE_LINE matches a line of safe characters. # SAFE_SHARP_LINE is similar, except any OK character can follow '#'; # this is so that comments can contain non-ASCII characters. # OK_LINE matches a line of OK characters. SAFE_LINE= '^'$(SAFE_CHAR)'*$$' SAFE_SHARP_LINE='^'$(SAFE_CHAR)'*('$$sharp$(OK_CHAR)'*)?$$' OK_LINE= '^'$(OK_CHAR)'*$$' # Flags to give 'tar' when making a distribution. # Try to use flags appropriate for GNU tar. GNUTARFLAGS= --format=pax --pax-option='delete=atime,delete=ctime' \ --numeric-owner --owner=0 --group=0 \ --mode=go+u,go-w --sort=name TARFLAGS= `if tar $(GNUTARFLAGS) --version >/dev/null 2>&1; \ then echo $(GNUTARFLAGS); \ else :; \ fi` # Flags to give 'gzip' when making a distribution. GZIPFLAGS= -9n ############################################################################### #MAKE= make cc= cc CC= $(cc) -DTZDIR='"$(TZDIR)"' AR= ar # ':' on typical hosts; 'ranlib' on the ancient hosts that still need ranlib. RANLIB= : TZCOBJS= zic.o TZDOBJS= zdump.o localtime.o asctime.o strftime.o DATEOBJS= date.o localtime.o strftime.o asctime.o LIBSRCS= localtime.c asctime.c difftime.c strftime.c LIBOBJS= localtime.o asctime.o difftime.o strftime.o HEADERS= tzfile.h private.h NONLIBSRCS= zic.c zdump.c NEWUCBSRCS= date.c SOURCES= $(HEADERS) $(LIBSRCS) $(NONLIBSRCS) $(NEWUCBSRCS) \ tzselect.ksh workman.sh MANS= newctime.3 newstrftime.3 newtzset.3 time2posix.3 \ tzfile.5 tzselect.8 zic.8 zdump.8 MANTXTS= newctime.3.txt newstrftime.3.txt newtzset.3.txt \ time2posix.3.txt \ tzfile.5.txt tzselect.8.txt zic.8.txt zdump.8.txt \ date.1.txt COMMON= calendars CONTRIBUTING LICENSE Makefile \ NEWS README SECURITY theory.html version WEB_PAGES= tz-art.html tz-how-to.html tz-link.html CHECK_WEB_PAGES=check_theory.html check_tz-art.html \ check_tz-how-to.html check_tz-link.html DOCS= $(MANS) date.1 $(MANTXTS) $(WEB_PAGES) PRIMARY_YDATA= africa antarctica asia australasia \ europe northamerica southamerica YDATA= $(PRIMARY_YDATA) etcetera NDATA= factory TDATA_TO_CHECK= $(YDATA) $(NDATA) backward TDATA= $(YDATA) $(NDATA) $(BACKWARD) ZONETABLES= zone1970.tab zone.tab TABDATA= iso3166.tab $(TZDATA_TEXT) $(ZONETABLES) LEAP_DEPS= leapseconds.awk leap-seconds.list TZDATA_ZI_DEPS= ziguard.awk zishrink.awk version $(TDATA) \ $(PACKRATDATA) $(PACKRATLIST) DSTDATA_ZI_DEPS= ziguard.awk $(TDATA) $(PACKRATDATA) $(PACKRATLIST) DATA= $(TDATA_TO_CHECK) backzone iso3166.tab leap-seconds.list \ leapseconds $(ZONETABLES) AWK_SCRIPTS= checklinks.awk checktab.awk leapseconds.awk \ ziguard.awk zishrink.awk MISC= $(AWK_SCRIPTS) TZS_YEAR= 2050 TZS_CUTOFF_FLAG= -c $(TZS_YEAR) TZS= to$(TZS_YEAR).tzs TZS_NEW= to$(TZS_YEAR)new.tzs TZS_DEPS= $(YDATA) asctime.c localtime.c \ private.h tzfile.h zdump.c zic.c TZDATA_DIST = $(COMMON) $(DATA) $(MISC) # EIGHT_YARDS is just a yard short of the whole ENCHILADA. EIGHT_YARDS = $(TZDATA_DIST) $(DOCS) $(SOURCES) tzdata.zi ENCHILADA = $(EIGHT_YARDS) $(TZS) # Consult these files when deciding whether to rebuild the 'version' file. # This list is not the same as the output of 'git ls-files', since # .gitignore is not distributed. VERSION_DEPS= \ calendars CONTRIBUTING LICENSE Makefile NEWS README SECURITY \ africa antarctica asctime.c asia australasia \ backward backzone \ checklinks.awk checktab.awk \ date.1 date.c difftime.c \ etcetera europe factory iso3166.tab \ leap-seconds.list leapseconds.awk localtime.c \ newctime.3 newstrftime.3 newtzset.3 northamerica \ private.h southamerica strftime.c theory.html \ time2posix.3 tz-art.html tz-how-to.html tz-link.html \ tzfile.5 tzfile.h tzselect.8 tzselect.ksh \ workman.sh zdump.8 zdump.c zic.8 zic.c \ ziguard.awk zishrink.awk \ zone.tab zone1970.tab # And for the benefit of csh users on systems that assume the user # shell should be used to handle commands in Makefiles. . . SHELL= /bin/sh all: tzselect zic zdump libtz.a $(TABDATA) \ vanguard.zi main.zi rearguard.zi ALL: all date $(ENCHILADA) install: all $(DATA) $(REDO) $(MANS) mkdir -p '$(DESTDIR)$(BINDIR)' \ '$(DESTDIR)$(ZDUMPDIR)' '$(DESTDIR)$(ZICDIR)' \ '$(DESTDIR)$(LIBDIR)' \ '$(DESTDIR)$(MANDIR)/man3' '$(DESTDIR)$(MANDIR)/man5' \ '$(DESTDIR)$(MANDIR)/man8' $(ZIC_INSTALL) -l $(LOCALTIME) \ `case '$(POSIXRULES)' in ?*) echo '-p';; esac \ ` $(POSIXRULES) \ -t '$(DESTDIR)$(TZDEFAULT)' cp -f $(TABDATA) '$(DESTDIR)$(TZDIR)/.' cp tzselect '$(DESTDIR)$(BINDIR)/.' cp zdump '$(DESTDIR)$(ZDUMPDIR)/.' cp zic '$(DESTDIR)$(ZICDIR)/.' cp libtz.a '$(DESTDIR)$(LIBDIR)/.' $(RANLIB) '$(DESTDIR)$(LIBDIR)/libtz.a' cp -f newctime.3 newtzset.3 '$(DESTDIR)$(MANDIR)/man3/.' cp -f tzfile.5 '$(DESTDIR)$(MANDIR)/man5/.' cp -f tzselect.8 zdump.8 zic.8 '$(DESTDIR)$(MANDIR)/man8/.' INSTALL: ALL install date.1 mkdir -p '$(DESTDIR)$(BINDIR)' '$(DESTDIR)$(MANDIR)/man1' cp date '$(DESTDIR)$(BINDIR)/.' cp -f date.1 '$(DESTDIR)$(MANDIR)/man1/.' # Calculate version number from git, if available. # Otherwise, use $(VERSION) unless it is "unknown" and there is already # a 'version' file, in which case reuse the existing 'version' contents # and append "-dirty" if the contents do not already end in "-dirty". version: $(VERSION_DEPS) { (type git) >/dev/null 2>&1 && \ V=`git describe --match '[0-9][0-9][0-9][0-9][a-z]*' \ --abbrev=7 --dirty` || \ if test '$(VERSION)' = unknown && V=`cat $@`; then \ case $$V in *-dirty);; *) V=$$V-dirty;; esac; \ else \ V='$(VERSION)'; \ fi; } && \ printf '%s\n' "$$V" >$@.out mv $@.out $@ # These files can be tailored by setting BACKWARD, PACKRATDATA, PACKRATLIST. vanguard.zi main.zi rearguard.zi: $(DSTDATA_ZI_DEPS) $(AWK) \ -v DATAFORM=`expr $@ : '\(.*\).zi'` \ -v PACKRATDATA='$(PACKRATDATA)' \ -v PACKRATLIST='$(PACKRATLIST)' \ -f ziguard.awk \ $(TDATA) $(PACKRATDATA) >$@.out mv $@.out $@ # This file has a version comment that attempts to capture any tailoring # via BACKWARD, DATAFORM, PACKRATDATA, PACKRATLIST, and REDO. tzdata.zi: $(DATAFORM).zi version zishrink.awk version=`sed 1q version` && \ LC_ALL=C $(AWK) \ -v dataform='$(DATAFORM)' \ -v deps='$(DSTDATA_ZI_DEPS) zishrink.awk' \ -v redo='$(REDO)' \ -v version="$$version" \ -f zishrink.awk \ $(DATAFORM).zi >$@.out mv $@.out $@ version.h: version VERSION=`cat version` && printf '%s\n' \ 'static char const PKGVERSION[]="($(PACKAGE)) ";' \ "static char const TZVERSION[]=\"$$VERSION\";" \ 'static char const REPORT_BUGS_TO[]="$(BUGEMAIL)";' \ >$@.out mv $@.out $@ zdump: $(TZDOBJS) $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZDOBJS) $(LDLIBS) zic: $(TZCOBJS) $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZCOBJS) $(LDLIBS) leapseconds: $(LEAP_DEPS) $(AWK) -v EXPIRES_LINE=$(EXPIRES_LINE) \ -f leapseconds.awk leap-seconds.list >$@.out mv $@.out $@ # Arguments to pass to submakes of install_data. # They can be overridden by later submake arguments. INSTALLARGS = \ BACKWARD='$(BACKWARD)' \ DESTDIR='$(DESTDIR)' \ LEAPSECONDS='$(LEAPSECONDS)' \ PACKRATDATA='$(PACKRATDATA)' \ PACKRATLIST='$(PACKRATLIST)' \ TZDEFAULT='$(TZDEFAULT)' \ TZDIR='$(TZDIR)' \ ZIC='$(ZIC)' INSTALL_DATA_DEPS = zic leapseconds tzdata.zi # 'make install_data' installs one set of TZif files. install_data: $(INSTALL_DATA_DEPS) $(ZIC_INSTALL) tzdata.zi posix_only: $(INSTALL_DATA_DEPS) $(MAKE) $(INSTALLARGS) LEAPSECONDS= install_data right_only: $(INSTALL_DATA_DEPS) $(MAKE) $(INSTALLARGS) LEAPSECONDS='-L leapseconds' \ install_data # In earlier versions of this makefile, the other two directories were # subdirectories of $(TZDIR). However, this led to configuration errors. # For example, with posix_right under the earlier scheme, # TZ='right/Australia/Adelaide' got you localtime with leap seconds, # but gmtime without leap seconds, which led to problems with applications # like sendmail that subtract gmtime from localtime. # Therefore, the other two directories are now siblings of $(TZDIR). # You must replace all of $(TZDIR) to switch from not using leap seconds # to using them, or vice versa. right_posix: right_only rm -fr '$(DESTDIR)$(TZDIR)-leaps' ln -s '$(TZDIR_BASENAME)' '$(DESTDIR)$(TZDIR)-leaps' || \ $(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-leaps' right_only $(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-posix' posix_only posix_right: posix_only rm -fr '$(DESTDIR)$(TZDIR)-posix' ln -s '$(TZDIR_BASENAME)' '$(DESTDIR)$(TZDIR)-posix' || \ $(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-posix' posix_only $(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-leaps' right_only zones: $(REDO) # dummy.zd is not a real file; it is mentioned here only so that the # top-level 'make' does not have a syntax error. ZDS = dummy.zd # Rule used only by submakes invoked by the $(TZS_NEW) rule. # It is separate so that GNU 'make -j' can run instances in parallel. $(ZDS): zdump ./zdump -i $(TZS_CUTOFF_FLAG) '$(wd)/'$$(expr $@ : '\(.*\).zd') \ >$@ TZS_NEW_DEPS = tzdata.zi zdump zic $(TZS_NEW): $(TZS_NEW_DEPS) rm -fr tzs$(TZS_YEAR).dir mkdir tzs$(TZS_YEAR).dir $(zic) -d tzs$(TZS_YEAR).dir tzdata.zi $(AWK) '/^L/{print "Link\t" $$2 "\t" $$3}' \ tzdata.zi | LC_ALL=C sort >$@.out wd=`pwd` && \ x=`$(AWK) '/^Z/{print "tzs$(TZS_YEAR).dir/" $$2 ".zd"}' \ tzdata.zi \ | LC_ALL=C sort -t . -k 2,2` && \ set x $$x && \ shift && \ ZDS=$$* && \ $(MAKE) wd="$$wd" TZS_CUTOFF_FLAG="$(TZS_CUTOFF_FLAG)" \ ZDS="$$ZDS" $$ZDS && \ sed 's,^TZ=".*\.dir/,TZ=",' $$ZDS >>$@.out rm -fr tzs$(TZS_YEAR).dir mv $@.out $@ # If $(TZS) exists but 'make check_tzs' fails, a maintainer should inspect the # failed output and fix the inconsistency, perhaps by running 'make force_tzs'. $(TZS): touch $@ force_tzs: $(TZS_NEW) cp $(TZS_NEW) $(TZS) libtz.a: $(LIBOBJS) rm -f $@ $(AR) -rc $@ $(LIBOBJS) $(RANLIB) $@ date: $(DATEOBJS) $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(DATEOBJS) $(LDLIBS) tzselect: tzselect.ksh version VERSION=`cat version` && sed \ -e 's|#!/bin/bash|#!$(KSHELL)|g' \ -e 's|AWK=[^}]*|AWK='\''$(AWK)'\''|g' \ -e 's|\(PKGVERSION\)=.*|\1='\''($(PACKAGE)) '\''|' \ -e 's|\(REPORT_BUGS_TO\)=.*|\1=$(BUGEMAIL)|' \ -e 's|TZDIR=[^}]*|TZDIR=$(TZDIR)|' \ -e 's|\(TZVERSION\)=.*|\1='"$$VERSION"'|' \ <$@.ksh >$@.out chmod +x $@.out mv $@.out $@ check: check_character_set check_white_space check_links \ check_name_lengths check_slashed_abbrs check_sorted \ check_tables check_web check_ziguard check_zishrink check_tzs check_character_set: $(ENCHILADA) test ! '$(UTF8_LOCALE)' || \ ! printf 'A\304\200B\n' | \ LC_ALL='$(UTF8_LOCALE)' grep -q '^A.B$$' >/dev/null 2>&1 || { \ LC_ALL='$(UTF8_LOCALE)' && export LC_ALL && \ sharp='#' && \ ! grep -Env $(SAFE_LINE) $(MANS) date.1 $(MANTXTS) \ $(MISC) $(SOURCES) $(WEB_PAGES) \ CONTRIBUTING LICENSE README SECURITY \ version tzdata.zi && \ ! grep -Env $(SAFE_LINE)'|^UNUSUAL_OK_'$(OK_CHAR)'*$$' \ Makefile && \ ! grep -Env $(SAFE_SHARP_LINE) $(TDATA_TO_CHECK) backzone \ leapseconds zone.tab && \ ! grep -Env $(OK_LINE) $(ENCHILADA); \ } touch $@ check_white_space: $(ENCHILADA) patfmt=' \t|[\f\r\v]' && pat=`printf "$$patfmt\\n"` && \ ! grep -En "$$pat" \ $$(ls $(ENCHILADA) | grep -Fvx leap-seconds.list) ! grep -n '[$s]$$' \ $$(ls $(ENCHILADA) | grep -Fvx leap-seconds.list) touch $@ PRECEDES_FILE_NAME = ^(Zone|Link[$s]+[^$s]+)[$s]+ FILE_NAME_COMPONENT_TOO_LONG = $(PRECEDES_FILE_NAME)[^$s]*[^/$s]{15} check_name_lengths: $(TDATA_TO_CHECK) backzone ! grep -En '$(FILE_NAME_COMPONENT_TOO_LONG)' \ $(TDATA_TO_CHECK) backzone touch $@ PRECEDES_STDOFF = ^(Zone[$s]+[^$s]+)?[$s]+ STDOFF = [-+]?[0-9:.]+ RULELESS_SAVE = (-|$(STDOFF)[sd]?) RULELESS_SLASHED_ABBRS = \ $(PRECEDES_STDOFF)$(STDOFF)[$s]+$(RULELESS_SAVE)[$s]+[^$s]*/ check_slashed_abbrs: $(TDATA_TO_CHECK) ! grep -En '$(RULELESS_SLASHED_ABBRS)' $(TDATA_TO_CHECK) touch $@ CHECK_CC_LIST = { n = split($$1,a,/,/); for (i=2; i<=n; i++) print a[1], a[i]; } check_sorted: backward backzone iso3166.tab zone.tab zone1970.tab $(AWK) '/^Link/ {print $$3}' backward | LC_ALL=C sort -cu $(AWK) '/^Zone/ {print $$2}' backzone | LC_ALL=C sort -cu touch $@ check_links: checklinks.awk $(TDATA_TO_CHECK) tzdata.zi $(AWK) -f checklinks.awk $(TDATA_TO_CHECK) $(AWK) -f checklinks.awk tzdata.zi touch $@ check_tables: checktab.awk $(YDATA) backward $(ZONETABLES) for tab in $(ZONETABLES); do \ test "$$tab" = zone.tab && links='$(BACKWARD)' || links=''; \ $(AWK) -f checktab.awk -v zone_table=$$tab $(YDATA) $$links \ || exit; \ done touch $@ check_tzs: $(TZS) $(TZS_NEW) if test -s $(TZS); then \ diff -u $(TZS) $(TZS_NEW); \ else \ cp $(TZS_NEW) $(TZS); \ fi touch $@ check_web: $(CHECK_WEB_PAGES) check_theory.html: theory.html check_tz-art.html: tz-art.html check_tz-how-to.html: tz-how-to.html check_tz-link.html: tz-link.html check_theory.html check_tz-art.html check_tz-how-to.html check_tz-link.html: $(CURL) -sS --url https://validator.w3.org/nu/ -F out=gnu \ -F file=@$$(expr $@ : 'check_\(.*\)') -o $@.out && \ test ! -s $@.out || { cat $@.out; exit 1; } mv $@.out $@ check_ziguard: rearguard.zi vanguard.zi ziguard.awk $(AWK) -v DATAFORM=rearguard -f ziguard.awk vanguard.zi | \ diff -u rearguard.zi - $(AWK) -v DATAFORM=vanguard -f ziguard.awk rearguard.zi | \ diff -u vanguard.zi - touch $@ # Check that zishrink.awk does not alter the data, and that ziguard.awk # preserves main-format data. check_zishrink: check_zishrink_posix check_zishrink_right check_zishrink_posix check_zishrink_right: \ zic leapseconds $(PACKRATDATA) $(PACKRATLIST) \ $(TDATA) $(DATAFORM).zi tzdata.zi rm -fr $@.dir $@-t.dir $@-shrunk.dir mkdir $@.dir $@-t.dir $@-shrunk.dir case $@ in \ *_right) leap='-L leapseconds';; \ *) leap=;; \ esac && \ $(ZIC) $$leap -d $@.dir $(DATAFORM).zi && \ $(ZIC) $$leap -d $@-shrunk.dir tzdata.zi && \ case $(DATAFORM),$(PACKRATLIST) in \ main,) \ $(ZIC) $$leap -d $@-t.dir $(TDATA) && \ $(AWK) '/^Rule/' $(TDATA) | \ $(ZIC) $$leap -d $@-t.dir - $(PACKRATDATA) && \ diff -r $@.dir $@-t.dir;; \ esac diff -r $@.dir $@-shrunk.dir rm -fr $@.dir $@-t.dir $@-shrunk.dir touch $@ clean_misc: rm -fr check_*.dir rm -f *.o *.out $(TIME_T_ALTERNATIVES) \ check_* core typecheck_* \ date tzselect version.h zdump zic libtz.a clean: clean_misc rm -fr *.dir tzdb-*/ rm -f *.zi $(TZS_NEW) maintainer-clean: clean @echo 'This command is intended for maintainers to use; it' @echo 'deletes files that may need special tools to rebuild.' rm -f leapseconds version $(MANTXTS) $(TZS) *.asc *.tar.* names: @echo $(ENCHILADA) public: check check_public $(CHECK_TIME_T_ALTERNATIVES) \ tarballs signatures date.1.txt: date.1 newctime.3.txt: newctime.3 newstrftime.3.txt: newstrftime.3 newtzset.3.txt: newtzset.3 time2posix.3.txt: time2posix.3 tzfile.5.txt: tzfile.5 tzselect.8.txt: tzselect.8 zdump.8.txt: zdump.8 zic.8.txt: zic.8 $(MANTXTS): workman.sh LC_ALL=C sh workman.sh `expr $@ : '\(.*\)\.txt$$'` >$@.out mv $@.out $@ # Set file timestamps deterministically if possible, # so that tarballs containing the timestamps are reproducible. # # '$(SET_TIMESTAMP_N) N DEST A B C ...' sets the timestamp of the # file DEST to the maximum of the timestamps of the files A B C ..., # plus N if GNU ls and touch are available. SET_TIMESTAMP_N = sh -c '\ n=$$0 dest=$$1; shift; \ touch -cmr `ls -t "$$@" | sed 1q` "$$dest" && \ if test $$n != 0 && \ lsout=`ls -n --time-style="+%s" "$$dest" 2>/dev/null`; then \ set x $$lsout && \ touch -cmd @`expr $$7 + $$n` "$$dest"; \ else :; fi' # If DEST depends on A B C ... in this Makefile, callers should use # $(SET_TIMESTAMP_DEP) DEST A B C ..., for the benefit of any # downstream 'make' that considers equal timestamps to be out of date. # POSIX allows this 'make' behavior, and HP-UX 'make' does it. # If all that matters is that the timestamp be reproducible # and plausible, use $(SET_TIMESTAMP). SET_TIMESTAMP = $(SET_TIMESTAMP_N) 0 SET_TIMESTAMP_DEP = $(SET_TIMESTAMP_N) 1 # Set the timestamps to those of the git repository, if available, # and if the files have not changed since then. # This uses GNU 'ls --time-style=+%s', which outputs the seconds count, # and GNU 'touch -d@N FILE', where N is the number of seconds since 1970. # If git or GNU is absent, don't bother to sync with git timestamps. # Also, set the timestamp of each prebuilt file like 'leapseconds' # to be the maximum of the files it depends on. set-timestamps.out: $(EIGHT_YARDS) rm -f $@ if (type git) >/dev/null 2>&1 && \ files=`git ls-files $(EIGHT_YARDS)` && \ touch -md @1 test.out; then \ rm -f test.out && \ for file in $$files; do \ if git diff --quiet $$file; then \ time=`git log -1 --format='tformat:%ct' $$file` && \ touch -cmd @$$time $$file; \ else \ echo >&2 "$$file: warning: does not match repository"; \ fi || exit; \ done; \ fi $(SET_TIMESTAMP_DEP) leapseconds $(LEAP_DEPS) for file in `ls $(MANTXTS) | sed 's/\.txt$$//'`; do \ $(SET_TIMESTAMP_DEP) $$file.txt $$file workman.sh || \ exit; \ done $(SET_TIMESTAMP_DEP) version $(VERSION_DEPS) $(SET_TIMESTAMP_DEP) tzdata.zi $(TZDATA_ZI_DEPS) touch $@ set-tzs-timestamp.out: $(TZS) $(SET_TIMESTAMP_DEP) $(TZS) $(TZS_DEPS) touch $@ # The zics below ensure that each data file can stand on its own. # We also do an all-files run to catch links to links. check_public: $(VERSION_DEPS) rm -fr public.dir mkdir public.dir ln $(VERSION_DEPS) public.dir cd public.dir && $(MAKE) CFLAGS='$(GCC_DEBUG_FLAGS)' ALL for i in $(TDATA_TO_CHECK) public.dir/tzdata.zi \ public.dir/vanguard.zi public.dir/main.zi \ public.dir/rearguard.zi; \ do \ public.dir/zic -v -d public.dir/zoneinfo $$i 2>&1 || exit; \ done public.dir/zic -v -d public.dir/zoneinfo-all $(TDATA_TO_CHECK) : : Also check 'backzone' syntax. rm public.dir/main.zi cd public.dir && $(MAKE) PACKRATDATA=backzone main.zi public.dir/zic -d public.dir/zoneinfo main.zi rm public.dir/main.zi cd public.dir && \ $(MAKE) PACKRATDATA=backzone PACKRATLIST=zone.tab main.zi public.dir/zic -d public.dir/zoneinfo main.zi : rm -fr public.dir touch $@ # Check that the code works under various alternative # implementations of time_t. check_time_t_alternatives: $(TIME_T_ALTERNATIVES) $(TIME_T_ALTERNATIVES_TAIL): $(TIME_T_ALTERNATIVES_HEAD) $(TIME_T_ALTERNATIVES): $(VERSION_DEPS) rm -fr $@.dir mkdir $@.dir ln $(VERSION_DEPS) $@.dir case $@ in \ int*32_t) range=-2147483648,2147483648;; \ u*) range=0,4294967296;; \ *) range=-4294967296,4294967296;; \ esac && \ wd=`pwd` && \ zones=`$(AWK) '/^[^#]/ { print $$3 }' /dev/null; then \ quiet_option='-q'; \ else \ quiet_option=''; \ fi && \ diff $$quiet_option -r $(TIME_T_ALTERNATIVES_HEAD).dir/etc \ $@.dir/etc && \ diff $$quiet_option -r \ $(TIME_T_ALTERNATIVES_HEAD).dir/usr/share \ $@.dir/usr/share; \ } touch $@ TRADITIONAL_ASC = \ tzcode$(VERSION).tar.gz.asc \ tzdata$(VERSION).tar.gz.asc REARGUARD_ASC = \ tzdata$(VERSION)-rearguard.tar.gz.asc ALL_ASC = $(TRADITIONAL_ASC) $(REARGUARD_ASC) \ tzdb-$(VERSION).tar.lz.asc tarballs rearguard_tarballs tailored_tarballs traditional_tarballs \ signatures rearguard_signatures traditional_signatures: \ version set-timestamps.out rearguard.zi vanguard.zi VERSION=`cat version` && \ $(MAKE) AWK='$(AWK)' VERSION="$$VERSION" $@_version # These *_version rules are intended for use if VERSION is set by some # other means. Ordinarily these rules are used only by the above # non-_version rules, which set VERSION on the 'make' command line. tarballs_version: traditional_tarballs_version rearguard_tarballs_version \ tzdb-$(VERSION).tar.lz rearguard_tarballs_version: \ tzdata$(VERSION)-rearguard.tar.gz traditional_tarballs_version: \ tzcode$(VERSION).tar.gz tzdata$(VERSION).tar.gz tailored_tarballs_version: \ tzdata$(VERSION)-tailored.tar.gz signatures_version: $(ALL_ASC) rearguard_signatures_version: $(REARGUARD_ASC) traditional_signatures_version: $(TRADITIONAL_ASC) tzcode$(VERSION).tar.gz: set-timestamps.out LC_ALL=C && export LC_ALL && \ tar $(TARFLAGS) -cf - \ $(COMMON) $(DOCS) $(SOURCES) | \ gzip $(GZIPFLAGS) >$@.out mv $@.out $@ tzdata$(VERSION).tar.gz: set-timestamps.out LC_ALL=C && export LC_ALL && \ tar $(TARFLAGS) -cf - $(TZDATA_DIST) | \ gzip $(GZIPFLAGS) >$@.out mv $@.out $@ # Create empty files with a reproducible timestamp. CREATE_EMPTY = TZ=UTC0 touch -mt 202010122253.00 # The obsolescent *rearguard* targets and related macros are present # for backwards compatibility with tz releases 2018e through 2022a. # They should go away eventually. To build rearguard tarballs you # can instead use 'make DATAFORM=rearguard tailored_tarballs'. tzdata$(VERSION)-rearguard.tar.gz: rearguard.zi set-timestamps.out rm -fr $@.dir mkdir $@.dir ln $(TZDATA_DIST) $@.dir cd $@.dir && rm -f $(TDATA) $(PACKRATDATA) version for f in $(TDATA) $(PACKRATDATA); do \ rearf=$@.dir/$$f; \ $(AWK) -v DATAFORM=rearguard -f ziguard.awk $$f >$$rearf && \ $(SET_TIMESTAMP_DEP) $$rearf ziguard.awk $$f || exit; \ done sed '1s/$$/-rearguard/' $@.dir/version : The dummy pacificnew pacifies TZUpdater 2.3.1 and earlier. $(CREATE_EMPTY) $@.dir/pacificnew touch -cmr version $@.dir/version LC_ALL=C && export LC_ALL && \ (cd $@.dir && \ tar $(TARFLAGS) -cf - \ $(TZDATA_DIST) pacificnew | \ gzip $(GZIPFLAGS)) >$@.out mv $@.out $@ # Create a tailored tarball suitable for TZUpdater and compatible tools. # For example, 'make DATAFORM=vanguard tailored_tarballs' makes a tarball # useful for testing whether TZUpdater supports vanguard form. # The generated tarball is not byte-for-byte equivalent to a hand-tailored # traditional tarball, as data entries are put into 'etcetera' even if they # came from some other source file. However, the effect should be the same # for ordinary use, which reads all the source files. tzdata$(VERSION)-tailored.tar.gz: set-timestamps.out rm -fr $@.dir mkdir $@.dir : The dummy pacificnew pacifies TZUpdater 2.3.1 and earlier. cd $@.dir && \ $(CREATE_EMPTY) $(PRIMARY_YDATA) $(NDATA) backward \ `test $(DATAFORM) = vanguard || echo pacificnew` (grep '^#' tzdata.zi && echo && cat $(DATAFORM).zi) \ >$@.dir/etcetera touch -cmr tzdata.zi $@.dir/etcetera sed -n \ -e '/^# *version *\(.*\)/h' \ -e '/^# *ddeps */H' \ -e '$$!d' \ -e 'g' \ -e 's/^# *version *//' \ -e 's/\n# *ddeps */-/' \ -e 's/ /-/g' \ -e 'p' \ $@.dir/version touch -cmr version $@.dir/version links= && \ for file in $(TZDATA_DIST); do \ test -f $@.dir/$$file || links="$$links $$file"; \ done && \ ln $$links $@.dir LC_ALL=C && export LC_ALL && \ (cd $@.dir && \ tar $(TARFLAGS) -cf - * | gzip $(GZIPFLAGS)) >$@.out mv $@.out $@ tzdb-$(VERSION).tar.lz: set-timestamps.out set-tzs-timestamp.out rm -fr tzdb-$(VERSION) mkdir tzdb-$(VERSION) ln $(ENCHILADA) tzdb-$(VERSION) $(SET_TIMESTAMP) tzdb-$(VERSION) tzdb-$(VERSION)/* LC_ALL=C && export LC_ALL && \ tar $(TARFLAGS) -cf - tzdb-$(VERSION) | lzip -9 >$@.out mv $@.out $@ tzcode$(VERSION).tar.gz.asc: tzcode$(VERSION).tar.gz tzdata$(VERSION).tar.gz.asc: tzdata$(VERSION).tar.gz tzdata$(VERSION)-rearguard.tar.gz.asc: tzdata$(VERSION)-rearguard.tar.gz tzdb-$(VERSION).tar.lz.asc: tzdb-$(VERSION).tar.lz $(ALL_ASC): $(GPG) --armor --detach-sign $? TYPECHECK_CFLAGS = $(CFLAGS) -DTYPECHECK -D__time_t_defined -D_TIME_T typecheck: typecheck_long_long typecheck_unsigned typecheck_long_long typecheck_unsigned: $(VERSION_DEPS) rm -fr $@.dir mkdir $@.dir ln $(VERSION_DEPS) $@.dir cd $@.dir && \ case $@ in \ *_long_long) i="long long";; \ *_unsigned ) i="unsigned" ;; \ esac && \ typecheck_cflags='' && \ $(MAKE) \ CFLAGS="$(TYPECHECK_CFLAGS) \"-Dtime_t=$$i\"" \ TOPDIR="`pwd`" \ install $@.dir/zdump -i -c 1970,1971 Europe/Rome touch $@ zonenames: tzdata.zi @$(AWK) '/^Z/ { print $$2 } /^L/ { print $$3 }' tzdata.zi asctime.o: private.h tzfile.h date.o: private.h difftime.o: private.h localtime.o: private.h tzfile.h strftime.o: private.h tzfile.h zdump.o: version.h zic.o: private.h tzfile.h version.h .PHONY: ALL INSTALL all .PHONY: check check_time_t_alternatives .PHONY: check_web check_zishrink .PHONY: clean clean_misc dummy.zd force_tzs .PHONY: install install_data maintainer-clean names .PHONY: posix_only posix_right public .PHONY: rearguard_signatures rearguard_signatures_version .PHONY: rearguard_tarballs rearguard_tarballs_version .PHONY: right_only right_posix signatures signatures_version .PHONY: tarballs tarballs_version .PHONY: traditional_signatures traditional_signatures_version .PHONY: traditional_tarballs traditional_tarballs_version .PHONY: tailored_tarballs tailored_tarballs_version .PHONY: typecheck .PHONY: zonenames zones .PHONY: $(ZDS) ./tzdatabase/zoneinfo2tdf.pl0000755000175000017500000000265213736173020016235 0ustar anthonyanthony#! /usr/bin/perl -w # Summarize .zi input in a .zi-like format. # Courtesy Ken Pizzini. use strict; #This file released to the public domain. # Note: error checking is poor; trust the output only if the input # has been checked by zic. my $contZone = ''; while (<>) { my $origline = $_; my @fields = (); while (s/^\s*((?:"[^"]*"|[^\s#])+)//) { push @fields, $1; } next unless @fields; my $type = lc($fields[0]); if ($contZone) { @fields >= 3 or warn "bad continuation line"; unshift @fields, '+', $contZone; $type = 'zone'; } $contZone = ''; if ($type eq 'zone') { # Zone NAME STDOFF RULES/SAVE FORMAT [UNTIL] my $nfields = @fields; $nfields >= 5 or warn "bad zone line"; if ($nfields > 6) { #this splice is optional, depending on one's preference #(one big date-time field, or componentized date and time): splice(@fields, 5, $nfields-5, "@fields[5..$nfields-1]"); } $contZone = $fields[1] if @fields > 5; } elsif ($type eq 'rule') { # Rule NAME FROM TO - IN ON AT SAVE LETTER/S @fields == 10 or warn "bad rule line"; } elsif ($type eq 'link') { # Link TARGET LINK-NAME @fields == 3 or warn "bad link line"; } elsif ($type eq 'leap') { # Leap YEAR MONTH DAY HH:MM:SS CORR R/S @fields == 7 or warn "bad leap line"; } else { warn "Fubar at input line $.: $origline"; } print join("\t", @fields), "\n"; } ./tzdatabase/yearistype.sh0000644000175000017500000000136113323151404016006 0ustar anthonyanthony#! /bin/sh : 'Determine whether year is of appropriate type (this file is obsolete).' : 'This file is in the public domain, so clarified as of' : '2006-07-17 by Arthur David Olson.' case $#-$1 in 2-|2-0*|2-*[!0-9]*) echo "$0: wild year: $1" >&2 exit 1 ;; esac case $#-$2 in 2-even) case $1 in *[24680]) exit 0 ;; *) exit 1 ;; esac ;; 2-nonpres|2-nonuspres) case $1 in *[02468][048]|*[13579][26]) exit 1 ;; *) exit 0 ;; esac ;; 2-odd) case $1 in *[13579]) exit 0 ;; *) exit 1 ;; esac ;; 2-uspres) case $1 in *[02468][048]|*[13579][26]) exit 0 ;; *) exit 1 ;; esac ;; 2-*) echo "$0: wild type: $2" >&2 ;; esac echo "$0: usage is $0 year even|odd|uspres|nonpres|nonuspres" >&2 exit 1 ./tzdatabase/northamerica0000644000175000017500000050074414271255401015671 0ustar anthonyanthony# tzdb data for North and Central America and environs # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. # also includes Central America and the Caribbean # This file is by no means authoritative; if you think you know better, # go ahead and edit the file (and please send any changes to # tz@iana.org for general use in the future). For more, please see # the file CONTRIBUTING in the tz distribution. # From Paul Eggert (1999-03-22): # A reliable and entertaining source about time zones is # Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997). ############################################################################### # United States # From Paul Eggert (1999-03-31): # Howse writes (pp 121-125) that time zones were invented by # Professor Charles Ferdinand Dowd (1825-1904), # Principal of Temple Grove Ladies' Seminary (Saratoga Springs, NY). # His pamphlet "A System of National Time for Railroads" (1870) # was the result of his proposals at the Convention of Railroad Trunk Lines # in New York City (1869-10). His 1870 proposal was based on Washington, DC, # but in 1872-05 he moved the proposed origin to Greenwich. # From Paul Eggert (2018-03-20): # Dowd's proposal left many details unresolved, such as where to draw # lines between time zones. The key individual who made time zones # work in the US was William Frederick Allen - railway engineer, # managing editor of the Travelers' Guide, and secretary of the # General Time Convention, a railway standardization group. Allen # spent months in dialogs with scientific and railway leaders, # developed a workable plan to institute time zones, and presented it # to the General Time Convention on 1883-04-11, saying that his plan # meant "local time would be practically abolished" - a plus for # railway scheduling. By the next convention on 1883-10-11 nearly all # railroads had agreed and it took effect on 1883-11-18. That Sunday # was called the "day of two noons", as some locations observed noon # twice. Allen witnessed the transition in New York City, writing: # # I heard the bells of St. Paul's strike on the old time. Four # minutes later, obedient to the electrical signal from the Naval # Observatory ... the time-ball made its rapid descent, the chimes # of old Trinity rang twelve measured strokes, and local time was # abandoned, probably forever. # # Most of the US soon followed suit. See: # Bartky IR. The adoption of standard time. Technol Cult 1989 Jan;30(1):25-56. # https://dx.doi.org/10.2307/3105430 # From Paul Eggert (2005-04-16): # That 1883 transition occurred at 12:00 new time, not at 12:00 old time. # See p 46 of David Prerau, Seize the daylight, Thunder's Mouth Press (2005). # From Paul Eggert (2006-03-22): # A good source for time zone historical data in the US is # Thomas G. Shanks, The American Atlas (5th edition), # San Diego: ACS Publications, Inc. (1991). # Make sure you have the errata sheet; the book is somewhat useless without it. # It is the source for most of the pre-1991 US entries below. # From Paul Eggert (2001-03-06): # Daylight Saving Time was first suggested as a joke by Benjamin Franklin # in his whimsical essay "An Economical Project for Diminishing the Cost # of Light" published in the Journal de Paris (1784-04-26). # Not everyone is happy with the results: # # I don't really care how time is reckoned so long as there is some # agreement about it, but I object to being told that I am saving # daylight when my reason tells me that I am doing nothing of the kind. # I even object to the implication that I am wasting something # valuable if I stay in bed after the sun has risen. As an admirer # of moonlight I resent the bossy insistence of those who want to # reduce my time for enjoying it. At the back of the Daylight Saving # scheme I detect the bony, blue-fingered hand of Puritanism, eager # to push people into bed earlier, and get them up earlier, to make # them healthy, wealthy and wise in spite of themselves. # # -- Robertson Davies, The diary of Samuel Marchbanks, # Clarke, Irwin (1947), XIX, Sunday # # For more about the first ten years of DST in the United States, see # Robert Garland, Ten years of daylight saving from the Pittsburgh standpoint # (Carnegie Library of Pittsburgh, 1927). # https://web.archive.org/web/20160517155308/http://www.clpgh.org/exhibit/dst.html # # Shanks says that DST was called "War Time" in the US in 1918 and 1919. # However, DST was imposed by the Standard Time Act of 1918, which # was the first nationwide legal time standard, and apparently # time was just called "Standard Time" or "Daylight Saving Time". # From Paul Eggert (2019-06-04): # Here is the legal basis for the US federal rules. # * Public Law 65-106 (1918-03-19) implemented standard and daylight saving # time for the first time across the US, springing forward on March's last # Sunday and falling back on October's last Sunday. # https://www.loc.gov/law/help/statutes-at-large/65th-congress/session-2/c65s2ch24.pdf # * Public Law 66-40 (1919-08-20) repealed DST on October 1919's last Sunday. # https://www.loc.gov/law/help/statutes-at-large/66th-congress/session-1/c66s1ch51.pdf # * Public Law 77-403 (1942-01-20) started wartime DST on 1942-02-09. # https://www.loc.gov/law/help/statutes-at-large/77th-congress/session-2/c77s2ch7.pdf # * Public Law 79-187 (1945-09-25) ended wartime DST on 1945-09-30. # https://www.loc.gov/law/help/statutes-at-large/79th-congress/session-1/c79s1ch388.pdf # * Public Law 89-387 (1966-04-13) reinstituted a national standard for DST, # from April's last Sunday to October's last Sunday, effective 1967. # https://www.govinfo.gov/content/pkg/STATUTE-80/pdf/STATUTE-80-Pg107.pdf # * Public Law 93-182 (1973-12-15) moved the 1974 spring-forward to 01-06. # https://www.govinfo.gov/content/pkg/STATUTE-87/pdf/STATUTE-87-Pg707.pdf # * Public Law 93-434 (1974-10-05) moved the 1975 spring-forward to # February's last Sunday. # https://www.govinfo.gov/content/pkg/STATUTE-88/pdf/STATUTE-88-Pg1209.pdf # * Public Law 99-359 (1986-07-08) moved the spring-forward to April's first # Sunday. # https://www.govinfo.gov/content/pkg/STATUTE-100/pdf/STATUTE-100-Pg764.pdf # * Public Law 109-58 (2005-08-08), effective 2007, moved the spring-forward # to March's second Sunday and the fall-back to November's first Sunday. # https://www.govinfo.gov/content/pkg/PLAW-109publ58/pdf/PLAW-109publ58.pdf # All transitions are at 02:00 local time. # From Arthur David Olson: # Before the Uniform Time Act of 1966 took effect in 1967, observance of # Daylight Saving Time in the US was by local option, except during wartime. # From Arthur David Olson (2000-09-25): # Last night I heard part of a rebroadcast of a 1945 Arch Oboler radio drama. # In the introduction, Oboler spoke of "Eastern Peace Time." # An AltaVista search turned up: # https://web.archive.org/web/20000926032210/http://rowayton.org/rhs/hstaug45.html # "When the time is announced over the radio now, it is 'Eastern Peace # Time' instead of the old familiar 'Eastern War Time.' Peace is wonderful." # (August 1945) by way of confirmation. # # From Paul Eggert (2017-09-23): # This was the V-J Day issue of the Clamdigger, a Rowayton, CT newsletter. # From Joseph Gallant citing # George H. Douglas, _The Early Days of Radio Broadcasting_ (1987): # At 7 P.M. (Eastern War Time) [on 1945-08-14], the networks were set # to switch to London for Attlee's address, but the American people # never got to hear his speech live. According to one press account, # CBS' Bob Trout was first to announce the word of Japan's surrender, # but a few seconds later, NBC, ABC and Mutual also flashed the word # of surrender, all of whom interrupting the bells of Big Ben in # London which were to precede Mr. Attlee's speech. # From Paul Eggert (2003-02-09): It was Robert St John, not Bob Trout. From # Myrna Oliver's obituary of St John on page B16 of today's Los Angeles Times: # # ... a war-weary U.S. clung to radios, awaiting word of Japan's surrender. # Any announcement from Asia would reach St. John's New York newsroom on a # wire service teletype machine, which had prescribed signals for major news. # Associated Press, for example, would ring five bells before spewing out # typed copy of an important story, and 10 bells for news "of transcendental # importance." # # On Aug. 14, stalling while talking steadily into the NBC networks' open # microphone, St. John heard five bells and waited only to hear a sixth bell, # before announcing confidently: "Ladies and gentlemen, World War II is over. # The Japanese have agreed to our surrender terms." # # He had scored a 20-second scoop on other broadcasters. # From Arthur David Olson (2005-08-22): # Paul has been careful to use the "US" rules only in those locations # that are part of the United States; this reflects the real scope of # U.S. government action. So even though the "US" rules have changed # in the latest release, other countries won't be affected. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule US 1918 1919 - Mar lastSun 2:00 1:00 D Rule US 1918 1919 - Oct lastSun 2:00 0 S Rule US 1942 only - Feb 9 2:00 1:00 W # War Rule US 1945 only - Aug 14 23:00u 1:00 P # Peace Rule US 1945 only - Sep 30 2:00 0 S Rule US 1967 2006 - Oct lastSun 2:00 0 S Rule US 1967 1973 - Apr lastSun 2:00 1:00 D Rule US 1974 only - Jan 6 2:00 1:00 D Rule US 1975 only - Feb lastSun 2:00 1:00 D Rule US 1976 1986 - Apr lastSun 2:00 1:00 D Rule US 1987 2006 - Apr Sun>=1 2:00 1:00 D Rule US 2007 max - Mar Sun>=8 2:00 1:00 D Rule US 2007 max - Nov Sun>=1 2:00 0 S # From Arthur David Olson, 2005-12-19 # We generate the files specified below to guard against old files with # obsolete information being left in the time zone binary directory. # We limit the list to names that have appeared in previous versions of # this time zone package. # We do these as separate Zones rather than as Links to avoid problems if # a particular place changes whether it observes DST. # We put these specifications here in the northamerica file both to # increase the chances that they'll actually get compiled and to # avoid the need to duplicate the US rules in another file. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone EST -5:00 - EST Zone MST -7:00 - MST Zone HST -10:00 - HST Zone EST5EDT -5:00 US E%sT Zone CST6CDT -6:00 US C%sT Zone MST7MDT -7:00 US M%sT Zone PST8PDT -8:00 US P%sT # From U. S. Naval Observatory (1989-01-19): # USA EASTERN 5 H BEHIND UTC NEW YORK, WASHINGTON # USA EASTERN 4 H BEHIND UTC APR 3 - OCT 30 # USA CENTRAL 6 H BEHIND UTC CHICAGO, HOUSTON # USA CENTRAL 5 H BEHIND UTC APR 3 - OCT 30 # USA MOUNTAIN 7 H BEHIND UTC DENVER # USA MOUNTAIN 6 H BEHIND UTC APR 3 - OCT 30 # USA PACIFIC 8 H BEHIND UTC L.A., SAN FRANCISCO # USA PACIFIC 7 H BEHIND UTC APR 3 - OCT 30 # USA ALASKA STD 9 H BEHIND UTC MOST OF ALASKA (AKST) # USA ALASKA STD 8 H BEHIND UTC APR 3 - OCT 30 (AKDT) # USA ALEUTIAN 10 H BEHIND UTC ISLANDS WEST OF 170W # USA " 9 H BEHIND UTC APR 3 - OCT 30 # USA HAWAII 10 H BEHIND UTC # USA BERING 11 H BEHIND UTC SAMOA, MIDWAY # From Arthur David Olson (1989-01-21): # The above dates are for 1988. # Note the "AKST" and "AKDT" abbreviations, the claim that there's # no DST in Samoa, and the claim that there is DST in Alaska and the # Aleutians. # From Arthur David Olson (1988-02-13): # Legal standard time zone names, from United States Code (1982 Edition and # Supplement III), Title 15, Chapter 6, Section 260 and forward. First, names # up to 1967-04-01 (when most provisions of the Uniform Time Act of 1966 # took effect), as explained in sections 263 and 261: # (none) # United States standard eastern time # United States standard mountain time # United States standard central time # United States standard Pacific time # (none) # United States standard Alaska time # (none) # Next, names from 1967-04-01 until 1983-11-30 (the date for # public law 98-181): # Atlantic standard time # eastern standard time # central standard time # mountain standard time # Pacific standard time # Yukon standard time # Alaska-Hawaii standard time # Bering standard time # And after 1983-11-30: # Atlantic standard time # eastern standard time # central standard time # mountain standard time # Pacific standard time # Alaska standard time # Hawaii-Aleutian standard time # Samoa standard time # The law doesn't give abbreviations. # # From Paul Eggert (2016-12-19): # Here are URLs for the 1918 and 1966 legislation: # http://uscode.house.gov/statviewer.htm?volume=40&page=451 # http://uscode.house.gov/statviewer.htm?volume=80&page=108 # Although the 1918 names were officially "United States Standard # Eastern Time" and similarly for "Central", "Mountain", "Pacific", # and "Alaska", in practice "Standard" was placed just before "Time", # as codified in 1966. In practice, Alaska time was abbreviated "AST" # before 1968. Summarizing the 1967 name changes: # 1918 names 1967 names # -08 Standard Pacific Time (PST) Pacific standard time (PST) # -09 (unofficial) Yukon (YST) Yukon standard time (YST) # -10 Standard Alaska Time (AST) Alaska-Hawaii standard time (AHST) # -11 (unofficial) Nome (NST) Bering standard time (BST) # # From Paul Eggert (2000-01-08), following a heads-up from Rives McDow: # Public law 106-564 (2000-12-23) introduced ... "Chamorro Standard Time" # for time in Guam and the Northern Marianas. See the file "australasia". # # From Paul Eggert (2015-04-17): # HST and HDT are standardized abbreviations for Hawaii-Aleutian # standard and daylight times. See section 9.47 (p 234) of the # U.S. Government Printing Office Style Manual (2008) # https://www.gpo.gov/fdsys/pkg/GPO-STYLEMANUAL-2008/pdf/GPO-STYLEMANUAL-2008.pdf # From Arthur David Olson, 2005-08-09 # The following was signed into law on 2005-08-08. # # H.R. 6, Energy Policy Act of 2005, SEC. 110. DAYLIGHT SAVINGS. # (a) Amendment.--Section 3(a) of the Uniform Time Act of 1966 (15 # U.S.C. 260a(a)) is amended-- # (1) by striking "first Sunday of April" and inserting "second # Sunday of March"; and # (2) by striking "last Sunday of October" and inserting "first # Sunday of November'. # (b) Effective Date.--Subsection (a) shall take effect 1 year after the # date of enactment of this Act or March 1, 2007, whichever is later. # (c) Report to Congress.--Not later than 9 months after the effective # date stated in subsection (b), the Secretary shall report to Congress # on the impact of this section on energy consumption in the United # States. # (d) Right to Revert.--Congress retains the right to revert the # Daylight Saving Time back to the 2005 time schedules once the # Department study is complete. # US eastern time, represented by New York # Connecticut, Delaware, District of Columbia, most of Florida, # Georgia, southeast Indiana (Dearborn and Ohio counties), eastern Kentucky # (except America/Kentucky/Louisville below), Maine, Maryland, Massachusetts, # New Hampshire, New Jersey, New York, North Carolina, Ohio, # Pennsylvania, Rhode Island, South Carolina, eastern Tennessee, # Vermont, Virginia, West Virginia # From Dave Cantor (2004-11-02): # Early this summer I had the occasion to visit the Mount Washington # Observatory weather station atop (of course!) Mount Washington [, NH].... # One of the staff members said that the station was on Eastern Standard Time # and didn't change their clocks for Daylight Saving ... so that their # reports will always have times which are 5 hours behind UTC. # From Paul Eggert (2005-08-26): # According to today's Huntsville Times # http://www.al.com/news/huntsvilletimes/index.ssf?/base/news/1125047783228320.xml&coll=1 # a few towns on Alabama's "eastern border with Georgia, such as Phenix City # in Russell County, Lanett in Chambers County and some towns in Lee County, # set their watches and clocks on Eastern time." It quotes H.H. "Bubba" # Roberts, city administrator in Phenix City. as saying "We are in the Central # time zone, but we do go by the Eastern time zone because so many people work # in Columbus." # # From Paul Eggert (2017-02-22): # Four cities are involved. The two not mentioned above are Smiths Station # and Valley. Barbara Brooks, Valley's assistant treasurer, heard it started # because West Point Pepperell textile mills were in Alabama while the # corporate office was in Georgia, and residents voted to keep Eastern # time even after the mills closed. See: Kazek K. Did you know which # Alabama towns are in a different time zone? al.com 2017-02-06. # http://www.al.com/living/index.ssf/2017/02/do_you_know_which_alabama_town.html # From Paul Eggert (2014-09-06): # Monthly Notices of the Royal Astronomical Society 44, 4 (1884-02-08), 208 # says that New York City Hall time was 3 minutes 58.4 seconds fast of # Eastern time (i.e., -4:56:01.6) just before the 1883 switch. # Rule NAME FROM TO - IN ON AT SAVE LETTER Rule NYC 1920 only - Mar lastSun 2:00 1:00 D Rule NYC 1920 only - Oct lastSun 2:00 0 S Rule NYC 1921 1966 - Apr lastSun 2:00 1:00 D Rule NYC 1921 1954 - Sep lastSun 2:00 0 S Rule NYC 1955 1966 - Oct lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] #STDOFF -4:56:01.6 Zone America/New_York -4:56:02 - LMT 1883 Nov 18 17:00u -5:00 US E%sT 1920 -5:00 NYC E%sT 1942 -5:00 US E%sT 1946 -5:00 NYC E%sT 1967 -5:00 US E%sT # US central time, represented by Chicago # Alabama, Arkansas, Florida panhandle (Bay, Calhoun, Escambia, # Gulf, Holmes, Jackson, Okaloosa, Santa Rosa, Walton, and # Washington counties), Illinois, western Indiana # (Gibson, Jasper, Lake, LaPorte, Newton, Porter, Posey, Spencer, # Vanderburgh, and Warrick counties), Iowa, most of Kansas, western # Kentucky, Louisiana, Minnesota, Mississippi, Missouri, eastern # Nebraska, eastern North Dakota, Oklahoma, eastern South Dakota, # western Tennessee, most of Texas, Wisconsin # From Paul Eggert (2018-01-07): # In 1869 the Chicago Astronomical Society contracted with the city to keep # time. Though delayed by the Great Fire, by 1880 a wire ran from the # Dearborn Observatory (on the University of Chicago campus) to City Hall, # which then sent signals to police and fire stations. However, railroads got # their time signals from the Allegheny Observatory, the Madison Observatory, # the Ann Arbor Observatory, etc., so their clocks did not agree with each # other or with the city's official time. The confusion took some years to # clear up. See: # Moser M. How Chicago gave America its time zones. Chicago. 2018-01-04. # http://www.chicagomag.com/city-life/January-2018/How-Chicago-Gave-America-Its-Time-Zones/ # From Larry M. Smith (2006-04-26) re Wisconsin: # https://docs.legis.wisconsin.gov/statutes/statutes/175.pdf # is currently enforced at the 01:00 time of change. Because the local # "bar time" in the state corresponds to 02:00, a number of citations # are issued for the "sale of class 'B' alcohol after prohibited # hours" within the deviated hour of this change every year.... # # From Douglas R. Bomberg (2007-03-12): # Wisconsin has enacted (nearly eleventh-hour) legislation to get WI # Statue 175 closer in synch with the US Congress' intent.... # https://docs.legis.wisconsin.gov/2007/related/acts/3 # From an email administrator of the City of Fort Pierre, SD (2015-12-21): # Fort Pierre is technically located in the Mountain time zone as is # the rest of Stanley County. Most of Stanley County and Fort Pierre # uses the Central time zone due to doing most of their business in # Pierre so it simplifies schedules. I have lived in Stanley County # all my life and it has been that way since I can remember. (43 years!) # # From Paul Eggert (2015-12-25): # Assume this practice predates 1970, so Fort Pierre can use America/Chicago. # From Paul Eggert (2015-04-06): # In 1950s Nashville a public clock had dueling faces, one for conservatives # and the other for liberals; the two sides didn't agree about the time of day. # I haven't found a photo of this clock, nor have I tracked down the TIME # magazine report cited below, but here's the story as told by the late # American journalist John Seigenthaler, who was there: # # "The two [newspaper] owners held strongly contrasting political and # ideological views. Evans was a New South liberal, Stahlman an Old South # conservative, and their two papers frequently clashed editorially, often on # the same day.... In the 1950s as the state legislature was grappling with # the question of whether to approve daylight saving time for the entire state, # TIME magazine reported: # # "'The Nashville Banner and The Nashville Tennessean rarely agree on anything # but the time of day - and last week they couldn't agree on that.' # # "It was all too true. The clock on the front of the building had two faces - # The Tennessean side of the building facing west, the other, east. When it # was high noon Banner time, it was 11 a.m. Tennessean time." # # Seigenthaler J. For 100 years, Tennessean had it covered. # The Tennessean 2007-05-11, republished 2015-04-06. # https://www.tennessean.com/story/insider/extras/2015/04/06/archives-seigenthaler-for-100-years-the-tennessean-had-it-covered/25348545/ # Rule NAME FROM TO - IN ON AT SAVE LETTER Rule Chicago 1920 only - Jun 13 2:00 1:00 D Rule Chicago 1920 1921 - Oct lastSun 2:00 0 S Rule Chicago 1921 only - Mar lastSun 2:00 1:00 D Rule Chicago 1922 1966 - Apr lastSun 2:00 1:00 D Rule Chicago 1922 1954 - Sep lastSun 2:00 0 S Rule Chicago 1955 1966 - Oct lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 12:09:24 -6:00 US C%sT 1920 -6:00 Chicago C%sT 1936 Mar 1 2:00 -5:00 - EST 1936 Nov 15 2:00 -6:00 Chicago C%sT 1942 -6:00 US C%sT 1946 -6:00 Chicago C%sT 1967 -6:00 US C%sT # Oliver County, ND switched from mountain to central time on 1992-10-25. Zone America/North_Dakota/Center -6:45:12 - LMT 1883 Nov 18 12:14:48 -7:00 US M%sT 1992 Oct 25 2:00 -6:00 US C%sT # Morton County, ND, switched from mountain to central time on # 2003-10-26, except for the area around Mandan which was already central time. # See . # Officially this switch also included part of Sioux County, and # Jones, Mellette, and Todd Counties in South Dakota; # but in practice these other counties were already observing central time. # See . Zone America/North_Dakota/New_Salem -6:45:39 - LMT 1883 Nov 18 12:14:21 -7:00 US M%sT 2003 Oct 26 2:00 -6:00 US C%sT # From Josh Findley (2011-01-21): # ...it appears that Mercer County, North Dakota, changed from the # mountain time zone to the central time zone at the last transition from # daylight-saving to standard time (on Nov. 7, 2010): # https://www.gpo.gov/fdsys/pkg/FR-2010-09-29/html/2010-24376.htm # http://www.bismarcktribune.com/news/local/article_1eb1b588-c758-11df-b472-001cc4c03286.html # From Andy Lipscomb (2011-01-24): # ...according to the Census Bureau, the largest city is Beulah (although # it's commonly referred to as Beulah-Hazen, with Hazen being the next # largest city in Mercer County). Google Maps places Beulah's city hall # at 47° 15' 51" N, 101° 46' 40" W, which yields an offset of 6h47'07". Zone America/North_Dakota/Beulah -6:47:07 - LMT 1883 Nov 18 12:12:53 -7:00 US M%sT 2010 Nov 7 2:00 -6:00 US C%sT # US mountain time, represented by Denver # # Colorado, far western Kansas, Montana, western # Nebraska, Nevada border (Jackpot, Owyhee, and Mountain City), # New Mexico, southwestern North Dakota, # western South Dakota, far western Texas (El Paso County, Hudspeth County, # and Pine Springs and Nickel Creek in Culberson County), Utah, Wyoming # # From Paul Eggert (2018-10-25): # On 1921-03-04 federal law placed all of Texas into the central time zone. # However, El Paso ignored the law for decades and continued to observe # mountain time, on the grounds that that's what they had always done # and they weren't about to let the federal government tell them what to do. # Eventually the federal government gave in and changed the law on # 1970-04-10 to match what El Paso was actually doing. Although # that's slightly after our 1970 cutoff, there is no need to create a # separate zone for El Paso since they were ignoring the law anyway. See: # Long T. El Pasoans were time rebels, fought to stay in Mountain zone. # El Paso Times. 2018-10-24 06:40 -06. # https://www.elpasotimes.com/story/news/local/el-paso/2018/10/24/el-pasoans-were-time-rebels-fought-stay-mountain-zone/1744509002/ # # Rule NAME FROM TO - IN ON AT SAVE LETTER Rule Denver 1920 1921 - Mar lastSun 2:00 1:00 D Rule Denver 1920 only - Oct lastSun 2:00 0 S Rule Denver 1921 only - May 22 2:00 0 S Rule Denver 1965 1966 - Apr lastSun 2:00 1:00 D Rule Denver 1965 1966 - Oct lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Denver -6:59:56 - LMT 1883 Nov 18 12:00:04 -7:00 US M%sT 1920 -7:00 Denver M%sT 1942 -7:00 US M%sT 1946 -7:00 Denver M%sT 1967 -7:00 US M%sT # US Pacific time, represented by Los Angeles # # California, northern Idaho (Benewah, Bonner, Boundary, Clearwater, # Kootenai, Latah, Lewis, Nez Perce, and Shoshone counties, Idaho county # north of the Salmon River, and the towns of Burgdorf and Warren), # Nevada (except West Wendover), Oregon (except the northern ¾ of # Malheur county), and Washington # From Paul Eggert (2016-08-20): # In early February 1948, in response to California's electricity shortage, # PG&E changed power frequency from 60 to 59.5 Hz during daylight hours, # causing electric clocks to lose six minutes per day. (This did not change # legal time, and is not part of the data here.) See: # Ross SA. An energy crisis from the past: Northern California in 1948. # Working Paper No. 8, Institute of Governmental Studies, UC Berkeley, # 1973-11. https://escholarship.org/uc/item/8x22k30c # # In another measure to save electricity, DST was instituted from 1948-03-14 # at 02:01 to 1949-01-16 at 02:00, with the governor having the option to move # the fallback transition earlier. See pages 3-4 of: # http://clerk.assembly.ca.gov/sites/clerk.assembly.ca.gov/files/archive/Statutes/1948/48Vol1_Chapters.pdf # # In response: # # Governor Warren received a torrent of objecting mail, and it is not too much # to speculate that the objections to Daylight Saving Time were one important # factor in the defeat of the Dewey-Warren Presidential ticket in California. # -- Ross, p 25 # # On December 8 the governor exercised the option, setting the date to January 1 # (LA Times 1948-12-09). The transition time was 02:00 (LA Times 1949-01-01). # # Despite the controversy, in 1949 California voters approved Proposition 12, # which established DST from April's last Sunday at 01:00 until September's # last Sunday at 02:00. This was amended by 1962's Proposition 6, which changed # the fall-back date to October's last Sunday. See: # https://repository.uchastings.edu/cgi/viewcontent.cgi?article=1501&context=ca_ballot_props # https://repository.uchastings.edu/cgi/viewcontent.cgi?article=1636&context=ca_ballot_props # # Rule NAME FROM TO - IN ON AT SAVE LETTER Rule CA 1948 only - Mar 14 2:01 1:00 D Rule CA 1949 only - Jan 1 2:00 0 S Rule CA 1950 1966 - Apr lastSun 1:00 1:00 D Rule CA 1950 1961 - Sep lastSun 2:00 0 S Rule CA 1962 1966 - Oct lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 12:07:02 -8:00 US P%sT 1946 -8:00 CA P%sT 1967 -8:00 US P%sT # Alaska # AK%sT is the modern abbreviation for -09 per USNO. # # From Paul Eggert (2017-06-15): # Howse writes that Alaska switched from the Julian to the Gregorian calendar, # and from east-of-GMT to west-of-GMT days, when the US bought it from Russia. # On Friday, 1867-10-18 (Gregorian), at precisely 15:30 local time, the # Russian forts and fleet at Sitka fired salutes to mark the ceremony of # formal transfer. See the Sacramento Daily Union (1867-11-14), p 3, col 2. # https://cdnc.ucr.edu/cgi-bin/cdnc?a=d&d=SDU18671114.2.12.1 # Sitka workers did not change their calendars until Sunday, 1867-10-20, # and so celebrated two Sundays that week. See: Ahllund T (tr Hallamaa P). # From the memoirs of a Finnish workman. Alaska History. 2006 Fall;21(2):1-25. # http://alaskahistoricalsociety.org/wp-content/uploads/2016/12/Ahllund-2006-Memoirs-of-a-Finnish-Workman.pdf # Include only the time zone part of this transition, ignoring the switch # from Julian to Gregorian, since we can't represent the Julian calendar. # # As far as we know, of the locations mentioned below only Sitka was # permanently inhabited in 1867 by anyone using either calendar. # (Yakutat was colonized by the Russians in 1799, but the settlement was # destroyed in 1805 by a Yakutat-kon war party.) Many of Alaska's inhabitants # were unaware of the US acquisition of Alaska, much less of any calendar or # time change. However, the Russian-influenced part of Alaska did observe # Russian time, and it is more accurate to model this than to ignore it. # The database format requires an exact transition time; use the Russian # salute as a somewhat-arbitrary time for the formal transfer of control for # all of Alaska. Sitka's UTC offset is -9:01:13; adjust its 15:30 to the # local times of other Alaskan locations so that they change simultaneously. # From Paul Eggert (2014-07-18): # One opinion of the early-1980s turmoil in Alaska over time zones and # daylight saving time appeared as graffiti on a Juneau airport wall: # "Welcome to Juneau. Please turn your watch back to the 19th century." # See: Turner W. Alaska's four time zones now two. NY Times 1983-11-01. # http://www.nytimes.com/1983/11/01/us/alaska-s-four-time-zones-now-two.html # # Steve Ferguson (2011-01-31) referred to the following source: # Norris F. Keeping time in Alaska: national directives, local response. # Alaska History 2001;16(1-2). # http://alaskahistoricalsociety.org/discover-alaska/glimpses-of-the-past/keeping-time-in-alaska/ # From Arthur David Olson (2011-02-01): # Here's database-relevant material from the 2001 "Alaska History" article: # # On September 20 [1979]...DOT...officials decreed that on April 27, # 1980, Juneau and other nearby communities would move to Yukon Time. # Sitka, Petersburg, Wrangell, and Ketchikan, however, would remain on # Pacific Time. # # ...on September 22, 1980, DOT Secretary Neil E. Goldschmidt rescinded the # Department's September 1979 decision. Juneau and other communities in # northern Southeast reverted to Pacific Time on October 26. # # On October 28 [1983]...the Metlakatla Indian Community Council voted # unanimously to keep the reservation on Pacific Time. # # According to DOT official Joanne Petrie, Indian reservations are not # bound to follow time zones imposed by neighboring jurisdictions. # # (The last is consistent with how the database now handles the Navajo # Nation.) # From Arthur David Olson (2011-02-09): # I just spoke by phone with a staff member at the Metlakatla Indian # Community office (using contact information available at # http://www.commerce.state.ak.us/dca/commdb/CIS.cfm?Comm_Boro_name=Metlakatla # It's shortly after 1:00 here on the east coast of the United States; # the staffer said it was shortly after 10:00 there. When I asked whether # that meant they were on Pacific time, they said no - they were on their # own time. I asked about daylight saving; they said it wasn't used. I # did not inquire about practices in the past. # From Arthur David Olson (2011-08-17): # For lack of better information, assume that Metlakatla's # abandonment of use of daylight saving resulted from the 1983 vote. # From Steffen Thorsen (2015-11-09): # It seems Metlakatla did go off PST on Sunday, November 1, changing # their time to AKST and are going to follow Alaska's DST, switching # between AKST and AKDT from now on.... # https://www.krbd.org/2015/10/30/annette-island-times-they-are-a-changing/ # From Ryan Stanley (2018-11-06): # The Metlakatla community in Alaska has decided not to change its # clock back an hour starting on November 4th, 2018 (day before yesterday). # They will be gmtoff=-28800 year-round. # https://www.facebook.com/141055983004923/photos/pb.141055983004923.-2207520000.1541465673./569081370202380/ # From Paul Eggert (2018-12-16): # In a 2018-12-11 special election, Metlakatla voted to go back to # Alaska time (including daylight saving time) starting next year. # https://www.krbd.org/2018/12/12/metlakatla-to-follow-alaska-standard-time-allow-liquor-sales/ # # From Ryan Stanley (2019-01-11): # The community will be changing back on the 20th of this month... # From Tim Parenti (2019-01-11): # Per an announcement on the Metlakatla community's official Facebook page, the # "fall back" will be on Sunday 2019-01-20 at 02:00: # https://www.facebook.com/141055983004923/photos/607150969728753/ # So they won't be waiting for Alaska to join them on 2019-03-10, but will # rather change their clocks twice in seven weeks. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Juneau 15:02:19 - LMT 1867 Oct 19 15:33:32 -8:57:41 - LMT 1900 Aug 20 12:00 -8:00 - PST 1942 -8:00 US P%sT 1946 -8:00 - PST 1969 -8:00 US P%sT 1980 Apr 27 2:00 -9:00 US Y%sT 1980 Oct 26 2:00 -8:00 US P%sT 1983 Oct 30 2:00 -9:00 US Y%sT 1983 Nov 30 -9:00 US AK%sT Zone America/Sitka 14:58:47 - LMT 1867 Oct 19 15:30 -9:01:13 - LMT 1900 Aug 20 12:00 -8:00 - PST 1942 -8:00 US P%sT 1946 -8:00 - PST 1969 -8:00 US P%sT 1983 Oct 30 2:00 -9:00 US Y%sT 1983 Nov 30 -9:00 US AK%sT Zone America/Metlakatla 15:13:42 - LMT 1867 Oct 19 15:44:55 -8:46:18 - LMT 1900 Aug 20 12:00 -8:00 - PST 1942 -8:00 US P%sT 1946 -8:00 - PST 1969 -8:00 US P%sT 1983 Oct 30 2:00 -8:00 - PST 2015 Nov 1 2:00 -9:00 US AK%sT 2018 Nov 4 2:00 -8:00 - PST 2019 Jan 20 2:00 -9:00 US AK%sT Zone America/Yakutat 14:41:05 - LMT 1867 Oct 19 15:12:18 -9:18:55 - LMT 1900 Aug 20 12:00 -9:00 - YST 1942 -9:00 US Y%sT 1946 -9:00 - YST 1969 -9:00 US Y%sT 1983 Nov 30 -9:00 US AK%sT Zone America/Anchorage 14:00:24 - LMT 1867 Oct 19 14:31:37 -9:59:36 - LMT 1900 Aug 20 12:00 -10:00 - AST 1942 -10:00 US A%sT 1967 Apr -10:00 - AHST 1969 -10:00 US AH%sT 1983 Oct 30 2:00 -9:00 US Y%sT 1983 Nov 30 -9:00 US AK%sT Zone America/Nome 12:58:22 - LMT 1867 Oct 19 13:29:35 -11:01:38 - LMT 1900 Aug 20 12:00 -11:00 - NST 1942 -11:00 US N%sT 1946 -11:00 - NST 1967 Apr -11:00 - BST 1969 -11:00 US B%sT 1983 Oct 30 2:00 -9:00 US Y%sT 1983 Nov 30 -9:00 US AK%sT Zone America/Adak 12:13:22 - LMT 1867 Oct 19 12:44:35 -11:46:38 - LMT 1900 Aug 20 12:00 -11:00 - NST 1942 -11:00 US N%sT 1946 -11:00 - NST 1967 Apr -11:00 - BST 1969 -11:00 US B%sT 1983 Oct 30 2:00 -10:00 US AH%sT 1983 Nov 30 -10:00 US H%sT # The following switches don't make our 1970 cutoff. # # Kiska observed Tokyo date and time during Japanese occupation from # 1942-06-06 to 1943-07-29, and similarly for Attu from 1942-06-07 to # 1943-05-29 (all dates American). Both islands are now uninhabited. # # Shanks writes that part of southwest Alaska (e.g. Aniak) # switched from -11:00 to -10:00 on 1968-09-22 at 02:00, # and another part (e.g. Akiak) made the same switch five weeks later. # # From David Flater (2004-11-09): # In e-mail, 2004-11-02, Ray Hudson, historian/liaison to the Unalaska # Historic Preservation Commission, provided this information, which # suggests that Unalaska deviated from statutory time from early 1967 # possibly until 1983: # # Minutes of the Unalaska City Council Meeting, January 10, 1967: # "Except for St. Paul and Akutan, Unalaska is the only important # location not on Alaska Standard Time. The following resolution was # made by William Robinson and seconded by Henry Swanson: Be it # resolved that the City of Unalaska hereby goes to Alaska Standard # Time as of midnight Friday, January 13, 1967 (1 A.M. Saturday, # January 14, Alaska Standard Time.) This resolution was passed with # three votes for and one against." # Hawaii # From Arthur David Olson (2010-12-09): # "Hawaiian Time" by Robert C. Schmitt and Doak C. Cox appears on pages 207-225 # of volume 26 of The Hawaiian Journal of History (1992). As of 2010-12-09, # the article is available at # https://evols.library.manoa.hawaii.edu/bitstream/10524/239/2/JL26215.pdf # and indicates that standard time was adopted effective noon, January # 13, 1896 (page 218), that in "1933, the Legislature decreed daylight # saving for the period between the last Sunday of each April and the # last Sunday of each September, but less than a month later repealed the # act," (page 220), that year-round daylight saving time was in effect # from 1942-02-09 to 1945-09-30 (page 221, with no time of day given for # when clocks changed) and that clocks were changed by 30 minutes # effective the second Sunday of June, 1947 (page 219, with no time of # day given for when clocks changed). A footnote for the 1933 changes # cites Session Laws of Hawaii 1933, "Act. 90 (approved 26 Apr. 1933) # and Act 163 (approved 21 May 1933)." # From Arthur David Olson (2011-01-19): # The following is from "Laws of the Territory of Hawaii Passed by the # Seventeenth Legislature: Regular Session 1933," available (as of # 2011-01-19) at American University's Pence Law Library. Page 85: "Act # 90...At 2 o'clock ante meridian of the last Sunday in April of each # year, the standard time of this Territory shall be advanced one # hour...This Act shall take effect upon its approval. Approved this 26th # day of April, A. D. 1933. LAWRENCE M JUDD, Governor of the Territory of # Hawaii." Page 172: "Act 163...Act 90 of the Session Laws of 1933 is # hereby repealed...This Act shall take effect upon its approval, upon # which date the standard time of this Territory shall be restored to # that existing immediately prior to the taking effect of said Act 90. # Approved this 21st day of May, A. D. 1933. LAWRENCE M. JUDD, Governor # of the Territory of Hawaii." # # Note that 1933-05-21 was a Sunday. # We're left to guess the time of day when Act 163 was approved; guess noon. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Honolulu -10:31:26 - LMT 1896 Jan 13 12:00 -10:30 - HST 1933 Apr 30 2:00 -10:30 1:00 HDT 1933 May 21 12:00 -10:30 US H%sT 1947 Jun 8 2:00 -10:00 - HST # Now we turn to US areas that have diverged from the consensus since 1970. # Arizona mostly uses MST. # From Paul Eggert (2002-10-20): # # The information in the rest of this paragraph is derived from the # Daylight Saving Time web page # (2002-01-23) # maintained by the Arizona State Library, Archives and Public Records. # Between 1944-01-01 and 1944-04-01 the State of Arizona used standard # time, but by federal law railroads, airlines, bus lines, military # personnel, and some engaged in interstate commerce continued to # observe war (i.e., daylight saving) time. The 1944-03-17 Phoenix # Gazette says that was the date the law changed, and that 04-01 was # the date the state's clocks would change. In 1945 the State of # Arizona used standard time all year, again with exceptions only as # mandated by federal law. Arizona observed DST in 1967, but Arizona # Laws 1968, ch. 183 (effective 1968-03-21) repealed DST. # # Shanks says the 1944 experiment came to an end on 1944-03-17. # Go with the Arizona State Library instead. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Phoenix -7:28:18 - LMT 1883 Nov 18 11:31:42 -7:00 US M%sT 1944 Jan 1 0:01 -7:00 - MST 1944 Apr 1 0:01 -7:00 US M%sT 1944 Oct 1 0:01 -7:00 - MST 1967 -7:00 US M%sT 1968 Mar 21 -7:00 - MST Link America/Phoenix America/Creston # From Arthur David Olson (1988-02-13): # A writer from the Inter Tribal Council of Arizona, Inc., # notes in private correspondence dated 1987-12-28 that "Presently, only the # Navajo Nation participates in the Daylight Saving Time policy, due to its # large size and location in three states." (The "only" means that other # tribal nations don't use DST.) # # From Paul Eggert (2013-08-26): # See America/Denver for a zone appropriate for the Navajo Nation. # Southern Idaho (Ada, Adams, Bannock, Bear Lake, Bingham, Blaine, # Boise, Bonneville, Butte, Camas, Canyon, Caribou, Cassia, Clark, # Custer, Elmore, Franklin, Fremont, Gem, Gooding, Jefferson, Jerome, # Lemhi, Lincoln, Madison, Minidoka, Oneida, Owyhee, Payette, Power, # Teton, Twin Falls, Valley, Washington counties, and the southern # quarter of Idaho county) and eastern Oregon (most of Malheur County) # switched four weeks late in 1974. # # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Boise -7:44:49 - LMT 1883 Nov 18 12:15:11 -8:00 US P%sT 1923 May 13 2:00 -7:00 US M%sT 1974 -7:00 - MST 1974 Feb 3 2:00 -7:00 US M%sT # Indiana # # For a map of Indiana's time zone regions, see: # https://en.wikipedia.org/wiki/Time_in_Indiana # # From Paul Eggert (2018-11-30): # A brief but entertaining history of time in Indiana describes a 1949 debate # in the Indiana House where city legislators (who favored "fast time") # tussled with farm legislators (who didn't) over a bill to outlaw DST: # "Lacking enough votes, the city faction tries to filibuster until time runs # out on the session at midnight, but rural champion Rep. Herbert Copeland, # R-Madison, leans over the gallery railing and forces the official clock # back to 9 p.m., breaking it in the process. The clock sticks on 9 as the # debate rages on into the night. The filibuster finally dies out and the # bill passes, while outside the chamber, clocks read 3:30 a.m. In the end, # it doesn't matter which side won. The law has no enforcement powers and # is simply ignored by fast-time communities." # How Indiana went from 'God's time' to split zones and daylight-saving. # Indianapolis Star. 2018-11-27 14:58 -05. # https://www.indystar.com/story/news/politics/2018/11/27/indianapolis-indiana-time-zone-history-central-eastern-daylight-savings-time/2126300002/ # # From Paul Eggert (2007-08-17): # Since 1970, most of Indiana has been like America/Indiana/Indianapolis, # with the following exceptions: # # - Gibson, Jasper, Lake, LaPorte, Newton, Porter, Posey, Spencer, # Vanderburgh, and Warrick counties have been like America/Chicago. # # - Dearborn and Ohio counties have been like America/New_York. # # - Clark, Floyd, and Harrison counties have been like # America/Kentucky/Louisville. # # - Crawford, Daviess, Dubois, Knox, Martin, Perry, Pike, Pulaski, Starke, # and Switzerland counties have their own time zone histories as noted below. # # Shanks partitioned Indiana into 345 regions, each with its own time history, # and wrote "Even newspaper reports present contradictory information." # Those Hoosiers! Such a flighty and changeable people! # Fortunately, most of the complexity occurred before our cutoff date of 1970. # # Other than Indianapolis, the Indiana place names are so nondescript # that they would be ambiguous if we left them at the 'America' level. # So we reluctantly put them all in a subdirectory 'America/Indiana'. # From Paul Eggert (2014-06-26): # https://www.federalregister.gov/articles/2006/01/20/06-563/standard-time-zone-boundary-in-the-state-of-indiana # says "DOT is relocating the time zone boundary in Indiana to move Starke, # Pulaski, Knox, Daviess, Martin, Pike, Dubois, and Perry Counties from the # Eastern Time Zone to the Central Time Zone.... The effective date of # this rule is 2 a.m. EST Sunday, April 2, 2006, which is the # changeover date from standard time to Daylight Saving Time." # Strictly speaking, this meant the affected counties changed their # clocks twice that night, but this obviously was in error. The intent # was that 01:59:59 EST be followed by 02:00:00 CDT. # From Gwillim Law (2007-02-10): # The Associated Press has been reporting that Pulaski County, Indiana is # going to switch from Central to Eastern Time on March 11, 2007.... # http://www.indystar.com/apps/pbcs.dll/article?AID=/20070207/LOCAL190108/702070524/0/LOCAL # Rule NAME FROM TO - IN ON AT SAVE LETTER Rule Indianapolis 1941 only - Jun 22 2:00 1:00 D Rule Indianapolis 1941 1954 - Sep lastSun 2:00 0 S Rule Indianapolis 1946 1954 - Apr lastSun 2:00 1:00 D # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Indiana/Indianapolis -5:44:38 - LMT 1883 Nov 18 12:15:22 -6:00 US C%sT 1920 -6:00 Indianapolis C%sT 1942 -6:00 US C%sT 1946 -6:00 Indianapolis C%sT 1955 Apr 24 2:00 -5:00 - EST 1957 Sep 29 2:00 -6:00 - CST 1958 Apr 27 2:00 -5:00 - EST 1969 -5:00 US E%sT 1971 -5:00 - EST 2006 -5:00 US E%sT # # Eastern Crawford County, Indiana, left its clocks alone in 1974, # as well as from 1976 through 2005. # Rule NAME FROM TO - IN ON AT SAVE LETTER Rule Marengo 1951 only - Apr lastSun 2:00 1:00 D Rule Marengo 1951 only - Sep lastSun 2:00 0 S Rule Marengo 1954 1960 - Apr lastSun 2:00 1:00 D Rule Marengo 1954 1960 - Sep lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Indiana/Marengo -5:45:23 - LMT 1883 Nov 18 12:14:37 -6:00 US C%sT 1951 -6:00 Marengo C%sT 1961 Apr 30 2:00 -5:00 - EST 1969 -5:00 US E%sT 1974 Jan 6 2:00 -6:00 1:00 CDT 1974 Oct 27 2:00 -5:00 US E%sT 1976 -5:00 - EST 2006 -5:00 US E%sT # # Daviess, Dubois, Knox, and Martin Counties, Indiana, # switched from eastern to central time in April 2006, then switched back # in November 2007. # Rule NAME FROM TO - IN ON AT SAVE LETTER Rule Vincennes 1946 only - Apr lastSun 2:00 1:00 D Rule Vincennes 1946 only - Sep lastSun 2:00 0 S Rule Vincennes 1953 1954 - Apr lastSun 2:00 1:00 D Rule Vincennes 1953 1959 - Sep lastSun 2:00 0 S Rule Vincennes 1955 only - May 1 0:00 1:00 D Rule Vincennes 1956 1963 - Apr lastSun 2:00 1:00 D Rule Vincennes 1960 only - Oct lastSun 2:00 0 S Rule Vincennes 1961 only - Sep lastSun 2:00 0 S Rule Vincennes 1962 1963 - Oct lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Indiana/Vincennes -5:50:07 - LMT 1883 Nov 18 12:09:53 -6:00 US C%sT 1946 -6:00 Vincennes C%sT 1964 Apr 26 2:00 -5:00 - EST 1969 -5:00 US E%sT 1971 -5:00 - EST 2006 Apr 2 2:00 -6:00 US C%sT 2007 Nov 4 2:00 -5:00 US E%sT # # Perry County, Indiana, switched from eastern to central time in April 2006. # From Alois Treindl (2019-07-09): # The Indianapolis News, Friday 27 October 1967 states that Perry County # returned to CST. It went again to EST on 27 April 1969, as documented by the # Indianapolis star of Saturday 26 April. # Rule NAME FROM TO - IN ON AT SAVE LETTER Rule Perry 1955 only - May 1 0:00 1:00 D Rule Perry 1955 1960 - Sep lastSun 2:00 0 S Rule Perry 1956 1963 - Apr lastSun 2:00 1:00 D Rule Perry 1961 1963 - Oct lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Indiana/Tell_City -5:47:03 - LMT 1883 Nov 18 12:12:57 -6:00 US C%sT 1946 -6:00 Perry C%sT 1964 Apr 26 2:00 -5:00 - EST 1967 Oct 29 2:00 -6:00 US C%sT 1969 Apr 27 2:00 -5:00 US E%sT 1971 -5:00 - EST 2006 Apr 2 2:00 -6:00 US C%sT # # Pike County, Indiana moved from central to eastern time in 1977, # then switched back in 2006, then switched back again in 2007. # Rule NAME FROM TO - IN ON AT SAVE LETTER Rule Pike 1955 only - May 1 0:00 1:00 D Rule Pike 1955 1960 - Sep lastSun 2:00 0 S Rule Pike 1956 1964 - Apr lastSun 2:00 1:00 D Rule Pike 1961 1964 - Oct lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Indiana/Petersburg -5:49:07 - LMT 1883 Nov 18 12:10:53 -6:00 US C%sT 1955 -6:00 Pike C%sT 1965 Apr 25 2:00 -5:00 - EST 1966 Oct 30 2:00 -6:00 US C%sT 1977 Oct 30 2:00 -5:00 - EST 2006 Apr 2 2:00 -6:00 US C%sT 2007 Nov 4 2:00 -5:00 US E%sT # # Starke County, Indiana moved from central to eastern time in 1991, # then switched back in 2006. # From Arthur David Olson (1991-10-28): # An article on page A3 of the Sunday, 1991-10-27 Washington Post # notes that Starke County switched from Central time to Eastern time as of # 1991-10-27. # Rule NAME FROM TO - IN ON AT SAVE LETTER Rule Starke 1947 1961 - Apr lastSun 2:00 1:00 D Rule Starke 1947 1954 - Sep lastSun 2:00 0 S Rule Starke 1955 1956 - Oct lastSun 2:00 0 S Rule Starke 1957 1958 - Sep lastSun 2:00 0 S Rule Starke 1959 1961 - Oct lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Indiana/Knox -5:46:30 - LMT 1883 Nov 18 12:13:30 -6:00 US C%sT 1947 -6:00 Starke C%sT 1962 Apr 29 2:00 -5:00 - EST 1963 Oct 27 2:00 -6:00 US C%sT 1991 Oct 27 2:00 -5:00 - EST 2006 Apr 2 2:00 -6:00 US C%sT # # Pulaski County, Indiana, switched from eastern to central time in # April 2006 and then switched back in March 2007. # Rule NAME FROM TO - IN ON AT SAVE LETTER Rule Pulaski 1946 1960 - Apr lastSun 2:00 1:00 D Rule Pulaski 1946 1954 - Sep lastSun 2:00 0 S Rule Pulaski 1955 1956 - Oct lastSun 2:00 0 S Rule Pulaski 1957 1960 - Sep lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Indiana/Winamac -5:46:25 - LMT 1883 Nov 18 12:13:35 -6:00 US C%sT 1946 -6:00 Pulaski C%sT 1961 Apr 30 2:00 -5:00 - EST 1969 -5:00 US E%sT 1971 -5:00 - EST 2006 Apr 2 2:00 -6:00 US C%sT 2007 Mar 11 2:00 -5:00 US E%sT # # Switzerland County, Indiana, did not observe DST from 1973 through 2005. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Indiana/Vevay -5:40:16 - LMT 1883 Nov 18 12:19:44 -6:00 US C%sT 1954 Apr 25 2:00 -5:00 - EST 1969 -5:00 US E%sT 1973 -5:00 - EST 2006 -5:00 US E%sT # From Paul Eggert (2018-03-20): # The Louisville & Nashville Railroad's 1883-11-18 change occurred at # 10:00 old local time; train were supposed to come to a standstill # for precisely 18 minutes. See Bartky Fig. 1 (page 50). It is not # clear how this matched civil time in Louisville, so for now continue # to assume Louisville switched at noon new local time, like New York. # # From Michael Deckers (2019-08-06): # From the contemporary source given by Alois Treindl, # the switch in Louisville on 1946-04-28 was on 00:01 # From Paul Eggert (2019-08-26): # That source was the Louisville Courier-Journal, 1946-04-27, p 4. # Shanks gives 02:00 for all 20th-century transition times in Louisville. # Evidently this is wrong for spring 1946. Although also likely wrong # for other dates, we have no data. # # Part of Kentucky left its clocks alone in 1974. # This also includes Clark, Floyd, and Harrison counties in Indiana. # Rule NAME FROM TO - IN ON AT SAVE LETTER Rule Louisville 1921 only - May 1 2:00 1:00 D Rule Louisville 1921 only - Sep 1 2:00 0 S Rule Louisville 1941 only - Apr lastSun 2:00 1:00 D Rule Louisville 1941 only - Sep lastSun 2:00 0 S Rule Louisville 1946 only - Apr lastSun 0:01 1:00 D Rule Louisville 1946 only - Jun 2 2:00 0 S Rule Louisville 1950 1961 - Apr lastSun 2:00 1:00 D Rule Louisville 1950 1955 - Sep lastSun 2:00 0 S Rule Louisville 1956 1961 - Oct lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Kentucky/Louisville -5:43:02 - LMT 1883 Nov 18 12:16:58 -6:00 US C%sT 1921 -6:00 Louisville C%sT 1942 -6:00 US C%sT 1946 -6:00 Louisville C%sT 1961 Jul 23 2:00 -5:00 - EST 1968 -5:00 US E%sT 1974 Jan 6 2:00 -6:00 1:00 CDT 1974 Oct 27 2:00 -5:00 US E%sT # # Wayne County, Kentucky # # From Lake Cumberland LIFE # http://www.lake-cumberland.com/life/archive/news990129time.shtml # (1999-01-29) via WKYM-101.7: # Clinton County has joined Wayne County in asking the DoT to change from # the Central to the Eastern time zone.... The Wayne County government made # the same request in December. And while Russell County officials have not # taken action, the majority of respondents to a poll conducted there in # August indicated they would like to change to "fast time" also. # The three Lake Cumberland counties are the farthest east of any U.S. # location in the Central time zone. # # From Rich Wales (2000-08-29): # After prolonged debate, and despite continuing deep differences of opinion, # Wayne County (central Kentucky) is switching from Central (-0600) to Eastern # (-0500) time. They won't "fall back" this year. See Sara Shipley, # The difference an hour makes, Nando Times (2000-08-29 15:33 -0400). # # From Paul Eggert (2001-07-16): # The final rule was published in the # Federal Register 65, 160 (2000-08-17), pp 50154-50158. # https://www.gpo.gov/fdsys/pkg/FR-2000-08-17/html/00-20854.htm # Zone America/Kentucky/Monticello -5:39:24 - LMT 1883 Nov 18 12:20:36 -6:00 US C%sT 1946 -6:00 - CST 1968 -6:00 US C%sT 2000 Oct 29 2:00 -5:00 US E%sT # From Rives McDow (2000-08-30): # Here ... are all the changes in the US since 1985. # Kearny County, KS (put all of county on central; # previously split between MST and CST) ... 1990-10 # Starke County, IN (from CST to EST) ... 1991-10 # Oliver County, ND (from MST to CST) ... 1992-10 # West Wendover, NV (from PST TO MST) ... 1999-10 # Wayne County, KY (from CST to EST) ... 2000-10 # # From Paul Eggert (2001-07-17): # We don't know where the line used to be within Kearny County, KS, # so omit that change for now. # See America/Indiana/Knox for the Starke County, IN change. # See America/North_Dakota/Center for the Oliver County, ND change. # West Wendover, NV officially switched from Pacific to mountain time on # 1999-10-31. See the # Federal Register 64, 203 (1999-10-21), pp 56705-56707. # https://www.gpo.gov/fdsys/pkg/FR-1999-10-21/html/99-27240.htm # However, the Federal Register says that West Wendover already operated # on mountain time, and the rule merely made this official; # hence a separate tz entry is not needed. # Michigan # # From Bob Devine (1988-01-28): # Michigan didn't observe DST from 1968 to 1973. # # From Paul Eggert (1999-03-31): # Shanks writes that Michigan started using standard time on 1885-09-18, # but Howse writes (pp 124-125, referring to Popular Astronomy, 1901-01) # that Detroit kept # # local time until 1900 when the City Council decreed that clocks should # be put back twenty-eight minutes to Central Standard Time. Half the # city obeyed, half refused. After considerable debate, the decision # was rescinded and the city reverted to Sun time. A derisive offer to # erect a sundial in front of the city hall was referred to the # Committee on Sewers. Then, in 1905, Central time was adopted # by city vote. # # This story is too entertaining to be false, so go with Howse over Shanks. # # From Paul Eggert (2001-03-06): # Garland (1927) writes "Cleveland and Detroit advanced their clocks # one hour in 1914." This change is not in Shanks. We have no more # info, so omit this for now. # # From Paul Eggert (2019-07-06): # Due to a complicated set of legal maneuvers, in 1967 Michigan did # not start daylight saving time when the rest of the US did. # Instead, it began DST on Jun 14 at 00:01. This was big news: # the Detroit Free Press reported it at the top of Page 1 on # 1967-06-14, in an article "State Adjusting to Switch to Fast Time" # by Gary Blonston, above an article about Thurgood Marshall's # confirmation to the US Supreme Court. Although Shanks says Detroit # observed DST until 1967-10-29 00:01, that time of day seems to be # incorrect, as the Free Press later said DST ended in Michigan at the # same time as the rest of the US. Also, although Shanks reports no DST in # Detroit in 1968, it did observe DST that year; in the November 1968 # election Michigan voters narrowly repealed DST, effective 1969. # # Most of Michigan observed DST from 1973 on, but was a bit late in 1975. # Rule NAME FROM TO - IN ON AT SAVE LETTER Rule Detroit 1948 only - Apr lastSun 2:00 1:00 D Rule Detroit 1948 only - Sep lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Detroit -5:32:11 - LMT 1905 -6:00 - CST 1915 May 15 2:00 -5:00 - EST 1942 -5:00 US E%sT 1946 -5:00 Detroit E%sT 1967 Jun 14 0:01 -5:00 US E%sT 1969 -5:00 - EST 1973 -5:00 US E%sT 1975 -5:00 - EST 1975 Apr 27 2:00 -5:00 US E%sT # # Dickinson, Gogebic, Iron, and Menominee Counties, Michigan, # switched from EST to CST/CDT in 1973. # Rule NAME FROM TO - IN ON AT SAVE LETTER Rule Menominee 1946 only - Apr lastSun 2:00 1:00 D Rule Menominee 1946 only - Sep lastSun 2:00 0 S Rule Menominee 1966 only - Apr lastSun 2:00 1:00 D Rule Menominee 1966 only - Oct lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Menominee -5:50:27 - LMT 1885 Sep 18 12:00 -6:00 US C%sT 1946 -6:00 Menominee C%sT 1969 Apr 27 2:00 -5:00 - EST 1973 Apr 29 2:00 -6:00 US C%sT # Navassa # administered by the US Fish and Wildlife Service # claimed by US under the provisions of the 1856 Guano Islands Act # also claimed by Haiti # occupied 1857/1900 by the Navassa Phosphate Co # US lighthouse 1917/1996-09 # currently uninhabited # see Mark Fineman, "An Isle Rich in Guano and Discord", # _Los Angeles Times_ (1998-11-10), A1, A10; it cites # Jimmy Skaggs, _The Great Guano Rush_ (1994). ################################################################################ # From Paul Eggert (2017-02-10): # # Unless otherwise specified, the source for data through 1990 is: # Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition), # San Diego: ACS Publications, Inc. (2003). # Unfortunately this book contains many errors and cites no sources. # # Many years ago Gwillim Law wrote that a good source # for time zone data was the International Air Transport # Association's Standard Schedules Information Manual (IATA SSIM), # published semiannually. Law sent in several helpful summaries # of the IATA's data after 1990. Except where otherwise noted, # IATA SSIM is the source for entries after 1990. # # Other sources occasionally used include: # # Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94 # . # # Pearce C. The Great Daylight Saving Time Controversy. # Australian Ebook Publisher. 2017. ISBN 978-1-925516-96-8. # # Edward W. Whitman, World Time Differences, # Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated), # which I found in the UCLA library. # # William Willett, The Waste of Daylight, 19th edition # # [PDF] (1914-03) # # See the 'europe' file for Greenland. # Canada # From Alain LaBonté (1994-11-14): # I post here the time zone abbreviations standardized in Canada # for both English and French in the CAN/CSA-Z234.4-89 standard.... # # UTC Standard time Daylight saving time # offset French English French English # -2:30 - - HAT NDT # -3 - - HAA ADT # -3:30 HNT NST - - # -4 HNA AST HAE EDT # -5 HNE EST HAC CDT # -6 HNC CST HAR MDT # -7 HNR MST HAP PDT # -8 HNP PST HAY YDT # -9 HNY YST - - # # HN: Heure Normale ST: Standard Time # HA: Heure Avancée DT: Daylight saving Time # # A: de l'Atlantique Atlantic # C: du Centre Central # E: de l'Est Eastern # M: Mountain # N: Newfoundland # P: du Pacifique Pacific # R: des Rocheuses # T: de Terre-Neuve # Y: du Yukon Yukon # # From Paul Eggert (1994-11-22): # Alas, this sort of thing must be handled by localization software. # Unless otherwise specified, the data entries for Canada are all from Shanks # & Pottenger. # From Chris Walton (2006-04-01, 2006-04-25, 2006-06-26, 2007-01-31, # 2007-03-01): # The British Columbia government announced yesterday that it will # adjust daylight savings next year to align with changes in the # U.S. and the rest of Canada.... # https://archive.news.gov.bc.ca/releases/news_releases_2005-2009/2006AG0014-000330.htm # ... # Nova Scotia # Daylight saving time will be extended by four weeks starting in 2007.... # https://www.novascotia.ca/just/regulations/rg2/2006/ma1206.pdf # # [For New Brunswick] the new legislation dictates that the time change is to # be done at 02:00 instead of 00:01. # https://www.gnb.ca/0062/acts/BBA-2006/Chap-19.pdf # ... # Manitoba has traditionally changed the clock every fall at 03:00. # As of 2006, the transition is to take place one hour earlier at 02:00. # https://web2.gov.mb.ca/laws/statutes/ccsm/o030e.php # ... # [Alberta, Ontario, Quebec] will follow US rules. # http://www.qp.gov.ab.ca/documents/spring/CH03_06.CFM # http://www.e-laws.gov.on.ca/DBLaws/Source/Regs/English/2006/R06111_e.htm # http://www2.publicationsduquebec.gouv.qc.ca/dynamicSearch/telecharge.php?type=5&file=2006C39A.PDF # ... # P.E.I. will follow US rules.... # http://www.assembly.pe.ca/bills/pdf_chapter/62/3/chapter-41.pdf # ... # Province of Newfoundland and Labrador.... # http://www.hoa.gov.nl.ca/hoa/bills/Bill0634.htm # ... # Yukon # https://www.gov.yk.ca/legislation/regs/oic2006_127.pdf # ... # N.W.T. will follow US rules. Whoever maintains the government web site # does not seem to believe in bookmarks. To see the news release, click the # following link and search for "Daylight Savings Time Change". Press the # "Daylight Savings Time Change" link; it will fire off a popup using # JavaScript. # http://www.exec.gov.nt.ca/currentnews/currentPR.asp?mode=archive # ... # Nunavut # An amendment to the Interpretation Act was registered on February 19/2007.... # http://action.attavik.ca/home/justice-gn/attach/2007/gaz02part2.pdf # From Paul Eggert (2014-10-18): # H. David Matthews and Mary Vincent's map # "It's about TIME", _Canadian Geographic_ (September-October 1998) # http://www.canadiangeographic.ca/Magazine/SO98/alacarte.asp # contains detailed boundaries for regions observing nonstandard # time and daylight saving time arrangements in Canada circa 1998. # # National Research Council Canada maintains info about time zones and DST. # https://www.nrc-cnrc.gc.ca/eng/services/time/time_zones.html # https://www.nrc-cnrc.gc.ca/eng/services/time/faq/index.html#Q5 # Its unofficial information is often taken from Matthews and Vincent. # From Paul Eggert (2006-06-27): # For now, assume all of DST-observing Canada will fall into line with the # new US DST rules, # From Chris Walton (2011-12-01) # In the first of Tammy Hardwick's articles # http://www.ilovecreston.com/?p=articles&t=spec&ar=260 # she quotes the Friday November 1/1918 edition of the Creston Review. # The quote includes these two statements: # 'Sunday the CPR went back to the old system of time...' # '... The daylight saving scheme was dropped all over Canada at the same time,' # These statements refer to a transition from daylight time to standard time # that occurred nationally on Sunday October 27/1918. This transition was # also documented in the Saturday October 26/1918 edition of the Toronto Star. # In light of that evidence, we alter the date from the earlier believed # Oct 31, to Oct 27, 1918 (and Sunday is a more likely transition day # than Thursday) in all Canadian rulesets. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Canada 1918 only - Apr 14 2:00 1:00 D Rule Canada 1918 only - Oct 27 2:00 0 S Rule Canada 1942 only - Feb 9 2:00 1:00 W # War Rule Canada 1945 only - Aug 14 23:00u 1:00 P # Peace Rule Canada 1945 only - Sep 30 2:00 0 S Rule Canada 1974 1986 - Apr lastSun 2:00 1:00 D Rule Canada 1974 2006 - Oct lastSun 2:00 0 S Rule Canada 1987 2006 - Apr Sun>=1 2:00 1:00 D Rule Canada 2007 max - Mar Sun>=8 2:00 1:00 D Rule Canada 2007 max - Nov Sun>=1 2:00 0 S # Newfoundland and Labrador # From Paul Eggert (2017-10-14): # Legally Labrador should observe Newfoundland time; see: # McLeod J. Labrador time - legal or not? St. John's Telegram, 2017-10-07 # http://www.thetelegram.com/news/local/labrador-time--legal-or-not-154860/ # Matthews and Vincent (1998) write that the only part of Labrador # that follows the rules is the southeast corner, including Port Hope # Simpson and Mary's Harbour, but excluding, say, Black Tickle. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule StJohns 1917 only - Apr 8 2:00 1:00 D Rule StJohns 1917 only - Sep 17 2:00 0 S # Whitman gives 1919 Apr 5 and 1920 Apr 5; go with Shanks & Pottenger. Rule StJohns 1919 only - May 5 23:00 1:00 D Rule StJohns 1919 only - Aug 12 23:00 0 S # For 1931-1935 Whitman gives Apr same date; go with Shanks & Pottenger. Rule StJohns 1920 1935 - May Sun>=1 23:00 1:00 D Rule StJohns 1920 1935 - Oct lastSun 23:00 0 S # For 1936-1941 Whitman gives May Sun>=8 and Oct Sun>=1; go with Shanks & # Pottenger. Rule StJohns 1936 1941 - May Mon>=9 0:00 1:00 D Rule StJohns 1936 1941 - Oct Mon>=2 0:00 0 S # Whitman gives the following transitions: # 1942 03-01/12-31, 1943 05-30/09-05, 1944 07-10/09-02, 1945 01-01/10-07 # but go with Shanks & Pottenger and assume they used Canadian rules. # For 1946-9 Whitman gives May 5,4,9,1 - Oct 1,5,3,2, and for 1950 he gives # Apr 30 - Sep 24; go with Shanks & Pottenger. Rule StJohns 1946 1950 - May Sun>=8 2:00 1:00 D Rule StJohns 1946 1950 - Oct Sun>=2 2:00 0 S Rule StJohns 1951 1986 - Apr lastSun 2:00 1:00 D Rule StJohns 1951 1959 - Sep lastSun 2:00 0 S Rule StJohns 1960 1986 - Oct lastSun 2:00 0 S # From Paul Eggert (2000-10-02): # INMS (2000-09-12) says that, since 1988 at least, Newfoundland switches # at 00:01 local time. For now, assume it started in 1987. # From Michael Pelley (2011-09-12): # We received today, Monday, September 12, 2011, notification that the # changes to the Newfoundland Standard Time Act have been proclaimed. # The change in the Act stipulates that the change from Daylight Savings # Time to Standard Time and from Standard Time to Daylight Savings Time # now occurs at 2:00AM. # ... # http://www.assembly.nl.ca/legislation/sr/annualstatutes/2011/1106.chp.htm # ... # MICHAEL PELLEY | Manager of Enterprise Architecture - Solution Delivery # Office of the Chief Information Officer # Executive Council # Government of Newfoundland & Labrador Rule StJohns 1987 only - Apr Sun>=1 0:01 1:00 D Rule StJohns 1987 2006 - Oct lastSun 0:01 0 S Rule StJohns 1988 only - Apr Sun>=1 0:01 2:00 DD Rule StJohns 1989 2006 - Apr Sun>=1 0:01 1:00 D Rule StJohns 2007 2011 - Mar Sun>=8 0:01 1:00 D Rule StJohns 2007 2010 - Nov Sun>=1 0:01 0 S # # St John's has an apostrophe, but Posix file names can't have apostrophes. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/St_Johns -3:30:52 - LMT 1884 -3:30:52 StJohns N%sT 1918 -3:30:52 Canada N%sT 1919 -3:30:52 StJohns N%sT 1935 Mar 30 -3:30 StJohns N%sT 1942 May 11 -3:30 Canada N%sT 1946 -3:30 StJohns N%sT 2011 Nov -3:30 Canada N%sT # most of east Labrador # The name 'Happy Valley-Goose Bay' is too long; use 'Goose Bay'. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Goose_Bay -4:01:40 - LMT 1884 # Happy Valley-Goose Bay -3:30:52 - NST 1918 -3:30:52 Canada N%sT 1919 -3:30:52 - NST 1935 Mar 30 -3:30 - NST 1936 -3:30 StJohns N%sT 1942 May 11 -3:30 Canada N%sT 1946 -3:30 StJohns N%sT 1966 Mar 15 2:00 -4:00 StJohns A%sT 2011 Nov -4:00 Canada A%sT # west Labrador, Nova Scotia, Prince Edward I, # Îles-de-la-Madeleine, Listuguj reserve # From Brian Inglis (2015-07-20): # From the historical weather station records available at: # https://weatherspark.com/history/28351/1971/Sydney-Nova-Scotia-Canada # Sydney shares the same time history as Glace Bay, so was # likely to be the same across the island.... # Sydney, as the capital and most populous location, or Cape Breton, would # have been better names for the zone had we known this in 1996. # From Paul Eggert (2015-07-20): # Shanks & Pottenger write that since 1970 most of this region has been like # Halifax. Many locales did not observe peacetime DST until 1972; # the Cape Breton area, represented by Glace Bay, is the largest we know of # (Glace Bay was perhaps not the best name choice but no point changing now). # Shanks & Pottenger also write that Liverpool, NS was the only town # in Canada to observe DST in 1971 but not 1970; for now we'll assume # this is a typo. # From Jeffery Nichols (2020-01-09): # America/Halifax ... also applies to Îles-de-la-Madeleine and the Listuguj # reserve in Quebec. Officially, this came into effect on January 1, 2007 # (Legal Time Act, CQLR c T-5.1), but the legislative debates surrounding that # bill say that it is "accommodating the customs and practices" of those # regions, which suggests that they have always been in-line with Halifax. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Halifax 1916 only - Apr 1 0:00 1:00 D Rule Halifax 1916 only - Oct 1 0:00 0 S Rule Halifax 1920 only - May 9 0:00 1:00 D Rule Halifax 1920 only - Aug 29 0:00 0 S Rule Halifax 1921 only - May 6 0:00 1:00 D Rule Halifax 1921 1922 - Sep 5 0:00 0 S Rule Halifax 1922 only - Apr 30 0:00 1:00 D Rule Halifax 1923 1925 - May Sun>=1 0:00 1:00 D Rule Halifax 1923 only - Sep 4 0:00 0 S Rule Halifax 1924 only - Sep 15 0:00 0 S Rule Halifax 1925 only - Sep 28 0:00 0 S Rule Halifax 1926 only - May 16 0:00 1:00 D Rule Halifax 1926 only - Sep 13 0:00 0 S Rule Halifax 1927 only - May 1 0:00 1:00 D Rule Halifax 1927 only - Sep 26 0:00 0 S Rule Halifax 1928 1931 - May Sun>=8 0:00 1:00 D Rule Halifax 1928 only - Sep 9 0:00 0 S Rule Halifax 1929 only - Sep 3 0:00 0 S Rule Halifax 1930 only - Sep 15 0:00 0 S Rule Halifax 1931 1932 - Sep Mon>=24 0:00 0 S Rule Halifax 1932 only - May 1 0:00 1:00 D Rule Halifax 1933 only - Apr 30 0:00 1:00 D Rule Halifax 1933 only - Oct 2 0:00 0 S Rule Halifax 1934 only - May 20 0:00 1:00 D Rule Halifax 1934 only - Sep 16 0:00 0 S Rule Halifax 1935 only - Jun 2 0:00 1:00 D Rule Halifax 1935 only - Sep 30 0:00 0 S Rule Halifax 1936 only - Jun 1 0:00 1:00 D Rule Halifax 1936 only - Sep 14 0:00 0 S Rule Halifax 1937 1938 - May Sun>=1 0:00 1:00 D Rule Halifax 1937 1941 - Sep Mon>=24 0:00 0 S Rule Halifax 1939 only - May 28 0:00 1:00 D Rule Halifax 1940 1941 - May Sun>=1 0:00 1:00 D Rule Halifax 1946 1949 - Apr lastSun 2:00 1:00 D Rule Halifax 1946 1949 - Sep lastSun 2:00 0 S Rule Halifax 1951 1954 - Apr lastSun 2:00 1:00 D Rule Halifax 1951 1954 - Sep lastSun 2:00 0 S Rule Halifax 1956 1959 - Apr lastSun 2:00 1:00 D Rule Halifax 1956 1959 - Sep lastSun 2:00 0 S Rule Halifax 1962 1973 - Apr lastSun 2:00 1:00 D Rule Halifax 1962 1973 - Oct lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Halifax -4:14:24 - LMT 1902 Jun 15 -4:00 Halifax A%sT 1918 -4:00 Canada A%sT 1919 -4:00 Halifax A%sT 1942 Feb 9 2:00s -4:00 Canada A%sT 1946 -4:00 Halifax A%sT 1974 -4:00 Canada A%sT Zone America/Glace_Bay -3:59:48 - LMT 1902 Jun 15 -4:00 Canada A%sT 1953 -4:00 Halifax A%sT 1954 -4:00 - AST 1972 -4:00 Halifax A%sT 1974 -4:00 Canada A%sT # New Brunswick # From Paul Eggert (2007-01-31): # The Time Definition Act # says they changed at 00:01 through 2006, and # makes it # clear that this was the case since at least 1993. # For now, assume it started in 1993. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Moncton 1933 1935 - Jun Sun>=8 1:00 1:00 D Rule Moncton 1933 1935 - Sep Sun>=8 1:00 0 S Rule Moncton 1936 1938 - Jun Sun>=1 1:00 1:00 D Rule Moncton 1936 1938 - Sep Sun>=1 1:00 0 S Rule Moncton 1939 only - May 27 1:00 1:00 D Rule Moncton 1939 1941 - Sep Sat>=21 1:00 0 S Rule Moncton 1940 only - May 19 1:00 1:00 D Rule Moncton 1941 only - May 4 1:00 1:00 D Rule Moncton 1946 1972 - Apr lastSun 2:00 1:00 D Rule Moncton 1946 1956 - Sep lastSun 2:00 0 S Rule Moncton 1957 1972 - Oct lastSun 2:00 0 S Rule Moncton 1993 2006 - Apr Sun>=1 0:01 1:00 D Rule Moncton 1993 2006 - Oct lastSun 0:01 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Moncton -4:19:08 - LMT 1883 Dec 9 -5:00 - EST 1902 Jun 15 -4:00 Canada A%sT 1933 -4:00 Moncton A%sT 1942 -4:00 Canada A%sT 1946 -4:00 Moncton A%sT 1973 -4:00 Canada A%sT 1993 -4:00 Moncton A%sT 2007 -4:00 Canada A%sT # Quebec # From Paul Eggert (2020-01-10): # See America/Toronto for most of Quebec, including Montreal. # See America/Halifax for the Îles de la Madeleine and the Listuguj reserve. # See America/Puerto_Rico for east of Natashquan. # Ontario # From Paul Eggert (2006-07-09): # Shanks & Pottenger write that since 1970 most of Ontario has been like # Toronto. # Thunder Bay skipped DST in 1973. # Many smaller locales did not observe peacetime DST until 1974; # Nipigon (EST) and Rainy River (CST) are the largest that we know of. # Far west Ontario is like Winnipeg; far east Quebec is like Halifax. # From Jeffery Nichols (2020-02-06): # According to the [Shanks] atlas, those western Ontario zones are huge, # covering most of Ontario northwest of Sault Ste Marie and Timmins. # The zones seem to include towns bigger than the ones they're named after, # like Dryden in America/Rainy_River and Wawa (and maybe Attawapiskat) in # America/Nipigon. I assume it's too much trouble to change the name of the # zone (like when you found out that America/Glace_Bay includes Sydney, Nova # Scotia).... # From Mark Brader (2003-07-26): # [According to the Toronto Star] Orillia, Ontario, adopted DST # effective Saturday, 1912-06-22, 22:00; the article mentions that # Port Arthur (now part of Thunder Bay, Ontario) as well as Moose Jaw # have already done so. In Orillia DST was to run until Saturday, # 1912-08-31 (no time mentioned), but it was met with considerable # hostility from certain segments of the public, and was revoked after # only two weeks - I copied it as Saturday, 1912-07-07, 22:00, but # presumably that should be -07-06. (1912-06-19, -07-12; also letters # earlier in June). # # Kenora, Ontario, was to abandon DST on 1914-06-01 (-05-21). # # From Paul Eggert (2017-07-08): # For more on Orillia, see: Daubs K. Bold attempt at daylight saving # time became a comic failure in Orillia. Toronto Star 2017-07-08. # https://www.thestar.com/news/insight/2017/07/08/bold-attempt-at-daylight-saving-time-became-a-comic-failure-in-orillia.html # From Mark Brader (2010-03-06): # # Currently the database has: # # # Ontario # # # From Paul Eggert (2006-07-09): # # Shanks & Pottenger write that since 1970 most of Ontario has been like # # Toronto. # # Thunder Bay skipped DST in 1973. # # Many smaller locales did not observe peacetime DST until 1974; # # Nipigon (EST) and Rainy River (CST) are the largest that we know of. # # In the (Toronto) Globe and Mail for Saturday, 1955-09-24, in the bottom # right corner of page 1, it says that Toronto will return to standard # time at 2 am Sunday morning (which agrees with the database), and that: # # The one-hour setback will go into effect throughout most of Ontario, # except in areas like Windsor which remains on standard time all year. # # Windsor is, of course, a lot larger than Nipigon. # # I only came across this incidentally. I don't know if Windsor began # observing DST when Detroit did, or in 1974, or on some other date. # # By the way, the article continues by noting that: # # Some cities in the United States have pushed the deadline back # three weeks and will change over from daylight saving in October. # From Arthur David Olson (2010-07-17): # # "Standard Time and Time Zones in Canada" appeared in # The Journal of The Royal Astronomical Society of Canada, # volume 26, number 2 (February 1932) and, as of 2010-07-17, # was available at # http://adsabs.harvard.edu/full/1932JRASC..26...49S # # It includes the text below (starting on page 57): # # A list of the places in Canada using daylight saving time would # require yearly revision. From information kindly furnished by # the provincial governments and by the postmasters in many cities # and towns, it is found that the following places used daylight sav- # ing in 1930. The information for the province of Quebec is definite, # for the other provinces only approximate: # # Province Daylight saving time used # Prince Edward Island Not used. # Nova Scotia In Halifax only. # New Brunswick In St. John only. # Quebec In the following places: # Montreal Lachine # Quebec Mont-Royal # Lévis Iberville # St. Lambert Cap de la Madelèine # Verdun Loretteville # Westmount Richmond # Outremont St. Jérôme # Longueuil Greenfield Park # Arvida Waterloo # Chambly-Canton Beaulieu # Melbourne La Tuque # St. Théophile Buckingham # Ontario Used generally in the cities and towns along # the southerly part of the province. Not # used in the northwesterly part. # Manitoba Not used. # Saskatchewan In Regina only. # Alberta Not used. # British Columbia Not used. # # With some exceptions, the use of daylight saving may be said to be limited # to those cities and towns lying between Quebec city and Windsor, Ont. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Toronto 1919 only - Mar 30 23:30 1:00 D Rule Toronto 1919 only - Oct 26 0:00 0 S Rule Toronto 1920 only - May 2 2:00 1:00 D Rule Toronto 1920 only - Sep 26 0:00 0 S Rule Toronto 1921 only - May 15 2:00 1:00 D Rule Toronto 1921 only - Sep 15 2:00 0 S Rule Toronto 1922 1923 - May Sun>=8 2:00 1:00 D # Shanks & Pottenger say 1923-09-19; assume it's a typo and that "-16" # was meant. Rule Toronto 1922 1926 - Sep Sun>=15 2:00 0 S Rule Toronto 1924 1927 - May Sun>=1 2:00 1:00 D Rule Toronto 1927 1937 - Sep Sun>=25 2:00 0 S Rule Toronto 1928 1937 - Apr Sun>=25 2:00 1:00 D Rule Toronto 1938 1940 - Apr lastSun 2:00 1:00 D Rule Toronto 1938 1939 - Sep lastSun 2:00 0 S Rule Toronto 1945 1946 - Sep lastSun 2:00 0 S Rule Toronto 1946 only - Apr lastSun 2:00 1:00 D Rule Toronto 1947 1949 - Apr lastSun 0:00 1:00 D Rule Toronto 1947 1948 - Sep lastSun 0:00 0 S Rule Toronto 1949 only - Nov lastSun 0:00 0 S Rule Toronto 1950 1973 - Apr lastSun 2:00 1:00 D Rule Toronto 1950 only - Nov lastSun 2:00 0 S Rule Toronto 1951 1956 - Sep lastSun 2:00 0 S # Shanks & Pottenger say Toronto ended DST a week early in 1971, # namely on 1971-10-24, but Mark Brader wrote (2003-05-31) that this # is wrong, and that he had confirmed it by checking the 1971-10-30 # Toronto Star, which said that DST was ending 1971-10-31 as usual. Rule Toronto 1957 1973 - Oct lastSun 2:00 0 S # From Paul Eggert (2003-07-27): # Willett (1914-03) writes (p. 17) "In the Cities of Fort William, and # Port Arthur, Ontario, the principle of the Bill has been in # operation for the past three years, and in the City of Moose Jaw, # Saskatchewan, for one year." # From David Bryan via Tory Tronrud, Director/Curator, # Thunder Bay Museum (2003-11-12): # There is some suggestion, however, that, by-law or not, daylight # savings time was being practiced in Fort William and Port Arthur # before 1909.... [I]n 1910, the line between the Eastern and Central # Time Zones was permanently moved about two hundred miles west to # include the Thunder Bay area.... When Canada adopted daylight # savings time in 1916, Fort William and Port Arthur, having done so # already, did not change their clocks.... During the Second World # War,... [t]he cities agreed to implement DST during the summer # months for the remainder of the war years. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Toronto -5:17:32 - LMT 1895 -5:00 Canada E%sT 1919 -5:00 Toronto E%sT 1942 Feb 9 2:00s -5:00 Canada E%sT 1946 -5:00 Toronto E%sT 1974 -5:00 Canada E%sT Link America/Toronto America/Nassau Zone America/Thunder_Bay -5:57:00 - LMT 1895 -6:00 - CST 1910 -5:00 - EST 1942 -5:00 Canada E%sT 1970 -5:00 Toronto E%sT 1973 -5:00 - EST 1974 -5:00 Canada E%sT Zone America/Nipigon -5:53:04 - LMT 1895 -5:00 Canada E%sT 1940 Sep 29 -5:00 1:00 EDT 1942 Feb 9 2:00s -5:00 Canada E%sT Zone America/Rainy_River -6:18:16 - LMT 1895 -6:00 Canada C%sT 1940 Sep 29 -6:00 1:00 CDT 1942 Feb 9 2:00s -6:00 Canada C%sT # For Atikokan see America/Panama. # Manitoba # From Rob Douglas (2006-04-06): # the old Manitoba Time Act - as amended by Bill 2, assented to # March 27, 1987 ... said ... # "between two o'clock Central Standard Time in the morning of # the first Sunday of April of each year and two o'clock Central # Standard Time in the morning of the last Sunday of October next # following, one hour in advance of Central Standard Time."... # I believe that the English legislation [of the old time act] had # been assented to (March 22, 1967).... # Also, as far as I can tell, there was no order-in-council varying # the time of Daylight Saving Time for 2005 and so the provisions of # the 1987 version would apply - the changeover was at 2:00 Central # Standard Time (i.e. not until 3:00 Central Daylight Time). # From Paul Eggert (2006-04-10): # Shanks & Pottenger say Manitoba switched at 02:00 (not 02:00s) # starting 1966. Since 02:00s is clearly correct for 1967 on, assume # it was also 02:00s in 1966. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Winn 1916 only - Apr 23 0:00 1:00 D Rule Winn 1916 only - Sep 17 0:00 0 S Rule Winn 1918 only - Apr 14 2:00 1:00 D Rule Winn 1918 only - Oct 27 2:00 0 S Rule Winn 1937 only - May 16 2:00 1:00 D Rule Winn 1937 only - Sep 26 2:00 0 S Rule Winn 1942 only - Feb 9 2:00 1:00 W # War Rule Winn 1945 only - Aug 14 23:00u 1:00 P # Peace Rule Winn 1945 only - Sep lastSun 2:00 0 S Rule Winn 1946 only - May 12 2:00 1:00 D Rule Winn 1946 only - Oct 13 2:00 0 S Rule Winn 1947 1949 - Apr lastSun 2:00 1:00 D Rule Winn 1947 1949 - Sep lastSun 2:00 0 S Rule Winn 1950 only - May 1 2:00 1:00 D Rule Winn 1950 only - Sep 30 2:00 0 S Rule Winn 1951 1960 - Apr lastSun 2:00 1:00 D Rule Winn 1951 1958 - Sep lastSun 2:00 0 S Rule Winn 1959 only - Oct lastSun 2:00 0 S Rule Winn 1960 only - Sep lastSun 2:00 0 S Rule Winn 1963 only - Apr lastSun 2:00 1:00 D Rule Winn 1963 only - Sep 22 2:00 0 S Rule Winn 1966 1986 - Apr lastSun 2:00s 1:00 D Rule Winn 1966 2005 - Oct lastSun 2:00s 0 S Rule Winn 1987 2005 - Apr Sun>=1 2:00s 1:00 D # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Winnipeg -6:28:36 - LMT 1887 Jul 16 -6:00 Winn C%sT 2006 -6:00 Canada C%sT # Saskatchewan # From Mark Brader (2003-07-26): # The first actual adoption of DST in Canada was at the municipal # level. As the [Toronto] Star put it (1912-06-07), "While people # elsewhere have long been talking of legislation to save daylight, # the city of Moose Jaw [Saskatchewan] has acted on its own hook." # DST in Moose Jaw began on Saturday, 1912-06-01 (no time mentioned: # presumably late evening, as below), and would run until "the end of # the summer". The discrepancy between municipal time and railroad # time was noted. # From Paul Eggert (2003-07-27): # Willett (1914-03) notes that DST "has been in operation ... in the # City of Moose Jaw, Saskatchewan, for one year." # From Paul Eggert (2019-07-25): # Pearce's book says Regina observed DST in 1914-1917. No dates and times, # unfortunately. It also says that in 1914 Saskatoon observed DST # from 1 June to 6 July, and that DST was also tried out in Davidson, # Melfort, and Prince Albert. # From Paul Eggert (2006-03-22): # Shanks & Pottenger say that since 1970 this region has mostly been as Regina. # Some western towns (e.g. Swift Current) switched from MST/MDT to CST in 1972. # Other western towns (e.g. Lloydminster) are like Edmonton. # Matthews and Vincent (1998) write that Denare Beach and Creighton # are like Winnipeg, in violation of Saskatchewan law. # From W. Jones (1992-11-06): # The. . .below is based on information I got from our law library, the # provincial archives, and the provincial Community Services department. # A precise history would require digging through newspaper archives, and # since you didn't say what you wanted, I didn't bother. # # Saskatchewan is split by a time zone meridian (105W) and over the years # the boundary became pretty ragged as communities near it reevaluated # their affiliations in one direction or the other. In 1965 a provincial # referendum favoured legislating common time practices. # # On 15 April 1966 the Time Act (c. T-14, Revised Statutes of # Saskatchewan 1978) was proclaimed, and established that the eastern # part of Saskatchewan would use CST year round, that districts in # northwest Saskatchewan would by default follow CST but could opt to # follow Mountain Time rules (thus 1 hour difference in the winter and # zero in the summer), and that districts in southwest Saskatchewan would # by default follow MT but could opt to follow CST. # # It took a few years for the dust to settle (I know one story of a town # on one time zone having its school in another, such that a mom had to # serve her family lunch in two shifts), but presently it seems that only # a few towns on the border with Alberta (e.g. Lloydminster) follow MT # rules any more; all other districts appear to have used CST year round # since sometime in the 1960s. # From Chris Walton (2006-06-26): # The Saskatchewan time act which was last updated in 1996 is about 30 pages # long and rather painful to read. # http://www.qp.gov.sk.ca/documents/English/Statutes/Statutes/T14.pdf # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Regina 1918 only - Apr 14 2:00 1:00 D Rule Regina 1918 only - Oct 27 2:00 0 S Rule Regina 1930 1934 - May Sun>=1 0:00 1:00 D Rule Regina 1930 1934 - Oct Sun>=1 0:00 0 S Rule Regina 1937 1941 - Apr Sun>=8 0:00 1:00 D Rule Regina 1937 only - Oct Sun>=8 0:00 0 S Rule Regina 1938 only - Oct Sun>=1 0:00 0 S Rule Regina 1939 1941 - Oct Sun>=8 0:00 0 S Rule Regina 1942 only - Feb 9 2:00 1:00 W # War Rule Regina 1945 only - Aug 14 23:00u 1:00 P # Peace Rule Regina 1945 only - Sep lastSun 2:00 0 S Rule Regina 1946 only - Apr Sun>=8 2:00 1:00 D Rule Regina 1946 only - Oct Sun>=8 2:00 0 S Rule Regina 1947 1957 - Apr lastSun 2:00 1:00 D Rule Regina 1947 1957 - Sep lastSun 2:00 0 S Rule Regina 1959 only - Apr lastSun 2:00 1:00 D Rule Regina 1959 only - Oct lastSun 2:00 0 S # Rule Swift 1957 only - Apr lastSun 2:00 1:00 D Rule Swift 1957 only - Oct lastSun 2:00 0 S Rule Swift 1959 1961 - Apr lastSun 2:00 1:00 D Rule Swift 1959 only - Oct lastSun 2:00 0 S Rule Swift 1960 1961 - Sep lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Regina -6:58:36 - LMT 1905 Sep -7:00 Regina M%sT 1960 Apr lastSun 2:00 -6:00 - CST Zone America/Swift_Current -7:11:20 - LMT 1905 Sep -7:00 Canada M%sT 1946 Apr lastSun 2:00 -7:00 Regina M%sT 1950 -7:00 Swift M%sT 1972 Apr lastSun 2:00 -6:00 - CST # Alberta # From Alois Treindl (2019-07-19): # There was no DST in Alberta in 1967... Calgary Herald, 29 April 1967. # 1969, no DST, from Edmonton Journal 18 April 1969 # # From Paul Eggert (2019-07-25): # Pearce's book says that Alberta's 1948 Daylight Saving Act required # Mountain Standard Time without DST, and that "anyone who broke that law # could be fined up to $25 and costs". There seems to be no record of # anybody paying the fine. The law was not changed until an August 1971 # plebiscite reinstituted DST in 1972. This story is also mentioned in: # Boyer JP. Forcing Choice: The Risky Reward of Referendums. Dundum. 2017. # ISBN 978-1459739123. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Edm 1918 1919 - Apr Sun>=8 2:00 1:00 D Rule Edm 1918 only - Oct 27 2:00 0 S Rule Edm 1919 only - May 27 2:00 0 S Rule Edm 1920 1923 - Apr lastSun 2:00 1:00 D Rule Edm 1920 only - Oct lastSun 2:00 0 S Rule Edm 1921 1923 - Sep lastSun 2:00 0 S Rule Edm 1942 only - Feb 9 2:00 1:00 W # War Rule Edm 1945 only - Aug 14 23:00u 1:00 P # Peace Rule Edm 1945 only - Sep lastSun 2:00 0 S Rule Edm 1947 only - Apr lastSun 2:00 1:00 D Rule Edm 1947 only - Sep lastSun 2:00 0 S Rule Edm 1972 1986 - Apr lastSun 2:00 1:00 D Rule Edm 1972 2006 - Oct lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Edmonton -7:33:52 - LMT 1906 Sep -7:00 Edm M%sT 1987 -7:00 Canada M%sT # British Columbia # From Paul Eggert (2006-03-22): # Shanks & Pottenger write that since 1970 most of this region has # been like Vancouver. # Dawson Creek uses MST. Much of east BC is like Edmonton. # From Matt Johnson (2015-09-21): # Fort Nelson, BC, Canada will cancel DST this year. So while previously they # were aligned with America/Vancouver, they're now aligned with # America/Dawson_Creek. # http://www.northernrockies.ca/EN/meta/news/archives/2015/northern-rockies-time-change.html # # From Tim Parenti (2015-09-23): # This requires a new zone for the Northern Rockies Regional Municipality, # America/Fort_Nelson. The resolution of 2014-12-08 was reached following a # 2014-11-15 poll with nearly 75% support. Effectively, the municipality has # been on MST (-0700) like Dawson Creek since it advanced its clocks on # 2015-03-08. # # From Paul Eggert (2019-07-25): # Shanks says Fort Nelson did not observe DST in 1946, unlike Vancouver. # Alois Treindl confirmed this on 07-22, citing the 1946-04-27 Vancouver Daily # Province. He also cited the 1946-09-28 Victoria Daily Times, which said # that Vancouver, Victoria, etc. "change at midnight Saturday"; for now, # guess they meant 02:00 Sunday since 02:00 was common practice in Vancouver. # # Early Vancouver, Volume Four, by Major J.S. Matthews, V.D., 2011 edition # says that a 1922 plebiscite adopted DST, but a 1923 plebiscite rejected it. # http://former.vancouver.ca/ctyclerk/archives/digitized/EarlyVan/SearchEarlyVan/Vol4pdf/MatthewsEarlyVancouverVol4_DaylightSavings.pdf # A catalog entry for a newspaper clipping seems to indicate that Vancouver # observed DST in 1941 from 07-07 through 09-27; see # https://searcharchives.vancouver.ca/daylight-saving-1918-starts-again-july-7-1941-start-d-s-sept-27-end-of-d-s-1941 # We have no further details, so omit them for now. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Vanc 1918 only - Apr 14 2:00 1:00 D Rule Vanc 1918 only - Oct 27 2:00 0 S Rule Vanc 1942 only - Feb 9 2:00 1:00 W # War Rule Vanc 1945 only - Aug 14 23:00u 1:00 P # Peace Rule Vanc 1945 only - Sep 30 2:00 0 S Rule Vanc 1946 1986 - Apr lastSun 2:00 1:00 D Rule Vanc 1946 only - Sep 29 2:00 0 S Rule Vanc 1947 1961 - Sep lastSun 2:00 0 S Rule Vanc 1962 2006 - Oct lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Vancouver -8:12:28 - LMT 1884 -8:00 Vanc P%sT 1987 -8:00 Canada P%sT Zone America/Dawson_Creek -8:00:56 - LMT 1884 -8:00 Canada P%sT 1947 -8:00 Vanc P%sT 1972 Aug 30 2:00 -7:00 - MST Zone America/Fort_Nelson -8:10:47 - LMT 1884 -8:00 Vanc P%sT 1946 -8:00 - PST 1947 -8:00 Vanc P%sT 1987 -8:00 Canada P%sT 2015 Mar 8 2:00 -7:00 - MST # For Creston see America/Phoenix. # Northwest Territories, Nunavut, Yukon # From Paul Eggert (2006-03-22): # Dawson switched to PST in 1973. Inuvik switched to MST in 1979. # Mathew Englander (1996-10-07) gives the following refs: # * 1967. Paragraph 28(34)(g) of the Interpretation Act, S.C. 1967-68, # c. 7 defines Yukon standard time as UTC-9.... # see Interpretation Act, R.S.C. 1985, c. I-21, s. 35(1). # [https://www.canlii.org/en/ca/laws/stat/rsc-1985-c-i-21/latest/rsc-1985-c-i-21.html] # * C.O. 1973/214 switched Yukon to PST on 1973-10-28 00:00. # * O.I.C. 1980/02 established DST. # * O.I.C. 1987/056 changed DST to Apr firstSun 2:00 to Oct lastSun 2:00. # From Brian Inglis (2015-04-14): # # I tried to trace the history of Yukon time and found the following # regulations, giving the reference title and URL if found, regulation name, # and relevant quote if available. Each regulation specifically revokes its # predecessor. The final reference is to the current Interpretation Act # authorizing and resulting from these regulatory changes. # # Only recent regulations were retrievable via Yukon government site search or # index, and only some via Canadian legal sources. Other sources used include # articles titled "Standard Time and Time Zones in Canada" from JRASC via ADS # Abstracts, cited by ADO for 1932 ..., and updated versions from 1958 and # 1970 quoted below; each article includes current extracts from provincial # and territorial ST and DST regulations at the end, summaries and details of # standard times and daylight saving time at many locations across Canada, # with time zone maps, tables and calculations for Canadian Sunrise, Sunset, # and LMST; they also cover many countries and global locations, with a chart # and table showing current Universal Time offsets, and may be useful as # another source of information for 1970 and earlier. # # * Standard Time and Time Zones in Canada; Smith, C.C.; JRASC, Vol. 26, # pp.49-77; February 1932; SAO/NASA Astrophysics Data System (ADS) # http://adsabs.harvard.edu/abs/1932JRASC..26...49S from p.75: # Yukon Interpretation Ordinance # Yukon standard time is the local mean time at the one hundred and # thirty-fifth meridian. # # * Standard Time and Time Zones in Canada; Smith, C.C.; Thomson, Malcolm M.; # JRASC, Vol. 52, pp.193-223; October 1958; SAO/NASA Astrophysics Data System # (ADS) http://adsabs.harvard.edu/abs/1958JRASC..52..193S from pp.220-1: # Yukon Interpretation Ordinance, 1955, Chap. 16. # # (1) Subject to this section, standard time shall be reckoned as nine # hours behind Greenwich Time and called Yukon Standard Time. # # (2) Notwithstanding subsection (1), the Commissioner may make regulations # varying the manner of reckoning standard time. # # * Yukon Territory Commissioner's Order 1966-20 Interpretation Ordinance # [no online source found] # # * Standard Time and Time Zones in Canada; Thomson, Malcolm M.; JRASC, # Vol. 64, pp.129-162; June 1970; SAO/NASA Astrophysics Data System (ADS) # http://adsabs.harvard.edu/abs/1970JRASC..64..129T from p.156: Yukon # Territory Commissioner's Order 1967-59 Interpretation Ordinance ... # # 1. Commissioner's Order 1966-20 dated at Whitehorse in the Yukon # Territory on 27th January, 1966, is hereby revoked. # # 2. Yukon (East) Standard Time as defined by section 36 of the # Interpretation Ordinance from and after mid-night on the 28th day of May, # 1967 shall be reckoned in the same manner as Pacific Standard Time, that # is to say, eight hours behind Greenwich Time in the area of the Yukon # Territory lying east of the 138th degree longitude west. # # 3. In the remainder of the Territory, lying west of the 138th degree # longitude west, Yukon (West) Standard Time shall be reckoned as nine # hours behind Greenwich Time. # # * Yukon Standard Time defined as Pacific Standard Time, YCO 1973/214 # https://www.canlii.org/en/yk/laws/regu/yco-1973-214/latest/yco-1973-214.html # C.O. 1973/214 INTERPRETATION ACT ... # # 1. Effective October 28, 1973 Commissioner's Order 1967/59 is hereby # revoked. # # 2. Yukon Standard Time as defined by section 36 of the Interpretation # Act from and after midnight on the twenty-eighth day of October, 1973 # shall be reckoned in the same manner as Pacific Standard Time, that is # to say eight hours behind Greenwich Time. # # * O.I.C. 1980/02 INTERPRETATION ACT # https://mm.icann.org/pipermail/tz/attachments/20201125/d5adc93b/CAYTOIC1980-02DST1980-01-04-0001.pdf # # * Yukon Daylight Saving Time, YOIC 1987/56 # https://www.canlii.org/en/yk/laws/regu/yoic-1987-56/latest/yoic-1987-56.html # O.I.C. 1987/056 INTERPRETATION ACT ... # # In every year between # (a) two o'clock in the morning in the first Sunday in April, and # (b) two o'clock in the morning in the last Sunday in October, # Standard Time shall be reckoned as seven hours behind Greenwich Time and # called Yukon Daylight Saving Time. # ... # Dated ... 9th day of March, A.D., 1987. # # * Yukon Daylight Saving Time 2006, YOIC 2006/127 # https://www.canlii.org/en/yk/laws/regu/yoic-2006-127/latest/yoic-2006-127.html # O.I.C. 2006/127 INTERPRETATION ACT ... # # 1. In Yukon each year the time for general purposes shall be 7 hours # behind Greenwich mean time during the period commencing at two o'clock # in the forenoon on the second Sunday of March and ending at two o'clock # in the forenoon on the first Sunday of November and shall be called # Yukon Daylight Saving Time. # # 2. Order-in-Council 1987/56 is revoked. # # 3. This order comes into force January 1, 2007. # # * Interpretation Act, RSY 2002, c 125 # https://www.canlii.org/en/yk/laws/stat/rsy-2002-c-125/latest/rsy-2002-c-125.html # From Rives McDow (1999-09-04): # Nunavut ... moved ... to incorporate the whole territory into one time zone. # Nunavut moves to single time zone Oct. 31 # http://www.nunatsiaq.com/nunavut/nvt90903_13.html # # From Antoine Leca (1999-09-06): # We then need to create a new timezone for the Kitikmeot region of Nunavut # to differentiate it from the Yellowknife region. # From Paul Eggert (1999-09-20): # Basic Facts: The New Territory # http://www.nunavut.com/basicfacts/english/basicfacts_1territory.html # (1999) reports that Pangnirtung operates on eastern time, # and that Coral Harbour does not observe DST. We don't know when # Pangnirtung switched to eastern time; we'll guess 1995. # From Rives McDow (1999-11-08): # On October 31, when the rest of Nunavut went to Central time, # Pangnirtung wobbled. Here is the result of their wobble: # # The following businesses and organizations in Pangnirtung use Central Time: # # First Air, Power Corp, Nunavut Construction, Health Center, RCMP, # Eastern Arctic National Parks, A & D Specialist # # The following businesses and organizations in Pangnirtung use Eastern Time: # # Hamlet office, All other businesses, Both schools, Airport operator # # This has made for an interesting situation there, which warranted the news. # No one there that I spoke with seems concerned, or has plans to # change the local methods of keeping time, as it evidently does not # really interfere with any activities or make things difficult locally. # They plan to celebrate New Year's turn-over twice, one hour apart, # so it appears that the situation will last at least that long. # The Nunavut Intergovernmental Affairs hopes that they will "come to # their senses", but the locals evidently don't see any problem with # the current state of affairs. # From Michaela Rodrigue, writing in the # Nunatsiaq News (1999-11-19): # http://www.nunatsiaqonline.ca/archives/nunavut991130/nvt91119_17.html # Clyde River, Pangnirtung and Sanikiluaq now operate with two time zones, # central - or Nunavut time - for government offices, and eastern time # for municipal offices and schools.... Igloolik [was similar but then] # made the switch to central time on Saturday, Nov. 6. # From Paul Eggert (2000-10-02): # Matthews and Vincent (1998) say the following, but we lack histories # for these potential new Zones. # # The Canadian Forces station at Alert uses Eastern Time while the # handful of residents at the Eureka weather station [in the Central # zone] skip daylight savings. Baffin Island, which is crossed by the # Central, Eastern and Atlantic Time zones only uses Eastern Time. # Gjoa Haven, Taloyoak and Pelly Bay all use Mountain instead of # Central Time and Southampton Island [in the Central zone] is not # required to use daylight savings. # From # Nunavut now has two time zones (2000-11-10): # The Nunavut government would allow its employees in Kugluktuk and # Cambridge Bay to operate on central time year-round, putting them # one hour behind the rest of Nunavut for six months during the winter. # At the end of October the two communities had rebelled against # Nunavut's unified time zone, refusing to shift to eastern time with # the rest of the territory for the winter. Cambridge Bay remained on # central time, while Kugluktuk, even farther west, reverted to # mountain time, which they had used before the advent of Nunavut's # unified time zone in 1999. # # From Rives McDow (2001-01-20), quoting the Nunavut government: # The preceding decision came into effect at midnight, Saturday Nov 4, 2000. # From Paul Eggert (2000-12-04): # Let's just keep track of the official times for now. # From Rives McDow (2001-03-07): # The premier of Nunavut has issued a ministerial statement advising # that effective 2001-04-01, the territory of Nunavut will revert # back to three time zones (mountain, central, and eastern). Of the # cities in Nunavut, Coral Harbor is the only one that I know of that # has said it will not observe dst, staying on EST year round. I'm # checking for more info, and will get back to you if I come up with # more. # [Also see (2001-03-09).] # From Gwillim Law (2005-05-21): # According to ... # http://www.canadiangeographic.ca/Magazine/SO98/geomap.asp # (from a 1998 Canadian Geographic article), the de facto and de jure time # for Southampton Island (at the north end of Hudson Bay) is UTC-5 all year # round. Using Google, it's easy to find other websites that confirm this. # I wasn't able to find how far back this time regimen goes, but since it # predates the creation of Nunavut, it probably goes back many years.... # The Inuktitut name of Coral Harbour is Sallit, but it's rarely used. # # From Paul Eggert (2014-10-17): # For lack of better information, assume that Southampton Island observed # daylight saving only during wartime. Gwillim Law's email also # mentioned maps now maintained by National Research Council Canada; # see above for an up-to-date link. # From Chris Walton (2007-03-01): # ... the community of Resolute (located on Cornwallis Island in # Nunavut) moved from Central Time to Eastern Time last November. # Basically the community did not change its clocks at the end of # daylight saving.... # http://www.nnsl.com/frames/newspapers/2006-11/nov13_06none.html # From Chris Walton (2011-03-21): # Back in 2007 I initiated the creation of a new "zone file" for Resolute # Bay. Resolute Bay is a small community located about 900km north of # the Arctic Circle. The zone file was required because Resolute Bay had # decided to use UTC-5 instead of UTC-6 for the winter of 2006-2007. # # According to new information which I received last week, Resolute Bay # went back to using UTC-6 in the winter of 2007-2008... # # On March 11/2007 most of Canada went onto daylight saving. On March # 14/2007 I phoned the Resolute Bay hamlet office to do a "time check." I # talked to somebody that was both knowledgeable and helpful. I was able # to confirm that Resolute Bay was still operating on UTC-5. It was # explained to me that Resolute Bay had been on the Eastern Time zone # (EST) in the winter, and was now back on the Central Time zone (CDT). # i.e. the time zone had changed twice in the last year but the clocks # had not moved. The residents had to know which time zone they were in # so they could follow the correct TV schedule... # # On Nov 02/2008 most of Canada went onto standard time. On Nov 03/2008 I # phoned the Resolute Bay hamlet office...[D]ue to the challenging nature # of the phone call, I decided to seek out an alternate source of # information. I found an e-mail address for somebody by the name of # Stephanie Adams whose job was listed as "Inns North Support Officer for # Arctic Co-operatives." I was under the impression that Stephanie lived # and worked in Resolute Bay... # # On March 14/2011 I phoned the hamlet office again. I was told that # Resolute Bay had been using Central Standard Time over the winter of # 2010-2011 and that the clocks had therefore been moved one hour ahead # on March 13/2011. The person I talked to was aware that Resolute Bay # had previously experimented with Eastern Standard Time but he could not # tell me when the practice had stopped. # # On March 17/2011 I searched the Web to find an e-mail address of # somebody that might be able to tell me exactly when Resolute Bay went # off Eastern Standard Time. I stumbled on the name "Aziz Kheraj." Aziz # used to be the mayor of Resolute Bay and he apparently owns half the # businesses including "South Camp Inn." This website has some info on # Aziz: # http://www.uphere.ca/node/493 # # I sent Aziz an e-mail asking when Resolute Bay had stopped using # Eastern Standard Time. # # Aziz responded quickly with this: "hi, The time was not changed for the # 1 year only, the following year, the community went back to the old way # of "spring ahead-fall behind" currently we are zulu plus 5 hrs and in # the winter Zulu plus 6 hrs" # # This of course conflicted with everything I had ascertained in November 2008. # # I sent Aziz a copy of my 2008 e-mail exchange with Stephanie. Aziz # responded with this: "Hi, Stephanie lives in Winnipeg. I live here, You # may want to check with the weather office in Resolute Bay or do a # search on the weather through Env. Canada. web site" # # If I had realized the Stephanie did not live in Resolute Bay I would # never have contacted her. I now believe that all the information I # obtained in November 2008 should be ignored... # I apologize for reporting incorrect information in 2008. # From Tim Parenti (2020-03-05): # The government of Yukon announced [yesterday] the cessation of seasonal time # changes. "After clocks are pushed ahead one hour on March 8, the territory # will remain on [UTC-07]. ... [The government] found 93 per cent of # respondents wanted to end seasonal time changes and, of that group, 70 per # cent wanted 'permanent Pacific Daylight Saving Time.'" # https://www.cbc.ca/news/canada/north/yukon-end-daylight-saving-time-1.5486358 # # Although the government press release prefers PDT, we prefer MST for # consistency with nearby Dawson Creek, Creston, and Fort Nelson. # https://yukon.ca/en/news/yukon-end-seasonal-time-change # From Andrew G. Smith (2020-09-24): # Yukon has completed its regulatory change to be on UTC -7 year-round.... # http://www.gov.yk.ca/legislation/regs/oic2020_125.pdf # What we have done is re-defined Yukon Standard Time, as we are # authorized to do under section 33 of our Interpretation Act: # http://www.gov.yk.ca/legislation/acts/interpretation_c.pdf # # From Paul Eggert (2020-09-24): # tzdb uses the obsolete YST abbreviation for standard time in Yukon through # about 1970, and uses PST for standard time in Yukon since then. Consistent # with that, use MST for -07, the new standard time in Yukon effective Nov. 1. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule NT_YK 1918 only - Apr 14 2:00 1:00 D Rule NT_YK 1918 only - Oct 27 2:00 0 S Rule NT_YK 1919 only - May 25 2:00 1:00 D Rule NT_YK 1919 only - Nov 1 0:00 0 S Rule NT_YK 1942 only - Feb 9 2:00 1:00 W # War Rule NT_YK 1945 only - Aug 14 23:00u 1:00 P # Peace Rule NT_YK 1945 only - Sep 30 2:00 0 S Rule NT_YK 1965 only - Apr lastSun 0:00 2:00 DD Rule NT_YK 1965 only - Oct lastSun 2:00 0 S Rule NT_YK 1980 1986 - Apr lastSun 2:00 1:00 D Rule NT_YK 1980 2006 - Oct lastSun 2:00 0 S Rule NT_YK 1987 2006 - Apr Sun>=1 2:00 1:00 D # Zone NAME STDOFF RULES FORMAT [UNTIL] # aka Panniqtuuq Zone America/Pangnirtung 0 - -00 1921 # trading post est. -4:00 NT_YK A%sT 1995 Apr Sun>=1 2:00 -5:00 Canada E%sT 1999 Oct 31 2:00 -6:00 Canada C%sT 2000 Oct 29 2:00 -5:00 Canada E%sT # formerly Frobisher Bay Zone America/Iqaluit 0 - -00 1942 Aug # Frobisher Bay est. -5:00 NT_YK E%sT 1999 Oct 31 2:00 -6:00 Canada C%sT 2000 Oct 29 2:00 -5:00 Canada E%sT # aka Qausuittuq Zone America/Resolute 0 - -00 1947 Aug 31 # Resolute founded -6:00 NT_YK C%sT 2000 Oct 29 2:00 -5:00 - EST 2001 Apr 1 3:00 -6:00 Canada C%sT 2006 Oct 29 2:00 -5:00 - EST 2007 Mar 11 3:00 -6:00 Canada C%sT # aka Kangiqiniq Zone America/Rankin_Inlet 0 - -00 1957 # Rankin Inlet founded -6:00 NT_YK C%sT 2000 Oct 29 2:00 -5:00 - EST 2001 Apr 1 3:00 -6:00 Canada C%sT # aka Iqaluktuuttiaq Zone America/Cambridge_Bay 0 - -00 1920 # trading post est.? -7:00 NT_YK M%sT 1999 Oct 31 2:00 -6:00 Canada C%sT 2000 Oct 29 2:00 -5:00 - EST 2000 Nov 5 0:00 -6:00 - CST 2001 Apr 1 3:00 -7:00 Canada M%sT Zone America/Yellowknife 0 - -00 1935 # Yellowknife founded? -7:00 NT_YK M%sT 1980 -7:00 Canada M%sT Zone America/Inuvik 0 - -00 1953 # Inuvik founded -8:00 NT_YK P%sT 1979 Apr lastSun 2:00 -7:00 NT_YK M%sT 1980 -7:00 Canada M%sT Zone America/Whitehorse -9:00:12 - LMT 1900 Aug 20 -9:00 NT_YK Y%sT 1967 May 28 0:00 -8:00 NT_YK P%sT 1980 -8:00 Canada P%sT 2020 Nov 1 -7:00 - MST Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 -9:00 NT_YK Y%sT 1973 Oct 28 0:00 -8:00 NT_YK P%sT 1980 -8:00 Canada P%sT 2020 Nov 1 -7:00 - MST ############################################################################### # Mexico # From Paul Eggert (2014-12-07): # The Investigation and Analysis Service of the # Mexican Library of Congress (MLoC) has published a # history of Mexican local time (in Spanish) # http://www.diputados.gob.mx/bibliot/publica/inveyana/polisoc/horver/index.htm # # Here are the discrepancies between Shanks & Pottenger (S&P) and the MLoC. # (In all cases we go with the MLoC.) # S&P report that Baja was at -8:00 in 1922/1923. # S&P say the 1930 transition in Baja was 1930-11-16. # S&P report no DST during summer 1931. # S&P report a transition at 1932-03-30 23:00, not 1932-04-01. # From Gwillim Law (2001-02-20): # There are some other discrepancies between the Decrees page and the # tz database. I think they can best be explained by supposing that # the researchers who prepared the Decrees page failed to find some of # the relevant documents. # From Alan Perry (1996-02-15): # A guy from our Mexico subsidiary finally found the Presidential Decree # outlining the timezone changes in Mexico. # # ------------- Begin Forwarded Message ------------- # # I finally got my hands on the Official Presidential Decree that sets up the # rules for the DST changes. The rules are: # # 1. The country is divided in 3 timezones: # - Baja California Norte (the Mexico/BajaNorte TZ) # - Baja California Sur, Nayarit, Sinaloa and Sonora (the Mexico/BajaSur TZ) # - The rest of the country (the Mexico/General TZ) # # 2. From the first Sunday in April at 2:00 AM to the last Sunday in October # at 2:00 AM, the times in each zone are as follows: # BajaNorte: GMT+7 # BajaSur: GMT+6 # General: GMT+5 # # 3. The rest of the year, the times are as follows: # BajaNorte: GMT+8 # BajaSur: GMT+7 # General: GMT+6 # # The Decree was published in Mexico's Official Newspaper on January 4th. # # -------------- End Forwarded Message -------------- # From Paul Eggert (1996-06-12): # For an English translation of the decree, see # "Diario Oficial: Time Zone Changeover" (1996-01-04). # http://mexico-travel.com/extra/timezone_eng.html # From Rives McDow (1998-10-08): # The State of Quintana Roo has reverted back to central STD and DST times # (i.e. UTC -0600 and -0500 as of 1998-08-02). # From Rives McDow (2000-01-10): # Effective April 4, 1999 at 2:00 AM local time, Sonora changed to the time # zone 5 hours from the International Date Line, and will not observe daylight # savings time so as to stay on the same time zone as the southern part of # Arizona year round. # From Jesper Nørgaard, translating # (2001-01-17): # In Oaxaca, the 55.000 teachers from the Section 22 of the National # Syndicate of Education Workers, refuse to apply daylight saving each # year, so that the more than 10,000 schools work at normal hour the # whole year. # From Gwillim Law (2001-01-19): # ... says # (translated):... # January 17, 2000 - The Energy Secretary, Ernesto Martens, announced # that Summer Time will be reduced from seven to five months, starting # this year.... # http://www.publico.com.mx/scripts/texto3.asp?action=pagina&pag=21&pos=p&secc=naci&date=01/17/2001 # [translated], says "summer time will ... take effect on the first Sunday # in May, and end on the last Sunday of September. # From Arthur David Olson (2001-01-25): # The 2001-01-24 traditional Washington Post contained the page one # story "Timely Issue Divides Mexicans."... # http://www.washingtonpost.com/wp-dyn/articles/A37383-2001Jan23.html # ... Mexico City Mayor López Obrador "...is threatening to keep # Mexico City and its 20 million residents on a different time than # the rest of the country..." In particular, López Obrador would abolish # observation of Daylight Saving Time. # Official statute published by the Energy Department # http://www.conae.gob.mx/ahorro/decretohorver2001.html#decre # (2001-02-01) shows Baja and Chihauhua as still using US DST rules, # and Sonora with no DST. This was reported by Jesper Nørgaard (2001-02-03). # From Paul Eggert (2001-03-03): # # https://www.latimes.com/archives/la-xpm-2001-mar-03-mn-32561-story.html # James F. Smith writes in today's LA Times # * Sonora will continue to observe standard time. # * Last week Mexico City's mayor Andrés Manuel López Obrador decreed that # the Federal District will not adopt DST. # * 4 of 16 district leaders announced they'll ignore the decree. # * The decree does not affect federal-controlled facilities including # the airport, banks, hospitals, and schools. # # For now we'll assume that the Federal District will bow to federal rules. # From Jesper Nørgaard (2001-04-01): # I found some references to the Mexican application of daylight # saving, which modifies what I had already sent you, stating earlier # that a number of northern Mexican states would go on daylight # saving. The modification reverts this to only cover Baja California # (Norte), while all other states (except Sonora, who has no daylight # saving all year) will follow the original decree of president # Vicente Fox, starting daylight saving May 6, 2001 and ending # September 30, 2001. # References: "Diario de Monterrey" # Palabra (2001-03-31) # From Reuters (2001-09-04): # Mexico's Supreme Court on Tuesday declared that daylight savings was # unconstitutional in Mexico City, creating the possibility the # capital will be in a different time zone from the rest of the nation # next year.... The Supreme Court's ruling takes effect at 2:00 # a.m. (0800 GMT) on Sept. 30, when Mexico is scheduled to revert to # standard time. "This is so residents of the Federal District are not # subject to unexpected time changes," a statement from the court said. # From Jesper Nørgaard Welen (2002-03-12): # ... consulting my local grocery store(!) and my coworkers, they all insisted # that a new decision had been made to reinstate US style DST in Mexico.... # http://www.conae.gob.mx/ahorro/horaver2001_m1_2002.html (2002-02-20) # confirms this. Sonora as usual is the only state where DST is not applied. # From Steffen Thorsen (2009-12-28): # # Steffen Thorsen wrote: # > Mexico's House of Representatives has approved a proposal for northern # > Mexico's border cities to share the same daylight saving schedule as # > the United States. # Now this has passed both the Congress and the Senate, so starting from # 2010, some border regions will be the same: # http://www.signonsandiego.com/news/2009/dec/28/clocks-will-match-both-sides-border/ # http://www.elmananarey.com/diario/noticia/nacional/noticias/empatan_horario_de_frontera_con_eu/621939 # (Spanish) # # Could not find the new law text, but the proposed law text changes are here: # http://gaceta.diputados.gob.mx/Gaceta/61/2009/dic/20091210-V.pdf # (Gaceta Parlamentaria) # # There is also a list of the votes here: # http://gaceta.diputados.gob.mx/Gaceta/61/2009/dic/V2-101209.html # # Our page: # https://www.timeanddate.com/news/time/north-mexico-dst-change.html # From Arthur David Olson (2010-01-20): # The page # http://dof.gob.mx/nota_detalle.php?codigo=5127480&fecha=06/01/2010 # includes this text: # En los municipios fronterizos de Tijuana y Mexicali en Baja California; # Juárez y Ojinaga en Chihuahua; Acuña y Piedras Negras en Coahuila; # Anáhuac en Nuevo León; y Nuevo Laredo, Reynosa y Matamoros en # Tamaulipas, la aplicación de este horario estacional surtirá efecto # desde las dos horas del segundo domingo de marzo y concluirá a las dos # horas del primer domingo de noviembre. # En los municipios fronterizos que se encuentren ubicados en la franja # fronteriza norte en el territorio comprendido entre la línea # internacional y la línea paralela ubicada a una distancia de veinte # kilómetros, así como la Ciudad de Ensenada, Baja California, hacia el # interior del país, la aplicación de este horario estacional surtirá # efecto desde las dos horas del segundo domingo de marzo y concluirá a # las dos horas del primer domingo de noviembre. # From Steffen Thorsen (2014-12-08), translated by Gwillim Law: # The Mexican state of Quintana Roo will likely change to EST in 2015. # # http://www.unioncancun.mx/articulo/2014/12/04/medio-ambiente/congreso-aprueba-una-hora-mas-de-sol-en-qroo # "With this change, the time conflict that has existed between the municipios # of Quintana Roo and the municipio of Felipe Carrillo Puerto may come to an # end. The latter declared itself in rebellion 15 years ago when a time change # was initiated in Mexico, and since then it has refused to change its time # zone along with the rest of the country." # # From Steffen Thorsen (2015-01-14), translated by Gwillim Law: # http://sipse.com/novedades/confirman-aplicacion-de-nueva-zona-horaria-para-quintana-roo-132331.html # "...the new time zone will come into effect at two o'clock on the first Sunday # of February, when we will have to advance the clock one hour from its current # time..." # Also, the new zone will not use DST. # # From Carlos Raúl Perasso (2015-02-02): # The decree that modifies the Mexican Hour System Law has finally # been published at the Diario Oficial de la Federación # http://www.dof.gob.mx/nota_detalle.php?codigo=5380123&fecha=31/01/2015 # It establishes 5 zones for Mexico: # 1- Zona Centro (Central Zone): Corresponds to longitude 90 W, # includes most of Mexico, excluding what's mentioned below. # 2- Zona Pacífico (Pacific Zone): Longitude 105 W, includes the # states of Baja California Sur; Chihuahua; Nayarit (excluding Bahía # de Banderas which lies in Central Zone); Sinaloa and Sonora. # 3- Zona Noroeste (Northwest Zone): Longitude 120 W, includes the # state of Baja California. # 4- Zona Sureste (Southeast Zone): Longitude 75 W, includes the state # of Quintana Roo. # 5- The islands, reefs and keys shall take their timezone from the # longitude they are located at. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Mexico 1939 only - Feb 5 0:00 1:00 D Rule Mexico 1939 only - Jun 25 0:00 0 S Rule Mexico 1940 only - Dec 9 0:00 1:00 D Rule Mexico 1941 only - Apr 1 0:00 0 S Rule Mexico 1943 only - Dec 16 0:00 1:00 W # War Rule Mexico 1944 only - May 1 0:00 0 S Rule Mexico 1950 only - Feb 12 0:00 1:00 D Rule Mexico 1950 only - Jul 30 0:00 0 S Rule Mexico 1996 2000 - Apr Sun>=1 2:00 1:00 D Rule Mexico 1996 2000 - Oct lastSun 2:00 0 S Rule Mexico 2001 only - May Sun>=1 2:00 1:00 D Rule Mexico 2001 only - Sep lastSun 2:00 0 S Rule Mexico 2002 max - Apr Sun>=1 2:00 1:00 D Rule Mexico 2002 max - Oct lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] # Quintana Roo; represented by Cancún Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 0:12:56 -6:00 - CST 1981 Dec 23 -5:00 Mexico E%sT 1998 Aug 2 2:00 -6:00 Mexico C%sT 2015 Feb 1 2:00 -5:00 - EST # Campeche, Yucatán; represented by Mérida Zone America/Merida -5:58:28 - LMT 1922 Jan 1 0:01:32 -6:00 - CST 1981 Dec 23 -5:00 - EST 1982 Dec 2 -6:00 Mexico C%sT # Coahuila, Nuevo León, Tamaulipas (near US border) # This includes the following municipalities: # in Coahuila: Ocampo, Acuña, Zaragoza, Jiménez, Piedras Negras, Nava, # Guerrero, Hidalgo. # in Nuevo León: Anáhuac, Los Aldama. # in Tamaulipas: Nuevo Laredo, Guerrero, Mier, Miguel Alemán, Camargo, # Gustavo Díaz Ordaz, Reynosa, Río Bravo, Valle Hermoso, Matamoros. # See: Inicia mañana Horario de Verano en zona fronteriza, El Universal, # 2016-03-12 # http://www.eluniversal.com.mx/articulo/estados/2016/03/12/inicia-manana-horario-de-verano-en-zona-fronteriza Zone America/Matamoros -6:40:00 - LMT 1921 Dec 31 23:20:00 -6:00 - CST 1988 -6:00 US C%sT 1989 -6:00 Mexico C%sT 2010 -6:00 US C%sT # Durango; Coahuila, Nuevo León, Tamaulipas (away from US border) Zone America/Monterrey -6:41:16 - LMT 1921 Dec 31 23:18:44 -6:00 - CST 1988 -6:00 US C%sT 1989 -6:00 Mexico C%sT # Central Mexico Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 0:23:24 -7:00 - MST 1927 Jun 10 23:00 -6:00 - CST 1930 Nov 15 -7:00 - MST 1931 May 1 23:00 -6:00 - CST 1931 Oct -7:00 - MST 1932 Apr 1 -6:00 Mexico C%sT 2001 Sep 30 2:00 -6:00 - CST 2002 Feb 20 -6:00 Mexico C%sT # Chihuahua (near US border) # This includes the municipalities of Janos, Ascensión, Juárez, Guadalupe, # Práxedis G Guerrero, Coyame del Sotol, Ojinaga, and Manuel Benavides. # (See the 2016-03-12 El Universal source mentioned above.) Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 0:02:20 -7:00 - MST 1927 Jun 10 23:00 -6:00 - CST 1930 Nov 15 -7:00 - MST 1931 May 1 23:00 -6:00 - CST 1931 Oct -7:00 - MST 1932 Apr 1 -6:00 - CST 1996 -6:00 Mexico C%sT 1998 -6:00 - CST 1998 Apr Sun>=1 3:00 -7:00 Mexico M%sT 2010 -7:00 US M%sT # Chihuahua (away from US border) Zone America/Chihuahua -7:04:20 - LMT 1921 Dec 31 23:55:40 -7:00 - MST 1927 Jun 10 23:00 -6:00 - CST 1930 Nov 15 -7:00 - MST 1931 May 1 23:00 -6:00 - CST 1931 Oct -7:00 - MST 1932 Apr 1 -6:00 - CST 1996 -6:00 Mexico C%sT 1998 -6:00 - CST 1998 Apr Sun>=1 3:00 -7:00 Mexico M%sT # Sonora Zone America/Hermosillo -7:23:52 - LMT 1921 Dec 31 23:36:08 -7:00 - MST 1927 Jun 10 23:00 -6:00 - CST 1930 Nov 15 -7:00 - MST 1931 May 1 23:00 -6:00 - CST 1931 Oct -7:00 - MST 1932 Apr 1 -6:00 - CST 1942 Apr 24 -7:00 - MST 1949 Jan 14 -8:00 - PST 1970 -7:00 Mexico M%sT 1999 -7:00 - MST # From Alexander Krivenyshev (2010-04-21): # According to news, Bahía de Banderas (Mexican state of Nayarit) # changed time zone UTC-7 to new time zone UTC-6 on April 4, 2010 (to # share the same time zone as nearby city Puerto Vallarta, Jalisco). # # (Spanish) # Bahía de Banderas homologa su horario al del centro del # país, a partir de este domingo # http://www.nayarit.gob.mx/notes.asp?id=20748 # # Bahía de Banderas homologa su horario con el del Centro del # País # http://www.bahiadebanderas.gob.mx/principal/index.php?option=com_content&view=article&id=261:bahia-de-banderas-homologa-su-horario-con-el-del-centro-del-pais&catid=42:comunicacion-social&Itemid=50 # # (English) # Puerto Vallarta and Bahía de Banderas: One Time Zone # http://virtualvallarta.com/puertovallarta/puertovallarta/localnews/2009-12-03-Puerto-Vallarta-and-Bahia-de-Banderas-One-Time-Zone.shtml # http://www.worldtimezone.com/dst_news/dst_news_mexico08.html # # "Mexico's Senate approved the amendments to the Mexican Schedule System that # will allow Bahía de Banderas and Puerto Vallarta to share the same time # zone ..." # Baja California Sur, Nayarit, Sinaloa # From Arthur David Olson (2010-05-01): # Use "Bahia_Banderas" to keep the name to fourteen characters. # Mazatlán Zone America/Mazatlan -7:05:40 - LMT 1921 Dec 31 23:54:20 -7:00 - MST 1927 Jun 10 23:00 -6:00 - CST 1930 Nov 15 -7:00 - MST 1931 May 1 23:00 -6:00 - CST 1931 Oct -7:00 - MST 1932 Apr 1 -6:00 - CST 1942 Apr 24 -7:00 - MST 1949 Jan 14 -8:00 - PST 1970 -7:00 Mexico M%sT # Bahía de Banderas Zone America/Bahia_Banderas -7:01:00 - LMT 1921 Dec 31 23:59:00 -7:00 - MST 1927 Jun 10 23:00 -6:00 - CST 1930 Nov 15 -7:00 - MST 1931 May 1 23:00 -6:00 - CST 1931 Oct -7:00 - MST 1932 Apr 1 -6:00 - CST 1942 Apr 24 -7:00 - MST 1949 Jan 14 -8:00 - PST 1970 -7:00 Mexico M%sT 2010 Apr 4 2:00 -6:00 Mexico C%sT # Baja California Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 0:11:56 -7:00 - MST 1924 -8:00 - PST 1927 Jun 10 23:00 -7:00 - MST 1930 Nov 15 -8:00 - PST 1931 Apr 1 -8:00 1:00 PDT 1931 Sep 30 -8:00 - PST 1942 Apr 24 -8:00 1:00 PWT 1945 Aug 14 23:00u -8:00 1:00 PPT 1945 Nov 12 # Peace -8:00 - PST 1948 Apr 5 -8:00 1:00 PDT 1949 Jan 14 -8:00 - PST 1954 -8:00 CA P%sT 1961 -8:00 - PST 1976 -8:00 US P%sT 1996 -8:00 Mexico P%sT 2001 -8:00 US P%sT 2002 Feb 20 -8:00 Mexico P%sT 2010 -8:00 US P%sT # From Paul Eggert (2006-03-22): # Formerly there was an America/Ensenada zone, which differed from # America/Tijuana only in that it did not observe DST from 1976 # through 1995. This was as per Shanks (1999). But Shanks & Pottenger say # Ensenada did not observe DST from 1948 through 1975. Guy Harris reports # that the 1987 OAG says "Only Ensenada, Mexicali, San Felipe and # Tijuana observe DST," which agrees with Shanks & Pottenger but implies that # DST-observance was a town-by-town matter back then. This concerns # data after 1970 so most likely there should be at least one Zone # other than America/Tijuana for Baja, but it's not clear yet what its # name or contents should be. # # From Paul Eggert (2015-10-08): # Formerly there was an America/Santa_Isabel zone, but this appears to # have come from a misreading of # http://dof.gob.mx/nota_detalle.php?codigo=5127480&fecha=06/01/2010 # It has been moved to the 'backward' file. # # # Revillagigedo Is # no information ############################################################################### # Anguilla # Antigua and Barbuda # See America/Puerto_Rico. # The Bahamas # See America/Toronto. # Barbados # For 1899 Milne gives -3:58:29.2. # From P Chan (2020-12-09 and 2020-12-11): # Standard time of GMT-4 was adopted in 1911. # Definition of Time Act, 1911 (1911-7) [1911-08-28] # 1912, Laws of Barbados (5 v.), OCLC Number: 919801291, Vol. 4, Image No. 522 # 1944, Laws of Barbados (5 v.), OCLC Number: 84548697, Vol. 4, Image No. 122 # http://llmc.com/browse.aspx?type=2&coll=85&div=297 # # DST was observed in 1942-44. # Defence (Daylight Saving) Regulations, 1942, 1942-04-13 # Defence (Daylight Saving) (Repeal) Regulations, 1942, 1942-08-22 # Defence (Daylight Saving) Regulations, 1943, 1943-04-16 # Defence (Daylight Saving) (Repeal) Regulations, 1943, 1943-09-01 # Defence (Daylight Saving) Regulations, 1944, 1944-03-21 # [Defence (Daylight Saving) (Amendment) Regulations 1944, 1944-03-28] # Defence (Daylight Saving) (Repeal) Regulations, 1944, 1944-08-30 # # 1914-, Subsidiary Legis., Annual Vols. OCLC Number: 226290591 # 1942: Image Nos. 527-528, 555-556 # 1943: Image Nos. 178-179, 198 # 1944: Image Nos. 113-115, 129 # http://llmc.com/titledescfull.aspx?type=2&coll=85&div=297&set=98437 # # From Tim Parenti (2021-02-20): # The transitions below are derived from P Chan's sources, except that the 1977 # through 1980 transitions are from Shanks & Pottenger since we have no better # data there. Of particular note, the 1944 DST regulation only advanced the # time to "exactly three and a half hours later than Greenwich mean time", as # opposed to "three hours" in the 1942 and 1943 regulations. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Barb 1942 only - Apr 19 5:00u 1:00 D Rule Barb 1942 only - Aug 31 6:00u 0 S Rule Barb 1943 only - May 2 5:00u 1:00 D Rule Barb 1943 only - Sep 5 6:00u 0 S Rule Barb 1944 only - Apr 10 5:00u 0:30 - Rule Barb 1944 only - Sep 10 6:00u 0 S Rule Barb 1977 only - Jun 12 2:00 1:00 D Rule Barb 1977 1978 - Oct Sun>=1 2:00 0 S Rule Barb 1978 1980 - Apr Sun>=15 2:00 1:00 D Rule Barb 1979 only - Sep 30 2:00 0 S Rule Barb 1980 only - Sep 25 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] #STDOFF -3:58:29.2 Zone America/Barbados -3:58:29 - LMT 1911 Aug 28 # Bridgetown -4:00 Barb A%sT 1944 -4:00 Barb AST/-0330 1945 -4:00 Barb A%sT # Belize # From P Chan (2020-11-03): # Below are some laws related to the time in British Honduras/Belize: # # Definition of Time Ordinance, 1927 (No.4 of 1927) [1927-04-01] # Ordinances of British Honduras Passed in the Year 1927, p 19-20 # https://books.google.com/books?id=LqEpAQAAMAAJ&pg=RA3-PA19 # # Definition of Time (Amendment) Ordinance, 1942 (No. 5 of 1942) [1942-06-27] # Ordinances of British Honduras Passed in the Year 1942, p 31-32 # https://books.google.com/books?id=h6MpAQAAMAAJ&pg=RA6-PA95-IA44 # # Definition of Time Ordinance, 1945 (No. 19 of 1945) [1945-12-15] # Ordinances of British Honduras Passed in the Year 1945, p 49-50 # https://books.google.com/books?id=xaMpAQAAMAAJ&pg=RA2-PP1 # # Definition of Time Ordinance, 1947 (No. 1 of 1947) [1947-03-11] # Ordinances of British Honduras Passed in the Year 1947, p 1-2 # https://books.google.com/books?id=xaMpAQAAMAAJ&pg=RA3-PA1 # # Time (Definition of) Ordinance (Chapter 180) # The Laws of British Honduras in Force on the 15th Day of September, 1958 , Volume IV, p 2580 # https://books.google.com/books?id=v5QpAQAAMAAJ&pg=PA2580 # # Time (Definition of) (Amendment) Ordinance, 1968 (No. 13 of 1968) [1968-08-03] # https://books.google.com/books?id=xij7KEB_58wC&pg=RA1-PA428-IA9 # # Definition of Time Act (Chapter 339) # Law of Belize, Revised Edition 2000 # http://www.belizelaw.org/web/lawadmin/PDF%20files/cap339.pdf # From Paul Eggert (2020-11-03): # The transitions below are derived from P Chan's sources, except that the # 1973 through 1983 transitions are from Shanks & Pottenger since we have # no better data there. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Belize 1918 1941 - Oct Sat>=1 24:00 0:30 -0530 Rule Belize 1919 1942 - Feb Sat>=8 24:00 0 CST Rule Belize 1942 only - Jun 27 24:00 1:00 CWT Rule Belize 1945 only - Aug 14 23:00u 1:00 CPT Rule Belize 1945 only - Dec 15 24:00 0 CST Rule Belize 1947 1967 - Oct Sat>=1 24:00 0:30 -0530 Rule Belize 1948 1968 - Feb Sat>=8 24:00 0 CST Rule Belize 1973 only - Dec 5 0:00 1:00 CDT Rule Belize 1974 only - Feb 9 0:00 0 CST Rule Belize 1982 only - Dec 18 0:00 1:00 CDT Rule Belize 1983 only - Feb 12 0:00 0 CST # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Belize -5:52:48 - LMT 1912 Apr 1 -6:00 Belize %s # Bermuda # From Paul Eggert (2022-07-27): # For 1899 Milne gives -4:19:18.3 as the meridian of the clock tower, # Bermuda dockyard, Ireland I. This agrees with standard offset given in the # Daylight Saving Act, 1917 cited below. # It is not known when this time became standard for Bermuda; guess 1890. # The transition to -04 was specified by: # 1930: The Time Zone Act, 1929 (1929: No. 39) [1929-11-08] # https://books.google.com/books?id=7tdMAQAAIAAJ&pg=RA54-PP1 # From P Chan (2020-11-20): # Most of the information can be found online from the Bermuda National # Library - Digital Collection which includes The Royal Gazette (RG) until 1957 # https://bnl.contentdm.oclc.org/digital/ # I will cite the ID. For example, [10000] means # https://bnl.contentdm.oclc.org/digital/collection/BermudaNP02/id/10000 # # 1917: Apr 5 midnight to Sep 30 midnight # Daylight Saving Act, 1917 (1917 No. 13) [1917-04-02] # Bermuda Acts and Resolves 1917, p 37-38 # https://books.google.com/books?id=M-lCAQAAMAAJ&pg=PA36-IA2 # RG, 1917-04-04, p 6 [42340] gives the spring forward date. # # 1918: Apr 13 midnight to Sep 15 midnight # Daylight Saving Act, 1918 (1918 No. 9) [1918-04-06] # Bermuda Acts and Resolves 1917, p 13 # https://books.google.com/books?id=K-lCAQAAMAAJ&pg=RA1-PA7 # # Note that local mean time was still used before 1930. # # During WWII, DST was introduced by Defence Regulations # 1942: Jan 11 02:00 to Oct 18 02:00 [113646], [115726] # 1943: Mar 21 02:00 to Oct 31 02:00 [116704], [118193] # 1944: Mar 12 02:00 to Nov 5 02:00 [119225], [121593] # 1945: Mar 11 02:00 to Nov 4 02:00 [122369], [124461] # RG, 1942-01-08, p 2, 1942-10-12, p 2 , 1943-03-06, p 2, 1943-09-03, p 1, # 1944-02-29, p 6, 1944-09-20, p 2, 1945-02-13, p 2, 1945-11-03, p 1 # # In 1946, the House of Assembly rejected DST twice. [128686], [128076] # RG, 1946-03-16 p 1,1946-04-13 p 1 # # 1947: third Sunday in May 02:00 to second Sunday in September 02:00 # DST in 1947 was defined in the Daylight Saving Act, 1947 (1947: No. 12) # which expired at the end of the year. [125784] ,[132405], [144454], [138226] # RG, 1947-02-27, p 1, 1947-05-15, p 1, 1947-09-13, p 1, 1947-12-30, p 1 # # 1948-1952: fourth Sunday in May 02:00 to first Sunday in September 02:00 # DST in 1948 was defined in the Daylight Saving Act, 1948 (1948 : No. 12) # which was set to expired at the end of the year but it was extended until # the end of 1952 and was not further extended. # [129802], [139403], [146008], [135240], [144330], [139049], [143309], # [148271], [149773], [153589], [153802], [155924] # RG, 1948-04-13, p 1, 1948-05-22, p 1, 1948-09-04, p 1, 1949-05-21, p1, # 1949-09-03, p 1, 1950-05-27 p 1, 1950-09-02, p 1, 1951-05-27, p 1, # 1951-09-01, p 1, 1952-05-23, p 1, 1952-09-26, p 1, 1952-12-21, p 8 # # In 1953-1955, the House of Assembly rejected DST each year. [158996], # [162620], [166720] RG, 1953-05-02, p 1, 1954-04-01 p 1, 1955-03-12, p 1 # # 1956: fourth Sunday in May 02:00 to last Sunday in October 02:00 # Time Zone (Seasonal Variation) Act, 1956 (1956: No.44) [1956-05-25] # Bermuda Public Acts 1956, p 331-332 # https://books.google.com/books?id=Xs1AlmD_cEwC&pg=PA63 # # The extension of the Act was rejected by the House of Assembly. [176218] # RG, 1956-12-13, p 1 # # From the Chronological Table of Public and Private Acts up to 1985, it seems # that there does not exist other Acts related to DST before 1973. # https://books.google.com/books?id=r9hMAQAAIAAJ&pg=RA23-PA1 # Public Acts of the Legislature of the Islands of Bermuda, Together with # Statutory Instruments in Force Thereunder, Vol VII # From Dan Jones, reporting in The Royal Gazette (2006-06-26): # Next year, however, clocks in the US will go forward on the second Sunday # in March, until the first Sunday in November. And, after the Time Zone # (Seasonal Variation) Bill 2006 was passed in the House of Assembly on # Friday, the same thing will happen in Bermuda. # http://www.theroyalgazette.com/apps/pbcs.dll/article?AID=/20060529/NEWS/105290135 # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Bermuda 1917 only - Apr 5 24:00 1:00 - Rule Bermuda 1917 only - Sep 30 24:00 0 - Rule Bermuda 1918 only - Apr 13 24:00 1:00 - Rule Bermuda 1918 only - Sep 15 24:00 0 S Rule Bermuda 1942 only - Jan 11 2:00 1:00 D Rule Bermuda 1942 only - Oct 18 2:00 0 S Rule Bermuda 1943 only - Mar 21 2:00 1:00 D Rule Bermuda 1943 only - Oct 31 2:00 0 S Rule Bermuda 1944 1945 - Mar Sun>=8 2:00 1:00 D Rule Bermuda 1944 1945 - Nov Sun>=1 2:00 0 S Rule Bermuda 1947 only - May Sun>=15 2:00 1:00 D Rule Bermuda 1947 only - Sep Sun>=8 2:00 0 S Rule Bermuda 1948 1952 - May Sun>=22 2:00 1:00 D Rule Bermuda 1948 1952 - Sep Sun>=1 2:00 0 S Rule Bermuda 1956 only - May Sun>=22 2:00 1:00 D Rule Bermuda 1956 only - Oct lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] #STDOFF -4:19:18.3 Zone Atlantic/Bermuda -4:19:18 - LMT 1890 # Hamilton -4:19:18 Bermuda BMT/BST 1930 Jan 1 2:00 -4:00 Bermuda A%sT 1974 Apr 28 2:00 -4:00 Canada A%sT 1976 -4:00 US A%sT # Caribbean Netherlands # See America/Puerto_Rico. # Cayman Is # See America/Panama. # Costa Rica # Milne gives -5:36:13.3 as San José mean time. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule CR 1979 1980 - Feb lastSun 0:00 1:00 D Rule CR 1979 1980 - Jun Sun>=1 0:00 0 S Rule CR 1991 1992 - Jan Sat>=15 0:00 1:00 D # IATA SSIM (1991-09) says the following was at 1:00; # go with Shanks & Pottenger. Rule CR 1991 only - Jul 1 0:00 0 S Rule CR 1992 only - Mar 15 0:00 0 S # There are too many San Josés elsewhere, so we'll use 'Costa Rica'. # Zone NAME STDOFF RULES FORMAT [UNTIL] #STDOFF -5:36:13.3 Zone America/Costa_Rica -5:36:13 - LMT 1890 # San José -5:36:13 - SJMT 1921 Jan 15 # San José Mean Time -6:00 CR C%sT # Coco # no information; probably like America/Costa_Rica # Cuba # From Paul Eggert (2013-02-21): # Milne gives -5:28:50.45 for the observatory at Havana, -5:29:23.57 # for the port, and -5:30 for meteorological observations. # For now, stick with Shanks & Pottenger. # From Arthur David Olson (1999-03-29): # The 1999-03-28 exhibition baseball game held in Havana, Cuba, between # the Cuban National Team and the Baltimore Orioles was carried live on # the Orioles Radio Network, including affiliate WTOP in Washington, DC. # During the game, play-by-play announcer Jim Hunter noted that # "We'll be losing two hours of sleep...Cuba switched to Daylight Saving # Time today." (The "two hour" remark referred to losing one hour of # sleep on 1999-03-28 - when the announcers were in Cuba as it switched # to DST - and one more hour on 1999-04-04 - when the announcers will have # returned to Baltimore, which switches on that date.) # From Steffen Thorsen (2013-11-11): # DST start in Cuba in 2004 ... does not follow the same rules as the # years before. The correct date should be Sunday 2004-03-28 00:00 ... # https://web.archive.org/web/20040402060750/http://www.granma.cu/espanol/2004/marzo/sab27/reloj.html # From Evert van der Veer via Steffen Thorsen (2004-10-28): # Cuba is not going back to standard time this year. # From Paul Eggert (2006-03-22): # http://www.granma.cu/ingles/2004/septiembre/juev30/41medid-i.html # says that it's due to a problem at the Antonio Guiteras # thermoelectric plant, and says "This October there will be no return # to normal hours (after daylight saving time)". # For now, let's assume that it's a temporary measure. # From Carlos A. Carnero Delgado (2005-11-12): # This year (just like in 2004-2005) there's no change in time zone # adjustment in Cuba. We will stay in daylight saving time: # http://www.granma.cu/espanol/2005/noviembre/mier9/horario.html # From Jesper Nørgaard Welen (2006-10-21): # An article in GRANMA INTERNACIONAL claims that Cuba will end # the 3 years of permanent DST next weekend, see # http://www.granma.cu/ingles/2006/octubre/lun16/43horario.html # "On Saturday night, October 28 going into Sunday, October 29, at 01:00, # watches should be set back one hour - going back to 00:00 hours - returning # to the normal schedule.... # From Paul Eggert (2007-03-02): # , dated yesterday, # says Cuban clocks will advance at midnight on March 10. # For lack of better information, assume Cuba will use US rules, # except that it switches at midnight standard time as usual. # # From Steffen Thorsen (2007-10-25): # Carlos Alberto Fonseca Arauz informed me that Cuba will end DST one week # earlier - on the last Sunday of October, just like in 2006. # # He supplied these references: # # http://www.prensalatina.com.mx/article.asp?ID=%7B4CC32C1B-A9F7-42FB-8A07-8631AFC923AF%7D&language=ES # http://actualidad.terra.es/sociedad/articulo/cuba_llama_ahorrar_energia_cambio_1957044.htm # # From Alex Krivenyshev (2007-10-25): # Here is also article from Granma (Cuba): # # Regirá el Horario Normal desde el próximo domingo 28 de octubre # http://www.granma.cubaweb.cu/2007/10/24/nacional/artic07.html # # http://www.worldtimezone.com/dst_news/dst_news_cuba03.html # From Arthur David Olson (2008-03-09): # I'm in Maryland which is now observing United States Eastern Daylight # Time. At 9:44 local time I used RealPlayer to listen to # http://media.enet.cu/radioreloj # a Cuban information station, and heard # the time announced as "ocho cuarenta y cuatro" ("eight forty-four"), # indicating that Cuba is still on standard time. # From Steffen Thorsen (2008-03-12): # It seems that Cuba will start DST on Sunday, 2007-03-16... # It was announced yesterday, according to this source (in Spanish): # http://www.nnc.cubaweb.cu/marzo-2008/cien-1-11-3-08.htm # # Some more background information is posted here: # https://www.timeanddate.com/news/time/cuba-starts-dst-march-16.html # # The article also says that Cuba has been observing DST since 1963, # while Shanks (and tzdata) has 1965 as the first date (except in the # 1940's). Many other web pages in Cuba also claim that it has been # observed since 1963, but with the exception of 1970 - an exception # which is not present in tzdata/Shanks. So there is a chance we need to # change some historic records as well. # # One example: # http://www.radiohc.cu/espanol/noticias/mar07/11mar/hor.htm # From Jesper Nørgaard Welen (2008-03-13): # The Cuban time change has just been confirmed on the most authoritative # web site, the Granma. Please check out # http://www.granma.cubaweb.cu/2008/03/13/nacional/artic10.html # # Basically as expected after Steffen Thorsen's information, the change # will take place midnight between Saturday and Sunday. # From Arthur David Olson (2008-03-12): # Assume Sun>=15 (third Sunday) going forward. # From Alexander Krivenyshev (2009-03-04) # According to the Radio Reloj - Cuba will start Daylight Saving Time on # midnight between Saturday, March 07, 2009 and Sunday, March 08, 2009- # not on midnight March 14 / March 15 as previously thought. # # http://www.worldtimezone.com/dst_news/dst_news_cuba05.html # (in Spanish) # From Arthur David Olson (2009-03-09) # I listened over the Internet to # http://media.enet.cu/readioreloj # this morning; when it was 10:05 a. m. here in Bethesda, Maryland the # the time was announced as "diez cinco" - the same time as here, indicating # that has indeed switched to DST. Assume second Sunday from 2009 forward. # From Steffen Thorsen (2011-03-08): # Granma announced that Cuba is going to start DST on 2011-03-20 00:00:00 # this year. Nothing about the end date known so far (if that has # changed at all). # # Source: # http://granma.co.cu/2011/03/08/nacional/artic01.html # # Our info: # https://www.timeanddate.com/news/time/cuba-starts-dst-2011.html # # From Steffen Thorsen (2011-10-30) # Cuba will end DST two weeks later this year. Instead of going back # tonight, it has been delayed to 2011-11-13 at 01:00. # # One source (Spanish) # http://www.radioangulo.cu/noticias/cuba/17105-cuba-restablecera-el-horario-del-meridiano-de-greenwich.html # # Our page: # https://www.timeanddate.com/news/time/cuba-time-changes-2011.html # # From Steffen Thorsen (2012-03-01) # According to Radio Reloj, Cuba will start DST on Midnight between March # 31 and April 1. # # Radio Reloj has the following info (Spanish): # http://www.radioreloj.cu/index.php/noticias-radio-reloj/71-miscelaneas/7529-cuba-aplicara-el-horario-de-verano-desde-el-1-de-abril # # Our info on it: # https://www.timeanddate.com/news/time/cuba-starts-dst-2012.html # From Steffen Thorsen (2012-11-03): # Radio Reloj and many other sources report that Cuba is changing back # to standard time on 2012-11-04: # http://www.radioreloj.cu/index.php/noticias-radio-reloj/36-nacionales/9961-regira-horario-normal-en-cuba-desde-el-domingo-cuatro-de-noviembre # From Paul Eggert (2012-11-03): # For now, assume the future rule is first Sunday in November. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Cuba 1928 only - Jun 10 0:00 1:00 D Rule Cuba 1928 only - Oct 10 0:00 0 S Rule Cuba 1940 1942 - Jun Sun>=1 0:00 1:00 D Rule Cuba 1940 1942 - Sep Sun>=1 0:00 0 S Rule Cuba 1945 1946 - Jun Sun>=1 0:00 1:00 D Rule Cuba 1945 1946 - Sep Sun>=1 0:00 0 S Rule Cuba 1965 only - Jun 1 0:00 1:00 D Rule Cuba 1965 only - Sep 30 0:00 0 S Rule Cuba 1966 only - May 29 0:00 1:00 D Rule Cuba 1966 only - Oct 2 0:00 0 S Rule Cuba 1967 only - Apr 8 0:00 1:00 D Rule Cuba 1967 1968 - Sep Sun>=8 0:00 0 S Rule Cuba 1968 only - Apr 14 0:00 1:00 D Rule Cuba 1969 1977 - Apr lastSun 0:00 1:00 D Rule Cuba 1969 1971 - Oct lastSun 0:00 0 S Rule Cuba 1972 1974 - Oct 8 0:00 0 S Rule Cuba 1975 1977 - Oct lastSun 0:00 0 S Rule Cuba 1978 only - May 7 0:00 1:00 D Rule Cuba 1978 1990 - Oct Sun>=8 0:00 0 S Rule Cuba 1979 1980 - Mar Sun>=15 0:00 1:00 D Rule Cuba 1981 1985 - May Sun>=5 0:00 1:00 D Rule Cuba 1986 1989 - Mar Sun>=14 0:00 1:00 D Rule Cuba 1990 1997 - Apr Sun>=1 0:00 1:00 D Rule Cuba 1991 1995 - Oct Sun>=8 0:00s 0 S Rule Cuba 1996 only - Oct 6 0:00s 0 S Rule Cuba 1997 only - Oct 12 0:00s 0 S Rule Cuba 1998 1999 - Mar lastSun 0:00s 1:00 D Rule Cuba 1998 2003 - Oct lastSun 0:00s 0 S Rule Cuba 2000 2003 - Apr Sun>=1 0:00s 1:00 D Rule Cuba 2004 only - Mar lastSun 0:00s 1:00 D Rule Cuba 2006 2010 - Oct lastSun 0:00s 0 S Rule Cuba 2007 only - Mar Sun>=8 0:00s 1:00 D Rule Cuba 2008 only - Mar Sun>=15 0:00s 1:00 D Rule Cuba 2009 2010 - Mar Sun>=8 0:00s 1:00 D Rule Cuba 2011 only - Mar Sun>=15 0:00s 1:00 D Rule Cuba 2011 only - Nov 13 0:00s 0 S Rule Cuba 2012 only - Apr 1 0:00s 1:00 D Rule Cuba 2012 max - Nov Sun>=1 0:00s 0 S Rule Cuba 2013 max - Mar Sun>=8 0:00s 1:00 D # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Havana -5:29:28 - LMT 1890 -5:29:36 - HMT 1925 Jul 19 12:00 # Havana MT -5:00 Cuba C%sT # Dominica # See America/Puerto_Rico. # Dominican Republic # From Steffen Thorsen (2000-10-30): # Enrique Morales reported to me that the Dominican Republic has changed the # time zone to Eastern Standard Time as of Sunday 29 at 2 am.... # http://www.listin.com.do/antes/261000/republica/princi.html # From Paul Eggert (2000-12-04): # That URL (2000-10-26, in Spanish) says they planned to use US-style DST. # From Rives McDow (2000-12-01): # Dominican Republic changed its mind and presidential decree on Tuesday, # November 28, 2000, with a new decree. On Sunday, December 3 at 1:00 AM the # Dominican Republic will be reverting to 8 hours from the International Date # Line, and will not be using DST in the foreseeable future. The reason they # decided to use DST was to be in synch with Puerto Rico, who was also going # to implement DST. When Puerto Rico didn't implement DST, the president # decided to revert. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule DR 1966 only - Oct 30 0:00 1:00 EDT Rule DR 1967 only - Feb 28 0:00 0 EST Rule DR 1969 1973 - Oct lastSun 0:00 0:30 -0430 Rule DR 1970 only - Feb 21 0:00 0 EST Rule DR 1971 only - Jan 20 0:00 0 EST Rule DR 1972 1974 - Jan 21 0:00 0 EST # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Santo_Domingo -4:39:36 - LMT 1890 -4:40 - SDMT 1933 Apr 1 12:00 # S. Dom. MT -5:00 DR %s 1974 Oct 27 -4:00 - AST 2000 Oct 29 2:00 -5:00 US E%sT 2000 Dec 3 1:00 -4:00 - AST # El Salvador # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Salv 1987 1988 - May Sun>=1 0:00 1:00 D Rule Salv 1987 1988 - Sep lastSun 0:00 0 S # There are too many San Salvadors elsewhere, so use America/El_Salvador # instead of America/San_Salvador. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/El_Salvador -5:56:48 - LMT 1921 # San Salvador -6:00 Salv C%sT # Grenada # Guadeloupe # St Barthélemy # St Martin (French part) # See America/Puerto_Rico. # Guatemala # # From Gwillim Law (2006-04-22), after a heads-up from Oscar van Vlijmen: # Diario Co Latino, at # , # says in an article dated 2006-04-19 that the Guatemalan government had # decided on that date to advance official time by 60 minutes, to lessen the # impact of the elevated cost of oil.... Daylight saving time will last from # 2006-04-29 24:00 (Guatemalan standard time) to 2006-09-30 (time unspecified). # From Paul Eggert (2006-06-22): # The Ministry of Energy and Mines, press release CP-15/2006 # (2006-04-19), says DST ends at 24:00. See # http://www.sieca.org.gt/Sitio_publico/Energeticos/Doc/Medidas/Cambio_Horario_Nac_190406.pdf # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Guat 1973 only - Nov 25 0:00 1:00 D Rule Guat 1974 only - Feb 24 0:00 0 S Rule Guat 1983 only - May 21 0:00 1:00 D Rule Guat 1983 only - Sep 22 0:00 0 S Rule Guat 1991 only - Mar 23 0:00 1:00 D Rule Guat 1991 only - Sep 7 0:00 0 S Rule Guat 2006 only - Apr 30 0:00 1:00 D Rule Guat 2006 only - Oct 1 0:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Guatemala -6:02:04 - LMT 1918 Oct 5 -6:00 Guat C%sT # Haiti # From Gwillim Law (2005-04-15): # Risto O. Nykänen wrote me that Haiti is now on DST. # I searched for confirmation, and I found a press release # on the Web page of the Haitian Consulate in Chicago (2005-03-31), # . Translated from French, it says: # # "The Prime Minister's Communication Office notifies the public in general # and the press in particular that, following a decision of the Interior # Ministry and the Territorial Collectivities [I suppose that means the # provinces], Haiti will move to Eastern Daylight Time in the night from next # Saturday the 2nd to Sunday the 3rd. # # "Consequently, the Prime Minister's Communication Office wishes to inform # the population that the country's clocks will be set forward one hour # starting at midnight. This provision will hold until the last Saturday in # October 2005. # # "Port-au-Prince, March 31, 2005" # # From Steffen Thorsen (2006-04-04): # I have been informed by users that Haiti observes DST this year like # last year, so the current "only" rule for 2005 might be changed to a # "max" rule or to last until 2006. (Who knows if they will observe DST # next year or if they will extend their DST like US/Canada next year). # # I have found this article about it (in French): # http://www.haitipressnetwork.com/news.cfm?articleID=7612 # # The reason seems to be an energy crisis. # From Stephen Colebourne (2007-02-22): # Some IATA info: Haiti won't be having DST in 2007. # From Steffen Thorsen (2012-03-11): # According to several news sources, Haiti will observe DST this year, # apparently using the same start and end date as USA/Canada. # So this means they have already changed their time. # # http://www.alterpresse.org/spip.php?article12510 # http://radiovision2000haiti.net/home/?p=13253 # # From Arthur David Olson (2012-03-11): # The alterpresse.org source seems to show a US-style leap from 2:00 a.m. to # 3:00 a.m. rather than the traditional Haitian jump at midnight. # Assume a US-style fall back as well. # From Steffen Thorsen (2013-03-10): # It appears that Haiti is observing DST this year as well, same rules # as US/Canada. They did it last year as well, and it looks like they # are going to observe DST every year now... # # http://radiovision2000haiti.net/public/haiti-avis-changement-dheure-dimanche/ # http://www.canalplushaiti.net/?p=6714 # From Steffen Thorsen (2016-03-12): # Jean Antoine, editor of www.haiti-reference.com informed us that Haiti # are not going on DST this year. Several other resources confirm this: ... # https://www.radiotelevisioncaraibes.com/presse/heure_d_t_pas_de_changement_d_heure_pr_vu_pour_cet_ann_e.html # https://www.vantbefinfo.com/changement-dheure-pas-pour-haiti/ # http://news.anmwe.com/haiti-lheure-nationale-ne-sera-ni-avancee-ni-reculee-cette-annee/ # From Steffen Thorsen (2017-03-12): # We have received 4 mails from different people telling that Haiti # has started DST again today, and this source seems to confirm that, # I have not been able to find a more authoritative source: # https://www.haitilibre.com/en/news-20319-haiti-notices-time-change-in-haiti.html # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Haiti 1983 only - May 8 0:00 1:00 D Rule Haiti 1984 1987 - Apr lastSun 0:00 1:00 D Rule Haiti 1983 1987 - Oct lastSun 0:00 0 S # Shanks & Pottenger say AT is 2:00, but IATA SSIM (1991/1997) says 1:00s. # Go with IATA. Rule Haiti 1988 1997 - Apr Sun>=1 1:00s 1:00 D Rule Haiti 1988 1997 - Oct lastSun 1:00s 0 S Rule Haiti 2005 2006 - Apr Sun>=1 0:00 1:00 D Rule Haiti 2005 2006 - Oct lastSun 0:00 0 S Rule Haiti 2012 2015 - Mar Sun>=8 2:00 1:00 D Rule Haiti 2012 2015 - Nov Sun>=1 2:00 0 S Rule Haiti 2017 max - Mar Sun>=8 2:00 1:00 D Rule Haiti 2017 max - Nov Sun>=1 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Port-au-Prince -4:49:20 - LMT 1890 -4:49 - PPMT 1917 Jan 24 12:00 # P-a-P MT -5:00 Haiti E%sT # Honduras # Shanks & Pottenger say 1921 Jan 1; go with Whitman's more precise Apr 1. # From Paul Eggert (2006-05-05): # worldtimezone.com reports a 2006-05-02 Spanish-language AP article # saying Honduras will start using DST midnight Saturday, effective 4 # months until September. La Tribuna reported today # that Manuel Zelaya, the president # of Honduras, refused to back down on this. # From Jesper Nørgaard Welen (2006-08-08): # It seems that Honduras has returned from DST to standard time this Monday at # 00:00 hours (prolonging Sunday to 25 hours duration). # http://www.worldtimezone.com/dst_news/dst_news_honduras04.html # From Paul Eggert (2006-08-08): # Also see Diario El Heraldo, The country returns to standard time (2006-08-08). # http://www.elheraldo.hn/nota.php?nid=54941&sec=12 # It mentions executive decree 18-2006. # From Steffen Thorsen (2006-08-17): # Honduras will observe DST from 2007 to 2009, exact dates are not # published, I have located this authoritative source: # http://www.presidencia.gob.hn/noticia.aspx?nId=47 # From Steffen Thorsen (2007-03-30): # http://www.laprensahn.com/pais_nota.php?id04962=7386 # So it seems that Honduras will not enter DST this year.... # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Hond 1987 1988 - May Sun>=1 0:00 1:00 D Rule Hond 1987 1988 - Sep lastSun 0:00 0 S Rule Hond 2006 only - May Sun>=1 0:00 1:00 D Rule Hond 2006 only - Aug Mon>=1 0:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Tegucigalpa -5:48:52 - LMT 1921 Apr -6:00 Hond C%sT # # Great Swan I ceded by US to Honduras in 1972 # Jamaica # Shanks & Pottenger give -5:07:12, but Milne records -5:07:10.41 from an # unspecified official document, and says "This time is used throughout the # island". Go with Milne. # # Shanks & Pottenger give April 28 for the 1974 spring-forward transition, but # Lance Neita writes that Prime Minister Michael Manley decreed it January 5. # Assume Neita meant Jan 6 02:00, the same as the US. Neita also writes that # Manley's supporters associated this act with Manley's nickname "Joshua" # (recall that in the Bible the sun stood still at Joshua's request), # and with the Rod of Correction which Manley said he had received from # Haile Selassie, Emperor of Ethiopia. See: # Neita L. The politician in all of us. Jamaica Observer 2014-09-20 # http://www.jamaicaobserver.com/columns/The-politician-in-all-of-us_17573647 # # Zone NAME STDOFF RULES FORMAT [UNTIL] #STDOFF -5:07:10.41 Zone America/Jamaica -5:07:10 - LMT 1890 # Kingston -5:07:10 - KMT 1912 Feb # Kingston Mean Time -5:00 - EST 1974 -5:00 US E%sT 1984 -5:00 - EST # Martinique # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Martinique -4:04:20 - LMT 1890 # Fort-de-France -4:04:20 - FFMT 1911 May # Fort-de-France MT -4:00 - AST 1980 Apr 6 -4:00 1:00 ADT 1980 Sep 28 -4:00 - AST # Montserrat # See America/Puerto_Rico. # Nicaragua # # This uses Shanks & Pottenger for times before 2005. # # From Steffen Thorsen (2005-04-12): # I've got reports from 8 different people that Nicaragua just started # DST on Sunday 2005-04-10, in order to save energy because of # expensive petroleum. The exact end date for DST is not yet # announced, only "September" but some sites also say "mid-September". # Some background information is available on the President's official site: # http://www.presidencia.gob.ni/Presidencia/Files_index/Secretaria/Notas%20de%20Prensa/Presidente/2005/ABRIL/Gobierno-de-nicaragua-adelanta-hora-oficial-06abril.htm # The Decree, no 23-2005 is available here: # http://www.presidencia.gob.ni/buscador_gaceta/BD/DECRETOS/2005/Decreto%2023-2005%20Se%20adelanta%20en%20una%20hora%20en%20todo%20el%20territorio%20nacional%20apartir%20de%20las%2024horas%20del%2009%20de%20Abril.pdf # # From Paul Eggert (2005-05-01): # The decree doesn't say anything about daylight saving, but for now let's # assume that it is daylight saving.... # # From Gwillim Law (2005-04-21): # The Associated Press story on the time change, which can be found at # http://www.lapalmainteractivo.com/guias/content/gen/ap/America_Latina/AMC_GEN_NICARAGUA_HORA.html # and elsewhere, says (fifth paragraph, translated from Spanish): "The last # time that a change of clocks was applied to save energy was in the year 2000 # during the Arnoldo Alemán administration."... # The northamerica file says that Nicaragua has been on UTC-6 continuously # since December 1998. I wasn't able to find any details of Nicaraguan time # changes in 2000. Perhaps a note could be added to the northamerica file, to # the effect that we have indirect evidence that DST was observed in 2000. # # From Jesper Nørgaard Welen (2005-11-02): # Nicaragua left DST the 2005-10-02 at 00:00 (local time). # http://www.presidencia.gob.ni/presidencia/files_index/secretaria/comunicados/2005/septiembre/26septiembre-cambio-hora.htm # (2005-09-26) # # From Jesper Nørgaard Welen (2006-05-05): # http://www.elnuevodiario.com.ni/2006/05/01/nacionales/18410 # (my informal translation) # By order of the president of the republic, Enrique Bolaños, Nicaragua # advanced by sixty minutes their official time, yesterday at 2 in the # morning, and will stay that way until 30th of September. # # From Jesper Nørgaard Welen (2006-09-30): # http://www.presidencia.gob.ni/buscador_gaceta/BD/DECRETOS/2006/D-063-2006P-PRN-Cambio-Hora.pdf # My informal translation runs: # The natural sun time is restored in all the national territory, in that the # time is returned one hour at 01:00 am of October 1 of 2006. # # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Nic 1979 1980 - Mar Sun>=16 0:00 1:00 D Rule Nic 1979 1980 - Jun Mon>=23 0:00 0 S Rule Nic 2005 only - Apr 10 0:00 1:00 D Rule Nic 2005 only - Oct Sun>=1 0:00 0 S Rule Nic 2006 only - Apr 30 2:00 1:00 D Rule Nic 2006 only - Oct Sun>=1 1:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Managua -5:45:08 - LMT 1890 -5:45:12 - MMT 1934 Jun 23 # Managua Mean Time? -6:00 - CST 1973 May -5:00 - EST 1975 Feb 16 -6:00 Nic C%sT 1992 Jan 1 4:00 -5:00 - EST 1992 Sep 24 -6:00 - CST 1993 -5:00 - EST 1997 -6:00 Nic C%sT # Panama # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Panama -5:18:08 - LMT 1890 -5:19:36 - CMT 1908 Apr 22 # Colón Mean Time -5:00 - EST Link America/Panama America/Atikokan Link America/Panama America/Cayman # Puerto Rico # There are too many San Juans elsewhere, so we'll use 'Puerto_Rico'. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Puerto_Rico -4:24:25 - LMT 1899 Mar 28 12:00 # San Juan -4:00 - AST 1942 May 3 -4:00 US A%sT 1946 -4:00 - AST Link America/Puerto_Rico America/Anguilla Link America/Puerto_Rico America/Antigua Link America/Puerto_Rico America/Aruba Link America/Puerto_Rico America/Curacao Link America/Puerto_Rico America/Blanc-Sablon # Quebec (Lower North Shore) Link America/Puerto_Rico America/Dominica Link America/Puerto_Rico America/Grenada Link America/Puerto_Rico America/Guadeloupe Link America/Puerto_Rico America/Kralendijk # Caribbean Netherlands Link America/Puerto_Rico America/Lower_Princes # Sint Maarten Link America/Puerto_Rico America/Marigot # St Martin (French part) Link America/Puerto_Rico America/Montserrat Link America/Puerto_Rico America/Port_of_Spain # Trinidad & Tobago Link America/Puerto_Rico America/St_Barthelemy # St Barthélemy Link America/Puerto_Rico America/St_Kitts # St Kitts & Nevis Link America/Puerto_Rico America/St_Lucia Link America/Puerto_Rico America/St_Thomas # Virgin Islands (US) Link America/Puerto_Rico America/St_Vincent Link America/Puerto_Rico America/Tortola # Virgin Islands (UK) # St Kitts-Nevis # St Lucia # See America/Puerto_Rico. # St Pierre and Miquelon # There are too many St Pierres elsewhere, so we'll use 'Miquelon'. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Miquelon -3:44:40 - LMT 1911 May 15 # St Pierre -4:00 - AST 1980 May -3:00 - -03 1987 -3:00 Canada -03/-02 # St Vincent and the Grenadines # See America/Puerto_Rico. # Sint Maarten # See America/Puerto_Rico. # Turks and Caicos # # From Chris Dunn in # https://bugs.debian.org/415007 # (2007-03-15): In the Turks & Caicos Islands (America/Grand_Turk) the # daylight saving dates for time changes have been adjusted to match # the recent U.S. change of dates. # # From Brian Inglis (2007-04-28): # http://www.turksandcaicos.tc/calendar/index.htm [2007-04-26] # there is an entry for Nov 4 "Daylight Savings Time Ends 2007" and three # rows before that there is an out of date entry for Oct: # "Eastern Standard Times Begins 2007 # Clocks are set back one hour at 2:00 a.m. local Daylight Saving Time" # indicating that the normal ET rules are followed. # From Paul Eggert (2014-08-19): # The 2014-08-13 Cabinet meeting decided to stay on UT -04 year-round. See: # http://tcweeklynews.com/daylight-savings-time-to-be-maintained-p5353-127.htm # Model this as a switch from EST/EDT to AST ... # From Chris Walton (2014-11-04): # ... the TCI government appears to have delayed the switch to # "permanent daylight saving time" by one year.... # http://tcweeklynews.com/time-change-to-go-ahead-this-november-p5437-127.htm # # From the Turks & Caicos Cabinet (2017-07-20), heads-up from Steffen Thorsen: # ... agreed to the reintroduction in TCI of Daylight Saving Time (DST) # during the summer months and Standard Time, also known as Local # Time, during the winter months with effect from April 2018 ... # https://www.gov.uk/government/news/turks-and-caicos-post-cabinet-meeting-statement--3 # From Paul Eggert (2017-08-26): # The date of effect of the spring 2018 change appears to be March 11, # which makes more sense. See: Hamilton D. Time change back # by March 2018 for TCI. Magnetic Media. 2017-08-25. # http://magneticmediatv.com/2017/08/time-change-back-by-march-2018-for-tci/ # # From P Chan (2020-11-27): # Standard Time Declaration Order 2015 (L.N. 15/2015) # http://online.fliphtml5.com/fizd/czin/#p=2 # # Standard Time Declaration Order 2017 (L.N. 31/2017) # http://online.fliphtml5.com/fizd/dmcu/#p=2 # # From Tim Parenti (2020-12-05): # Although L.N. 31/2017 reads that it "shall come into operation at 2:00 a.m. # on 11th March 2018", a precise interpretation here poses some problems. The # order states that "the standard time to be observed throughout the Turks and # Caicos Islands shall be the same time zone as the Eastern United States of # America" and further clarifies "[f]or the avoidance of doubt" that it # "applies to the Eastern Standard Time as well as any changes thereto for # Daylight Saving Time." However, as clocks in Turks and Caicos approached # 02:00 -04, and thus the declared implementation time, it was still 01:00 EST # (-05), as DST in the Eastern US would not start until an hour later. # # Since it is unlikely that those on the islands switched their clocks twice in # the span of an hour, we assume instead that the adoption of EDT actually took # effect once clocks in the Eastern US had sprung forward, from 03:00 -04. # This discrepancy only affects the time zone abbreviation and DST flag for the # intervening hour, not wall clock times, as -04 was maintained throughout. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Grand_Turk -4:44:32 - LMT 1890 #STDOFF -5:07:10.41 -5:07:10 - KMT 1912 Feb # Kingston Mean Time -5:00 - EST 1979 -5:00 US E%sT 2015 Mar 8 2:00 -4:00 - AST 2018 Mar 11 3:00 -5:00 US E%sT # British Virgin Is # US Virgin Is # See America/Puerto_Rico. # Local Variables: # coding: utf-8 # End: ./tzdatabase/LICENSE0000644000175000017500000000037413111575741014275 0ustar anthonyanthonyUnless specified below, all files in the tz code and data (including this LICENSE file) are in the public domain. If the files date.c, newstrftime.3, and strftime.c are present, they contain material derived from BSD and use the BSD 3-clause license. ./tzdatabase/leapseconds0000644000175000017500000000647414270155153015520 0ustar anthonyanthony# Allowance for leap seconds added to each time zone file. # This file is in the public domain. # This file is generated automatically from the data in the public-domain # NIST format leap-seconds.list file, which can be copied from # # or . # The NIST file is used instead of its IERS upstream counterpart # # because under US law the NIST file is public domain # whereas the IERS file's copyright and license status is unclear. # For more about leap-seconds.list, please see # The NTP Timescale and Leap Seconds # . # The rules for leap seconds are specified in Annex 1 (Time scales) of: # Standard-frequency and time-signal emissions. # International Telecommunication Union - Radiocommunication Sector # (ITU-R) Recommendation TF.460-6 (02/2002) # . # The International Earth Rotation and Reference Systems Service (IERS) # periodically uses leap seconds to keep UTC to within 0.9 s of UT1 # (a proxy for Earth's angle in space as measured by astronomers) # and publishes leap second data in a copyrighted file # . # See: Levine J. Coordinated Universal Time and the leap second. # URSI Radio Sci Bull. 2016;89(4):30-6. doi:10.23919/URSIRSB.2016.7909995 # . # There were no leap seconds before 1972, as no official mechanism # accounted for the discrepancy between atomic time (TAI) and the earth's # rotation. The first ("1 Jan 1972") data line in leap-seconds.list # does not denote a leap second; it denotes the start of the current definition # of UTC. # All leap-seconds are Stationary (S) at the given UTC time. # The correction (+ or -) is made at the given time, so in the unlikely # event of a negative leap second, a line would look like this: # Leap YEAR MON DAY 23:59:59 - S # Typical lines look like this: # Leap YEAR MON DAY 23:59:60 + S Leap 1972 Jun 30 23:59:60 + S Leap 1972 Dec 31 23:59:60 + S Leap 1973 Dec 31 23:59:60 + S Leap 1974 Dec 31 23:59:60 + S Leap 1975 Dec 31 23:59:60 + S Leap 1976 Dec 31 23:59:60 + S Leap 1977 Dec 31 23:59:60 + S Leap 1978 Dec 31 23:59:60 + S Leap 1979 Dec 31 23:59:60 + S Leap 1981 Jun 30 23:59:60 + S Leap 1982 Jun 30 23:59:60 + S Leap 1983 Jun 30 23:59:60 + S Leap 1985 Jun 30 23:59:60 + S Leap 1987 Dec 31 23:59:60 + S Leap 1989 Dec 31 23:59:60 + S Leap 1990 Dec 31 23:59:60 + S Leap 1992 Jun 30 23:59:60 + S Leap 1993 Jun 30 23:59:60 + S Leap 1994 Jun 30 23:59:60 + S Leap 1995 Dec 31 23:59:60 + S Leap 1997 Jun 30 23:59:60 + S Leap 1998 Dec 31 23:59:60 + S Leap 2005 Dec 31 23:59:60 + S Leap 2008 Dec 31 23:59:60 + S Leap 2012 Jun 30 23:59:60 + S Leap 2015 Jun 30 23:59:60 + S Leap 2016 Dec 31 23:59:60 + S # UTC timestamp when this leap second list expires. # Any additional leap seconds will come after this. # This Expires line is commented out for now, # so that pre-2020a zic implementations do not reject this file. #Expires 2023 Jun 28 00:00:00 # POSIX timestamps for the data in this file: #updated 1467936000 (2016-07-08 00:00:00 UTC) #expires 1687910400 (2023-06-28 00:00:00 UTC) # Updated through IERS Bulletin C64 # File expires on: 28 June 2023 ./tzdatabase/zic.c0000644000175000017500000025246713514366642014242 0ustar anthonyanthony/* Compile .zi time zone data into TZif binary files. */ /* ** This file is in the public domain, so clarified as of ** 2006-07-17 by Arthur David Olson. */ #include "version.h" #include "private.h" #include "tzfile.h" #include #include #include #include #include #define ZIC_VERSION_PRE_2013 '2' #define ZIC_VERSION '3' typedef int_fast64_t zic_t; #define ZIC_MIN INT_FAST64_MIN #define ZIC_MAX INT_FAST64_MAX #define PRIdZIC PRIdFAST64 #define SCNdZIC SCNdFAST64 #ifndef ZIC_MAX_ABBR_LEN_WO_WARN #define ZIC_MAX_ABBR_LEN_WO_WARN 6 #endif /* !defined ZIC_MAX_ABBR_LEN_WO_WARN */ #ifdef HAVE_DIRECT_H # include # include # undef mkdir # define mkdir(name, mode) _mkdir(name) #endif #if HAVE_SYS_STAT_H #include #endif #ifdef S_IRUSR #define MKDIR_UMASK (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH) #else #define MKDIR_UMASK 0755 #endif /* Port to native MS-Windows and to ancient UNIX. */ #if !defined S_ISDIR && defined S_IFDIR && defined S_IFMT # define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR) #endif #if HAVE_SYS_WAIT_H #include /* for WIFEXITED and WEXITSTATUS */ #endif /* HAVE_SYS_WAIT_H */ #ifndef WIFEXITED #define WIFEXITED(status) (((status) & 0xff) == 0) #endif /* !defined WIFEXITED */ #ifndef WEXITSTATUS #define WEXITSTATUS(status) (((status) >> 8) & 0xff) #endif /* !defined WEXITSTATUS */ /* The maximum ptrdiff_t value, for pre-C99 platforms. */ #ifndef PTRDIFF_MAX static ptrdiff_t const PTRDIFF_MAX = MAXVAL(ptrdiff_t, TYPE_BIT(ptrdiff_t)); #endif /* The minimum alignment of a type, for pre-C11 platforms. */ #if __STDC_VERSION__ < 201112 # define _Alignof(type) offsetof(struct { char a; type b; }, b) #endif /* The type for line numbers. Use PRIdMAX to format them; formerly there was also "#define PRIdLINENO PRIdMAX" and formats used PRIdLINENO, but xgettext cannot grok that. */ typedef intmax_t lineno; struct rule { const char * r_filename; lineno r_linenum; const char * r_name; zic_t r_loyear; /* for example, 1986 */ zic_t r_hiyear; /* for example, 1986 */ const char * r_yrtype; bool r_lowasnum; bool r_hiwasnum; int r_month; /* 0..11 */ int r_dycode; /* see below */ int r_dayofmonth; int r_wday; zic_t r_tod; /* time from midnight */ bool r_todisstd; /* is r_tod standard time? */ bool r_todisut; /* is r_tod UT? */ bool r_isdst; /* is this daylight saving time? */ zic_t r_save; /* offset from standard time */ const char * r_abbrvar; /* variable part of abbreviation */ bool r_todo; /* a rule to do (used in outzone) */ zic_t r_temp; /* used in outzone */ }; /* ** r_dycode r_dayofmonth r_wday */ #define DC_DOM 0 /* 1..31 */ /* unused */ #define DC_DOWGEQ 1 /* 1..31 */ /* 0..6 (Sun..Sat) */ #define DC_DOWLEQ 2 /* 1..31 */ /* 0..6 (Sun..Sat) */ struct zone { const char * z_filename; lineno z_linenum; const char * z_name; zic_t z_stdoff; char * z_rule; const char * z_format; char z_format_specifier; bool z_isdst; zic_t z_save; struct rule * z_rules; ptrdiff_t z_nrules; struct rule z_untilrule; zic_t z_untiltime; }; #if !HAVE_POSIX_DECLS extern int getopt(int argc, char * const argv[], const char * options); extern int link(const char * fromname, const char * toname); extern char * optarg; extern int optind; #endif #if ! HAVE_LINK # define link(from, to) (errno = ENOTSUP, -1) #endif #if ! HAVE_SYMLINK # define readlink(file, buf, size) (errno = ENOTSUP, -1) # define symlink(from, to) (errno = ENOTSUP, -1) # define S_ISLNK(m) 0 #endif #ifndef AT_SYMLINK_FOLLOW # define linkat(fromdir, from, todir, to, flag) \ (itssymlink(from) ? (errno = ENOTSUP, -1) : link(from, to)) #endif static void addtt(zic_t starttime, int type); static int addtype(zic_t, char const *, bool, bool, bool); static void leapadd(zic_t, bool, int, int); static void adjleap(void); static void associate(void); static void dolink(const char *, const char *, bool); static char ** getfields(char * buf); static zic_t gethms(const char * string, const char * errstring); static zic_t getsave(char *, bool *); static void infile(const char * filename); static void inleap(char ** fields, int nfields); static void inlink(char ** fields, int nfields); static void inrule(char ** fields, int nfields); static bool inzcont(char ** fields, int nfields); static bool inzone(char ** fields, int nfields); static bool inzsub(char **, int, bool); static bool itsdir(char const *); static bool itssymlink(char const *); static bool is_alpha(char a); static char lowerit(char); static void mkdirs(char const *, bool); static void newabbr(const char * abbr); static zic_t oadd(zic_t t1, zic_t t2); static void outzone(const struct zone * zp, ptrdiff_t ntzones); static zic_t rpytime(const struct rule * rp, zic_t wantedy); static void rulesub(struct rule * rp, const char * loyearp, const char * hiyearp, const char * typep, const char * monthp, const char * dayp, const char * timep); static zic_t tadd(zic_t t1, zic_t t2); static bool yearistype(zic_t year, const char * type); /* Bound on length of what %z can expand to. */ enum { PERCENT_Z_LEN_BOUND = sizeof "+995959" - 1 }; /* If true, work around a bug in Qt 5.6.1 and earlier, which mishandles TZif files whose POSIX-TZ-style strings contain '<'; see QTBUG-53071 . This workaround will no longer be needed when Qt 5.6.1 and earlier are obsolete, say in the year 2021. */ #ifndef WORK_AROUND_QTBUG_53071 enum { WORK_AROUND_QTBUG_53071 = true }; #endif static int charcnt; static bool errors; static bool warnings; static const char * filename; static int leapcnt; static bool leapseen; static zic_t leapminyear; static zic_t leapmaxyear; static lineno linenum; static int max_abbrvar_len = PERCENT_Z_LEN_BOUND; static int max_format_len; static zic_t max_year; static zic_t min_year; static bool noise; static const char * rfilename; static lineno rlinenum; static const char * progname; static ptrdiff_t timecnt; static ptrdiff_t timecnt_alloc; static int typecnt; /* ** Line codes. */ #define LC_RULE 0 #define LC_ZONE 1 #define LC_LINK 2 #define LC_LEAP 3 /* ** Which fields are which on a Zone line. */ #define ZF_NAME 1 #define ZF_STDOFF 2 #define ZF_RULE 3 #define ZF_FORMAT 4 #define ZF_TILYEAR 5 #define ZF_TILMONTH 6 #define ZF_TILDAY 7 #define ZF_TILTIME 8 #define ZONE_MINFIELDS 5 #define ZONE_MAXFIELDS 9 /* ** Which fields are which on a Zone continuation line. */ #define ZFC_STDOFF 0 #define ZFC_RULE 1 #define ZFC_FORMAT 2 #define ZFC_TILYEAR 3 #define ZFC_TILMONTH 4 #define ZFC_TILDAY 5 #define ZFC_TILTIME 6 #define ZONEC_MINFIELDS 3 #define ZONEC_MAXFIELDS 7 /* ** Which files are which on a Rule line. */ #define RF_NAME 1 #define RF_LOYEAR 2 #define RF_HIYEAR 3 #define RF_COMMAND 4 #define RF_MONTH 5 #define RF_DAY 6 #define RF_TOD 7 #define RF_SAVE 8 #define RF_ABBRVAR 9 #define RULE_FIELDS 10 /* ** Which fields are which on a Link line. */ #define LF_FROM 1 #define LF_TO 2 #define LINK_FIELDS 3 /* ** Which fields are which on a Leap line. */ #define LP_YEAR 1 #define LP_MONTH 2 #define LP_DAY 3 #define LP_TIME 4 #define LP_CORR 5 #define LP_ROLL 6 #define LEAP_FIELDS 7 /* ** Year synonyms. */ #define YR_MINIMUM 0 #define YR_MAXIMUM 1 #define YR_ONLY 2 static struct rule * rules; static ptrdiff_t nrules; /* number of rules */ static ptrdiff_t nrules_alloc; static struct zone * zones; static ptrdiff_t nzones; /* number of zones */ static ptrdiff_t nzones_alloc; struct link { const char * l_filename; lineno l_linenum; const char * l_from; const char * l_to; }; static struct link * links; static ptrdiff_t nlinks; static ptrdiff_t nlinks_alloc; struct lookup { const char * l_word; const int l_value; }; static struct lookup const * byword(const char * string, const struct lookup * lp); static struct lookup const zi_line_codes[] = { { "Rule", LC_RULE }, { "Zone", LC_ZONE }, { "Link", LC_LINK }, { NULL, 0 } }; static struct lookup const leap_line_codes[] = { { "Leap", LC_LEAP }, { NULL, 0} }; static struct lookup const mon_names[] = { { "January", TM_JANUARY }, { "February", TM_FEBRUARY }, { "March", TM_MARCH }, { "April", TM_APRIL }, { "May", TM_MAY }, { "June", TM_JUNE }, { "July", TM_JULY }, { "August", TM_AUGUST }, { "September", TM_SEPTEMBER }, { "October", TM_OCTOBER }, { "November", TM_NOVEMBER }, { "December", TM_DECEMBER }, { NULL, 0 } }; static struct lookup const wday_names[] = { { "Sunday", TM_SUNDAY }, { "Monday", TM_MONDAY }, { "Tuesday", TM_TUESDAY }, { "Wednesday", TM_WEDNESDAY }, { "Thursday", TM_THURSDAY }, { "Friday", TM_FRIDAY }, { "Saturday", TM_SATURDAY }, { NULL, 0 } }; static struct lookup const lasts[] = { { "last-Sunday", TM_SUNDAY }, { "last-Monday", TM_MONDAY }, { "last-Tuesday", TM_TUESDAY }, { "last-Wednesday", TM_WEDNESDAY }, { "last-Thursday", TM_THURSDAY }, { "last-Friday", TM_FRIDAY }, { "last-Saturday", TM_SATURDAY }, { NULL, 0 } }; static struct lookup const begin_years[] = { { "minimum", YR_MINIMUM }, { "maximum", YR_MAXIMUM }, { NULL, 0 } }; static struct lookup const end_years[] = { { "minimum", YR_MINIMUM }, { "maximum", YR_MAXIMUM }, { "only", YR_ONLY }, { NULL, 0 } }; static struct lookup const leap_types[] = { { "Rolling", true }, { "Stationary", false }, { NULL, 0 } }; static const int len_months[2][MONSPERYEAR] = { { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } }; static const int len_years[2] = { DAYSPERNYEAR, DAYSPERLYEAR }; static struct attype { zic_t at; bool dontmerge; unsigned char type; } * attypes; static zic_t utoffs[TZ_MAX_TYPES]; static char isdsts[TZ_MAX_TYPES]; static unsigned char desigidx[TZ_MAX_TYPES]; static bool ttisstds[TZ_MAX_TYPES]; static bool ttisuts[TZ_MAX_TYPES]; static char chars[TZ_MAX_CHARS]; static zic_t trans[TZ_MAX_LEAPS]; static zic_t corr[TZ_MAX_LEAPS]; static char roll[TZ_MAX_LEAPS]; /* ** Memory allocation. */ static _Noreturn void memory_exhausted(const char *msg) { fprintf(stderr, _("%s: Memory exhausted: %s\n"), progname, msg); exit(EXIT_FAILURE); } static ATTRIBUTE_PURE size_t size_product(size_t nitems, size_t itemsize) { if (SIZE_MAX / itemsize < nitems) memory_exhausted(_("size overflow")); return nitems * itemsize; } static ATTRIBUTE_PURE size_t align_to(size_t size, size_t alignment) { size_t aligned_size = size + alignment - 1; aligned_size -= aligned_size % alignment; if (aligned_size < size) memory_exhausted(_("alignment overflow")); return aligned_size; } #if !HAVE_STRDUP static char * strdup(char const *str) { char *result = malloc(strlen(str) + 1); return result ? strcpy(result, str) : result; } #endif static void * memcheck(void *ptr) { if (ptr == NULL) memory_exhausted(strerror(errno)); return ptr; } static void * ATTRIBUTE_MALLOC emalloc(size_t size) { return memcheck(malloc(size)); } static void * erealloc(void *ptr, size_t size) { return memcheck(realloc(ptr, size)); } static char * ATTRIBUTE_MALLOC ecpyalloc (char const *str) { return memcheck(strdup(str)); } static void * growalloc(void *ptr, size_t itemsize, ptrdiff_t nitems, ptrdiff_t *nitems_alloc) { if (nitems < *nitems_alloc) return ptr; else { ptrdiff_t nitems_max = PTRDIFF_MAX - WORK_AROUND_QTBUG_53071; ptrdiff_t amax = nitems_max < SIZE_MAX ? nitems_max : SIZE_MAX; if ((amax - 1) / 3 * 2 < *nitems_alloc) memory_exhausted(_("integer overflow")); *nitems_alloc += (*nitems_alloc >> 1) + 1; return erealloc(ptr, size_product(*nitems_alloc, itemsize)); } } /* ** Error handling. */ static void eats(char const *name, lineno num, char const *rname, lineno rnum) { filename = name; linenum = num; rfilename = rname; rlinenum = rnum; } static void eat(char const *name, lineno num) { eats(name, num, NULL, -1); } static void ATTRIBUTE_FORMAT((printf, 1, 0)) verror(const char *const string, va_list args) { /* ** Match the format of "cc" to allow sh users to ** zic ... 2>&1 | error -t "*" -v ** on BSD systems. */ if (filename) fprintf(stderr, _("\"%s\", line %"PRIdMAX": "), filename, linenum); vfprintf(stderr, string, args); if (rfilename != NULL) fprintf(stderr, _(" (rule from \"%s\", line %"PRIdMAX")"), rfilename, rlinenum); fprintf(stderr, "\n"); } static void ATTRIBUTE_FORMAT((printf, 1, 2)) error(const char *const string, ...) { va_list args; va_start(args, string); verror(string, args); va_end(args); errors = true; } static void ATTRIBUTE_FORMAT((printf, 1, 2)) warning(const char *const string, ...) { va_list args; fprintf(stderr, _("warning: ")); va_start(args, string); verror(string, args); va_end(args); warnings = true; } static void close_file(FILE *stream, char const *dir, char const *name) { char const *e = (ferror(stream) ? _("I/O error") : fclose(stream) != 0 ? strerror(errno) : NULL); if (e) { fprintf(stderr, "%s: %s%s%s%s%s\n", progname, dir ? dir : "", dir ? "/" : "", name ? name : "", name ? ": " : "", e); exit(EXIT_FAILURE); } } static _Noreturn void usage(FILE *stream, int status) { fprintf(stream, _("%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n" "\t[ -b {slim|fat} ] [ -d directory ] [ -l localtime ]" " [ -L leapseconds ] \\\n" "\t[ -p posixrules ] [ -r '[@lo][/@hi]' ] [ -t localtime-link ] \\\n" "\t[ filename ... ]\n\n" "Report bugs to %s.\n"), progname, progname, REPORT_BUGS_TO); if (status == EXIT_SUCCESS) close_file(stream, NULL, NULL); exit(status); } /* Change the working directory to DIR, possibly creating DIR and its ancestors. After this is done, all files are accessed with names relative to DIR. */ static void change_directory (char const *dir) { if (chdir(dir) != 0) { int chdir_errno = errno; if (chdir_errno == ENOENT) { mkdirs(dir, false); chdir_errno = chdir(dir) == 0 ? 0 : errno; } if (chdir_errno != 0) { fprintf(stderr, _("%s: Can't chdir to %s: %s\n"), progname, dir, strerror(chdir_errno)); exit(EXIT_FAILURE); } } } #define TIME_T_BITS_IN_FILE 64 /* The minimum and maximum values representable in a TZif file. */ static zic_t const min_time = MINVAL(zic_t, TIME_T_BITS_IN_FILE); static zic_t const max_time = MAXVAL(zic_t, TIME_T_BITS_IN_FILE); /* The minimum, and one less than the maximum, values specified by the -r option. These default to MIN_TIME and MAX_TIME. */ static zic_t lo_time = MINVAL(zic_t, TIME_T_BITS_IN_FILE); static zic_t hi_time = MAXVAL(zic_t, TIME_T_BITS_IN_FILE); /* Set the time range of the output to TIMERANGE. Return true if successful. */ static bool timerange_option(char *timerange) { intmax_t lo = min_time, hi = max_time; char *lo_end = timerange, *hi_end; if (*timerange == '@') { errno = 0; lo = strtoimax (timerange + 1, &lo_end, 10); if (lo_end == timerange + 1 || (lo == INTMAX_MAX && errno == ERANGE)) return false; } hi_end = lo_end; if (lo_end[0] == '/' && lo_end[1] == '@') { errno = 0; hi = strtoimax (lo_end + 2, &hi_end, 10); if (hi_end == lo_end + 2 || hi == INTMAX_MIN) return false; hi -= ! (hi == INTMAX_MAX && errno == ERANGE); } if (*hi_end || hi < lo || max_time < lo || hi < min_time) return false; lo_time = lo < min_time ? min_time : lo; hi_time = max_time < hi ? max_time : hi; return true; } static const char * psxrules; static const char * lcltime; static const char * directory; static const char * leapsec; static const char * tzdefault; static const char * yitcommand; /* -1 if the TZif output file should be slim, 0 if default, 1 if the output should be fat for backward compatibility. Currently the default is fat, although this may change. */ static int bloat; static bool want_bloat(void) { return 0 <= bloat; } #ifndef ZIC_BLOAT_DEFAULT # define ZIC_BLOAT_DEFAULT "fat" #endif int main(int argc, char **argv) { register int c, k; register ptrdiff_t i, j; bool timerange_given = false; #ifdef S_IWGRP umask(umask(S_IWGRP | S_IWOTH) | (S_IWGRP | S_IWOTH)); #endif #if HAVE_GETTEXT setlocale(LC_ALL, ""); #ifdef TZ_DOMAINDIR bindtextdomain(TZ_DOMAIN, TZ_DOMAINDIR); #endif /* defined TEXTDOMAINDIR */ textdomain(TZ_DOMAIN); #endif /* HAVE_GETTEXT */ progname = argv[0]; if (TYPE_BIT(zic_t) < 64) { fprintf(stderr, "%s: %s\n", progname, _("wild compilation-time specification of zic_t")); return EXIT_FAILURE; } for (k = 1; k < argc; k++) if (strcmp(argv[k], "--version") == 0) { printf("zic %s%s\n", PKGVERSION, TZVERSION); close_file(stdout, NULL, NULL); return EXIT_SUCCESS; } else if (strcmp(argv[k], "--help") == 0) { usage(stdout, EXIT_SUCCESS); } while ((c = getopt(argc, argv, "b:d:l:L:p:r:st:vy:")) != EOF && c != -1) switch (c) { default: usage(stderr, EXIT_FAILURE); case 'b': if (strcmp(optarg, "slim") == 0) { if (0 < bloat) error(_("incompatible -b options")); bloat = -1; } else if (strcmp(optarg, "fat") == 0) { if (bloat < 0) error(_("incompatible -b options")); bloat = 1; } else error(_("invalid option: -b '%s'"), optarg); break; case 'd': if (directory == NULL) directory = optarg; else { fprintf(stderr, _("%s: More than one -d option specified\n"), progname); return EXIT_FAILURE; } break; case 'l': if (lcltime == NULL) lcltime = optarg; else { fprintf(stderr, _("%s: More than one -l option specified\n"), progname); return EXIT_FAILURE; } break; case 'p': if (psxrules == NULL) psxrules = optarg; else { fprintf(stderr, _("%s: More than one -p option specified\n"), progname); return EXIT_FAILURE; } break; case 't': if (tzdefault != NULL) { fprintf(stderr, _("%s: More than one -t option" " specified\n"), progname); return EXIT_FAILURE; } tzdefault = optarg; break; case 'y': if (yitcommand == NULL) { warning(_("-y is obsolescent")); yitcommand = optarg; } else { fprintf(stderr, _("%s: More than one -y option specified\n"), progname); return EXIT_FAILURE; } break; case 'L': if (leapsec == NULL) leapsec = optarg; else { fprintf(stderr, _("%s: More than one -L option specified\n"), progname); return EXIT_FAILURE; } break; case 'v': noise = true; break; case 'r': if (timerange_given) { fprintf(stderr, _("%s: More than one -r option specified\n"), progname); return EXIT_FAILURE; } if (! timerange_option(optarg)) { fprintf(stderr, _("%s: invalid time range: %s\n"), progname, optarg); return EXIT_FAILURE; } timerange_given = true; break; case 's': warning(_("-s ignored")); break; } if (optind == argc - 1 && strcmp(argv[optind], "=") == 0) usage(stderr, EXIT_FAILURE); /* usage message by request */ if (bloat == 0) bloat = strcmp(ZIC_BLOAT_DEFAULT, "slim") == 0 ? -1 : 1; if (directory == NULL) directory = TZDIR; if (tzdefault == NULL) tzdefault = TZDEFAULT; if (yitcommand == NULL) yitcommand = "yearistype"; if (optind < argc && leapsec != NULL) { infile(leapsec); adjleap(); } for (k = optind; k < argc; k++) infile(argv[k]); if (errors) return EXIT_FAILURE; associate(); change_directory(directory); for (i = 0; i < nzones; i = j) { /* ** Find the next non-continuation zone entry. */ for (j = i + 1; j < nzones && zones[j].z_name == NULL; ++j) continue; outzone(&zones[i], j - i); } /* ** Make links. */ for (i = 0; i < nlinks; ++i) { eat(links[i].l_filename, links[i].l_linenum); dolink(links[i].l_from, links[i].l_to, false); if (noise) for (j = 0; j < nlinks; ++j) if (strcmp(links[i].l_to, links[j].l_from) == 0) warning(_("link to link")); } if (lcltime != NULL) { eat(_("command line"), 1); dolink(lcltime, tzdefault, true); } if (psxrules != NULL) { eat(_("command line"), 1); dolink(psxrules, TZDEFRULES, true); } if (warnings && (ferror(stderr) || fclose(stderr) != 0)) return EXIT_FAILURE; return errors ? EXIT_FAILURE : EXIT_SUCCESS; } static bool componentcheck(char const *name, char const *component, char const *component_end) { enum { component_len_max = 14 }; ptrdiff_t component_len = component_end - component; if (component_len == 0) { if (!*name) error (_("empty file name")); else error (_(component == name ? "file name '%s' begins with '/'" : *component_end ? "file name '%s' contains '//'" : "file name '%s' ends with '/'"), name); return false; } if (0 < component_len && component_len <= 2 && component[0] == '.' && component_end[-1] == '.') { int len = component_len; error(_("file name '%s' contains '%.*s' component"), name, len, component); return false; } if (noise) { if (0 < component_len && component[0] == '-') warning(_("file name '%s' component contains leading '-'"), name); if (component_len_max < component_len) warning(_("file name '%s' contains overlength component" " '%.*s...'"), name, component_len_max, component); } return true; } static bool namecheck(const char *name) { register char const *cp; /* Benign characters in a portable file name. */ static char const benign[] = "-/_" "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; /* Non-control chars in the POSIX portable character set, excluding the benign characters. */ static char const printable_and_not_benign[] = " !\"#$%&'()*+,.0123456789:;<=>?@[\\]^`{|}~"; register char const *component = name; for (cp = name; *cp; cp++) { unsigned char c = *cp; if (noise && !strchr(benign, c)) { warning((strchr(printable_and_not_benign, c) ? _("file name '%s' contains byte '%c'") : _("file name '%s' contains byte '\\%o'")), name, c); } if (c == '/') { if (!componentcheck(name, component, cp)) return false; component = cp + 1; } } return componentcheck(name, component, cp); } /* Create symlink contents suitable for symlinking FROM to TO, as a freshly allocated string. FROM should be a relative file name, and is relative to the global variable DIRECTORY. TO can be either relative or absolute. */ static char * relname(char const *from, char const *to) { size_t i, taillen, dotdotetcsize; size_t dir_len = 0, dotdots = 0, linksize = SIZE_MAX; char const *f = from; char *result = NULL; if (*to == '/') { /* Make F absolute too. */ size_t len = strlen(directory); bool needslash = len && directory[len - 1] != '/'; linksize = len + needslash + strlen(from) + 1; f = result = emalloc(linksize); strcpy(result, directory); result[len] = '/'; strcpy(result + len + needslash, from); } for (i = 0; f[i] && f[i] == to[i]; i++) if (f[i] == '/') dir_len = i + 1; for (; to[i]; i++) dotdots += to[i] == '/' && to[i - 1] != '/'; taillen = strlen(f + dir_len); dotdotetcsize = 3 * dotdots + taillen + 1; if (dotdotetcsize <= linksize) { if (!result) result = emalloc(dotdotetcsize); for (i = 0; i < dotdots; i++) memcpy(result + 3 * i, "../", 3); memmove(result + 3 * dotdots, f + dir_len, taillen + 1); } return result; } /* Hard link FROM to TO, following any symbolic links. Return 0 if successful, an error number otherwise. */ static int hardlinkerr(char const *from, char const *to) { int r = linkat(AT_FDCWD, from, AT_FDCWD, to, AT_SYMLINK_FOLLOW); return r == 0 ? 0 : errno; } static void dolink(char const *fromfield, char const *tofield, bool staysymlink) { bool todirs_made = false; int link_errno; /* ** We get to be careful here since ** there's a fair chance of root running us. */ if (itsdir(fromfield)) { fprintf(stderr, _("%s: link from %s/%s failed: %s\n"), progname, directory, fromfield, strerror(EPERM)); exit(EXIT_FAILURE); } if (staysymlink) staysymlink = itssymlink(tofield); if (remove(tofield) == 0) todirs_made = true; else if (errno != ENOENT) { char const *e = strerror(errno); fprintf(stderr, _("%s: Can't remove %s/%s: %s\n"), progname, directory, tofield, e); exit(EXIT_FAILURE); } link_errno = staysymlink ? ENOTSUP : hardlinkerr(fromfield, tofield); if (link_errno == ENOENT && !todirs_made) { mkdirs(tofield, true); todirs_made = true; link_errno = hardlinkerr(fromfield, tofield); } if (link_errno != 0) { bool absolute = *fromfield == '/'; char *linkalloc = absolute ? NULL : relname(fromfield, tofield); char const *contents = absolute ? fromfield : linkalloc; int symlink_errno = symlink(contents, tofield) == 0 ? 0 : errno; if (!todirs_made && (symlink_errno == ENOENT || symlink_errno == ENOTSUP)) { mkdirs(tofield, true); if (symlink_errno == ENOENT) symlink_errno = symlink(contents, tofield) == 0 ? 0 : errno; } free(linkalloc); if (symlink_errno == 0) { if (link_errno != ENOTSUP) warning(_("symbolic link used because hard link failed: %s"), strerror(link_errno)); } else { FILE *fp, *tp; int c; fp = fopen(fromfield, "rb"); if (!fp) { char const *e = strerror(errno); fprintf(stderr, _("%s: Can't read %s/%s: %s\n"), progname, directory, fromfield, e); exit(EXIT_FAILURE); } tp = fopen(tofield, "wb"); if (!tp) { char const *e = strerror(errno); fprintf(stderr, _("%s: Can't create %s/%s: %s\n"), progname, directory, tofield, e); exit(EXIT_FAILURE); } while ((c = getc(fp)) != EOF) putc(c, tp); close_file(fp, directory, fromfield); close_file(tp, directory, tofield); if (link_errno != ENOTSUP) warning(_("copy used because hard link failed: %s"), strerror(link_errno)); else if (symlink_errno != ENOTSUP) warning(_("copy used because symbolic link failed: %s"), strerror(symlink_errno)); } } } /* Return true if NAME is a directory. */ static bool itsdir(char const *name) { struct stat st; int res = stat(name, &st); #ifdef S_ISDIR if (res == 0) return S_ISDIR(st.st_mode) != 0; #endif if (res == 0 || errno == EOVERFLOW) { size_t n = strlen(name); char *nameslashdot = emalloc(n + 3); bool dir; memcpy(nameslashdot, name, n); strcpy(&nameslashdot[n], &"/."[! (n && name[n - 1] != '/')]); dir = stat(nameslashdot, &st) == 0 || errno == EOVERFLOW; free(nameslashdot); return dir; } return false; } /* Return true if NAME is a symbolic link. */ static bool itssymlink(char const *name) { char c; return 0 <= readlink(name, &c, 1); } /* ** Associate sets of rules with zones. */ /* ** Sort by rule name. */ static int rcomp(const void *cp1, const void *cp2) { return strcmp(((const struct rule *) cp1)->r_name, ((const struct rule *) cp2)->r_name); } static void associate(void) { register struct zone * zp; register struct rule * rp; register ptrdiff_t i, j, base, out; if (nrules != 0) { qsort(rules, nrules, sizeof *rules, rcomp); for (i = 0; i < nrules - 1; ++i) { if (strcmp(rules[i].r_name, rules[i + 1].r_name) != 0) continue; if (strcmp(rules[i].r_filename, rules[i + 1].r_filename) == 0) continue; eat(rules[i].r_filename, rules[i].r_linenum); warning(_("same rule name in multiple files")); eat(rules[i + 1].r_filename, rules[i + 1].r_linenum); warning(_("same rule name in multiple files")); for (j = i + 2; j < nrules; ++j) { if (strcmp(rules[i].r_name, rules[j].r_name) != 0) break; if (strcmp(rules[i].r_filename, rules[j].r_filename) == 0) continue; if (strcmp(rules[i + 1].r_filename, rules[j].r_filename) == 0) continue; break; } i = j - 1; } } for (i = 0; i < nzones; ++i) { zp = &zones[i]; zp->z_rules = NULL; zp->z_nrules = 0; } for (base = 0; base < nrules; base = out) { rp = &rules[base]; for (out = base + 1; out < nrules; ++out) if (strcmp(rp->r_name, rules[out].r_name) != 0) break; for (i = 0; i < nzones; ++i) { zp = &zones[i]; if (strcmp(zp->z_rule, rp->r_name) != 0) continue; zp->z_rules = rp; zp->z_nrules = out - base; } } for (i = 0; i < nzones; ++i) { zp = &zones[i]; if (zp->z_nrules == 0) { /* ** Maybe we have a local standard time offset. */ eat(zp->z_filename, zp->z_linenum); zp->z_save = getsave(zp->z_rule, &zp->z_isdst); /* ** Note, though, that if there's no rule, ** a '%s' in the format is a bad thing. */ if (zp->z_format_specifier == 's') error("%s", _("%s in ruleless zone")); } } if (errors) exit(EXIT_FAILURE); } static void infile(const char *name) { register FILE * fp; register char ** fields; register char * cp; register const struct lookup * lp; register int nfields; register bool wantcont; register lineno num; char buf[BUFSIZ]; if (strcmp(name, "-") == 0) { name = _("standard input"); fp = stdin; } else if ((fp = fopen(name, "r")) == NULL) { const char *e = strerror(errno); fprintf(stderr, _("%s: Can't open %s: %s\n"), progname, name, e); exit(EXIT_FAILURE); } wantcont = false; for (num = 1; ; ++num) { eat(name, num); if (fgets(buf, sizeof buf, fp) != buf) break; cp = strchr(buf, '\n'); if (cp == NULL) { error(_("line too long")); exit(EXIT_FAILURE); } *cp = '\0'; fields = getfields(buf); nfields = 0; while (fields[nfields] != NULL) { static char nada; if (strcmp(fields[nfields], "-") == 0) fields[nfields] = &nada; ++nfields; } if (nfields == 0) { /* nothing to do */ } else if (wantcont) { wantcont = inzcont(fields, nfields); } else { struct lookup const *line_codes = name == leapsec ? leap_line_codes : zi_line_codes; lp = byword(fields[0], line_codes); if (lp == NULL) error(_("input line of unknown type")); else switch (lp->l_value) { case LC_RULE: inrule(fields, nfields); wantcont = false; break; case LC_ZONE: wantcont = inzone(fields, nfields); break; case LC_LINK: inlink(fields, nfields); wantcont = false; break; case LC_LEAP: inleap(fields, nfields); wantcont = false; break; default: /* "cannot happen" */ fprintf(stderr, _("%s: panic: Invalid l_value %d\n"), progname, lp->l_value); exit(EXIT_FAILURE); } } free(fields); } close_file(fp, NULL, filename); if (wantcont) error(_("expected continuation line not found")); } /* ** Convert a string of one of the forms ** h -h hh:mm -hh:mm hh:mm:ss -hh:mm:ss ** into a number of seconds. ** A null string maps to zero. ** Call error with errstring and return zero on errors. */ static zic_t gethms(char const *string, char const *errstring) { zic_t hh; int sign, mm = 0, ss = 0; char hhx, mmx, ssx, xr = '0', xs; int tenths = 0; bool ok = true; if (string == NULL || *string == '\0') return 0; if (*string == '-') { sign = -1; ++string; } else sign = 1; switch (sscanf(string, "%"SCNdZIC"%c%d%c%d%c%1d%*[0]%c%*[0123456789]%c", &hh, &hhx, &mm, &mmx, &ss, &ssx, &tenths, &xr, &xs)) { default: ok = false; break; case 8: ok = '0' <= xr && xr <= '9'; /* fallthrough */ case 7: ok &= ssx == '.'; if (ok && noise) warning(_("fractional seconds rejected by" " pre-2018 versions of zic")); /* fallthrough */ case 5: ok &= mmx == ':'; /* fallthrough */ case 3: ok &= hhx == ':'; /* fallthrough */ case 1: break; } if (!ok) { error("%s", errstring); return 0; } if (hh < 0 || mm < 0 || mm >= MINSPERHOUR || ss < 0 || ss > SECSPERMIN) { error("%s", errstring); return 0; } if (ZIC_MAX / SECSPERHOUR < hh) { error(_("time overflow")); return 0; } ss += 5 + ((ss ^ 1) & (xr == '0')) <= tenths; /* Round to even. */ if (noise && (hh > HOURSPERDAY || (hh == HOURSPERDAY && (mm != 0 || ss != 0)))) warning(_("values over 24 hours not handled by pre-2007 versions of zic")); return oadd(sign * hh * SECSPERHOUR, sign * (mm * SECSPERMIN + ss)); } static zic_t getsave(char *field, bool *isdst) { int dst = -1; zic_t save; size_t fieldlen = strlen(field); if (fieldlen != 0) { char *ep = field + fieldlen - 1; switch (*ep) { case 'd': dst = 1; *ep = '\0'; break; case 's': dst = 0; *ep = '\0'; break; } } save = gethms(field, _("invalid saved time")); *isdst = dst < 0 ? save != 0 : dst; return save; } static void inrule(char **fields, int nfields) { static struct rule r; if (nfields != RULE_FIELDS) { error(_("wrong number of fields on Rule line")); return; } switch (*fields[RF_NAME]) { case '\0': case ' ': case '\f': case '\n': case '\r': case '\t': case '\v': case '+': case '-': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': error(_("Invalid rule name \"%s\""), fields[RF_NAME]); return; } r.r_filename = filename; r.r_linenum = linenum; r.r_save = getsave(fields[RF_SAVE], &r.r_isdst); rulesub(&r, fields[RF_LOYEAR], fields[RF_HIYEAR], fields[RF_COMMAND], fields[RF_MONTH], fields[RF_DAY], fields[RF_TOD]); r.r_name = ecpyalloc(fields[RF_NAME]); r.r_abbrvar = ecpyalloc(fields[RF_ABBRVAR]); if (max_abbrvar_len < strlen(r.r_abbrvar)) max_abbrvar_len = strlen(r.r_abbrvar); rules = growalloc(rules, sizeof *rules, nrules, &nrules_alloc); rules[nrules++] = r; } static bool inzone(char **fields, int nfields) { register ptrdiff_t i; if (nfields < ZONE_MINFIELDS || nfields > ZONE_MAXFIELDS) { error(_("wrong number of fields on Zone line")); return false; } if (lcltime != NULL && strcmp(fields[ZF_NAME], tzdefault) == 0) { error( _("\"Zone %s\" line and -l option are mutually exclusive"), tzdefault); return false; } if (strcmp(fields[ZF_NAME], TZDEFRULES) == 0 && psxrules != NULL) { error( _("\"Zone %s\" line and -p option are mutually exclusive"), TZDEFRULES); return false; } for (i = 0; i < nzones; ++i) if (zones[i].z_name != NULL && strcmp(zones[i].z_name, fields[ZF_NAME]) == 0) { error(_("duplicate zone name %s" " (file \"%s\", line %"PRIdMAX")"), fields[ZF_NAME], zones[i].z_filename, zones[i].z_linenum); return false; } return inzsub(fields, nfields, false); } static bool inzcont(char **fields, int nfields) { if (nfields < ZONEC_MINFIELDS || nfields > ZONEC_MAXFIELDS) { error(_("wrong number of fields on Zone continuation line")); return false; } return inzsub(fields, nfields, true); } static bool inzsub(char **fields, int nfields, bool iscont) { register char * cp; char * cp1; static struct zone z; register int i_stdoff, i_rule, i_format; register int i_untilyear, i_untilmonth; register int i_untilday, i_untiltime; register bool hasuntil; if (iscont) { i_stdoff = ZFC_STDOFF; i_rule = ZFC_RULE; i_format = ZFC_FORMAT; i_untilyear = ZFC_TILYEAR; i_untilmonth = ZFC_TILMONTH; i_untilday = ZFC_TILDAY; i_untiltime = ZFC_TILTIME; z.z_name = NULL; } else if (!namecheck(fields[ZF_NAME])) return false; else { i_stdoff = ZF_STDOFF; i_rule = ZF_RULE; i_format = ZF_FORMAT; i_untilyear = ZF_TILYEAR; i_untilmonth = ZF_TILMONTH; i_untilday = ZF_TILDAY; i_untiltime = ZF_TILTIME; z.z_name = ecpyalloc(fields[ZF_NAME]); } z.z_filename = filename; z.z_linenum = linenum; z.z_stdoff = gethms(fields[i_stdoff], _("invalid UT offset")); if ((cp = strchr(fields[i_format], '%')) != 0) { if ((*++cp != 's' && *cp != 'z') || strchr(cp, '%') || strchr(fields[i_format], '/')) { error(_("invalid abbreviation format")); return false; } } z.z_rule = ecpyalloc(fields[i_rule]); z.z_format = cp1 = ecpyalloc(fields[i_format]); z.z_format_specifier = cp ? *cp : '\0'; if (z.z_format_specifier == 'z') { if (noise) warning(_("format '%s' not handled by pre-2015 versions of zic"), z.z_format); cp1[cp - fields[i_format]] = 's'; } if (max_format_len < strlen(z.z_format)) max_format_len = strlen(z.z_format); hasuntil = nfields > i_untilyear; if (hasuntil) { z.z_untilrule.r_filename = filename; z.z_untilrule.r_linenum = linenum; rulesub(&z.z_untilrule, fields[i_untilyear], "only", "", (nfields > i_untilmonth) ? fields[i_untilmonth] : "Jan", (nfields > i_untilday) ? fields[i_untilday] : "1", (nfields > i_untiltime) ? fields[i_untiltime] : "0"); z.z_untiltime = rpytime(&z.z_untilrule, z.z_untilrule.r_loyear); if (iscont && nzones > 0 && z.z_untiltime > min_time && z.z_untiltime < max_time && zones[nzones - 1].z_untiltime > min_time && zones[nzones - 1].z_untiltime < max_time && zones[nzones - 1].z_untiltime >= z.z_untiltime) { error(_( "Zone continuation line end time is not after end time of previous line" )); return false; } } zones = growalloc(zones, sizeof *zones, nzones, &nzones_alloc); zones[nzones++] = z; /* ** If there was an UNTIL field on this line, ** there's more information about the zone on the next line. */ return hasuntil; } static void inleap(char **fields, int nfields) { register const char * cp; register const struct lookup * lp; register zic_t i, j; zic_t year; int month, day; zic_t dayoff, tod; zic_t t; char xs; if (nfields != LEAP_FIELDS) { error(_("wrong number of fields on Leap line")); return; } dayoff = 0; cp = fields[LP_YEAR]; if (sscanf(cp, "%"SCNdZIC"%c", &year, &xs) != 1) { /* ** Leapin' Lizards! */ error(_("invalid leaping year")); return; } if (!leapseen || leapmaxyear < year) leapmaxyear = year; if (!leapseen || leapminyear > year) leapminyear = year; leapseen = true; j = EPOCH_YEAR; while (j != year) { if (year > j) { i = len_years[isleap(j)]; ++j; } else { --j; i = -len_years[isleap(j)]; } dayoff = oadd(dayoff, i); } if ((lp = byword(fields[LP_MONTH], mon_names)) == NULL) { error(_("invalid month name")); return; } month = lp->l_value; j = TM_JANUARY; while (j != month) { i = len_months[isleap(year)][j]; dayoff = oadd(dayoff, i); ++j; } cp = fields[LP_DAY]; if (sscanf(cp, "%d%c", &day, &xs) != 1 || day <= 0 || day > len_months[isleap(year)][month]) { error(_("invalid day of month")); return; } dayoff = oadd(dayoff, day - 1); if (dayoff < min_time / SECSPERDAY) { error(_("time too small")); return; } if (dayoff > max_time / SECSPERDAY) { error(_("time too large")); return; } t = dayoff * SECSPERDAY; tod = gethms(fields[LP_TIME], _("invalid time of day")); cp = fields[LP_CORR]; { register bool positive; int count; if (strcmp(cp, "") == 0) { /* infile() turns "-" into "" */ positive = false; count = 1; } else if (strcmp(cp, "+") == 0) { positive = true; count = 1; } else { error(_("illegal CORRECTION field on Leap line")); return; } if ((lp = byword(fields[LP_ROLL], leap_types)) == NULL) { error(_( "illegal Rolling/Stationary field on Leap line" )); return; } t = tadd(t, tod); if (t < 0) { error(_("leap second precedes Epoch")); return; } leapadd(t, positive, lp->l_value, count); } } static void inlink(char **fields, int nfields) { struct link l; if (nfields != LINK_FIELDS) { error(_("wrong number of fields on Link line")); return; } if (*fields[LF_FROM] == '\0') { error(_("blank FROM field on Link line")); return; } if (! namecheck(fields[LF_TO])) return; l.l_filename = filename; l.l_linenum = linenum; l.l_from = ecpyalloc(fields[LF_FROM]); l.l_to = ecpyalloc(fields[LF_TO]); links = growalloc(links, sizeof *links, nlinks, &nlinks_alloc); links[nlinks++] = l; } static void rulesub(struct rule *rp, const char *loyearp, const char *hiyearp, const char *typep, const char *monthp, const char *dayp, const char *timep) { register const struct lookup * lp; register const char * cp; register char * dp; register char * ep; char xs; if ((lp = byword(monthp, mon_names)) == NULL) { error(_("invalid month name")); return; } rp->r_month = lp->l_value; rp->r_todisstd = false; rp->r_todisut = false; dp = ecpyalloc(timep); if (*dp != '\0') { ep = dp + strlen(dp) - 1; switch (lowerit(*ep)) { case 's': /* Standard */ rp->r_todisstd = true; rp->r_todisut = false; *ep = '\0'; break; case 'w': /* Wall */ rp->r_todisstd = false; rp->r_todisut = false; *ep = '\0'; break; case 'g': /* Greenwich */ case 'u': /* Universal */ case 'z': /* Zulu */ rp->r_todisstd = true; rp->r_todisut = true; *ep = '\0'; break; } } rp->r_tod = gethms(dp, _("invalid time of day")); free(dp); /* ** Year work. */ cp = loyearp; lp = byword(cp, begin_years); rp->r_lowasnum = lp == NULL; if (!rp->r_lowasnum) switch (lp->l_value) { case YR_MINIMUM: rp->r_loyear = ZIC_MIN; break; case YR_MAXIMUM: rp->r_loyear = ZIC_MAX; break; default: /* "cannot happen" */ fprintf(stderr, _("%s: panic: Invalid l_value %d\n"), progname, lp->l_value); exit(EXIT_FAILURE); } else if (sscanf(cp, "%"SCNdZIC"%c", &rp->r_loyear, &xs) != 1) { error(_("invalid starting year")); return; } cp = hiyearp; lp = byword(cp, end_years); rp->r_hiwasnum = lp == NULL; if (!rp->r_hiwasnum) switch (lp->l_value) { case YR_MINIMUM: rp->r_hiyear = ZIC_MIN; break; case YR_MAXIMUM: rp->r_hiyear = ZIC_MAX; break; case YR_ONLY: rp->r_hiyear = rp->r_loyear; break; default: /* "cannot happen" */ fprintf(stderr, _("%s: panic: Invalid l_value %d\n"), progname, lp->l_value); exit(EXIT_FAILURE); } else if (sscanf(cp, "%"SCNdZIC"%c", &rp->r_hiyear, &xs) != 1) { error(_("invalid ending year")); return; } if (rp->r_loyear > rp->r_hiyear) { error(_("starting year greater than ending year")); return; } if (*typep == '\0') rp->r_yrtype = NULL; else { if (rp->r_loyear == rp->r_hiyear) { error(_("typed single year")); return; } warning(_("year type \"%s\" is obsolete; use \"-\" instead"), typep); rp->r_yrtype = ecpyalloc(typep); } /* ** Day work. ** Accept things such as: ** 1 ** lastSunday ** last-Sunday (undocumented; warn about this) ** Sun<=20 ** Sun>=7 */ dp = ecpyalloc(dayp); if ((lp = byword(dp, lasts)) != NULL) { rp->r_dycode = DC_DOWLEQ; rp->r_wday = lp->l_value; rp->r_dayofmonth = len_months[1][rp->r_month]; } else { if ((ep = strchr(dp, '<')) != 0) rp->r_dycode = DC_DOWLEQ; else if ((ep = strchr(dp, '>')) != 0) rp->r_dycode = DC_DOWGEQ; else { ep = dp; rp->r_dycode = DC_DOM; } if (rp->r_dycode != DC_DOM) { *ep++ = 0; if (*ep++ != '=') { error(_("invalid day of month")); free(dp); return; } if ((lp = byword(dp, wday_names)) == NULL) { error(_("invalid weekday name")); free(dp); return; } rp->r_wday = lp->l_value; } if (sscanf(ep, "%d%c", &rp->r_dayofmonth, &xs) != 1 || rp->r_dayofmonth <= 0 || (rp->r_dayofmonth > len_months[1][rp->r_month])) { error(_("invalid day of month")); free(dp); return; } } free(dp); } static void convert(const int_fast32_t val, char *const buf) { register int i; register int shift; unsigned char *const b = (unsigned char *) buf; for (i = 0, shift = 24; i < 4; ++i, shift -= 8) b[i] = val >> shift; } static void convert64(const zic_t val, char *const buf) { register int i; register int shift; unsigned char *const b = (unsigned char *) buf; for (i = 0, shift = 56; i < 8; ++i, shift -= 8) b[i] = val >> shift; } static void puttzcode(const int_fast32_t val, FILE *const fp) { char buf[4]; convert(val, buf); fwrite(buf, sizeof buf, 1, fp); } static void puttzcodepass(zic_t val, FILE *fp, int pass) { if (pass == 1) puttzcode(val, fp); else { char buf[8]; convert64(val, buf); fwrite(buf, sizeof buf, 1, fp); } } static int atcomp(const void *avp, const void *bvp) { const zic_t a = ((const struct attype *) avp)->at; const zic_t b = ((const struct attype *) bvp)->at; return (a < b) ? -1 : (a > b); } struct timerange { int defaulttype; ptrdiff_t base, count; int leapbase, leapcount; }; static struct timerange limitrange(struct timerange r, zic_t lo, zic_t hi, zic_t const *ats, unsigned char const *types) { while (0 < r.count && ats[r.base] < lo) { r.defaulttype = types[r.base]; r.count--; r.base++; } while (0 < r.leapcount && trans[r.leapbase] < lo) { r.leapcount--; r.leapbase++; } if (hi < ZIC_MAX) { while (0 < r.count && hi + 1 < ats[r.base + r.count - 1]) r.count--; while (0 < r.leapcount && hi + 1 < trans[r.leapbase + r.leapcount - 1]) r.leapcount--; } return r; } static void writezone(const char *const name, const char *const string, char version, int defaulttype) { register FILE * fp; register ptrdiff_t i, j; register int pass; static const struct tzhead tzh0; static struct tzhead tzh; bool dir_checked = false; zic_t one = 1; zic_t y2038_boundary = one << 31; ptrdiff_t nats = timecnt + WORK_AROUND_QTBUG_53071; /* Allocate the ATS and TYPES arrays via a single malloc, as this is a bit faster. */ zic_t *ats = emalloc(align_to(size_product(nats, sizeof *ats + 1), _Alignof(zic_t))); void *typesptr = ats + nats; unsigned char *types = typesptr; struct timerange rangeall, range32, range64; /* ** Sort. */ if (timecnt > 1) qsort(attypes, timecnt, sizeof *attypes, atcomp); /* ** Optimize. */ { ptrdiff_t fromi, toi; toi = 0; fromi = 0; for ( ; fromi < timecnt; ++fromi) { if (toi != 0 && ((attypes[fromi].at + utoffs[attypes[toi - 1].type]) <= (attypes[toi - 1].at + utoffs[toi == 1 ? 0 : attypes[toi - 2].type]))) { attypes[toi - 1].type = attypes[fromi].type; continue; } if (toi == 0 || attypes[fromi].dontmerge || (utoffs[attypes[toi - 1].type] != utoffs[attypes[fromi].type]) || (isdsts[attypes[toi - 1].type] != isdsts[attypes[fromi].type]) || (desigidx[attypes[toi - 1].type] != desigidx[attypes[fromi].type])) attypes[toi++] = attypes[fromi]; } timecnt = toi; } if (noise && timecnt > 1200) { if (timecnt > TZ_MAX_TIMES) warning(_("reference clients mishandle" " more than %d transition times"), TZ_MAX_TIMES); else warning(_("pre-2014 clients may mishandle" " more than 1200 transition times")); } /* ** Transfer. */ for (i = 0; i < timecnt; ++i) { ats[i] = attypes[i].at; types[i] = attypes[i].type; } /* ** Correct for leap seconds. */ for (i = 0; i < timecnt; ++i) { j = leapcnt; while (--j >= 0) if (ats[i] > trans[j] - corr[j]) { ats[i] = tadd(ats[i], corr[j]); break; } } /* Work around QTBUG-53071 for timestamps less than y2038_boundary - 1, by inserting a no-op transition at time y2038_boundary - 1. This works only for timestamps before the boundary, which should be good enough in practice as QTBUG-53071 should be long-dead by 2038. Do this after correcting for leap seconds, as the idea is to insert a transition just before 32-bit time_t rolls around, and this occurs at a slightly different moment if transitions are leap-second corrected. */ if (WORK_AROUND_QTBUG_53071 && timecnt != 0 && want_bloat() && ats[timecnt - 1] < y2038_boundary - 1 && strchr(string, '<')) { ats[timecnt] = y2038_boundary - 1; types[timecnt] = types[timecnt - 1]; timecnt++; } rangeall.defaulttype = defaulttype; rangeall.base = rangeall.leapbase = 0; rangeall.count = timecnt; rangeall.leapcount = leapcnt; range64 = limitrange(rangeall, lo_time, hi_time, ats, types); range32 = limitrange(range64, INT32_MIN, INT32_MAX, ats, types); /* ** Remove old file, if any, to snap links. */ if (remove(name) == 0) dir_checked = true; else if (errno != ENOENT) { const char *e = strerror(errno); fprintf(stderr, _("%s: Can't remove %s/%s: %s\n"), progname, directory, name, e); exit(EXIT_FAILURE); } fp = fopen(name, "wb"); if (!fp) { int fopen_errno = errno; if (fopen_errno == ENOENT && !dir_checked) { mkdirs(name, true); fp = fopen(name, "wb"); fopen_errno = errno; } if (!fp) { fprintf(stderr, _("%s: Can't create %s/%s: %s\n"), progname, directory, name, strerror(fopen_errno)); exit(EXIT_FAILURE); } } for (pass = 1; pass <= 2; ++pass) { register ptrdiff_t thistimei, thistimecnt, thistimelim; register int thisleapi, thisleapcnt, thisleaplim; int currenttype, thisdefaulttype; bool locut, hicut; zic_t lo; int old0; char omittype[TZ_MAX_TYPES]; int typemap[TZ_MAX_TYPES]; int thistypecnt, stdcnt, utcnt; char thischars[TZ_MAX_CHARS]; int thischarcnt; bool toomanytimes; int indmap[TZ_MAX_CHARS]; if (pass == 1) { /* Arguably the default time type in the 32-bit data should be range32.defaulttype, which is suited for timestamps just before INT32_MIN. However, zic traditionally used the time type of the indefinite past instead. Internet RFC 8532 says readers should ignore 32-bit data, so this discrepancy matters only to obsolete readers where the traditional type might be more appropriate even if it's "wrong". So, use the historical zic value, unless -r specifies a low cutoff that excludes some 32-bit timestamps. */ thisdefaulttype = (lo_time <= INT32_MIN ? range64.defaulttype : range32.defaulttype); thistimei = range32.base; thistimecnt = range32.count; toomanytimes = thistimecnt >> 31 >> 1 != 0; thisleapi = range32.leapbase; thisleapcnt = range32.leapcount; locut = INT32_MIN < lo_time; hicut = hi_time < INT32_MAX; } else { thisdefaulttype = range64.defaulttype; thistimei = range64.base; thistimecnt = range64.count; toomanytimes = thistimecnt >> 31 >> 31 >> 2 != 0; thisleapi = range64.leapbase; thisleapcnt = range64.leapcount; locut = min_time < lo_time; hicut = hi_time < max_time; } if (toomanytimes) error(_("too many transition times")); /* Keep the last too-low transition if no transition is exactly at LO. The kept transition will be output as a LO "transition"; see "Output a LO_TIME transition" below. This is needed when the output is truncated at the start, and is also useful when catering to buggy 32-bit clients that do not use time type 0 for timestamps before the first transition. */ if (0 < thistimei && ats[thistimei] != lo_time) { thistimei--; thistimecnt++; locut = false; } thistimelim = thistimei + thistimecnt; thisleaplim = thisleapi + thisleapcnt; if (thistimecnt != 0) { if (ats[thistimei] == lo_time) locut = false; if (hi_time < ZIC_MAX && ats[thistimelim - 1] == hi_time + 1) hicut = false; } memset(omittype, true, typecnt); omittype[thisdefaulttype] = false; for (i = thistimei; i < thistimelim; i++) omittype[types[i]] = false; /* Reorder types to make THISDEFAULTTYPE type 0. Use TYPEMAP to swap OLD0 and THISDEFAULTTYPE so that THISDEFAULTTYPE appears as type 0 in the output instead of OLD0. TYPEMAP also omits unused types. */ old0 = strlen(omittype); #ifndef LEAVE_SOME_PRE_2011_SYSTEMS_IN_THE_LURCH /* ** For some pre-2011 systems: if the last-to-be-written ** standard (or daylight) type has an offset different from the ** most recently used offset, ** append an (unused) copy of the most recently used type ** (to help get global "altzone" and "timezone" variables ** set correctly). */ if (want_bloat()) { register int mrudst, mrustd, hidst, histd, type; hidst = histd = mrudst = mrustd = -1; for (i = thistimei; i < thistimelim; ++i) if (isdsts[types[i]]) mrudst = types[i]; else mrustd = types[i]; for (i = old0; i < typecnt; i++) { int h = (i == old0 ? thisdefaulttype : i == thisdefaulttype ? old0 : i); if (!omittype[h]) { if (isdsts[h]) hidst = i; else histd = i; } } if (hidst >= 0 && mrudst >= 0 && hidst != mrudst && utoffs[hidst] != utoffs[mrudst]) { isdsts[mrudst] = -1; type = addtype(utoffs[mrudst], &chars[desigidx[mrudst]], true, ttisstds[mrudst], ttisuts[mrudst]); isdsts[mrudst] = 1; omittype[type] = false; } if (histd >= 0 && mrustd >= 0 && histd != mrustd && utoffs[histd] != utoffs[mrustd]) { isdsts[mrustd] = -1; type = addtype(utoffs[mrustd], &chars[desigidx[mrustd]], false, ttisstds[mrustd], ttisuts[mrustd]); isdsts[mrustd] = 0; omittype[type] = false; } } #endif /* !defined LEAVE_SOME_PRE_2011_SYSTEMS_IN_THE_LURCH */ thistypecnt = 0; for (i = old0; i < typecnt; i++) if (!omittype[i]) typemap[i == old0 ? thisdefaulttype : i == thisdefaulttype ? old0 : i] = thistypecnt++; for (i = 0; i < sizeof indmap / sizeof indmap[0]; ++i) indmap[i] = -1; thischarcnt = stdcnt = utcnt = 0; for (i = old0; i < typecnt; i++) { register char * thisabbr; if (omittype[i]) continue; if (ttisstds[i]) stdcnt = thistypecnt; if (ttisuts[i]) utcnt = thistypecnt; if (indmap[desigidx[i]] >= 0) continue; thisabbr = &chars[desigidx[i]]; for (j = 0; j < thischarcnt; ++j) if (strcmp(&thischars[j], thisabbr) == 0) break; if (j == thischarcnt) { strcpy(&thischars[thischarcnt], thisabbr); thischarcnt += strlen(thisabbr) + 1; } indmap[desigidx[i]] = j; } if (pass == 1 && !want_bloat()) { utcnt = stdcnt = thisleapcnt = 0; thistimecnt = - (locut + hicut); thistypecnt = thischarcnt = 1; thistimelim = thistimei; } #define DO(field) fwrite(tzh.field, sizeof tzh.field, 1, fp) tzh = tzh0; memcpy(tzh.tzh_magic, TZ_MAGIC, sizeof tzh.tzh_magic); tzh.tzh_version[0] = version; convert(utcnt, tzh.tzh_ttisutcnt); convert(stdcnt, tzh.tzh_ttisstdcnt); convert(thisleapcnt, tzh.tzh_leapcnt); convert(locut + thistimecnt + hicut, tzh.tzh_timecnt); convert(thistypecnt, tzh.tzh_typecnt); convert(thischarcnt, tzh.tzh_charcnt); DO(tzh_magic); DO(tzh_version); DO(tzh_reserved); DO(tzh_ttisutcnt); DO(tzh_ttisstdcnt); DO(tzh_leapcnt); DO(tzh_timecnt); DO(tzh_typecnt); DO(tzh_charcnt); #undef DO if (pass == 1 && !want_bloat()) { /* Output a minimal data block with just one time type. */ puttzcode(0, fp); /* utoff */ putc(0, fp); /* dst */ putc(0, fp); /* index of abbreviation */ putc(0, fp); /* empty-string abbreviation */ continue; } /* Output a LO_TIME transition if needed; see limitrange. But do not go below the minimum representable value for this pass. */ lo = pass == 1 && lo_time < INT32_MIN ? INT32_MIN : lo_time; if (locut) puttzcodepass(lo, fp, pass); for (i = thistimei; i < thistimelim; ++i) { zic_t at = ats[i] < lo ? lo : ats[i]; puttzcodepass(at, fp, pass); } if (hicut) puttzcodepass(hi_time + 1, fp, pass); currenttype = 0; if (locut) putc(currenttype, fp); for (i = thistimei; i < thistimelim; ++i) { currenttype = typemap[types[i]]; putc(currenttype, fp); } if (hicut) putc(currenttype, fp); for (i = old0; i < typecnt; i++) { int h = (i == old0 ? thisdefaulttype : i == thisdefaulttype ? old0 : i); if (!omittype[h]) { puttzcode(utoffs[h], fp); putc(isdsts[h], fp); putc(indmap[desigidx[h]], fp); } } if (thischarcnt != 0) fwrite(thischars, sizeof thischars[0], thischarcnt, fp); for (i = thisleapi; i < thisleaplim; ++i) { register zic_t todo; if (roll[i]) { if (timecnt == 0 || trans[i] < ats[0]) { j = 0; while (isdsts[j]) if (++j >= typecnt) { j = 0; break; } } else { j = 1; while (j < timecnt && trans[i] >= ats[j]) ++j; j = types[j - 1]; } todo = tadd(trans[i], -utoffs[j]); } else todo = trans[i]; puttzcodepass(todo, fp, pass); puttzcode(corr[i], fp); } if (stdcnt != 0) for (i = old0; i < typecnt; i++) if (!omittype[i]) putc(ttisstds[i], fp); if (utcnt != 0) for (i = old0; i < typecnt; i++) if (!omittype[i]) putc(ttisuts[i], fp); } fprintf(fp, "\n%s\n", string); close_file(fp, directory, name); free(ats); } static char const * abbroffset(char *buf, zic_t offset) { char sign = '+'; int seconds, minutes; if (offset < 0) { offset = -offset; sign = '-'; } seconds = offset % SECSPERMIN; offset /= SECSPERMIN; minutes = offset % MINSPERHOUR; offset /= MINSPERHOUR; if (100 <= offset) { error(_("%%z UT offset magnitude exceeds 99:59:59")); return "%z"; } else { char *p = buf; *p++ = sign; *p++ = '0' + offset / 10; *p++ = '0' + offset % 10; if (minutes | seconds) { *p++ = '0' + minutes / 10; *p++ = '0' + minutes % 10; if (seconds) { *p++ = '0' + seconds / 10; *p++ = '0' + seconds % 10; } } *p = '\0'; return buf; } } static size_t doabbr(char *abbr, struct zone const *zp, char const *letters, bool isdst, zic_t save, bool doquotes) { register char * cp; register char * slashp; register size_t len; char const *format = zp->z_format; slashp = strchr(format, '/'); if (slashp == NULL) { char letterbuf[PERCENT_Z_LEN_BOUND + 1]; if (zp->z_format_specifier == 'z') letters = abbroffset(letterbuf, zp->z_stdoff + save); else if (!letters) letters = "%s"; sprintf(abbr, format, letters); } else if (isdst) { strcpy(abbr, slashp + 1); } else { memcpy(abbr, format, slashp - format); abbr[slashp - format] = '\0'; } len = strlen(abbr); if (!doquotes) return len; for (cp = abbr; is_alpha(*cp); cp++) continue; if (len > 0 && *cp == '\0') return len; abbr[len + 2] = '\0'; abbr[len + 1] = '>'; memmove(abbr + 1, abbr, len); abbr[0] = '<'; return len + 2; } static void updateminmax(const zic_t x) { if (min_year > x) min_year = x; if (max_year < x) max_year = x; } static int stringoffset(char *result, zic_t offset) { register int hours; register int minutes; register int seconds; bool negative = offset < 0; int len = negative; if (negative) { offset = -offset; result[0] = '-'; } seconds = offset % SECSPERMIN; offset /= SECSPERMIN; minutes = offset % MINSPERHOUR; offset /= MINSPERHOUR; hours = offset; if (hours >= HOURSPERDAY * DAYSPERWEEK) { result[0] = '\0'; return 0; } len += sprintf(result + len, "%d", hours); if (minutes != 0 || seconds != 0) { len += sprintf(result + len, ":%02d", minutes); if (seconds != 0) len += sprintf(result + len, ":%02d", seconds); } return len; } static int stringrule(char *result, struct rule *const rp, zic_t save, zic_t stdoff) { register zic_t tod = rp->r_tod; register int compat = 0; if (rp->r_dycode == DC_DOM) { register int month, total; if (rp->r_dayofmonth == 29 && rp->r_month == TM_FEBRUARY) return -1; total = 0; for (month = 0; month < rp->r_month; ++month) total += len_months[0][month]; /* Omit the "J" in Jan and Feb, as that's shorter. */ if (rp->r_month <= 1) result += sprintf(result, "%d", total + rp->r_dayofmonth - 1); else result += sprintf(result, "J%d", total + rp->r_dayofmonth); } else { register int week; register int wday = rp->r_wday; register int wdayoff; if (rp->r_dycode == DC_DOWGEQ) { wdayoff = (rp->r_dayofmonth - 1) % DAYSPERWEEK; if (wdayoff) compat = 2013; wday -= wdayoff; tod += wdayoff * SECSPERDAY; week = 1 + (rp->r_dayofmonth - 1) / DAYSPERWEEK; } else if (rp->r_dycode == DC_DOWLEQ) { if (rp->r_dayofmonth == len_months[1][rp->r_month]) week = 5; else { wdayoff = rp->r_dayofmonth % DAYSPERWEEK; if (wdayoff) compat = 2013; wday -= wdayoff; tod += wdayoff * SECSPERDAY; week = rp->r_dayofmonth / DAYSPERWEEK; } } else return -1; /* "cannot happen" */ if (wday < 0) wday += DAYSPERWEEK; result += sprintf(result, "M%d.%d.%d", rp->r_month + 1, week, wday); } if (rp->r_todisut) tod += stdoff; if (rp->r_todisstd && !rp->r_isdst) tod += save; if (tod != 2 * SECSPERMIN * MINSPERHOUR) { *result++ = '/'; if (! stringoffset(result, tod)) return -1; if (tod < 0) { if (compat < 2013) compat = 2013; } else if (SECSPERDAY <= tod) { if (compat < 1994) compat = 1994; } } return compat; } static int rule_cmp(struct rule const *a, struct rule const *b) { if (!a) return -!!b; if (!b) return 1; if (a->r_hiyear != b->r_hiyear) return a->r_hiyear < b->r_hiyear ? -1 : 1; if (a->r_month - b->r_month != 0) return a->r_month - b->r_month; return a->r_dayofmonth - b->r_dayofmonth; } static int stringzone(char *result, struct zone const *zpfirst, ptrdiff_t zonecount) { register const struct zone * zp; register struct rule * rp; register struct rule * stdrp; register struct rule * dstrp; register ptrdiff_t i; register const char * abbrvar; register int compat = 0; register int c; size_t len; int offsetlen; struct rule stdr, dstr; result[0] = '\0'; /* Internet RFC 8536 section 5.1 says to use an empty TZ string if future timestamps are truncated. */ if (hi_time < max_time) return -1; zp = zpfirst + zonecount - 1; stdrp = dstrp = NULL; for (i = 0; i < zp->z_nrules; ++i) { rp = &zp->z_rules[i]; if (rp->r_hiwasnum || rp->r_hiyear != ZIC_MAX) continue; if (rp->r_yrtype != NULL) continue; if (!rp->r_isdst) { if (stdrp == NULL) stdrp = rp; else return -1; } else { if (dstrp == NULL) dstrp = rp; else return -1; } } if (stdrp == NULL && dstrp == NULL) { /* ** There are no rules running through "max". ** Find the latest std rule in stdabbrrp ** and latest rule of any type in stdrp. */ register struct rule *stdabbrrp = NULL; for (i = 0; i < zp->z_nrules; ++i) { rp = &zp->z_rules[i]; if (!rp->r_isdst && rule_cmp(stdabbrrp, rp) < 0) stdabbrrp = rp; if (rule_cmp(stdrp, rp) < 0) stdrp = rp; } if (stdrp != NULL && stdrp->r_isdst) { /* Perpetual DST. */ dstr.r_month = TM_JANUARY; dstr.r_dycode = DC_DOM; dstr.r_dayofmonth = 1; dstr.r_tod = 0; dstr.r_todisstd = dstr.r_todisut = false; dstr.r_isdst = stdrp->r_isdst; dstr.r_save = stdrp->r_save; dstr.r_abbrvar = stdrp->r_abbrvar; stdr.r_month = TM_DECEMBER; stdr.r_dycode = DC_DOM; stdr.r_dayofmonth = 31; stdr.r_tod = SECSPERDAY + stdrp->r_save; stdr.r_todisstd = stdr.r_todisut = false; stdr.r_isdst = false; stdr.r_save = 0; stdr.r_abbrvar = (stdabbrrp ? stdabbrrp->r_abbrvar : ""); dstrp = &dstr; stdrp = &stdr; } } if (stdrp == NULL && (zp->z_nrules != 0 || zp->z_isdst)) return -1; abbrvar = (stdrp == NULL) ? "" : stdrp->r_abbrvar; len = doabbr(result, zp, abbrvar, false, 0, true); offsetlen = stringoffset(result + len, - zp->z_stdoff); if (! offsetlen) { result[0] = '\0'; return -1; } len += offsetlen; if (dstrp == NULL) return compat; len += doabbr(result + len, zp, dstrp->r_abbrvar, dstrp->r_isdst, dstrp->r_save, true); if (dstrp->r_save != SECSPERMIN * MINSPERHOUR) { offsetlen = stringoffset(result + len, - (zp->z_stdoff + dstrp->r_save)); if (! offsetlen) { result[0] = '\0'; return -1; } len += offsetlen; } result[len++] = ','; c = stringrule(result + len, dstrp, dstrp->r_save, zp->z_stdoff); if (c < 0) { result[0] = '\0'; return -1; } if (compat < c) compat = c; len += strlen(result + len); result[len++] = ','; c = stringrule(result + len, stdrp, dstrp->r_save, zp->z_stdoff); if (c < 0) { result[0] = '\0'; return -1; } if (compat < c) compat = c; return compat; } static void outzone(const struct zone *zpfirst, ptrdiff_t zonecount) { register const struct zone * zp; register struct rule * rp; register ptrdiff_t i, j; register bool usestart, useuntil; register zic_t starttime, untiltime; register zic_t stdoff; register zic_t save; register zic_t year; register zic_t startoff; register bool startttisstd; register bool startttisut; register int type; register char * startbuf; register char * ab; register char * envvar; register int max_abbr_len; register int max_envvar_len; register bool prodstic; /* all rules are min to max */ register int compat; register bool do_extend; register char version; ptrdiff_t lastatmax = -1; zic_t one = 1; zic_t y2038_boundary = one << 31; zic_t max_year0; int defaulttype = -1; max_abbr_len = 2 + max_format_len + max_abbrvar_len; max_envvar_len = 2 * max_abbr_len + 5 * 9; startbuf = emalloc(max_abbr_len + 1); ab = emalloc(max_abbr_len + 1); envvar = emalloc(max_envvar_len + 1); INITIALIZE(untiltime); INITIALIZE(starttime); /* ** Now. . .finally. . .generate some useful data! */ timecnt = 0; typecnt = 0; charcnt = 0; prodstic = zonecount == 1; /* ** Thanks to Earl Chew ** for noting the need to unconditionally initialize startttisstd. */ startttisstd = false; startttisut = false; min_year = max_year = EPOCH_YEAR; if (leapseen) { updateminmax(leapminyear); updateminmax(leapmaxyear + (leapmaxyear < ZIC_MAX)); } for (i = 0; i < zonecount; ++i) { zp = &zpfirst[i]; if (i < zonecount - 1) updateminmax(zp->z_untilrule.r_loyear); for (j = 0; j < zp->z_nrules; ++j) { rp = &zp->z_rules[j]; if (rp->r_lowasnum) updateminmax(rp->r_loyear); if (rp->r_hiwasnum) updateminmax(rp->r_hiyear); if (rp->r_lowasnum || rp->r_hiwasnum) prodstic = false; } } /* ** Generate lots of data if a rule can't cover all future times. */ compat = stringzone(envvar, zpfirst, zonecount); version = compat < 2013 ? ZIC_VERSION_PRE_2013 : ZIC_VERSION; do_extend = compat < 0; if (noise) { if (!*envvar) warning("%s %s", _("no POSIX environment variable for zone"), zpfirst->z_name); else if (compat != 0) { /* Circa-COMPAT clients, and earlier clients, might not work for this zone when given dates before 1970 or after 2038. */ warning(_("%s: pre-%d clients may mishandle" " distant timestamps"), zpfirst->z_name, compat); } } if (do_extend) { /* ** Search through a couple of extra years past the obvious ** 400, to avoid edge cases. For example, suppose a non-POSIX ** rule applies from 2012 onwards and has transitions in March ** and September, plus some one-off transitions in November ** 2013. If zic looked only at the last 400 years, it would ** set max_year=2413, with the intent that the 400 years 2014 ** through 2413 will be repeated. The last transition listed ** in the tzfile would be in 2413-09, less than 400 years ** after the last one-off transition in 2013-11. Two years ** might be overkill, but with the kind of edge cases ** available we're not sure that one year would suffice. */ enum { years_of_observations = YEARSPERREPEAT + 2 }; if (min_year >= ZIC_MIN + years_of_observations) min_year -= years_of_observations; else min_year = ZIC_MIN; if (max_year <= ZIC_MAX - years_of_observations) max_year += years_of_observations; else max_year = ZIC_MAX; /* ** Regardless of any of the above, ** for a "proDSTic" zone which specifies that its rules ** always have and always will be in effect, ** we only need one cycle to define the zone. */ if (prodstic) { min_year = 1900; max_year = min_year + years_of_observations; } } max_year0 = max_year; if (want_bloat()) { /* For the benefit of older systems, generate data from 1900 through 2038. */ if (min_year > 1900) min_year = 1900; if (max_year < 2038) max_year = 2038; } for (i = 0; i < zonecount; ++i) { struct rule *prevrp = NULL; /* ** A guess that may well be corrected later. */ save = 0; zp = &zpfirst[i]; usestart = i > 0 && (zp - 1)->z_untiltime > min_time; useuntil = i < (zonecount - 1); if (useuntil && zp->z_untiltime <= min_time) continue; stdoff = zp->z_stdoff; eat(zp->z_filename, zp->z_linenum); *startbuf = '\0'; startoff = zp->z_stdoff; if (zp->z_nrules == 0) { save = zp->z_save; doabbr(startbuf, zp, NULL, zp->z_isdst, save, false); type = addtype(oadd(zp->z_stdoff, save), startbuf, zp->z_isdst, startttisstd, startttisut); if (usestart) { addtt(starttime, type); usestart = false; } else defaulttype = type; } else for (year = min_year; year <= max_year; ++year) { if (useuntil && year > zp->z_untilrule.r_hiyear) break; /* ** Mark which rules to do in the current year. ** For those to do, calculate rpytime(rp, year); */ for (j = 0; j < zp->z_nrules; ++j) { rp = &zp->z_rules[j]; eats(zp->z_filename, zp->z_linenum, rp->r_filename, rp->r_linenum); rp->r_todo = year >= rp->r_loyear && year <= rp->r_hiyear && yearistype(year, rp->r_yrtype); if (rp->r_todo) { rp->r_temp = rpytime(rp, year); rp->r_todo = (rp->r_temp < y2038_boundary || year <= max_year0); } } for ( ; ; ) { register ptrdiff_t k; register zic_t jtime, ktime; register zic_t offset; INITIALIZE(ktime); if (useuntil) { /* ** Turn untiltime into UT ** assuming the current stdoff and ** save values. */ untiltime = zp->z_untiltime; if (!zp->z_untilrule.r_todisut) untiltime = tadd(untiltime, -stdoff); if (!zp->z_untilrule.r_todisstd) untiltime = tadd(untiltime, -save); } /* ** Find the rule (of those to do, if any) ** that takes effect earliest in the year. */ k = -1; for (j = 0; j < zp->z_nrules; ++j) { rp = &zp->z_rules[j]; if (!rp->r_todo) continue; eats(zp->z_filename, zp->z_linenum, rp->r_filename, rp->r_linenum); offset = rp->r_todisut ? 0 : stdoff; if (!rp->r_todisstd) offset = oadd(offset, save); jtime = rp->r_temp; if (jtime == min_time || jtime == max_time) continue; jtime = tadd(jtime, -offset); if (k < 0 || jtime < ktime) { k = j; ktime = jtime; } else if (jtime == ktime) { char const *dup_rules_msg = _("two rules for same instant"); eats(zp->z_filename, zp->z_linenum, rp->r_filename, rp->r_linenum); warning("%s", dup_rules_msg); rp = &zp->z_rules[k]; eats(zp->z_filename, zp->z_linenum, rp->r_filename, rp->r_linenum); error("%s", dup_rules_msg); } } if (k < 0) break; /* go on to next year */ rp = &zp->z_rules[k]; rp->r_todo = false; if (useuntil && ktime >= untiltime) break; save = rp->r_save; if (usestart && ktime == starttime) usestart = false; if (usestart) { if (ktime < starttime) { startoff = oadd(zp->z_stdoff, save); doabbr(startbuf, zp, rp->r_abbrvar, rp->r_isdst, rp->r_save, false); continue; } if (*startbuf == '\0' && startoff == oadd(zp->z_stdoff, save)) { doabbr(startbuf, zp, rp->r_abbrvar, rp->r_isdst, rp->r_save, false); } } eats(zp->z_filename, zp->z_linenum, rp->r_filename, rp->r_linenum); doabbr(ab, zp, rp->r_abbrvar, rp->r_isdst, rp->r_save, false); offset = oadd(zp->z_stdoff, rp->r_save); if (!want_bloat() && !useuntil && !do_extend && prevrp && rp->r_hiyear == ZIC_MAX && prevrp->r_hiyear == ZIC_MAX) break; type = addtype(offset, ab, rp->r_isdst, rp->r_todisstd, rp->r_todisut); if (defaulttype < 0 && !rp->r_isdst) defaulttype = type; if (rp->r_hiyear == ZIC_MAX && ! (0 <= lastatmax && ktime < attypes[lastatmax].at)) lastatmax = timecnt; addtt(ktime, type); prevrp = rp; } } if (usestart) { if (*startbuf == '\0' && zp->z_format != NULL && strchr(zp->z_format, '%') == NULL && strchr(zp->z_format, '/') == NULL) strcpy(startbuf, zp->z_format); eat(zp->z_filename, zp->z_linenum); if (*startbuf == '\0') error(_("can't determine time zone abbreviation to use just after until time")); else { bool isdst = startoff != zp->z_stdoff; type = addtype(startoff, startbuf, isdst, startttisstd, startttisut); if (defaulttype < 0 && !isdst) defaulttype = type; addtt(starttime, type); } } /* ** Now we may get to set starttime for the next zone line. */ if (useuntil) { startttisstd = zp->z_untilrule.r_todisstd; startttisut = zp->z_untilrule.r_todisut; starttime = zp->z_untiltime; if (!startttisstd) starttime = tadd(starttime, -save); if (!startttisut) starttime = tadd(starttime, -stdoff); } } if (defaulttype < 0) defaulttype = 0; if (0 <= lastatmax) attypes[lastatmax].dontmerge = true; if (do_extend) { /* ** If we're extending the explicitly listed observations ** for 400 years because we can't fill the POSIX-TZ field, ** check whether we actually ended up explicitly listing ** observations through that period. If there aren't any ** near the end of the 400-year period, add a redundant ** one at the end of the final year, to make it clear ** that we are claiming to have definite knowledge of ** the lack of transitions up to that point. */ struct rule xr; struct attype *lastat; xr.r_month = TM_JANUARY; xr.r_dycode = DC_DOM; xr.r_dayofmonth = 1; xr.r_tod = 0; for (lastat = attypes, i = 1; i < timecnt; i++) if (attypes[i].at > lastat->at) lastat = &attypes[i]; if (!lastat || lastat->at < rpytime(&xr, max_year - 1)) { addtt(rpytime(&xr, max_year + 1), lastat ? lastat->type : defaulttype); attypes[timecnt - 1].dontmerge = true; } } writezone(zpfirst->z_name, envvar, version, defaulttype); free(startbuf); free(ab); free(envvar); } static void addtt(zic_t starttime, int type) { attypes = growalloc(attypes, sizeof *attypes, timecnt, &timecnt_alloc); attypes[timecnt].at = starttime; attypes[timecnt].dontmerge = false; attypes[timecnt].type = type; ++timecnt; } static int addtype(zic_t utoff, char const *abbr, bool isdst, bool ttisstd, bool ttisut) { register int i, j; if (! (-1L - 2147483647L <= utoff && utoff <= 2147483647L)) { error(_("UT offset out of range")); exit(EXIT_FAILURE); } if (!want_bloat()) ttisstd = ttisut = false; for (j = 0; j < charcnt; ++j) if (strcmp(&chars[j], abbr) == 0) break; if (j == charcnt) newabbr(abbr); else { /* If there's already an entry, return its index. */ for (i = 0; i < typecnt; i++) if (utoff == utoffs[i] && isdst == isdsts[i] && j == desigidx[i] && ttisstd == ttisstds[i] && ttisut == ttisuts[i]) return i; } /* ** There isn't one; add a new one, unless there are already too ** many. */ if (typecnt >= TZ_MAX_TYPES) { error(_("too many local time types")); exit(EXIT_FAILURE); } i = typecnt++; utoffs[i] = utoff; isdsts[i] = isdst; ttisstds[i] = ttisstd; ttisuts[i] = ttisut; desigidx[i] = j; return i; } static void leapadd(zic_t t, bool positive, int rolling, int count) { register int i, j; if (leapcnt + (positive ? count : 1) > TZ_MAX_LEAPS) { error(_("too many leap seconds")); exit(EXIT_FAILURE); } for (i = 0; i < leapcnt; ++i) if (t <= trans[i]) break; do { for (j = leapcnt; j > i; --j) { trans[j] = trans[j - 1]; corr[j] = corr[j - 1]; roll[j] = roll[j - 1]; } trans[i] = t; corr[i] = positive ? 1 : -count; roll[i] = rolling; ++leapcnt; } while (positive && --count != 0); } static void adjleap(void) { register int i; register zic_t last = 0; register zic_t prevtrans = 0; /* ** propagate leap seconds forward */ for (i = 0; i < leapcnt; ++i) { if (trans[i] - prevtrans < 28 * SECSPERDAY) { error(_("Leap seconds too close together")); exit(EXIT_FAILURE); } prevtrans = trans[i]; trans[i] = tadd(trans[i], last); last = corr[i] += last; } } static char * shellquote(char *b, char const *s) { *b++ = '\''; while (*s) { if (*s == '\'') *b++ = '\'', *b++ = '\\', *b++ = '\''; *b++ = *s++; } *b++ = '\''; return b; } static bool yearistype(zic_t year, const char *type) { char *buf; char *b; int result; if (type == NULL || *type == '\0') return true; buf = emalloc(1 + 4 * strlen(yitcommand) + 2 + INT_STRLEN_MAXIMUM(zic_t) + 2 + 4 * strlen(type) + 2); b = shellquote(buf, yitcommand); *b++ = ' '; b += sprintf(b, "%"PRIdZIC, year); *b++ = ' '; b = shellquote(b, type); *b = '\0'; result = system(buf); if (WIFEXITED(result)) { int status = WEXITSTATUS(result); if (status <= 1) { free(buf); return status == 0; } } error(_("Wild result from command execution")); fprintf(stderr, _("%s: command was '%s', result was %d\n"), progname, buf, result); exit(EXIT_FAILURE); } /* Is A a space character in the C locale? */ static bool is_space(char a) { switch (a) { default: return false; case ' ': case '\f': case '\n': case '\r': case '\t': case '\v': return true; } } /* Is A an alphabetic character in the C locale? */ static bool is_alpha(char a) { switch (a) { default: return false; case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': return true; } } /* If A is an uppercase character in the C locale, return its lowercase counterpart. Otherwise, return A. */ static char lowerit(char a) { switch (a) { default: return a; case 'A': return 'a'; case 'B': return 'b'; case 'C': return 'c'; case 'D': return 'd'; case 'E': return 'e'; case 'F': return 'f'; case 'G': return 'g'; case 'H': return 'h'; case 'I': return 'i'; case 'J': return 'j'; case 'K': return 'k'; case 'L': return 'l'; case 'M': return 'm'; case 'N': return 'n'; case 'O': return 'o'; case 'P': return 'p'; case 'Q': return 'q'; case 'R': return 'r'; case 'S': return 's'; case 'T': return 't'; case 'U': return 'u'; case 'V': return 'v'; case 'W': return 'w'; case 'X': return 'x'; case 'Y': return 'y'; case 'Z': return 'z'; } } /* case-insensitive equality */ static ATTRIBUTE_PURE bool ciequal(register const char *ap, register const char *bp) { while (lowerit(*ap) == lowerit(*bp++)) if (*ap++ == '\0') return true; return false; } static ATTRIBUTE_PURE bool itsabbr(register const char *abbr, register const char *word) { if (lowerit(*abbr) != lowerit(*word)) return false; ++word; while (*++abbr != '\0') do { if (*word == '\0') return false; } while (lowerit(*word++) != lowerit(*abbr)); return true; } /* Return true if ABBR is an initial prefix of WORD, ignoring ASCII case. */ static ATTRIBUTE_PURE bool ciprefix(char const *abbr, char const *word) { do if (!*abbr) return true; while (lowerit(*abbr++) == lowerit(*word++)); return false; } static const struct lookup * byword(const char *word, const struct lookup *table) { register const struct lookup * foundlp; register const struct lookup * lp; if (word == NULL || table == NULL) return NULL; /* If TABLE is LASTS and the word starts with "last" followed by a non-'-', skip the "last" and look in WDAY_NAMES instead. Warn about any usage of the undocumented prefix "last-". */ if (table == lasts && ciprefix("last", word) && word[4]) { if (word[4] == '-') warning(_("\"%s\" is undocumented; use \"last%s\" instead"), word, word + 5); else { word += 4; table = wday_names; } } /* ** Look for exact match. */ for (lp = table; lp->l_word != NULL; ++lp) if (ciequal(word, lp->l_word)) return lp; /* ** Look for inexact match. */ foundlp = NULL; for (lp = table; lp->l_word != NULL; ++lp) if (ciprefix(word, lp->l_word)) { if (foundlp == NULL) foundlp = lp; else return NULL; /* multiple inexact matches */ } if (foundlp && noise) { /* Warn about any backward-compatibility issue with pre-2017c zic. */ bool pre_2017c_match = false; for (lp = table; lp->l_word; lp++) if (itsabbr(word, lp->l_word)) { if (pre_2017c_match) { warning(_("\"%s\" is ambiguous in pre-2017c zic"), word); break; } pre_2017c_match = true; } } return foundlp; } static char ** getfields(register char *cp) { register char * dp; register char ** array; register int nsubs; if (cp == NULL) return NULL; array = emalloc(size_product(strlen(cp) + 1, sizeof *array)); nsubs = 0; for ( ; ; ) { while (is_space(*cp)) ++cp; if (*cp == '\0' || *cp == '#') break; array[nsubs++] = dp = cp; do { if ((*dp = *cp++) != '"') ++dp; else while ((*dp = *cp++) != '"') if (*dp != '\0') ++dp; else { error(_("Odd number of quotation marks")); exit(EXIT_FAILURE); } } while (*cp && *cp != '#' && !is_space(*cp)); if (is_space(*cp)) ++cp; *dp = '\0'; } array[nsubs] = NULL; return array; } static _Noreturn void time_overflow(void) { error(_("time overflow")); exit(EXIT_FAILURE); } static ATTRIBUTE_PURE zic_t oadd(zic_t t1, zic_t t2) { if (t1 < 0 ? t2 < ZIC_MIN - t1 : ZIC_MAX - t1 < t2) time_overflow(); return t1 + t2; } static ATTRIBUTE_PURE zic_t tadd(zic_t t1, zic_t t2) { if (t1 < 0) { if (t2 < min_time - t1) { if (t1 != min_time) time_overflow(); return min_time; } } else { if (max_time - t1 < t2) { if (t1 != max_time) time_overflow(); return max_time; } } return t1 + t2; } /* ** Given a rule, and a year, compute the date (in seconds since January 1, ** 1970, 00:00 LOCAL time) in that year that the rule refers to. */ static zic_t rpytime(const struct rule *rp, zic_t wantedy) { register int m, i; register zic_t dayoff; /* with a nod to Margaret O. */ register zic_t t, y; if (wantedy == ZIC_MIN) return min_time; if (wantedy == ZIC_MAX) return max_time; dayoff = 0; m = TM_JANUARY; y = EPOCH_YEAR; if (y < wantedy) { wantedy -= y; dayoff = (wantedy / YEARSPERREPEAT) * (SECSPERREPEAT / SECSPERDAY); wantedy %= YEARSPERREPEAT; wantedy += y; } else if (wantedy < 0) { dayoff = (wantedy / YEARSPERREPEAT) * (SECSPERREPEAT / SECSPERDAY); wantedy %= YEARSPERREPEAT; } while (wantedy != y) { if (wantedy > y) { i = len_years[isleap(y)]; ++y; } else { --y; i = -len_years[isleap(y)]; } dayoff = oadd(dayoff, i); } while (m != rp->r_month) { i = len_months[isleap(y)][m]; dayoff = oadd(dayoff, i); ++m; } i = rp->r_dayofmonth; if (m == TM_FEBRUARY && i == 29 && !isleap(y)) { if (rp->r_dycode == DC_DOWLEQ) --i; else { error(_("use of 2/29 in non leap-year")); exit(EXIT_FAILURE); } } --i; dayoff = oadd(dayoff, i); if (rp->r_dycode == DC_DOWGEQ || rp->r_dycode == DC_DOWLEQ) { register zic_t wday; #define LDAYSPERWEEK ((zic_t) DAYSPERWEEK) wday = EPOCH_WDAY; /* ** Don't trust mod of negative numbers. */ if (dayoff >= 0) wday = (wday + dayoff) % LDAYSPERWEEK; else { wday -= ((-dayoff) % LDAYSPERWEEK); if (wday < 0) wday += LDAYSPERWEEK; } while (wday != rp->r_wday) if (rp->r_dycode == DC_DOWGEQ) { dayoff = oadd(dayoff, 1); if (++wday >= LDAYSPERWEEK) wday = 0; ++i; } else { dayoff = oadd(dayoff, -1); if (--wday < 0) wday = LDAYSPERWEEK - 1; --i; } if (i < 0 || i >= len_months[isleap(y)][m]) { if (noise) warning(_("rule goes past start/end of month; \ will not work with pre-2004 versions of zic")); } } if (dayoff < min_time / SECSPERDAY) return min_time; if (dayoff > max_time / SECSPERDAY) return max_time; t = (zic_t) dayoff * SECSPERDAY; return tadd(t, rp->r_tod); } static void newabbr(const char *string) { register int i; if (strcmp(string, GRANDPARENTED) != 0) { register const char * cp; const char * mp; cp = string; mp = NULL; while (is_alpha(*cp) || ('0' <= *cp && *cp <= '9') || *cp == '-' || *cp == '+') ++cp; if (noise && cp - string < 3) mp = _("time zone abbreviation has fewer than 3 characters"); if (cp - string > ZIC_MAX_ABBR_LEN_WO_WARN) mp = _("time zone abbreviation has too many characters"); if (*cp != '\0') mp = _("time zone abbreviation differs from POSIX standard"); if (mp != NULL) warning("%s (%s)", mp, string); } i = strlen(string) + 1; if (charcnt + i > TZ_MAX_CHARS) { error(_("too many, or too long, time zone abbreviations")); exit(EXIT_FAILURE); } strcpy(&chars[charcnt], string); charcnt += i; } /* Ensure that the directories of ARGNAME exist, by making any missing ones. If ANCESTORS, do this only for ARGNAME's ancestors; otherwise, do it for ARGNAME too. Exit with failure if there is trouble. Do not consider an existing non-directory to be trouble. */ static void mkdirs(char const *argname, bool ancestors) { register char * name; register char * cp; cp = name = ecpyalloc(argname); /* On MS-Windows systems, do not worry about drive letters or backslashes, as this should suffice in practice. Time zone names do not use drive letters and backslashes. If the -d option of zic does not name an already-existing directory, it can use slashes to separate the already-existing ancestor prefix from the to-be-created subdirectories. */ /* Do not mkdir a root directory, as it must exist. */ while (*cp == '/') cp++; while (cp && ((cp = strchr(cp, '/')) || !ancestors)) { if (cp) *cp = '\0'; /* ** Try to create it. It's OK if creation fails because ** the directory already exists, perhaps because some ** other process just created it. For simplicity do ** not check first whether it already exists, as that ** is checked anyway if the mkdir fails. */ if (mkdir(name, MKDIR_UMASK) != 0) { /* For speed, skip itsdir if errno == EEXIST. Since mkdirs is called only after open fails with ENOENT on a subfile, EEXIST implies itsdir here. */ int err = errno; if (err != EEXIST && !itsdir(name)) { error(_("%s: Can't create directory %s: %s"), progname, name, strerror(err)); exit(EXIT_FAILURE); } } if (cp) *cp++ = '/'; } free(name); } ./tzdatabase/tzfile.50000644000175000017500000003505013502225077014650 0ustar anthonyanthony.TH TZFILE 5 .SH NAME tzfile \- timezone information .SH DESCRIPTION .ie '\(lq'' .ds lq \&"\" .el .ds lq \(lq\" .ie '\(rq'' .ds rq \&"\" .el .ds rq \(rq\" .de q \\$3\*(lq\\$1\*(rq\\$2 .. .ie \n(.g .ds - \f(CW-\fP .el ds - \- The timezone information files used by .BR tzset (3) are typically found under a directory with a name like .IR /usr/share/zoneinfo . These files use the format described in Internet RFC 8536. Each file is a sequence of 8-bit bytes. In a file, a binary integer is represented by a sequence of one or more bytes in network order (bigendian, or high-order byte first), with all bits significant, a signed binary integer is represented using two's complement, and a boolean is represented by a one-byte binary integer that is either 0 (false) or 1 (true). The format begins with a 44-byte header containing the following fields: .IP * 2 The magic four-byte ASCII sequence .q "TZif" identifies the file as a timezone information file. .IP * A byte identifying the version of the file's format (as of 2017, either an ASCII NUL, or .q "2", or .q "3" ). .IP * Fifteen bytes containing zeros reserved for future use. .IP * Six four-byte integer values, in the following order: .RS .TP .I tzh_ttisutcnt The number of UT/local indicators stored in the file. .TP .I tzh_ttisstdcnt The number of standard/wall indicators stored in the file. .TP .I tzh_leapcnt The number of leap seconds for which data entries are stored in the file. .TP .I tzh_timecnt The number of transition times for which data entries are stored in the file. .TP .I tzh_typecnt The number of local time types for which data entries are stored in the file (must not be zero). .TP .I tzh_charcnt The number of bytes of time zone abbreviation strings stored in the file. .RE .PP The above header is followed by the following fields, whose lengths depend on the contents of the header: .IP * 2 .I tzh_timecnt four-byte signed integer values sorted in ascending order. These values are written in network byte order. Each is used as a transition time (as returned by .BR time (2)) at which the rules for computing local time change. .IP * .I tzh_timecnt one-byte unsigned integer values; each one but the last tells which of the different types of local time types described in the file is associated with the time period starting with the same-indexed transition time and continuing up to but not including the next transition time. (The last time type is present only for consistency checking with the POSIX-style TZ string described below.) These values serve as indices into the next field. .IP * .I tzh_typecnt .I ttinfo entries, each defined as follows: .in +.5i .sp .nf .ta .5i +\w'unsigned char\0\0'u struct ttinfo { int32_t tt_utoff; unsigned char tt_isdst; unsigned char tt_desigidx; }; .in -.5i .fi .sp Each structure is written as a four-byte signed integer value for .IR tt_utoff , in network byte order, followed by a one-byte boolean for .I tt_isdst and a one-byte value for .IR tt_desigidx . In each structure, .I tt_utoff gives the number of seconds to be added to UT, .I tt_isdst tells whether .I tm_isdst should be set by .BR localtime (3) and .I tt_desigidx serves as an index into the array of time zone abbreviation bytes that follow the .I ttinfo structure(s) in the file. The .I tt_utoff value is never equal to \-2**31, to let 32-bit clients negate it without overflow. Also, in realistic applications .I tt_utoff is in the range [\-89999, 93599] (i.e., more than \-25 hours and less than 26 hours); this allows easy support by implementations that already support the POSIX-required range [\-24:59:59, 25:59:59]. .IP * .I tzh_leapcnt pairs of four-byte values, written in network byte order; the first value of each pair gives the nonnegative time (as returned by .BR time (2)) at which a leap second occurs; the second is a signed integer specifying the .I total number of leap seconds to be applied during the time period starting at the given time. The pairs of values are sorted in ascending order by time. Each transition is for one leap second, either positive or negative; transitions always separated by at least 28 days minus 1 second. .IP * .I tzh_ttisstdcnt standard/wall indicators, each stored as a one-byte boolean; they tell whether the transition times associated with local time types were specified as standard time or local (wall clock) time. .IP * .I tzh_ttisutcnt UT/local indicators, each stored as a one-byte boolean; they tell whether the transition times associated with local time types were specified as UT or local time. If a UT/local indicator is set, the corresponding standard/wall indicator must also be set. .PP The standard/wall and UT/local indicators were designed for transforming a TZif file's transition times into transitions appropriate for another time zone specified via a POSIX-style TZ string that lacks rules. For example, when TZ="EET\*-2EEST" and there is no TZif file "EET\*-2EEST", the idea was to adapt the transition times from a TZif file with the well-known name "posixrules" that is present only for this purpose and is a copy of the file "Europe/Brussels", a file with a different UT offset. POSIX does not specify this obsolete transformational behavior, the default rules are installation-dependent, and no implementation is known to support this feature for timestamps past 2037, so users desiring (say) Greek time should instead specify TZ="Europe/Athens" for better historical coverage, falling back on TZ="EET\*-2EEST,M3.5.0/3,M10.5.0/4" if POSIX conformance is required and older timestamps need not be handled accurately. .PP The .BR localtime (3) function normally uses the first .I ttinfo structure in the file if either .I tzh_timecnt is zero or the time argument is less than the first transition time recorded in the file. .SS Version 2 format For version-2-format timezone files, the above header and data are followed by a second header and data, identical in format except that eight bytes are used for each transition time or leap second time. (Leap second counts remain four bytes.) After the second header and data comes a newline-enclosed, POSIX-TZ-environment-variable-style string for use in handling instants after the last transition time stored in the file or for all instants if the file has no transitions. The POSIX-style TZ string is empty (i.e., nothing between the newlines) if there is no POSIX representation for such instants. If nonempty, the POSIX-style TZ string must agree with the local time type after the last transition time if present in the eight-byte data; for example, given the string .q "WET0WEST,M3.5.0,M10.5.0/3" then if a last transition time is in July, the transition's local time type must specify a daylight-saving time abbreviated .q "WEST" that is one hour east of UT. Also, if there is at least one transition, time type 0 is associated with the time period from the indefinite past up to but not including the earliest transition time. .SS Version 3 format For version-3-format timezone files, the POSIX-TZ-style string may use two minor extensions to the POSIX TZ format, as described in .BR newtzset (3). First, the hours part of its transition times may be signed and range from \-167 through 167 instead of the POSIX-required unsigned values from 0 through 24. Second, DST is in effect all year if it starts January 1 at 00:00 and ends December 31 at 24:00 plus the difference between daylight saving and standard time. .SS Interoperability considerations Future changes to the format may append more data. .PP Version 1 files are considered a legacy format and should be avoided, as they do not support transition times after the year 2038. Readers that only understand Version 1 must ignore any data that extends beyond the calculated end of the version 1 data block. .PP Writers should generate a version 3 file if TZ string extensions are necessary to accurately model transition times. Otherwise, version 2 files should be generated. .PP The sequence of time changes defined by the version 1 header and data block should be a contiguous subsequence of the time changes defined by the version 2+ header and data block, and by the footer. This guideline helps obsolescent version 1 readers agree with current readers about timestamps within the contiguous subsequence. It also lets writers not supporting obsolescent readers use a .I tzh_timecnt of zero in the version 1 data block to save space. .PP Time zone designations should consist of at least three (3) and no more than six (6) ASCII characters from the set of alphanumerics, .q "\*-", and .q "+". This is for compatibility with POSIX requirements for time zone abbreviations. .PP When reading a version 2 or 3 file, readers should ignore the version 1 header and data block except for the purpose of skipping over them. .PP Readers should calculate the total lengths of the headers and data blocks and check that they all fit within the actual file size, as part of a validity check for the file. .SS Common interoperability issues This section documents common problems in reading or writing TZif files. Most of these are problems in generating TZif files for use by older readers. The goals of this section are: .IP * 2 to help TZif writers output files that avoid common pitfalls in older or buggy TZif readers, .IP * to help TZif readers avoid common pitfalls when reading files generated by future TZif writers, and .IP * to help any future specification authors see what sort of problems arise when the TZif format is changed. .PP When new versions of the TZif format have been defined, a design goal has been that a reader can successfully use a TZif file even if the file is of a later TZif version than what the reader was designed for. When complete compatibility was not achieved, an attempt was made to limit glitches to rarely-used timestamps, and to allow simple partial workarounds in writers designed to generate new-version data useful even for older-version readers. This section attempts to document these compatibility issues and workarounds, as well as to document other common bugs in readers. .PP Interoperability problems with TZif include the following: .IP * 2 Some readers examine only version 1 data. As a partial workaround, a writer can output as much version 1 data as possible. However, a reader should ignore version 1 data, and should use version 2+ data even if the reader's native timestamps have only 32 bits. .IP * Some readers designed for version 2 might mishandle timestamps after a version 3 file's last transition, because they cannot parse extensions to POSIX in the TZ-like string. As a partial workaround, a writer can output more transitions than necessary, so that only far-future timestamps are mishandled by version 2 readers. .IP * Some readers designed for version 2 do not support permanent daylight saving time, e.g., a TZ string .q "EST5EDT,0/0,J365/25" denoting permanent Eastern Daylight Time (\-04). As a partial workaround, a writer can substitute standard time for the next time zone east, e.g., .q "AST4" for permanent Atlantic Standard Time (\-04). .IP * Some readers ignore the footer, and instead predict future timestamps from the time type of the last transition. As a partial workaround, a writer can output more transitions than necessary. .IP * Some readers do not use time type 0 for timestamps before the first transition, in that they infer a time type using a heuristic that does not always select time type 0. As a partial workaround, a writer can output a dummy (no-op) first transition at an early time. .IP * Some readers mishandle timestamps before the first transition that has a timestamp not less than \-2**31. Readers that support only 32-bit timestamps are likely to be more prone to this problem, for example, when they process 64-bit transitions only some of which are representable in 32 bits. As a partial workaround, a writer can output a dummy transition at timestamp \-2**31. .IP * Some readers mishandle a transition if its timestamp has the minimum possible signed 64-bit value. Timestamps less than \-2**59 are not recommended. .IP * Some readers mishandle POSIX-style TZ strings that contain .q "<" or .q ">". As a partial workaround, a writer can avoid using .q "<" or .q ">" for time zone abbreviations containing only alphabetic characters. .IP * Many readers mishandle time zone abbreviations that contain non-ASCII characters. These characters are not recommended. .IP * Some readers may mishandle time zone abbreviations that contain fewer than 3 or more than 6 characters, or that contain ASCII characters other than alphanumerics, .q "\*-", and .q "+". These abbreviations are not recommended. .IP * Some readers mishandle TZif files that specify daylight-saving time UT offsets that are less than the UT offsets for the corresponding standard time. These readers do not support locations like Ireland, which uses the equivalent of the POSIX TZ string .q "IST\*-1GMT0,M10.5.0,M3.5.0/1", observing standard time (IST, +01) in summer and daylight saving time (GMT, +00) in winter. As a partial workaround, a writer can output data for the equivalent of the POSIX TZ string .q "GMT0IST,M3.5.0/1,M10.5.0", thus swapping standard and daylight saving time. Although this workaround misidentifies which part of the year uses daylight saving time, it records UT offsets and time zone abbreviations correctly. .PP Some interoperability problems are reader bugs that are listed here mostly as warnings to developers of readers. .IP * 2 Some readers do not support negative timestamps. Developers of distributed applications should keep this in mind if they need to deal with pre-1970 data. .IP * Some readers mishandle timestamps before the first transition that has a nonnegative timestamp. Readers that do not support negative timestamps are likely to be more prone to this problem. .IP * Some readers mishandle time zone abbreviations like .q "\*-08" that contain .q "+", .q "\*-", or digits. .IP * Some readers mishandle UT offsets that are out of the traditional range of \-12 through +12 hours, and so do not support locations like Kiritimati that are outside this range. .IP * Some readers mishandle UT offsets in the range [\-3599, \-1] seconds from UT, because they integer-divide the offset by 3600 to get 0 and then display the hour part as .q "+00". .IP * Some readers mishandle UT offsets that are not a multiple of one hour, or of 15 minutes, or of 1 minute. .SH SEE ALSO .BR time (2), .BR localtime (3), .BR tzset (3), .BR tzselect (8), .BR zdump (8), .BR zic (8). .PP Olson A, Eggert P, Murchison K. The Time Zone Information Format (TZif). 2019 Feb. .UR https://\:www.rfc-editor.org/\:info/\:rfc8536 Internet RFC 8536 .UE .UR https://\:doi.org/\:10.17487/\:RFC8536 doi:10.17487/RFC8536 .UE . .\" This file is in the public domain, so clarified as of .\" 1996-06-05 by Arthur David Olson. ./tzdatabase/leap-seconds.list0000644000175000017500000002464514267637406016563 0ustar anthonyanthony# # In the following text, the symbol '#' introduces # a comment, which continues from that symbol until # the end of the line. A plain comment line has a # whitespace character following the comment indicator. # There are also special comment lines defined below. # A special comment will always have a non-whitespace # character in column 2. # # A blank line should be ignored. # # The following table shows the corrections that must # be applied to compute International Atomic Time (TAI) # from the Coordinated Universal Time (UTC) values that # are transmitted by almost all time services. # # The first column shows an epoch as a number of seconds # since 1 January 1900, 00:00:00 (1900.0 is also used to # indicate the same epoch.) Both of these time stamp formats # ignore the complexities of the time scales that were # used before the current definition of UTC at the start # of 1972. (See note 3 below.) # The second column shows the number of seconds that # must be added to UTC to compute TAI for any timestamp # at or after that epoch. The value on each line is # valid from the indicated initial instant until the # epoch given on the next one or indefinitely into the # future if there is no next line. # (The comment on each line shows the representation of # the corresponding initial epoch in the usual # day-month-year format. The epoch always begins at # 00:00:00 UTC on the indicated day. See Note 5 below.) # # Important notes: # # 1. Coordinated Universal Time (UTC) is often referred to # as Greenwich Mean Time (GMT). The GMT time scale is no # longer used, and the use of GMT to designate UTC is # discouraged. # # 2. The UTC time scale is realized by many national # laboratories and timing centers. Each laboratory # identifies its realization with its name: Thus # UTC(NIST), UTC(USNO), etc. The differences among # these different realizations are typically on the # order of a few nanoseconds (i.e., 0.000 000 00x s) # and can be ignored for many purposes. These differences # are tabulated in Circular T, which is published monthly # by the International Bureau of Weights and Measures # (BIPM). See www.bipm.org for more information. # # 3. The current definition of the relationship between UTC # and TAI dates from 1 January 1972. A number of different # time scales were in use before that epoch, and it can be # quite difficult to compute precise timestamps and time # intervals in those "prehistoric" days. For more information, # consult: # # The Explanatory Supplement to the Astronomical # Ephemeris. # or # Terry Quinn, "The BIPM and the Accurate Measurement # of Time," Proc. of the IEEE, Vol. 79, pp. 894-905, # July, 1991. # reprinted in: # Christine Hackman and Donald B Sullivan (eds.) # Time and Frequency Measurement # American Association of Physics Teachers (1996) # , pp. 75-86 # # 4. The decision to insert a leap second into UTC is currently # the responsibility of the International Earth Rotation and # Reference Systems Service. (The name was changed from the # International Earth Rotation Service, but the acronym IERS # is still used.) # # Leap seconds are announced by the IERS in its Bulletin C. # # See www.iers.org for more details. # # Every national laboratory and timing center uses the # data from the BIPM and the IERS to construct UTC(lab), # their local realization of UTC. # # Although the definition also includes the possibility # of dropping seconds ("negative" leap seconds), this has # never been done and is unlikely to be necessary in the # foreseeable future. # # 5. If your system keeps time as the number of seconds since # some epoch (e.g., NTP timestamps), then the algorithm for # assigning a UTC time stamp to an event that happens during a positive # leap second is not well defined. The official name of that leap # second is 23:59:60, but there is no way of representing that time # in these systems. # Many systems of this type effectively stop the system clock for # one second during the leap second and use a time that is equivalent # to 23:59:59 UTC twice. For these systems, the corresponding TAI # timestamp would be obtained by advancing to the next entry in the # following table when the time equivalent to 23:59:59 UTC # is used for the second time. Thus the leap second which # occurred on 30 June 1972 at 23:59:59 UTC would have TAI # timestamps computed as follows: # # ... # 30 June 1972 23:59:59 (2287785599, first time): TAI= UTC + 10 seconds # 30 June 1972 23:59:60 (2287785599,second time): TAI= UTC + 11 seconds # 1 July 1972 00:00:00 (2287785600) TAI= UTC + 11 seconds # ... # # If your system realizes the leap second by repeating 00:00:00 UTC twice # (this is possible but not usual), then the advance to the next entry # in the table must occur the second time that a time equivalent to # 00:00:00 UTC is used. Thus, using the same example as above: # # ... # 30 June 1972 23:59:59 (2287785599): TAI= UTC + 10 seconds # 30 June 1972 23:59:60 (2287785600, first time): TAI= UTC + 10 seconds # 1 July 1972 00:00:00 (2287785600,second time): TAI= UTC + 11 seconds # ... # # in both cases the use of timestamps based on TAI produces a smooth # time scale with no discontinuity in the time interval. However, # although the long-term behavior of the time scale is correct in both # methods, the second method is technically not correct because it adds # the extra second to the wrong day. # # This complexity would not be needed for negative leap seconds (if they # are ever used). The UTC time would skip 23:59:59 and advance from # 23:59:58 to 00:00:00 in that case. The TAI offset would decrease by # 1 second at the same instant. This is a much easier situation to deal # with, since the difficulty of unambiguously representing the epoch # during the leap second does not arise. # # Some systems implement leap seconds by amortizing the leap second # over the last few minutes of the day. The frequency of the local # clock is decreased (or increased) to realize the positive (or # negative) leap second. This method removes the time step described # above. Although the long-term behavior of the time scale is correct # in this case, this method introduces an error during the adjustment # period both in time and in frequency with respect to the official # definition of UTC. # # Questions or comments to: # Judah Levine # Time and Frequency Division # NIST # Boulder, Colorado # Judah.Levine@nist.gov # # Last Update of leap second values: 8 July 2016 # # The following line shows this last update date in NTP timestamp # format. This is the date on which the most recent change to # the leap second data was added to the file. This line can # be identified by the unique pair of characters in the first two # columns as shown below. # #$ 3676924800 # # The NTP timestamps are in units of seconds since the NTP epoch, # which is 1 January 1900, 00:00:00. The Modified Julian Day number # corresponding to the NTP time stamp, X, can be computed as # # X/86400 + 15020 # # where the first term converts seconds to days and the second # term adds the MJD corresponding to the time origin defined above. # The integer portion of the result is the integer MJD for that # day, and any remainder is the time of day, expressed as the # fraction of the day since 0 hours UTC. The conversion from day # fraction to seconds or to hours, minutes, and seconds may involve # rounding or truncation, depending on the method used in the # computation. # # The data in this file will be updated periodically as new leap # seconds are announced. In addition to being entered on the line # above, the update time (in NTP format) will be added to the basic # file name leap-seconds to form the name leap-seconds.. # In addition, the generic name leap-seconds.list will always point to # the most recent version of the file. # # This update procedure will be performed only when a new leap second # is announced. # # The following entry specifies the expiration date of the data # in this file in units of seconds since the origin at the instant # 1 January 1900, 00:00:00. This expiration date will be changed # at least twice per year whether or not a new leap second is # announced. These semi-annual changes will be made no later # than 1 June and 1 December of each year to indicate what # action (if any) is to be taken on 30 June and 31 December, # respectively. (These are the customary effective dates for new # leap seconds.) This expiration date will be identified by a # unique pair of characters in columns 1 and 2 as shown below. # In the unlikely event that a leap second is announced with an # effective date other than 30 June or 31 December, then this # file will be edited to include that leap second as soon as it is # announced or at least one month before the effective date # (whichever is later). # If an announcement by the IERS specifies that no leap second is # scheduled, then only the expiration date of the file will # be advanced to show that the information in the file is still # current -- the update time stamp, the data and the name of the file # will not change. # # Updated through IERS Bulletin C64 # File expires on: 28 June 2023 # #@ 3896899200 # 2272060800 10 # 1 Jan 1972 2287785600 11 # 1 Jul 1972 2303683200 12 # 1 Jan 1973 2335219200 13 # 1 Jan 1974 2366755200 14 # 1 Jan 1975 2398291200 15 # 1 Jan 1976 2429913600 16 # 1 Jan 1977 2461449600 17 # 1 Jan 1978 2492985600 18 # 1 Jan 1979 2524521600 19 # 1 Jan 1980 2571782400 20 # 1 Jul 1981 2603318400 21 # 1 Jul 1982 2634854400 22 # 1 Jul 1983 2698012800 23 # 1 Jul 1985 2776982400 24 # 1 Jan 1988 2840140800 25 # 1 Jan 1990 2871676800 26 # 1 Jan 1991 2918937600 27 # 1 Jul 1992 2950473600 28 # 1 Jul 1993 2982009600 29 # 1 Jul 1994 3029443200 30 # 1 Jan 1996 3076704000 31 # 1 Jul 1997 3124137600 32 # 1 Jan 1999 3345062400 33 # 1 Jan 2006 3439756800 34 # 1 Jan 2009 3550089600 35 # 1 Jul 2012 3644697600 36 # 1 Jul 2015 3692217600 37 # 1 Jan 2017 # # the following special comment contains the # hash value of the data in this file computed # use the secure hash algorithm as specified # by FIPS 180-1. See the files in ~/pub/sha for # the details of how this hash value is # computed. Note that the hash computation # ignores comments and whitespace characters # in data lines. It includes the NTP values # of both the last modification time and the # expiration time of the file, but not the # white space on those lines. # the hash line is also ignored in the # computation. # #h 2c413af9 124e1031 f165174 ff527c6b 756ae00b ./tzdatabase/zdump.8.txt0000644000175000017500000001603713363701356015343 0ustar anthonyanthonyZDUMP(8) System Manager's Manual ZDUMP(8) NAME zdump - timezone dumper SYNOPSIS zdump [ option ... ] [ timezone ... ] DESCRIPTION The zdump program prints the current time in each timezone named on the command line. OPTIONS --version Output version information and exit. --help Output short usage message and exit. -i Output a description of time intervals. For each timezone on the command line, output an interval-format description of the timezone. See "INTERVAL FORMAT" below. -v Output a verbose description of time intervals. For each timezone on the command line, print the time at the lowest possible time value, the time one day after the lowest possible time value, the times both one second before and exactly at each detected time discontinuity, the time at one day less than the highest possible time value, and the time at the highest possible time value. Each line is followed by isdst=D where D is positive, zero, or negative depending on whether the given time is daylight saving time, standard time, or an unknown time type, respectively. Each line is also followed by gmtoff=N if the given local time is known to be N seconds east of Greenwich. -V Like -v, except omit the times relative to the extreme time values. This generates output that is easier to compare to that of implementations with different time representations. -c [loyear,]hiyear Cut off interval output at the given year(s). Cutoff times are computed using the proleptic Gregorian calendar with year 0 and with Universal Time (UT) ignoring leap seconds. The lower bound is exclusive and the upper is inclusive; for example, a loyear of 1970 excludes a transition occurring at 1970-01-01 00:00:00 UTC but a hiyear of 1970 includes the transition. The default cutoff is -500,2500. -t [lotime,]hitime Cut off interval output at the given time(s), given in decimal seconds since 1970-01-01 00:00:00 Coordinated Universal Time (UTC). The timezone determines whether the count includes leap seconds. As with -c, the cutoff's lower bound is exclusive and its upper bound is inclusive. INTERVAL FORMAT The interval format is a compact text representation that is intended to be both human- and machine-readable. It consists of an empty line, then a line "TZ=string" where string is a double-quoted string giving the timezone, a second line "- - interval" describing the time interval before the first transition if any, and zero or more following lines "date time interval", one line for each transition time and following interval. Fields are separated by single tabs. Dates are in yyyy-mm-dd format and times are in 24-hour hh:mm:ss format where hh<24. Times are in local time immediately after the transition. A time interval description consists of a UT offset in signed +-hhmmss format, a time zone abbreviation, and an isdst flag. An abbreviation that equals the UT offset is omitted; other abbreviations are double- quoted strings unless they consist of one or more alphabetic characters. An isdst flag is omitted for standard time, and otherwise is a decimal integer that is unsigned and positive (typically 1) for daylight saving time and negative for unknown. In times and in UT offsets with absolute value less than 100 hours, the seconds are omitted if they are zero, and the minutes are also omitted if they are also zero. Positive UT offsets are east of Greenwich. The UT offset -00 denotes a UT placeholder in areas where the actual offset is unspecified; by convention, this occurs when the UT offset is zero and the time zone abbreviation begins with "-" or is "zzz". In double-quoted strings, escape sequences represent unusual characters. The escape sequences are \s for space, and \", \\, \f, \n, \r, \t, and \v with their usual meaning in the C programming language. E.g., the double-quoted string ""CET\s\"\\"" represents the character sequence "CET "\". Here is an example of the output, with the leading empty line omitted. (This example is shown with tab stops set far enough apart so that the tabbed columns line up.) TZ="Pacific/Honolulu" - - -103126 LMT 1896-01-13 12:01:26 -1030 HST 1933-04-30 03 -0930 HDT 1 1933-05-21 11 -1030 HST 1942-02-09 03 -0930 HWT 1 1945-08-14 13:30 -0930 HPT 1 1945-09-30 01 -1030 HST 1947-06-08 02:30 -10 HST Here, local time begins 10 hours, 31 minutes and 26 seconds west of UT, and is a standard time abbreviated LMT. Immediately after the first transition, the date is 1896-01-13 and the time is 12:01:26, and the following time interval is 10.5 hours west of UT, a standard time abbreviated HST. Immediately after the second transition, the date is 1933-04-30 and the time is 03:00:00 and the following time interval is 9.5 hours west of UT, is abbreviated HDT, and is daylight saving time. Immediately after the last transition the date is 1947-06-08 and the time is 02:30:00, and the following time interval is 10 hours west of UT, a standard time abbreviated HST. Here are excerpts from another example: TZ="Europe/Astrakhan" - - +031212 LMT 1924-04-30 23:47:48 +03 1930-06-21 01 +04 1981-04-01 01 +05 1 1981-09-30 23 +04 ... 2014-10-26 01 +03 2016-03-27 03 +04 This time zone is east of UT, so its UT offsets are positive. Also, many of its time zone abbreviations are omitted since they duplicate the text of the UT offset. LIMITATIONS Time discontinuities are found by sampling the results returned by localtime at twelve-hour intervals. This works in all real-world cases; one can construct artificial time zones for which this fails. In the -v and -V output, "UT" denotes the value returned by gmtime(3), which uses UTC for modern timestamps and some other UT flavor for timestamps that predate the introduction of UTC. No attempt is currently made to have the output use "UTC" for newer and "UT" for older timestamps, partly because the exact date of the introduction of UTC is problematic. SEE ALSO tzfile(5), zic(8) ZDUMP(8) ./tzdatabase/version0000644000175000017500000000000614276564531014700 0ustar anthonyanthony2022c ./tzdatabase/southamerica0000644000175000017500000026256714274504170015714 0ustar anthonyanthony# tzdb data for South America and environs # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. # This file is by no means authoritative; if you think you know better, # go ahead and edit the file (and please send any changes to # tz@iana.org for general use in the future). For more, please see # the file CONTRIBUTING in the tz distribution. # From Paul Eggert (2016-12-05): # # Unless otherwise specified, the source for data through 1990 is: # Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition), # San Diego: ACS Publications, Inc. (2003). # Unfortunately this book contains many errors and cites no sources. # # Many years ago Gwillim Law wrote that a good source # for time zone data was the International Air Transport # Association's Standard Schedules Information Manual (IATA SSIM), # published semiannually. Law sent in several helpful summaries # of the IATA's data after 1990. Except where otherwise noted, # IATA SSIM is the source for entries after 1990. # # For data circa 1899, a common source is: # Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94. # https://www.jstor.org/stable/1774359 # # These tables use numeric abbreviations like -03 and -0330 for # integer hour and minute UT offsets. Although earlier editions used # alphabetic time zone abbreviations, these abbreviations were # invented and did not reflect common practice. ############################################################################### ############################################################################### # Argentina # From Bob Devine (1988-01-28): # Argentina: first Sunday in October to first Sunday in April since 1976. # Double Summer time from 1969 to 1974. Switches at midnight. # From U. S. Naval Observatory (1988-01-19): # ARGENTINA 3 H BEHIND UTC # From Hernan G. Otero (1995-06-26): # I am sending modifications to the Argentine time zone table... # AR was chosen because they are the ISO letters that represent Argentina. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Arg 1930 only - Dec 1 0:00 1:00 - Rule Arg 1931 only - Apr 1 0:00 0 - Rule Arg 1931 only - Oct 15 0:00 1:00 - Rule Arg 1932 1940 - Mar 1 0:00 0 - Rule Arg 1932 1939 - Nov 1 0:00 1:00 - Rule Arg 1940 only - Jul 1 0:00 1:00 - Rule Arg 1941 only - Jun 15 0:00 0 - Rule Arg 1941 only - Oct 15 0:00 1:00 - Rule Arg 1943 only - Aug 1 0:00 0 - Rule Arg 1943 only - Oct 15 0:00 1:00 - Rule Arg 1946 only - Mar 1 0:00 0 - Rule Arg 1946 only - Oct 1 0:00 1:00 - Rule Arg 1963 only - Oct 1 0:00 0 - Rule Arg 1963 only - Dec 15 0:00 1:00 - Rule Arg 1964 1966 - Mar 1 0:00 0 - Rule Arg 1964 1966 - Oct 15 0:00 1:00 - Rule Arg 1967 only - Apr 2 0:00 0 - Rule Arg 1967 1968 - Oct Sun>=1 0:00 1:00 - Rule Arg 1968 1969 - Apr Sun>=1 0:00 0 - Rule Arg 1974 only - Jan 23 0:00 1:00 - Rule Arg 1974 only - May 1 0:00 0 - Rule Arg 1988 only - Dec 1 0:00 1:00 - # # From Hernan G. Otero (1995-06-26): # These corrections were contributed by InterSoft Argentina S.A., # obtaining the data from the: # Talleres de Hidrografía Naval Argentina # (Argentine Naval Hydrography Institute) Rule Arg 1989 1993 - Mar Sun>=1 0:00 0 - Rule Arg 1989 1992 - Oct Sun>=15 0:00 1:00 - # # From Hernan G. Otero (1995-06-26): # From this moment on, the law that mandated the daylight saving # time corrections was derogated and no more modifications # to the time zones (for daylight saving) are now made. # # From Rives McDow (2000-01-10): # On October 3, 1999, 0:00 local, Argentina implemented daylight savings time, # which did not result in the switch of a time zone, as they stayed 9 hours # from the International Date Line. Rule Arg 1999 only - Oct Sun>=1 0:00 1:00 - # From Paul Eggert (2007-12-28): # DST was set to expire on March 5, not March 3, but since it was converted # to standard time on March 3 it's more convenient for us to pretend that # it ended on March 3. Rule Arg 2000 only - Mar 3 0:00 0 - # # From Peter Gradelski via Steffen Thorsen (2000-03-01): # We just checked with our São Paulo office and they say the government of # Argentina decided not to become one of the countries that go on or off DST. # So Buenos Aires should be -3 hours from GMT at all times. # # From Fabián L. Arce Jofré (2000-04-04): # The law that claimed DST for Argentina was derogated by President Fernando # de la Rúa on March 2, 2000, because it would make people spend more energy # in the winter time, rather than less. The change took effect on March 3. # # From Mariano Absatz (2001-06-06): # one of the major newspapers here in Argentina said that the 1999 # Timezone Law (which never was effectively applied) will (would?) be # in effect.... The article is at # http://ar.clarin.com/diario/2001-06-06/e-01701.htm # ... The Law itself is "Ley No. 25155", sanctioned on 1999-08-25, enacted # 1999-09-17, and published 1999-09-21. The official publication is at: # http://www.boletin.jus.gov.ar/BON/Primera/1999/09-Septiembre/21/PDF/BO21-09-99LEG.PDF # Regretfully, you have to subscribe (and pay) for the on-line version.... # # (2001-06-12): # the timezone for Argentina will not change next Sunday. # Apparently it will do so on Sunday 24th.... # http://ar.clarin.com/diario/2001-06-12/s-03501.htm # # (2001-06-25): # Last Friday (yes, the last working day before the date of the change), the # Senate annulled the 1999 law that introduced the changes later postponed. # http://www.clarin.com.ar/diario/2001-06-22/s-03601.htm # It remains the vote of the Deputies..., but it will be the same.... # This kind of things had always been done this way in Argentina. # We are still -03:00 all year round in all of the country. # # From Steffen Thorsen (2007-12-21): # A user (Leonardo Chaim) reported that Argentina will adopt DST.... # all of the country (all Zone-entries) are affected. News reports like # http://www.lanacion.com.ar/opinion/nota.asp?nota_id=973037 indicate # that Argentina will use DST next year as well, from October to # March, although exact rules are not given. # # From Jesper Nørgaard Welen (2007-12-26) # The last hurdle of Argentina DST is over, the proposal was approved in # the lower chamber too (Diputados) with a vote 192 for and 2 against. # By the way thanks to Mariano Absatz and Daniel Mario Vega for the link to # the original scanned proposal, where the dates and the zero hours are # clear and unambiguous...This is the article about final approval: # http://www.lanacion.com.ar/politica/nota.asp?nota_id=973996 # # From Paul Eggert (2007-12-22): # For dates after mid-2008, the following rules are my guesses and # are quite possibly wrong, but are more likely than no DST at all. # From Alexander Krivenyshev (2008-09-05): # As per message from Carlos Alberto Fonseca Arauz (Nicaragua), # Argentina will start DST on Sunday October 19, 2008. # # http://www.worldtimezone.com/dst_news/dst_news_argentina03.html # http://www.impulsobaires.com.ar/nota.php?id=57832 (in spanish) # From Juan Manuel Docile in https://bugs.gentoo.org/240339 (2008-10-07) # via Rodrigo Severo: # Argentinian law No. 25.155 is no longer valid. # http://www.infoleg.gov.ar/infolegInternet/anexos/60000-64999/60036/norma.htm # The new one is law No. 26.350 # http://www.infoleg.gov.ar/infolegInternet/anexos/135000-139999/136191/norma.htm # So there is no summer time in Argentina for now. # From Mariano Absatz (2008-10-20): # Decree 1693/2008 applies Law 26.350 for the summer 2008/2009 establishing DST # in Argentina from 2008-10-19 until 2009-03-15. # http://www.boletinoficial.gov.ar/Bora.Portal/CustomControls/PdfContent.aspx?fp=16102008&pi=3&pf=4&s=0&sec=01 # # Decree 1705/2008 excepting 12 Provinces from applying DST in the summer # 2008/2009: Catamarca, La Rioja, Mendoza, Salta, San Juan, San Luis, La # Pampa, Neuquén, Rio Negro, Chubut, Santa Cruz and Tierra del Fuego # http://www.boletinoficial.gov.ar/Bora.Portal/CustomControls/PdfContent.aspx?fp=17102008&pi=1&pf=1&s=0&sec=01 # # Press release 235 dated Saturday October 18th, from the Government of the # Province of Jujuy saying it will not apply DST either (even when it was not # included in Decree 1705/2008). # http://www.jujuy.gov.ar/index2/partes_prensa/18_10_08/235-181008.doc # From fullinet (2009-10-18): # As announced in # http://www.argentina.gob.ar/argentina/portal/paginas.dhtml?pagina=356 # (an official .gob.ar) under title: "Sin Cambio de Hora" # (English: "No hour change"). # # "Por el momento, el Gobierno Nacional resolvió no modificar la hora # oficial, decisión que estaba en estudio para su implementación el # domingo 18 de octubre. Desde el Ministerio de Planificación se anunció # que la Argentina hoy, en estas condiciones meteorológicas, no necesita # la modificación del huso horario, ya que 2009 nos encuentra con # crecimiento en la producción y distribución energética." Rule Arg 2007 only - Dec 30 0:00 1:00 - Rule Arg 2008 2009 - Mar Sun>=15 0:00 0 - Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 - # From Mariano Absatz (2004-05-21): # Today it was officially published that the Province of Mendoza is changing # its timezone this winter... starting tomorrow night.... # http://www.gobernac.mendoza.gov.ar/boletin/pdf/20040521-27158-normas.pdf # From Paul Eggert (2004-05-24): # It's Law No. 7,210. This change is due to a public power emergency, so for # now we'll assume it's for this year only. # # From Paul Eggert (2018-01-31): # Hora de verano para la República Argentina # http://buenasiembra.com.ar/esoterismo/astrologia/hora-de-verano-de-la-republica-argentina-27.html # says that standard time in Argentina from 1894-10-31 # to 1920-05-01 was -4:16:48.25. Go with this more-precise value # over Shanks & Pottenger. It is upward compatible with Milne, who # says Córdoba time was -4:16:48.2. # # From Mariano Absatz (2004-06-05): # These media articles from a major newspaper mostly cover the current state: # http://www.lanacion.com.ar/04/05/27/de_604825.asp # http://www.lanacion.com.ar/04/05/28/de_605203.asp # # The following eight (8) provinces pulled clocks back to UTC-04:00 at # midnight Monday May 31st. (that is, the night between 05/31 and 06/01). # Apparently, all nine provinces would go back to UTC-03:00 at the same # time in October 17th. # # Catamarca, Chubut, La Rioja, San Juan, San Luis, Santa Cruz, # Tierra del Fuego, Tucumán. # # From Mariano Absatz (2004-06-14): # ... this weekend, the Province of Tucumán decided it'd go back to UTC-03:00 # yesterday midnight (that is, at 24:00 Saturday 12th), since the people's # annoyance with the change is much higher than the power savings obtained.... # # From Gwillim Law (2004-06-14): # http://www.lanacion.com.ar/04/06/10/de_609078.asp ... # "The time change in Tierra del Fuego was a conflicted decision from # the start. The government had decreed that the measure would take # effect on June 1, but a normative error forced the new time to begin # three days earlier, from a Saturday to a Sunday.... # Our understanding was that the change was originally scheduled to take place # on June 1 at 00:00 in Chubut, Santa Cruz, Tierra del Fuego (and some other # provinces). Sunday was May 30, only two days earlier. So the article # contains a contradiction. I would give more credence to the Saturday/Sunday # date than the "three days earlier" phrase, and conclude that Tierra del # Fuego set its clocks back at 2004-05-30 00:00. # # From Steffen Thorsen (2004-10-05): # The previous law 7210 which changed the province of Mendoza's time zone # back in May have been modified slightly in a new law 7277, which set the # new end date to 2004-09-26 (original date was 2004-10-17). # http://www.gobernac.mendoza.gov.ar/boletin/pdf/20040924-27244-normas.pdf # # From Mariano Absatz (2004-10-05): # San Juan changed from UTC-03:00 to UTC-04:00 at midnight between # Sunday, May 30th and Monday, May 31st. It changed back to UTC-03:00 # at midnight between Saturday, July 24th and Sunday, July 25th.... # http://www.sanjuan.gov.ar/prensa/archivo/000329.html # http://www.sanjuan.gov.ar/prensa/archivo/000426.html # http://www.sanjuan.gov.ar/prensa/archivo/000441.html # From Alex Krivenyshev (2008-01-17): # Here are articles that Argentina Province San Luis is planning to end DST # as earlier as upcoming Monday January 21, 2008 or February 2008: # # Provincia argentina retrasa reloj y marca diferencia con resto del país # (Argentine Province delayed clock and mark difference with the rest of the # country) # http://cl.invertia.com/noticias/noticia.aspx?idNoticia=200801171849_EFE_ET4373&idtel # # Es inminente que en San Luis atrasen una hora los relojes # (It is imminent in San Luis clocks one hour delay) # https://www.lagaceta.com.ar/nota/253414/Economia/Es-inminente-que-en-San-Luis-atrasen-una-hora-los-relojes.html # http://www.worldtimezone.com/dst_news/dst_news_argentina02.html # From Jesper Nørgaard Welen (2008-01-18): # The page of the San Luis provincial government # http://www.sanluis.gov.ar/notas.asp?idCanal=0&id=22812 # confirms what Alex Krivenyshev has earlier sent to the tz # emailing list about that San Luis plans to return to standard # time much earlier than the rest of the country. It also # confirms that upon request the provinces San Juan and Mendoza # refused to follow San Luis in this change. # # The change is supposed to take place Monday the 21st at 0:00 # hours. As far as I understand it if this goes ahead, we need # a new timezone for San Luis (although there are also documented # independent changes in the southamerica file of San Luis in # 1990 and 1991 which has not been confirmed). # From Jesper Nørgaard Welen (2008-01-25): # Unfortunately the below page has become defunct, about the San Luis # time change. Perhaps because it now is part of a group of pages "Most # important pages of 2008." # # You can use # http://www.sanluis.gov.ar/notas.asp?idCanal=8141&id=22834 # instead it seems. Or use "Buscador" from the main page of the San Luis # government, and fill in "huso" and click OK, and you will get 3 pages # from which the first one is identical to the above. # From Mariano Absatz (2008-01-28): # I can confirm that the Province of San Luis (and so far only that # province) decided to go back to UTC-3 effective midnight Jan 20th 2008 # (that is, Monday 21st at 0:00 is the time the clocks were delayed back # 1 hour), and they intend to keep UTC-3 as their timezone all year round # (that is, unless they change their mind any minute now). # # So we'll have to add yet another city to 'southamerica' (I think San # Luis city is the mos populated city in the Province, so it'd be # America/Argentina/San_Luis... of course I can't remember if San Luis's # history of particular changes goes along with Mendoza or San Juan :-( # (I only remember not being able to collect hard facts about San Luis # back in 2004, when these provinces changed to UTC-4 for a few days, I # mailed them personally and never got an answer). # From Paul Eggert (2014-08-12): # Unless otherwise specified, data entries are from Shanks & Pottenger through # 1992, from the IATA otherwise. As noted below, Shanks & Pottenger say that # America/Cordoba split into 6 subregions during 1991/1992, one of which # was America/San_Luis, but we haven't verified this yet so for now we'll # keep America/Cordoba a single region rather than splitting it into the # other 5 subregions. # From Mariano Absatz (2009-03-13): # Yesterday (with our usual 2-day notice) the Province of San Luis # decided that next Sunday instead of "staying" @utc-03:00 they will go # to utc-04:00 until the second Saturday in October... # # The press release is at # http://www.sanluis.gov.ar/SL/Paginas/NoticiaDetalle.asp?TemaId=1&InfoPrensaId=3102 # (I couldn't find the decree, but www.sanluis.gov.ar # is the official page for the Province Government.) # # There's also a note in only one of the major national papers ... # http://www.lanacion.com.ar/nota.asp?nota_id=1107912 # # The press release says [quick and dirty translation]: # ... announced that next Sunday, at 00:00, Puntanos (the San Luis # inhabitants) will have to turn back one hour their clocks # # Since then, San Luis will establish its own Province timezone. Thus, # during 2009, this timezone change will run from 00:00 the third Sunday # in March until 24:00 of the second Saturday in October. # From Mariano Absatz (2009-10-16): # ...the Province of San Luis is a case in itself. # # The Law at # http://www.diputadossanluis.gov.ar/diputadosasp/paginas/verNorma.asp?NormaID=276 # is ambiguous because establishes a calendar from the 2nd Sunday in # October at 0:00 thru the 2nd Saturday in March at 24:00 and the # complement of that starting on the 2nd Sunday of March at 0:00 and # ending on the 2nd Saturday of March at 24:00. # # This clearly breaks every time the 1st of March or October is a Sunday. # # IMHO, the "spirit of the Law" is to make the changes at 0:00 on the 2nd # Sunday of October and March. # # The problem is that the changes in the rest of the Provinces that did # change in 2007/2008, were made according to the Federal Law and Decrees # that did so on the 3rd Sunday of October and March. # # In fact, San Luis actually switched from UTC-4 to UTC-3 last Sunday # (October 11th) at 0:00. # # So I guess a new set of rules, besides "Arg", must be made and the last # America/Argentina/San_Luis entries should change to use these... # ... # From Alexander Krivenyshev (2010-04-09): # According to news reports from El Diario de la República Province San # Luis, Argentina (standard time UTC-04) will keep Daylight Saving Time # after April 11, 2010 - will continue to have same time as rest of # Argentina (UTC-3) (no DST). # # Confirmaron la prórroga del huso horario de verano (Spanish) # http://www.eldiariodelarepublica.com/index.php?option=com_content&task=view&id=29383&Itemid=9 # or (some English translation): # http://www.worldtimezone.com/dst_news/dst_news_argentina08.html # From Mariano Absatz (2010-04-12): # yes...I can confirm this...and given that San Luis keeps calling # UTC-03:00 "summer time", we should't just let San Luis go back to "Arg" # rules...San Luis is still using "Western ARgentina Time" and it got # stuck on Summer daylight savings time even though the summer is over. # From Paul Eggert (2018-01-23): # Perhaps San Luis operates on the legal fiction that it is at -04 # with perpetual daylight saving time, but ordinary usage typically seems to # just say it's at -03; see, for example, # https://es.wikipedia.org/wiki/Hora_oficial_argentina # We've documented similar situations as being plain changes to # standard time, so let's do that here too. This does not change UTC # offsets, only tm_isdst and the time zone abbreviations. One minor # plus is that this silences a zic complaint that there's no POSIX TZ # setting for timestamps past 2038. # Zone NAME STDOFF RULES FORMAT [UNTIL] # # Buenos Aires (BA), Capital Federal (CF), Zone America/Argentina/Buenos_Aires -3:53:48 - LMT 1894 Oct 31 #STDOFF -4:16:48.25 -4:16:48 - CMT 1920 May # Córdoba Mean Time -4:00 - -04 1930 Dec -4:00 Arg -04/-03 1969 Oct 5 -3:00 Arg -03/-02 1999 Oct 3 -4:00 Arg -04/-03 2000 Mar 3 -3:00 Arg -03/-02 # # Córdoba (CB), Santa Fe (SF), Entre Ríos (ER), Corrientes (CN), Misiones (MN), # Chaco (CC), Formosa (FM), Santiago del Estero (SE) # # Shanks & Pottenger also make the following claims, which we haven't verified: # - Formosa switched to -3:00 on 1991-01-07. # - Misiones switched to -3:00 on 1990-12-29. # - Chaco switched to -3:00 on 1991-01-04. # - Santiago del Estero switched to -4:00 on 1991-04-01, # then to -3:00 on 1991-04-26. # #STDOFF -4:16:48.25 Zone America/Argentina/Cordoba -4:16:48 - LMT 1894 Oct 31 -4:16:48 - CMT 1920 May -4:00 - -04 1930 Dec -4:00 Arg -04/-03 1969 Oct 5 -3:00 Arg -03/-02 1991 Mar 3 -4:00 - -04 1991 Oct 20 -3:00 Arg -03/-02 1999 Oct 3 -4:00 Arg -04/-03 2000 Mar 3 -3:00 Arg -03/-02 # # Salta (SA), La Pampa (LP), Neuquén (NQ), Rio Negro (RN) Zone America/Argentina/Salta -4:21:40 - LMT 1894 Oct 31 #STDOFF -4:16:48.25 -4:16:48 - CMT 1920 May -4:00 - -04 1930 Dec -4:00 Arg -04/-03 1969 Oct 5 -3:00 Arg -03/-02 1991 Mar 3 -4:00 - -04 1991 Oct 20 -3:00 Arg -03/-02 1999 Oct 3 -4:00 Arg -04/-03 2000 Mar 3 -3:00 Arg -03/-02 2008 Oct 18 -3:00 - -03 # # Tucumán (TM) Zone America/Argentina/Tucuman -4:20:52 - LMT 1894 Oct 31 #STDOFF -4:16:48.25 -4:16:48 - CMT 1920 May -4:00 - -04 1930 Dec -4:00 Arg -04/-03 1969 Oct 5 -3:00 Arg -03/-02 1991 Mar 3 -4:00 - -04 1991 Oct 20 -3:00 Arg -03/-02 1999 Oct 3 -4:00 Arg -04/-03 2000 Mar 3 -3:00 - -03 2004 Jun 1 -4:00 - -04 2004 Jun 13 -3:00 Arg -03/-02 # # La Rioja (LR) Zone America/Argentina/La_Rioja -4:27:24 - LMT 1894 Oct 31 #STDOFF -4:16:48.25 -4:16:48 - CMT 1920 May -4:00 - -04 1930 Dec -4:00 Arg -04/-03 1969 Oct 5 -3:00 Arg -03/-02 1991 Mar 1 -4:00 - -04 1991 May 7 -3:00 Arg -03/-02 1999 Oct 3 -4:00 Arg -04/-03 2000 Mar 3 -3:00 - -03 2004 Jun 1 -4:00 - -04 2004 Jun 20 -3:00 Arg -03/-02 2008 Oct 18 -3:00 - -03 # # San Juan (SJ) Zone America/Argentina/San_Juan -4:34:04 - LMT 1894 Oct 31 #STDOFF -4:16:48.25 -4:16:48 - CMT 1920 May -4:00 - -04 1930 Dec -4:00 Arg -04/-03 1969 Oct 5 -3:00 Arg -03/-02 1991 Mar 1 -4:00 - -04 1991 May 7 -3:00 Arg -03/-02 1999 Oct 3 -4:00 Arg -04/-03 2000 Mar 3 -3:00 - -03 2004 May 31 -4:00 - -04 2004 Jul 25 -3:00 Arg -03/-02 2008 Oct 18 -3:00 - -03 # # Jujuy (JY) Zone America/Argentina/Jujuy -4:21:12 - LMT 1894 Oct 31 #STDOFF -4:16:48.25 -4:16:48 - CMT 1920 May -4:00 - -04 1930 Dec -4:00 Arg -04/-03 1969 Oct 5 -3:00 Arg -03/-02 1990 Mar 4 -4:00 - -04 1990 Oct 28 -4:00 1:00 -03 1991 Mar 17 -4:00 - -04 1991 Oct 6 -3:00 1:00 -02 1992 -3:00 Arg -03/-02 1999 Oct 3 -4:00 Arg -04/-03 2000 Mar 3 -3:00 Arg -03/-02 2008 Oct 18 -3:00 - -03 # # Catamarca (CT), Chubut (CH) Zone America/Argentina/Catamarca -4:23:08 - LMT 1894 Oct 31 #STDOFF -4:16:48.25 -4:16:48 - CMT 1920 May -4:00 - -04 1930 Dec -4:00 Arg -04/-03 1969 Oct 5 -3:00 Arg -03/-02 1991 Mar 3 -4:00 - -04 1991 Oct 20 -3:00 Arg -03/-02 1999 Oct 3 -4:00 Arg -04/-03 2000 Mar 3 -3:00 - -03 2004 Jun 1 -4:00 - -04 2004 Jun 20 -3:00 Arg -03/-02 2008 Oct 18 -3:00 - -03 # # Mendoza (MZ) Zone America/Argentina/Mendoza -4:35:16 - LMT 1894 Oct 31 #STDOFF -4:16:48.25 -4:16:48 - CMT 1920 May -4:00 - -04 1930 Dec -4:00 Arg -04/-03 1969 Oct 5 -3:00 Arg -03/-02 1990 Mar 4 -4:00 - -04 1990 Oct 15 -4:00 1:00 -03 1991 Mar 1 -4:00 - -04 1991 Oct 15 -4:00 1:00 -03 1992 Mar 1 -4:00 - -04 1992 Oct 18 -3:00 Arg -03/-02 1999 Oct 3 -4:00 Arg -04/-03 2000 Mar 3 -3:00 - -03 2004 May 23 -4:00 - -04 2004 Sep 26 -3:00 Arg -03/-02 2008 Oct 18 -3:00 - -03 # # San Luis (SL) Rule SanLuis 2008 2009 - Mar Sun>=8 0:00 0 - Rule SanLuis 2007 2008 - Oct Sun>=8 0:00 1:00 - Zone America/Argentina/San_Luis -4:25:24 - LMT 1894 Oct 31 #STDOFF -4:16:48.25 -4:16:48 - CMT 1920 May -4:00 - -04 1930 Dec -4:00 Arg -04/-03 1969 Oct 5 -3:00 Arg -03/-02 1990 -3:00 1:00 -02 1990 Mar 14 -4:00 - -04 1990 Oct 15 -4:00 1:00 -03 1991 Mar 1 -4:00 - -04 1991 Jun 1 -3:00 - -03 1999 Oct 3 -4:00 1:00 -03 2000 Mar 3 -3:00 - -03 2004 May 31 -4:00 - -04 2004 Jul 25 -3:00 Arg -03/-02 2008 Jan 21 -4:00 SanLuis -04/-03 2009 Oct 11 -3:00 - -03 # # Santa Cruz (SC) Zone America/Argentina/Rio_Gallegos -4:36:52 - LMT 1894 Oct 31 #STDOFF -4:16:48.25 -4:16:48 - CMT 1920 May -4:00 - -04 1930 Dec -4:00 Arg -04/-03 1969 Oct 5 -3:00 Arg -03/-02 1999 Oct 3 -4:00 Arg -04/-03 2000 Mar 3 -3:00 - -03 2004 Jun 1 -4:00 - -04 2004 Jun 20 -3:00 Arg -03/-02 2008 Oct 18 -3:00 - -03 # # Tierra del Fuego, Antártida e Islas del Atlántico Sur (TF) Zone America/Argentina/Ushuaia -4:33:12 - LMT 1894 Oct 31 #STDOFF -4:16:48.25 -4:16:48 - CMT 1920 May -4:00 - -04 1930 Dec -4:00 Arg -04/-03 1969 Oct 5 -3:00 Arg -03/-02 1999 Oct 3 -4:00 Arg -04/-03 2000 Mar 3 -3:00 - -03 2004 May 30 -4:00 - -04 2004 Jun 20 -3:00 Arg -03/-02 2008 Oct 18 -3:00 - -03 # Aruba # See America/Puerto_Rico. # Bolivia # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/La_Paz -4:32:36 - LMT 1890 -4:32:36 - CMT 1931 Oct 15 # Calamarca MT -4:32:36 1:00 BST 1932 Mar 21 # Bolivia ST -4:00 - -04 # Brazil # From Paul Eggert (1993-11-18): # The mayor of Rio recently attempted to change the time zone rules # just in his city, in order to leave more summer time for the tourist trade. # The rule change lasted only part of the day; # the federal government refused to follow the city's rules, and business # was in a chaos, so the mayor backed down that afternoon. # From IATA SSIM (1996-02): # _Only_ the following states in BR1 observe DST: Rio Grande do Sul (RS), # Santa Catarina (SC), Paraná (PR), São Paulo (SP), Rio de Janeiro (RJ), # Espírito Santo (ES), Minas Gerais (MG), Bahia (BA), Goiás (GO), # Distrito Federal (DF), Tocantins (TO), Sergipe [SE] and Alagoas [AL]. # [The last three states are new to this issue of the IATA SSIM.] # From Gwillim Law (1996-10-07): # Geography, history (Tocantins was part of Goiás until 1989), and other # sources of time zone information lead me to believe that AL, SE, and TO were # always in BR1, and so the only change was whether or not they observed DST.... # The earliest issue of the SSIM I have is 2/91. Each issue from then until # 9/95 says that DST is observed only in the ten states I quoted from 9/95, # along with Mato Grosso (MT) and Mato Grosso do Sul (MS), which are in BR2 # (UTC-4).... The other two time zones given for Brazil are BR3, which is # UTC-5, no DST, and applies only in the state of Acre (AC); and BR4, which is # UTC-2, and applies to Fernando de Noronha (formerly FN, but I believe it's # become part of the state of Pernambuco). The boundary between BR1 and BR2 # has never been clearly stated. They've simply been called East and West. # However, some conclusions can be drawn from another IATA manual: the Airline # Coding Directory, which lists close to 400 airports in Brazil. For each # airport it gives a time zone which is coded to the SSIM. From that # information, I'm led to conclude that the states of Amapá (AP), Ceará (CE), # Maranhão (MA), Paraíba (PR), Pernambuco (PE), Piauí (PI), and Rio Grande do # Norte (RN), and the eastern part of Pará (PA) are all in BR1 without DST. # From Marcos Tadeu (1998-09-27): # Brazilian official page # From Jesper Nørgaard (2000-11-03): # [For an official list of which regions in Brazil use which time zones, see:] # http://pcdsh01.on.br/Fusbr.htm # http://pcdsh01.on.br/Fusbrhv.htm # From Celso Doria via David Madeo (2002-10-09): # The reason for the delay this year has to do with elections in Brazil. # # Unlike in the United States, elections in Brazil are 100% computerized and # the results are known almost immediately. Yesterday, it was the first # round of the elections when 115 million Brazilians voted for President, # Governor, Senators, Federal Deputies, and State Deputies. Nobody is # counting (or re-counting) votes anymore and we know there will be a second # round for the Presidency and also for some Governors. The 2nd round will # take place on October 27th. # # The reason why the DST will only begin November 3rd is that the thousands # of electoral machines used cannot have their time changed, and since the # Constitution says the elections must begin at 8:00 AM and end at 5:00 PM, # the Government decided to postpone DST, instead of changing the Constitution # (maybe, for the next elections, it will be possible to change the clock)... # From Rodrigo Severo (2004-10-04): # It's just the biannual change made necessary by the much hyped, supposedly # modern Brazilian ... voting machines which, apparently, can't deal # with a time change between the first and the second rounds of the elections. # From Steffen Thorsen (2007-09-20): # Brazil will start DST on 2007-10-14 00:00 and end on 2008-02-17 00:00: # http://www.mme.gov.br/site/news/detail.do;jsessionid=BBA06811AFCAAC28F0285210913513DA?newsId=13975 # From Paul Schulze (2008-06-24): # ...by law number 11.662 of April 24, 2008 (published in the "Diario # Oficial da União"...) in Brazil there are changes in the timezones, # effective today (00:00am at June 24, 2008) as follows: # # a) The timezone UTC+5 is extinguished, with all the Acre state and the # part of the Amazonas state that had this timezone now being put to the # timezone UTC+4 # b) The whole Pará state now is put at timezone UTC+3, instead of just # part of it, as was before. # # This change follows a proposal of senator Tiao Viana of Acre state, that # proposed it due to concerns about open television channels displaying # programs inappropriate to youths in the states that had the timezone # UTC+5 too early in the night. In the occasion, some more corrections # were proposed, trying to unify the timezones of any given state. This # change modifies timezone rules defined in decree 2.784 of 18 June, # 1913. # From Rodrigo Severo (2008-06-24): # Just correcting the URL: # https://www.in.gov.br/imprensa/visualiza/index.jsp?jornal=do&secao=1&pagina=1&data=25/04/2008 # # As a result of the above Decree I believe the America/Rio_Branco # timezone shall be modified from UTC-5 to UTC-4 and a new timezone shall # be created to represent the...west side of the Pará State. I # suggest this new timezone be called Santarem as the most # important/populated city in the affected area. # # This new timezone would be the same as the Rio_Branco timezone up to # the 2008/06/24 change which would be to UTC-3 instead of UTC-4. # From Alex Krivenyshev (2008-06-24): # This is a quick reference page for New and Old Brazil Time Zones map. # http://www.worldtimezone.com/brazil-time-new-old.php # # - 4 time zones replaced by 3 time zones - eliminating time zone UTC-05 # (state Acre and the part of the Amazonas will be UTC/GMT-04) - western # part of Par state is moving to one timezone UTC-03 (from UTC-04). # From Paul Eggert (2002-10-10): # The official decrees referenced below are mostly taken from # Decretos sobre o Horário de Verão no Brasil. # http://pcdsh01.on.br/DecHV.html # From Steffen Thorsen (2008-08-29): # As announced by the government and many newspapers in Brazil late # yesterday, Brazil will start DST on 2008-10-19 (need to change rule) and # it will end on 2009-02-15 (current rule for Brazil is fine). Based on # past years experience with the elections, there was a good chance that # the start was postponed to November, but it did not happen this year. # # It has not yet been posted to http://pcdsh01.on.br/DecHV.html # # An official page about it: # http://www.mme.gov.br/site/news/detail.do?newsId=16722 # Note that this link does not always work directly, but must be accessed # by going to # http://www.mme.gov.br/first # # One example link that works directly: # http://jornale.com.br/index.php?option=com_content&task=view&id=13530&Itemid=54 # (Portuguese) # # We have a written a short article about it as well: # https://www.timeanddate.com/news/time/brazil-dst-2008-2009.html # # From Alexander Krivenyshev (2011-10-04): # State Bahia will return to Daylight savings time this year after 8 years off. # The announcement was made by Governor Jaques Wagner in an interview to a # television station in Salvador. # In Portuguese: # http://g1.globo.com/bahia/noticia/2011/10/governador-jaques-wagner-confirma-horario-de-verao-na-bahia.html # https://noticias.terra.com.br/brasil/noticias/0,,OI5390887-EI8139,00-Bahia+volta+a+ter+horario+de+verao+apos+oito+anos.html # From Guilherme Bernardes Rodrigues (2011-10-07): # There is news in the media, however there is still no decree about it. # I just send a e-mail to Zulmira Brandao at http://pcdsh01.on.br/ the # official agency about time in Brazil, and she confirmed that the old rule is # still in force. # From Guilherme Bernardes Rodrigues (2011-10-14) # It's official, the President signed a decree that includes Bahia in summer # time. # [ and in a second message (same day): ] # I found the decree. # # DECRETO No. 7.584, DE 13 DE OUTUBRO DE 2011 # Link : # http://www.in.gov.br/visualiza/index.jsp?data=13/10/2011&jornal=1000&pagina=6&totalArquivos=6 # From Kelley Cook (2012-10-16): # The governor of state of Bahia in Brazil announced on Thursday that # due to public pressure, he is reversing the DST policy they implemented # last year and will not be going to Summer Time on October 21st.... # http://www.correio24horas.com.br/r/artigo/apos-pressoes-wagner-suspende-horario-de-verao-na-bahia # From Rodrigo Severo (2012-10-16): # Tocantins state will have DST. # https://noticias.terra.com.br/brasil/noticias/0,,OI6232536-EI306.html # From Steffen Thorsen (2013-09-20): # Tocantins in Brazil is very likely not to observe DST from October.... # http://conexaoto.com.br/2013/09/18/ministerio-confirma-que-tocantins-esta-fora-do-horario-de-verao-em-2013-mas-falta-publicacao-de-decreto # We will keep this article updated when this is confirmed: # https://www.timeanddate.com/news/time/brazil-starts-dst-2013.html # From Steffen Thorsen (2013-10-17): # https://www.timeanddate.com/news/time/acre-amazonas-change-time-zone.html # Senator Jorge Viana announced that Acre will change time zone on November 10. # He did not specify the time of the change, nor if western parts of Amazonas # will change as well. # # From Paul Eggert (2013-10-17): # For now, assume western Amazonas will change as well. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S # Decree 20,466 (1931-10-01) # Decree 21,896 (1932-01-10) Rule Brazil 1931 only - Oct 3 11:00 1:00 - Rule Brazil 1932 1933 - Apr 1 0:00 0 - Rule Brazil 1932 only - Oct 3 0:00 1:00 - # Decree 23,195 (1933-10-10) # revoked DST. # Decree 27,496 (1949-11-24) # Decree 27,998 (1950-04-13) Rule Brazil 1949 1952 - Dec 1 0:00 1:00 - Rule Brazil 1950 only - Apr 16 1:00 0 - Rule Brazil 1951 1952 - Apr 1 0:00 0 - # Decree 32,308 (1953-02-24) Rule Brazil 1953 only - Mar 1 0:00 0 - # Decree 34,724 (1953-11-30) # revoked DST. # Decree 52,700 (1963-10-18) # established DST from 1963-10-23 00:00 to 1964-02-29 00:00 # in SP, RJ, GB, MG, ES, due to the prolongation of the drought. # Decree 53,071 (1963-12-03) # extended the above decree to all of the national territory on 12-09. Rule Brazil 1963 only - Dec 9 0:00 1:00 - # Decree 53,604 (1964-02-25) # extended summer time by one day to 1964-03-01 00:00 (start of school). Rule Brazil 1964 only - Mar 1 0:00 0 - # Decree 55,639 (1965-01-27) Rule Brazil 1965 only - Jan 31 0:00 1:00 - Rule Brazil 1965 only - Mar 31 0:00 0 - # Decree 57,303 (1965-11-22) Rule Brazil 1965 only - Dec 1 0:00 1:00 - # Decree 57,843 (1966-02-18) Rule Brazil 1966 1968 - Mar 1 0:00 0 - Rule Brazil 1966 1967 - Nov 1 0:00 1:00 - # Decree 63,429 (1968-10-15) # revoked DST. # Decree 91,698 (1985-09-27) Rule Brazil 1985 only - Nov 2 0:00 1:00 - # Decree 92,310 (1986-01-21) # Decree 92,463 (1986-03-13) Rule Brazil 1986 only - Mar 15 0:00 0 - # Decree 93,316 (1986-10-01) Rule Brazil 1986 only - Oct 25 0:00 1:00 - Rule Brazil 1987 only - Feb 14 0:00 0 - # Decree 94,922 (1987-09-22) Rule Brazil 1987 only - Oct 25 0:00 1:00 - Rule Brazil 1988 only - Feb 7 0:00 0 - # Decree 96,676 (1988-09-12) # except for the states of AC, AM, PA, RR, RO, and AP (then a territory) Rule Brazil 1988 only - Oct 16 0:00 1:00 - Rule Brazil 1989 only - Jan 29 0:00 0 - # Decree 98,077 (1989-08-21) # with the same exceptions Rule Brazil 1989 only - Oct 15 0:00 1:00 - Rule Brazil 1990 only - Feb 11 0:00 0 - # Decree 99,530 (1990-09-17) # adopted by RS, SC, PR, SP, RJ, ES, MG, GO, MS, DF. # Decree 99,629 (1990-10-19) adds BA, MT. Rule Brazil 1990 only - Oct 21 0:00 1:00 - Rule Brazil 1991 only - Feb 17 0:00 0 - # Unnumbered decree (1991-09-25) # adopted by RS, SC, PR, SP, RJ, ES, MG, BA, GO, MT, MS, DF. Rule Brazil 1991 only - Oct 20 0:00 1:00 - Rule Brazil 1992 only - Feb 9 0:00 0 - # Unnumbered decree (1992-10-16) # adopted by same states. Rule Brazil 1992 only - Oct 25 0:00 1:00 - Rule Brazil 1993 only - Jan 31 0:00 0 - # Decree 942 (1993-09-28) # adopted by same states, plus AM. # Decree 1,252 (1994-09-22; # web page corrected 2004-01-07) adopted by same states, minus AM. # Decree 1,636 (1995-09-14) # adopted by same states, plus MT and TO. # Decree 1,674 (1995-10-13) # adds AL, SE. Rule Brazil 1993 1995 - Oct Sun>=11 0:00 1:00 - Rule Brazil 1994 1995 - Feb Sun>=15 0:00 0 - Rule Brazil 1996 only - Feb 11 0:00 0 - # Decree 2,000 (1996-09-04) # adopted by same states, minus AL, SE. Rule Brazil 1996 only - Oct 6 0:00 1:00 - Rule Brazil 1997 only - Feb 16 0:00 0 - # From Daniel C. Sobral (1998-02-12): # In 1997, the DS began on October 6. The stated reason was that # because international television networks ignored Brazil's policy on DS, # they bought the wrong times on satellite for coverage of Pope's visit. # This year, the ending date of DS was postponed to March 1 # to help dealing with the shortages of electric power. # # Decree 2,317 (1997-09-04), adopted by same states. Rule Brazil 1997 only - Oct 6 0:00 1:00 - # Decree 2,495 # (1998-02-10) Rule Brazil 1998 only - Mar 1 0:00 0 - # Decree 2,780 (1998-09-11) # adopted by the same states as before. Rule Brazil 1998 only - Oct 11 0:00 1:00 - Rule Brazil 1999 only - Feb 21 0:00 0 - # Decree 3,150 # (1999-08-23) adopted by same states. # Decree 3,188 (1999-09-30) # adds SE, AL, PB, PE, RN, CE, PI, MA and RR. Rule Brazil 1999 only - Oct 3 0:00 1:00 - Rule Brazil 2000 only - Feb 27 0:00 0 - # Decree 3,592 (2000-09-06) # adopted by the same states as before. # Decree 3,630 (2000-10-13) # repeals DST in PE and RR, effective 2000-10-15 00:00. # Decree 3,632 (2000-10-17) # repeals DST in SE, AL, PB, RN, CE, PI and MA, effective 2000-10-22 00:00. # Decree 3,916 # (2001-09-13) reestablishes DST in AL, CE, MA, PB, PE, PI, RN, SE. Rule Brazil 2000 2001 - Oct Sun>=8 0:00 1:00 - Rule Brazil 2001 2006 - Feb Sun>=15 0:00 0 - # Decree 4,399 (2002-10-01) repeals DST in AL, CE, MA, PB, PE, PI, RN, SE. # 4,399 Rule Brazil 2002 only - Nov 3 0:00 1:00 - # Decree 4,844 (2003-09-24; corrected 2003-09-26) repeals DST in BA, MT, TO. # 4,844 Rule Brazil 2003 only - Oct 19 0:00 1:00 - # Decree 5,223 (2004-10-01) reestablishes DST in MT. # 5,223 Rule Brazil 2004 only - Nov 2 0:00 1:00 - # Decree 5,539 (2005-09-19), # adopted by the same states as before. Rule Brazil 2005 only - Oct 16 0:00 1:00 - # Decree 5,920 (2006-10-03), # adopted by the same states as before. Rule Brazil 2006 only - Nov 5 0:00 1:00 - Rule Brazil 2007 only - Feb 25 0:00 0 - # Decree 6,212 (2007-09-26), # adopted by the same states as before. Rule Brazil 2007 only - Oct Sun>=8 0:00 1:00 - # From Frederico A. C. Neves (2008-09-10): # According to this decree # http://www.planalto.gov.br/ccivil_03/_Ato2007-2010/2008/Decreto/D6558.htm # [t]he DST period in Brazil now on will be from the 3rd Oct Sunday to the # 3rd Feb Sunday. There is an exception on the return date when this is # the Carnival Sunday then the return date will be the next Sunday... Rule Brazil 2008 2017 - Oct Sun>=15 0:00 1:00 - Rule Brazil 2008 2011 - Feb Sun>=15 0:00 0 - # Decree 7,584 (2011-10-13) # added Bahia. Rule Brazil 2012 only - Feb Sun>=22 0:00 0 - # Decree 7,826 (2012-10-15) # removed Bahia and added Tocantins. # Decree 8,112 (2013-09-30) # removed Tocantins. Rule Brazil 2013 2014 - Feb Sun>=15 0:00 0 - Rule Brazil 2015 only - Feb Sun>=22 0:00 0 - Rule Brazil 2016 2019 - Feb Sun>=15 0:00 0 - # From Steffen Thorsen (2017-12-18): # According to many media sources, next year's DST start in Brazil will move to # the first Sunday of November # ... https://www.timeanddate.com/news/time/brazil-delays-dst-2018.html # From Steffen Thorsen (2017-12-20): # http://www.planalto.gov.br/ccivil_03/_ato2015-2018/2017/decreto/D9242.htm # From Fábio Gomes (2018-10-04): # The Brazilian president just announced a new change on this year DST. # It was scheduled to start on November 4th and it was changed to November 18th. # From Rodrigo Brüning Wessler (2018-10-15): # The Brazilian government just announced that the change in DST was # canceled.... Maybe the president Michel Temer also woke up one hour # earlier today. :) Rule Brazil 2018 only - Nov Sun>=1 0:00 1:00 - # The last ruleset listed above says that the following states observed DST: # DF, ES, GO, MG, MS, MT, PR, RJ, RS, SC, SP. # # From Steffen Thorsen (2019-04-05): # According to multiple sources the Brazilian president wants to get rid of DST. # https://gmconline.com.br/noticias/politica/bolsonaro-horario-de-verao-deve-acabar-este-ano # https://g1.globo.com/economia/noticia/2019/04/05/governo-anuncia-fim-do-horario-de-verao.ghtml # From Marcus Diniz (2019-04-25): # Brazil no longer has DST changes - decree signed today # https://g1.globo.com/politica/noticia/2019/04/25/bolsonaro-assina-decreto-que-acaba-com-o-horario-de-verao.ghtml # From Daniel Soares de Oliveira (2019-04-26): # http://www.planalto.gov.br/ccivil_03/_Ato2019-2022/2019/Decreto/D9772.htm # Zone NAME STDOFF RULES FORMAT [UNTIL] # # Fernando de Noronha (administratively part of PE) Zone America/Noronha -2:09:40 - LMT 1914 -2:00 Brazil -02/-01 1990 Sep 17 -2:00 - -02 1999 Sep 30 -2:00 Brazil -02/-01 2000 Oct 15 -2:00 - -02 2001 Sep 13 -2:00 Brazil -02/-01 2002 Oct 1 -2:00 - -02 # Other Atlantic islands have no permanent settlement. # These include Trindade and Martim Vaz (administratively part of ES), # Rocas Atoll (RN), and the St Peter and St Paul Archipelago (PE). # Fernando de Noronha was a separate territory from 1942-09-02 to 1989-01-01; # it also included the Penedos. # # Amapá (AP), east Pará (PA) # East Pará includes Belém, Marabá, Serra Norte, and São Félix do Xingu. # The division between east and west Pará is the river Xingu. # In the north a very small part from the river Javary (now Jari I guess, # the border with Amapá) to the Amazon, then to the Xingu. Zone America/Belem -3:13:56 - LMT 1914 -3:00 Brazil -03/-02 1988 Sep 12 -3:00 - -03 # # west Pará (PA) # West Pará includes Altamira, Óbidos, Prainha, Oriximiná, and Santarém. Zone America/Santarem -3:38:48 - LMT 1914 -4:00 Brazil -04/-03 1988 Sep 12 -4:00 - -04 2008 Jun 24 0:00 -3:00 - -03 # # Maranhão (MA), Piauí (PI), Ceará (CE), Rio Grande do Norte (RN), # Paraíba (PB) Zone America/Fortaleza -2:34:00 - LMT 1914 -3:00 Brazil -03/-02 1990 Sep 17 -3:00 - -03 1999 Sep 30 -3:00 Brazil -03/-02 2000 Oct 22 -3:00 - -03 2001 Sep 13 -3:00 Brazil -03/-02 2002 Oct 1 -3:00 - -03 # # Pernambuco (PE) (except Atlantic islands) Zone America/Recife -2:19:36 - LMT 1914 -3:00 Brazil -03/-02 1990 Sep 17 -3:00 - -03 1999 Sep 30 -3:00 Brazil -03/-02 2000 Oct 15 -3:00 - -03 2001 Sep 13 -3:00 Brazil -03/-02 2002 Oct 1 -3:00 - -03 # # Tocantins (TO) Zone America/Araguaina -3:12:48 - LMT 1914 -3:00 Brazil -03/-02 1990 Sep 17 -3:00 - -03 1995 Sep 14 -3:00 Brazil -03/-02 2003 Sep 24 -3:00 - -03 2012 Oct 21 -3:00 Brazil -03/-02 2013 Sep -3:00 - -03 # # Alagoas (AL), Sergipe (SE) Zone America/Maceio -2:22:52 - LMT 1914 -3:00 Brazil -03/-02 1990 Sep 17 -3:00 - -03 1995 Oct 13 -3:00 Brazil -03/-02 1996 Sep 4 -3:00 - -03 1999 Sep 30 -3:00 Brazil -03/-02 2000 Oct 22 -3:00 - -03 2001 Sep 13 -3:00 Brazil -03/-02 2002 Oct 1 -3:00 - -03 # # Bahia (BA) # There are too many Salvadors elsewhere, so use America/Bahia instead # of America/Salvador. Zone America/Bahia -2:34:04 - LMT 1914 -3:00 Brazil -03/-02 2003 Sep 24 -3:00 - -03 2011 Oct 16 -3:00 Brazil -03/-02 2012 Oct 21 -3:00 - -03 # # Goiás (GO), Distrito Federal (DF), Minas Gerais (MG), # Espírito Santo (ES), Rio de Janeiro (RJ), São Paulo (SP), Paraná (PR), # Santa Catarina (SC), Rio Grande do Sul (RS) Zone America/Sao_Paulo -3:06:28 - LMT 1914 -3:00 Brazil -03/-02 1963 Oct 23 0:00 -3:00 1:00 -02 1964 -3:00 Brazil -03/-02 # # Mato Grosso do Sul (MS) Zone America/Campo_Grande -3:38:28 - LMT 1914 -4:00 Brazil -04/-03 # # Mato Grosso (MT) Zone America/Cuiaba -3:44:20 - LMT 1914 -4:00 Brazil -04/-03 2003 Sep 24 -4:00 - -04 2004 Oct 1 -4:00 Brazil -04/-03 # # Rondônia (RO) Zone America/Porto_Velho -4:15:36 - LMT 1914 -4:00 Brazil -04/-03 1988 Sep 12 -4:00 - -04 # # Roraima (RR) Zone America/Boa_Vista -4:02:40 - LMT 1914 -4:00 Brazil -04/-03 1988 Sep 12 -4:00 - -04 1999 Sep 30 -4:00 Brazil -04/-03 2000 Oct 15 -4:00 - -04 # # east Amazonas (AM): Boca do Acre, Jutaí, Manaus, Floriano Peixoto # The great circle line from Tabatinga to Porto Acre divides # east from west Amazonas. Zone America/Manaus -4:00:04 - LMT 1914 -4:00 Brazil -04/-03 1988 Sep 12 -4:00 - -04 1993 Sep 28 -4:00 Brazil -04/-03 1994 Sep 22 -4:00 - -04 # # west Amazonas (AM): Atalaia do Norte, Boca do Maoco, Benjamin Constant, # Eirunepé, Envira, Ipixuna Zone America/Eirunepe -4:39:28 - LMT 1914 -5:00 Brazil -05/-04 1988 Sep 12 -5:00 - -05 1993 Sep 28 -5:00 Brazil -05/-04 1994 Sep 22 -5:00 - -05 2008 Jun 24 0:00 -4:00 - -04 2013 Nov 10 -5:00 - -05 # # Acre (AC) Zone America/Rio_Branco -4:31:12 - LMT 1914 -5:00 Brazil -05/-04 1988 Sep 12 -5:00 - -05 2008 Jun 24 0:00 -4:00 - -04 2013 Nov 10 -5:00 - -05 # Chile # From Paul Eggert (2022-03-15): # Shanks & Pottenger says America/Santiago introduced standard time in # 1890 and rounds its UT offset to 70W40; guess that in practice this # was the same offset as in 1916-1919. It also says Pacific/Easter # standardized on 109W22 in 1890; assume this didn't change the clocks. # # Dates for America/Santiago from 1910 to 2004 are primarily from # the following source, cited by Oscar van Vlijmen (2006-10-08): # [1] Chile Law # http://www.webexhibits.org/daylightsaving/chile.html # This contains a copy of this official table: # Cambios en la hora oficial de Chile desde 1900 (retrieved 2008-03-30) # https://web.archive.org/web/20080330200901/http://www.horaoficial.cl/cambio.htm # [1] needs several corrections, though. # # The first set of corrections is from: # [2] History of the Official Time of Chile # http://www.horaoficial.cl/ing/horaof_ing.html (retrieved 2012-03-06). See: # https://web.archive.org/web/20120306042032/http://www.horaoficial.cl/ing/horaof_ing.html # This is an English translation of: # Historia de la hora oficial de Chile (retrieved 2012-10-24). See: # https://web.archive.org/web/20121024234627/http://www.horaoficial.cl/horaof.htm # A fancier Spanish version (requiring mouse-clicking) is at: # http://www.horaoficial.cl/historia_hora.php # Conflicts between [1] and [2] were resolved as follows: # # - [1] says the 1910 transition was Jan 1, [2] says Jan 10 and cites # Boletín No. 1, Aviso No. 1 (1910). Go with [2]. # # - [1] says SMT was -4:42:45, [2] says Chile's official time from # 1916 to 1919 was -4:42:46.3, the meridian of Chile's National # Astronomical Observatory (OAN), then located in what is now # Quinta Normal in Santiago. Go with [1], as this matches the meridian # referred to by the relevant Chilean laws to this day. # # - [1] says the 1918 transition was Sep 1, [2] says Sep 10 and cites # Boletín No. 22, Aviso No. 129/1918 (1918-08-23). Go with [2]. # # - [1] does not give times for transitions; assume they occur # at midnight mainland time, the current common practice. However, # go with [2]'s specification of 23:00 for the 1947-05-21 transition. # # Another correction to [1] is from Jesper Nørgaard Welen, who # wrote (2006-10-08), "I think that there are some obvious mistakes in # the suggested link from Oscar van Vlijmen,... for instance entry 66 # says that GMT-4 ended 1990-09-12 while entry 67 only begins GMT-3 at # 1990-09-15 (they should have been 1990-09-15 and 1990-09-16 # respectively), but anyhow it clears up some doubts too." # # Data for Pacific/Easter from 1910 through 1967 come from Shanks & # Pottenger. After that, for lack of better info assume # Pacific/Easter is always two hours behind America/Santiago; # this is known to work for DST transitions starting in 2008 and # may well be true for earlier transitions. # From Tim Parenti (2022-07-06): # For a brief period of roughly six weeks in 1946, DST was only observed on an # emergency basis in specific regions of central Chile; namely, "the national # territory between the provinces of Coquimbo and Concepción, inclusive". # This was enacted by Decree 3,891, dated 1946-07-13, and took effect # 1946-07-14 24:00, advancing these central regions to -03. # https://www.diariooficial.interior.gob.cl/versiones-anteriores/do-h/19460715/#page/1 # The decree contemplated "[t]hat this advancement of the Official Time, even # though it has been proposed for the cities of Santiago and Valparaíso only, # must be agreed with that of other cities, due to the connection of various # activities that require it, such as, for example, the operation of rail # services". It was originally set to expire after 30 days but was extended # through 1946-08-31 by Decree 4,506, dated 1946-08-13. # https://www.diariooficial.interior.gob.cl/versiones-anteriores/do-h/19460814/#page/1 # # Law Number 8,522, promulgated 1946-08-27, reunified Chilean clocks at their # new "Summer Time" of -04, reckoned as that of "the meridian of the # Astronomical Observatory of Lo Espejo, advanced by 42 minutes and 45 # seconds". Although this law specified the new Summer Time to start on 1 # September each year, a special "transitional article" started it a few days # early, as soon as the law took effect. As the law was to take force "from # the date of its publication in the 'Diario Oficial', which happened the # following day, presume the change took place in Santiago and its environs # from 24:00 -03 to 23:00 -04 on Wednesday 1946-08-28. Although this was a # no-op for wall clocks in the north and south of the country, put their formal # start to DST an hour later when they reached 24:00 -04. # https://www.diariooficial.interior.gob.cl/versiones-anteriores/do-h/19460828/#page/1 # After a brief "Winter Time" stint at -05 beginning 1947-04-01, Law Number # 8,777, promulgated 1947-05-17, established year-round -04 "from 23:00 on the # second day after it is published in the 'Diario Oficial'." It was published # on Monday 1947-05-19 and so took effect from Wednesday 1947-05-21 23:00. # https://www.diariooficial.interior.gob.cl/versiones-anteriores/do-h/19470519/#page/1 # From Eduardo Krell (1995-10-19): # The law says to switch to DST at midnight [24:00] on the second SATURDAY # of October.... The law is the same for March and October. # (1998-09-29): # Because of the drought this year, the government decided to go into # DST earlier (saturday 9/26 at 24:00). This is a one-time change only ... # (unless there's another dry season next year, I guess). # From Julio I. Pacheco Troncoso (1999-03-18): # Because of the same drought, the government decided to end DST later, # on April 3, (one-time change). # From Germán Poo-Caamaño (2008-03-03): # Due to drought, Chile extends Daylight Time in three weeks. This # is one-time change (Saturday 3/29 at 24:00 for America/Santiago # and Saturday 3/29 at 22:00 for Pacific/Easter) # The Supreme Decree is located at # http://www.shoa.cl/servicios/supremo316.pdf # # From José Miguel Garrido (2008-03-05): # http://www.shoa.cl/noticias/2008/04hora/hora.htm # From Angel Chiang (2010-03-04): # Subject: DST in Chile exceptionally extended to 3 April due to earthquake # http://www.gobiernodechile.cl/viewNoticia.aspx?idArticulo=30098 # # From Arthur David Olson (2010-03-06): # Angel Chiang's message confirmed by Julio Pacheco; Julio provided a patch. # From Glenn Eychaner (2011-03-28): # http://diario.elmercurio.com/2011/03/28/_portada/_portada/noticias/7565897A-CA86-49E6-9E03-660B21A4883E.htm?id=3D{7565897A-CA86-49E6-9E03-660B21A4883E} # In English: # Chile's clocks will go back an hour this year on the 7th of May instead # of this Saturday. They will go forward again the 3rd Saturday in # August, not in October as they have since 1968. # From Mauricio Parada (2012-02-22), translated by Glenn Eychaner (2012-02-23): # As stated in the website of the Chilean Energy Ministry # http://www.minenergia.cl/ministerio/noticias/generales/gobierno-anuncia-fechas-de-cambio-de.html # The Chilean Government has decided to postpone the entrance into winter time # (to leave DST) from March 11 2012 to April 28th 2012.... # Quote from the website communication: # # 6. For the year 2012, the dates of entry into winter time will be as follows: # a. Saturday April 28, 2012, clocks should go back 60 minutes; that is, at # 23:59:59, instead of passing to 0:00, the time should be adjusted to be 23:00 # of the same day. # b. Saturday, September 1, 2012, clocks should go forward 60 minutes; that is, # at 23:59:59, instead of passing to 0:00, the time should be adjusted to be # 01:00 on September 2. # From Steffen Thorsen (2013-02-15): # According to several news sources, Chile has extended DST this year, # they will end DST later and start DST earlier than planned. They # hope to save energy. The new end date is 2013-04-28 00:00 and new # start date is 2013-09-08 00:00.... # http://www.gob.cl/informa/2013/02/15/gobierno-anuncia-fechas-de-cambio-de-hora-para-el-ano-2013.htm # From José Miguel Garrido (2014-02-19): # Today appeared in the Diario Oficial a decree amending the time change # dates to 2014. # DST End: last Saturday of April 2014 (Sun 27 Apr 2014 03:00 UTC) # DST Start: first Saturday of September 2014 (Sun 07 Sep 2014 04:00 UTC) # http://www.diariooficial.interior.gob.cl//media/2014/02/19/do-20140219.pdf # From Eduardo Romero Urra (2015-03-03): # Today has been published officially that Chile will use the DST time # permanently until March 25 of 2017 # http://www.diariooficial.interior.gob.cl/media/2015/03/03/1-large.jpg # # From Paul Eggert (2015-03-03): # For now, assume that the extension will persist indefinitely. # From Juan Correa (2016-03-18): # The decree regarding DST has been published in today's Official Gazette: # http://www.diariooficial.interior.gob.cl/versiones-anteriores/do/20160318/ # http://www.leychile.cl/Navegar?idNorma=1088502 # It does consider the second Saturday of May and August as the dates # for the transition; and it lists DST dates until 2019, but I think # this scheme will stick. # # From Paul Eggert (2016-03-18): # For now, assume the pattern holds for the indefinite future. # The decree says transitions occur at 24:00; in practice this appears # to mean 24:00 mainland time, not 24:00 local time, so that Easter # Island is always two hours behind the mainland. # From Juan Correa (2016-12-04): # Magallanes region ... will keep DST (UTC -3) all year round.... # http://www.soychile.cl/Santiago/Sociedad/2016/12/04/433428/Bachelet-firmo-el-decreto-para-establecer-un-horario-unico-para-la-Region-de-Magallanes.aspx # From Deborah Goldsmith (2017-01-19): # http://www.diariooficial.interior.gob.cl/publicaciones/2017/01/17/41660/01/1169626.pdf # From Juan Correa (2018-08-13): # As of moments ago, the Ministry of Energy in Chile has announced the new # schema for DST. ... Announcement in video (in Spanish): # https://twitter.com/MinEnergia/status/1029000399129374720 # From Yonathan Dossow (2018-08-13): # The video says "first Saturday of September", we all know it means Sunday at # midnight. # From Tim Parenti (2018-08-13): # Translating the captions on the video at 0:44-0:55, "We want to announce as # Government that from 2019, Winter Time will be increased to 5 months, between # the first Saturday of April and the first Saturday of September." # At 2:08-2:20, "The Magallanes region will maintain its current time, as # decided by the citizens during 2017, but our Government will promote a # regional dialogue table to gather their opinion on this matter." # https://twitter.com/MinEnergia/status/1029009354001973248 # "We will keep the new time policy unchanged for at least the next 4 years." # So we extend the new rules on Saturdays at 24:00 mainland time indefinitely. # From Juan Correa (2019-02-04): # http://www.diariooficial.interior.gob.cl/publicaciones/2018/11/23/42212/01/1498738.pdf # From Juan Correa (2022-04-02): # I found there was a decree published last Thursday that will keep # Magallanes region to UTC -3 "indefinitely". The decree is available at # https://www.diariooficial.interior.gob.cl/publicaciones/2022/03/31/43217-B/01/2108910.pdf # From Juan Correa (2022-08-09): # the Internal Affairs Ministry (Ministerio del Interior) informed DST # for America/Santiago will start on midnight of September 11th; # and will end on April 1st, 2023. Magallanes region (America/Punta_Arenas) # will keep UTC -3 "indefinitely"... This is because on September 4th # we will have a voting whether to approve a new Constitution.... # https://www.interior.gob.cl/noticias/2022/08/09/comunicado-el-proximo-sabado-10-de-septiembre-los-relojes-se-deben-adelantar-una-hora/ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Chile 1927 1931 - Sep 1 0:00 1:00 - Rule Chile 1928 1932 - Apr 1 0:00 0 - Rule Chile 1968 only - Nov 3 4:00u 1:00 - Rule Chile 1969 only - Mar 30 3:00u 0 - Rule Chile 1969 only - Nov 23 4:00u 1:00 - Rule Chile 1970 only - Mar 29 3:00u 0 - Rule Chile 1971 only - Mar 14 3:00u 0 - Rule Chile 1970 1972 - Oct Sun>=9 4:00u 1:00 - Rule Chile 1972 1986 - Mar Sun>=9 3:00u 0 - Rule Chile 1973 only - Sep 30 4:00u 1:00 - Rule Chile 1974 1987 - Oct Sun>=9 4:00u 1:00 - Rule Chile 1987 only - Apr 12 3:00u 0 - Rule Chile 1988 1990 - Mar Sun>=9 3:00u 0 - Rule Chile 1988 1989 - Oct Sun>=9 4:00u 1:00 - Rule Chile 1990 only - Sep 16 4:00u 1:00 - Rule Chile 1991 1996 - Mar Sun>=9 3:00u 0 - Rule Chile 1991 1997 - Oct Sun>=9 4:00u 1:00 - Rule Chile 1997 only - Mar 30 3:00u 0 - Rule Chile 1998 only - Mar Sun>=9 3:00u 0 - Rule Chile 1998 only - Sep 27 4:00u 1:00 - Rule Chile 1999 only - Apr 4 3:00u 0 - Rule Chile 1999 2010 - Oct Sun>=9 4:00u 1:00 - Rule Chile 2000 2007 - Mar Sun>=9 3:00u 0 - # N.B.: the end of March 29 in Chile is March 30 in Universal time, # which is used below in specifying the transition. Rule Chile 2008 only - Mar 30 3:00u 0 - Rule Chile 2009 only - Mar Sun>=9 3:00u 0 - Rule Chile 2010 only - Apr Sun>=1 3:00u 0 - Rule Chile 2011 only - May Sun>=2 3:00u 0 - Rule Chile 2011 only - Aug Sun>=16 4:00u 1:00 - Rule Chile 2012 2014 - Apr Sun>=23 3:00u 0 - Rule Chile 2012 2014 - Sep Sun>=2 4:00u 1:00 - Rule Chile 2016 2018 - May Sun>=9 3:00u 0 - Rule Chile 2016 2018 - Aug Sun>=9 4:00u 1:00 - Rule Chile 2019 max - Apr Sun>=2 3:00u 0 - Rule Chile 2019 2021 - Sep Sun>=2 4:00u 1:00 - Rule Chile 2022 only - Sep Sun>=9 4:00u 1:00 - Rule Chile 2023 max - Sep Sun>=2 4:00u 1:00 - # IATA SSIM anomalies: (1992-02) says 1992-03-14; # (1996-09) says 1998-03-08. Ignore these. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Santiago -4:42:45 - LMT 1890 -4:42:45 - SMT 1910 Jan 10 # Santiago Mean Time -5:00 - -05 1916 Jul 1 -4:42:45 - SMT 1918 Sep 10 -4:00 - -04 1919 Jul 1 -4:42:45 - SMT 1927 Sep 1 -5:00 Chile -05/-04 1932 Sep 1 -4:00 - -04 1942 Jun 1 -5:00 - -05 1942 Aug 1 -4:00 - -04 1946 Jul 14 24:00 -4:00 1:00 -03 1946 Aug 28 24:00 # central CL -5:00 1:00 -04 1947 Mar 31 24:00 -5:00 - -05 1947 May 21 23:00 -4:00 Chile -04/-03 Zone America/Punta_Arenas -4:43:40 - LMT 1890 -4:42:45 - SMT 1910 Jan 10 -5:00 - -05 1916 Jul 1 -4:42:45 - SMT 1918 Sep 10 -4:00 - -04 1919 Jul 1 -4:42:45 - SMT 1927 Sep 1 -5:00 Chile -05/-04 1932 Sep 1 -4:00 - -04 1942 Jun 1 -5:00 - -05 1942 Aug 1 -4:00 - -04 1946 Aug 28 24:00 -5:00 1:00 -04 1947 Mar 31 24:00 -5:00 - -05 1947 May 21 23:00 -4:00 Chile -04/-03 2016 Dec 4 -3:00 - -03 Zone Pacific/Easter -7:17:28 - LMT 1890 -7:17:28 - EMT 1932 Sep # Easter Mean Time -7:00 Chile -07/-06 1982 Mar 14 3:00u # Easter Time -6:00 Chile -06/-05 # # Salas y Gómez Island is uninhabited. # Other Chilean locations, including Juan Fernández Is, Desventuradas Is, # and Antarctic bases, are like America/Santiago. # Antarctic base using South American rules # (See the file 'antarctica' for more.) # # Palmer, Anvers Island, since 1965 (moved 2 miles in 1968) # # From Ethan Dicks (1996-10-06): # It keeps the same time as Punta Arenas, Chile, because, just like us # and the South Pole, that's the other end of their supply line.... # I verified with someone who was there that since 1980, # Palmer has followed Chile. Prior to that, before the Falklands War, # Palmer used to be supplied from Argentina. # # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Antarctica/Palmer 0 - -00 1965 -4:00 Arg -04/-03 1969 Oct 5 -3:00 Arg -03/-02 1982 May -4:00 Chile -04/-03 2016 Dec 4 -3:00 - -03 # Colombia # Milne gives 4:56:16.4 for Bogotá time in 1899. He writes, # "A variation of fifteen minutes in the public clocks of Bogota is not rare." # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule CO 1992 only - May 3 0:00 1:00 - Rule CO 1993 only - Apr 4 0:00 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] #STDOFF -4:56:16.4 Zone America/Bogota -4:56:16 - LMT 1884 Mar 13 -4:56:16 - BMT 1914 Nov 23 # Bogotá Mean Time -5:00 CO -05/-04 # Malpelo, Providencia, San Andres # no information; probably like America/Bogota # Curaçao # See America/Puerto_Rico. # # From Arthur David Olson (2011-06-15): # use links for places with new iso3166 codes. # The name "Lower Prince's Quarter" is both longer than fourteen characters # and contains an apostrophe; use "Lower_Princes".... # From Paul Eggert (2021-09-29): # These backward-compatibility links now are in the 'northamerica' file. # Ecuador # # Milne says the Central and South American Telegraph Company used -5:24:15. # # From Alois Treindl (2016-12-15): # https://www.elcomercio.com/actualidad/hora-sixto-1993.html # ... Whether the law applied also to Galápagos, I do not know. # From Paul Eggert (2016-12-15): # https://www.elcomercio.com/afull/modificacion-husohorario-ecuador-presidentes-decreto.html # This says President Sixto Durán Ballén signed decree No. 285, which # established DST from 1992-11-28 to 1993-02-05; it does not give transition # times. The people called it "hora de Sixto" ("Sixto hour"). The change did # not go over well; a popular song "Qué hora es" by Jaime Guevara had lyrics # that included "Amanecía en mitad de la noche, los guaguas iban a clase sin # sol" ("It was dawning in the middle of the night, the buses went to class # without sun"). Although Ballén's campaign slogan was "Ni un paso atrás" # (Not one step back), the clocks went back in 1993 and the experiment was not # repeated. For now, assume transitions were at 00:00 local time country-wide. # # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Ecuador 1992 only - Nov 28 0:00 1:00 - Rule Ecuador 1993 only - Feb 5 0:00 0 - # # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Guayaquil -5:19:20 - LMT 1890 -5:14:00 - QMT 1931 # Quito Mean Time -5:00 Ecuador -05/-04 Zone Pacific/Galapagos -5:58:24 - LMT 1931 # Puerto Baquerizo Moreno -5:00 - -05 1986 -6:00 Ecuador -06/-05 # Falklands # From Paul Eggert (2006-03-22): # Between 1990 and 2000 inclusive, Shanks & Pottenger and the IATA agree except # the IATA gives 1996-09-08. Go with Shanks & Pottenger. # From Falkland Islands Government Office, London (2001-01-22) # via Jesper Nørgaard: # ... the clocks revert back to Local Mean Time at 2 am on Sunday 15 # April 2001 and advance one hour to summer time at 2 am on Sunday 2 # September. It is anticipated that the clocks will revert back at 2 # am on Sunday 21 April 2002 and advance to summer time at 2 am on # Sunday 1 September. # From Rives McDow (2001-02-13): # # I have communicated several times with people there, and the last # time I had communications that was helpful was in 1998. Here is # what was said then: # # "The general rule was that Stanley used daylight saving and the Camp # did not. However for various reasons many people in the Camp have # started to use daylight saving (known locally as 'Stanley Time') # There is no rule as to who uses daylight saving - it is a matter of # personal choice and so it is impossible to draw a map showing who # uses it and who does not. Any list would be out of date as soon as # it was produced. This year daylight saving ended on April 18/19th # and started again on September 12/13th. I do not know what the rule # is, but can find out if you like. We do not change at the same time # as UK or Chile." # # I did have in my notes that the rule was "Second Saturday in Sep at # 0:00 until third Saturday in Apr at 0:00". I think that this does # not agree in some cases with Shanks; is this true? # # Also, there is no mention in the list that some areas in the # Falklands do not use DST. I have found in my communications there # that these areas are on the western half of East Falkland and all of # West Falkland. Stanley is the only place that consistently observes # DST. Again, as in other places in the world, the farmers don't like # it. West Falkland is almost entirely sheep farmers. # # I know one lady there that keeps a list of which farm keeps DST and # which doesn't each year. She runs a shop in Stanley, and says that # the list changes each year. She uses it to communicate to her # customers, catching them when they are home for lunch or dinner. # From Paul Eggert (2001-03-05): # For now, we'll just record the time in Stanley, since we have no # better info. # From Steffen Thorsen (2011-04-01): # The Falkland Islands will not turn back clocks this winter, but stay on # daylight saving time. # # One source: # http://www.falklandnews.com/public/story.cfm?get=5914&source=3 # # We have gotten this confirmed by a clerk of the legislative assembly: # Normally the clocks revert to Local Mean Time (UTC/GMT -4 hours) on the # third Sunday of April at 0200hrs and advance to Summer Time (UTC/GMT -3 # hours) on the first Sunday of September at 0200hrs. # # IMPORTANT NOTE: During 2011, on a trial basis, the Falkland Islands # will not revert to local mean time, but clocks will remain on Summer # time (UTC/GMT - 3 hours) throughout the whole of 2011. Any long term # change to local time following the trial period will be notified. # # From Andrew Newman (2012-02-24) # A letter from Justin McPhee, Chief Executive, # Cable & Wireless Falkland Islands (dated 2012-02-22) # states... # The current Atlantic/Stanley entry under South America expects the # clocks to go back to standard Falklands Time (FKT) on the 15th April. # The database entry states that in 2011 Stanley was staying on fixed # summer time on a trial basis only. FIG need to contact IANA and/or # the maintainers of the database to inform them we're adopting # the same policy this year and suggest recommendations for future years. # # For now we will assume permanent -03 for the Falklands # until advised differently (to apply for 2012 and beyond, after the 2011 # experiment was apparently successful.) # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Falk 1937 1938 - Sep lastSun 0:00 1:00 - Rule Falk 1938 1942 - Mar Sun>=19 0:00 0 - Rule Falk 1939 only - Oct 1 0:00 1:00 - Rule Falk 1940 1942 - Sep lastSun 0:00 1:00 - Rule Falk 1943 only - Jan 1 0:00 0 - Rule Falk 1983 only - Sep lastSun 0:00 1:00 - Rule Falk 1984 1985 - Apr lastSun 0:00 0 - Rule Falk 1984 only - Sep 16 0:00 1:00 - Rule Falk 1985 2000 - Sep Sun>=9 0:00 1:00 - Rule Falk 1986 2000 - Apr Sun>=16 0:00 0 - Rule Falk 2001 2010 - Apr Sun>=15 2:00 0 - Rule Falk 2001 2010 - Sep Sun>=1 2:00 1:00 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Atlantic/Stanley -3:51:24 - LMT 1890 -3:51:24 - SMT 1912 Mar 12 # Stanley Mean Time -4:00 Falk -04/-03 1983 May -3:00 Falk -03/-02 1985 Sep 15 -4:00 Falk -04/-03 2010 Sep 5 2:00 -3:00 - -03 # French Guiana # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Cayenne -3:29:20 - LMT 1911 Jul -4:00 - -04 1967 Oct -3:00 - -03 # Guyana # From P Chan (2020-11-27): # https://books.google.com/books?id=5-5CAQAAMAAJ&pg=SA1-PA547 # The Official Gazette of British Guiana. (New Series.) Vol. XL. July to # December, 1915, p 1547, lists as several notes: # "Local Mean Time 3 hours 52 mins. 39 secs. slow of Greenwich Mean Time # (Georgetown.) From 1st August, 1911, British Guiana Standard Mean Time 4 # hours slow of Greenwich Mean Time, by notice in Official Gazette on 1st July, # 1911. From 1st March, 1915, British Guiana Standard Mean Time 3 hours 45 # mins. 0 secs. slow of Greenwich Mean Time, by notice in Official Gazette on # 23rd January, 1915." # # https://parliament.gov.gy/documents/acts/10923-act_no._27_of_1975_-_interpretation_and_general_clauses_(amendment)_act_1975.pdf # Interpretation and general clauses (Amendment) Act 1975 (Act No. 27 of 1975) # [dated 1975-07-31] # "This Act...shall come into operation on 1st August, 1975." # "...where any expression of time occurs...the time referred to shall signify # the standard time of Guyana which shall be three hours behind Greenwich Mean # Time." # # Circular No. 10/1992 dated 1992-03-20 # https://dps.gov.gy/wp-content/uploads/2018/12/1992-03-20-Circular-010.pdf # "...cabinet has decided that with effect from Sunday 29th March, 1992, Guyana # Standard Time would be re-established at 01:00 hours by adjusting the hands # of the clock back to 24:00 hours." # Legislated in the Interpretation and general clauses (Amendment) Act 1992 # (Act No. 6 of 1992) [passed 1992-03-27, published 1992-04-18] # https://parliament.gov.gy/documents/acts/5885-6_of_1992_interpretation_and_general_clauses_(amendment)_act_1992.pdf # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Guyana -3:52:39 - LMT 1911 Aug 1 # Georgetown -4:00 - -04 1915 Mar 1 -3:45 - -0345 1975 Aug 1 -3:00 - -03 1992 Mar 29 1:00 -4:00 - -04 # Paraguay # # From Paul Eggert (2006-03-22): # Shanks & Pottenger say that spring transitions are 01:00 -> 02:00, # and autumn transitions are 00:00 -> 23:00. Go with pre-1999 # editions of Shanks, and with the IATA, who say transitions occur at 00:00. # # From Waldemar Villamayor-Venialbo (2013-09-20): # No time of the day is established for the adjustment, so people normally # adjust their clocks at 0 hour of the given dates. # # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Para 1975 1988 - Oct 1 0:00 1:00 - Rule Para 1975 1978 - Mar 1 0:00 0 - Rule Para 1979 1991 - Apr 1 0:00 0 - Rule Para 1989 only - Oct 22 0:00 1:00 - Rule Para 1990 only - Oct 1 0:00 1:00 - Rule Para 1991 only - Oct 6 0:00 1:00 - Rule Para 1992 only - Mar 1 0:00 0 - Rule Para 1992 only - Oct 5 0:00 1:00 - Rule Para 1993 only - Mar 31 0:00 0 - Rule Para 1993 1995 - Oct 1 0:00 1:00 - Rule Para 1994 1995 - Feb lastSun 0:00 0 - Rule Para 1996 only - Mar 1 0:00 0 - # IATA SSIM (2000-02) says 1999-10-10; ignore this for now. # From Steffen Thorsen (2000-10-02): # I have three independent reports that Paraguay changed to DST this Sunday # (10-01). # # Translated by Gwillim Law (2001-02-27) from # Noticias, a daily paper in Asunción, Paraguay (2000-10-01): # http://www.diarionoticias.com.py/011000/nacional/naciona1.htm # Starting at 0:00 today, the clock will be set forward 60 minutes, in # fulfillment of Decree No. 7,273 of the Executive Power.... The time change # system has been operating for several years. Formerly there was a separate # decree each year; the new law has the same effect, but permanently. Every # year, the time will change on the first Sunday of October; likewise, the # clock will be set back on the first Sunday of March. # Rule Para 1996 2001 - Oct Sun>=1 0:00 1:00 - # IATA SSIM (1997-09) says Mar 1; go with Shanks & Pottenger. Rule Para 1997 only - Feb lastSun 0:00 0 - # Shanks & Pottenger say 1999-02-28; IATA SSIM (1999-02) says 1999-02-27, but # (1999-09) reports no date; go with above sources and Gerd Knops (2001-02-27). Rule Para 1998 2001 - Mar Sun>=1 0:00 0 - # From Rives McDow (2002-02-28): # A decree was issued in Paraguay (No. 16350) on 2002-02-26 that changed the # dst method to be from the first Sunday in September to the first Sunday in # April. Rule Para 2002 2004 - Apr Sun>=1 0:00 0 - Rule Para 2002 2003 - Sep Sun>=1 0:00 1:00 - # # From Jesper Nørgaard Welen (2005-01-02): # There are several sources that claim that Paraguay made # a timezone rule change in autumn 2004. # From Steffen Thorsen (2005-01-05): # Decree 1,867 (2004-03-05) # From Carlos Raúl Perasso via Jesper Nørgaard Welen (2006-10-13) # http://www.presidencia.gov.py/decretos/D1867.pdf Rule Para 2004 2009 - Oct Sun>=15 0:00 1:00 - Rule Para 2005 2009 - Mar Sun>=8 0:00 0 - # From Carlos Raúl Perasso (2010-02-18): # By decree number 3958 issued yesterday # http://www.presidencia.gov.py/v1/wp-content/uploads/2010/02/decreto3958.pdf # Paraguay changes its DST schedule, postponing the March rule to April and # modifying the October date. The decree reads: # ... # Art. 1. It is hereby established that from the second Sunday of the month of # April of this year (2010), the official time is to be set back 60 minutes, # and that on the first Sunday of the month of October, it is to be set # forward 60 minutes, in all the territory of the Paraguayan Republic. # ... Rule Para 2010 max - Oct Sun>=1 0:00 1:00 - Rule Para 2010 2012 - Apr Sun>=8 0:00 0 - # # From Steffen Thorsen (2013-03-07): # Paraguay will end DST on 2013-03-24 00:00.... # http://www.ande.gov.py/interna.php?id=1075 # # From Carlos Raúl Perasso (2013-03-15): # The change in Paraguay is now final. Decree number 10780 # http://www.presidencia.gov.py/uploads/pdf/presidencia-3b86ff4b691c79d4f5927ca964922ec74772ce857c02ca054a52a37b49afc7fb.pdf # From Carlos Raúl Perasso (2014-02-28): # Decree 1264 can be found at: # http://www.presidencia.gov.py/archivos/documentos/DECRETO1264_ey9r8zai.pdf Rule Para 2013 max - Mar Sun>=22 0:00 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Asuncion -3:50:40 - LMT 1890 -3:50:40 - AMT 1931 Oct 10 # Asunción Mean Time -4:00 - -04 1972 Oct -3:00 - -03 1974 Apr -4:00 Para -04/-03 # Peru # # From Evelyn C. Leeper via Mark Brader (2003-10-26) # : # When we were in Peru in 1985-1986, they apparently switched over # sometime between December 29 and January 3 while we were on the Amazon. # # From Paul Eggert (2006-03-22): # Shanks & Pottenger don't have this transition. Assume 1986 was like 1987. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Peru 1938 only - Jan 1 0:00 1:00 - Rule Peru 1938 only - Apr 1 0:00 0 - Rule Peru 1938 1939 - Sep lastSun 0:00 1:00 - Rule Peru 1939 1940 - Mar Sun>=24 0:00 0 - Rule Peru 1986 1987 - Jan 1 0:00 1:00 - Rule Peru 1986 1987 - Apr 1 0:00 0 - Rule Peru 1990 only - Jan 1 0:00 1:00 - Rule Peru 1990 only - Apr 1 0:00 0 - # IATA is ambiguous for 1993/1995; go with Shanks & Pottenger. Rule Peru 1994 only - Jan 1 0:00 1:00 - Rule Peru 1994 only - Apr 1 0:00 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Lima -5:08:12 - LMT 1890 -5:08:36 - LMT 1908 Jul 28 # Lima Mean Time? -5:00 Peru -05/-04 # South Georgia # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Atlantic/South_Georgia -2:26:08 - LMT 1890 # Grytviken -2:00 - -02 # South Sandwich Is # uninhabited; scientific personnel have wintered # Suriname # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Paramaribo -3:40:40 - LMT 1911 -3:40:52 - PMT 1935 # Paramaribo Mean Time -3:40:36 - PMT 1945 Oct # The capital moved? -3:30 - -0330 1984 Oct -3:00 - -03 # Trinidad and Tobago # See America/Puerto_Rico. # Uruguay # From Paul Eggert (1993-11-18): # Uruguay wins the prize for the strangest peacetime manipulation of the rules. # # From Tim Parenti (2018-02-20), per Jeremie Bonjour (2018-01-31) and Michael # Deckers (2018-02-20): # ... At least they kept good records... # # http://www.armada.mil.uy/ContenidosPDFs/sohma/web/almanaque/almanaque_2018.pdf#page=36 # Page 36 of Almanaque 2018, published by the Oceanography, Hydrography, and # Meteorology Service of the Uruguayan Navy, seems to give many transitions # with greater clarity than we've had before. It directly references many laws # and decrees which are, in turn, referenced below. They can be viewed in the # public archives of the Diario Oficial (in Spanish) at # http://www.impo.com.uy/diariooficial/ # # Ley No. 3920 of 1908-06-10 placed the determination of legal time under the # auspices of the National Institute for the Prediction of Time. It is unclear # exactly what offset was used during this period, though Ley No. 7200 of # 1920-04-23 used the Observatory of the National Meteorological Institute in # Montevideo (34° 54' 33" S, 56° 12' 45" W) as its reference meridian, # retarding legal time by 15 minutes 9 seconds from 1920-04-30 24:00, # resulting in UT-04. Assume the corresponding LMT of UT-03:44:51 (given on # page 725 of the Proceedings of the Second Pan-American Scientific Congress, # 1915-1916) was in use, and merely became official from 1908-06-10. # https://www.impo.com.uy/diariooficial/1908/06/18/12 # https://www.impo.com.uy/diariooficial/1920/04/27/9 # # Ley No. 7594 of 1923-06-28 specified legal time as Observatory time advanced # by 44 minutes 51 seconds (UT-03) "from 30 September to 31 March", and by 14 # minutes 51 seconds (UT-03:30) "the rest of the year"; a message from the # National Council of Administration the same day, published directly below the # law in the Diario Oficial, specified the first transition to be 1923-09-30 # 24:00. This effectively established standard time at UT-03:30 with 30 # minutes DST. Assume transitions at 24:00 on the specified days until Ley No. # 7919 of 1926-03-05 ended this arrangement, repealing all "laws and other # provisions which oppose" it, resulting in year-round UT-03:30; a Resolución # of 1926-03-11 puts the final transition at 1926-03-31 24:00, the same as it # would have been under the previous law. # https://www.impo.com.uy/diariooficial/1923/07/02/2 # https://www.impo.com.uy/diariooficial/1926/03/10/2 # https://www.impo.com.uy/diariooficial/1926/03/18/2 # # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Uruguay 1923 1925 - Oct 1 0:00 0:30 - Rule Uruguay 1924 1926 - Apr 1 0:00 0 - # From Tim Parenti (2018-02-15): # http://www.impo.com.uy/diariooficial/1933/10/27/6 # # It appears Ley No. 9122 of 1933 was never published as such in the Diario # Oficial, but instead appeared as Document 26 in the Diario on Friday # 1933-10-27 as a decree made Monday 1933-10-23 and filed under the Ministry of # National Defense. It reinstituted a DST of 30 minutes (to UT-03) "from the # last Sunday of October...until the last Saturday of March." In accordance # with this provision, the first transition was explicitly specified in Article # 2 of the decree as Saturday 1933-10-28 at 24:00; that is, Sunday 1933-10-29 # at 00:00. Assume transitions at 00:00 Sunday throughout. # # Departing from the matter-of-fact nature of previous timekeeping laws, the # 1933 decree "consider[s] the advantages of...the advance of legal time": # # "Whereas: The measure adopted by almost all nations at the time of the last # World War still persists in North America and Europe, precisely because of # the economic, hygienic, and social advantages derived from such an # emergency measure... # # Whereas: The advance of the legal time during the summer seasons, by # displacing social activity near sunrise, favors the citizen populations # and especially the society that creates and works..." # # It further specified that "necessary measures" be taken to ensure that # "public spectacles finish, in general, before [01:00]." Rule Uruguay 1933 1938 - Oct lastSun 0:00 0:30 - Rule Uruguay 1934 1941 - Mar lastSat 24:00 0 - # From Tim Parenti (2018-02-15): # Most of the Rules below, and their contemporaneous Zone lines, have been # updated simply to match the Almanaque 2018. Although the document does not # list exact transition times, midnight transitions were already present in our # data here for all transitions through 2004-09, and this is both consistent # with prior transitions and verified in several decrees marked below between # 1939-09 and 2004-09, wherein the relevant text was typically of the form: # # "From 0 hours on [date], the legal time of the entire Republic will be... # # In accordance with [the preceding], on [previous date] at 24 hours, all # clocks throughout the Republic will be [advanced/retarded] by..." # # It is possible that there is greater specificity to be found for the Rules # below, but it is buried in no fewer than 40 different decrees individually # referenced by the Almanaque for the period from 1939-09 to 2014-09. # Four-fifths of these were promulgated less than two weeks before taking # effect; more than half within a week and none more than 5 weeks. Only the # handful with comments below have been checked with any thoroughness. Rule Uruguay 1939 only - Oct 1 0:00 0:30 - Rule Uruguay 1940 only - Oct 27 0:00 0:30 - # From Tim Parenti (2018-02-15): # Decreto 1145 of the Ministry of National Defense, dated 1941-07-26, specified # UT-03 from Friday 1941-08-01 00:00, citing an "urgent...need to save fuel". # http://www.impo.com.uy/diariooficial/1941/08/04/1 Rule Uruguay 1941 only - Aug 1 0:00 0:30 - # From Tim Parenti (2018-02-15): # Decreto 1866 of the Ministry of National Defense, dated 1942-12-09, specified # further advancement (to UT-02:30) from Sunday 1942-12-13 24:00. Since clocks # never went back to UT-03:30 thereafter, this is modeled as advancing standard # time by 30 minutes to UT-03, while retaining 30 minutes of DST. # http://www.impo.com.uy/diariooficial/1942/12/16/3 Rule Uruguay 1942 only - Dec 14 0:00 0:30 - Rule Uruguay 1943 only - Mar 14 0:00 0 - Rule Uruguay 1959 only - May 24 0:00 0:30 - Rule Uruguay 1959 only - Nov 15 0:00 0 - Rule Uruguay 1960 only - Jan 17 0:00 1:00 - Rule Uruguay 1960 only - Mar 6 0:00 0 - Rule Uruguay 1965 only - Apr 4 0:00 1:00 - Rule Uruguay 1965 only - Sep 26 0:00 0 - # From Tim Parenti (2018-02-15): # Decreto 321/968 of 1968-05-25, citing emergency drought measures decreed the # day before, brought clocks forward 30 minutes from Monday 1968-05-27 00:00. # http://www.impo.com.uy/diariooficial/1968/05/30/5 Rule Uruguay 1968 only - May 27 0:00 0:30 - Rule Uruguay 1968 only - Dec 1 0:00 0 - # From Tim Parenti (2018-02-15): # Decreto 188/970 of 1970-04-23 instituted restrictions on electricity # consumption "as a consequence of the current rainfall regime in the country". # Articles 13 and 14 advanced clocks by an hour from Saturday 1970-04-25 00:00. # http://www.impo.com.uy/diariooficial/1970/04/29/4 Rule Uruguay 1970 only - Apr 25 0:00 1:00 - Rule Uruguay 1970 only - Jun 14 0:00 0 - Rule Uruguay 1972 only - Apr 23 0:00 1:00 - Rule Uruguay 1972 only - Jul 16 0:00 0 - # From Tim Parenti (2018-02-15): # Decreto 29/974 of 1974-01-11, citing "the international rise in the price of # oil", advanced clocks by 90 minutes (to UT-01:30). Decreto 163/974 of # 1974-03-04 returned 60 of those minutes (to UT-02:30), and the remaining 30 # minutes followed in Decreto 679/974 of 1974-08-29. # http://www.impo.com.uy/diariooficial/1974/01/22/11 # http://www.impo.com.uy/diariooficial/1974/03/14/3 # http://www.impo.com.uy/diariooficial/1974/09/04/6 Rule Uruguay 1974 only - Jan 13 0:00 1:30 - Rule Uruguay 1974 only - Mar 10 0:00 0:30 - Rule Uruguay 1974 only - Sep 1 0:00 0 - Rule Uruguay 1974 only - Dec 22 0:00 1:00 - Rule Uruguay 1975 only - Mar 30 0:00 0 - Rule Uruguay 1976 only - Dec 19 0:00 1:00 - Rule Uruguay 1977 only - Mar 6 0:00 0 - Rule Uruguay 1977 only - Dec 4 0:00 1:00 - Rule Uruguay 1978 1979 - Mar Sun>=1 0:00 0 - Rule Uruguay 1978 only - Dec 17 0:00 1:00 - Rule Uruguay 1979 only - Apr 29 0:00 1:00 - Rule Uruguay 1980 only - Mar 16 0:00 0 - # From Tim Parenti (2018-02-15): # Decreto 725/987 of 1987-12-04 cited "better use of national tourist # attractions" to advance clocks one hour from Monday 1987-12-14 00:00. # http://www.impo.com.uy/diariooficial/1988/01/25/1 Rule Uruguay 1987 only - Dec 14 0:00 1:00 - Rule Uruguay 1988 only - Feb 28 0:00 0 - Rule Uruguay 1988 only - Dec 11 0:00 1:00 - Rule Uruguay 1989 only - Mar 5 0:00 0 - Rule Uruguay 1989 only - Oct 29 0:00 1:00 - Rule Uruguay 1990 only - Feb 25 0:00 0 - # From Tim Parenti (2018-02-15), per Paul Eggert (1999-11-04): # IATA agrees as below for 1990-10 through 1993-02. Per Almanaque 2018, the # 1992/1993 season appears to be the first in over half a century where DST # both began and ended pursuant to the same decree. Rule Uruguay 1990 1991 - Oct Sun>=21 0:00 1:00 - Rule Uruguay 1991 1992 - Mar Sun>=1 0:00 0 - Rule Uruguay 1992 only - Oct 18 0:00 1:00 - Rule Uruguay 1993 only - Feb 28 0:00 0 - # From Eduardo Cota (2004-09-20): # The Uruguayan government has decreed a change in the local time.... # From Tim Parenti (2018-02-15): # Decreto 328/004 of 2004-09-15. # http://www.impo.com.uy/diariooficial/2004/09/23/documentos.pdf#page=1 Rule Uruguay 2004 only - Sep 19 0:00 1:00 - # From Steffen Thorsen (2005-03-11): # Uruguay's DST was scheduled to end on Sunday, 2005-03-13, but in order to # save energy ... it was postponed two weeks.... # From Tim Parenti (2018-02-15): # This 2005 postponement is not in Almanaque 2018. Go with the contemporaneous # reporting, which is confirmed by Decreto 107/005 of 2005-03-10 amending # Decreto 328/004: # http://www.impo.com.uy/diariooficial/2005/03/15/documentos.pdf#page=1 # The original decree specified a transition of 2005-03-12 24:00, but the new # one specified 2005-03-27 02:00. Rule Uruguay 2005 only - Mar 27 2:00 0 - # From Eduardo Cota (2005-09-27): # ...from 2005-10-09 at 02:00 local time, until 2006-03-12 at 02:00 local time, # official time in Uruguay will be at GMT -2. # From Tim Parenti (2018-02-15): # Decreto 318/005 of 2005-09-19. # http://www.impo.com.uy/diariooficial/2005/09/23/documentos.pdf#page=1 Rule Uruguay 2005 only - Oct 9 2:00 1:00 - Rule Uruguay 2006 2015 - Mar Sun>=8 2:00 0 - # From Tim Parenti (2018-02-15), per Jesper Nørgaard Welen (2006-09-06): # Decreto 311/006 of 2006-09-04 established regular DST from the first Sunday # of October at 02:00 through the second Sunday of March at 02:00. Almanaque # 2018 appears to have a few typoed dates through this period; ignore them. # http://www.impo.com.uy/diariooficial/2006/09/08/documentos.pdf#page=1 Rule Uruguay 2006 2014 - Oct Sun>=1 2:00 1:00 - # From Steffen Thorsen (2015-06-30): # ... it looks like they will not be using DST the coming summer: # http://www.elobservador.com.uy/gobierno-resolvio-que-no-habra-cambio-horario-verano-n656787 # http://www.republica.com.uy/este-ano-no-se-modificara-el-huso-horario-en-uruguay/523760/ # From Paul Eggert (2015-06-30): # Apparently restaurateurs complained that DST caused people to go to the beach # instead of out to dinner. # From Pablo Camargo (2015-07-13): # http://archivo.presidencia.gub.uy/sci/decretos/2015/06/cons_min_201.pdf # From Tim Parenti (2018-02-15): # Decreto 178/015 of 2015-06-29; repeals Decreto 311/006. # This Zone can be simplified once we assume zic %z. Zone America/Montevideo -3:44:51 - LMT 1908 Jun 10 -3:44:51 - MMT 1920 May 1 # Montevideo MT -4:00 - -04 1923 Oct 1 -3:30 Uruguay -0330/-03 1942 Dec 14 -3:00 Uruguay -03/-0230 1960 -3:00 Uruguay -03/-02 1968 -3:00 Uruguay -03/-0230 1970 -3:00 Uruguay -03/-02 1974 -3:00 Uruguay -03/-0130 1974 Mar 10 -3:00 Uruguay -03/-0230 1974 Dec 22 -3:00 Uruguay -03/-02 # Venezuela # # From Paul Eggert (2015-07-28): # For the 1965 transition see Gaceta Oficial No. 27.619 (1964-12-15), p 205.533 # http://www.pgr.gob.ve/dmdocuments/1964/27619.pdf # # From John Stainforth (2007-11-28): # ... the change for Venezuela originally expected for 2007-12-31 has # been brought forward to 2007-12-09. The official announcement was # published today in the "Gaceta Oficial de la República Bolivariana # de Venezuela, número 38.819" (official document for all laws or # resolution publication) # http://www.globovision.com/news.php?nid=72208 # From Alexander Krivenyshev (2016-04-15): # https://actualidad.rt.com/actualidad/204758-venezuela-modificar-huso-horario-sequia-elnino # # From Paul Eggert (2016-04-15): # Clocks advance 30 minutes on 2016-05-01 at 02:30.... # "'Venezuela's new time-zone: hours without light, hours without water, # hours of presidential broadcasts, hours of lines,' quipped comedian # Jean Mary Curró ...". See: Cawthorne A, Kai D. Venezuela scraps # half-hour time difference set by Chavez. Reuters 2016-04-15 14:50 -0400 # https://www.reuters.com/article/us-venezuela-timezone-idUSKCN0XC2BE # # From Matt Johnson (2016-04-20): # ... published in the official Gazette [2016-04-18], here: # http://historico.tsj.gob.ve/gaceta_ext/abril/1842016/E-1842016-4551.pdf # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Caracas -4:27:44 - LMT 1890 -4:27:40 - CMT 1912 Feb 12 # Caracas Mean Time? -4:30 - -0430 1965 Jan 1 0:00 -4:00 - -04 2007 Dec 9 3:00 -4:30 - -0430 2016 May 1 2:30 -4:00 - -04 ./tzdatabase/calendars0000644000175000017500000001270114221402773015141 0ustar anthonyanthony----- Calendrical issues ----- As mentioned in Theory.html, although calendrical issues are out of scope for tzdb, they indicate the sort of problems that we would run into if we extended tzdb further into the past. The following information and sources go beyond Theory.html's brief discussion. They sometimes disagree. France Gregorian calendar adopted 1582-12-20. French Revolutionary calendar used 1793-11-24 through 1805-12-31, and (in Paris only) 1871-05-06 through 1871-05-23. Russia From Chris Carrier (1996-12-02): On 1929-10-01 the Soviet Union instituted an "Eternal Calendar" with 30-day months plus 5 holidays, with a 5-day week. On 1931-12-01 it changed to a 6-day week; in 1934 it reverted to the Gregorian calendar while retaining the 6-day week; on 1940-06-27 it reverted to the 7-day week. With the 6-day week the usual days off were the 6th, 12th, 18th, 24th and 30th of the month. (Source: Evitiar Zerubavel, _The Seven Day Circle_) Mark Brader reported a similar story in "The Book of Calendars", edited by Frank Parise (1982, Facts on File, ISBN 0-8719-6467-8), page 377. But: From: Petteri Sulonen (via Usenet) Date: 14 Jan 1999 00:00:00 GMT ... If your source is correct, how come documents between 1929 and 1940 were still dated using the conventional, Gregorian calendar? I can post a scan of a document dated December 1, 1934, signed by Yenukidze, the secretary, on behalf of Kalinin, the President of the Executive Committee of the Supreme Soviet, if you like. Sweden (and Finland) From: Mark Brader Subject: Re: Gregorian reform - a part of locale? Date: 1996-07-06 In 1700, Denmark made the transition from Julian to Gregorian. Sweden decided to *start* a transition in 1700 as well, but rather than have one of those unsightly calendar gaps :-), they simply decreed that the next leap year after 1696 would be in 1744 - putting the whole country on a calendar different from both Julian and Gregorian for a period of 40 years. However, in 1704 something went wrong and the plan was not carried through; they did, after all, have a leap year that year. And one in 1708. In 1712 they gave it up and went back to Julian, putting 30 days in February that year!... Then in 1753, Sweden made the transition to Gregorian in the usual manner, getting there only 13 years behind the original schedule. (A previous posting of this story was challenged, and Swedish readers produced the following references to support it: "Tideräkning och historia" by Natanael Beckman (1924) and "Tid, en bok om tideräkning och kalenderväsen" by Lars-Olof Lodén (1968). Grotefend's data From: "Michael Palmer" [with two obvious typos fixed] Subject: Re: Gregorian Calendar (was Re: Another FHC related question Newsgroups: soc.genealogy.german Date: Tue, 9 Feb 1999 02:32:48 -800 ... The following is a(n incomplete) listing, arranged chronologically, of European states, with the date they converted from the Julian to the Gregorian calendar: 04/15 Oct 1582 - Italy (with exceptions), Spain, Portugal, Poland (Roman Catholics and Danzig only) 09/20 Dec 1582 - France, Lorraine 21 Dec 1582/ 01 Jan 1583 - Holland, Brabant, Flanders, Hennegau 10/21 Feb 1583 - bishopric of Liege (Lüttich) 13/24 Feb 1583 - bishopric of Augsburg 04/15 Oct 1583 - electorate of Trier 05/16 Oct 1583 - Bavaria, bishoprics of Freising, Eichstedt, Regensburg, Salzburg, Brixen 13/24 Oct 1583 - Austrian Oberelsaß and Breisgau 20/31 Oct 1583 - bishopric of Basel 02/13 Nov 1583 - duchy of Jülich-Berg 02/13 Nov 1583 - electorate and city of Köln 04/15 Nov 1583 - bishopric of Würzburg 11/22 Nov 1583 - electorate of Mainz 16/27 Nov 1583 - bishopric of Strassburg and the margraviate of Baden 17/28 Nov 1583 - bishopric of Münster and duchy of Cleve 14/25 Dec 1583 - Steiermark 06/17 Jan 1584 - Austria and Bohemia 11/22 Jan 1584 - Lucerne, Uri, Schwyz, Zug, Freiburg, Solothurn 12/23 Jan 1584 - Silesia and the Lausitz 22 Jan/ 02 Feb 1584 - Hungary (legally on 21 Oct 1587) Jun 1584 - Unterwalden 01/12 Jul 1584 - duchy of Westfalen 16/27 Jun 1585 - bishopric of Paderborn 14/25 Dec 1590 - Transylvania 22 Aug/ 02 Sep 1612 - duchy of Prussia 13/24 Dec 1614 - Pfalz-Neuburg 1617 - duchy of Kurland (reverted to the Julian calendar in 1796) 1624 - bishopric of Osnabrück 1630 - bishopric of Minden 15/26 Mar 1631 - bishopric of Hildesheim 1655 - Kanton Wallis 05/16 Feb 1682 - city of Strassburg 18 Feb/ 01 Mar 1700 - Protestant Germany (including Swedish possessions in Germany), Denmark, Norway 30 Jun/ 12 Jul 1700 - Gelderland, Zutphen 10 Nov/ 12 Dec 1700 - Utrecht, Overijssel 31 Dec 1700/ 12 Jan 1701 - Friesland, Groningen, Zürich, Bern, Basel, Geneva, Thurgau, and Schaffhausen 1724 - Glarus, Appenzell, and the city of St. Gallen 01 Jan 1750 - Pisa and Florence 02/14 Sep 1752 - Great Britain 17 Feb/ 01 Mar 1753 - Sweden 1760-1812 - Graubünden The Russian empire (including Finland and the Baltic states) did not convert to the Gregorian calendar until the Soviet revolution of 1917. Source: H. Grotefend, _Taschenbuch der Zeitrechnung des deutschen Mittelalters und der Neuzeit_, herausgegeben von Dr. O. Grotefend (Hannover: Hahnsche Buchhandlung, 1941), pp. 26-28. ----- This file is in the public domain, so clarified as of 2009-05-17 by Arthur David Olson. ----- Local Variables: coding: utf-8 End: ./tzdatabase/africa0000644000175000017500000017700314272547645014457 0ustar anthonyanthony# tzdb data for Africa and environs # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. # This file is by no means authoritative; if you think you know better, # go ahead and edit the file (and please send any changes to # tz@iana.org for general use in the future). For more, please see # the file CONTRIBUTING in the tz distribution. # From Paul Eggert (2018-05-27): # # Unless otherwise specified, the source for data through 1990 is: # Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition), # San Diego: ACS Publications, Inc. (2003). # Unfortunately this book contains many errors and cites no sources. # # Many years ago Gwillim Law wrote that a good source # for time zone data was the International Air Transport # Association's Standard Schedules Information Manual (IATA SSIM), # published semiannually. Law sent in several helpful summaries # of the IATA's data after 1990. Except where otherwise noted, # IATA SSIM is the source for entries after 1990. # # Another source occasionally used is Edward W. Whitman, World Time Differences, # Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated), which # I found in the UCLA library. # # For data circa 1899, a common source is: # Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94. # https://www.jstor.org/stable/1774359 # # European-style abbreviations are commonly used along the Mediterranean. # For sub-Saharan Africa abbreviations were less standardized. # Previous editions of this database used WAT, CAT, SAT, and EAT # for UT +00 through +03, respectively, # but in 1997 Mark R V Murray reported that # 'SAST' is the official abbreviation for +02 in the country of South Africa, # 'CAT' is commonly used for +02 in countries north of South Africa, and # 'WAT' is probably the best name for +01, as the common phrase for # the area that includes Nigeria is "West Africa". # # To summarize, the following abbreviations seemed to have some currency: # +00 GMT Greenwich Mean Time # +02 CAT Central Africa Time # +02 SAST South Africa Standard Time # and Murray suggested the following abbreviation: # +01 WAT West Africa Time # Murray's suggestion seems to have caught on in news reports and the like. # I vaguely recall 'WAT' also being used for -01 in the past but # cannot now come up with solid citations. # # I invented the following abbreviations in the 1990s: # +02 WAST West Africa Summer Time # +03 CAST Central Africa Summer Time # +03 SAST South Africa Summer Time # +03 EAT East Africa Time # 'EAT' seems to have caught on and is in current timestamps, and though # the other abbreviations are rarer and are only in past timestamps, # they are paired with better-attested non-DST abbreviations. # Corrections are welcome. # Algeria # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Algeria 1916 only - Jun 14 23:00s 1:00 S Rule Algeria 1916 1919 - Oct Sun>=1 23:00s 0 - Rule Algeria 1917 only - Mar 24 23:00s 1:00 S Rule Algeria 1918 only - Mar 9 23:00s 1:00 S Rule Algeria 1919 only - Mar 1 23:00s 1:00 S Rule Algeria 1920 only - Feb 14 23:00s 1:00 S Rule Algeria 1920 only - Oct 23 23:00s 0 - Rule Algeria 1921 only - Mar 14 23:00s 1:00 S Rule Algeria 1921 only - Jun 21 23:00s 0 - Rule Algeria 1939 only - Sep 11 23:00s 1:00 S Rule Algeria 1939 only - Nov 19 1:00 0 - Rule Algeria 1944 1945 - Apr Mon>=1 2:00 1:00 S Rule Algeria 1944 only - Oct 8 2:00 0 - Rule Algeria 1945 only - Sep 16 1:00 0 - Rule Algeria 1971 only - Apr 25 23:00s 1:00 S Rule Algeria 1971 only - Sep 26 23:00s 0 - Rule Algeria 1977 only - May 6 0:00 1:00 S Rule Algeria 1977 only - Oct 21 0:00 0 - Rule Algeria 1978 only - Mar 24 1:00 1:00 S Rule Algeria 1978 only - Sep 22 3:00 0 - Rule Algeria 1980 only - Apr 25 0:00 1:00 S Rule Algeria 1980 only - Oct 31 2:00 0 - # See Europe/Paris for PMT-related transitions. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 16 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time 0:00 Algeria WE%sT 1940 Feb 25 2:00 1:00 Algeria CE%sT 1946 Oct 7 0:00 - WET 1956 Jan 29 1:00 - CET 1963 Apr 14 0:00 Algeria WE%sT 1977 Oct 21 1:00 Algeria CE%sT 1979 Oct 26 0:00 Algeria WE%sT 1981 May 1:00 - CET # Angola # Benin # See Africa/Lagos. # Botswana # See Africa/Maputo. # Burkina Faso # See Africa/Abidjan. # Burundi # See Africa/Maputo. # Cameroon # See Africa/Lagos. # Cape Verde / Cabo Verde # # From Paul Eggert (2018-02-16): # Shanks gives 1907 for the transition to +02. # For now, ignore that and follow the 1911-05-26 Portuguese decree # (see Europe/Lisbon). # # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Atlantic/Cape_Verde -1:34:04 - LMT 1912 Jan 01 2:00u # Praia -2:00 - -02 1942 Sep -2:00 1:00 -01 1945 Oct 15 -2:00 - -02 1975 Nov 25 2:00 -1:00 - -01 # Central African Republic # See Africa/Lagos. # Chad # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Ndjamena 1:00:12 - LMT 1912 # N'Djamena 1:00 - WAT 1979 Oct 14 1:00 1:00 WAST 1980 Mar 8 1:00 - WAT # Comoros # See Africa/Nairobi. # Democratic Republic of the Congo # See Africa/Lagos for the western part and Africa/Maputo for the eastern. # Republic of the Congo # See Africa/Lagos. # Côte d'Ivoire / Ivory Coast # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Abidjan -0:16:08 - LMT 1912 0:00 - GMT Link Africa/Abidjan Africa/Accra # Ghana Link Africa/Abidjan Africa/Bamako # Mali Link Africa/Abidjan Africa/Banjul # The Gambia Link Africa/Abidjan Africa/Conakry # Guinea Link Africa/Abidjan Africa/Dakar # Senegal Link Africa/Abidjan Africa/Freetown # Sierra Leone Link Africa/Abidjan Africa/Lome # Togo Link Africa/Abidjan Africa/Nouakchott # Mauritania Link Africa/Abidjan Africa/Ouagadougou # Burkina Faso Link Africa/Abidjan Atlantic/Reykjavik # Iceland Link Africa/Abidjan Atlantic/St_Helena # St Helena # Djibouti # See Africa/Nairobi. ############################################################################### # Egypt # Milne says Cairo used 2:05:08.9, the local mean time of the Abbasizeh # observatory. Milne also says that the official time for # Egypt was mean noon at the Great Pyramid, 2:04:30.5, but apparently this # did not apply to Cairo, Alexandria, or Port Said. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Egypt 1940 only - Jul 15 0:00 1:00 S Rule Egypt 1940 only - Oct 1 0:00 0 - Rule Egypt 1941 only - Apr 15 0:00 1:00 S Rule Egypt 1941 only - Sep 16 0:00 0 - Rule Egypt 1942 1944 - Apr 1 0:00 1:00 S Rule Egypt 1942 only - Oct 27 0:00 0 - Rule Egypt 1943 1945 - Nov 1 0:00 0 - Rule Egypt 1945 only - Apr 16 0:00 1:00 S Rule Egypt 1957 only - May 10 0:00 1:00 S Rule Egypt 1957 1958 - Oct 1 0:00 0 - Rule Egypt 1958 only - May 1 0:00 1:00 S Rule Egypt 1959 1981 - May 1 1:00 1:00 S Rule Egypt 1959 1965 - Sep 30 3:00 0 - Rule Egypt 1966 1994 - Oct 1 3:00 0 - Rule Egypt 1982 only - Jul 25 1:00 1:00 S Rule Egypt 1983 only - Jul 12 1:00 1:00 S Rule Egypt 1984 1988 - May 1 1:00 1:00 S Rule Egypt 1989 only - May 6 1:00 1:00 S Rule Egypt 1990 1994 - May 1 1:00 1:00 S # IATA (after 1990) says transitions are at 0:00. # Go with IATA starting in 1995, except correct 1995 entry from 09-30 to 09-29. # From Alexander Krivenyshev (2011-04-20): # "...Egypt's interim cabinet decided on Wednesday to cancel daylight # saving time after a poll posted on its website showed the majority of # Egyptians would approve the cancellation." # # Egypt to cancel daylight saving time # http://www.almasryalyoum.com/en/node/407168 # or # http://www.worldtimezone.com/dst_news/dst_news_egypt04.html Rule Egypt 1995 2010 - Apr lastFri 0:00s 1:00 S Rule Egypt 1995 2005 - Sep lastThu 24:00 0 - # From Steffen Thorsen (2006-09-19): # The Egyptian Gazette, issue 41,090 (2006-09-18), page 1, reports: # Egypt will turn back clocks by one hour at the midnight of Thursday # after observing the daylight saving time since May. # http://news.gom.com.eg/gazette/pdf/2006/09/18/01.pdf Rule Egypt 2006 only - Sep 21 24:00 0 - # From Dirk Losch (2007-08-14): # I received a mail from an airline which says that the daylight # saving time in Egypt will end in the night of 2007-09-06 to 2007-09-07. # From Jesper Nørgaard Welen (2007-08-15): [The following agree:] # http://www.nentjes.info/Bill/bill5.htm # https://www.timeanddate.com/worldclock/city.html?n=53 # From Steffen Thorsen (2007-09-04): The official information...: # http://www.sis.gov.eg/En/EgyptOnline/Miscellaneous/000002/0207000000000000001580.htm Rule Egypt 2007 only - Sep Thu>=1 24:00 0 - # From Abdelrahman Hassan (2007-09-06): # Due to the Hijri (lunar Islamic calendar) year being 11 days shorter # than the year of the Gregorian calendar, Ramadan shifts earlier each # year. This year it will be observed September 13 (September is quite # hot in Egypt), and the idea is to make fasting easier for workers by # shifting business hours one hour out of daytime heat. Consequently, # unless discontinued, next DST may end Thursday 28 August 2008. # From Paul Eggert (2007-08-17): # For lack of better info, assume the new rule is last Thursday in August. # From Petr Machata (2009-04-06): # The following appeared in Red Hat bugzilla[1] (edited): # # > $ zdump -v /usr/share/zoneinfo/Africa/Cairo | grep 2009 # > /usr/share/zoneinfo/Africa/Cairo Thu Apr 23 21:59:59 2009 UTC = Thu = # Apr 23 # > 23:59:59 2009 EET isdst=0 gmtoff=7200 # > /usr/share/zoneinfo/Africa/Cairo Thu Apr 23 22:00:00 2009 UTC = Fri = # Apr 24 # > 01:00:00 2009 EEST isdst=1 gmtoff=10800 # > /usr/share/zoneinfo/Africa/Cairo Thu Aug 27 20:59:59 2009 UTC = Thu = # Aug 27 # > 23:59:59 2009 EEST isdst=1 gmtoff=10800 # > /usr/share/zoneinfo/Africa/Cairo Thu Aug 27 21:00:00 2009 UTC = Thu = # Aug 27 # > 23:00:00 2009 EET isdst=0 gmtoff=7200 # # > end date should be Thu Sep 24 2009 (Last Thursday in September at 23:59= # :59) # > http://support.microsoft.com/kb/958729/ # # timeanddate[2] and another site I've found[3] also support that. # # [1] https://bugzilla.redhat.com/show_bug.cgi?id=492263 # [2] https://www.timeanddate.com/worldclock/clockchange.html?n=53 # [3] https://wwp.greenwichmeantime.com/time-zone/africa/egypt/ # From Arthur David Olson (2009-04-20): # In 2009 (and for the next several years), Ramadan ends before the fourth # Thursday in September; Egypt is expected to revert to the last Thursday # in September. # From Steffen Thorsen (2009-08-11): # We have been able to confirm the August change with the Egyptian Cabinet # Information and Decision Support Center: # https://www.timeanddate.com/news/time/egypt-dst-ends-2009.html # # The Middle East News Agency # https://www.mena.org.eg/index.aspx # also reports "Egypt starts winter time on August 21" # today in article numbered "71, 11/08/2009 12:25 GMT." # Only the title above is available without a subscription to their service, # and can be found by searching for "winter" in their search engine # (at least today). # From Alexander Krivenyshev (2010-07-20): # According to News from Egypt - Al-Masry Al-Youm Egypt's cabinet has # decided that Daylight Saving Time will not be used in Egypt during # Ramadan. # # Arabic translation: # "Clocks to go back during Ramadan - and then forward again" # http://www.almasryalyoum.com/en/news/clocks-go-back-during-ramadan-and-then-forward-again # http://www.worldtimezone.com/dst_news/dst_news_egypt02.html # From Ahmad El-Dardiry (2014-05-07): # Egypt is to change back to Daylight system on May 15 # http://english.ahram.org.eg/NewsContent/1/64/100735/Egypt/Politics-/Egypts-government-to-reapply-daylight-saving-time-.aspx # From Gunther Vermier (2014-05-13): # our Egypt office confirms that the change will be at 15 May "midnight" (24:00) # From Imed Chihi (2014-06-04): # We have finally "located" a precise official reference about the DST changes # in Egypt. The Ministers Cabinet decision is explained at # http://www.cabinet.gov.eg/Media/CabinetMeetingsDetails.aspx?id=347 ... # [T]his (Arabic) site is not accessible outside Egypt, but the page ... # translates into: "With regard to daylight saving time, it is scheduled to # take effect at exactly twelve o'clock this evening, Thursday, 15 MAY 2014, # to be suspended by twelve o'clock on the evening of Thursday, 26 JUN 2014, # and re-established again at the end of the month of Ramadan, at twelve # o'clock on the evening of Thursday, 31 JUL 2014." This statement has been # reproduced by other (more accessible) sites[, e.g.,]... # http://elgornal.net/news/news.aspx?id=4699258 # From Paul Eggert (2014-06-04): # Sarah El Deeb and Lee Keath of AP report that the Egyptian government says # the change is because of blackouts in Cairo, even though Ahram Online (cited # above) says DST had no affect on electricity consumption. There is # no information about when DST will end this fall. See: # http://abcnews.go.com/International/wireStory/el-sissi-pushes-egyptians-line-23614833 # From Steffen Thorsen (2015-04-08): # Egypt will start DST on midnight after Thursday, April 30, 2015. # This is based on a law (no 35) from May 15, 2014 saying it starts the last # Thursday of April.... Clocks will still be turned back for Ramadan, but # dates not yet announced.... # http://almogaz.com/news/weird-news/2015/04/05/1947105 ... # https://www.timeanddate.com/news/time/egypt-starts-dst-2015.html # From Ahmed Nazmy (2015-04-20): # Egypt's ministers cabinet just announced ... that it will cancel DST at # least for 2015. # # From Tim Parenti (2015-04-20): # http://english.ahram.org.eg/WriterArticles/NewsContentP/1/128195/Egypt/No-daylight-saving-this-summer-Egypts-prime-minist.aspx # "Egypt's cabinet agreed on Monday not to switch clocks for daylight saving # time this summer, and carry out studies on the possibility of canceling the # practice altogether in future years." # # From Paul Eggert (2015-04-24): # Yesterday the office of Egyptian President El-Sisi announced his # decision to abandon DST permanently. See Ahram Online 2015-04-24. # http://english.ahram.org.eg/NewsContent/1/64/128509/Egypt/Politics-/Sisi-cancels-daylight-saving-time-in-Egypt.aspx # From Steffen Thorsen (2016-04-29): # Egypt will have DST from July 7 until the end of October.... # http://english.ahram.org.eg/NewsContentP/1/204655/Egypt/Daylight-savings-time-returning-to-Egypt-on--July.aspx # From Mina Samuel (2016-07-04): # Egyptian government took the decision to cancel the DST, Rule Egypt 2008 only - Aug lastThu 24:00 0 - Rule Egypt 2009 only - Aug 20 24:00 0 - Rule Egypt 2010 only - Aug 10 24:00 0 - Rule Egypt 2010 only - Sep 9 24:00 1:00 S Rule Egypt 2010 only - Sep lastThu 24:00 0 - Rule Egypt 2014 only - May 15 24:00 1:00 S Rule Egypt 2014 only - Jun 26 24:00 0 - Rule Egypt 2014 only - Jul 31 24:00 1:00 S Rule Egypt 2014 only - Sep lastThu 24:00 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] #STDOFF 2:05:08.9 Zone Africa/Cairo 2:05:09 - LMT 1900 Oct 2:00 Egypt EE%sT # Equatorial Guinea # See Africa/Lagos. # Eritrea # See Africa/Nairobi. # Eswatini (formerly Swaziland) # See Africa/Johannesburg. # Ethiopia # See Africa/Nairobi. # # Unfortunately tzdb records only Western clock time in use in Ethiopia, # as the tzdb format is not up to properly recording a common Ethiopian # timekeeping practice that is based on solar time. See: # Mortada D. If you have a meeting in Ethiopia, you'd better double # check the time. PRI's The World. 2015-01-30 15:15 -05. # https://www.pri.org/stories/2015-01-30/if-you-have-meeting-ethiopia-you-better-double-check-time # Gabon # See Africa/Lagos. # The Gambia # Ghana # Guinea # See Africa/Abidjan. # Guinea-Bissau # # From Paul Eggert (2018-02-16): # Shanks gives 1911-05-26 for the transition to WAT, # evidently confusing the date of the Portuguese decree # (see Europe/Lisbon) with the date that it took effect. # # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1 1:00u -1:00 - -01 1975 0:00 - GMT # Kenya # From P Chan (2020-10-24): # # The standard time of GMT+2:30 was adopted in the East Africa Protectorate.... # [The Official Gazette, 1908-05-01, p 274] # https://books.google.com/books?id=e-cAC-sjPSEC&pg=PA274 # # At midnight on 30 June 1928 the clocks throughout Kenya was put forward # half an hour by the Alteration of Time Ordinance, 1928. # https://gazettes.africa/archive/ke/1928/ke-government-gazette-dated-1928-05-11-no-28.pdf # [Ordinance No. 11 of 1928, The Official Gazette, 1928-06-26, p 813] # https://books.google.com/books?id=2S0S6os32ZUC&pg=PA813 # # The 1928 ordinance was repealed by the Alteration of Time (repeal) Ordinance, # 1929 and the time was restored to GMT+2:30 at midnight on 4 January 1930. # [Ordinance No. 97 of 1929, The Official Gazette, 1929-12-31, p 2701] # https://books.google.com/books?id=_g18jIZQlwwC&pg=PA2701 # # The Alteration of Time Ordinance, 1936 changed the time to GMT+2:45 # and repealed the previous ordinance at midnight on 31 December 1936. # [The Official Gazette, 1936-07-21, p 705] # https://books.google.com/books?id=K7j41z0aC5wC&pg=PA705 # # The Defence (Amendment of Laws No. 120) Regulations changed the time # to GMT+3 at midnight on 31 July 1942. # [Kenya Official Gazette Supplement No. 32, 1942-07-21, p 331] # https://books.google.com/books?hl=zh-TW&id=c_E-AQAAIAAJ&pg=PA331 # The provision of the 1936 ordinance was not repealed and was later # incorporated in the Interpretation and General Clauses Ordinance in 1948. # Although it was overridden by the 1942 regulations. # [The Laws of Kenya in force on 1948-09-21, Title I, Chapter 1, 31] # https://dds.crl.edu/item/217517 (p.101) # In 1950 the Interpretation and General Clauses Ordinance was amended to adopt # GMT+3 permanently as the 1942 regulations were due to expire on 10 December. # https://books.google.com/books?id=jvR8mUDAwR0C&pg=PA787 # [Ordinance No. 44 of 1950, Kenya Ordinances 1950, Vol. XXIX, p 294] # https://books.google.com/books?id=-_dQAQAAMAAJ&pg=PA294 # From Paul Eggert (2020-10-24): # The 1908-05-01 announcement does not give an effective date, # so just say "1908 May". # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Nairobi 2:27:16 - LMT 1908 May 2:30 - +0230 1928 Jun 30 24:00 3:00 - EAT 1930 Jan 4 24:00 2:30 - +0230 1936 Dec 31 24:00 2:45 - +0245 1942 Jul 31 24:00 3:00 - EAT Link Africa/Nairobi Africa/Addis_Ababa # Ethiopia Link Africa/Nairobi Africa/Asmara # Eritrea Link Africa/Nairobi Africa/Dar_es_Salaam # Tanzania Link Africa/Nairobi Africa/Djibouti Link Africa/Nairobi Africa/Kampala # Uganda Link Africa/Nairobi Africa/Mogadishu # Somalia Link Africa/Nairobi Indian/Antananarivo # Madagascar Link Africa/Nairobi Indian/Comoro Link Africa/Nairobi Indian/Mayotte # Lesotho # See Africa/Johannesburg. # Liberia # # From Paul Eggert (2017-03-02): # # The Nautical Almanac for the Year 1970, p 264, is the source for -0:44:30. # # In 1972 Liberia was the last country to switch from a UT offset # that was not a multiple of 15 or 20 minutes. The 1972 change was on # 1972-01-07, according to an entry dated 1972-01-04 on p 330 of: # Presidential Papers: First year of the administration of # President William R. Tolbert, Jr., July 23, 1971-July 31, 1972. # Monrovia: Executive Mansion. # # Use the abbreviation "MMT" before 1972, as the more-accurate numeric # abbreviation "-004430" would be one byte over the POSIX limit. # # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Monrovia -0:43:08 - LMT 1882 -0:43:08 - MMT 1919 Mar # Monrovia Mean Time -0:44:30 - MMT 1972 Jan 7 # approximately MMT 0:00 - GMT ############################################################################### # Libya # From Even Scharning (2012-11-10): # Libya set their time one hour back at 02:00 on Saturday November 10. # https://www.libyaherald.com/2012/11/04/clocks-to-go-back-an-hour-on-saturday/ # Here is an official source [in Arabic]: http://ls.ly/fb6Yc # # Steffen Thorsen forwarded a translation (2012-11-10) in # https://mm.icann.org/pipermail/tz/2012-November/018451.html # # From Tim Parenti (2012-11-11): # Treat the 2012-11-10 change as a zone change from UTC+2 to UTC+1. # The DST rules planned for 2013 and onward roughly mirror those of Europe # (either two days before them or five days after them, so as to fall on # lastFri instead of lastSun). # From Even Scharning (2013-10-25): # The scheduled end of DST in Libya on Friday, October 25, 2013 was # cancelled yesterday.... # https://www.libyaherald.com/2013/10/24/correction-no-time-change-tomorrow/ # # From Paul Eggert (2013-10-25): # For now, assume they're reverting to the pre-2012 rules of permanent UT +02. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Libya 1951 only - Oct 14 2:00 1:00 S Rule Libya 1952 only - Jan 1 0:00 0 - Rule Libya 1953 only - Oct 9 2:00 1:00 S Rule Libya 1954 only - Jan 1 0:00 0 - Rule Libya 1955 only - Sep 30 0:00 1:00 S Rule Libya 1956 only - Jan 1 0:00 0 - Rule Libya 1982 1984 - Apr 1 0:00 1:00 S Rule Libya 1982 1985 - Oct 1 0:00 0 - Rule Libya 1985 only - Apr 6 0:00 1:00 S Rule Libya 1986 only - Apr 4 0:00 1:00 S Rule Libya 1986 only - Oct 3 0:00 0 - Rule Libya 1987 1989 - Apr 1 0:00 1:00 S Rule Libya 1987 1989 - Oct 1 0:00 0 - Rule Libya 1997 only - Apr 4 0:00 1:00 S Rule Libya 1997 only - Oct 4 0:00 0 - Rule Libya 2013 only - Mar lastFri 1:00 1:00 S Rule Libya 2013 only - Oct lastFri 2:00 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Tripoli 0:52:44 - LMT 1920 1:00 Libya CE%sT 1959 2:00 - EET 1982 1:00 Libya CE%sT 1990 May 4 # The 1996 and 1997 entries are from Shanks & Pottenger; # the IATA SSIM data entries contain some obvious errors. 2:00 - EET 1996 Sep 30 1:00 Libya CE%sT 1997 Oct 4 2:00 - EET 2012 Nov 10 2:00 1:00 Libya CE%sT 2013 Oct 25 2:00 2:00 - EET # Madagascar # See Africa/Nairobi. # Malawi # See Africa/Maputo. # Mali # Mauritania # See Africa/Abidjan. # Mauritius # From Steffen Thorsen (2008-06-25): # Mauritius plans to observe DST from 2008-11-01 to 2009-03-31 on a trial # basis.... # It seems that Mauritius observed daylight saving time from 1982-10-10 to # 1983-03-20 as well, but that was not successful.... # https://www.timeanddate.com/news/time/mauritius-daylight-saving-time.html # From Alex Krivenyshev (2008-06-25): # http://economicdevelopment.gov.mu/portal/site/Mainhomepage/menuitem.a42b24128104d9845dabddd154508a0c/?content_id=0a7cee8b5d69a110VgnVCM1000000a04a8c0RCRD # From Arthur David Olson (2008-06-30): # The www.timeanddate.com article cited by Steffen Thorsen notes that "A # final decision has yet to be made on the times that daylight saving # would begin and end on these dates." As a place holder, use midnight. # From Paul Eggert (2008-06-30): # Follow Thorsen on DST in 1982/1983, instead of Shanks & Pottenger. # From Steffen Thorsen (2008-07-10): # According to # http://www.lexpress.mu/display_article.php?news_id=111216 # (in French), Mauritius will start and end their DST a few days earlier # than previously announced (2008-11-01 to 2009-03-31). The new start # date is 2008-10-26 at 02:00 and the new end date is 2009-03-27 (no time # given, but it is probably at either 2 or 3 wall clock time). # # A little strange though, since the article says that they moved the date # to align itself with Europe and USA which also change time on that date, # but that means they have not paid attention to what happened in # USA/Canada last year (DST ends first Sunday in November). I also wonder # why that they end on a Friday, instead of aligning with Europe which # changes two days later. # From Alex Krivenyshev (2008-07-11): # Seems that English language article "The revival of daylight saving # time: Energy conservation?"- No. 16578 (07/11/2008) was originally # published on Monday, June 30, 2008... # # I guess that article in French "Le gouvernement avance l'introduction # de l'heure d'été" stating that DST in Mauritius starting on October 26 # and ending on March 27, 2009 is the most recent one.... # http://www.worldtimezone.com/dst_news/dst_news_mauritius02.html # From Riad M. Hossen Ally (2008-08-03): # The Government of Mauritius weblink # http://www.gov.mu/portal/site/pmosite/menuitem.4ca0efdee47462e7440a600248a521ca/?content_id=4728ca68b2a5b110VgnVCM1000000a04a8c0RCRD # Cabinet Decision of July 18th, 2008 states as follows: # # 4. ...Cabinet has agreed to the introduction into the National Assembly # of the Time Bill which provides for the introduction of summer time in # Mauritius. The summer time period which will be of one hour ahead of # the standard time, will be aligned with that in Europe and the United # States of America. It will start at two o'clock in the morning on the # last Sunday of October and will end at two o'clock in the morning on # the last Sunday of March the following year. The summer time for the # year 2008-2009 will, therefore, be effective as from 26 October 2008 # and end on 29 March 2009. # From Ed Maste (2008-10-07): # THE TIME BILL (No. XXVII of 2008) Explanatory Memorandum states the # beginning / ending of summer time is 2 o'clock standard time in the # morning of the last Sunday of October / last Sunday of March. # http://www.gov.mu/portal/goc/assemblysite/file/bill2708.pdf # From Steffen Thorsen (2009-06-05): # According to several sources, Mauritius will not continue to observe # DST the coming summer... # # Some sources, in French: # http://www.defimedia.info/news/946/Rashid-Beebeejaun-:-%C2%AB-L%E2%80%99heure-d%E2%80%99%C3%A9t%C3%A9-ne-sera-pas-appliqu%C3%A9e-cette-ann%C3%A9e-%C2%BB # http://lexpress.mu/Story/3398~Beebeejaun---Les-objectifs-d-%C3%A9conomie-d-%C3%A9nergie-de-l-heure-d-%C3%A9t%C3%A9-ont-%C3%A9t%C3%A9-atteints- # # Our wrap-up: # https://www.timeanddate.com/news/time/mauritius-dst-will-not-repeat.html # From Arthur David Olson (2009-07-11): # The "mauritius-dst-will-not-repeat" wrapup includes this: # "The trial ended on March 29, 2009, when the clocks moved back by one hour # at 2am (or 02:00) local time..." # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Mauritius 1982 only - Oct 10 0:00 1:00 - Rule Mauritius 1983 only - Mar 21 0:00 0 - Rule Mauritius 2008 only - Oct lastSun 2:00 1:00 - Rule Mauritius 2009 only - Mar lastSun 2:00 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis 4:00 Mauritius +04/+05 # Agalega Is, Rodriguez # no information; probably like Indian/Mauritius # Mayotte # See Africa/Nairobi. # Morocco # See Africa/Ceuta for Spanish Morocco. # From Alex Krivenyshev (2008-05-09): # Here is an article that Morocco plan to introduce Daylight Saving Time between # 1 June, 2008 and 27 September, 2008. # # "... Morocco is to save energy by adjusting its clock during summer so it will # be one hour ahead of GMT between 1 June and 27 September, according to # Communication Minister and Government Spokesman, Khalid Naciri...." # # http://www.worldtimezone.com/dst_news/dst_news_morocco01.html # http://en.afrik.com/news11892.html # From Alex Krivenyshev (2008-05-09): # The Morocco time change can be confirmed on Morocco web site Maghreb Arabe # Presse: # http://www.map.ma/eng/sections/box3/morocco_shifts_to_da/view # # Morocco shifts to daylight time on June 1st through September 27, Govt. # spokesman. # From Patrice Scattolin (2008-05-09): # According to this article: # https://www.avmaroc.com/actualite/heure-dete-comment-a127896.html # (and republished here: ) # the changes occur at midnight: # # Saturday night May 31st at midnight (which in French is to be # interpreted as the night between Saturday and Sunday) # Sunday night the 28th at midnight # # Seeing that the 28th is Monday, I am guessing that she intends to say # the midnight of the 28th which is the midnight between Sunday and # Monday, which jives with other sources that say that it's inclusive # June 1st to Sept 27th. # # The decision was taken by decree *2-08-224 *but I can't find the decree # published on the web. # # It's also confirmed here: # http://www.maroc.ma/NR/exeres/FACF141F-D910-44B0-B7FA-6E03733425D1.htm # on a government portal as being between June 1st and Sept 27th (not yet # posted in English). # # The following Google query will generate many relevant hits: # https://www.google.com/search?hl=en&q=Conseil+de+gouvernement+maroc+heure+avance&btnG=Search # From Steffen Thorsen (2008-08-27): # Morocco will change the clocks back on the midnight between August 31 # and September 1. They originally planned to observe DST to near the end # of September: # # One article about it (in French): # http://www.menara.ma/fr/Actualites/Maroc/Societe/ci.retour_a_l_heure_gmt_a_partir_du_dimanche_31_aout_a_minuit_officiel_.default # # We have some further details posted here: # https://www.timeanddate.com/news/time/morocco-ends-dst-early-2008.html # From Steffen Thorsen (2009-03-17): # Morocco will observe DST from 2009-06-01 00:00 to 2009-08-21 00:00 according # to many sources, such as # http://news.marweb.com/morocco/entertainment/morocco-daylight-saving.html # http://www.medi1sat.ma/fr/depeche.aspx?idp=2312 # (French) # # Our summary: # https://www.timeanddate.com/news/time/morocco-starts-dst-2009.html # From Alexander Krivenyshev (2009-03-17): # Here is a link to official document from Royaume du Maroc Premier Ministre, # Ministère de la Modernisation des Secteurs Publics # # Under Article 1 of Royal Decree No. 455-67 of Act 23 safar 1387 (2 June 1967) # concerning the amendment of the legal time, the Ministry of Modernization of # Public Sectors announced that the official time in the Kingdom will be # advanced 60 minutes from Sunday 31 May 2009 at midnight. # # http://www.mmsp.gov.ma/francais/Actualites_fr/PDF_Actualites_Fr/HeureEte_FR.pdf # http://www.worldtimezone.com/dst_news/dst_news_morocco03.html # From Steffen Thorsen (2010-04-13): # Several news media in Morocco report that the Ministry of Modernization # of Public Sectors has announced that Morocco will have DST from # 2010-05-02 to 2010-08-08. # # Example: # http://www.lavieeco.com/actualites/4099-le-maroc-passera-a-l-heure-d-ete-gmt1-le-2-mai.html # (French) # Our page: # https://www.timeanddate.com/news/time/morocco-starts-dst-2010.html # From Dan Abitol (2011-03-30): # ...Rules for Africa/Casablanca are the following (24h format) # The 3rd April 2011 at 00:00:00, [it] will be 3rd April 01:00:00 # The 31st July 2011 at 00:59:59, [it] will be 31st July 00:00:00 # ...Official links of change in morocco # The change was broadcast on the FM Radio # I ve called ANRT (telecom regulations in Morocco) at # +212.537.71.84.00 # http://www.anrt.net.ma/fr/ # They said that # http://www.map.ma/fr/sections/accueil/l_heure_legale_au_ma/view # is the official publication to look at. # They said that the decision was already taken. # # More articles in the press # https://www.yabiladi.com/articles/details/5058/secret-l-heure-d-ete-maroc-leve.html # http://www.lematin.ma/Actualite/Express/Article.asp?id=148923 # http://www.lavieeco.com/actualite/Le-Maroc-passe-sur-GMT%2B1-a-partir-de-dim # From Petr Machata (2011-03-30): # They have it written in English here: # http://www.map.ma/eng/sections/home/morocco_to_spring_fo/view # # It says there that "Morocco will resume its standard time on July 31, # 2011 at midnight." Now they don't say whether they mean midnight of # wall clock time (i.e. 11pm UTC), but that's what I would assume. It has # also been like that in the past. # From Alexander Krivenyshev (2012-03-09): # According to Infomédiaire web site from Morocco (infomediaire.ma), # on March 9, 2012, (in French) Heure légale: # Le Maroc adopte officiellement l'heure d'été # http://www.infomediaire.ma/news/maroc/heure-l%C3%A9gale-le-maroc-adopte-officiellement-lheure-d%C3%A9t%C3%A9 # Governing Council adopted draft decree, that Morocco DST starts on # the last Sunday of March (March 25, 2012) and ends on # last Sunday of September (September 30, 2012) # except the month of Ramadan. # or (brief) # http://www.worldtimezone.com/dst_news/dst_news_morocco06.html # From Arthur David Olson (2012-03-10): # The infomediaire.ma source indicates that the system is to be in # effect every year. It gives 03H00 as the "fall back" time of day; # it lacks a "spring forward" time of day; assume 2:00 XXX. # Wait on specifying the Ramadan exception for details about # start date, start time of day, end date, and end time of day XXX. # From Christophe Tropamer (2012-03-16): # Seen Morocco change again: # http://www.le2uminutes.com/actualite.php # "...à partir du dernier dimanche d'avril et non fins mars, # comme annoncé précédemment." # From Milamber Space Network (2012-07-17): # The official return to GMT is announced by the Moroccan government: # http://www.mmsp.gov.ma/fr/actualites.aspx?id=288 [in French] # # Google translation, lightly edited: # Back to the standard time of the Kingdom (GMT) # Pursuant to Decree No. 2-12-126 issued on 26 Jumada (I) 1433 (April 18, # 2012) and in accordance with the order of Mr. President of the # Government No. 3-47-12 issued on 24 Sha'ban (11 July 2012), the Ministry # of Public Service and Administration Modernization announces the return # of the legal time of the Kingdom (GMT) from Friday, July 20, 2012 until # Monday, August 20, 2012. So the time will be delayed by 60 minutes from # 3:00 am Friday, July 20, 2012 and will again be advanced by 60 minutes # August 20, 2012 from 2:00 am. # From Paul Eggert (2013-03-06): # Morocco's daylight-saving transitions due to Ramadan seem to be # announced a bit in advance. On 2012-07-11 the Moroccan government # announced that year's Ramadan daylight-saving transitions would be # 2012-07-20 and 2012-08-20; see # http://www.mmsp.gov.ma/fr/actualites.aspx?id=288 # From Andrew Paprocki (2013-07-02): # Morocco announced that the year's Ramadan daylight-savings # transitions would be 2013-07-07 and 2013-08-10; see: # http://www.maroc.ma/en/news/morocco-suspends-daylight-saving-time-july-7-aug10 # From Steffen Thorsen (2013-09-28): # Morocco extends DST by one month, on very short notice, just 1 day # before it was going to end. There is a new decree (2.13.781) for # this, where DST from now on goes from last Sunday of March at 02:00 # to last Sunday of October at 03:00, similar to EU rules. Official # source (French): # http://www.maroc.gov.ma/fr/actualites/lhoraire-dete-gmt1-maintenu-jusquau-27-octobre-2013 # Another source (specifying the time for start and end in the decree): # http://www.lemag.ma/Heure-d-ete-au-Maroc-jusqu-au-27-octobre_a75620.html # From Sebastien Willemijns (2014-03-18): # http://www.afriquinfos.com/articles/2014/3/18/maroc-heure-dete-avancez-tous-horloges-247891.asp # From Milamber Space Network (2014-06-05): # The Moroccan government has recently announced that the country will return # to standard time at 03:00 on Saturday, June 28, 2014 local time.... DST # will resume again at 02:00 on Saturday, August 2, 2014.... # http://www.mmsp.gov.ma/fr/actualites.aspx?id=586 # From Milamber (2015-06-08): # (Google Translation) The hour will thus be delayed 60 minutes # Sunday, June 14 at 3:00, the ministry said in a statement, adding # that the time will be advanced again 60 minutes Sunday, July 19, # 2015 at 2:00. The move comes under 2.12.126 Decree of 26 Jumada I # 1433 (18 April 2012) and the decision of the Head of Government of # 16 N. 3-29-15 Chaaban 1435 (4 June 2015). # Source (french): # https://lnt.ma/le-maroc-reculera-dune-heure-le-dimanche-14-juin/ # # From Milamber (2015-06-09): # http://www.mmsp.gov.ma/fr/actualites.aspx?id=863 # # From Michael Deckers (2015-06-09): # [The gov.ma announcement] would (probably) make the switch on 2015-07-19 go # from 03:00 to 04:00 rather than from 02:00 to 03:00, as in the patch.... # I think the patch is correct and the quoted text is wrong; the text in # agrees # with the patch. # From Mohamed Essedik Najd (2018-10-26): # Today, a Moroccan government council approved the perpetual addition # of 60 minutes to the regular Moroccan timezone. # From Matt Johnson (2018-10-28): # http://www.sgg.gov.ma/Portals/1/BO/2018/BO_6720-bis_Ar.pdf # # From Maamar Abdelkader (2018-11-01): # We usually move clocks back the previous week end and come back to the +1 # the week end after.... The government does not announce yet the decision # about this temporary change. But it s 99% sure that it will be the case, # as in previous years. An unofficial survey was done these days, showing # that 64% of asked people are ok for moving from +1 to +0 during Ramadan. # https://leconomiste.com/article/1035870-enquete-l-economiste-sunergia-64-des-marocains-plebiscitent-le-gmt-pendant-ramadan # From Naoufal Semlali (2019-04-16): # Morocco will be on GMT starting from Sunday, May 5th 2019 at 3am. # The switch to GMT+1 will occur on Sunday, June 9th 2019 at 2am.... # http://fr.le360.ma/societe/voici-la-date-du-retour-a-lheure-legale-au-maroc-188222 # From Semlali Naoufal (2020-04-14): # Following the announcement by the Moroccan government, the switch to # GMT time will take place on Sunday, April 19, 2020 from 3 a.m. and # the return to GMT+1 time will take place on Sunday, May 31, 2020 at 2 a.m.... # https://maroc-diplomatique.net/maroc-le-retour-a-lheure-gmt-est-prevu-dimanche-prochain/ # http://aujourdhui.ma/actualite/gmt1-retour-a-lheure-normale-dimanche-prochain-1 # # From Milamber (2020-05-31) # In Morocco (where I live), the end of Ramadan (Arabic month) is followed by # the Eid al-Fitr, and concretely it's 1 or 2 day offs for the people (with # traditional visiting of family, big lunches/dinners, etc.). So for this # year the astronomical calculations don't include the following 2 days off in # the calc. These 2 days fall in a Sunday/Monday, so it's not acceptable by # people to have a time shift during these 2 days off. Perhaps you can modify # the (predicted) rules for next years: if the end of Ramadan is a (probable) # Friday or Saturday (and so the 2 days off are on a weekend), the next time # shift will be the next weekend. # # From Paul Eggert (2020-05-31): # For now, guess that in the future Morocco will fall back at 03:00 # the last Sunday before Ramadan, and spring forward at 02:00 the # first Sunday after two days after Ramadan. To implement this, # transition dates and times for 2019 through 2087 were determined by # running the following program under GNU Emacs 26.3. (This algorithm # also produces the correct transition dates for 2016 through 2018, # though the times differ due to Morocco's time zone change in 2018.) # (let ((islamic-year 1440)) # (require 'cal-islam) # (while (< islamic-year 1511) # (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year))) # (b (+ 2 (calendar-islamic-to-absolute (list 10 1 islamic-year)))) # (sunday 0)) # (while (/= sunday (mod (setq a (1- a)) 7))) # (while (/= sunday (mod b 7)) # (setq b (1+ b))) # (setq a (calendar-gregorian-from-absolute a)) # (setq b (calendar-gregorian-from-absolute b)) # (insert # (format # (concat "Rule\tMorocco\t%d\tonly\t-\t%s\t%2d\t 3:00\t-1:00\t-\n" # "Rule\tMorocco\t%d\tonly\t-\t%s\t%2d\t 2:00\t0\t-\n") # (car (cdr (cdr a))) (calendar-month-name (car a) t) (car (cdr a)) # (car (cdr (cdr b))) (calendar-month-name (car b) t) (car (cdr b))))) # (setq islamic-year (+ 1 islamic-year)))) # # From Milamber (2021-03-31, 2022-03-10), confirming these predictions: # https://www.mmsp.gov.ma/fr/actualites.aspx?id=2076 # https://www.ecoactu.ma/horaires-administration-ramadan-gmtheure-gmt-a-partir-de-dimanche-27-mars/ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Morocco 1939 only - Sep 12 0:00 1:00 - Rule Morocco 1939 only - Nov 19 0:00 0 - Rule Morocco 1940 only - Feb 25 0:00 1:00 - Rule Morocco 1945 only - Nov 18 0:00 0 - Rule Morocco 1950 only - Jun 11 0:00 1:00 - Rule Morocco 1950 only - Oct 29 0:00 0 - Rule Morocco 1967 only - Jun 3 12:00 1:00 - Rule Morocco 1967 only - Oct 1 0:00 0 - Rule Morocco 1974 only - Jun 24 0:00 1:00 - Rule Morocco 1974 only - Sep 1 0:00 0 - Rule Morocco 1976 1977 - May 1 0:00 1:00 - Rule Morocco 1976 only - Aug 1 0:00 0 - Rule Morocco 1977 only - Sep 28 0:00 0 - Rule Morocco 1978 only - Jun 1 0:00 1:00 - Rule Morocco 1978 only - Aug 4 0:00 0 - Rule Morocco 2008 only - Jun 1 0:00 1:00 - Rule Morocco 2008 only - Sep 1 0:00 0 - Rule Morocco 2009 only - Jun 1 0:00 1:00 - Rule Morocco 2009 only - Aug 21 0:00 0 - Rule Morocco 2010 only - May 2 0:00 1:00 - Rule Morocco 2010 only - Aug 8 0:00 0 - Rule Morocco 2011 only - Apr 3 0:00 1:00 - Rule Morocco 2011 only - Jul 31 0:00 0 - Rule Morocco 2012 2013 - Apr lastSun 2:00 1:00 - Rule Morocco 2012 only - Jul 20 3:00 0 - Rule Morocco 2012 only - Aug 20 2:00 1:00 - Rule Morocco 2012 only - Sep 30 3:00 0 - Rule Morocco 2013 only - Jul 7 3:00 0 - Rule Morocco 2013 only - Aug 10 2:00 1:00 - Rule Morocco 2013 2018 - Oct lastSun 3:00 0 - Rule Morocco 2014 2018 - Mar lastSun 2:00 1:00 - Rule Morocco 2014 only - Jun 28 3:00 0 - Rule Morocco 2014 only - Aug 2 2:00 1:00 - Rule Morocco 2015 only - Jun 14 3:00 0 - Rule Morocco 2015 only - Jul 19 2:00 1:00 - Rule Morocco 2016 only - Jun 5 3:00 0 - Rule Morocco 2016 only - Jul 10 2:00 1:00 - Rule Morocco 2017 only - May 21 3:00 0 - Rule Morocco 2017 only - Jul 2 2:00 1:00 - Rule Morocco 2018 only - May 13 3:00 0 - Rule Morocco 2018 only - Jun 17 2:00 1:00 - Rule Morocco 2019 only - May 5 3:00 -1:00 - Rule Morocco 2019 only - Jun 9 2:00 0 - Rule Morocco 2020 only - Apr 19 3:00 -1:00 - Rule Morocco 2020 only - May 31 2:00 0 - Rule Morocco 2021 only - Apr 11 3:00 -1:00 - Rule Morocco 2021 only - May 16 2:00 0 - Rule Morocco 2022 only - Mar 27 3:00 -1:00 - Rule Morocco 2022 only - May 8 2:00 0 - Rule Morocco 2023 only - Mar 19 3:00 -1:00 - Rule Morocco 2023 only - Apr 30 2:00 0 - Rule Morocco 2024 only - Mar 10 3:00 -1:00 - Rule Morocco 2024 only - Apr 14 2:00 0 - Rule Morocco 2025 only - Feb 23 3:00 -1:00 - Rule Morocco 2025 only - Apr 6 2:00 0 - Rule Morocco 2026 only - Feb 15 3:00 -1:00 - Rule Morocco 2026 only - Mar 22 2:00 0 - Rule Morocco 2027 only - Feb 7 3:00 -1:00 - Rule Morocco 2027 only - Mar 14 2:00 0 - Rule Morocco 2028 only - Jan 23 3:00 -1:00 - Rule Morocco 2028 only - Mar 5 2:00 0 - Rule Morocco 2029 only - Jan 14 3:00 -1:00 - Rule Morocco 2029 only - Feb 18 2:00 0 - Rule Morocco 2029 only - Dec 30 3:00 -1:00 - Rule Morocco 2030 only - Feb 10 2:00 0 - Rule Morocco 2030 only - Dec 22 3:00 -1:00 - Rule Morocco 2031 only - Feb 2 2:00 0 - Rule Morocco 2031 only - Dec 14 3:00 -1:00 - Rule Morocco 2032 only - Jan 18 2:00 0 - Rule Morocco 2032 only - Nov 28 3:00 -1:00 - Rule Morocco 2033 only - Jan 9 2:00 0 - Rule Morocco 2033 only - Nov 20 3:00 -1:00 - Rule Morocco 2033 only - Dec 25 2:00 0 - Rule Morocco 2034 only - Nov 5 3:00 -1:00 - Rule Morocco 2034 only - Dec 17 2:00 0 - Rule Morocco 2035 only - Oct 28 3:00 -1:00 - Rule Morocco 2035 only - Dec 9 2:00 0 - Rule Morocco 2036 only - Oct 19 3:00 -1:00 - Rule Morocco 2036 only - Nov 23 2:00 0 - Rule Morocco 2037 only - Oct 4 3:00 -1:00 - Rule Morocco 2037 only - Nov 15 2:00 0 - Rule Morocco 2038 only - Sep 26 3:00 -1:00 - Rule Morocco 2038 only - Nov 7 2:00 0 - Rule Morocco 2039 only - Sep 18 3:00 -1:00 - Rule Morocco 2039 only - Oct 23 2:00 0 - Rule Morocco 2040 only - Sep 2 3:00 -1:00 - Rule Morocco 2040 only - Oct 14 2:00 0 - Rule Morocco 2041 only - Aug 25 3:00 -1:00 - Rule Morocco 2041 only - Sep 29 2:00 0 - Rule Morocco 2042 only - Aug 10 3:00 -1:00 - Rule Morocco 2042 only - Sep 21 2:00 0 - Rule Morocco 2043 only - Aug 2 3:00 -1:00 - Rule Morocco 2043 only - Sep 13 2:00 0 - Rule Morocco 2044 only - Jul 24 3:00 -1:00 - Rule Morocco 2044 only - Aug 28 2:00 0 - Rule Morocco 2045 only - Jul 9 3:00 -1:00 - Rule Morocco 2045 only - Aug 20 2:00 0 - Rule Morocco 2046 only - Jul 1 3:00 -1:00 - Rule Morocco 2046 only - Aug 12 2:00 0 - Rule Morocco 2047 only - Jun 23 3:00 -1:00 - Rule Morocco 2047 only - Jul 28 2:00 0 - Rule Morocco 2048 only - Jun 7 3:00 -1:00 - Rule Morocco 2048 only - Jul 19 2:00 0 - Rule Morocco 2049 only - May 30 3:00 -1:00 - Rule Morocco 2049 only - Jul 4 2:00 0 - Rule Morocco 2050 only - May 15 3:00 -1:00 - Rule Morocco 2050 only - Jun 26 2:00 0 - Rule Morocco 2051 only - May 7 3:00 -1:00 - Rule Morocco 2051 only - Jun 18 2:00 0 - Rule Morocco 2052 only - Apr 28 3:00 -1:00 - Rule Morocco 2052 only - Jun 2 2:00 0 - Rule Morocco 2053 only - Apr 13 3:00 -1:00 - Rule Morocco 2053 only - May 25 2:00 0 - Rule Morocco 2054 only - Apr 5 3:00 -1:00 - Rule Morocco 2054 only - May 17 2:00 0 - Rule Morocco 2055 only - Mar 28 3:00 -1:00 - Rule Morocco 2055 only - May 2 2:00 0 - Rule Morocco 2056 only - Mar 12 3:00 -1:00 - Rule Morocco 2056 only - Apr 23 2:00 0 - Rule Morocco 2057 only - Mar 4 3:00 -1:00 - Rule Morocco 2057 only - Apr 8 2:00 0 - Rule Morocco 2058 only - Feb 17 3:00 -1:00 - Rule Morocco 2058 only - Mar 31 2:00 0 - Rule Morocco 2059 only - Feb 9 3:00 -1:00 - Rule Morocco 2059 only - Mar 23 2:00 0 - Rule Morocco 2060 only - Feb 1 3:00 -1:00 - Rule Morocco 2060 only - Mar 7 2:00 0 - Rule Morocco 2061 only - Jan 16 3:00 -1:00 - Rule Morocco 2061 only - Feb 27 2:00 0 - Rule Morocco 2062 only - Jan 8 3:00 -1:00 - Rule Morocco 2062 only - Feb 19 2:00 0 - Rule Morocco 2062 only - Dec 31 3:00 -1:00 - Rule Morocco 2063 only - Feb 4 2:00 0 - Rule Morocco 2063 only - Dec 16 3:00 -1:00 - Rule Morocco 2064 only - Jan 27 2:00 0 - Rule Morocco 2064 only - Dec 7 3:00 -1:00 - Rule Morocco 2065 only - Jan 11 2:00 0 - Rule Morocco 2065 only - Nov 22 3:00 -1:00 - Rule Morocco 2066 only - Jan 3 2:00 0 - Rule Morocco 2066 only - Nov 14 3:00 -1:00 - Rule Morocco 2066 only - Dec 26 2:00 0 - Rule Morocco 2067 only - Nov 6 3:00 -1:00 - Rule Morocco 2067 only - Dec 11 2:00 0 - Rule Morocco 2068 only - Oct 21 3:00 -1:00 - Rule Morocco 2068 only - Dec 2 2:00 0 - Rule Morocco 2069 only - Oct 13 3:00 -1:00 - Rule Morocco 2069 only - Nov 24 2:00 0 - Rule Morocco 2070 only - Oct 5 3:00 -1:00 - Rule Morocco 2070 only - Nov 9 2:00 0 - Rule Morocco 2071 only - Sep 20 3:00 -1:00 - Rule Morocco 2071 only - Nov 1 2:00 0 - Rule Morocco 2072 only - Sep 11 3:00 -1:00 - Rule Morocco 2072 only - Oct 16 2:00 0 - Rule Morocco 2073 only - Aug 27 3:00 -1:00 - Rule Morocco 2073 only - Oct 8 2:00 0 - Rule Morocco 2074 only - Aug 19 3:00 -1:00 - Rule Morocco 2074 only - Sep 30 2:00 0 - Rule Morocco 2075 only - Aug 11 3:00 -1:00 - Rule Morocco 2075 only - Sep 15 2:00 0 - Rule Morocco 2076 only - Jul 26 3:00 -1:00 - Rule Morocco 2076 only - Sep 6 2:00 0 - Rule Morocco 2077 only - Jul 18 3:00 -1:00 - Rule Morocco 2077 only - Aug 29 2:00 0 - Rule Morocco 2078 only - Jul 10 3:00 -1:00 - Rule Morocco 2078 only - Aug 14 2:00 0 - Rule Morocco 2079 only - Jun 25 3:00 -1:00 - Rule Morocco 2079 only - Aug 6 2:00 0 - Rule Morocco 2080 only - Jun 16 3:00 -1:00 - Rule Morocco 2080 only - Jul 21 2:00 0 - Rule Morocco 2081 only - Jun 1 3:00 -1:00 - Rule Morocco 2081 only - Jul 13 2:00 0 - Rule Morocco 2082 only - May 24 3:00 -1:00 - Rule Morocco 2082 only - Jul 5 2:00 0 - Rule Morocco 2083 only - May 16 3:00 -1:00 - Rule Morocco 2083 only - Jun 20 2:00 0 - Rule Morocco 2084 only - Apr 30 3:00 -1:00 - Rule Morocco 2084 only - Jun 11 2:00 0 - Rule Morocco 2085 only - Apr 22 3:00 -1:00 - Rule Morocco 2085 only - Jun 3 2:00 0 - Rule Morocco 2086 only - Apr 14 3:00 -1:00 - Rule Morocco 2086 only - May 19 2:00 0 - Rule Morocco 2087 only - Mar 30 3:00 -1:00 - Rule Morocco 2087 only - May 11 2:00 0 - # For dates after the somewhat-arbitrary cutoff of 2087, assume that # Morocco will no longer observe DST. At some point this table will # need to be extended, though quite possibly Morocco will change the # rules first. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Casablanca -0:30:20 - LMT 1913 Oct 26 0:00 Morocco +00/+01 1984 Mar 16 1:00 - +01 1986 0:00 Morocco +00/+01 2018 Oct 28 3:00 1:00 Morocco +01/+00 # Western Sahara # # From Gwillim Law (2013-10-22): # A correspondent who is usually well informed about time zone matters # ... says that Western Sahara observes daylight saving time, just as # Morocco does. # # From Paul Eggert (2013-10-23): # Assume that this has been true since Western Sahara switched to GMT, # since most of it was then controlled by Morocco. Zone Africa/El_Aaiun -0:52:48 - LMT 1934 Jan # El Aaiún -1:00 - -01 1976 Apr 14 0:00 Morocco +00/+01 2018 Oct 28 3:00 1:00 Morocco +01/+00 # Mozambique # # Shanks gives 1903-03-01 for the transition to CAT. # Perhaps the 1911-05-26 Portuguese decree # https://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf # merely made it official? # # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Maputo 2:10:20 - LMT 1903 Mar 2:00 - CAT Link Africa/Maputo Africa/Blantyre # Malawi Link Africa/Maputo Africa/Bujumbura # Burundi Link Africa/Maputo Africa/Gaborone # Botswana Link Africa/Maputo Africa/Harare # Zimbabwe Link Africa/Maputo Africa/Kigali # Rwanda Link Africa/Maputo Africa/Lubumbashi # E Dem. Rep. of Congo Link Africa/Maputo Africa/Lusaka # Zambia # Namibia # From Arthur David Olson (2017-08-09): # The text of the "Namibia Time Act, 1994" is available online at # www.lac.org.na/laws/1994/811.pdf # and includes this nugget: # Notwithstanding the provisions of subsection (2) of section 1, the # first winter period after the commencement of this Act shall # commence at OOhOO on Monday 21 March 1994 and shall end at 02h00 on # Sunday 4 September 1994. # From Michael Deckers (2017-04-06): # ... both summer and winter time are called "standard" # (which differs from the use in Ireland) ... # From Petronella Sibeene (2007-03-30): # http://allafrica.com/stories/200703300178.html # While the entire country changes its time, Katima Mulilo and other # settlements in Caprivi unofficially will not because the sun there # rises and sets earlier compared to other regions. Chief of # Forecasting Riaan van Zyl explained that the far eastern parts of # the country are close to 40 minutes earlier in sunrise than the rest # of the country. # # From Paul Eggert (2017-02-22): # Although the Zambezi Region (formerly known as Caprivi) informally # observes Botswana time, we have no details about historical practice. # In the meantime people there can use Africa/Gaborone. # See: Immanuel S. The Namibian. 2017-02-23. # https://www.namibian.com.na/51480/read/Time-change-divides-lawmakers # From Steffen Thorsen (2017-08-09): # Namibia is going to change their time zone to what is now their DST: # https://www.newera.com.na/2017/02/23/namibias-winter-time-might-be-repealed/ # This video is from the government decision: # https://www.nbc.na/news/na-passes-namibia-time-bill-repealing-1994-namibia-time-act.8665 # We have made the assumption so far that they will change their time zone at # the same time they would normally start DST, the first Sunday in September: # https://www.timeanddate.com/news/time/namibia-new-time-zone.html # From Paul Eggert (2017-04-09): # Before the change, summer and winter time were both standard time legally. # However in common parlance, winter time was considered to be DST. See, e.g.: # http://www.nbc.na/news/namibias-winter-time-could-be-scrapped.2706 # https://zone.my.na/news/times-are-changing-in-namibia # https://www.newera.com.na/2017/02/23/namibias-winter-time-might-be-repealed/ # Use plain "WAT" and "CAT" for the time zone abbreviations, to be compatible # with Namibia's neighbors. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S # Vanguard section, for zic and other parsers that support negative DST. Rule Namibia 1994 only - Mar 21 0:00 -1:00 WAT Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT Rule Namibia 1995 2017 - Apr Sun>=1 2:00 -1:00 WAT # Rearguard section, for parsers lacking negative DST; see ziguard.awk. #Rule Namibia 1994 only - Mar 21 0:00 0 WAT #Rule Namibia 1994 2017 - Sep Sun>=1 2:00 1:00 CAT #Rule Namibia 1995 2017 - Apr Sun>=1 2:00 0 WAT # End of rearguard section. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Windhoek 1:08:24 - LMT 1892 Feb 8 1:30 - +0130 1903 Mar 2:00 - SAST 1942 Sep 20 2:00 2:00 1:00 SAST 1943 Mar 21 2:00 2:00 - SAST 1990 Mar 21 # independence # Vanguard section, for zic and other parsers that support negative DST. 2:00 Namibia %s # Rearguard section, for parsers lacking negative DST; see ziguard.awk. # 2:00 - CAT 1994 Mar 21 0:00 # From Paul Eggert (2017-04-07): # The official date of the 2017 rule change was 2017-10-24. See: # http://www.lac.org.na/laws/annoSTAT/Namibian%20Time%20Act%209%20of%202017.pdf # 1:00 Namibia %s 2017 Oct 24 # 2:00 - CAT # End of rearguard section. # Niger # See Africa/Lagos. # Nigeria # From P Chan (2020-12-03): # GMT was adopted as the standard time of Lagos on 1905-07-01. # Lagos Weekly Record, 1905-06-24, p 3 # http://ddsnext.crl.edu/titles/31558#?c=0&m=668&s=0&cv=2&r=0&xywh=1446%2C5221%2C1931%2C1235 # says "It is officially notified that on and after the 1st of July 1905 # Greenwich Mean Solar Time will be adopted thought the Colony and # Protectorate, and that it will be necessary to put all clocks 13 minutes and # 35 seconds back, recording local mean time." # # It seemed that Lagos returned to LMT on 1908-07-01. # [The Lagos Standard], 1908-07-01, p 5 # http://ddsnext.crl.edu/titles/31556#?c=0&m=78&s=0&cv=4&r=0&xywh=-92%2C3590%2C3944%2C2523 # says "Scarcely have the people become accustomed to this new time, when # another official notice has now appeared announcing that from and after the # 1st July next, return will be made to local mean time." # # From P Chan (2020-11-27): # On 1914-01-01, standard time of GMT+0:30 was adopted for the unified Nigeria. # Colonial Reports - Annual. No. 878. Nigeria. Report for 1914. (April 1916), # p 27 # https://libsysdigi.library.illinois.edu/ilharvest/Africana/Books2011-05/3064634/3064634_1914/3064634_1914_opt.pdf#page=27 # "On January 1st [1914], a universal standard time for Nigeria was adopted, # viz., half an hour fast on Greenwich mean time, corresponding to the meridian # 7 [degrees] 30' E. long." # Lloyd's Register of Shipping (1915) says "Hitherto the time observed in Lagos # was the local mean time. On 1st January, 1914, standard time for the whole of # Nigeria was introduced ... Lagos time has been advanced about 16 minutes # accordingly." # # In 1919, standard time was changed to GMT+1. # Interpretation Ordinance (Cap 2) # The Laws of Nigeria, Containing the Ordinances of Nigeria, in Force on the # 1st Day of January, 1923, Vol.I [p 16] # https://books.google.com/books?id=BOMrAQAAMAAJ&pg=PA16 # "The expression 'Standard time' means standard time as used in Nigeria: # namely, 60 minutes in advance of Greenwich mean time. (As amended by 18 of # 1919, s. 2.)" # From Tim Parenti (2020-12-10): # The Lagos Weekly Record, 1919-09-20, p 3 details discussion on the first # reading of this Bill by the Legislative Council of the Colony of Nigeria on # Thursday 1919-08-28: # http://ddsnext.crl.edu/titles/31558?terms&item_id=303484#?m=1118&c=1&s=0&cv=2&r=0&xywh=1261%2C3408%2C2994%2C1915 # "The proposal is that the Globe should be divided into twelve zones East and # West of Greenwich, of one hour each, Nigeria falling into the zone with a # standard of one hour fast on Greenwich Mean Time. Nigeria standard time is # now 30 minutes in advance of Greenwich Mean Time ... according to the new # proposal, standard time will be advanced another 30 minutes". It was further # proposed that the firing of the time guns likewise be adjusted by 30 minutes # to compensate. # From Tim Parenti (2020-12-10), per P Chan (2020-12-11): # The text of Ordinance 18 of 1919, published in Nigeria Gazette, Vol 6, No 52, # shows that the change was assented to the following day and took effect "on # the 1st day of September, 1919." # Nigeria Gazette and Supplements 1919 Jan-Dec, Reference: 73266B-40, # img 245-246 # https://microform.digital/boa/collections/77/volumes/539/nigeria-lagos-1887-1919 # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Lagos 0:13:35 - LMT 1905 Jul 1 0:00 - GMT 1908 Jul 1 0:13:35 - LMT 1914 Jan 1 0:30 - +0030 1919 Sep 1 1:00 - WAT Link Africa/Lagos Africa/Bangui # Central African Republic Link Africa/Lagos Africa/Brazzaville # Rep. of the Congo Link Africa/Lagos Africa/Douala # Cameroon Link Africa/Lagos Africa/Kinshasa # Dem. Rep. of the Congo (west) Link Africa/Lagos Africa/Libreville # Gabon Link Africa/Lagos Africa/Luanda # Angola Link Africa/Lagos Africa/Malabo # Equatorial Guinea Link Africa/Lagos Africa/Niamey # Niger Link Africa/Lagos Africa/Porto-Novo # Benin # Réunion # See Asia/Dubai. # # The Crozet Islands also observe Réunion time; see the 'antarctica' file. # Rwanda # See Africa/Maputo. # St Helena # See Africa/Abidjan. # The other parts of the St Helena territory are similar: # Tristan da Cunha: on GMT, say Whitman and the CIA # Ascension: on GMT, say the USNO (1995-12-21) and the CIA # Gough (scientific station since 1955; sealers wintered previously): # on GMT, says the CIA # Inaccessible, Nightingale: uninhabited # São Tomé and Príncipe # See Europe/Lisbon for info about the 1912 transition. # From Steffen Thorsen (2018-01-08): # Multiple sources tell that São Tomé changed from UTC to UTC+1 as # they entered the year 2018. # From Michael Deckers (2018-01-08): # the switch is from 01:00 to 02:00 ... [Decree No. 25/2017] # http://www.mnec.gov.st/index.php/publicacoes/documentos/file/90-decreto-lei-n-25-2017 # From Vadim Nasardinov (2018-12-29): # São Tomé and Príncipe is about to do the following on Jan 1, 2019: # https://www.stp-press.st/2018/12/05/governo-jesus-ja-decidiu-repor-hora-legal-sao-tomense/ # # From Michael Deckers (2018-12-30): # https://www.legis-palop.org/download.jsp?idFile=102818 # ... [The legal time of the country, which coincides with universal # coordinated time, will be reinstituted at 2 o'clock on day 1 of January, 2019.] Zone Africa/Sao_Tome 0:26:56 - LMT 1884 #STDOFF -0:36:44.68 -0:36:45 - LMT 1912 Jan 1 00:00u # Lisbon MT 0:00 - GMT 2018 Jan 1 01:00 1:00 - WAT 2019 Jan 1 02:00 0:00 - GMT # Senegal # See Africa/Abidjan. # Seychelles # See Asia/Dubai. # Sierra Leone # See Africa/Abidjan. # Somalia # See Africa/Nairobi. # South Africa # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule SA 1942 1943 - Sep Sun>=15 2:00 1:00 - Rule SA 1943 1944 - Mar Sun>=15 2:00 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Johannesburg 1:52:00 - LMT 1892 Feb 8 1:30 - SAST 1903 Mar 2:00 SA SAST Link Africa/Johannesburg Africa/Maseru # Lesotho Link Africa/Johannesburg Africa/Mbabane # Eswatini # # Marion and Prince Edward Is # scientific station since 1947 # no information # Sudan # From # Sudan News Agency (2000-01-13), # also reported by Michaël De Beukelaer-Dossche via Steffen Thorsen: # Clocks will be moved ahead for 60 minutes all over the Sudan as of noon # Saturday.... This was announced Thursday by Caretaker State Minister for # Manpower Abdul-Rahman Nur-Eddin. # From Ahmed Atyya, National Telecommunications Corp. (NTC), Sudan (2017-10-17): # ... the Republic of Sudan is going to change the time zone from (GMT+3:00) # to (GMT+ 2:00) starting from Wednesday 1 November 2017. # # From Paul Eggert (2017-10-18): # A scanned copy (in Arabic) of Cabinet Resolution No. 352 for the # year 2017 can be found as an attachment in email today from Yahia # Abdalla of NTC, archived at: # https://mm.icann.org/pipermail/tz/2017-October/025333.html # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Sudan 1970 only - May 1 0:00 1:00 S Rule Sudan 1970 1985 - Oct 15 0:00 0 - Rule Sudan 1971 only - Apr 30 0:00 1:00 S Rule Sudan 1972 1985 - Apr lastSun 0:00 1:00 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Khartoum 2:10:08 - LMT 1931 2:00 Sudan CA%sT 2000 Jan 15 12:00 3:00 - EAT 2017 Nov 1 2:00 - CAT # South Sudan # From Steffen Thorsen (2021-01-18): # "South Sudan will change its time zone by setting the clock back 1 # hour on February 1, 2021...." # from https://eyeradio.org/south-sudan-adopts-new-time-zone-makuei/ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Juba 2:06:28 - LMT 1931 2:00 Sudan CA%sT 2000 Jan 15 12:00 3:00 - EAT 2021 Feb 1 00:00 2:00 - CAT # Tanzania # See Africa/Nairobi. # Togo # See Africa/Abidjan. # Tunisia # From Gwillim Law (2005-04-30): # My correspondent, Risto Nykänen, has alerted me to another adoption of DST, # this time in Tunisia. According to Yahoo France News # , in a story attributed to AP # and dated 2005-04-26, "Tunisia has decided to advance its official time by # one hour, starting on Sunday, May 1. Henceforth, Tunisian time will be # UTC+2 instead of UTC+1. The change will take place at 23:00 UTC next # Saturday." (My translation) # # From Oscar van Vlijmen (2005-05-02): # La Presse, the first national daily newspaper ... # http://www.lapresse.tn/archives/archives280405/actualites/lheure.html # ... DST for 2005: on: Sun May 1 0h standard time, off: Fri Sept. 30, # 1h standard time. # # From Atef Loukil (2006-03-28): # The daylight saving time will be the same each year: # Beginning : the last Sunday of March at 02:00 # Ending : the last Sunday of October at 03:00 ... # http://www.tap.info.tn/en/index.php?option=com_content&task=view&id=1188&Itemid=50 # From Steffen Thorsen (2009-03-16): # According to several news sources, Tunisia will not observe DST this year. # (Arabic) # http://www.elbashayer.com/?page=viewn&nid=42546 # https://www.babnet.net/kiwidetail-15295.asp # # We have also confirmed this with the US embassy in Tunisia. # We have a wrap-up about this on the following page: # https://www.timeanddate.com/news/time/tunisia-cancels-dst-2009.html # From Alexander Krivenyshev (2009-03-17): # Here is a link to Tunis Afrique Presse News Agency # # Standard time to be kept the whole year long (tap.info.tn): # # (in English) # http://www.tap.info.tn/en/index.php?option=com_content&task=view&id=26813&Itemid=157 # # (in Arabic) # http://www.tap.info.tn/ar/index.php?option=com_content&task=view&id=61240&Itemid=1 # From Arthur David Olson (2009-03-18): # The Tunis Afrique Presse News Agency notice contains this: "This measure is # due to the fact that the fasting month of Ramadan coincides with the period # concerned by summer time. Therefore, the standard time will be kept # unchanged the whole year long." So foregoing DST seems to be an exception # (albeit one that may be repeated in the future). # From Alexander Krivenyshev (2010-03-27): # According to some news reports Tunis confirmed not to use DST in 2010 # # (translation): # "The Tunisian government has decided to abandon DST, which was scheduled on # Sunday... # Tunisian authorities had suspended the DST for the first time last year also # coincided with the month of Ramadan..." # # (in Arabic) # http://www.moheet.com/show_news.aspx?nid=358861&pg=1 # http://www.almadenahnews.com/newss/news.php?c=118&id=38036 # http://www.worldtimezone.com/dst_news/dst_news_tunis02.html # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Tunisia 1939 only - Apr 15 23:00s 1:00 S Rule Tunisia 1939 only - Nov 18 23:00s 0 - Rule Tunisia 1940 only - Feb 25 23:00s 1:00 S Rule Tunisia 1941 only - Oct 6 0:00 0 - Rule Tunisia 1942 only - Mar 9 0:00 1:00 S Rule Tunisia 1942 only - Nov 2 3:00 0 - Rule Tunisia 1943 only - Mar 29 2:00 1:00 S Rule Tunisia 1943 only - Apr 17 2:00 0 - Rule Tunisia 1943 only - Apr 25 2:00 1:00 S Rule Tunisia 1943 only - Oct 4 2:00 0 - Rule Tunisia 1944 1945 - Apr Mon>=1 2:00 1:00 S Rule Tunisia 1944 only - Oct 8 0:00 0 - Rule Tunisia 1945 only - Sep 16 0:00 0 - Rule Tunisia 1977 only - Apr 30 0:00s 1:00 S Rule Tunisia 1977 only - Sep 24 0:00s 0 - Rule Tunisia 1978 only - May 1 0:00s 1:00 S Rule Tunisia 1978 only - Oct 1 0:00s 0 - Rule Tunisia 1988 only - Jun 1 0:00s 1:00 S Rule Tunisia 1988 1990 - Sep lastSun 0:00s 0 - Rule Tunisia 1989 only - Mar 26 0:00s 1:00 S Rule Tunisia 1990 only - May 1 0:00s 1:00 S Rule Tunisia 2005 only - May 1 0:00s 1:00 S Rule Tunisia 2005 only - Sep 30 1:00s 0 - Rule Tunisia 2006 2008 - Mar lastSun 2:00s 1:00 S Rule Tunisia 2006 2008 - Oct lastSun 2:00s 0 - # See Europe/Paris commentary for PMT-related transitions. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Tunis 0:40:44 - LMT 1881 May 12 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time 1:00 Tunisia CE%sT # Uganda # See Africa/Nairobi. # Zambia # Zimbabwe # See Africa/Maputo. ./tzdatabase/.gitignore0000644000175000017500000000031413374467674015272 0ustar anthonyanthony# Files intentionally not tracked by Git. # This file is in the public domain. *.a *.asc *.o *.patch *.tar.* *.txt *.tzs *.zi *~ ChangeLog date leapseconds tzselect version version.h yearistype zdump zic ./tzdatabase/antarctica0000644000175000017500000002642114272547645015340 0ustar anthonyanthony# tzdb data for Antarctica and environs # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. # From Paul Eggert (1999-11-15): # To keep things manageable, we list only locations occupied year-round; see # COMNAP - Stations and Bases # http://www.comnap.aq/comnap/comnap.nsf/P/Stations/ # and # Summary of the Peri-Antarctic Islands (1998-07-23) # http://www.spri.cam.ac.uk/bob/periant.htm # for information. # Unless otherwise specified, we have no time zone information. # FORMAT is '-00' and STDOFF is 0 for locations while uninhabited. # Argentina - year-round bases # Belgrano II, Confin Coast, -770227-0343737, since 1972-02-05 # Carlini, Potter Cove, King George Island, -6414-0602320, since 1982-01 # Esperanza, Hope Bay, -6323-05659, since 1952-12-17 # Marambio, -6414-05637, since 1969-10-29 # Orcadas, Laurie I, -6016-04444, since 1904-02-22 # San Martín, Barry I, -6808-06706, since 1951-03-21 # (except 1960-03 / 1976-03-21) # Australia - territories # Heard Island, McDonald Islands (uninhabited) # previously sealers and scientific personnel wintered # Margaret Turner reports # https://web.archive.org/web/20021204222245/http://www.dstc.qut.edu.au/DST/marg/daylight.html # (1999-09-30) that they're UT +05, with no DST; # presumably this is when they have visitors. # # year-round bases # Casey, Bailey Peninsula, -6617+11032, since 1969 # Davis, Vestfold Hills, -6835+07759, since 1957-01-13 # (except 1964-11 - 1969-02) # Mawson, Holme Bay, -6736+06253, since 1954-02-13 # From Steffen Thorsen (2009-03-11): # Three Australian stations in Antarctica have changed their time zone: # Casey moved from UTC+8 to UTC+11 # Davis moved from UTC+7 to UTC+5 # Mawson moved from UTC+6 to UTC+5 # The changes occurred on 2009-10-18 at 02:00 (local times). # # Government source: (Australian Antarctic Division) # http://www.aad.gov.au/default.asp?casid=37079 # # We have more background information here: # https://www.timeanddate.com/news/time/antarctica-new-times.html # From Steffen Thorsen (2010-03-10): # We got these changes from the Australian Antarctic Division: ... # # - Casey station reverted to its normal time of UTC+8 on 5 March 2010. # The change to UTC+11 is being considered as a regular summer thing but # has not been decided yet. # # - Davis station will revert to its normal time of UTC+7 at 10 March 2010 # 20:00 UTC. # # - Mawson station stays on UTC+5. # # Background: # https://www.timeanddate.com/news/time/antartica-time-changes-2010.html # From Steffen Thorsen (2016-10-28): # Australian Antarctica Division informed us that Casey changed time # zone to UTC+11 in "the morning of 22nd October 2016". # From Steffen Thorsen (2020-10-02, as corrected): # Based on information we have received from the Australian Antarctic # Division, Casey station and Macquarie Island station will move to Tasmanian # daylight savings time on Sunday 4 October. This will take effect from 0001 # hrs on Sunday 4 October 2020 and will mean Casey and Macquarie Island will # be on the same time zone as Hobart. Some past dates too for this 3 hour # time change back and forth between UTC+8 and UTC+11 for Casey: # - 2018 Oct 7 4:00 - 2019 Mar 17 3:00 - 2019 Oct 4 3:00 - 2020 Mar 8 3:00 # and now - 2020 Oct 4 0:01 # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Antarctica/Casey 0 - -00 1969 8:00 - +08 2009 Oct 18 2:00 11:00 - +11 2010 Mar 5 2:00 8:00 - +08 2011 Oct 28 2:00 11:00 - +11 2012 Feb 21 17:00u 8:00 - +08 2016 Oct 22 11:00 - +11 2018 Mar 11 4:00 8:00 - +08 2018 Oct 7 4:00 11:00 - +11 2019 Mar 17 3:00 8:00 - +08 2019 Oct 4 3:00 11:00 - +11 2020 Mar 8 3:00 8:00 - +08 2020 Oct 4 0:01 11:00 - +11 Zone Antarctica/Davis 0 - -00 1957 Jan 13 7:00 - +07 1964 Nov 0 - -00 1969 Feb 7:00 - +07 2009 Oct 18 2:00 5:00 - +05 2010 Mar 10 20:00u 7:00 - +07 2011 Oct 28 2:00 5:00 - +05 2012 Feb 21 20:00u 7:00 - +07 Zone Antarctica/Mawson 0 - -00 1954 Feb 13 6:00 - +06 2009 Oct 18 2:00 5:00 - +05 # References: # Casey Weather (1998-02-26) # http://www.antdiv.gov.au/aad/exop/sfo/casey/casey_aws.html # Davis Station, Antarctica (1998-02-26) # http://www.antdiv.gov.au/aad/exop/sfo/davis/video.html # Mawson Station, Antarctica (1998-02-25) # http://www.antdiv.gov.au/aad/exop/sfo/mawson/video.html # Belgium - year-round base # Princess Elisabeth, Queen Maud Land, -713412+0231200, since 2007 # Brazil - year-round base # Ferraz, King George Island, -6205+05824, since 1983/4 # Bulgaria - year-round base # St. Kliment Ohridski, Livingston Island, -623829-0602153, since 1988 # Chile - year-round bases and towns # Escudero, South Shetland Is, -621157-0585735, since 1994 # Frei Montalva, King George Island, -6214-05848, since 1969-03-07 # O'Higgins, Antarctic Peninsula, -6319-05704, since 1948-02 # Prat, -6230-05941 # Villa Las Estrellas (a town), around the Frei base, since 1984-04-09 # These locations employ Region of Magallanes time; use # TZ='America/Punta_Arenas'. # China - year-round bases # Great Wall, King George Island, -6213-05858, since 1985-02-20 # Zhongshan, Larsemann Hills, Prydz Bay, -6922+07623, since 1989-02-26 # France - year-round bases (also see "France & Italy") # # From Antoine Leca (1997-01-20): # Time data entries are from Nicole Pailleau at the IFRTP # (French Institute for Polar Research and Technology). # She confirms that French Southern Territories and Terre Adélie bases # don't observe daylight saving time, even if Terre Adélie supplies came # from Tasmania. # # French Southern Territories with year-round inhabitants # # Alfred Faure, Possession Island, Crozet Islands, -462551+0515152, since 1964; # sealing & whaling stations operated variously 1802/1911+; # see Asia/Dubai. # # Martin-de-Viviès, Amsterdam Island, -374105+0773155, since 1950 # Port-aux-Français, Kerguelen Islands, -492110+0701303, since 1951; # whaling & sealing station operated 1908/1914, 1920/1929, and 1951/1956 # # St Paul Island - near Amsterdam, uninhabited # fishing stations operated variously 1819/1931 # # Kerguelen - see Indian/Maldives. # # year-round base in the main continent # Dumont d'Urville - see Pacific/Port_Moresby. # France & Italy - year-round base # Concordia, -750600+1232000, since 2005 # Germany - year-round base # Neumayer III, -704080-0081602, since 2009 # India - year-round bases # Bharati, -692428+0761114, since 2012 # Maitri, -704558+0114356, since 1989 # Italy - year-round base (also see "France & Italy") # Zuchelli, Terra Nova Bay, -744140+1640647, since 1986 # Japan - year-round bases # See Asia/Riyadh. # S Korea - year-round base # Jang Bogo, Terra Nova Bay, -743700+1641205 since 2014 # King Sejong, King George Island, -6213-05847, since 1988 # New Zealand - claims # Balleny Islands (never inhabited) # Scott Island (never inhabited) # # year-round base # Scott Base, Ross Island, since 1957-01. # See Pacific/Auckland. # Norway - territories # Bouvet (never inhabited) # # claims # Peter I Island (never inhabited) # # year-round base # Troll, Queen Maud Land, -720041+0023206, since 2005-02-12 # # From Paul-Inge Flakstad (2014-03-10): # I recently had a long dialog about this with the developer of timegenie.com. # In the absence of specific dates, he decided to choose some likely ones: # GMT +1 - From March 1 to the last Sunday in March # GMT +2 - From the last Sunday in March until the last Sunday in October # GMT +1 - From the last Sunday in October until November 7 # GMT +0 - From November 7 until March 1 # The dates for switching to and from UTC+0 will probably not be absolutely # correct, but they should be quite close to the actual dates. # # From Paul Eggert (2014-03-21): # The CET-switching Troll rules require zic from tz 2014b or later, so as # suggested by Bengt-Inge Larsson comment them out for now, and approximate # with only UTC and CEST. Uncomment them when 2014b is more prevalent. # # Rule NAME FROM TO - IN ON AT SAVE LETTER/S #Rule Troll 2005 max - Mar 1 1:00u 1:00 +01 Rule Troll 2005 max - Mar lastSun 1:00u 2:00 +02 #Rule Troll 2005 max - Oct lastSun 1:00u 1:00 +01 #Rule Troll 2004 max - Nov 7 1:00u 0:00 +00 # Remove the following line when uncommenting the above '#Rule' lines. Rule Troll 2004 max - Oct lastSun 1:00u 0:00 +00 # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Antarctica/Troll 0 - -00 2005 Feb 12 0:00 Troll %s # Poland - year-round base # Arctowski, King George Island, -620945-0582745, since 1977 # Romania - year-bound base # Law-Racoviță, Larsemann Hills, -692319+0762251, since 1986 # Russia - year-round bases # Bellingshausen, King George Island, -621159-0585337, since 1968-02-22 # Mirny, Davis coast, -6633+09301, since 1956-02 # Molodezhnaya, Alasheyev Bay, -6740+04551, # year-round from 1962-02 to 1999-07-01 # Novolazarevskaya, Queen Maud Land, -7046+01150, # year-round from 1960/61 to 1992 # Vostok, since 1957-12-16, temporarily closed 1994-02/1994-11 # See Asia/Urumqi. # S Africa - year-round bases # Marion Island, -4653+03752 # SANAE IV, Vesleskarvet, Queen Maud Land, -714022-0025026, since 1997 # Ukraine - year-round base # Vernadsky (formerly Faraday), Galindez Island, -651445-0641526, since 1954 # United Kingdom # # British Antarctic Territories (BAT) claims # South Orkney Islands # scientific station from 1903 # whaling station at Signy I 1920/1926 # South Shetland Islands # # year-round bases # Bird Island, South Georgia, -5400-03803, since 1983 # Deception Island, -6259-06034, whaling station 1912/1931, # scientific station 1943/1967, # previously sealers and a scientific expedition wintered by accident, # and a garrison was deployed briefly # Halley, Coates Land, -7535-02604, since 1956-01-06 # Halley is on a moving ice shelf and is periodically relocated # so that it is never more than 10km from its nominal location. # Rothera, Adelaide Island, -6734-6808, since 1976-12-01 # # From Paul Eggert (2002-10-22) # says Rothera is -03 all year. # # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Antarctica/Rothera 0 - -00 1976 Dec 1 -3:00 - -03 # Uruguay - year round base # Artigas, King George Island, -621104-0585107 # USA - year-round bases # # Palmer, Anvers Island, since 1965 (moved 2 miles in 1968) # See 'southamerica' for Antarctica/Palmer, since it uses South American DST. # # McMurdo Station, Ross Island, since 1955-12 # Amundsen-Scott South Pole Station, continuously occupied since 1956-11-20 # # From Chris Carrier (1996-06-27): # Siple, the first commander of the South Pole station, # stated that he would have liked to have kept GMT at the station, # but that he found it more convenient to keep GMT+12 # as supplies for the station were coming from McMurdo Sound, # which was on GMT+12 because New Zealand was on GMT+12 all year # at that time (1957). (Source: Siple's book 90 Degrees South.) # # From Susan Smith # http://www.cybertours.com/whs/pole10.html # (1995-11-13 16:24:56 +1300, no longer available): # We use the same time as McMurdo does. # And they use the same time as Christchurch, NZ does.... # One last quirk about South Pole time. # All the electric clocks are usually wrong. # Something about the generators running at 60.1hertz or something # makes all of the clocks run fast. So every couple of days, # we have to go around and set them back 5 minutes or so. # Maybe if we let them run fast all of the time, we'd get to leave here sooner!! # # See 'australasia' for Antarctica/McMurdo. ./tzdatabase/iso3166.tab0000644000175000017500000001055714046102265015071 0ustar anthonyanthony# ISO 3166 alpha-2 country codes # # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. # # From Paul Eggert (2015-05-02): # This file contains a table of two-letter country codes. Columns are # separated by a single tab. Lines beginning with '#' are comments. # All text uses UTF-8 encoding. The columns of the table are as follows: # # 1. ISO 3166-1 alpha-2 country code, current as of # ISO 3166-1 N976 (2018-11-06). See: Updates on ISO 3166-1 # https://isotc.iso.org/livelink/livelink/Open/16944257 # 2. The usual English name for the coded region, # chosen so that alphabetic sorting of subsets produces helpful lists. # This is not the same as the English name in the ISO 3166 tables. # # The table is sorted by country code. # # This table is intended as an aid for users, to help them select time # zone data appropriate for their practical needs. It is not intended # to take or endorse any position on legal or territorial claims. # #country- #code name of country, territory, area, or subdivision AD Andorra AE United Arab Emirates AF Afghanistan AG Antigua & Barbuda AI Anguilla AL Albania AM Armenia AO Angola AQ Antarctica AR Argentina AS Samoa (American) AT Austria AU Australia AW Aruba AX Åland Islands AZ Azerbaijan BA Bosnia & Herzegovina BB Barbados BD Bangladesh BE Belgium BF Burkina Faso BG Bulgaria BH Bahrain BI Burundi BJ Benin BL St Barthelemy BM Bermuda BN Brunei BO Bolivia BQ Caribbean NL BR Brazil BS Bahamas BT Bhutan BV Bouvet Island BW Botswana BY Belarus BZ Belize CA Canada CC Cocos (Keeling) Islands CD Congo (Dem. Rep.) CF Central African Rep. CG Congo (Rep.) CH Switzerland CI Côte d'Ivoire CK Cook Islands CL Chile CM Cameroon CN China CO Colombia CR Costa Rica CU Cuba CV Cape Verde CW Curaçao CX Christmas Island CY Cyprus CZ Czech Republic DE Germany DJ Djibouti DK Denmark DM Dominica DO Dominican Republic DZ Algeria EC Ecuador EE Estonia EG Egypt EH Western Sahara ER Eritrea ES Spain ET Ethiopia FI Finland FJ Fiji FK Falkland Islands FM Micronesia FO Faroe Islands FR France GA Gabon GB Britain (UK) GD Grenada GE Georgia GF French Guiana GG Guernsey GH Ghana GI Gibraltar GL Greenland GM Gambia GN Guinea GP Guadeloupe GQ Equatorial Guinea GR Greece GS South Georgia & the South Sandwich Islands GT Guatemala GU Guam GW Guinea-Bissau GY Guyana HK Hong Kong HM Heard Island & McDonald Islands HN Honduras HR Croatia HT Haiti HU Hungary ID Indonesia IE Ireland IL Israel IM Isle of Man IN India IO British Indian Ocean Territory IQ Iraq IR Iran IS Iceland IT Italy JE Jersey JM Jamaica JO Jordan JP Japan KE Kenya KG Kyrgyzstan KH Cambodia KI Kiribati KM Comoros KN St Kitts & Nevis KP Korea (North) KR Korea (South) KW Kuwait KY Cayman Islands KZ Kazakhstan LA Laos LB Lebanon LC St Lucia LI Liechtenstein LK Sri Lanka LR Liberia LS Lesotho LT Lithuania LU Luxembourg LV Latvia LY Libya MA Morocco MC Monaco MD Moldova ME Montenegro MF St Martin (French) MG Madagascar MH Marshall Islands MK North Macedonia ML Mali MM Myanmar (Burma) MN Mongolia MO Macau MP Northern Mariana Islands MQ Martinique MR Mauritania MS Montserrat MT Malta MU Mauritius MV Maldives MW Malawi MX Mexico MY Malaysia MZ Mozambique NA Namibia NC New Caledonia NE Niger NF Norfolk Island NG Nigeria NI Nicaragua NL Netherlands NO Norway NP Nepal NR Nauru NU Niue NZ New Zealand OM Oman PA Panama PE Peru PF French Polynesia PG Papua New Guinea PH Philippines PK Pakistan PL Poland PM St Pierre & Miquelon PN Pitcairn PR Puerto Rico PS Palestine PT Portugal PW Palau PY Paraguay QA Qatar RE Réunion RO Romania RS Serbia RU Russia RW Rwanda SA Saudi Arabia SB Solomon Islands SC Seychelles SD Sudan SE Sweden SG Singapore SH St Helena SI Slovenia SJ Svalbard & Jan Mayen SK Slovakia SL Sierra Leone SM San Marino SN Senegal SO Somalia SR Suriname SS South Sudan ST Sao Tome & Principe SV El Salvador SX St Maarten (Dutch) SY Syria SZ Eswatini (Swaziland) TC Turks & Caicos Is TD Chad TF French Southern & Antarctic Lands TG Togo TH Thailand TJ Tajikistan TK Tokelau TL East Timor TM Turkmenistan TN Tunisia TO Tonga TR Turkey TT Trinidad & Tobago TV Tuvalu TW Taiwan TZ Tanzania UA Ukraine UG Uganda UM US minor outlying islands US United States UY Uruguay UZ Uzbekistan VA Vatican City VC St Vincent VE Venezuela VG Virgin Islands (UK) VI Virgin Islands (US) VN Vietnam VU Vanuatu WF Wallis & Futuna WS Samoa (western) YE Yemen YT Mayotte ZA South Africa ZM Zambia ZW Zimbabwe ./vector.pas0000644000175000017500000024610114576573021013162 0ustar anthonyanthonyunit vector; //Notes: // Will likely not detect heading at North or South pole because the magnetic field lines are parallel to G. // Invert Ya,m and Za,m per Fig 8 AN3192.pdf {$mode objfpc} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Grids, ExtCtrls, Spin, ComCtrls, math , OpenGLContext, GL, GLU //3D graphics , dynmatrix, dynmatrixutils //Matrix math , LazFileUtils //required to extractfilenameonly for converting to csv files , strutils //Required for checking lines in conversion file. , lazopenglcontext ; type { TVectorForm } TVectorForm = class(TForm) AccelOpenGLControl: TOpenGLControl; AltAzOpenGLControl: TOpenGLControl; AStringGrid: TStringGrid; BubbleOpenGLControl: TOpenGLControl; ExportMagneto: TCheckBox; HSMagneto: TCheckBox; HSShowRaw: TCheckBox; HSSelectView: TButton; HSView: TButton; GroupBox1: TGroupBox; HSCreateCSV: TButton; HSOffsetFilename: TLabeledEdit; HSRawFilename: TLabeledEdit; InitialErrorLabel: TLabel; HSSavedFileEntry: TLabeledEdit; Deadbandlabel: TLabel; MagCalInstructionsLabel: TLabel; Memo2: TMemo; MinMaxCheckBox: TCheckBox; HSRecords: TLabeledEdit; OpenDialog1: TOpenDialog; Wwarning: TLabel; MagnetoCheckBox: TCheckBox; ReverseCheckBox: TCheckBox; HardSoftRecordToggle: TToggleBox; M1OpenGLControl: TOpenGLControl; M2OpenGLControl: TOpenGLControl; Memo1: TMemo; MRollcompOpenGLControl: TOpenGLControl; MxPlusGL: TOpenGLControl; MyPlusGL: TOpenGLControl; MzPlusGL: TOpenGLControl; MxMinusGL: TOpenGLControl; MyMinusGL: TOpenGLControl; MzMinusGL: TOpenGLControl; MPitchcompOpenGLControl: TOpenGLControl; MRollPitchcompOpenGLControl: TOpenGLControl; HardSoftOpenGLControl: TOpenGLControl; ResetMagCalButton: TButton; GetMagCalButton: TButton; Label1: TLabel; Label2: TLabel; Label3: TLabel; MagXCalOpenGLControl: TOpenGLControl; MagYCalOpenGLControl: TOpenGLControl; MagZCalOpenGLControl: TOpenGLControl; SetMagCalButton: TButton; HardSoftTabSheet: TTabSheet; TiltCompPage: TTabSheet; HSSampleTimer: TTimer; XmatrixLabel: TLabel; WmatrixLabel: TLabel; YmatrixLabel: TLabel; Label4: TLabel; Label5: TLabel; LevelLabel: TLabel; AltAzLabel: TLabel; VectorPageControl: TPageControl; SetP1Button: TButton; SetP2Button: TButton; SetP3Button: TButton; SetP4Button: TButton; SetP5Button: TButton; SetP6Button: TButton; SmoothedCheckBox: TCheckBox; IdleTimer1: TIdleTimer; OpenGLVersion: TLabeledEdit; DeadbandSpinEdit: TSpinEdit; SampleTempButton: TButton; SampleMagButton: TButton; SampleAccelButton: TButton; TabSheet1: TTabSheet; TabSheet2: TTabSheet; TabSheet3: TTabSheet; Valtitude: TLabeledEdit; Vazimuth: TLabeledEdit; Vmgrid: TStringGrid; Vmonitor: TToggleBox; VSampleGroupBox: TGroupBox; WStringGrid: TStringGrid; XStringGrid: TStringGrid; YStringGrid: TStringGrid; procedure AccelOpenGLControlPaint(Sender: TObject); procedure AltAzOpenGLControlPaint(Sender: TObject); procedure BubbleOpenGLControlPaint(Sender: TObject); procedure CreateMagnetoClick(Sender: TObject); procedure GetMagCalButtonClick(Sender: TObject); procedure HardSoftOpenGLControlMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure HardSoftOpenGLControlMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure HardSoftOpenGLControlPaint(Sender: TObject); procedure HardSoftRecordToggleChange(Sender: TObject); procedure HSCreateCSVClick(Sender: TObject); procedure HSSampleTimerTimer(Sender: TObject); procedure HSSelectViewClick(Sender: TObject); procedure HSShowRawClick(Sender: TObject); procedure HSViewClick(Sender: TObject); procedure IdleTimer1Timer(Sender: TObject); procedure MagXCalOpenGLControlPaint(Sender: TObject); procedure MagYCalOpenGLControlPaint(Sender: TObject); procedure MagZCalOpenGLControlPaint(Sender: TObject); procedure MinMaxCheckBoxChange(Sender: TObject); procedure MxMinusGLPaint(Sender: TObject); procedure MxPlusGLPaint(Sender: TObject); procedure MyMinusGLPaint(Sender: TObject); procedure MyPlusGLPaint(Sender: TObject); procedure MzMinusGLPaint(Sender: TObject); procedure MzPlusGLPaint(Sender: TObject); procedure ResetMagCalButtonClick(Sender: TObject); procedure SampleTempButtonClick(Sender: TObject); procedure SampleMagButtonClick(Sender: TObject); procedure SampleAccelButtonClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure SetMagCalButtonClick(Sender: TObject); procedure StartXRotationButtonClick(Sender: TObject); procedure StartYRotationButtonClick(Sender: TObject); procedure VectorPageControlChange(Sender: TObject); procedure VmonitorChange(Sender: TObject); procedure SetP5ButtonClick(Sender: TObject); procedure SetP6ButtonClick(Sender: TObject); procedure SetP3ButtonClick(Sender: TObject); procedure SetP4ButtonClick(Sender: TObject); procedure SetP1ButtonClick(Sender: TObject); procedure SetP2ButtonClick(Sender: TObject); private { private declarations } procedure AccelPlot(); procedure MagPlot(); procedure AltAzPlot(); procedure DisplayAccelWXMatrix(); procedure SetAccelCal(ACCpos:Integer); procedure DisplayMagCal(); procedure MagCalPaint(MagWindow:TOpenGLControl; X,Y,Z,Bar,Max,Min:Double); procedure OpenGlwindowInit(Window: TOpenGLControl); procedure CalcStandard(); procedure DisplayAzimuthComputations(); procedure DisplayHSArray(X,Y:Integer); public { public declarations } procedure StopMonitoring(); end; //// Used to pass information to the conversion of raw values to final values //type TAccMag = record // AX,AY, AZ, MX, MY, MZ : Double; // end; // //// Used to pass the final converted values for display and logging //type TAltAz = record // Alt, Az : Double; // end; //Accelerometer procedures procedure GetAccel(); procedure GetAccelCal(); procedure ParseAccelCal(result:string); procedure CalcAccelCal(); procedure NormalizeAccel(); function ComputeAltitude(X,Y,Z:float):float; //Magnetometer procedures procedure GetMag(Hide:Boolean=False); procedure GetMagCal(); procedure NormalizeMag(); procedure ParseMagCal(result:string); procedure ComputeAzimuth(); //Graphical procedures procedure ArrowHeadProc2(); procedure DrawSphere(NumMajor, NumMinor: Integer; Radius: Double); procedure textlabel(text:String); procedure cube(X,Y,Z: Double); //procedure dualcube(X1,Y1,Z1,X2,Y2,Z2: Double); procedure AddMagPoint(); //Used to store a record of 3D integers type TInt3D = record i1: Integer; i2: Integer; i3: Integer; end; type TFloat3D = record i1: Double; i2: Double; i3: Double; end; const smoothbuffersize = 5;//5 was OK MagScaleMax = 3200; //Raw magnetometer maximum MagZdepth = -3; //Z axis OpenGL display position var MagArray: Array of TInt3d; //raw magnetometer readings array used for HS display M1Array: Array of TFloat3d; //Normalized magnetometer readings array used for HS display VectorForm: TVectorForm; AccCalXU, AccCalYU,AccCalZU,AccCalXD,AccCalYD,AccCalZD: Integer; //Accelerometer calibration Up/Down Axb,Ayb,Azb: Array[0..smoothbuffersize-1] of Double; //Smoothing buffer for accelerometer readings Ax,Ay,Az: Double; //Accelerometer raw (or smoothed) readings from meter Ax1, Ay1, Az1: Double; //Accelerometer normalized deadbanded readings Ax1last, Ay1last, Az1last: Double; //Accelerometer normalized deadbanded last readings GotAccCal, GotMagCal: Boolean;//Indicates that calibration data has been retrieved MinMaxMagCheck: Boolean; //Checking if Magnetometer min max is being determined Mxmin: Double = 32767; Mymin: Double = 32767; Mzmin: Double = 32767; Mxmax: Double = -32767; Mymax: Double = -32767; Mzmax: Double = -32767; Mxb,Myb,Mzb: Array[0..smoothbuffersize-1] of Double; //Smoothing buffer for magnetometer readings Mx,My,Mz: Double; //Magnetic readings from meter MxOff,MyOff,MzOff: Double; //Magnetic reading raw offset Mx1, My1, Mz1: Double; //Compass readings normalized Mxlast, Mylast, Mzlast: Double; //Last compass readings for hard/soft iron plotting Mx2, My2, Mz2: Double; //Compass readings corrected Cr1, Cx1, Cy1, Cz1: Double; //Corrected once for roll (testing) Cr2, Cx2, Cy2, Cz2: Double; //Corrected second time for pitch (testing) Mr1, MRx1, MRy1, MRz1: Double; //Corrected once for roll (testing) Mr2, MRx2, MRy2, MRz2: Double; //Corrected second time for pitch (testing) CXRot, CZRot: Double; //Correction roll and pitch MXRot, MZRot: Double; //Correction roll and pitch TXRot, TZRot: Double; //Target roll and pitch Pitch, Roll: Double; //Calculated accelerometer values Pitch2, Roll2: Double; //Calculated accelerometer values Pitch3, Roll3: Double; //Calculated accelerometer values Y, w, X: TDMatrix; Ynorm: TDMatrix; //Normalized matrix of accelerometer values (Matrix Y) Wraw: TDMatrix; //Raw matrix of accelerometer values (Matrix w) //for alternate calibration based on magneto 1.2 MAinv:TDMatrix; Mh:TDMatrix; Mb:TDMatrix; MhCal:TDMatrix; M: TDMatrix; //Multiplier matrix of accelerometer calibration values B: TDMatrix; //Offset matrix of accelerometer calibration values Mnorm: TDMatrix; //Normalized matrix of magnetometer values Heading: Double;//Magnetic heading srcblend, dstblend: GLenum; YellowLoop,ArrowHead: GLuint;//display list item HardSoft: Boolean; //inidicator that hard soft iron testing is being logged HSSample: Boolean; //Request to make a sample (at a slower rate than raw sampling) HSRecordCount: Integer; //Number of records written during Hard/Soft test. MonitorHidesSendGet : Boolean; CloseDLRecFile : Boolean; //Request to close the DL record file made by hard/soft recording XMouseOffset, YMouseOffset: Integer; //Used for Mouse movement like rotating GL objects XRotate, YRotate:Integer; //Used for Mouse movement like rotating GL objects implementation uses Unit1,header_utils, logcont, // for log one reading uglyfont; //OpenGL text //const //ACMmax = 32767; //Accelerator Compass Module maximum value { TVectorForm } procedure TVectorForm.VmonitorChange(Sender: TObject); begin IdleTimer1.Enabled:=Vmonitor.Checked; VSampleGroupBox.Enabled:=not Vmonitor.Checked; MonitorHidesSendGet:=Vmonitor.Checked; if Vmonitor.Checked then begin//Initially gather calibration data GetAccelCal(); DisplayAccelWXMatrix(); StatusMessage('Vector monitoring mode, status messages suppressed.'); end; end; procedure TVectorForm.SetP1ButtonClick(Sender: TObject); begin SetAccelCal(1); end; procedure TVectorForm.SetP2ButtonClick(Sender: TObject); begin SetAccelCal(2); end; procedure TVectorForm.SetP3ButtonClick(Sender: TObject); begin SetAccelCal(3); end; procedure TVectorForm.SetP4ButtonClick(Sender: TObject); begin SetAccelCal(4); end; procedure TVectorForm.SetP5ButtonClick(Sender: TObject); begin SetAccelCal(5); end; procedure TVectorForm.SetP6ButtonClick(Sender: TObject); begin SetAccelCal(6); end; //Initialize this page procedure TVectorForm.FormCreate(Sender: TObject); begin //No Hard/Soft iron compensation yet //VectorPageControl.Page[4].TabVisible:=False; SetLength(MagArray,1); //Array used for HS display SetLength(M1Array,1); //Array used for HS display OpenGlwindowInit(MRollcompOpenGLControl); textlabel('M_2'); cube(Mx2,My2,Mz2); MRollcompOpenGLControl.SwapBuffers; //Create matrices Y:=Mzeros(6,3); w:=Mzeros(6,4); X:=Mzeros(4,3); Ynorm:=Mzeros(3,1); Wraw:=Mzeros(3,1); M:=Mzeros(3,3); B:=Mzeros(3,1); Mnorm:=Mzeros(3,1); //Create matrices for alternate Magneto 1.2 calculation MAinv:=Mzeros(3,3); Mh:=Mzeros(3,1); Mb:=Mzeros(3,1); MhCal:=Mzeros(3,1); //Label Y matrix YStringGrid.Cells[0,0]:='Y'; YStringGrid.Cells[1,0]:='x'; YStringGrid.Cells[2,0]:='y'; YStringGrid.Cells[3,0]:='z'; YStringGrid.Cells[0,1]:='P1'; YStringGrid.Cells[0,2]:='P2'; YStringGrid.Cells[0,3]:='P3'; YStringGrid.Cells[0,4]:='P4'; YStringGrid.Cells[0,5]:='P5'; YStringGrid.Cells[0,6]:='P6'; YStringGrid.Height:=YStringGrid.GridHeight; YStringGrid.Width:=YStringGrid.GridWidth; //Fill Y Matrix Y:=StringToDMatrix('0.0 0.0 1.0; 0.0 0.0 -1.0; 0.0 1.0 0.0; 0.0 -1.0 0.0; 1.0 0.0 0.0; -1.0 0.0 0.0'); DMatrixToGrid(YStringGrid, Y); //Determined by Magneto 1.2 from initial prototype Mb:=StringToDMatrix('76.553492; -233.215243; 215.155570'); //MAinv:=StringToDMatrix('1.040172 -0.014276 0.004515;-0.014276 1.029999 0.021719;0.004515 0.021719 1.071945'); //before 20160604 //MAinv:=StringToDMatrix('0.940916 -0.041717 0.008803;-0.041717 0.957441 -0.013520;0.008803 -0.013520 0.902146'); //20160604 stight out //MAinv:=StringToDMatrix('0.940916 -0.041717 0.008803;-0.041717 0.957441 -0.013520;0.008803 -0.013520 0.902146');//tanslated MAinv:=StringToDMatrix(' 0.99294 0.043052 -0.0091776 0.043052 0.9761 0.014188 -0.0091776 0.014188 1.0341');//ellipsoid_fit2magnetic_data //Label W Matrix WStringGrid.Cells[0,0]:='W'; WStringGrid.Cells[1,0]:='x'; WStringGrid.Cells[2,0]:='y'; WStringGrid.Cells[3,0]:='z'; WStringGrid.Cells[0,1]:='P1'; WStringGrid.Cells[0,2]:='P2'; WStringGrid.Cells[0,3]:='P3'; WStringGrid.Cells[0,4]:='P4'; WStringGrid.Cells[0,5]:='P5'; WStringGrid.Cells[0,6]:='P6'; WStringGrid.Height:=WStringGrid.GridHeight; WStringGrid.Width:=WStringGrid.GridWidth; //label Accelerometer readings AStringGrid.Cells[0,0]:='Accel'; AStringGrid.Cells[1,0]:='X'; AStringGrid.Cells[2,0]:='Y'; AStringGrid.Cells[3,0]:='Z'; AStringGrid.Cells[0,1]:='raw'; AStringGrid.Cells[0,2]:='norm'; AStringGrid.Height:=AStringGrid.GridHeight; AStringGrid.Width:=AStringGrid.GridWidth; //Label X Matrix XStringGrid.Cells[0,1]:='A_1'; XStringGrid.Cells[0,2]:='A_2'; XStringGrid.Cells[0,3]:='A_3'; XStringGrid.Cells[0,4]:='A_0'; XStringGrid.Cells[1,0]:='A1_'; XStringGrid.Cells[2,0]:='A2_'; XStringGrid.Cells[3,0]:='A3_'; XStringGrid.Height:=XStringGrid.GridHeight; XStringGrid.Width:=XStringGrid.GridWidth; //Label magnetic grid Vmgrid.Cells[0,0]:='Magnet'; Vmgrid.Cells[0,1]:='Stored Max'; Vmgrid.Cells[0,2]:='Max'; Vmgrid.Cells[0,3]:='M_'; Vmgrid.Cells[0,4]:='Min'; Vmgrid.Cells[0,5]:='Stored Min'; Vmgrid.Cells[0,6]:='Offset'; Vmgrid.Cells[0,7]:='M_1(norm)'; Vmgrid.Cells[0,8]:='M_2(corr)'; Vmgrid.Cells[1,0]:='X axis'; Vmgrid.Cells[2,0]:='Y axis'; Vmgrid.Cells[3,0]:='Z axis'; Vmgrid.Height:=Vmgrid.GridHeight; Vmgrid.Width:=Vmgrid.GridWidth; //Set to overview page initially VectorPageControl.ActivePageIndex:=0; VectorPageControlChange(nil); end; procedure TVectorForm.FormShow(Sender: TObject); begin { TODO : make sure that these do not get activated when unminimized } GetAccelCal(); GetMagCal(); DisplayMagCal(); //AccelPlot(); //AltAzPlot(); OpenGLVersion.Text:=glGetString(GL_VERSION); end; procedure TVectorForm.SampleTempButtonClick(Sender: TObject); begin SendGet('v0x'); end; procedure TVectorForm.GetMagCalButtonClick(Sender: TObject); begin GetMagCal(); DisplayMagCal(); end; //Start rotating procedure TVectorForm.HardSoftOpenGLControlMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin XMouseOffset:=X; YMouseOffset:=Y; end; //Rotate procedure TVectorForm.HardSoftOpenGLControlMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if (ssLeft in Shift) then begin XRotate:= XRotate + (Y-YMouseOffset); YRotate:= YRotate + (X-XMouseOffset); DisplayHSArray(XRotate,YRotate); XMouseOffset:=X; YMouseOffset:=Y; end; end; procedure TVectorForm.HardSoftOpenGLControlPaint(Sender: TObject); begin //OpenGlwindowInit(HardSoftOpenGLControl); HardSoftOpenGLControl.SwapBuffers; end; // Hard/Soft Iron testing which includes logging // - the actual logging is done in the timer call. procedure TVectorForm.HardSoftRecordToggleChange(Sender: TObject); begin //Prepare for logging hard/soft iron data HardSoft:=HardSoftRecordToggle.Checked; //Initiate logging of data Vmonitor.Checked:=HardSoftRecordToggle.Checked; If HardSoftRecordToggle.Checked then begin WriteDLHeader('DL-V-HSLog', 'Hard/Soft calibration logging'); HSSavedFileEntry.Text:=LogFileName; HSRecordCount:=0;//reset record count OpenGlwindowInit(HardSoftOpenGLControl); textlabel('Hard/Soft Iron test'); HardSoftOpenGLControl.SwapBuffers; //dualcube(Ax1,Ay1,Az1,Mx1,My1,Mz1); //HardSoftOpenGLControl.SwapBuffers; //X +/- side display OpenGlwindowInit(MxPlusGL); textlabel('X +'); MxPlusGL.SwapBuffers; OpenGlwindowInit(MxMinusGL); textlabel('X -'); MxMinusGL.SwapBuffers; //Y +/- side display OpenGlwindowInit(MyPlusGL); textlabel('Y +'); MyPlusGL.SwapBuffers; OpenGlwindowInit(MyMinusGL); textlabel('Y -'); MyMinusGL.SwapBuffers; //Z +/- side display OpenGlwindowInit(MzPlusGL); textlabel('Z +'); MzPlusGL.SwapBuffers; OpenGlwindowInit(MzMinusGL); textlabel('Z -'); MzMinusGL.SwapBuffers; VmonitorChange(Nil); HSSampleTimer.Enabled:=True; end else begin HSSampleTimer.Enabled:=False; CloseDLRecFile:=True; HSView.Enabled:=True; end; end; //Create CSV file from saved random rotations procedure TVectorForm.HSCreateCSVClick(Sender: TObject); var RawCSVFilename, OffsetCSVFilename, FilenamePath: String; InFile,OutFile1,OutFile2: TextFile; Str: String; LogFileNameText, ExtensionText: String; pieces: TStringList; Mx,My,Mz: Float; begin //Prepare filenames LogFileNameText:=HSSavedFileEntry.Text; FilenamePath:=ExtractFilePath(LogFileNameText); if ExportMagneto.Checked then ExtensionText:='.txt' else ExtensionText:='.csv'; RawCSVFilename:=FilenamePath+'raw_'+ExtractFileNameOnly(LogFileNameText)+ExtensionText; OffsetCSVFilename:=FilenamePath+'off_'+ExtractFileNameOnly(LogFileNameText)+ExtensionText; HSRawFilename.Text:=RawCSVFilename; HSOffsetFilename.Text:=OffsetCSVFilename; //Convert from .dat to .csv files pieces := TStringList.Create; //Start reading file. AssignFile(InFile, LogFileNameText); AssignFile(OutFile1, RawCSVFilename); AssignFile(OutFile2, OffsetCSVFilename); {$I+} try Reset(InFile); //Open files for writing Rewrite(OutFile1); Rewrite(OutFile2); //output file header if not ExportMagneto.Checked then begin //magneto file has no header writeln(OutFile1,'X,Y,Z'); writeln(OutFile2,'X,Y,Z'); end; repeat // Read one line at a time from the file. Readln(InFile, Str); //Ignore comment lines which have # as first character. if not AnsiStartsStr('#',Str) then begin //Separate the fields of the record. pieces.Delimiter := ';'; pieces.DelimitedText := Str; //Make sure there are enough fields if (pieces.Count<>6) then begin MessageDlg('Error', 'Incorrect number of fields in record.', mtError, [mbOK],0); break; end else begin //parse the fields, and convert as necessary. Mx:=StrToFloat(pieces.Strings[0]); My:=StrToFloat(pieces.Strings[1]); Mz:=StrToFloat(pieces.Strings[2]); Mx1:=StrToFloat(pieces.Strings[3]); My1:=StrToFloat(pieces.Strings[4]); Mz1:=StrToFloat(pieces.Strings[5]); if ExportMagneto.Checked then begin //magneto file uses space delimeter WriteLn(OutFile1,format('%4.1f %4.1f %4.1f',[Mx,My,Mz])); //Raw readings WriteLn(OutFile2,format('%4.1f %4.1f %4.1f',[Mx1,My1,Mz1])); //Normalized value end else begin //regular csv uses comma delimeter WriteLn(OutFile1,format('%4.1f,%4.1f,%4.1f',[Mx,My,Mz])); //Raw readings WriteLn(OutFile2,format('%4.1f,%4.1f,%4.1f',[Mx1,My1,Mz1])); //Normalized value end; end;//End of checking number of fields in record. end; until(EOF(InFile)); // EOF(End Of File) The the program will keep reading new lines until there is none. CloseFile(InFile); except on E: EInOutError do begin MessageDlg('Error', 'File handling error occurred. Details: '+E.ClassName+'/'+E.Message, mtError, [mbOK],0); end; end; Flush(OutFile1); CloseFile(OutFile1); Flush(OutFile2); CloseFile(OutFile2); end; procedure TVectorForm.HSSampleTimerTimer(Sender: TObject); begin //Request to make a sample (at a slower rate than raw sampling) HSSample:=True; end; procedure TVectorForm.HSSelectViewClick(Sender: TObject); begin if OpenDialog1.Execute then begin LogFileName:=OpenDialog1.Filename; HSSavedFileEntry.Text:=LogFileName; HSViewClick(Sender); end; end; procedure TVectorForm.HSShowRawClick(Sender: TObject); begin DisplayHSArray(0,0); end; //View saved file procedure TVectorForm.HSViewClick(Sender: TObject); var InFile: TextFile; Str: String; pieces: TStringList; begin Setlength(MagArray,1); // reset array size Setlength(M1Array,1); // reset array size //Convert from .dat to .csv files pieces := TStringList.Create; //Start reading file. AssignFile(InFile, HSSavedFileEntry.Text); {$I+} try Reset(InFile); repeat // Read one line at a time from the file. Readln(InFile, Str); //Ignore comment lines which have # as first character. if not AnsiStartsStr('#',Str) then begin //Separate the fields of the record. pieces.Delimiter := ';'; pieces.DelimitedText := Str; //Make sure there are enough fields if (pieces.Count<>6) then begin MessageDlg('Error', 'Incorrect number of fields in record.', mtError, [mbOK],0); break; end else begin //parse the M_ (raw) fields, and store in memory Setlength(MagArray,Length(MagArray)+1); // Add one to array tomake room for new entries MagArray[Length(MagArray)-1].i1:=StrToInt(pieces.Strings[0]); MagArray[Length(MagArray)-1].i2:=StrToInt(pieces.Strings[1]); MagArray[Length(MagArray)-1].i3:=StrToInt(pieces.Strings[2]); //parse the M_1 (normalized) fields, and store in memory Setlength(M1Array,Length(M1Array)+1); // Add one to array tomake room for new entries //TODO: put into matrix for soft-iron compensation if HSMagneto.Checked then begin try //Alternate calibrated calculation based on Magneto 1.2 values Mh.setv(0,0,StrToInt(pieces.Strings[0])); Mh.setv(1,0,StrToInt(pieces.Strings[1])); Mh.setv(2,0,StrToInt(pieces.Strings[2])); MhCal:=MAinv * (Mh - Mb); M1Array[Length(M1Array)-1].i1:=MhCal.getv(0,0)/3200; M1Array[Length(M1Array)-1].i2:=MhCal.getv(1,0)/3200; M1Array[Length(M1Array)-1].i3:=MhCal.getv(2,0)/3200; except StatusMessage('Magneto settings exception'); end; end else begin M1Array[Length(M1Array)-1].i1:=StrToFloat(pieces.Strings[3]); M1Array[Length(M1Array)-1].i2:=StrToFloat(pieces.Strings[4]); M1Array[Length(M1Array)-1].i3:=StrToFloat(pieces.Strings[5]); end; end;//End of checking number of fields in record. end; until(EOF(InFile)); // EOF(End Of File) The the program will keep reading new lines until there is none. CloseFile(InFile); except on E: EInOutError do begin MessageDlg('Error', 'File handling error occurred. Details: '+E.ClassName+'/'+E.Message, mtError, [mbOK],0); end; end; //Display data //Prepare graphics window OpenGlwindowInit(HardSoftOpenGLControl); HardSoftOpenGLControl.SwapBuffers; XRotate:= 0; YRotate:= 0; DisplayHSArray(0,0); end; //Display sampled reading procedure TVectorForm.DisplayHSArray(X,Y:Integer); var i: Integer; // loop counter Distort: double; //Length from center begin HardSoftOpenGLControl.MakeCurrent(); glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); //Clear old background //writeln('X0=',XMouseOffset,' X=',X,' YO=',YMouseOffset,' Y=', Y, ' XR=',XRotate, ' YR=',YRotate); //debugging only //draw a bounding box around glPushMatrix(); glTranslatef(0,0,-4); glRotatef(X, 1, 0, 0); //X rotation glRotatef(Y, 0, 1, 0); //Y rotation glBegin(GL_LINES); glLineWidth(0.1); glColor3f(1, 1, 1); //white lines glvertex3f(-1,-1,-1); glvertex3f(+1,-1,-1); glvertex3f(+1,-1,-1); glvertex3f(+1,+1,-1); glvertex3f(+1,+1,-1); glvertex3f(-1,+1,-1); glvertex3f(-1,+1,-1); glvertex3f(-1,-1,-1); glvertex3f(-1,-1,+1); glvertex3f(+1,-1,+1); glvertex3f(+1,-1,+1); glvertex3f(+1,+1,+1); glvertex3f(+1,+1,+1); glvertex3f(-1,+1,+1); glvertex3f(-1,+1,+1); glvertex3f(-1,-1,+1); glvertex3f(-1,-1,+1); glvertex3f(-1,-1,-1); glvertex3f(+1,-1,+1); glvertex3f(+1,-1,-1); glvertex3f(+1,+1,+1); glvertex3f(+1,+1,-1); glvertex3f(-1,+1,+1); glvertex3f(-1,+1,-1); glend(); glPopMatrix(); for i:=0 to length(MagArray)-1 do begin glPushMatrix(); glTranslatef(0,0,-4); glRotatef(X, 1, 0, 0); //X rotation glRotatef(Y, 0, 1, 0); //Y rotation glPointSize(5); glBegin(GL_POINTS); if HSShowRaw.Checked then begin //Show raw points glColor3f(0.5,0.5,1); glVertex3f(MagArray[i].i1/MagScaleMax,MagArray[i].i2/MagScaleMax,MagArray[i].i3/MagScaleMax); end; //Show normalized points //glColor3f(1,0.5,0.5);//fixed colour //colourize dependent on squashedness Distort:=sqrt(M1Array[i].i1**2 + M1Array[i].i2**2 + M1Array[i].i3**2); Distort:=(Distort-1)*10;//exaggerate length glColor3f(1, 0.5 * (1-Distort), 0.5 * (1+Distort));//fixed colour glVertex3f(M1Array[i].i1,M1Array[i].i2,M1Array[i].i3); glEnd(); glPopMatrix(); end; HardSoftOpenGLControl.SwapBuffers; end; procedure TVectorForm.AccelOpenGLControlPaint(Sender: TObject); begin OpenGlwindowInit(AccelOpenGLControl); //Draw accelerometer X,Y,Z magnitudes textlabel('Accelerometer'); cube(Ax1,Ay1,Az1); cube(Cx1,Cy1,Cz1);//debug cube(Cx2,Cy2,Cz2);//debug AccelOpenGLControl.SwapBuffers; end; procedure TVectorForm.AltAzOpenGLControlPaint(Sender: TObject); begin OpenGlwindowInit(AltAzOpenGLControl); AltAzOpenGLControl.SwapBuffers; end; procedure TVectorForm.BubbleOpenGLControlPaint(Sender: TObject); begin //This also paints initial control black instead of leaving it unpainted. OpenGlwindowInit(BubbleOpenGLControl); BubbleOpenGLControl.SwapBuffers; end; procedure TVectorForm.CreateMagnetoClick(Sender: TObject); begin end; procedure TVectorForm.IdleTimer1Timer(Sender: TObject); begin Application.ProcessMessages;//This might allow OS to catch up and not report ~"stopped processing". IdleTimer1.Enabled:=False; GetAccel(); //gather and compensate accelerometer readings GetMag(True); //gather and compensate magnetometer readings (uses compensated accelerometer values) CalcStandard(); ComputeAzimuth(); DisplayAzimuthComputations(); AccelPlot(); MagPlot(); AltAzPlot(); MagCalPaint(MagXCalOpenGLControl,Mx1,My1,Mz1,Mx,Mxmax,Mxmin); MagCalPaint(MagYCalOpenGLControl,My1,Mz1,Mx1,My,Mymax,Mymin); MagCalPaint(MagZCalOpenGLControl,Mz1,Mx1,My1,Mz,Mzmax,Mzmin); if Vmonitor.Checked then IdleTimer1.Enabled:=True; if HardSoft then begin //Start logging //Log reading if A_1 is different than last because it will only change once motionless. if ((Ax1<>Ax1last) and (Ay1<>Ay1last) and (Az1<>Az1last)) then begin Ax1last:=Ax1; Ay1last:=Ay1; Az1last:=Az1; if (HSSample) then begin //Log reading to file AssignFile(DLRecFile, LogFileName); Reset(DLRecFile); Append(DLRecFile); //Open file for appending writeln(DLRecFile,format('%.0f;%.0f;%.0f;%.4f;%.4f;%.4f',[Mx,My,Mz,Mx1,My1,Mz1])); Flush(DLRecFile); //Incrememt on-screen record counter inc(HSRecordCount); HSRecords.Text:=IntToStr(HSRecordCount); //Main Display of sampled reading HardSoftOpenGLControl.MakeCurrent(); //AddMagPoint(); glPushMatrix(); glTranslatef(0,0,-4); glBegin(GL_LINES); glLineWidth(0.1); glColor3f(1, 1, 1); //white line glvertex3f(Mxlast/MagScaleMax,Mylast/MagScaleMax,Mzlast/MagScaleMax); glvertex3f(Mx/MagScaleMax,My/MagScaleMax,Mz/MagScaleMax); glend(); glPointSize(10); glBegin(GL_POINTS); glColor3f(0.5,0.5,1); glVertex3f(Mx/MagScaleMax,My/MagScaleMax,Mz/MagScaleMax); glEnd(); glPopMatrix(); //Save last place to draw line Mxlast:=Mx; Mylast:=My; Mzlast:=Mz; HardSoftOpenGLControl.SwapBuffers; //X sides if Mx>=0 then begin MxPlusGL.MakeCurrent(); glPointSize(10); glBegin(GL_POINTS); glColor3f(0.5,0.5,1); glVertex3f(My/MagScaleMax,Mz/MagScaleMax,MagZdepth); glEnd(); MxPlusGL.SwapBuffers; end else begin MxMinusGL.MakeCurrent(); glPointSize(10); glBegin(GL_POINTS); glColor3f(0.5,0.5,1); glVertex3f(My/MagScaleMax,Mz/MagScaleMax,MagZdepth); glEnd(); MxMinusGL.SwapBuffers; end; //Y sides if My>=0 then begin MyPlusGL.MakeCurrent(); glPointSize(10); glBegin(GL_POINTS); glColor3f(0.5,0.5,1); glVertex3f(Mx/MagScaleMax,Mz/MagScaleMax,MagZdepth); glEnd(); MyPlusGL.SwapBuffers; end else begin MyMinusGL.MakeCurrent(); glPointSize(10); glBegin(GL_POINTS); glColor3f(0.5,0.5,1); glVertex3f(Mx/MagScaleMax,Mz/MagScaleMax,MagZdepth); glEnd(); MyMinusGL.SwapBuffers; end; //Z sides if Mz>=0 then begin MzPlusGL.MakeCurrent(); glPointSize(10); glBegin(GL_POINTS); glColor3f(0.5,0.5,1); glVertex3f(Mx/MagScaleMax,My/MagScaleMax,MagZdepth); glEnd(); MzPlusGL.SwapBuffers; end else begin MzMinusGL.MakeCurrent(); glPointSize(10); glBegin(GL_POINTS); glColor3f(0.5,0.5,1); glVertex3f(Mx/MagScaleMax,My/MagScaleMax,MagZdepth); glEnd(); MzMinusGL.SwapBuffers; end; HSSample:=False; end; end; end; if CloseDLRecFile then begin CloseDLRecFile:= False; CloseFile(DLRecFile); end; end; procedure TVectorForm.MagCalPaint(MagWindow:TOpenGLControl; X,Y,Z,Bar,Max,Min:Double); var i : Double; begin OpenGlwindowInit(MagWindow); //Bubble level //Direction indicator glPushMatrix(); glTranslatef(0,0,-4); glRotatef(radtodeg(arctan2(Y,X)),1,0,0); glRotatef(radtodeg(arctan2(Z,sqrt(X**2 + Y**2 ))),0,1,0); //glCallList(ArrowHead); //Calllist removed in OpenGL 4 ArrowHeadProc2(); glPopMatrix(); //Draw a loop for arrowhead/tail to fit into : //glCallList(YellowLoop); //Calllist removed in OpenGL 4 glPushMatrix(); glTranslatef(0,0,-4); glColor4f(1,1,1,1); //White, was transparent (1,1,1,0.5). glLineWidth(5);//was 1.5, but hard to see from a distance. glBegin(GL_LINE_LOOP); i:=0; while (i<2*pi) do begin glVertex3f( sin(i)/1.9, cos(i)/1.9, 1); i:= i+0.1; end; glEnd(); glPopMatrix(); //Value bar graph glPushMatrix(); glTranslatef(0,0,-4); glColor3f(1,1,0); glBegin(GL_QUADS); glVertex3f(1.4, Bar/3000, 0); glVertex3f(1.5, Bar/3000, 0); glVertex3f(1.5,0, 0.0); glVertex3f(1.4,0, 0.0); glEnd(); //New Min/Max lines glBegin(GL_LINES); glVertex3f(1.4, Max/3000, 0); glVertex3f(1.55, Max/3000, 0); glVertex3f(1.4, Min/3000, 0); glVertex3f(1.55, Min/3000, 0); glEnd(); glPopMatrix(); MagWindow.SwapBuffers; end; procedure TVectorForm.MagXCalOpenGLControlPaint(Sender: TObject); begin OpenGlwindowInit(MagXCalOpenGLControl); MagXCalOpenGLControl.SwapBuffers; end; procedure TVectorForm.MagYCalOpenGLControlPaint(Sender: TObject); begin OpenGlwindowInit(MagYCalOpenGLControl); MagYCalOpenGLControl.SwapBuffers; end; procedure TVectorForm.MagZCalOpenGLControlPaint(Sender: TObject); begin OpenGlwindowInit(MagZCalOpenGLControl); MagZCalOpenGLControl.SwapBuffers; end; procedure TVectorForm.MinMaxCheckBoxChange(Sender: TObject); begin MinMaxMagCheck:=MinMaxCheckBox.Checked; end; procedure TVectorForm.MxMinusGLPaint(Sender: TObject); begin OpenGlwindowInit(MxMinusGL); MxMinusGL.SwapBuffers; end; procedure TVectorForm.MxPlusGLPaint(Sender: TObject); begin OpenGlwindowInit(MxPlusGL); MxPlusGL.SwapBuffers; end; procedure TVectorForm.MyMinusGLPaint(Sender: TObject); begin OpenGlwindowInit(MyMinusGL); MyMinusGL.SwapBuffers; end; procedure TVectorForm.MyPlusGLPaint(Sender: TObject); begin OpenGlwindowInit(MyPlusGL); MyPlusGL.SwapBuffers; end; procedure TVectorForm.MzMinusGLPaint(Sender: TObject); begin OpenGlwindowInit(MzMinusGL); MzMinusGL.SwapBuffers; end; procedure TVectorForm.MzPlusGLPaint(Sender: TObject); begin OpenGlwindowInit(MzPlusGL); MzPlusGL.SwapBuffers; end; //Reset magnetometer range readings //Use reasonable values so that autoranging starts off looking decent. //Could use +/-32767, but that is extreme and the min/max cal display takes too many hand rotations to adjust. procedure TVectorForm.ResetMagCalButtonClick(Sender: TObject); const MminReset=-2000; MmaxReset= 2000; begin Mxmin:= MminReset; Mymin:= MminReset; Mzmin:= MminReset; Mxmax:= MmaxReset; Mymax:= MmaxReset; Mzmax:= MmaxReset; end; procedure TVectorForm.SampleMagButtonClick(Sender: TObject); begin GetMag(False); end; procedure TVectorForm.SampleAccelButtonClick(Sender: TObject); begin GetAccel(); end; procedure ParseAccelCal(result:string); var pieces: TStringList; AccCalPos: Integer; //Accelerometer position begin pieces := TStringList.Create; pieces.Delimiter := ','; pieces.DelimitedText := result; if ((pieces.Count>=5) and (pieces.Strings[0]='v3')) then begin AccCalPos:=StrToInt(pieces.Strings[1]); w.setv(AccCalPos-1, 0, StrToFloatDef(pieces.Strings[2],0)); //x w.setv(AccCalPos-1, 1, StrToFloatDef(pieces.Strings[3],0)); //y w.setv(AccCalPos-1, 2, StrToFloatDef(pieces.Strings[4],0)); //z w.setv(AccCalPos-1, 3, 1.0); //constant end else begin if pieces.Count>0 then StatusMessage('V3x get accelerometer calibration failed. Count='+IntToStr(pieces.Count)+'. Reply= '+pieces.Strings[0]) else StatusMessage('V3x get accelerometer calibration failed. Count=0. Reply= nil'); end; if Assigned(pieces) then FreeAndNil(pieces); end; procedure TVectorForm.DisplayAccelWXMatrix(); var AccCalPos: Integer; //Accelerometer position begin //Fill W matrix for AccCalPos:=1 to 6 do begin WStringGrid.Cells[1,AccCalPos]:=format('%6.0f',[w.getv(AccCalPos-1, 0)]); WStringGrid.Cells[2,AccCalPos]:=format('%6.0f',[w.getv(AccCalPos-1, 1)]); WStringGrid.Cells[3,AccCalPos]:=format('%6.0f',[w.getv(AccCalPos-1, 2)]); WStringGrid.Cells[4,AccCalPos]:=format('%6.0f',[w.getv(AccCalPos-1, 3)]); end; //Fill X matrix DMatrixToGrid(XStringGrid, X); end; procedure TVectorForm.SetMagCalButtonClick(Sender: TObject); Begin ParseMagCal(SendGet('v4,'+ format('%6.5d,%6.5d,%6.5d,%6.5d,%6.5d,%6.5d', [round(Mxmin), round(Mymin), round(Mzmin), + round(Mxmax), round(Mymax), round(Mzmax) ]) + 'x')); end; procedure TVectorForm.StartXRotationButtonClick(Sender: TObject); begin end; procedure TVectorForm.StartYRotationButtonClick(Sender: TObject); begin end; //Examine tab change for special functions procedure TVectorForm.VectorPageControlChange(Sender: TObject); var page:Integer; begin //On Linux, the opengl widgets are properly disabled on hidden tabs, // but they are all enabled on the Mac. //Get active page for comparisons page:=VectorPageControl.ActivePageIndex; //Overview tab AltAzOpenGLControl.Visible:=(page=0); BubbleOpenGLControl.Visible:=(page=0); //Accelerometer tab (no opengl widgets to enable) //Magnetometer tab MagXCalOpenGLControl.Visible:=(page=2); MagYCalOpenGLControl.Visible:=(page=2); MagZCalOpenGLControl.Visible:=(page=2); MPitchcompOpenGLControl.Visible:=(page=2); MRollPitchcompOpenGLControl.Visible:=(page=2); MRollcompOpenGLControl.Visible:=(page=2); //Tilt Compensated tab AccelOpenGLControl.Visible:=(page=3); M1OpenGLControl.Visible:=(page=3); M2OpenGLControl.Visible:=(page=3); //Hard/Soft Iron test tab MxPlusGL.Visible:=(page=4); MyPlusGL.Visible:=(page=4); MzPlusGL.Visible:=(page=4); MxMinusGL.Visible:=(page=4); MyMinusGL.Visible:=(page=4); MzMinusGL.Visible:=(page=4); HardSoftOpenGLControl.Visible:=(page=4); end; procedure GetMagCal(); begin ParseMagCal(SendGet('v4x')); GotMagCal:=True; end; //Gather and parse magnetometer calibration values procedure ParseMagCal(result:string); var pieces: TStringList; begin pieces := TStringList.Create; pieces.Delimiter := ','; pieces.DelimitedText := result; if ((pieces.Count=7) and (pieces.Strings[0]='v4')) then begin //Parse minimum and maximum values Mxmin:=StrToFloatDef(pieces.Strings[1],0); Mymin:=StrToFloatDef(pieces.Strings[2],0); Mzmin:=StrToFloatDef(pieces.Strings[3],0); Mxmax:=StrToFloatDef(pieces.Strings[4],0); Mymax:=StrToFloatDef(pieces.Strings[5],0); Mzmax:=StrToFloatDef(pieces.Strings[6],0); end; //else // StatusMessage('V4x get magnetometer calibration failed. Count='+IntToStr(pieces.Count)+'. Reply= '+pieces.Strings[0]); if Assigned(pieces) then FreeAndNil(pieces); end; //Display magnetometer calibration values procedure TVectorForm.DisplayMagCal(); begin //Fill display with minimum and maximum "Stored" values Vmgrid.Cells[1,1]:=format('%7.0f',[Mxmax]); Vmgrid.Cells[2,1]:=format('%7.0f',[Mymax]); Vmgrid.Cells[3,1]:=format('%7.0f',[Mzmax]); Vmgrid.Cells[1,5]:=format('%7.0f',[Mxmin]); Vmgrid.Cells[2,5]:=format('%7.0f',[Mymin]); Vmgrid.Cells[3,5]:=format('%7.0f',[Mzmin]); end; procedure GetAccelCal(); var AccCalPos: Integer; //Accelerometer position begin for AccCalPos := 1 to 6 do ParseAccelCal(SendGet(format('v3,%1dx',[AccCalPos]))); CalcAccelCal(); end; procedure TVectorForm.SetAccelCal(ACCpos:Integer); Begin ParseAccelCal(SendGet('v3,'+ format('%1d,%6.5d,%6.5d,%6.5d', [ACCpos,round(Ax), round(Ay), round(Az)]) + 'x')); CalcAccelCal(); DisplayAccelWXMatrix(); end; procedure TVectorForm.CalcStandard(); begin Heading:=radtodeg(arctan2(-1*Mz2,Mx2))+180; //Display results Vazimuth.Text:=format('%4.0f',[Heading]); //Valtitude.Text:= format('%4.1f°',[radtodeg(arcsin(-1.0*Ax1))]); //Valtitude.Text:= format('%4.1f°',[radtodeg(arctan2(-1.0*Ax1,abs(sqrt(Ay1**2+Az1**2))))]); Valtitude.Text:= format('%4.1f°',[ComputeAltitude(Ax1, Ay1, Az1)]); //Display M_2 values Vmgrid.Cells[1,8]:=format('%3.3f',[Mx2]); Vmgrid.Cells[2,8]:=format('%3.3f',[My2]); Vmgrid.Cells[3,8]:=format('%3.3f',[Mz2]); end; function ComputeAltitude(X,Y,Z:float):float; begin result:= roundto(radtodeg(arctan2(-1.0*X,abs(sqrt(Y**2+Z**2)))), -1); end; procedure ComputeAzimuth(); begin // Deconstruct Acceleration axis two rotations (to get rotations from "normal") //Determine first stage (X axis rotation to Y, Z=0): CXRot:=arctan2(Az1,Ay1); TXRot:=CXRot;//Later this should be changed to the sequentially determined "Mroll" //Make a new Y and Z from roll correction Cr1:=sqrt(Ay1**2+Az1**2);//Radius (Length of the line viewed down X axis) Cy1:=Cr1*cos(TXRot - CXRot); Cz1:=Cr1*sin(TXRot - CXRot);//Z=0 after rotation about Y axis Cx1:=Ax1; //No change for first correction rotation //Determine second stage (Z rotation to X, Y=0) Cr2:=sqrt(Cx1**2+Cy1**2);//Radius (Length of the line) CZRot:=arctan2(Cy1,Cx1); TZRot:=CZRot;////Later this should be changed to the sequentially determined "Mpitch" Cy2:=Cr2*sin(TZRot - CZRot);//Y=0 after rotation about Z axis. Cx2:=Cr2*cos(TZRot - CZRot); Cz2:=Cz1; //No change to Z for second correction //==================================================== // Deconstruct Magnetometer axis two rotations (to get rotations from "normal") //Determine first stage (X axis rotation to Y, Z=0): MXRot:=arctan2(Mz1,My1); TXRot:=MXRot;//Later this should be changed to the sequentially determined "Mroll" //Make a new Y and Z from roll correction Mr1:=sqrt(My1**2+Mz1**2);//Radius (Length of the line viewed down X axis) MRy1:=Mr1; MRz1:=0;//Z=0 after rotation about Y axis MRx1:=Mx1; //No change for first correction rotation //Determine second stage (Z rotation to X, Y=0) Mr2:=sqrt(MRx1**2+MRy1**2);//Radius (Length of the line) MZRot:=arctan2(MRy1,MRx1); TZRot:=MZRot;////Later this should be changed to the sequentially determined "Mpitch" MRy2:=0;//Y=0 after rotation about Z axis. MRx2:=Mr2; MRz2:=MRz1; //No change to Z for second correction //==================================================== // === Compensate Magnetometer with accelerometer rotations === //correct for -XRot Mz2:=sin(MXRot - CXRot); My2:=cos(MXRot - CXRot); //then correct for -ZRot Mr2:=My2; My2:=Mr2*cos(MZRot - CZRot); Mx2:=Mr2*sin(MZRot - CZRot); end; procedure TVectorForm.DisplayAzimuthComputations(); begin memo1.Clear; memo1.Append(format('Ax1,Ay1,Az1 = %1.3f %1.3f %1.3f',[Ax1,Ay1,Az1])); // Deconstruct Acceleration axis two rotations (to get rotations from "normal") //Determine first stage (X axis rotation to Y, Z=0): memo1.Append(format('CXRot: %4.1f',[radtodeg(CXRot)])); //Make a new Y and Z from roll correction memo1.Append(format('Cx1,Cy1,Cz1 = %1.3f %1.3f %1.3f',[Cx1,Cy1,Cz1])); //Determine second stage (Z rotation to X, Y=0) memo1.Append(format('CZRot: %4.1f',[radtodeg(CZRot)])); memo1.Append(format('Cx2,Cy2,Cz2 = %1.3f %1.3f %1.3f',[Cx2,Cy2,Cz2])); // Deconstruct Magnetometer axis two rotations (to get rotations from "normal") //Determine first stage (X axis rotation to Y, Z=0): memo1.Append(format('Mx1,My1,Mz1 = %1.3f %1.3f %1.3f',[Mx1,My1,Mz1])); memo1.Append(format('MXRot: %4.1f',[radtodeg(MXRot)])); //Make a new Y and Z from roll correction memo1.Append(format('Mr1: %1.3f',[Mr1])); memo1.Append(format('MRx1,MRy1,MRz1 = %1.3f %1.3f %1.3f',[MRx1,MRy1,MRz1])); //Determine second stage (Z rotation to X, Y=0) memo1.Append(format('MZRot: %4.1f',[radtodeg(MZRot)])); memo1.Append(format('MRx2,MRy2,MRz2 = %1.3f %1.3f %1.3f',[MRx2,MRy2,MRz2])); // === Compensate Magnetometer with accelerometer rotations === //correct for -XRot memo1.Append(format('1st Xrot: %4.1f ',[radtodeg(MXRot - CXRot)])); memo1.Append(format('1st stage Mx2,My2,Mz2 = %1.3f %1.3f %1.3f',[Mx2,My2,Mz2])); //then correct for -ZRot memo1.Append(format('1st Zrot: %4.1f ',[radtodeg(MZRot - CZRot)])); memo1.Append(format('1st stage Mx2,My2,Mz2 = %1.3f %1.3f %1.3f',[Mx2,My2,Mz2])); memo1.Append(format('Heading z,x : %4.1f',[radtodeg(arctan2(-1*Mz2,Mx2))+180])); end; procedure TVectorForm.MagPlot(); var i: Double; procedure cube(X,Y,Z: Double); begin glPushMatrix(); //Move drawing to be viewed from above and on an angle glTranslatef(0,-0.2,-4); glRotatef( 30.0, 1, 0, 0); //X rotation glRotatef(-30.0, 0, 1, 0); //Y rotation //Draw outer loops glLineWidth(0.6); glColor4f(1, 1, 1,0.5); //white glBegin(GL_LINE_LOOP); i:=0; while (i<2*pi) do begin glVertex3f( sin(i), 0, cos(i)); i:= i+0.1; end; glEnd(); glBegin(GL_LINE_LOOP); i:=0; while (i<2*pi) do begin glVertex3f( sin(i), cos(i), 0); i:= i+0.001; end; glEnd(); glBegin(GL_LINE_LOOP); i:=0; while (i<2*pi) do begin glVertex3f( 0, sin(i), cos(i)); i:= i+0.1; end; glEnd(); //Draw text axis labels glPushMatrix(); glLineWidth(1.5); glRotatef(180, 1, 0, 0); glColor4f(1,0,0,0.5); //Red glTextOut( 1.2,0,0, 0.15, 0.2, 0.2, 1, 'X'); glColor4f(0,0,1,0.5); //Blue glTextOut( 0,0,-1.2, 0.15, 0.2, 0.2, 1, 'Y'); glColor4f(0,1,0,0.5); //Green glTextOut( 0,-1.2,0, 0.15, 0.2, 0.2, 1, 'Z'); glPopMatrix(); //Grid axis lines glBegin(GL_LINES); glColor4f(1,0,0,0.3);//Red glVertex3f(0,0,0); glVertex3f(1.1,0,0); glColor4f(0,1,0,0.3);//Green glVertex3f(0,0,0); glVertex3f(0,1.1,0); glColor4f(0,0,1,0.3);//Blue glVertex3f(0,0,0); glVertex3f(0,0,1.1); glEnd(); //Value glLineWidth(2); glBegin(GL_LINES); glColor4f(1,0.5,0.5,0.9); //Red glVertex3f(0, 0,0); glVertex3f(X, 0,0); // Left/right value glColor4f(0.5, 1, 0.5,0.9); //Green glVertex3f(0, 0,0); glVertex3f( 0,Z,0); // Up/down Axis glColor4f(0.5,0.5,1,0.9); //Blue glVertex3f(0, 0,0); glVertex3f(0,0, Y); // In/out axis glColor4f(1, 1, 1,0.9); //White glVertex3f(0, 0,0); glVertex3f(X, Z, Y); //Combined vector glEnd(); glPointSize(4); glBegin(GL_POINTS); glColor4f(1,0.5,0.5,0.9); //Red glVertex3f(X, 0,0); // Left/right value glColor4f(0.5, 1, 0.5,0.9); //Green glVertex3f( 0,Z,0); // Up/down Axis glColor4f(0.5,0.5,1,0.9); //Blue glVertex3f(0,0, Y); // In/out axis glColor4f(1, 1, 1,0.9); //White glVertex3f(X, Z, Y); //Combined vector glEnd(); glPopMatrix(); end; procedure textlabel(text:String); begin glPushMatrix(); glLineWidth(1.5); //glLineWidth(0.5); glColor3f(1, 1, 1); //white glTranslatef(0,0.7,-2); glRotatef(180, 1, 0, 0); glTextOut(0,0,0, 0.07, 0.1, 0.1, 1, text); glPopMatrix(); end; begin //Fill up string grid with result from meter Vmgrid.Cells[1,2]:=format('%7.0f',[Mxmax]); Vmgrid.Cells[2,2]:=format('%7.0f',[Mymax]); Vmgrid.Cells[3,2]:=format('%7.0f',[Mzmax]); Vmgrid.Cells[1,3]:=format('%7.0f',[Mx]); Vmgrid.Cells[2,3]:=format('%7.0f',[My]); Vmgrid.Cells[3,3]:=format('%7.0f',[Mz]); Vmgrid.Cells[1,4]:=format('%7.0f',[Mxmin]); Vmgrid.Cells[2,4]:=format('%7.0f',[Mymin]); Vmgrid.Cells[3,4]:=format('%7.0f',[Mzmin]); Vmgrid.Cells[1,6]:=format('%3.3f',[MxOff]); Vmgrid.Cells[2,6]:=format('%3.3f',[MyOff]); Vmgrid.Cells[3,6]:=format('%3.3f',[MzOff]); Vmgrid.Cells[1,7]:=format('%3.3f',[Mx1]); Vmgrid.Cells[2,7]:=format('%3.3f',[My1]); Vmgrid.Cells[3,7]:=format('%3.3f',[Mz1]); OpenGlwindowInit(M1OpenGLControl); textlabel('Mx1, My1, Mz1'); cube(Mx1,My1,Mz1); M1OpenGLControl.SwapBuffers; OpenGlwindowInit(M2OpenGLControl); textlabel('Mx2, My2, Mz2'); cube(Mx2,My2,Mz2); M2OpenGLControl.SwapBuffers; //=== Roll compensated magnetometer readings ===================== OpenGlwindowInit(MRollcompOpenGLControl); textlabel('M Roll comp'); glPushMatrix(); //Move drawing to be viewed from above and on an angle glTranslatef(0,-0.4,-4); glRotatef(-1.0*radtodeg(Roll), 1, 0, 0 ); //Roll rotation //Draw outer loops glLineWidth(0.6); glColor4f(1, 1, 1,0.5); //white glBegin(GL_LINE_LOOP); i:=0; while (i<2*pi) do begin glVertex3f( sin(i), 0, cos(i)); i:= i+0.1; end; glEnd(); glBegin(GL_LINE_LOOP); i:=0; while (i<2*pi) do begin glVertex3f( sin(i), cos(i), 0); i:= i+0.001; end; glEnd(); glBegin(GL_LINE_LOOP); i:=0; while (i<2*pi) do begin glVertex3f( 0, sin(i), cos(i)); i:= i+0.1; end; glEnd(); //Draw text axis labels glPushMatrix(); glLineWidth(1.5); glRotatef(180, 1, 0, 0); glColor4f(1,0,0,0.5); //Red glTextOut( 1.2,0,0, 0.15, 0.2, 0.2, 1, 'X'); glColor4f(0,0,1,0.5); //Blue glTextOut( 0,0,-1.2, 0.15, 0.2, 0.2, 1, 'Y'); glColor4f(0,1,0,0.5); //Green glTextOut( 0,-1.2,0, 0.15, 0.2, 0.2, 1, 'Z'); glPopMatrix(); //Grid axis lines glBegin(GL_LINES); glColor4f(1,0,0,0.3);//Red glVertex3f(0,0,0); glVertex3f(1.1,0,0); glColor4f(0,1,0,0.3);//Green glVertex3f(0,0,0); glVertex3f(0,1.1,0); glColor4f(0,0,1,0.3);//Blue glVertex3f(0,0,0); glVertex3f(0,0,1.1); glEnd(); //Value glLineWidth(2); glBegin(GL_LINES); glColor4f(1,0.5,0.5,0.9); //Red glVertex3f(0, 0,0); glVertex3f(Mx1, 0,0); // Left/right value glColor4f(0.5, 1, 0.5,0.9); //Green glVertex3f(0, 0,0); glVertex3f( 0,Mz1,0); // Up/down Axis glColor4f(0.5,0.5,1,0.9); //Blue glVertex3f(0, 0,0); glVertex3f(0,0,My1); // In/out axis glColor4f(1, 1, 1,0.9); //White glVertex3f(0, 0,0); glVertex3f(Mx1,Mz1,My1); //Combined vector glEnd(); glPointSize(4); glBegin(GL_POINTS); glColor4f(1,0.5,0.5,0.9); //Red glVertex3f(Mx1, 0,0); // Left/right value glColor4f(0.5, 1, 0.5,0.9); //Green glVertex3f( 0,Mz1,0); // Up/down Axis glColor4f(0.5,0.5,1,0.9); //Blue glVertex3f(0,0,My1); // In/out axis glColor4f(1, 1, 1,0.9); //White glVertex3f(Mx1,Mz1,My1); //Combined vector glEnd(); glPopMatrix(); MRollcompOpenGLControl.SwapBuffers; //================================================== //=== Pitch compensated magnetometer readings ===================== OpenGlwindowInit(MPitchcompOpenGLControl); textlabel('M Pitch comp'); glPushMatrix(); //Move drawing to be viewed from above and on an angle glTranslatef(0,-0.4,-4); glRotatef(radtodeg(Pitch3), 0, 0, 1 ); //Pitch rotation //Draw outer loops glLineWidth(0.6); glColor4f(1, 1, 1,0.5); //white glBegin(GL_LINE_LOOP); i:=0; while (i<2*pi) do begin glVertex3f( sin(i), 0, cos(i)); i:= i+0.1; end; glEnd(); glBegin(GL_LINE_LOOP); i:=0; while (i<2*pi) do begin glVertex3f( sin(i), cos(i), 0); i:= i+0.001; end; glEnd(); glBegin(GL_LINE_LOOP); i:=0; while (i<2*pi) do begin glVertex3f( 0, sin(i), cos(i)); i:= i+0.1; end; glEnd(); //Draw text axis labels glPushMatrix(); glLineWidth(1.5); glRotatef(180, 1, 0, 0); glColor4f(1,0,0,0.5); //Red glTextOut( 1.2,0,0, 0.15, 0.2, 0.2, 1, 'X'); glColor4f(0,0,1,0.5); //Blue glTextOut( 0,0,-1.2, 0.15, 0.2, 0.2, 1, 'Y'); glColor4f(0,1,0,0.5); //Green glTextOut( 0,-1.2,0, 0.15, 0.2, 0.2, 1, 'Z'); glPopMatrix(); //Grid axis lines glBegin(GL_LINES); glColor4f(1,0,0,0.3);//Red glVertex3f(0,0,0); glVertex3f(1.1,0,0); glColor4f(0,1,0,0.3);//Green glVertex3f(0,0,0); glVertex3f(0,1.1,0); glColor4f(0,0,1,0.3);//Blue glVertex3f(0,0,0); glVertex3f(0,0,1.1); glEnd(); //Value glLineWidth(2); glBegin(GL_LINES); glColor4f(1,0.5,0.5,0.9); //Red glVertex3f(0, 0,0); glVertex3f(Mx1, 0,0); // Left/right value glColor4f(0.5, 1, 0.5,0.9); //Green glVertex3f(0, 0,0); glVertex3f( 0,Mz1,0); // Up/down Axis glColor4f(0.5,0.5,1,0.9); //Blue glVertex3f(0, 0,0); glVertex3f(0,0,My1); // In/out axis glColor4f(1, 1, 1,0.9); //White glVertex3f(0, 0,0); glVertex3f(Mx1,Mz1,My1); //Combined vector glEnd(); glPointSize(4); glBegin(GL_POINTS); glColor4f(1,0.5,0.5,0.9); //Red glVertex3f(Mx1, 0,0); // Left/right value glColor4f(0.5, 1, 0.5,0.9); //Green glVertex3f( 0,Mz1,0); // Up/down Axis glColor4f(0.5,0.5,1,0.9); //Blue glVertex3f(0,0,My1); // In/out axis glColor4f(1, 1, 1,0.9); //White glVertex3f(Mx1,Mz1,My1); //Combined vector glEnd(); glPopMatrix(); MPitchcompOpenGLControl.SwapBuffers; //================================================== //=== Roll then Pitch compensated magnetometer readings ===================== OpenGlwindowInit(MRollPitchcompOpenGLControl); textlabel('M Roll Pitch comp'); glPushMatrix(); //Move drawing to be viewed from above and on an angle glTranslatef(0,-0.4,-4); glRotatef(-1.0*radtodeg(Roll), 1, 0, 0 ); //Roll rotation glRotatef(radtodeg(Pitch), 0, 0, 1 ); //Pitch rotation //Draw outer loops glLineWidth(0.6); glColor4f(1, 1, 1,0.5); //white glBegin(GL_LINE_LOOP); i:=0; while (i<2*pi) do begin glVertex3f( sin(i), 0, cos(i)); i:= i+0.1; end; glEnd(); glBegin(GL_LINE_LOOP); i:=0; while (i<2*pi) do begin glVertex3f( sin(i), cos(i), 0); i:= i+0.001; end; glEnd(); glBegin(GL_LINE_LOOP); i:=0; while (i<2*pi) do begin glVertex3f( 0, sin(i), cos(i)); i:= i+0.1; end; glEnd(); //Draw text axis labels glPushMatrix(); glLineWidth(1.5); glRotatef(180, 1, 0, 0); glColor4f(1,0,0,0.5); //Red glTextOut( 1.2,0,0, 0.15, 0.2, 0.2, 1, 'X'); glColor4f(0,0,1,0.5); //Blue glTextOut( 0,0,-1.2, 0.15, 0.2, 0.2, 1, 'Y'); glColor4f(0,1,0,0.5); //Green glTextOut( 0,-1.2,0, 0.15, 0.2, 0.2, 1, 'Z'); glPopMatrix(); //Grid axis lines glBegin(GL_LINES); glColor4f(1,0,0,0.3);//Red glVertex3f(0,0,0); glVertex3f(1.1,0,0); glColor4f(0,1,0,0.3);//Green glVertex3f(0,0,0); glVertex3f(0,1.1,0); glColor4f(0,0,1,0.3);//Blue glVertex3f(0,0,0); glVertex3f(0,0,1.1); glEnd(); //Value glLineWidth(2); glBegin(GL_LINES); glColor4f(1,0.5,0.5,0.9); //Red glVertex3f(0, 0,0); glVertex3f(Mx1, 0,0); // Left/right value glColor4f(0.5, 1, 0.5,0.9); //Green glVertex3f(0, 0,0); glVertex3f( 0,Mz1,0); // Up/down Axis glColor4f(0.5,0.5,1,0.9); //Blue glVertex3f(0, 0,0); glVertex3f(0,0,My1); // In/out axis glColor4f(1, 1, 1,0.9); //White glVertex3f(0, 0,0); glVertex3f(Mx1,Mz1,My1); //Combined vector glEnd(); glPointSize(4); glBegin(GL_POINTS); glColor4f(1,0.5,0.5,0.9); //Red glVertex3f(Mx1, 0,0); // Left/right value glColor4f(0.5, 1, 0.5,0.9); //Green glVertex3f( 0,Mz1,0); // Up/down Axis glColor4f(0.5,0.5,1,0.9); //Blue glVertex3f(0,0,My1); // In/out axis glColor4f(1, 1, 1,0.9); //White glVertex3f(Mx1,Mz1,My1); //Combined vector glEnd(); glPopMatrix(); //Draw small circle from top view glPushMatrix(); glLineWidth(0.6); glColor4f(1, 1, 1,0.9); //White glTranslatef(-1.5,1.5,-8); glBegin(GL_LINE_LOOP); i:=0; while (i<2*pi) do begin glVertex3f( sin(i), cos(i), 0); i:= i+0.001; end; glEnd(); //Value glBegin(GL_LINES); glVertex3f(0, 0,0); glVertex3f(Mx1,My1,0); //Combined vector glEnd(); glPointSize(4); glBegin(GL_POINTS); glVertex3f(Mx1,My1,0); //Combined vector glEnd(); glPopMatrix(); //Draw small circle from top view glPushMatrix(); glLineWidth(0.6); glColor4f(1, 1, 1,0.9); //White glTranslatef(1.5,1.5,-8); glBegin(GL_LINE_LOOP); i:=0; while (i<2*pi) do begin glVertex3f( sin(i), cos(i), 0); i:= i+0.001; end; glEnd(); //Value glBegin(GL_LINES); glVertex3f(0, 0,0); glVertex3f(Mx2,My2,0); //Combined vector glEnd(); glPointSize(4); glBegin(GL_POINTS); glVertex3f(Mx2,My2,0); //Combined vector glEnd(); glPopMatrix(); MRollPitchcompOpenGLControl.SwapBuffers; //================================================== end; procedure TVectorForm.AccelPlot(); begin //display raw values AStringGrid.Cells[1,1]:=format('%7.0f',[Ax]); AStringGrid.Cells[2,1]:=format('%7.0f',[Ay]); AStringGrid.Cells[3,1]:=format('%7.0f',[Az]); //Enable Acceleration calibration buttons SetP5Button.Enabled:=Ax > 8000; SetP6Button.Enabled:=Ax < -8000; SetP3Button.Enabled:=Ay > 8000; SetP4Button.Enabled:=Ay < -8000; SetP1Button.Enabled:=Az > 8000; SetP2Button.Enabled:=Az < -8000; //Display normalized deadbanded values AStringGrid.Cells[1,2]:=format('%7.3f',[Ax1]); AStringGrid.Cells[2,2]:=format('%7.3f',[Ay1]); AStringGrid.Cells[3,2]:=format('%7.3f',[Az1]); AccelOpenGLControl.Paint; end; procedure TVectorForm.AltAzPlot(); var i: Double; procedure textlabel(text:String); begin glPushMatrix(); glLineWidth(1.5); //glLineWidth(0.5); glColor3f(1, 1, 1); //white glTranslatef(0,0.7,-2); glRotatef(180, 1, 0, 0); glTextOut(0,0,0, 0.07, 0.1, 0.1, 1, text); glPopMatrix(); end; begin OpenGlwindowInit(AltAzOpenGLControl); //Draw final Altitude Azimuth drawing //textlabel('Alt Az'); glPushMatrix(); //Move drawing to be viewed from above and on an angle glTranslatef(0,-0.2,-4); glRotatef( 30.0, 1, 0, 0); //X rotation glRotatef(-30.0, 0, 1, 0); //Y rotation //Draw outer loops glLineWidth(0.6); glColor4f(1, 1, 1,0.5); //white glBegin(GL_LINE_LOOP); i:=0; while (i<2*pi) do begin glVertex3f( sin(i), 0, cos(i)); i:= i+0.1; end; glEnd(); glBegin(GL_LINES); i:=0; while (i(1.0-DeadbandSpinEdit.Value/100.0)))then if ((sum<2.0) and (sum>0.0))then begin Ax1:=Ynorm.getv(0, 0); Ay1:=Ynorm.getv(1, 0); Az1:=Ynorm.getv(2, 0); end; //Writeln('NormalizeAccel OK');//debug except StatusMessage('NormalizeAccel exception.'); end; end; //normalize the value in Mx, My, Mz and save to Mx1, My1, Mz1 procedure NormalizeMag(); begin //Compute offsets MxOff:=(MxMin+Mxmax)/2; MyOff:=(MyMin+Mymax)/2; MzOff:=(MzMin+Mzmax)/2; //if MagnetoCheckBox.Checked then if False then begin try //Alternate calibrated calculation based on Magneto 1.2 values Mh.setv(0,0,Mx); Mh.setv(1,0,My); Mh.setv(2,0,Mz); MhCal:=MAinv * (Mh - Mb); Mx1:=MhCal.getv(0,0)/3200; My1:=MhCal.getv(1,0)/3200; Mz1:=MhCal.getv(2,0)/3200; except StatusMessage('Magneto settings exception'); end; end else begin //Apply offset and Normalize readings Mx1:=EnsureRange((Mx-MxOff)/((Mxmax-MxMin)/2),-1.0,1.0); My1:=EnsureRange((My-MyOff)/((Mymax-MyMin)/2),-1.0,1.0); Mz1:=EnsureRange((Mz-MzOff)/((Mzmax-MzMin)/2),-1.0,1.0); end; //Put normalized magnetic readings into matrix Mnorm.setv(0, 0, Mx1); Mnorm.setv(1, 0, My1); Mnorm.setv(2, 0, Mz1); end; //Get magnetometer readings from meter into Mx, My, Mz // Optionally hide results from logfile (useful for continuous monotoring of compass). // Offsets are applied to produce Mx1, My1, Mz1 // Matrix Mnorm is filled. procedure GetMag(Hide:Boolean=False); var pieces: TStringList; i : integer; result: String; const Mmax=5000; Mmin=-5000; begin try if not GotMagCal then GetMagCal(); pieces := TStringList.Create; pieces.Delimiter := ','; //Get magnetometer values, and optionally "Hide" result. result:=SendGet('v1x',False, 3000, True, Hide); //Parse magnetometer values. pieces.DelimitedText := result; if pieces.Count<3 then StatusMessage(format('Getmag pieces count < 4 %s',[result])); //writeln('getmag pieces.Count=',pieces.Count);//debug //if SmoothedCheckBox.Checked then if False then begin //shift for i:= smoothbuffersize-1 downto 1 do begin Mxb[i]:=Mxb[i-1]; Myb[i]:=Myb[i-1]; Mzb[i]:=Mzb[i-1]; end; //insert latest reading and invert Y and Z according to fig8 AN3192.pdf Mxb[0]:= StrToFloatDef(pieces.Strings[1],0); Myb[0]:= -1.0 * StrToFloatDef(pieces.Strings[2],0); Mzb[0]:= -1.0 * StrToFloatDef(pieces.Strings[3],0); //clear sum Mx:=0; My:=0; Mz:=0; //sum for i:=0 to smoothbuffersize-1 do begin Mx:=Mx+Mxb[i]; My:=My+Myb[i]; MZ:=Mz+Mzb[i]; end; //average Mx:=Mx/smoothbuffersize; My:=My/smoothbuffersize; Mz:=Mz/smoothbuffersize; end else begin Mx:= StrToFloatDef(pieces.Strings[1],0); My:= -1.0 * StrToFloatDef(pieces.Strings[2],0); Mz:= -1.0 * StrToFloatDef(pieces.Strings[3],0); end; //debug super large values. //if abs(Mx)>Mmax then writeln(Mx, ' ' ,result); //if abs(My)>Mmax then writeln(My, ' ' ,result); //if abs(Mz)>Mmax then writeln(Mz, ' ' ,result); //Compute new min/max magnetic values if MinMaxMagCheck then begin if ((MxMmin)) then Mxmin:= Mx; if ((MyMmin)) then Mymin:= My; if ((MzMmin)) then Mzmin:= Mz; if ((Mx>Mxmax) and (MxMymax) and (MyMzmax) and (Mz ./dlerase.lrs0000644000175000017500000000512214576573022013311 0ustar anthonyanthony{ This is an automatically generated lazarus resource file } LazarusResources.Add('TFormDLErase','FORMDATA',[ 'TPF0'#12'TFormDLErase'#11'FormDLErase'#4'Left'#3#179#5#6'Height'#3#207#0#3'T' +'op'#3'/'#1#5'Width'#3#148#2#11'BorderIcons'#11#0#11'BorderStyle'#7#8'bsDial' +'og'#7'Caption'#6#23'Erase database in meter'#12'ClientHeight'#3#207#0#11'Cl' +'ientWidth'#3#148#2#7'OnClose'#7#9'FormClose'#6'OnShow'#7#8'FormShow'#8'Posi' +'tion'#7#16'poMainFormCenter'#10'LCLVersion'#6#7'1.6.0.4'#0#7'TButton'#14'Er' +'aseAllButton'#23'AnchorSideRight.Control'#7#12'CancelButton'#24'AnchorSideB' +'ottom.Control'#7#12'CancelButton'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4 +'Left'#3#239#1#6'Height'#2#25#3'Top'#3#177#0#5'Width'#2'K'#7'Anchors'#11#7'a' +'kRight'#8'akBottom'#0#19'BorderSpacing.Right'#2#10#7'Caption'#6#9'Erase all' +#7'Enabled'#8#7'OnClick'#7#19'EraseAllButtonClick'#8'TabOrder'#2#0#0#0#7'TBu' +'tton'#12'CancelButton'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSide' +'Right.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#5'Owner'#21'Ancho' +'rSideBottom.Side'#7#9'asrBottom'#4'Left'#3'D'#2#6'Height'#2#25#3'Top'#3#177 +#0#5'Width'#2'K'#7'Anchors'#11#7'akRight'#8'akBottom'#0#19'BorderSpacing.Rig' +'ht'#2#5#20'BorderSpacing.Bottom'#2#5#7'Caption'#6#5'Close'#7'OnClick'#7#17 +'CancelButtonClick'#8'TabOrder'#2#1#0#0#6'TLabel'#12'MessageLabel'#22'Anchor' +'SideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'#2 +#6#6'Height'#2#19#3'Top'#2#6#5'Width'#3#208#1#20'BorderSpacing.Around'#2#6#7 +'Caption'#6'3Warning! All recorded data in meter will be erased!'#11'Font.He' +'ight'#2#240#9'Font.Name'#6#4'Sans'#10'Font.Style'#11#6'fsBold'#0#11'ParentC' +'olor'#8#10'ParentFont'#8#0#0#11'TStringGrid'#11'StringGrid1'#22'AnchorSideL' +'eft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#12'MessageLabel'#18'Anc' +'horSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'A' +'nchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#12'Cance' +'lButton'#4'Left'#2#5#6'Height'#3#141#0#3'Top'#2#31#5'Width'#3#138#2#7'Ancho' +'rs'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#18'BorderSpacing.Left'#2 +#5#19'BorderSpacing.Right'#2#5#20'BorderSpacing.Bottom'#2#5#8'ColCount'#2#2#7 +'Columns'#14#1#9'Alignment'#7#14'taRightJustify'#13'Title.Caption'#6#10'Defi' +'nition'#5'Width'#3#150#0#0#1#13'Title.Caption'#6#5'Value'#5'Width'#3#252#1#0 +#0#9'FixedCols'#2#0#9'FixedRows'#2#0#8'RowCount'#2#6#8'TabOrder'#2#2#0#0#6'T' +'Timer'#6'Timer1'#7'Enabled'#8#7'OnTimer'#7#11'Timer1Timer'#4'left'#2'@'#3't' +'op'#3#152#0#0#0#0 ]); ./default.goto0000644000175000017500000000104514576573022013466 0ustar anthonyanthony# Default # Zenith;Azimuth 0;0 15;0 15;60 15;120 15;180 15;240 15;300 30;330 30;300 30;270 30;240 30;210 30;180 30;150 30;120 30;90 30;60 30;30 30;0 45;0 45;20 45;40 45;60 45;80 45;100 45;120 45;140 45;160 45;180 45;200 45;220 45;240 45;260 45;280 45;300 45;320 45;340 60;340 60;320 60;300 60;280 60;260 60;240 60;220 60;200 60;180 60;160 60;140 60;120 60;100 60;80 60;60 60;40 60;20 60;0 75;0 75;15 75;30 75;45 75;60 75;75 75;90 75;105 75;120 75;135 75;150 75;165 75;180 75;195 75;210 75;225 75;240 75;255 75;270 75;285 75;300 75;315 75;330 75;345 ./utilities-terminal.png0000644000175000017500000000236214576573022015505 0ustar anthonyanthonyPNG  IHDR szzpiCCPiccxڥKQǿjQR`CA ֒BX6d=3Nhp j!">Ow}MaC `՛N1Q˜Fi,µ ~dOʳT]Fɋv%r~iKn'EM $I]EsWS*Y1|NH|oQDͱ&9n-ѿ|IZ_[e-Ed -lDI:3ٗh# 5zT[<ʮS3%S~y1`bG f P2|=>pu=д ÌmQ{R+%-1fϻ?#Pr 0[_sYr< pHYs B(x(IDATXWMKQ=R(V 1k71VZRAhѕ)H6M[kRj. t+2u%n\R%1;D31Q'72sLMMv($ÚcX===}\UaU.Ol Z`( w*dsFi *H&glx<\0ulAZW-v@?Lq"@OMK%Ÿ]ͩl6~_f?3p9wF@R(--UfvF8CS4מf+ᕧLi䀲uG EDPKD@tBmp\:e_=̽0+` E4,[Kԩ'@00gV<9/$poAssu crb1Y* ʔE `}K xwwqu`||\`b1̚aQ=IZVms3^YYiw89"ݨͮڒk(666=*~<UWVWWG8n1z-_1#3J,")o: wјJB¿PWp[$IENDB`./world.topo.bathy.200412.3x800x400.jpg0000644000175000017500000014055714576573022017027 0ustar anthonyanthonyJFIFYW@ExifII*i   C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222 " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?m?q?*7WvEҔ,/^#qL'( ; ]&+R._0*4||ՠ`E>_0*ȥ =WZ]1\O"POj|\̫ȥ?VZ_9GaG*fU?PE/OT›GE^KZ=JpF}B!dk| _x0rb+ȭ8TE/?>(=M>T.fV*(A!ɏG|ՌA\O '>~FҔ[Q?*-"Ygjr9۟c1ڷWtLl`cXA{snG,z\~lٺfIf_a*Hi) (D\ΈU}lFg%:n3h5)}3gz1S*K)T}Y֤.OӚ;Ʒ"U$%Lǧ]+nʳtU_ˮ<#7&g_ʛƏqԨpKv>#)IHr?TR|;b`}K={Gٜ(· ZNY`?>(=هh/jZJזBX{ZHM*5.E)Q';@O)W!j$uޤ{P"A9XssSU'R OQ!dpcG(\451.$6=\fҍ{v1KgE Ǡ4O֓ s_-`{ކkzv m>}EIbiDOQ+[㡩2&#ТRuX0I[ sp{RoJH{>'M9[kSpކwaØFOZ[\9W&idWɥɩjO/ڗ+ ,Z3RyT ,]ZsHc#֕{AOVh(GH=mE>o!Xiܟa Qթĸ昵cSjAa ?C5v#@;kH3QOT? ̙ugTyf$Tmb5,Ii PRe ~fK|ßV;2o?_?_B?*pSȄ Vu+kdBq'~3#) ?lkA櫶XLԊEH(Rk">`hX by58nKR ZxN 2ji-ZݶK Fގ4;R$7זZ K UAȮӕT3JFWМ9Ok}QosբfV8eR3ʃWm_i eX3ZZP'^OYHcR(똜` D5iב7ImG@pbonGǭD6YY>9t=N?:\;@H*cF_<,bq`aU|;w{GJ;4,2E,{J،Qx O|T[C)_Ň?y:9_ REcF.>Ua$PH߻trYxq1QuX~+{R>dZ{xb*ׇ4b"ND[>3\R}?3do$DlgtkEƭonAdQ$7KziI4F_cCg *zzyjO B#vYWol q[SJZC9b٭|Pl{`YO>fx㶽Nm.zr,Փƒz-dŸ]ŏCn ‰cdDr ڔ+[;5J] 25rᯅ!'nV; ׬FG8V B?es΢]WhdO±mW8'=Amn<}:(؀czd~gI+=GvYv1Yv/8*垇cgn`eBI>fscgҧOv;%dv34pF U8RS94C+h]SƸۏ嚌i3;V:ż^w.};A6 lְuKˉm!Gydqk'@+2[|$0r~ή32eGk[ɮџ2$js\Ƨ|>46^aǘג"ϟҶ[ȾԭL%~l'`}+䜴T7ТQE"kt뛂`>ч/͒ئQ"pd6? jGϵ^tJ7z"A=jbӭVg5M!yAak%Gp*Vml.$ ki<E9)tsjHAdŦ`Kq5j_u2{2hma8iӏl֥|YleUԱZ6:_ ̚u !ԥa=e=#ڱIohytwXFN Ʃ(ʾӴOi -~2#`A\wjs\Kyg=5V5SҺ<:gކl|"Ih\[N`cՕHd'Gz*rvrE+k8ڣ:|GtAVF#4Q)!,~Q!?ՃȋJ 5[ϷGHՓȠ+~?kHklg[w*G8{ɢjE}8#([s9s_c6ԟaVqX`>\OT䌳e(M653I~f1QM4è5iE=@1Z=PS ?*^~ ~dSvz[5*prOҺ=zSܶob cT4 JV+\m"LiUZ$]ΐ[$9Gf>uge=T{w'ÝwXX,gr\DW@pIA h#}f# c:fk[r͗=xU'_~T_ <*92< *͸3bR{1`vCwZ(4t \+ :ʟb&<]wZƩTRxxBjEWw+Fj~LInك펿iM[yOjm +k+S0#lv?\Vj63y ZKC z>ZI׭fJsYJ3/T[&aڒ>Q:F?OoVzG9 }RgBV)y\>:ssD>ǁTcm{[ߗS+-qo^G !y|{.ۮ@}?J'1g[]Iڲ+ R&3VQW-bO@as;rOa8Ǧ+_nڅė6DN`u$;fCN$.h4Oc$/~qiYo-8U\3ֳ?}4.MxZ1k]QѴpi=…;! z&i^#ғq(đόO?MHwTm=Vi> ^? !uѲK2~Uh:ӚVDy`ȫ sUx3\4Igne9*.3/=RRFuuҜ?r{d}(iN)Wkn/~7m;\f @Кo4,flnXAU%uuZ2j\VsSF5᳸zpOB(>pG厕^#ЭEnZFhdu:Ѩ% ̥d5n{;-xGFSk1FUr [w2jw:FR-4lsT=A<;Ihnl8'8ï^I֣솑jq!&w ?=>n'U*VgQMdgEqIZ`;'֐ $ S:$VDn_'Ҁ3u=r{"-йYA }kԼev}]$Q%F.ﴕ5sTkr:$< 2kվ ZǦd~[_3rc9k.*~\Hw6elNz2Fy5\ORʡNzfGjUvRVBw9f1>PBb9)3r{#;qM*תi m V*!@[g9M/t 8ǟ,K*U'[$0N88Nk7R#1Nq^9YObݺǿ Mbĩǧѫm\kSR\$ 0ߨ+mHcܐHήҹ.7Yy%}b .$hM?ɷ<՘|W^iySƲR'Ycry4^of5J+r+MQivP_2(>kYJ$)ve19~V:M T!Wn97xr9q;Q`-;FfnBuol- c|bOH۸*T?XPH(nNCgq?:Iofnua%#-Myo"`sΉ̋*)A QRVgZPuѠ+=/¿F8%1{`'e:@1$[k̐`hw(79ݼR4S[HTQ'g=L:U7UX xnHd`x)fi3#$RL噀e+޾j3O-M + *+o3Ԁ{㊖H6Ax,<_INjQi~yp8 qMu6.6^!Ź###r9GA+mMDHѼhmT8FiW*kTV4P|g-ֺl6 Wxqu]c_=N" ->ܶs_H`7GJmf}k ‘~as0gqRԜv{ܿ uvdrcrt/4x]4Ԝ꧉Wʃ}OÒǭ;pֽ;7KReK _N6;g\Vpz==H #.~f+OzI^bo187DUk6I$XIP8M뵱ʲN2w-KdzK·QxcH12N"#nEPwzhu 'rBN,::^ Y/,$/gw5b#ӊ X^:/҃fk"%u֔)3$DQzzf[f"N>|G*&-zX֟IF6U!ķ/@aP8RhRUHk;r澖7H\^e B&0&HMZ1/$}ɪZ6opEųɀfR\NrdaDP׽o:;9ߛrUQ8K,crϡXM"1IF9t_KQЌ\H #i;Ol[jW2þA)e0CEs\iOpK Yfy'19ڴ'(:Ea)R#|;|M.ĐxiZcb]K=Ga֋n2L$/1# [WMqcکOAyOwob|U$g;7>Юo#]ٺvs1ԑg:]%O&!nsX_ĽTڥ[g}O8Ҷonfm:y>;W- ˳?7B0}?v*Eki:{<:lVo"sJ*km'LWP׎$,:j9W~΀ w8Ǯ*ܓRas@rx"Y5mP_MY:l# 05x͝k!\?_yoWT7Fۄ Olko]jVs.U&;xz8=Gn7 /!pv cLgu6nDՏs ⦭oe-X 9QӰڡ>a};+Ϡ~j M"!ZBJiYSRD9]pcQf0u5i~Nj+I>+!$*9|]t wi(/֤G1YIw/Ī.`,c }@V֠TAa"aW7 _\W.$(F.fd+: `scv8*X@ӎk[p[YXj=).Kcm cm'5F2F5H̒Cys.)V=޸ZXzLQ@tw"}\)p9Pm%sqӠu?3!Zح8 ;_C[^[:d#eQYcg 7~rP3FFx~_z#H99, XjWF$dc¬[WN7g.ؠs_*cN`KXK؎(Y#nmRqUgX:mPD \@<~U)#s4WhQRq)Ș##߅JбSƗeͽc.OZi7Y:Å2fYkn%7 dl[OjzԚu,@'XqJ$;F*|7񡦍#6$A曵.v^wgW5} m#0y+Cqמ>.q6ViT@|g =9Ҵ)Ԑ%8oaW#9OJ!l`סfsʒt]~UjWv2 kְ& UB)Dc=l\\N&ca}_-i$e08 qfV 0N:~kȡRIsu `hZMGv<A=Us*Q_q*O(o4ԺZpvKҸ_xAp \[y=ku>Gn|_JqY7*5&)H\ sf-Ci-nIv9pK8.-eQK Ϸ^ o}$ض;O]|{wi)I8 k \u[:Qi40s'h=ro[&،! Zmv1)uB~F: c+]Hm4QHI*S!O^+ic~ y81x]u-HcS1*sU4l 啘lpXq\v4h-simp;ڮGkw,fn;mcTJKvR%~dqE8]_fEdڧ@?֋AQ+4Ala@?/֨x+bk )]C+>ɞF}7e%y I?"BdrP8M]XmON5)/e 9{T5ǥI=͕,!=2GJhZ* XO*~Ow9e}s}Vya,8딎EG1YB6vq3޺#ZY(aM-^uXgwZFpO]28;k˼Xؽ,Gny!3gLfp(`9#G?EԬ5]>AWk+`Ax+]㹵<]J} Ç#=nN^rPi`I)ÐJ&%"#.p}GDp?sGU|/f\.Kɱtՠҵq&Yp +5R<2w=?mfe ѠBq e_#oh>f8]9u?7CҭY5E᱁~u 0ӷqfO>=B@R23~UKՕԯLP}*7UAMcoc*<󑞀[iZ}߼;F؄hxlUW @pD{n;uUUR̝_ú6S.CI:qߵtn֢4%h׏ZѠ}kLa#(ck|IO6 {ƳZSB Xbr2A?"qԑ˄$ƀpZ0]MFU>i%k#WynA04rʻ4 U1^t;yզg)ꝼF#j5MquPPs809hX-r׃V)Sp2^gZHYCॸ^:vK}hFxIxvnN}Oʀs,w1 wrO9ž*eW,G%zofyFzbDF{#4X,6 $a 8`1btj(݀®_1y4'?Pá"X˖a|LU9!9VL>E%pʐg&YG$A䝸ӏ7zPGb~^~CcWHP6#۞0B[`q 6N3TRݗv̒1ybN:1#C mǯҀ9'p8+.lg"@!Nz0]yM̹=X袺WV$5~L[f@k/H-ΣmmnN#J|٘|kV }y`op;0Zk[śXQ$oάXyɊXƤ3^k=؎5X^Oa"Fm#pS͝y 'f]ϛtb=m6ʳ&Tǩa%@+m` lBI:-!%]k[IN ݓzеv-Õ`9,,l&=FC6,W z+pn q=>mbXUkwOL -sti^æ2{`W OK6jȰ],HHS󫉵Oj,wB͎AYc퍅m}9U Fau2Pǚ(Uvlûg.Q> tߎNJ|AKg[mF*7#~r>Q؞I]dmFI8@R{|SW lbN'eQ{5"tQxPx@P ңּqSN+JT&XO7ݱ׊%q@9Fg$ǁ[.T!WG9gcG;rE0 gZ@¯hqRH]9¡8[:0sݸ:ɢs_f[!>U}7l"6)eBƲ)i:}AS&{9ZaǮiT_rHJ4 +B?[WREqO UӃVDX֍q0k!YirGy*;$r,<>ԦnդwUos^GXg*j7|Uʠ펟rףf.:3ԬhbhW!Fv=r_ʮ\Dsc76I8X}?y판i8%z$յ p. (@Eq\Oub + {ִ\r`׀k[e0]ӓsAoJ KmX.G ~4人=6]2VŌ:n9׭RDͬ O'*d~uqw^VIm}ʮYj3[68.?mc:I,A1Ms { O2n;/A֭;c!ՠ#dr#^{/ K},QgL8䝤{tљBq LLH>VS})ƣ`⚳;y(f(O;pïjڬ-ǟ qkMR'ef(~LjHr!g{Qp: ^o5[=qNjWR29wJVf%Q#S"q,8Uwm/= Ȩ}@ٮ$>c Gpˌ3[yŧ̙nUr1S=rX0Ϧ4JTjZSSĤUU4&fܥ=J^HP隵+ՄbCsIbtȪ -I$l.US*6z\qQw+5cKivMR~U_Xvt5^մ*Q9gM(G7~9V;K9K2J+'OPxS-5+kCYx$~uOmyZKnw\A~ipN9[!I^z5gNٚ մ2\z:ÚQurNg; .$G]'$`lJ&2i4`#8> \W{#$6nc9$p9u&UHriV8|1wglO< ?#u@U.]v(8|ÀB׿W D ܪӎs;z/ZRHq#1;vZrvWݻS^έkm,"olqW]i{+W%pP" t}$ {Zm=_mŸbrI#>^-wdQ׵g X"<ōq=οn$͑OL88<f/u/Gح;7.~*a ]c?6Ap~9$qh+ֽ,м/wYB[2 ZԜD8T=ejjy+󋍤iJ5P;l,a7]5# դA$6ѲTo'<<+XJR$2Ú`A4pV~3W–zkh2A= b/ol%m?ЯcÝs@3jĽ$_j7W[@HQ쎧֊3p%!&o,x_lc"Zx=>Y ^W.G<.dK@ Uo%, Nӗ,.X+ּIxB  =3Tim48_gQm2V1e}+ӆ  ZDY˲{?I5iӖoVlpF5 kN+jSW!9(3b95<rBpN8u ao15uy,BGxp&^d5IԃMZ[N[R *@⫃S/J,բ1ȫ1B*HʎZ邾v"Aҫʀv*9?0. Jl(ԳH:'9<4Z#tFG8b; bUBxu npFb0YMd6;>9?l̀8bZL vm)G 5 wgn s{U+( qM&PkuG II uұ5Vi_g]ųdeaSǡ[xmn4eLSw`^;K03|ϧz/8G)PAH deJM4V55 QbStm.-wAQTd"g@`d_>̌8smqjwRD"?2?>Rd1Xᾠż} 3Z#ae4Wz$R2E\&ѿuu9ynm&|=\Cuwe,2y*F ~6iI{iϸ d03T//>[2f\1 %SGzKVcdވKR,ȇ++`mP{q6ЅϘ|}W#9۷|Ph`H1KJxKv۵e%H=sRxLXuy`!A$qbꚭAO$]e_^G?*t01O!m+DW\H&}OSLoD!cyd~XёhJ˴>NKD?pMKHɸ?*pNV`w&%hey8{jNv5&^XX5  2{ pkuRZLāFr5j \iN.|"Yc~%Q X#aU sǺkEa"0$dCɩ\ݬnR3U)oewW,ăUI^jz#ll(XDXz .ֳB2GJ=I\;nXάmdf yR:8ȮK˔w+E;BJvs\6|0#;uZF]T׭y،$qVFLD 6>q?LgE?7Ojeb\:=kU$,<? ϸ( r=.xުc5*t5:}i@fpԞ.}LQڠֳo.N"2_nXLۢV\Vc+'rz94c$%昍*Osư1iَTSispoЧĞg{1 ]mS5edp̷r yeA*/1'o^ȧִ̏c-sҭoHA%$ vLqL{8 F}+ծ>,ۢ;c Ҹ.VYm$Bp~ك{u%6rb(:Vq9ˉ<1cFQEuߵ\JFS 8TSS]V{[I2Ĝӥ(;m rA{#Ǹd^ VBs E}=Jj|Ckyoo,+%YGwgo=һ+?AxdKyg$#g%_fG?)xTnjsUk yz#ڴ62A#IH}6$gu0X=Jfe=aZOjЌ^DNH!4X"dex`aAՄf@.qh]MmҰt I6#>w pێ:%̈ rP_ʩt KiZx'?0w9_\]W1#dmszu\U,O̘ ?V丰d~nHf,Yknf1J@֖ RXBkx10cX=*û#&1pq\nV65HcY<٣INr UǑ',rrjU-}NHk"\^b*=6{o&RPysWLN0C4 $BYz QFvr~W9 Whz(!QHWzrkМu8hQ(nbfO+ϯIZߗ:)ֶ]SPKTTrurcVaۿҲɐTu5{h$'R0?J:Bp^J9&oݟhYA*FGsqt-.@ۄ*Ͷ^I-Y!zlvY“۽d%`7wGF/Ws֨bTٍ݈!<ɜ}>vrq+ OKJqe*jqZ;׏Q[ű@tϱU%yX ݸUb=))+{94KMQE aWc ^O2x&08qQIU*arNO .Xg3YsQ=ԦY-1PRRVCqU${SmВZ67HBTu NV Κӹ׆øy|P(-# 28Jg@$õ]@񸎵ɷF%*bfXҬ@eN{V<[#7{Bb_gz\h]yBl 7.1ГUcԒ]&Zr|$dR˽֛4IH4m~ IIX?jP yoƶW & sVFKU]xCr'v]TgH ߌRJ vq:*T/qwॆ>Sgxd?1֌ZeM $XU|CCild J3?mniUƺt2!c{vk$yḑ}PC *FK`k2J(oaʼw¡D+I&]U0UwSk] ::qZ(i? "ђXǔ\*m=~\Є\ҋ٣newHʰy<=~e FƬ7peX+m8ߥ[< 9՛{7u+/i<dGw{HgImt ]u׷E+y, mfĚeʬ5l .BGQ´eT кgZT7)9qMe@8zmET}Nj,^&le+&#b'=xg+[]Kk9ϒ:!ҳ/dd_q?zqtK%7b}d-T5< +mo#{VጙɕXqbgZ2#7fIPnVLH1}!\qFT㸩$X>,M7P\dmClH`a^3O3)5Ie׼iA=/YlVD2s {^Vh:DTc; @*K6d'VC#$y?V,-y LZPT=_֡*̄ʸ%+v6FUߊϻ.3hV } zNdeR=2i8?sck=&>3֝وNG=Oj"vnYM7%fr 1xWC鑌skVi$(9iUbSsGb4n$T.+m0$ۮd~F# 8sp q0sTq4bY&uV`Y ];Mʲ60~1$8Sӵ|ۛ{ +̑L۝Va+VEx@^)xkg#W}F(\X$|Č7ܬLjL㠩H83V$ci؋\4tIΣ54w"3]u֛=Đ8>gl*!}orR)mgA# 5̒1G_N*n %":}* .C,s>D٥>Լc tcG Gc3yAoM)Pm[Bf6^W-Z}DbǀI8z@'̀ҳc`vuII3iy,ן' tD mi69 8\ ŵ7hJc ;sKu$RFU1gWOSX80䛤ߡנ9TFޣi)@#Ͱu1"ǽhH',krW=Seٶ9ӊh/tX|8}}롕̸]niX-4*I[Bi4zlg*Tiku,V) s+ϕjɵ8ƪ0V@lNj)MݞT[VA߽nA$UoFZór#׭yؔ0HVuYp~/)UtN;T%S&94虘ɓI[2kqqn/ޟ2My< 2:I!WqM<2H_QN9rjDr\F:wZbR);4흫4cyr"{Z?Ե9^"m6F\d{Vɥv1R~7,yMАJ!^qR(Rl&3ZvdKfmOiSYG29#41p u1敔(%$0?Jr1!eo-y BN\c֠L;p+JN'zTHhgy7"T$,Gll0qXJrz6tF1["o @sL%IdzTtv>?Z76ոbq`+H=]JnC3hN* -ѷӱ,ʌ z݆8hr  09* qHq:SՆ=$688'0֊RϦ*h^X@>QBz!6tf pRyYToG,~ 9kV=gk4+k>W'ZV"V\ĸhp9P{BR[nZѰuySZBj/C. `{VΕk{\`#YA# UHܩ(t۸c޷MXɦ,i2뚮F++3D”1*FO\=kD4~KaXj)acRJ4br o )3;?^[xu}=܄ Vx&U6z'mŘSŭ98kRF'$W/X8׈XU[n2MJ s\JP(<$+9&#OEK,, I\;)cUXl<r4>du|vGw%Rz[xX\BJbۚT2夥 Gb(MvI &\B"\-n * |L@8$PނNڝm[e$Lz^G+9e#nC|HlݻWZCCZ38œU~TT}iH)XsFp3Cj7F ד+KB4B$=~'e (r:"ݖ m^쓧-b*}S Q\ľyϧj,ȳ:(9t*$'Vί^ɉ=-䳰'hSյFO:݀Tvic;Cw6_V<&'bkѧB(_Y~Fds5D͓Ƞ5>mBH.TX?W {ș- ̌?LZ,(ZO/sAXH呢 >$mdt5jх9_BUf#cj]Q  @݇ae9ܙ`=9Iv :Yts6hxsʪ]MMyZ¨bF9!r/a"5=˥Y[$iAn[}1X'We꽍Ms!-J9@}j+cd3Ҽ 'hη8Ԏ4k o۩Km(95=I*2N+!8ɯuUŵ8c rsՍ7Dc;qԑUa1kI->U_YN 2D,C?CyjPN;1^KTŒB0qNWdӌih1U1֒*.OaLT)H}ܬG9JJ7c= 6p Ȭ-11EOj@pwi1\f)Z vqOW#8 ^(\SSM ND ~zqQcpT,dSgj`xLBEHiVƁRPAUF-W|':?֤X,3Ucѫ`.Nӿܶ SBzމ%R02ǭUT"nŎ3Y"&q?Jr,ښVа˽aOlrœ#P V@;SZX<jM!9!z\R5J̱?Cĝϭ(;ԕP ]y{TC5ǿ!tQN-P-MQYv/m&z: THu!ʻ%^B~fKGWyf ֬s2GI3`Tj7"=oN5jIs˻d*UA5\ȗ5vt!rE2+F#ȴh\$OJ⭇n݊tf;OJ.;Q)ZWs̤c!Wahjr2)yCVb*uDQGjX6"e{ҐebJ#1z ep a{3$j_cfkŘnf*Os6Qv+*"1ƭH$gp!ݸ8wzU-z=`5$8QcU5qF|2zfeF>ՌQd:/Le9~d })7}Ȧy91u;YH5f#)G=jxN2B{nQCa:I$2I3Z⥩%bORD+&vd #TH85($qšj'Э֒A ǭ%fXQE)QF8(q`lPM;;W,ƣXhrl4<ǃ(\Sr}ii4dzQb CFB\(=A \Td Q5(U"XqVQU\V.FUHN1 ' }zDZ4B (gP BL̚g" OgR\rZkWbϽ*2cZVA7ibrrwѶ$dT1֘S$IH!cS]=_3 W?7B@✰c#IlOW "pCP2*=czИR¦$Y#'%Oq\地%I_v)cfo$dV΄"*(Uz3)sAiG Moɢc@YV 󮄓.^98-N^28բ%ٗKnMOi-UFɋT,xہY1 qԷ"皤[55'ɥP$ޜx$zVw.śyJ SfI#КmbB@F9sګ&ڗu)!dIHhgY#$#p='9}>Ό[J0zR^rFL/v'0`9>}w/L88g@,e=̫hlF7x’@DI#zԻVyH$W62U}Sۡ]n䃳qU[MIyHXEfA=qkI*t?]Aɹ;m ңjɀfAqy S\H$U$+ԄK08.Vɗ7g ZA IŸsL܉B^*$7+Өd0EZKBv6@XEC8e{4S i973z*7]9>TY[9SUʋU-1Z;23- 2sЎ? tVefDwBt 2Rlf'5!TTZ39 S"G=i }sYYtG8Brz SP6:AⳑhJ^ƥh[P!#(atEtk$X߀Ċ0Zo@̀aG5XkB4YK F TЄQPq:{ҁמ`p#4(QM+-: T*qZtfݙTIOe9jlU3J#4sKG5:5QZE؇ *6Wj)JHu!4$񞔯qMԻ4M+<] *{W,ZiWc8GϡQ(ǬuE9~5ډ[8\ .--OΘgRVsM+x8*P6T8 * ~b Qt=1:b9l8ʐe SB[st ڞ >UWcO& - ֤ `N9P FOy 23GS ^/S~X6j}R=sY.ۍiI4S沫nM.mH))i*J$Z\c<{UXq[Aɒ6 ]q*( UkYlDJOбt>fCXl5Yv6Ozji掕7ԫhjYb =dVFH7a tͶu$"UJ]0~+K(9s{PB=OLwFAߜc1wierxFՒi(lG9(i)$õnCJ#Ү%8w))kJM(<y>Ձ~ıkbsYq݌ץ(0w$ٕ 90F j\GЙA=3WKRf6Yǭl 2 qɕV0e1Sh\ =BQRh].jȊoaNgx(\[ {砭eWʠ7dPs馆 WQ9;E9J:kH8 8z Ҏ%B XLtM]ija*wF%͏&DPv#j"*t~fjʑ}2kh đVncGFCk(1Gz邫Or&~K2HGҴwh]UIl !EEUfQo ijE2@aX=j:9p<~^VP%©:&%w5I sޱm[$4bJ-'>W5ך6l'6eݜ ӯydf$];dbm"a"ޝri\Aa/\dF8 u[ 1nK[JK@Y0\ϯcj|8=B2BFܫ+8c:#-1隁jg^j&!!PQ$`玕vIOr5Vќ8c uYg'ҡ|kI"^EF}Cq5sshQE@5vle:\ͯ'KHKuNGNks4aUݸs鱠I`v+DEadP;W%+?*Qm.Pڰ NR.XyV ?z(#2ip3E0pyzv9LV&2 O4az6U6$IOLNT1JX,3GNOJ=d!O'i˴ZnN`sRb{ƁOm5I؄Q5HAcQ 4w!i@|i6+IԻ  9:RCU/Ȍ;pǠ#z⣜9,}܊G$T8n-J H&{&{.ynFHנH9y?Au&@gr>Ib`v%2qՉ 6 W8.w{ uF)=8"bf*V,Mf d#v5iA ,Oq֫]OQޔCdL7 :~dܼҬ[pHzːɞgJ2 ( Ty #7RAZ{"m#0dWIR1-tm 9@M4B{I$fjYHN4O>I4wm T\gjg7L{zT+iKm5 Y@U%#|WUޤc̓~B2 TM5HaM}{^560XR&?$L6A7dsj7b9#n=2{}*.ŰN=+RtӓݞMys;v3f FBnn#nP{&I(vnB3#*U'&Pr֡"À8w8vƟtRSt\)52ŁSV$?zrMUwLRWڪOV\dKE j'"zԏFE[Wԋجq1M Rc'.Sb:أۜ(UAF+azҫ C@0ETvȌEu RdEc.88Zq7a\4{%hf1M6!C֡8\Vfܞ堑[S-ڨB?x0pu]K ">Q|tRdd.<jL|ZPGo[3U$we)`pI +6¨LanK` j'Vjkܷ lТ۲CsWe=r:uDpc# 7=GZа-*x:sVjKgTֱ#+cy0Rr{b]LMls폥A=\jQKlSnB]ɫs11޳'֛3/sZ=1sR[ٔQ*6V1MI.UYnI9Â(8❲4uJ9hD[۞}|3*#uEv1'dS)Tk+ib@1N4B%C8K/?SLnjڞSЮhF=)ӥ˶NqS >jm KM;ڝTEqYZdoQԬ5 bH]f\p\g;F8$VO=i ޴LgB nZ?f& ǏZrGL\ʍ$ܹo~t#a 5 PұikxpVӌdg#hY*ƼBvVucV<.h;3ӭ&ITDL\WT\W$="uGAီaBVBa5%t%rٝi|U@8\s ul =4sqF~ֲ5&!haFcO9ORB&2VL̻ktAJ$x:zS@n0;W}[( ȭ KXn1\;!IcpZ2Js]4js.VaR|ȝIW"/3RB=R1l[%HU|on޴o'h[ҩl[+72w4WϖEW:q OymT>rt>ЎKER3K-̒E,)b IErNMfPQKc)RR@RLR`ZF*,s 4fEb&N?&MkЂ& TQE!R,қث\&j T⫚bA CcJdVZl_ 'wNN*"=MlEדK!xaŽJη*Z+j4V>毁,a}jG`sjkT'RZG* ȣ$cUFy$Ui$Xs}fLBد8эԗOQiXƇJsI^}I;QVAETQE"N 4d"6~ipkDht6UJ8̚:^aM"NO҇q9>cQS3E&G,ATϜO@P-;"󧍑Hݎݨ28 G=l])6oQܖ1b[k;4JJN aݜ摲y`*1n3(r 4mM],*O08.25%)_rO↌-28Y|z|3qU]IZ4GG(HTQR2慌Շ)zbO,Qw<{V xڌhKԜ("xIڦb}ۊk%0>)1Y$sVң+RRe]c0QUy`: T8sM*EX)TMJM45.#1 JpڎV"qW,oPz HJwBv:azz'ɲAcڲB\./!3M$E$jZKG%Z~tPryoNFҨ2bt4)sk늶E (ȅH9ӭ)G,8cJ4 S稪1[g*9>lp(l9SiqM")rwGBO(R!@jS㎕V3lR/ZI5&i@-! 0RMFVmԻB4Jx9UԄ~|ˤ wڥ'h>@0xo*7s]ouom(Xĥ@'qLqOKhDtA;x9R/bbT\ z^01/{xϗ;0, Ҧ0ɴsZ$pGȹc')#)_N055'l*:P{5lnE '߳)*T42WsG[we5$KS*:#M531GJ> U)!8Oesey_Z_JFIOKN8u5"i㚤m%''Owjb2;D1Ҙbq|68)!s0ǻzE8>2qP.I'QbG,G vN·r};z.G4D#cA\ Fj}\yLR$P>#2ǧKqNs7l1Iާ\+19 SmX(jnhEs94^{ރ1< JD9"Il sqb}M1#O-*Bfm) d ѶarAOVzNPnuPH**|t^Q_rk5TiRkQ'^npktȄcvIYV'!./iu75\+NBDOVW)Rj}W}iCJbyIdSxϵGw #4ƒ]ԌnܜSY9~3B\hVҬy }%a#N$+D J\ ƙva\5=ND|ѵyd,3s79j ֍0=F&҆1-v (40OJC z7i-%ݽ찍ҳA9#֑"QGOiKf ۗX8ȪS>Ĝ|ueuVFKS6vܬ}8j'UAI(<W3;XU-~amdecrN)՗45'^+b0'ԉ(Seຎ>-I'pJj=DWngޮ[ꗶRnvЎH Da榈%MR ؆">5W1;mC܁Q> .>2zmZk!r B #iC $'504Tdg8Z:Sfǭ=QakR(fݩpT.M2~4.[ niiuʳ) {{a{2ܺ_)$nOQ23u4ܟZU+51<i$Ce$M;AE, ?JabĒzQI`),3sOkjERJDf"erSiRc%iG=iW9ϭ6.vC3J% @I&cl!fKi$]՝ +e%}_sQ%e;UN:ҫZ<1ϒ֭k.Va$27SQTk o_;J]Q*teڤ{ (tb>֣5WKPzf$214 L(mNy(&(Ezxp{4ԘYW8S(JqkHȗeujJNƥV F:$F08`s۽5؃GjNR*Ɠ(\9\C-y):֫3K43M,M3p.EM; %0?J wejJ\ғi銁M%KJ&(v0}i2{E-@3Gz)vJ) 8(iGg4Szkʟyj]9Oڣw֎sJ0E5v+p킿Yx1k&KC&2>)R){Rä)J U֏#D%{fT[W!I8)5o2 TW-{eTHY} A]LZ k~E,T ]fk"ExP {{8-Gy2iLC_Mi422}USALXK=HW>lT#c~htْq/*8]*liD5儚Ev|<$$_qYfXpIc(z j!Ա4%Mk=Ol~.U옽J r@G#<^_Zӯ^6גvc#Wg03X`,1XzF?ZIGIHq#sڕa-ڽ]lS,JH>8qɞDvXT)Rݲ?DxZt2(ɩE9Y%N / o~]LPƠDT$޶5hz/4r{nFui)Z@Q&ɧ2s튈Z2W>4a 8! s' h\H.R$]1ڗ;36'u(zZR핲(w\$>I̱\!SD9.Jomj]>^[Zېp}|U ?~_]Kl ފ#OW{07 !t߄Ӝ==dQ($I YȩESAr.>"5 D c|אqZ'CKH'E$1C$^NCMzW Cji4鿉R-ѷ#oǵr/+PuG*moa>u=5?{}:K6o ;>WWUhgEbH8gZ`9Q+H.Ịx2 ܵ#DsB\zin혧oxKPЈl0уQ2mH51~u 犖B22ӽԇ~g sQʊ,5)U9 >#] -V£e:qVѷp*'qUFHuIr)U/ o*L̥sJ/V%zT60Ks_Q5K%tG}NXr>? X Xؒҵn~ ٷne?N-Fc f!ǦFh{0z!֯oozh~ vw1?_JkE'cžڃf砯`,u &ޟ)[!$d,i?s`^ǒ *Cv- Y6FA5V o)ż0 Hn|/ E0 \EJbXIh!bv7'gYU+~uBAʫ_x{LH7:}:4Ʋ" қZH1tV%dLEI[8=99*ï ]dm.4b1~J@&,Js汧OO0Fε4ٟu=dQ N7IJGQTEߝ?k6gjnjZeHwv{\ 4[w&XU-?tWh;5N|\l|v.3EtM3RVFAUK?>51JKݺ4ST}aR89alYz4:*xP}x5}n7F>Z:G*VԦp#b^hr*]yT^F{]N$'U. 5PG=^'O<ӕBPl٦y<t,O{1%NQfC(`t>)8hqlhSXF@ڎw}^?zr1F*}.~B-o6;o"Z!>8]&XhED cPρdh`AK1F+6vaEqZi$9~j=P>øǻJ'm lZ\Hz@@{`HQUB{dFuhhVQΌH%{7hEmeg |ξ$ gGkwJ Ve?kLӏƎ=i&84c#9@ A@ǥ(鎔;MeWRA*8jJEƏhI(\MHtebv>dcd^= hltG^R\r''?QXN2i x"QG֏J((zQF LL9 (Š(QFhu%;3A4\3@QE)QE'" E&h`蠌 ?ɠbMFOZV * ?#)ON~P1sXi+iw+LJ\n#:EMy 'I64JLp:c1G=KF.,-Uʌ$`;`G^^oer̒V_2@NF$n+PH6IL={e )+3?[ws#\[>g 1oVB\Aq\W++d` QZ,ETr}-k:Fvk6t$ST߈2viv̎?J *W?WuVh[(_y*\c%8%f{сkΒRdA"r>_NXJ^!h(@bbM< @ǩd9.J7Uon c=pJW)>6Op%,!Q-6G4G!FLKh#g!26-UCy22I  d\(7ҥSN h. яΐ'4Bn' dqԪFSZ޳Ns?CO&sI\`JSIRN+?9 ~ 9EUSA9@ 8яjҀQ8d~ncғJ_@(>}hQǭRtF?isNQa Z("?M\J1GdzRn4Rn4QGPE?@(>dE8'Z((?:?'J\Qa1F(G>qXPj1F}?OҋXUOdiaFیgۥ\.+.<˰x&3jisakd=O'5KH,r ]rmʼ̛pcq|Vz0:Jf~Bɽv}pI?ηx3'4Bn12Uxq@`R Evs!bOኽF3./citylights_icon.jpg0000644000175000017500000002367414576573022015061 0ustar anthonyanthonyJFIF ExifII* z (1 2iNIKON CORPORATIONNIKON D70sGIMP 2.6.112012:02:11 12:08:41'0210    0100dd# 2005:07:06 22:20:20$ 4<(DHHJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222dd" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?uZ-8GRW6# vڔF=:.2#q{S{U*"+la^UU J{Rl^V(6{QVE tL"u7!G`-8RͬbֺtwOϧAҾu?vv;okKUM GԙkasyhOOFQF.K,3 V'}[(ZF$3`ns9S:hHw%Iokj:#eg_ 7895͖<`WYw]|,GA5;"HwC,E;ne:R3Tk }Քy tT!kI]٭qgc"$SY~fv#!ø]@aL&Tis9J[mʢaB3(ڣٔ ֟:bd9CE=V\Ph 332ȈU`F1Ƒyjc$*&tVϺP~q-EOF»Lw6Hzqڊ+ "V?/JOz(or@Q\5'(e#ȹ֊) (Rdu4QECnIhttp://ns.adobe.com/xap/1.0/ 3.1 DSC_0020.NEF As Shot 4400 -4 True +1.55 True 0 True 100 True +30 0 25 0 25 0 0 0 0 0 0 0 0 0 0 Medium Contrast ACR 2.4 True False 0, 0 32, 22 64, 56 128, 128 192, 196 255, 255 2/1 -1/1 35/10 361471/100000 2005-07-06T22:20:20-04:00 0/1 36/10 5 18/1 27 3008 2000 65535 36864,40960,40961,37121,37122,40962,40963,37510,40964,36867,36868,33434,33437,34850,34852,34855,34856,37377,37378,37379,37380,37381,37382,37383,37384,37385,37386,37396,41483,41484,41486,41487,41488,41492,41493,41495,41728,41729,41730,41985,41986,41987,41988,41989,41990,41991,41992,41993,41994,41995,41996,42016,0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,22,23,24,25,26,27,28,30;F0EA45BB385AA6818023354458EC5024 640 18.0-70.0 mm f/3.5-4.5 NIKON CORPORATION NIKON D70s 3008 2000 2 2400000/10000 2400000/10000 2 1 256,257,258,259,262,274,277,284,530,531,282,283,296,301,318,319,529,532,306,270,271,272,305,315,33432;A79E433B96AED93FC6EB498198DCD99E 8 8 8 Ver.1.00 2012-02-10T17:04:26-05:00 2005-07-06T22:20:20-04:00 2012-02-10T17:04:26-05:00 image/jpeg 3 Adobe RGB (1998) xmp.iid:D0C54E323354E111885FECED0D41C93E xmp.did:CFC54E323354E111885FECED0D41C93E C      C  ""   dd5!1AQ"aq2BR#r.!1AaqQ"2r ?XzQ @d!L) (w?QeLRdVII,6I rR+rJؠ-2B~P@ d_j{*QN=@f{$?6p8i[]D ߦcT] Z"L3OqDGѼ!|8ըkHsNuRv;:C]&/ ThU>}G65护HlDu!P8)/*R=̈́?lfdsUNt/=ZN8>r'՛KM: Ş4./-;d1J?^ޓWOsagiLZ?cAZg7o,w۲ɳCiJMqĹe^XïcyZ++wTKujqh#C? o ,s*'n zM0g].&7ce}?3Yxw'|*:ߌR/q%1ǀ?#+B_3iŮcsG}@PYK$W@9}CWJ]4?۞(w\\/ oI؂ ʊvoeGz59]x~OR>%qq}I2ւZII1t^,&9$Tkw\%i<ʭ~xᵚz-F3\{ہsN}铸 %Qo_ǹs͹pu`@$M8w1Kl^2<3~Hq "z  %DTH)g@#Y$kŮ-#4G`ORIGAn3ZNIc:IrmoZS|ICR /O ydFU d=glXxʼ];ET1$N:%>.Aww~ ?U2垘cA>bh}Ч[0?l*Zg TOs.*i$wiVgyểsN*DF6 @ >d+RO9n},3v"R$5=Ou]M^ E}%v &1_//u,G3&qt6:LNܟy^U}Rñsf&HǒcL3Đ[ 4S0"/ @T;<47F~,5*R ActualDateOut then begin Fail('MacroWeekDay failed.' + NL + 'INPUT DATE: ' + DateIn + NL + 'WEEKEDAY: ' + WeekDayToString(WeekDay) + NL + 'FIRST/LAST: ' + BoolToStr(FirstOrLast, 'First', 'Last') + NL + 'OUTPUT EXPECTED: ' + DateOut + NL + 'OUTPUT ACTUAL: ' + ActualDateOut); end; end; procedure TTZTestCaseUtils.TestMacroWeekDay; begin CheckMacroWeekDay('2019-01-01 00:00:00', '2019-01-01 00:00:00', eTZTuesday, True); CheckMacroWeekDay('2019-01-01 00:00:00', '2019-01-01 00:00:00', eTZTuesday, False); CheckMacroWeekDay('2019-01-01 00:00:00', '2019-01-07 00:00:00', eTZMonday, True); CheckMacroWeekDay('2019-01-01 00:00:00', '2018-12-31 00:00:00', eTZMonday, False); CheckMacroWeekDay('2019-03-01 00:00:00', '2019-03-03 00:00:00', eTZSunday, True); CheckMacroWeekDay('2019-03-01 00:00:00', '2019-02-24 00:00:00', eTZSunday, False); CheckMacroWeekDay('1952-10-28 00:00:00', '1952-11-02 00:00:00', eTZSunday, True); CheckMacroWeekDay('1952-10-28 00:00:00', '1952-10-26 00:00:00', eTZSunday, False); end; procedure TTZTestCaseUtils.CheckMacroSolver(const DateIn, DateOut: String; const MacroCondition: String); begin CheckMacroSolver(TZParseDateTime(DateIn), TZParseDateTime(DateOut), MacroCondition); end; procedure TTZTestCaseUtils.CheckMacroSolver(const DateIn, DateOut: TDateTime; const MacroCondition: String); var TZDT: TTZDateTime; DateOutTest: TDateTime; begin TZDT := PascalDateToTZDate(DateIn); MacroSolver(TZDT, MacroCondition); DateOutTest := TZDateToPascalDate(TZDT); if DateOut <> DateOutTest then begin Fail('MacroSolver failed.' + NL + 'INPUT: ' + TZFormatDateTime(DateIn) + NL + 'MACRO: ' + MacroCondition + NL + 'OUTPUT EXPECTED: ' + TZFormatDateTime(DateOut) + NL + 'OUTPUT ACTUAL: ' + TZFormatDateTime(DateOutTest)); end; end; procedure TTZTestCaseUtils.TestMacroSolver; begin CheckMacroSolver( '2015-10-01 00:00:00', '2015-10-25 00:00:00', 'lastSun'); CheckMacroSolver( '2015-10-01 01:00:00', '2015-10-04 01:00:00', 'firstSun'); CheckMacroSolver( '2015-10-01 02:00:00', '2015-10-11 02:00:00', 'Sun>=5'); CheckMacroSolver( '2015-10-01 15:00:00', '2015-10-12 15:00:00', 'Mon>=12'); CheckMacroSolver( '2015-10-01 15:00:00', '2015-10-21 15:00:00', 'Wed>=15'); CheckMacroSolver( '2015-10-01 15:00:00', '2015-10-04 15:00:00', 'Sun<=5'); CheckMacroSolver( '2015-10-01 15:00:00', '2015-10-12 15:00:00', 'Mon<=12'); CheckMacroSolver( '2015-10-01 16:00:00', '2015-10-14 16:00:00', 'Wed<=20'); CheckMacroSolver( '1952-10-01 00:00:00', '1952-11-02 00:00:00', 'Sun>=28'); end; procedure TTZTestCaseUtils.CheckFixTime(const T1, T2: TTZDateTime); var TT: TTZDateTime; begin TT := T1; FixUpTime(TT); if TT <> T2 then begin Fail('FixUpTime failed.' + LineEnding + DateTimeToStr(TT) + ' <> ' + DateTimeToStr(T2)); end; end; procedure TTZTestCaseUtils.TestFixTime; begin CheckFixTime( MakeTZDate(1993, 3, 28, -3600*48), MakeTZDate(1993, 3, 26, 0)); CheckFixTime( MakeTZDate(1993, 3, 28, -3600*25), MakeTZDate(1993, 3, 26, 3600*23)); CheckFixTime( MakeTZDate(1993, 3, 28, -3600*24 - 1), MakeTZDate(1993, 3, 26, 3600*24 - 1)); CheckFixTime( MakeTZDate(1993, 3, 28, -3600*24), MakeTZDate(1993, 3, 27, 0)); CheckFixTime( MakeTZDate(1993, 3, 28, -3600*24 + 1), MakeTZDate(1993, 3, 27, 1)); CheckFixTime( MakeTZDate(1993, 3, 28, -3600*12), MakeTZDate(1993, 3, 27, 3600*12)); CheckFixTime( MakeTZDate(1993, 3, 28, 0), MakeTZDate(1993, 3, 28, 0)); CheckFixTime( MakeTZDate(1993, 3, 28, 3600*24 - 1), MakeTZDate(1993, 3, 28, 3600*24 - 1)); CheckFixTime( MakeTZDate(1993, 3, 28, 3600*24), MakeTZDate(1993, 3, 29, 0)); CheckFixTime( MakeTZDate(1993, 3, 28, 3600*24 + 1), MakeTZDate(1993, 3, 29, 1)); CheckFixTime( MakeTZDate(1993, 3, 28, 3600*48), MakeTZDate(1993, 3, 30, 0)); end; procedure TTZTestCaseUtils.TestCompareDates; begin CheckEquals(0, CompareDates( MakeTZDate(2015, 1, 1, 0), MakeTZDate(2015, 1, 1, 0))); CheckEquals(-1, CompareDates( MakeTZDate(2015, 1, 1, 0), MakeTZDate(2016, 1, 1, 0))); CheckEquals(1, CompareDates( MakeTZDate(2015, 2, 1, 0), MakeTZDate(2015, 1, 1, 0))); CheckEquals(1, CompareDates( MakeTZDate(2015, 1, 2, 0), MakeTZDate(2015, 1, 1, 0))); CheckEquals(0, CompareDates( MakeTZDate(2015, 1, 1, 60), MakeTZDate(2015, 1, 1, 60))); CheckTrue( MakeTZDate(2015, 1, 1, 0) > MakeTZDate(2014, 1, 1, 0)); CheckTrue( MakeTZDate(2015, 12, 30, 0) < MakeTZDate(2015, 12, 31, 0)); CheckTrue( MakeTZDate(2015, 12, 31, 3000) = MakeTZDate(2015, 12, 31, 3000)); end; procedure TTZTestCaseUtils.TestWeekDay; begin CheckTrue(eTZThursday = WeekDayOf(MakeTZDate(2015, 12, 31, 0))); CheckTrue(eTZFriday = WeekDayOf(MakeTZDate(2016, 1, 1, 0))); CheckTrue(eTZSaturday = WeekDayOf(MakeTZDate(2016, 7, 2, 0))); CheckTrue(eTZSunday = WeekDayOf(MakeTZDate(2016, 7, 3, 0))); end; procedure TTZTestCaseUtils.TestTimeToSeconds; const SecsPerHour = MinsPerHour * SecsPerMin; SecsPerDay = HoursPerDay * SecsPerHour; begin CheckEquals(TimeToSeconds('1'), SecsPerHour); CheckEquals(TimeToSeconds('-1'), -SecsPerHour); CheckEquals(TimeToSeconds('1:05'), SecsPerHour + 5 * SecsPerMin); CheckEquals(TimeToSeconds('-1:05'), -(SecsPerHour + 5 * SecsPerMin)); CheckEquals(TimeToSeconds('00:00:30'), 30); CheckEquals(TimeToSeconds('-00:00:30'), -30); CheckEquals(TimeToSeconds('00:30:00'), 30 * SecsPerMin); CheckEquals(TimeToSeconds('01:00:00'), SecsPerHour); CheckEquals(TimeToSeconds('23:59:59'), SecsPerDay - 1); CheckEquals(TimeToSeconds('24:00:00'), SecsPerDay); CheckEquals(TimeToSeconds('-24:00:00'), -SecsPerDay); CheckEquals(TimeToSeconds('24:59:59'), SecsPerDay + SecsPerHour - 1); CheckEquals(TimeToSeconds('25:00:00'), SecsPerDay + SecsPerHour); CheckEquals(TimeToSeconds('-25:00:00'), -SecsPerDay - SecsPerHour); end; procedure TTZTestCaseUtils.TestInvalidTimeToSeconds; begin CheckFalse(TryStrictTimeToSeconds('')); CheckFalse(TryStrictTimeToSeconds('test')); CheckFalse(TryStrictTimeToSeconds('100')); CheckFalse(TryStrictTimeToSeconds('59')); CheckFalse(TryStrictTimeToSeconds('59:59')); CheckFalse(TryStrictTimeToSeconds('25:00:01')); CheckFalse(TryStrictTimeToSeconds('25:59:59')); CheckFalse(TryStrictTimeToSeconds('26:00:00')); CheckFalse(TryStrictTimeToSeconds('-26:00:00')); end; function TTZTestCaseUtils.TryStrictTimeToSeconds(const ATime: String): Boolean; begin try TimeToSeconds(ATime, True); Result := True; except on E: TTZException do Result := False; end; end; initialization TTZTestSetup.DatabaseDir := TZ_DEFAULT_DATABASE_DIR; TTZTestSetup.VectorsDir := TZ_DEFAULT_VECTORS_DIR; TTZTestSetup.VectorFileMask := TZ_DEFAULT_VECTOR_FILE_MASK; TTZTestSetup.LoadedVectorFiles := TStringList.Create; TTZTestSetup.LoadedVectorCount := 0; RegisterTestDecorator(TTZTestSetup, TTZTestCaseVectors); RegisterTest(TTZTestCaseUtils); finalization FreeAndNil(TTZTestSetup.LoadedVectorFiles); end. ./startupoptions.pas0000644000175000017500000000403114576573021014770 0ustar anthonyanthonyunit startupoptions; {$mode ObjFPC}{$H+} interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls, SynMemo, appsettings ; type { TStartUpOptionsForm } TStartUpOptionsForm = class(TForm) UDMArgumentsLabeledEdit: TLabeledEdit; StartUpSettingsEdit: TLabeledEdit; StartupInstructions: TMemo; SynMemo1: TSynMemo; procedure FormActivate(Sender: TObject); procedure StartUpSettingsEditChange(Sender: TObject); private public end; var StartUpOptionsForm: TStartUpOptionsForm; procedure fillview(); implementation uses Unit1 , header_utils ; { TStartUpOptionsForm } procedure fillview(); var File1: TextFile; Str: String; Filename:String; begin Filename:='commandlineoptions.txt'; {Display Filename } if FileExists(appsettings.DataDirectory+Filename) then begin AssignFile(File1,appsettings.DataDirectory+Filename); {$I-}//Temporarily turn off IO checking try Reset(File1); StartUpOptionsForm.SynMemo1.Clear; repeat Readln(File1, Str); // Reads a whole line from the file. StartUpOptionsForm.SynMemo1.Lines.Add(Str); until(EOF(File1)); // EOF(End Of File) keep reading new lines until end. CloseFile(File1); except //StatusMessage('File: changelog.txt IOERROR!', clYellow); end; {$I+}//Turn IO checking back on. end; //else //StatusMessage('File: changelog.txt does not exist!', clYellow); StartUpOptionsForm.Show; end; procedure TStartUpOptionsForm.StartUpSettingsEditChange(Sender: TObject); begin StartUpSettings:=StartUpSettingsEdit.Text; vConfigurations.WriteString('StartUp','Settings',StartUpSettings); end; procedure TStartUpOptionsForm.FormActivate(Sender: TObject); var i:integer; s:string=''; begin for i := 1 to paramCount() do begin s:= s + ' ' + paramStr(i); end; UDMArgumentsLabeledEdit.Text:=s; StartUpSettingsEdit.Text:=StartUpSettings; end; initialization {$I startupoptions.lrs} end. ./correct49to56.lrs0000644000175000017500000064421114576573022014236 0ustar anthonyanthony{ This is an automatically generated lazarus resource file } LazarusResources.Add('TCorrectForm','FORMDATA',[ 'TPF0'#12'TCorrectForm'#11'CorrectForm'#4'Left'#3#28#6#6'Height'#3#154#1#3'To' +'p'#3#148#0#5'Width'#3'['#3#7'Caption'#6'$Correct DL firmware 49-56 .dat fil' +'es'#12'ClientHeight'#3#154#1#11'ClientWidth'#3'['#3#21'Constraints.MinHeigh' +'t'#3#4#1#20'Constraints.MinWidth'#3'V'#2#9'Icon.Data'#10'B'#8#1#0'>'#8#1#0#0 +#0#1#0#1#0#128#128#0#0#1#0' '#0'('#8#1#0#22#0#0#0'('#0#0#0#128#0#0#0#0#1#0#0 +#1#0' '#0#0#0#0#0#0#0#1#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#2#0#0#0#3#0#0#0#3#0#0#0#3#0 +#0#0#2#0#0#0#3#0#0#0#2#0#0#0#1#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#1#0#0#0#3#0#0#0#6#0#0#0#10#0#0#0#13#0#0#0#17#0#0#0#22#0#0#0#26#0 +#0#0#30#0#0#0'!'#0#0#0'#'#0#0#0'$'#0#0#0'#'#0#0#0'"'#0#0#0'"'#0#0#0'!'#0#0#0 +#30#0#0#0#28#0#0#0#24#0#0#0#21#0#0#0#17#0#0#0#14#0#0#0#11#0#0#0#7#0#0#0#4#0#0 +#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#3#0#0#0#5#0#0#0#9#0#0#0#14#0#0#0#21#0#0#0 +#30#0#0#0''''#0#0#0'1'#0#0#0';'#0#0#0'D'#0#0#0'M'#0#0#0'U'#0#0#0'['#0#0#0'a' +#0#0#0'd'#0#0#0'e'#0#0#0'e'#0#0#0'd'#0#0#0'b'#0#0#0'`'#0#0#0']'#0#0#0'X'#0#0 +#0'R'#0#0#0'K'#0#0#0'D'#0#0#0'='#0#0#0'5'#0#0#0'+'#0#0#0'!'#0#0#0#25#0#0#0#17 +#0#0#0#11#0#0#0#7#0#0#0#4#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1 +#0#0#0#5#0#0#0#11#0#0#0#21#0#0#0'!'#0#0#0'.'#0#0#0'>'#0#0#0'N'#0#0#0'^'#0#0#0 +'m'#0#0#0'z'#0#0#0#138#0#0#0#148#0#0#0#158#0#0#0#168#0#0#0#173#0#0#0#179#0#0 +#0#182#0#0#0#182#0#0#0#182#0#0#0#183#0#0#0#181#0#0#0#179#0#0#0#176#0#0#0#169 +#0#0#0#166#0#0#0#158#0#0#0#149#0#0#0#142#0#0#0#130#0#0#0's'#0#0#0'd'#0#0#0'T' +#0#0#0'C'#0#0#0'4'#0#0#0'('#0#0#0#28#0#0#0#17#0#0#0#9#0#0#0#4#0#0#0#1#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0 +#0#9#0#0#0#20#0#0#0'$'#0#0#0'8'#0#0#0'N'#0#0#0'c'#0#0#0'z'#0#0#0#144#0#0#0 +#160#0#0#0#176#0#0#0#189#0#0#0#199#0#0#0#209#0#0#0#215#0#0#0#221#0#0#0#226#0 +#0#0#228#0#0#0#231#0#0#0#233#0#0#0#233#0#0#0#232#0#0#0#234#0#0#0#231#0#0#0 +#231#0#0#0#231#0#0#0#225#0#0#0#227#0#0#0#221#0#0#0#216#0#0#0#213#0#0#0#203#0 +#0#0#195#0#0#0#183#0#0#0#166#0#0#0#149#0#0#0#130#0#0#0'p'#0#0#0'\'#0#0#0'G'#0 +#0#0'2'#0#0#0'!'#0#0#0#19#0#0#0#9#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#2#0#0#0#8#0#0#0#17#0#0#0' '#0#0#0'4'#0#0#0'M'#0#0#0'g'#0#0#0#129#0#0#0#155 +#0#0#0#176#0#0#0#193#0#0#0#211#0#0#0#219#0#0#0#229#0#0#0#236#0#0#0#237#0#0#0 +#243#0#0#0#245#0#0#0#247#0#0#0#249#0#0#0#250#0#0#0#251#0#0#0#252#0#0#0#252#0 +#0#0#251#0#0#0#253#0#0#0#252#0#0#0#252#0#0#0#252#0#0#0#249#0#0#0#250#0#0#0 +#248#0#0#0#246#0#0#0#246#0#0#0#240#0#0#0#239#0#0#0#233#0#0#0#222#0#0#0#213#0 +#0#0#201#0#0#0#186#0#0#0#170#0#0#0#149#0#0#0'{'#0#0#0'c'#0#0#0'I'#0#0#0'2'#0 +#0#0#31#0#0#0#17#0#0#0#7#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3#0#0#0#11#0#0#0#24#0#0#0'+'#0#0#0'C'#0#0#0']' +#0#0#0'y'#0#0#0#151#0#0#0#177#0#0#0#198#0#0#0#219#0#0#0#231#0#0#0#237#0#0#0 +#247#0#0#0#249#0#0#0#252#0#0#0#254#0#0#0#251#0#0#1#254#0#0#1#254#0#0#1#253#1 +#1#2#254#0#1#3#255#1#1#3#255#1#1#3#255#1#1#3#255#1#2#4#255#0#1#4#255#1#1#4 +#255#1#1#3#255#0#1#2#255#0#1#3#255#0#0#2#255#0#0#1#254#0#0#1#255#0#0#1#255#0 +#0#1#253#0#0#0#254#0#0#0#252#0#0#0#249#0#0#0#247#0#0#0#242#0#0#0#237#0#0#0 +#228#0#0#0#213#0#0#0#195#0#0#0#173#0#0#0#147#0#0#0'w'#0#0#0'\'#0#0#0'A'#0#0#0 +')'#0#0#0#22#0#0#0#9#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3#0#0 +#0#10#0#0#0#26#0#0#0'0'#0#0#0'K'#0#0#0'k'#0#0#0#141#0#0#0#170#0#0#0#195#0#0#0 +#215#0#0#0#232#0#0#0#240#0#0#0#249#0#0#0#253#0#0#0#251#0#0#0#255#0#0#1#254#0 +#0#2#254#0#0#2#255#1#1#3#255#1#1#4#255#1#1#5#255#2#2#6#255#2#3#8#255#2#4#9 +#255#3#4#11#255#4#5#13#255#3#6#14#255#2#7#13#255#3#6#13#255#3#6#13#255#3#5#12 +#255#3#4#10#255#3#5#10#255#3#3#8#255#3#3#7#255#2#2#6#255#1#2#5#255#0#1#4#255 +#0#1#2#255#0#0#2#254#0#0#1#254#0#0#1#255#0#0#1#253#0#0#0#254#0#0#0#252#0#0#0 ,#246#0#0#0#241#0#0#0#229#0#0#0#214#0#0#0#194#0#0#0#169#0#0#0#137#0#0#0'i'#0#0 +#0'I'#0#0#0','#0#0#0#22#0#0#0#8#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#8#0#0#0#24#0#0#0'/' +#0#0#0'O'#0#0#0't'#0#0#0#153#0#0#0#185#0#0#0#209#0#0#0#228#0#0#0#237#0#0#0 +#243#0#0#0#251#0#1#1#253#0#1#3#254#0#2#4#255#1#3#6#255#1#2#4#255#2#2#5#255#3 +#2#6#255#3#3#8#255#3#3#8#255#4#4#10#255#5#5#12#255#6#6#16#255#6#6#19#255#6#7 +#20#255#6#8#23#255#8#13#30#255#7#15#31#255#5#12#26#255#7#15#28#255#6#14#29 +#255#7#12#29#255#8#10#27#255#7#10#24#255#7#9#20#255#6#7#16#255#6#6#15#255#5#6 +#15#255#4#5#12#255#3#4#9#255#2#3#7#255#2#2#6#255#2#3#6#255#1#3#6#255#0#1#4 +#255#0#1#2#255#0#1#1#254#0#0#0#253#0#0#0#247#0#0#0#243#0#0#0#238#0#0#0#225#0 +#0#0#207#0#0#0#183#0#0#0#149#0#0#0'o'#0#0#0'K'#0#0#0','#0#0#0#21#0#0#0#6#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#5#0#0#0#19 +#0#0#0'+'#0#0#0'L'#0#0#0't'#0#0#0#155#0#0#0#187#0#0#0#213#0#0#0#232#0#0#0#241 +#0#0#0#249#0#0#1#252#0#1#2#254#0#2#5#255#0#4#8#255#0#7#12#255#2#10#20#255#4 +#12#23#255#4#6#13#255#5#5#13#255#7#6#14#255#7#7#16#255#7#7#17#255#10#5#18#255 +#10#5#17#255#10#9#23#255#10#14' '#255#8#16'%'#255#10#19')'#255#9#19')'#255#9 +#18'('#255#11#20'+'#255#11#20','#255#10#22'.'#255#9#18'*'#255#9#13'#'#255#8 +#14'!'#255#8#10#28#255#10#10#29#255#10#11#29#255#8#10#25#255#8#9#21#255#6#8 +#20#255#6#6#18#255#5#5#16#255#4#7#17#255#4#7#17#255#2#5#13#255#1#4#9#255#1#3 +#6#255#1#1#3#255#1#0#1#254#0#0#0#253#0#0#0#251#0#0#0#246#0#0#0#243#0#0#0#230 +#0#0#0#210#0#0#0#183#0#0#0#149#0#0#0'o'#0#0#0'J'#0#0#0'+'#0#0#0#19#0#0#0#5#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3#0#0#0#14#0#0#0'$'#0#0#0'E'#0#0#0'k'#0 +#0#0#147#0#0#0#184#0#0#0#215#0#0#0#233#0#0#0#244#0#0#0#252#0#1#2#253#0#2#4 +#254#0#4#8#255#1#6#12#255#2#9#17#255#3#16#28#255#2#16#31#255#4#14#29#255#7#11 +#25#255#8#6#20#255#8#6#19#255#9#7#22#255#10#9#25#255#10#8#24#255#13#5#22#255 +#12#5#21#255#11#10#27#255#12#17'&'#255#11#21'/'#255#12#24'2'#255#10#21'-'#255 +#9#20'-'#255#11#24'4'#255#13#23'4'#255#13#25'5'#255#11#21'0'#255#10#16')'#255 +#10#17'('#255#9#12'"'#255#11#13'%'#255#11#15''''#255#10#14'$'#255#10#11'"' +#255#10#10#31#255#9#10#28#255#9#11#28#255#10#11#28#255#9#12#26#255#8#15#29 +#255#7#14#28#255#4#9#20#255#2#5#13#255#2#4#8#255#2#2#4#255#1#1#2#254#0#1#2 +#253#0#0#0#254#0#0#0#250#0#0#0#243#0#0#0#231#0#0#0#209#0#0#0#181#0#0#0#146#0 +#0#0'j'#0#0#0'A'#0#0#0'"'#0#0#0#13#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#7#0#0#0#24#0#0#0'5' +#0#0#0'^'#0#0#0#136#0#0#0#177#0#0#0#211#0#0#0#231#0#0#0#247#0#0#1#252#0#1#2 +#253#0#3#5#255#0#5#9#255#1#9#17#255#2#13#25#255#4#16#30#255#6#18'#'#255#6#27 +'3'#255#7#26'2'#255#8#15'$'#255#8#5#20#255#12#6#23#255#12#7#25#255#11#9#30 +#255#11#10'!'#255#12#8#29#255#13#7#26#255#11#8#26#255#11#12#30#255#12#18'''' +#255#12#20'.'#255#12#23'1'#255#11#23'0'#255#9#23'1'#255#9#26'6'#255#13#27'7' +#255#13#25'5'#255#12#22'1'#255#12#21'/'#255#13#20'0'#255#12#17'*'#255#11#17 +'*'#255#11#18'+'#255#13#18'+'#255#11#14')'#255#12#10'$'#255#12#13'#'#255#11 +#16'%'#255#13#14'$'#255#12#15'#'#255#13#24'-'#255#12#23'.'#255#8#14'"'#255#6 ,#13#29#255#5#10#21#255#4#7#15#255#2#5#11#255#1#5#9#255#1#3#5#255#0#1#3#254#0 +#0#1#254#0#0#0#252#0#0#0#243#0#0#0#232#0#0#0#209#0#0#0#174#0#0#0#132#0#0#0'Y' +#0#0#0'2'#0#0#0#21#0#0#0#4#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#2#0#0#0#11#0#0#0'#'#0#0#0'H'#0#0#0't'#0#0#0#166#0#0#0#202#0 +#0#0#228#0#0#0#244#0#0#0#250#0#1#2#254#0#1#4#255#1#4#8#255#2#9#16#255#3#13#24 +#255#5#21''''#255#7#25'/'#255#9#26'3'#255#10#26'9'#255#11#31'>'#255#14#29':' +#255#13#18'*'#255#10#5#25#255#12#9#26#255#14#11#29#255#15#12'$'#255#14#12'&' +#255#12#10'"'#255#12#12' '#255#10#11#31#255#12#14'#'#255#15#18')'#255#11#18 +')'#255#11#23'/'#255#12#25'4'#255#12#27'7'#255#10#29'7'#255#12#30'9'#255#13 +#25'5'#255#13#22'3'#255#13#24'5'#255#15#26'8'#255#12#23'3'#255#12#21'/'#255 +#14#20'-'#255#16#21'+'#255#12#18'$'#255#13#11'"'#255#13#13'&'#255#13#16'+' +#255#12#15')'#255#10#18'+'#255#13#26'3'#255#13#24'1'#255#9#17'('#255#12#22'.' +#255#8#17'$'#255#7#12#29#255#5#11#25#255#3#11#21#255#3#9#18#255#2#6#12#255#1 +#3#6#255#0#1#2#255#0#0#1#251#0#0#0#251#0#0#0#242#0#0#0#225#0#0#0#200#0#0#0 +#159#0#0#0'o'#0#0#0'A'#0#0#0#30#0#0#0#9#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#5#0#0#0#20#0#0#0'2'#0#0#0']'#0#0#0#141#0#0#0#185#0#0#0#219#0#0#0 +#239#0#0#0#249#0#0#1#253#0#1#2#255#0#3#6#255#1#7#14#255#3#14#26#255#5#21'''' +#255#8#23'/'#255#8#22'/'#255#8#21'.'#255#10#27'7'#255#14')M'#255#12'"C'#255 +#10#19'+'#255#12#10#28#255#14#10#27#255#12#10#26#255#12#10#28#255#12#11#31 +#255#12#12' '#255#12#12'!'#255#13#13'$'#255#11#12#31#255#11#16'!'#255#13#21 +')'#255#12#21'+'#255#12#22'.'#255#13#22'0'#255#14#23'2'#255#12#26'5'#255#11 +#25'4'#255#11#24'5'#255#11#24'6'#255#11#25'7'#255#12#25'8'#255#10#23'5'#255 +#11#23'3'#255#12#20'-'#255#13#17'&'#255#13#17'%'#255#14#16'&'#255#13#13'%' +#255#11#13'$'#255#12#16'&'#255#11#16')'#255#12#16')'#255#11#16'*'#255#10#19 +'1'#255#12#25'9'#255#12#24'4'#255#9#20'-'#255#7#17'&'#255#7#16'#'#255#5#19'&' +#255#4#15#30#255#3#8#19#255#1#4#10#255#1#2#5#255#0#0#1#253#0#0#0#251#0#0#0 +#247#0#0#0#238#0#0#0#214#0#0#0#180#0#0#0#134#0#0#0'U'#0#0#0'+'#0#0#0#16#0#0#0 +#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#8#0#0#0#30#0#0#0'C'#0#0#0'q'#0#0#0#161#0#0#0#202 +#0#0#0#229#0#0#0#243#0#0#0#252#0#0#1#255#1#1#4#255#2#3#8#255#3#9#19#255#7#20 +'%'#255#8#26'0'#255#7#22'/'#255#9#16''''#255#12#16'('#255#12#14'&'#255#12#15 +'('#255#17#21'2'#255#11#17','#255#11#12'$'#255#13#11#30#255#13#11#27#255#11 +#10#26#255#13#12#29#255#13#11#30#255#12#13' '#255#12#17'&'#255#11#13'"'#255 +#12#13' '#255#13#15'!'#255#13#17'$'#255#11#16'&'#255#13#17')'#255#13#16'''' +#255#14#16'&'#255#14#19'+'#255#12#21')'#255#13#23'/'#255#13#24'5'#255#13#24 +'8'#255#12#24'8'#255#13#24'8'#255#15#28'9'#255#13#27'5'#255#10#20'-'#255#11 +#22'2'#255#13#21'.'#255#13#16'%'#255#13#14'!'#255#15#16'('#255#12#15'*'#255 +#15#18'+'#255#15#21'.'#255#12#24'5'#255#16#28':'#255#14#28'9'#255#10#25'4' +#255#9#25'1'#255#11#27'2'#255#9#24'/'#255#8#21','#255#6#17'$'#255#3#12#26#255 +#2#9#18#255#2#5#9#255#0#1#3#255#0#0#0#254#0#0#0#251#0#0#0#241#0#0#0#226#0#0#0 +#196#0#0#0#152#0#0#0'g'#0#0#0'8'#0#0#0#23#0#0#0#5#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#11#0#0#0'$'#0#0#0 +'N'#0#0#0#130#0#0#0#179#0#0#0#215#0#0#0#238#0#0#0#250#0#0#1#252#1#1#3#255#2#2 +#5#255#3#3#10#255#5#7#17#255#8#17'#'#255#10#28'6'#255#12'"@'#255#13#29';'#255 +#11#11'!'#255#14#11'!'#255#14#11'!'#255#14#8#31#255#16#7#30#255#12#8#30#255 +#13#10'"'#255#14#11'"'#255#12#11#28#255#12#10#27#255#15#12#29#255#15#14' ' ,#255#14#16'$'#255#14#16''''#255#11#13'!'#255#14#14'"'#255#15#14'#'#255#12#14 +'"'#255#12#13'$'#255#14#15''''#255#14#13'"'#255#13#13'!'#255#15#16'&'#255#13 +#17'&'#255#14#20'*'#255#14#24'3'#255#13#26'9'#255#13#24'7'#255#17#26':'#255 +#16#30';'#255#13#29'8'#255#11#25'4'#255#12#25':'#255#12#23'3'#255#13#19'(' +#255#14#17'$'#255#15#18'+'#255#14#18'.'#255#16#20'-'#255#16#21','#255#14#22 +'.'#255#15#24'3'#255#15#28'8'#255#13#30':'#255#12' ;'#255#12'!;'#255#11#25'4' +#255#11#26'6'#255#9#24'2'#255#7#20'('#255#7#19'"'#255#5#13#24#255#3#7#13#255 +#1#2#5#255#0#0#2#254#0#0#0#252#0#0#0#248#0#0#0#235#0#0#0#209#0#0#0#168#0#0#0 +'t'#0#0#0'D'#0#0#0#31#0#0#0#9#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#2#0#0#0#14#0#0#0'+'#0#0#0'W'#0#0#0#140#0#0#0#191#0#0#0#228#0#0 +#0#244#0#0#0#251#0#0#1#255#1#1#4#255#4#4#10#255#5#5#14#255#7#6#18#255#9#11#28 +#255#13#22','#255#12#27'6'#255#14'!?'#255#19'#B'#255#14#13'$'#255#14#11' ' +#255#14#11'!'#255#15#10'"'#255#15#9'"'#255#14#12'!'#255#14#11'"'#255#14#10'"' +#255#15#11' '#255#15#10#30#255#17#11#29#255#16#16'!'#255#16#18'&'#255#16#13 +'$'#255#14#14'#'#255#16#14'$'#255#15#15'$'#255#12#15'$'#255#14#15'&'#255#15 +#16'%'#255#14#14'#'#255#14#14'$'#255#16#17')'#255#13#16'*'#255#14#16'*'#255 +#14#23'1'#255#13#28'8'#255#14#23'3'#255#16#27':'#255#13#26'7'#255#11#25'4' +#255#13#26'5'#255#13#24'5'#255#12#22'/'#255#12#20'+'#255#12#20')'#255#12#20 +','#255#14#24'0'#255#13#19'*'#255#13#15'%'#255#14#15'$'#255#12#16')'#255#16 +#24'3'#255#16#31'='#255#14'#B'#255#12'"@'#255#12#25'7'#255#12#29'<'#255#12#29 +':'#255#11#25'1'#255#12#27'1'#255#10#22'+'#255#6#15#30#255#4#8#16#255#2#2#7 +#255#0#1#2#255#0#0#0#254#0#0#0#251#0#0#0#242#0#0#0#218#0#0#0#179#0#0#0#130#0 +#0#0'O'#0#0#0'$'#0#0#0#10#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0 +#0#15#0#0#0'/'#0#0#0'`'#0#0#0#152#0#0#0#201#0#0#0#230#0#0#0#246#0#0#0#253#1#1 +#2#254#2#3#7#255#2#4#11#255#7#9#20#255#10#11#24#255#12#11#27#255#15#15'%'#255 +#17#15'&'#255#18#16''''#255#16#15''''#255#13#12'%'#255#13#11#30#255#14#11#28 +#255#16#11' '#255#17#11'"'#255#14#11'!'#255#13#12' '#255#15#11'!'#255#17#12 +'#'#255#17#13'$'#255#15#12'#'#255#15#15' '#255#14#13#30#255#14#13'!'#255#18 +#18')'#255#14#18'&'#255#15#17'"'#255#15#16'#'#255#15#15''''#255#13#13'"'#255 +#14#12#30#255#16#13' '#255#16#15'$'#255#14#17''''#255#14#19')'#255#15#16')' +#255#16#17'.'#255#15#21'3'#255#11#21'1'#255#11#21'1'#255#12#22'2'#255#12#23 +'1'#255#12#22'-'#255#12#21'&'#255#11#17'"'#255#11#17'$'#255#11#18'('#255#11 +#19','#255#12#21'0'#255#13#22'0'#255#15#20','#255#16#17'('#255#15#18')'#255 +#15#17'*'#255#15#24'5'#255#13'"A'#255#12'&D'#255#15#26'8'#255#15#31'>'#255#13 +' <'#255#11#28'6'#255#14#30';'#255#12#31';'#255#10#23'.'#255#8#14#30#255#5#8 +#18#255#2#4#9#255#0#2#3#255#0#0#1#255#0#0#0#252#0#0#0#241#0#0#0#227#0#0#0#193 +#0#0#0#142#0#0#0'U'#0#0#0'&'#0#0#0#10#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#17 +#0#0#0'3'#0#0#0'g'#0#0#0#158#0#0#0#205#0#0#0#235#0#0#0#248#0#0#1#254#1#2#4 +#255#3#4#8#255#4#5#13#255#7#10#22#255#10#10#27#255#12#9#28#255#13#10#31#255 +#15#15'&'#255#18#15'&'#255#16#13'$'#255#14#11'!'#255#13#10#30#255#13#9#27#255 +#14#10#28#255#15#11#30#255#14#11#31#255#11#12#31#255#13#12' '#255#13#11#30 +#255#14#12#31#255#15#15'$'#255#15#14'('#255#15#14'"'#255#14#14#31#255#13#13 +'!'#255#13#13'&'#255#15#18')'#255#14#19''''#255#13#15'%'#255#13#12'%'#255#12 +#11'!'#255#15#10' '#255#14#11'!'#255#13#12'#'#255#14#14'$'#255#14#15'#'#255 +#15#15'%'#255#16#20'/'#255#15#26'7'#255#11#26'4'#255#12#26'5'#255#11#23'4' +#255#10#22'2'#255#11#23'/'#255#13#23'+'#255#11#19'('#255#12#21'.'#255#14#24 +'3'#255#12#21'/'#255#13#21'1'#255#12#24'5'#255#12#24'3'#255#14#19','#255#14 +#16'%'#255#15#14'&'#255#12#14''''#255#12#21'/'#255#16'$>'#255#13#22'/'#255#13 +#24'3'#255#14#28'7'#255#14#25'3'#255#11#17'*'#255#13#25'3'#255#12#22'-'#255#9 +#14' '#255#8#10#24#255#6#7#15#255#2#3#7#255#1#1#3#255#0#1#1#255#0#0#0#251#0#0 +#0#248#0#0#0#230#0#0#0#197#0#0#0#148#0#0#0'Z'#0#0#0'*'#0#0#0#13#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#1#0#0#0#18#0#0#0'4'#0#0#0'g'#0#0#0#163#0#0#0#209#0#0#0#237#0#0#0#250#0#0#1 +#254#0#1#4#255#2#5#10#255#6#9#18#255#10#13#28#255#14#20')'#255#16#17')'#255 +#13#12'$'#255#12#10'!'#255#15#13'"'#255#15#12'!'#255#14#12'!'#255#14#13'!' +#255#14#12#31#255#13#9#29#255#13#9#29#255#14#10#28#255#14#12#29#255#12#13' ' +#255#13#13'#'#255#13#12' '#255#15#12#31#255#16#14'$'#255#15#14')'#255#14#12 +'%'#255#15#14'%'#255#14#15'&'#255#12#12'%'#255#14#17'('#255#14#20'*'#255#15 +#19'+'#255#14#15'*'#255#12#13'$'#255#14#13'#'#255#14#15'&'#255#13#16''''#255 +#13#15'&'#255#15#16'('#255#14#15''''#255#13#19'-'#255#13#24'5'#255#13#27'6' +#255#11#23'3'#255#12#23'5'#255#13#24'5'#255#14#25'1'#255#15#25'2'#255#12#21 +'/'#255#13#23'1'#255#14#25'4'#255#13#21'/'#255#14#21'/'#255#13#22'1'#255#13 +#23'1'#255#14#21','#255#12#16'%'#255#15#16''''#255#14#14'&'#255#13#17'('#255 +#16#27'1'#255#13#18'*'#255#13#18'+'#255#13#20'-'#255#12#18'*'#255#12#13'&' +#255#15#19'.'#255#13#19'+'#255#11#16'#'#255#10#12#29#255#9#9#23#255#6#6#15 +#255#3#3#8#255#1#1#4#255#0#0#1#255#0#0#0#254#0#0#0#248#0#0#0#232#0#0#0#201#0 +#0#0#150#0#0#0']'#0#0#0'-'#0#0#0#13#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#16#0#0#0'4'#0#0#0'h'#0#0#0#162#0#0#0 +#211#0#0#0#240#0#0#1#252#0#1#3#254#1#4#8#255#5#12#21#255#6#12#25#255#10#12#28 +#255#15#17'%'#255#16#21'/'#255#18#19'.'#255#15#13'('#255#12#9'!'#255#13#10#30 +#255#13#10#29#255#14#14#31#255#14#15'!'#255#13#12#31#255#13#10#29#255#13#9#29 +#255#13#10#28#255#13#12#29#255#14#13#31#255#13#13'%'#255#14#13'#'#255#16#13 +'"'#255#17#12'#'#255#14#13'%'#255#13#12'%'#255#14#13''''#255#15#14'&'#255#12 +#14'!'#255#13#16'#'#255#15#21')'#255#16#22'.'#255#15#19','#255#13#16''''#255 +#14#17'&'#255#15#19'*'#255#14#20'+'#255#11#18''''#255#15#18'-'#255#12#15'''' +#255#10#15''''#255#11#19'-'#255#14#23'0'#255#11#20'1'#255#13#24'6'#255#15#27 +'6'#255#15#26'3'#255#15#26'6'#255#14#21'1'#255#13#22'0'#255#13#23'/'#255#13 +#19'-'#255#15#21'.'#255#14#20'-'#255#13#19','#255#14#19'*'#255#13#17''''#255 +#15#18'+'#255#16#18','#255#15#18'+'#255#13#18'('#255#15#16'('#255#15#15'%' +#255#12#13'#'#255#11#12'#'#255#15#14'&'#255#16#15')'#255#14#16''''#255#12#15 +'#'#255#12#13#31#255#11#11#30#255#11#9#25#255#8#7#18#255#4#4#11#255#2#2#7#255 +#1#1#3#254#0#0#1#254#0#0#0#250#0#0#0#234#0#0#0#203#0#0#0#152#0#0#0']'#0#0#0 +'*'#0#0#0#11#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0 +#0#13#0#0#0'0'#0#0#0'f'#0#0#0#163#0#0#0#214#0#0#0#237#0#0#0#250#0#1#2#255#1#4 +#7#255#4#11#19#255#13#29'0'#255#14#23'.'#255#12#12'#'#255#13#11'"'#255#12#10 +#31#255#14#12'"'#255#16#10'#'#255#15#7' '#255#12#7#28#255#14#11#28#255#14#15 +#31#255#13#14#31#255#12#10#28#255#13#11#27#255#15#10#29#255#14#10#29#255#12 +#10#29#255#12#12#29#255#14#13'#'#255#15#15'$'#255#15#15'#'#255#16#12'"'#255 +#13#12'!'#255#12#13'"'#255#12#13'#'#255#12#12' '#255#11#12#26#255#13#15' ' +#255#14#20''''#255#13#21'('#255#11#19'&'#255#13#17'&'#255#17#19')'#255#16#19 +','#255#13#17'*'#255#11#16'&'#255#11#17'('#255#9#12'"'#255#10#12' '#255#12#15 +'#'#255#12#17'$'#255#15#23'3'#255#14#25'6'#255#12#26'5'#255#12#26'5'#255#14 +#28'7'#255#15#20'1'#255#14#18'.'#255#13#21'.'#255#13#19'-'#255#14#22'2'#255 +#13#21'/'#255#12#17'*'#255#12#14'('#255#16#17')'#255#14#16','#255#16#17'/' +#255#16#18'.'#255#11#16'('#255#16#16'%'#255#17#13#31#255#15#12#30#255#13#13 +' '#255#14#11#30#255#16#13'"'#255#14#11#31#255#12#10#29#255#14#10#31#255#13 +#11'"'#255#13#12'"'#255#12#12#28#255#8#10#21#255#6#4#15#255#4#3#8#255#1#1#3 +#255#0#0#0#253#0#0#0#248#0#0#0#238#0#0#0#204#0#0#0#150#0#0#0'Y'#0#0#0''''#0#0 +#0#10#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#11#0#0#0'+'#0#0#0'b'#0 +#0#0#158#0#0#0#209#0#0#0#239#0#0#0#250#0#1#2#254#0#2#4#255#2#4#10#255#4#8#20 +#255#10#20'('#255#15#23'/'#255#16#19'*'#255#12#11' '#255#12#9#29#255#15#13'!' +#255#15#12'!'#255#14#9#28#255#13#10#27#255#12#11#26#255#13#13#29#255#13#13#30 +#255#13#11#29#255#11#12#29#255#12#11' '#255#15#9#30#255#15#8#28#255#11#11#31 +#255#12#12#31#255#12#13' '#255#13#11'!'#255#13#8'!'#255#12#11'!'#255#10#12'!' ,#255#11#13'"'#255#12#14'!'#255#13#15'!'#255#12#15'#'#255#12#19'*'#255#11#22 +'.'#255#11#22'-'#255#14#22'-'#255#14#21'-'#255#14#17','#255#14#13'('#255#12 +#12'"'#255#9#14'!'#255#11#13'!'#255#13#14'"'#255#14#16'#'#255#15#14'"'#255#13 +#16'&'#255#12#15'&'#255#11#16''''#255#11#21','#255#15#27'5'#255#14#24'5'#255 +#14#22'2'#255#13#22'.'#255#12#24'-'#255#12#21'0'#255#13#20','#255#14#18'(' +#255#13#15'%'#255#13#14'%'#255#11#12'$'#255#12#13'%'#255#13#13'$'#255#10#10 +' '#255#11#10#29#255#14#11#26#255#14#11#26#255#12#11#28#255#14#12#29#255#15 +#11' '#255#14#11#29#255#14#12#28#255#13#14#31#255#10#12#29#255#11#11#29#255 +#11#9#28#255#9#9#25#255#8#7#20#255#5#5#13#255#2#2#7#255#0#0#3#255#0#0#0#253#0 +#0#0#250#0#0#0#233#0#0#0#200#0#0#0#148#0#0#0'U'#0#0#0'"'#0#0#0#8#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#9#0#0#0'&'#0#0#0'Z'#0#0#0#154#0#0#0#206#0#0#0#238#0#0 +#1#250#0#1#3#255#2#4#8#255#4#8#15#255#7#13#25#255#9#18'$'#255#14#22'/'#255#16 +#25'5'#255#16#24'3'#255#16#18','#255#16#18'+'#255#18#16''''#255#15#13'&'#255 +#11#10'%'#255#13#12#31#255#13#12#27#255#13#12#28#255#14#11#30#255#15#10#30 +#255#14#11#31#255#13#12' '#255#14#12#31#255#15#11#30#255#14#12#31#255#15#10 +#29#255#14#12#30#255#13#12' '#255#14#11'!'#255#14#13'"'#255#15#17''''#255#16 +#20'*'#255#16#20'*'#255#13#18'+'#255#14#22'/'#255#14#20','#255#14#20'+'#255 +#14#22'-'#255#13#20'-'#255#15#23'1'#255#16#19'0'#255#16#14'*'#255#15#12'#' +#255#10#13#30#255#12#12#31#255#14#14' '#255#14#16'#'#255#15#17')'#255#15#16 +'('#255#13#14'#'#255#12#13'!'#255#13#15'%'#255#16#19'.'#255#16#22'4'#255#14 +#23'3'#255#12#22'-'#255#12#23'*'#255#11#16'%'#255#13#16'%'#255#14#16'%'#255 +#14#16'$'#255#15#15'#'#255#13#12'"'#255#12#13'!'#255#13#14'!'#255#12#13' ' +#255#12#11#30#255#12#11#28#255#12#12#29#255#12#12' '#255#11#12' '#255#17#11 +'$'#255#14#11#31#255#12#12#27#255#14#15#31#255#11#12' '#255#12#14'!'#255#13 +#13' '#255#11#11#30#255#9#10#27#255#6#7#20#255#4#5#14#255#3#3#8#255#1#0#3#255 +#0#0#1#254#0#0#0#249#0#0#0#233#0#0#0#197#0#0#0#138#0#0#0'L'#0#0#0#29#0#0#0#4 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#5#0#0#0#31#0#0#0'Q'#0#0#0#145#0#0#0#200#0#0#0#236#0#0#0 +#252#0#1#2#254#2#4#9#255#3#9#19#255#6#14#30#255#9#20''''#255#12#24'1'#255#15 +#22'2'#255#15#24'4'#255#16#23'3'#255#19#20'2'#255#20#26':'#255#21#23'4'#255 +#18#18'0'#255#14#15','#255#14#13'!'#255#13#12#29#255#13#12#30#255#15#11'!' +#255#16#10' '#255#14#10#30#255#12#12#30#255#13#13#31#255#14#13' '#255#14#12 +#30#255#16#11#28#255#16#11#30#255#15#11#31#255#15#11#30#255#14#13' '#255#15 +#17'('#255#17#21'-'#255#17#24'/'#255#15#23'0'#255#14#21'0'#255#14#16')'#255 +#14#15'&'#255#14#17''''#255#13#17'*'#255#15#20'/'#255#16#17'-'#255#16#15'*' +#255#16#14''''#255#11#15'#'#255#13#13' '#255#13#12#30#255#13#13' '#255#16#16 +')'#255#17#18'+'#255#13#15'$'#255#11#13#30#255#13#12'"'#255#16#14''''#255#15 +#18','#255#15#20'.'#255#14#20'+'#255#12#18'%'#255#12#13' '#255#13#13'!'#255 +#13#14'"'#255#13#15'"'#255#15#15'%'#255#13#12'"'#255#13#13' '#255#13#15' ' +#255#14#15'!'#255#13#11#31#255#12#11#29#255#11#11#30#255#11#12'!'#255#11#13 +' '#255#15#11'!'#255#14#11#31#255#12#12#29#255#13#12#30#255#11#12' '#255#13 +#15'#'#255#13#15'#'#255#11#13'"'#255#10#13'!'#255#9#9#28#255#7#8#22#255#5#6 +#14#255#2#2#6#255#0#1#3#255#0#0#1#255#0#0#0#248#0#0#0#228#0#0#0#189#0#0#0#128 +#0#0#0'C'#0#0#0#23#0#0#0#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#23#0#0#0'E'#0#0#0#132#0#0#0#196#0#0#0 +#231#0#0#1#249#0#1#3#255#2#4#8#255#5#12#24#255#6#17''''#255#7#24'2'#255#10#30 +'9'#255#15#31'?'#255#16#26'8'#255#14#21'0'#255#14#17'+'#255#17#17'-'#255#19 +#26';'#255#21#27'<'#255#22#24'5'#255#20#18'*'#255#15#12#31#255#13#11#30#255 +#14#12'!'#255#15#13'#'#255#14#11'!'#255#12#11#28#255#11#10#27#255#12#13#31 +#255#13#14'!'#255#13#12#30#255#14#12#27#255#16#10#30#255#17#9#30#255#14#11#27 +#255#12#12#29#255#13#13'%'#255#13#16')'#255#14#21','#255#16#24'/'#255#11#16 +''''#255#12#13'$'#255#13#11'!'#255#12#11'!'#255#14#14'&'#255#15#13''''#255#14 +#13'&'#255#14#14''''#255#14#16')'#255#13#17')'#255#13#13'$'#255#12#11#30#255 +#13#10#29#255#16#12'"'#255#16#17')'#255#11#15'$'#255#10#13' '#255#14#14'"' +#255#14#14'#'#255#12#14'$'#255#14#16''''#255#15#16'('#255#12#13'#'#255#13#12 +'"'#255#14#14'!'#255#13#14' '#255#11#13'"'#255#14#15')'#255#12#12'$'#255#12 +#12'"'#255#14#14'"'#255#16#15'!'#255#14#12#31#255#13#12#29#255#11#11#30#255 ,#11#12#31#255#14#14#30#255#12#11#27#255#14#11#30#255#14#11'!'#255#11#9#31#255 +#12#12#30#255#14#14'!'#255#14#14'%'#255#12#15''''#255#11#16'&'#255#11#13'$' +#255#11#11#29#255#8#9#20#255#4#5#12#255#2#3#7#255#0#1#2#255#0#0#0#252#0#0#0 +#244#0#0#0#226#0#0#0#180#0#0#0'u'#0#0#0'9'#0#0#0#17#0#0#0#2#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#14#0#0#0'8'#0#0#0'u'#0#0 +#0#182#0#0#0#229#0#0#0#249#0#1#2#255#1#4#8#255#3#10#20#255#9#26'1'#255#10'"D' +#255#14'+Q'#255#20'2W'#255#24'0W'#255#26'.S'#255#17#25'6'#255#9#10' '#255#12 +#14'%'#255#12#14'('#255#16#17'.'#255#19#17'+'#255#18#12'"'#255#16#7#30#255#15 +#12'"'#255#15#13'"'#255#15#13' '#255#14#12#31#255#15#12#27#255#15#10#26#255 +#14#10#31#255#13#12'"'#255#15#11#30#255#14#12#29#255#15#13#30#255#16#13#31 +#255#15#14' '#255#13#16' '#255#14#15'&'#255#14#13'%'#255#13#14'%'#255#13#18 +','#255#12#16')'#255#12#15'%'#255#13#13'#'#255#15#13'#'#255#12#12'"'#255#14 +#12'$'#255#14#13'#'#255#13#14'#'#255#13#12'%'#255#15#13'$'#255#14#11'"'#255 +#13#12' '#255#13#14' '#255#13#12'!'#255#12#13'$'#255#12#16'('#255#13#18')' +#255#15#17'&'#255#11#12'!'#255#12#13'$'#255#12#14'$'#255#13#13'$'#255#15#13 +''''#255#14#15'#'#255#16#17'&'#255#15#17'&'#255#12#14'%'#255#14#15'*'#255#11 +#15'$'#255#12#15'%'#255#15#16''''#255#17#17'$'#255#15#14'"'#255#14#15'#'#255 +#14#16'#'#255#15#15'"'#255#16#16'!'#255#12#13#30#255#12#14#31#255#13#13' ' +#255#12#12#31#255#16#13' '#255#17#14'!'#255#17#15''''#255#16#16','#255#14#20 +'+'#255#13#19'*'#255#15#18'$'#255#14#14#28#255#8#8#20#255#4#6#13#255#2#3#6 +#255#1#1#2#255#0#1#1#253#0#0#0#244#0#0#0#219#0#0#0#169#0#0#0'j'#0#0#0'/'#0#0 +#0#11#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#8#0#0#0')' +#0#0#0'e'#0#0#0#167#0#0#0#220#0#0#0#243#0#1#1#253#1#4#7#255#3#8#17#255#4#15 +'!'#255#10#26'6'#255#19'.T'#255#18'0X'#255#10'!D'#255#9#21'4'#255#16#29'>' +#255#16#27'6'#255#17#25'/'#255#21#28'4'#255#14#18','#255#12#14'%'#255#16#18 +'('#255#20#22'.'#255#18#17'*'#255#15#14'%'#255#14#13'!'#255#16#13'"'#255#19 +#12'$'#255#18#11#31#255#16#12#28#255#14#13#30#255#14#12'!'#255#16#10#31#255 +#13#12#30#255#14#13'!'#255#16#15'%'#255#17#16'&'#255#14#12'$'#255#16#14')' +#255#15#14''''#255#13#13'%'#255#16#17'+'#255#16#16'*'#255#15#15'&'#255#15#14 +'%'#255#15#14'%'#255#14#15'$'#255#15#14'#'#255#14#14'#'#255#14#15'$'#255#15 +#16''''#255#17#15'*'#255#17#15'('#255#16#16'&'#255#15#15'&'#255#15#13''''#255 +#15#14'&'#255#17#19'+'#255#17#21'.'#255#14#18')'#255#12#13'"'#255#14#15'(' +#255#15#16')'#255#14#16'%'#255#12#13'$'#255#12#15'$'#255#14#16''''#255#13#17 +'('#255#12#17''''#255#12#16'*'#255#12#19'('#255#13#18'('#255#13#15'('#255#13 +#14'#'#255#12#13'!'#255#15#16'&'#255#15#18'&'#255#14#16'#'#255#13#14'$'#255 +#16#14'"'#255#15#14'"'#255#12#14'!'#255#12#13#31#255#18#15'"'#255#19#16'#' +#255#16#16'$'#255#15#16'&'#255#16#18'('#255#15#16''''#255#15#17'%'#255#14#16 +'"'#255#12#13#31#255#8#9#22#255#6#5#13#255#3#3#6#255#0#1#1#254#0#0#0#251#0#0 +#0#242#0#0#0#212#0#0#0#157#0#0#0'W'#0#0#0' '#0#0#0#6#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#4#0#0#0#27#0#0#0'P'#0#0#0#148#0#0#0#206#0#0#0#241#0#0 +#0#251#0#2#4#255#2#7#14#255#6#19'$'#255#10'&F'#255#12'+O'#255#16')N'#255#17 +'%I'#255#15'!E'#255#17#28'?'#255#19#28'='#255#19#29'9'#255#20#30'6'#255#20#27 +'7'#255#18#25'6'#255#14#18'*'#255#16#21'-'#255#19#25'5'#255#17#20'.'#255#17 +#16''''#255#14#14'#'#255#14#12'"'#255#17#11'#'#255#18#12'#'#255#17#13#31#255 +#14#12#30#255#13#11#31#255#15#11#30#255#13#13' '#255#14#14'#'#255#17#14'&' +#255#19#15')'#255#17#15')'#255#17#15')'#255#16#15''''#255#15#15'&'#255#16#14 +''''#255#16#15''''#255#16#16'('#255#15#16''''#255#15#14'&'#255#16#14''''#255 +#17#14'%'#255#15#15'%'#255#14#16'%'#255#14#15'%'#255#15#17')'#255#16#17'''' +#255#16#16'&'#255#16#15'('#255#15#14'*'#255#17#16')'#255#18#18','#255#17#19 +'-'#255#15#18'*'#255#14#15'%'#255#16#15')'#255#15#16'*'#255#14#16''''#255#15 +#17''''#255#15#16')'#255#16#18')'#255#16#18'*'#255#15#17'*'#255#13#17'&'#255 +#13#18'&'#255#13#16''''#255#14#15'&'#255#13#14'#'#255#13#13'!'#255#14#16'''' +#255#15#19'('#255#14#19'$'#255#14#15'$'#255#16#14'$'#255#14#13' '#255#12#13 +#30#255#14#14#31#255#18#14' '#255#18#15'$'#255#15#14'%'#255#13#14'$'#255#16 +#17'('#255#17#17')'#255#15#17''''#255#12#16'%'#255#12#15'#'#255#13#13#31#255 +#8#8#21#255#4#4#12#255#2#2#5#255#0#0#1#254#0#0#0#251#0#0#0#236#0#0#0#197#0#0 +#0#135#0#0#0'B'#0#0#0#20#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#15#0#0 +#0'9'#0#0#0'~'#0#0#0#190#0#0#0#233#0#0#0#251#0#0#1#255#1#6#10#255#3#11#23#255 +#8#28'5'#255#17'9b'#255#14';g'#255#12'%I'#255#13#26':'#255#19' B'#255#24'''L' +#255#19#31'='#255#18#28'7'#255#19#29':'#255#19#31'?'#255#19#26'9'#255#15#22 +'1'#255#14#21'0'#255#15#21'0'#255#15#17'('#255#17#15'%'#255#15#13'#'#255#14 +#13'!'#255#15#12'!'#255#16#11'%'#255#18#12' '#255#17#11#30#255#15#10#29#255 +#16#12#28#255#14#14#31#255#14#14'"'#255#16#13'$'#255#18#13''''#255#18#17'(' +#255#18#17')'#255#17#17')'#255#16#16''''#255#14#11'$'#255#15#13'$'#255#16#17 +'('#255#15#17''''#255#14#14'#'#255#17#13'&'#255#16#12'%'#255#16#14'&'#255#15 +#15''''#255#14#14'%'#255#15#16'%'#255#14#15'$'#255#15#14'$'#255#15#13'$'#255 +#14#13'&'#255#17#17')'#255#16#17'*'#255#15#16')'#255#16#16'('#255#15#16'''' +#255#15#15''''#255#14#14'&'#255#15#15''''#255#18#17'*'#255#17#16')'#255#17#17 +'('#255#18#18')'#255#17#17')'#255#16#17'#'#255#13#15'#'#255#14#14'$'#255#16 +#15'$'#255#16#15'"'#255#14#14'"'#255#14#15'%'#255#14#17'%'#255#14#18'#'#255 +#14#15'"'#255#13#12'#'#255#12#12' '#255#12#14#30#255#15#15' '#255#17#14' ' +#255#17#14'&'#255#14#14'&'#255#13#14'$'#255#15#16''''#255#16#19'+'#255#15#18 +'+'#255#13#17'('#255#12#16'&'#255#15#16''''#255#11#13' '#255#7#10#23#255#4#6 +#13#255#1#2#4#255#0#0#1#254#0#0#0#248#0#0#0#226#0#0#0#180#0#0#0'm'#0#0#0'/'#0 +#0#0#11#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#7#0#0#0'&'#0#0#0'a'#0#0#0#170#0#0#0#223 +#0#0#0#249#0#0#2#254#0#2#6#255#4#11#21#255#5#17'#'#255#10' <'#255#21'9c'#255 +#15':h'#255#14'/V'#255#12#31'?'#255#10#21'4'#255#15#28'<'#255#11#27'5'#255#11 +#22'/'#255#17#28':'#255#24'*M'#255#14#22'4'#255#13#22'3'#255#12#21'/'#255#10 +#16'&'#255#13#14' '#255#14#12#31#255#15#12' '#255#16#13'"'#255#15#14'#'#255 +#13#10'#'#255#17#10' '#255#19#11#29#255#18#11#27#255#17#10#27#255#15#13#27 +#255#15#12#30#255#15#12' '#255#15#13' '#255#13#13'!'#255#18#19'*'#255#19#18 +','#255#16#15''''#255#15#12'#'#255#17#14'"'#255#16#15'%'#255#13#17'#'#255#11 +#17#31#255#16#13'"'#255#13#10'"'#255#14#13'&'#255#16#15')'#255#16#15'('#255 +#17#15'$'#255#13#13'#'#255#12#13'"'#255#14#13#31#255#13#10#30#255#15#16'&' +#255#15#17''''#255#14#16'$'#255#15#15'#'#255#14#14')'#255#12#13'#'#255#13#14 +'"'#255#16#14'&'#255#18#14''''#255#14#13'#'#255#13#12'"'#255#14#15'#'#255#16 +#18'$'#255#17#16'%'#255#13#14'$'#255#14#15'$'#255#16#15'#'#255#16#14' '#255 +#14#15'"'#255#15#14'!'#255#14#13' '#255#13#13#31#255#12#13'!'#255#11#10'"' +#255#12#13'#'#255#14#17'#'#255#14#16'"'#255#16#16'$'#255#15#16'&'#255#14#16 +'&'#255#15#15'%'#255#16#15'&'#255#14#18'*'#255#16#20'-'#255#16#20','#255#14 +#20')'#255#14#18'+'#255#15#21'+'#255#13#19'$'#255#8#12#24#255#2#5#11#255#0#2 +#3#255#0#0#0#254#0#0#0#244#0#0#0#213#0#0#0#153#0#0#0'T'#0#0#0#31#0#0#0#4#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#1#0#0#0#22#0#0#0'G'#0#0#0#142#0#0#0#204#0#0#0#238#0#0#1#252#0#3#5 +#255#2#9#18#255#7#19'%'#255#8#27'3'#255#13'*K'#255#23'@k'#255#9'-W'#255#19'<' +'l'#255#19'5c'#255#10#29'A'#255#13#28'<'#255#20'#A'#255#16#27'6'#255#12#17'+' +#255#15#17','#255#15#24'3'#255#20'"A'#255#16#30'<'#255#11#21'.'#255#17#23'*' +#255#13#14'!'#255#13#12' '#255#13#12'!'#255#12#11' '#255#15#12'"'#255#15#10 +#31#255#14#11#27#255#14#11#25#255#15#9#24#255#13#14#28#255#13#12#28#255#14#11 +#28#255#16#11#29#255#13#14#30#255#15#17'$'#255#16#16'&'#255#16#14'$'#255#14 +#16#31#255#16#13#30#255#14#14'$'#255#12#16'%'#255#11#16' '#255#12#13#30#255 +#15#15'$'#255#15#16'('#255#14#14''''#255#14#11'$'#255#16#12'$'#255#14#14'$' +#255#13#15'#'#255#13#14'"'#255#14#14'#'#255#12#15'!'#255#13#16'#'#255#14#16 +'#'#255#13#15'!'#255#15#14'%'#255#16#16'&'#255#16#15'%'#255#14#14'&'#255#12 +#15'('#255#13#13'"'#255#14#14'"'#255#15#13'"'#255#14#12#31#255#14#13'"'#255 +#12#14'!'#255#12#14'"'#255#13#13'#'#255#14#12'"'#255#17#15'&'#255#16#15'#' +#255#14#15'!'#255#13#16'"'#255#16#19')'#255#13#14'%'#255#14#15'#'#255#14#17 +'"'#255#13#15'!'#255#14#15'!'#255#15#17'"'#255#16#17'%'#255#17#15')'#255#16 +#19','#255#15#20'-'#255#16#21','#255#16#21')'#255#14#21''''#255#14#22'('#255 +#14#22')'#255#14#22'('#255#12#18'"'#255#6#10#21#255#1#3#6#255#0#0#1#255#0#0#0 +#249#0#0#0#233#0#0#0#195#0#0#0#128#0#0#0'?'#0#0#0#17#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#10#0#0#0 +'/'#0#0#0'n'#0#0#0#182#0#0#0#230#0#0#0#249#0#1#2#254#2#5#10#255#5#16#31#255#5 +#28'4'#255#8'"@'#255#16'(K'#255#23'1W'#255#12'&N'#255#17'6b'#255#19':h'#255 +#18'-Y'#255#20'%J'#255#16#28'?'#255#15#29'>'#255#17#31'>'#255#18#25'8'#255#18 +#24'4'#255#17#27'9'#255#16#31'='#255#15#30'8'#255#13#18')'#255#14#14'!'#255 ,#15#12' '#255#15#11' '#255#15#10' '#255#16#11' '#255#15#11#29#255#14#13#29 +#255#13#13#28#255#13#10#25#255#12#12#28#255#12#10#29#255#13#10#29#255#14#12 +#30#255#13#14' '#255#14#15'#'#255#16#14'$'#255#16#14'#'#255#14#16'!'#255#13 +#13#30#255#12#14'!'#255#12#15'$'#255#13#15'#'#255#12#12#29#255#12#13#30#255 +#13#16'%'#255#13#17'*'#255#12#16'('#255#13#17''''#255#13#16'%'#255#14#16'&' +#255#15#16'('#255#14#15'&'#255#12#15' '#255#14#16'$'#255#15#15'%'#255#12#13 +'"'#255#14#13'%'#255#16#14''''#255#16#14'&'#255#13#14'$'#255#10#16'$'#255#13 +#16'#'#255#15#13'!'#255#14#12'"'#255#14#14'#'#255#15#15'%'#255#16#14'$'#255 +#15#14'#'#255#12#14'"'#255#10#12'"'#255#14#15'&'#255#15#15'#'#255#13#14'!' +#255#12#14'"'#255#12#18'&'#255#12#13'$'#255#13#12'!'#255#14#13' '#255#14#15 +' '#255#15#16'#'#255#14#18'('#255#14#16')'#255#15#15'+'#255#16#21'0'#255#14 +#20'*'#255#13#19'%'#255#13#20'&'#255#14#22'+'#255#23#29'/'#255#20#25'*'#255 +#14#19'&'#255#10#14'"'#255#8#11#25#255#4#8#15#255#1#2#5#255#0#0#0#254#0#0#0 +#247#0#0#0#224#0#0#0#171#0#0#0'f'#0#0#0')'#0#0#0#6#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#27#0#0#0'Q'#0#0#0 +#151#0#0#0#212#0#0#0#243#0#0#1#254#1#3#6#255#4#11#21#255#6#24'/'#255#10'+M' +#255#12'*O'#255#14'"G'#255#18'#G'#255#17'$K'#255#15'-P'#255#17'2X'#255#21'0]' +#255#21'*V'#255#18'&N'#255#18'&L'#255#19'$H'#255#18#29'A'#255#18#26'<'#255#16 +#28'='#255#15#30'='#255#15#26'5'#255#14#15'%'#255#16#14'#'#255#17#12'!'#255 +#17#12'"'#255#17#14'$'#255#19#12'!'#255#16#13#31#255#14#14#30#255#13#14#29 +#255#13#13#29#255#14#12' '#255#15#13'#'#255#15#14'#'#255#15#15'!'#255#17#17 +'%'#255#16#18''''#255#16#16'&'#255#16#15'$'#255#16#17'#'#255#16#14' '#255#15 +#14' '#255#16#15'#'#255#17#15'&'#255#15#14'#'#255#15#12'"'#255#15#15'$'#255 +#14#18')'#255#11#21'+'#255#13#21'+'#255#14#19'*'#255#15#19'+'#255#14#20',' +#255#15#20'*'#255#15#18'%'#255#15#16'%'#255#14#16'&'#255#15#16'&'#255#16#16 +')'#255#16#15'*'#255#15#15')'#255#15#17'('#255#15#20')'#255#14#18'$'#255#16 +#15'$'#255#16#14'%'#255#15#16'%'#255#15#15'$'#255#17#14'%'#255#16#15'$'#255 +#14#16'$'#255#12#15''''#255#15#18'('#255#15#17'%'#255#15#15'#'#255#14#15'#' +#255#13#17'#'#255#16#23'.'#255#15#22','#255#15#20''''#255#18#23''''#255#19#21 +','#255#17#23'1'#255#15#23'1'#255#16#21'0'#255#17#24'4'#255#14#20'-'#255#12 +#18'('#255#12#18')'#255#15#20'-'#255#18#24'-'#255#17#20'('#255#14#16'&'#255 +#12#15'%'#255#11#16'#'#255#7#12#24#255#3#6#11#255#0#1#3#255#0#0#0#252#0#0#0 +#241#0#0#0#207#0#0#0#145#0#0#0'K'#0#0#0#22#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#11#0#0#0'5'#0#0#0'x'#0#0#0#189#0#0#0 +#234#0#0#1#249#0#2#4#255#2#8#15#255#6#18'#'#255#7' A'#255#15'9d'#255#15'4`' +#255#12'#J'#255#11#31'B'#255#20'*R'#255#15')I'#255#14'''H'#255#18'(Q'#255#18 +'*V'#255#21'0W'#255#21'-S'#255#18'$J'#255#15#29'B'#255#18'!H'#255#18'%J'#255 +#15#31'?'#255#14#20'/'#255#18#16'$'#255#17#17'&'#255#18#14'%'#255#18#14'%' +#255#17#17''''#255#21#13'$'#255#18#15'#'#255#16#20'%'#255#16#20'&'#255#15#15 +'#'#255#15#14'%'#255#18#17'('#255#18#18'('#255#17#17'%'#255#20#19')'#255#18 +#22'+'#255#17#20'+'#255#17#18'('#255#19#19'$'#255#19#15'"'#255#19#14'!'#255 +#19#14'#'#255#18#16''''#255#17#18'+'#255#20#15'*'#255#18#14'%'#255#15#17'%' +#255#14#22'*'#255#16#20'-'#255#17#21'.'#255#15#21'-'#255#13#21','#255#15#22 +'+'#255#17#20')'#255#15#17''''#255#14#17''''#255#17#21'*'#255#17#22'.'#255#16 +#18','#255#16#18'+'#255#17#20'-'#255#19#23'0'#255#15#18'%'#255#17#18'&'#255 +#18#18'('#255#16#16'%'#255#16#13'!'#255#17#15'&'#255#17#17'&'#255#16#17'''' +#255#17#18'+'#255#17#20','#255#16#18'('#255#16#17'&'#255#18#18'&'#255#17#18 +'%'#255#20' 8'#255#19'#;'#255#18'!5'#255#21' 1'#255#22#27'6'#255#18#29'7'#255 +#17#30'7'#255#20#30'7'#255#22#31':'#255#27'">'#255#31'#='#255'&%>'#255')&?' +#255#26#30'3'#255#22#25'0'#255#29#31'6'#255'"$:'#255#22#28'3'#255#10#17'"' +#255#6#10#19#255#3#5#8#255#0#1#2#253#0#0#0#248#0#0#0#232#0#0#0#183#0#0#0'q'#0 +#0#0'.'#0#0#0#9#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#4#0 +#0#0#28#0#0#0'V'#0#0#0#158#0#0#0#219#0#0#0#248#0#0#2#254#0#4#10#255#3#13#25 +#255#7#26'0'#255#9'(L'#255#11':f'#255#15'=h'#255#16'1V'#255#11'%C'#255#20'8e' +#255#15'.V'#255#12'$H'#255#15'$I'#255#17')K'#255#12#31'8'#255#14'$D'#255#19 +'*R'#255#18'(M'#255#17'-O'#255#16')L'#255#17'"C'#255#19#27'5'#255#16#21'%' +#255#16#21'('#255#17#18'*'#255#17#16'('#255#17#16'%'#255#20#13'&'#255#16#15 +'"'#255#22'"6'#255#26'*B'#255#16#19'*'#255#14#17'&'#255#15#19'('#255#17#20')' +#255#17#19')'#255#19#18'+'#255#17#20'*'#255#19#23','#255#22#24'-'#255#21#22 +''''#255#14#15'!'#255#16#13'"'#255#17#14'$'#255#16#18''''#255#17#22'+'#255#15 +#17')'#255#15#16'%'#255#15#16'#'#255#16#17'%'#255#18#16')'#255#17#19'+'#255 ,#16#20','#255#14#19'+'#255#12#17''''#255#14#17')'#255#16#17'+'#255#15#18'*' +#255#13#21')'#255#14#22'-'#255#15#19'('#255#17#18'+'#255#19#19'/'#255#18#20 +','#255#15#15'$'#255#14#16'%'#255#15#17'('#255#18#17'('#255#19#14'$'#255#17 +#20'*'#255#17#19')'#255#17#17''''#255#17#17')'#255#14#19','#255#14#15')'#255 +#16#15''''#255#19#19')'#255#18#20','#255#16#25'3'#255#20'#>'#255#23'''?'#255 +#21'!5'#255#27'%;'#255#22'":'#255#21#31'8'#255#28'#='#255'*3I'#255'?H^'#255 +'RRb'#255'eZg'#255'l_m'#255'OHY'#255':=S'#255'KKa'#255'UQe'#255'.2F'#255#18 +#29'1'#255#12#19' '#255#9#12#17#255#3#5#6#255#0#0#0#252#0#0#0#244#0#0#0#210#0 +#0#0#151#0#0#0'M'#0#0#0#24#0#0#0#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#12#0#0#0'6'#0#0#0'}'#0#0#0#192#0#0#0#236#0#0#1#250#0#3#5#255#1#10#19 +#255#5#22'*'#255#9'$C'#255#11'*P'#255#14'2X'#255#13'6^'#255#14'4^'#255#20'2X' +#255#18'3^'#255#15',V'#255#12'%K'#255#12'''J'#255#18'4V'#255#13'%;'#255#11' ' +';'#255#13'%G'#255#16')K'#255#10#30'='#255#18'!B'#255#20#29':'#255#19#22'+' +#255#22#27'+'#255#20#23'('#255#18#20'('#255#16#18''''#255#17#16'$'#255#23#13 +'&'#255#13#12'#'#255#23'(B'#255'$=\'#255#25'*H'#255#20'!6'#255#27')='#255#27 +'*>'#255#21#30'3'#255#20#21'/'#255#15#20'('#255#16#21'('#255#20#22'*'#255#20 +#21'*'#255#15#17'%'#255#16#17'%'#255#14#17'%'#255#13#17'&'#255#16#20')'#255 +#15#18'&'#255#14#16'$'#255#16#16'$'#255#18#17'&'#255#17#15'&'#255#15#17'&' +#255#15#21')'#255#16#23'-'#255#17#20'*'#255#15#24'.'#255#15#23','#255#15#20 +'('#255#14#18'&'#255#17#18'&'#255#19#18')'#255#19#19'+'#255#18#20','#255#17 +#19'+'#255#17#17')'#255#14#16')'#255#14#18','#255#16#20'.'#255#14#13'&'#255 +#17#18'*'#255#18#22'-'#255#16#21'-'#255#14#18'*'#255#16#19'+'#255#20#21'*' +#255#18#23'+'#255#12#24'/'#255#11#29'5'#255#31'.B'#255'%0F'#255#28',C'#255#28 +'2G'#255'[\m'#255'idt'#255'ML_'#255'@BW'#255'sn}'#255'a[n'#255'LG['#255'HCU' +#255'XN^'#255'i\k'#255'tiy'#255'xk|'#255'sfw'#255'e]n'#255'KL^'#255'*3C'#255 +#21#29''''#255#14#16#18#255#5#5#7#255#1#1#1#250#0#0#0#232#0#0#0#187#0#0#0's' +#0#0#0'.'#0#0#0#10#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#4#0#0#0#27#0#0#0 +'T'#0#0#0#160#0#0#0#218#0#0#0#248#0#1#2#253#2#6#12#255#3#11#24#255#7#25'1' +#255#12',M'#255#10'/S'#255#11'4Y'#255#14'4\'#255#15'1Z'#255#16'.W'#255#18'6d' +#255#17'4a'#255#17'3^'#255#18'6_'#255#21';a'#255#28'9R'#255#21'*C'#255#14'$B' +#255#17'*I'#255#14#25'3'#255#20#23'1'#255#24#30'5'#255#25'$6'#255#25'%3'#255 +#22#27'-'#255#19#23','#255#17#21'*'#255#17#17''''#255#19#18')'#255#25#29'3' +#255'$1J'#255',A^'#255'+?\'#255'-;R'#255'1]'#255'!7R'#255'!3P'#255' 4R'#255#26'!7'#255#29#30'4'#255'#+A' +#255'&9L'#255'#3C'#255' *='#255#30')>'#255#28'&<'#255#24' 6'#255#21'"7'#255 +'*3G'#255'4;P'#255'4=L'#255':;I'#255'?@P'#255'BCT'#255'KK['#255'WXc'#255'bdl' +#255#154#139#136#255#129'wt'#255'?BF'#255#21#25')'#255#20#21'-'#255#18#21'-' +#255#17#23'-'#255#17#24'.'#255#17#20','#255#17#19'*'#255#19#20'*'#255#21#24 +'/'#255#23#28'2'#255#15#22')'#255#18#20')'#255#19#22'('#255#18#23'%'#255#20 +#22')'#255'3#3'#255'A1B'#255'BBP'#255'@CR'#255'"-<'#255#17'#2'#255 +'#4F'#255'Q`p'#255'Qas'#255#134#137#152#255'{u'#134#255'/,B'#255#26#29'6'#255 +#17#25'3'#255#14#25'4'#255#16#28'7'#255#22'"='#255#26'+B'#255'(:Q'#255'IWo' +#255'rw'#143#255#138#135#154#255#138#133#151#255#140#136#157#255#148#145#171 +#255#155#152#181#255#146#142#166#255#144#137#158#255#144#134#153#255#139#131 +#151#255#130'~'#150#255#144#132#151#255#151#137#155#255#151#139#159#255#146 +#137#160#255#142#135#161#255#146#142#172#255#142#139#172#255#147#146#182#255 +#172#174#214#255#150#148#188#255#151#149#186#255#134#132#162#255'XVj'#255'''' +'%/'#255#13#12#15#255#2#2#2#253#0#0#0#242#0#0#0#209#0#0#0#138#0#0#0'@'#0#0#0 +#16#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#6#0#0#0'('#0#0#0'h'#0#0#0#182#0#0#0#232#0#0#0 +#252#0#2#3#255#3#9#16#255#10#20'&'#255#17#25'4'#255#18#25'6'#255#13#28'9'#255 +#14'-R'#255#13'4`'#255#15'S'#255';>R' +#255'9@S'#255''#255#20#26'2'#255#21#31'6'#255 +#23'$8'#255#22'!5'#255#23#29'4'#255#25#28'4'#255#22#30'5'#255#17' 6'#255#17 +' 6'#255#19#31'2'#255#18#25'.'#255#31''';'#255',6H'#255'$'';'#255'"%8'#255#27 +'#8'#255#29''';'#255').?'#255'''*='#255'2:K'#255'3;L'#255'HJ\'#255#130#127 +#141#255'vv'#134#255#141#133#147#255#153#140#153#255#129'v'#135#255'NG`'#255 +'$+D'#255#27'''C'#255'3'#0#0#0#135#0#0#0#207#0#0#0#241#0#1#2#254#1#6#10#255#4 +#17#29#255#11#28'3'#255#12#24'6'#255#15#22'5'#255#19' ?'#255#16'8^'#255#13'8' +'e'#255#15'8e'#255#15'8c'#255#13'6a'#255#17'4Z'#255#15'2S'#255#12',P'#255#16 +')S'#255'!5`'#255'8Dh'#255'X'#141#255'So'#158#255'To'#155#255'Uk'#149#255'_r'#151#255'[s'#156 ,#255'k}'#162#255'q'#130#166#255'|'#139#170#255#163#165#179#255#170#170#179 +#255#163#174#194#255#145#178#210#255#131#176#216#255#151#168#201#255#144#156 +#186#255#142#162#193#255#149#171#203#255#158#165#192#255#158#171#201#255#156 +#165#187#255#150#158#177#255#141#156#178#255#137#154#174#255#147#149#164#255 +#143#143#155#255#135#139#152#255#132#137#153#255's'#129#148#255'u'#127#146 +#255'~'#130#146#255'x~'#139#255'Ncv'#255'2La'#255'9Sk'#255'C^y'#255'>^y'#255 +'L]u'#255'R^s'#255'S]m'#255'HTd'#255'/E\'#255')E`'#255'''A['#255#30'3N'#255 +#27'+G'#255'MQg'#255#132#127#144#255#171#161#176#255#181#172#189#255#165#164 +#183#255#176#167#183#255#184#176#192#255#179#173#193#255#166#161#183#255#158 +#157#180#255#139#141#170#255#146#147#179#255#167#165#194#255#181#174#198#255 +#173#165#192#255#162#165#191#255#150#156#184#255#144#144#175#255#150#151#178 +#255#146#149#180#255#151#152#181#255#155#155#181#255#159#160#184#255#186#186 +#201#255#179#180#201#255#162#166#197#255#154#159#196#255#165#165#199#255#156 +#159#201#255#167#169#210#255#177#182#220#255#181#190#229#255#191#201#236#255 +#212#222#246#255#224#227#244#255#216#215#233#255#188#195#222#255#177#181#212 +#255#169#174#203#255#161#168#194#255#145#152#177#255'su'#134#255'>>F'#255#22 +#22#25#255#3#3#3#253#0#0#0#245#0#0#0#215#0#0#0#147#0#0#0'I'#0#0#0#19#0#0#0#1 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#6#0#0#0','#0#0#0'o'#0#0#0#187#0#0#0#234#0#0#1#252#1#3#5#255#3#13#22#255#8 +#31'6'#255#12'-P'#255#21'/U'#255#25'1X'#255#21'3\'#255#16'/V'#255#14'2['#255 +#17':e'#255#16'9f'#255#10',Y'#255#17'/W'#255#22'*R'#255'''8_'#255'>V'#128#255 +'Op'#168#255'g'#141#193#255'k'#146#195#255'n'#145#192#255'z'#151#196#255'z' +#153#198#255#132#163#204#255#139#170#208#255#158#184#215#255#203#215#228#255 +#213#221#229#255#205#218#229#255#188#214#234#255#180#216#241#255#206#225#246 +#255#202#217#239#255#199#219#241#255#205#227#248#255#218#231#249#255#218#235 +#255#255#218#232#248#255#207#225#240#255#191#219#238#255#188#220#239#255#210 +#218#235#255#201#211#229#255#182#204#225#255#177#201#224#255#169#201#224#255 +#182#203#224#255#205#214#229#255#212#219#232#255#174#197#219#255't'#153#176 +#255'h'#146#173#255'g'#150#181#255'\'#141#174#255'r'#143#169#255'p'#135#160 +#255'~'#141#164#255'}'#141#164#255'Ei'#137#255'P{'#158#255'c'#132#165#255'dz' +#152#255'^o'#142#255#145#155#182#255#210#210#227#255#228#224#241#255#208#212 +#235#255#187#206#231#255#210#217#236#255#221#230#243#255#218#228#244#255#204 +#212#237#255#186#202#230#255#178#194#229#255#180#198#235#255#199#213#243#255 +#229#233#248#255#213#222#244#255#196#222#245#255#178#206#238#255#168#186#227 +#255#178#197#229#255#168#194#229#255#178#196#229#255#188#198#226#255#194#203 +#226#255#235#238#245#255#214#219#233#255#182#190#218#255#168#177#211#255#182 +#184#213#255#177#178#209#255#167#172#206#255#161#171#210#255#165#178#217#255 +#173#182#221#255#188#202#231#255#211#222#239#255#218#227#242#255#193#211#240 +#255#184#198#233#255#189#201#235#255#186#202#235#255#170#188#221#255#150#158 +#179#255'\_j'#255'&'','#255#7#7#8#254#0#0#0#248#0#0#0#228#0#0#0#172#0#0#0'c' +#0#0#0'"'#0#0#0#4#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#13#0#0#0'?'#0#0#0#136#0#0#0#208#0#0#0#241#1#2#3#253#2#5#10 +#255#5#15#29#255#10'!='#255#18'0U'#255#24'5\'#255#27'6_'#255#26'6`'#255#24'0' +'X'#255#20'-W'#255#22':e'#255#23'@k'#255#17'4]'#255#23'6c'#255#19'(Q'#255#18 +'"G'#255#28'-R'#255'6Jr'#255'ey'#162#255'r'#137#177#255'r'#138#177#255'y'#144 +#180#255'|'#148#184#255#130#156#191#255#139#165#197#255#149#173#202#255#152 +#181#208#255#156#188#212#255#161#193#218#255#167#198#225#255#174#204#232#255 +#178#208#237#255#178#209#237#255#185#215#242#255#195#223#249#255#200#228#253 +#255#201#227#253#255#197#225#251#255#194#222#247#255#193#220#242#255#192#218 +#240#255#193#219#242#255#194#219#242#255#195#219#242#255#194#220#242#255#197 +#221#242#255#202#225#244#255#203#226#245#255#206#228#247#255#217#235#252#255 +#172#206#229#255'{'#167#196#255'd'#145#175#255'i'#147#173#255'e'#142#168#255 +'U'#130#155#255'm'#151#177#255#134#173#202#255'i'#150#185#255#146#184#217#255 +#199#224#247#255#227#243#255#255#223#240#255#255#219#236#255#255#216#232#255 +#255#214#231#254#255#213#231#254#255#214#231#253#255#216#233#254#255#211#230 +#253#255#213#230#254#255#216#232#254#255#200#219#245#255#203#223#250#255#204 +#226#252#255#207#228#252#255#216#232#254#255#217#232#252#255#209#226#250#255 +#203#222#251#255#201#223#252#255#204#228#251#255#192#219#247#255#194#220#248 +#255#202#223#248#255#209#225#246#255#224#237#249#255#210#226#247#255#203#220 +#247#255#203#222#246#255#202#221#244#255#211#224#246#255#192#213#244#255#174 +#196#233#255#171#182#217#255#172#180#214#255#172#181#216#255#176#185#217#255 +#177#186#218#255#169#180#217#255#168#179#214#255#179#187#221#255#179#188#226 +#255#162#175#217#255#134#147#184#255'`f|'#255'03<'#255#12#13#16#255#2#2#3#251 +#0#0#0#241#0#0#0#197#0#0#0'~'#0#0#0'4'#0#0#0#9#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#24#0#0#0'R'#0#0#0#157#0#0#0 +#222#0#0#0#249#0#2#3#255#3#7#14#255#9#21'&'#255#18')G'#255#16',S'#255#21'0Z' +#255#23'3['#255#21'2Z'#255#29'3^'#255#23'.U'#255#20'+P'#255#20'.U'#255#19'5b' +#255#21'1]'#255#19'%K'#255#26')K'#255'(;^'#255'1Ip'#255'Pn'#153#255'h'#134 +#176#255't'#144#184#255'w'#146#187#255'|'#153#192#255#128#158#196#255#135#164 +#200#255#142#171#204#255#145#178#210#255#149#183#214#255#154#189#221#255#161 +#196#228#255#169#203#235#255#171#206#238#255#174#210#240#255#180#214#243#255 +#185#218#247#255#188#220#249#255#186#218#248#255#185#216#247#255#185#215#245 +#255#185#214#243#255#186#215#242#255#185#214#241#255#185#213#240#255#185#214 +#240#255#185#214#239#255#187#214#240#255#190#218#242#255#193#221#243#255#195 +#222#244#255#196#223#245#255#199#225#246#255#159#196#224#255'c'#145#177#255 +'6b|'#255'7ay'#255'7ay'#255'Aj'#133#255'T'#127#158#255'q'#155#190#255#179#206 +#234#255#204#224#250#255#207#226#250#255#207#226#249#255#206#225#249#255#206 +#224#249#255#206#224#249#255#207#225#249#255#207#225#250#255#207#225#250#255 +#207#225#250#255#207#225#250#255#206#224#250#255#202#220#247#255#204#221#248 +#255#205#222#248#255#205#222#247#255#207#222#247#255#207#222#247#255#204#220 +#247#255#202#219#247#255#201#217#245#255#198#215#244#255#195#212#241#255#195 +#211#240#255#195#211#240#255#197#212#239#255#199#213#239#255#196#211#238#255 +#194#209#238#255#192#206#237#255#189#203#234#255#191#206#237#255#186#205#238 +#255#180#201#235#255#179#195#231#255#180#191#226#255#179#190#224#255#179#190 +#224#255#179#189#224#255#176#187#223#255#177#187#223#255#177#188#226#255#178 +#191#232#255#176#191#231#255#159#173#209#255'px'#147#255':?N'#255#19#22#26 +#255#3#4#5#254#0#0#0#246#0#0#0#213#0#0#0#149#0#0#0'H'#0#0#0#17#0#0#0#2#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#4#0#0#0'$'#0#0#0'g' +#0#0#0#177#0#0#0#232#0#1#0#252#1#4#6#255#2#9#18#255#9#22'*'#255#23'.O'#255#17 +'1Z'#255#16'-V'#255#16'*S'#255#18'-W'#255#26'6a'#255#20'+R'#255#17'''K'#255 +#18',P'#255#20'1Z'#255#18'&L'#255#21'&H'#255#24'(G'#255#31'0P'#255'1Lq'#255 +'Zw'#161#255'l'#138#180#255'o'#143#184#255'p'#146#187#255'x'#151#191#255'{' +#156#195#255#128#159#198#255#133#164#201#255#137#171#207#255#141#177#213#255 +#146#184#221#255#152#191#228#255#158#196#233#255#163#202#236#255#166#205#239 +#255#172#208#242#255#176#211#244#255#176#211#245#255#175#209#243#255#176#208 +#242#255#177#208#241#255#177#208#240#255#177#209#240#255#177#208#238#255#177 +#207#237#255#177#207#237#255#178#208#236#255#178#208#236#255#183#212#239#255 +#186#215#240#255#186#215#240#255#187#216#241#255#194#221#244#255#183#213#239 +#255#149#186#215#255'f'#146#176#255'Oy'#151#255'/Xt'#255'=i'#135#255'n'#155 +#190#255#154#189#222#255#190#215#243#255#198#220#247#255#196#218#245#255#197 +#218#245#255#196#218#245#255#198#218#246#255#199#218#246#255#199#219#246#255 +#198#220#247#255#198#219#247#255#199#219#246#255#200#219#246#255#199#218#246 +#255#199#218#245#255#199#216#245#255#199#216#244#255#199#216#244#255#199#215 +#243#255#198#215#243#255#197#214#243#255#195#213#241#255#193#211#240#255#191 +#209#239#255#191#207#236#255#191#206#235#255#191#205#235#255#190#205#235#255 +#190#204#233#255#189#204#233#255#188#202#233#255#186#200#232#255#186#199#231 +#255#185#199#232#255#184#200#233#255#183#199#233#255#183#197#233#255#182#195 +#230#255#182#194#229#255#181#193#229#255#181#192#228#255#181#193#228#255#181 +#192#228#255#179#192#229#255#180#194#232#255#181#196#232#255#171#186#220#255 +#132#144#172#255'PWg'#255'!%+'#255#8#9#10#255#1#1#1#250#0#0#0#228#0#0#0#172#0 +#0#0'`'#0#0#0#29#0#0#0#4#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#8#0#0#0'2'#0#0#0'{'#0#0#0#195#0#0#0#240#0#0#0#253#1#5#10#255#4#13 +#25#255#12#28'3'#255#26'2W'#255#26'>h'#255#25';d'#255#21'1Z'#255#18'+X'#255 +#23'7b'#255#20'-U'#255#18'+P'#255#17'.R'#255#19',R'#255#17'#F'#255#20'%F'#255 +#18'#A'#255#23')G'#255'6Rv'#255'c~'#166#255'o'#140#180#255'l'#139#180#255'n' +#143#184#255's'#148#186#255'v'#151#191#255'y'#154#195#255'|'#158#198#255#128 +#165#203#255#134#173#212#255#139#180#220#255#144#185#225#255#149#188#228#255 +#154#194#232#255#157#197#236#255#161#201#238#255#165#203#239#255#165#202#239 +#255#165#202#239#255#167#202#238#255#168#201#236#255#168#201#235#255#169#201 +#234#255#169#201#234#255#170#201#233#255#170#201#233#255#172#202#233#255#172 +#202#232#255#175#205#234#255#177#207#235#255#178#207#235#255#180#209#236#255 +#181#210#237#255#186#213#239#255#181#211#238#255#161#197#229#255#141#176#207 +#255'k'#142#172#255'v'#156#187#255#159#197#229#255#182#211#242#255#189#214 +#244#255#190#215#243#255#190#214#243#255#190#213#243#255#190#214#243#255#191 +#214#243#255#192#214#243#255#192#214#243#255#191#216#245#255#191#215#245#255 +#192#215#243#255#193#214#243#255#194#214#244#255#192#214#243#255#192#212#242 +#255#192#212#242#255#193#212#241#255#192#210#240#255#192#210#240#255#190#209 +#239#255#189#207#237#255#187#205#236#255#186#205#235#255#187#203#233#255#187 ,#202#232#255#186#202#232#255#186#201#231#255#186#200#229#255#185#199#230#255 +#184#198#229#255#183#197#228#255#184#197#229#255#182#196#228#255#182#196#228 +#255#181#195#228#255#181#194#228#255#181#194#227#255#179#193#227#255#179#191 +#227#255#179#191#227#255#179#192#226#255#179#192#227#255#178#192#226#255#178 +#193#227#255#179#193#227#255#174#189#222#255#147#160#188#255'bk}'#255'/3;' +#255#13#14#16#255#2#2#3#253#0#0#0#238#0#0#0#191#0#0#0'v'#0#0#0'+'#0#0#0#8#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#15#0#0#0'A'#0#0#0 +#141#0#0#0#209#0#0#0#247#0#0#1#255#2#7#13#255#6#19'!'#255#14'";'#255#24'3Y' +#255'$It'#255'(Mv'#255#31'=e'#255#18',V'#255#22'7a'#255#22'1Y'#255#19'-T'#255 +#16',R'#255#16'(N'#255#17'''J'#255#14'#B'#255#11' >'#255#24'.M'#255'?['#127 +#255'a}'#162#255'm'#135#174#255'm'#135#176#255'o'#139#180#255'o'#143#181#255 +'q'#146#186#255't'#150#191#255'w'#155#196#255'{'#161#202#255#130#170#210#255 +#135#176#216#255#138#179#219#255#142#181#221#255#144#184#224#255#149#188#228 +#255#151#191#230#255#153#192#231#255#155#194#232#255#156#194#233#255#158#194 +#232#255#159#194#231#255#159#193#229#255#160#192#228#255#162#193#227#255#163 +#194#227#255#164#195#228#255#166#196#228#255#166#195#228#255#167#197#228#255 +#168#198#228#255#169#198#229#255#171#199#229#255#173#201#230#255#173#201#230 +#255#175#203#232#255#181#208#236#255#187#213#241#255#189#216#246#255#188#215 +#244#255#186#211#239#255#182#208#238#255#182#207#239#255#182#207#239#255#182 +#208#239#255#183#208#239#255#183#209#239#255#185#210#240#255#186#210#240#255 +#186#210#240#255#186#211#242#255#187#211#242#255#187#211#241#255#187#211#240 +#255#188#211#240#255#186#210#241#255#186#210#241#255#187#209#239#255#188#208 +#238#255#188#207#239#255#187#205#238#255#186#205#236#255#185#203#235#255#184 +#202#233#255#183#201#233#255#184#200#231#255#183#199#230#255#182#198#229#255 +#181#197#227#255#181#196#227#255#180#195#227#255#180#194#226#255#179#194#225 +#255#178#192#224#255#177#192#223#255#177#192#223#255#177#191#222#255#176#190 +#223#255#176#189#223#255#175#188#222#255#174#187#222#255#174#187#222#255#174 +#187#221#255#175#188#221#255#174#188#220#255#173#187#220#255#173#187#221#255 +#172#187#220#255#153#165#195#255'nw'#140#255':?J'#255#17#19#23#255#3#4#4#254 +#0#0#0#244#0#0#0#206#0#0#0#138#0#0#0';'#0#0#0#13#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#21#0#0#0'R'#0#0#0#160#0#0#0#221#0#0#0#249 +#0#1#3#255#3#9#18#255#6#17'!'#255#9#26'0'#255#14'(H'#255#29'Bk'#255#24'>c' +#255#14'.P'#255#13'(L'#255#24'6d'#255#16'*R'#255#14'%K'#255#15'''L'#255#14'(' +'J'#255#13'$C'#255#10'#>'#255#7'$@'#255#21'4T'#255'Ec'#136#255'_{'#160#255'h' +#130#168#255'i'#131#170#255'i'#135#173#255'l'#138#176#255'm'#140#179#255'q' +#145#186#255'u'#152#193#255'x'#156#198#255'~'#164#205#255#129#169#209#255#131 +#171#211#255#133#171#211#255#134#173#212#255#138#175#215#255#142#178#217#255 +#145#181#219#255#148#183#220#255#146#184#221#255#149#184#221#255#151#185#222 +#255#152#186#221#255#152#185#221#255#152#184#220#255#154#185#219#255#156#187 +#220#255#158#189#220#255#158#188#220#255#160#189#222#255#162#189#222#255#163 +#190#222#255#163#191#223#255#165#191#223#255#167#193#223#255#168#195#224#255 +#168#196#225#255#168#196#225#255#171#197#228#255#172#198#231#255#172#199#231 +#255#173#198#230#255#175#200#232#255#175#200#232#255#176#201#232#255#176#201 +#233#255#177#202#233#255#178#203#233#255#178#203#234#255#179#204#235#255#181 +#205#235#255#181#205#236#255#181#206#236#255#182#206#236#255#183#205#235#255 +#184#205#237#255#183#205#237#255#181#205#236#255#182#204#236#255#183#203#237 +#255#183#202#235#255#183#202#235#255#182#201#234#255#181#200#233#255#181#199 +#231#255#180#198#230#255#179#196#228#255#179#195#227#255#178#195#226#255#176 +#194#225#255#177#194#225#255#177#192#225#255#176#191#224#255#174#190#222#255 +#173#189#221#255#173#189#222#255#172#188#222#255#172#187#222#255#171#186#220 +#255#172#185#219#255#172#185#219#255#171#185#219#255#171#185#218#255#170#184 +#219#255#168#184#218#255#169#184#217#255#169#183#217#255#169#184#217#255#156 +#171#201#255'y'#132#155#255'GM\'#255#26#28'!'#255#5#6#8#254#0#0#0#249#0#0#0 +#220#0#0#0#160#0#0#0'K'#0#0#0#20#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#4#0#0#0#31#0#0#0'c'#0#0#0#177#0#0#0#232#0#0#0#253#1#2#4#255#5#13 +#24#255#8#22'*'#255#9#28'7'#255#10' >'#255#15',R'#255#16',N'#255#14'&D'#255 +#14'$F'#255#20'0\'#255#16'*Q'#255#15'(M'#255#14'*M'#255#11'+H'#255#13'''D' +#255#24'2Q'#255#30'<]'#255'.Mo'#255']v'#154#255'b{'#161#255'e'#127#163#255'g' +#130#165#255'g'#132#169#255'k'#134#173#255'l'#137#175#255'o'#141#178#255't' +#145#184#255'{'#150#192#255'}'#154#197#255'~'#158#199#255#127#160#200#255#127 +#159#201#255#127#160#201#255#131#164#202#255#133#166#204#255#135#167#205#255 +#139#169#205#255#140#171#207#255#143#173#209#255#145#175#210#255#146#176#211 +#255#147#176#211#255#147#177#211#255#149#178#211#255#151#179#212#255#152#181 +#213#255#153#181#213#255#154#181#212#255#156#182#213#255#157#183#215#255#158 ,#184#217#255#158#185#216#255#160#186#216#255#161#187#216#255#162#188#217#255 +#162#190#219#255#164#190#220#255#166#191#221#255#168#191#221#255#169#192#222 +#255#169#194#224#255#170#195#225#255#171#195#225#255#172#196#226#255#174#196 +#227#255#173#197#229#255#173#198#230#255#175#198#230#255#177#200#231#255#176 +#199#231#255#177#200#231#255#177#200#231#255#178#201#232#255#179#201#233#255 +#179#200#232#255#179#199#231#255#179#199#231#255#178#199#230#255#178#198#231 +#255#178#198#231#255#178#197#231#255#178#196#230#255#177#195#228#255#176#195 +#228#255#176#194#227#255#176#193#226#255#175#192#225#255#174#192#224#255#173 +#191#224#255#173#190#224#255#173#188#223#255#174#188#222#255#172#188#221#255 +#170#187#219#255#169#186#219#255#170#185#220#255#169#184#219#255#169#183#218 +#255#169#182#217#255#168#182#217#255#166#182#216#255#167#181#216#255#165#181 +#216#255#166#181#216#255#167#181#215#255#165#180#214#255#159#174#206#255#129 +#141#168#255'RYk'#255'"$+'#255#7#8#10#254#0#0#0#251#0#0#0#228#0#0#0#173#0#0#0 +'Z'#0#0#0#28#0#0#0#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#7#0#0#0')' +#0#0#0'r'#0#0#0#189#0#0#0#238#0#0#1#254#1#2#6#255#6#14#27#255#11#27'3'#255#12 +'$D'#255#12'(J'#255#14'&N'#255#13'%H'#255#11'$C'#255#12'$E'#255#18',S'#255#14 +'%L'#255#15'''J'#255#16'+J'#255#14'*E'#255#16'&@'#255')@_'#255'=Wy'#255'Kf' +#137#255'd{'#157#255'e{'#159#255'f}'#160#255'g'#128#163#255'h'#130#167#255'k' +#132#169#255'k'#135#172#255'm'#137#174#255'q'#140#177#255'w'#144#183#255'y' +#147#185#255'z'#149#187#255'{'#151#189#255'|'#151#191#255'|'#152#192#255#128 +#156#193#255#130#158#195#255#131#159#196#255#134#161#197#255#137#163#199#255 +#138#166#200#255#140#167#201#255#142#168#203#255#143#170#202#255#144#170#202 +#255#145#171#203#255#147#172#204#255#148#174#204#255#149#175#205#255#150#175 +#205#255#151#176#205#255#152#177#206#255#153#179#209#255#154#179#209#255#156 +#180#210#255#158#181#211#255#159#182#211#255#160#184#213#255#160#184#213#255 +#161#185#214#255#163#186#214#255#164#187#216#255#165#188#217#255#166#189#219 +#255#167#190#220#255#168#190#220#255#170#191#221#255#169#192#223#255#170#192 +#224#255#171#193#223#255#172#194#224#255#172#194#225#255#173#194#225#255#173 +#195#226#255#173#195#227#255#174#194#227#255#174#194#226#255#174#193#225#255 +#175#193#225#255#173#194#224#255#173#192#225#255#173#192#225#255#174#192#225 +#255#174#191#225#255#173#192#224#255#172#191#223#255#172#190#224#255#172#189 +#224#255#171#189#223#255#171#188#221#255#170#188#222#255#170#186#221#255#170 +#185#220#255#170#185#220#255#169#185#219#255#168#185#217#255#167#184#217#255 +#167#182#217#255#166#182#217#255#167#181#217#255#166#181#217#255#165#180#216 +#255#164#180#216#255#165#179#215#255#164#180#214#255#163#179#214#255#164#179 +#214#255#164#179#213#255#159#175#208#255#135#148#177#255'\ey'#255'+.8'#255#12 +#13#15#254#1#1#1#252#0#0#0#234#0#0#0#186#0#0#0'j'#0#0#0'%'#0#0#0#5#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#11#0#0#0'3'#0#0#0#129#0#0#0#200#0#0#0 +#242#0#0#1#254#1#3#7#255#7#16#31#255#12#29'8'#255#15')N'#255#18'5^'#255#14'(' +'Q'#255#18',Q'#255#23'1T'#255#24'2T'#255#25'3Y'#255#19',R'#255#17')K'#255#17 +')G'#255#18')F'#255#22',F'#255'4Jh'#255'Qf'#136#255'`u'#151#255'cw'#152#255 +'fy'#156#255'h{'#158#255'h}'#160#255'h'#128#163#255'k'#130#165#255'k'#132#168 +#255'm'#134#171#255'p'#136#173#255'q'#139#175#255't'#141#176#255'v'#143#178 +#255'x'#145#181#255'z'#147#183#255'{'#148#184#255'~'#151#186#255#128#153#189 +#255#130#155#191#255#132#157#193#255#133#159#194#255#134#160#194#255#136#162 +#195#255#138#162#197#255#138#164#195#255#142#165#195#255#143#166#197#255#144 +#167#197#255#146#169#196#255#147#169#197#255#148#170#199#255#148#171#200#255 +#150#172#200#255#152#174#201#255#152#173#202#255#154#175#204#255#156#177#206 +#255#157#177#206#255#158#178#208#255#158#179#208#255#159#180#209#255#160#181 +#210#255#160#182#211#255#161#183#211#255#163#184#213#255#164#184#214#255#165 +#185#215#255#166#186#216#255#166#187#217#255#167#187#217#255#168#188#217#255 +#169#189#218#255#169#189#220#255#169#189#220#255#169#189#220#255#170#190#221 +#255#170#189#220#255#170#189#219#255#170#188#219#255#170#188#219#255#169#188 +#219#255#170#187#220#255#170#187#219#255#170#187#219#255#170#186#219#255#169 +#187#218#255#168#186#218#255#168#185#219#255#168#186#220#255#167#185#219#255 +#167#184#218#255#167#184#217#255#166#183#216#255#166#182#216#255#165#182#216 +#255#166#182#215#255#165#181#214#255#164#180#215#255#164#180#214#255#164#180 +#214#255#164#179#215#255#164#179#215#255#163#179#215#255#162#178#214#255#163 +#178#214#255#162#178#213#255#162#177#212#255#163#177#213#255#163#177#212#255 +#158#175#209#255#139#154#184#255'fo'#134#255'48C'#255#16#18#21#255#2#2#3#253 +#0#0#0#239#0#0#0#198#0#0#0'z'#0#0#0'/'#0#0#0#8#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#15#0#0#0'='#0#0#0#144#0#0#0#212#0#0#0#248#0#0#1#255#2#4#9 +#255#10#19'#'#255#12#28'7'#255#15'(L'#255#24'd'#255'9Ou' +#255'8Pt'#255'-Mr'#255'*Hm'#255' :['#255#23'/N'#255#26'4T'#255'$Db'#255';Vu' ,#255'Uj'#137#255'fx'#150#255'ev'#149#255'gx'#153#255'iy'#155#255'iz'#154#255 +'h|'#155#255'k'#127#160#255'l'#129#163#255'm'#131#165#255'o'#133#168#255'q' +#136#172#255'r'#137#172#255't'#139#174#255'v'#141#176#255'x'#143#178#255'z' +#145#179#255'z'#147#180#255'|'#149#183#255'~'#151#187#255#128#154#189#255#128 +#154#188#255#130#156#189#255#133#157#190#255#134#159#191#255#136#159#193#255 +#141#161#191#255#142#163#191#255#142#164#191#255#144#164#191#255#147#163#192 +#255#146#165#195#255#146#166#196#255#149#168#196#255#152#168#195#255#152#168 +#196#255#152#170#198#255#153#172#200#255#154#173#201#255#156#174#202#255#156 +#176#205#255#158#177#206#255#159#177#206#255#159#178#206#255#159#178#206#255 +#161#179#208#255#163#180#209#255#162#180#211#255#163#181#212#255#163#182#211 +#255#164#183#212#255#165#184#214#255#166#184#215#255#167#184#216#255#166#185 +#215#255#166#185#215#255#168#185#214#255#167#186#214#255#168#186#215#255#167 +#185#215#255#165#184#214#255#166#184#215#255#167#184#215#255#166#183#215#255 +#166#183#214#255#167#182#213#255#166#182#214#255#166#182#214#255#165#182#214 +#255#164#181#214#255#164#181#214#255#164#181#214#255#164#180#212#255#163#179 +#212#255#162#178#212#255#162#178#211#255#163#179#210#255#162#177#210#255#161 +#177#211#255#161#177#212#255#162#177#211#255#161#176#211#255#161#176#211#255 +#161#176#210#255#160#176#210#255#159#176#210#255#159#174#210#255#160#173#211 +#255#161#174#211#255#160#175#211#255#158#173#209#255#143#157#188#255'lw'#142 +#255'9?L'#255#19#21#25#255#3#3#4#255#0#0#0#243#0#0#0#208#0#0#0#135#0#0#0':'#0 +#0#0#13#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#19#0#0#0'H'#0#0#0#155#0 +#0#0#217#0#0#0#248#0#1#3#254#2#5#11#255#9#18'!'#255#13#28'5'#255#16')I'#255 +#24'>d'#255'7Qp'#255'K`'#128#255'Qg'#137#255'Pf'#136#255'Uh'#137#255'Ug'#134 +#255'Ma'#127#255'G]|'#255'J`'#129#255'Vl'#138#255'\q'#142#255'_r'#143#255'bs' +#144#255'cs'#146#255'cv'#147#255'dx'#149#255'fz'#151#255'hz'#152#255'k|'#154 +#255'm'#127#157#255'l'#129#160#255'l'#130#163#255'n'#133#166#255'q'#133#166 +#255't'#135#169#255'v'#138#171#255'v'#141#172#255'x'#142#174#255'y'#144#177 +#255'{'#146#179#255'~'#148#181#255#128#148#183#255#127#149#183#255#130#151 +#184#255#133#152#184#255#136#154#185#255#139#156#189#255#139#156#187#255#140 +#157#187#255#141#158#187#255#142#160#187#255#144#160#188#255#143#160#190#255 +#145#162#190#255#149#164#189#255#149#165#191#255#149#166#194#255#150#167#196 +#255#152#168#197#255#154#170#197#255#153#171#198#255#153#172#200#255#155#172 +#201#255#157#174#202#255#157#175#202#255#157#176#204#255#158#176#205#255#159 +#176#206#255#159#178#206#255#159#178#208#255#161#178#208#255#161#180#209#255 +#162#181#210#255#163#181#210#255#164#181#211#255#163#181#212#255#163#181#211 +#255#164#182#210#255#163#182#210#255#164#182#211#255#164#181#212#255#164#181 +#211#255#164#181#210#255#164#181#211#255#163#180#211#255#163#179#211#255#163 +#180#210#255#163#179#211#255#162#179#210#255#163#179#210#255#162#178#210#255 +#160#177#209#255#162#177#209#255#162#177#209#255#161#176#210#255#160#175#209 +#255#160#174#207#255#160#175#207#255#159#174#208#255#159#173#207#255#159#174 +#207#255#159#174#207#255#158#173#207#255#158#173#207#255#158#173#207#255#157 +#173#207#255#157#171#207#255#157#171#206#255#156#170#206#255#155#170#207#255 +#155#170#205#255#155#169#206#255#144#157#191#255'q{'#149#255'AGW'#255#24#26 +' '#255#5#6#7#253#0#0#0#245#0#0#0#215#0#0#0#147#0#0#0'C'#0#0#0#17#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#23#0#0#0'R'#0#0#0#167#0#0#0#225#0#0#0#251 +#0#2#3#254#4#8#15#255#8#19'#'#255#14#27'3'#255#18'#@'#255#21'1Q'#255'8Nm'#255 +'Qb'#130#255'Xj'#140#255'Vi'#139#255'\k'#137#255']l'#137#255'\l'#137#255'Zl' +#138#255'Zn'#140#255'_q'#143#255'ar'#143#255'ar'#142#255'bq'#141#255'cs'#145 +#255'cu'#144#255'dw'#147#255'fy'#151#255'iy'#152#255'l{'#151#255'm}'#153#255 +'m'#127#156#255'n'#129#160#255'o'#130#162#255'r'#132#164#255't'#134#166#255 +'u'#136#167#255'v'#139#169#255'x'#141#172#255'y'#141#173#255'|'#143#174#255 +#127#145#176#255#128#145#178#255'~'#147#178#255#129#149#178#255#132#150#179 +#255#133#151#181#255#135#153#182#255#138#153#183#255#138#154#183#255#137#155 +#183#255#138#156#184#255#142#159#186#255#142#159#187#255#143#159#188#255#147 +#161#187#255#146#163#189#255#147#163#192#255#148#164#192#255#150#165#192#255 +#152#167#194#255#152#168#195#255#153#169#198#255#154#169#199#255#154#170#198 +#255#155#171#197#255#156#173#200#255#157#173#202#255#158#173#203#255#158#175 +#203#255#159#176#205#255#160#176#206#255#160#177#206#255#161#178#207#255#163 +#177#207#255#161#178#208#255#162#178#209#255#163#178#209#255#163#179#209#255 +#162#178#208#255#163#179#208#255#162#178#208#255#162#178#208#255#163#178#208 +#255#162#178#208#255#161#177#209#255#161#177#209#255#161#177#209#255#160#176 +#207#255#161#176#208#255#161#176#208#255#161#176#207#255#160#175#207#255#161 +#174#209#255#160#174#207#255#159#173#206#255#159#172#205#255#159#173#206#255 +#159#172#205#255#158#172#204#255#158#171#204#255#158#170#205#255#156#170#205 ,#255#156#170#203#255#156#169#203#255#156#169#204#255#155#168#203#255#154#167 +#203#255#155#167#203#255#154#167#203#255#153#166#203#255#153#166#201#255#153 +#166#202#255#144#156#190#255'u~'#155#255'GL^'#255#27#29'$'#255#5#6#8#254#0#0 +#0#248#0#0#0#221#0#0#0#157#0#0#0'L'#0#0#0#22#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#3#0#0#0#28#0#0#0'Z'#0#0#0#175#0#0#0#229#0#0#0#253#1#2#4#255#4#10#18 +#255#12#25'+'#255#18#31'8'#255#21'!='#255#20'&F'#255'"8Y'#255'IXz'#255']i' +#139#255'Xh'#135#255'Zi'#133#255'[j'#134#255']l'#136#255'^m'#138#255']n'#138 +#255']m'#138#255'_o'#139#255'ap'#140#255'bq'#141#255'bs'#143#255'dt'#143#255 +'ev'#145#255'gw'#148#255'jy'#151#255'lz'#150#255'l{'#151#255'n}'#154#255'p' +#127#158#255'q'#128#160#255'r'#131#161#255't'#132#163#255'u'#134#164#255'u' +#136#166#255'v'#138#168#255'z'#139#169#255'}'#140#171#255'~'#142#172#255#127 +#143#174#255'}'#145#174#255#128#146#175#255#131#147#176#255#131#149#177#255 +#132#150#178#255#136#150#180#255#135#152#181#255#135#153#181#255#137#153#181 +#255#140#156#183#255#141#157#185#255#142#157#186#255#143#158#186#255#144#160 +#187#255#145#160#190#255#146#161#190#255#148#163#190#255#149#165#192#255#150 +#165#193#255#151#166#195#255#152#167#196#255#152#167#197#255#153#169#196#255 +#154#171#198#255#155#171#198#255#156#171#199#255#156#172#201#255#157#173#202 +#255#158#173#203#255#158#174#203#255#159#174#203#255#160#175#204#255#158#175 +#204#255#160#176#206#255#161#176#207#255#160#176#206#255#161#176#205#255#161 +#176#206#255#161#176#206#255#160#176#206#255#160#175#206#255#160#175#205#255 +#159#175#206#255#159#175#206#255#159#174#206#255#158#174#205#255#160#174#205 +#255#159#174#205#255#158#173#204#255#159#172#205#255#158#171#206#255#158#171 +#204#255#157#170#202#255#157#170#202#255#157#170#203#255#157#170#202#255#156 +#169#201#255#156#168#201#255#155#167#201#255#154#167#203#255#154#166#201#255 +#154#166#200#255#153#165#201#255#153#165#200#255#152#164#199#255#152#164#200 +#255#152#164#200#255#151#163#200#255#151#163#198#255#152#163#199#255#144#155 +#190#255'w'#128#158#255'MRe'#255#31'!)'#255#7#8#10#255#0#0#0#249#0#0#0#224#0 +#0#0#165#0#0#0'S'#0#0#0#26#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#4#0#0#0' '#0 +#0#0'a'#0#0#0#180#0#0#0#231#0#0#0#252#1#3#5#255#5#10#19#255#17#30'2'#255#21 +'#>'#255#24'$B'#255'$1R'#255#31'4V'#255'GUv'#255'_i'#135#255'Yg'#131#255'Zh' +#132#255'Zi'#131#255'[j'#133#255']l'#134#255']l'#135#255']l'#135#255'_n'#137 +#255'`o'#139#255'ap'#141#255'ar'#140#255'cr'#142#255'et'#143#255'gv'#145#255 +'jx'#148#255'iy'#149#255'k{'#152#255'm}'#154#255'o~'#156#255'q'#127#158#255 +'q'#129#158#255't'#131#160#255'u'#132#162#255't'#134#163#255't'#135#164#255 +'y'#137#166#255'{'#138#168#255'{'#139#169#255'{'#141#170#255'|'#142#170#255 +'~'#143#172#255#128#145#174#255#130#147#175#255#131#148#177#255#133#147#178 +#255#133#149#180#255#134#151#180#255#137#152#179#255#137#152#181#255#139#153 +#183#255#141#155#183#255#141#157#184#255#142#157#185#255#143#157#188#255#145 +#158#188#255#146#160#188#255#148#161#190#255#148#162#190#255#149#163#191#255 +#150#164#194#255#151#166#196#255#152#166#196#255#152#168#197#255#152#168#196 +#255#153#168#196#255#154#170#198#255#154#169#199#255#155#170#199#255#156#171 +#200#255#157#171#201#255#157#172#201#255#156#172#200#255#156#173#202#255#157 +#173#203#255#157#172#203#255#158#173#202#255#158#173#203#255#158#174#204#255 +#158#174#204#255#157#172#203#255#158#172#203#255#157#172#203#255#157#172#203 +#255#156#171#202#255#156#171#202#255#157#171#202#255#156#171#202#255#155#170 +#201#255#155#169#201#255#155#168#201#255#155#168#201#255#154#167#200#255#155 +#167#199#255#155#167#199#255#153#166#198#255#153#166#198#255#153#164#197#255 +#151#163#195#255#152#164#199#255#152#163#199#255#151#163#197#255#150#163#196 +#255#150#162#197#255#150#162#197#255#149#161#196#255#149#161#196#255#148#160 +#196#255#148#159#194#255#149#161#197#255#143#154#190#255'y'#130#160#255'PWj' +#255'#%.'#255#10#11#14#254#1#1#1#249#0#0#0#227#0#0#0#172#0#0#0'Z'#0#0#0#30#0 +#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#5#0#0#0'$'#0#0#0'i'#0#0#0#188#0#0#0#236 +#0#0#0#254#2#2#5#255#7#10#20#255#16#25','#255#13#28'6'#255#28',I'#255'OYv' +#255'Yd'#128#255'Ze'#128#255'Ye'#128#255'Ye'#129#255'Zf'#130#255'[i'#130#255 +'Zj'#129#255'Zk'#130#255'\l'#133#255'_k'#134#255'_m'#136#255'_n'#137#255'_n' +#137#255'aq'#139#255'cr'#140#255'es'#143#255'gu'#145#255'hw'#146#255'hx'#149 +#255'jy'#151#255'm{'#153#255'n}'#154#255'n~'#154#255'o'#128#154#255'q'#129 +#157#255't'#130#159#255't'#131#159#255'v'#134#161#255'w'#134#162#255'x'#135 +#164#255'y'#137#166#255'y'#139#168#255'{'#141#168#255'|'#142#170#255'~'#143 +#172#255#127#144#172#255#129#146#175#255#131#147#177#255#131#147#178#255#132 +#148#178#255#135#150#179#255#136#150#179#255#137#150#180#255#138#152#181#255 +#139#154#182#255#140#155#182#255#143#156#185#255#143#157#185#255#144#157#185 +#255#145#158#187#255#146#160#187#255#147#161#189#255#148#162#191#255#149#163 +#191#255#150#163#192#255#150#164#194#255#151#165#195#255#152#166#195#255#152 ,#167#195#255#153#167#196#255#154#169#197#255#155#169#199#255#155#168#199#255 +#155#169#199#255#155#170#200#255#154#170#199#255#154#170#199#255#155#171#199 +#255#155#170#201#255#155#170#201#255#155#169#201#255#155#169#201#255#156#170 +#201#255#156#170#201#255#155#169#201#255#154#169#200#255#154#168#199#255#154 +#168#199#255#154#168#199#255#154#168#199#255#154#168#199#255#153#167#200#255 +#153#166#198#255#153#165#198#255#153#165#198#255#152#164#197#255#151#164#196 +#255#150#163#195#255#150#162#195#255#150#162#195#255#149#161#194#255#148#160 +#195#255#148#160#195#255#148#160#195#255#148#160#194#255#148#159#195#255#148 +#160#194#255#147#159#192#255#146#158#191#255#146#158#191#255#146#158#191#255 +#146#158#193#255#141#153#188#255'y'#131#161#255'QWk'#255'#''/'#255#9#10#13 +#255#0#0#0#251#0#0#0#232#0#0#0#178#0#0#0'^'#0#0#0' '#0#0#0#2#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#6#0#0#0''''#0#0#0'm'#0#0#0#190#0#0#0#235#0#0#0#252#1#1#4#255#5 +#7#16#255#14#24')'#255#28'-D'#255'3D`'#255'Q^{'#255'Ze'#127#255'Zf~'#255'Xf~' +#255'Xe'#129#255'[f'#129#255'[g'#128#255'Zh'#128#255'Zi'#130#255'\j'#133#255 +'_k'#135#255'^l'#135#255']m'#136#255'^n'#136#255'bp'#138#255'cr'#140#255'ds' +#141#255'dt'#142#255'eu'#144#255'iw'#149#255'iw'#149#255'jx'#149#255'l{'#150 +#255'l}'#151#255'n~'#154#255'p'#127#154#255's'#128#155#255't'#130#157#255'u' +#132#158#255'u'#132#161#255'v'#133#162#255'x'#135#164#255'x'#137#167#255'z' +#138#167#255'y'#139#166#255'{'#139#166#255#127#141#169#255#127#144#170#255 +#128#145#174#255#128#145#176#255#128#146#177#255#132#148#177#255#133#148#176 +#255#135#149#178#255#136#150#180#255#137#152#180#255#137#153#179#255#139#153 +#181#255#139#154#183#255#140#155#185#255#142#156#186#255#144#157#187#255#144 +#158#188#255#145#159#189#255#146#160#189#255#146#162#188#255#146#162#190#255 +#148#163#192#255#149#163#193#255#150#163#193#255#150#164#193#255#151#165#195 +#255#152#165#196#255#152#165#196#255#153#167#198#255#152#167#199#255#152#167 +#198#255#152#167#197#255#154#168#198#255#153#168#199#255#152#167#199#255#153 +#167#199#255#153#167#198#255#153#166#198#255#153#167#199#255#152#168#198#255 +#152#167#198#255#153#166#197#255#152#167#197#255#152#165#198#255#152#164#197 +#255#152#164#197#255#151#165#197#255#151#164#197#255#151#163#196#255#150#162 +#195#255#149#162#194#255#149#162#194#255#148#160#192#255#147#159#191#255#147 +#159#191#255#147#159#192#255#146#158#191#255#145#158#192#255#146#157#192#255 +#146#157#192#255#145#157#191#255#145#157#190#255#144#156#189#255#143#156#188 +#255#144#156#187#255#145#156#188#255#144#154#187#255#138#150#181#255'w'#131 +#158#255'SZn'#255'&)2'#255#12#13#16#255#2#1#2#250#0#0#0#230#0#0#0#180#0#0#0 +'b'#0#0#0'"'#0#0#0#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#6#0#0#0'('#0#0#0'p'#0#0#0 +#193#0#0#0#237#0#0#0#253#2#3#5#255#13#16#25#255'!,<'#255'9H^'#255'L[u'#255'T' +'b|'#255'Xd~'#255'Xe~'#255'Xf~'#255'Yf'#128#255'Zf'#128#255'\f'#128#255'\h' +#129#255'\h'#131#255']h'#131#255'^j'#133#255'^l'#133#255'`m'#135#255'an'#136 +#255'an'#137#255'dp'#140#255'er'#141#255'er'#141#255'et'#142#255'hv'#146#255 +'hv'#145#255'iv'#145#255'kx'#147#255'l{'#149#255'n|'#151#255'o}'#152#255'p' +#127#153#255's'#129#156#255't'#129#157#255't'#131#159#255'u'#132#161#255'w' +#133#163#255'x'#135#165#255'z'#137#166#255'z'#138#165#255'{'#138#167#255'}' +#140#169#255'~'#141#169#255#128#143#170#255#128#144#172#255#129#145#174#255 +#131#146#176#255#132#147#176#255#133#147#177#255#135#149#178#255#135#150#179 +#255#136#151#179#255#137#152#179#255#138#153#181#255#140#154#183#255#141#155 +#183#255#141#156#183#255#142#157#185#255#143#157#187#255#144#158#188#255#145 +#159#187#255#146#160#189#255#146#161#190#255#147#161#192#255#148#161#193#255 +#148#162#193#255#150#163#195#255#150#163#195#255#150#163#194#255#150#166#195 +#255#149#165#196#255#149#165#196#255#150#165#195#255#151#165#195#255#151#165 +#197#255#151#165#197#255#152#165#197#255#152#165#197#255#151#164#196#255#151 +#164#196#255#151#165#196#255#151#164#196#255#151#164#197#255#151#164#196#255 +#151#163#195#255#151#163#195#255#150#162#195#255#149#162#194#255#149#162#195 +#255#148#161#195#255#148#161#192#255#147#160#191#255#148#160#193#255#147#159 +#191#255#146#158#190#255#146#158#191#255#146#158#191#255#144#157#188#255#144 +#157#189#255#144#156#190#255#144#155#190#255#144#156#189#255#143#154#188#255 +#142#154#187#255#142#154#186#255#142#153#185#255#142#153#186#255#142#152#186 +#255#138#149#180#255'x'#130#157#255'RZn'#255'&)2'#255#11#12#15#255#1#1#1#251 +#0#0#0#233#0#0#0#183#0#0#0'e'#0#0#0'$'#0#0#0#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#6#0#0#0'*'#0#0#0's'#0#0#0#195#0#0#0#239#0#0#0#254#4#5#8#255#24#28'$'#255'4=' +'O'#255'LYo'#255'Xf}'#255'Wd}'#255'Yd~'#255'Xe'#127#255'Xf'#127#255'Yf'#128 +#255'Zf'#128#255']g'#129#255']h'#131#255']g'#131#255'^g'#130#255'^j'#131#255 +'_k'#131#255'bl'#133#255'el'#136#255'bm'#137#255'dp'#139#255'fp'#140#255'fq' +#140#255'fs'#141#255'hu'#143#255'hv'#143#255'iv'#144#255'kw'#145#255'my'#148 +#255'nz'#149#255'n{'#150#255'o}'#153#255'r'#128#155#255's'#128#156#255's'#130 ,#157#255'u'#131#160#255'v'#132#162#255'w'#133#163#255'y'#135#164#255'{'#137 +#165#255'|'#138#168#255'|'#139#169#255'}'#139#168#255#127#142#169#255#128#143 +#170#255#129#143#172#255#131#145#174#255#132#145#175#255#132#146#176#255#133 +#147#177#255#135#149#177#255#136#150#178#255#137#151#178#255#139#152#180#255 +#140#153#182#255#141#154#182#255#140#155#181#255#141#155#183#255#142#156#186 +#255#143#157#188#255#145#157#188#255#146#158#188#255#146#159#190#255#146#160 +#192#255#146#160#193#255#147#161#192#255#148#162#194#255#149#162#194#255#149 +#162#193#255#148#164#194#255#148#163#194#255#148#163#195#255#149#164#195#255 +#150#164#194#255#150#164#196#255#151#164#196#255#151#164#195#255#150#164#195 +#255#151#164#195#255#150#163#194#255#150#162#194#255#150#162#195#255#150#162 +#195#255#150#162#194#255#150#163#193#255#150#163#193#255#149#162#194#255#148 +#160#193#255#148#160#193#255#147#160#193#255#147#160#191#255#147#160#191#255 +#146#158#191#255#146#158#190#255#145#158#191#255#146#157#190#255#145#156#189 +#255#144#157#187#255#143#156#187#255#143#155#188#255#143#154#188#255#145#154 +#187#255#142#152#187#255#141#152#186#255#141#152#184#255#140#151#183#255#139 +#151#184#255#141#152#185#255#138#148#180#255'x'#128#157#255'RYm'#255'%(1'#255 +#11#12#14#255#0#1#1#252#0#0#0#233#0#0#0#184#0#0#0'e'#0#0#0'$'#0#0#0#3#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#7#0#0#0'+'#0#0#0't'#0#0#0#194#0#0#0#237#0#1#1#253#7#8 +#12#255#29' )'#255'8>Q'#255'KVm'#255'Sbz'#255'Wc}'#255'[c|'#255'[d~'#255'[e' +#129#255'Zf'#129#255'[f'#128#255']g'#130#255']g'#130#255'\g'#130#255']h'#130 +#255'^j'#132#255'_j'#130#255'bj'#131#255'ek'#133#255'dm'#136#255'dp'#137#255 +'fo'#137#255'go'#138#255'fr'#141#255'gr'#142#255'ht'#143#255'iw'#144#255'jx' +#145#255'mx'#147#255'nx'#148#255'nz'#149#255'n|'#152#255'p~'#155#255'r'#129 +#156#255's'#129#156#255't'#129#157#255'u'#130#159#255'u'#130#160#255'w'#132 +#161#255'y'#135#163#255'z'#136#165#255'{'#137#166#255'{'#138#165#255#127#140 +#169#255#127#141#171#255#128#142#171#255#130#144#172#255#131#145#173#255#131 +#145#175#255#133#146#175#255#134#148#174#255#135#150#176#255#135#149#177#255 +#136#150#180#255#138#151#182#255#139#152#182#255#141#154#183#255#140#154#184 +#255#141#155#185#255#142#156#186#255#143#156#186#255#143#157#187#255#144#158 +#190#255#145#158#191#255#145#158#191#255#145#160#191#255#145#160#192#255#146 +#160#192#255#147#161#192#255#147#162#193#255#147#161#193#255#148#162#194#255 +#149#163#195#255#149#163#194#255#148#163#195#255#149#163#195#255#149#163#194 +#255#149#163#194#255#150#163#194#255#149#162#194#255#149#161#194#255#149#161 +#193#255#149#161#192#255#149#161#193#255#149#162#192#255#148#161#192#255#147 +#160#193#255#147#160#193#255#147#159#192#255#146#158#191#255#146#158#191#255 +#146#158#191#255#145#157#190#255#144#156#190#255#144#156#189#255#144#155#188 +#255#144#155#186#255#143#155#186#255#141#153#186#255#141#153#185#255#141#153 +#185#255#143#152#185#255#141#151#185#255#141#151#183#255#140#150#182#255#140 +#150#182#255#139#150#182#255#139#151#182#255#134#145#178#255'u}'#156#255'SWl' +#255'%(1'#255#12#13#16#255#2#2#2#251#0#0#0#230#0#0#0#181#0#0#0'c'#0#0#0'#'#0 +#0#0#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#7#0#0#0','#0#0#0'v'#0#0#0#198#0#0#0#240 +#1#1#1#254#8#10#12#255#27#31'('#255'9>O'#255'MTl'#255'V_z'#255'X`{'#255'Yb{' +#255'Za|'#255'Zb~'#255'[c'#127#255']d~'#255'\d'#127#255'Zf'#127#255'Zg'#127 +#255'\h'#129#255']i'#131#255'_i'#130#255'bi'#131#255'cj'#133#255'ak'#134#255 +'cm'#134#255'fn'#136#255'fo'#138#255'dp'#139#255'dq'#140#255'fs'#142#255'ht' +#143#255'iu'#144#255'jw'#146#255'jv'#146#255'ly'#150#255'n|'#153#255'n|'#153 +#255'o~'#153#255'q'#128#155#255'r'#129#156#255's'#131#157#255'u'#132#160#255 +'v'#133#160#255'x'#135#163#255'y'#136#165#255'y'#136#166#255'{'#138#168#255 +'|'#138#167#255'}'#139#169#255#127#141#170#255#128#144#170#255#130#144#172 +#255#130#145#174#255#131#146#175#255#132#146#175#255#132#147#175#255#133#148 +#177#255#134#148#179#255#136#149#180#255#137#150#180#255#137#150#181#255#139 +#152#183#255#140#153#184#255#141#154#184#255#141#154#184#255#141#155#187#255 +#142#155#188#255#143#155#188#255#143#157#189#255#144#157#189#255#144#158#190 +#255#143#158#190#255#143#159#189#255#146#159#190#255#146#159#192#255#144#159 +#192#255#144#159#192#255#147#159#193#255#147#159#193#255#146#159#193#255#147 +#159#192#255#147#159#192#255#146#158#190#255#148#160#192#255#147#160#192#255 +#146#159#191#255#146#159#191#255#146#158#191#255#146#159#191#255#146#159#191 +#255#145#158#190#255#144#157#190#255#143#156#188#255#143#156#188#255#143#155 +#187#255#142#155#185#255#143#155#186#255#142#154#186#255#142#153#184#255#141 +#153#183#255#142#153#183#255#143#151#183#255#141#150#182#255#139#151#183#255 +#139#151#183#255#139#149#182#255#138#149#181#255#138#149#180#255#138#149#180 +#255#138#147#178#255#139#145#178#255#137#148#178#255#132#143#175#255'r{'#152 +#255'NTg'#255'"%-'#255#9#10#12#255#0#0#0#253#0#0#0#233#0#0#0#181#0#0#0'b'#0#0 +#0'"'#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#7#0#0#0','#0#0#0'v'#0#0#0#198#0#0 ,#0#240#1#1#2#254#8#10#12#255#27' )'#255'9>Q'#255'MVm'#255'Taz'#255'Ub}'#255 +'Wb}'#255'Yb}'#255'Zb{'#255'Zby'#255'\dz'#255'[d~'#255'Ze~'#255'[f}'#255']f}' +#255'^g'#129#255'`h'#129#255'bi'#130#255'bi'#132#255'ak'#133#255'ak'#133#255 +'bm'#136#255'dp'#138#255'fp'#138#255'ep'#140#255'fr'#141#255'fs'#143#255'fu' +#143#255'hw'#145#255'jw'#146#255'ky'#148#255'l{'#150#255'm|'#151#255'n}'#152 +#255'o~'#153#255'q'#128#154#255's'#129#156#255't'#131#158#255't'#132#158#255 +'u'#133#160#255'w'#134#163#255'y'#135#164#255'z'#137#166#255'z'#138#166#255 +'|'#139#167#255'}'#140#169#255'}'#141#169#255#127#143#170#255#128#143#173#255 +#128#144#174#255#129#145#174#255#131#146#175#255#132#146#175#255#132#146#178 +#255#134#147#180#255#136#149#180#255#136#148#180#255#137#150#180#255#138#151 +#180#255#138#151#181#255#139#152#183#255#138#153#184#255#139#154#186#255#141 +#154#185#255#141#154#184#255#142#155#186#255#142#156#187#255#142#156#187#255 +#142#157#187#255#143#156#188#255#144#156#189#255#143#157#189#255#143#157#189 +#255#144#157#189#255#145#158#190#255#145#158#190#255#145#158#190#255#145#157 +#190#255#144#157#189#255#145#157#189#255#144#157#189#255#144#157#188#255#144 +#157#188#255#144#157#189#255#144#156#190#255#143#156#189#255#142#156#187#255 +#142#155#187#255#142#155#188#255#141#154#187#255#141#153#187#255#140#153#185 +#255#140#153#184#255#141#153#184#255#141#152#183#255#140#152#183#255#140#152 +#183#255#141#150#183#255#140#150#182#255#139#149#181#255#137#148#181#255#137 +#148#180#255#136#148#179#255#136#147#179#255#136#147#178#255#135#146#177#255 +#137#145#177#255#136#147#177#255#131#142#172#255'qz'#149#255'LSe'#255'"$-' +#255#10#11#13#255#1#1#1#251#0#0#0#230#0#0#0#178#0#0#0'_'#0#0#0' '#0#0#0#2#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#7#0#0#0'+'#0#0#0't'#0#0#0#196#0#0#0#239#1#1#2#254 +#8#10#12#255#27#31''''#255'8DV'#255'PXl'#255'U`t'#255'V^t' +#255'V]u'#255'Y^w'#255'[`y'#255'X`w'#255'Yaw'#255'[av'#255'[av'#255'[cy'#255 +'\dx'#255'\d|'#255'^d}'#255'`e|'#255'^g'#127#255']g'#128#255'^g'#129#255'_g' +#128#255'_h'#128#255'bj'#131#255'ck'#134#255'el'#135#255'em'#134#255'dm'#133 +#255'en'#134#255'gn'#133#255'ho'#135#255'hr'#139#255'gs'#140#255'js'#142#255 +'kt'#141#255'kt'#140#255'mt'#144#255'nu'#145#255'mv'#146#255'nw'#147#255'qy' +#148#255'qz'#149#255'q{'#150#255's|'#150#255't|'#151#255't~'#153#255'v~'#154 +#255'v'#128#156#255'v'#129#157#255'v'#129#157#255'w'#130#158#255'w'#131#158 +#255'x'#131#159#255'x'#132#160#255'x'#134#161#255'z'#135#162#255'{'#135#164 +#255'z'#136#165#255'{'#137#166#255#127#138#165#255'}'#137#166#255'}'#139#167 +#255'~'#139#168#255#127#138#169#255#127#139#168#255'~'#139#167#255#127#139 +#168#255#128#140#169#255#127#141#169#255#127#141#170#255#128#140#170#255#129 +#141#170#255#129#142#170#255#129#142#170#255#131#142#170#255#131#142#171#255 +#129#143#172#255#129#143#172#255#130#143#171#255#129#142#172#255#129#142#172 +#255#130#143#170#255#131#141#170#255#130#141#171#255#130#141#172#255#130#140 +#171#255#129#140#170#255#129#141#171#255#129#139#170#255#128#139#169#255#128 +#138#169#255#128#138#170#255#128#138#169#255#128#136#167#255#129#136#166#255 +#130#136#167#255#127#135#167#255'~'#134#167#255'}'#135#166#255'{'#135#165#255 +'}'#133#164#255#128#134#163#255#127#133#163#255'~'#131#164#255'}'#132#165#255 +'|'#132#164#255'|'#129#162#255'os'#144#255'RVj'#255'),6'#255#12#13#17#255#2#2 +#3#254#0#0#0#242#0#0#0#203#0#0#0'~'#0#0#0'3'#0#0#0#10#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#14#0#0#0'='#0#0#0#144#0#0#0#212#0#0#0#247#1#2#2#254#11 +#12#14#255'"$.'#255'<@S'#255'PUm'#255'V\q'#255'W\q'#255'V]t'#255'X_w'#255'Z`' +'w'#255'X`v'#255'Y`u'#255'[at'#255'\at'#255']au'#255'[av'#255'[bx'#255']cx' +#255'^cw'#255']dx'#255'^f{'#255'^f~'#255'_g'#127#255'`h}'#255'ah'#128#255'ci' +#131#255'dj'#133#255'cl'#133#255'el'#131#255'dj'#132#255'fl'#134#255'gn'#136 +#255'go'#136#255'hq'#138#255'iq'#138#255'iq'#138#255'hq'#139#255'jr'#142#255 +'mr'#143#255'os'#145#255'ou'#145#255'nv'#144#255'pw'#145#255'py'#147#255'qz' +#149#255'q{'#150#255'q|'#151#255't|'#151#255'u~'#153#255'u'#127#154#255't' +#128#155#255't'#130#156#255'w'#129#156#255'w'#129#157#255'v'#130#158#255'v' +#131#159#255'w'#132#159#255'y'#133#162#255'z'#134#164#255'{'#135#163#255'|' +#135#162#255'}'#135#162#255'}'#135#163#255'}'#136#165#255'{'#136#166#255'|' +#136#164#255'}'#136#164#255'~'#136#165#255#127#137#167#255'~'#138#168#255'|' +#139#168#255'}'#138#167#255#127#137#166#255#127#138#167#255#128#139#167#255 ,#128#139#166#255#127#139#166#255'~'#139#167#255'~'#139#169#255#128#138#167 +#255#128#138#168#255#127#139#168#255'~'#140#166#255'}'#137#166#255#127#138 +#169#255#127#138#169#255'~'#138#168#255#127#137#167#255#127#137#168#255#127 +#137#168#255'}'#136#166#255'{'#135#164#255'|'#135#166#255#128#135#167#255#128 +#133#164#255#128#132#162#255#128#133#162#255'~'#132#162#255'~'#131#163#255'{' +#131#164#255'y'#131#164#255'{'#131#164#255'~'#131#161#255'|'#130#159#255'z' +#129#159#255'z'#130#161#255'z'#128#160#255'y'#127#158#255'jo'#138#255'KNb' +#255'$%/'#255#10#11#14#255#1#1#2#253#0#0#0#236#0#0#0#193#0#0#0'r'#0#0#0'*'#0 +#0#0#6#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#9#0#0#0'2'#0#0#0#129#0#0 +#0#199#0#0#0#241#1#2#2#253#9#9#11#255#28#30''''#255'6:J'#255'MQf'#255'V\p' +#255'V]r'#255'W\r'#255'X]s'#255'X^t'#255'Y_s'#255'Z_t'#255'Z_t'#255'[_u'#255 +']`w'#255']aw'#255'[bw'#255'[bx'#255']by'#255'^by'#255']cx'#255'^d{'#255'_f}' +#255'_g{'#255'`f}'#255'bg'#129#255'ch'#131#255'ci'#132#255'cj'#130#255'dj' +#130#255'dk'#131#255'em'#133#255'fn'#134#255'eo'#134#255'gp'#136#255'hp'#136 +#255'ip'#136#255'iq'#138#255'kq'#139#255'lq'#140#255'mr'#141#255'mt'#143#255 +'nv'#145#255'mw'#146#255'nx'#147#255'px'#147#255'qy'#148#255'rz'#147#255's{' +#149#255's|'#151#255's|'#153#255'r~'#153#255't~'#153#255'u'#127#154#255'v' +#127#155#255'w'#128#156#255'v'#129#158#255'v'#130#159#255'w'#131#159#255'w' +#132#158#255'x'#132#158#255'z'#133#159#255'{'#132#160#255'z'#132#162#255'z' +#133#163#255'|'#134#163#255'|'#134#162#255'|'#134#164#255'}'#134#165#255'{' +#134#164#255'}'#136#165#255'}'#137#165#255'}'#136#165#255'~'#136#165#255#127 +#136#165#255#127#137#165#255#127#136#166#255#127#136#167#255'~'#138#168#255 +#127#136#167#255#127#136#165#255'~'#136#165#255'~'#136#166#255'|'#135#165#255 +#127#135#167#255'~'#135#166#255'}'#135#165#255'~'#134#166#255'~'#135#165#255 +'}'#135#164#255'|'#135#163#255'|'#133#163#255'|'#132#164#255'~'#133#163#255 +'~'#132#161#255'}'#131#160#255'{'#132#161#255'z'#131#163#255'y'#130#162#255 +'y'#130#161#255'y'#130#161#255'z'#130#162#255'|'#128#158#255'{'#128#158#255 +'z'#128#158#255'y'#129#158#255'{'#128#158#255'v|'#152#255'ch'#127#255'BEU' +#255#28#30'%'#255#7#8#10#255#0#0#1#251#0#0#0#230#0#0#0#180#0#0#0'b'#0#0#0'!' +#0#0#0#4#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#6#0#0#0'('#0#0#0'q'#0 +#0#0#188#0#0#0#237#1#1#1#254#6#6#8#255#23#25#31#255'14@'#255'HM^'#255'TYm' +#255'V\r'#255'W[r'#255'X[r'#255'X\s'#255'Z^r'#255'Z]s'#255'Z]s'#255'Z^t'#255 +'[`u'#255'[`u'#255'Zbx'#255'Zbx'#255'\aw'#255'^cy'#255'^by'#255'_cy'#255'`dz' +#255'`fz'#255'`f|'#255'bf}'#255'cf'#127#255'bg'#129#255'ah'#130#255'ci'#129 +#255'ck'#130#255'dl'#131#255'el'#131#255'dm'#131#255'fn'#133#255'gn'#133#255 +'hn'#134#255'hp'#135#255'hp'#137#255'hp'#138#255'jq'#139#255'ms'#141#255'ks' +#142#255'lt'#144#255'mu'#144#255'mu'#143#255'ou'#143#255'qx'#145#255'qy'#147 +#255'qy'#148#255'rz'#150#255'r{'#150#255's{'#150#255't|'#151#255'u}'#152#255 +'w~'#154#255'v~'#156#255'v'#127#155#255'v'#128#156#255'v'#129#156#255'w'#130 +#156#255'x'#130#157#255'y'#130#158#255'y'#130#158#255'y'#131#159#255'{'#132 +#161#255'{'#132#161#255'z'#132#162#255'z'#133#162#255'z'#133#161#255'}'#133 +#161#255'}'#133#162#255'|'#133#162#255'}'#134#162#255'}'#134#163#255'}'#134 +#163#255'}'#134#164#255'}'#134#164#255'z'#134#164#255'|'#133#164#255'}'#134 +#163#255'}'#134#163#255'~'#133#164#255'|'#133#163#255'}'#133#163#255'}'#133 +#162#255'}'#132#162#255'}'#131#162#255'|'#132#161#255'{'#132#160#255'{'#131 +#161#255'|'#131#161#255'z'#130#161#255'{'#130#161#255'{'#130#159#255'z'#130 +#158#255'z'#130#160#255'x'#130#162#255'w'#128#160#255'x'#128#158#255'z'#128 +#158#255'x'#128#159#255'y~'#156#255'y}'#156#255'x~'#156#255'x~'#156#255'w' +#127#156#255'qw'#147#255'[_u'#255'8;I'#255#22#23#29#255#5#5#7#254#0#0#0#250#0 +#0#0#224#0#0#0#167#0#0#0'T'#0#0#0#24#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#4#0#0#0#30#0#0#0'a'#0#0#0#175#0#0#0#231#0#0#0#253#4#4#5#255#19 +#19#23#255'+,7'#255'BGX'#255'QVi'#255'VZp'#255'WZt'#255'XZt'#255'Z[r'#255'Y\' +'r'#255'[]r'#255'Z^r'#255'Y^r'#255'Y_s'#255'X`s'#255'Xax'#255'Z`w'#255'\_s' +#255']bu'#255'`cy'#255'`by'#255'`by'#255'aez'#255'ae{'#255'bez'#255'be|'#255 +'bf~'#255'ah'#128#255'bh'#127#255'ci'#128#255'dj'#130#255'ej'#129#255'ek'#129 +#255'el'#129#255'fk'#130#255'gk'#131#255'hn'#133#255'hn'#136#255'fo'#137#255 +'hp'#137#255'lq'#137#255'jr'#138#255'lr'#140#255'lr'#140#255'ks'#140#255'ms' +#141#255'pv'#145#255'ow'#147#255'px'#147#255'qx'#147#255'sy'#149#255'qz'#149 +#255'rz'#150#255't{'#151#255'u|'#151#255'u|'#152#255'u}'#153#255'v~'#154#255 +'w'#127#155#255'v'#127#155#255'w'#127#156#255'x'#127#155#255'y'#127#155#255 +'y'#128#156#255'x'#129#158#255'y'#129#159#255'x'#130#159#255'x'#131#159#255 +'y'#131#159#255'{'#130#158#255'{'#129#158#255'|'#130#158#255'}'#131#159#255 +'{'#132#160#255'z'#131#161#255'z'#131#160#255'z'#130#159#255'x'#129#160#255 +'z'#130#161#255'z'#130#161#255'{'#131#160#255'|'#131#160#255'{'#131#160#255 ,'z'#130#158#255'z'#130#158#255'{'#129#158#255'{'#128#158#255'z'#129#158#255 +'z'#128#158#255'z'#128#159#255'z'#128#159#255'y'#129#157#255'x'#128#159#255 +'x'#128#157#255'y'#127#156#255'{'#127#157#255'y'#128#160#255'w}'#157#255'x|' +#156#255'y}'#156#255'v~'#156#255'w}'#155#255'w|'#154#255'v{'#153#255'v{'#153 +#255't|'#153#255'lq'#141#255'RUj'#255'01='#255#17#17#21#255#4#4#5#254#0#0#0 +#247#0#0#0#215#0#0#0#151#0#0#0'E'#0#0#0#16#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#2#0#0#0#20#0#0#0'O'#0#0#0#156#0#0#0#217#0#0#0#246#3#3#4 +#255#14#14#16#255'#$-'#255';?O'#255'NSg'#255'UYq'#255'VZs'#255'XZr'#255'Z[q' +#255'WZp'#255'Y\p'#255'Y^s'#255'X^t'#255'Z]s'#255'[_s'#255'Z^t'#255'Z^u'#255 +'\_s'#255'[`p'#255'_bt'#255'`ax'#255'`ay'#255'`cz'#255'_cy'#255'`dy'#255'`e{' +#255'ae}'#255'bf~'#255'bg}'#255'bg~'#255'dg'#128#255'eh'#129#255'ei'#128#255 +'dj'#127#255'ej'#127#255'gk'#128#255'hk'#130#255'jl'#132#255'im'#134#255'im' +#134#255'jm'#133#255'kq'#138#255'ko'#136#255'lq'#138#255'ms'#141#255'mt'#144 +#255'nv'#146#255'nw'#148#255'pw'#149#255'rx'#149#255'tw'#148#255'oy'#149#255 +'pz'#150#255'rz'#150#255'sy'#150#255'sz'#150#255't{'#151#255'u{'#151#255't|' +#152#255'r|'#152#255't|'#154#255'v|'#153#255'v|'#152#255'w}'#153#255'v}'#154 +#255'w}'#155#255'w~'#155#255'w'#127#155#255'w'#127#155#255'w'#127#155#255'y' +#128#156#255'z'#128#157#255'{'#127#156#255'{'#127#158#255'y'#127#159#255'y' +#127#157#255'y'#127#155#255'z'#128#156#255'z'#128#157#255'y~'#155#255'x~'#155 +#255'x'#127#156#255'y~'#156#255'y'#127#157#255'w'#127#155#255'u'#127#154#255 +'w'#127#155#255'z'#127#156#255'y~'#156#255'x~'#157#255'w~'#158#255'z'#127#156 +#255'w~'#154#255'w~'#154#255'x}'#155#255'y|'#154#255'x~'#155#255'v}'#155#255 +'v{'#154#255'u{'#152#255't{'#152#255'v|'#154#255'w{'#153#255'vz'#151#255'sy' +#150#255'rw'#147#255'fk'#133#255'IL_'#255'''&2'#255#11#11#14#255#2#2#3#254#0 +#0#0#241#0#0#0#200#0#0#0#131#0#0#0'5'#0#0#0#11#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#13#0#0#0'='#0#0#0#137#0#0#0#205#0#0#0#245#1 +#1#1#254#9#9#10#255#28#29'$'#255'57G'#255'JMc'#255'SVm'#255'VZp'#255'XZp'#255 +'XZn'#255'WZp'#255'X[o'#255'Y\q'#255'Z[s'#255'[[s'#255']]s'#255'\]s'#255'[]r' +#255'[]r'#255']_s'#255']_s'#255'^_u'#255'_au'#255'_au'#255'_`u'#255'`bw'#255 +'acx'#255'bcx'#255'acz'#255'aez'#255'aez'#255'be{'#255'dh~'#255'bi~'#255'di' +#127#255'fj'#129#255'fj'#131#255'fj'#130#255'fj'#132#255'gk'#131#255'hk'#132 +#255'jj'#134#255'im'#135#255'go'#136#255'io'#134#255'ko'#135#255'lr'#140#255 +'ks'#143#255'lv'#147#255'mv'#148#255'ou'#146#255'qv'#147#255'ou'#145#255'pv' +#146#255'px'#147#255'px'#148#255'qz'#151#255's{'#152#255's{'#152#255'r|'#152 +#255's|'#154#255'ry'#151#255'sz'#150#255't|'#151#255'u|'#152#255'vz'#151#255 +'v{'#151#255'v|'#152#255'v|'#152#255'w{'#152#255'w{'#152#255'x}'#154#255'x}' +#154#255'w|'#154#255'y|'#155#255'w|'#154#255'w|'#154#255'x}'#153#255'y}'#154 +#255'x}'#154#255'w}'#153#255'w}'#154#255'w|'#155#255'x|'#154#255'x|'#152#255 +'v|'#151#255'u|'#152#255'u~'#153#255'w~'#154#255'u}'#153#255'u|'#152#255'u{' +#152#255'w|'#153#255'v{'#151#255'u|'#152#255'u{'#154#255'wz'#154#255'u{'#153 +#255'uz'#153#255'uz'#152#255'tz'#151#255'sx'#150#255'sy'#151#255'ux'#150#255 +'vx'#149#255'ux'#148#255'pu'#145#255'_b{'#255'@BR'#255#31#31''''#255#8#8#11 +#255#2#2#2#253#0#0#0#237#0#0#0#188#0#0#0'r'#0#0#0'('#0#0#0#6#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#7#0#0#0','#0#0#0'r'#0#0#0#188 +#0#0#0#237#1#1#0#251#6#6#7#255#21#21#26#255'-.9'#255'FGZ'#255'RSj'#255'VXn' +#255'VXn'#255'WXn'#255'XYn'#255'XZn'#255'YZn'#255'[Zo'#255'[Zp'#255'\\q'#255 +'[\p'#255'[\p'#255'[]q'#255'[]r'#255'\]r'#255'^^t'#255'__t'#255'_`t'#255'^_t' +#255'_at'#255'`at'#255'``u'#255'abx'#255'`cx'#255'`cx'#255'ady'#255'df{'#255 +'cg}'#255'eh'#129#255'fh'#130#255'ei'#130#255'gk'#132#255'fk'#134#255'fl'#135 +#255'hl'#136#255'jm'#138#255'in'#136#255'jp'#139#255'io'#137#255'in'#135#255 +'jn'#137#255'jo'#139#255'kq'#141#255'lt'#143#255'nv'#147#255'pz'#152#255'ox' +#149#255'nx'#150#255'ny'#149#255'nx'#148#255'oy'#150#255'r|'#156#255's'#128 +#160#255's'#129#163#255'u'#129#164#255'u'#127#160#255't}'#158#255's|'#157#255 +'u|'#157#255'v|'#154#255'u{'#151#255's{'#150#255's{'#150#255'uz'#150#255'ty' +#150#255'vy'#150#255'xz'#150#255'xz'#150#255'v{'#152#255'u{'#152#255'vz'#151 +#255'wz'#151#255'vz'#151#255'vz'#151#255'v{'#152#255'u{'#152#255'uz'#151#255 +'x{'#152#255'xy'#151#255'vy'#150#255'tz'#151#255't{'#151#255'u{'#151#255'tz' +#150#255'uz'#150#255'vz'#150#255'uy'#150#255'tz'#151#255'tz'#151#255'sx'#151 +#255'sw'#151#255'uw'#149#255'tw'#150#255'sw'#150#255'sx'#149#255'rw'#148#255 +'rw'#149#255'rw'#148#255'sv'#148#255'ru'#145#255'lo'#139#255'VYo'#255'56D' +#255#22#23#28#255#5#5#7#255#1#1#1#250#0#0#0#225#0#0#0#168#0#0#0'\'#0#0#0#27#0 +#0#0#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3#0#0#0 +#29#0#0#0'\'#0#0#0#166#0#0#0#227#0#0#0#250#3#3#4#255#15#15#18#255'$$-'#255'?' +'?O'#255'POe'#255'UVl'#255'VWn'#255'XWn'#255'XYm'#255'YXm'#255'YXm'#255'ZYm' ,#255'[Ym'#255'ZZp'#255'Z[o'#255'Z[n'#255'[]o'#255'[\p'#255'[]p'#255'\]r'#255 +'^^s'#255'^_s'#255']_s'#255'^_s'#255'__s'#255'_`u'#255'`aw'#255'`aw'#255'`bx' +#255'acx'#255'cdy'#255'dez'#255'ee}'#255'de~'#255'df'#127#255'fi'#129#255'fk' +#132#255'ek'#133#255'el'#135#255'hn'#137#255'hn'#135#255'jn'#137#255'in'#136 +#255'hm'#134#255'hm'#134#255'jm'#136#255'kn'#136#255'lp'#138#255'mt'#143#255 +'ny'#150#255'nz'#154#255'mz'#154#255'my'#151#255'lv'#146#255'mu'#147#255'q{' +#154#255'r'#127#161#255'r'#129#164#255't'#130#165#255'v'#130#166#255'u'#128 +#165#255's'#127#164#255't'#127#163#255'v'#127#161#255'u~'#159#255's~'#158#255 +'r'#127#157#255'r~'#157#255's}'#157#255's|'#155#255'u{'#155#255'w{'#155#255 +'t|'#154#255'tz'#151#255'ux'#149#255'ux'#148#255'sx'#149#255'tx'#149#255'vx' +#149#255'vx'#148#255'tx'#147#255'uy'#149#255'ux'#149#255'ux'#149#255'ty'#149 +#255'sy'#149#255'sx'#149#255'sx'#149#255'tx'#148#255'vw'#148#255'sw'#148#255 +'qw'#149#255'rw'#148#255'sv'#148#255'qu'#148#255'tu'#146#255'su'#147#255'qu' +#147#255'qu'#146#255'qv'#147#255'pv'#147#255'pv'#146#255'pu'#146#255'nr'#144 +#255'ei'#131#255'KNa'#255'*+6'#255#15#15#19#255#3#3#4#254#0#0#0#247#0#0#0#213 +#0#0#0#148#0#0#0'G'#0#0#0#17#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#17#0#0#0'E'#0#0#0#143#0#0#0#213#0#0#0#247#1#1 +#2#255#9#9#12#255#27#28'#'#255'56D'#255'KK\'#255'STi'#255'VVn'#255'XWm'#255 +'XXl'#255'YVl'#255'YWm'#255'XXm'#255'ZYm'#255'YZp'#255'YZo'#255'ZZm'#255'[[m' +#255'\\o'#255'Y\n'#255'[\o'#255']\p'#255'\^p'#255']^r'#255']]s'#255'^^t'#255 +'_`v'#255'__u'#255'``w'#255'``w'#255'aaw'#255'bbx'#255'ccx'#255'bcv'#255'bcx' +#255'bdz'#255'dey'#255'eg}'#255'cg}'#255'ch'#127#255'ek'#130#255'fk'#130#255 +'gj'#129#255'hj'#129#255'hk'#130#255'gl'#132#255'jl'#134#255'll'#134#255'll' +#133#255'jn'#135#255'jq'#140#255'kx'#152#255'ly'#153#255'lu'#147#255'kr'#141 +#255'lq'#141#255'nu'#146#255'nw'#149#255'oy'#152#255'p{'#154#255'r'#127#161 +#255'r'#128#164#255'r'#128#164#255'r'#127#163#255's'#128#164#255't'#130#167 +#255't'#131#168#255's'#131#168#255'r'#131#168#255's'#132#167#255'q'#130#166 +#255'q'#128#166#255's'#129#165#255'r'#127#160#255's{'#154#255'tx'#150#255'sw' +#149#255'qv'#147#255'qv'#147#255'tw'#148#255'uv'#146#255'tv'#145#255'qw'#147 +#255'pw'#147#255'rv'#147#255'sv'#147#255'qv'#147#255'rw'#148#255'qv'#147#255 +'qu'#146#255'ru'#146#255'pv'#146#255'ot'#145#255'pt'#145#255'qu'#146#255'qu' +#145#255'qt'#145#255'ps'#144#255'os'#143#255'ot'#143#255'rs'#145#255'os'#144 +#255'ns'#143#255'ns'#144#255'jo'#141#255'[`y'#255'?AQ'#255' )'#255#9#9#12 +#255#1#1#2#253#0#0#0#243#0#0#0#200#0#0#0#129#0#0#0'6'#0#0#0#9#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#7#0#0#0'0'#0#0 +#0'v'#0#0#0#193#0#0#0#236#1#1#1#251#5#5#6#255#19#19#24#255',+7'#255'DCT'#255 +'POc'#255'TTi'#255'VTj'#255'VVj'#255'VUj'#255'VUj'#255'WWk'#255'XYl'#255'WXk' +#255'WXj'#255'XXk'#255'ZXl'#255'[Ym'#255'XYm'#255'YZn'#255'\\p'#255']]q'#255 +'\]p'#255'\]q'#255'[]q'#255'\]q'#255'_^q'#255'^`q'#255'^`q'#255'^_r'#255'__t' +#255'aau'#255'aaw'#255'aaw'#255'bcv'#255'cdx'#255'bez'#255'cey'#255'dez'#255 +'df|'#255'cg{'#255'dgz'#255'fh}'#255'hi'#128#255'fh}'#255'hi'#127#255'hi'#130 +#255'hj'#132#255'gl'#133#255'gk'#130#255'io'#134#255'iq'#138#255'io'#138#255 +'im'#136#255'kp'#140#255'kp'#137#255'lo'#136#255'mo'#138#255'nq'#142#255'lt' +#144#255'mw'#149#255'ny'#153#255'nz'#153#255'mz'#152#255'n}'#157#255'p~'#160 +#255'r'#128#163#255't'#129#168#255'r'#128#165#255'q'#128#167#255'r'#129#168 +#255's'#130#167#255'p'#129#167#255'r'#128#165#255's~'#162#255'r{'#156#255'py' +#150#255'ox'#150#255'qx'#152#255'qw'#150#255'ou'#145#255'mt'#143#255'nt'#145 +#255'ot'#144#255'os'#143#255'ot'#144#255'rt'#146#255'ps'#143#255'nq'#143#255 +'lq'#143#255'ms'#140#255'or'#144#255'nq'#143#255'mr'#142#255'ls'#143#255'lr' +#141#255'mq'#140#255'nq'#141#255'nq'#141#255'np'#140#255'nn'#140#255'mp'#141 +#255'kp'#140#255'eh'#131#255'QSi'#255'12?'#255#21#21#27#255#4#5#6#255#0#0#1 +#249#0#0#0#231#0#0#0#176#0#0#0'f'#0#0#0'$'#0#0#0#5#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#31#0#0#0'\'#0#0 +#0#169#0#0#0#228#0#0#0#250#3#3#3#255#13#13#17#255'#!)'#255'=:G'#255'NL\'#255 +'UTg'#255'USi'#255'TUg'#255'STf'#255'TUg'#255'VVh'#255'WVg'#255'VWg'#255'VUh' +#255'XVk'#255'YYn'#255'YYm'#255'XXl'#255'YXk'#255'ZYm'#255'[[p'#255'[Zo'#255 +'[[n'#255'[\n'#255'[]o'#255']]n'#255']^n'#255'^_m'#255'^_n'#255']_p'#255'^^q' +#255'__s'#255'_`t'#255'^at'#255'_cv'#255'adv'#255'bbs'#255'bbt'#255'bdx'#255 +'ady'#255'cdz'#255'be{'#255'cf{'#255'gg{'#255'gg|'#255'gh~'#255'gi'#127#255 +'fh'#127#255'hi'#128#255'fm'#130#255'ek'#131#255'gj'#131#255'il'#133#255'ik' +#132#255'il'#133#255'im'#133#255'km'#133#255'lm'#135#255'jo'#137#255'jq'#139 +#255'kq'#140#255'jo'#139#255'ip'#139#255'jq'#141#255'ls'#143#255'mv'#147#255 +'nx'#151#255'o{'#155#255'o|'#160#255'p|'#160#255'p|'#158#255'n{'#159#255'n{' +#158#255'o|'#158#255'p|'#158#255'p{'#157#255'q|'#157#255'q{'#157#255'p{'#157 ,#255'p{'#155#255'ow'#148#255'lq'#142#255'mp'#141#255'nr'#142#255'mr'#142#255 +'mq'#140#255'nr'#139#255'lp'#138#255'jo'#137#255'lq'#138#255'nq'#142#255'lp' +#141#255'ko'#139#255'jo'#138#255'jn'#136#255'in'#136#255'jn'#136#255'ln'#137 +#255'ln'#137#255'ml'#138#255'lm'#138#255'hl'#135#255']by'#255'EGY'#255'%%0' +#255#14#14#18#255#2#3#3#255#0#0#0#247#0#0#0#219#0#0#0#153#0#0#0'N'#0#0#0#22#0 +#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#17#0#0#0'C'#0#0#0#142#0#0#0#212#0#0#0#244#1#1#1#254#8#8#10 +#255#25#24#29#255'31:'#255'HFS'#255'RQb'#255'SSg'#255'RSg'#255'SRe'#255'TTe' +#255'UTd'#255'VSd'#255'UUg'#255'WUi'#255'XUj'#255'WVk'#255'WXl'#255'XWk'#255 +'XWi'#255'XXj'#255'ZXl'#255'ZWm'#255'[Ym'#255'[[n'#255'\[o'#255'[[m'#255'\[m' +#255'\]l'#255'\^l'#255'[^m'#255']^o'#255'^`p'#255']`p'#255'\_q'#255'^at'#255 +'_as'#255'`aq'#255'abs'#255'abv'#255'`bt'#255'ccy'#255'adz'#255'aey'#255'ffz' +#255'edy'#255'ef{'#255'fg|'#255'ff|'#255'gg}'#255'fi'#127#255'eh'#128#255'fh' +#128#255'hj'#127#255'gh'#127#255'gj'#129#255'gk'#130#255'hl'#130#255'il'#131 +#255'hl'#132#255'hl'#133#255'im'#134#255'im'#135#255'hl'#134#255'im'#135#255 +'kn'#136#255'lo'#137#255'lp'#139#255'lr'#143#255'mt'#146#255'mt'#147#255'kt' +#147#255'kv'#149#255'lv'#148#255'lv'#149#255'mw'#149#255'nx'#150#255'nx'#150 +#255'nw'#151#255'nw'#151#255'ow'#150#255'nu'#146#255'lq'#142#255'kp'#140#255 +'kp'#139#255'lo'#138#255'in'#135#255'jn'#136#255'jn'#136#255'jm'#135#255'ln' +#136#255'ln'#138#255'km'#137#255'jm'#136#255'im'#136#255'im'#135#255'hm'#134 +#255'im'#133#255'jl'#134#255'ik'#134#255'il'#135#255'jk'#135#255'ef'#127#255 +'TXl'#255'79G'#255#25#26' '#255#7#8#10#255#1#1#1#252#0#0#0#239#0#0#0#198#0#0 +#0'}'#0#0#0'6'#0#0#0#10#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#7#0#0#0','#0#0#0'p'#0#0#0#189#0#0#0 +#234#0#0#0#252#4#4#5#255#16#16#19#255'(''/'#255'>=I'#255'LK\'#255'QRe'#255'S' +'Rf'#255'UQe'#255'URd'#255'URb'#255'URc'#255'USh'#255'WTi'#255'WTh'#255'WTh' +#255'WVi'#255'XUh'#255'WVh'#255'WWi'#255'ZWj'#255'YVl'#255'ZYm'#255'[Zn'#255 +'[Zn'#255'ZZm'#255'[Zm'#255'[\m'#255'Z]m'#255'Z]m'#255'\^n'#255']_o'#255'\^n' +#255'\^p'#255'_`t'#255'^_s'#255'_ar'#255'`bs'#255'`bu'#255'`br'#255'bbv'#255 +'bbw'#255'bcw'#255'cdx'#255'bcw'#255'ccy'#255'ddz'#255'ee{'#255'dez'#255'ef|' +#255'ff}'#255'ff}'#255'fg{'#255'gh|'#255'fh|'#255'ei~'#255'fj'#128#255'fk' +#128#255'gj'#129#255'gj'#130#255'hl'#133#255'im'#134#255'hl'#131#255'im'#133 +#255'jm'#133#255'kl'#134#255'kk'#135#255'kj'#135#255'jl'#135#255'jn'#137#255 +'io'#139#255'jp'#140#255'kp'#140#255'jo'#139#255'jo'#138#255'lq'#138#255'ip' +#137#255'iq'#139#255'jq'#140#255'mp'#138#255'lp'#139#255'lq'#141#255'jp'#140 +#255'io'#138#255'jn'#137#255'gm'#135#255'gl'#135#255'il'#135#255'jl'#135#255 +'jl'#135#255'jj'#134#255'jj'#133#255'ik'#133#255'hl'#134#255'il'#134#255'il' +#132#255'ik'#132#255'hk'#132#255'gj'#132#255'gl'#134#255'gj'#131#255'_`w'#255 +'IK\'#255')*5'#255#16#16#20#255#3#3#4#254#0#0#0#248#0#0#0#227#0#0#0#171#0#0#0 +'_'#0#0#0'!'#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#26#0#0#0'Q'#0#0#0#161#0#0#0 +#220#0#0#0#249#2#2#3#255#10#10#12#255#28#29'$'#255'33@'#255'EEW'#255'PPb'#255 +'URc'#255'WPd'#255'WQd'#255'VRc'#255'URc'#255'VRi'#255'URg'#255'WSf'#255'YTg' +#255'WUh'#255'XTd'#255'WUf'#255'VWj'#255'XXk'#255'ZXk'#255'ZYl'#255'YYm'#255 +'YYm'#255'ZZl'#255'[\l'#255'Z[m'#255'Z[m'#255'[\l'#255'Z[m'#255'[\m'#255'\]p' +#255'^]s'#255'`_u'#255'_^s'#255'^^r'#255'^`r'#255'^ar'#255'_at'#255'_`s'#255 +'a`s'#255'a`s'#255'`au'#255'abv'#255'abv'#255'bcx'#255'cdz'#255'ccy'#255'ddz' +#255'ddz'#255'ddz'#255'eez'#255'fg{'#255'df{'#255'df}'#255'eg'#127#255'eh' +#127#255'gi'#128#255'gi'#129#255'gh'#129#255'gh'#128#255'hj'#127#255'gk'#127 +#255'hj'#129#255'ij'#130#255'ij'#133#255'jj'#132#255'hj'#131#255'hk'#133#255 +'jl'#135#255'ij'#134#255'hj'#132#255'hj'#132#255'ik'#132#255'lk'#131#255'fk' +#132#255'dl'#132#255'gl'#131#255'kl'#132#255'im'#134#255'in'#137#255'io'#139 +#255'ho'#140#255'gn'#138#255'gm'#138#255'in'#138#255'im'#136#255'hk'#134#255 +'il'#137#255'hi'#133#255'ii'#132#255'ij'#132#255'gj'#132#255'hj'#131#255'jj' +#131#255'ii'#130#255'gh'#130#255'fj'#132#255'gj'#133#255'cg'#129#255'UWm'#255 +';;I'#255#28#29'$'#255#10#10#13#255#1#1#3#254#0#0#0#244#0#0#0#212#0#0#0#143#0 +#0#0'D'#0#0#0#18#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#13#0#0#0'6'#0#0#0#127#0#0 +#0#196#0#0#0#237#1#1#2#252#5#5#6#255#19#18#23#255')''2'#255'>=L'#255'KL^'#255 +'ROb'#255'TPe'#255'UQd'#255'TRc'#255'SSf'#255'SQe'#255'URd'#255'VRd'#255'URd' +#255'VSf'#255'XTg'#255'WUh'#255'VUh'#255'VVh'#255'VUg'#255'VUk'#255'WUl'#255 +'YUj'#255'ZVj'#255'ZYk'#255'ZXk'#255'ZXk'#255'ZZk'#255']Zp'#255'][o'#255'\\o' +#255'\\p'#255'\\p'#255'_\o'#255'^^p'#255'\^q'#255'\^q'#255']^s'#255'^_r'#255 +'__r'#255'`_t'#255'__u'#255'^aw'#255'^bw'#255'_bw'#255'aax'#255'aay'#255'aaw' ,#255'bcw'#255'cdx'#255'cdz'#255'cdz'#255'df{'#255'df{'#255'de{'#255'dd}'#255 +'fg}'#255'fg}'#255'ff}'#255'ff}'#255'fg~'#255'gh'#127#255'gg'#127#255'gg'#127 +#255'gg'#130#255'gh'#131#255'hh'#129#255'fi'#128#255'ei'#129#255'gh'#130#255 +'hi'#130#255'gi'#130#255'fh'#129#255'gh'#130#255'gi'#132#255'gj'#129#255'hj' +#129#255'hj'#131#255'gk'#134#255'fl'#134#255'gk'#135#255'ik'#138#255'jl'#138 +#255'hk'#137#255'hk'#136#255'ij'#135#255'ii'#134#255'ij'#135#255'hi'#132#255 +'hi'#132#255'gi'#132#255'fi'#131#255'hj'#128#255'hi'#128#255'gh'#128#255'eg' +#129#255'dg'#130#255'ef'#130#255'\^w'#255'GI\'#255'+,7'#255#17#17#22#255#5#5 +#5#255#0#0#0#251#0#0#0#230#0#0#0#184#0#0#0'l'#0#0#0'+'#0#0#0#7#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#5#0#0#0' '#0#0#0']'#0#0#0#169#0#0#0#224#0#0#0#249#2#2#2 +#254#11#10#13#255#30#27'"'#255'31<'#255'ECS'#255'NK^'#255'RNa'#255'RNa'#255 +'ROa'#255'RPd'#255'TPb'#255'UPb'#255'SPa'#255'QQa'#255'TRe'#255'UQe'#255'USg' +#255'USf'#255'TRb'#255'TTe'#255'WSh'#255'XUj'#255'WWi'#255'XVh'#255'XWj'#255 +'WWj'#255'WWi'#255'XYj'#255'YYm'#255'YXl'#255'YYk'#255'[Zk'#255'\Zk'#255'[[k' +#255'[\m'#255'Z\m'#255'Z\l'#255'[]p'#255'[]r'#255'\]q'#255']]q'#255']^r'#255 +']^s'#255']_q'#255']_q'#255']_r'#255'^`u'#255'^_t'#255'_`t'#255'abv'#255'bby' +#255'abw'#255'abx'#255'bcx'#255'bdx'#255'bcx'#255'cdx'#255'ddy'#255'dey'#255 +'cdy'#255'ce{'#255'dd}'#255'ed|'#255'edz'#255'de}'#255'fg'#127#255'dg}'#255 +'bg|'#255'bf{'#255'dg|'#255'fh~'#255'eg|'#255'de|'#255'dd~'#255'df}'#255'eg}' +#255'ef~'#255'ef'#127#255'dh~'#255'bi'#127#255'ch'#130#255'fi'#132#255'gi' +#132#255'gg'#133#255'eh'#132#255'ej'#133#255'fj'#133#255'gh'#130#255'ei'#131 +#255'ei'#129#255'dh'#128#255'cg'#127#255'bg|'#255'bf}'#255'bf'#127#255'bg' +#128#255'bf'#128#255'_ax'#255'QSg'#255'99H'#255#28#29'$'#255#10#10#12#255#2#2 +#3#254#0#0#0#245#0#0#0#214#0#0#0#153#0#0#0'K'#0#0#0#23#0#0#0#1#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#1#0#0#0#16#0#0#0'>'#0#0#0#137#0#0#0#202#0#0#0#241#1#1#1 +#251#5#5#6#255#18#17#20#255'&$+'#255':9D'#255'HGU'#255'OL\'#255'PM^'#255'ON_' +#255'QO`'#255'RO^'#255'RO_'#255'PO`'#255'PO`'#255'QQb'#255'QOb'#255'SQd'#255 +'TRd'#255'URb'#255'SRb'#255'VRd'#255'VTf'#255'UVf'#255'VUe'#255'UUh'#255'UUh' +#255'UVh'#255'VWi'#255'VWj'#255'VWk'#255'WWj'#255'YXi'#255'[Xh'#255'XYi'#255 +'XZj'#255'ZZi'#255'Z[i'#255'Z[n'#255'Z[q'#255'Z[o'#255'[\m'#255'\]o'#255'\\n' +#255'\]m'#255'\]l'#255'\]m'#255'\^o'#255'\^p'#255']^p'#255'__s'#255'``v'#255 +'_`t'#255'_`t'#255'`at'#255'_bt'#255'^bt'#255'``s'#255'abt'#255'acu'#255'`bu' +#255'`cw'#255'bcy'#255'cbx'#255'cbw'#255'bdz'#255'cdz'#255'ae{'#255'`ey'#255 +'`dw'#255'adx'#255'cey'#255'ddy'#255'ccz'#255'bc{'#255'bdy'#255'cey'#255'cdz' +#255'cc{'#255'bez'#255'`ez'#255'ae{'#255'bf|'#255'cf|'#255'ce~'#255'bf'#127 +#255'bg'#127#255'bg'#127#255'ce|'#255'cf'#127#255'bg~'#255'ag}'#255'`e~'#255 +'^e|'#255'_d|'#255'_d|'#255'_d}'#255'`b{'#255'XZn'#255'DET'#255')*3'#255#16 +#16#20#255#5#5#5#255#1#1#1#250#0#0#0#232#0#0#0#188#0#0#0'u'#0#0#0'/'#0#0#0#10 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#6#0#0#0'%'#0#0#0'd'#0#0#0 +#171#0#0#0#224#0#0#0#247#1#1#2#254#10#8#11#255#25#24#29#255'--5'#255'AAJ'#255 +'LJW'#255'NM]'#255'MN^'#255'PM\'#255'OM['#255'OO\'#255'OO^'#255'PN_'#255'OO_' +#255'QO_'#255'QO`'#255'SQc'#255'VSe'#255'RQ`'#255'RRa'#255'SRb'#255'TSc'#255 +'VSc'#255'UTg'#255'TTf'#255'UTf'#255'VUg'#255'UUg'#255'VWk'#255'VWk'#255'WWi' +#255'YXh'#255'WXg'#255'WXh'#255'YYh'#255'[Yh'#255'ZXl'#255'YYo'#255'YZl'#255 +'Z[i'#255'\]m'#255'[\l'#255'[\k'#255'\\k'#255'\\k'#255'\]m'#255'\\n'#255']]n' +#255']^p'#255']_r'#255']^r'#255'^_r'#255'^`q'#255']`p'#255'\ar'#255'^_q'#255 +'_`q'#255'^`q'#255'_`r'#255'`at'#255'`bu'#255'aat'#255'a`u'#255'`cx'#255'_bw' +#255'acx'#255'acx'#255'_bv'#255'`bw'#255'aav'#255'bcx'#255'bdy'#255'acy'#255 +'bbx'#255'ady'#255'adx'#255'acx'#255'bdy'#255'abw'#255'`bv'#255'`bu'#255'`bv' +#255'`bw'#255'`cx'#255'`cx'#255'`bw'#255'abv'#255'bbz'#255'`cy'#255'_dz'#255 +'_d}'#255'^c}'#255'`c{'#255'_by'#255'^aw'#255']\s'#255'NOa'#255'45@'#255#26 +#26' '#255#7#8#10#255#1#1#1#254#0#0#0#243#0#0#0#211#0#0#0#153#0#0#0'O'#0#0#0 +#24#0#0#0#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#16#0#0#0 +'@'#0#0#0#134#0#0#0#202#0#0#0#241#0#1#0#252#4#4#5#255#15#13#17#255'!'#31'%' +#255'64?'#255'FDS'#255'MK\'#255'OL]'#255'QK\'#255'SL]'#255'QL\'#255'PL]'#255 +'QM_'#255'SN_'#255'SO_'#255'SN_'#255'TN`'#255'VPb'#255'TQb'#255'RRc'#255'RRc' +#255'TQd'#255'WQf'#255'XSh'#255'WRe'#255'WSc'#255'WTe'#255'VSe'#255'VTg'#255 +'UVh'#255'TVg'#255'VWf'#255'XWe'#255'WWg'#255'WWh'#255'WWg'#255'WWi'#255'VXl' +#255'VYk'#255'XZi'#255'ZZi'#255'YZk'#255'ZZl'#255'[[l'#255'[\m'#255'\\n'#255 +'_Zp'#255'^[n'#255'\]m'#255'\]o'#255'\\p'#255']]p'#255'\]o'#255'[]o'#255']_t' ,#255'^_t'#255']^r'#255']^o'#255'^_o'#255'^_s'#255'^_r'#255'^_r'#255'^_t'#255 +'_`u'#255'_`v'#255'__u'#255'``v'#255'aaw'#255'_av'#255'_`u'#255'`at'#255'`bt' +#255'_`u'#255'`ax'#255'``x'#255'``w'#255'`av'#255'bcw'#255'`bw'#255'`av'#255 +'`at'#255'`as'#255'aav'#255'`av'#255'_at'#255'_`t'#255'`av'#255'_`t'#255'_at' +#255'_au'#255'^aw'#255'_`w'#255'`av'#255'`bv'#255']_s'#255'STg'#255'??N'#255 +'##,'#255#14#14#17#255#3#3#4#255#0#0#0#250#0#0#0#232#0#0#0#184#0#0#0'r'#0#0#0 +'.'#0#0#0#9#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#4#0#0#0'#'#0#0#0'^'#0#0#0#164#0#0#0#221#0#0#0#246#1#0#1#255#7#6#8#255#21#19 +#24#255'+''/'#255'=9F'#255'KFW'#255'QK_'#255'PJ_'#255'QJ^'#255'RM_'#255'RN`' +#255'RM`'#255'QM^'#255'QN^'#255'RN_'#255'RN`'#255'RO`'#255'TOa'#255'UPc'#255 +'UPc'#255'UOb'#255'UQc'#255'UQe'#255'WRd'#255'XSd'#255'YSd'#255'ZSd'#255'WUf' +#255'WVf'#255'YUe'#255'WSd'#255'ZUd'#255'XVe'#255'WVg'#255'YVi'#255'YYj'#255 +'XXh'#255'XWg'#255'YWh'#255'YXj'#255'Z[l'#255'Z[l'#255'[Zl'#255'\[l'#255'[Zm' +#255'[Zn'#255'\Zn'#255'\[m'#255'][l'#255'[[l'#255'\]m'#255']]m'#255'\]m'#255 +'\]o'#255'\]m'#255']^p'#255'^_q'#255']]n'#255'^\q'#255'^^q'#255'^_q'#255'^_s' +#255'__u'#255'__t'#255'`_t'#255'__u'#255'^_u'#255'^_s'#255'_`s'#255'_`s'#255 +'^_s'#255'^^t'#255'``v'#255'`^v'#255'`^u'#255'_`u'#255'_au'#255'a`v'#255'a_u' +#255'``s'#255'``r'#255'`_u'#255'__t'#255'``t'#255'a`t'#255'_`t'#255'_`t'#255 +'^`s'#255'^_t'#255'__w'#255'a`w'#255'``u'#255'^`q'#255'VYj'#255'FHZ'#255'--9' +#255#22#22#27#255#6#6#8#255#1#1#1#254#0#0#0#243#0#0#0#208#0#0#0#145#0#0#0'K' +#0#0#0#22#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#14#0#0#0'9'#0#0#0'y'#0#0#0#190#0#0#0#234#0#0#0#251#3#3#3#255 +#12#11#13#255#29#26'!'#255'3.8'#255'E>M'#255'OH['#255'PJ`'#255'PJ]'#255'QL^' +#255'RL`'#255'RLa'#255'PM_'#255'RM^'#255'RM_'#255'RMa'#255'QNb'#255'UNb'#255 +'WN`'#255'WO`'#255'VPa'#255'VQb'#255'TPd'#255'VQc'#255'WRc'#255'VRc'#255'YRc' +#255'VTe'#255'WSd'#255'ZSc'#255'YSf'#255'ZTd'#255'ZUf'#255'ZVh'#255'ZVi'#255 +'ZXh'#255'XWg'#255'XWg'#255'XWh'#255'XXi'#255'[Yk'#255'ZYl'#255'ZYl'#255'\Yk' +#255'\Yl'#255'ZYn'#255'[Ym'#255'\Yl'#255'\[n'#255'[Zn'#255'][n'#255'^\m'#255 +']\l'#255'\\l'#255'\\j'#255'\]n'#255']^q'#255'^\p'#255'^\q'#255']^p'#255'\_q' +#255']_s'#255'^^s'#255'_]p'#255'`]q'#255'_^r'#255'^]q'#255'^^q'#255'^^p'#255 +'^^r'#255'^^t'#255'^^u'#255'_^t'#255'`^s'#255'_^s'#255'^^t'#255'__s'#255'a^t' +#255'b^t'#255'a^r'#255'_^s'#255'^_t'#255'__s'#255'`_r'#255'`_q'#255'__p'#255 +'`_s'#255'_^r'#255'_^r'#255'_^s'#255'`_v'#255'`_v'#255'Z[o'#255'MN^'#255'68E' +#254#29#29'%'#255#12#12#15#255#3#3#3#255#0#0#0#248#0#0#0#229#0#0#0#176#0#0#0 +'j'#0#0#0'*'#0#0#0#7#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#3#0#0#0#28#0#0#0'P'#0#0#0#151#0#0#0#211#0#0#0#242 +#1#1#1#253#5#5#6#255#16#15#19#255'%"('#255':4@'#255'IBS'#255'OI]'#255'QJ[' +#255'QJ^'#255'RK`'#255'SK`'#255'QL`'#255'SM`'#255'SL`'#255'RLa'#255'SMc'#255 +'VNb'#255'WN^'#255'VO^'#255'VPa'#255'WQb'#255'UOb'#255'VOa'#255'VPa'#255'TPc' +#255'VPc'#255'URe'#255'VRc'#255'XRb'#255'YTh'#255'XSf'#255'YTg'#255'ZUh'#255 +'[Ug'#255'ZUe'#255'XVe'#255'XWg'#255'XWh'#255'WWh'#255'ZWj'#255'ZWk'#255'[Wk' +#255'\Wl'#255'\Xl'#255'[Xm'#255'[Xl'#255'[Xl'#255'\Yo'#255'[Zp'#255']Yo'#255 +']Zn'#255'\[m'#255'\[l'#255'][m'#255'\\n'#255'\[o'#255'][q'#255'^]q'#255']]o' +#255'\^p'#255'\^q'#255']]q'#255'_\o'#255'_]o'#255'^]p'#255'^]o'#255'^^q'#255 +'^\p'#255'^]q'#255'^]s'#255']]t'#255'_\s'#255'_]q'#255'^]q'#255'_]r'#255'`^s' +#255'_]s'#255'`]q'#255'`]q'#255'^]r'#255'^^t'#255'^^s'#255'^]q'#255'^]o'#255 +'_]o'#255'_]q'#255'`\p'#255'_\o'#255'^\p'#255'^]s'#255'^[r'#255'SQe'#255'?>M' +#255'%&.'#254#16#16#20#255#5#5#6#255#1#1#1#252#0#0#0#238#0#0#0#202#0#0#0#136 +#0#0#0'D'#0#0#0#19#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#10#0#0#0','#0#0#0'j'#0#0#0#176#0#0#0 +#225#0#0#0#249#1#1#1#255#7#6#8#255#23#20#25#255'+''0'#255'>9H'#255'KEW'#255 +'QIZ'#255'SJ^'#255'SJ_'#255'SK]'#255'PK^'#255'SL`'#255'RLa'#255'QLa'#255'SLa' +#255'VN_'#255'UN_'#255'UOa'#255'UPa'#255'UO`'#255'VN^'#255'WN_'#255'WNa'#255 +'UOd'#255'VPe'#255'UPe'#255'URe'#255'USe'#255'VTf'#255'WSh'#255'WSg'#255'WSe' +#255'YSe'#255'ZTc'#255'WTc'#255'XUe'#255'ZUg'#255'XUh'#255'XXj'#255'[Wi'#255 +'\Vj'#255'[Vl'#255'[Wm'#255'[Wl'#255'[Xl'#255'[Xm'#255']Wm'#255'\Yn'#255'\Wm' +#255'[Xm'#255'[Zo'#255']Zo'#255']Yq'#255']Yo'#255'\Yn'#255'[Yn'#255'_[q'#255 +'^[o'#255'\[o'#255'\\o'#255'\\o'#255'^\p'#255']\n'#255']\n'#255'^\o'#255'_\q' +#255'][r'#255'^[q'#255'^\q'#255'\[q'#255'_]s'#255'^[p'#255'^\o'#255'_]p'#255 +'_]t'#255'^]r'#255']\n'#255'^\m'#255'`\p'#255']\s'#255'\[r'#255'\[q'#255'\[p' ,#255'_\q'#255'\Zp'#255'^Zn'#255'^[o'#255'][p'#255'\[o'#255'WRe'#255'GBQ'#255 +'.,6'#255#21#20#25#255#7#7#9#255#1#1#1#254#0#0#0#246#0#0#0#220#0#0#0#163#0#0 +#0'\'#0#0#0'$'#0#0#0#5#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#19#0#0#0'?'#0#0#0#135#0 +#0#0#198#0#0#0#236#0#0#0#251#3#2#3#255#11#9#13#255#28#24#31#255'0+7'#255'A;O' +#255'MFW'#255'PI['#255'PI['#255'OHZ'#255'PJ\'#255'PK^'#255'PK`'#255'QKb'#255 +'RLb'#255'SJ]'#255'TL]'#255'TL`'#255'SLa'#255'TL^'#255'SM]'#255'VN_'#255'XNb' +#255'WNb'#255'UPb'#255'TOc'#255'SPe'#255'SQe'#255'TQc'#255'VPd'#255'WPc'#255 +'WQc'#255'VSd'#255'VQb'#255'WSc'#255'WTd'#255'XSe'#255'XQg'#255'XTg'#255'XTf' +#255'XTf'#255'WTg'#255'WUh'#255'ZWi'#255'YWj'#255'XVj'#255'ZUi'#255'XWj'#255 +'ZVh'#255'[Wf'#255'ZWf'#255'ZVj'#255'\Wk'#255'[Xm'#255'ZYo'#255'[Yo'#255']Vn' +#255']Wn'#255']Xm'#255'\Ym'#255']Ym'#255'ZXl'#255'XYj'#255'YYj'#255'\Yl'#255 +']Yk'#255']Yo'#255'^Zo'#255'^[n'#255'\[m'#255']Zm'#255'][o'#255'][n'#255']Zk' +#255']Yn'#255'_[n'#255'^[o'#255'\[o'#255'\Zo'#255']Zq'#255'[Yp'#255'ZZo'#255 +'[[o'#255'\[o'#255'\[o'#255'][n'#255'][p'#255'\Yq'#255'VUi'#255'IGW'#255'41<' +#255#28#26' '#255#9#8#11#255#2#2#3#254#0#0#0#248#0#0#0#229#0#0#0#189#0#0#0'x' +#0#0#0'6'#0#0#0#14#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#6#0#0#0' '#0#0#0'Y' +#0#0#0#156#0#0#0#212#0#0#0#244#0#0#0#254#5#4#5#255#14#13#16#255#30#28'"'#255 +'2-:'#255'C=K'#255'KEU'#255'LHY'#255'KJZ'#255'LI['#255'MJ['#255'NH['#255'PH\' +#255'RJ^'#255'RI\'#255'PJZ'#255'PK['#255'QJ\'#255'QJ['#255'TK\'#255'VL\'#255 +'VL]'#255'VM^'#255'TM^'#255'RN_'#255'RN`'#255'SN`'#255'TOa'#255'TOa'#255'UPa' +#255'UPa'#255'SPb'#255'TPa'#255'TR`'#255'URa'#255'VQc'#255'WQe'#255'VRe'#255 +'VRf'#255'VRf'#255'VSe'#255'UTe'#255'WTg'#255'WTh'#255'VTg'#255'WTh'#255'VUh' +#255'WUg'#255'XUf'#255'YUe'#255'ZUg'#255'\Ug'#255'YUg'#255'WVh'#255'WVk'#255 +'YWk'#255'YVj'#255'ZVi'#255'[Wh'#255'[Xh'#255'ZXh'#255'XXg'#255'XXj'#255'[Ym' +#255'\Xj'#255'\Vj'#255']Wj'#255'\Yk'#255'YXj'#255'[Xi'#255'[Xi'#255'ZYj'#255 +'ZXk'#255'[Wk'#255'\Xm'#255'\Ym'#255'[Yl'#255'YYl'#255'[Wl'#255'ZXl'#255'YXl' +#255'YXl'#255'YXl'#255'XXk'#255'YYj'#255'ZXj'#255'WSh'#255'JHY'#255'65B'#255 +' '#31'&'#255#14#13#16#255#4#4#5#255#0#0#1#253#0#0#0#239#0#0#0#202#0#0#0#143 +#0#0#0'K'#0#0#0#25#0#0#0#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#12#0 +#0#0'0'#0#0#0'm'#0#0#0#175#0#0#0#225#0#0#0#246#1#1#1#254#6#5#6#255#16#15#17 +#255'!'#30'%'#255'5/;'#255'C>L'#255'IFV'#255'KIY'#255'LHY'#255'LHX'#255'NGW' +#255'PGX'#255'PHY'#255'PI['#255'NIY'#255'NJY'#255'PJZ'#255'PIZ'#255'SJZ'#255 +'TK['#255'TK\'#255'TK\'#255'SK\'#255'RM\'#255'RM\'#255'SL]'#255'TM_'#255'TN`' +#255'TO_'#255'TO_'#255'SO_'#255'UO_'#255'TP`'#255'TP`'#255'VPa'#255'WPb'#255 +'UQe'#255'UQe'#255'VQd'#255'USc'#255'TSc'#255'VSe'#255'URe'#255'USf'#255'VSg' +#255'WSh'#255'WTg'#255'XTg'#255'YSf'#255'YUe'#255'YTg'#255'XSf'#255'WSe'#255 +'WTf'#255'VVh'#255'VVg'#255'WUf'#255'YUf'#255'[Vh'#255'ZWh'#255'ZWg'#255'YWh' +#255'YWj'#255'ZWh'#255'[Vi'#255'[Vj'#255'ZVj'#255'XVi'#255'[Vj'#255'YVi'#255 +'XWj'#255'YWl'#255'ZWl'#255'ZWl'#255'ZXk'#255'ZWj'#255'YWj'#255'[Vi'#255'YWk' +#255'YWl'#255'YWk'#255'YVk'#255'XWj'#255'ZWh'#255'WSc'#255'LHY'#255'97D'#255 +'##+'#255#16#16#20#255#5#4#5#255#1#1#2#253#0#0#0#245#0#0#0#217#0#0#0#164#0#0 +#0'`'#0#0#0'%'#0#0#0#8#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#2#0#0#0#19#0#0#0'A'#0#0#0#128#0#0#0#190#0#0#0#229#0#0#0#248#1#1#2#255#7#6#8 +#255#19#16#20#255'% )'#255'72?'#255'C?N'#255'JDU'#255'NEV'#255'MFV'#255'OGW' +#255'PGW'#255'OGV'#255'OIY'#255'MHX'#255'NIX'#255'OKZ'#255'PIZ'#255'QIY'#255 +'RJ['#255'RK]'#255'QJ\'#255'RK]'#255'PL['#255'PL\'#255'RK^'#255'SK^'#255'SL_' +#255'SM_'#255'TM^'#255'UN^'#255'VM_'#255'UN`'#255'UO`'#255'VO_'#255'UO_'#255 +'SQd'#255'VPd'#255'VPb'#255'TR`'#255'TSb'#255'VRb'#255'TRd'#255'TRe'#255'VRf' +#255'XRg'#255'YSg'#255'YRf'#255'YRe'#255'XSc'#255'WSh'#255'WSg'#255'XSe'#255 +'WSd'#255'VSe'#255'WUf'#255'WUf'#255'XTg'#255'ZUj'#255'ZUj'#255'ZVg'#255'XUe' +#255'WTf'#255'XUf'#255'ZVi'#255'YVj'#255'YUi'#255'YUh'#255'\Ul'#255'YVl'#255 +'XVk'#255'YVl'#255'[Wl'#255'YWk'#255'XVi'#255'YVi'#255'ZUi'#255'ZUh'#255'XVj' +#255'XVl'#255'YVk'#255'[Uj'#255'ZVj'#255'XRe'#255'OIY'#255'<9F'#255'&$-'#255 +#19#19#23#255#7#7#8#255#1#1#1#253#0#0#0#247#0#0#0#226#0#0#0#179#0#0#0't'#0#0 +#0'6'#0#0#0#12#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#3#0#0#0#29#0#0#0'M'#0#0#0#140#0#0#0#201#0#0#0#236#1#0#1#250#3#2#3 +#254#8#7#9#255#21#18#23#255'''"*'#255'72>'#255'D=N'#255'LCT'#255'NDU'#255'NE' +'W'#255'NFX'#255'NGV'#255'NGV'#255'NFU'#255'NGW'#255'OHZ'#255'NGY'#255'QHX' +#255'PIZ'#255'OJ\'#255'OI]'#255'OJ\'#255'LJZ'#255'NJ]'#255'QJ`'#255'SK]'#255 +'PL\'#255'RM]'#255'TM^'#255'UL^'#255'UK^'#255'RK_'#255'TL_'#255'TN^'#255'RO^' +#255'QN`'#255'SOb'#255'TOb'#255'TP_'#255'UQ`'#255'VO`'#255'UQc'#255'UQc'#255 +'UO_'#255'VPe'#255'XQf'#255'WQc'#255'VP`'#255'WQb'#255'WQd'#255'XQd'#255'XRd' +#255'USd'#255'WRe'#255'VSe'#255'WTe'#255'YTf'#255'WSg'#255'WTi'#255'VSf'#255 +'VTe'#255'VVg'#255'XUi'#255'WSf'#255'WSf'#255'XTf'#255'YTe'#255'ZSh'#255'YTi' +#255'XUj'#255'WTi'#255'YTh'#255'YTg'#255'XTg'#255'XTh'#255'XTj'#255'USd'#255 +'VTg'#255'XTh'#255'XSh'#255'WSg'#255'TQc'#255'MIY'#255'>:H'#255')&1'#255#20 +#19#24#255#8#7#9#255#2#2#3#253#0#1#0#247#0#0#0#233#0#0#0#194#0#0#0#129#0#0#0 +'B'#0#0#0#21#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#8#0#0#0'%'#0#0#0'W'#0#0#0#152#0#0#0#205#0#0#0#239#0#0 +#0#253#2#2#2#255#10#9#11#255#22#20#24#255'%"+'#255'61>'#255'E7E'#255'E=L'#255'IAS'#255'I@R'#255'JAR'#255 +'KCS'#255'LCS'#255'LBS'#255'MDT'#255'MEU'#255'MDU'#255'KCT'#255'MDU'#255'NEU' +#255'NFU'#255'MEU'#255'OFY'#255'LFW'#255'LFW'#255'NFX'#255'PFW'#255'OGV'#255 +'MFU'#255'MGW'#255'NHY'#255'LGV'#255'PIZ'#255'QH['#255'PH['#255'PIZ'#255'PHW' +#255'OJY'#255'NJZ'#255'OJY'#255'RHY'#255'RIY'#255'QIY'#255'RJZ'#255'SJZ'#255 +'RHZ'#255'TI]'#255'RI\'#255'PJ['#255'OK\'#255'PK\'#255'OJ\'#255'QJ]'#255'SJ^' +#255'SJ['#255'RJY'#255'QJ['#255'RJ^'#255'SJ_'#255'RL['#255'QJ\'#255'RJ]'#255 +'RK^'#255'PK^'#255'PI\'#255'KEV'#255'C>L'#255'72>'#255'($,'#255#25#22#27#255 +#12#11#14#255#4#4#5#255#1#1#1#253#0#0#0#249#0#0#0#234#0#0#0#204#0#0#0#157#0#0 +#0'd'#0#0#0'2'#0#0#0#17#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3#0#0#0#20#0#0#0':'#0#0 +#0'm'#0#0#0#164#0#0#0#211#0#0#0#236#0#0#1#248#1#1#1#254#4#3#4#255#10#9#10#255 +#20#17#22#255' '#30'%'#255'-*3'#255':3?'#255'B:H'#255'E=M'#255'G@P'#255'HAQ' +#255'IAP'#255'J@P'#255'KAQ'#255'KBQ'#255'KBQ'#255'JAR'#255'KBR'#255'JCR'#255 +'KCR'#255'KCS'#255'KCU'#255'JDT'#255'KEU'#255'MEV'#255'NDU'#255'MDS'#255'KES' +#255'KFS'#255'LFU'#255'KGV'#255'NGX'#255'PGX'#255'OGW'#255'MGW'#255'NGU'#255 +'OHV'#255'OHX'#255'OHX'#255'PHX'#255'NHX'#255'NHX'#255'OIX'#255'PIY'#255'PFZ' ,#255'QG\'#255'QHZ'#255'PHX'#255'OIY'#255'OHY'#255'MIZ'#255'MI\'#255'PI]'#255 +'RJZ'#255'RIX'#255'QIY'#255'RI['#255'TJ]'#255'QJZ'#255'OHY'#255'NH['#255'LJ[' +#255'KEW'#255'F@Q'#255'=8F'#255'0,7'#255'!'#30'&'#255#19#17#21#255#9#8#10#255 +#3#3#3#255#0#0#0#253#0#0#0#246#0#0#0#231#0#0#0#201#0#0#0#153#0#0#0'_'#0#0#0 +'/'#0#0#0#15#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#18#0#0#0 +'4'#0#0#0'f'#0#0#0#156#0#0#0#201#0#0#0#231#0#0#0#247#1#0#1#253#3#2#3#255#6#5 +#6#255#14#13#16#255#25#23#28#255'''!*'#255'3+6'#255'<7D'#255'A;K'#255'D=L' +#255'F>M'#255'IN'#255'G@O'#255'IAO'#255'H@N'#255'GAO'#255'FAN'#255 +'GAO'#255'IBP'#255'KBQ'#255'IAP'#255'JBQ'#255'KCR'#255'LBQ'#255'LCQ'#255'KDR' +#255'KDR'#255'KCR'#255'KFU'#255'JCU'#255'KDT'#255'KET'#255'IDT'#255'JDT'#255 +'JDR'#255'LDS'#255'NDT'#255'LFU'#255'IET'#255'KET'#255'LFT'#255'KGU'#255'LEW' +#255'MFW'#255'MFV'#255'MFW'#255'NHZ'#255'MFW'#255'MHX'#255'LHZ'#255'LGZ'#255 +'OHY'#255'NGW'#255'PHY'#255'QIZ'#255'OHX'#255'OGW'#255'PHW'#255'KGT'#255'CBO' +#255'?:H'#255'5/='#255'($-'#255#26#24#29#255#15#13#16#255#5#4#6#255#2#1#3#255 +#1#0#1#252#0#0#0#244#0#0#0#229#0#0#0#193#0#0#0#144#0#0#0'Z'#0#0#0'+'#0#0#0#13 +#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3#0#0#0#16#0#0 +#0'.'#0#0#0'Z'#0#0#0#142#0#0#0#190#0#0#0#223#0#0#0#243#0#0#0#253#1#1#1#254#5 +#5#5#255#11#10#12#255#20#17#22#255' '#28'"'#255'+&0'#255'40;'#255'=7C'#255'E' +';I'#255'G;I'#255'H>O'#255'I@Q'#255'I@P'#255'F?P'#255'GAR'#255'J@Q'#255'I@O' +#255'GAO'#255'IAO'#255'HAP'#255'IBQ'#255'KBQ'#255'KBR'#255'JBQ'#255'ICO'#255 +'IDQ'#255'JDT'#255'ICS'#255'GDU'#255'GCS'#255'ICR'#255'KDT'#255'KDT'#255'LET' +#255'MFU'#255'MEV'#255'KEU'#255'IES'#255'LFV'#255'MGX'#255'KEU'#255'LDV'#255 +'MDV'#255'MDU'#255'MDT'#255'MFU'#255'KGV'#255'LHZ'#255'MHZ'#255'NFX'#255'NEU' +#255'MFX'#255'NGY'#255'PHX'#255'OHV'#255'NET'#255'HAO'#255'@M'#255'H>O'#255'G>P'#255'J@Q'#255'J@P'#255'I@P' +#255'HAP'#255'IAO'#255'JBQ'#255'KBR'#255'LBR'#255'KBR'#255'IAR'#255'JBR'#255 +'JCS'#255'JCS'#255'KAS'#255'JCT'#255'JDT'#255'LDS'#255'MCS'#255'LDS'#255'LDS' +#255'LET'#255'LEU'#255'MDT'#255'MCS'#255'NDW'#255'NEX'#255'LEU'#255'MFV'#255 +'LDT'#255'LCS'#255'MCS'#255'NDT'#255'LGW'#255'LFY'#255'MEX'#255'NFW'#255'OEU' +#255'NEX'#255'MEX'#255'KDT'#255'HAO'#255'D;J'#255'94?'#255'-*3'#255'!'#30'&' +#255#22#19#24#255#13#11#14#255#7#6#7#255#3#2#3#255#1#0#1#254#0#0#0#245#0#0#0 +#232#0#0#0#204#0#0#0#163#0#0#0's'#0#0#0'C'#0#0#0#31#0#0#0#9#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#8#0#0#0#28#0#0#0'>'#0#0#0'l'#0#0#0#156#0#0#0#197#0#0#0#225#0#0#0#244 +#0#0#0#252#1#2#1#254#3#3#4#255#8#8#9#255#16#14#17#255#25#21#27#255'$'#31'''' +#255'.)3'#255'60;'#255'=4A'#255'B8G'#255'D;K'#255'G>M'#255'H@O'#255'I@O'#255 +'H@P'#255'H?O'#255'JAQ'#255'KAR'#255'KAQ'#255'KBQ'#255'I@R'#255'JBS'#255'JBR' +#255'IBQ'#255'JBR'#255'KBR'#255'LCS'#255'LCR'#255'KCQ'#255'KCR'#255'KCR'#255 +'KCR'#255'LCS'#255'MCR'#255'MBR'#255'MBU'#255'MCU'#255'MDR'#255'MFT'#255'LDT' +#255'LDS'#255'MDS'#255'LDT'#255'LFW'#255'LEW'#255'MDV'#255'LDU'#255'LCS'#255 +'JAR'#255'E>N'#255'?9G'#255'83?'#255'0)4'#255'$ ('#255#24#22#28#255#14#13#16 +#255#8#6#8#255#3#2#3#255#1#1#1#254#0#0#0#250#0#0#0#241#0#0#0#220#0#0#0#187#0 +#0#0#145#0#0#0'b'#0#0#0'5'#0#0#0#22#0#0#0#5#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#3#0#0#0#19#0#0#0'0'#0#0#0'X'#0#0#0#135#0#0#0#182#0#0#0#214#0#0#0#234 +#0#0#0#246#0#0#0#253#2#1#2#254#4#3#5#255#9#7#9#255#16#13#17#255#25#21#26#255 +'"'#29'$'#255'+%-'#255'2,6'#255'91>'#255'=7E'#255'B;J'#255'F=L'#255'G=M'#255 +'E=M'#255'H?P'#255'I@P'#255'I@P'#255'JAP'#255'H@Q'#255'I@O'#255'IAO'#255'HAO' +#255'GCQ'#255'JAQ'#255'KAP'#255'IBP'#255'GCP'#255'HBQ'#255'IBQ'#255'K@Q'#255 +'L?Q'#255'KBP'#255'IAQ'#255'IAR'#255'JBQ'#255'LBP'#255'KCR'#255'LDU'#255'MDT' +#255'LCS'#255'HCS'#255'JCS'#255'KBR'#255'IAP'#255'F>N'#255'C:J'#255'=6D'#255 +'4/;'#255'+''0'#255'" &'#255#24#21#26#255#16#13#18#255#8#7#10#255#3#3#3#255#2 +#1#2#253#0#0#0#252#0#0#0#244#0#0#0#229#0#0#0#206#0#0#0#171#0#0#0'{'#0#0#0'M' +#0#0#0'('#0#0#0#13#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#1#0#0#0#11#0#0#0'!'#0#0#0'D'#0#0#0'p'#0#0#0#155#0#0#0#194#0#0#0#225 +#0#0#0#240#0#0#0#247#1#1#1#253#2#2#2#255#5#4#5#255#8#7#9#255#14#13#15#255#22 +#19#23#255#30#25' '#255'% )'#255'-''2'#255'4-9'#255':2?'#255'@6D'#255'A9G' +#255'DL'#255'I>N'#255'I=N'#255'I@Q'#255'I@O'#255'H@O'#255'H@P'#255 +'K@O'#255'J>N'#255'H>N'#255'H@O'#255'IAQ'#255'JAR'#255'J@R'#255'K?Q'#255'L?P' +#255'IAQ'#255'J@O'#255'H?O'#255'H@O'#255'JAP'#255'KBQ'#255'KAU'#255'K?S'#255 +'J>P'#255'F?O'#255'F=K'#255'B9H'#255'<4C'#255'7/<'#255'/(3'#255'&!*'#255#28 +#26' '#255#19#18#23#255#13#11#14#255#7#6#8#255#4#4#5#255#2#2#2#255#0#0#0#253 +#0#0#0#247#0#0#0#235#0#0#0#215#0#0#0#184#0#0#0#141#0#0#0'c'#0#0#0':'#0#0#0#26 +#0#0#0#6#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#6#0#0#0#21#0#0#0'1'#0#0#0'U'#0#0#0#127#0#0#0#167#0#0#0 +#199#0#0#0#225#0#0#0#240#0#0#0#248#1#0#1#253#2#2#2#255#4#3#4#255#7#6#8#255#12 +#10#12#255#18#15#18#255#23#20#25#255#30#25' '#255'&'#31''''#255',%.'#255'0+5' +#255'6/;'#255';2?'#255'>4B'#255'A6C'#255'B9G'#255'B;J'#255'BM'#255 +'E=K'#255'G?L'#255'G>L'#255'H=M'#255'H>O'#255'G>O'#255'H?O'#255'H?O'#255'H?P' +#255'I@R'#255'J>N'#255'G>M'#255'E?M'#255'F?M'#255'G>K'#255'D;J'#255'A8I'#255 +'=5E'#255'91?'#255'5.8'#255'-''1'#255'%!*'#255#30#27'"'#255#23#20#25#255#17 +#14#18#255#11#10#12#255#6#6#7#255#4#3#5#255#1#1#2#255#0#0#1#252#0#0#0#246#0#0 +#0#236#0#0#0#221#0#0#0#190#0#0#0#153#0#0#0'p'#0#0#0'H'#0#0#0''''#0#0#0#16#0#0 +#0#4#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#12#0#0#0#31#0#0#0'<'#0#0#0'`'#0#0 +#0#132#0#0#0#170#0#0#0#199#0#0#0#222#0#0#0#240#0#0#0#247#0#0#0#252#1#1#1#254 +#2#2#2#255#5#4#5#255#8#6#8#255#12#10#13#255#17#14#18#255#22#18#24#255#26#24 +#29#255'!'#28'#'#255'& ('#255'+#-'#255'/''1'#255'2+5'#255'4.:'#255'60='#255 +'72?'#255'83>'#255'93>'#255':3>'#255';3?'#255'=4B'#255'>6D'#255'@8E'#255'@8E' +#255'>8E'#255'>7F'#255'>5C'#255'=5A'#255':4@'#255'92>'#255'70:'#255'2+6'#255 +'.''3'#255')#.'#255'#'#31'&'#255#30#26' '#255#23#20#25#255#16#15#19#255#12#11 +#14#255#7#7#8#255#5#4#5#255#2#2#2#255#1#1#1#254#0#0#1#252#0#0#0#245#0#0#0#236 +#0#0#0#218#0#0#0#192#0#0#0#161#0#0#0'z'#0#0#0'S'#0#0#0'1'#0#0#0#23#0#0#0#7#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3#0#0#0#15#0#0#0 +'#'#0#0#0'?'#0#0#0'b'#0#0#0#134#0#0#0#169#0#0#0#200#0#0#0#217#0#0#0#235#0#0#0 +#244#0#0#0#248#0#0#1#251#1#0#1#254#2#2#3#255#4#3#5#255#7#5#7#255#10#8#10#255 +#13#11#14#255#17#14#18#255#21#17#22#255#25#21#27#255#29#24#31#255' '#28'#' +#255'#'#30''''#255'% ('#255'% '''#255'#'#31'&'#255'#'#30'&'#255'%'#31'('#255 +'''"+'#255'+&/'#255'/(3'#255'/)3'#255'-(1'#255'+''0'#255'*%.'#255')#-'#255 +'''!+'#255'$'#30''''#255' '#28'"'#255#27#24#30#255#24#20#25#255#20#16#21#255 +#14#13#16#255#11#9#11#255#7#6#7#255#4#4#4#255#2#2#2#255#1#1#0#254#0#0#0#251#0 +#0#0#247#0#0#0#241#0#0#0#232#0#0#0#212#0#0#0#191#0#0#0#162#0#0#0'}'#0#0#0'X' +#0#0#0'6'#0#0#0#28#0#0#0#10#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3#0#0#0#14#0#0#0'"'#0#0#0'='#0#0 +#0'_'#0#0#0#130#0#0#0#161#0#0#0#191#0#0#0#211#0#0#0#225#0#0#0#237#0#0#0#243#0 +#1#0#249#1#1#1#252#1#1#1#254#2#2#2#255#3#2#3#255#4#3#5#255#6#5#7#255#7#6#8 +#255#9#7#10#255#12#10#13#255#15#12#15#255#15#13#16#255#14#12#14#255#13#11#13 +#255#11#9#12#255#11#9#13#255#16#13#17#255#20#17#21#255#22#20#25#255#23#20#26 +#255#23#19#25#255#22#19#24#255#20#17#21#255#18#15#20#255#16#14#18#255#13#11 +#15#255#11#10#12#255#9#8#9#255#7#6#7#255#5#4#5#255#3#2#4#255#3#2#3#255#1#1#1 +#253#0#0#0#251#0#0#0#249#0#0#0#242#0#0#0#235#0#0#0#222#0#0#0#205#0#0#0#184#0 +#0#0#151#0#0#0'w'#0#0#0'V'#0#0#0'7'#0#0#0#29#0#0#0#11#0#0#0#2#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#1#0#0#0#5#0#0#0#16#0#0#0' '#0#0#0'8'#0#0#0'T'#0#0#0'q'#0#0 +#0#140#0#0#0#167#0#0#0#193#0#0#0#210#0#0#0#226#0#0#0#237#0#0#0#243#0#0#0#249 +#0#0#0#252#1#1#1#253#1#1#2#254#1#1#2#254#2#1#2#254#3#2#3#254#4#3#4#255#4#3#4 +#255#3#2#3#255#2#2#2#255#1#1#1#255#1#1#2#255#3#2#4#255#5#4#6#255#6#6#8#255#7 +#6#8#255#7#6#7#255#7#6#8#255#5#5#5#255#5#4#5#255#4#3#4#255#2#2#3#254#3#2#3 +#253#2#2#2#254#2#2#2#254#1#1#1#252#0#0#0#251#0#0#0#248#0#0#0#242#0#0#0#236#0 +#0#0#226#0#0#0#208#0#0#0#188#0#0#0#161#0#0#0#132#0#0#0'g'#0#0#0'J'#0#0#0'1'#0 +#0#0#28#0#0#0#12#0#0#0#4#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#1#0#0#0#5#0#0#0#14#0#0#0#27#0#0#0'-'#0#0#0'C'#0#0#0'['#0#0#0 +'u'#0#0#0#141#0#0#0#166#0#0#0#185#0#0#0#200#0#0#0#215#0#0#0#225#0#0#0#234#0#0 +#0#241#0#0#0#245#0#0#0#249#0#0#0#250#0#0#0#251#0#0#0#253#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#1#1#253#1#1#1#254#1#1#1#255#1#1#1 +#252#0#0#0#255#0#0#0#253#0#0#0#251#0#0#0#251#0#0#0#248#0#0#0#245#0#0#0#241#0 +#0#0#235#0#0#0#227#0#0#0#218#0#0#0#202#0#0#0#184#0#0#0#164#0#0#0#137#0#0#0'o' +#0#0#0'T'#0#0#0';'#0#0#0''''#0#0#0#23#0#0#0#11#0#0#0#4#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#2#0#0#0#8#0#0#0#17#0#0#0#30#0#0#0'0'#0#0#0'D'#0#0#0'Z'#0#0#0'o'#0#0 ,#0#130#0#0#0#149#0#0#0#165#0#0#0#181#0#0#0#196#0#0#0#206#0#0#0#216#0#0#0#222 +#0#0#0#227#0#0#0#234#0#0#0#243#0#0#0#249#0#0#0#253#0#0#0#253#0#0#0#249#0#0#0 +#247#0#0#0#241#0#0#0#240#0#0#0#241#0#0#0#235#0#0#0#237#0#0#0#233#0#0#0#228#0 +#0#0#224#0#0#0#218#0#0#0#208#0#0#0#198#0#0#0#185#0#0#0#169#0#0#0#154#0#0#0 +#133#0#0#0'n'#0#0#0'X'#0#0#0'A'#0#0#0','#0#0#0#27#0#0#0#14#0#0#0#5#0#0#0#1#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0 +#7#0#0#0#17#0#0#0#27#0#0#0'('#0#0#0'8'#0#0#0'G'#0#0#0'W'#0#0#0'i'#0#0#0'z'#0 +#0#0#137#0#0#0#151#0#0#0#162#0#0#0#172#0#0#0#185#0#0#0#202#0#0#0#218#0#0#0 +#228#0#0#0#228#0#0#0#219#0#0#0#212#0#0#0#203#0#0#0#200#0#0#0#198#0#0#0#193#0 +#0#0#189#0#0#0#183#0#0#0#174#0#0#0#165#0#0#0#155#0#0#0#140#0#0#0'~'#0#0#0'n' +#0#0#0'\'#0#0#0'L'#0#0#0':'#0#0#0')'#0#0#0#27#0#0#0#15#0#0#0#6#0#0#0#1#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#6#0#0#0#11#0#0#0#16#0#0#0#25#0#0 +#0'"'#0#0#0'-'#0#0#0'9'#0#0#0'D'#0#0#0'M'#0#0#0'W'#0#0#0'e'#0#0#0'z'#0#0#0 +#143#0#0#0#157#0#0#0#159#0#0#0#148#0#0#0#137#0#0#0'~'#0#0#0'y'#0#0#0'v'#0#0#0 +'q'#0#0#0'k'#0#0#0'c'#0#0#0'Z'#0#0#0'Q'#0#0#0'F'#0#0#0';'#0#0#0'0'#0#0#0'%'#0 +#0#0#27#0#0#0#18#0#0#0#11#0#0#0#6#0#0#0#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#1#0#0#0#3#0#0#0#5#0#0 +#0#8#0#0#0#11#0#0#0#16#0#0#0#20#0#0#0#25#0#0#0#31#0#0#0'*'#0#0#0'8'#0#0#0'A' +#0#0#0'B'#0#0#0'='#0#0#0'4'#0#0#0'1'#0#0#0'/'#0#0#0'-'#0#0#0'*'#0#0#0'%'#0#0 +#0' '#0#0#0#27#0#0#0#23#0#0#0#18#0#0#0#13#0#0#0#9#0#0#0#6#0#0#0#3#0#0#0#2#0#0 +#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#1#0#0#0#1#0#0#0#3#0#0#0#6#0#0#0#10#0#0#0#12#0#0#0#13#0#0#0#12#0#0#0#9 +#0#0#0#8#0#0#0#8#0#0#0#8#0#0#0#7#0#0#0#5#0#0#0#3#0#0#0#2#0#0#0#1#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#8'OnCreate'#7#10'FormCreate'#9'OnDestro' +'y'#7#11'FormDestroy'#6'OnShow'#7#8'FormShow'#8'Position'#7#14'poScreenCente' +'r'#10'LCLVersion'#6#7'1.8.2.0'#0#10'TStatusBar'#10'StatusBar1'#24'AnchorSid' +'eBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left' +#2#0#6'Height'#2#19#3'Top'#3#135#1#5'Width'#3'['#3#7'Anchors'#11#7'akRight'#8 +'akBottom'#0#6'Panels'#14#1#5'Width'#2'2'#0#0#11'SimplePanel'#8#0#0#5'TMemo' +#5'Memo1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#5 +'Owner'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9 +'asrBottom'#24'AnchorSideBottom.Control'#7#10'StatusBar1'#4'Left'#3'`'#2#6'H' +'eight'#3#129#1#3'Top'#2#3#5'Width'#3#248#0#7'Anchors'#11#5'akTop'#7'akRight' +#8'akBottom'#0#20'BorderSpacing.Around'#2#3#13'Lines.Strings'#1#6#161'This t' +'ool corrects the mpsas reading for datalogger .dat files created with firmw' +'are version 49-56 where subsequent values were 0.66mpsas brighter (lower va' +'lue).'#6#0#6#187'Corrected files will have a new filename which is appended' +' with "MPSASCorr". Also, the "# SQM firmware version:" line be appended wit' +'h "-CorrectedMPSAS" to prevent compounded corrections.'#6#0#6#139'You can c' +'orrect all the files in one directory (select the "Entire directory" tab), ' +'or just one single file (select the "Single file" tab).'#0#10'ScrollBars'#7 +#14'ssAutoVertical'#8'TabOrder'#2#1#0#0#12'TPageControl'#12'PageControl1'#22 +'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#23 +'AnchorSideRight.Control'#7#5'Memo1'#24'AnchorSideBottom.Control'#7#10'Statu' +'sBar1'#4'Left'#2#3#6'Height'#3#129#1#3'Top'#2#3#5'Width'#3'Z'#2#10'ActivePa' +'ge'#7#9'TabSheet1'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0 +#20'BorderSpacing.Around'#2#3#8'TabIndex'#2#0#8'TabOrder'#2#2#0#9'TTabSheet' +#9'TabSheet1'#7'Caption'#6#16'Entire directory'#12'ClientHeight'#3'h'#1#11'C' +'lientWidth'#3'X'#2#0#12'TLabeledEdit'#20'ConvertDirectoryEdit'#22'AnchorSid' +'eLeft.Control'#7#9'TabSheet1'#21'AnchorSideTop.Control'#7#9'TabSheet1'#23'A' +'nchorSideRight.Control'#7#9'TabSheet1'#20'AnchorSideRight.Side'#7#9'asrBott' +'om'#4'Left'#2'H'#6'Height'#2#25#3'Top'#2#4#5'Width'#3#12#2#7'Anchors'#11#5 +'akTop'#7'akRight'#0#17'BorderSpacing.Top'#2#4#19'BorderSpacing.Right'#2#4#31 +'EditLabel.AnchorSideTop.Control'#7#20'ConvertDirectoryEdit'#28'EditLabel.An' +'chorSideTop.Side'#7#9'asrCenter!EditLabel.AnchorSideRight.Control'#7#20'Con' +'vertDirectoryEdit"EditLabel.AnchorSideBottom.Control'#7#20'ConvertDirectory' +'Edit'#31'EditLabel.AnchorSideBottom.Side'#7#9'asrBottom'#14'EditLabel.Left' +#2#12#16'EditLabel.Height'#2#15#13'EditLabel.Top'#2#9#15'EditLabel.Width'#2 +'9'#17'EditLabel.Caption'#6#10'Directory:'#21'EditLabel.ParentColor'#8#13'La' +'belPosition'#7#6'lpLeft'#8'TabOrder'#2#0#8'OnChange'#7#26'ConvertDirectoryE' +'ditChange'#13'OnEditingDone'#7#31'ConvertDirectoryEditEditingDone'#0#0#7'TB' +'utton'#20'CheckDirectoryButton'#4'Left'#2'H'#6'Height'#2#25#4'Hint'#6'DChec' +'k selected directory for valid datalogger .dat files to convert.'#3'Top'#2 +' '#5'Width'#3#132#0#7'Caption'#6#15'Check directory'#7'OnClick'#7#25'CheckD' +'irectoryButtonClick'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#1#0#0 +#7'TButton'#22'CorrectDirectoryButton'#4'Left'#3#160#1#6'Height'#2#25#4'Hint' +#6'CRead files and write corrected ones to new new entries on the disk.'#3'T' +'op'#2' '#5'Width'#3#180#0#7'Caption'#6#25'Correct directory file(s)'#7'OnCl' +'ick'#7#27'CorrectDirectoryButtonClick'#14'ParentShowHint'#8#8'ShowHint'#9#8 +'TabOrder'#2#2#0#0#11'TStringGrid'#19'DirectoryStringGrid'#22'AnchorSideLeft' ,'.Control'#7#9'TabSheet1'#23'AnchorSideRight.Control'#7#9'TabSheet1'#20'Anch' +'orSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#9'TabSheet1' +#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#3'('#1#3'Top' +#2'@'#5'Width'#3'X'#2#7'Anchors'#11#6'akLeft'#7'akRight'#8'akBottom'#0#15'Au' +'toFillColumns'#9#8'ColCount'#2#4#7'Columns'#14#1#13'Title.Caption'#6#8'File' +'name'#5'Width'#3#149#0#0#1#13'Title.Caption'#6#4'Size'#5'Width'#3#149#0#0#1 +#13'Title.Caption'#6#5'Model'#5'Width'#3#149#0#0#1#13'Title.Caption'#6#8'Fir' +'mware'#5'Width'#3#149#0#0#0#9'FixedCols'#2#0#8'RowCount'#2#1#8'TabOrder'#2#3 +#9'ColWidths'#1#3#149#0#3#149#0#3#149#0#3#149#0#0#0#0#0#9'TTabSheet'#9'TabSh' +'eet2'#7'Caption'#6#11'Single file'#12'ClientHeight'#3'h'#1#11'ClientWidth'#3 +'X'#2#0#9'TGroupBox'#10'InGroupBox'#22'AnchorSideLeft.Control'#7#9'TabSheet2' +#21'AnchorSideTop.Control'#7#9'TabSheet2'#23'AnchorSideRight.Control'#7#9'Ta' +'bSheet2'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#4#6'Height'#2'J' +#3'Top'#2#4#5'Width'#3'P'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20 +'BorderSpacing.Around'#2#4#7'Caption'#6#11'Input file:'#12'ClientHeight'#2'9' +#11'ClientWidth'#3'L'#2#8'TabOrder'#2#0#0#7'TButton'#17'FileSelectButton1'#21 +'AnchorSideTop.Control'#7#10'InGroupBox'#4'Left'#2'L'#6'Height'#2#21#3'Top'#2 +#0#5'Width'#2'K'#7'Anchors'#11#5'akTop'#0#7'Caption'#6#11'Select file'#7'OnC' +'lick'#7#22'FileSelectButton1Click'#8'TabOrder'#2#0#0#0#12'TLabeledEdit'#9'I' +'nputFile'#22'AnchorSideLeft.Control'#7#17'FileSelectButton1'#21'AnchorSideT' +'op.Control'#7#17'FileSelectButton1'#18'AnchorSideTop.Side'#7#9'asrBottom'#23 +'AnchorSideRight.Control'#7#10'InGroupBox'#20'AnchorSideRight.Side'#7#9'asrB' +'ottom'#4'Left'#2'L'#6'Height'#2#25#3'Top'#2#25#5'Width'#3#252#1#7'Anchors' +#11#5'akTop'#6'akLeft'#7'akRight'#0#17'BorderSpacing.Top'#2#4#19'BorderSpaci' +'ng.Right'#2#4#31'EditLabel.AnchorSideTop.Control'#7#9'InputFile'#28'EditLab' +'el.AnchorSideTop.Side'#7#9'asrCenter!EditLabel.AnchorSideRight.Control'#7#9 +'InputFile"EditLabel.AnchorSideBottom.Control'#7#9'InputFile'#31'EditLabel.A' +'nchorSideBottom.Side'#7#9'asrBottom'#14'EditLabel.Left'#2#18#16'EditLabel.H' +'eight'#2#15#13'EditLabel.Top'#2#30#15'EditLabel.Width'#2'7'#17'EditLabel.Ca' +'ption'#6#9'Filename:'#21'EditLabel.ParentColor'#8#13'LabelPosition'#7#6'lpL' +'eft'#8'TabOrder'#2#1#0#0#12'TLabeledEdit'#26'FirmwareVersionLabeledEdit'#21 +'AnchorSideTop.Control'#7#10'InGroupBox'#23'AnchorSideRight.Control'#7#10'In' +'GroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3' '#2#6'Height'#2 +#25#3'Top'#2#0#5'Width'#2'('#7'Anchors'#11#5'akTop'#7'akRight'#0#19'BorderSp' +'acing.Right'#2#4#31'EditLabel.AnchorSideTop.Control'#7#26'FirmwareVersionLa' +'beledEdit'#28'EditLabel.AnchorSideTop.Side'#7#9'asrCenter!EditLabel.AnchorS' +'ideRight.Control'#7#26'FirmwareVersionLabeledEdit"EditLabel.AnchorSideBotto' +'m.Control'#7#26'FirmwareVersionLabeledEdit'#31'EditLabel.AnchorSideBottom.S' +'ide'#7#9'asrBottom'#14'EditLabel.Left'#3#181#1#16'EditLabel.Height'#2#15#13 +'EditLabel.Top'#2#5#15'EditLabel.Width'#2'h'#17'EditLabel.Caption'#6#17'Firm' +'ware version:'#21'EditLabel.ParentColor'#8#13'LabelPosition'#7#6'lpLeft'#8 +'TabOrder'#2#2#0#0#12'TLabeledEdit'#16'ModelLabeledEdit'#21'AnchorSideTop.Co' +'ntrol'#7#10'InGroupBox'#4'Left'#3'.'#1#6'Height'#2#25#3'Top'#2#0#5'Width'#2 +'P'#31'EditLabel.AnchorSideTop.Control'#7#16'ModelLabeledEdit'#28'EditLabel.' +'AnchorSideTop.Side'#7#9'asrCenter!EditLabel.AnchorSideRight.Control'#7#16'M' +'odelLabeledEdit"EditLabel.AnchorSideBottom.Control'#7#16'ModelLabeledEdit' +#31'EditLabel.AnchorSideBottom.Side'#7#9'asrBottom'#14'EditLabel.Left'#3#5#1 +#16'EditLabel.Height'#2#15#13'EditLabel.Top'#2#5#15'EditLabel.Width'#2'&'#17 +'EditLabel.Caption'#6#6'Model:'#21'EditLabel.ParentColor'#8#13'LabelPosition' +#7#6'lpLeft'#8'TabOrder'#2#3#0#0#0#9'TGroupBox'#11'OutGroupBox'#22'AnchorSid' +'eLeft.Control'#7#9'TabSheet2'#21'AnchorSideTop.Control'#7#10'InGroupBox'#18 +'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#9'TabSheet' +'2'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#10 +'StatusBar1'#4'Left'#2#4#6'Height'#2'_'#3'Top'#2'R'#5'Width'#3'P'#2#7'Anchor' +'s'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'#2#4#7'Captio' +'n'#6#12'Output file:'#12'ClientHeight'#2'N'#11'ClientWidth'#3'L'#2#8'TabOrd' +'er'#2#1#0#12'TLabeledEdit'#10'OutputFile'#22'AnchorSideLeft.Control'#7#13'C' +'orrectButton'#21'AnchorSideTop.Control'#7#13'CorrectButton'#18'AnchorSideTo' +'p.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#11'OutGroupBox'#20'Anc' +'horSideRight.Side'#7#9'asrBottom'#4'Left'#2'I'#6'Height'#2#25#3'Top'#2','#5 +'Width'#3#255#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#17'BorderSpaci' +'ng.Top'#2#8#19'BorderSpacing.Right'#2#4#31'EditLabel.AnchorSideTop.Control' +#7#10'OutputFile'#28'EditLabel.AnchorSideTop.Side'#7#9'asrCenter!EditLabel.A' +'nchorSideRight.Control'#7#10'OutputFile"EditLabel.AnchorSideBottom.Control' ,#7#10'OutputFile'#31'EditLabel.AnchorSideBottom.Side'#7#9'asrBottom'#14'Edit' +'Label.Left'#2#15#16'EditLabel.Height'#2#15#13'EditLabel.Top'#2'1'#15'EditLa' +'bel.Width'#2'7'#17'EditLabel.Caption'#6#9'Filename:'#21'EditLabel.ParentCol' +'or'#8#13'LabelPosition'#7#6'lpLeft'#8'TabOrder'#2#0#0#0#7'TBitBtn'#13'Corre' +'ctButton'#21'AnchorSideTop.Control'#7#11'OutGroupBox'#4'Left'#2'I'#6'Height' +#2'$'#4'Hint'#6'%Correct .dat file for time difference'#3'Top'#2#0#5'Width'#3 +'<'#1#7'Anchors'#11#5'akTop'#0#7'Caption'#6'*Correct mpsas offset for DL fir' +'mware 49-56'#7'Enabled'#8#10'Glyph.Data'#10':'#16#0#0'6'#16#0#0'BM6'#16#0#0 +#0#0#0#0'6'#0#0#0'('#0#0#0' '#0#0#0' '#0#0#0#1#0' '#0#0#0#0#0#0#16#0#0'd'#0#0 +#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#128#170#128#4#200#218#200#9#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#8'^'#8 +'!'#27'o'#26#224'S'#148'Q'#232'='#139'=*'#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#0'/'#0#6#2'\'#1#210'+t*'#255'8|7' +#255#8'j'#6#214#0'/'#0#6#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 ,#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#1'W'#0#171#20'h'#19#255'6u6'#255#5'H'#5#255#11'k'#9#255#1'i'#0 +#177#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0'U'#0'y'#11'b'#10 +#254'<'#129'<'#255'3z3'#255#1'O'#1#255#6'Z'#6#255#10't'#7#254#2'i'#0#129#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#0'P'#0'H'#4'\'#3#247'<'#133'<'#255'='#136'='#255'2'#128 +'2'#255#2'['#2#255#0'\'#0#255#11'l'#10#255#7'w'#4#249#3'h'#0'O'#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0'T'#0#31#0'U'#0#232 +'6'#131'6'#255'G'#146'G'#255':'#139':'#255'/'#133'/'#255#5'g'#5#255#0'g'#0 +#255#0'j'#0#255#16'|'#15#255#3'x'#0#237#0'j'#0'"'#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#0'/'#0#6#0'O'#0#207'+w+'#255'Q'#156'Q'#255'E'#150'E'#255'8' +#143'8'#255'-'#138'-'#255#8'r'#8#255#0'q'#0#255#0'u'#0#255#0'w'#0#255#19#132 +#17#255#4'z'#0#216#0'M'#0#7#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0'M'#0#169#29'j'#29#255 +'['#164'['#255'O'#159'O'#255'C'#153'C'#255'6'#148'6'#255'+'#143'+'#255#9'|'#9 +#255#0'{'#0#255#0#127#0#255#0#130#0#255#4#133#4#255#18#135#15#255#3'x'#0#181 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#0'L'#0'x'#18'['#18#254'`'#166'`'#255'Y'#166'Y'#255'L'#161'L' +#255'@'#156'@'#255'4'#152'4'#255'*'#149'*'#255#7#131#7#255#0#133#0#255#0#138 +#0#255#0#141#0#255#0#143#0#255#9#146#9#255#15#135#11#254#2'w'#0#133#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0'L'#0'H'#5'Q'#5#247'_' +#162'_'#255'c'#173'c'#255'W'#168'W'#255'J'#163'J'#255'>'#159'>'#255'1'#156'1' +#255'+'#156'+'#255#5#138#5#255#0#142#0#255#0#148#0#255#0#152#0#255#0#154#0 +#255#0#154#0#255#16#155#15#255#10#133#6#250#3'u'#0'Q'#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#0'T'#0#31#0'M'#0#232'W'#152'W'#255'm'#181'm'#255'a'#173'a'#255'U' +#169'U'#255'H'#164'H'#255'<'#162'<'#255'/'#159'/'#255','#161','#255#0#144#0 +#255#0#151#0#255#0#157#0#255#0#162#0#255#0#165#0#255#0#165#0#255#0#164#0#255 +#24#159#22#255#5#133#1#239#0's'#0'#'#255#255#255#0#255#255#255#0#255#255#255 +#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#0'/'#0#6#0'M'#0#207'F'#134'F'#255'x' +#188'x'#255'k'#180'k'#255'^'#174'^'#255'R'#169'R'#255'F'#165'F'#255'9'#163'9' +#255'-'#162'-'#255'*'#166'*'#255#0#151#0#255#0#159#0#255#0#166#0#255#0#172#0 +#255#0#176#0#255#0#177#0#255#0#175#0#255#0#170#0#255#26#157#23#255#5#132#0 +#220#0'M'#0#7#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#0'M'#0#169'1s1'#255#132#193#132#255'u'#186'u'#255'i'#179'i'#255'\'#173'\' +#255'O'#169'O'#255'C'#166'C'#255'7'#164'7'#255'+'#163'+'#255')'#168')'#255#0 +#157#0#255#0#165#0#255#0#174#0#255#0#181#0#255#0#186#0#255#0#189#0#255#0#186 +#0#255#0#180#0#255#5#172#5#255#24#150#20#255#4#133#0#186#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#0'K'#0'y'#29'b'#29#254#135#193#135#255#127 +#193#127#255's'#184's'#255'g'#178'g'#255'Z'#172'Z'#255'M'#169'M'#255'A'#166 +'A'#255'4'#164'4'#255'('#165'('#255'('#171'('#255#0#161#0#255#0#171#0#255#0 ,#180#0#255#0#189#0#255#0#196#0#255#0#200#0#255#0#197#0#255#0#189#0#255#0#178 +#0#255#12#168#12#255#19#144#14#254#4#130#0#137#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0'L'#0 +'H'#10'T'#10#247#134#186#134#255#137#199#137#255'}'#191'}'#255'p'#183'p'#255 +'d'#176'd'#255'X'#172'X'#255'K'#167'K'#255'?'#166'?'#255'2'#164'2'#255'%'#165 +'%'#255'('#172'('#255#0#163#0#255#0#174#0#255#0#184#0#255#0#194#0#255#0#204#0 +#255#0#211#0#255#0#208#0#255#0#196#0#255#0#183#0#255#0#170#0#255#20#160#19 +#255#13#141#8#250#3#129#0'T'#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#0'@'#0#2#0'M'#0#227#132#177#132#255#153#210#153#255 +#141#200#141#255#131#193#131#255'w'#185'w'#255'j'#179'j'#255'`'#176'`'#255'W' +#172'W'#255'M'#172'M'#255'B'#172'B'#255'6'#171'6'#255'9'#179'9'#255#4#166#4 +#255#5#177#5#255#6#187#6#255#6#197#6#255#7#208#7#255#8#218#8#255#9#214#9#255 +#10#201#10#255#11#188#11#255#12#175#12#255#13#161#13#255'/'#167'5'#255#27#160 +'*'#236#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#0'U'#0#2#0'M'#0#211#0'M'#0#255#0'M'#0#255#0'M'#0#255#0'N'#0#255#0'U'#0#255#0 +'\'#0#255#0'c'#0#255#0'j'#0#255#2'p'#1#255#3't'#2#255#3'{'#2#255#5'~'#3#255#6 +#130#4#255#7#132#5#255#9#136#6#255#9#139#6#255#10#140#7#255#12#143#8#255#13 +#143#9#255#14#144#10#255#16#146#11#255#17#145#12#255#18#144#13#255#19#143#13 +#255#6#141#1#218#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#0'f'#0#3#0'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0 +'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0 +#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0 +'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0'P'#0#17#0'f'#0#3#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 ,#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#7'OnClick'#7#18'CorrectButtonClick'#14'ParentShowHi' +'nt'#8#8'ShowHint'#9#8'TabOrder'#2#1#0#0#0#0#0#11'TOpenDialog'#11'OpenDialog' +'1'#4'left'#3#240#2#3'top'#3#216#0#0#0#0 ]); ./filtersunmoonunit.lrs0000644000175000017500000003702214576573022015502 0ustar anthonyanthony{ This is an automatically generated lazarus resource file } LazarusResources.Add('TFilterSunMoonForm','FORMDATA',[ 'TPF0'#18'TFilterSunMoonForm'#17'FilterSunMoonForm'#4'Left'#3#27#8#6'Height'#3 +#18#3#3'Top'#2'w'#5'Width'#3#210#5#7'Caption'#6#29'Filter Sun-Moon-MW-Clouds' +'.csv'#12'ClientHeight'#3#18#3#11'ClientWidth'#3#210#5#8'OnCreate'#7#10'Form' +'Create'#6'OnShow'#7#8'FormShow'#8'Position'#7#14'poScreenCenter'#10'LCLVers' +'ion'#6#7'2.2.6.0'#0#5'TEdit'#14'SourceFileEdit'#22'AnchorSideLeft.Control'#7 +#16'SourceFileButton'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTo' +'p.Control'#7#16'SourceFileButton'#23'AnchorSideRight.Control'#7#5'Owner'#20 +'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2'&'#6'Height'#2#30#4'Hint'#6 +#12' Input file.'#3'Top'#2#4#5'Width'#3#168#5#7'Anchors'#11#5'akTop'#6'akLef' +'t'#7'akRight'#0#8'AutoSize'#8#18'BorderSpacing.Left'#2#4#19'BorderSpacing.R' +'ight'#2#4#8'TabOrder'#2#0#0#0#7'TBitBtn'#16'SourceFileButton'#22'AnchorSide' +'Left.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#23'AnchorSide' +'Right.Control'#7#14'SourceFileEdit'#4'Left'#2#4#6'Height'#2#30#4'Hint'#6#18 +'Select input file.'#3'Top'#2#4#5'Width'#2#30#18'BorderSpacing.Left'#2#4#17 +'BorderSpacing.Top'#2#4#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0 +#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0 +#0#0#0#0#0#0#0#0#0#0'SMF'#160#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255 +#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255#164 +'e4'#255#164'e4'#255#164'e4'#255#164'f5'#233#166'g69HHH'#224#151#134'x'#255 +#165'i:'#255#186#131'P'#255#186#131'P'#255#186#131'P'#255#186#131'P'#255#186 +#131'P'#255#186#131'P'#255#186#131'P'#255#186#131'P'#255#186#131'P'#255#186 +#131'P'#255#186#131'P'#255#178'xE'#255#165'f6'#192'III'#224#153#153#153#255 +#165'h9'#255#211#166'~'#255#210#163'x'#255#210#163'x'#255#210#163'x'#255#210 +#163'x'#255#210#163'x'#255#210#163'x'#255#210#163'x'#255#210#163'x'#255#210 +#163'x'#255#211#164'y'#255#209#165'z'#255#165'f5'#245'HHH'#226#155#155#155 +#255#164'g8'#255#213#171#133#255#206#156'n'#255#206#156'm'#255#206#156'm'#255 +#206#156'm'#255#206#156'm'#255#206#156'm'#255#206#156'm'#255#206#156'm'#255 +#206#156'm'#255#207#158'p'#255#213#171#132#255#165'f5'#248'LLL'#228#161#161 +#161#255#165'h8'#255#226#196#169#255#213#168#129#255#211#164'z'#255#211#164 +'z'#255#211#164'z'#255#211#164'z'#255#211#164'z'#255#211#164'z'#255#211#164 +'z'#255#211#164'z'#255#212#167'~'#255#221#186#156#255#165'f5'#249'QQQ'#229 +#164#165#165#255#165'g7'#255#233#210#190#255#221#186#155#255#221#185#153#255 +#220#182#149#255#219#181#146#255#218#179#144#255#217#178#142#255#216#174#137 +#255#215#173#135#255#215#173#135#255#216#176#139#255#229#201#177#255#165'f5' +#250'VVV'#231#169#169#169#255#164'f6'#255#236#216#198#255#221#186#153#255#221 +#186#153#255#221#186#153#255#221#186#153#255#221#186#153#255#221#186#153#255 +#221#186#153#255#220#183#149#255#218#178#142#255#217#176#139#255#231#207#184 +#255#165'f5'#251'[[['#233#174#174#174#255#165'g6'#255#235#215#196#255#220#183 +#148#255#220#183#148#255#220#183#148#255#220#183#148#255#220#183#148#255#220 +#183#148#255#220#183#148#255#220#183#148#255#220#183#148#255#218#180#145#255 +#230#205#182#255#165'f5'#252'___'#233#179#179#179#255#164'f5'#255#234#213#193 +#255#219#180#145#255#219#180#145#255#219#181#145#255#219#181#145#255#219#181 +#146#255#219#181#146#255#219#181#146#255#219#181#146#255#219#181#146#255#220 +#184#150#255#231#207#183#255#164'f4'#253'eee'#235#183#183#183#255#165'f5'#255 +#234#211#190#255#234#212#191#255#234#212#191#255#234#212#190#255#234#212#190 +#255#234#212#190#255#233#211#190#255#233#211#190#255#233#211#190#255#233#211 +#190#255#233#211#190#255#232#207#184#255#165'e4'#254'jjj'#236#189#189#189#255 +#166'mA'#255#165'f6'#255#165'f6'#255#165'f6'#255#165'f6'#255#165'f6'#255#164 +'f5'#255#164'f5'#255#164'f5'#255#164'f5'#255#164'e4'#255#164'e4'#255#164'e4' +#255#166'h7'#224'nnn'#238#192#193#193#255#172#172#172#255#170#170#170#255#167 +#167#167#255#165#165#165#255#164#164#164#255#164#164#164#255#172#172#172#255 +#182#182#182#255#185#185#185#255#187#187#187#255#162#162#162#255'jjj'#169'GG' +'G'#0'GGG'#0'sss'#239#197#197#197#255#176#176#176#255#173#173#173#255#171#171 +#171#255#170#170#170#255#172#172#172#255#141#141#141#245#141#141#141#242#140 +#140#140#242#140#140#140#242#140#140#140#242#128#128#128#246'lll'#132'GGG'#0 +'GGG'#0'xxx'#240#201#201#201#255#199#199#199#255#197#197#197#255#196#196#196 +#255#196#196#196#255#180#180#180#255'ttt'#202'rrr8rrr8rrr8mmm8ooo5UUU'#3'GGG' +#0'GGG'#0'zzz'#159'yyy'#236'yyy'#236'yyy'#236'yyy'#236'yyy'#236'yyy'#226'xxx' +'5GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG' +#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG' +#0'GGG'#0'GGG'#0#7'OnClick'#7#21'SourceFileButtonClick'#8'TabOrder'#2#1#0#0#7 +'TButton'#7'Button1'#21'AnchorSideTop.Control'#7#18'ParametersGroupBox'#18'A' +'nchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#18'Paramete' +'rsGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#12#1#6'Height' ,#2#30#3'Top'#3#141#1#5'Width'#2'x'#7'Anchors'#11#5'akTop'#7'akRight'#0#17'Bo' +'rderSpacing.Top'#2#5#19'BorderSpacing.Right'#2#4#7'Caption'#6#3'Run'#7'OnCl' +'ick'#7#12'Button1Click'#8'TabOrder'#2#2#0#0#10'TStatusBar'#10'StatusBar1'#4 +'Left'#2#0#6'Height'#2#21#3'Top'#3#253#2#5'Width'#3#210#5#6'Panels'#14#1#5'W' +'idth'#2'2'#0#0#11'SimplePanel'#8#0#0#9'TGroupBox'#16'ProgressGroupBox'#22'A' +'nchorSideLeft.Control'#7#18'ParametersGroupBox'#19'AnchorSideLeft.Side'#7#9 +'asrBottom'#21'AnchorSideTop.Control'#7#12'HelpGroupBox'#18'AnchorSideTop.Si' +'de'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRigh' +'t.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#10'StatusBar1'#4'Left' +#3#136#1#6'Height'#3#228#1#3'Top'#3#25#1#5'Width'#3'H'#4#7'Anchors'#11#5'akT' +'op'#6'akLeft'#7'akRight'#8'akBottom'#0#17'BorderSpacing.Top'#2#9#19'BorderS' +'pacing.Right'#2#2#7'Caption'#6#9'Progress:'#12'ClientHeight'#3#208#1#11'Cli' +'entWidth'#3'F'#4#8'TabOrder'#2#4#0#5'TMemo'#12'ProgressMemo'#22'AnchorSideL' +'eft.Control'#7#16'ProgressGroupBox'#21'AnchorSideTop.Control'#7#16'Progress' +'GroupBox'#23'AnchorSideRight.Control'#7#16'ProgressGroupBox'#20'AnchorSideR' +'ight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#12'ProgressBar1'#4 +'Left'#2#0#6'Height'#3#188#1#3'Top'#2#0#5'Width'#3'F'#4#7'Anchors'#11#5'akTo' +'p'#6'akLeft'#7'akRight'#8'akBottom'#0#8'ReadOnly'#9#10'ScrollBars'#7#10'ssA' +'utoBoth'#8'TabOrder'#2#0#8'WordWrap'#8#0#0#12'TProgressBar'#12'ProgressBar1' +#22'AnchorSideLeft.Control'#7#16'ProgressGroupBox'#23'AnchorSideRight.Contro' +'l'#7#16'ProgressGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'Anchor' +'SideBottom.Control'#7#16'ProgressGroupBox'#21'AnchorSideBottom.Side'#7#9'as' +'rBottom'#4'Left'#2#0#6'Height'#2#20#3'Top'#3#188#1#5'Width'#3'F'#4#7'Anchor' +'s'#11#6'akLeft'#7'akRight'#8'akBottom'#0#6'Smooth'#9#8'TabOrder'#2#1#0#0#0#9 +'TGroupBox'#12'HelpGroupBox'#22'AnchorSideLeft.Control'#7#18'ParametersGroup' +'Box'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#14 +'SourceFileEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Co' +'ntrol'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBott' +'om.Control'#7#10'StatusBar1'#4'Left'#3#136#1#6'Height'#3#238#0#3'Top'#2'"'#5 +'Width'#3'J'#4#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#7'Caption'#6#5 +'Help:'#12'ClientHeight'#3#218#0#11'ClientWidth'#3'H'#4#8'TabOrder'#2#5#0#5 +'TMemo'#5'Memo1'#22'AnchorSideLeft.Control'#7#12'HelpGroupBox'#21'AnchorSide' +'Top.Control'#7#12'HelpGroupBox'#23'AnchorSideRight.Control'#7#12'HelpGroupB' +'ox'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7 +#12'HelpGroupBox'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#0#6'Hei' +'ght'#3#214#0#3'Top'#2#4#5'Width'#3'H'#4#7'Anchors'#11#5'akTop'#6'akLeft'#7 +'akRight'#8'akBottom'#0#17'BorderSpacing.Top'#2#4#13'Lines.Strings'#1#12'%'#2 +#0#0'Reads a csv file created previously by the '#226#128#156'UDM/Tools/.dat' +' to sun-moon-MW-clouds.csv'#226#128#157' program and allows you to: a) Fil' +'ter that csv file for select data records and b) Apply data adjustments. Fo' +'r example, you can set filter parameters to find data records that were rec' +'orded during cloud-free nights. You can apply an adjustment for data record' +'ed because the SQM was inside a weatherproof case. Data records selected by' +' the filters are written out to two separate csv files, with keyword labels' +' '#226#128#156'Dense'#226#128#157' and '#226#128#156'Sparse'#226#128#157', ' +'as described below.'#6#0#6#11'Parameters:'#6#136' 1) Sun elevation angle' +' cutoff in degrees - includes records with sun elevation angle less than or' +' equal to this value (default -18.)'#6#138' 2) Moon elevation angle cuto' +'ff in degrees - includes records with moon elevation angle less than or equ' +'al to this value (default -10.)'#6#142' 3) Cloud algorithm cutoff - incl' +'udes records with residual standard error (cloud parameter) less than or eq' +'ual to this value (default 20.)'#6#205' 4) Galactic Latitude elevation a' +'ngle in degrees - cutoff to eliminate Milky Way from FOV, includes records ' +'with galactic latitude greater than this value (symmetric, positive and neg' +'ative) (default 0.)'#6#160' 5) Correction for weatherproof cover '#226 +#128#147' value subtracted from SQM readings to account for darkening caused' +' by presence of weatherproof cover (default 0.11)'#6#151' 6) Correction ' +'for aging of the SQM - estimate of the increase of brightness reading (dark' +'ening) per year due to sunlight exposure (default 0.01897)'#6'm 7) Max M' +'PSAS allowed - includes records with MPSAS values less than or equal to thi' +'s value (default 22.0)'#12#189#1#0#0' 8) Sparse cutoff '#226#128#147' af' +'ter the above filters are applied, segregates data records remaining, which' +' are estimated to be caused by constant cloud cover, fog, smoke into the ' +#226#128#156'Sparse'#226#128#157' output file; the majority of remaining rec' ,'ords are written to '#226#128#156'Dense'#226#128#157' output file; specify ' +'a larger value to segregate more data records; set to zero for no segregati' +'on in which case all remaining records go into the '#226#128#156'Dense'#226 +#128#157' output file (default 25)'#6#0#6'iFor additional explanation, see t' +'he online SQM-LU-DL operator'#226#128#153's manual, link found under '#226 +#128#156'UDM/Help'#226#128#157#6'O(http://unihedron.com/projects/darksky/cd/' +'SQM-LU-DL/SQM-LU-DL_Users_manual.pdf)'#0#8'ReadOnly'#9#10'ScrollBars'#7#14 +'ssAutoVertical'#8'TabOrder'#2#0#0#0#0#9'TGroupBox'#18'ParametersGroupBox'#22 +'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#14'SourceFil' +'eEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#3'f'#1#3 +'Top'#2'"'#5'Width'#3#136#1#7'Caption'#6#11'Parameters:'#12'ClientHeight'#3 +'R'#1#11'ClientWidth'#3#134#1#8'TabOrder'#2#6#0#12'TLabeledEdit'#29'SolarEle' +'vationAngleCutoffEdit'#21'AnchorSideTop.Control'#7#18'ParametersGroupBox'#23 +'AnchorSideRight.Control'#7#18'ParametersGroupBox'#20'AnchorSideRight.Side'#7 +#9'asrBottom'#4'Left'#3#12#1#6'Height'#2'$'#3'Top'#2#0#5'Width'#2'x'#7'Ancho' +'rs'#11#5'akTop'#7'akRight'#0#19'BorderSpacing.Right'#2#2#16'EditLabel.Heigh' +'t'#2#19#15'EditLabel.Width'#3#182#0#17'EditLabel.Caption'#6'!Sun elevation ' +'angle cutoff ('#194#176'):'#21'EditLabel.ParentColor'#8#18'EditLabel.WordW' +'rap'#9#13'LabelPosition'#7#6'lpLeft'#8'TabOrder'#2#0#8'OnChange'#7'#SolarEl' +'evationAngleCutoffEditChange'#0#0#12'TLabeledEdit'#28'MoonElevationAngleCut' +'offEdit'#23'AnchorSideRight.Control'#7#29'SolarElevationAngleCutoffEdit'#20 +'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#12#1#6'Height'#2'$'#3'Top'#2 +'('#5'Width'#2'x'#7'Anchors'#11#5'akTop'#7'akRight'#0#16'EditLabel.Height'#2 +#19#15'EditLabel.Width'#3#192#0#17'EditLabel.Caption'#6'!Moon elevation angl' +'e cutoff ('#194#176'):'#21'EditLabel.ParentColor'#8#18'EditLabel.WordWrap'#9 +#13'LabelPosition'#7#6'lpLeft'#8'TabOrder'#2#1#8'OnChange'#7'"MoonElevationA' +'ngleCutoffEditChange'#0#0#12'TLabeledEdit'#24'CloudAlgorithmCutoffEdit'#23 +'AnchorSideRight.Control'#7#29'SolarElevationAngleCutoffEdit'#20'AnchorSideR' +'ight.Side'#7#9'asrBottom'#4'Left'#3#12#1#6'Height'#2'$'#3'Top'#2'P'#5'Width' +#2'x'#7'Anchors'#11#5'akTop'#7'akRight'#0#16'EditLabel.Height'#2#19#15'EditL' +'abel.Width'#3#141#0#17'EditLabel.Caption'#6#23'Cloud algorithm cutoff:'#21 +'EditLabel.ParentColor'#8#18'EditLabel.WordWrap'#9#13'LabelPosition'#7#6'lpL' +'eft'#8'TabOrder'#2#2#8'OnChange'#7#30'CloudAlgorithmCutoffEditChange'#0#0#12 +'TLabeledEdit"GalacticLatitudeElevationAngleEdit'#23'AnchorSideRight.Control' +#7#29'SolarElevationAngleCutoffEdit'#20'AnchorSideRight.Side'#7#9'asrBottom' +#4'Left'#3#12#1#6'Height'#2'$'#3'Top'#2'x'#5'Width'#2'x'#7'Anchors'#11#5'akT' +'op'#7'akRight'#0#16'EditLabel.Height'#2#19#15'EditLabel.Width'#3#218#0#17'E' +'ditLabel.Caption'#6'''Galactic Latitude elevation angle ('#194#176'):'#21'E' +'ditLabel.ParentColor'#8#18'EditLabel.WordWrap'#9#13'LabelPosition'#7#6'lpLe' +'ft'#8'TabOrder'#2#3#8'OnChange'#7'(GalacticLatitudeElevationAngleEditChange' +#0#0#12'TLabeledEdit"CorrectionForWeatherproofCoverEdit'#23'AnchorSideRight.' +'Control'#7#29'SolarElevationAngleCutoffEdit'#20'AnchorSideRight.Side'#7#9'a' +'srBottom'#4'Left'#3#12#1#6'Height'#2'$'#3'Top'#3#160#0#5'Width'#2'x'#7'Anch' +'ors'#11#5'akTop'#7'akRight'#0#16'EditLabel.Height'#2#19#15'EditLabel.Width' +#3#218#0#17'EditLabel.Caption'#6'"Correction for weatherproof cover:'#21'Edi' +'tLabel.ParentColor'#8#18'EditLabel.WordWrap'#9#13'LabelPosition'#7#6'lpLeft' +#8'TabOrder'#2#4#8'OnChange'#7'(CorrectionForWeatherproofCoverEditChange'#0#0 +#12'TLabeledEdit'#25'CorrectionForAgingSQMEdit'#23'AnchorSideRight.Control'#7 +#29'SolarElevationAngleCutoffEdit'#20'AnchorSideRight.Side'#7#9'asrBottom'#4 +'Left'#3#12#1#6'Height'#2'$'#3'Top'#3#200#0#5'Width'#2'x'#7'Anchors'#11#5'ak' +'Top'#7'akRight'#0#16'EditLabel.Height'#2#19#15'EditLabel.Width'#3#200#0#17 +'EditLabel.Caption'#6' Correction for aging of the SQM:'#21'EditLabel.Parent' +'Color'#8#18'EditLabel.WordWrap'#9#13'LabelPosition'#7#6'lpLeft'#8'TabOrder' +#2#5#8'OnChange'#7#31'CorrectionForAgingSQMEditChange'#0#0#12'TLabeledEdit' +#19'MaxMPSASAllowedEdit'#23'AnchorSideRight.Control'#7#29'SolarElevationAngl' +'eCutoffEdit'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#12#1#6'Heigh' +'t'#2'$'#3'Top'#3#240#0#5'Width'#2'x'#7'Anchors'#11#5'akTop'#7'akRight'#0#16 +'EditLabel.Height'#2#19#15'EditLabel.Width'#2'~'#17'EditLabel.Caption'#6#18 +'Max MPSAS allowed:'#21'EditLabel.ParentColor'#8#18'EditLabel.WordWrap'#9#13 +'LabelPosition'#7#6'lpLeft'#8'TabOrder'#2#6#8'OnChange'#7#25'MaxMPSASAllowed' +'EditChange'#0#0#12'TLabeledEdit'#16'SparseCutoffEdit'#23'AnchorSideRight.Co' +'ntrol'#7#29'SolarElevationAngleCutoffEdit'#20'AnchorSideRight.Side'#7#9'asr' +'Bottom'#4'Left'#3#12#1#6'Height'#2'$'#3'Top'#3#24#1#5'Width'#2'x'#7'Anchors' +#11#5'akTop'#7'akRight'#0#16'EditLabel.Height'#2#19#15'EditLabel.Width'#2'U' ,#17'EditLabel.Caption'#6#14'Sparse cutoff:'#21'EditLabel.ParentColor'#8#18'E' +'ditLabel.WordWrap'#9#13'LabelPosition'#7#6'lpLeft'#8'TabOrder'#2#7#8'OnChan' +'ge'#7#22'SparseCutoffEditChange'#0#0#0#11'TOpenDialog'#16'SourceFileDialog' +#6'Filter'#6#16'Data files|*.csv'#4'Left'#2'H'#3'Top'#3#216#1#0#0#0 ]); ./dlclock.lrs0000644000175000017500000001532314576573022013311 0ustar anthonyanthony{ This is an automatically generated lazarus resource file } LazarusResources.Add('TForm6','FORMDATA',[ 'TPF0'#6'TForm6'#5'Form6'#4'Left'#3#229#7#6'Height'#3'P'#1#3'Top'#3#173#1#5'W' +'idth'#3#8#2#11'BorderStyle'#7#8'bsSingle'#7'Caption'#6#31'Device: Real Time' +' Clock setting'#12'ClientHeight'#3'P'#1#11'ClientWidth'#3#8#2#21'Constraint' +'s.MinHeight'#3'P'#1#20'Constraints.MinWidth'#3#8#2#7'OnClose'#7#9'FormClose' +#8'OnCreate'#7#10'FormCreate'#6'OnHide'#7#8'FormHide'#6'OnShow'#7#8'FormShow' +#8'Position'#7#16'poMainFormCenter'#10'LCLVersion'#6#7'2.2.4.0'#0#7'TButton' +#14'SetDeviceClock'#23'AnchorSideRight.Control'#7#11'CloseButton'#24'AnchorS' +'ideBottom.Control'#7#11'CloseButton'#21'AnchorSideBottom.Side'#7#9'asrBotto' +'m'#4'Left'#3'c'#1#6'Height'#2#25#4'Hint'#6'2Copy time from this PC to the S' +'QM Real Time Clock.'#3'Top'#3'2'#1#5'Width'#2'K'#7'Anchors'#11#7'akRight'#8 +'akBottom'#0#19'BorderSpacing.Right'#2#10#7'Caption'#6#3'Set'#7'OnClick'#7#19 +'SetDeviceClockClick'#8'TabOrder'#2#0#0#0#7'TButton'#16'PauseClockButton'#23 +'AnchorSideRight.Control'#7#16'ResumClockButton'#24'AnchorSideBottom.Control' +#7#16'ResumClockButton'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3';' +#1#6'Height'#2#25#3'Top'#3'2'#1#5'Width'#2#20#7'Anchors'#11#7'akRight'#8'akB' +'ottom'#0#7'Caption'#6#2'||'#7'Enabled'#8#7'OnClick'#7#21'PauseClockButtonCl' +'ick'#8'TabOrder'#2#1#7'Visible'#8#0#0#7'TButton'#16'ResumClockButton'#23'An' +'chorSideRight.Control'#7#14'SetDeviceClock'#24'AnchorSideBottom.Control'#7 +#14'SetDeviceClock'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3'O'#1#6 +'Height'#2#25#3'Top'#3'2'#1#5'Width'#2#20#7'Anchors'#11#7'akRight'#8'akBotto' +'m'#0#7'Caption'#6#1'>'#7'Enabled'#8#7'OnClick'#7#21'ResumClockButtonClick'#8 +'TabOrder'#2#2#7'Visible'#8#0#0#7'TButton'#11'CloseButton'#23'AnchorSideRigh' +'t.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSide' +'Bottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left' +#3#184#1#6'Height'#2#25#3'Top'#3'2'#1#5'Width'#2'K'#7'Anchors'#11#7'akRight' +#8'akBottom'#0#19'BorderSpacing.Right'#2#5#20'BorderSpacing.Bottom'#2#5#7'Ca' +'ption'#6#5'Close'#7'OnClick'#7#16'CloseButtonClick'#8'TabOrder'#2#3#0#0#12 +'TLabeledEdit'#13'UnitClockText'#22'AnchorSideLeft.Control'#7#5'Owner'#19'An' +'chorSideLeft.Side'#7#9'asrCenter'#21'AnchorSideTop.Control'#7#5'Owner'#4'Le' +'ft'#3#135#0#6'Height'#2#31#3'Top'#2#3#5'Width'#3#250#0#9'Alignment'#7#8'taC' +'enter'#17'BorderSpacing.Top'#2#3#16'EditLabel.Height'#2#21#15'EditLabel.Wid' +'th'#2'p'#17'EditLabel.Caption'#6#17'Unit clock (UTC):'#21'EditLabel.ParentC' +'olor'#8#13'LabelPosition'#7#6'lpLeft'#8'TabOrder'#2#4#0#0#12'TLabeledEdit' +#12'UTCClockText'#22'AnchorSideLeft.Control'#7#13'UnitClockText'#21'AnchorSi' +'deTop.Control'#7#13'UnitClockText'#18'AnchorSideTop.Side'#7#9'asrBottom'#4 +'Left'#3#135#0#6'Height'#2#31#3'Top'#2'%'#5'Width'#3#250#0#9'Alignment'#7#8 +'taCenter'#17'BorderSpacing.Top'#2#3#16'EditLabel.Height'#2#21#15'EditLabel.' +'Width'#2'I'#17'EditLabel.Caption'#6#10'UTC Clock:'#21'EditLabel.ParentColor' +#8#13'LabelPosition'#7#6'lpLeft'#8'TabOrder'#2#5#0#0#12'TLabeledEdit'#13'Loc' +'alTimeText'#22'AnchorSideLeft.Control'#7#12'UTCClockText'#21'AnchorSideTop.' +'Control'#7#12'UTCClockText'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3 +#135#0#6'Height'#2#31#3'Top'#2'G'#5'Width'#3#250#0#9'Alignment'#7#8'taCenter' +#17'BorderSpacing.Top'#2#3#16'EditLabel.Height'#2#21#15'EditLabel.Width'#2'K' +#17'EditLabel.Caption'#6#11'Local time:'#21'EditLabel.ParentColor'#8#13'Labe' +'lPosition'#7#6'lpLeft'#8'TabOrder'#2#6#0#0#12'TLabeledEdit'#18'DifferenceTi' +'meText'#22'AnchorSideLeft.Control'#7#13'LocalTimeText'#21'AnchorSideTop.Con' +'trol'#7#13'LocalTimeText'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3 +#135#0#6'Height'#2#31#3'Top'#2'i'#5'Width'#3#250#0#9'Alignment'#7#8'taCenter' +#17'BorderSpacing.Top'#2#3#16'EditLabel.Height'#2#21#15'EditLabel.Width'#2'K' +#17'EditLabel.Caption'#6#11'Difference:'#21'EditLabel.ParentColor'#8#13'Labe' +'lPosition'#7#6'lpLeft'#10'ParentFont'#8#8'TabOrder'#2#7#0#0#6'TLabel'#6'Lab' +'el1'#22'AnchorSideLeft.Control'#7#19'DifferenceIndicator'#19'AnchorSideLeft' +'.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#18'DifferenceTimeText'#18 +'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#159#1#6'Height'#2#21#3'Top'#2 +'n'#5'Width'#2'8'#18'BorderSpacing.Left'#2#7#7'Caption'#6#7'seconds'#11'Pare' +'ntColor'#8#0#0#5'TMemo'#5'Memo1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'A' +'nchorSideTop.Control'#7#18'DifferenceTimeText'#18'AnchorSideTop.Side'#7#9'a' +'srBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7 +#9'asrBottom'#24'AnchorSideBottom.Control'#7#14'SetDeviceClock'#4'Left'#2#0#6 +'Height'#3#164#0#3'Top'#3#139#0#5'Width'#3#8#2#7'Anchors'#11#5'akTop'#6'akLe' +'ft'#7'akRight'#8'akBottom'#0#17'BorderSpacing.Top'#2#3#20'BorderSpacing.Bot' +'tom'#2#3#13'Lines.Strings'#1#6'[1. Make sure the meter has been plugged in ' +'for at least 10 minutes before setting the time.'#6'<2. The internal superc' +'apacitor needs some time to charge up.'#6'r3. Leave the meter plugged in in' ,'itially for about 30 minutes after the Running indicator is green to fully ' +'charge.'#6#137'4. Transfer the meter from the USB computer connection to th' +'e battery connection within 30 minutes to maintain the clock circuit voltag' +'e.'#0#8'ReadOnly'#9#10'ScrollBars'#7#14'ssAutoVertical'#8'TabOrder'#2#8#0#0 +#6'TShape'#16'RunningIndicator'#22'AnchorSideLeft.Control'#7#13'UnitClockTex' +'t'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#13'Un' +'itClockText'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#132#1#6'Height' +#2#20#4'Hint'#6#17'Connection status'#3'Top'#2#8#5'Width'#2#20#18'BorderSpac' +'ing.Left'#2#3#11'Brush.Color'#7#6'clGray'#5'Shape'#7#8'stCircle'#0#0#6'TLab' +'el'#13'RunningStatus'#22'AnchorSideLeft.Control'#7#16'RunningIndicator'#19 +'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#16'RunningI' +'ndicator'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#159#1#6'Height'#2 +#21#3'Top'#2#8#5'Width'#2'a'#8'AutoSize'#8#18'BorderSpacing.Left'#2#7#7'Capt' +'ion'#6#7'Reading'#11'ParentColor'#8#0#0#6'TShape'#19'DifferenceIndicator'#22 +'AnchorSideLeft.Control'#7#13'UnitClockText'#19'AnchorSideLeft.Side'#7#9'asr' +'Bottom'#21'AnchorSideTop.Control'#7#18'DifferenceTimeText'#18'AnchorSideTop' +'.Side'#7#9'asrCenter'#4'Left'#3#132#1#6'Height'#2#20#4'Hint'#6#17'Connectio' +'n status'#3'Top'#2'n'#5'Width'#2#20#18'BorderSpacing.Left'#2#3#11'Brush.Col' +'or'#7#6'clGray'#5'Shape'#7#8'stCircle'#0#0#6'TTimer'#6'Timer1'#7'Enabled'#8 +#7'OnTimer'#7#11'Timer1Timer'#4'Left'#2#8#3'Top'#2'('#0#0#0 ]); ./synaicnv.pas0000644000175000017500000002646714576573021013525 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 001.001.002 | |==============================================================================| | Content: ICONV support for Win32, OS/2, Linux and .NET | |==============================================================================| | Copyright (c)2004-2013, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2004-2013. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | | Tomas Hajny (OS2 support) | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} //old Delphi does not have MSWINDOWS define. {$IFDEF WIN32} {$IFNDEF MSWINDOWS} {$DEFINE MSWINDOWS} {$ENDIF} {$ENDIF} {:@abstract(LibIconv support) This unit is Pascal interface to LibIconv library for charset translations. LibIconv is loaded dynamicly on-demand. If this library is not found in system, requested LibIconv function just return errorcode. } unit synaicnv; interface uses {$IFDEF CIL} System.Runtime.InteropServices, System.Text, {$ENDIF} synafpc, {$IFNDEF MSWINDOWS} {$IFNDEF FPC} Libc, {$ENDIF} SysUtils; {$ELSE} Windows; {$ENDIF} const {$IFNDEF MSWINDOWS} {$IFDEF OS2} DLLIconvName = 'iconv.dll'; {$ELSE OS2} DLLIconvName = 'libiconv.so'; {$ENDIF OS2} {$ELSE} DLLIconvName = 'iconv.dll'; {$ENDIF} type size_t = Cardinal; {$IFDEF CIL} iconv_t = IntPtr; {$ELSE} iconv_t = Pointer; {$ENDIF} argptr = iconv_t; var iconvLibHandle: TLibHandle = 0; function SynaIconvOpen(const tocode, fromcode: Ansistring): iconv_t; function SynaIconvOpenTranslit(const tocode, fromcode: Ansistring): iconv_t; function SynaIconvOpenIgnore(const tocode, fromcode: Ansistring): iconv_t; function SynaIconv(cd: iconv_t; inbuf: AnsiString; var outbuf: AnsiString): integer; function SynaIconvClose(var cd: iconv_t): integer; function SynaIconvCtl(cd: iconv_t; request: integer; argument: argptr): integer; function IsIconvloaded: Boolean; function InitIconvInterface: Boolean; function DestroyIconvInterface: Boolean; const ICONV_TRIVIALP = 0; // int *argument ICONV_GET_TRANSLITERATE = 1; // int *argument ICONV_SET_TRANSLITERATE = 2; // const int *argument ICONV_GET_DISCARD_ILSEQ = 3; // int *argument ICONV_SET_DISCARD_ILSEQ = 4; // const int *argument implementation uses SyncObjs; {$IFDEF CIL} [DllImport(DLLIconvName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'libiconv_open')] function _iconv_open(tocode: string; fromcode: string): iconv_t; external; [DllImport(DLLIconvName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'libiconv')] function _iconv(cd: iconv_t; var inbuf: IntPtr; var inbytesleft: size_t; var outbuf: IntPtr; var outbytesleft: size_t): size_t; external; [DllImport(DLLIconvName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'libiconv_close')] function _iconv_close(cd: iconv_t): integer; external; [DllImport(DLLIconvName, CharSet = CharSet.Ansi, SetLastError = False, CallingConvention= CallingConvention.cdecl, EntryPoint = 'libiconvctl')] function _iconvctl(cd: iconv_t; request: integer; argument: argptr): integer; external; {$ELSE} type Ticonv_open = function(tocode: pAnsichar; fromcode: pAnsichar): iconv_t; cdecl; Ticonv = function(cd: iconv_t; var inbuf: pointer; var inbytesleft: size_t; var outbuf: pointer; var outbytesleft: size_t): size_t; cdecl; Ticonv_close = function(cd: iconv_t): integer; cdecl; Ticonvctl = function(cd: iconv_t; request: integer; argument: argptr): integer; cdecl; var _iconv_open: Ticonv_open = nil; _iconv: Ticonv = nil; _iconv_close: Ticonv_close = nil; _iconvctl: Ticonvctl = nil; {$ENDIF} var IconvCS: TCriticalSection; Iconvloaded: boolean = false; function SynaIconvOpen (const tocode, fromcode: Ansistring): iconv_t; begin {$IFDEF CIL} try Result := _iconv_open(tocode, fromcode); except on Exception do Result := iconv_t(-1); end; {$ELSE} if InitIconvInterface and Assigned(_iconv_open) then Result := _iconv_open(PAnsiChar(tocode), PAnsiChar(fromcode)) else Result := iconv_t(-1); {$ENDIF} end; function SynaIconvOpenTranslit (const tocode, fromcode: Ansistring): iconv_t; begin Result := SynaIconvOpen(tocode + '//IGNORE//TRANSLIT', fromcode); end; function SynaIconvOpenIgnore (const tocode, fromcode: Ansistring): iconv_t; begin Result := SynaIconvOpen(tocode + '//IGNORE', fromcode); end; function SynaIconv (cd: iconv_t; inbuf: AnsiString; var outbuf: AnsiString): integer; var {$IFDEF CIL} ib, ob: IntPtr; ibsave, obsave: IntPtr; l: integer; {$ELSE} ib, ob: Pointer; {$ENDIF} ix, ox: size_t; begin {$IFDEF CIL} l := Length(inbuf) * 4; ibsave := IntPtr.Zero; obsave := IntPtr.Zero; try ibsave := Marshal.StringToHGlobalAnsi(inbuf); obsave := Marshal.AllocHGlobal(l); ib := ibsave; ob := obsave; ix := Length(inbuf); ox := l; _iconv(cd, ib, ix, ob, ox); Outbuf := Marshal.PtrToStringAnsi(obsave, l); setlength(Outbuf, l - ox); Result := Length(inbuf) - ix; finally Marshal.FreeCoTaskMem(ibsave); Marshal.FreeHGlobal(obsave); end; {$ELSE} if InitIconvInterface and Assigned(_iconv) then begin setlength(Outbuf, Length(inbuf) * 4); ib := Pointer(inbuf); ob := Pointer(Outbuf); ix := Length(inbuf); ox := Length(Outbuf); _iconv(cd, ib, ix, ob, ox); setlength(Outbuf, cardinal(Length(Outbuf)) - ox); Result := Cardinal(Length(inbuf)) - ix; end else begin Outbuf := ''; Result := 0; end; {$ENDIF} end; function SynaIconvClose(var cd: iconv_t): integer; begin if cd = iconv_t(-1) then begin Result := 0; Exit; end; {$IFDEF CIL} try; Result := _iconv_close(cd) except on Exception do Result := -1; end; cd := iconv_t(-1); {$ELSE} if InitIconvInterface and Assigned(_iconv_close) then Result := _iconv_close(cd) else Result := -1; cd := iconv_t(-1); {$ENDIF} end; function SynaIconvCtl (cd: iconv_t; request: integer; argument: argptr): integer; begin {$IFDEF CIL} Result := _iconvctl(cd, request, argument) {$ELSE} if InitIconvInterface and Assigned(_iconvctl) then Result := _iconvctl(cd, request, argument) else Result := 0; {$ENDIF} end; function InitIconvInterface: Boolean; begin IconvCS.Enter; try if not IsIconvloaded then begin {$IFDEF CIL} IconvLibHandle := 1; {$ELSE} IconvLibHandle := LoadLibrary(PChar(DLLIconvName)); {$ENDIF} if (IconvLibHandle <> 0) then begin {$IFNDEF CIL} _iconv_open := GetProcAddress(IconvLibHandle, PAnsiChar(AnsiString('libiconv_open'))); _iconv := GetProcAddress(IconvLibHandle, PAnsiChar(AnsiString('libiconv'))); _iconv_close := GetProcAddress(IconvLibHandle, PAnsiChar(AnsiString('libiconv_close'))); _iconvctl := GetProcAddress(IconvLibHandle, PAnsiChar(AnsiString('libiconvctl'))); {$ENDIF} Result := True; Iconvloaded := True; end else begin //load failed! if IconvLibHandle <> 0 then begin {$IFNDEF CIL} FreeLibrary(IconvLibHandle); {$ENDIF} IconvLibHandle := 0; end; Result := False; end; end else //loaded before... Result := true; finally IconvCS.Leave; end; end; function DestroyIconvInterface: Boolean; begin IconvCS.Enter; try Iconvloaded := false; if IconvLibHandle <> 0 then begin {$IFNDEF CIL} FreeLibrary(IconvLibHandle); {$ENDIF} IconvLibHandle := 0; end; {$IFNDEF CIL} _iconv_open := nil; _iconv := nil; _iconv_close := nil; _iconvctl := nil; {$ENDIF} finally IconvCS.Leave; end; Result := True; end; function IsIconvloaded: Boolean; begin Result := IconvLoaded; end; initialization begin IconvCS:= TCriticalSection.Create; end; finalization begin {$IFNDEF CIL} DestroyIconvInterface; {$ENDIF} IconvCS.Free; end; end. ./citylights_round_icon_128.png0000644000175000017500000004744414576573022016667 0ustar anthonyanthonyPNG  IHDR>abKGD pHYs$$P$tIME "!~OC IDATxٓ%q̳WU/wH8 5CpF2gEzL35A^ܵϒ>ռ(b6;Vէs×?~w~G`@h=tr9h4v k`,k`FP=c|qf4nnvzc=v0;8qx=ϟf_gsk9pfAyޅ=ge߫ `\7z>g~n 8C1ּCg_ߚ:a cx<ff ?tc[x޳}i!(A"i~0sx'Sܕy} 8w|nu xK@UQU!j ԞIAT=ꡟy!|8{|j 'C ہ>ׁw p's{sH_SVBUPI1F&bJ${hJVԔTx=n- ~o?0ڼG<<W`v@ 9|={>Є1Opq.lvql.@҄j"%ERb!0Fqd}{)f"@4C{ C,n?6m;hDĉxӄ@д6t4von^Ej/Jj 3%eLq0Ǟ~8'0@":ŎRaC=!\Gg%n_C'߰,iĉs  m5 ]ѵ kmh ;8OwA PS 1 J #ǑS9#tc0Nyµ |3K  v2'3VDwٵmˢ]l,ek;ڦ -K|ޗ@z4eW\>lA,A\$&DPH **#c"{4 NGӞ=1Œ?rBw1ok6om 9q❓mrdX\,Yvkw.C$ᝯDR()$AHBBrzE4'*px p I)F1ҏ=Ӂȱ?r4iJ  2𱡍6X! gBc`!N'MӰh%՚jŢ[І64pMPTٿs{5Cɥ͖@pHjZ~w<4%8pzw;{' -?(ʼåQad[;?=ML޵M+Œz9gs ŒEwoi>ZS|!Nd&'Dj*x/烳0l-|vВ&Qΐl"B MiDz]hZB94)s+{v5~#   kK zm[6g ͖r˲[xn:H'k+74!B0ϑDfM0 xDIbh$Dqױ\q DOXʲX. .k.C4>Ƹ3%}:?t,kIWsiC#nz#]pLmq,Dpl1=c¾\kE\vAa( X]H)Α _TCx3(5@Uжmp>2IU:k35ݠ ڭw_;BY/Wox{ģ9bA8/TMr8;,sȭn_;N ~@ y/jƂ 5o ^j+%_K> {\ )wxm:۩Su ; Ҭ <5Gv ?jã9O.xtvjI׶H^/r9/{ƋU8'8izo ;C#<;d&O[q8ăQpUo|`.隆Qi,IWؘD&ʯπoE{h:v 3% v *-u7"v/ l[`-[hu9MOfPj3;JD^lu)o2\q 5YU%r'ir|8OL%sP7o^Yymm6<>9-n75PskF UyҶ͙yysabs]9YuP3hKrfFd4TЉ%LhU) C* 9AIf $N+?0R7O#1#HlSkY9|A9irͣ9_oi prpI\A%D2$$D eT$*<)~n4&E @""#p8 uIΣv~*Rgwt"'i*)).jڠ|y#1+$}s;m٬6<9ୋ η˙ӊ] B-7 KJ f%j,+Ьyd"`Xٗr[~O4f fR>ܟ V4P- Y"239ĘF%Tf!Z;}@Mncj9Oq۲\32n9/)"X2dX{19tY3dq\h&|Z/,<R ZϬyeѴw<={S&|yaHw!ѢZ2D] ꡊRK3@+AH*~ v32W遳ʅ03VtnNtp류apg?ڝ7cIө~bt Xpeқ/ _ Wxnx,H6 x|c^ц0YĨ/TXeVܯ䘙z /=gZƪh^oKOԕ>;)&;ͷ +IaZoȡ9= ,aμ+en3k&^8;9-]Xq*x3u&\ wvsIJDhUgUX'e%ӟxNCu^SQi#&`f+iJ1!pg0SGOfL]n JAS?%WivÐYǒ7$~DBk5bw^N ",Wb} L[$p^ ql+s{~ةS~gF#uc,DwMnblfZjcLIbxVƙfki$liqL7gB9)@AՒ}VJNB h& tβdqZT)DTj(X Ӎ\Sɞau͐}B)t6,) 2-]GA]#ߋAT1ҾW)WԦDY5]?qy{=aR;4/3P×@ʜ;FD|4lKvEGɢ5 )QgУ'\ j9 54^4 !j F+=A17ʜ L-tR KS*eb>`Z&rHLJkG%\vVˎݎGg缺p:GӘ"4}]fK9eڰ\i:`Μ cFyTsP&!=g vv^++xJPJ8iʧiw(bLr!9W1B cX`DjUyԈ"i㘳rQ6nDtdƒ]"N".E&/ ߋEٮ<8_oJ.cԅW-|y`ƵVKˎ=妨Za8ybB{,7\EXi5(`Zh"#65Mе.dȷ}4:18*Z:;LJ$jϑQ'aʐK#Lg!Ss:+>ٿsgN'|EzE׶^RNFع8gTgV=eZ^t47 sw:q+_^'3*x.mE<'7vMfk%,rRuq&Zڜ1LT˺:jQ-e6:0kœERa#ŽK7^kc^[Y.:{1&qQ_{jA0|oZ.V9 բc\lޗۧVְ]i֔Hf(P1v=K#(@*1>fY\5XALif͔4*C%bۚ: g=PQʄ3+d\1^ވ/YH@Q6Y.m֬K. Csx˼gŋ {u,-#Mkh1ZՁK؝%\԰P9γs&%^!8Rʃe<}M|2tUa>(ڕs^'h4iLQZ˗VA䅓 V$X1jMhsI5rRX-;%n vd.aX\t8+*m*ZU$˖kA t6:M<*"dI$I̔;VtEXNy5hM唛~nPnJ(r)Ѵ"i@K>Q!CiTY/KngT>h[%u=N4|f^ gf-m)m`hiۖ}(5?D B_%8Nsd1Q˘sS98qYB?+W:7r sl}0=NLxCu\468$<,A'0aT 5?4aBL4u3۶aZY-XM!xrs<3Xؤ{Y4 a\vɬ*sز=J %ÌFfeST{0PZ8Ck**"*7cٝBGgII4CB*5K3]^sY]Īg1s UO(TZw"b3[m)?;>@˶ ^LNPDiMƦ(kLl@$D.<o6Y8"u'SGf_C6Q&shU(P74Qɥ2dr6P.QiդչhgulKVݢO8("Ty HR$ZC=PuvHs|"S26'N `ZH&ugMYBQ:MkϢmXvSVFN; _u"44X6:Y2eYp9f!\HS>i\lγ`*m`C.c?Z'NTGmmoI|LU14p  )E-@+̆5 [T9y M2a S-(TUDXꀣN1! OKC,'Iu~*q|禮:Uq\M(#F^x޹Lp-k3g]A~[Ӣ`$T$U\Ι`I"8뗻鶋n@*QI3FN*f5[NQ{)Y{MMv0 2QKSDM= vAVLBչks#psPM5!'@7)SŅvek|tݿT>gE@f<~N8`(uj8a|reWo8i P 7n| !i 7EE\"Dl3̓D~!-rҌc9Rѭd6D)sJ#Y7p9`oKU:rfu& k|UvUëoY~ʫ({.%eV߱BKmUM'fg Bz82T\YP6gےdUf..f~7VHcbs.0!n6/dݾvhരblkTɒ)s 7 ʈc 5 3 Y)=>tR)/.'\.M :yq RJ)QWfTmq^LZ#57a{R+W0 U.cp͟X,&:46+Rc+TzL&D fciL]*W(0'Jtw9fx^UsjXQ1$ӈY.0r'..q$_ˮ$o֘gA-*yL헭eӒ򩔦2=f<§f"FFy0f3sZ)<:Ƥy2K<`!R>P,l$ ܑ{Ye7B_YAw>/ę&p8+2ƞ5k LxROK2iTZrK'.歷 ХR% ,QE ):Ew,w:K~kM^twaexUC3pMmKeZ[p)R7TRo-TjE>K\^L᭧_iSwGUg-]_hHl~_3mWG?0,%2emިk(@f/s4XTfγPe'))uxT-+k!)K,c,90khᄨWm#,ȏ]7'0nVw{ L.uˁ:usM ILr.ӮŨcSW{2j1sS_V~S2RfEEmJ@%+÷BZSI28Y4!K$}̡jNBKѩ4G'D%QVG>R3BQoːc, k.Ē,ɶ!Rn0 h6\B@"(xos.TaX}kqxugE#)x4*o}my=ߚhD ]ptЄHƛv&p8o[_YB}T.^g;\@fq94P+HQ[RӔP!^NӼƷ_L& s,N57hqQ3p[7\ݳ?I)3=\A+)) )[zp^:5N;/o#I# }qNpq6Mfh ޶gy6жys!>4.DLEnvEs܄QiZaLhmdfT/8d|U_5upY$pKQ"Y (}-Á1`gjaEp2Kym_xRhcRw>ߏUw#cRϔ!\p864&3XϷ;l ͭMB'T7 )(cX;& 7/K?lݽ]*3d8)yx(inDJd?޿8y5‚}zINq4\q}wiT^}a3*ġm8*1BUOLaTVˆdj1iIh|N}coMCh|o7o}Hj-gm4}1yɧ>o>/vx=o OB0* %];^k2XH)kD,^*Kj:ATƔ~UR-"idN8"WW<a y7?f{19F0҅1,v_{^%zF8.r wVwHip"CN"d\Ē usss}?__Uh x|[M;)%c&T)-)".ƙDuRq1Ƽ?q<9۱\?ESmCs{R!( ׬M'k#=xVlh,4ݚg}#ŸdFnx;ֻ\>?a !00FseC`; =7zqa\Gd쑠h2 9#@BQt;nn#1YO"?UkpO>+^N7/>5#x/%]8{PoHҁəpRcOA\;o]ͯwO9%K_Hx/ܑf㈺oi N{RB\ޢ?Ohm YoZn?.xcxN[ĽEӬ}?)^џK߽d_Ьߦۮ9ᴿAGX=y-ܿ+{p+[Axw=~ u.,X=9cm|ӑ>t{$2`X4ru3c × \Ƿv)r?$n' Z:6J#Js֣D=WW|`ЏV42Ү MKX^|]Y8q^Ӧr}wke}dM؟z$~XqGxDRd8^4{xc^^Wpx@0&no~t7l+{w˶-apDtpF7 \\?1\#rf=gt'OI͆#W5۟WW XbX(_π.~T9$42h|WYuMipÏneg@ږEBwwm "kɲǧ]6VKϲ[pw:>)yQ9#>qx34hфnѱX-D I8m8 dow?>}׾f~) K}%ϟ}@^tnCQ|wzΟٿuKK>GCo?}|_m7wG54lgpys^w/CKJ#8*C 8z^]]Þ~ќ/#] RbqyzS BM8Ge9rѰڬ9^f"scL်rKC$@XnXn| >/=#0 ܘuфCyuy[:Vۯs۱Z qx+>`xW^/3w/!rwχ|HN,Ze[G/>z8$(xB3E#MAG w$> =5Ӊ)͖G}dP'6mBqP/;.d8Dy7;!CӉOq\_9n[;ϡqr1 4m1`ѽ˳|O}礘*e:Er-X8.CqLI142J" w{+G>gī01hǸ;/YI˷zo\FNcdlyz3pͯ?$q~x[Ƒ'/G58ry=7v?0Ko 9Y[ _6 ÐG9XYR}&=}8dx5\ޡHJ-w ܟ(#:3?@0Ǐcwczn&II5cL6k 1i̺.p|zz hxfRbaQ!?{_໌QYt-O? gDK-c͓GǪk1qukr?#8߷3@~jF *SL )&Ljo=.]>&)6ۖg0$6MjF8#7 ' b*lHxׇn!w=rzQ8DS2>.wyxJƘG2)&8V4#iJU%eyˋkۋ'ngq ׯ^su?ҏ=lO0 7\]~ǟ)qݯ4 >~`yW61^hCb`WwbD{exMÐGgqLIJRB#s+ٳpnT"2&Eq D5ܹ l~@ 1LR4R@t$cTREXI}OđBG4^^$xn?ohHQiBs>}J~f.mه| v B~q>EO= 9#[ Ds)?ouLOA=*m"iK  4%c!r1qr8^_1.`6QҘ#kmMND,7 u˩_9 еndz)qw05-g@mMN }GM-6p:%D6si}VuuիV?Q4s#a%q5uNkjׂ01]He\P1yXbOlW 4yb6~QN pXbI omTs "͐ jp17O~|uV1UENC*sc~,~R,h\(ER` FAbA:I,j9%c5ͥoe3ժ5.d%ǛO \RyŜXVTVql:n~d._3FI8@$!?cYxӀIUb>M8 dui0Wì/ e18@slpB@Q3R4xåpcM C(-cXGӖlJ=rξӚ/,hX 1O$.J쇄]U6ñCnarUx!倔/&?.w>_he ZS*؃gSO^g'JD93&|zb_85\d]Z= yf|KHU!ϰ$8;Ӡ]G)cJx@%oro7zIߪ)P͍>b57xO ]$q9̒qHxfJ(~Kq]Arbr[ QI0r-e #5M}[.tFNIB)p,r.`Gfu߀Vz罠@hB!@Tl my/Q D N f&SU` n3Ɯ}B&Aɱ8sI:U H $$KPmQ þx Vp$o4Qx,%[_Q >CSN&5[ñVPMՅօ1÷IѱcCSiQܖ|mJ=;uJVxn̸sX K>UYL7xl68RJikۉ-VR#vyprMSиWU }O§K=oq8qI8@8EWd4݌7D&~YwgJ[A*I2I@.M9k)sPFe GX Xаʥdͼ/-PG๛ b JQUvbnzW̿l_c{Dyx̄^ TS{kC JQ1Md$ WӼlӴÀEhX"| 9{6Ya=!kҀEͨeT{IV3NF5(n3J1MqCmZB6Xۿ;;@81]tW)#AR˝Q8n5"4ȯcڪP`(xp6ɥ%%/gf o0䄽DI$KY5=gaY>05fsTqn<1oq`f{w# bi#@R 4l84E,mC[[Xm.rR!7$8b$j;iG4@R&a?$ 8S‡[pQ(ZlÇ~Gÿ:3UvAGR 8WK)^I~΋7NKz,ۧ%7E'jѷmT Ubeѐ}\}$Ѵafi䴚$TeeXb5k$Uq(Ɨ<]ȏ-"|u:8@3rD$y&U _Գ (YQ np\dŗMM^6m7 ij7(d(%L[%Lk4 C &â8^֞/G٬8T`nl#D})/ړ6wY~9u縷505Cp>M}RqWL CYb&w8 Rt6JOğo І}SLII!+&#aX#F6T35p\Iz~F ~;#x<]B%?o5W8xz`ObxJ١ߋTLk ScN`H1l2/>5Tv4mVɛJb<?`+4g_gϡhz0w_L"( ݐ ɰ4tӷ,^%5n0}5# Y&Ȱ_b_YQ;yϚDNE/·_3?2|6!WB`pUS _b0#Fc  O#p NOClTmzG ?f0F"*:ۇg~ZLs?cح 3 m f#tU  =>pe:+#܁o*;~\5ҥ;kl5OhO_t=W.;>m SimplePanel = False end object OnDiskGroupBox: TGroupBox AnchorSideLeft.Control = InConfigGroupBox AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = StatusBar Left = 586 Height = 691 Top = 0 Width = 593 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 Caption = 'On disk:' ClientHeight = 668 ClientWidth = 589 TabOrder = 1 object ExportedFilesGroupBox: TGroupBox AnchorSideLeft.Control = OnDiskGroupBox AnchorSideTop.Control = RefreshBitBtn AnchorSideTop.Side = asrBottom AnchorSideRight.Control = OnDiskGroupBox AnchorSideRight.Side = asrBottom Left = 0 Height = 220 Top = 30 Width = 589 Anchors = [akTop, akLeft, akRight] Caption = 'Exported files on disk:' ClientHeight = 197 ClientWidth = 585 TabOrder = 0 object ExportedFilesStringGrid: TStringGrid AnchorSideLeft.Control = ExportedFilesGroupBox AnchorSideTop.Control = ExportedFilesGroupBox AnchorSideRight.Control = ExportedFilesGroupBox AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = ExportedFilesGroupBox AnchorSideBottom.Side = asrBottom Left = 0 Height = 197 Top = 0 Width = 585 Anchors = [akTop, akLeft, akRight, akBottom] AutoEdit = False AutoFillColumns = True ColCount = 3 ColumnClickSorts = True Columns = < item MaxSize = 500 Title.Caption = 'Name' Width = 383 end item Alignment = taRightJustify SizePriority = 0 Title.Alignment = taCenter Title.Caption = 'Size' Width = 60 end item Alignment = taRightJustify SizePriority = 0 Title.Alignment = taCenter Title.Caption = 'Time' Width = 140 end> Constraints.MinHeight = 100 FixedCols = 0 Options = [goFixedVertLine, goFixedHorzLine, goHorzLine, goColSizing, goThumbTracking, goSmoothScroll] RowCount = 1 TabOrder = 0 OnClick = ExportedFilesStringGridClick ColWidths = ( 383 60 140 ) end end object FileViewGroupBox: TGroupBox AnchorSideLeft.Control = OnDiskGroupBox AnchorSideTop.Control = ExportedFilesGroupBox AnchorSideTop.Side = asrBottom AnchorSideRight.Control = OnDiskGroupBox AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = OnDiskGroupBox AnchorSideBottom.Side = asrBottom Left = 0 Height = 418 Top = 250 Width = 589 Anchors = [akTop, akLeft, akRight, akBottom] Caption = 'File view:' ClientHeight = 395 ClientWidth = 585 TabOrder = 1 object FileViewListBox: TListBox AnchorSideLeft.Control = FileViewGroupBox AnchorSideTop.Control = ReplaceButton AnchorSideTop.Side = asrBottom AnchorSideRight.Control = FileViewGroupBox AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = FileViewGroupBox AnchorSideBottom.Side = asrBottom Left = 0 Height = 363 Top = 32 Width = 585 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Top = 2 ItemHeight = 0 TabOrder = 0 TopIndex = -1 end object ReplaceButton: TButton AnchorSideLeft.Control = FileViewGroupBox AnchorSideTop.Control = FileViewGroupBox Left = 2 Height = 30 Hint = 'Import the file viewed into the stored serial numbers replace any existing details.' Top = 0 Width = 130 BorderSpacing.Left = 2 Caption = 'Import / replace' OnClick = ReplaceButtonClick ParentShowHint = False ShowHint = True TabOrder = 1 end object MergeButton: TButton AnchorSideLeft.Control = ReplaceButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = FileViewGroupBox Left = 136 Height = 30 Hint = 'Import the file viewed into the stored serial numbers and merge with exiting details.' Top = 0 Width = 130 BorderSpacing.Left = 4 Caption = 'Import / merge' OnClick = MergeButtonClick ParentShowHint = False ShowHint = True TabOrder = 2 end end object RefreshBitBtn: TBitBtn AnchorSideLeft.Control = OnDiskGroupBox AnchorSideTop.Control = OnDiskGroupBox Left = 2 Height = 30 Hint = 'Refresh file list' Top = 0 Width = 30 BorderSpacing.Left = 2 Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000FFFFFF00A465 34A2A4653401FFFFFF00FFFFFF00A4653405A4653453A76A3ABEA66938E9A466 35FAA76A3AE4A76B3BAAA4653424FFFFFF00FFFFFF00FFFFFF00FFFFFF00A465 34FFA5673693FFFFFF00A4653454A66737EEB58055F3CEA684FFD8B697FFDBB9 99FFD3AC8AFFC2946DFCA66838F6A466355BFFFFFF00FFFFFF00FFFFFF00A567 37FEB7845BF7A56736D4B17A4EF4E3CAB4FFECDAC9FFE7D1BCFFE3C9B0FFDEBE A0FFD2AB88FFCEA582FFD3AE8EFFA66838F5A465342AFFFFFF00FFFFFF00A668 38FDF1E4D8FFD4B295FEF4E9E0FFF3E8DDFFEDDCCCFFD2AD8FFEB0784CF5A566 35FBA66939FFA66939FEA96D3DFFB0784CFFA76A3AA8FFFFFF00FFFFFF00A567 37FDF6EEE6FFF5ECE3FFF5EDE4FFE6D2C1FFB0794DF5A66938CAA4653436FFFF FF00A465346AA96B3CEDB67C4FFFA76A3AFEA56837FAFFFFFF00FFFFFF00A466 35FCF6EEE6FFEBD7C4FFEAD9C9FFA46534FEA465346AFFFFFF00FFFFFF00FFFF FF00A465340BA56635E9C9956C8DB77F53C2A46534FFA4653405FFFFFF00A465 34FCF5EDE5FFF6EDE5FFF5ECE4FFD7B79CFDA66837E0A4653410FFFFFF00FFFF FF00FFFFFF00FFFFFF00D5A47E1ACD997239A46534FCA465340CFFFFFF00A465 34F9A46534FEA46534FEA46534FDA46534FCA46534FBA46534B9A465341DA465 3418A4653418A4653418A4653418A4653418A465341CFFFFFF00FFFFFF00A465 340DFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00A46534A0A465 34FFAD7447F8AF774CF7AF774CF7AF784CF7A46534FFA4653408FFFFFF00A465 34FCB3794C7ECF9D762BBB835713A4653402FFFFFF00FFFFFF00A4653404A668 38C4D0AC8FFAF6EEE7FFF2E6DBFFF6EEE6FFA66A3AFBA4653409FFFFFF00A465 35FEA76A3AFBC791689DA56737E6A4653423FFFFFF00FFFFFF00FFFFFF00A465 3460A46635FFE9D7C7FFEBD8C6FFF5ECE3FFA66A3AFAA465340AFFFFFF00A668 38F3AB7041FFA96C3CFEA76A3AF5A4653475A4653419A4653445A66938CDB988 61F5EBDBCDFFF5EBE2FFF6EEE6FFF6EEE6FFA76A3AFAA465340BFFFFFF00A769 399BC09069FDC59872FFA86B3CFFA46635FFA76A3AFCB7855DF3D9BBA1FEF1E4 D8FFF2E6DBFFF3E8DDFFCEA788FDEAD8C8FFA76A3AF9A465340DFFFFFF00A465 3429A66939F5D3AD8CFFDCBD9DFFDDBEA1FFE5CBB4FFE9D3BFFFEEDDCCFFF0E2 D5FFE7D2BFFFAF774BF5A56736C0AB7143F7A46635FCA465340EFFFFFF00FFFF FF00A4653550A66838F6C09068FAD3B08FFFDFC2A8FFDEC1A8FFD4B193FFB987 5FF4A56737F0A4653458FFFFFF00A4663566A46534FFA465340FFFFFFF00FFFF FF00FFFFFF00A465341DA7693A9FA76A3ADEA56736F6A76939E5A76A3ABCA465 3453A4653405FFFFFF00FFFFFF00FFFFFF00A4653479A4653410 } OnClick = RefreshBitBtnClick ParentShowHint = False ShowHint = True TabOrder = 2 end end object InConfigGroupBox: TGroupBox AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner AnchorSideBottom.Control = StatusBar Left = 0 Height = 691 Top = 0 Width = 576 Anchors = [akTop, akLeft, akBottom] Caption = 'In config:' ClientHeight = 668 ClientWidth = 572 TabOrder = 2 object StoredSerialNumbersGroupBox: TGroupBox AnchorSideLeft.Control = InConfigGroupBox AnchorSideTop.Control = BackupConfigButton AnchorSideTop.Side = asrBottom AnchorSideRight.Control = InConfigGroupBox AnchorSideRight.Side = asrBottom Left = 0 Height = 220 Top = 30 Width = 572 Anchors = [akTop, akLeft, akRight] Caption = 'Stored serial numbers in configuration file:' ClientHeight = 197 ClientWidth = 568 TabOrder = 0 object SerialListBox: TListBox AnchorSideLeft.Control = StoredSerialNumbersGroupBox AnchorSideTop.Control = StoredSerialNumbersGroupBox AnchorSideRight.Control = StoredSerialNumbersGroupBox AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = StoredSerialNumbersGroupBox AnchorSideBottom.Side = asrBottom Left = 0 Height = 197 Top = 0 Width = 568 Anchors = [akTop, akLeft, akRight, akBottom] ItemHeight = 0 OnClick = SerialListBoxClick TabOrder = 0 TopIndex = -1 end end object SelectedSerialNumberGroupBox: TGroupBox AnchorSideLeft.Control = InConfigGroupBox AnchorSideTop.Control = StoredSerialNumbersGroupBox AnchorSideTop.Side = asrBottom AnchorSideRight.Control = InConfigGroupBox AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = InConfigGroupBox AnchorSideBottom.Side = asrBottom Left = 0 Height = 418 Top = 250 Width = 572 Anchors = [akTop, akLeft, akRight, akBottom] Caption = 'Selected serial number details from configuration file:' ClientHeight = 395 ClientWidth = 568 TabOrder = 1 object SerialDetailsListBox: TListBox AnchorSideLeft.Control = SelectedSerialNumberGroupBox AnchorSideTop.Control = ExportButton AnchorSideTop.Side = asrBottom AnchorSideRight.Control = SelectedSerialNumberGroupBox AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = SelectedSerialNumberGroupBox AnchorSideBottom.Side = asrBottom Left = 0 Height = 365 Top = 30 Width = 568 Anchors = [akTop, akLeft, akRight, akBottom] ExtendedSelect = False ItemHeight = 0 TabOrder = 0 TopIndex = -1 end object ExportButton: TButton AnchorSideLeft.Control = SelectedSerialNumberGroupBox AnchorSideTop.Control = SelectedSerialNumberGroupBox Left = 2 Height = 30 Hint = 'Write selected data to file.' Top = 0 Width = 75 BorderSpacing.Left = 2 Caption = 'Export' OnClick = ExportButtonClick ParentShowHint = False ShowHint = True TabOrder = 1 end end object BackupConfigButton: TButton AnchorSideLeft.Control = InConfigGroupBox AnchorSideTop.Control = InConfigGroupBox Left = 2 Height = 30 Hint = 'Make a backup of the entire configuration file' Top = 0 Width = 75 BorderSpacing.Left = 2 Caption = 'Backup' OnClick = BackupConfigButtonClick ParentShowHint = False ShowHint = True TabOrder = 2 end end object OpenDialog1: TOpenDialog Filter = 'SerialFiles|SERIAL_*.txt' Left = 1096 Top = 24 end end ./dlheader.lfm0000644000175000017500000004230414576573021013422 0ustar anthonyanthonyobject DLHeaderForm: TDLHeaderForm Left = 2195 Height = 860 Top = 81 Width = 660 Anchors = [] Caption = 'Datalogging header' ClientHeight = 860 ClientWidth = 660 OnCreate = FormCreate OnDestroy = FormDestroy Position = poScreenCenter LCLVersion = '3.0.0.3' object ScrollBox1: TScrollBox AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 0 Height = 860 Top = 0 Width = 660 HorzScrollBar.Page = 656 VertScrollBar.Page = 771 VertScrollBar.Tracking = True Anchors = [akTop, akLeft, akRight, akBottom] ClientHeight = 858 ClientWidth = 658 TabOrder = 0 object SelectedGroupBox: TGroupBox AnchorSideLeft.Control = ScrollBox1 AnchorSideTop.Control = ScrollBox1 AnchorSideBottom.Control = ScrollBox1 AnchorSideBottom.Side = asrBottom Left = 4 Height = 858 Top = 0 Width = 652 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Left = 4 Caption = 'Selected serial number:' ClientHeight = 838 ClientWidth = 650 TabOrder = 0 object DataSupplierEntry: TLabeledEdit AnchorSideLeft.Control = InstrumentIDEntry AnchorSideTop.Control = InstrumentIDEntry AnchorSideTop.Side = asrBottom Left = 284 Height = 36 Hint = 'The institution and/or person who was responsible for setting up and acquiring the data. Since it is'#10'expected that skyglow data will be archived for generations, detailed contact information (e.g. email'#10'address) is unlikely to be as helpful as information about the institute that supplied the data. Users are'#10'free to provide contact information in the user comments section below.' Top = 107 Width = 281 EditLabel.Height = 19 EditLabel.Width = 89 EditLabel.Caption = 'Data supplier: ' EditLabel.ParentColor = False LabelPosition = lpLeft ParentShowHint = False ShowHint = True TabOrder = 0 OnChange = DataSupplierEntryChange end object InstrumentIDEntry: TLabeledEdit AnchorSideLeft.Control = SerialNumber AnchorSideTop.Control = SerialNumber AnchorSideTop.Side = asrBottom Left = 284 Height = 36 Hint = 'The instrument ID is a unique human readable name. Since the number of stations monitoring is'#10'currently small, it probably won''t be a problem for users to come up with a name on their own. In the'#10'future, when a skyglow measurement database is established, there should be a procedure to have'#10'names assigned. In the meantime, please register your name with christopher.kyba@wew.fu-berlin.de.'#10'Since the instrument ID is used in the filename, spaces and other characters outside of the set [A-Za-z0-'#10'9_-] are not permitted (use dash or underscore instead of space).'#10'Examples: SQM-RIVM1, Dahlem_tower_le' Top = 71 Width = 281 EditLabel.Height = 19 EditLabel.Width = 96 EditLabel.Caption = 'Instrument ID: ' EditLabel.ParentColor = False LabelPosition = lpLeft ParentShowHint = False ShowHint = True TabOrder = 1 OnChange = InstrumentIDEntryChange end object LocationNameEntry: TLabeledEdit AnchorSideLeft.Control = DataSupplierEntry AnchorSideTop.Control = DataSupplierEntry AnchorSideTop.Side = asrBottom Left = 284 Height = 36 Top = 143 Width = 282 EditLabel.Height = 19 EditLabel.Width = 97 EditLabel.Caption = 'Location name: ' EditLabel.ParentColor = False LabelPosition = lpLeft ParentShowHint = False ShowHint = True TabOrder = 3 OnChange = LocationNameEntryChange end object PositionEntry: TLabeledEdit AnchorSideLeft.Control = LocationNameEntry AnchorSideTop.Control = LocationNameEntry AnchorSideTop.Side = asrBottom Left = 284 Height = 36 Top = 179 Width = 282 EditLabel.Height = 19 EditLabel.Width = 160 EditLabel.Caption = 'Position (lat, lon, elev(m)): ' EditLabel.ParentColor = False LabelPosition = lpLeft ReadOnly = True TabOrder = 2 TabStop = False end object Label6: TLabel AnchorSideTop.Control = TZRegionBox AnchorSideTop.Side = asrCenter AnchorSideRight.Control = TZRegionBox Left = 103 Height = 21 Top = 220 Width = 178 Alignment = taRightJustify Anchors = [akTop, akRight] AutoSize = False BorderSpacing.Right = 3 Caption = 'Local timezone region:' ParentColor = False end object TZRegionBox: TComboBox AnchorSideLeft.Control = PositionEntry AnchorSideTop.Control = PositionEntry AnchorSideTop.Side = asrBottom Left = 284 Height = 31 Top = 215 Width = 282 ItemHeight = 0 Items.Strings = ( 'africa' 'asia' 'europe' 'northamerica' 'antarctica' 'australasia' 'etcetera' 'southamerica' ) Style = csDropDownList TabOrder = 4 OnChange = TZRegionBoxChange end object TimeSynchEntry: TLabeledEdit AnchorSideLeft.Control = TZLocationBox AnchorSideTop.Control = TZLocationBox AnchorSideTop.Side = asrBottom Left = 284 Height = 36 Top = 281 Width = 282 EditLabel.Height = 19 EditLabel.Width = 134 EditLabel.Caption = 'Time Synchronization:' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 5 OnChange = TimeSynchEntryChange end object MovingStationaryPositionCombo: TComboBox AnchorSideLeft.Control = TimeSynchEntry AnchorSideTop.Control = TimeSynchEntry AnchorSideTop.Side = asrBottom Left = 284 Height = 36 Hint = 'GPS enabled overrides to Moving.' Top = 317 Width = 282 ItemHeight = 0 Items.Strings = ( 'MOVING' 'STATIONARY' ) ParentShowHint = False ShowHint = True TabOrder = 6 OnChange = MovingStationaryPositionComboChange end object Label7: TLabel AnchorSideTop.Control = MovingStationaryPositionCombo AnchorSideTop.Side = asrCenter AnchorSideRight.Control = MovingStationaryPositionCombo Left = 105 Height = 19 Top = 326 Width = 176 Alignment = taRightJustify Anchors = [akTop, akRight] BorderSpacing.Right = 3 Caption = 'Moving / Stationary position:' ParentColor = False end object MovingStationaryDirectionCombo: TComboBox AnchorSideLeft.Control = MovingStationaryPositionCombo AnchorSideTop.Control = MovingStationaryPositionCombo AnchorSideTop.Side = asrBottom Left = 284 Height = 36 Top = 353 Width = 282 ItemHeight = 0 Items.Strings = ( 'MOVING' 'FIXED' ) TabOrder = 7 OnChange = MovingStationaryDirectionComboChange end object Label8: TLabel AnchorSideTop.Control = MovingStationaryDirectionCombo AnchorSideTop.Side = asrCenter AnchorSideRight.Control = MovingStationaryDirectionCombo Left = 101 Height = 19 Top = 362 Width = 180 Alignment = taRightJustify Anchors = [akTop, akRight] BorderSpacing.Right = 3 Caption = 'Moving / Fixed look direction:' ParentColor = False end object Label9: TLabel AnchorSideTop.Control = NumberOfChannelsEntry AnchorSideTop.Side = asrCenter AnchorSideRight.Control = NumberOfChannelsEntry Left = 152 Height = 19 Top = 399 Width = 129 Alignment = taRightJustify Anchors = [akTop, akRight] BorderSpacing.Right = 3 Caption = 'Number of channels:' ParentColor = False end object NumberOfChannelsEntry: TSpinEdit AnchorSideLeft.Control = MovingStationaryPositionCombo AnchorSideTop.Control = MovingStationaryDirectionCombo AnchorSideTop.Side = asrBottom Left = 284 Height = 36 Top = 390 Width = 225 BorderSpacing.Top = 1 MinValue = 1 OnChange = NumberOfChannelsEntryChange TabOrder = 8 Value = 1 end object MeasurementDirectionPerChannelEntry: TLabeledEdit AnchorSideLeft.Control = SerialNumber AnchorSideTop.Control = FiltersPerChannelEntry AnchorSideTop.Side = asrBottom Left = 284 Height = 36 Top = 499 Width = 225 EditLabel.Height = 19 EditLabel.Width = 224 EditLabel.Caption = 'Measurement direction per channel:' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 9 OnChange = MeasurementDirectionPerChannelEntryChange end object FieldOfViewEntry: TLabeledEdit AnchorSideLeft.Control = MeasurementDirectionPerChannelEntry AnchorSideTop.Control = MeasurementDirectionPerChannelEntry AnchorSideTop.Side = asrBottom Left = 284 Height = 36 Top = 535 Width = 226 EditLabel.Height = 19 EditLabel.Width = 141 EditLabel.Caption = 'Field of view (degrees):' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 10 OnChange = FieldOfViewEntryChange end object TZLocationBox: TComboBox AnchorSideLeft.Control = TZRegionBox AnchorSideTop.Control = TZRegionBox AnchorSideTop.Side = asrBottom Left = 284 Height = 35 Top = 246 Width = 282 ItemHeight = 0 Style = csDropDownList TabOrder = 11 OnChange = TZLocationBoxChange end object Label11: TLabel AnchorSideTop.Control = TZLocationBox AnchorSideTop.Side = asrCenter AnchorSideRight.Control = TZLocationBox Left = 148 Height = 19 Top = 254 Width = 133 Alignment = taRightJustify Anchors = [akTop, akRight] BorderSpacing.Right = 3 Caption = 'Local timezone name:' ParentColor = False end object UserComment1: TLabeledEdit AnchorSideLeft.Control = FieldOfViewEntry AnchorSideTop.Control = FieldOfViewEntry AnchorSideTop.Side = asrBottom Left = 284 Height = 36 Top = 571 Width = 284 EditLabel.Height = 19 EditLabel.Width = 71 EditLabel.Caption = 'Comments:' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 12 OnChange = UserComment1Change end object UserComment2: TEdit AnchorSideLeft.Control = UserComment1 AnchorSideTop.Control = UserComment1 AnchorSideTop.Side = asrBottom Left = 284 Height = 36 Top = 607 Width = 284 TabOrder = 13 OnChange = UserComment2Change end object UserComment3: TEdit AnchorSideLeft.Control = UserComment2 AnchorSideTop.Control = UserComment2 AnchorSideTop.Side = asrBottom Left = 284 Height = 36 Top = 643 Width = 284 TabOrder = 14 OnChange = UserComment3Change end object UserComment4: TEdit AnchorSideLeft.Control = UserComment3 AnchorSideTop.Control = UserComment3 AnchorSideTop.Side = asrBottom Left = 284 Height = 36 Top = 679 Width = 284 TabOrder = 15 OnChange = UserComment4Change end object UserComment5: TEdit AnchorSideLeft.Control = UserComment4 AnchorSideTop.Control = UserComment4 AnchorSideTop.Side = asrBottom Left = 284 Height = 36 Top = 715 Width = 284 TabOrder = 16 OnChange = UserComment5Change end object CoverOffsetEntry: TLabeledEdit AnchorSideLeft.Control = NumberOfChannelsEntry AnchorSideTop.Control = NumberOfChannelsEntry AnchorSideTop.Side = asrBottom Left = 284 Height = 36 Hint = 'this is the difference in reading caused by the weatherproof housing.'#10'For people using the standard housing from Unihedron the value is -0.11.' Top = 427 Width = 122 BorderSpacing.Top = 1 EditLabel.Height = 19 EditLabel.Width = 82 EditLabel.Caption = 'Cover Offset:' EditLabel.ParentColor = False LabelPosition = lpLeft ParentShowHint = False ShowHint = True TabOrder = 18 OnChange = CoverOffsetEntryChange end object SerialNumber: TLabeledEdit Left = 284 Height = 36 Top = 35 Width = 131 Anchors = [] EditLabel.Height = 19 EditLabel.Width = 93 EditLabel.Caption = 'Serial Number:' EditLabel.ParentColor = False LabelPosition = lpLeft ReadOnly = True TabOrder = 17 TabStop = False end object FiltersPerChannelEntry: TComboBox AnchorSideLeft.Control = CoverOffsetEntry AnchorSideTop.Control = CoverOffsetEntry AnchorSideTop.Side = asrBottom Left = 284 Height = 36 Top = 463 Width = 225 ItemHeight = 0 ItemIndex = 0 Items.Strings = ( 'HOYA CM-500' ) TabOrder = 19 Text = 'HOYA CM-500' OnChange = FiltersPerChannelEntryChange end object Label10: TLabel AnchorSideTop.Control = FiltersPerChannelEntry AnchorSideTop.Side = asrCenter AnchorSideRight.Control = FiltersPerChannelEntry Left = 163 Height = 19 Top = 472 Width = 121 Alignment = taRightJustify Anchors = [akTop, akRight] Caption = 'Filters per channel: ' ParentColor = False end object InvalidInstrumentID: TLabel AnchorSideLeft.Control = InstrumentIDEntry AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = InstrumentIDEntry AnchorSideTop.Side = asrCenter Left = 570 Height = 19 Hint = 'Since the instrument ID is used in '#10'the filename, spaces and other '#10'characters outside of the set [A-Za-z0-9_-] '#10'are not permitted (use dash or '#10'underscore instead of space).' Top = 80 Width = 41 BorderSpacing.Left = 5 Caption = 'Invalid' Font.Color = clRed ParentColor = False ParentFont = False ParentShowHint = False ShowHint = True Visible = False end object EditPositionButton: TButton AnchorSideLeft.Control = PositionEntry AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = PositionEntry AnchorSideTop.Side = asrCenter AnchorSideRight.Side = asrBottom Left = 569 Height = 31 Top = 182 Width = 52 BorderSpacing.Left = 3 Caption = 'Edit' TabOrder = 20 OnClick = EditPositionButtonClick end object CloseButton: TButton AnchorSideLeft.Side = asrBottom AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = UserComment5 AnchorSideBottom.Side = asrBottom Left = 571 Height = 31 Top = 720 Width = 51 Anchors = [akBottom] BorderSpacing.Left = 3 Caption = 'Close' TabOrder = 21 OnClick = CloseButtonClick end object PDFDocButton: TButton Left = 284 Height = 31 Hint = 'PDF definitions' Top = -5 Width = 75 Anchors = [] Caption = 'PDF' TabOrder = 22 OnClick = PDFDocButtonClick end object DefinitionsLink: TLabel AnchorSideLeft.Side = asrBottom Left = 378 Height = 19 Top = -4 Width = 170 Anchors = [] BorderSpacing.Left = 4 Caption = 'darksky.org/measurements' Font.Color = clBlue ParentColor = False ParentFont = False OnClick = DefinitionsLinkClick OnMouseEnter = DefinitionsLinkMouseEnter OnMouseLeave = DefinitionsLinkMouseLeave end object Button1: TButton Left = 25 Height = 35 Top = 246 Width = 101 Caption = 'Exist test' TabOrder = 23 Visible = False OnClick = Button1Click end object TZRefLink: TLabel AnchorSideLeft.Control = TZRegionBox AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = TZRegionBox AnchorSideTop.Side = asrCenter Left = 570 Height = 19 Top = 221 Width = 49 BorderSpacing.Left = 4 Caption = 'Wiki ref.' Font.Color = clBlue ParentColor = False ParentFont = False OnClick = TZRefLinkClick end end end end ./chronometer-reset.png0000644000175000017500000000164314576573022015327 0ustar anthonyanthonyPNG  IHDRasBIT|d pHYs:tEXtSoftwarewww.inkscape.org< IDATxmk\UƟs$3I'I'M4N(BhТEuUE7 7;EQj!&%6it$s3q=xG fgqÞ]iIEѠ6v]lZh7J$w8 ϘG8|-Bt/B2.VB߭ mW"DN&ZwZ0 i$Yr"HgLvvnJricԴL5)bC5(t'\!FMPe\ [̾pm8> P. OyD\i؝KӉոnZl.&Yr2Vdu\kYSox;\"~|7\uQrkIp,IENDB`./playsoundackage.pas0000744000175000017500000000072714077651773015044 0ustar anthonyanthony{ This file was automatically created by Lazarus. Do not edit! This source is only used to compile and install the package. } unit playsoundackage; interface uses uplaysound, aboutplaysound, LazarusPackageIntf; implementation procedure Register; begin RegisterUnit('uplaysound', @uplaysound.Register); RegisterUnit('aboutplaysound', @aboutplaysound.Register); end; initialization RegisterPackage('playsoundackage', @Register); end. ./unlocked.png0000644000175000017500000000144114576573022013462 0ustar anthonyanthonyPNG  IHDR00`n pHYs\F\FCAtIME %xIDATX?kPmjMAPQAP/ҡ: СtR:)8TA!&֛Mg 9$M_&MYݮ ooo.fmKqdZ]*llvJI_Znb"X8p`jHNZ1f\. 51 M///0AA @Hq:`mntXulF (7Vkǝ}J׊HU4MۇAht|| { Su$Iqh8VUuq#Lz^@FV}32U4i?N,#챿MXl6j:u.//s(#$(EZ.S&|>GH!dxEi<3rbZ]iR ؞y1۞axn#Dg_h4<%\.#eYABQPӤW[Yq֐,ˡP,~?~Idt %Gz8XX,cYJ~EʬVCQX,6 qݕJEBݿA pIENDB`./convertoldlogfile.lrs0000644000175000017500000001547414576573022015426 0ustar anthonyanthony{ This is an automatically generated lazarus resource file } LazarusResources.Add('TConvertOldLogForm','FORMDATA',[ 'TPF0'#18'TConvertOldLogForm'#17'ConvertOldLogForm'#4'Left'#3#252#1#6'Height' +#3'%'#2#3'Top'#3#197#0#5'Width'#3'%'#3#7'Caption'#6#22'Convert old log to da' +'t'#12'ClientHeight'#3'%'#2#11'ClientWidth'#3'%'#3#8'OnCreate'#7#10'FormCrea' +'te'#6'OnShow'#7#8'FormShow'#8'Position'#7#14'poScreenCenter'#10'LCLVersion' +#6#3'1.3'#0#9'TGroupBox'#24'HeaderDefinitionGroupBox'#22'AnchorSideLeft.Cont' +'rol'#7#5'Owner'#21'AnchorSideTop.Control'#7#19'LogfileSelectButton'#18'Anch' +'orSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'An' +'chorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#13'Conver' +'tButton'#4'Left'#2#3#6'Height'#3#204#1#3'Top'#2#31#5'Width'#3#31#3#7'Anchor' +'s'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#18'BorderSpacing.Left'#2#3 +#17'BorderSpacing.Top'#2#3#19'BorderSpacing.Right'#2#3#20'BorderSpacing.Bott' +'om'#2#3#7'Caption'#6#17'Header definition'#12'ClientHeight'#3#189#1#11'Clie' +'ntWidth'#3#27#3#8'TabOrder'#2#0#0#11'TRadioGroup'#14'MethodGroupBox'#4'Left' +#2#6#6'Height'#2'D'#3'Top'#2#7#5'Width'#3#215#0#8'AutoFill'#9#7'Caption'#6#6 +'Method'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacin' +'g'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27 +'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.' +'ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14 +'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom' +#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'5'#11'ClientWidth'#3 +#211#0#9'ItemIndex'#2#0#13'Items.Strings'#1#6#27'From previous configuration' +#6#19'From other dat file'#0#7'OnClick'#7#19'MethodGroupBoxClick'#8'TabOrder' +#2#0#0#0#7'TButton'#18'ImportHeaderButton'#22'AnchorSideLeft.Control'#7#14'M' +'ethodGroupBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Cont' +'rol'#7#14'MethodGroupBox'#4'Left'#3#231#0#6'Height'#2#25#3'Top'#2#10#5'Widt' +'h'#3#199#0#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#3#7'Caption' +#6#27'Import header from dat file'#7'OnClick'#7#23'ImportHeaderButtonClick'#8 +'TabOrder'#2#1#0#0#5'TEdit'#20'ImportHeaderNameEdit'#22'AnchorSideLeft.Contr' +'ol'#7#18'ImportHeaderButton'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'Anch' +'orSideTop.Control'#7#18'ImportHeaderButton'#18'AnchorSideTop.Side'#7#9'asrC' +'enter'#23'AnchorSideRight.Control'#7#24'HeaderDefinitionGroupBox'#20'Anchor' +'SideRight.Side'#7#9'asrBottom'#4'Left'#3#179#1#6'Height'#2#25#3'Top'#2#10#5 +'Width'#3'e'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacin' +'g.Left'#2#5#19'BorderSpacing.Right'#2#3#8'TabOrder'#2#2#0#0#9'TComboBox'#20 +'FromPreviousComboBox'#22'AnchorSideLeft.Control'#7#11'SerialLabel'#19'Ancho' +'rSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#14'MethodGroupBo' +'x'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#14'M' +'ethodGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2'i'#6'Heigh' +'t'#2#25#3'Top'#2'N'#5'Width'#2't'#7'Anchors'#11#5'akTop'#7'akRight'#0#18'Bo' +'rderSpacing.Left'#2#4#17'BorderSpacing.Top'#2#3#10'ItemHeight'#2#0#8'OnChan' +'ge'#7#26'FromPreviousComboBoxChange'#8'TabOrder'#2#3#0#0#11'TStringGrid'#11 +'StringGrid1'#22'AnchorSideLeft.Control'#7#18'ImportHeaderButton'#21'AnchorS' +'ideTop.Control'#7#18'ImportHeaderButton'#18'AnchorSideTop.Side'#7#9'asrBott' +'om'#23'AnchorSideRight.Control'#7#24'HeaderDefinitionGroupBox'#20'AnchorSid' +'eRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#24'HeaderDefinit' +'ionGroupBox'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#231#0#6'Hei' +'ght'#3#147#1#3'Top'#2''''#5'Width'#3'1'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7 +'akRight'#8'akBottom'#0#17'BorderSpacing.Top'#2#4#19'BorderSpacing.Right'#2#3 +#20'BorderSpacing.Bottom'#2#3#8'ColCount'#2#3#7'Columns'#14#1#13'Title.Capti' +'on'#6#5'Value'#5'Width'#3#207#1#0#1#13'Title.Caption'#6#6'Value2'#0#0#8'Row' +'Count'#2#18#8'TabOrder'#2#4#10'OnDrawCell'#7#19'StringGrid1DrawCell'#9'ColW' +'idths'#1#2'@'#3#207#1#2'@'#0#0#0#6'TLabel'#11'SerialLabel'#22'AnchorSideLef' +'t.Control'#7#14'MethodGroupBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'A' +'nchorSideTop.Control'#7#20'FromPreviousComboBox'#18'AnchorSideTop.Side'#7#9 +'asrCenter'#23'AnchorSideRight.Control'#7#20'FromPreviousComboBox'#4'Left'#2 +'F'#6'Height'#2#13#3'Top'#2'T'#5'Width'#2#31#7'Anchors'#11#5'akTop'#7'akRigh' +'t'#0#18'BorderSpacing.Left'#2#10#19'BorderSpacing.Right'#2#4#7'Caption'#6#7 +'Serial:'#11'ParentColor'#8#0#0#0#7'TButton'#19'LogfileSelectButton'#22'Anch' +'orSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left' +#2#3#6'Height'#2#25#3'Top'#2#3#5'Width'#3#168#0#18'BorderSpacing.Left'#2#3#17 +'BorderSpacing.Top'#2#3#7'Caption'#6#25'Select logfile to convert'#7'OnClick' +#7#24'LogfileSelectButtonClick'#8'TabOrder'#2#1#0#0#5'TEdit'#16'LogfilenameL' +'abel'#22'AnchorSideLeft.Control'#7#19'LogfileSelectButton'#19'AnchorSideLef' +'t.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#19'LogfileSelectButton' ,#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBott' +'om'#4'Left'#3#174#0#6'Height'#2#25#3'Top'#2#3#5'Width'#3't'#2#7'Anchors'#11 +#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#3#19'BorderSpacing' +'.Right'#2#3#8'TabOrder'#2#2#0#0#7'TButton'#13'ConvertButton'#22'AnchorSideL' +'eft.Control'#7#5'Owner'#24'AnchorSideBottom.Control'#7#19'OutputfilenameLab' +'el'#4'Left'#2#3#6'Height'#2#25#3'Top'#3#238#1#5'Width'#2'K'#7'Anchors'#11#6 +'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2#3#20'BorderSpacing.Bottom'#2 +#2#7'Caption'#6#7'Convert'#7'OnClick'#7#18'ConvertButtonClick'#8'TabOrder'#2 +#3#0#0#12'TLabeledEdit'#19'OutputfilenameLabel'#22'AnchorSideLeft.Control'#7 +#5'Owner'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9 +'asrBottom'#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side' +#7#9'asrBottom'#4'Left'#3#242#0#6'Height'#2#25#3'Top'#3#9#2#5'Width'#3'0'#2#7 +'Anchors'#11#7'akRight'#8'akBottom'#0#19'BorderSpacing.Right'#2#3#20'BorderS' +'pacing.Bottom'#2#3#31'EditLabel.AnchorSideTop.Control'#7#19'OutputfilenameL' +'abel'#28'EditLabel.AnchorSideTop.Side'#7#9'asrCenter!EditLabel.AnchorSideRi' +'ght.Control'#7#19'OutputfilenameLabel"EditLabel.AnchorSideBottom.Control'#7 +#19'OutputfilenameLabel'#31'EditLabel.AnchorSideBottom.Side'#7#9'asrBottom' +#14'EditLabel.Left'#2'}'#16'EditLabel.Height'#2#13#13'EditLabel.Top'#3#15#2 +#15'EditLabel.Width'#2'r'#17'EditLabel.Caption'#6#24'Output file stored here' +':'#21'EditLabel.ParentColor'#8#13'LabelPosition'#7#6'lpLeft'#8'TabOrder'#2#4 +#0#0#11'TOpenDialog'#14'OpenFileDialog'#4'left'#2'p'#3'top'#3#184#0#0#0#0 ]); ./mimemess.pas0000644000175000017500000007006414576573021013502 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 002.006.000 | |==============================================================================| | Content: MIME message object | |==============================================================================| | Copyright (c)1999-2012, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2000-2012. | | Portions created by Petr Fejfar are Copyright (c)2011-2012. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM From distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@abstract(MIME message handling) Classes for easy handling with e-mail message. } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} {$M+} unit mimemess; interface uses Classes, SysUtils, mimepart, synachar, synautil, mimeinln; type {:Possible values for message priority} TMessPriority = (MP_unknown, MP_low, MP_normal, MP_high); {:@abstract(Object for basic e-mail header fields.)} TMessHeader = class(TObject) private FFrom: string; FToList: TStringList; FCCList: TStringList; FSubject: string; FOrganization: string; FCustomHeaders: TStringList; FDate: TDateTime; FXMailer: string; FCharsetCode: TMimeChar; FReplyTo: string; FMessageID: string; FPriority: TMessPriority; Fpri: TMessPriority; Fxpri: TMessPriority; Fxmspri: TMessPriority; protected function ParsePriority(value: string): TMessPriority; function DecodeHeader(value: string): boolean; virtual; public constructor Create; virtual; destructor Destroy; override; {:Clears all data fields.} procedure Clear; virtual; {Add headers from from this object to Value.} procedure EncodeHeaders(const Value: TStrings); virtual; {:Parse header from Value to this object.} procedure DecodeHeaders(const Value: TStrings); {:Try find specific header in CustomHeader. Search is case insensitive. This is good for reading any non-parsed header.} function FindHeader(Value: string): string; {:Try find specific headers in CustomHeader. This metod is for repeatly used headers like 'received' header, etc. Search is case insensitive. This is good for reading ano non-parsed header.} procedure FindHeaderList(Value: string; const HeaderList: TStrings); published {:Sender of message.} property From: string read FFrom Write FFrom; {:Stringlist with receivers of message. (one per line)} property ToList: TStringList read FToList; {:Stringlist with Carbon Copy receivers of message. (one per line)} property CCList: TStringList read FCCList; {:Subject of message.} property Subject: string read FSubject Write FSubject; {:Organization string.} property Organization: string read FOrganization Write FOrganization; {:After decoding contains all headers lines witch not have parsed to any other structures in this object. It mean: this conatins all other headers except: X-MAILER, FROM, SUBJECT, ORGANIZATION, TO, CC, DATE, MIME-VERSION, CONTENT-TYPE, CONTENT-DESCRIPTION, CONTENT-DISPOSITION, CONTENT-ID, CONTENT-TRANSFER-ENCODING, REPLY-TO, MESSAGE-ID, X-MSMAIL-PRIORITY, X-PRIORITY, PRIORITY When you encode headers, all this lines is added as headers. Be carefull for duplicites!} property CustomHeaders: TStringList read FCustomHeaders; {:Date and time of message.} property Date: TDateTime read FDate Write FDate; {:Mailer identification.} property XMailer: string read FXMailer Write FXMailer; {:Address for replies} property ReplyTo: string read FReplyTo Write FReplyTo; {:message indetifier} property MessageID: string read FMessageID Write FMessageID; {:message priority} property Priority: TMessPriority read FPriority Write FPriority; {:Specify base charset. By default is used system charset.} property CharsetCode: TMimeChar read FCharsetCode Write FCharsetCode; end; TMessHeaderClass = class of TMessHeader; {:@abstract(Object for handling of e-mail message.)} TMimeMess = class(TObject) private FMessagePart: TMimePart; FLines: TStringList; FHeader: TMessHeader; public constructor Create; {:create this object and assign your own descendant of @link(TMessHeader) object to @link(header) property. So, you can create your own message headers parser and use it by this object.} constructor CreateAltHeaders(HeadClass: TMessHeaderClass); destructor Destroy; override; {:Reset component to default state.} procedure Clear; virtual; {:Add MIME part as subpart of PartParent. If you need set root MIME part, then set as PartParent @NIL value. If you need set more then one subpart, you must have PartParent of multipart type!} function AddPart(const PartParent: TMimePart): TMimePart; {:Add MIME part as subpart of PartParent. If you need set root MIME part, then set as PartParent @NIL value. If you need set more then 1 subpart, you must have PartParent of multipart type! This part is marked as multipart with secondary MIME type specified by MultipartType parameter. (typical value is 'mixed') This part can be used as PartParent for another parts (include next multipart). If you need only one part, then you not need Multipart part.} function AddPartMultipart(const MultipartType: String; const PartParent: TMimePart): TMimePart; {:Add MIME part as subpart of PartParent. If you need set root MIME part, then set as PartParent @NIL value. If you need set more then 1 subpart, you must have PartParent of multipart type! After creation of part set type to text part and set all necessary properties. Content of part is readed from value stringlist.} function AddPartText(const Value: TStrings; const PartParent: TMimePart): TMimepart; {:Add MIME part as subpart of PartParent. If you need set root MIME part, then set as PartParent @NIL value. If you need set more then 1 subpart, you must have PartParent of multipart type! After creation of part set type to text part and set all necessary properties. Content of part is readed from value stringlist. You can select your charset and your encoding type. If Raw is @true, then it not doing charset conversion!} function AddPartTextEx(const Value: TStrings; const PartParent: TMimePart; PartCharset: TMimeChar; Raw: Boolean; PartEncoding: TMimeEncoding): TMimepart; {:Add MIME part as subpart of PartParent. If you need set root MIME part, then set as PartParent @NIL value. If you need set more then 1 subpart, you must have PartParent of multipart type! After creation of part set type to text part to HTML type and set all necessary properties. Content of HTML part is readed from Value stringlist.} function AddPartHTML(const Value: TStrings; const PartParent: TMimePart): TMimepart; {:Same as @link(AddPartText), but content is readed from file} function AddPartTextFromFile(const FileName: String; const PartParent: TMimePart): TMimepart; {:Same as @link(AddPartHTML), but content is readed from file} function AddPartHTMLFromFile(const FileName: String; const PartParent: TMimePart): TMimepart; {:Add MIME part as subpart of PartParent. If you need set root MIME part, then set as PartParent @NIL value. If you need set more then 1 subpart, you must have PartParent of multipart type! After creation of part set type to binary and set all necessary properties. MIME primary and secondary types defined automaticly by filename extension. Content of binary part is readed from Stream. This binary part is encoded as file attachment.} function AddPartBinary(const Stream: TStream; const FileName: string; const PartParent: TMimePart): TMimepart; {:Same as @link(AddPartBinary), but content is readed from file} function AddPartBinaryFromFile(const FileName: string; const PartParent: TMimePart): TMimepart; {:Add MIME part as subpart of PartParent. If you need set root MIME part, then set as PartParent @NIL value. If you need set more then 1 subpart, you must have PartParent of multipart type! After creation of part set type to binary and set all necessary properties. MIME primary and secondary types defined automaticly by filename extension. Content of binary part is readed from Stream. This binary part is encoded as inline data with given Conten ID (cid). Content ID can be used as reference ID in HTML source in HTML part.} function AddPartHTMLBinary(const Stream: TStream; const FileName, Cid: string; const PartParent: TMimePart): TMimepart; {:Same as @link(AddPartHTMLBinary), but content is readed from file} function AddPartHTMLBinaryFromFile(const FileName, Cid: string; const PartParent: TMimePart): TMimepart; {:Add MIME part as subpart of PartParent. If you need set root MIME part, then set as PartParent @NIL value. If you need set more then 1 subpart, you must have PartParent of multipart type! After creation of part set type to message and set all necessary properties. MIME primary and secondary types are setted to 'message/rfc822'. Content of raw RFC-822 message is readed from Stream.} function AddPartMess(const Value: TStrings; const PartParent: TMimePart): TMimepart; {:Same as @link(AddPartMess), but content is readed from file} function AddPartMessFromFile(const FileName: string; const PartParent: TMimePart): TMimepart; {:Compose message from @link(MessagePart) to @link(Lines). Headers from @link(Header) object is added also.} procedure EncodeMessage; virtual; {:Decode message from @link(Lines) to @link(MessagePart). Massage headers are parsed into @link(Header) object.} procedure DecodeMessage; virtual; {pf} {: HTTP message is received by @link(THTTPSend) component in two parts: headers are stored in @link(THTTPSend.Headers) and a body in memory stream @link(THTTPSend.Document). On the top of it, HTTP connections are always 8-bit, hence data are transferred in native format i.e. no transfer encoding is applied. This method operates the similiar way and produces the same result as @link(DecodeMessage). } procedure DecodeMessageBinary(AHeader:TStrings; AData:TMemoryStream); {/pf} published {:@link(TMimePart) object with decoded MIME message. This object can handle any number of nested @link(TMimePart) objects itself. It is used for handle any tree of MIME subparts.} property MessagePart: TMimePart read FMessagePart; {:Raw MIME encoded message.} property Lines: TStringList read FLines; {:Object for e-mail header fields. This object is created automaticly. Do not free this object!} property Header: TMessHeader read FHeader; end; implementation {==============================================================================} constructor TMessHeader.Create; begin inherited Create; FToList := TStringList.Create; FCCList := TStringList.Create; FCustomHeaders := TStringList.Create; FCharsetCode := GetCurCP; end; destructor TMessHeader.Destroy; begin FCustomHeaders.Free; FCCList.Free; FToList.Free; inherited Destroy; end; {==============================================================================} procedure TMessHeader.Clear; begin FFrom := ''; FToList.Clear; FCCList.Clear; FSubject := ''; FOrganization := ''; FCustomHeaders.Clear; FDate := 0; FXMailer := ''; FReplyTo := ''; FMessageID := ''; FPriority := MP_unknown; end; procedure TMessHeader.EncodeHeaders(const Value: TStrings); var n: Integer; s: string; begin if FDate = 0 then FDate := Now; for n := FCustomHeaders.Count - 1 downto 0 do if FCustomHeaders[n] <> '' then Value.Insert(0, FCustomHeaders[n]); if FPriority <> MP_unknown then case FPriority of MP_high: begin Value.Insert(0, 'X-MSMAIL-Priority: High'); Value.Insert(0, 'X-Priority: 1'); Value.Insert(0, 'Priority: urgent'); end; MP_low: begin Value.Insert(0, 'X-MSMAIL-Priority: low'); Value.Insert(0, 'X-Priority: 5'); Value.Insert(0, 'Priority: non-urgent'); end; end; if FReplyTo <> '' then Value.Insert(0, 'Reply-To: ' + GetEmailAddr(FReplyTo)); if FMessageID <> '' then Value.Insert(0, 'Message-ID: <' + trim(FMessageID) + '>'); if FXMailer = '' then Value.Insert(0, 'X-mailer: Synapse - Pascal TCP/IP library by Lukas Gebauer') else Value.Insert(0, 'X-mailer: ' + FXMailer); Value.Insert(0, 'MIME-Version: 1.0 (produced by Synapse)'); if FOrganization <> '' then Value.Insert(0, 'Organization: ' + InlineCodeEx(FOrganization, FCharsetCode)); s := ''; for n := 0 to FCCList.Count - 1 do if s = '' then s := InlineEmailEx(FCCList[n], FCharsetCode) else s := s + ', ' + InlineEmailEx(FCCList[n], FCharsetCode); if s <> '' then Value.Insert(0, 'CC: ' + s); Value.Insert(0, 'Date: ' + Rfc822DateTime(FDate)); if FSubject <> '' then Value.Insert(0, 'Subject: ' + InlineCodeEx(FSubject, FCharsetCode)); s := ''; for n := 0 to FToList.Count - 1 do if s = '' then s := InlineEmailEx(FToList[n], FCharsetCode) else s := s + ', ' + InlineEmailEx(FToList[n], FCharsetCode); if s <> '' then Value.Insert(0, 'To: ' + s); Value.Insert(0, 'From: ' + InlineEmailEx(FFrom, FCharsetCode)); end; function TMessHeader.ParsePriority(value: string): TMessPriority; var s: string; x: integer; begin Result := MP_unknown; s := Trim(separateright(value, ':')); s := Separateleft(s, ' '); x := StrToIntDef(s, -1); if x >= 0 then case x of 1, 2: Result := MP_High; 3: Result := MP_Normal; 4, 5: Result := MP_Low; end else begin s := lowercase(s); if (s = 'urgent') or (s = 'high') or (s = 'highest') then Result := MP_High; if (s = 'normal') or (s = 'medium') then Result := MP_Normal; if (s = 'low') or (s = 'lowest') or (s = 'no-priority') or (s = 'non-urgent') then Result := MP_Low; end; end; function TMessHeader.DecodeHeader(value: string): boolean; var s, t: string; cp: TMimeChar; begin Result := True; cp := FCharsetCode; s := uppercase(value); if Pos('X-MAILER:', s) = 1 then begin FXMailer := Trim(SeparateRight(Value, ':')); Exit; end; if Pos('FROM:', s) = 1 then begin FFrom := InlineDecode(Trim(SeparateRight(Value, ':')), cp); Exit; end; if Pos('SUBJECT:', s) = 1 then begin FSubject := InlineDecode(Trim(SeparateRight(Value, ':')), cp); Exit; end; if Pos('ORGANIZATION:', s) = 1 then begin FOrganization := InlineDecode(Trim(SeparateRight(Value, ':')), cp); Exit; end; if Pos('TO:', s) = 1 then begin s := Trim(SeparateRight(Value, ':')); repeat t := InlineDecode(Trim(FetchEx(s, ',', '"')), cp); if t <> '' then FToList.Add(t); until s = ''; Exit; end; if Pos('CC:', s) = 1 then begin s := Trim(SeparateRight(Value, ':')); repeat t := InlineDecode(Trim(FetchEx(s, ',', '"')), cp); if t <> '' then FCCList.Add(t); until s = ''; Exit; end; if Pos('DATE:', s) = 1 then begin FDate := DecodeRfcDateTime(Trim(SeparateRight(Value, ':'))); Exit; end; if Pos('REPLY-TO:', s) = 1 then begin FReplyTo := InlineDecode(Trim(SeparateRight(Value, ':')), cp); Exit; end; if Pos('MESSAGE-ID:', s) = 1 then begin FMessageID := GetEmailAddr(Trim(SeparateRight(Value, ':'))); Exit; end; if Pos('PRIORITY:', s) = 1 then begin FPri := ParsePriority(value); Exit; end; if Pos('X-PRIORITY:', s) = 1 then begin FXPri := ParsePriority(value); Exit; end; if Pos('X-MSMAIL-PRIORITY:', s) = 1 then begin FXmsPri := ParsePriority(value); Exit; end; if Pos('MIME-VERSION:', s) = 1 then Exit; if Pos('CONTENT-TYPE:', s) = 1 then Exit; if Pos('CONTENT-DESCRIPTION:', s) = 1 then Exit; if Pos('CONTENT-DISPOSITION:', s) = 1 then Exit; if Pos('CONTENT-ID:', s) = 1 then Exit; if Pos('CONTENT-TRANSFER-ENCODING:', s) = 1 then Exit; Result := False; end; procedure TMessHeader.DecodeHeaders(const Value: TStrings); var s: string; x: Integer; begin Clear; Fpri := MP_unknown; Fxpri := MP_unknown; Fxmspri := MP_unknown; x := 0; while Value.Count > x do begin s := NormalizeHeader(Value, x); if s = '' then Break; if not DecodeHeader(s) then FCustomHeaders.Add(s); end; if Fpri <> MP_unknown then FPriority := Fpri else if Fxpri <> MP_unknown then FPriority := Fxpri else if Fxmspri <> MP_unknown then FPriority := Fxmspri end; function TMessHeader.FindHeader(Value: string): string; var n: integer; begin Result := ''; for n := 0 to FCustomHeaders.Count - 1 do if Pos(UpperCase(Value), UpperCase(FCustomHeaders[n])) = 1 then begin Result := Trim(SeparateRight(FCustomHeaders[n], ':')); break; end; end; procedure TMessHeader.FindHeaderList(Value: string; const HeaderList: TStrings); var n: integer; begin HeaderList.Clear; for n := 0 to FCustomHeaders.Count - 1 do if Pos(UpperCase(Value), UpperCase(FCustomHeaders[n])) = 1 then begin HeaderList.Add(Trim(SeparateRight(FCustomHeaders[n], ':'))); end; end; {==============================================================================} constructor TMimeMess.Create; begin CreateAltHeaders(TMessHeader); end; constructor TMimeMess.CreateAltHeaders(HeadClass: TMessHeaderClass); begin inherited Create; FMessagePart := TMimePart.Create; FLines := TStringList.Create; FHeader := HeadClass.Create; end; destructor TMimeMess.Destroy; begin FMessagePart.Free; FHeader.Free; FLines.Free; inherited Destroy; end; {==============================================================================} procedure TMimeMess.Clear; begin FMessagePart.Clear; FLines.Clear; FHeader.Clear; end; {==============================================================================} function TMimeMess.AddPart(const PartParent: TMimePart): TMimePart; begin if PartParent = nil then Result := FMessagePart else Result := PartParent.AddSubPart; Result.Clear; end; {==============================================================================} function TMimeMess.AddPartMultipart(const MultipartType: String; const PartParent: TMimePart): TMimePart; begin Result := AddPart(PartParent); with Result do begin Primary := 'Multipart'; Secondary := MultipartType; Description := 'Multipart message'; Boundary := GenerateBoundary; EncodePartHeader; end; end; function TMimeMess.AddPartText(const Value: TStrings; const PartParent: TMimePart): TMimepart; begin Result := AddPart(PartParent); with Result do begin Value.SaveToStream(DecodedLines); Primary := 'text'; Secondary := 'plain'; Description := 'Message text'; Disposition := 'inline'; CharsetCode := IdealCharsetCoding(Value.Text, TargetCharset, IdealCharsets); EncodingCode := ME_QUOTED_PRINTABLE; EncodePart; EncodePartHeader; end; end; function TMimeMess.AddPartTextEx(const Value: TStrings; const PartParent: TMimePart; PartCharset: TMimeChar; Raw: Boolean; PartEncoding: TMimeEncoding): TMimepart; begin Result := AddPart(PartParent); with Result do begin Value.SaveToStream(DecodedLines); Primary := 'text'; Secondary := 'plain'; Description := 'Message text'; Disposition := 'inline'; CharsetCode := PartCharset; EncodingCode := PartEncoding; ConvertCharset := not Raw; EncodePart; EncodePartHeader; end; end; function TMimeMess.AddPartHTML(const Value: TStrings; const PartParent: TMimePart): TMimepart; begin Result := AddPart(PartParent); with Result do begin Value.SaveToStream(DecodedLines); Primary := 'text'; Secondary := 'html'; Description := 'HTML text'; Disposition := 'inline'; CharsetCode := UTF_8; EncodingCode := ME_QUOTED_PRINTABLE; EncodePart; EncodePartHeader; end; end; function TMimeMess.AddPartTextFromFile(const FileName: String; const PartParent: TMimePart): TMimepart; var tmp: TStrings; begin tmp := TStringList.Create; try tmp.LoadFromFile(FileName); Result := AddPartText(tmp, PartParent); Finally tmp.Free; end; end; function TMimeMess.AddPartHTMLFromFile(const FileName: String; const PartParent: TMimePart): TMimepart; var tmp: TStrings; begin tmp := TStringList.Create; try tmp.LoadFromFile(FileName); Result := AddPartHTML(tmp, PartParent); Finally tmp.Free; end; end; function TMimeMess.AddPartBinary(const Stream: TStream; const FileName: string; const PartParent: TMimePart): TMimepart; begin Result := AddPart(PartParent); Result.DecodedLines.LoadFromStream(Stream); Result.MimeTypeFromExt(FileName); Result.Description := 'Attached file: ' + FileName; Result.Disposition := 'attachment'; Result.FileName := FileName; Result.EncodingCode := ME_BASE64; Result.EncodePart; Result.EncodePartHeader; end; function TMimeMess.AddPartBinaryFromFile(const FileName: string; const PartParent: TMimePart): TMimepart; var tmp: TMemoryStream; begin tmp := TMemoryStream.Create; try tmp.LoadFromFile(FileName); Result := AddPartBinary(tmp, ExtractFileName(FileName), PartParent); finally tmp.Free; end; end; function TMimeMess.AddPartHTMLBinary(const Stream: TStream; const FileName, Cid: string; const PartParent: TMimePart): TMimepart; begin Result := AddPart(PartParent); Result.DecodedLines.LoadFromStream(Stream); Result.MimeTypeFromExt(FileName); Result.Description := 'Included file: ' + FileName; Result.Disposition := 'inline'; Result.ContentID := Cid; Result.FileName := FileName; Result.EncodingCode := ME_BASE64; Result.EncodePart; Result.EncodePartHeader; end; function TMimeMess.AddPartHTMLBinaryFromFile(const FileName, Cid: string; const PartParent: TMimePart): TMimepart; var tmp: TMemoryStream; begin tmp := TMemoryStream.Create; try tmp.LoadFromFile(FileName); Result :=AddPartHTMLBinary(tmp, ExtractFileName(FileName), Cid, PartParent); finally tmp.Free; end; end; function TMimeMess.AddPartMess(const Value: TStrings; const PartParent: TMimePart): TMimepart; var part: Tmimepart; begin Result := AddPart(PartParent); part := AddPart(result); part.lines.addstrings(Value); part.DecomposeParts; with Result do begin Primary := 'message'; Secondary := 'rfc822'; Description := 'E-mail Message'; EncodePart; EncodePartHeader; end; end; function TMimeMess.AddPartMessFromFile(const FileName: String; const PartParent: TMimePart): TMimepart; var tmp: TStrings; begin tmp := TStringList.Create; try tmp.LoadFromFile(FileName); Result := AddPartMess(tmp, PartParent); Finally tmp.Free; end; end; {==============================================================================} procedure TMimeMess.EncodeMessage; var l: TStringList; x: integer; begin //merge headers from THeaders and header field from MessagePart l := TStringList.Create; try FHeader.EncodeHeaders(l); x := IndexByBegin('CONTENT-TYPE', FMessagePart.Headers); if x >= 0 then l.add(FMessagePart.Headers[x]); x := IndexByBegin('CONTENT-DESCRIPTION', FMessagePart.Headers); if x >= 0 then l.add(FMessagePart.Headers[x]); x := IndexByBegin('CONTENT-DISPOSITION', FMessagePart.Headers); if x >= 0 then l.add(FMessagePart.Headers[x]); x := IndexByBegin('CONTENT-ID', FMessagePart.Headers); if x >= 0 then l.add(FMessagePart.Headers[x]); x := IndexByBegin('CONTENT-TRANSFER-ENCODING', FMessagePart.Headers); if x >= 0 then l.add(FMessagePart.Headers[x]); FMessagePart.Headers.Assign(l); finally l.Free; end; FMessagePart.ComposeParts; FLines.Assign(FMessagePart.Lines); end; {==============================================================================} procedure TMimeMess.DecodeMessage; begin FHeader.Clear; FHeader.DecodeHeaders(FLines); FMessagePart.Lines.Assign(FLines); FMessagePart.DecomposeParts; end; {pf} procedure TMimeMess.DecodeMessageBinary(AHeader:TStrings; AData:TMemoryStream); begin FHeader.Clear; FLines.Clear; FLines.Assign(AHeader); FHeader.DecodeHeaders(FLines); FMessagePart.DecomposePartsBinary(AHeader,PANSIChar(AData.Memory),PANSIChar(AData.Memory)+AData.Size); end; {/pf} end. ./mimeinln.pas0000644000175000017500000002230314576573021013464 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 001.001.011 | |==============================================================================| | Content: Inline MIME support procedures and functions | |==============================================================================| | Copyright (c)1999-2006, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2000-2006. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@abstract(Utilities for inline MIME) Support for Inline MIME encoding and decoding. Used RFC: RFC-2047, RFC-2231 } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} {$IFDEF UNICODE} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$ENDIF} unit mimeinln; interface uses SysUtils, Classes, synachar, synacode, synautil; {:Decodes mime inline encoding (i.e. in headers) uses target characterset "CP".} function InlineDecode(const Value: string; CP: TMimeChar): string; {:Encodes string to MIME inline encoding. The source characterset is "CP", and the target charset is "MimeP".} function InlineEncode(const Value: string; CP, MimeP: TMimeChar): string; {:Returns @true, if "Value" contains characters needed for inline coding.} function NeedInline(const Value: AnsiString): boolean; {:Inline mime encoding similar to @link(InlineEncode), but you can specify source charset, and the target characterset is automatically assigned.} function InlineCodeEx(const Value: string; FromCP: TMimeChar): string; {:Inline MIME encoding similar to @link(InlineEncode), but the source charset is automatically set to the system default charset, and the target charset is automatically assigned from set of allowed encoding for MIME.} function InlineCode(const Value: string): string; {:Converts e-mail address to canonical mime form. You can specify source charset.} function InlineEmailEx(const Value: string; FromCP: TMimeChar): string; {:Converts e-mail address to canonical mime form. Source charser it system default charset.} function InlineEmail(const Value: string): string; implementation {==============================================================================} function InlineDecode(const Value: string; CP: TMimeChar): string; var s, su, v: string; x, y, z, n: Integer; ichar: TMimeChar; c: Char; function SearchEndInline(const Value: string; be: Integer): Integer; var n, q: Integer; begin q := 0; Result := 0; for n := be + 2 to Length(Value) - 1 do if Value[n] = '?' then begin Inc(q); if (q > 2) and (Value[n + 1] = '=') then begin Result := n; Break; end; end; end; begin Result := ''; v := Value; x := Pos('=?', v); y := SearchEndInline(v, x); //fix for broken coding with begin, but not with end. if (x > 0) and (y <= 0) then y := Length(Result); while (y > x) and (x > 0) do begin s := Copy(v, 1, x - 1); if Trim(s) <> '' then Result := Result + s; s := Copy(v, x, y - x + 2); Delete(v, 1, y + 1); su := Copy(s, 3, Length(s) - 4); z := Pos('?', su); if (Length(su) >= (z + 2)) and (su[z + 2] = '?') then begin ichar := GetCPFromID(SeparateLeft(Copy(su, 1, z - 1), '*')); c := UpperCase(su)[z + 1]; su := Copy(su, z + 3, Length(su) - z - 2); if c = 'B' then begin s := DecodeBase64(su); s := CharsetConversion(s, ichar, CP); end; if c = 'Q' then begin s := ''; for n := 1 to Length(su) do if su[n] = '_' then s := s + ' ' else s := s + su[n]; s := DecodeQuotedPrintable(s); s := CharsetConversion(s, ichar, CP); end; end; Result := Result + s; x := Pos('=?', v); y := SearchEndInline(v, x); end; Result := Result + v; end; {==============================================================================} function InlineEncode(const Value: string; CP, MimeP: TMimeChar): string; var s, s1, e: string; n: Integer; begin s := CharsetConversion(Value, CP, MimeP); s := EncodeSafeQuotedPrintable(s); e := GetIdFromCP(MimeP); s1 := ''; Result := ''; for n := 1 to Length(s) do if s[n] = ' ' then begin // s1 := s1 + '=20'; s1 := s1 + '_'; if Length(s1) > 32 then begin if Result <> '' then Result := Result + ' '; Result := Result + '=?' + e + '?Q?' + s1 + '?='; s1 := ''; end; end else s1 := s1 + s[n]; if s1 <> '' then begin if Result <> '' then Result := Result + ' '; Result := Result + '=?' + e + '?Q?' + s1 + '?='; end; end; {==============================================================================} function NeedInline(const Value: AnsiString): boolean; var n: Integer; begin Result := False; for n := 1 to Length(Value) do if Value[n] in (SpecialChar + NonAsciiChar - ['_']) then begin Result := True; Break; end; end; {==============================================================================} function InlineCodeEx(const Value: string; FromCP: TMimeChar): string; var c: TMimeChar; begin if NeedInline(Value) then begin c := IdealCharsetCoding(Value, FromCP, IdealCharsets); Result := InlineEncode(Value, FromCP, c); end else Result := Value; end; {==============================================================================} function InlineCode(const Value: string): string; begin Result := InlineCodeEx(Value, GetCurCP); end; {==============================================================================} function InlineEmailEx(const Value: string; FromCP: TMimeChar): string; var sd, se: string; begin sd := GetEmailDesc(Value); se := GetEmailAddr(Value); if sd = '' then Result := se else Result := '"' + InlineCodeEx(sd, FromCP) + '" <' + se + '>'; end; {==============================================================================} function InlineEmail(const Value: string): string; begin Result := InlineEmailEx(Value, GetCurCP); end; end. ./procoutlarge.pas0000644000175000017500000000000114576573021014351 0ustar anthonyanthony ./citylights_banner.jpg0000644000175000017500000021361014576573022015365 0ustar anthonyanthonyJFIF ExifII* z (1 2iNIKON CORPORATIONNIKON D70sGIMP 2.6.112012:02:11 12:50:34'0210    0100 *# 2005:07:06 22:20:20$ 4<(D~ HHJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222I" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?UG5*T뗝JT0uj*pk# RJޜ|axO1OT;w>~*Rv.is y¬,&XO+'* ՅڦXxRy< RCԜU)4ٝzRyԆw3!a0ZF.zTfӸXhڣhHQ=Ec&8t*J.+&aQNi#4\.[;_uF-kB F2OSAT`_~8Y))lUIy80^Zձ-y~v]H_6$wp9UITgmQ-A,2`hAbTJGJ9)sc}jH5e 8EKLgL{UYakH (i0SL\ 0ZFښm,e6hy+TTm(Xhj[ ;Ui"qh>nߍy;qXB8>IGnƜ܀Wҩᐐ_LbDfY|6reyB>`CY(g*ujK]]0ileX'oFeVYr3 #pY'gf[W8E M8Hָ?Ŗ}$xRD׭tV?6 bM\$= L4-?ib$Gy,[ZCc.q ҙ&qjyN:Ʈ \t=ژ-V~΃ڹTY᱈L[r>I},1ڝ!W@܆hR9'~ïzZs]40y@yqqZ*m::FDYXZW=Lx%<1 G367(8rcltͱEf\x/('~֝?b9cO9˟A,p&CM#8NU,Zz3H`c9\R.2ij@'皈LX p;xLɍw8٣ah#b[$I/8?uqw)YRBc?T'9m8~-bHT',񎔳ksڛw 僅$wY=)꡸Q=kdq}$;C`zC'g1on$yrF}qU|@;#V*áj夸uCQҹ8&rztgn 3.1 DSC_0020.NEF As Shot 4400 -4 True +1.55 True 0 True 100 True +30 0 25 0 25 0 0 0 0 0 0 0 0 0 0 Medium Contrast ACR 2.4 True False 0, 0 32, 22 64, 56 128, 128 192, 196 255, 255 2/1 -1/1 35/10 361471/100000 2005-07-06T22:20:20-04:00 0/1 36/10 5 18/1 27 3008 2000 65535 36864,40960,40961,37121,37122,40962,40963,37510,40964,36867,36868,33434,33437,34850,34852,34855,34856,37377,37378,37379,37380,37381,37382,37383,37384,37385,37386,37396,41483,41484,41486,41487,41488,41492,41493,41495,41728,41729,41730,41985,41986,41987,41988,41989,41990,41991,41992,41993,41994,41995,41996,42016,0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,22,23,24,25,26,27,28,30;F0EA45BB385AA6818023354458EC5024 640 18.0-70.0 mm f/3.5-4.5 NIKON CORPORATION NIKON D70s 3008 2000 2 2400000/10000 2400000/10000 2 1 256,257,258,259,262,274,277,284,530,531,282,283,296,301,318,319,529,532,306,270,271,272,305,315,33432;A79E433B96AED93FC6EB498198DCD99E 8 8 8 Ver.1.00 2012-02-10T17:04:26-05:00 2005-07-06T22:20:20-04:00 2012-02-10T17:04:26-05:00 image/jpeg 3 Adobe RGB (1998) xmp.iid:D0C54E323354E111885FECED0D41C93E xmp.did:CFC54E323354E111885FECED0D41C93E C      C  ""   * E!1AQaq"2#BRbr3$4SC5!1AQaq"2Br3Rb ?G;hs'2Z%z itp.@uQ<o=턒 Z{ן ~(˟1I4;Xɐ!lF> `ӟn8x w.ٮn Baw~qкwҔo^ܣ k\wrD{ FVso糳p&ME>R;r F>=c IbEogAﻋ[2PO_Fƙ@r߱n eKS<\">_sNPa߯" 6lAct`!r9rl,B]Fl (Ifu6l8G4'?BFi4{Oebܾ@`;@ܺ^_-2gNޚ3slh6{dj]lai"ҊcuLy]}0NIc߱ؤ^805۬c0YOf-CI,`BwMnX8H+N`&t倓'C3uđHIՁÅ[Ҥ$̠]ɒ?HArs`uxL,י|2M2*H~[0@#w!;ݞ=0 m)H뉔k+eixDy[ 7ӥ2&R z>^=ɨ_#&"-zuM c{c*sa ,Im7L9LD)a:oc$Huf$&S-Ki#U"X?@$m2}gۖ`$6=h"z<{,nz魱2>[쓦}1ol!TkrmM&*E[﨟Ym]?fvה){H"4? b2"~lHuCf{B 'nplEW &`o1I1_w&!& 7S͌y0=/ASpa0oYb A˔2w f[]Z0;ݿ:l#o) z{j$krݧ!pGS$;>< ׺I y nov"Z@{`%Gv@P_oD)v?^guD8f7{GԀ ^7| wk ,Rg-}ݾG_\WƂ,}9` s޾qĂ% -]ۧ| @H}ynFBſ=}#X9``.$mϮ4 H{C 0Yoayf턤9H oK錐Cb,Jۿ,KPihU!N7 Ha-&AgNlib0D[M9-r.~b w[ }7?%.@{/ NS~{ 0ws`)!5?վ}6 eg׵B2@)byol]-DNͿOP" @- ad^@߫z8̐K7㧬B3pؾ`7Gi$VOy{8?+a&OUi>2ꐩ ~ylDL0?XӜ(`RG,`+s߾^zXaC{ZqH3i}4c- NV; 1 XNktt  ol2DR@c| k̴]S۞]9tmI``KvKD!o|$* dr;<"(ꛍ"d{m#Kht؇n{))$}v9vnxdoK7\2 `n=}u_hCŁӛ&ȊtzbJ}:O_PXOw!K7Z$Eۙ؁L nX!.]m}z]q)Io,5e\=[?D4io|Ff9p 6bA/_ק+#LB=[{vmq),O7$T3v>N$,roݾ(eޘP`7$~h,c^G @}32h*I6L Or߶#!M"tmϱi{RPH1iKZo2)SLO>s1E1G_,&`pM#믽cŴE~θ@ KYl=}GBKm;PCey! k|J O A)6ާNbW7'G!)rO-ۦ"7ɽto RmS۰DM2=wkCCZR@JsH? .|RB Mb"l>;DbdZa&Ԟo< s̓ Z2-ǯf?l@(C7!'ÆB|2 lDV {i29ԵN@ >4ĀV!9bd)@};<iy{n:zE&qAQ$07bo4BbA,yR3zfܱ>'C%$o{ᐁIߡDe(n{~  {~?LRC>ǭՆ!,pH 0qIt޼Yix|hFiUzv>2^lӾafF~3Ltoߘp%0c6ݯi!#abc?^CV!$nS1|&H|@\)vmrvR o[!Ș5$3\m@ hH6or1IL~- N"Kbe7GCڟ뀂J` óm6 J`[w}`r7|D0qm뀆JAۦ"Rdמ1&C<鱮"M[ A}=mM 2Sn[S ӿLL>ۖ ROa s-w^ɡy ץx|B[񀃕届H9\xB5ﵛ!owF ![RS7,8".R`[64 Z2 \{8dd4l$ ~lݰ@P︞|A9oo{[Bʠu,,n}2:넅!L@M4}7뿮"@0"6}}N!7{rHs˸14#5Z5{^,2h߾ R܉ﮛBGib 4C>ۍ0JK9߽qH~C}/lPES Y9s@o}g^XMMI%mpVBKom1*1B0lֶhr>p1ġ`*Ql93`F:CxdK*(s9.^ UțS1 ?}10,g<ȿlDM >Q_ e廌,Dmߩ~z&R".9R ` eߞ& oz1!rbwD |&0)MOx"so˻6l*a;]} -D'eW-b@df$CAwޑ$ac~pَ-$Comlv&toL`d:|˶"(f羺$>F翗b8%ؤܦq#M5QȈbR?I$HoM dwϻ){F2>['ƒ R{؀qL>lRC%$oQC}>klB2Rߠm=!,=": /lD/- 爈A؄)LIlDN&n@!"6K]ߛ" dnD!F{( |bfQ(X6b"4Np A12uޛ8r *w8d7~CsJ}W 8_d[}H aۿ"ڋum=L.TC؈$F!}[ ,c;5<@-nO/0@ ߗqtƤBC{_H8 ^F<r]~ؤΏ!|Px32>o_" 7cb!Ht;/>lt vˆ;О]L!BIO9s" b{DZB/F@0SBHE%AbICs 򨋼9&LӨ6`Bz tԍI-{Ip[imlt28%25;Μ2@bFs!{}BS}"τn~3"g1 T~ݚA~xi#M oY(LZw/]"e}ph6 p}>zK[ Wh mחV~Y9pgs]0-iygrDK]za@O$QzX40ob m~|FGKGa|2Vs#Cy{k R;wbxۯ>C&Aސq1#MN<2ivݰ G> 퀆 )3]",}g(",!G,Ϳ퀆HdsCenm';C4}w!oCd&mFB0'oayoX F -kBL|}";Ho֍}19ocM!nDfΞ؈I_QbL_}F_ AzNnp&RcD)Lw@)xC@.nJ vP2<$waWo~0!,-k}g8H-`HGHR"b Bzٟ8@Vw]',d` ~~ }gCƛ'wb6| Bs-f;b e / .MB! .wb!{ Ǭ @)hזk27cnqsEvXBxܐр(-}?i/O &W~{Nqd^t -!k Ui RXfEiW2\0 D@, GH45f o_`\DjT;n]=200bwA! {ӕ4A?-=C)\C=2Do}>˧)}_ N/1I sƑl Dr4(^:^oۓ@K$C s#Fk fm)0 ٙDȗgii ;>>$Ǟ|D:Rw6bؙ@sC$K߳2,ivqh0>#G- 3mޘ`#}g!W\@: 끀?} ;oF#]qo{iA爠@/_z`!T E$l BKӧnG KhJͩ@}b"Po#KIaq'jZrK3 j>W@lΒ٨mN*I5H)oGK:KPD R3X;!+Ø9=_q -Xع>h?: ݘ4I `7ӻ?W8$GgGN"' C{|( -&a]5T߬9( EHAi^ wB1W.<ǯL0VQ ]7| לxJ@S>A.51N\a <C|@C|1B7ܷ-/ g 7a0%^clCg{"2_w8 ;\?iv?&d[1b5H<"0s<2C$  FoɃ ۜ}1C|]qI FoFHݹ"!=ۦKs c{cbH` +|"2C߻3}FJu)( E;⒀6o)6W6c C_${8M-1 24k t9 b#{b&N[>dF1;K>؈Bkow{ض5"F}8 7#@iF|RB1{|D!K4!}`,QԈG9 !U3~?LHH_ţ{w2K o16 ۿl,`om^ܟ@+NZ>N&@*v&A{HYӦ}ȁE / @lfH z4"}B1Zxާo|2eR^~؄ IBby `3ێJy@:wyC&x BS(]bաLIvKX9w&'01^dFqyˆbDC0oM"IPA0h4@>a2`y78ɠZ禤 r9SvoӞ(,XyZ'BZD u!o!7?xHykooRZulD0KO$+ nGߖ",@`ylb!; C8km]H{%~RkG/"97۶!S{PL~@qMSD"ݹb"1e,@Ozz6/DBo{[ I}Hn AwvB߯]  Ad!{"co8HU$#{8j߶";@ n0k{ e*/B)߮&G]1/HﱆHΛM4B_]A|24u~ψ(]P)!I Iko| ݾ,VS&Ln7Zg g=lM /C|RPYa^x@H'g~%7؞'?z@|OaZRi 2p@!ǘ0%9t>*uVVD1̒93SZ N1hЧGA~aI,8$IAH Ku6)%@܈^/#.H(gXr51G3Pp(tBZ@v”J5ـ"XkJJMB1Љ4.LݰW!O h Kjz |TI* $  q):c6.&޸&J 8b8v]5$exc 8/R;~Ş*j/.kzFRFۜń8ݷ߻zb|:H]#!sg$Bd };9t造  9$q6؄>Ż6`,׾FK_ӯx 8O9bfuy":603!:ԼEm8`,7[ٰt "~8ʚ7DpXL2t7뿓HnLC̶ oF"،ӽM SB9!1;b4[ P |lDDL!7 ˈi]"6"#A}&+ i"C鈈RFPLo~RB{& "wIM2]TorX8-JZTb8H,O=&Co}EM=/֒o=o$r&|Bﻛ$>fut߻plls˜b7} r ˰)A˯s2-~_0*nrnH. ~`wɞ^-HN,g϶!!6E=կBa[b&8H$;o>")ׯ-1'Sq'>K}`-!2[~J #|R4JFb&JMvb:S S\@2q8pHup.Ig!1ͻ3ӠTUM 0, 4A1:8IB9i"Აtѣ#J*HG˖܃ŠZX$0zoGI5`(HyyƐ-90$X|D\D=zaLX;`a#N}[,Rh`=XC`8I#|`"ndFwv!|>v0=sM[%KM054vm8Cws !}_ i}o_K׾"#oQbP;o>ݾX$7 !MτbR~\R02R񑁺q>؈`oKo{`NS PCXlC!lB"SC#eq߮"] >A@ˀRp2b"z}qk@"ea"!KioERA ] N2_{zb}w8 w"!K_{ (+H#I\ cw( I)`R7kn0r mRӽ[+MXI,>@1'OvR\D(D@ CoqND72E [~؄O/gϦ+R5OmXo*X:~}}>W`#5֬3*iy2rA%P@cdĖ8MxsˢFԒQa)vB+/2Tej?Oi|p g?2* s QesLN,2r|\Pj!KpC^]0b4Q^R%(  b`Ry(M D)a0*ׇ$!I3*RY?Ig6WI2j%IyD\(Qsspv_!aC5#FC4" oqtosr;CA>{鈆4N!D!qB#BXb"a4}><$B7DL"_{t{@)8>؈R} F CC#ClB \{q 6؊,F!2{zö O]qCL o瀠}wB8n1g|D+61 H!,1 `}5p {DVa?swH[YZ0߷ (c{{b#G|` dwI>n)fN/W_QJHgbG%Q}署)UNfAQa8]B^%/ƎH_~g*v oljwIS8q*r,9F%,) r%U'*  6H5F4TZT&=CL:HDfw=Xw\1%w`ALPR3\4cHɝkS`ҫus:clYd.X1`X`x4t(s!䄼r24-!ԃƒ'`RJs'gdr5U o&?0a !O<ҔkX? X%@0 J`k1~IΧ*'PmX;J =0$33cif9ܞ |qPTH2s.D$KA3|jys@_߹c&q- 7if1 Q/_ؐ$4_|E`﷥pH,uz?9N^q1m#$=篧LI%~!,\۷^\H˼NaH|7؄} 2oRE cE>dZѷ!1oh@0G<(!Clk20FJqO,D0H}(ĈdlB0F"F !> @倠lF"&\DB1q2e >!F "!J9b d1 >XqlDLE{"`o{ \B/lDS~Mlb AC#G=$lDL6~xw)ЋQ@RuߧqYf!M3b[H Iカ"2刊Ԗw누Pߧ/爄!aחEJK!+L/Ԧ[ ,2B`)t6鑶rqjMU)9p)#b@buNQ;|ʯk17$# ͱ⯒=43~5u>u,T²8V)(IUsp:82r+u%,{=ߡmH%shH+eA') xZH$q+ȦM02v2&$69|)@%K݉!lLFRB)Q!DUyql H{C\;4L_LFj)A$ 9,\alr*#献3Z HQǝø:Et<$)!"lsU FS?vI $s:`H2Xve+OyeJ cMM3T|b))f@bz *\(`"*%^d7'vyݱəx-!&-<9XC8~x2%Rb|!.eb^ h M38`2CƷ޿%/% n:;.HBJ3~^4jކ1H)N0PXi\RPZOM&OG{G%&pն2fJ!v}"CvdJ4di،ɒ끊4`FC#8ll9p~0rrDˈA&V@R0 q12b"L_ ."' ""!&!A"!@눅 m&bӝs\mmb)qE"'-AψPw7yz]z2)Omq3k`0INY8ocZZ}~AHIuqY ݱ.3 E!UBr 0ŔaKe xp.q~/K2ANG:8i k~snMPIZ.l)iaruNI]GᄀU|]E򨎭:zμ;AP $Psl5aNQ%HI,X|K1 O̚)x knI HIU IH&c^yI w):A%n#L2E5ط@hM% o~l ))馛錶)ﶱ#LoJH4Ơt8S]"-)"{n؂ QOSmBX(ˈ&H({눂)40A!|,R oDtӾ)5$X)}pI )`}1I )`lR$8H? E,RA~a"|<@(DXD {@4q BXJF ND02<鄀Q 1AR RDRp4"6w(|B #{ޘ\}lb!J B!q>lD!}?!Ju3H8BBoLD"|B"/"*)7wߗ%u&/3O&\Yt *1RtyRJSIuBD36'()hle4e TU[)'1땎[Y Aظʜp8dX+-2b-kqaR  4\ܑRZY/eƞRkZ qm!!K,yGRK߶)2EdPLٛc2 R&L-k4)8R2"ꪧ %,P[bTz*&%#̐A{k9 HBI H$e5?XU R3Ad'6̑։ g%$^gxIcON]tZe@Y*Ju9$HsK9e1L v(+% @Ѕ>  k4E]ʜ11&C`?~g˴JRJ[:'Ēė*%TVQ(* RRKwXgnOs&i1O,2`+ <ؐ  c2a|R)p@pQf@'F>A#էԤ(H)Yst90Xs{ӽ6{~Y !ji!r:RPhJ xdYz;nÐy猲-@}z}rP#~OpIip|iE06PX8v@‡M)(-Mr!N)"01H|p@~LR2h% a,EH ltDuQ% 8) 8HqHR)6!8(ᒁO~|2M'lDO0Ȋib |<$R12B)" e@!:b b=1lD9b F!"ш){87 H[{}1lE:! (fBin؈R"2K?DVPoB)I:oO|DV9}Ƙ&*>،D~h_‚RI%1bK^]ӥ'*+ME$Ś䫫\P^kަ*PQdku0y\; Nk|$ ~v/b? Xi2Ue~9^#]g` ʞa9S2XQi)r ^-sIhH2`rK\Xc8ȩZE"Fitǰ.XYEgwv tK(3i,_;8Ǒl9fH%*!̿a79 ɘhbɼ {0y#V|t`P,O;,9X3`0C~c%^_>y+HSPRg̀.vv.S7 ĩ#HQ) AVd)b ,F~?tlS]JD(M0 `\ur`JPSQWR*Ht-eT锣2ݘ6U^Ff Z`䩀 Ʋo\}wUi@.U'P\#1SaG_a";cg)7錱7S3"o@j7Ed >,‚da)! CB0 xp# ? Pl"G0ᰔH(ba 8aE~"'AX"HaJ08!$)S\qb)\$1 1` Bbdb e&'@4k tD8,D)t%jhCK #om1`+U6wHT-D48/QG)o)+(o?"?=H;$ P%c̮fJ18_I$/,,dl v]VT?*'1كzi&>%u8 K'P㛂VxKJT\%Y 79SL7%rt*SU0 ೏ \k3LjĤR r!@<0Ȯ4PA-o]T 0Ƥҵ$qq2\m͝5~){G=MITE&@+6&-vxWѦTg Z]w'H/BCOMriS{4STRF&NcnOiiESÃHhbb |hq>#|!#mt I_\2B!$9A%5Tt7ҹ_K]./BkS%&r) 9) kbﱛ@ZT\  1S@y'9Q: Eӷ =e 馪?*!dAb=@#S+'uVw^Aŋ>4O F>()DɈ 1@&\HSO i! 1HUS:!M< E4 ,DOE4 ixwSMjB@ X `/VR Cps4|JSvwnA =N"U /,;jX.J[*lέ IK0nRI!%`99i2wbDf/,*i44Ry`nqS6 $I30;y>3S)AYȯ Q}p D i lJi%J>f,z#Q1islQ&.ewl{:P W.ցɴA# jBݙ]m^Iyv'dT_(ʝGpC vS$$ \;lYGHIq)y]F9DɻR8ÕR2'*Qr^8m?*(u E䶍j߆ WA=jA j sViJB)$,C H%y">Hε8@Qg7S$\1RՓ*EA*@))?t.5;d0MJ"B@k( IHƓ[1h.YIEFbm/%G',1b 'S$S2x@iVrn-~P|Lw̤Z)0l(wTS9)Va 3i7GZ .8S*Iʲce)3O?æxDs9i$ EtgnmwkdMH w1@IfM5D8 4ӣ$30+)8SLa|<0f@ib|,0R QMIh0Spx %|5J4 LRFUrR7)Ů,bҶV4';tS7J~tQZ."*GJsg1RULitP!~I'w-}tq)ˁmy~q4r(T J`g,|cκ(6I< |S?Bpʬ+:Y'2B@QMӽrylVJZxq) 5 ʐV1:Y6HM,REwboWv}MTTj :8];C!$z႐,PRO I𰔀B<0RAGI $!KVx >BE4ImtB*_ @>:b-T (|EB0ꉶTю^rOi3ԭM7PEi]=U5Rxvc`JP@,@u0:9E_B{&.XOA.mS?Vw3鑧|d*_̢kgd6eۜt%2d2\}CdNѤ prpۛCoU{(yRtH7]^}Y,OPq~ +'w sFsW>YT*%? M@M5jJi+y ?>ۻiKJR5*KV^~5{s2P.2ʚ+MTUWE0SQUQP9KBT5N*ov^Yݴ`խxK-f^Yth| zU:ʡYsRMER@G+V^Pj (SQ3e]iҿyJ Ͳnw/1p"C)4Ԫi'jJR‰O*4ZS%{;s0s}-~k=_\M: E r)K K*^64ۚN' % 7kG&WF:4?nBJRرSRyH 7)ޖli,ϩÿU] Ut XS!򀢶|BL+9k}b1snzjJh9JJswK8uctk)%Z Ǔxe페Y*3\('}c;t-./ 6>>?NSnEʣ7gLi/RJd-}?ks7ABX%*pϟ+4UW/ ibVޑw{ K9ajIP])5oW [ŔjpHrKwv#5W#+? Z)-n|ݜ*O?3RG\7|IM56F!1`irwqsP٦~|Q8̈l|9$30 U|$JQ %-q h4)hP%8J^mâ! Lt5]Xu_YjS7sSW~iz/B HNO S}f 'W'>N IT.;$r\ÕSݧLXVyZ#,|_ 4,er2hb_ETBMɨQ۝95*u9qi >@BI)xǙ\5x8nin[gcЛ|N8nOliP*oA #U,8N2:j/vtϦxJRsra 8җ(븞QRʒRǡ㋪"EqM2J{ Ώws0ݭw^u<)כs۱?i[vG&YcA@7Vvjo%6veEX3ll{Uj(Nj MS{/0Nc ] F;d-*>o^!l+!#U H-,bF2 Sm˜n4bҪHZVBZA>[陒X$"7t=1:w(5xQuk" '@jq\1Z8K혍z?GXg1TKnۼꑖKLJ>灂f3SjYJ`I HR9M+(knHR)+)PQ#9E%nG( RR|pXY=*{Ϊo:J * C+,`r{=/mԫM5 z@bD;YƊsV@ R1fJb[V4(I`L4Q%ؙ[}ueUA TYܐN܈nTN,*PL*e̕$S )#+OI9=S 8j]ԺO]?Zni"JN(J`M03.W-q?FiҔ˗RI%48RU4rJM9b)i'껺u6ꪗ *\*i2 Ke̐]%)\/ҺhiUUBUKQ.nU録KjRrv*fɤhO_MzjGNr@  %E-, <_UtԺMsMLՔZ&)Ώ%dޔh{'n T,EH kkRjRY4畢:ٴ:6xJ;5}u: i ë`30YUlU1cNbo) ɵxmˍ+gq.%ˉw%⿮T'C*jV-NY|Z)髉M7UF%+m_O J|ڝ^񺿳nC%4 lIJRJ֦RB#++"𪓏ۡg*u+QSW71{sS)|ZQ9ܩA6!+lTs''~R*Cj5SJO9;xԹrGO.% Mt >D$(Hpc\sἧ,fq|*fsWθmTSSR)& J%i^bK $PSSc 96(iˆs%t\Zj4)r<Ԣ乂!6`-xB¢!,'|8á&ח'\A]WJRKeCrHªm-Lm?m)y1Ծ,*p);JsDR /ֲ(_Nin{~/?կPBSX'T)&2ԑNsIOn yXZ*)k+LYB\5]nS0nNMS|tUHP2K0Pf 48\I8'>w9痢_ᗍxD58`CU%< sUO/(RjT.Y$7jY JH2 9@boTbsdܶ7qvKI/Ex8. *uT,Qα~ZpJ*"S6m9Ͼ^QkNTCU1-vԢ-u<[H9y.j!Tʨ.dS, y30e03&<-*ŀ8kӈ^\ݿ(5Po!3!w njR^mJߌxUae̐f̈́\$|5Sz[- S\(oO5)= LsF3ie=~y=:r޷:t?^!FM@)le\8XVjWɣ!eN|q.KF:j]?1=L*U.W̫S\BM- .OL9;\-3Z Q Aԑb"d_oj;Ԝ'B?*wycхiʇis-&=_WWäqk8O_]UjT˦2(ftـ%`_I;]'E<3~,j֨U{a1>ww|ą .Fqʤ|Eyiؼj_Ǹ!u Ir p)S6"U1k"▢PhHa7L#5/OđP#*KHTL ?o4t9>%x58TRPr9I Pe,XNS׋eiQ СDu%NSͣVuo 8#3MX&vԷ>LmV$I]3k&4kg q_9ƿPqN]N`uk` :bt4IE* 6;&RH#n548\uDФ P H&Iaלbn \B d!9\;0u'JDfKQO=Vls,E*[n("ڼA( ZʲH%Q4T6g,0jxR@J>)+Ȇd$-D CsJgT.WI\:֠U8b/sH*BHwzGTVNh<8Z+Fa$fK;%1rXcªg =tpe% iSqQYR#3\uj'vE@,AK4tzzQ-Ĥ jvh,?"Ap\Z']t ,S9MD[l32'V6 [fQK:ʕɻpJ K2$蜩2x4CS*$8>R@@j@ @D]vq|) ХK{ƭ2oܐm5.B 2'餃2'&IK Ou@X's|FI)=,mEJnLE2(P+& gQIBuS(킚 / UDԡQ2U2\Ta&ɭW@ N\9FTrS0*3=?xpUU% r$-mϘ0M9rb~1G)Zlp)  W52h!UK%(gnN͍~,IU[)GPAKyUAҔx_\YР(y@pK 0yQnV59f2r>a%qG _US^DRlĖp^ό+TQP\YSȐ29`٠y¸`'3Mǧ5,Ws;{ rO|͝Q~5*I+4Ҥ˓%$1GarOX^9iYd7%|U>fI7F{>8A,uD`"D|*ǿxZk 6$z1;?UQh .\?!0K85'g 8)yqŦrjc&aA"SM.XL6lk6e'Gx qsKC3ujU.s枾̴<׉qY^i*`a ܏\j<:Ԝo@g ra?Q܁sl :i~U *$ߠp̀B1x2uDR$/HRP`bp YN83Z+*Y$*$+*) zdmTכz6UHt8 1Y hV[9E>f#oc D>}(+ܨL2f<;NHA]?(Ɠ3 $;lC&)) m:_c"᯾{ ı} L#"<"U4ҪiTلVib,DcÚ=q+RMbaIAG_Ei"+,A"]cvєkUjT:T 'NdXqQI;5AR#2$4;Aa儥cIqeAn( Ud5bӔJgxwíвU7h@.j101phURΊdUUėE4$"nJRBRًe!v hȄ.ZibIlYI17qpp|oڑ,S&\)S@3ge &EyP_ X7[_zԧ<7K)E79Tjs$$+0H*$to|=!GHy52aGy 4g'A nפֿ;Ss7~"1B Y^bT ?5e;u6檑v9o:$;kpC;q#x (FRݚCkb>5W-a΢K0:YIիY5Tfc/[*Jؒ\=k6{ s xyه!J B9~AબeTh",&&Z=~U|shAԝS*11_Wm)m8rڲq14yisXW QUx0<A$ f 9HqrM0X.iMhmLc_?ܺ5Jaϡg M㌞ ?U}"=g\k@`iwؠ%y7=0LURz;l, RCT$L& hJyy/sp )|ΦtѭHB5GtԞ|7OⸯRdxzAM`@*) QPQ@d OO[)֕t´p:Y*n%/:G"ĪzRÌb R̤jyrIn~0~Eu+PPVJst0d.t8˖Ps(qDRJKR`jכ=âT䃖I!B2@) *dh_pP*K2BU%@T]7$€$ea~5\_Z|=@a, BRSp  uTBUP:1?،DG*E2N9M+M@Sy}5ix^bU}CzMܒIA1=o'QJN`T`- . 1|۬RVHI` !l?(-ZjRkaղg' 滼 ,XV#g'L(jBiGrnG.ti <:Jr#w|m#/z`:A_9eL9bv-|G(MOWjuIh虖/ \uwk1URDpk'0Pmsj.>{9w:G|RT;۞2΋%`]tJ>-"1ΙxO?lxjaU1$m q٥5Y_S}>f/^qRdʢ@ب~R,;1'=wZ'7䭒jb %Y%z`D ?rg2U•y Tgz>\|ʵIJZsq -,T 7Zj]|vrGT痉0i $~v7?9)C$?- ^$ਕ͜oS4FTXbT H`.IsѥP*:N_p%|UOSV֋+ò՛:kr[06=yr:`MU9^JXs SÔ>2r%AÃ'FX.|Wf:Q0 )9_Mh \QוxdBV]RNg߰1p-)T5p$xwM)3rHSB&:<'x.Û줛TU<+SE[;   /rAQs9pb|:UM{e^J)*Y+,tțG߈ШU!MI_ i%l.$럍M5a@qUtMjRʟ7ܨ;4Z鞾pXL}-0R( (F kb Ŋc[e=8dRC?f6'X3 :;s[%:jWLl=wA}K i ٢fR i)JuWx׆[^ړPk@QMBPU$v)2:UBR$ -F1d J\HQ 5`1ipNF$d]1NPi0,gmI&FA-HjeL2}f:Ԋ$*k^foѮ=Frh {m2=\ :>@Q4c>caܙIt%$Yp'f{傪ET}O᪪ M2 %"H%H)J(h+˻S Omn[wwKKGQT PKQ)pBP )Hmһze}iW SL`v K) !%}7thӿ ͬ= D?QJ]Jp0 nD9-*;9>*V(\,ϦQ~CZe #tK&t&'eT|>~uxoJT |˕9 ĆB^ 1 Bhq]4JFC Vx2l^)4K5o[<{O\4qʪZ=ZK )0G*=hk7I3p[/nRS/>E 3< ?%pP %%I[+|`<$ʅR>#r-$*a:$eg0 i,O*~*M?R',qf 3bZ罭lX%$-43qHR5{L; LϾ~#ⴣM߫4#'Ĵ=4z,%s:.3[x1'j$_g?~1V iRc.$ruZJ߾1 %0K^|KF>.EЁ@仑Ḫe>%px#1#3EIƪΗ~3<=yзe>s FŬ7O>8 ̵Td!͎:pەd^.?-ݳϬ߷^\#5p^ @J3\s[ƩSkQݢώ5(;TR7H@Xp `pԋe\7JRr%?w7]Q8 .I$ yc)e fQ _q*{mҮz{Dޔr4x%*]4@v0fX>YJ_iZ,PH926EP|=O/5dYZȞl;r oX: ƫk,@u 8G^;xҥY[Yx$̒x]}>#z-GSB9wpHIS1ۧSE** PXQXIP\0qM7S5TYe0Zbň@VbG9;_~}6N"!IS̹+WD!% wbT-YUHr CHhqrZ.g96kRV `` (6 W7£8cKM9jM9*Z5 I rJ[8GVeBX^@B]4aG RίZ5gb2@`r)9yX0qš8u1 GBG4UP2WTZc`B$Uds?Q*3M:=bTɒgS9QK6Ԩš@'GSfTX%1 ¹ٍ4^R΄0T,b 3c6|tHɩ$z@\8*ajBIEe|(ZK;7IlX,hxזνoI 7)` ĂEffC!EN ("JgISXQFWu*]:)̸wm>#;}NZ"ěr'7;c T;a*tM4 aJ) Ei2cЁ6]{3'&QYLO s65$UU!Nѣ~f[R&}͍eq/bɡE"%,X,Cs:EcׂF)2dH82`.3c ]PF q̊ b^`τ,9zc b `O[02vH0[)ARva]\<6-:&P  hh*=W,fJTX$u W e y:#I^r|c VԽbIb2pXL3y-U|m_H@UUDC[]):UAi p'&r 0XaԗoU-R.^oq )]$bon\¸N!5pH3qrqS4Y~"(g\ cO4UjND)MP pX@H ['Х,~PMN\,m&ݭٞP+圀2K%0[3˸YŚp)J_ekDjCUE2Ü9IeݹE:# HtM`2gquJ ]$X  @٠0[Hr3W)!6YɏP\r1QDL!4"X;FT3ŝʉ{Io|s6<"k( RU5E qDžN_? r 0;)&H ꣊,0AT*t@ ,(ʠ +ǹG#8JP%@wH\ %{85¿۩ƪIOPC{sp 9qԭ/Ka -1  RDtUWCT4giF ^$NL(:H̠n0(wVX8Jbg/1̕0wVd-rn7nu MUx1T% Q TFPNu9$gu]E>жه(P,:@[G U\TQ 5Y3wS&k-t01$)-m`co/aEZ0T L u6Iu0/ɶfZ2BV\jB)*- 6h:ߓQի*IJFeI,"O0@,t2xuլrS>ZhIIg1w:4b[I r'>XMa覩8ԊXeө׹gkXDEU~Wc; hPTK|.&9 5 Da2Msfg$8~T  _@}Xyu,pa3=/Qc.lYAl@EP|ϸr{01H?a/~DB*INPӭK4+yo[Whwhr1HjG}F&i|@Cu[pĬjBo}ZM06 $/vяyyQ$8GwSw@'0dכ@0@:ra'M$ J5 7;5TAyk]lBд0:Aqݵr "*+*&fF8E( cL`E,D7w" e5@S$7FB_03٠$@"cr[p1α \[I1t3nZ- Z?'\\HUXMg}/9>#&pYEJARJAg +K eDKTߟtm0P !'Gaȋr7IÀn Φ+`ukc"RFg%ɐ1,6F::!Ԁza y>IJx R LFKJCXʧ%N4!RuMCd3CeàSJ0Ffđ&^iYA8.*+wC%  pCz y=,fAL邠]Τ1k79*5BXG9ϫqk *ߙW2{dA9$MKmYFjg><ـR3*ć {UK */df!;rh&ž'[*R24PIkATOਚ%E0B<(*?.LqݳQzT*D'38kPF3VZ`bXhslGM\P_ (fi lb'zlq!|H*t8*`I!w=-UD3eг>FfluǪu$JUO!Jy9ي8|'5JPb@w2 $i›lp^"!.M^3.*3K#5M[sw gh6i`7xZ~'U8iCJma崸]&7I*L-tAn>hJctg<]=iAųR(H|ØJ96i1\((f&ĸc'w⿸29H:87 IYV8V+M* ܒ`R䌶ٰ&V2lI(X.` 380l-"C3fđr=M !jԦ,*Tt r#Q|J-4)rʕ_X` ^B4$!Ԩ).bs,uq>%  !B3` (HCr 8Z+)+5bAgv#I{nӛ*()Lx:HOs7S;^N)/"RЁ#.b3 y驺rSQZA4r62  oduRVo#/E%%=4~s>&Sx=  WJ@QX/IRBH22n5I|iNp(2 `!f!J ǚ~fFeREǗ2YFRTH\)ݿϓjQeQ?50 R&jOwm3f_pT:l3ŋ?*]S+F=Tx| %,I*]JM) yNeb_O'Q*XQ`A400=t#UjSIUD)FDe2•1uy$UG6*xz암 Rɒ0fC6h32E-Dt=i;< NUQ!'ͫw@C2hh5)|T2bwO8QΣs.{71VT<ܻ a,JKe-udPT^\FY }= e@(]q1AUL6YqшĔҢn<#FY܈pp"ݙ7@*cP ͠TI8DH|@Q VeXmեs>bɔ )BB Mo&$xJg)wX_%PqΑG+UhYXҕpe.ULb5Hǘfzjc̒噀`{X(7r ݏ,HFyw:t>mtIh Bi^+82QI;[(,6,JYE6<6M$1Am!Ϸ#(.YNH-fq HU& >Rf9v'[glB\X#g`qcVs!ť{YȒT2-.)(n6nN7Bg`XZLhCKjv<$RL۞-mrщ$^S*0a)I,th`}ό* ^5n}:sLH X Mtk6l4ڵlpIHMaKVY@ז `TKw`N]g`%`g/?vX ^0 L7KPLRLISK0$~ 0%\Qw )̸H-myX os$Z_i Ӭvs t f<=)D !i,lX9P9k,Fj@$ 7'@;v% GQv$@fbρNƏ8X5룹` XTQCEs']O(ljPUD$ >LURv=SA , "e krOMAA")ؗ9yGsɠX@yNT'r9|FgwgvhMKBJXb f$ETf 78 H|>4++̒ hTl[*r:G7H߆RXJJT~b"ce%l>"8n6CUVC2R%PINP|(Q]Tih 9,,2JȌrŴ;#S3Wy8*!AyƓiW<:T6akE?N7;Vْ.गr(E@VKe K`c5pT+)2\)YHcϛ_zWBrc/$Xtْ:h)Zh9vHM<WEH̬۩ c c:+CF~E2PD/]Y@PD j8Z⒑N%- .\W< ?U(TEd7&2[ՂreU\/g8~ .QȲGJ*T`1 .oq KG5uԔRTX)H@̐@jc$CCMhBxje9R2aD9pxTR!4*8 *%C,%^S|&q9c>ET˒n 8p r[VD"R)ȸ/v/8 [9Q59F$1GBi<Ĩ49aܘ`05\*K>h>ah=HӍu]j4te2\0:KO$ԖRKUJ9rT1ܚsg3)rğp9;4S(%Ir,\{S.5:u*)b\frTrpFng|iJR3C0ų'28쩎}I'¤ :9%򛗱I&o3ЦjMN`0iQ&\[K9ԓKW>MG[v`%º (.PX ͏vt+%uRAAhqۧ?p>&E2A a®Wni= )BIɒs$)RBIW^tTWKI6Q48lwF |"]It#:lRC`]4eʢC%')rt.d MT8%u>IpC1 a jWK-3TsCRȵ$(jKyY/[6 Ʉ/{l=i%FHaA=4i~}!_&} &sy{A^߳abMscQ!Fuxguzi$nmvtbm$Ƥ s}G r Amˇ׽ċľ OAb` I Y%# B$$ Iyfh9p^4l2K3rjA. xpb$"3pbBT Šv{ 2Q47-h_@AiTY'6 M+ݰ.ɘ`%ȧbfI,A4*L62HxNњXA$i`.݄ON@f@.Hoԁ645()ى Cv%55,;?cp,0e@yj?Ph '\79ۓM `)N-݇'2\bE*\76.=D'bu3!vkxL4SRd>G6\.PM"f⥽Bf (IRyh h>C α7bfq.ZddzX*pAfIU R܅Cp:;23RO43iE6 jZj&锥YԜ%dAC)BԨNCׂKWUS)RD6R8bZ>&_y5/SÒGC)@XIRي?EUnN\,*^qJM՝Ւ=>  xZUP!G2%dR]+$8θr5nmw=')~WcJiƚBI ,)஌=9fΒDF|̚_ AJM%ZI 8Ipd܇'(Ǿf+ I)`hw!qWL&_P$ 7Pe+#ݼ -U( QňG~-P >.6(PTqU sQ),:8>hH R1*ۅr/;Sj-4PpRBI9ʜ( ڕK~`Q*NRK:i$^(U'{eϟ3*ǜ@uOR`H23 8*e8EJtW!TrJ2ܐskח7U/.^ ZS JplT uvh8Jg@ JshH)ET{2|>YkEFΥ)!zko/R2WJ<3I|! $Лw9 |GUAD*,pf#Me5_: @} al#HZt aR̆d 2SvttR*C)/{j*TpR9v{6I0s~|2*h^`N-nl\ z&$Y܅E2`FiR m0~M#a3lűH`̑p(0ਆ>טvB/yz_F2Ts5Ayv0^D"U6tiDPdKLH6pZb@fBK^I7x%"@H.y\#H0dZ(~zt7l,e[_,.8fe@ lddǹ*0 c؎p硒W2¥?VR0P9TI$u²* C:KBIT6ڡՒw}uVvsSR Hvbmb"އtWQyv',\i@ (o,4M"`PK l(+S864a-Hg`}Ycly%2)p.G4\/*FU~39{$MVR*٬\sp/q8դ c9 pI9nF2L?D1Y\G7R1d@M_%"fJdU( oxMzD,:2 5L9 EeQH)`1槂[K$]4HjJVj)!II.rI%0wK ERI_: ٥LI\BJ*x!kO%g0JXx@yX3lR˸*JL)H|F=0{u8~*Sej<{9./]fd.m#-m^ "MQLf9#ԛ Fe2*QM&`A0ZXKs?*ԣHqR>2Aݠ-ͦ<ԯ+_;M4k5Q T.a Qgzo!L`</0t#xTZ~L:CUU*F*4 A"Y[[J_9dŵe|tP鿰Vm/䄥xw%UcZHbׇSjjtRMEC+wz}}Jrx+U4((b$$-p.8pz<*( YçShzz/+$4J 8َWsBtz^!_̔B@f8p3JHJJA ROCz}s9cTi/9r (B@sPsUo.oׇti;iVGdUz`!!9K-%D%A*dJR sgӟ'm]QES+&PRTQH))QSҞj>NE~Vxب;s3$Дz^u;ȓ8'Ve*X 6с!ܯz!%J<=PAt"\OB,u0ќR()H̢v 蜑𚪧EMPk҄$aס UY ̒$eH(2T>c3WlпY)y.uUZ%Ƚ&S ,l~ce'7cߟm;M1,g!߯;;#l$ԏk, "fSĈ؏@I``飱p4e3e`~Ai/BԼ=xytHRKK%O$Z,LgfInl&<|SdEnɆi:]2ZE@GfP$8$Ё n^y@n@A@ :1pOr@.,%8:kqRVVok?CNcA813Icq4 EO_P.[Zp9FtOs/G2n0h B {\N`$ Ň$`U;~b&\\= i2Ȭ&޿{Lֵf} tE݃Ƅ:f/PX*_)2r-.D) eRf(er:]nDD`qzƝYGCTP*&%9j ,UEB7(hǿ\ۥqt7U|7íZ髇U3R\,NyYCOGYxS@RTKDyPR,<5@ ,XBD@ mmlݝ™Avi_f !MHfi 8%3fv wVT!r9XzAR!Y 4$ %ñq晌h" 4I) P%g:n,M_SSW UMLPB:II)SjG[Ru.&?\`|4KPTU-TVi6ύqrÜ>k0L|FԞ- II)`wfyEډ O SLeZB0A 11l5)[b'SV(Su#BRTQ]Nc6~ xRY%IcB "D91Vp+ Adӝs00 jkF(8;3(qL0X|hfE4I2 I)Ѹ RXA˩)$Č[5qe4AY`t1&@x'@)2UIU1kgX{M=| &)Avi/H)P0;ì,qJ$1ONK2XZ[nVqՅNSIQ @dKH/2s93&&I@7@E8E t9QEDqz )K9vIrE~V/L:Qܣ('0`X hHfc2ٿJγOmd7,-)UÕA bEPQR Ԗ(.R|zv+?KFY3ӭT}z@#b% 6f?I!Cơ&5Ԫv ^!T (@*PFX,zL}25¢{RQ;`\jHAb5h"I% 9Q-#,!Ift%ւ`%:ٍ[7؄5ݻD2Hk- ͨ|&9\8 )*$Io -)hHnC܎a%* .\;lF:%_@]AtC!&Ci %$@8-eE-9Hˆ|IA66dOR/71- qxѩu]4 ̎$aP(vv$1CSU̼~Zyb3%i!dKO69B*:d%%xq^#QGPԮ$RPTP)I NHW-yoz.@J`YrhU:}9\bV 2:D[. 6"+b=K<p!)ŝܬ]E^nuj&A %~F\8ؙ&"jga$ ;3rwxkN:FrA\P,&Q,͉Էe%u+.T~ba#; j9VBc34Ā IkptƪзɳkQo),㧨gr ]:Lō&4̗ \K!;AH(IBj*bKhdhPm9œ==qmqG& )/]5bEyn7f}VgPp=DVFd%K6`d8nIƱE$s &b[2\%"%ݝ 8|sM| T1-{$"X 㚦_/cGkREЕIH2@yЛ;8ij?("34|" 8S4 t:(>&HhbaW*LJzLL-CPT]A]5-U }]ƭEGuZW+EW1i,I7lx{*6q8Z!MV2AU1p$K/l:.~Ox*G#QSr#\xu|pRTV5VTsX+jUߖvcgc]*Kɮ@5 4'2P<$pCJ9[6yCOq'VhZU_˘Ph,ώkpߴ痶;r<8">-'* )FYrJTINrǷ8UDžj&)RKBCI8gI*b AvpzߧCuQT̥ er5 ؈wy)PI>m[]'I`!,eSO䳰nD9/R|Ą~gqh(Fe~gɰ-V@E1)0k< 8 %|XBAt Xg?6/0u:3`FZ4 P3Ԉ󑀠|Z!UN`%mlIbW,P2Se}hX3v XW 3ߙX7K$hA-;[2%B$g&N{,ZIBZU7!ĴvqC*@`u7!́}[' I%ǜ 95UĚTUS #QJIPSMc$R҂3(`R`f z@MXZ5Bç[6N3)Ncz;> Xذ``j\:Mf``0ҌS@wig~^uRÙMg)'@å*H O3fǛJӜF4iΌIH" K ʘ8bO'v.1xZAI)p!, (]ǿsgB|2T[̭UH &rsK[/5Oms׳g_MZ?U] HvȄ O1T@~6vﮒ}O/懋q*r% b*D`A gjH-FJss)7MDG?^<{:3$& ! 8EI.~*鹛pЪ< cЃ?2$I:9AUNuPR- yq,@$DrBcUy9tR=c7b2eRzLŗ,,A/C1TQvvi&\ g",%BD,~L>՚%}6\fM f)g~OpL)쒥3tԼ8JԚao[LD"YH,?р=q2BϙP ш٘Mb24%D0ŋ181" @X =a X4Tj Pe"lA:'-`5`cͿoHE+=>d m#eX Y߭X"űJ31Dlװ=aM>dEAܑ-ʖR÷NSbdRfw`Y ~6en+0?0YQ@0{뤙w|h*9$r7!"|e>ޱCK5TQnFz &Oy0p{͹6*Wn@@"*#oRm * &!-Hi2- @ YXIBuvghjNmPrzi\rY+ P.yA"3i݋@"Z-!@X6g7s|f@Tf"KrAJI!Vx׳c&m4 Ēs&Hq Ś6Ly?-R5ߛTIoR EDw/H(lG-S˪!v}4-x!BBOSpڶ3&ʢ2ߤ9D^gKH:v nX!*<7bE#Q/$;$ ,,J™,I0MOel.!5|rٚ g2h^PR>=cH)RZ_!ői+bC|.IL-H~!T߱{9HcN7#CbdHEJa20b4ar ʹI𖚁J,mr\0rzb0|D+;h񬼒ͮ3L%IRT rX@H#2"j*t)Q, xpq0*QIp@A't&5DbACh*%DVI#D] 05U9r\4fI/9jJU"Sf䙳%I|-0I@ !˨c0, 6lx*M499~c#иMRR.QD$QQ`$%Ҹ(s8) Q$0l,-U5*FP:?+w`dhT-Y˘n f`OGart+WJWwgTde3\HQy|K+=<4x(WiZ2HʥHD_28ǹՆ L8!tJWrdᚚR!D"L *r\0VGG«]:9TJ:I4L̩@ TIvӡ-]\2ͮ!;=FDVu |vY@(76  DVNZ{ٵ|y0 307 ɰ6x7cRr=:J|!imYJB#,$c$5#%.b ֨ *`Kwi<$AudצP#lu0*i$;sbn Axa@B-#&YDºRP!b `5ab#NJ (@$T s2.@huA1T$6{㪪 4^|=@ӯ0qPx\`p&%F0ĈK(١x*X1#}`Rb$R]69T3Xg$I7(,2}Iٕp9rcԻȺP ځˁRY._ H?$p,(Y&ruݜg%Ivow&S62aI ݺ^z 1)ι؇j$? uO>ƿ!U" r^GBn``5@ (loivBINlPTxP~C_ gܿG-kR48O鿺z9w<Zj|U1`)g* عq'k54Z+jx)֡) L`!ǿh HEd$QN ۞G!OqdǸx3M5iQ8Z(4XilF_ |؄%T Ov^_j "_fa-Ġ >O=1(yGB0P`~_2km}8q|\;MjF>B _cxb.9Ɋ uJ#nOAVy+Yv<]7a OSr / Rڲk-} R7p?Q%9OAf?SI)UT TULm4,:3%*.yyV@;_%5$9-sIԑz~ ':?#=@H`o㡂 O{H800~팳HX1#f^D?A?P#2CaY]~ɖ2%w(J䅨 o\BXpetn_m)10`ʒeGW?{a@ u O G@P{}FZ͛ECtP:`B 0oOԓܓ2!@>R \DN08DC~:02,%2"?_&uHI7$hg%XD#GPdifz4:\~yEp~L/N4޹38⍘T d?CZNSDe>*޷7`]D3Hq9' S=g̡2ǔ\= 2"IyNb[G$ ` 1"%Y2T]A?vd-XOLe6-!kHEF^T9㐰!D:h?_LB |= A$i`DA_JHlsbmS`)3P>)7QJ),Diٱɓqk$hoOM#!Hoslp*X$>YRK )Og;#{X&N!U!baHQ-~}fw0ɟ0ǥdpg./cloudremunit.pas0000644000175000017500000014511714576573021014377 0ustar anthonyanthonyunit CloudRemUnit; {$mode objfpc}{$H+} interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons, ExtCtrls, ComCtrls , strutils , DateUtils , LazFileUtils //required to extractfilenameonly for converting to csv files , moon //required for Moon calculations , Math , header_utils; type { TCloudRemMilkyWay } TCloudRemMilkyWay = class(TForm) Label2: TLabel; HalfRangeEdit: TLabeledEdit; LocationEdit: TLabeledEdit; LatEdit: TLabeledEdit; LongEdit: TLabeledEdit; Memo1: TMemo; SourceFileDialog: TOpenDialog; ProcessStatusMemo: TMemo; ProgressBar1: TProgressBar; SourceFileButton: TBitBtn; SourceFileEdit: TEdit; StartButton: TButton; StatusBar1: TStatusBar; procedure FormShow(Sender: TObject); procedure SourceFileButtonClick(Sender: TObject); procedure StartButtonClick(Sender: TObject); private public procedure FileTypeCheck(); end; var CloudRemMilkyWay: TCloudRemMilkyWay; SourceFileName: String; Filetype: String = 'unknown'; SQM_Lat, SQM_Long: Extended; LocationName: String; half_range: integer; OutputHeader: String; implementation uses appsettings, Unit1 ; {$R *.lfm} Const Section='CloudRemovalMilkyWayTool'; procedure Memo(s:String); begin CloudRemMilkyWay.ProcessStatusMemo.Append(s); CloudRemMilkyWay.ProcessStatusMemo.SelStart:=CloudRemMilkyWay.ProcessStatusMemo.GetTextLen; Application.ProcessMessages; end; procedure TCloudRemMilkyWay.FileTypeCheck(); type TFloatArray = Array [1..100] of Float; var Str: String; pieces: TStringList; fdata: TextFile; PositionValid: Boolean = True; //Assume valid location RequiredCSVFields: Integer = 21; LineCount: Integer = 0; FileCheckValid: Boolean = True; //Assume valid file data MeanArray : TFloatArray; OldUTCRecord, NewUTCRecord :TDateTime; begin pieces := TStringList.Create; if AnsiContainsStr(SourceFileName, '.csv') then Filetype:='csv' else if AnsiContainsStr(SourceFileName, '.dat') then Filetype:='dat' else Filetype:='unknown'; case Filetype of 'dat': begin LatEdit.Enabled:=False; LongEdit.Enabled:=False; AssignFile(fdata, SourceFileName); reset(fdata); //Read first line Readln(fdata, Str); while AnsiStartsStr('#',Str) do begin // Get location data from header. if AnsiStartsStr('# Location name:',Str) then begin //Remove comment from beginning of line. LocationName := AnsiRightStr(Str,length(Str) - RPos(':',Str)); //Remove any text after comma LocationName := AnsiLeftStr(LocationName,length(LocationName) - RPos(',',LocationName)); //Remove surrounding spaces and Replace spaces with underscore LocationName:=StringReplace(Trim(LocationName),' ','_',[rfReplaceAll]); if (Length(LocationName)=0) then LocationName:= 'Not-Specified'; LocationEdit.Text:=LocationName; LocationEdit.Enabled:=False; end; if AnsiStartsStr('# Position',Str) then begin //Prepare for parsing. pieces.Delimiter := ','; pieces.StrictDelimiter := True; //Do not parse spaces. //Remove comment from beginning of line. pieces.DelimitedText := AnsiRightStr(Str,length(Str) - RPos(':',Str)); //Check for location entered if (pieces.Count<2) then begin Memo('Error: No position data found in header, an example is:'); Memo(' # Position (lat, lon, elev(m)): 43.24611, -118.8942, 1256'); LatEdit.Text:='nul'; LongEdit.Text:='nul'; PositionValid:=False; SQM_Lat:=0; SQM_Long:=0; StartButton.Enabled:=False; end else begin StartButton.Enabled:=True; SQM_Lat:=StrToFloat(pieces.Strings[0]); if ((SQM_Lat<-90.0) or (SQM_Lat>90.0)) then begin Memo('Error: Latitude ' + FloatToStr(MyLatitude) +' out of range (-90 to 90).'); PositionValid:=False; end; SQM_Long:=StrToFloat(pieces.Strings[1]); if ((SQM_Long<-180.0) or (SQM_Long>180.0)) then begin Memo('Error: Longitude '+FloatToStr(MyLongitude)+' out of range (-180 to 180)'); PositionValid:=False; end; LatEdit.Text:=Format('%.7f',[SQM_Lat]); LongEdit.Text:=Format('%.7f',[SQM_Long]); end; StartButton.Enabled:=PositionValid; end; //Read next line Readln(fdata, Str); end; //Read next 100 lines to determine sample rate Memo('Reading first 100 lines to determine sampling rate.'); Application.ProcessMessages; try pieces.Delimiter := ';'; //Throw away first line since it may have started recording on power up instead of at timed interval. Readln(fdata, Str); pieces.DelimitedText :=Str; //Parse out time NewUTCRecord:=ScanDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz',pieces.Strings[0]); for LineCount:=1 to 100 do begin Readln(fdata, Str); pieces.DelimitedText :=Str; //Move previous new-time to old-time OldUTCRecord:=NewUTCRecord; //Parse out time NewUTCRecord:=ScanDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz',pieces.Strings[0]); //Memo(Format('Seconds=%d',[SecondOf(NewUTCRecord)])); //Determine time difference, and put into the array for mean calculation. //Memo(Format('Seconds difference=%d',[SecondsBetween(NewUTCRecord, OldUTCRecord)])); MeanArray[LineCount]:=SecondsBetween(NewUTCRecord, OldUTCRecord); end; Memo(Format('Mean value = %f second(s) frequency.',[mean(MeanArray)])); except Memo('Error: Failed to read first 100 lines to determine sampling rate.'); FileCheckValid:=False; end; if FileCheckValid then begin Memo('Finished reading first 100 lines to determine sampling rate.'); end; StartButton.Enabled:=FileCheckValid; CloseFile(fdata); end; 'csv': begin AssignFile(fdata, SourceFileName); reset(fdata); //Read first line Readln(fdata, Str); //Check for required variables //Prepare for parsing. pieces.Delimiter := ','; pieces.StrictDelimiter := True; //Do not parse spaces. //Remove comment from beginning of line. pieces.DelimitedText := AnsiRightStr(Str,length(Str) - RPos(':',Str)); //Check for proper field count if pieces.Count=RequiredCSVFields then begin //Proper number of fields in.csv file LocationEdit.Enabled:=True; //retrieve location name from udm config file LocationName:=vConfigurations.ReadString(Section,'LocatioName','0'); LocationEdit.Text:=LocationName; SQM_Lat:= StrToFloat(vConfigurations.ReadString(Section,'Latitude','0')); LatEdit.Text:=Format('%.7f',[SQM_Lat]); SQM_Long:=StrToFloat(vConfigurations.ReadString(Section,'Longitude','0')); LongEdit.Text:=Format('%.7f',[SQM_Long]); half_range:=StrToInt(vConfigurations.ReadString(Section,'half_range','9')); HalfRangeEdit.Text:=Format('%d',[half_range]); end else begin //Improper number of fields in.csv file Memo(Format('Error: Improper number of fields %d in.csv file, %d required.',[pieces.Count, RequiredCSVFields])); Memo('Got:'); Memo(Str); Memo(''); Memo('Should be:'); Memo('Location,UTC_YYYY,UTC_MM,UTC_DD,UTC_HH,UTC_mm,UTC_ss,Local_YYYY,Local_MM,Local_DD,Local_HH,Local_mm,Local_ss,Celsius,Volts,Msas,Status,MoonPhaseDeg,MoonElevDeg,MoonIllum%,SunElevDeg'); LatEdit.Enabled:=False; LongEdit.Enabled:=False; LatEdit.Text:='nul'; LongEdit.Text:='nul'; PositionValid:=False; SQM_Lat:=0; SQM_Long:=0; StartButton.Enabled:=False; end; StartButton.Enabled:=PositionValid; CloseFile(fdata); end; else begin LocationEdit.Enabled:=True; LatEdit.Enabled:=True; LongEdit.Enabled:=True; end; end; end; function yisleap(year:integer):Integer; begin if (year mod 4=0) and ((year mod 100>0) or (year mod 400 = 0)) then result:=1 else result:=0; end; function get_yday(mon: integer; day: integer; year: integer): integer; const days: array [0..Pred(2),0..Pred(13)] of integer = ((0,0,31,59,90,120,151,181,212,243,273,304,334),(0,0,31,60,91,121,152,182,213,244,274,305,335)); var days_this_year: integer; n: integer; days_since_Jan1_2018: integer; sum: integer; leap: integer; begin sum:=0; leap:=yisleap(year); days_this_year:= days[leap][mon]+day; (* count the number of days in complete previous years *) (* note, this algorithm does not work for any dates prior to 1-1-2018 *) for n:= year-1 downto 2018 do begin leap:=yisleap(n); if leap=0 then begin sum:= sum+365; end else begin sum:= sum+366; end; end; days_since_Jan1_2018:= sum+days_this_year; //Memo(Format(' Year=%d Days in previous year(s)=%d',[year,sum])); //Memo(Format(' Month=%d Date=%d Days this year=%d',[mon, day, days_this_year])); begin result:= days_since_Jan1_2018; exit; end; end; function get_UT(UTC_Hour: integer; UTC_Min: integer; UTC_Sec: integer): double; var UT: double; begin UT:= UTC_Hour+ double(UTC_Min) / 60.0 + double(UTC_Sec) / 3600.0; //Memo(Format('UTC hour=%d, UTC_Min=%d, UTC_Sec=%d',[UTC_Hour, UTC_Min, UTC_Sec])); //Memo(Format(' in_get_UT UT= %7.6f',[UT])); begin result:= UT; exit; end; end; function get_J2000(year: integer; UTC_Month: integer; UTC_Day: integer; UTC_Hour: integer; UTC_Min: integer; UTC_Sec: integer): double; var dwhole: double; dfrac: double; J2000_days: double; begin dwhole := 367 * year - (7*(year + (UTC_Month + 9) div 12) div 4) + (275 * UTC_Month div 9) + UTC_Day - 730531.5; dfrac := (double(UTC_Hour) + (double(UTC_Min))/60. + (double(UTC_Sec))/3600.0)/24.0; J2000_days := dwhole + dfrac; //Memo(Format(' in get_J2000 J2000_days=%10.6f',[J2000_days])); Result := J2000_days; end; function get_right_ascension(year: integer; UTC_Month: integer; UTC_Day: integer; UTC_Hour: integer; UTC_Min: integer; UTC_Sec: integer; SQM_Long: double): double; var right_ascension: double; J2000_days: double; UT: double; //aa: double; //bb: double; //cc: double; //dd: double; //ee: double; multiples: integer; (* need to calculate Universal Time (UT) and J2000_day *) (* set up test data for which we know the answer year = 2008; UTC_Month = 4; UTC_Day = 4; UTC_Hour = 15; UTC_Min = 30; UTC_Sec = 0.0; SQM_Long = -1.9166667; *) (* get the J2000 day value *) begin J2000_days:= get_J2000(year,UTC_Month,UTC_Day,UTC_Hour,UTC_Min,UTC_Sec); //Memo(Format(' in get_right_ascension -- SQM_Long= %6.3f',[SQM_Long])); UT:= get_UT(UTC_Hour,UTC_Min,UTC_Sec); //Memo(Format(' J2000_days= %6.2f',[J2000_days])); (* get the Universal time as a fraction of a day *) //Memo(Format(' UT= %6.4f',[UT])); right_ascension:= 100.46+0.985647*J2000_days+SQM_Long+15.*UT; //Memo(Format(' right_ascension before 0-360 check(degrees) = %6.2f',[right_ascension])); multiples:= Round(right_ascension / 360.0); (* make sure that the value is within the range of 0 to 360 degrees *) (* how many multiples of 360 do we have? Subtract or add out that number *) (* note that multiples is an integer and that the remainder is truncated in the next calculation *) if multiples>0 then begin right_ascension:= right_ascension- double(multiples)*360.0; end; if multiples<0 then begin right_ascension:= right_ascension- double(multiples)*360.0; end; if right_ascension<0 then begin right_ascension:= right_ascension+360.; end; //Memo(Format(' right_ascension after 0-360 check(degrees) = %6.3f',[right_ascension])); right_ascension:= right_ascension / 15; //Memo(Format(' right_ascension (hours) = %6.4f',[right_ascension])); (* convert right_ascension from degrees to hours *) begin result:= right_ascension; exit; end; end; //function addSQMattr(argc : integer;var argv : byte):integer; procedure addSQMattr(); begin end; { TCloudRemMilkyWay } procedure TCloudRemMilkyWay.StartButtonClick(Sender: TObject); var k,m: integer; minutes_since_3pm: array [0..Pred(1500)] of integer; dUYear: array [0..Pred(1500)] of integer; dUMonth: array [0..Pred(1500)] of integer; dUDay: array [0..Pred(1500)] of integer; dUHour: array [0..Pred(1500)] of integer; dUMinute: array [0..Pred(1500)] of integer; dUSeconds: array [0..Pred(1500)] of double; dYear: array [0..Pred(1500)] of integer; dMonth: array [0..Pred(1500)] of integer; dDay: array [0..Pred(1500)] of integer; dHour: array [0..Pred(1500)] of integer; dMinute: array [0..Pred(1500)] of integer; dSeconds: array [0..Pred(1500)] of double; dMsas: array [0..Pred(1500)] of double; //dMsas_Corr: array [0..Pred(1500)] of double; dVolts: array [0..Pred(1500)] of double; dCelsius: array [0..Pred(1500)] of double; dMoonPhase: array [0..Pred(1500)] of double; dMoonElev: array [0..Pred(1500)] of double; dMoonIllum: array [0..Pred(1500)] of double; dSunElev: array [0..Pred(1500)] of double; msas_Avg: array [0..Pred(1500)] of double; msas_Sum: double; msas_Count: double; dStatus: array [0..Pred(1500)] of integer; //NameIn: array [0..Pred(120)] of char; NameOut: array [0..Pred(250)] of char; //SQM_Location: array [0..Pred(30)] of char; //blank: array [0..Pred(200)] of char; //nfile: integer; //Slength: integer; //ret: integer; Start: integer; Last: integer; len2: integer; right_ascension: double; SQM_Dec, SQM_RA: Extended; J2000_days: double; timediff: integer; num_minutesA: integer; num_minutesB: integer; //remainder: double; Galactic_Lat: double; Galactic_Long: double; XX, YY: double; //Galactic_Elevation: double; pi: double; (* NGP is North Galactic Pole, NCP is North Celestial Pole *) RightAscension_NGP, Dec_NGP, Galactic_Long_NCP: double; sum_x, sum_y, sum_xy, sum_x2, sum_y2: Extended; N, mean_x, mean_y, mean_xy, mean_x2: Extended; slope, yintercept, rcorr, rsqrd: Extended; kk, timediff_max: integer; Observed: array [0..Pred(1500)] of Extended; Expected: array [0..Pred(1500)] of Extended; nodata1: Extended; nodata2: Extended; DOF: Extended; RSE: array [0..Pred(1500)] of Extended; SS: array [0..Pred(1500)] of Extended; RSE_mult: Extended; (* set up a multiplier for the RSE values and no-data output values *) (* we output the RSE values multiplied by this constant to give more manageable values *) fdata, fdataout: TextFile; outstr: String; (* added to handle the daylight savings time fix to "minutes since 3pm" *) dPosNeg, dHour_Delta, dShift_Hour: Integer; days: integer; (* We actually want the number of nights since Jan 1, 2018 - that is we want to count the evening and night as part of the * same "day" - actually the same "night"; So if the minutes since 15:00 hours is greater than 540 (i.e. after midnight) we * subtract one day from the "days" value so those times are considered part of the previous day (i.e."night") *) Str: String; pieces: TStringList; //.dat fields, -1 = not defined yet. UTCTimeField: Integer =-1; //Field that contains the UTC time variable. LocalTimeField: Integer =-1; //Field that contains the Local time variable. TemperatureField: Integer = -1; //Field that contains the Temperature variable. VoltageField: Integer = -1; //Field that contains the Voltage variable. MSASField: Integer = -1; //Field that contains the MSAS variable. RecordTypeField: Integer = -1; //Field that contains the Record Type (Initial/subsequent) variable. SourceExtension: String; //.dat or .csv UTCRecord :TDateTime; LocalRecord :TDateTime; MoonElevation: extended = 0.0; MoonAzimuth: extended = 0.0; SunElevation: extended = 0.0; SunAzimuth: extended = 0.0; i: Integer = 0; //General purpose counter ErrorInputLineCounter:Int64; ExceptionFlag: Boolean = False; label ReadAnother, LastDay, Termination; begin ProcessStatusMemo.Clear; pieces := TStringList.Create; pieces.Delimiter := ','; //pieces.StrictDelimiter := False; //Parse spaces also pieces.StrictDelimiter := True; //Do not parse spaces. k:=0; m:=0; ErrorInputLineCounter:=0; RSE_mult:= 1000.; nodata1:= 999.*RSE_mult; nodata2:= 888.*RSE_mult; timediff_max:= 16; Memo(Format('We are running Program %s',[ParamStr(0)])); (* specify the maxiumum number of minutes allowed between SQM samples, prior to marking a data gap *) (* Run this program by specifying the program name, followed by three parameters: * 1) A file of SQM data which has already been processed as a csv with sun and moon data * 2) The latitude of the SQM location in fractions and * 3) The longitude of the SQM location in fractions and so the command line should look like this: * ./addSQMattributes inputfilename.csv 43.7916667 -120.23422 *) len2:= length(SourceFileName); //Memo(Format(' The input filename on reading is: %s which has %d characters.',[SourceFileName,len2-1])); Memo(Format(' The input filename is: %s',[SourceFileName])); //Save LocationName vConfigurations.WriteString(Section,'LocatioName',LocationName); //Get Latitude SQM_Lat:=StrToFloat(LatEdit.Text); Memo(Format(' The latitude of the SQM is: %.7f',[SQM_Lat])); //Save Latitude vConfigurations.WriteString(Section,'Latitude',Format('%.7f',[SQM_Lat])); //Get Longitude SQM_Long:=StrToFloat(LongEdit.Text); Memo(Format(' The longitude of the SQM is: %.7f',[SQM_Long])); //Save Longitude vConfigurations.WriteString(Section,'Longitude',Format('%.7f',[SQM_Long])); half_range:=StrToIntDef(HalfRangeEdit.Text,0); Memo(Format(' The Half Range is: %d',[half_range])); vConfigurations.WriteString(Section,'half_range',Format('%d',[half_range])); (* Open the input file *) AssignFile(fdata, SourceFileName); reset(fdata); SourceExtension:=ExtractFileExt(SourceFileName); (* Open an output file to hold the output data *) (* tack on "SQM_attr" before the .csv *) NameOut:=concat( ExtractFileNameWithoutExt(SourceFileName),'_sun-moon-mw-clouds.csv'); //Memo(concat( ExtractFileNameWithoutExt(SourceFileName),'_sun-moon-mw-clouds.csv')); Memo(Format('The Output Data Filename is: %s',[NameOut])); AssignFile(fdataout, NameOut); Rewrite(fdataout);//Create the file case SourceExtension of '.dat': begin (* Get the field locations from the .dat file The bare minimum is: UTC Date & Time, Local Date & Time, Temperature, Voltage, MSAS, Record type The desired output is: Location,UTC_YYYY,UTC_MM,UTC_DD,UTC_HH,UTC_mm,UTC_ss,Local_YYYY,Local_MM,Local_DD,Local_HH,Local_mm,Local_ss,Celsius,Volts,Msas,Status,MoonPhaseDeg,MoonElevDeg,MoonIllum%,SunElevDeg *) Readln(fdata, Str); while AnsiStartsStr('#',Str) do begin (* Read the data file *) if AnsiStartsStr('# UTC Date & Time',Str) then begin pieces.Delimiter := ','; pieces.DelimitedText :=Str; //Memo(Format(' Str=%s, i=%d, pieces.Count=%d',[Str, i, pieces.Count])); for i:=0 to pieces.Count-1 do begin case Trim(pieces.Strings[i]) of '# UTC Date & Time': UTCTimeField:=i; 'Local Date & Time': LocalTimeField:=i; 'Temperature': TemperatureField:=i; 'Voltage': VoltageField:=i; 'MSAS': MSASField:=i; 'Record type': RecordTypeField:=i; end; end; //Memo(Format(' %d, %d, %d, %d, %d, %d ',[UTCTimeField, LocalTimeField, TemperatureField, VoltageField, MSASField, RecordTypeField])); //Read two more useless lines then move to next stage Readln(fdata, Str); Readln(fdata, Str); OutputHeader:='Location,Lat,Long,UTC_Date,UTC_Time,Local_Date,Local_Time,Celsius,'; OutputHeader:=OutputHeader+'Volts,'; OutputHeader:=OutputHeader+'Msas,'; OutputHeader:=OutputHeader+'Status,'; OutputHeader:=OutputHeader+'MoonPhase,MoonElev,MoonIllum,SunElev,MinSince3pmStdTime,Msas_Avg,NightsSince_1118,RightAscensionHr,Galactic_Lat,Galactic_Long,J2000days,ResidStdErr'; break; end; Readln(fdata, Str); end; end; '.csv': begin (* Read the first header record and throw it away *) Readln(fdata, Str); // Set header string OutputHeader:='Location,Lat,Long,UTC_Date,UTC_Time,Local_Date,Local_Time,Celsius,Volts,Msas,Status,MoonPhase,MoonElev,MoonIllum,SunElev,MinSince3pmStdTime,Msas_Avg,NightsSince_1118,RightAscensionHr,Galactic_Lat,Galactic_Long,J2000days,ResidStdErr'; end else begin Memo(Format('Cannot deal with extension: %s',[SourceExtension])); goto Termination; end; end; N:= Extended((2*half_range)+1); Memo(''); (* half_range is the number of samples (usually 5 minutes apart) to include before and after the * current point at which the Residual Standard Error of regression calculation is performed; the full width of the interval in terms of number of points * to consider in the calculation is (2*half_range + 1) so that a * half_range of 6 incorporates a total range of 60 minutes; * note that we don't increment by one in the minutes calculation * for the middle point in the time range because it is already taken into account * half_range of 9 evaluates to a 90 minute range *) Memo(Format(' The half_range parameter is set to: %d',[half_range])); Memo(Format(' This means that the Residual Error calculation operates over %d samples',[Round(N)])); Memo(Format(' In other words, if the sample spacing is 1 minutes, then the range is %d minutes.',[Round(half_range*2*1)])); Memo(Format(' Or if the sample spacing is 5 minutes, then the range is %d minutes.',[Round(half_range*2*5)])); Memo(Format(' Or if the sample spacing is 15 minutes, then the range is %d minutes.',[Round(half_range*2*15)])); Memo(''); Memo(Format(' Residual Standard Error values that we output are multiplied by %d to achieve larger values.',[Round(RSE_mult)])); Memo(''); Memo(Format(' We allow gaps of %d minutes between SQM samples prior to marking a data gap.',[timediff_max])); Memo(''); (* Write a header record to the output file *) writeln(fdataout,OutputHeader); pi:= 3.14159265359; RightAscension_NGP:= (192.85948*(pi) / 180.0); //Memo(Format('RightAscension_NGP=%7.6f',[RightAscension_NGP])); (* set up some constant values used later to calculate the Galactic Coordinates of the normal at the SQM location *) (* These are from the Wikipedia Celestial coordinate system *) (* convert these constants from degrees to radians *) Dec_NGP:= (27.12825*(pi) / 180.0); //Memo(Format('Dec_NGP= %7.6f',[Dec_NGP])); Galactic_Long_NCP:= 122.93192*(pi) / 180.0; //Memo(Format('Galactic_Long_NCP= %7.6f',[Galactic_Long_NCP])); Memo('Processing file, please wait ...'); (* Note that the string read format statement, reads up to the first carriage return in the input file, then reads the carriage return itself *) m:= -1; Start:= 0; (* initiate the record counter *) (* initiate the flag on 15 hundred hour *) ReadAnother: m:= m+1; (* increment the counter *) //Memo(Format('ReadAnother: m=%d', [m])); if m>1499 then begin Memo('We have more than 1500 samples for this day.'); Memo('If this is good data, sorry but this option does not handle a data cadence smaller than 1 minute.'); Memo('Alternately, does the input file have bad data?'); Memo(' Was the SQM battery dying and taking a sample too frequently or off schedule?'); Memo(' The input data are therefore suspect.'); goto Termination; end; Readln(fdata, Str); //Memo(Format('Str= %s',[Str])); if (Length(Str)>0) then begin case SourceExtension of '.dat': begin pieces.Delimiter := ';'; pieces.DelimitedText :=Str; try UTCRecord:=ScanDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz',pieces.Strings[0]); LocalRecord:=ScanDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz',pieces.Strings[1]); dUYear[m]:=YearOf(UTCRecord); dUMonth[m]:=MonthOf(UTCRecord); dUDay[m]:=DayOf(UTCRecord); dUHour[m]:=HourOf(UTCRecord); dUMinute[m]:=MinuteOf(UTCRecord); dUSeconds[m]:=SecondOf(UTCRecord); dYear[m]:=YearOf(LocalRecord); dMonth[m]:=MonthOf(LocalRecord); dDay[m]:=DayOf(LocalRecord); dHour[m]:=HourOf(LocalRecord); dMinute[m]:=MinuteOf(LocalRecord); dSeconds[m]:=SecondOf(LocalRecord); except Memo(Format(' Problem with UTC or Local time: %s',[Str])); ExceptionFlag:=True; end; if ExceptionFlag then goto Termination; try dCelsius[m]:=StrToFloatDef(pieces[TemperatureField],0); if VoltageField>0 then dVolts[m]:=StrToFloat(pieces[VoltageField]); except Memo(Format(' Problem with data in record: %s',[Str])); ExceptionFlag:=True; end; if ExceptionFlag then goto Termination; if (pieces[MSASField]<>'') then dMsas[m]:=StrToFloatDef(pieces[MSASField],0) else begin Inc(ErrorInputLineCounter,1); Memo(Format('We found a bad input record at Local %04d-%.2d-%.2dT%.2d:%.2d:%.2d and are skipping it.', [dYear[m],dMonth[m],dDay[m],dHour[m],dMinute[m],Round(dSeconds[m])])); m:=m-1; goto ReadAnother; end; if RecordTypeField>0 then dStatus[m]:=StrToInt(pieces[RecordTypeField]); dMoonPhase[m]:=moon_phase_angle(StrToDateTime(DateTimeToStr(UTCRecord))); //Calculate Moon position //Change sign for Moon calculations Moon_Position_Horizontal( StrToDateTime(DateTimeToStr(UTCRecord)), -1.0*SQM_Long, SQM_Lat, MoonElevation, MoonAzimuth); dMoonElev[m]:=MoonElevation; dMoonIllum[m]:=current_phase(StrToDateTime(DateTimeToStr(UTCRecord)))*100.0; Sun_Position_Horizontal( StrToDateTime(DateTimeToStr(UTCRecord)), -1.0*SQM_Long, SQM_Lat,SunElevation, SunAzimuth); dSunElev[m]:=SunElevation; end; '.csv':begin pieces.Delimiter := ','; pieces.DelimitedText :=Str; //SQM_Location:=pieces[0]; LocationName:=pieces[0]; dUYear[m]:=StrToInt(pieces[1]); dUMonth[m]:=StrToInt(pieces[2]); dUDay[m]:=StrToInt(pieces[3]); dUHour[m]:=StrToInt(pieces[4]); dUMinute[m]:=StrToInt(pieces[5]); dUSeconds[m]:=round(StrToFloat(pieces[6])); dYear[m]:=StrToInt(pieces[7]); dMonth[m]:=StrToInt(pieces[8]); dDay[m]:=StrToInt(pieces[9]); dHour[m]:=StrToInt(pieces[10]); dMinute[m]:=StrToInt(pieces[11]); dSeconds[m]:=round(StrToFloat(pieces[12])); dCelsius[m]:=StrToFloat(pieces[13]); dVolts[m]:=StrToFloat(pieces[14]); dMsas[m]:=StrToFloat(pieces[15]); dStatus[m]:=StrToInt(pieces[16]); dMoonPhase[m]:=StrToFloat(pieces[17]); dMoonElev[m]:=StrToFloat(pieces[18]); dMoonIllum[m]:=StrToFloat(pieces[19]); dSunElev[m]:=StrToFloat(pieces[20]); end; end; //Memo(Format('dMsas[m]=%0.12f dSunElev[m]=%0.12f',[dMsas[m],dSunElev[m]])); end else begin //Memo('STRLNEGTH=0 ********debug3****************'); end; (* if we reach the end of the input file, proceed to write out the data of the last day before terminating *) //if EOF(fdata) then begin // Readln(fdata, Str); // writeln('EOF Str=',Str); // m:=m+1; // writeln(Format('EOF going to LastDay m=%d',[m])); // goto LastDay; //end; //writeln('***debug4**** Checked for EOF.'); //Slength:= lstrlen(SQM_Location); (* How long is the string in SQM_Location *) //Slength:= Length(SQM_Location); (* How long is the string in SQM_Location *) (* writeln(" string -%s- Slength = %d\n", SQM_Location, Slength); *) (* Calculate the number of minutes since Local time 3PM for the time associated with this SQM record, implement a bug fix to eliminate a problem with daylight savings time. Use the UTC time values and correct the UTC via the longitude of the sample. Previously the Local Time was used, which jumped an hour at the Daylight Savings Time change This is the old code, commented out: if dHour[m]>14 then begin minutes_since_3pm[m]:= (dHour[m]-15)*60+ dMinute[m] + Trunc(dSeconds[m] / 60.0 + 0.5); end else begin minutes_since_3pm[m]:= 540+dHour[m]*60+dMinute[m]+ Trunc(dSeconds[m] / 60.+0.5); end; *) (* new code follows *) dPosNeg:=1; if(SQM_Long < 0.0) then dPosNeg:= -1; (* assignment to an integer will cause truncation of the remainder in the following statement, as desired *) dHour_Delta:= Trunc(abs(SQM_Long)/15.0 * dPosNeg); dShift_Hour:= dUHour[m] + dHour_Delta; //Memo(Format(' dPosNeg= %d',[dPosNeg])); //Memo(Format(' dHour_Delta= %d', [dHour_Delta])); //Memo(Format(' dShift_Hour= %d', [dShift_Hour])); if(dShift_Hour > 14) then minutes_since_3pm[m]:= (dShift_Hour -15) *60 + dUMinute[m] + Trunc(dUSeconds[m]/60.0+0.5) else minutes_since_3pm[m]:= 540 + dShift_Hour *60 + dUMinute[m] + Trunc(dUSeconds[m]/60.0+0.5); (* check whether we have reached a gap in the input data time - i.e. is this * data point more than the specified maximum gap length in minutes beyond the last data point? *) if m>0 then begin (* calculate the number of minutes associated with the current data point time, and compare with the previous point *) (* handle the special case of crossing the midnight boundary *) if dDay[m]=dDay[m-1] then begin (* if here, this new point is on the same day *) num_minutesA:= Round(dHour[m]*60.0 + dMinute[m]); end else begin (* if here, we have crossed the midnight boundary *) num_minutesA:= Round(24.*60.+dMinute[m]); end; num_minutesB:= Round(dHour[m-1]*60.+dMinute[m-1]); timediff:= num_minutesA-num_minutesB; (* make sure timediff is positive *) if timediff<0 then begin timediff:= timediff*-1; end; if timediff>timediff_max then begin (* if here, we have found a time gap in the data - consider the data so for this day to be all that there is *) //writeln('Found a %d minute gap in the data just after %d-%d-%d %d:%d:%d',timediff,dYear[m-1],dMonth[m-1],dDay[m-1],dHour[m-1],dMinute[m-1],{!!!a type cast? =>} {integer(}dSeconds[m-1]); (* handle the case of a patch of data after a data gap during the daytime and prior to 15:00. *) if dHour[m]<15 then (* set Start flag to 3, which we check later to loop appropriately *) Start:= 3; (* so jump into the loop which calculates the second derivatives, etc and writes out the data to the output file * for the data prior to this data gap *) goto LastDay; end; end; (* reset the Start flag if we are already past the first day of data and if we have gone beyond the 15 hundred hour *) if ((Start=2) and (dHour[m]>15)) then Start:= 0; (* reset the Start flag if we are already past the first day of data and if we have reached 15 hundred hour *) (* for the case of a partial day due to a data gap prior to 15:00 *) if ((Start=3) and (dHour[m]=15)) then Start:= 0; (* We copy data for each day into memory, beginning at 15:00 hours and going all evening, night, morning to the next afternoon *) (* We use a flag called Start to handle reading all the other samples acquired at the beginning of the day, samples which * were acquired when the hour was still 15. *) (* Check to see if we reached 15:00 hours on this day; we assume that the data are ordered in time sequence *) if ((dHour[m]=15)and(Start=0)) then begin (* the last sample of the previous day was m-1, so we know that the previous day has values in the arrays from 0 to m-1 *) LastDay: Last:= m-1; //Memo(Format('LastDay: m=%d',[m])); msas_Sum:= 0.0; msas_Count:= 0.0; (* Calculation of average Msas for the day; *) (* loop on the day's data *) //for{while} k:=0 to Pred(Last+1) { k++} do begin for k := 0 to Last+1-1 do begin (* Sun is lower than 18 degrees below the horizon and the moon is lower than 10 degrees below the horizon *) if ((dSunElev[k]<-18.0)and(dMoonElev[k]<-10.0)) then begin (* tally sum and count for msas average *) msas_Sum:= msas_Sum+dMsas[k]; msas_Count:= msas_Count+1.0; end; end; (* we will later print out the average value for this day in those records that contributed to the average, not to all records *) (* That is, we will print out the average value for this day for those records when the sun was less than 18 degree below the horizon*) (* We assign a null value (-1.0) to all points of the sun higher than -18 degrees, and all points lacking any count values *) //for{while} k:=0 to Pred(Last+1) { k++} do for k := 0 to Last+1 do begin if ((dSunElev[k]<-18.0)and(dMoonElev[k]<-10.0)) then begin (* handle case of no values in the msas sum *) msas_Avg[k]:= -1.0; if msas_Count>0.0 then begin msas_Avg[k]:= msas_Sum / msas_Count; end; end else msas_Avg[k]:= -1.0; end; (* Calculate Residual Standard Error values - samples are assumed to be a constant number of minutes apart; * Set half_range at the program command line to specify the number of samples to consider, and given the spacing * between SQM measurements, the number of minutes in the sample range; * This fits a regression line to each point of data, and with half_range set to 9 and 5-minute sample spaceing then * you get a range from 45 minutes before to 45 minutes after the point, for a total of 90 minutes; * Program calculates the deviation from the straight line, * expressed by the sum of ((observed - expected)**2 /(expected)). *) (* initialize SS and RSE array values to zero *) (* use kk to track array elements of array *) //if ((Last+1-half_range)<0) then begin // Memo(Format('Error: Stopped because of non-contiguous data set. (Last+1-half_range)=%d',[Last+1-half_range])); // goto Termination; //end; for kk := 0 to 299 do begin SS[kk] := 0.0; end; for kk := 0 to 299 do begin RSE[kk] := 0.0; end; //(* set the first half_range of RSE values a giant value ; ditto for the last half_range values *) for kk := 0 to half_range-1 do begin RSE[kk] := nodata1; end; // first check to see if we have enough points in the current day to calculate a valid standard error statistic // N is the number of point in the range of the standard error calculation if(m < N) then begin Memo(Format('For date %04d-%.2d-%.2d, we only have %d data points for this day/segment and cannot calculate a valid standard error.', [dYear[m],dMonth[m],dDay[m],m])); end else begin for kk := Last+1-half_range to m-1 do begin RSE[kk] := nodata1; end;//debug orig: m-1, seems to work with m DOF:= Extended((half_range*2)+1-2); (* set up the degrees of freedom; we estimate two parameters, the linear regression slope and y-intercept *) (* loop on the sample point about which we calculate the statistic *) //for{while} kk:=half_range to Pred(Last+1-half_range) { kk++} do for kk := half_range to Last+1-half_range-1 do begin (* initialize sums *) sum_x:= 0.0; sum_y:= 0.0; sum_xy:= 0.0; sum_x2:= 0.0; sum_y2:= 0.0; RSE[kk]:= 0.0; SS[kk]:= 0.0; (* loop across the 2*half_range +1 values and tabulate statistics *) //for{while} k:=kk-half_range to Pred(kk+half_range+1) { k++} do for k := kk-half_range to kk+half_range+1-1 do begin sum_x:= sum_x+Extended(minutes_since_3pm[k]); sum_y:= sum_y+Extended(dMsas[k]); sum_xy:= sum_xy+Extended(minutes_since_3pm[k]*Extended(dMsas[k])); sum_x2:= sum_x2+Extended(minutes_since_3pm[k]*Extended(minutes_since_3pm[k])); sum_y2:= sum_y2+Extended(dMsas[k])*Extended(dMsas[k]); //Memo(Format(' *********************** k= %d sum_x=%.6f, sum_y=%.6f, sum_xy=%.6f, sum_x2=%.6f, sum_y2=%.6f, dMsas[k]=%.6f',[ k, sum_x, sum_y, sum_xy, sum_x2, sum_y2, dMsas[k]])); end; mean_x:= sum_x / N; mean_y:= sum_y / N; mean_xy:= sum_xy / N; mean_x2:= sum_x2 / N; //Memo(format('mean_x=%.6f, mean_y=%.6f, mean_xy=%.6f, mean_x2=%.6f,',[mean_x, mean_y, mean_xy, mean_x2])); slope:= (mean_xy-(mean_x*mean_y)) / (mean_x2-(mean_x*mean_x)); yintercept:= ((mean_x2*mean_y)-(mean_xy*mean_x)) / (mean_x2-(mean_x*mean_x)); rcorr:= (sum_xy-sum_x*sum_y / N) / sqrt((sum_x2-(sum_x*sum_x) / N)*(sum_y2-(sum_y*sum_y) / N)); rsqrd:= rcorr*rcorr; (* calculate means *) (* calculate the slope and Y-intercept of the regression line *) //Memo(format('kk = %d slope=%.6f yintercept=%.6f',[ kk, slope, yintercept])); (* Evaluate the regression line at all points of this interval of data to get the expected values (on the regression line) and * use the observed and expected values in the Residual Standard Error (RSE) calculation *) //for{while} k:=kk-half_range to Pred(kk+half_range+1) { k++} do for k := kk-half_range to kk+half_range+1-1 do begin Expected[k]:= slope*Extended(minutes_since_3pm[k])+yintercept; Observed[k]:= Extended(dMsas[k]); SS[kk]:= SS[kk]+((Observed[k]-Expected[k])*(Observed[k]-Expected[k])); end; RSE[kk]:= (Sqrt(SS[kk] / DOF))*RSE_mult; (* note that we use sqrtl here, which takes a long double argument *) //Memo(format('-------------------SS[kk]=%.10f, DOF=%.6f, RSE_mult=%.6f, RSE[kk]=%.10f-------------------',[SS[kk], DOF, RSE_mult, RSE[kk]])); (* fix up for any negative values because Expected is negative *) if (RSE[kk]<0.0) then RSE[kk]:= RSE[kk]*-1.0; (* fix up for any "not a number" for the case of divide by zero above *) if RSE[kk].IsNan then RSE[kk]:= nodata2; //Memo(Format('kk = %d RSE=%.6f',[kk,RSE[kk]])); end; end; //End of checking (m=540 then days:= days-1; right_ascension:= get_right_ascension(dUYear[k],dUMonth[k],dUDay[k],dUHour[k],dUMinute[k],Round(dUSeconds[k]),SQM_Long); //Memo(Format(' right_ascension= %8.6f',[right_ascension])); (* calculate right ascension for the SQM_Location *) SQM_RA:= (right_ascension*15.0)*(pi / 180.0); SQM_Dec:= SQM_Lat*(pi / 180.0); Galactic_Lat:= ArcSin(sin(SQM_Dec)*sin(Dec_NGP)+cos(SQM_Dec)*cos(Dec_NGP)*cos(SQM_RA-RightAscension_NGP)); // convert from radians to degrees Galactic_Lat:= Galactic_Lat*(180.0 / pi); //Galactic_Long:= Galactic_Long_NCP-(ArcSin((cos(SQM_Dec)*sin(SQM_RA-RightAscension_NGP) / Cos(Galactic_Lat)))); //Galactic_Long:= Galactic_Long*(180.0 / pi); (* convert right_ascension (SQM_RA) from hours to radians *) YY:= cos(SQM_Dec) * sin(SQM_RA - RightAscension_NGP); XX:= (sin(SQM_Dec) * cos(Dec_NGP)) - (cos(SQM_Dec) * sin(Dec_NGP) * cos(SQM_RA - RightAscension_NGP)); Galactic_Long:= Galactic_Long_NCP - ArcTan2(YY,XX); // convert from radians to degrees Galactic_Long:= Galactic_Long * (180./pi); // Make sure that Galactic_Long is a positive number if(Galactic_Long < 0.0) then Galactic_Long:= 360. + Galactic_Long; (* the Declination of the SQM is its Latitude, convert it from decimal degrees to radians *) (* the following Equations are from Wikipedia on Celestial Coordinate Systems *) (* we previously set up these constants: RightAscension_NGP, Dec_NGP, Galactic_Long_NCP *) (* convert Galactic_Lat and Galactic_Long from radians to degrees *) (* create Galactic_elevation angle, which we will print, along with the Galactic_Latitude *) //if Galactic_Lat<=0.0 then // Galactic_Elevation:= 90.0+Galactic_Lat //else // Galactic_Elevation:= 90.0-Galactic_Lat; J2000_days:= get_J2000(dUYear[k],dUMonth[k],dUDay[k],dUHour[k],dUMinute[k],Round(dUSeconds[k])); //writeln(Format('%s, %12.7f, %12.7f, %04d-%02d-%02d, %02d:%02d:%02d, %04d-%02d-%02d, %02d:%02d:%02d, %.1f, %.2f, %.2f, %1d, %.1f, %.3f, %.1f, %.3f, %04d, %f, %04d, %12.7f, %12.7f, %10.5f, %10.5f, %f,%f',[SQM_Location,SQM_Lat,SQM_Long,dUYear[k],dUMonth[k],dUDay[k],dUHour[k],dUMinute[k],Int(dUSeconds[k]),dYear[k],dMonth[k],dDay[k],dHour[k],dMinute[k],Int(dSeconds[k]),dCelsius[k],dVolts[k],dMsas[k],dStatus[k],dMoonPhase[k],dMoonElev[k],dMoonIllum[k],dSunElev[k],minutes_since_3pm[k],msas_Avg[k],days,right_ascension,Galactic_Lat,Galactic_Elevation,Galactic_Long,J2000_days,RSE[k]])); //Memo(Format('%s, %12.7f, %12.7f, %04d-%02d-%02d, %.2d:%.2d:%.2d, %04d-%02d-%02d, %.2d:%.2d:%.2d, %.1f, %.2f, %.2f, %1d, %.1f, %.3f, %.1f, %.3f, %04d, %f, %04d, %12.7f, %12.7f, %10.5f, %10.5f, %10.6f,%10.6f', //[SQM_Location,SQM_Lat,SQM_Long,dUYear[k],dUMonth[k],dUDay[k],dUHour[k],dUMinute[k],Round(dUSeconds[k]),dYear[k],dMonth[k],dDay[k],dHour[k],dMinute[k],Round(dSeconds[k]),dCelsius[k],dVolts[k],dMsas[k],dStatus[k],dMoonPhase[k],dMoonElev[k],dMoonIllum[k],dSunElev[k],minutes_since_3pm[k],msas_Avg[k],days,right_ascension,Galactic_Lat,Galactic_Elevation,Galactic_Long,J2000_days,RSE[k]])); (* get the J2000 day value *) outstr:=LocationName+','+ Format('%12.7f,%12.7f,',[SQM_Lat,SQM_Long])+ Format('%04d-%.2d-%.2d,',[dUYear[k],dUMonth[k],dUDay[k]])+ Format('%.2d:%.2d:%.2d,',[dUHour[k],dUMinute[k],Round(dUSeconds[k])])+ Format('%04d-%.2d-%.2d,',[dYear[k],dMonth[k],dDay[k]])+ Format('%.2d:%.2d:%.2d,',[dHour[k],dMinute[k],Round(dSeconds[k])])+ Format('%.1f,',[dCelsius[k]]); if VoltageField>0 then outstr:=outstr+Format('%.2f,',[dVolts[k]]) else outstr:=outstr+'-1.0,'; outstr:=outstr+Format('%.2f,',[dMsas[k]]); if RecordTypeField>0 then outstr:=outstr+Format('%1d,',[dStatus[k]]) else outstr:=outstr+'-1,'; outstr:=outstr+ Format('%.1f,%.3f,%.1f,%.3f,',[dMoonPhase[k],dMoonElev[k],dMoonIllum[k],dSunElev[k]])+ Format('%.4d,',[minutes_since_3pm[k]])+ Format('%1.6f,',[msas_Avg[k]])+ Format('%04d,',[days])+ //Format('%12.7f,%12.7f,%10.5f,%10.5f,',[right_ascension,Galactic_Lat,Galactic_Elevation,Galactic_Long])+ Format('%12.7f,%12.7f,%10.5f,',[right_ascension,Galactic_Lat,Galactic_Long])+ Format('%1.6f,%.6f',[J2000_days,RSE[k]]); Writeln(fdataout,outstr); (* Note, we need to output two numbers for each of hour, minute and seconds. If only one digit is output, Spotfire, and other programs, will take the digit as a ten's value, insted of a one's value*) end; (* if we are at the EOF, we have already written out the last day's data, so terminate *) if EOF(fdata) then begin //Memo('ret=EOF going to Termination'); Memo(' Reached the End of input File'); goto Termination; end; dUYear[0]:= dUYear[m]; dUMonth[0]:= dUMonth[m]; dUDay[0]:= dUDay[m]; dUHour[0]:= dUHour[m]; dUMinute[0]:= dUMinute[m]; dUSeconds[0]:= dUSeconds[m]; dYear[0]:= dYear[m]; dMonth[0]:= dMonth[m]; dDay[0]:= dDay[m]; dHour[0]:= dHour[m]; dMinute[0]:= dMinute[m]; dSeconds[0]:= dSeconds[m]; dCelsius[0]:= dCelsius[m]; dVolts[0]:= dVolts[m]; dMsas[0]:= dMsas[m]; dStatus[0]:= dStatus[m]; dMoonPhase[0]:= dMoonPhase[m]; dMoonElev[0]:= dMoonElev[m]; dMoonIllum[0]:= dMoonIllum[m]; dSunElev[0]:= dSunElev[m]; minutes_since_3pm[0]:= minutes_since_3pm[m]; RSE[0]:= RSE[m] / RSE_mult; m:= 0; (* if here, we have written out all of the day's attributes, so keep the very last record and proceed to read the next record *) (* m is incremented above, so set it to zero here; this avoids writing over the data we just stored at location zero *) if Start=3 then (* if here, we have a case of a partial day of data after a data gap and prior to 15:00 in the day *) goto ReadAnother else (* set the flag to direct all the next samples acquired in the "15" hundred hour into a new day *) Start:= 2; goto ReadAnother; end; goto ReadAnother; (* if here, we have reached the EOF on fscanf *) Termination: Memo(Format(' Results written to: %s',[NameOut])); if ErrorInputLineCounter>0 then Memo(Format('We found %d bad records due to missing data, and we ignored them.',[ErrorInputLineCounter])); Memo('Finished'); CloseFile(fdata); CloseFile(fdataout); end; procedure TCloudRemMilkyWay.SourceFileButtonClick(Sender: TObject); begin //Clear out memo for new messages CloudRemMilkyWay.ProcessStatusMemo.Clear; SourceFileDialog.FileName:=SourceFileName; if SourceFileDialog.Execute then begin SourceFileName:=RemoveMultiSlash(SourceFileDialog.FileName); SourceFileEdit.Text:=SourceFileName; end; //Save directory name in registry vConfigurations.WriteString(Section,'SourceFileName',SourceFileName); FileTypeCheck; end; procedure TCloudRemMilkyWay.FormShow(Sender: TObject); begin //For debugging/development purposes, recall last used file details. if ParameterCommand('-TCMR') then begin SourceFileName:=RemoveMultiSlash(vConfigurations.ReadString(Section, 'SourceFileName', '')); SourceFileEdit.Text:=SourceFileName; LocationName:=vConfigurations.ReadString(Section,'LocatioName','0'); LocationEdit.Text:=LocationName; SQM_Lat:= StrToFloat(vConfigurations.ReadString(Section,'Latitude','0')); LatEdit.Text:=Format('%.7f',[SQM_Lat]); SQM_Long:=StrToFloat(vConfigurations.ReadString(Section,'Longitude','0')); LongEdit.Text:=Format('%.7f',[SQM_Long]); end; half_range:=StrToInt(vConfigurations.ReadString(Section,'half_range','9')); HalfRangeEdit.Text:=Format('%d',[half_range]); FileTypeCheck; end; initialization {$I CloudRemUnit.lrs} end. ./ssposix.inc0000644000175000017500000011016514576573021013356 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 001.001.004 | |==============================================================================| | Content: Socket Independent Platform Layer - Delphi Posix definition include | |==============================================================================| | Copyright (c)2006-2013, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2006-2012. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | | Radek Cervinka | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@exclude} {$IFDEF POSIX} {for delphi XE2+} //{$DEFINE FORCEOLDAPI} {Note about define FORCEOLDAPI: If you activate this compiler directive, then is allways used old socket API for name resolution. If you leave this directive inactive, then the new API is used, when running system allows it. For IPv6 support you must have new API! } { note RC: partially compatible with NextGen Delphi compiler - iOS } interface uses SyncObjs, SysUtils, Classes, Posix.SysSocket, Posix.SysSelect, Posix.SysTime, Posix.NetinetIn, Posix.StrOpts, Posix.Errno; function InitSocketInterface(stack: string): Boolean; function DestroySocketInterface: Boolean; const DLLStackName = ''; WinsockLevel = $0202; cLocalHost = '127.0.0.1'; cBroadcast = '255.255.255.255'; cAnyHost = '0.0.0.0'; c6AnyHost = '::0'; c6Localhost = '::1'; cLocalHostStr = 'localhost'; type TSocket = longint; TAddrFamily = integer; TMemory = pointer; type TFDSet = fd_set; PFDSet = Pfd_set; Ptimeval = Posix.SysTime.ptimeval; Ttimeval = Posix.SysTime.timeval; const // FIONREAD = $4004667F; // oSX FIONREAD = Posix.StrOpts.FIONREAD; FIONBIO = $8004667E; //OSX FIONBIO = Posix.StrOpts.FIONBIO; FIOASYNC = $8004667D; //OSX FIOASYNC = Posix.StrOpts.FIOASYNC; // not defined in XE2 { FIONREAD = $541B; // LINUX? FIONBIO = $5421; FIOASYNC = $5452; } const IPPROTO_IP = Posix.NetinetIn.IPPROTO_IP; { Dummy } IPPROTO_ICMP = Posix.NetinetIn.IPPROTO_ICMP; { Internet Control Message Protocol } IPPROTO_IGMP = Posix.NetinetIn.IPPROTO_IGMP; { Internet Group Management Protocol} IPPROTO_TCP = Posix.NetinetIn.IPPROTO_TCP; { TCP } IPPROTO_UDP = Posix.NetinetIn.IPPROTO_UDP; { User Datagram Protocol } IPPROTO_IPV6 = Posix.NetinetIn.IPPROTO_IPV6; IPPROTO_ICMPV6 = 58; IPPROTO_RM = 113; IPPROTO_RAW = Posix.NetinetIn.IPPROTO_RAW; IPPROTO_MAX = Posix.NetinetIn.IPPROTO_MAX; type PInAddr = ^TInAddr; TInAddr = Posix.NetinetIn.in_addr; PSockAddrIn = ^TSockAddrIn; TSockAddrIn = Posix.NetinetIn.sockaddr_in; TIP_mreq = record imr_multiaddr: TInAddr; // IP multicast address of group imr_interface: TInAddr; // local IP address of interface end; PInAddr6 = ^TInAddr6; TInAddr6 = Posix.NetinetIn.in6_addr; PSockAddrIn6 = ^TSockAddrIn6; TSockAddrIn6 = Posix.NetinetIn.sockaddr_in6; TIPv6_mreq = record ipv6mr_multiaddr: TInAddr6; // IPv6 multicast address. ipv6mr_interface: integer; // Interface index. end; const INADDR_ANY = $00000000; INADDR_LOOPBACK = $7F000001; INADDR_BROADCAST = $FFFFFFFF; INADDR_NONE = $FFFFFFFF; ADDR_ANY = INADDR_ANY; INVALID_SOCKET = TSocket(NOT(0)); SOCKET_ERROR = -1; Const IP_TOS = Posix.NetinetIn.IP_TOS; { int; IP type of service and precedence. } IP_TTL = Posix.NetinetIn.IP_TTL; { int; IP time to live. } IP_HDRINCL = Posix.NetinetIn.IP_HDRINCL; { int; Header is included with data. } IP_OPTIONS = Posix.NetinetIn.IP_OPTIONS; { ip_opts; IP per-packet options. } // IP_ROUTER_ALERT = sockets.IP_ROUTER_ALERT; { bool } IP_RECVOPTS = Posix.NetinetIn.IP_RECVOPTS; { bool } IP_RETOPTS = Posix.NetinetIn.IP_RETOPTS; { bool } // IP_PKTINFO = sockets.IP_PKTINFO; { bool } // IP_PKTOPTIONS = sockets.IP_PKTOPTIONS; // IP_PMTUDISC = sockets.IP_PMTUDISC; { obsolete name? } // IP_MTU_DISCOVER = sockets.IP_MTU_DISCOVER; { int; see below } // IP_RECVERR = sockets.IP_RECVERR; { bool } // IP_RECVTTL = sockets.IP_RECVTTL; { bool } // IP_RECVTOS = sockets.IP_RECVTOS; { bool } IP_MULTICAST_IF = Posix.NetinetIn.IP_MULTICAST_IF; { in_addr; set/get IP multicast i/f } IP_MULTICAST_TTL = Posix.NetinetIn.IP_MULTICAST_TTL; { u_char; set/get IP multicast ttl } IP_MULTICAST_LOOP = Posix.NetinetIn.IP_MULTICAST_LOOP; { i_char; set/get IP multicast loopback } IP_ADD_MEMBERSHIP = Posix.NetinetIn.IP_ADD_MEMBERSHIP; { ip_mreq; add an IP group membership } IP_DROP_MEMBERSHIP = Posix.NetinetIn.IP_DROP_MEMBERSHIP; { ip_mreq; drop an IP group membership } SOL_SOCKET = Posix.SysSocket.SOL_SOCKET; SO_DEBUG = Posix.SysSocket.SO_DEBUG; SO_REUSEADDR = Posix.SysSocket.SO_REUSEADDR; SO_TYPE = Posix.SysSocket.SO_TYPE; SO_ERROR = Posix.SysSocket.SO_ERROR; SO_DONTROUTE = Posix.SysSocket.SO_DONTROUTE; SO_BROADCAST = Posix.SysSocket.SO_BROADCAST; SO_SNDBUF = Posix.SysSocket.SO_SNDBUF; SO_RCVBUF = Posix.SysSocket.SO_RCVBUF; SO_KEEPALIVE = Posix.SysSocket.SO_KEEPALIVE; SO_OOBINLINE = Posix.SysSocket.SO_OOBINLINE; // SO_NO_CHECK = SysSocket.SO_NO_CHECK; // SO_PRIORITY = SysSocket.SO_PRIORITY; SO_LINGER = Posix.SysSocket.SO_LINGER; // SO_BSDCOMPAT = SysSocket.SO_BSDCOMPAT; // SO_REUSEPORT = SysSocket.SO_REUSEPORT; // SO_PASSCRED = SysSocket.SO_PASSCRED; // SO_PEERCRED = SysSocket.SO_PEERCRED; SO_RCVLOWAT = Posix.SysSocket.SO_RCVLOWAT; SO_SNDLOWAT = Posix.SysSocket.SO_SNDLOWAT; SO_RCVTIMEO = Posix.SysSocket.SO_RCVTIMEO; SO_SNDTIMEO = Posix.SysSocket.SO_SNDTIMEO; { Security levels - as per NRL IPv6 - don't actually do anything } // SO_SECURITY_AUTHENTICATION = SysSocket.SO_SECURITY_AUTHENTICATION; // SO_SECURITY_ENCRYPTION_TRANSPORT = SysSocket.SO_SECURITY_ENCRYPTION_TRANSPORT; // SO_SECURITY_ENCRYPTION_NETWORK = SysSocket.SO_SECURITY_ENCRYPTION_NETWORK; // SO_BINDTODEVICE = SysSocket.SO_BINDTODEVICE; { Socket filtering } // SO_ATTACH_FILTER = SysSocket.SO_ATTACH_FILTER; // SO_DETACH_FILTER = SysSocket.SO_DETACH_FILTER; SOMAXCONN = 1024; IPV6_UNICAST_HOPS = Posix.NetinetIn.IPV6_UNICAST_HOPS; IPV6_MULTICAST_IF = Posix.NetinetIn.IPV6_MULTICAST_IF; IPV6_MULTICAST_HOPS = Posix.NetinetIn.IPV6_MULTICAST_HOPS; IPV6_MULTICAST_LOOP = Posix.NetinetIn.IPV6_MULTICAST_LOOP; IPV6_JOIN_GROUP = Posix.NetinetIn.IPV6_JOIN_GROUP; IPV6_LEAVE_GROUP = Posix.NetinetIn.IPV6_LEAVE_GROUP; const SOCK_STREAM = Posix.SysSocket.SOCK_STREAM;// 1; { stream socket } SOCK_DGRAM = Posix.SysSocket.SOCK_DGRAM;// 2; { datagram socket } SOCK_RAW = Posix.SysSocket.SOCK_RAW;// 3; { raw-protocol interface } SOCK_RDM = Posix.SysSocket.SOCK_RDM;// 4; { reliably-delivered message } SOCK_SEQPACKET = Posix.SysSocket.SOCK_SEQPACKET;// 5; { sequenced packet stream } { TCP options. } TCP_NODELAY = $0001; //netinettcp.pas { Address families. } AF_UNSPEC = Posix.SysSocket.AF_UNSPEC;// 0; { unspecified } AF_INET = Posix.SysSocket.AF_INET; // 2; { internetwork: UDP, TCP, etc. } AF_INET6 = Posix.SysSocket.AF_INET6; // !! 30 { Internetwork Version 6 } AF_MAX = Posix.SysSocket.AF_MAX; // !! - variable by OS { Protocol families, same as address families for now. } PF_UNSPEC = AF_UNSPEC; PF_INET = AF_INET; PF_INET6 = AF_INET6; PF_MAX = AF_MAX; type { Structure used for manipulating linger option. } PLinger = ^TLinger; TLinger = Posix.SysSocket.linger; const MSG_OOB = Posix.SysSocket.MSG_OOB; // Process out-of-band data. MSG_PEEK = Posix.SysSocket.MSG_PEEK; // Peek at incoming messages. {$IFDEF MACOS} MSG_NOSIGNAL = $20000; // Do not generate SIGPIPE. // Works under MAC OS X, but is undocumented, // So FPC doesn't include it {$ELSE} MSG_NOSIGNAL = $4000; // Do not generate SIGPIPE. {$ENDIF} const WSAEINTR = EINTR; WSAEBADF = EBADF; WSAEACCES = EACCES; WSAEFAULT = EFAULT; WSAEINVAL = EINVAL; WSAEMFILE = EMFILE; WSAEWOULDBLOCK = EWOULDBLOCK; WSAEINPROGRESS = EINPROGRESS; WSAEALREADY = EALREADY; WSAENOTSOCK = ENOTSOCK; WSAEDESTADDRREQ = EDESTADDRREQ; WSAEMSGSIZE = EMSGSIZE; WSAEPROTOTYPE = EPROTOTYPE; WSAENOPROTOOPT = ENOPROTOOPT; WSAEPROTONOSUPPORT = EPROTONOSUPPORT; WSAESOCKTNOSUPPORT = ESOCKTNOSUPPORT; WSAEOPNOTSUPP = EOPNOTSUPP; WSAEPFNOSUPPORT = EPFNOSUPPORT; WSAEAFNOSUPPORT = EAFNOSUPPORT; WSAEADDRINUSE = EADDRINUSE; WSAEADDRNOTAVAIL = EADDRNOTAVAIL; WSAENETDOWN = ENETDOWN; WSAENETUNREACH = ENETUNREACH; WSAENETRESET = ENETRESET; WSAECONNABORTED = ECONNABORTED; WSAECONNRESET = ECONNRESET; WSAENOBUFS = ENOBUFS; WSAEISCONN = EISCONN; WSAENOTCONN = ENOTCONN; WSAESHUTDOWN = ESHUTDOWN; WSAETOOMANYREFS = ETOOMANYREFS; WSAETIMEDOUT = ETIMEDOUT; WSAECONNREFUSED = ECONNREFUSED; WSAELOOP = ELOOP; WSAENAMETOOLONG = ENAMETOOLONG; WSAEHOSTDOWN = EHOSTDOWN; WSAEHOSTUNREACH = EHOSTUNREACH; WSAENOTEMPTY = ENOTEMPTY; WSAEPROCLIM = -1; WSAEUSERS = EUSERS; WSAEDQUOT = EDQUOT; WSAESTALE = ESTALE; WSAEREMOTE = EREMOTE; WSASYSNOTREADY = -2; WSAVERNOTSUPPORTED = -3; WSANOTINITIALISED = -4; WSAEDISCON = -5; WSAHOST_NOT_FOUND = 1; WSATRY_AGAIN = 2; WSANO_RECOVERY = 3; WSANO_DATA = -6; const WSADESCRIPTION_LEN = 256; WSASYS_STATUS_LEN = 128; type PWSAData = ^TWSAData; TWSAData = packed record wVersion: Word; wHighVersion: Word; szDescription: array[0..WSADESCRIPTION_LEN] of Char; szSystemStatus: array[0..WSASYS_STATUS_LEN] of Char; iMaxSockets: Word; iMaxUdpDg: Word; lpVendorInfo: PChar; end; function IN6_IS_ADDR_UNSPECIFIED(const a: PInAddr6): boolean; function IN6_IS_ADDR_LOOPBACK(const a: PInAddr6): boolean; function IN6_IS_ADDR_LINKLOCAL(const a: PInAddr6): boolean; function IN6_IS_ADDR_SITELOCAL(const a: PInAddr6): boolean; function IN6_IS_ADDR_MULTICAST(const a: PInAddr6): boolean; function IN6_ADDR_EQUAL(const a: PInAddr6; const b: PInAddr6):boolean; procedure SET_IN6_IF_ADDR_ANY (const a: PInAddr6); procedure SET_LOOPBACK_ADDR6 (const a: PInAddr6); var in6addr_any, in6addr_loopback : TInAddr6; procedure FD_CLR(Socket: TSocket; var FDSet: TFDSet); function FD_ISSET(Socket: TSocket; var FDSet: TFDSet): Boolean; procedure FD_SET(Socket: TSocket; var FDSet: TFDSet); procedure FD_ZERO(var FDSet: TFDSet); {=============================================================================} var SynSockCS: SyncObjs.TCriticalSection; SockEnhancedApi: Boolean; SockWship6Api: Boolean; {$DEFINE SOCK_HAS_SINLEN} // OSX type TVarSin = packed record {$ifdef SOCK_HAS_SINLEN} sin_len : UInt8; {$endif} case integer of 0: (AddressFamily: sa_family_t); 1: ( case sin_family: sa_family_t of AF_INET: (sin_port: word; sin_addr: TInAddr; sin_zero: array[0..7] of Char); AF_INET6: (sin6_port: word; sin6_flowinfo: longword; sin6_addr: TInAddr6; sin6_scope_id: longword); ); end; function SizeOfVarSin(sin: TVarSin): integer; function WSAStartup(wVersionRequired: Word; var WSData: TWSAData): Integer; function WSACleanup: Integer; function WSAGetLastError: Integer; function GetHostName: string; function Shutdown(s: TSocket; how: Integer): Integer; function SetSockOpt(s: TSocket; level, optname: Integer; optval: TMemory; optlen: Integer): Integer; function GetSockOpt(s: TSocket; level, optname: Integer; optval: TMemory; var optlen: Integer): Integer; function Send(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; function Recv(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; function SendTo(s: TSocket; Buf: TMemory; len, flags: Integer; addrto: TVarSin): Integer; function RecvFrom(s: TSocket; Buf: TMemory; len, flags: Integer; var from: TVarSin): Integer; function ntohs(netshort: word): word; function ntohl(netlong: longword): longword; function Listen(s: TSocket; backlog: Integer): Integer; function IoctlSocket(s: TSocket; cmd: Integer; var arg: integer): Integer; function htons(hostshort: word): word; function htonl(hostlong: longword): longword; function GetSockName(s: TSocket; var name: TVarSin): Integer; function GetPeerName(s: TSocket; var name: TVarSin): Integer; function Connect(s: TSocket; const name: TVarSin): Integer; function CloseSocket(s: TSocket): Integer; function Bind(s: TSocket; const addr: TVarSin): Integer; function Accept(s: TSocket; var addr: TVarSin): TSocket; function Socket(af, Struc, Protocol: Integer): TSocket; function Select(nfds: Integer; readfds, writefds, exceptfds: PFDSet; timeout: PTimeVal): Longint; function IsNewApi(Family: integer): Boolean; function SetVarSin(var Sin: TVarSin; IP, Port: string; Family, SockProtocol, SockType: integer; PreferIP4: Boolean): integer; function GetSinIP(Sin: TVarSin): string; function GetSinPort(Sin: TVarSin): Integer; procedure ResolveNameToIP(Name: string; Family, SockProtocol, SockType: integer; const IPList: TStrings); function ResolveIPToName(IP: string; Family, SockProtocol, SockType: integer): string; function ResolvePort(Port: string; Family, SockProtocol, SockType: integer): Word; {==============================================================================} implementation uses Posix.Base, Posix.Unistd, Posix.ArpaInet, Posix.NetDB; function IN6_IS_ADDR_UNSPECIFIED(const a: PInAddr6): boolean; begin Result := Posix.NetinetIn.IN6_IS_ADDR_UNSPECIFIED(a^); { Result := ((a^.u6_addr32[0] = 0) and (a^.u6_addr32[1] = 0) and (a^.u6_addr32[2] = 0) and (a^.u6_addr32[3] = 0));} end; function IN6_IS_ADDR_LOOPBACK(const a: PInAddr6): boolean; begin Result := Posix.NetinetIn.IN6_IS_ADDR_LOOPBACK(a^); { Result := ((a^.u6_addr32[0] = 0) and (a^.u6_addr32[1] = 0) and (a^.u6_addr32[2] = 0) and (a^.u6_addr8[12] = 0) and (a^.u6_addr8[13] = 0) and (a^.u6_addr8[14] = 0) and (a^.u6_addr8[15] = 1));} end; function IN6_IS_ADDR_LINKLOCAL(const a: PInAddr6): boolean; begin Result := Posix.NetinetIn.IN6_IS_ADDR_LINKLOCAL(a^); { Result := ((a^.u6_addr8[0] = $FE) and (a^.u6_addr8[1] = $80));} end; function IN6_IS_ADDR_SITELOCAL(const a: PInAddr6): boolean; begin Result := Posix.NetinetIn.IN6_IS_ADDR_SITELOCAL(a^); // Result := ((a^.u6_addr8[0] = $FE) and (a^.u6_addr8[1] = $C0)); end; function IN6_IS_ADDR_MULTICAST(const a: PInAddr6): boolean; begin Result := Posix.NetinetIn.IN6_IS_ADDR_MULTICAST(a^); // Result := (a^.u6_addr8[0] = $FF); end; function IN6_ADDR_EQUAL(const a: PInAddr6; const b: PInAddr6): boolean; begin Result := (CompareMem( a, b, sizeof(TInAddr6))); end; procedure SET_IN6_IF_ADDR_ANY (const a: PInAddr6); begin FillChar(a^, sizeof(TInAddr6), 0); end; procedure SET_LOOPBACK_ADDR6 (const a: PInAddr6); begin FillChar(a^, sizeof(TInAddr6), 0); a^.__s6_addr8[15] := 1; end; {$IFDEF NEXTGEN} function GetHostByName(const name: string):Phostent; var h: Phostent; begin h := Posix.NetDB.gethostbyname(MarshaledAString(TMarshal.AsAnsi(name))); end; {$ENDIF} {=============================================================================} function WSAStartup(wVersionRequired: Word; var WSData: TWSAData): Integer; begin with WSData do begin wVersion := wVersionRequired; wHighVersion := $202; szDescription := 'Synsock - Synapse Platform Independent Socket Layer'; szSystemStatus := 'Running on Posix by Delphi'; iMaxSockets := 32768; iMaxUdpDg := 8192; end; Result := 0; end; function WSACleanup: Integer; begin Result := 0; end; function WSAGetLastError: Integer; begin Result := Posix.Errno.errno; end; function FD_ISSET(Socket: TSocket; var fdset: TFDSet): Boolean; begin Result := __FD_ISSET(socket, fdset); end; procedure FD_SET(Socket: TSocket; var fdset: TFDSet); begin __FD_SET(Socket, fdset); end; procedure FD_CLR(Socket: TSocket; var fdset: TFDSet); begin __FD_CLR(Socket, fdset); end; procedure FD_ZERO(var fdset: TFDSet); begin __FD_ZERO(fdset); end; {=============================================================================} function SizeOfVarSin(sin: TVarSin): integer; begin case sin.sin_family of AF_INET: Result := SizeOf(TSockAddrIn); AF_INET6: Result := SizeOf(TSockAddrIn6); else Result := 0; end; end; {=============================================================================} function Bind(s: TSocket; const addr: TVarSin): Integer; var sa: sockaddr absolute addr; begin Result := Posix.SysSocket.Bind(s, sa, SizeOfVarSin(addr)); end; function Connect(s: TSocket; const name: TVarSin): Integer; var sa: sockaddr absolute name; begin Result := Posix.SysSocket.Connect(s, sa, SizeOfVarSin(name)); end; function GetSockName(s: TSocket; var name: TVarSin): Integer; var len: socklen_t; address : sockaddr absolute name; begin len := SizeOf(name); FillChar(name, len, 0); Result := Posix.SysSocket.GetSockName(s, address, Len); end; function GetPeerName(s: TSocket; var name: TVarSin): Integer; var len: socklen_t; address : sockaddr absolute name; begin len := SizeOf(name); FillChar(name, len, 0); Result := Posix.SysSocket.GetPeerName(s, address, Len); end; function GetHostName: string; {$IFDEF NEXTGEN} var name: TArray; const cMaxHostLength = 255; begin SetLength(name, cMaxHostLength); if Posix.Unistd.GetHostName(MarshaledAString(name), cMaxHostLength) = 0 then Result := TEncoding.UTF8.GetString(name).ToUpper; {$ELSE} var s: AnsiString; begin Result := ''; setlength(s, 255); Posix.Unistd.GetHostName(PAnsiChar(s), Length(s) - 1); Result := PChar(string(s)); {$ENDIF} end; function Send(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; begin Result := Posix.SysSocket.Send(s, Buf^, len, flags); end; function Recv(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; begin Result := Posix.SysSocket.Recv(s, Buf^, len, flags); end; function SendTo(s: TSocket; Buf: TMemory; len, flags: Integer; addrto: TVarSin): Integer; var sa: sockaddr absolute addrto; begin Result := Posix.SysSocket.SendTo(s, Buf^, len, flags, sa, SizeOfVarSin(addrto)); end; function RecvFrom(s: TSocket; Buf: TMemory; len, flags: Integer; var from: TVarSin): Integer; var x: socklen_t; address : sockaddr absolute from; begin x := SizeOf(from); Result := Posix.SysSocket.RecvFrom(s, Buf^, len, flags, address, x); end; function Accept(s: TSocket; var addr: TVarSin): TSocket; var x: socklen_t; address : sockaddr absolute addr; begin x := SizeOf(addr); Result := Posix.SysSocket.Accept(s, address, x); end; function Shutdown(s: TSocket; how: Integer): Integer; begin Result := Posix.SysSocket.Shutdown(s, how); end; function SetSockOpt(s: TSocket; level, optname: Integer; optval: Tmemory; optlen: Integer): Integer; begin Result := Posix.SysSocket.setsockopt(s, level, optname, pointer(optval), optlen); end; function GetSockOpt(s: TSocket; level, optname: Integer; optval: Tmemory; var optlen: Integer): Integer; var x: socklen_t; begin x := optlen; Result := Posix.SysSocket.getsockopt(s, level, optname, pointer(optval), x); optlen := x; end; function ntohs(netshort: word): word; begin Result := Posix.ArpaInet.ntohs(NetShort); end; function ntohl(netlong: longword): longword; begin Result := Posix.ArpaInet.ntohl(NetLong); end; function Listen(s: TSocket; backlog: Integer): Integer; begin if Posix.SysSocket.Listen(s, backlog) = 0 then Result := 0 else Result := SOCKET_ERROR; end; function IoctlSocket(s: TSocket; cmd: Integer; var arg: integer): Integer; begin Result := Posix.StrOpts.Ioctl(s, cmd, @arg); end; function htons(hostshort: word): word; begin Result := Posix.ArpaInet.htons(Hostshort); end; function htonl(hostlong: longword): longword; begin Result := Posix.ArpaInet.htonl(HostLong); end; function CloseSocket(s: TSocket): Integer; begin Result := Posix.Unistd.__close(s); end; function Socket(af, Struc, Protocol: Integer): TSocket; begin Result := Posix.SysSocket.Socket(af, struc, protocol); end; function Select(nfds: Integer; readfds, writefds, exceptfds: PFDSet; timeout: PTimeVal): Longint; begin Result := Posix.SysSelect.Select(nfds, readfds, writefds, exceptfds, timeout); end; {=============================================================================} function IsNewApi(Family: integer): Boolean; begin Result := SockEnhancedApi; if not Result then Result := (Family = AF_INET6) and SockWship6Api; end; {$IFDEF NEXTGEN} function GetAddrInfo(hostname, servname: string; const hints: addrinfo; out res: Paddrinfo): Integer; begin end; {$ENDIF} function gethostbyname(const name: PAnsiChar): PHostEnt; cdecl; external libc name _PU + 'gethostbyname'; function gethostbyaddr(var addr; len: socklen_t; atype: integer): PHostEnt; cdecl; external libc name _PU + 'gethostbyaddr'; function SetVarSin(var Sin: TVarSin; IP, Port: string; Family, SockProtocol, SockType: integer; PreferIP4: Boolean): integer; var ProtoEnt: PProtoEnt; ServEnt: PServEnt; HostEnt: PHostEnt; r: integer; Hints1, Hints2: AddrInfo; Sin1, Sin2: TVarSin; TwoPass: boolean; function GetAddr(const IP, port: string; Hints: AddrInfo; var Sin: TVarSin): integer; var Addr: PAddrInfo; begin Addr := nil; try FillChar(Sin, Sizeof(Sin), 0); if Hints.ai_socktype = SOCK_RAW then begin Hints.ai_socktype := 0; Hints.ai_protocol := 0; Result := GetAddrInfo(PAnsiChar(AnsiString(IP)), nil, Hints, Addr); end else begin if (IP = cAnyHost) or (IP = c6AnyHost) then begin Hints.ai_flags := AI_PASSIVE; Result := GetAddrInfo(nil, PAnsiChar(AnsiString(Port)), Hints, Addr); end else if (IP = cLocalhost) or (IP = c6Localhost) then begin Result := GetAddrInfo(nil, PAnsiChar(AnsiString(Port)), Hints, Addr); end else begin Result := GetAddrInfo(PAnsiChar(AnsiString(IP)), PAnsiChar(AnsiString(Port)), Hints, Addr); end; end; if Result = 0 then if (Addr <> nil) then Move(Addr^.ai_addr^, Sin, Addr^.ai_addrlen); finally if Assigned(Addr) then FreeAddrInfo(Addr^); end; end; begin Result := 0; FillChar(Sin, Sizeof(Sin), 0); if not IsNewApi(family) then begin SynSockCS.Enter; try Sin.sin_family := AF_INET; ProtoEnt := GetProtoByNumber(SockProtocol); ServEnt := nil; if ProtoEnt <> nil then {$IFDEF NEXTGEN} ServEnt := GetServByName(MarshaledAString(TMarshal.AsAnsi(Port)), ProtoEnt^.p_name); {$ELSE} ServEnt := GetServByName(PAnsiChar(AnsiString(Port)), ProtoEnt^.p_name); {$ENDIF} if ServEnt = nil then Sin.sin_port := htons(StrToIntDef(Port, 0)) else Sin.sin_port := ServEnt^.s_port; if IP = cBroadcast then Sin.sin_addr.s_addr := UInt32(INADDR_BROADCAST) else begin {$IFDEF NEXTGEN} Sin.sin_addr.s_addr := inet_addr(MarshaledAString(TMarshal.AsAnsi(IP))); {$ELSE} Sin.sin_addr.s_addr := inet_addr(PAnsiChar(AnsiString(IP))); {$ENDIF} if Sin.sin_addr.s_addr = UInt32(INADDR_NONE) then begin {$IFDEF NEXTGEN} HostEnt := GetHostByName(MarshaledAString(TMarshal.AsAnsi(IP))); {$ELSE} HostEnt := GetHostByName(PAnsiChar(AnsiString(IP))); {$ENDIF} Result := WSAGetLastError; if HostEnt <> nil then Sin.sin_addr.S_addr := UInt32(HostEnt.h_addr_list); end; end; finally SynSockCS.Leave; end; end else begin FillChar(Hints1, Sizeof(Hints1), 0); FillChar(Hints2, Sizeof(Hints2), 0); TwoPass := False; if Family = AF_UNSPEC then begin if PreferIP4 then begin Hints1.ai_family := AF_INET; Hints2.ai_family := AF_INET6; TwoPass := True; end else begin Hints2.ai_family := AF_INET; Hints1.ai_family := AF_INET6; TwoPass := True; end; end else Hints1.ai_family := Family; Hints1.ai_socktype := SockType; Hints1.ai_protocol := SockProtocol; Hints2.ai_socktype := Hints1.ai_socktype; Hints2.ai_protocol := Hints1.ai_protocol; r := GetAddr(IP, Port, Hints1, Sin1); Result := r; sin := sin1; if r <> 0 then if TwoPass then begin r := GetAddr(IP, Port, Hints2, Sin2); Result := r; if r = 0 then sin := sin2; end; end; end; function GetSinIP(Sin: TVarSin): string; var p: PAnsiChar; hostlen, servlen: integer; r: integer; sa:sockaddr absolute Sin; byHost, byServ: TBytes; HostWrapper, ServWrapper: TPtrWrapper; begin Result := ''; if not IsNewApi(Sin.AddressFamily) then begin p := inet_ntoa(Sin.sin_addr); if p <> nil then Result := string(p); end else begin // NEXTGEN compatible hostlen := NI_MAXHOST; servlen := NI_MAXSERV; Setlength(byHost, hostLen); Setlength(byServ, hostLen); HostWrapper := TPtrWrapper.Create(@byHost[0]); ServWrapper := TPtrWrapper.Create(@byServ[0]); r := getnameinfo(sa, SizeOfVarSin(sin), HostWrapper.ToPointer, hostlen, ServWrapper.ToPointer, servlen, NI_NUMERICHOST + NI_NUMERICSERV); if r = 0 then Result := TMarshal.ReadStringAsAnsi(HostWrapper{, NI_MAXHOST}); end; end; function GetSinPort(Sin: TVarSin): Integer; begin if (Sin.sin_family = AF_INET6) then Result := synsock.ntohs(Sin.sin6_port) else Result := synsock.ntohs(Sin.sin_port); end; procedure ResolveNameToIP(Name: string; Family, SockProtocol, SockType: integer; const IPList: TStrings); type TaPInAddr = array[0..250] of PInAddr; PaPInAddr = ^TaPInAddr; var Hints: AddrInfo; Addr: PAddrInfo; AddrNext: PAddrInfo; r: integer; host, serv: string; hostlen, servlen: integer; RemoteHost: PHostEnt; IP: UINT32; PAdrPtr: PaPInAddr; i: Integer; s: string; InAddr: TInAddr; aby:TArray; begin IPList.Clear; if not IsNewApi(Family) then begin {$IFDEF NEXTGEN} IP := inet_addr(MarshaledAString(TMarshal.AsAnsi(Name))); {$ELSE} IP := inet_addr(PAnsiChar(AnsiString(Name))); {$ENDIF} if IP = UINT32(INADDR_NONE) then begin SynSockCS.Enter; try {$IFDEF NEXTGEN} RemoteHost := GetHostByName(MarshaledAString(TMarshal.AsAnsi(Name))); {$ELSE} RemoteHost := GetHostByName(PAnsiChar(AnsiString(Name))); {$ENDIF} if RemoteHost <> nil then begin PAdrPtr := PAPInAddr(RemoteHost^.h_addr_list); i := 0; while PAdrPtr^[i] <> nil do begin InAddr := PAdrPtr^[i]^; aby := TArray(InAddr); s := Format('%d.%d.%d.%d', [aby[0], aby[1], aby[2], aby[3]]); IPList.Add(s); Inc(i); end; end; finally SynSockCS.Leave; end; end else IPList.Add(Name); end else begin Addr := nil; try FillChar(Hints, Sizeof(Hints), 0); Hints.ai_family := AF_UNSPEC; Hints.ai_socktype := SockType; Hints.ai_protocol := SockProtocol; Hints.ai_flags := 0; r := GetAddrInfo(PAnsiChar(AnsiString(Name)), nil, Hints, Addr); if r = 0 then begin AddrNext := Addr; while not(AddrNext = nil) do begin if not(((Family = AF_INET6) and (AddrNext^.ai_family = AF_INET)) or ((Family = AF_INET) and (AddrNext^.ai_family = AF_INET6))) then begin hostlen := NI_MAXHOST; servlen := NI_MAXSERV; setlength(host, hostlen); setlength(serv, servlen); {$IFDEF NEXTGEN} r := getnameinfo(AddrNext^.ai_addr^, AddrNext^.ai_addrlen, MarshaledAString(TMarshal.AsAnsi(host)), hostlen, MarshaledAString(TMarshal.AsAnsi(serv)), servlen, NI_NUMERICHOST + NI_NUMERICSERV); {$ELSE} r := getnameinfo(AddrNext^.ai_addr^, AddrNext^.ai_addrlen, PAnsiChar(AnsiString(host)), hostlen, PAnsiChar(AnsiString(serv)), servlen, NI_NUMERICHOST + NI_NUMERICSERV); {$ENDIF} if r = 0 then begin host := PChar(host); IPList.Add(host); end; end; AddrNext := AddrNext^.ai_next; end; end; finally if Assigned(Addr) then FreeAddrInfo(Addr^); end; end; if IPList.Count = 0 then IPList.Add(cAnyHost); end; function ResolvePort(Port: string; Family, SockProtocol, SockType: integer): Word; var ProtoEnt: PProtoEnt; ServEnt: PServEnt; Hints: AddrInfo; Addr: PAddrInfo; _Addr: AddrInfo; r: integer; begin Result := 0; if not IsNewApi(Family) then begin SynSockCS.Enter; try ProtoEnt := GetProtoByNumber(SockProtocol); ServEnt := nil; if ProtoEnt <> nil then ServEnt := GetServByName(PAnsiChar(AnsiString(Port)), ProtoEnt^.p_name); if ServEnt = nil then Result := StrToIntDef(Port, 0) else Result := htons(ServEnt^.s_port); finally SynSockCS.Leave; end; end else begin Addr := nil; try FillChar(Hints, Sizeof(Hints), 0); Hints.ai_family := AF_UNSPEC; Hints.ai_socktype := SockType; Hints.ai_protocol := Sockprotocol; Hints.ai_flags := AI_PASSIVE; r := GetAddrInfo(nil, PAnsiChar(AnsiString(Port)), Hints, Addr); if (r = 0) and Assigned(Addr) then begin if Addr^.ai_family = AF_INET then Result := htons(Addr^.ai_addr^.sa_data[0]); // port if Addr^.ai_family = AF_INET6 then Result := htons(PSockAddrIn6(Addr^.ai_addr)^.sin6_port); end; finally if Assigned(Addr) then begin _Addr := Addr^; FreeAddrInfo(_Addr); end; end; end; end; function ResolveIPToName(IP: string; Family, SockProtocol, SockType: integer): string; var Hints: AddrInfo; Addr: PAddrInfo; _Addr: AddrInfo; r: integer; host, serv: string; hostlen, servlen: integer; RemoteHost: PHostEnt; IPn: UINT32; begin Result := IP; if not IsNewApi(Family) then begin IPn := inet_addr(PAnsiChar(AnsiString(IP))); if IPn <> UINT32(INADDR_NONE) then begin SynSockCS.Enter; try RemoteHost := GetHostByAddr(IPn, SizeOf(IPn), AF_INET); if RemoteHost <> nil then Result := string(RemoteHost^.hname); finally SynSockCS.Leave; end; end; end else begin Addr := nil; try FillChar(Hints, Sizeof(Hints), 0); Hints.ai_family := AF_UNSPEC; Hints.ai_socktype := SockType; Hints.ai_protocol := SockProtocol; Hints.ai_flags := 0; r := GetAddrInfo(PAnsiChar(AnsiString(IP)), nil, Hints, Addr); if (r = 0) and Assigned(Addr)then begin hostlen := NI_MAXHOST; servlen := NI_MAXSERV; setlength(host, hostlen); setlength(serv, servlen); r := getnameinfo(Addr^.ai_addr^, Addr^.ai_addrlen, PAnsiChar(AnsiString(host)), hostlen, PAnsiChar(AnsiString(serv)), servlen, NI_NUMERICSERV); if r = 0 then Result := PChar(host); end; finally if Assigned(Addr) then begin _Addr := Addr^; FreeAddrInfo(_Addr); end; end; end; end; {=============================================================================} function InitSocketInterface(stack: string): Boolean; begin SockEnhancedApi := True; SockWship6Api := False; // Libc.Signal(Libc.SIGPIPE, TSignalHandler(Libc.SIG_IGN)); Result := True; end; function DestroySocketInterface: Boolean; begin Result := True; end; initialization begin SynSockCS := SyncObjs.TCriticalSection.Create; SET_IN6_IF_ADDR_ANY (@in6addr_any); SET_LOOPBACK_ADDR6 (@in6addr_loopback); end; finalization begin SynSockCS.Free; end; {$ENDIF} ./concattool.lfm0000644000175000017500000002216314576573021014020 0ustar anthonyanthonyobject ConcatToolForm: TConcatToolForm Left = 2543 Height = 404 Top = 80 Width = 1122 Caption = 'Concatenation tool' ClientHeight = 404 ClientWidth = 1122 OnShow = FormShow Position = poScreenCenter LCLVersion = '2.0.12.0' object Memo1: TMemo AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = StatusBar1 Left = 915 Height = 384 Top = 0 Width = 207 Anchors = [akTop, akRight, akBottom] Lines.Strings = ( 'All .dat files in the selected directory will be concatenated in datestamped chronological order.' '' 'The oldest file will have its header retained, all other files will have their header stripped.' '' 'The output file will be stored in the same directory but with a suffix of "_concat.dat".' ) ScrollBars = ssAutoBoth TabOrder = 0 end object StatusBar1: TStatusBar Left = 0 Height = 20 Top = 384 Width = 1122 Panels = < item Width = 50 end> SimplePanel = False end object ProgressBar1: TProgressBar AnchorSideLeft.Control = Owner AnchorSideRight.Control = Memo1 AnchorSideBottom.Control = StatusBar1 Left = 0 Height = 20 Top = 364 Width = 915 Anchors = [akLeft, akRight, akBottom] Smooth = True TabOrder = 2 end object SourceDirectoryEdit: TEdit AnchorSideLeft.Control = SourceDirectoryButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SourceDirectoryButton Left = 70 Height = 30 Hint = ' Source directory.' Top = 4 Width = 832 BorderSpacing.Left = 4 TabOrder = 3 end object SourceDirectoryButton: TBitBtn AnchorSideLeft.Control = ResetDirectoryButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = ResetDirectoryButton AnchorSideRight.Control = SourceDirectoryEdit Left = 36 Height = 30 Hint = 'Select source directory.' Top = 4 Width = 30 BorderSpacing.Left = 2 Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000534D46A0A465 34FFA46534FFA46534FFA46534FFA46534FFA46534FFA46534FFA46534FFA465 34FFA46534FFA46534FFA46534FFA46534FFA46635E9A6673639484848E09786 78FFA5693AFFBA8350FFBA8350FFBA8350FFBA8350FFBA8350FFBA8350FFBA83 50FFBA8350FFBA8350FFBA8350FFBA8350FFB27845FFA56636C0494949E09999 99FFA56839FFD3A67EFFD2A378FFD2A378FFD2A378FFD2A378FFD2A378FFD2A3 78FFD2A378FFD2A378FFD2A378FFD3A479FFD1A57AFFA56635F5484848E29B9B 9BFFA46738FFD5AB85FFCE9C6EFFCE9C6DFFCE9C6DFFCE9C6DFFCE9C6DFFCE9C 6DFFCE9C6DFFCE9C6DFFCE9C6DFFCF9E70FFD5AB84FFA56635F84C4C4CE4A1A1 A1FFA56838FFE2C4A9FFD5A881FFD3A47AFFD3A47AFFD3A47AFFD3A47AFFD3A4 7AFFD3A47AFFD3A47AFFD3A47AFFD4A77EFFDDBA9CFFA56635F9515151E5A4A5 A5FFA56737FFE9D2BEFFDDBA9BFFDDB999FFDCB695FFDBB592FFDAB390FFD9B2 8EFFD8AE89FFD7AD87FFD7AD87FFD8B08BFFE5C9B1FFA56635FA565656E7A9A9 A9FFA46636FFECD8C6FFDDBA99FFDDBA99FFDDBA99FFDDBA99FFDDBA99FFDDBA 99FFDDBA99FFDCB795FFDAB28EFFD9B08BFFE7CFB8FFA56635FB5B5B5BE9AEAE AEFFA56736FFEBD7C4FFDCB794FFDCB794FFDCB794FFDCB794FFDCB794FFDCB7 94FFDCB794FFDCB794FFDCB794FFDAB491FFE6CDB6FFA56635FC5F5F5FE9B3B3 B3FFA46635FFEAD5C1FFDBB491FFDBB491FFDBB591FFDBB591FFDBB592FFDBB5 92FFDBB592FFDBB592FFDBB592FFDCB896FFE7CFB7FFA46634FD656565EBB7B7 B7FFA56635FFEAD3BEFFEAD4BFFFEAD4BFFFEAD4BEFFEAD4BEFFEAD4BEFFE9D3 BEFFE9D3BEFFE9D3BEFFE9D3BEFFE9D3BEFFE8CFB8FFA56534FE6A6A6AECBDBD BDFFA66D41FFA56636FFA56636FFA56636FFA56636FFA56636FFA46635FFA466 35FFA46635FFA46635FFA46534FFA46534FFA46534FFA66837E06E6E6EEEC0C1 C1FFACACACFFAAAAAAFFA7A7A7FFA5A5A5FFA4A4A4FFA4A4A4FFACACACFFB6B6 B6FFB9B9B9FFBBBBBBFFA2A2A2FF6A6A6AA94747470047474700737373EFC5C5 C5FFB0B0B0FFADADADFFABABABFFAAAAAAFFACACACFF8D8D8DF58D8D8DF28C8C 8CF28C8C8CF28C8C8CF2808080F66C6C6C844747470047474700787878F0C9C9 C9FFC7C7C7FFC5C5C5FFC4C4C4FFC4C4C4FFB4B4B4FF747474CA727272387272 7238727272386D6D6D386F6F6F355555550347474700474747007A7A7A9F7979 79EC797979EC797979EC797979EC797979EC797979E278787835474747004747 4700474747004747470047474700474747004747470047474700474747004747 4700474747004747470047474700474747004747470047474700474747004747 4700474747004747470047474700474747004747470047474700 } OnClick = SourceDirectoryButtonClick TabOrder = 4 end object InputFileListMemo: TMemo AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = SourceDirectoryEdit AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = ProgressBar1 Left = 0 Height = 303 Top = 59 Width = 304 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Top = 2 BorderSpacing.Bottom = 2 ScrollBars = ssAutoBoth TabOrder = 5 end object Label1: TLabel AnchorSideLeft.Control = InputFileListMemo AnchorSideTop.Control = ResetDirectoryButton AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = InputFileListMemo Left = 0 Height = 17 Top = 40 Width = 80 BorderSpacing.Top = 6 Caption = 'Input file list:' ParentColor = False end object ProcessStatusMemo: TMemo AnchorSideLeft.Control = StartButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = InputFileListMemo AnchorSideRight.Control = SourceDirectoryEdit AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = InputFileListMemo AnchorSideBottom.Side = asrBottom Left = 383 Height = 303 Top = 59 Width = 519 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 4 ScrollBars = ssBoth TabOrder = 6 end object Label2: TLabel AnchorSideLeft.Control = ProcessStatusMemo AnchorSideBottom.Control = InputFileListMemo Left = 383 Height = 17 Top = 40 Width = 110 Anchors = [akLeft, akBottom] Caption = 'Processing status:' ParentColor = False end object StartButton: TButton AnchorSideLeft.Control = InputFileListMemo AnchorSideLeft.Side = asrBottom Left = 304 Height = 25 Top = 176 Width = 75 Anchors = [akLeft] Caption = 'Start' OnClick = StartButtonClick TabOrder = 7 end object ResetDirectoryButton: TBitBtn AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 4 Height = 30 Hint = 'Reset location of files to default.' Top = 4 Width = 30 BorderSpacing.Left = 4 BorderSpacing.Top = 4 Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000FFFFFF00FFFF FF00FFFFFF00FFFFFF004E35001D4E3500854E3500C04F3801EE4F3801ED4E35 00BA4E35007F4E35001FFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF004E3500064E35007A594405F48F6A07FEC69E12FFE2AE10FFD0A616FFAA94 1AFF82680CFD604808F44E35006D4E350001FFFFFF00FFFFFF00FFFFFF004E35 00014E3500B273610FEEAA981EFCC49D14FFD1A10FFFD4A30EFFC89F12FFB398 19FFA78E17FF9C8414FF705F0EF84E3500B84E350001FFFFFF00FFFFFF004E35 00405E4606DC9F8415AEA78E17D9AF981BFFB99C17FFB99D17FFB2971AFFA892 18FFA28512FF99760BFF926C06FF66510AFA4E350074FFFFFF00FFFFFF00664C 04208D6C096799760B869F7F11AFA58B15DCA39119FA8B7915FE8C7714FE9F87 17FF9B780DFF936D07FF8F6501FF775805FF553F05F74E35002900600000644B 061A8D640132936D054C98720A6C705A0CBD543E04F44F3601AA4E3700A95C45 06F4877007FE906602FF825900FF6C4A00FF4D3C07FE4E35007AFFFFFF005D48 07056C50040D7E5900197C59042C4F3801B94E350022FFFFFF00FFFFFF004E35 0027584304F7785604FF6E4B00FF5A3D00FF463604FF543C02C4FFFFFF004E35 000D4F3801124E3902154D3703184E3500174E350008FFFFFF00FFFFFF00FFFF FF00513901B9564004FF5B3F03FF543C08FF503908FF5B4405FA574003B6664C 06FF725308FF896715FF977115FFA07610FF64500AFF56410845FFFFFF00FFFF FF00503902B04A3704FF614915FF755E2BFF6F5827FF5F4907F5604A06FE9070 2CFFA7853BFFB38C37FFAE801CFF906404FF534007F64E350031FFFFFF004E35 0024574507F54C3602FF765E2CFF846C3AFF725F2CFF594205C5624906FFA186 4DFFA6894CFFA88844FF7E5806FF634703FE513F07F8503902B1503902B45745 07F8534005FE69511FFF947D4CFF947D4CFF74612CFE4E370084614605FFA992 61FFAA925EFFAB925DFF9E844CFF6A4F16FF4F3903FF524010FF4B3907FF4E38 02FF705928FFA08A5AFFA48E5EFF9C8758FF664F10F74E3500275F4403FFB59F 71FFB29D70FFB49E70FFB39D6DFFB39D6DFFA38F65FF877141FF887140FFA18B 5BFFB39D6FFFB39D6DFFB49E70FF7D692DFA50380074FFFFFF00604402FFB6A2 72FF73560FFB8F773FFABDA87BFFC3AE7FFFC3AE7FFFC3AE7FFFC3AE7FFFC3AE 7FFFC3AE7FFFBDA97DFF8D7439FA553C01C14E350002FFFFFF00594107EA684B 0EF24E3500455037007A6E5112F7A89264FFC1AF87FFD0BE96FFCEBB92FFBAA6 7AFFA58F5FFF715313F74E3500734E350002FFFFFF00FFFFFF004E3500204E35 001CFFFFFF00FFFFFF004E35002450370085684E16C9836B37F3765C24F15B3F 03C05037007E4E350023FFFFFF00FFFFFF00FFFFFF00FFFFFF00 } OnClick = ResetDirectoryButtonClick ParentShowHint = False ShowHint = True TabOrder = 8 end object SelectDirectoryDialog1: TSelectDirectoryDialog Left = 564 Top = 108 end end ./gtk-refresh.png0000644000175000017500000000162014576573022014076 0ustar anthonyanthonyPNG  IHDRasBIT|dtEXtSoftwarewww.inkscape.org<"IDAT8mRMlTe={3m[ 3јF7`XDa M ta1L%47!«qВF;̴Yp=''\bfHe4jՄ'¸.ؖp|t&E@O*}]gQ(V02v|g'-lzW6ÌĈdǂЉ  3EW Ŋ 5>.W f43=gOk40ĭCձž _M^l8l?3]X1/23ǕgƧg^hڷuS( wD-HU/<A2e^ۏ^,}?,az  ,Hc$UgnSui&vn{'v>Eq4Akw_?߼''k'W%߼[0j>AX-/?ԩT=eYcJ奎Go@W!'$_ԓSln\{&?3 DV%r=?JeFmXv@x\qqah=Ѿ2;}З|9r-k5tT2>hMA҄ǡ̖MD, z=*];[x 8wyIuI1MN<-I7, #?[FՕD(̗ˣRmcer-0{ W1oR ]!PՑl.UvjeIENDB`./firmware/0000755000175000017500000000000014576573022012764 5ustar anthonyanthony./firmware/SQMLE-4-4-59.hex0000644000175000017500000012132013344071747015106 0ustar anthonyanthony:020000040000FA :0408000061EF09F0AB :1008100003B26EEF05F0F2B48CEF05F09EB094EFEA :1008200005F09EB29CEF05F0F2A81AEF04F0F2B2C8 :100830001CEF04F010EF09F0CD90F2929EA026EF8D :1008400004F00101533F26EF04F0542BB2C1B6F17E :10085000B3C1B7F1B4C1B8F1B5C1B9F1AEC1B2F12C :10086000AFC1B3F1B0C1B4F1B1C1B5F1AAC1AEF13C :10087000ABC1AFF1ACC1B0F1ADC1B1F1A6C1AAF14C :10088000A7C1ABF1A8C1ACF1A9C1ADF1A2C1A6F15C :10089000A3C1A7F1A4C1A8F1A5C1A9F19EC1A2F16C :1008A0009FC1A3F1A0C1A4F1A1C1A5F19AC19EF17C :1008B0009BC19FF19CC1A0F19DC1A1F1CECF9AF146 :1008C000CFCF9BF153C19CF154C19DF1CF6ACE6A49 :1008D0000101536B546B9E90CD800FBC0F8E0FBAED :1008E00075EF04F00F8A10EF09F013880F8C0FBE1C :1008F000B2EF04F09AC19EF19BC19FF19CC1A0F19F :100900009DC1A1F19EC1A2F19FC1A3F1A0C1A4F11B :10091000A1C1A5F1A2C1A6F1A3C1A7F1A4C1A8F1EB :10092000A5C1A9F1A6C1AAF1A7C1ABF1A8C1ACF1BB :10093000A9C1ADF1AAC1AEF1ABC1AFF1ACC1B0F18B :10094000ADC1B1F1AEC1B2F1AFC1B3F1B0C1B4F15B :10095000B1C1B5F1B2C1B6F1B3C1B7F1B4C1B8F12B :10096000B5C1B9F101015E6B5F6B606B616B9A5150 :100970005E279B515F239C5160239D5161239E51B3 :100980005E279F515F23A0516023A1516123A25193 :100990005E27A3515F23A4516023A5516123A65173 :1009A0005E27A7515F23A8516023A9516123AA5153 :1009B0005E27AB515F23AC516023AD516123AE5133 :1009C0005E27AF515F23B0516023B1516123B25113 :1009D0005E27B3515F23B4516023B5516123B651F3 :1009E0005E27B7515F23B8516023B9516123D89076 :1009F0000101613360335F335E33D89001016133AD :100A000060335F335E33D8900101613360335F330D :100A10005E3300C10CF101C10DF102C10EF103C141 :100A20000FF104C110F105C111F106C112F107C1A6 :100A300013F108C114F109C115F10AC116F10BC176 :100A400017F134C135F111B831EF05F00101620E33 :100A5000046F010E056F000E066F000E076F3AEF70 :100A600005F00101A70E046F020E056F000E066F60 :100A7000000E076F5EC100F15FC101F160C102F1BC :100A800061C103F11BEC20F003BF04D01ABE02D0F9 :100A90001AA0108C11A052EF05F010BA52EF05F019 :100AA0000F80108A0CC100F10DC101F10EC102F1DD :100AB0000FC103F110C104F111C105F112C106F11A :100AC00013C107F114C108F115C109F116C10AF1EA :100AD00017C10BF135C134F110EF09F00392ABB23D :100AE000AB98AB88030103EE00F080517F0BE92641 :100AF00004C0EFFF802B8151805D700BD8A48B82E6 :100B000000008051815D700BD8A48B9281518019B7 :100B1000D8B4079010EF09F0F2940101453F10EFAF :100B200009F0462B10EF09F09E900101533F10EFA2 :100B300009F0542B10EF09F09E9213A0C6EF05F0B8 :100B400001015E6B5F6B606B616B626B636B646B0F :100B5000656B666B676B686B696B536B546BCF6AC5 :100B6000CE6A0F9A0F9C0F9E0101476B486B496B31 :100B70004A6B4B6B4C6B4D6B4E6B4F6B506B516BB1 :100B8000526B456B466BD76AD66A139011B83AEF31 :100B900007F08BB4D3EF05F010ACD3EF05F08B84E6 :100BA000109CD4EF05F08B94C3CF55F1C4CF56F110 :100BB000C28207B443EF06F047C14BF148C14CF184 :100BC00049C14DF14AC14EF15EC162F15FC163F1AD :100BD00060C164F161C165F113A8F1EF05F0138CF8 :100BE00013989AC1BAF19BC1BBF19CC1BCF19DC1E4 :100BF000BDF19EC1BEF19FC1BFF1A0C1C0F1A1C1B5 :100C0000C1F1A2C1C2F1A3C1C3F1A4C1C4F1A5C184 :100C1000C5F1A6C1C6F1A7C1C7F1A8C1C8F1A9C154 :100C2000C9F1AAC1CAF1ABC1CBF1ACC1CCF1ADC124 :100C3000CDF1AEC1CEF1AFC1CFF1B0C1D0F1B1C1F4 :100C4000D1F1B2C1D2F1B3C1D3F1B4C1D4F1B5C1C4 :100C5000D5F1B6C1D6F1B7C1D7F1B8C1D8F1B9C194 :100C6000D9F1010155515B2756515C23E86A5D2398 :100C70000E2E43EF06F05CC157F15DC158F15B6B7E :100C80005C6B5D6B078E0201002F10EF09F03C0ECC :100C9000006F1B50E00BE00AE866128819BE02D014 :100CA00019B4108E00C10CF101C10DF102C10EF199 :100CB00003C10FF104C110F105C111F106C112F118 :100CC00007C113F108C114F109C115F10AC116F1E8 :100CD0000BC117F134C135F101018E6777EF06F0D2 :100CE0008F6777EF06F0906777EF06F091677BEFFD :100CF00006F0ABEF06F092C100F193C101F194C18F :100D000002F195C103F10101010E046F000E056FA0 :100D1000000E066F000E076F1BEC20F000C192F171 :100D200001C193F102C194F103C195F10067A0EFF5 :100D300006F00167A0EF06F00267A0EF06F0036778 :100D4000ABEF06F08EC192F18FC193F190C194F197 :100D500091C195F10F80D57ED5BE6ED0D6CF47F12B :100D6000D7CF48F145C149F1E86AE8CF4AF1138A83 :100D70001ABE02D01AA0108C109047C100F148C1D1 :100D800001F149C102F14AC103F101010A0E046FE8 :100D9000000E056F000E066F000E076F1BEC20F0B3 :100DA00003AF1080010154A7E2EF06F00F9A0F9CE9 :100DB0000F9E0101000E5E6F600E5F6F3D0E606F53 :100DC000080E616F010147BFF2EF06F04867F2EFCE :100DD00006F04967F2EF06F04A67F2EF06F0F28894 :100DE00017EF07F0F2985E6B5F6B606B616B9A6B4D :100DF0009B6B9C6B9D6B9E6B9F6BA06BA16BA26BA7 :100E0000A36BA46BA56BA66BA76BA86BA96BAA6B56 :100E1000AB6BAC6BAD6BAE6BAF6BB06BB16BB26B06 :100E2000B36BB46BB56BB66BB76BB86BB96BD76A9A :100E3000D66A0101456B466B0CC100F10DC101F191 :100E40000EC102F10FC103F110C104F111C105F18E :100E500012C106F113C107F114C108F115C109F15E :100E600016C10AF117C10BF135C134F110EF09F0C9 :100E700010EF09F00201002F94EF08F0D59ED6CFB5 :100E800047F1D7CF48F145C149F1E86AE8CF4AF1C7 :100E9000138AD76AD66A0101456B466BD58E1B5003 :100EA000E00BE00AE866128819BE02D019B4108E71 :100EB00018AE1D8C00C10CF101C10DF102C10EF183 :100EC00003C10FF104C110F105C111F106C112F106 :100ED00007C113F108C114F109C115F10AC116F1D6 :100EE0000BC117F134C135F10FA0109A11B884EF7E :100EF00007F00101620E046F010E056F000E066F10 :100F0000000E076F8DEF07F00101A70E046F020EB0 :100F1000056F000E066F000E076F47C100F148C154 :100F200001F149C102F14AC103F11BEC20F003BFFA :100F3000A0EF07F01ABE02D01AA0108C11B00F80DB :100F40000CC100F10DC101F10EC102F10FC103F19D :100F500010C104F111C105F112C106F113C107F16D :100F600014C108F115C109F116C10AF117C10BF13D :100F700035C134F102013C0E006F00C10CF101C11A :100F80000DF102C10EF103C10FF104C110F105C151 :100F900011F106C112F107C113F108C114F109C121 :100FA00015F10AC116F10BC117F134C135F1010178 :100FB0008E67E2EF07F08F67E2EF07F09067E2EFEE :100FC00007F09167E6EF07F016EF08F092C100F125 :100FD00093C101F194C102F195C103F10101010E28 :100FE000046F000E056F000E066F000E076F1BECFE :100FF00020F000C192F101C193F102C194F103C14B :1010000095F100670BEF08F001670BEF08F002673E :101010000BEF08F0036716EF08F08EC192F18FC155 :1010200093F190C194F191C195F10F80109047C157 :1010300000F148C101F149C102F14AC103F10101C6 :101040000A0E046F000E056F000E066F000E076F8C :101050001BEC20F003AF1080010154A73CEF08F017 :101060000F9A0F9C0F9E0101000E5E6F600E5F6F66 :101070003D0E606F080E616F47C100F148C101F17C :1010800049C102F14AC103F10101140E046F050EBA :10109000056F000E066F000E076F1BEC20F003AF0C :1010A00055EF08F0F2887AEF08F0F2985E6B5F6B0C :1010B000606B616B9A6B9B6B9C6B9D6B9E6B9F6B6C :1010C000A06BA16BA26BA36BA46BA56BA66BA76BAC :1010D000A86BA96BAA6BAB6BAC6BAD6BAE6BAF6B5C :1010E000B06BB16BB26BB36BB46BB56BB66BB76B0C :1010F000B86BB96B0CC100F10DC101F10EC102F169 :101100000FC103F110C104F111C105F112C106F1C3 :1011100013C107F114C108F115C109F116C10AF193 :1011200017C10BF135C134F18BB49EEF08F010AC50 :101130009EEF08F08B84109C9FEF08F08B94C3CF38 :1011400055F1C4CF56F1C28207B40EEF09F047C182 :101150004BF148C14CF149C14DF14AC14EF15EC15C :1011600062F15FC163F160C164F161C165F113A80F :10117000BCEF08F0138C13989AC1BAF19BC1BBF174 :101180009CC1BCF19DC1BDF19EC1BEF19FC1BFF12B :10119000A0C1C0F1A1C1C1F1A2C1C2F1A3C1C3F1FB :1011A000A4C1C4F1A5C1C5F1A6C1C6F1A7C1C7F1CB :1011B000A8C1C8F1A9C1C9F1AAC1CAF1ABC1CBF19B :1011C000ACC1CCF1ADC1CDF1AEC1CEF1AFC1CFF16B :1011D000B0C1D0F1B1C1D1F1B2C1D2F1B3C1D3F13B :1011E000B4C1D4F1B5C1D5F1B6C1D6F1B7C1D7F10B :1011F000B8C1D8F1B9C1D9F1010155515B27565198 :101200005C23E86A5D230E2E0EEF09F05CC157F1F6 :101210005DC158F15B6B5C6B5D6B078E10EF09F085 :1012200002C0E0FF005001C0D8FF1000A6B216EFC8 :1012300009F00CC0A9FF0BC0A8FFA69EA69CA6841F :10124000F29E550EA76EAA0EA76EA682F28EA694E7 :10125000A6B228EF09F00C2A1200A96EA69EA69C41 :10126000A680A8500C2A120004012C0E826F41ECBB :101270000BF016EC21F00C502DEC09F0E8CF00F14A :101280000C502DEC09F0E8CF01F101AF4DEF09F062 :101290000101FF0E026FFF0E036FB9EC20F029670A :1012A00059EF09F00401200E826F41EC0BF05EEF64 :1012B00009F004012D0E826F41EC0BF0C3EC1EF01F :1012C0001200316A076A0F6A106A116A126A136A99 :1012D0000F010E0EC16E860EC06E030EC26E0F01A0 :1012E000896A110E926E080E8A6EF10E936E8B6AE9 :1012F000800E946EF18E8A848B86FC0E2DEC09F0A4 :10130000E8CF0BF00BA011800BA211820BA411846B :101310000BA81188C90E2DEC09F0E8CF18F0CA0E01 :101320002DEC09F0E8CF19F0CB0E2DEC09F0E8CF49 :101330001AF0CC0E2DEC09F0E8CF1BF0CE0E2DEC00 :1013400009F0E8CF14F0CD0E2DEC09F0E8CF30F025 :101350001D6A1E6A0E6A01015B6B5C6B5D6B576BED :10136000586BF29A0101476B486B496B4A6B4B6BA8 :101370004C6B4D6B4E6B4F6B506B516B526B456BA7 :10138000466BD76AD66A0F01280ED56EF28A9D90F9 :10139000B00ECD6E01015E6B5F6B606B616B626B5B :1013A000636B646B656B666B676B686B696B536BC8 :1013B000546BCF6ACE6A0F9A0F9C0F9E9D80760E5B :1013C000CA6E9D8202013C0E006FCC6A160E2DEC97 :1013D00009F0E8CF00F1170E2DEC09F0E8CF01F18C :1013E000180E2DEC09F0E8CF02F1190E2DEC09F0E2 :1013F000E8CF03F1010103AF18EF0AF016EC21F07A :10140000160E0C6E00C10BF016EC09F0170E0C6EE8 :1014100001C10BF016EC09F0180E0C6E02C10BF0B6 :1014200016EC09F0190E0C6E03C10BF016EC09F066 :1014300000C18EF101C18FF102C190F103C191F1A0 :1014400000C192F101C193F102C194F103C195F180 :101450001A0E2DEC09F0E8CF00F11B0E2DEC09F06F :10146000E8CF01F11C0E2DEC09F0E8CF02F11D0EC2 :101470002DEC09F0E8CF03F1010103AF6EEF0AF0A4 :1014800016EC21F01A0E0C6E00C10BF016EC09F0F0 :101490001B0E0C6E01C10BF016EC09F01C0E0C6E4D :1014A00002C10BF016EC09F01D0E0C6E03C10BF01F :1014B00016EC09F01A0E2DEC09F0E8CF00F11B0E26 :1014C0002DEC09F0E8CF01F11C0E2DEC09F0E8CF6E :1014D00002F11D0E2DEC09F0E8CF03F100C196F1E9 :1014E00001C197F102C198F103C199F1240EAC6ECC :1014F000900EAB6E240EAC6E080EB86E000EB06E81 :101500001F0EAF6E0401806B816B0F01900EAB6EEE :101510000F019D8A0301806B816BC26B8B920790D8 :101520000001F28EF28C07B071EF1DF00FB069EF81 :1015300016F010BE69EF16F012B869EF16F003014D :10154000805181197F0BD8B471EF1DF013EE00F0BC :1015500081517F0BE126812BE7CFE8FFE00BD8B468 :1015600071EF1DF023EE82F0C2513F0BD926E7CF79 :10157000DFFFC22BDF50780AD8A471EF1DF007807F :1015800092C100F193C101F194C102F195C103F13F :101590000101040E046F000E056F000E066F000EB1 :1015A000076F1BEC20F000AFDFEF0AF00101030E24 :1015B000926F000E936F000E946F000E956F0301F3 :1015C0008251720AD8B445EF16F08251520AD8B44B :1015D00045EF16F08251750AD8B445EF16F08251E6 :1015E000630AD8B42BEF1AF08251690AD8B4EFEF2E :1015F00012F082517A0AD8B402EF14F08251490AEB :10160000D8B414EF12F08251500AD8B432EF11F06E :101610008251700AD8B475EF11F08251540AD8B4CF :10162000A0EF11F08251740AD8B4E6EF11F08251A4 :10163000410AD8B457EF0CF082514B0AD8B455EF99 :101640000BF082516D0AD8B48AEF10F082514D0A26 :10165000D8B4A3EF10F08251730AD8B475EF15F027 :101660008251530AD8B4DAEF15F08251660AD8B421 :1016700075EF12F08251590AD8B4DBEF0FF062EF28 :101680001AF0040114EE00F080517F0BE12682C4B1 :10169000E7FF802B120004010D0E826F41EC0BF06E :1016A0000A0E826F41EC0BF0120004014B0E826FA8 :1016B00041EC0BF004012C0E826F41EC0BF081B871 :1016C00002D030B630D003018351430AD8B49AEF28 :1016D0000BF003018351630AD8B49CEF0BF00301B4 :1016E0008351520AD8B49EEF0BF003018351720A62 :1016F000D8B4A0EF0BF003018351470AD8B4A2EF8E :101700000BF003018351670AD8B4A4EF0BF0030177 :101710008351540AD8B4A6EF0BF003018351740A25 :10172000D8B415EF0CF003018351550AD8B4A8EFD3 :101730000BF082D030807AD0309078D0308276D062 :10174000309274D0308472D0309470D030866ED0A5 :1017500084C330F185C331F186C332F187C333F1DD :101760000101296B64EC21F0DBEC20F000C104F1F5 :1017700001C105F102C106F103C107F157EC21F0E7 :10178000200EF86EF76AF66A0900F5CF2CF1090011 :10179000F5CF2DF10900F5CF2EF10900F5CF2FF18E :1017A0000900F5CF30F10900F5CF31F10900F5CF8F :1017B00032F10900F5CF33F10101296B64EC21F01E :1017C000DBEC20F01BEC20F00067EEEF0BF0016784 :1017D000EEEF0BF00267EEEF0BF0036701D025D0C0 :1017E00004014E0E826F41EC0BF004016F0E826F0C :1017F00041EC0BF004014D0E826F41EC0BF0040143 :10180000610E826F41EC0BF00401740E826F41ECAB :101810000BF00401630E826F41EC0BF00401680EC3 :10182000826F41EC0BF060EF1AF03096CD0E0C6E2B :1018300030C00BF016EC09F0CD0E2DEC09F0E8CF1E :1018400030F030B006D00401630E826F41EC0BF033 :1018500005D00401430E826F41EC0BF030B206D08C :101860000401720E826F41EC0BF005D00401520EA0 :10187000826F41EC0BF030B406D00401670E826F2A :1018800041EC0BF005D00401470E826F41EC0BF0E8 :1018900030B606D00401740E826F41EC0BF005D017 :1018A0000401540E826F41EC0BF060EF1AF004015A :1018B000410E826F41EC0BF003018351310AD8B421 :1018C000FBEF0EF003018351320AD8B42BEF0EF078 :1018D00003018351330AD8B4B4EF0DF003018351EF :1018E000340AD8B4A4EF0CF003018351350AD8B4FC :1018F00081EF0CF004013F0E826F41EC0BF060EFC2 :101900001AF004012C0E826F41EC0BF0030184519C :10191000300AD8B494EF0CF003018451310AD8B4E2 :101920009CEF0CF0EDEF0DF08B900401300E826F08 :1019300041EC0BF0A2EF0CF08B800401310E826FB2 :1019400041EC0BF060EF1AF0CC0E2DEC09F0E8CF73 :101950000BF004012C0E826F41EC0BF0030184515B :10196000310AD8B4C8EF0CF003018451300AD8B45E :10197000CAEF0CF0030184514D0AD8B4D4EF0CF037 :1019800003018451540AD8B4DBEF0CF0F2EF0CF0F1 :101990008A8401D08A940BAE04D00BAC02D00BBA6F :1019A00021D0E00E0B1218D01F0E0B168539E8441B :1019B000E00B0B1211D0E00E0B1657EC21F085C393 :1019C00032F186C333F10101296B64EC21F0DBECC9 :1019D00020F000511F0B0B12CC0E0C6E0BC00BF045 :1019E00016EC09F00401340E826F41EC0BF0040197 :1019F0002C0E826F41EC0BF0CC0E2DEC09F0E8CFF1 :101A00001BF08AB406D00401300E826F41EC0BF05B :101A100005D00401310E826F41EC0BF004012C0E55 :101A2000826F41EC0BF01B38E840070BE8CF82F4E3 :101A30000401300E822741EC0BF004012C0E826F62 :101A400041EC0BF016EC21F01B501F0BE8CF00F11E :101A5000B9EC20F032C182F40401300E822741EC4F :101A60000BF033C182F40401300E822741EC0BF0FD :101A700004012C0E826F41EC0BF016EC21F02EC00D :101A800000F100AF0BD0FF0E016FFF0E026FFF0ED3 :101A9000036F04012D0E826F41EC0BF0B9EC20F0C6 :101AA00031C182F40401300E822741EC0BF032C1C7 :101AB00082F40401300E822741EC0BF033C182F432 :101AC0000401300E822741EC0BF004012C0E826FD2 :101AD00041EC0BF016EC21F02DC000F1B9EC20F038 :101AE00031C182F40401300E822741EC0BF032C187 :101AF00082F40401300E822741EC0BF033C182F4F2 :101B00000401300E822741EC0BF004012C0E826F91 :101B100041EC0BF016EC21F02FC000F100AF0BD020 :101B2000FF0E016FFF0E026FFF0E036F04012D0EFB :101B3000826F41EC0BF0B9EC20F031C182F404016A :101B4000300E822741EC0BF032C182F40401300EDA :101B5000822741EC0BF033C182F40401300E82275E :101B600041EC0BF060EF1AF0CB0E2DEC09F0E8CF52 :101B70000BF004012C0E826F41EC0BF00301845139 :101B8000450AD8B4D8EF0DF003018451440AD8B403 :101B9000DBEF0DF003018451300AD8B4DEEF0DF015 :101BA00003018451310AD8B4E2EF0DF0EDEF0DF0EE :101BB0000B9EE7EF0DF00B8EE7EF0DF0FC0E0B1612 :101BC000E7EF0DF0FC0E0B160B80E7EF0DF0CB0EE0 :101BD0000C6E0BC00BF016EC09F00401330E826F93 :101BE00041EC0BF004012C0E826F41EC0BF0CB0E9C :101BF0002DEC09F0E8CF1AF01ABE06EF0EF0040142 :101C0000450E826F41EC0BF00BEF0EF00401440E19 :101C1000826F41EC0BF004012C0E826F41EC0BF053 :101C20000401300E826F41EC0BF004012C0E826F28 :101C300041EC0BF01AB024EF0EF00401300E826F6D :101C400041EC0BF029EF0EF00401310E826F41ECF4 :101C50000BF060EF1AF0CA0E2DEC09F0E8CF0BF094 :101C600004012C0E826F41EC0BF003018451450AF4 :101C7000D8B467EF0EF003018451440AD8B46AEF78 :101C80000EF0030184514D0AD8B473EF0EF0030136 :101C90008451410AD8B46DEF0EF003018451460A15 :101CA000D8B470EF0EF003018451560AD8B47BEF1C :101CB0000EF003018451500AD8B486EF0EF00301F0 :101CC0008451520AD8B489EF0EF092EF0EF00B9EB9 :101CD0008CEF0EF00B8E8CEF0EF00B9C8CEF0EF059 :101CE0000B8C8CEF0EF0FC0E0B1685C3E8FF030B7C :101CF0000B128CEF0EF0C70E0B1685C3E8FF070B17 :101D0000E846E846E8460B128CEF0EF00B848CEFA9 :101D10000EF00B948CEF0EF0CA0E0C6E0BC00BF095 :101D200016EC09F0CA0E2DEC09F0E8CF19F0040109 :101D3000320E826F41EC0BF004012C0E826F41ECED :101D40000BF019BEABEF0EF00401450E826F41ECB3 :101D50000BF0B0EF0EF00401440E826F41EC0BF07B :101D600004012C0E826F41EC0BF019C0E8FF030B4D :101D7000E8CF82F40401300E822741EC0BF004011D :101D80002C0E826F41EC0BF019BCCEEF0EF004016B :101D9000410E826F41EC0BF0D3EF0EF00401460EC2 :101DA000826F41EC0BF004012C0E826F41EC0BF0C2 :101DB00019C0E8FF380BE842E842E842E8CF82F475 :101DC0000401300E822741EC0BF004012C0E826FCF :101DD00041EC0BF019B4F4EF0EF00401520E826FD7 :101DE00041EC0BF0F9EF0EF00401500E826F41EC64 :101DF0000BF060EF1AF0C90E2DEC09F0E8CF0BF0F4 :101E000004012C0E826F41EC0BF003018451450A52 :101E1000D8B419EF0FF003018451440AD8B41CEF71 :101E20000FF0030184514D0AD8B41FEF0FF02DEFCE :101E30000FF00B9E27EF0FF00B8E27EF0FF0F80E31 :101E40000B1685C3E8FF070B0B1227EF0FF0C90E27 :101E50000C6E0BC00BF016EC09F00401310E826F12 :101E600041EC0BF004012C0E826F41EC0BF0C90E1B :101E70002DEC09F0E8CF18F018BE06D00401450E8D :101E8000826F41EC0BF005D00401440E826F41ECEF :101E90000BF004012C0E826F41EC0BF018C0E8FF30 :101EA000070BE8CF82F40401300E822741EC0BF0DF :101EB00004012C0E826F41EC0BF0078016EC21F030 :101EC00029C0E8FF003B00430043030BB9EC20F0BE :101ED00033C182F40401300E822741EC0BF004017F :101EE0002C0E826F41EC0BF016EC21F029C001F1B1 :101EF000019F019D2AC000F10101B9EC20F02FC122 :101F000082F40401300E822741EC0BF030C182F4E0 :101F10000401300E822741EC0BF031C182F4040140 :101F2000300E822741EC0BF032C182F40401300EF6 :101F3000822741EC0BF033C182F40401300E82277A :101F400041EC0BF004012C0E826F41EC0BF016EC0F :101F500021F02BC001F12CC000F1D89001330033E7 :101F6000D890013300330101B9EC20F02FC182F485 :101F70000401300E822741EC0BF030C182F40401E1 :101F8000300E822741EC0BF031C182F40401300E97 :101F9000822741EC0BF032C182F40401300E82271B :101FA00041EC0BF033C182F40401300E822741EC86 :101FB0000BF060EF1AF0FC0E2DEC09F0E8CF0BF0FF :101FC00003018351520AD8B412EF10F00301835178 :101FD000720AD8B415EF10F003018351500AD8B437 :101FE00018EF10F003018351700AD8B41BEF10F002 :101FF00003018351550AD8B41EEF10F00301835139 :10200000750AD8B421EF10F003018351430AD8B404 :102010002AEF10F003018351630AD8B42DEF10F0BA :1020200036EF10F00B9030EF10F00B8030EF10F027 :102030000B9230EF10F00B8230EF10F00B9430EF7A :1020400010F00B8430EF10F00B9630EF10F00B8691 :1020500030EF10F00B9830EF10F00B8830EF10F0ED :10206000FC0E0C6E0BC00BF016EC09F00401590EBF :10207000826F41EC0BF01190119211941198FC0EAB :102080002DEC09F0E8CF0BF00BA011800BA2118210 :102090000BA411840BA8118811A056EF10F00401B5 :1020A000520E826F41EC0BF05BEF10F00401720EE8 :1020B000826F41EC0BF011A865EF10F00401430EA4 :1020C000826F41EC0BF06AEF10F00401630E826F37 :1020D00041EC0BF011A274EF10F00401500E826F6E :1020E00041EC0BF079EF10F00401700E826F41ECBF :1020F0000BF011A483EF10F00401550E826F41EC38 :102100000BF088EF10F00401750E826F41EC0BF0BC :1021100060EF1AF004016D0E826F41EC0BF00301C9 :102120008351300AD8B4E2EF10F003018351310A31 :10213000D8B4F5EF10F003018351320AD8B408EF98 :1021400011F062EF1AF004014D0E826F41EC0BF0BA :1021500057EC21F084C331F185C332F186C333F1EA :102160000101296B64EC21F0DBEC20F003018351C9 :10217000300AD8B4CAEF10F003018351310AD8B441 :10218000D2EF10F003018351320AD8B4DAEF10F025 :1021900062EF1AF0FD0E0C6E00C10BF016EC09F0A8 :1021A000E2EF10F0FE0E0C6E00C10BF016EC09F021 :1021B000F5EF10F0FF0E0C6E00C10BF016EC09F0FD :1021C00008EF11F00401300E826F41EC0BF00401B6 :1021D0002C0E826F41EC0BF016EC21F0FD0E2DEC75 :1021E00009F0E8CF00F119EF11F00401310E826F10 :1021F00041EC0BF004012C0E826F41EC0BF016EC5D :1022000021F0FE0E2DEC09F0E8CF00F119EF11F0EE :102210000401320E826F41EC0BF016EC21F0040148 :102220002C0E826F41EC0BF0FF0E2DEC09F0E8CF85 :1022300000F1B9EC20F031C182F40401300E8227A4 :1022400041EC0BF032C182F40401300E822741ECE4 :102250000BF033C182F40401300E822741EC0BF005 :1022600060EF1AF083C32AF184C32BF185C32CF1EC :1022700086C32DF187C32EF188C32FF189C330F1B6 :102280008AC331F18BC332F18CC333F1010164ECA9 :1022900021F0DBEC20F0160E0C6E00C10BF016ECFA :1022A00009F0170E0C6E01C10BF016EC09F0180EB8 :1022B0000C6E02C10BF016EC09F0190E0C6E03C186 :1022C0000BF016EC09F000C18EF101C18FF102C1D3 :1022D00090F103C191F100C192F101C193F102C1EA :1022E00094F103C195F114EF12F083C32AF184C372 :1022F0002BF185C32CF186C32DF187C32EF188C342 :102300002FF189C330F18AC331F18BC332F18CC311 :1023100033F1010164EC21F0DBEC20F000C18EF11F :1023200001C18FF102C190F103C191F100C192F19D :1023300001C193F102C194F103C195F114EF12F0C0 :1023400083C32AF184C32BF185C32CF186C32DF1FD :1023500087C32EF188C32FF189C330F18AC331F1CD :102360008CC332F18DC333F1010164EC21F0DBEC5D :1023700020F00101000E046F000E056F010E066FC4 :10238000000E076F2CEC20F01A0E0C6E00C10BF043 :1023900016EC09F01B0E0C6E01C10BF016EC09F0E7 :1023A0001C0E0C6E02C10BF016EC09F01D0E0C6E2B :1023B00003C10BF016EC09F000C196F101C197F1D1 :1023C00002C198F103C199F114EF12F083C32AF10D :1023D00084C32BF185C32CF186C32DF187C32EF165 :1023E00088C32FF189C330F18AC331F18CC332F134 :1023F0008DC333F1010164EC21F0DBEC20F001012D :10240000000E046F000E056F010E066F000E076FC1 :102410002CEC20F000C196F101C197F102C198F1B6 :1024200003C199F114EF12F0160E2DEC09F0E8CF6C :1024300000F1170E2DEC09F0E8CF01F1180E2DEC8C :1024400009F0E8CF02F1190E2DEC09F0E8CF03F105 :10245000B9EC20F07CEC1EF00401730E826F41ECAD :102460000BF004012C0E826F41EC0BF08EC100F1D9 :102470008FC101F190C102F191C103F1B9EC20F0DB :102480007CEC1EF00401730E826F41EC0BF0040132 :102490002C0E826F41EC0BF01A0E2DEC09F0E8CFF8 :1024A00000F11B0E2DEC09F0E8CF01F11C0E2DEC14 :1024B00009F0E8CF02F11D0E2DEC09F0E8CF03F191 :1024C0007DEC1AF004012C0E826F41EC0BF096C1EA :1024D00000F197C101F198C102F199C103F17DECBE :1024E0001AF04BEC0BF062EF1AF00401660E826FEB :1024F00041EC0BF003018351780AD8B4A2EF12F03B :1025000003018351430AD8B4A6EF12F003018351AB :10251000460AD8B4AFEF12F0030183B102D08B9614 :1025200001D08B8683B302D08A9401D08A8484B18F :1025300002D08B9A01D08B8A84B302D08B9801D0C1 :102540008B881380B2EC12F060EF1AF0149ECE0E5E :102550000C6E14C00BF016EC09F0A2EF12F0148E02 :10256000A7EF12F004012C0E826F41EC0BF0300E3D :102570008BB602D0E89001D0E8808AB402D0E8920D :1025800001D0E882E8CF82F441EC0BF004012C0E7C :10259000826F41EC0BF0300E8BBA02D0E89001D084 :1025A000E8808BB802D0E89201D0E882E8CF82F4CC :1025B00041EC0BF004012C0E826F41EC0BF014AED9 :1025C000E9EF12F00401460E826F41EC0BF0EEEFE2 :1025D00012F00401430E826F41EC0BF01200040173 :1025E000690E826F41EC0BF004012C0E826F41ECFE :1025F0000BF00101040E006F000E016F000E026F60 :10260000000E036FB9EC20F02CC182F40401300EEF :10261000822741EC0BF02DC182F40401300E822799 :1026200041EC0BF02EC182F40401300E822741EC04 :102630000BF02FC182F40401300E822741EC0BF025 :1026400030C182F40401300E822741EC0BF031C11D :1026500082F40401300E822741EC0BF032C182F487 :102660000401300E822741EC0BF033C182F40401E7 :10267000300E822741EC0BF004012C0E826F41ECEE :102680000BF00101040E006F000E016F000E026FCF :10269000000E036FB9EC20F02CC182F40401300E5F :1026A000822741EC0BF02DC182F40401300E822709 :1026B00041EC0BF02EC182F40401300E822741EC74 :1026C0000BF02FC182F40401300E822741EC0BF095 :1026D00030C182F40401300E822741EC0BF031C18D :1026E00082F40401300E822741EC0BF032C182F4F7 :1026F0000401300E822741EC0BF033C182F4040157 :10270000300E822741EC0BF004012C0E826F41EC5D :102710000BF001013B0E006F000E016F000E026F07 :10272000000E036FB9EC20F02CC182F40401300ECE :10273000822741EC0BF02DC182F40401300E822778 :1027400041EC0BF02EC182F40401300E822741ECE3 :102750000BF02FC182F40401300E822741EC0BF004 :1027600030C182F40401300E822741EC0BF031C1FC :1027700082F40401300E822741EC0BF032C182F466 :102780000401300E822741EC0BF033C182F40401C6 :10279000300E822741EC0BF004012C0E826F41ECCD :1027A0000BF0200EF86EF76AF66A04010900F5CF07 :1027B00082F441EC0BF00900F5CF82F441EC0BF010 :1027C0000900F5CF82F441EC0BF00900F5CF82F45B :1027D00041EC0BF00900F5CF82F441EC0BF009005D :1027E000F5CF82F441EC0BF00900F5CF82F441EC17 :1027F0000BF00900F5CF82F441EC0BF04BEC0BF041 :1028000062EF1AF08351630AD8A460EF1AF0845182 :10281000610AD8A460EF1AF085516C0AD8A460EF61 :102820001AF08651410A3FE08651440A1BE0865166 :10283000420AD8B466EF14F08651350AD8B4ECEFEA :102840001BF08651360AD8B441EF1CF08651370A86 :10285000D8B4AAEF1CF08651380AD8B408EF1DF09E :1028600060EF1AF00798079A04017A0E826F41EC24 :102870000BF00401780E826F41EC0BF00401640E42 :10288000826F41EC0BF00401550E826F41EC0BF0AE :102890004FEF14F004014C0E826F41EC0BF04BEC47 :1028A0000BF062EF1AF00788079A04017A0E826F24 :1028B00041EC0BF00401410E826F41EC0BF004017E :1028C000610E826F41EC0BF043EF14F00798078A1A :1028D00004017A0E826F41EC0BF00401420E826F0C :1028E00041EC0BF00401610E826F41EC0BF043EF01 :1028F00014F00101666784EF14F0676784EF14F049 :10290000686784EF14F0696715D04F678FEF14F094 :1029100050678FEF14F051678FEF14F052670AD0B1 :102920000101000E006F000E016F000E026F000E1D :10293000036F120011B80AD00101620E046F010E7C :10294000056F000E066F000E076F09D00101A70E7C :10295000046F020E056F000E066F000E076F66C152 :1029600000F167C101F168C102F169C103F11BEC1B :1029700020F003BF2CEF15F0119A119C0101000EFD :10298000046FA80E056F550E066F020E076F66C125 :1029900000F167C101F168C102F169C103F166C1CB :1029A0008AF167C18BF168C18CF169C18DF11BECB3 :1029B00020F003BF0BD00101000E8A6FA80E8B6FB1 :1029C000550E8C6F020E8D6F118A119C0E0E2DEC20 :1029D00009F0E8CF18F10F0E2DEC09F0E8CF19F14E :1029E000100E2DEC09F0E8CF1AF1110E2DEC09F0C4 :1029F000E8CF1BF164EC1FF08AC104F18BC105F133 :102A00008CC106F18DC107F11BEC20F0078228EC88 :102A10001FF064EC1FF0079228EC1FF08AC100F150 :102A20008BC101F18CC102F18DC103F1079228EC39 :102A30001FF0CC0E046FE00E056F870E066F050EBB :102A4000076F1BEC20F000C118F101C119F102C1A0 :102A50001AF103C11BF140D013AA31EF15F0138E08 :102A6000139A119C119A0101800E006F1A0E016FCA :102A7000060E026F000E036F4FC104F150C105F145 :102A800051C106F152C107F11BEC20F003AF05D094 :102A900016EC21F0118C119A12000E0E2DEC09F09B :102AA000E8CF18F10F0E2DEC09F0E8CF19F1100E58 :102AB0002DEC09F0E8CF1AF1110E2DEC09F0E8CF5A :102AC0001BF14FC100F150C101F151C102F152C1DE :102AD00003F1078228EC1FF018C100F119C101F1C0 :102AE0001AC102F11BC103F112000401730E826FBF :102AF00041EC0BF004012C0E826F41EC0BF00784CB :102B000062C166F163C167F164C168F165C169F1D1 :102B10004BC14FF14CC150F14DC151F14EC152F179 :102B200057C159F158C15AF107949BEC15F04BEC81 :102B30000BF062EF1AF066C100F167C101F168C1E4 :102B400002F169C103F10101B9EC20F07CEC1EF047 :102B50000401630E826F41EC0BF004012C0E826FB6 :102B600041EC0BF04FC100F150C101F151C102F134 :102B700052C103F10101B9EC20F07CEC1EF004011C :102B8000660E826F41EC0BF004012C0E826F41EC5B :102B90000BF016EC21F059C100F15AC101F101010D :102BA000B9EC20F07CEC1EF00401740E826F41EC55 :102BB0000BF0120010820401530E826F41EC0BF0F7 :102BC00004012C0E826F41EC0BF083C32AF184C305 :102BD0002BF185C32CF186C32DF187C32EF188C359 :102BE0002FF189C330F18AC331F18BC332F18CC329 :102BF00033F1010164EC21F0DBEC20F000C166F15F :102C000001C167F102C168F103C169F18EC32AF104 :102C10008FC32BF190C32CF191C32DF192C32EF1F0 :102C200093C32FF194C330F195C331F196C332F1C0 :102C300097C333F1010164EC21F0DBEC20F000C11B :102C40004FF101C150F102C151F103C152F157ECF2 :102C500021F099C32FF19AC330F19BC331F19CC38A :102C600032F19DC333F1010164EC21F0DBEC20F083 :102C700000C159F101C15AF19BEC15F004012C0E71 :102C8000826F41EC0BF055EF16F0118E1AA002D0B6 :102C90001AAE108C19BE02D019A4108E03018251F5 :102CA000520A02E10F8201D00F928251750A02E1AD :102CB000108401D010948251550A02E1108601D08F :102CC00010968351310A03E11382138402D01392C8 :102CD000139411A003D011A401D01084078410B262 :102CE000D3EF16F010A4B7EF16F0BAC166F1BBC16E :102CF00067F1BCC168F1BDC169F1BEC16AF1BFC174 :102D00006BF1C0C16CF1C1C16DF1C2C16EF1C3C143 :102D10006FF1C4C170F1C5C171F1C6C172F1C7C113 :102D200073F1C8C174F1C9C175F1CAC176F1CBC1E3 :102D300077F1CCC178F1CDC179F1CEC17AF1CFC1B3 :102D40007BF1D0C17CF1D1C17DF1D2C17EF1D3C183 :102D50007FF1D4C180F1D5C181F1D6C182F1D7C153 :102D600083F1D8C184F1D9C185F1BFEF16F062C1FA :102D700066F163C167F164C168F165C169F1BAC107 :102D800086F1BBC187F1BCC188F1BDC189F14BC1DE :102D90004FF14CC150F14DC151F14EC152F157C1EB :102DA00059F158C15AF107940FA0F5EF16F001013F :102DB0009667E2EF16F09767E2EF16F09867E2EF9A :102DC00016F09967E6EF16F0F5EF16F079EC14F0CF :102DD00096C104F197C105F198C106F199C107F1B7 :102DE0001BEC20F003BF26EF1AF079EC14F0010180 :102DF000000E046F000E056F010E066F000E076FC8 :102E00004CEC20F011A02AD011A228D0B9EC20F06F :102E1000296701D005D004012D0E826F41EC0BF023 :102E200030C182F40401300E822741EC0BF031C135 :102E300082F40401300E822741EC0BF032C182F49F :102E40000401300E822741EC0BF033C182F40401FF :102E5000300E822741EC0BF04BEC0BF012A8C5D0E2 :102E600012981BC01CF01C3A1C42070E1C160001D5 :102E70001C50000AD8B4C1EF17F000011C50010A21 :102E8000D8B44DEF17F000011C50020AD8B44BEF34 :102E900017F0F3EF17F0F3EF17F016EC21F02BC05B :102EA00001F12CC000F1D89001330033D8900133E8 :102EB00000330101630E046F000E056F000E066FF4 :102EC000000E076F4CEC20F0280E046F000E056F0B :102ED000000E066F000E076F1BEC20F000C12EF0F5 :102EE00016EC21F029C001F1019F019D2AC000F1DB :102EF0000101A40E046F000E056F000E066F000E98 :102F0000076F4CEC20F000C12DF000C104F101C1AD :102F100005F102C106F103C107F1640E006F000E56 :102F2000016F000E026F000E036F1BEC20F0050E08 :102F3000046F000E056F000E066F000E076F4CEC5D :102F400020F000C104F101C105F102C106F103C185 :102F500007F116EC21F02EC000F11BEC20F000C1AF :102F60002FF02FC0E8FF050F2E5C03E78A84F3EFF4 :102F700017F02FC0E8FF0A0F2E5C01E68A94F3EFEA :102F800017F000C124F101C125F102C126F103C1EE :102F900027F116EC21F01CEC21F01B501F0BE8CFA1 :102FA00000F10101640E046F000E056F000E066F44 :102FB000000E076F2CEC20F024C104F125C105F1AF :102FC00026C106F127C107F11BEC20F003BF02D098 :102FD0008A9401D08A8424C100F125C101F126C15F :102FE00002F127C103F162EF1AF000C124F101C11F :102FF00025F102C126F103C127F110AE4DD0109E7C :1030000000C108F101C109F102C10AF103C10BF1CC :10301000B9EC20F030C1DAF131C1DBF132C1DCF1C1 :1030200033C1DDF108C100F109C101F10AC102F1AA :103030000BC103F101016C0E046F070E056F000E4A :10304000066F000E076F1BEC20F003BF04D00101D8 :10305000550EDE6F1CD008C100F109C101F10AC193 :1030600002F10BC103F10101A40E046F060E056FFE :10307000000E066F000E076F1BEC20F003BF04D09C :1030800001017F0EDE6F03D00101FF0EDE6F1D8E8A :1030900011AE26EF1AF0119E24C100F125C101F1F5 :1030A00026C102F127C103F111A005D011A203D05E :1030B0000FB026EF1AF010A465EF18F00401750E9A :1030C000826F41EC0BF06AEF18F00401720E826F10 :1030D00041EC0BF004012C0E826F41EC0BF0B9ECCB :1030E00020F0296779EF18F00401200E826F7CEF41 :1030F00018F004012D0E826F41EC0BF030C182F408 :103100000401300E822741EC0BF031C182F404013E :10311000300E822741EC0BF004012E0E826F41EC41 :103120000BF032C182F40401300E822741EC0BF027 :1031300033C182F40401300E822741EC0BF004010C :103140006D0E826F41EC0BF004012C0E826F41EC8E :103150000BF04FC100F150C101F151C102F152C158 :1031600003F10101B9EC20F07CEC1EF00401480EE3 :10317000826F41EC0BF004017A0E826F41EC0BF090 :1031800004012C0E826F41EC0BF066C100F167C1A7 :1031900001F168C102F169C103F10101B9EC20F04C :1031A0007CEC1EF00401630E826F41EC0BF0040115 :1031B0002C0E826F41EC0BF066C100F167C101F18A :1031C00068C102F169C103F101010A0E046F000E2A :1031D000056F000E066F000E076F2CEC20F0000E3E :1031E000046F120E056F000E066F000E076F4CEC99 :1031F00020F0B9EC20F02AC182F40401300E8227BD :1032000041EC0BF02BC182F40401300E822741EC1B :103210000BF02CC182F40401300E822741EC0BF03C :103220002DC182F40401300E822741EC0BF02EC137 :1032300082F40401300E822741EC0BF02FC182F49E :103240000401300E822741EC0BF030C182F40401FE :10325000300E822741EC0BF004012E0E826F41EC00 :103260000BF031C182F40401300E822741EC0BF0E7 :1032700032C182F40401300E822741EC0BF033C1DD :1032800082F40401300E822741EC0BF00401730E2E :10329000826F41EC0BF004012C0E826F41EC0BF0BD :1032A00016EC21F059C100F15AC101F18CEC1BF070 :1032B000B2EC12F014BE73EF19F08BBA02D0E890A2 :1032C00001D0E8808BB802D0E89201D0E882E82AE9 :1032D000030BE8B002D08B9A01D08B8AE8B202D0FF :1032E0008B9801D08B8813A2C5EF19F004012C0E26 :1032F000826F41EC0BF086C166F187C167F188C12E :1033000068F189C169F179EC14F00101000E046FD4 :10331000000E056F010E066F000E076F4CEC20F0DB :10332000B9EC20F029679AEF19F00401200E826FA2 :103330009DEF19F004012D0E826F41EC0BF030C1AE :1033400082F40401300E822741EC0BF031C182F48B :103350000401300E822741EC0BF004012E0E826F27 :1033600041EC0BF032C182F40401300E822741ECB3 :103370000BF033C182F40401300E822741EC0BF0D4 :1033800004016D0E826F41EC0BF013A4ECEF19F009 :1033900004012C0E826F41EC0BF013ACDAEF19F044 :1033A0000401500E826F41EC0BF0139C1398139A9A :1033B000ECEF19F013AEE7EF19F00401460E826F3F :1033C00041EC0BF0139E1398139AECEF19F00401E3 :1033D000530E826F41EC0BF00FB2F2EF19F00FA019 :1033E00024EF1AF004012C0E826F41EC0BF0200E3A :1033F000F86EF76AF66A04010900F5CF82F441EC31 :103400000BF00900F5CF82F441EC0BF00900F5CF89 :1034100082F441EC0BF00900F5CF82F441EC0BF0A3 :103420000900F5CF82F441EC0BF00900F5CF82F4EE :1034300041EC0BF00900F5CF82F441EC0BF00900F0 :10344000F5CF82F441EC0BF04BEC0BF00F90109E9B :10345000129862EF1AF00401630E826F41EC0BF0D8 :1034600004012C0E826F41EC0BF068EC1AF00401A1 :103470002C0E826F41EC0BF0DBEC1AF004012C0EE9 :10348000826F41EC0BF057EC1BF004012C0E826FA5 :1034900041EC0BF00101F80E006FCD0E016F660ECE :1034A000026F030E036F7DEC1AF004012C0E826F85 :1034B00041EC0BF06DEC1BF04BEC0BF062EF1AF0F3 :1034C0004BEC0BF00301C26B0790109271EF1DF0F3 :1034D000D8900E0E2DEC09F0E8CF00F10F0E2DEC78 :1034E00009F0E8CF01F1100E2DEC09F0E8CF02F160 :1034F000110E2DEC09F0E8CF03F10101000E046F6D :10350000000E056F010E066F000E076F4CEC20F0E9 :10351000B9EC20F02AC182F40401300E822741EC7C :103520000BF02BC182F40401300E822741EC0BF02A :103530002CC182F40401300E822741EC0BF02DC126 :1035400082F40401300E822741EC0BF02EC182F48C :103550000401300E822741EC0BF02FC182F40401EC :10356000300E822741EC0BF030C182F40401300EA2 :10357000822741EC0BF031C182F40401300E822726 :1035800041EC0BF004012E0E826F41EC0BF032C1C6 :1035900082F40401300E822741EC0BF033C182F437 :1035A0000401300E822741EC0BF004016D0E826F96 :1035B00041EC0BF01200120E2DEC09F0E8CF00F1F7 :1035C000130E2DEC09F0E8CF01F1140E2DEC09F0EB :1035D000E8CF02F1150E2DEC09F0E8CF03F101015F :1035E0000A0E046F000E056F000E066F000E076FC7 :1035F0002CEC20F0000E046F120E056F000E066F0B :10360000000E076F4CEC20F0B9EC20F02AC182F4D8 :103610000401300E822741EC0BF02BC182F404012F :10362000300E822741EC0BF02CC182F40401300EE5 :10363000822741EC0BF02DC182F40401300E822769 :1036400041EC0BF02EC182F40401300E822741ECD4 :103650000BF02FC182F40401300E822741EC0BF0F5 :1036600030C182F40401300E822741EC0BF00401DA :103670002E0E826F41EC0BF031C182F40401300E4A :10368000822741EC0BF032C182F40401300E822714 :1036900041EC0BF033C182F40401300E822741EC7F :1036A0000BF00401730E826F41EC0BF012000A0E56 :1036B0002DEC09F0E8CF00F10B0E2DEC09F0E8CF6E :1036C00001F10C0E2DEC09F0E8CF02F10D0E2DECFE :1036D00009F0E8CF03F18CEF1BF0060E2DEC09F09A :1036E000E8CF00F1070E2DEC09F0E8CF01F1080E4C :1036F0002DEC09F0E8CF02F1090E2DEC09F0E8CF2E :1037000003F18CEF1BF0010116EC21F0078457C187 :1037100000F158C101F107940101E80E046F800E19 :10372000056F000E066F000E076F2CEC20F0000EE8 :10373000046F040E056F000E066F000E076F4CEC51 :1037400020F0880E046F130E056F000E066F000E3A :10375000076F1BEC20F00A0E046F000E056F000EC1 :10376000066F000E076F4CEC20F0B9EC20F0010161 :103770002967C0EF1BF00401200E826FC3EF1BF01E :1037800004012D0E826F41EC0BF030C182F4040174 :10379000300E822741EC0BF031C182F40401300E6F :1037A000822741EC0BF032C182F40401300E8227F3 :1037B00041EC0BF004012E0E826F41EC0BF033C193 :1037C00082F40401300E822741EC0BF00401430E19 :1037D000826F41EC0BF0120087C32AF188C32BF1F2 :1037E00089C32CF18AC32DF18BC32EF18CC32FF129 :1037F0008DC330F18EC331F190C332F191C333F1F7 :103800000101296B64EC21F0DBEC20F00101000EDA :10381000046F000E056F010E066F000E076F2CEC93 :1038200020F00E0E0C6E00C10BF016EC09F00F0E1E :103830000C6E01C10BF016EC09F0100E0C6E02C1FB :103840000BF016EC09F0110E0C6E03C10BF016EC28 :1038500009F004017A0E826F41EC0BF004012C0E8A :10386000826F41EC0BF00401350E826F41EC0BF0DE :1038700004012C0E826F41EC0BF068EC1AF04FEF54 :1038800014F087C32AF188C32BF189C32CF18AC3B2 :103890002DF18BC32EF18CC32FF18DC330F18EC36C :1038A00031F190C332F191C333F10101296B64EC22 :1038B00021F0DBEC20F0880E046F130E056F000E74 :1038C000066F000E076F20EC20F0000E046F040E50 :1038D000056F000E066F000E076F2CEC20F0010143 :1038E000E80E046F800E056F000E066F000E076F66 :1038F0004CEC20F00A0E0C6E00C10BF016EC09F037 :103900000B0E0C6E01C10BF016EC09F00C0E0C6ED8 :1039100002C10BF016EC09F00D0E0C6E03C10BF09A :1039200016EC09F004017A0E826F41EC0BF00401F1 :103930002C0E826F41EC0BF00401360E826F41ECCD :103940000BF004012C0E826F41EC0BF057EC1BF0D6 :103950004FEF14F087C32AF188C32BF189C32CF1F0 :103960008AC32DF18BC32EF18CC32FF18DC330F19F :103970008FC331F190C332F191C333F1010164EC93 :1039800021F0DBEC20F0000E046F120E056F000E2C :10399000066F000E076F2CEC20F001010A0E046F79 :1039A000000E056F000E066F000E076F4CEC20F046 :1039B000120E0C6E00C10BF016EC09F0130E0C6E1B :1039C00001C10BF016EC09F0140E0C6E02C10BF0E5 :1039D00016EC09F0150E0C6E03C10BF016EC09F095 :1039E00004017A0E826F41EC0BF004012C0E826F01 :1039F00041EC0BF00401370E826F41EC0BF0040137 :103A00002C0E826F41EC0BF0DBEC1AF04FEF14F050 :103A100087C32AF188C32BF189C32CF18AC32DF106 :103A20008BC32EF18CC32FF18DC330F18EC331F1D6 :103A300090C332F191C333F10101296B64EC21F0A1 :103A4000DBEC20F0880E046F130E056F000E066F7E :103A5000000E076F20EC20F0000E046F040E056FBF :103A6000000E066F000E076F2CEC20F00101E80E2F :103A7000046F800E056F000E066F000E076F4CEC92 :103A800020F0060E0C6E00C10BF016EC09F0070ECC :103A90000C6E01C10BF016EC09F0080E0C6E02C1A1 :103AA0000BF016EC09F0090E0C6E03C10BF016ECCE :103AB00009F004017A0E826F41EC0BF004012C0E28 :103AC000826F41EC0BF00401380E826F41EC0BF079 :103AD00004012C0E826F41EC0BF06DEC1BF04FEFEC :103AE00014F007A8E4EF1DF00101800E006F1A0E1C :103AF000016F060E026F000E036F4BC104F14CC143 :103B000005F14DC106F14EC107F11BEC20F003BFDA :103B10002AEF1EF076EC1EF04BC100F14CC101F112 :103B20004DC102F14EC103F1078228EC1FF018C10C :103B300004F119C105F11AC106F11BC107F1F80E14 :103B4000006FCD0E016F660E026F030E036F1BEC4C :103B500020F00E0E0C6E00C10BF016EC09F00F0EEB :103B60000C6E01C10BF016EC09F0100E0C6E02C1C8 :103B70000BF016EC09F0110E0C6E03C10BF016ECF5 :103B800009F00784010116EC21F057C100F158C17A :103B900001F107940A0E0C6E00C10BF016EC09F04F :103BA0000B0E0C6E01C10BF016EC09F00C0E0C6E36 :103BB00002C10BF016EC09F00D0E0C6E03C10BF0F8 :103BC00016EC09F02AEF1EF007AA2AEF1EF0078470 :103BD000010116EC21F057C100F158C101F1079421 :103BE000060E0C6E00C10BF016EC09F0070E0C6E01 :103BF00001C10BF016EC09F0080E0C6E02C10BF0BF :103C000016EC09F0090E0C6E03C10BF016EC09F06E :103C1000078462C100F163C101F164C102F165C1B1 :103C200003F10794120E0C6E00C10BF016EC09F0B4 :103C3000130E0C6E01C10BF016EC09F0140E0C6E95 :103C400002C10BF016EC09F0150E0C6E03C10BF05F :103C500016EC09F00798079A0401805181197F0B2F :103C60000DE09EA8FED714EE00F081517F0BE126F7 :103C7000E750812B0F01AD6E2CEF1EF093EF0AF091 :103C800018C100F119C101F11AC102F11BC103F100 :103C9000000E046F000E056F010E066F000E076F19 :103CA0004CEC20F029A16BEF1EF02051D8B46BEF43 :103CB0001EF018C100F119C101F11AC102F11BC1B6 :103CC00003F1000E046F000E056F0A0E066F000E62 :103CD000076F4CEC20F01200010104510013055154 :103CE0000113065102130751031312000101186B4F :103CF000196B1A6B1B6B12002AC182F40401300E7F :103D0000822741EC0BF02BC182F40401300E822794 :103D100041EC0BF02CC182F40401300E822741ECFF :103D20000BF02DC182F40401300E822741EC0BF020 :103D30002EC182F40401300E822741EC0BF02FC11A :103D400082F40401300E822741EC0BF030C182F482 :103D50000401300E822741EC0BF031C182F40401E2 :103D6000300E822741EC0BF032C182F40401300E98 :103D7000822741EC0BF033C182F40401300E82271C :103D800041EC0BF012002FC182F40401300E8227A7 :103D900041EC0BF030C182F40401300E822741EC7B :103DA0000BF031C182F40401300E822741EC0BF09C :103DB00032C182F40401300E822741EC0BF033C192 :103DC00082F40401300E822741EC0BF01200060E43 :103DD0001F6E060E206E060E216E1F2EEDEF1EF0DA :103DE000202EEDEF1EF0212EEDEF1EF08B84020E43 :103DF0001F6E020E206E020E216E1F2EFDEF1EF0B2 :103E0000202EFDEF1EF0212EFDEF1EF08B941200F0 :103E1000FF0E206E20C021F0030E1F6E8B841F2E1C :103E20000EEF1FF0030E1F6E212E0EEF1FF08B946E :103E300020C021F0030E1F6E1F2E1CEF1FF0030E7B :103E40001F6E213E1CEF1FF0202E0AEF1FF0120004 :103E50000101005305E1015303E1025301E1002B8D :103E6000EBEC1FF016EC21F03951006F3A51016F65 :103E7000420E046F4B0E056F000E066F000E076FAB :103E80002CEC20F000C104F101C105F102C106F1E2 :103E900003C107F118C100F119C101F11AC102F102 :103EA0001BC103F107B259EF1FF020EC20F05BEFCC :103EB0001FF01BEC20F000C118F101C119F102C183 :103EC0001AF103C11BF1120016EC21F059C100F1E7 :103ED0005AC101F1060E2DEC09F0E8CF04F1070EEE :103EE0002DEC09F0E8CF05F1080E2DEC09F0E8CF34 :103EF00006F1090E2DEC09F0E8CF07F11BEC20F0DC :103F000000C124F101C125F102C126F103C127F14D :103F1000290E046F000E056F000E066F000E076F6E :103F20002CEC20F0EE0E046F430E056F000E066FB2 :103F3000000E076F20EC20F024C104F125C105F12B :103F400026C106F127C107F12CEC20F000C11CF1BD :103F500001C11DF102C11EF103C11FF1120E2DECB2 :103F600009F0E8CF04F1130E2DEC09F0E8CF05F1CC :103F7000140E2DEC09F0E8CF06F1150E2DEC09F02A :103F8000E8CF07F10D0E006F000E016F000E026FFB :103F9000000E036F2CEC20F0180E046F000E056F5E :103FA000000E066F000E076F4CEC20F01CC104F1F0 :103FB0001DC105F11EC106F11FC107F120EC20F063 :103FC0006A0E046F2A0E056F000E066F000E076F53 :103FD0001BEC20F01200BF0EFA6E200E3A6F396B08 :103FE000D8900037013702370337D8B0FCEF1FF005 :103FF0003A2FF1EF1FF039073A070353D8B41200F4 :104000000331070B80093F6F03390F0B010F396F25 :1040100080EC5FF0406F390580EC5FF0405D405F01 :10402000396B3F33D8B0392739333FA911EF20F02E :1040300040513927120001013BEC21F0D8B01200A9 :10404000010103510719346FFEEC20F0D89007519D :10405000031934AF800F12000101346B22EC21F000 :10406000D8A038EC21F0D8B012000DEC21F016ECFD :1040700021F01F0E366F4EEC21F00B35D8B0FEEC60 :1040800020F0D8A00335D8B01200362F3BEF20F037 :1040900034B125EC21F012000101346B04510511FB :1040A000061107110008D8A022EC21F0D8A038ECA6 :1040B00021F0D8B01200086B096B0A6B0B6B4EEC49 :1040C00021F01F0E366F4EEC21F007510B5DD8A486 :1040D00076EF20F006510A5DD8A476EF20F0055166 :1040E000095DD8A476EF20F00451085DD8A089EFCF :1040F00020F00451085F0551D8A0053D095F065125 :10410000D8A0063D0A5F0751D8A0073D0B5FD890A5 :104110000081362F63EF20F034B125EC21F0346BB1 :1041200022EC21F0D89052EC21F007510B5DD8A47D :10413000A6EF20F006510A5DD8A4A6EF20F00551A5 :10414000095DD8A4A6EF20F00451085DD8A0B5EF12 :1041500020F0003FB5EF20F0013FB5EF20F0023F27 :10416000B5EF20F0032BD8B4120034B125EC21F0C8 :1041700012000101346B22EC21F0D8B0120057EC90 :1041800021F0200E366F003701370237033711EE6A :1041900033F00A0E376FE7360A0EE75CD8B0E76EE9 :1041A000E552372FCBEF20F0362FC3EF20F034B19C :1041B0002981D890120001010A0E346F200E366F4B :1041C00011EE29F03451376F0A0ED890E652D8B06C :1041D000E726E732372FE6EF20F0033302330133CF :1041E0000033362FE0EF20F0E750FF0FD8A0033563 :1041F000D8B0120029B125EC21F01200045100279B :104200000551D8B0053D01270651D8B0063D02271B :104210000751D8B0073D032712000051086F015124 :10422000096F02510A6F03510B6F12000101006BFD :10423000016B026B036B12000101046B056B066BD3 :10424000076B12000335D8A012000351800B001F2A :10425000011F021F031F003F35EF21F0013F35EF23 :1042600021F0023F35EF21F0032B342B0325120000 :104270000735D8A012000751800B041F051F061F29 :10428000071F043F4BEF21F0053F4BEF21F0063FA6 :104290004BEF21F0072B342B072512000037013795 :1042A00002370337083709370A370B371200010185 :1042B000296B2A6B2B6B2C6B2D6B2E6B2F6B306B42 :1042C000316B326B336B120001012A510F0B2A6FD5 :1042D0002B510F0B2B6F2C510F0B2C6F2D510F0BE4 :1042E0002D6F2E510F0B2E6F2F510F0B2F6F305143 :1042F0000F0B306F31510F0B316F32510F0B326F8B :0843000033510F0B336F120063 :10BF0000E844F926000C160C2B0C3F0C520C640C68 :10BF1000760C860C960CA50CB30CC10CCF0CDC0C6B :06BF2000E80CF40C000C1B :00000001FF ./firmware/SQM-LU-DLS-4-13-80.hex0000644000175000017500000022607214412146135015676 0ustar anthonyanthony:020000040000FA :0408000098EF0BF072 :1008100003B275EF05F0F2B493EF05F09EB09BEFD5 :1008200005F09EB2A3EF05F0F2A81AEF04F0F2B2C1 :1008300023EF04F0F2B01FEF04F047EF0BF0F29655 :10084000F29047EF0BF0CD90F2929EA02DEF04F0C6 :100850000101533F2DEF04F0542BB2C1B6F1B3C1E7 :10086000B7F1B4C1B8F1B5C1B9F1AEC1B2F1AFC120 :10087000B3F1B0C1B4F1B1C1B5F1AAC1AEF1ABC130 :10088000AFF1ACC1B0F1ADC1B1F1A6C1AAF1A7C140 :10089000ABF1A8C1ACF1A9C1ADF1A2C1A6F1A3C150 :1008A000A7F1A4C1A8F1A5C1A9F19EC1A2F19FC160 :1008B000A3F1A0C1A4F1A1C1A5F19AC19EF19BC170 :1008C0009FF19CC1A0F19DC1A1F1CECF9AF1CFCFF4 :1008D0009BF153C19CF154C19DF1CF6ACE6A0101D5 :1008E000536B546B9E90CD800FBC0F8E0FBA7CEF74 :1008F00004F00F8A47EF0BF013880F8C0FBEB9EF8F :1009000004F09AC19EF19BC19FF19CC1A0F19DC1D1 :10091000A1F19EC1A2F19FC1A3F1A0C1A4F1A1C107 :10092000A5F1A2C1A6F1A3C1A7F1A4C1A8F1A5C1D7 :10093000A9F1A6C1AAF1A7C1ABF1A8C1ACF1A9C1A7 :10094000ADF1AAC1AEF1ABC1AFF1ACC1B0F1ADC177 :10095000B1F1AEC1B2F1AFC1B3F1B0C1B4F1B1C147 :10096000B5F1B2C1B6F1B3C1B7F1B4C1B8F1B5C117 :10097000B9F101015E6B5F6B606B616B9A515E2731 :100980009B515F239C5160239D5161239E515E27A3 :100990009F515F23A0516023A1516123A2515E2783 :1009A000A3515F23A4516023A5516123A6515E2763 :1009B000A7515F23A8516023A9516123AA515E2743 :1009C000AB515F23AC516023AD516123AE515E2723 :1009D000AF515F23B0516023B1516123B2515E2703 :1009E000B3515F23B4516023B5516123B6515E27E3 :1009F000B7515F23B8516023B9516123D8900101E9 :100A0000613360335F335E33D8900101613360330B :100A10005F335E33D8900101613360335F335E33FF :100A200000C10CF101C10DF102C10EF103C10FF1C2 :100A300004C110F105C111F106C112F107C113F192 :100A400008C114F109C115F10AC116F10BC117F162 :100A500034C135F111B838EF05F00101620E046FB1 :100A6000010E056F000E066F000E076F41EF05F0D7 :100A70000101A70E046F020E056F000E066F000E37 :100A8000076F5EC100F15FC101F160C102F161C198 :100A900003F11AEC31F003BF04D01CBE02D01CA03D :100AA000108C11A059EF05F010BA59EF05F00F8026 :100AB000108A0CC100F10DC101F10EC102F10FC18C :100AC00003F110C104F111C105F112C106F113C106 :100AD00007F114C108F115C109F116C10AF117C1D6 :100AE0000BF135C134F147EF0BF00392ABB2AB9889 :100AF000AB88030103EE00F080517F0BE92604C0B0 :100B0000EFFF802B8151805D700BD8A48B82000099 :100B10008051815D700BD8A48B9281518019D8B41B :100B2000079047EF0BF0F2940101453F47EF0BF0C0 :100B3000462B47EF0BF09E900101533F47EF0BF020 :100B4000542B47EF0BF09E9211B843EF08F00400CE :100B500066A1ABEF05F08BB4B5EF05F010ACB5EFC7 :100B600005F08B84109CB6EF05F08B94077C07ACE6 :100B7000D1EF05F0C274C2B4CBEF05F0C3CFB7F527 :100B8000C4CFB8F50501D890B833B733D890B8338F :100B9000B733D2EF05F0C3CF55F1C4CF56F1D2EF42 :100BA00005F0C28207B444EF06F047C14BF148C1DB :100BB0004CF149C14DF14AC14EF15EC162F15FC1D4 :100BC00063F160C164F161C165F113A8EAEF05F05A :100BD000138C13989AC1BAF19BC1BBF19CC1BCF1B3 :100BE0009DC1BDF19EC1BEF19FC1BFF1A0C1C0F1C9 :100BF000A1C1C1F1A2C1C2F1A3C1C3F1A4C1C4F199 :100C0000A5C1C5F1A6C1C6F1A7C1C7F1A8C1C8F168 :100C1000A9C1C9F1AAC1CAF1ABC1CBF1ACC1CCF138 :100C2000ADC1CDF1AEC1CEF1AFC1CFF1B0C1D0F108 :100C3000B1C1D1F1B2C1D2F1B3C1D3F1B4C1D4F1D8 :100C4000B5C1D5F1B6C1D6F1B7C1D7F1B8C1D8F1A8 :100C5000B9C1D9F1B7C5B9F5B8C5BAF5B9C5BBF5CC :100C6000BAC5BCF5010155515B2756515C23E86AB2 :100C70005D230E2E44EF06F05CC157F15DC158F1C3 :100C80005B6B5C6B5D6B078E0201002F47EF0BF017 :100C90003C0E006F1D50E00BE00AE86612881BBE98 :100CA00002D01BB4108E00C10CF101C10DF102C1C4 :100CB0000EF103C10FF104C110F105C111F106C11C :100CC00012F107C113F108C114F109C115F10AC1EC :100CD00016F10BC117F134C135F181AAACEF06F062 :100CE00015A4F7EF06F005012F51000AD8B43AEF2A :100CF00007F005012F51010AD8B4B6EF06F005013F :100D00002F51020AD8B4F7EF06F005012F51030A5C :100D1000D8B4F7EF06F005012F51040AD8B4F7EF65 :100D200006F005012F51050AD8B4F7EF06F00501CA :100D30002F51060AD8B4F7EF06F005012F51070A24 :100D4000D8B4F7EF06F005012F51320AD8B4B4EF4A :100D500006F02F6B3AEF07F000011650030AD8B4E3 :100D6000F7EF06F03AEF07F03AEF07F005015767A3 :100D7000C1EF06F05867C1EF06F05967C1EF06F002 :100D80005A67C5EF06F03AEF07F05BC500F15CC5A6 :100D900001F15DC502F15EC503F10101010E046FB1 :100DA000000E056F000E066F000E076F1AEC31F093 :100DB00000C15BF501C15CF502C15DF503C15EF5E3 :100DC00001010067EBEF06F00167EBEF06F0026749 :100DD000EBEF06F003673AEF07F057C55BF558C530 :100DE0005CF559C55DF55AC55EF524EF07F00FBEF9 :100DF0000CEF07F010A011EF07F00101476708EFB3 :100E000007F0486708EF07F0496708EF07F04A67FF :100E10000CEF07F011EF07F007AE11EF07F024EF2A :100E200007F00501312F3AEF07F03C0E316F302FFC :100E30003AEF07F00101000E626FE00E636FA50E3E :100E4000646F010E656F138800011650000AD8B454 :100E500032EF07F000011650030AD8B437EF07F05D :100E60003AEF07F00001010E166E3AEF07F00001AD :100E7000040E166E0501666B37B740EF07F066810A :100E80000CC100F10DC101F10EC102F10FC103F15E :100E900010C104F111C105F112C106F113C107F12E :100EA00014C108F115C109F116C10AF117C10BF1FE :100EB00035C134F100C10CF101C10DF102C10EF1D7 :100EC00003C10FF104C110F105C111F106C112F106 :100ED00007C113F108C114F109C115F10AC116F1D6 :100EE0000BC117F134C135F101018E677FEF07F0B7 :100EF0008F677FEF07F090677FEF07F0916783EFD1 :100F000007F0B4EF07F092C100F193C101F194C171 :100F100002F195C103F10101010E046F000E056F8E :100F2000000E066F000E076F1AEC31F000C192F14F :100F300001C193F102C194F103C195F10101006770 :100F4000A9EF07F00167A9EF07F00267A9EF07F023 :100F50000367B4EF07F08EC192F18FC193F190C196 :100F600094F191C195F10F80D57ED5BE6ED0D6CFCC :100F700047F1D7CF48F145C149F1E86AE8CF4AF1D6 :100F8000138A1CBE02D01CA0108C109047C100F127 :100F900048C101F149C102F14AC103F101010A0E40 :100FA000046F000E056F000E066F000E076F1AEC3F :100FB00031F003AF1080010154A7EBEF07F00F9A57 :100FC0000F9C0F9E0101000E5E6F600E5F6F3D0E65 :100FD000606F080E616F010147BFFBEF07F04867C4 :100FE000FBEF07F04967FBEF07F04A67FBEF07F0FD :100FF000F28820EF08F0F2985E6B5F6B606B616BBC :101000009A6B9B6B9C6B9D6B9E6B9F6BA06BA16B9C :10101000A26BA36BA46BA56BA66BA76BA86BA96B4C :10102000AA6BAB6BAC6BAD6BAE6BAF6BB06BB16BFC :10103000B26BB36BB46BB56BB66BB76BB86BB96BAC :10104000D76AD66A0101456B466B0CC100F10DC130 :1010500001F10EC102F10FC103F110C104F111C180 :1010600005F112C106F113C107F114C108F115C150 :1010700009F116C10AF117C10BF135C134F147EF7F :101080000BF047EF0BF00201002FABEF0AF0D59EFB :10109000D6CF47F1D7CF48F145C149F1E86AE8CF4B :1010A0004AF1138AD76AD66A0101456B466BD58E21 :1010B0001D50E00BE00AE86612881BBE02D01BB48C :1010C000108E1AAE1F8C00C10CF101C10DF102C1CE :1010D0000EF103C10FF104C110F105C111F106C1F8 :1010E00012F107C113F108C114F109C115F10AC1C8 :1010F00016F10BC117F134C135F10FA0109A11B8D8 :101100008DEF08F00101620E046F010E056F000EF5 :10111000066F000E076F96EF08F00101A70E046F2F :10112000020E056F000E066F000E076F47C100F13B :1011300048C101F149C102F14AC103F11AEC31F091 :1011400003BFA9EF08F01CBE02D01CA0108C11B088 :101150000F800CC100F10DC101F10EC102F10FC1F0 :1011600003F110C104F111C105F112C106F113C15F :1011700007F114C108F115C109F116C10AF117C12F :101180000BF135C134F102013C0E006F00C10CF1CE :1011900001C10DF102C10EF103C10FF104C110F143 :1011A00005C111F106C112F107C113F108C114F113 :1011B00009C115F10AC116F10BC117F134C135F19E :1011C00081BAE6EF08F015B225EF09F015A025EF7A :1011D00009F015A470EF09F005012F51000AD8B4E9 :1011E000B3EF09F005012F51010AD8B42FEF09F030 :1011F00005012F51020AD8B470EF09F005012F51F3 :10120000030AD8B470EF09F005012F51040AD8B4CD :1012100070EF09F005012F51050AD8B470EF09F0FD :1012200005012F51060AD8B470EF09F005012F51BE :10123000070AD8B470EF09F005012F51320AD8B46B :101240002DEF09F02F6BB3EF09F000011650030AE0 :10125000D8B470EF09F0B3EF09F0B3EF09F005016E :1012600057673AEF09F058673AEF09F059673AEFD4 :1012700009F05A673EEF09F0B3EF09F05BC500F1E2 :101280005CC501F15DC502F15EC503F10101010E0E :10129000046F000E056F000E066F000E076F1AEC4C :1012A00031F000C15BF501C15CF502C15DF503C120 :1012B0005EF50101006764EF09F0016764EF09F072 :1012C000026764EF09F00367B3EF09F057C55BF5F8 :1012D00058C55CF559C55DF55AC55EF59DEF09F039 :1012E0000FBE85EF09F010A08AEF09F001014767F2 :1012F00081EF09F0486781EF09F0496781EF09F054 :101300004A6785EF09F08AEF09F007AE8AEF09F026 :101310009DEF09F00501312FB3EF09F03C0E316F5D :10132000302FB3EF09F00101000E626FE00E636F22 :10133000A50E646F010E656F138800011650000A38 :10134000D8B4ABEF09F000011650030AD8B4B0EFDF :1013500009F0B3EF09F00001010E166EB3EF09F0CA :101360000001040E166E0501666B37B7B9EF09F080 :1013700066810CC100F10DC101F10EC102F10FC176 :1013800003F110C104F111C105F112C106F113C13D :1013900007F114C108F115C109F116C10AF117C10D :1013A0000BF135C134F100C10CF101C10DF102C1E5 :1013B0000EF103C10FF104C110F105C111F106C115 :1013C00012F107C113F108C114F109C115F10AC1E5 :1013D00016F10BC117F134C135F101018E67F8EF39 :1013E00009F08F67F8EF09F09067F8EF09F091675F :1013F000FCEF09F02DEF0AF092C100F193C101F169 :1014000094C102F195C103F10101010E046F000EB8 :10141000056F000E066F000E076F1AEC31F000C169 :1014200092F101C193F102C194F103C195F101015F :10143000006722EF0AF0016722EF0AF0026722EF4D :101440000AF003672DEF0AF08EC192F18FC193F17C :1014500090C194F191C195F10F80109047C100F1B6 :1014600048C101F149C102F14AC103F101010A0E6B :10147000046F000E056F000E066F000E076F1AEC6A :1014800031F003AF1080010154A753EF0AF00F9A17 :101490000F9C0F9E0101000E5E6F600E5F6F3D0E90 :1014A000606F080E616F47C100F148C101F149C189 :1014B00002F14AC103F10101140E046F050E056F1C :1014C000000E066F000E076F1AEC31F003AF6CEFE1 :1014D0000AF0F28891EF0AF0F2985E6B5F6B606B36 :1014E000616B9A6B9B6B9C6B9D6B9E6B9F6BA06BF8 :1014F000A16BA26BA36BA46BA56BA66BA76BA86B70 :10150000A96BAA6BAB6BAC6BAD6BAE6BAF6BB06B1F :10151000B16BB26BB36BB46BB56BB66BB76BB86BCF :10152000B96B0CC100F10DC101F10EC102F10FC187 :1015300003F110C104F111C105F112C106F113C18B :1015400007F114C108F115C109F116C10AF117C15B :101550000BF135C134F104008BB4B6EF0AF010ACD6 :10156000B6EF0AF08B84109CB7EF0AF08B94077CDF :1015700007ACD2EF0AF0C274C2B4CCEF0AF0C3CF0A :10158000B7F5C4CFB8F50501D890B833B733D890C4 :10159000B833B733D3EF0AF0C3CF55F1C4CF56F108 :1015A000D3EF0AF0C28207B445EF0BF047C14BF10D :1015B00048C14CF149C14DF14AC14EF15EC162F1E1 :1015C0005FC163F160C164F161C165F113A8EBEF24 :1015D0000AF0138C13989AC1BAF19BC1BBF19CC15C :1015E000BCF19DC1BDF19EC1BEF19FC1BFF1A0C1C3 :1015F000C0F1A1C1C1F1A2C1C2F1A3C1C3F1A4C193 :10160000C4F1A5C1C5F1A6C1C6F1A7C1C7F1A8C162 :10161000C8F1A9C1C9F1AAC1CAF1ABC1CBF1ACC132 :10162000CCF1ADC1CDF1AEC1CEF1AFC1CFF1B0C102 :10163000D0F1B1C1D1F1B2C1D2F1B3C1D3F1B4C1D2 :10164000D4F1B5C1D5F1B6C1D6F1B7C1D7F1B8C1A2 :10165000D8F1B9C1D9F1B7C5B9F5B8C5BAF5B9C5A9 :10166000BBF5BAC5BCF5010155515B2756515C234A :10167000E86A5D230E2E45EF0BF05CC157F15DC1AA :1016800058F15B6B5C6B5D6B078E47EF0BF002C034 :10169000E0FF005001C0D8FF1000A6B24DEF0BF0E4 :1016A0000CC0A9FF0BC0A8FFA69EA69CA684F29E14 :1016B000550EA76EAA0EA76EA682F28EA694A6B2AB :1016C0005FEF0BF00C2A1200A96EA69EA69CA680C6 :1016D000A8500C2A120004012C0E826FA2EC0EF00E :1016E0002FEC32F00C5064EC0BF0E8CF00F10C5012 :1016F00064EC0BF0E8CF01F101AF84EF0BF00101D6 :10170000FF0E026FFF0E036FB8EC31F0296790EF08 :101710000BF00401200E826FA2EC0EF095EF0BF09F :1017200004012D0E826FA2EC0EF0C2EC2FF012001D :1017300015941596076A0F6A106A116A126A136A7D :10174000166A0F010D0EC16E860EC06E030EC26EBC :101750000F01680E896E130E926E080E8A6EF30EDC :10176000936E8B6A900E946EC80E64EC0BF0E8CF0B :1017700025F000012550FE0AD8B4CAEF0BF0000195 :101780002550FD0AD8B4CFEF0BF00F0E266E8F0E4A :10179000276E09D00E0E266E8E0E276E04D00D0E0B :1017A000266E8D0E276ECDEC32F00DEC34F0F18EFE :1017B000F19EFC0E64EC0BF0E8CF0BF00BA0118057 :1017C0000BA211820BA411840BA81188C90E64EC22 :1017D0000BF0E8CF1AF0CA0E64EC0BF0E8CF1BF068 :1017E000CB0E64EC0BF0E8CF1CF0CC0E64EC0BF0ED :1017F000E8CF1DF0FB0E64EC0BF0E8CF38F0CE0E16 :1018000064EC0BF0E8CF14F0CD0E64EC0BF0E8CFF5 :1018100037F01F6A206A0E6A01015B6B5C6B5D6BBF :10182000576B586BF29A0101476B486B496B4A6BD7 :101830004B6B4C6B4D6B4E6B4F6B506B516B526BDC :10184000456B466BD76AD66A0F01280ED56EF28AB1 :101850009D90B00ECD6E01015E6B5F6B606B616B36 :10186000626B636B646B656B666B676B686B696BF4 :10187000536B546BCF6ACE6A0F9A0F9C0F9E9D805C :10188000760ECA6E9D8202013C0E006FCC6A160E67 :1018900064EC0BF0E8CF00F1170E64EC0BF0E8CF2E :1018A00001F1180E64EC0BF0E8CF02F1190E64ECB4 :1018B0000BF0E8CF03F1010103AF79EF0CF02FEC4F :1018C00032F0160E0C6E00C10BF04DEC0BF0170E43 :1018D0000C6E01C10BF04DEC0BF0180E0C6E02C13A :1018E0000BF04DEC0BF0190E0C6E03C10BF04DEC30 :1018F0000BF000C18EF101C18FF102C190F103C163 :1019000091F100C192F101C193F102C194F103C1BF :1019100095F11A0E64EC0BF0E8CF00F11B0E64ECAD :101920000BF0E8CF01F11C0E64EC0BF0E8CF02F1F4 :101930001D0E64EC0BF0E8CF03F1010103AFCFEF14 :101940000CF02FEC32F01A0E0C6E00C10BF04DECC7 :101950000BF01B0E0C6E01C10BF04DEC0BF01C0ECE :101960000C6E02C10BF04DEC0BF01D0E0C6E03C1A2 :101970000BF04DEC0BF01A0E64EC0BF0E8CF00F11D :101980001B0E64EC0BF0E8CF01F11C0E64EC0BF0C5 :10199000E8CF02F11D0E64EC0BF0E8CF03F100C1BB :1019A00096F101C197F102C198F103C199F1240E9A :1019B000AC6E900EAB6E240EAC6E080EB86E000EC0 :1019C000B06E1F0EAF6E0401806B816B0F01900E25 :1019D000AB6E0F019D8A0301806B816BC26B8B9292 :1019E0009EEC37F09EEC37F080EC39F07CEC35F073 :1019F000200E64EC0BF0E8CF2FF505012F51FF0A04 :101A0000D8A40AEF0DF02F6B200E0C6E2FC50BF033 :101A10004DEC0BF00501010E306F3C0E316F250EC1 :101A200064EC0BF0E8CF00F1260E64EC0BF0E8CF8D :101A300001F1270E64EC0BF0E8CF02F1280E64EC04 :101A40000BF0E8CF03F1010103AF41EF0DF02FECF4 :101A500032F0250E0C6E00C10BF04DEC0BF0260E93 :101A60000C6E01C10BF04DEC0BF0270E0C6E02C199 :101A70000BF04DEC0BF0280E0C6E03C10BF04DEC8F :101A80000BF000C157F501C158F502C159F503C16A :101A90005AF500C15BF501C15CF502C15DF503C1FA :101AA0005EF5290E64EC0BF0E8CF5FF5050160519F :101AB0005F5DD8A05FC560F5210E64EC0BF0E8CF48 :101AC00000F1220E64EC0BF0E8CF01F1230E64EC80 :101AD0000BF0E8CF02F1240E64EC0BF0E8CF03F139 :101AE000010103AFA2EF0DF02FEC32F0210E0C6ECE :101AF00000C10BF04DEC0BF0220E0C6E01C10BF08F :101B00004DEC0BF0230E0C6E02C10BF04DEC0BF004 :101B1000240E0C6E03C10BF04DEC0BF0210E64ECA7 :101B20000BF0E8CF00F1220E64EC0BF0E8CF01F1EE :101B3000230E64EC0BF0E8CF02F1240E64EC0BF002 :101B4000E8CF03F100C161F501C162F502C163F59F :101B500003C164F58DEC34F0AAEC33F0E0EC32F024 :101B60001590C70E64EC0BF0E8CF00F1010100B155 :101B7000BDEF0DF01592BEEF0DF0158281AACCEFEE :101B80000DF015B4C7EF0DF01580CCEF0DF0BFECE4 :101B900039F015A026EF3AF007900001F28EF28C92 :101BA00012AE03D012BC7AEF19F007B041EF2EF05D :101BB0000FB031EF27F010BE31EF27F012B831EF40 :101BC00027F000011650010AD8B439EF1EF081BA8F :101BD000F2EF0DF000011650040AD8B437EF1CF0F4 :101BE000F8EF0DF000011650040AD8B475EF1EF09E :101BF0000301805181197F0BD8B441EF2EF013EE11 :101C000000F081517F0BE126812BE7CFE8FFE00B4D :101C1000D8B441EF2EF023EE82F0C2513F0BD9260B :101C2000E7CFDFFFC22BDF50780AD8A441EF2EF0B8 :101C3000078092C100F193C101F194C102F195C1F5 :101C400003F10101040E046F000E056F000E066F14 :101C5000000E076F1AEC31F000AF38EF0EF0010103 :101C6000030E926F000E936F000E946F000E956F2F :101C700003018251720AD8B4B2EF26F08251520A9F :101C8000D8B4B2EF26F08251750AD8B4B2EF26F07C :101C90008251680AD8B4B6EF0EF08251630AD8B404 :101CA000FBEF2AF08251690AD8B47FEF21F082510C :101CB0007A0AD8B492EF22F08251490AD8B41EEFC2 :101CC00021F08251500AD8B43CEF20F08251700AC2 :101CD000D8B47FEF20F08251540AD8B4AAEF20F094 :101CE0008251740AD8B4F0EF20F08251410AD8B47E :101CF000BBEF0FF082514B0AD8B4B8EF0EF082510F :101D00006D0AD8B42BEF14F082514D0AD8B444EFC9 :101D100014F08251730AD8B4E2EF25F08251530ACD :101D2000D8B447EF26F082514C0AD8B4D3EF14F060 :101D30008251590AD8B47CEF13F012AE01D0128C44 :101D400032EF2BF0040114EE00F080517F0BE126FE :101D500082C4E7FF802B120004010D0E826FA2ECFB :101D60000EF00A0E826FA2EC0EF0120030EF2BF094 :101D700004014B0E826FA2EC0EF004012C0E826F58 :101D8000A2EC0EF081B802D037B630D003018351F7 :101D9000430AD8B4FDEF0EF003018351630AD8B4AF :101DA000FFEF0EF003018351520AD8B401EF0FF098 :101DB00003018351720AD8B403EF0FF0030183517A :101DC000470AD8B405EF0FF003018351670AD8B46E :101DD00007EF0FF003018351540AD8B409EF0FF055 :101DE00003018351740AD8B479EF0FF003018351D2 :101DF000550AD8B40BEF0FF083D037807BD03790E3 :101E000079D0378277D0379275D0378473D03794B2 :101E100071D037866FD084C330F185C331F186C36A :101E200032F187C333F10101296B7DEC32F0F4EC20 :101E300031F000C104F101C105F102C106F103C195 :101E400007F170EC32F0200EF86EF76AF66A0900BE :101E5000F5CF2CF10900F5CF2DF10900F5CF2EF1CA :101E60000900F5CF2FF10900F5CF30F10900F5CFCA :101E700031F10900F5CF32F10900F5CF33F101015D :101E8000296B7DEC32F0F4EC31F01AEC31F0010109 :101E9000006752EF0FF0016752EF0FF0026752EF49 :101EA0000FF0036701D025D004014E0E826FA2EC23 :101EB0000EF004016F0E826FA2EC0EF004014D0EC5 :101EC000826FA2EC0EF00401610E826FA2EC0EF0A4 :101ED0000401740E826FA2EC0EF00401630E826F97 :101EE000A2EC0EF00401680E826FA2EC0EF030EF4F :101EF0002BF03796CD0E0C6E37C00BF04DEC0BF07F :101F0000CD0E64EC0BF0E8CF37F037B006D004010B :101F1000630E826FA2EC0EF005D00401430E826FB7 :101F2000A2EC0EF037B206D00401720E826FA2EC62 :101F30000EF005D00401520E826FA2EC0EF037B401 :101F400006D00401670E826FA2EC0EF005D00401EA :101F5000470E826FA2EC0EF037B606D00401740E65 :101F6000826FA2EC0EF005D00401540E826FA2EC39 :101F70000EF030EF2BF00401410E826FA2EC0EF058 :101F800003018351310AD8B49CEF12F0030183514D :101F9000320AD8B4CCEF11F003018351330AD8B41C :101FA00055EF11F003018351340AD8B445EF10F016 :101FB00003018351350AD8B4E5EF0FF004013F0E59 :101FC000826FA2EC0EF030EF2BF003018451300A47 :101FD000D8B40BEF10F003018451310AD8B40EEFDE :101FE00010F003018451650AD8B4FFEF0FF003012C :101FF0008451640AD8B402EF10F00FEF10F038905B :1020000003EF10F03880FB0E0C6E38C00BF04DEC77 :102010000BF00FEF10F08B900FEF10F08B8004019E :10202000350E826FA2EC0EF004012C0E826FA2EC32 :102030000EF08BB023EF10F00401300E826FA2EC93 :102040000EF028EF10F00401310E826FA2EC0EF0BA :1020500004012C0E826FA2EC0EF0FB0E64EC0BF070 :10206000E8CF38F038A03CEF10F00401640E826F26 :10207000A2EC0EF041EF10F00401650E826FA2ECAD :102080000EF043EF10F030EF2BF0CC0E64EC0BF0C1 :10209000E8CF0BF004012C0E826FA2EC0EF00301CE :1020A0008451310AD8B469EF10F003018451300A29 :1020B000D8B46BEF10F0030184514D0AD8B475EF1A :1020C00010F003018451540AD8B47CEF10F093EF60 :1020D00010F08A8401D08A940BAE04D00BAC02D0ED :1020E0000BBA21D0E00E0B1218D01F0E0B1685393B :1020F000E844E00B0B1211D0E00E0B1670EC32F03E :1021000085C332F186C333F10101296B7DEC32F0D6 :10211000F4EC31F000511F0B0B12CC0E0C6E0BC007 :102120000BF04DEC0BF00401340E826FA2EC0EF0BC :1021300004012C0E826FA2EC0EF0CC0E64EC0BF0BE :10214000E8CF1DF08AB406D00401300E826FA2ECF5 :102150000EF005D00401310E826FA2EC0EF00401E6 :102160002C0E826FA2EC0EF01D38E840070BE8CF72 :1021700082F40401300E8227A2EC0EF004012C0E32 :10218000826FA2EC0EF02FEC32F01D501F0BE8CF47 :1021900000F1B8EC31F032C182F40401300E822734 :1021A000A2EC0EF033C182F40401300E8227A2ECBF :1021B0000EF004012C0E826FA2EC0EF02FEC32F028 :1021C00031C000F100AF0BD0FF0E016FFF0E026FA8 :1021D000FF0E036F04012D0E826FA2EC0EF0B8EC1F :1021E00031F031C182F40401300E8227A2EC0EF0EE :1021F00032C182F40401300E8227A2EC0EF033C10A :1022000082F40401300E8227A2EC0EF004012C0EA1 :10221000826FA2EC0EF02FEC32F030C000F1B8EC7F :1022200031F031C182F40401300E8227A2EC0EF0AD :1022300032C182F40401300E8227A2EC0EF033C1C9 :1022400082F40401300E8227A2EC0EF004012C0E61 :10225000826FA2EC0EF02FEC32F032C000F100AF32 :102260000BD0FF0E016FFF0E026FFF0E036F040114 :102270002D0E826FA2EC0EF0B8EC31F031C182F479 :102280000401300E8227A2EC0EF032C182F4040168 :10229000300E8227A2EC0EF033C182F40401300E1E :1022A0008227A2EC0EF030EF2BF0CB0E64EC0BF09B :1022B000E8CF0BF004012C0E826FA2EC0EF00301AC :1022C0008451450AD8B479EF11F003018451440ACE :1022D000D8B47CEF11F003018451300AD8B47FEFF9 :1022E00011F003018451310AD8B483EF11F08EEF5D :1022F00011F00B9E88EF11F00B8E88EF11F0FC0EA1 :102300000B1688EF11F0FC0E0B160B8088EF11F006 :10231000CB0E0C6E0BC00BF04DEC0BF00401330E2A :10232000826FA2EC0EF004012C0E826FA2EC0EF074 :10233000CB0E64EC0BF0E8CF1CF01CBEA7EF11F045 :102340000401450E826FA2EC0EF0ACEF11F0040117 :10235000440E826FA2EC0EF004012C0E826FA2ECF0 :102360000EF00401300E826FA2EC0EF004012C0E70 :10237000826FA2EC0EF01CB0C5EF11F00401300E1C :10238000826FA2EC0EF0CAEF11F00401310E826FE1 :10239000A2EC0EF030EF2BF0CA0E64EC0BF0E8CF9D :1023A0000BF004012C0E826FA2EC0EF0030184519D :1023B000450AD8B408EF12F003018451440AD8B496 :1023C0000BEF12F0030184514D0AD8B414EF12F050 :1023D00003018451410AD8B40EEF12F00301845175 :1023E000460AD8B411EF12F003018451560AD8B44A :1023F0001CEF12F003018451500AD8B427EF12F0F9 :1024000003018451520AD8B42AEF12F033EF12F0CC :102410000B9E2DEF12F00B8E2DEF12F00B9C2DEF7B :1024200012F00B8C2DEF12F0FC0E0B1685C3E8FF9B :10243000030B0B122DEF12F0C70E0B1685C3E8FF2E :10244000070BE846E846E8460B122DEF12F00B8426 :102450002DEF12F00B942DEF12F0CA0E0C6E0BC084 :102460000BF04DEC0BF0CA0E64EC0BF0E8CF1BF058 :102470000401320E826FA2EC0EF004012C0E826F6A :10248000A2EC0EF01BBE4CEF12F00401450E826F61 :10249000A2EC0EF051EF12F00401440E826FA2EC98 :1024A0000EF004012C0E826FA2EC0EF01BC0E8FFB0 :1024B000030BE8CF82F40401300E8227A2EC0EF069 :1024C00004012C0E826FA2EC0EF01BBC6FEF12F019 :1024D0000401410E826FA2EC0EF074EF12F00401C1 :1024E000460E826FA2EC0EF004012C0E826FA2EC5D :1024F0000EF01BC0E8FF380BE842E842E842E8CFA4 :1025000082F40401300E8227A2EC0EF004012C0E9E :10251000826FA2EC0EF01BB495EF12F00401520E84 :10252000826FA2EC0EF09AEF12F00401500E826F4F :10253000A2EC0EF030EF2BF0C90E64EC0BF0E8CFFC :102540000BF004012C0E826FA2EC0EF003018451FB :10255000450AD8B4BAEF12F003018451440AD8B442 :10256000BDEF12F0030184514D0AD8B4C0EF12F050 :10257000CEEF12F00B9EC8EF12F00B8EC8EF12F0E8 :10258000F80E0B1685C3E8FF070B0B12C8EF12F00D :10259000C90E0C6E0BC00BF04DEC0BF00401310EAC :1025A000826FA2EC0EF004012C0E826FA2EC0EF0F2 :1025B000C90E64EC0BF0E8CF1AF01ABE06D0040185 :1025C000450E826FA2EC0EF005D00401440E826F1E :1025D000A2EC0EF004012C0E826FA2EC0EF01AC0D9 :1025E000E8FF070BE8CF82F40401300E8227A2EC4B :1025F0000EF004012C0E826FA2EC0EF007802FEC7F :1026000032F02CC0E8FF003B00430043030BB8EC62 :1026100031F033C182F40401300E8227A2EC0EF0B7 :1026200004012C0E826FA2EC0EF02FEC32F02CC0C5 :1026300001F1019F019D2DC000F10101B8EC31F0C5 :102640002FC182F40401300E8227A2EC0EF030C1BB :1026500082F40401300E8227A2EC0EF031C182F424 :102660000401300E8227A2EC0EF032C182F4040184 :10267000300E8227A2EC0EF033C182F40401300E3A :102680008227A2EC0EF004012C0E826FA2EC0EF059 :102690002FEC32F02EC001F12FC000F1D8900133A1 :1026A0000033D890013300330101B8EC31F02FC171 :1026B00082F40401300E8227A2EC0EF030C182F4C5 :1026C0000401300E8227A2EC0EF031C182F4040125 :1026D000300E8227A2EC0EF032C182F40401300EDB :1026E0008227A2EC0EF033C182F40401300E82275F :1026F000A2EC0EF030EF2BF0FC0E64EC0BF0E8CF08 :102700000BF003018351520AD8B4B3EF13F0030165 :102710008351720AD8B4B6EF13F003018351500A03 :10272000D8B4B9EF13F003018351700AD8B4BCEFE9 :1027300013F003018351550AD8B4BFEF13F003011E :102740008351750AD8B4C2EF13F003018351430AD1 :10275000D8B4CBEF13F003018351630AD8B4CEEFA2 :1027600013F0D7EF13F00B90D1EF13F00B80D1EFF4 :1027700013F00B92D1EF13F00B82D1EF13F00B9407 :10278000D1EF13F00B84D1EF13F00B96D1EF13F0D0 :102790000B86D1EF13F00B98D1EF13F00B88D1EF2C :1027A00013F0FC0E0C6E0BC00BF04DEC0BF00401A3 :1027B000590E826FA2EC0EF01190119211941198A3 :1027C000FC0E64EC0BF0E8CF0BF00BA011800BA219 :1027D00011820BA411840BA8118811A0F7EF13F03C :1027E0000401520E826FA2EC0EF0FCEF13F0040114 :1027F000720E826FA2EC0EF011A806EF14F0040125 :10280000430E826FA2EC0EF00BEF14F00401630E86 :10281000826FA2EC0EF011A215EF14F00401500E1D :10282000826FA2EC0EF01AEF14F00401700E826FAA :10283000A2EC0EF011A424EF14F00401550E826FE7 :10284000A2EC0EF029EF14F00401750E826FA2ECD9 :102850000EF030EF2BF004016D0E826FA2EC0EF043 :1028600003018351300AD8B483EF14F0030183517C :10287000310AD8B496EF14F003018351320AD8B468 :10288000A9EF14F032EF2BF004014D0E826FA2EC91 :102890000EF070EC32F084C331F185C332F186C39F :1028A00033F10101296B7DEC32F0F4EC31F00301DE :1028B0008351300AD8B46BEF14F003018351310A0D :1028C000D8B473EF14F003018351320AD8B47BEF0C :1028D00014F032EF2BF0FD0E0C6E00C10BF04DEC3E :1028E0000BF083EF14F0FE0E0C6E00C10BF04DECFC :1028F0000BF096EF14F0FF0E0C6E00C10BF04DECD8 :102900000BF0A9EF14F00401300E826FA2EC0EF070 :1029100004012C0E826FA2EC0EF02FEC32F0FD0EB3 :1029200064EC0BF0E8CF00F1BAEF14F00401310EC3 :10293000826FA2EC0EF004012C0E826FA2EC0EF05E :102940002FEC32F0FE0E64EC0BF0E8CF00F1BAEFA2 :1029500014F00401320E826FA2EC0EF02FEC32F074 :1029600004012C0E826FA2EC0EF0FF0E64EC0BF053 :10297000E8CF00F1B8EC31F031C182F40401300E3F :102980008227A2EC0EF032C182F40401300E8227BD :10299000A2EC0EF033C182F40401300E8227A2ECC7 :1029A0000EF030EF2BF003018351300AD8B427EF3B :1029B0001AF003018351310AD8B465EF1BF003010B :1029C0008351320AD8B4D3EF1BF003018351330A89 :1029D000D8B4E3EF1BF003018351340AD8B43EEFBF :1029E0001CF003018351350AD8B48DEF1EF00301AA :1029F0008351360AD8B4BBEF1EF003018351370A66 :102A0000D8B4FFEF17F003018351380AD8B49DEF13 :102A100018F003018351440AD8B42BEF16F00301D8 :102A20008351640AD8B44BEF16F003018351460A70 :102A3000D8B492EF1DF0030183514D0AD8B478EF5A :102A400016F0030183516D0AD8B492EF16F003011A :102A500083515A0AD8B4DFEF1AF003018351490AAF :102A6000D8B4BBEF1FF003018351500AD8B4EDEF87 :102A70001EF003018351540AD8B466EF1FF003011E :102A80008351630AD8B4B2EF16F003018351430AAD :102A9000D8B4AAEF17F003018351730AD8B4B0EF8A :102AA00016F003018351610AD8B478EF15F00301E1 :102AB0008351650AD8B477EF1AF003018351450AB0 :102AC000D8B485EF1AF003018351620AD8B493EFAA :102AD0001AF003018351420AD8B4A1EF1AF003019E :102AE0008351760AD8B4AFEF1AF0D8A432EF2BF0A6 :102AF00004014C0E826FA2EC0EF00401610E826F95 :102B0000A2EC0EF0AAEC33F004012C0E826FA2ECC2 :102B10000EF02FEC32F0AFC500F10101B8EC31F04E :102B200031C182F40401300E8227A2EC0EF032C1D2 :102B300082F40401300E8227A2EC0EF033C182F43D :102B40000401300E8227A2EC0EF004012C0E826FDD :102B5000A2EC0EF02FEC32F0B0C500F10101B8ECA0 :102B600031F031C182F40401300E8227A2EC0EF064 :102B700032C182F40401300E8227A2EC0EF033C180 :102B800082F40401300E8227A2EC0EF004012C0E18 :102B9000826FA2EC0EF02FEC32F0B1C500F1010112 :102BA000B8EC31F031C182F40401300E8227A2EC7E :102BB0000EF032C182F40401300E8227A2EC0EF036 :102BC00033C182F40401300E8227A2EC0EF004011E :102BD0002C0E826FA2EC0EF02FEC32F0B2C500F199 :102BE0000101B8EC31F031C182F40401300E8227CA :102BF000A2EC0EF032C182F40401300E8227A2EC66 :102C00000EF033C182F40401300E8227A2EC0EF0E4 :102C100004012C0E826FA2EC0EF02FEC32F0B6C540 :102C200000F10101B8EC31F031C182F40401300E41 :102C30008227A2EC0EF032C182F40401300E82270A :102C4000A2EC0EF033C182F40401300E8227A2EC14 :102C50000EF0E9EF1EF003018451300AD8B437EFCB :102C600016F003018451310AD8B43BEF16F01592E7 :102C700015963CEF16F01582C70E64EC0BF0E8CF0A :102C800000F10101008115A20091C70E0C6E00C178 :102C90000BF04DEC0BF0C70E64EC0BF0E8CF00F13D :102CA000010100B157EF16F0159258EF16F015829A :102CB00004014C0E826FA2EC0EF00401640E826FD0 :102CC000A2EC0EF004012C0E826FA2EC0EF015B2F5 :102CD00071EF16F00401300E826FA2EC0EF076EF69 :102CE00016F00401310E826FA2EC0EF030EF2BF0E3 :102CF00070EC32F084C333F17DEC32F0F4EC31F05F :102D0000200E0C6E00C10BF04DEC0BF000C12FF546 :102D100005012F51000A06E005012F51010A02E0CA :102D20000DEC34F004014C0E826FA2EC0EF00401A5 :102D30004D0E826FA2EC0EF004012C0E826FA2ECFD :102D40000EF02FEC32F02FC500F1B8EC31F033C1AA :102D500082F40401300E8227A2EC0EF0E9EF1EF09F :102D600026EF3AF004014C0E826FA2EC0EF0040143 :102D7000630E826FA2EC0EF0E0EC32F004012C0E38 :102D8000826FA2EC0EF0C7EC16F0E9EF1EF02FEC0C :102D900032F0B5C500F10101003B0F0E0017B8EC91 :102DA00031F033C182F40401300E8227A2EC0EF020 :102DB000B5C500F101010F0E01010017B8EC31F0AB :102DC00033C182F40401300E8227A2EC0EF004011C :102DD0002D0E826FA2EC0EF0B4C500F10101003B94 :102DE0000F0E0017B8EC31F033C182F40401300E3D :102DF0008227A2EC0EF0B4C500F101010F0E010113 :102E00000017B8EC31F033C182F40401300E822790 :102E1000A2EC0EF004012D0E826FA2EC0EF0B3C5F1 :102E200000F10101003B0F0E0017B8EC31F033C187 :102E300082F40401300E8227A2EC0EF0B3C500F13B :102E400001010F0E01010017B8EC31F033C182F41B :102E50000401300E8227A2EC0EF00401200E826FD6 :102E6000A2EC0EF0B2C500F10F0E01010017B8EC94 :102E700031F033C182F40401300E8227A2EC0EF04F :102E80000401200E826FA2EC0EF0B1C500F1010129 :102E90000101003B0F0E0017B8EC31F033C182F492 :102EA0000401300E8227A2EC0EF0B1C500F1010141 :102EB0000F0E01010017B8EC31F033C182F40401A8 :102EC000300E8227A2EC0EF004013A0E826FA2ECC3 :102ED0000EF0B0C500F10101003B0F0E0017B8EC79 :102EE00031F033C182F40401300E8227A2EC0EF0DF :102EF000B0C500F101010F0E01010017B8EC31F06F :102F000033C182F40401300E8227A2EC0EF00401DA :102F10003A0E826FA2EC0EF0AFC500F10101003B4A :102F20000F0E0017B8EC31F033C182F40401300EFB :102F30008227A2EC0EF0AFC500F101010F0E0017C1 :102F4000B8EC31F033C182F40401300E8227A2ECD8 :102F50000EF0120084C3E8FF0F0BE83AE8CFB5F596 :102F600085C3E8FF0F0B0501B51387C3E8FF0F0BFF :102F7000E83AE8CFB4F588C3E8FF0F0B0501B413B6 :102F80008AC3E8FF0F0BE83AE8CFB3F58BC3E8FF3D :102F90000F0B0501B3138DC3E8FF0F0BE8CFB2F59C :102FA0008FC3E8FF0F0BE83AE8CFB1F590C3E8FF15 :102FB0000F0B0501B11392C3E8FF0F0BE83AE8CFFE :102FC000B0F593C3E8FF0F0B0501B01395C3E8FFFD :102FD0000F0BE83AE8CFAFF596C3E8FF0F0B0501FA :102FE000AF134CEC33F004014C0E826FA2EC0EF0E8 :102FF0000401430E826FA2EC0EF0BCEF16F00784C2 :1030000004014C0E826FA2EC0EF00401370E826FA9 :10301000A2EC0EF004012C0E826FA2EC0EF0050162 :103020002E51130A06E005012E51170A0DE09AEF02 :1030300018F00101000E006F000E016F100E026FFC :10304000000E036F2DEF18F00101000E006F000E4F :10305000016F000E026F010E036FB8EC31F02AC150 :1030600082F40401300E8227A2EC0EF02BC182F410 :103070000401300E8227A2EC0EF02CC182F4040170 :10308000300E8227A2EC0EF02DC182F40401300E26 :103090008227A2EC0EF02EC182F40401300E8227AA :1030A000A2EC0EF02FC182F40401300E8227A2ECB4 :1030B0000EF030C182F40401300E8227A2EC0EF033 :1030C00031C182F40401300E8227A2EC0EF032C12D :1030D00082F40401300E8227A2EC0EF033C182F498 :1030E0000401300E8227A2EC0EF004012C0E826F38 :1030F000A2EC0EF00101200E006F000E016F000E19 :10310000026F000E036FB8EC31F031C182F404019C :10311000300E8227A2EC0EF032C182F40401300E90 :103120008227A2EC0EF033C182F40401300E822714 :10313000A2EC0EF00794E9EF1EF00501216B226B63 :10314000236B246B04014C0E826FA2EC0EF0040181 :10315000380E826FA2EC0EF004012C0E826FA2ECEE :103160000EF00101200E006F000E016F000E026FC5 :10317000000E036FB8EC31F02AC182F40401300E66 :103180008227A2EC0EF02BC182F40401300E8227BC :10319000A2EC0EF02CC182F40401300E8227A2ECC6 :1031A0000EF02DC182F40401300E8227A2EC0EF045 :1031B0002EC182F40401300E8227A2EC0EF02FC142 :1031C00082F40401300E8227A2EC0EF030C182F4AA :1031D0000401300E8227A2EC0EF031C182F404010A :1031E000300E8227A2EC0EF032C182F40401300EC0 :1031F0008227A2EC0EF033C182F40401300E822744 :10320000A2EC0EF004012C0E826FA2EC0EF025C58C :1032100000F126C501F127C502F128C503F101011E :10322000200E046F000E056F000E066F000E076F74 :103230004BEC31F000C133F501C134F502C135F575 :1032400003C136F5B8EC31F02AC182F40401300E26 :103250008227A2EC0EF02BC182F40401300E8227EB :10326000A2EC0EF02CC182F40401300E8227A2ECF5 :103270000EF02DC182F40401300E8227A2EC0EF074 :103280002EC182F40401300E8227A2EC0EF02FC171 :1032900082F40401300E8227A2EC0EF030C182F4D9 :1032A0000401300E8227A2EC0EF031C182F4040139 :1032B000300E8227A2EC0EF032C182F40401300EEF :1032C0008227A2EC0EF033C182F40401300E822773 :1032D000A2EC0EF0ACEC0EF00501336777EF19F0BD :1032E000346777EF19F0356777EF19F0366702D05A :1032F00016EF1AF0129E129C21C500F122C501F1B1 :1033000023C502F124C503F1899A400EC76E200E31 :10331000C66E9E96C69E0B0EC96EFF0E9EB602D05E :10332000E82EFCD79E96C69E02C1C9FFFF0E9EB630 :1033300002D0E82EFCD79E96C69E01C1C9FFFF0EA3 :103340009EB602D0E82EFCD79E96C69E00C1C9FF4D :10335000FF0E9EB602D0E82EFCD79E96C69EC9529E :10336000FF0E9EB602D0E82EFCD70501200E326F6C :10337000040114EE00F080517F0BE1269E96C69E5C :10338000C952FF0E9EB602D0E82EFCD7C9CFE7FF88 :103390000401802B0501322FB8EF19F0898A33C55B :1033A00000F134C501F135C502F136C503F1010163 :1033B000010E046F000E056F000E066F000E076F02 :1033C0001AEC31F000C133F501C134F502C135F515 :1033D00003C136F505013367F5EF19F03467F5EFF2 :1033E00019F03567F5EF19F0366702D016EF1AF0CD :1033F00021C500F122C501F123C502F124C503F165 :103400000101200E046F000E056F000E066F000E06 :10341000076F1FEC31F000C121F501C122F502C197 :1034200023F503C124F5128E32EF2BF00401450E73 :10343000826FA2EC0EF004014F0E826FA2EC0EF030 :103440000401460E826FA2EC0EF0E9EF1EF0078435 :1034500080EC39F02FEC32F02DC500F1B8EC31F0F2 :1034600004014C0E826FA2EC0EF00401300E826F4C :10347000A2EC0EF004012C0E826FA2EC0EF031C112 :1034800082F40401300E8227A2EC0EF032C182F4E5 :103490000401300E8227A2EC0EF033C182F4040145 :1034A000300E8227A2EC0EF004012C0E826FA2ECEB :1034B0000EF02FEC32F02EC500F1B8EC31F031C136 :1034C00082F40401300E8227A2EC0EF032C182F4A5 :1034D0000401300E8227A2EC0EF033C182F4040105 :1034E000300E8227A2EC0EF00794E9EF1EF00401E3 :1034F0004C0E826FA2EC0EF00401650E826FA2ECFE :103500000EF020EC35F0E9EF1EF004014C0E826F56 :10351000A2EC0EF00401450E826FA2EC0EF037EC27 :1035200035F0E9EF1EF004014C0E826FA2EC0EF0B4 :103530000401620E826FA2EC0EF065EC35F0E9EF4B :103540001EF004014C0E826FA2EC0EF00401420E3C :10355000826FA2EC0EF04EEC35F0E9EF1EF00401A4 :103560004C0E826FA2EC0EF00401760E826FA2EC7C :103570000EF004012C0E826FA2EC0EF0000125501B :10358000FE0AD8B4D1EF1AF000012550FD0AD8B4D4 :10359000D8EF1AF00401300E826FA2EC0EF0E9EFC2 :1035A0001EF00401310E826FA2EC0EF0E9EF1EF066 :1035B0000401320E826FA2EC0EF0E9EF1EF004015E :1035C0004C0E826FA2EC0EF004015A0E826FA2EC38 :1035D0000EF004012C0E826FA2EC0EF080EC39F09C :1035E0002FEC32F005012E51130A06E005012E5191 :1035F000170A0DE010EF1BF00101000E006F000E26 :10360000016F100E026F000E036F10EF1BF001012F :10361000000E006F000E016F000E026F010E036FAF :103620000101200E046F000E056F000E066F000EE4 :10363000076F4BEC31F0B8EC31F02AC182F4040191 :10364000300E8227A2EC0EF02BC182F40401300E62 :103650008227A2EC0EF02CC182F40401300E8227E6 :10366000A2EC0EF02DC182F40401300E8227A2ECF0 :103670000EF02EC182F40401300E8227A2EC0EF06F :103680002FC182F40401300E8227A2EC0EF030C16B :1036900082F40401300E8227A2EC0EF031C182F4D4 :1036A0000401300E8227A2EC0EF032C182F4040134 :1036B000300E8227A2EC0EF033C182F40401300EEA :1036C0008227A2EC0EF0E9EF1EF0078404014C0EF5 :1036D000826FA2EC0EF00401310E826FA2EC0EF0AC :1036E00004012C0E826FA2EC0EF025C500F126C558 :1036F00001F127C502F128C503F10101200E046F75 :10370000000E056F000E066F000E076F4BEC31F0D8 :10371000B8EC31F02AC182F40401300E8227A2EC09 :103720000EF02BC182F40401300E8227A2EC0EF0C1 :103730002CC182F40401300E8227A2EC0EF02DC1C0 :1037400082F40401300E8227A2EC0EF02EC182F426 :103750000401300E8227A2EC0EF02FC182F4040186 :10376000300E8227A2EC0EF030C182F40401300E3C :103770008227A2EC0EF031C182F40401300E8227C0 :10378000A2EC0EF032C182F40401300E8227A2ECCA :103790000EF033C182F40401300E8227A2EC0EF049 :1037A0000794E9EF1EF0078404014C0E826FA2EC2F :1037B0000EF00401320E826FA2EC0EF054EC37F0E2 :1037C0000794E9EF1EF0078438B0E9EF1BF0FCEF37 :1037D0001BF0010E166E04014C0E826FA2EC0EF06F :1037E0000401330E826FA2EC0EF0B1EC37F0000E44 :1037F000166E079470EF1BF0020E166EB1EC37F0E8 :103800008B800501010E306F3C0E316F01015E6B44 :103810005F6B606B616B626B636B646B656B666B3C :10382000676B686B696B536B546BCF6ACE6A0F9A88 :103830000F9C0F9E030E166E04014C0E826FA2ECBD :103840000EF00401330E826FA2EC0EF004012C0E78 :10385000826FA2EC0EF004012D0E826FA2EC0EF02E :103860000401310E826FA2EC0EF030EF2BF0B1ECC0 :1038700037F0000E166E8B9032EF2BF007840401A8 :103880004C0E826FA2EC0EF00401340E826FA2EC9B :103890000EF004012C0E826FA2EC0EF070EC32F0F0 :1038A00084C32AF185C32BF186C32CF187C32DF184 :1038B00088C32EF189C32FF18AC330F18BC331F154 :1038C0008CC332F18DC333F10101296B7DEC32F0F1 :1038D000F4EC31F0200E046F000E056F000E066F41 :1038E000000E076F2BEC31F000C121F501C122F56C :1038F00002C123F503C124F533EC39F038C5AFF527 :1039000039C5B0F53AC5B1F53BC5B2F53CC5B3F51F :103910003DC5B4F53EC5B5F5C7EC16F004012C0E57 :10392000826FA2EC0EF03FC500F140C501F141C528 :1039300002F142C503F10101000E046F000E056F94 :10394000010E066F000E076F4BEC31F0B8EC31F052 :103950002967ADEF1CF0B2EF1CF004012D0E826F51 :10396000A2EC0EF030C182F40401300E8227A2ECEA :103970000EF031C182F40401300E8227A2EC0EF069 :1039800004012E0E826FA2EC0EF032C182F404010B :10399000300E8227A2EC0EF033C182F40401300E07 :1039A0008227A2EC0EF004012C0E826FA2EC0EF026 :1039B0002FEC32F043C500F144C501F15CEC2CF072 :1039C00004012C0E826FA2EC0EF02FEC32F045C5F4 :1039D00000F1B8EC31F031C182F40401300E8227DD :1039E000A2EC0EF032C182F40401300E8227A2EC68 :1039F0000EF033C182F40401300E8227A2EC0EF0E7 :103A000004012C0E826FA2EC0EF037C5E8FFE8B877 :103A100006D00401300E826FA2EC0EF005D0040136 :103A2000310E826FA2EC0EF004012C0E826FA2EC1C :103A30000EF037C5E8FFE8BA06D00401300E826FF9 :103A4000A2EC0EF06CD00401310E826FA2EC0EF0ED :103A500004012C0E826FA2EC0EF047C500F148C5A0 :103A600001F149C502F14AC503F1DAEC31F07BEC12 :103A70002FF004012C0E826FA2EC0EF04BC500F16A :103A80004CC501F14DC502F14EC503F10101000E17 :103A9000046F000E056F010E066F000E076F4BECF2 :103AA00031F0B8EC31F0296758EF1DF05DEF1DF0F3 :103AB00004012D0E826FA2EC0EF030C182F40401DD :103AC000300E8227A2EC0EF031C182F40401300ED8 :103AD0008227A2EC0EF004012E0E826FA2EC0EF0F3 :103AE00032C182F40401300E8227A2EC0EF033C101 :103AF00082F40401300E8227A2EC0EF004012C0E99 :103B0000826FA2EC0EF04FC500F150C501F151C516 :103B100002F152C503F1DAEC31F07BEC2FF007949F :103B2000E9EF1EF070EC32F085C32AF186C32BF169 :103B300087C32CF188C32DF189C32EF18AC32FF1DD :103B40008BC330F18CC331F18DC332F18EC333F1AD :103B50000101296B7DEC32F0F4EC31F00101010E32 :103B6000046F000E056F000E066F000E076F1AEC53 :103B700031F0100E046F000E056F000E066F000E80 :103B8000076F2BEC31F000C129F501C12AF502C104 :103B90002BF503C12CF5DBEC36F004014C0E826FE3 :103BA000A2EC0EF00401460E826FA2EC0EF00401AE :103BB0002C0E826FA2EC0EF025C500F126C501F196 :103BC00027C502F128C503F10101100E046F000E94 :103BD000056F000E066F000E076F4BEC31F0B8EC6E :103BE00031F02AC182F40401300E8227A2EC0EF0DB :103BF0002BC182F40401300E8227A2EC0EF02CC1FE :103C000082F40401300E8227A2EC0EF02DC182F462 :103C10000401300E8227A2EC0EF02EC182F40401C2 :103C2000300E8227A2EC0EF02FC182F40401300E78 :103C30008227A2EC0EF030C182F40401300E8227FC :103C4000A2EC0EF031C182F40401300E8227A2EC06 :103C50000EF032C182F40401300E8227A2EC0EF085 :103C600033C182F40401300E8227A2EC0EF0E9EF9A :103C70001EF038B03EEF1EF0020E166EB1EC37F0BB :103C800000011650020AD8B45CEF1EF005012F5156 :103C9000010AD8B452EF1EF015B257EF1EF081BAE8 :103CA00057EF1EF0000E166E158432EF2BF0050E46 :103CB000166E158426EF3AF08B8001015E6B5F6B08 :103CC000606B616B626B636B646B656B666B676B80 :103CD000686B696B536B546BCF6ACE6A0F9A0F9CFB :103CE0000F9E030E166E32EF2BF0B1EC37F005018C :103CF0002F51010AD8B483EF1EF015B288EF1EF0E1 :103D000081BA88EF1EF0000E166E158432EF2BF08C :103D1000050E166E158426EF3AF004014C0E826FE4 :103D2000A2EC0EF00401350E826FA2EC0EF004013D :103D30002C0E826FA2EC0EF02FEC32F00784B9C586 :103D400000F10794B8EC31F031C182F40401300E77 :103D50008227A2EC0EF032C182F40401300E8227D9 :103D6000A2EC0EF033C182F40401300E8227A2ECE3 :103D70000EF0E9EF1EF074EC37F02FEC32F037C59F :103D800000F1B8EC31F004014C0E826FA2EC0EF0A1 :103D90000401360E826FA2EC0EF004012C0E826F2D :103DA000A2EC0EF031C182F40401300E8227A2ECA5 :103DB0000EF032C182F40401300E8227A2EC0EF024 :103DC00033C182F40401300E8227A2EC0EF0E9EF39 :103DD0001EF0ACEC0EF032EF2BF004014C0E826FB3 :103DE000A2EC0EF00401500E826FA2EC0EF0040162 :103DF0002C0E826FA2EC0EF085C32AF186C32BF144 :103E000087C32CF188C32DF189C32EF18AC32FF10A :103E10008BC330F18CC331F18DC332F18EC333F1DA :103E200001017DEC32F0F4EC31F003018451530ACE :103E30000DE0030184514D0A38E00401780E826FD1 :103E4000A2EC0EF0ACEC0EF032EF2BF00401530EAE :103E5000826FA2EC0EF0250E0C6E00C10BF04DEC43 :103E60000BF0260E0C6E01C10BF04DEC0BF0270E83 :103E70000C6E02C10BF04DEC0BF0280E0C6E03C162 :103E80000BF04DEC0BF000C157F501C158F502C124 :103E900059F503C15AF500C15BF501C15CF502C1DA :103EA0005DF503C15EF5CAEF1FF004014D0E826F90 :103EB000A2EC0EF0290E0C6E00C10BF04DEC0BF0D5 :103EC00000C15FF500C160F5CAEF1FF004014C0EA0 :103ED000826FA2EC0EF00401540E826FA2EC0EF081 :103EE00004012C0E826FA2EC0EF084C32AF185C36C :103EF0002BF186C32CF187C32DF188C32EF189C322 :103F00002FF18AC330F18BC331F18DC332F18EC3EF :103F100033F101017DEC32F0F4EC31F00101000EDF :103F2000046F000E056F010E066F000E076F2BEC7D :103F300031F0210E0C6E00C10BF04DEC0BF0220E97 :103F40000C6E01C10BF04DEC0BF0230E0C6E02C198 :103F50000BF04DEC0BF0240E0C6E03C10BF04DEC8E :103F60000BF000C161F501C162F502C163F503C147 :103F700064F5CAEF1FF004014C0E826FA2EC0EF044 :103F80000401490E826FA2EC0EF004012C0E826F28 :103F9000A2EC0EF0250E64EC0BF0E8CF00F1260E3B :103FA00064EC0BF0E8CF01F1270E64EC0BF0E8CFE6 :103FB00002F1280E64EC0BF0E8CF03F1B8EC31F01D :103FC0007BEC2FF00401730E826FA2EC0EF0040163 :103FD0002C0E826FA2EC0EF02FEC32F0290E64EC66 :103FE0000BF0E8CF00F1B8EC31F07BEC2FF00401DE :103FF0006D0E826FA2EC0EF004012C0E826FA2EC0B :104000000EF05BC500F15CC501F15DC502F15EC556 :1040100003F1B8EC31F07BEC2FF00401730E826FEA :10402000A2EC0EF004012C0E826FA2EC0EF02FEC2D :1040300032F060C500F1B8EC31F07BEC2FF00401F8 :104040006D0E826FA2EC0EF004012C0E826FA2ECBA :104050000EF061C500F162C501F163C502F164C5EE :1040600003F14DEC2BF004012C0E826FA2EC0EF04C :10407000ACEC0EF032EF2BF083C32AF184C32BF1AA :1040800085C32CF186C32DF187C32EF188C32FF190 :1040900089C330F18AC331F18BC332F18CC333F160 :1040A00001017DEC32F0F4EC31F0160E0C6E00C123 :1040B0000BF04DEC0BF0170E0C6E01C10BF04DEC3C :1040C0000BF0180E0C6E02C10BF04DEC0BF0190E3C :1040D0000C6E03C10BF04DEC0BF000C18EF101C171 :1040E0008FF102C190F103C191F100C192F101C1C0 :1040F00093F102C194F103C195F11EEF21F083C346 :104100002AF184C32BF185C32CF186C32DF187C31B :104110002EF188C32FF189C330F18AC331F18BC3EB :1041200032F18CC333F101017DEC32F0F4EC31F06B :1041300000C18EF101C18FF102C190F103C191F173 :1041400000C192F101C193F102C194F103C195F153 :104150001EEF21F083C32AF184C32BF185C32CF118 :1041600086C32DF187C32EF188C32FF189C330F1A7 :104170008AC331F18CC332F18DC333F101017DEC7F :1041800032F0F4EC31F00101000E046F000E056F07 :10419000010E066F000E076F2BEC31F01A0E0C6E3D :1041A00000C10BF04DEC0BF01B0E0C6E01C10BF0BF :1041B0004DEC0BF01C0E0C6E02C10BF04DEC0BF035 :1041C0001D0E0C6E03C10BF04DEC0BF000C196F10F :1041D00001C197F102C198F103C199F11EEF21F0DD :1041E00083C32AF184C32BF185C32CF186C32DF13F :1041F00087C32EF188C32FF189C330F18AC331F10F :104200008CC332F18DC333F101017DEC32F0F4EC5B :1042100031F00101000E046F000E056F010E066FF4 :10422000000E076F2BEC31F000C196F101C197F140 :1042300002C198F103C199F11EEF21F0160E64EC52 :104240000BF0E8CF00F1170E64EC0BF0E8CF01F1B2 :10425000180E64EC0BF0E8CF02F1190E64EC0BF0D1 :10426000E8CF03F1B8EC31F07BEC2FF00401730ED2 :10427000826FA2EC0EF004012C0E826FA2EC0EF005 :104280008EC100F18FC101F190C102F191C103F122 :10429000B8EC31F07BEC2FF00401730E826FA2ECCE :1042A0000EF004012C0E826FA2EC0EF01A0E64ECDC :1042B0000BF0E8CF00F11B0E64EC0BF0E8CF01F13E :1042C0001C0E64EC0BF0E8CF02F11D0E64EC0BF059 :1042D000E8CF03F14DEC2BF004012C0E826FA2EC21 :1042E0000EF096C100F197C101F198C102F199C198 :1042F00003F14DEC2BF0ACEC0EF032EF2BF004019F :10430000690E826FA2EC0EF004012C0E826FA2ECFB :104310000EF00101040E006F000E016F000E026F1F :10432000000E036FB8EC31F02CC182F40401300EA2 :104330008227A2EC0EF02DC182F40401300E8227F8 :10434000A2EC0EF02EC182F40401300E8227A2EC02 :104350000EF02FC182F40401300E8227A2EC0EF081 :1043600030C182F40401300E8227A2EC0EF031C17C :1043700082F40401300E8227A2EC0EF032C182F4E6 :104380000401300E8227A2EC0EF033C182F4040146 :10439000300E8227A2EC0EF004012C0E826FA2ECEC :1043A0000EF001010D0E006F000E016F000E026F86 :1043B000000E036FB8EC31F02CC182F40401300E12 :1043C0008227A2EC0EF02DC182F40401300E822768 :1043D000A2EC0EF02EC182F40401300E8227A2EC72 :1043E0000EF02FC182F40401300E8227A2EC0EF0F1 :1043F00030C182F40401300E8227A2EC0EF031C1EC :1044000082F40401300E8227A2EC0EF032C182F455 :104410000401300E8227A2EC0EF033C182F40401B5 :10442000300E8227A2EC0EF004012C0E826FA2EC5B :104430000EF00101500E006F000E016F000E026FB2 :10444000000E036FB8EC31F02CC182F40401300E81 :104450008227A2EC0EF02DC182F40401300E8227D7 :10446000A2EC0EF02EC182F40401300E8227A2ECE1 :104470000EF02FC182F40401300E8227A2EC0EF060 :1044800030C182F40401300E8227A2EC0EF031C15B :1044900082F40401300E8227A2EC0EF032C182F4C5 :1044A0000401300E8227A2EC0EF033C182F4040125 :1044B000300E8227A2EC0EF004012C0E826FA2ECCB :1044C0000EF0200EF86EF76AF66A04010900F5CFC7 :1044D00082F4A2EC0EF00900F5CF82F4A2EC0EF00B :1044E0000900F5CF82F4A2EC0EF00900F5CF82F4BA :1044F000A2EC0EF00900F5CF82F4A2EC0EF0090058 :10450000F5CF82F4A2EC0EF00900F5CF82F4A2EC14 :104510000EF00900F5CF82F4A2EC0EF0ACEC0EF038 :1045200032EF2BF08351630AD8A430EF2BF0845183 :10453000610AD8A430EF2BF085516C0AD8A430EF73 :104540002BF08651410A3FE08651440A1BE0865118 :10455000420AD8B4F6EF22F08651350AD8B4BCEF3F :104560002CF08651360AD8B411EF2DF08651370A57 :10457000D8B47AEF2DF08651380AD8B4D8EF2DF0A0 :1045800030EF2BF00798079A04017A0E826FA2ECA5 :104590000EF00401780E826FA2EC0EF00401640E9E :1045A000826FA2EC0EF00401550E826FA2EC0EF0A9 :1045B000DFEF22F004014C0E826FA2EC0EF0ACECA7 :1045C0000EF032EF2BF00788079A04017A0E826F03 :1045D000A2EC0EF00401410E826FA2EC0EF0040179 :1045E000610E826FA2EC0EF0D3EF22F00798078ADB :1045F00004017A0E826FA2EC0EF00401420E826F6B :10460000A2EC0EF00401610E826FA2EC0EF0D3EF6B :1046100022F00101666714EF23F0676714EF23F0BF :10462000686714EF23F0696716D001014F6720EF28 :1046300023F0506720EF23F0516720EF23F05267FB :104640000AD00101000E006F000E016F000E026F14 :10465000000E036F120011B80AD00101620E046F40 :10466000010E056F000E066F000E076F09D00101E5 :10467000A70E046F020E056F000E066F000E076F87 :1046800066C100F167C101F168C102F169C103F1BE :104690001AEC31F003BFBDEF23F0119A119C010118 :1046A000000E046FA80E056F550E066F020E076F01 :1046B00066C100F167C101F168C102F169C103F18E :1046C00066C18AF167C18BF168C18CF169C18DF156 :1046D0001AEC31F003BF0BD00101000E8A6FA80E57 :1046E0008B6F550E8C6F020E8D6F118A119C0E0E02 :1046F00064EC0BF0E8CF18F10F0E64EC0BF0E8CF90 :1047000019F1100E64EC0BF0E8CF1AF1110E64EC05 :104710000BF0E8CF1BF163EC30F08AC104F18BC1E0 :1047200005F18CC106F18DC107F11AEC31F0078259 :1047300027EC30F063EC30F0079227EC30F08AC1C0 :1047400000F18BC101F18CC102F18DC103F107921F :1047500027EC30F0CC0E046FE00E056F870E066F6D :10476000050E076F1AEC31F000C118F101C119F103 :1047700002C11AF103C11BF140D013AAC2EF23F00A :10478000138E139A119C119A0101800E006F1A0E5C :10479000016F060E026F000E036F4FC104F150C18E :1047A00005F151C106F152C107F11AEC31F003AF26 :1047B00005D02FEC32F0118C119A12000E0E64EC21 :1047C0000BF0E8CF18F10F0E64EC0BF0E8CF19F105 :1047D000100E64EC0BF0E8CF1AF1110E64EC0BF044 :1047E000E8CF1BF14FC100F150C101F151C102F1FD :1047F00052C103F1078227EC30F018C100F119C152 :1048000001F11AC102F11BC103F112000784BAC100 :1048100066F1BBC167F1BCC168F1BDC169F14BC1B3 :104820004FF14CC150F14DC151F14EC152F157C140 :1048300059F158C15AF107940101666727EF24F036 :10484000676727EF24F0686727EF24F0696716D0C1 :1048500001014F6733EF24F0506733EF24F05167C5 :1048600033EF24F052670AD00101000E006F000EF2 :10487000016F000E026F000E036F120011B80AD014 :104880000101620E046F010E056F000E066F000E2F :10489000076F09D00101A70E046F020E056F000E0D :1048A000066F000E076F66C100F167C101F168C1B4 :1048B00002F169C103F11AEC31F003BFBFEF24F03C :1048C0000101000E046FA80E056F550E066F020E53 :1048D000076F66C100F167C101F168C102F169C1EA :1048E00003F166C18AF167C18BF168C18CF169C1BE :1048F0008DF11AEC31F003BF09D00101000E8A6F6F :10490000A80E8B6F550E8C6F020E8D6F63EC30F01E :1049100000C104F101C105F102C106F103C107F1B3 :10492000000E006FA00E016F980E026F7B0E036FDA :104930004BEC31F000C118F101C119F102C11AF1BB :1049400003C11BF1000E006FA00E016F980E026FE5 :104950007B0E036F8AC104F18BC105F18CC106F196 :104960008DC107F14BEC31F018C104F119C105F10B :104970001AC106F11BC107F11AEC31F01200010156 :10498000A80E006F610E016F000E026F000E036F24 :104990004FC104F150C105F151C106F152C107F1F7 :1049A0001AEC31F003AF0AD00101A80E006F610EBE :1049B000016F000E026F000E036F00D0C80E006F73 :1049C000AF0E016F000E026F000E036F4FC104F1B6 :1049D00050C105F151C106F152C107F12BEC31F084 :1049E00012000784BAC166F1BBC167F1BCC168F1AE :1049F000BDC169F14BC14FF14CC150F14DC151F1F5 :104A00004EC152F157C159F158C15AF107940101F1 :104A1000666712EF25F0676712EF25F0686712EFFF :104A200025F0696716D001014F671EEF25F050672A :104A30001EEF25F051671EEF25F052670AD00101E5 :104A4000000E006F000E016F000E026F000E036F6C :104A5000120011B80AD00101620E046F010E056F39 :104A6000000E066F000E076F09D00101A70E046F3C :104A7000020E056F000E066F000E076F66C100F193 :104A800067C101F168C102F169C103F11AEC31F0AB :104A900003BFD4EF25F00101000E046FA80E056FCF :104AA000550E066F020E076F66C100F167C101F176 :104AB00068C102F169C103F166C18AF167C18BF176 :104AC00068C18CF169C18DF11AEC31F003BF09D0D6 :104AD0000101000E8A6FA80E8B6F550E8C6F020EAF :104AE0008D6F010E006F000E016F000E026F000E41 :104AF000036F8AC104F18BC105F18CC106F18DC130 :104B000007F14BEC31F018C104F119C105F11AC1DC :104B100006F11BC107F1B8EC31F02AC182F404019F :104B2000300E8227A2EC0EF02BC182F40401300E6D :104B30008227A2EC0EF02CC182F40401300E8227F1 :104B4000A2EC0EF02DC182F40401300E8227A2ECFB :104B50000EF02EC182F40401300E8227A2EC0EF07A :104B60002FC182F40401300E8227A2EC0EF030C176 :104B700082F40401300E8227A2EC0EF031C182F4DF :104B80000401300E8227A2EC0EF032C182F404013F :104B9000300E8227A2EC0EF033C182F40401300EF5 :104BA0008227A2EC0EF012004FC100F150C101F1BA :104BB00051C102F152C103F10101B8EC31F07BECBB :104BC0002FF012000401730E826FA2EC0EF00401AC :104BD0002C0E826FA2EC0EF0078462C166F163C1F5 :104BE00067F164C168F165C169F14BC14FF14CC116 :104BF00050F14DC151F14EC152F157C159F158C157 :104C00005AF1079408EC26F0ACEC0EF032EF2BF0E2 :104C100066C100F167C101F168C102F169C103F128 :104C20000101B8EC31F07BEC2FF00401630E826FD0 :104C3000A2EC0EF004012C0E826FA2EC0EF04FC11C :104C400000F150C101F151C102F152C103F1010162 :104C5000B8EC31F07BEC2FF00401660E826FA2EC11 :104C60000EF004012C0E826FA2EC0EF02FEC32F04D :104C700059C100F15AC101F10101B8EC31F07BECEE :104C80002FF00401740E826FA2EC0EF0120010825D :104C90000401530E826FA2EC0EF004012C0E826F01 :104CA000A2EC0EF083C32AF184C32BF185C32CF14F :104CB00086C32DF187C32EF188C32FF189C330F14C :104CC0008AC331F18BC332F18CC333F101017DEC26 :104CD00032F0F4EC31F000C166F101C167F102C1BC :104CE00068F103C169F18EC32AF18FC32BF190C320 :104CF0002CF191C32DF192C32EF193C32FF194C3E4 :104D000030F195C331F196C332F197C333F101010C :104D10007DEC32F0F4EC31F000C14FF101C150F103 :104D200002C151F103C152F170EC32F099C32FF17D :104D30009AC330F19BC331F19CC332F19DC333F16F :104D400001017DEC32F0F4EC31F000C159F101C108 :104D50005AF108EC26F004012C0E826FA2EC0EF042 :104D6000C2EF26F0118E1CA002D01CAE108C1BBE10 :104D700002D01BA4108E03018251520A02E10F825D :104D800001D00F928251750A02E1108401D0109473 :104D90008251550A02E1108601D010968351310AE2 :104DA00003E11382138402D01392139403018351FD :104DB000660A01E056D00401660E826FA2EC0EF086 :104DC00004012C0E826FA2EC0EF006EC24F0B8EC7D :104DD00031F02AC182F40401300E8227A2EC0EF0D9 :104DE0002BC182F40401300E8227A2EC0EF02CC1FC :104DF00082F40401300E8227A2EC0EF02DC182F461 :104E00000401300E8227A2EC0EF02EC182F40401C0 :104E1000300E8227A2EC0EF02FC182F40401300E76 :104E20008227A2EC0EF030C182F40401300E8227FA :104E3000A2EC0EF031C182F40401300E8227A2EC04 :104E40000EF032C182F40401300E8227A2EC0EF083 :104E500033C182F40401300E8227A2EC0EF030EF51 :104E60002BF011A003D011A401D01084078410B23C :104E70009BEF27F010A47FEF27F0BAC166F1BBC10A :104E800067F1BCC168F1BDC169F1BEC16AF1BFC1C2 :104E90006BF1C0C16CF1C1C16DF1C2C16EF1C3C192 :104EA0006FF1C4C170F1C5C171F1C6C172F1C7C162 :104EB00073F1C8C174F1C9C175F1CAC176F1CBC132 :104EC00077F1CCC178F1CDC179F1CEC17AF1CFC102 :104ED0007BF1D0C17CF1D1C17DF1D2C17EF1D3C1D2 :104EE0007FF1D4C180F1D5C181F1D6C182F1D7C1A2 :104EF00083F1D8C184F1D9C185F187EF27F062C170 :104F000066F163C167F164C168F165C169F1BAC155 :104F100086F1BBC187F1BCC188F1BDC189F14BC12C :104F20004FF14CC150F14DC151F14EC152F157C139 :104F300059F158C15AF107940FA0BDEF27F00101B4 :104F40009667AAEF27F09767AAEF27F09867AAEF6E :104F500027F09967AEEF27F0BDEF27F009EC23F0BB :104F600096C104F197C105F198C106F199C107F105 :104F70001AEC31F003BFF6EF2AF009EC23F001013F :104F8000000E046F000E056F010E066F000E076F16 :104F90004BEC31F011A02AD011A228D0B8EC31F09E :104FA000296701D005D004012D0E826FA2EC0EF00E :104FB00030C182F40401300E8227A2EC0EF031C120 :104FC00082F40401300E8227A2EC0EF032C182F48A :104FD0000401300E8227A2EC0EF033C182F40401EA :104FE000300E8227A2EC0EF0ACEC0EF012A8C5D069 :104FF00012981DC01EF01E3A1E42070E1E1600011A :105000001E50000AD8B489EF28F000011E50010A92 :10501000D8B415EF28F000011E50020AD8B413EFDF :1050200028F0BBEF28F0BBEF28F02FEC32F02EC0B9 :1050300001F12FC000F1D89001330033D890013333 :1050400000330101630E046F000E056F000E066F42 :10505000000E076F4BEC31F0280E046F000E056F49 :10506000000E066F000E076F1AEC31F000C131F030 :105070002FEC32F02CC001F1019F019D2DC000F1F9 :105080000101A40E046F000E056F000E066F000EE6 :10509000076F4BEC31F000C130F000C104F101C1E9 :1050A00005F102C106F103C107F1640E006F000EA5 :1050B000016F000E026F000E036F1AEC31F0050E47 :1050C000046F000E056F000E066F000E076F4BECAD :1050D00031F000C104F101C105F102C106F103C1C3 :1050E00007F12FEC32F031C000F11AEC31F000C1C1 :1050F00032F032C0E8FF050F315C03E78A84BBEF72 :1051000028F032C0E8FF0A0F315C01E68A94BBEF59 :1051100028F000C124F101C125F102C126F103C12B :1051200027F12FEC32F035EC32F01D501F0BE8CF99 :1051300000F10101640E046F000E056F000E066F92 :10514000000E076F2BEC31F024C104F125C105F1ED :1051500026C106F127C107F11AEC31F003BF02D0D6 :105160008A9401D08A8424C100F125C101F126C1AD :1051700002F127C103F132EF2BF000C124F101C18C :1051800025F102C126F103C127F110AE4DD0109ECA :1051900000C108F101C109F102C10AF103C10BF11B :1051A000B8EC31F030C1E2F131C1E3F132C1E4F1E8 :1051B00033C1E5F108C100F109C101F10AC102F1F1 :1051C0000BC103F101016C0E046F070E056F000E99 :1051D000066F000E076F1AEC31F003BF04D0010117 :1051E000550EE66F1CD008C100F109C101F10AC1DA :1051F00002F10BC103F10101A40E046F060E056F4D :10520000000E066F000E076F1AEC31F003BF04D0DA :1052100001017F0EE66F03D00101FF0EE66F1F8EC6 :1052200011AEF6EF2AF0119E24C100F125C101F163 :1052300026C102F127C103F111A005D011A203D0AC :105240000FB0F6EF2AF010A42DEF29F00401750E2F :10525000826FA2EC0EF032EF29F00401720E826F21 :10526000A2EC0EF004012C0E826FA2EC0EF0B8EC52 :1052700031F0296741EF29F00401200E826F44EFDD :1052800029F004012D0E826FA2EC0EF030C182F4E1 :105290000401300E8227A2EC0EF031C182F4040129 :1052A000300E8227A2EC0EF004012E0E826FA2ECCB :1052B0000EF032C182F40401300E8227A2EC0EF00F :1052C00033C182F40401300E8227A2EC0EF00401F7 :1052D0006D0E826FA2EC0EF004012C0E826FA2EC18 :1052E0000EF04FC100F150C101F151C102F152C1A4 :1052F00003F10101B8EC31F07BEC2FF00401480E12 :10530000826FA2EC0EF004017A0E826FA2EC0EF016 :1053100004012C0E826FA2EC0EF066C100F167C191 :1053200001F168C102F169C103F10101B8EC31F08A :105330007BEC2FF00401630E826FA2EC0EF00401EF :105340002C0E826FA2EC0EF066C100F167C101F174 :1053500068C102F169C103F101010A0E046F000E78 :10536000056F000E066F000E076F2BEC31F0000E7C :10537000046F120E056F000E066F000E076F4BECE8 :1053800031F0B8EC31F02AC182F40401300E8227EA :10539000A2EC0EF02BC182F40401300E8227A2ECA5 :1053A0000EF02CC182F40401300E8227A2EC0EF024 :1053B0002DC182F40401300E8227A2EC0EF02EC122 :1053C00082F40401300E8227A2EC0EF02FC182F489 :1053D0000401300E8227A2EC0EF030C182F40401E9 :1053E000300E8227A2EC0EF004012E0E826FA2EC8A :1053F0000EF031C182F40401300E8227A2EC0EF0CF :1054000032C182F40401300E8227A2EC0EF033C1C7 :1054100082F40401300E8227A2EC0EF00401730E18 :10542000826FA2EC0EF004012C0E826FA2EC0EF043 :105430002FEC32F059C100F15AC101F15CEC2CF0B3 :1054400013A272EF2AF004012C0E826FA2EC0EF070 :1054500086C166F187C167F188C168F189C169F1C8 :1054600009EC23F00101000E046F000E056F010E20 :10547000066F000E076F4BEC31F0B8EC31F0296786 :1054800047EF2AF00401200E826F4AEF2AF0040150 :105490002D0E826FA2EC0EF030C182F40401300EAA :1054A0008227A2EC0EF031C182F40401300E822773 :1054B000A2EC0EF004012E0E826FA2EC0EF032C1AF :1054C00082F40401300E8227A2EC0EF033C182F484 :1054D0000401300E8227A2EC0EF004016D0E826FE3 :1054E000A2EC0EF003018351460A01E007D004014B :1054F0002C0E826FA2EC0EF0F1EC24F013A4A5EFB9 :105500002AF004012C0E826FA2EC0EF013AC93EF84 :105510002AF00401500E826FA2EC0EF0139C139837 :10552000139AA5EF2AF013AEA0EF2AF00401460E5D :10553000826FA2EC0EF0139E1398139AA5EF2AF037 :105540000401530E826FA2EC0EF038B0BCEF2AF0CB :1055500004012C0E826FA2EC0EF08BB0B7EF2AF094 :105560000401440E826FA2EC0EF0BCEF2AF004019D :10557000530E826FA2EC0EF00FB2C2EF2AF00FA012 :10558000F4EF2AF004012C0E826FA2EC0EF0200E34 :10559000F86EF76AF66A04010900F5CF82F4A2EC0E :1055A0000EF00900F5CF82F4A2EC0EF00900F5CF61 :1055B00082F4A2EC0EF00900F5CF82F4A2EC0EF01A :1055C0000900F5CF82F4A2EC0EF00900F5CF82F4C9 :1055D000A2EC0EF00900F5CF82F4A2EC0EF0090067 :1055E000F5CF82F4A2EC0EF0ACEC0EF00F90109E12 :1055F000129832EF2BF00401630E826FA2EC0EF0D2 :1056000004012C0E826FA2EC0EF038EC2BF004019A :105610002C0E826FA2EC0EF0ABEC2BF004012C0EE2 :10562000826FA2EC0EF027EC2CF004012C0E826F9E :10563000A2EC0EF00101F80E006FCD0E016F660EA8 :10564000026F030E036F4DEC2BF004012C0E826FE2 :10565000A2EC0EF03DEC2CF0ACEC0EF032EF2BF0A7 :10566000ACEC0EF00301C26B0790109241EF2EF0EC :10567000D8900E0E64EC0BF0E8CF00F10F0E64EC46 :105680000BF0E8CF01F1100E64EC0BF0E8CF02F163 :10569000110E64EC0BF0E8CF03F10101000E046F72 :1056A000000E056F010E066F000E076F4BEC31F018 :1056B000B8EC31F02AC182F40401300E8227A2EC4A :1056C0000EF02BC182F40401300E8227A2EC0EF002 :1056D0002CC182F40401300E8227A2EC0EF02DC101 :1056E00082F40401300E8227A2EC0EF02EC182F467 :1056F0000401300E8227A2EC0EF02FC182F40401C7 :10570000300E8227A2EC0EF030C182F40401300E7C :105710008227A2EC0EF031C182F40401300E822700 :10572000A2EC0EF004012E0E826FA2EC0EF032C13C :1057300082F40401300E8227A2EC0EF033C182F411 :105740000401300E8227A2EC0EF004016D0E826F70 :10575000A2EC0EF01200120E64EC0BF0E8CF00F198 :10576000130E64EC0BF0E8CF01F1140E64EC0BF0B7 :10577000E8CF02F1150E64EC0BF0E8CF03F1010164 :105780000A0E046F000E056F000E066F000E076F05 :105790002BEC31F0000E046F120E056F000E066F39 :1057A000000E076F4BEC31F0B8EC31F02AC182F4F7 :1057B0000401300E8227A2EC0EF02BC182F404010A :1057C000300E8227A2EC0EF02CC182F40401300EC0 :1057D0008227A2EC0EF02DC182F40401300E822744 :1057E000A2EC0EF02EC182F40401300E8227A2EC4E :1057F0000EF02FC182F40401300E8227A2EC0EF0CD :1058000030C182F40401300E8227A2EC0EF00401B4 :105810002E0E826FA2EC0EF031C182F40401300E24 :105820008227A2EC0EF032C182F40401300E8227EE :10583000A2EC0EF033C182F40401300E8227A2ECF8 :105840000EF00401730E826FA2EC0EF012000A0E2D :1058500064EC0BF0E8CF00F10B0E64EC0BF0E8CF3A :1058600001F10C0E64EC0BF0E8CF02F10D0E64ECCC :105870000BF0E8CF03F15CEF2CF0060E64EC0BF0BC :10588000E8CF00F1070E64EC0BF0E8CF01F1080E51 :1058900064EC0BF0E8CF02F1090E64EC0BF0E8CFFA :1058A00003F15CEF2CF001012FEC32F0078457C1BB :1058B00000F158C101F107940101E80E046F800E58 :1058C000056F000E066F000E076F2BEC31F0000E17 :1058D000046F040E056F000E066F000E076F4BEC91 :1058E00031F0880E046F130E056F000E066F000E68 :1058F000076F1AEC31F00A0E046F000E056F000EF0 :10590000066F000E076F4BEC31F0B8EC31F001017F :10591000296790EF2CF00401200E826F93EF2CF09A :1059200004012D0E826FA2EC0EF030C182F404014E :10593000300E8227A2EC0EF031C182F40401300E49 :105940008227A2EC0EF032C182F40401300E8227CD :10595000A2EC0EF004012E0E826FA2EC0EF033C109 :1059600082F40401300E8227A2EC0EF00401430EF3 :10597000826FA2EC0EF0120087C32AF188C32BF1CC :1059800089C32CF18AC32DF18BC32EF18CC32FF167 :105990008DC330F18EC331F190C332F191C333F135 :1059A0000101296B7DEC32F0F4EC31F00101000EC5 :1059B000046F000E056F010E066F000E076F2BECD3 :1059C00031F00E0E0C6E00C10BF04DEC0BF00F0E13 :1059D0000C6E01C10BF04DEC0BF0100E0C6E02C101 :1059E0000BF04DEC0BF0110E0C6E03C10BF04DECF7 :1059F0000BF004017A0E826FA2EC0EF004012C0E63 :105A0000826FA2EC0EF00401350E826FA2EC0EF054 :105A100004012C0E826FA2EC0EF038EC2BF0DFEFBD :105A200022F087C32AF188C32BF189C32CF18AC3E2 :105A30002DF18BC32EF18CC32FF18DC330F18EC3AA :105A400031F190C332F191C333F10101296B7DEC47 :105A500032F0F4EC31F0880E046F130E056F000E77 :105A6000066F000E076F1FEC31F0000E046F040E7E :105A7000056F000E066F000E076F2BEC31F0010171 :105A8000E80E046F800E056F000E066F000E076FA4 :105A90004BEC31F00A0E0C6E00C10BF04DEC0BF02C :105AA0000B0E0C6E01C10BF04DEC0BF00C0E0C6EDE :105AB00002C10BF04DEC0BF00D0E0C6E03C10BF0A0 :105AC0004DEC0BF004017A0E826FA2EC0EF0040193 :105AD0002C0E826FA2EC0EF00401360E826FA2EC47 :105AE0000EF004012C0E826FA2EC0EF027EC2CF0CD :105AF000DFEF22F087C32AF188C32BF189C32CF191 :105B00008AC32DF18BC32EF18CC32FF18DC330F1DD :105B10008FC331F190C332F191C333F101017DECB8 :105B200032F0F4EC31F0000E046F120E056F000E2F :105B3000066F000E076F2BEC31F001010A0E046FA7 :105B4000000E056F000E066F000E076F4BEC31F074 :105B5000120E0C6E00C10BF04DEC0BF0130E0C6E20 :105B600001C10BF04DEC0BF0140E0C6E02C10BF0EA :105B70004DEC0BF0150E0C6E03C10BF04DEC0BF061 :105B800004017A0E826FA2EC0EF004012C0E826FDB :105B9000A2EC0EF00401370E826FA2EC0EF00401AD :105BA0002C0E826FA2EC0EF0ABEC2BF0DFEF22F0AC :105BB00087C32AF188C32BF189C32CF18AC32DF145 :105BC0008BC32EF18CC32FF18DC330F18EC331F115 :105BD00090C332F191C333F10101296B7DEC32F0B6 :105BE000F4EC31F0880E046F130E056F000E066F93 :105BF000000E076F1FEC31F0000E046F040E056FEE :105C0000000E066F000E076F2BEC31F00101E80E5D :105C1000046F800E056F000E066F000E076F4BECD1 :105C200031F0060E0C6E00C10BF04DEC0BF0070EC0 :105C30000C6E01C10BF04DEC0BF0080E0C6E02C1A6 :105C40000BF04DEC0BF0090E0C6E03C10BF04DEC9C :105C50000BF004017A0E826FA2EC0EF004012C0E00 :105C6000826FA2EC0EF00401380E826FA2EC0EF0EF :105C700004012C0E826FA2EC0EF03DEC2CF0DFEF55 :105C800022F007A8B4EF2EF00101800E006F1A0E6B :105C9000016F060E026F000E036F4BC104F14CC181 :105CA00005F14DC106F14EC107F11AEC31F003BF09 :105CB000FAEF2EF075EC2FF04BC100F14CC101F161 :105CC0004DC102F14EC103F1078227EC30F018C13B :105CD00004F119C105F11AC106F11BC107F1F80E53 :105CE000006FCD0E016F660E026F030E036F1AEC8C :105CF00031F00E0E0C6E00C10BF04DEC0BF00F0EE0 :105D00000C6E01C10BF04DEC0BF0100E0C6E02C1CD :105D10000BF04DEC0BF0110E0C6E03C10BF04DECC3 :105D20000BF0078401012FEC32F057C100F158C18C :105D300001F107940A0E0C6E00C10BF04DEC0BF054 :105D40000B0E0C6E01C10BF04DEC0BF00C0E0C6E3B :105D500002C10BF04DEC0BF00D0E0C6E03C10BF0FD :105D60004DEC0BF0FAEF2EF007AAFAEF2EF00784B5 :105D700001012FEC32F057C100F158C101F1079435 :105D8000060E0C6E00C10BF04DEC0BF0070E0C6E06 :105D900001C10BF04DEC0BF0080E0C6E02C10BF0C4 :105DA0004DEC0BF0090E0C6E03C10BF04DEC0BF03B :105DB000078462C100F163C101F164C102F165C1F0 :105DC00003F10794120E0C6E00C10BF04DEC0BF0BA :105DD000130E0C6E01C10BF04DEC0BF0140E0C6E9B :105DE00002C10BF04DEC0BF0150E0C6E03C10BF065 :105DF0004DEC0BF00798079A0401805181197F0B35 :105E00000DE09EA8FED714EE00F081517F0BE12635 :105E1000E750812B0F01AD6EFCEF2EF005012F51E5 :105E2000000AD8B43DEF2FF081BA22EF2FF015B25F :105E30003DEF2FF005012F51010AD8B43BEF2FF0B1 :105E400034EF2FF005012F51000AD8B426EF3AF0B5 :105E500005012F51010AD8B43BEF2FF00001165075 :105E6000050AD8B426EF3AF081B83DEF2FF0AAEC3E :105E700033F050EC34F0BFEC39F0D0EF0DF018C136 :105E800000F119C101F11AC102F11BC103F1000EA9 :105E9000046F000E056F010E066F000E076F4BECCE :105EA00031F029A16AEF2FF02051D8B46AEF2FF01A :105EB00018C100F119C101F11AC102F11BC103F1AE :105EC000000E046F000E056F0A0E066F000E076FBE :105ED0004BEC31F012000101045100130551011384 :105EE000065102130751031312000101186B196BBD :105EF0001A6B1B6B12002AC182F40401300E822738 :105F0000A2EC0EF02BC182F40401300E8227A2EC29 :105F10000EF02CC182F40401300E8227A2EC0EF0A8 :105F20002DC182F40401300E8227A2EC0EF02EC1A6 :105F300082F40401300E8227A2EC0EF02FC182F40D :105F40000401300E8227A2EC0EF030C182F404016D :105F5000300E8227A2EC0EF031C182F40401300E23 :105F60008227A2EC0EF032C182F40401300E8227A7 :105F7000A2EC0EF033C182F40401300E8227A2ECB1 :105F80000EF012002FC182F40401300E8227A2EC21 :105F90000EF030C182F40401300E8227A2EC0EF024 :105FA00031C182F40401300E8227A2EC0EF032C11E :105FB00082F40401300E8227A2EC0EF033C182F489 :105FC0000401300E8227A2EC0EF01200060E216EA4 :105FD000060E226E060E236E212EECEF2FF0222EDF :105FE000ECEF2FF0232EECEF2FF08B84020E216EBE :105FF000020E226E020E236E212EFCEF2FF0222EB7 :10600000FCEF2FF0232EFCEF2FF08B941200FF0EED :10601000226E22C023F0030E216E8B84212E0DEF01 :1060200030F0030E216E232E0DEF30F08B9422C042 :1060300023F0030E216E212E1BEF30F0030E216E94 :10604000233E1BEF30F0222E09EF30F01200010149 :10605000005305E1015303E1025301E1002BEAEC97 :1060600030F02FEC32F03951006F3A51016F420E8F :10607000046F4B0E056F000E066F000E076F2BECC2 :1060800031F000C104F101C105F102C106F103C103 :1060900007F118C100F119C101F11AC102F11BC1C8 :1060A00003F107B258EF30F01FEC31F05AEF30F047 :1060B0001AEC31F000C118F101C119F102C11AF155 :1060C00003C11BF112002FEC32F059C100F15AC18B :1060D00001F1060E64EC0BF0E8CF04F1070E64EC5E :1060E0000BF0E8CF05F1080E64EC0BF0E8CF06F1F9 :1060F000090E64EC0BF0E8CF07F11AEC31F000C1A7 :1061000024F101C125F102C126F103C127F1290EB5 :10611000046F000E056F000E066F000E076F2BEC6C :1061200031F0EE0E046F430E056F000E066F000E89 :10613000076F1FEC31F024C104F125C105F126C120 :1061400006F127C107F12BEC31F000C11CF101C1B0 :106150001DF102C11EF103C11FF1120E64EC0BF020 :10616000E8CF04F1130E64EC0BF0E8CF05F1140E48 :1061700064EC0BF0E8CF06F1150E64EC0BF0E8CF01 :1061800007F10D0E006F000E016F000E026F000E82 :10619000036F2BEC31F0180E046F000E056F000E2C :1061A000066F000E076F4BEC31F01CC104F11DC1EE :1061B00005F11EC106F11FC107F11FEC31F06A0E97 :1061C000046F2A0E056F000E066F000E076F1AECA3 :1061D00031F01200BF0EFA6E200E3A6F396BD89074 :1061E0000037013702370337D8B0FBEF30F03A2FD2 :1061F000F0EF30F039073A070353D8B412000331F7 :10620000070B80093F6F03390F0B010F396F80ECCB :106210005FF0406F390580EC5FF0405D405F396BA7 :106220003F33D8B0392739333FA910EF31F040510F :1062300039271200010154EC32F0D8B012000101EC :1062400003510719346F17EC32F0D8900751031936 :1062500034AF800F12000101346B3BEC32F0D8A058 :1062600051EC32F0D8B0120026EC32F02FEC32F0C4 :106270001F0E366F67EC32F00B35D8B017EC32F0EA :10628000D8A00335D8B01200362F3AEF31F034B130 :106290003EEC32F012000101346B0451051106117D :1062A00007110008D8A03BEC32F0D8A051EC32F036 :1062B000D8B01200086B096B0A6B0B6B67EC32F0FD :1062C0001F0E366F67EC32F007510B5DD8A475EFE7 :1062D00031F006510A5DD8A475EF31F00551095D22 :1062E000D8A475EF31F00451085DD8A088EF31F0E3 :1062F0000451085F0551D8A0053D095F0651D8A09B :10630000063D0A5F0751D8A0073D0B5FD89000817A :10631000362F62EF31F034B13EEC32F0346B3BECAF :1063200032F0D8906BEC32F007510B5DD8A4A5EF9A :1063300031F006510A5DD8A4A5EF31F00551095D91 :10634000D8A4A5EF31F00451085DD8A0B4EF31F026 :10635000003FB4EF31F0013FB4EF31F0023FB4EF52 :1063600031F0032BD8B4120034B13EEC32F01200FD :106370000101346B3BEC32F0D8B0120070EC32F01B :10638000200E366F003701370237033711EE33F036 :106390000A0E376FE7360A0EE75CD8B0E76EE552B3 :1063A000372FCAEF31F0362FC2EF31F034B12981E7 :1063B000D890120070EC32F0200E366F00370137A3 :1063C0000237033711EE33F00A0E376FE7360A0E45 :1063D000E75CD8B0E76EE552372FE6EF31F0362FA5 :1063E000DEEF31F0D890120001010A0E346F200E5A :1063F000366F11EE29F03451376F0A0ED890E652FD :10640000D8B0E726E732372FFFEF31F003330233FE :1064100001330033362FF9EF31F0E750FF0FD8A0EA :106420000335D8B0120029B13EEC32F0120004510D :1064300000270551D8B0053D01270651D8B0063DCB :1064400002270751D8B0073D032712000051086FFB :106450000151096F02510A6F03510B6F12000101C4 :10646000006B016B026B036B12000101046B056B87 :10647000066B076B12000335D8A012000351800B86 :10648000001F011F021F031F003F4EEF32F0013FAC :106490004EEF32F0023F4EEF32F0032B342B032548 :1064A00012000735D8A012000751800B041F051FEA :1064B000061F071F043F64EF32F0053F64EF32F020 :1064C000063F64EF32F0072B342B0725120000370C :1064D000013702370337083709370A370B371200FD :1064E0000101296B2A6B2B6B2C6B2D6B2E6B2F6B89 :1064F000306B316B326B336B120001012A510F0B81 :106500002A6F2B510F0B2B6F2C510F0B2C6F2D5112 :106510000F0B2D6F2E510F0B2E6F2F510F0B2F6F57 :1065200030510F0B306F31510F0B316F32510F0B58 :10653000326F33510F0B336F120000C124F101C1D0 :1065400025F102C126F103C127F104C100F105C103 :1065500001F106C102F107C103F124C104F125C113 :1065600005F126C106F127C107F1120000012550EF :10657000FE0AD8B4C4EF32F000012550FD0AD8B4A9 :10658000C4EF32F0898401D08994000EC76E220EC8 :10659000C66E050EE82EFED7120000012550FE0A39 :1065A000D8B4DBEF32F000012550FD0AD8B4DBEFA0 :1065B00032F0899401D08984050EE82EFED71200AE :1065C000B6EC32F000012550FD0AD8B4F3EF32F0FA :1065D0009E96C69E000EC96EFF0E9EB602D0E82E95 :1065E000FCD7FCEF32F09E96C69E010EC96EFF0EE0 :1065F0009EB602D0E82EFCD79E96C69E000EC96EAF :10660000FF0E9EB602D0E82EFCD7C9CFAFF59E96FE :10661000C69E000EC96EFF0E9EB602D0E82EFCD7B5 :10662000C9CFB0F59E96C69E000EC96EFF0E9EB6EF :1066300002D0E82EFCD7C9CFB1F59E96C69E000EBB :10664000C96EFF0E9EB602D0E82EFCD7C9CFB2F5B8 :106650009E96C69E000EC96EFF0E9EB602D0E82E14 :10666000FCD7C9CFB3F59E96C69E000EC96EFF0E2D :106670009EB602D0E82EFCD7C9CFB4F59E96C69E32 :10668000000EC96EFF0E9EB602D0E82EFCD7C9CF11 :10669000B5F5CDEC32F01200B6EC32F00001255029 :1066A000FD0AD8B45FEF33F09E96C69E800EC96E89 :1066B000FF0E9EB602D0E82EFCD768EF33F09E9610 :1066C000C69E810EC96EFF0E9EB602D0E82EFCD784 :1066D0009E96C69EAFC5C9FFFF0E9EB602D0E82E9D :1066E000FCD79E96C69EB0C5C9FFFF0E9EB602D0CF :1066F000E82EFCD79E96C69EB1C5C9FFFF0E9EB67A :1067000002D0E82EFCD79E96C69EB2C5C9FFFF0EEA :106710009EB602D0E82EFCD79E96C69EB3C5C9FF92 :10672000FF0E9EB602D0E82EFCD79E96C69EB4C53C :10673000C9FFFF0E9EB602D0E82EFCD79E96C69EDD :10674000B5C5C9FFFF0E9EB602D0E82EFCD7CDEC32 :1067500032F01200B6EC32F000012550FD0AD8B438 :10676000BDEF33F09E96C69E070EC96EFF0E9EB615 :1067700002D0E82EFCD7C6EF33F09E96C69E090ED7 :10678000C96EFF0E9EB602D0E82EFCD79E96C69E1E :10679000000EC96EFF0E9EB602D0E82EFCD7C9CF00 :1067A000AFF59E96C69E000EC96EFF0E9EB602D035 :1067B000E82EFCD7C9CFB0F59E96C69E000EC96ED6 :1067C000FF0E9EB602D0E82EFCD7C9CFB1F59E963B :1067D000C69E000EC96EFF0E9EB602D0E82EFCD7F4 :1067E000C9CFB2F5CDEC32F0B6EC32F09E96C69E33 :1067F00026C0C9FFFF0E9EB602D0E82EFCD79E969B :10680000C69E000EC96EFF0E9EB602D0E82EFCD7C3 :10681000C9CFB6F5CDEC32F01200B6EC32F0000183 :106820002550FD0AD8B420EF34F09E96C69E870E00 :10683000C96EFF0E9EB602D0E82EFCD729EF34F0C9 :106840009E96C69E890EC96EFF0E9EB602D0E82E99 :10685000FCD79E96C69E000EC96EFF0E9EB602D055 :10686000E82EFCD79E96C69E800EC96EFF0E9EB681 :1068700002D0E82EFCD79E96C69E800EC96EFF0EF3 :106880009EB602D0E82EFCD79E96C69E800EC96E9C :10689000FF0E9EB602D0E82EFCD7CDEC32F01200EF :1068A00000012550FE0AD8B45FEF34F000012550F6 :1068B000FD0AD8B476EF34F0AAEC33F01200B6EC4F :1068C00032F09E96C69E8F0EC96EFF0E9EB602D007 :1068D000E82EFCD79E96C69E000EC96EFF0E9EB691 :1068E00002D0E82EFCD7CDEC32F01200B6EC32F03C :1068F0009E96C69E8E0EC96EFF0E9EB602D0E82EE4 :10690000FCD79E96C69E000EC96EFF0E9EB602D0A4 :10691000E82EFCD7CDEC32F0120000012550FE0A23 :10692000D8B4C6EF34F000012550FD0AD8B4F3EF17 :1069300034F0B6EC32F09E96C69E27C0C9FFFF0E1B :106940009EB602D0E82EFCD79E96C69E010EC96E5A :10695000FF0E9EB602D0E82EFCD7CDEC32F0B6EC9E :1069600032F09E96C69E910EC96EFF0E9EB602D064 :10697000E82EFCD79E96C69EA50EC96EFF0E9EB64B :1069800002D0E82EFCD7CDEC32F01200B6EC32F09B :106990009E96C69E27C0C9FFFF0E9EB602D0E82E67 :1069A000FCD79E96C69E450EC96EFF0E9EB602D0BF :1069B000E82EFCD7CDEC32F0B6EC32F09E96C69EB7 :1069C0008F0EC96EFF0E9EB602D0E82EFCD79E96A3 :1069D000C69E000EC96EFF0E9EB602D0E82EFCD7F2 :1069E000CDEC32F01200B6EC32F09E96C69E27C077 :1069F000C9FFFF0E9EB602D0E82EFCD79E96C69E1B :106A00003D0EC96EFF0E9EB602D0E82EFCD7CDEC2F :106A100032F0B6EC32F09E96C69E8F0EC96EFF0E17 :106A20009EB602D0E82EFCD79E96C69EA90EC96ED1 :106A3000FF0E9EB602D0E82EFCD7CDEC32F012004D :106A4000B6EC32F09E96C69E27C0C9FFFF0E9EB6DA :106A500002D0E82EFCD79E96C69E810EC96EFF0E10 :106A60009EB602D0E82EFCD7CDEC32F01200B6EC88 :106A700032F09E96C69E27C0C9FFFF0E9EB602D07A :106A8000E82EFCD79E96C69E010EC96EFF0E9EB6DE :106A900002D0E82EFCD7CDEC32F01200B6EC32F08A :106AA0009E96C69E910EC96EFF0E9EB602D0E82E2F :106AB000FCD79E96C69EA50EC96EFF0E9EB602D04E :106AC000E82EFCD7CDEC32F01200B6EC32F09E96F8 :106AD000C69E910EC96EFF0E9EB602D0E82EFCD760 :106AE0009E96C69E000EC96EFF0E9EB602D0E82E80 :106AF000FCD7CDEC32F012000501256B266B276B1D :106B0000286B899A400EC76E200EC66E9E96C69E52 :106B1000030EC96EFF0E9EB602D0E82EFCD79E96DD :106B2000C69E27C5C9FFFF0E9EB602D0E82EFCD731 :106B30009E96C69E26C5C9FFFF0E9EB602D0E82EC1 :106B4000FCD79E96C69E25C5C9FFFF0E9EB602D0F5 :106B5000E82EFCD79E96C69EC952FF0E9EB602D066 :106B6000E82EFCD7898A0F01C950FF0A01E1120003 :106B700005012E51130A05E005012E51170A0CE0FC :106B800012000501E00E256FFF0E266F0F0E276F16 :106B9000000E286FD5EF35F00501E00E256FFF0ED2 :106BA000266FFF0E276F000E286F899A400EC76E62 :106BB000200EC66E9E96C69E030EC96EFF0E9EB632 :106BC00002D0E82EFCD79E96C69E27C5C9FFFF0EB1 :106BD0009EB602D0E82EFCD79E96C69E26C5C9FF5B :106BE000FF0E9EB602D0E82EFCD79E96C69E25C507 :106BF000C9FFFF0E9EB602D0E82EFCD79E96C69E19 :106C0000C952FF0E9EB602D0E82EFCD7898A0F012A :106C1000C950FF0A1DE005012E51130A05E00501C8 :106C20002E51170A0BE012000501000E256F000E11 :106C3000266F100E276F000E286F12000501000E40 :106C4000256F000E266F000E276F010E286F1200B1 :106C50000501256B266B276B286B05012E51130A46 :106C600005E005012E51170A0CE012000501000E87 :106C7000216F000E226F080E236F000E246F4AEF63 :106C800036F00501000E216F000E226F800E236F7B :106C9000000E246F21C500F122C501F123C502F1C8 :106CA00024C503F125C504F126C505F127C506F164 :106CB00028C507F16BEC2FF000C125F501C126F5C1 :106CC00002C127F503C128F5899A400EC76E200E30 :106CD000C66E9E96C69E030EC96EFF0E9EB602D06D :106CE000E82EFCD79E96C69E27C5C9FFFF0E9EB60E :106CF00002D0E82EFCD79E96C69E26C5C9FFFF0E81 :106D00009EB602D0E82EFCD79E96C69E25C5C9FF2A :106D1000FF0E9EB602D0E82EFCD79E96C69EC952A4 :106D2000FF0E9EB602D0E82EFCD7898AC950FF0A12 :106D300008E104C125F505C126F506C127F507C1FF :106D400028F5D890050124332333223321332151F0 :106D5000E00B216F05012167B5EF36F02267B5EF33 :106D600036F02367B5EF36F024674AEF36F00501B9 :106D7000200E2527E86A2623E86A2723E86A2823C5 :106D80001200E86A05012E51130A06E005012E5192 :106D9000170A0BE0020E120005012851000A03E158 :106DA0002751F00B07E0010E120005012851000ADF :106DB00001E0010E120029C500F12AC501F12BC521 :106DC00002F12CC503F125C504F126C505F127C53F :106DD00006F128C507F11AEC31F003BF1200C1EC2F :106DE00036F0D8A453EF37F0899A400EC76E200EC4 :106DF000C66E9E96C69E060EC96EFF0E9EB602D049 :106E0000E82EFCD7898A899A9E96C69E020EC96E84 :106E1000FF0E9EB602D0E82EFCD79E96C69E27C5D2 :106E2000C9FFFF0E9EB602D0E82EFCD79E96C69EE6 :106E300026C5C9FFFF0E9EB602D0E82EFCD79E964F :106E4000C69E25C5C9FFFF0E9EB602D0E82EFCD710 :106E50009E96C69E000EC96EFF0E9EB602D0E82E0C :106E6000FCD7898A899A9E96C69E050EC96EFF0E2A :106E70009EB602D0E82EFCD79E96C69EC952FF0E43 :106E80009EB602D0E82EFCD7C9B03CEF37F0898A15 :106E90000501200E2527E86A2623E86A2723E86AE9 :106EA0002823DBEF36F01200899A400EC76E200EC1 :106EB000C66E9E96C69E060EC96EFF0E9EB602D088 :106EC000E82EFCD7898A899A9E96C69EC70EC96EFF :106ED000FF0E9EB602D0E82EFCD7898A0501256BED :106EE000266B276B286B1200899A400EC76E200E06 :106EF000C66E9E96C69E050EC96EFF0E9EB602D049 :106F0000E82EFCD79E96C69EC952FF0E9EB602D0B2 :106F1000E82EFCD7C9CF37F5898A1200899A400E2E :106F2000C76E200EC66E9E96C69EB90EC96EFF0E27 :106F30009EB602D0E82EFCD7898A1200899A400EAC :106F4000C76E200EC66E9E96C69EAB0EC96EFF0E15 :106F50009EB602D0E82EFCD7898AFF0EE82EFED717 :106F60001200C1EC36F0D8A41200899A400EC76E08 :106F7000200EC66E9E96C69E030EC96EFF0E9EB66E :106F800002D0E82EFCD79E96C69E27C5C9FFFF0EED :106F90009EB602D0E82EFCD79E96C69E26C5C9FF97 :106FA000FF0E9EB602D0E82EFCD79E96C69E25C543 :106FB000C9FFFF0E9EB602D0E82EFCD79E96C69E55 :106FC000C952FF0E9EB602D0E82EFCD7898A0F0167 :106FD000C950FF0AD8A430EF39F00501FE0E376F13 :106FE0000501FF0E536FFF0E546FFF0E556FFF0E1E :106FF000566F15A637991586E0EC32F0AFC538F517 :10700000B0C539F5B1C53AF5B2C53BF5B3C53CF5E8 :10701000B4C53DF5B5C53EF50784BAC166F1BBC13F :1070200067F1BCC168F1BDC169F14BC14FF14CC101 :1070300050F14DC151F14EC152F157C159F158C1F2 :107040005AF100011650010AD8B435EF38F00001AA :107050001650020AD8B45AEF38F000011650040A4C :10706000D8B47FEF38F030EF39F00501476B486B4B :10707000496B4A6B05014B6B4C6B4D6B4E6B0501BD :107080004F6B506B516B526B8BA0379B09EC23F00D :1070900000C1DAF101C1DBF102C1DCF103C1DDF1B4 :1070A00000C13FF501C140F502C141F503C142F500 :1070B0009EEF38F00501476B486B496B4A6B050141 :1070C0004B6B4C6B4D6B4E6B05014F6B506B516BAB :1070D000526B09EC23F000C1DAF101C1DBF102C10E :1070E000DCF103C1DDF106EC24F000C147F501C17C :1070F00048F502C149F503C14AF530EF39F0379B35 :10710000DAC13FF5DBC140F5DCC141F5DDC142F537 :1071100009EC23F000C14BF501C14CF502C14DF55E :1071200003C14EF506EC24F000C14FF501C150F546 :1071300002C151F503C152F59EEF38F005016167B8 :10714000A9EF38F06267A9EF38F06367A9EF38F06C :107150006467ADEF38F0C2EF38F0DAC100F1DBC19F :1071600001F1DCC102F1DDC103F161C504F162C5C9 :1071700005F163C506F164C507F11AEC31F003BFF0 :1071800030EF39F059C143F55AC144F5B9C545F559 :107190000501210E326F899A400EC76E200EC66E11 :1071A0009E96C69E060EC96EFF0E9EB602D0E82EB3 :1071B000FCD7898A899A9E96C69E020EC96EFF0EDA :1071C0009EB602D0E82EFCD79E96C69E27C5C9FF64 :1071D000FF0E9EB602D0E82EFCD79E96C69E26C510 :1071E000C9FFFF0E9EB602D0E82EFCD79E96C69E23 :1071F00025C5C9FFFF0E9EB602D0E82EFCD725EEAE :1072000037F0322F02D010EF39F09E96C69EDECFB7 :10721000C9FFFF0E9EB602D0E82EFCD701EF39F071 :10722000898A899A9E96C69E050EC96EFF0E9EB6E5 :1072300002D0E82EFCD79E96C69EC952FF0E9EB67F :1072400002D0E82EFCD7C9B01BEF39F0898A0501BE :10725000200E2527E86A2623E86A2723E86A2823E0 :1072600015900794120021C500F122C501F123C534 :1072700002F124C503F1899A400EC76E200EC66E36 :107280009E96C69E0B0EC96EFF0E9EB602D0E82ECD :10729000FCD79E96C69E02C1C9FFFF0E9EB602D0C5 :1072A000E82EFCD79E96C69E01C1C9FFFF0E9EB672 :1072B00002D0E82EFCD79E96C69E00C1C9FFFF0EE5 :1072C0009EB602D0E82EFCD79E96C69EC952FF0EEF :1072D0009EB602D0E82EFCD725EE37F00501200E31 :1072E000326F9E96C69EC952FF0E9EB602D0E82E01 :1072F000FCD7C9CFDEFF322F71EF39F0898A120037 :10730000899A400EC76E200EC66E9E96C69E900E3F :10731000C96EFF0E9EB602D0E82EFCD79E96C69E82 :10732000000EC96EFF0E9EB602D0E82EFCD79E96C8 :10733000C69E000EC96EFF0E9EB602D0E82EFCD788 :107340009E96C69E000EC96EFF0E9EB602D0E82E17 :10735000FCD79E96C69EC952FF0E9EB602D0E82E5E :10736000FCD7C9CF2DF59E96C69EC952FF0E9EB67C :1073700002D0E82EFCD7C9CF2EF5898A1200E0ECA6 :1073800032F005012F51010A5FE005012F51020A79 :1073900016E005012F51030A19E005012F51040AD7 :1073A00024E005012F51050A2BE005012F51060AA3 :1073B00039E005012F51070A3FE024EF3AF0602F32 :1073C00022EF3AF05FC560F524EF3AF0B0C500F166 :1073D00001010F0E001701010051000A35E0010103 :1073E0000051050A31E022EF3AF0B0C500F1010189 :1073F0000F0E001701010051000A26E022EF3AF0BB :107400000501B051000A20E00501B051150A1CE049 :107410000501B051300A18E00501B051450A14E0E9 :1074200022EF3AF00501B051000A0EE00501B0511B :10743000300A0AE022EF3AF00501B051000A04E0F8 :1074400022EF3AF015901200158012008B90E6ECB6 :107450002FF0B9C5E8FFD70802E3E6EC2FF0B9C575 :10746000E8FFC80802E3E6EC2FF0B9C5E8FFB90869 :1074700002E3E6EC2FF0B9C5E8FFAA0802E3E6EC68 :107480002FF0B9C5E8FF9B0802E3E6EC2FF08EEC85 :1074900037F0F29CF29E8B94C69AC2909482948CA0 :1074A000720ED36ED3A4FED789968A909390F29AE7 :1074B000F2949D909E909D929E92F298F29250EC42 :1074C00034F0FF0EE8CF00F0E82EFED7002EFCD7F8 :1074D000F290F286815081A870EF3AF0F29E03009C :1074E000700ED36EF296F2901584038007EC30F0A4 :0474F0009AEF0BF014 :10BF0000E844F926000C160C2B0C3F0C520C640C68 :10BF1000760C860C960CA50CB30CC10CCF0CDC0C6B :06BF2000E80CF40C000C1B :0200000400F00A :0100C800FD3A :00000001FF ./firmware/SQM-LU-DL-4-6-76.hex0000644000175000017500000022373213702033773015506 0ustar anthonyanthony:020000040000FA :0408000098EF0BF072 :1008100003B275EF05F0F2B493EF05F09EB09BEFD5 :1008200005F09EB2A3EF05F0F2A81AEF04F0F2B2C1 :1008300023EF04F0F2B01FEF04F047EF0BF0F29655 :10084000F29047EF0BF0CD90F2929EA02DEF04F0C6 :100850000101533F2DEF04F0542BB2C1B6F1B3C1E7 :10086000B7F1B4C1B8F1B5C1B9F1AEC1B2F1AFC120 :10087000B3F1B0C1B4F1B1C1B5F1AAC1AEF1ABC130 :10088000AFF1ACC1B0F1ADC1B1F1A6C1AAF1A7C140 :10089000ABF1A8C1ACF1A9C1ADF1A2C1A6F1A3C150 :1008A000A7F1A4C1A8F1A5C1A9F19EC1A2F19FC160 :1008B000A3F1A0C1A4F1A1C1A5F19AC19EF19BC170 :1008C0009FF19CC1A0F19DC1A1F1CECF9AF1CFCFF4 :1008D0009BF153C19CF154C19DF1CF6ACE6A0101D5 :1008E000536B546B9E90CD800FBC0F8E0FBA7CEF74 :1008F00004F00F8A47EF0BF013880F8C0FBEB9EF8F :1009000004F09AC19EF19BC19FF19CC1A0F19DC1D1 :10091000A1F19EC1A2F19FC1A3F1A0C1A4F1A1C107 :10092000A5F1A2C1A6F1A3C1A7F1A4C1A8F1A5C1D7 :10093000A9F1A6C1AAF1A7C1ABF1A8C1ACF1A9C1A7 :10094000ADF1AAC1AEF1ABC1AFF1ACC1B0F1ADC177 :10095000B1F1AEC1B2F1AFC1B3F1B0C1B4F1B1C147 :10096000B5F1B2C1B6F1B3C1B7F1B4C1B8F1B5C117 :10097000B9F101015E6B5F6B606B616B9A515E2731 :100980009B515F239C5160239D5161239E515E27A3 :100990009F515F23A0516023A1516123A2515E2783 :1009A000A3515F23A4516023A5516123A6515E2763 :1009B000A7515F23A8516023A9516123AA515E2743 :1009C000AB515F23AC516023AD516123AE515E2723 :1009D000AF515F23B0516023B1516123B2515E2703 :1009E000B3515F23B4516023B5516123B6515E27E3 :1009F000B7515F23B8516023B9516123D8900101E9 :100A0000613360335F335E33D8900101613360330B :100A10005F335E33D8900101613360335F335E33FF :100A200000C10CF101C10DF102C10EF103C10FF1C2 :100A300004C110F105C111F106C112F107C113F192 :100A400008C114F109C115F10AC116F10BC117F162 :100A500034C135F111B838EF05F00101620E046FB1 :100A6000010E056F000E066F000E076F41EF05F0D7 :100A70000101A70E046F020E056F000E066F000E37 :100A8000076F5EC100F15FC101F160C102F161C198 :100A900003F182EC30F003BF04D01CBE02D01CA0D6 :100AA000108C11A059EF05F010BA59EF05F00F8026 :100AB000108A0CC100F10DC101F10EC102F10FC18C :100AC00003F110C104F111C105F112C106F113C106 :100AD00007F114C108F115C109F116C10AF117C1D6 :100AE0000BF135C134F147EF0BF00392ABB2AB9889 :100AF000AB88030103EE00F080517F0BE92604C0B0 :100B0000EFFF802B8151805D700BD8A48B82000099 :100B10008051815D700BD8A48B9281518019D8B41B :100B2000079047EF0BF0F2940101453F47EF0BF0C0 :100B3000462B47EF0BF09E900101533F47EF0BF020 :100B4000542B47EF0BF09E9211B843EF08F00400CE :100B500066A1ABEF05F08BB4B5EF05F010ACB5EFC7 :100B600005F08B84109CB6EF05F08B94077C07ACE6 :100B7000D1EF05F0C274C2B4CBEF05F0C3CFB7F527 :100B8000C4CFB8F50501D890B833B733D890B8338F :100B9000B733D2EF05F0C3CF55F1C4CF56F1D2EF42 :100BA00005F0C28207B444EF06F047C14BF148C1DB :100BB0004CF149C14DF14AC14EF15EC162F15FC1D4 :100BC00063F160C164F161C165F113A8EAEF05F05A :100BD000138C13989AC1BAF19BC1BBF19CC1BCF1B3 :100BE0009DC1BDF19EC1BEF19FC1BFF1A0C1C0F1C9 :100BF000A1C1C1F1A2C1C2F1A3C1C3F1A4C1C4F199 :100C0000A5C1C5F1A6C1C6F1A7C1C7F1A8C1C8F168 :100C1000A9C1C9F1AAC1CAF1ABC1CBF1ACC1CCF138 :100C2000ADC1CDF1AEC1CEF1AFC1CFF1B0C1D0F108 :100C3000B1C1D1F1B2C1D2F1B3C1D3F1B4C1D4F1D8 :100C4000B5C1D5F1B6C1D6F1B7C1D7F1B8C1D8F1A8 :100C5000B9C1D9F1B7C5B9F5B8C5BAF5B9C5BBF5CC :100C6000BAC5BCF5010155515B2756515C23E86AB2 :100C70005D230E2E44EF06F05CC157F15DC158F1C3 :100C80005B6B5C6B5D6B078E0201002F47EF0BF017 :100C90003C0E006F1D50E00BE00AE86612881BBE98 :100CA00002D01BB4108E00C10CF101C10DF102C1C4 :100CB0000EF103C10FF104C110F105C111F106C11C :100CC00012F107C113F108C114F109C115F10AC1EC :100CD00016F10BC117F134C135F181AAACEF06F062 :100CE00015A4F7EF06F005012F51000AD8B43AEF2A :100CF00007F005012F51010AD8B4B6EF06F005013F :100D00002F51020AD8B4F7EF06F005012F51030A5C :100D1000D8B4F7EF06F005012F51040AD8B4F7EF65 :100D200006F005012F51050AD8B4F7EF06F00501CA :100D30002F51060AD8B4F7EF06F005012F51070A24 :100D4000D8B4F7EF06F005012F51320AD8B4B4EF4A :100D500006F02F6B3AEF07F000011650030AD8B4E3 :100D6000F7EF06F03AEF07F03AEF07F005015767A3 :100D7000C1EF06F05867C1EF06F05967C1EF06F002 :100D80005A67C5EF06F03AEF07F05BC500F15CC5A6 :100D900001F15DC502F15EC503F10101010E046FB1 :100DA000000E056F000E066F000E076F82EC30F02C :100DB00000C15BF501C15CF502C15DF503C15EF5E3 :100DC00001010067EBEF06F00167EBEF06F0026749 :100DD000EBEF06F003673AEF07F057C55BF558C530 :100DE0005CF559C55DF55AC55EF524EF07F00FBEF9 :100DF0000CEF07F010A011EF07F00101476708EFB3 :100E000007F0486708EF07F0496708EF07F04A67FF :100E10000CEF07F011EF07F007AE11EF07F024EF2A :100E200007F00501312F3AEF07F03C0E316F302FFC :100E30003AEF07F00101000E626FE00E636FA50E3E :100E4000646F010E656F138800011650000AD8B454 :100E500032EF07F000011650030AD8B437EF07F05D :100E60003AEF07F00001010E166E3AEF07F00001AD :100E7000040E166E0501666B37B740EF07F066810A :100E80000CC100F10DC101F10EC102F10FC103F15E :100E900010C104F111C105F112C106F113C107F12E :100EA00014C108F115C109F116C10AF117C10BF1FE :100EB00035C134F100C10CF101C10DF102C10EF1D7 :100EC00003C10FF104C110F105C111F106C112F106 :100ED00007C113F108C114F109C115F10AC116F1D6 :100EE0000BC117F134C135F101018E677FEF07F0B7 :100EF0008F677FEF07F090677FEF07F0916783EFD1 :100F000007F0B4EF07F092C100F193C101F194C171 :100F100002F195C103F10101010E046F000E056F8E :100F2000000E066F000E076F82EC30F000C192F1E8 :100F300001C193F102C194F103C195F10101006770 :100F4000A9EF07F00167A9EF07F00267A9EF07F023 :100F50000367B4EF07F08EC192F18FC193F190C196 :100F600094F191C195F10F80D57ED5BE6ED0D6CFCC :100F700047F1D7CF48F145C149F1E86AE8CF4AF1D6 :100F8000138A1CBE02D01CA0108C109047C100F127 :100F900048C101F149C102F14AC103F101010A0E40 :100FA000046F000E056F000E066F000E076F82ECD7 :100FB00030F003AF1080010154A7EBEF07F00F9A58 :100FC0000F9C0F9E0101000E5E6F600E5F6F3D0E65 :100FD000606F080E616F010147BFFBEF07F04867C4 :100FE000FBEF07F04967FBEF07F04A67FBEF07F0FD :100FF000F28820EF08F0F2985E6B5F6B606B616BBC :101000009A6B9B6B9C6B9D6B9E6B9F6BA06BA16B9C :10101000A26BA36BA46BA56BA66BA76BA86BA96B4C :10102000AA6BAB6BAC6BAD6BAE6BAF6BB06BB16BFC :10103000B26BB36BB46BB56BB66BB76BB86BB96BAC :10104000D76AD66A0101456B466B0CC100F10DC130 :1010500001F10EC102F10FC103F110C104F111C180 :1010600005F112C106F113C107F114C108F115C150 :1010700009F116C10AF117C10BF135C134F147EF7F :101080000BF047EF0BF00201002FABEF0AF0D59EFB :10109000D6CF47F1D7CF48F145C149F1E86AE8CF4B :1010A0004AF1138AD76AD66A0101456B466BD58E21 :1010B0001D50E00BE00AE86612881BBE02D01BB48C :1010C000108E1AAE1F8C00C10CF101C10DF102C1CE :1010D0000EF103C10FF104C110F105C111F106C1F8 :1010E00012F107C113F108C114F109C115F10AC1C8 :1010F00016F10BC117F134C135F10FA0109A11B8D8 :101100008DEF08F00101620E046F010E056F000EF5 :10111000066F000E076F96EF08F00101A70E046F2F :10112000020E056F000E066F000E076F47C100F13B :1011300048C101F149C102F14AC103F182EC30F02A :1011400003BFA9EF08F01CBE02D01CA0108C11B088 :101150000F800CC100F10DC101F10EC102F10FC1F0 :1011600003F110C104F111C105F112C106F113C15F :1011700007F114C108F115C109F116C10AF117C12F :101180000BF135C134F102013C0E006F00C10CF1CE :1011900001C10DF102C10EF103C10FF104C110F143 :1011A00005C111F106C112F107C113F108C114F113 :1011B00009C115F10AC116F10BC117F134C135F19E :1011C00081BAE6EF08F015B225EF09F015A025EF7A :1011D00009F015A470EF09F005012F51000AD8B4E9 :1011E000B3EF09F005012F51010AD8B42FEF09F030 :1011F00005012F51020AD8B470EF09F005012F51F3 :10120000030AD8B470EF09F005012F51040AD8B4CD :1012100070EF09F005012F51050AD8B470EF09F0FD :1012200005012F51060AD8B470EF09F005012F51BE :10123000070AD8B470EF09F005012F51320AD8B46B :101240002DEF09F02F6BB3EF09F000011650030AE0 :10125000D8B470EF09F0B3EF09F0B3EF09F005016E :1012600057673AEF09F058673AEF09F059673AEFD4 :1012700009F05A673EEF09F0B3EF09F05BC500F1E2 :101280005CC501F15DC502F15EC503F10101010E0E :10129000046F000E056F000E066F000E076F82ECE4 :1012A00030F000C15BF501C15CF502C15DF503C121 :1012B0005EF50101006764EF09F0016764EF09F072 :1012C000026764EF09F00367B3EF09F057C55BF5F8 :1012D00058C55CF559C55DF55AC55EF59DEF09F039 :1012E0000FBE85EF09F010A08AEF09F001014767F2 :1012F00081EF09F0486781EF09F0496781EF09F054 :101300004A6785EF09F08AEF09F007AE8AEF09F026 :101310009DEF09F00501312FB3EF09F03C0E316F5D :10132000302FB3EF09F00101000E626FE00E636F22 :10133000A50E646F010E656F138800011650000A38 :10134000D8B4ABEF09F000011650030AD8B4B0EFDF :1013500009F0B3EF09F00001010E166EB3EF09F0CA :101360000001040E166E0501666B37B7B9EF09F080 :1013700066810CC100F10DC101F10EC102F10FC176 :1013800003F110C104F111C105F112C106F113C13D :1013900007F114C108F115C109F116C10AF117C10D :1013A0000BF135C134F100C10CF101C10DF102C1E5 :1013B0000EF103C10FF104C110F105C111F106C115 :1013C00012F107C113F108C114F109C115F10AC1E5 :1013D00016F10BC117F134C135F101018E67F8EF39 :1013E00009F08F67F8EF09F09067F8EF09F091675F :1013F000FCEF09F02DEF0AF092C100F193C101F169 :1014000094C102F195C103F10101010E046F000EB8 :10141000056F000E066F000E076F82EC30F000C102 :1014200092F101C193F102C194F103C195F101015F :10143000006722EF0AF0016722EF0AF0026722EF4D :101440000AF003672DEF0AF08EC192F18FC193F17C :1014500090C194F191C195F10F80109047C100F1B6 :1014600048C101F149C102F14AC103F101010A0E6B :10147000046F000E056F000E066F000E076F82EC02 :1014800030F003AF1080010154A753EF0AF00F9A18 :101490000F9C0F9E0101000E5E6F600E5F6F3D0E90 :1014A000606F080E616F47C100F148C101F149C189 :1014B00002F14AC103F10101140E046F050E056F1C :1014C000000E066F000E076F82EC30F003AF6CEF7A :1014D0000AF0F28891EF0AF0F2985E6B5F6B606B36 :1014E000616B9A6B9B6B9C6B9D6B9E6B9F6BA06BF8 :1014F000A16BA26BA36BA46BA56BA66BA76BA86B70 :10150000A96BAA6BAB6BAC6BAD6BAE6BAF6BB06B1F :10151000B16BB26BB36BB46BB56BB66BB76BB86BCF :10152000B96B0CC100F10DC101F10EC102F10FC187 :1015300003F110C104F111C105F112C106F113C18B :1015400007F114C108F115C109F116C10AF117C15B :101550000BF135C134F104008BB4B6EF0AF010ACD6 :10156000B6EF0AF08B84109CB7EF0AF08B94077CDF :1015700007ACD2EF0AF0C274C2B4CCEF0AF0C3CF0A :10158000B7F5C4CFB8F50501D890B833B733D890C4 :10159000B833B733D3EF0AF0C3CF55F1C4CF56F108 :1015A000D3EF0AF0C28207B445EF0BF047C14BF10D :1015B00048C14CF149C14DF14AC14EF15EC162F1E1 :1015C0005FC163F160C164F161C165F113A8EBEF24 :1015D0000AF0138C13989AC1BAF19BC1BBF19CC15C :1015E000BCF19DC1BDF19EC1BEF19FC1BFF1A0C1C3 :1015F000C0F1A1C1C1F1A2C1C2F1A3C1C3F1A4C193 :10160000C4F1A5C1C5F1A6C1C6F1A7C1C7F1A8C162 :10161000C8F1A9C1C9F1AAC1CAF1ABC1CBF1ACC132 :10162000CCF1ADC1CDF1AEC1CEF1AFC1CFF1B0C102 :10163000D0F1B1C1D1F1B2C1D2F1B3C1D3F1B4C1D2 :10164000D4F1B5C1D5F1B6C1D6F1B7C1D7F1B8C1A2 :10165000D8F1B9C1D9F1B7C5B9F5B8C5BAF5B9C5A9 :10166000BBF5BAC5BCF5010155515B2756515C234A :10167000E86A5D230E2E45EF0BF05CC157F15DC1AA :1016800058F15B6B5C6B5D6B078E47EF0BF002C034 :10169000E0FF005001C0D8FF1000A6B24DEF0BF0E4 :1016A0000CC0A9FF0BC0A8FFA69EA69CA684F29E14 :1016B000550EA76EAA0EA76EA682F28EA694A6B2AB :1016C0005FEF0BF00C2A1200A96EA69EA69CA680C6 :1016D000A8500C2A120004012C0E826F96EC0EF01A :1016E00097EC31F00C5064EC0BF0E8CF00F10C50AB :1016F00064EC0BF0E8CF01F101AF84EF0BF00101D6 :10170000FF0E026FFF0E036F20EC31F0296790EFA0 :101710000BF00401200E826F96EC0EF095EF0BF0AB :1017200004012D0E826F96EC0EF02AEC2FF01200C1 :1017300015941596076A0F6A106A116A126A136A7D :10174000166A0F010D0EC16E860EC06E030EC26EBC :101750000F01680E896E130E926E080E8A6EF30EDC :10176000936E8B6A900E946EC80E64EC0BF0E8CF0B :10177000E8FF1098E8A0108810A805D00E0E256E7E :101780008E0E266E04D00F0E256E8F0E266E2FEC59 :1017900032F07AEC33F0F18EF19EFC0E64EC0BF03B :1017A000E8CF0BF00BA011800BA211820BA41184C7 :1017B0000BA81188C90E64EC0BF0E8CF1AF0CA0E22 :1017C00064EC0BF0E8CF1BF0CB0E64EC0BF0E8CF31 :1017D0001CF0CC0E64EC0BF0E8CF1DF0FB0E64ECBB :1017E0000BF0E8CF37F0CE0E64EC0BF0E8CF14F03E :1017F000CD0E64EC0BF0E8CF36F01F6A206A0E6A5B :1018000001015B6B5C6B5D6B576B586BF29A01016E :10181000476B486B496B4A6B4B6B4C6B4D6B4E6B1C :101820004F6B506B516B526B456B466BD76AD66AE8 :101830000F01280ED56EF28A9D90B00ECD6E01017B :101840005E6B5F6B606B616B626B636B646B656B34 :10185000666B676B686B696B536B546BCF6ACE6A50 :101860000F9A0F9C0F9E9D80760ECA6E9D8202017C :101870003C0E006FCC6A160E64EC0BF0E8CF00F162 :10188000170E64EC0BF0E8CF01F1180E64EC0BF0CE :10189000E8CF02F1190E64EC0BF0E8CF03F101017F :1018A00003AF6DEF0CF097EC31F0160E0C6E00C12B :1018B0000BF04DEC0BF0170E0C6E01C10BF04DEC64 :1018C0000BF0180E0C6E02C10BF04DEC0BF0190E64 :1018D0000C6E03C10BF04DEC0BF000C18EF101C199 :1018E0008FF102C190F103C191F100C192F101C1E8 :1018F00093F102C194F103C195F11A0E64EC0BF05F :10190000E8CF00F11B0E64EC0BF0E8CF01F11C0EE8 :1019100064EC0BF0E8CF02F11D0E64EC0BF0E8CFA5 :1019200003F1010103AFC3EF0CF097EC31F01A0E95 :101930000C6E00C10BF04DEC0BF01B0E0C6E01C1D8 :101940000BF04DEC0BF01C0E0C6E02C10BF04DECCD :101950000BF01D0E0C6E03C10BF04DEC0BF01A0ECC :1019600064EC0BF0E8CF00F11B0E64EC0BF0E8CF59 :1019700001F11C0E64EC0BF0E8CF02F11D0E64ECDB :101980000BF0E8CF03F100C196F101C197F102C15C :1019900098F103C199F1240EAC6E900EAB6E240E3B :1019A000AC6E080EB86E000EB06E1F0EAF6E040166 :1019B000806B816B0F01900EAB6E0F019D8A03014E :1019C000806B816BC26B8B92D4EC36F0D4EC36F02A :1019D000B6EC38F0B2EC34F0200E64EC0BF0E8CF4B :1019E0002FF505012F51FF0AD8A4FEEF0CF02F6B45 :1019F000200E0C6E2FC50BF04DEC0BF00501010E07 :101A0000306F3C0E316F250E64EC0BF0E8CF00F127 :101A1000260E64EC0BF0E8CF01F1270E64EC0BF01E :101A2000E8CF02F1280E64EC0BF0E8CF03F10101DE :101A300003AF35EF0DF097EC31F0250E0C6E00C1C1 :101A40000BF04DEC0BF0260E0C6E01C10BF04DECC3 :101A50000BF0270E0C6E02C10BF04DEC0BF0280EB4 :101A60000C6E03C10BF04DEC0BF000C157F501C13A :101A700058F502C159F503C15AF500C15BF501C122 :101A80005CF502C15DF503C15EF5290E64EC0BF057 :101A9000E8CF5FF5050160515F5DD8A05FC560F5D7 :101AA000210E64EC0BF0E8CF00F1220E64EC0BF099 :101AB000E8CF01F1230E64EC0BF0E8CF02F1240E25 :101AC00064EC0BF0E8CF03F1010103AF96EF0DF0EA :101AD00097EC31F0210E0C6E00C10BF04DEC0BF0C9 :101AE000220E0C6E01C10BF04DEC0BF0230E0C6EB0 :101AF00002C10BF04DEC0BF0240E0C6E03C10BF089 :101B00004DEC0BF0210E64EC0BF0E8CF00F1220E4F :101B100064EC0BF0E8CF01F1230E64EC0BF0E8CF9E :101B200002F1240E64EC0BF0E8CF03F100C161F583 :101B300001C162F502C163F503C164F5FAEC33F04B :101B4000E0EC32F038EC32F01590C70E64EC0BF09C :101B5000E8CF00F1010100B1B1EF0DF01592B2EF45 :101B60000DF0158281AAC0EF0DF015B4BBEF0DF09A :101B70001580C0EF0DF0F5EC38F015A05CEF39F0F2 :101B800007900001F28EF28C12AE03D012BC6EEF01 :101B900019F007B0A9EF2DF00FB099EF26F010BEA5 :101BA00099EF26F012B899EF26F000011650010ABD :101BB000D8B4A1EF1DF081BAE6EF0DF00001165088 :101BC000040AD8B41AEF1CF0ECEF0DF00001165027 :101BD000040AD8B4DDEF1DF00301805181197F0B99 :101BE000D8B4A9EF2DF013EE00F081517F0BE12660 :101BF000812BE7CFE8FFE00BD8B4A9EF2DF023EE5F :101C000082F0C2513F0BD926E7CFDFFFC22BDF5056 :101C1000780AD8A4A9EF2DF0078092C100F193C1F2 :101C200001F194C102F195C103F10101040E046FA9 :101C3000000E056F000E066F000E076F82EC30F08D :101C400000AF2CEF0EF00101030E926F000E936FA8 :101C5000000E946F000E956F03018251720AD8B482 :101C60001AEF26F08251520AD8B41AEF26F08251A8 :101C7000750AD8B41AEF26F08251680AD8B4AAEFD0 :101C80000EF08251630AD8B463EF2AF08251690AD8 :101C9000D8B4E7EF20F082517A0AD8B4FAEF21F0F5 :101CA0008251490AD8B486EF20F08251500AD8B444 :101CB000A4EF1FF08251700AD8B4E7EF1FF08251F1 :101CC000540AD8B412EF20F08251740AD8B458EFF5 :101CD00020F08251410AD8B4AFEF0FF082514B0A85 :101CE000D8B4ACEF0EF082516D0AD8B41FEF14F0E7 :101CF00082514D0AD8B438EF14F08251730AD8B427 :101D00004AEF25F08251530AD8B4AFEF25F0825143 :101D10004C0AD8B4C7EF14F08251590AD8B470EF06 :101D200013F012AE01D0128C9AEF2AF0040114EED7 :101D300000F080517F0BE12682C4E7FF802B120068 :101D400004010D0E826F96EC0EF00A0E826F96EC77 :101D50000EF0120098EF2AF004014B0E826F96EC01 :101D60000EF004012C0E826F96EC0EF081B802D0BA :101D700036B630D003018351430AD8B4F1EF0EF0E8 :101D800003018351630AD8B4F3EF0EF003018351CA :101D9000520AD8B4F5EF0EF003018351720AD8B499 :101DA000F7EF0EF003018351470AD8B4F9EF0EF0B4 :101DB00003018351670AD8B4FBEF0EF0030183518E :101DC000540AD8B4FDEF0EF003018351740AD8B45D :101DD0006DEF0FF003018351550AD8B4FFEF0EF0F9 :101DE00083D036807BD0369079D0368277D03692C9 :101DF00075D0368473D0369471D036866FD084C354 :101E000030F185C331F186C332F187C333F101016B :101E1000296BE5EC31F05CEC31F000C104F101C15B :101E200005F102C106F103C107F1D8EC31F0200E33 :101E3000F86EF76AF66A0900F5CF2CF10900F5CFC4 :101E40002DF10900F5CF2EF10900F5CF2FF1090092 :101E5000F5CF30F10900F5CF31F10900F5CF32F1BE :101E60000900F5CF33F10101296BE5EC31F05CECB1 :101E700031F082EC30F00101006746EF0FF00167AE :101E800046EF0FF0026746EF0FF0036701D025D051 :101E900004014E0E826F96EC0EF004016F0E826FFD :101EA00096EC0EF004014D0E826F96EC0EF00401DC :101EB000610E826F96EC0EF00401740E826F96EC48 :101EC0000EF00401630E826F96EC0EF00401680EB2 :101ED000826F96EC0EF098EF2AF03696CD0E0C6ECF :101EE00036C00BF04DEC0BF0CD0E64EC0BF0E8CFF0 :101EF00036F036B006D00401630E826F96EC0EF019 :101F000005D00401430E826F96EC0EF036B206D077 :101F10000401720E826F96EC0EF005D00401520E91 :101F2000826F96EC0EF036B406D00401670E826F15 :101F300096EC0EF005D00401470E826F96EC0EF081 :101F400036B606D00401740E826F96EC0EF005D002 :101F50000401540E826F96EC0EF098EF2AF0040103 :101F6000410E826F96EC0EF003018351310AD8B412 :101F700090EF12F003018351320AD8B4C0EF11F090 :101F800003018351330AD8B449EF11F0030183519F :101F9000340AD8B439EF10F003018351350AD8B4AC :101FA000D9EF0FF004013F0E826F96EC0EF098EF20 :101FB0002AF003018451300AD8B4FFEF0FF0030177 :101FC0008451310AD8B402EF10F003018451650A3C :101FD000D8B4F3EF0FF003018451640AD8B4F6EFDC :101FE0000FF003EF10F03790F7EF0FF03780FB0E94 :101FF0000C6E37C00BF04DEC0BF003EF10F08B9034 :1020000003EF10F08B800401350E826F96EC0EF01A :1020100004012C0E826F96EC0EF08BB017EF10F0CF :102020000401300E826F96EC0EF01CEF10F00401EC :10203000310E826F96EC0EF004012C0E826F96EC3E :102040000EF0FB0E64EC0BF0E8CF37F037A030EF6A :1020500010F00401640E826F96EC0EF035EF10F074 :102060000401650E826F96EC0EF037EF10F098EFDA :102070002AF0CC0E64EC0BF0E8CF0BF004012C0E30 :10208000826F96EC0EF003018451310AD8B45DEFF3 :1020900010F003018451300AD8B45FEF10F003014F :1020A00084514D0AD8B469EF10F003018451540AE9 :1020B000D8B470EF10F087EF10F08A8401D08A94C2 :1020C0000BAE04D00BAC02D00BBA21D0E00E0B1239 :1020D00018D01F0E0B168539E844E00B0B1211D0F7 :1020E000E00E0B16D8EC31F085C332F186C333F124 :1020F0000101296BE5EC31F05CEC31F000511F0B74 :102100000B12CC0E0C6E0BC00BF04DEC0BF004015F :10211000340E826F96EC0EF004012C0E826F96EC5A :102120000EF0CC0E64EC0BF0E8CF1DF08AB406D0B4 :102130000401300E826F96EC0EF005D00401310ED2 :10214000826F96EC0EF004012C0E826F96EC0EF06E :102150001D38E840070BE8CF82F40401300E8227D7 :1021600096EC0EF004012C0E826F96EC0EF097ECBC :1021700031F01D501F0BE8CF00F120EC31F032C1DF :1021800082F40401300E822796EC0EF033C182F403 :102190000401300E822796EC0EF004012C0E826FA3 :1021A00096EC0EF097EC31F030C000F100AF0BD0A0 :1021B000FF0E016FFF0E026FFF0E036F04012D0E65 :1021C000826F96EC0EF020EC31F031C182F4040104 :1021D000300E822796EC0EF032C182F40401300EEC :1021E000822796EC0EF033C182F40401300E822770 :1021F00096EC0EF004012C0E826F96EC0EF097EC2C :1022000031F02FC000F120EC31F031C182F4040133 :10221000300E822796EC0EF032C182F40401300EAB :10222000822796EC0EF033C182F40401300E82272F :1022300096EC0EF004012C0E826F96EC0EF097ECEB :1022400031F031C000F100AF0BD0FF0E016FFF0E77 :10225000026FFF0E036F04012D0E826F96EC0EF0DD :1022600020EC31F031C182F40401300E822796EC6B :102270000EF032C182F40401300E822796EC0EF08B :1022800033C182F40401300E822796EC0EF098EFF1 :102290002AF0CB0E64EC0BF0E8CF0BF004012C0E0F :1022A000826F96EC0EF003018451450AD8B46DEFAD :1022B00011F003018451440AD8B470EF11F0030106 :1022C0008451300AD8B473EF11F003018451310AFC :1022D000D8B477EF11F082EF11F00B9E7CEF11F084 :1022E0000B8E7CEF11F0FC0E0B167CEF11F0FC0E48 :1022F0000B160B807CEF11F0CB0E0C6E0BC00BF0AD :102300004DEC0BF00401330E826F96EC0EF00401DD :102310002C0E826F96EC0EF0CB0E64EC0BF0E8CF37 :102320001CF01CBE9BEF11F00401450E826F96EC71 :102330000EF0A0EF11F00401440E826F96EC0EF047 :1023400004012C0E826F96EC0EF00401300E826FA9 :1023500096EC0EF004012C0E826F96EC0EF01CB081 :10236000B9EF11F00401300E826F96EC0EF0BEEF63 :1023700011F00401310E826F96EC0EF098EF2AF006 :10238000CA0E64EC0BF0E8CF0BF004012C0E826F48 :1023900096EC0EF003018451450AD8B4FCEF11F01D :1023A00003018451440AD8B4FFEF11F003018451B2 :1023B0004D0AD8B408EF12F003018451410AD8B491 :1023C00002EF12F003018451460AD8B405EF12F06F :1023D00003018451560AD8B410EF12F0030184515E :1023E000500AD8B41BEF12F003018451520AD8B43A :1023F0001EEF12F027EF12F00B9E21EF12F00B8E62 :1024000021EF12F00B9C21EF12F00B8C21EF12F058 :10241000FC0E0B1685C3E8FF030B0B1221EF12F025 :10242000C70E0B1685C3E8FF070BE846E846E846EB :102430000B1221EF12F00B8421EF12F00B9421EF1D :1024400012F0CA0E0C6E0BC00BF04DEC0BF0CA0E66 :1024500064EC0BF0E8CF1BF00401320E826F96ECB7 :102460000EF004012C0E826F96EC0EF01BBE40EFB6 :1024700012F00401450E826F96EC0EF045EF12F05B :102480000401440E826F96EC0EF004012C0E826F54 :1024900096EC0EF01BC0E8FF030BE8CF82F40401BA :1024A000300E822796EC0EF004012C0E826F96EC13 :1024B0000EF01BBC63EF12F00401410E826F96EC2C :1024C0000EF068EF12F00401460E826F96EC0EF0EB :1024D00004012C0E826F96EC0EF01BC0E8FF380B47 :1024E000E842E842E842E8CF82F40401300E822755 :1024F00096EC0EF004012C0E826F96EC0EF01BB4DD :1025000089EF12F00401520E826F96EC0EF08EEFFE :1025100012F00401500E826F96EC0EF098EF2AF044 :10252000C90E64EC0BF0E8CF0BF004012C0E826FA7 :1025300096EC0EF003018451450AD8B4AEEF12F0C8 :1025400003018451440AD8B4B1EF12F0030184515D :102550004D0AD8B4B4EF12F0C2EF12F00B9EBCEFEC :1025600012F00B8EBCEF12F0F80E0B1685C3E8FFCD :10257000070B0B12BCEF12F0C90E0C6E0BC00BF068 :102580004DEC0BF00401310E826F96EC0EF004015D :102590002C0E826F96EC0EF0C90E64EC0BF0E8CFB7 :1025A0001AF01ABE06D00401450E826F96EC0EF0AA :1025B00005D00401440E826F96EC0EF004012C0E3F :1025C000826F96EC0EF01AC0E8FF070BE8CF82F49A :1025D0000401300E822796EC0EF004012C0E826F5F :1025E00096EC0EF0078097EC31F02BC0E8FF003B33 :1025F00000430043030B20EC31F033C182F40401AB :10260000300E822796EC0EF004012C0E826F96ECB1 :102610000EF097EC31F02BC001F1019F019D2CC011 :1026200000F1010120EC31F02FC182F40401300EE1 :10263000822796EC0EF030C182F40401300E82271E :1026400096EC0EF031C182F40401300E822796EC34 :102650000EF032C182F40401300E822796EC0EF0A7 :1026600033C182F40401300E822796EC0EF004018F :102670002C0E826F96EC0EF097EC31F02DC001F12C :102680002EC000F1D89001330033D89001330033CD :10269000010120EC31F02FC182F40401300E8227B9 :1026A00096EC0EF030C182F40401300E822796ECD5 :1026B0000EF031C182F40401300E822796EC0EF048 :1026C00032C182F40401300E822796EC0EF033C141 :1026D00082F40401300E822796EC0EF098EF2AF077 :1026E000FC0E64EC0BF0E8CF0BF003018351520AAF :1026F000D8B4A7EF13F003018351720AD8B4AAEF3C :1027000013F003018351500AD8B4ADEF13F0030165 :102710008351700AD8B4B0EF13F003018351550A06 :10272000D8B4B3EF13F003018351750AD8B4B6EFF0 :1027300013F003018351430AD8B4BFEF13F0030130 :102740008351630AD8B4C2EF13F0CBEF13F00B90B0 :10275000C5EF13F00B80C5EF13F00B92C5EF13F02C :102760000B82C5EF13F00B94C5EF13F00B84C5EF8C :1027700013F00B96C5EF13F00B86C5EF13F00B9813 :10278000C5EF13F00B88C5EF13F0FC0E0C6E0BC0F9 :102790000BF04DEC0BF00401590E826F96EC0EF02D :1027A0001190119211941198FC0E64EC0BF0E8CF8B :1027B0000BF00BA011800BA211820BA411840BA8AB :1027C000118811A0EBEF13F00401520E826F96EC0A :1027D0000EF0F0EF13F00401720E826F96EC0EF023 :1027E00011A8FAEF13F00401430E826F96EC0EF07D :1027F000FFEF13F00401630E826F96EC0EF011A24E :1028000009EF14F00401500E826F96EC0EF00EEFFB :1028100014F00401700E826F96EC0EF011A418EF04 :1028200014F00401550E826F96EC0EF01DEF14F0BB :102830000401750E826F96EC0EF098EF2AF00401F9 :102840006D0E826F96EC0EF003018351300AD8B4FE :1028500077EF14F003018351310AD8B48AEF14F0F2 :1028600003018351320AD8B49DEF14F09AEF2AF095 :1028700004014D0E826F96EC0EF0D8EC31F084C35B :1028800031F185C332F186C333F10101296BE5ECE7 :1028900031F05CEC31F003018351300AD8B45FEFC2 :1028A00014F003018351310AD8B467EF14F0030127 :1028B0008351320AD8B46FEF14F09AEF2AF0FD0E6C :1028C0000C6E00C10BF04DEC0BF077EF14F0FE0E28 :1028D0000C6E00C10BF04DEC0BF08AEF14F0FF0E04 :1028E0000C6E00C10BF04DEC0BF09DEF14F00401E9 :1028F000300E826F96EC0EF004012C0E826F96EC77 :102900000EF097EC31F0FD0E64EC0BF0E8CF00F127 :10291000AEEF14F00401310E826F96EC0EF004015C :102920002C0E826F96EC0EF097EC31F0FE0E64ECFC :102930000BF0E8CF00F1AEEF14F00401320E826F1D :1029400096EC0EF097EC31F004012C0E826F96ECB1 :102950000EF0FF0E64EC0BF0E8CF00F120EC31F04C :1029600031C182F40401300E822796EC0EF032C1A0 :1029700082F40401300E822796EC0EF033C182F40B :102980000401300E822796EC0EF098EF2AF0030136 :102990008351300AD8B41BEF1AF003018351310A76 :1029A000D8B448EF1BF003018351320AD8B4B6EF14 :1029B0001BF003018351330AD8B4C6EF1BF00301A7 :1029C0008351340AD8B421EF1CF003018351350A36 :1029D000D8B4F5EF1DF003018351360AD8B423EFC4 :1029E0001EF003018351370AD8B4F3EF17F0030147 :1029F0008351380AD8B491EF18F003018351440A87 :102A0000D8B41FEF16F003018351640AD8B43FEF26 :102A100016F003018351460AD8B4FAEF1CF0030103 :102A200083514D0AD8B46CEF16F0030183516D0A3F :102A3000D8B486EF16F0030183515A0AD8B4C2EF16 :102A40001AF003018351490AD8B423EF1FF00301A0 :102A50008351500AD8B455EF1EF003018351540A34 :102A6000D8B4CEEF1EF003018351630AD8B4A6EFA9 :102A700016F003018351430AD8B49EEF17F0030107 :102A80008351730AD8B4A4EF16F003018351610A8D :102A9000D8B46CEF15F003018351650AD8B46BEF1D :102AA0001AF003018351450AD8B479EF1AF00301F3 :102AB0008351620AD8B487EF1AF003018351420AA6 :102AC000D8B495EF1AF003018351760AD8B4A3EF76 :102AD0001AF0D8A49AEF2AF004014C0E826F96ECFB :102AE0000EF00401610E826F96EC0EF0E0EC32F015 :102AF00004012C0E826F96EC0EF097EC31F0AFC50E :102B000000F1010120EC31F031C182F40401300EFA :102B1000822796EC0EF032C182F40401300E822737 :102B200096EC0EF033C182F40401300E822796EC4D :102B30000EF004012C0E826F96EC0EF097EC31F043 :102B4000B0C500F1010120EC31F031C182F4040183 :102B5000300E822796EC0EF032C182F40401300E62 :102B6000822796EC0EF033C182F40401300E8227E6 :102B700096EC0EF004012C0E826F96EC0EF097ECA2 :102B800031F0B1C500F1010120EC31F031C182F426 :102B90000401300E822796EC0EF032C182F404015B :102BA000300E822796EC0EF033C182F40401300E11 :102BB000822796EC0EF004012C0E826F96EC0EF03C :102BC00097EC31F0B2C500F1010120EC31F031C1D8 :102BD00082F40401300E822796EC0EF032C182F4AA :102BE0000401300E822796EC0EF033C182F404010A :102BF000300E822796EC0EF004012C0E826F96ECBC :102C00000EF097EC31F0B6C500F1010120EC31F087 :102C100031C182F40401300E822796EC0EF032C1ED :102C200082F40401300E822796EC0EF033C182F458 :102C30000401300E822796EC0EF051EF1EF00301D6 :102C40008451300AD8B42BEF16F003018451310AB5 :102C5000D8B42FEF16F01592159630EF16F01582B6 :102C6000C70E64EC0BF0E8CF00F10101008115A262 :102C70000091C70E0C6E00C10BF04DEC0BF0C70EAF :102C800064EC0BF0E8CF00F1010100B14BEF16F05E :102C900015924CEF16F0158204014C0E826F96ECE3 :102CA0000EF00401640E826F96EC0EF004012C0EFF :102CB000826F96EC0EF015B265EF16F00401300E3F :102CC000826F96EC0EF06AEF16F00401310E826FFF :102CD00096EC0EF098EF2AF0D8EC31F084C333F183 :102CE000E5EC31F05CEC31F0200E0C6E00C10BF025 :102CF0004DEC0BF000C12FF505012F51000A06E045 :102D000005012F51010A02E07AEC33F004014C0E68 :102D1000826F96EC0EF004014D0E826F96EC0EF071 :102D200004012C0E826F96EC0EF097EC31F02FC55B :102D300000F120EC31F033C182F40401300E82271F :102D400096EC0EF051EF1EF05CEF39F004014C0EE2 :102D5000826F96EC0EF00401630E826F96EC0EF01B :102D600038EC32F004012C0E826F96EC0EF0BBECC6 :102D700016F051EF1EF097EC31F0B5C500F10101EE :102D8000003B0F0E001720EC31F033C182F4040138 :102D9000300E822796EC0EF0B5C500F101010F0E42 :102DA0000101001720EC31F033C182F40401300E30 :102DB000822796EC0EF004012D0E826F96EC0EF039 :102DC000B4C500F10101003B0F0E001720EC31F0FB :102DD00033C182F40401300E822796EC0EF0B4C5A4 :102DE00000F101010F0E0101001720EC31F033C199 :102DF00082F40401300E822796EC0EF004012D0EB1 :102E0000826F96EC0EF0B3C500F10101003B0F0E8E :102E1000001720EC31F033C182F40401300E822718 :102E200096EC0EF0B3C500F101010F0E0101001781 :102E300020EC31F033C182F40401300E822796EC8D :102E40000EF00401200E826F96EC0EF0B2C500F178 :102E50000F0E0101001720EC31F033C182F40401A0 :102E6000300E822796EC0EF00401200E826F96EC55 :102E70000EF0B1C500F101010101003B0F0E00177A :102E800020EC31F033C182F40401300E822796EC3D :102E90000EF0B1C500F101010F0E0101001720EC89 :102EA00031F033C182F40401300E822796EC0EF02B :102EB00004013A0E826F96EC0EF0B0C500F10101EC :102EC000003B0F0E001720EC31F033C182F40401F7 :102ED000300E822796EC0EF0B0C500F101010F0E06 :102EE0000101001720EC31F033C182F40401300EEF :102EF000822796EC0EF004013A0E826F96EC0EF0EB :102F0000AFC500F10101003B0F0E001720EC31F0BE :102F100033C182F40401300E822796EC0EF0AFC567 :102F200000F101010F0E001720EC31F033C182F4E3 :102F30000401300E822796EC0EF0120084C3E8FFE5 :102F40000F0BE83AE8CFB5F585C3E8FF0F0B050195 :102F5000B51387C3E8FF0F0BE83AE8CFB4F588C391 :102F6000E8FF0F0B0501B4138AC3E8FF0F0BE83A23 :102F7000E8CFB3F58BC3E8FF0F0B0501B3138DC387 :102F8000E8FF0F0BE8CFB2F58FC3E8FF0F0BE83A6D :102F9000E8CFB1F590C3E8FF0F0B0501B11392C361 :102FA000E8FF0F0BE83AE8CFB0F593C3E8FF0F0B4B :102FB0000501B01395C3E8FF0F0BE83AE8CFAFF572 :102FC00096C3E8FF0F0B0501AF1393EC32F0040139 :102FD0004C0E826F96EC0EF00401430E826F96EC5D :102FE0000EF0B0EF16F0078404014C0E826F96ECE1 :102FF0000EF00401370E826F96EC0EF004012C0ED9 :10300000826F96EC0EF005012E51130A06E00501C1 :103010002E51170A0DE08EEF18F00101000E006F1F :10302000000E016F100E026F000E036F21EF18F0FB :103030000101000E006F000E016F000E026F010E05 :10304000036F20EC31F02AC182F40401300E822794 :1030500096EC0EF02BC182F40401300E822796EC20 :103060000EF02CC182F40401300E822796EC0EF093 :103070002DC182F40401300E822796EC0EF02EC191 :1030800082F40401300E822796EC0EF02FC182F4F8 :103090000401300E822796EC0EF030C182F4040158 :1030A000300E822796EC0EF031C182F40401300E0E :1030B000822796EC0EF032C182F40401300E822792 :1030C00096EC0EF033C182F40401300E822796ECA8 :1030D0000EF004012C0E826F96EC0EF00101100E22 :1030E000006F000E016F000E026F000E036F20ECE8 :1030F00031F031C182F40401300E822796EC0EF0DB :1031000032C182F40401300E822796EC0EF033C1F6 :1031100082F40401300E822796EC0EF0079451EFF2 :103120001EF00501216B226B236B246B04014C0EF6 :10313000826F96EC0EF00401380E826F96EC0EF062 :1031400004012C0E826F96EC0EF00101100E006F40 :10315000000E016F000E026F000E036F20EC31F0C5 :103160002AC182F40401300E822796EC0EF02BC1A6 :1031700082F40401300E822796EC0EF02CC182F40A :103180000401300E822796EC0EF02DC182F404016A :10319000300E822796EC0EF02EC182F40401300E20 :1031A000822796EC0EF02FC182F40401300E8227A4 :1031B00096EC0EF030C182F40401300E822796ECBA :1031C0000EF031C182F40401300E822796EC0EF02D :1031D00032C182F40401300E822796EC0EF033C126 :1031E00082F40401300E822796EC0EF004012C0EBE :1031F000826F96EC0EF025C500F126C501F127C5BA :1032000002F128C503F10101100E046F000E056FD5 :10321000000E066F000E076FB3EC30F000C133F5FF :1032200001C134F502C135F503C136F520EC31F0AA :103230002AC182F40401300E822796EC0EF02BC1D5 :1032400082F40401300E822796EC0EF02CC182F439 :103250000401300E822796EC0EF02DC182F4040199 :10326000300E822796EC0EF02EC182F40401300E4F :10327000822796EC0EF02FC182F40401300E8227D3 :1032800096EC0EF030C182F40401300E822796ECE9 :103290000EF031C182F40401300E822796EC0EF05C :1032A00032C182F40401300E822796EC0EF033C155 :1032B00082F40401300E822796EC0EF0A0EC0EF0A2 :1032C000050133676BEF19F034676BEF19F0356761 :1032D0006BEF19F0366702D00AEF1AF0129E129CBB :1032E00021C500F122C501F123C502F124C503F176 :1032F000899A400EC76E200EC66E9E96C69E0B0E15 :10330000C96EFF0E9EB602D0E82EFCD79E96C69ED2 :1033100002C1C9FFFF0E9EB602D0E82EFCD79E96D2 :10332000C69E01C1C9FFFF0E9EB602D0E82EFCD793 :103330009E96C69E00C1C9FFFF0E9EB602D0E82E23 :10334000FCD79E96C69EC952FF0E9EB602D0E82EAE :10335000FCD70501100E326F040114EE00F080510D :103360007F0BE1269E96C69EC952FF0E9EB602D0E6 :10337000E82EFCD7C9CFE7FF0401802B0501322FCF :10338000ACEF19F0898A33C500F134C501F135C5B8 :1033900002F136C503F10101010E046F000E056F45 :1033A000000E066F000E076F82EC30F000C133F59F :1033B00001C134F502C135F503C136F505013367A6 :1033C000E9EF19F03467E9EF19F03567E9EF19F023 :1033D000366702D00AEF1AF021C500F122C501F1CB :1033E00023C502F124C503F10101100E046F000E84 :1033F000056F000E066F000E076F87EC30F000C1FE :1034000021F501C122F502C123F503C124F5128E75 :103410009AEF2AF00401450E826F96EC0EF004013B :103420004F0E826F96EC0EF00401460E826F96EC02 :103430000EF051EF1EF00784B6EC38F097EC31F047 :103440002DC500F120EC31F004014C0E826F96EC9A :103450000EF00401300E826F96EC0EF004012C0E7B :10346000826F96EC0EF031C182F40401300E822797 :1034700096EC0EF032C182F40401300E822796ECF5 :103480000EF033C182F40401300E822796EC0EF068 :1034900004012C0E826F96EC0EF097EC31F02EC5E5 :1034A00000F120EC31F031C182F40401300E8227AA :1034B00096EC0EF032C182F40401300E822796ECB5 :1034C0000EF033C182F40401300E822796EC0EF028 :1034D000079451EF1EF004014C0E826F96EC0EF033 :1034E0000401650E826F96EC0EF056EC34F051EF4D :1034F0001EF004014C0E826F96EC0EF00401450E96 :10350000826F96EC0EF06DEC34F051EF1EF004017A :103510004C0E826F96EC0EF00401620E826F96ECF8 :103520000EF09BEC34F051EF1EF004014C0E826F54 :1035300096EC0EF00401420E826F96EC0EF084ECD5 :1035400034F051EF1EF004014C0E826F96EC0EF039 :103550000401760E826F96EC0EF004012C0E826F41 :1035600096EC0EF010A807D00401310E826F96EC95 :103570000EF051EF1EF00401300E826F96EC0EF04B :1035800051EF1EF004014C0E826F96EC0EF0040118 :103590005A0E826F96EC0EF004012C0E826F96ECA0 :1035A0000EF0B6EC38F097EC31F005012E51130A0D :1035B00006E005012E51170A0DE0F3EF1AF00101A4 :1035C000000E006F000E016F100E026F000E036FF1 :1035D000F3EF1AF00101000E006F000E016F000EF4 :1035E000026F010E036F0101100E046F000E056FD4 :1035F000000E066F000E076FB3EC30F020EC31F0D8 :103600002AC182F40401300E822796EC0EF02BC101 :1036100082F40401300E822796EC0EF02CC182F465 :103620000401300E822796EC0EF02DC182F40401C5 :10363000300E822796EC0EF02EC182F40401300E7B :10364000822796EC0EF02FC182F40401300E8227FF :1036500096EC0EF030C182F40401300E822796EC15 :103660000EF031C182F40401300E822796EC0EF088 :1036700032C182F40401300E822796EC0EF033C181 :1036800082F40401300E822796EC0EF051EF1EF00A :10369000078404014C0E826F96EC0EF00401310E8B :1036A000826F96EC0EF004012C0E826F96EC0EF0F9 :1036B00025C500F126C501F127C502F128C503F192 :1036C0000101100E046F000E056F000E066F000E54 :1036D000076FB3EC30F020EC31F02AC182F4040122 :1036E000300E822796EC0EF02BC182F40401300ECE :1036F000822796EC0EF02CC182F40401300E822752 :1037000096EC0EF02DC182F40401300E822796EC67 :103710000EF02EC182F40401300E822796EC0EF0DA :103720002FC182F40401300E822796EC0EF030C1D6 :1037300082F40401300E822796EC0EF031C182F43F :103740000401300E822796EC0EF032C182F404019F :10375000300E822796EC0EF033C182F40401300E55 :10376000822796EC0EF0079451EF1EF007840401B7 :103770004C0E826F96EC0EF00401320E826F96ECC6 :103780000EF08AEC36F0079451EF1EF0078437B044 :10379000CCEF1BF0DFEF1BF0010E166E04014C0E98 :1037A000826F96EC0EF00401330E826F96EC0EF0F1 :1037B000E7EC36F0000E166E079453EF1BF0020E86 :1037C000166EE7EC36F08B800501010E306F3C0E73 :1037D000316F01015E6B5F6B606B616B626B636B82 :1037E000646B656B666B676B686B696B536B546B73 :1037F000CF6ACE6A0F9A0F9C0F9E030E166E0401BD :103800004C0E826F96EC0EF00401330E826F96EC34 :103810000EF004012C0E826F96EC0EF004012D0EBA :10382000826F96EC0EF00401310E826F96EC0EF072 :1038300098EF2AF0E7EC36F0000E166E8B909AEFB8 :103840002AF0078404014C0E826F96EC0EF00401FE :10385000340E826F96EC0EF004012C0E826F96EC03 :103860000EF0D8EC31F084C32AF185C32BF186C366 :103870002CF187C32DF188C32EF189C32FF18AC3A0 :1038800030F18BC331F18CC332F18DC333F10101BF :10389000296BE5EC31F05CEC31F0100E046F000E9A :1038A000056F000E066F000E076F93EC30F000C13D :1038B00021F501C122F502C123F503C124F569EC0C :1038C00038F038C5AFF539C5B0F53AC5B1F53BC5E7 :1038D000B2F53CC5B3F53DC5B4F53EC5B5F5BBEC99 :1038E00016F004012C0E826F96EC0EF03FC500F12D :1038F00040C501F141C502F142C503F10101000ECD :10390000046F000E056F010E066F000E076FB3EC1B :1039100030F020EC31F0296790EF1CF095EF1CF0AF :1039200004012D0E826F96EC0EF030C182F404017A :10393000300E822796EC0EF031C182F40401300E75 :10394000822796EC0EF004012E0E826F96EC0EF09C :1039500032C182F40401300E822796EC0EF033C19E :1039600082F40401300E822796EC0EF004012C0E36 :10397000826F96EC0EF097EC31F043C500F144C530 :1039800001F1C4EC2BF004012C0E826F96EC0EF0CA :1039900097EC31F045C500F120EC31F031C182F4F3 :1039A0000401300E822796EC0EF032C182F404013D :1039B000300E822796EC0EF033C182F40401300EF3 :1039C000822796EC0EF004012C0E826F96EC0EF01E :1039D00037C5E8FFE8B806D00401300E826F96ECD8 :1039E0000EF005D00401310E826F96EC0EF00794B4 :1039F00051EF1EF0D8EC31F085C32AF186C32BF1CC :103A000087C32CF188C32DF189C32EF18AC32FF10E :103A10008BC330F18CC331F18DC332F18EC333F1DE :103A20000101296BE5EC31F05CEC31F00101010E94 :103A3000046F000E056F000E066F000E076F82EC1C :103A400030F0100E046F000E056F000E066F000EB2 :103A5000076F93EC30F000C129F501C12AF502C1CE :103A60002BF503C12CF511EC36F004014C0E826FDE :103A700096EC0EF00401460E826F96EC0EF00401F7 :103A80002C0E826F96EC0EF025C500F126C501F1D3 :103A900027C502F128C503F10101100E046F000EC5 :103AA000056F000E066F000E076FB3EC30F020ECD0 :103AB00031F02AC182F40401300E822796EC0EF018 :103AC0002BC182F40401300E822796EC0EF02CC13B :103AD00082F40401300E822796EC0EF02DC182F4A0 :103AE0000401300E822796EC0EF02EC182F4040100 :103AF000300E822796EC0EF02FC182F40401300EB6 :103B0000822796EC0EF030C182F40401300E822739 :103B100096EC0EF031C182F40401300E822796EC4F :103B20000EF032C182F40401300E822796EC0EF0C2 :103B300033C182F40401300E822796EC0EF051EF6F :103B40001EF037B0A6EF1DF0020E166EE7EC36F051 :103B500000011650020AD8B4C4EF1DF005012F5120 :103B6000010AD8B4BAEF1DF015B2BFEF1DF081BA4B :103B7000BFEF1DF0000E166E15849AEF2AF0050EA9 :103B8000166E15845CEF39F08B8001015E6B5F6B04 :103B9000606B616B626B636B646B656B666B676BB1 :103BA000686B696B536B546BCF6ACE6A0F9A0F9C2C :103BB0000F9E030E166E9AEF2AF0E7EC36F0050121 :103BC0002F51010AD8B4EBEF1DF015B2F0EF1DF044 :103BD00081BAF0EF1DF0000E166E15849AEF2AF0F0 :103BE000050E166E15845CEF39F004014C0E826FE1 :103BF00096EC0EF00401350E826F96EC0EF0040187 :103C00002C0E826F96EC0EF097EC31F00784B9C55C :103C100000F1079420EC31F031C182F40401300E40 :103C2000822796EC0EF032C182F40401300E822716 :103C300096EC0EF033C182F40401300E822796EC2C :103C40000EF051EF1EF0AAEC36F097EC31F037C5CC :103C500000F120EC31F004014C0E826F96EC0EF076 :103C60000401360E826F96EC0EF004012C0E826F6A :103C700096EC0EF031C182F40401300E822796ECEE :103C80000EF032C182F40401300E822796EC0EF061 :103C900033C182F40401300E822796EC0EF051EF0E :103CA0001EF0A0EC0EF09AEF2AF004014C0E826F89 :103CB00096EC0EF00401500E826F96EC0EF00401AB :103CC0002C0E826F96EC0EF085C32AF186C32BF181 :103CD00087C32CF188C32DF189C32EF18AC32FF13C :103CE0008BC330F18CC331F18DC332F18EC333F10C :103CF0000101E5EC31F05CEC31F003018451530A31 :103D00000DE0030184514D0A38E00401780E826F02 :103D100096EC0EF0A0EC0EF09AEF2AF00401530E90 :103D2000826F96EC0EF0250E0C6E00C10BF04DEC80 :103D30000BF0260E0C6E01C10BF04DEC0BF0270EB4 :103D40000C6E02C10BF04DEC0BF0280E0C6E03C193 :103D50000BF04DEC0BF000C157F501C158F502C155 :103D600059F503C15AF500C15BF501C15CF502C10B :103D70005DF503C15EF532EF1FF004014D0E826F59 :103D800096EC0EF0290E0C6E00C10BF04DEC0BF012 :103D900000C15FF500C160F532EF1FF004014C0E69 :103DA000826F96EC0EF00401540E826F96EC0EF0CA :103DB00004012C0E826F96EC0EF084C32AF185C3A9 :103DC0002BF186C32CF187C32DF188C32EF189C353 :103DD0002FF18AC330F18BC331F18DC332F18EC321 :103DE00033F10101E5EC31F05CEC31F00101000E42 :103DF000046F000E056F010E066F000E076F93EC47 :103E000030F0210E0C6E00C10BF04DEC0BF0220EC9 :103E10000C6E01C10BF04DEC0BF0230E0C6E02C1C9 :103E20000BF04DEC0BF0240E0C6E03C10BF04DECBF :103E30000BF000C161F501C162F502C163F503C178 :103E400064F532EF1FF004014C0E826F96EC0EF019 :103E50000401490E826F96EC0EF004012C0E826F65 :103E600096EC0EF0250E64EC0BF0E8CF00F1260E78 :103E700064EC0BF0E8CF01F1270E64EC0BF0E8CF17 :103E800002F1280E64EC0BF0E8CF03F120EC31F0E6 :103E9000E3EC2EF00401730E826F96EC0EF0040139 :103EA0002C0E826F96EC0EF097EC31F0290E64EC3C :103EB0000BF0E8CF00F120EC31F0E3EC2EF0040140 :103EC0006D0E826F96EC0EF004012C0E826F96EC54 :103ED0000EF05BC500F15CC501F15DC502F15EC588 :103EE00003F120EC31F0E3EC2EF00401730E826F4D :103EF00096EC0EF004012C0E826F96EC0EF097EC0F :103F000031F060C500F120EC31F0E3EC2EF004015B :103F10006D0E826F96EC0EF004012C0E826F96EC03 :103F20000EF061C500F162C501F163C502F164C51F :103F300003F1B5EC2AF004012C0E826F96EC0EF022 :103F4000A0EC0EF09AEF2AF083C32AF184C32BF180 :103F500085C32CF186C32DF187C32EF188C32FF1C1 :103F600089C330F18AC331F18BC332F18CC333F191 :103F70000101E5EC31F05CEC31F0160E0C6E00C185 :103F80000BF04DEC0BF0170E0C6E01C10BF04DEC6D :103F90000BF0180E0C6E02C10BF04DEC0BF0190E6D :103FA0000C6E03C10BF04DEC0BF000C18EF101C1A2 :103FB0008FF102C190F103C191F100C192F101C1F1 :103FC00093F102C194F103C195F186EF20F083C310 :103FD0002AF184C32BF185C32CF186C32DF187C34D :103FE0002EF188C32FF189C330F18AC331F18BC31D :103FF00032F18CC333F10101E5EC31F05CEC31F0CE :1040000000C18EF101C18FF102C190F103C191F1A4 :1040100000C192F101C193F102C194F103C195F184 :1040200086EF20F083C32AF184C32BF185C32CF1E2 :1040300086C32DF187C32EF188C32FF189C330F1D8 :104040008AC331F18CC332F18DC333F10101E5EC48 :1040500031F05CEC31F00101000E046F000E056FD1 :10406000010E066F000E076F93EC30F01A0E0C6E07 :1040700000C10BF04DEC0BF01B0E0C6E01C10BF0F0 :104080004DEC0BF01C0E0C6E02C10BF04DEC0BF066 :104090001D0E0C6E03C10BF04DEC0BF000C196F140 :1040A00001C197F102C198F103C199F186EF20F0A7 :1040B00083C32AF184C32BF185C32CF186C32DF170 :1040C00087C32EF188C32FF189C330F18AC331F140 :1040D0008CC332F18DC333F10101E5EC31F05CECBE :1040E00031F00101000E046F000E056F010E066F26 :1040F000000E076F93EC30F000C196F101C197F10B :1041000002C198F103C199F186EF20F0160E64EC1C :104110000BF0E8CF00F1170E64EC0BF0E8CF01F1E3 :10412000180E64EC0BF0E8CF02F1190E64EC0BF002 :10413000E8CF03F120EC31F0E3EC2EF00401730E34 :10414000826F96EC0EF004012C0E826F96EC0EF04E :104150008EC100F18FC101F190C102F191C103F153 :1041600020EC31F0E3EC2EF00401730E826F96EC3C :104170000EF004012C0E826F96EC0EF01A0E64EC19 :104180000BF0E8CF00F11B0E64EC0BF0E8CF01F16F :104190001C0E64EC0BF0E8CF02F11D0E64EC0BF08A :1041A000E8CF03F1B5EC2AF004012C0E826F96ECF7 :1041B0000EF096C100F197C101F198C102F199C1C9 :1041C00003F1B5EC2AF0A0EC0EF09AEF2AF004010E :1041D000690E826F96EC0EF004012C0E826F96EC45 :1041E0000EF00101040E006F000E016F000E026F51 :1041F000000E036F20EC31F02CC182F40401300E6C :10420000822796EC0EF02DC182F40401300E822735 :1042100096EC0EF02EC182F40401300E822796EC4B :104220000EF02FC182F40401300E822796EC0EF0BE :1042300030C182F40401300E822796EC0EF031C1B9 :1042400082F40401300E822796EC0EF032C182F423 :104250000401300E822796EC0EF033C182F4040183 :10426000300E822796EC0EF004012C0E826F96EC35 :104270000EF00101060E006F000E016F000E026FBE :10428000000E036F20EC31F02CC182F40401300EDB :10429000822796EC0EF02DC182F40401300E8227A5 :1042A00096EC0EF02EC182F40401300E822796ECBB :1042B0000EF02FC182F40401300E822796EC0EF02E :1042C00030C182F40401300E822796EC0EF031C129 :1042D00082F40401300E822796EC0EF032C182F493 :1042E0000401300E822796EC0EF033C182F40401F3 :1042F000300E822796EC0EF004012C0E826F96ECA5 :104300000EF001014C0E006F000E016F000E026FE7 :10431000000E036F20EC31F02CC182F40401300E4A :10432000822796EC0EF02DC182F40401300E822714 :1043300096EC0EF02EC182F40401300E822796EC2A :104340000EF02FC182F40401300E822796EC0EF09D :1043500030C182F40401300E822796EC0EF031C198 :1043600082F40401300E822796EC0EF032C182F402 :104370000401300E822796EC0EF033C182F4040162 :10438000300E822796EC0EF004012C0E826F96EC14 :104390000EF0200EF86EF76AF66A04010900F5CFF8 :1043A00082F496EC0EF00900F5CF82F496EC0EF054 :1043B0000900F5CF82F496EC0EF00900F5CF82F4F7 :1043C00096EC0EF00900F5CF82F496EC0EF00900A1 :1043D000F5CF82F496EC0EF00900F5CF82F496EC5E :1043E0000EF00900F5CF82F496EC0EF0A0EC0EF082 :1043F0009AEF2AF08351630AD8A498EF2AF08451E7 :10440000610AD8A498EF2AF085516C0AD8A498EFD5 :104410002AF08651410A3FE08651440A1BE086514A :10442000420AD8B45EEF22F08651350AD8B424EFA0 :104430002CF08651360AD8B479EF2CF08651370A21 :10444000D8B4E2EF2CF08651380AD8B440EF2DF002 :1044500098EF2AF00798079A04017A0E826F96EC7B :104460000EF00401780E826F96EC0EF00401640EDB :10447000826F96EC0EF00401550E826F96EC0EF0F2 :1044800047EF22F004014C0E826F96EC0EF0A0EC88 :104490000EF09AEF2AF00788079A04017A0E826FCD :1044A00096EC0EF00401410E826F96EC0EF00401C2 :1044B000610E826F96EC0EF03BEF22F00798078AB0 :1044C00004017A0E826F96EC0EF00401420E826FA8 :1044D00096EC0EF00401610E826F96EC0EF03BEF4D :1044E00022F0010166677CEF22F067677CEF22F023 :1044F00068677CEF22F0696716D001014F6788EF8B :1045000022F0506788EF22F0516788EF22F052675F :104510000AD00101000E006F000E016F000E026F45 :10452000000E036F120011B80AD00101620E046F71 :10453000010E056F000E066F000E076F09D0010116 :10454000A70E046F020E056F000E066F000E076FB8 :1045500066C100F167C101F168C102F169C103F1EF :1045600082EC30F003BF25EF23F0119A119C01017A :10457000000E046FA80E056F550E066F020E076F32 :1045800066C100F167C101F168C102F169C103F1BF :1045900066C18AF167C18BF168C18CF169C18DF187 :1045A00082EC30F003BF0BD00101000E8A6FA80E21 :1045B0008B6F550E8C6F020E8D6F118A119C0E0E33 :1045C00064EC0BF0E8CF18F10F0E64EC0BF0E8CFC1 :1045D00019F1100E64EC0BF0E8CF1AF1110E64EC37 :1045E0000BF0E8CF1BF1CBEC2FF08AC104F18BC1AB :1045F00005F18CC106F18DC107F182EC30F0078224 :104600008FEC2FF0CBEC2FF007928FEC2FF08AC1BC :1046100000F18BC101F18CC102F18DC103F1079250 :104620008FEC2FF0CC0E046FE00E056F870E066F37 :10463000050E076F82EC30F000C118F101C119F1CD :1046400002C11AF103C11BF140D013AA2AEF23F0D3 :10465000138E139A119C119A0101800E006F1A0E8D :10466000016F060E026F000E036F4FC104F150C1BF :1046700005F151C106F152C107F182EC30F003AFF0 :1046800005D097EC31F0118C119A12000E0E64ECEB :104690000BF0E8CF18F10F0E64EC0BF0E8CF19F136 :1046A000100E64EC0BF0E8CF1AF1110E64EC0BF075 :1046B000E8CF1BF14FC100F150C101F151C102F12E :1046C00052C103F107828FEC2FF018C100F119C11C :1046D00001F11AC102F11BC103F112000784BAC132 :1046E00066F1BBC167F1BCC168F1BDC169F14BC1E5 :1046F0004FF14CC150F14DC151F14EC152F157C172 :1047000059F158C15AF10794010166678FEF23F000 :1047100067678FEF23F068678FEF23F0696716D024 :1047200001014F679BEF23F050679BEF23F0516728 :104730009BEF23F052670AD00101000E006F000EBC :10474000016F000E026F000E036F120011B80AD045 :104750000101620E046F010E056F000E066F000E60 :10476000076F09D00101A70E046F020E056F000E3E :10477000066F000E076F66C100F167C101F168C1E5 :1047800002F169C103F182EC30F003BF27EF24F09E :104790000101000E046FA80E056F550E066F020E84 :1047A000076F66C100F167C101F168C102F169C11B :1047B00003F166C18AF167C18BF168C18CF169C1EF :1047C0008DF182EC30F003BF09D00101000E8A6F39 :1047D000A80E8B6F550E8C6F020E8D6FCBEC2FF0E9 :1047E00000C104F101C105F102C106F103C107F1E5 :1047F000000E006FA00E016F980E026F7B0E036F0C :10480000B3EC30F000C118F101C119F102C11AF185 :1048100003C11BF1000E006FA00E016F980E026F16 :104820007B0E036F8AC104F18BC105F18CC106F1C7 :104830008DC107F1B3EC30F018C104F119C105F1D5 :104840001AC106F11BC107F182EC30F01200010120 :10485000A80E006F610E016F000E026F000E036F55 :104860004FC104F150C105F151C106F152C107F128 :1048700082EC30F003AF0AD00101A80E006F610E88 :10488000016F000E026F000E036F00D0C80E006FA4 :10489000AF0E016F000E026F000E036F4FC104F1E7 :1048A00050C105F151C106F152C107F193EC30F04E :1048B00012000784BAC166F1BBC167F1BCC168F1DF :1048C000BDC169F14BC14FF14CC150F14DC151F126 :1048D0004EC152F157C159F158C15AF10794010123 :1048E00066677AEF24F067677AEF24F068677AEFFB :1048F00024F0696716D001014F6786EF24F05067F6 :1049000086EF24F0516786EF24F052670AD0010148 :10491000000E006F000E016F000E026F000E036F9D :10492000120011B80AD00101620E046F010E056F6A :10493000000E066F000E076F09D00101A70E046F6D :10494000020E056F000E066F000E076F66C100F1C4 :1049500067C101F168C102F169C103F182EC30F075 :1049600003BF3CEF25F00101000E046FA80E056F98 :10497000550E066F020E076F66C100F167C101F1A7 :1049800068C102F169C103F166C18AF167C18BF1A7 :1049900068C18CF169C18DF182EC30F003BF09D0A0 :1049A0000101000E8A6FA80E8B6F550E8C6F020EE0 :1049B0008D6F010E006F000E016F000E026F000E72 :1049C000036F8AC104F18BC105F18CC106F18DC161 :1049D00007F1B3EC30F018C104F119C105F11AC1A7 :1049E00006F11BC107F120EC31F02AC182F4040169 :1049F000300E822796EC0EF02BC182F40401300EAB :104A0000822796EC0EF02CC182F40401300E82272E :104A100096EC0EF02DC182F40401300E822796EC44 :104A20000EF02EC182F40401300E822796EC0EF0B7 :104A30002FC182F40401300E822796EC0EF030C1B3 :104A400082F40401300E822796EC0EF031C182F41C :104A50000401300E822796EC0EF032C182F404017C :104A6000300E822796EC0EF033C182F40401300E32 :104A7000822796EC0EF012004FC100F150C101F1F7 :104A800051C102F152C103F1010120EC31F0E3EC1C :104A90002EF012000401730E826F96EC0EF00401EA :104AA0002C0E826F96EC0EF0078462C166F163C132 :104AB00067F164C168F165C169F14BC14FF14CC147 :104AC00050F14DC151F14EC152F157C159F158C188 :104AD0005AF1079470EC25F0A0EC0EF09AEF2AF052 :104AE00066C100F167C101F168C102F169C103F15A :104AF000010120EC31F0E3EC2EF00401630E826F33 :104B000096EC0EF004012C0E826F96EC0EF04FC165 :104B100000F150C101F151C102F152C103F1010193 :104B200020EC31F0E3EC2EF00401660E826F96EC7F :104B30000EF004012C0E826F96EC0EF097EC31F023 :104B400059C100F15AC101F1010120EC31F0E3EC4F :104B50002EF00401740E826F96EC0EF0120010829B :104B60000401530E826F96EC0EF004012C0E826F3E :104B700096EC0EF083C32AF184C32BF185C32CF18C :104B800086C32DF187C32EF188C32FF189C330F17D :104B90008AC331F18BC332F18CC333F10101E5ECEF :104BA00031F05CEC31F000C166F101C167F102C186 :104BB00068F103C169F18EC32AF18FC32BF190C351 :104BC0002CF191C32DF192C32EF193C32FF194C315 :104BD00030F195C331F196C332F197C333F101013E :104BE000E5EC31F05CEC31F000C14FF101C150F166 :104BF00002C151F103C152F1D8EC31F099C32FF148 :104C00009AC330F19BC331F19CC332F19DC333F1A0 :104C10000101E5EC31F05CEC31F000C159F101C16A :104C20005AF170EC25F004012C0E826F96EC0EF018 :104C30002AEF26F0118E1CA002D01CAE108C1BBED9 :104C400002D01BA4108E03018251520A02E10F828E :104C500001D00F928251750A02E1108401D01094A4 :104C60008251550A02E1108601D010968351310A13 :104C700003E11382138402D013921394030183512E :104C8000660A01E056D00401660E826F96EC0EF0C3 :104C900004012C0E826F96EC0EF06EEC23F020ECEB :104CA00031F02AC182F40401300E822796EC0EF016 :104CB0002BC182F40401300E822796EC0EF02CC139 :104CC00082F40401300E822796EC0EF02DC182F49E :104CD0000401300E822796EC0EF02EC182F40401FE :104CE000300E822796EC0EF02FC182F40401300EB4 :104CF000822796EC0EF030C182F40401300E822738 :104D000096EC0EF031C182F40401300E822796EC4D :104D10000EF032C182F40401300E822796EC0EF0C0 :104D200033C182F40401300E822796EC0EF098EF26 :104D30002AF011A003D011A401D01084078410B26E :104D400003EF27F010A4E7EF26F0BAC166F1BBC16C :104D500067F1BCC168F1BDC169F1BEC16AF1BFC1F3 :104D60006BF1C0C16CF1C1C16DF1C2C16EF1C3C1C3 :104D70006FF1C4C170F1C5C171F1C6C172F1C7C193 :104D800073F1C8C174F1C9C175F1CAC176F1CBC163 :104D900077F1CCC178F1CDC179F1CEC17AF1CFC133 :104DA0007BF1D0C17CF1D1C17DF1D2C17EF1D3C103 :104DB0007FF1D4C180F1D5C181F1D6C182F1D7C1D3 :104DC00083F1D8C184F1D9C185F1EFEF26F062C13A :104DD00066F163C167F164C168F165C169F1BAC187 :104DE00086F1BBC187F1BCC188F1BDC189F14BC15E :104DF0004FF14CC150F14DC151F14EC152F157C16B :104E000059F158C15AF107940FA025EF27F001017D :104E1000966712EF27F0976712EF27F0986712EF67 :104E200027F0996716EF27F025EF27F071EC22F0B5 :104E300096C104F197C105F198C106F199C107F136 :104E400082EC30F003BF5EEF2AF071EC22F001013A :104E5000000E046F000E056F010E066F000E076F47 :104E6000B3EC30F011A02AD011A228D020EC31F000 :104E7000296701D005D004012D0E826F96EC0EF04B :104E800030C182F40401300E822796EC0EF031C15D :104E900082F40401300E822796EC0EF032C182F4C7 :104EA0000401300E822796EC0EF033C182F4040127 :104EB000300E822796EC0EF0A0EC0EF012A8C5D0B2 :104EC00012981DC01EF01E3A1E42070E1E1600014B :104ED0001E50000AD8B4F1EF27F000011E50010A5D :104EE000D8B47DEF27F000011E50020AD8B47BEF42 :104EF00027F023EF28F023EF28F097EC31F02DC0B6 :104F000001F12EC000F1D89001330033D890013365 :104F100000330101630E046F000E056F000E066F73 :104F2000000E076FB3EC30F0280E046F000E056F13 :104F3000000E066F000E076F82EC30F000C130F0FB :104F400097EC31F02BC001F1019F019D2CC000F1C5 :104F50000101A40E046F000E056F000E066F000E17 :104F6000076FB3EC30F000C12FF000C104F101C1B4 :104F700005F102C106F103C107F1640E006F000ED6 :104F8000016F000E026F000E036F82EC30F0050E11 :104F9000046F000E056F000E066F000E076FB3EC76 :104FA00030F000C104F101C105F102C106F103C1F5 :104FB00007F197EC31F030C000F182EC30F000C125 :104FC00031F031C0E8FF050F305C03E78A8423EF3E :104FD00028F031C0E8FF0A0F305C01E68A9423EF25 :104FE00028F000C124F101C125F102C126F103C15D :104FF00027F197EC31F09DEC31F01D501F0BE8CFFD :1050000000F10101640E046F000E056F000E066FC3 :10501000000E076F93EC30F024C104F125C105F1B7 :1050200026C106F127C107F182EC30F003BF02D0A0 :105030008A9401D08A8424C100F125C101F126C1DE :1050400002F127C103F19AEF2AF000C124F101C156 :1050500025F102C126F103C127F110AE4DD0109EFB :1050600000C108F101C109F102C10AF103C10BF14C :1050700020EC31F030C1E2F131C1E3F132C1E4F1B1 :1050800033C1E5F108C100F109C101F10AC102F122 :105090000BC103F101016C0E046F070E056F000ECA :1050A000066F000E076F82EC30F003BF04D00101E1 :1050B000550EE66F1CD008C100F109C101F10AC10B :1050C00002F10BC103F10101A40E046F060E056F7E :1050D000000E066F000E076F82EC30F003BF04D0A5 :1050E00001017F0EE66F03D00101FF0EE66F1F8EF8 :1050F00011AE5EEF2AF0119E24C100F125C101F12D :1051000026C102F127C103F111A005D011A203D0DD :105110000FB05EEF2AF010A495EF28F00401750E91 :10512000826F96EC0EF09AEF28F00401720E826FF7 :1051300096EC0EF004012C0E826F96EC0EF020EC33 :1051400031F02967A9EF28F00401200E826FACEF3F :1051500028F004012D0E826F96EC0EF030C182F41F :105160000401300E822796EC0EF031C182F4040166 :10517000300E822796EC0EF004012E0E826F96EC14 :105180000EF032C182F40401300E822796EC0EF04C :1051900033C182F40401300E822796EC0EF0040134 :1051A0006D0E826F96EC0EF004012C0E826F96EC61 :1051B0000EF04FC100F150C101F151C102F152C1D5 :1051C00003F1010120EC31F0E3EC2EF00401480E74 :1051D000826F96EC0EF004017A0E826F96EC0EF060 :1051E00004012C0E826F96EC0EF066C100F167C1CF :1051F00001F168C102F169C103F1010120EC31F054 :10520000E3EC2EF00401630E826F96EC0EF00401C5 :105210002C0E826F96EC0EF066C100F167C101F1B1 :1052200068C102F169C103F101010A0E046F000EA9 :10523000056F000E066F000E076F93EC30F0000E46 :10524000046F120E056F000E066F000E076FB3ECB1 :1052500030F020EC31F02AC182F40401300E8227B4 :1052600096EC0EF02BC182F40401300E822796ECEE :105270000EF02CC182F40401300E822796EC0EF061 :105280002DC182F40401300E822796EC0EF02EC15F :1052900082F40401300E822796EC0EF02FC182F4C6 :1052A0000401300E822796EC0EF030C182F4040126 :1052B000300E822796EC0EF004012E0E826F96ECD3 :1052C0000EF031C182F40401300E822796EC0EF00C :1052D00032C182F40401300E822796EC0EF033C105 :1052E00082F40401300E822796EC0EF00401730E56 :1052F000826F96EC0EF004012C0E826F96EC0EF08D :1053000097EC31F059C100F15AC101F1C4EC2BF016 :1053100013A2DAEF29F004012C0E826F96EC0EF046 :1053200086C166F187C167F188C168F189C169F1F9 :1053300071EC22F00101000E046F000E056F010EEA :10534000066F000E076FB3EC30F020EC31F02967E8 :10535000AFEF29F00401200E826FB2EF29F00401B3 :105360002D0E826F96EC0EF030C182F40401300EE7 :10537000822796EC0EF031C182F40401300E8227B0 :1053800096EC0EF004012E0E826F96EC0EF032C1F8 :1053900082F40401300E822796EC0EF033C182F4C1 :1053A0000401300E822796EC0EF004016D0E826F20 :1053B00096EC0EF003018351460A01E007D0040188 :1053C0002C0E826F96EC0EF059EC24F013A40DEF26 :1053D0002AF004012C0E826F96EC0EF013ACFBEF5A :1053E00029F00401500E826F96EC0EF0139C139876 :1053F000139A0DEF2AF013AE08EF2AF00401460EBF :10540000826F96EC0EF0139E1398139A0DEF2AF00C :105410000401530E826F96EC0EF037B024EF2AF0A1 :1054200004012C0E826F96EC0EF08BB01FEF2AF069 :105430000401440E826F96EC0EF024EF2AF0040172 :10544000530E826F96EC0EF00FB22AEF2AF00FA0E7 :105450005CEF2AF004012C0E826F96EC0EF0200E09 :10546000F86EF76AF66A04010900F5CF82F496EC4B :105470000EF00900F5CF82F496EC0EF00900F5CF9E :1054800082F496EC0EF00900F5CF82F496EC0EF063 :105490000900F5CF82F496EC0EF00900F5CF82F406 :1054A00096EC0EF00900F5CF82F496EC0EF00900B0 :1054B000F5CF82F496EC0EF0A0EC0EF00F90109E5B :1054C00012989AEF2AF00401630E826F96EC0EF0A8 :1054D00004012C0E826F96EC0EF0A0EC2AF0040171 :1054E0002C0E826F96EC0EF013EC2BF004012C0EB8 :1054F000826F96EC0EF08FEC2BF004012C0E826F75 :1055000096EC0EF00101F80E006FCD0E016F660EE5 :10551000026F030E036FB5EC2AF004012C0E826FAC :1055200096EC0EF0A5EC2BF0A0EC0EF09AEF2AF022 :10553000A0EC0EF00301C26B07901092A9EF2DF0C2 :10554000D8900E0E64EC0BF0E8CF00F10F0E64EC77 :105550000BF0E8CF01F1100E64EC0BF0E8CF02F194 :10556000110E64EC0BF0E8CF03F10101000E046FA3 :10557000000E056F010E066F000E076FB3EC30F0E2 :1055800020EC31F02AC182F40401300E822796EC1F :105590000EF02BC182F40401300E822796EC0EF03F :1055A0002CC182F40401300E822796EC0EF02DC13E :1055B00082F40401300E822796EC0EF02EC182F4A4 :1055C0000401300E822796EC0EF02FC182F4040104 :1055D000300E822796EC0EF030C182F40401300EBA :1055E000822796EC0EF031C182F40401300E82273E :1055F00096EC0EF004012E0E826F96EC0EF032C186 :1056000082F40401300E822796EC0EF033C182F44E :105610000401300E822796EC0EF004016D0E826FAD :1056200096EC0EF01200120E64EC0BF0E8CF00F1D5 :10563000130E64EC0BF0E8CF01F1140E64EC0BF0E8 :10564000E8CF02F1150E64EC0BF0E8CF03F1010195 :105650000A0E046F000E056F000E066F000E076F36 :1056600093EC30F0000E046F120E056F000E066F03 :10567000000E076FB3EC30F020EC31F02AC182F459 :105680000401300E822796EC0EF02BC182F4040147 :10569000300E822796EC0EF02CC182F40401300EFD :1056A000822796EC0EF02DC182F40401300E822781 :1056B00096EC0EF02EC182F40401300E822796EC97 :1056C0000EF02FC182F40401300E822796EC0EF00A :1056D00030C182F40401300E822796EC0EF00401F2 :1056E0002E0E826F96EC0EF031C182F40401300E62 :1056F000822796EC0EF032C182F40401300E82272C :1057000096EC0EF033C182F40401300E822796EC41 :105710000EF00401730E826F96EC0EF012000A0E6A :1057200064EC0BF0E8CF00F10B0E64EC0BF0E8CF6B :1057300001F10C0E64EC0BF0E8CF02F10D0E64ECFD :105740000BF0E8CF03F1C4EF2BF0060E64EC0BF086 :10575000E8CF00F1070E64EC0BF0E8CF01F1080E82 :1057600064EC0BF0E8CF02F1090E64EC0BF0E8CF2B :1057700003F1C4EF2BF0010197EC31F0078457C11E :1057800000F158C101F107940101E80E046F800E89 :10579000056F000E066F000E076F93EC30F0000EE1 :1057A000046F040E056F000E066F000E076FB3EC5A :1057B00030F0880E046F130E056F000E066F000E9A :1057C000076F82EC30F00A0E046F000E056F000EBA :1057D000066F000E076FB3EC30F020EC31F00101E2 :1057E0002967F8EF2BF00401200E826FFBEF2BF0FE :1057F00004012D0E826F96EC0EF030C182F404018C :10580000300E822796EC0EF031C182F40401300E86 :10581000822796EC0EF032C182F40401300E82270A :1058200096EC0EF004012E0E826F96EC0EF033C152 :1058300082F40401300E822796EC0EF00401430E30 :10584000826F96EC0EF0120087C32AF188C32BF109 :1058500089C32CF18AC32DF18BC32EF18CC32FF198 :105860008DC330F18EC331F190C332F191C333F166 :105870000101296BE5EC31F05CEC31F00101000E27 :10588000046F000E056F010E066F000E076F93EC9C :1058900030F00E0E0C6E00C10BF04DEC0BF00F0E45 :1058A0000C6E01C10BF04DEC0BF0100E0C6E02C132 :1058B0000BF04DEC0BF0110E0C6E03C10BF04DEC28 :1058C0000BF004017A0E826F96EC0EF004012C0EA0 :1058D000826F96EC0EF00401350E826F96EC0EF09E :1058E00004012C0E826F96EC0EF0A0EC2AF047EF2C :1058F00022F087C32AF188C32BF189C32CF18AC314 :105900002DF18BC32EF18CC32FF18DC330F18EC3DB :1059100031F190C332F191C333F10101296BE5EC10 :1059200031F05CEC31F0880E046F130E056F000E41 :10593000066F000E076F87EC30F0000E046F040E48 :10594000056F000E066F000E076F93EC30F001013B :10595000E80E046F800E056F000E066F000E076FD5 :10596000B3EC30F00A0E0C6E00C10BF04DEC0BF0F6 :105970000B0E0C6E01C10BF04DEC0BF00C0E0C6E0F :1059800002C10BF04DEC0BF00D0E0C6E03C10BF0D1 :105990004DEC0BF004017A0E826F96EC0EF00401D0 :1059A0002C0E826F96EC0EF00401360E826F96EC90 :1059B0000EF004012C0E826F96EC0EF08FEC2BF0A3 :1059C00047EF22F087C32AF188C32BF189C32CF15A :1059D0008AC32DF18BC32EF18CC32FF18DC330F10F :1059E0008FC331F190C332F191C333F10101E5EC82 :1059F00031F05CEC31F0000E046F120E056F000EFA :105A0000066F000E076F93EC30F001010A0E046F71 :105A1000000E056F000E066F000E076FB3EC30F03E :105A2000120E0C6E00C10BF04DEC0BF0130E0C6E51 :105A300001C10BF04DEC0BF0140E0C6E02C10BF01B :105A40004DEC0BF0150E0C6E03C10BF04DEC0BF092 :105A500004017A0E826F96EC0EF004012C0E826F18 :105A600096EC0EF00401370E826F96EC0EF00401F6 :105A70002C0E826F96EC0EF013EC2BF047EF22F019 :105A800087C32AF188C32BF189C32CF18AC32DF176 :105A90008BC32EF18CC32FF18DC330F18EC331F146 :105AA00090C332F191C333F10101296BE5EC31F080 :105AB0005CEC31F0880E046F130E056F000E066F5C :105AC000000E076F87EC30F0000E046F040E056FB8 :105AD000000E066F000E076F93EC30F00101E80E28 :105AE000046F800E056F000E066F000E076FB3EC9B :105AF00030F0060E0C6E00C10BF04DEC0BF0070EF3 :105B00000C6E01C10BF04DEC0BF0080E0C6E02C1D7 :105B10000BF04DEC0BF0090E0C6E03C10BF04DECCD :105B20000BF004017A0E826F96EC0EF004012C0E3D :105B3000826F96EC0EF00401380E826F96EC0EF038 :105B400004012C0E826F96EC0EF0A5EC2BF047EFC3 :105B500022F007A81CEF2EF00101800E006F1A0E34 :105B6000016F060E026F000E036F4BC104F14CC1B2 :105B700005F14DC106F14EC107F182EC30F003BFD3 :105B800062EF2EF0DDEC2EF04BC100F14CC101F1C3 :105B90004DC102F14EC103F107828FEC2FF018C105 :105BA00004F119C105F11AC106F11BC107F1F80E84 :105BB000006FCD0E016F660E026F030E036F82EC55 :105BC00030F00E0E0C6E00C10BF04DEC0BF00F0E12 :105BD0000C6E01C10BF04DEC0BF0100E0C6E02C1FF :105BE0000BF04DEC0BF0110E0C6E03C10BF04DECF5 :105BF0000BF00784010197EC31F057C100F158C157 :105C000001F107940A0E0C6E00C10BF04DEC0BF085 :105C10000B0E0C6E01C10BF04DEC0BF00C0E0C6E6C :105C200002C10BF04DEC0BF00D0E0C6E03C10BF02E :105C30004DEC0BF062EF2EF007AA62EF2EF0078416 :105C4000010197EC31F057C100F158C101F10794FF :105C5000060E0C6E00C10BF04DEC0BF0070E0C6E37 :105C600001C10BF04DEC0BF0080E0C6E02C10BF0F5 :105C70004DEC0BF0090E0C6E03C10BF04DEC0BF06C :105C8000078462C100F163C101F164C102F165C121 :105C900003F10794120E0C6E00C10BF04DEC0BF0EB :105CA000130E0C6E01C10BF04DEC0BF0140E0C6ECC :105CB00002C10BF04DEC0BF0150E0C6E03C10BF096 :105CC0004DEC0BF00798079A0401805181197F0B66 :105CD0000DE09EA8FED714EE00F081517F0BE12667 :105CE000E750812B0F01AD6E64EF2EF005012F51AF :105CF000000AD8B4A5EF2EF081BA8AEF2EF015B2C3 :105D0000A5EF2EF005012F51010AD8B4A3EF2EF014 :105D10009CEF2EF005012F51000AD8B45CEF39F04A :105D200005012F51010AD8B4A3EF2EF0000116503F :105D3000050AD8B45CEF39F081B8A5EF2EF0E0EC9D :105D400032F0DEEC33F0F5EC38F0C4EF0DF018C1B2 :105D500000F119C101F11AC102F11BC103F1000EDA :105D6000046F000E056F010E066F000E076FB3EC97 :105D700030F029A1D2EF2EF02051D8B4D2EF2EF07E :105D800018C100F119C101F11AC102F11BC103F1DF :105D9000000E046F000E056F0A0E066F000E076FEF :105DA000B3EC30F01200010104510013055101134E :105DB000065102130751031312000101186B196BEE :105DC0001A6B1B6B12002AC182F40401300E822769 :105DD00096EC0EF02BC182F40401300E822796EC73 :105DE0000EF02CC182F40401300E822796EC0EF0E6 :105DF0002DC182F40401300E822796EC0EF02EC1E4 :105E000082F40401300E822796EC0EF02FC182F44A :105E10000401300E822796EC0EF030C182F40401AA :105E2000300E822796EC0EF031C182F40401300E60 :105E3000822796EC0EF032C182F40401300E8227E4 :105E400096EC0EF033C182F40401300E822796ECFA :105E50000EF012002FC182F40401300E822796EC5E :105E60000EF030C182F40401300E822796EC0EF061 :105E700031C182F40401300E822796EC0EF032C15B :105E800082F40401300E822796EC0EF033C182F4C6 :105E90000401300E822796EC0EF01200060E216EE1 :105EA000060E226E060E236E212E54EF2FF0222EA8 :105EB00054EF2FF0232E54EF2FF08B84020E216E1F :105EC000020E226E020E236E212E64EF2FF0222E80 :105ED00064EF2FF0232E64EF2FF08B941200FF0E4F :105EE000226E22C023F0030E216E8B84212E75EFCB :105EF0002FF0030E216E232E75EF2FF08B9422C00E :105F000023F0030E216E212E83EF2FF0030E216E5E :105F1000233E83EF2FF0222E71EF2FF012000101AC :105F2000005305E1015303E1025301E1002B52EC60 :105F300030F097EC31F03951006F3A51016F420E59 :105F4000046F4B0E056F000E066F000E076F93EC8B :105F500030F000C104F101C105F102C106F103C135 :105F600007F118C100F119C101F11AC102F11BC1F9 :105F700003F107B2C0EF2FF087EC30F0C2EF2FF043 :105F800082EC30F000C118F101C119F102C11AF11F :105F900003C11BF1120097EC31F059C100F15AC155 :105FA00001F1060E64EC0BF0E8CF04F1070E64EC8F :105FB0000BF0E8CF05F1080E64EC0BF0E8CF06F12A :105FC000090E64EC0BF0E8CF07F182EC30F000C171 :105FD00024F101C125F102C126F103C127F1290EE7 :105FE000046F000E056F000E066F000E076F93EC36 :105FF00030F0EE0E046F430E056F000E066F000EBC :10600000076F87EC30F024C104F125C105F126C1EA :1060100006F127C107F193EC30F000C11CF101C17A :106020001DF102C11EF103C11FF1120E64EC0BF051 :10603000E8CF04F1130E64EC0BF0E8CF05F1140E79 :1060400064EC0BF0E8CF06F1150E64EC0BF0E8CF32 :1060500007F10D0E006F000E016F000E026F000EB3 :10606000036F93EC30F0180E046F000E056F000EF6 :10607000066F000E076FB3EC30F01CC104F11DC1B8 :1060800005F11EC106F11FC107F187EC30F06A0E61 :10609000046F2A0E056F000E066F000E076F82EC6C :1060A00030F01200BF0EFA6E200E3A6F396BD890A6 :1060B0000037013702370337D8B063EF30F03A2F9B :1060C00058EF30F039073A070353D8B412000331C0 :1060D000070B80093F6F03390F0B010F396F80ECFD :1060E0005FF0406F390580EC5FF0405D405F396BD9 :1060F0003F33D8B0392739333FA978EF30F04051DA :10610000392712000101BCEC31F0D8B012000101B6 :1061100003510719346F7FEC31F0D8900751031900 :1061200034AF800F12000101346BA3EC31F0D8A022 :10613000B9EC31F0D8B012008EEC31F097EC31F0C0 :106140001F0E366FCFEC31F00B35D8B07FEC31F04D :10615000D8A00335D8B01200362FA2EF30F034B1FA :10616000A6EC31F012000101346B04510511061147 :1061700007110008D8A0A3EC31F0D8A0B9EC31F099 :10618000D8B01200086B096B0A6B0B6BCFEC31F0C7 :106190001F0E366FCFEC31F007510B5DD8A4DDEF49 :1061A00030F006510A5DD8A4DDEF30F00551095DED :1061B000D8A4DDEF30F00451085DD8A0F0EF30F046 :1061C0000451085F0551D8A0053D095F0651D8A0CC :1061D000063D0A5F0751D8A0073D0B5FD8900081AC :1061E000362FCAEF30F034B1A6EC31F0346BA3ECAB :1061F00031F0D890D3EC31F007510B5DD8A40DEFFE :1062000031F006510A5DD8A40DEF31F00551095D5A :10621000D8A40DEF31F00451085DD8A01CEF31F087 :10622000003F1CEF31F0013F1CEF31F0023F1CEF4B :1062300031F0032BD8B4120034B1A6EC31F01200C7 :106240000101346BA3EC31F0D8B01200D8EC31F07E :10625000200E366F003701370237033711EE33F067 :106260000A0E376FE7360A0EE75CD8B0E76EE552E4 :10627000372F32EF31F0362F2AEF31F034B1298148 :10628000D8901200D8EC31F0200E366F003701376D :106290000237033711EE33F00A0E376FE7360A0E76 :1062A000E75CD8B0E76EE552372F4EEF31F0362F6E :1062B00046EF31F0D890120001010A0E346F200E23 :1062C000366F11EE29F03451376F0A0ED890E6522E :1062D000D8B0E726E732372F67EF31F003330233C8 :1062E00001330033362F61EF31F0E750FF0FD8A0B4 :1062F0000335D8B0120029B1A6EC31F012000451D8 :1063000000270551D8B0053D01270651D8B0063DFC :1063100002270751D8B0073D032712000051086F2C :106320000151096F02510A6F03510B6F12000101F5 :10633000006B016B026B036B12000101046B056BB8 :10634000066B076B12000335D8A012000351800BB7 :10635000001F011F021F031F003FB6EF31F0013F76 :10636000B6EF31F0023FB6EF31F0032B342B0325AB :1063700012000735D8A012000751800B041F051F1B :10638000061F071F043FCCEF31F0053FCCEF31F083 :10639000063FCCEF31F0072B342B072512000037D6 :1063A000013702370337083709370A370B3712002E :1063B0000101296B2A6B2B6B2C6B2D6B2E6B2F6BBA :1063C000306B316B326B336B120001012A510F0BB2 :1063D0002A6F2B510F0B2B6F2C510F0B2C6F2D5144 :1063E0000F0B2D6F2E510F0B2E6F2F510F0B2F6F89 :1063F00030510F0B306F31510F0B316F32510F0B8A :10640000326F33510F0B336F120000C124F101C101 :1064100025F102C126F103C127F104C100F105C134 :1064200001F106C102F107C103F124C104F125C144 :1064300005F126C106F127C107F1120010A806D008 :106440008994000EC76E220EC66E05D08984000E98 :10645000C76E220EC66E050EE82EFED7120010A8DB :1064600002D0898401D08994050EE82EFED712004F :106470001EEC32F09E96C69E000EC96EFF0E9EB6B2 :1064800002D0E82EFCD79E96C69E000EC96EFF0E67 :106490009EB602D0E82EFCD7C9CFAFF59E96C69E19 :1064A000000EC96EFF0E9EB602D0E82EFCD7C9CFF3 :1064B000B0F59E96C69E000EC96EFF0E9EB602D027 :1064C000E82EFCD7C9CFB1F59E96C69E000EC96EC8 :1064D000FF0E9EB602D0E82EFCD7C9CFB2F59E962D :1064E000C69E000EC96EFF0E9EB602D0E82EFCD7E7 :1064F000C9CFB3F59E96C69E000EC96EFF0E9EB61E :1065000002D0E82EFCD7C9CFB4F59E96C69E000EE9 :10651000C96EFF0E9EB602D0E82EFCD7C9CFB5F5E6 :106520002FEC32F012001EEC32F09E96C69E800ECA :10653000C96EFF0E9EB602D0E82EFCD79E96C69E70 :10654000AFC5C9FFFF0E9EB602D0E82EFCD79E96BF :10655000C69EB0C5C9FFFF0E9EB602D0E82EFCD77E :106560009E96C69EB1C5C9FFFF0E9EB602D0E82E0C :10657000FCD79E96C69EB2C5C9FFFF0E9EB602D03E :10658000E82EFCD79E96C69EB3C5C9FFFF0E9EB6E9 :1065900002D0E82EFCD79E96C69EB4C5C9FFFF0E5A :1065A0009EB602D0E82EFCD79E96C69EB5C5C9FF02 :1065B000FF0E9EB602D0E82EFCD72FEC32F0120070 :1065C0001EEC32F09E96C69E070EC96EFF0E9EB65A :1065D00002D0E82EFCD79E96C69E000EC96EFF0E16 :1065E0009EB602D0E82EFCD7C9CFAFF59E96C69EC8 :1065F000000EC96EFF0E9EB602D0E82EFCD7C9CFA2 :10660000B0F59E96C69E000EC96EFF0E9EB602D0D5 :10661000E82EFCD7C9CFB1F59E96C69E000EC96E76 :10662000FF0E9EB602D0E82EFCD7C9CFB2F52FECF4 :1066300032F01EEC32F09E96C69E25C0C9FFFF0EBA :106640009EB602D0E82EFCD79E96C69E000EC96E5E :10665000FF0E9EB602D0E82EFCD7C9CFB6F52FECC0 :1066600032F012001EEC32F09E96C69E870EC96E66 :10667000FF0E9EB602D0E82EFCD79E96C69EAFC5F2 :10668000C9FFFF0E9EB602D0E82EFCD79E96C69E8E :10669000B0C5C9FFFF0E9EB602D0E82EFCD79E966D :1066A000C69EB1C5C9FFFF0E9EB602D0E82EFCD72C :1066B0009E96C69EB2C5C9FFFF0E9EB602D0E82EBA :1066C000FCD72FEC32F01EEC32F09E96C69E26C010 :1066D000C9FFFF0E9EB602D0E82EFCD79E96C69E3E :1066E000B6C5C9FFFF0E9EB602D0E82EFCD72FEC30 :1066F00032F012001EEC32F09E96C69E870EC96ED6 :10670000FF0E9EB602D0E82EFCD79E96C69E000EC7 :10671000C96EFF0E9EB602D0E82EFCD79E96C69E8E :10672000800EC96EFF0E9EB602D0E82EFCD79E9654 :10673000C69E800EC96EFF0E9EB602D0E82EFCD714 :106740009E96C69E800EC96EFF0E9EB602D0E82EA3 :10675000FCD72FEC32F012001EEC32F09E96C69E53 :10676000870EC96EFF0E9EB602D0E82EFCD79E960D :10677000C69E000EC96EFF0E9EB602D0E82EFCD754 :106780009E96C69E000EC96EFF0E9EB602D0E82EE3 :10679000FCD79E96C69E800EC96EFF0E9EB602D096 :1067A000E82EFCD79E96C69E800EC96EFF0E9EB642 :1067B00002D0E82EFCD72FEC32F0120010A817D030 :1067C0001EEC32F09E96C69E8F0EC96EFF0E9EB6D0 :1067D00002D0E82EFCD79E96C69E000EC96EFF0E14 :1067E0009EB602D0E82EFCD72FEC32F01200E0EC7F :1067F00032F0120010A82DD01EEC32F09E96C69EEC :1068000026C0C9FFFF0E9EB602D0E82EFCD79E968A :10681000C69E450EC96EFF0E9EB602D0E82EFCD76E :106820002FEC32F01EEC32F09E96C69E8F0EC96E93 :10683000FF0E9EB602D0E82EFCD79E96C69E000E96 :10684000C96EFF0E9EB602D0E82EFCD72FEC32F0B8 :1068500012001EEC32F09E96C69E26C0C9FFFF0EA7 :106860009EB602D0E82EFCD79E96C69E010EC96E3B :10687000FF0E9EB602D0E82EFCD72FEC32F01EECB5 :1068800032F09E96C69E910EC96EFF0E9EB602D045 :10689000E82EFCD79E96C69EA50EC96EFF0E9EB62C :1068A00002D0E82EFCD72FEC32F012001EEC32F0B2 :1068B0009E96C69E26C0C9FFFF0E9EB602D0E82E49 :1068C000FCD79E96C69E810EC96EFF0E9EB602D064 :1068D000E82EFCD72FEC32F012001EEC32F09E9620 :1068E000C69E26C0C9FFFF0E9EB602D0E82EFCD77A :1068F0009E96C69E010EC96EFF0E9EB602D0E82E71 :10690000FCD72FEC32F012001EEC32F09E96C69EA1 :10691000910EC96EFF0E9EB602D0E82EFCD79E9651 :10692000C69EA50EC96EFF0E9EB602D0E82EFCD7FD :106930002FEC32F012001EEC32F09E96C69E910EA5 :10694000C96EFF0E9EB602D0E82EFCD79E96C69E5C :10695000000EC96EFF0E9EB602D0E82EFCD72FECBB :1069600032F012000501256B266B276B286B899A84 :10697000400EC76E200EC66E9E96C69E030EC96E52 :10698000FF0E9EB602D0E82EFCD79E96C69E27C567 :10699000C9FFFF0E9EB602D0E82EFCD79E96C69E7B :1069A00026C5C9FFFF0E9EB602D0E82EFCD79E96E4 :1069B000C69E25C5C9FFFF0E9EB602D0E82EFCD7A5 :1069C0009E96C69EC952FF0E9EB602D0E82EFCD7F8 :1069D000898A0F01C950FF0A01E1120005012E51F9 :1069E000130A05E005012E51170A0CE012000501FB :1069F000F00E256FFF0E266F0F0E276F000E286F0B :106A00000BEF35F00501F00E256FFF0E266FFF0E20 :106A1000276F000E286F899A400EC76E200EC66E33 :106A20009E96C69E030EC96EFF0E9EB602D0E82E3D :106A3000FCD79E96C69E27C5C9FFFF0E9EB602D004 :106A4000E82EFCD79E96C69E26C5C9FFFF0E9EB6B1 :106A500002D0E82EFCD79E96C69E25C5C9FFFF0E24 :106A60009EB602D0E82EFCD79E96C69EC952FF0E57 :106A70009EB602D0E82EFCD7898A0F01C950FF0AC2 :106A80001DE005012E51130A05E005012E51170ADC :106A90000BE012000501000E256F000E266F100E90 :106AA000276F000E286F12000501000E256F000EE3 :106AB000266F000E276F010E286F12000501256B4F :106AC000266B276B286B05012E51130A05E0050183 :106AD0002E51170A0CE012000501000E216F000E66 :106AE000226F080E236F000E246F80EF35F0050132 :106AF000000E216F000E226F800E236F000E246F98 :106B000021C500F122C501F123C502F124C503F11D :106B100025C504F126C505F127C506F128C507F1ED :106B2000D3EC2EF000C125F501C126F502C127F5F1 :106B300003C128F5899A400EC76E200EC66E9E9638 :106B4000C69E030EC96EFF0E9EB602D0E82EFCD77D :106B50009E96C69E27C5C9FFFF0E9EB602D0E82EA0 :106B6000FCD79E96C69E26C5C9FFFF0E9EB602D0D4 :106B7000E82EFCD79E96C69E25C5C9FFFF0E9EB681 :106B800002D0E82EFCD79E96C69EC952FF0E9EB636 :106B900002D0E82EFCD7898AC950FF0A08E104C157 :106BA00025F505C126F506C127F507C128F5D890BA :106BB000050124332333223321332151F00B216F7C :106BC00005012167EBEF35F02267EBEF35F0236726 :106BD000EBEF35F0246780EF35F00501100E252727 :106BE000E86A2623E86A2723E86A28231200E86A6D :106BF00005012E51130A06E005012E51170A0BE07C :106C0000020E120005012851000A03E12751F00B82 :106C100007E0010E120005012851000A01E0010EF3 :106C2000120029C500F12AC501F12BC502F12CC5BE :106C300003F125C504F126C505F127C506F128C5D0 :106C400007F182EC30F003BF1200F7EC35F0D8A466 :106C500089EF36F0899A400EC76E200EC66E9E965A :106C6000C69E060EC96EFF0E9EB602D0E82EFCD759 :106C7000898A899A9E96C69E020EC96EFF0E9EB69E :106C800002D0E82EFCD79E96C69E27C5C9FFFF0EF0 :106C90009EB602D0E82EFCD79E96C69E26C5C9FF9A :106CA000FF0E9EB602D0E82EFCD79E96C69E25C546 :106CB000C9FFFF0E9EB602D0E82EFCD79E96C69E58 :106CC000000EC96EFF0E9EB602D0E82EFCD7898A50 :106CD000899A9E96C69E050EC96EFF0E9EB602D07C :106CE000E82EFCD79E96C69EC952FF0E9EB602D0D5 :106CF000E82EFCD7C9B072EF36F0898A0501100E74 :106D00002527E86A2623E86A2723E86A282311EF63 :106D100036F01200899A400EC76E200EC66E9E96FF :106D2000C69E060EC96EFF0E9EB602D0E82EFCD798 :106D3000898A899A9E96C69EC70EC96EFF0E9EB618 :106D400002D0E82EFCD7898A0501256B266B276BBC :106D5000286B1200899A400EC76E200EC66E9E9652 :106D6000C69E050EC96EFF0E9EB602D0E82EFCD759 :106D70009E96C69EC952FF0E9EB602D0E82EFCD744 :106D8000C9CF37F5898A1200899A400EC76E200E46 :106D9000C66E9E96C69EB90EC96EFF0E9EB602D0F6 :106DA000E82EFCD7898A1200899A400EC76E200E01 :106DB000C66E9E96C69EAB0EC96EFF0E9EB602D0E4 :106DC000E82EFCD7898AFF0EE82EFED71200F7ECDA :106DD00035F0D8A41200899A400EC76E200EC66EF8 :106DE0009E96C69E030EC96EFF0E9EB602D0E82E7A :106DF000FCD79E96C69E27C5C9FFFF0E9EB602D041 :106E0000E82EFCD79E96C69E26C5C9FFFF0E9EB6ED :106E100002D0E82EFCD79E96C69E25C5C9FFFF0E60 :106E20009EB602D0E82EFCD79E96C69EC952FF0E93 :106E30009EB602D0E82EFCD7898A0F01C950FF0AFE :106E4000D8A466EF38F00501FE0E376F0501FF0E7E :106E5000536FFF0E546FFF0E556FFF0E566F15A642 :106E60003799158638EC32F0AFC538F5B0C539F52D :106E7000B1C53AF5B2C53BF5B3C53CF5B4C53DF572 :106E8000B5C53EF50784BAC166F1BBC167F1BCC1A7 :106E900068F1BDC169F14BC14FF14CC150F14DC119 :106EA00051F14EC152F157C159F158C15AF1000187 :106EB0001650010AD8B46BEF37F000011650020AE1 :106EC000D8B490EF37F000011650040AD8B4B5EFEB :106ED00037F066EF38F00501476B486B496B4A6B3A :106EE00005014B6B4C6B4D6B4E6B05014F6B506B43 :106EF000516B526B8BA0379B71EC22F000C1DAF121 :106F000001C1DBF102C1DCF103C1DDF100C13FF5DC :106F100001C140F502C141F503C142F5D4EF37F09C :106F20000501476B486B496B4A6B05014B6B4C6B1A :106F30004D6B4E6B05014F6B506B516B526B71EC8F :106F400022F000C1DAF101C1DBF102C1DCF103C1C1 :106F5000DDF16EEC23F000C147F501C148F502C137 :106F600049F503C14AF566EF38F0379BDAC13FF5C2 :106F7000DBC140F5DCC141F5DDC142F571EC22F029 :106F800000C14BF501C14CF502C14DF503C14EF5F1 :106F90006EEC23F000C14FF501C150F502C151F56F :106FA00003C152F5D4EF37F005016167DFEF37F029 :106FB0006267DFEF37F06367DFEF37F06467E3EFB7 :106FC00037F0F8EF37F0DAC100F1DBC101F1DCC1D5 :106FD00002F1DDC103F161C504F162C505F163C5CC :106FE00006F164C507F182EC30F003BF66EF38F0BC :106FF00059C143F55AC144F5B9C545F50501110E0E :10700000326F899A400EC76E200EC66E9E96C69E3F :10701000060EC96EFF0E9EB602D0E82EFCD7898AF6 :10702000899A9E96C69E020EC96EFF0E9EB602D02B :10703000E82EFCD79E96C69E27C5C9FFFF0E9EB6BA :1070400002D0E82EFCD79E96C69E26C5C9FFFF0E2D :107050009EB602D0E82EFCD79E96C69E25C5C9FFD7 :10706000FF0E9EB602D0E82EFCD725EE37F0322F69 :1070700002D046EF38F09E96C69EDECFC9FFFF0EC7 :107080009EB602D0E82EFCD737EF38F0898A899A6D :107090009E96C69E050EC96EFF0E9EB602D0E82EC5 :1070A000FCD79E96C69EC952FF0E9EB602D0E82E11 :1070B000FCD7C9B051EF38F0898A0501100E252799 :1070C000E86A2623E86A2723E86A282315900794AC :1070D000120021C500F122C501F123C502F124C52A :1070E00003F1899A400EC76E200EC66E9E96C69E0C :1070F0000B0EC96EFF0E9EB602D0E82EFCD79E96F0 :10710000C69E02C1C9FFFF0E9EB602D0E82EFCD774 :107110009E96C69E01C1C9FFFF0E9EB602D0E82E04 :10712000FCD79E96C69E00C1C9FFFF0E9EB602D038 :10713000E82EFCD79E96C69EC952FF0E9EB602D080 :10714000E82EFCD725EE37F00501100E326F9E9623 :10715000C69EC952FF0E9EB602D0E82EFCD7C9CFFC :10716000DEFF322FA7EF38F0898A1200899A400E8D :10717000C76E200EC66E9E96C69E900EC96EFF0EFE :107180009EB602D0E82EFCD79E96C69E000EC96E13 :10719000FF0E9EB602D0E82EFCD79E96C69E000E2D :1071A000C96EFF0E9EB602D0E82EFCD79E96C69EF4 :1071B000000EC96EFF0E9EB602D0E82EFCD79E963A :1071C000C69EC952FF0E9EB602D0E82EFCD7C9CF8C :1071D0002DF59E96C69EC952FF0E9EB602D0E82E91 :1071E000FCD7C9CF2EF5898A120038EC32F00501A0 :1071F0002F51010A5FE005012F51020A16E0050137 :107200002F51030A19E005012F51040A24E005015A :107210002F51050A2BE005012F51060A39E005011F :107220002F51070A3FE05AEF39F0602F58EF39F03D :107230005FC560F55AEF39F0B0C500F101010F0EDE :10724000001701010051000A35E001010051050A53 :1072500031E058EF39F0B0C500F101010F0E001711 :1072600001010051000A26E058EF39F00501B05144 :10727000000A20E00501B051150A1CE00501B051DB :10728000300A18E00501B051450A14E058EF39F012 :107290000501B051000A0EE00501B051300A0AE0C4 :1072A00058EF39F00501B051000A04E058EF39F009 :1072B00015901200158012008B904EEC2FF0B9C57E :1072C000E8FFD70802E34EEC2FF0B9C5E8FFC80885 :1072D00002E34EEC2FF0B9C5E8FFB90802E34EEC2B :1072E0002FF0B9C5E8FFAA0802E34EEC2FF0B9C5AC :1072F000E8FF9B0802E34EEC2FF0C4EC36F0F29C62 :10730000F29E8B94C69AC2909482948C720ED36E25 :10731000D3A4FED789968A909390F29AF2949D9086 :107320009E909D929E92F298F292DEEC33F0FF0EC8 :10733000E8CF00F0E82EFED7002EFCD7F290F286C0 :10734000815081A8A6EF39F0F29E0300700ED36E33 :10735000F296F290158403806FEC2FF09AEF0BF009 :10BF0000E844F926000C160C2B0C3F0C520C640C68 :10BF1000760C860C960CA50CB30CC10CCF0CDC0C6B :06BF2000E80CF40C000C1B :0200000400F00A :0100C800FE39 :00000001FF ./firmware/SQM-LU-DL-4-6-79.hex0000644000175000017500000022373214310757546015520 0ustar anthonyanthony:020000040000FA :0408000098EF0BF072 :1008100003B275EF05F0F2B493EF05F09EB09BEFD5 :1008200005F09EB2A3EF05F0F2A81AEF04F0F2B2C1 :1008300023EF04F0F2B01FEF04F047EF0BF0F29655 :10084000F29047EF0BF0CD90F2929EA02DEF04F0C6 :100850000101533F2DEF04F0542BB2C1B6F1B3C1E7 :10086000B7F1B4C1B8F1B5C1B9F1AEC1B2F1AFC120 :10087000B3F1B0C1B4F1B1C1B5F1AAC1AEF1ABC130 :10088000AFF1ACC1B0F1ADC1B1F1A6C1AAF1A7C140 :10089000ABF1A8C1ACF1A9C1ADF1A2C1A6F1A3C150 :1008A000A7F1A4C1A8F1A5C1A9F19EC1A2F19FC160 :1008B000A3F1A0C1A4F1A1C1A5F19AC19EF19BC170 :1008C0009FF19CC1A0F19DC1A1F1CECF9AF1CFCFF4 :1008D0009BF153C19CF154C19DF1CF6ACE6A0101D5 :1008E000536B546B9E90CD800FBC0F8E0FBA7CEF74 :1008F00004F00F8A47EF0BF013880F8C0FBEB9EF8F :1009000004F09AC19EF19BC19FF19CC1A0F19DC1D1 :10091000A1F19EC1A2F19FC1A3F1A0C1A4F1A1C107 :10092000A5F1A2C1A6F1A3C1A7F1A4C1A8F1A5C1D7 :10093000A9F1A6C1AAF1A7C1ABF1A8C1ACF1A9C1A7 :10094000ADF1AAC1AEF1ABC1AFF1ACC1B0F1ADC177 :10095000B1F1AEC1B2F1AFC1B3F1B0C1B4F1B1C147 :10096000B5F1B2C1B6F1B3C1B7F1B4C1B8F1B5C117 :10097000B9F101015E6B5F6B606B616B9A515E2731 :100980009B515F239C5160239D5161239E515E27A3 :100990009F515F23A0516023A1516123A2515E2783 :1009A000A3515F23A4516023A5516123A6515E2763 :1009B000A7515F23A8516023A9516123AA515E2743 :1009C000AB515F23AC516023AD516123AE515E2723 :1009D000AF515F23B0516023B1516123B2515E2703 :1009E000B3515F23B4516023B5516123B6515E27E3 :1009F000B7515F23B8516023B9516123D8900101E9 :100A0000613360335F335E33D8900101613360330B :100A10005F335E33D8900101613360335F335E33FF :100A200000C10CF101C10DF102C10EF103C10FF1C2 :100A300004C110F105C111F106C112F107C113F192 :100A400008C114F109C115F10AC116F10BC117F162 :100A500034C135F111B838EF05F00101620E046FB1 :100A6000010E056F000E066F000E076F41EF05F0D7 :100A70000101A70E046F020E056F000E066F000E37 :100A8000076F5EC100F15FC101F160C102F161C198 :100A900003F182EC30F003BF04D01CBE02D01CA0D6 :100AA000108C11A059EF05F010BA59EF05F00F8026 :100AB000108A0CC100F10DC101F10EC102F10FC18C :100AC00003F110C104F111C105F112C106F113C106 :100AD00007F114C108F115C109F116C10AF117C1D6 :100AE0000BF135C134F147EF0BF00392ABB2AB9889 :100AF000AB88030103EE00F080517F0BE92604C0B0 :100B0000EFFF802B8151805D700BD8A48B82000099 :100B10008051815D700BD8A48B9281518019D8B41B :100B2000079047EF0BF0F2940101453F47EF0BF0C0 :100B3000462B47EF0BF09E900101533F47EF0BF020 :100B4000542B47EF0BF09E9211B843EF08F00400CE :100B500066A1ABEF05F08BB4B5EF05F010ACB5EFC7 :100B600005F08B84109CB6EF05F08B94077C07ACE6 :100B7000D1EF05F0C274C2B4CBEF05F0C3CFB7F527 :100B8000C4CFB8F50501D890B833B733D890B8338F :100B9000B733D2EF05F0C3CF55F1C4CF56F1D2EF42 :100BA00005F0C28207B444EF06F047C14BF148C1DB :100BB0004CF149C14DF14AC14EF15EC162F15FC1D4 :100BC00063F160C164F161C165F113A8EAEF05F05A :100BD000138C13989AC1BAF19BC1BBF19CC1BCF1B3 :100BE0009DC1BDF19EC1BEF19FC1BFF1A0C1C0F1C9 :100BF000A1C1C1F1A2C1C2F1A3C1C3F1A4C1C4F199 :100C0000A5C1C5F1A6C1C6F1A7C1C7F1A8C1C8F168 :100C1000A9C1C9F1AAC1CAF1ABC1CBF1ACC1CCF138 :100C2000ADC1CDF1AEC1CEF1AFC1CFF1B0C1D0F108 :100C3000B1C1D1F1B2C1D2F1B3C1D3F1B4C1D4F1D8 :100C4000B5C1D5F1B6C1D6F1B7C1D7F1B8C1D8F1A8 :100C5000B9C1D9F1B7C5B9F5B8C5BAF5B9C5BBF5CC :100C6000BAC5BCF5010155515B2756515C23E86AB2 :100C70005D230E2E44EF06F05CC157F15DC158F1C3 :100C80005B6B5C6B5D6B078E0201002F47EF0BF017 :100C90003C0E006F1D50E00BE00AE86612881BBE98 :100CA00002D01BB4108E00C10CF101C10DF102C1C4 :100CB0000EF103C10FF104C110F105C111F106C11C :100CC00012F107C113F108C114F109C115F10AC1EC :100CD00016F10BC117F134C135F181AAACEF06F062 :100CE00015A4F7EF06F005012F51000AD8B43AEF2A :100CF00007F005012F51010AD8B4B6EF06F005013F :100D00002F51020AD8B4F7EF06F005012F51030A5C :100D1000D8B4F7EF06F005012F51040AD8B4F7EF65 :100D200006F005012F51050AD8B4F7EF06F00501CA :100D30002F51060AD8B4F7EF06F005012F51070A24 :100D4000D8B4F7EF06F005012F51320AD8B4B4EF4A :100D500006F02F6B3AEF07F000011650030AD8B4E3 :100D6000F7EF06F03AEF07F03AEF07F005015767A3 :100D7000C1EF06F05867C1EF06F05967C1EF06F002 :100D80005A67C5EF06F03AEF07F05BC500F15CC5A6 :100D900001F15DC502F15EC503F10101010E046FB1 :100DA000000E056F000E066F000E076F82EC30F02C :100DB00000C15BF501C15CF502C15DF503C15EF5E3 :100DC00001010067EBEF06F00167EBEF06F0026749 :100DD000EBEF06F003673AEF07F057C55BF558C530 :100DE0005CF559C55DF55AC55EF524EF07F00FBEF9 :100DF0000CEF07F010A011EF07F00101476708EFB3 :100E000007F0486708EF07F0496708EF07F04A67FF :100E10000CEF07F011EF07F007AE11EF07F024EF2A :100E200007F00501312F3AEF07F03C0E316F302FFC :100E30003AEF07F00101000E626FE00E636FA50E3E :100E4000646F010E656F138800011650000AD8B454 :100E500032EF07F000011650030AD8B437EF07F05D :100E60003AEF07F00001010E166E3AEF07F00001AD :100E7000040E166E0501666B37B740EF07F066810A :100E80000CC100F10DC101F10EC102F10FC103F15E :100E900010C104F111C105F112C106F113C107F12E :100EA00014C108F115C109F116C10AF117C10BF1FE :100EB00035C134F100C10CF101C10DF102C10EF1D7 :100EC00003C10FF104C110F105C111F106C112F106 :100ED00007C113F108C114F109C115F10AC116F1D6 :100EE0000BC117F134C135F101018E677FEF07F0B7 :100EF0008F677FEF07F090677FEF07F0916783EFD1 :100F000007F0B4EF07F092C100F193C101F194C171 :100F100002F195C103F10101010E046F000E056F8E :100F2000000E066F000E076F82EC30F000C192F1E8 :100F300001C193F102C194F103C195F10101006770 :100F4000A9EF07F00167A9EF07F00267A9EF07F023 :100F50000367B4EF07F08EC192F18FC193F190C196 :100F600094F191C195F10F80D57ED5BE6ED0D6CFCC :100F700047F1D7CF48F145C149F1E86AE8CF4AF1D6 :100F8000138A1CBE02D01CA0108C109047C100F127 :100F900048C101F149C102F14AC103F101010A0E40 :100FA000046F000E056F000E066F000E076F82ECD7 :100FB00030F003AF1080010154A7EBEF07F00F9A58 :100FC0000F9C0F9E0101000E5E6F600E5F6F3D0E65 :100FD000606F080E616F010147BFFBEF07F04867C4 :100FE000FBEF07F04967FBEF07F04A67FBEF07F0FD :100FF000F28820EF08F0F2985E6B5F6B606B616BBC :101000009A6B9B6B9C6B9D6B9E6B9F6BA06BA16B9C :10101000A26BA36BA46BA56BA66BA76BA86BA96B4C :10102000AA6BAB6BAC6BAD6BAE6BAF6BB06BB16BFC :10103000B26BB36BB46BB56BB66BB76BB86BB96BAC :10104000D76AD66A0101456B466B0CC100F10DC130 :1010500001F10EC102F10FC103F110C104F111C180 :1010600005F112C106F113C107F114C108F115C150 :1010700009F116C10AF117C10BF135C134F147EF7F :101080000BF047EF0BF00201002FABEF0AF0D59EFB :10109000D6CF47F1D7CF48F145C149F1E86AE8CF4B :1010A0004AF1138AD76AD66A0101456B466BD58E21 :1010B0001D50E00BE00AE86612881BBE02D01BB48C :1010C000108E1AAE1F8C00C10CF101C10DF102C1CE :1010D0000EF103C10FF104C110F105C111F106C1F8 :1010E00012F107C113F108C114F109C115F10AC1C8 :1010F00016F10BC117F134C135F10FA0109A11B8D8 :101100008DEF08F00101620E046F010E056F000EF5 :10111000066F000E076F96EF08F00101A70E046F2F :10112000020E056F000E066F000E076F47C100F13B :1011300048C101F149C102F14AC103F182EC30F02A :1011400003BFA9EF08F01CBE02D01CA0108C11B088 :101150000F800CC100F10DC101F10EC102F10FC1F0 :1011600003F110C104F111C105F112C106F113C15F :1011700007F114C108F115C109F116C10AF117C12F :101180000BF135C134F102013C0E006F00C10CF1CE :1011900001C10DF102C10EF103C10FF104C110F143 :1011A00005C111F106C112F107C113F108C114F113 :1011B00009C115F10AC116F10BC117F134C135F19E :1011C00081BAE6EF08F015B225EF09F015A025EF7A :1011D00009F015A470EF09F005012F51000AD8B4E9 :1011E000B3EF09F005012F51010AD8B42FEF09F030 :1011F00005012F51020AD8B470EF09F005012F51F3 :10120000030AD8B470EF09F005012F51040AD8B4CD :1012100070EF09F005012F51050AD8B470EF09F0FD :1012200005012F51060AD8B470EF09F005012F51BE :10123000070AD8B470EF09F005012F51320AD8B46B :101240002DEF09F02F6BB3EF09F000011650030AE0 :10125000D8B470EF09F0B3EF09F0B3EF09F005016E :1012600057673AEF09F058673AEF09F059673AEFD4 :1012700009F05A673EEF09F0B3EF09F05BC500F1E2 :101280005CC501F15DC502F15EC503F10101010E0E :10129000046F000E056F000E066F000E076F82ECE4 :1012A00030F000C15BF501C15CF502C15DF503C121 :1012B0005EF50101006764EF09F0016764EF09F072 :1012C000026764EF09F00367B3EF09F057C55BF5F8 :1012D00058C55CF559C55DF55AC55EF59DEF09F039 :1012E0000FBE85EF09F010A08AEF09F001014767F2 :1012F00081EF09F0486781EF09F0496781EF09F054 :101300004A6785EF09F08AEF09F007AE8AEF09F026 :101310009DEF09F00501312FB3EF09F03C0E316F5D :10132000302FB3EF09F00101000E626FE00E636F22 :10133000A50E646F010E656F138800011650000A38 :10134000D8B4ABEF09F000011650030AD8B4B0EFDF :1013500009F0B3EF09F00001010E166EB3EF09F0CA :101360000001040E166E0501666B37B7B9EF09F080 :1013700066810CC100F10DC101F10EC102F10FC176 :1013800003F110C104F111C105F112C106F113C13D :1013900007F114C108F115C109F116C10AF117C10D :1013A0000BF135C134F100C10CF101C10DF102C1E5 :1013B0000EF103C10FF104C110F105C111F106C115 :1013C00012F107C113F108C114F109C115F10AC1E5 :1013D00016F10BC117F134C135F101018E67F8EF39 :1013E00009F08F67F8EF09F09067F8EF09F091675F :1013F000FCEF09F02DEF0AF092C100F193C101F169 :1014000094C102F195C103F10101010E046F000EB8 :10141000056F000E066F000E076F82EC30F000C102 :1014200092F101C193F102C194F103C195F101015F :10143000006722EF0AF0016722EF0AF0026722EF4D :101440000AF003672DEF0AF08EC192F18FC193F17C :1014500090C194F191C195F10F80109047C100F1B6 :1014600048C101F149C102F14AC103F101010A0E6B :10147000046F000E056F000E066F000E076F82EC02 :1014800030F003AF1080010154A753EF0AF00F9A18 :101490000F9C0F9E0101000E5E6F600E5F6F3D0E90 :1014A000606F080E616F47C100F148C101F149C189 :1014B00002F14AC103F10101140E046F050E056F1C :1014C000000E066F000E076F82EC30F003AF6CEF7A :1014D0000AF0F28891EF0AF0F2985E6B5F6B606B36 :1014E000616B9A6B9B6B9C6B9D6B9E6B9F6BA06BF8 :1014F000A16BA26BA36BA46BA56BA66BA76BA86B70 :10150000A96BAA6BAB6BAC6BAD6BAE6BAF6BB06B1F :10151000B16BB26BB36BB46BB56BB66BB76BB86BCF :10152000B96B0CC100F10DC101F10EC102F10FC187 :1015300003F110C104F111C105F112C106F113C18B :1015400007F114C108F115C109F116C10AF117C15B :101550000BF135C134F104008BB4B6EF0AF010ACD6 :10156000B6EF0AF08B84109CB7EF0AF08B94077CDF :1015700007ACD2EF0AF0C274C2B4CCEF0AF0C3CF0A :10158000B7F5C4CFB8F50501D890B833B733D890C4 :10159000B833B733D3EF0AF0C3CF55F1C4CF56F108 :1015A000D3EF0AF0C28207B445EF0BF047C14BF10D :1015B00048C14CF149C14DF14AC14EF15EC162F1E1 :1015C0005FC163F160C164F161C165F113A8EBEF24 :1015D0000AF0138C13989AC1BAF19BC1BBF19CC15C :1015E000BCF19DC1BDF19EC1BEF19FC1BFF1A0C1C3 :1015F000C0F1A1C1C1F1A2C1C2F1A3C1C3F1A4C193 :10160000C4F1A5C1C5F1A6C1C6F1A7C1C7F1A8C162 :10161000C8F1A9C1C9F1AAC1CAF1ABC1CBF1ACC132 :10162000CCF1ADC1CDF1AEC1CEF1AFC1CFF1B0C102 :10163000D0F1B1C1D1F1B2C1D2F1B3C1D3F1B4C1D2 :10164000D4F1B5C1D5F1B6C1D6F1B7C1D7F1B8C1A2 :10165000D8F1B9C1D9F1B7C5B9F5B8C5BAF5B9C5A9 :10166000BBF5BAC5BCF5010155515B2756515C234A :10167000E86A5D230E2E45EF0BF05CC157F15DC1AA :1016800058F15B6B5C6B5D6B078E47EF0BF002C034 :10169000E0FF005001C0D8FF1000A6B24DEF0BF0E4 :1016A0000CC0A9FF0BC0A8FFA69EA69CA684F29E14 :1016B000550EA76EAA0EA76EA682F28EA694A6B2AB :1016C0005FEF0BF00C2A1200A96EA69EA69CA680C6 :1016D000A8500C2A120004012C0E826F96EC0EF01A :1016E00097EC31F00C5064EC0BF0E8CF00F10C50AB :1016F00064EC0BF0E8CF01F101AF84EF0BF00101D6 :10170000FF0E026FFF0E036F20EC31F0296790EFA0 :101710000BF00401200E826F96EC0EF095EF0BF0AB :1017200004012D0E826F96EC0EF02AEC2FF01200C1 :1017300015941596076A0F6A106A116A126A136A7D :10174000166A0F010D0EC16E860EC06E030EC26EBC :101750000F01680E896E130E926E080E8A6EF30EDC :10176000936E8B6A900E946EC80E64EC0BF0E8CF0B :10177000E8FF1098E8A0108810A805D00E0E256E7E :101780008E0E266E04D00F0E256E8F0E266E2FEC59 :1017900032F07AEC33F0F18EF19EFC0E64EC0BF03B :1017A000E8CF0BF00BA011800BA211820BA41184C7 :1017B0000BA81188C90E64EC0BF0E8CF1AF0CA0E22 :1017C00064EC0BF0E8CF1BF0CB0E64EC0BF0E8CF31 :1017D0001CF0CC0E64EC0BF0E8CF1DF0FB0E64ECBB :1017E0000BF0E8CF37F0CE0E64EC0BF0E8CF14F03E :1017F000CD0E64EC0BF0E8CF36F01F6A206A0E6A5B :1018000001015B6B5C6B5D6B576B586BF29A01016E :10181000476B486B496B4A6B4B6B4C6B4D6B4E6B1C :101820004F6B506B516B526B456B466BD76AD66AE8 :101830000F01280ED56EF28A9D90B00ECD6E01017B :101840005E6B5F6B606B616B626B636B646B656B34 :10185000666B676B686B696B536B546BCF6ACE6A50 :101860000F9A0F9C0F9E9D80760ECA6E9D8202017C :101870003C0E006FCC6A160E64EC0BF0E8CF00F162 :10188000170E64EC0BF0E8CF01F1180E64EC0BF0CE :10189000E8CF02F1190E64EC0BF0E8CF03F101017F :1018A00003AF6DEF0CF097EC31F0160E0C6E00C12B :1018B0000BF04DEC0BF0170E0C6E01C10BF04DEC64 :1018C0000BF0180E0C6E02C10BF04DEC0BF0190E64 :1018D0000C6E03C10BF04DEC0BF000C18EF101C199 :1018E0008FF102C190F103C191F100C192F101C1E8 :1018F00093F102C194F103C195F11A0E64EC0BF05F :10190000E8CF00F11B0E64EC0BF0E8CF01F11C0EE8 :1019100064EC0BF0E8CF02F11D0E64EC0BF0E8CFA5 :1019200003F1010103AFC3EF0CF097EC31F01A0E95 :101930000C6E00C10BF04DEC0BF01B0E0C6E01C1D8 :101940000BF04DEC0BF01C0E0C6E02C10BF04DECCD :101950000BF01D0E0C6E03C10BF04DEC0BF01A0ECC :1019600064EC0BF0E8CF00F11B0E64EC0BF0E8CF59 :1019700001F11C0E64EC0BF0E8CF02F11D0E64ECDB :101980000BF0E8CF03F100C196F101C197F102C15C :1019900098F103C199F1240EAC6E900EAB6E240E3B :1019A000AC6E080EB86E000EB06E1F0EAF6E040166 :1019B000806B816B0F01900EAB6E0F019D8A03014E :1019C000806B816BC26B8B92D4EC36F0D4EC36F02A :1019D000B6EC38F0B2EC34F0200E64EC0BF0E8CF4B :1019E0002FF505012F51FF0AD8A4FEEF0CF02F6B45 :1019F000200E0C6E2FC50BF04DEC0BF00501010E07 :101A0000306F3C0E316F250E64EC0BF0E8CF00F127 :101A1000260E64EC0BF0E8CF01F1270E64EC0BF01E :101A2000E8CF02F1280E64EC0BF0E8CF03F10101DE :101A300003AF35EF0DF097EC31F0250E0C6E00C1C1 :101A40000BF04DEC0BF0260E0C6E01C10BF04DECC3 :101A50000BF0270E0C6E02C10BF04DEC0BF0280EB4 :101A60000C6E03C10BF04DEC0BF000C157F501C13A :101A700058F502C159F503C15AF500C15BF501C122 :101A80005CF502C15DF503C15EF5290E64EC0BF057 :101A9000E8CF5FF5050160515F5DD8A05FC560F5D7 :101AA000210E64EC0BF0E8CF00F1220E64EC0BF099 :101AB000E8CF01F1230E64EC0BF0E8CF02F1240E25 :101AC00064EC0BF0E8CF03F1010103AF96EF0DF0EA :101AD00097EC31F0210E0C6E00C10BF04DEC0BF0C9 :101AE000220E0C6E01C10BF04DEC0BF0230E0C6EB0 :101AF00002C10BF04DEC0BF0240E0C6E03C10BF089 :101B00004DEC0BF0210E64EC0BF0E8CF00F1220E4F :101B100064EC0BF0E8CF01F1230E64EC0BF0E8CF9E :101B200002F1240E64EC0BF0E8CF03F100C161F583 :101B300001C162F502C163F503C164F5FAEC33F04B :101B4000E0EC32F038EC32F01590C70E64EC0BF09C :101B5000E8CF00F1010100B1B1EF0DF01592B2EF45 :101B60000DF0158281AAC0EF0DF015B4BBEF0DF09A :101B70001580C0EF0DF0F5EC38F015A05CEF39F0F2 :101B800007900001F28EF28C12AE03D012BC6EEF01 :101B900019F007B0A9EF2DF00FB099EF26F010BEA5 :101BA00099EF26F012B899EF26F000011650010ABD :101BB000D8B4A1EF1DF081BAE6EF0DF00001165088 :101BC000040AD8B41AEF1CF0ECEF0DF00001165027 :101BD000040AD8B4DDEF1DF00301805181197F0B99 :101BE000D8B4A9EF2DF013EE00F081517F0BE12660 :101BF000812BE7CFE8FFE00BD8B4A9EF2DF023EE5F :101C000082F0C2513F0BD926E7CFDFFFC22BDF5056 :101C1000780AD8A4A9EF2DF0078092C100F193C1F2 :101C200001F194C102F195C103F10101040E046FA9 :101C3000000E056F000E066F000E076F82EC30F08D :101C400000AF2CEF0EF00101030E926F000E936FA8 :101C5000000E946F000E956F03018251720AD8B482 :101C60001AEF26F08251520AD8B41AEF26F08251A8 :101C7000750AD8B41AEF26F08251680AD8B4AAEFD0 :101C80000EF08251630AD8B463EF2AF08251690AD8 :101C9000D8B4E7EF20F082517A0AD8B4FAEF21F0F5 :101CA0008251490AD8B486EF20F08251500AD8B444 :101CB000A4EF1FF08251700AD8B4E7EF1FF08251F1 :101CC000540AD8B412EF20F08251740AD8B458EFF5 :101CD00020F08251410AD8B4AFEF0FF082514B0A85 :101CE000D8B4ACEF0EF082516D0AD8B41FEF14F0E7 :101CF00082514D0AD8B438EF14F08251730AD8B427 :101D00004AEF25F08251530AD8B4AFEF25F0825143 :101D10004C0AD8B4C7EF14F08251590AD8B470EF06 :101D200013F012AE01D0128C9AEF2AF0040114EED7 :101D300000F080517F0BE12682C4E7FF802B120068 :101D400004010D0E826F96EC0EF00A0E826F96EC77 :101D50000EF0120098EF2AF004014B0E826F96EC01 :101D60000EF004012C0E826F96EC0EF081B802D0BA :101D700036B630D003018351430AD8B4F1EF0EF0E8 :101D800003018351630AD8B4F3EF0EF003018351CA :101D9000520AD8B4F5EF0EF003018351720AD8B499 :101DA000F7EF0EF003018351470AD8B4F9EF0EF0B4 :101DB00003018351670AD8B4FBEF0EF0030183518E :101DC000540AD8B4FDEF0EF003018351740AD8B45D :101DD0006DEF0FF003018351550AD8B4FFEF0EF0F9 :101DE00083D036807BD0369079D0368277D03692C9 :101DF00075D0368473D0369471D036866FD084C354 :101E000030F185C331F186C332F187C333F101016B :101E1000296BE5EC31F05CEC31F000C104F101C15B :101E200005F102C106F103C107F1D8EC31F0200E33 :101E3000F86EF76AF66A0900F5CF2CF10900F5CFC4 :101E40002DF10900F5CF2EF10900F5CF2FF1090092 :101E5000F5CF30F10900F5CF31F10900F5CF32F1BE :101E60000900F5CF33F10101296BE5EC31F05CECB1 :101E700031F082EC30F00101006746EF0FF00167AE :101E800046EF0FF0026746EF0FF0036701D025D051 :101E900004014E0E826F96EC0EF004016F0E826FFD :101EA00096EC0EF004014D0E826F96EC0EF00401DC :101EB000610E826F96EC0EF00401740E826F96EC48 :101EC0000EF00401630E826F96EC0EF00401680EB2 :101ED000826F96EC0EF098EF2AF03696CD0E0C6ECF :101EE00036C00BF04DEC0BF0CD0E64EC0BF0E8CFF0 :101EF00036F036B006D00401630E826F96EC0EF019 :101F000005D00401430E826F96EC0EF036B206D077 :101F10000401720E826F96EC0EF005D00401520E91 :101F2000826F96EC0EF036B406D00401670E826F15 :101F300096EC0EF005D00401470E826F96EC0EF081 :101F400036B606D00401740E826F96EC0EF005D002 :101F50000401540E826F96EC0EF098EF2AF0040103 :101F6000410E826F96EC0EF003018351310AD8B412 :101F700090EF12F003018351320AD8B4C0EF11F090 :101F800003018351330AD8B449EF11F0030183519F :101F9000340AD8B439EF10F003018351350AD8B4AC :101FA000D9EF0FF004013F0E826F96EC0EF098EF20 :101FB0002AF003018451300AD8B4FFEF0FF0030177 :101FC0008451310AD8B402EF10F003018451650A3C :101FD000D8B4F3EF0FF003018451640AD8B4F6EFDC :101FE0000FF003EF10F03790F7EF0FF03780FB0E94 :101FF0000C6E37C00BF04DEC0BF003EF10F08B9034 :1020000003EF10F08B800401350E826F96EC0EF01A :1020100004012C0E826F96EC0EF08BB017EF10F0CF :102020000401300E826F96EC0EF01CEF10F00401EC :10203000310E826F96EC0EF004012C0E826F96EC3E :102040000EF0FB0E64EC0BF0E8CF37F037A030EF6A :1020500010F00401640E826F96EC0EF035EF10F074 :102060000401650E826F96EC0EF037EF10F098EFDA :102070002AF0CC0E64EC0BF0E8CF0BF004012C0E30 :10208000826F96EC0EF003018451310AD8B45DEFF3 :1020900010F003018451300AD8B45FEF10F003014F :1020A00084514D0AD8B469EF10F003018451540AE9 :1020B000D8B470EF10F087EF10F08A8401D08A94C2 :1020C0000BAE04D00BAC02D00BBA21D0E00E0B1239 :1020D00018D01F0E0B168539E844E00B0B1211D0F7 :1020E000E00E0B16D8EC31F085C332F186C333F124 :1020F0000101296BE5EC31F05CEC31F000511F0B74 :102100000B12CC0E0C6E0BC00BF04DEC0BF004015F :10211000340E826F96EC0EF004012C0E826F96EC5A :102120000EF0CC0E64EC0BF0E8CF1DF08AB406D0B4 :102130000401300E826F96EC0EF005D00401310ED2 :10214000826F96EC0EF004012C0E826F96EC0EF06E :102150001D38E840070BE8CF82F40401300E8227D7 :1021600096EC0EF004012C0E826F96EC0EF097ECBC :1021700031F01D501F0BE8CF00F120EC31F032C1DF :1021800082F40401300E822796EC0EF033C182F403 :102190000401300E822796EC0EF004012C0E826FA3 :1021A00096EC0EF097EC31F030C000F100AF0BD0A0 :1021B000FF0E016FFF0E026FFF0E036F04012D0E65 :1021C000826F96EC0EF020EC31F031C182F4040104 :1021D000300E822796EC0EF032C182F40401300EEC :1021E000822796EC0EF033C182F40401300E822770 :1021F00096EC0EF004012C0E826F96EC0EF097EC2C :1022000031F02FC000F120EC31F031C182F4040133 :10221000300E822796EC0EF032C182F40401300EAB :10222000822796EC0EF033C182F40401300E82272F :1022300096EC0EF004012C0E826F96EC0EF097ECEB :1022400031F031C000F100AF0BD0FF0E016FFF0E77 :10225000026FFF0E036F04012D0E826F96EC0EF0DD :1022600020EC31F031C182F40401300E822796EC6B :102270000EF032C182F40401300E822796EC0EF08B :1022800033C182F40401300E822796EC0EF098EFF1 :102290002AF0CB0E64EC0BF0E8CF0BF004012C0E0F :1022A000826F96EC0EF003018451450AD8B46DEFAD :1022B00011F003018451440AD8B470EF11F0030106 :1022C0008451300AD8B473EF11F003018451310AFC :1022D000D8B477EF11F082EF11F00B9E7CEF11F084 :1022E0000B8E7CEF11F0FC0E0B167CEF11F0FC0E48 :1022F0000B160B807CEF11F0CB0E0C6E0BC00BF0AD :102300004DEC0BF00401330E826F96EC0EF00401DD :102310002C0E826F96EC0EF0CB0E64EC0BF0E8CF37 :102320001CF01CBE9BEF11F00401450E826F96EC71 :102330000EF0A0EF11F00401440E826F96EC0EF047 :1023400004012C0E826F96EC0EF00401300E826FA9 :1023500096EC0EF004012C0E826F96EC0EF01CB081 :10236000B9EF11F00401300E826F96EC0EF0BEEF63 :1023700011F00401310E826F96EC0EF098EF2AF006 :10238000CA0E64EC0BF0E8CF0BF004012C0E826F48 :1023900096EC0EF003018451450AD8B4FCEF11F01D :1023A00003018451440AD8B4FFEF11F003018451B2 :1023B0004D0AD8B408EF12F003018451410AD8B491 :1023C00002EF12F003018451460AD8B405EF12F06F :1023D00003018451560AD8B410EF12F0030184515E :1023E000500AD8B41BEF12F003018451520AD8B43A :1023F0001EEF12F027EF12F00B9E21EF12F00B8E62 :1024000021EF12F00B9C21EF12F00B8C21EF12F058 :10241000FC0E0B1685C3E8FF030B0B1221EF12F025 :10242000C70E0B1685C3E8FF070BE846E846E846EB :102430000B1221EF12F00B8421EF12F00B9421EF1D :1024400012F0CA0E0C6E0BC00BF04DEC0BF0CA0E66 :1024500064EC0BF0E8CF1BF00401320E826F96ECB7 :102460000EF004012C0E826F96EC0EF01BBE40EFB6 :1024700012F00401450E826F96EC0EF045EF12F05B :102480000401440E826F96EC0EF004012C0E826F54 :1024900096EC0EF01BC0E8FF030BE8CF82F40401BA :1024A000300E822796EC0EF004012C0E826F96EC13 :1024B0000EF01BBC63EF12F00401410E826F96EC2C :1024C0000EF068EF12F00401460E826F96EC0EF0EB :1024D00004012C0E826F96EC0EF01BC0E8FF380B47 :1024E000E842E842E842E8CF82F40401300E822755 :1024F00096EC0EF004012C0E826F96EC0EF01BB4DD :1025000089EF12F00401520E826F96EC0EF08EEFFE :1025100012F00401500E826F96EC0EF098EF2AF044 :10252000C90E64EC0BF0E8CF0BF004012C0E826FA7 :1025300096EC0EF003018451450AD8B4AEEF12F0C8 :1025400003018451440AD8B4B1EF12F0030184515D :102550004D0AD8B4B4EF12F0C2EF12F00B9EBCEFEC :1025600012F00B8EBCEF12F0F80E0B1685C3E8FFCD :10257000070B0B12BCEF12F0C90E0C6E0BC00BF068 :102580004DEC0BF00401310E826F96EC0EF004015D :102590002C0E826F96EC0EF0C90E64EC0BF0E8CFB7 :1025A0001AF01ABE06D00401450E826F96EC0EF0AA :1025B00005D00401440E826F96EC0EF004012C0E3F :1025C000826F96EC0EF01AC0E8FF070BE8CF82F49A :1025D0000401300E822796EC0EF004012C0E826F5F :1025E00096EC0EF0078097EC31F02BC0E8FF003B33 :1025F00000430043030B20EC31F033C182F40401AB :10260000300E822796EC0EF004012C0E826F96ECB1 :102610000EF097EC31F02BC001F1019F019D2CC011 :1026200000F1010120EC31F02FC182F40401300EE1 :10263000822796EC0EF030C182F40401300E82271E :1026400096EC0EF031C182F40401300E822796EC34 :102650000EF032C182F40401300E822796EC0EF0A7 :1026600033C182F40401300E822796EC0EF004018F :102670002C0E826F96EC0EF097EC31F02DC001F12C :102680002EC000F1D89001330033D89001330033CD :10269000010120EC31F02FC182F40401300E8227B9 :1026A00096EC0EF030C182F40401300E822796ECD5 :1026B0000EF031C182F40401300E822796EC0EF048 :1026C00032C182F40401300E822796EC0EF033C141 :1026D00082F40401300E822796EC0EF098EF2AF077 :1026E000FC0E64EC0BF0E8CF0BF003018351520AAF :1026F000D8B4A7EF13F003018351720AD8B4AAEF3C :1027000013F003018351500AD8B4ADEF13F0030165 :102710008351700AD8B4B0EF13F003018351550A06 :10272000D8B4B3EF13F003018351750AD8B4B6EFF0 :1027300013F003018351430AD8B4BFEF13F0030130 :102740008351630AD8B4C2EF13F0CBEF13F00B90B0 :10275000C5EF13F00B80C5EF13F00B92C5EF13F02C :102760000B82C5EF13F00B94C5EF13F00B84C5EF8C :1027700013F00B96C5EF13F00B86C5EF13F00B9813 :10278000C5EF13F00B88C5EF13F0FC0E0C6E0BC0F9 :102790000BF04DEC0BF00401590E826F96EC0EF02D :1027A0001190119211941198FC0E64EC0BF0E8CF8B :1027B0000BF00BA011800BA211820BA411840BA8AB :1027C000118811A0EBEF13F00401520E826F96EC0A :1027D0000EF0F0EF13F00401720E826F96EC0EF023 :1027E00011A8FAEF13F00401430E826F96EC0EF07D :1027F000FFEF13F00401630E826F96EC0EF011A24E :1028000009EF14F00401500E826F96EC0EF00EEFFB :1028100014F00401700E826F96EC0EF011A418EF04 :1028200014F00401550E826F96EC0EF01DEF14F0BB :102830000401750E826F96EC0EF098EF2AF00401F9 :102840006D0E826F96EC0EF003018351300AD8B4FE :1028500077EF14F003018351310AD8B48AEF14F0F2 :1028600003018351320AD8B49DEF14F09AEF2AF095 :1028700004014D0E826F96EC0EF0D8EC31F084C35B :1028800031F185C332F186C333F10101296BE5ECE7 :1028900031F05CEC31F003018351300AD8B45FEFC2 :1028A00014F003018351310AD8B467EF14F0030127 :1028B0008351320AD8B46FEF14F09AEF2AF0FD0E6C :1028C0000C6E00C10BF04DEC0BF077EF14F0FE0E28 :1028D0000C6E00C10BF04DEC0BF08AEF14F0FF0E04 :1028E0000C6E00C10BF04DEC0BF09DEF14F00401E9 :1028F000300E826F96EC0EF004012C0E826F96EC77 :102900000EF097EC31F0FD0E64EC0BF0E8CF00F127 :10291000AEEF14F00401310E826F96EC0EF004015C :102920002C0E826F96EC0EF097EC31F0FE0E64ECFC :102930000BF0E8CF00F1AEEF14F00401320E826F1D :1029400096EC0EF097EC31F004012C0E826F96ECB1 :102950000EF0FF0E64EC0BF0E8CF00F120EC31F04C :1029600031C182F40401300E822796EC0EF032C1A0 :1029700082F40401300E822796EC0EF033C182F40B :102980000401300E822796EC0EF098EF2AF0030136 :102990008351300AD8B41BEF1AF003018351310A76 :1029A000D8B448EF1BF003018351320AD8B4B6EF14 :1029B0001BF003018351330AD8B4C6EF1BF00301A7 :1029C0008351340AD8B421EF1CF003018351350A36 :1029D000D8B4F5EF1DF003018351360AD8B423EFC4 :1029E0001EF003018351370AD8B4F3EF17F0030147 :1029F0008351380AD8B491EF18F003018351440A87 :102A0000D8B41FEF16F003018351640AD8B43FEF26 :102A100016F003018351460AD8B4FAEF1CF0030103 :102A200083514D0AD8B46CEF16F0030183516D0A3F :102A3000D8B486EF16F0030183515A0AD8B4C2EF16 :102A40001AF003018351490AD8B423EF1FF00301A0 :102A50008351500AD8B455EF1EF003018351540A34 :102A6000D8B4CEEF1EF003018351630AD8B4A6EFA9 :102A700016F003018351430AD8B49EEF17F0030107 :102A80008351730AD8B4A4EF16F003018351610A8D :102A9000D8B46CEF15F003018351650AD8B46BEF1D :102AA0001AF003018351450AD8B479EF1AF00301F3 :102AB0008351620AD8B487EF1AF003018351420AA6 :102AC000D8B495EF1AF003018351760AD8B4A3EF76 :102AD0001AF0D8A49AEF2AF004014C0E826F96ECFB :102AE0000EF00401610E826F96EC0EF0E0EC32F015 :102AF00004012C0E826F96EC0EF097EC31F0AFC50E :102B000000F1010120EC31F031C182F40401300EFA :102B1000822796EC0EF032C182F40401300E822737 :102B200096EC0EF033C182F40401300E822796EC4D :102B30000EF004012C0E826F96EC0EF097EC31F043 :102B4000B0C500F1010120EC31F031C182F4040183 :102B5000300E822796EC0EF032C182F40401300E62 :102B6000822796EC0EF033C182F40401300E8227E6 :102B700096EC0EF004012C0E826F96EC0EF097ECA2 :102B800031F0B1C500F1010120EC31F031C182F426 :102B90000401300E822796EC0EF032C182F404015B :102BA000300E822796EC0EF033C182F40401300E11 :102BB000822796EC0EF004012C0E826F96EC0EF03C :102BC00097EC31F0B2C500F1010120EC31F031C1D8 :102BD00082F40401300E822796EC0EF032C182F4AA :102BE0000401300E822796EC0EF033C182F404010A :102BF000300E822796EC0EF004012C0E826F96ECBC :102C00000EF097EC31F0B6C500F1010120EC31F087 :102C100031C182F40401300E822796EC0EF032C1ED :102C200082F40401300E822796EC0EF033C182F458 :102C30000401300E822796EC0EF051EF1EF00301D6 :102C40008451300AD8B42BEF16F003018451310AB5 :102C5000D8B42FEF16F01592159630EF16F01582B6 :102C6000C70E64EC0BF0E8CF00F10101008115A262 :102C70000091C70E0C6E00C10BF04DEC0BF0C70EAF :102C800064EC0BF0E8CF00F1010100B14BEF16F05E :102C900015924CEF16F0158204014C0E826F96ECE3 :102CA0000EF00401640E826F96EC0EF004012C0EFF :102CB000826F96EC0EF015B265EF16F00401300E3F :102CC000826F96EC0EF06AEF16F00401310E826FFF :102CD00096EC0EF098EF2AF0D8EC31F084C333F183 :102CE000E5EC31F05CEC31F0200E0C6E00C10BF025 :102CF0004DEC0BF000C12FF505012F51000A06E045 :102D000005012F51010A02E07AEC33F004014C0E68 :102D1000826F96EC0EF004014D0E826F96EC0EF071 :102D200004012C0E826F96EC0EF097EC31F02FC55B :102D300000F120EC31F033C182F40401300E82271F :102D400096EC0EF051EF1EF05CEF39F004014C0EE2 :102D5000826F96EC0EF00401630E826F96EC0EF01B :102D600038EC32F004012C0E826F96EC0EF0BBECC6 :102D700016F051EF1EF097EC31F0B5C500F10101EE :102D8000003B0F0E001720EC31F033C182F4040138 :102D9000300E822796EC0EF0B5C500F101010F0E42 :102DA0000101001720EC31F033C182F40401300E30 :102DB000822796EC0EF004012D0E826F96EC0EF039 :102DC000B4C500F10101003B0F0E001720EC31F0FB :102DD00033C182F40401300E822796EC0EF0B4C5A4 :102DE00000F101010F0E0101001720EC31F033C199 :102DF00082F40401300E822796EC0EF004012D0EB1 :102E0000826F96EC0EF0B3C500F10101003B0F0E8E :102E1000001720EC31F033C182F40401300E822718 :102E200096EC0EF0B3C500F101010F0E0101001781 :102E300020EC31F033C182F40401300E822796EC8D :102E40000EF00401200E826F96EC0EF0B2C500F178 :102E50000F0E0101001720EC31F033C182F40401A0 :102E6000300E822796EC0EF00401200E826F96EC55 :102E70000EF0B1C500F101010101003B0F0E00177A :102E800020EC31F033C182F40401300E822796EC3D :102E90000EF0B1C500F101010F0E0101001720EC89 :102EA00031F033C182F40401300E822796EC0EF02B :102EB00004013A0E826F96EC0EF0B0C500F10101EC :102EC000003B0F0E001720EC31F033C182F40401F7 :102ED000300E822796EC0EF0B0C500F101010F0E06 :102EE0000101001720EC31F033C182F40401300EEF :102EF000822796EC0EF004013A0E826F96EC0EF0EB :102F0000AFC500F10101003B0F0E001720EC31F0BE :102F100033C182F40401300E822796EC0EF0AFC567 :102F200000F101010F0E001720EC31F033C182F4E3 :102F30000401300E822796EC0EF0120084C3E8FFE5 :102F40000F0BE83AE8CFB5F585C3E8FF0F0B050195 :102F5000B51387C3E8FF0F0BE83AE8CFB4F588C391 :102F6000E8FF0F0B0501B4138AC3E8FF0F0BE83A23 :102F7000E8CFB3F58BC3E8FF0F0B0501B3138DC387 :102F8000E8FF0F0BE8CFB2F58FC3E8FF0F0BE83A6D :102F9000E8CFB1F590C3E8FF0F0B0501B11392C361 :102FA000E8FF0F0BE83AE8CFB0F593C3E8FF0F0B4B :102FB0000501B01395C3E8FF0F0BE83AE8CFAFF572 :102FC00096C3E8FF0F0B0501AF1393EC32F0040139 :102FD0004C0E826F96EC0EF00401430E826F96EC5D :102FE0000EF0B0EF16F0078404014C0E826F96ECE1 :102FF0000EF00401370E826F96EC0EF004012C0ED9 :10300000826F96EC0EF005012E51130A06E00501C1 :103010002E51170A0DE08EEF18F00101000E006F1F :10302000000E016F100E026F000E036F21EF18F0FB :103030000101000E006F000E016F000E026F010E05 :10304000036F20EC31F02AC182F40401300E822794 :1030500096EC0EF02BC182F40401300E822796EC20 :103060000EF02CC182F40401300E822796EC0EF093 :103070002DC182F40401300E822796EC0EF02EC191 :1030800082F40401300E822796EC0EF02FC182F4F8 :103090000401300E822796EC0EF030C182F4040158 :1030A000300E822796EC0EF031C182F40401300E0E :1030B000822796EC0EF032C182F40401300E822792 :1030C00096EC0EF033C182F40401300E822796ECA8 :1030D0000EF004012C0E826F96EC0EF00101100E22 :1030E000006F000E016F000E026F000E036F20ECE8 :1030F00031F031C182F40401300E822796EC0EF0DB :1031000032C182F40401300E822796EC0EF033C1F6 :1031100082F40401300E822796EC0EF0079451EFF2 :103120001EF00501216B226B236B246B04014C0EF6 :10313000826F96EC0EF00401380E826F96EC0EF062 :1031400004012C0E826F96EC0EF00101100E006F40 :10315000000E016F000E026F000E036F20EC31F0C5 :103160002AC182F40401300E822796EC0EF02BC1A6 :1031700082F40401300E822796EC0EF02CC182F40A :103180000401300E822796EC0EF02DC182F404016A :10319000300E822796EC0EF02EC182F40401300E20 :1031A000822796EC0EF02FC182F40401300E8227A4 :1031B00096EC0EF030C182F40401300E822796ECBA :1031C0000EF031C182F40401300E822796EC0EF02D :1031D00032C182F40401300E822796EC0EF033C126 :1031E00082F40401300E822796EC0EF004012C0EBE :1031F000826F96EC0EF025C500F126C501F127C5BA :1032000002F128C503F10101100E046F000E056FD5 :10321000000E066F000E076FB3EC30F000C133F5FF :1032200001C134F502C135F503C136F520EC31F0AA :103230002AC182F40401300E822796EC0EF02BC1D5 :1032400082F40401300E822796EC0EF02CC182F439 :103250000401300E822796EC0EF02DC182F4040199 :10326000300E822796EC0EF02EC182F40401300E4F :10327000822796EC0EF02FC182F40401300E8227D3 :1032800096EC0EF030C182F40401300E822796ECE9 :103290000EF031C182F40401300E822796EC0EF05C :1032A00032C182F40401300E822796EC0EF033C155 :1032B00082F40401300E822796EC0EF0A0EC0EF0A2 :1032C000050133676BEF19F034676BEF19F0356761 :1032D0006BEF19F0366702D00AEF1AF0129E129CBB :1032E00021C500F122C501F123C502F124C503F176 :1032F000899A400EC76E200EC66E9E96C69E0B0E15 :10330000C96EFF0E9EB602D0E82EFCD79E96C69ED2 :1033100002C1C9FFFF0E9EB602D0E82EFCD79E96D2 :10332000C69E01C1C9FFFF0E9EB602D0E82EFCD793 :103330009E96C69E00C1C9FFFF0E9EB602D0E82E23 :10334000FCD79E96C69EC952FF0E9EB602D0E82EAE :10335000FCD70501100E326F040114EE00F080510D :103360007F0BE1269E96C69EC952FF0E9EB602D0E6 :10337000E82EFCD7C9CFE7FF0401802B0501322FCF :10338000ACEF19F0898A33C500F134C501F135C5B8 :1033900002F136C503F10101010E046F000E056F45 :1033A000000E066F000E076F82EC30F000C133F59F :1033B00001C134F502C135F503C136F505013367A6 :1033C000E9EF19F03467E9EF19F03567E9EF19F023 :1033D000366702D00AEF1AF021C500F122C501F1CB :1033E00023C502F124C503F10101100E046F000E84 :1033F000056F000E066F000E076F87EC30F000C1FE :1034000021F501C122F502C123F503C124F5128E75 :103410009AEF2AF00401450E826F96EC0EF004013B :103420004F0E826F96EC0EF00401460E826F96EC02 :103430000EF051EF1EF00784B6EC38F097EC31F047 :103440002DC500F120EC31F004014C0E826F96EC9A :103450000EF00401300E826F96EC0EF004012C0E7B :10346000826F96EC0EF031C182F40401300E822797 :1034700096EC0EF032C182F40401300E822796ECF5 :103480000EF033C182F40401300E822796EC0EF068 :1034900004012C0E826F96EC0EF097EC31F02EC5E5 :1034A00000F120EC31F031C182F40401300E8227AA :1034B00096EC0EF032C182F40401300E822796ECB5 :1034C0000EF033C182F40401300E822796EC0EF028 :1034D000079451EF1EF004014C0E826F96EC0EF033 :1034E0000401650E826F96EC0EF056EC34F051EF4D :1034F0001EF004014C0E826F96EC0EF00401450E96 :10350000826F96EC0EF06DEC34F051EF1EF004017A :103510004C0E826F96EC0EF00401620E826F96ECF8 :103520000EF09BEC34F051EF1EF004014C0E826F54 :1035300096EC0EF00401420E826F96EC0EF084ECD5 :1035400034F051EF1EF004014C0E826F96EC0EF039 :103550000401760E826F96EC0EF004012C0E826F41 :1035600096EC0EF010A807D00401310E826F96EC95 :103570000EF051EF1EF00401300E826F96EC0EF04B :1035800051EF1EF004014C0E826F96EC0EF0040118 :103590005A0E826F96EC0EF004012C0E826F96ECA0 :1035A0000EF0B6EC38F097EC31F005012E51130A0D :1035B00006E005012E51170A0DE0F3EF1AF00101A4 :1035C000000E006F000E016F100E026F000E036FF1 :1035D000F3EF1AF00101000E006F000E016F000EF4 :1035E000026F010E036F0101100E046F000E056FD4 :1035F000000E066F000E076FB3EC30F020EC31F0D8 :103600002AC182F40401300E822796EC0EF02BC101 :1036100082F40401300E822796EC0EF02CC182F465 :103620000401300E822796EC0EF02DC182F40401C5 :10363000300E822796EC0EF02EC182F40401300E7B :10364000822796EC0EF02FC182F40401300E8227FF :1036500096EC0EF030C182F40401300E822796EC15 :103660000EF031C182F40401300E822796EC0EF088 :1036700032C182F40401300E822796EC0EF033C181 :1036800082F40401300E822796EC0EF051EF1EF00A :10369000078404014C0E826F96EC0EF00401310E8B :1036A000826F96EC0EF004012C0E826F96EC0EF0F9 :1036B00025C500F126C501F127C502F128C503F192 :1036C0000101100E046F000E056F000E066F000E54 :1036D000076FB3EC30F020EC31F02AC182F4040122 :1036E000300E822796EC0EF02BC182F40401300ECE :1036F000822796EC0EF02CC182F40401300E822752 :1037000096EC0EF02DC182F40401300E822796EC67 :103710000EF02EC182F40401300E822796EC0EF0DA :103720002FC182F40401300E822796EC0EF030C1D6 :1037300082F40401300E822796EC0EF031C182F43F :103740000401300E822796EC0EF032C182F404019F :10375000300E822796EC0EF033C182F40401300E55 :10376000822796EC0EF0079451EF1EF007840401B7 :103770004C0E826F96EC0EF00401320E826F96ECC6 :103780000EF08AEC36F0079451EF1EF0078437B044 :10379000CCEF1BF0DFEF1BF0010E166E04014C0E98 :1037A000826F96EC0EF00401330E826F96EC0EF0F1 :1037B000E7EC36F0000E166E079453EF1BF0020E86 :1037C000166EE7EC36F08B800501010E306F3C0E73 :1037D000316F01015E6B5F6B606B616B626B636B82 :1037E000646B656B666B676B686B696B536B546B73 :1037F000CF6ACE6A0F9A0F9C0F9E030E166E0401BD :103800004C0E826F96EC0EF00401330E826F96EC34 :103810000EF004012C0E826F96EC0EF004012D0EBA :10382000826F96EC0EF00401310E826F96EC0EF072 :1038300098EF2AF0E7EC36F0000E166E8B909AEFB8 :103840002AF0078404014C0E826F96EC0EF00401FE :10385000340E826F96EC0EF004012C0E826F96EC03 :103860000EF0D8EC31F084C32AF185C32BF186C366 :103870002CF187C32DF188C32EF189C32FF18AC3A0 :1038800030F18BC331F18CC332F18DC333F10101BF :10389000296BE5EC31F05CEC31F0100E046F000E9A :1038A000056F000E066F000E076F93EC30F000C13D :1038B00021F501C122F502C123F503C124F569EC0C :1038C00038F038C5AFF539C5B0F53AC5B1F53BC5E7 :1038D000B2F53CC5B3F53DC5B4F53EC5B5F5BBEC99 :1038E00016F004012C0E826F96EC0EF03FC500F12D :1038F00040C501F141C502F142C503F10101000ECD :10390000046F000E056F010E066F000E076FB3EC1B :1039100030F020EC31F0296790EF1CF095EF1CF0AF :1039200004012D0E826F96EC0EF030C182F404017A :10393000300E822796EC0EF031C182F40401300E75 :10394000822796EC0EF004012E0E826F96EC0EF09C :1039500032C182F40401300E822796EC0EF033C19E :1039600082F40401300E822796EC0EF004012C0E36 :10397000826F96EC0EF097EC31F043C500F144C530 :1039800001F1C4EC2BF004012C0E826F96EC0EF0CA :1039900097EC31F045C500F120EC31F031C182F4F3 :1039A0000401300E822796EC0EF032C182F404013D :1039B000300E822796EC0EF033C182F40401300EF3 :1039C000822796EC0EF004012C0E826F96EC0EF01E :1039D00037C5E8FFE8B806D00401300E826F96ECD8 :1039E0000EF005D00401310E826F96EC0EF00794B4 :1039F00051EF1EF0D8EC31F085C32AF186C32BF1CC :103A000087C32CF188C32DF189C32EF18AC32FF10E :103A10008BC330F18CC331F18DC332F18EC333F1DE :103A20000101296BE5EC31F05CEC31F00101010E94 :103A3000046F000E056F000E066F000E076F82EC1C :103A400030F0100E046F000E056F000E066F000EB2 :103A5000076F93EC30F000C129F501C12AF502C1CE :103A60002BF503C12CF511EC36F004014C0E826FDE :103A700096EC0EF00401460E826F96EC0EF00401F7 :103A80002C0E826F96EC0EF025C500F126C501F1D3 :103A900027C502F128C503F10101100E046F000EC5 :103AA000056F000E066F000E076FB3EC30F020ECD0 :103AB00031F02AC182F40401300E822796EC0EF018 :103AC0002BC182F40401300E822796EC0EF02CC13B :103AD00082F40401300E822796EC0EF02DC182F4A0 :103AE0000401300E822796EC0EF02EC182F4040100 :103AF000300E822796EC0EF02FC182F40401300EB6 :103B0000822796EC0EF030C182F40401300E822739 :103B100096EC0EF031C182F40401300E822796EC4F :103B20000EF032C182F40401300E822796EC0EF0C2 :103B300033C182F40401300E822796EC0EF051EF6F :103B40001EF037B0A6EF1DF0020E166EE7EC36F051 :103B500000011650020AD8B4C4EF1DF005012F5120 :103B6000010AD8B4BAEF1DF015B2BFEF1DF081BA4B :103B7000BFEF1DF0000E166E15849AEF2AF0050EA9 :103B8000166E15845CEF39F08B8001015E6B5F6B04 :103B9000606B616B626B636B646B656B666B676BB1 :103BA000686B696B536B546BCF6ACE6A0F9A0F9C2C :103BB0000F9E030E166E9AEF2AF0E7EC36F0050121 :103BC0002F51010AD8B4EBEF1DF015B2F0EF1DF044 :103BD00081BAF0EF1DF0000E166E15849AEF2AF0F0 :103BE000050E166E15845CEF39F004014C0E826FE1 :103BF00096EC0EF00401350E826F96EC0EF0040187 :103C00002C0E826F96EC0EF097EC31F00784B9C55C :103C100000F1079420EC31F031C182F40401300E40 :103C2000822796EC0EF032C182F40401300E822716 :103C300096EC0EF033C182F40401300E822796EC2C :103C40000EF051EF1EF0AAEC36F097EC31F037C5CC :103C500000F120EC31F004014C0E826F96EC0EF076 :103C60000401360E826F96EC0EF004012C0E826F6A :103C700096EC0EF031C182F40401300E822796ECEE :103C80000EF032C182F40401300E822796EC0EF061 :103C900033C182F40401300E822796EC0EF051EF0E :103CA0001EF0A0EC0EF09AEF2AF004014C0E826F89 :103CB00096EC0EF00401500E826F96EC0EF00401AB :103CC0002C0E826F96EC0EF085C32AF186C32BF181 :103CD00087C32CF188C32DF189C32EF18AC32FF13C :103CE0008BC330F18CC331F18DC332F18EC333F10C :103CF0000101E5EC31F05CEC31F003018451530A31 :103D00000DE0030184514D0A38E00401780E826F02 :103D100096EC0EF0A0EC0EF09AEF2AF00401530E90 :103D2000826F96EC0EF0250E0C6E00C10BF04DEC80 :103D30000BF0260E0C6E01C10BF04DEC0BF0270EB4 :103D40000C6E02C10BF04DEC0BF0280E0C6E03C193 :103D50000BF04DEC0BF000C157F501C158F502C155 :103D600059F503C15AF500C15BF501C15CF502C10B :103D70005DF503C15EF532EF1FF004014D0E826F59 :103D800096EC0EF0290E0C6E00C10BF04DEC0BF012 :103D900000C15FF500C160F532EF1FF004014C0E69 :103DA000826F96EC0EF00401540E826F96EC0EF0CA :103DB00004012C0E826F96EC0EF084C32AF185C3A9 :103DC0002BF186C32CF187C32DF188C32EF189C353 :103DD0002FF18AC330F18BC331F18DC332F18EC321 :103DE00033F10101E5EC31F05CEC31F00101000E42 :103DF000046F000E056F010E066F000E076F93EC47 :103E000030F0210E0C6E00C10BF04DEC0BF0220EC9 :103E10000C6E01C10BF04DEC0BF0230E0C6E02C1C9 :103E20000BF04DEC0BF0240E0C6E03C10BF04DECBF :103E30000BF000C161F501C162F502C163F503C178 :103E400064F532EF1FF004014C0E826F96EC0EF019 :103E50000401490E826F96EC0EF004012C0E826F65 :103E600096EC0EF0250E64EC0BF0E8CF00F1260E78 :103E700064EC0BF0E8CF01F1270E64EC0BF0E8CF17 :103E800002F1280E64EC0BF0E8CF03F120EC31F0E6 :103E9000E3EC2EF00401730E826F96EC0EF0040139 :103EA0002C0E826F96EC0EF097EC31F0290E64EC3C :103EB0000BF0E8CF00F120EC31F0E3EC2EF0040140 :103EC0006D0E826F96EC0EF004012C0E826F96EC54 :103ED0000EF05BC500F15CC501F15DC502F15EC588 :103EE00003F120EC31F0E3EC2EF00401730E826F4D :103EF00096EC0EF004012C0E826F96EC0EF097EC0F :103F000031F060C500F120EC31F0E3EC2EF004015B :103F10006D0E826F96EC0EF004012C0E826F96EC03 :103F20000EF061C500F162C501F163C502F164C51F :103F300003F1B5EC2AF004012C0E826F96EC0EF022 :103F4000A0EC0EF09AEF2AF083C32AF184C32BF180 :103F500085C32CF186C32DF187C32EF188C32FF1C1 :103F600089C330F18AC331F18BC332F18CC333F191 :103F70000101E5EC31F05CEC31F0160E0C6E00C185 :103F80000BF04DEC0BF0170E0C6E01C10BF04DEC6D :103F90000BF0180E0C6E02C10BF04DEC0BF0190E6D :103FA0000C6E03C10BF04DEC0BF000C18EF101C1A2 :103FB0008FF102C190F103C191F100C192F101C1F1 :103FC00093F102C194F103C195F186EF20F083C310 :103FD0002AF184C32BF185C32CF186C32DF187C34D :103FE0002EF188C32FF189C330F18AC331F18BC31D :103FF00032F18CC333F10101E5EC31F05CEC31F0CE :1040000000C18EF101C18FF102C190F103C191F1A4 :1040100000C192F101C193F102C194F103C195F184 :1040200086EF20F083C32AF184C32BF185C32CF1E2 :1040300086C32DF187C32EF188C32FF189C330F1D8 :104040008AC331F18CC332F18DC333F10101E5EC48 :1040500031F05CEC31F00101000E046F000E056FD1 :10406000010E066F000E076F93EC30F01A0E0C6E07 :1040700000C10BF04DEC0BF01B0E0C6E01C10BF0F0 :104080004DEC0BF01C0E0C6E02C10BF04DEC0BF066 :104090001D0E0C6E03C10BF04DEC0BF000C196F140 :1040A00001C197F102C198F103C199F186EF20F0A7 :1040B00083C32AF184C32BF185C32CF186C32DF170 :1040C00087C32EF188C32FF189C330F18AC331F140 :1040D0008CC332F18DC333F10101E5EC31F05CECBE :1040E00031F00101000E046F000E056F010E066F26 :1040F000000E076F93EC30F000C196F101C197F10B :1041000002C198F103C199F186EF20F0160E64EC1C :104110000BF0E8CF00F1170E64EC0BF0E8CF01F1E3 :10412000180E64EC0BF0E8CF02F1190E64EC0BF002 :10413000E8CF03F120EC31F0E3EC2EF00401730E34 :10414000826F96EC0EF004012C0E826F96EC0EF04E :104150008EC100F18FC101F190C102F191C103F153 :1041600020EC31F0E3EC2EF00401730E826F96EC3C :104170000EF004012C0E826F96EC0EF01A0E64EC19 :104180000BF0E8CF00F11B0E64EC0BF0E8CF01F16F :104190001C0E64EC0BF0E8CF02F11D0E64EC0BF08A :1041A000E8CF03F1B5EC2AF004012C0E826F96ECF7 :1041B0000EF096C100F197C101F198C102F199C1C9 :1041C00003F1B5EC2AF0A0EC0EF09AEF2AF004010E :1041D000690E826F96EC0EF004012C0E826F96EC45 :1041E0000EF00101040E006F000E016F000E026F51 :1041F000000E036F20EC31F02CC182F40401300E6C :10420000822796EC0EF02DC182F40401300E822735 :1042100096EC0EF02EC182F40401300E822796EC4B :104220000EF02FC182F40401300E822796EC0EF0BE :1042300030C182F40401300E822796EC0EF031C1B9 :1042400082F40401300E822796EC0EF032C182F423 :104250000401300E822796EC0EF033C182F4040183 :10426000300E822796EC0EF004012C0E826F96EC35 :104270000EF00101060E006F000E016F000E026FBE :10428000000E036F20EC31F02CC182F40401300EDB :10429000822796EC0EF02DC182F40401300E8227A5 :1042A00096EC0EF02EC182F40401300E822796ECBB :1042B0000EF02FC182F40401300E822796EC0EF02E :1042C00030C182F40401300E822796EC0EF031C129 :1042D00082F40401300E822796EC0EF032C182F493 :1042E0000401300E822796EC0EF033C182F40401F3 :1042F000300E822796EC0EF004012C0E826F96ECA5 :104300000EF001014F0E006F000E016F000E026FE4 :10431000000E036F20EC31F02CC182F40401300E4A :10432000822796EC0EF02DC182F40401300E822714 :1043300096EC0EF02EC182F40401300E822796EC2A :104340000EF02FC182F40401300E822796EC0EF09D :1043500030C182F40401300E822796EC0EF031C198 :1043600082F40401300E822796EC0EF032C182F402 :104370000401300E822796EC0EF033C182F4040162 :10438000300E822796EC0EF004012C0E826F96EC14 :104390000EF0200EF86EF76AF66A04010900F5CFF8 :1043A00082F496EC0EF00900F5CF82F496EC0EF054 :1043B0000900F5CF82F496EC0EF00900F5CF82F4F7 :1043C00096EC0EF00900F5CF82F496EC0EF00900A1 :1043D000F5CF82F496EC0EF00900F5CF82F496EC5E :1043E0000EF00900F5CF82F496EC0EF0A0EC0EF082 :1043F0009AEF2AF08351630AD8A498EF2AF08451E7 :10440000610AD8A498EF2AF085516C0AD8A498EFD5 :104410002AF08651410A3FE08651440A1BE086514A :10442000420AD8B45EEF22F08651350AD8B424EFA0 :104430002CF08651360AD8B479EF2CF08651370A21 :10444000D8B4E2EF2CF08651380AD8B440EF2DF002 :1044500098EF2AF00798079A04017A0E826F96EC7B :104460000EF00401780E826F96EC0EF00401640EDB :10447000826F96EC0EF00401550E826F96EC0EF0F2 :1044800047EF22F004014C0E826F96EC0EF0A0EC88 :104490000EF09AEF2AF00788079A04017A0E826FCD :1044A00096EC0EF00401410E826F96EC0EF00401C2 :1044B000610E826F96EC0EF03BEF22F00798078AB0 :1044C00004017A0E826F96EC0EF00401420E826FA8 :1044D00096EC0EF00401610E826F96EC0EF03BEF4D :1044E00022F0010166677CEF22F067677CEF22F023 :1044F00068677CEF22F0696716D001014F6788EF8B :1045000022F0506788EF22F0516788EF22F052675F :104510000AD00101000E006F000E016F000E026F45 :10452000000E036F120011B80AD00101620E046F71 :10453000010E056F000E066F000E076F09D0010116 :10454000A70E046F020E056F000E066F000E076FB8 :1045500066C100F167C101F168C102F169C103F1EF :1045600082EC30F003BF25EF23F0119A119C01017A :10457000000E046FA80E056F550E066F020E076F32 :1045800066C100F167C101F168C102F169C103F1BF :1045900066C18AF167C18BF168C18CF169C18DF187 :1045A00082EC30F003BF0BD00101000E8A6FA80E21 :1045B0008B6F550E8C6F020E8D6F118A119C0E0E33 :1045C00064EC0BF0E8CF18F10F0E64EC0BF0E8CFC1 :1045D00019F1100E64EC0BF0E8CF1AF1110E64EC37 :1045E0000BF0E8CF1BF1CBEC2FF08AC104F18BC1AB :1045F00005F18CC106F18DC107F182EC30F0078224 :104600008FEC2FF0CBEC2FF007928FEC2FF08AC1BC :1046100000F18BC101F18CC102F18DC103F1079250 :104620008FEC2FF0CC0E046FE00E056F870E066F37 :10463000050E076F82EC30F000C118F101C119F1CD :1046400002C11AF103C11BF140D013AA2AEF23F0D3 :10465000138E139A119C119A0101800E006F1A0E8D :10466000016F060E026F000E036F4FC104F150C1BF :1046700005F151C106F152C107F182EC30F003AFF0 :1046800005D097EC31F0118C119A12000E0E64ECEB :104690000BF0E8CF18F10F0E64EC0BF0E8CF19F136 :1046A000100E64EC0BF0E8CF1AF1110E64EC0BF075 :1046B000E8CF1BF14FC100F150C101F151C102F12E :1046C00052C103F107828FEC2FF018C100F119C11C :1046D00001F11AC102F11BC103F112000784BAC132 :1046E00066F1BBC167F1BCC168F1BDC169F14BC1E5 :1046F0004FF14CC150F14DC151F14EC152F157C172 :1047000059F158C15AF10794010166678FEF23F000 :1047100067678FEF23F068678FEF23F0696716D024 :1047200001014F679BEF23F050679BEF23F0516728 :104730009BEF23F052670AD00101000E006F000EBC :10474000016F000E026F000E036F120011B80AD045 :104750000101620E046F010E056F000E066F000E60 :10476000076F09D00101A70E046F020E056F000E3E :10477000066F000E076F66C100F167C101F168C1E5 :1047800002F169C103F182EC30F003BF27EF24F09E :104790000101000E046FA80E056F550E066F020E84 :1047A000076F66C100F167C101F168C102F169C11B :1047B00003F166C18AF167C18BF168C18CF169C1EF :1047C0008DF182EC30F003BF09D00101000E8A6F39 :1047D000A80E8B6F550E8C6F020E8D6FCBEC2FF0E9 :1047E00000C104F101C105F102C106F103C107F1E5 :1047F000000E006FA00E016F980E026F7B0E036F0C :10480000B3EC30F000C118F101C119F102C11AF185 :1048100003C11BF1000E006FA00E016F980E026F16 :104820007B0E036F8AC104F18BC105F18CC106F1C7 :104830008DC107F1B3EC30F018C104F119C105F1D5 :104840001AC106F11BC107F182EC30F01200010120 :10485000A80E006F610E016F000E026F000E036F55 :104860004FC104F150C105F151C106F152C107F128 :1048700082EC30F003AF0AD00101A80E006F610E88 :10488000016F000E026F000E036F00D0C80E006FA4 :10489000AF0E016F000E026F000E036F4FC104F1E7 :1048A00050C105F151C106F152C107F193EC30F04E :1048B00012000784BAC166F1BBC167F1BCC168F1DF :1048C000BDC169F14BC14FF14CC150F14DC151F126 :1048D0004EC152F157C159F158C15AF10794010123 :1048E00066677AEF24F067677AEF24F068677AEFFB :1048F00024F0696716D001014F6786EF24F05067F6 :1049000086EF24F0516786EF24F052670AD0010148 :10491000000E006F000E016F000E026F000E036F9D :10492000120011B80AD00101620E046F010E056F6A :10493000000E066F000E076F09D00101A70E046F6D :10494000020E056F000E066F000E076F66C100F1C4 :1049500067C101F168C102F169C103F182EC30F075 :1049600003BF3CEF25F00101000E046FA80E056F98 :10497000550E066F020E076F66C100F167C101F1A7 :1049800068C102F169C103F166C18AF167C18BF1A7 :1049900068C18CF169C18DF182EC30F003BF09D0A0 :1049A0000101000E8A6FA80E8B6F550E8C6F020EE0 :1049B0008D6F010E006F000E016F000E026F000E72 :1049C000036F8AC104F18BC105F18CC106F18DC161 :1049D00007F1B3EC30F018C104F119C105F11AC1A7 :1049E00006F11BC107F120EC31F02AC182F4040169 :1049F000300E822796EC0EF02BC182F40401300EAB :104A0000822796EC0EF02CC182F40401300E82272E :104A100096EC0EF02DC182F40401300E822796EC44 :104A20000EF02EC182F40401300E822796EC0EF0B7 :104A30002FC182F40401300E822796EC0EF030C1B3 :104A400082F40401300E822796EC0EF031C182F41C :104A50000401300E822796EC0EF032C182F404017C :104A6000300E822796EC0EF033C182F40401300E32 :104A7000822796EC0EF012004FC100F150C101F1F7 :104A800051C102F152C103F1010120EC31F0E3EC1C :104A90002EF012000401730E826F96EC0EF00401EA :104AA0002C0E826F96EC0EF0078462C166F163C132 :104AB00067F164C168F165C169F14BC14FF14CC147 :104AC00050F14DC151F14EC152F157C159F158C188 :104AD0005AF1079470EC25F0A0EC0EF09AEF2AF052 :104AE00066C100F167C101F168C102F169C103F15A :104AF000010120EC31F0E3EC2EF00401630E826F33 :104B000096EC0EF004012C0E826F96EC0EF04FC165 :104B100000F150C101F151C102F152C103F1010193 :104B200020EC31F0E3EC2EF00401660E826F96EC7F :104B30000EF004012C0E826F96EC0EF097EC31F023 :104B400059C100F15AC101F1010120EC31F0E3EC4F :104B50002EF00401740E826F96EC0EF0120010829B :104B60000401530E826F96EC0EF004012C0E826F3E :104B700096EC0EF083C32AF184C32BF185C32CF18C :104B800086C32DF187C32EF188C32FF189C330F17D :104B90008AC331F18BC332F18CC333F10101E5ECEF :104BA00031F05CEC31F000C166F101C167F102C186 :104BB00068F103C169F18EC32AF18FC32BF190C351 :104BC0002CF191C32DF192C32EF193C32FF194C315 :104BD00030F195C331F196C332F197C333F101013E :104BE000E5EC31F05CEC31F000C14FF101C150F166 :104BF00002C151F103C152F1D8EC31F099C32FF148 :104C00009AC330F19BC331F19CC332F19DC333F1A0 :104C10000101E5EC31F05CEC31F000C159F101C16A :104C20005AF170EC25F004012C0E826F96EC0EF018 :104C30002AEF26F0118E1CA002D01CAE108C1BBED9 :104C400002D01BA4108E03018251520A02E10F828E :104C500001D00F928251750A02E1108401D01094A4 :104C60008251550A02E1108601D010968351310A13 :104C700003E11382138402D013921394030183512E :104C8000660A01E056D00401660E826F96EC0EF0C3 :104C900004012C0E826F96EC0EF06EEC23F020ECEB :104CA00031F02AC182F40401300E822796EC0EF016 :104CB0002BC182F40401300E822796EC0EF02CC139 :104CC00082F40401300E822796EC0EF02DC182F49E :104CD0000401300E822796EC0EF02EC182F40401FE :104CE000300E822796EC0EF02FC182F40401300EB4 :104CF000822796EC0EF030C182F40401300E822738 :104D000096EC0EF031C182F40401300E822796EC4D :104D10000EF032C182F40401300E822796EC0EF0C0 :104D200033C182F40401300E822796EC0EF098EF26 :104D30002AF011A003D011A401D01084078410B26E :104D400003EF27F010A4E7EF26F0BAC166F1BBC16C :104D500067F1BCC168F1BDC169F1BEC16AF1BFC1F3 :104D60006BF1C0C16CF1C1C16DF1C2C16EF1C3C1C3 :104D70006FF1C4C170F1C5C171F1C6C172F1C7C193 :104D800073F1C8C174F1C9C175F1CAC176F1CBC163 :104D900077F1CCC178F1CDC179F1CEC17AF1CFC133 :104DA0007BF1D0C17CF1D1C17DF1D2C17EF1D3C103 :104DB0007FF1D4C180F1D5C181F1D6C182F1D7C1D3 :104DC00083F1D8C184F1D9C185F1EFEF26F062C13A :104DD00066F163C167F164C168F165C169F1BAC187 :104DE00086F1BBC187F1BCC188F1BDC189F14BC15E :104DF0004FF14CC150F14DC151F14EC152F157C16B :104E000059F158C15AF107940FA025EF27F001017D :104E1000966712EF27F0976712EF27F0986712EF67 :104E200027F0996716EF27F025EF27F071EC22F0B5 :104E300096C104F197C105F198C106F199C107F136 :104E400082EC30F003BF5EEF2AF071EC22F001013A :104E5000000E046F000E056F010E066F000E076F47 :104E6000B3EC30F011A02AD011A228D020EC31F000 :104E7000296701D005D004012D0E826F96EC0EF04B :104E800030C182F40401300E822796EC0EF031C15D :104E900082F40401300E822796EC0EF032C182F4C7 :104EA0000401300E822796EC0EF033C182F4040127 :104EB000300E822796EC0EF0A0EC0EF012A8C5D0B2 :104EC00012981DC01EF01E3A1E42070E1E1600014B :104ED0001E50000AD8B4F1EF27F000011E50010A5D :104EE000D8B47DEF27F000011E50020AD8B47BEF42 :104EF00027F023EF28F023EF28F097EC31F02DC0B6 :104F000001F12EC000F1D89001330033D890013365 :104F100000330101630E046F000E056F000E066F73 :104F2000000E076FB3EC30F0280E046F000E056F13 :104F3000000E066F000E076F82EC30F000C130F0FB :104F400097EC31F02BC001F1019F019D2CC000F1C5 :104F50000101A40E046F000E056F000E066F000E17 :104F6000076FB3EC30F000C12FF000C104F101C1B4 :104F700005F102C106F103C107F1640E006F000ED6 :104F8000016F000E026F000E036F82EC30F0050E11 :104F9000046F000E056F000E066F000E076FB3EC76 :104FA00030F000C104F101C105F102C106F103C1F5 :104FB00007F197EC31F030C000F182EC30F000C125 :104FC00031F031C0E8FF050F305C03E78A8423EF3E :104FD00028F031C0E8FF0A0F305C01E68A9423EF25 :104FE00028F000C124F101C125F102C126F103C15D :104FF00027F197EC31F09DEC31F01D501F0BE8CFFD :1050000000F10101640E046F000E056F000E066FC3 :10501000000E076F93EC30F024C104F125C105F1B7 :1050200026C106F127C107F182EC30F003BF02D0A0 :105030008A9401D08A8424C100F125C101F126C1DE :1050400002F127C103F19AEF2AF000C124F101C156 :1050500025F102C126F103C127F110AE4DD0109EFB :1050600000C108F101C109F102C10AF103C10BF14C :1050700020EC31F030C1E2F131C1E3F132C1E4F1B1 :1050800033C1E5F108C100F109C101F10AC102F122 :105090000BC103F101016C0E046F070E056F000ECA :1050A000066F000E076F82EC30F003BF04D00101E1 :1050B000550EE66F1CD008C100F109C101F10AC10B :1050C00002F10BC103F10101A40E046F060E056F7E :1050D000000E066F000E076F82EC30F003BF04D0A5 :1050E00001017F0EE66F03D00101FF0EE66F1F8EF8 :1050F00011AE5EEF2AF0119E24C100F125C101F12D :1051000026C102F127C103F111A005D011A203D0DD :105110000FB05EEF2AF010A495EF28F00401750E91 :10512000826F96EC0EF09AEF28F00401720E826FF7 :1051300096EC0EF004012C0E826F96EC0EF020EC33 :1051400031F02967A9EF28F00401200E826FACEF3F :1051500028F004012D0E826F96EC0EF030C182F41F :105160000401300E822796EC0EF031C182F4040166 :10517000300E822796EC0EF004012E0E826F96EC14 :105180000EF032C182F40401300E822796EC0EF04C :1051900033C182F40401300E822796EC0EF0040134 :1051A0006D0E826F96EC0EF004012C0E826F96EC61 :1051B0000EF04FC100F150C101F151C102F152C1D5 :1051C00003F1010120EC31F0E3EC2EF00401480E74 :1051D000826F96EC0EF004017A0E826F96EC0EF060 :1051E00004012C0E826F96EC0EF066C100F167C1CF :1051F00001F168C102F169C103F1010120EC31F054 :10520000E3EC2EF00401630E826F96EC0EF00401C5 :105210002C0E826F96EC0EF066C100F167C101F1B1 :1052200068C102F169C103F101010A0E046F000EA9 :10523000056F000E066F000E076F93EC30F0000E46 :10524000046F120E056F000E066F000E076FB3ECB1 :1052500030F020EC31F02AC182F40401300E8227B4 :1052600096EC0EF02BC182F40401300E822796ECEE :105270000EF02CC182F40401300E822796EC0EF061 :105280002DC182F40401300E822796EC0EF02EC15F :1052900082F40401300E822796EC0EF02FC182F4C6 :1052A0000401300E822796EC0EF030C182F4040126 :1052B000300E822796EC0EF004012E0E826F96ECD3 :1052C0000EF031C182F40401300E822796EC0EF00C :1052D00032C182F40401300E822796EC0EF033C105 :1052E00082F40401300E822796EC0EF00401730E56 :1052F000826F96EC0EF004012C0E826F96EC0EF08D :1053000097EC31F059C100F15AC101F1C4EC2BF016 :1053100013A2DAEF29F004012C0E826F96EC0EF046 :1053200086C166F187C167F188C168F189C169F1F9 :1053300071EC22F00101000E046F000E056F010EEA :10534000066F000E076FB3EC30F020EC31F02967E8 :10535000AFEF29F00401200E826FB2EF29F00401B3 :105360002D0E826F96EC0EF030C182F40401300EE7 :10537000822796EC0EF031C182F40401300E8227B0 :1053800096EC0EF004012E0E826F96EC0EF032C1F8 :1053900082F40401300E822796EC0EF033C182F4C1 :1053A0000401300E822796EC0EF004016D0E826F20 :1053B00096EC0EF003018351460A01E007D0040188 :1053C0002C0E826F96EC0EF059EC24F013A40DEF26 :1053D0002AF004012C0E826F96EC0EF013ACFBEF5A :1053E00029F00401500E826F96EC0EF0139C139876 :1053F000139A0DEF2AF013AE08EF2AF00401460EBF :10540000826F96EC0EF0139E1398139A0DEF2AF00C :105410000401530E826F96EC0EF037B024EF2AF0A1 :1054200004012C0E826F96EC0EF08BB01FEF2AF069 :105430000401440E826F96EC0EF024EF2AF0040172 :10544000530E826F96EC0EF00FB22AEF2AF00FA0E7 :105450005CEF2AF004012C0E826F96EC0EF0200E09 :10546000F86EF76AF66A04010900F5CF82F496EC4B :105470000EF00900F5CF82F496EC0EF00900F5CF9E :1054800082F496EC0EF00900F5CF82F496EC0EF063 :105490000900F5CF82F496EC0EF00900F5CF82F406 :1054A00096EC0EF00900F5CF82F496EC0EF00900B0 :1054B000F5CF82F496EC0EF0A0EC0EF00F90109E5B :1054C00012989AEF2AF00401630E826F96EC0EF0A8 :1054D00004012C0E826F96EC0EF0A0EC2AF0040171 :1054E0002C0E826F96EC0EF013EC2BF004012C0EB8 :1054F000826F96EC0EF08FEC2BF004012C0E826F75 :1055000096EC0EF00101F80E006FCD0E016F660EE5 :10551000026F030E036FB5EC2AF004012C0E826FAC :1055200096EC0EF0A5EC2BF0A0EC0EF09AEF2AF022 :10553000A0EC0EF00301C26B07901092A9EF2DF0C2 :10554000D8900E0E64EC0BF0E8CF00F10F0E64EC77 :105550000BF0E8CF01F1100E64EC0BF0E8CF02F194 :10556000110E64EC0BF0E8CF03F10101000E046FA3 :10557000000E056F010E066F000E076FB3EC30F0E2 :1055800020EC31F02AC182F40401300E822796EC1F :105590000EF02BC182F40401300E822796EC0EF03F :1055A0002CC182F40401300E822796EC0EF02DC13E :1055B00082F40401300E822796EC0EF02EC182F4A4 :1055C0000401300E822796EC0EF02FC182F4040104 :1055D000300E822796EC0EF030C182F40401300EBA :1055E000822796EC0EF031C182F40401300E82273E :1055F00096EC0EF004012E0E826F96EC0EF032C186 :1056000082F40401300E822796EC0EF033C182F44E :105610000401300E822796EC0EF004016D0E826FAD :1056200096EC0EF01200120E64EC0BF0E8CF00F1D5 :10563000130E64EC0BF0E8CF01F1140E64EC0BF0E8 :10564000E8CF02F1150E64EC0BF0E8CF03F1010195 :105650000A0E046F000E056F000E066F000E076F36 :1056600093EC30F0000E046F120E056F000E066F03 :10567000000E076FB3EC30F020EC31F02AC182F459 :105680000401300E822796EC0EF02BC182F4040147 :10569000300E822796EC0EF02CC182F40401300EFD :1056A000822796EC0EF02DC182F40401300E822781 :1056B00096EC0EF02EC182F40401300E822796EC97 :1056C0000EF02FC182F40401300E822796EC0EF00A :1056D00030C182F40401300E822796EC0EF00401F2 :1056E0002E0E826F96EC0EF031C182F40401300E62 :1056F000822796EC0EF032C182F40401300E82272C :1057000096EC0EF033C182F40401300E822796EC41 :105710000EF00401730E826F96EC0EF012000A0E6A :1057200064EC0BF0E8CF00F10B0E64EC0BF0E8CF6B :1057300001F10C0E64EC0BF0E8CF02F10D0E64ECFD :105740000BF0E8CF03F1C4EF2BF0060E64EC0BF086 :10575000E8CF00F1070E64EC0BF0E8CF01F1080E82 :1057600064EC0BF0E8CF02F1090E64EC0BF0E8CF2B :1057700003F1C4EF2BF0010197EC31F0078457C11E :1057800000F158C101F107940101E80E046F800E89 :10579000056F000E066F000E076F93EC30F0000EE1 :1057A000046F040E056F000E066F000E076FB3EC5A :1057B00030F0880E046F130E056F000E066F000E9A :1057C000076F82EC30F00A0E046F000E056F000EBA :1057D000066F000E076FB3EC30F020EC31F00101E2 :1057E0002967F8EF2BF00401200E826FFBEF2BF0FE :1057F00004012D0E826F96EC0EF030C182F404018C :10580000300E822796EC0EF031C182F40401300E86 :10581000822796EC0EF032C182F40401300E82270A :1058200096EC0EF004012E0E826F96EC0EF033C152 :1058300082F40401300E822796EC0EF00401430E30 :10584000826F96EC0EF0120087C32AF188C32BF109 :1058500089C32CF18AC32DF18BC32EF18CC32FF198 :105860008DC330F18EC331F190C332F191C333F166 :105870000101296BE5EC31F05CEC31F00101000E27 :10588000046F000E056F010E066F000E076F93EC9C :1058900030F00E0E0C6E00C10BF04DEC0BF00F0E45 :1058A0000C6E01C10BF04DEC0BF0100E0C6E02C132 :1058B0000BF04DEC0BF0110E0C6E03C10BF04DEC28 :1058C0000BF004017A0E826F96EC0EF004012C0EA0 :1058D000826F96EC0EF00401350E826F96EC0EF09E :1058E00004012C0E826F96EC0EF0A0EC2AF047EF2C :1058F00022F087C32AF188C32BF189C32CF18AC314 :105900002DF18BC32EF18CC32FF18DC330F18EC3DB :1059100031F190C332F191C333F10101296BE5EC10 :1059200031F05CEC31F0880E046F130E056F000E41 :10593000066F000E076F87EC30F0000E046F040E48 :10594000056F000E066F000E076F93EC30F001013B :10595000E80E046F800E056F000E066F000E076FD5 :10596000B3EC30F00A0E0C6E00C10BF04DEC0BF0F6 :105970000B0E0C6E01C10BF04DEC0BF00C0E0C6E0F :1059800002C10BF04DEC0BF00D0E0C6E03C10BF0D1 :105990004DEC0BF004017A0E826F96EC0EF00401D0 :1059A0002C0E826F96EC0EF00401360E826F96EC90 :1059B0000EF004012C0E826F96EC0EF08FEC2BF0A3 :1059C00047EF22F087C32AF188C32BF189C32CF15A :1059D0008AC32DF18BC32EF18CC32FF18DC330F10F :1059E0008FC331F190C332F191C333F10101E5EC82 :1059F00031F05CEC31F0000E046F120E056F000EFA :105A0000066F000E076F93EC30F001010A0E046F71 :105A1000000E056F000E066F000E076FB3EC30F03E :105A2000120E0C6E00C10BF04DEC0BF0130E0C6E51 :105A300001C10BF04DEC0BF0140E0C6E02C10BF01B :105A40004DEC0BF0150E0C6E03C10BF04DEC0BF092 :105A500004017A0E826F96EC0EF004012C0E826F18 :105A600096EC0EF00401370E826F96EC0EF00401F6 :105A70002C0E826F96EC0EF013EC2BF047EF22F019 :105A800087C32AF188C32BF189C32CF18AC32DF176 :105A90008BC32EF18CC32FF18DC330F18EC331F146 :105AA00090C332F191C333F10101296BE5EC31F080 :105AB0005CEC31F0880E046F130E056F000E066F5C :105AC000000E076F87EC30F0000E046F040E056FB8 :105AD000000E066F000E076F93EC30F00101E80E28 :105AE000046F800E056F000E066F000E076FB3EC9B :105AF00030F0060E0C6E00C10BF04DEC0BF0070EF3 :105B00000C6E01C10BF04DEC0BF0080E0C6E02C1D7 :105B10000BF04DEC0BF0090E0C6E03C10BF04DECCD :105B20000BF004017A0E826F96EC0EF004012C0E3D :105B3000826F96EC0EF00401380E826F96EC0EF038 :105B400004012C0E826F96EC0EF0A5EC2BF047EFC3 :105B500022F007A81CEF2EF00101800E006F1A0E34 :105B6000016F060E026F000E036F4BC104F14CC1B2 :105B700005F14DC106F14EC107F182EC30F003BFD3 :105B800062EF2EF0DDEC2EF04BC100F14CC101F1C3 :105B90004DC102F14EC103F107828FEC2FF018C105 :105BA00004F119C105F11AC106F11BC107F1F80E84 :105BB000006FCD0E016F660E026F030E036F82EC55 :105BC00030F00E0E0C6E00C10BF04DEC0BF00F0E12 :105BD0000C6E01C10BF04DEC0BF0100E0C6E02C1FF :105BE0000BF04DEC0BF0110E0C6E03C10BF04DECF5 :105BF0000BF00784010197EC31F057C100F158C157 :105C000001F107940A0E0C6E00C10BF04DEC0BF085 :105C10000B0E0C6E01C10BF04DEC0BF00C0E0C6E6C :105C200002C10BF04DEC0BF00D0E0C6E03C10BF02E :105C30004DEC0BF062EF2EF007AA62EF2EF0078416 :105C4000010197EC31F057C100F158C101F10794FF :105C5000060E0C6E00C10BF04DEC0BF0070E0C6E37 :105C600001C10BF04DEC0BF0080E0C6E02C10BF0F5 :105C70004DEC0BF0090E0C6E03C10BF04DEC0BF06C :105C8000078462C100F163C101F164C102F165C121 :105C900003F10794120E0C6E00C10BF04DEC0BF0EB :105CA000130E0C6E01C10BF04DEC0BF0140E0C6ECC :105CB00002C10BF04DEC0BF0150E0C6E03C10BF096 :105CC0004DEC0BF00798079A0401805181197F0B66 :105CD0000DE09EA8FED714EE00F081517F0BE12667 :105CE000E750812B0F01AD6E64EF2EF005012F51AF :105CF000000AD8B4A5EF2EF081BA8AEF2EF015B2C3 :105D0000A5EF2EF005012F51010AD8B4A3EF2EF014 :105D10009CEF2EF005012F51000AD8B45CEF39F04A :105D200005012F51010AD8B4A3EF2EF0000116503F :105D3000050AD8B45CEF39F081B8A5EF2EF0E0EC9D :105D400032F0DEEC33F0F5EC38F0C4EF0DF018C1B2 :105D500000F119C101F11AC102F11BC103F1000EDA :105D6000046F000E056F010E066F000E076FB3EC97 :105D700030F029A1D2EF2EF02051D8B4D2EF2EF07E :105D800018C100F119C101F11AC102F11BC103F1DF :105D9000000E046F000E056F0A0E066F000E076FEF :105DA000B3EC30F01200010104510013055101134E :105DB000065102130751031312000101186B196BEE :105DC0001A6B1B6B12002AC182F40401300E822769 :105DD00096EC0EF02BC182F40401300E822796EC73 :105DE0000EF02CC182F40401300E822796EC0EF0E6 :105DF0002DC182F40401300E822796EC0EF02EC1E4 :105E000082F40401300E822796EC0EF02FC182F44A :105E10000401300E822796EC0EF030C182F40401AA :105E2000300E822796EC0EF031C182F40401300E60 :105E3000822796EC0EF032C182F40401300E8227E4 :105E400096EC0EF033C182F40401300E822796ECFA :105E50000EF012002FC182F40401300E822796EC5E :105E60000EF030C182F40401300E822796EC0EF061 :105E700031C182F40401300E822796EC0EF032C15B :105E800082F40401300E822796EC0EF033C182F4C6 :105E90000401300E822796EC0EF01200060E216EE1 :105EA000060E226E060E236E212E54EF2FF0222EA8 :105EB00054EF2FF0232E54EF2FF08B84020E216E1F :105EC000020E226E020E236E212E64EF2FF0222E80 :105ED00064EF2FF0232E64EF2FF08B941200FF0E4F :105EE000226E22C023F0030E216E8B84212E75EFCB :105EF0002FF0030E216E232E75EF2FF08B9422C00E :105F000023F0030E216E212E83EF2FF0030E216E5E :105F1000233E83EF2FF0222E71EF2FF012000101AC :105F2000005305E1015303E1025301E1002B52EC60 :105F300030F097EC31F03951006F3A51016F420E59 :105F4000046F4B0E056F000E066F000E076F93EC8B :105F500030F000C104F101C105F102C106F103C135 :105F600007F118C100F119C101F11AC102F11BC1F9 :105F700003F107B2C0EF2FF087EC30F0C2EF2FF043 :105F800082EC30F000C118F101C119F102C11AF11F :105F900003C11BF1120097EC31F059C100F15AC155 :105FA00001F1060E64EC0BF0E8CF04F1070E64EC8F :105FB0000BF0E8CF05F1080E64EC0BF0E8CF06F12A :105FC000090E64EC0BF0E8CF07F182EC30F000C171 :105FD00024F101C125F102C126F103C127F1290EE7 :105FE000046F000E056F000E066F000E076F93EC36 :105FF00030F0EE0E046F430E056F000E066F000EBC :10600000076F87EC30F024C104F125C105F126C1EA :1060100006F127C107F193EC30F000C11CF101C17A :106020001DF102C11EF103C11FF1120E64EC0BF051 :10603000E8CF04F1130E64EC0BF0E8CF05F1140E79 :1060400064EC0BF0E8CF06F1150E64EC0BF0E8CF32 :1060500007F10D0E006F000E016F000E026F000EB3 :10606000036F93EC30F0180E046F000E056F000EF6 :10607000066F000E076FB3EC30F01CC104F11DC1B8 :1060800005F11EC106F11FC107F187EC30F06A0E61 :10609000046F2A0E056F000E066F000E076F82EC6C :1060A00030F01200BF0EFA6E200E3A6F396BD890A6 :1060B0000037013702370337D8B063EF30F03A2F9B :1060C00058EF30F039073A070353D8B412000331C0 :1060D000070B80093F6F03390F0B010F396F80ECFD :1060E0005FF0406F390580EC5FF0405D405F396BD9 :1060F0003F33D8B0392739333FA978EF30F04051DA :10610000392712000101BCEC31F0D8B012000101B6 :1061100003510719346F7FEC31F0D8900751031900 :1061200034AF800F12000101346BA3EC31F0D8A022 :10613000B9EC31F0D8B012008EEC31F097EC31F0C0 :106140001F0E366FCFEC31F00B35D8B07FEC31F04D :10615000D8A00335D8B01200362FA2EF30F034B1FA :10616000A6EC31F012000101346B04510511061147 :1061700007110008D8A0A3EC31F0D8A0B9EC31F099 :10618000D8B01200086B096B0A6B0B6BCFEC31F0C7 :106190001F0E366FCFEC31F007510B5DD8A4DDEF49 :1061A00030F006510A5DD8A4DDEF30F00551095DED :1061B000D8A4DDEF30F00451085DD8A0F0EF30F046 :1061C0000451085F0551D8A0053D095F0651D8A0CC :1061D000063D0A5F0751D8A0073D0B5FD8900081AC :1061E000362FCAEF30F034B1A6EC31F0346BA3ECAB :1061F00031F0D890D3EC31F007510B5DD8A40DEFFE :1062000031F006510A5DD8A40DEF31F00551095D5A :10621000D8A40DEF31F00451085DD8A01CEF31F087 :10622000003F1CEF31F0013F1CEF31F0023F1CEF4B :1062300031F0032BD8B4120034B1A6EC31F01200C7 :106240000101346BA3EC31F0D8B01200D8EC31F07E :10625000200E366F003701370237033711EE33F067 :106260000A0E376FE7360A0EE75CD8B0E76EE552E4 :10627000372F32EF31F0362F2AEF31F034B1298148 :10628000D8901200D8EC31F0200E366F003701376D :106290000237033711EE33F00A0E376FE7360A0E76 :1062A000E75CD8B0E76EE552372F4EEF31F0362F6E :1062B00046EF31F0D890120001010A0E346F200E23 :1062C000366F11EE29F03451376F0A0ED890E6522E :1062D000D8B0E726E732372F67EF31F003330233C8 :1062E00001330033362F61EF31F0E750FF0FD8A0B4 :1062F0000335D8B0120029B1A6EC31F012000451D8 :1063000000270551D8B0053D01270651D8B0063DFC :1063100002270751D8B0073D032712000051086F2C :106320000151096F02510A6F03510B6F12000101F5 :10633000006B016B026B036B12000101046B056BB8 :10634000066B076B12000335D8A012000351800BB7 :10635000001F011F021F031F003FB6EF31F0013F76 :10636000B6EF31F0023FB6EF31F0032B342B0325AB :1063700012000735D8A012000751800B041F051F1B :10638000061F071F043FCCEF31F0053FCCEF31F083 :10639000063FCCEF31F0072B342B072512000037D6 :1063A000013702370337083709370A370B3712002E :1063B0000101296B2A6B2B6B2C6B2D6B2E6B2F6BBA :1063C000306B316B326B336B120001012A510F0BB2 :1063D0002A6F2B510F0B2B6F2C510F0B2C6F2D5144 :1063E0000F0B2D6F2E510F0B2E6F2F510F0B2F6F89 :1063F00030510F0B306F31510F0B316F32510F0B8A :10640000326F33510F0B336F120000C124F101C101 :1064100025F102C126F103C127F104C100F105C134 :1064200001F106C102F107C103F124C104F125C144 :1064300005F126C106F127C107F1120010A806D008 :106440008994000EC76E220EC66E05D08984000E98 :10645000C76E220EC66E050EE82EFED7120010A8DB :1064600002D0898401D08994050EE82EFED712004F :106470001EEC32F09E96C69E000EC96EFF0E9EB6B2 :1064800002D0E82EFCD79E96C69E000EC96EFF0E67 :106490009EB602D0E82EFCD7C9CFAFF59E96C69E19 :1064A000000EC96EFF0E9EB602D0E82EFCD7C9CFF3 :1064B000B0F59E96C69E000EC96EFF0E9EB602D027 :1064C000E82EFCD7C9CFB1F59E96C69E000EC96EC8 :1064D000FF0E9EB602D0E82EFCD7C9CFB2F59E962D :1064E000C69E000EC96EFF0E9EB602D0E82EFCD7E7 :1064F000C9CFB3F59E96C69E000EC96EFF0E9EB61E :1065000002D0E82EFCD7C9CFB4F59E96C69E000EE9 :10651000C96EFF0E9EB602D0E82EFCD7C9CFB5F5E6 :106520002FEC32F012001EEC32F09E96C69E800ECA :10653000C96EFF0E9EB602D0E82EFCD79E96C69E70 :10654000AFC5C9FFFF0E9EB602D0E82EFCD79E96BF :10655000C69EB0C5C9FFFF0E9EB602D0E82EFCD77E :106560009E96C69EB1C5C9FFFF0E9EB602D0E82E0C :10657000FCD79E96C69EB2C5C9FFFF0E9EB602D03E :10658000E82EFCD79E96C69EB3C5C9FFFF0E9EB6E9 :1065900002D0E82EFCD79E96C69EB4C5C9FFFF0E5A :1065A0009EB602D0E82EFCD79E96C69EB5C5C9FF02 :1065B000FF0E9EB602D0E82EFCD72FEC32F0120070 :1065C0001EEC32F09E96C69E070EC96EFF0E9EB65A :1065D00002D0E82EFCD79E96C69E000EC96EFF0E16 :1065E0009EB602D0E82EFCD7C9CFAFF59E96C69EC8 :1065F000000EC96EFF0E9EB602D0E82EFCD7C9CFA2 :10660000B0F59E96C69E000EC96EFF0E9EB602D0D5 :10661000E82EFCD7C9CFB1F59E96C69E000EC96E76 :10662000FF0E9EB602D0E82EFCD7C9CFB2F52FECF4 :1066300032F01EEC32F09E96C69E25C0C9FFFF0EBA :106640009EB602D0E82EFCD79E96C69E000EC96E5E :10665000FF0E9EB602D0E82EFCD7C9CFB6F52FECC0 :1066600032F012001EEC32F09E96C69E870EC96E66 :10667000FF0E9EB602D0E82EFCD79E96C69EAFC5F2 :10668000C9FFFF0E9EB602D0E82EFCD79E96C69E8E :10669000B0C5C9FFFF0E9EB602D0E82EFCD79E966D :1066A000C69EB1C5C9FFFF0E9EB602D0E82EFCD72C :1066B0009E96C69EB2C5C9FFFF0E9EB602D0E82EBA :1066C000FCD72FEC32F01EEC32F09E96C69E26C010 :1066D000C9FFFF0E9EB602D0E82EFCD79E96C69E3E :1066E000B6C5C9FFFF0E9EB602D0E82EFCD72FEC30 :1066F00032F012001EEC32F09E96C69E870EC96ED6 :10670000FF0E9EB602D0E82EFCD79E96C69E000EC7 :10671000C96EFF0E9EB602D0E82EFCD79E96C69E8E :10672000800EC96EFF0E9EB602D0E82EFCD79E9654 :10673000C69E800EC96EFF0E9EB602D0E82EFCD714 :106740009E96C69E800EC96EFF0E9EB602D0E82EA3 :10675000FCD72FEC32F012001EEC32F09E96C69E53 :10676000870EC96EFF0E9EB602D0E82EFCD79E960D :10677000C69E000EC96EFF0E9EB602D0E82EFCD754 :106780009E96C69E000EC96EFF0E9EB602D0E82EE3 :10679000FCD79E96C69E800EC96EFF0E9EB602D096 :1067A000E82EFCD79E96C69E800EC96EFF0E9EB642 :1067B00002D0E82EFCD72FEC32F0120010A817D030 :1067C0001EEC32F09E96C69E8F0EC96EFF0E9EB6D0 :1067D00002D0E82EFCD79E96C69E000EC96EFF0E14 :1067E0009EB602D0E82EFCD72FEC32F01200E0EC7F :1067F00032F0120010A82DD01EEC32F09E96C69EEC :1068000026C0C9FFFF0E9EB602D0E82EFCD79E968A :10681000C69E450EC96EFF0E9EB602D0E82EFCD76E :106820002FEC32F01EEC32F09E96C69E8F0EC96E93 :10683000FF0E9EB602D0E82EFCD79E96C69E000E96 :10684000C96EFF0E9EB602D0E82EFCD72FEC32F0B8 :1068500012001EEC32F09E96C69E26C0C9FFFF0EA7 :106860009EB602D0E82EFCD79E96C69E010EC96E3B :10687000FF0E9EB602D0E82EFCD72FEC32F01EECB5 :1068800032F09E96C69E910EC96EFF0E9EB602D045 :10689000E82EFCD79E96C69EA50EC96EFF0E9EB62C :1068A00002D0E82EFCD72FEC32F012001EEC32F0B2 :1068B0009E96C69E26C0C9FFFF0E9EB602D0E82E49 :1068C000FCD79E96C69E810EC96EFF0E9EB602D064 :1068D000E82EFCD72FEC32F012001EEC32F09E9620 :1068E000C69E26C0C9FFFF0E9EB602D0E82EFCD77A :1068F0009E96C69E010EC96EFF0E9EB602D0E82E71 :10690000FCD72FEC32F012001EEC32F09E96C69EA1 :10691000910EC96EFF0E9EB602D0E82EFCD79E9651 :10692000C69EA50EC96EFF0E9EB602D0E82EFCD7FD :106930002FEC32F012001EEC32F09E96C69E910EA5 :10694000C96EFF0E9EB602D0E82EFCD79E96C69E5C :10695000000EC96EFF0E9EB602D0E82EFCD72FECBB :1069600032F012000501256B266B276B286B899A84 :10697000400EC76E200EC66E9E96C69E030EC96E52 :10698000FF0E9EB602D0E82EFCD79E96C69E27C567 :10699000C9FFFF0E9EB602D0E82EFCD79E96C69E7B :1069A00026C5C9FFFF0E9EB602D0E82EFCD79E96E4 :1069B000C69E25C5C9FFFF0E9EB602D0E82EFCD7A5 :1069C0009E96C69EC952FF0E9EB602D0E82EFCD7F8 :1069D000898A0F01C950FF0A01E1120005012E51F9 :1069E000130A05E005012E51170A0CE012000501FB :1069F000F00E256FFF0E266F0F0E276F000E286F0B :106A00000BEF35F00501F00E256FFF0E266FFF0E20 :106A1000276F000E286F899A400EC76E200EC66E33 :106A20009E96C69E030EC96EFF0E9EB602D0E82E3D :106A3000FCD79E96C69E27C5C9FFFF0E9EB602D004 :106A4000E82EFCD79E96C69E26C5C9FFFF0E9EB6B1 :106A500002D0E82EFCD79E96C69E25C5C9FFFF0E24 :106A60009EB602D0E82EFCD79E96C69EC952FF0E57 :106A70009EB602D0E82EFCD7898A0F01C950FF0AC2 :106A80001DE005012E51130A05E005012E51170ADC :106A90000BE012000501000E256F000E266F100E90 :106AA000276F000E286F12000501000E256F000EE3 :106AB000266F000E276F010E286F12000501256B4F :106AC000266B276B286B05012E51130A05E0050183 :106AD0002E51170A0CE012000501000E216F000E66 :106AE000226F080E236F000E246F80EF35F0050132 :106AF000000E216F000E226F800E236F000E246F98 :106B000021C500F122C501F123C502F124C503F11D :106B100025C504F126C505F127C506F128C507F1ED :106B2000D3EC2EF000C125F501C126F502C127F5F1 :106B300003C128F5899A400EC76E200EC66E9E9638 :106B4000C69E030EC96EFF0E9EB602D0E82EFCD77D :106B50009E96C69E27C5C9FFFF0E9EB602D0E82EA0 :106B6000FCD79E96C69E26C5C9FFFF0E9EB602D0D4 :106B7000E82EFCD79E96C69E25C5C9FFFF0E9EB681 :106B800002D0E82EFCD79E96C69EC952FF0E9EB636 :106B900002D0E82EFCD7898AC950FF0A08E104C157 :106BA00025F505C126F506C127F507C128F5D890BA :106BB000050124332333223321332151F00B216F7C :106BC00005012167EBEF35F02267EBEF35F0236726 :106BD000EBEF35F0246780EF35F00501100E252727 :106BE000E86A2623E86A2723E86A28231200E86A6D :106BF00005012E51130A06E005012E51170A0BE07C :106C0000020E120005012851000A03E12751F00B82 :106C100007E0010E120005012851000A01E0010EF3 :106C2000120029C500F12AC501F12BC502F12CC5BE :106C300003F125C504F126C505F127C506F128C5D0 :106C400007F182EC30F003BF1200F7EC35F0D8A466 :106C500089EF36F0899A400EC76E200EC66E9E965A :106C6000C69E060EC96EFF0E9EB602D0E82EFCD759 :106C7000898A899A9E96C69E020EC96EFF0E9EB69E :106C800002D0E82EFCD79E96C69E27C5C9FFFF0EF0 :106C90009EB602D0E82EFCD79E96C69E26C5C9FF9A :106CA000FF0E9EB602D0E82EFCD79E96C69E25C546 :106CB000C9FFFF0E9EB602D0E82EFCD79E96C69E58 :106CC000000EC96EFF0E9EB602D0E82EFCD7898A50 :106CD000899A9E96C69E050EC96EFF0E9EB602D07C :106CE000E82EFCD79E96C69EC952FF0E9EB602D0D5 :106CF000E82EFCD7C9B072EF36F0898A0501100E74 :106D00002527E86A2623E86A2723E86A282311EF63 :106D100036F01200899A400EC76E200EC66E9E96FF :106D2000C69E060EC96EFF0E9EB602D0E82EFCD798 :106D3000898A899A9E96C69EC70EC96EFF0E9EB618 :106D400002D0E82EFCD7898A0501256B266B276BBC :106D5000286B1200899A400EC76E200EC66E9E9652 :106D6000C69E050EC96EFF0E9EB602D0E82EFCD759 :106D70009E96C69EC952FF0E9EB602D0E82EFCD744 :106D8000C9CF37F5898A1200899A400EC76E200E46 :106D9000C66E9E96C69EB90EC96EFF0E9EB602D0F6 :106DA000E82EFCD7898A1200899A400EC76E200E01 :106DB000C66E9E96C69EAB0EC96EFF0E9EB602D0E4 :106DC000E82EFCD7898AFF0EE82EFED71200F7ECDA :106DD00035F0D8A41200899A400EC76E200EC66EF8 :106DE0009E96C69E030EC96EFF0E9EB602D0E82E7A :106DF000FCD79E96C69E27C5C9FFFF0E9EB602D041 :106E0000E82EFCD79E96C69E26C5C9FFFF0E9EB6ED :106E100002D0E82EFCD79E96C69E25C5C9FFFF0E60 :106E20009EB602D0E82EFCD79E96C69EC952FF0E93 :106E30009EB602D0E82EFCD7898A0F01C950FF0AFE :106E4000D8A466EF38F00501FE0E376F0501FF0E7E :106E5000536FFF0E546FFF0E556FFF0E566F15A642 :106E60003799158638EC32F0AFC538F5B0C539F52D :106E7000B1C53AF5B2C53BF5B3C53CF5B4C53DF572 :106E8000B5C53EF50784BAC166F1BBC167F1BCC1A7 :106E900068F1BDC169F14BC14FF14CC150F14DC119 :106EA00051F14EC152F157C159F158C15AF1000187 :106EB0001650010AD8B46BEF37F000011650020AE1 :106EC000D8B490EF37F000011650040AD8B4B5EFEB :106ED00037F066EF38F00501476B486B496B4A6B3A :106EE00005014B6B4C6B4D6B4E6B05014F6B506B43 :106EF000516B526B8BA0379B71EC22F000C1DAF121 :106F000001C1DBF102C1DCF103C1DDF100C13FF5DC :106F100001C140F502C141F503C142F5D4EF37F09C :106F20000501476B486B496B4A6B05014B6B4C6B1A :106F30004D6B4E6B05014F6B506B516B526B71EC8F :106F400022F000C1DAF101C1DBF102C1DCF103C1C1 :106F5000DDF16EEC23F000C147F501C148F502C137 :106F600049F503C14AF566EF38F0379BDAC13FF5C2 :106F7000DBC140F5DCC141F5DDC142F571EC22F029 :106F800000C14BF501C14CF502C14DF503C14EF5F1 :106F90006EEC23F000C14FF501C150F502C151F56F :106FA00003C152F5D4EF37F005016167DFEF37F029 :106FB0006267DFEF37F06367DFEF37F06467E3EFB7 :106FC00037F0F8EF37F0DAC100F1DBC101F1DCC1D5 :106FD00002F1DDC103F161C504F162C505F163C5CC :106FE00006F164C507F182EC30F003BF66EF38F0BC :106FF00059C143F55AC144F5B9C545F50501110E0E :10700000326F899A400EC76E200EC66E9E96C69E3F :10701000060EC96EFF0E9EB602D0E82EFCD7898AF6 :10702000899A9E96C69E020EC96EFF0E9EB602D02B :10703000E82EFCD79E96C69E27C5C9FFFF0E9EB6BA :1070400002D0E82EFCD79E96C69E26C5C9FFFF0E2D :107050009EB602D0E82EFCD79E96C69E25C5C9FFD7 :10706000FF0E9EB602D0E82EFCD725EE37F0322F69 :1070700002D046EF38F09E96C69EDECFC9FFFF0EC7 :107080009EB602D0E82EFCD737EF38F0898A899A6D :107090009E96C69E050EC96EFF0E9EB602D0E82EC5 :1070A000FCD79E96C69EC952FF0E9EB602D0E82E11 :1070B000FCD7C9B051EF38F0898A0501100E252799 :1070C000E86A2623E86A2723E86A282315900794AC :1070D000120021C500F122C501F123C502F124C52A :1070E00003F1899A400EC76E200EC66E9E96C69E0C :1070F0000B0EC96EFF0E9EB602D0E82EFCD79E96F0 :10710000C69E02C1C9FFFF0E9EB602D0E82EFCD774 :107110009E96C69E01C1C9FFFF0E9EB602D0E82E04 :10712000FCD79E96C69E00C1C9FFFF0E9EB602D038 :10713000E82EFCD79E96C69EC952FF0E9EB602D080 :10714000E82EFCD725EE37F00501100E326F9E9623 :10715000C69EC952FF0E9EB602D0E82EFCD7C9CFFC :10716000DEFF322FA7EF38F0898A1200899A400E8D :10717000C76E200EC66E9E96C69E900EC96EFF0EFE :107180009EB602D0E82EFCD79E96C69E000EC96E13 :10719000FF0E9EB602D0E82EFCD79E96C69E000E2D :1071A000C96EFF0E9EB602D0E82EFCD79E96C69EF4 :1071B000000EC96EFF0E9EB602D0E82EFCD79E963A :1071C000C69EC952FF0E9EB602D0E82EFCD7C9CF8C :1071D0002DF59E96C69EC952FF0E9EB602D0E82E91 :1071E000FCD7C9CF2EF5898A120038EC32F00501A0 :1071F0002F51010A5FE005012F51020A16E0050137 :107200002F51030A19E005012F51040A24E005015A :107210002F51050A2BE005012F51060A39E005011F :107220002F51070A3FE05AEF39F0602F58EF39F03D :107230005FC560F55AEF39F0B0C500F101010F0EDE :10724000001701010051000A35E001010051050A53 :1072500031E058EF39F0B0C500F101010F0E001711 :1072600001010051000A26E058EF39F00501B05144 :10727000000A20E00501B051150A1CE00501B051DB :10728000300A18E00501B051450A14E058EF39F012 :107290000501B051000A0EE00501B051300A0AE0C4 :1072A00058EF39F00501B051000A04E058EF39F009 :1072B00015901200158012008B904EEC2FF0B9C57E :1072C000E8FFD70802E34EEC2FF0B9C5E8FFC80885 :1072D00002E34EEC2FF0B9C5E8FFB90802E34EEC2B :1072E0002FF0B9C5E8FFAA0802E34EEC2FF0B9C5AC :1072F000E8FF9B0802E34EEC2FF0C4EC36F0F29C62 :10730000F29E8B94C69AC2909482948C720ED36E25 :10731000D3A4FED789968A909390F29AF2949D9086 :107320009E909D929E92F298F292DEEC33F0FF0EC8 :10733000E8CF00F0E82EFED7002EFCD7F290F286C0 :10734000815081A8A6EF39F0F29E0300700ED36E33 :10735000F296F290158403806FEC2FF09AEF0BF009 :10BF0000E844F926000C160C2B0C3F0C520C640C68 :10BF1000760C860C960CA50CB30CC10CCF0CDC0C6B :06BF2000E80CF40C000C1B :0200000400F00A :0100C800FE39 :00000001FF ./firmware/SQM-LU-DLS-4-13-75.hex0000644000175000017500000022334613630267512015707 0ustar anthonyanthony:020000040000FA :0408000098EF0BF072 :1008100003B275EF05F0F2B493EF05F09EB09BEFD5 :1008200005F09EB2A3EF05F0F2A81AEF04F0F2B2C1 :1008300023EF04F0F2B01FEF04F047EF0BF0F29655 :10084000F29047EF0BF0CD90F2929EA02DEF04F0C6 :100850000101533F2DEF04F0542BB2C1B6F1B3C1E7 :10086000B7F1B4C1B8F1B5C1B9F1AEC1B2F1AFC120 :10087000B3F1B0C1B4F1B1C1B5F1AAC1AEF1ABC130 :10088000AFF1ACC1B0F1ADC1B1F1A6C1AAF1A7C140 :10089000ABF1A8C1ACF1A9C1ADF1A2C1A6F1A3C150 :1008A000A7F1A4C1A8F1A5C1A9F19EC1A2F19FC160 :1008B000A3F1A0C1A4F1A1C1A5F19AC19EF19BC170 :1008C0009FF19CC1A0F19DC1A1F1CECF9AF1CFCFF4 :1008D0009BF153C19CF154C19DF1CF6ACE6A0101D5 :1008E000536B546B9E90CD800FBC0F8E0FBA7CEF74 :1008F00004F00F8A47EF0BF013880F8C0FBEB9EF8F :1009000004F09AC19EF19BC19FF19CC1A0F19DC1D1 :10091000A1F19EC1A2F19FC1A3F1A0C1A4F1A1C107 :10092000A5F1A2C1A6F1A3C1A7F1A4C1A8F1A5C1D7 :10093000A9F1A6C1AAF1A7C1ABF1A8C1ACF1A9C1A7 :10094000ADF1AAC1AEF1ABC1AFF1ACC1B0F1ADC177 :10095000B1F1AEC1B2F1AFC1B3F1B0C1B4F1B1C147 :10096000B5F1B2C1B6F1B3C1B7F1B4C1B8F1B5C117 :10097000B9F101015E6B5F6B606B616B9A515E2731 :100980009B515F239C5160239D5161239E515E27A3 :100990009F515F23A0516023A1516123A2515E2783 :1009A000A3515F23A4516023A5516123A6515E2763 :1009B000A7515F23A8516023A9516123AA515E2743 :1009C000AB515F23AC516023AD516123AE515E2723 :1009D000AF515F23B0516023B1516123B2515E2703 :1009E000B3515F23B4516023B5516123B6515E27E3 :1009F000B7515F23B8516023B9516123D8900101E9 :100A0000613360335F335E33D8900101613360330B :100A10005F335E33D8900101613360335F335E33FF :100A200000C10CF101C10DF102C10EF103C10FF1C2 :100A300004C110F105C111F106C112F107C113F192 :100A400008C114F109C115F10AC116F10BC117F162 :100A500034C135F111B838EF05F00101620E046FB1 :100A6000010E056F000E066F000E076F41EF05F0D7 :100A70000101A70E046F020E056F000E066F000E37 :100A8000076F5EC100F15FC101F160C102F161C198 :100A900003F154EC30F003BF04D01CBE02D01CA004 :100AA000108C11A059EF05F010BA59EF05F00F8026 :100AB000108A0CC100F10DC101F10EC102F10FC18C :100AC00003F110C104F111C105F112C106F113C106 :100AD00007F114C108F115C109F116C10AF117C1D6 :100AE0000BF135C134F147EF0BF00392ABB2AB9889 :100AF000AB88030103EE00F080517F0BE92604C0B0 :100B0000EFFF802B8151805D700BD8A48B82000099 :100B10008051815D700BD8A48B9281518019D8B41B :100B2000079047EF0BF0F2940101453F47EF0BF0C0 :100B3000462B47EF0BF09E900101533F47EF0BF020 :100B4000542B47EF0BF09E9211B843EF08F00400CE :100B500066A1ABEF05F08BB4B5EF05F010ACB5EFC7 :100B600005F08B84109CB6EF05F08B94077C07ACE6 :100B7000D1EF05F0C274C2B4CBEF05F0C3CFB7F527 :100B8000C4CFB8F50501D890B833B733D890B8338F :100B9000B733D2EF05F0C3CF55F1C4CF56F1D2EF42 :100BA00005F0C28207B444EF06F047C14BF148C1DB :100BB0004CF149C14DF14AC14EF15EC162F15FC1D4 :100BC00063F160C164F161C165F113A8EAEF05F05A :100BD000138C13989AC1BAF19BC1BBF19CC1BCF1B3 :100BE0009DC1BDF19EC1BEF19FC1BFF1A0C1C0F1C9 :100BF000A1C1C1F1A2C1C2F1A3C1C3F1A4C1C4F199 :100C0000A5C1C5F1A6C1C6F1A7C1C7F1A8C1C8F168 :100C1000A9C1C9F1AAC1CAF1ABC1CBF1ACC1CCF138 :100C2000ADC1CDF1AEC1CEF1AFC1CFF1B0C1D0F108 :100C3000B1C1D1F1B2C1D2F1B3C1D3F1B4C1D4F1D8 :100C4000B5C1D5F1B6C1D6F1B7C1D7F1B8C1D8F1A8 :100C5000B9C1D9F1B7C5B9F5B8C5BAF5B9C5BBF5CC :100C6000BAC5BCF5010155515B2756515C23E86AB2 :100C70005D230E2E44EF06F05CC157F15DC158F1C3 :100C80005B6B5C6B5D6B078E0201002F47EF0BF017 :100C90003C0E006F1D50E00BE00AE86612881BBE98 :100CA00002D01BB4108E00C10CF101C10DF102C1C4 :100CB0000EF103C10FF104C110F105C111F106C11C :100CC00012F107C113F108C114F109C115F10AC1EC :100CD00016F10BC117F134C135F181AAACEF06F062 :100CE00015A4F7EF06F005012F51000AD8B43AEF2A :100CF00007F005012F51010AD8B4B6EF06F005013F :100D00002F51020AD8B4F7EF06F005012F51030A5C :100D1000D8B4F7EF06F005012F51040AD8B4F7EF65 :100D200006F005012F51050AD8B4F7EF06F00501CA :100D30002F51060AD8B4F7EF06F005012F51070A24 :100D4000D8B4F7EF06F005012F51320AD8B4B4EF4A :100D500006F02F6B3AEF07F000011650030AD8B4E3 :100D6000F7EF06F03AEF07F03AEF07F005015767A3 :100D7000C1EF06F05867C1EF06F05967C1EF06F002 :100D80005A67C5EF06F03AEF07F05BC500F15CC5A6 :100D900001F15DC502F15EC503F10101010E046FB1 :100DA000000E056F000E066F000E076F54EC30F05A :100DB00000C15BF501C15CF502C15DF503C15EF5E3 :100DC00001010067EBEF06F00167EBEF06F0026749 :100DD000EBEF06F003673AEF07F057C55BF558C530 :100DE0005CF559C55DF55AC55EF524EF07F00FBEF9 :100DF0000CEF07F010A011EF07F00101476708EFB3 :100E000007F0486708EF07F0496708EF07F04A67FF :100E10000CEF07F011EF07F007AE11EF07F024EF2A :100E200007F00501312F3AEF07F03C0E316F302FFC :100E30003AEF07F00101000E626FE00E636FA50E3E :100E4000646F010E656F138800011650000AD8B454 :100E500032EF07F000011650030AD8B437EF07F05D :100E60003AEF07F00001010E166E3AEF07F00001AD :100E7000040E166E0501666B37B740EF07F066810A :100E80000CC100F10DC101F10EC102F10FC103F15E :100E900010C104F111C105F112C106F113C107F12E :100EA00014C108F115C109F116C10AF117C10BF1FE :100EB00035C134F100C10CF101C10DF102C10EF1D7 :100EC00003C10FF104C110F105C111F106C112F106 :100ED00007C113F108C114F109C115F10AC116F1D6 :100EE0000BC117F134C135F101018E677FEF07F0B7 :100EF0008F677FEF07F090677FEF07F0916783EFD1 :100F000007F0B4EF07F092C100F193C101F194C171 :100F100002F195C103F10101010E046F000E056F8E :100F2000000E066F000E076F54EC30F000C192F116 :100F300001C193F102C194F103C195F10101006770 :100F4000A9EF07F00167A9EF07F00267A9EF07F023 :100F50000367B4EF07F08EC192F18FC193F190C196 :100F600094F191C195F10F80D57ED5BE6ED0D6CFCC :100F700047F1D7CF48F145C149F1E86AE8CF4AF1D6 :100F8000138A1CBE02D01CA0108C109047C100F127 :100F900048C101F149C102F14AC103F101010A0E40 :100FA000046F000E056F000E066F000E076F54EC05 :100FB00030F003AF1080010154A7EBEF07F00F9A58 :100FC0000F9C0F9E0101000E5E6F600E5F6F3D0E65 :100FD000606F080E616F010147BFFBEF07F04867C4 :100FE000FBEF07F04967FBEF07F04A67FBEF07F0FD :100FF000F28820EF08F0F2985E6B5F6B606B616BBC :101000009A6B9B6B9C6B9D6B9E6B9F6BA06BA16B9C :10101000A26BA36BA46BA56BA66BA76BA86BA96B4C :10102000AA6BAB6BAC6BAD6BAE6BAF6BB06BB16BFC :10103000B26BB36BB46BB56BB66BB76BB86BB96BAC :10104000D76AD66A0101456B466B0CC100F10DC130 :1010500001F10EC102F10FC103F110C104F111C180 :1010600005F112C106F113C107F114C108F115C150 :1010700009F116C10AF117C10BF135C134F147EF7F :101080000BF047EF0BF00201002FABEF0AF0D59EFB :10109000D6CF47F1D7CF48F145C149F1E86AE8CF4B :1010A0004AF1138AD76AD66A0101456B466BD58E21 :1010B0001D50E00BE00AE86612881BBE02D01BB48C :1010C000108E1AAE1F8C00C10CF101C10DF102C1CE :1010D0000EF103C10FF104C110F105C111F106C1F8 :1010E00012F107C113F108C114F109C115F10AC1C8 :1010F00016F10BC117F134C135F10FA0109A11B8D8 :101100008DEF08F00101620E046F010E056F000EF5 :10111000066F000E076F96EF08F00101A70E046F2F :10112000020E056F000E066F000E076F47C100F13B :1011300048C101F149C102F14AC103F154EC30F058 :1011400003BFA9EF08F01CBE02D01CA0108C11B088 :101150000F800CC100F10DC101F10EC102F10FC1F0 :1011600003F110C104F111C105F112C106F113C15F :1011700007F114C108F115C109F116C10AF117C12F :101180000BF135C134F102013C0E006F00C10CF1CE :1011900001C10DF102C10EF103C10FF104C110F143 :1011A00005C111F106C112F107C113F108C114F113 :1011B00009C115F10AC116F10BC117F134C135F19E :1011C00081BAE6EF08F015B225EF09F015A025EF7A :1011D00009F015A470EF09F005012F51000AD8B4E9 :1011E000B3EF09F005012F51010AD8B42FEF09F030 :1011F00005012F51020AD8B470EF09F005012F51F3 :10120000030AD8B470EF09F005012F51040AD8B4CD :1012100070EF09F005012F51050AD8B470EF09F0FD :1012200005012F51060AD8B470EF09F005012F51BE :10123000070AD8B470EF09F005012F51320AD8B46B :101240002DEF09F02F6BB3EF09F000011650030AE0 :10125000D8B470EF09F0B3EF09F0B3EF09F005016E :1012600057673AEF09F058673AEF09F059673AEFD4 :1012700009F05A673EEF09F0B3EF09F05BC500F1E2 :101280005CC501F15DC502F15EC503F10101010E0E :10129000046F000E056F000E066F000E076F54EC12 :1012A00030F000C15BF501C15CF502C15DF503C121 :1012B0005EF50101006764EF09F0016764EF09F072 :1012C000026764EF09F00367B3EF09F057C55BF5F8 :1012D00058C55CF559C55DF55AC55EF59DEF09F039 :1012E0000FBE85EF09F010A08AEF09F001014767F2 :1012F00081EF09F0486781EF09F0496781EF09F054 :101300004A6785EF09F08AEF09F007AE8AEF09F026 :101310009DEF09F00501312FB3EF09F03C0E316F5D :10132000302FB3EF09F00101000E626FE00E636F22 :10133000A50E646F010E656F138800011650000A38 :10134000D8B4ABEF09F000011650030AD8B4B0EFDF :1013500009F0B3EF09F00001010E166EB3EF09F0CA :101360000001040E166E0501666B37B7B9EF09F080 :1013700066810CC100F10DC101F10EC102F10FC176 :1013800003F110C104F111C105F112C106F113C13D :1013900007F114C108F115C109F116C10AF117C10D :1013A0000BF135C134F100C10CF101C10DF102C1E5 :1013B0000EF103C10FF104C110F105C111F106C115 :1013C00012F107C113F108C114F109C115F10AC1E5 :1013D00016F10BC117F134C135F101018E67F8EF39 :1013E00009F08F67F8EF09F09067F8EF09F091675F :1013F000FCEF09F02DEF0AF092C100F193C101F169 :1014000094C102F195C103F10101010E046F000EB8 :10141000056F000E066F000E076F54EC30F000C130 :1014200092F101C193F102C194F103C195F101015F :10143000006722EF0AF0016722EF0AF0026722EF4D :101440000AF003672DEF0AF08EC192F18FC193F17C :1014500090C194F191C195F10F80109047C100F1B6 :1014600048C101F149C102F14AC103F101010A0E6B :10147000046F000E056F000E066F000E076F54EC30 :1014800030F003AF1080010154A753EF0AF00F9A18 :101490000F9C0F9E0101000E5E6F600E5F6F3D0E90 :1014A000606F080E616F47C100F148C101F149C189 :1014B00002F14AC103F10101140E046F050E056F1C :1014C000000E066F000E076F54EC30F003AF6CEFA8 :1014D0000AF0F28891EF0AF0F2985E6B5F6B606B36 :1014E000616B9A6B9B6B9C6B9D6B9E6B9F6BA06BF8 :1014F000A16BA26BA36BA46BA56BA66BA76BA86B70 :10150000A96BAA6BAB6BAC6BAD6BAE6BAF6BB06B1F :10151000B16BB26BB36BB46BB56BB66BB76BB86BCF :10152000B96B0CC100F10DC101F10EC102F10FC187 :1015300003F110C104F111C105F112C106F113C18B :1015400007F114C108F115C109F116C10AF117C15B :101550000BF135C134F104008BB4B6EF0AF010ACD6 :10156000B6EF0AF08B84109CB7EF0AF08B94077CDF :1015700007ACD2EF0AF0C274C2B4CCEF0AF0C3CF0A :10158000B7F5C4CFB8F50501D890B833B733D890C4 :10159000B833B733D3EF0AF0C3CF55F1C4CF56F108 :1015A000D3EF0AF0C28207B445EF0BF047C14BF10D :1015B00048C14CF149C14DF14AC14EF15EC162F1E1 :1015C0005FC163F160C164F161C165F113A8EBEF24 :1015D0000AF0138C13989AC1BAF19BC1BBF19CC15C :1015E000BCF19DC1BDF19EC1BEF19FC1BFF1A0C1C3 :1015F000C0F1A1C1C1F1A2C1C2F1A3C1C3F1A4C193 :10160000C4F1A5C1C5F1A6C1C6F1A7C1C7F1A8C162 :10161000C8F1A9C1C9F1AAC1CAF1ABC1CBF1ACC132 :10162000CCF1ADC1CDF1AEC1CEF1AFC1CFF1B0C102 :10163000D0F1B1C1D1F1B2C1D2F1B3C1D3F1B4C1D2 :10164000D4F1B5C1D5F1B6C1D6F1B7C1D7F1B8C1A2 :10165000D8F1B9C1D9F1B7C5B9F5B8C5BAF5B9C5A9 :10166000BBF5BAC5BCF5010155515B2756515C234A :10167000E86A5D230E2E45EF0BF05CC157F15DC1AA :1016800058F15B6B5C6B5D6B078E47EF0BF002C034 :10169000E0FF005001C0D8FF1000A6B24DEF0BF0E4 :1016A0000CC0A9FF0BC0A8FFA69EA69CA684F29E14 :1016B000550EA76EAA0EA76EA682F28EA694A6B2AB :1016C0005FEF0BF00C2A1200A96EA69EA69CA680C6 :1016D000A8500C2A120004012C0E826F96EC0EF01A :1016E00069EC31F00C5064EC0BF0E8CF00F10C50D9 :1016F00064EC0BF0E8CF01F101AF84EF0BF00101D6 :10170000FF0E026FFF0E036FF2EC30F0296790EFCF :101710000BF00401200E826F96EC0EF095EF0BF0AB :1017200004012D0E826F96EC0EF0FCEC2EF01200F0 :1017300015941596076A0F6A106A116A126A136A7D :10174000166A0F010D0EC16E860EC06E030EC26EBC :101750000F01680E896E130E926E080E8A6EF30EDC :10176000936E8B6A900E946EC80E64EC0BF0E8CF0B :10177000E8FF1098E8A0108810A805D00E0E256E7E :101780008E0E266E04D00F0E256E8F0E266E01EC87 :1017900032F04CEC33F0F18EF19EFC0E64EC0BF069 :1017A000E8CF0BF00BA011800BA211820BA41184C7 :1017B0000BA81188C90E64EC0BF0E8CF1AF0CA0E22 :1017C00064EC0BF0E8CF1BF0CB0E64EC0BF0E8CF31 :1017D0001CF0CC0E64EC0BF0E8CF1DF0FB0E64ECBB :1017E0000BF0E8CF37F0CE0E64EC0BF0E8CF14F03E :1017F000CD0E64EC0BF0E8CF36F01F6A206A0E6A5B :1018000001015B6B5C6B5D6B576B586BF29A01016E :10181000476B486B496B4A6B4B6B4C6B4D6B4E6B1C :101820004F6B506B516B526B456B466BD76AD66AE8 :101830000F01280ED56EF28A9D90B00ECD6E01017B :101840005E6B5F6B606B616B626B636B646B656B34 :10185000666B676B686B696B536B546BCF6ACE6A50 :101860000F9A0F9C0F9E9D80760ECA6E9D8202017C :101870003C0E006FCC6A160E64EC0BF0E8CF00F162 :10188000170E64EC0BF0E8CF01F1180E64EC0BF0CE :10189000E8CF02F1190E64EC0BF0E8CF03F101017F :1018A00003AF6DEF0CF069EC31F0160E0C6E00C159 :1018B0000BF04DEC0BF0170E0C6E01C10BF04DEC64 :1018C0000BF0180E0C6E02C10BF04DEC0BF0190E64 :1018D0000C6E03C10BF04DEC0BF000C18EF101C199 :1018E0008FF102C190F103C191F100C192F101C1E8 :1018F00093F102C194F103C195F11A0E64EC0BF05F :10190000E8CF00F11B0E64EC0BF0E8CF01F11C0EE8 :1019100064EC0BF0E8CF02F11D0E64EC0BF0E8CFA5 :1019200003F1010103AFC3EF0CF069EC31F01A0EC3 :101930000C6E00C10BF04DEC0BF01B0E0C6E01C1D8 :101940000BF04DEC0BF01C0E0C6E02C10BF04DECCD :101950000BF01D0E0C6E03C10BF04DEC0BF01A0ECC :1019600064EC0BF0E8CF00F11B0E64EC0BF0E8CF59 :1019700001F11C0E64EC0BF0E8CF02F11D0E64ECDB :101980000BF0E8CF03F100C196F101C197F102C15C :1019900098F103C199F1240EAC6E900EAB6E240E3B :1019A000AC6E080EB86E000EB06E1F0EAF6E040166 :1019B000806B816B0F01900EAB6E0F019D8A03014E :1019C000806B816BC26B8B92A6EC36F0A6EC36F086 :1019D00088EC38F084EC34F0200E64EC0BF0E8CFA7 :1019E0002FF505012F51FF0AD8A4FEEF0CF02F6B45 :1019F000200E0C6E2FC50BF04DEC0BF00501010E07 :101A0000306F3C0E316F250E64EC0BF0E8CF00F127 :101A1000260E64EC0BF0E8CF01F1270E64EC0BF01E :101A2000E8CF02F1280E64EC0BF0E8CF03F10101DE :101A300003AF35EF0DF069EC31F0250E0C6E00C1EF :101A40000BF04DEC0BF0260E0C6E01C10BF04DECC3 :101A50000BF0270E0C6E02C10BF04DEC0BF0280EB4 :101A60000C6E03C10BF04DEC0BF000C157F501C13A :101A700058F502C159F503C15AF500C15BF501C122 :101A80005CF502C15DF503C15EF5290E64EC0BF057 :101A9000E8CF5FF5050160515F5DD8A05FC560F5D7 :101AA000210E64EC0BF0E8CF00F1220E64EC0BF099 :101AB000E8CF01F1230E64EC0BF0E8CF02F1240E25 :101AC00064EC0BF0E8CF03F1010103AF96EF0DF0EA :101AD00069EC31F0210E0C6E00C10BF04DEC0BF0F7 :101AE000220E0C6E01C10BF04DEC0BF0230E0C6EB0 :101AF00002C10BF04DEC0BF0240E0C6E03C10BF089 :101B00004DEC0BF0210E64EC0BF0E8CF00F1220E4F :101B100064EC0BF0E8CF01F1230E64EC0BF0E8CF9E :101B200002F1240E64EC0BF0E8CF03F100C161F583 :101B300001C162F502C163F503C164F5CCEC33F079 :101B4000B2EC32F00AEC32F01590C70E64EC0BF0F8 :101B5000E8CF00F1010100B1B1EF0DF01592B2EF45 :101B60000DF0158281AAC0EF0DF015B4BBEF0DF09A :101B70001580C0EF0DF0C7EC38F015A02EEF39F04E :101B800007900001F28EF28C12AE03D012BC6EEF01 :101B900019F007B07BEF2DF00FB023EF26F010BE49 :101BA00023EF26F012B823EF26F000011650010AA9 :101BB000D8B41CEF1EF081BAE6EF0DF0000116500C :101BC000040AD8B41AEF1CF0ECEF0DF00001165027 :101BD000040AD8B458EF1EF00301805181197F0B1D :101BE000D8B47BEF2DF013EE00F081517F0BE1268E :101BF000812BE7CFE8FFE00BD8B47BEF2DF023EE8D :101C000082F0C2513F0BD926E7CFDFFFC22BDF5056 :101C1000780AD8A47BEF2DF0078092C100F193C120 :101C200001F194C102F195C103F10101040E046FA9 :101C3000000E056F000E066F000E076F54EC30F0BB :101C400000AF2CEF0EF00101030E926F000E936FA8 :101C5000000E946F000E956F03018251720AD8B482 :101C6000A4EF25F08251520AD8B4A4EF25F0825196 :101C7000750AD8B4A4EF25F08251680AD8B4AAEF47 :101C80000EF08251630AD8B435EF2AF08251690A06 :101C9000D8B462EF21F082517A0AD8B475EF22F0FD :101CA0008251490AD8B401EF21F08251500AD8B4C8 :101CB0001FEF20F08251700AD8B462EF20F08251F9 :101CC000540AD8B48DEF20F08251740AD8B4D3EFFF :101CD00020F08251410AD8B4AFEF0FF082514B0A85 :101CE000D8B4ACEF0EF082516D0AD8B41FEF14F0E7 :101CF00082514D0AD8B438EF14F08251730AD8B427 :101D0000D4EF24F08251530AD8B439EF25F0825130 :101D10004C0AD8B4C7EF14F08251590AD8B470EF06 :101D200013F012AE01D0128C6CEF2AF0040114EE05 :101D300000F080517F0BE12682C4E7FF802B120068 :101D400004010D0E826F96EC0EF00A0E826F96EC77 :101D50000EF012006AEF2AF004014B0E826F96EC2F :101D60000EF004012C0E826F96EC0EF081B802D0BA :101D700036B630D003018351430AD8B4F1EF0EF0E8 :101D800003018351630AD8B4F3EF0EF003018351CA :101D9000520AD8B4F5EF0EF003018351720AD8B499 :101DA000F7EF0EF003018351470AD8B4F9EF0EF0B4 :101DB00003018351670AD8B4FBEF0EF0030183518E :101DC000540AD8B4FDEF0EF003018351740AD8B45D :101DD0006DEF0FF003018351550AD8B4FFEF0EF0F9 :101DE00083D036807BD0369079D0368277D03692C9 :101DF00075D0368473D0369471D036866FD084C354 :101E000030F185C331F186C332F187C333F101016B :101E1000296BB7EC31F02EEC31F000C104F101C1B7 :101E200005F102C106F103C107F1AAEC31F0200E61 :101E3000F86EF76AF66A0900F5CF2CF10900F5CFC4 :101E40002DF10900F5CF2EF10900F5CF2FF1090092 :101E5000F5CF30F10900F5CF31F10900F5CF32F1BE :101E60000900F5CF33F10101296BB7EC31F02EEC0D :101E700031F054EC30F00101006746EF0FF00167DC :101E800046EF0FF0026746EF0FF0036701D025D051 :101E900004014E0E826F96EC0EF004016F0E826FFD :101EA00096EC0EF004014D0E826F96EC0EF00401DC :101EB000610E826F96EC0EF00401740E826F96EC48 :101EC0000EF00401630E826F96EC0EF00401680EB2 :101ED000826F96EC0EF06AEF2AF03696CD0E0C6EFD :101EE00036C00BF04DEC0BF0CD0E64EC0BF0E8CFF0 :101EF00036F036B006D00401630E826F96EC0EF019 :101F000005D00401430E826F96EC0EF036B206D077 :101F10000401720E826F96EC0EF005D00401520E91 :101F2000826F96EC0EF036B406D00401670E826F15 :101F300096EC0EF005D00401470E826F96EC0EF081 :101F400036B606D00401740E826F96EC0EF005D002 :101F50000401540E826F96EC0EF06AEF2AF0040131 :101F6000410E826F96EC0EF003018351310AD8B412 :101F700090EF12F003018351320AD8B4C0EF11F090 :101F800003018351330AD8B449EF11F0030183519F :101F9000340AD8B439EF10F003018351350AD8B4AC :101FA000D9EF0FF004013F0E826F96EC0EF06AEF4E :101FB0002AF003018451300AD8B4FFEF0FF0030177 :101FC0008451310AD8B402EF10F003018451650A3C :101FD000D8B4F3EF0FF003018451640AD8B4F6EFDC :101FE0000FF003EF10F03790F7EF0FF03780FB0E94 :101FF0000C6E37C00BF04DEC0BF003EF10F08B9034 :1020000003EF10F08B800401350E826F96EC0EF01A :1020100004012C0E826F96EC0EF08BB017EF10F0CF :102020000401300E826F96EC0EF01CEF10F00401EC :10203000310E826F96EC0EF004012C0E826F96EC3E :102040000EF0FB0E64EC0BF0E8CF37F037A030EF6A :1020500010F00401640E826F96EC0EF035EF10F074 :102060000401650E826F96EC0EF037EF10F06AEF08 :102070002AF0CC0E64EC0BF0E8CF0BF004012C0E30 :10208000826F96EC0EF003018451310AD8B45DEFF3 :1020900010F003018451300AD8B45FEF10F003014F :1020A00084514D0AD8B469EF10F003018451540AE9 :1020B000D8B470EF10F087EF10F08A8401D08A94C2 :1020C0000BAE04D00BAC02D00BBA21D0E00E0B1239 :1020D00018D01F0E0B168539E844E00B0B1211D0F7 :1020E000E00E0B16AAEC31F085C332F186C333F152 :1020F0000101296BB7EC31F02EEC31F000511F0BD0 :102100000B12CC0E0C6E0BC00BF04DEC0BF004015F :10211000340E826F96EC0EF004012C0E826F96EC5A :102120000EF0CC0E64EC0BF0E8CF1DF08AB406D0B4 :102130000401300E826F96EC0EF005D00401310ED2 :10214000826F96EC0EF004012C0E826F96EC0EF06E :102150001D38E840070BE8CF82F40401300E8227D7 :1021600096EC0EF004012C0E826F96EC0EF069ECEA :1021700031F01D501F0BE8CF00F1F2EC30F032C10E :1021800082F40401300E822796EC0EF033C182F403 :102190000401300E822796EC0EF004012C0E826FA3 :1021A00096EC0EF069EC31F030C000F100AF0BD0CE :1021B000FF0E016FFF0E026FFF0E036F04012D0E65 :1021C000826F96EC0EF0F2EC30F031C182F4040133 :1021D000300E822796EC0EF032C182F40401300EEC :1021E000822796EC0EF033C182F40401300E822770 :1021F00096EC0EF004012C0E826F96EC0EF069EC5A :1022000031F02FC000F1F2EC30F031C182F4040162 :10221000300E822796EC0EF032C182F40401300EAB :10222000822796EC0EF033C182F40401300E82272F :1022300096EC0EF004012C0E826F96EC0EF069EC19 :1022400031F031C000F100AF0BD0FF0E016FFF0E77 :10225000026FFF0E036F04012D0E826F96EC0EF0DD :10226000F2EC30F031C182F40401300E822796EC9A :102270000EF032C182F40401300E822796EC0EF08B :1022800033C182F40401300E822796EC0EF06AEF1F :102290002AF0CB0E64EC0BF0E8CF0BF004012C0E0F :1022A000826F96EC0EF003018451450AD8B46DEFAD :1022B00011F003018451440AD8B470EF11F0030106 :1022C0008451300AD8B473EF11F003018451310AFC :1022D000D8B477EF11F082EF11F00B9E7CEF11F084 :1022E0000B8E7CEF11F0FC0E0B167CEF11F0FC0E48 :1022F0000B160B807CEF11F0CB0E0C6E0BC00BF0AD :102300004DEC0BF00401330E826F96EC0EF00401DD :102310002C0E826F96EC0EF0CB0E64EC0BF0E8CF37 :102320001CF01CBE9BEF11F00401450E826F96EC71 :102330000EF0A0EF11F00401440E826F96EC0EF047 :1023400004012C0E826F96EC0EF00401300E826FA9 :1023500096EC0EF004012C0E826F96EC0EF01CB081 :10236000B9EF11F00401300E826F96EC0EF0BEEF63 :1023700011F00401310E826F96EC0EF06AEF2AF034 :10238000CA0E64EC0BF0E8CF0BF004012C0E826F48 :1023900096EC0EF003018451450AD8B4FCEF11F01D :1023A00003018451440AD8B4FFEF11F003018451B2 :1023B0004D0AD8B408EF12F003018451410AD8B491 :1023C00002EF12F003018451460AD8B405EF12F06F :1023D00003018451560AD8B410EF12F0030184515E :1023E000500AD8B41BEF12F003018451520AD8B43A :1023F0001EEF12F027EF12F00B9E21EF12F00B8E62 :1024000021EF12F00B9C21EF12F00B8C21EF12F058 :10241000FC0E0B1685C3E8FF030B0B1221EF12F025 :10242000C70E0B1685C3E8FF070BE846E846E846EB :102430000B1221EF12F00B8421EF12F00B9421EF1D :1024400012F0CA0E0C6E0BC00BF04DEC0BF0CA0E66 :1024500064EC0BF0E8CF1BF00401320E826F96ECB7 :102460000EF004012C0E826F96EC0EF01BBE40EFB6 :1024700012F00401450E826F96EC0EF045EF12F05B :102480000401440E826F96EC0EF004012C0E826F54 :1024900096EC0EF01BC0E8FF030BE8CF82F40401BA :1024A000300E822796EC0EF004012C0E826F96EC13 :1024B0000EF01BBC63EF12F00401410E826F96EC2C :1024C0000EF068EF12F00401460E826F96EC0EF0EB :1024D00004012C0E826F96EC0EF01BC0E8FF380B47 :1024E000E842E842E842E8CF82F40401300E822755 :1024F00096EC0EF004012C0E826F96EC0EF01BB4DD :1025000089EF12F00401520E826F96EC0EF08EEFFE :1025100012F00401500E826F96EC0EF06AEF2AF072 :10252000C90E64EC0BF0E8CF0BF004012C0E826FA7 :1025300096EC0EF003018451450AD8B4AEEF12F0C8 :1025400003018451440AD8B4B1EF12F0030184515D :102550004D0AD8B4B4EF12F0C2EF12F00B9EBCEFEC :1025600012F00B8EBCEF12F0F80E0B1685C3E8FFCD :10257000070B0B12BCEF12F0C90E0C6E0BC00BF068 :102580004DEC0BF00401310E826F96EC0EF004015D :102590002C0E826F96EC0EF0C90E64EC0BF0E8CFB7 :1025A0001AF01ABE06D00401450E826F96EC0EF0AA :1025B00005D00401440E826F96EC0EF004012C0E3F :1025C000826F96EC0EF01AC0E8FF070BE8CF82F49A :1025D0000401300E822796EC0EF004012C0E826F5F :1025E00096EC0EF0078069EC31F02BC0E8FF003B61 :1025F00000430043030BF2EC30F033C182F40401DA :10260000300E822796EC0EF004012C0E826F96ECB1 :102610000EF069EC31F02BC001F1019F019D2CC03F :1026200000F10101F2EC30F02FC182F40401300E10 :10263000822796EC0EF030C182F40401300E82271E :1026400096EC0EF031C182F40401300E822796EC34 :102650000EF032C182F40401300E822796EC0EF0A7 :1026600033C182F40401300E822796EC0EF004018F :102670002C0E826F96EC0EF069EC31F02DC001F15A :102680002EC000F1D89001330033D89001330033CD :102690000101F2EC30F02FC182F40401300E8227E8 :1026A00096EC0EF030C182F40401300E822796ECD5 :1026B0000EF031C182F40401300E822796EC0EF048 :1026C00032C182F40401300E822796EC0EF033C141 :1026D00082F40401300E822796EC0EF06AEF2AF0A5 :1026E000FC0E64EC0BF0E8CF0BF003018351520AAF :1026F000D8B4A7EF13F003018351720AD8B4AAEF3C :1027000013F003018351500AD8B4ADEF13F0030165 :102710008351700AD8B4B0EF13F003018351550A06 :10272000D8B4B3EF13F003018351750AD8B4B6EFF0 :1027300013F003018351430AD8B4BFEF13F0030130 :102740008351630AD8B4C2EF13F0CBEF13F00B90B0 :10275000C5EF13F00B80C5EF13F00B92C5EF13F02C :102760000B82C5EF13F00B94C5EF13F00B84C5EF8C :1027700013F00B96C5EF13F00B86C5EF13F00B9813 :10278000C5EF13F00B88C5EF13F0FC0E0C6E0BC0F9 :102790000BF04DEC0BF00401590E826F96EC0EF02D :1027A0001190119211941198FC0E64EC0BF0E8CF8B :1027B0000BF00BA011800BA211820BA411840BA8AB :1027C000118811A0EBEF13F00401520E826F96EC0A :1027D0000EF0F0EF13F00401720E826F96EC0EF023 :1027E00011A8FAEF13F00401430E826F96EC0EF07D :1027F000FFEF13F00401630E826F96EC0EF011A24E :1028000009EF14F00401500E826F96EC0EF00EEFFB :1028100014F00401700E826F96EC0EF011A418EF04 :1028200014F00401550E826F96EC0EF01DEF14F0BB :102830000401750E826F96EC0EF06AEF2AF0040127 :102840006D0E826F96EC0EF003018351300AD8B4FE :1028500077EF14F003018351310AD8B48AEF14F0F2 :1028600003018351320AD8B49DEF14F06CEF2AF0C3 :1028700004014D0E826F96EC0EF0AAEC31F084C389 :1028800031F185C332F186C333F10101296BB7EC15 :1028900031F02EEC31F003018351300AD8B45FEFF0 :1028A00014F003018351310AD8B467EF14F0030127 :1028B0008351320AD8B46FEF14F06CEF2AF0FD0E9A :1028C0000C6E00C10BF04DEC0BF077EF14F0FE0E28 :1028D0000C6E00C10BF04DEC0BF08AEF14F0FF0E04 :1028E0000C6E00C10BF04DEC0BF09DEF14F00401E9 :1028F000300E826F96EC0EF004012C0E826F96EC77 :102900000EF069EC31F0FD0E64EC0BF0E8CF00F155 :10291000AEEF14F00401310E826F96EC0EF004015C :102920002C0E826F96EC0EF069EC31F0FE0E64EC2A :102930000BF0E8CF00F1AEEF14F00401320E826F1D :1029400096EC0EF069EC31F004012C0E826F96ECDF :102950000EF0FF0E64EC0BF0E8CF00F1F2EC30F07B :1029600031C182F40401300E822796EC0EF032C1A0 :1029700082F40401300E822796EC0EF033C182F40B :102980000401300E822796EC0EF06AEF2AF0030164 :102990008351300AD8B41BEF1AF003018351310A76 :1029A000D8B448EF1BF003018351320AD8B4B6EF14 :1029B0001BF003018351330AD8B4C6EF1BF00301A7 :1029C0008351340AD8B421EF1CF003018351350A36 :1029D000D8B470EF1EF003018351360AD8B49EEFCD :1029E0001EF003018351370AD8B4F3EF17F0030147 :1029F0008351380AD8B491EF18F003018351440A87 :102A0000D8B41FEF16F003018351640AD8B43FEF26 :102A100016F003018351460AD8B475EF1DF0030187 :102A200083514D0AD8B46CEF16F0030183516D0A3F :102A3000D8B486EF16F0030183515A0AD8B4C2EF16 :102A40001AF003018351490AD8B49EEF1FF0030125 :102A50008351500AD8B4D0EF1EF003018351540AB9 :102A6000D8B449EF1FF003018351630AD8B4A6EF2D :102A700016F003018351430AD8B49EEF17F0030107 :102A80008351730AD8B4A4EF16F003018351610A8D :102A9000D8B46CEF15F003018351650AD8B46BEF1D :102AA0001AF003018351450AD8B479EF1AF00301F3 :102AB0008351620AD8B487EF1AF003018351420AA6 :102AC000D8B495EF1AF003018351760AD8B4A3EF76 :102AD0001AF0D8A46CEF2AF004014C0E826F96EC29 :102AE0000EF00401610E826F96EC0EF0B2EC32F043 :102AF00004012C0E826F96EC0EF069EC31F0AFC53C :102B000000F10101F2EC30F031C182F40401300E29 :102B1000822796EC0EF032C182F40401300E822737 :102B200096EC0EF033C182F40401300E822796EC4D :102B30000EF004012C0E826F96EC0EF069EC31F071 :102B4000B0C500F10101F2EC30F031C182F40401B2 :102B5000300E822796EC0EF032C182F40401300E62 :102B6000822796EC0EF033C182F40401300E8227E6 :102B700096EC0EF004012C0E826F96EC0EF069ECD0 :102B800031F0B1C500F10101F2EC30F031C182F455 :102B90000401300E822796EC0EF032C182F404015B :102BA000300E822796EC0EF033C182F40401300E11 :102BB000822796EC0EF004012C0E826F96EC0EF03C :102BC00069EC31F0B2C500F10101F2EC30F031C135 :102BD00082F40401300E822796EC0EF032C182F4AA :102BE0000401300E822796EC0EF033C182F404010A :102BF000300E822796EC0EF004012C0E826F96ECBC :102C00000EF069EC31F0B6C500F10101F2EC30F0E4 :102C100031C182F40401300E822796EC0EF032C1ED :102C200082F40401300E822796EC0EF033C182F458 :102C30000401300E822796EC0EF0CCEF1EF003015B :102C40008451300AD8B42BEF16F003018451310AB5 :102C5000D8B42FEF16F01592159630EF16F01582B6 :102C6000C70E64EC0BF0E8CF00F10101008115A262 :102C70000091C70E0C6E00C10BF04DEC0BF0C70EAF :102C800064EC0BF0E8CF00F1010100B14BEF16F05E :102C900015924CEF16F0158204014C0E826F96ECE3 :102CA0000EF00401640E826F96EC0EF004012C0EFF :102CB000826F96EC0EF015B265EF16F00401300E3F :102CC000826F96EC0EF06AEF16F00401310E826FFF :102CD00096EC0EF06AEF2AF0AAEC31F084C333F1DF :102CE000B7EC31F02EEC31F0200E0C6E00C10BF081 :102CF0004DEC0BF000C12FF505012F51000A06E045 :102D000005012F51010A02E04CEC33F004014C0E96 :102D1000826F96EC0EF004014D0E826F96EC0EF071 :102D200004012C0E826F96EC0EF069EC31F02FC589 :102D300000F1F2EC30F033C182F40401300E82274E :102D400096EC0EF0CCEF1EF02EEF39F004014C0E95 :102D5000826F96EC0EF00401630E826F96EC0EF01B :102D60000AEC32F004012C0E826F96EC0EF0BBECF4 :102D700016F0CCEF1EF069EC31F0B5C500F10101A1 :102D8000003B0F0E0017F2EC30F033C182F4040167 :102D9000300E822796EC0EF0B5C500F101010F0E42 :102DA00001010017F2EC30F033C182F40401300E5F :102DB000822796EC0EF004012D0E826F96EC0EF039 :102DC000B4C500F10101003B0F0E0017F2EC30F02A :102DD00033C182F40401300E822796EC0EF0B4C5A4 :102DE00000F101010F0E01010017F2EC30F033C1C8 :102DF00082F40401300E822796EC0EF004012D0EB1 :102E0000826F96EC0EF0B3C500F10101003B0F0E8E :102E10000017F2EC30F033C182F40401300E822747 :102E200096EC0EF0B3C500F101010F0E0101001781 :102E3000F2EC30F033C182F40401300E822796ECBC :102E40000EF00401200E826F96EC0EF0B2C500F178 :102E50000F0E01010017F2EC30F033C182F40401CF :102E6000300E822796EC0EF00401200E826F96EC55 :102E70000EF0B1C500F101010101003B0F0E00177A :102E8000F2EC30F033C182F40401300E822796EC6C :102E90000EF0B1C500F101010F0E01010017F2ECB7 :102EA00030F033C182F40401300E822796EC0EF02C :102EB00004013A0E826F96EC0EF0B0C500F10101EC :102EC000003B0F0E0017F2EC30F033C182F4040126 :102ED000300E822796EC0EF0B0C500F101010F0E06 :102EE00001010017F2EC30F033C182F40401300E1E :102EF000822796EC0EF004013A0E826F96EC0EF0EB :102F0000AFC500F10101003B0F0E0017F2EC30F0ED :102F100033C182F40401300E822796EC0EF0AFC567 :102F200000F101010F0E0017F2EC30F033C182F412 :102F30000401300E822796EC0EF0120084C3E8FFE5 :102F40000F0BE83AE8CFB5F585C3E8FF0F0B050195 :102F5000B51387C3E8FF0F0BE83AE8CFB4F588C391 :102F6000E8FF0F0B0501B4138AC3E8FF0F0BE83A23 :102F7000E8CFB3F58BC3E8FF0F0B0501B3138DC387 :102F8000E8FF0F0BE8CFB2F58FC3E8FF0F0BE83A6D :102F9000E8CFB1F590C3E8FF0F0B0501B11392C361 :102FA000E8FF0F0BE83AE8CFB0F593C3E8FF0F0B4B :102FB0000501B01395C3E8FF0F0BE83AE8CFAFF572 :102FC00096C3E8FF0F0B0501AF1365EC32F0040167 :102FD0004C0E826F96EC0EF00401430E826F96EC5D :102FE0000EF0B0EF16F0078404014C0E826F96ECE1 :102FF0000EF00401370E826F96EC0EF004012C0ED9 :10300000826F96EC0EF005012E51130A06E00501C1 :103010002E51170A0DE08EEF18F00101000E006F1F :10302000000E016F100E026F000E036F21EF18F0FB :103030000101000E006F000E016F000E026F010E05 :10304000036FF2EC30F02AC182F40401300E8227C3 :1030500096EC0EF02BC182F40401300E822796EC20 :103060000EF02CC182F40401300E822796EC0EF093 :103070002DC182F40401300E822796EC0EF02EC191 :1030800082F40401300E822796EC0EF02FC182F4F8 :103090000401300E822796EC0EF030C182F4040158 :1030A000300E822796EC0EF031C182F40401300E0E :1030B000822796EC0EF032C182F40401300E822792 :1030C00096EC0EF033C182F40401300E822796ECA8 :1030D0000EF004012C0E826F96EC0EF00101200E12 :1030E000006F000E016F000E026F000E036FF2EC16 :1030F00030F031C182F40401300E822796EC0EF0DC :1031000032C182F40401300E822796EC0EF033C1F6 :1031100082F40401300E822796EC0EF00794CCEF77 :103120001EF00501216B226B236B246B04014C0EF6 :10313000826F96EC0EF00401380E826F96EC0EF062 :1031400004012C0E826F96EC0EF00101200E006F30 :10315000000E016F000E026F000E036FF2EC30F0F4 :103160002AC182F40401300E822796EC0EF02BC1A6 :1031700082F40401300E822796EC0EF02CC182F40A :103180000401300E822796EC0EF02DC182F404016A :10319000300E822796EC0EF02EC182F40401300E20 :1031A000822796EC0EF02FC182F40401300E8227A4 :1031B00096EC0EF030C182F40401300E822796ECBA :1031C0000EF031C182F40401300E822796EC0EF02D :1031D00032C182F40401300E822796EC0EF033C126 :1031E00082F40401300E822796EC0EF004012C0EBE :1031F000826F96EC0EF025C500F126C501F127C5BA :1032000002F128C503F10101200E046F000E056FC5 :10321000000E066F000E076F85EC30F000C133F52D :1032200001C134F502C135F503C136F5F2EC30F0D9 :103230002AC182F40401300E822796EC0EF02BC1D5 :1032400082F40401300E822796EC0EF02CC182F439 :103250000401300E822796EC0EF02DC182F4040199 :10326000300E822796EC0EF02EC182F40401300E4F :10327000822796EC0EF02FC182F40401300E8227D3 :1032800096EC0EF030C182F40401300E822796ECE9 :103290000EF031C182F40401300E822796EC0EF05C :1032A00032C182F40401300E822796EC0EF033C155 :1032B00082F40401300E822796EC0EF0A0EC0EF0A2 :1032C000050133676BEF19F034676BEF19F0356761 :1032D0006BEF19F0366702D00AEF1AF0129E129CBB :1032E00021C500F122C501F123C502F124C503F176 :1032F000899A400EC76E200EC66E9E96C69E0B0E15 :10330000C96EFF0E9EB602D0E82EFCD79E96C69ED2 :1033100002C1C9FFFF0E9EB602D0E82EFCD79E96D2 :10332000C69E01C1C9FFFF0E9EB602D0E82EFCD793 :103330009E96C69E00C1C9FFFF0E9EB602D0E82E23 :10334000FCD79E96C69EC952FF0E9EB602D0E82EAE :10335000FCD70501200E326F040114EE00F08051FD :103360007F0BE1269E96C69EC952FF0E9EB602D0E6 :10337000E82EFCD7C9CFE7FF0401802B0501322FCF :10338000ACEF19F0898A33C500F134C501F135C5B8 :1033900002F136C503F10101010E046F000E056F45 :1033A000000E066F000E076F54EC30F000C133F5CD :1033B00001C134F502C135F503C136F505013367A6 :1033C000E9EF19F03467E9EF19F03567E9EF19F023 :1033D000366702D00AEF1AF021C500F122C501F1CB :1033E00023C502F124C503F10101200E046F000E74 :1033F000056F000E066F000E076F59EC30F000C12C :1034000021F501C122F502C123F503C124F5128E75 :103410006CEF2AF00401450E826F96EC0EF0040169 :103420004F0E826F96EC0EF00401460E826F96EC02 :103430000EF0CCEF1EF0078488EC38F069EC31F028 :103440002DC500F1F2EC30F004014C0E826F96ECC9 :103450000EF00401300E826F96EC0EF004012C0E7B :10346000826F96EC0EF031C182F40401300E822797 :1034700096EC0EF032C182F40401300E822796ECF5 :103480000EF033C182F40401300E822796EC0EF068 :1034900004012C0E826F96EC0EF069EC31F02EC513 :1034A00000F1F2EC30F031C182F40401300E8227D9 :1034B00096EC0EF032C182F40401300E822796ECB5 :1034C0000EF033C182F40401300E822796EC0EF028 :1034D0000794CCEF1EF004014C0E826F96EC0EF0B8 :1034E0000401650E826F96EC0EF028EC34F0CCEF00 :1034F0001EF004014C0E826F96EC0EF00401450E96 :10350000826F96EC0EF03FEC34F0CCEF1EF004012D :103510004C0E826F96EC0EF00401620E826F96ECF8 :103520000EF06DEC34F0CCEF1EF004014C0E826F07 :1035300096EC0EF00401420E826F96EC0EF056EC03 :1035400034F0CCEF1EF004014C0E826F96EC0EF0BE :103550000401760E826F96EC0EF004012C0E826F41 :1035600096EC0EF010A807D00401310E826F96EC95 :103570000EF0CCEF1EF00401300E826F96EC0EF0D0 :10358000CCEF1EF004014C0E826F96EC0EF004019D :103590005A0E826F96EC0EF004012C0E826F96ECA0 :1035A0000EF088EC38F069EC31F005012E51130A69 :1035B00006E005012E51170A0DE0F3EF1AF00101A4 :1035C000000E006F000E016F100E026F000E036FF1 :1035D000F3EF1AF00101000E006F000E016F000EF4 :1035E000026F010E036F0101200E046F000E056FC4 :1035F000000E066F000E076F85EC30F0F2EC30F035 :103600002AC182F40401300E822796EC0EF02BC101 :1036100082F40401300E822796EC0EF02CC182F465 :103620000401300E822796EC0EF02DC182F40401C5 :10363000300E822796EC0EF02EC182F40401300E7B :10364000822796EC0EF02FC182F40401300E8227FF :1036500096EC0EF030C182F40401300E822796EC15 :103660000EF031C182F40401300E822796EC0EF088 :1036700032C182F40401300E822796EC0EF033C181 :1036800082F40401300E822796EC0EF0CCEF1EF08F :10369000078404014C0E826F96EC0EF00401310E8B :1036A000826F96EC0EF004012C0E826F96EC0EF0F9 :1036B00025C500F126C501F127C502F128C503F192 :1036C0000101200E046F000E056F000E066F000E44 :1036D000076F85EC30F0F2EC30F02AC182F404017F :1036E000300E822796EC0EF02BC182F40401300ECE :1036F000822796EC0EF02CC182F40401300E822752 :1037000096EC0EF02DC182F40401300E822796EC67 :103710000EF02EC182F40401300E822796EC0EF0DA :103720002FC182F40401300E822796EC0EF030C1D6 :1037300082F40401300E822796EC0EF031C182F43F :103740000401300E822796EC0EF032C182F404019F :10375000300E822796EC0EF033C182F40401300E55 :10376000822796EC0EF00794CCEF1EF0078404013C :103770004C0E826F96EC0EF00401320E826F96ECC6 :103780000EF05CEC36F00794CCEF1EF0078437B0F7 :10379000CCEF1BF0DFEF1BF0010E166E04014C0E98 :1037A000826F96EC0EF00401330E826F96EC0EF0F1 :1037B000B9EC36F0000E166E079453EF1BF0020EB4 :1037C000166EB9EC36F08B800501010E306F3C0EA1 :1037D000316F01015E6B5F6B606B616B626B636B82 :1037E000646B656B666B676B686B696B536B546B73 :1037F000CF6ACE6A0F9A0F9C0F9E030E166E0401BD :103800004C0E826F96EC0EF00401330E826F96EC34 :103810000EF004012C0E826F96EC0EF004012D0EBA :10382000826F96EC0EF00401310E826F96EC0EF072 :103830006AEF2AF0B9EC36F0000E166E8B906CEF42 :103840002AF0078404014C0E826F96EC0EF00401FE :10385000340E826F96EC0EF004012C0E826F96EC03 :103860000EF0AAEC31F084C32AF185C32BF186C394 :103870002CF187C32DF188C32EF189C32FF18AC3A0 :1038800030F18BC331F18CC332F18DC333F10101BF :10389000296BB7EC31F02EEC31F0200E046F000EE6 :1038A000056F000E066F000E076F65EC30F000C16B :1038B00021F501C122F502C123F503C124F53BEC3A :1038C00038F038C5AFF539C5B0F53AC5B1F53BC5E7 :1038D000B2F53CC5B3F53DC5B4F53EC5B5F5BBEC99 :1038E00016F004012C0E826F96EC0EF03FC500F12D :1038F00040C501F141C502F142C503F10101000ECD :10390000046F000E056F010E066F000E076F85EC49 :1039100030F0F2EC30F0296790EF1CF095EF1CF0DE :1039200004012D0E826F96EC0EF030C182F404017A :10393000300E822796EC0EF031C182F40401300E75 :10394000822796EC0EF004012E0E826F96EC0EF09C :1039500032C182F40401300E822796EC0EF033C19E :1039600082F40401300E822796EC0EF004012C0E36 :10397000826F96EC0EF069EC31F043C500F144C55E :1039800001F196EC2BF004012C0E826F96EC0EF0F8 :1039900069EC31F045C500F1F2EC30F031C182F450 :1039A0000401300E822796EC0EF032C182F404013D :1039B000300E822796EC0EF033C182F40401300EF3 :1039C000822796EC0EF004012C0E826F96EC0EF01E :1039D00037C5E8FFE8B806D00401300E826F96ECD8 :1039E0000EF005D00401310E826F96EC0EF004014A :1039F0002C0E826F96EC0EF037C5E8FFE8BA06D0C1 :103A00000401300E826F96EC0EF06CD00401310E82 :103A1000826F96EC0EF004012C0E826F96EC0EF085 :103A200047C500F148C501F149C502F14AC503F196 :103A300014EC31F0B5EC2EF004012C0E826F96ECF4 :103A40000EF04BC500F14CC501F14DC502F14EC55C :103A500003F10101000E046F000E056F010E066FE9 :103A6000000E076F85EC30F0F2EC30F029673BEF89 :103A70001DF040EF1DF004012D0E826F96EC0EF04C :103A800030C182F40401300E822796EC0EF031C171 :103A900082F40401300E822796EC0EF004012E0E03 :103AA000826F96EC0EF032C182F40401300E822750 :103AB00096EC0EF033C182F40401300E822796ECAE :103AC0000EF004012C0E826F96EC0EF04FC500F143 :103AD00050C501F151C502F152C503F114EC31F0AA :103AE000B5EC2EF00794CCEF1EF0AAEC31F085C3B4 :103AF0002AF186C32BF187C32CF188C32DF189C32A :103B00002EF18AC32FF18BC330F18CC331F18DC3F9 :103B100032F18EC333F10101296BB7EC31F02EEC99 :103B200031F00101010E046F000E056F000E066FEB :103B3000000E076F54EC30F0100E046F000E056F8E :103B4000000E066F000E076F65EC30F000C129F51E :103B500001C12AF502C12BF503C12CF5E3EC35F0C8 :103B600004014C0E826F96EC0EF00401460E826F3B :103B700096EC0EF004012C0E826F96EC0EF025C52B :103B800000F126C501F127C502F128C503F10101A5 :103B9000100E046F000E056F000E066F000E076F0B :103BA00085EC30F0F2EC30F02AC182F40401300EE2 :103BB000822796EC0EF02BC182F40401300E82278E :103BC00096EC0EF02CC182F40401300E822796ECA4 :103BD0000EF02DC182F40401300E822796EC0EF017 :103BE0002EC182F40401300E822796EC0EF02FC114 :103BF00082F40401300E822796EC0EF030C182F47C :103C00000401300E822796EC0EF031C182F40401DB :103C1000300E822796EC0EF032C182F40401300E91 :103C2000822796EC0EF033C182F40401300E822715 :103C300096EC0EF0CCEF1EF037B021EF1EF0020E26 :103C4000166EB9EC36F000011650020AD8B43FEFF8 :103C50001EF005012F51010AD8B435EF1EF015B240 :103C60003AEF1EF081BA3AEF1EF0000E166E158480 :103C70006CEF2AF0050E166E15842EEF39F08B804E :103C800001015E6B5F6B606B616B626B636B646B9E :103C9000656B666B676B686B696B536B546BCF6A54 :103CA000CE6A0F9A0F9C0F9E030E166E6CEF2AF0D1 :103CB000B9EC36F005012F51010AD8B466EF1EF0B9 :103CC00015B26BEF1EF081BA6BEF1EF0000E166E90 :103CD00015846CEF2AF0050E166E15842EEF39F060 :103CE00004014C0E826F96EC0EF00401350E826FCB :103CF00096EC0EF004012C0E826F96EC0EF069EC3F :103D000031F00784B9C500F10794F2EC30F031C10D :103D100082F40401300E822796EC0EF032C182F458 :103D20000401300E822796EC0EF033C182F40401B8 :103D3000300E822796EC0EF0CCEF1EF07CEC36F0C5 :103D400069EC31F037C500F1F2EC30F004014C0EB3 :103D5000826F96EC0EF00401360E826F96EC0EF038 :103D600004012C0E826F96EC0EF031C182F4040136 :103D7000300E822796EC0EF032C182F40401300E30 :103D8000822796EC0EF033C182F40401300E8227B4 :103D900096EC0EF0CCEF1EF0A0EC0EF06CEF2AF0DB :103DA00004014C0E826F96EC0EF00401500E826FEF :103DB00096EC0EF004012C0E826F96EC0EF085C38B :103DC0002AF186C32BF187C32CF188C32DF189C357 :103DD0002EF18AC32FF18BC330F18CC331F18DC327 :103DE00032F18EC333F10101B7EC31F02EEC31F03A :103DF00003018451530A0DE0030184514D0A38E058 :103E00000401780E826F96EC0EF0A0EC0EF06CEFD1 :103E10002AF00401530E826F96EC0EF0250E0C6E04 :103E200000C10BF04DEC0BF0260E0C6E01C10BF037 :103E30004DEC0BF0270E0C6E02C10BF04DEC0BF0AD :103E4000280E0C6E03C10BF04DEC0BF000C157F5C2 :103E500001C158F502C159F503C15AF500C15BF51E :103E600001C15CF502C15DF503C15EF5ADEF1FF068 :103E700004014D0E826F96EC0EF0290E0C6E00C1FF :103E80000BF04DEC0BF000C15FF500C160F5ADEF3C :103E90001FF004014C0E826F96EC0EF00401540EDC :103EA000826F96EC0EF004012C0E826F96EC0EF0F1 :103EB00084C32AF185C32BF186C32CF187C32DF16E :103EC00088C32EF189C32FF18AC330F18BC331F13E :103ED0008DC332F18EC333F10101B7EC31F02EEC1A :103EE00031F00101000E046F000E056F010E066F28 :103EF000000E076F65EC30F0210E0C6E00C10BF068 :103F00004DEC0BF0220E0C6E01C10BF04DEC0BF0E2 :103F1000230E0C6E02C10BF04DEC0BF0240E0C6E58 :103F200003C10BF04DEC0BF000C161F501C162F56E :103F300002C163F503C164F5ADEF1FF004014C0E3F :103F4000826F96EC0EF00401490E826F96EC0EF033 :103F500004012C0E826F96EC0EF0250E64EC0BF033 :103F6000E8CF00F1260E64EC0BF0E8CF01F1270E4C :103F700064EC0BF0E8CF02F1280E64EC0BF0E8CF14 :103F800003F1F2EC30F0B5EC2EF00401730E826F09 :103F900096EC0EF004012C0E826F96EC0EF069EC9C :103FA00031F0290E64EC0BF0E8CF00F1F2EC30F0C8 :103FB000B5EC2EF004016D0E826F96EC0EF004014C :103FC0002C0E826F96EC0EF05BC500F15CC501F122 :103FD0005DC502F15EC503F1F2EC30F0B5EC2EF0F8 :103FE0000401730E826F96EC0EF004012C0E826FAA :103FF00096EC0EF069EC31F060C500F1F2EC30F0B7 :10400000B5EC2EF004016D0E826F96EC0EF00401FB :104010002C0E826F96EC0EF061C500F162C501F1C5 :1040200063C502F164C503F187EC2AF004012C0E8C :10403000826F96EC0EF0A0EC0EF06CEF2AF083C3CA :104040002AF184C32BF185C32CF186C32DF187C3DC :104050002EF188C32FF189C330F18AC331F18BC3AC :1040600032F18CC333F10101B7EC31F02EEC31F0B9 :10407000160E0C6E00C10BF04DEC0BF0170E0C6E13 :1040800001C10BF04DEC0BF0180E0C6E02C10BF0E1 :104090004DEC0BF0190E0C6E03C10BF04DEC0BF058 :1040A00000C18EF101C18FF102C190F103C191F104 :1040B00000C192F101C193F102C194F103C195F1E4 :1040C00001EF21F083C32AF184C32BF185C32CF1C6 :1040D00086C32DF187C32EF188C32FF189C330F138 :1040E0008AC331F18BC332F18CC333F10101B7ECD8 :1040F00031F02EEC31F000C18EF101C18FF102C11F :1041000090F103C191F100C192F101C193F102C19B :1041100094F103C195F101EF21F083C32AF184C327 :104120002BF185C32CF186C32DF187C32EF188C3F3 :104130002FF189C330F18AC331F18CC332F18DC3C1 :1041400033F10101B7EC31F02EEC31F00101000E3A :10415000046F000E056F010E066F000E076F65EC11 :1041600030F01A0E0C6E00C10BF04DEC0BF01B0E74 :104170000C6E01C10BF04DEC0BF01C0E0C6E02C16D :104180000BF04DEC0BF01D0E0C6E03C10BF04DEC63 :104190000BF000C196F101C197F102C198F103C182 :1041A00099F101EF21F083C32AF184C32BF185C378 :1041B0002CF186C32DF187C32EF188C32FF189C35B :1041C00030F18AC331F18CC332F18DC333F1010177 :1041D000B7EC31F02EEC31F00101000E046F000E4F :1041E000056F010E066F000E076F65EC30F000C121 :1041F00096F101C197F102C198F103C199F101EF64 :1042000021F0160E64EC0BF0E8CF00F1170E64EC11 :104210000BF0E8CF01F1180E64EC0BF0E8CF02F1DF :10422000190E64EC0BF0E8CF03F1F2EC30F0B5ECD2 :104230002EF00401730E826F96EC0EF004012C0E2A :10424000826F96EC0EF08EC100F18FC101F190C12A :1042500002F191C103F1F2EC30F0B5EC2EF0040163 :10426000730E826F96EC0EF004012C0E826F96ECAA :104270000EF01A0E64EC0BF0E8CF00F11B0E64ECAC :104280000BF0E8CF01F11C0E64EC0BF0E8CF02F16B :104290001D0E64EC0BF0E8CF03F187EC2AF004016B :1042A0002C0E826F96EC0EF096C100F197C101F1D1 :1042B00098C102F199C103F187EC2AF0A0EC0EF04D :1042C0006CEF2AF00401690E826F96EC0EF0040187 :1042D0002C0E826F96EC0EF00101040E006F000EA2 :1042E000016F000E026F000E036FF2EC30F02CC174 :1042F00082F40401300E822796EC0EF02DC182F478 :104300000401300E822796EC0EF02EC182F40401D7 :10431000300E822796EC0EF02FC182F40401300E8D :10432000822796EC0EF030C182F40401300E822711 :1043300096EC0EF031C182F40401300E822796EC27 :104340000EF032C182F40401300E822796EC0EF09A :1043500033C182F40401300E822796EC0EF0040182 :104360002C0E826F96EC0EF001010D0E006F000E08 :10437000016F000E026F000E036FF2EC30F02CC1E3 :1043800082F40401300E822796EC0EF02DC182F4E7 :104390000401300E822796EC0EF02EC182F4040147 :1043A000300E822796EC0EF02FC182F40401300EFD :1043B000822796EC0EF030C182F40401300E822781 :1043C00096EC0EF031C182F40401300E822796EC97 :1043D0000EF032C182F40401300E822796EC0EF00A :1043E00033C182F40401300E822796EC0EF00401F2 :1043F0002C0E826F96EC0EF001014B0E006F000E3A :10440000016F000E026F000E036FF2EC30F02CC152 :1044100082F40401300E822796EC0EF02DC182F456 :104420000401300E822796EC0EF02EC182F40401B6 :10443000300E822796EC0EF02FC182F40401300E6C :10444000822796EC0EF030C182F40401300E8227F0 :1044500096EC0EF031C182F40401300E822796EC06 :104460000EF032C182F40401300E822796EC0EF079 :1044700033C182F40401300E822796EC0EF0040161 :104480002C0E826F96EC0EF0200EF86EF76AF66A2C :1044900004010900F5CF82F496EC0EF00900F5CF87 :1044A00082F496EC0EF00900F5CF82F496EC0EF053 :1044B0000900F5CF82F496EC0EF00900F5CF82F4F6 :1044C00096EC0EF00900F5CF82F496EC0EF00900A0 :1044D000F5CF82F496EC0EF00900F5CF82F496EC5D :1044E0000EF0A0EC0EF06CEF2AF08351630AD8A412 :1044F0006AEF2AF08451610AD8A46AEF2AF0855144 :104500006C0AD8A46AEF2AF08651410A3FE086512E :10451000440A1BE08651420AD8B4D9EF22F08651F2 :10452000350AD8B4F6EF2BF08651360AD8B44BEFE3 :104530002CF08651370AD8B4B4EF2CF08651380AE3 :10454000D8B412EF2DF06AEF2AF00798079A040109 :104550007A0E826F96EC0EF00401780E826F96EC64 :104560000EF00401640E826F96EC0EF00401550EFD :10457000826F96EC0EF0C2EF22F004014C0E826FB7 :1045800096EC0EF0A0EC0EF06CEF2AF00788079A7C :1045900004017A0E826F96EC0EF00401410E826FD8 :1045A00096EC0EF00401610E826F96EC0EF0B6EF01 :1045B00022F00798078A04017A0E826F96EC0EF0BB :1045C0000401420E826F96EC0EF00401610E826FC0 :1045D00096EC0EF0B6EF22F001016667F7EF22F0DD :1045E0006767F7EF22F06867F7EF22F0696716D088 :1045F00001014F6703EF23F0506703EF23F051678A :1046000003EF23F052670AD00101000E006F000E85 :10461000016F000E026F000E036F120011B80AD076 :104620000101620E046F010E056F000E066F000E91 :10463000076F09D00101A70E046F020E056F000E6F :10464000066F000E076F66C100F167C101F168C116 :1046500002F169C103F154EC30F003BFA0EF23F085 :10466000119A119C0101000E046FA80E056F550EE2 :10467000066F020E076F66C100F167C101F168C1E4 :1046800002F169C103F166C18AF167C18BF168C1AA :104690008CF169C18DF154EC30F003BF0BD00101F6 :1046A000000E8A6FA80E8B6F550E8C6F020E8D6FE9 :1046B000118A119C0E0E64EC0BF0E8CF18F10F0E6E :1046C00064EC0BF0E8CF19F1100E64EC0BF0E8CFBE :1046D0001AF1110E64EC0BF0E8CF1BF19DEC2FF0FA :1046E0008AC104F18BC105F18CC106F18DC107F1BE :1046F00054EC30F0078261EC2FF09DEC2FF0079224 :1047000061EC2FF08AC100F18BC101F18CC102F183 :104710008DC103F1079261EC2FF0CC0E046FE00E17 :10472000056F870E066F050E076F54EC30F000C161 :1047300018F101C119F102C11AF103C11BF140D0F6 :1047400013AAA5EF23F0138E139A119C119A01015D :10475000800E006F1A0E016F060E026F000E036FBF :104760004FC104F150C105F151C106F152C107F129 :1047700054EC30F003AF05D069EC31F0118C119A94 :1047800012000E0E64EC0BF0E8CF18F10F0E64EC83 :104790000BF0E8CF19F1100E64EC0BF0E8CF1AF132 :1047A000110E64EC0BF0E8CF1BF14FC100F150C1CA :1047B00001F151C102F152C103F1078261EC2FF006 :1047C00018C100F119C101F11AC102F11BC103F1B5 :1047D00012000784BAC166F1BBC167F1BCC168F1C0 :1047E000BDC169F14BC14FF14CC150F14DC151F107 :1047F0004EC152F157C159F158C15AF10794010104 :1048000066670AEF24F067670AEF24F068670AEF2B :1048100024F0696716D001014F6716EF24F0506746 :1048200016EF24F0516716EF24F052670AD0010109 :10483000000E006F000E016F000E026F000E036F7E :10484000120011B80AD00101620E046F010E056F4B :10485000000E066F000E076F09D00101A70E046F4E :10486000020E056F000E066F000E076F66C100F1A5 :1048700067C101F168C102F169C103F154EC30F084 :1048800003BFA2EF24F00101000E046FA80E056F14 :10489000550E066F020E076F66C100F167C101F188 :1048A00068C102F169C103F166C18AF167C18BF188 :1048B00068C18CF169C18DF154EC30F003BF09D0AF :1048C0000101000E8A6FA80E8B6F550E8C6F020EC1 :1048D0008D6F9DEC2FF000C104F101C105F102C103 :1048E00006F103C107F1000E006FA00E016F980ED4 :1048F000026F7B0E036F85EC30F000C118F101C12F :1049000019F102C11AF103C11BF1000E006FA00ED4 :10491000016F980E026F7B0E036F8AC104F18BC189 :1049200005F18CC106F18DC107F185EC30F018C19D :1049300004F119C105F11AC106F11BC107F154ECCC :1049400030F012000101A80E006F610E016F000E21 :10495000026F000E036F4FC104F150C105F151C148 :1049600006F152C107F154EC30F003AF0AD0010157 :10497000A80E006F610E016F000E026F000E036F34 :1049800000D0C80E006FAF0E016F000E026F000E58 :10499000036F4FC104F150C105F151C106F152C17D :1049A00007F165EC30F012000401730E826F96EC93 :1049B0000EF004012C0E826F96EC0EF0078462C19B :1049C00066F163C167F164C168F165C169F14BC10A :1049D0004FF14CC150F14DC151F14EC152F157C18F :1049E00059F158C15AF10794FAEC24F0A0EC0EF0FA :1049F0006CEF2AF066C100F167C101F168C102F1F4 :104A000069C103F10101F2EC30F0B5EC2EF00401C4 :104A1000630E826F96EC0EF004012C0E826F96EC02 :104A20000EF04FC100F150C101F151C102F152C16C :104A300003F10101F2EC30F0B5EC2EF00401660E4A :104A4000826F96EC0EF004012C0E826F96EC0EF045 :104A500069EC31F059C100F15AC101F10101F2ECE8 :104A600030F0B5EC2EF00401740E826F96EC0EF06F :104A7000120010820401530E826F96EC0EF00401B6 :104A80002C0E826F96EC0EF083C32AF184C32BF1B7 :104A900085C32CF186C32DF187C32EF188C32FF176 :104AA00089C330F18AC331F18BC332F18CC333F146 :104AB0000101B7EC31F02EEC31F000C166F101C11B :104AC00067F102C168F103C169F18EC32AF18FC396 :104AD0002BF190C32CF191C32DF192C32EF193C30E :104AE0002FF194C330F195C331F196C332F197C3DE :104AF00033F10101B7EC31F02EEC31F000C14FF190 :104B000001C150F102C151F103C152F1AAEC31F0DF :104B100099C32FF19AC330F19BC331F19CC332F199 :104B20009DC333F10101B7EC31F02EEC31F000C13F :104B300059F101C15AF1FAEC24F004012C0E826FF4 :104B400096EC0EF0B4EF25F0118E1CA002D01CAE36 :104B5000108C1BBE02D01BA4108E03018251520A7E :104B600002E10F8201D00F928251750A02E1108496 :104B700001D010948251550A02E1108601D010969E :104B80008351310A03E11382138402D013921394E8 :104B900003018351660A01E056D00401660E826F5C :104BA00096EC0EF004012C0E826F96EC0EF0E9EC00 :104BB00023F0F2EC30F02AC182F40401300E822797 :104BC00096EC0EF02BC182F40401300E822796EC95 :104BD0000EF02CC182F40401300E822796EC0EF008 :104BE0002DC182F40401300E822796EC0EF02EC106 :104BF00082F40401300E822796EC0EF02FC182F46D :104C00000401300E822796EC0EF030C182F40401CC :104C1000300E822796EC0EF031C182F40401300E82 :104C2000822796EC0EF032C182F40401300E822706 :104C300096EC0EF033C182F40401300E822796EC1C :104C40000EF06AEF2AF011A003D011A401D0108455 :104C5000078410B28DEF26F010A471EF26F0BAC1D0 :104C600066F1BBC167F1BCC168F1BDC169F1BEC1EC :104C70006AF1BFC16BF1C0C16CF1C1C16DF1C2C1BC :104C80006EF1C3C16FF1C4C170F1C5C171F1C6C18C :104C900072F1C7C173F1C8C174F1C9C175F1CAC15C :104CA00076F1CBC177F1CCC178F1CDC179F1CEC12C :104CB0007AF1CFC17BF1D0C17CF1D1C17DF1D2C1FC :104CC0007EF1D3C17FF1D4C180F1D5C181F1D6C1CC :104CD00082F1D7C183F1D8C184F1D9C185F179EFCF :104CE00026F062C166F163C167F164C168F165C114 :104CF00069F1BAC186F1BBC187F1BCC188F1BDC100 :104D000089F14BC14FF14CC150F14DC151F14EC130 :104D100052F157C159F158C15AF107940FA0AFEFA2 :104D200026F0010196679CEF26F097679CEF26F02E :104D300098679CEF26F09967A0EF26F0AFEF26F07A :104D4000ECEC22F096C104F197C105F198C106F18F :104D500099C107F154EC30F003BF30EF2AF0ECECCE :104D600022F00101000E046F000E056F010E066FA8 :104D7000000E076F85EC30F011A02AD011A228D0C8 :104D8000F2EC30F0296701D005D004012D0E826FBE :104D900096EC0EF030C182F40401300E822796ECBE :104DA0000EF031C182F40401300E822796EC0EF031 :104DB00032C182F40401300E822796EC0EF033C12A :104DC00082F40401300E822796EC0EF0A0EC0EF077 :104DD00012A8C5D012981DC01EF01E3A1E42070E22 :104DE0001E1600011E50000AD8B47BEF27F0000108 :104DF0001E50010AD8B407EF27F000011E50020A26 :104E0000D8B405EF27F0ADEF27F0ADEF27F069EC50 :104E100031F02DC001F12EC000F1D89001330033E4 :104E2000D890013300330101630E046F000E056F4B :104E3000000E066F000E076F85EC30F0280E046F31 :104E4000000E056F000E066F000E076F54EC30F079 :104E500000C130F069EC31F02BC001F1019F019DE0 :104E60002CC000F10101A40E046F000E056F000EAE :104E7000066F000E076F85EC30F000C12FF000C107 :104E800004F101C105F102C106F103C107F1640E8D :104E9000006F000E016F000E026F000E036F54ECE6 :104EA00030F0050E046F000E056F000E066F000E49 :104EB000076F85EC30F000C104F101C105F102C1BA :104EC00006F103C107F169EC31F030C000F154EC98 :104ED00030F000C131F031C0E8FF050F305C03E76E :104EE0008A84ADEF27F031C0E8FF0A0F305C01E69D :104EF0008A94ADEF27F000C124F101C125F102C170 :104F000026F103C127F169EC31F06FEC31F01D504F :104F10001F0BE8CF00F10101640E046F000E056F56 :104F2000000E066F000E076F65EC30F024C104F12F :104F300025C105F126C106F127C107F154EC30F077 :104F400003BF02D08A9401D08A8424C100F125C114 :104F500001F126C102F127C103F16CEF2AF000C173 :104F600024F101C125F102C126F103C127F110AEE0 :104F70004DD0109E00C108F101C109F102C10AF132 :104F800003C10BF1F2EC30F030C1E2F131C1E3F1D9 :104F900032C1E4F133C1E5F108C100F109C101F109 :104FA0000AC102F10BC103F101016C0E046F070E7F :104FB000056F000E066F000E076F54EC30F003BF54 :104FC00004D00101550EE66F1CD008C100F109C1E3 :104FD00001F10AC102F10BC103F10101A40E046F3A :104FE000060E056F000E066F000E076F54EC30F0D2 :104FF00003BF04D001017F0EE66F03D00101FF0E55 :10500000E66F1F8E11AE30EF2AF0119E24C100F121 :1050100025C101F126C102F127C103F111A005D07C :1050200011A203D00FB030EF2AF010A41FEF28F028 :105030000401750E826F96EC0EF024EF28F0040147 :10504000720E826F96EC0EF004012C0E826F96ECBD :105050000EF0F2EC30F0296733EF28F00401200E57 :10506000826F36EF28F004012D0E826F96EC0EF061 :1050700030C182F40401300E822796EC0EF031C16B :1050800082F40401300E822796EC0EF004012E0EFD :10509000826F96EC0EF032C182F40401300E82274A :1050A00096EC0EF033C182F40401300E822796ECA8 :1050B0000EF004016D0E826F96EC0EF004012C0EC2 :1050C000826F96EC0EF04FC100F150C101F151C159 :1050D00002F152C103F10101F2EC30F0B5EC2EF017 :1050E0000401480E826F96EC0EF004017A0E826F76 :1050F00096EC0EF004012C0E826F96EC0EF066C159 :1051000000F167C101F168C102F169C103F1010158 :10511000F2EC30F0B5EC2EF00401630E826F96ECE9 :105120000EF004012C0E826F96EC0EF066C100F1B9 :1051300067C101F168C102F169C103F101010A0E01 :10514000046F000E056F000E066F000E076F65EC12 :1051500030F0000E046F120E056F000E066F000E89 :10516000076F85EC30F0F2EC30F02AC182F40401D4 :10517000300E822796EC0EF02BC182F40401300E23 :10518000822796EC0EF02CC182F40401300E8227A7 :1051900096EC0EF02DC182F40401300E822796ECBD :1051A0000EF02EC182F40401300E822796EC0EF030 :1051B0002FC182F40401300E822796EC0EF030C12C :1051C00082F40401300E822796EC0EF004012E0EBC :1051D000826F96EC0EF031C182F40401300E82270A :1051E00096EC0EF032C182F40401300E822796EC68 :1051F0000EF033C182F40401300E822796EC0EF0DB :105200000401730E826F96EC0EF004012C0E826F77 :1052100096EC0EF069EC31F059C100F15AC101F180 :1052200096EC2BF013A264EF29F004012C0E826F90 :1052300096EC0EF086C166F187C167F188C168F10E :1052400089C169F1ECEC22F00101000E046F000E3F :10525000056F010E066F000E076F85EC30F0F2EC63 :1052600030F0296739EF29F00401200E826F3CEFFE :1052700029F004012D0E826F96EC0EF030C182F4FD :105280000401300E822796EC0EF031C182F4040145 :10529000300E822796EC0EF004012E0E826F96ECF3 :1052A0000EF032C182F40401300E822796EC0EF02B :1052B00033C182F40401300E822796EC0EF0040113 :1052C0006D0E826F96EC0EF003018351460A01E0E9 :1052D0004FD004012C0E826F96EC0EF0E9EC23F017 :1052E000F2EC30F02AC182F40401300E822796ECF1 :1052F0000EF02BC182F40401300E822796EC0EF0E2 :105300002CC182F40401300E822796EC0EF02DC1E0 :1053100082F40401300E822796EC0EF02EC182F446 :105320000401300E822796EC0EF02FC182F40401A6 :10533000300E822796EC0EF030C182F40401300E5C :10534000822796EC0EF031C182F40401300E8227E0 :1053500096EC0EF032C182F40401300E822796ECF6 :105360000EF033C182F40401300E822796EC0EF069 :1053700013A4DFEF29F004012C0E826F96EC0EF0DF :1053800013ACCDEF29F00401500E826F96EC0EF0B5 :10539000139C1398139ADFEF29F013AEDAEF29F07C :1053A0000401460E826F96EC0EF0139E1398139A2A :1053B000DFEF29F00401530E826F96EC0EF037B048 :1053C000F6EF29F004012C0E826F96EC0EF08BB0F4 :1053D000F1EF29F00401440E826F96EC0EF0F6EF27 :1053E00029F00401530E826F96EC0EF00FB2FCEF21 :1053F00029F00FA02EEF2AF004012C0E826F96ECFC :105400000EF0200EF86EF76AF66A04010900F5CF77 :1054100082F496EC0EF00900F5CF82F496EC0EF0D3 :105420000900F5CF82F496EC0EF00900F5CF82F476 :1054300096EC0EF00900F5CF82F496EC0EF0090020 :10544000F5CF82F496EC0EF00900F5CF82F496ECDD :105450000EF00900F5CF82F496EC0EF0A0EC0EF001 :105460000F90109E12986CEF2AF00401630E826F69 :1054700096EC0EF004012C0E826F96EC0EF072EC9E :105480002AF004012C0E826F96EC0EF0E5EC2AF067 :1054900004012C0E826F96EC0EF061EC2BF00401EF :1054A0002C0E826F96EC0EF00101F80E006FCD0EFF :1054B000016F660E026F030E036F87EC2AF0040182 :1054C0002C0E826F96EC0EF077EC2BF0A0EC0EF029 :1054D0006CEF2AF0A0EC0EF00301C26B0790109263 :1054E0007BEF2DF0D8900E0E64EC0BF0E8CF00F1BE :1054F0000F0E64EC0BF0E8CF01F1100E64EC0BF032 :10550000E8CF02F1110E64EC0BF0E8CF03F10101DA :10551000000E046F000E056F010E066F000E076F80 :1055200085EC30F0F2EC30F02AC182F40401300E48 :10553000822796EC0EF02BC182F40401300E8227F4 :1055400096EC0EF02CC182F40401300E822796EC0A :105550000EF02DC182F40401300E822796EC0EF07D :105560002EC182F40401300E822796EC0EF02FC17A :1055700082F40401300E822796EC0EF030C182F4E2 :105580000401300E822796EC0EF031C182F4040142 :10559000300E822796EC0EF004012E0E826F96ECF0 :1055A0000EF032C182F40401300E822796EC0EF028 :1055B00033C182F40401300E822796EC0EF0040110 :1055C0006D0E826F96EC0EF01200120E64EC0BF072 :1055D000E8CF00F1130E64EC0BF0E8CF01F1140EEC :1055E00064EC0BF0E8CF02F1150E64EC0BF0E8CFA1 :1055F00003F101010A0E046F000E056F000E066F25 :10560000000E076F65EC30F0000E046F120E056F90 :10561000000E066F000E076F85EC30F0F2EC30F0F4 :105620002AC182F40401300E822796EC0EF02BC1C1 :1056300082F40401300E822796EC0EF02CC182F425 :105640000401300E822796EC0EF02DC182F4040185 :10565000300E822796EC0EF02EC182F40401300E3B :10566000822796EC0EF02FC182F40401300E8227BF :1056700096EC0EF030C182F40401300E822796ECD5 :105680000EF004012E0E826F96EC0EF031C182F402 :105690000401300E822796EC0EF032C182F4040130 :1056A000300E822796EC0EF033C182F40401300EE6 :1056B000822796EC0EF00401730E826F96EC0EF0CA :1056C00012000A0E64EC0BF0E8CF00F10B0E64EC54 :1056D0000BF0E8CF01F10C0E64EC0BF0E8CF02F117 :1056E0000D0E64EC0BF0E8CF03F196EF2BF0060EF5 :1056F00064EC0BF0E8CF00F1070E64EC0BF0E8CFA0 :1057000001F1080E64EC0BF0E8CF02F1090E64EC35 :105710000BF0E8CF03F196EF2BF0010169EC31F0CB :10572000078457C100F158C101F107940101E80E47 :10573000046F800E056F000E066F000E076F65EC9C :1057400030F0000E046F040E056F000E066F000EA1 :10575000076F85EC30F0880E046F130E056F000E96 :10576000066F000E076F54EC30F00A0E046F000E47 :10577000056F000E066F000E076F85EC30F0F2EC3F :1057800030F001012967CAEF2BF00401200E826F6F :10579000CDEF2BF004012D0E826F96EC0EF030C190 :1057A00082F40401300E822796EC0EF031C182F4AF :1057B0000401300E822796EC0EF032C182F404010F :1057C000300E822796EC0EF004012E0E826F96ECBE :1057D0000EF033C182F40401300E822796EC0EF0F5 :1057E0000401430E826F96EC0EF0120087C32AF17B :1057F00088C32BF189C32CF18AC32DF18BC32EF101 :105800008CC32FF18DC330F18EC331F190C332F1CF :1058100091C333F10101296BB7EC31F02EEC31F07B :105820000101000E046F000E056F010E066F000EE1 :10583000076F65EC30F00E0E0C6E00C10BF04DECF6 :105840000BF00F0E0C6E01C10BF04DEC0BF0100EB7 :105850000C6E02C10BF04DEC0BF0110E0C6E03C17F :105860000BF04DEC0BF004017A0E826F96EC0EF00B :1058700004012C0E826F96EC0EF00401350E826F3F :1058800096EC0EF004012C0E826F96EC0EF072EC8A :105890002AF0C2EF22F087C32AF188C32BF189C313 :1058A0002CF18AC32DF18BC32EF18CC32FF18DC344 :1058B00030F18EC331F190C332F191C333F1010164 :1058C000296BB7EC31F02EEC31F0880E046F130E1B :1058D000056F000E066F000E076F59EC30F0000EDA :1058E000046F040E056F000E066F000E076F65EC67 :1058F00030F00101E80E046F800E056F000E066F98 :10590000000E076F85EC30F00A0E0C6E00C10BF034 :105910004DEC0BF00B0E0C6E01C10BF04DEC0BF0CF :105920000C0E0C6E02C10BF04DEC0BF00D0E0C6E5C :1059300003C10BF04DEC0BF004017A0E826F96EC74 :105940000EF004012C0E826F96EC0EF00401360E60 :10595000826F96EC0EF004012C0E826F96EC0EF026 :1059600061EC2BF0C2EF22F087C32AF188C32BF140 :1059700089C32CF18AC32DF18BC32EF18CC32FF177 :105980008DC330F18FC331F190C332F191C333F144 :105990000101B7EC31F02EEC31F0000E046F120E65 :1059A000056F000E066F000E076F65EC30F0010109 :1059B0000A0E046F000E056F000E066F000E076FD3 :1059C00085EC30F0120E0C6E00C10BF04DEC0BF0BC :1059D000130E0C6E01C10BF04DEC0BF0140E0C6E9F :1059E00002C10BF04DEC0BF0150E0C6E03C10BF069 :1059F0004DEC0BF004017A0E826F96EC0EF0040170 :105A00002C0E826F96EC0EF00401370E826F96EC2E :105A10000EF004012C0E826F96EC0EF0E5EC2AF0ED :105A2000C2EF22F087C32AF188C32BF189C32CF17E :105A30008AC32DF18BC32EF18CC32FF18DC330F1AE :105A40008EC331F190C332F191C333F10101296B5F :105A5000B7EC31F02EEC31F0880E046F130E056FA9 :105A6000000E066F000E076F59EC30F0000E046F49 :105A7000040E056F000E066F000E076F65EC30F028 :105A80000101E80E046F800E056F000E066F000E18 :105A9000076F85EC30F0060E0C6E00C10BF04DEC7C :105AA0000BF0070E0C6E01C10BF04DEC0BF0080E65 :105AB0000C6E02C10BF04DEC0BF0090E0C6E03C125 :105AC0000BF04DEC0BF004017A0E826F96EC0EF0A9 :105AD00004012C0E826F96EC0EF00401380E826FDA :105AE00096EC0EF004012C0E826F96EC0EF077EC23 :105AF0002BF0C2EF22F007A8EEEF2DF00101800E8F :105B0000006F1A0E016F060E026F000E036F4BC17D :105B100004F14CC105F14DC106F14EC107F154EC41 :105B200030F003BF34EF2EF0AFEC2EF04BC100F19C :105B30004CC101F14DC102F14EC103F1078261EC8C :105B40002FF018C104F119C105F11AC106F11BC1EA :105B500007F1F80E006FCD0E016F660E026F030E97 :105B6000036F54EC30F00E0E0C6E00C10BF04DECD8 :105B70000BF00F0E0C6E01C10BF04DEC0BF0100E84 :105B80000C6E02C10BF04DEC0BF0110E0C6E03C14C :105B90000BF04DEC0BF00784010169EC31F057C1BB :105BA00000F158C101F107940A0E0C6E00C10BF010 :105BB0004DEC0BF00B0E0C6E01C10BF04DEC0BF02D :105BC0000C0E0C6E02C10BF04DEC0BF00D0E0C6EBA :105BD00003C10BF04DEC0BF034EF2EF007AA34EFBD :105BE0002EF00784010169EC31F057C100F158C172 :105BF00001F10794060E0C6E00C10BF04DEC0BF09A :105C0000070E0C6E01C10BF04DEC0BF0080E0C6E84 :105C100002C10BF04DEC0BF0090E0C6E03C10BF042 :105C20004DEC0BF0078462C100F163C101F164C166 :105C300002F165C103F10794120E0C6E00C10BF066 :105C40004DEC0BF0130E0C6E01C10BF04DEC0BF094 :105C5000140E0C6E02C10BF04DEC0BF0150E0C6E19 :105C600003C10BF04DEC0BF00798079A040180512B :105C700081197F0B0DE09EA8FED714EE00F0815134 :105C80007F0BE126E750812B0F01AD6E36EF2EF032 :105C900005012F51000AD8B477EF2EF081BA5CEFDE :105CA0002EF015B277EF2EF005012F51010AD8B46E :105CB00075EF2EF06EEF2EF005012F51000AD8B4CB :105CC0002EEF39F005012F51010AD8B475EF2EF0EF :105CD00000011650050AD8B42EEF39F081B877EFDD :105CE0002EF0B2EC32F0B0EC33F0C7EC38F0C4EF89 :105CF0000DF018C100F119C101F11AC102F11BC167 :105D000003F1000E046F000E056F010E066F000E0A :105D1000076F85EC30F029A1A4EF2EF02051D8B404 :105D2000A4EF2EF018C100F119C101F11AC102F15E :105D30001BC103F1000E046F000E056F0A0E066F03 :105D4000000E076F85EC30F01200010104510013C2 :105D500005510113065102130751031312000101EB :105D6000186B196B1A6B1B6B12002AC182F40401A9 :105D7000300E822796EC0EF02BC182F40401300E17 :105D8000822796EC0EF02CC182F40401300E82279B :105D900096EC0EF02DC182F40401300E822796ECB1 :105DA0000EF02EC182F40401300E822796EC0EF024 :105DB0002FC182F40401300E822796EC0EF030C120 :105DC00082F40401300E822796EC0EF031C182F489 :105DD0000401300E822796EC0EF032C182F40401E9 :105DE000300E822796EC0EF033C182F40401300E9F :105DF000822796EC0EF012002FC182F40401300EBF :105E0000822796EC0EF030C182F40401300E822716 :105E100096EC0EF031C182F40401300E822796EC2C :105E20000EF032C182F40401300E822796EC0EF09F :105E300033C182F40401300E822796EC0EF012007A :105E4000060E216E060E226E060E236E212E26EF02 :105E50002FF0222E26EF2FF0232E26EF2FF08B840B :105E6000020E216E020E226E020E236E212E36EFDE :105E70002FF0222E36EF2FF0232E36EF2FF08B94BB :105E80001200FF0E226E22C023F0030E216E8B84BF :105E9000212E47EF2FF0030E216E232E47EF2FF018 :105EA0008B9422C023F0030E216E212E55EF2FF08C :105EB000030E216E233E55EF2FF0222E43EF2FF0DD :105EC00012000101005305E1015303E1025301E116 :105ED000002B24EC30F069EC31F03951006F3A516D :105EE000016F420E046F4B0E056F000E066F000E21 :105EF000076F65EC30F000C104F101C105F102C18A :105F000006F103C107F118C100F119C101F11AC16D :105F100002F11BC103F107B292EF2FF059EC30F000 :105F200094EF2FF054EC30F000C118F101C119F1D9 :105F300002C11AF103C11BF1120069EC31F059C121 :105F400000F15AC101F1060E64EC0BF0E8CF04F148 :105F5000070E64EC0BF0E8CF05F1080E64EC0BF0D3 :105F6000E8CF06F1090E64EC0BF0E8CF07F154EC32 :105F700030F000C124F101C125F102C126F103C1B5 :105F800027F1290E046F000E056F000E066F000E3C :105F9000076F65EC30F0EE0E046F430E056F000ED8 :105FA000066F000E076F59EC30F024C104F125C1D3 :105FB00005F126C106F127C107F165EC30F000C1FB :105FC0001CF101C11DF102C11EF103C11FF1120E2E :105FD00064EC0BF0E8CF04F1130E64EC0BF0E8CFA7 :105FE00005F1140E64EC0BF0E8CF06F1150E64EC2D :105FF0000BF0E8CF07F10D0E006F000E016F000EE1 :10600000026F000E036F65EC30F0180E046F000E87 :10601000056F000E066F000E076F85EC30F01CC197 :1060200004F11DC105F11EC106F11FC107F159ECB4 :1060300030F06A0E046F2A0E056F000E066F000E18 :10604000076F54EC30F01200BF0EFA6E200E3A6F5C :10605000396BD8900037013702370337D8B035EFA6 :1060600030F03A2F2AEF30F039073A070353D8B40B :1060700012000331070B80093F6F03390F0B010F2B :10608000396F80EC5FF0406F390580EC5FF0405D68 :10609000405F396B3F33D8B0392739333FA94AEFD6 :1060A00030F040513927120001018EEC31F0D8B0A8 :1060B0001200010103510719346F51EC31F0D890EF :1060C0000751031934AF800F12000101346B75ECD6 :1060D00031F0D8A08BEC31F0D8B0120060EC31F088 :1060E00069EC31F01F0E366FA1EC31F00B35D8B0F2 :1060F00051EC31F0D8A00335D8B01200362F74EF30 :1061000030F034B178EC31F012000101346B0451FD :106110000511061107110008D8A075EC31F0D8A0C0 :106120008BEC31F0D8B01200086B096B0A6B0B6B6B :10613000A1EC31F01F0E366FA1EC31F007510B5D71 :10614000D8A4AFEF30F006510A5DD8A4AFEF30F01D :106150000551095DD8A4AFEF30F00451085DD8A017 :10616000C2EF30F00451085F0551D8A0053D095F2A :106170000651D8A0063D0A5F0751D8A0073D0B5F26 :10618000D8900081362F9CEF30F034B178EC31F0AC :10619000346B75EC31F0D890A5EC31F007510B5D04 :1061A000D8A4DFEF30F006510A5DD8A4DFEF30F05D :1061B0000551095DD8A4DFEF30F00451085DD8A087 :1061C000EEEF30F0003FEEEF30F0013FEEEF30F059 :1061D000023FEEEF30F0032BD8B4120034B178EC6C :1061E00031F012000101346B75EC31F0D8B01200BF :1061F000AAEC31F0200E366F003701370237033733 :1062000011EE33F00A0E376FE7360A0EE75CD8B0AE :10621000E76EE552372F04EF31F0362FFCEF30F008 :1062200034B12981D8901200AAEC31F0200E366FDB :10623000003701370237033711EE33F00A0E376F9C :10624000E7360A0EE75CD8B0E76EE552372F20EF4D :1062500031F0362F18EF31F0D890120001010A0EFC :10626000346F200E366F11EE29F03451376F0A0E5D :10627000D890E652D8B0E726E732372F39EF31F021 :106280000333023301330033362F33EF31F0E7505D :10629000FF0FD8A00335D8B0120029B178EC31F047 :1062A0001200045100270551D8B0053D01270651C1 :1062B000D8B0063D02270751D8B0073D032712008A :1062C0000051086F0151096F02510A6F03510B6FA2 :1062D00012000101006B016B026B036B12000101E4 :1062E000046B056B066B076B12000335D8A0120018 :1062F0000351800B001F011F021F031F003F88EF87 :1063000031F0013F88EF31F0023F88EF31F0032B8D :10631000342B032512000735D8A012000751800B3B :10632000041F051F061F071F043F9EEF31F0053FA6 :106330009EEF31F0063F9EEF31F0072B342B0725FF :1063400012000037013702370337083709370A3799 :106350000B3712000101296B2A6B2B6B2C6B2D6BF9 :106360002E6B2F6B306B316B326B336B1200010174 :106370002A510F0B2A6F2B510F0B2B6F2C510F0B28 :106380002C6F2D510F0B2D6F2E510F0B2E6F2F5188 :106390000F0B2F6F30510F0B306F31510F0B316FCF :1063A00032510F0B326F33510F0B336F120000C19C :1063B00024F101C125F102C126F103C127F104C175 :1063C00000F105C101F106C102F107C103F124C1C9 :1063D00004F125C105F126C106F127C107F112001C :1063E00010A806D08994000EC76E220EC66E05D086 :1063F0008984000EC76E220EC66E050EE82EFED7EB :10640000120010A802D0898401D08994050EE82ECC :10641000FED71200F0EC31F09E96C69E000EC96EBB :10642000FF0E9EB602D0E82EFCD79E96C69E000EAA :10643000C96EFF0E9EB602D0E82EFCD7C9CFAFF5CD :106440009E96C69E000EC96EFF0E9EB602D0E82E26 :10645000FCD7C9CFB0F59E96C69E000EC96EFF0E42 :106460009EB602D0E82EFCD7C9CFB1F59E96C69E47 :10647000000EC96EFF0E9EB602D0E82EFCD7C9CF23 :10648000B2F59E96C69E000EC96EFF0E9EB602D055 :10649000E82EFCD7C9CFB3F59E96C69E000EC96EF6 :1064A000FF0E9EB602D0E82EFCD7C9CFB4F59E965B :1064B000C69E000EC96EFF0E9EB602D0E82EFCD717 :1064C000C9CFB5F501EC32F01200F0EC31F09E9638 :1064D000C69E800EC96EFF0E9EB602D0E82EFCD777 :1064E0009E96C69EAFC5C9FFFF0E9EB602D0E82E8F :1064F000FCD79E96C69EB0C5C9FFFF0E9EB602D0C1 :10650000E82EFCD79E96C69EB1C5C9FFFF0E9EB66B :1065100002D0E82EFCD79E96C69EB2C5C9FFFF0EDC :106520009EB602D0E82EFCD79E96C69EB3C5C9FF84 :10653000FF0E9EB602D0E82EFCD79E96C69EB4C52E :10654000C9FFFF0E9EB602D0E82EFCD79E96C69ECF :10655000B5C5C9FFFF0E9EB602D0E82EFCD701ECF0 :1065600032F01200F0EC31F09E96C69E070EC96E16 :10657000FF0E9EB602D0E82EFCD79E96C69E000E59 :10658000C96EFF0E9EB602D0E82EFCD7C9CFAFF57C :106590009E96C69E000EC96EFF0E9EB602D0E82ED5 :1065A000FCD7C9CFB0F59E96C69E000EC96EFF0EF1 :1065B0009EB602D0E82EFCD7C9CFB1F59E96C69EF6 :1065C000000EC96EFF0E9EB602D0E82EFCD7C9CFD2 :1065D000B2F501EC32F0F0EC31F09E96C69E25C08B :1065E000C9FFFF0E9EB602D0E82EFCD79E96C69E2F :1065F000000EC96EFF0E9EB602D0E82EFCD7C9CFA2 :10660000B6F501EC32F01200F0EC31F09E96C69E29 :10661000870EC96EFF0E9EB602D0E82EFCD79E965E :10662000C69EAFC5C9FFFF0E9EB602D0E82EFCD7AE :106630009E96C69EB0C5C9FFFF0E9EB602D0E82E3C :10664000FCD79E96C69EB1C5C9FFFF0E9EB602D06E :10665000E82EFCD79E96C69EB2C5C9FFFF0E9EB619 :1066600002D0E82EFCD701EC32F0F0EC31F09E962F :10667000C69E26C0C9FFFF0E9EB602D0E82EFCD7EC :106680009E96C69EB6C5C9FFFF0E9EB602D0E82EE6 :10669000FCD701EC32F01200F0EC31F09E96C69E71 :1066A000870EC96EFF0E9EB602D0E82EFCD79E96CE :1066B000C69E000EC96EFF0E9EB602D0E82EFCD715 :1066C0009E96C69E800EC96EFF0E9EB602D0E82E24 :1066D000FCD79E96C69E800EC96EFF0E9EB602D057 :1066E000E82EFCD79E96C69E800EC96EFF0E9EB603 :1066F00002D0E82EFCD701EC32F01200F0EC31F0C1 :106700009E96C69E870EC96EFF0E9EB602D0E82EDC :10671000FCD79E96C69E000EC96EFF0E9EB602D096 :10672000E82EFCD79E96C69E000EC96EFF0E9EB642 :1067300002D0E82EFCD79E96C69E800EC96EFF0E34 :106740009EB602D0E82EFCD79E96C69E800EC96EDD :10675000FF0E9EB602D0E82EFCD701EC32F01200FC :1067600010A817D0F0EC31F09E96C69E8F0EC96E21 :10677000FF0E9EB602D0E82EFCD79E96C69E000E57 :10678000C96EFF0E9EB602D0E82EFCD701EC32F0A7 :106790001200B2EC32F0120010A82DD0F0EC31F063 :1067A0009E96C69E26C0C9FFFF0E9EB602D0E82E5A :1067B000FCD79E96C69E450EC96EFF0E9EB602D0B1 :1067C000E82EFCD701EC32F0F0EC31F09E96C69E3C :1067D0008F0EC96EFF0E9EB602D0E82EFCD79E9695 :1067E000C69E000EC96EFF0E9EB602D0E82EFCD7E4 :1067F00001EC32F01200F0EC31F09E96C69E26C0FD :10680000C9FFFF0E9EB602D0E82EFCD79E96C69E0C :10681000010EC96EFF0E9EB602D0E82EFCD701EC29 :1068200032F0F0EC31F09E96C69E910EC96EFF0ECE :106830009EB602D0E82EFCD79E96C69EA50EC96EC7 :10684000FF0E9EB602D0E82EFCD701EC32F012000B :10685000F0EC31F09E96C69E26C0C9FFFF0E9EB694 :1068600002D0E82EFCD79E96C69E810EC96EFF0E02 :106870009EB602D0E82EFCD701EC32F01200F0EC0C :1068800031F09E96C69E26C0C9FFFF0E9EB602D06E :10689000E82EFCD79E96C69E010EC96EFF0E9EB6D0 :1068A00002D0E82EFCD701EC32F01200F0EC31F00F :1068B0009E96C69E910EC96EFF0E9EB602D0E82E21 :1068C000FCD79E96C69EA50EC96EFF0E9EB602D040 :1068D000E82EFCD701EC32F01200F0EC31F09E967D :1068E000C69E910EC96EFF0E9EB602D0E82EFCD752 :1068F0009E96C69E000EC96EFF0E9EB602D0E82E72 :10690000FCD701EC32F012000501256B266B276BDA :10691000286B899A400EC76E200EC66E9E96C69E44 :10692000030EC96EFF0E9EB602D0E82EFCD79E96CF :10693000C69E27C5C9FFFF0E9EB602D0E82EFCD723 :106940009E96C69E26C5C9FFFF0E9EB602D0E82EB3 :10695000FCD79E96C69E25C5C9FFFF0E9EB602D0E7 :10696000E82EFCD79E96C69EC952FF0E9EB602D058 :10697000E82EFCD7898A0F01C950FF0A01E11200F5 :1069800005012E51130A05E005012E51170A0CE0EE :1069900012000501E00E256FFF0E266F0F0E276F08 :1069A000000E286FDDEF34F00501E00E256FFF0EBD :1069B000266FFF0E276F000E286F899A400EC76E54 :1069C000200EC66E9E96C69E030EC96EFF0E9EB624 :1069D00002D0E82EFCD79E96C69E27C5C9FFFF0EA3 :1069E0009EB602D0E82EFCD79E96C69E26C5C9FF4D :1069F000FF0E9EB602D0E82EFCD79E96C69E25C5F9 :106A0000C9FFFF0E9EB602D0E82EFCD79E96C69E0A :106A1000C952FF0E9EB602D0E82EFCD7898A0F011C :106A2000C950FF0A1DE005012E51130A05E00501BA :106A30002E51170A0BE012000501000E256F000E03 :106A4000266F100E276F000E286F12000501000E32 :106A5000256F000E266F000E276F010E286F1200A3 :106A60000501256B266B276B286B05012E51130A38 :106A700005E005012E51170A0CE012000501000E79 :106A8000216F000E226F080E236F000E246F52EF4D :106A900035F00501000E216F000E226F800E236F6E :106AA000000E246F21C500F122C501F123C502F1BA :106AB00024C503F125C504F126C505F127C506F156 :106AC00028C507F1A5EC2EF000C125F501C126F57A :106AD00002C127F503C128F5899A400EC76E200E22 :106AE000C66E9E96C69E030EC96EFF0E9EB602D05F :106AF000E82EFCD79E96C69E27C5C9FFFF0E9EB600 :106B000002D0E82EFCD79E96C69E26C5C9FFFF0E72 :106B10009EB602D0E82EFCD79E96C69E25C5C9FF1C :106B2000FF0E9EB602D0E82EFCD79E96C69EC95296 :106B3000FF0E9EB602D0E82EFCD7898AC950FF0A04 :106B400008E104C125F505C126F506C127F507C1F1 :106B500028F5D890050124332333223321332151E2 :106B6000E00B216F05012167BDEF35F02267BDEF16 :106B700035F02367BDEF35F0246752EF35F005019E :106B8000200E2527E86A2623E86A2723E86A2823B7 :106B90001200E86A05012E51130A06E005012E5184 :106BA000170A0BE0020E120005012851000A03E14A :106BB0002751F00B07E0010E120005012851000AD1 :106BC00001E0010E120029C500F12AC501F12BC513 :106BD00002F12CC503F125C504F126C505F127C531 :106BE00006F128C507F154EC30F003BF1200C9ECE0 :106BF00035F0D8A45BEF36F0899A400EC76E200EB0 :106C0000C66E9E96C69E060EC96EFF0E9EB602D03A :106C1000E82EFCD7898A899A9E96C69E020EC96E76 :106C2000FF0E9EB602D0E82EFCD79E96C69E27C5C4 :106C3000C9FFFF0E9EB602D0E82EFCD79E96C69ED8 :106C400026C5C9FFFF0E9EB602D0E82EFCD79E9641 :106C5000C69E25C5C9FFFF0E9EB602D0E82EFCD702 :106C60009E96C69E000EC96EFF0E9EB602D0E82EFE :106C7000FCD7898A899A9E96C69E050EC96EFF0E1C :106C80009EB602D0E82EFCD79E96C69EC952FF0E35 :106C90009EB602D0E82EFCD7C9B044EF36F0898A00 :106CA0000501200E2527E86A2623E86A2723E86ADB :106CB0002823E3EF35F01200899A400EC76E200EAC :106CC000C66E9E96C69E060EC96EFF0E9EB602D07A :106CD000E82EFCD7898A899A9E96C69EC70EC96EF1 :106CE000FF0E9EB602D0E82EFCD7898A0501256BDF :106CF000266B276B286B1200899A400EC76E200EF8 :106D0000C66E9E96C69E050EC96EFF0E9EB602D03A :106D1000E82EFCD79E96C69EC952FF0E9EB602D0A4 :106D2000E82EFCD7C9CF37F5898A1200899A400E20 :106D3000C76E200EC66E9E96C69EB90EC96EFF0E19 :106D40009EB602D0E82EFCD7898A1200899A400E9E :106D5000C76E200EC66E9E96C69EAB0EC96EFF0E07 :106D60009EB602D0E82EFCD7898AFF0EE82EFED709 :106D70001200C9EC35F0D8A41200899A400EC76EF3 :106D8000200EC66E9E96C69E030EC96EFF0E9EB660 :106D900002D0E82EFCD79E96C69E27C5C9FFFF0EDF :106DA0009EB602D0E82EFCD79E96C69E26C5C9FF89 :106DB000FF0E9EB602D0E82EFCD79E96C69E25C535 :106DC000C9FFFF0E9EB602D0E82EFCD79E96C69E47 :106DD000C952FF0E9EB602D0E82EFCD7898A0F0159 :106DE000C950FF0AD8A438EF38F00501FE0E376FFE :106DF0000501FF0E536FFF0E546FFF0E556FFF0E10 :106E0000566F15A6379915860AEC32F0AFC538F5DE :106E1000B0C539F5B1C53AF5B2C53BF5B3C53CF5DA :106E2000B4C53DF5B5C53EF50784BAC166F1BBC131 :106E300067F1BCC168F1BDC169F14BC14FF14CC1F3 :106E400050F14DC151F14EC152F157C159F158C1E4 :106E50005AF100011650010AD8B43DEF37F0000195 :106E60001650020AD8B462EF37F000011650040A37 :106E7000D8B487EF37F038EF38F00501476B486B2F :106E8000496B4A6B05014B6B4C6B4D6B4E6B0501AF :106E90004F6B506B516B526B8BA0379BECEC22F01D :106EA00000C1DAF101C1DBF102C1DCF103C1DDF1A6 :106EB00000C13FF501C140F502C141F503C142F5F2 :106EC000A6EF37F00501476B486B496B4A6B05012C :106ED0004B6B4C6B4D6B4E6B05014F6B506B516B9D :106EE000526BECEC22F000C1DAF101C1DBF102C11E :106EF000DCF103C1DDF1E9EC23F000C147F501C18C :106F000048F502C149F503C14AF538EF38F0379B1F :106F1000DAC13FF5DBC140F5DCC141F5DDC142F529 :106F2000ECEC22F000C14BF501C14CF502C14DF56E :106F300003C14EF5E9EC23F000C14FF501C150F556 :106F400002C151F503C152F5A6EF37F005016167A3 :106F5000B1EF37F06267B1EF37F06367B1EF37F049 :106F60006467B5EF37F0CAEF37F0DAC100F1DBC183 :106F700001F1DCC102F1DDC103F161C504F162C5BB :106F800005F163C506F164C507F154EC30F003BFA9 :106F900038EF38F059C143F55AC144F5B9C545F544 :106FA0000501210E326F899A400EC76E200EC66E03 :106FB0009E96C69E060EC96EFF0E9EB602D0E82EA5 :106FC000FCD7898A899A9E96C69E020EC96EFF0ECC :106FD0009EB602D0E82EFCD79E96C69E27C5C9FF56 :106FE000FF0E9EB602D0E82EFCD79E96C69E26C502 :106FF000C9FFFF0E9EB602D0E82EFCD79E96C69E15 :1070000025C5C9FFFF0E9EB602D0E82EFCD725EE9F :1070100037F0322F02D018EF38F09E96C69EDECFA2 :10702000C9FFFF0E9EB602D0E82EFCD709EF38F05C :10703000898A899A9E96C69E050EC96EFF0E9EB6D7 :1070400002D0E82EFCD79E96C69EC952FF0E9EB671 :1070500002D0E82EFCD7C9B023EF38F0898A0501A9 :10706000200E2527E86A2623E86A2723E86A2823D2 :1070700015900794120021C500F122C501F123C526 :1070800002F124C503F1899A400EC76E200EC66E28 :107090009E96C69E0B0EC96EFF0E9EB602D0E82EBF :1070A000FCD79E96C69E02C1C9FFFF0E9EB602D0B7 :1070B000E82EFCD79E96C69E01C1C9FFFF0E9EB664 :1070C00002D0E82EFCD79E96C69E00C1C9FFFF0ED7 :1070D0009EB602D0E82EFCD79E96C69EC952FF0EE1 :1070E0009EB602D0E82EFCD725EE37F00501200E23 :1070F000326F9E96C69EC952FF0E9EB602D0E82EF3 :10710000FCD7C9CFDEFF322F79EF38F0898A120021 :10711000899A400EC76E200EC66E9E96C69E900E31 :10712000C96EFF0E9EB602D0E82EFCD79E96C69E74 :10713000000EC96EFF0E9EB602D0E82EFCD79E96BA :10714000C69E000EC96EFF0E9EB602D0E82EFCD77A :107150009E96C69E000EC96EFF0E9EB602D0E82E09 :10716000FCD79E96C69EC952FF0E9EB602D0E82E50 :10717000FCD7C9CF2DF59E96C69EC952FF0E9EB66E :1071800002D0E82EFCD7C9CF2EF5898A12000AEC6E :1071900032F005012F51010A5FE005012F51020A6B :1071A00016E005012F51030A19E005012F51040AC9 :1071B00024E005012F51050A2BE005012F51060A95 :1071C00039E005012F51070A3FE02CEF39F0602F1D :1071D0002AEF39F05FC560F52CEF39F0B0C500F14A :1071E00001010F0E001701010051000A35E00101F5 :1071F0000051050A31E02AEF39F0B0C500F1010174 :107200000F0E001701010051000A26E02AEF39F0A5 :107210000501B051000A20E00501B051150A1CE03B :107220000501B051300A18E00501B051450A14E0DB :107230002AEF39F00501B051000A0EE00501B05106 :10724000300A0AE02AEF39F00501B051000A04E0E3 :107250002AEF39F015901200158012008B9020EC67 :107260002FF0B9C5E8FFD70802E320EC2FF0B9C52D :10727000E8FFC80802E320EC2FF0B9C5E8FFB90821 :1072800002E320EC2FF0B9C5E8FFAA0802E320ECE6 :107290002FF0B9C5E8FF9B0802E320EC2FF096EC35 :1072A00036F0F29CF29E8B94C69AC2909482948C93 :1072B000720ED36ED3A4FED789968A909390F29AD9 :1072C000F2949D909E909D929E92F298F292B0ECD4 :1072D00033F0FF0EE8CF00F0E82EFED7002EFCD7EB :1072E000F290F286815081A878EF39F0F29E030087 :1072F000700ED36EF296F2901584038041EC2FF05D :047300009AEF0BF005 :10BF0000E844F926000C160C2B0C3F0C520C640C68 :10BF1000760C860C960CA50CB30CC10CCF0CDC0C6B :06BF2000E80CF40C000C1B :0200000400F00A :0100C800FE39 :00000001FF ./firmware/SQMLE-4-4-79.hex0000644000175000017500000013120414274541470015110 0ustar anthonyanthony:020000040000FA :0408000063EF09F0A9 :1008100003B26EEF05F0F2B48CEF05F09EB094EFEA :1008200005F09EB29CEF05F0F2A81AEF04F0F2B2C8 :100830001CEF04F012EF09F0CD90F2929EA026EF8B :1008400004F00101533F26EF04F0542BB2C1B6F17E :10085000B3C1B7F1B4C1B8F1B5C1B9F1AEC1B2F12C :10086000AFC1B3F1B0C1B4F1B1C1B5F1AAC1AEF13C :10087000ABC1AFF1ACC1B0F1ADC1B1F1A6C1AAF14C :10088000A7C1ABF1A8C1ACF1A9C1ADF1A2C1A6F15C :10089000A3C1A7F1A4C1A8F1A5C1A9F19EC1A2F16C :1008A0009FC1A3F1A0C1A4F1A1C1A5F19AC19EF17C :1008B0009BC19FF19CC1A0F19DC1A1F1CECF9AF146 :1008C000CFCF9BF153C19CF154C19DF1CF6ACE6A49 :1008D0000101536B546B9E90CD800FBC0F8E0FBAED :1008E00075EF04F00F8A12EF09F013880F8C0FBE1A :1008F000B2EF04F09AC19EF19BC19FF19CC1A0F19F :100900009DC1A1F19EC1A2F19FC1A3F1A0C1A4F11B :10091000A1C1A5F1A2C1A6F1A3C1A7F1A4C1A8F1EB :10092000A5C1A9F1A6C1AAF1A7C1ABF1A8C1ACF1BB :10093000A9C1ADF1AAC1AEF1ABC1AFF1ACC1B0F18B :10094000ADC1B1F1AEC1B2F1AFC1B3F1B0C1B4F15B :10095000B1C1B5F1B2C1B6F1B3C1B7F1B4C1B8F12B :10096000B5C1B9F101015E6B5F6B606B616B9A5150 :100970005E279B515F239C5160239D5161239E51B3 :100980005E279F515F23A0516023A1516123A25193 :100990005E27A3515F23A4516023A5516123A65173 :1009A0005E27A7515F23A8516023A9516123AA5153 :1009B0005E27AB515F23AC516023AD516123AE5133 :1009C0005E27AF515F23B0516023B1516123B25113 :1009D0005E27B3515F23B4516023B5516123B651F3 :1009E0005E27B7515F23B8516023B9516123D89076 :1009F0000101613360335F335E33D89001016133AD :100A000060335F335E33D8900101613360335F330D :100A10005E3300C10CF101C10DF102C10EF103C141 :100A20000FF104C110F105C111F106C112F107C1A6 :100A300013F108C114F109C115F10AC116F10BC176 :100A400017F134C135F111B831EF05F00101620E33 :100A5000046F010E056F000E066F000E076F3AEF70 :100A600005F00101A70E046F020E056F000E066F60 :100A7000000E076F5EC100F15FC101F160C102F1BC :100A800061C103F1C4EC22F003BF04D01CBE02D04C :100A90001CA0108C11A052EF05F010BA52EF05F017 :100AA0000F80108A0CC100F10DC101F10EC102F1DD :100AB0000FC103F110C104F111C105F112C106F11A :100AC00013C107F114C108F115C109F116C10AF1EA :100AD00017C10BF135C134F112EF09F00392ABB23B :100AE000AB98AB88030103EE00F080517F0BE92641 :100AF00004C0EFFF802B8151805D700BD8A48B82E6 :100B000000008051815D700BD8A48B9281518019B7 :100B1000D8B4079012EF09F0F2940101453F12EFAB :100B200009F0462B12EF09F09E900101533F12EF9E :100B300009F0542B12EF09F09E9213A0C6EF05F0B6 :100B400001015E6B5F6B606B616B626B636B646B0F :100B5000656B666B676B686B696B536B546BCF6AC5 :100B6000CE6A0F9A0F9C0F9E0101476B486B496B31 :100B70004A6B4B6B4C6B4D6B4E6B4F6B506B516BB1 :100B8000526B456B466BD76AD66A139011B83BEF30 :100B900007F08BB4D3EF05F010ACD3EF05F08B84E6 :100BA000109CD4EF05F08B94C3CF55F1C4CF56F110 :100BB000C28207B443EF06F047C14BF148C14CF184 :100BC00049C14DF14AC14EF15EC162F15FC163F1AD :100BD00060C164F161C165F113A8F1EF05F0138CF8 :100BE00013989AC1BAF19BC1BBF19CC1BCF19DC1E4 :100BF000BDF19EC1BEF19FC1BFF1A0C1C0F1A1C1B5 :100C0000C1F1A2C1C2F1A3C1C3F1A4C1C4F1A5C184 :100C1000C5F1A6C1C6F1A7C1C7F1A8C1C8F1A9C154 :100C2000C9F1AAC1CAF1ABC1CBF1ACC1CCF1ADC124 :100C3000CDF1AEC1CEF1AFC1CFF1B0C1D0F1B1C1F4 :100C4000D1F1B2C1D2F1B3C1D3F1B4C1D4F1B5C1C4 :100C5000D5F1B6C1D6F1B7C1D7F1B8C1D8F1B9C194 :100C6000D9F1010155515B2756515C23E86A5D2398 :100C70000E2E43EF06F05CC157F15DC158F15B6B7E :100C80005C6B5D6B078E0201002F12EF09F03C0ECA :100C9000006F1D50E00BE00AE86612881BBE02D010 :100CA0001BB4108E00C10CF101C10DF102C10EF197 :100CB00003C10FF104C110F105C111F106C112F118 :100CC00007C113F108C114F109C115F10AC116F1E8 :100CD0000BC117F134C135F101018E6777EF06F0D2 :100CE0008F6777EF06F0906777EF06F091677BEFFD :100CF00006F0ACEF06F092C100F193C101F194C18E :100D000002F195C103F10101010E046F000E056FA0 :100D1000000E066F000E076FC4EC22F000C192F1C6 :100D200001C193F102C194F103C195F10101006782 :100D3000A1EF06F00167A1EF06F00267A1EF06F050 :100D40000367ACEF06F08EC192F18FC193F190C1B1 :100D500094F191C195F10F80D57ED5BE6ED0D6CFDE :100D600047F1D7CF48F145C149F1E86AE8CF4AF1E8 :100D7000138A1CBE02D01CA0108C109047C100F139 :100D800048C101F149C102F14AC103F101010A0E52 :100D9000046F000E056F000E066F000E076FC4ECA7 :100DA00022F003AF1080010154A7E3EF06F00F9A81 :100DB0000F9C0F9E0101000E5E6F600E5F6F3D0E77 :100DC000606F080E616F010147BFF3EF06F04867DF :100DD000F3EF06F04967F3EF06F04A67F3EF06F02A :100DE000F28818EF07F0F2985E6B5F6B606B616BD7 :100DF0009A6B9B6B9C6B9D6B9E6B9F6BA06BA16BAF :100E0000A26BA36BA46BA56BA66BA76BA86BA96B5E :100E1000AA6BAB6BAC6BAD6BAE6BAF6BB06BB16B0E :100E2000B26BB36BB46BB56BB66BB76BB86BB96BBE :100E3000D76AD66A0101456B466B0CC100F10DC142 :100E400001F10EC102F10FC103F110C104F111C192 :100E500005F112C106F113C107F114C108F115C162 :100E600009F116C10AF117C10BF135C134F112EFC6 :100E700009F012EF09F00201002F96EF08F0D59E5D :100E8000D6CF47F1D7CF48F145C149F1E86AE8CF5D :100E90004AF1138AD76AD66A0101456B466BD58E33 :100EA0001D50E00BE00AE86612881BBE02D01BB49E :100EB000108E1AAE1F8C00C10CF101C10DF102C1E0 :100EC0000EF103C10FF104C110F105C111F106C10A :100ED00012F107C113F108C114F109C115F10AC1DA :100EE00016F10BC117F134C135F10FA0109A11B8EA :100EF00085EF07F00101620E046F010E056F000E11 :100F0000066F000E076F8EEF07F00101A70E046F4A :100F1000020E056F000E066F000E076F47C100F14D :100F200048C101F149C102F14AC103F1C4EC22F008 :100F300003BFA1EF07F01CBE02D01CA0108C11B0A3 :100F40000F800CC100F10DC101F10EC102F10FC102 :100F500003F110C104F111C105F112C106F113C171 :100F600007F114C108F115C109F116C10AF117C141 :100F70000BF135C134F102013C0E006F00C10CF1E0 :100F800001C10DF102C10EF103C10FF104C110F155 :100F900005C111F106C112F107C113F108C114F125 :100FA00009C115F10AC116F10BC117F134C135F1B0 :100FB00001018E67E3EF07F08F67E3EF07F09067BB :100FC000E3EF07F09167E7EF07F018EF08F092C141 :100FD00000F193C101F194C102F195C103F1010146 :100FE000010E046F000E056F000E066F000E076FF6 :100FF000C4EC22F000C192F101C193F102C194F15D :1010000003C195F1010100670DEF08F001670DEFD5 :1010100008F002670DEF08F0036718EF08F08EC1C3 :1010200092F18FC193F190C194F191C195F10F802C :10103000109047C100F148C101F149C102F14AC114 :1010400003F101010A0E046F000E056F000E066F1A :10105000000E076FC4EC22F003AF1080010154A70B :101060003EEF08F00F9A0F9C0F9E0101000E5E6F7D :10107000600E5F6F3D0E606F080E616F47C100F13B :1010800048C101F149C102F14AC103F10101140E45 :10109000046F050E056F000E066F000E076FC4EC9F :1010A00022F003AF57EF08F0F2887CEF08F0F298D7 :1010B0005E6B5F6B606B616B9A6B9B6B9C6B9D6BEC :1010C0009E6B9F6BA06BA16BA26BA36BA46BA56BBC :1010D000A66BA76BA86BA96BAA6BAB6BAC6BAD6B6C :1010E000AE6BAF6BB06BB16BB26BB36BB46BB56B1C :1010F000B66BB76BB86BB96B0CC100F10DC101F1E8 :101100000EC102F10FC103F110C104F111C105F1CB :1011100012C106F113C107F114C108F115C109F19B :1011200016C10AF117C10BF135C134F18BB4A0EF30 :1011300008F010ACA0EF08F08B84109CA1EF08F031 :101140008B94C3CF55F1C4CF56F1C28207B410EFD0 :1011500009F047C14BF148C14CF149C14DF14AC1B9 :101160004EF15EC162F15FC163F160C164F161C1C2 :1011700065F113A8BEEF08F0138C13989AC1BAF169 :101180009BC1BBF19CC1BCF19DC1BDF19EC1BEF133 :101190009FC1BFF1A0C1C0F1A1C1C1F1A2C1C2F103 :1011A000A3C1C3F1A4C1C4F1A5C1C5F1A6C1C6F1D3 :1011B000A7C1C7F1A8C1C8F1A9C1C9F1AAC1CAF1A3 :1011C000ABC1CBF1ACC1CCF1ADC1CDF1AEC1CEF173 :1011D000AFC1CFF1B0C1D0F1B1C1D1F1B2C1D2F143 :1011E000B3C1D3F1B4C1D4F1B5C1D5F1B6C1D6F113 :1011F000B7C1D7F1B8C1D8F1B9C1D9F10101555181 :101200005B2756515C23E86A5D230E2E10EF09F030 :101210005CC157F15DC158F15B6B5C6B5D6B078E18 :1012200012EF09F002C0E0FF005001C0D8FF10002B :10123000A6B218EF09F00CC0A9FF0BC0A8FFA69E2C :10124000A69CA684F29E550EA76EAA0EA76EA68235 :10125000F28EA694A6B22AEF09F00C2A1200A96E0B :10126000A69EA69CA680A8500C2A120004012C0E53 :10127000826F4FEC0BF0D9EC23F00C502FEC09F0FF :10128000E8CF00F10C502FEC09F0E8CF01F101AFED :101290004FEF09F00101FF0E026FFF0E036F62ECCA :1012A00023F029675BEF09F00401200E826F4FECF9 :1012B0000BF060EF09F004012D0E826F4FEC0BF084 :1012C0006CEC21F0120015941596076A0F6A106AEB :1012D000116A126A136A166A0F010E0EC16E860E2B :1012E000C06E030EC26E0F01896A110E926E080E57 :1012F0008A6EF10E936E8B6A800E946EF18E8A84E4 :101300008B86FC0E2FEC09F0E8CF0BF00BA01180C0 :101310000BA211820BA411840BA81188C90E2FEC0B :1013200009F0E8CF1AF0CA0E2FEC09F0E8CF1BF055 :10133000CB0E2FEC09F0E8CF1CF0CC0E2FEC09F00F :10134000E8CF1DF0FB0E2FEC09F0E8CF37F0CE0E02 :101350002FEC09F0E8CF14F0CD0E2FEC09F0E8CF18 :1013600036F01F6A206A0E6A01015B6B5C6B5D6B75 :10137000576B586BF29A0101476B486B496B4A6B8C :101380004B6B4C6B4D6B4E6B4F6B506B516B526B91 :10139000456B466BD76AD66A0F01280ED56EF28A66 :1013A0009D90B00ECD6E01015E6B5F6B606B616BEB :1013B000626B636B646B656B666B676B686B696BA9 :1013C000536B546BCF6ACE6A0F9A0F9C0F9E9D8011 :1013D000760ECA6E9D8202013C0E006FCC6A160E1C :1013E0002FEC09F0E8CF00F1170E2FEC09F0E8CF51 :1013F00001F1180E2FEC09F0E8CF02F1190E2FECD5 :1014000009F0E8CF03F1010103AF21EF0AF0D9ECB5 :1014100023F0160E0C6E00C10BF018EC09F0170E3D :101420000C6E01C10BF018EC09F0180E0C6E02C125 :101430000BF018EC09F0190E0C6E03C10BF018EC50 :1014400009F000C18EF101C18FF102C190F103C119 :1014500091F100C192F101C193F102C194F103C174 :1014600095F11A0E2FEC09F0E8CF00F11B0E2FECCE :1014700009F0E8CF01F11C0E2FEC09F0E8CF02F1E2 :101480001D0E2FEC09F0E8CF03F1010103AF77EF58 :101490000AF0D9EC23F01A0E0C6E00C10BF018EC18 :1014A00009F01B0E0C6E01C10BF018EC09F01C0EBC :1014B0000C6E02C10BF018EC09F01D0E0C6E03C18E :1014C0000BF018EC09F01A0E2FEC09F0E8CF00F140 :1014D0001B0E2FEC09F0E8CF01F11C0E2FEC09F0E8 :1014E000E8CF02F11D0E2FEC09F0E8CF03F100C1A7 :1014F00096F101C197F102C198F103C199F1240E4F :10150000AC6E900EAB6E240EAC6E080EB86E000E74 :10151000B06E1F0EAF6E0401806B816B0F01900ED9 :10152000AB6E0F019D8A0301806B816BC26B8B9246 :1015300007900001F28EF28C07B01AEF20F00FB086 :10154000EFEF18F010BEEFEF18F012B8EFEF18F051 :101550000301805181197F0BD8B41AEF20F013EEEC :1015600000F081517F0BE126812BE7CFE8FFE00BF4 :10157000D8B41AEF20F023EE82F0C2513F0BD926E7 :10158000E7CFDFFFC22BDF50780AD8A41AEF20F094 :10159000078092C100F193C101F194C102F195C19C :1015A00003F10101040E046F000E056F000E066FBB :1015B000000E076FC4EC22F000AFE8EF0AF0010163 :1015C000030E926F000E936F000E946F000E956FD6 :1015D00003018251720AD8B470EF18F08251520A96 :1015E000D8B470EF18F08251750AD8B470EF18F0C3 :1015F0008251680AD8B463EF0BF08251630AD8B401 :10160000D4EF1CF08251690AD8B43DEF13F0825137 :101610007A0AD8B450EF14F08251490AD8B462EF74 :1016200012F08251500AD8B480EF11F08251700A42 :10163000D8B4C3EF11F08251540AD8B4EEEF11F0D0 :101640008251740AD8B434EF12F08251410AD8B4EE :1016500068EF0CF082514B0AD8B465EF0BF0825161 :101660006D0AD8B4D8EF10F082514D0AD8B4F1EF1A :1016700010F08251730AD8B4A0EF17F08251530AC8 :10168000D8B405EF18F08251660AD8B4C3EF12F04F :101690008251590AD8B429EF10F00BEF1DF0040164 :1016A00014EE00F080517F0BE12682C4E7FF802B0F :1016B000120004010D0E826F4FEC0BF00A0E826FC8 :1016C0004FEC0BF0120009EF1DF004014B0E826F7E :1016D0004FEC0BF004012C0E826F4FEC0BF081B835 :1016E00002D036B630D003018351430AD8B4AAEFF2 :1016F0000BF003018351630AD8B4ACEF0BF0030184 :101700008351520AD8B4AEEF0BF003018351720A31 :10171000D8B4B0EF0BF003018351470AD8B4B2EF4D :101720000BF003018351670AD8B4B4EF0BF0030147 :101730008351540AD8B4B6EF0BF003018351740AF5 :10174000D8B426EF0CF003018351550AD8B4B8EF92 :101750000BF083D036807BD0369079D0368277D02C :10176000369275D0368473D0369471D036866FD069 :1017700084C330F185C331F186C332F187C333F1BD :101780000101296B27EC24F09EEC23F000C104F149 :1017900001C105F102C106F103C107F11AEC24F001 :1017A000200EF86EF76AF66A0900F5CF2CF10900F1 :1017B000F5CF2DF10900F5CF2EF10900F5CF2FF16E :1017C0000900F5CF30F10900F5CF31F10900F5CF6F :1017D00032F10900F5CF33F10101296B27EC24F038 :1017E0009EEC23F0C4EC22F001010067FFEF0BF048 :1017F0000167FFEF0BF00267FFEF0BF0036701D00B :1018000025D004014E0E826F4FEC0BF004016F0ED9 :10181000826F4FEC0BF004014D0E826F4FEC0BF01A :101820000401610E826F4FEC0BF00401740E826FA5 :101830004FEC0BF00401630E826F4FEC0BF00401D0 :10184000680E826F4FEC0BF009EF1DF03696CD0E4F :101850000C6E36C00BF018EC09F0CD0E2FEC09F031 :10186000E8CF36F036B006D00401630E826F4FEC3D :101870000BF005D00401430E826F4FEC0BF036B233 :1018800006D00401720E826F4FEC0BF005D00401FC :10189000520E826F4FEC0BF036B406D00401670E87 :1018A000826F4FEC0BF005D00401470E826F4FECB6 :1018B0000BF036B606D00401740E826F4FEC0BF0BD :1018C00005D00401540E826F4FEC0BF009EF1DF0B0 :1018D0000401410E826F4FEC0BF003018351310A7A :1018E000D8B449EF0FF003018351320AD8B479EF2D :1018F0000EF003018351330AD8B402EF0EF0030156 :101900008351340AD8B4F2EF0CF003018351350A45 :10191000D8B492EF0CF004013F0E826F4FEC0BF045 :1019200009EF1DF003018451300AD8B4B8EF0CF070 :1019300003018451310AD8B4BBEF0CF00301845188 :10194000650AD8B4ACEF0CF003018451640AD8B432 :10195000AFEF0CF0BCEF0CF03790B0EF0CF037802D :10196000FB0E0C6E37C00BF018EC09F0BCEF0CF05E :101970008B90BCEF0CF08B800401350E826F4FEC26 :101980000BF004012C0E826F4FEC0BF08BB0D0EFFC :101990000CF00401300E826F4FEC0BF0D5EF0CF021 :1019A0000401310E826F4FEC0BF004012C0E826F9C :1019B0004FEC0BF0FB0E2FEC09F0E8CF37F037A01F :1019C000E9EF0CF00401640E826F4FEC0BF0EEEFC8 :1019D0000CF00401650E826F4FEC0BF0F0EF0CF091 :1019E00009EF1DF0CC0E2FEC09F0E8CF0BF004014D :1019F0002C0E826F4FEC0BF003018451310AD8B4E6 :101A000016EF0DF003018451300AD8B418EF0DF031 :101A1000030184514D0AD8B422EF0DF00301845123 :101A2000540AD8B429EF0DF040EF0DF08A8401D0AC :101A30008A940BAE04D00BAC02D00BBA21D0E00ECE :101A40000B1218D01F0E0B168539E844E00B0B1251 :101A500011D0E00E0B161AEC24F085C332F186C3C8 :101A600033F10101296B27EC24F09EEC23F00051A7 :101A70001F0B0B12CC0E0C6E0BC00BF018EC09F008 :101A80000401340E826F4FEC0BF004012C0E826FB8 :101A90004FEC0BF0CC0E2FEC09F0E8CF1DF08AB420 :101AA00006D00401300E826F4FEC0BF005D004011C :101AB000310E826F4FEC0BF004012C0E826F4FEC55 :101AC0000BF01D38E840070BE8CF82F40401300E1C :101AD00082274FEC0BF004012C0E826F4FEC0BF0C1 :101AE000D9EC23F01D501F0BE8CF00F162EC23F07E :101AF00032C182F40401300E82274FEC0BF033C167 :101B000082F40401300E82274FEC0BF004012C0EFE :101B1000826F4FEC0BF0D9EC23F030C000F100AF36 :101B20000BD0FF0E016FFF0E026FFF0E036F04015B :101B30002D0E826F4FEC0BF062EC23F031C182F47A :101B40000401300E82274FEC0BF032C182F4040105 :101B5000300E82274FEC0BF033C182F40401300EBB :101B600082274FEC0BF004012C0E826F4FEC0BF030 :101B7000D9EC23F02FC000F162EC23F031C182F4E4 :101B80000401300E82274FEC0BF032C182F40401C5 :101B9000300E82274FEC0BF033C182F40401300E7B :101BA00082274FEC0BF004012C0E826F4FEC0BF0F0 :101BB000D9EC23F031C000F100AF0BD0FF0E016F64 :101BC000FF0E026FFF0E036F04012D0E826F4FECAC :101BD0000BF062EC23F031C182F40401300E822755 :101BE0004FEC0BF032C182F40401300E82274FEC2F :101BF0000BF033C182F40401300E82274FEC0BF05E :101C000009EF1DF0CB0E2FEC09F0E8CF0BF004012B :101C10002C0E826F4FEC0BF003018451450AD8B4AF :101C200026EF0EF003018451440AD8B429EF0EF0D8 :101C300003018451300AD8B42CEF0EF00301845113 :101C4000310AD8B430EF0EF03BEF0EF00B9E35EFBB :101C50000EF00B8E35EF0EF0FC0E0B1635EF0EF07E :101C6000FC0E0B160B8035EF0EF0CB0E0C6E0BC07E :101C70000BF018EC09F00401330E826F4FEC0BF0FF :101C800004012C0E826F4FEC0BF0CB0E2FEC09F001 :101C9000E8CF1CF01CBE54EF0EF00401450E826F1D :101CA0004FEC0BF059EF0EF00401440E826F4FEC35 :101CB0000BF004012C0E826F4FEC0BF00401300E80 :101CC000826F4FEC0BF004012C0E826F4FEC0BF087 :101CD0001CB072EF0EF00401300E826F4FEC0BF06F :101CE00077EF0EF00401310E826F4FEC0BF009EF2D :101CF0001DF0CA0E2FEC09F0E8CF0BF004012C0EFA :101D0000826F4FEC0BF003018451450AD8B4B5EF54 :101D10000EF003018451440AD8B4B8EF0EF0030169 :101D200084514D0AD8B4C1EF0EF003018451410A29 :101D3000D8B4BBEF0EF003018451460AD8B4BEEF0D :101D40000EF003018451560AD8B4C9EF0EF0030116 :101D50008451500AD8B4D4EF0EF003018451520AD2 :101D6000D8B4D7EF0EF0E0EF0EF00B9EDAEF0EF0E6 :101D70000B8EDAEF0EF00B9CDAEF0EF00B8CDAEF35 :101D80000EF0FC0E0B1685C3E8FF030B0B12DAEF07 :101D90000EF0C70E0B1685C3E8FF070BE846E846B2 :101DA000E8460B12DAEF0EF00B84DAEF0EF00B942C :101DB000DAEF0EF0CA0E0C6E0BC00BF018EC09F047 :101DC000CA0E2FEC09F0E8CF1BF00401320E826F2F :101DD0004FEC0BF004012C0E826F4FEC0BF01BBE8E :101DE000F9EF0EF00401450E826F4FEC0BF0FEEFA1 :101DF0000EF00401440E826F4FEC0BF004012C0E28 :101E0000826F4FEC0BF01BC0E8FF030BE8CF82F4AE :101E10000401300E82274FEC0BF004012C0E826F70 :101E20004FEC0BF01BBC1CEF0FF00401410E826F56 :101E30004FEC0BF021EF0FF00401460E826F4FECD8 :101E40000BF004012C0E826F4FEC0BF01BC0E8FF6F :101E5000380BE842E842E842E8CF82F40401300E51 :101E600082274FEC0BF004012C0E826F4FEC0BF02D :101E70001BB442EF0FF00401520E826F4FEC0BF0D7 :101E800047EF0FF00401500E826F4FEC0BF009EF9B :101E90001DF0C90E2FEC09F0E8CF0BF004012C0E59 :101EA000826F4FEC0BF003018451450AD8B467EF01 :101EB0000FF003018451440AD8B46AEF0FF0030114 :101EC00084514D0AD8B46DEF0FF07BEF0FF00B9EED :101ED00075EF0FF00B8E75EF0FF0F80E0B1685C334 :101EE000E8FF070B0B1275EF0FF0C90E0C6E0BC05D :101EF0000BF018EC09F00401310E826F4FEC0BF07F :101F000004012C0E826F4FEC0BF0C90E2FEC09F080 :101F1000E8CF1AF01ABE06D00401450E826F4FECCE :101F20000BF005D00401440E826F4FEC0BF004015E :101F30002C0E826F4FEC0BF01AC0E8FF070BE8CFB6 :101F400082F40401300E82274FEC0BF004012C0EBA :101F5000826F4FEC0BF00780D9EC23F02BC0E8FF29 :101F6000003B00430043030B62EC23F033C182F4D7 :101F70000401300E82274FEC0BF004012C0E826F0F :101F80004FEC0BF0D9EC23F02BC001F1019F019D28 :101F90002CC000F1010162EC23F02FC182F4040196 :101FA000300E82274FEC0BF030C182F40401300E6A :101FB00082274FEC0BF031C182F40401300E8227EE :101FC0004FEC0BF032C182F40401300E82274FEC4B :101FD0000BF033C182F40401300E82274FEC0BF07A :101FE00004012C0E826F4FEC0BF0D9EC23F02DC0C6 :101FF00001F12EC000F1D89001330033D8900133A5 :102000000033010162EC23F02FC182F40401300E91 :1020100082274FEC0BF030C182F40401300E82278E :102020004FEC0BF031C182F40401300E82274FECEB :102030000BF032C182F40401300E82274FEC0BF01A :1020400033C182F40401300E82274FEC0BF009EF0C :102050001DF0FC0E2FEC09F0E8CF0BF003018351CB :10206000520AD8B460EF10F003018351720AD8B459 :1020700063EF10F003018351500AD8B466EF10F0FB :1020800003018351700AD8B469EF10F00301835142 :10209000550AD8B46CEF10F003018351750AD8B417 :1020A0006FEF10F003018351430AD8B478EF10F0BA :1020B00003018351630AD8B47BEF10F084EF10F072 :1020C0000B907EEF10F00B807EEF10F00B927EEF06 :1020D00010F00B827EEF10F00B947EEF10F00B846B :1020E0007EEF10F00B967EEF10F00B867EEF10F077 :1020F0000B987EEF10F00B887EEF10F0FC0E0C6E4C :102100000BC00BF018EC09F00401590E826F4FEC74 :102110000BF01190119211941198FC0E2FEC09F014 :10212000E8CF0BF00BA011800BA211820BA411843D :102130000BA8118811A0A4EF10F00401520E826FB9 :102140004FEC0BF0A9EF10F00401720E826F4FEC10 :102150000BF011A8B3EF10F00401430E826F4FECA7 :102160000BF0B8EF10F00401630E826F4FEC0BF030 :1021700011A2C2EF10F00401500E826F4FEC0BF071 :10218000C7EF10F00401700E826F4FEC0BF011A43A :10219000D1EF10F00401550E826F4FEC0BF0D6EF2B :1021A00010F00401750E826F4FEC0BF009EF1DF07B :1021B00004016D0E826F4FEC0BF003018351300A66 :1021C000D8B430EF11F003018351310AD8B443EF92 :1021D00011F003018351320AD8B456EF11F00BEF1E :1021E0001DF004014D0E826F4FEC0BF01AEC24F041 :1021F00084C331F185C332F186C333F10101296B08 :1022000027EC24F09EEC23F003018351300AD8B46C :1022100018EF11F003018351310AD8B420EF11F007 :1022200003018351320AD8B428EF11F00BEF1DF0EF :10223000FD0E0C6E00C10BF018EC09F030EF11F040 :10224000FE0E0C6E00C10BF018EC09F043EF11F01C :10225000FF0E0C6E00C10BF018EC09F056EF11F0F8 :102260000401300E826F4FEC0BF004012C0E826FD4 :102270004FEC0BF0D9EC23F0FD0E2FEC09F0E8CF7A :1022800000F167EF11F00401310E826F4FEC0BF09B :1022900004012C0E826F4FEC0BF0D9EC23F0FE0EF4 :1022A0002FEC09F0E8CF00F167EF11F00401320ED6 :1022B000826F4FEC0BF0D9EC23F004012C0E826FEF :1022C0004FEC0BF0FF0E2FEC09F0E8CF00F162ECC1 :1022D00023F031C182F40401300E82274FEC0BF061 :1022E00032C182F40401300E82274FEC0BF033C16F :1022F00082F40401300E82274FEC0BF009EF1DF041 :1023000083C32AF184C32BF185C32CF186C32DF13D :1023100087C32EF188C32FF189C330F18AC331F10D :102320008BC332F18CC333F1010127EC24F09EEC16 :1023300023F0160E0C6E00C10BF018EC09F0170E0E :102340000C6E01C10BF018EC09F0180E0C6E02C1F6 :102350000BF018EC09F0190E0C6E03C10BF018EC21 :1023600009F000C18EF101C18FF102C190F103C1EA :1023700091F100C192F101C193F102C194F103C145 :1023800095F162EF12F083C32AF184C32BF185C368 :102390002CF186C32DF187C32EF188C32FF189C399 :1023A00030F18AC331F18BC332F18CC333F10101B7 :1023B00027EC24F09EEC23F000C18EF101C18FF1D7 :1023C00002C190F103C191F100C192F101C193F1F9 :1023D00002C194F103C195F162EF12F083C32AF1B7 :1023E00084C32BF185C32CF186C32DF187C32EF155 :1023F00088C32FF189C330F18AC331F18CC332F124 :102400008DC333F1010127EC24F09EEC23F0010190 :10241000000E046F000E056F010E066F000E076FB1 :10242000D5EC22F01A0E0C6E00C10BF018EC09F07E :102430001B0E0C6E01C10BF018EC09F01C0E0C6E9B :1024400002C10BF018EC09F01D0E0C6E03C10BF06D :1024500018EC09F000C196F101C197F102C198F1A1 :1024600003C199F162EF12F083C32AF184C32BF107 :1024700085C32CF186C32DF187C32EF188C32FF1BC :1024800089C330F18AC331F18CC332F18DC333F18A :10249000010127EC24F09EEC23F00101000E046FF3 :1024A000000E056F010E066F000E076FD5EC22F0CF :1024B00000C196F101C197F102C198F103C199F1F0 :1024C00062EF12F0160E2FEC09F0E8CF00F1170EB4 :1024D0002FEC09F0E8CF01F1180E2FEC09F0E8CF4E :1024E00002F1190E2FEC09F0E8CF03F162EC23F0B2 :1024F00025EC21F00401730E826F4FEC0BF0040108 :102500002C0E826F4FEC0BF08EC100F18FC101F1E8 :1025100090C102F191C103F162EC23F025EC21F0AE :102520000401730E826F4FEC0BF004012C0E826FCE :102530004FEC0BF01A0E2FEC09F0E8CF00F11B0E58 :102540002FEC09F0E8CF01F11C0E2FEC09F0E8CFD9 :1025500002F11D0E2FEC09F0E8CF03F126EC1DF07F :1025600004012C0E826F4FEC0BF096C100F197C165 :1025700001F198C102F199C103F126EC1DF059EC6B :102580000BF00BEF1DF00401660E826F4FEC0BF0A9 :1025900003018351780AD8B4F0EF12F0030183519C :1025A000430AD8B4F4EF12F003018351460AD8B4B9 :1025B000FDEF12F0030183B102D08B9601D08B8620 :1025C00083B302D08A9401D08A8484B102D08B9ADA :1025D00001D08B8A84B302D08B9801D08B88138072 :1025E00000EC13F009EF1DF0149ECE0E0C6E14C01B :1025F0000BF018EC09F0F0EF12F0148EF5EF12F07A :1026000004012C0E826F4FEC0BF0300E8BB602D013 :10261000E89001D0E8808AB402D0E89201D0E88244 :10262000E8CF82F44FEC0BF004012C0E826F4FECDC :102630000BF0300E8BBA02D0E89001D0E8808BB856 :1026400002D0E89201D0E882E8CF82F44FEC0BF0A0 :1026500004012C0E826F4FEC0BF014AE37EF13F029 :102660000401460E826F4FEC0BF03CEF13F00401B7 :10267000430E826F4FEC0BF012000401690E826F63 :102680004FEC0BF004012C0E826F4FEC0BF00101AC :10269000040E006F000E016F000E026F000E036F3C :1026A00062EC23F02CC182F40401300E82274FEC3F :1026B0000BF02DC182F40401300E82274FEC0BF099 :1026C0002EC182F40401300E82274FEC0BF02FC193 :1026D00082F40401300E82274FEC0BF030C182F4FB :1026E0000401300E82274FEC0BF031C182F404015B :1026F000300E82274FEC0BF032C182F40401300E11 :1027000082274FEC0BF033C182F40401300E822794 :102710004FEC0BF004012C0E826F4FEC0BF001011B :10272000040E006F000E016F000E026F000E036FAB :1027300062EC23F02CC182F40401300E82274FECAE :102740000BF02DC182F40401300E82274FEC0BF008 :102750002EC182F40401300E82274FEC0BF02FC102 :1027600082F40401300E82274FEC0BF030C182F46A :102770000401300E82274FEC0BF031C182F40401CA :10278000300E82274FEC0BF032C182F40401300E80 :1027900082274FEC0BF033C182F40401300E822704 :1027A0004FEC0BF004012C0E826F4FEC0BF001018B :1027B0004F0E006F000E016F000E026F000E036FD0 :1027C00062EC23F02CC182F40401300E82274FEC1E :1027D0000BF02DC182F40401300E82274FEC0BF078 :1027E0002EC182F40401300E82274FEC0BF02FC172 :1027F00082F40401300E82274FEC0BF030C182F4DA :102800000401300E82274FEC0BF031C182F4040139 :10281000300E82274FEC0BF032C182F40401300EEF :1028200082274FEC0BF033C182F40401300E822773 :102830004FEC0BF004012C0E826F4FEC0BF0200ECE :10284000F86EF76AF66A04010900F5CF82F44FECDE :102850000BF00900F5CF82F44FEC0BF00900F5CF37 :1028600082F44FEC0BF00900F5CF82F44FEC0BF043 :102870000900F5CF82F44FEC0BF00900F5CF82F49C :102880004FEC0BF00900F5CF82F44FEC0BF0090090 :10289000F5CF82F44FEC0BF059EC0BF00BEF1DF081 :1028A0008351630AD8A409EF1DF08451610AD8A4AA :1028B00009EF1DF085516C0AD8A409EF1DF086516F :1028C000410A3FE08651440A1BE08651420AD8B4CF :1028D000B4EF14F08651350AD8B495EF1EF0865146 :1028E000360AD8B4EAEF1EF08651370AD8B453EF4F :1028F0001FF08651380AD8B4B1EF1FF009EF1DF070 :102900000798079A04017A0E826F4FEC0BF00401CE :10291000780E826F4FEC0BF00401640E826F4FEC67 :102920000BF00401550E826F4FEC0BF09DEF14F08D :1029300004014C0E826F4FEC0BF059EC0BF00BEFD7 :102940001DF00788079A04017A0E826F4FEC0BF096 :102950000401410E826F4FEC0BF00401610E826F97 :102960004FEC0BF091EF14F00798078A04017A0EF0 :10297000826F4FEC0BF00401420E826F4FEC0BF0B4 :102980000401610E826F4FEC0BF091EF14F0010126 :102990006667D2EF14F06767D2EF14F06867D2EF82 :1029A00014F0696716D001014F67DEEF14F050672D :1029B000DEEF14F05167DEEF14F052670AD0010128 :1029C000000E006F000E016F000E026F000E036F0D :1029D000120011B80AD00101620E046F010E056FDA :1029E000000E066F000E076F09D00101A70E046FDD :1029F000020E056F000E066F000E076F66C100F134 :102A000067C101F168C102F169C103F1C4EC22F0B0 :102A100003BF7BEF15F0119A119C0101000E046FAA :102A2000A80E056F550E066F020E076F66C100F106 :102A300067C101F168C102F169C103F166C18AF1A0 :102A400067C18BF168C18CF169C18DF1C4EC22F0D2 :102A500003BF0BD00101000E8A6FA80E8B6F550EBD :102A60008C6F020E8D6F118A119C0E0E2FEC09F0E7 :102A7000E8CF18F10F0E2FEC09F0E8CF19F1100E86 :102A80002FEC09F0E8CF1AF1110E2FEC09F0E8CF86 :102A90001BF10DEC22F08AC104F18BC105F18CC150 :102AA00006F18DC107F1C4EC22F00782D1EC21F0D0 :102AB0000DEC22F00792D1EC21F08AC100F18BC11C :102AC00001F18CC102F18DC103F10792D1EC21F02B :102AD000CC0E046FE00E056F870E066F050E076FB4 :102AE000C4EC22F000C118F101C119F102C11AF1C0 :102AF00003C11BF140D013AA80EF15F0138E139A77 :102B0000119C119A0101800E006F1A0E016F060EC2 :102B1000026F000E036F4FC104F150C105F151C1A6 :102B200006F152C107F1C4EC22F003AF05D0D9EC95 :102B300023F0118C119A12000E0E2FEC09F0E8CF41 :102B400018F10F0E2FEC09F0E8CF19F1100E2FEC51 :102B500009F0E8CF1AF1110E2FEC09F0E8CF1BF1C4 :102B60004FC100F150C101F151C102F152C103F155 :102B70000782D1EC21F018C100F119C101F11AC18D :102B800002F11BC103F112000784BAC166F1BBC197 :102B900067F1BCC168F1BDC169F14BC14FF14CC1D6 :102BA00050F14DC151F14EC152F157C159F158C1C7 :102BB0005AF1079401016667E5EF15F06767E5EFE5 :102BC00015F06867E5EF15F0696716D001014F67EA :102BD000F1EF15F05067F1EF15F05167F1EF15F0D7 :102BE00052670AD00101000E006F000E016F000E47 :102BF000026F000E036F120011B80AD00101620EBD :102C0000046F010E056F000E066F000E076F09D0EE :102C10000101A70E046F020E056F000E066F000E75 :102C2000076F66C100F167C101F168C102F169C1B6 :102C300003F1C4EC22F003BF7DEF16F00101000E9A :102C4000046FA80E056F550E066F020E076F66C162 :102C500000F167C101F168C102F169C103F166C108 :102C60008AF167C18BF168C18CF169C18DF1C4EC47 :102C700022F003BF09D00101000E8A6FA80E8B6FEE :102C8000550E8C6F020E8D6F0DEC22F000C104F119 :102C900001C105F102C106F103C107F1000E006F89 :102CA000A00E016F980E026F7B0E036FF5EC22F001 :102CB00000C118F101C119F102C11AF103C11BF1E0 :102CC000000E006FA00E016F980E026F7B0E036F57 :102CD0008AC104F18BC105F18CC106F18DC107F1E8 :102CE000F5EC22F018C104F119C105F11AC106F181 :102CF0001BC107F1C4EC22F012000101A80E006F05 :102D0000610E016F000E026F000E036F4FC104F1E0 :102D100050C105F151C106F152C107F1C4EC22F0D6 :102D200003AF0AD00101A80E006F610E016F000E03 :102D3000026F000E036F00D0C80E006FAF0E016F60 :102D4000000E026F000E036F4FC104F150C105F178 :102D500051C106F152C107F1D5EC22F012000784EF :102D6000BAC166F1BBC167F1BCC168F1BDC169F10F :102D70004BC14FF14CC150F14DC151F14EC152F117 :102D800057C159F158C15AF1079401016667D0EF54 :102D900016F06767D0EF16F06867D0EF16F0696736 :102DA00016D001014F67DCEF16F05067DCEF16F02C :102DB0005167DCEF16F052670AD00101000E006F78 :102DC000000E016F000E026F000E036F120011B8AB :102DD0000AD00101620E046F010E056F000E066F2E :102DE000000E076F09D00101A70E046F020E056FD8 :102DF000000E066F000E076F66C100F167C101F19A :102E000068C102F169C103F1C4EC22F003BF92EF83 :102E100017F00101000E046FA80E056F550E066F26 :102E2000020E076F66C100F167C101F168C102F1CE :102E300069C103F166C18AF167C18BF168C18CF188 :102E400069C18DF1C4EC22F003BF09D00101000E6D :102E50008A6FA80E8B6F550E8C6F020E8D6F010E50 :102E6000006F000E016F000E026F000E036F8AC12B :102E700004F18BC105F18CC106F18DC107F1F5ECB0 :102E800022F018C104F119C105F11AC106F11BC1E4 :102E900007F162EC23F02AC182F40401300E82278C :102EA0004FEC0BF02BC182F40401300E82274FEC63 :102EB0000BF02CC182F40401300E82274FEC0BF092 :102EC0002DC182F40401300E82274FEC0BF02EC18D :102ED00082F40401300E82274FEC0BF02FC182F4F4 :102EE0000401300E82274FEC0BF030C182F4040154 :102EF000300E82274FEC0BF031C182F40401300E0A :102F000082274FEC0BF032C182F40401300E82278D :102F10004FEC0BF033C182F40401300E82274FECEA :102F20000BF012004FC100F150C101F151C102F18B :102F300052C103F1010162EC23F025EC21F01200F3 :102F40000401730E826F4FEC0BF004012C0E826FA4 :102F50004FEC0BF0078462C166F163C167F164C195 :102F600068F165C169F14BC14FF14CC150F14DC1E0 :102F700051F14EC152F157C159F158C15AF107945C :102F8000C6EC17F059EC0BF00BEF1DF066C100F129 :102F900067C101F168C102F169C103F1010162EC8D :102FA00023F025EC21F00401630E826F4FEC0BF04F :102FB00004012C0E826F4FEC0BF04FC100F150C199 :102FC00001F151C102F152C103F1010162EC23F0A0 :102FD00025EC21F00401660E826F4FEC0BF004012A :102FE0002C0E826F4FEC0BF0D9EC23F059C100F19D :102FF0005AC101F1010162EC23F025EC21F004013A :10300000740E826F4FEC0BF0120010820401530E0D :10301000826F4FEC0BF004012C0E826F4FEC0BF023 :1030200083C32AF184C32BF185C32CF186C32DF110 :1030300087C32EF188C32FF189C330F18AC331F1E0 :103040008BC332F18CC333F1010127EC24F09EECE9 :1030500023F000C166F101C167F102C168F103C14B :1030600069F18EC32AF18FC32BF190C32CF191C368 :103070002DF192C32EF193C32FF194C330F195C378 :1030800031F196C332F197C333F1010127EC24F0FB :103090009EEC23F000C14FF101C150F102C151F18A :1030A00003C152F11AEC24F099C32FF19AC330F105 :1030B0009BC331F19CC332F19DC333F1010127EC75 :1030C00024F09EEC23F000C159F101C15AF1C6EC85 :1030D00017F004012C0E826F4FEC0BF080EF18F00C :1030E000118E1CA002D01CAE108C1BBE02D01BA4E3 :1030F000108E03018251520A02E10F8201D00F9219 :103100008251750A02E1108401D010948251550A4F :1031100002E1108601D010968351310A03E1138237 :10312000138402D01392139403018351660A01E0C1 :1031300056D00401660E826F4FEC0BF004012C0E8A :10314000826F4FEC0BF0C4EC15F062EC23F02AC157 :1031500082F40401300E82274FEC0BF02BC182F475 :103160000401300E82274FEC0BF02CC182F40401D5 :10317000300E82274FEC0BF02DC182F40401300E8B :1031800082274FEC0BF02EC182F40401300E82270F :103190004FEC0BF02FC182F40401300E82274FEC6C :1031A0000BF030C182F40401300E82274FEC0BF09B :1031B00031C182F40401300E82274FEC0BF032C192 :1031C00082F40401300E82274FEC0BF033C182F4FD :1031D0000401300E82274FEC0BF009EF1DF011A017 :1031E00003D011A401D01084078410B259EF19F054 :1031F00010A43DEF19F0BAC166F1BBC167F1BCC1C3 :1032000068F1BDC169F1BEC16AF1BFC16BF1C0C156 :103210006CF1C1C16DF1C2C16EF1C3C16FF1C4C126 :1032200070F1C5C171F1C6C172F1C7C173F1C8C1F6 :1032300074F1C9C175F1CAC176F1CBC177F1CCC1C6 :1032400078F1CDC179F1CEC17AF1CFC17BF1D0C196 :103250007CF1D1C17DF1D2C17EF1D3C17FF1D4C166 :1032600080F1D5C181F1D6C182F1D7C183F1D8C136 :1032700084F1D9C185F145EF19F062C166F163C1EE :1032800067F164C168F165C169F1BAC186F1BBC17A :1032900087F1BCC188F1BDC189F14BC14FF14CC16F :1032A00050F14DC151F14EC152F157C159F158C1C0 :1032B0005AF107940FA07BEF19F00101966768EFB0 :1032C00019F0976768EF19F0986768EF19F0996738 :1032D0006CEF19F07BEF19F0C7EC14F096C104F114 :1032E00097C105F198C106F199C107F1C4EC22F02C :1032F00003BFCFEF1CF0C7EC14F00101000E046F08 :10330000000E056F010E066F000E076FF5EC22F040 :1033100011A02AD011A228D062EC23F0296701D095 :1033200005D004012D0E826F4FEC0BF030C182F4FA :103330000401300E82274FEC0BF031C182F40401FE :10334000300E82274FEC0BF032C182F40401300EB4 :1033500082274FEC0BF033C182F40401300E822738 :103360004FEC0BF059EC0BF012A8C5D012981DC011 :103370001EF01E3A1E42070E1E1600011E50000AC5 :10338000D8B447EF1AF000011E50010AD8B4D3EFA9 :1033900019F000011E50020AD8B4D1EF19F079EFEC :1033A0001AF079EF1AF0D9EC23F02DC001F12EC0FC :1033B00000F1D89001330033D8900133003301017C :1033C000630E046F000E056F000E066F000E076F90 :1033D000F5EC22F0280E046F000E056F000E066F4C :1033E000000E076FC4EC22F000C130F0D9EC23F0DE :1033F0002BC001F1019F019D2CC000F10101A40E21 :10340000046F000E056F000E066F000E076FF5ECDF :1034100022F000C12FF000C104F101C105F102C189 :1034200006F103C107F1640E006F000E016F000E7C :10343000026F000E036FC4EC22F0050E046F000E45 :10344000056F000E066F000E076FF5EC22F000C14D :1034500004F101C105F102C106F103C107F1D9EC84 :1034600023F030C000F1C4EC22F000C131F031C0D3 :10347000E8FF050F305C03E78A8479EF1AF031C06A :10348000E8FF0A0F305C01E68A9479EF1AF000C178 :1034900024F101C125F102C126F103C127F1D9ECC4 :1034A00023F0DFEC23F01D501F0BE8CF00F10101EA :1034B000640E046F000E056F000E066F000E076F9E :1034C000D5EC22F024C104F125C105F126C106F195 :1034D00027C107F1C4EC22F003BF02D08A9401D0C7 :1034E0008A8424C100F125C101F126C102F127C15E :1034F00003F10BEF1DF000C124F101C125F102C160 :1035000026F103C127F110AE4DD0109E00C108F185 :1035100001C109F102C10AF103C10BF162EC23F010 :1035200030C1E2F131C1E3F132C1E4F133C1E5F17F :1035300008C100F109C101F10AC102F10BC103F197 :1035400001016C0E046F070E056F000E066F000E72 :10355000076FC4EC22F003BF04D00101550EE66FE3 :103560001CD008C100F109C101F10AC102F10BC16F :1035700003F10101A40E046F060E056F000E066F25 :10358000000E076FC4EC22F003BF04D001017F0ED0 :10359000E66F03D00101FF0EE66F1F8E11AECFEF75 :1035A0001CF0119E24C100F125C101F126C102F1D8 :1035B00027C103F111A005D011A203D00FB0CFEFA6 :1035C0001CF010A4EBEF1AF00401750E826F4FECA3 :1035D0000BF0F0EF1AF00401720E826F4FEC0BF05B :1035E00004012C0E826F4FEC0BF062EC23F0296784 :1035F000FFEF1AF00401200E826F02EF1BF00401AE :103600002D0E826F4FEC0BF030C182F40401300EAE :1036100082274FEC0BF031C182F40401300E822777 :103620004FEC0BF004012E0E826F4FEC0BF032C109 :1036300082F40401300E82274FEC0BF033C182F488 :103640000401300E82274FEC0BF004016D0E826FE7 :103650004FEC0BF004012C0E826F4FEC0BF04FC1BE :1036600000F150C101F151C102F152C103F1010158 :1036700062EC23F025EC21F00401480E826F4FEC40 :103680000BF004017A0E826F4FEC0BF004012C0E4C :10369000826F4FEC0BF066C100F167C101F168C1A8 :1036A00002F169C103F1010162EC23F025EC21F084 :1036B0000401630E826F4FEC0BF004012C0E826F3D :1036C0004FEC0BF066C100F167C101F168C102F176 :1036D00069C103F101010A0E046F000E056F000EAF :1036E000066F000E076FD5EC22F0000E046F120E6D :1036F000056F000E066F000E076FF5EC22F062EC0E :1037000023F02AC182F40401300E82274FEC0BF023 :103710002BC182F40401300E82274FEC0BF02CC138 :1037200082F40401300E82274FEC0BF02DC182F49D :103730000401300E82274FEC0BF02EC182F40401FD :10374000300E82274FEC0BF02FC182F40401300EB3 :1037500082274FEC0BF030C182F40401300E822737 :103760004FEC0BF004012E0E826F4FEC0BF031C1C9 :1037700082F40401300E82274FEC0BF032C182F448 :103780000401300E82274FEC0BF033C182F40401A8 :10379000300E82274FEC0BF00401730E826F4FEC5A :1037A0000BF004012C0E826F4FEC0BF0D9EC23F0E0 :1037B00059C100F15AC101F135EC1EF000EC13F0D3 :1037C00014BEF9EF1BF08BBA02D0E89001D0E8806C :1037D0008BB802D0E89201D0E882E82A030BE8B067 :1037E00002D08B9A01D08B8AE8B202D08B9801D09C :1037F0008B8813A24BEF1CF004012C0E826F4FEC50 :103800000BF086C166F187C167F188C168F189C193 :1038100069F1C7EC14F00101000E046F000E056F92 :10382000010E066F000E076FF5EC22F062EC23F03C :10383000296720EF1CF00401200E826F23EF1CF09B :1038400004012D0E826F4FEC0BF030C182F40401A5 :10385000300E82274FEC0BF031C182F40401300EA0 :1038600082274FEC0BF004012E0E826F4FEC0BF011 :1038700032C182F40401300E82274FEC0BF033C1C9 :1038800082F40401300E82274FEC0BF004016D0E20 :10389000826F4FEC0BF003018351460A01E007D021 :1038A00004012C0E826F4FEC0BF0AFEC16F013A45A :1038B0007EEF1CF004012C0E826F4FEC0BF013AC6A :1038C0006CEF1CF00401500E826F4FEC0BF0139C58 :1038D0001398139A7EEF1CF013AE79EF1CF00401DD :1038E000460E826F4FEC0BF0139E1398139A7EEFE7 :1038F0001CF00401530E826F4FEC0BF037B095EFC4 :103900001CF004012C0E826F4FEC0BF08BB090EF8B :103910001CF00401440E826F4FEC0BF095EF1CF08D :103920000401530E826F4FEC0BF00FB29BEF1CF0B3 :103930000FA0CDEF1CF004012C0E826F4FEC0BF0AA :10394000200EF86EF76AF66A04010900F5CF82F4DA :103950004FEC0BF00900F5CF82F44FEC0BF00900AF :10396000F5CF82F44FEC0BF00900F5CF82F44FEC69 :103970000BF00900F5CF82F44FEC0BF00900F5CF06 :1039800082F44FEC0BF00900F5CF82F44FEC0BF012 :103990000900F5CF82F44FEC0BF059EC0BF00F90CF :1039A000109E12980BEF1DF00401630E826F4FEC16 :1039B0000BF004012C0E826F4FEC0BF011EC1DF09C :1039C00004012C0E826F4FEC0BF084EC1DF004010F :1039D0002C0E826F4FEC0BF000EC1EF004012C0E4D :1039E000826F4FEC0BF00101F80E006FCD0E016FEE :1039F000660E026F030E036F26EC1DF004012C0E01 :103A0000826F4FEC0BF016EC1EF059EC0BF00BEF45 :103A10001DF059EC0BF00301C26B079010921AEFE6 :103A200020F0D8900E0E2FEC09F0E8CF00F10F0E29 :103A30002FEC09F0E8CF01F1100E2FEC09F0E8CFE0 :103A400002F1110E2FEC09F0E8CF03F10101000E95 :103A5000046F000E056F010E066F000E076FF5EC88 :103A600022F062EC23F02AC182F40401300E822796 :103A70004FEC0BF02BC182F40401300E82274FEC87 :103A80000BF02CC182F40401300E82274FEC0BF0B6 :103A90002DC182F40401300E82274FEC0BF02EC1B1 :103AA00082F40401300E82274FEC0BF02FC182F418 :103AB0000401300E82274FEC0BF030C182F4040178 :103AC000300E82274FEC0BF031C182F40401300E2E :103AD00082274FEC0BF004012E0E826F4FEC0BF09F :103AE00032C182F40401300E82274FEC0BF033C157 :103AF00082F40401300E82274FEC0BF004016D0EAE :103B0000826F4FEC0BF01200120E2FEC09F0E8CF91 :103B100000F1130E2FEC09F0E8CF01F1140E2FEC99 :103B200009F0E8CF02F1150E2FEC09F0E8CF03F110 :103B300001010A0E046F000E056F000E066F000EE5 :103B4000076FD5EC22F0000E046F120E056F000E09 :103B5000066F000E076FF5EC22F062EC23F02AC12D :103B600082F40401300E82274FEC0BF02BC182F45B :103B70000401300E82274FEC0BF02CC182F40401BB :103B8000300E82274FEC0BF02DC182F40401300E71 :103B900082274FEC0BF02EC182F40401300E8227F5 :103BA0004FEC0BF02FC182F40401300E82274FEC52 :103BB0000BF030C182F40401300E82274FEC0BF081 :103BC00004012E0E826F4FEC0BF031C182F4040120 :103BD000300E82274FEC0BF032C182F40401300E1C :103BE00082274FEC0BF033C182F40401300E8227A0 :103BF0004FEC0BF00401730E826F4FEC0BF01200D0 :103C00000A0E2FEC09F0E8CF00F10B0E2FEC09F0B3 :103C1000E8CF01F10C0E2FEC09F0E8CF02F10D0E08 :103C20002FEC09F0E8CF03F135EF1EF0060E2FEC74 :103C300009F0E8CF00F1070E2FEC09F0E8CF01F111 :103C4000080E2FEC09F0E8CF02F1090E2FEC09F075 :103C5000E8CF03F135EF1EF00101D9EC23F0078422 :103C600057C100F158C101F107940101E80E046F3A :103C7000800E056F000E066F000E076FD5EC22F068 :103C8000000E046F040E056F000E066F000E076F26 :103C9000F5EC22F0880E046F130E056F000E066F10 :103CA000000E076FC4EC22F00A0E046F000E056FC1 :103CB000000E066F000E076FF5EC22F062EC23F0A9 :103CC0000101296769EF1EF00401200E826F6CEF7D :103CD0001EF004012D0E826F4FEC0BF030C182F408 :103CE0000401300E82274FEC0BF031C182F4040145 :103CF000300E82274FEC0BF032C182F40401300EFB :103D000082274FEC0BF004012E0E826F4FEC0BF06C :103D100033C182F40401300E82274FEC0BF0040112 :103D2000430E826F4FEC0BF0120087C32AF188C359 :103D30002BF189C32CF18AC32DF18BC32EF18CC3D7 :103D40002FF18DC330F18EC331F190C332F191C3A5 :103D500033F10101296B27EC24F09EEC23F00101E3 :103D6000000E046F000E056F010E066F000E076F48 :103D7000D5EC22F00E0E0C6E00C10BF018EC09F021 :103D80000F0E0C6E01C10BF018EC09F0100E0C6E4A :103D900002C10BF018EC09F0110E0C6E03C10BF010 :103DA00018EC09F004017A0E826F4FEC0BF004015D :103DB0002C0E826F4FEC0BF00401350E826F4FEC2E :103DC0000BF004012C0E826F4FEC0BF011EC1DF088 :103DD0009DEF14F087C32AF188C32BF189C32CF11E :103DE0008AC32DF18BC32EF18CC32FF18DC330F11B :103DF0008EC331F190C332F191C333F10101296BCC :103E000027EC24F09EEC23F0880E046F130E056F50 :103E1000000E066F000E076FC9EC22F0000E046F53 :103E2000040E056F000E066F000E076FD5EC22F032 :103E30000101E80E046F800E056F000E066F000E84 :103E4000076FF5EC22F00A0E0C6E00C10BF018ECB7 :103E500009F00B0E0C6E01C10BF018EC09F00C0E02 :103E60000C6E02C10BF018EC09F00D0E0C6E03C1C4 :103E70000BF018EC09F004017A0E826F4FEC0BF096 :103E800004012C0E826F4FEC0BF00401360E826F92 :103E90004FEC0BF004012C0E826F4FEC0BF000EC9A :103EA0001EF09DEF14F087C32AF188C32BF189C35C :103EB0002CF18AC32DF18BC32EF18CC32FF18DC34E :103EC00030F18FC331F190C332F191C333F101016D :103ED00027EC24F09EEC23F0000E046F120E056F09 :103EE000000E066F000E076FD5EC22F001010A0EDE :103EF000046F000E056F000E066F000E076FF5ECE5 :103F000022F0120E0C6E00C10BF018EC09F0130E2B :103F10000C6E01C10BF018EC09F0140E0C6E02C10E :103F20000BF018EC09F0150E0C6E03C10BF018EC39 :103F300009F004017A0E826F4FEC0BF004012C0E95 :103F4000826F4FEC0BF00401370E826F4FEC0BF0D9 :103F500004012C0E826F4FEC0BF084EC1DF09DEFF2 :103F600014F087C32AF188C32BF189C32CF18AC3CB :103F70002DF18BC32EF18CC32FF18DC330F18EC385 :103F800031F190C332F191C333F10101296B27EC78 :103F900024F09EEC23F0880E046F130E056F000EC4 :103FA000066F000E076FC9EC22F0000E046F040EBE :103FB000056F000E066F000E076FD5EC22F00101B1 :103FC000E80E046F800E056F000E066F000E076F7F :103FD000F5EC22F0060E0C6E00C10BF018EC09F0A7 :103FE000070E0C6E01C10BF018EC09F0080E0C6EF8 :103FF00002C10BF018EC09F0090E0C6E03C10BF0B6 :1040000018EC09F004017A0E826F4FEC0BF00401FA :104010002C0E826F4FEC0BF00401380E826F4FECC8 :104020000BF004012C0E826F4FEC0BF016EC1EF01F :104030009DEF14F007A88DEF20F00101800E006FB6 :104040001A0E016F060E026F000E036F4BC104F1D2 :104050004CC105F14DC106F14EC107F1C4EC22F08F :1040600003BFD3EF20F01FEC21F04BC100F14CC196 :1040700001F14DC102F14EC103F10782D1EC21F0F3 :1040800018C104F119C105F11AC106F11BC107F1EC :10409000F80E006FCD0E016F660E026F030E036FF8 :1040A000C4EC22F00E0E0C6E00C10BF018EC09F0FF :1040B0000F0E0C6E01C10BF018EC09F0100E0C6E17 :1040C00002C10BF018EC09F0110E0C6E03C10BF0DD :1040D00018EC09F007840101D9EC23F057C100F175 :1040E00058C101F107940A0E0C6E00C10BF018ECD8 :1040F00009F00B0E0C6E01C10BF018EC09F00C0E60 :104100000C6E02C10BF018EC09F00D0E0C6E03C121 :104110000BF018EC09F0D3EF20F007AAD3EF20F052 :1041200007840101D9EC23F057C100F158C101F116 :104130000794060E0C6E00C10BF018EC09F0070E88 :104140000C6E01C10BF018EC09F0080E0C6E02C1E8 :104150000BF018EC09F0090E0C6E03C10BF018EC13 :1041600009F0078462C100F163C101F164C102F189 :1041700065C103F10794120E0C6E00C10BF018EC30 :1041800009F0130E0C6E01C10BF018EC09F0140EBF :104190000C6E02C10BF018EC09F0150E0C6E03C189 :1041A0000BF018EC09F00798079A04018051811967 :1041B0007F0B0DE09EA8FED714EE00F081517F0B1F :1041C000E126E750812B0F01AD6ED5EF20F09CEF7B :1041D0000AF018C100F119C101F11AC102F11BC1A5 :1041E00003F1000E046F000E056F010E066F000E46 :1041F000076FF5EC22F029A114EF21F02051D8B47B :1042000014EF21F018C100F119C101F11AC102F136 :104210001BC103F1000E046F000E056F0A0E066F3E :10422000000E076FF5EC22F012000101045100139B :104230000551011306510213075103131200010126 :10424000186B196B1A6B1B6B12002AC182F40401E4 :10425000300E82274FEC0BF02BC182F40401300E9C :1042600082274FEC0BF02CC182F40401300E822720 :104270004FEC0BF02DC182F40401300E82274FEC7D :104280000BF02EC182F40401300E82274FEC0BF0AC :104290002FC182F40401300E82274FEC0BF030C1A5 :1042A00082F40401300E82274FEC0BF031C182F40E :1042B0000401300E82274FEC0BF032C182F404016E :1042C000300E82274FEC0BF033C182F40401300E24 :1042D00082274FEC0BF012002FC182F40401300E44 :1042E00082274FEC0BF030C182F40401300E82279C :1042F0004FEC0BF031C182F40401300E82274FECF9 :104300000BF032C182F40401300E82274FEC0BF027 :1043100033C182F40401300E82274FEC0BF01200FF :10432000060E216E060E226E060E236E212E96EFCD :1043300021F0222E96EF21F0232E96EF21F08B8490 :10434000020E216E020E226E020E236E212EA6EFA9 :1043500021F0222EA6EF21F0232EA6EF21F08B9440 :104360001200FF0E226E22C023F0030E216E8B84FA :10437000212EB7EF21F0030E216E232EB7EF21F08F :104380008B9422C023F0030E216E212EC5EF21F065 :10439000030E216E233EC5EF21F0222EB3EF21F054 :1043A00012000101005305E1015303E1025301E151 :1043B000002B94EC22F0D9EC23F03951006F3A51E4 :1043C000016F420E046F4B0E056F000E066F000E5C :1043D000076FD5EC22F000C104F101C105F102C163 :1043E00006F103C107F118C100F119C101F11AC1A9 :1043F00002F11BC103F107B202EF22F0C9EC22F077 :1044000004EF22F0C4EC22F000C118F101C119F14F :1044100002C11AF103C11BF11200D9EC23F059C1FA :1044200000F15AC101F1060E2FEC09F0E8CF04F1BA :10443000070E2FEC09F0E8CF05F1080E2FEC09F07C :10444000E8CF06F1090E2FEC09F0E8CF07F1C4EC34 :1044500022F000C124F101C125F102C126F103C1FE :1044600027F1290E046F000E056F000E066F000E77 :10447000076FD5EC22F0EE0E046F430E056F000EB1 :10448000066F000E076FC9EC22F024C104F125C1AC :1044900005F126C106F127C107F1D5EC22F000C1D4 :1044A0001CF101C11DF102C11EF103C11FF1120E69 :1044B0002FEC09F0E8CF04F1130E2FEC09F0E8CF50 :1044C00005F1140E2FEC09F0E8CF06F1150E2FECD4 :1044D00009F0E8CF07F10D0E006F000E016F000E1E :1044E000026F000E036FD5EC22F0180E046F000E61 :1044F000056F000E066F000E076FF5EC22F01CC171 :1045000004F11DC105F11EC106F11FC107F1C9EC7F :1045100022F06A0E046F2A0E056F000E066F000E61 :10452000076FC4EC22F01200BF0EFA6E200E3A6F35 :10453000396BD8900037013702370337D8B0A5EF71 :1045400022F03A2F9AEF22F039073A070353D8B4F2 :1045500012000331070B80093F6F03390F0B010F66 :10456000396F80EC5FF0406F390580EC5FF0405DA3 :10457000405F396B3F33D8B0392739333FA9BAEFA1 :1045800022F04051392712000101FEEC23F0D8B08F :104590001200010103510719346FC1EC23F0D890C8 :1045A0000751031934AF800F12000101346BE5ECA1 :1045B00023F0D8A0FBEC23F0D8B01200D0EC23F00D :1045C000D9EC23F01F0E366F11EC24F00B35D8B068 :1045D000C1EC23F0D8A00335D8B01200362FE4EF99 :1045E00022F034B1E8EC23F012000101346B0451E5 :1045F0000511061107110008D8A0E5EC23F0D8A09A :10460000FBEC23F0D8B01200086B096B0A6B0B6B44 :1046100011EC24F01F0E366F11EC24F007510B5DE6 :10462000D8A41FEF23F006510A5DD8A41FEF23F092 :104630000551095DD8A41FEF23F00451085DD8A0EF :1046400032EF23F00451085F0551D8A0053D095F02 :104650000651D8A0063D0A5F0751D8A0073D0B5F61 :10466000D8900081362F0CEF23F034B1E8EC23F022 :10467000346BE5EC23F0D89015EC24F007510B5D7A :10468000D8A44FEF23F006510A5DD8A44FEF23F0D2 :104690000551095DD8A44FEF23F00451085DD8A05F :1046A0005EEF23F0003F5EEF23F0013F5EEF23F06B :1046B000023F5EEF23F0032BD8B4120034B1E8ECD4 :1046C00023F012000101346BE5EC23F0D8B01200A6 :1046D0001AEC24F0200E366F00370137023703370B :1046E00011EE33F00A0E376FE7360A0EE75CD8B0EA :1046F000E76EE552372F74EF23F0362F6CEF23F07F :1047000034B12981D89012001AEC24F0200E366FB3 :10471000003701370237033711EE33F00A0E376FD7 :10472000E7360A0EE75CD8B0E76EE552372F90EF18 :1047300023F0362F88EF23F0D890120001010A0EE3 :10474000346F200E366F11EE29F03451376F0A0E98 :10475000D890E652D8B0E726E732372FA9EF23F0FA :104760000333023301330033362FA3EF23F0E75036 :10477000FF0FD8A00335D8B0120029B1E8EC23F020 :104780001200045100270551D8B0053D01270651FC :10479000D8B0063D02270751D8B0073D03271200C5 :1047A0000051086F0151096F02510A6F03510B6FDD :1047B00012000101006B016B026B036B120001011F :1047C000046B056B066B076B12000335D8A0120053 :1047D0000351800B001F011F021F031F003FF8EF52 :1047E00023F0013FF8EF23F0023FF8EF23F0032B13 :1047F000342B032512000735D8A012000751800B77 :10480000041F051F061F071F043F0EEF24F0053F7E :104810000EEF24F0063F0EEF24F0072B342B072574 :1048200012000037013702370337083709370A37D4 :104830000B3712000101296B2A6B2B6B2C6B2D6B34 :104840002E6B2F6B306B316B326B336B12000101AF :104850002A510F0B2A6F2B510F0B2B6F2C510F0B63 :104860002C6F2D510F0B2D6F2E510F0B2E6F2F51C3 :104870000F0B2F6F30510F0B306F31510F0B316F0A :1048800032510F0B326F33510F0B336F120000C1D7 :1048900024F101C125F102C126F103C127F104C1B0 :1048A00000F105C101F106C102F107C103F124C104 :1048B00004F125C105F126C106F127C107F1120057 :10BF0000E844F926000C160C2B0C3F0C520C640C68 :10BF1000760C860C960CA50CB30CC10CCF0CDC0C6B :06BF2000E80CF40C000C1B :00000001FF ./firmware/SQM-LU-DLS-4-13-76.hex0000644000175000017500000022520613773441232015706 0ustar anthonyanthony:020000040000FA :0408000098EF0BF072 :1008100003B275EF05F0F2B493EF05F09EB09BEFD5 :1008200005F09EB2A3EF05F0F2A81AEF04F0F2B2C1 :1008300023EF04F0F2B01FEF04F047EF0BF0F29655 :10084000F29047EF0BF0CD90F2929EA02DEF04F0C6 :100850000101533F2DEF04F0542BB2C1B6F1B3C1E7 :10086000B7F1B4C1B8F1B5C1B9F1AEC1B2F1AFC120 :10087000B3F1B0C1B4F1B1C1B5F1AAC1AEF1ABC130 :10088000AFF1ACC1B0F1ADC1B1F1A6C1AAF1A7C140 :10089000ABF1A8C1ACF1A9C1ADF1A2C1A6F1A3C150 :1008A000A7F1A4C1A8F1A5C1A9F19EC1A2F19FC160 :1008B000A3F1A0C1A4F1A1C1A5F19AC19EF19BC170 :1008C0009FF19CC1A0F19DC1A1F1CECF9AF1CFCFF4 :1008D0009BF153C19CF154C19DF1CF6ACE6A0101D5 :1008E000536B546B9E90CD800FBC0F8E0FBA7CEF74 :1008F00004F00F8A47EF0BF013880F8C0FBEB9EF8F :1009000004F09AC19EF19BC19FF19CC1A0F19DC1D1 :10091000A1F19EC1A2F19FC1A3F1A0C1A4F1A1C107 :10092000A5F1A2C1A6F1A3C1A7F1A4C1A8F1A5C1D7 :10093000A9F1A6C1AAF1A7C1ABF1A8C1ACF1A9C1A7 :10094000ADF1AAC1AEF1ABC1AFF1ACC1B0F1ADC177 :10095000B1F1AEC1B2F1AFC1B3F1B0C1B4F1B1C147 :10096000B5F1B2C1B6F1B3C1B7F1B4C1B8F1B5C117 :10097000B9F101015E6B5F6B606B616B9A515E2731 :100980009B515F239C5160239D5161239E515E27A3 :100990009F515F23A0516023A1516123A2515E2783 :1009A000A3515F23A4516023A5516123A6515E2763 :1009B000A7515F23A8516023A9516123AA515E2743 :1009C000AB515F23AC516023AD516123AE515E2723 :1009D000AF515F23B0516023B1516123B2515E2703 :1009E000B3515F23B4516023B5516123B6515E27E3 :1009F000B7515F23B8516023B9516123D8900101E9 :100A0000613360335F335E33D8900101613360330B :100A10005F335E33D8900101613360335F335E33FF :100A200000C10CF101C10DF102C10EF103C10FF1C2 :100A300004C110F105C111F106C112F107C113F192 :100A400008C114F109C115F10AC116F10BC117F162 :100A500034C135F111B838EF05F00101620E046FB1 :100A6000010E056F000E066F000E076F41EF05F0D7 :100A70000101A70E046F020E056F000E066F000E37 :100A8000076F5EC100F15FC101F160C102F161C198 :100A900003F1FDEC30F003BF04D01CBE02D01CA05B :100AA000108C11A059EF05F010BA59EF05F00F8026 :100AB000108A0CC100F10DC101F10EC102F10FC18C :100AC00003F110C104F111C105F112C106F113C106 :100AD00007F114C108F115C109F116C10AF117C1D6 :100AE0000BF135C134F147EF0BF00392ABB2AB9889 :100AF000AB88030103EE00F080517F0BE92604C0B0 :100B0000EFFF802B8151805D700BD8A48B82000099 :100B10008051815D700BD8A48B9281518019D8B41B :100B2000079047EF0BF0F2940101453F47EF0BF0C0 :100B3000462B47EF0BF09E900101533F47EF0BF020 :100B4000542B47EF0BF09E9211B843EF08F00400CE :100B500066A1ABEF05F08BB4B5EF05F010ACB5EFC7 :100B600005F08B84109CB6EF05F08B94077C07ACE6 :100B7000D1EF05F0C274C2B4CBEF05F0C3CFB7F527 :100B8000C4CFB8F50501D890B833B733D890B8338F :100B9000B733D2EF05F0C3CF55F1C4CF56F1D2EF42 :100BA00005F0C28207B444EF06F047C14BF148C1DB :100BB0004CF149C14DF14AC14EF15EC162F15FC1D4 :100BC00063F160C164F161C165F113A8EAEF05F05A :100BD000138C13989AC1BAF19BC1BBF19CC1BCF1B3 :100BE0009DC1BDF19EC1BEF19FC1BFF1A0C1C0F1C9 :100BF000A1C1C1F1A2C1C2F1A3C1C3F1A4C1C4F199 :100C0000A5C1C5F1A6C1C6F1A7C1C7F1A8C1C8F168 :100C1000A9C1C9F1AAC1CAF1ABC1CBF1ACC1CCF138 :100C2000ADC1CDF1AEC1CEF1AFC1CFF1B0C1D0F108 :100C3000B1C1D1F1B2C1D2F1B3C1D3F1B4C1D4F1D8 :100C4000B5C1D5F1B6C1D6F1B7C1D7F1B8C1D8F1A8 :100C5000B9C1D9F1B7C5B9F5B8C5BAF5B9C5BBF5CC :100C6000BAC5BCF5010155515B2756515C23E86AB2 :100C70005D230E2E44EF06F05CC157F15DC158F1C3 :100C80005B6B5C6B5D6B078E0201002F47EF0BF017 :100C90003C0E006F1D50E00BE00AE86612881BBE98 :100CA00002D01BB4108E00C10CF101C10DF102C1C4 :100CB0000EF103C10FF104C110F105C111F106C11C :100CC00012F107C113F108C114F109C115F10AC1EC :100CD00016F10BC117F134C135F181AAACEF06F062 :100CE00015A4F7EF06F005012F51000AD8B43AEF2A :100CF00007F005012F51010AD8B4B6EF06F005013F :100D00002F51020AD8B4F7EF06F005012F51030A5C :100D1000D8B4F7EF06F005012F51040AD8B4F7EF65 :100D200006F005012F51050AD8B4F7EF06F00501CA :100D30002F51060AD8B4F7EF06F005012F51070A24 :100D4000D8B4F7EF06F005012F51320AD8B4B4EF4A :100D500006F02F6B3AEF07F000011650030AD8B4E3 :100D6000F7EF06F03AEF07F03AEF07F005015767A3 :100D7000C1EF06F05867C1EF06F05967C1EF06F002 :100D80005A67C5EF06F03AEF07F05BC500F15CC5A6 :100D900001F15DC502F15EC503F10101010E046FB1 :100DA000000E056F000E066F000E076FFDEC30F0B1 :100DB00000C15BF501C15CF502C15DF503C15EF5E3 :100DC00001010067EBEF06F00167EBEF06F0026749 :100DD000EBEF06F003673AEF07F057C55BF558C530 :100DE0005CF559C55DF55AC55EF524EF07F00FBEF9 :100DF0000CEF07F010A011EF07F00101476708EFB3 :100E000007F0486708EF07F0496708EF07F04A67FF :100E10000CEF07F011EF07F007AE11EF07F024EF2A :100E200007F00501312F3AEF07F03C0E316F302FFC :100E30003AEF07F00101000E626FE00E636FA50E3E :100E4000646F010E656F138800011650000AD8B454 :100E500032EF07F000011650030AD8B437EF07F05D :100E60003AEF07F00001010E166E3AEF07F00001AD :100E7000040E166E0501666B37B740EF07F066810A :100E80000CC100F10DC101F10EC102F10FC103F15E :100E900010C104F111C105F112C106F113C107F12E :100EA00014C108F115C109F116C10AF117C10BF1FE :100EB00035C134F100C10CF101C10DF102C10EF1D7 :100EC00003C10FF104C110F105C111F106C112F106 :100ED00007C113F108C114F109C115F10AC116F1D6 :100EE0000BC117F134C135F101018E677FEF07F0B7 :100EF0008F677FEF07F090677FEF07F0916783EFD1 :100F000007F0B4EF07F092C100F193C101F194C171 :100F100002F195C103F10101010E046F000E056F8E :100F2000000E066F000E076FFDEC30F000C192F16D :100F300001C193F102C194F103C195F10101006770 :100F4000A9EF07F00167A9EF07F00267A9EF07F023 :100F50000367B4EF07F08EC192F18FC193F190C196 :100F600094F191C195F10F80D57ED5BE6ED0D6CFCC :100F700047F1D7CF48F145C149F1E86AE8CF4AF1D6 :100F8000138A1CBE02D01CA0108C109047C100F127 :100F900048C101F149C102F14AC103F101010A0E40 :100FA000046F000E056F000E066F000E076FFDEC5C :100FB00030F003AF1080010154A7EBEF07F00F9A58 :100FC0000F9C0F9E0101000E5E6F600E5F6F3D0E65 :100FD000606F080E616F010147BFFBEF07F04867C4 :100FE000FBEF07F04967FBEF07F04A67FBEF07F0FD :100FF000F28820EF08F0F2985E6B5F6B606B616BBC :101000009A6B9B6B9C6B9D6B9E6B9F6BA06BA16B9C :10101000A26BA36BA46BA56BA66BA76BA86BA96B4C :10102000AA6BAB6BAC6BAD6BAE6BAF6BB06BB16BFC :10103000B26BB36BB46BB56BB66BB76BB86BB96BAC :10104000D76AD66A0101456B466B0CC100F10DC130 :1010500001F10EC102F10FC103F110C104F111C180 :1010600005F112C106F113C107F114C108F115C150 :1010700009F116C10AF117C10BF135C134F147EF7F :101080000BF047EF0BF00201002FABEF0AF0D59EFB :10109000D6CF47F1D7CF48F145C149F1E86AE8CF4B :1010A0004AF1138AD76AD66A0101456B466BD58E21 :1010B0001D50E00BE00AE86612881BBE02D01BB48C :1010C000108E1AAE1F8C00C10CF101C10DF102C1CE :1010D0000EF103C10FF104C110F105C111F106C1F8 :1010E00012F107C113F108C114F109C115F10AC1C8 :1010F00016F10BC117F134C135F10FA0109A11B8D8 :101100008DEF08F00101620E046F010E056F000EF5 :10111000066F000E076F96EF08F00101A70E046F2F :10112000020E056F000E066F000E076F47C100F13B :1011300048C101F149C102F14AC103F1FDEC30F0AF :1011400003BFA9EF08F01CBE02D01CA0108C11B088 :101150000F800CC100F10DC101F10EC102F10FC1F0 :1011600003F110C104F111C105F112C106F113C15F :1011700007F114C108F115C109F116C10AF117C12F :101180000BF135C134F102013C0E006F00C10CF1CE :1011900001C10DF102C10EF103C10FF104C110F143 :1011A00005C111F106C112F107C113F108C114F113 :1011B00009C115F10AC116F10BC117F134C135F19E :1011C00081BAE6EF08F015B225EF09F015A025EF7A :1011D00009F015A470EF09F005012F51000AD8B4E9 :1011E000B3EF09F005012F51010AD8B42FEF09F030 :1011F00005012F51020AD8B470EF09F005012F51F3 :10120000030AD8B470EF09F005012F51040AD8B4CD :1012100070EF09F005012F51050AD8B470EF09F0FD :1012200005012F51060AD8B470EF09F005012F51BE :10123000070AD8B470EF09F005012F51320AD8B46B :101240002DEF09F02F6BB3EF09F000011650030AE0 :10125000D8B470EF09F0B3EF09F0B3EF09F005016E :1012600057673AEF09F058673AEF09F059673AEFD4 :1012700009F05A673EEF09F0B3EF09F05BC500F1E2 :101280005CC501F15DC502F15EC503F10101010E0E :10129000046F000E056F000E066F000E076FFDEC69 :1012A00030F000C15BF501C15CF502C15DF503C121 :1012B0005EF50101006764EF09F0016764EF09F072 :1012C000026764EF09F00367B3EF09F057C55BF5F8 :1012D00058C55CF559C55DF55AC55EF59DEF09F039 :1012E0000FBE85EF09F010A08AEF09F001014767F2 :1012F00081EF09F0486781EF09F0496781EF09F054 :101300004A6785EF09F08AEF09F007AE8AEF09F026 :101310009DEF09F00501312FB3EF09F03C0E316F5D :10132000302FB3EF09F00101000E626FE00E636F22 :10133000A50E646F010E656F138800011650000A38 :10134000D8B4ABEF09F000011650030AD8B4B0EFDF :1013500009F0B3EF09F00001010E166EB3EF09F0CA :101360000001040E166E0501666B37B7B9EF09F080 :1013700066810CC100F10DC101F10EC102F10FC176 :1013800003F110C104F111C105F112C106F113C13D :1013900007F114C108F115C109F116C10AF117C10D :1013A0000BF135C134F100C10CF101C10DF102C1E5 :1013B0000EF103C10FF104C110F105C111F106C115 :1013C00012F107C113F108C114F109C115F10AC1E5 :1013D00016F10BC117F134C135F101018E67F8EF39 :1013E00009F08F67F8EF09F09067F8EF09F091675F :1013F000FCEF09F02DEF0AF092C100F193C101F169 :1014000094C102F195C103F10101010E046F000EB8 :10141000056F000E066F000E076FFDEC30F000C187 :1014200092F101C193F102C194F103C195F101015F :10143000006722EF0AF0016722EF0AF0026722EF4D :101440000AF003672DEF0AF08EC192F18FC193F17C :1014500090C194F191C195F10F80109047C100F1B6 :1014600048C101F149C102F14AC103F101010A0E6B :10147000046F000E056F000E066F000E076FFDEC87 :1014800030F003AF1080010154A753EF0AF00F9A18 :101490000F9C0F9E0101000E5E6F600E5F6F3D0E90 :1014A000606F080E616F47C100F148C101F149C189 :1014B00002F14AC103F10101140E046F050E056F1C :1014C000000E066F000E076FFDEC30F003AF6CEFFF :1014D0000AF0F28891EF0AF0F2985E6B5F6B606B36 :1014E000616B9A6B9B6B9C6B9D6B9E6B9F6BA06BF8 :1014F000A16BA26BA36BA46BA56BA66BA76BA86B70 :10150000A96BAA6BAB6BAC6BAD6BAE6BAF6BB06B1F :10151000B16BB26BB36BB46BB56BB66BB76BB86BCF :10152000B96B0CC100F10DC101F10EC102F10FC187 :1015300003F110C104F111C105F112C106F113C18B :1015400007F114C108F115C109F116C10AF117C15B :101550000BF135C134F104008BB4B6EF0AF010ACD6 :10156000B6EF0AF08B84109CB7EF0AF08B94077CDF :1015700007ACD2EF0AF0C274C2B4CCEF0AF0C3CF0A :10158000B7F5C4CFB8F50501D890B833B733D890C4 :10159000B833B733D3EF0AF0C3CF55F1C4CF56F108 :1015A000D3EF0AF0C28207B445EF0BF047C14BF10D :1015B00048C14CF149C14DF14AC14EF15EC162F1E1 :1015C0005FC163F160C164F161C165F113A8EBEF24 :1015D0000AF0138C13989AC1BAF19BC1BBF19CC15C :1015E000BCF19DC1BDF19EC1BEF19FC1BFF1A0C1C3 :1015F000C0F1A1C1C1F1A2C1C2F1A3C1C3F1A4C193 :10160000C4F1A5C1C5F1A6C1C6F1A7C1C7F1A8C162 :10161000C8F1A9C1C9F1AAC1CAF1ABC1CBF1ACC132 :10162000CCF1ADC1CDF1AEC1CEF1AFC1CFF1B0C102 :10163000D0F1B1C1D1F1B2C1D2F1B3C1D3F1B4C1D2 :10164000D4F1B5C1D5F1B6C1D6F1B7C1D7F1B8C1A2 :10165000D8F1B9C1D9F1B7C5B9F5B8C5BAF5B9C5A9 :10166000BBF5BAC5BCF5010155515B2756515C234A :10167000E86A5D230E2E45EF0BF05CC157F15DC1AA :1016800058F15B6B5C6B5D6B078E47EF0BF002C034 :10169000E0FF005001C0D8FF1000A6B24DEF0BF0E4 :1016A0000CC0A9FF0BC0A8FFA69EA69CA684F29E14 :1016B000550EA76EAA0EA76EA682F28EA694A6B2AB :1016C0005FEF0BF00C2A1200A96EA69EA69CA680C6 :1016D000A8500C2A120004012C0E826F96EC0EF01A :1016E00012EC32F00C5064EC0BF0E8CF00F10C502F :1016F00064EC0BF0E8CF01F101AF84EF0BF00101D6 :10170000FF0E026FFF0E036F9BEC31F0296790EF25 :101710000BF00401200E826F96EC0EF095EF0BF0AB :1017200004012D0E826F96EC0EF0A5EC2FF0120046 :1017300015941596076A0F6A106A116A126A136A7D :10174000166A0F010D0EC16E860EC06E030EC26EBC :101750000F01680E896E130E926E080E8A6EF30EDC :10176000936E8B6A900E946EC80E64EC0BF0E8CF0B :10177000E8FF1098E8A0108810A805D00E0E256E7E :101780008E0E266E04D00F0E256E8F0E266EAAECDE :1017900032F0F5EC33F0F18EF19EFC0E64EC0BF0C0 :1017A000E8CF0BF00BA011800BA211820BA41184C7 :1017B0000BA81188C90E64EC0BF0E8CF1AF0CA0E22 :1017C00064EC0BF0E8CF1BF0CB0E64EC0BF0E8CF31 :1017D0001CF0CC0E64EC0BF0E8CF1DF0FB0E64ECBB :1017E0000BF0E8CF37F0CE0E64EC0BF0E8CF14F03E :1017F000CD0E64EC0BF0E8CF36F01F6A206A0E6A5B :1018000001015B6B5C6B5D6B576B586BF29A01016E :10181000476B486B496B4A6B4B6B4C6B4D6B4E6B1C :101820004F6B506B516B526B456B466BD76AD66AE8 :101830000F01280ED56EF28A9D90B00ECD6E01017B :101840005E6B5F6B606B616B626B636B646B656B34 :10185000666B676B686B696B536B546BCF6ACE6A50 :101860000F9A0F9C0F9E9D80760ECA6E9D8202017C :101870003C0E006FCC6A160E64EC0BF0E8CF00F162 :10188000170E64EC0BF0E8CF01F1180E64EC0BF0CE :10189000E8CF02F1190E64EC0BF0E8CF03F101017F :1018A00003AF6DEF0CF012EC32F0160E0C6E00C1AF :1018B0000BF04DEC0BF0170E0C6E01C10BF04DEC64 :1018C0000BF0180E0C6E02C10BF04DEC0BF0190E64 :1018D0000C6E03C10BF04DEC0BF000C18EF101C199 :1018E0008FF102C190F103C191F100C192F101C1E8 :1018F00093F102C194F103C195F11A0E64EC0BF05F :10190000E8CF00F11B0E64EC0BF0E8CF01F11C0EE8 :1019100064EC0BF0E8CF02F11D0E64EC0BF0E8CFA5 :1019200003F1010103AFC3EF0CF012EC32F01A0E19 :101930000C6E00C10BF04DEC0BF01B0E0C6E01C1D8 :101940000BF04DEC0BF01C0E0C6E02C10BF04DECCD :101950000BF01D0E0C6E03C10BF04DEC0BF01A0ECC :1019600064EC0BF0E8CF00F11B0E64EC0BF0E8CF59 :1019700001F11C0E64EC0BF0E8CF02F11D0E64ECDB :101980000BF0E8CF03F100C196F101C197F102C15C :1019900098F103C199F1240EAC6E900EAB6E240E3B :1019A000AC6E080EB86E000EB06E1F0EAF6E040166 :1019B000806B816B0F01900EAB6E0F019D8A03014E :1019C000806B816BC26B8B924FEC37F04FEC37F032 :1019D00031EC39F02DEC35F0200E64EC0BF0E8CF53 :1019E0002FF505012F51FF0AD8A4FEEF0CF02F6B45 :1019F000200E0C6E2FC50BF04DEC0BF00501010E07 :101A0000306F3C0E316F250E64EC0BF0E8CF00F127 :101A1000260E64EC0BF0E8CF01F1270E64EC0BF01E :101A2000E8CF02F1280E64EC0BF0E8CF03F10101DE :101A300003AF35EF0DF012EC32F0250E0C6E00C145 :101A40000BF04DEC0BF0260E0C6E01C10BF04DECC3 :101A50000BF0270E0C6E02C10BF04DEC0BF0280EB4 :101A60000C6E03C10BF04DEC0BF000C157F501C13A :101A700058F502C159F503C15AF500C15BF501C122 :101A80005CF502C15DF503C15EF5290E64EC0BF057 :101A9000E8CF5FF5050160515F5DD8A05FC560F5D7 :101AA000210E64EC0BF0E8CF00F1220E64EC0BF099 :101AB000E8CF01F1230E64EC0BF0E8CF02F1240E25 :101AC00064EC0BF0E8CF03F1010103AF96EF0DF0EA :101AD00012EC32F0210E0C6E00C10BF04DEC0BF04D :101AE000220E0C6E01C10BF04DEC0BF0230E0C6EB0 :101AF00002C10BF04DEC0BF0240E0C6E03C10BF089 :101B00004DEC0BF0210E64EC0BF0E8CF00F1220E4F :101B100064EC0BF0E8CF01F1230E64EC0BF0E8CF9E :101B200002F1240E64EC0BF0E8CF03F100C161F583 :101B300001C162F502C163F503C164F575EC34F0CF :101B40005BEC33F0B3EC32F01590C70E64EC0BF0A5 :101B5000E8CF00F1010100B1B1EF0DF01592B2EF45 :101B60000DF0158281AAC0EF0DF015B4BBEF0DF09A :101B70001580C0EF0DF070EC39F015A0D7EF39F0FB :101B800007900001F28EF28C12AE03D012BC6EEF01 :101B900019F007B024EF2EF00FB014EF27F010BEAD :101BA00014EF27F012B814EF27F000011650010AC5 :101BB000D8B41CEF1EF081BAE6EF0DF0000116500C :101BC000040AD8B41AEF1CF0ECEF0DF00001165027 :101BD000040AD8B458EF1EF00301805181197F0B1D :101BE000D8B424EF2EF013EE00F081517F0BE126E4 :101BF000812BE7CFE8FFE00BD8B424EF2EF023EEE3 :101C000082F0C2513F0BD926E7CFDFFFC22BDF5056 :101C1000780AD8A424EF2EF0078092C100F193C176 :101C200001F194C102F195C103F10101040E046FA9 :101C3000000E056F000E066F000E076FFDEC30F012 :101C400000AF2CEF0EF00101030E926F000E936FA8 :101C5000000E946F000E956F03018251720AD8B482 :101C600095EF26F08251520AD8B495EF26F08251B2 :101C7000750AD8B495EF26F08251680AD8B4AAEF55 :101C80000EF08251630AD8B4DEEF2AF08251690A5D :101C9000D8B462EF21F082517A0AD8B475EF22F0FD :101CA0008251490AD8B401EF21F08251500AD8B4C8 :101CB0001FEF20F08251700AD8B462EF20F08251F9 :101CC000540AD8B48DEF20F08251740AD8B4D3EFFF :101CD00020F08251410AD8B4AFEF0FF082514B0A85 :101CE000D8B4ACEF0EF082516D0AD8B41FEF14F0E7 :101CF00082514D0AD8B438EF14F08251730AD8B427 :101D0000C5EF25F08251530AD8B42AEF26F082514C :101D10004C0AD8B4C7EF14F08251590AD8B470EF06 :101D200013F012AE01D0128C15EF2BF0040114EE5B :101D300000F080517F0BE12682C4E7FF802B120068 :101D400004010D0E826F96EC0EF00A0E826F96EC77 :101D50000EF0120013EF2BF004014B0E826F96EC85 :101D60000EF004012C0E826F96EC0EF081B802D0BA :101D700036B630D003018351430AD8B4F1EF0EF0E8 :101D800003018351630AD8B4F3EF0EF003018351CA :101D9000520AD8B4F5EF0EF003018351720AD8B499 :101DA000F7EF0EF003018351470AD8B4F9EF0EF0B4 :101DB00003018351670AD8B4FBEF0EF0030183518E :101DC000540AD8B4FDEF0EF003018351740AD8B45D :101DD0006DEF0FF003018351550AD8B4FFEF0EF0F9 :101DE00083D036807BD0369079D0368277D03692C9 :101DF00075D0368473D0369471D036866FD084C354 :101E000030F185C331F186C332F187C333F101016B :101E1000296B60EC32F0D7EC31F000C104F101C164 :101E200005F102C106F103C107F153EC32F0200EB7 :101E3000F86EF76AF66A0900F5CF2CF10900F5CFC4 :101E40002DF10900F5CF2EF10900F5CF2FF1090092 :101E5000F5CF30F10900F5CF31F10900F5CF32F1BE :101E60000900F5CF33F10101296B60EC32F0D7ECBA :101E700031F0FDEC30F00101006746EF0FF0016733 :101E800046EF0FF0026746EF0FF0036701D025D051 :101E900004014E0E826F96EC0EF004016F0E826FFD :101EA00096EC0EF004014D0E826F96EC0EF00401DC :101EB000610E826F96EC0EF00401740E826F96EC48 :101EC0000EF00401630E826F96EC0EF00401680EB2 :101ED000826F96EC0EF013EF2BF03696CD0E0C6E53 :101EE00036C00BF04DEC0BF0CD0E64EC0BF0E8CFF0 :101EF00036F036B006D00401630E826F96EC0EF019 :101F000005D00401430E826F96EC0EF036B206D077 :101F10000401720E826F96EC0EF005D00401520E91 :101F2000826F96EC0EF036B406D00401670E826F15 :101F300096EC0EF005D00401470E826F96EC0EF081 :101F400036B606D00401740E826F96EC0EF005D002 :101F50000401540E826F96EC0EF013EF2BF0040187 :101F6000410E826F96EC0EF003018351310AD8B412 :101F700090EF12F003018351320AD8B4C0EF11F090 :101F800003018351330AD8B449EF11F0030183519F :101F9000340AD8B439EF10F003018351350AD8B4AC :101FA000D9EF0FF004013F0E826F96EC0EF013EFA5 :101FB0002BF003018451300AD8B4FFEF0FF0030176 :101FC0008451310AD8B402EF10F003018451650A3C :101FD000D8B4F3EF0FF003018451640AD8B4F6EFDC :101FE0000FF003EF10F03790F7EF0FF03780FB0E94 :101FF0000C6E37C00BF04DEC0BF003EF10F08B9034 :1020000003EF10F08B800401350E826F96EC0EF01A :1020100004012C0E826F96EC0EF08BB017EF10F0CF :102020000401300E826F96EC0EF01CEF10F00401EC :10203000310E826F96EC0EF004012C0E826F96EC3E :102040000EF0FB0E64EC0BF0E8CF37F037A030EF6A :1020500010F00401640E826F96EC0EF035EF10F074 :102060000401650E826F96EC0EF037EF10F013EF5F :102070002BF0CC0E64EC0BF0E8CF0BF004012C0E2F :10208000826F96EC0EF003018451310AD8B45DEFF3 :1020900010F003018451300AD8B45FEF10F003014F :1020A00084514D0AD8B469EF10F003018451540AE9 :1020B000D8B470EF10F087EF10F08A8401D08A94C2 :1020C0000BAE04D00BAC02D00BBA21D0E00E0B1239 :1020D00018D01F0E0B168539E844E00B0B1211D0F7 :1020E000E00E0B1653EC32F085C332F186C333F1A8 :1020F0000101296B60EC32F0D7EC31F000511F0B7D :102100000B12CC0E0C6E0BC00BF04DEC0BF004015F :10211000340E826F96EC0EF004012C0E826F96EC5A :102120000EF0CC0E64EC0BF0E8CF1DF08AB406D0B4 :102130000401300E826F96EC0EF005D00401310ED2 :10214000826F96EC0EF004012C0E826F96EC0EF06E :102150001D38E840070BE8CF82F40401300E8227D7 :1021600096EC0EF004012C0E826F96EC0EF012EC41 :1021700032F01D501F0BE8CF00F19BEC31F032C163 :1021800082F40401300E822796EC0EF033C182F403 :102190000401300E822796EC0EF004012C0E826FA3 :1021A00096EC0EF012EC32F030C000F100AF0BD024 :1021B000FF0E016FFF0E026FFF0E036F04012D0E65 :1021C000826F96EC0EF09BEC31F031C182F4040189 :1021D000300E822796EC0EF032C182F40401300EEC :1021E000822796EC0EF033C182F40401300E822770 :1021F00096EC0EF004012C0E826F96EC0EF012ECB1 :1022000032F02FC000F19BEC31F031C182F40401B7 :10221000300E822796EC0EF032C182F40401300EAB :10222000822796EC0EF033C182F40401300E82272F :1022300096EC0EF004012C0E826F96EC0EF012EC70 :1022400032F031C000F100AF0BD0FF0E016FFF0E76 :10225000026FFF0E036F04012D0E826F96EC0EF0DD :102260009BEC31F031C182F40401300E822796ECF0 :102270000EF032C182F40401300E822796EC0EF08B :1022800033C182F40401300E822796EC0EF013EF76 :102290002BF0CB0E64EC0BF0E8CF0BF004012C0E0E :1022A000826F96EC0EF003018451450AD8B46DEFAD :1022B00011F003018451440AD8B470EF11F0030106 :1022C0008451300AD8B473EF11F003018451310AFC :1022D000D8B477EF11F082EF11F00B9E7CEF11F084 :1022E0000B8E7CEF11F0FC0E0B167CEF11F0FC0E48 :1022F0000B160B807CEF11F0CB0E0C6E0BC00BF0AD :102300004DEC0BF00401330E826F96EC0EF00401DD :102310002C0E826F96EC0EF0CB0E64EC0BF0E8CF37 :102320001CF01CBE9BEF11F00401450E826F96EC71 :102330000EF0A0EF11F00401440E826F96EC0EF047 :1023400004012C0E826F96EC0EF00401300E826FA9 :1023500096EC0EF004012C0E826F96EC0EF01CB081 :10236000B9EF11F00401300E826F96EC0EF0BEEF63 :1023700011F00401310E826F96EC0EF013EF2BF08A :10238000CA0E64EC0BF0E8CF0BF004012C0E826F48 :1023900096EC0EF003018451450AD8B4FCEF11F01D :1023A00003018451440AD8B4FFEF11F003018451B2 :1023B0004D0AD8B408EF12F003018451410AD8B491 :1023C00002EF12F003018451460AD8B405EF12F06F :1023D00003018451560AD8B410EF12F0030184515E :1023E000500AD8B41BEF12F003018451520AD8B43A :1023F0001EEF12F027EF12F00B9E21EF12F00B8E62 :1024000021EF12F00B9C21EF12F00B8C21EF12F058 :10241000FC0E0B1685C3E8FF030B0B1221EF12F025 :10242000C70E0B1685C3E8FF070BE846E846E846EB :102430000B1221EF12F00B8421EF12F00B9421EF1D :1024400012F0CA0E0C6E0BC00BF04DEC0BF0CA0E66 :1024500064EC0BF0E8CF1BF00401320E826F96ECB7 :102460000EF004012C0E826F96EC0EF01BBE40EFB6 :1024700012F00401450E826F96EC0EF045EF12F05B :102480000401440E826F96EC0EF004012C0E826F54 :1024900096EC0EF01BC0E8FF030BE8CF82F40401BA :1024A000300E822796EC0EF004012C0E826F96EC13 :1024B0000EF01BBC63EF12F00401410E826F96EC2C :1024C0000EF068EF12F00401460E826F96EC0EF0EB :1024D00004012C0E826F96EC0EF01BC0E8FF380B47 :1024E000E842E842E842E8CF82F40401300E822755 :1024F00096EC0EF004012C0E826F96EC0EF01BB4DD :1025000089EF12F00401520E826F96EC0EF08EEFFE :1025100012F00401500E826F96EC0EF013EF2BF0C8 :10252000C90E64EC0BF0E8CF0BF004012C0E826FA7 :1025300096EC0EF003018451450AD8B4AEEF12F0C8 :1025400003018451440AD8B4B1EF12F0030184515D :102550004D0AD8B4B4EF12F0C2EF12F00B9EBCEFEC :1025600012F00B8EBCEF12F0F80E0B1685C3E8FFCD :10257000070B0B12BCEF12F0C90E0C6E0BC00BF068 :102580004DEC0BF00401310E826F96EC0EF004015D :102590002C0E826F96EC0EF0C90E64EC0BF0E8CFB7 :1025A0001AF01ABE06D00401450E826F96EC0EF0AA :1025B00005D00401440E826F96EC0EF004012C0E3F :1025C000826F96EC0EF01AC0E8FF070BE8CF82F49A :1025D0000401300E822796EC0EF004012C0E826F5F :1025E00096EC0EF0078012EC32F02BC0E8FF003BB7 :1025F00000430043030B9BEC31F033C182F4040130 :10260000300E822796EC0EF004012C0E826F96ECB1 :102610000EF012EC32F02BC001F1019F019D2CC095 :1026200000F101019BEC31F02FC182F40401300E66 :10263000822796EC0EF030C182F40401300E82271E :1026400096EC0EF031C182F40401300E822796EC34 :102650000EF032C182F40401300E822796EC0EF0A7 :1026600033C182F40401300E822796EC0EF004018F :102670002C0E826F96EC0EF012EC32F02DC001F1B0 :102680002EC000F1D89001330033D89001330033CD :1026900001019BEC31F02FC182F40401300E82273E :1026A00096EC0EF030C182F40401300E822796ECD5 :1026B0000EF031C182F40401300E822796EC0EF048 :1026C00032C182F40401300E822796EC0EF033C141 :1026D00082F40401300E822796EC0EF013EF2BF0FB :1026E000FC0E64EC0BF0E8CF0BF003018351520AAF :1026F000D8B4A7EF13F003018351720AD8B4AAEF3C :1027000013F003018351500AD8B4ADEF13F0030165 :102710008351700AD8B4B0EF13F003018351550A06 :10272000D8B4B3EF13F003018351750AD8B4B6EFF0 :1027300013F003018351430AD8B4BFEF13F0030130 :102740008351630AD8B4C2EF13F0CBEF13F00B90B0 :10275000C5EF13F00B80C5EF13F00B92C5EF13F02C :102760000B82C5EF13F00B94C5EF13F00B84C5EF8C :1027700013F00B96C5EF13F00B86C5EF13F00B9813 :10278000C5EF13F00B88C5EF13F0FC0E0C6E0BC0F9 :102790000BF04DEC0BF00401590E826F96EC0EF02D :1027A0001190119211941198FC0E64EC0BF0E8CF8B :1027B0000BF00BA011800BA211820BA411840BA8AB :1027C000118811A0EBEF13F00401520E826F96EC0A :1027D0000EF0F0EF13F00401720E826F96EC0EF023 :1027E00011A8FAEF13F00401430E826F96EC0EF07D :1027F000FFEF13F00401630E826F96EC0EF011A24E :1028000009EF14F00401500E826F96EC0EF00EEFFB :1028100014F00401700E826F96EC0EF011A418EF04 :1028200014F00401550E826F96EC0EF01DEF14F0BB :102830000401750E826F96EC0EF013EF2BF004017D :102840006D0E826F96EC0EF003018351300AD8B4FE :1028500077EF14F003018351310AD8B48AEF14F0F2 :1028600003018351320AD8B49DEF14F015EF2BF019 :1028700004014D0E826F96EC0EF053EC32F084C3DF :1028800031F185C332F186C333F10101296B60EC6C :1028900032F0D7EC31F003018351300AD8B45FEF46 :1028A00014F003018351310AD8B467EF14F0030127 :1028B0008351320AD8B46FEF14F015EF2BF0FD0EF0 :1028C0000C6E00C10BF04DEC0BF077EF14F0FE0E28 :1028D0000C6E00C10BF04DEC0BF08AEF14F0FF0E04 :1028E0000C6E00C10BF04DEC0BF09DEF14F00401E9 :1028F000300E826F96EC0EF004012C0E826F96EC77 :102900000EF012EC32F0FD0E64EC0BF0E8CF00F1AB :10291000AEEF14F00401310E826F96EC0EF004015C :102920002C0E826F96EC0EF012EC32F0FE0E64EC80 :102930000BF0E8CF00F1AEEF14F00401320E826F1D :1029400096EC0EF012EC32F004012C0E826F96EC35 :102950000EF0FF0E64EC0BF0E8CF00F19BEC31F0D1 :1029600031C182F40401300E822796EC0EF032C1A0 :1029700082F40401300E822796EC0EF033C182F40B :102980000401300E822796EC0EF013EF2BF00301BA :102990008351300AD8B41BEF1AF003018351310A76 :1029A000D8B448EF1BF003018351320AD8B4B6EF14 :1029B0001BF003018351330AD8B4C6EF1BF00301A7 :1029C0008351340AD8B421EF1CF003018351350A36 :1029D000D8B470EF1EF003018351360AD8B49EEFCD :1029E0001EF003018351370AD8B4F3EF17F0030147 :1029F0008351380AD8B491EF18F003018351440A87 :102A0000D8B41FEF16F003018351640AD8B43FEF26 :102A100016F003018351460AD8B475EF1DF0030187 :102A200083514D0AD8B46CEF16F0030183516D0A3F :102A3000D8B486EF16F0030183515A0AD8B4C2EF16 :102A40001AF003018351490AD8B49EEF1FF0030125 :102A50008351500AD8B4D0EF1EF003018351540AB9 :102A6000D8B449EF1FF003018351630AD8B4A6EF2D :102A700016F003018351430AD8B49EEF17F0030107 :102A80008351730AD8B4A4EF16F003018351610A8D :102A9000D8B46CEF15F003018351650AD8B46BEF1D :102AA0001AF003018351450AD8B479EF1AF00301F3 :102AB0008351620AD8B487EF1AF003018351420AA6 :102AC000D8B495EF1AF003018351760AD8B4A3EF76 :102AD0001AF0D8A415EF2BF004014C0E826F96EC7F :102AE0000EF00401610E826F96EC0EF05BEC33F099 :102AF00004012C0E826F96EC0EF012EC32F0AFC592 :102B000000F101019BEC31F031C182F40401300E7F :102B1000822796EC0EF032C182F40401300E822737 :102B200096EC0EF033C182F40401300E822796EC4D :102B30000EF004012C0E826F96EC0EF012EC32F0C7 :102B4000B0C500F101019BEC31F031C182F4040108 :102B5000300E822796EC0EF032C182F40401300E62 :102B6000822796EC0EF033C182F40401300E8227E6 :102B700096EC0EF004012C0E826F96EC0EF012EC27 :102B800032F0B1C500F101019BEC31F031C182F4AA :102B90000401300E822796EC0EF032C182F404015B :102BA000300E822796EC0EF033C182F40401300E11 :102BB000822796EC0EF004012C0E826F96EC0EF03C :102BC00012EC32F0B2C500F101019BEC31F031C1E1 :102BD00082F40401300E822796EC0EF032C182F4AA :102BE0000401300E822796EC0EF033C182F404010A :102BF000300E822796EC0EF004012C0E826F96ECBC :102C00000EF012EC32F0B6C500F101019BEC31F090 :102C100031C182F40401300E822796EC0EF032C1ED :102C200082F40401300E822796EC0EF033C182F458 :102C30000401300E822796EC0EF0CCEF1EF003015B :102C40008451300AD8B42BEF16F003018451310AB5 :102C5000D8B42FEF16F01592159630EF16F01582B6 :102C6000C70E64EC0BF0E8CF00F10101008115A262 :102C70000091C70E0C6E00C10BF04DEC0BF0C70EAF :102C800064EC0BF0E8CF00F1010100B14BEF16F05E :102C900015924CEF16F0158204014C0E826F96ECE3 :102CA0000EF00401640E826F96EC0EF004012C0EFF :102CB000826F96EC0EF015B265EF16F00401300E3F :102CC000826F96EC0EF06AEF16F00401310E826FFF :102CD00096EC0EF013EF2BF053EC32F084C333F18B :102CE00060EC32F0D7EC31F0200E0C6E00C10BF02E :102CF0004DEC0BF000C12FF505012F51000A06E045 :102D000005012F51010A02E0F5EC33F004014C0EED :102D1000826F96EC0EF004014D0E826F96EC0EF071 :102D200004012C0E826F96EC0EF012EC32F02FC5DF :102D300000F19BEC31F033C182F40401300E8227A4 :102D400096EC0EF0CCEF1EF0D7EF39F004014C0EEC :102D5000826F96EC0EF00401630E826F96EC0EF01B :102D6000B3EC32F004012C0E826F96EC0EF0BBEC4B :102D700016F0CCEF1EF012EC32F0B5C500F10101F7 :102D8000003B0F0E00179BEC31F033C182F40401BD :102D9000300E822796EC0EF0B5C500F101010F0E42 :102DA000010100179BEC31F033C182F40401300EB5 :102DB000822796EC0EF004012D0E826F96EC0EF039 :102DC000B4C500F10101003B0F0E00179BEC31F080 :102DD00033C182F40401300E822796EC0EF0B4C5A4 :102DE00000F101010F0E010100179BEC31F033C11E :102DF00082F40401300E822796EC0EF004012D0EB1 :102E0000826F96EC0EF0B3C500F10101003B0F0E8E :102E100000179BEC31F033C182F40401300E82279D :102E200096EC0EF0B3C500F101010F0E0101001781 :102E30009BEC31F033C182F40401300E822796EC12 :102E40000EF00401200E826F96EC0EF0B2C500F178 :102E50000F0E010100179BEC31F033C182F4040125 :102E6000300E822796EC0EF00401200E826F96EC55 :102E70000EF0B1C500F101010101003B0F0E00177A :102E80009BEC31F033C182F40401300E822796ECC2 :102E90000EF0B1C500F101010F0E010100179BEC0E :102EA00031F033C182F40401300E822796EC0EF02B :102EB00004013A0E826F96EC0EF0B0C500F10101EC :102EC000003B0F0E00179BEC31F033C182F404017C :102ED000300E822796EC0EF0B0C500F101010F0E06 :102EE000010100179BEC31F033C182F40401300E74 :102EF000822796EC0EF004013A0E826F96EC0EF0EB :102F0000AFC500F10101003B0F0E00179BEC31F043 :102F100033C182F40401300E822796EC0EF0AFC567 :102F200000F101010F0E00179BEC31F033C182F468 :102F30000401300E822796EC0EF0120084C3E8FFE5 :102F40000F0BE83AE8CFB5F585C3E8FF0F0B050195 :102F5000B51387C3E8FF0F0BE83AE8CFB4F588C391 :102F6000E8FF0F0B0501B4138AC3E8FF0F0BE83A23 :102F7000E8CFB3F58BC3E8FF0F0B0501B3138DC387 :102F8000E8FF0F0BE8CFB2F58FC3E8FF0F0BE83A6D :102F9000E8CFB1F590C3E8FF0F0B0501B11392C361 :102FA000E8FF0F0BE83AE8CFB0F593C3E8FF0F0B4B :102FB0000501B01395C3E8FF0F0BE83AE8CFAFF572 :102FC00096C3E8FF0F0B0501AF130EEC33F00401BD :102FD0004C0E826F96EC0EF00401430E826F96EC5D :102FE0000EF0B0EF16F0078404014C0E826F96ECE1 :102FF0000EF00401370E826F96EC0EF004012C0ED9 :10300000826F96EC0EF005012E51130A06E00501C1 :103010002E51170A0DE08EEF18F00101000E006F1F :10302000000E016F100E026F000E036F21EF18F0FB :103030000101000E006F000E016F000E026F010E05 :10304000036F9BEC31F02AC182F40401300E822719 :1030500096EC0EF02BC182F40401300E822796EC20 :103060000EF02CC182F40401300E822796EC0EF093 :103070002DC182F40401300E822796EC0EF02EC191 :1030800082F40401300E822796EC0EF02FC182F4F8 :103090000401300E822796EC0EF030C182F4040158 :1030A000300E822796EC0EF031C182F40401300E0E :1030B000822796EC0EF032C182F40401300E822792 :1030C00096EC0EF033C182F40401300E822796ECA8 :1030D0000EF004012C0E826F96EC0EF00101200E12 :1030E000006F000E016F000E026F000E036F9BEC6D :1030F00031F031C182F40401300E822796EC0EF0DB :1031000032C182F40401300E822796EC0EF033C1F6 :1031100082F40401300E822796EC0EF00794CCEF77 :103120001EF00501216B226B236B246B04014C0EF6 :10313000826F96EC0EF00401380E826F96EC0EF062 :1031400004012C0E826F96EC0EF00101200E006F30 :10315000000E016F000E026F000E036F9BEC31F04A :103160002AC182F40401300E822796EC0EF02BC1A6 :1031700082F40401300E822796EC0EF02CC182F40A :103180000401300E822796EC0EF02DC182F404016A :10319000300E822796EC0EF02EC182F40401300E20 :1031A000822796EC0EF02FC182F40401300E8227A4 :1031B00096EC0EF030C182F40401300E822796ECBA :1031C0000EF031C182F40401300E822796EC0EF02D :1031D00032C182F40401300E822796EC0EF033C126 :1031E00082F40401300E822796EC0EF004012C0EBE :1031F000826F96EC0EF025C500F126C501F127C5BA :1032000002F128C503F10101200E046F000E056FC5 :10321000000E066F000E076F2EEC31F000C133F583 :1032200001C134F502C135F503C136F59BEC31F02F :103230002AC182F40401300E822796EC0EF02BC1D5 :1032400082F40401300E822796EC0EF02CC182F439 :103250000401300E822796EC0EF02DC182F4040199 :10326000300E822796EC0EF02EC182F40401300E4F :10327000822796EC0EF02FC182F40401300E8227D3 :1032800096EC0EF030C182F40401300E822796ECE9 :103290000EF031C182F40401300E822796EC0EF05C :1032A00032C182F40401300E822796EC0EF033C155 :1032B00082F40401300E822796EC0EF0A0EC0EF0A2 :1032C000050133676BEF19F034676BEF19F0356761 :1032D0006BEF19F0366702D00AEF1AF0129E129CBB :1032E00021C500F122C501F123C502F124C503F176 :1032F000899A400EC76E200EC66E9E96C69E0B0E15 :10330000C96EFF0E9EB602D0E82EFCD79E96C69ED2 :1033100002C1C9FFFF0E9EB602D0E82EFCD79E96D2 :10332000C69E01C1C9FFFF0E9EB602D0E82EFCD793 :103330009E96C69E00C1C9FFFF0E9EB602D0E82E23 :10334000FCD79E96C69EC952FF0E9EB602D0E82EAE :10335000FCD70501200E326F040114EE00F08051FD :103360007F0BE1269E96C69EC952FF0E9EB602D0E6 :10337000E82EFCD7C9CFE7FF0401802B0501322FCF :10338000ACEF19F0898A33C500F134C501F135C5B8 :1033900002F136C503F10101010E046F000E056F45 :1033A000000E066F000E076FFDEC30F000C133F524 :1033B00001C134F502C135F503C136F505013367A6 :1033C000E9EF19F03467E9EF19F03567E9EF19F023 :1033D000366702D00AEF1AF021C500F122C501F1CB :1033E00023C502F124C503F10101200E046F000E74 :1033F000056F000E066F000E076F02EC31F000C182 :1034000021F501C122F502C123F503C124F5128E75 :1034100015EF2BF00401450E826F96EC0EF00401BF :103420004F0E826F96EC0EF00401460E826F96EC02 :103430000EF0CCEF1EF0078431EC39F012EC32F0D4 :103440002DC500F19BEC31F004014C0E826F96EC1F :103450000EF00401300E826F96EC0EF004012C0E7B :10346000826F96EC0EF031C182F40401300E822797 :1034700096EC0EF032C182F40401300E822796ECF5 :103480000EF033C182F40401300E822796EC0EF068 :1034900004012C0E826F96EC0EF012EC32F02EC569 :1034A00000F19BEC31F031C182F40401300E82272F :1034B00096EC0EF032C182F40401300E822796ECB5 :1034C0000EF033C182F40401300E822796EC0EF028 :1034D0000794CCEF1EF004014C0E826F96EC0EF0B8 :1034E0000401650E826F96EC0EF0D1EC34F0CCEF57 :1034F0001EF004014C0E826F96EC0EF00401450E96 :10350000826F96EC0EF0E8EC34F0CCEF1EF0040184 :103510004C0E826F96EC0EF00401620E826F96ECF8 :103520000EF016EC35F0CCEF1EF004014C0E826F5D :1035300096EC0EF00401420E826F96EC0EF0FFEC5A :1035400034F0CCEF1EF004014C0E826F96EC0EF0BE :103550000401760E826F96EC0EF004012C0E826F41 :1035600096EC0EF010A807D00401310E826F96EC95 :103570000EF0CCEF1EF00401300E826F96EC0EF0D0 :10358000CCEF1EF004014C0E826F96EC0EF004019D :103590005A0E826F96EC0EF004012C0E826F96ECA0 :1035A0000EF031EC39F012EC32F005012E51130A15 :1035B00006E005012E51170A0DE0F3EF1AF00101A4 :1035C000000E006F000E016F100E026F000E036FF1 :1035D000F3EF1AF00101000E006F000E016F000EF4 :1035E000026F010E036F0101200E046F000E056FC4 :1035F000000E066F000E076F2EEC31F09BEC31F0E1 :103600002AC182F40401300E822796EC0EF02BC101 :1036100082F40401300E822796EC0EF02CC182F465 :103620000401300E822796EC0EF02DC182F40401C5 :10363000300E822796EC0EF02EC182F40401300E7B :10364000822796EC0EF02FC182F40401300E8227FF :1036500096EC0EF030C182F40401300E822796EC15 :103660000EF031C182F40401300E822796EC0EF088 :1036700032C182F40401300E822796EC0EF033C181 :1036800082F40401300E822796EC0EF0CCEF1EF08F :10369000078404014C0E826F96EC0EF00401310E8B :1036A000826F96EC0EF004012C0E826F96EC0EF0F9 :1036B00025C500F126C501F127C502F128C503F192 :1036C0000101200E046F000E056F000E066F000E44 :1036D000076F2EEC31F09BEC31F02AC182F404012B :1036E000300E822796EC0EF02BC182F40401300ECE :1036F000822796EC0EF02CC182F40401300E822752 :1037000096EC0EF02DC182F40401300E822796EC67 :103710000EF02EC182F40401300E822796EC0EF0DA :103720002FC182F40401300E822796EC0EF030C1D6 :1037300082F40401300E822796EC0EF031C182F43F :103740000401300E822796EC0EF032C182F404019F :10375000300E822796EC0EF033C182F40401300E55 :10376000822796EC0EF00794CCEF1EF0078404013C :103770004C0E826F96EC0EF00401320E826F96ECC6 :103780000EF005EC37F00794CCEF1EF0078437B04D :10379000CCEF1BF0DFEF1BF0010E166E04014C0E98 :1037A000826F96EC0EF00401330E826F96EC0EF0F1 :1037B00062EC37F0000E166E079453EF1BF0020E0A :1037C000166E62EC37F08B800501010E306F3C0EF7 :1037D000316F01015E6B5F6B606B616B626B636B82 :1037E000646B656B666B676B686B696B536B546B73 :1037F000CF6ACE6A0F9A0F9C0F9E030E166E0401BD :103800004C0E826F96EC0EF00401330E826F96EC34 :103810000EF004012C0E826F96EC0EF004012D0EBA :10382000826F96EC0EF00401310E826F96EC0EF072 :1038300013EF2BF062EC37F0000E166E8B9015EF45 :103840002BF0078404014C0E826F96EC0EF00401FD :10385000340E826F96EC0EF004012C0E826F96EC03 :103860000EF053EC32F084C32AF185C32BF186C3EA :103870002CF187C32DF188C32EF189C32FF18AC3A0 :1038800030F18BC331F18CC332F18DC333F10101BF :10389000296B60EC32F0D7EC31F0200E046F000E93 :1038A000056F000E066F000E076F0EEC31F000C1C1 :1038B00021F501C122F502C123F503C124F5E4EC91 :1038C00038F038C5AFF539C5B0F53AC5B1F53BC5E7 :1038D000B2F53CC5B3F53DC5B4F53EC5B5F5BBEC99 :1038E00016F004012C0E826F96EC0EF03FC500F12D :1038F00040C501F141C502F142C503F10101000ECD :10390000046F000E056F010E066F000E076F2EECA0 :1039100031F09BEC31F0296790EF1CF095EF1CF033 :1039200004012D0E826F96EC0EF030C182F404017A :10393000300E822796EC0EF031C182F40401300E75 :10394000822796EC0EF004012E0E826F96EC0EF09C :1039500032C182F40401300E822796EC0EF033C19E :1039600082F40401300E822796EC0EF004012C0E36 :10397000826F96EC0EF012EC32F043C500F144C5B4 :1039800001F13FEC2CF004012C0E826F96EC0EF04E :1039900012EC32F045C500F19BEC31F031C182F4FC :1039A0000401300E822796EC0EF032C182F404013D :1039B000300E822796EC0EF033C182F40401300EF3 :1039C000822796EC0EF004012C0E826F96EC0EF01E :1039D00037C5E8FFE8B806D00401300E826F96ECD8 :1039E0000EF005D00401310E826F96EC0EF004014A :1039F0002C0E826F96EC0EF037C5E8FFE8BA06D0C1 :103A00000401300E826F96EC0EF06CD00401310E82 :103A1000826F96EC0EF004012C0E826F96EC0EF085 :103A200047C500F148C501F149C502F14AC503F196 :103A3000BDEC31F05EEC2FF004012C0E826F96ECA1 :103A40000EF04BC500F14CC501F14DC502F14EC55C :103A500003F10101000E046F000E056F010E066FE9 :103A6000000E076F2EEC31F09BEC31F029673BEF35 :103A70001DF040EF1DF004012D0E826F96EC0EF04C :103A800030C182F40401300E822796EC0EF031C171 :103A900082F40401300E822796EC0EF004012E0E03 :103AA000826F96EC0EF032C182F40401300E822750 :103AB00096EC0EF033C182F40401300E822796ECAE :103AC0000EF004012C0E826F96EC0EF04FC500F143 :103AD00050C501F151C502F152C503F1BDEC31F001 :103AE0005EEC2FF00794CCEF1EF053EC32F085C360 :103AF0002AF186C32BF187C32CF188C32DF189C32A :103B00002EF18AC32FF18BC330F18CC331F18DC3F9 :103B100032F18EC333F10101296B60EC32F0D7EC46 :103B200031F00101010E046F000E056F000E066FEB :103B3000000E076FFDEC30F0100E046F000E056FE5 :103B4000000E066F000E076F0EEC31F000C129F574 :103B500001C12AF502C12BF503C12CF58CEC36F01E :103B600004014C0E826F96EC0EF00401460E826F3B :103B700096EC0EF004012C0E826F96EC0EF025C52B :103B800000F126C501F127C502F128C503F10101A5 :103B9000100E046F000E056F000E066F000E076F0B :103BA0002EEC31F09BEC31F02AC182F40401300E8E :103BB000822796EC0EF02BC182F40401300E82278E :103BC00096EC0EF02CC182F40401300E822796ECA4 :103BD0000EF02DC182F40401300E822796EC0EF017 :103BE0002EC182F40401300E822796EC0EF02FC114 :103BF00082F40401300E822796EC0EF030C182F47C :103C00000401300E822796EC0EF031C182F40401DB :103C1000300E822796EC0EF032C182F40401300E91 :103C2000822796EC0EF033C182F40401300E822715 :103C300096EC0EF0CCEF1EF037B021EF1EF0020E26 :103C4000166E62EC37F000011650020AD8B43FEF4E :103C50001EF005012F51010AD8B435EF1EF015B240 :103C60003AEF1EF081BA3AEF1EF0000E166E158480 :103C700015EF2BF0050E166E1584D7EF39F08B80FB :103C800001015E6B5F6B606B616B626B636B646B9E :103C9000656B666B676B686B696B536B546BCF6A54 :103CA000CE6A0F9A0F9C0F9E030E166E15EF2BF027 :103CB00062EC37F005012F51010AD8B466EF1EF00F :103CC00015B26BEF1EF081BA6BEF1EF0000E166E90 :103CD000158415EF2BF0050E166E1584D7EF39F00D :103CE00004014C0E826F96EC0EF00401350E826FCB :103CF00096EC0EF004012C0E826F96EC0EF012EC96 :103D000032F00784B9C500F107949BEC31F031C162 :103D100082F40401300E822796EC0EF032C182F458 :103D20000401300E822796EC0EF033C182F40401B8 :103D3000300E822796EC0EF0CCEF1EF025EC37F01B :103D400012EC32F037C500F19BEC31F004014C0E5F :103D5000826F96EC0EF00401360E826F96EC0EF038 :103D600004012C0E826F96EC0EF031C182F4040136 :103D7000300E822796EC0EF032C182F40401300E30 :103D8000822796EC0EF033C182F40401300E8227B4 :103D900096EC0EF0CCEF1EF0A0EC0EF015EF2BF031 :103DA00004014C0E826F96EC0EF00401500E826FEF :103DB00096EC0EF004012C0E826F96EC0EF085C38B :103DC0002AF186C32BF187C32CF188C32DF189C357 :103DD0002EF18AC32FF18BC330F18CC331F18DC327 :103DE00032F18EC333F1010160EC32F0D7EC31F0E7 :103DF00003018451530A0DE0030184514D0A38E058 :103E00000401780E826F96EC0EF0A0EC0EF015EF28 :103E10002BF00401530E826F96EC0EF0250E0C6E03 :103E200000C10BF04DEC0BF0260E0C6E01C10BF037 :103E30004DEC0BF0270E0C6E02C10BF04DEC0BF0AD :103E4000280E0C6E03C10BF04DEC0BF000C157F5C2 :103E500001C158F502C159F503C15AF500C15BF51E :103E600001C15CF502C15DF503C15EF5ADEF1FF068 :103E700004014D0E826F96EC0EF0290E0C6E00C1FF :103E80000BF04DEC0BF000C15FF500C160F5ADEF3C :103E90001FF004014C0E826F96EC0EF00401540EDC :103EA000826F96EC0EF004012C0E826F96EC0EF0F1 :103EB00084C32AF185C32BF186C32CF187C32DF16E :103EC00088C32EF189C32FF18AC330F18BC331F13E :103ED0008DC332F18EC333F1010160EC32F0D7ECC7 :103EE00031F00101000E046F000E056F010E066F28 :103EF000000E076F0EEC31F0210E0C6E00C10BF0BE :103F00004DEC0BF0220E0C6E01C10BF04DEC0BF0E2 :103F1000230E0C6E02C10BF04DEC0BF0240E0C6E58 :103F200003C10BF04DEC0BF000C161F501C162F56E :103F300002C163F503C164F5ADEF1FF004014C0E3F :103F4000826F96EC0EF00401490E826F96EC0EF033 :103F500004012C0E826F96EC0EF0250E64EC0BF033 :103F6000E8CF00F1260E64EC0BF0E8CF01F1270E4C :103F700064EC0BF0E8CF02F1280E64EC0BF0E8CF14 :103F800003F19BEC31F05EEC2FF00401730E826FB5 :103F900096EC0EF004012C0E826F96EC0EF012ECF3 :103FA00032F0290E64EC0BF0E8CF00F19BEC31F01D :103FB0005EEC2FF004016D0E826F96EC0EF00401A2 :103FC0002C0E826F96EC0EF05BC500F15CC501F122 :103FD0005DC502F15EC503F19BEC31F05EEC2FF0A4 :103FE0000401730E826F96EC0EF004012C0E826FAA :103FF00096EC0EF012EC32F060C500F19BEC31F063 :104000005EEC2FF004016D0E826F96EC0EF0040151 :104010002C0E826F96EC0EF061C500F162C501F1C5 :1040200063C502F164C503F130EC2BF004012C0EE2 :10403000826F96EC0EF0A0EC0EF015EF2BF083C320 :104040002AF184C32BF185C32CF186C32DF187C3DC :104050002EF188C32FF189C330F18AC331F18BC3AC :1040600032F18CC333F1010160EC32F0D7EC31F066 :10407000160E0C6E00C10BF04DEC0BF0170E0C6E13 :1040800001C10BF04DEC0BF0180E0C6E02C10BF0E1 :104090004DEC0BF0190E0C6E03C10BF04DEC0BF058 :1040A00000C18EF101C18FF102C190F103C191F104 :1040B00000C192F101C193F102C194F103C195F1E4 :1040C00001EF21F083C32AF184C32BF185C32CF1C6 :1040D00086C32DF187C32EF188C32FF189C330F138 :1040E0008AC331F18BC332F18CC333F1010160EC2F :1040F00032F0D7EC31F000C18EF101C18FF102C175 :1041000090F103C191F100C192F101C193F102C19B :1041100094F103C195F101EF21F083C32AF184C327 :104120002BF185C32CF186C32DF187C32EF188C3F3 :104130002FF189C330F18AC331F18CC332F18DC3C1 :1041400033F1010160EC32F0D7EC31F00101000EE7 :10415000046F000E056F010E066F000E076F0EEC68 :1041600031F01A0E0C6E00C10BF04DEC0BF01B0E73 :104170000C6E01C10BF04DEC0BF01C0E0C6E02C16D :104180000BF04DEC0BF01D0E0C6E03C10BF04DEC63 :104190000BF000C196F101C197F102C198F103C182 :1041A00099F101EF21F083C32AF184C32BF185C378 :1041B0002CF186C32DF187C32EF188C32FF189C35B :1041C00030F18AC331F18CC332F18DC333F1010177 :1041D00060EC32F0D7EC31F00101000E046F000EFC :1041E000056F010E066F000E076F0EEC31F000C177 :1041F00096F101C197F102C198F103C199F101EF64 :1042000021F0160E64EC0BF0E8CF00F1170E64EC11 :104210000BF0E8CF01F1180E64EC0BF0E8CF02F1DF :10422000190E64EC0BF0E8CF03F19BEC31F05EEC7F :104230002FF00401730E826F96EC0EF004012C0E29 :10424000826F96EC0EF08EC100F18FC101F190C12A :1042500002F191C103F19BEC31F05EEC2FF004010F :10426000730E826F96EC0EF004012C0E826F96ECAA :104270000EF01A0E64EC0BF0E8CF00F11B0E64ECAC :104280000BF0E8CF01F11C0E64EC0BF0E8CF02F16B :104290001D0E64EC0BF0E8CF03F130EC2BF00401C1 :1042A0002C0E826F96EC0EF096C100F197C101F1D1 :1042B00098C102F199C103F130EC2BF0A0EC0EF0A3 :1042C00015EF2BF00401690E826F96EC0EF00401DD :1042D0002C0E826F96EC0EF00101040E006F000EA2 :1042E000016F000E026F000E036F9BEC31F02CC1CA :1042F00082F40401300E822796EC0EF02DC182F478 :104300000401300E822796EC0EF02EC182F40401D7 :10431000300E822796EC0EF02FC182F40401300E8D :10432000822796EC0EF030C182F40401300E822711 :1043300096EC0EF031C182F40401300E822796EC27 :104340000EF032C182F40401300E822796EC0EF09A :1043500033C182F40401300E822796EC0EF0040182 :104360002C0E826F96EC0EF001010D0E006F000E08 :10437000016F000E026F000E036F9BEC31F02CC139 :1043800082F40401300E822796EC0EF02DC182F4E7 :104390000401300E822796EC0EF02EC182F4040147 :1043A000300E822796EC0EF02FC182F40401300EFD :1043B000822796EC0EF030C182F40401300E822781 :1043C00096EC0EF031C182F40401300E822796EC97 :1043D0000EF032C182F40401300E822796EC0EF00A :1043E00033C182F40401300E822796EC0EF00401F2 :1043F0002C0E826F96EC0EF001014C0E006F000E39 :10440000016F000E026F000E036F9BEC31F02CC1A8 :1044100082F40401300E822796EC0EF02DC182F456 :104420000401300E822796EC0EF02EC182F40401B6 :10443000300E822796EC0EF02FC182F40401300E6C :10444000822796EC0EF030C182F40401300E8227F0 :1044500096EC0EF031C182F40401300E822796EC06 :104460000EF032C182F40401300E822796EC0EF079 :1044700033C182F40401300E822796EC0EF0040161 :104480002C0E826F96EC0EF0200EF86EF76AF66A2C :1044900004010900F5CF82F496EC0EF00900F5CF87 :1044A00082F496EC0EF00900F5CF82F496EC0EF053 :1044B0000900F5CF82F496EC0EF00900F5CF82F4F6 :1044C00096EC0EF00900F5CF82F496EC0EF00900A0 :1044D000F5CF82F496EC0EF00900F5CF82F496EC5D :1044E0000EF0A0EC0EF015EF2BF08351630AD8A468 :1044F00013EF2BF08451610AD8A413EF2BF08551F0 :104500006C0AD8A413EF2BF08651410A3FE0865184 :10451000440A1BE08651420AD8B4D9EF22F08651F2 :10452000350AD8B49FEF2CF08651360AD8B4F4EF90 :104530002CF08651370AD8B45DEF2DF08651380A39 :10454000D8B4BBEF2DF013EF2BF00798079A0401B6 :104550007A0E826F96EC0EF00401780E826F96EC64 :104560000EF00401640E826F96EC0EF00401550EFD :10457000826F96EC0EF0C2EF22F004014C0E826FB7 :1045800096EC0EF0A0EC0EF015EF2BF00788079AD2 :1045900004017A0E826F96EC0EF00401410E826FD8 :1045A00096EC0EF00401610E826F96EC0EF0B6EF01 :1045B00022F00798078A04017A0E826F96EC0EF0BB :1045C0000401420E826F96EC0EF00401610E826FC0 :1045D00096EC0EF0B6EF22F001016667F7EF22F0DD :1045E0006767F7EF22F06867F7EF22F0696716D088 :1045F00001014F6703EF23F0506703EF23F051678A :1046000003EF23F052670AD00101000E006F000E85 :10461000016F000E026F000E036F120011B80AD076 :104620000101620E046F010E056F000E066F000E91 :10463000076F09D00101A70E046F020E056F000E6F :10464000066F000E076F66C100F167C101F168C116 :1046500002F169C103F1FDEC30F003BFA0EF23F0DC :10466000119A119C0101000E046FA80E056F550EE2 :10467000066F020E076F66C100F167C101F168C1E4 :1046800002F169C103F166C18AF167C18BF168C1AA :104690008CF169C18DF1FDEC30F003BF0BD001014D :1046A000000E8A6FA80E8B6F550E8C6F020E8D6FE9 :1046B000118A119C0E0E64EC0BF0E8CF18F10F0E6E :1046C00064EC0BF0E8CF19F1100E64EC0BF0E8CFBE :1046D0001AF1110E64EC0BF0E8CF1BF146EC30F050 :1046E0008AC104F18BC105F18CC106F18DC107F1BE :1046F000FDEC30F007820AEC30F046EC30F0079227 :104700000AEC30F08AC100F18BC101F18CC102F1D9 :104710008DC103F107920AEC30F0CC0E046FE00E6D :10472000056F870E066F050E076FFDEC30F000C1B8 :1047300018F101C119F102C11AF103C11BF140D0F6 :1047400013AAA5EF23F0138E139A119C119A01015D :10475000800E006F1A0E016F060E026F000E036FBF :104760004FC104F150C105F151C106F152C107F129 :10477000FDEC30F003AF05D012EC32F0118C119A41 :1047800012000E0E64EC0BF0E8CF18F10F0E64EC83 :104790000BF0E8CF19F1100E64EC0BF0E8CF1AF132 :1047A000110E64EC0BF0E8CF1BF14FC100F150C1CA :1047B00001F151C102F152C103F107820AEC30F05C :1047C00018C100F119C101F11AC102F11BC103F1B5 :1047D00012000784BAC166F1BBC167F1BCC168F1C0 :1047E000BDC169F14BC14FF14CC150F14DC151F107 :1047F0004EC152F157C159F158C15AF10794010104 :1048000066670AEF24F067670AEF24F068670AEF2B :1048100024F0696716D001014F6716EF24F0506746 :1048200016EF24F0516716EF24F052670AD0010109 :10483000000E006F000E016F000E026F000E036F7E :10484000120011B80AD00101620E046F010E056F4B :10485000000E066F000E076F09D00101A70E046F4E :10486000020E056F000E066F000E076F66C100F1A5 :1048700067C101F168C102F169C103F1FDEC30F0DB :1048800003BFA2EF24F00101000E046FA80E056F14 :10489000550E066F020E076F66C100F167C101F188 :1048A00068C102F169C103F166C18AF167C18BF188 :1048B00068C18CF169C18DF1FDEC30F003BF09D006 :1048C0000101000E8A6FA80E8B6F550E8C6F020EC1 :1048D0008D6F46EC30F000C104F101C105F102C159 :1048E00006F103C107F1000E006FA00E016F980ED4 :1048F000026F7B0E036F2EEC31F000C118F101C185 :1049000019F102C11AF103C11BF1000E006FA00ED4 :10491000016F980E026F7B0E036F8AC104F18BC189 :1049200005F18CC106F18DC107F12EEC31F018C1F3 :1049300004F119C105F11AC106F11BC107F1FDEC23 :1049400030F012000101A80E006F610E016F000E21 :10495000026F000E036F4FC104F150C105F151C148 :1049600006F152C107F1FDEC30F003AF0AD00101AE :10497000A80E006F610E016F000E026F000E036F34 :1049800000D0C80E006FAF0E016F000E026F000E58 :10499000036F4FC104F150C105F151C106F152C17D :1049A00007F10EEC31F012000784BAC166F1BBC109 :1049B00067F1BCC168F1BDC169F14BC14FF14CC198 :1049C00050F14DC151F14EC152F157C159F158C189 :1049D0005AF1079401016667F5EF24F06767F5EF78 :1049E00024F06867F5EF24F0696716D001014F677E :1049F00001EF25F0506701EF25F0516701EF25F039 :104A000052670AD00101000E006F000E016F000E08 :104A1000026F000E036F120011B80AD00101620E7E :104A2000046F010E056F000E066F000E076F09D0B0 :104A30000101A70E046F020E056F000E066F000E37 :104A4000076F66C100F167C101F168C102F169C178 :104A500003F1FDEC30F003BFB7EF25F00101000ECC :104A6000046FA80E056F550E066F020E076F66C124 :104A700000F167C101F168C102F169C103F166C1CA :104A80008AF167C18BF168C18CF169C18DF1FDECD0 :104A900030F003BF09D00101000E8A6FA80E8B6FA2 :104AA000550E8C6F020E8D6F010E006F000E016FA0 :104AB000000E026F000E036F8AC104F18BC105F175 :104AC0008CC106F18DC107F12EEC31F018C104F153 :104AD00019C105F11AC106F11BC107F19BEC31F0B8 :104AE0002AC182F40401300E822796EC0EF02BC10D :104AF00082F40401300E822796EC0EF02CC182F471 :104B00000401300E822796EC0EF02DC182F40401D0 :104B1000300E822796EC0EF02EC182F40401300E86 :104B2000822796EC0EF02FC182F40401300E82270A :104B300096EC0EF030C182F40401300E822796EC20 :104B40000EF031C182F40401300E822796EC0EF093 :104B500032C182F40401300E822796EC0EF033C18C :104B600082F40401300E822796EC0EF012004FC141 :104B700000F150C101F151C102F152C103F1010133 :104B80009BEC31F05EEC2FF012000401730E826F8B :104B900096EC0EF004012C0E826F96EC0EF007845A :104BA00062C166F163C167F164C168F165C169F111 :104BB0004BC14FF14CC150F14DC151F14EC152F1B9 :104BC00057C159F158C15AF10794EBEC25F0A0EC0C :104BD0000EF015EF2BF066C100F167C101F168C15D :104BE00002F169C103F101019BEC31F05EEC2FF0A1 :104BF0000401630E826F96EC0EF004012C0E826F9E :104C000096EC0EF04FC100F150C101F151C102F11B :104C100052C103F101019BEC31F05EEC2FF0040175 :104C2000660E826F96EC0EF004012C0E826F96ECED :104C30000EF012EC32F059C100F15AC101F101013C :104C40009BEC31F05EEC2FF00401740E826F96EC59 :104C50000EF0120010820401530E826F96EC0EF0DB :104C600004012C0E826F96EC0EF083C32AF184C3EC :104C70002BF185C32CF186C32DF187C32EF188C398 :104C80002FF189C330F18AC331F18BC332F18CC368 :104C900033F1010160EC32F0D7EC31F000C166F184 :104CA00001C167F102C168F103C169F18EC32AF144 :104CB0008FC32BF190C32CF191C32DF192C32EF130 :104CC00093C32FF194C330F195C331F196C332F100 :104CD00097C333F1010160EC32F0D7EC31F000C141 :104CE0004FF101C150F102C151F103C152F153EC36 :104CF00032F099C32FF19AC330F19BC331F19CC3B9 :104D000032F19DC333F1010160EC32F0D7EC31F0A8 :104D100000C159F101C15AF1EBEC25F004012C0E50 :104D2000826F96EC0EF0A5EF26F0118E1CA002D03B :104D30001CAE108C1BBE02D01BA4108E030182512E :104D4000520A02E10F8201D00F928251750A02E1EC :104D5000108401D010948251550A02E1108601D0CE :104D600010968351310A03E11382138402D0139207 :104D7000139403018351660A01E056D00401660EC4 :104D8000826F96EC0EF004012C0E826F96EC0EF002 :104D9000E9EC23F09BEC31F02AC182F40401300EDF :104DA000822796EC0EF02BC182F40401300E82278C :104DB00096EC0EF02CC182F40401300E822796ECA2 :104DC0000EF02DC182F40401300E822796EC0EF015 :104DD0002EC182F40401300E822796EC0EF02FC112 :104DE00082F40401300E822796EC0EF030C182F47A :104DF0000401300E822796EC0EF031C182F40401DA :104E0000300E822796EC0EF032C182F40401300E8F :104E1000822796EC0EF033C182F40401300E822713 :104E200096EC0EF013EF2BF011A003D011A401D0DB :104E30001084078410B27EEF27F010A462EF27F0F1 :104E4000BAC166F1BBC167F1BCC168F1BDC169F10E :104E5000BEC16AF1BFC16BF1C0C16CF1C1C16DF1DE :104E6000C2C16EF1C3C16FF1C4C170F1C5C171F1AE :104E7000C6C172F1C7C173F1C8C174F1C9C175F17E :104E8000CAC176F1CBC177F1CCC178F1CDC179F14E :104E9000CEC17AF1CFC17BF1D0C17CF1D1C17DF11E :104EA000D2C17EF1D3C17FF1D4C180F1D5C181F1EE :104EB000D6C182F1D7C183F1D8C184F1D9C185F1BE :104EC0006AEF27F062C166F163C167F164C168F1FE :104ED00065C169F1BAC186F1BBC187F1BCC188F176 :104EE000BDC189F14BC14FF14CC150F14DC151F1E0 :104EF0004EC152F157C159F158C15AF107940FA050 :104F0000A0EF27F0010196678DEF27F097678DEFEF :104F100027F098678DEF27F0996791EF27F0A0EFC2 :104F200027F0ECEC22F096C104F197C105F198C18D :104F300006F199C107F1FDEC30F003BFD9EF2AF07B :104F4000ECEC22F00101000E046F000E056F010E63 :104F5000066F000E076F2EEC31F011A02AD011A2BF :104F600028D09BEC31F0296701D005D004012D0E2B :104F7000826F96EC0EF030C182F40401300E82276D :104F800096EC0EF031C182F40401300E822796ECCB :104F90000EF032C182F40401300E822796EC0EF03E :104FA00033C182F40401300E822796EC0EF0A0EC9F :104FB0000EF012A8C5D012981DC01EF01E3A1E4257 :104FC000070E1E1600011E50000AD8B46CEF28F020 :104FD00000011E50010AD8B4F8EF27F000011E505E :104FE000020AD8B4F6EF27F09EEF28F09EEF28F0E3 :104FF00012EC32F02DC001F12EC000F1D890013337 :105000000033D890013300330101630E046F000EAA :10501000056F000E066F000E076F2EEC31F0280EA4 :10502000046F000E056F000E066F000E076FFDEC9B :1050300030F000C130F012EC32F02BC001F1019FD2 :10504000019D2CC000F10101A40E046F000E056F3C :10505000000E066F000E076F2EEC31F000C12FF02E :1050600000C104F101C105F102C106F103C107F15C :10507000640E006F000E016F000E026F000E036FD2 :10508000FDEC30F0050E046F000E056F000E066F8C :10509000000E076F2EEC31F000C104F101C105F1E3 :1050A00002C106F103C107F112EC32F030C000F189 :1050B000FDEC30F000C131F031C0E8FF050F305C8D :1050C00003E78A849EEF28F031C0E8FF0A0F305CC6 :1050D00001E68A949EEF28F000C124F101C125F178 :1050E00002C126F103C127F112EC32F018EC32F0C4 :1050F0001D501F0BE8CF00F10101640E046F000E7C :10510000056F000E066F000E076F0EEC31F024C124 :1051100004F125C105F126C106F127C107F1FDEC17 :1051200030F003BF02D08A9401D08A8424C100F1F8 :1051300025C101F126C102F127C103F115EF2BF0C2 :1051400000C124F101C125F102C126F103C127F1FB :1051500010AE4DD0109E00C108F101C109F102C18D :105160000AF103C10BF19BEC31F030C1E2F131C126 :10517000E3F132C1E4F133C1E5F108C100F109C145 :1051800001F10AC102F10BC103F101016C0E046FC0 :10519000070E056F000E066F000E076FFDEC30F076 :1051A00003BF04D00101550EE66F1CD008C100F109 :1051B00009C101F10AC102F10BC103F10101A40E01 :1051C000046F060E056F000E066F000E076FFDECF4 :1051D00030F003BF04D001017F0EE66F03D0010160 :1051E000FF0EE66F1F8E11AED9EF2AF0119E24C17B :1051F00000F125C101F126C102F127C103F111A07F :1052000005D011A203D00FB0D9EF2AF010A410EFEF :1052100029F00401750E826F96EC0EF015EF29F05F :105220000401720E826F96EC0EF004012C0E826F58 :1052300096EC0EF09BEC31F0296724EF29F0040185 :10524000200E826F27EF29F004012D0E826F96EC5D :105250000EF030C182F40401300E822796EC0EF07D :1052600031C182F40401300E822796EC0EF0040165 :105270002E0E826F96EC0EF032C182F40401300ED5 :10528000822796EC0EF033C182F40401300E82279F :1052900096EC0EF004016D0E826F96EC0EF0040198 :1052A0002C0E826F96EC0EF04FC100F150C101F14F :1052B00051C102F152C103F101019BEC31F05EECEE :1052C0002FF00401480E826F96EC0EF004017A0E66 :1052D000826F96EC0EF004012C0E826F96EC0EF0AD :1052E00066C100F167C101F168C102F169C103F152 :1052F00001019BEC31F05EEC2FF00401630E826F34 :1053000096EC0EF004012C0E826F96EC0EF066C146 :1053100000F167C101F168C102F169C103F1010146 :105320000A0E046F000E056F000E066F000E076F69 :105330000EEC31F0000E046F120E056F000E066FBA :10534000000E076F2EEC31F09BEC31F02AC182F495 :105350000401300E822796EC0EF02BC182F404017A :10536000300E822796EC0EF02CC182F40401300E30 :10537000822796EC0EF02DC182F40401300E8227B4 :1053800096EC0EF02EC182F40401300E822796ECCA :105390000EF02FC182F40401300E822796EC0EF03D :1053A00030C182F40401300E822796EC0EF0040125 :1053B0002E0E826F96EC0EF031C182F40401300E95 :1053C000822796EC0EF032C182F40401300E82275F :1053D00096EC0EF033C182F40401300E822796EC75 :1053E0000EF00401730E826F96EC0EF004012C0E89 :1053F000826F96EC0EF012EC32F059C100F15AC1F6 :1054000001F13FEC2CF013A255EF2AF004012C0E11 :10541000826F96EC0EF086C166F187C167F188C194 :1054200068F189C169F1ECEC22F00101000E046F12 :10543000000E056F010E066F000E076F2EEC31F0A7 :105440009BEC31F029672AEF2AF00401200E826FCD :105450002DEF2AF004012D0E826F96EC0EF030C174 :1054600082F40401300E822796EC0EF031C182F4F2 :105470000401300E822796EC0EF004012E0E826F8E :1054800096EC0EF032C182F40401300E822796ECC5 :105490000EF033C182F40401300E822796EC0EF038 :1054A00004016D0E826F96EC0EF003018351460AE3 :1054B00001E007D004012C0E826F96EC0EF0D4ECC4 :1054C00024F013A488EF2AF004012C0E826F96ECCE :1054D0000EF013AC76EF2AF00401500E826F96ECBA :1054E0000EF0139C1398139A88EF2AF013AE83EFF3 :1054F0002AF00401460E826F96EC0EF0139E13986C :10550000139A88EF2AF00401530E826F96EC0EF086 :1055100037B09FEF2AF004012C0E826F96EC0EF04C :105520008BB09AEF2AF00401440E826F96EC0EF0D5 :105530009FEF2AF00401530E826F96EC0EF00FB22B :10554000A5EF2AF00FA0D7EF2AF004012C0E826FEE :1055500096EC0EF0200EF86EF76AF66A0401090068 :10556000F5CF82F496EC0EF00900F5CF82F496ECBC :105570000EF00900F5CF82F496EC0EF00900F5CF9D :1055800082F496EC0EF00900F5CF82F496EC0EF062 :105590000900F5CF82F496EC0EF00900F5CF82F405 :1055A00096EC0EF00900F5CF82F496EC0EF0A0EC2C :1055B0000EF00F90109E129815EF2BF00401630E61 :1055C000826F96EC0EF004012C0E826F96EC0EF0BA :1055D0001BEC2BF004012C0E826F96EC0EF08EEC7F :1055E0002BF004012C0E826F96EC0EF00AEC2CF0DE :1055F00004012C0E826F96EC0EF00101F80E006F84 :10560000CD0E016F660E026F030E036F30EC2BF0B0 :1056100004012C0E826F96EC0EF020EC2CF0A0EC26 :105620000EF015EF2BF0A0EC0EF00301C26B07900B :10563000109224EF2EF0D8900E0E64EC0BF0E8CF11 :1056400000F10F0E64EC0BF0E8CF01F1100E64ECEA :105650000BF0E8CF02F1110E64EC0BF0E8CF03F190 :105660000101000E046F000E056F010E066F000EA3 :10567000076F2EEC31F09BEC31F02AC182F404016B :10568000300E822796EC0EF02BC182F40401300E0E :10569000822796EC0EF02CC182F40401300E822792 :1056A00096EC0EF02DC182F40401300E822796ECA8 :1056B0000EF02EC182F40401300E822796EC0EF01B :1056C0002FC182F40401300E822796EC0EF030C117 :1056D00082F40401300E822796EC0EF031C182F480 :1056E0000401300E822796EC0EF004012E0E826F1C :1056F00096EC0EF032C182F40401300E822796EC53 :105700000EF033C182F40401300E822796EC0EF0C5 :1057100004016D0E826F96EC0EF01200120E64EC16 :105720000BF0E8CF00F1130E64EC0BF0E8CF01F1C1 :10573000140E64EC0BF0E8CF02F1150E64EC0BF0E4 :10574000E8CF03F101010A0E046F000E056F000E91 :10575000066F000E076F0EEC31F0000E046F120E94 :10576000056F000E066F000E076F2EEC31F09BECFC :1057700031F02AC182F40401300E822796EC0EF03B :105780002BC182F40401300E822796EC0EF02CC15E :1057900082F40401300E822796EC0EF02DC182F4C3 :1057A0000401300E822796EC0EF02EC182F4040123 :1057B000300E822796EC0EF02FC182F40401300ED9 :1057C000822796EC0EF030C182F40401300E82275D :1057D00096EC0EF004012E0E826F96EC0EF031C1A5 :1057E00082F40401300E822796EC0EF032C182F46E :1057F0000401300E822796EC0EF033C182F40401CE :10580000300E822796EC0EF00401730E826F96EC38 :105810000EF012000A0E64EC0BF0E8CF00F10B0E54 :1058200064EC0BF0E8CF01F10C0E64EC0BF0E8CF68 :1058300002F10D0E64EC0BF0E8CF03F13FEF2CF01A :10584000060E64EC0BF0E8CF00F1070E64EC0BF0F1 :10585000E8CF01F1080E64EC0BF0E8CF02F1090E7D :1058600064EC0BF0E8CF03F13FEF2CF0010112ECF8 :1058700032F0078457C100F158C101F107940101CA :10588000E80E046F800E056F000E066F000E076FA6 :105890000EEC31F0000E046F040E056F000E066F63 :1058A000000E076F2EEC31F0880E046F130E056F9B :1058B000000E066F000E076FFDEC30F00A0E046F4D :1058C000000E056F000E066F000E076F2EEC31F014 :1058D0009BEC31F00101296773EF2CF00401200EDD :1058E000826F76EF2CF004012D0E826F96EC0EF095 :1058F00030C182F40401300E822796EC0EF031C1E3 :1059000082F40401300E822796EC0EF032C182F44C :105910000401300E822796EC0EF004012E0E826FE9 :1059200096EC0EF033C182F40401300E822796EC1F :105930000EF00401430E826F96EC0EF0120087C346 :105940002AF188C32BF189C32CF18AC32DF18BC3B3 :105950002EF18CC32FF18DC330F18EC331F190C382 :1059600032F191C333F10101296B60EC32F0D7ECD5 :1059700031F00101000E046F000E056F010E066F7D :10598000000E076F0EEC31F00E0E0C6E00C10BF026 :105990004DEC0BF00F0E0C6E01C10BF04DEC0BF04B :1059A000100E0C6E02C10BF04DEC0BF0110E0C6ED4 :1059B00003C10BF04DEC0BF004017A0E826F96ECF4 :1059C0000EF004012C0E826F96EC0EF00401350EE1 :1059D000826F96EC0EF004012C0E826F96EC0EF0A6 :1059E0001BEC2BF0C2EF22F087C32AF188C32BF106 :1059F00089C32CF18AC32DF18BC32EF18CC32FF1F7 :105A00008DC330F18EC331F190C332F191C333F1C4 :105A10000101296B60EC32F0D7EC31F0880E046F95 :105A2000130E056F000E066F000E076F02EC31F0CB :105A3000000E046F040E056F000E066F000E076F58 :105A40000EEC31F00101E80E046F800E056F000EC0 :105A5000066F000E076F2EEC31F00A0E0C6E00C1BF :105A60000BF04DEC0BF00B0E0C6E01C10BF04DEC7E :105A70000BF00C0E0C6E02C10BF04DEC0BF00D0E8A :105A80000C6E03C10BF04DEC0BF004017A0E826F2B :105A900096EC0EF004012C0E826F96EC0EF00401D1 :105AA000360E826F96EC0EF004012C0E826F96EC8F :105AB0000EF00AEC2CF0C2EF22F087C32AF188C363 :105AC0002BF189C32CF18AC32DF18BC32EF18CC32A :105AD0002FF18DC330F18FC331F190C332F191C3F7 :105AE00033F1010160EC32F0D7EC31F0000E046FBD :105AF000120E056F000E066F000E076F0EEC31F0F0 :105B000001010A0E046F000E056F000E066F000EF5 :105B1000076F2EEC31F0120E0C6E00C10BF04DEC45 :105B20000BF0130E0C6E01C10BF04DEC0BF0140ECC :105B30000C6E02C10BF04DEC0BF0150E0C6E03C198 :105B40000BF04DEC0BF004017A0E826F96EC0EF028 :105B500004012C0E826F96EC0EF00401370E826F5A :105B600096EC0EF004012C0E826F96EC0EF08EEC8B :105B70002BF0C2EF22F087C32AF188C32BF189C32F :105B80002CF18AC32DF18BC32EF18CC32FF18DC361 :105B900030F18EC331F190C332F191C333F1010181 :105BA000296B60EC32F0D7EC31F0880E046F130EE5 :105BB000056F000E066F000E076F02EC31F0000E4D :105BC000046F040E056F000E066F000E076F0EECDB :105BD00031F00101E80E046F800E056F000E066FB4 :105BE000000E076F2EEC31F0060E0C6E00C10BF0AC :105BF0004DEC0BF0070E0C6E01C10BF04DEC0BF0F1 :105C0000080E0C6E02C10BF04DEC0BF0090E0C6E81 :105C100003C10BF04DEC0BF004017A0E826F96EC91 :105C20000EF004012C0E826F96EC0EF00401380E7B :105C3000826F96EC0EF004012C0E826F96EC0EF043 :105C400020EC2CF0C2EF22F007A897EF2EF0010114 :105C5000800E006F1A0E016F060E026F000E036FAA :105C60004BC104F14CC105F14DC106F14EC107F124 :105C7000FDEC30F003BFDDEF2EF058EC2FF04BC100 :105C800000F14CC101F14DC102F14EC103F1078297 :105C90000AEC30F018C104F119C105F11AC106F17E :105CA0001BC107F1F80E006FCD0E016F660E026F7B :105CB000030E036FFDEC30F00E0E0C6E00C10BF006 :105CC0004DEC0BF00F0E0C6E01C10BF04DEC0BF018 :105CD000100E0C6E02C10BF04DEC0BF0110E0C6EA1 :105CE00003C10BF04DEC0BF00784010112EC32F014 :105CF00057C100F158C101F107940A0E0C6E00C1A2 :105D00000BF04DEC0BF00B0E0C6E01C10BF04DECDB :105D10000BF00C0E0C6E02C10BF04DEC0BF00D0EE7 :105D20000C6E03C10BF04DEC0BF0DDEF2EF007AA6B :105D3000DDEF2EF00784010112EC32F057C100F1C3 :105D400058C101F10794060E0C6E00C10BF04DEC2A :105D50000BF0070E0C6E01C10BF04DEC0BF0080EB2 :105D60000C6E02C10BF04DEC0BF0090E0C6E03C172 :105D70000BF04DEC0BF0078462C100F163C101F13F :105D800064C102F165C103F10794120E0C6E00C1EB :105D90000BF04DEC0BF0130E0C6E01C10BF04DEC43 :105DA0000BF0140E0C6E02C10BF04DEC0BF0150E47 :105DB0000C6E03C10BF04DEC0BF00798079A040131 :105DC000805181197F0B0DE09EA8FED714EE00F0E4 :105DD00081517F0BE126E750812B0F01AD6EDFEF84 :105DE0002EF005012F51000AD8B420EF2FF081BA10 :105DF00005EF2FF015B220EF2FF005012F51010A0A :105E0000D8B41EEF2FF017EF2FF005012F51000A25 :105E1000D8B4D7EF39F005012F51010AD8B41EEFDD :105E20002FF000011650050AD8B4D7EF39F081B829 :105E300020EF2FF05BEC33F059EC34F070EC39F0DC :105E4000C4EF0DF018C100F119C101F11AC102F13E :105E50001BC103F1000E046F000E056F010E066FEB :105E6000000E076F2EEC31F029A14DEF2FF02051DD :105E7000D8B44DEF2FF018C100F119C101F11AC1CA :105E800002F11BC103F1000E046F000E056F0A0E34 :105E9000066F000E076F2EEC31F012000101045165 :105EA0000013055101130651021307510313120089 :105EB0000101186B196B1A6B1B6B12002AC182F45B :105EC0000401300E822796EC0EF02BC182F40401FF :105ED000300E822796EC0EF02CC182F40401300EB5 :105EE000822796EC0EF02DC182F40401300E822739 :105EF00096EC0EF02EC182F40401300E822796EC4F :105F00000EF02FC182F40401300E822796EC0EF0C1 :105F100030C182F40401300E822796EC0EF031C1BC :105F200082F40401300E822796EC0EF032C182F426 :105F30000401300E822796EC0EF033C182F4040186 :105F4000300E822796EC0EF012002FC182F404016D :105F5000300E822796EC0EF030C182F40401300E30 :105F6000822796EC0EF031C182F40401300E8227B4 :105F700096EC0EF032C182F40401300E822796ECCA :105F80000EF033C182F40401300E822796EC0EF03D :105F90001200060E216E060E226E060E236E212EB4 :105FA000CFEF2FF0222ECFEF2FF0232ECFEF2FF0B9 :105FB0008B84020E216E020E226E020E236E212EA3 :105FC000DFEF2FF0222EDFEF2FF0232EDFEF2FF069 :105FD0008B941200FF0E226E22C023F0030E216E5E :105FE0008B84212EF0EF2FF0030E216E232EF0EF85 :105FF0002FF08B9422C023F0030E216E212EFEEF92 :106000002FF0030E216E233EFEEF2FF0222EECEF39 :106010002FF012000101005305E1015303E1025387 :1060200001E1002BCDEC30F012EC32F03951006F71 :106030003A51016F420E046F4B0E056F000E066F52 :10604000000E076F0EEC31F000C104F101C105F143 :1060500002C106F103C107F118C100F119C101F134 :106060001AC102F11BC103F107B23BEF30F002ECA1 :1060700031F03DEF30F0FDEC30F000C118F101C11E :1060800019F102C11AF103C11BF1120012EC32F036 :1060900059C100F15AC101F1060E64EC0BF0E8CFD2 :1060A00004F1070E64EC0BF0E8CF05F1080E64EC88 :1060B0000BF0E8CF06F1090E64EC0BF0E8CF07F126 :1060C000FDEC30F000C124F101C125F102C126F13F :1060D00003C127F1290E046F000E056F000E066F35 :1060E000000E076F0EEC31F0EE0E046F430E056FDD :1060F000000E066F000E076F02EC31F024C104F1B0 :1061000025C105F126C106F127C107F10EEC31F0DA :1061100000C11CF101C11DF102C11EF103C11FF13B :10612000120E64EC0BF0E8CF04F1130E64EC0BF0EC :10613000E8CF05F1140E64EC0BF0E8CF06F1150E74 :1061400064EC0BF0E8CF07F10D0E006F000E016F4D :10615000000E026F000E036F0EEC31F0180E046F8C :10616000000E056F000E066F000E076F2EEC31F06B :106170001CC104F11DC105F11EC106F11FC107F1CB :1061800002EC31F06A0E046F2A0E056F000E066FE6 :10619000000E076FFDEC30F01200BF0EFA6E200EFD :1061A0003A6F396BD8900037013702370337D8B0D0 :1061B000DEEF30F03A2FD3EF30F039073A070353D0 :1061C000D8B412000331070B80093F6F03390F0B5E :1061D000010F396F80EC5FF0406F390580EC5FF0A4 :1061E000405D405F396B3F33D8B0392739333FA921 :1061F000F3EF30F0405139271200010137EC32F053 :10620000D8B01200010103510719346FFAEC31F0D4 :10621000D8900751031934AF800F12000101346B7D :106220001EEC32F0D8A034EC32F0D8B0120009ECF9 :1062300032F012EC32F01F0E366F4AEC32F00B35B2 :10624000D8B0FAEC31F0D8A00335D8B01200362F10 :106250001DEF31F034B121EC32F012000101346B4A :1062600004510511061107110008D8A01EEC32F0E8 :10627000D8A034EC32F0D8B01200086B096B0A6B6E :106280000B6B4AEC32F01F0E366F4AEC32F00751BE :106290000B5DD8A458EF31F006510A5DD8A458EF31 :1062A00031F00551095DD8A458EF31F00451085D73 :1062B000D8A06BEF31F00451085F0551D8A0053D1F :1062C000095F0651D8A0063D0A5F0751D8A0073DD7 :1062D0000B5FD8900081362F45EF31F034B121ECBF :1062E00032F0346B1EEC32F0D8904EEC32F00751A5 :1062F0000B5DD8A488EF31F006510A5DD8A488EF71 :1063000031F00551095DD8A488EF31F00451085DE2 :10631000D8A097EF31F0003F97EF31F0013F97EFB2 :1063200031F0023F97EF31F0032BD8B4120034B1B3 :1063300021EC32F012000101346B1EEC32F0D8B0C7 :10634000120053EC32F0200E366F0037013702375F :10635000033711EE33F00A0E376FE7360A0EE75CAB :10636000D8B0E76EE552372FADEF31F0362FA5EFFD :1063700031F034B12981D890120053EC32F0200E64 :10638000366F003701370237033711EE33F00A0E4C :10639000376FE7360A0EE75CD8B0E76EE552372F65 :1063A000C9EF31F0362FC1EF31F0D8901200010162 :1063B0000A0E346F200E366F11EE29F03451376F0C :1063C0000A0ED890E652D8B0E726E732372FE2EF30 :1063D00031F00333023301330033362FDCEF31F079 :1063E000E750FF0FD8A00335D8B0120029B121EC37 :1063F00032F01200045100270551D8B0053D0127A5 :106400000651D8B0063D02270751D8B0073D0327F3 :1064100012000051086F0151096F02510A6F0351B8 :106420000B6F12000101006B016B026B036B12001A :106430000101046B056B066B076B12000335D8A0D6 :1064400012000351800B001F011F021F031F003F9A :1064500031EF32F0013F31EF32F0023F31EF32F0F5 :10646000032B342B032512000735D8A01200075147 :10647000800B041F051F061F071F043F47EF32F064 :10648000053F47EF32F0063F47EF32F0072B342B42 :10649000072512000037013702370337083709375D :1064A0000A370B3712000101296B2A6B2B6B2C6BFF :1064B0002D6B2E6B2F6B306B316B326B336B12008D :1064C00001012A510F0B2A6F2B510F0B2B6F2C51EF :1064D0000F0B2C6F2D510F0B2D6F2E510F0B2E6F9D :1064E0002F510F0B2F6F30510F0B306F31510F0B9E :1064F000316F32510F0B326F33510F0B336F12006C :1065000000C124F101C125F102C126F103C127F127 :1065100004C100F105C101F106C102F107C103F197 :1065200024C104F125C105F126C106F127C107F1F7 :10653000120010A806D08994000EC76E220EC66EF7 :1065400005D08984000EC76E220EC66E050EE82E99 :10655000FED7120010A802D0898401D08994050EBC :10656000E82EFED7120099EC32F09E96C69E000EE1 :10657000C96EFF0E9EB602D0E82EFCD79E96C69E30 :10658000000EC96EFF0E9EB602D0E82EFCD7C9CF12 :10659000AFF59E96C69E000EC96EFF0E9EB602D047 :1065A000E82EFCD7C9CFB0F59E96C69E000EC96EE8 :1065B000FF0E9EB602D0E82EFCD7C9CFB1F59E964D :1065C000C69E000EC96EFF0E9EB602D0E82EFCD706 :1065D000C9CFB2F59E96C69E000EC96EFF0E9EB63E :1065E00002D0E82EFCD7C9CFB3F59E96C69E000E0A :1065F000C96EFF0E9EB602D0E82EFCD7C9CFB4F507 :106600009E96C69E000EC96EFF0E9EB602D0E82E64 :10661000FCD7C9CFB5F5AAEC32F0120099EC32F0F4 :106620009E96C69E800EC96EFF0E9EB602D0E82EC4 :10663000FCD79E96C69EAFC5C9FFFF0E9EB602D080 :10664000E82EFCD79E96C69EB0C5C9FFFF0E9EB62B :1066500002D0E82EFCD79E96C69EB1C5C9FFFF0E9C :106660009EB602D0E82EFCD79E96C69EB2C5C9FF44 :10667000FF0E9EB602D0E82EFCD79E96C69EB3C5EE :10668000C9FFFF0E9EB602D0E82EFCD79E96C69E8E :10669000B4C5C9FFFF0E9EB602D0E82EFCD79E9669 :1066A000C69EB5C5C9FFFF0E9EB602D0E82EFCD728 :1066B000AAEC32F0120099EC32F09E96C69E070EBC :1066C000C96EFF0E9EB602D0E82EFCD79E96C69EDF :1066D000000EC96EFF0E9EB602D0E82EFCD7C9CFC1 :1066E000AFF59E96C69E000EC96EFF0E9EB602D0F6 :1066F000E82EFCD7C9CFB0F59E96C69E000EC96E97 :10670000FF0E9EB602D0E82EFCD7C9CFB1F59E96FB :10671000C69E000EC96EFF0E9EB602D0E82EFCD7B4 :10672000C9CFB2F5AAEC32F099EC32F09E96C69E33 :1067300025C0C9FFFF0E9EB602D0E82EFCD79E965C :10674000C69E000EC96EFF0E9EB602D0E82EFCD784 :10675000C9CFB6F5AAEC32F0120099EC32F09E9651 :10676000C69E870EC96EFF0E9EB602D0E82EFCD7DD :106770009E96C69EAFC5C9FFFF0E9EB602D0E82EFC :10678000FCD79E96C69EB0C5C9FFFF0E9EB602D02E :10679000E82EFCD79E96C69EB1C5C9FFFF0E9EB6D9 :1067A00002D0E82EFCD79E96C69EB2C5C9FFFF0E4A :1067B0009EB602D0E82EFCD7AAEC32F099EC32F06B :1067C0009E96C69E26C0C9FFFF0E9EB602D0E82E3A :1067D000FCD79E96C69EB6C5C9FFFF0E9EB602D0D8 :1067E000E82EFCD7AAEC32F0120099EC32F09E961B :1067F000C69E870EC96EFF0E9EB602D0E82EFCD74D :106800009E96C69E000EC96EFF0E9EB602D0E82E62 :10681000FCD79E96C69E800EC96EFF0E9EB602D015 :10682000E82EFCD79E96C69E800EC96EFF0E9EB6C1 :1068300002D0E82EFCD79E96C69E800EC96EFF0E33 :106840009EB602D0E82EFCD7AAEC32F0120099ECEA :1068500032F09E96C69E870EC96EFF0E9EB602D07F :10686000E82EFCD79E96C69E000EC96EFF0E9EB601 :1068700002D0E82EFCD79E96C69E000EC96EFF0E73 :106880009EB602D0E82EFCD79E96C69E800EC96E9C :10689000FF0E9EB602D0E82EFCD79E96C69E800EB6 :1068A000C96EFF0E9EB602D0E82EFCD7AAEC32F0DD :1068B000120010A817D099EC32F09E96C69E8F0E4B :1068C000C96EFF0E9EB602D0E82EFCD79E96C69EDD :1068D000000EC96EFF0E9EB602D0E82EFCD7AAECC1 :1068E00032F012005BEC33F0120010A82DD099ECBE :1068F00032F09E96C69E26C0C9FFFF0E9EB602D0FD :10690000E82EFCD79E96C69E450EC96EFF0E9EB61B :1069100002D0E82EFCD7AAEC32F099EC32F09E9629 :10692000C69E8F0EC96EFF0E9EB602D0E82EFCD713 :106930009E96C69E000EC96EFF0E9EB602D0E82E31 :10694000FCD7AAEC32F0120099EC32F09E96C69E6B :1069500026C0C9FFFF0E9EB602D0E82EFCD79E9639 :10696000C69E010EC96EFF0E9EB602D0E82EFCD761 :10697000AAEC32F099EC32F09E96C69E910EC96E4A :10698000FF0E9EB602D0E82EFCD79E96C69EA50EA0 :10699000C96EFF0E9EB602D0E82EFCD7AAEC32F0EC :1069A000120099EC32F09E96C69E26C0C9FFFF0EDB :1069B0009EB602D0E82EFCD79E96C69E810EC96E6A :1069C000FF0E9EB602D0E82EFCD7AAEC32F01200E1 :1069D00099EC32F09E96C69E26C0C9FFFF0E9EB669 :1069E00002D0E82EFCD79E96C69E010EC96EFF0E01 :1069F0009EB602D0E82EFCD7AAEC32F0120099EC39 :106A000032F09E96C69E910EC96EFF0E9EB602D0C3 :106A1000E82EFCD79E96C69EA50EC96EFF0E9EB6AA :106A200002D0E82EFCD7AAEC32F0120099EC32F03A :106A30009E96C69E910EC96EFF0E9EB602D0E82E9F :106A4000FCD79E96C69E000EC96EFF0E9EB602D063 :106A5000E82EFCD7AAEC32F012000501256B266B5C :106A6000276B286B899A400EC76E200EC66E9E96C5 :106A7000C69E030EC96EFF0E9EB602D0E82EFCD74E :106A80009E96C69E27C5C9FFFF0E9EB602D0E82E71 :106A9000FCD79E96C69E26C5C9FFFF0E9EB602D0A5 :106AA000E82EFCD79E96C69E25C5C9FFFF0E9EB652 :106AB00002D0E82EFCD79E96C69EC952FF0E9EB607 :106AC00002D0E82EFCD7898A0F01C950FF0A01E1E4 :106AD000120005012E51130A05E005012E51170A77 :106AE0000CE012000501E00E256FFF0E266F0F0E61 :106AF000276F000E286F86EF35F00501E00E256F39 :106B0000FF0E266FFF0E276F000E286F899A400E2A :106B1000C76E200EC66E9E96C69E030EC96EFF0EF1 :106B20009EB602D0E82EFCD79E96C69E27C5C9FF0A :106B3000FF0E9EB602D0E82EFCD79E96C69E26C5B6 :106B4000C9FFFF0E9EB602D0E82EFCD79E96C69EC9 :106B500025C5C9FFFF0E9EB602D0E82EFCD79E9633 :106B6000C69EC952FF0E9EB602D0E82EFCD7898A77 :106B70000F01C950FF0A1DE005012E51130A05E05F :106B800005012E51170A0BE012000501000E256FBA :106B9000000E266F100E276F000E286F12000501E1 :106BA000000E256F000E266F000E276F010E286F56 :106BB00012000501256B266B276B286B05012E51F2 :106BC000130A05E005012E51170A0CE01200050119 :106BD000000E216F000E226F080E236F000E246F2F :106BE000FBEF35F00501000E216F000E226F800EC5 :106BF000236F000E246F21C500F122C501F123C5CA :106C000002F124C503F125C504F126C505F127C508 :106C100006F128C507F14EEC2FF000C125F501C1A2 :106C200026F502C127F503C128F5899A400EC76EE3 :106C3000200EC66E9E96C69E030EC96EFF0E9EB6B1 :106C400002D0E82EFCD79E96C69E27C5C9FFFF0E30 :106C50009EB602D0E82EFCD79E96C69E26C5C9FFDA :106C6000FF0E9EB602D0E82EFCD79E96C69E25C586 :106C7000C9FFFF0E9EB602D0E82EFCD79E96C69E98 :106C8000C952FF0E9EB602D0E82EFCD7898AC950A1 :106C9000FF0A08E104C125F505C126F506C127F55F :106CA00007C128F5D890050124332333223321333B :106CB0002151E00B216F0501216766EF36F0226755 :106CC00066EF36F0236766EF36F02467FBEF35F0AA :106CD0000501200E2527E86A2623E86A2723E86AAB :106CE00028231200E86A05012E51130A06E0050167 :106CF0002E51170A0BE0020E120005012851000A5E :106D000003E12751F00B07E0010E120005012851A5 :106D1000000A01E0010E120029C500F12AC501F1A7 :106D20002BC502F12CC503F125C504F126C505F1DB :106D300027C506F128C507F1FDEC30F003BF1200AE :106D400072EC36F0D8A404EF37F0899A400EC76E83 :106D5000200EC66E9E96C69E060EC96EFF0E9EB68D :106D600002D0E82EFCD7898A899A9E96C69E020E8A :106D7000C96EFF0E9EB602D0E82EFCD79E96C69E28 :106D800027C5C9FFFF0E9EB602D0E82EFCD79E96FF :106D9000C69E26C5C9FFFF0E9EB602D0E82EFCD7C0 :106DA0009E96C69E25C5C9FFFF0E9EB602D0E82E50 :106DB000FCD79E96C69E000EC96EFF0E9EB602D0F0 :106DC000E82EFCD7898A899A9E96C69E050EC96EC2 :106DD000FF0E9EB602D0E82EFCD79E96C69EC952E4 :106DE000FF0E9EB602D0E82EFCD7C9B0EDEF36F00C :106DF000898A0501200E2527E86A2623E86A2723C9 :106E0000E86A28238CEF36F01200899A400EC76E8C :106E1000200EC66E9E96C69E060EC96EFF0E9EB6CC :106E200002D0E82EFCD7898A899A9E96C69EC70E04 :106E3000C96EFF0E9EB602D0E82EFCD7898A0501E6 :106E4000256B266B276B286B1200899A400EC76E44 :106E5000200EC66E9E96C69E050EC96EFF0E9EB68D :106E600002D0E82EFCD79E96C69EC952FF0E9EB653 :106E700002D0E82EFCD7C9CF37F5898A1200899A4B :106E8000400EC76E200EC66E9E96C69EB90EC96E87 :106E9000FF0E9EB602D0E82EFCD7898A1200899A8E :106EA000400EC76E200EC66E9E96C69EAB0EC96E75 :106EB000FF0E9EB602D0E82EFCD7898AFF0EE82E80 :106EC000FED7120072EC36F0D8A41200899A400E58 :106ED000C76E200EC66E9E96C69E030EC96EFF0E2E :106EE0009EB602D0E82EFCD79E96C69E27C5C9FF47 :106EF000FF0E9EB602D0E82EFCD79E96C69E26C5F3 :106F0000C9FFFF0E9EB602D0E82EFCD79E96C69E05 :106F100025C5C9FFFF0E9EB602D0E82EFCD79E966F :106F2000C69EC952FF0E9EB602D0E82EFCD7898AB3 :106F30000F01C950FF0AD8A4E1EF38F00501FE0E99 :106F4000376F0501FF0E536FFF0E546FFF0E556F25 :106F5000FF0E566F15A637991586B3EC32F0AFC504 :106F600038F5B0C539F5B1C53AF5B2C53BF5B3C58D :106F70003CF5B4C53DF5B5C53EF50784BAC166F12B :106F8000BBC167F1BCC168F1BDC169F14BC14FF133 :106F90004CC150F14DC151F14EC152F157C159F19F :106FA00058C15AF100011650010AD8B4E6EF37F083 :106FB00000011650020AD8B40BEF38F00001165049 :106FC000040AD8B430EF38F0E1EF38F00501476B30 :106FD000486B496B4A6B05014B6B4C6B4D6B4E6BB1 :106FE00005014F6B506B516B526B8BA0379BECECD8 :106FF00022F000C1DAF101C1DBF102C1DCF103C111 :10700000DDF100C13FF501C140F502C141F503C109 :1070100042F54FEF38F00501476B486B496B4A6BFF :1070200005014B6B4C6B4D6B4E6B05014F6B506B01 :10703000516B526BECEC22F000C1DAF101C1DBF1D3 :1070400002C1DCF103C1DDF1E9EC23F000C147F539 :1070500001C148F502C149F503C14AF5E1EF38F035 :10706000379BDAC13FF5DBC140F5DCC141F5DDC13D :1070700042F5ECEC22F000C14BF501C14CF502C128 :107080004DF503C14EF5E9EC23F000C14FF501C108 :1070900050F502C151F503C152F54FEF38F005012B :1070A00061675AEF38F062675AEF38F063675AEF5A :1070B00038F064675EEF38F073EF38F0DAC100F152 :1070C000DBC101F1DCC102F1DDC103F161C504F1F5 :1070D00062C505F163C506F164C507F1FDEC30F04A :1070E00003BFE1EF38F059C143F55AC144F5B9C5C2 :1070F00045F50501210E326F899A400EC76E200EAC :10710000C66E9E96C69E060EC96EFF0E9EB602D035 :10711000E82EFCD7898A899A9E96C69E020EC96E71 :10712000FF0E9EB602D0E82EFCD79E96C69E27C5BF :10713000C9FFFF0E9EB602D0E82EFCD79E96C69ED3 :1071400026C5C9FFFF0E9EB602D0E82EFCD79E963C :10715000C69E25C5C9FFFF0E9EB602D0E82EFCD7FD :1071600025EE37F0322F02D0C1EF38F09E96C69E42 :10717000DECFC9FFFF0E9EB602D0E82EFCD7B2EFDD :1071800038F0898A899A9E96C69E050EC96EFF0EB2 :107190009EB602D0E82EFCD79E96C69EC952FF0E20 :1071A0009EB602D0E82EFCD7C9B0CCEF38F0898A61 :1071B0000501200E2527E86A2623E86A2723E86AC6 :1071C000282315900794120021C500F122C501F172 :1071D00023C502F124C503F1899A400EC76E200E23 :1071E000C66E9E96C69E0B0EC96EFF0E9EB602D050 :1071F000E82EFCD79E96C69E02C1C9FFFF0E9EB622 :1072000002D0E82EFCD79E96C69E01C1C9FFFF0E94 :107210009EB602D0E82EFCD79E96C69E00C1C9FF3E :10722000FF0E9EB602D0E82EFCD79E96C69EC9528F :10723000FF0E9EB602D0E82EFCD725EE37F00501F2 :10724000200E326F9E96C69EC952FF0E9EB602D089 :10725000E82EFCD7C9CFDEFF322F22EF39F0898A22 :107260001200899A400EC76E200EC66E9E96C69E6C :10727000900EC96EFF0E9EB602D0E82EFCD79E96E9 :10728000C69E000EC96EFF0E9EB602D0E82EFCD739 :107290009E96C69E000EC96EFF0E9EB602D0E82EC8 :1072A000FCD79E96C69E000EC96EFF0E9EB602D0FB :1072B000E82EFCD79E96C69EC952FF0E9EB602D0FF :1072C000E82EFCD7C9CF2DF59E96C69EC952FF0E5B :1072D0009EB602D0E82EFCD7C9CF2EF5898A1200BF :1072E000B3EC32F005012F51010A5FE005012F5187 :1072F000020A16E005012F51030A19E005012F517A :10730000040A24E005012F51050A2BE005012F5145 :10731000060A39E005012F51070A3FE0D5EF39F0A1 :10732000602FD3EF39F05FC560F5D5EF39F0B0C508 :1073300000F101010F0E001701010051000A35E0B4 :1073400001010051050A31E0D3EF39F0B0C500F179 :1073500001010F0E001701010051000A26E0D3EFD2 :1073600039F00501B051000A20E00501B051150ABD :107370001CE00501B051300A18E00501B051450A82 :1073800014E0D3EF39F00501B051000A0EE0050119 :10739000B051300A0AE0D3EF39F00501B051000ACC :1073A00004E0D3EF39F015901200158012008B9095 :1073B000C9EC2FF0B9C5E8FFD70802E3C9EC2FF0FC :1073C000B9C5E8FFC80802E3C9EC2FF0B9C5E8FF6A :1073D000B90802E3C9EC2FF0B9C5E8FFAA0802E337 :1073E000C9EC2FF0B9C5E8FF9B0802E3C9EC2FF008 :1073F0003FEC37F0F29CF29E8B94C69AC290948236 :10740000948C720ED36ED3A4FED789968A909390F3 :10741000F29AF2949D909E909D929E92F298F29292 :1074200059EC34F0FF0EE8CF00F0E82EFED7002E26 :10743000FCD7F290F286815081A821EF3AF0F29EBB :107440000300700ED36EF296F29015840380EAEC7E :067450002FF09AEF0BF093 :10BF0000E844F926000C160C2B0C3F0C520C640C68 :10BF1000760C860C960CA50CB30CC10CCF0CDC0C6B :06BF2000E80CF40C000C1B :0200000400F00A :0100C800FE39 :00000001FF ./firmware/SQM-LR-4-5-58.hex0000644000175000017500000012042413334071736015201 0ustar anthonyanthony:020000040000FA :0408000038EF09F0D4 :1008100003B26EEF05F0F2B48CEF05F09EB094EFEA :1008200005F09EB29CEF05F0F2A81AEF04F0F2B2C8 :100830001CEF04F0E7EF08F0CD90F2929EA026EFB7 :1008400004F00101533F26EF04F0542BB2C1B6F17E :10085000B3C1B7F1B4C1B8F1B5C1B9F1AEC1B2F12C :10086000AFC1B3F1B0C1B4F1B1C1B5F1AAC1AEF13C :10087000ABC1AFF1ACC1B0F1ADC1B1F1A6C1AAF14C :10088000A7C1ABF1A8C1ACF1A9C1ADF1A2C1A6F15C :10089000A3C1A7F1A4C1A8F1A5C1A9F19EC1A2F16C :1008A0009FC1A3F1A0C1A4F1A1C1A5F19AC19EF17C :1008B0009BC19FF19CC1A0F19DC1A1F1CECF9AF146 :1008C000CFCF9BF153C19CF154C19DF1CF6ACE6A49 :1008D0000101536B546B9E90CD800FBC0F8E0FBAED :1008E00075EF04F00F8AE7EF08F013880F8C0FBE46 :1008F000B2EF04F09AC19EF19BC19FF19CC1A0F19F :100900009DC1A1F19EC1A2F19FC1A3F1A0C1A4F11B :10091000A1C1A5F1A2C1A6F1A3C1A7F1A4C1A8F1EB :10092000A5C1A9F1A6C1AAF1A7C1ABF1A8C1ACF1BB :10093000A9C1ADF1AAC1AEF1ABC1AFF1ACC1B0F18B :10094000ADC1B1F1AEC1B2F1AFC1B3F1B0C1B4F15B :10095000B1C1B5F1B2C1B6F1B3C1B7F1B4C1B8F12B :10096000B5C1B9F101015E6B5F6B606B616B9A5150 :100970005E279B515F239C5160239D5161239E51B3 :100980005E279F515F23A0516023A1516123A25193 :100990005E27A3515F23A4516023A5516123A65173 :1009A0005E27A7515F23A8516023A9516123AA5153 :1009B0005E27AB515F23AC516023AD516123AE5133 :1009C0005E27AF515F23B0516023B1516123B25113 :1009D0005E27B3515F23B4516023B5516123B651F3 :1009E0005E27B7515F23B8516023B9516123D89076 :1009F0000101613360335F335E33D89001016133AD :100A000060335F335E33D8900101613360335F330D :100A10005E3300C10CF101C10DF102C10EF103C141 :100A20000FF104C110F105C111F106C112F107C1A6 :100A300013F108C114F109C115F10AC116F10BC176 :100A400017F134C135F111B831EF05F00101620E33 :100A5000046F010E056F000E066F000E076F3AEF70 :100A600005F00101A70E046F020E056F000E066F60 :100A7000000E076F5EC100F15FC101F160C102F1BC :100A800061C103F1CAEC1FF003BF04D019BE02D04C :100A900019A0108C11A052EF05F010BA52EF05F01A :100AA0000F80108A0CC100F10DC101F10EC102F1DD :100AB0000FC103F110C104F111C105F112C106F11A :100AC00013C107F114C108F115C109F116C10AF1EA :100AD00017C10BF135C134F1E7EF08F00392ABB267 :100AE000AB98AB88030103EE00F080517F0BE92641 :100AF00004C0EFFF802B8151805D700BD8A48B82E6 :100B000000008051815D700BD8A48B9281518019B7 :100B1000D8B40790E7EF08F0F2940101453FE7EF02 :100B200008F0462BE7EF08F09E900101533FE7EFF6 :100B300008F0542BE7EF08F09E9211B811EF07F080 :100B40008BB4AAEF05F010ACAAEF05F08B84109CD3 :100B5000ABEF05F08B94C3CF55F1C4CF56F1C282F1 :100B600007B41AEF06F047C14BF148C14CF149C137 :100B70004DF14AC14EF15EC162F15FC163F160C1E6 :100B800064F161C165F113A8C8EF05F0138C1398E7 :100B90009AC1BAF19BC1BBF19CC1BCF19DC1BDF131 :100BA0009EC1BEF19FC1BFF1A0C1C0F1A1C1C1F101 :100BB000A2C1C2F1A3C1C3F1A4C1C4F1A5C1C5F1D1 :100BC000A6C1C6F1A7C1C7F1A8C1C8F1A9C1C9F1A1 :100BD000AAC1CAF1ABC1CBF1ACC1CCF1ADC1CDF171 :100BE000AEC1CEF1AFC1CFF1B0C1D0F1B1C1D1F141 :100BF000B2C1D2F1B3C1D3F1B4C1D4F1B5C1D5F111 :100C0000B6C1D6F1B7C1D7F1B8C1D8F1B9C1D9F1E0 :100C1000010155515B2756515C23E86A5D230E2E76 :100C20001AEF06F05CC157F15DC158F15B6B5C6B6C :100C30005D6B078E0201002FE7EF08F03C0E006F9E :100C40001A50E00BE00AE866128818BE02D018B409 :100C5000108E00C10CF101C10DF102C10EF103C1F2 :100C60000FF104C110F105C111F106C112F107C164 :100C700013F108C114F109C115F10AC116F10BC134 :100C800017F134C135F101018E674EEF06F08F6721 :100C90004EEF06F090674EEF06F0916752EF06F0C8 :100CA00082EF06F092C100F193C101F194C102F10B :100CB00095C103F10101010E046F000E056F000ED6 :100CC000066F000E076FCAEC1FF000C192F101C160 :100CD00093F102C194F103C195F1006777EF06F03B :100CE000016777EF06F0026777EF06F0036782EFA0 :100CF00006F08EC192F18FC193F190C194F191C130 :100D000095F10F80D57ED5BE6ED0D6CF47F1D7CF27 :100D100048F145C149F1E86AE8CF4AF1138A19BEA2 :100D200002D019A0108C109047C100F148C101F108 :100D300049C102F14AC103F101010A0E046F000E1C :100D4000056F000E066F000E076FCAEC1FF003AFB1 :100D50001080010154A7B9EF06F00F9A0F9C0F9E67 :100D60000101000E5E6F600E5F6F3D0E606F080E3A :100D7000616F010147BFC9EF06F04867C9EF06F090 :100D80004967C9EF06F04A67C9EF06F0F288EEEF4F :100D900006F0F2985E6B5F6B606B616B9A6B9B6B9E :100DA0009C6B9D6B9E6B9F6BA06BA16BA26BA36BEF :100DB000A46BA56BA66BA76BA86BA96BAA6BAB6B9F :100DC000AC6BAD6BAE6BAF6BB06BB16BB26BB36B4F :100DD000B46BB56BB66BB76BB86BB96BD76AD66AC9 :100DE0000101456B466B0CC100F10DC101F10EC153 :100DF00002F10FC103F110C104F111C105F112C1DB :100E000006F113C107F114C108F115C109F116C1AA :100E10000AF117C10BF135C134F1E7EF08F0E7EF44 :100E200008F00201002F6BEF08F0D59ED6CF47F1F6 :100E3000D7CF48F145C149F1E86AE8CF4AF1138AB2 :100E4000D76AD66A0101456B466BD58E1A50E00B06 :100E5000E00AE866128818BE02D018B4108E17AEE9 :100E60001C8C00C10CF101C10DF102C10EF103C1D6 :100E70000FF104C110F105C111F106C112F107C152 :100E800013F108C114F109C115F10AC116F10BC122 :100E900017F134C135F10FA0109A11B85BEF07F0CC :100EA0000101620E046F010E056F000E066F000E49 :100EB000076F64EF07F00101A70E046F020E056FC4 :100EC000000E066F000E076F47C100F148C101F127 :100ED00049C102F14AC103F1CAEC1FF003BF77EF29 :100EE00007F019BE02D019A0108C11B00F800CC1F0 :100EF00000F10DC101F10EC102F10FC103F110C1EA :100F000004F111C105F112C106F113C107F114C1B9 :100F100008F115C109F116C10AF117C10BF135C16C :100F200034F102013C0E006F00C10CF101C10DF162 :100F300002C10EF103C10FF104C110F105C111F19D :100F400006C112F107C113F108C114F109C115F16D :100F50000AC116F10BC117F134C135F101018E67D9 :100F6000B9EF07F08F67B9EF07F09067B9EF07F0B7 :100F70009167BDEF07F0EDEF07F092C100F193C16B :100F800001F194C102F195C103F10101010E046F59 :100F9000000E056F000E066F000E076FCAEC1FF003 :100FA00000C192F101C193F102C194F103C195F125 :100FB0000067E2EF07F00167E2EF07F00267E2EF98 :100FC00007F00367EDEF07F08EC192F18FC193F147 :100FD00090C194F191C195F10F80109047C100F13B :100FE00048C101F149C102F14AC103F101010A0EF0 :100FF000046F000E056F000E066F000E076FCAEC3F :101000001FF003AF1080010154A713EF08F00F9AEF :101010000F9C0F9E0101000E5E6F600E5F6F3D0E14 :10102000606F080E616F47C100F148C101F149C10D :1010300002F14AC103F10101140E046F050E056FA0 :10104000000E066F000E076FCAEC1FF003AF2CEF07 :1010500008F0F28851EF08F0F2985E6B5F6B606BFE :10106000616B9A6B9B6B9C6B9D6B9E6B9F6BA06B7C :10107000A16BA26BA36BA46BA56BA66BA76BA86BF4 :10108000A96BAA6BAB6BAC6BAD6BAE6BAF6BB06BA4 :10109000B16BB26BB36BB46BB56BB66BB76BB86B54 :1010A000B96B0CC100F10DC101F10EC102F10FC10C :1010B00003F110C104F111C105F112C106F113C110 :1010C00007F114C108F115C109F116C10AF117C1E0 :1010D0000BF135C134F18BB475EF08F010AC75EF3E :1010E00008F08B84109C76EF08F08B94C3CF55F1F9 :1010F000C4CF56F1C28207B4E5EF08F047C14BF107 :1011000048C14CF149C14DF14AC14EF15EC162F195 :101110005FC163F160C164F161C165F113A893EF30 :1011200008F0138C13989AC1BAF19BC1BBF19CC112 :10113000BCF19DC1BDF19EC1BEF19FC1BFF1A0C177 :10114000C0F1A1C1C1F1A2C1C2F1A3C1C3F1A4C147 :10115000C4F1A5C1C5F1A6C1C6F1A7C1C7F1A8C117 :10116000C8F1A9C1C9F1AAC1CAF1ABC1CBF1ACC1E7 :10117000CCF1ADC1CDF1AEC1CEF1AFC1CFF1B0C1B7 :10118000D0F1B1C1D1F1B2C1D2F1B3C1D3F1B4C187 :10119000D4F1B5C1D5F1B6C1D6F1B7C1D7F1B8C157 :1011A000D8F1B9C1D9F1010155515B2756515C23E2 :1011B000E86A5D230E2EE5EF08F05CC157F15DC1D2 :1011C00058F15B6B5C6B5D6B078EE7EF08F002C05C :1011D000E0FF005001C0D8FF1000A6B2EDEF08F00C :1011E0000CC0A9FF0BC0A8FFA69EA69CA684F29ED9 :1011F000550EA76EAA0EA76EA682F28EA694A6B270 :10120000FFEF08F00C2A1200A96EA69EA69CA680ED :10121000A8500C2A120004012C0E826F37EC0BF040 :10122000C5EC20F00C5004EC09F0E8CF00F10C50B4 :1012300004EC09F0E8CF01F101AF24EF09F001015E :10124000FF0E026FFF0E036F68EC20F0296730EF8E :1012500009F00401200E826F37EC0BF035EF09F036 :1012600004012D0E826F37EC0BF072EC1EF01200B1 :10127000306A076A0F6A106A116A126A136A0F01EC :101280000E0EC16E860EC06E030EC26E0F01896A0D :10129000190E926E080E8A6EF10E936E8B6A980E7E :1012A000946EF18EFC0E04EC09F0E8CF0BF00BA06D :1012B00011800BA211820BA411840BA81188C90EF6 :1012C00004EC09F0E8CF17F0CA0E04EC09F0E8CFFF :1012D00018F0CB0E04EC09F0E8CF19F0CC0E04ECBA :1012E00009F0E8CF1AF0CD0E04EC09F0E8CF2FF0AA :1012F0001C6A1D6A0E6A01015B6B5C6B5D6B576B50 :10130000586BF29A0101476B486B496B4A6B4B6B08 :101310004C6B4D6B4E6B4F6B506B516B526B456B07 :10132000466BD76AD66A0F01280ED56EF28A9D9059 :10133000B00ECD6E01015E6B5F6B606B616B626BBB :10134000636B646B656B666B676B686B696B536B28 :10135000546BCF6ACE6A0F9A0F9C0F9E9D80760EBB :10136000CA6E9D8202013C0E006FCC6A160E04EC20 :1013700009F0E8CF00F1170E04EC09F0E8CF01F115 :10138000180E04EC09F0E8CF02F1190E04EC09F094 :10139000E8CF03F1010103AFE8EF09F0C5EC20F05D :1013A000160E0C6E00C10BF0EDEC08F0170E0C6E73 :1013B00001C10BF0EDEC08F0180E0C6E02C10BF041 :1013C000EDEC08F0190E0C6E03C10BF0EDEC08F01B :1013D00000C18EF101C18FF102C190F103C191F101 :1013E00000C192F101C193F102C194F103C195F1E1 :1013F0001A0E04EC09F0E8CF00F11B0E04EC09F022 :10140000E8CF01F11C0E04EC09F0E8CF02F11D0E4B :1014100004EC09F0E8CF03F1010103AF3EEF0AF05D :10142000C5EC20F01A0E0C6E00C10BF0EDEC08F0CC :101430001B0E0C6E01C10BF0EDEC08F01C0E0C6ED7 :1014400002C10BF0EDEC08F01D0E0C6E03C10BF0A9 :10145000EDEC08F01A0E04EC09F0E8CF00F11B0ED9 :1014600004EC09F0E8CF01F11C0E04EC09F0E8CF20 :1014700002F11D0E04EC09F0E8CF03F100C196F172 :1014800001C197F102C198F103C199F1240EAC6E2C :10149000900EAB6E240EAC6E080EB86E80B66FEF79 :1014A0000AF01E0E04EC09F0E8CF00F11F0E04EC68 :1014B00009F0E8CF01F100C1E8FFFF0A10E001C127 :1014C000E8FFFF0A0CE01E0E04EC09F0E8CFAFFFC6 :1014D0001F0E04EC09F0E8CFB0FF73EF0AF0000E26 :1014E000B06E1F0EAF6E0401806B816B0F01900E0A :1014F000AB6E0F019D8A0301806B816BC26B8B9277 :1015000007900001F28EF28C07B020EF1DF00FB0B3 :1015100033EF16F010BE33EF16F012B833EF16F0BB :101520000301805181197F0BD8B420EF1DF013EE19 :1015300000F081517F0BE126812BE7CFE8FFE00B24 :10154000D8B420EF1DF023EE82F0C2513F0BD92614 :10155000E7CFDFFFC22BDF50780AD8A420EF1DF0C1 :10156000078092C100F193C101F194C102F195C1CC :1015700003F10101040E046F000E056F000E066FEB :10158000000E076FCAEC1FF000AFD0EF0AF00101A8 :10159000030E926F000E936F000E946F000E956F06 :1015A00003018251720AD8B40FEF16F08251520A29 :1015B000D8B40FEF16F08251750AD8B40FEF16F0B9 :1015C0008251630AD8B4DAEF19F08251690AD8B4AB :1015D000B9EF12F082517A0AD8B4CCEF13F08251ED :1015E000490AD8B458EF12F08251500AD8B476EFB5 :1015F00011F08251700AD8B4B9EF11F08251540A37 :10160000D8B4E4EF11F08251740AD8B42AEF12F082 :101610008251410AD8B44DEF0CF082514B0AD8B434 :101620004BEF0BF082516D0AD8B480EF10F082516D :101630004D0AD8B499EF10F08251730AD8B43FEF35 :1016400015F08251530AD8B4A4EF15F08251620A02 :10165000D8B428EF11F08251420AD8B463EF11F0E8 :101660008251590AD8B4D1EF0FF011EF1AF00401EA :1016700014EE00F080517F0BE12682C4E7FF802B3F :10168000120004010D0E826F37EC0BF00A0E826F10 :1016900037EC0BF0120004014B0E826F37EC0BF0AD :1016A00004012C0E826F37EC0BF081B802D02FB6FC :1016B00030D003018351430AD8B490EF0BF00301FB :1016C0008351630AD8B492EF0BF003018351520A9D :1016D000D8B494EF0BF003018351720AD8B496EF9B :1016E0000BF003018351470AD8B498EF0BF00301C4 :1016F0008351670AD8B49AEF0BF003018351540A5F :10170000D8B49CEF0BF003018351740AD8B40BEFEB :101710000CF003018351550AD8B49EEF0BF082D030 :101720002F807AD02F9078D02F8276D02F9274D0BD :101730002F8472D02F9470D02F866ED084C330F156 :1017400085C331F186C332F187C333F10101296BBF :1017500013EC21F08AEC20F000C104F101C105F185 :1017600002C106F103C107F106EC21F0200EF86E6C :10177000F76AF66A0900F5CF2CF10900F5CF2DF1D3 :101780000900F5CF2EF10900F5CF2FF10900F5CFB3 :1017900030F10900F5CF31F10900F5CF32F1090040 :1017A000F5CF33F10101296B13EC21F08AEC20F025 :1017B000CAEC1FF00067E4EF0BF00167E4EF0BF0F9 :1017C0000267E4EF0BF0036701D025D004014E0E51 :1017D000826F37EC0BF004016F0E826F37EC0BF069 :1017E00004014D0E826F37EC0BF00401610E826F25 :1017F00037EC0BF00401740E826F37EC0BF0040130 :10180000630E826F37EC0BF00401680E826F37ECC9 :101810000BF00FEF1AF02F96CD0E0C6E2FC00BF0C1 :10182000EDEC08F0CD0E04EC09F0E8CF2FF02FB06E :1018300006D00401630E826F37EC0BF005D0040173 :10184000430E826F37EC0BF02FB206D00401720EFC :10185000826F37EC0BF005D00401520E826F37EC2B :101860000BF02FB406D00401670E826F37EC0BF03B :1018700005D00401470E826F37EC0BF02FB606D06F :101880000401740E826F37EC0BF005D00401540E86 :10189000826F37EC0BF00FEF1AF00401410E826FEC :1018A00037EC0BF003018351310AD8B4F1EF0EF09D :1018B00003018351320AD8B421EF0EF003018351A2 :1018C000330AD8B4AAEF0DF003018351340AD8B417 :1018D0009AEF0CF003018351350AD8B477EF0CF07E :1018E00004013F0E826F37EC0BF00FEF1AF004018A :1018F0002C0E826F37EC0BF003018451300AD8B400 :101900008AEF0CF003018451310AD8B492EF0CF045 :10191000E3EF0DF08B900401300E826F37EC0BF08B :1019200098EF0CF08B800401310E826F37EC0BF0D6 :101930000FEF1AF0CC0E04EC09F0E8CF0BF0040125 :101940002C0E826F37EC0BF003018451310AD8B4AE :10195000BEEF0CF003018451300AD8B4C0EF0CF094 :10196000030184514D0AD8B4CAEF0CF0030184512D :10197000540AD8B4D1EF0CF0E8EF0CF08A8401D00F :101980008A940BAE04D00BAC02D00BBA21D0E00E7F :101990000B1218D01F0E0B168539E844E00B0B1202 :1019A00011D0E00E0B1606EC21F085C332F186C390 :1019B00033F10101296B13EC21F08AEC20F0005186 :1019C0001F0B0B12CC0E0C6E0BC00BF0EDEC08F0E5 :1019D0000401340E826F37EC0BF004012C0E826F81 :1019E00037EC0BF0CC0E04EC09F0E8CF1AF08AB417 :1019F00006D00401300E826F37EC0BF005D00401E5 :101A0000310E826F37EC0BF004012C0E826F37EC35 :101A10000BF01A38E840070BE8CF82F40401300ECF :101A2000822737EC0BF004012C0E826F37EC0BF0A1 :101A3000C5EC20F01A501F0BE8CF00F168EC20F045 :101A400032C182F40401300E822737EC0BF033C12F :101A500082F40401300E822737EC0BF004012C0EC7 :101A6000826F37EC0BF0C5EC20F02DC000F100AF19 :101A70000BD0FF0E016FFF0E026FFF0E036F04010C :101A80002D0E826F37EC0BF068EC20F031C182F440 :101A90000401300E822737EC0BF032C182F40401CE :101AA000300E822737EC0BF033C182F40401300E84 :101AB000822737EC0BF004012C0E826F37EC0BF011 :101AC000C5EC20F02CC000F168EC20F031C182F4AC :101AD0000401300E822737EC0BF032C182F404018E :101AE000300E822737EC0BF033C182F40401300E44 :101AF000822737EC0BF004012C0E826F37EC0BF0D1 :101B0000C5EC20F02EC000F100AF0BD0FF0E016F2E :101B1000FF0E026FFF0E036F04012D0E826F37EC74 :101B20000BF068EC20F031C182F40401300E822702 :101B300037EC0BF032C182F40401300E822737EC0F :101B40000BF033C182F40401300E822737EC0BF026 :101B50000FEF1AF0CB0E04EC09F0E8CF0BF0040104 :101B60002C0E826F37EC0BF003018451450AD8B478 :101B7000CEEF0DF003018451440AD8B4D1EF0DF03B :101B800003018451300AD8B4D4EF0DF0030184511D :101B9000310AD8B4D8EF0DF0E3EF0DF00B9EDDEF76 :101BA0000DF00B8EDDEF0DF0FC0E0B16DDEF0DF0E2 :101BB000FC0E0B160B80DDEF0DF0CB0E0C6E0BC088 :101BC0000BF0EDEC08F00401330E826F37EC0BF0F4 :101BD00004012C0E826F37EC0BF0CB0E04EC09F0F5 :101BE000E8CF19F019BEFCEF0DF00401450E826F2D :101BF00037EC0BF001EF0EF00401440E826F37EC6E :101C00000BF004012C0E826F37EC0BF00401300E48 :101C1000826F37EC0BF004012C0E826F37EC0BF067 :101C200019B01AEF0EF00401300E826F37EC0BF092 :101C30001FEF0EF00401310E826F37EC0BF00FEF47 :101C40001AF0CA0E04EC09F0E8CF0BF004012C0ED8 :101C5000826F37EC0BF003018451450AD8B45DEF75 :101C60000EF003018451440AD8B460EF0EF0030172 :101C700084514D0AD8B469EF0EF003018451410A32 :101C8000D8B463EF0EF003018451460AD8B466EF6E :101C90000EF003018451560AD8B471EF0EF003011F :101CA0008451500AD8B47CEF0EF003018451520ADB :101CB000D8B47FEF0EF088EF0EF00B9E82EF0EF09F :101CC0000B8E82EF0EF00B9C82EF0EF00B8C82EFEE :101CD0000EF0FC0E0B1685C3E8FF030B0B1282EF10 :101CE0000EF0C70E0B1685C3E8FF070BE846E84663 :101CF000E8460B1282EF0EF00B8482EF0EF00B948D :101D000082EF0EF0CA0E0C6E0BC00BF0EDEC08F07B :101D1000CA0E04EC09F0E8CF18F00401320E826F0D :101D200037EC0BF004012C0E826F37EC0BF018BE71 :101D3000A1EF0EF00401450E826F37EC0BF0A6EF19 :101D40000EF00401440E826F37EC0BF004012C0EF0 :101D5000826F37EC0BF018C0E8FF030BE8CF82F47A :101D60000401300E822737EC0BF004012C0E826F39 :101D700037EC0BF018BCC4EF0EF00401410E826F7B :101D800037EC0BF0C9EF0EF00401460E826F37EC12 :101D90000BF004012C0E826F37EC0BF018C0E8FF3B :101DA000380BE842E842E842E8CF82F40401300E02 :101DB000822737EC0BF004012C0E826F37EC0BF00E :101DC00018B4EAEF0EF00401520E826F37EC0BF0FC :101DD000EFEF0EF00401500E826F37EC0BF00FEFB7 :101DE0001AF0C90E04EC09F0E8CF0BF004012C0E38 :101DF000826F37EC0BF003018451450AD8B40FEF22 :101E00000FF003018451440AD8B412EF0FF003011C :101E100084514D0AD8B415EF0FF023EF0FF00B9E4D :101E20001DEF0FF00B8E1DEF0FF0F80E0B1685C394 :101E3000E8FF070B0B121DEF0FF0C90E0C6E0BC065 :101E40000BF0EDEC08F00401310E826F37EC0BF073 :101E500004012C0E826F37EC0BF0C90E04EC09F074 :101E6000E8CF17F017BE06D00401450E826F37EC9D :101E70000BF005D00401440E826F37EC0BF0040127 :101E80002C0E826F37EC0BF017C0E8FF070BE8CF82 :101E900082F40401300E822737EC0BF004012C0E83 :101EA000826F37EC0BF00780C5EC20F028C0E8FF0C :101EB000003B00430043030B68EC20F033C182F485 :101EC0000401300E822737EC0BF004012C0E826FD8 :101ED00037EC0BF0C5EC20F028C001F1019F019D0B :101EE00029C000F1010168EC20F02FC182F4040147 :101EF000300E822737EC0BF030C182F40401300E33 :101F0000822737EC0BF031C182F40401300E8227B6 :101F100037EC0BF032C182F40401300E822737EC2B :101F20000BF033C182F40401300E822737EC0BF042 :101F300004012C0E826F37EC0BF0C5EC20F02AC0A8 :101F400001F12BC000F1D89001330033D890013358 :101F50000033010168EC20F02FC182F40401300E3F :101F6000822737EC0BF030C182F40401300E822757 :101F700037EC0BF031C182F40401300E822737ECCC :101F80000BF032C182F40401300E822737EC0BF0E3 :101F900033C182F40401300E822737EC0BF00FEFCF :101FA0001AF0FC0E04EC09F0E8CF0BF003018351AA :101FB000520AD8B408EF10F003018351720AD8B462 :101FC0000BEF10F003018351500AD8B40EEF10F05C :101FD00003018351700AD8B411EF10F0030183514B :101FE000550AD8B414EF10F003018351750AD8B420 :101FF00017EF10F003018351430AD8B420EF10F01B :1020000003018351630AD8B423EF10F02CEF10F0D2 :102010000B9026EF10F00B8026EF10F00B9226EFBE :1020200010F00B8226EF10F00B9426EF10F00B84CB :1020300026EF10F00B9626EF10F00B8626EF10F02F :102040000B9826EF10F00B8826EF10F0FC0E0C6EAC :102050000BC00BF0EDEC08F00401590E826F37EC69 :102060000BF01190119211941198FC0E04EC09F0F0 :10207000E8CF0BF00BA011800BA211820BA41184EE :102080000BA8118811A04CEF10F00401520E826FC2 :1020900037EC0BF051EF10F00401720E826F37EC49 :1020A0000BF011A85BEF10F00401430E826F37ECC8 :1020B0000BF060EF10F00401630E826F37EC0BF051 :1020C00011A26AEF10F00401500E826F37EC0BF092 :1020D0006FEF10F00401700E826F37EC0BF011A45B :1020E00079EF10F00401550E826F37EC0BF07EEFA4 :1020F00010F00401750E826F37EC0BF00FEF1AF041 :1021000004016D0E826F37EC0BF003018351300A2E :10211000D8B4D8EF10F003018351310AD8B4EBEFF3 :1021200010F003018351320AD8B4FEEF10F011EF22 :102130001AF004014D0E826F37EC0BF006EC21F023 :1021400084C331F185C332F186C333F10101296BB8 :1021500013EC21F08AEC20F003018351300AD8B44B :10216000C0EF10F003018351310AD8B4C8EF10F06A :1021700003018351320AD8B4D0EF10F011EF1AF0F6 :10218000FD0E0C6E00C10BF0EDEC08F0D8EF10F076 :10219000FE0E0C6E00C10BF0EDEC08F0EBEF10F052 :1021A000FF0E0C6E00C10BF0EDEC08F0FEEF10F02E :1021B0000401300E826F37EC0BF004012C0E826F9D :1021C00037EC0BF0C5EC20F0FD0E04EC09F0E8CF85 :1021D00000F10FEF11F00401310E826F37EC0BF0BC :1021E00004012C0E826F37EC0BF0C5EC20F0FE0ED4 :1021F00004EC09F0E8CF00F10FEF11F00401320E0A :10220000826F37EC0BF0C5EC20F004012C0E826FCE :1022100037EC0BF0FF0E04EC09F0E8CF00F168ECAE :1022200020F031C182F40401300E822737EC0BF02C :1022300032C182F40401300E822737EC0BF033C137 :1022400082F40401300E822737EC0BF00FEF1AF006 :102250008351610AD8A411EF1AF08451750AD8A4E9 :1022600011EF1AF08551640AD8A411EF1AF086C351 :102270002AF187C32BF188C32CF189C32DF18AC3BE :102280002EF18BC32FF18CC330F18DC331F18EC38E :1022900032F18FC333F10101296B13EC21F08AEC89 :1022A00020F000C1AFFF01C1B0FF1E0E0C6EAFCF1A :1022B0000BF0EDEC08F01F0E0C6EB0CF0BF0EDEC58 :1022C00008F011EF1AF080B66DEF11F00401300E36 :1022D000826F37EC0BF072EF11F00401310E826F58 :1022E00037EC0BF041EC0BF011EF1AF083C32AF13D :1022F00084C32BF185C32CF186C32DF187C32EF146 :1023000088C32FF189C330F18AC331F18BC332F115 :102310008CC333F1010113EC21F08AEC20F0160E8E :102320000C6E00C10BF0EDEC08F0170E0C6E01C145 :102330000BF0EDEC08F0180E0C6E02C10BF0EDEC9A :1023400008F0190E0C6E03C10BF0EDEC08F000C1A3 :102350008EF101C18FF102C190F103C191F100C171 :1023600092F101C193F102C194F103C195F158EFCB :1023700012F083C32AF184C32BF185C32CF186C3E9 :102380002DF187C32EF188C32FF189C330F18AC3A1 :1023900031F18BC332F18CC333F1010113EC21F025 :1023A0008AEC20F000C18EF101C18FF102C190F1E1 :1023B00003C191F100C192F101C193F102C194F105 :1023C00003C195F158EF12F083C32AF184C32BF1B6 :1023D00085C32CF186C32DF187C32EF188C32FF15D :1023E00089C330F18AC331F18CC332F18DC333F12B :1023F000010113EC21F08AEC20F00101000E046FC2 :10240000000E056F010E066F000E076FDBEC1FF06C :102410001A0E0C6E00C10BF0EDEC08F01B0E0C6EEA :1024200001C10BF0EDEC08F01C0E0C6E02C10BF0BC :10243000EDEC08F01D0E0C6E03C10BF0EDEC08F096 :1024400000C196F101C197F102C198F103C199F160 :1024500058EF12F083C32AF184C32BF185C32CF10A :1024600086C32DF187C32EF188C32FF189C330F1C4 :102470008AC331F18CC332F18DC333F1010113EC06 :1024800021F08AEC20F00101000E046F000E056FB0 :10249000010E066F000E076FDBEC1FF000C196F116 :1024A00001C197F102C198F103C199F158EF12F0FF :1024B000160E04EC09F0E8CF00F1170E04EC09F059 :1024C000E8CF01F1180E04EC09F0E8CF02F1190E83 :1024D00004EC09F0E8CF03F168EC20F02BEC1EF0DF :1024E0000401730E826F37EC0BF004012C0E826F27 :1024F00037EC0BF08EC100F18FC101F190C102F1F8 :1025000091C103F168EC20F02BEC1EF00401730E76 :10251000826F37EC0BF004012C0E826F37EC0BF05E :102520001A0E04EC09F0E8CF00F11B0E04EC09F0E0 :10253000E8CF01F11C0E04EC09F0E8CF02F11D0E0A :1025400004EC09F0E8CF03F12CEC1AF004012C0E96 :10255000826F37EC0BF096C100F197C101F198C181 :1025600002F199C103F12CEC1AF041EC0BF011EFE0 :102570001AF00401690E826F37EC0BF004012C0E87 :10258000826F37EC0BF00101040E006F000E016F3B :10259000000E026F000E036F68EC20F02CC182F475 :1025A0000401300E822737EC0BF02DC182F40401B8 :1025B000300E822737EC0BF02EC182F40401300E6E :1025C000822737EC0BF02FC182F40401300E8227F2 :1025D00037EC0BF030C182F40401300E822737EC67 :1025E0000BF031C182F40401300E822737EC0BF07E :1025F00032C182F40401300E822737EC0BF033C174 :1026000082F40401300E822737EC0BF004012C0E0B :10261000826F37EC0BF00101050E006F000E016FA9 :10262000000E026F000E036F68EC20F02CC182F4E4 :102630000401300E822737EC0BF02DC182F4040127 :10264000300E822737EC0BF02EC182F40401300EDD :10265000822737EC0BF02FC182F40401300E822761 :1026600037EC0BF030C182F40401300E822737ECD6 :102670000BF031C182F40401300E822737EC0BF0ED :1026800032C182F40401300E822737EC0BF033C1E3 :1026900082F40401300E822737EC0BF004012C0E7B :1026A000826F37EC0BF001013A0E006F000E016FE4 :1026B000000E026F000E036F68EC20F02CC182F454 :1026C0000401300E822737EC0BF02DC182F4040197 :1026D000300E822737EC0BF02EC182F40401300E4D :1026E000822737EC0BF02FC182F40401300E8227D1 :1026F00037EC0BF030C182F40401300E822737EC46 :102700000BF031C182F40401300E822737EC0BF05C :1027100032C182F40401300E822737EC0BF033C152 :1027200082F40401300E822737EC0BF004012C0EEA :10273000826F37EC0BF0200EF86EF76AF66A040130 :102740000900F5CF82F437EC0BF00900F5CF82F4E5 :1027500037EC0BF00900F5CF82F437EC0BF00900F1 :10276000F5CF82F437EC0BF00900F5CF82F437ECAB :102770000BF00900F5CF82F437EC0BF00900F5CF30 :1027800082F437EC0BF00900F5CF82F437EC0BF054 :1027900041EC0BF011EF1AF08351630AD8A40FEF4C :1027A0001AF08451610AD8A40FEF1AF085516C0A0F :1027B000D8A40FEF1AF08651410A3FE08651440A2F :1027C0001BE08651420AD8B430EF14F08651350A26 :1027D000D8B49BEF1BF08651360AD8B4F0EF1BF04B :1027E0008651370AD8B459EF1CF08651380AD8B44C :1027F000B7EF1CF00FEF1AF00798079A04017A0E52 :10280000826F37EC0BF00401780E826F37EC0BF01F :102810000401640E826F37EC0BF00401550E826FD9 :1028200037EC0BF019EF14F004014C0E826F37EC0B :102830000BF041EC0BF011EF1AF00788079A040136 :102840007A0E826F37EC0BF00401410E826F37EC89 :102850000BF00401610E826F37EC0BF00DEF14F0FA :102860000798078A04017A0E826F37EC0BF0040197 :10287000420E826F37EC0BF00401610E826F37EC71 :102880000BF00DEF14F0010166674EEF14F067676F :102890004EEF14F068674EEF14F0696715D04F677C :1028A00059EF14F0506759EF14F0516759EF14F0D5 :1028B00052670AD00101000E006F000E016F000E7A :1028C000026F000E036F120011B80AD00101620EF0 :1028D000046F010E056F000E066F000E076F09D022 :1028E0000101A70E046F020E056F000E066F000EA9 :1028F000076F66C100F167C101F168C102F169C1EA :1029000003F1CAEC1FF003BFF6EF14F0119A119C0B :102910000101000E046FA80E056F550E066F020E22 :10292000076F66C100F167C101F168C102F169C1B9 :1029300003F166C18AF167C18BF168C18CF169C18D :102940008DF1CAEC1FF003BF0BD00101000E8A6F9E :10295000A80E8B6F550E8C6F020E8D6F118A119C15 :102960000E0E04EC09F0E8CF18F10F0E04EC09F09C :10297000E8CF19F1100E04EC09F0E8CF1AF1110EAE :1029800004EC09F0E8CF1BF113EC1FF08AC104F14D :102990008BC105F18CC106F18DC107F1CAEC1FF0A6 :1029A0000782D7EC1EF013EC1FF00792D7EC1EF055 :1029B0008AC100F18BC101F18CC102F18DC103F11B :1029C0000792D7EC1EF0CC0E046FE00E056F870E59 :1029D000066F050E076FCAEC1FF000C118F101C1A8 :1029E00019F102C11AF103C11BF140D013AAFBEF88 :1029F00014F0138E139A119C119A0101800E006F2E :102A00001A0E016F060E026F000E036F4FC104F124 :102A100050C105F151C106F152C107F1CAEC1FF0D6 :102A200003AF05D0C5EC20F0118C119A12000E0EE8 :102A300004EC09F0E8CF18F10F0E04EC09F0E8CF30 :102A400019F1100E04EC09F0E8CF1AF1110E04ECA4 :102A500009F0E8CF1BF14FC100F150C101F151C1A4 :102A600002F152C103F10782D7EC1EF018C100F148 :102A700019C101F11AC102F11BC103F112000401D5 :102A8000730E826F37EC0BF004012C0E826F37EC63 :102A90000BF0078462C166F163C167F164C168F13C :102AA00065C169F14BC14FF14CC150F14DC151F1BC :102AB0004EC152F157C159F158C15AF1079465EC12 :102AC00015F041EC0BF011EF1AF066C100F167C18F :102AD00001F168C102F169C103F1010168EC20F064 :102AE0002BEC1EF00401630E826F37EC0BF0040137 :102AF0002C0E826F37EC0BF04FC100F150C101F189 :102B000051C102F152C103F1010168EC20F02BEC3C :102B10001EF00401660E826F37EC0BF004012C0EE0 :102B2000826F37EC0BF0C5EC20F059C100F15AC1AF :102B300001F1010168EC20F02BEC1EF00401740E91 :102B4000826F37EC0BF0120010820401530E826F7B :102B500037EC0BF004012C0E826F37EC0BF083C3C3 :102B60002AF184C32BF185C32CF186C32DF187C3D1 :102B70002EF188C32FF189C330F18AC331F18BC3A1 :102B800032F18CC333F1010113EC21F08AEC20F017 :102B900000C166F101C167F102C168F103C169F1C9 :102BA0008EC32AF18FC32BF190C32CF191C32DF169 :102BB00092C32EF193C32FF194C330F195C331F139 :102BC00096C332F197C333F1010113EC21F08AEC83 :102BD00020F000C14FF101C150F102C151F103C118 :102BE00052F106EC21F099C32FF19AC330F19BC347 :102BF00031F19CC332F19DC333F1010113EC21F09B :102C00008AEC20F000C159F101C15AF165EC15F0D0 :102C100004012C0E826F37EC0BF01FEF16F0118EB3 :102C200019A002D019AE108C18BE02D018A4108EB4 :102C300003018251520A02E10F8201D00F928251A8 :102C4000750A02E1108401D010948251550A02E104 :102C5000108601D010968351310A03E11382138448 :102C600002D01392139411A003D011A401D01084A8 :102C7000078410B29DEF16F010A481EF16F0BAC1D0 :102C800066F1BBC167F1BCC168F1BDC169F1BEC1EC :102C90006AF1BFC16BF1C0C16CF1C1C16DF1C2C1BC :102CA0006EF1C3C16FF1C4C170F1C5C171F1C6C18C :102CB00072F1C7C173F1C8C174F1C9C175F1CAC15C :102CC00076F1CBC177F1CCC178F1CDC179F1CEC12C :102CD0007AF1CFC17BF1D0C17CF1D1C17DF1D2C1FC :102CE0007EF1D3C17FF1D4C180F1D5C181F1D6C1CC :102CF00082F1D7C183F1D8C184F1D9C185F189EFBF :102D000016F062C166F163C167F164C168F165C123 :102D100069F1BAC186F1BBC187F1BCC188F1BDC1FF :102D200089F14BC14FF14CC150F14DC151F14EC130 :102D300052F157C159F158C15AF107940FA0BFEF92 :102D400016F001019667ACEF16F09767ACEF16F03E :102D50009867ACEF16F09967B0EF16F0BFEF16F07A :102D600043EC14F096C104F197C105F198C106F146 :102D700099C107F1CAEC1FF003BFD5EF19F043EC7E :102D800014F00101000E046F000E056F010E066FB6 :102D9000000E076FFBEC1FF011A02AD011A228D063 :102DA00068EC20F0296701D005D004012D0E826F58 :102DB00037EC0BF030C182F40401300E822737EC7F :102DC0000BF031C182F40401300E822737EC0BF096 :102DD00032C182F40401300E822737EC0BF033C18C :102DE00082F40401300E822737EC0BF041EC0BF03B :102DF00012A8C5D012981AC01BF01B3A1B42070E2E :102E00001B1600011B50000AD8B48BEF17F000010D :102E10001B50010AD8B417EF17F000011B50020A2B :102E2000D8B415EF17F0BDEF17F0BDEF17F0C5ECF4 :102E300020F02AC001F12BC000F1D89001330033FB :102E4000D890013300330101630E046F000E056F4B :102E5000000E066F000E076FFBEC1FF0280E046FCC :102E6000000E056F000E066F000E076FCAEC1FF014 :102E700000C12DF0C5EC20F028C001F1019F019D9B :102E800029C000F10101A40E046F000E056F000EB1 :102E9000066F000E076FFBEC1FF000C12CF000C1A5 :102EA00004F101C105F102C106F103C107F1640E8D :102EB000006F000E016F000E026F000E036FCAEC70 :102EC0001FF0050E046F000E056F000E066F000E5A :102ED000076FFBEC1FF000C104F101C105F102C155 :102EE00006F103C107F1C5EC20F02DC000F1CAECDA :102EF0001FF000C12EF02EC0E8FF050F2D5C03E788 :102F00008A84BDEF17F02EC0E8FF0A0F2D5C01E6A2 :102F10008A94BDEF17F000C124F101C125F102C16F :102F200026F103C127F1C5EC20F0CBEC20F01A50BC :102F30001F0BE8CF00F10101640E046F000E056F56 :102F4000000E066F000E076FDBEC1FF024C104F1CA :102F500025C105F126C106F127C107F1CAEC1FF012 :102F600003BF02D08A9401D08A8424C100F125C114 :102F700001F126C102F127C103F111EF1AF000C1DE :102F800024F101C125F102C126F103C127F110AEE0 :102F90004DD0109E00C108F101C109F102C10AF132 :102FA00003C10BF168EC20F030C1DAF131C1DBF183 :102FB00032C1DCF133C1DDF108C100F109C101F119 :102FC0000AC102F10BC103F101016C0E046F070E7F :102FD000056F000E066F000E076FCAEC1FF003BFEF :102FE00004D00101550EDE6F1CD008C100F109C1EB :102FF00001F10AC102F10BC103F10101A40E046F3A :10300000060E056F000E066F000E076FCAEC1FF06C :1030100003BF04D001017F0EDE6F03D00101FF0E5C :10302000DE6F1C8E11AED5EF19F0119E24C100F198 :1030300025C101F126C102F127C103F111A005D07C :1030400011A203D00FB0D5EF19F010A42FEF18F094 :103050000401750E826F37EC0BF034EF18F00401A9 :10306000720E826F37EC0BF004012C0E826F37EC7E :103070000BF068EC20F0296743EF18F00401200EF4 :10308000826F46EF18F004012D0E826F37EC0BF0C3 :1030900030C182F40401300E822737EC0BF031C1CD :1030A00082F40401300E822737EC0BF004012E0E5F :1030B000826F37EC0BF032C182F40401300E8227AC :1030C00037EC0BF033C182F40401300E822737EC69 :1030D0000BF004016D0E826F37EC0BF004012C0E27 :1030E000826F37EC0BF04FC100F150C101F151C1BB :1030F00002F152C103F1010168EC20F02BEC1EF04B :103100000401480E826F37EC0BF004017A0E826FD7 :1031100037EC0BF004012C0E826F37EC0BF066C11C :1031200000F167C101F168C102F169C103F1010158 :1031300068EC20F02BEC1EF00401630E826F37EC7C :103140000BF004012C0E826F37EC0BF066C100F11E :1031500067C101F168C102F169C103F101010A0E01 :10316000046F000E056F000E066F000E076FDBEC9C :103170001FF0000E046F120E056F000E066F000E9A :10318000076FFBEC1FF068EC20F02AC182F4040109 :10319000300E822737EC0BF02BC182F40401300E85 :1031A000822737EC0BF02CC182F40401300E822709 :1031B00037EC0BF02DC182F40401300E822737EC7E :1031C0000BF02EC182F40401300E822737EC0BF095 :1031D0002FC182F40401300E822737EC0BF030C18E :1031E00082F40401300E822737EC0BF004012E0E1E :1031F000826F37EC0BF031C182F40401300E82276C :1032000037EC0BF032C182F40401300E822737EC28 :103210000BF033C182F40401300E822737EC0BF03F :103220000401730E826F37EC0BF004012C0E826FD9 :1032300037EC0BF0C5EC20F059C100F15AC101F197 :103240003BEC1BF013A274EF19F004012C0E826FFB :1032500037EC0BF086C166F187C167F188C168F170 :1032600089C169F143EC14F00101000E046F000EF6 :10327000056F010E066F000E076FFBEC1FF068EC88 :1032800020F0296749EF19F00401200E826F4CEFFE :1032900019F004012D0E826F37EC0BF030C182F46F :1032A0000401300E822737EC0BF031C182F40401A7 :1032B000300E822737EC0BF004012E0E826F37ECB4 :1032C0000BF032C182F40401300E822737EC0BF090 :1032D00033C182F40401300E822737EC0BF0040175 :1032E0006D0E826F37EC0BF013A49BEF19F0040105 :1032F0002C0E826F37EC0BF013AC89EF19F0040140 :10330000500E826F37EC0BF0139C1398139A9BEFBF :1033100019F013AE96EF19F00401460E826F37ECE8 :103320000BF0139E1398139A9BEF19F00401530EA0 :10333000826F37EC0BF00FB2A1EF19F00FA0D3EFB3 :1033400019F004012C0E826F37EC0BF0200EF86E92 :10335000F76AF66A04010900F5CF82F437EC0BF046 :103360000900F5CF82F437EC0BF00900F5CF82F4B9 :1033700037EC0BF00900F5CF82F437EC0BF00900C5 :10338000F5CF82F437EC0BF00900F5CF82F437EC7F :103390000BF00900F5CF82F437EC0BF00900F5CF04 :1033A00082F437EC0BF041EC0BF00F90109E12986A :1033B00011EF1AF00401630E826F37EC0BF0040179 :1033C0002C0E826F37EC0BF017EC1AF004012C0E68 :1033D000826F37EC0BF08AEC1AF004012C0E826F2E :1033E00037EC0BF006EC1BF004012C0E826F37EC6F :1033F0000BF00101F80E006FCD0E016F660E026F2B :10340000030E036F2CEC1AF004012C0E826F37ECC4 :103410000BF01CEC1BF041EC0BF011EF1AF041EC3F :103420000BF00301C26B0790109220EF1DF0D890B3 :103430000E0E04EC09F0E8CF00F10F0E04EC09F0D9 :10344000E8CF01F1100E04EC09F0E8CF02F1110E03 :1034500004EC09F0E8CF03F10101000E046F000E47 :10346000056F010E066F000E076FFBEC1FF068EC96 :1034700020F02AC182F40401300E822737EC0BF0D1 :103480002BC182F40401300E822737EC0BF02CC1E3 :1034900082F40401300E822737EC0BF02DC182F448 :1034A0000401300E822737EC0BF02EC182F40401A8 :1034B000300E822737EC0BF02FC182F40401300E5E :1034C000822737EC0BF030C182F40401300E8227E2 :1034D00037EC0BF031C182F40401300E822737EC57 :1034E0000BF004012E0E826F37EC0BF032C182F428 :1034F0000401300E822737EC0BF033C182F4040153 :10350000300E822737EC0BF004016D0E826F37EC22 :103510000BF01200120E04EC09F0E8CF00F1130ECC :1035200004EC09F0E8CF01F1140E04EC09F0E8CF47 :1035300002F1150E04EC09F0E8CF03F101010A0EC7 :10354000046F000E056F000E066F000E076FDBECB8 :103550001FF0000E046F120E056F000E066F000EB6 :10356000076FFBEC1FF068EC20F02AC182F4040125 :10357000300E822737EC0BF02BC182F40401300EA1 :10358000822737EC0BF02CC182F40401300E822725 :1035900037EC0BF02DC182F40401300E822737EC9A :1035A0000BF02EC182F40401300E822737EC0BF0B1 :1035B0002FC182F40401300E822737EC0BF030C1AA :1035C00082F40401300E822737EC0BF004012E0E3A :1035D000826F37EC0BF031C182F40401300E822788 :1035E00037EC0BF032C182F40401300E822737EC45 :1035F0000BF033C182F40401300E822737EC0BF05C :103600000401730E826F37EC0BF012000A0E04EC0B :1036100009F0E8CF00F10B0E04EC09F0E8CF01F15E :103620000C0E04EC09F0E8CF02F10D0E04EC09F0E9 :10363000E8CF03F13BEF1BF0060E04EC09F0E8CFF6 :1036400000F1070E04EC09F0E8CF01F1080E04ECDC :1036500009F0E8CF02F1090E04EC09F0E8CF03F11C :103660003BEF1BF00101C5EC20F0078457C100F1CE :1036700058C101F107940101E80E046F800E056F37 :10368000000E066F000E076FDBEC1FF0000E046FDC :10369000040E056F000E066F000E076FFBEC1FF0A7 :1036A000880E046F130E056F000E066F000E076F75 :1036B000CAEC1FF00A0E046F000E056F000E066FB5 :1036C000000E076FFBEC1FF068EC20F0010129678A :1036D0006FEF1BF00401200E826F72EF1BF00401EC :1036E0002D0E826F37EC0BF030C182F40401300EE6 :1036F000822737EC0BF031C182F40401300E8227AF :1037000037EC0BF032C182F40401300E822737EC23 :103710000BF004012E0E826F37EC0BF033C182F4F4 :103720000401300E822737EC0BF00401430E826F48 :1037300037EC0BF0120087C32AF188C32BF189C341 :103740002CF18AC32DF18BC32EF18CC32FF18DC3C5 :1037500030F18EC331F190C332F191C333F10101E5 :10376000296B13EC21F08AEC20F00101000E046FAC :10377000000E056F010E066F000E076FDBEC1FF0E9 :103780000E0E0C6E00C10BF0EDEC08F00F0E0C6E7F :1037900001C10BF0EDEC08F0100E0C6E02C10BF045 :1037A000EDEC08F0110E0C6E03C10BF0EDEC08F01F :1037B00004017A0E826F37EC0BF004012C0E826F3D :1037C00037EC0BF00401350E826F37EC0BF004017F :1037D0002C0E826F37EC0BF017EC1AF019EF14F087 :1037E00087C32AF188C32BF189C32CF18AC32DF139 :1037F0008BC32EF18CC32FF18DC330F18EC331F109 :1038000090C332F191C333F10101296B13EC21F024 :103810008AEC20F0880E046F130E056F000E066F01 :10382000000E076FCFEC1FF0000E046F040E056F43 :10383000000E066F000E076FDBEC1FF00101E80EB3 :10384000046F800E056F000E066F000E076FFBEC15 :103850001FF00A0E0C6E00C10BF0EDEC08F00B0E21 :103860000C6E01C10BF0EDEC08F00C0E0C6E02C1F9 :103870000BF0EDEC08F00D0E0C6E03C10BF0EDEC4F :1038800008F004017A0E826F37EC0BF004012C0E65 :10389000826F37EC0BF00401360E826F37EC0BF0C1 :1038A00004012C0E826F37EC0BF006EC1BF019EFC5 :1038B00014F087C32AF188C32BF189C32CF18AC382 :1038C0002DF18BC32EF18CC32FF18DC330F18FC33B :1038D00031F190C332F191C333F1010113EC21F0C6 :1038E0008AEC20F0000E046F120E056F000E066FBA :1038F000000E076FDBEC1FF001010A0E046F000ED3 :10390000056F000E066F000E076FFBEC1FF0120E26 :103910000C6E00C10BF0EDEC08F0130E0C6E01C143 :103920000BF0EDEC08F0140E0C6E02C10BF0EDEC98 :1039300008F0150E0C6E03C10BF0EDEC08F004015D :103940007A0E826F37EC0BF004012C0E826F37EC8D :103950000BF00401370E826F37EC0BF004012C0ED4 :10396000826F37EC0BF08AEC1AF019EF14F087C372 :103970002AF188C32BF189C32CF18AC32DF18BC3A3 :103980002EF18CC32FF18DC330F18EC331F190C372 :1039900032F191C333F10101296B13EC21F08AEC70 :1039A00020F0880E046F130E056F000E066F000ED8 :1039B000076FCFEC1FF0000E046F040E056F000EB2 :1039C000066F000E076FDBEC1FF00101E80E046FBD :1039D000800E056F000E066F000E076FFBEC1FF0E8 :1039E000060E0C6E00C10BF0EDEC08F0070E0C6E2D :1039F00001C10BF0EDEC08F0080E0C6E02C10BF0EB :103A0000EDEC08F0090E0C6E03C10BF0EDEC08F0C4 :103A100004017A0E826F37EC0BF004012C0E826FDA :103A200037EC0BF00401380E826F37EC0BF0040119 :103A30002C0E826F37EC0BF01CEC1BF019EF14F01E :103A400007A893EF1DF00101800E006F1A0E016FA1 :103A5000060E026F000E036F4BC104F14CC105F15D :103A60004DC106F14EC107F1CAEC1FF003BFD9EFFB :103A70001DF025EC1EF04BC100F14CC101F14DC110 :103A800002F14EC103F10782D7EC1EF018C104F118 :103A900019C105F11AC106F11BC107F1F80E006F3B :103AA000CD0E016F660E026F030E036FCAEC1FF09E :103AB0000E0E0C6E00C10BF0EDEC08F00F0E0C6E4C :103AC00001C10BF0EDEC08F0100E0C6E02C10BF012 :103AD000EDEC08F0110E0C6E03C10BF0EDEC08F0EC :103AE00007840101C5EC20F057C100F158C101F174 :103AF00007940A0E0C6E00C10BF0EDEC08F00B0EF3 :103B00000C6E01C10BF0EDEC08F00C0E0C6E02C156 :103B10000BF0EDEC08F00D0E0C6E03C10BF0EDECAC :103B200008F0D9EF1DF007AAD9EF1DF007840101B5 :103B3000C5EC20F057C100F158C101F10794060E01 :103B40000C6E00C10BF0EDEC08F0070E0C6E01C11D :103B50000BF0EDEC08F0080E0C6E02C10BF0EDEC72 :103B600008F0090E0C6E03C10BF0EDEC08F00784B1 :103B700062C100F163C101F164C102F165C103F1E9 :103B80000794120E0C6E00C10BF0EDEC08F0130E52 :103B90000C6E01C10BF0EDEC08F0140E0C6E02C1BE :103BA0000BF0EDEC08F0150E0C6E03C10BF0EDEC14 :103BB00008F00798079A0401805181197F0B0DE0E6 :103BC0009EA8FED714EE00F081517F0BE126E7504E :103BD000812B0F01AD6EDBEF1DF084EF0AF018C1F1 :103BE00000F119C101F11AC102F11BC103F1000E6C :103BF000046F000E056F010E066F000E076FFBECE1 :103C00001FF029A11AEF1EF02051D8B41AEF1EF0B0 :103C100018C100F119C101F11AC102F11BC103F170 :103C2000000E046F000E056F0A0E066F000E076F80 :103C3000FBEC1FF0120001010451001305510113A8 :103C4000065102130751031312000101186B196B7F :103C50001A6B1B6B12002AC182F40401300E8227FA :103C600037EC0BF02BC182F40401300E822737ECC5 :103C70000BF02CC182F40401300E822737EC0BF0DC :103C80002DC182F40401300E822737EC0BF02EC1D7 :103C900082F40401300E822737EC0BF02FC182F43E :103CA0000401300E822737EC0BF030C182F404019E :103CB000300E822737EC0BF031C182F40401300E54 :103CC000822737EC0BF032C182F40401300E8227D8 :103CD00037EC0BF033C182F40401300E822737EC4D :103CE0000BF012002FC182F40401300E822737EC52 :103CF0000BF030C182F40401300E822737EC0BF058 :103D000031C182F40401300E822737EC0BF032C14E :103D100082F40401300E822737EC0BF033C182F4B9 :103D20000401300E822737EC0BF01200060E1E6ED7 :103D3000060E1F6E060E206E1E2E9CEF1EF01F2E0E :103D40009CEF1EF0202E9CEF1EF08B84020E1E6E48 :103D5000020E1F6E020E206E1E2EACEF1EF01F2EE6 :103D6000ACEF1EF0202EACEF1EF08B941200FF0E75 :103D70001F6E1FC020F0030E1E6E8B841E2EBDEF23 :103D80001EF0030E1E6E202EBDEF1EF08B941FC082 :103D900020F0030E1E6E1E2ECBEF1EF0030E1E6EC5 :103DA000203ECBEF1EF01F2EB9EF1EF012000101D6 :103DB000005305E1015303E1025301E1002B9AECAA :103DC0001FF0C5EC20F03951006F3A51016F420EDF :103DD000046F4B0E056F000E066F000E076FDBECD5 :103DE0001FF000C104F101C105F102C106F103C1D8 :103DF00007F118C100F119C101F11AC102F11BC18B :103E000003F107B208EF1FF0CFEC1FF00AEF1FF02D :103E1000CAEC1FF000C118F101C119F102C11AF179 :103E200003C11BF11200C5EC20F059C100F15AC1C9 :103E300001F1060E04EC09F0E8CF04F1070E04ECE2 :103E400009F0E8CF05F1080E04EC09F0E8CF06F11F :103E5000090E04EC09F0E8CF07F1CAEC1FF000C12D :103E600024F101C125F102C126F103C127F1290E78 :103E7000046F000E056F000E066F000E076FDBEC7F :103E80001FF0EE0E046F430E056F000E066F000E5E :103E9000076FCFEC1FF024C104F125C105F126C145 :103EA00006F127C107F1DBEC1FF000C11CF101C1D5 :103EB0001DF102C11EF103C11FF1120E04EC09F045 :103EC000E8CF04F1130E04EC09F0E8CF05F1140E6D :103ED00004EC09F0E8CF06F1150E04EC09F0E8CF88 :103EE00007F10D0E006F000E016F000E026F000E45 :103EF000036FDBEC1FF0180E046F000E056F000E51 :103F0000066F000E076FFBEC1FF01CC104F11DC112 :103F100005F11EC106F11FC107F1CFEC1FF06A0EBB :103F2000046F2A0E056F000E066F000E076FCAECB5 :103F30001FF01200BF0EFA6E200E3A6F396BD89048 :103F40000037013702370337D8B0ABEF1FF03A2FF5 :103F5000A0EF1FF039073A070353D8B4120003311A :103F6000070B80093F6F03390F0B010F396F80EC8E :103F70005FF0406F390580EC5FF0405D405F396B6A :103F80003F33D8B0392739333FA9C0EF1FF0405134 :103F9000392712000101EAEC20F0D8B0120001012B :103FA00003510719346FADEC20F0D8900751031975 :103FB00034AF800F12000101346BD1EC20F0D8A097 :103FC000E7EC20F0D8B01200BCEC20F0C5EC20F0FB :103FD0001F0E366FFDEC20F00B35D8B0ADEC20F0A5 :103FE000D8A00335D8B01200362FEAEF1FF034B155 :103FF000D4EC20F012000101346B045105110611BC :1040000007110008D8A0D1EC20F0D8A0E7EC20F0F0 :10401000D8B01200086B096B0A6B0B6BFDEC20F03B :104020001F0E366FFDEC20F007510B5DD8A425EF75 :1040300020F006510A5DD8A425EF20F00551095D56 :10404000D8A425EF20F00451085DD8A038EF20F067 :104050000451085F0551D8A0053D095F0651D8A05D :10406000063D0A5F0751D8A0073D0B5FD89000813D :10407000362F12EF20F034B1D4EC20F0346BD1ECB9 :1040800020F0D89001EC21F007510B5DD8A455EF3A :1040900020F006510A5DD8A455EF20F00551095DC6 :1040A000D8A455EF20F00451085DD8A064EF20F0AB :1040B000003F64EF20F0013F64EF20F0023F64EF27 :1040C00020F0032BD8B4120034B1D4EC20F012004D :1040D0000101346BD1EC20F0D8B0120006EC21F0D5 :1040E000200E366F003701370237033711EE33F0F9 :1040F0000A0E376FE7360A0EE75CD8B0E76EE55276 :10410000372F7AEF20F0362F72EF20F034B129816B :10411000D890120001010A0E346F200E366F11EE96 :1041200029F03451376F0A0ED890E652D8B0E726FE :10413000E732372F95EF20F003330233013300339A :10414000362F8FEF20F0E750FF0FD8A00335D8B0FF :10415000120029B1D4EC20F01200045100270551BF :10416000D8B0053D01270651D8B0063D02270751BA :10417000D8B0073D032712000051086F0151096FA5 :1041800002510A6F03510B6F12000101006B016BAA :10419000026B036B12000101046B056B066B076B6E :1041A00012000335D8A012000351800B001F011F1D :1041B000021F031F003FE4EF20F0013FE4EF20F077 :1041C000023FE4EF20F0032B342B032512000735C8 :1041D000D8A012000751800B041F051F061F071FE0 :1041E000043FFAEF20F0053FFAEF20F0063FFAEF28 :1041F00020F0072B342B0725120000370137023738 :104200000337083709370A370B3712000101296BCA :104210002A6B2B6B2C6B2D6B2E6B2F6B306B316BDA :10422000326B336B120001012A510F0B2A6F2B5195 :104230000F0B2B6F2C510F0B2C6F2D510F0B2D6F64 :104240002E510F0B2E6F2F510F0B2F6F30510F0B65 :10425000306F31510F0B316F32510F0B326F3351C1 :064260000F0B336F12008A :10BF0000E844F926000C160C2B0C3F0C520C640C68 :10BF1000760C860C960CA50CB30CC10CCF0CDC0C6B :06BF2000E80CF40C000C1B :00000001FF ./firmware/SQM-LU-DL-4-6-81.hex0000644000175000017500000022466214573201742015505 0ustar anthonyanthony:020000040000FA :0408000098EF0BF072 :1008100003B275EF05F0F2B493EF05F09EB09BEFD5 :1008200005F09EB2A3EF05F0F2A81AEF04F0F2B2C1 :1008300023EF04F0F2B01FEF04F047EF0BF0F29655 :10084000F29047EF0BF0CD90F2929EA02DEF04F0C6 :100850000101533F2DEF04F0542BB2C1B6F1B3C1E7 :10086000B7F1B4C1B8F1B5C1B9F1AEC1B2F1AFC120 :10087000B3F1B0C1B4F1B1C1B5F1AAC1AEF1ABC130 :10088000AFF1ACC1B0F1ADC1B1F1A6C1AAF1A7C140 :10089000ABF1A8C1ACF1A9C1ADF1A2C1A6F1A3C150 :1008A000A7F1A4C1A8F1A5C1A9F19EC1A2F19FC160 :1008B000A3F1A0C1A4F1A1C1A5F19AC19EF19BC170 :1008C0009FF19CC1A0F19DC1A1F1CECF9AF1CFCFF4 :1008D0009BF153C19CF154C19DF1CF6ACE6A0101D5 :1008E000536B546B9E90CD800FBC0F8E0FBA7CEF74 :1008F00004F00F8A47EF0BF013880F8C0FBEB9EF8F :1009000004F09AC19EF19BC19FF19CC1A0F19DC1D1 :10091000A1F19EC1A2F19FC1A3F1A0C1A4F1A1C107 :10092000A5F1A2C1A6F1A3C1A7F1A4C1A8F1A5C1D7 :10093000A9F1A6C1AAF1A7C1ABF1A8C1ACF1A9C1A7 :10094000ADF1AAC1AEF1ABC1AFF1ACC1B0F1ADC177 :10095000B1F1AEC1B2F1AFC1B3F1B0C1B4F1B1C147 :10096000B5F1B2C1B6F1B3C1B7F1B4C1B8F1B5C117 :10097000B9F101015E6B5F6B606B616B9A515E2731 :100980009B515F239C5160239D5161239E515E27A3 :100990009F515F23A0516023A1516123A2515E2783 :1009A000A3515F23A4516023A5516123A6515E2763 :1009B000A7515F23A8516023A9516123AA515E2743 :1009C000AB515F23AC516023AD516123AE515E2723 :1009D000AF515F23B0516023B1516123B2515E2703 :1009E000B3515F23B4516023B5516123B6515E27E3 :1009F000B7515F23B8516023B9516123D8900101E9 :100A0000613360335F335E33D8900101613360330B :100A10005F335E33D8900101613360335F335E33FF :100A200000C10CF101C10DF102C10EF103C10FF1C2 :100A300004C110F105C111F106C112F107C113F192 :100A400008C114F109C115F10AC116F10BC117F162 :100A500034C135F111B838EF05F00101620E046FB1 :100A6000010E056F000E066F000E076F41EF05F0D7 :100A70000101A70E046F020E056F000E066F000E37 :100A8000076F5EC100F15FC101F160C102F161C198 :100A900003F19FEC30F003BF04D01CBE02D01CA0B9 :100AA000108C11A059EF05F010BA59EF05F00F8026 :100AB000108A0CC100F10DC101F10EC102F10FC18C :100AC00003F110C104F111C105F112C106F113C106 :100AD00007F114C108F115C109F116C10AF117C1D6 :100AE0000BF135C134F147EF0BF00392ABB2AB9889 :100AF000AB88030103EE00F080517F0BE92604C0B0 :100B0000EFFF802B8151805D700BD8A48B82000099 :100B10008051815D700BD8A48B9281518019D8B41B :100B2000079047EF0BF0F2940101453F47EF0BF0C0 :100B3000462B47EF0BF09E900101533F47EF0BF020 :100B4000542B47EF0BF09E9211B843EF08F00400CE :100B500066A1ABEF05F08BB4B5EF05F010ACB5EFC7 :100B600005F08B84109CB6EF05F08B94077C07ACE6 :100B7000D1EF05F0C274C2B4CBEF05F0C3CFB7F527 :100B8000C4CFB8F50501D890B833B733D890B8338F :100B9000B733D2EF05F0C3CF55F1C4CF56F1D2EF42 :100BA00005F0C28207B444EF06F047C14BF148C1DB :100BB0004CF149C14DF14AC14EF15EC162F15FC1D4 :100BC00063F160C164F161C165F113A8EAEF05F05A :100BD000138C13989AC1BAF19BC1BBF19CC1BCF1B3 :100BE0009DC1BDF19EC1BEF19FC1BFF1A0C1C0F1C9 :100BF000A1C1C1F1A2C1C2F1A3C1C3F1A4C1C4F199 :100C0000A5C1C5F1A6C1C6F1A7C1C7F1A8C1C8F168 :100C1000A9C1C9F1AAC1CAF1ABC1CBF1ACC1CCF138 :100C2000ADC1CDF1AEC1CEF1AFC1CFF1B0C1D0F108 :100C3000B1C1D1F1B2C1D2F1B3C1D3F1B4C1D4F1D8 :100C4000B5C1D5F1B6C1D6F1B7C1D7F1B8C1D8F1A8 :100C5000B9C1D9F1B7C5B9F5B8C5BAF5B9C5BBF5CC :100C6000BAC5BCF5010155515B2756515C23E86AB2 :100C70005D230E2E44EF06F05CC157F15DC158F1C3 :100C80005B6B5C6B5D6B078E0201002F47EF0BF017 :100C90003C0E006F1D50E00BE00AE86612881BBE98 :100CA00002D01BB4108E00C10CF101C10DF102C1C4 :100CB0000EF103C10FF104C110F105C111F106C11C :100CC00012F107C113F108C114F109C115F10AC1EC :100CD00016F10BC117F134C135F181AAACEF06F062 :100CE00015A4F7EF06F005012F51000AD8B43AEF2A :100CF00007F005012F51010AD8B4B6EF06F005013F :100D00002F51020AD8B4F7EF06F005012F51030A5C :100D1000D8B4F7EF06F005012F51040AD8B4F7EF65 :100D200006F005012F51050AD8B4F7EF06F00501CA :100D30002F51060AD8B4F7EF06F005012F51070A24 :100D4000D8B4F7EF06F005012F51320AD8B4B4EF4A :100D500006F02F6B3AEF07F000011650030AD8B4E3 :100D6000F7EF06F03AEF07F03AEF07F005015767A3 :100D7000C1EF06F05867C1EF06F05967C1EF06F002 :100D80005A67C5EF06F03AEF07F05BC500F15CC5A6 :100D900001F15DC502F15EC503F10101010E046FB1 :100DA000000E056F000E066F000E076F9FEC30F00F :100DB00000C15BF501C15CF502C15DF503C15EF5E3 :100DC00001010067EBEF06F00167EBEF06F0026749 :100DD000EBEF06F003673AEF07F057C55BF558C530 :100DE0005CF559C55DF55AC55EF524EF07F00FBEF9 :100DF0000CEF07F010A011EF07F00101476708EFB3 :100E000007F0486708EF07F0496708EF07F04A67FF :100E10000CEF07F011EF07F007AE11EF07F024EF2A :100E200007F00501312F3AEF07F03C0E316F302FFC :100E30003AEF07F00101000E626FE00E636FA50E3E :100E4000646F010E656F138800011650000AD8B454 :100E500032EF07F000011650030AD8B437EF07F05D :100E60003AEF07F00001010E166E3AEF07F00001AD :100E7000040E166E0501666B37B740EF07F066810A :100E80000CC100F10DC101F10EC102F10FC103F15E :100E900010C104F111C105F112C106F113C107F12E :100EA00014C108F115C109F116C10AF117C10BF1FE :100EB00035C134F100C10CF101C10DF102C10EF1D7 :100EC00003C10FF104C110F105C111F106C112F106 :100ED00007C113F108C114F109C115F10AC116F1D6 :100EE0000BC117F134C135F101018E677FEF07F0B7 :100EF0008F677FEF07F090677FEF07F0916783EFD1 :100F000007F0B4EF07F092C100F193C101F194C171 :100F100002F195C103F10101010E046F000E056F8E :100F2000000E066F000E076F9FEC30F000C192F1CB :100F300001C193F102C194F103C195F10101006770 :100F4000A9EF07F00167A9EF07F00267A9EF07F023 :100F50000367B4EF07F08EC192F18FC193F190C196 :100F600094F191C195F10F80D57ED5BE6ED0D6CFCC :100F700047F1D7CF48F145C149F1E86AE8CF4AF1D6 :100F8000138A1CBE02D01CA0108C109047C100F127 :100F900048C101F149C102F14AC103F101010A0E40 :100FA000046F000E056F000E066F000E076F9FECBA :100FB00030F003AF1080010154A7EBEF07F00F9A58 :100FC0000F9C0F9E0101000E5E6F600E5F6F3D0E65 :100FD000606F080E616F010147BFFBEF07F04867C4 :100FE000FBEF07F04967FBEF07F04A67FBEF07F0FD :100FF000F28820EF08F0F2985E6B5F6B606B616BBC :101000009A6B9B6B9C6B9D6B9E6B9F6BA06BA16B9C :10101000A26BA36BA46BA56BA66BA76BA86BA96B4C :10102000AA6BAB6BAC6BAD6BAE6BAF6BB06BB16BFC :10103000B26BB36BB46BB56BB66BB76BB86BB96BAC :10104000D76AD66A0101456B466B0CC100F10DC130 :1010500001F10EC102F10FC103F110C104F111C180 :1010600005F112C106F113C107F114C108F115C150 :1010700009F116C10AF117C10BF135C134F147EF7F :101080000BF047EF0BF00201002FABEF0AF0D59EFB :10109000D6CF47F1D7CF48F145C149F1E86AE8CF4B :1010A0004AF1138AD76AD66A0101456B466BD58E21 :1010B0001D50E00BE00AE86612881BBE02D01BB48C :1010C000108E1AAE1F8C00C10CF101C10DF102C1CE :1010D0000EF103C10FF104C110F105C111F106C1F8 :1010E00012F107C113F108C114F109C115F10AC1C8 :1010F00016F10BC117F134C135F10FA0109A11B8D8 :101100008DEF08F00101620E046F010E056F000EF5 :10111000066F000E076F96EF08F00101A70E046F2F :10112000020E056F000E066F000E076F47C100F13B :1011300048C101F149C102F14AC103F19FEC30F00D :1011400003BFA9EF08F01CBE02D01CA0108C11B088 :101150000F800CC100F10DC101F10EC102F10FC1F0 :1011600003F110C104F111C105F112C106F113C15F :1011700007F114C108F115C109F116C10AF117C12F :101180000BF135C134F102013C0E006F00C10CF1CE :1011900001C10DF102C10EF103C10FF104C110F143 :1011A00005C111F106C112F107C113F108C114F113 :1011B00009C115F10AC116F10BC117F134C135F19E :1011C00081BAE6EF08F015B225EF09F015A025EF7A :1011D00009F015A470EF09F005012F51000AD8B4E9 :1011E000B3EF09F005012F51010AD8B42FEF09F030 :1011F00005012F51020AD8B470EF09F005012F51F3 :10120000030AD8B470EF09F005012F51040AD8B4CD :1012100070EF09F005012F51050AD8B470EF09F0FD :1012200005012F51060AD8B470EF09F005012F51BE :10123000070AD8B470EF09F005012F51320AD8B46B :101240002DEF09F02F6BB3EF09F000011650030AE0 :10125000D8B470EF09F0B3EF09F0B3EF09F005016E :1012600057673AEF09F058673AEF09F059673AEFD4 :1012700009F05A673EEF09F0B3EF09F05BC500F1E2 :101280005CC501F15DC502F15EC503F10101010E0E :10129000046F000E056F000E066F000E076F9FECC7 :1012A00030F000C15BF501C15CF502C15DF503C121 :1012B0005EF50101006764EF09F0016764EF09F072 :1012C000026764EF09F00367B3EF09F057C55BF5F8 :1012D00058C55CF559C55DF55AC55EF59DEF09F039 :1012E0000FBE85EF09F010A08AEF09F001014767F2 :1012F00081EF09F0486781EF09F0496781EF09F054 :101300004A6785EF09F08AEF09F007AE8AEF09F026 :101310009DEF09F00501312FB3EF09F03C0E316F5D :10132000302FB3EF09F00101000E626FE00E636F22 :10133000A50E646F010E656F138800011650000A38 :10134000D8B4ABEF09F000011650030AD8B4B0EFDF :1013500009F0B3EF09F00001010E166EB3EF09F0CA :101360000001040E166E0501666B37B7B9EF09F080 :1013700066810CC100F10DC101F10EC102F10FC176 :1013800003F110C104F111C105F112C106F113C13D :1013900007F114C108F115C109F116C10AF117C10D :1013A0000BF135C134F100C10CF101C10DF102C1E5 :1013B0000EF103C10FF104C110F105C111F106C115 :1013C00012F107C113F108C114F109C115F10AC1E5 :1013D00016F10BC117F134C135F101018E67F8EF39 :1013E00009F08F67F8EF09F09067F8EF09F091675F :1013F000FCEF09F02DEF0AF092C100F193C101F169 :1014000094C102F195C103F10101010E046F000EB8 :10141000056F000E066F000E076F9FEC30F000C1E5 :1014200092F101C193F102C194F103C195F101015F :10143000006722EF0AF0016722EF0AF0026722EF4D :101440000AF003672DEF0AF08EC192F18FC193F17C :1014500090C194F191C195F10F80109047C100F1B6 :1014600048C101F149C102F14AC103F101010A0E6B :10147000046F000E056F000E066F000E076F9FECE5 :1014800030F003AF1080010154A753EF0AF00F9A18 :101490000F9C0F9E0101000E5E6F600E5F6F3D0E90 :1014A000606F080E616F47C100F148C101F149C189 :1014B00002F14AC103F10101140E046F050E056F1C :1014C000000E066F000E076F9FEC30F003AF6CEF5D :1014D0000AF0F28891EF0AF0F2985E6B5F6B606B36 :1014E000616B9A6B9B6B9C6B9D6B9E6B9F6BA06BF8 :1014F000A16BA26BA36BA46BA56BA66BA76BA86B70 :10150000A96BAA6BAB6BAC6BAD6BAE6BAF6BB06B1F :10151000B16BB26BB36BB46BB56BB66BB76BB86BCF :10152000B96B0CC100F10DC101F10EC102F10FC187 :1015300003F110C104F111C105F112C106F113C18B :1015400007F114C108F115C109F116C10AF117C15B :101550000BF135C134F104008BB4B6EF0AF010ACD6 :10156000B6EF0AF08B84109CB7EF0AF08B94077CDF :1015700007ACD2EF0AF0C274C2B4CCEF0AF0C3CF0A :10158000B7F5C4CFB8F50501D890B833B733D890C4 :10159000B833B733D3EF0AF0C3CF55F1C4CF56F108 :1015A000D3EF0AF0C28207B445EF0BF047C14BF10D :1015B00048C14CF149C14DF14AC14EF15EC162F1E1 :1015C0005FC163F160C164F161C165F113A8EBEF24 :1015D0000AF0138C13989AC1BAF19BC1BBF19CC15C :1015E000BCF19DC1BDF19EC1BEF19FC1BFF1A0C1C3 :1015F000C0F1A1C1C1F1A2C1C2F1A3C1C3F1A4C193 :10160000C4F1A5C1C5F1A6C1C6F1A7C1C7F1A8C162 :10161000C8F1A9C1C9F1AAC1CAF1ABC1CBF1ACC132 :10162000CCF1ADC1CDF1AEC1CEF1AFC1CFF1B0C102 :10163000D0F1B1C1D1F1B2C1D2F1B3C1D3F1B4C1D2 :10164000D4F1B5C1D5F1B6C1D6F1B7C1D7F1B8C1A2 :10165000D8F1B9C1D9F1B7C5B9F5B8C5BAF5B9C5A9 :10166000BBF5BAC5BCF5010155515B2756515C234A :10167000E86A5D230E2E45EF0BF05CC157F15DC1AA :1016800058F15B6B5C6B5D6B078E47EF0BF002C034 :10169000E0FF005001C0D8FF1000A6B24DEF0BF0E4 :1016A0000CC0A9FF0BC0A8FFA69EA69CA684F29E14 :1016B000550EA76EAA0EA76EA682F28EA694A6B2AB :1016C0005FEF0BF00C2A1200A96EA69EA69CA680C6 :1016D000A8500C2A120004012C0E826FA2EC0EF00E :1016E000B4EC31F00C5064EC0BF0E8CF00F10C508E :1016F00064EC0BF0E8CF01F101AF84EF0BF00101D6 :10170000FF0E026FFF0E036F3DEC31F0296790EF83 :101710000BF00401200E826FA2EC0EF095EF0BF09F :1017200004012D0E826FA2EC0EF047EC2FF0120098 :1017300015941596076A0F6A106A116A126A136A7D :10174000166A0F010D0EC16E860EC06E030EC26EBC :101750000F01680E896E130E926E080E8A6EF30EDC :10176000936E8B6A900E946EC80E64EC0BF0E8CF0B :1017700025F000012550FE0AD8B4CAEF0BF0000195 :101780002550FD0AD8B4CFEF0BF00F0E266E8F0E4A :10179000276E09D00E0E266E8E0E276E04D00D0E0B :1017A000266E8D0E276E52EC32F092EC33F0F18EF5 :1017B000F19EFC0E64EC0BF0E8CF0BF00BA0118057 :1017C0000BA211820BA411840BA81188C90E64EC22 :1017D0000BF0E8CF1AF0CA0E64EC0BF0E8CF1BF068 :1017E000CB0E64EC0BF0E8CF1CF0CC0E64EC0BF0ED :1017F000E8CF1DF0FB0E64EC0BF0E8CF38F0CE0E16 :1018000064EC0BF0E8CF14F0CD0E64EC0BF0E8CFF5 :1018100037F01F6A206A0E6A01015B6B5C6B5D6BBF :10182000576B586BF29A0101476B486B496B4A6BD7 :101830004B6B4C6B4D6B4E6B4F6B506B516B526BDC :10184000456B466BD76AD66A0F01280ED56EF28AB1 :101850009D90B00ECD6E01015E6B5F6B606B616B36 :10186000626B636B646B656B666B676B686B696BF4 :10187000536B546BCF6ACE6A0F9A0F9C0F9E9D805C :10188000760ECA6E9D8202013C0E006FCC6A160E67 :1018900064EC0BF0E8CF00F1170E64EC0BF0E8CF2E :1018A00001F1180E64EC0BF0E8CF02F1190E64ECB4 :1018B0000BF0E8CF03F1010103AF79EF0CF0B4ECCA :1018C00031F0160E0C6E00C10BF04DEC0BF0170E44 :1018D0000C6E01C10BF04DEC0BF0180E0C6E02C13A :1018E0000BF04DEC0BF0190E0C6E03C10BF04DEC30 :1018F0000BF000C18EF101C18FF102C190F103C163 :1019000091F100C192F101C193F102C194F103C1BF :1019100095F11A0E64EC0BF0E8CF00F11B0E64ECAD :101920000BF0E8CF01F11C0E64EC0BF0E8CF02F1F4 :101930001D0E64EC0BF0E8CF03F1010103AFCFEF14 :101940000CF0B4EC31F01A0E0C6E00C10BF04DEC43 :101950000BF01B0E0C6E01C10BF04DEC0BF01C0ECE :101960000C6E02C10BF04DEC0BF01D0E0C6E03C1A2 :101970000BF04DEC0BF01A0E64EC0BF0E8CF00F11D :101980001B0E64EC0BF0E8CF01F11C0E64EC0BF0C5 :10199000E8CF02F11D0E64EC0BF0E8CF03F100C1BB :1019A00096F101C197F102C198F103C199F1240E9A :1019B000AC6E900EAB6E240EAC6E080EB86E000EC0 :1019C000B06E1F0EAF6E0401806B816B0F01900E25 :1019D000AB6E0F019D8A0301806B816BC26B8B9292 :1019E00023EC37F023EC37F005EC39F001EC35F05F :1019F000200E64EC0BF0E8CF2FF505012F51FF0A04 :101A0000D8A40AEF0DF02F6B200E0C6E2FC50BF033 :101A10004DEC0BF00501010E306F3C0E316F250EC1 :101A200064EC0BF0E8CF00F1260E64EC0BF0E8CF8D :101A300001F1270E64EC0BF0E8CF02F1280E64EC04 :101A40000BF0E8CF03F1010103AF41EF0DF0B4EC6F :101A500031F0250E0C6E00C10BF04DEC0BF0260E94 :101A60000C6E01C10BF04DEC0BF0270E0C6E02C199 :101A70000BF04DEC0BF0280E0C6E03C10BF04DEC8F :101A80000BF000C157F501C158F502C159F503C16A :101A90005AF500C15BF501C15CF502C15DF503C1FA :101AA0005EF5290E64EC0BF0E8CF5FF5050160519F :101AB0005F5DD8A05FC560F5210E64EC0BF0E8CF48 :101AC00000F1220E64EC0BF0E8CF01F1230E64EC80 :101AD0000BF0E8CF02F1240E64EC0BF0E8CF03F139 :101AE000010103AFA2EF0DF0B4EC31F0210E0C6E4A :101AF00000C10BF04DEC0BF0220E0C6E01C10BF08F :101B00004DEC0BF0230E0C6E02C10BF04DEC0BF004 :101B1000240E0C6E03C10BF04DEC0BF0210E64ECA7 :101B20000BF0E8CF00F1220E64EC0BF0E8CF01F1EE :101B3000230E64EC0BF0E8CF02F1240E64EC0BF002 :101B4000E8CF03F100C161F501C162F502C163F59F :101B500003C164F512EC34F02FEC33F065EC32F095 :101B60001590C70E64EC0BF0E8CF00F1010100B155 :101B7000BDEF0DF01592BEEF0DF0158281AACCEFEE :101B80000DF015B4C7EF0DF01580CCEF0DF044EC5F :101B900039F015A0ADEF39F007900001F28EF28C0C :101BA00012AE03D012BC7AEF19F007B0C6EF2DF0D9 :101BB0000FB0B6EF26F010BEB6EF26F012B8B6EFB3 :101BC00026F000011650010AD8B4BEEF1DF081BA0C :101BD000F2EF0DF000011650040AD8B437EF1CF0F4 :101BE000F8EF0DF000011650040AD8B4FAEF1DF01A :101BF0000301805181197F0BD8B4C6EF2DF013EE8D :101C000000F081517F0BE126812BE7CFE8FFE00B4D :101C1000D8B4C6EF2DF023EE82F0C2513F0BD92687 :101C2000E7CFDFFFC22BDF50780AD8A4C6EF2DF034 :101C3000078092C100F193C101F194C102F195C1F5 :101C400003F10101040E046F000E056F000E066F14 :101C5000000E076F9FEC30F000AF38EF0EF001017F :101C6000030E926F000E936F000E946F000E956F2F :101C700003018251720AD8B437EF26F08251520A1A :101C8000D8B437EF26F08251750AD8B437EF26F072 :101C90008251680AD8B4B6EF0EF08251630AD8B404 :101CA00080EF2AF08251690AD8B404EF21F0825102 :101CB0007A0AD8B417EF22F08251490AD8B4A3EFB8 :101CC00020F08251500AD8B4C1EF1FF08251700A3F :101CD000D8B404EF20F08251540AD8B42FEF20F08A :101CE0008251740AD8B475EF20F08251410AD8B4F9 :101CF000BBEF0FF082514B0AD8B4B8EF0EF082510F :101D00006D0AD8B42BEF14F082514D0AD8B444EFC9 :101D100014F08251730AD8B467EF25F08251530A48 :101D2000D8B4CCEF25F082514C0AD8B4D3EF14F0DC :101D30008251590AD8B47CEF13F012AE01D0128C44 :101D4000B7EF2AF0040114EE00F080517F0BE1267A :101D500082C4E7FF802B120004010D0E826FA2ECFB :101D60000EF00A0E826FA2EC0EF01200B5EF2AF010 :101D700004014B0E826FA2EC0EF004012C0E826F58 :101D8000A2EC0EF081B802D037B630D003018351F7 :101D9000430AD8B4FDEF0EF003018351630AD8B4AF :101DA000FFEF0EF003018351520AD8B401EF0FF098 :101DB00003018351720AD8B403EF0FF0030183517A :101DC000470AD8B405EF0FF003018351670AD8B46E :101DD00007EF0FF003018351540AD8B409EF0FF055 :101DE00003018351740AD8B479EF0FF003018351D2 :101DF000550AD8B40BEF0FF083D037807BD03790E3 :101E000079D0378277D0379275D0378473D03794B2 :101E100071D037866FD084C330F185C331F186C36A :101E200032F187C333F10101296B02EC32F079EC16 :101E300031F000C104F101C105F102C106F103C195 :101E400007F1F5EC31F0200EF86EF76AF66A09003A :101E5000F5CF2CF10900F5CF2DF10900F5CF2EF1CA :101E60000900F5CF2FF10900F5CF30F10900F5CFCA :101E700031F10900F5CF32F10900F5CF33F101015D :101E8000296B02EC32F079EC31F09FEC30F001017B :101E9000006752EF0FF0016752EF0FF0026752EF49 :101EA0000FF0036701D025D004014E0E826FA2EC23 :101EB0000EF004016F0E826FA2EC0EF004014D0EC5 :101EC000826FA2EC0EF00401610E826FA2EC0EF0A4 :101ED0000401740E826FA2EC0EF00401630E826F97 :101EE000A2EC0EF00401680E826FA2EC0EF0B5EFCA :101EF0002AF03796CD0E0C6E37C00BF04DEC0BF080 :101F0000CD0E64EC0BF0E8CF37F037B006D004010B :101F1000630E826FA2EC0EF005D00401430E826FB7 :101F2000A2EC0EF037B206D00401720E826FA2EC62 :101F30000EF005D00401520E826FA2EC0EF037B401 :101F400006D00401670E826FA2EC0EF005D00401EA :101F5000470E826FA2EC0EF037B606D00401740E65 :101F6000826FA2EC0EF005D00401540E826FA2EC39 :101F70000EF0B5EF2AF00401410E826FA2EC0EF0D4 :101F800003018351310AD8B49CEF12F0030183514D :101F9000320AD8B4CCEF11F003018351330AD8B41C :101FA00055EF11F003018351340AD8B445EF10F016 :101FB00003018351350AD8B4E5EF0FF004013F0E59 :101FC000826FA2EC0EF0B5EF2AF003018451300AC3 :101FD000D8B40BEF10F003018451310AD8B40EEFDE :101FE00010F003018451650AD8B4FFEF0FF003012C :101FF0008451640AD8B402EF10F00FEF10F038905B :1020000003EF10F03880FB0E0C6E38C00BF04DEC77 :102010000BF00FEF10F08B900FEF10F08B8004019E :10202000350E826FA2EC0EF004012C0E826FA2EC32 :102030000EF08BB023EF10F00401300E826FA2EC93 :102040000EF028EF10F00401310E826FA2EC0EF0BA :1020500004012C0E826FA2EC0EF0FB0E64EC0BF070 :10206000E8CF38F038A03CEF10F00401640E826F26 :10207000A2EC0EF041EF10F00401650E826FA2ECAD :102080000EF043EF10F0B5EF2AF0CC0E64EC0BF03D :10209000E8CF0BF004012C0E826FA2EC0EF00301CE :1020A0008451310AD8B469EF10F003018451300A29 :1020B000D8B46BEF10F0030184514D0AD8B475EF1A :1020C00010F003018451540AD8B47CEF10F093EF60 :1020D00010F08A8401D08A940BAE04D00BAC02D0ED :1020E0000BBA21D0E00E0B1218D01F0E0B1685393B :1020F000E844E00B0B1211D0E00E0B16F5EC31F0BA :1021000085C332F186C333F10101296B02EC32F051 :1021100079EC31F000511F0B0B12CC0E0C6E0BC082 :102120000BF04DEC0BF00401340E826FA2EC0EF0BC :1021300004012C0E826FA2EC0EF0CC0E64EC0BF0BE :10214000E8CF1DF08AB406D00401300E826FA2ECF5 :102150000EF005D00401310E826FA2EC0EF00401E6 :102160002C0E826FA2EC0EF01D38E840070BE8CF72 :1021700082F40401300E8227A2EC0EF004012C0E32 :10218000826FA2EC0EF0B4EC31F01D501F0BE8CFC3 :1021900000F13DEC31F032C182F40401300E8227AF :1021A000A2EC0EF033C182F40401300E8227A2ECBF :1021B0000EF004012C0E826FA2EC0EF0B4EC31F0A4 :1021C00031C000F100AF0BD0FF0E016FFF0E026FA8 :1021D000FF0E036F04012D0E826FA2EC0EF03DEC9A :1021E00031F031C182F40401300E8227A2EC0EF0EE :1021F00032C182F40401300E8227A2EC0EF033C10A :1022000082F40401300E8227A2EC0EF004012C0EA1 :10221000826FA2EC0EF0B4EC31F030C000F13DEC76 :1022200031F031C182F40401300E8227A2EC0EF0AD :1022300032C182F40401300E8227A2EC0EF033C1C9 :1022400082F40401300E8227A2EC0EF004012C0E61 :10225000826FA2EC0EF0B4EC31F032C000F100AFAE :102260000BD0FF0E016FFF0E026FFF0E036F040114 :102270002D0E826FA2EC0EF03DEC31F031C182F4F4 :102280000401300E8227A2EC0EF032C182F4040168 :10229000300E8227A2EC0EF033C182F40401300E1E :1022A0008227A2EC0EF0B5EF2AF0CB0E64EC0BF017 :1022B000E8CF0BF004012C0E826FA2EC0EF00301AC :1022C0008451450AD8B479EF11F003018451440ACE :1022D000D8B47CEF11F003018451300AD8B47FEFF9 :1022E00011F003018451310AD8B483EF11F08EEF5D :1022F00011F00B9E88EF11F00B8E88EF11F0FC0EA1 :102300000B1688EF11F0FC0E0B160B8088EF11F006 :10231000CB0E0C6E0BC00BF04DEC0BF00401330E2A :10232000826FA2EC0EF004012C0E826FA2EC0EF074 :10233000CB0E64EC0BF0E8CF1CF01CBEA7EF11F045 :102340000401450E826FA2EC0EF0ACEF11F0040117 :10235000440E826FA2EC0EF004012C0E826FA2ECF0 :102360000EF00401300E826FA2EC0EF004012C0E70 :10237000826FA2EC0EF01CB0C5EF11F00401300E1C :10238000826FA2EC0EF0CAEF11F00401310E826FE1 :10239000A2EC0EF0B5EF2AF0CA0E64EC0BF0E8CF19 :1023A0000BF004012C0E826FA2EC0EF0030184519D :1023B000450AD8B408EF12F003018451440AD8B496 :1023C0000BEF12F0030184514D0AD8B414EF12F050 :1023D00003018451410AD8B40EEF12F00301845175 :1023E000460AD8B411EF12F003018451560AD8B44A :1023F0001CEF12F003018451500AD8B427EF12F0F9 :1024000003018451520AD8B42AEF12F033EF12F0CC :102410000B9E2DEF12F00B8E2DEF12F00B9C2DEF7B :1024200012F00B8C2DEF12F0FC0E0B1685C3E8FF9B :10243000030B0B122DEF12F0C70E0B1685C3E8FF2E :10244000070BE846E846E8460B122DEF12F00B8426 :102450002DEF12F00B942DEF12F0CA0E0C6E0BC084 :102460000BF04DEC0BF0CA0E64EC0BF0E8CF1BF058 :102470000401320E826FA2EC0EF004012C0E826F6A :10248000A2EC0EF01BBE4CEF12F00401450E826F61 :10249000A2EC0EF051EF12F00401440E826FA2EC98 :1024A0000EF004012C0E826FA2EC0EF01BC0E8FFB0 :1024B000030BE8CF82F40401300E8227A2EC0EF069 :1024C00004012C0E826FA2EC0EF01BBC6FEF12F019 :1024D0000401410E826FA2EC0EF074EF12F00401C1 :1024E000460E826FA2EC0EF004012C0E826FA2EC5D :1024F0000EF01BC0E8FF380BE842E842E842E8CFA4 :1025000082F40401300E8227A2EC0EF004012C0E9E :10251000826FA2EC0EF01BB495EF12F00401520E84 :10252000826FA2EC0EF09AEF12F00401500E826F4F :10253000A2EC0EF0B5EF2AF0C90E64EC0BF0E8CF78 :102540000BF004012C0E826FA2EC0EF003018451FB :10255000450AD8B4BAEF12F003018451440AD8B442 :10256000BDEF12F0030184514D0AD8B4C0EF12F050 :10257000CEEF12F00B9EC8EF12F00B8EC8EF12F0E8 :10258000F80E0B1685C3E8FF070B0B12C8EF12F00D :10259000C90E0C6E0BC00BF04DEC0BF00401310EAC :1025A000826FA2EC0EF004012C0E826FA2EC0EF0F2 :1025B000C90E64EC0BF0E8CF1AF01ABE06D0040185 :1025C000450E826FA2EC0EF005D00401440E826F1E :1025D000A2EC0EF004012C0E826FA2EC0EF01AC0D9 :1025E000E8FF070BE8CF82F40401300E8227A2EC4B :1025F0000EF004012C0E826FA2EC0EF00780B4ECFA :1026000031F02CC0E8FF003B00430043030B3DECDE :1026100031F033C182F40401300E8227A2EC0EF0B7 :1026200004012C0E826FA2EC0EF0B4EC31F02CC041 :1026300001F1019F019D2DC000F101013DEC31F040 :102640002FC182F40401300E8227A2EC0EF030C1BB :1026500082F40401300E8227A2EC0EF031C182F424 :102660000401300E8227A2EC0EF032C182F4040184 :10267000300E8227A2EC0EF033C182F40401300E3A :102680008227A2EC0EF004012C0E826FA2EC0EF059 :10269000B4EC31F02EC001F12FC000F1D89001331D :1026A0000033D8900133003301013DEC31F02FC1EC :1026B00082F40401300E8227A2EC0EF030C182F4C5 :1026C0000401300E8227A2EC0EF031C182F4040125 :1026D000300E8227A2EC0EF032C182F40401300EDB :1026E0008227A2EC0EF033C182F40401300E82275F :1026F000A2EC0EF0B5EF2AF0FC0E64EC0BF0E8CF84 :102700000BF003018351520AD8B4B3EF13F0030165 :102710008351720AD8B4B6EF13F003018351500A03 :10272000D8B4B9EF13F003018351700AD8B4BCEFE9 :1027300013F003018351550AD8B4BFEF13F003011E :102740008351750AD8B4C2EF13F003018351430AD1 :10275000D8B4CBEF13F003018351630AD8B4CEEFA2 :1027600013F0D7EF13F00B90D1EF13F00B80D1EFF4 :1027700013F00B92D1EF13F00B82D1EF13F00B9407 :10278000D1EF13F00B84D1EF13F00B96D1EF13F0D0 :102790000B86D1EF13F00B98D1EF13F00B88D1EF2C :1027A00013F0FC0E0C6E0BC00BF04DEC0BF00401A3 :1027B000590E826FA2EC0EF01190119211941198A3 :1027C000FC0E64EC0BF0E8CF0BF00BA011800BA219 :1027D00011820BA411840BA8118811A0F7EF13F03C :1027E0000401520E826FA2EC0EF0FCEF13F0040114 :1027F000720E826FA2EC0EF011A806EF14F0040125 :10280000430E826FA2EC0EF00BEF14F00401630E86 :10281000826FA2EC0EF011A215EF14F00401500E1D :10282000826FA2EC0EF01AEF14F00401700E826FAA :10283000A2EC0EF011A424EF14F00401550E826FE7 :10284000A2EC0EF029EF14F00401750E826FA2ECD9 :102850000EF0B5EF2AF004016D0E826FA2EC0EF0BF :1028600003018351300AD8B483EF14F0030183517C :10287000310AD8B496EF14F003018351320AD8B468 :10288000A9EF14F0B7EF2AF004014D0E826FA2EC0D :102890000EF0F5EC31F084C331F185C332F186C31B :1028A00033F10101296B02EC32F079EC31F00301D4 :1028B0008351300AD8B46BEF14F003018351310A0D :1028C000D8B473EF14F003018351320AD8B47BEF0C :1028D00014F0B7EF2AF0FD0E0C6E00C10BF04DECBA :1028E0000BF083EF14F0FE0E0C6E00C10BF04DECFC :1028F0000BF096EF14F0FF0E0C6E00C10BF04DECD8 :102900000BF0A9EF14F00401300E826FA2EC0EF070 :1029100004012C0E826FA2EC0EF0B4EC31F0FD0E2F :1029200064EC0BF0E8CF00F1BAEF14F00401310EC3 :10293000826FA2EC0EF004012C0E826FA2EC0EF05E :10294000B4EC31F0FE0E64EC0BF0E8CF00F1BAEF1E :1029500014F00401320E826FA2EC0EF0B4EC31F0F0 :1029600004012C0E826FA2EC0EF0FF0E64EC0BF053 :10297000E8CF00F13DEC31F031C182F40401300EBA :102980008227A2EC0EF032C182F40401300E8227BD :10299000A2EC0EF033C182F40401300E8227A2ECC7 :1029A0000EF0B5EF2AF003018351300AD8B427EFB7 :1029B0001AF003018351310AD8B465EF1BF003010B :1029C0008351320AD8B4D3EF1BF003018351330A89 :1029D000D8B4E3EF1BF003018351340AD8B43EEFBF :1029E0001CF003018351350AD8B412EF1EF0030125 :1029F0008351360AD8B440EF1EF003018351370AE1 :102A0000D8B4FFEF17F003018351380AD8B49DEF13 :102A100018F003018351440AD8B42BEF16F00301D8 :102A20008351640AD8B44BEF16F003018351460A70 :102A3000D8B417EF1DF0030183514D0AD8B478EFD5 :102A400016F0030183516D0AD8B492EF16F003011A :102A500083515A0AD8B4DFEF1AF003018351490AAF :102A6000D8B440EF1FF003018351500AD8B472EF7D :102A70001EF003018351540AD8B4EBEF1EF003019A :102A80008351630AD8B4B2EF16F003018351430AAD :102A9000D8B4AAEF17F003018351730AD8B4B0EF8A :102AA00016F003018351610AD8B478EF15F00301E1 :102AB0008351650AD8B477EF1AF003018351450AB0 :102AC000D8B485EF1AF003018351620AD8B493EFAA :102AD0001AF003018351420AD8B4A1EF1AF003019E :102AE0008351760AD8B4AFEF1AF0D8A4B7EF2AF022 :102AF00004014C0E826FA2EC0EF00401610E826F95 :102B0000A2EC0EF02FEC33F004012C0E826FA2EC3D :102B10000EF0B4EC31F0AFC500F101013DEC31F045 :102B200031C182F40401300E8227A2EC0EF032C1D2 :102B300082F40401300E8227A2EC0EF033C182F43D :102B40000401300E8227A2EC0EF004012C0E826FDD :102B5000A2EC0EF0B4EC31F0B0C500F101013DEC97 :102B600031F031C182F40401300E8227A2EC0EF064 :102B700032C182F40401300E8227A2EC0EF033C180 :102B800082F40401300E8227A2EC0EF004012C0E18 :102B9000826FA2EC0EF0B4EC31F0B1C500F101018E :102BA0003DEC31F031C182F40401300E8227A2ECF9 :102BB0000EF032C182F40401300E8227A2EC0EF036 :102BC00033C182F40401300E8227A2EC0EF004011E :102BD0002C0E826FA2EC0EF0B4EC31F0B2C500F115 :102BE00001013DEC31F031C182F40401300E822745 :102BF000A2EC0EF032C182F40401300E8227A2EC66 :102C00000EF033C182F40401300E8227A2EC0EF0E4 :102C100004012C0E826FA2EC0EF0B4EC31F0B6C5BC :102C200000F101013DEC31F031C182F40401300EBC :102C30008227A2EC0EF032C182F40401300E82270A :102C4000A2EC0EF033C182F40401300E8227A2EC14 :102C50000EF06EEF1EF003018451300AD8B437EF46 :102C600016F003018451310AD8B43BEF16F01592E7 :102C700015963CEF16F01582C70E64EC0BF0E8CF0A :102C800000F10101008115A20091C70E0C6E00C178 :102C90000BF04DEC0BF0C70E64EC0BF0E8CF00F13D :102CA000010100B157EF16F0159258EF16F015829A :102CB00004014C0E826FA2EC0EF00401640E826FD0 :102CC000A2EC0EF004012C0E826FA2EC0EF015B2F5 :102CD00071EF16F00401300E826FA2EC0EF076EF69 :102CE00016F00401310E826FA2EC0EF0B5EF2AF05F :102CF000F5EC31F084C333F102EC32F079EC31F0D1 :102D0000200E0C6E00C10BF04DEC0BF000C12FF546 :102D100005012F51000A06E005012F51010A02E0CA :102D200092EC33F004014C0E826FA2EC0EF0040121 :102D30004D0E826FA2EC0EF004012C0E826FA2ECFD :102D40000EF0B4EC31F02FC500F13DEC31F033C1A1 :102D500082F40401300E8227A2EC0EF06EEF1EF01A :102D6000ADEF39F004014C0E826FA2EC0EF00401BD :102D7000630E826FA2EC0EF065EC32F004012C0EB3 :102D8000826FA2EC0EF0C7EC16F06EEF1EF0B4EC02 :102D900031F0B5C500F10101003B0F0E00173DEC0D :102DA00031F033C182F40401300E8227A2EC0EF020 :102DB000B5C500F101010F0E010100173DEC31F026 :102DC00033C182F40401300E8227A2EC0EF004011C :102DD0002D0E826FA2EC0EF0B4C500F10101003B94 :102DE0000F0E00173DEC31F033C182F40401300EB8 :102DF0008227A2EC0EF0B4C500F101010F0E010113 :102E000000173DEC31F033C182F40401300E82270B :102E1000A2EC0EF004012D0E826FA2EC0EF0B3C5F1 :102E200000F10101003B0F0E00173DEC31F033C102 :102E300082F40401300E8227A2EC0EF0B3C500F13B :102E400001010F0E010100173DEC31F033C182F496 :102E50000401300E8227A2EC0EF00401200E826FD6 :102E6000A2EC0EF0B2C500F10F0E010100173DEC0F :102E700031F033C182F40401300E8227A2EC0EF04F :102E80000401200E826FA2EC0EF0B1C500F1010129 :102E90000101003B0F0E00173DEC31F033C182F40D :102EA0000401300E8227A2EC0EF0B1C500F1010141 :102EB0000F0E010100173DEC31F033C182F4040123 :102EC000300E8227A2EC0EF004013A0E826FA2ECC3 :102ED0000EF0B0C500F10101003B0F0E00173DECF4 :102EE00031F033C182F40401300E8227A2EC0EF0DF :102EF000B0C500F101010F0E010100173DEC31F0EA :102F000033C182F40401300E8227A2EC0EF00401DA :102F10003A0E826FA2EC0EF0AFC500F10101003B4A :102F20000F0E00173DEC31F033C182F40401300E76 :102F30008227A2EC0EF0AFC500F101010F0E0017C1 :102F40003DEC31F033C182F40401300E8227A2EC53 :102F50000EF0120084C3E8FF0F0BE83AE8CFB5F596 :102F600085C3E8FF0F0B0501B51387C3E8FF0F0BFF :102F7000E83AE8CFB4F588C3E8FF0F0B0501B413B6 :102F80008AC3E8FF0F0BE83AE8CFB3F58BC3E8FF3D :102F90000F0B0501B3138DC3E8FF0F0BE8CFB2F59C :102FA0008FC3E8FF0F0BE83AE8CFB1F590C3E8FF15 :102FB0000F0B0501B11392C3E8FF0F0BE83AE8CFFE :102FC000B0F593C3E8FF0F0B0501B01395C3E8FFFD :102FD0000F0BE83AE8CFAFF596C3E8FF0F0B0501FA :102FE000AF13D1EC32F004014C0E826FA2EC0EF064 :102FF0000401430E826FA2EC0EF0BCEF16F00784C2 :1030000004014C0E826FA2EC0EF00401370E826FA9 :10301000A2EC0EF004012C0E826FA2EC0EF0050162 :103020002E51130A06E005012E51170A0DE09AEF02 :1030300018F00101000E006F000E016F100E026FFC :10304000000E036F2DEF18F00101000E006F000E4F :10305000016F000E026F010E036F3DEC31F02AC1CB :1030600082F40401300E8227A2EC0EF02BC182F410 :103070000401300E8227A2EC0EF02CC182F4040170 :10308000300E8227A2EC0EF02DC182F40401300E26 :103090008227A2EC0EF02EC182F40401300E8227AA :1030A000A2EC0EF02FC182F40401300E8227A2ECB4 :1030B0000EF030C182F40401300E8227A2EC0EF033 :1030C00031C182F40401300E8227A2EC0EF032C12D :1030D00082F40401300E8227A2EC0EF033C182F498 :1030E0000401300E8227A2EC0EF004012C0E826F38 :1030F000A2EC0EF00101100E006F000E016F000E29 :10310000026F000E036F3DEC31F031C182F4040117 :10311000300E8227A2EC0EF032C182F40401300E90 :103120008227A2EC0EF033C182F40401300E822714 :10313000A2EC0EF007946EEF1EF00501216B226BDE :10314000236B246B04014C0E826FA2EC0EF0040181 :10315000380E826FA2EC0EF004012C0E826FA2ECEE :103160000EF00101100E006F000E016F000E026FD5 :10317000000E036F3DEC31F02AC182F40401300EE1 :103180008227A2EC0EF02BC182F40401300E8227BC :10319000A2EC0EF02CC182F40401300E8227A2ECC6 :1031A0000EF02DC182F40401300E8227A2EC0EF045 :1031B0002EC182F40401300E8227A2EC0EF02FC142 :1031C00082F40401300E8227A2EC0EF030C182F4AA :1031D0000401300E8227A2EC0EF031C182F404010A :1031E000300E8227A2EC0EF032C182F40401300EC0 :1031F0008227A2EC0EF033C182F40401300E822744 :10320000A2EC0EF004012C0E826FA2EC0EF025C58C :1032100000F126C501F127C502F128C503F101011E :10322000100E046F000E056F000E066F000E076F84 :10323000D0EC30F000C133F501C134F502C135F5F1 :1032400003C136F53DEC31F02AC182F40401300EA1 :103250008227A2EC0EF02BC182F40401300E8227EB :10326000A2EC0EF02CC182F40401300E8227A2ECF5 :103270000EF02DC182F40401300E8227A2EC0EF074 :103280002EC182F40401300E8227A2EC0EF02FC171 :1032900082F40401300E8227A2EC0EF030C182F4D9 :1032A0000401300E8227A2EC0EF031C182F4040139 :1032B000300E8227A2EC0EF032C182F40401300EEF :1032C0008227A2EC0EF033C182F40401300E822773 :1032D000A2EC0EF0ACEC0EF00501336777EF19F0BD :1032E000346777EF19F0356777EF19F0366702D05A :1032F00016EF1AF0129E129C21C500F122C501F1B1 :1033000023C502F124C503F1899A400EC76E200E31 :10331000C66E9E96C69E0B0EC96EFF0E9EB602D05E :10332000E82EFCD79E96C69E02C1C9FFFF0E9EB630 :1033300002D0E82EFCD79E96C69E01C1C9FFFF0EA3 :103340009EB602D0E82EFCD79E96C69E00C1C9FF4D :10335000FF0E9EB602D0E82EFCD79E96C69EC9529E :10336000FF0E9EB602D0E82EFCD70501100E326F7C :10337000040114EE00F080517F0BE1269E96C69E5C :10338000C952FF0E9EB602D0E82EFCD7C9CFE7FF88 :103390000401802B0501322FB8EF19F0898A33C55B :1033A00000F134C501F135C502F136C503F1010163 :1033B000010E046F000E056F000E066F000E076F02 :1033C0009FEC30F000C133F501C134F502C135F591 :1033D00003C136F505013367F5EF19F03467F5EFF2 :1033E00019F03567F5EF19F0366702D016EF1AF0CD :1033F00021C500F122C501F123C502F124C503F165 :103400000101100E046F000E056F000E066F000E16 :10341000076FA4EC30F000C121F501C122F502C113 :1034200023F503C124F5128EB7EF2AF00401450EEF :10343000826FA2EC0EF004014F0E826FA2EC0EF030 :103440000401460E826FA2EC0EF06EEF1EF00784B0 :1034500005EC39F0B4EC31F02DC500F13DEC31F064 :1034600004014C0E826FA2EC0EF00401300E826F4C :10347000A2EC0EF004012C0E826FA2EC0EF031C112 :1034800082F40401300E8227A2EC0EF032C182F4E5 :103490000401300E8227A2EC0EF033C182F4040145 :1034A000300E8227A2EC0EF004012C0E826FA2ECEB :1034B0000EF0B4EC31F02EC500F13DEC31F031C12D :1034C00082F40401300E8227A2EC0EF032C182F4A5 :1034D0000401300E8227A2EC0EF033C182F4040105 :1034E000300E8227A2EC0EF007946EEF1EF004015E :1034F0004C0E826FA2EC0EF00401650E826FA2ECFE :103500000EF0A5EC34F06EEF1EF004014C0E826F4D :10351000A2EC0EF00401450E826FA2EC0EF0BCECA2 :1035200034F06EEF1EF004014C0E826FA2EC0EF030 :103530000401620E826FA2EC0EF0EAEC34F06EEF42 :103540001EF004014C0E826FA2EC0EF00401420E3C :10355000826FA2EC0EF0D3EC34F06EEF1EF004019B :103560004C0E826FA2EC0EF00401760E826FA2EC7C :103570000EF004012C0E826FA2EC0EF0000125501B :10358000FE0AD8B4D1EF1AF000012550FD0AD8B4D4 :10359000D8EF1AF00401300E826FA2EC0EF06EEF3D :1035A0001EF00401310E826FA2EC0EF06EEF1EF0E1 :1035B0000401320E826FA2EC0EF06EEF1EF00401D9 :1035C0004C0E826FA2EC0EF004015A0E826FA2EC38 :1035D0000EF004012C0E826FA2EC0EF005EC39F017 :1035E000B4EC31F005012E51130A06E005012E510D :1035F000170A0DE010EF1BF00101000E006F000E26 :10360000016F100E026F000E036F10EF1BF001012F :10361000000E006F000E016F000E026F010E036FAF :103620000101100E046F000E056F000E066F000EF4 :10363000076FD0EC30F03DEC31F02AC182F4040188 :10364000300E8227A2EC0EF02BC182F40401300E62 :103650008227A2EC0EF02CC182F40401300E8227E6 :10366000A2EC0EF02DC182F40401300E8227A2ECF0 :103670000EF02EC182F40401300E8227A2EC0EF06F :103680002FC182F40401300E8227A2EC0EF030C16B :1036900082F40401300E8227A2EC0EF031C182F4D4 :1036A0000401300E8227A2EC0EF032C182F4040134 :1036B000300E8227A2EC0EF033C182F40401300EEA :1036C0008227A2EC0EF06EEF1EF0078404014C0E70 :1036D000826FA2EC0EF00401310E826FA2EC0EF0AC :1036E00004012C0E826FA2EC0EF025C500F126C558 :1036F00001F127C502F128C503F10101100E046F85 :10370000000E056F000E066F000E076FD0EC30F054 :103710003DEC31F02AC182F40401300E8227A2EC84 :103720000EF02BC182F40401300E8227A2EC0EF0C1 :103730002CC182F40401300E8227A2EC0EF02DC1C0 :1037400082F40401300E8227A2EC0EF02EC182F426 :103750000401300E8227A2EC0EF02FC182F4040186 :10376000300E8227A2EC0EF030C182F40401300E3C :103770008227A2EC0EF031C182F40401300E8227C0 :10378000A2EC0EF032C182F40401300E8227A2ECCA :103790000EF033C182F40401300E8227A2EC0EF049 :1037A00007946EEF1EF0078404014C0E826FA2ECAA :1037B0000EF00401320E826FA2EC0EF0D9EC36F05E :1037C00007946EEF1EF0078438B0E9EF1BF0FCEFB2 :1037D0001BF0010E166E04014C0E826FA2EC0EF06F :1037E0000401330E826FA2EC0EF036EC37F0000EBF :1037F000166E079470EF1BF0020E166E36EC37F063 :103800008B800501010E306F3C0E316F01015E6B44 :103810005F6B606B616B626B636B646B656B666B3C :10382000676B686B696B536B546BCF6ACE6A0F9A88 :103830000F9C0F9E030E166E04014C0E826FA2ECBD :103840000EF00401330E826FA2EC0EF004012C0E78 :10385000826FA2EC0EF004012D0E826FA2EC0EF02E :103860000401310E826FA2EC0EF0B5EF2AF036ECB7 :1038700037F0000E166E8B90B7EF2AF00784040124 :103880004C0E826FA2EC0EF00401340E826FA2EC9B :103890000EF004012C0E826FA2EC0EF0F5EC31F06C :1038A00084C32AF185C32BF186C32CF187C32DF184 :1038B00088C32EF189C32FF18AC330F18BC331F154 :1038C0008CC332F18DC333F10101296B02EC32F06C :1038D00079EC31F0100E046F000E056F000E066FCC :1038E000000E076FB0EC30F000C121F501C122F5E8 :1038F00002C123F503C124F5B8EC38F038C5AFF5A3 :1039000039C5B0F53AC5B1F53BC5B2F53CC5B3F51F :103910003DC5B4F53EC5B5F5C7EC16F004012C0E57 :10392000826FA2EC0EF03FC500F140C501F141C528 :1039300002F142C503F10101000E046F000E056F94 :10394000010E066F000E076FD0EC30F03DEC31F049 :103950002967ADEF1CF0B2EF1CF004012D0E826F51 :10396000A2EC0EF030C182F40401300E8227A2ECEA :103970000EF031C182F40401300E8227A2EC0EF069 :1039800004012E0E826FA2EC0EF032C182F404010B :10399000300E8227A2EC0EF033C182F40401300E07 :1039A0008227A2EC0EF004012C0E826FA2EC0EF026 :1039B000B4EC31F043C500F144C501F1E1EC2BF06A :1039C00004012C0E826FA2EC0EF0B4EC31F045C570 :1039D00000F13DEC31F031C182F40401300E822758 :1039E000A2EC0EF032C182F40401300E8227A2EC68 :1039F0000EF033C182F40401300E8227A2EC0EF0E7 :103A000004012C0E826FA2EC0EF037C5E8FFE8B877 :103A100006D00401300E826FA2EC0EF005D0040136 :103A2000310E826FA2EC0EF007946EEF1EF0F5ECF3 :103A300031F085C32AF186C32BF187C32CF188C3EB :103A40002DF189C32EF18AC32FF18BC330F18CC3C2 :103A500031F18DC332F18EC333F10101296B02ECD8 :103A600032F079EC31F00101010E046F000E056FA8 :103A7000000E066F000E076F9FEC30F0100E046F03 :103A8000000E056F000E066F000E076FB0EC30F0F1 :103A900000C129F501C12AF502C12BF503C12CF59E :103AA00060EC36F004014C0E826FA2EC0EF00401C3 :103AB000460E826FA2EC0EF004012C0E826FA2EC77 :103AC0000EF025C500F126C501F127C502F128C574 :103AD00003F10101100E046F000E056F000E066F5A :103AE000000E076FD0EC30F03DEC31F02AC182F4CB :103AF0000401300E8227A2EC0EF02BC182F40401E7 :103B0000300E8227A2EC0EF02CC182F40401300E9C :103B10008227A2EC0EF02DC182F40401300E822720 :103B2000A2EC0EF02EC182F40401300E8227A2EC2A :103B30000EF02FC182F40401300E8227A2EC0EF0A9 :103B400030C182F40401300E8227A2EC0EF031C1A4 :103B500082F40401300E8227A2EC0EF032C182F40E :103B60000401300E8227A2EC0EF033C182F404016E :103B7000300E8227A2EC0EF06EEF1EF038B0C3EFCD :103B80001DF0020E166E36EC37F000011650020AD8 :103B9000D8B4E1EF1DF005012F51010AD8B4D7EFD9 :103BA0001DF015B2DCEF1DF081BADCEF1DF0000E48 :103BB000166E1584B7EF2AF0050E166E1584ADEF5C :103BC00039F08B8001015E6B5F6B606B616B626BC8 :103BD000636B646B656B666B676B686B696B536B70 :103BE000546BCF6ACE6A0F9A0F9C0F9E030E166E0F :103BF000B7EF2AF036EC37F005012F51010AD8B49F :103C000008EF1EF015B20DEF1EF081BA0DEF1EF099 :103C1000000E166E1584B7EF2AF0050E166E158489 :103C2000ADEF39F004014C0E826FA2EC0EF00401EE :103C3000350E826FA2EC0EF004012C0E826FA2EC06 :103C40000EF0B4EC31F00784B9C500F107943DECF7 :103C500031F031C182F40401300E8227A2EC0EF063 :103C600032C182F40401300E8227A2EC0EF033C17F :103C700082F40401300E8227A2EC0EF06EEF1EF0EB :103C8000F9EC36F0B4EC31F037C500F13DEC31F031 :103C900004014C0E826FA2EC0EF00401360E826F0E :103CA000A2EC0EF004012C0E826FA2EC0EF031C1DA :103CB00082F40401300E8227A2EC0EF032C182F4AD :103CC0000401300E8227A2EC0EF033C182F404010D :103CD000300E8227A2EC0EF06EEF1EF0ACEC0EF070 :103CE000B7EF2AF004014C0E826FA2EC0EF0040133 :103CF000500E826FA2EC0EF004012C0E826FA2EC2B :103D00000EF085C32AF186C32BF187C32CF188C33B :103D10002DF189C32EF18AC32FF18BC330F18CC3EF :103D200031F18DC332F18EC333F1010102EC32F077 :103D300079EC31F003018451530A0DE00301845101 :103D40004D0A38E00401780E826FA2EC0EF0ACEC64 :103D50000EF0B7EF2AF00401530E826FA2EC0EF0C2 :103D6000250E0C6E00C10BF04DEC0BF0260E0C6E08 :103D700001C10BF04DEC0BF0270E0C6E02C10BF0E5 :103D80004DEC0BF0280E0C6E03C10BF04DEC0BF05C :103D900000C157F501C158F502C159F503C15AF5E3 :103DA00000C15BF501C15CF502C15DF503C15EF5C3 :103DB0004FEF1FF004014D0E826FA2EC0EF0290EA2 :103DC0000C6E00C10BF04DEC0BF000C15FF500C1B3 :103DD00060F54FEF1FF004014C0E826FA2EC0EF065 :103DE0000401540E826FA2EC0EF004012C0E826FBF :103DF000A2EC0EF084C32AF185C32BF186C32CF10B :103E000087C32DF188C32EF189C32FF18AC330F106 :103E10008BC331F18DC332F18EC333F1010102EC5A :103E200032F079EC31F00101000E046F000E056FE5 :103E3000010E066F000E076FB0EC30F0210E0C6E15 :103E400000C10BF04DEC0BF0220E0C6E01C10BF01B :103E50004DEC0BF0230E0C6E02C10BF04DEC0BF091 :103E6000240E0C6E03C10BF04DEC0BF000C161F59C :103E700001C162F502C163F503C164F54FEF1FF0A4 :103E800004014C0E826FA2EC0EF00401490E826F09 :103E9000A2EC0EF004012C0E826FA2EC0EF0250EA7 :103EA00064EC0BF0E8CF00F1260E64EC0BF0E8CFE9 :103EB00001F1270E64EC0BF0E8CF02F1280E64EC60 :103EC0000BF0E8CF03F13DEC31F000EC2FF00401F2 :103ED000730E826FA2EC0EF004012C0E826FA2EC26 :103EE0000EF0B4EC31F0290E64EC0BF0E8CF00F1E9 :103EF0003DEC31F000EC2FF004016D0E826FA2EC6E :103F00000EF004012C0E826FA2EC0EF05BC500F1E6 :103F10005CC501F15DC502F15EC503F13DEC31F018 :103F200000EC2FF00401730E826FA2EC0EF004017E :103F30002C0E826FA2EC0EF0B4EC31F060C500F1F3 :103F40003DEC31F000EC2FF004016D0E826FA2EC1D :103F50000EF004012C0E826FA2EC0EF061C500F190 :103F600062C501F163C502F164C503F1D2EC2AF028 :103F700004012C0E826FA2EC0EF0ACEC0EF0B7EF49 :103F80002AF083C32AF184C32BF185C32CF186C3A5 :103F90002DF187C32EF188C32FF189C330F18AC375 :103FA00031F18BC332F18CC333F1010102EC32F0F9 :103FB00079EC31F0160E0C6E00C10BF04DEC0BF0ED :103FC000170E0C6E01C10BF04DEC0BF0180E0C6EC1 :103FD00002C10BF04DEC0BF0190E0C6E03C10BF08F :103FE0004DEC0BF000C18EF101C18FF102C190F1D7 :103FF00003C191F100C192F101C193F102C194F1A9 :1040000003C195F1A3EF20F083C32AF184C32BF100 :1040100085C32CF186C32DF187C32EF188C32FF100 :1040200089C330F18AC331F18BC332F18CC333F1D0 :10403000010102EC32F079EC31F000C18EF101C1E6 :104040008FF102C190F103C191F100C192F101C160 :1040500093F102C194F103C195F1A3EF20F083C362 :104060002AF184C32BF185C32CF186C32DF187C3BC :104070002EF188C32FF189C330F18AC331F18CC38B :1040800032F18DC333F1010102EC32F079EC31F001 :104090000101000E046F000E056F010E066F000E89 :1040A000076FB0EC30F01A0E0C6E00C10BF04DEC47 :1040B0000BF01B0E0C6E01C10BF04DEC0BF01C0E47 :1040C0000C6E02C10BF04DEC0BF01D0E0C6E03C11B :1040D0000BF04DEC0BF000C196F101C197F102C15C :1040E00098F103C199F1A3EF20F083C32AF184C3AF :1040F0002BF185C32CF186C32DF187C32EF188C324 :104100002FF189C330F18AC331F18CC332F18DC3F1 :1041100033F1010102EC32F079EC31F00101000ED3 :10412000046F000E056F010E066F000E076FB0ECF6 :1041300030F000C196F101C197F102C198F103C1BD :1041400099F1A3EF20F0160E64EC0BF0E8CF00F12C :10415000170E64EC0BF0E8CF01F1180E64EC0BF0D5 :10416000E8CF02F1190E64EC0BF0E8CF03F13DEC5F :1041700031F000EC2FF00401730E826FA2EC0EF010 :1041800004012C0E826FA2EC0EF08EC100F18FC1E3 :1041900001F190C102F191C103F13DEC31F000EC6D :1041A0002FF00401730E826FA2EC0EF004012C0EAE :1041B000826FA2EC0EF01A0E64EC0BF0E8CF00F167 :1041C0001B0E64EC0BF0E8CF01F11C0E64EC0BF05D :1041D000E8CF02F11D0E64EC0BF0E8CF03F1D2EC56 :1041E0002AF004012C0E826FA2EC0EF096C100F1B1 :1041F00097C101F198C102F199C103F1D2EC2AF003 :10420000ACEC0EF0B7EF2AF00401690E826FA2EC5D :104210000EF004012C0E826FA2EC0EF00101040ED0 :10422000006F000E016F000E026F000E036F3DEC79 :1042300031F02CC182F40401300E8227A2EC0EF082 :104240002DC182F40401300E8227A2EC0EF02EC1A3 :1042500082F40401300E8227A2EC0EF02FC182F40A :104260000401300E8227A2EC0EF030C182F404016A :10427000300E8227A2EC0EF031C182F40401300E20 :104280008227A2EC0EF032C182F40401300E8227A4 :10429000A2EC0EF033C182F40401300E8227A2ECAE :1042A0000EF004012C0E826FA2EC0EF00101060E3E :1042B000006F000E016F000E026F000E036F3DECE9 :1042C00031F02CC182F40401300E8227A2EC0EF0F2 :1042D0002DC182F40401300E8227A2EC0EF02EC113 :1042E00082F40401300E8227A2EC0EF02FC182F47A :1042F0000401300E8227A2EC0EF030C182F40401DA :10430000300E8227A2EC0EF031C182F40401300E8F :104310008227A2EC0EF032C182F40401300E822713 :10432000A2EC0EF033C182F40401300E8227A2EC1D :104330000EF004012C0E826FA2EC0EF00101510E62 :10434000006F000E016F000E026F000E036F3DEC58 :1043500031F02CC182F40401300E8227A2EC0EF061 :104360002DC182F40401300E8227A2EC0EF02EC182 :1043700082F40401300E8227A2EC0EF02FC182F4E9 :104380000401300E8227A2EC0EF030C182F4040149 :10439000300E8227A2EC0EF031C182F40401300EFF :1043A0008227A2EC0EF032C182F40401300E822783 :1043B000A2EC0EF033C182F40401300E8227A2EC8D :1043C0000EF004012C0E826FA2EC0EF0200EF86E9F :1043D000F76AF66A04010900F5CF82F4A2EC0EF048 :1043E0000900F5CF82F4A2EC0EF00900F5CF82F4BB :1043F000A2EC0EF00900F5CF82F4A2EC0EF0090059 :10440000F5CF82F4A2EC0EF00900F5CF82F4A2EC15 :104410000EF00900F5CF82F4A2EC0EF00900F5CF02 :1044200082F4A2EC0EF0ACEC0EF0B7EF2AF0835160 :10443000630AD8A4B5EF2AF08451610AD8A4B5EF75 :104440002AF085516C0AD8A4B5EF2AF08651410AAA :104450003FE08651440A1BE08651420AD8B47BEF04 :1044600022F08651350AD8B441EF2CF08651360A35 :10447000D8B496EF2CF08651370AD8B4FFEF2CF061 :104480008651380AD8B45DEF2DF0B5EF2AF00798C1 :10449000079A04017A0E826FA2EC0EF00401780EE6 :1044A000826FA2EC0EF00401640E826FA2EC0EF09B :1044B0000401550E826FA2EC0EF064EF22F00401AD :1044C0004C0E826FA2EC0EF0ACEC0EF0B7EF2AF0BF :1044D0000788079A04017A0E826FA2EC0EF004019D :1044E000410E826FA2EC0EF00401610E826FA2EC0D :1044F0000EF058EF22F00798078A04017A0E826FB7 :10450000A2EC0EF00401420E826FA2EC0EF0040148 :10451000610E826FA2EC0EF058EF22F00101666787 :1045200099EF22F0676799EF22F0686799EF22F020 :10453000696716D001014F67A5EF22F05067A5EF1C :1045400022F05167A5EF22F052670AD00101000E58 :10455000006F000E016F000E026F000E036F12005D :1045600011B80AD00101620E046F010E056F000E32 :10457000066F000E076F09D00101A70E046F020E2F :10458000056F000E066F000E076F66C100F167C170 :1045900001F168C102F169C103F19FEC30F003BF82 :1045A00042EF23F0119A119C0101000E046FA80E36 :1045B000056F550E066F020E076F66C100F167C1E9 :1045C00001F168C102F169C103F166C18AF167C1F5 :1045D0008BF168C18CF169C18DF19FEC30F003BFA4 :1045E0000BD00101000E8A6FA80E8B6F550E8C6FD9 :1045F000020E8D6F118A119C0E0E64EC0BF0E8CF49 :1046000018F10F0E64EC0BF0E8CF19F1100E64EC0A :104610000BF0E8CF1AF1110E64EC0BF0E8CF1BF1B0 :10462000E8EC2FF08AC104F18BC105F18CC106F1D1 :104630008DC107F19FEC30F00782ACEC2FF0E8EC75 :104640002FF00792ACEC2FF08AC100F18BC101F181 :104650008CC102F18DC103F10792ACEC2FF0CC0EAE :10466000046FE00E056F870E066F050E076F9FEC57 :1046700030F000C118F101C119F102C11AF103C1F2 :104680001BF140D013AA47EF23F0138E139A119C0D :10469000119A0101800E006F1A0E016F060E026F53 :1046A000000E036F4FC104F150C105F151C106F175 :1046B00052C107F19FEC30F003AF05D0B4EC31F0FC :1046C000118C119A12000E0E64EC0BF0E8CF18F169 :1046D0000F0E64EC0BF0E8CF19F1100E64EC0BF048 :1046E000E8CF1AF1110E64EC0BF0E8CF1BF14FC1CB :1046F00000F150C101F151C102F152C103F1078231 :10470000ACEC2FF018C100F119C101F11AC102F18E :104710001BC103F112000784BAC166F1BBC167F186 :10472000BCC168F1BDC169F14BC14FF14CC150F141 :104730004DC151F14EC152F157C159F158C15AF111 :10474000079401016667ACEF23F06767ACEF23F0D5 :104750006867ACEF23F0696716D001014F67B8EFC7 :1047600023F05067B8EF23F05167B8EF23F052679A :104770000AD00101000E006F000E016F000E026FE3 :10478000000E036F120011B80AD00101620E046F0F :10479000010E056F000E066F000E076F09D00101B4 :1047A000A70E046F020E056F000E066F000E076F56 :1047B00066C100F167C101F168C102F169C103F18D :1047C0009FEC30F003BF44EF24F00101000E046FB2 :1047D000A80E056F550E066F020E076F66C100F139 :1047E00067C101F168C102F169C103F166C18AF1D3 :1047F00067C18BF168C18CF169C18DF19FEC30F01C :1048000003BF09D00101000E8A6FA80E8B6F550EF1 :104810008C6F020E8D6FE8EC2FF000C104F101C126 :1048200005F102C106F103C107F1000E006FA00EF1 :10483000016F980E026F7B0E036FD0EC30F000C159 :1048400018F101C119F102C11AF103C11BF1000EE7 :10485000006FA00E016F980E026F7B0E036F8AC16E :1048600004F18BC105F18CC106F18DC107F1D0ECCB :1048700030F018C104F119C105F11AC106F11BC1CC :1048800007F19FEC30F012000101A80E006F610EDD :10489000016F000E026F000E036F4FC104F150C193 :1048A00005F151C106F152C107F19FEC30F003AFA1 :1048B0000AD00101A80E006F610E016F000E026F99 :1048C000000E036F00D0C80E006FAF0E016F000E18 :1048D000026F000E036F4FC104F150C105F151C1C9 :1048E00006F152C107F1B0EC30F012000784BAC1F2 :1048F00066F1BBC167F1BCC168F1BDC169F14BC1D3 :104900004FF14CC150F14DC151F14EC152F157C15F :1049100059F158C15AF107940101666797EF24F0E5 :10492000676797EF24F0686797EF24F0696716D000 :1049300001014F67A3EF24F05067A3EF24F0516704 :10494000A3EF24F052670AD00101000E006F000EA1 :10495000016F000E026F000E036F120011B80AD033 :104960000101620E046F010E056F000E066F000E4E :10497000076F09D00101A70E046F020E056F000E2C :10498000066F000E076F66C100F167C101F168C1D3 :1049900002F169C103F19FEC30F003BF59EF25F03C :1049A0000101000E046FA80E056F550E066F020E72 :1049B000076F66C100F167C101F168C102F169C109 :1049C00003F166C18AF167C18BF168C18CF169C1DD :1049D0008DF19FEC30F003BF09D00101000E8A6F0A :1049E000A80E8B6F550E8C6F020E8D6F010E006F2F :1049F000000E016F000E026F000E036F8AC104F1FA :104A00008BC105F18CC106F18DC107F1D0EC30F0FE :104A100018C104F119C105F11AC106F11BC107F152 :104A20003DEC31F02AC182F40401300E8227A2EC61 :104A30000EF02BC182F40401300E8227A2EC0EF09E :104A40002CC182F40401300E8227A2EC0EF02DC19D :104A500082F40401300E8227A2EC0EF02EC182F403 :104A60000401300E8227A2EC0EF02FC182F4040163 :104A7000300E8227A2EC0EF030C182F40401300E19 :104A80008227A2EC0EF031C182F40401300E82279D :104A9000A2EC0EF032C182F40401300E8227A2ECA7 :104AA0000EF033C182F40401300E8227A2EC0EF026 :104AB00012004FC100F150C101F151C102F152C1C8 :104AC00003F101013DEC31F000EC2FF01200040184 :104AD000730E826FA2EC0EF004012C0E826FA2EC1A :104AE0000EF0078462C166F163C167F164C168F1C9 :104AF00065C169F14BC14FF14CC150F14DC151F14C :104B00004EC152F157C159F158C15AF107948DEC79 :104B100025F0ACEC0EF0B7EF2AF066C100F167C1EA :104B200001F168C102F169C103F101013DEC31F00D :104B300000EC2FF00401630E826FA2EC0EF0040172 :104B40002C0E826FA2EC0EF04FC100F150C101F1AA :104B500051C102F152C103F101013DEC31F000EC11 :104B60002FF00401660E826FA2EC0EF004012C0EF1 :104B7000826FA2EC0EF0B4EC31F059C100F15AC1D1 :104B800001F101013DEC31F000EC2FF00401740E55 :104B9000826FA2EC0EF0120010820401530E826F9D :104BA000A2EC0EF004012C0E826FA2EC0EF083C377 :104BB0002AF184C32BF185C32CF186C32DF187C361 :104BC0002EF188C32FF189C330F18AC331F18BC331 :104BD00032F18CC333F1010102EC32F079EC31F0A7 :104BE00000C166F101C167F102C168F103C169F159 :104BF0008EC32AF18FC32BF190C32CF191C32DF1F9 :104C000092C32EF193C32FF194C330F195C331F1C8 :104C100096C332F197C333F1010102EC32F079EC23 :104C200031F000C14FF101C150F102C151F103C196 :104C300052F1F5EC31F099C32FF19AC330F19BC3D7 :104C400031F19CC332F19DC333F1010102EC32F02A :104C500079EC31F000C159F101C15AF18DEC25F028 :104C600004012C0E826FA2EC0EF047EF26F0118E9D :104C70001CA002D01CAE108C1BBE02D01BA4108E38 :104C800003018251520A02E10F8201D00F92825138 :104C9000750A02E1108401D010948251550A02E194 :104CA000108601D010968351310A03E113821384D8 :104CB00002D01392139403018351660A01E056D087 :104CC0000401660E826FA2EC0EF004012C0E826FBE :104CD000A2EC0EF08BEC23F03DEC31F02AC182F413 :104CE0000401300E8227A2EC0EF02BC182F40401E5 :104CF000300E8227A2EC0EF02CC182F40401300E9B :104D00008227A2EC0EF02DC182F40401300E82271E :104D1000A2EC0EF02EC182F40401300E8227A2EC28 :104D20000EF02FC182F40401300E8227A2EC0EF0A7 :104D300030C182F40401300E8227A2EC0EF031C1A2 :104D400082F40401300E8227A2EC0EF032C182F40C :104D50000401300E8227A2EC0EF033C182F404016C :104D6000300E8227A2EC0EF0B5EF2AF011A003D08E :104D700011A401D01084078410B220EF27F010A4F2 :104D800004EF27F0BAC166F1BBC167F1BCC168F19D :104D9000BDC169F1BEC16AF1BFC16BF1C0C16CF1A7 :104DA000C1C16DF1C2C16EF1C3C16FF1C4C170F177 :104DB000C5C171F1C6C172F1C7C173F1C8C174F147 :104DC000C9C175F1CAC176F1CBC177F1CCC178F117 :104DD000CDC179F1CEC17AF1CFC17BF1D0C17CF1E7 :104DE000D1C17DF1D2C17EF1D3C17FF1D4C180F1B7 :104DF000D5C181F1D6C182F1D7C183F1D8C184F187 :104E0000D9C185F10CEF27F062C166F163C167F18A :104E100064C168F165C169F1BAC186F1BBC187F1AE :104E2000BCC188F1BDC189F14BC14FF14CC150F1FA :104E30004DC151F14EC152F157C159F158C15AF10A :104E400007940FA042EF27F0010196672FEF27F09C :104E500097672FEF27F098672FEF27F0996733EFC9 :104E600027F042EF27F08EEC22F096C104F197C1B3 :104E700005F198C106F199C107F19FEC30F003BF2D :104E80007BEF2AF08EEC22F00101000E046F000E81 :104E9000056F010E066F000E076FD0EC30F011A009 :104EA0002AD011A228D03DEC31F0296701D005D0DD :104EB00004012D0E826FA2EC0EF030C182F40401C9 :104EC000300E8227A2EC0EF031C182F40401300EC4 :104ED0008227A2EC0EF032C182F40401300E822748 :104EE000A2EC0EF033C182F40401300E8227A2EC52 :104EF0000EF0ACEC0EF012A8C5D012981DC01EF03A :104F00001E3A1E42070E1E1600011E50000AD8B49B :104F10000EEF28F000011E50010AD8B49AEF27F0D6 :104F200000011E50020AD8B498EF27F040EF28F095 :104F300040EF28F0B4EC31F02EC001F12FC000F1A9 :104F4000D89001330033D890013300330101630E50 :104F5000046F000E056F000E066F000E076FD0EC99 :104F600030F0280E046F000E056F000E066F000E65 :104F7000076F9FEC30F000C131F0B4EC31F02CC081 :104F800001F1019F019D2DC000F10101A40E046FEC :104F9000000E056F000E066F000E076FD0EC30F0AC :104FA00000C130F000C104F101C105F102C106F1F8 :104FB00003C107F1640E006F000E016F000E026F57 :104FC000000E036F9FEC30F0050E046F000E056FAE :104FD000000E066F000E076FD0EC30F000C104F138 :104FE00001C105F102C106F103C107F1B4EC31F0D2 :104FF00031C000F19FEC30F000C132F032C0E8FF68 :10500000050F315C03E78A8440EF28F032C0E8FFE7 :105010000A0F315C01E68A9440EF28F000C124F1C8 :1050200001C125F102C126F103C127F1B4EC31F031 :10503000BAEC31F01D501F0BE8CF00F10101640EF6 :10504000046F000E056F000E066F000E076FB0ECC8 :1050500030F024C104F125C105F126C106F127C1B4 :1050600007F19FEC30F003BF02D08A9401D08A840C :1050700024C100F125C101F126C102F127C103F1CC :10508000B7EF2AF000C124F101C125F102C126F1D8 :1050900003C127F110AE4DD0109E00C108F101C12F :1050A00009F102C10AF103C10BF13DEC31F030C14D :1050B000E2F131C1E3F132C1E4F133C1E5F108C1FC :1050C00000F109C101F10AC102F10BC103F10101B3 :1050D0006C0E046F070E056F000E066F000E076F53 :1050E0009FEC30F003BF04D00101550EE66F1CD0D9 :1050F00008C100F109C101F10AC102F10BC103F1BC :105100000101A40E046F060E056F000E066F000E5F :10511000076F9FEC30F003BF04D001017F0EE66FF4 :1051200003D00101FF0EE66F1F8E11AE7BEF2AF058 :10513000119E24C100F125C101F126C102F127C150 :1051400003F111A005D011A203D00FB07BEF2AF01C :1051500010A4B2EF28F00401750E826FA2EC0EF0DD :10516000B7EF28F00401720E826FA2EC0EF004017A :105170002C0E826FA2EC0EF03DEC31F02967C6EFE9 :1051800028F00401200E826FC9EF28F004012D0ED3 :10519000826FA2EC0EF030C182F40401300E82273F :1051A000A2EC0EF031C182F40401300E8227A2EC91 :1051B0000EF004012E0E826FA2EC0EF032C182F4CA :1051C0000401300E8227A2EC0EF033C182F40401F8 :1051D000300E8227A2EC0EF004016D0E826FA2EC5D :1051E0000EF004012C0E826FA2EC0EF04FC100F104 :1051F00050C101F151C102F152C103F101013DEC75 :1052000031F000EC2FF00401480E826FA2EC0EF09A :1052100004017A0E826FA2EC0EF004012C0E826F54 :10522000A2EC0EF066C100F167C101F168C102F1A4 :1052300069C103F101013DEC31F000EC2FF00401F4 :10524000630E826FA2EC0EF004012C0E826FA2ECB2 :105250000EF066C100F167C101F168C102F169C1D8 :1052600003F101010A0E046F000E056F000E066FB8 :10527000000E076FB0EC30F0000E046F120E056FD9 :10528000000E066F000E076FD0EC30F03DEC31F0F1 :105290002AC182F40401300E8227A2EC0EF02BC149 :1052A00082F40401300E8227A2EC0EF02CC182F4AD :1052B0000401300E8227A2EC0EF02DC182F404010D :1052C000300E8227A2EC0EF02EC182F40401300EC3 :1052D0008227A2EC0EF02FC182F40401300E822747 :1052E000A2EC0EF030C182F40401300E8227A2EC51 :1052F0000EF004012E0E826FA2EC0EF031C182F48A :105300000401300E8227A2EC0EF032C182F40401B7 :10531000300E8227A2EC0EF033C182F40401300E6D :105320008227A2EC0EF00401730E826FA2EC0EF045 :1053300004012C0E826FA2EC0EF0B4EC31F059C1D6 :1053400000F15AC101F1E1EC2BF013A2F7EF29F0C3 :1053500004012C0E826FA2EC0EF086C166F187C1AB :1053600067F188C168F189C169F18EEC22F0010111 :10537000000E046F000E056F010E066F000E076F22 :10538000D0EC30F03DEC31F02967CCEF29F004018E :10539000200E826FCFEF29F004012D0E826FA2EC58 :1053A0000EF030C182F40401300E8227A2EC0EF020 :1053B00031C182F40401300E8227A2EC0EF0040108 :1053C0002E0E826FA2EC0EF032C182F40401300E78 :1053D0008227A2EC0EF033C182F40401300E822742 :1053E000A2EC0EF004016D0E826FA2EC0EF0030130 :1053F0008351460A01E007D004012C0E826FA2EC13 :105400000EF076EC24F013A42AEF2AF004012C0EFF :10541000826FA2EC0EF013AC18EF2AF00401500ECC :10542000826FA2EC0EF0139C1398139A2AEF2AF0C5 :1054300013AE25EF2AF00401460E826FA2EC0EF0A7 :10544000139E1398139A2AEF2AF00401530E826FC9 :10545000A2EC0EF038B041EF2AF004012C0E826F5E :10546000A2EC0EF08BB03CEF2AF00401440E826FE8 :10547000A2EC0EF041EF2AF00401530E826FA2EC71 :105480000EF00FB247EF2AF00FA079EF2AF00401D7 :105490002C0E826FA2EC0EF0200EF86EF76AF66A00 :1054A00004010900F5CF82F4A2EC0EF00900F5CF5B :1054B00082F4A2EC0EF00900F5CF82F4A2EC0EF01B :1054C0000900F5CF82F4A2EC0EF00900F5CF82F4CA :1054D000A2EC0EF00900F5CF82F4A2EC0EF0090068 :1054E000F5CF82F4A2EC0EF00900F5CF82F4A2EC25 :1054F0000EF0ACEC0EF00F90109E1298B7EF2AF061 :105500000401630E826FA2EC0EF004012C0E826F78 :10551000A2EC0EF0BDEC2AF004012C0E826FA2EC7E :105520000EF030EC2BF004012C0E826FA2EC0EF08A :10553000ACEC2BF004012C0E826FA2EC0EF00101FA :10554000F80E006FCD0E016F660E026F030E036F33 :10555000D2EC2AF004012C0E826FA2EC0EF0C2EC09 :105560002BF0ACEC0EF0B7EF2AF0ACEC0EF0030130 :10557000C26B07901092C6EF2DF0D8900E0E64EC1F :105580000BF0E8CF00F10F0E64EC0BF0E8CF01F167 :10559000100E64EC0BF0E8CF02F1110E64EC0BF08E :1055A000E8CF03F10101000E046F000E056F010E3C :1055B000066F000E076FD0EC30F03DEC31F02AC1E1 :1055C00082F40401300E8227A2EC0EF02BC182F48B :1055D0000401300E8227A2EC0EF02CC182F40401EB :1055E000300E8227A2EC0EF02DC182F40401300EA1 :1055F0008227A2EC0EF02EC182F40401300E822725 :10560000A2EC0EF02FC182F40401300E8227A2EC2E :105610000EF030C182F40401300E8227A2EC0EF0AD :1056200031C182F40401300E8227A2EC0EF0040195 :105630002E0E826FA2EC0EF032C182F40401300E05 :105640008227A2EC0EF033C182F40401300E8227CF :10565000A2EC0EF004016D0E826FA2EC0EF01200AF :10566000120E64EC0BF0E8CF00F1130E64EC0BF0BB :10567000E8CF01F1140E64EC0BF0E8CF02F1150E47 :1056800064EC0BF0E8CF03F101010A0E046F000E89 :10569000056F000E066F000E076FB0EC30F0000EC5 :1056A000046F120E056F000E066F000E076FD0EC30 :1056B00030F03DEC31F02AC182F40401300E822733 :1056C000A2EC0EF02BC182F40401300E8227A2EC72 :1056D0000EF02CC182F40401300E8227A2EC0EF0F1 :1056E0002DC182F40401300E8227A2EC0EF02EC1EF :1056F00082F40401300E8227A2EC0EF02FC182F456 :105700000401300E8227A2EC0EF030C182F40401B5 :10571000300E8227A2EC0EF004012E0E826FA2EC56 :105720000EF031C182F40401300E8227A2EC0EF09B :1057300032C182F40401300E8227A2EC0EF033C194 :1057400082F40401300E8227A2EC0EF00401730EE5 :10575000826FA2EC0EF012000A0E64EC0BF0E8CFA0 :1057600000F10B0E64EC0BF0E8CF01F10C0E64ECD1 :105770000BF0E8CF02F10D0E64EC0BF0E8CF03F173 :10578000E1EF2BF0060E64EC0BF0E8CF00F1070E12 :1057900064EC0BF0E8CF01F1080E64EC0BF0E8CFFD :1057A00002F1090E64EC0BF0E8CF03F1E1EF2BF00E :1057B0000101B4EC31F0078457C100F158C101F187 :1057C00007940101E80E046F800E056F000E066F4E :1057D000000E076FB0EC30F0000E046F040E056F82 :1057E000000E066F000E076FD0EC30F0880E046FCD :1057F000130E056F000E066F000E076F9FEC30F062 :105800000A0E046F000E056F000E066F000E076F84 :10581000D0EC30F03DEC31F00101296715EF2CF0B0 :105820000401200E826F18EF2CF004012D0E826F00 :10583000A2EC0EF030C182F40401300E8227A2ECFB :105840000EF031C182F40401300E8227A2EC0EF07A :1058500032C182F40401300E8227A2EC0EF0040162 :105860002E0E826FA2EC0EF033C182F40401300ED2 :105870008227A2EC0EF00401430E826FA2EC0EF020 :10588000120087C32AF188C32BF189C32CF18AC384 :105890002DF18BC32EF18CC32FF18DC330F18EC34C :1058A00031F190C332F191C333F10101296B02EC64 :1058B00032F079EC31F00101000E046F000E056F3B :1058C000010E066F000E076FB0EC30F00E0E0C6E7E :1058D00000C10BF04DEC0BF00F0E0C6E01C10BF084 :1058E0004DEC0BF0100E0C6E02C10BF04DEC0BF0FA :1058F000110E0C6E03C10BF04DEC0BF004017A0E8F :10590000826FA2EC0EF004012C0E826FA2EC0EF05E :105910000401350E826FA2EC0EF004012C0E826F92 :10592000A2EC0EF0BDEC2AF064EF22F087C32AF15E :1059300088C32BF189C32CF18AC32DF18BC32EF1BF :105940008CC32FF18DC330F18EC331F190C332F18E :1059500091C333F10101296B02EC32F079EC31F0A3 :10596000880E046F130E056F000E066F000E076F92 :10597000A4EC30F0000E046F040E056F000E066FED :10598000000E076FB0EC30F00101E80E046F800EDE :10599000056F000E066F000E076FD0EC30F00A0E98 :1059A0000C6E00C10BF04DEC0BF00B0E0C6E01C138 :1059B0000BF04DEC0BF00C0E0C6E02C10BF04DEC2D :1059C0000BF00D0E0C6E03C10BF04DEC0BF004014F :1059D0007A0E826FA2EC0EF004012C0E826FA2EC04 :1059E0000EF00401360E826FA2EC0EF004012C0EB4 :1059F000826FA2EC0EF0ACEC2BF064EF22F087C3C8 :105A00002AF188C32BF189C32CF18AC32DF18BC3F2 :105A10002EF18CC32FF18DC330F18FC331F190C3C0 :105A200032F191C333F1010102EC32F079EC31F043 :105A3000000E046F120E056F000E066F000E076F4A :105A4000B0EC30F001010A0E046F000E056F000E7D :105A5000066F000E076FD0EC30F0120E0C6E00C116 :105A60000BF04DEC0BF0130E0C6E01C10BF04DEC76 :105A70000BF0140E0C6E02C10BF04DEC0BF0150E7A :105A80000C6E03C10BF04DEC0BF004017A0E826F2B :105A9000A2EC0EF004012C0E826FA2EC0EF00401B9 :105AA000370E826FA2EC0EF004012C0E826FA2EC76 :105AB0000EF030EC2BF064EF22F087C32AF188C39C :105AC0002BF189C32CF18AC32DF18BC32EF18CC32A :105AD0002FF18DC330F18EC331F190C332F191C3F8 :105AE00033F10101296B02EC32F079EC31F0880ED0 :105AF000046F130E056F000E066F000E076FA4EC07 :105B000030F0000E046F040E056F000E066F000EDD :105B1000076FB0EC30F00101E80E046F800E056FE6 :105B2000000E066F000E076FD0EC30F0060E0C6E04 :105B300000C10BF04DEC0BF0070E0C6E01C10BF029 :105B40004DEC0BF0080E0C6E02C10BF04DEC0BF09F :105B5000090E0C6E03C10BF04DEC0BF004017A0E34 :105B6000826FA2EC0EF004012C0E826FA2EC0EF0FC :105B70000401380E826FA2EC0EF004012C0E826F2D :105B8000A2EC0EF0C2EC2BF064EF22F007A839EF84 :105B90002EF00101800E006F1A0E016F060E026FCB :105BA000000E036F4BC104F14CC105F14DC106F16C :105BB0004EC107F19FEC30F003BF7FEF2EF0FAECFF :105BC0002EF04BC100F14CC101F14DC102F14EC1AB :105BD00003F10782ACEC2FF018C104F119C105F1F3 :105BE0001AC106F11BC107F1F80E006FCD0E016F4F :105BF000660E026F030E036F9FEC30F00E0E0C6EFC :105C000000C10BF04DEC0BF00F0E0C6E01C10BF050 :105C10004DEC0BF0100E0C6E02C10BF04DEC0BF0C6 :105C2000110E0C6E03C10BF04DEC0BF0078401015B :105C3000B4EC31F057C100F158C101F107940A0EDC :105C40000C6E00C10BF04DEC0BF00B0E0C6E01C195 :105C50000BF04DEC0BF00C0E0C6E02C10BF04DEC8A :105C60000BF00D0E0C6E03C10BF04DEC0BF07FEF43 :105C70002EF007AA7FEF2EF007840101B4EC31F07B :105C800057C100F158C101F10794060E0C6E00C116 :105C90000BF04DEC0BF0070E0C6E01C10BF04DEC50 :105CA0000BF0080E0C6E02C10BF04DEC0BF0090E60 :105CB0000C6E03C10BF04DEC0BF0078462C100F1D8 :105CC00063C101F164C102F165C103F10794120ED1 :105CD0000C6E00C10BF04DEC0BF0130E0C6E01C1FD :105CE0000BF04DEC0BF0140E0C6E02C10BF04DECF2 :105CF0000BF0150E0C6E03C10BF04DEC0BF007987A :105D0000079A0401805181197F0B0DE09EA8FED7F0 :105D100014EE00F081517F0BE126E750812B0F013B :105D2000AD6E81EF2EF005012F51000AD8B4C2EFFD :105D30002EF081BAA7EF2EF015B2C2EF2EF00501BA :105D40002F51010AD8B4C0EF2EF0B9EF2EF00501A3 :105D50002F51000AD8B4ADEF39F005012F51010AD7 :105D6000D8B4C0EF2EF000011650050AD8B4ADEF3C :105D700039F081B8C2EF2EF02FEC33F0D5EC33F0D0 :105D800044EC39F0D0EF0DF018C100F119C101F168 :105D90001AC102F11BC103F1000E046F000E056F62 :105DA000010E066F000E076FD0EC30F029A1EFEF67 :105DB0002EF02051D8B4EFEF2EF018C100F119C128 :105DC00001F11AC102F11BC103F1000E046F000EB4 :105DD000056F0A0E066F000E076FD0EC30F0120050 :105DE000010104510013055101130651021307511B :105DF000031312000101186B196B1A6B1B6B120055 :105E00002AC182F40401300E8227A2EC0EF02BC1CD :105E100082F40401300E8227A2EC0EF02CC182F431 :105E20000401300E8227A2EC0EF02DC182F4040191 :105E3000300E8227A2EC0EF02EC182F40401300E47 :105E40008227A2EC0EF02FC182F40401300E8227CB :105E5000A2EC0EF030C182F40401300E8227A2ECD5 :105E60000EF031C182F40401300E8227A2EC0EF054 :105E700032C182F40401300E8227A2EC0EF033C14D :105E800082F40401300E8227A2EC0EF012002FC122 :105E900082F40401300E8227A2EC0EF030C182F4AD :105EA0000401300E8227A2EC0EF031C182F404010D :105EB000300E8227A2EC0EF032C182F40401300EC3 :105EC0008227A2EC0EF033C182F40401300E822747 :105ED000A2EC0EF01200060E216E060E226E060EC9 :105EE000236E212E71EF2FF0222E71EF2FF0232E33 :105EF00071EF2FF08B84020E216E020E226E020EC5 :105F0000236E212E81EF2FF0222E81EF2FF0232EF2 :105F100081EF2FF08B941200FF0E226E22C023F02F :105F2000030E216E8B84212E92EF2FF0030E216E33 :105F3000232E92EF2FF08B9422C023F0030E216EBC :105F4000212EA0EF2FF0030E216E233EA0EF2FF0A5 :105F5000222E8EEF2FF012000101005305E10153B4 :105F600003E1025301E1002B6FEC30F0B4EC31F0AF :105F70003951006F3A51016F420E046F4B0E056F9D :105F8000000E066F000E076FB0EC30F000C104F198 :105F900001C105F102C106F103C107F118C100F109 :105FA00019C101F11AC102F11BC103F107B2DDEF02 :105FB0002FF0A4EC30F0DFEF2FF09FEC30F000C1B9 :105FC00018F101C119F102C11AF103C11BF112004C :105FD000B4EC31F059C100F15AC101F1060E64EC84 :105FE0000BF0E8CF04F1070E64EC0BF0E8CF05F1FD :105FF000080E64EC0BF0E8CF06F1090E64EC0BF030 :10600000E8CF07F19FEC30F000C124F101C125F188 :1060100002C126F103C127F1290E046F000E056F9E :10602000000E066F000E076FB0EC30F0EE0E046F3E :10603000430E056F000E066F000E076FA4EC30F0E4 :1060400024C104F125C105F126C106F127C107F1DC :10605000B0EC30F000C11CF101C11DF102C11EF114 :1060600003C11FF1120E64EC0BF0E8CF04F1130E24 :1060700064EC0BF0E8CF05F1140E64EC0BF0E8CF04 :1060800006F1150E64EC0BF0E8CF07F10D0E006F72 :10609000000E016F000E026F000E036FB0EC30F0C7 :1060A000180E046F000E056F000E066F000E076FCE :1060B000D0EC30F01CC104F11DC105F11EC106F188 :1060C0001FC107F1A4EC30F06A0E046F2A0E056FB1 :1060D000000E066F000E076F9FEC30F01200BF0E2F :1060E000FA6E200E3A6F396BD890003701370237BD :1060F0000337D8B080EF30F03A2F75EF30F0390722 :106100003A070353D8B412000331070B80093F6FDD :1061100003390F0B010F396F80EC5FF0406F3905C9 :1061200080EC5FF0405D405F396B3F33D8B039277A :1061300039333FA995EF30F0405139271200010162 :10614000D9EC31F0D8B01200010103510719346FB6 :106150009CEC31F0D8900751031934AF800F120036 :106160000101346BC0EC31F0D8A0D6EC31F0D8B0DE :106170001200ABEC31F0B4EC31F01F0E366FECECEA :1061800031F00B35D8B09CEC31F0D8A00335D8B045 :106190001200362FBFEF30F034B1C3EC31F01200F3 :1061A0000101346B04510511061107110008D8A034 :1061B000C0EC31F0D8A0D6EC31F0D8B01200086BAA :1061C000096B0A6B0B6BECEC31F01F0E366FECECCD :1061D00031F007510B5DD8A4FAEF30F006510A5D9B :1061E000D8A4FAEF30F00551095DD8A4FAEF30F0E9 :1061F0000451085DD8A00DEF31F00451085F05513E :10620000D8A0053D095F0651D8A0063D0A5F075199 :10621000D8A0073D0B5FD8900081362FE7EF30F014 :1062200034B1C3EC31F0346BC0EC31F0D890F0EC09 :1062300031F007510B5DD8A42AEF31F006510A5D09 :10624000D8A42AEF31F00551095DD8A42AEF31F026 :106250000451085DD8A039EF31F0003F39EF31F03B :10626000013F39EF31F0023F39EF31F0032BD8B461 :10627000120034B1C3EC31F012000101346BC0ECF8 :1062800031F0D8B01200F5EC31F0200E366F003747 :1062900001370237033711EE33F00A0E376FE73656 :1062A0000A0EE75CD8B0E76EE552372F4FEF31F0BA :1062B000362F47EF31F034B12981D8901200F5EC38 :1062C00031F0200E366F003701370237033711EEF9 :1062D00033F00A0E376FE7360A0EE75CD8B0E76E88 :1062E000E552372F6BEF31F0362F63EF31F0D89056 :1062F000120001010A0E346F200E366F11EE29F0E4 :106300003451376F0A0ED890E652D8B0E726E732FC :10631000372F84EF31F00333023301330033362F4C :106320007EEF31F0E750FF0FD8A00335D8B0120050 :1063300029B1C3EC31F01200045100270551D8B047 :10634000053D01270651D8B0063D02270751D8B0B8 :10635000073D032712000051086F0151096F0251D8 :106360000A6F03510B6F12000101006B016B026B8E :10637000036B12000101046B056B066B076B1200C7 :106380000335D8A012000351800B001F011F021F0C :10639000031F003FD3EF31F0013FD3EF31F0023F55 :1063A000D3EF31F0032B342B032512000735D8A08F :1063B00012000751800B041F051F061F071F043F13 :1063C000E9EF31F0053FE9EF31F0063FE9EF31F059 :1063D000072B342B0725120000370137023703370C :1063E000083709370A370B3712000101296B2A6B6E :1063F0002B6B2C6B2D6B2E6B2F6B306B316B326BD1 :10640000336B120001012A510F0B2A6F2B510F0B16 :106410002B6F2C510F0B2C6F2D510F0B2D6F2E51FD :106420000F0B2E6F2F510F0B2F6F30510F0B306F43 :1064300031510F0B316F32510F0B326F33510F0B44 :10644000336F120000C124F101C125F102C126F110 :1064500003C127F104C100F105C101F106C102F138 :1064600007C103F124C104F125C105F126C106F1DC :1064700027C107F1120000012550FE0AD8B449EFE8 :1064800032F000012550FD0AD8B449EF32F089847A :1064900001D08994000EC76E220EC66E050EE82E3E :1064A000FED7120000012550FE0AD8B460EF32F08A :1064B00000012550FD0AD8B460EF32F0899401D074 :1064C0008984050EE82EFED712003BEC32F0000165 :1064D0002550FD0AD8B478EF32F09E96C69E000E85 :1064E000C96EFF0E9EB602D0E82EFCD781EF32F0C7 :1064F0009E96C69E010EC96EFF0E9EB602D0E82E75 :10650000FCD79E96C69E000EC96EFF0E9EB602D0A8 :10651000E82EFCD7C9CFAFF59E96C69E000EC96E79 :10652000FF0E9EB602D0E82EFCD7C9CFB0F59E96DE :10653000C69E000EC96EFF0E9EB602D0E82EFCD796 :10654000C9CFB1F59E96C69E000EC96EFF0E9EB6CF :1065500002D0E82EFCD7C9CFB2F59E96C69E000E9B :10656000C96EFF0E9EB602D0E82EFCD7C9CFB3F598 :106570009E96C69E000EC96EFF0E9EB602D0E82EF5 :10658000FCD7C9CFB4F59E96C69E000EC96EFF0E0D :106590009EB602D0E82EFCD7C9CFB5F552EC32F04A :1065A00012003BEC32F000012550FD0AD8B4E4EFB4 :1065B00032F09E96C69E800EC96EFF0E9EB602D029 :1065C000E82EFCD7EDEF32F09E96C69E810EC96E86 :1065D000FF0E9EB602D0E82EFCD79E96C69EAFC593 :1065E000C9FFFF0E9EB602D0E82EFCD79E96C69E2F :1065F000B0C5C9FFFF0E9EB602D0E82EFCD79E960E :10660000C69EB1C5C9FFFF0E9EB602D0E82EFCD7CC :106610009E96C69EB2C5C9FFFF0E9EB602D0E82E5A :10662000FCD79E96C69EB3C5C9FFFF0E9EB602D08C :10663000E82EFCD79E96C69EB4C5C9FFFF0E9EB637 :1066400002D0E82EFCD79E96C69EB5C5C9FFFF0EA8 :106650009EB602D0E82EFCD752EC32F012003BEC92 :1066600032F000012550FD0AD8B442EF33F09E9677 :10667000C69E070EC96EFF0E9EB602D0E82EFCD74E :106680004BEF33F09E96C69E090EC96EFF0E9EB666 :1066900002D0E82EFCD79E96C69E000EC96EFF0E55 :1066A0009EB602D0E82EFCD7C9CFAFF59E96C69E07 :1066B000000EC96EFF0E9EB602D0E82EFCD7C9CFE1 :1066C000B0F59E96C69E000EC96EFF0E9EB602D015 :1066D000E82EFCD7C9CFB1F59E96C69E000EC96EB6 :1066E000FF0E9EB602D0E82EFCD7C9CFB2F552EC11 :1066F00032F03BEC32F09E96C69E26C0C9FFFF0EDC :106700009EB602D0E82EFCD79E96C69E000EC96E9D :10671000FF0E9EB602D0E82EFCD7C9CFB6F552ECDC :1067200032F012003BEC32F000012550FD0AD8B4E3 :10673000A5EF33F09E96C69E870EC96EFF0E9EB6DD :1067400002D0E82EFCD7AEEF33F09E96C69E890E9F :10675000C96EFF0E9EB602D0E82EFCD79E96C69E4E :10676000000EC96EFF0E9EB602D0E82EFCD79E9694 :10677000C69E800EC96EFF0E9EB602D0E82EFCD7D4 :106780009E96C69E800EC96EFF0E9EB602D0E82E63 :10679000FCD79E96C69E800EC96EFF0E9EB602D096 :1067A000E82EFCD752EC32F0120000012550FE0A10 :1067B000D8B4E4EF33F000012550FD0AD8B4FBEF64 :1067C00033F02FEC33F012003BEC32F09E96C69E75 :1067D0008F0EC96EFF0E9EB602D0E82EFCD79E9695 :1067E000C69E000EC96EFF0E9EB602D0E82EFCD7E4 :1067F00052EC32F012003BEC32F09E96C69E8E0EAA :10680000C96EFF0E9EB602D0E82EFCD79E96C69E9D :10681000000EC96EFF0E9EB602D0E82EFCD752ECD9 :1068200032F0120000012550FE0AD8B44BEF34F0CC :1068300000012550FD0AD8B478EF34F03BEC32F07B :106840009E96C69E27C0C9FFFF0E9EB602D0E82EB8 :10685000FCD79E96C69E010EC96EFF0E9EB602D054 :10686000E82EFCD752EC32F03BEC32F09E96C69EFE :10687000910EC96EFF0E9EB602D0E82EFCD79E96F2 :10688000C69EA50EC96EFF0E9EB602D0E82EFCD79E :1068900052EC32F012003BEC32F09E96C69E27C0BE :1068A000C9FFFF0E9EB602D0E82EFCD79E96C69E6C :1068B000450EC96EFF0E9EB602D0E82EFCD752ECF4 :1068C00032F03BEC32F09E96C69E8F0EC96EFF0EE4 :1068D0009EB602D0E82EFCD79E96C69E000EC96ECC :1068E000FF0E9EB602D0E82EFCD752EC32F012001A :1068F0003BEC32F09E96C69E27C0C9FFFF0E9EB6A7 :1069000002D0E82EFCD79E96C69E3D0EC96EFF0EA5 :106910009EB602D0E82EFCD752EC32F03BEC32F0BF :106920009E96C69E8F0EC96EFF0E9EB602D0E82EB2 :10693000FCD79E96C69EA90EC96EFF0E9EB602D0CB :10694000E82EFCD752EC32F012003BEC32F09E966F :10695000C69E27C0C9FFFF0E9EB602D0E82EFCD708 :106960009E96C69E810EC96EFF0E9EB602D0E82E80 :10697000FCD752EC32F012003BEC32F09E96C69EF1 :1069800027C0C9FFFF0E9EB602D0E82EFCD79E9608 :10699000C69E010EC96EFF0E9EB602D0E82EFCD731 :1069A00052EC32F012003BEC32F09E96C69E910EF5 :1069B000C96EFF0E9EB602D0E82EFCD79E96C69EEC :1069C000A50EC96EFF0E9EB602D0E82EFCD752EC83 :1069D00032F012003BEC32F09E96C69E910EC96ECC :1069E000FF0E9EB602D0E82EFCD79E96C69E000EE5 :1069F000C96EFF0E9EB602D0E82EFCD752EC32F0E4 :106A000012000501256B266B276B286B899A400EB7 :106A1000C76E200EC66E9E96C69E030EC96EFF0EF2 :106A20009EB602D0E82EFCD79E96C69E27C5C9FF0B :106A3000FF0E9EB602D0E82EFCD79E96C69E26C5B7 :106A4000C9FFFF0E9EB602D0E82EFCD79E96C69ECA :106A500025C5C9FFFF0E9EB602D0E82EFCD79E9634 :106A6000C69EC952FF0E9EB602D0E82EFCD7898A78 :106A70000F01C950FF0A01E1120005012E51130A4E :106A800005E005012E51170A0CE012000501F00E79 :106A9000256FFF0E266F0F0E276F000E286F5AEF1F :106AA00035F00501F00E256FFF0E266FFF0E276FE4 :106AB000000E286F899A400EC76E200EC66E9E96F5 :106AC000C69E030EC96EFF0E9EB602D0E82EFCD7FE :106AD0009E96C69E27C5C9FFFF0E9EB602D0E82E21 :106AE000FCD79E96C69E26C5C9FFFF0E9EB602D055 :106AF000E82EFCD79E96C69E25C5C9FFFF0E9EB602 :106B000002D0E82EFCD79E96C69EC952FF0E9EB6B6 :106B100002D0E82EFCD7898A0F01C950FF0A1DE078 :106B200005012E51130A05E005012E51170A0BE04D :106B300012000501000E256F000E266F100E276F44 :106B4000000E286F12000501000E256F000E266F43 :106B5000000E276F010E286F12000501256B266BB2 :106B6000276B286B05012E51130A05E005012E51F4 :106B7000170A0CE012000501000E216F000E226FB3 :106B8000080E236F000E246FCFEF35F00501000EC5 :106B9000216F000E226F800E236F000E246F21C51F :106BA00000F122C501F123C502F124C503F125C579 :106BB00004F126C505F127C506F128C507F1F0EC5B :106BC0002EF000C125F501C126F502C127F503C14C :106BD00028F5899A400EC76E200EC66E9E96C69EF8 :106BE000030EC96EFF0E9EB602D0E82EFCD79E960D :106BF000C69E27C5C9FFFF0E9EB602D0E82EFCD761 :106C00009E96C69E26C5C9FFFF0E9EB602D0E82EF0 :106C1000FCD79E96C69E25C5C9FFFF0E9EB602D024 :106C2000E82EFCD79E96C69EC952FF0E9EB602D095 :106C3000E82EFCD7898AC950FF0A08E104C125F56E :106C400005C126F506C127F507C128F5D89005012D :106C500024332333223321332151F00B216F0501DB :106C600021673AEF36F022673AEF36F023673AEFC2 :106C700036F02467CFEF35F00501100E2527E86ABE :106C80002623E86A2723E86A28231200E86A050118 :106C90002E51130A06E005012E51170A0BE0020ED1 :106CA000120005012851000A03E12751F00B07E00B :106CB000010E120005012851000A01E0010E120028 :106CC00029C500F12AC501F12BC502F12CC503F13C :106CD00025C504F126C505F127C506F128C507F12C :106CE0009FEC30F003BF120046EC36F0D8A4D8EF8A :106CF00036F0899A400EC76E200EC66E9E96C69ECE :106D0000060EC96EFF0E9EB602D0E82EFCD7898A09 :106D1000899A9E96C69E020EC96EFF0E9EB602D03E :106D2000E82EFCD79E96C69E27C5C9FFFF0E9EB6CD :106D300002D0E82EFCD79E96C69E26C5C9FFFF0E40 :106D40009EB602D0E82EFCD79E96C69E25C5C9FFEA :106D5000FF0E9EB602D0E82EFCD79E96C69E000E71 :106D6000C96EFF0E9EB602D0E82EFCD7898A899A9A :106D70009E96C69E050EC96EFF0E9EB602D0E82EE8 :106D8000FCD79E96C69EC952FF0E9EB602D0E82E34 :106D9000FCD7C9B0C1EF36F0898A0501100E25274E :106DA000E86A2623E86A2723E86A282360EF36F09A :106DB0001200899A400EC76E200EC66E9E96C69E21 :106DC000060EC96EFF0E9EB602D0E82EFCD7898A49 :106DD000899A9E96C69EC70EC96EFF0E9EB602D0B9 :106DE000E82EFCD7898A0501256B266B276B286B5B :106DF0001200899A400EC76E200EC66E9E96C69EE1 :106E0000050EC96EFF0E9EB602D0E82EFCD79E96E8 :106E1000C69EC952FF0E9EB602D0E82EFCD7C9CF3F :106E200037F5898A1200899A400EC76E200EC66E09 :106E30009E96C69EB90EC96EFF0E9EB602D0E82E73 :106E4000FCD7898A1200899A400EC76E200EC66E42 :106E50009E96C69EAB0EC96EFF0E9EB602D0E82E61 :106E6000FCD7898AFF0EE82EFED7120046EC36F0DA :106E7000D8A41200899A400EC76E200EC66E9E9648 :106E8000C69E030EC96EFF0E9EB602D0E82EFCD73A :106E90009E96C69E27C5C9FFFF0E9EB602D0E82E5D :106EA000FCD79E96C69E26C5C9FFFF0E9EB602D091 :106EB000E82EFCD79E96C69E25C5C9FFFF0E9EB63E :106EC00002D0E82EFCD79E96C69EC952FF0E9EB6F3 :106ED00002D0E82EFCD7898A0F01C950FF0AD8A436 :106EE000B5EF38F00501FE0E376F0501FF0E536F49 :106EF000FF0E546FFF0E556FFF0E566F15A6379994 :106F0000158665EC32F0AFC538F5B0C539F5B1C5B9 :106F10003AF5B2C53BF5B3C53CF5B4C53DF5B5C5CD :106F20003EF50784BAC166F1BBC167F1BCC168F127 :106F3000BDC169F14BC14FF14CC150F14DC151F18F :106F40004EC152F157C159F158C15AF100011650C2 :106F5000010AD8B4BAEF37F000011650020AD8B4CB :106F6000DFEF37F000011650040AD8B404EF38F010 :106F7000B5EF38F00501476B486B496B4A6B05016B :106F80004B6B4C6B4D6B4E6B05014F6B506B516BEC :106F9000526B8BA0379B8EEC22F000C1DAF101C15D :106FA000DBF102C1DCF103C1DDF100C13FF501C13C :106FB00040F502C141F503C142F523EF38F0050168 :106FC000476B486B496B4A6B05014B6B4C6B4D6BC8 :106FD0004E6B05014F6B506B516B526B8EEC22F078 :106FE00000C1DAF101C1DBF102C1DCF103C1DDF165 :106FF0008BEC23F000C147F501C148F502C149F50A :1070000003C14AF5B5EF38F0379BDAC13FF5DBC174 :1070100040F5DCC141F5DDC142F58EEC22F000C146 :107020004BF501C14CF502C14DF503C14EF58BEC9A :1070300023F000C14FF501C150F502C151F503C164 :1070400052F523EF38F0050161672EEF38F06267E3 :107050002EEF38F063672EEF38F0646732EF38F0C8 :1070600047EF38F0DAC100F1DBC101F1DCC102F118 :10707000DDC103F161C504F162C505F163C506F127 :1070800064C507F19FEC30F003BFB5EF38F059C18C :1070900043F55AC144F5B9C545F50501110E326FE6 :1070A000899A400EC76E200EC66E9E96C69E060E2C :1070B000C96EFF0E9EB602D0E82EFCD7898A899A47 :1070C0009E96C69E020EC96EFF0E9EB602D0E82E98 :1070D000FCD79E96C69E27C5C9FFFF0E9EB602D05E :1070E000E82EFCD79E96C69E26C5C9FFFF0E9EB60B :1070F00002D0E82EFCD79E96C69E25C5C9FFFF0E7E :107100009EB602D0E82EFCD725EE37F0322F02D003 :1071100095EF38F09E96C69EDECFC9FFFF0E9EB655 :1071200002D0E82EFCD786EF38F0898A899A9E969D :10713000C69E050EC96EFF0E9EB602D0E82EFCD785 :107140009E96C69EC952FF0E9EB602D0E82EFCD770 :10715000C9B0A0EF38F0898A0501100E2527E86A2A :107160002623E86A2723E86A28231590079412004B :1071700021C500F122C501F123C502F124C503F1A7 :10718000899A400EC76E200EC66E9E96C69E0B0E46 :10719000C96EFF0E9EB602D0E82EFCD79E96C69E04 :1071A00002C1C9FFFF0E9EB602D0E82EFCD79E9604 :1071B000C69E01C1C9FFFF0E9EB602D0E82EFCD7C5 :1071C0009E96C69E00C1C9FFFF0E9EB602D0E82E55 :1071D000FCD79E96C69EC952FF0E9EB602D0E82EE0 :1071E000FCD725EE37F00501100E326F9E96C69E35 :1071F000C952FF0E9EB602D0E82EFCD7C9CFDEFFE3 :10720000322FF6EF38F0898A1200899A400EC76E45 :10721000200EC66E9E96C69E900EC96EFF0E9EB63E :1072200002D0E82EFCD79E96C69E000EC96EFF0EB9 :107230009EB602D0E82EFCD79E96C69E000EC96E62 :10724000FF0E9EB602D0E82EFCD79E96C69E000E7C :10725000C96EFF0E9EB602D0E82EFCD79E96C69E43 :10726000C952FF0E9EB602D0E82EFCD7C9CF2DF52D :107270009E96C69EC952FF0E9EB602D0E82EFCD73F :10728000C9CF2EF5898A120065EC32F005012F5125 :10729000010A61E005012F51020A16E005012F5194 :1072A000030A1BE005012F51040A26E005012F51B6 :1072B000050A2DE005012F51060A3BE005012F517B :1072C000070A41E0ABEF39F015B01200602FA9EFCB :1072D00039F05FC560F5ABEF39F0B0C500F10101E1 :1072E0000F0E001701010051000A35E001010051A5 :1072F000050A31E0A9EF39F0B0C500F101010F0E28 :10730000001701010051000A26E0A9EF39F005013C :10731000B051000A20E00501B051150A1CE005013A :10732000B051300A18E00501B051450A14E0A9EF48 :1073300039F00501B051000A0EE00501B051300AE4 :107340000AE0A9EF39F00501B051000A04E0A9EF05 :1073500039F015901200158012008B906BEC2FF015 :10736000B9C5E8FFD70802E36BEC2FF0B9C5E8FF19 :10737000C80802E36BEC2FF0B9C5E8FFB90802E3D7 :107380006BEC2FF0B9C5E8FFAA0802E36BEC2FF015 :10739000B9C5E8FF9B0802E36BEC2FF013EC37F064 :1073A000F29CF29E8B94C69AC2909482948C720E38 :1073B000D36ED3A4FED789968A909390F29AF294D2 :1073C0009D909E909D929E92F298F292D5EC33F011 :1073D000FF0EE8CF00F0E82EFED7002EFCD7F2908B :1073E000F2868150FF0EE82EFED7F29081A8FBEFC7 :1073F00039F0F29E0300700ED36EF296F29015846F :0A74000003808CEC2FF09AEF0BF0E4 :10BF0000E844F926000C160C2B0C3F0C520C640C68 :10BF1000760C860C960CA50CB30CC10CCF0CDC0C6B :06BF2000E80CF40C000C1B :0200000400F00A :0100C800FD3A :00000001FF ./firmware/SQM-LU-DL-4-6-75.hex0000644000175000017500000022207213631214500015467 0ustar anthonyanthony:020000040000FA :0408000098EF0BF072 :1008100003B275EF05F0F2B493EF05F09EB09BEFD5 :1008200005F09EB2A3EF05F0F2A81AEF04F0F2B2C1 :1008300023EF04F0F2B01FEF04F047EF0BF0F29655 :10084000F29047EF0BF0CD90F2929EA02DEF04F0C6 :100850000101533F2DEF04F0542BB2C1B6F1B3C1E7 :10086000B7F1B4C1B8F1B5C1B9F1AEC1B2F1AFC120 :10087000B3F1B0C1B4F1B1C1B5F1AAC1AEF1ABC130 :10088000AFF1ACC1B0F1ADC1B1F1A6C1AAF1A7C140 :10089000ABF1A8C1ACF1A9C1ADF1A2C1A6F1A3C150 :1008A000A7F1A4C1A8F1A5C1A9F19EC1A2F19FC160 :1008B000A3F1A0C1A4F1A1C1A5F19AC19EF19BC170 :1008C0009FF19CC1A0F19DC1A1F1CECF9AF1CFCFF4 :1008D0009BF153C19CF154C19DF1CF6ACE6A0101D5 :1008E000536B546B9E90CD800FBC0F8E0FBA7CEF74 :1008F00004F00F8A47EF0BF013880F8C0FBEB9EF8F :1009000004F09AC19EF19BC19FF19CC1A0F19DC1D1 :10091000A1F19EC1A2F19FC1A3F1A0C1A4F1A1C107 :10092000A5F1A2C1A6F1A3C1A7F1A4C1A8F1A5C1D7 :10093000A9F1A6C1AAF1A7C1ABF1A8C1ACF1A9C1A7 :10094000ADF1AAC1AEF1ABC1AFF1ACC1B0F1ADC177 :10095000B1F1AEC1B2F1AFC1B3F1B0C1B4F1B1C147 :10096000B5F1B2C1B6F1B3C1B7F1B4C1B8F1B5C117 :10097000B9F101015E6B5F6B606B616B9A515E2731 :100980009B515F239C5160239D5161239E515E27A3 :100990009F515F23A0516023A1516123A2515E2783 :1009A000A3515F23A4516023A5516123A6515E2763 :1009B000A7515F23A8516023A9516123AA515E2743 :1009C000AB515F23AC516023AD516123AE515E2723 :1009D000AF515F23B0516023B1516123B2515E2703 :1009E000B3515F23B4516023B5516123B6515E27E3 :1009F000B7515F23B8516023B9516123D8900101E9 :100A0000613360335F335E33D8900101613360330B :100A10005F335E33D8900101613360335F335E33FF :100A200000C10CF101C10DF102C10EF103C10FF1C2 :100A300004C110F105C111F106C112F107C113F192 :100A400008C114F109C115F10AC116F10BC117F162 :100A500034C135F111B838EF05F00101620E046FB1 :100A6000010E056F000E066F000E076F41EF05F0D7 :100A70000101A70E046F020E056F000E066F000E37 :100A8000076F5EC100F15FC101F160C102F161C198 :100A900003F1D9EC2FF003BF04D01CBE02D01CA080 :100AA000108C11A059EF05F010BA59EF05F00F8026 :100AB000108A0CC100F10DC101F10EC102F10FC18C :100AC00003F110C104F111C105F112C106F113C106 :100AD00007F114C108F115C109F116C10AF117C1D6 :100AE0000BF135C134F147EF0BF00392ABB2AB9889 :100AF000AB88030103EE00F080517F0BE92604C0B0 :100B0000EFFF802B8151805D700BD8A48B82000099 :100B10008051815D700BD8A48B9281518019D8B41B :100B2000079047EF0BF0F2940101453F47EF0BF0C0 :100B3000462B47EF0BF09E900101533F47EF0BF020 :100B4000542B47EF0BF09E9211B843EF08F00400CE :100B500066A1ABEF05F08BB4B5EF05F010ACB5EFC7 :100B600005F08B84109CB6EF05F08B94077C07ACE6 :100B7000D1EF05F0C274C2B4CBEF05F0C3CFB7F527 :100B8000C4CFB8F50501D890B833B733D890B8338F :100B9000B733D2EF05F0C3CF55F1C4CF56F1D2EF42 :100BA00005F0C28207B444EF06F047C14BF148C1DB :100BB0004CF149C14DF14AC14EF15EC162F15FC1D4 :100BC00063F160C164F161C165F113A8EAEF05F05A :100BD000138C13989AC1BAF19BC1BBF19CC1BCF1B3 :100BE0009DC1BDF19EC1BEF19FC1BFF1A0C1C0F1C9 :100BF000A1C1C1F1A2C1C2F1A3C1C3F1A4C1C4F199 :100C0000A5C1C5F1A6C1C6F1A7C1C7F1A8C1C8F168 :100C1000A9C1C9F1AAC1CAF1ABC1CBF1ACC1CCF138 :100C2000ADC1CDF1AEC1CEF1AFC1CFF1B0C1D0F108 :100C3000B1C1D1F1B2C1D2F1B3C1D3F1B4C1D4F1D8 :100C4000B5C1D5F1B6C1D6F1B7C1D7F1B8C1D8F1A8 :100C5000B9C1D9F1B7C5B9F5B8C5BAF5B9C5BBF5CC :100C6000BAC5BCF5010155515B2756515C23E86AB2 :100C70005D230E2E44EF06F05CC157F15DC158F1C3 :100C80005B6B5C6B5D6B078E0201002F47EF0BF017 :100C90003C0E006F1D50E00BE00AE86612881BBE98 :100CA00002D01BB4108E00C10CF101C10DF102C1C4 :100CB0000EF103C10FF104C110F105C111F106C11C :100CC00012F107C113F108C114F109C115F10AC1EC :100CD00016F10BC117F134C135F181AAACEF06F062 :100CE00015A4F7EF06F005012F51000AD8B43AEF2A :100CF00007F005012F51010AD8B4B6EF06F005013F :100D00002F51020AD8B4F7EF06F005012F51030A5C :100D1000D8B4F7EF06F005012F51040AD8B4F7EF65 :100D200006F005012F51050AD8B4F7EF06F00501CA :100D30002F51060AD8B4F7EF06F005012F51070A24 :100D4000D8B4F7EF06F005012F51320AD8B4B4EF4A :100D500006F02F6B3AEF07F000011650030AD8B4E3 :100D6000F7EF06F03AEF07F03AEF07F005015767A3 :100D7000C1EF06F05867C1EF06F05967C1EF06F002 :100D80005A67C5EF06F03AEF07F05BC500F15CC5A6 :100D900001F15DC502F15EC503F10101010E046FB1 :100DA000000E056F000E066F000E076FD9EC2FF0D6 :100DB00000C15BF501C15CF502C15DF503C15EF5E3 :100DC00001010067EBEF06F00167EBEF06F0026749 :100DD000EBEF06F003673AEF07F057C55BF558C530 :100DE0005CF559C55DF55AC55EF524EF07F00FBEF9 :100DF0000CEF07F010A011EF07F00101476708EFB3 :100E000007F0486708EF07F0496708EF07F04A67FF :100E10000CEF07F011EF07F007AE11EF07F024EF2A :100E200007F00501312F3AEF07F03C0E316F302FFC :100E30003AEF07F00101000E626FE00E636FA50E3E :100E4000646F010E656F138800011650000AD8B454 :100E500032EF07F000011650030AD8B437EF07F05D :100E60003AEF07F00001010E166E3AEF07F00001AD :100E7000040E166E0501666B37B740EF07F066810A :100E80000CC100F10DC101F10EC102F10FC103F15E :100E900010C104F111C105F112C106F113C107F12E :100EA00014C108F115C109F116C10AF117C10BF1FE :100EB00035C134F100C10CF101C10DF102C10EF1D7 :100EC00003C10FF104C110F105C111F106C112F106 :100ED00007C113F108C114F109C115F10AC116F1D6 :100EE0000BC117F134C135F101018E677FEF07F0B7 :100EF0008F677FEF07F090677FEF07F0916783EFD1 :100F000007F0B4EF07F092C100F193C101F194C171 :100F100002F195C103F10101010E046F000E056F8E :100F2000000E066F000E076FD9EC2FF000C192F192 :100F300001C193F102C194F103C195F10101006770 :100F4000A9EF07F00167A9EF07F00267A9EF07F023 :100F50000367B4EF07F08EC192F18FC193F190C196 :100F600094F191C195F10F80D57ED5BE6ED0D6CFCC :100F700047F1D7CF48F145C149F1E86AE8CF4AF1D6 :100F8000138A1CBE02D01CA0108C109047C100F127 :100F900048C101F149C102F14AC103F101010A0E40 :100FA000046F000E056F000E066F000E076FD9EC80 :100FB0002FF003AF1080010154A7EBEF07F00F9A59 :100FC0000F9C0F9E0101000E5E6F600E5F6F3D0E65 :100FD000606F080E616F010147BFFBEF07F04867C4 :100FE000FBEF07F04967FBEF07F04A67FBEF07F0FD :100FF000F28820EF08F0F2985E6B5F6B606B616BBC :101000009A6B9B6B9C6B9D6B9E6B9F6BA06BA16B9C :10101000A26BA36BA46BA56BA66BA76BA86BA96B4C :10102000AA6BAB6BAC6BAD6BAE6BAF6BB06BB16BFC :10103000B26BB36BB46BB56BB66BB76BB86BB96BAC :10104000D76AD66A0101456B466B0CC100F10DC130 :1010500001F10EC102F10FC103F110C104F111C180 :1010600005F112C106F113C107F114C108F115C150 :1010700009F116C10AF117C10BF135C134F147EF7F :101080000BF047EF0BF00201002FABEF0AF0D59EFB :10109000D6CF47F1D7CF48F145C149F1E86AE8CF4B :1010A0004AF1138AD76AD66A0101456B466BD58E21 :1010B0001D50E00BE00AE86612881BBE02D01BB48C :1010C000108E1AAE1F8C00C10CF101C10DF102C1CE :1010D0000EF103C10FF104C110F105C111F106C1F8 :1010E00012F107C113F108C114F109C115F10AC1C8 :1010F00016F10BC117F134C135F10FA0109A11B8D8 :101100008DEF08F00101620E046F010E056F000EF5 :10111000066F000E076F96EF08F00101A70E046F2F :10112000020E056F000E066F000E076F47C100F13B :1011300048C101F149C102F14AC103F1D9EC2FF0D4 :1011400003BFA9EF08F01CBE02D01CA0108C11B088 :101150000F800CC100F10DC101F10EC102F10FC1F0 :1011600003F110C104F111C105F112C106F113C15F :1011700007F114C108F115C109F116C10AF117C12F :101180000BF135C134F102013C0E006F00C10CF1CE :1011900001C10DF102C10EF103C10FF104C110F143 :1011A00005C111F106C112F107C113F108C114F113 :1011B00009C115F10AC116F10BC117F134C135F19E :1011C00081BAE6EF08F015B225EF09F015A025EF7A :1011D00009F015A470EF09F005012F51000AD8B4E9 :1011E000B3EF09F005012F51010AD8B42FEF09F030 :1011F00005012F51020AD8B470EF09F005012F51F3 :10120000030AD8B470EF09F005012F51040AD8B4CD :1012100070EF09F005012F51050AD8B470EF09F0FD :1012200005012F51060AD8B470EF09F005012F51BE :10123000070AD8B470EF09F005012F51320AD8B46B :101240002DEF09F02F6BB3EF09F000011650030AE0 :10125000D8B470EF09F0B3EF09F0B3EF09F005016E :1012600057673AEF09F058673AEF09F059673AEFD4 :1012700009F05A673EEF09F0B3EF09F05BC500F1E2 :101280005CC501F15DC502F15EC503F10101010E0E :10129000046F000E056F000E066F000E076FD9EC8D :1012A0002FF000C15BF501C15CF502C15DF503C122 :1012B0005EF50101006764EF09F0016764EF09F072 :1012C000026764EF09F00367B3EF09F057C55BF5F8 :1012D00058C55CF559C55DF55AC55EF59DEF09F039 :1012E0000FBE85EF09F010A08AEF09F001014767F2 :1012F00081EF09F0486781EF09F0496781EF09F054 :101300004A6785EF09F08AEF09F007AE8AEF09F026 :101310009DEF09F00501312FB3EF09F03C0E316F5D :10132000302FB3EF09F00101000E626FE00E636F22 :10133000A50E646F010E656F138800011650000A38 :10134000D8B4ABEF09F000011650030AD8B4B0EFDF :1013500009F0B3EF09F00001010E166EB3EF09F0CA :101360000001040E166E0501666B37B7B9EF09F080 :1013700066810CC100F10DC101F10EC102F10FC176 :1013800003F110C104F111C105F112C106F113C13D :1013900007F114C108F115C109F116C10AF117C10D :1013A0000BF135C134F100C10CF101C10DF102C1E5 :1013B0000EF103C10FF104C110F105C111F106C115 :1013C00012F107C113F108C114F109C115F10AC1E5 :1013D00016F10BC117F134C135F101018E67F8EF39 :1013E00009F08F67F8EF09F09067F8EF09F091675F :1013F000FCEF09F02DEF0AF092C100F193C101F169 :1014000094C102F195C103F10101010E046F000EB8 :10141000056F000E066F000E076FD9EC2FF000C1AC :1014200092F101C193F102C194F103C195F101015F :10143000006722EF0AF0016722EF0AF0026722EF4D :101440000AF003672DEF0AF08EC192F18FC193F17C :1014500090C194F191C195F10F80109047C100F1B6 :1014600048C101F149C102F14AC103F101010A0E6B :10147000046F000E056F000E066F000E076FD9ECAB :101480002FF003AF1080010154A753EF0AF00F9A19 :101490000F9C0F9E0101000E5E6F600E5F6F3D0E90 :1014A000606F080E616F47C100F148C101F149C189 :1014B00002F14AC103F10101140E046F050E056F1C :1014C000000E066F000E076FD9EC2FF003AF6CEF24 :1014D0000AF0F28891EF0AF0F2985E6B5F6B606B36 :1014E000616B9A6B9B6B9C6B9D6B9E6B9F6BA06BF8 :1014F000A16BA26BA36BA46BA56BA66BA76BA86B70 :10150000A96BAA6BAB6BAC6BAD6BAE6BAF6BB06B1F :10151000B16BB26BB36BB46BB56BB66BB76BB86BCF :10152000B96B0CC100F10DC101F10EC102F10FC187 :1015300003F110C104F111C105F112C106F113C18B :1015400007F114C108F115C109F116C10AF117C15B :101550000BF135C134F104008BB4B6EF0AF010ACD6 :10156000B6EF0AF08B84109CB7EF0AF08B94077CDF :1015700007ACD2EF0AF0C274C2B4CCEF0AF0C3CF0A :10158000B7F5C4CFB8F50501D890B833B733D890C4 :10159000B833B733D3EF0AF0C3CF55F1C4CF56F108 :1015A000D3EF0AF0C28207B445EF0BF047C14BF10D :1015B00048C14CF149C14DF14AC14EF15EC162F1E1 :1015C0005FC163F160C164F161C165F113A8EBEF24 :1015D0000AF0138C13989AC1BAF19BC1BBF19CC15C :1015E000BCF19DC1BDF19EC1BEF19FC1BFF1A0C1C3 :1015F000C0F1A1C1C1F1A2C1C2F1A3C1C3F1A4C193 :10160000C4F1A5C1C5F1A6C1C6F1A7C1C7F1A8C162 :10161000C8F1A9C1C9F1AAC1CAF1ABC1CBF1ACC132 :10162000CCF1ADC1CDF1AEC1CEF1AFC1CFF1B0C102 :10163000D0F1B1C1D1F1B2C1D2F1B3C1D3F1B4C1D2 :10164000D4F1B5C1D5F1B6C1D6F1B7C1D7F1B8C1A2 :10165000D8F1B9C1D9F1B7C5B9F5B8C5BAF5B9C5A9 :10166000BBF5BAC5BCF5010155515B2756515C234A :10167000E86A5D230E2E45EF0BF05CC157F15DC1AA :1016800058F15B6B5C6B5D6B078E47EF0BF002C034 :10169000E0FF005001C0D8FF1000A6B24DEF0BF0E4 :1016A0000CC0A9FF0BC0A8FFA69EA69CA684F29E14 :1016B000550EA76EAA0EA76EA682F28EA694A6B2AB :1016C0005FEF0BF00C2A1200A96EA69EA69CA680C6 :1016D000A8500C2A120004012C0E826F96EC0EF01A :1016E000EEEC30F00C5064EC0BF0E8CF00F10C5055 :1016F00064EC0BF0E8CF01F101AF84EF0BF00101D6 :10170000FF0E026FFF0E036F77EC30F0296790EF4A :101710000BF00401200E826F96EC0EF095EF0BF0AB :1017200004012D0E826F96EC0EF081EC2EF012006B :1017300015941596076A0F6A106A116A126A136A7D :10174000166A0F010D0EC16E860EC06E030EC26EBC :101750000F01680E896E130E926E080E8A6EF30EDC :10176000936E8B6A900E946EC80E64EC0BF0E8CF0B :10177000E8FF1098E8A0108810A805D00E0E256E7E :101780008E0E266E04D00F0E256E8F0E266E86EC02 :1017900031F0D1EC32F0F18EF19EFC0E64EC0BF0E6 :1017A000E8CF0BF00BA011800BA211820BA41184C7 :1017B0000BA81188C90E64EC0BF0E8CF1AF0CA0E22 :1017C00064EC0BF0E8CF1BF0CB0E64EC0BF0E8CF31 :1017D0001CF0CC0E64EC0BF0E8CF1DF0FB0E64ECBB :1017E0000BF0E8CF37F0CE0E64EC0BF0E8CF14F03E :1017F000CD0E64EC0BF0E8CF36F01F6A206A0E6A5B :1018000001015B6B5C6B5D6B576B586BF29A01016E :10181000476B486B496B4A6B4B6B4C6B4D6B4E6B1C :101820004F6B506B516B526B456B466BD76AD66AE8 :101830000F01280ED56EF28A9D90B00ECD6E01017B :101840005E6B5F6B606B616B626B636B646B656B34 :10185000666B676B686B696B536B546BCF6ACE6A50 :101860000F9A0F9C0F9E9D80760ECA6E9D8202017C :101870003C0E006FCC6A160E64EC0BF0E8CF00F162 :10188000170E64EC0BF0E8CF01F1180E64EC0BF0CE :10189000E8CF02F1190E64EC0BF0E8CF03F101017F :1018A00003AF6DEF0CF0EEEC30F0160E0C6E00C1D5 :1018B0000BF04DEC0BF0170E0C6E01C10BF04DEC64 :1018C0000BF0180E0C6E02C10BF04DEC0BF0190E64 :1018D0000C6E03C10BF04DEC0BF000C18EF101C199 :1018E0008FF102C190F103C191F100C192F101C1E8 :1018F00093F102C194F103C195F11A0E64EC0BF05F :10190000E8CF00F11B0E64EC0BF0E8CF01F11C0EE8 :1019100064EC0BF0E8CF02F11D0E64EC0BF0E8CFA5 :1019200003F1010103AFC3EF0CF0EEEC30F01A0E3F :101930000C6E00C10BF04DEC0BF01B0E0C6E01C1D8 :101940000BF04DEC0BF01C0E0C6E02C10BF04DECCD :101950000BF01D0E0C6E03C10BF04DEC0BF01A0ECC :1019600064EC0BF0E8CF00F11B0E64EC0BF0E8CF59 :1019700001F11C0E64EC0BF0E8CF02F11D0E64ECDB :101980000BF0E8CF03F100C196F101C197F102C15C :1019900098F103C199F1240EAC6E900EAB6E240E3B :1019A000AC6E080EB86E000EB06E1F0EAF6E040166 :1019B000806B816B0F01900EAB6E0F019D8A03014E :1019C000806B816BC26B8B922BEC36F02BEC36F07C :1019D0000DEC38F009EC34F0200E64EC0BF0E8CF9D :1019E0002FF505012F51FF0AD8A4FEEF0CF02F6B45 :1019F000200E0C6E2FC50BF04DEC0BF00501010E07 :101A0000306F3C0E316F250E64EC0BF0E8CF00F127 :101A1000260E64EC0BF0E8CF01F1270E64EC0BF01E :101A2000E8CF02F1280E64EC0BF0E8CF03F10101DE :101A300003AF35EF0DF0EEEC30F0250E0C6E00C16B :101A40000BF04DEC0BF0260E0C6E01C10BF04DECC3 :101A50000BF0270E0C6E02C10BF04DEC0BF0280EB4 :101A60000C6E03C10BF04DEC0BF000C157F501C13A :101A700058F502C159F503C15AF500C15BF501C122 :101A80005CF502C15DF503C15EF5290E64EC0BF057 :101A9000E8CF5FF5050160515F5DD8A05FC560F5D7 :101AA000210E64EC0BF0E8CF00F1220E64EC0BF099 :101AB000E8CF01F1230E64EC0BF0E8CF02F1240E25 :101AC00064EC0BF0E8CF03F1010103AF96EF0DF0EA :101AD000EEEC30F0210E0C6E00C10BF04DEC0BF073 :101AE000220E0C6E01C10BF04DEC0BF0230E0C6EB0 :101AF00002C10BF04DEC0BF0240E0C6E03C10BF089 :101B00004DEC0BF0210E64EC0BF0E8CF00F1220E4F :101B100064EC0BF0E8CF01F1230E64EC0BF0E8CF9E :101B200002F1240E64EC0BF0E8CF03F100C161F583 :101B300001C162F502C163F503C164F551EC33F0F4 :101B400037EC32F08FEC31F01590C70E64EC0BF0EF :101B5000E8CF00F1010100B1B1EF0DF01592B2EF45 :101B60000DF0158281AAC0EF0DF015B4BBEF0DF09A :101B70001580C0EF0DF04CEC38F015A0B3EF38F045 :101B800007900001F28EF28C12AE03D012BC6EEF01 :101B900019F007B000EF2DF00FB0A8EF25F010BE40 :101BA000A8EF25F012B8A8EF25F000011650010AA1 :101BB000D8B4A1EF1DF081BAE6EF0DF00001165088 :101BC000040AD8B41AEF1CF0ECEF0DF00001165027 :101BD000040AD8B4DDEF1DF00301805181197F0B99 :101BE000D8B400EF2DF013EE00F081517F0BE12609 :101BF000812BE7CFE8FFE00BD8B400EF2DF023EE08 :101C000082F0C2513F0BD926E7CFDFFFC22BDF5056 :101C1000780AD8A400EF2DF0078092C100F193C19B :101C200001F194C102F195C103F10101040E046FA9 :101C3000000E056F000E066F000E076FD9EC2FF037 :101C400000AF2CEF0EF00101030E926F000E936FA8 :101C5000000E946F000E956F03018251720AD8B482 :101C600029EF25F08251520AD8B429EF25F082518C :101C7000750AD8B429EF25F08251680AD8B4AAEFC2 :101C80000EF08251630AD8B4BAEF29F08251690A82 :101C9000D8B4E7EF20F082517A0AD8B4FAEF21F0F5 :101CA0008251490AD8B486EF20F08251500AD8B444 :101CB000A4EF1FF08251700AD8B4E7EF1FF08251F1 :101CC000540AD8B412EF20F08251740AD8B458EFF5 :101CD00020F08251410AD8B4AFEF0FF082514B0A85 :101CE000D8B4ACEF0EF082516D0AD8B41FEF14F0E7 :101CF00082514D0AD8B438EF14F08251730AD8B427 :101D000059EF24F08251530AD8B4BEEF24F0825127 :101D10004C0AD8B4C7EF14F08251590AD8B470EF06 :101D200013F012AE01D0128CF1EF29F0040114EE81 :101D300000F080517F0BE12682C4E7FF802B120068 :101D400004010D0E826F96EC0EF00A0E826F96EC77 :101D50000EF01200EFEF29F004014B0E826F96ECAB :101D60000EF004012C0E826F96EC0EF081B802D0BA :101D700036B630D003018351430AD8B4F1EF0EF0E8 :101D800003018351630AD8B4F3EF0EF003018351CA :101D9000520AD8B4F5EF0EF003018351720AD8B499 :101DA000F7EF0EF003018351470AD8B4F9EF0EF0B4 :101DB00003018351670AD8B4FBEF0EF0030183518E :101DC000540AD8B4FDEF0EF003018351740AD8B45D :101DD0006DEF0FF003018351550AD8B4FFEF0EF0F9 :101DE00083D036807BD0369079D0368277D03692C9 :101DF00075D0368473D0369471D036866FD084C354 :101E000030F185C331F186C332F187C333F101016B :101E1000296B3CEC31F0B3EC30F000C104F101C1AE :101E200005F102C106F103C107F12FEC31F0200EDC :101E3000F86EF76AF66A0900F5CF2CF10900F5CFC4 :101E40002DF10900F5CF2EF10900F5CF2FF1090092 :101E5000F5CF30F10900F5CF31F10900F5CF32F1BE :101E60000900F5CF33F10101296B3CEC31F0B3EC03 :101E700030F0D9EC2FF00101006746EF0FF0016759 :101E800046EF0FF0026746EF0FF0036701D025D051 :101E900004014E0E826F96EC0EF004016F0E826FFD :101EA00096EC0EF004014D0E826F96EC0EF00401DC :101EB000610E826F96EC0EF00401740E826F96EC48 :101EC0000EF00401630E826F96EC0EF00401680EB2 :101ED000826F96EC0EF0EFEF29F03696CD0E0C6E79 :101EE00036C00BF04DEC0BF0CD0E64EC0BF0E8CFF0 :101EF00036F036B006D00401630E826F96EC0EF019 :101F000005D00401430E826F96EC0EF036B206D077 :101F10000401720E826F96EC0EF005D00401520E91 :101F2000826F96EC0EF036B406D00401670E826F15 :101F300096EC0EF005D00401470E826F96EC0EF081 :101F400036B606D00401740E826F96EC0EF005D002 :101F50000401540E826F96EC0EF0EFEF29F00401AD :101F6000410E826F96EC0EF003018351310AD8B412 :101F700090EF12F003018351320AD8B4C0EF11F090 :101F800003018351330AD8B449EF11F0030183519F :101F9000340AD8B439EF10F003018351350AD8B4AC :101FA000D9EF0FF004013F0E826F96EC0EF0EFEFC9 :101FB00029F003018451300AD8B4FFEF0FF0030178 :101FC0008451310AD8B402EF10F003018451650A3C :101FD000D8B4F3EF0FF003018451640AD8B4F6EFDC :101FE0000FF003EF10F03790F7EF0FF03780FB0E94 :101FF0000C6E37C00BF04DEC0BF003EF10F08B9034 :1020000003EF10F08B800401350E826F96EC0EF01A :1020100004012C0E826F96EC0EF08BB017EF10F0CF :102020000401300E826F96EC0EF01CEF10F00401EC :10203000310E826F96EC0EF004012C0E826F96EC3E :102040000EF0FB0E64EC0BF0E8CF37F037A030EF6A :1020500010F00401640E826F96EC0EF035EF10F074 :102060000401650E826F96EC0EF037EF10F0EFEF83 :1020700029F0CC0E64EC0BF0E8CF0BF004012C0E31 :10208000826F96EC0EF003018451310AD8B45DEFF3 :1020900010F003018451300AD8B45FEF10F003014F :1020A00084514D0AD8B469EF10F003018451540AE9 :1020B000D8B470EF10F087EF10F08A8401D08A94C2 :1020C0000BAE04D00BAC02D00BBA21D0E00E0B1239 :1020D00018D01F0E0B168539E844E00B0B1211D0F7 :1020E000E00E0B162FEC31F085C332F186C333F1CD :1020F0000101296B3CEC31F0B3EC30F000511F0BC7 :102100000B12CC0E0C6E0BC00BF04DEC0BF004015F :10211000340E826F96EC0EF004012C0E826F96EC5A :102120000EF0CC0E64EC0BF0E8CF1DF08AB406D0B4 :102130000401300E826F96EC0EF005D00401310ED2 :10214000826F96EC0EF004012C0E826F96EC0EF06E :102150001D38E840070BE8CF82F40401300E8227D7 :1021600096EC0EF004012C0E826F96EC0EF0EEEC65 :1021700030F01D501F0BE8CF00F177EC30F032C18A :1021800082F40401300E822796EC0EF033C182F403 :102190000401300E822796EC0EF004012C0E826FA3 :1021A00096EC0EF0EEEC30F030C000F100AF0BD04A :1021B000FF0E016FFF0E026FFF0E036F04012D0E65 :1021C000826F96EC0EF077EC30F031C182F40401AE :1021D000300E822796EC0EF032C182F40401300EEC :1021E000822796EC0EF033C182F40401300E822770 :1021F00096EC0EF004012C0E826F96EC0EF0EEECD5 :1022000030F02FC000F177EC30F031C182F40401DE :10221000300E822796EC0EF032C182F40401300EAB :10222000822796EC0EF033C182F40401300E82272F :1022300096EC0EF004012C0E826F96EC0EF0EEEC94 :1022400030F031C000F100AF0BD0FF0E016FFF0E78 :10225000026FFF0E036F04012D0E826F96EC0EF0DD :1022600077EC30F031C182F40401300E822796EC15 :102270000EF032C182F40401300E822796EC0EF08B :1022800033C182F40401300E822796EC0EF0EFEF9A :1022900029F0CB0E64EC0BF0E8CF0BF004012C0E10 :1022A000826F96EC0EF003018451450AD8B46DEFAD :1022B00011F003018451440AD8B470EF11F0030106 :1022C0008451300AD8B473EF11F003018451310AFC :1022D000D8B477EF11F082EF11F00B9E7CEF11F084 :1022E0000B8E7CEF11F0FC0E0B167CEF11F0FC0E48 :1022F0000B160B807CEF11F0CB0E0C6E0BC00BF0AD :102300004DEC0BF00401330E826F96EC0EF00401DD :102310002C0E826F96EC0EF0CB0E64EC0BF0E8CF37 :102320001CF01CBE9BEF11F00401450E826F96EC71 :102330000EF0A0EF11F00401440E826F96EC0EF047 :1023400004012C0E826F96EC0EF00401300E826FA9 :1023500096EC0EF004012C0E826F96EC0EF01CB081 :10236000B9EF11F00401300E826F96EC0EF0BEEF63 :1023700011F00401310E826F96EC0EF0EFEF29F0B0 :10238000CA0E64EC0BF0E8CF0BF004012C0E826F48 :1023900096EC0EF003018451450AD8B4FCEF11F01D :1023A00003018451440AD8B4FFEF11F003018451B2 :1023B0004D0AD8B408EF12F003018451410AD8B491 :1023C00002EF12F003018451460AD8B405EF12F06F :1023D00003018451560AD8B410EF12F0030184515E :1023E000500AD8B41BEF12F003018451520AD8B43A :1023F0001EEF12F027EF12F00B9E21EF12F00B8E62 :1024000021EF12F00B9C21EF12F00B8C21EF12F058 :10241000FC0E0B1685C3E8FF030B0B1221EF12F025 :10242000C70E0B1685C3E8FF070BE846E846E846EB :102430000B1221EF12F00B8421EF12F00B9421EF1D :1024400012F0CA0E0C6E0BC00BF04DEC0BF0CA0E66 :1024500064EC0BF0E8CF1BF00401320E826F96ECB7 :102460000EF004012C0E826F96EC0EF01BBE40EFB6 :1024700012F00401450E826F96EC0EF045EF12F05B :102480000401440E826F96EC0EF004012C0E826F54 :1024900096EC0EF01BC0E8FF030BE8CF82F40401BA :1024A000300E822796EC0EF004012C0E826F96EC13 :1024B0000EF01BBC63EF12F00401410E826F96EC2C :1024C0000EF068EF12F00401460E826F96EC0EF0EB :1024D00004012C0E826F96EC0EF01BC0E8FF380B47 :1024E000E842E842E842E8CF82F40401300E822755 :1024F00096EC0EF004012C0E826F96EC0EF01BB4DD :1025000089EF12F00401520E826F96EC0EF08EEFFE :1025100012F00401500E826F96EC0EF0EFEF29F0EE :10252000C90E64EC0BF0E8CF0BF004012C0E826FA7 :1025300096EC0EF003018451450AD8B4AEEF12F0C8 :1025400003018451440AD8B4B1EF12F0030184515D :102550004D0AD8B4B4EF12F0C2EF12F00B9EBCEFEC :1025600012F00B8EBCEF12F0F80E0B1685C3E8FFCD :10257000070B0B12BCEF12F0C90E0C6E0BC00BF068 :102580004DEC0BF00401310E826F96EC0EF004015D :102590002C0E826F96EC0EF0C90E64EC0BF0E8CFB7 :1025A0001AF01ABE06D00401450E826F96EC0EF0AA :1025B00005D00401440E826F96EC0EF004012C0E3F :1025C000826F96EC0EF01AC0E8FF070BE8CF82F49A :1025D0000401300E822796EC0EF004012C0E826F5F :1025E00096EC0EF00780EEEC30F02BC0E8FF003BDD :1025F00000430043030B77EC30F033C182F4040155 :10260000300E822796EC0EF004012C0E826F96ECB1 :102610000EF0EEEC30F02BC001F1019F019D2CC0BB :1026200000F1010177EC30F02FC182F40401300E8B :10263000822796EC0EF030C182F40401300E82271E :1026400096EC0EF031C182F40401300E822796EC34 :102650000EF032C182F40401300E822796EC0EF0A7 :1026600033C182F40401300E822796EC0EF004018F :102670002C0E826F96EC0EF0EEEC30F02DC001F1D6 :102680002EC000F1D89001330033D89001330033CD :10269000010177EC30F02FC182F40401300E822763 :1026A00096EC0EF030C182F40401300E822796ECD5 :1026B0000EF031C182F40401300E822796EC0EF048 :1026C00032C182F40401300E822796EC0EF033C141 :1026D00082F40401300E822796EC0EF0EFEF29F021 :1026E000FC0E64EC0BF0E8CF0BF003018351520AAF :1026F000D8B4A7EF13F003018351720AD8B4AAEF3C :1027000013F003018351500AD8B4ADEF13F0030165 :102710008351700AD8B4B0EF13F003018351550A06 :10272000D8B4B3EF13F003018351750AD8B4B6EFF0 :1027300013F003018351430AD8B4BFEF13F0030130 :102740008351630AD8B4C2EF13F0CBEF13F00B90B0 :10275000C5EF13F00B80C5EF13F00B92C5EF13F02C :102760000B82C5EF13F00B94C5EF13F00B84C5EF8C :1027700013F00B96C5EF13F00B86C5EF13F00B9813 :10278000C5EF13F00B88C5EF13F0FC0E0C6E0BC0F9 :102790000BF04DEC0BF00401590E826F96EC0EF02D :1027A0001190119211941198FC0E64EC0BF0E8CF8B :1027B0000BF00BA011800BA211820BA411840BA8AB :1027C000118811A0EBEF13F00401520E826F96EC0A :1027D0000EF0F0EF13F00401720E826F96EC0EF023 :1027E00011A8FAEF13F00401430E826F96EC0EF07D :1027F000FFEF13F00401630E826F96EC0EF011A24E :1028000009EF14F00401500E826F96EC0EF00EEFFB :1028100014F00401700E826F96EC0EF011A418EF04 :1028200014F00401550E826F96EC0EF01DEF14F0BB :102830000401750E826F96EC0EF0EFEF29F00401A3 :102840006D0E826F96EC0EF003018351300AD8B4FE :1028500077EF14F003018351310AD8B48AEF14F0F2 :1028600003018351320AD8B49DEF14F0F1EF29F03F :1028700004014D0E826F96EC0EF02FEC31F084C304 :1028800031F185C332F186C333F10101296B3CEC90 :1028900031F0B3EC30F003018351300AD8B45FEF6C :1028A00014F003018351310AD8B467EF14F0030127 :1028B0008351320AD8B46FEF14F0F1EF29F0FD0E16 :1028C0000C6E00C10BF04DEC0BF077EF14F0FE0E28 :1028D0000C6E00C10BF04DEC0BF08AEF14F0FF0E04 :1028E0000C6E00C10BF04DEC0BF09DEF14F00401E9 :1028F000300E826F96EC0EF004012C0E826F96EC77 :102900000EF0EEEC30F0FD0E64EC0BF0E8CF00F1D1 :10291000AEEF14F00401310E826F96EC0EF004015C :102920002C0E826F96EC0EF0EEEC30F0FE0E64ECA6 :102930000BF0E8CF00F1AEEF14F00401320E826F1D :1029400096EC0EF0EEEC30F004012C0E826F96EC5B :102950000EF0FF0E64EC0BF0E8CF00F177EC30F0F6 :1029600031C182F40401300E822796EC0EF032C1A0 :1029700082F40401300E822796EC0EF033C182F40B :102980000401300E822796EC0EF0EFEF29F00301E0 :102990008351300AD8B41BEF1AF003018351310A76 :1029A000D8B448EF1BF003018351320AD8B4B6EF14 :1029B0001BF003018351330AD8B4C6EF1BF00301A7 :1029C0008351340AD8B421EF1CF003018351350A36 :1029D000D8B4F5EF1DF003018351360AD8B423EFC4 :1029E0001EF003018351370AD8B4F3EF17F0030147 :1029F0008351380AD8B491EF18F003018351440A87 :102A0000D8B41FEF16F003018351640AD8B43FEF26 :102A100016F003018351460AD8B4FAEF1CF0030103 :102A200083514D0AD8B46CEF16F0030183516D0A3F :102A3000D8B486EF16F0030183515A0AD8B4C2EF16 :102A40001AF003018351490AD8B423EF1FF00301A0 :102A50008351500AD8B455EF1EF003018351540A34 :102A6000D8B4CEEF1EF003018351630AD8B4A6EFA9 :102A700016F003018351430AD8B49EEF17F0030107 :102A80008351730AD8B4A4EF16F003018351610A8D :102A9000D8B46CEF15F003018351650AD8B46BEF1D :102AA0001AF003018351450AD8B479EF1AF00301F3 :102AB0008351620AD8B487EF1AF003018351420AA6 :102AC000D8B495EF1AF003018351760AD8B4A3EF76 :102AD0001AF0D8A4F1EF29F004014C0E826F96ECA5 :102AE0000EF00401610E826F96EC0EF037EC32F0BE :102AF00004012C0E826F96EC0EF0EEEC30F0AFC5B8 :102B000000F1010177EC30F031C182F40401300EA4 :102B1000822796EC0EF032C182F40401300E822737 :102B200096EC0EF033C182F40401300E822796EC4D :102B30000EF004012C0E826F96EC0EF0EEEC30F0ED :102B4000B0C500F1010177EC30F031C182F404012D :102B5000300E822796EC0EF032C182F40401300E62 :102B6000822796EC0EF033C182F40401300E8227E6 :102B700096EC0EF004012C0E826F96EC0EF0EEEC4B :102B800030F0B1C500F1010177EC30F031C182F4D1 :102B90000401300E822796EC0EF032C182F404015B :102BA000300E822796EC0EF033C182F40401300E11 :102BB000822796EC0EF004012C0E826F96EC0EF03C :102BC000EEEC30F0B2C500F1010177EC30F031C12C :102BD00082F40401300E822796EC0EF032C182F4AA :102BE0000401300E822796EC0EF033C182F404010A :102BF000300E822796EC0EF004012C0E826F96ECBC :102C00000EF0EEEC30F0B6C500F1010177EC30F0DB :102C100031C182F40401300E822796EC0EF032C1ED :102C200082F40401300E822796EC0EF033C182F458 :102C30000401300E822796EC0EF051EF1EF00301D6 :102C40008451300AD8B42BEF16F003018451310AB5 :102C5000D8B42FEF16F01592159630EF16F01582B6 :102C6000C70E64EC0BF0E8CF00F10101008115A262 :102C70000091C70E0C6E00C10BF04DEC0BF0C70EAF :102C800064EC0BF0E8CF00F1010100B14BEF16F05E :102C900015924CEF16F0158204014C0E826F96ECE3 :102CA0000EF00401640E826F96EC0EF004012C0EFF :102CB000826F96EC0EF015B265EF16F00401300E3F :102CC000826F96EC0EF06AEF16F00401310E826FFF :102CD00096EC0EF0EFEF29F02FEC31F084C333F1D6 :102CE0003CEC31F0B3EC30F0200E0C6E00C10BF078 :102CF0004DEC0BF000C12FF505012F51000A06E045 :102D000005012F51010A02E0D1EC32F004014C0E12 :102D1000826F96EC0EF004014D0E826F96EC0EF071 :102D200004012C0E826F96EC0EF0EEEC30F02FC505 :102D300000F177EC30F033C182F40401300E8227C9 :102D400096EC0EF051EF1EF0B3EF38F004014C0E8C :102D5000826F96EC0EF00401630E826F96EC0EF01B :102D60008FEC31F004012C0E826F96EC0EF0BBEC70 :102D700016F051EF1EF0EEEC30F0B5C500F1010198 :102D8000003B0F0E001777EC30F033C182F40401E2 :102D9000300E822796EC0EF0B5C500F101010F0E42 :102DA0000101001777EC30F033C182F40401300EDA :102DB000822796EC0EF004012D0E826F96EC0EF039 :102DC000B4C500F10101003B0F0E001777EC30F0A5 :102DD00033C182F40401300E822796EC0EF0B4C5A4 :102DE00000F101010F0E0101001777EC30F033C143 :102DF00082F40401300E822796EC0EF004012D0EB1 :102E0000826F96EC0EF0B3C500F10101003B0F0E8E :102E1000001777EC30F033C182F40401300E8227C2 :102E200096EC0EF0B3C500F101010F0E0101001781 :102E300077EC30F033C182F40401300E822796EC37 :102E40000EF00401200E826F96EC0EF0B2C500F178 :102E50000F0E0101001777EC30F033C182F404014A :102E6000300E822796EC0EF00401200E826F96EC55 :102E70000EF0B1C500F101010101003B0F0E00177A :102E800077EC30F033C182F40401300E822796ECE7 :102E90000EF0B1C500F101010F0E0101001777EC32 :102EA00030F033C182F40401300E822796EC0EF02C :102EB00004013A0E826F96EC0EF0B0C500F10101EC :102EC000003B0F0E001777EC30F033C182F40401A1 :102ED000300E822796EC0EF0B0C500F101010F0E06 :102EE0000101001777EC30F033C182F40401300E99 :102EF000822796EC0EF004013A0E826F96EC0EF0EB :102F0000AFC500F10101003B0F0E001777EC30F068 :102F100033C182F40401300E822796EC0EF0AFC567 :102F200000F101010F0E001777EC30F033C182F48D :102F30000401300E822796EC0EF0120084C3E8FFE5 :102F40000F0BE83AE8CFB5F585C3E8FF0F0B050195 :102F5000B51387C3E8FF0F0BE83AE8CFB4F588C391 :102F6000E8FF0F0B0501B4138AC3E8FF0F0BE83A23 :102F7000E8CFB3F58BC3E8FF0F0B0501B3138DC387 :102F8000E8FF0F0BE8CFB2F58FC3E8FF0F0BE83A6D :102F9000E8CFB1F590C3E8FF0F0B0501B11392C361 :102FA000E8FF0F0BE83AE8CFB0F593C3E8FF0F0B4B :102FB0000501B01395C3E8FF0F0BE83AE8CFAFF572 :102FC00096C3E8FF0F0B0501AF13EAEC31F00401E3 :102FD0004C0E826F96EC0EF00401430E826F96EC5D :102FE0000EF0B0EF16F0078404014C0E826F96ECE1 :102FF0000EF00401370E826F96EC0EF004012C0ED9 :10300000826F96EC0EF005012E51130A06E00501C1 :103010002E51170A0DE08EEF18F00101000E006F1F :10302000000E016F100E026F000E036F21EF18F0FB :103030000101000E006F000E016F000E026F010E05 :10304000036F77EC30F02AC182F40401300E82273E :1030500096EC0EF02BC182F40401300E822796EC20 :103060000EF02CC182F40401300E822796EC0EF093 :103070002DC182F40401300E822796EC0EF02EC191 :1030800082F40401300E822796EC0EF02FC182F4F8 :103090000401300E822796EC0EF030C182F4040158 :1030A000300E822796EC0EF031C182F40401300E0E :1030B000822796EC0EF032C182F40401300E822792 :1030C00096EC0EF033C182F40401300E822796ECA8 :1030D0000EF004012C0E826F96EC0EF00101100E22 :1030E000006F000E016F000E026F000E036F77EC91 :1030F00030F031C182F40401300E822796EC0EF0DC :1031000032C182F40401300E822796EC0EF033C1F6 :1031100082F40401300E822796EC0EF0079451EFF2 :103120001EF00501216B226B236B246B04014C0EF6 :10313000826F96EC0EF00401380E826F96EC0EF062 :1031400004012C0E826F96EC0EF00101100E006F40 :10315000000E016F000E026F000E036F77EC30F06F :103160002AC182F40401300E822796EC0EF02BC1A6 :1031700082F40401300E822796EC0EF02CC182F40A :103180000401300E822796EC0EF02DC182F404016A :10319000300E822796EC0EF02EC182F40401300E20 :1031A000822796EC0EF02FC182F40401300E8227A4 :1031B00096EC0EF030C182F40401300E822796ECBA :1031C0000EF031C182F40401300E822796EC0EF02D :1031D00032C182F40401300E822796EC0EF033C126 :1031E00082F40401300E822796EC0EF004012C0EBE :1031F000826F96EC0EF025C500F126C501F127C5BA :1032000002F128C503F10101100E046F000E056FD5 :10321000000E066F000E076F0AEC30F000C133F5A8 :1032200001C134F502C135F503C136F577EC30F054 :103230002AC182F40401300E822796EC0EF02BC1D5 :1032400082F40401300E822796EC0EF02CC182F439 :103250000401300E822796EC0EF02DC182F4040199 :10326000300E822796EC0EF02EC182F40401300E4F :10327000822796EC0EF02FC182F40401300E8227D3 :1032800096EC0EF030C182F40401300E822796ECE9 :103290000EF031C182F40401300E822796EC0EF05C :1032A00032C182F40401300E822796EC0EF033C155 :1032B00082F40401300E822796EC0EF0A0EC0EF0A2 :1032C000050133676BEF19F034676BEF19F0356761 :1032D0006BEF19F0366702D00AEF1AF0129E129CBB :1032E00021C500F122C501F123C502F124C503F176 :1032F000899A400EC76E200EC66E9E96C69E0B0E15 :10330000C96EFF0E9EB602D0E82EFCD79E96C69ED2 :1033100002C1C9FFFF0E9EB602D0E82EFCD79E96D2 :10332000C69E01C1C9FFFF0E9EB602D0E82EFCD793 :103330009E96C69E00C1C9FFFF0E9EB602D0E82E23 :10334000FCD79E96C69EC952FF0E9EB602D0E82EAE :10335000FCD70501100E326F040114EE00F080510D :103360007F0BE1269E96C69EC952FF0E9EB602D0E6 :10337000E82EFCD7C9CFE7FF0401802B0501322FCF :10338000ACEF19F0898A33C500F134C501F135C5B8 :1033900002F136C503F10101010E046F000E056F45 :1033A000000E066F000E076FD9EC2FF000C133F549 :1033B00001C134F502C135F503C136F505013367A6 :1033C000E9EF19F03467E9EF19F03567E9EF19F023 :1033D000366702D00AEF1AF021C500F122C501F1CB :1033E00023C502F124C503F10101100E046F000E84 :1033F000056F000E066F000E076FDEEC2FF000C1A8 :1034000021F501C122F502C123F503C124F5128E75 :10341000F1EF29F00401450E826F96EC0EF00401E5 :103420004F0E826F96EC0EF00401460E826F96EC02 :103430000EF051EF1EF007840DEC38F0EEEC30F09A :103440002DC500F177EC30F004014C0E826F96EC44 :103450000EF00401300E826F96EC0EF004012C0E7B :10346000826F96EC0EF031C182F40401300E822797 :1034700096EC0EF032C182F40401300E822796ECF5 :103480000EF033C182F40401300E822796EC0EF068 :1034900004012C0E826F96EC0EF0EEEC30F02EC58F :1034A00000F177EC30F031C182F40401300E822754 :1034B00096EC0EF032C182F40401300E822796ECB5 :1034C0000EF033C182F40401300E822796EC0EF028 :1034D000079451EF1EF004014C0E826F96EC0EF033 :1034E0000401650E826F96EC0EF0ADEC33F051EFF7 :1034F0001EF004014C0E826F96EC0EF00401450E96 :10350000826F96EC0EF0C4EC33F051EF1EF0040124 :103510004C0E826F96EC0EF00401620E826F96ECF8 :103520000EF0F2EC33F051EF1EF004014C0E826FFE :1035300096EC0EF00401420E826F96EC0EF0DBEC7E :1035400033F051EF1EF004014C0E826F96EC0EF03A :103550000401760E826F96EC0EF004012C0E826F41 :1035600096EC0EF010A807D00401310E826F96EC95 :103570000EF051EF1EF00401300E826F96EC0EF04B :1035800051EF1EF004014C0E826F96EC0EF0040118 :103590005A0E826F96EC0EF004012C0E826F96ECA0 :1035A0000EF00DEC38F0EEEC30F005012E51130A60 :1035B00006E005012E51170A0DE0F3EF1AF00101A4 :1035C000000E006F000E016F100E026F000E036FF1 :1035D000F3EF1AF00101000E006F000E016F000EF4 :1035E000026F010E036F0101100E046F000E056FD4 :1035F000000E066F000E076F0AEC30F077EC30F02B :103600002AC182F40401300E822796EC0EF02BC101 :1036100082F40401300E822796EC0EF02CC182F465 :103620000401300E822796EC0EF02DC182F40401C5 :10363000300E822796EC0EF02EC182F40401300E7B :10364000822796EC0EF02FC182F40401300E8227FF :1036500096EC0EF030C182F40401300E822796EC15 :103660000EF031C182F40401300E822796EC0EF088 :1036700032C182F40401300E822796EC0EF033C181 :1036800082F40401300E822796EC0EF051EF1EF00A :10369000078404014C0E826F96EC0EF00401310E8B :1036A000826F96EC0EF004012C0E826F96EC0EF0F9 :1036B00025C500F126C501F127C502F128C503F192 :1036C0000101100E046F000E056F000E066F000E54 :1036D000076F0AEC30F077EC30F02AC182F4040175 :1036E000300E822796EC0EF02BC182F40401300ECE :1036F000822796EC0EF02CC182F40401300E822752 :1037000096EC0EF02DC182F40401300E822796EC67 :103710000EF02EC182F40401300E822796EC0EF0DA :103720002FC182F40401300E822796EC0EF030C1D6 :1037300082F40401300E822796EC0EF031C182F43F :103740000401300E822796EC0EF032C182F404019F :10375000300E822796EC0EF033C182F40401300E55 :10376000822796EC0EF0079451EF1EF007840401B7 :103770004C0E826F96EC0EF00401320E826F96ECC6 :103780000EF0E1EC35F0079451EF1EF0078437B0EE :10379000CCEF1BF0DFEF1BF0010E166E04014C0E98 :1037A000826F96EC0EF00401330E826F96EC0EF0F1 :1037B0003EEC36F0000E166E079453EF1BF0020E2F :1037C000166E3EEC36F08B800501010E306F3C0E1C :1037D000316F01015E6B5F6B606B616B626B636B82 :1037E000646B656B666B676B686B696B536B546B73 :1037F000CF6ACE6A0F9A0F9C0F9E030E166E0401BD :103800004C0E826F96EC0EF00401330E826F96EC34 :103810000EF004012C0E826F96EC0EF004012D0EBA :10382000826F96EC0EF00401310E826F96EC0EF072 :10383000EFEF29F03EEC36F0000E166E8B90F1EFB4 :1038400029F0078404014C0E826F96EC0EF00401FF :10385000340E826F96EC0EF004012C0E826F96EC03 :103860000EF02FEC31F084C32AF185C32BF186C30F :103870002CF187C32DF188C32EF189C32FF18AC3A0 :1038800030F18BC331F18CC332F18DC333F10101BF :10389000296B3CEC31F0B3EC30F0100E046F000EED :1038A000056F000E066F000E076FEAEC2FF000C1E7 :1038B00021F501C122F502C123F503C124F5C0ECB5 :1038C00037F038C5AFF539C5B0F53AC5B1F53BC5E8 :1038D000B2F53CC5B3F53DC5B4F53EC5B5F5BBEC99 :1038E00016F004012C0E826F96EC0EF03FC500F12D :1038F00040C501F141C502F142C503F10101000ECD :10390000046F000E056F010E066F000E076F0AECC4 :1039100030F077EC30F0296790EF1CF095EF1CF059 :1039200004012D0E826F96EC0EF030C182F404017A :10393000300E822796EC0EF031C182F40401300E75 :10394000822796EC0EF004012E0E826F96EC0EF09C :1039500032C182F40401300E822796EC0EF033C19E :1039600082F40401300E822796EC0EF004012C0E36 :10397000826F96EC0EF0EEEC30F043C500F144C5DA :1039800001F11BEC2BF004012C0E826F96EC0EF073 :10399000EEEC30F045C500F177EC30F031C182F447 :1039A0000401300E822796EC0EF032C182F404013D :1039B000300E822796EC0EF033C182F40401300EF3 :1039C000822796EC0EF004012C0E826F96EC0EF01E :1039D00037C5E8FFE8B806D00401300E826F96ECD8 :1039E0000EF005D00401310E826F96EC0EF00794B4 :1039F00051EF1EF02FEC31F085C32AF186C32BF175 :103A000087C32CF188C32DF189C32EF18AC32FF10E :103A10008BC330F18CC331F18DC332F18EC333F1DE :103A20000101296B3CEC31F0B3EC30F00101010EE7 :103A3000046F000E056F000E066F000E076FD9ECC5 :103A40002FF0100E046F000E056F000E066F000EB3 :103A5000076FEAEC2FF000C129F501C12AF502C178 :103A60002BF503C12CF568EC35F004014C0E826F88 :103A700096EC0EF00401460E826F96EC0EF00401F7 :103A80002C0E826F96EC0EF025C500F126C501F1D3 :103A900027C502F128C503F10101100E046F000EC5 :103AA000056F000E066F000E076F0AEC30F077EC22 :103AB00030F02AC182F40401300E822796EC0EF019 :103AC0002BC182F40401300E822796EC0EF02CC13B :103AD00082F40401300E822796EC0EF02DC182F4A0 :103AE0000401300E822796EC0EF02EC182F4040100 :103AF000300E822796EC0EF02FC182F40401300EB6 :103B0000822796EC0EF030C182F40401300E822739 :103B100096EC0EF031C182F40401300E822796EC4F :103B20000EF032C182F40401300E822796EC0EF0C2 :103B300033C182F40401300E822796EC0EF051EF6F :103B40001EF037B0A6EF1DF0020E166E3EEC36F0FA :103B500000011650020AD8B4C4EF1DF005012F5120 :103B6000010AD8B4BAEF1DF015B2BFEF1DF081BA4B :103B7000BFEF1DF0000E166E1584F1EF29F0050E53 :103B8000166E1584B3EF38F08B8001015E6B5F6BAE :103B9000606B616B626B636B646B656B666B676BB1 :103BA000686B696B536B546BCF6ACE6A0F9A0F9C2C :103BB0000F9E030E166EF1EF29F03EEC36F0050174 :103BC0002F51010AD8B4EBEF1DF015B2F0EF1DF044 :103BD00081BAF0EF1DF0000E166E1584F1EF29F09A :103BE000050E166E1584B3EF38F004014C0E826F8B :103BF00096EC0EF00401350E826F96EC0EF0040187 :103C00002C0E826F96EC0EF0EEEC30F00784B9C506 :103C100000F1079477EC30F031C182F40401300EEA :103C2000822796EC0EF032C182F40401300E822716 :103C300096EC0EF033C182F40401300E822796EC2C :103C40000EF051EF1EF001EC36F0EEEC30F037C51F :103C500000F177EC30F004014C0E826F96EC0EF020 :103C60000401360E826F96EC0EF004012C0E826F6A :103C700096EC0EF031C182F40401300E822796ECEE :103C80000EF032C182F40401300E822796EC0EF061 :103C900033C182F40401300E822796EC0EF051EF0E :103CA0001EF0A0EC0EF0F1EF29F004014C0E826F33 :103CB00096EC0EF00401500E826F96EC0EF00401AB :103CC0002C0E826F96EC0EF085C32AF186C32BF181 :103CD00087C32CF188C32DF189C32EF18AC32FF13C :103CE0008BC330F18CC331F18DC332F18EC333F10C :103CF00001013CEC31F0B3EC30F003018451530A84 :103D00000DE0030184514D0A38E00401780E826F02 :103D100096EC0EF0A0EC0EF0F1EF29F00401530E3A :103D2000826F96EC0EF0250E0C6E00C10BF04DEC80 :103D30000BF0260E0C6E01C10BF04DEC0BF0270EB4 :103D40000C6E02C10BF04DEC0BF0280E0C6E03C193 :103D50000BF04DEC0BF000C157F501C158F502C155 :103D600059F503C15AF500C15BF501C15CF502C10B :103D70005DF503C15EF532EF1FF004014D0E826F59 :103D800096EC0EF0290E0C6E00C10BF04DEC0BF012 :103D900000C15FF500C160F532EF1FF004014C0E69 :103DA000826F96EC0EF00401540E826F96EC0EF0CA :103DB00004012C0E826F96EC0EF084C32AF185C3A9 :103DC0002BF186C32CF187C32DF188C32EF189C353 :103DD0002FF18AC330F18BC331F18DC332F18EC321 :103DE00033F101013CEC31F0B3EC30F00101000E95 :103DF000046F000E056F010E066F000E076FEAECF0 :103E00002FF0210E0C6E00C10BF04DEC0BF0220ECA :103E10000C6E01C10BF04DEC0BF0230E0C6E02C1C9 :103E20000BF04DEC0BF0240E0C6E03C10BF04DECBF :103E30000BF000C161F501C162F502C163F503C178 :103E400064F532EF1FF004014C0E826F96EC0EF019 :103E50000401490E826F96EC0EF004012C0E826F65 :103E600096EC0EF0250E64EC0BF0E8CF00F1260E78 :103E700064EC0BF0E8CF01F1270E64EC0BF0E8CF17 :103E800002F1280E64EC0BF0E8CF03F177EC30F090 :103E90003AEC2EF00401730E826F96EC0EF00401E2 :103EA0002C0E826F96EC0EF0EEEC30F0290E64ECE6 :103EB0000BF0E8CF00F177EC30F03AEC2EF0040193 :103EC0006D0E826F96EC0EF004012C0E826F96EC54 :103ED0000EF05BC500F15CC501F15DC502F15EC588 :103EE00003F177EC30F03AEC2EF00401730E826FA0 :103EF00096EC0EF004012C0E826F96EC0EF0EEECB8 :103F000030F060C500F177EC30F03AEC2EF00401AF :103F10006D0E826F96EC0EF004012C0E826F96EC03 :103F20000EF061C500F162C501F163C502F164C51F :103F300003F10CEC2AF004012C0E826F96EC0EF0CB :103F4000A0EC0EF0F1EF29F083C32AF184C32BF12A :103F500085C32CF186C32DF187C32EF188C32FF1C1 :103F600089C330F18AC331F18BC332F18CC333F191 :103F700001013CEC31F0B3EC30F0160E0C6E00C1D8 :103F80000BF04DEC0BF0170E0C6E01C10BF04DEC6D :103F90000BF0180E0C6E02C10BF04DEC0BF0190E6D :103FA0000C6E03C10BF04DEC0BF000C18EF101C1A2 :103FB0008FF102C190F103C191F100C192F101C1F1 :103FC00093F102C194F103C195F186EF20F083C310 :103FD0002AF184C32BF185C32CF186C32DF187C34D :103FE0002EF188C32FF189C330F18AC331F18BC31D :103FF00032F18CC333F101013CEC31F0B3EC30F021 :1040000000C18EF101C18FF102C190F103C191F1A4 :1040100000C192F101C193F102C194F103C195F184 :1040200086EF20F083C32AF184C32BF185C32CF1E2 :1040300086C32DF187C32EF188C32FF189C330F1D8 :104040008AC331F18CC332F18DC333F101013CECF1 :1040500031F0B3EC30F00101000E046F000E056F7B :10406000010E066F000E076FEAEC2FF01A0E0C6EB1 :1040700000C10BF04DEC0BF01B0E0C6E01C10BF0F0 :104080004DEC0BF01C0E0C6E02C10BF04DEC0BF066 :104090001D0E0C6E03C10BF04DEC0BF000C196F140 :1040A00001C197F102C198F103C199F186EF20F0A7 :1040B00083C32AF184C32BF185C32CF186C32DF170 :1040C00087C32EF188C32FF189C330F18AC331F140 :1040D0008CC332F18DC333F101013CEC31F0B3EC10 :1040E00030F00101000E046F000E056F010E066F27 :1040F000000E076FEAEC2FF000C196F101C197F1B5 :1041000002C198F103C199F186EF20F0160E64EC1C :104110000BF0E8CF00F1170E64EC0BF0E8CF01F1E3 :10412000180E64EC0BF0E8CF02F1190E64EC0BF002 :10413000E8CF03F177EC30F03AEC2EF00401730E87 :10414000826F96EC0EF004012C0E826F96EC0EF04E :104150008EC100F18FC101F190C102F191C103F153 :1041600077EC30F03AEC2EF00401730E826F96EC8F :104170000EF004012C0E826F96EC0EF01A0E64EC19 :104180000BF0E8CF00F11B0E64EC0BF0E8CF01F16F :104190001C0E64EC0BF0E8CF02F11D0E64EC0BF08A :1041A000E8CF03F10CEC2AF004012C0E826F96ECA0 :1041B0000EF096C100F197C101F198C102F199C1C9 :1041C00003F10CEC2AF0A0EC0EF0F1EF29F0040161 :1041D000690E826F96EC0EF004012C0E826F96EC45 :1041E0000EF00101040E006F000E016F000E026F51 :1041F000000E036F77EC30F02CC182F40401300E16 :10420000822796EC0EF02DC182F40401300E822735 :1042100096EC0EF02EC182F40401300E822796EC4B :104220000EF02FC182F40401300E822796EC0EF0BE :1042300030C182F40401300E822796EC0EF031C1B9 :1042400082F40401300E822796EC0EF032C182F423 :104250000401300E822796EC0EF033C182F4040183 :10426000300E822796EC0EF004012C0E826F96EC35 :104270000EF00101060E006F000E016F000E026FBE :10428000000E036F77EC30F02CC182F40401300E85 :10429000822796EC0EF02DC182F40401300E8227A5 :1042A00096EC0EF02EC182F40401300E822796ECBB :1042B0000EF02FC182F40401300E822796EC0EF02E :1042C00030C182F40401300E822796EC0EF031C129 :1042D00082F40401300E822796EC0EF032C182F493 :1042E0000401300E822796EC0EF033C182F40401F3 :1042F000300E822796EC0EF004012C0E826F96ECA5 :104300000EF001014B0E006F000E016F000E026FE8 :10431000000E036F77EC30F02CC182F40401300EF4 :10432000822796EC0EF02DC182F40401300E822714 :1043300096EC0EF02EC182F40401300E822796EC2A :104340000EF02FC182F40401300E822796EC0EF09D :1043500030C182F40401300E822796EC0EF031C198 :1043600082F40401300E822796EC0EF032C182F402 :104370000401300E822796EC0EF033C182F4040162 :10438000300E822796EC0EF004012C0E826F96EC14 :104390000EF0200EF86EF76AF66A04010900F5CFF8 :1043A00082F496EC0EF00900F5CF82F496EC0EF054 :1043B0000900F5CF82F496EC0EF00900F5CF82F4F7 :1043C00096EC0EF00900F5CF82F496EC0EF00900A1 :1043D000F5CF82F496EC0EF00900F5CF82F496EC5E :1043E0000EF00900F5CF82F496EC0EF0A0EC0EF082 :1043F000F1EF29F08351630AD8A4EFEF29F084513B :10440000610AD8A4EFEF29F085516C0AD8A4EFEF28 :1044100029F08651410A3FE08651440A1BE086514B :10442000420AD8B45EEF22F08651350AD8B47BEF49 :104430002BF08651360AD8B4D0EF2BF08651370ACC :10444000D8B439EF2CF08651380AD8B497EF2CF055 :10445000EFEF29F00798079A04017A0E826F96EC25 :104460000EF00401780E826F96EC0EF00401640EDB :10447000826F96EC0EF00401550E826F96EC0EF0F2 :1044800047EF22F004014C0E826F96EC0EF0A0EC88 :104490000EF0F1EF29F00788079A04017A0E826F77 :1044A00096EC0EF00401410E826F96EC0EF00401C2 :1044B000610E826F96EC0EF03BEF22F00798078AB0 :1044C00004017A0E826F96EC0EF00401420E826FA8 :1044D00096EC0EF00401610E826F96EC0EF03BEF4D :1044E00022F0010166677CEF22F067677CEF22F023 :1044F00068677CEF22F0696716D001014F6788EF8B :1045000022F0506788EF22F0516788EF22F052675F :104510000AD00101000E006F000E016F000E026F45 :10452000000E036F120011B80AD00101620E046F71 :10453000010E056F000E066F000E076F09D0010116 :10454000A70E046F020E056F000E066F000E076FB8 :1045500066C100F167C101F168C102F169C103F1EF :10456000D9EC2FF003BF25EF23F0119A119C010124 :10457000000E046FA80E056F550E066F020E076F32 :1045800066C100F167C101F168C102F169C103F1BF :1045900066C18AF167C18BF168C18CF169C18DF187 :1045A000D9EC2FF003BF0BD00101000E8A6FA80ECB :1045B0008B6F550E8C6F020E8D6F118A119C0E0E33 :1045C00064EC0BF0E8CF18F10F0E64EC0BF0E8CFC1 :1045D00019F1100E64EC0BF0E8CF1AF1110E64EC37 :1045E0000BF0E8CF1BF122EC2FF08AC104F18BC154 :1045F00005F18CC106F18DC107F1D9EC2FF00782CE :10460000E6EC2EF022EC2FF00792E6EC2EF08AC1B9 :1046100000F18BC101F18CC102F18DC103F1079250 :10462000E6EC2EF0CC0E046FE00E056F870E066FE1 :10463000050E076FD9EC2FF000C118F101C119F177 :1046400002C11AF103C11BF140D013AA2AEF23F0D3 :10465000138E139A119C119A0101800E006F1A0E8D :10466000016F060E026F000E036F4FC104F150C1BF :1046700005F151C106F152C107F1D9EC2FF003AF9A :1046800005D0EEEC30F0118C119A12000E0E64EC95 :104690000BF0E8CF18F10F0E64EC0BF0E8CF19F136 :1046A000100E64EC0BF0E8CF1AF1110E64EC0BF075 :1046B000E8CF1BF14FC100F150C101F151C102F12E :1046C00052C103F10782E6EC2EF018C100F119C1C6 :1046D00001F11AC102F11BC103F112000784BAC132 :1046E00066F1BBC167F1BCC168F1BDC169F14BC1E5 :1046F0004FF14CC150F14DC151F14EC152F157C172 :1047000059F158C15AF10794010166678FEF23F000 :1047100067678FEF23F068678FEF23F0696716D024 :1047200001014F679BEF23F050679BEF23F0516728 :104730009BEF23F052670AD00101000E006F000EBC :10474000016F000E026F000E036F120011B80AD045 :104750000101620E046F010E056F000E066F000E60 :10476000076F09D00101A70E046F020E056F000E3E :10477000066F000E076F66C100F167C101F168C1E5 :1047800002F169C103F1D9EC2FF003BF27EF24F048 :104790000101000E046FA80E056F550E066F020E84 :1047A000076F66C100F167C101F168C102F169C11B :1047B00003F166C18AF167C18BF168C18CF169C1EF :1047C0008DF1D9EC2FF003BF09D00101000E8A6FE3 :1047D000A80E8B6F550E8C6F020E8D6F22EC2FF092 :1047E00000C104F101C105F102C106F103C107F1E5 :1047F000000E006FA00E016F980E026F7B0E036F0C :104800000AEC30F000C118F101C119F102C11AF12E :1048100003C11BF1000E006FA00E016F980E026F16 :104820007B0E036F8AC104F18BC105F18CC106F1C7 :104830008DC107F10AEC30F018C104F119C105F17E :104840001AC106F11BC107F1D9EC2FF012000101CA :10485000A80E006F610E016F000E026F000E036F55 :104860004FC104F150C105F151C106F152C107F128 :10487000D9EC2FF003AF0AD00101A80E006F610E32 :10488000016F000E026F000E036F00D0C80E006FA4 :10489000AF0E016F000E026F000E036F4FC104F1E7 :1048A00050C105F151C106F152C107F1EAEC2FF0F8 :1048B00012000401730E826F96EC0EF004012C0EB0 :1048C000826F96EC0EF0078462C166F163C167F1F6 :1048D00064C168F165C169F14BC14FF14CC150F140 :1048E0004DC151F14EC152F157C159F158C15AF160 :1048F00007947FEC24F0A0EC0EF0F1EF29F066C1F4 :1049000000F167C101F168C102F169C103F1010160 :1049100077EC30F03AEC2EF00401630E826F96ECE7 :104920000EF004012C0E826F96EC0EF04FC100F1D8 :1049300050C101F151C102F152C103F1010177EC03 :1049400030F03AEC2EF00401660E826F96EC0EF019 :1049500004012C0E826F96EC0EF0EEEC30F059C193 :1049600000F15AC101F1010177EC30F03AEC2EF080 :104970000401740E826F96EC0EF012001082040196 :10498000530E826F96EC0EF004012C0E826F96ECA3 :104990000EF083C32AF184C32BF185C32CF186C3A7 :1049A0002DF187C32EF188C32FF189C330F18AC35B :1049B00031F18BC332F18CC333F101013CEC31F0A6 :1049C000B3EC30F000C166F101C167F102C168F1DA :1049D00003C169F18EC32AF18FC32BF190C32CF16F :1049E00091C32DF192C32EF193C32FF194C330F1F3 :1049F00095C331F196C332F197C333F101013CEC19 :104A000031F0B3EC30F000C14FF101C150F102C1FF :104A100051F103C152F12FEC31F099C32FF19AC338 :104A200030F19BC331F19CC332F19DC333F10101DD :104A30003CEC31F0B3EC30F000C159F101C15AF156 :104A40007FEC24F004012C0E826F96EC0EF039EF0F :104A500025F0118E1CA002D01CAE108C1BBE02D003 :104A60001BA4108E03018251520A02E10F8201D071 :104A70000F928251750A02E1108401D01094825184 :104A8000550A02E1108601D010968351310A03E1E4 :104A90001382138402D01392139403018351660A84 :104AA00001E056D00401660E826F96EC0EF0040110 :104AB0002C0E826F96EC0EF06EEC23F077EC30F05B :104AC0002AC182F40401300E822796EC0EF02BC12D :104AD00082F40401300E822796EC0EF02CC182F491 :104AE0000401300E822796EC0EF02DC182F40401F1 :104AF000300E822796EC0EF02EC182F40401300EA7 :104B0000822796EC0EF02FC182F40401300E82272A :104B100096EC0EF030C182F40401300E822796EC40 :104B20000EF031C182F40401300E822796EC0EF0B3 :104B300032C182F40401300E822796EC0EF033C1AC :104B400082F40401300E822796EC0EF0EFEF29F08C :104B500011A003D011A401D01084078410B212EF69 :104B600026F010A4F6EF25F0BAC166F1BBC167F1DB :104B7000BCC168F1BDC169F1BEC16AF1BFC16BF1D1 :104B8000C0C16CF1C1C16DF1C2C16EF1C3C16FF1A1 :104B9000C4C170F1C5C171F1C6C172F1C7C173F171 :104BA000C8C174F1C9C175F1CAC176F1CBC177F141 :104BB000CCC178F1CDC179F1CEC17AF1CFC17BF111 :104BC000D0C17CF1D1C17DF1D2C17EF1D3C17FF1E1 :104BD000D4C180F1D5C181F1D6C182F1D7C183F1B1 :104BE000D8C184F1D9C185F1FEEF25F062C166F12B :104BF00063C167F164C168F165C169F1BAC186F149 :104C0000BBC187F1BCC188F1BDC189F14BC14FF176 :104C10004CC150F14DC151F14EC152F157C159F142 :104C200058C15AF107940FA034EF26F0010196679E :104C300021EF26F0976721EF26F0986721EF26F005 :104C4000996725EF26F034EF26F071EC22F096C13B :104C500004F197C105F198C106F199C107F1D9ECAA :104C60002FF003BFB5EF29F071EC22F00101000E27 :104C7000046F000E056F010E066F000E076F0AEC41 :104C800030F011A02AD011A228D077EC30F029679B :104C900001D005D004012D0E826F96EC0EF030C1CC :104CA00082F40401300E822796EC0EF031C182F4BA :104CB0000401300E822796EC0EF032C182F404011A :104CC000300E822796EC0EF033C182F40401300ED0 :104CD000822796EC0EF0A0EC0EF012A8C5D0129828 :104CE0001DC01EF01E3A1E42070E1E1600011E5069 :104CF000000AD8B400EF27F000011E50010AD8B412 :104D00008CEF26F000011E50020AD8B48AEF26F07C :104D100032EF27F032EF27F0EEEC30F02DC001F14A :104D20002EC000F1D89001330033D8900133003306 :104D30000101630E046F000E056F000E066F000E7A :104D4000076F0AEC30F0280E046F000E056F000E9E :104D5000066F000E076FD9EC2FF000C130F0EEECBB :104D600030F02BC001F1019F019D2CC000F1010129 :104D7000A40E046F000E056F000E066F000E076F85 :104D80000AEC30F000C12FF000C104F101C105F1BF :104D900002C106F103C107F1640E006F000E016F3E :104DA000000E026F000E036FD9EC2FF0050E046F9A :104DB000000E056F000E066F000E076F0AEC30F054 :104DC00000C104F101C105F102C106F103C107F1FF :104DD000EEEC30F030C000F1D9EC2FF000C131F032 :104DE00031C0E8FF050F305C03E78A8432EF27F01B :104DF00031C0E8FF0A0F305C01E68A9432EF27F0F9 :104E000000C124F101C125F102C126F103C127F13E :104E1000EEEC30F0F4EC30F01D501F0BE8CF00F159 :104E20000101640E046F000E056F000E066F000E88 :104E3000076FEAEC2FF024C104F125C105F126C16A :104E400006F127C107F1D9EC2FF003BF02D08A94F5 :104E500001D08A8424C100F125C101F126C102F1EB :104E600027C103F1F1EF29F000C124F101C125F1BF :104E700002C126F103C127F110AE4DD0109E00C132 :104E800008F101C109F102C10AF103C10BF177EC8C :104E900030F030C1E2F131C1E3F132C1E4F133C1AC :104EA000E5F108C100F109C101F10AC102F10BC12C :104EB00003F101016C0E046F070E056F000E066F03 :104EC000000E076FD9EC2FF003BF04D00101550E7F :104ED000E66F1CD008C100F109C101F10AC102F15D :104EE0000BC103F10101A40E046F060E056F000E45 :104EF000066F000E076FD9EC2FF003BF04D001013D :104F00007F0EE66F03D00101FF0EE66F1F8E11AE1C :104F1000B5EF29F0119E24C100F125C101F126C190 :104F200002F127C103F111A005D011A203D00FB0E7 :104F3000B5EF29F010A4A4EF27F00401750E826FDD :104F400096EC0EF0A9EF27F00401720E826F96EC3A :104F50000EF004012C0E826F96EC0EF077EC30F020 :104F60002967B8EF27F00401200E826FBBEF27F00E :104F700004012D0E826F96EC0EF030C182F4040114 :104F8000300E822796EC0EF031C182F40401300E0F :104F9000822796EC0EF004012E0E826F96EC0EF036 :104FA00032C182F40401300E822796EC0EF033C138 :104FB00082F40401300E822796EC0EF004016D0E8F :104FC000826F96EC0EF004012C0E826F96EC0EF0C0 :104FD0004FC100F150C101F151C102F152C103F1C1 :104FE000010177EC30F03AEC2EF00401480E826FAC :104FF00096EC0EF004017A0E826F96EC0EF004012E :105000002C0E826F96EC0EF066C100F167C101F1C3 :1050100068C102F169C103F1010177EC30F03AECAB :105020002EF00401630E826F96EC0EF004012C0E3C :10503000826F96EC0EF066C100F167C101F168C1A4 :1050400002F169C103F101010A0E046F000E056F40 :10505000000E066F000E076FEAEC2FF0000E046FD3 :10506000120E056F000E066F000E076F0AEC30F08F :1050700077EC30F02AC182F40401300E822796ECDE :105080000EF02BC182F40401300E822796EC0EF054 :105090002CC182F40401300E822796EC0EF02DC153 :1050A00082F40401300E822796EC0EF02EC182F4B9 :1050B0000401300E822796EC0EF02FC182F4040119 :1050C000300E822796EC0EF030C182F40401300ECF :1050D000822796EC0EF004012E0E826F96EC0EF0F5 :1050E00031C182F40401300E822796EC0EF032C1F9 :1050F00082F40401300E822796EC0EF033C182F464 :105100000401300E822796EC0EF00401730E826FBC :1051100096EC0EF004012C0E826F96EC0EF0EEEC85 :1051200030F059C100F15AC101F11BEC2BF013A270 :10513000E9EF28F004012C0E826F96EC0EF086C188 :1051400066F187C167F188C168F189C169F171ECC5 :1051500022F00101000E046F000E056F010E066FB4 :10516000000E076F0AEC30F077EC30F02967BEEFE5 :1051700028F00401200E826FC1EF28F004012D0EEB :10518000826F96EC0EF030C182F40401300E82275B :1051900096EC0EF031C182F40401300E822796ECB9 :1051A0000EF004012E0E826F96EC0EF032C182F4E6 :1051B0000401300E822796EC0EF033C182F4040114 :1051C000300E822796EC0EF004016D0E826F96EC85 :1051D0000EF003018351460A01E04FD004012C0E6A :1051E000826F96EC0EF06EEC23F077EC30F02AC173 :1051F00082F40401300E822796EC0EF02BC182F46B :105200000401300E822796EC0EF02CC182F40401CA :10521000300E822796EC0EF02DC182F40401300E80 :10522000822796EC0EF02EC182F40401300E822704 :1052300096EC0EF02FC182F40401300E822796EC1A :105240000EF030C182F40401300E822796EC0EF08D :1052500031C182F40401300E822796EC0EF032C187 :1052600082F40401300E822796EC0EF033C182F4F2 :105270000401300E822796EC0EF013A464EF29F09F :1052800004012C0E826F96EC0EF013AC52EF29F055 :105290000401500E826F96EC0EF0139C1398139A33 :1052A00064EF29F013AE5FEF29F00401460E826F20 :1052B00096EC0EF0139E1398139A64EF29F00401F4 :1052C000530E826F96EC0EF037B07BEF29F004019D :1052D0002C0E826F96EC0EF08BB076EF29F0040165 :1052E000440E826F96EC0EF07BEF29F00401530E12 :1052F000826F96EC0EF00FB281EF29F00FA0B3EFA2 :1053000029F004012C0E826F96EC0EF0200EF86E40 :10531000F76AF66A04010900F5CF82F496EC0EF004 :105320000900F5CF82F496EC0EF00900F5CF82F477 :1053300096EC0EF00900F5CF82F496EC0EF0090021 :10534000F5CF82F496EC0EF00900F5CF82F496ECDE :105350000EF00900F5CF82F496EC0EF00900F5CFBF :1053600082F496EC0EF0A0EC0EF00F90109E1298C6 :10537000F1EF29F00401630E826F96EC0EF0040148 :105380002C0E826F96EC0EF0F7EC29F004012C0E37 :10539000826F96EC0EF06AEC2AF004012C0E826FFC :1053A00096EC0EF0E6EC2AF004012C0E826F96ECDF :1053B0000EF00101F80E006FCD0E016F660E026F48 :1053C000030E036F0CEC2AF004012C0E826F96EC96 :1053D0000EF0FCEC2AF0A0EC0EF0F1EF29F0A0ECBE :1053E0000EF00301C26B0790109200EF2DF0D890E1 :1053F0000E0E64EC0BF0E8CF00F10F0E64EC0BF036 :10540000E8CF01F1100E64EC0BF0E8CF02F1110EC1 :1054100064EC0BF0E8CF03F10101000E046F000E05 :10542000056F010E066F000E076F0AEC30F077EC87 :1054300030F02AC182F40401300E822796EC0EF07F :105440002BC182F40401300E822796EC0EF02CC1A1 :1054500082F40401300E822796EC0EF02DC182F406 :105460000401300E822796EC0EF02EC182F4040166 :10547000300E822796EC0EF02FC182F40401300E1C :10548000822796EC0EF030C182F40401300E8227A0 :1054900096EC0EF031C182F40401300E822796ECB6 :1054A0000EF004012E0E826F96EC0EF032C182F4E3 :1054B0000401300E822796EC0EF033C182F4040111 :1054C000300E822796EC0EF004016D0E826F96EC82 :1054D0000EF01200120E64EC0BF0E8CF00F1130E88 :1054E00064EC0BF0E8CF01F1140E64EC0BF0E8CFA4 :1054F00002F1150E64EC0BF0E8CF03F101010A0E86 :10550000046F000E056F000E066F000E076FEAECC9 :105510002FF0000E046F120E056F000E066F000EC6 :10552000076F0AEC30F077EC30F02AC182F4040106 :10553000300E822796EC0EF02BC182F40401300E5F :10554000822796EC0EF02CC182F40401300E8227E3 :1055500096EC0EF02DC182F40401300E822796ECF9 :105560000EF02EC182F40401300E822796EC0EF06C :105570002FC182F40401300E822796EC0EF030C168 :1055800082F40401300E822796EC0EF004012E0EF8 :10559000826F96EC0EF031C182F40401300E822746 :1055A00096EC0EF032C182F40401300E822796ECA4 :1055B0000EF033C182F40401300E822796EC0EF017 :1055C0000401730E826F96EC0EF012000A0E64EC6A :1055D0000BF0E8CF00F10B0E64EC0BF0E8CF01F11B :1055E0000C0E64EC0BF0E8CF02F10D0E64EC0BF046 :1055F000E8CF03F11BEF2BF0060E64EC0BF0E8CFC5 :1056000000F1070E64EC0BF0E8CF01F1080E64EC3A :105610000BF0E8CF02F1090E64EC0BF0E8CF03F1D8 :105620001BEF2BF00101EEEC30F0078457C100F1C5 :1056300058C101F107940101E80E046F800E056F57 :10564000000E066F000E076FEAEC2FF0000E046FDD :10565000040E056F000E066F000E076F0AEC30F0A7 :10566000880E046F130E056F000E066F000E076F95 :10567000D9EC2FF00A0E046F000E056F000E066FB6 :10568000000E076F0AEC30F077EC30F0010129676B :105690004FEF2BF00401200E826F52EF2BF004012C :1056A0002D0E826F96EC0EF030C182F40401300EA4 :1056B000822796EC0EF031C182F40401300E82276D :1056C00096EC0EF032C182F40401300E822796EC83 :1056D0000EF004012E0E826F96EC0EF033C182F4B0 :1056E0000401300E822796EC0EF00401430E826F07 :1056F00096EC0EF0120087C32AF188C32BF189C300 :105700002CF18AC32DF18BC32EF18CC32FF18DC3E5 :1057100030F18EC331F190C332F191C333F1010105 :10572000296B3CEC31F0B3EC30F00101000E046F5A :10573000000E056F010E066F000E076FEAEC2FF0EA :105740000E0E0C6E00C10BF04DEC0BF00F0E0C6E3C :1057500001C10BF04DEC0BF0100E0C6E02C10BF002 :105760004DEC0BF0110E0C6E03C10BF04DEC0BF079 :1057700004017A0E826F96EC0EF004012C0E826FFB :1057800096EC0EF00401350E826F96EC0EF00401DB :105790002C0E826F96EC0EF0F7EC29F047EF22F01A :1057A00087C32AF188C32BF189C32CF18AC32DF159 :1057B0008BC32EF18CC32FF18DC330F18EC331F129 :1057C00090C332F191C333F10101296B3CEC31F00C :1057D000B3EC30F0880E046F130E056F000E066FE9 :1057E000000E076FDEEC2FF0000E046F040E056F45 :1057F000000E066F000E076FEAEC2FF00101E80EB5 :10580000046F800E056F000E066F000E076F0AEC26 :1058100030F00A0E0C6E00C10BF04DEC0BF00B0ECD :105820000C6E01C10BF04DEC0BF00C0E0C6E02C1B6 :105830000BF04DEC0BF00D0E0C6E03C10BF04DECAC :105840000BF004017A0E826F96EC0EF004012C0E20 :10585000826F96EC0EF00401360E826F96EC0EF01D :1058600004012C0E826F96EC0EF0E6EC2AF047EF66 :1058700022F087C32AF188C32BF189C32CF18AC394 :105880002DF18BC32EF18CC32FF18DC330F18FC35B :1058900031F190C332F191C333F101013CEC31F0AD :1058A000B3EC30F0000E046F120E056F000E066FA1 :1058B000000E076FEAEC2FF001010A0E046F000ED4 :1058C000056F000E066F000E076F0AEC30F0120E27 :1058D0000C6E00C10BF04DEC0BF0130E0C6E01C101 :1058E0000BF04DEC0BF0140E0C6E02C10BF04DECF6 :1058F0000BF0150E0C6E03C10BF04DEC0BF0040118 :105900007A0E826F96EC0EF004012C0E826F96ECEC :105910000EF00401370E826F96EC0EF004012C0E8F :10592000826F96EC0EF06AEC2AF047EF22F087C304 :105930002AF188C32BF189C32CF18AC32DF18BC3C3 :105940002EF18CC32FF18DC330F18EC331F190C392 :1059500032F191C333F10101296B3CEC31F0B3EC2E :1059600030F0880E046F130E056F000E066F000EE8 :10597000076FDEEC2FF0000E046F040E056F000EB3 :10598000066F000E076FEAEC2FF00101E80E046FBE :10599000800E056F000E066F000E076F0AEC30F0E8 :1059A000060E0C6E00C10BF04DEC0BF0070E0C6EEA :1059B00001C10BF04DEC0BF0080E0C6E02C10BF0A8 :1059C0004DEC0BF0090E0C6E03C10BF04DEC0BF01F :1059D00004017A0E826F96EC0EF004012C0E826F99 :1059E00096EC0EF00401380E826F96EC0EF0040176 :1059F0002C0E826F96EC0EF0FCEC2AF047EF22F0B2 :105A000007A873EF2DF00101800E006F1A0E016FD1 :105A1000060E026F000E036F4BC104F14CC105F17D :105A20004DC106F14EC107F1D9EC2FF003BFB9EF1C :105A30002DF034EC2EF04BC100F14CC101F14DC101 :105A400002F14EC103F10782E6EC2EF018C104F119 :105A500019C105F11AC106F11BC107F1F80E006F5B :105A6000CD0E016F660E026F030E036FD9EC2FF09F :105A70000E0E0C6E00C10BF04DEC0BF00F0E0C6E09 :105A800001C10BF04DEC0BF0100E0C6E02C10BF0CF :105A90004DEC0BF0110E0C6E03C10BF04DEC0BF046 :105AA00007840101EEEC30F057C100F158C101F15B :105AB00007940A0E0C6E00C10BF04DEC0BF00B0EB0 :105AC0000C6E01C10BF04DEC0BF00C0E0C6E02C114 :105AD0000BF04DEC0BF00D0E0C6E03C10BF04DEC0A :105AE0000BF0B9EF2DF007AAB9EF2DF007840101F3 :105AF000EEEC30F057C100F158C101F10794060EE9 :105B00000C6E00C10BF04DEC0BF0070E0C6E01C1DA :105B10000BF04DEC0BF0080E0C6E02C10BF04DECCF :105B20000BF0090E0C6E03C10BF04DEC0BF007846B :105B300062C100F163C101F164C102F165C103F109 :105B40000794120E0C6E00C10BF04DEC0BF0130E0F :105B50000C6E01C10BF04DEC0BF0140E0C6E02C17B :105B60000BF04DEC0BF0150E0C6E03C10BF04DEC71 :105B70000BF00798079A0401805181197F0B0DE003 :105B80009EA8FED714EE00F081517F0BE126E7506E :105B9000812B0F01AD6EBBEF2DF005012F51000AD7 :105BA000D8B4FCEF2DF081BAE1EF2DF015B2FCEF87 :105BB0002DF005012F51010AD8B4FAEF2DF0F3EFC3 :105BC0002DF005012F51000AD8B4B3EF38F00501CC :105BD0002F51010AD8B4FAEF2DF000011650050A32 :105BE000D8B4B3EF38F081B8FCEF2DF037EC32F0D9 :105BF00035EC33F04CEC38F0C4EF0DF018C100F187 :105C000019C101F11AC102F11BC103F1000E046FA9 :105C1000000E056F010E066F000E076F0AEC30F0E4 :105C200029A129EF2EF02051D8B429EF2EF018C168 :105C300000F119C101F11AC102F11BC103F1000EFB :105C4000046F000E056F0A0E066F000E076F0AEC58 :105C500030F01200010104510013055101130651E7 :105C600002130751031312000101186B196B1A6B11 :105C70001B6B12002AC182F40401300E822796ECBD :105C80000EF02BC182F40401300E822796EC0EF048 :105C90002CC182F40401300E822796EC0EF02DC147 :105CA00082F40401300E822796EC0EF02EC182F4AD :105CB0000401300E822796EC0EF02FC182F404010D :105CC000300E822796EC0EF030C182F40401300EC3 :105CD000822796EC0EF031C182F40401300E822747 :105CE00096EC0EF032C182F40401300E822796EC5D :105CF0000EF033C182F40401300E822796EC0EF0D0 :105D000012002FC182F40401300E822796EC0EF0AF :105D100030C182F40401300E822796EC0EF031C1BE :105D200082F40401300E822796EC0EF032C182F428 :105D30000401300E822796EC0EF033C182F4040188 :105D4000300E822796EC0EF01200060E216E060E23 :105D5000226E060E236E212EABEF2EF0222EABEF1D :105D60002EF0232EABEF2EF08B84020E216E020E4E :105D7000226E020E236E212EBBEF2EF0222EBBEFE1 :105D80002EF0232EBBEF2EF08B941200FF0E226E0E :105D900022C023F0030E216E8B84212ECCEF2EF037 :105DA000030E216E232ECCEF2EF08B9422C023F015 :105DB000030E216E212EDAEF2EF0030E216E233E0C :105DC000DAEF2EF0222EC8EF2EF012000101005360 :105DD00005E1015303E1025301E1002BA9EC2FF08F :105DE000EEEC30F03951006F3A51016F420E046F02 :105DF0004B0E056F000E066F000E076FEAEC2FF0DA :105E000000C104F101C105F102C106F103C107F1AE :105E100018C100F119C101F11AC102F11BC103F14E :105E200007B217EF2FF0DEEC2FF019EF2FF0D9ECBF :105E30002FF000C118F101C119F102C11AF103C11B :105E40001BF11200EEEC30F059C100F15AC101F122 :105E5000060E64EC0BF0E8CF04F1070E64EC0BF0D7 :105E6000E8CF05F1080E64EC0BF0E8CF06F1090E5F :105E700064EC0BF0E8CF07F1D9EC2FF000C124F16E :105E800001C125F102C126F103C127F1290E046FDA :105E9000000E056F000E066F000E076FEAEC2FF084 :105EA000EE0E046F430E056F000E066F000E076FB7 :105EB000DEEC2FF024C104F125C105F126C106F165 :105EC00027C107F1EAEC2FF000C11CF101C11DF15F :105ED00002C11EF103C11FF1120E64EC0BF0E8CFFA :105EE00004F1130E64EC0BF0E8CF05F1140E64EC32 :105EF0000BF0E8CF06F1150E64EC0BF0E8CF07F1DC :105F00000D0E006F000E016F000E026F000E036F8A :105F1000EAEC2FF0180E046F000E056F000E066FEE :105F2000000E076F0AEC30F01CC104F11DC105F131 :105F30001EC106F11FC107F1DEEC2FF06A0E046FDF :105F40002A0E056F000E066F000E076FD9EC2FF0BA :105F50001200BF0EFA6E200E3A6F396BD8900037E0 :105F6000013702370337D8B0BAEF2FF03A2FAFEF2F :105F70002FF039073A070353D8B412000331070B47 :105F800080093F6F03390F0B010F396F80EC5FF011 :105F9000406F390580EC5FF0405D405F396B3F3307 :105FA000D8B0392739333FA9CFEF2FF040513927E7 :105FB0001200010113EC31F0D8B0120001010351BD :105FC0000719346FD6EC30F0D8900751031934AF6D :105FD000800F12000101346BFAEC30F0D8A010EC05 :105FE00031F0D8B01200E5EC30F0EEEC30F01F0EDE :105FF000366F26EC31F00B35D8B0D6EC30F0D8A0A7 :106000000335D8B01200362FF9EF2FF034B1FDEC84 :1060100030F012000101346B045105110611071113 :106020000008D8A0FAEC30F0D8A010EC31F0D8B0CD :106030001200086B096B0A6B0B6B26EC31F01F0E1C :10604000366F26EC31F007510B5DD8A434EF30F0F9 :1060500006510A5DD8A434EF30F00551095DD8A48B :1060600034EF30F00451085DD8A047EF30F0045110 :10607000085F0551D8A0053D095F0651D8A0063D2F :106080000A5F0751D8A0073D0B5FD8900081362FDB :1060900021EF30F034B1FDEC30F0346BFAEC30F03D :1060A000D8902AEC31F007510B5DD8A464EF30F0A2 :1060B00006510A5DD8A464EF30F00551095DD8A4FB :1060C00064EF30F00451085DD8A073EF30F0003F6A :1060D00073EF30F0013F73EF30F0023F73EF30F0B9 :1060E000032BD8B4120034B1FDEC30F012000101E2 :1060F000346BFAEC30F0D8B012002FEC31F0200EF7 :10610000366F003701370237033711EE33F00A0ECE :10611000376FE7360A0EE75CD8B0E76EE552372FE7 :1061200089EF30F0362F81EF30F034B12981D890EB :1061300012002FEC31F0200E366F00370137023796 :10614000033711EE33F00A0E376FE7360A0EE75CBD :10615000D8B0E76EE552372FA5EF30F0362F9DEF20 :1061600030F0D890120001010A0E346F200E366F05 :1061700011EE29F03451376F0A0ED890E652D8B09C :10618000E726E732372FBEEF30F003330233013317 :106190000033362FB8EF30F0E750FF0FD8A00335AB :1061A000D8B0120029B1FDEC30F0120004510027E4 :1061B0000551D8B0053D01270651D8B0063D02274C :1061C0000751D8B0073D032712000051086F015155 :1061D000096F02510A6F03510B6F12000101006B2E :1061E000016B026B036B12000101046B056B066B04 :1061F000076B12000335D8A012000351800B001F5B :10620000011F021F031F003F0DEF31F0013F0DEF93 :1062100031F0023F0DEF31F0032B342B0325120038 :106220000735D8A012000751800B041F051F061F59 :10623000071F043F23EF31F0053F23EF31F0063F06 :1062400023EF31F0072B342B0725120000370137DD :1062500002370337083709370A370B3712000101B5 :10626000296B2A6B2B6B2C6B2D6B2E6B2F6B306B72 :10627000316B326B336B120001012A510F0B2A6F05 :106280002B510F0B2B6F2C510F0B2C6F2D510F0B14 :106290002D6F2E510F0B2E6F2F510F0B2F6F305173 :1062A0000F0B306F31510F0B316F32510F0B326FBB :1062B00033510F0B336F120000C124F101C125F1DE :1062C00002C126F103C127F104C100F105C101F1AA :1062D00006C102F107C103F124C104F125C105F192 :1062E00026C106F127C107F1120010A806D0899433 :1062F000000EC76E220EC66E05D08984000EC76ED2 :10630000220EC66E050EE82EFED7120010A802D08F :10631000898401D08994050EE82EFED7120075EC11 :1063200031F09E96C69E000EC96EFF0E9EB602D03C :10633000E82EFCD79E96C69E000EC96EFF0E9EB636 :1063400002D0E82EFCD7C9CFAFF59E96C69E000EB0 :10635000C96EFF0E9EB602D0E82EFCD7C9CFB0F5AD :106360009E96C69E000EC96EFF0E9EB602D0E82E07 :10637000FCD7C9CFB1F59E96C69E000EC96EFF0E22 :106380009EB602D0E82EFCD7C9CFB2F59E96C69E27 :10639000000EC96EFF0E9EB602D0E82EFCD7C9CF04 :1063A000B3F59E96C69E000EC96EFF0E9EB602D035 :1063B000E82EFCD7C9CFB4F59E96C69E000EC96ED6 :1063C000FF0E9EB602D0E82EFCD7C9CFB5F586ECFD :1063D00031F0120075EC31F09E96C69E800EC96EAB :1063E000FF0E9EB602D0E82EFCD79E96C69EAFC585 :1063F000C9FFFF0E9EB602D0E82EFCD79E96C69E21 :10640000B0C5C9FFFF0E9EB602D0E82EFCD79E96FF :10641000C69EB1C5C9FFFF0E9EB602D0E82EFCD7BE :106420009E96C69EB2C5C9FFFF0E9EB602D0E82E4C :10643000FCD79E96C69EB3C5C9FFFF0E9EB602D07E :10644000E82EFCD79E96C69EB4C5C9FFFF0E9EB629 :1064500002D0E82EFCD79E96C69EB5C5C9FFFF0E9A :106460009EB602D0E82EFCD786EC31F0120075EC17 :1064700031F09E96C69E070EC96EFF0E9EB602D0E4 :10648000E82EFCD79E96C69E000EC96EFF0E9EB6E5 :1064900002D0E82EFCD7C9CFAFF59E96C69E000E5F :1064A000C96EFF0E9EB602D0E82EFCD7C9CFB0F55C :1064B0009E96C69E000EC96EFF0E9EB602D0E82EB6 :1064C000FCD7C9CFB1F59E96C69E000EC96EFF0ED1 :1064D0009EB602D0E82EFCD7C9CFB2F586EC31F0DB :1064E00075EC31F09E96C69E25C0C9FFFF0E9EB684 :1064F00002D0E82EFCD79E96C69E000EC96EFF0EF7 :106500009EB602D0E82EFCD7C9CFB6F586EC31F0A6 :10651000120075EC31F09E96C69E870EC96EFF0E76 :106520009EB602D0E82EFCD79E96C69EAFC5C9FF88 :10653000FF0E9EB602D0E82EFCD79E96C69EB0C532 :10654000C9FFFF0E9EB602D0E82EFCD79E96C69ECF :10655000B1C5C9FFFF0E9EB602D0E82EFCD79E96AD :10656000C69EB2C5C9FFFF0E9EB602D0E82EFCD76C :1065700086EC31F075EC31F09E96C69E26C0C9FFC0 :10658000FF0E9EB602D0E82EFCD79E96C69EB6C5DC :10659000C9FFFF0E9EB602D0E82EFCD786EC31F084 :1065A000120075EC31F09E96C69E870EC96EFF0EE6 :1065B0009EB602D0E82EFCD79E96C69E000EC96EEF :1065C000FF0E9EB602D0E82EFCD79E96C69E800E89 :1065D000C96EFF0E9EB602D0E82EFCD79E96C69ED0 :1065E000800EC96EFF0E9EB602D0E82EFCD79E9696 :1065F000C69E800EC96EFF0E9EB602D0E82EFCD756 :1066000086EC31F0120075EC31F09E96C69E870E36 :10661000C96EFF0E9EB602D0E82EFCD79E96C69E8F :10662000000EC96EFF0E9EB602D0E82EFCD79E96D5 :10663000C69E000EC96EFF0E9EB602D0E82EFCD795 :106640009E96C69E800EC96EFF0E9EB602D0E82EA4 :10665000FCD79E96C69E800EC96EFF0E9EB602D0D7 :10666000E82EFCD786EC31F0120010A817D075EC9C :1066700031F09E96C69E8F0EC96EFF0E9EB602D05A :10668000E82EFCD79E96C69E000EC96EFF0E9EB6E3 :1066900002D0E82EFCD786EC31F0120037EC32F055 :1066A000120010A82DD075EC31F09E96C69E26C023 :1066B000C9FFFF0E9EB602D0E82EFCD79E96C69E5E :1066C000450EC96EFF0E9EB602D0E82EFCD786ECB2 :1066D00031F075EC31F09E96C69E8F0EC96EFF0E9E :1066E0009EB602D0E82EFCD79E96C69E000EC96EBE :1066F000FF0E9EB602D0E82EFCD786EC31F01200D9 :1067000075EC31F09E96C69E26C0C9FFFF0E9EB660 :1067100002D0E82EFCD79E96C69E010EC96EFF0ED3 :106720009EB602D0E82EFCD786EC31F075EC31F045 :106730009E96C69E910EC96EFF0E9EB602D0E82EA2 :10674000FCD79E96C69EA50EC96EFF0E9EB602D0C1 :10675000E82EFCD786EC31F0120075EC31F09E96F5 :10676000C69E26C0C9FFFF0E9EB602D0E82EFCD7FB :106770009E96C69E810EC96EFF0E9EB602D0E82E72 :10678000FCD786EC31F0120075EC31F09E96C69E77 :1067900026C0C9FFFF0E9EB602D0E82EFCD79E96FB :1067A000C69E010EC96EFF0E9EB602D0E82EFCD723 :1067B00086EC31F0120075EC31F09E96C69E910E7B :1067C000C96EFF0E9EB602D0E82EFCD79E96C69EDE :1067D000A50EC96EFF0E9EB602D0E82EFCD786EC41 :1067E00031F0120075EC31F09E96C69E910EC96E86 :1067F000FF0E9EB602D0E82EFCD79E96C69E000ED7 :10680000C96EFF0E9EB602D0E82EFCD786EC31F0A2 :1068100012000501256B266B276B286B899A400EA9 :10682000C76E200EC66E9E96C69E030EC96EFF0EE4 :106830009EB602D0E82EFCD79E96C69E27C5C9FFFD :10684000FF0E9EB602D0E82EFCD79E96C69E26C5A9 :10685000C9FFFF0E9EB602D0E82EFCD79E96C69EBC :1068600025C5C9FFFF0E9EB602D0E82EFCD79E9626 :10687000C69EC952FF0E9EB602D0E82EFCD7898A6A :106880000F01C950FF0A01E1120005012E51130A40 :1068900005E005012E51170A0CE012000501F00E6B :1068A000256FFF0E266F0F0E276F000E286F62EF09 :1068B00034F00501F00E256FFF0E266FFF0E276FD7 :1068C000000E286F899A400EC76E200EC66E9E96E7 :1068D000C69E030EC96EFF0E9EB602D0E82EFCD7F0 :1068E0009E96C69E27C5C9FFFF0E9EB602D0E82E13 :1068F000FCD79E96C69E26C5C9FFFF0E9EB602D047 :10690000E82EFCD79E96C69E25C5C9FFFF0E9EB6F3 :1069100002D0E82EFCD79E96C69EC952FF0E9EB6A8 :1069200002D0E82EFCD7898A0F01C950FF0A1DE06A :1069300005012E51130A05E005012E51170A0BE03F :1069400012000501000E256F000E266F100E276F36 :10695000000E286F12000501000E256F000E266F35 :10696000000E276F010E286F12000501256B266BA4 :10697000276B286B05012E51130A05E005012E51E6 :10698000170A0CE012000501000E216F000E226FA5 :10699000080E236F000E246FD7EF34F00501000EB0 :1069A000216F000E226F800E236F000E246F21C511 :1069B00000F122C501F123C502F124C503F125C56B :1069C00004F126C505F127C506F128C507F12AEC13 :1069D0002EF000C125F501C126F502C127F503C13E :1069E00028F5899A400EC76E200EC66E9E96C69EEA :1069F000030EC96EFF0E9EB602D0E82EFCD79E96FF :106A0000C69E27C5C9FFFF0E9EB602D0E82EFCD752 :106A10009E96C69E26C5C9FFFF0E9EB602D0E82EE2 :106A2000FCD79E96C69E25C5C9FFFF0E9EB602D016 :106A3000E82EFCD79E96C69EC952FF0E9EB602D087 :106A4000E82EFCD7898AC950FF0A08E104C125F560 :106A500005C126F506C127F507C128F5D89005011F :106A600024332333223321332151F00B216F0501CD :106A7000216742EF35F0226742EF35F0236742EF9E :106A800035F02467D7EF34F00501100E2527E86AAA :106A90002623E86A2723E86A28231200E86A05010A :106AA0002E51130A06E005012E51170A0BE0020EC3 :106AB000120005012851000A03E12751F00B07E0FD :106AC000010E120005012851000A01E0010E12001A :106AD00029C500F12AC501F12BC502F12CC503F12E :106AE00025C504F126C505F127C506F128C507F11E :106AF000D9EC2FF003BF12004EEC35F0D8A4E0EF34 :106B000035F0899A400EC76E200EC66E9E96C69EC0 :106B1000060EC96EFF0E9EB602D0E82EFCD7898AFB :106B2000899A9E96C69E020EC96EFF0E9EB602D030 :106B3000E82EFCD79E96C69E27C5C9FFFF0E9EB6BF :106B400002D0E82EFCD79E96C69E26C5C9FFFF0E32 :106B50009EB602D0E82EFCD79E96C69E25C5C9FFDC :106B6000FF0E9EB602D0E82EFCD79E96C69E000E63 :106B7000C96EFF0E9EB602D0E82EFCD7898A899A8C :106B80009E96C69E050EC96EFF0E9EB602D0E82EDA :106B9000FCD79E96C69EC952FF0E9EB602D0E82E26 :106BA000FCD7C9B0C9EF35F0898A0501100E252739 :106BB000E86A2623E86A2723E86A282368EF35F085 :106BC0001200899A400EC76E200EC66E9E96C69E13 :106BD000060EC96EFF0E9EB602D0E82EFCD7898A3B :106BE000899A9E96C69EC70EC96EFF0E9EB602D0AB :106BF000E82EFCD7898A0501256B266B276B286B4D :106C00001200899A400EC76E200EC66E9E96C69ED2 :106C1000050EC96EFF0E9EB602D0E82EFCD79E96DA :106C2000C69EC952FF0E9EB602D0E82EFCD7C9CF31 :106C300037F5898A1200899A400EC76E200EC66EFB :106C40009E96C69EB90EC96EFF0E9EB602D0E82E65 :106C5000FCD7898A1200899A400EC76E200EC66E34 :106C60009E96C69EAB0EC96EFF0E9EB602D0E82E53 :106C7000FCD7898AFF0EE82EFED712004EEC35F0C5 :106C8000D8A41200899A400EC76E200EC66E9E963A :106C9000C69E030EC96EFF0E9EB602D0E82EFCD72C :106CA0009E96C69E27C5C9FFFF0E9EB602D0E82E4F :106CB000FCD79E96C69E26C5C9FFFF0E9EB602D083 :106CC000E82EFCD79E96C69E25C5C9FFFF0E9EB630 :106CD00002D0E82EFCD79E96C69EC952FF0E9EB6E5 :106CE00002D0E82EFCD7898A0F01C950FF0AD8A428 :106CF000BDEF37F00501FE0E376F0501FF0E536F34 :106D0000FF0E546FFF0E556FFF0E566F15A6379985 :106D100015868FEC31F0AFC538F5B0C539F5B1C582 :106D20003AF5B2C53BF5B3C53CF5B4C53DF5B5C5BF :106D30003EF50784BAC166F1BBC167F1BCC168F119 :106D4000BDC169F14BC14FF14CC150F14DC151F181 :106D50004EC152F157C159F158C15AF100011650B4 :106D6000010AD8B4C2EF36F000011650020AD8B4B6 :106D7000E7EF36F000011650040AD8B40CEF37F0F4 :106D8000BDEF37F00501476B486B496B4A6B050156 :106D90004B6B4C6B4D6B4E6B05014F6B506B516BDE :106DA000526B8BA0379B71EC22F000C1DAF101C16C :106DB000DBF102C1DCF103C1DDF100C13FF501C12E :106DC00040F502C141F503C142F52BEF37F0050153 :106DD000476B486B496B4A6B05014B6B4C6B4D6BBA :106DE0004E6B05014F6B506B516B526B71EC22F087 :106DF00000C1DAF101C1DBF102C1DCF103C1DDF157 :106E00006EEC23F000C147F501C148F502C149F518 :106E100003C14AF5BDEF37F0379BDAC13FF5DBC15F :106E200040F5DCC141F5DDC142F571EC22F000C155 :106E30004BF501C14CF502C14DF503C14EF56EECA9 :106E400023F000C14FF501C150F502C151F503C156 :106E500052F52BEF37F00501616736EF37F06267C7 :106E600036EF37F0636736EF37F064673AEF37F0A5 :106E70004FEF37F0DAC100F1DBC101F1DCC102F103 :106E8000DDC103F161C504F162C505F163C506F119 :106E900064C507F1D9EC2FF003BFBDEF37F059C13E :106EA00043F55AC144F5B9C545F50501110E326FD8 :106EB000899A400EC76E200EC66E9E96C69E060E1E :106EC000C96EFF0E9EB602D0E82EFCD7898A899A39 :106ED0009E96C69E020EC96EFF0E9EB602D0E82E8A :106EE000FCD79E96C69E27C5C9FFFF0E9EB602D050 :106EF000E82EFCD79E96C69E26C5C9FFFF0E9EB6FD :106F000002D0E82EFCD79E96C69E25C5C9FFFF0E6F :106F10009EB602D0E82EFCD725EE37F0322F02D0F5 :106F20009DEF37F09E96C69EDECFC9FFFF0E9EB640 :106F300002D0E82EFCD78EEF37F0898A899A9E9688 :106F4000C69E050EC96EFF0E9EB602D0E82EFCD777 :106F50009E96C69EC952FF0E9EB602D0E82EFCD762 :106F6000C9B0A8EF37F0898A0501100E2527E86A15 :106F70002623E86A2723E86A28231590079412003D :106F800021C500F122C501F123C502F124C503F199 :106F9000899A400EC76E200EC66E9E96C69E0B0E38 :106FA000C96EFF0E9EB602D0E82EFCD79E96C69EF6 :106FB00002C1C9FFFF0E9EB602D0E82EFCD79E96F6 :106FC000C69E01C1C9FFFF0E9EB602D0E82EFCD7B7 :106FD0009E96C69E00C1C9FFFF0E9EB602D0E82E47 :106FE000FCD79E96C69EC952FF0E9EB602D0E82ED2 :106FF000FCD725EE37F00501100E326F9E96C69E27 :10700000C952FF0E9EB602D0E82EFCD7C9CFDEFFD4 :10701000322FFEEF37F0898A1200899A400EC76E30 :10702000200EC66E9E96C69E900EC96EFF0E9EB630 :1070300002D0E82EFCD79E96C69E000EC96EFF0EAB :107040009EB602D0E82EFCD79E96C69E000EC96E54 :10705000FF0E9EB602D0E82EFCD79E96C69E000E6E :10706000C96EFF0E9EB602D0E82EFCD79E96C69E35 :10707000C952FF0E9EB602D0E82EFCD7C9CF2DF51F :107080009E96C69EC952FF0E9EB602D0E82EFCD731 :10709000C9CF2EF5898A12008FEC31F005012F51EE :1070A000010A5FE005012F51020A16E005012F5188 :1070B000030A19E005012F51040A24E005012F51AC :1070C000050A2BE005012F51060A39E005012F5171 :1070D000070A3FE0B1EF38F0602FAFEF38F05FC53F :1070E00060F5B1EF38F0B0C500F101010F0E0017E7 :1070F00001010051000A35E001010051050A31E0AB :10710000AFEF38F0B0C500F101010F0E001701011B :107110000051000A26E0AFEF38F00501B051000A37 :1071200020E00501B051150A1CE00501B051300AFC :1071300018E00501B051450A14E0AFEF38F0050141 :10714000B051000A0EE00501B051300A0AE0AFEF7D :1071500038F00501B051000A04E0AFEF38F01590A7 :107160001200158012008B90A5EC2EF0B9C5E8FF37 :10717000D70802E3A5EC2EF0B9C5E8FFC80802E382 :10718000A5EC2EF0B9C5E8FFB90802E3A5EC2EF096 :10719000B9C5E8FFAA0802E3A5EC2EF0B9C5E8FFDF :1071A0009B0802E3A5EC2EF01BEC36F0F29CF29E5D :1071B0008B94C69AC2909482948C720ED36ED3A490 :1071C000FED789968A909390F29AF2949D909E9021 :1071D0009D929E92F298F29235EC33F0FF0EE8CF3A :1071E00000F0E82EFED7002EFCD7F290F2868150F8 :1071F00081A8FDEF38F0F29E0300700ED36EF29678 :0E720000F29015840380C6EC2EF09AEF0BF08E :10BF0000E844F926000C160C2B0C3F0C520C640C68 :10BF1000760C860C960CA50CB30CC10CCF0CDC0C6B :06BF2000E80CF40C000C1B :0200000400F00A :0100C800FE39 :00000001FF ./firmware/SQM-LU-DL-V-4-11-79.hex0000644000175000017500000027135614274541467016006 0ustar anthonyanthony:020000040000FA :040800003CEF0CF0CD :1008100003B275EF05F0F2B493EF05F09EB09BEFD5 :1008200005F09EB2A3EF05F0F2A81AEF04F0F2B2C1 :1008300023EF04F0F2B01FEF04F0EBEF0BF0F296B1 :10084000F290EBEF0BF0CD90F2929EA02DEF04F022 :100850000101533F2DEF04F0542BB2C1B6F1B3C1E7 :10086000B7F1B4C1B8F1B5C1B9F1AEC1B2F1AFC120 :10087000B3F1B0C1B4F1B1C1B5F1AAC1AEF1ABC130 :10088000AFF1ACC1B0F1ADC1B1F1A6C1AAF1A7C140 :10089000ABF1A8C1ACF1A9C1ADF1A2C1A6F1A3C150 :1008A000A7F1A4C1A8F1A5C1A9F19EC1A2F19FC160 :1008B000A3F1A0C1A4F1A1C1A5F19AC19EF19BC170 :1008C0009FF19CC1A0F19DC1A1F1CECF9AF1CFCFF4 :1008D0009BF153C19CF154C19DF1CF6ACE6A0101D5 :1008E000536B546B9E90CD800FBC0F8E0FBA7CEF74 :1008F00004F00F8AEBEF0BF013880F8C0FBEB9EFEB :1009000004F09AC19EF19BC19FF19CC1A0F19DC1D1 :10091000A1F19EC1A2F19FC1A3F1A0C1A4F1A1C107 :10092000A5F1A2C1A6F1A3C1A7F1A4C1A8F1A5C1D7 :10093000A9F1A6C1AAF1A7C1ABF1A8C1ACF1A9C1A7 :10094000ADF1AAC1AEF1ABC1AFF1ACC1B0F1ADC177 :10095000B1F1AEC1B2F1AFC1B3F1B0C1B4F1B1C147 :10096000B5F1B2C1B6F1B3C1B7F1B4C1B8F1B5C117 :10097000B9F101015E6B5F6B606B616B9A515E2731 :100980009B515F239C5160239D5161239E515E27A3 :100990009F515F23A0516023A1516123A2515E2783 :1009A000A3515F23A4516023A5516123A6515E2763 :1009B000A7515F23A8516023A9516123AA515E2743 :1009C000AB515F23AC516023AD516123AE515E2723 :1009D000AF515F23B0516023B1516123B2515E2703 :1009E000B3515F23B4516023B5516123B6515E27E3 :1009F000B7515F23B8516023B9516123D8900101E9 :100A0000613360335F335E33D8900101613360330B :100A10005F335E33D8900101613360335F335E33FF :100A200000C10CF101C10DF102C10EF103C10FF1C2 :100A300004C110F105C111F106C112F107C113F192 :100A400008C114F109C115F10AC116F10BC117F162 :100A500034C135F111B838EF05F00101620E046FB1 :100A6000010E056F000E066F000E076F41EF05F0D7 :100A70000101A70E046F020E056F000E066F000E37 :100A8000076F5EC100F15FC101F160C102F161C198 :100A900003F1F2EC3AF003BF04D01CBE02D01CA05C :100AA000108C11A059EF05F010BA59EF05F00F8026 :100AB000108A0CC100F10DC101F10EC102F10FC18C :100AC00003F110C104F111C105F112C106F113C106 :100AD00007F114C108F115C109F116C10AF117C1D6 :100AE0000BF135C134F1EBEF0BF00392ABB2AB98E5 :100AF000AB88030103EE00F080517F0BE92604C0B0 :100B0000EFFF802B8151805D700BD8A48B82000099 :100B10008051815D700BD8A48B9281518019D8B41B :100B20000790EBEF0BF0F2940101453FEBEF0BF078 :100B3000462BEBEF0BF09E900101533FEBEF0BF0D8 :100B4000542BEBEF0BF09E9211B895EF08F00400D8 :100B500066A1ABEF05F08BB4B5EF05F010ACB5EFC7 :100B600005F08B84109CB6EF05F08B9407B408EF6A :100B700006F007B008EF06F01EC620F61FC621F6E5 :100B80001CC61EF61DC61FF61AC61CF61BC61DF691 :100B900006C608F607C609F604C606F605C607F631 :100BA00002C604F603C605F626C628F627C629F6A9 :100BB00024C626F625C627F622C624F623C625F621 :100BC0000EC610F60FC611F60CC60EF60DC60FF6C1 :100BD0000AC60CF60BC60DF62EC630F62FC631F639 :100BE0002CC62EF62DC62FF62AC62CF62BC62DF6B1 :100BF00016C618F617C619F614C616F615C617F651 :100C000012C614F613C615F606EC3DF0B4EC3CF033 :100C1000077C07AC23EF06F0C274C2B41DEF06F0E8 :100C2000C3CFB7F5C4CFB8F50501D890B833B73303 :100C3000D890B833B73324EF06F0C3CF55F1C4CF03 :100C400056F124EF06F0C28207B496EF06F047C1D2 :100C50004BF148C14CF149C14DF14AC14EF15EC161 :100C600062F15FC163F160C164F161C165F113A814 :100C70003CEF06F0138C13989AC1BAF19BC1BBF1FB :100C80009CC1BCF19DC1BDF19EC1BEF19FC1BFF130 :100C9000A0C1C0F1A1C1C1F1A2C1C2F1A3C1C3F100 :100CA000A4C1C4F1A5C1C5F1A6C1C6F1A7C1C7F1D0 :100CB000A8C1C8F1A9C1C9F1AAC1CAF1ABC1CBF1A0 :100CC000ACC1CCF1ADC1CDF1AEC1CEF1AFC1CFF170 :100CD000B0C1D0F1B1C1D1F1B2C1D2F1B3C1D3F140 :100CE000B4C1D4F1B5C1D5F1B6C1D6F1B7C1D7F110 :100CF000B8C1D8F1B9C1D9F1B7C5B9F5B8C5BAF518 :100D0000B9C5BBF5BAC5BCF5010155515B275651B4 :100D10005C23E86A5D230E2E96EF06F05CC157F166 :100D20005DC158F15B6B5C6B5D6B078E0201002F40 :100D3000EBEF0BF03C0E006F1D50E00BE00AE86695 :100D400012881BBE02D01BB4108E00C10CF101C171 :100D50000DF102C10EF103C10FF104C110F105C183 :100D600011F106C112F107C113F108C114F109C153 :100D700015F10AC116F10BC117F134C135F181AA81 :100D8000FEEF06F015A449EF07F005012F51000A08 :100D9000D8B48CEF07F005012F51010AD8B408EF41 :100DA00007F005012F51020AD8B449EF07F00501F9 :100DB0002F51030AD8B449EF07F005012F51040A57 :100DC000D8B449EF07F005012F51050AD8B449EF0F :100DD00007F005012F51060AD8B449EF07F00501C5 :100DE0002F51070AD8B449EF07F005012F51320AF5 :100DF000D8B406EF07F02F6B8CEF07F00001165008 :100E0000030AD8B449EF07F08CEF07F08CEF07F036 :100E10000501576713EF07F0586713EF07F059679D :100E200013EF07F05A6717EF07F08CEF07F05BC579 :100E300000F15CC501F15DC502F15EC503F1010180 :100E4000010E046F000E056F000E066F000E076F97 :100E5000F2EC3AF000C15BF501C15CF502C15DF551 :100E600003C15EF5010100673DEF07F001673DEF4B :100E700007F002673DEF07F003678CEF07F057C5F7 :100E80005BF558C55CF559C55DF55AC55EF576EF5D :100E900007F00FBE5EEF07F010A063EF07F001014F :100EA00047675AEF07F048675AEF07F049675AEF6C :100EB00007F04A675EEF07F063EF07F007AE63EFF6 :100EC00007F076EF07F00501312F8CEF07F03C0EAD :100ED000316F302F8CEF07F00101000E626FE00ED2 :100EE000636FA50E646F010E656F138800011650C5 :100EF000000AD8B484EF07F000011650030AD8B4F2 :100F000089EF07F08CEF07F00001010E166E8CEFF1 :100F100007F00001040E166E0501666B37B792EFFD :100F200007F066810CC100F10DC101F10EC102F1A3 :100F30000FC103F110C104F111C105F112C106F195 :100F400013C107F114C108F115C109F116C10AF165 :100F500017C10BF135C134F100C10CF101C10DF124 :100F600002C10EF103C10FF104C110F105C111F16D :100F700006C112F107C113F108C114F109C115F13D :100F80000AC116F10BC117F134C135F101018E67A9 :100F9000D1EF07F08F67D1EF07F09067D1EF07F03F :100FA0009167D5EF07F006EF08F092C100F193C109 :100FB00001F194C102F195C103F10101010E046F29 :100FC000000E056F000E066F000E076FF2EC3AF090 :100FD00000C192F101C193F102C194F103C195F1F5 :100FE00001010067FBEF07F00167FBEF07F0026705 :100FF000FBEF07F0036706EF08F08EC192F18FC197 :1010000093F190C194F191C195F10F80D57ED5BE39 :101010006ED0D6CF47F1D7CF48F145C149F1E86A44 :10102000E8CF4AF1138A1CBE02D01CA0108C10908D :1010300047C100F148C101F149C102F14AC103F1C0 :1010400001010A0E046F000E056F000E066F000E00 :10105000076FF2EC3AF003AF1080010154A73DEFA7 :1010600008F00F9A0F9C0F9E0101000E5E6F600E3C :101070005F6F3D0E606F080E616F010147BF4DEF5E :1010800008F048674DEF08F049674DEF08F04A67F0 :101090004DEF08F0F28872EF08F0F2985E6B5F6B2C :1010A000606B616B9A6B9B6B9C6B9D6B9E6B9F6B7C :1010B000A06BA16BA26BA36BA46BA56BA66BA76BBC :1010C000A86BA96BAA6BAB6BAC6BAD6BAE6BAF6B6C :1010D000B06BB16BB26BB36BB46BB56BB66BB76B1C :1010E000B86BB96BD76AD66A0101456B466B0CC108 :1010F00000F10DC101F10EC102F10FC103F110C1E8 :1011000004F111C105F112C106F113C107F114C1B7 :1011100008F115C109F116C10AF117C10BF135C16A :1011200034F1EBEF0BF0EBEF0BF00201002FFDEFD2 :101130000AF0D59ED6CF47F1D7CF48F145C149F146 :10114000E86AE8CF4AF1138AD76AD66A0101456B8B :10115000466BD58E1D50E00BE00AE86612881BBE78 :1011600002D01BB4108E1AAE1F8C00C10CF101C14D :101170000DF102C10EF103C10FF104C110F105C15F :1011800011F106C112F107C113F108C114F109C12F :1011900015F10AC116F10BC117F134C135F10FA0D9 :1011A000109A11B8DFEF08F00101620E046F010E12 :1011B000056F000E066F000E076FE8EF08F00101E3 :1011C000A70E046F020E056F000E066F000E076F6C :1011D00047C100F148C101F149C102F14AC103F11F :1011E000F2EC3AF003BFFBEF08F01CBE02D01CA0EB :1011F000108C11B00F800CC100F10DC101F10EC1B6 :1012000002F10FC103F110C104F111C105F112C1C6 :1012100006F113C107F114C108F115C109F116C196 :101220000AF117C10BF135C134F102013C0E006F18 :1012300000C10CF101C10DF102C10EF103C10FF1AA :1012400004C110F105C111F106C112F107C113F17A :1012500008C114F109C115F10AC116F10BC117F14A :1012600034C135F181BA38EF09F015B277EF09F0E2 :1012700015A077EF09F015A4C2EF09F005012F5171 :10128000000AD8B405EF0AF005012F51010AD8B4BD :1012900081EF09F005012F51020AD8B4C2EF09F01D :1012A00005012F51030AD8B4C2EF09F005012F51EF :1012B000040AD8B4C2EF09F005012F51050AD8B4C9 :1012C000C2EF09F005012F51060AD8B4C2EF09F0A8 :1012D00005012F51070AD8B4C2EF09F005012F51BB :1012E000320AD8B47FEF09F02F6B05EF0AF0000146 :1012F0001650030AD8B4C2EF09F005EF0AF005EF63 :101300000AF0050157678CEF09F058678CEF09F078 :1013100059678CEF09F05A6790EF09F005EF0AF072 :101320005BC500F15CC501F15DC502F15EC503F16D :101330000101010E046F000E056F000E066F000E16 :10134000076FF2EC3AF000C15BF501C15CF502C138 :101350005DF503C15EF501010067B6EF09F00167B5 :10136000B6EF09F00267B6EF09F0036705EF0AF080 :1013700057C55BF558C55CF559C55DF55AC55EF5B1 :10138000EFEF09F00FBED7EF09F010A0DCEF09F086 :1013900001014767D3EF09F04867D3EF09F04967C8 :1013A000D3EF09F04A67D7EF09F0DCEF09F007AE99 :1013B000DCEF09F0EFEF09F00501312F05EF0AF03E :1013C0003C0E316F302F05EF0AF00101000E626F05 :1013D000E00E636FA50E646F010E656F1388000148 :1013E0001650000AD8B4FDEF09F000011650030AA8 :1013F000D8B402EF0AF005EF0AF00001010E166EF4 :1014000005EF0AF00001040E166E0501666B37B792 :101410000BEF0AF066810CC100F10DC101F10EC1A4 :1014200002F10FC103F110C104F111C105F112C1A4 :1014300006F113C107F114C108F115C109F116C174 :101440000AF117C10BF135C134F100C10CF101C132 :101450000DF102C10EF103C10FF104C110F105C17C :1014600011F106C112F107C113F108C114F109C14C :1014700015F10AC116F10BC117F134C135F10101A3 :101480008E674AEF0AF08F674AEF0AF090674AEFDB :101490000AF091674EEF0AF07FEF0AF092C100F177 :1014A00093C101F194C102F195C103F10101010E53 :1014B000046F000E056F000E066F000E076FF2EC52 :1014C0003AF000C192F101C193F102C194F103C15C :1014D00095F10101006774EF0AF0016774EF0AF0FB :1014E000026774EF0AF003677FEF0AF08EC192F192 :1014F0008FC193F190C194F191C195F10F8010903B :1015000047C100F148C101F149C102F14AC103F1EB :1015100001010A0E046F000E056F000E066F000E2B :10152000076FF2EC3AF003AF1080010154A7A5EF6A :101530000AF00F9A0F9C0F9E0101000E5E6F600E65 :101540005F6F3D0E606F080E616F47C100F148C1CB :1015500001F149C102F14AC103F10101140E046F06 :10156000050E056F000E066F000E076FF2EC3AF0E5 :1015700003AFBEEF0AF0F288E3EF0AF0F2985E6B79 :101580005F6B606B616B9A6B9B6B9C6B9D6B9E6BD7 :101590009F6BA06BA16BA26BA36BA46BA56BA66BDF :1015A000A76BA86BA96BAA6BAB6BAC6BAD6BAE6B8F :1015B000AF6BB06BB16BB26BB36BB46BB56BB66B3F :1015C000B76BB86BB96B0CC100F10DC101F10EC165 :1015D00002F10FC103F110C104F111C105F112C1F3 :1015E00006F113C107F114C108F115C109F116C1C3 :1015F0000AF117C10BF135C134F104008BB408EFC7 :101600000BF010AC08EF0BF08B84109C09EF0BF083 :101610008B9407B45BEF0BF007B05BEF0BF01EC6CB :1016200020F61FC621F61CC61EF61DC61FF61AC6DA :101630001CF61BC61DF606C608F607C609F604C644 :1016400006F605C607F602C604F603C605F626C664 :1016500028F627C629F624C626F625C627F622C66A :1016600024F623C625F60EC610F60FC611F60CC6D4 :101670000EF60DC60FF60AC60CF60BC60DF62EC6F4 :1016800030F62FC631F62CC62EF62DC62FF62AC6FA :101690002CF62BC62DF616C618F617C619F614C664 :1016A00016F615C617F612C614F613C615F606EC8E :1016B0003DF0B4EC3CF0077C07AC76EF0BF0C27465 :1016C000C2B470EF0BF0C3CFB7F5C4CFB8F50501C6 :1016D000D890B833B733D890B833B73377EF0BF02F :1016E000C3CF55F1C4CF56F177EF0BF0C28207B4E8 :1016F000E9EF0BF047C14BF148C14CF149C14DF145 :101700004AC14EF15EC162F15FC163F160C164F133 :1017100061C165F113A88FEF0BF0138C13989AC178 :10172000BAF19BC1BBF19CC1BCF19DC1BDF19EC191 :10173000BEF19FC1BFF1A0C1C0F1A1C1C1F1A2C161 :10174000C2F1A3C1C3F1A4C1C4F1A5C1C5F1A6C131 :10175000C6F1A7C1C7F1A8C1C8F1A9C1C9F1AAC101 :10176000CAF1ABC1CBF1ACC1CCF1ADC1CDF1AEC1D1 :10177000CEF1AFC1CFF1B0C1D0F1B1C1D1F1B2C1A1 :10178000D2F1B3C1D3F1B4C1D4F1B5C1D5F1B6C171 :10179000D6F1B7C1D7F1B8C1D8F1B9C1D9F1B7C540 :1017A000B9F5B8C5BAF5B9C5BBF5BAC5BCF50101FF :1017B00055515B2756515C23E86A5D230E2EE9EFF5 :1017C0000BF05CC157F15DC158F15B6B5C6B5D6BFD :1017D000078EEBEF0BF002C0E0FF005001C0D8FF16 :1017E0001000A6B2F1EF0BF00CC0A9FF0BC0A8FFD0 :1017F000A69EA69CA684F29E550EA76EAA0EA76E64 :10180000A682F28EA694A6B203EF0CF00C2A120068 :10181000A96EA69EA69CA680A8500C2A12000401C0 :101820002C0E826F70EC0FF007EC3CF00C5008ECC3 :101830000CF0E8CF00F10C5008EC0CF0E8CF01F10F :1018400001AF28EF0CF00101FF0E026FFF0E036FD6 :1018500090EC3BF0296734EF0CF00401200E826F0E :1018600070EC0FF039EF0CF004012D0E826F70EC6C :101870000FF09AEC39F0120015941596076A0F6A6A :10188000106A116A126A136A166A0F010D0EC16E90 :10189000860EC06E030EC26E0F01680E896E130EA7 :1018A000926E080E8A6E8A6AF30E936E8B6A900EA1 :1018B000946EC80E08EC0CF0E8CFE8FF1098E8A092 :1018C000108810A805D00E0E256E8E0E266E04D040 :1018D0000F0E256E8F0E266ED7EC3DF022EC3FF0FA :1018E000F18EF19EFC0E08EC0CF0E8CF0BF00BA093 :1018F00011800BA211820BA411840BA81188C90EB0 :1019000008EC0CF0E8CF1AF0CA0E08EC0CF0E8CFA7 :101910001BF0CB0E08EC0CF0E8CF1CF0CC0E08EC62 :101920000CF0E8CF1DF0FB0E08EC0CF0E8CF37F020 :10193000CE0E08EC0CF0E8CF14F0CD0E08EC0CF055 :10194000E8CF36F01F6A206A0E6A01015B6B5C6BA0 :101950005D6B576B586BF29A0101476B486B496B93 :101960004A6B4B6B4C6B4D6B4E6B4F6B506B516BB3 :10197000526B456B466BD76AD66A0F01280ED56E3F :10198000F28A9D90B00ECD6E01015E6B5F6B606B55 :10199000616B626B636B646B656B666B676B686BCB :1019A000696B536B546BCF6ACE6A0F9A0F9C0F9E74 :1019B0009D80760ECA6E9D8202013C0E006FCC6A3D :1019C000160E08EC0CF0E8CF00F1170E08EC0CF046 :1019D000E8CF01F1180E08EC0CF0E8CF02F1190E77 :1019E00008EC0CF0E8CF03F1010103AF12EF0DF0AA :1019F00007EC3CF0160E0C6E00C10BF0F1EC0BF096 :101A0000170E0C6E01C10BF0F1EC0BF0180E0C6E02 :101A100002C10BF0F1EC0BF0190E0C6E03C10BF0D0 :101A2000F1EC0BF000C18EF101C18FF102C190F118 :101A300003C191F100C192F101C193F102C194F18E :101A400003C195F11A0E08EC0CF0E8CF00F11B0E63 :101A500008EC0CF0E8CF01F11C0E08EC0CF0E8CF1C :101A600002F11D0E08EC0CF0E8CF03F1010103AF09 :101A700068EF0DF007EC3CF01A0E0C6E00C10BF095 :101A8000F1EC0BF01B0E0C6E01C10BF0F1EC0BF046 :101A90001C0E0C6E02C10BF0F1EC0BF01D0E0C6E67 :101AA00003C10BF0F1EC0BF01A0E08EC0CF0E8CFD0 :101AB00000F11B0E08EC0CF0E8CF01F11C0E08EC55 :101AC0000CF0E8CF02F11D0E08EC0CF0E8CF03F1AA :101AD00000C196F101C197F102C198F103C199F1DA :101AE000240EAC6E900EAB6E240EAC6E080EB86E6B :101AF000000EB06E1F0EAF6E0401806B816B0F0184 :101B0000900EAB6E0F019D8A0301806B816BC26BDF :101B10008B927CEC42F07CEC42F0880E08EC0CF0EE :101B2000E8CF00F1890E08EC0CF0E8CF01F10101DB :101B300001AFB3EF0DF007EC3CF0880E0C6E00C166 :101B40000BF0F1EC0BF0890E0C6E01C10BF0F1EC17 :101B50000BF0880E08EC0CF0E8CF00F1890E08ECD1 :101B60000CF0E8CF01F100C140F601C141F602C11D :101B700042F603C143F65AEC46F05AEC40F0200E10 :101B800008EC0CF0E8CF2FF505012F51FF0AD8A47F :101B9000D1EF0DF02F6B200E0C6E2FC50BF0F1EC7A :101BA0000BF00501010E306F3C0E316F250E08EC75 :101BB0000CF0E8CF00F1260E08EC0CF0E8CF01F1B4 :101BC000270E08EC0CF0E8CF02F1280E08EC0CF020 :101BD000E8CF03F1010103AF08EF0EF007EC3CF092 :101BE000250E0C6E00C10BF0F1EC0BF0260E0C6E06 :101BF00001C10BF0F1EC0BF0270E0C6E02C10BF0E3 :101C0000F1EC0BF0280E0C6E03C10BF0F1EC0BF0B5 :101C100000C157F501C158F502C159F503C15AF584 :101C200000C15BF501C15CF502C15DF503C15EF564 :101C3000290E08EC0CF0E8CF5FF5050160515F5DFF :101C4000D8A05FC560F5210E08EC0CF0E8CF00F1DC :101C5000220E08EC0CF0E8CF01F1230E08EC0CF09A :101C6000E8CF02F1240E08EC0CF0E8CF03F10101FB :101C700003AF69EF0EF007EC3CF0210E0C6E00C1D3 :101C80000BF0F1EC0BF0220E0C6E01C10BF0F1EC3D :101C90000BF0230E0C6E02C10BF0F1EC0BF0240ED6 :101CA0000C6E03C10BF0F1EC0BF0210E08EC0CF004 :101CB000E8CF00F1220E08EC0CF0E8CF01F1230E82 :101CC00008EC0CF0E8CF02F1240E08EC0CF0E8CFA1 :101CD00003F100C161F501C162F502C163F503C101 :101CE00064F5A2EC3FF088EC3EF0E0EC3DF015909E :101CF000C70E08EC0CF0E8CF00F1010100B184EF51 :101D00000EF0159285EF0EF0158281AA93EF0EF07A :101D100015B48EEF0EF0158093EF0EF099EC46F0AF :101D200015A000EF47F058EC3DF007900001F28E4F :101D3000F28C12AE03D012BC1CEF21F007B02CEFD6 :101D400037F00FB01CEF30F010BE1CEF30F012B8BF :101D50001CEF30F000011650010AD8B424EF27F030 :101D600081BABBEF0EF000011650040AD8B4C8EFD8 :101D700023F0C1EF0EF000011650040AD8B460EF52 :101D800027F00301805181197F0BD8B42CEF37F075 :101D900013EE00F081517F0BE126812BE7CFE8FFA6 :101DA000E00BD8B42CEF37F023EE82F0C2513F0B9A :101DB000D926E7CFDFFFC22BDF50780AD8A42CEF5B :101DC00037F0078092C100F193C101F194C102F193 :101DD00095C103F10101040E046F000E056F000EA2 :101DE000066F000E076FF2EC3AF000AF01EF0FF054 :101DF0000101030E926F000E936F000E946F000EA0 :101E0000956F03018251720AD8B49DEF2FF0825171 :101E1000520AD8B49DEF2FF08251750AD8B49DEFC5 :101E20002FF08251680AD8B484EF0FF08251630A10 :101E3000D8B4E6EF33F08251690AD8B46AEF2AF0D9 :101E400082517A0AD8B47DEF2BF08251490AD8B476 :101E500009EF2AF08251500AD8B427EF29F08251B5 :101E6000700AD8B46AEF29F08251540AD8B495EFB9 :101E700029F08251740AD8B4DBEF29F08251410A6B :101E8000D8B489EF10F082514B0AD8B486EF0FF026 :101E900082516D0AD8B4F9EF14F082514D0AD8B4CA :101EA00012EF15F08251730AD8B4CDEF2EF08251A3 :101EB000530AD8B432EF2FF082514C0AD8B475EFE0 :101EC0001CF08251760AD8B4A1EF15F08251590A5C :101ED000D8B44AEF14F012AE01D0128C1DEF34F0DA :101EE000040114EE00F080517F0BE12682C4E7FF6D :101EF000802B120004010D0E826F70EC0FF00A0EA1 :101F0000826F70EC0FF012001BEF34F004014B0EE7 :101F1000826F70EC0FF004012C0E826F70EC0FF0EA :101F200081B802D036B630D003018351430AD8B409 :101F3000CBEF0FF003018351630AD8B4CDEF0FF05C :101F400003018351520AD8B4CFEF0FF0030183513C :101F5000720AD8B4D1EF0FF003018351470AD8B405 :101F6000D3EF0FF003018351670AD8B4D5EF0FF018 :101F700003018351540AD8B4D7EF0FF00301835102 :101F8000740AD8B447EF10F003018351550AD8B44E :101F9000D9EF0FF083D036807BD0369079D036825F :101FA00077D0369275D0368473D0369471D0368619 :101FB0006FD084C330F185C331F186C332F187C35A :101FC00033F10101296B55EC3CF0CCEC3BF000C146 :101FD00004F101C105F102C106F103C107F148ECAA :101FE0003CF0200EF86EF76AF66A0900F5CF2CF186 :101FF0000900F5CF2DF10900F5CF2EF10900F5CF3D :102000002FF10900F5CF30F10900F5CF31F10900CA :10201000F5CF32F10900F5CF33F10101296B55EC11 :102020003CF0CCEC3BF0F2EC3AF00101006720EF21 :1020300010F0016720EF10F0026720EF10F0036747 :1020400001D025D004014E0E826F70EC0FF0040118 :102050006F0E826F70EC0FF004014D0E826F70EC0A :102060000FF00401610E826F70EC0FF00401740E2A :10207000826F70EC0FF00401630E826F70EC0FF052 :102080000401680E826F70EC0FF01BEF34F036968F :10209000CD0E0C6E36C00BF0F1EC0BF0CD0E08EC53 :1020A0000CF0E8CF36F036B006D00401630E826F34 :1020B00070EC0FF005D00401430E826F70EC0FF04E :1020C00036B206D00401720E826F70EC0FF005D0AC :1020D0000401520E826F70EC0FF036B406D004018A :1020E000670E826F70EC0FF005D00401470E826F0F :1020F00070EC0FF036B606D00401740E826F70ECEF :102100000FF005D00401540E826F70EC0FF01BEF3E :1021100034F00401410E826F70EC0FF00301835123 :10212000310AD8B46AEF13F003018351320AD8B4EC :102130009AEF12F003018351330AD8B423EF12F05F :1021400003018351340AD8B413EF11F00301835112 :10215000350AD8B4B3EF10F004013F0E826F70EC73 :102160000FF01BEF34F003018451300AD8B4D9EFDB :1021700010F003018451310AD8B4DCEF10F00301F0 :102180008451650AD8B4CDEF10F003018451640A7C :10219000D8B4D0EF10F0DDEF10F03790D1EF10F0A1 :1021A0003780FB0E0C6E37C00BF0F1EC0BF0DDEF5F :1021B00010F08B90DDEF10F08B800401350E826FF4 :1021C00070EC0FF004012C0E826F70EC0FF08BB0EE :1021D000F1EF10F00401300E826F70EC0FF0F6EFAB :1021E00010F00401310E826F70EC0FF004012C0E20 :1021F000826F70EC0FF0FB0E08EC0CF0E8CF37F0BC :1022000037A00AEF11F00401640E826F70EC0FF03A :102210000FEF11F00401650E826F70EC0FF011EFFB :1022200011F01BEF34F0CC0E08EC0CF0E8CF0BF003 :1022300004012C0E826F70EC0FF003018451310AFF :10224000D8B437EF11F003018451300AD8B439EF14 :1022500011F0030184514D0AD8B443EF11F003018A :102260008451540AD8B44AEF11F061EF11F08A8416 :1022700001D08A940BAE04D00BAC02D00BBA21D0A3 :10228000E00E0B1218D01F0E0B168539E844E00B38 :102290000B1211D0E00E0B1648EC3CF085C332F166 :1022A00086C333F10101296B55EC3CF0CCEC3BF0DB :1022B00000511F0B0B12CC0E0C6E0BC00BF0F1EC8F :1022C0000BF00401340E826F70EC0FF004012C0E41 :1022D000826F70EC0FF0CC0E08EC0CF0E8CF1DF024 :1022E0008AB406D00401300E826F70EC0FF005D076 :1022F0000401310E826F70EC0FF004012C0E826F1E :1023000070EC0FF01D38E840070BE8CF82F40401B1 :10231000300E822770EC0FF004012C0E826F70ECEF :102320000FF007EC3CF01D501F0BE8CF00F190ECD4 :102330003BF032C182F40401300E822770EC0FF0C2 :1023400033C182F40401300E822770EC0FF00401D7 :102350002C0E826F70EC0FF007EC3CF030C000F1F7 :1023600000AF0BD0FF0E016FFF0E026FFF0E036F69 :1023700004012D0E826F70EC0FF090EC3BF031C138 :1023800082F40401300E822770EC0FF032C182F427 :102390000401300E822770EC0FF033C182F4040187 :1023A000300E822770EC0FF004012C0E826F70EC5F :1023B0000FF007EC3CF02FC000F190EC3BF031C186 :1023C00082F40401300E822770EC0FF032C182F4E7 :1023D0000401300E822770EC0FF033C182F4040147 :1023E000300E822770EC0FF004012C0E826F70EC1F :1023F0000FF007EC3CF031C000F100AF0BD0FF0E46 :10240000016FFF0E026FFF0E036F04012D0E826F2E :1024100070EC0FF090EC3BF031C182F40401300E0F :10242000822770EC0FF032C182F40401300E822753 :1024300070EC0FF033C182F40401300E822770EC8F :102440000FF01BEF34F0CB0E08EC0CF0E8CF0BF0E4 :1024500004012C0E826F70EC0FF003018451450AC9 :10246000D8B447EF12F003018451440AD8B44AEFBC :1024700012F003018451300AD8B44DEF12F0030179 :102480008451310AD8B451EF12F05CEF12F00B9E78 :1024900056EF12F00B8E56EF12F0FC0E0B1656EFA5 :1024A00012F0FC0E0B160B8056EF12F0CB0E0C6EDA :1024B0000BC00BF0F1EC0BF00401330E826F70ECEB :1024C0000FF004012C0E826F70EC0FF0CB0E08ECB5 :1024D0000CF0E8CF1CF01CBE75EF12F00401450EA5 :1024E000826F70EC0FF07AEF12F00401440E826FED :1024F00070EC0FF004012C0E826F70EC0FF00401F1 :10250000300E826F70EC0FF004012C0E826F70ECB5 :102510000FF01CB093EF12F00401300E826F70ECDC :102520000FF098EF12F00401310E826F70EC0FF093 :102530001BEF34F0CA0E08EC0CF0E8CF0BF00401EE :102540002C0E826F70EC0FF003018451450AD8B451 :10255000D6EF12F003018451440AD8B4D9EF12F037 :10256000030184514D0AD8B4E2EF12F00301845103 :10257000410AD8B4DCEF12F003018451460AD8B402 :10258000DFEF12F003018451560AD8B4EAEF12F0DB :1025900003018451500AD8B4F5EF12F003018451BD :1025A000520AD8B4F8EF12F001EF13F00B9EFBEFD4 :1025B00012F00B8EFBEF12F00B9CFBEF12F00B8C6A :1025C000FBEF12F0FC0E0B1685C3E8FF030B0B129A :1025D000FBEF12F0C70E0B1685C3E8FF070BE846AA :1025E000E846E8460B12FBEF12F00B84FBEF12F00B :1025F0000B94FBEF12F0CA0E0C6E0BC00BF0F1EC5B :102600000BF0CA0E08EC0CF0E8CF1BF00401320E00 :10261000826F70EC0FF004012C0E826F70EC0FF0E3 :102620001BBE1AEF13F00401450E826F70EC0FF021 :102630001FEF13F00401440E826F70EC0FF00401E1 :102640002C0E826F70EC0FF01BC0E8FF030BE8CF7D :1026500082F40401300E822770EC0FF004012C0E7E :10266000826F70EC0FF01BBC3DEF13F00401410EC4 :10267000826F70EC0FF042EF13F00401460E826F90 :1026800070EC0FF004012C0E826F70EC0FF01BC089 :10269000E8FF380BE842E842E842E8CF82F4040160 :1026A000300E822770EC0FF004012C0E826F70EC5C :1026B0000FF01BB463EF13F00401520E826F70EC45 :1026C0000FF068EF13F00401500E826F70EC0FF002 :1026D0001BEF34F0C90E08EC0CF0E8CF0BF004014E :1026E0002C0E826F70EC0FF003018451450AD8B4B0 :1026F00088EF13F003018451440AD8B48BEF13F030 :10270000030184514D0AD8B48EEF13F09CEF13F0FF :102710000B9E96EF13F00B8E96EF13F0F80E0B1640 :1027200085C3E8FF070B0B1296EF13F0C90E0C6E72 :102730000BC00BF0F1EC0BF00401310E826F70EC6A :102740000FF004012C0E826F70EC0FF0C90E08EC34 :102750000CF0E8CF1AF01ABE06D00401450E826FC5 :1027600070EC0FF005D00401440E826F70EC0FF096 :1027700004012C0E826F70EC0FF01AC0E8FF070BFB :10278000E8CF82F40401300E822770EC0FF00401D0 :102790002C0E826F70EC0FF0078007EC3CF02BC022 :1027A000E8FF003B00430043030B90EC3BF033C1D8 :1027B00082F40401300E822770EC0FF004012C0E1D :1027C000826F70EC0FF007EC3CF02BC001F1019F21 :1027D000019D2CC000F1010190EC3BF02FC182F46F :1027E0000401300E822770EC0FF030C182F4040136 :1027F000300E822770EC0FF031C182F40401300EEC :10280000822770EC0FF032C182F40401300E82276F :1028100070EC0FF033C182F40401300E822770ECAB :102820000FF004012C0E826F70EC0FF007EC3CF0FF :102830002DC001F12EC000F1D89001330033D890A3 :1028400001330033010190EC3BF02FC182F404010D :10285000300E822770EC0FF030C182F40401300E8C :10286000822770EC0FF031C182F40401300E822710 :1028700070EC0FF032C182F40401300E822770EC4C :102880000FF033C182F40401300E822770EC0FF098 :102890001BEF34F0FC0E08EC0CF0E8CF0BF003015A :1028A0008351520AD8B481EF14F003018351720AA4 :1028B000D8B484EF14F003018351500AD8B487EFE1 :1028C00014F003018351700AD8B48AEF14F00301A5 :1028D0008351550AD8B48DEF14F003018351750A62 :1028E000D8B490EF14F003018351430AD8B499EFA0 :1028F00014F003018351630AD8B49CEF14F0A5EFE0 :1029000014F00B909FEF14F00B809FEF14F00B92DC :102910009FEF14F00B829FEF14F00B949FEF14F0D5 :102920000B849FEF14F00B969FEF14F00B869FEF34 :1029300014F00B989FEF14F00B889FEF14F0FC0E2F :102940000C6E0BC00BF0F1EC0BF00401590E826F12 :1029500070EC0FF01190119211941198FC0E08EC8C :102960000CF0E8CF0BF00BA011800BA211820BA48E :1029700011840BA8118811A0C5EF14F00401520EA8 :10298000826F70EC0FF0CAEF14F00401720E826FC8 :1029900070EC0FF011A8D4EF14F00401430E826F15 :1029A00070EC0FF0D9EF14F00401630E826F70EC3D :1029B0000FF011A2E3EF14F00401500E826F70ECDF :1029C0000FF0E8EF14F00401700E826F70EC0FF05E :1029D00011A4F2EF14F00401550E826F70EC0FF0A9 :1029E000F7EF14F00401750E826F70EC0FF01BEF1F :1029F00034F004016D0E826F70EC0FF0030183510F :102A0000300AD8B451EF15F003018351310AD8B41C :102A100064EF15F003018351320AD8B477EF15F053 :102A20001DEF34F004014D0E826F70EC0FF048EC96 :102A30003CF084C331F185C332F186C333F1010127 :102A4000296B55EC3CF0CCEC3BF003018351300A90 :102A5000D8B439EF15F003018351310AD8B441EFEE :102A600015F003018351320AD8B449EF15F01DEF78 :102A700034F0FD0E0C6E00C10BF0F1EC0BF051EFD9 :102A800015F0FE0E0C6E00C10BF0F1EC0BF064EFD4 :102A900015F0FF0E0C6E00C10BF0F1EC0BF077EFB0 :102AA00015F00401300E826F70EC0FF004012C0E53 :102AB000826F70EC0FF007EC3CF0FD0E08EC0CF0B0 :102AC000E8CF00F188EF15F00401310E826F70EC51 :102AD0000FF004012C0E826F70EC0FF007EC3CF04D :102AE000FE0E08EC0CF0E8CF00F188EF15F00401C1 :102AF000320E826F70EC0FF007EC3CF004012C0EEC :102B0000826F70EC0FF0FF0E08EC0CF0E8CF00F1D4 :102B100090EC3BF031C182F40401300E822770EC5E :102B20000FF032C182F40401300E822770EC0FF0F6 :102B300033C182F40401300E822770EC0FF01BEFDA :102B400034F003018351300AD8B446EF17F0030183 :102B50008351310AD8B47DEF17F003018351320A53 :102B6000D8B432EF19F003018351330AD8B4E7EF38 :102B70001AF003018351340AD8B48DEF1BF003011E :102B80008351730AD8B428EF16F003018351760AF3 :102B9000D8B42AEF16F003018351740AD8B415EFA4 :102BA00016F003018351540AD8B4DAEF15F0D8A413 :102BB0001DEF34F00401760E826F70EC0FF004010B :102BC000540E826F70EC0FF007840001880E0C6EBB :102BD00048EC3CF02981030184512D0AD8B4F3EF6D :102BE00015F00101299185C32FF186C330F187C308 :102BF00031F188C332F189C333F155EC3CF0CCECB0 :102C00003BF000C10BF0F1EC0BF001C10BF0F1EC6B :102C10000BF0880E08EC0CF0E8CF40F6890E08ECBB :102C20000CF0E8CF41F620EF16F00401760E826F2B :102C300070EC0FF00401740E826F70EC0FF00784DB :102C40000001880E0C6E0FEC0CF00794D4EF27F007 :102C500028EC16F00401760E826F70EC0FF0040180 :102C6000760E826F70EC0FF007844AEC38F00401A6 :102C70002C0E826F70EC0FF00101036B026B3BC6F0 :102C800001F13AC600F101AF4BEF16F00101FF0E62 :102C9000026FFF0E036F90EC3BF0296752EF16F0C6 :102CA00057EF16F004012D0E826F70EC0FF02FC15C :102CB00082F40401300E822770EC0FF030C182F4F0 :102CC0000401300E822770EC0FF031C182F4040150 :102CD000300E822770EC0FF032C182F40401300E06 :102CE000822770EC0FF033C182F40401300E82278A :102CF00070EC0FF004012C0E826F70EC0FF00101EC :102D0000036B026B3DC601F13CC600F101AF8EEFD3 :102D100016F00101FF0E026FFF0E036F90EC3BF007 :102D2000296795EF16F09AEF16F004012D0E826FC9 :102D300070EC0FF02FC182F40401300E822770EC8A :102D40000FF030C182F40401300E822770EC0FF0D6 :102D500031C182F40401300E822770EC0FF032C1D1 :102D600082F40401300E822770EC0FF033C182F43C :102D70000401300E822770EC0FF004012C0E826FDC :102D800070EC0FF00101036B026B3FC601F13EC610 :102D900000F101AFD1EF16F00101FF0E026FFF0E3F :102DA000036F90EC3BF02967D8EF16F0DDEF16F0DB :102DB00004012D0E826F70EC0FF02FC182F404011C :102DC000300E822770EC0FF030C182F40401300E17 :102DD000822770EC0FF031C182F40401300E82279B :102DE00070EC0FF032C182F40401300E822770ECD7 :102DF0000FF033C182F40401300E822770EC0FF023 :102E000004012C0E826F70EC0FF00101036B026B5A :102E100037C601F136C600F101AF14EF17F001011A :102E2000FF0E026FFF0E036F90EC3BF029671BEF64 :102E300017F020EF17F004012D0E826F70EC0FF0E9 :102E40002FC182F40401300E822770EC0FF030C1E4 :102E500082F40401300E822770EC0FF031C182F44D :102E60000401300E822770EC0FF032C182F40401AD :102E7000300E822770EC0FF033C182F40401300E63 :102E8000822770EC0FF00794D4EF27F00401760E40 :102E9000826F70EC0FF00401300E826F70EC0FF057 :102EA00004012C0E826F70EC0FF08EEC3CF007ECFE :102EB0003CF000C600F101C601F190EC3BF030C1DE :102EC00082F40401300E822770EC0FF031C182F4DD :102ED0000401300E822770EC0FF032C182F404013D :102EE000300E822770EC0FF033C182F40401300EF3 :102EF000822770EC0FF0D4EF27F00401760E826F7A :102F000070EC0FF00401310E826F70EC0FF007844B :102F10000101036B026B02C600F103C601F101AFB0 :102F200096EF17F0FF0E026FFF0E036F0101076BA4 :102F3000066B04C604F105C605F105AFA4EF17F052 :102F4000FF0E066FFF0E076FF7EC3AF00101076BFB :102F5000066B06C604F107C605F105AFB4EF17F01E :102F6000FF0E066FFF0E076FF7EC3AF00101076BDB :102F7000066B08C604F109C605F105AFC4EF17F0EA :102F8000FF0E066FFF0E076FF7EC3AF0D8900101C5 :102F90000333023301330033D8900101033302338A :102FA0000133003304012C0E826F70EC0FF001012D :102FB000036B026B01C101F100C100F101AFE6EF4B :102FC00017F00101FF0E026FFF0E036F90EC3BF054 :102FD0002967EDEF17F0F2EF17F004012D0E826F65 :102FE00070EC0FF02FC182F40401300E822770ECD8 :102FF0000FF030C182F40401300E822770EC0FF024 :1030000031C182F40401300E822770EC0FF032C11E :1030100082F40401300E822770EC0FF033C182F489 :103020000401300E822770EC0FF00101036B026B7C :103030000AC600F10BC601F101AF23EF18F0FF0E35 :10304000026FFF0E036F0101076B066B0CC604F1E4 :103050000DC605F105AF31EF18F0FF0E066FFF0E3C :10306000076FF7EC3AF00101076B066B0EC604F12F :103070000FC605F105AF41EF18F0FF0E066FFF0E0A :10308000076FF7EC3AF00101076B066B10C604F10D :1030900011C605F105AF51EF18F0FF0E066FFF0ED8 :1030A000076FF7EC3AF0D890010103330233013394 :1030B0000033D8900101033302330133003304019C :1030C0002C0E826F70EC0FF00101036B026B01C1DB :1030D00001F100C100F101AF73EF18F00101FF0E23 :1030E000026FFF0E036F90EC3BF029677AEF18F048 :1030F0007FEF18F004012D0E826F70EC0FF02FC1DE :1031000082F40401300E822770EC0FF030C182F49B :103110000401300E822770EC0FF031C182F40401FB :10312000300E822770EC0FF032C182F40401300EB1 :10313000822770EC0FF033C182F40401300E822735 :1031400070EC0FF00101036B026B12C600F113C6A5 :1031500001F101AFB0EF18F0FF0E026FFF0E036F29 :103160000101076B066B14C604F115C605F105AF26 :10317000BEEF18F0FF0E066FFF0E076FF7EC3AF088 :103180000101076B066B16C604F117C605F105AF02 :10319000CEEF18F0FF0E066FFF0E076FF7EC3AF058 :1031A0000101076B066B18C604F119C605F105AFDE :1031B000DEEF18F0FF0E066FFF0E076FF7EC3AF028 :1031C000D89001010333023301330033D890010159 :1031D000033302330133003304012C0E826F70EC91 :1031E0000FF00101036B026B01C101F100C100F19D :1031F00001AF00EF19F00101FF0E026FFF0E036F28 :1032000090EC3BF0296707EF19F00CEF19F004017F :103210002D0E826F70EC0FF02FC182F40401300E7E :10322000822770EC0FF030C182F40401300E822747 :1032300070EC0FF031C182F40401300E822770EC83 :103240000FF032C182F40401300E822770EC0FF0CF :1032500033C182F40401300E822770EC0FF0079422 :10326000D4EF27F00401760E826F70EC0FF00401AA :10327000320E826F70EC0FF007840101036B026B5A :103280001AC600F11BC601F101AF4BEF19F0FF0E9A :10329000026FFF0E036F0101076B066B1CC604F182 :1032A0001DC605F105AF59EF19F0FF0E066FFF0EB1 :1032B000076FF7EC3AF00101076B066B1EC604F1CD :1032C0001FC605F105AF69EF19F0FF0E066FFF0E7F :1032D000076FF7EC3AF00101076B066B20C604F1AB :1032E00021C605F105AF79EF19F0FF0E066FFF0E4D :1032F000076FF7EC3AF0D890010103330233013342 :103300000033D89001010333023301330033040149 :103310002C0E826F70EC0FF00101036B026B01C188 :1033200001F100C100F101AF9BEF19F00101FF0EA7 :10333000026FFF0E036F90EC3BF02967A2EF19F0CC :10334000A7EF19F004012D0E826F70EC0FF02FC162 :1033500082F40401300E822770EC0FF030C182F449 :103360000401300E822770EC0FF031C182F40401A9 :10337000300E822770EC0FF032C182F40401300E5F :10338000822770EC0FF033C182F40401300E8227E3 :1033900070EC0FF00101036B026B22C600F123C633 :1033A00001F101AFD8EF19F0FF0E026FFF0E036FAE :1033B0000101076B066B24C604F125C605F105AFB4 :1033C000E6EF19F0FF0E066FFF0E076FF7EC3AF00D :1033D0000101076B066B26C604F127C605F105AF90 :1033E000F6EF19F0FF0E066FFF0E076FF7EC3AF0DD :1033F0000101076B066B28C604F129C605F105AF6C :1034000006EF1AF0FF0E066FFF0E076FF7EC3AF0AB :10341000D89001010333023301330033D890010106 :10342000033302330133003304012C0E826F70EC3E :103430000FF00101036B026B01C101F100C100F14A :1034400001AF28EF1AF00101FF0E026FFF0E036FAC :1034500090EC3BF029672FEF1AF034EF1AF00401DB :103460002D0E826F70EC0FF02FC182F40401300E2C :10347000822770EC0FF030C182F40401300E8227F5 :1034800070EC0FF031C182F40401300E822770EC31 :103490000FF032C182F40401300E822770EC0FF07D :1034A00033C182F40401300E822770EC0FF0010169 :1034B000036B026B2AC600F12BC601F101AF65EF69 :1034C0001AF0FF0E026FFF0E036F0101076B066B10 :1034D0002CC604F12DC605F105AF73EF1AF0FF0EEF :1034E000066FFF0E076FF7EC3AF00101076B066BF2 :1034F0002EC604F12FC605F105AF83EF1AF0FF0EBB :10350000066FFF0E076FF7EC3AF00101076B066BD1 :1035100030C604F131C605F105AF93EF1AF0FF0E86 :10352000066FFF0E076FF7EC3AF0D89001010333F6 :10353000023301330033D8900101033302330133E6 :10354000003304012C0E826F70EC0FF00101036B4D :10355000026B01C101F100C100F101AFB5EF1AF03A :103560000101FF0E026FFF0E036F90EC3BF0296725 :10357000BCEF1AF0C1EF1AF004012D0E826F70EC4F :103580000FF02FC182F40401300E822770EC0FF08F :1035900030C182F40401300E822770EC0FF031C18B :1035A00082F40401300E822770EC0FF032C182F4F5 :1035B0000401300E822770EC0FF033C182F4040155 :1035C000300E822770EC0FF00794D4EF27F004013F :1035D000760E826F70EC0FF00401330E826F70EC88 :1035E0000FF004012C0E826F70EC0FF085C382F493 :1035F00070EC0FF0640E0D6E03018551320A02E18A :103600006A0E0D6E03018551330A02E1700E0D6ED4 :1036100003018551340A02E1760E0D6E03018551D6 :10362000350A02E17C0E0D6E03018551360A02E176 :10363000820E0D6E03018651780A65E00DC00CF014 :1036400048EC3CF02981030187512D0AD8B42BEFB7 :103650001BF00101299188C32FF189C330F18AC37E :1036600031F18BC332F18CC333F155EC3CF0CCEC2F :103670003BF000C10BF0F1EC0BF001C10BF0F1ECF1 :103680000BF048EC3CF0298103018E512D0AD8B48F :103690004CEF1BF0010129918FC32FF190C330F142 :1036A00091C331F192C332F193C333F155EC3CF045 :1036B000CCEC3BF000C10BF0F1EC0BF001C10BF0D6 :1036C000F1EC0BF048EC3CF02981030195512D0AF7 :1036D000D8B46DEF1BF00101299196C32FF197C368 :1036E00030F198C331F199C332F19AC333F155ECFB :1036F0003CF0CCEC3BF000C10BF0F1EC0BF001C165 :103700000BF0F1EC0BF00DC00CF00FEC0CF00FEC2B :103710000CF00FEC0CF0D4EF27F00401760E826F62 :1037200070EC0FF00401340E826F70EC0FF00301A7 :103730008451780AD8B465EF1CF03E0E0C6E48EC4C :103740003CF02981030185512D0AD8B4AAEF1BF062 :103750000101299186C32FF187C330F188C331F16C :1037600089C332F18AC333F155EC3CF0CCEC3BF029 :1037700000C10BF0F1EC0BF001C10BF0F1EC0BF020 :1037800048EC3CF0298103018C512D0AD8B4CBEFD1 :103790001BF0010129918DC32FF18EC330F18FC32E :1037A00031F190C332F191C333F155EC3CF0CCECE4 :1037B0003BF000C10BF0F1EC0BF001C10BF0F1ECB0 :1037C0000BF048EC3CF02981030193512D0AD8B449 :1037D000ECEF1BF00101299194C32FF195C330F157 :1037E00096C331F197C332F198C333F155EC3CF0F5 :1037F000CCEC3BF000C10BF0F1EC0BF001C10BF095 :10380000F1EC0BF048EC3CF0298103019A512D0AB0 :10381000D8B40DEF1CF0010129919BC32FF19CC37B :1038200030F19DC331F19EC332F19FC333F155ECAA :103830003CF0CCEC3BF000C10BF0F1EC0BF001C123 :103840000BF0F1EC0BF048EC3CF029810301A151A5 :103850002D0AD8B42EEF1CF001012991A2C32FF13B :10386000A3C330F1A4C331F1A5C332F1A6C333F130 :1038700055EC3CF0CCEC3BF000C10BF0F1EC0BF064 :1038800001C10BF0F1EC0BF048EC3CF02981030195 :10389000A8512D0AD8B44FEF1CF001012991A9C3FA :1038A0002FF1AAC330F1ABC331F1ACC332F1ADC3D8 :1038B00033F155EC3CF0CCEC3BF000C10BF0F1ECFB :1038C0000BF001C10BF0F1EC0BF03E0E0C6E0FECA7 :1038D0000CF00FEC0CF00FEC0CF00FEC0CF00FEC0C :1038E0000CF00FEC0CF0D4EF27F003018351300AF9 :1038F000D8B4C9EF21F003018351310AD8B4F6EFEF :1039000022F003018351320AD8B464EF23F003019B :103910008351330AD8B474EF23F003018351340A7E :10392000D8B4CFEF23F003018351350AD8B478EF30 :1039300027F003018351360AD8B4A6EF27F003011C :103940008351370AD8B4A1EF1FF003018351380A1D :10395000D8B43FEF20F003018351440AD8B4CDEF2F :103960001DF003018351640AD8B4EDEF1DF003018B :103970008351460AD8B47DEF26F0030183514D0AE6 :10398000D8B41AEF1EF0030183516D0AD8B434EF96 :103990001EF0030183515A0AD8B470EF22F00301DC :1039A0008351490AD8B4A6EF28F003018351500A85 :1039B000D8B4D8EF27F003018351540AD8B451EF9B :1039C00028F003018351630AD8B454EF1EF00301B9 :1039D0008351430AD8B44CEF1FF003018351730A9B :1039E000D8B452EF1EF003018351610AD8B41AEF24 :1039F0001DF003018351650AD8B419EF22F00301C9 :103A00008351450AD8B427EF22F003018351620A9B :103A1000D8B435EF22F003018351420AD8B443EF02 :103A200022F003018351760AD8B451EF22F0D8A4D2 :103A30001DEF34F004014C0E826F70EC0FF00401A6 :103A4000610E826F70EC0FF088EC3EF004012C0EDA :103A5000826F70EC0FF007EC3CF0AFC500F1010194 :103A600090EC3BF031C182F40401300E822770ECFF :103A70000FF032C182F40401300E822770EC0FF097 :103A800033C182F40401300E822770EC0FF0040180 :103A90002C0E826F70EC0FF007EC3CF0B0C500F11B :103AA000010190EC3BF031C182F40401300E822719 :103AB00070EC0FF032C182F40401300E822770ECFA :103AC0000FF033C182F40401300E822770EC0FF046 :103AD00004012C0E826F70EC0FF007EC3CF0B1C5C6 :103AE00000F1010190EC3BF031C182F40401300E91 :103AF000822770EC0FF032C182F40401300E82276D :103B000070EC0FF033C182F40401300E822770ECA8 :103B10000FF004012C0E826F70EC0FF007EC3CF0FC :103B2000B2C500F1010190EC3BF031C182F4040117 :103B3000300E822770EC0FF032C182F40401300E97 :103B4000822770EC0FF033C182F40401300E82271B :103B500070EC0FF004012C0E826F70EC0FF007EC8C :103B60003CF0B6C500F1010190EC3BF031C182F4AC :103B70000401300E822770EC0FF032C182F4040190 :103B8000300E822770EC0FF033C182F40401300E46 :103B9000822770EC0FF0D4EF27F003018451300A34 :103BA000D8B4D9EF1DF003018451310AD8B4DDEF48 :103BB0001DF015921596DEEF1DF01582C70E08EC6C :103BC0000CF0E8CF00F10101008115A20091C70EB1 :103BD0000C6E00C10BF0F1EC0BF0C70E08EC0CF012 :103BE000E8CF00F1010100B1F9EF1DF01592FAEFF5 :103BF0001DF0158204014C0E826F70EC0FF0040171 :103C0000640E826F70EC0FF004012C0E826F70EC6A :103C10000FF015B213EF1EF00401300E826F70EC3E :103C20000FF018EF1EF00401310E826F70EC0FF0F0 :103C30001BEF34F048EC3CF084C333F155EC3CF01E :103C4000CCEC3BF0200E0C6E00C10BF0F1EC0BF055 :103C500000C12FF505012F51000A06E005012F5183 :103C6000010A02E022EC3FF004014C0E826F70EC7E :103C70000FF004014D0E826F70EC0FF004012C0E5A :103C8000826F70EC0FF007EC3CF02FC500F190EC68 :103C90003BF033C182F40401300E822770EC0FF048 :103CA000D4EF27F000EF47F004014C0E826F70EC68 :103CB0000FF00401630E826F70EC0FF0E0EC3DF04A :103CC00004012C0E826F70EC0FF069EC1EF0D4EF43 :103CD00027F007EC3CF0B5C500F10101003B0F0EE9 :103CE000001790EC3BF033C182F40401300E8227C0 :103CF00070EC0FF0B5C500F101010F0E01010017C6 :103D000090EC3BF033C182F40401300E822770EC5A :103D10000FF004012D0E826F70EC0FF0B4C500F1AE :103D20000101003B0F0E001790EC3BF033C182F411 :103D30000401300E822770EC0FF0B4C500F10101D0 :103D40000F0E0101001790EC3BF033C182F4040127 :103D5000300E822770EC0FF004012D0E826F70EC94 :103D60000FF0B3C500F10101003B0F0E001790ECFE :103D70003BF033C182F40401300E822770EC0FF067 :103D8000B3C500F101010F0E0101001790EC3BF0EB :103D900033C182F40401300E822770EC0FF004016D :103DA000200E826F70EC0FF0B2C500F10F0E010112 :103DB000001790EC3BF033C182F40401300E8227EF :103DC00070EC0FF00401200E826F70EC0FF0B1C5A3 :103DD00000F101010101003B0F0E001790EC3BF0D8 :103DE00033C182F40401300E822770EC0FF0B1C5AC :103DF00000F101010F0E0101001790EC3BF033C1FF :103E000082F40401300E822770EC0FF004013A0EA8 :103E1000826F70EC0FF0B0C500F10101003B0F0E96 :103E2000001790EC3BF033C182F40401300E82277E :103E300070EC0FF0B0C500F101010F0E0101001789 :103E400090EC3BF033C182F40401300E822770EC19 :103E50000FF004013A0E826F70EC0FF0AFC500F165 :103E60000101003B0F0E001790EC3BF033C182F4D0 :103E70000401300E822770EC0FF0AFC500F1010194 :103E80000F0E001790EC3BF033C182F40401300EAA :103E9000822770EC0FF0120084C3E8FF0F0BE83AA2 :103EA000E8CFB5F585C3E8FF0F0B0501B51387C350 :103EB000E8FF0F0BE83AE8CFB4F588C3E8FF0F0B33 :103EC0000501B4138AC3E8FF0F0BE83AE8CFB3F556 :103ED0008BC3E8FF0F0B0501B3138DC3E8FF0F0B76 :103EE000E8CFB2F58FC3E8FF0F0BE83AE8CFB1F5A2 :103EF00090C3E8FF0F0B0501B11392C3E8FF0F0B4E :103F0000E83AE8CFB0F593C3E8FF0F0B0501B01313 :103F100095C3E8FF0F0BE83AE8CFAFF596C3E8FF8B :103F20000F0B0501AF133BEC3EF004014C0E826F0A :103F300070EC0FF00401430E826F70EC0FF05EEF37 :103F40001EF0078404014C0E826F70EC0FF0040128 :103F5000370E826F70EC0FF004012C0E826F70EC44 :103F60000FF005012E51130A06E005012E51170A24 :103F70000DE03CEF20F00101000E006F000E016F1C :103F8000100E026F000E036FCFEF1FF00101000E45 :103F9000006F000E016F000E026F010E036F90ECB8 :103FA0003BF02AC182F40401300E822770EC0FF03E :103FB0002BC182F40401300E822770EC0FF02CC16B :103FC00082F40401300E822770EC0FF02DC182F4D0 :103FD0000401300E822770EC0FF02EC182F4040130 :103FE000300E822770EC0FF02FC182F40401300EE6 :103FF000822770EC0FF030C182F40401300E82276A :1040000070EC0FF031C182F40401300E822770ECA5 :104010000FF032C182F40401300E822770EC0FF0F1 :1040200033C182F40401300E822770EC0FF00401DA :104030002C0E826F70EC0FF00101200E006F000E4D :10404000016F000E026F000E036F90EC3BF031C168 :1040500082F40401300E822770EC0FF032C182F43A :104060000401300E822770EC0FF033C182F404019A :10407000300E822770EC0FF00794D4EF27F0050183 :10408000216B226B236B246B04014C0E826F70EC4E :104090000FF00401380E826F70EC0FF004012C0E4B :1040A000826F70EC0FF00101200E006F000E016FA7 :1040B000000E026F000E036F90EC3BF02AC182F4F9 :1040C0000401300E822770EC0FF02BC182F4040142 :1040D000300E822770EC0FF02CC182F40401300EF8 :1040E000822770EC0FF02DC182F40401300E82277C :1040F00070EC0FF02EC182F40401300E822770ECB8 :104100000FF02FC182F40401300E822770EC0FF003 :1041100030C182F40401300E822770EC0FF031C1FF :1041200082F40401300E822770EC0FF032C182F469 :104130000401300E822770EC0FF033C182F40401C9 :10414000300E822770EC0FF004012C0E826F70ECA1 :104150000FF025C500F126C501F127C502F128C5DC :1041600003F10101200E046F000E056F000E066FB3 :10417000000E076F23EC3BF000C133F501C134F5AD :1041800002C135F503C136F590EC3BF02AC182F44B :104190000401300E822770EC0FF02BC182F4040171 :1041A000300E822770EC0FF02CC182F40401300E27 :1041B000822770EC0FF02DC182F40401300E8227AB :1041C00070EC0FF02EC182F40401300E822770ECE7 :1041D0000FF02FC182F40401300E822770EC0FF033 :1041E00030C182F40401300E822770EC0FF031C12F :1041F00082F40401300E822770EC0FF032C182F499 :104200000401300E822770EC0FF033C182F40401F8 :10421000300E822770EC0FF07AEC0FF00501336757 :1042200019EF21F0346719EF21F0356719EF21F00C :10423000366702D0B8EF21F0129E129C21C500F122 :1042400022C501F123C502F124C503F1899A400E6C :10425000C76E200EC66E9E96C69E0B0EC96EFF0ED2 :104260009EB602D0E82EFCD79E96C69E02C1C9FF1C :10427000FF0E9EB602D0E82EFCD79E96C69E01C1C8 :10428000C9FFFF0E9EB602D0E82EFCD79E96C69EB2 :1042900000C1C9FFFF0E9EB602D0E82EFCD79E9645 :1042A000C69EC952FF0E9EB602D0E82EFCD705016D :1042B000200E326F040114EE00F080517F0BE126D6 :1042C0009E96C69EC952FF0E9EB602D0E82EFCD71F :1042D000C9CFE7FF0401802B0501322F5AEF21F0EF :1042E000898A33C500F134C501F135C502F136C5FF :1042F00003F10101010E046F000E056F000E066F41 :10430000000E076FF2EC3AF000C133F501C134F54D :1043100002C135F503C136F50501336797EF21F08A :10432000346797EF21F0356797EF21F0366702D0B9 :10433000B8EF21F021C500F122C501F123C502F13A :1043400024C503F10101200E046F000E056F000E5D :10435000066F000E076FF7EC3AF000C121F501C1BE :1043600022F502C123F503C124F5128E1DEF34F0AE :104370000401450E826F70EC0FF004014F0E826F46 :1043800070EC0FF00401460E826F70EC0FF0D4EF6A :1043900027F007845AEC46F007EC3CF02DC500F1FD :1043A00090EC3BF004014C0E826F70EC0FF00401B6 :1043B000300E826F70EC0FF004012C0E826F70ECE7 :1043C0000FF031C182F40401300E822770EC0FF03F :1043D00032C182F40401300E822770EC0FF033C139 :1043E00082F40401300E822770EC0FF004012C0ED1 :1043F000826F70EC0FF007EC3CF02EC500F190ECF2 :104400003BF031C182F40401300E822770EC0FF0D2 :1044100032C182F40401300E822770EC0FF033C1F8 :1044200082F40401300E822770EC0FF00794D4EF71 :1044300027F004014C0E826F70EC0FF00401650E42 :10444000826F70EC0FF0FEEC3FF0D4EF27F0040128 :104450004C0E826F70EC0FF00401450E826F70EC11 :104460000FF015EC40F0D4EF27F004014C0E826FF2 :1044700070EC0FF00401620E826F70EC0FF043ECF1 :1044800040F0D4EF27F004014C0E826F70EC0FF077 :104490000401420E826F70EC0FF02CEC40F0D4EF70 :1044A00027F004014C0E826F70EC0FF00401760EC1 :1044B000826F70EC0FF004012C0E826F70EC0FF025 :1044C00010A807D00401310E826F70EC0FF0D4EF0A :1044D00027F00401300E826F70EC0FF0D4EF27F05C :1044E00004014C0E826F70EC0FF004015A0E826FC3 :1044F00070EC0FF004012C0E826F70EC0FF05AEC90 :1045000046F007EC3CF005012E51130A06E00501C8 :104510002E51170A0DE0A1EF22F00101000E006FED :10452000000E016F100E026F000E036FA1EF22F05C :104530000101000E006F000E016F000E026F010EF0 :10454000036F0101200E046F000E056F000E066F51 :10455000000E076F23EC3BF090EC3BF02AC182F495 :104560000401300E822770EC0FF02BC182F404019D :10457000300E822770EC0FF02CC182F40401300E53 :10458000822770EC0FF02DC182F40401300E8227D7 :1045900070EC0FF02EC182F40401300E822770EC13 :1045A0000FF02FC182F40401300E822770EC0FF05F :1045B00030C182F40401300E822770EC0FF031C15B :1045C00082F40401300E822770EC0FF032C182F4C5 :1045D0000401300E822770EC0FF033C182F4040125 :1045E000300E822770EC0FF0D4EF27F0078404011F :1045F0004C0E826F70EC0FF00401310E826F70EC84 :104600000FF004012C0E826F70EC0FF025C500F145 :1046100026C501F127C502F128C503F10101200ECD :10462000046F000E056F000E066F000E076F23EC7F :104630003BF090EC3BF02AC182F40401300E82275B :1046400070EC0FF02BC182F40401300E822770EC65 :104650000FF02CC182F40401300E822770EC0FF0B1 :104660002DC182F40401300E822770EC0FF02EC1B0 :1046700082F40401300E822770EC0FF02FC182F417 :104680000401300E822770EC0FF030C182F4040177 :10469000300E822770EC0FF031C182F40401300E2D :1046A000822770EC0FF032C182F40401300E8227B1 :1046B00070EC0FF033C182F40401300E822770ECED :1046C0000FF00794D4EF27F0078404014C0E826F9B :1046D00070EC0FF00401320E826F70EC0FF032ECD0 :1046E00042F00794D4EF27F0078437B07AEF23F035 :1046F0008DEF23F0010E166E04014C0E826F70ECEC :104700000FF00401330E826F70EC0FF08FEC42F06B :10471000000E166E079401EF23F0020E166E8FEC5A :1047200042F08B800501010E306F3C0E316F0101AC :104730005E6B5F6B606B616B626B636B646B656B15 :10474000666B676B686B696B536B546BCF6ACE6A31 :104750000F9A0F9C0F9E030E166E04014C0E826F73 :1047600070EC0FF00401330E826F70EC0FF0040157 :104770002C0E826F70EC0FF004012D0E826F70EC26 :104780000FF00401310E826F70EC0FF01BEF34F06C :104790008FEC42F0000E166E8B901DEF34F0078404 :1047A00004014C0E826F70EC0FF00401340E826F26 :1047B00070EC0FF004012C0E826F70EC0FF048ECDF :1047C0003CF084C32AF185C32BF186C32CF187C347 :1047D0002DF188C32EF189C32FF18AC330F18BC329 :1047E00031F18CC332F18DC333F10101296B55ECEA :1047F0003CF0CCEC3BF0200E046F000E056F000E79 :10480000066F000E076F03EC3BF000C121F501C1FC :1048100022F502C123F503C124F50DEC46F038C59D :10482000AFF539C5B0F53AC5B1F53BC5B2F53CC5F4 :10483000B3F53DC5B4F53EC5B5F569EC1EF0040110 :104840002C0E826F70EC0FF03FC500F140C501F1F6 :1048500041C502F142C503F10101000E046F000ED3 :10486000056F010E066F000E076F23EC3BF090EC16 :104870003BF029673EEF24F043EF24F004012D0EB6 :10488000826F70EC0FF030C182F40401300E822789 :1048900070EC0FF031C182F40401300E822770EC0D :1048A0000FF004012E0E826F70EC0FF032C182F413 :1048B0000401300E822770EC0FF033C182F4040142 :1048C000300E822770EC0FF004012C0E826F70EC1A :1048D0000FF007EC3CF043C500F144C501F147EC93 :1048E00035F004012C0E826F70EC0FF007EC3CF0F9 :1048F00045C500F190EC3BF031C182F40401300E6B :10490000822770EC0FF032C182F40401300E82274E :1049100070EC0FF033C182F40401300E822770EC8A :104920000FF004012C0E826F70EC0FF00101036B8D :10493000026B4CC501F14BC500F101AFA5EF24F0AE :104940000101FF0E026FFF0E036F90EC3BF0296731 :10495000ACEF24F0B1EF24F004012D0E826F70EC67 :104960000FF02FC182F40401300E822770EC0FF09B :1049700030C182F40401300E822770EC0FF031C197 :1049800082F40401300E822770EC0FF032C182F401 :104990000401300E822770EC0FF033C182F4040161 :1049A000300E822770EC0FF004012C0E826F70EC39 :1049B0000FF00101036B026B4EC501F14DC500F113 :1049C00001AFE8EF24F00101FF0E026FFF0E036F4D :1049D00090EC3BF02967EFEF24F0F4EF24F00401B2 :1049E0002D0E826F70EC0FF02FC182F40401300E97 :1049F000822770EC0FF030C182F40401300E822760 :104A000070EC0FF031C182F40401300E822770EC9B :104A10000FF032C182F40401300E822770EC0FF0E7 :104A200033C182F40401300E822770EC0FF00401D0 :104A30002C0E826F70EC0FF00101036B026B50C5FE :104A400001F14FC500F101AF2BEF25F00101FF0E81 :104A5000026FFF0E036F90EC3BF0296732EF25F0F9 :104A600037EF25F004012D0E826F70EC0FF02FC18F :104A700082F40401300E822770EC0FF030C182F412 :104A80000401300E822770EC0FF031C182F4040172 :104A9000300E822770EC0FF032C182F40401300E28 :104AA000822770EC0FF033C182F40401300E8227AC :104AB00070EC0FF004012C0E826F70EC0FF001010E :104AC000036B026B52C501F151C500F101AF6EEFEE :104AD00025F00101FF0E026FFF0E036F90EC3BF01B :104AE000296775EF25F07AEF25F004012D0E826F0E :104AF00070EC0FF02FC182F40401300E822770ECAD :104B00000FF030C182F40401300E822770EC0FF0F8 :104B100031C182F40401300E822770EC0FF032C1F3 :104B200082F40401300E822770EC0FF033C182F45E :104B30000401300E822770EC0FF004012C0E826FFE :104B400070EC0FF00101036B026B54C501F153C50A :104B500000F101AFB1EF25F00101FF0E026FFF0E72 :104B6000036F90EC3BF02967B8EF25F0BDEF25F01F :104B700004012D0E826F70EC0FF02FC182F404013E :104B8000300E822770EC0FF030C182F40401300E39 :104B9000822770EC0FF031C182F40401300E8227BD :104BA00070EC0FF032C182F40401300E822770ECF9 :104BB0000FF033C182F40401300E822770EC0FF045 :104BC00004012C0E826F70EC0FF00101036B026B7D :104BD00056C501F155C500F101AFF4EF25F0010113 :104BE000FF0E026FFF0E036F90EC3BF02967FBEFA7 :104BF00025F000EF26F004012D0E826F70EC0FF00F :104C00002FC182F40401300E822770EC0FF030C106 :104C100082F40401300E822770EC0FF031C182F46F :104C20000401300E822770EC0FF032C182F40401CF :104C3000300E822770EC0FF033C182F40401300E85 :104C4000822770EC0FF004012C0E826F70EC0FF0D5 :104C50000101036B026B4AC501F149C500F101AFC7 :104C600037EF26F00101FF0E026FFF0E036F90EC8D :104C70003BF029673EEF26F043EF26F004012D0EAE :104C8000826F70EC0FF02FC182F40401300E822786 :104C900070EC0FF030C182F40401300E822770EC0A :104CA0000FF031C182F40401300E822770EC0FF056 :104CB00032C182F40401300E822770EC0FF033C150 :104CC00082F40401300E822770EC0FF004012C0EE8 :104CD000826F70EC0FF037C5E8FFE8B806D004012A :104CE000300E826F70EC0FF005D00401310E826F30 :104CF00070EC0FF00794D4EF27F048EC3CF085C33C :104D00002AF186C32BF187C32CF188C32DF189C307 :104D10002EF18AC32FF18BC330F18CC331F18DC3D7 :104D200032F18EC333F10101296B55EC3CF0CCEC30 :104D30003BF00101010E046F000E056F000E066FBF :104D4000000E076FF2EC3AF0100E046F000E056FC4 :104D5000000E066F000E076F03EC3BF000C129F553 :104D600001C12AF502C12BF503C12CF5B9EC41F0C4 :104D700004014C0E826F70EC0FF00401460E826F3E :104D800070EC0FF004012C0E826F70EC0FF025C553 :104D900000F126C501F127C502F128C503F1010183 :104DA000100E046F000E056F000E066F000E076FE9 :104DB00023EC3BF090EC3BF02AC182F40401300E6E :104DC000822770EC0FF02BC182F40401300E822791 :104DD00070EC0FF02CC182F40401300E822770ECCD :104DE0000FF02DC182F40401300E822770EC0FF019 :104DF0002EC182F40401300E822770EC0FF02FC117 :104E000082F40401300E822770EC0FF030C182F47E :104E10000401300E822770EC0FF031C182F40401DE :104E2000300E822770EC0FF032C182F40401300E94 :104E3000822770EC0FF033C182F40401300E822718 :104E400070EC0FF0D4EF27F037B029EF27F0020E07 :104E5000166E8FEC42F000011650020AD8B447EFEC :104E600027F005012F51010AD8B43DEF27F015B204 :104E700042EF27F081BA42EF27F0000E166E15843C :104E80001DEF34F0050E166E158400EF47F08B8091 :104E900001015E6B5F6B606B616B626B636B646B7C :104EA000656B666B676B686B696B536B546BCF6A32 :104EB000CE6A0F9A0F9C0F9E030E166E1DEF34F0F4 :104EC0008FEC42F005012F51010AD8B46EEF27F0A4 :104ED00015B273EF27F081BA73EF27F0000E166E4C :104EE00015841DEF34F0050E166E158400EF47F0A3 :104EF00004014C0E826F70EC0FF00401350E826FCE :104F000070EC0FF004012C0E826F70EC0FF007ECC8 :104F10003CF00784B9C500F1079490EC3BF031C137 :104F200082F40401300E822770EC0FF032C182F45B :104F30000401300E822770EC0FF033C182F40401BB :104F4000300E822770EC0FF0D4EF27F052EC42F0D5 :104F500007EC3CF037C500F190EC3BF004014C0E3F :104F6000826F70EC0FF00401360E826F70EC0FF060 :104F700004012C0E826F70EC0FF031C182F4040139 :104F8000300E822770EC0FF032C182F40401300E33 :104F9000822770EC0FF033C182F40401300E8227B7 :104FA00070EC0FF0D4EF27F07AEC0FF01DEF34F037 :104FB00004014C0E826F70EC0FF00401500E826FF2 :104FC00070EC0FF004012C0E826F70EC0FF085C3B3 :104FD0002AF186C32BF187C32CF188C32DF189C335 :104FE0002EF18AC32FF18BC330F18CC331F18DC305 :104FF00032F18EC333F1010155EC3CF0CCEC3BF0C7 :1050000003018451530A0DE0030184514D0A38E035 :105010000401780E826F70EC0FF07AEC0FF01DEF48 :1050200034F00401530E826F70EC0FF0250E0C6EFD :1050300000C10BF0F1EC0BF0260E0C6E01C10BF071 :10504000F1EC0BF0270E0C6E02C10BF0F1EC0BF043 :10505000280E0C6E03C10BF0F1EC0BF000C157F5FC :1050600001C158F502C159F503C15AF500C15BF5FC :1050700001C15CF502C15DF503C15EF5B5EF28F035 :1050800004014D0E826F70EC0FF0290E0C6E00C102 :105090000BF0F1EC0BF000C15FF500C160F5B5EF6E :1050A00028F004014C0E826F70EC0FF00401540ED6 :1050B000826F70EC0FF004012C0E826F70EC0FF019 :1050C00084C32AF185C32BF186C32CF187C32DF14C :1050D00088C32EF189C32FF18AC330F18BC331F11C :1050E0008DC332F18EC333F1010155EC3CF0CCECB1 :1050F0003BF00101000E046F000E056F010E066FFC :10510000000E076F03EC3BF0210E0C6E00C10BF09C :10511000F1EC0BF0220E0C6E01C10BF0F1EC0BF078 :10512000230E0C6E02C10BF0F1EC0BF0240E0C6E92 :1051300003C10BF0F1EC0BF000C161F501C162F5A8 :1051400002C163F503C164F5B5EF28F004014C0E0C :10515000826F70EC0FF00401490E826F70EC0FF05B :1051600004012C0E826F70EC0FF0250E08EC0CF091 :10517000E8CF00F1260E08EC0CF0E8CF01F1270E85 :1051800008EC0CF0E8CF02F1280E08EC0CF0E8CFA8 :1051900003F190EC3BF053EC39F00401730E826F95 :1051A00070EC0FF004012C0E826F70EC0FF007EC26 :1051B0003CF0290E08EC0CF0E8CF00F190EC3BF04D :1051C00053EC39F004016D0E826F70EC0FF00401A6 :1051D0002C0E826F70EC0FF05BC500F15CC501F125 :1051E0005DC502F15EC503F190EC3BF053EC39F084 :1051F0000401730E826F70EC0FF004012C0E826FAD :1052000070EC0FF007EC3CF060C500F190EC3BF067 :1052100053EC39F004016D0E826F70EC0FF0040155 :105220002C0E826F70EC0FF061C500F162C501F1C8 :1052300063C502F164C503F138EC34F004012C0EAF :10524000826F70EC0FF07AEC0FF01DEF34F083C337 :105250002AF184C32BF185C32CF186C32DF187C3BA :105260002EF188C32FF189C330F18AC331F18BC38A :1052700032F18CC333F1010155EC3CF0CCEC3BF046 :10528000160E0C6E00C10BF0F1EC0BF0170E0C6E4D :1052900001C10BF0F1EC0BF0180E0C6E02C10BF01B :1052A000F1EC0BF0190E0C6E03C10BF0F1EC0BF0EE :1052B00000C18EF101C18FF102C190F103C191F1E2 :1052C00000C192F101C193F102C194F103C195F1C2 :1052D00009EF2AF083C32AF184C32BF185C32CF193 :1052E00086C32DF187C32EF188C32FF189C330F116 :1052F0008AC331F18BC332F18CC333F1010155EC18 :105300003CF0CCEC3BF000C18EF101C18FF102C149 :1053100090F103C191F100C192F101C193F102C179 :1053200094F103C195F109EF2AF083C32AF184C3F4 :105330002BF185C32CF186C32DF187C32EF188C3D1 :105340002FF189C330F18AC331F18CC332F18DC39F :1053500033F1010155EC3CF0CCEC3BF00101000EC7 :10536000046F000E056F010E066F000E076F03EC51 :105370003BF01A0E0C6E00C10BF0F1EC0BF01B0EA3 :105380000C6E01C10BF0F1EC0BF01C0E0C6E02C1A7 :105390000BF0F1EC0BF01D0E0C6E03C10BF0F1ECF9 :1053A0000BF000C196F101C197F102C198F103C160 :1053B00099F109EF2AF083C32AF184C32BF185C345 :1053C0002CF186C32DF187C32EF188C32FF189C339 :1053D00030F18AC331F18CC332F18DC333F1010155 :1053E00055EC3CF0CCEC3BF00101000E046F000EDC :1053F000056F010E066F000E076F03EC3BF000C156 :1054000096F101C197F102C198F103C199F109EF39 :105410002AF0160E08EC0CF0E8CF00F1170E08EC9D :105420000CF0E8CF01F1180E08EC0CF0E8CF02F117 :10543000190E08EC0CF0E8CF03F190EC3BF053ECC4 :1054400039F00401730E826F70EC0FF004012C0E22 :10545000826F70EC0FF08EC100F18FC101F190C12D :1054600002F191C103F190EC3BF053EC39F00401EF :10547000730E826F70EC0FF004012C0E826F70ECD3 :105480000FF01A0E08EC0CF0E8CF00F11B0E08EC40 :105490000CF0E8CF01F11C0E08EC0CF0E8CF02F1A3 :1054A0001D0E08EC0CF0E8CF03F138EC34F00401E9 :1054B0002C0E826F70EC0FF096C100F197C101F1D4 :1054C00098C102F199C103F138EC34F07AEC0FF095 :1054D0001DEF34F00401690E826F70EC0FF00401CF :1054E0002C0E826F70EC0FF00101040E006F000EA5 :1054F000016F000E026F000E036F90EC3BF02CC1A9 :1055000082F40401300E822770EC0FF02DC182F47A :105510000401300E822770EC0FF02EC182F40401DA :10552000300E822770EC0FF02FC182F40401300E90 :10553000822770EC0FF030C182F40401300E822714 :1055400070EC0FF031C182F40401300E822770EC50 :105550000FF032C182F40401300E822770EC0FF09C :1055600033C182F40401300E822770EC0FF0040185 :105570002C0E826F70EC0FF001010B0E006F000E0D :10558000016F000E026F000E036F90EC3BF02CC118 :1055900082F40401300E822770EC0FF02DC182F4EA :1055A0000401300E822770EC0FF02EC182F404014A :1055B000300E822770EC0FF02FC182F40401300E00 :1055C000822770EC0FF030C182F40401300E822784 :1055D00070EC0FF031C182F40401300E822770ECC0 :1055E0000FF032C182F40401300E822770EC0FF00C :1055F00033C182F40401300E822770EC0FF00401F5 :105600002C0E826F70EC0FF001014F0E006F000E38 :10561000016F000E026F000E036F90EC3BF02CC187 :1056200082F40401300E822770EC0FF02DC182F459 :105630000401300E822770EC0FF02EC182F40401B9 :10564000300E822770EC0FF02FC182F40401300E6F :10565000822770EC0FF030C182F40401300E8227F3 :1056600070EC0FF031C182F40401300E822770EC2F :105670000FF032C182F40401300E822770EC0FF07B :1056800033C182F40401300E822770EC0FF0040164 :105690002C0E826F70EC0FF0200EF86EF76AF66A2F :1056A00004010900F5CF82F470EC0FF00900F5CF8A :1056B00082F470EC0FF00900F5CF82F470EC0FF07B :1056C0000900F5CF82F470EC0FF00900F5CF82F4F9 :1056D00070EC0FF00900F5CF82F470EC0FF00900C8 :1056E000F5CF82F470EC0FF00900F5CF82F470EC86 :1056F0000FF07AEC0FF01DEF34F08351630AD8A459 :105700001BEF34F08451610AD8A41BEF34F08551AB :105710006C0AD8A41BEF34F08651410A3FE0865151 :10572000440A1BE08651420AD8B4E1EF2BF08651BF :10573000350AD8B4A7EF35F08651360AD8B4FCEF55 :1057400035F08651370AD8B465EF36F08651380AFD :10575000D8B4C3EF36F01BEF34F00798079A040172 :105760007A0E826F70EC0FF00401780E826F70EC8D :105770000FF00401640E826F70EC0FF00401550EFF :10578000826F70EC0FF0CAEF2BF004014C0E826FA9 :1057900070EC0FF07AEC0FF01DEF34F00788079AE9 :1057A00004017A0E826F70EC0FF00401410E826FDB :1057B00070EC0FF00401610E826F70EC0FF0BEEF21 :1057C0002BF00798078A04017A0E826F70EC0FF0B5 :1057D0000401420E826F70EC0FF00401610E826FC3 :1057E00070EC0FF0BEEF2BF001016667FFEF2BF0BE :1057F0006767FFEF2BF06867FFEF2BF0696716D044 :1058000001014F670BEF2CF050670BEF2CF0516745 :105810000BEF2CF052670AD00101000E006F000E52 :10582000016F000E026F000E036F120011B80AD054 :105830000101620E046F010E056F000E066F000E6F :10584000076F09D00101A70E046F020E056F000E4D :10585000066F000E076F66C100F167C101F168C1F4 :1058600002F169C103F1F2EC3AF003BFA8EF2CF0AA :10587000119A119C0101000E046FA80E056F550EC0 :10588000066F020E076F66C100F167C101F168C1C2 :1058900002F169C103F166C18AF167C18BF168C188 :1058A0008CF169C18DF1F2EC3AF003BF0BD001012C :1058B000000E8A6FA80E8B6F550E8C6F020E8D6FC7 :1058C000118A119C0E0E08EC0CF0E8CF18F10F0EA7 :1058D00008EC0CF0E8CF19F1100E08EC0CF0E8CF52 :1058E0001AF1110E08EC0CF0E8CF1BF13BEC3AF08A :1058F0008AC104F18BC105F18CC106F18DC107F19C :10590000F2EC3AF00782FFEC39F03BEC3AF0079208 :10591000FFEC39F08AC100F18BC101F18CC102F1B9 :105920008DC103F10792FFEC39F0CC0E046FE00E4D :10593000056F870E066F050E076FF2EC3AF000C197 :1059400018F101C119F102C11AF103C11BF140D0D4 :1059500013AAADEF2CF0138E139A119C119A01012A :10596000800E006F1A0E016F060E026F000E036F9D :105970004FC104F150C105F151C106F152C107F107 :10598000F2EC3AF003AF05D007EC3CF0118C119A21 :1059900012000E0E08EC0CF0E8CF18F10F0E08EC18 :1059A0000CF0E8CF19F1100E08EC0CF0E8CF1AF16A :1059B000110E08EC0CF0E8CF1BF14FC100F150C103 :1059C00001F151C102F152C103F10782FFEC39F03C :1059D00018C100F119C101F11AC102F11BC103F193 :1059E00012000784BAC166F1BBC167F1BCC168F19E :1059F000BDC169F14BC14FF14CC150F14DC151F1E5 :105A00004EC152F157C159F158C15AF107940101E1 :105A1000666712EF2DF0676712EF2DF0686712EFDF :105A20002DF0696716D001014F671EEF2DF050670A :105A30001EEF2DF051671EEF2DF052670AD00101C5 :105A4000000E006F000E016F000E026F000E036F5C :105A5000120011B80AD00101620E046F010E056F29 :105A6000000E066F000E076F09D00101A70E046F2C :105A7000020E056F000E066F000E076F66C100F183 :105A800067C101F168C102F169C103F1F2EC3AF0BA :105A900003BFAAEF2DF00101000E046FA80E056FE1 :105AA000550E066F020E076F66C100F167C101F166 :105AB00068C102F169C103F166C18AF167C18BF166 :105AC00068C18CF169C18DF1F2EC3AF003BF09D0E5 :105AD0000101000E8A6FA80E8B6F550E8C6F020E9F :105AE0008D6F3BEC3AF000C104F101C105F102C138 :105AF00006F103C107F1000E006FA00E016F980EB2 :105B0000026F7B0E036F23EC3BF000C118F101C163 :105B100019F102C11AF103C11BF1000E006FA00EB2 :105B2000016F980E026F7B0E036F8AC104F18BC167 :105B300005F18CC106F18DC107F123EC3BF018C1D2 :105B400004F119C105F11AC106F11BC107F1F2EC0C :105B50003AF012000101A80E006F610E016F000EF5 :105B6000026F000E036F4FC104F150C105F151C126 :105B700006F152C107F1F2EC3AF003AF0AD001018D :105B8000A80E006F610E016F000E026F000E036F12 :105B900000D0C80E006FAF0E016F000E026F000E36 :105BA000036F4FC104F150C105F151C106F152C15B :105BB00007F103EC3BF012000784BAC166F1BBC1E8 :105BC00067F1BCC168F1BDC169F14BC14FF14CC176 :105BD00050F14DC151F14EC152F157C159F158C167 :105BE0005AF1079401016667FDEF2DF06767FDEF3D :105BF0002DF06867FDEF2DF0696716D001014F6742 :105C000009EF2EF0506709EF2EF0516709EF2EF0E3 :105C100052670AD00101000E006F000E016F000EE6 :105C2000026F000E036F120011B80AD00101620E5C :105C3000046F010E056F000E066F000E076F09D08E :105C40000101A70E046F020E056F000E066F000E15 :105C5000076F66C100F167C101F168C102F169C156 :105C600003F1F2EC3AF003BFBFEF2EF00101000E9A :105C7000046FA80E056F550E066F020E076F66C102 :105C800000F167C101F168C102F169C103F166C1A8 :105C90008AF167C18BF168C18CF169C18DF1F2ECB9 :105CA0003AF003BF09D00101000E8A6FA80E8B6F76 :105CB000550E8C6F020E8D6F010E006F000E016F7E :105CC000000E026F000E036F8AC104F18BC105F153 :105CD0008CC106F18DC107F123EC3BF018C104F132 :105CE00019C105F11AC106F11BC107F190EC3BF097 :105CF0002AC182F40401300E822770EC0FF02BC110 :105D000082F40401300E822770EC0FF02CC182F473 :105D10000401300E822770EC0FF02DC182F40401D3 :105D2000300E822770EC0FF02EC182F40401300E89 :105D3000822770EC0FF02FC182F40401300E82270D :105D400070EC0FF030C182F40401300E822770EC49 :105D50000FF031C182F40401300E822770EC0FF095 :105D600032C182F40401300E822770EC0FF033C18F :105D700082F40401300E822770EC0FF012004FC144 :105D800000F150C101F151C102F152C103F1010111 :105D900090EC3BF053EC39F012000401730E826F6B :105DA00070EC0FF004012C0E826F70EC0FF0078482 :105DB00062C166F163C167F164C168F165C169F1EF :105DC0004BC14FF14CC150F14DC151F14EC152F197 :105DD00057C159F158C15AF10794F3EC2EF07AECFF :105DE0000FF01DEF34F066C100F167C101F168C129 :105DF00002F169C103F1010190EC3BF053EC39F081 :105E00000401630E826F70EC0FF004012C0E826FA0 :105E100070EC0FF04FC100F150C101F151C102F11E :105E200052C103F1010190EC3BF053EC39F0040155 :105E3000660E826F70EC0FF004012C0E826F70EC16 :105E40000FF007EC3CF059C100F15AC101F101011A :105E500090EC3BF053EC39F00401740E826F70EC5F :105E60000FF0120010820401530E826F70EC0FF0DD :105E700004012C0E826F70EC0FF083C32AF184C3EF :105E80002BF185C32CF186C32DF187C32EF188C376 :105E90002FF189C330F18AC331F18BC332F18CC346 :105EA00033F1010155EC3CF0CCEC3BF000C166F164 :105EB00001C167F102C168F103C169F18EC32AF122 :105EC0008FC32BF190C32CF191C32DF192C32EF10E :105ED00093C32FF194C330F195C331F196C332F1DE :105EE00097C333F1010155EC3CF0CCEC3BF000C121 :105EF0004FF101C150F102C151F103C152F148EC1F :105F00003CF099C32FF19AC330F19BC331F19CC38C :105F100032F19DC333F1010155EC3CF0CCEC3BF088 :105F200000C159F101C15AF1F3EC2EF004012C0E1D :105F3000826F70EC0FF0ADEF2FF0118E1CA002D02D :105F40001CAE108C1BBE02D01BA4108E030182510C :105F5000520A02E10F8201D00F928251750A02E1CA :105F6000108401D010948251550A02E1108601D0AC :105F700010968351310A03E11382138402D01392E5 :105F8000139403018351660A01E056D00401660EA2 :105F9000826F70EC0FF004012C0E826F70EC0FF02A :105FA000F1EC2CF090EC3BF02AC182F40401300EAD :105FB000822770EC0FF02BC182F40401300E82278F :105FC00070EC0FF02CC182F40401300E822770ECCB :105FD0000FF02DC182F40401300E822770EC0FF017 :105FE0002EC182F40401300E822770EC0FF02FC115 :105FF00082F40401300E822770EC0FF030C182F47D :106000000401300E822770EC0FF031C182F40401DC :10601000300E822770EC0FF032C182F40401300E92 :10602000822770EC0FF033C182F40401300E822716 :1060300070EC0FF01BEF34F011A003D011A401D0CD :106040001084078410B286EF30F010A46AEF30F0AD :10605000BAC166F1BBC167F1BCC168F1BDC169F1EC :10606000BEC16AF1BFC16BF1C0C16CF1C1C16DF1BC :10607000C2C16EF1C3C16FF1C4C170F1C5C171F18C :10608000C6C172F1C7C173F1C8C174F1C9C175F15C :10609000CAC176F1CBC177F1CCC178F1CDC179F12C :1060A000CEC17AF1CFC17BF1D0C17CF1D1C17DF1FC :1060B000D2C17EF1D3C17FF1D4C180F1D5C181F1CC :1060C000D6C182F1D7C183F1D8C184F1D9C185F19C :1060D00072EF30F062C166F163C167F164C168F1CB :1060E00065C169F1BAC186F1BBC187F1BCC188F154 :1060F000BDC189F14BC14FF14CC150F14DC151F1BE :106100004EC152F157C159F158C15AF107940FA02D :10611000A8EF30F00101966795EF30F0976795EFA3 :1061200030F0986795EF30F0996799EF30F0A8EF6D :1061300030F0F4EC2BF096C104F197C105F198C151 :1061400006F199C107F1F2EC3AF003BFE1EF33F049 :10615000F4EC2BF00101000E046F000E056F010E30 :10616000066F000E076F23EC3BF011A02AD011A29E :1061700028D090EC3BF0296701D005D004012D0E0A :10618000826F70EC0FF030C182F40401300E822770 :1061900070EC0FF031C182F40401300E822770ECF4 :1061A0000FF032C182F40401300E822770EC0FF040 :1061B00033C182F40401300E822770EC0FF07AECC8 :1061C0000FF012A8C5D012981DC01EF01E3A1E4234 :1061D000070E1E1600011E50000AD8B474EF31F0ED :1061E00000011E50010AD8B400EF31F000011E502A :1061F000020AD8B4FEEF30F0A6EF31F0A6EF31F08E :1062000007EC3CF02DC001F12EC000F1D890013315 :106210000033D890013300330101630E046F000E88 :10622000056F000E066F000E076F23EC3BF0280E83 :10623000046F000E056F000E066F000E076FF2EC84 :106240003AF000C130F007EC3CF02BC001F1019FA7 :10625000019D2CC000F10101A40E046F000E056F1A :10626000000E066F000E076F23EC3BF000C12FF00D :1062700000C104F101C105F102C106F103C107F13A :10628000640E006F000E016F000E026F000E036FB0 :10629000F2EC3AF0050E046F000E056F000E066F6B :1062A000000E076F23EC3BF000C104F101C105F1C2 :1062B00002C106F103C107F107EC3CF030C000F168 :1062C000F2EC3AF000C131F031C0E8FF050F305C6C :1062D00003E78A84A6EF31F031C0E8FF0A0F305C93 :1062E00001E68A94A6EF31F000C124F101C125F145 :1062F00002C126F103C127F107EC3CF00DEC3CF0A4 :106300001D501F0BE8CF00F10101640E046F000E59 :10631000056F000E066F000E076F03EC3BF024C103 :1063200004F125C105F126C106F127C107F1F2EC00 :106330003AF003BF02D08A9401D08A8424C100F1CC :1063400025C101F126C102F127C103F11DEF34F08F :1063500000C124F101C125F102C126F103C127F1D9 :1063600010AE4DD0109E00C108F101C109F102C16B :106370000AF103C10BF190EC3BF030C1E2F131C105 :10638000E3F132C1E4F133C1E5F108C100F109C123 :1063900001F10AC102F10BC103F101016C0E046F9E :1063A000070E056F000E066F000E076FF2EC3AF055 :1063B00003BF04D00101550EE66F1CD008C100F1E7 :1063C00009C101F10AC102F10BC103F10101A40EDF :1063D000046F060E056F000E066F000E076FF2ECDD :1063E0003AF003BF04D001017F0EE66F03D0010134 :1063F000FF0EE66F1F8E11AEE1EF33F0119E24C148 :1064000000F125C101F126C102F127C103F111A05C :1064100005D011A203D00FB0E1EF33F010A418EFB4 :1064200032F00401750E826F70EC0FF01DEF32F048 :106430000401720E826F70EC0FF004012C0E826F5B :1064400070EC0FF090EC3BF029672CEF32F0040178 :10645000200E826F2FEF32F004012D0E826F70EC50 :106460000FF030C182F40401300E822770EC0FF07F :1064700031C182F40401300E822770EC0FF0040168 :106480002E0E826F70EC0FF032C182F40401300ED8 :10649000822770EC0FF033C182F40401300E8227A2 :1064A00070EC0FF004016D0E826F70EC0FF00401C0 :1064B0002C0E826F70EC0FF04FC100F150C101F152 :1064C00051C102F152C103F1010190EC3BF053ECD8 :1064D00039F00401480E826F70EC0FF004017A0E5F :1064E000826F70EC0FF004012C0E826F70EC0FF0D5 :1064F00066C100F167C101F168C102F169C103F130 :10650000010190EC3BF053EC39F00401630E826F13 :1065100070EC0FF004012C0E826F70EC0FF066C16E :1065200000F167C101F168C102F169C103F1010124 :106530000A0E046F000E056F000E066F000E076F47 :1065400003EC3BF0000E046F120E056F000E066F99 :10655000000E076F23EC3BF090EC3BF02AC182F475 :106560000401300E822770EC0FF02BC182F404017D :10657000300E822770EC0FF02CC182F40401300E33 :10658000822770EC0FF02DC182F40401300E8227B7 :1065900070EC0FF02EC182F40401300E822770ECF3 :1065A0000FF02FC182F40401300E822770EC0FF03F :1065B00030C182F40401300E822770EC0FF0040128 :1065C0002E0E826F70EC0FF031C182F40401300E98 :1065D000822770EC0FF032C182F40401300E822762 :1065E00070EC0FF033C182F40401300E822770EC9E :1065F0000FF00401730E826F70EC0FF004012C0E8B :10660000826F70EC0FF007EC3CF059C100F15AC1F9 :1066100001F147EC35F013A25DEF33F004012C0ECD :10662000826F70EC0FF086C166F187C167F188C197 :1066300068F189C169F1F4EC2BF00101000E046FDF :10664000000E056F010E066F000E076F23EC3BF086 :1066500090EC3BF0296732EF33F00401200E826F9B :1066600035EF33F004012D0E826F70EC0FF030C166 :1066700082F40401300E822770EC0FF031C182F4F5 :106680000401300E822770EC0FF004012E0E826F91 :1066900070EC0FF032C182F40401300E822770ECEE :1066A0000FF033C182F40401300E822770EC0FF03A :1066B00004016D0E826F70EC0FF003018351460AE6 :1066C00001E007D004012C0E826F70EC0FF0DCECBF :1066D0002DF013A490EF33F004012C0E826F70ECB8 :1066E0000FF013AC7EEF33F00401500E826F70ECAC :1066F0000FF0139C1398139A90EF33F013AE8BEFB7 :1067000033F00401460E826F70EC0FF0139E139865 :10671000139A90EF33F00401530E826F70EC0FF078 :1067200037B0A7EF33F004012C0E826F70EC0FF03E :106730008BB0A2EF33F00401440E826F70EC0FF0C7 :10674000A7EF33F00401530E826F70EC0FF00FB21D :10675000ADEF33F00FA0DFEF33F004012C0E826FAA :1067600070EC0FF0200EF86EF76AF66A040109006B :10677000F5CF82F470EC0FF00900F5CF82F470ECE5 :106780000FF00900F5CF82F470EC0FF00900F5CF9F :1067900082F470EC0FF00900F5CF82F470EC0FF08A :1067A0000900F5CF82F470EC0FF00900F5CF82F408 :1067B00070EC0FF00900F5CF82F470EC0FF07AEC7A :1067C0000FF00F90109E12981DEF34F00401630E2D :1067D000826F70EC0FF004012C0E826F70EC0FF0E2 :1067E00023EC34F004012C0E826F70EC0FF096EC69 :1067F00034F004012C0E826F70EC0FF012EC35F0C7 :1068000004012C0E826F70EC0FF00101F80E006F86 :10681000CD0E016F660E026F030E036F38EC34F07D :1068200004012C0E826F70EC0FF028EC35F07AEC3E :106830000FF01DEF34F07AEC0FF00301C26B0790FC :1068400010922CEF37F0D8900E0E08EC0CF0E8CF39 :1068500000F10F0E08EC0CF0E8CF01F1100E08EC7F :106860000CF0E8CF02F1110E08EC0CF0E8CF03F1C8 :106870000101000E046F000E056F010E066F000E81 :10688000076F23EC3BF090EC3BF02AC182F404014B :10689000300E822770EC0FF02BC182F40401300E11 :1068A000822770EC0FF02CC182F40401300E822795 :1068B00070EC0FF02DC182F40401300E822770ECD1 :1068C0000FF02EC182F40401300E822770EC0FF01D :1068D0002FC182F40401300E822770EC0FF030C11A :1068E00082F40401300E822770EC0FF031C182F483 :1068F0000401300E822770EC0FF004012E0E826F1F :1069000070EC0FF032C182F40401300E822770EC7B :106910000FF033C182F40401300E822770EC0FF0C7 :1069200004016D0E826F70EC0FF01200120E08EC75 :106930000CF0E8CF00F1130E08EC0CF0E8CF01F1F9 :10694000140E08EC0CF0E8CF02F1150E08EC0CF078 :10695000E8CF03F101010A0E046F000E056F000E6F :10696000066F000E076F03EC3BF0000E046F120E73 :10697000056F000E066F000E076F23EC3BF090ECE6 :106980003BF02AC182F40401300E822770EC0FF034 :106990002BC182F40401300E822770EC0FF02CC161 :1069A00082F40401300E822770EC0FF02DC182F4C6 :1069B0000401300E822770EC0FF02EC182F4040126 :1069C000300E822770EC0FF02FC182F40401300EDC :1069D000822770EC0FF030C182F40401300E822760 :1069E00070EC0FF004012E0E826F70EC0FF031C1CD :1069F00082F40401300E822770EC0FF032C182F471 :106A00000401300E822770EC0FF033C182F40401D0 :106A1000300E822770EC0FF00401730E826F70EC61 :106A20000FF012000A0E08EC0CF0E8CF00F10B0E8C :106A300008EC0CF0E8CF01F10C0E08EC0CF0E8CFFC :106A400002F10D0E08EC0CF0E8CF03F147EF35F042 :106A5000060E08EC0CF0E8CF00F1070E08EC0CF085 :106A6000E8CF01F1080E08EC0CF0E8CF02F1090EB6 :106A700008EC0CF0E8CF03F147EF35F0010107EC2B :106A80003CF0078457C100F158C101F1079401019E :106A9000E80E046F800E056F000E066F000E076F84 :106AA00003EC3BF0000E046F040E056F000E066F42 :106AB000000E076F23EC3BF0880E046F130E056F7A :106AC000000E066F000E076FF2EC3AF00A0E046F2C :106AD000000E056F000E066F000E076F23EC3BF0F3 :106AE00090EC3BF0010129677BEF35F00401200EAB :106AF000826F7EEF35F004012D0E826F70EC0FF087 :106B000030C182F40401300E822770EC0FF031C1E5 :106B100082F40401300E822770EC0FF032C182F44F :106B20000401300E822770EC0FF004012E0E826FEC :106B300070EC0FF033C182F40401300E822770EC48 :106B40000FF00401430E826F70EC0FF0120087C348 :106B50002AF188C32BF189C32CF18AC32DF18BC391 :106B60002EF18CC32FF18DC330F18EC331F190C360 :106B700032F191C333F10101296B55EC3CF0CCECBF :106B80003BF00101000E046F000E056F010E066F51 :106B9000000E076F03EC3BF00E0E0C6E00C10BF005 :106BA000F1EC0BF00F0E0C6E01C10BF0F1EC0BF0E1 :106BB000100E0C6E02C10BF0F1EC0BF0110E0C6E0E :106BC00003C10BF0F1EC0BF004017A0E826F70EC54 :106BD0000FF004012C0E826F70EC0FF00401350EE3 :106BE000826F70EC0FF004012C0E826F70EC0FF0CE :106BF00023EC34F0CAEF2BF087C32AF188C32BF1C2 :106C000089C32CF18AC32DF18BC32EF18CC32FF1D4 :106C10008DC330F18EC331F190C332F191C333F1A2 :106C20000101296B55EC3CF0CCEC3BF0880E046F75 :106C3000130E056F000E066F000E076FF7EC3AF0AB :106C4000000E046F040E056F000E066F000E076F36 :106C500003EC3BF00101E80E046F800E056F000E9F :106C6000066F000E076F23EC3BF00A0E0C6E00C19E :106C70000BF0F1EC0BF00B0E0C6E01C10BF0F1EC14 :106C80000BF00C0E0C6E02C10BF0F1EC0BF00D0EC4 :106C90000C6E03C10BF0F1EC0BF004017A0E826F65 :106CA00070EC0FF004012C0E826F70EC0FF00401F9 :106CB000360E826F70EC0FF004012C0E826F70ECB8 :106CC0000FF012EC35F0CAEF2BF087C32AF188C31E :106CD0002BF189C32CF18AC32DF18BC32EF18CC308 :106CE0002FF18DC330F18FC331F190C332F191C3D5 :106CF00033F1010155EC3CF0CCEC3BF0000E046F9D :106D0000120E056F000E066F000E076F03EC3BF0CE :106D100001010A0E046F000E056F000E066F000ED3 :106D2000076F23EC3BF0120E0C6E00C10BF0F1EC80 :106D30000BF0130E0C6E01C10BF0F1EC0BF0140E06 :106D40000C6E02C10BF0F1EC0BF0150E0C6E03C1D2 :106D50000BF0F1EC0BF004017A0E826F70EC0FF087 :106D600004012C0E826F70EC0FF00401370E826F5D :106D700070EC0FF004012C0E826F70EC0FF096ECAB :106D800034F0CAEF2BF087C32AF188C32BF189C3F3 :106D90002CF18AC32DF18BC32EF18CC32FF18DC33F :106DA00030F18EC331F190C332F191C333F101015F :106DB000296B55EC3CF0CCEC3BF0880E046F130EC5 :106DC000056F000E066F000E076FF7EC3AF0000E2D :106DD000046F040E056F000E066F000E076F03ECC4 :106DE0003BF00101E80E046F800E056F000E066F88 :106DF000000E076F23EC3BF0060E0C6E00C10BF08B :106E0000F1EC0BF0070E0C6E01C10BF0F1EC0BF086 :106E1000080E0C6E02C10BF0F1EC0BF0090E0C6EBB :106E200003C10BF0F1EC0BF004017A0E826F70ECF1 :106E30000FF004012C0E826F70EC0FF00401380E7D :106E4000826F70EC0FF004012C0E826F70EC0FF06B :106E500028EC35F0CAEF2BF007A89FEF37F00101BF :106E6000800E006F1A0E016F060E026F000E036F88 :106E70004BC104F14CC105F14DC106F14EC107F102 :106E8000F2EC3AF003BFE5EF37F04DEC39F04BC1CF :106E900000F14CC101F14DC102F14EC103F1078275 :106EA000FFEC39F018C104F119C105F11AC106F15E :106EB0001BC107F1F80E006FCD0E016F660E026F59 :106EC000030E036FF2EC3AF00E0E0C6E00C10BF0E5 :106ED000F1EC0BF00F0E0C6E01C10BF0F1EC0BF0AE :106EE000100E0C6E02C10BF0F1EC0BF0110E0C6EDB :106EF00003C10BF0F1EC0BF00784010107EC3CF04F :106F000057C100F158C101F107940A0E0C6E00C17F :106F10000BF0F1EC0BF00B0E0C6E01C10BF0F1EC71 :106F20000BF00C0E0C6E02C10BF0F1EC0BF00D0E21 :106F30000C6E03C10BF0F1EC0BF0E5EF37F007AA94 :106F4000E5EF37F00784010107EC3CF057C100F191 :106F500058C101F10794060E0C6E00C10BF0F1EC64 :106F60000BF0070E0C6E01C10BF0F1EC0BF0080EEC :106F70000C6E02C10BF0F1EC0BF0090E0C6E03C1AC :106F80000BF0F1EC0BF0078462C100F163C101F179 :106F900064C102F165C103F10794120E0C6E00C1C9 :106FA0000BF0F1EC0BF0130E0C6E01C10BF0F1ECD9 :106FB0000BF0140E0C6E02C10BF0F1EC0BF0150E81 :106FC0000C6E03C10BF0F1EC0BF00798079A04016B :106FD000805181197F0B0DE09EA8FED714EE00F0C2 :106FE00081517F0BE126E750812B0F01AD6EE7EF5A :106FF00037F005012F51000AD8B428EF38F081BAD4 :107000000DEF38F015B228EF38F005012F51010AC5 :10701000D8B426EF38F01FEF38F005012F51000AE1 :10702000D8B400EF47F005012F51010AD8B426EF7C :1070300038F000011650050AD8B400EF47F081B8C7 :1070400028EF38F088EC3EF086EC3FF099EC46F003 :1070500099EF0EF006013251385D3351D8A0010F7F :10706000395D800BD8A439EF38F032C638F633C614 :1070700039F6120006013251365D3351D8A0010FA6 :10708000375D800BD8B449EF38F032C636F633C6D8 :1070900037F6120007841AC632F61BC633F61CC632 :1070A00038F61DC639F62AEC38F01EC632F61FC671 :1070B00033F62AEC38F020C632F621C633F62AEC35 :1070C00038F01AC632F61BC633F61CC636F61DC695 :1070D00037F63AEC38F01EC632F61FC633F63AECF5 :1070E00038F020C632F621C633F63AEC38F0385183 :1070F000365F3951D8A03929375F07EC3CF036C6E6 :1071000000F137C601F113EC3CF000C13AF601C1C1 :107110003BF622C632F623C633F624C638F625C619 :1071200039F62AEC38F026C632F627C633F62AECB2 :1071300038F028C632F629C633F62AEC38F022C6D3 :1071400032F623C633F624C636F625C637F63AECB1 :1071500038F026C632F627C633F63AEC38F028C6A1 :1071600032F629C633F63AEC38F03851365F3951E9 :10717000D8A03929375F07EC3CF036C600F137C696 :1071800001F113EC3CF000C13CF601C13DF62AC60A :1071900032F62BC633F62CC638F62DC639F62AEC55 :1071A00038F02EC632F62FC633F62AEC38F030C649 :1071B00032F631C633F62AEC38F02AC632F62BC640 :1071C00033F62CC636F62DC637F63AEC38F02EC616 :1071D00032F62FC633F63AEC38F030C632F631C606 :1071E00033F63AEC38F03851365F3951D8A03929A6 :1071F000375F07EC3CF036C600F137C601F113ECFF :107200003CF000C13EF601C13FF63AC632F63BC63D :1072100033F63CC636F63DC637F63AEC38F03EC695 :1072200032F63FC633F63AEC38F00794120018C134 :1072300000F119C101F11AC102F11BC103F1000EE5 :10724000046F000E056F010E066F000E076F23EC32 :107250003BF029A142EF39F02051D8B442EF39F088 :1072600018C100F119C101F11AC102F11BC103F1EA :10727000000E046F000E056F0A0E066F000E076FFA :1072800023EC3BF0120001010451001305510113DE :10729000065102130751031312000101186B196BF9 :1072A0001A6B1B6B12002AC182F40401300E822774 :1072B00070EC0FF02BC182F40401300E822770ECC9 :1072C0000FF02CC182F40401300E822770EC0FF015 :1072D0002DC182F40401300E822770EC0FF02EC114 :1072E00082F40401300E822770EC0FF02FC182F47B :1072F0000401300E822770EC0FF030C182F40401DB :10730000300E822770EC0FF031C182F40401300E90 :10731000822770EC0FF032C182F40401300E822714 :1073200070EC0FF033C182F40401300E822770EC50 :107330000FF012002FC182F40401300E822770EC8E :107340000FF030C182F40401300E822770EC0FF090 :1073500031C182F40401300E822770EC0FF032C18B :1073600082F40401300E822770EC0FF033C182F4F6 :107370000401300E822770EC0FF01200060E216E11 :10738000060E226E060E236E212EC4EF39F0222E39 :10739000C4EF39F0232EC4EF39F08B84020E216E36 :1073A000020E226E020E236E212ED4EF39F0222E11 :1073B000D4EF39F0232ED4EF39F08B941200FF0E66 :1073C000226E22C023F0030E216E8B84212EE5EF66 :1073D00039F0030E216E232EE5EF39F08B9422C095 :1073E00023F0030E216E212EF3EF39F0030E216EF0 :1073F000233EF3EF39F0222EE1EF39F012000101C4 :10740000005305E1015303E1025301E1002BC2ECFB :107410003AF007EC3CF03951006F3A51016F420EDF :10742000046F4B0E056F000E066F000E076F03EC26 :107430003BF000C104F101C105F102C106F103C135 :1074400007F118C100F119C101F11AC102F11BC104 :1074500003F107B230EF3AF0F7EC3AF032EF3AF0DE :10746000F2EC3AF000C118F101C119F102C11AF1B0 :1074700003C11BF1120007EC3CF059C100F15AC1E5 :1074800001F1060E08EC0CF0E8CF04F1070E08EC51 :107490000CF0E8CF05F1080E08EC0CF0E8CF06F18F :1074A000090E08EC0CF0E8CF07F1F2EC3AF000C15D :1074B00024F101C125F102C126F103C127F1290EF2 :1074C000046F000E056F000E066F000E076F03ECD1 :1074D0003BF0EE0E046F430E056F000E066F000EBC :1074E000076FF7EC3AF024C104F125C105F126C17C :1074F00006F127C107F103EC3BF000C11CF101C10B :107500001DF102C11EF103C11FF1120E08EC0CF0B7 :10751000E8CF04F1130E08EC0CF0E8CF05F1140EDF :1075200008EC0CF0E8CF06F1150E08EC0CF0E8CFF3 :1075300007F10D0E006F000E016F000E026F000EBE :10754000036F03EC3BF0180E046F000E056F000E86 :10755000066F000E076F23EC3BF01CC104F11DC148 :1075600005F11EC106F11FC107F1F7EC3AF06A0EF2 :10757000046F2A0E056F000E066F000E076FF2EC07 :107580003AF01200BF0EFA6E200E3A6F396BD890A7 :107590000037013702370337D8B0D3EF3AF03A2F2C :1075A000C8EF3AF039073A070353D8B41200033151 :1075B000070B80093F6F03390F0B010F396F80EC08 :1075C0005FF0406F390580EC5FF0405D405F396BE4 :1075D0003F33D8B0392739333FA9E8EF3AF040516B :1075E0003927120001012CEC3CF0D8B01200010147 :1075F00003510719346FEFEC3BF0D8900751031992 :1076000034AF800F12000101346B13EC3CF0D8A0B2 :1076100029EC3CF0D8B01200FEEC3BF007EC3CF05B :107620001F0E366F3FEC3CF00B35D8B0EFEC3BF063 :10763000D8A00335D8B01200362F12EF3BF034B18A :1076400016EC3CF012000101346B045105110611D7 :1076500007110008D8A013EC3CF0D8A029EC3CF0AE :10766000D8B01200086B096B0A6B0B6B3FEC3CF057 :107670001F0E366F3FEC3CF007510B5DD8A44DEF69 :107680003BF006510A5DD8A44DEF3BF00551095D72 :10769000D8A44DEF3BF00451085DD8A060EF3BF05B :1076A0000451085F0551D8A0053D095F0651D8A0D7 :1076B000063D0A5F0751D8A0073D0B5FD8900081B7 :1076C000362F3AEF3BF034B116EC3CF0346B13EC50 :1076D0003CF0D89043EC3CF007510B5DD8A47DEF13 :1076E0003BF006510A5DD8A47DEF3BF00551095DE2 :1076F000D8A47DEF3BF00451085DD8A08CEF3BF09F :10770000003F8CEF3BF0013F8CEF3BF0023F8CEFF2 :107710003BF0032BD8B4120034B116EC3CF012004D :107720000101346B13EC3CF0D8B0120048EC3CF093 :10773000200E366F003701370237033711EE33F072 :107740000A0E376FE7360A0EE75CD8B0E76EE552EF :10775000372FA2EF3BF0362F9AEF3BF034B129815F :10776000D890120048EC3CF0200E366F00370137FD :107770000237033711EE33F00A0E376FE7360A0E81 :10778000E75CD8B0E76EE552372FBEEF3BF0362FFF :10779000B6EF3BF0D890120001010A0E346F200EB4 :1077A000366F11EE29F03451376F0A0ED890E65239 :1077B000D8B0E726E732372FD7EF3BF00333023359 :1077C00001330033362FD1EF3BF0E750FF0FD8A045 :1077D0000335D8B0120029B116EC3CF01200045168 :1077E00000270551D8B0053D01270651D8B0063D08 :1077F00002270751D8B0073D032712000051086F38 :107800000151096F02510A6F03510B6F1200010100 :10781000006B016B026B036B12000101046B056BC3 :10782000066B076B12000335D8A012000351800BC2 :10783000001F011F021F031F003F26EF3CF0013F06 :1078400026EF3CF0023F26EF3CF0032B342B0325C0 :1078500012000735D8A012000751800B041F051F26 :10786000061F071F043F3CEF3CF0053F3CEF3CF098 :10787000063F3CEF3CF0072B342B07251200003766 :10788000013702370337083709370A370B37120039 :107890000101296B2A6B2B6B2C6B2D6B2E6B2F6BC5 :1078A000306B316B326B336B120001012A510F0BBD :1078B0002A6F2B510F0B2B6F2C510F0B2C6F2D514F :1078C0000F0B2D6F2E510F0B2E6F2F510F0B2F6F94 :1078D00030510F0B306F31510F0B316F32510F0B95 :1078E000326F33510F0B336F120000C124F101C10D :1078F00025F102C126F103C127F104C100F105C140 :1079000001F106C102F107C103F124C104F125C14F :1079100005F126C106F127C107F11200899C000E6E :10792000C76E200EC66E9E96C69EC50EC96EFF0E11 :107930009EB602D0E82EFCD79E96C69E000EC96E5B :10794000FF0E9EB602D0E82EFCD7C9CF00F69E9659 :10795000C69E000EC96EFF0E9EB602D0E82EFCD762 :10796000C9CF01F6898C1200000EC76E200EC66EBC :10797000899C9E96C69EC80EC96EFF0E9EB602D00A :10798000E82EFCD79E96C69E000EC96EFF0E9EB6D0 :1079900002D0E82EFCD7C9CF02F69E96C69E000EF6 :1079A000C96EFF0E9EB602D0E82EFCD7C9CF03F6F3 :1079B0009E96C69E000EC96EFF0E9EB602D0E82EA1 :1079C000FCD7C9CF0AF69E96C69E000EC96EFF0E62 :1079D0009EB602D0E82EFCD7C9CF0BF69E96C69E67 :1079E000000EC96EFF0E9EB602D0E82EFCD7C9CF9E :1079F00012F69E96C69E000EC96EFF0E9EB602D06F :107A0000E82EFCD7C9CF13F6898C1200000EC76E82 :107A1000200EC66E899C9E96C69EE80EC96EFF0E0D :107A20009EB602D0E82EFCD79E96C69E000EC96E6A :107A3000FF0E9EB602D0E82EFCD7C9CF1AF69E964E :107A4000C69E000EC96EFF0E9EB602D0E82EFCD771 :107A5000C9CF1BF69E96C69E000EC96EFF0E9EB63F :107A600002D0E82EFCD7C9CF22F69E96C69E000E05 :107A7000C96EFF0E9EB602D0E82EFCD7C9CF23F602 :107A80009E96C69E000EC96EFF0E9EB602D0E82ED0 :107A9000FCD7C9CF2AF69E96C69E000EC96EFF0E71 :107AA0009EB602D0E82EFCD7C9CF2BF6898C1200E7 :107AB000000EC76E200EC66E899C9E96C69E240E32 :107AC000C96EFF0E9EB602D0E82EFCD79E96C69ECB :107AD000E40EC96EFF0E9EB602D0E82EFCD7898C4C :107AE000899C9E96C69E200EC96EFF0E9EB602D041 :107AF000E82EFCD79E96C69E5F0EC96EFF0E9EB600 :107B000002D0E82EFCD7898C899C9E96C69E210EB9 :107B1000C96EFF0E9EB602D0E82EFCD79E96C69E7A :107B2000C00EC96EFF0E9EB602D0E82EFCD7898C1F :107B3000899C9E96C69E260EC96EFF0E9EB602D0EA :107B4000E82EFCD79E96C69E000EC96EFF0E9EB60E :107B500002D0E82EFCD7898C1200000EC76E200ED2 :107B6000C66E899C9E96C69E200EC96EFF0E9EB65E :107B700002D0E82EFCD79E96C69E000EC96EFF0E60 :107B80009EB602D0E82EFCD7898C120010A806D031 :107B90008994000EC76E220EC66E05D08984000E31 :107BA000C76E220EC66E050EE82EFED7120010A874 :107BB00002D0898401D08994050EE82EFED71200E8 :107BC000C6EC3DF09E96C69E000EC96EFF0E9EB698 :107BD00002D0E82EFCD79E96C69E000EC96EFF0E00 :107BE0009EB602D0E82EFCD7C9CFAFF59E96C69EB2 :107BF000000EC96EFF0E9EB602D0E82EFCD7C9CF8C :107C0000B0F59E96C69E000EC96EFF0E9EB602D0BF :107C1000E82EFCD7C9CFB1F59E96C69E000EC96E60 :107C2000FF0E9EB602D0E82EFCD7C9CFB2F59E96C5 :107C3000C69E000EC96EFF0E9EB602D0E82EFCD77F :107C4000C9CFB3F59E96C69E000EC96EFF0E9EB6B6 :107C500002D0E82EFCD7C9CFB4F59E96C69E000E82 :107C6000C96EFF0E9EB602D0E82EFCD7C9CFB5F57F :107C7000D7EC3DF01200C6EC3DF09E96C69E800EFD :107C8000C96EFF0E9EB602D0E82EFCD79E96C69E09 :107C9000AFC5C9FFFF0E9EB602D0E82EFCD79E9658 :107CA000C69EB0C5C9FFFF0E9EB602D0E82EFCD717 :107CB0009E96C69EB1C5C9FFFF0E9EB602D0E82EA5 :107CC000FCD79E96C69EB2C5C9FFFF0E9EB602D0D7 :107CD000E82EFCD79E96C69EB3C5C9FFFF0E9EB682 :107CE00002D0E82EFCD79E96C69EB4C5C9FFFF0EF3 :107CF0009EB602D0E82EFCD79E96C69EB5C5C9FF9B :107D0000FF0E9EB602D0E82EFCD7D7EC3DF0120055 :107D1000C6EC3DF09E96C69E070EC96EFF0E9EB63F :107D200002D0E82EFCD79E96C69E000EC96EFF0EAE :107D30009EB602D0E82EFCD7C9CFAFF59E96C69E60 :107D4000000EC96EFF0E9EB602D0E82EFCD7C9CF3A :107D5000B0F59E96C69E000EC96EFF0E9EB602D06E :107D6000E82EFCD7C9CFB1F59E96C69E000EC96E0F :107D7000FF0E9EB602D0E82EFCD7C9CFB2F5D7ECE5 :107D80003DF0C6EC3DF09E96C69E25C0C9FFFF0E95 :107D90009EB602D0E82EFCD79E96C69E000EC96EF7 :107DA000FF0E9EB602D0E82EFCD7C9CFB6F5D7ECB1 :107DB0003DF01200C6EC3DF09E96C69E870EC96E41 :107DC000FF0E9EB602D0E82EFCD79E96C69EAFC58B :107DD000C9FFFF0E9EB602D0E82EFCD79E96C69E27 :107DE000B0C5C9FFFF0E9EB602D0E82EFCD79E9606 :107DF000C69EB1C5C9FFFF0E9EB602D0E82EFCD7C5 :107E00009E96C69EB2C5C9FFFF0E9EB602D0E82E52 :107E1000FCD7D7EC3DF0C6EC3DF09E96C69E26C042 :107E2000C9FFFF0E9EB602D0E82EFCD79E96C69ED6 :107E3000B6C5C9FFFF0E9EB602D0E82EFCD7D7EC20 :107E40003DF01200C6EC3DF09E96C69E870EC96EB0 :107E5000FF0E9EB602D0E82EFCD79E96C69E000E60 :107E6000C96EFF0E9EB602D0E82EFCD79E96C69E27 :107E7000800EC96EFF0E9EB602D0E82EFCD79E96ED :107E8000C69E800EC96EFF0E9EB602D0E82EFCD7AD :107E90009E96C69E800EC96EFF0E9EB602D0E82E3C :107EA000FCD7D7EC3DF01200C6EC3DF09E96C69E86 :107EB000870EC96EFF0E9EB602D0E82EFCD79E96A6 :107EC000C69E000EC96EFF0E9EB602D0E82EFCD7ED :107ED0009E96C69E000EC96EFF0E9EB602D0E82E7C :107EE000FCD79E96C69E800EC96EFF0E9EB602D02F :107EF000E82EFCD79E96C69E800EC96EFF0E9EB6DB :107F000002D0E82EFCD7D7EC3DF0120010A817D015 :107F1000C6EC3DF09E96C69E8F0EC96EFF0E9EB6B5 :107F200002D0E82EFCD79E96C69E000EC96EFF0EAC :107F30009EB602D0E82EFCD7D7EC3DF0120088ECBC :107F40003EF0120010A82DD0C6EC3DF09E96C69EC5 :107F500026C0C9FFFF0E9EB602D0E82EFCD79E9623 :107F6000C69E450EC96EFF0E9EB602D0E82EFCD707 :107F7000D7EC3DF0C6EC3DF09E96C69E8F0EC96EC6 :107F8000FF0E9EB602D0E82EFCD79E96C69E000E2F :107F9000C96EFF0E9EB602D0E82EFCD7D7EC3DF09E :107FA0001200C6EC3DF09E96C69E26C0C9FFFF0E8D :107FB0009EB602D0E82EFCD79E96C69E010EC96ED4 :107FC000FF0E9EB602D0E82EFCD7D7EC3DF0C6ECF3 :107FD0003DF09E96C69E910EC96EFF0E9EB602D0D3 :107FE000E82EFCD79E96C69EA50EC96EFF0E9EB6C5 :107FF00002D0E82EFCD7D7EC3DF01200C6EC3DF0E5 :108000009E96C69E26C0C9FFFF0E9EB602D0E82EE1 :10801000FCD79E96C69E810EC96EFF0E9EB602D0FC :10802000E82EFCD7D7EC3DF01200C6EC3DF09E9652 :10803000C69E26C0C9FFFF0E9EB602D0E82EFCD712 :108040009E96C69E010EC96EFF0E9EB602D0E82E09 :10805000FCD7D7EC3DF01200C6EC3DF09E96C69ED4 :10806000910EC96EFF0E9EB602D0E82EFCD79E96EA :10807000C69EA50EC96EFF0E9EB602D0E82EFCD796 :10808000D7EC3DF01200C6EC3DF09E96C69E910ED8 :10809000C96EFF0E9EB602D0E82EFCD79E96C69EF5 :1080A000000EC96EFF0E9EB602D0E82EFCD7D7ECAC :1080B0003DF012000501256B266B276B286B899A12 :1080C000400EC76E200EC66E9E96C69E030EC96EEB :1080D000FF0E9EB602D0E82EFCD79E96C69E27C500 :1080E000C9FFFF0E9EB602D0E82EFCD79E96C69E14 :1080F00026C5C9FFFF0E9EB602D0E82EFCD79E967D :10810000C69E25C5C9FFFF0E9EB602D0E82EFCD73D :108110009E96C69EC952FF0E9EB602D0E82EFCD790 :10812000898A0F01C950FF0A01E1120005012E5191 :10813000130A05E005012E51170A0CE01200050193 :10814000E00E256FFF0E266F0F0E276F000E286FB3 :10815000B3EF40F00501E00E256FFF0E266FFF0E16 :10816000276F000E286F899A400EC76E200EC66ECC :108170009E96C69E030EC96EFF0E9EB602D0E82ED6 :10818000FCD79E96C69E27C5C9FFFF0E9EB602D09D :10819000E82EFCD79E96C69E26C5C9FFFF0E9EB64A :1081A00002D0E82EFCD79E96C69E25C5C9FFFF0EBD :1081B0009EB602D0E82EFCD79E96C69EC952FF0EF0 :1081C0009EB602D0E82EFCD7898A0F01C950FF0A5B :1081D0001DE005012E51130A05E005012E51170A75 :1081E0000BE012000501000E256F000E266F100E29 :1081F000276F000E286F12000501000E256F000E7C :10820000266F000E276F010E286F12000501256BE7 :10821000266B276B286B05012E51130A05E005011B :108220002E51170A0CE012000501000E216F000EFE :10823000226F080E236F000E246F28EF41F0050116 :10824000000E216F000E226F800E236F000E246F30 :1082500021C500F122C501F123C502F124C503F1B6 :1082600025C504F126C505F127C506F128C507F186 :1082700043EC39F000C125F501C126F502C127F50F :1082800003C128F5899A400EC76E200EC66E9E96D1 :10829000C69E030EC96EFF0E9EB602D0E82EFCD716 :1082A0009E96C69E27C5C9FFFF0E9EB602D0E82E39 :1082B000FCD79E96C69E26C5C9FFFF0E9EB602D06D :1082C000E82EFCD79E96C69E25C5C9FFFF0E9EB61A :1082D00002D0E82EFCD79E96C69EC952FF0E9EB6CF :1082E00002D0E82EFCD7898AC950FF0A08E104C1F0 :1082F00025F505C126F506C127F507C128F5D89053 :10830000050124332333223321332151E00B216F24 :108310000501216793EF41F0226793EF41F0236756 :1083200093EF41F0246728EF41F00501200E252747 :10833000E86A2623E86A2723E86A28231200E86A05 :1083400005012E51130A06E005012E51170A0BE014 :10835000020E120005012851000A03E12751F00B1B :1083600007E0010E120005012851000A01E0010E8C :10837000120029C500F12AC501F12BC502F12CC557 :1083800003F125C504F126C505F127C506F128C569 :1083900007F1F2EC3AF003BF12009FEC41F0D8A4D1 :1083A00031EF42F0899A400EC76E200EC66E9E963F :1083B000C69E060EC96EFF0E9EB602D0E82EFCD7F2 :1083C000898A899A9E96C69E020EC96EFF0E9EB637 :1083D00002D0E82EFCD79E96C69E27C5C9FFFF0E89 :1083E0009EB602D0E82EFCD79E96C69E26C5C9FF33 :1083F000FF0E9EB602D0E82EFCD79E96C69E25C5DF :10840000C9FFFF0E9EB602D0E82EFCD79E96C69EF0 :10841000000EC96EFF0E9EB602D0E82EFCD7898AE8 :10842000899A9E96C69E050EC96EFF0E9EB602D014 :10843000E82EFCD79E96C69EC952FF0E9EB602D06D :10844000E82EFCD7C9B01AEF42F0898A0501200E48 :108450002527E86A2623E86A2723E86A2823B9EF54 :1084600041F01200899A400EC76E200EC66E9E968D :10847000C69E060EC96EFF0E9EB602D0E82EFCD731 :10848000898A899A9E96C69EC70EC96EFF0E9EB6B1 :1084900002D0E82EFCD7898A0501256B266B276B55 :1084A000286B1200899A400EC76E200EC66E9E96EB :1084B000C69E050EC96EFF0E9EB602D0E82EFCD7F2 :1084C0009E96C69EC952FF0E9EB602D0E82EFCD7DD :1084D000C9CF37F5898A1200899A400EC76E200EDF :1084E000C66E9E96C69EB90EC96EFF0E9EB602D08F :1084F000E82EFCD7898A1200899A400EC76E200E9A :10850000C66E9E96C69EAB0EC96EFF0E9EB602D07C :10851000E82EFCD7898AFF0EE82EFED712009FECCA :1085200041F0D8A41200899A400EC76E200EC66E84 :108530009E96C69E030EC96EFF0E9EB602D0E82E12 :10854000FCD79E96C69E27C5C9FFFF0E9EB602D0D9 :10855000E82EFCD79E96C69E26C5C9FFFF0E9EB686 :1085600002D0E82EFCD79E96C69E25C5C9FFFF0EF9 :108570009EB602D0E82EFCD79E96C69EC952FF0E2C :108580009EB602D0E82EFCD7898A0F01C950FF0A97 :10859000D8A40AEF46F00501FE0E376F0501FF0E65 :1085A000536FFF0E546FFF0E556FFF0E566F15A6DB :1085B00037991586E0EC3DF0AFC538F5B0C539F513 :1085C000B1C53AF5B2C53BF5B3C53CF5B4C53DF50B :1085D000B5C53EF50784BAC166F1BBC167F1BCC140 :1085E00068F1BDC169F14BC14FF14CC150F14DC1B2 :1085F00051F14EC152F157C159F158C15AF1000120 :108600001650010AD8B413EF43F000011650020AC5 :10861000D8B438EF43F000011650040AD8B45DEF27 :1086200043F00AEF46F00501476B486B496B4A6B14 :1086300005014B6B4C6B4D6B4E6B05014F6B506BDB :10864000516B526B8BA0379BF4EC2BF000C1DAF12D :1086500001C1DBF102C1DCF103C1DDF100C13FF575 :1086600001C140F502C141F503C142F57CEF43F081 :108670000501476B486B496B4A6B05014B6B4C6BB3 :108680004D6B4E6B05014F6B506B516B526BF4ECA5 :108690002BF000C1DAF101C1DBF102C1DCF103C151 :1086A000DDF1F1EC2CF000C147F501C148F502C144 :1086B00049F503C14AF50AEF46F0379BDAC13FF5A9 :1086C000DBC140F5DCC141F5DDC142F5F4EC2BF036 :1086D00000C14BF501C14CF502C14DF503C14EF58A :1086E000F1EC2CF000C14FF501C150F502C151F57C :1086F00003C152F57CEF43F00501616787EF43F05A :10870000626787EF43F0636787EF43F064678BEF3F :1087100043F0A0EF43F0DAC100F1DBC101F1DCC1AD :1087200002F1DDC103F161C504F162C505F163C564 :1087300006F164C507F1F2EC3AF003BF0AEF46F028 :1087400059C143F55AC144F5B9C545F54AEC38F06D :1087500036C649F537C64AF506014067B7EF43F01C :108760004167B7EF43F04267B7EF43F04367BBEFB2 :1087700043F0CCEF43F007EC3CF00DEC3CF036C698 :1087800000F137C601F140C604F141C605F1F2EC33 :108790003AF003AF0AEF46F00101036B026B1AC611 :1087A00000F11BC601F101AFDAEF43F0FF0E026FDB :1087B000FF0E036F0101076B066B1CC604F11DC69B :1087C00005F105AFE8EF43F0FF0E066FFF0E076FF0 :1087D000F7EC3AF00101076B066B1EC604F11FC6E9 :1087E00005F105AFF8EF43F0FF0E066FFF0E076FC0 :1087F000F7EC3AF00101076B066B20C604F121C6C5 :1088000005F105AF08EF44F0FF0E066FFF0E076F8E :10881000F7EC3AF0D890010103330233013300330F :10882000D8900101033302330133003300C14BF50B :1088300001C14CF50101036B026B22C600F123C696 :1088400001F101AF28EF44F0FF0E026FFF0E036F3E :108850000101076B066B24C604F125C605F105AFBF :1088600036EF44F0FF0E066FFF0E076FF7EC3AF09D :108870000101076B066B26C604F127C605F105AF9B :1088800046EF44F0FF0E066FFF0E076FF7EC3AF06D :108890000101076B066B28C604F129C605F105AF77 :1088A00056EF44F0FF0E066FFF0E076FF7EC3AF03D :1088B000D89001010333023301330033D890010112 :1088C000033302330133003300C14DF501C14EF5CE :1088D0000101036B026B2AC600F12BC601F101AF47 :1088E00076EF44F0FF0E026FFF0E036F0101076B7E :1088F000066B2CC604F12DC605F105AF84EF44F0DC :10890000FF0E066FFF0E076FF7EC3AF00101076BE1 :10891000066B2EC604F12FC605F105AF94EF44F0A7 :10892000FF0E066FFF0E076FF7EC3AF00101076BC1 :10893000066B30C604F131C605F105AFA4EF44F073 :10894000FF0E066FFF0E076FF7EC3AF0D8900101AB :108950000333023301330033D89001010333023370 :108960000133003300C14FF501C150F50101036B24 :10897000026B02C600F103C601F101AFC4EF44F07F :10898000FF0E026FFF0E036F0101076B066B04C63B :1089900004F105C605F105AFD2EF44F0FF0E066FF6 :1089A000FF0E076FF7EC3AF00101076B066B06C686 :1089B00004F107C605F105AFE2EF44F0FF0E066FC4 :1089C000FF0E076FF7EC3AF00101076B066B08C664 :1089D00004F109C605F105AFF2EF44F0FF0E066F92 :1089E000FF0E076FF7EC3AF0D89001010333023322 :1089F00001330033D89001010333023301330033D4 :108A000000C151F501C152F50101036B026B0AC6A9 :108A100000F10BC601F101AF12EF45F0FF0E026F3E :108A2000FF0E036F0101076B066B0CC604F10DC648 :108A300005F105AF20EF45F0FF0E066FFF0E076F43 :108A4000F7EC3AF00101076B066B0EC604F10FC696 :108A500005F105AF30EF45F0FF0E066FFF0E076F13 :108A6000F7EC3AF00101076B066B10C604F111C672 :108A700005F105AF40EF45F0FF0E066FFF0E076FE3 :108A8000F7EC3AF0D890010103330233013300339D :108A9000D8900101033302330133003300C153F591 :108AA00001C154F50101036B026B12C600F113C63C :108AB00001F101AF60EF45F0FF0E026FFF0E036F93 :108AC0000101076B066B14C604F115C605F105AF6D :108AD0006EEF45F0FF0E066FFF0E076FF7EC3AF0F2 :108AE0000101076B066B16C604F117C605F105AF49 :108AF0007EEF45F0FF0E066FFF0E076FF7EC3AF0C2 :108B00000101076B066B18C604F119C605F105AF24 :108B10008EEF45F0FF0E066FFF0E076FF7EC3AF091 :108B2000D89001010333023301330033D89001019F :108B3000033302330133003300C155F501C156F54B :108B40000501210E326F899A400EC76E200EC66E47 :108B50009E96C69E060EC96EFF0E9EB602D0E82EE9 :108B6000FCD7898A899A9E96C69E020EC96EFF0E10 :108B70009EB602D0E82EFCD79E96C69E27C5C9FF9A :108B8000FF0E9EB602D0E82EFCD79E96C69E26C546 :108B9000C9FFFF0E9EB602D0E82EFCD79E96C69E59 :108BA00025C5C9FFFF0E9EB602D0E82EFCD725EEE4 :108BB00037F0322F02D0E8EF45F09E96C69EDECF0A :108BC000C9FFFF0E9EB602D0E82EFCD7D9EF45F0C4 :108BD000898A899A9E96C69E050EC96EFF0E9EB61C :108BE00002D0E82EFCD79E96C69EC952FF0E9EB6B6 :108BF00002D0E82EFCD7C9B0F3EF45F0898A050111 :108C0000200E2527E86A2623E86A2723E86A282316 :108C1000BEEC39F015900794120021C500F122C571 :108C200001F123C502F124C503F1899A400EC76EF4 :108C3000200EC66E9E96C69E0B0EC96EFF0E9EB689 :108C400002D0E82EFCD79E96C69E02C1C9FFFF0E39 :108C50009EB602D0E82EFCD79E96C69E01C1C9FFE3 :108C6000FF0E9EB602D0E82EFCD79E96C69E00C18F :108C7000C9FFFF0E9EB602D0E82EFCD79E96C69E78 :108C8000C952FF0E9EB602D0E82EFCD725EE37F073 :108C90000501200E326F9E96C69EC952FF0E9EB6EB :108CA00002D0E82EFCD7C9CFDEFF322F4BEF46F0C3 :108CB000898A1200899A400EC76E200EC66E9E9653 :108CC000C69E900EC96EFF0E9EB602D0E82EFCD74F :108CD0009E96C69E000EC96EFF0E9EB602D0E82E6E :108CE000FCD79E96C69E000EC96EFF0E9EB602D0A1 :108CF000E82EFCD79E96C69E000EC96EFF0E9EB64D :108D000002D0E82EFCD79E96C69EC952FF0E9EB694 :108D100002D0E82EFCD7C9CF2DF59E96C69EC9522B :108D2000FF0E9EB602D0E82EFCD7C9CF2EF5898A59 :108D30001200E0EC3DF005012F51010A5FE0050152 :108D40002F51020A16E005012F51030A19E005010F :108D50002F51040A24E005012F51050A2BE00501DB :108D60002F51060A39E005012F51070A3FE0FEEFB7 :108D700046F0602FFCEF46F05FC560F5FEEF46F071 :108D8000B0C500F101010F0E001701010051000AEA :108D900035E001010051050A31E0FCEF46F0B0C5B5 :108DA00000F101010F0E001701010051000A26E039 :108DB000FCEF46F00501B051000A20E00501B0517A :108DC000150A1CE00501B051300A18E00501B05148 :108DD000450A14E0FCEF46F00501B051000A0EE030 :108DE0000501B051300A0AE0FCEF46F00501B05130 :108DF000000A04E0FCEF46F0159012001580120006 :108E00008B90BEEC39F0B9C5E8FFD70802E3BEECA1 :108E100039F0B9C5E8FFC80802E3BEEC39F0B9C5BE :108E2000E8FFB90802E3BEEC39F0B9C5E8FFAA08CB :108E300002E3BEEC39F0B9C5E8FF9B0802E3BEECE3 :108E400039F06CEC42F0F29CF29E8B94C69AC29080 :108E5000ADEC3DF09482948C720ED36ED3A4FED709 :108E600089968A909390F29AF2949D909E909D920A :108E70009E92F298F29286EC3FF0FF0EE8CF00F05F :108E8000E82EFED7002EFCD7F290F286815081A802 :108E90004CEF47F0F29E0300700ED36EF296F29004 :0C8EA00015840380DFEC39F03EEF0CF08D :10BF0000E844F926000C160C2B0C3F0C520C640C68 :10BF1000760C860C960CA50CB30CC10CCF0CDC0C6B :06BF2000E80CF40C000C1B :0200000400F00A :0100C800FE39 :00000001FF ./firmware/SQMLE-4-3-75.hex0000644000175000017500000014172413631214355015106 0ustar anthonyanthony:020000040000FA :0408000085EF09F087 :1008100003B28CEF05F0F2B4AAEF05F09EB0B2EF90 :1008200005F09EB2BAEF05F0F2A81AEF04F0F2B2AA :100830003AEF04F09EB61FEF04F034EF09F09E96F5 :1008400000011750000A0AE000011750010A0AE0EF :1008500000011750020A0AE034EF09F0DDEC23F042 :1008600034EF09F0D5EC25F034EF09F0B7EC26F0C1 :1008700034EF09F0CD90F2929EA044EF04F0010114 :10088000533F44EF04F0542BB2C1B6F1B3C1B7F1FA :10089000B4C1B8F1B5C1B9F1AEC1B2F1AFC1B3F1F4 :1008A000B0C1B4F1B1C1B5F1AAC1AEF1ABC1AFF104 :1008B000ACC1B0F1ADC1B1F1A6C1AAF1A7C1ABF114 :1008C000A8C1ACF1A9C1ADF1A2C1A6F1A3C1A7F124 :1008D000A4C1A8F1A5C1A9F19EC1A2F19FC1A3F134 :1008E000A0C1A4F1A1C1A5F19AC19EF19BC19FF144 :1008F0009CC1A0F19DC1A1F1CECF9AF1CFCF9BF1C8 :1009000053C19CF154C19DF1CF6ACE6A0101536B72 :10091000546B9E90CD800FBC0F8E0FBA93EF04F0F6 :100920000F8A34EF09F013880F8C0FBED0EF04F05C :100930009AC19EF19BC19FF19CC1A0F19DC1A1F103 :100940009EC1A2F19FC1A3F1A0C1A4F1A1C1A5F1D3 :10095000A2C1A6F1A3C1A7F1A4C1A8F1A5C1A9F1A3 :10096000A6C1AAF1A7C1ABF1A8C1ACF1A9C1ADF173 :10097000AAC1AEF1ABC1AFF1ACC1B0F1ADC1B1F143 :10098000AEC1B2F1AFC1B3F1B0C1B4F1B1C1B5F113 :10099000B2C1B6F1B3C1B7F1B4C1B8F1B5C1B9F1E3 :1009A00001015E6B5F6B606B616B9A515E279B51BF :1009B0005F239C5160239D5161239E515E279F516F :1009C0005F23A0516023A1516123A2515E27A3514F :1009D0005F23A4516023A5516123A6515E27A7512F :1009E0005F23A8516023A9516123AA515E27AB510F :1009F0005F23AC516023AD516123AE515E27AF51EF :100A00005F23B0516023B1516123B2515E27B351CE :100A10005F23B4516023B5516123B6515E27B751AE :100A20005F23B8516023B9516123D890010161332C :100A300060335F335E33D8900101613360335F33DD :100A40005E33D8900101613360335F335E3300C1A0 :100A50000CF101C10DF102C10EF103C10FF104C18E :100A600010F105C111F106C112F107C113F108C15E :100A700014F109C115F10AC116F10BC117F134C106 :100A800035F111B84FEF05F00101620E046F010E50 :100A9000056F000E066F000E076F58EF05F001019D :100AA000A70E046F020E056F000E066F000E076F93 :100AB0005EC100F15FC101F160C102F161C103F1EA :100AC00041EC22F003BF04D01CBE02D01CA0108C4D :100AD00011A070EF05F010BA70EF05F00F80108ACA :100AE0000CC100F10DC101F10EC102F10FC103F102 :100AF00010C104F111C105F112C106F113C107F1D2 :100B000014C108F115C109F116C10AF117C10BF1A1 :100B100035C134F134EF09F00392ABB2AB98AB8836 :100B2000030103EE00F080517F0BE92604C0EFFFC4 :100B3000802B8151805D700BD8A48B820000805186 :100B4000815D700BD8A48B9281518019D8B4079025 :100B500034EF09F0F2940101453F34EF09F0462BE0 :100B600034EF09F09E900101533F34EF09F0542B0C :100B700034EF09F09E9211B830EF07F08BB4C8EF54 :100B800005F010ACC8EF05F08B84109CC9EF05F0A0 :100B90008B94C3CF55F1C4CF56F1C28207B438EF5E :100BA00006F047C14BF148C14CF149C14DF14AC172 :100BB0004EF15EC162F15FC163F160C164F161C178 :100BC00065F113A8E6EF05F0138C13989AC1BAF1FA :100BD0009BC1BBF19CC1BCF19DC1BDF19EC1BEF1E9 :100BE0009FC1BFF1A0C1C0F1A1C1C1F1A2C1C2F1B9 :100BF000A3C1C3F1A4C1C4F1A5C1C5F1A6C1C6F189 :100C0000A7C1C7F1A8C1C8F1A9C1C9F1AAC1CAF158 :100C1000ABC1CBF1ACC1CCF1ADC1CDF1AEC1CEF128 :100C2000AFC1CFF1B0C1D0F1B1C1D1F1B2C1D2F1F8 :100C3000B3C1D3F1B4C1D4F1B5C1D5F1B6C1D6F1C8 :100C4000B7C1D7F1B8C1D8F1B9C1D9F10101555136 :100C50005B2756515C23E86A5D230E2E38EF06F0C1 :100C60005CC157F15DC158F15B6B5C6B5D6B078ECE :100C70000201002F34EF09F03C0E006F1D50E00B15 :100C8000E00AE86612881BBE02D01BB4108E00C1B9 :100C90000CF101C10DF102C10EF103C10FF104C14C :100CA00010F105C111F106C112F107C113F108C11C :100CB00014F109C115F10AC116F10BC117F134C1C4 :100CC00035F101018E676CEF06F08F676CEF06F06F :100CD00090676CEF06F0916770EF06F0A1EF06F0F9 :100CE00092C100F193C101F194C102F195C103F1E8 :100CF0000101010E046F000E056F000E066F000E5D :100D0000076F41EC22F000C192F101C193F102C1E1 :100D100094F103C195F10101006796EF06F00167B8 :100D200096EF06F0026796EF06F00367A1EF06F074 :100D30008EC192F18FC193F190C194F191C195F15F :100D40000F80D57ED5BE6ED0D6CF47F1D7CF48F134 :100D500045C149F1E86AE8CF4AF1138A1CBE02D0C6 :100D60001CA0108C109047C100F148C101F149C18D :100D700002F14AC103F101010A0E046F000E056F72 :100D8000000E066F000E076F41EC22F003AF1080DB :100D9000010154A7D8EF06F00F9A0F9C0F9E010196 :100DA000000E5E6F600E5F6F3D0E606F080E616F2C :100DB000010147BFE8EF06F04867E8EF06F0496732 :100DC000E8EF06F04A67E8EF06F0F2880DEF07F06B :100DD000F2985E6B5F6B606B616B9A6B9B6B9C6B4D :100DE0009D6B9E6B9F6BA06BA16BA26BA36BA46BA7 :100DF000A56BA66BA76BA86BA96BAA6BAB6BAC6B57 :100E0000AD6BAE6BAF6BB06BB16BB26BB36BB46B06 :100E1000B56BB66BB76BB86BB96BD76AD66A0101A5 :100E2000456B466B0CC100F10DC101F10EC102F121 :100E30000FC103F110C104F111C105F112C106F196 :100E400013C107F114C108F115C109F116C10AF166 :100E500017C10BF135C134F134EF09F034EF09F06B :100E60000201002F8BEF08F0D59ED6CF47F1D7CFE8 :100E700048F145C149F1E86AE8CF4AF1138AD76AD7 :100E8000D66A0101456B466BD58E1D50E00BE00A1A :100E9000E86612881BBE02D01BB4108E1AAE1F8CDF :100EA00000C10CF101C10DF102C10EF103C10FF13E :100EB00004C110F105C111F106C112F107C113F10E :100EC00008C114F109C115F10AC116F10BC117F1DE :100ED00034C135F10FA0109A11B87AEF07F0010173 :100EE000620E046F010E056F000E066F000E076F95 :100EF00083EF07F00101A70E046F020E056F000ECD :100F0000066F000E076F47C100F148C101F149C1EA :100F100002F14AC103F141EC22F003BF96EF07F062 :100F20001CBE02D01CA0108C11B00F800CC100F1AF :100F30000DC101F10EC102F10FC103F110C104F1A5 :100F400011C105F112C106F113C107F114C108F175 :100F500015C109F116C10AF117C10BF135C134F100 :100F600002013C0E006F00C10CF101C10DF102C184 :100F70000EF103C10FF104C110F105C111F106C159 :100F800012F107C113F108C114F109C115F10AC129 :100F900016F10BC117F134C135F101018E67D8EF9D :100FA00007F08F67D8EF07F09067D8EF07F09167E9 :100FB000DCEF07F00DEF08F092C100F193C101F1F1 :100FC00094C102F195C103F10101010E046F000EFD :100FD000056F000E066F000E076F41EC22F000C196 :100FE00092F101C193F102C194F103C195F10101A4 :100FF000006702EF08F0016702EF08F0026702EFF6 :1010000008F003670DEF08F08EC192F18FC193F1E4 :1010100090C194F191C195F10F80109047C100F1FA :1010200048C101F149C102F14AC103F101010A0EAF :10103000046F000E056F000E066F000E076F41EC87 :1010400022F003AF1080010154A733EF08F00F9A8C :101050000F9C0F9E0101000E5E6F600E5F6F3D0ED4 :10106000606F080E616F47C100F148C101F149C1CD :1010700002F14AC103F10101140E046F050E056F60 :10108000000E066F000E076F41EC22F003AF4CEF2D :1010900008F0F28871EF08F0F2985E6B5F6B606B9E :1010A000616B9A6B9B6B9C6B9D6B9E6B9F6BA06B3C :1010B000A16BA26BA36BA46BA56BA66BA76BA86BB4 :1010C000A96BAA6BAB6BAC6BAD6BAE6BAF6BB06B64 :1010D000B16BB26BB36BB46BB56BB66BB76BB86B14 :1010E000B96B0CC100F10DC101F10EC102F10FC1CC :1010F00003F110C104F111C105F112C106F113C1D0 :1011000007F114C108F115C109F116C10AF117C19F :101110000BF135C134F194EC26F0206629D01FAED6 :1011200011D01F9E208E1BAE07D0176A040E186EBA :10113000196ADDEC23F01CD0176A186A196ADDEC15 :1011400023F016D01FAC09D01F9C208C010E176E07 :10115000186A196AD5EC25F00BD01FAA09D01F9A7E :10116000208A020E176E186A196AB7EC26F000D0B2 :101170008BB4C2EF08F010ACC2EF08F08B84109C67 :10118000C3EF08F08B94C3CF55F1C4CF56F1C282A0 :1011900007B432EF09F047C14BF148C14CF149C1E6 :1011A0004DF14AC14EF15EC162F15FC163F160C1B0 :1011B00064F161C165F113A8E0EF08F0138C139896 :1011C0009AC1BAF19BC1BBF19CC1BCF19DC1BDF1FB :1011D0009EC1BEF19FC1BFF1A0C1C0F1A1C1C1F1CB :1011E000A2C1C2F1A3C1C3F1A4C1C4F1A5C1C5F19B :1011F000A6C1C6F1A7C1C7F1A8C1C8F1A9C1C9F16B :10120000AAC1CAF1ABC1CBF1ACC1CCF1ADC1CDF13A :10121000AEC1CEF1AFC1CFF1B0C1D0F1B1C1D1F10A :10122000B2C1D2F1B3C1D3F1B4C1D4F1B5C1D5F1DA :10123000B6C1D6F1B7C1D7F1B8C1D8F1B9C1D9F1AA :10124000010155515B2756515C23E86A5D230E2E40 :1012500032EF09F05CC157F15DC158F15B6B5C6B1B :101260005D6B078E34EF09F002C0E0FF005001C053 :10127000D8FF1000A6B23AEF09F00CC0A9FF0BC0CE :10128000A8FFA69EA69CA684F29E550EA76EAA0E47 :10129000A76EA682F28EA694A6B24CEF09F00C2A95 :1012A0001200A96EA69EA69CA680A8500C2A120029 :1012B00004012C0E826F6EEC0BF056EC23F00C50F8 :1012C00051EC09F0E8CF00F10C5051EC09F0E8CFF7 :1012D00001F101AF71EF09F00101FF0E026FFF0E86 :1012E000036FDFEC22F029677DEF09F00401200E87 :1012F000826F6EEC0BF082EF09F004012D0E826F0D :101300006EEC0BF0E9EC20F0120015941596076ACC :101310000F6A106A116A126A136A166A0F010E0EBA :10132000C16E860EC06E030EC26E0F01896A110E69 :10133000926E080E8A6EF10E936E8B6A980E946E02 :10134000F18EFC0E51EC09F0E8CF0BF00BA01180F0 :101350000BA211820BA411840BA81188C90E51ECA9 :1013600009F0E8CF1AF0CA0E51EC09F0E8CF1BF0F3 :10137000CB0E51EC09F0E8CF1CF0CC0E51EC09F08B :10138000E8CF1DF0FB0E51EC09F0E8CF37F0CE0EA0 :1013900051EC09F0E8CF14F0CD0E51EC09F0E8CF94 :1013A00036F01F6A206A0E6A01015B6B5C6B5D6B35 :1013B000576B586BF29A0101476B486B496B4A6B4C :1013C0004B6B4C6B4D6B4E6B4F6B506B516B526B51 :1013D000456B466BD76AD66A0F01280ED56EF28A26 :1013E0009D90B00ECD6E01015E6B5F6B606B616BAB :1013F000626B636B646B656B666B676B686B696B69 :10140000536B546BCF6ACE6A0F9A0F9C0F9E9D80D0 :10141000760ECA6E9D8202013C0E006FCC6A160EDB :1014200051EC09F0E8CF00F1170E51EC09F0E8CFCC :1014300001F1180E51EC09F0E8CF02F1190E51EC50 :1014400009F0E8CF03F1010103AF41EF0AF056ECD8 :1014500023F0160E0C6E00C10BF03AEC09F0170EDB :101460000C6E01C10BF03AEC09F0180E0C6E02C1C3 :101470000BF03AEC09F0190E0C6E03C10BF03AECCC :1014800009F000C18EF101C18FF102C190F103C1D9 :1014900091F100C192F101C193F102C194F103C134 :1014A00095F11A0E51EC09F0E8CF00F11B0E51EC4A :1014B00009F0E8CF01F11C0E51EC09F0E8CF02F180 :1014C0001D0E51EC09F0E8CF03F1010103AF97EFD6 :1014D0000AF056EC23F01A0E0C6E00C10BF03AEC39 :1014E00009F01B0E0C6E01C10BF03AEC09F01C0E5A :1014F0000C6E02C10BF03AEC09F01D0E0C6E03C12C :101500000BF03AEC09F01A0E51EC09F0E8CF00F1BB :101510001B0E51EC09F0E8CF01F11C0E51EC09F063 :10152000E8CF02F11D0E51EC09F0E8CF03F100C144 :1015300096F101C197F102C198F103C199F1240E0E :10154000AC6E900EAB6E240EAC6E080EB86E000E34 :10155000B06E1F0EAF6E0401806B816B0F01900E99 :10156000AB6E0F019D8A0301806B816BC26B8B9206 :10157000176A186A196A9D8607900001F28EF28C2C :1015800007B092EF1FF00FB03AEF18F010BE3AEF2D :1015900018F012B83AEF18F00301805181197F0B4F :1015A000D8B492EF1FF013EE00F081517F0BE126CB :1015B000812BE7CFE8FFE00BD8B492EF1FF023EECA :1015C00082F0C2513F0BD926E7CFDFFFC22BDF509D :1015D000780AD8A492EF1FF0078092C100F193C15E :1015E00001F194C102F195C103F10101040E046FF0 :1015F000000E056F000E066F000E076F41EC22F023 :1016000000AF0CEF0BF00101030E926F000E936F11 :10161000000E946F000E956F03018251720AD8B4C8 :10162000BBEF17F08251520AD8B4BBEF17F08251CA :10163000750AD8B4BBEF17F08251680AD8B482EFAC :101640000BF08251630AD8B44CEF1CF08251690A46 :10165000D8B471EF13F082517A0AD8B484EF14F041 :101660008251490AD8B410EF13F08251500AD8B40D :101670001AEF12F08251700AD8B462EF12F0825160 :10168000540AD8B492EF12F08251740AD8B4DDEF44 :1016900012F08251410AD8B4FDEF0CF082514B0A8E :1016A000D8B4FAEF0BF082516D0AD8B46DEF11F097 :1016B00082514D0AD8B486EF11F08251730AD8B422 :1016C000EBEF16F08251530AD8B450EF17F0825165 :1016D000590AD8B4BEEF10F083EF1CF0040114EEE9 :1016E00000F080517F0BE12682C4E7FF802B1200BF :1016F00004010D0E826F6EEC0BF00A0E826F6EEC21 :101700000BF012000401680E826F6EEC0BF0040106 :101710002C0E826F6EEC0BF056EC23F032C000F111 :1017200033C001F10101DFEC22F02EC182F404018B :10173000300E82276EEC0BF02FC182F40401300EC4 :1017400082276EEC0BF030C182F40401300E822748 :101750006EEC0BF031C182F40401300E82276EEC86 :101760000BF032C182F40401300E82276EEC0BF0D4 :1017700033C182F40401300E82276EEC0BF00401B9 :101780002C0E826F6EEC0BF056EC23F034C000F19F :1017900035C001F1DFEC22F02EC182F40401300EDD :1017A00082276EEC0BF02FC182F40401300E8227E9 :1017B0006EEC0BF030C182F40401300E82276EEC27 :1017C0000BF031C182F40401300E82276EEC0BF075 :1017D00032C182F40401300E82276EEC0BF033C16B :1017E00082F40401300E82276EEC0BF0B7EC26F089 :1017F00081EF1CF004014B0E826F6EEC0BF00401C4 :101800002C0E826F6EEC0BF081B802D036B630D061 :1018100003018351430AD8B43FEF0CF00301835115 :10182000630AD8B441EF0CF003018351520AD8B4D3 :1018300043EF0CF003018351720AD8B445EF0CF06A :1018400003018351470AD8B447EF0CF003018351D9 :10185000670AD8B449EF0CF003018351540AD8B495 :101860004BEF0CF003018351740AD8B4BBEF0CF0BA :1018700003018351550AD8B44DEF0CF083D0368064 :101880007BD0369079D0368277D0369275D0368438 :1018900073D0369471D036866FD084C330F185C34F :1018A00031F186C332F187C333F10101296BA4EC16 :1018B00023F01BEC23F000C104F101C105F102C1CA :1018C00006F103C107F197EC23F0200EF86EF76ADA :1018D000F66A0900F5CF2CF10900F5CF2DF10900CA :1018E000F5CF2EF10900F5CF2FF10900F5CF30F13A :1018F0000900F5CF31F10900F5CF32F10900F5CF3C :1019000033F10101296BA4EC23F01BEC23F041EC33 :1019100022F00101006794EF0CF0016794EF0CF0E6 :10192000026794EF0CF0036701D025D004014E0E3E :10193000826F6EEC0BF004016F0E826F6EEC0BF099 :1019400004014D0E826F6EEC0BF00401610E826F8C :101950006EEC0BF00401740E826F6EEC0BF0040160 :10196000630E826F6EEC0BF00401680E826F6EECFA :101970000BF081EF1CF03696CD0E0C6E36C00BF0DE :101980003AEC09F0CD0E51EC09F0E8CF36F036B064 :1019900006D00401630E826F6EEC0BF005D00401DB :1019A000430E826F6EEC0BF036B206D00401720E5D :1019B000826F6EEC0BF005D00401520E826F6EEC5C :1019C0000BF036B406D00401670E826F6EEC0BF09C :1019D00005D00401470E826F6EEC0BF036B606D0D0 :1019E0000401740E826F6EEC0BF005D00401540EEE :1019F000826F6EEC0BF081EF1CF00401410E826FE0 :101A00006EEC0BF003018351310AD8B4DEEF0FF016 :101A100003018351320AD8B40EEF0FF00301835152 :101A2000330AD8B497EF0EF003018351340AD8B4C7 :101A300087EF0DF003018351350AD8B427EF0DF07D :101A400004013F0E826F6EEC0BF081EF1CF003017E :101A50008451300AD8B44DEF0DF003018451310A9E :101A6000D8B450EF0DF003018451650AD8B441EFAA :101A70000DF003018451640AD8B444EF0DF051EF26 :101A80000DF0379045EF0DF03780FB0E0C6E37C030 :101A90000BF03AEC09F051EF0DF08B9051EF0DF097 :101AA0008B800401350E826F6EEC0BF004012C0E5E :101AB000826F6EEC0BF08BB065EF0DF00401300E11 :101AC000826F6EEC0BF06AEF0DF00401310E826F45 :101AD0006EEC0BF004012C0E826F6EEC0BF0FB0E23 :101AE00051EC09F0E8CF37F037A07EEF0DF004019C :101AF000640E826F6EEC0BF083EF0DF00401650E47 :101B0000826F6EEC0BF085EF0DF081EF1CF0CC0EC8 :101B100051EC09F0E8CF0BF004012C0E826F6EEC53 :101B20000BF003018451310AD8B4ABEF0DF003017F :101B30008451300AD8B4ADEF0DF0030184514D0A41 :101B4000D8B4B7EF0DF003018451540AD8B4BEEFF6 :101B50000DF0D5EF0DF08A8401D08A940BAE04D03D :101B60000BAC02D00BBA21D0E00E0B1218D01F0E16 :101B70000B168539E844E00B0B1211D0E00E0B1662 :101B800097EC23F085C332F186C333F10101296B51 :101B9000A4EC23F01BEC23F000511F0B0B12CC0E16 :101BA0000C6E0BC00BF03AEC09F00401340E826F9E :101BB0006EEC0BF004012C0E826F6EEC0BF0CC0E71 :101BC00051EC09F0E8CF1DF08AB406D00401300EC4 :101BD000826F6EEC0BF005D00401310E826F6EEC5B :101BE0000BF004012C0E826F6EEC0BF01D38E840F8 :101BF000070BE8CF82F40401300E82276EEC0BF065 :101C000004012C0E826F6EEC0BF056EC23F01D508D :101C10001F0BE8CF00F1DFEC22F032C182F40401A7 :101C2000300E82276EEC0BF033C182F40401300ECB :101C300082276EEC0BF004012C0E826F6EEC0BF021 :101C400056EC23F030C000F100AF0BD0FF0E016F57 :101C5000FF0E026FFF0E036F04012D0E826F6EECFC :101C60000BF0DFEC22F031C182F40401300E822748 :101C70006EEC0BF032C182F40401300E82276EEC60 :101C80000BF033C182F40401300E82276EEC0BF0AE :101C900004012C0E826F6EEC0BF056EC23F02FC07B :101CA00000F1DFEC22F031C182F40401300E822712 :101CB0006EEC0BF032C182F40401300E82276EEC20 :101CC0000BF033C182F40401300E82276EEC0BF06E :101CD00004012C0E826F6EEC0BF056EC23F031C039 :101CE00000F100AF0BD0FF0E016FFF0E026FFF0E71 :101CF000036F04012D0E826F6EEC0BF0DFEC22F00F :101D000031C182F40401300E82276EEC0BF032C137 :101D100082F40401300E82276EEC0BF033C182F4A2 :101D20000401300E82276EEC0BF081EF1CF0CB0E1D :101D300051EC09F0E8CF0BF004012C0E826F6EEC31 :101D40000BF003018451450AD8B4BBEF0EF0030138 :101D50008451440AD8B4BEEF0EF003018451300A16 :101D6000D8B4C1EF0EF003018451310AD8B4C5EFE5 :101D70000EF0D0EF0EF00B9ECAEF0EF00B8ECAEFF6 :101D80000EF0FC0E0B16CAEF0EF0FC0E0B160B80BD :101D9000CAEF0EF0CB0E0C6E0BC00BF03AEC09F054 :101DA0000401330E826F6EEC0BF004012C0E826F77 :101DB0006EEC0BF0CB0E51EC09F0E8CF1CF01CBE22 :101DC000E9EF0EF00401450E826F6EEC0BF0EEEFC2 :101DD0000EF00401440E826F6EEC0BF004012C0E29 :101DE000826F6EEC0BF00401300E826F6EEC0BF024 :101DF00004012C0E826F6EEC0BF01CB007EF0FF09D :101E00000401300E826F6EEC0BF00CEF0FF004014A :101E1000310E826F6EEC0BF081EF1CF0CA0E51ECAC :101E200009F0E8CF0BF004012C0E826F6EEC0BF082 :101E300003018451450AD8B44AEF0FF003018451DD :101E4000440AD8B44DEF0FF0030184514D0AD8B4C1 :101E500056EF0FF003018451410AD8B450EF0FF050 :101E600003018451460AD8B453EF0FF003018451A3 :101E7000560AD8B45EEF0FF003018451500AD8B46B :101E800069EF0FF003018451520AD8B46CEF0FF0E0 :101E900075EF0FF00B9E6FEF0FF00B8E6FEF0FF0E3 :101EA0000B9C6FEF0FF00B8C6FEF0FF0FC0E0B160F :101EB00085C3E8FF030B0B126FEF0FF0C70E0B1675 :101EC00085C3E8FF070BE846E846E8460B126FEFCC :101ED0000FF00B846FEF0FF00B946FEF0FF0CA0E43 :101EE0000C6E0BC00BF03AEC09F0CA0E51EC09F085 :101EF000E8CF1BF00401320E826F6EEC0BF0040190 :101F00002C0E826F6EEC0BF01BBE8EEF0FF00401F7 :101F1000450E826F6EEC0BF093EF0FF00401440E50 :101F2000826F6EEC0BF004012C0E826F6EEC0BF0E6 :101F30001BC0E8FF030BE8CF82F40401300E8227B8 :101F40006EEC0BF004012C0E826F6EEC0BF01BBCE0 :101F5000B1EF0FF00401410E826F6EEC0BF0B6EFA3 :101F60000FF00401460E826F6EEC0BF004012C0E94 :101F7000826F6EEC0BF01BC0E8FF380BE842E842C2 :101F8000E842E8CF82F40401300E82276EEC0BF0B9 :101F900004012C0E826F6EEC0BF01BB4D7EF0FF028 :101FA0000401520E826F6EEC0BF0DCEF0FF00401B7 :101FB000500E826F6EEC0BF081EF1CF0C90E51ECED :101FC00009F0E8CF0BF004012C0E826F6EEC0BF0E1 :101FD00003018451450AD8B4FCEF0FF0030184518A :101FE000440AD8B4FFEF0FF0030184514D0AD8B46E :101FF00002EF10F010EF10F00B9E0AEF10F00B8EB6 :102000000AEF10F0F80E0B1685C3E8FF070B0B1252 :102010000AEF10F0C90E0C6E0BC00BF03AEC09F091 :102020000401310E826F6EEC0BF004012C0E826FF6 :102030006EEC0BF0C90E51EC09F0E8CF1AF01ABEA5 :1020400006D00401450E826F6EEC0BF005D0040142 :10205000440E826F6EEC0BF004012C0E826F6EEC5E :102060000BF01AC0E8FF070BE8CF82F40401300E32 :1020700082276EEC0BF004012C0E826F6EEC0BF0DD :10208000078056EC23F02BC0E8FF003B00430043E1 :10209000030BDFEC22F033C182F40401300E8227FF :1020A0006EEC0BF004012C0E826F6EEC0BF056EC14 :1020B00023F02BC001F1019F019D2CC000F1010113 :1020C000DFEC22F02FC182F40401300E82276EEC87 :1020D0000BF030C182F40401300E82276EEC0BF05D :1020E00031C182F40401300E82276EEC0BF032C154 :1020F00082F40401300E82276EEC0BF033C182F4BF :102100000401300E82276EEC0BF004012C0E826F5E :102110006EEC0BF056EC23F02DC001F12EC000F157 :10212000D89001330033D890013300330101DFEC44 :1021300022F02FC182F40401300E82276EEC0BF0E6 :1021400030C182F40401300E82276EEC0BF031C1F5 :1021500082F40401300E82276EEC0BF032C182F45F :102160000401300E82276EEC0BF033C182F40401BF :10217000300E82276EEC0BF081EF1CF0FC0E51EC60 :1021800009F0E8CF0BF003018351520AD8B4F5EF00 :1021900010F003018351720AD8B4F8EF10F0030174 :1021A0008351500AD8B4FBEF10F003018351700A39 :1021B000D8B4FEEF10F003018351550AD8B401EFF3 :1021C00011F003018351750AD8B404EF11F0030133 :1021D0008351430AD8B40DEF11F003018351630A10 :1021E000D8B410EF11F019EF11F00B9013EF11F0BC :1021F0000B8013EF11F00B9213EF11F00B8213EF22 :1022000011F00B9413EF11F00B8413EF11F00B96F8 :1022100013EF11F00B8613EF11F00B9813EF11F081 :102220000B8813EF11F0FC0E0C6E0BC00BF03AECA8 :1022300009F00401590E826F6EEC0BF011901192AF :1022400011941198FC0E51EC09F0E8CF0BF00BA0A3 :1022500011800BA211820BA411840BA8118811A06C :1022600039EF11F00401520E826F6EEC0BF03EEF6D :1022700011F00401720E826F6EEC0BF011A848EFA2 :1022800011F00401430E826F6EEC0BF04DEF11F074 :102290000401630E826F6EEC0BF011A257EF11F088 :1022A0000401500E826F6EEC0BF05CEF11F0040134 :1022B000700E826F6EEC0BF011A466EF11F004014A :1022C000550E826F6EEC0BF06BEF11F00401750E82 :1022D000826F6EEC0BF081EF1CF004016D0E826FCB :1022E0006EEC0BF003018351300AD8B4CAEF11F041 :1022F00003018351310AD8B4DDEF11F0030183519A :10230000320AD8B4F0EF11F083EF1CF081B803D09B :1023100036B481EF1CF004014D0E826F6EEC0BF0B1 :1023200097EC23F084C331F185C332F186C333F1D6 :102330000101296BA4EC23F01BEC23F00301835172 :10234000300AD8B4B2EF11F003018351310AD8B486 :10235000BAEF11F003018351320AD8B4C2EF11F081 :1023600083EF1CF0FD0E0C6E00C10BF03AEC09F08F :10237000CAEF11F0FE0E0C6E00C10BF03AEC09F042 :10238000DDEF11F0FF0E0C6E00C10BF03AEC09F01E :10239000F0EF11F00401300E826F6EEC0BF00401CF :1023A0002C0E826F6EEC0BF056EC23F0FD0E51EC10 :1023B00009F0E8CF00F101EF12F00401310E826F55 :1023C0006EEC0BF004012C0E826F6EEC0BF056ECF1 :1023D00023F0FE0E51EC09F0E8CF00F101EF12F00E :1023E0000401320E826F6EEC0BF056EC23F0040108 :1023F0002C0E826F6EEC0BF0FF0E51EC09F0E8CF63 :1024000000F1DFEC22F031C182F40401300E8227AA :102410006EEC0BF032C182F40401300E82276EECB8 :102420000BF033C182F40401300E82276EEC0BF006 :1024300081EF1CF081B803D036B210EF13F083C3E4 :102440002AF184C32BF185C32CF186C32DF187C3F8 :102450002EF188C32FF189C330F18AC331F18BC3C8 :1024600032F18CC333F10101A4EC23F01BEC23F017 :10247000160E0C6E00C10BF03AEC09F0170E0C6E44 :1024800001C10BF03AEC09F0180E0C6E02C10BF012 :102490003AEC09F0190E0C6E03C10BF03AEC09F09E :1024A00000C18EF101C18FF102C190F103C191F120 :1024B00000C192F101C193F102C194F103C195F100 :1024C00010EF13F081B803D036B210EF13F083C3CE :1024D0002AF184C32BF185C32CF186C32DF187C368 :1024E0002EF188C32FF189C330F18AC331F18BC338 :1024F00032F18CC333F10101A4EC23F01BEC23F087 :1025000000C18EF101C18FF102C190F103C191F1BF :1025100000C192F101C193F102C194F103C195F19F :1025200010EF13F081B803D036B210EF13F083C36D :102530002AF184C32BF185C32CF186C32DF187C307 :102540002EF188C32FF189C330F18AC331F18CC3D6 :1025500032F18DC333F10101A4EC23F01BEC23F025 :102560000101000E046F000E056F010E066F000ED4 :10257000076F52EC22F01A0E0C6E00C10BF03AEC11 :1025800009F01B0E0C6E01C10BF03AEC09F01C0EA9 :102590000C6E02C10BF03AEC09F01D0E0C6E03C17B :1025A0000BF03AEC09F000C196F101C197F102C1BC :1025B00098F103C199F110EF13F081B803D036B24E :1025C00010EF13F083C32AF184C32BF185C32CF1E0 :1025D00086C32DF187C32EF188C32FF189C330F153 :1025E0008AC331F18CC332F18DC333F10101A4EC04 :1025F00023F01BEC23F00101000E046F000E056FA9 :10260000010E066F000E076F52EC22F000C196F12A :1026100001C197F102C198F103C199F110EF13F0D4 :10262000160E51EC09F0E8CF00F1170E51EC09F04D :10263000E8CF01F1180E51EC09F0E8CF02F1190EC4 :1026400051EC09F0E8CF03F1DFEC22F0A2EC20F02E :102650000401730E826F6EEC0BF004012C0E826F7E :102660006EEC0BF08EC100F18FC101F190C102F14F :1026700091C103F1DFEC22F0A2EC20F00401730E13 :10268000826F6EEC0BF004012C0E826F6EEC0BF07F :102690001A0E51EC09F0E8CF00F11B0E51EC09F0D5 :1026A000E8CF01F11C0E51EC09F0E8CF02F11D0E4C :1026B00051EC09F0E8CF03F19EEC1CF004012C0E64 :1026C000826F6EEC0BF096C100F197C101F198C1D9 :1026D00002F199C103F19EEC1CF078EC0BF083EF52 :1026E0001CF00401690E826F6EEC0BF004012C0EDD :1026F000826F6EEC0BF00101040E006F000E016F93 :10270000000E026F000E036FDFEC22F02CC182F48A :102710000401300E82276EEC0BF02DC182F404010F :10272000300E82276EEC0BF02EC182F40401300EC5 :1027300082276EEC0BF02FC182F40401300E822749 :102740006EEC0BF030C182F40401300E82276EEC87 :102750000BF031C182F40401300E82276EEC0BF0D5 :1027600032C182F40401300E82276EEC0BF033C1CB :1027700082F40401300E82276EEC0BF004012C0E63 :10278000826F6EEC0BF00101030E006F000E016F03 :10279000000E026F000E036FDFEC22F02CC182F4FA :1027A0000401300E82276EEC0BF02DC182F404017F :1027B000300E82276EEC0BF02EC182F40401300E35 :1027C00082276EEC0BF02FC182F40401300E8227B9 :1027D0006EEC0BF030C182F40401300E82276EECF7 :1027E0000BF031C182F40401300E82276EEC0BF045 :1027F00032C182F40401300E82276EEC0BF033C13B :1028000082F40401300E82276EEC0BF004012C0ED2 :10281000826F6EEC0BF001014B0E006F000E016F2A :10282000000E026F000E036FDFEC22F02CC182F469 :102830000401300E82276EEC0BF02DC182F40401EE :10284000300E82276EEC0BF02EC182F40401300EA4 :1028500082276EEC0BF02FC182F40401300E822728 :102860006EEC0BF030C182F40401300E82276EEC66 :102870000BF031C182F40401300E82276EEC0BF0B4 :1028800032C182F40401300E82276EEC0BF033C1AA :1028900082F40401300E82276EEC0BF004012C0E42 :1028A000826F6EEC0BF0200EF86EF76AF66A040188 :1028B0000900F5CF82F46EEC0BF00900F5CF82F43D :1028C0006EEC0BF00900F5CF82F46EEC0BF0090012 :1028D000F5CF82F46EEC0BF00900F5CF82F46EECCC :1028E0000BF00900F5CF82F46EEC0BF00900F5CF88 :1028F00082F46EEC0BF00900F5CF82F46EEC0BF075 :1029000078EC0BF083EF1CF081B803D036B0D4EF35 :1029100014F08351630AD8A481EF1CF08451610A3A :10292000D8A481EF1CF085516C0AD8A481EF1CF06B :102930008651410A42E08651440A1BE08651420A10 :10294000D8B4F0EF14F08651350AD8B40DEF1EF06C :102950008651360AD8B462EF1EF08651370AD8B4D1 :10296000CBEF1EF08651380AD8B429EF1FF081EF63 :102970001CF00798079A04017A0E826F6EEC0BF038 :102980000401780E826F6EEC0BF00401640E826F0E :102990006EEC0BF081A8D4EF14F00401550E826F99 :1029A0006EEC0BF0D9EF14F004014C0E826F6EEC5C :1029B0000BF078EC0BF083EF1CF00788079A04010A :1029C0007A0E826F6EEC0BF00401410E826F6EEC9A :1029D0000BF00401610E826F6EEC0BF0CAEF14F085 :1029E0000798078A04017A0E826F6EEC0BF00401DF :1029F000420E826F6EEC0BF00401610E826F6EEC82 :102A00000BF0CAEF14F0010166670EEF15F067676F :102A10000EEF15F068670EEF15F0696716D001012B :102A20004F671AEF15F050671AEF15F051671AEF5C :102A300015F052670AD00101000E006F000E016F01 :102A4000000E026F000E036F120011B80AD00101D0 :102A5000620E046F010E056F000E066F000E076F09 :102A600009D00101A70E046F020E056F000E066F5C :102A7000000E076F66C100F167C101F168C102F184 :102A800069C103F141EC22F003BFB7EF15F0119AD1 :102A9000119C0101000E046FA80E056F550E066F04 :102AA000020E076F66C100F167C101F168C102F152 :102AB00069C103F166C18AF167C18BF168C18CF10C :102AC00069C18DF141EC22F003BF0BD00101000E72 :102AD0008A6FA80E8B6F550E8C6F020E8D6F118A48 :102AE000119C0E0E51EC09F0E8CF18F10F0E51ECCD :102AF00009F0E8CF19F1100E51EC09F0E8CF1AF106 :102B0000110E51EC09F0E8CF1BF18AEC21F08AC1DB :102B100004F18BC105F18CC106F18DC107F141ECC7 :102B200022F007824EEC21F08AEC21F007924EEC65 :102B300021F08AC100F18BC101F18CC102F18DC17C :102B400003F107924EEC21F0CC0E046FE00E056FFE :102B5000870E066F050E076F41EC22F000C118F1D9 :102B600001C119F102C11AF103C11BF140D013AA2E :102B7000BCEF15F0138E139A119C119A0101800E6F :102B8000006F1A0E016F060E026F000E036F4FC129 :102B900004F150C105F151C106F152C107F141ECF8 :102BA00022F003AF05D056EC23F0118C119A1200DD :102BB0000E0E51EC09F0E8CF18F10F0E51EC09F0B0 :102BC000E8CF19F1100E51EC09F0E8CF1AF1110E0F :102BD00051EC09F0E8CF1BF14FC100F150C101F1F8 :102BE00051C102F152C103F107824EEC21F018C12C :102BF00000F119C101F11AC102F11BC103F1120068 :102C00000784BAC166F1BBC167F1BCC168F1BDC13F :102C100069F14BC14FF14CC150F14DC151F14EC161 :102C200052F157C159F158C15AF107940101666731 :102C300021EF16F0676721EF16F0686721EF16F0B5 :102C4000696716D001014F672DEF16F050672DEF21 :102C500016F051672DEF16F052670AD00101000EF1 :102C6000006F000E016F000E026F000E036F120066 :102C700011B80AD00101620E046F010E056F000E3B :102C8000066F000E076F09D00101A70E046F020E38 :102C9000056F000E066F000E076F66C100F167C179 :102CA00001F168C102F169C103F141EC22F003BFF7 :102CB000B9EF16F00101000E046FA80E056F550E56 :102CC000066F020E076F66C100F167C101F168C1AE :102CD00002F169C103F166C18AF167C18BF168C174 :102CE0008CF169C18DF141EC22F003BF09D00101E3 :102CF000000E8A6FA80E8B6F550E8C6F020E8D6FB3 :102D00008AEC21F000C104F101C105F102C106F114 :102D100003C107F1000E006FA00E016F980E026F45 :102D20007B0E036F72EC22F000C118F101C119F1A2 :102D300002C11AF103C11BF1000E006FA00E016F5A :102D4000980E026F7B0E036F8AC104F18BC105F1EF :102D50008CC106F18DC107F172EC22F018C104F1AB :102D600019C105F11AC106F11BC107F141EC22F0AE :102D700012000101A80E006F610E016F000E026FBC :102D8000000E036F4FC104F150C105F151C106F1AE :102D900052C107F141EC22F003AF0AD00101A80EA5 :102DA000006F610E016F000E026F000E036F00D006 :102DB000C80E006FAF0E016F000E026F000E036FA2 :102DC0004FC104F150C105F151C106F152C107F1E3 :102DD00052EC22F012000401730E826F6EEC0BF0C5 :102DE00004012C0E826F6EEC0BF0078462C166F159 :102DF00063C167F164C168F165C169F14BC14FF10D :102E00004CC150F14DC151F14EC152F157C159F170 :102E100058C15AF1079411EC17F078EC0BF083EFDE :102E20001CF066C100F167C101F168C102F169C11E :102E300003F10101DFEC22F0A2EC20F00401630EAB :102E4000826F6EEC0BF004012C0E826F6EEC0BF0B7 :102E50004FC100F150C101F151C102F152C103F162 :102E60000101DFEC22F0A2EC20F00401660E826F7B :102E70006EEC0BF004012C0E826F6EEC0BF056EC36 :102E800023F059C100F15AC101F10101DFEC22F038 :102E9000A2EC20F00401740E826F6EEC0BF01200B5 :102EA00010820401530E826F6EEC0BF004012C0EA5 :102EB000826F6EEC0BF083C32AF184C32BF185C3C0 :102EC0002CF186C32DF187C32EF188C32FF189C35E :102ED00030F18AC331F18BC332F18CC333F101017C :102EE000A4EC23F01BEC23F000C166F101C167F1F3 :102EF00002C168F103C169F18EC32AF18FC32BF1BE :102F000090C32CF191C32DF192C32EF193C32FF1F5 :102F100094C330F195C331F196C332F197C333F1C5 :102F20000101A4EC23F01BEC23F000C14FF101C11F :102F300050F102C151F103C152F197EC23F099C352 :102F40002FF19AC330F19BC331F19CC332F19DC381 :102F500033F10101A4EC23F01BEC23F000C159F183 :102F600001C15AF111EC17F004012C0E826F6EECC6 :102F70000BF0CBEF17F0118E1CA002D01CAE108C02 :102F80001BBE02D01BA4108E03018251520A02E123 :102F90000F8201D00F928251750A02E1108401D094 :102FA00010948251550A02E1108601D01096835187 :102FB000310A03E11382138402D0139213940301A4 :102FC0008351660A01E056D00401660E826F6EECF2 :102FD0000BF004012C0E826F6EEC0BF000EC16F07F :102FE000DFEC22F02AC182F40401300E82276EEC5D :102FF0000BF02BC182F40401300E82276EEC0BF033 :103000002CC182F40401300E82276EEC0BF02DC12E :1030100082F40401300E82276EEC0BF02EC182F494 :103020000401300E82276EEC0BF02FC182F40401F4 :10303000300E82276EEC0BF030C182F40401300EAA :1030400082276EEC0BF031C182F40401300E82272E :103050006EEC0BF032C182F40401300E82276EEC6C :103060000BF033C182F40401300E82276EEC0BF0BA :1030700081EF1CF011A003D011A401D010840784AB :1030800010B2A4EF18F010A488EF18F0BAC166F1DE :10309000BBC167F1BCC168F1BDC169F1BEC16AF1D4 :1030A000BFC16BF1C0C16CF1C1C16DF1C2C16EF1A4 :1030B000C3C16FF1C4C170F1C5C171F1C6C172F174 :1030C000C7C173F1C8C174F1C9C175F1CAC176F144 :1030D000CBC177F1CCC178F1CDC179F1CEC17AF114 :1030E000CFC17BF1D0C17CF1D1C17DF1D2C17EF1E4 :1030F000D3C17FF1D4C180F1D5C181F1D6C182F1B4 :10310000D7C183F1D8C184F1D9C185F190EF18F00E :1031100062C166F163C167F164C168F165C169F1BB :10312000BAC186F1BBC187F1BCC188F1BDC189F1CB :103130004BC14FF14CC150F14DC151F14EC152F153 :1031400057C159F158C15AF107940FA0C6EF18F0B2 :1031500001019667B3EF18F09767B3EF18F098671F :10316000B3EF18F09967B7EF18F0C6EF18F003EC5B :1031700015F096C104F197C105F198C106F199C106 :1031800007F141EC22F003BF47EF1CF003EC15F010 :103190000101000E046F000E056F010E066F000E98 :1031A000076F72EC22F011A02AD011A228D0DFEC18 :1031B00022F0296701D005D004012D0E826F6EEC3C :1031C0000BF030C182F40401300E82276EEC0BF05C :1031D00031C182F40401300E82276EEC0BF032C153 :1031E00082F40401300E82276EEC0BF033C182F4BE :1031F0000401300E82276EEC0BF078EC0BF012A875 :10320000C5D012981DC01EF01E3A1E42070E1E1693 :1032100000011E50000AD8B492EF19F000011E50B0 :10322000010AD8B41EEF19F000011E50020AD8B4EA :103230001CEF19F0C4EF19F0C4EF19F056EC23F0AD :103240002DC001F12EC000F1D89001330033D89089 :10325000013300330101630E046F000E056F000E91 :10326000066F000E076F72EC22F0280E046F000E3E :10327000056F000E066F000E076F41EC22F000C1D3 :1032800030F056EC23F02BC001F1019F019D2CC0C2 :1032900000F10101A40E046F000E056F000E066F11 :1032A000000E076F72EC22F000C12FF000C104F194 :1032B00001C105F102C106F103C107F1640E006FFF :1032C000000E016F000E026F000E036F41EC22F042 :1032D000050E046F000E056F000E066F000E076FDF :1032E00072EC22F000C104F101C105F102C106F146 :1032F00003C107F156EC23F030C000F141EC22F09D :1033000000C131F031C0E8FF050F305C03E78A846B :10331000C4EF19F031C0E8FF0A0F305C01E68A946F :10332000C4EF19F000C124F101C125F102C126F159 :1033300003C127F156EC23F05CEC23F01D501F0B6A :10334000E8CF00F10101640E046F000E056F000E5E :10335000066F000E076F52EC22F024C104F125C164 :1033600005F126C106F127C107F141EC22F003BFA8 :1033700002D08A9401D08A8424C100F125C101F1D0 :1033800026C102F127C103F183EF1CF000C124F133 :1033900001C125F102C126F103C127F110AE4DD0C4 :1033A000109E00C108F101C109F102C10AF103C177 :1033B0000BF1DFEC22F030C1E2F131C1E3F132C1B7 :1033C000E4F133C1E5F108C100F109C101F10AC11D :1033D00002F10BC103F101016C0E046F070E056FC2 :1033E000000E066F000E076F41EC22F003BF04D001 :1033F0000101550EE66F1CD008C100F109C101F1B1 :103400000AC102F10BC103F10101A40E046F060E03 :10341000056F000E066F000E076F41EC22F003BF30 :1034200004D001017F0EE66F03D00101FF0EE66FAD :103430001F8E11AE47EF1CF0119E24C100F125C173 :1034400001F126C102F127C103F111A005D011A29B :1034500003D00FB047EF1CF010A436EF1AF00401B0 :10346000750E826F6EEC0BF03BEF1AF00401720EDA :10347000826F6EEC0BF004012C0E826F6EEC0BF081 :10348000DFEC22F029674AEF1AF00401200E826F68 :103490004DEF1AF004012D0E826F6EEC0BF030C16F :1034A00082F40401300E82276EEC0BF031C182F4FD :1034B0000401300E82276EEC0BF004012E0E826F99 :1034C0006EEC0BF032C182F40401300E82276EECF8 :1034D0000BF033C182F40401300E82276EEC0BF046 :1034E00004016D0E826F6EEC0BF004012C0E826FE6 :1034F0006EEC0BF04FC100F150C101F151C102F16E :1035000052C103F10101DFEC22F0A2EC20F0040132 :10351000480E826F6EEC0BF004017A0E826F6EEC37 :103520000BF004012C0E826F6EEC0BF066C100F103 :1035300067C101F168C102F169C103F10101DFEC6A :1035400022F0A2EC20F00401630E826F6EEC0BF00F :1035500004012C0E826F6EEC0BF066C100F167C1A6 :1035600001F168C102F169C103F101010A0E046FA2 :10357000000E056F000E066F000E076F52EC22F072 :10358000000E046F120E056F000E066F000E076F1F :1035900072EC22F0DFEC22F02AC182F40401300E3A :1035A00082276EEC0BF02BC182F40401300E8227CF :1035B0006EEC0BF02CC182F40401300E82276EEC0D :1035C0000BF02DC182F40401300E82276EEC0BF05B :1035D0002EC182F40401300E82276EEC0BF02FC155 :1035E00082F40401300E82276EEC0BF030C182F4BD :1035F0000401300E82276EEC0BF004012E0E826F58 :103600006EEC0BF031C182F40401300E82276EECB7 :103610000BF032C182F40401300E82276EEC0BF005 :1036200033C182F40401300E82276EEC0BF00401EA :10363000730E826F6EEC0BF004012C0E826F6EEC39 :103640000BF056EC23F059C100F15AC101F1ADEC79 :103650001DF013A27BEF1BF004012C0E826F6EECA9 :103660000BF086C166F187C167F188C168F189C135 :1036700069F103EC15F00101000E046F000E056FF7 :10368000010E066F000E076F72EC22F0DFEC22F0E5 :10369000296750EF1BF00401200E826F53EF1BF0DF :1036A00004012D0E826F6EEC0BF030C182F4040128 :1036B000300E82276EEC0BF031C182F40401300E23 :1036C00082276EEC0BF004012E0E826F6EEC0BF075 :1036D00032C182F40401300E82276EEC0BF033C14C :1036E00082F40401300E82276EEC0BF004016D0EA3 :1036F000826F6EEC0BF003018351460A01E04FD05C :1037000004012C0E826F6EEC0BF000EC16F0DFEC77 :1037100022F02AC182F40401300E82276EEC0BF0F5 :103720002BC182F40401300E82276EEC0BF02CC109 :1037300082F40401300E82276EEC0BF02DC182F46E :103740000401300E82276EEC0BF02EC182F40401CE :10375000300E82276EEC0BF02FC182F40401300E84 :1037600082276EEC0BF030C182F40401300E822708 :103770006EEC0BF031C182F40401300E82276EEC46 :103780000BF032C182F40401300E82276EEC0BF094 :1037900033C182F40401300E82276EEC0BF013A4C7 :1037A000F6EF1BF004012C0E826F6EEC0BF013ACE5 :1037B000E4EF1BF00401500E826F6EEC0BF0139CD3 :1037C0001398139AF6EF1BF013AEF1EF1BF0040100 :1037D000460E826F6EEC0BF0139E1398139AF6EF61 :1037E0001BF00401530E826F6EEC0BF037B00DEF3F :1037F0001CF004012C0E826F6EEC0BF08BB008EF06 :103800001CF00401440E826F6EEC0BF00DEF1CF007 :103810000401530E826F6EEC0BF00FB213EF1CF02D :103820000FA045EF1CF004012C0E826F6EEC0BF024 :10383000200EF86EF76AF66A04010900F5CF82F4EB :103840006EEC0BF00900F5CF82F46EEC0BF0090082 :10385000F5CF82F46EEC0BF00900F5CF82F46EEC3C :103860000BF00900F5CF82F46EEC0BF00900F5CFF8 :1038700082F46EEC0BF00900F5CF82F46EEC0BF0E5 :103880000900F5CF82F46EEC0BF078EC0BF00F90A2 :10389000109E129883EF1CF00401630E826F6EEC91 :1038A0000BF004012C0E826F6EEC0BF089EC1CF017 :1038B00004012C0E826F6EEC0BF0FCEC1CF004018A :1038C0002C0E826F6EEC0BF078EC1DF004012C0EC8 :1038D000826F6EEC0BF00101F80E006FCD0E016FE0 :1038E000660E026F030E036F9EEC1CF004012C0E9B :1038F000826F6EEC0BF08EEC1DF078EC0BF083EF2A :103900001CF078EC0BF00301C26B0790109292EF61 :103910001FF0D8900E0E51EC09F0E8CF00F10F0E19 :1039200051EC09F0E8CF01F1100E51EC09F0E8CFAD :1039300002F1110E51EC09F0E8CF03F10101000E84 :10394000046F000E056F010E066F000E076F72EC1C :1039500022F0DFEC22F02AC182F40401300E82272B :103960006EEC0BF02BC182F40401300E82276EEC5A :103970000BF02CC182F40401300E82276EEC0BF0A8 :103980002DC182F40401300E82276EEC0BF02EC1A3 :1039900082F40401300E82276EEC0BF02FC182F40A :1039A0000401300E82276EEC0BF030C182F404016A :1039B000300E82276EEC0BF031C182F40401300E20 :1039C00082276EEC0BF004012E0E826F6EEC0BF072 :1039D00032C182F40401300E82276EEC0BF033C149 :1039E00082F40401300E82276EEC0BF004016D0EA0 :1039F000826F6EEC0BF01200120E51EC09F0E8CF62 :103A000000F1130E51EC09F0E8CF01F1140E51EC66 :103A100009F0E8CF02F1150E51EC09F0E8CF03F1FF :103A200001010A0E046F000E056F000E066F000EF6 :103A3000076F52EC22F0000E046F120E056F000E9D :103A4000066F000E076F72EC22F0DFEC22F02AC145 :103A500082F40401300E82276EEC0BF02BC182F44D :103A60000401300E82276EEC0BF02CC182F40401AD :103A7000300E82276EEC0BF02DC182F40401300E63 :103A800082276EEC0BF02EC182F40401300E8227E7 :103A90006EEC0BF02FC182F40401300E82276EEC25 :103AA0000BF030C182F40401300E82276EEC0BF073 :103AB00004012E0E826F6EEC0BF031C182F4040112 :103AC000300E82276EEC0BF032C182F40401300E0E :103AD00082276EEC0BF033C182F40401300E822792 :103AE0006EEC0BF00401730E826F6EEC0BF01200A3 :103AF0000A0E51EC09F0E8CF00F10B0E51EC09F081 :103B0000E8CF01F10C0E51EC09F0E8CF02F10D0EF7 :103B100051EC09F0E8CF03F1ADEF1DF0060E51ECCA :103B200009F0E8CF00F1070E51EC09F0E8CF01F100 :103B3000080E51EC09F0E8CF02F1090E51EC09F042 :103B4000E8CF03F1ADEF1DF0010156EC23F007843F :103B500057C100F158C101F107940101E80E046F4B :103B6000800E056F000E066F000E076F52EC22F0FC :103B7000000E046F040E056F000E066F000E076F37 :103B800072EC22F0880E046F130E056F000E066FA4 :103B9000000E076F41EC22F00A0E046F000E056F55 :103BA000000E066F000E076F72EC22F0DFEC22F0C1 :103BB00001012967E1EF1DF00401200E826FE4EF9F :103BC0001DF004012D0E826F6EEC0BF030C182F4FB :103BD0000401300E82276EEC0BF031C182F4040137 :103BE000300E82276EEC0BF032C182F40401300EED :103BF00082276EEC0BF004012E0E826F6EEC0BF040 :103C000033C182F40401300E82276EEC0BF0040104 :103C1000430E826F6EEC0BF0120087C32AF188C34B :103C20002BF189C32CF18AC32DF18BC32EF18CC3E8 :103C30002FF18DC330F18EC331F190C332F191C3B6 :103C400033F10101296BA4EC23F01BEC23F00101FB :103C5000000E046F000E056F010E066F000E076F59 :103C600052EC22F00E0E0C6E00C10BF03AEC09F093 :103C70000F0E0C6E01C10BF03AEC09F0100E0C6E39 :103C800002C10BF03AEC09F0110E0C6E03C10BF0FF :103C90003AEC09F004017A0E826F6EEC0BF004012D :103CA0002C0E826F6EEC0BF00401350E826F6EEC01 :103CB0000BF004012C0E826F6EEC0BF089EC1CF003 :103CC000D9EF14F087C32AF188C32BF189C32CF1F3 :103CD0008AC32DF18BC32EF18CC32FF18DC330F12C :103CE0008EC331F190C332F191C333F10101296BDD :103CF000A4EC23F01BEC23F0880E046F130E056F69 :103D0000000E066F000E076F46EC22F0000E046FE7 :103D1000040E056F000E066F000E076F52EC22F0C6 :103D20000101E80E046F800E056F000E066F000E95 :103D3000076F72EC22F00A0E0C6E00C10BF03AEC29 :103D400009F00B0E0C6E01C10BF03AEC09F00C0EF1 :103D50000C6E02C10BF03AEC09F00D0E0C6E03C1B3 :103D60000BF03AEC09F004017A0E826F6EEC0BF066 :103D700004012C0E826F6EEC0BF00401360E826F84 :103D80006EEC0BF004012C0E826F6EEC0BF078ECF5 :103D90001DF0D9EF14F087C32AF188C32BF189C332 :103DA0002CF18AC32DF18BC32EF18CC32FF18DC35F :103DB00030F18FC331F190C332F191C333F101017E :103DC000A4EC23F01BEC23F0000E046F120E056F21 :103DD000000E066F000E076F52EC22F001010A0E72 :103DE000046F000E056F000E066F000E076F72EC79 :103DF00022F0120E0C6E00C10BF03AEC09F0130E1B :103E00000C6E01C10BF03AEC09F0140E0C6E02C1FD :103E10000BF03AEC09F0150E0C6E03C10BF03AEC06 :103E200009F004017A0E826F6EEC0BF004012C0E87 :103E3000826F6EEC0BF00401370E826F6EEC0BF0AC :103E400004012C0E826F6EEC0BF0FCEC1CF0D9EF31 :103E500014F087C32AF188C32BF189C32CF18AC3DC :103E60002DF18BC32EF18CC32FF18DC330F18EC396 :103E700031F190C332F191C333F10101296BA4EC0C :103E800023F01BEC23F0880E046F130E056F000E59 :103E9000066F000E076F46EC22F0000E046F040E52 :103EA000056F000E066F000E076F52EC22F0010145 :103EB000E80E046F800E056F000E066F000E076F90 :103EC00072EC22F0060E0C6E00C10BF03AEC09F019 :103ED000070E0C6E01C10BF03AEC09F0080E0C6EE7 :103EE00002C10BF03AEC09F0090E0C6E03C10BF0A5 :103EF0003AEC09F004017A0E826F6EEC0BF00401CB :103F00002C0E826F6EEC0BF00401380E826F6EEC9B :103F10000BF004012C0E826F6EEC0BF08EEC1DF09A :103F2000D9EF14F081B803D036B050EF20F007A8D5 :103F30000AEF20F00101800E006F1A0E016F060ECD :103F4000026F000E036F4BC104F14CC105F14DC16E :103F500006F14EC107F141EC22F003BF50EF20F013 :103F60009CEC20F04BC100F14CC101F14DC102F1BC :103F70004EC103F107824EEC21F018C104F119C1C2 :103F800005F11AC106F11BC107F1F80E006FCD0E45 :103F9000016F660E026F030E036F41EC22F00E0EEE :103FA0000C6E00C10BF03AEC09F00F0E0C6E01C163 :103FB0000BF03AEC09F0100E0C6E02C10BF03AEC6B :103FC00009F0110E0C6E03C10BF03AEC09F00784F6 :103FD000010156EC23F057C100F158C101F10794DB :103FE0000A0E0C6E00C10BF03AEC09F00B0E0C6ED1 :103FF00001C10BF03AEC09F00C0E0C6E02C10BF093 :104000003AEC09F00D0E0C6E03C10BF03AEC09F01E :1040100050EF20F007AA50EF20F00784010156EC82 :1040200023F057C100F158C101F10794060E0C6E40 :1040300000C10BF03AEC09F0070E0C6E01C10BF059 :104040003AEC09F0080E0C6E02C10BF03AEC09F0E4 :10405000090E0C6E03C10BF03AEC09F0078462C143 :1040600000F163C101F164C102F165C103F107947C :10407000120E0C6E00C10BF03AEC09F0130E0C6E30 :1040800001C10BF03AEC09F0140E0C6E02C10BF0FA :104090003AEC09F0150E0C6E03C10BF03AEC09F086 :1040A0000798079A0401805181197F0B0DE09EA8A3 :1040B000FED714EE00F081517F0BE126E750812BF3 :1040C0000F01AD6E52EF20F0C0EF0AF018C100F101 :1040D00019C101F11AC102F11BC103F1000E046FF5 :1040E000000E056F010E066F000E076F72EC22F0D6 :1040F00029A191EF20F02051D8B491EF20F018C100 :1041000000F119C101F11AC102F11BC103F1000E46 :10411000046F000E056F0A0E066F000E076F72EC3B :1041200022F0120001010451001305510113065140 :1041300002130751031312000101186B196B1A6B5C :104140001B6B12002AC182F40401300E82276EEC30 :104150000BF02BC182F40401300E82276EEC0BF0C1 :104160002CC182F40401300E82276EEC0BF02DC1BD :1041700082F40401300E82276EEC0BF02EC182F423 :104180000401300E82276EEC0BF02FC182F4040183 :10419000300E82276EEC0BF030C182F40401300E39 :1041A00082276EEC0BF031C182F40401300E8227BD :1041B0006EEC0BF032C182F40401300E82276EECFB :1041C0000BF033C182F40401300E82276EEC0BF049 :1041D00012002FC182F40401300E82276EEC0BF026 :1041E00030C182F40401300E82276EEC0BF031C135 :1041F00082F40401300E82276EEC0BF032C182F49F :104200000401300E82276EEC0BF033C182F40401FE :10421000300E82276EEC0BF01200060E216E060E99 :10422000226E060E236E212E13EF21F0222E13EFA5 :1042300021F0232E13EF21F08B84020E216E020E4B :10424000226E020E236E212E23EF21F0222E23EF69 :1042500021F0232E23EF21F08B941200FF0E226E0B :1042600022C023F0030E216E8B84212E34EF21F027 :10427000030E216E232E34EF21F08B9422C023F005 :10428000030E216E212E42EF21F0030E216E233EFC :1042900042EF21F0222E30EF21F0120001010053F5 :1042A00005E1015303E1025301E1002B11EC22F07F :1042B00056EC23F03951006F3A51016F420E046FF2 :1042C0004B0E056F000E066F000E076F52EC22F0CA :1042D00000C104F101C105F102C106F103C107F1FA :1042E00018C100F119C101F11AC102F11BC103F19A :1042F00007B27FEF21F046EC22F081EF21F041EC94 :1043000022F000C118F101C119F102C11AF103C173 :104310001BF1120056EC23F059C100F15AC101F112 :10432000060E51EC09F0E8CF04F1070E51EC09F04C :10433000E8CF05F1080E51EC09F0E8CF06F1090EBF :1043400051EC09F0E8CF07F141EC22F000C124F173 :1043500001C125F102C126F103C127F1290E046F25 :10436000000E056F000E066F000E076F52EC22F074 :10437000EE0E046F430E056F000E066F000E076F02 :1043800046EC22F024C104F125C105F126C106F155 :1043900027C107F152EC22F000C11CF101C11DF14F :1043A00002C11EF103C11FF1120E51EC09F0E8CF5A :1043B00004F1130E51EC09F0E8CF05F1140E51ECA5 :1043C00009F0E8CF06F1150E51EC09F0E8CF07F13E :1043D0000D0E006F000E016F000E026F000E036FD6 :1043E00052EC22F0180E046F000E056F000E066FDF :1043F000000E076F72EC22F01CC104F11DC105F123 :104400001EC106F11FC107F146EC22F06A0E046FCF :104410002A0E056F000E066F000E076F41EC22F0AA :104420001200BF0EFA6E200E3A6F396BD89000372B :10443000013702370337D8B022EF22F03A2F17EFB7 :1044400022F039073A070353D8B412000331070B9F :1044500080093F6F03390F0B010F396F80EC5FF05C :10446000406F390580EC5FF0405D405F396B3F3352 :10447000D8B0392739333FA937EF22F040513927D7 :10448000120001017BEC23F0D8B0120001010351AE :104490000719346F3EEC23F0D8900751031934AF5D :1044A000800F12000101346B62EC23F0D8A078EC8D :1044B00023F0D8B012004DEC23F056EC23F01F0E81 :1044C000366F8EEC23F00B35D8B03EEC23F0D8A03D :1044D0000335D8B01200362F61EF22F034B165EC0D :1044E00023F012000101346B04510511061107116C :1044F0000008D8A062EC23F0D8A078EC23F0D8B064 :104500001200086B096B0A6B0B6B8EEC23F01F0E0D :10451000366F8EEC23F007510B5DD8A49CEF22F090 :1045200006510A5DD8A49CEF22F00551095DD8A47C :104530009CEF22F00451085DD8A0AFEF22F00451A7 :10454000085F0551D8A0053D095F0651D8A0063D7A :104550000A5F0751D8A0073D0B5FD8900081362F26 :1045600089EF22F034B165EC23F0346B62EC23F078 :10457000D89092EC23F007510B5DD8A4CCEF22F039 :1045800006510A5DD8A4CCEF22F00551095DD8A4EC :10459000CCEF22F00451085DD8A0DBEF22F0003F01 :1045A000DBEF22F0013FDBEF22F0023FDBEF22F0F6 :1045B000032BD8B4120034B165EC23F012000101D2 :1045C000346B62EC23F0D8B0120097EC23F0200E8D :1045D000366F003701370237033711EE33F00A0E1A :1045E000376FE7360A0EE75CD8B0E76EE552372F33 :1045F000F1EF22F0362FE9EF22F034B12981D89083 :10460000120097EC23F0200E366F00370137023787 :10461000033711EE33F00A0E376FE7360A0EE75C08 :10462000D8B0E76EE552372F0DEF23F0362F05EFA8 :1046300023F0D890120001010A0E346F200E366F5D :1046400011EE29F03451376F0A0ED890E652D8B0E7 :10465000E726E732372F26EF23F003330233013307 :104660000033362F20EF23F0E750FF0FD8A003359B :10467000D8B0120029B165EC23F0120004510027D4 :104680000551D8B0053D01270651D8B0063D022797 :104690000751D8B0073D032712000051086F0151A0 :1046A000096F02510A6F03510B6F12000101006B79 :1046B000016B026B036B12000101046B056B066B4F :1046C000076B12000335D8A012000351800B001FA6 :1046D000011F021F031F003F75EF23F0013F75EF1D :1046E00023F0023F75EF23F0032B342B0325120038 :1046F0000735D8A012000751800B041F051F061FA5 :10470000071F043F8BEF23F0053F8BEF23F0063F9D :104710008BEF23F0072B342B0725120000370137CE :1047200002370337083709370A370B371200010100 :10473000296B2A6B2B6B2C6B2D6B2E6B2F6B306BBD :10474000316B326B336B120001012A510F0B2A6F50 :104750002B510F0B2B6F2C510F0B2C6F2D510F0B5F :104760002D6F2E510F0B2E6F2F510F0B2F6F3051BE :104770000F0B306F31510F0B316F32510F0B326F06 :1047800033510F0B336F120000C124F101C125F129 :1047900002C126F103C127F104C100F105C101F1F5 :1047A00006C102F107C103F124C104F125C105F1DD :1047B00026C106F127C107F1120000011950FF0AB6 :1047C00001E11200390EC86E800EC76E280EC66E4B :1047D000000EC56E1850000AD8B418EF24F0185017 :1047E000010AD8B431EF24F01850020AD8B44AEFC5 :1047F00024F01850030AD8B463EF24F01850040AC8 :10480000D8B48BEF24F01850050AD8B4A4EF24F0E4 :104810001850060AD8B4BDEF24F01850070AD8B4CF :10482000D6EF24F01850080AD8B4EFEF24F01200A5 :104830001950000AD8B40EEF25F01950010AD8B467 :1048400012EF25F01950020AD8B416EF25F01950CE :10485000030AD8B41AEF25F01950040AD8B48DEF22 :1048600025F01950000AD8B422EF25F01950010A9A :10487000D8B426EF25F01950020AD8B42AEF25F053 :104880001950030AD8B42EEF25F01950040AD8B4F1 :104890008DEF25F01950000AD8B432EF25F01950E9 :1048A000010AD8B436EF25F01950020AD8B43AEF0D :1048B00025F01950030AD8B43EEF25F01950040A28 :1048C000D8B48DEF25F01950000AD8B44BEF25F07D :1048D0001950010AD8B44FEF25F01950020AD8B484 :1048E00053EF25F01950030AD8B467EF25F019509B :1048F000040AD8B46BEF25F01950050AD8B46FEF4D :1049000025F01950060AD8B473EF25F01950070A9C :10491000D8B476EF25F01950000AD8B47AEF25F014 :104920001950010AD8B47EEF25F01950020AD8B404 :1049300082EF25F01950030AD8B486EF25F01950FC :10494000040AD8B489EF25F01950000AD8B491EFC1 :1049500025F01950010AD8B495EF25F01950020A34 :10496000D8B499EF25F01950030AD8B49DEF25F07B :104970001950040AD8B48DEF25F01950000AD8B4A4 :10498000A7EF25F01950010AD8B4ABEF25F0195064 :10499000020AD8B4AFEF25F01950030AD8B4B3EF28 :1049A00025F01950040AD8B48DEF25F01950000AEB :1049B000D8B4B4EF25F01950010AD8B4B8EF25F0F7 :1049C0001950020AD8B4BCEF25F01950030AD8B424 :1049D000C0EF25F01950040AD8B48DEF25F0195016 :1049E000000AD8B4C1EF25F01950010AD8B4C5EFB8 :1049F00025F01950020AD8B4C9EF25F01950030A5E :104A0000D8B4CDEF25F01950040AD8B4CEEF25F074 :104A10001950050AD8B4D1EF25F012009E96C58032 :104A2000192A1200E20EC96E192A1200770EC96EF9 :104A3000192A1200020EE86E8AB4E88AE8CFC9FF8C :104A4000192A12009E96C580192A1200E20EC96E1C :104A5000192A1200790EC96E192A1200000EC96EA9 :104A6000192A12009E96C580192A1200E20EC96EFC :104A7000192A12007A0EC96E192A12001BBC03D023 :104A8000E6C1E8FF04D01B50E844E8441F09E8CF22 :104A9000C9FF192A12009E96C580192A1200E20E3B :104AA000C96E192A120011BA03D011BC01D003D06B :104AB000050E186E3ED00101E26763EF25F0100E7F :104AC000C96E65EF25F0E2C1C9FF192A1200E3C1E2 :104AD000C9FF192A1200E4C1C9FF192A1200E5C151 :104AE000C9FF192A1200C584192A1200FF0E196E77 :104AF000209E12009E96C580192A1200E20EC96EF1 :104B0000192A1200760EC96E192A1200C584192AB4 :104B10001200FF0E196E209E1200C584182A196A11 :104B200012009E96C580192A1200E20EC96E192A3B :104B300012007B0EC96E192A120011AA04D0230E8E :104B4000C96E192A12001C0EC96E192A12009E96EF :104B5000C580192A1200E20EC96E192A12007C0EB5 :104B6000C96E192A1200E9D79E96C580192A12002B :104B7000E20EC96E192A12007D0EC96E192A1200A2 :104B8000DCD79E96C580192A1200E20EC96E192A3A :104B900012007E0EC96E192A1200CFD7C584192AB9 :104BA0001200FF0E196E209E12001950FF0AD8B491 :104BB00093EF26F0390EC86E800EC76E280EC66EB3 :104BC000000EC56E1850000AD8B4EEEF25F018504C :104BD000010AD8B402EF26F093EF26F01950000A2C :104BE000D8B440EF26F01950010AD8B444EF26F0AB :104BF0001950020AD8B44EEF26F01950030AD8B45F :104C000051EF26F01950000AD8B457EF26F019508A :104C1000010AD8B45BEF26F01950020AD8B465EF48 :104C200026F01950030AD8B468EF26F01950040A88 :104C3000D8B46EEF26F01950050AD8B471EF26F0FB :104C40001950060AD8B477EF26F01950070AD8B4DD :104C50007AEF26F01950080AD8B480EF26F01950E0 :104C6000090AD8B483EF26F019500A0AD8B489EF9C :104C700026F019500B0AD8B48CEF26F093EF26F0EB :104C80009E96C58092EF26F01AB004D04E0EC96EE3 :104C900092EF26F0500EC96E92EF26F0C58492EF87 :104CA00026F0182AFF0E196E128093EF26F09E96BA :104CB000C58092EF26F01AB004D04F0EC96E92EF65 :104CC00026F0510EC96E92EF26F0C58692EF26F0BF :104CD000C9CF27F0C59AC58892EF26F0C58692EF16 :104CE00026F0C9CF28F0C59AC58892EF26F0C58670 :104CF00092EF26F0C9CF29F0C59AC58892EF26F029 :104D0000C58692EF26F0C9CF2AF0C58AC58892EFF2 :104D100026F0C58492EF26F0FF0E196E1286209CB5 :104D200093EF26F0192A120012B012D012B213D04B :104D300012B414D012A6120007B01200129627C0A7 :104D40002BF028C02CF029C02DF02AC02EF0120024 :104D50001290128212001292128412000001195055 :104D6000FF0A04E11294196AD5EC25F012001950DB :104D7000FF0AD8B493EF26F07CEC27F01850000A15 :104D8000D8B4CAEF26F01850010AD8B408EF27F0BB :104D900093EF26F01950000AD8B43CEF27F01950D1 :104DA000010AD8B441EF27F01950020AD8B445EFF0 :104DB00027F01950030AD8B449EF27F01950040A14 :104DC000D8B451EF27F01950050AD8B454EF27F0A2 :104DD0001950060AD8B45BEF27F01950070AD8B467 :104DE0005EEF27F01950080AD8B465EF27F0195084 :104DF000090AD8B468EF27F019500A0AD8B46FEF3F :104E000027F019500B0AD8B472EF27F093EF26F071 :104E10001950000AD8B478EF27F01950010AD8B415 :104E200078EF27F01950020AD8B478EF27F019501C :104E3000030AD8B478EF27F01950040AD8B478EFF1 :104E400027F01950050AD8B478EF27F01950060A50 :104E5000D8B478EF27F01950070AD8B478EF27F0C4 :104E60001950080AD8B478EF27F01950090AD8B4B5 :104E700078EF27F093EF26F09E96C596C5807AEFDF :104E800027F0520EC96E7AEF27F0B40EC96E7AEF92 :104E900027F0C9CF32F0326AC586C59AC5887AEF45 :104EA00027F0C5867AEF27F0C9CF33F0336AC59A69 :104EB000C5887AEF27F0C5867AEF27F0C9CF34F09E :104EC000346AC59AC5887AEF27F0C5867AEF27F04D :104ED000C9CF35F0356AC58AC5887AEF27F0C58411 :104EE0007AEF27F0FF0E196E1286209C7BEF27F0D9 :104EF0007BEF27F0192A1200390EC86E800EC76E9C :0A4F0000280EC66E000EC56E1200EA :10BF0000E844F926000C160C2B0C3F0C520C640C68 :10BF1000760C860C960CA50CB30CC10CCF0CDC0C6B :06BF2000E80CF40C000C1B :00000001FF ./firmware/SQM-LU-DL-V-4-11-74.hex0000644000175000017500000026660613602416462015771 0ustar anthonyanthony:020000040000FA :040800003CEF0CF0CD :1008100003B275EF05F0F2B493EF05F09EB09BEFD5 :1008200005F09EB2A3EF05F0F2A81AEF04F0F2B2C1 :1008300023EF04F0F2B01FEF04F0EBEF0BF0F296B1 :10084000F290EBEF0BF0CD90F2929EA02DEF04F022 :100850000101533F2DEF04F0542BB2C1B6F1B3C1E7 :10086000B7F1B4C1B8F1B5C1B9F1AEC1B2F1AFC120 :10087000B3F1B0C1B4F1B1C1B5F1AAC1AEF1ABC130 :10088000AFF1ACC1B0F1ADC1B1F1A6C1AAF1A7C140 :10089000ABF1A8C1ACF1A9C1ADF1A2C1A6F1A3C150 :1008A000A7F1A4C1A8F1A5C1A9F19EC1A2F19FC160 :1008B000A3F1A0C1A4F1A1C1A5F19AC19EF19BC170 :1008C0009FF19CC1A0F19DC1A1F1CECF9AF1CFCFF4 :1008D0009BF153C19CF154C19DF1CF6ACE6A0101D5 :1008E000536B546B9E90CD800FBC0F8E0FBA7CEF74 :1008F00004F00F8AEBEF0BF013880F8C0FBEB9EFEB :1009000004F09AC19EF19BC19FF19CC1A0F19DC1D1 :10091000A1F19EC1A2F19FC1A3F1A0C1A4F1A1C107 :10092000A5F1A2C1A6F1A3C1A7F1A4C1A8F1A5C1D7 :10093000A9F1A6C1AAF1A7C1ABF1A8C1ACF1A9C1A7 :10094000ADF1AAC1AEF1ABC1AFF1ACC1B0F1ADC177 :10095000B1F1AEC1B2F1AFC1B3F1B0C1B4F1B1C147 :10096000B5F1B2C1B6F1B3C1B7F1B4C1B8F1B5C117 :10097000B9F101015E6B5F6B606B616B9A515E2731 :100980009B515F239C5160239D5161239E515E27A3 :100990009F515F23A0516023A1516123A2515E2783 :1009A000A3515F23A4516023A5516123A6515E2763 :1009B000A7515F23A8516023A9516123AA515E2743 :1009C000AB515F23AC516023AD516123AE515E2723 :1009D000AF515F23B0516023B1516123B2515E2703 :1009E000B3515F23B4516023B5516123B6515E27E3 :1009F000B7515F23B8516023B9516123D8900101E9 :100A0000613360335F335E33D8900101613360330B :100A10005F335E33D8900101613360335F335E33FF :100A200000C10CF101C10DF102C10EF103C10FF1C2 :100A300004C110F105C111F106C112F107C113F192 :100A400008C114F109C115F10AC116F10BC117F162 :100A500034C135F111B838EF05F00101620E046FB1 :100A6000010E056F000E066F000E076F41EF05F0D7 :100A70000101A70E046F020E056F000E066F000E37 :100A8000076F5EC100F15FC101F160C102F161C198 :100A900003F1F5EC39F003BF04D01CBE02D01CA05A :100AA000108C11A059EF05F010BA59EF05F00F8026 :100AB000108A0CC100F10DC101F10EC102F10FC18C :100AC00003F110C104F111C105F112C106F113C106 :100AD00007F114C108F115C109F116C10AF117C1D6 :100AE0000BF135C134F1EBEF0BF00392ABB2AB98E5 :100AF000AB88030103EE00F080517F0BE92604C0B0 :100B0000EFFF802B8151805D700BD8A48B82000099 :100B10008051815D700BD8A48B9281518019D8B41B :100B20000790EBEF0BF0F2940101453FEBEF0BF078 :100B3000462BEBEF0BF09E900101533FEBEF0BF0D8 :100B4000542BEBEF0BF09E9211B895EF08F00400D8 :100B500066A1ABEF05F08BB4B5EF05F010ACB5EFC7 :100B600005F08B84109CB6EF05F08B9407B408EF6A :100B700006F007B008EF06F01EC620F61FC621F6E5 :100B80001CC61EF61DC61FF61AC61CF61BC61DF691 :100B900006C608F607C609F604C606F605C607F631 :100BA00002C604F603C605F626C628F627C629F6A9 :100BB00024C626F625C627F622C624F623C625F621 :100BC0000EC610F60FC611F60CC60EF60DC60FF6C1 :100BD0000AC60CF60BC60DF62EC630F62FC631F639 :100BE0002CC62EF62DC62FF62AC62CF62BC62DF6B1 :100BF00016C618F617C619F614C616F615C617F651 :100C000012C614F613C615F609EC3CF0B7EC3BF02F :100C1000077C07AC23EF06F0C274C2B41DEF06F0E8 :100C2000C3CFB7F5C4CFB8F50501D890B833B73303 :100C3000D890B833B73324EF06F0C3CF55F1C4CF03 :100C400056F124EF06F0C28207B496EF06F047C1D2 :100C50004BF148C14CF149C14DF14AC14EF15EC161 :100C600062F15FC163F160C164F161C165F113A814 :100C70003CEF06F0138C13989AC1BAF19BC1BBF1FB :100C80009CC1BCF19DC1BDF19EC1BEF19FC1BFF130 :100C9000A0C1C0F1A1C1C1F1A2C1C2F1A3C1C3F100 :100CA000A4C1C4F1A5C1C5F1A6C1C6F1A7C1C7F1D0 :100CB000A8C1C8F1A9C1C9F1AAC1CAF1ABC1CBF1A0 :100CC000ACC1CCF1ADC1CDF1AEC1CEF1AFC1CFF170 :100CD000B0C1D0F1B1C1D1F1B2C1D2F1B3C1D3F140 :100CE000B4C1D4F1B5C1D5F1B6C1D6F1B7C1D7F110 :100CF000B8C1D8F1B9C1D9F1B7C5B9F5B8C5BAF518 :100D0000B9C5BBF5BAC5BCF5010155515B275651B4 :100D10005C23E86A5D230E2E96EF06F05CC157F166 :100D20005DC158F15B6B5C6B5D6B078E0201002F40 :100D3000EBEF0BF03C0E006F1D50E00BE00AE86695 :100D400012881BBE02D01BB4108E00C10CF101C171 :100D50000DF102C10EF103C10FF104C110F105C183 :100D600011F106C112F107C113F108C114F109C153 :100D700015F10AC116F10BC117F134C135F181AA81 :100D8000FEEF06F015A449EF07F005012F51000A08 :100D9000D8B48CEF07F005012F51010AD8B408EF41 :100DA00007F005012F51020AD8B449EF07F00501F9 :100DB0002F51030AD8B449EF07F005012F51040A57 :100DC000D8B449EF07F005012F51050AD8B449EF0F :100DD00007F005012F51060AD8B449EF07F00501C5 :100DE0002F51070AD8B449EF07F005012F51320AF5 :100DF000D8B406EF07F02F6B8CEF07F00001165008 :100E0000030AD8B449EF07F08CEF07F08CEF07F036 :100E10000501576713EF07F0586713EF07F059679D :100E200013EF07F05A6717EF07F08CEF07F05BC579 :100E300000F15CC501F15DC502F15EC503F1010180 :100E4000010E046F000E056F000E066F000E076F97 :100E5000F5EC39F000C15BF501C15CF502C15DF54F :100E600003C15EF5010100673DEF07F001673DEF4B :100E700007F002673DEF07F003678CEF07F057C5F7 :100E80005BF558C55CF559C55DF55AC55EF576EF5D :100E900007F00FBE5EEF07F010A063EF07F001014F :100EA00047675AEF07F048675AEF07F049675AEF6C :100EB00007F04A675EEF07F063EF07F007AE63EFF6 :100EC00007F076EF07F00501312F8CEF07F03C0EAD :100ED000316F302F8CEF07F00101000E626FE00ED2 :100EE000636FA50E646F010E656F138800011650C5 :100EF000000AD8B484EF07F000011650030AD8B4F2 :100F000089EF07F08CEF07F00001010E166E8CEFF1 :100F100007F00001040E166E0501666B37B792EFFD :100F200007F066810CC100F10DC101F10EC102F1A3 :100F30000FC103F110C104F111C105F112C106F195 :100F400013C107F114C108F115C109F116C10AF165 :100F500017C10BF135C134F100C10CF101C10DF124 :100F600002C10EF103C10FF104C110F105C111F16D :100F700006C112F107C113F108C114F109C115F13D :100F80000AC116F10BC117F134C135F101018E67A9 :100F9000D1EF07F08F67D1EF07F09067D1EF07F03F :100FA0009167D5EF07F006EF08F092C100F193C109 :100FB00001F194C102F195C103F10101010E046F29 :100FC000000E056F000E066F000E076FF5EC39F08E :100FD00000C192F101C193F102C194F103C195F1F5 :100FE00001010067FBEF07F00167FBEF07F0026705 :100FF000FBEF07F0036706EF08F08EC192F18FC197 :1010000093F190C194F191C195F10F80D57ED5BE39 :101010006ED0D6CF47F1D7CF48F145C149F1E86A44 :10102000E8CF4AF1138A1CBE02D01CA0108C10908D :1010300047C100F148C101F149C102F14AC103F1C0 :1010400001010A0E046F000E056F000E066F000E00 :10105000076FF5EC39F003AF1080010154A73DEFA5 :1010600008F00F9A0F9C0F9E0101000E5E6F600E3C :101070005F6F3D0E606F080E616F010147BF4DEF5E :1010800008F048674DEF08F049674DEF08F04A67F0 :101090004DEF08F0F28872EF08F0F2985E6B5F6B2C :1010A000606B616B9A6B9B6B9C6B9D6B9E6B9F6B7C :1010B000A06BA16BA26BA36BA46BA56BA66BA76BBC :1010C000A86BA96BAA6BAB6BAC6BAD6BAE6BAF6B6C :1010D000B06BB16BB26BB36BB46BB56BB66BB76B1C :1010E000B86BB96BD76AD66A0101456B466B0CC108 :1010F00000F10DC101F10EC102F10FC103F110C1E8 :1011000004F111C105F112C106F113C107F114C1B7 :1011100008F115C109F116C10AF117C10BF135C16A :1011200034F1EBEF0BF0EBEF0BF00201002FFDEFD2 :101130000AF0D59ED6CF47F1D7CF48F145C149F146 :10114000E86AE8CF4AF1138AD76AD66A0101456B8B :10115000466BD58E1D50E00BE00AE86612881BBE78 :1011600002D01BB4108E1AAE1F8C00C10CF101C14D :101170000DF102C10EF103C10FF104C110F105C15F :1011800011F106C112F107C113F108C114F109C12F :1011900015F10AC116F10BC117F134C135F10FA0D9 :1011A000109A11B8DFEF08F00101620E046F010E12 :1011B000056F000E066F000E076FE8EF08F00101E3 :1011C000A70E046F020E056F000E066F000E076F6C :1011D00047C100F148C101F149C102F14AC103F11F :1011E000F5EC39F003BFFBEF08F01CBE02D01CA0E9 :1011F000108C11B00F800CC100F10DC101F10EC1B6 :1012000002F10FC103F110C104F111C105F112C1C6 :1012100006F113C107F114C108F115C109F116C196 :101220000AF117C10BF135C134F102013C0E006F18 :1012300000C10CF101C10DF102C10EF103C10FF1AA :1012400004C110F105C111F106C112F107C113F17A :1012500008C114F109C115F10AC116F10BC117F14A :1012600034C135F181BA38EF09F015B277EF09F0E2 :1012700015A077EF09F015A4C2EF09F005012F5171 :10128000000AD8B405EF0AF005012F51010AD8B4BD :1012900081EF09F005012F51020AD8B4C2EF09F01D :1012A00005012F51030AD8B4C2EF09F005012F51EF :1012B000040AD8B4C2EF09F005012F51050AD8B4C9 :1012C000C2EF09F005012F51060AD8B4C2EF09F0A8 :1012D00005012F51070AD8B4C2EF09F005012F51BB :1012E000320AD8B47FEF09F02F6B05EF0AF0000146 :1012F0001650030AD8B4C2EF09F005EF0AF005EF63 :101300000AF0050157678CEF09F058678CEF09F078 :1013100059678CEF09F05A6790EF09F005EF0AF072 :101320005BC500F15CC501F15DC502F15EC503F16D :101330000101010E046F000E056F000E066F000E16 :10134000076FF5EC39F000C15BF501C15CF502C136 :101350005DF503C15EF501010067B6EF09F00167B5 :10136000B6EF09F00267B6EF09F0036705EF0AF080 :1013700057C55BF558C55CF559C55DF55AC55EF5B1 :10138000EFEF09F00FBED7EF09F010A0DCEF09F086 :1013900001014767D3EF09F04867D3EF09F04967C8 :1013A000D3EF09F04A67D7EF09F0DCEF09F007AE99 :1013B000DCEF09F0EFEF09F00501312F05EF0AF03E :1013C0003C0E316F302F05EF0AF00101000E626F05 :1013D000E00E636FA50E646F010E656F1388000148 :1013E0001650000AD8B4FDEF09F000011650030AA8 :1013F000D8B402EF0AF005EF0AF00001010E166EF4 :1014000005EF0AF00001040E166E0501666B37B792 :101410000BEF0AF066810CC100F10DC101F10EC1A4 :1014200002F10FC103F110C104F111C105F112C1A4 :1014300006F113C107F114C108F115C109F116C174 :101440000AF117C10BF135C134F100C10CF101C132 :101450000DF102C10EF103C10FF104C110F105C17C :1014600011F106C112F107C113F108C114F109C14C :1014700015F10AC116F10BC117F134C135F10101A3 :101480008E674AEF0AF08F674AEF0AF090674AEFDB :101490000AF091674EEF0AF07FEF0AF092C100F177 :1014A00093C101F194C102F195C103F10101010E53 :1014B000046F000E056F000E066F000E076FF5EC4F :1014C00039F000C192F101C193F102C194F103C15D :1014D00095F10101006774EF0AF0016774EF0AF0FB :1014E000026774EF0AF003677FEF0AF08EC192F192 :1014F0008FC193F190C194F191C195F10F8010903B :1015000047C100F148C101F149C102F14AC103F1EB :1015100001010A0E046F000E056F000E066F000E2B :10152000076FF5EC39F003AF1080010154A7A5EF68 :101530000AF00F9A0F9C0F9E0101000E5E6F600E65 :101540005F6F3D0E606F080E616F47C100F148C1CB :1015500001F149C102F14AC103F10101140E046F06 :10156000050E056F000E066F000E076FF5EC39F0E3 :1015700003AFBEEF0AF0F288E3EF0AF0F2985E6B79 :101580005F6B606B616B9A6B9B6B9C6B9D6B9E6BD7 :101590009F6BA06BA16BA26BA36BA46BA56BA66BDF :1015A000A76BA86BA96BAA6BAB6BAC6BAD6BAE6B8F :1015B000AF6BB06BB16BB26BB36BB46BB56BB66B3F :1015C000B76BB86BB96B0CC100F10DC101F10EC165 :1015D00002F10FC103F110C104F111C105F112C1F3 :1015E00006F113C107F114C108F115C109F116C1C3 :1015F0000AF117C10BF135C134F104008BB408EFC7 :101600000BF010AC08EF0BF08B84109C09EF0BF083 :101610008B9407B45BEF0BF007B05BEF0BF01EC6CB :1016200020F61FC621F61CC61EF61DC61FF61AC6DA :101630001CF61BC61DF606C608F607C609F604C644 :1016400006F605C607F602C604F603C605F626C664 :1016500028F627C629F624C626F625C627F622C66A :1016600024F623C625F60EC610F60FC611F60CC6D4 :101670000EF60DC60FF60AC60CF60BC60DF62EC6F4 :1016800030F62FC631F62CC62EF62DC62FF62AC6FA :101690002CF62BC62DF616C618F617C619F614C664 :1016A00016F615C617F612C614F613C615F609EC8B :1016B0003CF0B7EC3BF0077C07AC76EF0BF0C27464 :1016C000C2B470EF0BF0C3CFB7F5C4CFB8F50501C6 :1016D000D890B833B733D890B833B73377EF0BF02F :1016E000C3CF55F1C4CF56F177EF0BF0C28207B4E8 :1016F000E9EF0BF047C14BF148C14CF149C14DF145 :101700004AC14EF15EC162F15FC163F160C164F133 :1017100061C165F113A88FEF0BF0138C13989AC178 :10172000BAF19BC1BBF19CC1BCF19DC1BDF19EC191 :10173000BEF19FC1BFF1A0C1C0F1A1C1C1F1A2C161 :10174000C2F1A3C1C3F1A4C1C4F1A5C1C5F1A6C131 :10175000C6F1A7C1C7F1A8C1C8F1A9C1C9F1AAC101 :10176000CAF1ABC1CBF1ACC1CCF1ADC1CDF1AEC1D1 :10177000CEF1AFC1CFF1B0C1D0F1B1C1D1F1B2C1A1 :10178000D2F1B3C1D3F1B4C1D4F1B5C1D5F1B6C171 :10179000D6F1B7C1D7F1B8C1D8F1B9C1D9F1B7C540 :1017A000B9F5B8C5BAF5B9C5BBF5BAC5BCF50101FF :1017B00055515B2756515C23E86A5D230E2EE9EFF5 :1017C0000BF05CC157F15DC158F15B6B5C6B5D6BFD :1017D000078EEBEF0BF002C0E0FF005001C0D8FF16 :1017E0001000A6B2F1EF0BF00CC0A9FF0BC0A8FFD0 :1017F000A69EA69CA684F29E550EA76EAA0EA76E64 :10180000A682F28EA694A6B203EF0CF00C2A120068 :10181000A96EA69EA69CA680A8500C2A12000401C0 :101820002C0E826F70EC0FF00AEC3BF00C5008ECC1 :101830000CF0E8CF00F10C5008EC0CF0E8CF01F10F :1018400001AF28EF0CF00101FF0E026FFF0E036FD6 :1018500093EC3AF0296734EF0CF00401200E826F0C :1018600070EC0FF039EF0CF004012D0E826F70EC6C :101870000FF09DEC38F0120015941596076A0F6A68 :10188000106A116A126A136A166A0F010D0EC16E90 :10189000860EC06E030EC26E0F01680E896E130EA7 :1018A000926E080E8A6E8A6AF30E936E8B6A900EA1 :1018B000946EC80E08EC0CF0E8CFE8FF1098E8A092 :1018C000108810A805D00E0E256E8E0E266E04D040 :1018D0000F0E256E8F0E266EDAEC3CF025EC3EF0F6 :1018E000F18EF19EFC0E08EC0CF0E8CF0BF00BA093 :1018F00011800BA211820BA411840BA81188C90EB0 :1019000008EC0CF0E8CF1AF0CA0E08EC0CF0E8CFA7 :101910001BF0CB0E08EC0CF0E8CF1CF0CC0E08EC62 :101920000CF0E8CF1DF0FB0E08EC0CF0E8CF37F020 :10193000CE0E08EC0CF0E8CF14F0CD0E08EC0CF055 :10194000E8CF36F01F6A206A0E6A01015B6B5C6BA0 :101950005D6B576B586BF29A0101476B486B496B93 :101960004A6B4B6B4C6B4D6B4E6B4F6B506B516BB3 :10197000526B456B466BD76AD66A0F01280ED56E3F :10198000F28A9D90B00ECD6E01015E6B5F6B606B55 :10199000616B626B636B646B656B666B676B686BCB :1019A000696B536B546BCF6ACE6A0F9A0F9C0F9E74 :1019B0009D80760ECA6E9D8202013C0E006FCC6A3D :1019C000160E08EC0CF0E8CF00F1170E08EC0CF046 :1019D000E8CF01F1180E08EC0CF0E8CF02F1190E77 :1019E00008EC0CF0E8CF03F1010103AF12EF0DF0AA :1019F0000AEC3BF0160E0C6E00C10BF0F1EC0BF094 :101A0000170E0C6E01C10BF0F1EC0BF0180E0C6E02 :101A100002C10BF0F1EC0BF0190E0C6E03C10BF0D0 :101A2000F1EC0BF000C18EF101C18FF102C190F118 :101A300003C191F100C192F101C193F102C194F18E :101A400003C195F11A0E08EC0CF0E8CF00F11B0E63 :101A500008EC0CF0E8CF01F11C0E08EC0CF0E8CF1C :101A600002F11D0E08EC0CF0E8CF03F1010103AF09 :101A700068EF0DF00AEC3BF01A0E0C6E00C10BF093 :101A8000F1EC0BF01B0E0C6E01C10BF0F1EC0BF046 :101A90001C0E0C6E02C10BF0F1EC0BF01D0E0C6E67 :101AA00003C10BF0F1EC0BF01A0E08EC0CF0E8CFD0 :101AB00000F11B0E08EC0CF0E8CF01F11C0E08EC55 :101AC0000CF0E8CF02F11D0E08EC0CF0E8CF03F1AA :101AD00000C196F101C197F102C198F103C199F1DA :101AE000240EAC6E900EAB6E240EAC6E080EB86E6B :101AF000000EB06E1F0EAF6E0401806B816B0F0184 :101B0000900EAB6E0F019D8A0301806B816BC26BDF :101B10008B927FEC41F07FEC41F0880E08EC0CF0EA :101B2000E8CF00F1890E08EC0CF0E8CF01F10101DB :101B300001AFB3EF0DF00AEC3BF0880E0C6E00C164 :101B40000BF0F1EC0BF0890E0C6E01C10BF0F1EC17 :101B50000BF0880E08EC0CF0E8CF00F1890E08ECD1 :101B60000CF0E8CF01F100C140F601C141F602C11D :101B700042F603C143F65DEC45F05DEC3FF0200E0C :101B800008EC0CF0E8CF2FF505012F51FF0AD8A47F :101B9000D1EF0DF02F6B200E0C6E2FC50BF0F1EC7A :101BA0000BF00501010E306F3C0E316F250E08EC75 :101BB0000CF0E8CF00F1260E08EC0CF0E8CF01F1B4 :101BC000270E08EC0CF0E8CF02F1280E08EC0CF020 :101BD000E8CF03F1010103AF08EF0EF00AEC3BF090 :101BE000250E0C6E00C10BF0F1EC0BF0260E0C6E06 :101BF00001C10BF0F1EC0BF0270E0C6E02C10BF0E3 :101C0000F1EC0BF0280E0C6E03C10BF0F1EC0BF0B5 :101C100000C157F501C158F502C159F503C15AF584 :101C200000C15BF501C15CF502C15DF503C15EF564 :101C3000290E08EC0CF0E8CF5FF5050160515F5DFF :101C4000D8A05FC560F5210E08EC0CF0E8CF00F1DC :101C5000220E08EC0CF0E8CF01F1230E08EC0CF09A :101C6000E8CF02F1240E08EC0CF0E8CF03F10101FB :101C700003AF69EF0EF00AEC3BF0210E0C6E00C1D1 :101C80000BF0F1EC0BF0220E0C6E01C10BF0F1EC3D :101C90000BF0230E0C6E02C10BF0F1EC0BF0240ED6 :101CA0000C6E03C10BF0F1EC0BF0210E08EC0CF004 :101CB000E8CF00F1220E08EC0CF0E8CF01F1230E82 :101CC00008EC0CF0E8CF02F1240E08EC0CF0E8CFA1 :101CD00003F100C161F501C162F502C163F503C101 :101CE00064F5A5EC3EF08BEC3DF0E3EC3CF0159098 :101CF000C70E08EC0CF0E8CF00F1010100B184EF51 :101D00000EF0159285EF0EF0158281AA93EF0EF07A :101D100015B48EEF0EF0158093EF0EF09CEC45F0AD :101D200015A003EF46F05BEC3CF007900001F28E4B :101D3000F28C12AE03D012BC1CEF21F007B02FEFD3 :101D400036F00FB02BEF2FF010BE2BEF2FF012B8A4 :101D50002BEF2FF000011650010AD8B424EF27F022 :101D600081BABBEF0EF000011650040AD8B4C8EFD8 :101D700023F0C1EF0EF000011650040AD8B460EF52 :101D800027F00301805181197F0BD8B42FEF36F073 :101D900013EE00F081517F0BE126812BE7CFE8FFA6 :101DA000E00BD8B42FEF36F023EE82F0C2513F0B98 :101DB000D926E7CFDFFFC22BDF50780AD8A42FEF58 :101DC00036F0078092C100F193C101F194C102F194 :101DD00095C103F10101040E046F000E056F000EA2 :101DE000066F000E076FF5EC39F000AF01EF0FF052 :101DF0000101030E926F000E936F000E946F000EA0 :101E0000956F03018251720AD8B4ACEF2EF0825163 :101E1000520AD8B4ACEF2EF08251750AD8B4ACEFA8 :101E20002EF08251680AD8B484EF0FF08251630A11 :101E3000D8B4E9EF32F08251690AD8B46AEF2AF0D7 :101E400082517A0AD8B47DEF2BF08251490AD8B476 :101E500009EF2AF08251500AD8B427EF29F08251B5 :101E6000700AD8B46AEF29F08251540AD8B495EFB9 :101E700029F08251740AD8B4DBEF29F08251410A6B :101E8000D8B489EF10F082514B0AD8B486EF0FF026 :101E900082516D0AD8B4F9EF14F082514D0AD8B4CA :101EA00012EF15F08251730AD8B4DCEF2DF0825195 :101EB000530AD8B441EF2EF082514C0AD8B475EFD2 :101EC0001CF08251760AD8B4A1EF15F08251590A5C :101ED000D8B44AEF14F012AE01D0128C20EF33F0D8 :101EE000040114EE00F080517F0BE12682C4E7FF6D :101EF000802B120004010D0E826F70EC0FF00A0EA1 :101F0000826F70EC0FF012001EEF33F004014B0EE5 :101F1000826F70EC0FF004012C0E826F70EC0FF0EA :101F200081B802D036B630D003018351430AD8B409 :101F3000CBEF0FF003018351630AD8B4CDEF0FF05C :101F400003018351520AD8B4CFEF0FF0030183513C :101F5000720AD8B4D1EF0FF003018351470AD8B405 :101F6000D3EF0FF003018351670AD8B4D5EF0FF018 :101F700003018351540AD8B4D7EF0FF00301835102 :101F8000740AD8B447EF10F003018351550AD8B44E :101F9000D9EF0FF083D036807BD0369079D036825F :101FA00077D0369275D0368473D0369471D0368619 :101FB0006FD084C330F185C331F186C332F187C35A :101FC00033F10101296B58EC3BF0CFEC3AF000C142 :101FD00004F101C105F102C106F103C107F14BECA7 :101FE0003BF0200EF86EF76AF66A0900F5CF2CF187 :101FF0000900F5CF2DF10900F5CF2EF10900F5CF3D :102000002FF10900F5CF30F10900F5CF31F10900CA :10201000F5CF32F10900F5CF33F10101296B58EC0E :102020003BF0CFEC3AF0F5EC39F00101006720EF1E :1020300010F0016720EF10F0026720EF10F0036747 :1020400001D025D004014E0E826F70EC0FF0040118 :102050006F0E826F70EC0FF004014D0E826F70EC0A :102060000FF00401610E826F70EC0FF00401740E2A :10207000826F70EC0FF00401630E826F70EC0FF052 :102080000401680E826F70EC0FF01EEF33F036968D :10209000CD0E0C6E36C00BF0F1EC0BF0CD0E08EC53 :1020A0000CF0E8CF36F036B006D00401630E826F34 :1020B00070EC0FF005D00401430E826F70EC0FF04E :1020C00036B206D00401720E826F70EC0FF005D0AC :1020D0000401520E826F70EC0FF036B406D004018A :1020E000670E826F70EC0FF005D00401470E826F0F :1020F00070EC0FF036B606D00401740E826F70ECEF :102100000FF005D00401540E826F70EC0FF01EEF3B :1021100033F00401410E826F70EC0FF00301835124 :10212000310AD8B46AEF13F003018351320AD8B4EC :102130009AEF12F003018351330AD8B423EF12F05F :1021400003018351340AD8B413EF11F00301835112 :10215000350AD8B4B3EF10F004013F0E826F70EC73 :102160000FF01EEF33F003018451300AD8B4D9EFD9 :1021700010F003018451310AD8B4DCEF10F00301F0 :102180008451650AD8B4CDEF10F003018451640A7C :10219000D8B4D0EF10F0DDEF10F03790D1EF10F0A1 :1021A0003780FB0E0C6E37C00BF0F1EC0BF0DDEF5F :1021B00010F08B90DDEF10F08B800401350E826FF4 :1021C00070EC0FF004012C0E826F70EC0FF08BB0EE :1021D000F1EF10F00401300E826F70EC0FF0F6EFAB :1021E00010F00401310E826F70EC0FF004012C0E20 :1021F000826F70EC0FF0FB0E08EC0CF0E8CF37F0BC :1022000037A00AEF11F00401640E826F70EC0FF03A :102210000FEF11F00401650E826F70EC0FF011EFFB :1022200011F01EEF33F0CC0E08EC0CF0E8CF0BF001 :1022300004012C0E826F70EC0FF003018451310AFF :10224000D8B437EF11F003018451300AD8B439EF14 :1022500011F0030184514D0AD8B443EF11F003018A :102260008451540AD8B44AEF11F061EF11F08A8416 :1022700001D08A940BAE04D00BAC02D00BBA21D0A3 :10228000E00E0B1218D01F0E0B168539E844E00B38 :102290000B1211D0E00E0B164BEC3BF085C332F164 :1022A00086C333F10101296B58EC3BF0CFEC3AF0D7 :1022B00000511F0B0B12CC0E0C6E0BC00BF0F1EC8F :1022C0000BF00401340E826F70EC0FF004012C0E41 :1022D000826F70EC0FF0CC0E08EC0CF0E8CF1DF024 :1022E0008AB406D00401300E826F70EC0FF005D076 :1022F0000401310E826F70EC0FF004012C0E826F1E :1023000070EC0FF01D38E840070BE8CF82F40401B1 :10231000300E822770EC0FF004012C0E826F70ECEF :102320000FF00AEC3BF01D501F0BE8CF00F193ECCF :102330003AF032C182F40401300E822770EC0FF0C3 :1023400033C182F40401300E822770EC0FF00401D7 :102350002C0E826F70EC0FF00AEC3BF030C000F1F5 :1023600000AF0BD0FF0E016FFF0E026FFF0E036F69 :1023700004012D0E826F70EC0FF093EC3AF031C136 :1023800082F40401300E822770EC0FF032C182F427 :102390000401300E822770EC0FF033C182F4040187 :1023A000300E822770EC0FF004012C0E826F70EC5F :1023B0000FF00AEC3BF02FC000F193EC3AF031C182 :1023C00082F40401300E822770EC0FF032C182F4E7 :1023D0000401300E822770EC0FF033C182F4040147 :1023E000300E822770EC0FF004012C0E826F70EC1F :1023F0000FF00AEC3BF031C000F100AF0BD0FF0E44 :10240000016FFF0E026FFF0E036F04012D0E826F2E :1024100070EC0FF093EC3AF031C182F40401300E0D :10242000822770EC0FF032C182F40401300E822753 :1024300070EC0FF033C182F40401300E822770EC8F :102440000FF01EEF33F0CB0E08EC0CF0E8CF0BF0E2 :1024500004012C0E826F70EC0FF003018451450AC9 :10246000D8B447EF12F003018451440AD8B44AEFBC :1024700012F003018451300AD8B44DEF12F0030179 :102480008451310AD8B451EF12F05CEF12F00B9E78 :1024900056EF12F00B8E56EF12F0FC0E0B1656EFA5 :1024A00012F0FC0E0B160B8056EF12F0CB0E0C6EDA :1024B0000BC00BF0F1EC0BF00401330E826F70ECEB :1024C0000FF004012C0E826F70EC0FF0CB0E08ECB5 :1024D0000CF0E8CF1CF01CBE75EF12F00401450EA5 :1024E000826F70EC0FF07AEF12F00401440E826FED :1024F00070EC0FF004012C0E826F70EC0FF00401F1 :10250000300E826F70EC0FF004012C0E826F70ECB5 :102510000FF01CB093EF12F00401300E826F70ECDC :102520000FF098EF12F00401310E826F70EC0FF093 :102530001EEF33F0CA0E08EC0CF0E8CF0BF00401EC :102540002C0E826F70EC0FF003018451450AD8B451 :10255000D6EF12F003018451440AD8B4D9EF12F037 :10256000030184514D0AD8B4E2EF12F00301845103 :10257000410AD8B4DCEF12F003018451460AD8B402 :10258000DFEF12F003018451560AD8B4EAEF12F0DB :1025900003018451500AD8B4F5EF12F003018451BD :1025A000520AD8B4F8EF12F001EF13F00B9EFBEFD4 :1025B00012F00B8EFBEF12F00B9CFBEF12F00B8C6A :1025C000FBEF12F0FC0E0B1685C3E8FF030B0B129A :1025D000FBEF12F0C70E0B1685C3E8FF070BE846AA :1025E000E846E8460B12FBEF12F00B84FBEF12F00B :1025F0000B94FBEF12F0CA0E0C6E0BC00BF0F1EC5B :102600000BF0CA0E08EC0CF0E8CF1BF00401320E00 :10261000826F70EC0FF004012C0E826F70EC0FF0E3 :102620001BBE1AEF13F00401450E826F70EC0FF021 :102630001FEF13F00401440E826F70EC0FF00401E1 :102640002C0E826F70EC0FF01BC0E8FF030BE8CF7D :1026500082F40401300E822770EC0FF004012C0E7E :10266000826F70EC0FF01BBC3DEF13F00401410EC4 :10267000826F70EC0FF042EF13F00401460E826F90 :1026800070EC0FF004012C0E826F70EC0FF01BC089 :10269000E8FF380BE842E842E842E8CF82F4040160 :1026A000300E822770EC0FF004012C0E826F70EC5C :1026B0000FF01BB463EF13F00401520E826F70EC45 :1026C0000FF068EF13F00401500E826F70EC0FF002 :1026D0001EEF33F0C90E08EC0CF0E8CF0BF004014C :1026E0002C0E826F70EC0FF003018451450AD8B4B0 :1026F00088EF13F003018451440AD8B48BEF13F030 :10270000030184514D0AD8B48EEF13F09CEF13F0FF :102710000B9E96EF13F00B8E96EF13F0F80E0B1640 :1027200085C3E8FF070B0B1296EF13F0C90E0C6E72 :102730000BC00BF0F1EC0BF00401310E826F70EC6A :102740000FF004012C0E826F70EC0FF0C90E08EC34 :102750000CF0E8CF1AF01ABE06D00401450E826FC5 :1027600070EC0FF005D00401440E826F70EC0FF096 :1027700004012C0E826F70EC0FF01AC0E8FF070BFB :10278000E8CF82F40401300E822770EC0FF00401D0 :102790002C0E826F70EC0FF007800AEC3BF02BC020 :1027A000E8FF003B00430043030B93EC3AF033C1D6 :1027B00082F40401300E822770EC0FF004012C0E1D :1027C000826F70EC0FF00AEC3BF02BC001F1019F1F :1027D000019D2CC000F1010193EC3AF02FC182F46D :1027E0000401300E822770EC0FF030C182F4040136 :1027F000300E822770EC0FF031C182F40401300EEC :10280000822770EC0FF032C182F40401300E82276F :1028100070EC0FF033C182F40401300E822770ECAB :102820000FF004012C0E826F70EC0FF00AEC3BF0FD :102830002DC001F12EC000F1D89001330033D890A3 :1028400001330033010193EC3AF02FC182F404010B :10285000300E822770EC0FF030C182F40401300E8C :10286000822770EC0FF031C182F40401300E822710 :1028700070EC0FF032C182F40401300E822770EC4C :102880000FF033C182F40401300E822770EC0FF098 :102890001EEF33F0FC0E08EC0CF0E8CF0BF0030158 :1028A0008351520AD8B481EF14F003018351720AA4 :1028B000D8B484EF14F003018351500AD8B487EFE1 :1028C00014F003018351700AD8B48AEF14F00301A5 :1028D0008351550AD8B48DEF14F003018351750A62 :1028E000D8B490EF14F003018351430AD8B499EFA0 :1028F00014F003018351630AD8B49CEF14F0A5EFE0 :1029000014F00B909FEF14F00B809FEF14F00B92DC :102910009FEF14F00B829FEF14F00B949FEF14F0D5 :102920000B849FEF14F00B969FEF14F00B869FEF34 :1029300014F00B989FEF14F00B889FEF14F0FC0E2F :102940000C6E0BC00BF0F1EC0BF00401590E826F12 :1029500070EC0FF01190119211941198FC0E08EC8C :102960000CF0E8CF0BF00BA011800BA211820BA48E :1029700011840BA8118811A0C5EF14F00401520EA8 :10298000826F70EC0FF0CAEF14F00401720E826FC8 :1029900070EC0FF011A8D4EF14F00401430E826F15 :1029A00070EC0FF0D9EF14F00401630E826F70EC3D :1029B0000FF011A2E3EF14F00401500E826F70ECDF :1029C0000FF0E8EF14F00401700E826F70EC0FF05E :1029D00011A4F2EF14F00401550E826F70EC0FF0A9 :1029E000F7EF14F00401750E826F70EC0FF01EEF1C :1029F00033F004016D0E826F70EC0FF00301835110 :102A0000300AD8B451EF15F003018351310AD8B41C :102A100064EF15F003018351320AD8B477EF15F053 :102A200020EF33F004014D0E826F70EC0FF04BEC91 :102A30003BF084C331F185C332F186C333F1010128 :102A4000296B58EC3BF0CFEC3AF003018351300A8C :102A5000D8B439EF15F003018351310AD8B441EFEE :102A600015F003018351320AD8B449EF15F020EF75 :102A700033F0FD0E0C6E00C10BF0F1EC0BF051EFDA :102A800015F0FE0E0C6E00C10BF0F1EC0BF064EFD4 :102A900015F0FF0E0C6E00C10BF0F1EC0BF077EFB0 :102AA00015F00401300E826F70EC0FF004012C0E53 :102AB000826F70EC0FF00AEC3BF0FD0E08EC0CF0AE :102AC000E8CF00F188EF15F00401310E826F70EC51 :102AD0000FF004012C0E826F70EC0FF00AEC3BF04B :102AE000FE0E08EC0CF0E8CF00F188EF15F00401C1 :102AF000320E826F70EC0FF00AEC3BF004012C0EEA :102B0000826F70EC0FF0FF0E08EC0CF0E8CF00F1D4 :102B100093EC3AF031C182F40401300E822770EC5C :102B20000FF032C182F40401300E822770EC0FF0F6 :102B300033C182F40401300E822770EC0FF01EEFD7 :102B400033F003018351300AD8B446EF17F0030184 :102B50008351310AD8B47DEF17F003018351320A53 :102B6000D8B432EF19F003018351330AD8B4E7EF38 :102B70001AF003018351340AD8B48DEF1BF003011E :102B80008351730AD8B428EF16F003018351760AF3 :102B9000D8B42AEF16F003018351740AD8B415EFA4 :102BA00016F003018351540AD8B4DAEF15F0D8A413 :102BB00020EF33F00401760E826F70EC0FF0040109 :102BC000540E826F70EC0FF007840001880E0C6EBB :102BD0004BEC3BF02981030184512D0AD8B4F3EF6B :102BE00015F00101299185C32FF186C330F187C308 :102BF00031F188C332F189C333F158EC3BF0CFECAB :102C00003AF000C10BF0F1EC0BF001C10BF0F1EC6C :102C10000BF0880E08EC0CF0E8CF40F6890E08ECBB :102C20000CF0E8CF41F620EF16F00401760E826F2B :102C300070EC0FF00401740E826F70EC0FF00784DB :102C40000001880E0C6E0FEC0CF00794D4EF27F007 :102C500028EC16F00401760E826F70EC0FF0040180 :102C6000760E826F70EC0FF007844DEC37F00401A4 :102C70002C0E826F70EC0FF00101036B026B3BC6F0 :102C800001F13AC600F101AF4BEF16F00101FF0E62 :102C9000026FFF0E036F93EC3AF0296752EF16F0C4 :102CA00057EF16F004012D0E826F70EC0FF02FC15C :102CB00082F40401300E822770EC0FF030C182F4F0 :102CC0000401300E822770EC0FF031C182F4040150 :102CD000300E822770EC0FF032C182F40401300E06 :102CE000822770EC0FF033C182F40401300E82278A :102CF00070EC0FF004012C0E826F70EC0FF00101EC :102D0000036B026B3DC601F13CC600F101AF8EEFD3 :102D100016F00101FF0E026FFF0E036F93EC3AF005 :102D2000296795EF16F09AEF16F004012D0E826FC9 :102D300070EC0FF02FC182F40401300E822770EC8A :102D40000FF030C182F40401300E822770EC0FF0D6 :102D500031C182F40401300E822770EC0FF032C1D1 :102D600082F40401300E822770EC0FF033C182F43C :102D70000401300E822770EC0FF004012C0E826FDC :102D800070EC0FF00101036B026B3FC601F13EC610 :102D900000F101AFD1EF16F00101FF0E026FFF0E3F :102DA000036F93EC3AF02967D8EF16F0DDEF16F0D9 :102DB00004012D0E826F70EC0FF02FC182F404011C :102DC000300E822770EC0FF030C182F40401300E17 :102DD000822770EC0FF031C182F40401300E82279B :102DE00070EC0FF032C182F40401300E822770ECD7 :102DF0000FF033C182F40401300E822770EC0FF023 :102E000004012C0E826F70EC0FF00101036B026B5A :102E100037C601F136C600F101AF14EF17F001011A :102E2000FF0E026FFF0E036F93EC3AF029671BEF62 :102E300017F020EF17F004012D0E826F70EC0FF0E9 :102E40002FC182F40401300E822770EC0FF030C1E4 :102E500082F40401300E822770EC0FF031C182F44D :102E60000401300E822770EC0FF032C182F40401AD :102E7000300E822770EC0FF033C182F40401300E63 :102E8000822770EC0FF00794D4EF27F00401760E40 :102E9000826F70EC0FF00401300E826F70EC0FF057 :102EA00004012C0E826F70EC0FF091EC3BF00AECF9 :102EB0003BF000C600F101C601F193EC3AF030C1DD :102EC00082F40401300E822770EC0FF031C182F4DD :102ED0000401300E822770EC0FF032C182F404013D :102EE000300E822770EC0FF033C182F40401300EF3 :102EF000822770EC0FF0D4EF27F00401760E826F7A :102F000070EC0FF00401310E826F70EC0FF007844B :102F10000101036B026B02C600F103C601F101AFB0 :102F200096EF17F0FF0E026FFF0E036F0101076BA4 :102F3000066B04C604F105C605F105AFA4EF17F052 :102F4000FF0E066FFF0E076FFAEC39F00101076BF9 :102F5000066B06C604F107C605F105AFB4EF17F01E :102F6000FF0E066FFF0E076FFAEC39F00101076BD9 :102F7000066B08C604F109C605F105AFC4EF17F0EA :102F8000FF0E066FFF0E076FFAEC39F0D8900101C3 :102F90000333023301330033D8900101033302338A :102FA0000133003304012C0E826F70EC0FF001012D :102FB000036B026B01C101F100C100F101AFE6EF4B :102FC00017F00101FF0E026FFF0E036F93EC3AF052 :102FD0002967EDEF17F0F2EF17F004012D0E826F65 :102FE00070EC0FF02FC182F40401300E822770ECD8 :102FF0000FF030C182F40401300E822770EC0FF024 :1030000031C182F40401300E822770EC0FF032C11E :1030100082F40401300E822770EC0FF033C182F489 :103020000401300E822770EC0FF00101036B026B7C :103030000AC600F10BC601F101AF23EF18F0FF0E35 :10304000026FFF0E036F0101076B066B0CC604F1E4 :103050000DC605F105AF31EF18F0FF0E066FFF0E3C :10306000076FFAEC39F00101076B066B0EC604F12D :103070000FC605F105AF41EF18F0FF0E066FFF0E0A :10308000076FFAEC39F00101076B066B10C604F10B :1030900011C605F105AF51EF18F0FF0E066FFF0ED8 :1030A000076FFAEC39F0D890010103330233013392 :1030B0000033D8900101033302330133003304019C :1030C0002C0E826F70EC0FF00101036B026B01C1DB :1030D00001F100C100F101AF73EF18F00101FF0E23 :1030E000026FFF0E036F93EC3AF029677AEF18F046 :1030F0007FEF18F004012D0E826F70EC0FF02FC1DE :1031000082F40401300E822770EC0FF030C182F49B :103110000401300E822770EC0FF031C182F40401FB :10312000300E822770EC0FF032C182F40401300EB1 :10313000822770EC0FF033C182F40401300E822735 :1031400070EC0FF00101036B026B12C600F113C6A5 :1031500001F101AFB0EF18F0FF0E026FFF0E036F29 :103160000101076B066B14C604F115C605F105AF26 :10317000BEEF18F0FF0E066FFF0E076FFAEC39F086 :103180000101076B066B16C604F117C605F105AF02 :10319000CEEF18F0FF0E066FFF0E076FFAEC39F056 :1031A0000101076B066B18C604F119C605F105AFDE :1031B000DEEF18F0FF0E066FFF0E076FFAEC39F026 :1031C000D89001010333023301330033D890010159 :1031D000033302330133003304012C0E826F70EC91 :1031E0000FF00101036B026B01C101F100C100F19D :1031F00001AF00EF19F00101FF0E026FFF0E036F28 :1032000093EC3AF0296707EF19F00CEF19F004017D :103210002D0E826F70EC0FF02FC182F40401300E7E :10322000822770EC0FF030C182F40401300E822747 :1032300070EC0FF031C182F40401300E822770EC83 :103240000FF032C182F40401300E822770EC0FF0CF :1032500033C182F40401300E822770EC0FF0079422 :10326000D4EF27F00401760E826F70EC0FF00401AA :10327000320E826F70EC0FF007840101036B026B5A :103280001AC600F11BC601F101AF4BEF19F0FF0E9A :10329000026FFF0E036F0101076B066B1CC604F182 :1032A0001DC605F105AF59EF19F0FF0E066FFF0EB1 :1032B000076FFAEC39F00101076B066B1EC604F1CB :1032C0001FC605F105AF69EF19F0FF0E066FFF0E7F :1032D000076FFAEC39F00101076B066B20C604F1A9 :1032E00021C605F105AF79EF19F0FF0E066FFF0E4D :1032F000076FFAEC39F0D890010103330233013340 :103300000033D89001010333023301330033040149 :103310002C0E826F70EC0FF00101036B026B01C188 :1033200001F100C100F101AF9BEF19F00101FF0EA7 :10333000026FFF0E036F93EC3AF02967A2EF19F0CA :10334000A7EF19F004012D0E826F70EC0FF02FC162 :1033500082F40401300E822770EC0FF030C182F449 :103360000401300E822770EC0FF031C182F40401A9 :10337000300E822770EC0FF032C182F40401300E5F :10338000822770EC0FF033C182F40401300E8227E3 :1033900070EC0FF00101036B026B22C600F123C633 :1033A00001F101AFD8EF19F0FF0E026FFF0E036FAE :1033B0000101076B066B24C604F125C605F105AFB4 :1033C000E6EF19F0FF0E066FFF0E076FFAEC39F00B :1033D0000101076B066B26C604F127C605F105AF90 :1033E000F6EF19F0FF0E066FFF0E076FFAEC39F0DB :1033F0000101076B066B28C604F129C605F105AF6C :1034000006EF1AF0FF0E066FFF0E076FFAEC39F0A9 :10341000D89001010333023301330033D890010106 :10342000033302330133003304012C0E826F70EC3E :103430000FF00101036B026B01C101F100C100F14A :1034400001AF28EF1AF00101FF0E026FFF0E036FAC :1034500093EC3AF029672FEF1AF034EF1AF00401D9 :103460002D0E826F70EC0FF02FC182F40401300E2C :10347000822770EC0FF030C182F40401300E8227F5 :1034800070EC0FF031C182F40401300E822770EC31 :103490000FF032C182F40401300E822770EC0FF07D :1034A00033C182F40401300E822770EC0FF0010169 :1034B000036B026B2AC600F12BC601F101AF65EF69 :1034C0001AF0FF0E026FFF0E036F0101076B066B10 :1034D0002CC604F12DC605F105AF73EF1AF0FF0EEF :1034E000066FFF0E076FFAEC39F00101076B066BF0 :1034F0002EC604F12FC605F105AF83EF1AF0FF0EBB :10350000066FFF0E076FFAEC39F00101076B066BCF :1035100030C604F131C605F105AF93EF1AF0FF0E86 :10352000066FFF0E076FFAEC39F0D89001010333F4 :10353000023301330033D8900101033302330133E6 :10354000003304012C0E826F70EC0FF00101036B4D :10355000026B01C101F100C100F101AFB5EF1AF03A :103560000101FF0E026FFF0E036F93EC3AF0296723 :10357000BCEF1AF0C1EF1AF004012D0E826F70EC4F :103580000FF02FC182F40401300E822770EC0FF08F :1035900030C182F40401300E822770EC0FF031C18B :1035A00082F40401300E822770EC0FF032C182F4F5 :1035B0000401300E822770EC0FF033C182F4040155 :1035C000300E822770EC0FF00794D4EF27F004013F :1035D000760E826F70EC0FF00401330E826F70EC88 :1035E0000FF004012C0E826F70EC0FF085C382F493 :1035F00070EC0FF0640E0D6E03018551320A02E18A :103600006A0E0D6E03018551330A02E1700E0D6ED4 :1036100003018551340A02E1760E0D6E03018551D6 :10362000350A02E17C0E0D6E03018551360A02E176 :10363000820E0D6E03018651780A65E00DC00CF014 :103640004BEC3BF02981030187512D0AD8B42BEFB5 :103650001BF00101299188C32FF189C330F18AC37E :1036600031F18BC332F18CC333F158EC3BF0CFEC2A :103670003AF000C10BF0F1EC0BF001C10BF0F1ECF2 :103680000BF04BEC3BF0298103018E512D0AD8B48D :103690004CEF1BF0010129918FC32FF190C330F142 :1036A00091C331F192C332F193C333F158EC3BF043 :1036B000CFEC3AF000C10BF0F1EC0BF001C10BF0D4 :1036C000F1EC0BF04BEC3BF02981030195512D0AF5 :1036D000D8B46DEF1BF00101299196C32FF197C368 :1036E00030F198C331F199C332F19AC333F158ECF8 :1036F0003BF0CFEC3AF000C10BF0F1EC0BF001C164 :103700000BF0F1EC0BF00DC00CF00FEC0CF00FEC2B :103710000CF00FEC0CF0D4EF27F00401760E826F62 :1037200070EC0FF00401340E826F70EC0FF00301A7 :103730008451780AD8B465EF1CF03E0E0C6E4BEC49 :103740003BF02981030185512D0AD8B4AAEF1BF063 :103750000101299186C32FF187C330F188C331F16C :1037600089C332F18AC333F158EC3BF0CFEC3AF025 :1037700000C10BF0F1EC0BF001C10BF0F1EC0BF020 :103780004BEC3BF0298103018C512D0AD8B4CBEFCF :103790001BF0010129918DC32FF18EC330F18FC32E :1037A00031F190C332F191C333F158EC3BF0CFECDF :1037B0003AF000C10BF0F1EC0BF001C10BF0F1ECB1 :1037C0000BF04BEC3BF02981030193512D0AD8B447 :1037D000ECEF1BF00101299194C32FF195C330F157 :1037E00096C331F197C332F198C333F158EC3BF0F3 :1037F000CFEC3AF000C10BF0F1EC0BF001C10BF093 :10380000F1EC0BF04BEC3BF0298103019A512D0AAE :10381000D8B40DEF1CF0010129919BC32FF19CC37B :1038200030F19DC331F19EC332F19FC333F158ECA7 :103830003BF0CFEC3AF000C10BF0F1EC0BF001C122 :103840000BF0F1EC0BF04BEC3BF029810301A151A3 :103850002D0AD8B42EEF1CF001012991A2C32FF13B :10386000A3C330F1A4C331F1A5C332F1A6C333F130 :1038700058EC3BF0CFEC3AF000C10BF0F1EC0BF060 :1038800001C10BF0F1EC0BF04BEC3BF02981030193 :10389000A8512D0AD8B44FEF1CF001012991A9C3FA :1038A0002FF1AAC330F1ABC331F1ACC332F1ADC3D8 :1038B00033F158EC3BF0CFEC3AF000C10BF0F1ECF7 :1038C0000BF001C10BF0F1EC0BF03E0E0C6E0FECA7 :1038D0000CF00FEC0CF00FEC0CF00FEC0CF00FEC0C :1038E0000CF00FEC0CF0D4EF27F003018351300AF9 :1038F000D8B4C9EF21F003018351310AD8B4F6EFEF :1039000022F003018351320AD8B464EF23F003019B :103910008351330AD8B474EF23F003018351340A7E :10392000D8B4CFEF23F003018351350AD8B478EF30 :1039300027F003018351360AD8B4A6EF27F003011C :103940008351370AD8B4A1EF1FF003018351380A1D :10395000D8B43FEF20F003018351440AD8B4CDEF2F :103960001DF003018351640AD8B4EDEF1DF003018B :103970008351460AD8B47DEF26F0030183514D0AE6 :10398000D8B41AEF1EF0030183516D0AD8B434EF96 :103990001EF0030183515A0AD8B470EF22F00301DC :1039A0008351490AD8B4A6EF28F003018351500A85 :1039B000D8B4D8EF27F003018351540AD8B451EF9B :1039C00028F003018351630AD8B454EF1EF00301B9 :1039D0008351430AD8B44CEF1FF003018351730A9B :1039E000D8B452EF1EF003018351610AD8B41AEF24 :1039F0001DF003018351650AD8B419EF22F00301C9 :103A00008351450AD8B427EF22F003018351620A9B :103A1000D8B435EF22F003018351420AD8B443EF02 :103A200022F003018351760AD8B451EF22F0D8A4D2 :103A300020EF33F004014C0E826F70EC0FF00401A4 :103A4000610E826F70EC0FF08BEC3DF004012C0ED8 :103A5000826F70EC0FF00AEC3BF0AFC500F1010192 :103A600093EC3AF031C182F40401300E822770ECFD :103A70000FF032C182F40401300E822770EC0FF097 :103A800033C182F40401300E822770EC0FF0040180 :103A90002C0E826F70EC0FF00AEC3BF0B0C500F119 :103AA000010193EC3AF031C182F40401300E822717 :103AB00070EC0FF032C182F40401300E822770ECFA :103AC0000FF033C182F40401300E822770EC0FF046 :103AD00004012C0E826F70EC0FF00AEC3BF0B1C5C4 :103AE00000F1010193EC3AF031C182F40401300E8F :103AF000822770EC0FF032C182F40401300E82276D :103B000070EC0FF033C182F40401300E822770ECA8 :103B10000FF004012C0E826F70EC0FF00AEC3BF0FA :103B2000B2C500F1010193EC3AF031C182F4040115 :103B3000300E822770EC0FF032C182F40401300E97 :103B4000822770EC0FF033C182F40401300E82271B :103B500070EC0FF004012C0E826F70EC0FF00AEC89 :103B60003BF0B6C500F1010193EC3AF031C182F4AB :103B70000401300E822770EC0FF032C182F4040190 :103B8000300E822770EC0FF033C182F40401300E46 :103B9000822770EC0FF0D4EF27F003018451300A34 :103BA000D8B4D9EF1DF003018451310AD8B4DDEF48 :103BB0001DF015921596DEEF1DF01582C70E08EC6C :103BC0000CF0E8CF00F10101008115A20091C70EB1 :103BD0000C6E00C10BF0F1EC0BF0C70E08EC0CF012 :103BE000E8CF00F1010100B1F9EF1DF01592FAEFF5 :103BF0001DF0158204014C0E826F70EC0FF0040171 :103C0000640E826F70EC0FF004012C0E826F70EC6A :103C10000FF015B213EF1EF00401300E826F70EC3E :103C20000FF018EF1EF00401310E826F70EC0FF0F0 :103C30001EEF33F04BEC3BF084C333F158EC3BF018 :103C4000CFEC3AF0200E0C6E00C10BF0F1EC0BF053 :103C500000C12FF505012F51000A06E005012F5183 :103C6000010A02E025EC3EF004014C0E826F70EC7C :103C70000FF004014D0E826F70EC0FF004012C0E5A :103C8000826F70EC0FF00AEC3BF02FC500F193EC63 :103C90003AF033C182F40401300E822770EC0FF049 :103CA000D4EF27F003EF46F004014C0E826F70EC66 :103CB0000FF00401630E826F70EC0FF0E3EC3CF048 :103CC00004012C0E826F70EC0FF069EC1EF0D4EF43 :103CD00027F00AEC3BF0B5C500F10101003B0F0EE7 :103CE000001793EC3AF033C182F40401300E8227BE :103CF00070EC0FF0B5C500F101010F0E01010017C6 :103D000093EC3AF033C182F40401300E822770EC58 :103D10000FF004012D0E826F70EC0FF0B4C500F1AE :103D20000101003B0F0E001793EC3AF033C182F40F :103D30000401300E822770EC0FF0B4C500F10101D0 :103D40000F0E0101001793EC3AF033C182F4040125 :103D5000300E822770EC0FF004012D0E826F70EC94 :103D60000FF0B3C500F10101003B0F0E001793ECFB :103D70003AF033C182F40401300E822770EC0FF068 :103D8000B3C500F101010F0E0101001793EC3AF0E9 :103D900033C182F40401300E822770EC0FF004016D :103DA000200E826F70EC0FF0B2C500F10F0E010112 :103DB000001793EC3AF033C182F40401300E8227ED :103DC00070EC0FF00401200E826F70EC0FF0B1C5A3 :103DD00000F101010101003B0F0E001793EC3AF0D6 :103DE00033C182F40401300E822770EC0FF0B1C5AC :103DF00000F101010F0E0101001793EC3AF033C1FD :103E000082F40401300E822770EC0FF004013A0EA8 :103E1000826F70EC0FF0B0C500F10101003B0F0E96 :103E2000001793EC3AF033C182F40401300E82277C :103E300070EC0FF0B0C500F101010F0E0101001789 :103E400093EC3AF033C182F40401300E822770EC17 :103E50000FF004013A0E826F70EC0FF0AFC500F165 :103E60000101003B0F0E001793EC3AF033C182F4CE :103E70000401300E822770EC0FF0AFC500F1010194 :103E80000F0E001793EC3AF033C182F40401300EA8 :103E9000822770EC0FF0120084C3E8FF0F0BE83AA2 :103EA000E8CFB5F585C3E8FF0F0B0501B51387C350 :103EB000E8FF0F0BE83AE8CFB4F588C3E8FF0F0B33 :103EC0000501B4138AC3E8FF0F0BE83AE8CFB3F556 :103ED0008BC3E8FF0F0B0501B3138DC3E8FF0F0B76 :103EE000E8CFB2F58FC3E8FF0F0BE83AE8CFB1F5A2 :103EF00090C3E8FF0F0B0501B11392C3E8FF0F0B4E :103F0000E83AE8CFB0F593C3E8FF0F0B0501B01313 :103F100095C3E8FF0F0BE83AE8CFAFF596C3E8FF8B :103F20000F0B0501AF133EEC3DF004014C0E826F08 :103F300070EC0FF00401430E826F70EC0FF05EEF37 :103F40001EF0078404014C0E826F70EC0FF0040128 :103F5000370E826F70EC0FF004012C0E826F70EC44 :103F60000FF005012E51130A06E005012E51170A24 :103F70000DE03CEF20F00101000E006F000E016F1C :103F8000100E026F000E036FCFEF1FF00101000E45 :103F9000006F000E016F000E026F010E036F93ECB5 :103FA0003AF02AC182F40401300E822770EC0FF03F :103FB0002BC182F40401300E822770EC0FF02CC16B :103FC00082F40401300E822770EC0FF02DC182F4D0 :103FD0000401300E822770EC0FF02EC182F4040130 :103FE000300E822770EC0FF02FC182F40401300EE6 :103FF000822770EC0FF030C182F40401300E82276A :1040000070EC0FF031C182F40401300E822770ECA5 :104010000FF032C182F40401300E822770EC0FF0F1 :1040200033C182F40401300E822770EC0FF00401DA :104030002C0E826F70EC0FF00101200E006F000E4D :10404000016F000E026F000E036F93EC3AF031C166 :1040500082F40401300E822770EC0FF032C182F43A :104060000401300E822770EC0FF033C182F404019A :10407000300E822770EC0FF00794D4EF27F0050183 :10408000216B226B236B246B04014C0E826F70EC4E :104090000FF00401380E826F70EC0FF004012C0E4B :1040A000826F70EC0FF00101200E006F000E016FA7 :1040B000000E026F000E036F93EC3AF02AC182F4F7 :1040C0000401300E822770EC0FF02BC182F4040142 :1040D000300E822770EC0FF02CC182F40401300EF8 :1040E000822770EC0FF02DC182F40401300E82277C :1040F00070EC0FF02EC182F40401300E822770ECB8 :104100000FF02FC182F40401300E822770EC0FF003 :1041100030C182F40401300E822770EC0FF031C1FF :1041200082F40401300E822770EC0FF032C182F469 :104130000401300E822770EC0FF033C182F40401C9 :10414000300E822770EC0FF004012C0E826F70ECA1 :104150000FF025C500F126C501F127C502F128C5DC :1041600003F10101200E046F000E056F000E066FB3 :10417000000E076F26EC3AF000C133F501C134F5AB :1041800002C135F503C136F593EC3AF02AC182F449 :104190000401300E822770EC0FF02BC182F4040171 :1041A000300E822770EC0FF02CC182F40401300E27 :1041B000822770EC0FF02DC182F40401300E8227AB :1041C00070EC0FF02EC182F40401300E822770ECE7 :1041D0000FF02FC182F40401300E822770EC0FF033 :1041E00030C182F40401300E822770EC0FF031C12F :1041F00082F40401300E822770EC0FF032C182F499 :104200000401300E822770EC0FF033C182F40401F8 :10421000300E822770EC0FF07AEC0FF00501336757 :1042200019EF21F0346719EF21F0356719EF21F00C :10423000366702D0B8EF21F0129E129C21C500F122 :1042400022C501F123C502F124C503F1899A400E6C :10425000C76E200EC66E9E96C69E0B0EC96EFF0ED2 :104260009EB602D0E82EFCD79E96C69E02C1C9FF1C :10427000FF0E9EB602D0E82EFCD79E96C69E01C1C8 :10428000C9FFFF0E9EB602D0E82EFCD79E96C69EB2 :1042900000C1C9FFFF0E9EB602D0E82EFCD79E9645 :1042A000C69EC952FF0E9EB602D0E82EFCD705016D :1042B000200E326F040114EE00F080517F0BE126D6 :1042C0009E96C69EC952FF0E9EB602D0E82EFCD71F :1042D000C9CFE7FF0401802B0501322F5AEF21F0EF :1042E000898A33C500F134C501F135C502F136C5FF :1042F00003F10101010E046F000E056F000E066F41 :10430000000E076FF5EC39F000C133F501C134F54B :1043100002C135F503C136F50501336797EF21F08A :10432000346797EF21F0356797EF21F0366702D0B9 :10433000B8EF21F021C500F122C501F123C502F13A :1043400024C503F10101200E046F000E056F000E5D :10435000066F000E076FFAEC39F000C121F501C1BC :1043600022F502C123F503C124F5128E20EF33F0AC :104370000401450E826F70EC0FF004014F0E826F46 :1043800070EC0FF00401460E826F70EC0FF0D4EF6A :1043900027F007845DEC45F00AEC3BF02DC500F1F9 :1043A00093EC3AF004014C0E826F70EC0FF00401B4 :1043B000300E826F70EC0FF004012C0E826F70ECE7 :1043C0000FF031C182F40401300E822770EC0FF03F :1043D00032C182F40401300E822770EC0FF033C139 :1043E00082F40401300E822770EC0FF004012C0ED1 :1043F000826F70EC0FF00AEC3BF02EC500F193ECED :104400003AF031C182F40401300E822770EC0FF0D3 :1044100032C182F40401300E822770EC0FF033C1F8 :1044200082F40401300E822770EC0FF00794D4EF71 :1044300027F004014C0E826F70EC0FF00401650E42 :10444000826F70EC0FF001EC3FF0D4EF27F0040125 :104450004C0E826F70EC0FF00401450E826F70EC11 :104460000FF018EC3FF0D4EF27F004014C0E826FF0 :1044700070EC0FF00401620E826F70EC0FF046ECEE :104480003FF0D4EF27F004014C0E826F70EC0FF078 :104490000401420E826F70EC0FF02FEC3FF0D4EF6E :1044A00027F004014C0E826F70EC0FF00401760EC1 :1044B000826F70EC0FF004012C0E826F70EC0FF025 :1044C00010A807D00401310E826F70EC0FF0D4EF0A :1044D00027F00401300E826F70EC0FF0D4EF27F05C :1044E00004014C0E826F70EC0FF004015A0E826FC3 :1044F00070EC0FF004012C0E826F70EC0FF05DEC8D :1045000045F00AEC3BF005012E51130A06E00501C7 :104510002E51170A0DE0A1EF22F00101000E006FED :10452000000E016F100E026F000E036FA1EF22F05C :104530000101000E006F000E016F000E026F010EF0 :10454000036F0101200E046F000E056F000E066F51 :10455000000E076F26EC3AF093EC3AF02AC182F491 :104560000401300E822770EC0FF02BC182F404019D :10457000300E822770EC0FF02CC182F40401300E53 :10458000822770EC0FF02DC182F40401300E8227D7 :1045900070EC0FF02EC182F40401300E822770EC13 :1045A0000FF02FC182F40401300E822770EC0FF05F :1045B00030C182F40401300E822770EC0FF031C15B :1045C00082F40401300E822770EC0FF032C182F4C5 :1045D0000401300E822770EC0FF033C182F4040125 :1045E000300E822770EC0FF0D4EF27F0078404011F :1045F0004C0E826F70EC0FF00401310E826F70EC84 :104600000FF004012C0E826F70EC0FF025C500F145 :1046100026C501F127C502F128C503F10101200ECD :10462000046F000E056F000E066F000E076F26EC7C :104630003AF093EC3AF02AC182F40401300E82275A :1046400070EC0FF02BC182F40401300E822770EC65 :104650000FF02CC182F40401300E822770EC0FF0B1 :104660002DC182F40401300E822770EC0FF02EC1B0 :1046700082F40401300E822770EC0FF02FC182F417 :104680000401300E822770EC0FF030C182F4040177 :10469000300E822770EC0FF031C182F40401300E2D :1046A000822770EC0FF032C182F40401300E8227B1 :1046B00070EC0FF033C182F40401300E822770ECED :1046C0000FF00794D4EF27F0078404014C0E826F9B :1046D00070EC0FF00401320E826F70EC0FF035ECCD :1046E00041F00794D4EF27F0078437B07AEF23F036 :1046F0008DEF23F0010E166E04014C0E826F70ECEC :104700000FF00401330E826F70EC0FF092EC41F069 :10471000000E166E079401EF23F0020E166E92EC57 :1047200041F08B800501010E306F3C0E316F0101AD :104730005E6B5F6B606B616B626B636B646B656B15 :10474000666B676B686B696B536B546BCF6ACE6A31 :104750000F9A0F9C0F9E030E166E04014C0E826F73 :1047600070EC0FF00401330E826F70EC0FF0040157 :104770002C0E826F70EC0FF004012D0E826F70EC26 :104780000FF00401310E826F70EC0FF01EEF33F06A :1047900092EC41F0000E166E8B9020EF33F0078400 :1047A00004014C0E826F70EC0FF00401340E826F26 :1047B00070EC0FF004012C0E826F70EC0FF04BECDC :1047C0003BF084C32AF185C32BF186C32CF187C348 :1047D0002DF188C32EF189C32FF18AC330F18BC329 :1047E00031F18CC332F18DC333F10101296B58ECE7 :1047F0003BF0CFEC3AF0200E046F000E056F000E78 :10480000066F000E076F06EC3AF000C121F501C1FA :1048100022F502C123F503C124F510EC45F038C59B :10482000AFF539C5B0F53AC5B1F53BC5B2F53CC5F4 :10483000B3F53DC5B4F53EC5B5F569EC1EF0040110 :104840002C0E826F70EC0FF03FC500F140C501F1F6 :1048500041C502F142C503F10101000E046F000ED3 :10486000056F010E066F000E076F26EC3AF093EC11 :104870003AF029673EEF24F043EF24F004012D0EB7 :10488000826F70EC0FF030C182F40401300E822789 :1048900070EC0FF031C182F40401300E822770EC0D :1048A0000FF004012E0E826F70EC0FF032C182F413 :1048B0000401300E822770EC0FF033C182F4040142 :1048C000300E822770EC0FF004012C0E826F70EC1A :1048D0000FF00AEC3BF043C500F144C501F14AEC8E :1048E00034F004012C0E826F70EC0FF00AEC3BF0F8 :1048F00045C500F193EC3AF031C182F40401300E69 :10490000822770EC0FF032C182F40401300E82274E :1049100070EC0FF033C182F40401300E822770EC8A :104920000FF004012C0E826F70EC0FF00101036B8D :10493000026B4CC501F14BC500F101AFA5EF24F0AE :104940000101FF0E026FFF0E036F93EC3AF029672F :10495000ACEF24F0B1EF24F004012D0E826F70EC67 :104960000FF02FC182F40401300E822770EC0FF09B :1049700030C182F40401300E822770EC0FF031C197 :1049800082F40401300E822770EC0FF032C182F401 :104990000401300E822770EC0FF033C182F4040161 :1049A000300E822770EC0FF004012C0E826F70EC39 :1049B0000FF00101036B026B4EC501F14DC500F113 :1049C00001AFE8EF24F00101FF0E026FFF0E036F4D :1049D00093EC3AF02967EFEF24F0F4EF24F00401B0 :1049E0002D0E826F70EC0FF02FC182F40401300E97 :1049F000822770EC0FF030C182F40401300E822760 :104A000070EC0FF031C182F40401300E822770EC9B :104A10000FF032C182F40401300E822770EC0FF0E7 :104A200033C182F40401300E822770EC0FF00401D0 :104A30002C0E826F70EC0FF00101036B026B50C5FE :104A400001F14FC500F101AF2BEF25F00101FF0E81 :104A5000026FFF0E036F93EC3AF0296732EF25F0F7 :104A600037EF25F004012D0E826F70EC0FF02FC18F :104A700082F40401300E822770EC0FF030C182F412 :104A80000401300E822770EC0FF031C182F4040172 :104A9000300E822770EC0FF032C182F40401300E28 :104AA000822770EC0FF033C182F40401300E8227AC :104AB00070EC0FF004012C0E826F70EC0FF001010E :104AC000036B026B52C501F151C500F101AF6EEFEE :104AD00025F00101FF0E026FFF0E036F93EC3AF019 :104AE000296775EF25F07AEF25F004012D0E826F0E :104AF00070EC0FF02FC182F40401300E822770ECAD :104B00000FF030C182F40401300E822770EC0FF0F8 :104B100031C182F40401300E822770EC0FF032C1F3 :104B200082F40401300E822770EC0FF033C182F45E :104B30000401300E822770EC0FF004012C0E826FFE :104B400070EC0FF00101036B026B54C501F153C50A :104B500000F101AFB1EF25F00101FF0E026FFF0E72 :104B6000036F93EC3AF02967B8EF25F0BDEF25F01D :104B700004012D0E826F70EC0FF02FC182F404013E :104B8000300E822770EC0FF030C182F40401300E39 :104B9000822770EC0FF031C182F40401300E8227BD :104BA00070EC0FF032C182F40401300E822770ECF9 :104BB0000FF033C182F40401300E822770EC0FF045 :104BC00004012C0E826F70EC0FF00101036B026B7D :104BD00056C501F155C500F101AFF4EF25F0010113 :104BE000FF0E026FFF0E036F93EC3AF02967FBEFA5 :104BF00025F000EF26F004012D0E826F70EC0FF00F :104C00002FC182F40401300E822770EC0FF030C106 :104C100082F40401300E822770EC0FF031C182F46F :104C20000401300E822770EC0FF032C182F40401CF :104C3000300E822770EC0FF033C182F40401300E85 :104C4000822770EC0FF004012C0E826F70EC0FF0D5 :104C50000101036B026B4AC501F149C500F101AFC7 :104C600037EF26F00101FF0E026FFF0E036F93EC8A :104C70003AF029673EEF26F043EF26F004012D0EAF :104C8000826F70EC0FF02FC182F40401300E822786 :104C900070EC0FF030C182F40401300E822770EC0A :104CA0000FF031C182F40401300E822770EC0FF056 :104CB00032C182F40401300E822770EC0FF033C150 :104CC00082F40401300E822770EC0FF004012C0EE8 :104CD000826F70EC0FF037C5E8FFE8B806D004012A :104CE000300E826F70EC0FF005D00401310E826F30 :104CF00070EC0FF00794D4EF27F04BEC3BF085C33A :104D00002AF186C32BF187C32CF188C32DF189C307 :104D10002EF18AC32FF18BC330F18CC331F18DC3D7 :104D200032F18EC333F10101296B58EC3BF0CFEC2B :104D30003AF00101010E046F000E056F000E066FC0 :104D4000000E076FF5EC39F0100E046F000E056FC2 :104D5000000E066F000E076F06EC3AF000C129F551 :104D600001C12AF502C12BF503C12CF5BCEC40F0C2 :104D700004014C0E826F70EC0FF00401460E826F3E :104D800070EC0FF004012C0E826F70EC0FF025C553 :104D900000F126C501F127C502F128C503F1010183 :104DA000100E046F000E056F000E066F000E076FE9 :104DB00026EC3AF093EC3AF02AC182F40401300E6A :104DC000822770EC0FF02BC182F40401300E822791 :104DD00070EC0FF02CC182F40401300E822770ECCD :104DE0000FF02DC182F40401300E822770EC0FF019 :104DF0002EC182F40401300E822770EC0FF02FC117 :104E000082F40401300E822770EC0FF030C182F47E :104E10000401300E822770EC0FF031C182F40401DE :104E2000300E822770EC0FF032C182F40401300E94 :104E3000822770EC0FF033C182F40401300E822718 :104E400070EC0FF0D4EF27F037B029EF27F0020E07 :104E5000166E92EC41F000011650020AD8B447EFEA :104E600027F005012F51010AD8B43DEF27F015B204 :104E700042EF27F081BA42EF27F0000E166E15843C :104E800020EF33F0050E166E158403EF46F08B808D :104E900001015E6B5F6B606B616B626B636B646B7C :104EA000656B666B676B686B696B536B546BCF6A32 :104EB000CE6A0F9A0F9C0F9E030E166E20EF33F0F2 :104EC00092EC41F005012F51010AD8B46EEF27F0A2 :104ED00015B273EF27F081BA73EF27F0000E166E4C :104EE000158420EF33F0050E166E158403EF46F09F :104EF00004014C0E826F70EC0FF00401350E826FCE :104F000070EC0FF004012C0E826F70EC0FF00AECC5 :104F10003BF00784B9C500F1079493EC3AF031C136 :104F200082F40401300E822770EC0FF032C182F45B :104F30000401300E822770EC0FF033C182F40401BB :104F4000300E822770EC0FF0D4EF27F055EC41F0D3 :104F50000AEC3BF037C500F193EC3AF004014C0E3B :104F6000826F70EC0FF00401360E826F70EC0FF060 :104F700004012C0E826F70EC0FF031C182F4040139 :104F8000300E822770EC0FF032C182F40401300E33 :104F9000822770EC0FF033C182F40401300E8227B7 :104FA00070EC0FF0D4EF27F07AEC0FF020EF33F035 :104FB00004014C0E826F70EC0FF00401500E826FF2 :104FC00070EC0FF004012C0E826F70EC0FF085C3B3 :104FD0002AF186C32BF187C32CF188C32DF189C335 :104FE0002EF18AC32FF18BC330F18CC331F18DC305 :104FF00032F18EC333F1010158EC3BF0CFEC3AF0C3 :1050000003018451530A0DE0030184514D0A38E035 :105010000401780E826F70EC0FF07AEC0FF020EF45 :1050200033F00401530E826F70EC0FF0250E0C6EFE :1050300000C10BF0F1EC0BF0260E0C6E01C10BF071 :10504000F1EC0BF0270E0C6E02C10BF0F1EC0BF043 :10505000280E0C6E03C10BF0F1EC0BF000C157F5FC :1050600001C158F502C159F503C15AF500C15BF5FC :1050700001C15CF502C15DF503C15EF5B5EF28F035 :1050800004014D0E826F70EC0FF0290E0C6E00C102 :105090000BF0F1EC0BF000C15FF500C160F5B5EF6E :1050A00028F004014C0E826F70EC0FF00401540ED6 :1050B000826F70EC0FF004012C0E826F70EC0FF019 :1050C00084C32AF185C32BF186C32CF187C32DF14C :1050D00088C32EF189C32FF18AC330F18BC331F11C :1050E0008DC332F18EC333F1010158EC3BF0CFECAC :1050F0003AF00101000E046F000E056F010E066FFD :10510000000E076F06EC3AF0210E0C6E00C10BF09A :10511000F1EC0BF0220E0C6E01C10BF0F1EC0BF078 :10512000230E0C6E02C10BF0F1EC0BF0240E0C6E92 :1051300003C10BF0F1EC0BF000C161F501C162F5A8 :1051400002C163F503C164F5B5EF28F004014C0E0C :10515000826F70EC0FF00401490E826F70EC0FF05B :1051600004012C0E826F70EC0FF0250E08EC0CF091 :10517000E8CF00F1260E08EC0CF0E8CF01F1270E85 :1051800008EC0CF0E8CF02F1280E08EC0CF0E8CFA8 :1051900003F193EC3AF056EC38F00401730E826F91 :1051A00070EC0FF004012C0E826F70EC0FF00AEC23 :1051B0003BF0290E08EC0CF0E8CF00F193EC3AF04C :1051C00056EC38F004016D0E826F70EC0FF00401A4 :1051D0002C0E826F70EC0FF05BC500F15CC501F125 :1051E0005DC502F15EC503F193EC3AF056EC38F080 :1051F0000401730E826F70EC0FF004012C0E826FAD :1052000070EC0FF00AEC3BF060C500F193EC3AF063 :1052100056EC38F004016D0E826F70EC0FF0040153 :105220002C0E826F70EC0FF061C500F162C501F1C8 :1052300063C502F164C503F13BEC33F004012C0EAD :10524000826F70EC0FF07AEC0FF020EF33F083C335 :105250002AF184C32BF185C32CF186C32DF187C3BA :105260002EF188C32FF189C330F18AC331F18BC38A :1052700032F18CC333F1010158EC3BF0CFEC3AF042 :10528000160E0C6E00C10BF0F1EC0BF0170E0C6E4D :1052900001C10BF0F1EC0BF0180E0C6E02C10BF01B :1052A000F1EC0BF0190E0C6E03C10BF0F1EC0BF0EE :1052B00000C18EF101C18FF102C190F103C191F1E2 :1052C00000C192F101C193F102C194F103C195F1C2 :1052D00009EF2AF083C32AF184C32BF185C32CF193 :1052E00086C32DF187C32EF188C32FF189C330F116 :1052F0008AC331F18BC332F18CC333F1010158EC15 :105300003BF0CFEC3AF000C18EF101C18FF102C148 :1053100090F103C191F100C192F101C193F102C179 :1053200094F103C195F109EF2AF083C32AF184C3F4 :105330002BF185C32CF186C32DF187C32EF188C3D1 :105340002FF189C330F18AC331F18CC332F18DC39F :1053500033F1010158EC3BF0CFEC3AF00101000EC3 :10536000046F000E056F010E066F000E076F06EC4E :105370003AF01A0E0C6E00C10BF0F1EC0BF01B0EA4 :105380000C6E01C10BF0F1EC0BF01C0E0C6E02C1A7 :105390000BF0F1EC0BF01D0E0C6E03C10BF0F1ECF9 :1053A0000BF000C196F101C197F102C198F103C160 :1053B00099F109EF2AF083C32AF184C32BF185C345 :1053C0002CF186C32DF187C32EF188C32FF189C339 :1053D00030F18AC331F18CC332F18DC333F1010155 :1053E00058EC3BF0CFEC3AF00101000E046F000ED8 :1053F000056F010E066F000E076F06EC3AF000C154 :1054000096F101C197F102C198F103C199F109EF39 :105410002AF0160E08EC0CF0E8CF00F1170E08EC9D :105420000CF0E8CF01F1180E08EC0CF0E8CF02F117 :10543000190E08EC0CF0E8CF03F193EC3AF056ECBF :1054400038F00401730E826F70EC0FF004012C0E23 :10545000826F70EC0FF08EC100F18FC101F190C12D :1054600002F191C103F193EC3AF056EC38F00401EB :10547000730E826F70EC0FF004012C0E826F70ECD3 :105480000FF01A0E08EC0CF0E8CF00F11B0E08EC40 :105490000CF0E8CF01F11C0E08EC0CF0E8CF02F1A3 :1054A0001D0E08EC0CF0E8CF03F13BEC33F00401E7 :1054B0002C0E826F70EC0FF096C100F197C101F1D4 :1054C00098C102F199C103F13BEC33F07AEC0FF093 :1054D00020EF33F00401690E826F70EC0FF00401CD :1054E0002C0E826F70EC0FF00101040E006F000EA5 :1054F000016F000E026F000E036F93EC3AF02CC1A7 :1055000082F40401300E822770EC0FF02DC182F47A :105510000401300E822770EC0FF02EC182F40401DA :10552000300E822770EC0FF02FC182F40401300E90 :10553000822770EC0FF030C182F40401300E822714 :1055400070EC0FF031C182F40401300E822770EC50 :105550000FF032C182F40401300E822770EC0FF09C :1055600033C182F40401300E822770EC0FF0040185 :105570002C0E826F70EC0FF001010B0E006F000E0D :10558000016F000E026F000E036F93EC3AF02CC116 :1055900082F40401300E822770EC0FF02DC182F4EA :1055A0000401300E822770EC0FF02EC182F404014A :1055B000300E822770EC0FF02FC182F40401300E00 :1055C000822770EC0FF030C182F40401300E822784 :1055D00070EC0FF031C182F40401300E822770ECC0 :1055E0000FF032C182F40401300E822770EC0FF00C :1055F00033C182F40401300E822770EC0FF00401F5 :105600002C0E826F70EC0FF001014A0E006F000E3D :10561000016F000E026F000E036F93EC3AF02CC185 :1056200082F40401300E822770EC0FF02DC182F459 :105630000401300E822770EC0FF02EC182F40401B9 :10564000300E822770EC0FF02FC182F40401300E6F :10565000822770EC0FF030C182F40401300E8227F3 :1056600070EC0FF031C182F40401300E822770EC2F :105670000FF032C182F40401300E822770EC0FF07B :1056800033C182F40401300E822770EC0FF0040164 :105690002C0E826F70EC0FF0200EF86EF76AF66A2F :1056A00004010900F5CF82F470EC0FF00900F5CF8A :1056B00082F470EC0FF00900F5CF82F470EC0FF07B :1056C0000900F5CF82F470EC0FF00900F5CF82F4F9 :1056D00070EC0FF00900F5CF82F470EC0FF00900C8 :1056E000F5CF82F470EC0FF00900F5CF82F470EC86 :1056F0000FF07AEC0FF020EF33F08351630AD8A457 :105700001EEF33F08451610AD8A41EEF33F08551A7 :105710006C0AD8A41EEF33F08651410A3FE086514F :10572000440A1BE08651420AD8B4E1EF2BF08651BF :10573000350AD8B4AAEF34F08651360AD8B4FFEF50 :1057400034F08651370AD8B468EF35F08651380AFC :10575000D8B4C6EF35F01EEF33F00798079A04016E :105760007A0E826F70EC0FF00401780E826F70EC8D :105770000FF00401640E826F70EC0FF00401550EFF :10578000826F70EC0FF0CAEF2BF004014C0E826FA9 :1057900070EC0FF07AEC0FF020EF33F00788079AE7 :1057A00004017A0E826F70EC0FF00401410E826FDB :1057B00070EC0FF00401610E826F70EC0FF0BEEF21 :1057C0002BF00798078A04017A0E826F70EC0FF0B5 :1057D0000401420E826F70EC0FF00401610E826FC3 :1057E00070EC0FF0BEEF2BF001016667FFEF2BF0BE :1057F0006767FFEF2BF06867FFEF2BF0696716D044 :1058000001014F670BEF2CF050670BEF2CF0516745 :105810000BEF2CF052670AD00101000E006F000E52 :10582000016F000E026F000E036F120011B80AD054 :105830000101620E046F010E056F000E066F000E6F :10584000076F09D00101A70E046F020E056F000E4D :10585000066F000E076F66C100F167C101F168C1F4 :1058600002F169C103F1F5EC39F003BFA8EF2CF0A8 :10587000119A119C0101000E046FA80E056F550EC0 :10588000066F020E076F66C100F167C101F168C1C2 :1058900002F169C103F166C18AF167C18BF168C188 :1058A0008CF169C18DF1F5EC39F003BF0BD001012A :1058B000000E8A6FA80E8B6F550E8C6F020E8D6FC7 :1058C000118A119C0E0E08EC0CF0E8CF18F10F0EA7 :1058D00008EC0CF0E8CF19F1100E08EC0CF0E8CF52 :1058E0001AF1110E08EC0CF0E8CF1BF13EEC39F088 :1058F0008AC104F18BC105F18CC106F18DC107F19C :10590000F5EC39F0078202EC39F03EEC39F0079201 :1059100002EC39F08AC100F18BC101F18CC102F1B6 :105920008DC103F1079202EC39F0CC0E046FE00E4A :10593000056F870E066F050E076FF5EC39F000C195 :1059400018F101C119F102C11AF103C11BF140D0D4 :1059500013AAADEF2CF0138E139A119C119A01012A :10596000800E006F1A0E016F060E026F000E036F9D :105970004FC104F150C105F151C106F152C107F107 :10598000F5EC39F003AF05D00AEC3BF0118C119A1D :1059900012000E0E08EC0CF0E8CF18F10F0E08EC18 :1059A0000CF0E8CF19F1100E08EC0CF0E8CF1AF16A :1059B000110E08EC0CF0E8CF1BF14FC100F150C103 :1059C00001F151C102F152C103F1078202EC39F039 :1059D00018C100F119C101F11AC102F11BC103F193 :1059E00012000784BAC166F1BBC167F1BCC168F19E :1059F000BDC169F14BC14FF14CC150F14DC151F1E5 :105A00004EC152F157C159F158C15AF107940101E1 :105A1000666712EF2DF0676712EF2DF0686712EFDF :105A20002DF0696716D001014F671EEF2DF050670A :105A30001EEF2DF051671EEF2DF052670AD00101C5 :105A4000000E006F000E016F000E026F000E036F5C :105A5000120011B80AD00101620E046F010E056F29 :105A6000000E066F000E076F09D00101A70E046F2C :105A7000020E056F000E066F000E076F66C100F183 :105A800067C101F168C102F169C103F1F5EC39F0B8 :105A900003BFAAEF2DF00101000E046FA80E056FE1 :105AA000550E066F020E076F66C100F167C101F166 :105AB00068C102F169C103F166C18AF167C18BF166 :105AC00068C18CF169C18DF1F5EC39F003BF09D0E3 :105AD0000101000E8A6FA80E8B6F550E8C6F020E9F :105AE0008D6F3EEC39F000C104F101C105F102C136 :105AF00006F103C107F1000E006FA00E016F980EB2 :105B0000026F7B0E036F26EC3AF000C118F101C161 :105B100019F102C11AF103C11BF1000E006FA00EB2 :105B2000016F980E026F7B0E036F8AC104F18BC167 :105B300005F18CC106F18DC107F126EC3AF018C1D0 :105B400004F119C105F11AC106F11BC107F1F5EC09 :105B500039F012000101A80E006F610E016F000EF6 :105B6000026F000E036F4FC104F150C105F151C126 :105B700006F152C107F1F5EC39F003AF0AD001018B :105B8000A80E006F610E016F000E026F000E036F12 :105B900000D0C80E006FAF0E016F000E026F000E36 :105BA000036F4FC104F150C105F151C106F152C15B :105BB00007F106EC3AF012000401730E826F70ECEC :105BC0000FF004012C0E826F70EC0FF0078462C19D :105BD00066F163C167F164C168F165C169F14BC1E8 :105BE0004FF14CC150F14DC151F14EC152F157C16D :105BF00059F158C15AF1079402EC2EF07AEC0FF0EB :105C000020EF33F066C100F167C101F168C102F114 :105C100069C103F1010193EC3AF056EC38F004014C :105C2000630E826F70EC0FF004012C0E826F70EC2B :105C30000FF04FC100F150C101F151C102F152C149 :105C400003F1010193EC3AF056EC38F00401660ED2 :105C5000826F70EC0FF004012C0E826F70EC0FF06D :105C60000AEC3BF059C100F15AC101F1010193EC7A :105C70003AF056EC38F00401740E826F70EC0FF0BD :105C8000120010820401530E826F70EC0FF00401B9 :105C90002C0E826F70EC0FF083C32AF184C32BF1BA :105CA00085C32CF186C32DF187C32EF188C32FF154 :105CB00089C330F18AC331F18BC332F18CC333F124 :105CC000010158EC3BF0CFEC3AF000C166F101C1A4 :105CD00067F102C168F103C169F18EC32AF18FC374 :105CE0002BF190C32CF191C32DF192C32EF193C3EC :105CF0002FF194C330F195C331F196C332F197C3BC :105D000033F1010158EC3BF0CFEC3AF000C14FF118 :105D100001C150F102C151F103C152F14BEC3BF012 :105D200099C32FF19AC330F19BC331F19CC332F177 :105D30009DC333F1010158EC3BF0CFEC3AF000C1C8 :105D400059F101C15AF102EC2EF004012C0E826FC0 :105D500070EC0FF0BCEF2EF0118E1CA002D01CAE28 :105D6000108C1BBE02D01BA4108E03018251520A5C :105D700002E10F8201D00F928251750A02E1108474 :105D800001D010948251550A02E1108601D010967C :105D90008351310A03E11382138402D013921394C6 :105DA00003018351660A01E056D00401660E826F3A :105DB00070EC0FF004012C0E826F70EC0FF0F1EC20 :105DC0002CF093EC3AF02AC182F40401300E8227C1 :105DD00070EC0FF02BC182F40401300E822770ECBE :105DE0000FF02CC182F40401300E822770EC0FF00A :105DF0002DC182F40401300E822770EC0FF02EC109 :105E000082F40401300E822770EC0FF02FC182F46F :105E10000401300E822770EC0FF030C182F40401CF :105E2000300E822770EC0FF031C182F40401300E85 :105E3000822770EC0FF032C182F40401300E822709 :105E400070EC0FF033C182F40401300E822770EC45 :105E50000FF01EEF33F011A003D011A401D0108475 :105E6000078410B295EF2FF010A479EF2FF0BAC18C :105E700066F1BBC167F1BCC168F1BDC169F1BEC1CA :105E80006AF1BFC16BF1C0C16CF1C1C16DF1C2C19A :105E90006EF1C3C16FF1C4C170F1C5C171F1C6C16A :105EA00072F1C7C173F1C8C174F1C9C175F1CAC13A :105EB00076F1CBC177F1CCC178F1CDC179F1CEC10A :105EC0007AF1CFC17BF1D0C17CF1D1C17DF1D2C1DA :105ED0007EF1D3C17FF1D4C180F1D5C181F1D6C1AA :105EE00082F1D7C183F1D8C184F1D9C185F181EFA5 :105EF0002FF062C166F163C167F164C168F165C1E9 :105F000069F1BAC186F1BBC187F1BCC188F1BDC1DD :105F100089F14BC14FF14CC150F14DC151F14EC10E :105F200052F157C159F158C15AF107940FA0B7EF78 :105F30002FF001019667A4EF2FF09767A4EF2FF0E1 :105F40009867A4EF2FF09967A8EF2FF0B7EF2FF025 :105F5000F4EC2BF096C104F197C105F198C106F15C :105F600099C107F1F5EC39F003BFE4EF32F0F4EC3E :105F70002BF00101000E046F000E056F010E066F7D :105F8000000E076F26EC3AF011A02AD011A228D0FB :105F900093EC3AF0296701D005D004012D0E826FF1 :105FA00070EC0FF030C182F40401300E822770ECE7 :105FB0000FF031C182F40401300E822770EC0FF033 :105FC00032C182F40401300E822770EC0FF033C12D :105FD00082F40401300E822770EC0FF07AEC0FF09F :105FE00012A8C5D012981DC01EF01E3A1E42070E00 :105FF0001E1600011E50000AD8B483EF30F00001D5 :106000001E50010AD8B40FEF30F000011E50020AF2 :10601000D8B40DEF30F0B5EF30F0B5EF30F00AEC5A :106020003BF02DC001F12EC000F1D89001330033B8 :10603000D890013300330101630E046F000E056F29 :10604000000E066F000E076F26EC3AF0280E046F64 :10605000000E056F000E066F000E076FF5EC39F0AD :1060600000C130F00AEC3BF02BC001F1019F019D13 :106070002CC000F10101A40E046F000E056F000E8C :10608000066F000E076F26EC3AF000C12FF000C13A :1060900004F101C105F102C106F103C107F1640E6B :1060A000006F000E016F000E026F000E036FF5EC23 :1060B00039F0050E046F000E056F000E066F000E1E :1060C000076F26EC3AF000C104F101C105F102C1ED :1060D00006F103C107F10AEC3BF030C000F1F5EC2A :1060E00039F000C131F031C0E8FF050F305C03E743 :1060F0008A84B5EF30F031C0E8FF0A0F305C01E66A :106100008A94B5EF30F000C124F101C125F102C13C :1061100026F103C127F10AEC3BF010EC3BF01D50D7 :106120001F0BE8CF00F10101640E046F000E056F34 :10613000000E066F000E076F06EC3AF024C104F162 :1061400025C105F126C106F127C107F1F5EC39F0AB :1061500003BF02D08A9401D08A8424C100F125C1F2 :1061600001F126C102F127C103F120EF33F000C194 :1061700024F101C125F102C126F103C127F110AEBE :106180004DD0109E00C108F101C109F102C10AF110 :1061900003C10BF193EC3AF030C1E2F131C1E3F10C :1061A00032C1E4F133C1E5F108C100F109C101F1E7 :1061B0000AC102F10BC103F101016C0E046F070E5D :1061C000056F000E066F000E076FF5EC39F003BF88 :1061D00004D00101550EE66F1CD008C100F109C1C1 :1061E00001F10AC102F10BC103F10101A40E046F18 :1061F000060E056F000E066F000E076FF5EC39F006 :1062000003BF04D001017F0EE66F03D00101FF0E32 :10621000E66F1F8E11AEE4EF32F0119E24C100F143 :1062200025C101F126C102F127C103F111A005D05A :1062300011A203D00FB0E4EF32F010A427EF31F039 :106240000401750E826F70EC0FF02CEF31F0040139 :10625000720E826F70EC0FF004012C0E826F70ECE6 :106260000FF093EC3AF029673BEF31F00401200E78 :10627000826F3EEF31F004012D0E826F70EC0FF053 :1062800030C182F40401300E822770EC0FF031C16E :1062900082F40401300E822770EC0FF004012E0E00 :1062A000826F70EC0FF032C182F40401300E82274D :1062B00070EC0FF033C182F40401300E822770ECD1 :1062C0000FF004016D0E826F70EC0FF004012C0EC4 :1062D000826F70EC0FF04FC100F150C101F151C15C :1062E00002F152C103F1010193EC3AF056EC38F09F :1062F0000401480E826F70EC0FF004017A0E826F79 :1063000070EC0FF004012C0E826F70EC0FF066C180 :1063100000F167C101F168C102F169C103F1010136 :1063200093EC3AF056EC38F00401630E826F70EC97 :106330000FF004012C0E826F70EC0FF066C100F1BB :1063400067C101F168C102F169C103F101010A0EDF :10635000046F000E056F000E066F000E076F06EC4F :106360003AF0000E046F120E056F000E066F000E5D :10637000076F26EC3AF093EC3AF02AC182F404015C :10638000300E822770EC0FF02BC182F40401300E26 :10639000822770EC0FF02CC182F40401300E8227AA :1063A00070EC0FF02DC182F40401300E822770ECE6 :1063B0000FF02EC182F40401300E822770EC0FF032 :1063C0002FC182F40401300E822770EC0FF030C12F :1063D00082F40401300E822770EC0FF004012E0EBF :1063E000826F70EC0FF031C182F40401300E82270D :1063F00070EC0FF032C182F40401300E822770EC91 :106400000FF033C182F40401300E822770EC0FF0DC :106410000401730E826F70EC0FF004012C0E826F7A :1064200070EC0FF00AEC3BF059C100F15AC101F1D8 :106430004AEC34F013A26CEF32F004012C0E826FA0 :1064400070EC0FF086C166F187C167F188C168F111 :1064500089C169F1F4EC2BF00101000E046F000E0C :10646000056F010E066F000E076F26EC3AF093ECF5 :106470003AF0296741EF32F00401200E826F44EFB9 :1064800032F004012D0E826F70EC0FF030C182F4F7 :106490000401300E822770EC0FF031C182F4040148 :1064A000300E822770EC0FF004012E0E826F70EC1C :1064B0000FF032C182F40401300E822770EC0FF02D :1064C00033C182F40401300E822770EC0FF0040116 :1064D0006D0E826F70EC0FF013A493EF32F0040195 :1064E0002C0E826F70EC0FF013AC81EF32F00401D0 :1064F000500E826F70EC0FF0139C1398139A93EF69 :1065000032F013AE8EEF32F00401460E826F70EC63 :106510000FF0139E1398139A93EF32F00401530E69 :10652000826F70EC0FF037B0AAEF32F004012C0E3E :10653000826F70EC0FF08BB0A5EF32F00401440EC7 :10654000826F70EC0FF0AAEF32F00401530E826FED :1065500070EC0FF00FB2B0EF32F00FA0E2EF32F0BC :1065600004012C0E826F70EC0FF0200EF86EF76AAB :10657000F66A04010900F5CF82F470EC0FF009000F :10658000F5CF82F470EC0FF00900F5CF82F470ECD7 :106590000FF00900F5CF82F470EC0FF00900F5CF91 :1065A00082F470EC0FF00900F5CF82F470EC0FF07C :1065B0000900F5CF82F470EC0FF00900F5CF82F4FA :1065C00070EC0FF07AEC0FF00F90109E129820EF05 :1065D00033F00401630E826F70EC0FF004012C0E97 :1065E000826F70EC0FF026EC33F004012C0E826FFA :1065F00070EC0FF099EC33F004012C0E826F70EC0C :106600000FF015EC34F004012C0E826F70EC0FF0DB :106610000101F80E006FCD0E016F660E026F030EC2 :10662000036F3BEC33F004012C0E826F70EC0FF023 :106630002BEC34F07AEC0FF020EF33F07AEC0FF023 :106640000301C26B079010922FEF36F0D8900E0E18 :1066500008EC0CF0E8CF00F10F0E08EC0CF0E8CFDE :1066600001F1100E08EC0CF0E8CF02F1110E08EC6D :106670000CF0E8CF03F10101000E046F000E056F6E :10668000010E066F000E076F26EC3AF093EC3AF01D :106690002AC182F40401300E822770EC0FF02BC166 :1066A00082F40401300E822770EC0FF02CC182F4CA :1066B0000401300E822770EC0FF02DC182F404012A :1066C000300E822770EC0FF02EC182F40401300EE0 :1066D000822770EC0FF02FC182F40401300E822764 :1066E00070EC0FF030C182F40401300E822770ECA0 :1066F0000FF031C182F40401300E822770EC0FF0EC :1067000004012E0E826F70EC0FF032C182F404018E :10671000300E822770EC0FF033C182F40401300E8A :10672000822770EC0FF004016D0E826F70EC0FF099 :106730001200120E08EC0CF0E8CF00F1130E08EC7A :106740000CF0E8CF01F1140E08EC0CF0E8CF02F1E8 :10675000150E08EC0CF0E8CF03F101010A0E046FEE :10676000000E056F000E066F000E076F06EC3AF084 :10677000000E046F120E056F000E066F000E076FFD :1067800026EC3AF093EC3AF02AC182F40401300E80 :10679000822770EC0FF02BC182F40401300E8227A7 :1067A00070EC0FF02CC182F40401300E822770ECE3 :1067B0000FF02DC182F40401300E822770EC0FF02F :1067C0002EC182F40401300E822770EC0FF02FC12D :1067D00082F40401300E822770EC0FF030C182F495 :1067E0000401300E822770EC0FF004012E0E826F30 :1067F00070EC0FF031C182F40401300E822770EC8E :106800000FF032C182F40401300E822770EC0FF0D9 :1068100033C182F40401300E822770EC0FF00401C2 :10682000730E826F70EC0FF012000A0E08EC0CF081 :10683000E8CF00F10B0E08EC0CF0E8CF01F10C0EE4 :1068400008EC0CF0E8CF02F10D0E08EC0CF0E8CFEC :1068500003F14AEF34F0060E08EC0CF0E8CF00F13B :10686000070E08EC0CF0E8CF01F1080E08EC0CF074 :10687000E8CF02F1090E08EC0CF0E8CF03F14AEF83 :1068800034F001010AEC3BF0078457C100F158C114 :1068900001F107940101E80E046F800E056F000EF0 :1068A000066F000E076F06EC3AF0000E046F040E40 :1068B000056F000E066F000E076F26EC3AF0880E8B :1068C000046F130E056F000E066F000E076FF5ECD8 :1068D00039F00A0E046F000E056F000E066F000EF1 :1068E000076F26EC3AF093EC3AF0010129677EEF4E :1068F00034F00401200E826F81EF34F004012D0E7C :10690000826F70EC0FF030C182F40401300E8227E8 :1069100070EC0FF031C182F40401300E822770EC6C :106920000FF032C182F40401300E822770EC0FF0B8 :1069300004012E0E826F70EC0FF033C182F404015B :10694000300E822770EC0FF00401430E826F70EC62 :106950000FF0120087C32AF188C32BF189C32CF1F1 :106960008AC32DF18BC32EF18CC32FF18DC330F16F :106970008EC331F190C332F191C333F10101296B20 :1069800058EC3BF0CFEC3AF00101000E046F000E22 :10699000056F010E066F000E076F06EC3AF00E0E43 :1069A0000C6E00C10BF0F1EC0BF00F0E0C6E01C180 :1069B0000BF0F1EC0BF0100E0C6E02C10BF0F1ECD1 :1069C0000BF0110E0C6E03C10BF0F1EC0BF0040197 :1069D0007A0E826F70EC0FF004012C0E826F70EC57 :1069E0000FF00401350E826F70EC0FF004012C0ED5 :1069F000826F70EC0FF026EC33F0CAEF2BF087C3F8 :106A00002AF188C32BF189C32CF18AC32DF18BC3E2 :106A10002EF18CC32FF18DC330F18EC331F190C3B1 :106A200032F191C333F10101296B58EC3BF0CFEC0B :106A30003AF0880E046F130E056F000E066F000EFD :106A4000076FFAEC39F0000E046F040E056F000EAC :106A5000066F000E076F06EC3AF00101E80E046FB6 :106A6000800E056F000E066F000E076F26EC3AF0E1 :106A70000A0E0C6E00C10BF0F1EC0BF00B0E0C6E5D :106A800001C10BF0F1EC0BF00C0E0C6E02C10BF01F :106A9000F1EC0BF00D0E0C6E03C10BF0F1EC0BF0F2 :106AA00004017A0E826F70EC0FF004012C0E826FDD :106AB00070EC0FF00401360E826F70EC0FF00401E1 :106AC0002C0E826F70EC0FF015EC34F0CAEF2BF047 :106AD00087C32AF188C32BF189C32CF18AC32DF116 :106AE0008BC32EF18CC32FF18DC330F18FC331F1E5 :106AF00090C332F191C333F1010158EC3BF0CFEC7C :106B00003AF0000E046F120E056F000E066F000EB5 :106B1000076F06EC3AF001010A0E046F000E056FD4 :106B2000000E066F000E076F26EC3AF0120E0C6E88 :106B300000C10BF0F1EC0BF0130E0C6E01C10BF069 :106B4000F1EC0BF0140E0C6E02C10BF0F1EC0BF03B :106B5000150E0C6E03C10BF0F1EC0BF004017A0E74 :106B6000826F70EC0FF004012C0E826F70EC0FF04E :106B70000401370E826F70EC0FF004012C0E826F4F :106B800070EC0FF099EC33F0CAEF2BF087C32AF1C9 :106B900088C32BF189C32CF18AC32DF18BC32EF14D :106BA0008CC32FF18DC330F18EC331F190C332F11C :106BB00091C333F10101296B58EC3BF0CFEC3AF073 :106BC000880E046F130E056F000E066F000E076F20 :106BD000FAEC39F0000E046F040E056F000E066F1C :106BE000000E076F06EC3AF00101E80E046F800E0C :106BF000056F000E066F000E076F26EC3AF0060ECA :106C00000C6E00C10BF0F1EC0BF0070E0C6E01C125 :106C10000BF0F1EC0BF0080E0C6E02C10BF0F1EC76 :106C20000BF0090E0C6E03C10BF0F1EC0BF004013C :106C30007A0E826F70EC0FF004012C0E826F70ECF4 :106C40000FF00401380E826F70EC0FF004012C0E6F :106C5000826F70EC0FF02BEC34F0CAEF2BF007A82A :106C6000A2EF36F00101800E006F1A0E016F060EC2 :106C7000026F000E036F4BC104F14CC105F14DC111 :106C800006F14EC107F1F5EC39F003BFE8EF36F03D :106C900050EC38F04BC100F14CC101F14DC102F193 :106CA0004EC103F1078202EC39F018C104F119C199 :106CB00005F11AC106F11BC107F1F80E006FCD0EE8 :106CC000016F660E026F030E036FF5EC39F00E0EC6 :106CD0000C6E00C10BF0F1EC0BF00F0E0C6E01C14D :106CE0000BF0F1EC0BF0100E0C6E02C10BF0F1EC9E :106CF0000BF0110E0C6E03C10BF0F1EC0BF00784DE :106D000001010AEC3BF057C100F158C101F10794B1 :106D10000A0E0C6E00C10BF0F1EC0BF00B0E0C6EBA :106D200001C10BF0F1EC0BF00C0E0C6E02C10BF07C :106D3000F1EC0BF00D0E0C6E03C10BF0F1EC0BF04F :106D4000E8EF36F007AAE8EF36F0078401010AEC15 :106D50003BF057C100F158C101F10794060E0C6ECB :106D600000C10BF0F1EC0BF0070E0C6E01C10BF043 :106D7000F1EC0BF0080E0C6E02C10BF0F1EC0BF015 :106D8000090E0C6E03C10BF0F1EC0BF0078462C12D :106D900000F163C101F164C102F165C103F107941F :106DA000120E0C6E00C10BF0F1EC0BF0130E0C6E1A :106DB00001C10BF0F1EC0BF0140E0C6E02C10BF0E4 :106DC000F1EC0BF0150E0C6E03C10BF0F1EC0BF0B7 :106DD0000798079A0401805181197F0B0DE09EA846 :106DE000FED714EE00F081517F0BE126E750812B96 :106DF0000F01AD6EEAEF36F005012F51000AD8B44D :106E00002BEF37F081BA10EF37F015B22BEF37F0D8 :106E100005012F51010AD8B429EF37F022EF37F0DE :106E200005012F51000AD8B403EF46F005012F5198 :106E3000010AD8B429EF37F000011650050AD8B47A :106E400003EF46F081B82BEF37F08BEC3DF089EC87 :106E50003EF09CEC45F099EF0EF006013251385DA2 :106E60003351D8A0010F395D800BD8A43CEF37F027 :106E700032C638F633C639F6120006013251365D95 :106E80003351D8A0010F375D800BD8B44CEF37F0E9 :106E900032C636F633C637F6120007841AC632F603 :106EA0001BC633F61CC638F61DC639F62DEC37F076 :106EB0001EC632F61FC633F62DEC37F020C632F66A :106EC00021C633F62DEC37F01AC632F61BC633F660 :106ED0001CC636F61DC637F63DEC37F01EC632F638 :106EE0001FC633F63DEC37F020C632F621C633F626 :106EF0003DEC37F03851365F3951D8A03929375F2A :106F00000AEC3BF036C600F137C601F116EC3BF057 :106F100000C13AF601C13BF622C632F623C633F66B :106F200024C638F625C639F62DEC37F026C632F6DB :106F300027C633F62DEC37F028C632F629C633F6CD :106F40002DEC37F022C632F623C633F624C636F6C9 :106F500025C637F63DEC37F026C632F627C633F69F :106F60003DEC37F028C632F629C633F63DEC37F053 :106F70003851365F3951D8A03929375F0AEC3BF0D8 :106F800036C600F137C601F116EC3BF000C13CF605 :106F900001C13DF62AC632F62BC633F62CC638F6AA :106FA0002DC639F62DEC37F02EC632F62FC633F645 :106FB0002DEC37F030C632F631C633F62DEC37F013 :106FC0002AC632F62BC633F62CC636F62DC637F651 :106FD0003DEC37F02EC632F62FC633F63DEC37F0D7 :106FE00030C632F631C633F63DEC37F03851365FF5 :106FF0003951D8A03929375F0AEC3BF036C600F189 :1070000037C601F116EC3BF000C13EF601C13FF678 :107010003AC632F63BC633F63CC636F63DC637F6C0 :107020003DEC37F03EC632F63FC633F63DEC37F066 :107030000794120018C100F119C101F11AC102F13F :107040001BC103F1000E046F000E056F010E066FE9 :10705000000E076F26EC3AF029A145EF38F02051D9 :10706000D8B445EF38F018C100F119C101F11AC1C7 :1070700002F11BC103F1000E046F000E056F0A0E32 :10708000066F000E076F26EC3AF012000101045162 :107090000013055101130651021307510313120087 :1070A0000101186B196B1A6B1B6B12002AC182F459 :1070B0000401300E822770EC0FF02BC182F4040122 :1070C000300E822770EC0FF02CC182F40401300ED8 :1070D000822770EC0FF02DC182F40401300E82275C :1070E00070EC0FF02EC182F40401300E822770EC98 :1070F0000FF02FC182F40401300E822770EC0FF0E4 :1071000030C182F40401300E822770EC0FF031C1DF :1071100082F40401300E822770EC0FF032C182F449 :107120000401300E822770EC0FF033C182F40401A9 :10713000300E822770EC0FF012002FC182F4040190 :10714000300E822770EC0FF030C182F40401300E53 :10715000822770EC0FF031C182F40401300E8227D7 :1071600070EC0FF032C182F40401300E822770EC13 :107170000FF033C182F40401300E822770EC0FF05F :107180001200060E216E060E226E060E236E212EB2 :10719000C7EF38F0222EC7EF38F0232EC7EF38F0B4 :1071A0008B84020E216E020E226E020E236E212EA1 :1071B000D7EF38F0222ED7EF38F0232ED7EF38F064 :1071C0008B941200FF0E226E22C023F0030E216E5C :1071D0008B84212EE8EF38F0030E216E232EE8EF8A :1071E00038F08B9422C023F0030E216E212EF6EF8F :1071F00038F0030E216E233EF6EF38F0222EE4EF36 :1072000038F012000101005305E1015303E102537C :1072100001E1002BC5EC39F00AEC3BF03951006F6D :107220003A51016F420E046F4B0E056F000E066F50 :10723000000E076F06EC3AF000C104F101C105F140 :1072400002C106F103C107F118C100F119C101F132 :107250001AC102F11BC103F107B233EF39F0FAECA6 :1072600039F035EF39F0F5EC39F000C118F101C112 :1072700019F102C11AF103C11BF112000AEC3BF033 :1072800059C100F15AC101F1060E08EC0CF0E8CF2B :1072900004F1070E08EC0CF0E8CF05F1080E08EC3D :1072A0000CF0E8CF06F1090E08EC0CF0E8CF07F17E :1072B000F5EC39F000C124F101C125F102C126F13C :1072C00003C127F1290E046F000E056F000E066F33 :1072D000000E076F06EC3AF0EE0E046F430E056FDA :1072E000000E066F000E076FFAEC39F024C104F1AE :1072F00025C105F126C106F127C107F106EC3AF0D8 :1073000000C11CF101C11DF102C11EF103C11FF139 :10731000120E08EC0CF0E8CF04F1130E08EC0CF0A0 :10732000E8CF05F1140E08EC0CF0E8CF06F1150ECD :1073300008EC0CF0E8CF07F10D0E006F000E016FA6 :10734000000E026F000E036F06EC3AF0180E046F89 :10735000000E056F000E066F000E076F26EC3AF068 :107360001CC104F11DC105F11EC106F11FC107F1C9 :10737000FAEC39F06A0E046F2A0E056F000E066FE4 :10738000000E076FF5EC39F01200BF0EFA6E200EFA :107390003A6F396BD8900037013702370337D8B0CE :1073A000D6EF39F03A2FCBEF39F039073A070353CC :1073B000D8B412000331070B80093F6F03390F0B5C :1073C000010F396F80EC5FF0406F390580EC5FF0A2 :1073D000405D405F396B3F33D8B0392739333FA91F :1073E000EBEF39F040513927120001012FEC3BF04F :1073F000D8B01200010103510719346FF2EC3AF0D2 :10740000D8900751031934AF800F12000101346B7B :1074100016EC3BF0D8A02CEC3BF0D8B0120001ECFD :107420003BF00AEC3BF01F0E366F42EC3BF00B35A5 :10743000D8B0F2EC3AF0D8A00335D8B01200362F0D :1074400015EF3AF034B119EC3BF012000101346B46 :1074500004510511061107110008D8A016EC3BF0E5 :10746000D8A02CEC3BF0D8B01200086B096B0A6B6B :107470000B6B42EC3BF01F0E366F42EC3BF00751BA :107480000B5DD8A450EF3AF006510A5DD8A450EF36 :107490003AF00551095DD8A450EF3AF00451085D67 :1074A000D8A063EF3AF00451085F0551D8A0053D1C :1074B000095F0651D8A0063D0A5F0751D8A0073DD5 :1074C0000B5FD8900081362F3DEF3AF034B119ECC4 :1074D0003BF0346B16EC3BF0D89046EC3BF0075198 :1074E0000B5DD8A480EF3AF006510A5DD8A480EF76 :1074F0003AF00551095DD8A480EF3AF00451085DD7 :10750000D8A08FEF3AF0003F8FEF3AF0013F8FEFB6 :107510003AF0023F8FEF3AF0032BD8B4120034B1A7 :1075200019EC3BF012000101346B16EC3BF0D8B0C3 :1075300012004BEC3BF0200E366F0037013702375C :10754000033711EE33F00A0E376FE7360A0EE75CA9 :10755000D8B0E76EE552372FA5EF3AF0362F9DEF02 :107560003AF034B12981D89012004BEC3BF0200E58 :10757000366F003701370237033711EE33F00A0E4A :10758000376FE7360A0EE75CD8B0E76EE552372F63 :10759000C1EF3AF0362FB9EF3AF0D890120001015E :1075A0000A0E346F200E366F11EE29F03451376F0A :1075B0000A0ED890E652D8B0E726E732372FDAEF36 :1075C0003AF00333023301330033362FD4EF3AF06D :1075D000E750FF0FD8A00335D8B0120029B119EC3D :1075E0003BF01200045100270551D8B0053D01279A :1075F0000651D8B0063D02270751D8B0073D0327F2 :1076000012000051086F0151096F02510A6F0351B6 :107610000B6F12000101006B016B026B036B120018 :107620000101046B056B066B076B12000335D8A0D4 :1076300012000351800B001F011F021F031F003F98 :1076400029EF3BF0013F29EF3BF0023F29EF3BF0F0 :10765000032B342B032512000735D8A01200075145 :10766000800B041F051F061F071F043F3FEF3BF061 :10767000053F3FEF3BF0063F3FEF3BF0072B342B3E :10768000072512000037013702370337083709375B :107690000A370B3712000101296B2A6B2B6B2C6BFD :1076A0002D6B2E6B2F6B306B316B326B336B12008B :1076B00001012A510F0B2A6F2B510F0B2B6F2C51ED :1076C0000F0B2C6F2D510F0B2D6F2E510F0B2E6F9B :1076D0002F510F0B2F6F30510F0B306F31510F0B9C :1076E000316F32510F0B326F33510F0B336F12006A :1076F00000C124F101C125F102C126F103C127F126 :1077000004C100F105C101F106C102F107C103F195 :1077100024C104F125C105F126C106F127C107F1F5 :107720001200899C000EC76E200EC66E9E96C69EE5 :10773000C50EC96EFF0E9EB602D0E82EFCD79E96EF :10774000C69E000EC96EFF0E9EB602D0E82EFCD774 :10775000C9CF00F69E96C69E000EC96EFF0E9EB65D :1077600002D0E82EFCD7C9CF01F6898C1200000E9A :10777000C76E200EC66E899C9E96C69EC80EC96EA8 :10778000FF0E9EB602D0E82EFCD79E96C69E000E37 :10779000C96EFF0E9EB602D0E82EFCD7C9CF02F606 :1077A0009E96C69E000EC96EFF0E9EB602D0E82EB3 :1077B000FCD7C9CF03F69E96C69E000EC96EFF0E7B :1077C0009EB602D0E82EFCD7C9CF0AF69E96C69E7A :1077D000000EC96EFF0E9EB602D0E82EFCD7C9CFB0 :1077E0000BF69E96C69E000EC96EFF0E9EB602D088 :1077F000E82EFCD7C9CF12F69E96C69E000EC96E23 :10780000FF0E9EB602D0E82EFCD7C9CF13F6898CA6 :107810001200000EC76E200EC66E899C9E96C69EF4 :10782000E80EC96EFF0E9EB602D0E82EFCD79E96DB :10783000C69E000EC96EFF0E9EB602D0E82EFCD783 :10784000C9CF1AF69E96C69E000EC96EFF0E9EB652 :1078500002D0E82EFCD7C9CF1BF69E96C69E000E1E :10786000C96EFF0E9EB602D0E82EFCD7C9CF22F615 :107870009E96C69E000EC96EFF0E9EB602D0E82EE2 :10788000FCD7C9CF23F69E96C69E000EC96EFF0E8A :107890009EB602D0E82EFCD7C9CF2AF69E96C69E89 :1078A000000EC96EFF0E9EB602D0E82EFCD7C9CFDF :1078B0002BF6898C1200000EC76E200EC66E899CB6 :1078C0009E96C69E240EC96EFF0E9EB602D0E82E6E :1078D000FCD79E96C69EE40EC96EFF0E9EB602D0E1 :1078E000E82EFCD7898C899C9E96C69E200EC96E78 :1078F000FF0E9EB602D0E82EFCD79E96C69E5F0E67 :10790000C96EFF0E9EB602D0E82EFCD7898C899CEA :107910009E96C69E210EC96EFF0E9EB602D0E82E20 :10792000FCD79E96C69EC00EC96EFF0E9EB602D0B4 :10793000E82EFCD7898C899C9E96C69E260EC96E21 :10794000FF0E9EB602D0E82EFCD79E96C69E000E75 :10795000C96EFF0E9EB602D0E82EFCD7898C1200AD :10796000000EC76E200EC66E899C9E96C69E200E87 :10797000C96EFF0E9EB602D0E82EFCD79E96C69E1C :10798000000EC96EFF0E9EB602D0E82EFCD7898C81 :10799000120010A806D08994000EC76E220EC66E83 :1079A00005D08984000EC76E220EC66E050EE82E25 :1079B000FED7120010A802D0898401D08994050E48 :1079C000E82EFED71200C9EC3CF09E96C69E000E33 :1079D000C96EFF0E9EB602D0E82EFCD79E96C69EBC :1079E000000EC96EFF0E9EB602D0E82EFCD7C9CF9E :1079F000AFF59E96C69E000EC96EFF0E9EB602D0D3 :107A0000E82EFCD7C9CFB0F59E96C69E000EC96E73 :107A1000FF0E9EB602D0E82EFCD7C9CFB1F59E96D8 :107A2000C69E000EC96EFF0E9EB602D0E82EFCD791 :107A3000C9CFB2F59E96C69E000EC96EFF0E9EB6C9 :107A400002D0E82EFCD7C9CFB3F59E96C69E000E95 :107A5000C96EFF0E9EB602D0E82EFCD7C9CFB4F592 :107A60009E96C69E000EC96EFF0E9EB602D0E82EF0 :107A7000FCD7C9CFB5F5DAEC3CF01200C9EC3CF00C :107A80009E96C69E800EC96EFF0E9EB602D0E82E50 :107A9000FCD79E96C69EAFC5C9FFFF0E9EB602D00C :107AA000E82EFCD79E96C69EB0C5C9FFFF0E9EB6B7 :107AB00002D0E82EFCD79E96C69EB1C5C9FFFF0E28 :107AC0009EB602D0E82EFCD79E96C69EB2C5C9FFD0 :107AD000FF0E9EB602D0E82EFCD79E96C69EB3C57A :107AE000C9FFFF0E9EB602D0E82EFCD79E96C69E1A :107AF000B4C5C9FFFF0E9EB602D0E82EFCD79E96F5 :107B0000C69EB5C5C9FFFF0E9EB602D0E82EFCD7B3 :107B1000DAEC3CF01200C9EC3CF09E96C69E070ED3 :107B2000C96EFF0E9EB602D0E82EFCD79E96C69E6A :107B3000000EC96EFF0E9EB602D0E82EFCD7C9CF4C :107B4000AFF59E96C69E000EC96EFF0E9EB602D081 :107B5000E82EFCD7C9CFB0F59E96C69E000EC96E22 :107B6000FF0E9EB602D0E82EFCD7C9CFB1F59E9687 :107B7000C69E000EC96EFF0E9EB602D0E82EFCD740 :107B8000C9CFB2F5DAEC3CF0C9EC3CF09E96C69E4B :107B900025C0C9FFFF0E9EB602D0E82EFCD79E96E8 :107BA000C69E000EC96EFF0E9EB602D0E82EFCD710 :107BB000C9CFB6F5DAEC3CF01200C9EC3CF09E9669 :107BC000C69E870EC96EFF0E9EB602D0E82EFCD769 :107BD0009E96C69EAFC5C9FFFF0E9EB602D0E82E88 :107BE000FCD79E96C69EB0C5C9FFFF0E9EB602D0BA :107BF000E82EFCD79E96C69EB1C5C9FFFF0E9EB665 :107C000002D0E82EFCD79E96C69EB2C5C9FFFF0ED5 :107C10009EB602D0E82EFCD7DAEC3CF0C9EC3CF082 :107C20009E96C69E26C0C9FFFF0E9EB602D0E82EC5 :107C3000FCD79E96C69EB6C5C9FFFF0E9EB602D063 :107C4000E82EFCD7DAEC3CF01200C9EC3CF09E9632 :107C5000C69E870EC96EFF0E9EB602D0E82EFCD7D8 :107C60009E96C69E000EC96EFF0E9EB602D0E82EEE :107C7000FCD79E96C69E800EC96EFF0E9EB602D0A1 :107C8000E82EFCD79E96C69E800EC96EFF0E9EB64D :107C900002D0E82EFCD79E96C69E800EC96EFF0EBF :107CA0009EB602D0E82EFCD7DAEC3CF01200C9EC0C :107CB0003CF09E96C69E870EC96EFF0E9EB602D001 :107CC000E82EFCD79E96C69E000EC96EFF0E9EB68D :107CD00002D0E82EFCD79E96C69E000EC96EFF0EFF :107CE0009EB602D0E82EFCD79E96C69E800EC96E28 :107CF000FF0E9EB602D0E82EFCD79E96C69E800E42 :107D0000C96EFF0E9EB602D0E82EFCD7DAEC3CF02E :107D1000120010A817D0C9EC3CF09E96C69E8F0E9C :107D2000C96EFF0E9EB602D0E82EFCD79E96C69E68 :107D3000000EC96EFF0E9EB602D0E82EFCD7DAEC1C :107D40003CF012008BEC3DF0120010A82DD0C9ECD5 :107D50003CF09E96C69E26C0C9FFFF0E9EB602D07E :107D6000E82EFCD79E96C69E450EC96EFF0E9EB6A7 :107D700002D0E82EFCD7DAEC3CF0C9EC3CF09E9641 :107D8000C69E8F0EC96EFF0E9EB602D0E82EFCD79F :107D90009E96C69E000EC96EFF0E9EB602D0E82EBD :107DA000FCD7DAEC3CF01200C9EC3CF09E96C69E83 :107DB00026C0C9FFFF0E9EB602D0E82EFCD79E96C5 :107DC000C69E010EC96EFF0E9EB602D0E82EFCD7ED :107DD000DAEC3CF0C9EC3CF09E96C69E910EC96E62 :107DE000FF0E9EB602D0E82EFCD79E96C69EA50E2C :107DF000C96EFF0E9EB602D0E82EFCD7DAEC3CF03E :107E00001200C9EC3CF09E96C69E26C0C9FFFF0E2C :107E10009EB602D0E82EFCD79E96C69E810EC96EF5 :107E2000FF0E9EB602D0E82EFCD7DAEC3CF0120032 :107E3000C9EC3CF09E96C69E26C0C9FFFF0E9EB6BA :107E400002D0E82EFCD79E96C69E010EC96EFF0E8C :107E50009EB602D0E82EFCD7DAEC3CF01200C9EC5A :107E60003CF09E96C69E910EC96EFF0E9EB602D045 :107E7000E82EFCD79E96C69EA50EC96EFF0E9EB636 :107E800002D0E82EFCD7DAEC3CF01200C9EC3CF052 :107E90009E96C69E910EC96EFF0E9EB602D0E82E2B :107EA000FCD79E96C69E000EC96EFF0E9EB602D0EF :107EB000E82EFCD7DAEC3CF012000501256B266BAE :107EC000276B286B899A400EC76E200EC66E9E9651 :107ED000C69E030EC96EFF0E9EB602D0E82EFCD7DA :107EE0009E96C69E27C5C9FFFF0E9EB602D0E82EFD :107EF000FCD79E96C69E26C5C9FFFF0E9EB602D031 :107F0000E82EFCD79E96C69E25C5C9FFFF0E9EB6DD :107F100002D0E82EFCD79E96C69EC952FF0E9EB692 :107F200002D0E82EFCD7898A0F01C950FF0A01E16F :107F3000120005012E51130A05E005012E51170A02 :107F40000CE012000501E00E256FFF0E266F0F0EEC :107F5000276F000E286FB6EF3FF00501E00E256F8A :107F6000FF0E266FFF0E276F000E286F899A400EB6 :107F7000C76E200EC66E9E96C69E030EC96EFF0E7D :107F80009EB602D0E82EFCD79E96C69E27C5C9FF96 :107F9000FF0E9EB602D0E82EFCD79E96C69E26C542 :107FA000C9FFFF0E9EB602D0E82EFCD79E96C69E55 :107FB00025C5C9FFFF0E9EB602D0E82EFCD79E96BF :107FC000C69EC952FF0E9EB602D0E82EFCD7898A03 :107FD0000F01C950FF0A1DE005012E51130A05E0EB :107FE00005012E51170A0BE012000501000E256F46 :107FF000000E266F100E276F000E286F120005016D :10800000000E256F000E266F000E276F010E286FE1 :1080100012000501256B266B276B286B05012E517D :10802000130A05E005012E51170A0CE012000501A4 :10803000000E216F000E226F080E236F000E246FBA :108040002BEF40F00501000E216F000E226F800E15 :10805000236F000E246F21C500F122C501F123C555 :1080600002F124C503F125C504F126C505F127C594 :1080700006F128C507F146EC38F000C125F501C12D :1080800026F502C127F503C128F5899A400EC76E6F :10809000200EC66E9E96C69E030EC96EFF0E9EB63D :1080A00002D0E82EFCD79E96C69E27C5C9FFFF0EBC :1080B0009EB602D0E82EFCD79E96C69E26C5C9FF66 :1080C000FF0E9EB602D0E82EFCD79E96C69E25C512 :1080D000C9FFFF0E9EB602D0E82EFCD79E96C69E24 :1080E000C952FF0E9EB602D0E82EFCD7898AC9502D :1080F000FF0A08E104C125F505C126F506C127F5EB :1081000007C128F5D89005012433233322332133C6 :108110002151E00B216F0501216796EF40F02267A6 :1081200096EF40F0236796EF40F024672BEF40F086 :108130000501200E2527E86A2623E86A2723E86A36 :1081400028231200E86A05012E51130A06E00501F2 :108150002E51170A0BE0020E120005012851000AE9 :1081600003E12751F00B07E0010E12000501285131 :10817000000A01E0010E120029C500F12AC501F133 :108180002BC502F12CC503F125C504F126C505F167 :1081900027C506F128C507F1F5EC39F003BF120039 :1081A000A2EC40F0D8A434EF41F0899A400EC76E9B :1081B000200EC66E9E96C69E060EC96EFF0E9EB619 :1081C00002D0E82EFCD7898A899A9E96C69E020E16 :1081D000C96EFF0E9EB602D0E82EFCD79E96C69EB4 :1081E00027C5C9FFFF0E9EB602D0E82EFCD79E968B :1081F000C69E26C5C9FFFF0E9EB602D0E82EFCD74C :108200009E96C69E25C5C9FFFF0E9EB602D0E82EDB :10821000FCD79E96C69E000EC96EFF0E9EB602D07B :10822000E82EFCD7898A899A9E96C69E050EC96E4D :10823000FF0E9EB602D0E82EFCD79E96C69EC9526F :10824000FF0E9EB602D0E82EFCD7C9B01DEF41F05C :10825000898A0501200E2527E86A2623E86A272354 :10826000E86A2823BCEF40F01200899A400EC76EDE :10827000200EC66E9E96C69E060EC96EFF0E9EB658 :1082800002D0E82EFCD7898A899A9E96C69EC70E90 :10829000C96EFF0E9EB602D0E82EFCD7898A050172 :1082A000256B266B276B286B1200899A400EC76ED0 :1082B000200EC66E9E96C69E050EC96EFF0E9EB619 :1082C00002D0E82EFCD79E96C69EC952FF0E9EB6DF :1082D00002D0E82EFCD7C9CF37F5898A1200899AD7 :1082E000400EC76E200EC66E9E96C69EB90EC96E13 :1082F000FF0E9EB602D0E82EFCD7898A1200899A1A :10830000400EC76E200EC66E9E96C69EAB0EC96E00 :10831000FF0E9EB602D0E82EFCD7898AFF0EE82E0B :10832000FED71200A2EC40F0D8A41200899A400EA9 :10833000C76E200EC66E9E96C69E030EC96EFF0EB9 :108340009EB602D0E82EFCD79E96C69E27C5C9FFD2 :10835000FF0E9EB602D0E82EFCD79E96C69E26C57E :10836000C9FFFF0E9EB602D0E82EFCD79E96C69E91 :1083700025C5C9FFFF0E9EB602D0E82EFCD79E96FB :10838000C69EC952FF0E9EB602D0E82EFCD7898A3F :108390000F01C950FF0AD8A40DEF45F00501FE0EEC :1083A000376F0501FF0E536FFF0E546FFF0E556FB1 :1083B000FF0E566F15A637991586E3EC3CF0AFC556 :1083C00038F5B0C539F5B1C53AF5B2C53BF5B3C519 :1083D0003CF5B4C53DF5B5C53EF50784BAC166F1B7 :1083E000BBC167F1BCC168F1BDC169F14BC14FF1BF :1083F0004CC150F14DC151F14EC152F157C159F12B :1084000058C15AF100011650010AD8B416EF42F0D3 :1084100000011650020AD8B43BEF42F0000116509A :10842000040AD8B460EF42F00DEF45F00501476B48 :10843000486B496B4A6B05014B6B4C6B4D6B4E6B3C :1084400005014F6B506B516B526B8BA0379BF4EC5B :108450002BF000C1DAF101C1DBF102C1DCF103C193 :10846000DDF100C13FF501C140F502C141F503C195 :1084700042F57FEF42F00501476B486B496B4A6B51 :1084800005014B6B4C6B4D6B4E6B05014F6B506B8D :10849000516B526BF4EC2BF000C1DAF101C1DBF14E :1084A00002C1DCF103C1DDF1F1EC2CF000C147F5B4 :1084B00001C148F502C149F503C14AF50DEF45F088 :1084C000379BDAC13FF5DBC140F5DCC141F5DDC1C9 :1084D00042F5F4EC2BF000C14BF501C14CF502C1A3 :1084E0004DF503C14EF5F1EC2CF000C14FF501C183 :1084F00050F502C151F503C152F57FEF42F005017D :1085000061678AEF42F062678AEF42F063678AEF41 :1085100042F064678EEF42F0A3EF42F0DAC100F15F :10852000DBC101F1DCC102F1DDC103F161C504F180 :1085300062C505F163C506F164C507F1F5EC39F0D4 :1085400003BF0DEF45F059C143F55AC144F5B9C514 :1085500045F54DEC37F036C649F537C64AF5060104 :108560004067BAEF42F04167BAEF42F04267BAEFB4 :1085700042F04367BEEF42F0CFEF42F00AEC3BF02F :1085800010EC3BF036C600F137C601F140C604F1ED :1085900041C605F1F5EC39F003AF0DEF45F00101EF :1085A000036B026B1AC600F11BC601F101AFDDEFD0 :1085B00042F0FF0E026FFF0E036F0101076B066BA7 :1085C0001CC604F11DC605F105AFEBEF42F0FF0E2E :1085D000066FFF0E076FFAEC39F00101076B066BAF :1085E0001EC604F11FC605F105AFFBEF42F0FF0EFA :1085F000066FFF0E076FFAEC39F00101076B066B8F :1086000020C604F121C605F105AF0BEF43F0FF0EC4 :10861000066FFF0E076FFAEC39F0D89001010333B3 :10862000023301330033D8900101033302330133A5 :10863000003300C14BF501C14CF50101036B026B26 :1086400022C600F123C601F101AF2BEF43F0FF0E6C :10865000026FFF0E036F0101076B066B24C604F166 :1086600025C605F105AF39EF43F0FF0E066FFF0E8B :10867000076FFAEC39F00101076B066B26C604F1AF :1086800027C605F105AF49EF43F0FF0E066FFF0E59 :10869000076FFAEC39F00101076B066B28C604F18D :1086A00029C605F105AF59EF43F0FF0E066FFF0E27 :1086B000076FFAEC39F0D89001010333023301332C :1086C0000033D8900101033302330133003300C17A :1086D0004DF501C14EF50101036B026B2AC600F195 :1086E0002BC601F101AF79EF43F0FF0E026FFF0ED1 :1086F000036F0101076B066B2CC604F12DC605F153 :1087000005AF87EF43F0FF0E066FFF0E076FFAEC21 :1087100039F00101076B066B2EC604F12FC605F177 :1087200005AF97EF43F0FF0E066FFF0E076FFAECF1 :1087300039F00101076B066B30C604F131C605F153 :1087400005AFA7EF43F0FF0E066FFF0E076FFAECC1 :1087500039F0D89001010333023301330033D8904C :108760000101033302330133003300C14FF501C16E :1087700050F50101036B026B02C600F103C601F163 :1087800001AFC7EF43F0FF0E026FFF0E036F010151 :10879000076B066B04C604F105C605F105AFD5EFFE :1087A00043F0FF0E066FFF0E076FFAEC39F0010180 :1087B000076B066B06C604F107C605F105AFE5EFCA :1087C00043F0FF0E066FFF0E076FFAEC39F0010160 :1087D000076B066B08C604F109C605F105AFF5EF96 :1087E00043F0FF0E066FFF0E076FFAEC39F0D890DA :1087F00001010333023301330033D8900101033305 :1088000002330133003300C151F501C152F50101BA :10881000036B026B0AC600F10BC601F101AF15EF45 :1088200044F0FF0E026FFF0E036F0101076B066B32 :108830000CC604F10DC605F105AF23EF44F0FF0EA1 :10884000066FFF0E076FFAEC39F00101076B066B3C :108850000EC604F10FC605F105AF33EF44F0FF0E6D :10886000066FFF0E076FFAEC39F00101076B066B1C :1088700010C604F111C605F105AF43EF44F0FF0E39 :10888000066FFF0E076FFAEC39F0D8900101033341 :10889000023301330033D890010103330233013333 :1088A000003300C153F501C154F50101036B026BA4 :1088B00012C600F113C601F101AF63EF44F0FF0EE1 :1088C000026FFF0E036F0101076B066B14C604F104 :1088D00015C605F105AF71EF44F0FF0E066FFF0EF0 :1088E000076FFAEC39F00101076B066B16C604F14D :1088F00017C605F105AF81EF44F0FF0E066FFF0EBE :10890000076FFAEC39F00101076B066B18C604F12A :1089100019C605F105AF91EF44F0FF0E066FFF0E8B :10892000076FFAEC39F0D8900101033302330133B9 :108930000033D8900101033302330133003300C107 :1089400055F501C156F50501210E326F899A400E89 :10895000C76E200EC66E9E96C69E060EC96EFF0E90 :108960009EB602D0E82EFCD7898A899A9E96C69E2A :10897000020EC96EFF0E9EB602D0E82EFCD79E9660 :10898000C69E27C5C9FFFF0E9EB602D0E82EFCD7B3 :108990009E96C69E26C5C9FFFF0E9EB602D0E82E43 :1089A000FCD79E96C69E25C5C9FFFF0E9EB602D077 :1089B000E82EFCD725EE37F0322F02D0EBEF44F053 :1089C0009E96C69EDECFC9FFFF0E9EB602D0E82E51 :1089D000FCD7DCEF44F0898A899A9E96C69E050EE4 :1089E000C96EFF0E9EB602D0E82EFCD79E96C69E9C :1089F000C952FF0E9EB602D0E82EFCD7C9B0F6EFE2 :108A000044F0898A0501200E2527E86A2623E86AB2 :108A10002723E86A2823C1EC38F015900794120048 :108A200021C500F122C501F123C502F124C503F1DE :108A3000899A400EC76E200EC66E9E96C69E0B0E7D :108A4000C96EFF0E9EB602D0E82EFCD79E96C69E3B :108A500002C1C9FFFF0E9EB602D0E82EFCD79E963B :108A6000C69E01C1C9FFFF0E9EB602D0E82EFCD7FC :108A70009E96C69E00C1C9FFFF0E9EB602D0E82E8C :108A8000FCD79E96C69EC952FF0E9EB602D0E82E17 :108A9000FCD725EE37F00501200E326F9E96C69E5C :108AA000C952FF0E9EB602D0E82EFCD7C9CFDEFF1A :108AB000322F4EEF45F0898A1200899A400EC76E18 :108AC000200EC66E9E96C69E900EC96EFF0E9EB676 :108AD00002D0E82EFCD79E96C69E000EC96EFF0EF1 :108AE0009EB602D0E82EFCD79E96C69E000EC96E9A :108AF000FF0E9EB602D0E82EFCD79E96C69E000EB4 :108B0000C96EFF0E9EB602D0E82EFCD79E96C69E7A :108B1000C952FF0E9EB602D0E82EFCD7C9CF2DF564 :108B20009E96C69EC952FF0E9EB602D0E82EFCD776 :108B3000C9CF2EF5898A1200E3EC3CF005012F51D4 :108B4000010A5FE005012F51020A16E005012F51CD :108B5000030A19E005012F51040A24E005012F51F1 :108B6000050A2BE005012F51060A39E005012F51B6 :108B7000070A3FE001EF46F0602FFFEF45F05FC5C9 :108B800060F501EF46F0B0C500F101010F0E0017CE :108B900001010051000A35E001010051050A31E0F0 :108BA000FFEF45F0B0C500F101010F0E0017010104 :108BB0000051000A26E0FFEF45F00501B051000A20 :108BC00020E00501B051150A1CE00501B051300A42 :108BD00018E00501B051450A14E0FFEF45F005012A :108BE000B051000A0EE00501B051300A0AE0FFEF73 :108BF00045F00501B051000A04E0FFEF45F0159083 :108C00001200158012008B90C1EC38F0B9C5E8FF56 :108C1000D70802E3C1EC38F0B9C5E8FFC80802E3A1 :108C2000C1EC38F0B9C5E8FFB90802E3C1EC38F08F :108C3000B9C5E8FFAA0802E3C1EC38F0B9C5E8FFFE :108C40009B0802E3C1EC38F06FEC41F0F29CF29E1D :108C50008B94C69AC290B0EC3CF09482948C720EC5 :108C6000D36ED3A4FED789968A909390F29AF29409 :108C70009D909E909D929E92F298F29289EC3EF089 :108C8000FF0EE8CF00F0E82EFED7002EFCD7F290C2 :108C9000F286815081A84FEF46F0F29E0300700EDD :108CA000D36EF296F29015840380E2EC38F03EEF3A :028CB0000CF0C6 :10BF0000E844F926000C160C2B0C3F0C520C640C68 :10BF1000760C860C960CA50CB30CC10CCF0CDC0C6B :06BF2000E80CF40C000C1B :0200000400F00A :0100C800FE39 :00000001FF ./firmware/SQM-LR-4-5-79.hex0000644000175000017500000014327014274541470015211 0ustar anthonyanthony:020000040000FA :0408000085EF09F087 :1008100003B28CEF05F0F2B4AAEF05F09EB0B2EF90 :1008200005F09EB2BAEF05F0F2A81AEF04F0F2B2AA :100830003AEF04F09EB61FEF04F034EF09F09E96F5 :1008400000011750000A0AE000011750010A0AE0EF :1008500000011750020A0AE034EF09F063EC24F0BB :1008600034EF09F05BEC26F034EF09F03DEC27F0B3 :1008700034EF09F0CD90F2929EA044EF04F0010114 :10088000533F44EF04F0542BB2C1B6F1B3C1B7F1FA :10089000B4C1B8F1B5C1B9F1AEC1B2F1AFC1B3F1F4 :1008A000B0C1B4F1B1C1B5F1AAC1AEF1ABC1AFF104 :1008B000ACC1B0F1ADC1B1F1A6C1AAF1A7C1ABF114 :1008C000A8C1ACF1A9C1ADF1A2C1A6F1A3C1A7F124 :1008D000A4C1A8F1A5C1A9F19EC1A2F19FC1A3F134 :1008E000A0C1A4F1A1C1A5F19AC19EF19BC19FF144 :1008F0009CC1A0F19DC1A1F1CECF9AF1CFCF9BF1C8 :1009000053C19CF154C19DF1CF6ACE6A0101536B72 :10091000546B9E90CD800FBC0F8E0FBA93EF04F0F6 :100920000F8A34EF09F013880F8C0FBED0EF04F05C :100930009AC19EF19BC19FF19CC1A0F19DC1A1F103 :100940009EC1A2F19FC1A3F1A0C1A4F1A1C1A5F1D3 :10095000A2C1A6F1A3C1A7F1A4C1A8F1A5C1A9F1A3 :10096000A6C1AAF1A7C1ABF1A8C1ACF1A9C1ADF173 :10097000AAC1AEF1ABC1AFF1ACC1B0F1ADC1B1F143 :10098000AEC1B2F1AFC1B3F1B0C1B4F1B1C1B5F113 :10099000B2C1B6F1B3C1B7F1B4C1B8F1B5C1B9F1E3 :1009A00001015E6B5F6B606B616B9A515E279B51BF :1009B0005F239C5160239D5161239E515E279F516F :1009C0005F23A0516023A1516123A2515E27A3514F :1009D0005F23A4516023A5516123A6515E27A7512F :1009E0005F23A8516023A9516123AA515E27AB510F :1009F0005F23AC516023AD516123AE515E27AF51EF :100A00005F23B0516023B1516123B2515E27B351CE :100A10005F23B4516023B5516123B6515E27B751AE :100A20005F23B8516023B9516123D890010161332C :100A300060335F335E33D8900101613360335F33DD :100A40005E33D8900101613360335F335E3300C1A0 :100A50000CF101C10DF102C10EF103C10FF104C18E :100A600010F105C111F106C112F107C113F108C15E :100A700014F109C115F10AC116F10BC117F134C106 :100A800035F111B84FEF05F00101620E046F010E50 :100A9000056F000E066F000E076F58EF05F001019D :100AA000A70E046F020E056F000E066F000E076F93 :100AB0005EC100F15FC101F160C102F161C103F1EA :100AC000C7EC22F003BF04D01CBE02D01CA0108CC7 :100AD00011A070EF05F010BA70EF05F00F80108ACA :100AE0000CC100F10DC101F10EC102F10FC103F102 :100AF00010C104F111C105F112C106F113C107F1D2 :100B000014C108F115C109F116C10AF117C10BF1A1 :100B100035C134F134EF09F00392ABB2AB98AB8836 :100B2000030103EE00F080517F0BE92604C0EFFFC4 :100B3000802B8151805D700BD8A48B820000805186 :100B4000815D700BD8A48B9281518019D8B4079025 :100B500034EF09F0F2940101453F34EF09F0462BE0 :100B600034EF09F09E900101533F34EF09F0542B0C :100B700034EF09F09E9211B830EF07F08BB4C8EF54 :100B800005F010ACC8EF05F08B84109CC9EF05F0A0 :100B90008B94C3CF55F1C4CF56F1C28207B438EF5E :100BA00006F047C14BF148C14CF149C14DF14AC172 :100BB0004EF15EC162F15FC163F160C164F161C178 :100BC00065F113A8E6EF05F0138C13989AC1BAF1FA :100BD0009BC1BBF19CC1BCF19DC1BDF19EC1BEF1E9 :100BE0009FC1BFF1A0C1C0F1A1C1C1F1A2C1C2F1B9 :100BF000A3C1C3F1A4C1C4F1A5C1C5F1A6C1C6F189 :100C0000A7C1C7F1A8C1C8F1A9C1C9F1AAC1CAF158 :100C1000ABC1CBF1ACC1CCF1ADC1CDF1AEC1CEF128 :100C2000AFC1CFF1B0C1D0F1B1C1D1F1B2C1D2F1F8 :100C3000B3C1D3F1B4C1D4F1B5C1D5F1B6C1D6F1C8 :100C4000B7C1D7F1B8C1D8F1B9C1D9F10101555136 :100C50005B2756515C23E86A5D230E2E38EF06F0C1 :100C60005CC157F15DC158F15B6B5C6B5D6B078ECE :100C70000201002F34EF09F03C0E006F1D50E00B15 :100C8000E00AE86612881BBE02D01BB4108E00C1B9 :100C90000CF101C10DF102C10EF103C10FF104C14C :100CA00010F105C111F106C112F107C113F108C11C :100CB00014F109C115F10AC116F10BC117F134C1C4 :100CC00035F101018E676CEF06F08F676CEF06F06F :100CD00090676CEF06F0916770EF06F0A1EF06F0F9 :100CE00092C100F193C101F194C102F195C103F1E8 :100CF0000101010E046F000E056F000E066F000E5D :100D0000076FC7EC22F000C192F101C193F102C15B :100D100094F103C195F10101006796EF06F00167B8 :100D200096EF06F0026796EF06F00367A1EF06F074 :100D30008EC192F18FC193F190C194F191C195F15F :100D40000F80D57ED5BE6ED0D6CF47F1D7CF48F134 :100D500045C149F1E86AE8CF4AF1138A1CBE02D0C6 :100D60001CA0108C109047C100F148C101F149C18D :100D700002F14AC103F101010A0E046F000E056F72 :100D8000000E066F000E076FC7EC22F003AF108055 :100D9000010154A7D8EF06F00F9A0F9C0F9E010196 :100DA000000E5E6F600E5F6F3D0E606F080E616F2C :100DB000010147BFE8EF06F04867E8EF06F0496732 :100DC000E8EF06F04A67E8EF06F0F2880DEF07F06B :100DD000F2985E6B5F6B606B616B9A6B9B6B9C6B4D :100DE0009D6B9E6B9F6BA06BA16BA26BA36BA46BA7 :100DF000A56BA66BA76BA86BA96BAA6BAB6BAC6B57 :100E0000AD6BAE6BAF6BB06BB16BB26BB36BB46B06 :100E1000B56BB66BB76BB86BB96BD76AD66A0101A5 :100E2000456B466B0CC100F10DC101F10EC102F121 :100E30000FC103F110C104F111C105F112C106F196 :100E400013C107F114C108F115C109F116C10AF166 :100E500017C10BF135C134F134EF09F034EF09F06B :100E60000201002F8BEF08F0D59ED6CF47F1D7CFE8 :100E700048F145C149F1E86AE8CF4AF1138AD76AD7 :100E8000D66A0101456B466BD58E1D50E00BE00A1A :100E9000E86612881BBE02D01BB4108E1AAE1F8CDF :100EA00000C10CF101C10DF102C10EF103C10FF13E :100EB00004C110F105C111F106C112F107C113F10E :100EC00008C114F109C115F10AC116F10BC117F1DE :100ED00034C135F10FA0109A11B87AEF07F0010173 :100EE000620E046F010E056F000E066F000E076F95 :100EF00083EF07F00101A70E046F020E056F000ECD :100F0000066F000E076F47C100F148C101F149C1EA :100F100002F14AC103F1C7EC22F003BF96EF07F0DC :100F20001CBE02D01CA0108C11B00F800CC100F1AF :100F30000DC101F10EC102F10FC103F110C104F1A5 :100F400011C105F112C106F113C107F114C108F175 :100F500015C109F116C10AF117C10BF135C134F100 :100F600002013C0E006F00C10CF101C10DF102C184 :100F70000EF103C10FF104C110F105C111F106C159 :100F800012F107C113F108C114F109C115F10AC129 :100F900016F10BC117F134C135F101018E67D8EF9D :100FA00007F08F67D8EF07F09067D8EF07F09167E9 :100FB000DCEF07F00DEF08F092C100F193C101F1F1 :100FC00094C102F195C103F10101010E046F000EFD :100FD000056F000E066F000E076FC7EC22F000C110 :100FE00092F101C193F102C194F103C195F10101A4 :100FF000006702EF08F0016702EF08F0026702EFF6 :1010000008F003670DEF08F08EC192F18FC193F1E4 :1010100090C194F191C195F10F80109047C100F1FA :1010200048C101F149C102F14AC103F101010A0EAF :10103000046F000E056F000E066F000E076FC7EC01 :1010400022F003AF1080010154A733EF08F00F9A8C :101050000F9C0F9E0101000E5E6F600E5F6F3D0ED4 :10106000606F080E616F47C100F148C101F149C1CD :1010700002F14AC103F10101140E046F050E056F60 :10108000000E066F000E076FC7EC22F003AF4CEFA7 :1010900008F0F28871EF08F0F2985E6B5F6B606B9E :1010A000616B9A6B9B6B9C6B9D6B9E6B9F6BA06B3C :1010B000A16BA26BA36BA46BA56BA66BA76BA86BB4 :1010C000A96BAA6BAB6BAC6BAD6BAE6BAF6BB06B64 :1010D000B16BB26BB36BB46BB56BB66BB76BB86B14 :1010E000B96B0CC100F10DC101F10EC102F10FC1CC :1010F00003F110C104F111C105F112C106F113C1D0 :1011000007F114C108F115C109F116C10AF117C19F :101110000BF135C134F11AEC27F0206629D01FAE4F :1011200011D01F9E208E1BAE07D0176A040E186EBA :10113000196A63EC24F01CD0176A186A196A63EC08 :1011400024F016D01FAC09D01F9C208C010E176E06 :10115000186A196A5BEC26F00BD01FAA09D01F9AF7 :10116000208A020E176E186A196A3DEC27F000D02B :101170008BB4C2EF08F010ACC2EF08F08B84109C67 :10118000C3EF08F08B94C3CF55F1C4CF56F1C282A0 :1011900007B432EF09F047C14BF148C14CF149C1E6 :1011A0004DF14AC14EF15EC162F15FC163F160C1B0 :1011B00064F161C165F113A8E0EF08F0138C139896 :1011C0009AC1BAF19BC1BBF19CC1BCF19DC1BDF1FB :1011D0009EC1BEF19FC1BFF1A0C1C0F1A1C1C1F1CB :1011E000A2C1C2F1A3C1C3F1A4C1C4F1A5C1C5F19B :1011F000A6C1C6F1A7C1C7F1A8C1C8F1A9C1C9F16B :10120000AAC1CAF1ABC1CBF1ACC1CCF1ADC1CDF13A :10121000AEC1CEF1AFC1CFF1B0C1D0F1B1C1D1F10A :10122000B2C1D2F1B3C1D3F1B4C1D4F1B5C1D5F1DA :10123000B6C1D6F1B7C1D7F1B8C1D8F1B9C1D9F1AA :10124000010155515B2756515C23E86A5D230E2E40 :1012500032EF09F05CC157F15DC158F15B6B5C6B1B :101260005D6B078E34EF09F002C0E0FF005001C053 :10127000D8FF1000A6B23AEF09F00CC0A9FF0BC0CE :10128000A8FFA69EA69CA684F29E550EA76EAA0E47 :10129000A76EA682F28EA694A6B24CEF09F00C2A95 :1012A0001200A96EA69EA69CA680A8500C2A120029 :1012B00004012C0E826F99EC0BF0DCEC23F00C5047 :1012C00051EC09F0E8CF00F10C5051EC09F0E8CFF7 :1012D00001F101AF71EF09F00101FF0E026FFF0E86 :1012E000036F65EC23F029677DEF09F00401200E00 :1012F000826F99EC0BF082EF09F004012D0E826FE2 :1013000099EC0BF06FEC21F0120015941596076A1A :101310000F6A106A116A126A136A166A0F010E0EBA :10132000C16E860EC06E030EC26E0F01896A190E61 :10133000926E080E8A6EF10E936E8B6A980E946E02 :10134000F18EFC0E51EC09F0E8CF0BF00BA01180F0 :101350000BA211820BA411840BA81188C90E51ECA9 :1013600009F0E8CF1AF0CA0E51EC09F0E8CF1BF0F3 :10137000CB0E51EC09F0E8CF1CF0CC0E51EC09F08B :10138000E8CF1DF0FB0E51EC09F0E8CF37F0CE0EA0 :1013900051EC09F0E8CF14F0CD0E51EC09F0E8CF94 :1013A00036F01F6A206A0E6A01015B6B5C6B5D6B35 :1013B000576B586BF29A0101476B486B496B4A6B4C :1013C0004B6B4C6B4D6B4E6B4F6B506B516B526B51 :1013D000456B466BD76AD66A0F01280ED56EF28A26 :1013E0009D90B00ECD6E01015E6B5F6B606B616BAB :1013F000626B636B646B656B666B676B686B696B69 :10140000536B546BCF6ACE6A0F9A0F9C0F9E9D80D0 :10141000760ECA6E9D8202013C0E006FCC6A160EDB :1014200051EC09F0E8CF00F1170E51EC09F0E8CFCC :1014300001F1180E51EC09F0E8CF02F1190E51EC50 :1014400009F0E8CF03F1010103AF41EF0AF0DCEC52 :1014500023F0160E0C6E00C10BF03AEC09F0170EDB :101460000C6E01C10BF03AEC09F0180E0C6E02C1C3 :101470000BF03AEC09F0190E0C6E03C10BF03AECCC :1014800009F000C18EF101C18FF102C190F103C1D9 :1014900091F100C192F101C193F102C194F103C134 :1014A00095F11A0E51EC09F0E8CF00F11B0E51EC4A :1014B00009F0E8CF01F11C0E51EC09F0E8CF02F180 :1014C0001D0E51EC09F0E8CF03F1010103AF97EFD6 :1014D0000AF0DCEC23F01A0E0C6E00C10BF03AECB3 :1014E00009F01B0E0C6E01C10BF03AEC09F01C0E5A :1014F0000C6E02C10BF03AEC09F01D0E0C6E03C12C :101500000BF03AEC09F01A0E51EC09F0E8CF00F1BB :101510001B0E51EC09F0E8CF01F11C0E51EC09F063 :10152000E8CF02F11D0E51EC09F0E8CF03F100C144 :1015300096F101C197F102C198F103C199F1240E0E :10154000AC6E900EAB6E240EAC6E080EB86E80B60C :10155000C8EF0AF01E0E51EC09F0E8CF00F11F0EA3 :1015600051EC09F0E8CF01F100C1E8FFFF0A10E0FB :1015700001C1E8FFFF0A0CE01E0E51EC09F0E8CFB4 :10158000AFFF1F0E51EC09F0E8CFB0FFCCEF0AF02F :10159000000EB06E1F0EAF6E0401806B816B0F01E9 :1015A000900EAB6E0F019D8A0301806B816BC26B45 :1015B0008B92176A186A196A9D8607900001F28E4D :1015C000F28C07B01DEF20F00FB00DEF19F010BE38 :1015D0000DEF19F012B80DEF19F0030180518119C8 :1015E0007F0BD8B41DEF20F013EE00F081517F0B7C :1015F000E126812BE7CFE8FFE00BD8B41DEF20F008 :1016000023EE82F0C2513F0BD926E7CFDFFFC22B7A :10161000DF50780AD8A41DEF20F0078092C100F1B6 :1016200093C101F194C102F195C103F10101040ECE :10163000046F000E056F000E066F000E076FC7ECFB :1016400022F000AF2DEF0BF00101030E926F000EA0 :10165000936F000E946F000E956F03018251720A12 :10166000D8B48EEF18F08251520AD8B48EEF18F029 :101670008251750AD8B48EEF18F08251680AD8B436 :10168000ADEF0BF08251630AD8B4D7EF1CF0825152 :10169000690AD8B45BEF13F082517A0AD8B46EEFBE :1016A00014F08251490AD8B4FAEF12F08251500A6C :1016B000D8B418EF12F08251700AD8B45BEF12F070 :1016C0008251540AD8B486EF12F08251740AD8B409 :1016D000CCEF12F08251410AD8B4B2EF0CF0825133 :1016E0004B0AD8B4AFEF0BF082516D0AD8B422EF99 :1016F00011F082514D0AD8B43BEF11F08251730AB8 :10170000D8B4BEEF17F08251530AD8B423EF18F0C3 :101710008251620AD8B4CAEF11F08251420AD8B499 :1017200005EF12F08251590AD8B473EF10F00EEFA2 :101730001DF0040114EE00F080517F0BE12682C4FD :10174000E7FF802B120004010D0E826F99EC0BF065 :101750000A0E826F99EC0BF012000CEF1DF00401E1 :101760004B0E826F99EC0BF004012C0E826F99ECFA :101770000BF081B802D036B630D003018351430A52 :10178000D8B4F4EF0BF003018351630AD8B4F6EF39 :101790000BF003018351520AD8B4F8EF0BF00301A8 :1017A0008351720AD8B4FAEF0BF003018351470A50 :1017B000D8B4FCEF0BF003018351670AD8B4FEEFF5 :1017C0000BF003018351540AD8B400EF0CF003016D :1017D0008351740AD8B470EF0CF003018351550A99 :1017E000D8B402EF0CF083D036807BD0369079D01D :1017F000368277D0369275D0368473D0369471D0D5 :1018000036866FD084C330F185C331F186C332F19F :1018100087C333F10101296B2AEC24F0A1EC23F0FA :1018200000C104F101C105F102C106F103C107F1D4 :101830001DEC24F0200EF86EF76AF66A0900F5CF69 :101840002CF10900F5CF2DF10900F5CF2EF109009B :10185000F5CF2FF10900F5CF30F10900F5CF31F1C7 :101860000900F5CF32F10900F5CF33F10101296B01 :101870002AEC24F0A1EC23F0C7EC22F00101006770 :1018800049EF0CF0016749EF0CF0026749EF0CF0EB :10189000036701D025D004014E0E826F99EC0BF046 :1018A00004016F0E826F99EC0BF004014D0E826FF4 :1018B00099EC0BF00401610E826F99EC0BF00401BE :1018C000740E826F99EC0BF00401630E826F99EC39 :1018D0000BF00401680E826F99EC0BF00CEF1DF019 :1018E0003696CD0E0C6E36C00BF03AEC09F0CD0EEC :1018F00051EC09F0E8CF36F036B006D00401630EA3 :10190000826F99EC0BF005D00401430E826F99ECC5 :101910000BF036B206D00401720E826F99EC0BF018 :1019200005D00401520E826F99EC0BF036B406D04C :101930000401670E826F99EC0BF005D00401470E8D :10194000826F99EC0BF036B606D00401740E826FEC :1019500099EC0BF005D00401540E826F99EC0BF05A :101960000CEF1DF00401410E826F99EC0BF00301A6 :101970008351310AD8B493EF0FF003018351320A37 :10198000D8B4C3EF0EF003018351330AD8B44CEF3F :101990000EF003018351340AD8B43CEF0DF003017B :1019A0008351350AD8B4DCEF0CF004013F0E826F8E :1019B00099EC0BF00CEF1DF003018451300AD8B400 :1019C00002EF0DF003018451310AD8B405EF0DF098 :1019D00003018451650AD8B4F6EF0CF00301845179 :1019E000640AD8B4F9EF0CF006EF0DF03790FAEF77 :1019F0000CF03780FB0E0C6E37C00BF03AEC09F0A0 :101A000006EF0DF08B9006EF0DF08B800401350E84 :101A1000826F99EC0BF004012C0E826F99EC0BF0A5 :101A20008BB01AEF0DF00401300E826F99EC0BF0C1 :101A30001FEF0DF00401310E826F99EC0BF00401E1 :101A40002C0E826F99EC0BF0FB0E51EC09F0E8CFF5 :101A500037F037A033EF0DF00401640E826F99EC7C :101A60000BF038EF0DF00401650E826F99EC0BF06E :101A70003AEF0DF00CEF1DF0CC0E51EC09F0E8CF71 :101A80000BF004012C0E826F99EC0BF003018451D2 :101A9000310AD8B460EF0DF003018451300AD8B494 :101AA00062EF0DF0030184514D0AD8B46CEF0DF0D4 :101AB00003018451540AD8B473EF0DF08AEF0DF08E :101AC0008A8401D08A940BAE04D00BAC02D00BBA3E :101AD00021D0E00E0B1218D01F0E0B168539E844EA :101AE000E00B0B1211D0E00E0B161DEC24F085C399 :101AF00032F186C333F10101296B2AEC24F0A1EC09 :101B000023F000511F0B0B12CC0E0C6E0BC00BF010 :101B10003AEC09F00401340E826F99EC0BF00401E9 :101B20002C0E826F99EC0BF0CC0E51EC09F0E8CF43 :101B30001DF08AB406D00401300E826F99EC0BF0D0 :101B400005D00401310E826F99EC0BF004012C0ECC :101B5000826F99EC0BF01D38E840070BE8CF82F458 :101B60000401300E822799EC0BF004012C0E826FD9 :101B700099EC0BF0DCEC23F01D501F0BE8CF00F1CB :101B800065EC23F032C182F40401300E822799EC17 :101B90000BF033C182F40401300E822799EC0BF074 :101BA00004012C0E826F99EC0BF0DCEC23F030C0BA :101BB00000F100AF0BD0FF0E016FFF0E026FFF0EA2 :101BC000036F04012D0E826F99EC0BF065EC23F08E :101BD00031C182F40401300E822799EC0BF032C13E :101BE00082F40401300E822799EC0BF033C182F4A9 :101BF0000401300E822799EC0BF004012C0E826F49 :101C000099EC0BF0DCEC23F02FC000F165EC23F035 :101C100031C182F40401300E822799EC0BF032C1FD :101C200082F40401300E822799EC0BF033C182F468 :101C30000401300E822799EC0BF004012C0E826F08 :101C400099EC0BF0DCEC23F031C000F100AF0BD0CD :101C5000FF0E016FFF0E026FFF0E036F04012D0ECA :101C6000826F99EC0BF065EC23F031C182F4040132 :101C7000300E822799EC0BF032C182F40401300E51 :101C8000822799EC0BF033C182F40401300E8227D5 :101C900099EC0BF00CEF1DF0CB0E51EC09F0E8CFF6 :101CA0000BF004012C0E826F99EC0BF003018451B0 :101CB000450AD8B470EF0EF003018451440AD8B439 :101CC00073EF0EF003018451300AD8B476EF0EF0B2 :101CD00003018451310AD8B47AEF0EF085EF0EF08B :101CE0000B9E7FEF0EF00B8E7FEF0EF0FC0E0B16AF :101CF0007FEF0EF0FC0E0B160B807FEF0EF0CB0E7D :101D00000C6E0BC00BF03AEC09F00401330E826F3D :101D100099EC0BF004012C0E826F99EC0BF0CB0EBA :101D200051EC09F0E8CF1CF01CBE9EEF0EF0040150 :101D3000450E826F99EC0BF0A3EF0EF00401440EF8 :101D4000826F99EC0BF004012C0E826F99EC0BF072 :101D50000401300E826F99EC0BF004012C0E826F9F :101D600099EC0BF01CB0BCEF0EF00401300E826F4A :101D700099EC0BF0C1EF0EF00401310E826F99EC7B :101D80000BF00CEF1DF0CA0E51EC09F0E8CF0BF090 :101D900004012C0E826F99EC0BF003018451450A6B :101DA000D8B4FFEF0EF003018451440AD8B402EF17 :101DB0000FF0030184514D0AD8B40BEF0FF003016B :101DC0008451410AD8B405EF0FF003018451460A4B :101DD000D8B408EF0FF003018451560AD8B413EFBA :101DE0000FF003018451500AD8B41EEF0FF0030125 :101DF0008451520AD8B421EF0FF02AEF0FF00B9E56 :101E000024EF0FF00B8E24EF0FF00B9C24EF0FF05C :101E10000B8C24EF0FF0FC0E0B1685C3E8FF030BB1 :101E20000B1224EF0FF0C70E0B1685C3E8FF070B4C :101E3000E846E846E8460B1224EF0FF00B8424EF47 :101E40000FF00B9424EF0FF0CA0E0C6E0BC00BF0CA :101E50003AEC09F0CA0E51EC09F0E8CF1BF004018E :101E6000320E826F99EC0BF004012C0E826F99EC0C :101E70000BF01BBE43EF0FF00401450E826F99EC8F :101E80000BF048EF0FF00401440E826F99EC0BF059 :101E900004012C0E826F99EC0BF01BC0E8FF030BC2 :101EA000E8CF82F40401300E822799EC0BF0040194 :101EB0002C0E826F99EC0BF01BBC66EF0FF0040147 :101EC000410E826F99EC0BF06BEF0FF00401460EA0 :101ED000826F99EC0BF004012C0E826F99EC0BF0E1 :101EE0001BC0E8FF380BE842E842E842E8CF82F442 :101EF0000401300E822799EC0BF004012C0E826F46 :101F000099EC0BF01BB48CEF0FF00401520E826FB2 :101F100099EC0BF091EF0FF00401500E826F99ECE9 :101F20000BF00CEF1DF0C90E51EC09F0E8CF0BF0EF :101F300004012C0E826F99EC0BF003018451450AC9 :101F4000D8B4B1EF0FF003018451440AD8B4B4EF10 :101F50000FF0030184514D0AD8B4B7EF0FF0C5EF6D :101F60000FF00B9EBFEF0FF00B8EBFEF0FF0F80ED0 :101F70000B1685C3E8FF070B0B12BFEF0FF0C90E5E :101F80000C6E0BC00BF03AEC09F00401310E826FBD :101F900099EC0BF004012C0E826F99EC0BF0C90E3A :101FA00051EC09F0E8CF1AF01ABE06D00401450E34 :101FB000826F99EC0BF005D00401440E826F99EC0E :101FC0000BF004012C0E826F99EC0BF01AC0E8FFA5 :101FD000070BE8CF82F40401300E822799EC0BF056 :101FE00004012C0E826F99EC0BF00780DCEC23F0DF :101FF0002BC0E8FF003B00430043030B65EC23F0DC :1020000033C182F40401300E822799EC0BF00401F5 :102010002C0E826F99EC0BF0DCEC23F02BC001F15D :10202000019F019D2CC000F1010165EC23F02FC13F :1020300082F40401300E822799EC0BF030C182F457 :102040000401300E822799EC0BF031C182F40401B7 :10205000300E822799EC0BF032C182F40401300E6D :10206000822799EC0BF033C182F40401300E8227F1 :1020700099EC0BF004012C0E826F99EC0BF0DCEC68 :1020800023F02DC001F12EC000F1D89001330033B0 :10209000D89001330033010165EC23F02FC182F4A5 :1020A0000401300E822799EC0BF030C182F4040158 :1020B000300E822799EC0BF031C182F40401300E0E :1020C000822799EC0BF032C182F40401300E822792 :1020D00099EC0BF033C182F40401300E822799ECA5 :1020E0000BF00CEF1DF0FC0E51EC09F0E8CF0BF0FB :1020F00003018351520AD8B4AAEF10F003018351AF :10210000720AD8B4ADEF10F003018351500AD8B46D :10211000B0EF10F003018351700AD8B4B3EF10F0A0 :1021200003018351550AD8B4B6EF10F0030183516F :10213000750AD8B4B9EF10F003018351430AD8B43B :10214000C2EF10F003018351630AD8B4C5EF10F059 :10215000CEEF10F00B90C8EF10F00B80C8EF10F02E :102160000B92C8EF10F00B82C8EF10F00B94C8EF81 :1021700010F00B84C8EF10F00B96C8EF10F00B8630 :10218000C8EF10F00B98C8EF10F00B88C8EF10F0F4 :10219000FC0E0C6E0BC00BF03AEC09F00401590E6A :1021A000826F99EC0BF01190119211941198FC0E22 :1021B00051EC09F0E8CF0BF00BA011800BA21182BB :1021C0000BA411840BA8118811A0EEEF10F00401EC :1021D000520E826F99EC0BF0F3EF10F00401720EC7 :1021E000826F99EC0BF011A8FDEF10F00401430E83 :1021F000826F99EC0BF002EF11F00401630E826F15 :1022000099EC0BF011A20CEF11F00401500E826F4B :1022100099EC0BF011EF11F00401700E826F99EC44 :102220000BF011A41BEF11F00401550E826F99EC15 :102230000BF020EF11F00401750E826F99EC0BF09A :102240000CEF1DF004016D0E826F99EC0BF0030191 :102250008351300AD8B47AEF11F003018351310A67 :10226000D8B48DEF11F003018351320AD8B4A0EF36 :1022700011F00EEF1DF004014D0E826F99EC0BF082 :102280001DEC24F084C331F185C332F186C333F1F0 :102290000101296B2AEC24F0A1EC23F00301835106 :1022A000300AD8B462EF11F003018351310AD8B477 :1022B0006AEF11F003018351320AD8B472EF11F0C2 :1022C0000EEF1DF0FD0E0C6E00C10BF03AEC09F0A4 :1022D0007AEF11F0FE0E0C6E00C10BF03AEC09F033 :1022E0008DEF11F0FF0E0C6E00C10BF03AEC09F00F :1022F000A0EF11F00401300E826F99EC0BF0040195 :102300002C0E826F99EC0BF0DCEC23F0FD0E51ECFF :1023100009F0E8CF00F1B1EF11F00401310E826F46 :1023200099EC0BF004012C0E826F99EC0BF0DCECB5 :1023300023F0FE0E51EC09F0E8CF00F1B1EF11F0FF :102340000401320E826F99EC0BF0DCEC23F00401F7 :102350002C0E826F99EC0BF0FF0E51EC09F0E8CFD8 :1023600000F165EC23F031C182F40401300E8227C4 :1023700099EC0BF032C182F40401300E822799EC03 :102380000BF033C182F40401300E822799EC0BF07C :102390000CEF1DF08351610AD8A40EEF1DF084519B :1023A000750AD8A40EEF1DF08551640AD8A40EEF6B :1023B0001DF086C32AF187C32BF188C32CF189C392 :1023C0002DF18AC32EF18BC32FF18CC330F18DC355 :1023D00031F18EC332F18FC333F10101296B2AEC45 :1023E00024F0A1EC23F000C1AFFF01C1B0FF1E0E2D :1023F0000C6EAFCF0BF03AEC09F01F0E0C6EB0CFA5 :102400000BF03AEC09F00EEF1DF080B60FEF12F072 :102410000401300E826F99EC0BF014EF12F00401FE :10242000310E826F99EC0BF0A3EC0BF00EEF1DF068 :1024300083C32AF184C32BF185C32CF186C32DF10C :1024400087C32EF188C32FF189C330F18AC331F1DC :102450008BC332F18CC333F101012AEC24F0A1ECDF :1024600023F0160E0C6E00C10BF03AEC09F0170EBB :102470000C6E01C10BF03AEC09F0180E0C6E02C1A3 :102480000BF03AEC09F0190E0C6E03C10BF03AECAC :1024900009F000C18EF101C18FF102C190F103C1B9 :1024A00091F100C192F101C193F102C194F103C114 :1024B00095F1FAEF12F083C32AF184C32BF185C39F :1024C0002CF186C32DF187C32EF188C32FF189C368 :1024D00030F18AC331F18BC332F18CC333F1010186 :1024E0002AEC24F0A1EC23F000C18EF101C18FF1A0 :1024F00002C190F103C191F100C192F101C193F1C8 :1025000002C194F103C195F1FAEF12F083C32AF1ED :1025100084C32BF185C32CF186C32DF187C32EF123 :1025200088C32FF189C330F18AC331F18CC332F1F2 :102530008DC333F101012AEC24F0A1EC23F0010159 :10254000000E046F000E056F010E066F000E076F80 :10255000D8EC22F01A0E0C6E00C10BF03AEC09F028 :102560001B0E0C6E01C10BF03AEC09F01C0E0C6E48 :1025700002C10BF03AEC09F01D0E0C6E03C10BF01A :102580003AEC09F000C196F101C197F102C198F14E :1025900003C199F1FAEF12F083C32AF184C32BF13E :1025A00085C32CF186C32DF187C32EF188C32FF18B :1025B00089C330F18AC331F18CC332F18DC333F159 :1025C00001012AEC24F0A1EC23F00101000E046FBC :1025D000000E056F010E066F000E076FD8EC22F09B :1025E00000C196F101C197F102C198F103C199F1BF :1025F000FAEF12F0160E51EC09F0E8CF00F1170EC9 :1026000051EC09F0E8CF01F1180E51EC09F0E8CFD8 :1026100002F1190E51EC09F0E8CF03F165EC23F05B :1026200028EC21F00401730E826F99EC0BF0040189 :102630002C0E826F99EC0BF08EC100F18FC101F16D :1026400090C102F191C103F165EC23F028EC21F077 :102650000401730E826F99EC0BF004012C0E826F53 :1026600099EC0BF01A0E51EC09F0E8CF00F11B0EBB :1026700051EC09F0E8CF01F11C0E51EC09F0E8CF64 :1026800002F11D0E51EC09F0E8CF03F129EC1DF029 :1026900004012C0E826F99EC0BF096C100F197C1EA :1026A00001F198C102F199C103F129EC1DF0A3ECED :1026B0000BF00EEF1DF00401690E826F99EC0BF028 :1026C00004012C0E826F99EC0BF00101040E006FD7 :1026D000000E016F000E026F000E036F65EC23F019 :1026E0002CC182F40401300E822799EC0BF02DC12D :1026F00082F40401300E822799EC0BF02EC182F493 :102700000401300E822799EC0BF02FC182F40401F2 :10271000300E822799EC0BF030C182F40401300EA8 :10272000822799EC0BF031C182F40401300E82272C :1027300099EC0BF032C182F40401300E822799EC3F :102740000BF033C182F40401300E822799EC0BF0B8 :1027500004012C0E826F99EC0BF00101050E006F45 :10276000000E016F000E026F000E036F65EC23F088 :102770002CC182F40401300E822799EC0BF02DC19C :1027800082F40401300E822799EC0BF02EC182F402 :102790000401300E822799EC0BF02FC182F4040162 :1027A000300E822799EC0BF030C182F40401300E18 :1027B000822799EC0BF031C182F40401300E82279C :1027C00099EC0BF032C182F40401300E822799ECAF :1027D0000BF033C182F40401300E822799EC0BF028 :1027E00004012C0E826F99EC0BF001014F0E006F6B :1027F000000E016F000E026F000E036F65EC23F0F8 :102800002CC182F40401300E822799EC0BF02DC10B :1028100082F40401300E822799EC0BF02EC182F471 :102820000401300E822799EC0BF02FC182F40401D1 :10283000300E822799EC0BF030C182F40401300E87 :10284000822799EC0BF031C182F40401300E82270B :1028500099EC0BF032C182F40401300E822799EC1E :102860000BF033C182F40401300E822799EC0BF097 :1028700004012C0E826F99EC0BF0200EF86EF76AB3 :10288000F66A04010900F5CF82F499EC0BF0090017 :10289000F5CF82F499EC0BF00900F5CF82F499ECB6 :1028A0000BF00900F5CF82F499EC0BF00900F5CF9D :1028B00082F499EC0BF00900F5CF82F499EC0BF05F :1028C0000900F5CF82F499EC0BF00900F5CF82F402 :1028D00099EC0BF0A3EC0BF00EEF1DF08351630AA3 :1028E000D8A40CEF1DF08451610AD8A40CEF1DF0A0 :1028F00085516C0AD8A40CEF1DF08651410A3FE0C7 :102900008651440A1BE08651420AD8B4D2EF14F033 :102910008651350AD8B498EF1EF08651360AD8B4DD :10292000EDEF1EF08651370AD8B456EF1FF08651EE :10293000380AD8B4B4EF1FF00CEF1DF00798079ACF :1029400004017A0E826F99EC0BF00401780E826F0D :1029500099EC0BF00401640E826F99EC0BF004010A :10296000550E826F99EC0BF0BBEF14F004014C0E86 :10297000826F99EC0BF0A3EC0BF00EEF1DF00788C3 :10298000079A04017A0E826F99EC0BF00401410E54 :10299000826F99EC0BF00401610E826F99EC0BF0E1 :1029A000AFEF14F00798078A04017A0E826F99EC52 :1029B0000BF00401420E826F99EC0BF00401610EE2 :1029C000826F99EC0BF0AFEF14F001016667F0EF46 :1029D00014F06767F0EF14F06867F0EF14F06967C0 :1029E00016D001014F67FCEF14F05067FCEF14F0B4 :1029F0005167FCEF14F052670AD00101000E006F1E :102A0000000E016F000E026F000E036F120011B86E :102A10000AD00101620E046F010E056F000E066FF1 :102A2000000E076F09D00101A70E046F020E056F9B :102A3000000E066F000E076F66C100F167C101F15D :102A400068C102F169C103F1C7EC22F003BF99EF3D :102A500015F0119A119C0101000E046FA80E056F6C :102A6000550E066F020E076F66C100F167C101F1D6 :102A700068C102F169C103F166C18AF167C18BF1D6 :102A800068C18CF169C18DF1C7EC22F003BF0BD096 :102A90000101000E8A6FA80E8B6F550E8C6F020E0F :102AA0008D6F118A119C0E0E51EC09F0E8CF18F1D0 :102AB0000F0E51EC09F0E8CF19F1100E51EC09F0AE :102AC000E8CF1AF1110E51EC09F0E8CF1BF110EC30 :102AD00022F08AC104F18BC105F18CC106F18DC1D0 :102AE00007F1C7EC22F00782D4EC21F010EC22F0C1 :102AF0000792D4EC21F08AC100F18BC101F18CC1A5 :102B000002F18DC103F10792D4EC21F0CC0E046FD9 :102B1000E00E056F870E066F050E076FC7EC22F0FB :102B200000C118F101C119F102C11AF103C11BF171 :102B300040D013AA9EEF15F0138E139A119C119A90 :102B40000101800E006F1A0E016F060E026F000E5B :102B5000036F4FC104F150C105F151C106F152C1DB :102B600007F1C7EC22F003AF05D0DCEC23F0118CA9 :102B7000119A12000E0E51EC09F0E8CF18F10F0E69 :102B800051EC09F0E8CF19F1100E51EC09F0E8CF43 :102B90001AF1110E51EC09F0E8CF1BF14FC100F111 :102BA00050C101F151C102F152C103F10782D4ECCD :102BB00021F018C100F119C101F11AC102F11BC1C4 :102BC00003F112000784BAC166F1BBC167F1BCC151 :102BD00068F1BDC169F14BC14FF14CC150F14DC11C :102BE00051F14EC152F157C159F158C15AF10794F0 :102BF0000101666703EF16F0676703EF16F0686779 :102C000003EF16F0696716D001014F670FEF16F05A :102C100050670FEF16F051670FEF16F052670AD0AA :102C20000101000E006F000E016F000E026F000E1A :102C3000036F120011B80AD00101620E046F010E79 :102C4000056F000E066F000E076F09D00101A70E79 :102C5000046F020E056F000E066F000E076F66C14F :102C600000F167C101F168C102F169C103F1C7EC6C :102C700022F003BF9BEF16F00101000E046FA80EB7 :102C8000056F550E066F020E076F66C100F167C132 :102C900001F168C102F169C103F166C18AF167C13E :102CA0008BF168C18CF169C18DF1C7EC22F003BFD3 :102CB00009D00101000E8A6FA80E8B6F550E8C6F24 :102CC000020E8D6F10EC22F000C104F101C105F17C :102CD00002C106F103C107F1000E006FA00E016FE3 :102CE000980E026F7B0E036FF8EC22F000C118F112 :102CF00001C119F102C11AF103C11BF1000E006FED :102D0000A00E016F980E026F7B0E036F8AC104F153 :102D10008BC105F18CC106F18DC107F1F8EC22F0F1 :102D200018C104F119C105F11AC106F11BC107F15F :102D3000C7EC22F012000101A80E006F610E016FB6 :102D4000000E026F000E036F4FC104F150C105F178 :102D500051C106F152C107F1C7EC22F003AF0AD00E :102D60000101A80E006F610E016F000E026F000ED0 :102D7000036F00D0C80E006FAF0E016F000E026F20 :102D8000000E036F4FC104F150C105F151C106F1AE :102D900052C107F1D8EC22F012000784BAC166F1E3 :102DA000BBC167F1BCC168F1BDC169F14BC14FF155 :102DB0004CC150F14DC151F14EC152F157C159F1C1 :102DC00058C15AF1079401016667EEEF16F0676784 :102DD000EEEF16F06867EEEF16F0696716D00101A6 :102DE0004F67FAEF16F05067FAEF16F05167FAEFF7 :102DF00016F052670AD00101000E006F000E016F3D :102E0000000E026F000E036F120011B80AD001010C :102E1000620E046F010E056F000E066F000E076F45 :102E200009D00101A70E046F020E056F000E066F98 :102E3000000E076F66C100F167C101F168C102F1C0 :102E400069C103F1C7EC22F003BFB0EF17F0010135 :102E5000000E046FA80E056F550E066F020E076F69 :102E600066C100F167C101F168C102F169C103F1F6 :102E700066C18AF167C18BF168C18CF169C18DF1BE :102E8000C7EC22F003BF09D00101000E8A6FA80E23 :102E90008B6F550E8C6F020E8D6F010E006F000E42 :102EA000016F000E026F000E036F8AC104F18BC127 :102EB00005F18CC106F18DC107F1F8EC22F018C1C3 :102EC00004F119C105F11AC106F11BC107F165EC46 :102ED00023F02AC182F40401300E822799EC0BF012 :102EE0002BC182F40401300E822799EC0BF02CC127 :102EF00082F40401300E822799EC0BF02DC182F48C :102F00000401300E822799EC0BF02EC182F40401EB :102F1000300E822799EC0BF02FC182F40401300EA1 :102F2000822799EC0BF030C182F40401300E822725 :102F300099EC0BF031C182F40401300E822799EC38 :102F40000BF032C182F40401300E822799EC0BF0B1 :102F500033C182F40401300E822799EC0BF0120089 :102F60004FC100F150C101F151C102F152C103F151 :102F7000010165EC23F028EC21F012000401730E2E :102F8000826F99EC0BF004012C0E826F99EC0BF020 :102F9000078462C166F163C167F164C168F165C10C :102FA00069F14BC14FF14CC150F14DC151F14EC1CE :102FB00052F157C159F158C15AF10794E4EC17F096 :102FC000A3EC0BF00EEF1DF066C100F167C101F13B :102FD00068C102F169C103F1010165EC23F028EC3D :102FE00021F00401630E826F99EC0BF004012C0EAA :102FF000826F99EC0BF04FC100F150C101F151C14A :1030000002F152C103F1010165EC23F028EC21F03B :103010000401660E826F99EC0BF004012C0E826F96 :1030200099EC0BF0DCEC23F059C100F15AC101F12D :10303000010165EC23F028EC21F00401740E826F8D :1030400099EC0BF0120010820401530E826F99EC80 :103050000BF004012C0E826F99EC0BF083C32AF164 :1030600084C32BF185C32CF186C32DF187C32EF1C8 :1030700088C32FF189C330F18AC331F18BC332F198 :103080008CC333F101012AEC24F0A1EC23F000C140 :1030900066F101C167F102C168F103C169F18EC334 :1030A0002AF18FC32BF190C32CF191C32DF192C360 :1030B0002EF193C32FF194C330F195C331F196C330 :1030C00032F197C333F101012AEC24F0A1EC23F093 :1030D00000C14FF101C150F102C151F103C152F1E0 :1030E0001DEC24F099C32FF19AC330F19BC331F149 :1030F0009CC332F19DC333F101012AEC24F0A1EC11 :1031000023F000C159F101C15AF1E4EC17F00401B8 :103110002C0E826F99EC0BF09EEF18F0118E1CA014 :1031200002D01CAE108C1BBE02D01BA4108E03015B :103130008251520A02E10F8201D00F928251750A28 :1031400002E1108401D010948251550A02E11086E8 :1031500001D010968351310A03E11382138402D007 :103160001392139403018351660A01E056D00401BF :10317000660E826F99EC0BF004012C0E826F99ECB5 :103180000BF0E2EC15F065EC23F02AC182F40401A7 :10319000300E822799EC0BF02BC182F40401300E23 :1031A000822799EC0BF02CC182F40401300E8227A7 :1031B00099EC0BF02DC182F40401300E822799ECBA :1031C0000BF02EC182F40401300E822799EC0BF033 :1031D0002FC182F40401300E822799EC0BF030C12C :1031E00082F40401300E822799EC0BF031C182F495 :1031F0000401300E822799EC0BF032C182F40401F5 :10320000300E822799EC0BF033C182F40401300EAA :10321000822799EC0BF00CEF1DF011A003D011A444 :1032200001D01084078410B277EF19F010A45BEF7F :1032300019F0BAC166F1BBC167F1BCC168F1BDC18B :1032400069F1BEC16AF1BFC16BF1C0C16CF1C1C10E :103250006DF1C2C16EF1C3C16FF1C4C170F1C5C1DE :1032600071F1C6C172F1C7C173F1C8C174F1C9C1AE :1032700075F1CAC176F1CBC177F1CCC178F1CDC17E :1032800079F1CEC17AF1CFC17BF1D0C17CF1D1C14E :103290007DF1D2C17EF1D3C17FF1D4C180F1D5C11E :1032A00081F1D6C182F1D7C183F1D8C184F1D9C1EE :1032B00085F163EF19F062C166F163C167F164C122 :1032C00068F165C169F1BAC186F1BBC187F1BCC1C2 :1032D00088F1BDC189F14BC14FF14CC150F14DC1D5 :1032E00051F14EC152F157C159F158C15AF10794E9 :1032F0000FA099EF19F00101966786EF19F0976713 :1033000086EF19F0986786EF19F099678AEF19F040 :1033100099EF19F0E5EC14F096C104F197C105F1AD :1033200098C106F199C107F1C7EC22F003BFD2EFB3 :103330001CF0E5EC14F00101000E046F000E056FA7 :10334000010E066F000E076FF8EC22F011A02AD0D4 :1033500011A228D065EC23F0296701D005D0040123 :103360002D0E826F99EC0BF030C182F40401300E07 :10337000822799EC0BF031C182F40401300E8227D0 :1033800099EC0BF032C182F40401300E822799ECE3 :103390000BF033C182F40401300E822799EC0BF05C :1033A000A3EC0BF012A8C5D012981DC01EF01E3A57 :1033B0001E42070E1E1600011E50000AD8B465EF0B :1033C0001AF000011E50010AD8B4F1EF19F0000103 :1033D0001E50020AD8B4EFEF19F097EF1AF097EFEA :1033E0001AF0DCEC23F02DC001F12EC000F1D890D2 :1033F00001330033D890013300330101630E046FB1 :10340000000E056F000E066F000E076FF8EC22F03D :10341000280E046F000E056F000E066F000E076F7A :10342000C7EC22F000C130F0DCEC23F02BC001F13E :10343000019F019D2CC000F10101A40E046F000E3C :10344000056F000E066F000E076FF8EC22F000C14A :103450002FF000C104F101C105F102C106F103C161 :1034600007F1640E006F000E016F000E026F000E78 :10347000036FC7EC22F0050E046F000E056F000EFF :10348000066F000E076FF8EC22F000C104F101C1D5 :1034900005F102C106F103C107F1DCEC23F030C0F5 :1034A00000F1C7EC22F000C131F031C0E8FF050F98 :1034B000305C03E78A8497EF1AF031C0E8FF0A0F07 :1034C000305C01E68A9497EF1AF000C124F101C143 :1034D00025F102C126F103C127F1DCEC23F0E2EC77 :1034E00023F01D501F0BE8CF00F10101640E046FA3 :1034F000000E056F000E066F000E076FD8EC22F06D :1035000024C104F125C105F126C106F127C107F147 :10351000C7EC22F003BF02D08A9401D08A8424C170 :1035200000F125C101F126C102F127C103F10EEF1F :103530001DF000C124F101C125F102C126F103C132 :1035400027F110AE4DD0109E00C108F101C109F164 :1035500002C10AF103C10BF165EC23F030C1E2F1C5 :1035600031C1E3F132C1E4F133C1E5F108C100F149 :1035700009C101F10AC102F10BC103F101016C0E95 :10358000046F070E056F000E066F000E076FC7EC85 :1035900022F003BF04D00101550EE66F1CD008C114 :1035A00000F109C101F10AC102F10BC103F10101EE :1035B000A40E046F060E056F000E066F000E076F57 :1035C000C7EC22F003BF04D001017F0EE66F03D0E9 :1035D0000101FF0EE66F1F8E11AED2EF1CF0119E9F :1035E00024C100F125C101F126C102F127C103F177 :1035F00011A005D011A203D00FB0D2EF1CF010A47F :1036000009EF1BF00401750E826F99EC0BF00EEFC1 :103610001BF00401720E826F99EC0BF004012C0E6A :10362000826F99EC0BF065EC23F029671DEF1BF01E :103630000401200E826F20EF1BF004012D0E826F1B :1036400099EC0BF030C182F40401300E822799EC22 :103650000BF031C182F40401300E822799EC0BF09B :1036600004012E0E826F99EC0BF032C182F404013A :10367000300E822799EC0BF033C182F40401300E36 :10368000822799EC0BF004016D0E826F99EC0BF020 :1036900004012C0E826F99EC0BF04FC100F150C168 :1036A00001F151C102F152C103F1010165EC23F0B6 :1036B00028EC21F00401480E826F99EC0BF0040114 :1036C0007A0E826F99EC0BF004012C0E826F99EC4C :1036D0000BF066C100F167C101F168C102F169C177 :1036E00003F1010165EC23F028EC21F00401630EE5 :1036F000826F99EC0BF004012C0E826F99EC0BF0A9 :1037000066C100F167C101F168C102F169C103F14D :1037100001010A0E046F000E056F000E066F000E09 :10372000076FD8EC22F0000E046F120E056F000E2A :10373000066F000E076FF8EC22F065EC23F02AC14B :1037400082F40401300E822799EC0BF02BC182F435 :103750000401300E822799EC0BF02CC182F4040195 :10376000300E822799EC0BF02DC182F40401300E4B :10377000822799EC0BF02EC182F40401300E8227CF :1037800099EC0BF02FC182F40401300E822799ECE2 :103790000BF030C182F40401300E822799EC0BF05B :1037A00004012E0E826F99EC0BF031C182F40401FA :1037B000300E822799EC0BF032C182F40401300EF6 :1037C000822799EC0BF033C182F40401300E82277A :1037D00099EC0BF00401730E826F99EC0BF004016D :1037E0002C0E826F99EC0BF0DCEC23F059C100F148 :1037F0005AC101F138EC1EF013A24EEF1CF0040187 :103800002C0E826F99EC0BF086C166F187C167F1CF :1038100088C168F189C169F1E5EC14F00101000E7D :10382000046F000E056F010E066F000E076FF8ECB7 :1038300022F065EC23F0296723EF1CF00401200E31 :10384000826F26EF1CF004012D0E826F99EC0BF0B5 :1038500030C182F40401300E822799EC0BF031C1A3 :1038600082F40401300E822799EC0BF004012E0E35 :10387000826F99EC0BF032C182F40401300E822782 :1038800099EC0BF033C182F40401300E822799ECDD :103890000BF004016D0E826F99EC0BF00301835164 :1038A000460A01E007D004012C0E826F99EC0BF060 :1038B000CDEC16F013A481EF1CF004012C0E826FE6 :1038C00099EC0BF013AC6FEF1CF00401500E826FFB :1038D00099EC0BF0139C1398139A81EF1CF013AE24 :1038E0007CEF1CF00401460E826F99EC0BF0139EE6 :1038F0001398139A81EF1CF00401530E826F99EC18 :103900000BF037B098EF1CF004012C0E826F99EC8D :103910000BF08BB093EF1CF00401440E826F99EC16 :103920000BF098EF1CF00401530E826F99EC0BF032 :103930000FB29EEF1CF00FA0D0EF1CF004012C0E74 :10394000826F99EC0BF0200EF86EF76AF66A0401AC :103950000900F5CF82F499EC0BF00900F5CF82F461 :1039600099EC0BF00900F5CF82F499EC0BF009000B :10397000F5CF82F499EC0BF00900F5CF82F499ECC5 :103980000BF00900F5CF82F499EC0BF00900F5CFAC :1039900082F499EC0BF00900F5CF82F499EC0BF06E :1039A000A3EC0BF00F90109E12980EEF1DF0040187 :1039B000630E826F99EC0BF004012C0E826F99EC70 :1039C0000BF014EC1DF004012C0E826F99EC0BF03F :1039D00087EC1DF004012C0E826F99EC0BF003ECC8 :1039E0001EF004012C0E826F99EC0BF00101F80E11 :1039F000006FCD0E016F660E026F030E036F29EC90 :103A00001DF004012C0E826F99EC0BF019EC1EF0E6 :103A1000A3EC0BF00EEF1DF0A3EC0BF00301C26B57 :103A2000079010921DEF20F0D8900E0E51EC09F087 :103A3000E8CF00F10F0E51EC09F0E8CF01F1100EC4 :103A400051EC09F0E8CF02F1110E51EC09F0E8CF8A :103A500003F10101000E046F000E056F010E066FE9 :103A6000000E076FF8EC22F065EC23F02AC182F417 :103A70000401300E822799EC0BF02BC182F4040173 :103A8000300E822799EC0BF02CC182F40401300E29 :103A9000822799EC0BF02DC182F40401300E8227AD :103AA00099EC0BF02EC182F40401300E822799ECC0 :103AB0000BF02FC182F40401300E822799EC0BF039 :103AC00030C182F40401300E822799EC0BF031C131 :103AD00082F40401300E822799EC0BF004012E0EC3 :103AE000826F99EC0BF032C182F40401300E822710 :103AF00099EC0BF033C182F40401300E822799EC6B :103B00000BF004016D0E826F99EC0BF01200120E97 :103B100051EC09F0E8CF00F1130E51EC09F0E8CFB9 :103B200001F1140E51EC09F0E8CF02F1150E51EC41 :103B300009F0E8CF03F101010A0E046F000E056FD2 :103B4000000E066F000E076FD8EC22F0000E046F17 :103B5000120E056F000E066F000E076FF8EC22F0D4 :103B600065EC23F02AC182F40401300E822799EC1F :103B70000BF02BC182F40401300E822799EC0BF07C :103B80002CC182F40401300E822799EC0BF02DC178 :103B900082F40401300E822799EC0BF02EC182F4DE :103BA0000401300E822799EC0BF02FC182F404013E :103BB000300E822799EC0BF030C182F40401300EF4 :103BC000822799EC0BF004012E0E826F99EC0BF01A :103BD00031C182F40401300E822799EC0BF032C11E :103BE00082F40401300E822799EC0BF033C182F489 :103BF0000401300E822799EC0BF00401730E826FE2 :103C000099EC0BF012000A0E51EC09F0E8CF00F12C :103C10000B0E51EC09F0E8CF01F10C0E51EC09F05C :103C2000E8CF02F10D0E51EC09F0E8CF03F138EFC7 :103C30001EF0060E51EC09F0E8CF00F1070E51EC32 :103C400009F0E8CF01F1080E51EC09F0E8CF02F1DC :103C5000090E51EC09F0E8CF03F138EF1EF0010135 :103C6000DCEC23F0078457C100F158C101F107943F :103C70000101E80E046F800E056F000E066F000E46 :103C8000076FD8EC22F0000E046F040E056F000ED3 :103C9000066F000E076FF8EC22F0880E046F130E0B :103CA000056F000E066F000E076FC7EC22F00A0EBC :103CB000046F000E056F000E066F000E076FF8EC24 :103CC00022F065EC23F0010129676CEF1EF004017E :103CD000200E826F6FEF1EF004012D0E826F99ECA3 :103CE0000BF030C182F40401300E822799EC0BF006 :103CF00031C182F40401300E822799EC0BF032C1FD :103D000082F40401300E822799EC0BF004012E0E90 :103D1000826F99EC0BF033C182F40401300E8227DC :103D200099EC0BF00401430E826F99EC0BF012003A :103D300087C32AF188C32BF189C32CF18AC32DF1E3 :103D40008BC32EF18CC32FF18DC330F18EC331F1B3 :103D500090C332F191C333F10101296B2AEC24F0B5 :103D6000A1EC23F00101000E046F000E056F010E9F :103D7000066F000E076FD8EC22F00E0E0C6E00C11D :103D80000BF03AEC09F00F0E0C6E01C10BF03AEC9F :103D900009F0100E0C6E02C10BF03AEC09F0110E96 :103DA0000C6E03C10BF03AEC09F004017A0E826F3D :103DB00099EC0BF004012C0E826F99EC0BF00401CE :103DC000350E826F99EC0BF004012C0E826F99EC8A :103DD0000BF014EC1DF0BBEF14F087C32AF188C37D :103DE0002BF189C32CF18AC32DF18BC32EF18CC327 :103DF0002FF18DC330F18EC331F190C332F191C3F5 :103E000033F10101296B2AEC24F0A1EC23F0880E98 :103E1000046F130E056F000E066F000E076FCCECDB :103E200022F0000E046F040E056F000E066F000EE8 :103E3000076FD8EC22F00101E80E046F800E056FC9 :103E4000000E066F000E076FF8EC22F00A0E0C6EE3 :103E500000C10BF03AEC09F00B0E0C6E01C10BF037 :103E60003AEC09F00C0E0C6E02C10BF03AEC09F0C2 :103E70000D0E0C6E03C10BF03AEC09F004017A0E42 :103E8000826F99EC0BF004012C0E826F99EC0BF011 :103E90000401360E826F99EC0BF004012C0E826F38 :103EA00099EC0BF003EC1EF0BBEF14F087C32AF182 :103EB00088C32BF189C32CF18AC32DF18BC32EF15A :103EC0008CC32FF18DC330F18FC331F190C332F128 :103ED00091C333F101012AEC24F0A1EC23F0000E90 :103EE000046F120E056F000E066F000E076FD8EC00 :103EF00022F001010A0E046F000E056F000E066F1E :103F0000000E076FF8EC22F0120E0C6E00C10BF0E1 :103F10003AEC09F0130E0C6E01C10BF03AEC09F00B :103F2000140E0C6E02C10BF03AEC09F0150E0C6E7B :103F300003C10BF03AEC09F004017A0E826F99ECA0 :103F40000BF004012C0E826F99EC0BF00401370E7C :103F5000826F99EC0BF004012C0E826F99EC0BF040 :103F600087EC1DF0BBEF14F087C32AF188C32BF157 :103F700089C32CF18AC32DF18BC32EF18CC32FF191 :103F80008DC330F18EC331F190C332F191C333F15F :103F90000101296B2AEC24F0A1EC23F0880E046FB8 :103FA000130E056F000E066F000E076FCCEC22F0AB :103FB000000E046F040E056F000E066F000E076FF3 :103FC000D8EC22F00101E80E046F800E056F000EA0 :103FD000066F000E076FF8EC22F0060E0C6E00C1A3 :103FE0000BF03AEC09F0070E0C6E01C10BF03AEC45 :103FF00009F0080E0C6E02C10BF03AEC09F0090E44 :104000000C6E03C10BF03AEC09F004017A0E826FDA :1040100099EC0BF004012C0E826F99EC0BF004016B :10402000380E826F99EC0BF004012C0E826F99EC24 :104030000BF019EC1EF0BBEF14F007A890EF20F086 :104040000101800E006F1A0E016F060E026F000E46 :10405000036F4BC104F14CC105F14DC106F14EC1D6 :1040600007F1C7EC22F003BFD6EF20F022EC21F0DD :104070004BC100F14CC101F14DC102F14EC103F140 :104080000782D4EC21F018C104F119C105F11AC15D :1040900006F11BC107F1F80E006FCD0E016F660E21 :1040A000026F030E036FC7EC22F00E0E0C6E00C100 :1040B0000BF03AEC09F00F0E0C6E01C10BF03AEC6C :1040C00009F0100E0C6E02C10BF03AEC09F0110E63 :1040D0000C6E03C10BF03AEC09F007840101DCEC33 :1040E00023F057C100F158C101F107940A0E0C6E7C :1040F00000C10BF03AEC09F00B0E0C6E01C10BF095 :104100003AEC09F00C0E0C6E02C10BF03AEC09F01F :104110000D0E0C6E03C10BF03AEC09F0D6EF20F057 :1041200007AAD6EF20F007840101DCEC23F057C189 :1041300000F158C101F10794060E0C6E00C10BF09E :104140003AEC09F0070E0C6E01C10BF03AEC09F0E5 :10415000080E0C6E02C10BF03AEC09F0090E0C6E61 :1041600003C10BF03AEC09F0078462C100F163C1AE :1041700001F164C102F165C103F10794120E0C6EE6 :1041800000C10BF03AEC09F0130E0C6E01C10BF0FC :104190003AEC09F0140E0C6E02C10BF03AEC09F087 :1041A000150E0C6E03C10BF03AEC09F00798079A54 :1041B0000401805181197F0B0DE09EA8FED714EEFB :1041C00000F081517F0BE126E750812B0F01AD6E8E :1041D000D8EF20F0E1EF0AF018C100F119C101F1A8 :1041E0001AC102F11BC103F1000E046F000E056F2E :1041F000010E066F000E076FF8EC22F029A117EFF1 :1042000021F02051D8B417EF21F018C100F119C1E5 :1042100001F11AC102F11BC103F1000E046F000E7F :10422000056F0A0E066F000E076FF8EC22F0120001 :1042300001010451001305510113065102130751E6 :10424000031312000101186B196B1A6B1B6B120020 :104250002AC182F40401300E822799EC0BF02BC1A5 :1042600082F40401300E822799EC0BF02CC182F409 :104270000401300E822799EC0BF02DC182F4040169 :10428000300E822799EC0BF02EC182F40401300E1F :10429000822799EC0BF02FC182F40401300E8227A3 :1042A00099EC0BF030C182F40401300E822799ECB6 :1042B0000BF031C182F40401300E822799EC0BF02F :1042C00032C182F40401300E822799EC0BF033C125 :1042D00082F40401300E822799EC0BF012002FC1FA :1042E00082F40401300E822799EC0BF030C182F485 :1042F0000401300E822799EC0BF031C182F40401E5 :10430000300E822799EC0BF032C182F40401300E9A :10431000822799EC0BF033C182F40401300E82271E :1043200099EC0BF01200060E216E060E226E060EA0 :10433000236E212E99EF21F0222E99EF21F0232ECA :1043400099EF21F08B84020E216E020E226E020E76 :10435000236E212EA9EF21F0222EA9EF21F0232E8A :10436000A9EF21F08B941200FF0E226E22C023F0E1 :10437000030E216E8B84212EBAEF21F0030E216EE5 :10438000232EBAEF21F08B9422C023F0030E216E6E :10439000212EC8EF21F0030E216E233EC8EF21F03D :1043A000222EB6EF21F012000101005305E1015366 :1043B00003E1025301E1002B97EC22F0DCEC23F047 :1043C0003951006F3A51016F420E046F4B0E056F69 :1043D000000E066F000E076FD8EC22F000C104F14A :1043E00001C105F102C106F103C107F118C100F1D5 :1043F00019C101F11AC102F11BC103F107B205EFA6 :1044000022F0CCEC22F007EF22F0C7EC22F000C142 :1044100018F101C119F102C11AF103C11BF1120017 :10442000DCEC23F059C100F15AC101F1060E51EC48 :1044300009F0E8CF04F1070E51EC09F0E8CF05F1DF :10444000080E51EC09F0E8CF06F1090E51EC09F025 :10445000E8CF07F1C7EC22F000C124F101C125F13A :1044600002C126F103C127F1290E046F000E056F6A :10447000000E066F000E076FD8EC22F0EE0E046FF0 :10448000430E056F000E066F000E076FCCEC22F096 :1044900024C104F125C105F126C106F127C107F1A8 :1044A000D8EC22F000C11CF101C11DF102C11EF1C6 :1044B00003C11FF1120E51EC09F0E8CF04F1130E05 :1044C00051EC09F0E8CF05F1140E51EC09F0E8CFFA :1044D00006F1150E51EC09F0E8CF07F10D0E006F53 :1044E000000E016F000E026F000E036FD8EC22F079 :1044F000180E046F000E056F000E066F000E076F9A :10450000F8EC22F01CC104F11DC105F11EC106F139 :104510001FC107F1CCEC22F06A0E046F2A0E056F62 :10452000000E066F000E076FC7EC22F01200BF0EE0 :10453000FA6E200E3A6F396BD89000370137023788 :104540000337D8B0A8EF22F03A2F9DEF22F03907B9 :104550003A070353D8B412000331070B80093F6FA9 :1045600003390F0B010F396F80EC5FF0406F390595 :1045700080EC5FF0405D405F396B3F33D8B0392746 :1045800039333FA9BDEF22F0405139271200010114 :1045900001EC24F0D8B01200010103510719346F67 :1045A000C4EC23F0D8900751031934AF800F1200E8 :1045B0000101346BE8EC23F0D8A0FEEC23F0D8B076 :1045C0001200D3EC23F0DCEC23F01F0E366F14EC5A :1045D00024F00B35D8B0C4EC23F0D8A00335D8B004 :1045E0001200362FE7EF22F034B1EBEC23F012008B :1045F0000101346B04510511061107110008D8A000 :10460000E8EC23F0D8A0FEEC23F0D8B01200086B41 :10461000096B0A6B0B6B14EC24F01F0E366F14EC55 :1046200024F007510B5DD8A422EF23F006510A5D58 :10463000D8A422EF23F00551095DD8A422EF23F07E :104640000451085DD8A035EF23F00451085F0551EF :10465000D8A0053D095F0651D8A0063D0A5F075165 :10466000D8A0073D0B5FD8900081362F0FEF23F0C5 :1046700034B1EBEC23F0346BE8EC23F0D89018EC79 :1046800024F007510B5DD8A452EF23F006510A5DC8 :10469000D8A452EF23F00551095DD8A452EF23F0BE :1046A0000451085DD8A061EF23F0003F61EF23F0D3 :1046B000013F61EF23F0023F61EF23F0032BD8B4F9 :1046C000120034B1EBEC23F012000101346BE8EC82 :1046D00023F0D8B012001DEC24F0200E366F003706 :1046E00001370237033711EE33F00A0E376FE73622 :1046F0000A0EE75CD8B0E76EE552372F77EF23F06C :10470000362F6FEF23F034B12981D89012001DECC1 :1047100024F0200E366F003701370237033711EED1 :1047200033F00A0E376FE7360A0EE75CD8B0E76E53 :10473000E552372F93EF23F0362F8BEF23F0D890ED :10474000120001010A0E346F200E366F11EE29F0AF :104750003451376F0A0ED890E652D8B0E726E732C8 :10476000372FACEF23F00333023301330033362FFE :10477000A6EF23F0E750FF0FD8A00335D8B0120002 :1047800029B1EBEC23F01200045100270551D8B0F9 :10479000053D01270651D8B0063D02270751D8B084 :1047A000073D032712000051086F0151096F0251A4 :1047B0000A6F03510B6F12000101006B016B026B5A :1047C000036B12000101046B056B066B076B120093 :1047D0000335D8A012000351800B001F011F021FD8 :1047E000031F003FFBEF23F0013FFBEF23F0023FED :1047F000FBEF23F0032B342B032512000735D8A041 :1048000012000751800B041F051F061F071F043FDE :1048100011EF24F0053F11EF24F0063F11EF24F0D3 :10482000072B342B072512000037013702370337D7 :10483000083709370A370B3712000101296B2A6B39 :104840002B6B2C6B2D6B2E6B2F6B306B316B326B9C :10485000336B120001012A510F0B2A6F2B510F0BE2 :104860002B6F2C510F0B2C6F2D510F0B2D6F2E51C9 :104870000F0B2E6F2F510F0B2F6F30510F0B306F0F :1048800031510F0B316F32510F0B326F33510F0B10 :10489000336F120000C124F101C125F102C126F1DC :1048A00003C127F104C100F105C101F106C102F104 :1048B00007C103F124C104F125C105F126C106F1A8 :1048C00027C107F1120000011950FF0A01E112008F :1048D000390EC86E800EC76E280EC66E000EC56EED :1048E0001850000AD8B49EEF24F01850010AD8B42A :1048F000B7EF24F01850020AD8B4D0EF24F01850C3 :10490000030AD8B4E9EF24F01850040AD8B411EF20 :1049100025F01850050AD8B42AEF25F01850060AD9 :10492000D8B443EF25F01850070AD8B45CEF25F04F :104930001850080AD8B475EF25F012001950000A73 :10494000D8B494EF25F01950010AD8B498EF25F0A7 :104950001950020AD8B49CEF25F01950030AD8B4B4 :10496000A0EF25F01950040AD8B413EF26F019501F :10497000000AD8B4A8EF25F01950010AD8B4ACEF5A :1049800025F01950020AD8B4B0EF25F01950030AE7 :10499000D8B4B4EF25F01950040AD8B413EF26F0B8 :1049A0001950000AD8B4B8EF25F01950010AD8B44C :1049B000BCEF25F01950020AD8B4C0EF25F0195009 :1049C000030AD8B4C4EF25F01950040AD8B413EF81 :1049D00026F01950000AD8B4D1EF25F01950010A79 :1049E000D8B4D5EF25F01950020AD8B4D9EF25F084 :1049F0001950030AD8B4EDEF25F01950040AD8B4C1 :104A0000F1EF25F01950050AD8B4F5EF25F019504B :104A1000060AD8B4F9EF25F01950070AD8B4FCEF0C :104A200025F01950000AD8B400EF26F01950010AF9 :104A3000D8B404EF26F01950020AD8B408EF26F0D3 :104A40001950030AD8B40CEF26F01950040AD8B450 :104A50000FEF26F01950000AD8B417EF26F01950BE :104A6000010AD8B41BEF26F01950020AD8B41FEF80 :104A700026F01950030AD8B423EF26F01950040A7F :104A8000D8B413EF26F01950000AD8B42DEF26F051 :104A90001950010AD8B431EF26F01950020AD8B4DF :104AA00035EF26F01950030AD8B439EF26F0195023 :104AB000040AD8B413EF26F01950000AD8B43AEF1C :104AC00026F01950010AD8B43EEF26F01950020A18 :104AD000D8B442EF26F01950030AD8B446EF26F0B6 :104AE0001950040AD8B413EF26F01950000AD8B4AC :104AF00047EF26F01950010AD8B44BEF26F01950B1 :104B0000020AD8B44FEF26F01950030AD8B453EF75 :104B100026F01950040AD8B454EF26F01950050AAB :104B2000D8B457EF26F012009E96C580192A1200BD :104B3000E20EC96E192A1200770EC96E192A1200E8 :104B4000020EE86E8AB4E88AE8CFC9FF192A12007B :104B50009E96C580192A1200E20EC96E192A12000B :104B6000790EC96E192A1200000EC96E192A120098 :104B70009E96C580192A1200E20EC96E192A1200EB :104B80007A0EC96E192A12001BBC03D0E6C1E8FFD9 :104B900004D01B50E844E8441F09E8CFC9FF192A94 :104BA00012009E96C580192A1200E20EC96E192ABB :104BB000120011BA03D011BC01D003D0050E186E3B :104BC0003ED00101E267E9EF25F0100EC96EEBEF70 :104BD00025F0E2C1C9FF192A1200E3C1C9FF192A51 :104BE0001200E4C1C9FF192A1200E5C1C9FF192A40 :104BF0001200C584192A1200FF0E196E209E1200A1 :104C00009E96C580192A1200E20EC96E192A12005A :104C1000760EC96E192A1200C584192A1200FF0ED9 :104C2000196E209E1200C584182A196A12009E96D9 :104C3000C580192A1200E20EC96E192A12007B0ED5 :104C4000C96E192A120011AA04D0230EC96E192A9E :104C500012001C0EC96E192A12009E96C580192AD0 :104C60001200E20EC96E192A12007C0EC96E192AB2 :104C70001200E9D79E96C580192A1200E20EC96E6D :104C8000192A12007D0EC96E192A1200DCD79E96D1 :104C9000C580192A1200E20EC96E192A12007E0E72 :104CA000C96E192A1200CFD7C584192A1200FF0E27 :104CB000196E209E12001950FF0AD8B419EF27F080 :104CC000390EC86E800EC76E280EC66E000EC56EF9 :104CD0001850000AD8B474EF26F01850010AD8B45E :104CE00088EF26F019EF27F01950000AD8B4C6EF64 :104CF00026F01950010AD8B4CAEF26F01950020A5A :104D0000D8B4D4EF26F01950030AD8B4D7EF26F060 :104D10001950000AD8B4DDEF26F01950010AD8B4B2 :104D2000E1EF26F01950020AD8B4EBEF26F0195043 :104D3000030AD8B4EEEF26F01950040AD8B4F4EF01 :104D400026F01950050AD8B4F7EF26F01950060AD4 :104D5000D8B4FDEF26F01950070AD8B400EF27F0B9 :104D60001950080AD8B406EF27F01950090AD8B428 :104D700009EF27F019500A0AD8B40FEF27F019509D :104D80000B0AD8B412EF27F019EF27F09E96C580D2 :104D900018EF27F01AB004D04E0EC96E18EF27F0A6 :104DA000500EC96E18EF27F0C58418EF27F0182AA7 :104DB000FF0E196E128019EF27F09E96C58018EF2E :104DC00027F01AB004D04F0EC96E18EF27F0510E1D :104DD000C96E18EF27F0C58618EF27F0C9CF27F066 :104DE000C59AC58818EF27F0C58618EF27F0C9CFF8 :104DF00028F0C59AC58818EF27F0C58618EF27F068 :104E0000C9CF29F0C59AC58818EF27F0C58618EFD5 :104E100027F0C9CF2AF0C58AC58818EF27F0C584C6 :104E200018EF27F0FF0E196E1286209C19EF27F05D :104E3000192A120012B012D012B213D012B414D028 :104E400012A6120007B01200129627C02BF028C03D :104E50002CF029C02DF02AC02EF0120012901282E0 :104E6000120012921284120000011950FF0A04E18C :104E70001294196A5BEC26F012001950FF0AD8B49C :104E800019EF27F002EC28F01850000AD8B450EFC0 :104E900027F01850010AD8B48EEF27F019EF27F049 :104EA0001950000AD8B4C2EF27F01950010AD8B43B :104EB000C7EF27F01950020AD8B4CBEF27F01950EA :104EC000030AD8B4CFEF27F01950040AD8B4D7EFAB :104ED00027F01950050AD8B4DAEF27F01950060A5E :104EE000D8B4E1EF27F01950070AD8B4E4EF27F05F :104EF0001950080AD8B4EBEF27F01950090AD8B4B2 :104F0000EEEF27F019500A0AD8B4F5EF27F0195040 :104F10000B0AD8B4F8EF27F019EF27F01950000A60 :104F2000D8B4FEEF27F01950010AD8B4FEEF27F0ED :104F30001950020AD8B4FEEF27F01950030AD8B46A :104F4000FEEF27F01950040AD8B4FEEF27F01950ED :104F5000050AD8B4FEEF27F01950060AD8B4FEEFC0 :104F600027F01950070AD8B4FEEF27F01950080AA5 :104F7000D8B4FEEF27F01950090AD8B4FEEF27F095 :104F800019EF27F09E96C596C58000EF28F0520EC7 :104F9000C96E00EF28F0B40EC96E00EF28F0C9CF3B :104FA00032F0326AC586C59AC58800EF28F0C586FA :104FB00000EF28F0C9CF33F0336AC59AC58800EFF7 :104FC00028F0C58600EF28F0C9CF34F0346AC59ABE :104FD000C58800EF28F0C58600EF28F0C9CF35F06E :104FE000356AC58AC58800EF28F0C58400EF28F02F :104FF000FF0E196E1286209C01EF28F001EF28F0B9 :10500000192A1200390EC86E800EC76E280EC66EA1 :06501000000EC56E120047 :10BF0000E844F926000C160C2B0C3F0C520C640C68 :10BF1000760C860C960CA50CB30CC10CCF0CDC0C6B :06BF2000E80CF40C000C1B :00000001FF ./firmware/SQM-LU-DL-4-6-80.hex0000644000175000017500000022461614423721712015501 0ustar anthonyanthony:020000040000FA :0408000098EF0BF072 :1008100003B275EF05F0F2B493EF05F09EB09BEFD5 :1008200005F09EB2A3EF05F0F2A81AEF04F0F2B2C1 :1008300023EF04F0F2B01FEF04F047EF0BF0F29655 :10084000F29047EF0BF0CD90F2929EA02DEF04F0C6 :100850000101533F2DEF04F0542BB2C1B6F1B3C1E7 :10086000B7F1B4C1B8F1B5C1B9F1AEC1B2F1AFC120 :10087000B3F1B0C1B4F1B1C1B5F1AAC1AEF1ABC130 :10088000AFF1ACC1B0F1ADC1B1F1A6C1AAF1A7C140 :10089000ABF1A8C1ACF1A9C1ADF1A2C1A6F1A3C150 :1008A000A7F1A4C1A8F1A5C1A9F19EC1A2F19FC160 :1008B000A3F1A0C1A4F1A1C1A5F19AC19EF19BC170 :1008C0009FF19CC1A0F19DC1A1F1CECF9AF1CFCFF4 :1008D0009BF153C19CF154C19DF1CF6ACE6A0101D5 :1008E000536B546B9E90CD800FBC0F8E0FBA7CEF74 :1008F00004F00F8A47EF0BF013880F8C0FBEB9EF8F :1009000004F09AC19EF19BC19FF19CC1A0F19DC1D1 :10091000A1F19EC1A2F19FC1A3F1A0C1A4F1A1C107 :10092000A5F1A2C1A6F1A3C1A7F1A4C1A8F1A5C1D7 :10093000A9F1A6C1AAF1A7C1ABF1A8C1ACF1A9C1A7 :10094000ADF1AAC1AEF1ABC1AFF1ACC1B0F1ADC177 :10095000B1F1AEC1B2F1AFC1B3F1B0C1B4F1B1C147 :10096000B5F1B2C1B6F1B3C1B7F1B4C1B8F1B5C117 :10097000B9F101015E6B5F6B606B616B9A515E2731 :100980009B515F239C5160239D5161239E515E27A3 :100990009F515F23A0516023A1516123A2515E2783 :1009A000A3515F23A4516023A5516123A6515E2763 :1009B000A7515F23A8516023A9516123AA515E2743 :1009C000AB515F23AC516023AD516123AE515E2723 :1009D000AF515F23B0516023B1516123B2515E2703 :1009E000B3515F23B4516023B5516123B6515E27E3 :1009F000B7515F23B8516023B9516123D8900101E9 :100A0000613360335F335E33D8900101613360330B :100A10005F335E33D8900101613360335F335E33FF :100A200000C10CF101C10DF102C10EF103C10FF1C2 :100A300004C110F105C111F106C112F107C113F192 :100A400008C114F109C115F10AC116F10BC117F162 :100A500034C135F111B838EF05F00101620E046FB1 :100A6000010E056F000E066F000E076F41EF05F0D7 :100A70000101A70E046F020E056F000E066F000E37 :100A8000076F5EC100F15FC101F160C102F161C198 :100A900003F19FEC30F003BF04D01CBE02D01CA0B9 :100AA000108C11A059EF05F010BA59EF05F00F8026 :100AB000108A0CC100F10DC101F10EC102F10FC18C :100AC00003F110C104F111C105F112C106F113C106 :100AD00007F114C108F115C109F116C10AF117C1D6 :100AE0000BF135C134F147EF0BF00392ABB2AB9889 :100AF000AB88030103EE00F080517F0BE92604C0B0 :100B0000EFFF802B8151805D700BD8A48B82000099 :100B10008051815D700BD8A48B9281518019D8B41B :100B2000079047EF0BF0F2940101453F47EF0BF0C0 :100B3000462B47EF0BF09E900101533F47EF0BF020 :100B4000542B47EF0BF09E9211B843EF08F00400CE :100B500066A1ABEF05F08BB4B5EF05F010ACB5EFC7 :100B600005F08B84109CB6EF05F08B94077C07ACE6 :100B7000D1EF05F0C274C2B4CBEF05F0C3CFB7F527 :100B8000C4CFB8F50501D890B833B733D890B8338F :100B9000B733D2EF05F0C3CF55F1C4CF56F1D2EF42 :100BA00005F0C28207B444EF06F047C14BF148C1DB :100BB0004CF149C14DF14AC14EF15EC162F15FC1D4 :100BC00063F160C164F161C165F113A8EAEF05F05A :100BD000138C13989AC1BAF19BC1BBF19CC1BCF1B3 :100BE0009DC1BDF19EC1BEF19FC1BFF1A0C1C0F1C9 :100BF000A1C1C1F1A2C1C2F1A3C1C3F1A4C1C4F199 :100C0000A5C1C5F1A6C1C6F1A7C1C7F1A8C1C8F168 :100C1000A9C1C9F1AAC1CAF1ABC1CBF1ACC1CCF138 :100C2000ADC1CDF1AEC1CEF1AFC1CFF1B0C1D0F108 :100C3000B1C1D1F1B2C1D2F1B3C1D3F1B4C1D4F1D8 :100C4000B5C1D5F1B6C1D6F1B7C1D7F1B8C1D8F1A8 :100C5000B9C1D9F1B7C5B9F5B8C5BAF5B9C5BBF5CC :100C6000BAC5BCF5010155515B2756515C23E86AB2 :100C70005D230E2E44EF06F05CC157F15DC158F1C3 :100C80005B6B5C6B5D6B078E0201002F47EF0BF017 :100C90003C0E006F1D50E00BE00AE86612881BBE98 :100CA00002D01BB4108E00C10CF101C10DF102C1C4 :100CB0000EF103C10FF104C110F105C111F106C11C :100CC00012F107C113F108C114F109C115F10AC1EC :100CD00016F10BC117F134C135F181AAACEF06F062 :100CE00015A4F7EF06F005012F51000AD8B43AEF2A :100CF00007F005012F51010AD8B4B6EF06F005013F :100D00002F51020AD8B4F7EF06F005012F51030A5C :100D1000D8B4F7EF06F005012F51040AD8B4F7EF65 :100D200006F005012F51050AD8B4F7EF06F00501CA :100D30002F51060AD8B4F7EF06F005012F51070A24 :100D4000D8B4F7EF06F005012F51320AD8B4B4EF4A :100D500006F02F6B3AEF07F000011650030AD8B4E3 :100D6000F7EF06F03AEF07F03AEF07F005015767A3 :100D7000C1EF06F05867C1EF06F05967C1EF06F002 :100D80005A67C5EF06F03AEF07F05BC500F15CC5A6 :100D900001F15DC502F15EC503F10101010E046FB1 :100DA000000E056F000E066F000E076F9FEC30F00F :100DB00000C15BF501C15CF502C15DF503C15EF5E3 :100DC00001010067EBEF06F00167EBEF06F0026749 :100DD000EBEF06F003673AEF07F057C55BF558C530 :100DE0005CF559C55DF55AC55EF524EF07F00FBEF9 :100DF0000CEF07F010A011EF07F00101476708EFB3 :100E000007F0486708EF07F0496708EF07F04A67FF :100E10000CEF07F011EF07F007AE11EF07F024EF2A :100E200007F00501312F3AEF07F03C0E316F302FFC :100E30003AEF07F00101000E626FE00E636FA50E3E :100E4000646F010E656F138800011650000AD8B454 :100E500032EF07F000011650030AD8B437EF07F05D :100E60003AEF07F00001010E166E3AEF07F00001AD :100E7000040E166E0501666B37B740EF07F066810A :100E80000CC100F10DC101F10EC102F10FC103F15E :100E900010C104F111C105F112C106F113C107F12E :100EA00014C108F115C109F116C10AF117C10BF1FE :100EB00035C134F100C10CF101C10DF102C10EF1D7 :100EC00003C10FF104C110F105C111F106C112F106 :100ED00007C113F108C114F109C115F10AC116F1D6 :100EE0000BC117F134C135F101018E677FEF07F0B7 :100EF0008F677FEF07F090677FEF07F0916783EFD1 :100F000007F0B4EF07F092C100F193C101F194C171 :100F100002F195C103F10101010E046F000E056F8E :100F2000000E066F000E076F9FEC30F000C192F1CB :100F300001C193F102C194F103C195F10101006770 :100F4000A9EF07F00167A9EF07F00267A9EF07F023 :100F50000367B4EF07F08EC192F18FC193F190C196 :100F600094F191C195F10F80D57ED5BE6ED0D6CFCC :100F700047F1D7CF48F145C149F1E86AE8CF4AF1D6 :100F8000138A1CBE02D01CA0108C109047C100F127 :100F900048C101F149C102F14AC103F101010A0E40 :100FA000046F000E056F000E066F000E076F9FECBA :100FB00030F003AF1080010154A7EBEF07F00F9A58 :100FC0000F9C0F9E0101000E5E6F600E5F6F3D0E65 :100FD000606F080E616F010147BFFBEF07F04867C4 :100FE000FBEF07F04967FBEF07F04A67FBEF07F0FD :100FF000F28820EF08F0F2985E6B5F6B606B616BBC :101000009A6B9B6B9C6B9D6B9E6B9F6BA06BA16B9C :10101000A26BA36BA46BA56BA66BA76BA86BA96B4C :10102000AA6BAB6BAC6BAD6BAE6BAF6BB06BB16BFC :10103000B26BB36BB46BB56BB66BB76BB86BB96BAC :10104000D76AD66A0101456B466B0CC100F10DC130 :1010500001F10EC102F10FC103F110C104F111C180 :1010600005F112C106F113C107F114C108F115C150 :1010700009F116C10AF117C10BF135C134F147EF7F :101080000BF047EF0BF00201002FABEF0AF0D59EFB :10109000D6CF47F1D7CF48F145C149F1E86AE8CF4B :1010A0004AF1138AD76AD66A0101456B466BD58E21 :1010B0001D50E00BE00AE86612881BBE02D01BB48C :1010C000108E1AAE1F8C00C10CF101C10DF102C1CE :1010D0000EF103C10FF104C110F105C111F106C1F8 :1010E00012F107C113F108C114F109C115F10AC1C8 :1010F00016F10BC117F134C135F10FA0109A11B8D8 :101100008DEF08F00101620E046F010E056F000EF5 :10111000066F000E076F96EF08F00101A70E046F2F :10112000020E056F000E066F000E076F47C100F13B :1011300048C101F149C102F14AC103F19FEC30F00D :1011400003BFA9EF08F01CBE02D01CA0108C11B088 :101150000F800CC100F10DC101F10EC102F10FC1F0 :1011600003F110C104F111C105F112C106F113C15F :1011700007F114C108F115C109F116C10AF117C12F :101180000BF135C134F102013C0E006F00C10CF1CE :1011900001C10DF102C10EF103C10FF104C110F143 :1011A00005C111F106C112F107C113F108C114F113 :1011B00009C115F10AC116F10BC117F134C135F19E :1011C00081BAE6EF08F015B225EF09F015A025EF7A :1011D00009F015A470EF09F005012F51000AD8B4E9 :1011E000B3EF09F005012F51010AD8B42FEF09F030 :1011F00005012F51020AD8B470EF09F005012F51F3 :10120000030AD8B470EF09F005012F51040AD8B4CD :1012100070EF09F005012F51050AD8B470EF09F0FD :1012200005012F51060AD8B470EF09F005012F51BE :10123000070AD8B470EF09F005012F51320AD8B46B :101240002DEF09F02F6BB3EF09F000011650030AE0 :10125000D8B470EF09F0B3EF09F0B3EF09F005016E :1012600057673AEF09F058673AEF09F059673AEFD4 :1012700009F05A673EEF09F0B3EF09F05BC500F1E2 :101280005CC501F15DC502F15EC503F10101010E0E :10129000046F000E056F000E066F000E076F9FECC7 :1012A00030F000C15BF501C15CF502C15DF503C121 :1012B0005EF50101006764EF09F0016764EF09F072 :1012C000026764EF09F00367B3EF09F057C55BF5F8 :1012D00058C55CF559C55DF55AC55EF59DEF09F039 :1012E0000FBE85EF09F010A08AEF09F001014767F2 :1012F00081EF09F0486781EF09F0496781EF09F054 :101300004A6785EF09F08AEF09F007AE8AEF09F026 :101310009DEF09F00501312FB3EF09F03C0E316F5D :10132000302FB3EF09F00101000E626FE00E636F22 :10133000A50E646F010E656F138800011650000A38 :10134000D8B4ABEF09F000011650030AD8B4B0EFDF :1013500009F0B3EF09F00001010E166EB3EF09F0CA :101360000001040E166E0501666B37B7B9EF09F080 :1013700066810CC100F10DC101F10EC102F10FC176 :1013800003F110C104F111C105F112C106F113C13D :1013900007F114C108F115C109F116C10AF117C10D :1013A0000BF135C134F100C10CF101C10DF102C1E5 :1013B0000EF103C10FF104C110F105C111F106C115 :1013C00012F107C113F108C114F109C115F10AC1E5 :1013D00016F10BC117F134C135F101018E67F8EF39 :1013E00009F08F67F8EF09F09067F8EF09F091675F :1013F000FCEF09F02DEF0AF092C100F193C101F169 :1014000094C102F195C103F10101010E046F000EB8 :10141000056F000E066F000E076F9FEC30F000C1E5 :1014200092F101C193F102C194F103C195F101015F :10143000006722EF0AF0016722EF0AF0026722EF4D :101440000AF003672DEF0AF08EC192F18FC193F17C :1014500090C194F191C195F10F80109047C100F1B6 :1014600048C101F149C102F14AC103F101010A0E6B :10147000046F000E056F000E066F000E076F9FECE5 :1014800030F003AF1080010154A753EF0AF00F9A18 :101490000F9C0F9E0101000E5E6F600E5F6F3D0E90 :1014A000606F080E616F47C100F148C101F149C189 :1014B00002F14AC103F10101140E046F050E056F1C :1014C000000E066F000E076F9FEC30F003AF6CEF5D :1014D0000AF0F28891EF0AF0F2985E6B5F6B606B36 :1014E000616B9A6B9B6B9C6B9D6B9E6B9F6BA06BF8 :1014F000A16BA26BA36BA46BA56BA66BA76BA86B70 :10150000A96BAA6BAB6BAC6BAD6BAE6BAF6BB06B1F :10151000B16BB26BB36BB46BB56BB66BB76BB86BCF :10152000B96B0CC100F10DC101F10EC102F10FC187 :1015300003F110C104F111C105F112C106F113C18B :1015400007F114C108F115C109F116C10AF117C15B :101550000BF135C134F104008BB4B6EF0AF010ACD6 :10156000B6EF0AF08B84109CB7EF0AF08B94077CDF :1015700007ACD2EF0AF0C274C2B4CCEF0AF0C3CF0A :10158000B7F5C4CFB8F50501D890B833B733D890C4 :10159000B833B733D3EF0AF0C3CF55F1C4CF56F108 :1015A000D3EF0AF0C28207B445EF0BF047C14BF10D :1015B00048C14CF149C14DF14AC14EF15EC162F1E1 :1015C0005FC163F160C164F161C165F113A8EBEF24 :1015D0000AF0138C13989AC1BAF19BC1BBF19CC15C :1015E000BCF19DC1BDF19EC1BEF19FC1BFF1A0C1C3 :1015F000C0F1A1C1C1F1A2C1C2F1A3C1C3F1A4C193 :10160000C4F1A5C1C5F1A6C1C6F1A7C1C7F1A8C162 :10161000C8F1A9C1C9F1AAC1CAF1ABC1CBF1ACC132 :10162000CCF1ADC1CDF1AEC1CEF1AFC1CFF1B0C102 :10163000D0F1B1C1D1F1B2C1D2F1B3C1D3F1B4C1D2 :10164000D4F1B5C1D5F1B6C1D6F1B7C1D7F1B8C1A2 :10165000D8F1B9C1D9F1B7C5B9F5B8C5BAF5B9C5A9 :10166000BBF5BAC5BCF5010155515B2756515C234A :10167000E86A5D230E2E45EF0BF05CC157F15DC1AA :1016800058F15B6B5C6B5D6B078E47EF0BF002C034 :10169000E0FF005001C0D8FF1000A6B24DEF0BF0E4 :1016A0000CC0A9FF0BC0A8FFA69EA69CA684F29E14 :1016B000550EA76EAA0EA76EA682F28EA694A6B2AB :1016C0005FEF0BF00C2A1200A96EA69EA69CA680C6 :1016D000A8500C2A120004012C0E826FA2EC0EF00E :1016E000B4EC31F00C5064EC0BF0E8CF00F10C508E :1016F00064EC0BF0E8CF01F101AF84EF0BF00101D6 :10170000FF0E026FFF0E036F3DEC31F0296790EF83 :101710000BF00401200E826FA2EC0EF095EF0BF09F :1017200004012D0E826FA2EC0EF047EC2FF0120098 :1017300015941596076A0F6A106A116A126A136A7D :10174000166A0F010D0EC16E860EC06E030EC26EBC :101750000F01680E896E130E926E080E8A6EF30EDC :10176000936E8B6A900E946EC80E64EC0BF0E8CF0B :1017700025F000012550FE0AD8B4CAEF0BF0000195 :101780002550FD0AD8B4CFEF0BF00F0E266E8F0E4A :10179000276E09D00E0E266E8E0E276E04D00D0E0B :1017A000266E8D0E276E52EC32F092EC33F0F18EF5 :1017B000F19EFC0E64EC0BF0E8CF0BF00BA0118057 :1017C0000BA211820BA411840BA81188C90E64EC22 :1017D0000BF0E8CF1AF0CA0E64EC0BF0E8CF1BF068 :1017E000CB0E64EC0BF0E8CF1CF0CC0E64EC0BF0ED :1017F000E8CF1DF0FB0E64EC0BF0E8CF38F0CE0E16 :1018000064EC0BF0E8CF14F0CD0E64EC0BF0E8CFF5 :1018100037F01F6A206A0E6A01015B6B5C6B5D6BBF :10182000576B586BF29A0101476B486B496B4A6BD7 :101830004B6B4C6B4D6B4E6B4F6B506B516B526BDC :10184000456B466BD76AD66A0F01280ED56EF28AB1 :101850009D90B00ECD6E01015E6B5F6B606B616B36 :10186000626B636B646B656B666B676B686B696BF4 :10187000536B546BCF6ACE6A0F9A0F9C0F9E9D805C :10188000760ECA6E9D8202013C0E006FCC6A160E67 :1018900064EC0BF0E8CF00F1170E64EC0BF0E8CF2E :1018A00001F1180E64EC0BF0E8CF02F1190E64ECB4 :1018B0000BF0E8CF03F1010103AF79EF0CF0B4ECCA :1018C00031F0160E0C6E00C10BF04DEC0BF0170E44 :1018D0000C6E01C10BF04DEC0BF0180E0C6E02C13A :1018E0000BF04DEC0BF0190E0C6E03C10BF04DEC30 :1018F0000BF000C18EF101C18FF102C190F103C163 :1019000091F100C192F101C193F102C194F103C1BF :1019100095F11A0E64EC0BF0E8CF00F11B0E64ECAD :101920000BF0E8CF01F11C0E64EC0BF0E8CF02F1F4 :101930001D0E64EC0BF0E8CF03F1010103AFCFEF14 :101940000CF0B4EC31F01A0E0C6E00C10BF04DEC43 :101950000BF01B0E0C6E01C10BF04DEC0BF01C0ECE :101960000C6E02C10BF04DEC0BF01D0E0C6E03C1A2 :101970000BF04DEC0BF01A0E64EC0BF0E8CF00F11D :101980001B0E64EC0BF0E8CF01F11C0E64EC0BF0C5 :10199000E8CF02F11D0E64EC0BF0E8CF03F100C1BB :1019A00096F101C197F102C198F103C199F1240E9A :1019B000AC6E900EAB6E240EAC6E080EB86E000EC0 :1019C000B06E1F0EAF6E0401806B816B0F01900E25 :1019D000AB6E0F019D8A0301806B816BC26B8B9292 :1019E00023EC37F023EC37F005EC39F001EC35F05F :1019F000200E64EC0BF0E8CF2FF505012F51FF0A04 :101A0000D8A40AEF0DF02F6B200E0C6E2FC50BF033 :101A10004DEC0BF00501010E306F3C0E316F250EC1 :101A200064EC0BF0E8CF00F1260E64EC0BF0E8CF8D :101A300001F1270E64EC0BF0E8CF02F1280E64EC04 :101A40000BF0E8CF03F1010103AF41EF0DF0B4EC6F :101A500031F0250E0C6E00C10BF04DEC0BF0260E94 :101A60000C6E01C10BF04DEC0BF0270E0C6E02C199 :101A70000BF04DEC0BF0280E0C6E03C10BF04DEC8F :101A80000BF000C157F501C158F502C159F503C16A :101A90005AF500C15BF501C15CF502C15DF503C1FA :101AA0005EF5290E64EC0BF0E8CF5FF5050160519F :101AB0005F5DD8A05FC560F5210E64EC0BF0E8CF48 :101AC00000F1220E64EC0BF0E8CF01F1230E64EC80 :101AD0000BF0E8CF02F1240E64EC0BF0E8CF03F139 :101AE000010103AFA2EF0DF0B4EC31F0210E0C6E4A :101AF00000C10BF04DEC0BF0220E0C6E01C10BF08F :101B00004DEC0BF0230E0C6E02C10BF04DEC0BF004 :101B1000240E0C6E03C10BF04DEC0BF0210E64ECA7 :101B20000BF0E8CF00F1220E64EC0BF0E8CF01F1EE :101B3000230E64EC0BF0E8CF02F1240E64EC0BF002 :101B4000E8CF03F100C161F501C162F502C163F59F :101B500003C164F512EC34F02FEC33F065EC32F095 :101B60001590C70E64EC0BF0E8CF00F1010100B155 :101B7000BDEF0DF01592BEEF0DF0158281AACCEFEE :101B80000DF015B4C7EF0DF01580CCEF0DF044EC5F :101B900039F015A0ABEF39F007900001F28EF28C0E :101BA00012AE03D012BC7AEF19F007B0C6EF2DF0D9 :101BB0000FB0B6EF26F010BEB6EF26F012B8B6EFB3 :101BC00026F000011650010AD8B4BEEF1DF081BA0C :101BD000F2EF0DF000011650040AD8B437EF1CF0F4 :101BE000F8EF0DF000011650040AD8B4FAEF1DF01A :101BF0000301805181197F0BD8B4C6EF2DF013EE8D :101C000000F081517F0BE126812BE7CFE8FFE00B4D :101C1000D8B4C6EF2DF023EE82F0C2513F0BD92687 :101C2000E7CFDFFFC22BDF50780AD8A4C6EF2DF034 :101C3000078092C100F193C101F194C102F195C1F5 :101C400003F10101040E046F000E056F000E066F14 :101C5000000E076F9FEC30F000AF38EF0EF001017F :101C6000030E926F000E936F000E946F000E956F2F :101C700003018251720AD8B437EF26F08251520A1A :101C8000D8B437EF26F08251750AD8B437EF26F072 :101C90008251680AD8B4B6EF0EF08251630AD8B404 :101CA00080EF2AF08251690AD8B404EF21F0825102 :101CB0007A0AD8B417EF22F08251490AD8B4A3EFB8 :101CC00020F08251500AD8B4C1EF1FF08251700A3F :101CD000D8B404EF20F08251540AD8B42FEF20F08A :101CE0008251740AD8B475EF20F08251410AD8B4F9 :101CF000BBEF0FF082514B0AD8B4B8EF0EF082510F :101D00006D0AD8B42BEF14F082514D0AD8B444EFC9 :101D100014F08251730AD8B467EF25F08251530A48 :101D2000D8B4CCEF25F082514C0AD8B4D3EF14F0DC :101D30008251590AD8B47CEF13F012AE01D0128C44 :101D4000B7EF2AF0040114EE00F080517F0BE1267A :101D500082C4E7FF802B120004010D0E826FA2ECFB :101D60000EF00A0E826FA2EC0EF01200B5EF2AF010 :101D700004014B0E826FA2EC0EF004012C0E826F58 :101D8000A2EC0EF081B802D037B630D003018351F7 :101D9000430AD8B4FDEF0EF003018351630AD8B4AF :101DA000FFEF0EF003018351520AD8B401EF0FF098 :101DB00003018351720AD8B403EF0FF0030183517A :101DC000470AD8B405EF0FF003018351670AD8B46E :101DD00007EF0FF003018351540AD8B409EF0FF055 :101DE00003018351740AD8B479EF0FF003018351D2 :101DF000550AD8B40BEF0FF083D037807BD03790E3 :101E000079D0378277D0379275D0378473D03794B2 :101E100071D037866FD084C330F185C331F186C36A :101E200032F187C333F10101296B02EC32F079EC16 :101E300031F000C104F101C105F102C106F103C195 :101E400007F1F5EC31F0200EF86EF76AF66A09003A :101E5000F5CF2CF10900F5CF2DF10900F5CF2EF1CA :101E60000900F5CF2FF10900F5CF30F10900F5CFCA :101E700031F10900F5CF32F10900F5CF33F101015D :101E8000296B02EC32F079EC31F09FEC30F001017B :101E9000006752EF0FF0016752EF0FF0026752EF49 :101EA0000FF0036701D025D004014E0E826FA2EC23 :101EB0000EF004016F0E826FA2EC0EF004014D0EC5 :101EC000826FA2EC0EF00401610E826FA2EC0EF0A4 :101ED0000401740E826FA2EC0EF00401630E826F97 :101EE000A2EC0EF00401680E826FA2EC0EF0B5EFCA :101EF0002AF03796CD0E0C6E37C00BF04DEC0BF080 :101F0000CD0E64EC0BF0E8CF37F037B006D004010B :101F1000630E826FA2EC0EF005D00401430E826FB7 :101F2000A2EC0EF037B206D00401720E826FA2EC62 :101F30000EF005D00401520E826FA2EC0EF037B401 :101F400006D00401670E826FA2EC0EF005D00401EA :101F5000470E826FA2EC0EF037B606D00401740E65 :101F6000826FA2EC0EF005D00401540E826FA2EC39 :101F70000EF0B5EF2AF00401410E826FA2EC0EF0D4 :101F800003018351310AD8B49CEF12F0030183514D :101F9000320AD8B4CCEF11F003018351330AD8B41C :101FA00055EF11F003018351340AD8B445EF10F016 :101FB00003018351350AD8B4E5EF0FF004013F0E59 :101FC000826FA2EC0EF0B5EF2AF003018451300AC3 :101FD000D8B40BEF10F003018451310AD8B40EEFDE :101FE00010F003018451650AD8B4FFEF0FF003012C :101FF0008451640AD8B402EF10F00FEF10F038905B :1020000003EF10F03880FB0E0C6E38C00BF04DEC77 :102010000BF00FEF10F08B900FEF10F08B8004019E :10202000350E826FA2EC0EF004012C0E826FA2EC32 :102030000EF08BB023EF10F00401300E826FA2EC93 :102040000EF028EF10F00401310E826FA2EC0EF0BA :1020500004012C0E826FA2EC0EF0FB0E64EC0BF070 :10206000E8CF38F038A03CEF10F00401640E826F26 :10207000A2EC0EF041EF10F00401650E826FA2ECAD :102080000EF043EF10F0B5EF2AF0CC0E64EC0BF03D :10209000E8CF0BF004012C0E826FA2EC0EF00301CE :1020A0008451310AD8B469EF10F003018451300A29 :1020B000D8B46BEF10F0030184514D0AD8B475EF1A :1020C00010F003018451540AD8B47CEF10F093EF60 :1020D00010F08A8401D08A940BAE04D00BAC02D0ED :1020E0000BBA21D0E00E0B1218D01F0E0B1685393B :1020F000E844E00B0B1211D0E00E0B16F5EC31F0BA :1021000085C332F186C333F10101296B02EC32F051 :1021100079EC31F000511F0B0B12CC0E0C6E0BC082 :102120000BF04DEC0BF00401340E826FA2EC0EF0BC :1021300004012C0E826FA2EC0EF0CC0E64EC0BF0BE :10214000E8CF1DF08AB406D00401300E826FA2ECF5 :102150000EF005D00401310E826FA2EC0EF00401E6 :102160002C0E826FA2EC0EF01D38E840070BE8CF72 :1021700082F40401300E8227A2EC0EF004012C0E32 :10218000826FA2EC0EF0B4EC31F01D501F0BE8CFC3 :1021900000F13DEC31F032C182F40401300E8227AF :1021A000A2EC0EF033C182F40401300E8227A2ECBF :1021B0000EF004012C0E826FA2EC0EF0B4EC31F0A4 :1021C00031C000F100AF0BD0FF0E016FFF0E026FA8 :1021D000FF0E036F04012D0E826FA2EC0EF03DEC9A :1021E00031F031C182F40401300E8227A2EC0EF0EE :1021F00032C182F40401300E8227A2EC0EF033C10A :1022000082F40401300E8227A2EC0EF004012C0EA1 :10221000826FA2EC0EF0B4EC31F030C000F13DEC76 :1022200031F031C182F40401300E8227A2EC0EF0AD :1022300032C182F40401300E8227A2EC0EF033C1C9 :1022400082F40401300E8227A2EC0EF004012C0E61 :10225000826FA2EC0EF0B4EC31F032C000F100AFAE :102260000BD0FF0E016FFF0E026FFF0E036F040114 :102270002D0E826FA2EC0EF03DEC31F031C182F4F4 :102280000401300E8227A2EC0EF032C182F4040168 :10229000300E8227A2EC0EF033C182F40401300E1E :1022A0008227A2EC0EF0B5EF2AF0CB0E64EC0BF017 :1022B000E8CF0BF004012C0E826FA2EC0EF00301AC :1022C0008451450AD8B479EF11F003018451440ACE :1022D000D8B47CEF11F003018451300AD8B47FEFF9 :1022E00011F003018451310AD8B483EF11F08EEF5D :1022F00011F00B9E88EF11F00B8E88EF11F0FC0EA1 :102300000B1688EF11F0FC0E0B160B8088EF11F006 :10231000CB0E0C6E0BC00BF04DEC0BF00401330E2A :10232000826FA2EC0EF004012C0E826FA2EC0EF074 :10233000CB0E64EC0BF0E8CF1CF01CBEA7EF11F045 :102340000401450E826FA2EC0EF0ACEF11F0040117 :10235000440E826FA2EC0EF004012C0E826FA2ECF0 :102360000EF00401300E826FA2EC0EF004012C0E70 :10237000826FA2EC0EF01CB0C5EF11F00401300E1C :10238000826FA2EC0EF0CAEF11F00401310E826FE1 :10239000A2EC0EF0B5EF2AF0CA0E64EC0BF0E8CF19 :1023A0000BF004012C0E826FA2EC0EF0030184519D :1023B000450AD8B408EF12F003018451440AD8B496 :1023C0000BEF12F0030184514D0AD8B414EF12F050 :1023D00003018451410AD8B40EEF12F00301845175 :1023E000460AD8B411EF12F003018451560AD8B44A :1023F0001CEF12F003018451500AD8B427EF12F0F9 :1024000003018451520AD8B42AEF12F033EF12F0CC :102410000B9E2DEF12F00B8E2DEF12F00B9C2DEF7B :1024200012F00B8C2DEF12F0FC0E0B1685C3E8FF9B :10243000030B0B122DEF12F0C70E0B1685C3E8FF2E :10244000070BE846E846E8460B122DEF12F00B8426 :102450002DEF12F00B942DEF12F0CA0E0C6E0BC084 :102460000BF04DEC0BF0CA0E64EC0BF0E8CF1BF058 :102470000401320E826FA2EC0EF004012C0E826F6A :10248000A2EC0EF01BBE4CEF12F00401450E826F61 :10249000A2EC0EF051EF12F00401440E826FA2EC98 :1024A0000EF004012C0E826FA2EC0EF01BC0E8FFB0 :1024B000030BE8CF82F40401300E8227A2EC0EF069 :1024C00004012C0E826FA2EC0EF01BBC6FEF12F019 :1024D0000401410E826FA2EC0EF074EF12F00401C1 :1024E000460E826FA2EC0EF004012C0E826FA2EC5D :1024F0000EF01BC0E8FF380BE842E842E842E8CFA4 :1025000082F40401300E8227A2EC0EF004012C0E9E :10251000826FA2EC0EF01BB495EF12F00401520E84 :10252000826FA2EC0EF09AEF12F00401500E826F4F :10253000A2EC0EF0B5EF2AF0C90E64EC0BF0E8CF78 :102540000BF004012C0E826FA2EC0EF003018451FB :10255000450AD8B4BAEF12F003018451440AD8B442 :10256000BDEF12F0030184514D0AD8B4C0EF12F050 :10257000CEEF12F00B9EC8EF12F00B8EC8EF12F0E8 :10258000F80E0B1685C3E8FF070B0B12C8EF12F00D :10259000C90E0C6E0BC00BF04DEC0BF00401310EAC :1025A000826FA2EC0EF004012C0E826FA2EC0EF0F2 :1025B000C90E64EC0BF0E8CF1AF01ABE06D0040185 :1025C000450E826FA2EC0EF005D00401440E826F1E :1025D000A2EC0EF004012C0E826FA2EC0EF01AC0D9 :1025E000E8FF070BE8CF82F40401300E8227A2EC4B :1025F0000EF004012C0E826FA2EC0EF00780B4ECFA :1026000031F02CC0E8FF003B00430043030B3DECDE :1026100031F033C182F40401300E8227A2EC0EF0B7 :1026200004012C0E826FA2EC0EF0B4EC31F02CC041 :1026300001F1019F019D2DC000F101013DEC31F040 :102640002FC182F40401300E8227A2EC0EF030C1BB :1026500082F40401300E8227A2EC0EF031C182F424 :102660000401300E8227A2EC0EF032C182F4040184 :10267000300E8227A2EC0EF033C182F40401300E3A :102680008227A2EC0EF004012C0E826FA2EC0EF059 :10269000B4EC31F02EC001F12FC000F1D89001331D :1026A0000033D8900133003301013DEC31F02FC1EC :1026B00082F40401300E8227A2EC0EF030C182F4C5 :1026C0000401300E8227A2EC0EF031C182F4040125 :1026D000300E8227A2EC0EF032C182F40401300EDB :1026E0008227A2EC0EF033C182F40401300E82275F :1026F000A2EC0EF0B5EF2AF0FC0E64EC0BF0E8CF84 :102700000BF003018351520AD8B4B3EF13F0030165 :102710008351720AD8B4B6EF13F003018351500A03 :10272000D8B4B9EF13F003018351700AD8B4BCEFE9 :1027300013F003018351550AD8B4BFEF13F003011E :102740008351750AD8B4C2EF13F003018351430AD1 :10275000D8B4CBEF13F003018351630AD8B4CEEFA2 :1027600013F0D7EF13F00B90D1EF13F00B80D1EFF4 :1027700013F00B92D1EF13F00B82D1EF13F00B9407 :10278000D1EF13F00B84D1EF13F00B96D1EF13F0D0 :102790000B86D1EF13F00B98D1EF13F00B88D1EF2C :1027A00013F0FC0E0C6E0BC00BF04DEC0BF00401A3 :1027B000590E826FA2EC0EF01190119211941198A3 :1027C000FC0E64EC0BF0E8CF0BF00BA011800BA219 :1027D00011820BA411840BA8118811A0F7EF13F03C :1027E0000401520E826FA2EC0EF0FCEF13F0040114 :1027F000720E826FA2EC0EF011A806EF14F0040125 :10280000430E826FA2EC0EF00BEF14F00401630E86 :10281000826FA2EC0EF011A215EF14F00401500E1D :10282000826FA2EC0EF01AEF14F00401700E826FAA :10283000A2EC0EF011A424EF14F00401550E826FE7 :10284000A2EC0EF029EF14F00401750E826FA2ECD9 :102850000EF0B5EF2AF004016D0E826FA2EC0EF0BF :1028600003018351300AD8B483EF14F0030183517C :10287000310AD8B496EF14F003018351320AD8B468 :10288000A9EF14F0B7EF2AF004014D0E826FA2EC0D :102890000EF0F5EC31F084C331F185C332F186C31B :1028A00033F10101296B02EC32F079EC31F00301D4 :1028B0008351300AD8B46BEF14F003018351310A0D :1028C000D8B473EF14F003018351320AD8B47BEF0C :1028D00014F0B7EF2AF0FD0E0C6E00C10BF04DECBA :1028E0000BF083EF14F0FE0E0C6E00C10BF04DECFC :1028F0000BF096EF14F0FF0E0C6E00C10BF04DECD8 :102900000BF0A9EF14F00401300E826FA2EC0EF070 :1029100004012C0E826FA2EC0EF0B4EC31F0FD0E2F :1029200064EC0BF0E8CF00F1BAEF14F00401310EC3 :10293000826FA2EC0EF004012C0E826FA2EC0EF05E :10294000B4EC31F0FE0E64EC0BF0E8CF00F1BAEF1E :1029500014F00401320E826FA2EC0EF0B4EC31F0F0 :1029600004012C0E826FA2EC0EF0FF0E64EC0BF053 :10297000E8CF00F13DEC31F031C182F40401300EBA :102980008227A2EC0EF032C182F40401300E8227BD :10299000A2EC0EF033C182F40401300E8227A2ECC7 :1029A0000EF0B5EF2AF003018351300AD8B427EFB7 :1029B0001AF003018351310AD8B465EF1BF003010B :1029C0008351320AD8B4D3EF1BF003018351330A89 :1029D000D8B4E3EF1BF003018351340AD8B43EEFBF :1029E0001CF003018351350AD8B412EF1EF0030125 :1029F0008351360AD8B440EF1EF003018351370AE1 :102A0000D8B4FFEF17F003018351380AD8B49DEF13 :102A100018F003018351440AD8B42BEF16F00301D8 :102A20008351640AD8B44BEF16F003018351460A70 :102A3000D8B417EF1DF0030183514D0AD8B478EFD5 :102A400016F0030183516D0AD8B492EF16F003011A :102A500083515A0AD8B4DFEF1AF003018351490AAF :102A6000D8B440EF1FF003018351500AD8B472EF7D :102A70001EF003018351540AD8B4EBEF1EF003019A :102A80008351630AD8B4B2EF16F003018351430AAD :102A9000D8B4AAEF17F003018351730AD8B4B0EF8A :102AA00016F003018351610AD8B478EF15F00301E1 :102AB0008351650AD8B477EF1AF003018351450AB0 :102AC000D8B485EF1AF003018351620AD8B493EFAA :102AD0001AF003018351420AD8B4A1EF1AF003019E :102AE0008351760AD8B4AFEF1AF0D8A4B7EF2AF022 :102AF00004014C0E826FA2EC0EF00401610E826F95 :102B0000A2EC0EF02FEC33F004012C0E826FA2EC3D :102B10000EF0B4EC31F0AFC500F101013DEC31F045 :102B200031C182F40401300E8227A2EC0EF032C1D2 :102B300082F40401300E8227A2EC0EF033C182F43D :102B40000401300E8227A2EC0EF004012C0E826FDD :102B5000A2EC0EF0B4EC31F0B0C500F101013DEC97 :102B600031F031C182F40401300E8227A2EC0EF064 :102B700032C182F40401300E8227A2EC0EF033C180 :102B800082F40401300E8227A2EC0EF004012C0E18 :102B9000826FA2EC0EF0B4EC31F0B1C500F101018E :102BA0003DEC31F031C182F40401300E8227A2ECF9 :102BB0000EF032C182F40401300E8227A2EC0EF036 :102BC00033C182F40401300E8227A2EC0EF004011E :102BD0002C0E826FA2EC0EF0B4EC31F0B2C500F115 :102BE00001013DEC31F031C182F40401300E822745 :102BF000A2EC0EF032C182F40401300E8227A2EC66 :102C00000EF033C182F40401300E8227A2EC0EF0E4 :102C100004012C0E826FA2EC0EF0B4EC31F0B6C5BC :102C200000F101013DEC31F031C182F40401300EBC :102C30008227A2EC0EF032C182F40401300E82270A :102C4000A2EC0EF033C182F40401300E8227A2EC14 :102C50000EF06EEF1EF003018451300AD8B437EF46 :102C600016F003018451310AD8B43BEF16F01592E7 :102C700015963CEF16F01582C70E64EC0BF0E8CF0A :102C800000F10101008115A20091C70E0C6E00C178 :102C90000BF04DEC0BF0C70E64EC0BF0E8CF00F13D :102CA000010100B157EF16F0159258EF16F015829A :102CB00004014C0E826FA2EC0EF00401640E826FD0 :102CC000A2EC0EF004012C0E826FA2EC0EF015B2F5 :102CD00071EF16F00401300E826FA2EC0EF076EF69 :102CE00016F00401310E826FA2EC0EF0B5EF2AF05F :102CF000F5EC31F084C333F102EC32F079EC31F0D1 :102D0000200E0C6E00C10BF04DEC0BF000C12FF546 :102D100005012F51000A06E005012F51010A02E0CA :102D200092EC33F004014C0E826FA2EC0EF0040121 :102D30004D0E826FA2EC0EF004012C0E826FA2ECFD :102D40000EF0B4EC31F02FC500F13DEC31F033C1A1 :102D500082F40401300E8227A2EC0EF06EEF1EF01A :102D6000ABEF39F004014C0E826FA2EC0EF00401BF :102D7000630E826FA2EC0EF065EC32F004012C0EB3 :102D8000826FA2EC0EF0C7EC16F06EEF1EF0B4EC02 :102D900031F0B5C500F10101003B0F0E00173DEC0D :102DA00031F033C182F40401300E8227A2EC0EF020 :102DB000B5C500F101010F0E010100173DEC31F026 :102DC00033C182F40401300E8227A2EC0EF004011C :102DD0002D0E826FA2EC0EF0B4C500F10101003B94 :102DE0000F0E00173DEC31F033C182F40401300EB8 :102DF0008227A2EC0EF0B4C500F101010F0E010113 :102E000000173DEC31F033C182F40401300E82270B :102E1000A2EC0EF004012D0E826FA2EC0EF0B3C5F1 :102E200000F10101003B0F0E00173DEC31F033C102 :102E300082F40401300E8227A2EC0EF0B3C500F13B :102E400001010F0E010100173DEC31F033C182F496 :102E50000401300E8227A2EC0EF00401200E826FD6 :102E6000A2EC0EF0B2C500F10F0E010100173DEC0F :102E700031F033C182F40401300E8227A2EC0EF04F :102E80000401200E826FA2EC0EF0B1C500F1010129 :102E90000101003B0F0E00173DEC31F033C182F40D :102EA0000401300E8227A2EC0EF0B1C500F1010141 :102EB0000F0E010100173DEC31F033C182F4040123 :102EC000300E8227A2EC0EF004013A0E826FA2ECC3 :102ED0000EF0B0C500F10101003B0F0E00173DECF4 :102EE00031F033C182F40401300E8227A2EC0EF0DF :102EF000B0C500F101010F0E010100173DEC31F0EA :102F000033C182F40401300E8227A2EC0EF00401DA :102F10003A0E826FA2EC0EF0AFC500F10101003B4A :102F20000F0E00173DEC31F033C182F40401300E76 :102F30008227A2EC0EF0AFC500F101010F0E0017C1 :102F40003DEC31F033C182F40401300E8227A2EC53 :102F50000EF0120084C3E8FF0F0BE83AE8CFB5F596 :102F600085C3E8FF0F0B0501B51387C3E8FF0F0BFF :102F7000E83AE8CFB4F588C3E8FF0F0B0501B413B6 :102F80008AC3E8FF0F0BE83AE8CFB3F58BC3E8FF3D :102F90000F0B0501B3138DC3E8FF0F0BE8CFB2F59C :102FA0008FC3E8FF0F0BE83AE8CFB1F590C3E8FF15 :102FB0000F0B0501B11392C3E8FF0F0BE83AE8CFFE :102FC000B0F593C3E8FF0F0B0501B01395C3E8FFFD :102FD0000F0BE83AE8CFAFF596C3E8FF0F0B0501FA :102FE000AF13D1EC32F004014C0E826FA2EC0EF064 :102FF0000401430E826FA2EC0EF0BCEF16F00784C2 :1030000004014C0E826FA2EC0EF00401370E826FA9 :10301000A2EC0EF004012C0E826FA2EC0EF0050162 :103020002E51130A06E005012E51170A0DE09AEF02 :1030300018F00101000E006F000E016F100E026FFC :10304000000E036F2DEF18F00101000E006F000E4F :10305000016F000E026F010E036F3DEC31F02AC1CB :1030600082F40401300E8227A2EC0EF02BC182F410 :103070000401300E8227A2EC0EF02CC182F4040170 :10308000300E8227A2EC0EF02DC182F40401300E26 :103090008227A2EC0EF02EC182F40401300E8227AA :1030A000A2EC0EF02FC182F40401300E8227A2ECB4 :1030B0000EF030C182F40401300E8227A2EC0EF033 :1030C00031C182F40401300E8227A2EC0EF032C12D :1030D00082F40401300E8227A2EC0EF033C182F498 :1030E0000401300E8227A2EC0EF004012C0E826F38 :1030F000A2EC0EF00101100E006F000E016F000E29 :10310000026F000E036F3DEC31F031C182F4040117 :10311000300E8227A2EC0EF032C182F40401300E90 :103120008227A2EC0EF033C182F40401300E822714 :10313000A2EC0EF007946EEF1EF00501216B226BDE :10314000236B246B04014C0E826FA2EC0EF0040181 :10315000380E826FA2EC0EF004012C0E826FA2ECEE :103160000EF00101100E006F000E016F000E026FD5 :10317000000E036F3DEC31F02AC182F40401300EE1 :103180008227A2EC0EF02BC182F40401300E8227BC :10319000A2EC0EF02CC182F40401300E8227A2ECC6 :1031A0000EF02DC182F40401300E8227A2EC0EF045 :1031B0002EC182F40401300E8227A2EC0EF02FC142 :1031C00082F40401300E8227A2EC0EF030C182F4AA :1031D0000401300E8227A2EC0EF031C182F404010A :1031E000300E8227A2EC0EF032C182F40401300EC0 :1031F0008227A2EC0EF033C182F40401300E822744 :10320000A2EC0EF004012C0E826FA2EC0EF025C58C :1032100000F126C501F127C502F128C503F101011E :10322000100E046F000E056F000E066F000E076F84 :10323000D0EC30F000C133F501C134F502C135F5F1 :1032400003C136F53DEC31F02AC182F40401300EA1 :103250008227A2EC0EF02BC182F40401300E8227EB :10326000A2EC0EF02CC182F40401300E8227A2ECF5 :103270000EF02DC182F40401300E8227A2EC0EF074 :103280002EC182F40401300E8227A2EC0EF02FC171 :1032900082F40401300E8227A2EC0EF030C182F4D9 :1032A0000401300E8227A2EC0EF031C182F4040139 :1032B000300E8227A2EC0EF032C182F40401300EEF :1032C0008227A2EC0EF033C182F40401300E822773 :1032D000A2EC0EF0ACEC0EF00501336777EF19F0BD :1032E000346777EF19F0356777EF19F0366702D05A :1032F00016EF1AF0129E129C21C500F122C501F1B1 :1033000023C502F124C503F1899A400EC76E200E31 :10331000C66E9E96C69E0B0EC96EFF0E9EB602D05E :10332000E82EFCD79E96C69E02C1C9FFFF0E9EB630 :1033300002D0E82EFCD79E96C69E01C1C9FFFF0EA3 :103340009EB602D0E82EFCD79E96C69E00C1C9FF4D :10335000FF0E9EB602D0E82EFCD79E96C69EC9529E :10336000FF0E9EB602D0E82EFCD70501100E326F7C :10337000040114EE00F080517F0BE1269E96C69E5C :10338000C952FF0E9EB602D0E82EFCD7C9CFE7FF88 :103390000401802B0501322FB8EF19F0898A33C55B :1033A00000F134C501F135C502F136C503F1010163 :1033B000010E046F000E056F000E066F000E076F02 :1033C0009FEC30F000C133F501C134F502C135F591 :1033D00003C136F505013367F5EF19F03467F5EFF2 :1033E00019F03567F5EF19F0366702D016EF1AF0CD :1033F00021C500F122C501F123C502F124C503F165 :103400000101100E046F000E056F000E066F000E16 :10341000076FA4EC30F000C121F501C122F502C113 :1034200023F503C124F5128EB7EF2AF00401450EEF :10343000826FA2EC0EF004014F0E826FA2EC0EF030 :103440000401460E826FA2EC0EF06EEF1EF00784B0 :1034500005EC39F0B4EC31F02DC500F13DEC31F064 :1034600004014C0E826FA2EC0EF00401300E826F4C :10347000A2EC0EF004012C0E826FA2EC0EF031C112 :1034800082F40401300E8227A2EC0EF032C182F4E5 :103490000401300E8227A2EC0EF033C182F4040145 :1034A000300E8227A2EC0EF004012C0E826FA2ECEB :1034B0000EF0B4EC31F02EC500F13DEC31F031C12D :1034C00082F40401300E8227A2EC0EF032C182F4A5 :1034D0000401300E8227A2EC0EF033C182F4040105 :1034E000300E8227A2EC0EF007946EEF1EF004015E :1034F0004C0E826FA2EC0EF00401650E826FA2ECFE :103500000EF0A5EC34F06EEF1EF004014C0E826F4D :10351000A2EC0EF00401450E826FA2EC0EF0BCECA2 :1035200034F06EEF1EF004014C0E826FA2EC0EF030 :103530000401620E826FA2EC0EF0EAEC34F06EEF42 :103540001EF004014C0E826FA2EC0EF00401420E3C :10355000826FA2EC0EF0D3EC34F06EEF1EF004019B :103560004C0E826FA2EC0EF00401760E826FA2EC7C :103570000EF004012C0E826FA2EC0EF0000125501B :10358000FE0AD8B4D1EF1AF000012550FD0AD8B4D4 :10359000D8EF1AF00401300E826FA2EC0EF06EEF3D :1035A0001EF00401310E826FA2EC0EF06EEF1EF0E1 :1035B0000401320E826FA2EC0EF06EEF1EF00401D9 :1035C0004C0E826FA2EC0EF004015A0E826FA2EC38 :1035D0000EF004012C0E826FA2EC0EF005EC39F017 :1035E000B4EC31F005012E51130A06E005012E510D :1035F000170A0DE010EF1BF00101000E006F000E26 :10360000016F100E026F000E036F10EF1BF001012F :10361000000E006F000E016F000E026F010E036FAF :103620000101100E046F000E056F000E066F000EF4 :10363000076FD0EC30F03DEC31F02AC182F4040188 :10364000300E8227A2EC0EF02BC182F40401300E62 :103650008227A2EC0EF02CC182F40401300E8227E6 :10366000A2EC0EF02DC182F40401300E8227A2ECF0 :103670000EF02EC182F40401300E8227A2EC0EF06F :103680002FC182F40401300E8227A2EC0EF030C16B :1036900082F40401300E8227A2EC0EF031C182F4D4 :1036A0000401300E8227A2EC0EF032C182F4040134 :1036B000300E8227A2EC0EF033C182F40401300EEA :1036C0008227A2EC0EF06EEF1EF0078404014C0E70 :1036D000826FA2EC0EF00401310E826FA2EC0EF0AC :1036E00004012C0E826FA2EC0EF025C500F126C558 :1036F00001F127C502F128C503F10101100E046F85 :10370000000E056F000E066F000E076FD0EC30F054 :103710003DEC31F02AC182F40401300E8227A2EC84 :103720000EF02BC182F40401300E8227A2EC0EF0C1 :103730002CC182F40401300E8227A2EC0EF02DC1C0 :1037400082F40401300E8227A2EC0EF02EC182F426 :103750000401300E8227A2EC0EF02FC182F4040186 :10376000300E8227A2EC0EF030C182F40401300E3C :103770008227A2EC0EF031C182F40401300E8227C0 :10378000A2EC0EF032C182F40401300E8227A2ECCA :103790000EF033C182F40401300E8227A2EC0EF049 :1037A00007946EEF1EF0078404014C0E826FA2ECAA :1037B0000EF00401320E826FA2EC0EF0D9EC36F05E :1037C00007946EEF1EF0078438B0E9EF1BF0FCEFB2 :1037D0001BF0010E166E04014C0E826FA2EC0EF06F :1037E0000401330E826FA2EC0EF036EC37F0000EBF :1037F000166E079470EF1BF0020E166E36EC37F063 :103800008B800501010E306F3C0E316F01015E6B44 :103810005F6B606B616B626B636B646B656B666B3C :10382000676B686B696B536B546BCF6ACE6A0F9A88 :103830000F9C0F9E030E166E04014C0E826FA2ECBD :103840000EF00401330E826FA2EC0EF004012C0E78 :10385000826FA2EC0EF004012D0E826FA2EC0EF02E :103860000401310E826FA2EC0EF0B5EF2AF036ECB7 :1038700037F0000E166E8B90B7EF2AF00784040124 :103880004C0E826FA2EC0EF00401340E826FA2EC9B :103890000EF004012C0E826FA2EC0EF0F5EC31F06C :1038A00084C32AF185C32BF186C32CF187C32DF184 :1038B00088C32EF189C32FF18AC330F18BC331F154 :1038C0008CC332F18DC333F10101296B02EC32F06C :1038D00079EC31F0100E046F000E056F000E066FCC :1038E000000E076FB0EC30F000C121F501C122F5E8 :1038F00002C123F503C124F5B8EC38F038C5AFF5A3 :1039000039C5B0F53AC5B1F53BC5B2F53CC5B3F51F :103910003DC5B4F53EC5B5F5C7EC16F004012C0E57 :10392000826FA2EC0EF03FC500F140C501F141C528 :1039300002F142C503F10101000E046F000E056F94 :10394000010E066F000E076FD0EC30F03DEC31F049 :103950002967ADEF1CF0B2EF1CF004012D0E826F51 :10396000A2EC0EF030C182F40401300E8227A2ECEA :103970000EF031C182F40401300E8227A2EC0EF069 :1039800004012E0E826FA2EC0EF032C182F404010B :10399000300E8227A2EC0EF033C182F40401300E07 :1039A0008227A2EC0EF004012C0E826FA2EC0EF026 :1039B000B4EC31F043C500F144C501F1E1EC2BF06A :1039C00004012C0E826FA2EC0EF0B4EC31F045C570 :1039D00000F13DEC31F031C182F40401300E822758 :1039E000A2EC0EF032C182F40401300E8227A2EC68 :1039F0000EF033C182F40401300E8227A2EC0EF0E7 :103A000004012C0E826FA2EC0EF037C5E8FFE8B877 :103A100006D00401300E826FA2EC0EF005D0040136 :103A2000310E826FA2EC0EF007946EEF1EF0F5ECF3 :103A300031F085C32AF186C32BF187C32CF188C3EB :103A40002DF189C32EF18AC32FF18BC330F18CC3C2 :103A500031F18DC332F18EC333F10101296B02ECD8 :103A600032F079EC31F00101010E046F000E056FA8 :103A7000000E066F000E076F9FEC30F0100E046F03 :103A8000000E056F000E066F000E076FB0EC30F0F1 :103A900000C129F501C12AF502C12BF503C12CF59E :103AA00060EC36F004014C0E826FA2EC0EF00401C3 :103AB000460E826FA2EC0EF004012C0E826FA2EC77 :103AC0000EF025C500F126C501F127C502F128C574 :103AD00003F10101100E046F000E056F000E066F5A :103AE000000E076FD0EC30F03DEC31F02AC182F4CB :103AF0000401300E8227A2EC0EF02BC182F40401E7 :103B0000300E8227A2EC0EF02CC182F40401300E9C :103B10008227A2EC0EF02DC182F40401300E822720 :103B2000A2EC0EF02EC182F40401300E8227A2EC2A :103B30000EF02FC182F40401300E8227A2EC0EF0A9 :103B400030C182F40401300E8227A2EC0EF031C1A4 :103B500082F40401300E8227A2EC0EF032C182F40E :103B60000401300E8227A2EC0EF033C182F404016E :103B7000300E8227A2EC0EF06EEF1EF038B0C3EFCD :103B80001DF0020E166E36EC37F000011650020AD8 :103B9000D8B4E1EF1DF005012F51010AD8B4D7EFD9 :103BA0001DF015B2DCEF1DF081BADCEF1DF0000E48 :103BB000166E1584B7EF2AF0050E166E1584ABEF5E :103BC00039F08B8001015E6B5F6B606B616B626BC8 :103BD000636B646B656B666B676B686B696B536B70 :103BE000546BCF6ACE6A0F9A0F9C0F9E030E166E0F :103BF000B7EF2AF036EC37F005012F51010AD8B49F :103C000008EF1EF015B20DEF1EF081BA0DEF1EF099 :103C1000000E166E1584B7EF2AF0050E166E158489 :103C2000ABEF39F004014C0E826FA2EC0EF00401F0 :103C3000350E826FA2EC0EF004012C0E826FA2EC06 :103C40000EF0B4EC31F00784B9C500F107943DECF7 :103C500031F031C182F40401300E8227A2EC0EF063 :103C600032C182F40401300E8227A2EC0EF033C17F :103C700082F40401300E8227A2EC0EF06EEF1EF0EB :103C8000F9EC36F0B4EC31F037C500F13DEC31F031 :103C900004014C0E826FA2EC0EF00401360E826F0E :103CA000A2EC0EF004012C0E826FA2EC0EF031C1DA :103CB00082F40401300E8227A2EC0EF032C182F4AD :103CC0000401300E8227A2EC0EF033C182F404010D :103CD000300E8227A2EC0EF06EEF1EF0ACEC0EF070 :103CE000B7EF2AF004014C0E826FA2EC0EF0040133 :103CF000500E826FA2EC0EF004012C0E826FA2EC2B :103D00000EF085C32AF186C32BF187C32CF188C33B :103D10002DF189C32EF18AC32FF18BC330F18CC3EF :103D200031F18DC332F18EC333F1010102EC32F077 :103D300079EC31F003018451530A0DE00301845101 :103D40004D0A38E00401780E826FA2EC0EF0ACEC64 :103D50000EF0B7EF2AF00401530E826FA2EC0EF0C2 :103D6000250E0C6E00C10BF04DEC0BF0260E0C6E08 :103D700001C10BF04DEC0BF0270E0C6E02C10BF0E5 :103D80004DEC0BF0280E0C6E03C10BF04DEC0BF05C :103D900000C157F501C158F502C159F503C15AF5E3 :103DA00000C15BF501C15CF502C15DF503C15EF5C3 :103DB0004FEF1FF004014D0E826FA2EC0EF0290EA2 :103DC0000C6E00C10BF04DEC0BF000C15FF500C1B3 :103DD00060F54FEF1FF004014C0E826FA2EC0EF065 :103DE0000401540E826FA2EC0EF004012C0E826FBF :103DF000A2EC0EF084C32AF185C32BF186C32CF10B :103E000087C32DF188C32EF189C32FF18AC330F106 :103E10008BC331F18DC332F18EC333F1010102EC5A :103E200032F079EC31F00101000E046F000E056FE5 :103E3000010E066F000E076FB0EC30F0210E0C6E15 :103E400000C10BF04DEC0BF0220E0C6E01C10BF01B :103E50004DEC0BF0230E0C6E02C10BF04DEC0BF091 :103E6000240E0C6E03C10BF04DEC0BF000C161F59C :103E700001C162F502C163F503C164F54FEF1FF0A4 :103E800004014C0E826FA2EC0EF00401490E826F09 :103E9000A2EC0EF004012C0E826FA2EC0EF0250EA7 :103EA00064EC0BF0E8CF00F1260E64EC0BF0E8CFE9 :103EB00001F1270E64EC0BF0E8CF02F1280E64EC60 :103EC0000BF0E8CF03F13DEC31F000EC2FF00401F2 :103ED000730E826FA2EC0EF004012C0E826FA2EC26 :103EE0000EF0B4EC31F0290E64EC0BF0E8CF00F1E9 :103EF0003DEC31F000EC2FF004016D0E826FA2EC6E :103F00000EF004012C0E826FA2EC0EF05BC500F1E6 :103F10005CC501F15DC502F15EC503F13DEC31F018 :103F200000EC2FF00401730E826FA2EC0EF004017E :103F30002C0E826FA2EC0EF0B4EC31F060C500F1F3 :103F40003DEC31F000EC2FF004016D0E826FA2EC1D :103F50000EF004012C0E826FA2EC0EF061C500F190 :103F600062C501F163C502F164C503F1D2EC2AF028 :103F700004012C0E826FA2EC0EF0ACEC0EF0B7EF49 :103F80002AF083C32AF184C32BF185C32CF186C3A5 :103F90002DF187C32EF188C32FF189C330F18AC375 :103FA00031F18BC332F18CC333F1010102EC32F0F9 :103FB00079EC31F0160E0C6E00C10BF04DEC0BF0ED :103FC000170E0C6E01C10BF04DEC0BF0180E0C6EC1 :103FD00002C10BF04DEC0BF0190E0C6E03C10BF08F :103FE0004DEC0BF000C18EF101C18FF102C190F1D7 :103FF00003C191F100C192F101C193F102C194F1A9 :1040000003C195F1A3EF20F083C32AF184C32BF100 :1040100085C32CF186C32DF187C32EF188C32FF100 :1040200089C330F18AC331F18BC332F18CC333F1D0 :10403000010102EC32F079EC31F000C18EF101C1E6 :104040008FF102C190F103C191F100C192F101C160 :1040500093F102C194F103C195F1A3EF20F083C362 :104060002AF184C32BF185C32CF186C32DF187C3BC :104070002EF188C32FF189C330F18AC331F18CC38B :1040800032F18DC333F1010102EC32F079EC31F001 :104090000101000E046F000E056F010E066F000E89 :1040A000076FB0EC30F01A0E0C6E00C10BF04DEC47 :1040B0000BF01B0E0C6E01C10BF04DEC0BF01C0E47 :1040C0000C6E02C10BF04DEC0BF01D0E0C6E03C11B :1040D0000BF04DEC0BF000C196F101C197F102C15C :1040E00098F103C199F1A3EF20F083C32AF184C3AF :1040F0002BF185C32CF186C32DF187C32EF188C324 :104100002FF189C330F18AC331F18CC332F18DC3F1 :1041100033F1010102EC32F079EC31F00101000ED3 :10412000046F000E056F010E066F000E076FB0ECF6 :1041300030F000C196F101C197F102C198F103C1BD :1041400099F1A3EF20F0160E64EC0BF0E8CF00F12C :10415000170E64EC0BF0E8CF01F1180E64EC0BF0D5 :10416000E8CF02F1190E64EC0BF0E8CF03F13DEC5F :1041700031F000EC2FF00401730E826FA2EC0EF010 :1041800004012C0E826FA2EC0EF08EC100F18FC1E3 :1041900001F190C102F191C103F13DEC31F000EC6D :1041A0002FF00401730E826FA2EC0EF004012C0EAE :1041B000826FA2EC0EF01A0E64EC0BF0E8CF00F167 :1041C0001B0E64EC0BF0E8CF01F11C0E64EC0BF05D :1041D000E8CF02F11D0E64EC0BF0E8CF03F1D2EC56 :1041E0002AF004012C0E826FA2EC0EF096C100F1B1 :1041F00097C101F198C102F199C103F1D2EC2AF003 :10420000ACEC0EF0B7EF2AF00401690E826FA2EC5D :104210000EF004012C0E826FA2EC0EF00101040ED0 :10422000006F000E016F000E026F000E036F3DEC79 :1042300031F02CC182F40401300E8227A2EC0EF082 :104240002DC182F40401300E8227A2EC0EF02EC1A3 :1042500082F40401300E8227A2EC0EF02FC182F40A :104260000401300E8227A2EC0EF030C182F404016A :10427000300E8227A2EC0EF031C182F40401300E20 :104280008227A2EC0EF032C182F40401300E8227A4 :10429000A2EC0EF033C182F40401300E8227A2ECAE :1042A0000EF004012C0E826FA2EC0EF00101060E3E :1042B000006F000E016F000E026F000E036F3DECE9 :1042C00031F02CC182F40401300E8227A2EC0EF0F2 :1042D0002DC182F40401300E8227A2EC0EF02EC113 :1042E00082F40401300E8227A2EC0EF02FC182F47A :1042F0000401300E8227A2EC0EF030C182F40401DA :10430000300E8227A2EC0EF031C182F40401300E8F :104310008227A2EC0EF032C182F40401300E822713 :10432000A2EC0EF033C182F40401300E8227A2EC1D :104330000EF004012C0E826FA2EC0EF00101500E63 :10434000006F000E016F000E026F000E036F3DEC58 :1043500031F02CC182F40401300E8227A2EC0EF061 :104360002DC182F40401300E8227A2EC0EF02EC182 :1043700082F40401300E8227A2EC0EF02FC182F4E9 :104380000401300E8227A2EC0EF030C182F4040149 :10439000300E8227A2EC0EF031C182F40401300EFF :1043A0008227A2EC0EF032C182F40401300E822783 :1043B000A2EC0EF033C182F40401300E8227A2EC8D :1043C0000EF004012C0E826FA2EC0EF0200EF86E9F :1043D000F76AF66A04010900F5CF82F4A2EC0EF048 :1043E0000900F5CF82F4A2EC0EF00900F5CF82F4BB :1043F000A2EC0EF00900F5CF82F4A2EC0EF0090059 :10440000F5CF82F4A2EC0EF00900F5CF82F4A2EC15 :104410000EF00900F5CF82F4A2EC0EF00900F5CF02 :1044200082F4A2EC0EF0ACEC0EF0B7EF2AF0835160 :10443000630AD8A4B5EF2AF08451610AD8A4B5EF75 :104440002AF085516C0AD8A4B5EF2AF08651410AAA :104450003FE08651440A1BE08651420AD8B47BEF04 :1044600022F08651350AD8B441EF2CF08651360A35 :10447000D8B496EF2CF08651370AD8B4FFEF2CF061 :104480008651380AD8B45DEF2DF0B5EF2AF00798C1 :10449000079A04017A0E826FA2EC0EF00401780EE6 :1044A000826FA2EC0EF00401640E826FA2EC0EF09B :1044B0000401550E826FA2EC0EF064EF22F00401AD :1044C0004C0E826FA2EC0EF0ACEC0EF0B7EF2AF0BF :1044D0000788079A04017A0E826FA2EC0EF004019D :1044E000410E826FA2EC0EF00401610E826FA2EC0D :1044F0000EF058EF22F00798078A04017A0E826FB7 :10450000A2EC0EF00401420E826FA2EC0EF0040148 :10451000610E826FA2EC0EF058EF22F00101666787 :1045200099EF22F0676799EF22F0686799EF22F020 :10453000696716D001014F67A5EF22F05067A5EF1C :1045400022F05167A5EF22F052670AD00101000E58 :10455000006F000E016F000E026F000E036F12005D :1045600011B80AD00101620E046F010E056F000E32 :10457000066F000E076F09D00101A70E046F020E2F :10458000056F000E066F000E076F66C100F167C170 :1045900001F168C102F169C103F19FEC30F003BF82 :1045A00042EF23F0119A119C0101000E046FA80E36 :1045B000056F550E066F020E076F66C100F167C1E9 :1045C00001F168C102F169C103F166C18AF167C1F5 :1045D0008BF168C18CF169C18DF19FEC30F003BFA4 :1045E0000BD00101000E8A6FA80E8B6F550E8C6FD9 :1045F000020E8D6F118A119C0E0E64EC0BF0E8CF49 :1046000018F10F0E64EC0BF0E8CF19F1100E64EC0A :104610000BF0E8CF1AF1110E64EC0BF0E8CF1BF1B0 :10462000E8EC2FF08AC104F18BC105F18CC106F1D1 :104630008DC107F19FEC30F00782ACEC2FF0E8EC75 :104640002FF00792ACEC2FF08AC100F18BC101F181 :104650008CC102F18DC103F10792ACEC2FF0CC0EAE :10466000046FE00E056F870E066F050E076F9FEC57 :1046700030F000C118F101C119F102C11AF103C1F2 :104680001BF140D013AA47EF23F0138E139A119C0D :10469000119A0101800E006F1A0E016F060E026F53 :1046A000000E036F4FC104F150C105F151C106F175 :1046B00052C107F19FEC30F003AF05D0B4EC31F0FC :1046C000118C119A12000E0E64EC0BF0E8CF18F169 :1046D0000F0E64EC0BF0E8CF19F1100E64EC0BF048 :1046E000E8CF1AF1110E64EC0BF0E8CF1BF14FC1CB :1046F00000F150C101F151C102F152C103F1078231 :10470000ACEC2FF018C100F119C101F11AC102F18E :104710001BC103F112000784BAC166F1BBC167F186 :10472000BCC168F1BDC169F14BC14FF14CC150F141 :104730004DC151F14EC152F157C159F158C15AF111 :10474000079401016667ACEF23F06767ACEF23F0D5 :104750006867ACEF23F0696716D001014F67B8EFC7 :1047600023F05067B8EF23F05167B8EF23F052679A :104770000AD00101000E006F000E016F000E026FE3 :10478000000E036F120011B80AD00101620E046F0F :10479000010E056F000E066F000E076F09D00101B4 :1047A000A70E046F020E056F000E066F000E076F56 :1047B00066C100F167C101F168C102F169C103F18D :1047C0009FEC30F003BF44EF24F00101000E046FB2 :1047D000A80E056F550E066F020E076F66C100F139 :1047E00067C101F168C102F169C103F166C18AF1D3 :1047F00067C18BF168C18CF169C18DF19FEC30F01C :1048000003BF09D00101000E8A6FA80E8B6F550EF1 :104810008C6F020E8D6FE8EC2FF000C104F101C126 :1048200005F102C106F103C107F1000E006FA00EF1 :10483000016F980E026F7B0E036FD0EC30F000C159 :1048400018F101C119F102C11AF103C11BF1000EE7 :10485000006FA00E016F980E026F7B0E036F8AC16E :1048600004F18BC105F18CC106F18DC107F1D0ECCB :1048700030F018C104F119C105F11AC106F11BC1CC :1048800007F19FEC30F012000101A80E006F610EDD :10489000016F000E026F000E036F4FC104F150C193 :1048A00005F151C106F152C107F19FEC30F003AFA1 :1048B0000AD00101A80E006F610E016F000E026F99 :1048C000000E036F00D0C80E006FAF0E016F000E18 :1048D000026F000E036F4FC104F150C105F151C1C9 :1048E00006F152C107F1B0EC30F012000784BAC1F2 :1048F00066F1BBC167F1BCC168F1BDC169F14BC1D3 :104900004FF14CC150F14DC151F14EC152F157C15F :1049100059F158C15AF107940101666797EF24F0E5 :10492000676797EF24F0686797EF24F0696716D000 :1049300001014F67A3EF24F05067A3EF24F0516704 :10494000A3EF24F052670AD00101000E006F000EA1 :10495000016F000E026F000E036F120011B80AD033 :104960000101620E046F010E056F000E066F000E4E :10497000076F09D00101A70E046F020E056F000E2C :10498000066F000E076F66C100F167C101F168C1D3 :1049900002F169C103F19FEC30F003BF59EF25F03C :1049A0000101000E046FA80E056F550E066F020E72 :1049B000076F66C100F167C101F168C102F169C109 :1049C00003F166C18AF167C18BF168C18CF169C1DD :1049D0008DF19FEC30F003BF09D00101000E8A6F0A :1049E000A80E8B6F550E8C6F020E8D6F010E006F2F :1049F000000E016F000E026F000E036F8AC104F1FA :104A00008BC105F18CC106F18DC107F1D0EC30F0FE :104A100018C104F119C105F11AC106F11BC107F152 :104A20003DEC31F02AC182F40401300E8227A2EC61 :104A30000EF02BC182F40401300E8227A2EC0EF09E :104A40002CC182F40401300E8227A2EC0EF02DC19D :104A500082F40401300E8227A2EC0EF02EC182F403 :104A60000401300E8227A2EC0EF02FC182F4040163 :104A7000300E8227A2EC0EF030C182F40401300E19 :104A80008227A2EC0EF031C182F40401300E82279D :104A9000A2EC0EF032C182F40401300E8227A2ECA7 :104AA0000EF033C182F40401300E8227A2EC0EF026 :104AB00012004FC100F150C101F151C102F152C1C8 :104AC00003F101013DEC31F000EC2FF01200040184 :104AD000730E826FA2EC0EF004012C0E826FA2EC1A :104AE0000EF0078462C166F163C167F164C168F1C9 :104AF00065C169F14BC14FF14CC150F14DC151F14C :104B00004EC152F157C159F158C15AF107948DEC79 :104B100025F0ACEC0EF0B7EF2AF066C100F167C1EA :104B200001F168C102F169C103F101013DEC31F00D :104B300000EC2FF00401630E826FA2EC0EF0040172 :104B40002C0E826FA2EC0EF04FC100F150C101F1AA :104B500051C102F152C103F101013DEC31F000EC11 :104B60002FF00401660E826FA2EC0EF004012C0EF1 :104B7000826FA2EC0EF0B4EC31F059C100F15AC1D1 :104B800001F101013DEC31F000EC2FF00401740E55 :104B9000826FA2EC0EF0120010820401530E826F9D :104BA000A2EC0EF004012C0E826FA2EC0EF083C377 :104BB0002AF184C32BF185C32CF186C32DF187C361 :104BC0002EF188C32FF189C330F18AC331F18BC331 :104BD00032F18CC333F1010102EC32F079EC31F0A7 :104BE00000C166F101C167F102C168F103C169F159 :104BF0008EC32AF18FC32BF190C32CF191C32DF1F9 :104C000092C32EF193C32FF194C330F195C331F1C8 :104C100096C332F197C333F1010102EC32F079EC23 :104C200031F000C14FF101C150F102C151F103C196 :104C300052F1F5EC31F099C32FF19AC330F19BC3D7 :104C400031F19CC332F19DC333F1010102EC32F02A :104C500079EC31F000C159F101C15AF18DEC25F028 :104C600004012C0E826FA2EC0EF047EF26F0118E9D :104C70001CA002D01CAE108C1BBE02D01BA4108E38 :104C800003018251520A02E10F8201D00F92825138 :104C9000750A02E1108401D010948251550A02E194 :104CA000108601D010968351310A03E113821384D8 :104CB00002D01392139403018351660A01E056D087 :104CC0000401660E826FA2EC0EF004012C0E826FBE :104CD000A2EC0EF08BEC23F03DEC31F02AC182F413 :104CE0000401300E8227A2EC0EF02BC182F40401E5 :104CF000300E8227A2EC0EF02CC182F40401300E9B :104D00008227A2EC0EF02DC182F40401300E82271E :104D1000A2EC0EF02EC182F40401300E8227A2EC28 :104D20000EF02FC182F40401300E8227A2EC0EF0A7 :104D300030C182F40401300E8227A2EC0EF031C1A2 :104D400082F40401300E8227A2EC0EF032C182F40C :104D50000401300E8227A2EC0EF033C182F404016C :104D6000300E8227A2EC0EF0B5EF2AF011A003D08E :104D700011A401D01084078410B220EF27F010A4F2 :104D800004EF27F0BAC166F1BBC167F1BCC168F19D :104D9000BDC169F1BEC16AF1BFC16BF1C0C16CF1A7 :104DA000C1C16DF1C2C16EF1C3C16FF1C4C170F177 :104DB000C5C171F1C6C172F1C7C173F1C8C174F147 :104DC000C9C175F1CAC176F1CBC177F1CCC178F117 :104DD000CDC179F1CEC17AF1CFC17BF1D0C17CF1E7 :104DE000D1C17DF1D2C17EF1D3C17FF1D4C180F1B7 :104DF000D5C181F1D6C182F1D7C183F1D8C184F187 :104E0000D9C185F10CEF27F062C166F163C167F18A :104E100064C168F165C169F1BAC186F1BBC187F1AE :104E2000BCC188F1BDC189F14BC14FF14CC150F1FA :104E30004DC151F14EC152F157C159F158C15AF10A :104E400007940FA042EF27F0010196672FEF27F09C :104E500097672FEF27F098672FEF27F0996733EFC9 :104E600027F042EF27F08EEC22F096C104F197C1B3 :104E700005F198C106F199C107F19FEC30F003BF2D :104E80007BEF2AF08EEC22F00101000E046F000E81 :104E9000056F010E066F000E076FD0EC30F011A009 :104EA0002AD011A228D03DEC31F0296701D005D0DD :104EB00004012D0E826FA2EC0EF030C182F40401C9 :104EC000300E8227A2EC0EF031C182F40401300EC4 :104ED0008227A2EC0EF032C182F40401300E822748 :104EE000A2EC0EF033C182F40401300E8227A2EC52 :104EF0000EF0ACEC0EF012A8C5D012981DC01EF03A :104F00001E3A1E42070E1E1600011E50000AD8B49B :104F10000EEF28F000011E50010AD8B49AEF27F0D6 :104F200000011E50020AD8B498EF27F040EF28F095 :104F300040EF28F0B4EC31F02EC001F12FC000F1A9 :104F4000D89001330033D890013300330101630E50 :104F5000046F000E056F000E066F000E076FD0EC99 :104F600030F0280E046F000E056F000E066F000E65 :104F7000076F9FEC30F000C131F0B4EC31F02CC081 :104F800001F1019F019D2DC000F10101A40E046FEC :104F9000000E056F000E066F000E076FD0EC30F0AC :104FA00000C130F000C104F101C105F102C106F1F8 :104FB00003C107F1640E006F000E016F000E026F57 :104FC000000E036F9FEC30F0050E046F000E056FAE :104FD000000E066F000E076FD0EC30F000C104F138 :104FE00001C105F102C106F103C107F1B4EC31F0D2 :104FF00031C000F19FEC30F000C132F032C0E8FF68 :10500000050F315C03E78A8440EF28F032C0E8FFE7 :105010000A0F315C01E68A9440EF28F000C124F1C8 :1050200001C125F102C126F103C127F1B4EC31F031 :10503000BAEC31F01D501F0BE8CF00F10101640EF6 :10504000046F000E056F000E066F000E076FB0ECC8 :1050500030F024C104F125C105F126C106F127C1B4 :1050600007F19FEC30F003BF02D08A9401D08A840C :1050700024C100F125C101F126C102F127C103F1CC :10508000B7EF2AF000C124F101C125F102C126F1D8 :1050900003C127F110AE4DD0109E00C108F101C12F :1050A00009F102C10AF103C10BF13DEC31F030C14D :1050B000E2F131C1E3F132C1E4F133C1E5F108C1FC :1050C00000F109C101F10AC102F10BC103F10101B3 :1050D0006C0E046F070E056F000E066F000E076F53 :1050E0009FEC30F003BF04D00101550EE66F1CD0D9 :1050F00008C100F109C101F10AC102F10BC103F1BC :105100000101A40E046F060E056F000E066F000E5F :10511000076F9FEC30F003BF04D001017F0EE66FF4 :1051200003D00101FF0EE66F1F8E11AE7BEF2AF058 :10513000119E24C100F125C101F126C102F127C150 :1051400003F111A005D011A203D00FB07BEF2AF01C :1051500010A4B2EF28F00401750E826FA2EC0EF0DD :10516000B7EF28F00401720E826FA2EC0EF004017A :105170002C0E826FA2EC0EF03DEC31F02967C6EFE9 :1051800028F00401200E826FC9EF28F004012D0ED3 :10519000826FA2EC0EF030C182F40401300E82273F :1051A000A2EC0EF031C182F40401300E8227A2EC91 :1051B0000EF004012E0E826FA2EC0EF032C182F4CA :1051C0000401300E8227A2EC0EF033C182F40401F8 :1051D000300E8227A2EC0EF004016D0E826FA2EC5D :1051E0000EF004012C0E826FA2EC0EF04FC100F104 :1051F00050C101F151C102F152C103F101013DEC75 :1052000031F000EC2FF00401480E826FA2EC0EF09A :1052100004017A0E826FA2EC0EF004012C0E826F54 :10522000A2EC0EF066C100F167C101F168C102F1A4 :1052300069C103F101013DEC31F000EC2FF00401F4 :10524000630E826FA2EC0EF004012C0E826FA2ECB2 :105250000EF066C100F167C101F168C102F169C1D8 :1052600003F101010A0E046F000E056F000E066FB8 :10527000000E076FB0EC30F0000E046F120E056FD9 :10528000000E066F000E076FD0EC30F03DEC31F0F1 :105290002AC182F40401300E8227A2EC0EF02BC149 :1052A00082F40401300E8227A2EC0EF02CC182F4AD :1052B0000401300E8227A2EC0EF02DC182F404010D :1052C000300E8227A2EC0EF02EC182F40401300EC3 :1052D0008227A2EC0EF02FC182F40401300E822747 :1052E000A2EC0EF030C182F40401300E8227A2EC51 :1052F0000EF004012E0E826FA2EC0EF031C182F48A :105300000401300E8227A2EC0EF032C182F40401B7 :10531000300E8227A2EC0EF033C182F40401300E6D :105320008227A2EC0EF00401730E826FA2EC0EF045 :1053300004012C0E826FA2EC0EF0B4EC31F059C1D6 :1053400000F15AC101F1E1EC2BF013A2F7EF29F0C3 :1053500004012C0E826FA2EC0EF086C166F187C1AB :1053600067F188C168F189C169F18EEC22F0010111 :10537000000E046F000E056F010E066F000E076F22 :10538000D0EC30F03DEC31F02967CCEF29F004018E :10539000200E826FCFEF29F004012D0E826FA2EC58 :1053A0000EF030C182F40401300E8227A2EC0EF020 :1053B00031C182F40401300E8227A2EC0EF0040108 :1053C0002E0E826FA2EC0EF032C182F40401300E78 :1053D0008227A2EC0EF033C182F40401300E822742 :1053E000A2EC0EF004016D0E826FA2EC0EF0030130 :1053F0008351460A01E007D004012C0E826FA2EC13 :105400000EF076EC24F013A42AEF2AF004012C0EFF :10541000826FA2EC0EF013AC18EF2AF00401500ECC :10542000826FA2EC0EF0139C1398139A2AEF2AF0C5 :1054300013AE25EF2AF00401460E826FA2EC0EF0A7 :10544000139E1398139A2AEF2AF00401530E826FC9 :10545000A2EC0EF038B041EF2AF004012C0E826F5E :10546000A2EC0EF08BB03CEF2AF00401440E826FE8 :10547000A2EC0EF041EF2AF00401530E826FA2EC71 :105480000EF00FB247EF2AF00FA079EF2AF00401D7 :105490002C0E826FA2EC0EF0200EF86EF76AF66A00 :1054A00004010900F5CF82F4A2EC0EF00900F5CF5B :1054B00082F4A2EC0EF00900F5CF82F4A2EC0EF01B :1054C0000900F5CF82F4A2EC0EF00900F5CF82F4CA :1054D000A2EC0EF00900F5CF82F4A2EC0EF0090068 :1054E000F5CF82F4A2EC0EF00900F5CF82F4A2EC25 :1054F0000EF0ACEC0EF00F90109E1298B7EF2AF061 :105500000401630E826FA2EC0EF004012C0E826F78 :10551000A2EC0EF0BDEC2AF004012C0E826FA2EC7E :105520000EF030EC2BF004012C0E826FA2EC0EF08A :10553000ACEC2BF004012C0E826FA2EC0EF00101FA :10554000F80E006FCD0E016F660E026F030E036F33 :10555000D2EC2AF004012C0E826FA2EC0EF0C2EC09 :105560002BF0ACEC0EF0B7EF2AF0ACEC0EF0030130 :10557000C26B07901092C6EF2DF0D8900E0E64EC1F :105580000BF0E8CF00F10F0E64EC0BF0E8CF01F167 :10559000100E64EC0BF0E8CF02F1110E64EC0BF08E :1055A000E8CF03F10101000E046F000E056F010E3C :1055B000066F000E076FD0EC30F03DEC31F02AC1E1 :1055C00082F40401300E8227A2EC0EF02BC182F48B :1055D0000401300E8227A2EC0EF02CC182F40401EB :1055E000300E8227A2EC0EF02DC182F40401300EA1 :1055F0008227A2EC0EF02EC182F40401300E822725 :10560000A2EC0EF02FC182F40401300E8227A2EC2E :105610000EF030C182F40401300E8227A2EC0EF0AD :1056200031C182F40401300E8227A2EC0EF0040195 :105630002E0E826FA2EC0EF032C182F40401300E05 :105640008227A2EC0EF033C182F40401300E8227CF :10565000A2EC0EF004016D0E826FA2EC0EF01200AF :10566000120E64EC0BF0E8CF00F1130E64EC0BF0BB :10567000E8CF01F1140E64EC0BF0E8CF02F1150E47 :1056800064EC0BF0E8CF03F101010A0E046F000E89 :10569000056F000E066F000E076FB0EC30F0000EC5 :1056A000046F120E056F000E066F000E076FD0EC30 :1056B00030F03DEC31F02AC182F40401300E822733 :1056C000A2EC0EF02BC182F40401300E8227A2EC72 :1056D0000EF02CC182F40401300E8227A2EC0EF0F1 :1056E0002DC182F40401300E8227A2EC0EF02EC1EF :1056F00082F40401300E8227A2EC0EF02FC182F456 :105700000401300E8227A2EC0EF030C182F40401B5 :10571000300E8227A2EC0EF004012E0E826FA2EC56 :105720000EF031C182F40401300E8227A2EC0EF09B :1057300032C182F40401300E8227A2EC0EF033C194 :1057400082F40401300E8227A2EC0EF00401730EE5 :10575000826FA2EC0EF012000A0E64EC0BF0E8CFA0 :1057600000F10B0E64EC0BF0E8CF01F10C0E64ECD1 :105770000BF0E8CF02F10D0E64EC0BF0E8CF03F173 :10578000E1EF2BF0060E64EC0BF0E8CF00F1070E12 :1057900064EC0BF0E8CF01F1080E64EC0BF0E8CFFD :1057A00002F1090E64EC0BF0E8CF03F1E1EF2BF00E :1057B0000101B4EC31F0078457C100F158C101F187 :1057C00007940101E80E046F800E056F000E066F4E :1057D000000E076FB0EC30F0000E046F040E056F82 :1057E000000E066F000E076FD0EC30F0880E046FCD :1057F000130E056F000E066F000E076F9FEC30F062 :105800000A0E046F000E056F000E066F000E076F84 :10581000D0EC30F03DEC31F00101296715EF2CF0B0 :105820000401200E826F18EF2CF004012D0E826F00 :10583000A2EC0EF030C182F40401300E8227A2ECFB :105840000EF031C182F40401300E8227A2EC0EF07A :1058500032C182F40401300E8227A2EC0EF0040162 :105860002E0E826FA2EC0EF033C182F40401300ED2 :105870008227A2EC0EF00401430E826FA2EC0EF020 :10588000120087C32AF188C32BF189C32CF18AC384 :105890002DF18BC32EF18CC32FF18DC330F18EC34C :1058A00031F190C332F191C333F10101296B02EC64 :1058B00032F079EC31F00101000E046F000E056F3B :1058C000010E066F000E076FB0EC30F00E0E0C6E7E :1058D00000C10BF04DEC0BF00F0E0C6E01C10BF084 :1058E0004DEC0BF0100E0C6E02C10BF04DEC0BF0FA :1058F000110E0C6E03C10BF04DEC0BF004017A0E8F :10590000826FA2EC0EF004012C0E826FA2EC0EF05E :105910000401350E826FA2EC0EF004012C0E826F92 :10592000A2EC0EF0BDEC2AF064EF22F087C32AF15E :1059300088C32BF189C32CF18AC32DF18BC32EF1BF :105940008CC32FF18DC330F18EC331F190C332F18E :1059500091C333F10101296B02EC32F079EC31F0A3 :10596000880E046F130E056F000E066F000E076F92 :10597000A4EC30F0000E046F040E056F000E066FED :10598000000E076FB0EC30F00101E80E046F800EDE :10599000056F000E066F000E076FD0EC30F00A0E98 :1059A0000C6E00C10BF04DEC0BF00B0E0C6E01C138 :1059B0000BF04DEC0BF00C0E0C6E02C10BF04DEC2D :1059C0000BF00D0E0C6E03C10BF04DEC0BF004014F :1059D0007A0E826FA2EC0EF004012C0E826FA2EC04 :1059E0000EF00401360E826FA2EC0EF004012C0EB4 :1059F000826FA2EC0EF0ACEC2BF064EF22F087C3C8 :105A00002AF188C32BF189C32CF18AC32DF18BC3F2 :105A10002EF18CC32FF18DC330F18FC331F190C3C0 :105A200032F191C333F1010102EC32F079EC31F043 :105A3000000E046F120E056F000E066F000E076F4A :105A4000B0EC30F001010A0E046F000E056F000E7D :105A5000066F000E076FD0EC30F0120E0C6E00C116 :105A60000BF04DEC0BF0130E0C6E01C10BF04DEC76 :105A70000BF0140E0C6E02C10BF04DEC0BF0150E7A :105A80000C6E03C10BF04DEC0BF004017A0E826F2B :105A9000A2EC0EF004012C0E826FA2EC0EF00401B9 :105AA000370E826FA2EC0EF004012C0E826FA2EC76 :105AB0000EF030EC2BF064EF22F087C32AF188C39C :105AC0002BF189C32CF18AC32DF18BC32EF18CC32A :105AD0002FF18DC330F18EC331F190C332F191C3F8 :105AE00033F10101296B02EC32F079EC31F0880ED0 :105AF000046F130E056F000E066F000E076FA4EC07 :105B000030F0000E046F040E056F000E066F000EDD :105B1000076FB0EC30F00101E80E046F800E056FE6 :105B2000000E066F000E076FD0EC30F0060E0C6E04 :105B300000C10BF04DEC0BF0070E0C6E01C10BF029 :105B40004DEC0BF0080E0C6E02C10BF04DEC0BF09F :105B5000090E0C6E03C10BF04DEC0BF004017A0E34 :105B6000826FA2EC0EF004012C0E826FA2EC0EF0FC :105B70000401380E826FA2EC0EF004012C0E826F2D :105B8000A2EC0EF0C2EC2BF064EF22F007A839EF84 :105B90002EF00101800E006F1A0E016F060E026FCB :105BA000000E036F4BC104F14CC105F14DC106F16C :105BB0004EC107F19FEC30F003BF7FEF2EF0FAECFF :105BC0002EF04BC100F14CC101F14DC102F14EC1AB :105BD00003F10782ACEC2FF018C104F119C105F1F3 :105BE0001AC106F11BC107F1F80E006FCD0E016F4F :105BF000660E026F030E036F9FEC30F00E0E0C6EFC :105C000000C10BF04DEC0BF00F0E0C6E01C10BF050 :105C10004DEC0BF0100E0C6E02C10BF04DEC0BF0C6 :105C2000110E0C6E03C10BF04DEC0BF0078401015B :105C3000B4EC31F057C100F158C101F107940A0EDC :105C40000C6E00C10BF04DEC0BF00B0E0C6E01C195 :105C50000BF04DEC0BF00C0E0C6E02C10BF04DEC8A :105C60000BF00D0E0C6E03C10BF04DEC0BF07FEF43 :105C70002EF007AA7FEF2EF007840101B4EC31F07B :105C800057C100F158C101F10794060E0C6E00C116 :105C90000BF04DEC0BF0070E0C6E01C10BF04DEC50 :105CA0000BF0080E0C6E02C10BF04DEC0BF0090E60 :105CB0000C6E03C10BF04DEC0BF0078462C100F1D8 :105CC00063C101F164C102F165C103F10794120ED1 :105CD0000C6E00C10BF04DEC0BF0130E0C6E01C1FD :105CE0000BF04DEC0BF0140E0C6E02C10BF04DECF2 :105CF0000BF0150E0C6E03C10BF04DEC0BF007987A :105D0000079A0401805181197F0B0DE09EA8FED7F0 :105D100014EE00F081517F0BE126E750812B0F013B :105D2000AD6E81EF2EF005012F51000AD8B4C2EFFD :105D30002EF081BAA7EF2EF015B2C2EF2EF00501BA :105D40002F51010AD8B4C0EF2EF0B9EF2EF00501A3 :105D50002F51000AD8B4ABEF39F005012F51010AD9 :105D6000D8B4C0EF2EF000011650050AD8B4ABEF3E :105D700039F081B8C2EF2EF02FEC33F0D5EC33F0D0 :105D800044EC39F0D0EF0DF018C100F119C101F168 :105D90001AC102F11BC103F1000E046F000E056F62 :105DA000010E066F000E076FD0EC30F029A1EFEF67 :105DB0002EF02051D8B4EFEF2EF018C100F119C128 :105DC00001F11AC102F11BC103F1000E046F000EB4 :105DD000056F0A0E066F000E076FD0EC30F0120050 :105DE000010104510013055101130651021307511B :105DF000031312000101186B196B1A6B1B6B120055 :105E00002AC182F40401300E8227A2EC0EF02BC1CD :105E100082F40401300E8227A2EC0EF02CC182F431 :105E20000401300E8227A2EC0EF02DC182F4040191 :105E3000300E8227A2EC0EF02EC182F40401300E47 :105E40008227A2EC0EF02FC182F40401300E8227CB :105E5000A2EC0EF030C182F40401300E8227A2ECD5 :105E60000EF031C182F40401300E8227A2EC0EF054 :105E700032C182F40401300E8227A2EC0EF033C14D :105E800082F40401300E8227A2EC0EF012002FC122 :105E900082F40401300E8227A2EC0EF030C182F4AD :105EA0000401300E8227A2EC0EF031C182F404010D :105EB000300E8227A2EC0EF032C182F40401300EC3 :105EC0008227A2EC0EF033C182F40401300E822747 :105ED000A2EC0EF01200060E216E060E226E060EC9 :105EE000236E212E71EF2FF0222E71EF2FF0232E33 :105EF00071EF2FF08B84020E216E020E226E020EC5 :105F0000236E212E81EF2FF0222E81EF2FF0232EF2 :105F100081EF2FF08B941200FF0E226E22C023F02F :105F2000030E216E8B84212E92EF2FF0030E216E33 :105F3000232E92EF2FF08B9422C023F0030E216EBC :105F4000212EA0EF2FF0030E216E233EA0EF2FF0A5 :105F5000222E8EEF2FF012000101005305E10153B4 :105F600003E1025301E1002B6FEC30F0B4EC31F0AF :105F70003951006F3A51016F420E046F4B0E056F9D :105F8000000E066F000E076FB0EC30F000C104F198 :105F900001C105F102C106F103C107F118C100F109 :105FA00019C101F11AC102F11BC103F107B2DDEF02 :105FB0002FF0A4EC30F0DFEF2FF09FEC30F000C1B9 :105FC00018F101C119F102C11AF103C11BF112004C :105FD000B4EC31F059C100F15AC101F1060E64EC84 :105FE0000BF0E8CF04F1070E64EC0BF0E8CF05F1FD :105FF000080E64EC0BF0E8CF06F1090E64EC0BF030 :10600000E8CF07F19FEC30F000C124F101C125F188 :1060100002C126F103C127F1290E046F000E056F9E :10602000000E066F000E076FB0EC30F0EE0E046F3E :10603000430E056F000E066F000E076FA4EC30F0E4 :1060400024C104F125C105F126C106F127C107F1DC :10605000B0EC30F000C11CF101C11DF102C11EF114 :1060600003C11FF1120E64EC0BF0E8CF04F1130E24 :1060700064EC0BF0E8CF05F1140E64EC0BF0E8CF04 :1060800006F1150E64EC0BF0E8CF07F10D0E006F72 :10609000000E016F000E026F000E036FB0EC30F0C7 :1060A000180E046F000E056F000E066F000E076FCE :1060B000D0EC30F01CC104F11DC105F11EC106F188 :1060C0001FC107F1A4EC30F06A0E046F2A0E056FB1 :1060D000000E066F000E076F9FEC30F01200BF0E2F :1060E000FA6E200E3A6F396BD890003701370237BD :1060F0000337D8B080EF30F03A2F75EF30F0390722 :106100003A070353D8B412000331070B80093F6FDD :1061100003390F0B010F396F80EC5FF0406F3905C9 :1061200080EC5FF0405D405F396B3F33D8B039277A :1061300039333FA995EF30F0405139271200010162 :10614000D9EC31F0D8B01200010103510719346FB6 :106150009CEC31F0D8900751031934AF800F120036 :106160000101346BC0EC31F0D8A0D6EC31F0D8B0DE :106170001200ABEC31F0B4EC31F01F0E366FECECEA :1061800031F00B35D8B09CEC31F0D8A00335D8B045 :106190001200362FBFEF30F034B1C3EC31F01200F3 :1061A0000101346B04510511061107110008D8A034 :1061B000C0EC31F0D8A0D6EC31F0D8B01200086BAA :1061C000096B0A6B0B6BECEC31F01F0E366FECECCD :1061D00031F007510B5DD8A4FAEF30F006510A5D9B :1061E000D8A4FAEF30F00551095DD8A4FAEF30F0E9 :1061F0000451085DD8A00DEF31F00451085F05513E :10620000D8A0053D095F0651D8A0063D0A5F075199 :10621000D8A0073D0B5FD8900081362FE7EF30F014 :1062200034B1C3EC31F0346BC0EC31F0D890F0EC09 :1062300031F007510B5DD8A42AEF31F006510A5D09 :10624000D8A42AEF31F00551095DD8A42AEF31F026 :106250000451085DD8A039EF31F0003F39EF31F03B :10626000013F39EF31F0023F39EF31F0032BD8B461 :10627000120034B1C3EC31F012000101346BC0ECF8 :1062800031F0D8B01200F5EC31F0200E366F003747 :1062900001370237033711EE33F00A0E376FE73656 :1062A0000A0EE75CD8B0E76EE552372F4FEF31F0BA :1062B000362F47EF31F034B12981D8901200F5EC38 :1062C00031F0200E366F003701370237033711EEF9 :1062D00033F00A0E376FE7360A0EE75CD8B0E76E88 :1062E000E552372F6BEF31F0362F63EF31F0D89056 :1062F000120001010A0E346F200E366F11EE29F0E4 :106300003451376F0A0ED890E652D8B0E726E732FC :10631000372F84EF31F00333023301330033362F4C :106320007EEF31F0E750FF0FD8A00335D8B0120050 :1063300029B1C3EC31F01200045100270551D8B047 :10634000053D01270651D8B0063D02270751D8B0B8 :10635000073D032712000051086F0151096F0251D8 :106360000A6F03510B6F12000101006B016B026B8E :10637000036B12000101046B056B066B076B1200C7 :106380000335D8A012000351800B001F011F021F0C :10639000031F003FD3EF31F0013FD3EF31F0023F55 :1063A000D3EF31F0032B342B032512000735D8A08F :1063B00012000751800B041F051F061F071F043F13 :1063C000E9EF31F0053FE9EF31F0063FE9EF31F059 :1063D000072B342B0725120000370137023703370C :1063E000083709370A370B3712000101296B2A6B6E :1063F0002B6B2C6B2D6B2E6B2F6B306B316B326BD1 :10640000336B120001012A510F0B2A6F2B510F0B16 :106410002B6F2C510F0B2C6F2D510F0B2D6F2E51FD :106420000F0B2E6F2F510F0B2F6F30510F0B306F43 :1064300031510F0B316F32510F0B326F33510F0B44 :10644000336F120000C124F101C125F102C126F110 :1064500003C127F104C100F105C101F106C102F138 :1064600007C103F124C104F125C105F126C106F1DC :1064700027C107F1120000012550FE0AD8B449EFE8 :1064800032F000012550FD0AD8B449EF32F089847A :1064900001D08994000EC76E220EC66E050EE82E3E :1064A000FED7120000012550FE0AD8B460EF32F08A :1064B00000012550FD0AD8B460EF32F0899401D074 :1064C0008984050EE82EFED712003BEC32F0000165 :1064D0002550FD0AD8B478EF32F09E96C69E000E85 :1064E000C96EFF0E9EB602D0E82EFCD781EF32F0C7 :1064F0009E96C69E010EC96EFF0E9EB602D0E82E75 :10650000FCD79E96C69E000EC96EFF0E9EB602D0A8 :10651000E82EFCD7C9CFAFF59E96C69E000EC96E79 :10652000FF0E9EB602D0E82EFCD7C9CFB0F59E96DE :10653000C69E000EC96EFF0E9EB602D0E82EFCD796 :10654000C9CFB1F59E96C69E000EC96EFF0E9EB6CF :1065500002D0E82EFCD7C9CFB2F59E96C69E000E9B :10656000C96EFF0E9EB602D0E82EFCD7C9CFB3F598 :106570009E96C69E000EC96EFF0E9EB602D0E82EF5 :10658000FCD7C9CFB4F59E96C69E000EC96EFF0E0D :106590009EB602D0E82EFCD7C9CFB5F552EC32F04A :1065A00012003BEC32F000012550FD0AD8B4E4EFB4 :1065B00032F09E96C69E800EC96EFF0E9EB602D029 :1065C000E82EFCD7EDEF32F09E96C69E810EC96E86 :1065D000FF0E9EB602D0E82EFCD79E96C69EAFC593 :1065E000C9FFFF0E9EB602D0E82EFCD79E96C69E2F :1065F000B0C5C9FFFF0E9EB602D0E82EFCD79E960E :10660000C69EB1C5C9FFFF0E9EB602D0E82EFCD7CC :106610009E96C69EB2C5C9FFFF0E9EB602D0E82E5A :10662000FCD79E96C69EB3C5C9FFFF0E9EB602D08C :10663000E82EFCD79E96C69EB4C5C9FFFF0E9EB637 :1066400002D0E82EFCD79E96C69EB5C5C9FFFF0EA8 :106650009EB602D0E82EFCD752EC32F012003BEC92 :1066600032F000012550FD0AD8B442EF33F09E9677 :10667000C69E070EC96EFF0E9EB602D0E82EFCD74E :106680004BEF33F09E96C69E090EC96EFF0E9EB666 :1066900002D0E82EFCD79E96C69E000EC96EFF0E55 :1066A0009EB602D0E82EFCD7C9CFAFF59E96C69E07 :1066B000000EC96EFF0E9EB602D0E82EFCD7C9CFE1 :1066C000B0F59E96C69E000EC96EFF0E9EB602D015 :1066D000E82EFCD7C9CFB1F59E96C69E000EC96EB6 :1066E000FF0E9EB602D0E82EFCD7C9CFB2F552EC11 :1066F00032F03BEC32F09E96C69E26C0C9FFFF0EDC :106700009EB602D0E82EFCD79E96C69E000EC96E9D :10671000FF0E9EB602D0E82EFCD7C9CFB6F552ECDC :1067200032F012003BEC32F000012550FD0AD8B4E3 :10673000A5EF33F09E96C69E870EC96EFF0E9EB6DD :1067400002D0E82EFCD7AEEF33F09E96C69E890E9F :10675000C96EFF0E9EB602D0E82EFCD79E96C69E4E :10676000000EC96EFF0E9EB602D0E82EFCD79E9694 :10677000C69E800EC96EFF0E9EB602D0E82EFCD7D4 :106780009E96C69E800EC96EFF0E9EB602D0E82E63 :10679000FCD79E96C69E800EC96EFF0E9EB602D096 :1067A000E82EFCD752EC32F0120000012550FE0A10 :1067B000D8B4E4EF33F000012550FD0AD8B4FBEF64 :1067C00033F02FEC33F012003BEC32F09E96C69E75 :1067D0008F0EC96EFF0E9EB602D0E82EFCD79E9695 :1067E000C69E000EC96EFF0E9EB602D0E82EFCD7E4 :1067F00052EC32F012003BEC32F09E96C69E8E0EAA :10680000C96EFF0E9EB602D0E82EFCD79E96C69E9D :10681000000EC96EFF0E9EB602D0E82EFCD752ECD9 :1068200032F0120000012550FE0AD8B44BEF34F0CC :1068300000012550FD0AD8B478EF34F03BEC32F07B :106840009E96C69E27C0C9FFFF0E9EB602D0E82EB8 :10685000FCD79E96C69E010EC96EFF0E9EB602D054 :10686000E82EFCD752EC32F03BEC32F09E96C69EFE :10687000910EC96EFF0E9EB602D0E82EFCD79E96F2 :10688000C69EA50EC96EFF0E9EB602D0E82EFCD79E :1068900052EC32F012003BEC32F09E96C69E27C0BE :1068A000C9FFFF0E9EB602D0E82EFCD79E96C69E6C :1068B000450EC96EFF0E9EB602D0E82EFCD752ECF4 :1068C00032F03BEC32F09E96C69E8F0EC96EFF0EE4 :1068D0009EB602D0E82EFCD79E96C69E000EC96ECC :1068E000FF0E9EB602D0E82EFCD752EC32F012001A :1068F0003BEC32F09E96C69E27C0C9FFFF0E9EB6A7 :1069000002D0E82EFCD79E96C69E3D0EC96EFF0EA5 :106910009EB602D0E82EFCD752EC32F03BEC32F0BF :106920009E96C69E8F0EC96EFF0E9EB602D0E82EB2 :10693000FCD79E96C69EA90EC96EFF0E9EB602D0CB :10694000E82EFCD752EC32F012003BEC32F09E966F :10695000C69E27C0C9FFFF0E9EB602D0E82EFCD708 :106960009E96C69E810EC96EFF0E9EB602D0E82E80 :10697000FCD752EC32F012003BEC32F09E96C69EF1 :1069800027C0C9FFFF0E9EB602D0E82EFCD79E9608 :10699000C69E010EC96EFF0E9EB602D0E82EFCD731 :1069A00052EC32F012003BEC32F09E96C69E910EF5 :1069B000C96EFF0E9EB602D0E82EFCD79E96C69EEC :1069C000A50EC96EFF0E9EB602D0E82EFCD752EC83 :1069D00032F012003BEC32F09E96C69E910EC96ECC :1069E000FF0E9EB602D0E82EFCD79E96C69E000EE5 :1069F000C96EFF0E9EB602D0E82EFCD752EC32F0E4 :106A000012000501256B266B276B286B899A400EB7 :106A1000C76E200EC66E9E96C69E030EC96EFF0EF2 :106A20009EB602D0E82EFCD79E96C69E27C5C9FF0B :106A3000FF0E9EB602D0E82EFCD79E96C69E26C5B7 :106A4000C9FFFF0E9EB602D0E82EFCD79E96C69ECA :106A500025C5C9FFFF0E9EB602D0E82EFCD79E9634 :106A6000C69EC952FF0E9EB602D0E82EFCD7898A78 :106A70000F01C950FF0A01E1120005012E51130A4E :106A800005E005012E51170A0CE012000501F00E79 :106A9000256FFF0E266F0F0E276F000E286F5AEF1F :106AA00035F00501F00E256FFF0E266FFF0E276FE4 :106AB000000E286F899A400EC76E200EC66E9E96F5 :106AC000C69E030EC96EFF0E9EB602D0E82EFCD7FE :106AD0009E96C69E27C5C9FFFF0E9EB602D0E82E21 :106AE000FCD79E96C69E26C5C9FFFF0E9EB602D055 :106AF000E82EFCD79E96C69E25C5C9FFFF0E9EB602 :106B000002D0E82EFCD79E96C69EC952FF0E9EB6B6 :106B100002D0E82EFCD7898A0F01C950FF0A1DE078 :106B200005012E51130A05E005012E51170A0BE04D :106B300012000501000E256F000E266F100E276F44 :106B4000000E286F12000501000E256F000E266F43 :106B5000000E276F010E286F12000501256B266BB2 :106B6000276B286B05012E51130A05E005012E51F4 :106B7000170A0CE012000501000E216F000E226FB3 :106B8000080E236F000E246FCFEF35F00501000EC5 :106B9000216F000E226F800E236F000E246F21C51F :106BA00000F122C501F123C502F124C503F125C579 :106BB00004F126C505F127C506F128C507F1F0EC5B :106BC0002EF000C125F501C126F502C127F503C14C :106BD00028F5899A400EC76E200EC66E9E96C69EF8 :106BE000030EC96EFF0E9EB602D0E82EFCD79E960D :106BF000C69E27C5C9FFFF0E9EB602D0E82EFCD761 :106C00009E96C69E26C5C9FFFF0E9EB602D0E82EF0 :106C1000FCD79E96C69E25C5C9FFFF0E9EB602D024 :106C2000E82EFCD79E96C69EC952FF0E9EB602D095 :106C3000E82EFCD7898AC950FF0A08E104C125F56E :106C400005C126F506C127F507C128F5D89005012D :106C500024332333223321332151F00B216F0501DB :106C600021673AEF36F022673AEF36F023673AEFC2 :106C700036F02467CFEF35F00501100E2527E86ABE :106C80002623E86A2723E86A28231200E86A050118 :106C90002E51130A06E005012E51170A0BE0020ED1 :106CA000120005012851000A03E12751F00B07E00B :106CB000010E120005012851000A01E0010E120028 :106CC00029C500F12AC501F12BC502F12CC503F13C :106CD00025C504F126C505F127C506F128C507F12C :106CE0009FEC30F003BF120046EC36F0D8A4D8EF8A :106CF00036F0899A400EC76E200EC66E9E96C69ECE :106D0000060EC96EFF0E9EB602D0E82EFCD7898A09 :106D1000899A9E96C69E020EC96EFF0E9EB602D03E :106D2000E82EFCD79E96C69E27C5C9FFFF0E9EB6CD :106D300002D0E82EFCD79E96C69E26C5C9FFFF0E40 :106D40009EB602D0E82EFCD79E96C69E25C5C9FFEA :106D5000FF0E9EB602D0E82EFCD79E96C69E000E71 :106D6000C96EFF0E9EB602D0E82EFCD7898A899A9A :106D70009E96C69E050EC96EFF0E9EB602D0E82EE8 :106D8000FCD79E96C69EC952FF0E9EB602D0E82E34 :106D9000FCD7C9B0C1EF36F0898A0501100E25274E :106DA000E86A2623E86A2723E86A282360EF36F09A :106DB0001200899A400EC76E200EC66E9E96C69E21 :106DC000060EC96EFF0E9EB602D0E82EFCD7898A49 :106DD000899A9E96C69EC70EC96EFF0E9EB602D0B9 :106DE000E82EFCD7898A0501256B266B276B286B5B :106DF0001200899A400EC76E200EC66E9E96C69EE1 :106E0000050EC96EFF0E9EB602D0E82EFCD79E96E8 :106E1000C69EC952FF0E9EB602D0E82EFCD7C9CF3F :106E200037F5898A1200899A400EC76E200EC66E09 :106E30009E96C69EB90EC96EFF0E9EB602D0E82E73 :106E4000FCD7898A1200899A400EC76E200EC66E42 :106E50009E96C69EAB0EC96EFF0E9EB602D0E82E61 :106E6000FCD7898AFF0EE82EFED7120046EC36F0DA :106E7000D8A41200899A400EC76E200EC66E9E9648 :106E8000C69E030EC96EFF0E9EB602D0E82EFCD73A :106E90009E96C69E27C5C9FFFF0E9EB602D0E82E5D :106EA000FCD79E96C69E26C5C9FFFF0E9EB602D091 :106EB000E82EFCD79E96C69E25C5C9FFFF0E9EB63E :106EC00002D0E82EFCD79E96C69EC952FF0E9EB6F3 :106ED00002D0E82EFCD7898A0F01C950FF0AD8A436 :106EE000B5EF38F00501FE0E376F0501FF0E536F49 :106EF000FF0E546FFF0E556FFF0E566F15A6379994 :106F0000158665EC32F0AFC538F5B0C539F5B1C5B9 :106F10003AF5B2C53BF5B3C53CF5B4C53DF5B5C5CD :106F20003EF50784BAC166F1BBC167F1BCC168F127 :106F3000BDC169F14BC14FF14CC150F14DC151F18F :106F40004EC152F157C159F158C15AF100011650C2 :106F5000010AD8B4BAEF37F000011650020AD8B4CB :106F6000DFEF37F000011650040AD8B404EF38F010 :106F7000B5EF38F00501476B486B496B4A6B05016B :106F80004B6B4C6B4D6B4E6B05014F6B506B516BEC :106F9000526B8BA0379B8EEC22F000C1DAF101C15D :106FA000DBF102C1DCF103C1DDF100C13FF501C13C :106FB00040F502C141F503C142F523EF38F0050168 :106FC000476B486B496B4A6B05014B6B4C6B4D6BC8 :106FD0004E6B05014F6B506B516B526B8EEC22F078 :106FE00000C1DAF101C1DBF102C1DCF103C1DDF165 :106FF0008BEC23F000C147F501C148F502C149F50A :1070000003C14AF5B5EF38F0379BDAC13FF5DBC174 :1070100040F5DCC141F5DDC142F58EEC22F000C146 :107020004BF501C14CF502C14DF503C14EF58BEC9A :1070300023F000C14FF501C150F502C151F503C164 :1070400052F523EF38F0050161672EEF38F06267E3 :107050002EEF38F063672EEF38F0646732EF38F0C8 :1070600047EF38F0DAC100F1DBC101F1DCC102F118 :10707000DDC103F161C504F162C505F163C506F127 :1070800064C507F19FEC30F003BFB5EF38F059C18C :1070900043F55AC144F5B9C545F50501110E326FE6 :1070A000899A400EC76E200EC66E9E96C69E060E2C :1070B000C96EFF0E9EB602D0E82EFCD7898A899A47 :1070C0009E96C69E020EC96EFF0E9EB602D0E82E98 :1070D000FCD79E96C69E27C5C9FFFF0E9EB602D05E :1070E000E82EFCD79E96C69E26C5C9FFFF0E9EB60B :1070F00002D0E82EFCD79E96C69E25C5C9FFFF0E7E :107100009EB602D0E82EFCD725EE37F0322F02D003 :1071100095EF38F09E96C69EDECFC9FFFF0E9EB655 :1071200002D0E82EFCD786EF38F0898A899A9E969D :10713000C69E050EC96EFF0E9EB602D0E82EFCD785 :107140009E96C69EC952FF0E9EB602D0E82EFCD770 :10715000C9B0A0EF38F0898A0501100E2527E86A2A :107160002623E86A2723E86A28231590079412004B :1071700021C500F122C501F123C502F124C503F1A7 :10718000899A400EC76E200EC66E9E96C69E0B0E46 :10719000C96EFF0E9EB602D0E82EFCD79E96C69E04 :1071A00002C1C9FFFF0E9EB602D0E82EFCD79E9604 :1071B000C69E01C1C9FFFF0E9EB602D0E82EFCD7C5 :1071C0009E96C69E00C1C9FFFF0E9EB602D0E82E55 :1071D000FCD79E96C69EC952FF0E9EB602D0E82EE0 :1071E000FCD725EE37F00501100E326F9E96C69E35 :1071F000C952FF0E9EB602D0E82EFCD7C9CFDEFFE3 :10720000322FF6EF38F0898A1200899A400EC76E45 :10721000200EC66E9E96C69E900EC96EFF0E9EB63E :1072200002D0E82EFCD79E96C69E000EC96EFF0EB9 :107230009EB602D0E82EFCD79E96C69E000EC96E62 :10724000FF0E9EB602D0E82EFCD79E96C69E000E7C :10725000C96EFF0E9EB602D0E82EFCD79E96C69E43 :10726000C952FF0E9EB602D0E82EFCD7C9CF2DF52D :107270009E96C69EC952FF0E9EB602D0E82EFCD73F :10728000C9CF2EF5898A120065EC32F005012F5125 :10729000010A5FE005012F51020A16E005012F5196 :1072A000030A19E005012F51040A24E005012F51BA :1072B000050A2BE005012F51060A39E005012F517F :1072C000070A3FE0A9EF39F0602FA7EF39F05FC55B :1072D00060F5A9EF39F0B0C500F101010F0E0017FC :1072E00001010051000A35E001010051050A31E0B9 :1072F000A7EF39F0B0C500F101010F0E0017010131 :107300000051000A26E0A7EF39F00501B051000A4C :1073100020E00501B051150A1CE00501B051300A0A :1073200018E00501B051450A14E0A7EF39F0050156 :10733000B051000A0EE00501B051300A0AE0A7EF93 :1073400039F00501B051000A04E0A7EF39F01590BB :107350001200158012008B906BEC2FF0B9C5E8FF7E :10736000D70802E36BEC2FF0B9C5E8FFC80802E3C9 :107370006BEC2FF0B9C5E8FFB90802E36BEC2FF016 :10738000B9C5E8FFAA0802E36BEC2FF0B9C5E8FF26 :107390009B0802E36BEC2FF013EC37F0F29CF29EAB :1073A0008B94C69AC2909482948C720ED36ED3A49E :1073B000FED789968A909390F29AF2949D909E902F :1073C0009D929E92F298F292D5EC33F0FF0EE8CFA8 :1073D00000F0E82EFED7002EFCD7F290F286815006 :1073E00081A8F5EF39F0F29E0300700ED36EF2968D :0E73F000F290158403808CEC2FF09AEF0BF0D6 :10BF0000E844F926000C160C2B0C3F0C520C640C68 :10BF1000760C860C960CA50CB30CC10CCF0CDC0C6B :06BF2000E80CF40C000C1B :0200000400F00A :0100C800FD3A :00000001FF ./firmware/SQMLE-4-3-79.hex0000644000175000017500000014356414274541467015131 0ustar anthonyanthony:020000040000FA :0408000085EF09F087 :1008100003B28CEF05F0F2B4AAEF05F09EB0B2EF90 :1008200005F09EB2BAEF05F0F2A81AEF04F0F2B2AA :100830003AEF04F09EB61FEF04F034EF09F09E96F5 :1008400000011750000A0AE000011750010A0AE0EF :1008500000011750020A0AE034EF09F086EC24F098 :1008600034EF09F07EEC26F034EF09F060EC27F06D :1008700034EF09F0CD90F2929EA044EF04F0010114 :10088000533F44EF04F0542BB2C1B6F1B3C1B7F1FA :10089000B4C1B8F1B5C1B9F1AEC1B2F1AFC1B3F1F4 :1008A000B0C1B4F1B1C1B5F1AAC1AEF1ABC1AFF104 :1008B000ACC1B0F1ADC1B1F1A6C1AAF1A7C1ABF114 :1008C000A8C1ACF1A9C1ADF1A2C1A6F1A3C1A7F124 :1008D000A4C1A8F1A5C1A9F19EC1A2F19FC1A3F134 :1008E000A0C1A4F1A1C1A5F19AC19EF19BC19FF144 :1008F0009CC1A0F19DC1A1F1CECF9AF1CFCF9BF1C8 :1009000053C19CF154C19DF1CF6ACE6A0101536B72 :10091000546B9E90CD800FBC0F8E0FBA93EF04F0F6 :100920000F8A34EF09F013880F8C0FBED0EF04F05C :100930009AC19EF19BC19FF19CC1A0F19DC1A1F103 :100940009EC1A2F19FC1A3F1A0C1A4F1A1C1A5F1D3 :10095000A2C1A6F1A3C1A7F1A4C1A8F1A5C1A9F1A3 :10096000A6C1AAF1A7C1ABF1A8C1ACF1A9C1ADF173 :10097000AAC1AEF1ABC1AFF1ACC1B0F1ADC1B1F143 :10098000AEC1B2F1AFC1B3F1B0C1B4F1B1C1B5F113 :10099000B2C1B6F1B3C1B7F1B4C1B8F1B5C1B9F1E3 :1009A00001015E6B5F6B606B616B9A515E279B51BF :1009B0005F239C5160239D5161239E515E279F516F :1009C0005F23A0516023A1516123A2515E27A3514F :1009D0005F23A4516023A5516123A6515E27A7512F :1009E0005F23A8516023A9516123AA515E27AB510F :1009F0005F23AC516023AD516123AE515E27AF51EF :100A00005F23B0516023B1516123B2515E27B351CE :100A10005F23B4516023B5516123B6515E27B751AE :100A20005F23B8516023B9516123D890010161332C :100A300060335F335E33D8900101613360335F33DD :100A40005E33D8900101613360335F335E3300C1A0 :100A50000CF101C10DF102C10EF103C10FF104C18E :100A600010F105C111F106C112F107C113F108C15E :100A700014F109C115F10AC116F10BC117F134C106 :100A800035F111B84FEF05F00101620E046F010E50 :100A9000056F000E066F000E076F58EF05F001019D :100AA000A70E046F020E056F000E066F000E076F93 :100AB0005EC100F15FC101F160C102F161C103F1EA :100AC000EAEC22F003BF04D01CBE02D01CA0108CA4 :100AD00011A070EF05F010BA70EF05F00F80108ACA :100AE0000CC100F10DC101F10EC102F10FC103F102 :100AF00010C104F111C105F112C106F113C107F1D2 :100B000014C108F115C109F116C10AF117C10BF1A1 :100B100035C134F134EF09F00392ABB2AB98AB8836 :100B2000030103EE00F080517F0BE92604C0EFFFC4 :100B3000802B8151805D700BD8A48B820000805186 :100B4000815D700BD8A48B9281518019D8B4079025 :100B500034EF09F0F2940101453F34EF09F0462BE0 :100B600034EF09F09E900101533F34EF09F0542B0C :100B700034EF09F09E9211B830EF07F08BB4C8EF54 :100B800005F010ACC8EF05F08B84109CC9EF05F0A0 :100B90008B94C3CF55F1C4CF56F1C28207B438EF5E :100BA00006F047C14BF148C14CF149C14DF14AC172 :100BB0004EF15EC162F15FC163F160C164F161C178 :100BC00065F113A8E6EF05F0138C13989AC1BAF1FA :100BD0009BC1BBF19CC1BCF19DC1BDF19EC1BEF1E9 :100BE0009FC1BFF1A0C1C0F1A1C1C1F1A2C1C2F1B9 :100BF000A3C1C3F1A4C1C4F1A5C1C5F1A6C1C6F189 :100C0000A7C1C7F1A8C1C8F1A9C1C9F1AAC1CAF158 :100C1000ABC1CBF1ACC1CCF1ADC1CDF1AEC1CEF128 :100C2000AFC1CFF1B0C1D0F1B1C1D1F1B2C1D2F1F8 :100C3000B3C1D3F1B4C1D4F1B5C1D5F1B6C1D6F1C8 :100C4000B7C1D7F1B8C1D8F1B9C1D9F10101555136 :100C50005B2756515C23E86A5D230E2E38EF06F0C1 :100C60005CC157F15DC158F15B6B5C6B5D6B078ECE :100C70000201002F34EF09F03C0E006F1D50E00B15 :100C8000E00AE86612881BBE02D01BB4108E00C1B9 :100C90000CF101C10DF102C10EF103C10FF104C14C :100CA00010F105C111F106C112F107C113F108C11C :100CB00014F109C115F10AC116F10BC117F134C1C4 :100CC00035F101018E676CEF06F08F676CEF06F06F :100CD00090676CEF06F0916770EF06F0A1EF06F0F9 :100CE00092C100F193C101F194C102F195C103F1E8 :100CF0000101010E046F000E056F000E066F000E5D :100D0000076FEAEC22F000C192F101C193F102C138 :100D100094F103C195F10101006796EF06F00167B8 :100D200096EF06F0026796EF06F00367A1EF06F074 :100D30008EC192F18FC193F190C194F191C195F15F :100D40000F80D57ED5BE6ED0D6CF47F1D7CF48F134 :100D500045C149F1E86AE8CF4AF1138A1CBE02D0C6 :100D60001CA0108C109047C100F148C101F149C18D :100D700002F14AC103F101010A0E046F000E056F72 :100D8000000E066F000E076FEAEC22F003AF108032 :100D9000010154A7D8EF06F00F9A0F9C0F9E010196 :100DA000000E5E6F600E5F6F3D0E606F080E616F2C :100DB000010147BFE8EF06F04867E8EF06F0496732 :100DC000E8EF06F04A67E8EF06F0F2880DEF07F06B :100DD000F2985E6B5F6B606B616B9A6B9B6B9C6B4D :100DE0009D6B9E6B9F6BA06BA16BA26BA36BA46BA7 :100DF000A56BA66BA76BA86BA96BAA6BAB6BAC6B57 :100E0000AD6BAE6BAF6BB06BB16BB26BB36BB46B06 :100E1000B56BB66BB76BB86BB96BD76AD66A0101A5 :100E2000456B466B0CC100F10DC101F10EC102F121 :100E30000FC103F110C104F111C105F112C106F196 :100E400013C107F114C108F115C109F116C10AF166 :100E500017C10BF135C134F134EF09F034EF09F06B :100E60000201002F8BEF08F0D59ED6CF47F1D7CFE8 :100E700048F145C149F1E86AE8CF4AF1138AD76AD7 :100E8000D66A0101456B466BD58E1D50E00BE00A1A :100E9000E86612881BBE02D01BB4108E1AAE1F8CDF :100EA00000C10CF101C10DF102C10EF103C10FF13E :100EB00004C110F105C111F106C112F107C113F10E :100EC00008C114F109C115F10AC116F10BC117F1DE :100ED00034C135F10FA0109A11B87AEF07F0010173 :100EE000620E046F010E056F000E066F000E076F95 :100EF00083EF07F00101A70E046F020E056F000ECD :100F0000066F000E076F47C100F148C101F149C1EA :100F100002F14AC103F1EAEC22F003BF96EF07F0B9 :100F20001CBE02D01CA0108C11B00F800CC100F1AF :100F30000DC101F10EC102F10FC103F110C104F1A5 :100F400011C105F112C106F113C107F114C108F175 :100F500015C109F116C10AF117C10BF135C134F100 :100F600002013C0E006F00C10CF101C10DF102C184 :100F70000EF103C10FF104C110F105C111F106C159 :100F800012F107C113F108C114F109C115F10AC129 :100F900016F10BC117F134C135F101018E67D8EF9D :100FA00007F08F67D8EF07F09067D8EF07F09167E9 :100FB000DCEF07F00DEF08F092C100F193C101F1F1 :100FC00094C102F195C103F10101010E046F000EFD :100FD000056F000E066F000E076FEAEC22F000C1ED :100FE00092F101C193F102C194F103C195F10101A4 :100FF000006702EF08F0016702EF08F0026702EFF6 :1010000008F003670DEF08F08EC192F18FC193F1E4 :1010100090C194F191C195F10F80109047C100F1FA :1010200048C101F149C102F14AC103F101010A0EAF :10103000046F000E056F000E066F000E076FEAECDE :1010400022F003AF1080010154A733EF08F00F9A8C :101050000F9C0F9E0101000E5E6F600E5F6F3D0ED4 :10106000606F080E616F47C100F148C101F149C1CD :1010700002F14AC103F10101140E046F050E056F60 :10108000000E066F000E076FEAEC22F003AF4CEF84 :1010900008F0F28871EF08F0F2985E6B5F6B606B9E :1010A000616B9A6B9B6B9C6B9D6B9E6B9F6BA06B3C :1010B000A16BA26BA36BA46BA56BA66BA76BA86BB4 :1010C000A96BAA6BAB6BAC6BAD6BAE6BAF6BB06B64 :1010D000B16BB26BB36BB46BB56BB66BB76BB86B14 :1010E000B96B0CC100F10DC101F10EC102F10FC1CC :1010F00003F110C104F111C105F112C106F113C1D0 :1011000007F114C108F115C109F116C10AF117C19F :101110000BF135C134F13DEC27F0206629D01FAE2C :1011200011D01F9E208E1BAE07D0176A040E186EBA :10113000196A86EC24F01CD0176A186A196A86ECC2 :1011400024F016D01FAC09D01F9C208C010E176E06 :10115000186A196A7EEC26F00BD01FAA09D01F9AD4 :10116000208A020E176E186A196A60EC27F000D008 :101170008BB4C2EF08F010ACC2EF08F08B84109C67 :10118000C3EF08F08B94C3CF55F1C4CF56F1C282A0 :1011900007B432EF09F047C14BF148C14CF149C1E6 :1011A0004DF14AC14EF15EC162F15FC163F160C1B0 :1011B00064F161C165F113A8E0EF08F0138C139896 :1011C0009AC1BAF19BC1BBF19CC1BCF19DC1BDF1FB :1011D0009EC1BEF19FC1BFF1A0C1C0F1A1C1C1F1CB :1011E000A2C1C2F1A3C1C3F1A4C1C4F1A5C1C5F19B :1011F000A6C1C6F1A7C1C7F1A8C1C8F1A9C1C9F16B :10120000AAC1CAF1ABC1CBF1ACC1CCF1ADC1CDF13A :10121000AEC1CEF1AFC1CFF1B0C1D0F1B1C1D1F10A :10122000B2C1D2F1B3C1D3F1B4C1D4F1B5C1D5F1DA :10123000B6C1D6F1B7C1D7F1B8C1D8F1B9C1D9F1AA :10124000010155515B2756515C23E86A5D230E2E40 :1012500032EF09F05CC157F15DC158F15B6B5C6B1B :101260005D6B078E34EF09F002C0E0FF005001C053 :10127000D8FF1000A6B23AEF09F00CC0A9FF0BC0CE :10128000A8FFA69EA69CA684F29E550EA76EAA0E47 :10129000A76EA682F28EA694A6B24CEF09F00C2A95 :1012A0001200A96EA69EA69CA680A8500C2A120029 :1012B00004012C0E826F6EEC0BF0FFEC23F00C504F :1012C00051EC09F0E8CF00F10C5051EC09F0E8CFF7 :1012D00001F101AF71EF09F00101FF0E026FFF0E86 :1012E000036F88EC23F029677DEF09F00401200EDD :1012F000826F6EEC0BF082EF09F004012D0E826F0D :101300006EEC0BF092EC21F0120015941596076A22 :101310000F6A106A116A126A136A166A0F010E0EBA :10132000C16E860EC06E030EC26E0F01896A110E69 :10133000926E080E8A6EF10E936E8B6A980E946E02 :10134000F18EFC0E51EC09F0E8CF0BF00BA01180F0 :101350000BA211820BA411840BA81188C90E51ECA9 :1013600009F0E8CF1AF0CA0E51EC09F0E8CF1BF0F3 :10137000CB0E51EC09F0E8CF1CF0CC0E51EC09F08B :10138000E8CF1DF0FB0E51EC09F0E8CF37F0CE0EA0 :1013900051EC09F0E8CF14F0CD0E51EC09F0E8CF94 :1013A00036F01F6A206A0E6A01015B6B5C6B5D6B35 :1013B000576B586BF29A0101476B486B496B4A6B4C :1013C0004B6B4C6B4D6B4E6B4F6B506B516B526B51 :1013D000456B466BD76AD66A0F01280ED56EF28A26 :1013E0009D90B00ECD6E01015E6B5F6B606B616BAB :1013F000626B636B646B656B666B676B686B696B69 :10140000536B546BCF6ACE6A0F9A0F9C0F9E9D80D0 :10141000760ECA6E9D8202013C0E006FCC6A160EDB :1014200051EC09F0E8CF00F1170E51EC09F0E8CFCC :1014300001F1180E51EC09F0E8CF02F1190E51EC50 :1014400009F0E8CF03F1010103AF41EF0AF0FFEC2F :1014500023F0160E0C6E00C10BF03AEC09F0170EDB :101460000C6E01C10BF03AEC09F0180E0C6E02C1C3 :101470000BF03AEC09F0190E0C6E03C10BF03AECCC :1014800009F000C18EF101C18FF102C190F103C1D9 :1014900091F100C192F101C193F102C194F103C134 :1014A00095F11A0E51EC09F0E8CF00F11B0E51EC4A :1014B00009F0E8CF01F11C0E51EC09F0E8CF02F180 :1014C0001D0E51EC09F0E8CF03F1010103AF97EFD6 :1014D0000AF0FFEC23F01A0E0C6E00C10BF03AEC90 :1014E00009F01B0E0C6E01C10BF03AEC09F01C0E5A :1014F0000C6E02C10BF03AEC09F01D0E0C6E03C12C :101500000BF03AEC09F01A0E51EC09F0E8CF00F1BB :101510001B0E51EC09F0E8CF01F11C0E51EC09F063 :10152000E8CF02F11D0E51EC09F0E8CF03F100C144 :1015300096F101C197F102C198F103C199F1240E0E :10154000AC6E900EAB6E240EAC6E080EB86E000E34 :10155000B06E1F0EAF6E0401806B816B0F01900E99 :10156000AB6E0F019D8A0301806B816BC26B8B9206 :10157000176A186A196A9D8607900001F28EF28C2C :1015800007B03BEF20F00FB02BEF19F010BE2BEFA0 :1015900019F012B82BEF19F00301805181197F0B5C :1015A000D8B43BEF20F013EE00F081517F0BE12621 :1015B000812BE7CFE8FFE00BD8B43BEF20F023EE20 :1015C00082F0C2513F0BD926E7CFDFFFC22BDF509D :1015D000780AD8A43BEF20F0078092C100F193C1B4 :1015E00001F194C102F195C103F10101040E046FF0 :1015F000000E056F000E066F000E076FEAEC22F07A :1016000000AF0CEF0BF00101030E926F000E936F11 :10161000000E946F000E956F03018251720AD8B4C8 :10162000ACEF18F08251520AD8B4ACEF18F08251E6 :10163000750AD8B4ACEF18F08251680AD8B482EFBA :101640000BF08251630AD8B4F5EF1CF08251690A9D :10165000D8B471EF13F082517A0AD8B484EF14F041 :101660008251490AD8B410EF13F08251500AD8B40D :101670001AEF12F08251700AD8B462EF12F0825160 :10168000540AD8B492EF12F08251740AD8B4DDEF44 :1016900012F08251410AD8B4FDEF0CF082514B0A8E :1016A000D8B4FAEF0BF082516D0AD8B46DEF11F097 :1016B00082514D0AD8B486EF11F08251730AD8B422 :1016C000DCEF17F08251530AD8B441EF18F0825181 :1016D000590AD8B4BEEF10F02CEF1DF0040114EE3F :1016E00000F080517F0BE12682C4E7FF802B1200BF :1016F00004010D0E826F6EEC0BF00A0E826F6EEC21 :101700000BF012000401680E826F6EEC0BF0040106 :101710002C0E826F6EEC0BF0FFEC23F032C000F168 :1017200033C001F1010188EC23F02EC182F40401E1 :10173000300E82276EEC0BF02FC182F40401300EC4 :1017400082276EEC0BF030C182F40401300E822748 :101750006EEC0BF031C182F40401300E82276EEC86 :101760000BF032C182F40401300E82276EEC0BF0D4 :1017700033C182F40401300E82276EEC0BF00401B9 :101780002C0E826F6EEC0BF0FFEC23F034C000F1F6 :1017900035C001F188EC23F02EC182F40401300E33 :1017A00082276EEC0BF02FC182F40401300E8227E9 :1017B0006EEC0BF030C182F40401300E82276EEC27 :1017C0000BF031C182F40401300E82276EEC0BF075 :1017D00032C182F40401300E82276EEC0BF033C16B :1017E00082F40401300E82276EEC0BF060EC27F0DF :1017F0002AEF1DF004014B0E826F6EEC0BF004011A :101800002C0E826F6EEC0BF081B802D036B630D061 :1018100003018351430AD8B43FEF0CF00301835115 :10182000630AD8B441EF0CF003018351520AD8B4D3 :1018300043EF0CF003018351720AD8B445EF0CF06A :1018400003018351470AD8B447EF0CF003018351D9 :10185000670AD8B449EF0CF003018351540AD8B495 :101860004BEF0CF003018351740AD8B4BBEF0CF0BA :1018700003018351550AD8B44DEF0CF083D0368064 :101880007BD0369079D0368277D0369275D0368438 :1018900073D0369471D036866FD084C330F185C34F :1018A00031F186C332F187C333F10101296B4DEC6D :1018B00024F0C4EC23F000C104F101C105F102C120 :1018C00006F103C107F140EC24F0200EF86EF76A30 :1018D000F66A0900F5CF2CF10900F5CF2DF10900CA :1018E000F5CF2EF10900F5CF2FF10900F5CF30F13A :1018F0000900F5CF31F10900F5CF32F10900F5CF3C :1019000033F10101296B4DEC24F0C4EC23F0EAEC37 :1019100022F00101006794EF0CF0016794EF0CF0E6 :10192000026794EF0CF0036701D025D004014E0E3E :10193000826F6EEC0BF004016F0E826F6EEC0BF099 :1019400004014D0E826F6EEC0BF00401610E826F8C :101950006EEC0BF00401740E826F6EEC0BF0040160 :10196000630E826F6EEC0BF00401680E826F6EECFA :101970000BF02AEF1DF03696CD0E0C6E36C00BF034 :101980003AEC09F0CD0E51EC09F0E8CF36F036B064 :1019900006D00401630E826F6EEC0BF005D00401DB :1019A000430E826F6EEC0BF036B206D00401720E5D :1019B000826F6EEC0BF005D00401520E826F6EEC5C :1019C0000BF036B406D00401670E826F6EEC0BF09C :1019D00005D00401470E826F6EEC0BF036B606D0D0 :1019E0000401740E826F6EEC0BF005D00401540EEE :1019F000826F6EEC0BF02AEF1DF00401410E826F36 :101A00006EEC0BF003018351310AD8B4DEEF0FF016 :101A100003018351320AD8B40EEF0FF00301835152 :101A2000330AD8B497EF0EF003018351340AD8B4C7 :101A300087EF0DF003018351350AD8B427EF0DF07D :101A400004013F0E826F6EEC0BF02AEF1DF00301D4 :101A50008451300AD8B44DEF0DF003018451310A9E :101A6000D8B450EF0DF003018451650AD8B441EFAA :101A70000DF003018451640AD8B444EF0DF051EF26 :101A80000DF0379045EF0DF03780FB0E0C6E37C030 :101A90000BF03AEC09F051EF0DF08B9051EF0DF097 :101AA0008B800401350E826F6EEC0BF004012C0E5E :101AB000826F6EEC0BF08BB065EF0DF00401300E11 :101AC000826F6EEC0BF06AEF0DF00401310E826F45 :101AD0006EEC0BF004012C0E826F6EEC0BF0FB0E23 :101AE00051EC09F0E8CF37F037A07EEF0DF004019C :101AF000640E826F6EEC0BF083EF0DF00401650E47 :101B0000826F6EEC0BF085EF0DF02AEF1DF0CC0E1E :101B100051EC09F0E8CF0BF004012C0E826F6EEC53 :101B20000BF003018451310AD8B4ABEF0DF003017F :101B30008451300AD8B4ADEF0DF0030184514D0A41 :101B4000D8B4B7EF0DF003018451540AD8B4BEEFF6 :101B50000DF0D5EF0DF08A8401D08A940BAE04D03D :101B60000BAC02D00BBA21D0E00E0B1218D01F0E16 :101B70000B168539E844E00B0B1211D0E00E0B1662 :101B800040EC24F085C332F186C333F10101296BA7 :101B90004DEC24F0C4EC23F000511F0B0B12CC0EC3 :101BA0000C6E0BC00BF03AEC09F00401340E826F9E :101BB0006EEC0BF004012C0E826F6EEC0BF0CC0E71 :101BC00051EC09F0E8CF1DF08AB406D00401300EC4 :101BD000826F6EEC0BF005D00401310E826F6EEC5B :101BE0000BF004012C0E826F6EEC0BF01D38E840F8 :101BF000070BE8CF82F40401300E82276EEC0BF065 :101C000004012C0E826F6EEC0BF0FFEC23F01D50E4 :101C10001F0BE8CF00F188EC23F032C182F40401FD :101C2000300E82276EEC0BF033C182F40401300ECB :101C300082276EEC0BF004012C0E826F6EEC0BF021 :101C4000FFEC23F030C000F100AF0BD0FF0E016FAE :101C5000FF0E026FFF0E036F04012D0E826F6EECFC :101C60000BF088EC23F031C182F40401300E82279E :101C70006EEC0BF032C182F40401300E82276EEC60 :101C80000BF033C182F40401300E82276EEC0BF0AE :101C900004012C0E826F6EEC0BF0FFEC23F02FC0D2 :101CA00000F188EC23F031C182F40401300E822768 :101CB0006EEC0BF032C182F40401300E82276EEC20 :101CC0000BF033C182F40401300E82276EEC0BF06E :101CD00004012C0E826F6EEC0BF0FFEC23F031C090 :101CE00000F100AF0BD0FF0E016FFF0E026FFF0E71 :101CF000036F04012D0E826F6EEC0BF088EC23F065 :101D000031C182F40401300E82276EEC0BF032C137 :101D100082F40401300E82276EEC0BF033C182F4A2 :101D20000401300E82276EEC0BF02AEF1DF0CB0E73 :101D300051EC09F0E8CF0BF004012C0E826F6EEC31 :101D40000BF003018451450AD8B4BBEF0EF0030138 :101D50008451440AD8B4BEEF0EF003018451300A16 :101D6000D8B4C1EF0EF003018451310AD8B4C5EFE5 :101D70000EF0D0EF0EF00B9ECAEF0EF00B8ECAEFF6 :101D80000EF0FC0E0B16CAEF0EF0FC0E0B160B80BD :101D9000CAEF0EF0CB0E0C6E0BC00BF03AEC09F054 :101DA0000401330E826F6EEC0BF004012C0E826F77 :101DB0006EEC0BF0CB0E51EC09F0E8CF1CF01CBE22 :101DC000E9EF0EF00401450E826F6EEC0BF0EEEFC2 :101DD0000EF00401440E826F6EEC0BF004012C0E29 :101DE000826F6EEC0BF00401300E826F6EEC0BF024 :101DF00004012C0E826F6EEC0BF01CB007EF0FF09D :101E00000401300E826F6EEC0BF00CEF0FF004014A :101E1000310E826F6EEC0BF02AEF1DF0CA0E51EC02 :101E200009F0E8CF0BF004012C0E826F6EEC0BF082 :101E300003018451450AD8B44AEF0FF003018451DD :101E4000440AD8B44DEF0FF0030184514D0AD8B4C1 :101E500056EF0FF003018451410AD8B450EF0FF050 :101E600003018451460AD8B453EF0FF003018451A3 :101E7000560AD8B45EEF0FF003018451500AD8B46B :101E800069EF0FF003018451520AD8B46CEF0FF0E0 :101E900075EF0FF00B9E6FEF0FF00B8E6FEF0FF0E3 :101EA0000B9C6FEF0FF00B8C6FEF0FF0FC0E0B160F :101EB00085C3E8FF030B0B126FEF0FF0C70E0B1675 :101EC00085C3E8FF070BE846E846E8460B126FEFCC :101ED0000FF00B846FEF0FF00B946FEF0FF0CA0E43 :101EE0000C6E0BC00BF03AEC09F0CA0E51EC09F085 :101EF000E8CF1BF00401320E826F6EEC0BF0040190 :101F00002C0E826F6EEC0BF01BBE8EEF0FF00401F7 :101F1000450E826F6EEC0BF093EF0FF00401440E50 :101F2000826F6EEC0BF004012C0E826F6EEC0BF0E6 :101F30001BC0E8FF030BE8CF82F40401300E8227B8 :101F40006EEC0BF004012C0E826F6EEC0BF01BBCE0 :101F5000B1EF0FF00401410E826F6EEC0BF0B6EFA3 :101F60000FF00401460E826F6EEC0BF004012C0E94 :101F7000826F6EEC0BF01BC0E8FF380BE842E842C2 :101F8000E842E8CF82F40401300E82276EEC0BF0B9 :101F900004012C0E826F6EEC0BF01BB4D7EF0FF028 :101FA0000401520E826F6EEC0BF0DCEF0FF00401B7 :101FB000500E826F6EEC0BF02AEF1DF0C90E51EC43 :101FC00009F0E8CF0BF004012C0E826F6EEC0BF0E1 :101FD00003018451450AD8B4FCEF0FF0030184518A :101FE000440AD8B4FFEF0FF0030184514D0AD8B46E :101FF00002EF10F010EF10F00B9E0AEF10F00B8EB6 :102000000AEF10F0F80E0B1685C3E8FF070B0B1252 :102010000AEF10F0C90E0C6E0BC00BF03AEC09F091 :102020000401310E826F6EEC0BF004012C0E826FF6 :102030006EEC0BF0C90E51EC09F0E8CF1AF01ABEA5 :1020400006D00401450E826F6EEC0BF005D0040142 :10205000440E826F6EEC0BF004012C0E826F6EEC5E :102060000BF01AC0E8FF070BE8CF82F40401300E32 :1020700082276EEC0BF004012C0E826F6EEC0BF0DD :102080000780FFEC23F02BC0E8FF003B0043004338 :10209000030B88EC23F033C182F40401300E822755 :1020A0006EEC0BF004012C0E826F6EEC0BF0FFEC6B :1020B00023F02BC001F1019F019D2CC000F1010113 :1020C00088EC23F02FC182F40401300E82276EECDD :1020D0000BF030C182F40401300E82276EEC0BF05D :1020E00031C182F40401300E82276EEC0BF032C154 :1020F00082F40401300E82276EEC0BF033C182F4BF :102100000401300E82276EEC0BF004012C0E826F5E :102110006EEC0BF0FFEC23F02DC001F12EC000F1AE :10212000D89001330033D89001330033010188EC9B :1021300023F02FC182F40401300E82276EEC0BF0E5 :1021400030C182F40401300E82276EEC0BF031C1F5 :1021500082F40401300E82276EEC0BF032C182F45F :102160000401300E82276EEC0BF033C182F40401BF :10217000300E82276EEC0BF02AEF1DF0FC0E51ECB6 :1021800009F0E8CF0BF003018351520AD8B4F5EF00 :1021900010F003018351720AD8B4F8EF10F0030174 :1021A0008351500AD8B4FBEF10F003018351700A39 :1021B000D8B4FEEF10F003018351550AD8B401EFF3 :1021C00011F003018351750AD8B404EF11F0030133 :1021D0008351430AD8B40DEF11F003018351630A10 :1021E000D8B410EF11F019EF11F00B9013EF11F0BC :1021F0000B8013EF11F00B9213EF11F00B8213EF22 :1022000011F00B9413EF11F00B8413EF11F00B96F8 :1022100013EF11F00B8613EF11F00B9813EF11F081 :102220000B8813EF11F0FC0E0C6E0BC00BF03AECA8 :1022300009F00401590E826F6EEC0BF011901192AF :1022400011941198FC0E51EC09F0E8CF0BF00BA0A3 :1022500011800BA211820BA411840BA8118811A06C :1022600039EF11F00401520E826F6EEC0BF03EEF6D :1022700011F00401720E826F6EEC0BF011A848EFA2 :1022800011F00401430E826F6EEC0BF04DEF11F074 :102290000401630E826F6EEC0BF011A257EF11F088 :1022A0000401500E826F6EEC0BF05CEF11F0040134 :1022B000700E826F6EEC0BF011A466EF11F004014A :1022C000550E826F6EEC0BF06BEF11F00401750E82 :1022D000826F6EEC0BF02AEF1DF004016D0E826F21 :1022E0006EEC0BF003018351300AD8B4CAEF11F041 :1022F00003018351310AD8B4DDEF11F0030183519A :10230000320AD8B4F0EF11F02CEF1DF081B803D0F1 :1023100036B42AEF1DF004014D0E826F6EEC0BF007 :1023200040EC24F084C331F185C332F186C333F12C :102330000101296B4DEC24F0C4EC23F0030183511F :10234000300AD8B4B2EF11F003018351310AD8B486 :10235000BAEF11F003018351320AD8B4C2EF11F081 :102360002CEF1DF0FD0E0C6E00C10BF03AEC09F0E5 :10237000CAEF11F0FE0E0C6E00C10BF03AEC09F042 :10238000DDEF11F0FF0E0C6E00C10BF03AEC09F01E :10239000F0EF11F00401300E826F6EEC0BF00401CF :1023A0002C0E826F6EEC0BF0FFEC23F0FD0E51EC67 :1023B00009F0E8CF00F101EF12F00401310E826F55 :1023C0006EEC0BF004012C0E826F6EEC0BF0FFEC48 :1023D00023F0FE0E51EC09F0E8CF00F101EF12F00E :1023E0000401320E826F6EEC0BF0FFEC23F004015F :1023F0002C0E826F6EEC0BF0FF0E51EC09F0E8CF63 :1024000000F188EC23F031C182F40401300E822700 :102410006EEC0BF032C182F40401300E82276EECB8 :102420000BF033C182F40401300E82276EEC0BF006 :102430002AEF1DF081B803D036B210EF13F083C33A :102440002AF184C32BF185C32CF186C32DF187C3F8 :102450002EF188C32FF189C330F18AC331F18BC3C8 :1024600032F18CC333F101014DEC24F0C4EC23F0C4 :10247000160E0C6E00C10BF03AEC09F0170E0C6E44 :1024800001C10BF03AEC09F0180E0C6E02C10BF012 :102490003AEC09F0190E0C6E03C10BF03AEC09F09E :1024A00000C18EF101C18FF102C190F103C191F120 :1024B00000C192F101C193F102C194F103C195F100 :1024C00010EF13F081B803D036B210EF13F083C3CE :1024D0002AF184C32BF185C32CF186C32DF187C368 :1024E0002EF188C32FF189C330F18AC331F18BC338 :1024F00032F18CC333F101014DEC24F0C4EC23F034 :1025000000C18EF101C18FF102C190F103C191F1BF :1025100000C192F101C193F102C194F103C195F19F :1025200010EF13F081B803D036B210EF13F083C36D :102530002AF184C32BF185C32CF186C32DF187C307 :102540002EF188C32FF189C330F18AC331F18CC3D6 :1025500032F18DC333F101014DEC24F0C4EC23F0D2 :102560000101000E046F000E056F010E066F000ED4 :10257000076FFBEC22F01A0E0C6E00C10BF03AEC68 :1025800009F01B0E0C6E01C10BF03AEC09F01C0EA9 :102590000C6E02C10BF03AEC09F01D0E0C6E03C17B :1025A0000BF03AEC09F000C196F101C197F102C1BC :1025B00098F103C199F110EF13F081B803D036B24E :1025C00010EF13F083C32AF184C32BF185C32CF1E0 :1025D00086C32DF187C32EF188C32FF189C330F153 :1025E0008AC331F18CC332F18DC333F101014DEC5B :1025F00024F0C4EC23F00101000E046F000E056FFF :10260000010E066F000E076FFBEC22F000C196F181 :1026100001C197F102C198F103C199F110EF13F0D4 :10262000160E51EC09F0E8CF00F1170E51EC09F04D :10263000E8CF01F1180E51EC09F0E8CF02F1190EC4 :1026400051EC09F0E8CF03F188EC23F04BEC21F0DA :102650000401730E826F6EEC0BF004012C0E826F7E :102660006EEC0BF08EC100F18FC101F190C102F14F :1026700091C103F188EC23F04BEC21F00401730EBF :10268000826F6EEC0BF004012C0E826F6EEC0BF07F :102690001A0E51EC09F0E8CF00F11B0E51EC09F0D5 :1026A000E8CF01F11C0E51EC09F0E8CF02F11D0E4C :1026B00051EC09F0E8CF03F147EC1DF004012C0EBA :1026C000826F6EEC0BF096C100F197C101F198C1D9 :1026D00002F199C103F147EC1DF078EC0BF02CEFFF :1026E0001DF00401690E826F6EEC0BF004012C0EDC :1026F000826F6EEC0BF00101040E006F000E016F93 :10270000000E026F000E036F88EC23F02CC182F4E0 :102710000401300E82276EEC0BF02DC182F404010F :10272000300E82276EEC0BF02EC182F40401300EC5 :1027300082276EEC0BF02FC182F40401300E822749 :102740006EEC0BF030C182F40401300E82276EEC87 :102750000BF031C182F40401300E82276EEC0BF0D5 :1027600032C182F40401300E82276EEC0BF033C1CB :1027700082F40401300E82276EEC0BF004012C0E63 :10278000826F6EEC0BF00101030E006F000E016F03 :10279000000E026F000E036F88EC23F02CC182F450 :1027A0000401300E82276EEC0BF02DC182F404017F :1027B000300E82276EEC0BF02EC182F40401300E35 :1027C00082276EEC0BF02FC182F40401300E8227B9 :1027D0006EEC0BF030C182F40401300E82276EECF7 :1027E0000BF031C182F40401300E82276EEC0BF045 :1027F00032C182F40401300E82276EEC0BF033C13B :1028000082F40401300E82276EEC0BF004012C0ED2 :10281000826F6EEC0BF001014F0E006F000E016F26 :10282000000E026F000E036F88EC23F02CC182F4BF :102830000401300E82276EEC0BF02DC182F40401EE :10284000300E82276EEC0BF02EC182F40401300EA4 :1028500082276EEC0BF02FC182F40401300E822728 :102860006EEC0BF030C182F40401300E82276EEC66 :102870000BF031C182F40401300E82276EEC0BF0B4 :1028800032C182F40401300E82276EEC0BF033C1AA :1028900082F40401300E82276EEC0BF004012C0E42 :1028A000826F6EEC0BF0200EF86EF76AF66A040188 :1028B0000900F5CF82F46EEC0BF00900F5CF82F43D :1028C0006EEC0BF00900F5CF82F46EEC0BF0090012 :1028D000F5CF82F46EEC0BF00900F5CF82F46EECCC :1028E0000BF00900F5CF82F46EEC0BF00900F5CF88 :1028F00082F46EEC0BF00900F5CF82F46EEC0BF075 :1029000078EC0BF02CEF1DF081B803D036B0D4EF8B :1029100014F08351630AD8A42AEF1DF08451610A90 :10292000D8A42AEF1DF085516C0AD8A42AEF1DF017 :102930008651410A42E08651440A1BE08651420A10 :10294000D8B4F0EF14F08651350AD8B4B6EF1EF0C3 :102950008651360AD8B40BEF1FF08651370AD8B427 :1029600074EF1FF08651380AD8B4D2EF1FF02AEF67 :102970001DF00798079A04017A0E826F6EEC0BF037 :102980000401780E826F6EEC0BF00401640E826F0E :102990006EEC0BF081A8D4EF14F00401550E826F99 :1029A0006EEC0BF0D9EF14F004014C0E826F6EEC5C :1029B0000BF078EC0BF02CEF1DF00788079A040160 :1029C0007A0E826F6EEC0BF00401410E826F6EEC9A :1029D0000BF00401610E826F6EEC0BF0CAEF14F085 :1029E0000798078A04017A0E826F6EEC0BF00401DF :1029F000420E826F6EEC0BF00401610E826F6EEC82 :102A00000BF0CAEF14F0010166670EEF15F067676F :102A10000EEF15F068670EEF15F0696716D001012B :102A20004F671AEF15F050671AEF15F051671AEF5C :102A300015F052670AD00101000E006F000E016F01 :102A4000000E026F000E036F120011B80AD00101D0 :102A5000620E046F010E056F000E066F000E076F09 :102A600009D00101A70E046F020E056F000E066F5C :102A7000000E076F66C100F167C101F168C102F184 :102A800069C103F1EAEC22F003BFB7EF15F0119A28 :102A9000119C0101000E046FA80E056F550E066F04 :102AA000020E076F66C100F167C101F168C102F152 :102AB00069C103F166C18AF167C18BF168C18CF10C :102AC00069C18DF1EAEC22F003BF0BD00101000EC9 :102AD0008A6FA80E8B6F550E8C6F020E8D6F118A48 :102AE000119C0E0E51EC09F0E8CF18F10F0E51ECCD :102AF00009F0E8CF19F1100E51EC09F0E8CF1AF106 :102B0000110E51EC09F0E8CF1BF133EC22F08AC131 :102B100004F18BC105F18CC106F18DC107F1EAEC1E :102B200022F00782F7EC21F033EC22F00792F7EC69 :102B300021F08AC100F18BC101F18CC102F18DC17C :102B400003F10792F7EC21F0CC0E046FE00E056F55 :102B5000870E066F050E076FEAEC22F000C118F130 :102B600001C119F102C11AF103C11BF140D013AA2E :102B7000BCEF15F0138E139A119C119A0101800E6F :102B8000006F1A0E016F060E026F000E036F4FC129 :102B900004F150C105F151C106F152C107F1EAEC4F :102BA00022F003AF05D0FFEC23F0118C119A120034 :102BB0000E0E51EC09F0E8CF18F10F0E51EC09F0B0 :102BC000E8CF19F1100E51EC09F0E8CF1AF1110E0F :102BD00051EC09F0E8CF1BF14FC100F150C101F1F8 :102BE00051C102F152C103F10782F7EC21F018C183 :102BF00000F119C101F11AC102F11BC103F1120068 :102C00000784BAC166F1BBC167F1BCC168F1BDC13F :102C100069F14BC14FF14CC150F14DC151F14EC161 :102C200052F157C159F158C15AF107940101666731 :102C300021EF16F0676721EF16F0686721EF16F0B5 :102C4000696716D001014F672DEF16F050672DEF21 :102C500016F051672DEF16F052670AD00101000EF1 :102C6000006F000E016F000E026F000E036F120066 :102C700011B80AD00101620E046F010E056F000E3B :102C8000066F000E076F09D00101A70E046F020E38 :102C9000056F000E066F000E076F66C100F167C179 :102CA00001F168C102F169C103F1EAEC22F003BF4E :102CB000B9EF16F00101000E046FA80E056F550E56 :102CC000066F020E076F66C100F167C101F168C1AE :102CD00002F169C103F166C18AF167C18BF168C174 :102CE0008CF169C18DF1EAEC22F003BF09D001013A :102CF000000E8A6FA80E8B6F550E8C6F020E8D6FB3 :102D000033EC22F000C104F101C105F102C106F16A :102D100003C107F1000E006FA00E016F980E026F45 :102D20007B0E036F1BEC23F000C118F101C119F1F8 :102D300002C11AF103C11BF1000E006FA00E016F5A :102D4000980E026F7B0E036F8AC104F18BC105F1EF :102D50008CC106F18DC107F11BEC23F018C104F101 :102D600019C105F11AC106F11BC107F1EAEC22F005 :102D700012000101A80E006F610E016F000E026FBC :102D8000000E036F4FC104F150C105F151C106F1AE :102D900052C107F1EAEC22F003AF0AD00101A80EFC :102DA000006F610E016F000E026F000E036F00D006 :102DB000C80E006FAF0E016F000E026F000E036FA2 :102DC0004FC104F150C105F151C106F152C107F1E3 :102DD000FBEC22F012000784BAC166F1BBC167F1B7 :102DE000BCC168F1BDC169F14BC14FF14CC150F19B :102DF0004DC151F14EC152F157C159F158C15AF16B :102E00000794010166670CEF17F067670CEF17F086 :102E100068670CEF17F0696716D001014F6718EF6C :102E200017F0506718EF17F0516718EF17F0526757 :102E30000AD00101000E006F000E016F000E026F3C :102E4000000E036F120011B80AD00101620E046F68 :102E5000010E056F000E066F000E076F09D001010D :102E6000A70E046F020E056F000E066F000E076FAF :102E700066C100F167C101F168C102F169C103F1E6 :102E8000EAEC22F003BFCEEF17F00101000E046F51 :102E9000A80E056F550E066F020E076F66C100F192 :102EA00067C101F168C102F169C103F166C18AF12C :102EB00067C18BF168C18CF169C18DF1EAEC22F038 :102EC00003BF09D00101000E8A6FA80E8B6F550E4B :102ED0008C6F020E8D6F010E006F000E016F000EE1 :102EE000026F000E036F8AC104F18BC105F18CC122 :102EF00006F18DC107F11BEC23F018C104F119C1D3 :102F000005F11AC106F11BC107F188EC23F02AC1B3 :102F100082F40401300E82276EEC0BF02BC182F498 :102F20000401300E82276EEC0BF02CC182F40401F8 :102F3000300E82276EEC0BF02DC182F40401300EAE :102F400082276EEC0BF02EC182F40401300E822732 :102F50006EEC0BF02FC182F40401300E82276EEC70 :102F60000BF030C182F40401300E82276EEC0BF0BE :102F700031C182F40401300E82276EEC0BF032C1B5 :102F800082F40401300E82276EEC0BF033C182F420 :102F90000401300E82276EEC0BF012004FC100F1DD :102FA00050C101F151C102F152C103F1010188EC9C :102FB00023F04BEC21F012000401730E826F6EECD3 :102FC0000BF004012C0E826F6EEC0BF0078462C1D3 :102FD00066F163C167F164C168F165C169F14BC114 :102FE0004FF14CC150F14DC151F14EC152F157C199 :102FF00059F158C15AF1079402EC18F078EC0BF033 :103000002CEF1DF066C100F167C101F168C102F14A :1030100069C103F1010188EC23F04BEC21F00401BC :10302000630E826F6EEC0BF004012C0E826F6EEC5F :103030000BF04FC100F150C101F151C102F152C179 :1030400003F1010188EC23F04BEC21F00401660E42 :10305000826F6EEC0BF004012C0E826F6EEC0BF0A5 :10306000FFEC23F059C100F15AC101F1010188ECD4 :1030700023F04BEC21F00401740E826F6EEC0BF028 :10308000120010820401530E826F6EEC0BF00401EB :103090002C0E826F6EEC0BF083C32AF184C32BF1EC :1030A00085C32CF186C32DF187C32EF188C32FF180 :1030B00089C330F18AC331F18BC332F18CC333F150 :1030C00001014DEC24F0C4EC23F000C166F101C114 :1030D00067F102C168F103C169F18EC32AF18FC3A0 :1030E0002BF190C32CF191C32DF192C32EF193C318 :1030F0002FF194C330F195C331F196C332F197C3E8 :1031000033F101014DEC24F0C4EC23F000C14FF188 :1031100001C150F102C151F103C152F140EC24F060 :1031200099C32FF19AC330F19BC331F19CC332F1A3 :103130009DC333F101014DEC24F0C4EC23F000C138 :1031400059F101C15AF102EC18F004012C0E826F02 :103150006EEC0BF0BCEF18F0118E1CA002D01CAE70 :10316000108C1BBE02D01BA4108E03018251520A88 :1031700002E10F8201D00F928251750A02E11084A0 :1031800001D010948251550A02E1108601D01096A8 :103190008351310A03E11382138402D013921394F2 :1031A00003018351660A01E056D00401660E826F66 :1031B0006EEC0BF004012C0E826F6EEC0BF000EC49 :1031C00016F088EC23F02AC182F40401300E822725 :1031D0006EEC0BF02BC182F40401300E82276EECF2 :1031E0000BF02CC182F40401300E82276EEC0BF040 :1031F0002DC182F40401300E82276EEC0BF02EC13B :1032000082F40401300E82276EEC0BF02FC182F4A1 :103210000401300E82276EEC0BF030C182F4040101 :10322000300E82276EEC0BF031C182F40401300EB7 :1032300082276EEC0BF032C182F40401300E82273B :103240006EEC0BF033C182F40401300E82276EEC79 :103250000BF02AEF1DF011A003D011A401D01084AF :10326000078410B295EF19F010A479EF19F0BAC1E4 :1032700066F1BBC167F1BCC168F1BDC169F1BEC1F6 :103280006AF1BFC16BF1C0C16CF1C1C16DF1C2C1C6 :103290006EF1C3C16FF1C4C170F1C5C171F1C6C196 :1032A00072F1C7C173F1C8C174F1C9C175F1CAC166 :1032B00076F1CBC177F1CCC178F1CDC179F1CEC136 :1032C0007AF1CFC17BF1D0C17CF1D1C17DF1D2C106 :1032D0007EF1D3C17FF1D4C180F1D5C181F1D6C1D6 :1032E00082F1D7C183F1D8C184F1D9C185F181EFD1 :1032F00019F062C166F163C167F164C168F165C12B :1033000069F1BAC186F1BBC187F1BCC188F1BDC109 :1033100089F14BC14FF14CC150F14DC151F14EC13A :1033200052F157C159F158C15AF107940FA0B7EFA4 :1033300019F001019667A4EF19F09767A4EF19F04F :103340009867A4EF19F09967A8EF19F0B7EF19F093 :1033500003EC15F096C104F197C105F198C106F18F :1033600099C107F1EAEC22F003BFF0EF1CF003EC87 :1033700015F00101000E046F000E056F010E066FBF :10338000000E076F1BEC23F011A02AD011A228D049 :1033900088EC23F0296701D005D004012D0E826F3F :1033A0006EEC0BF030C182F40401300E82276EEC1B :1033B0000BF031C182F40401300E82276EEC0BF069 :1033C00032C182F40401300E82276EEC0BF033C15F :1033D00082F40401300E82276EEC0BF078EC0BF0D7 :1033E00012A8C5D012981DC01EF01E3A1E42070E2C :1033F0001E1600011E50000AD8B483EF1AF0000117 :103400001E50010AD8B40FEF1AF000011E50020A34 :10341000D8B40DEF1AF0B5EF1AF0B5EF1AF0FFECD3 :1034200023F02DC001F12EC000F1D89001330033FC :10343000D890013300330101630E046F000E056F55 :10344000000E066F000E076F1BEC23F0280E046FB2 :10345000000E056F000E066F000E076FEAEC22F0FB :1034600000C130F0FFEC23F02BC001F1019F019D62 :103470002CC000F10101A40E046F000E056F000EB8 :10348000066F000E076F1BEC23F000C12FF000C188 :1034900004F101C105F102C106F103C107F1640E97 :1034A000006F000E016F000E026F000E036FEAEC5A :1034B00022F0050E046F000E056F000E066F000E61 :1034C000076F1BEC23F000C104F101C105F102C13B :1034D00006F103C107F1FFEC23F030C000F1EAEC84 :1034E00022F000C131F031C0E8FF050F305C03E786 :1034F0008A84B5EF1AF031C0E8FF0A0F305C01E6AC :103500008A94B5EF1AF000C124F101C125F102C17E :1035100026F103C127F1FFEC23F005EC24F01D5048 :103520001F0BE8CF00F10101640E046F000E056F60 :10353000000E066F000E076FFBEC22F024C104F1B1 :1035400025C105F126C106F127C107F1EAEC22F0F9 :1035500003BF02D08A9401D08A8424C100F125C11E :1035600001F126C102F127C103F12CEF1DF000C1CA :1035700024F101C125F102C126F103C127F110AEEA :103580004DD0109E00C108F101C109F102C10AF13C :1035900003C10BF188EC23F030C1E2F131C1E3F15A :1035A00032C1E4F133C1E5F108C100F109C101F113 :1035B0000AC102F10BC103F101016C0E046F070E89 :1035C000056F000E066F000E076FEAEC22F003BFD6 :1035D00004D00101550EE66F1CD008C100F109C1ED :1035E00001F10AC102F10BC103F10101A40E046F44 :1035F000060E056F000E066F000E076FEAEC22F054 :1036000003BF04D001017F0EE66F03D00101FF0E5E :10361000E66F1F8E11AEF0EF1CF0119E24C100F179 :1036200025C101F126C102F127C103F111A005D086 :1036300011A203D00FB0F0EF1CF010A427EF1BF085 :103640000401750E826F6EEC0BF02CEF1BF0040181 :10365000720E826F6EEC0BF004012C0E826F6EEC1A :103660000BF088EC23F029673BEF1BF00401200EE0 :10367000826F3EEF1BF004012D0E826F6EEC0BF09B :1036800030C182F40401300E82276EEC0BF031C1A0 :1036900082F40401300E82276EEC0BF004012E0E32 :1036A000826F6EEC0BF032C182F40401300E82277F :1036B0006EEC0BF033C182F40401300E82276EEC05 :1036C0000BF004016D0E826F6EEC0BF004012C0EFA :1036D000826F6EEC0BF04FC100F150C101F151C18E :1036E00002F152C103F1010188EC23F04BEC21F00F :1036F0000401480E826F6EEC0BF004017A0E826FAB :103700006EEC0BF004012C0E826F6EEC0BF066C1B8 :1037100000F167C101F168C102F169C103F1010162 :1037200088EC23F04BEC21F00401630E826F6EEC09 :103730000BF004012C0E826F6EEC0BF066C100F1F1 :1037400067C101F168C102F169C103F101010A0E0B :10375000046F000E056F000E066F000E076FFBEC86 :1037600022F0000E046F120E056F000E066F000EA1 :10377000076F1BEC23F088EC23F02AC182F40401CC :10378000300E82276EEC0BF02BC182F40401300E58 :1037900082276EEC0BF02CC182F40401300E8227DC :1037A0006EEC0BF02DC182F40401300E82276EEC1A :1037B0000BF02EC182F40401300E82276EEC0BF068 :1037C0002FC182F40401300E82276EEC0BF030C161 :1037D00082F40401300E82276EEC0BF004012E0EF1 :1037E000826F6EEC0BF031C182F40401300E82273F :1037F0006EEC0BF032C182F40401300E82276EECC5 :103800000BF033C182F40401300E82276EEC0BF012 :103810000401730E826F6EEC0BF004012C0E826FAC :103820006EEC0BF0FFEC23F059C100F15AC101F12D :1038300056EC1EF013A26CEF1CF004012C0E826FEC :103840006EEC0BF086C166F187C167F188C168F143 :1038500089C169F103EC15F00101000E046F000E3F :10386000056F010E066F000E076F1BEC23F088EC4E :1038700023F0296741EF1CF00401200E826F44EF12 :103880001CF004012D0E826F6EEC0BF030C182F43F :103890000401300E82276EEC0BF031C182F404017A :1038A000300E82276EEC0BF004012E0E826F6EEC50 :1038B0000BF032C182F40401300E82276EEC0BF063 :1038C00033C182F40401300E82276EEC0BF0040148 :1038D0006D0E826F6EEC0BF003018351460A01E01E :1038E00007D004012C0E826F6EEC0BF0EBEC16F09F :1038F00013A49FEF1CF004012C0E826F6EEC0BF0F2 :1039000013AC8DEF1CF00401500E826F6EEC0BF0C7 :10391000139C1398139A9FEF1CF013AE9AEF1CF0B0 :103920000401460E826F6EEC0BF0139E1398139AEF :103930009FEF1CF00401530E826F6EEC0BF037B05A :10394000B6EF1CF004012C0E826F6EEC0BF08BB006 :10395000B1EF1CF00401440E826F6EEC0BF0B6EF79 :103960001CF00401530E826F6EEC0BF00FB2BCEF33 :103970001CF00FA0EEEF1CF004012C0E826F6EEC19 :103980000BF0200EF86EF76AF66A04010900F5CF15 :1039900082F46EEC0BF00900F5CF82F46EEC0BF0C4 :1039A0000900F5CF82F46EEC0BF00900F5CF82F43C :1039B0006EEC0BF00900F5CF82F46EEC0BF0090011 :1039C000F5CF82F46EEC0BF00900F5CF82F46EECCB :1039D0000BF00900F5CF82F46EEC0BF078EC0BF0F5 :1039E0000F90109E12982CEF1DF00401630E826F51 :1039F0006EEC0BF004012C0E826F6EEC0BF032ECCF :103A00001DF004012C0E826F6EEC0BF0A5EC1DF086 :103A100004012C0E826F6EEC0BF021EC1EF0040101 :103A20002C0E826F6EEC0BF00101F80E006FCD0EC4 :103A3000016F660E026F030E036F47EC1DF0040169 :103A40002C0E826F6EEC0BF037EC1EF078EC0BF066 :103A50002CEF1DF078EC0BF00301C26B0790109275 :103A60003BEF20F0D8900E0E51EC09F0E8CF00F1BA :103A70000F0E51EC09F0E8CF01F1100E51EC09F0F6 :103A8000E8CF02F1110E51EC09F0E8CF03F101018A :103A9000000E046F000E056F010E066F000E076F1B :103AA0001BEC23F088EC23F02AC182F40401300ED1 :103AB00082276EEC0BF02BC182F40401300E8227BA :103AC0006EEC0BF02CC182F40401300E82276EECF8 :103AD0000BF02DC182F40401300E82276EEC0BF046 :103AE0002EC182F40401300E82276EEC0BF02FC140 :103AF00082F40401300E82276EEC0BF030C182F4A8 :103B00000401300E82276EEC0BF031C182F4040107 :103B1000300E82276EEC0BF004012E0E826F6EECDD :103B20000BF032C182F40401300E82276EEC0BF0F0 :103B300033C182F40401300E82276EEC0BF00401D5 :103B40006D0E826F6EEC0BF01200120E51EC09F04C :103B5000E8CF00F1130E51EC09F0E8CF01F1140E9B :103B600051EC09F0E8CF02F1150E51EC09F0E8CF65 :103B700003F101010A0E046F000E056F000E066FBF :103B8000000E076FFBEC22F0000E046F120E056FA3 :103B9000000E066F000E076F1BEC23F088EC23F07D :103BA0002AC182F40401300E82276EEC0BF02BC187 :103BB00082F40401300E82276EEC0BF02CC182F4EB :103BC0000401300E82276EEC0BF02DC182F404014B :103BD000300E82276EEC0BF02EC182F40401300E01 :103BE00082276EEC0BF02FC182F40401300E822785 :103BF0006EEC0BF030C182F40401300E82276EECC3 :103C00000BF004012E0E826F6EEC0BF031C182F4CA :103C10000401300E82276EEC0BF032C182F40401F5 :103C2000300E82276EEC0BF033C182F40401300EAB :103C300082276EEC0BF00401730E826F6EEC0BF0BA :103C400012000A0E51EC09F0E8CF00F10B0E51EC16 :103C500009F0E8CF01F10C0E51EC09F0E8CF02F1C8 :103C60000D0E51EC09F0E8CF03F156EF1EF0060EF1 :103C700051EC09F0E8CF00F1070E51EC09F0E8CF64 :103C800001F1080E51EC09F0E8CF02F1090E51ECF8 :103C900009F0E8CF03F156EF1EF00101FFEC23F02D :103CA000078457C100F158C101F107940101E80EE2 :103CB000046F800E056F000E066F000E076FFBECA1 :103CC00022F0000E046F040E056F000E066F000E4A :103CD000076F1BEC23F0880E046F130E056F000EA8 :103CE000066F000E076FEAEC22F00A0E046F000E5A :103CF000056F000E066F000E076F1BEC23F088ECBB :103D000023F0010129678AEF1EF00401200E826F63 :103D10008DEF1EF004012D0E826F6EEC0BF030C1A2 :103D200082F40401300E82276EEC0BF031C182F474 :103D30000401300E82276EEC0BF032C182F40401D4 :103D4000300E82276EEC0BF004012E0E826F6EECAB :103D50000BF033C182F40401300E82276EEC0BF0BD :103D60000401430E826F6EEC0BF0120087C32AF140 :103D700088C32BF189C32CF18AC32DF18BC32EF19B :103D80008CC32FF18DC330F18EC331F190C332F16A :103D900091C333F10101296B4DEC24F0C4EC23F005 :103DA0000101000E046F000E056F010E066F000E7C :103DB000076FFBEC22F00E0E0C6E00C10BF03AEC1C :103DC00009F00F0E0C6E01C10BF03AEC09F0100E69 :103DD0000C6E02C10BF03AEC09F0110E0C6E03C12F :103DE0000BF03AEC09F004017A0E826F6EEC0BF0E6 :103DF00004012C0E826F6EEC0BF00401350E826F05 :103E00006EEC0BF004012C0E826F6EEC0BF032ECBA :103E10001DF0D9EF14F087C32AF188C32BF189C3B1 :103E20002CF18AC32DF18BC32EF18CC32FF18DC3DE :103E300030F18EC331F190C332F191C333F10101FE :103E4000296B4DEC24F0C4EC23F0880E046F130EA4 :103E5000056F000E066F000E076FEFEC22F0000EEC :103E6000046F040E056F000E066F000E076FFBEC6B :103E700022F00101E80E046F800E056F000E066F40 :103E8000000E076F1BEC23F00A0E0C6E00C10BF046 :103E90003AEC09F00B0E0C6E01C10BF03AEC09F094 :103EA0000C0E0C6E02C10BF03AEC09F00D0E0C6E0C :103EB00003C10BF03AEC09F004017A0E826F6EEC4C :103EC0000BF004012C0E826F6EEC0BF00401360E29 :103ED000826F6EEC0BF004012C0E826F6EEC0BF017 :103EE00021EC1EF0D9EF14F087C32AF188C32BF11F :103EF00089C32CF18AC32DF18BC32EF18CC32FF112 :103F00008DC330F18FC331F190C332F191C333F1DE :103F100001014DEC24F0C4EC23F0000E046F120EEE :103F2000056F000E066F000E076FFBEC22F001011B :103F30000A0E046F000E056F000E066F000E076F6D :103F40001BEC23F0120E0C6E00C10BF03AEC09F0E2 :103F5000130E0C6E01C10BF03AEC09F0140E0C6E4E :103F600002C10BF03AEC09F0150E0C6E03C10BF018 :103F70003AEC09F004017A0E826F6EEC0BF004014A :103F80002C0E826F6EEC0BF00401370E826F6EEC1C :103F90000BF004012C0E826F6EEC0BF0A5EC1DF003 :103FA000D9EF14F087C32AF188C32BF189C32CF110 :103FB0008AC32DF18BC32EF18CC32FF18DC330F149 :103FC0008EC331F190C332F191C333F10101296BFA :103FD0004DEC24F0C4EC23F0880E046F130E056F33 :103FE000000E066F000E076FEFEC22F0000E046F5C :103FF000040E056F000E066F000E076FFBEC22F03B :104000000101E80E046F800E056F000E066F000EB2 :10401000076F1BEC23F0060E0C6E00C10BF03AECA0 :1040200009F0070E0C6E01C10BF03AEC09F0080E16 :104030000C6E02C10BF03AEC09F0090E0C6E03C1D4 :104040000BF03AEC09F004017A0E826F6EEC0BF083 :1040500004012C0E826F6EEC0BF00401380E826F9F :104060006EEC0BF004012C0E826F6EEC0BF037EC53 :104070001EF0D9EF14F081B803D036B0F9EF20F07C :1040800007A8B3EF20F00101800E006F1A0E016F38 :10409000060E026F000E036F4BC104F14CC105F117 :1040A0004DC106F14EC107F1EAEC22F003BFF9EF72 :1040B00020F045EC21F04BC100F14CC101F14DC1A4 :1040C00002F14EC103F10782F7EC21F018C104F1AF :1040D00019C105F11AC106F11BC107F1F80E006FF5 :1040E000CD0E016F660E026F030E036FEAEC22F035 :1040F0000E0E0C6E00C10BF03AEC09F00F0E0C6EB8 :1041000001C10BF03AEC09F0100E0C6E02C10BF07D :104110003AEC09F0110E0C6E03C10BF03AEC09F009 :1041200007840101FFEC23F057C100F158C101F1F0 :1041300007940A0E0C6E00C10BF03AEC09F00B0E5E :104140000C6E01C10BF03AEC09F00C0E0C6E02C1C2 :104150000BF03AEC09F00D0E0C6E03C10BF03AECCB :1041600009F0F9EF20F007AAF9EF20F00784010128 :10417000FFEC23F057C100F158C101F10794060E7E :104180000C6E00C10BF03AEC09F0070E0C6E01C189 :104190000BF03AEC09F0080E0C6E02C10BF03AEC91 :1041A00009F0090E0C6E03C10BF03AEC09F007841C :1041B00062C100F163C101F164C102F165C103F1A3 :1041C0000794120E0C6E00C10BF03AEC09F0130EBE :1041D0000C6E01C10BF03AEC09F0140E0C6E02C12A :1041E0000BF03AEC09F0150E0C6E03C10BF03AEC33 :1041F00009F00798079A0401805181197F0B0DE09F :104200009EA8FED714EE00F081517F0BE126E75007 :10421000812B0F01AD6EFBEF20F0C0EF0AF018C14B :1042200000F119C101F11AC102F11BC103F1000E25 :10423000046F000E056F010E066F000E076F1BEC7A :1042400023F029A13AEF21F02051D8B43AEF21F020 :1042500018C100F119C101F11AC102F11BC103F12A :10426000000E046F000E056F0A0E066F000E076F3A :104270001BEC23F01200010104510013055101133E :10428000065102130751031312000101186B196B39 :104290001A6B1B6B12002AC182F40401300E8227B4 :1042A0006EEC0BF02BC182F40401300E82276EEC11 :1042B0000BF02CC182F40401300E82276EEC0BF05F :1042C0002DC182F40401300E82276EEC0BF02EC15A :1042D00082F40401300E82276EEC0BF02FC182F4C1 :1042E0000401300E82276EEC0BF030C182F4040121 :1042F000300E82276EEC0BF031C182F40401300ED7 :1043000082276EEC0BF032C182F40401300E82275A :104310006EEC0BF033C182F40401300E82276EEC98 :104320000BF012002FC182F40401300E82276EECD4 :104330000BF030C182F40401300E82276EEC0BF0DA :1043400031C182F40401300E82276EEC0BF032C1D1 :1043500082F40401300E82276EEC0BF033C182F43C :104360000401300E82276EEC0BF01200060E216E57 :10437000060E226E060E236E212EBCEF21F0222E99 :10438000BCEF21F0232EBCEF21F08B84020E216EB6 :10439000020E226E020E236E212ECCEF21F0222E71 :1043A000CCEF21F0232ECCEF21F08B941200FF0EE6 :1043B000226E22C023F0030E216E8B84212EDDEFAE :1043C00021F0030E216E232EDDEF21F08B9422C00D :1043D00023F0030E216E212EEBEF21F0030E216E50 :1043E000233EEBEF21F0222ED9EF21F01200010144 :1043F000005305E1015303E1025301E1002BBAEC44 :1044000022F0FFEC23F03951006F3A51016F420E58 :10441000046F4B0E056F000E066F000E076FFBEC6E :1044200022F000C104F101C105F102C106F103C18E :1044300007F118C100F119C101F11AC102F11BC144 :1044400003F107B228EF22F0EFEC22F02AEF22F07E :10445000EAEC22F000C118F101C119F102C11AF110 :1044600003C11BF11200FFEC23F059C100F15AC146 :1044700001F1060E51EC09F0E8CF04F1070E51EC02 :1044800009F0E8CF05F1080E51EC09F0E8CF06F18C :10449000090E51EC09F0E8CF07F1EAEC22F000C177 :1044A00024F101C125F102C126F103C127F1290E32 :1044B000046F000E056F000E066F000E076FFBEC19 :1044C00022F0EE0E046F430E056F000E066F000E15 :1044D000076FEFEC22F024C104F125C105F126C1DC :1044E00006F127C107F1FBEC22F000C11CF101C16C :1044F0001DF102C11EF103C11FF1120E51EC09F0B2 :10450000E8CF04F1130E51EC09F0E8CF05F1140ED9 :1045100051EC09F0E8CF06F1150E51EC09F0E8CFA7 :1045200007F10D0E006F000E016F000E026F000EFE :10453000036FFBEC22F0180E046F000E056F000EE7 :10454000066F000E076F1BEC23F01CC104F11DC1A8 :1045500005F11EC106F11FC107F1EFEC22F06A0E52 :10456000046F2A0E056F000E066F000E076FEAEC4F :1045700022F01200BF0EFA6E200E3A6F396BD890FF :104580000037013702370337D8B0CBEF22F03A2F8C :10459000C0EF22F039073A070353D8B412000331B1 :1045A000070B80093F6F03390F0B010F396F80EC48 :1045B0005FF0406F390580EC5FF0405D405F396B24 :1045C0003F33D8B0392739333FA9E0EF22F04051CB :1045D00039271200010124EC24F0D8B012000101A7 :1045E00003510719346FE7EC23F0D89007510319F2 :1045F00034AF800F12000101346B0BEC24F0D8A013 :1046000021EC24F0D8B01200F6EC23F0FFEC23F0FC :104610001F0E366F37EC24F00B35D8B0E7EC23F0E3 :10462000D8A00335D8B01200362F0AEF23F034B1EA :104630000EEC24F012000101346B04510511061137 :1046400007110008D8A00BEC24F0D8A021EC24F02E :10465000D8B01200086B096B0A6B0B6B37EC24F0B7 :104660001F0E366F37EC24F007510B5DD8A445EFD1 :1046700023F006510A5DD8A445EF23F00551095DEA :10468000D8A445EF23F00451085DD8A058EF23F0DB :104690000451085F0551D8A0053D095F0651D8A017 :1046A000063D0A5F0751D8A0073D0B5FD8900081F7 :1046B000362F32EF23F034B10EEC24F0346B0BECD8 :1046C00024F0D8903BEC24F007510B5DD8A475EF93 :1046D00023F006510A5DD8A475EF23F00551095D5A :1046E000D8A475EF23F00451085DD8A084EF23F01F :1046F000003F84EF23F0013F84EF23F0023F84EF7B :1047000023F0032BD8B4120034B10EEC24F01200C5 :104710000101346B0BEC24F0D8B0120040EC24F013 :10472000200E366F003701370237033711EE33F0B2 :104730000A0E376FE7360A0EE75CD8B0E76EE5522F :10474000372F9AEF23F0362F92EF23F034B12981DF :10475000D890120040EC24F0200E366F003701375D :104760000237033711EE33F00A0E376FE7360A0EC1 :10477000E75CD8B0E76EE552372FB6EF23F0362F5F :10478000AEEF23F0D890120001010A0E346F200E14 :10479000366F11EE29F03451376F0A0ED890E65279 :1047A000D8B0E726E732372FCFEF23F003330233B9 :1047B00001330033362FC9EF23F0E750FF0FD8A0A5 :1047C0000335D8B0120029B10EEC24F012000451C8 :1047D00000270551D8B0053D01270651D8B0063D48 :1047E00002270751D8B0073D032712000051086F78 :1047F0000151096F02510A6F03510B6F1200010141 :10480000006B016B026B036B12000101046B056B03 :10481000066B076B12000335D8A012000351800B02 :10482000001F011F021F031F003F1EEF24F0013F66 :104830001EEF24F0023F1EEF24F0032B342B032540 :1048400012000735D8A012000751800B041F051F66 :10485000061F071F043F34EF24F0053F34EF24F018 :10486000063F34EF24F0072B342B072512000037C6 :10487000013702370337083709370A370B37120079 :104880000101296B2A6B2B6B2C6B2D6B2E6B2F6B05 :10489000306B316B326B336B120001012A510F0BFD :1048A0002A6F2B510F0B2B6F2C510F0B2C6F2D518F :1048B0000F0B2D6F2E510F0B2E6F2F510F0B2F6FD4 :1048C00030510F0B306F31510F0B316F32510F0BD5 :1048D000326F33510F0B336F120000C124F101C14D :1048E00025F102C126F103C127F104C100F105C180 :1048F00001F106C102F107C103F124C104F125C190 :1049000005F126C106F127C107F112000001195077 :10491000FF0A01E11200390EC86E800EC76E280E24 :10492000C66E000EC56E1850000AD8B4C1EF24F050 :104930001850010AD8B4DAEF24F01850020AD8B49B :10494000F3EF24F01850030AD8B40CEF25F01850F8 :10495000040AD8B434EF25F01850050AD8B44DEF46 :1049600025F01850060AD8B466EF25F01850070A4B :10497000D8B47FEF25F01850080AD8B498EF25F086 :1049800012001950000AD8B4B7EF25F01950010AE7 :10499000D8B4BBEF25F01950020AD8B4BFEF25F008 :1049A0001950030AD8B4C3EF25F01950040AD8B43B :1049B00036EF26F01950000AD8B4CBEF25F0195085 :1049C000010AD8B4CFEF25F01950020AD8B4D3EFBA :1049D00025F01950030AD8B4D7EF25F01950040A6E :1049E000D8B436EF26F01950000AD8B4DBEF25F022 :1049F0001950010AD8B4DFEF25F01950020AD8B4D3 :104A0000E3EF25F01950030AD8B4E7EF25F0195069 :104A1000040AD8B436EF26F01950000AD8B4F4EFDF :104A200025F01950010AD8B4F8EF25F01950020A00 :104A3000D8B4FCEF25F01950030AD8B410EF26F0D3 :104A40001950040AD8B414EF26F01950050AD8B446 :104A500018EF26F01950060AD8B41CEF26F01950AA :104A6000070AD8B41FEF26F01950000AD8B423EF74 :104A700026F01950010AD8B427EF26F01950020A7F :104A8000D8B42BEF26F01950030AD8B42FEF26F034 :104A90001950040AD8B432EF26F01950000AD8B4DD :104AA0003AEF26F01950010AD8B43EEF26F019501B :104AB000020AD8B442EF26F01950030AD8B446EFE0 :104AC00026F01950040AD8B436EF26F01950000A1F :104AD000D8B450EF26F01950010AD8B454EF26F09C :104AE0001950020AD8B458EF26F01950030AD8B466 :104AF0005CEF26F01950040AD8B436EF26F01950AE :104B0000000AD8B45DEF26F01950010AD8B461EF5D :104B100026F01950020AD8B465EF26F01950030A9E :104B2000D8B469EF26F01950040AD8B436EF26F04D :104B30001950000AD8B46AEF26F01950010AD8B407 :104B40006EEF26F01950020AD8B472EF26F0195011 :104B5000030AD8B476EF26F01950040AD8B477EFD8 :104B600026F01950050AD8B47AEF26F012009E9666 :104B7000C580192A1200E20EC96E192A1200770E9A :104B8000C96E192A1200020EE86E8AB4E88AE8CFCC :104B9000C9FF192A12009E96C580192A1200E20E3A :104BA000C96E192A1200790EC96E192A1200000E58 :104BB000C96E192A12009E96C580192A1200E20EAB :104BC000C96E192A12007A0EC96E192A12001BBC6E :104BD00003D0E6C1E8FF04D01B50E844E8441F09B5 :104BE000E8CFC9FF192A12009E96C580192A120023 :104BF000E20EC96E192A120011BA03D011BC01D0FD :104C000003D0050E186E3ED00101E2670CEF26F0CE :104C1000100EC96E0EEF26F0E2C1C9FF192A12006C :104C2000E3C1C9FF192A1200E4C1C9FF192A120001 :104C3000E5C1C9FF192A1200C584192A1200FF0E06 :104C4000196E209E12009E96C580192A1200E20E4F :104C5000C96E192A1200760EC96E192A1200C5846F :104C6000192A1200FF0E196E209E1200C584182A00 :104C7000196A12009E96C580192A1200E20EC96EAA :104C8000192A12007B0EC96E192A120011AA04D02B :104C9000230EC96E192A12001C0EC96E192A1200A1 :104CA0009E96C580192A1200E20EC96E192A1200BA :104CB0007C0EC96E192A1200E9D79E96C580192A62 :104CC0001200E20EC96E192A12007D0EC96E192A51 :104CD0001200DCD79E96C580192A1200E20EC96E1A :104CE000192A12007E0EC96E192A1200CFD7C58468 :104CF000192A1200FF0E196E209E12001950FF0A89 :104D0000D8B43CEF27F0390EC86E800EC76E280E5F :104D1000C66E000EC56E1850000AD8B497EF26F084 :104D20001850010AD8B4ABEF26F03CEF27F0195029 :104D3000000AD8B4E9EF26F01950010AD8B4EDEF13 :104D400026F01950020AD8B4F7EF26F01950030ADA :104D5000D8B4FAEF26F01950000AD8B400EF27F0C3 :104D60001950010AD8B404EF27F01950020AD8B438 :104D70000EEF27F01950030AD8B411EF27F019509D :104D8000040AD8B417EF27F01950050AD8B41AEF5F :104D900027F01950060AD8B420EF27F01950070A57 :104DA000D8B423EF27F01950080AD8B429EF27F018 :104DB0001950090AD8B42CEF27F019500A0AD8B4B0 :104DC00032EF27F019500B0AD8B435EF27F03CEF3B :104DD00027F09E96C5803BEF27F01AB004D04E0E08 :104DE000C96E3BEF27F0500EC96E3BEF27F0C5842C :104DF0003BEF27F0182AFF0E196E12803CEF27F0C8 :104E00009E96C5803BEF27F01AB004D04F0EC96EB6 :104E10003BEF27F0510EC96E3BEF27F0C5863BEF05 :104E200027F0C9CF27F0C59AC5883BEF27F0C58684 :104E30003BEF27F0C9CF28F0C59AC5883BEF27F094 :104E4000C5863BEF27F0C9CF29F0C59AC5883BEF4F :104E500027F0C5863BEF27F0C9CF2AF0C58AC58861 :104E60003BEF27F0C5843BEF27F0FF0E196E12864B :104E7000209C3CEF27F0192A120012B012D012B277 :104E800013D012B414D012A6120007B0120012965A :104E900027C02BF028C02CF029C02DF02AC02EF0FE :104EA000120012901282120012921284120000015B :104EB0001950FF0A04E11294196A7EEC26F01200E0 :104EC0001950FF0AD8B43CEF27F025EC28F0185011 :104ED000000AD8B473EF27F01850010AD8B4B1EF24 :104EE00027F03CEF27F01950000AD8B4E5EF27F07F :104EF0001950010AD8B4EAEF27F01950020AD8B4C1 :104F0000EEEF27F01950030AD8B4F2EF27F019504A :104F1000040AD8B4FAEF27F01950050AD8B4FDEF07 :104F200027F01950060AD8B404EF28F01950070AE0 :104F3000D8B407EF28F01950080AD8B40EEF28F0BB :104F40001950090AD8B411EF28F019500A0AD8B438 :104F500018EF28F019500B0AD8B41BEF28F03CEFDB :104F600027F01950000AD8B421EF28F01950010A8F :104F7000D8B421EF28F01950020AD8B421EF28F054 :104F80001950030AD8B421EF28F01950040AD8B4F4 :104F900021EF28F01950050AD8B421EF28F0195054 :104FA000060AD8B421EF28F01950070AD8B421EF27 :104FB00028F01950080AD8B421EF28F01950090A2E :104FC000D8B421EF28F03CEF27F09E96C596C58017 :104FD00023EF28F0520EC96E23EF28F0B40EC96EED :104FE00023EF28F0C9CF32F0326AC586C59AC5884A :104FF00023EF28F0C58623EF28F0C9CF33F0336ABA :10500000C59AC58823EF28F0C58623EF28F0C9CFBD :1050100034F0346AC59AC58823EF28F0C58623EF9B :1050200028F0C9CF35F0356AC58AC58823EF28F046 :10503000C58423EF28F0FF0E196E1286209C24EF02 :1050400028F024EF28F0192A1200390EC86E800EBD :0C505000C76E280EC66E000EC56E120062 :10BF0000E844F926000C160C2B0C3F0C520C640C68 :10BF1000760C860C960CA50CB30CC10CCF0CDC0C6B :06BF2000E80CF40C000C1B :00000001FF ./uglyfont.pas0000644000175000017500000003745714576573021013543 0ustar anthonyanthony// Copyright: Soji Yamakawa (CaptainYS, E-Mail: PEB01130*nifty+com <- Replace * with @, + with .) // // I don't abandon the copyright, but you can use this code and the header // (uglyfont.cpp and uglyfont.h) for your product regardless of the purpose, // i.e., free or commercial, open source or proprietary. // // However, I do not take any responsibility for the consequence of using // this code and header. Please use on your own risks. // // January 5, 2005 // // Soji Yamakawa unit uglyfont; interface uses gl; // YsDrawUglyFont function draws text using an ugly vector-font set. // The size of a letter are 1.0x1.0 (no thickness in z direction). // The size and the location on the display can be controlled by // glScale and glTranslate (not glRasterPos) // This function uses OpenGL's display list 1400 to 1655. If it conflicts with // your program, modify const int YsUglyFontBase=1400; procedure YsDrawUglyFont(str: string; centering: integer; useDisplayList: integer = 1); procedure glTextOut(x, y, z: double; sx, sy, sz: double; center: integer; str: string); // The following integer arrays define the ugly font geometry // Coordinate ranges in the arrays are 0<=x<=100 and 0<=y<=100. const YsUglyFontWid: double = 100; YsUglyFontHei: double = 100; var (* *) Ptn032: array [0..1] of integer = (32, -1); (* ! *) Ptn033: array [0..19] of integer = (33, 0, 3, 50, 100, 75, 100, 50, 25, 0, 4, 50, 16, 62, 16, 62, 0, 50, 0, -1); (* " *) Ptn034: array [0..11] of integer = (34, 2, 4, 37, 100, 37, 83, 62, 100, 62, 83, -1); (* # *) Ptn035: array [0..19] of integer = (35, 2, 8, 12, 66, 87, 66, 12, 33, 87, 33, 37, 91, 37, 8, 62, 8, 62, 91, -1); (* $ *) Ptn036: array [0..37] of integer = (36, 1, 12, 87, 75, 75, 83, 25, 83, 12, 75, 12, 58, 25, 50, 75, 50, 87, 41, 87, 25, 75, 16, 25, 16, 12, 25, 2, 4, 37, 91, 37, 8, 62, 8, 62, 91, -1); (* % *) Ptn037: array [0..31] of integer = (37, 1, 2, 87, 100, 12, 0, 1, 5, 12, 100, 37, 100, 37, 75, 12, 75, 12, 100, 1, 5, 87, 0, 87, 25, 62, 25, 62, 0, 87, 0, -1); (* & *) Ptn038: array [0..25] of integer = (38, 1, 11, 87, 33, 62, 0, 25, 0, 0, 16, 0, 41, 75, 83, 75, 91, 62, 100, 37, 100, 25, 83, 87, 0, -1); (* ' *) Ptn039: array [0..9] of integer = (39, 0, 3, 50, 83, 50, 100, 62, 100, -1); (* ( *) Ptn040: array [0..15] of integer = (40, 1, 6, 62, 100, 37, 83, 25, 58, 25, 41, 37, 16, 62, 0, -1); (* ) *) Ptn041: array [0..15] of integer = (41, 1, 6, 37, 100, 62, 83, 75, 58, 75, 41, 62, 16, 37, 0, -1); (* * *) Ptn042: array [0..19] of integer = (42, 2, 8, 50, 100, 50, 0, 0, 50, 100, 50, 87, 91, 12, 8, 87, 8, 12, 91, -1); (* + *) Ptn043: array [0..11] of integer = (43, 2, 4, 12, 50, 87, 50, 50, 75, 50, 25, -1); (* , *) Ptn044: array [0..11] of integer = (44, 1, 4, 37, 25, 62, 25, 62, 8, 37, -8, -1); (* - *) Ptn045: array [0..7] of integer = (45, 1, 2, 12, 50, 87, 50, -1); (* . *) Ptn046: array [0..11] of integer = (46, 0, 4, 37, 16, 62, 16, 62, 0, 37, 0, -1); (* / *) Ptn047: array [0..7] of integer = (47, 1, 2, 100, 100, 0, 0, -1); (* 0 *) Ptn048: array [0..27] of integer = (48, 1, 9, 25, 100, 75, 100, 100, 83, 100, 16, 75, 0, 25, 0, 0, 16, 0, 83, 25, 100, 1, 2, 87, 91, 12, 8, -1); (* 1 *) Ptn049: array [0..9] of integer = (49, 1, 3, 25, 83, 50, 100, 50, 0, -1); (* 2 *) Ptn050: array [0..19] of integer = (50, 1, 8, 12, 83, 37, 100, 75, 100, 100, 83, 100, 66, 12, 16, 12, 0, 100, 0, -1); (* 3 *) Ptn051: array [0..25] of integer = (51, 1, 11, 12, 83, 37, 100, 75, 100, 100, 83, 100, 66, 75, 50, 100, 33, 100, 16, 75, 0, 25, 0, 0, 16, -1); (* 4 *) Ptn052: array [0..15] of integer = (52, 1, 3, 37, 100, 12, 25, 87, 25, 1, 2, 62, 75, 62, 0, -1); (* 5 *) Ptn053: array [0..23] of integer = (53, 1, 10, 87, 100, 12, 100, 12, 41, 37, 58, 62, 58, 87, 41, 87, 16, 62, 0, 37, 0, 12, 16, -1); (* 6 *) Ptn054: array [0..27] of integer = (54, 1, 12, 87, 83, 62, 100, 25, 100, 0, 83, 0, 16, 25, 0, 75, 0, 100, 16, 100, 33, 75, 50, 25, 50, 0, 33, -1); (* 7 *) Ptn055: array [0..13] of integer = (55, 1, 5, 12, 83, 12, 100, 87, 100, 50, 33, 50, 0, -1); (* 8 *) Ptn056: array [0..39] of integer = (56, 1, 9, 100, 83, 75, 100, 25, 100, 0, 83, 0, 66, 25, 50, 75, 50, 100, 66, 100, 83, 1, 8, 25, 50, 0, 33, 0, 16, 25, 0, 75, 0, 100, 16, 100, 33, 75, 50, -1); (* 9 *) Ptn057: array [0..27] of integer = (57, 1, 12, 0, 16, 25, 0, 75, 0, 100, 16, 100, 83, 75, 100, 25, 100, 0, 83, 0, 58, 25, 41, 75, 41, 100, 58, -1); (* : *) Ptn058: array [0..21] of integer = (58, 0, 4, 37, 91, 62, 91, 62, 75, 37, 75, 0, 4, 37, 25, 62, 25, 62, 8, 37, 8, -1); (* ; *) Ptn059: array [0..27] of integer = (59, 0, 4, 37, 91, 62, 91, 62, 75, 37, 75, 0, 4, 37, 25, 62, 25, 62, 8, 37, 8, 1, 2, 62, 8, 37, -8, -1); (* < *) Ptn060: array [0..9] of integer = (60, 1, 3, 87, 100, 12, 50, 87, 0, -1); (* = *) Ptn061: array [0..11] of integer = (61, 2, 4, 12, 66, 87, 66, 12, 33, 87, 33, -1); (* > *) Ptn062: array [0..9] of integer = (62, 1, 3, 12, 0, 87, 50, 12, 100, -1); (* ? *) Ptn063: array [0..29] of integer = (63, 1, 8, 12, 83, 37, 100, 75, 100, 100, 83, 100, 66, 75, 50, 50, 50, 50, 25, 0, 4, 50, 16, 62, 16, 62, 8, 50, 8, -1); (* @ *) Ptn064: array [0..39] of integer = (64, 1, 18, 62, 50, 50, 58, 25, 58, 12, 41, 12, 25, 25, 16, 50, 16, 62, 41, 75, 25, 87, 66, 75, 91, 62, 100, 25, 100, 0, 75, 0, 16, 25, 0, 62, 0, 87, 16, -1); (* A *) Ptn065: array [0..15] of integer = (65, 1, 3, 0, 0, 50, 100, 100, 0, 1, 2, 25, 50, 75, 50, -1); (* B *) Ptn066: array [0..29] of integer = (66, 1, 10, 0, 0, 0, 100, 75, 100, 87, 91, 87, 58, 75, 50, 100, 33, 100, 8, 87, 0, 0, 0, 1, 2, 75, 50, 0, 50, -1); (* C *) Ptn067: array [0..19] of integer = (67, 1, 8, 100, 83, 75, 100, 25, 100, 0, 83, 0, 16, 25, 0, 75, 0, 100, 16, -1); (* D *) Ptn068: array [0..17] of integer = (68, 1, 7, 0, 100, 75, 100, 100, 83, 100, 16, 75, 0, 0, 0, 0, 100, -1); (* E *) Ptn069: array [0..17] of integer = (69, 1, 4, 100, 100, 0, 100, 0, 0, 100, 0, 1, 2, 0, 50, 87, 50, -1); (* F *) Ptn070: array [0..15] of integer = (70, 1, 3, 100, 100, 0, 100, 0, 0, 1, 2, 0, 50, 75, 50, -1); (* G *) Ptn071: array [0..23] of integer = (71, 1, 10, 100, 83, 75, 100, 25, 100, 0, 83, 0, 16, 25, 0, 75, 0, 100, 16, 100, 41, 62, 41, -1); (* H *) Ptn072: array [0..15] of integer = (72, 2, 6, 0, 100, 0, 0, 100, 100, 100, 0, 0, 50, 100, 50, -1); (* I *) Ptn073: array [0..15] of integer = (73, 2, 6, 37, 100, 62, 100, 37, 0, 62, 0, 50, 0, 50, 100, -1); (* J *) Ptn074: array [0..21] of integer = (74, 1, 2, 75, 100, 100, 100, 1, 6, 87, 100, 87, 16, 62, 0, 37, 0, 12, 16, 12, 33, -1); (* K *) Ptn075: array [0..19] of integer = (75, 1, 2, 12, 100, 12, 0, 1, 2, 12, 33, 100, 100, 1, 2, 25, 41, 100, 0, -1); (* L *) Ptn076: array [0..9] of integer = (76, 1, 3, 0, 100, 0, 0, 100, 0, -1); (* M *) Ptn077: array [0..13] of integer = (77, 1, 5, 0, 0, 0, 100, 50, 50, 100, 100, 100, 0, -1); (* N *) Ptn078: array [0..11] of integer = (78, 1, 4, 0, 0, 0, 100, 100, 0, 100, 100, -1); (* O *) Ptn079: array [0..21] of integer = (79, 1, 9, 0, 83, 25, 100, 75, 100, 100, 83, 100, 16, 75, 0, 25, 0, 0, 16, 0, 83, -1); (* P *) Ptn080: array [0..17] of integer = (80, 1, 7, 0, 0, 0, 100, 75, 100, 100, 83, 100, 66, 75, 50, 0, 50, -1); (* Q *) Ptn081: array [0..27] of integer = (81, 1, 9, 25, 0, 0, 16, 0, 83, 25, 100, 75, 100, 100, 83, 100, 16, 75, 0, 25, 0, 1, 2, 62, 25, 100, 0, -1); (* R *) Ptn082: array [0..25] of integer = (82, 1, 7, 0, 0, 0, 100, 75, 100, 100, 83, 100, 66, 75, 50, 0, 50, 1, 3, 75, 50, 100, 33, 100, 0, -1); (* S *) Ptn083: array [0..27] of integer = (83, 1, 12, 100, 83, 75, 100, 25, 100, 0, 83, 0, 66, 25, 50, 75, 50, 100, 33, 100, 16, 75, 0, 25, 0, 0, 16, -1); (* T *) Ptn084: array [0..11] of integer = (84, 2, 4, 0, 100, 100, 100, 50, 100, 50, 0, -1); (* U *) Ptn085: array [0..15] of integer = (85, 1, 6, 0, 100, 0, 16, 25, 0, 75, 0, 100, 16, 100, 100, -1); (* V *) Ptn086: array [0..9] of integer = (86, 1, 3, 0, 100, 50, 0, 100, 100, -1); (* W *) Ptn087: array [0..13] of integer = (87, 1, 5, 0, 100, 25, 0, 50, 66, 75, 0, 100, 100, -1); (* X *) Ptn088: array [0..11] of integer = (88, 2, 4, 0, 0, 100, 100, 100, 0, 0, 100, -1); (* Y *) Ptn089: array [0..15] of integer = (89, 1, 3, 0, 100, 50, 50, 50, 0, 1, 2, 50, 50, 100, 100, -1); (* Z *) Ptn090: array [0..11] of integer = (90, 1, 4, 0, 100, 100, 100, 0, 0, 100, 0, -1); (* [ *) Ptn091: array [0..11] of integer = (91, 1, 4, 62, 100, 37, 100, 37, 0, 62, 0, -1); (* \ *) Ptn092: array [0..7] of integer = (92, 1, 2, 0, 100, 100, 0, -1); (* ] *) Ptn093: array [0..11] of integer = (93, 1, 4, 37, 100, 62, 100, 62, 0, 37, 0, -1); (* ^ *) Ptn094: array [0..9] of integer = (94, 1, 3, 0, 66, 50, 91, 100, 66, -1); (* _ *) Ptn095: array [0..7] of integer = (95, 1, 2, 0, 8, 100, 8, -1); (* ` *) Ptn096: array [0..9] of integer = (96, 0, 3, 37, 100, 50, 100, 50, 83, -1); (* a *) Ptn097: array [0..29] of integer = (97, 1, 5, 12, 50, 25, 58, 75, 58, 87, 50, 87, 0, 1, 7, 87, 33, 25, 33, 12, 25, 12, 8, 25, 0, 75, 0, 87, 8, -1); (* b *) Ptn098: array [0..17] of integer = (98, 1, 7, 12, 100, 12, 0, 75, 0, 87, 8, 87, 50, 75, 58, 12, 58, -1); (* c *) Ptn099: array [0..19] of integer = (99, 1, 8, 87, 50, 75, 58, 25, 58, 12, 50, 12, 8, 25, 0, 75, 0, 87, 8, -1); (* d *) Ptn100: array [0..19] of integer = (100, 1, 8, 87, 100, 87, 0, 25, 0, 12, 8, 12, 50, 25, 58, 75, 58, 87, 50, -1); (* e *) Ptn101: array [0..23] of integer = (101, 1, 10, 12, 33, 87, 33, 87, 50, 75, 58, 25, 58, 12, 50, 12, 8, 25, 0, 75, 0, 87, 8, -1); (* f *) Ptn102: array [0..17] of integer = (102, 1, 4, 75, 100, 62, 100, 50, 91, 50, 0, 1, 2, 25, 58, 75, 58, -1); (* g *) Ptn103: array [0..31] of integer = (103, 1, 5, 87, 58, 87, 0, 75, -8, 25, -8, 12, 0, 1, 8, 87, 50, 75, 58, 25, 58, 12, 50, 12, 33, 25, 25, 75, 25, 87, 33, -1); (* h *) Ptn104: array [0..19] of integer = (104, 1, 2, 12, 0, 12, 100, 1, 5, 12, 50, 25, 58, 75, 58, 87, 50, 87, 0, -1); (* i *) Ptn105: array [0..13] of integer = (105, 1, 2, 50, 75, 50, 66, 1, 2, 50, 58, 50, 0, -1); (* j *) Ptn106: array [0..17] of integer = (106, 1, 2, 50, 75, 50, 66, 1, 4, 50, 58, 50, 0, 37, -8, 12, -8, -1); (* k *) Ptn107: array [0..15] of integer = (107, 1, 2, 12, 100, 12, 0, 1, 3, 87, 0, 12, 33, 75, 58, -1); (* l *) Ptn108: array [0..9] of integer = (108, 1, 3, 37, 100, 50, 100, 50, 0, -1); (* m *) Ptn109: array [0..21] of integer = (109, 1, 5, 12, 0, 12, 58, 75, 58, 87, 50, 87, 0, 1, 3, 37, 58, 50, 50, 50, 0, -1); (* n *) Ptn110: array [0..13] of integer = (110, 1, 5, 12, 0, 12, 58, 75, 58, 87, 50, 87, 0, -1); (* o *) Ptn111: array [0..21] of integer = (111, 1, 9, 25, 0, 12, 8, 12, 50, 25, 58, 75, 58, 87, 50, 87, 8, 75, 0, 25, 0, -1); (* p *) Ptn112: array [0..23] of integer = (112, 1, 2, 12, 58, 12, -16, 1, 7, 12, 50, 25, 58, 75, 58, 87, 50, 87, 8, 75, 0, 12, 0, -1); (* q *) Ptn113: array [0..23] of integer = (113, 1, 2, 87, 58, 87, -16, 1, 7, 87, 50, 75, 58, 25, 58, 12, 50, 12, 8, 25, 0, 87, 0, -1); (* r *) Ptn114: array [0..15] of integer = (114, 1, 2, 25, 58, 25, 0, 1, 3, 25, 50, 62, 58, 87, 58, -1); (* s *) Ptn115: array [0..23] of integer = (115, 1, 10, 87, 50, 75, 58, 25, 58, 12, 50, 12, 41, 87, 16, 87, 8, 75, 0, 25, 0, 12, 8, -1); (* t *) Ptn116: array [0..17] of integer = (116, 1, 2, 25, 58, 75, 58, 1, 4, 37, 75, 37, 8, 50, 0, 75, 0, -1); (* u *) Ptn117: array [0..19] of integer = (117, 1, 5, 12, 58, 12, 8, 25, 0, 62, 0, 87, 8, 1, 2, 87, 58, 87, 0, -1); (* v *) Ptn118: array [0..9] of integer = (118, 1, 3, 12, 58, 50, 0, 87, 58, -1); (* w *) Ptn119: array [0..13] of integer = (119, 1, 5, 12, 58, 25, 0, 50, 41, 75, 0, 87, 58, -1); (* x *) Ptn120: array [0..11] of integer = (120, 2, 4, 87, 0, 12, 58, 87, 58, 12, 0, -1); (* y *) Ptn121: array [0..11] of integer = (121, 2, 4, 87, 58, 12, -25, 12, 58, 50, 16, -1); (* z *) Ptn122: array [0..11] of integer = (122, 1, 4, 12, 58, 87, 58, 12, 0, 87, 0, -1); (* { *) Ptn123: array [0..21] of integer = (123, 1, 6, 75, 100, 50, 100, 37, 91, 37, 8, 50, 0, 75, 0, 1, 2, 37, 50, 25, 50, -1); (* | *) Ptn124: array [0..7] of integer = (124, 1, 2, 50, 100, 50, 0, -1); (* } *) Ptn125: array [0..21] of integer = (125, 1, 6, 25, 0, 50, 0, 62, 8, 62, 91, 50, 100, 25, 100, 1, 2, 62, 50, 75, 50, -1); (* ~ *) Ptn126: array [0..7] of integer = (126, 1, 2, 0, 91, 100, 91, -1); YsUglyFontSet: array [0..255] of pinteger = (nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @Ptn032[0], @Ptn033[0], @Ptn034[0], @Ptn035[0], @Ptn036[0], @Ptn037[0], @Ptn038[0], @Ptn039[0], @Ptn040[0], @Ptn041[0], @Ptn042[0], @Ptn043[0], @Ptn044[0], @Ptn045[0], @Ptn046[0], @Ptn047[0], @Ptn048[0], @Ptn049[0], @Ptn050[0], @Ptn051[0], @Ptn052[0], @Ptn053[0], @Ptn054[0], @Ptn055[0], @Ptn056[0], @Ptn057[0], @Ptn058[0], @Ptn059[0], @Ptn060[0], @Ptn061[0], @Ptn062[0], @Ptn063[0], @Ptn064[0], @Ptn065[0], @Ptn066[0], @Ptn067[0], @Ptn068[0], @Ptn069[0], @Ptn070[0], @Ptn071[0], @Ptn072[0], @Ptn073[0], @Ptn074[0], @Ptn075[0], @Ptn076[0], @Ptn077[0], @Ptn078[0], @Ptn079[0], @Ptn080[0], @Ptn081[0], @Ptn082[0], @Ptn083[0], @Ptn084[0], @Ptn085[0], @Ptn086[0], @Ptn087[0], @Ptn088[0], @Ptn089[0], @Ptn090[0], @Ptn091[0], @Ptn092[0], @Ptn093[0], @Ptn094[0], @Ptn095[0], @Ptn096[0], @Ptn097[0], @Ptn098[0], @Ptn099[0], @Ptn100[0], @Ptn101[0], @Ptn102[0], @Ptn103[0], @Ptn104[0], @Ptn105[0], @Ptn106[0], @Ptn107[0], @Ptn108[0], @Ptn109[0], @Ptn110[0], @Ptn111[0], @Ptn112[0], @Ptn113[0], @Ptn114[0], @Ptn115[0], @Ptn116[0], @Ptn117[0], @Ptn118[0], @Ptn119[0], @Ptn120[0], @Ptn121[0], @Ptn122[0], @Ptn123[0], @Ptn124[0], @Ptn125[0], @Ptn126[0], nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil); const YsUglyFontBase: integer = 1400; implementation procedure YsDrawUglyFontPattern(ptn: pinteger); var j: integer; ptr: pinteger; begin if ptn <> nil then begin ptr := ptn; Inc(ptr); // Skip character code while ptr[0] <> -1 do begin case ptr[0] of 0: glBegin(GL_POLYGON); 1: glBegin(GL_LINE_STRIP); 2: glBegin(GL_LINES); end; for j := 0 to Pred(ptr[1]) do glVertex2i(ptr[2 + j * 2], ptr[3 + j * 2]); glEnd; ptr := ptr + 2 + ptr[1] * 2; end; end; glTranslated(YsUglyFontWid * 8 / 7, 0, 0); end; procedure YsMakeUglyFontDisplayList inline; var i: integer; begin //check if list is already filled if glIsList(YsUglyFontBase) <> GL_TRUE then //create a list for each character for i := 0 to Pred(256) do begin glNewList(YsUglyFontBase + i, GL_COMPILE); YsDrawUglyFontPattern(YsUglyFontSet[i]); glEndList; end; end; procedure YsDrawUglyFont(str: string; centering: integer; useDisplayList: integer); var l: integer; i: integer; begin l := Length(str); glPushMatrix; if centering <> 0 then glTranslated(-l / 2, -0.5, 0); glScaled(1 / (YsUglyFontWid * 8 / 7), 1 / YsUglyFontHei, 1); if useDisplayList <> 0 then begin YsMakeUglyFontDisplayList; glPushAttrib(GL_LIST_BIT); glListBase(YsUglyFontBase); glCallLists(l, GL_UNSIGNED_BYTE, @str[1]); glPopAttrib; end else begin i := 0; while str[i] <> #0 do begin YsDrawUglyFontPattern(YsUglyFontSet[Ord(str[i])]); Inc(i); end; end; glPopMatrix; end; //simple GL wrapper procedure glTextOut(x, y, z: double; sx, sy, sz: double; center: integer; str: string); begin glPushMatrix; glTranslatef(x, y, z); glScalef(sx, -sy, sz); YsDrawUglyFont(str, center); glPopMatrix; end; end. ./arrow-down.png0000644000175000017500000000175614576573022013766 0ustar anthonyanthonyPNG  IHDR szzsBIT|d pHYsvv}ՂtEXtSoftwarewww.inkscape.org<kIDATxkUƟs&iS )ExOHۛ"6BlIAŏ@Y&M;33g9z2g[fIp 4Y9\w4Kaڑ:dQ*9ط#QFً2Oe^8+q(getzʕ+^0c,g'MC~jS3o=<@UЅ]p^ yp=\s@E\>4MnǃE'&"t& C?zHS1HZ x~BMA~:fBJ磗F* sF+F'Y" :fζ5;6rEeh/%TdJtPVUp=C1yM[+6&;/F,c9p=Jx_(!0oеg`m(5|F*x B fHdp Y,]15NEJ^&2!snC4LGcyV1%Ux %Q:i?{:[&"xWaď)|(x@3m~awA]ňქ;c=\ϨccCYQDtgIENDB`./nntpsend.pas0000644000175000017500000003476114576573021013520 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 001.005.003 | |==============================================================================| | Content: NNTP client | |==============================================================================| | Copyright (c)1999-2011, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c) 1999-2011. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@abstract(NNTP client) NNTP (network news transfer protocol) Used RFC: RFC-977, RFC-2980 } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} {$IFDEF UNICODE} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$WARN SUSPICIOUS_TYPECAST OFF} {$ENDIF} unit nntpsend; interface uses SysUtils, Classes, blcksock, synautil; const cNNTPProtocol = '119'; type {:abstract(Implementation of Network News Transfer Protocol. Note: Are you missing properties for setting Username and Password? Look to parent @link(TSynaClient) object! Are you missing properties for specify server address and port? Look to parent @link(TSynaClient) too!} TNNTPSend = class(TSynaClient) private FSock: TTCPBlockSocket; FResultCode: Integer; FResultString: string; FData: TStringList; FDataToSend: TStringList; FAutoTLS: Boolean; FFullSSL: Boolean; FNNTPcap: TStringList; function ReadResult: Integer; function ReadData: boolean; function SendData: boolean; function Connect: Boolean; public constructor Create; destructor Destroy; override; {:Connects to NNTP server and begin session.} function Login: Boolean; {:Logout from NNTP server and terminate session.} function Logout: Boolean; {:By this you can call any NNTP command.} function DoCommand(const Command: string): boolean; {:by this you can call any NNTP command. This variant is used for commands for download information from server.} function DoCommandRead(const Command: string): boolean; {:by this you can call any NNTP command. This variant is used for commands for upload information to server.} function DoCommandWrite(const Command: string): boolean; {:Download full message to @link(data) property. Value can be number of message or message-id (in brackets).} function GetArticle(const Value: string): Boolean; {:Download only body of message to @link(data) property. Value can be number of message or message-id (in brackets).} function GetBody(const Value: string): Boolean; {:Download only headers of message to @link(data) property. Value can be number of message or message-id (in brackets).} function GetHead(const Value: string): Boolean; {:Get message status. Value can be number of message or message-id (in brackets).} function GetStat(const Value: string): Boolean; {:Select given group.} function SelectGroup(const Value: string): Boolean; {:Tell to server 'I have mesage with given message-ID.' If server need this message, message is uploaded to server.} function IHave(const MessID: string): Boolean; {:Move message pointer to last item in group.} function GotoLast: Boolean; {:Move message pointer to next item in group.} function GotoNext: Boolean; {:Download to @link(data) property list of all groups on NNTP server.} function ListGroups: Boolean; {:Download to @link(data) property list of all groups created after given time.} function ListNewGroups(Since: TDateTime): Boolean; {:Download to @link(data) property list of message-ids in given group since given time.} function NewArticles(const Group: string; Since: TDateTime): Boolean; {:Upload new article to server. (for new messages by you)} function PostArticle: Boolean; {:Tells to remote NNTP server 'I am not NNTP client, but I am another NNTP server'.} function SwitchToSlave: Boolean; {:Call NNTP XOVER command.} function Xover(xoStart, xoEnd: string): boolean; {:Call STARTTLS command for upgrade connection to SSL/TLS mode.} function StartTLS: Boolean; {:Try to find given capability in extension list. This list is getted after successful login to NNTP server. If extension capability is not found, then return is empty string.} function FindCap(const Value: string): string; {:Try get list of server extensions. List is returned in @link(data) property.} function ListExtensions: Boolean; published {:Result code number of last operation.} property ResultCode: Integer read FResultCode; {:String description of last result code from NNTP server.} property ResultString: string read FResultString; {:Readed data. (message, etc.)} property Data: TStringList read FData; {:If is set to @true, then upgrade to SSL/TLS mode after login if remote server support it.} property AutoTLS: Boolean read FAutoTLS Write FAutoTLS; {:SSL/TLS mode is used from first contact to server. Servers with full SSL/TLS mode usualy using non-standard TCP port!} property FullSSL: Boolean read FFullSSL Write FFullSSL; {:Socket object used for TCP/IP operation. Good for seting OnStatus hook, etc.} property Sock: TTCPBlockSocket read FSock; end; implementation constructor TNNTPSend.Create; begin inherited Create; FSock := TTCPBlockSocket.Create; FSock.Owner := self; FData := TStringList.Create; FDataToSend := TStringList.Create; FNNTPcap := TStringList.Create; FSock.ConvertLineEnd := True; FTimeout := 60000; FTargetPort := cNNTPProtocol; FAutoTLS := False; FFullSSL := False; end; destructor TNNTPSend.Destroy; begin FSock.Free; FDataToSend.Free; FData.Free; FNNTPcap.Free; inherited Destroy; end; function TNNTPSend.ReadResult: Integer; var s: string; begin Result := 0; FData.Clear; s := FSock.RecvString(FTimeout); FResultString := Copy(s, 5, Length(s) - 4); if FSock.LastError <> 0 then Exit; if Length(s) >= 3 then Result := StrToIntDef(Copy(s, 1, 3), 0); FResultCode := Result; end; function TNNTPSend.ReadData: boolean; var s: string; begin repeat s := FSock.RecvString(FTimeout); if s = '.' then break; if (s <> '') and (s[1] = '.') then s := Copy(s, 2, Length(s) - 1); FData.Add(s); until FSock.LastError <> 0; Result := FSock.LastError = 0; end; function TNNTPSend.SendData: boolean; var s: string; n: integer; begin for n := 0 to FDataToSend.Count - 1 do begin s := FDataToSend[n]; if (s <> '') and (s[1] = '.') then s := s + '.'; FSock.SendString(s + CRLF); if FSock.LastError <> 0 then break; end; if FDataToSend.Count = 0 then FSock.SendString(CRLF); if FSock.LastError = 0 then FSock.SendString('.' + CRLF); FDataToSend.Clear; Result := FSock.LastError = 0; end; function TNNTPSend.Connect: Boolean; begin FSock.CloseSocket; FSock.Bind(FIPInterface, cAnyPort); if FSock.LastError = 0 then FSock.Connect(FTargetHost, FTargetPort); if FSock.LastError = 0 then if FFullSSL then FSock.SSLDoConnect; Result := FSock.LastError = 0; end; function TNNTPSend.Login: Boolean; begin Result := False; FNNTPcap.Clear; if not Connect then Exit; Result := (ReadResult div 100) = 2; if Result then begin ListExtensions; FNNTPcap.Assign(Fdata); if (not FullSSL) and FAutoTLS and (FindCap('STARTTLS') <> '') then Result := StartTLS; end; if (FUsername <> '') and Result then begin FSock.SendString('AUTHINFO USER ' + FUsername + CRLF); if (ReadResult div 100) = 3 then begin FSock.SendString('AUTHINFO PASS ' + FPassword + CRLF); Result := (ReadResult div 100) = 2; end; end; end; function TNNTPSend.Logout: Boolean; begin FSock.SendString('QUIT' + CRLF); Result := (ReadResult div 100) = 2; FSock.CloseSocket; end; function TNNTPSend.DoCommand(const Command: string): Boolean; begin FSock.SendString(Command + CRLF); Result := (ReadResult div 100) = 2; Result := Result and (FSock.LastError = 0); end; function TNNTPSend.DoCommandRead(const Command: string): Boolean; begin Result := DoCommand(Command); if Result then begin Result := ReadData; Result := Result and (FSock.LastError = 0); end; end; function TNNTPSend.DoCommandWrite(const Command: string): Boolean; var x: integer; begin FDataToSend.Assign(FData); FSock.SendString(Command + CRLF); x := (ReadResult div 100); if x = 3 then begin SendData; x := (ReadResult div 100); end; Result := x = 2; Result := Result and (FSock.LastError = 0); end; function TNNTPSend.GetArticle(const Value: string): Boolean; var s: string; begin s := 'ARTICLE'; if Value <> '' then s := s + ' ' + Value; Result := DoCommandRead(s); end; function TNNTPSend.GetBody(const Value: string): Boolean; var s: string; begin s := 'BODY'; if Value <> '' then s := s + ' ' + Value; Result := DoCommandRead(s); end; function TNNTPSend.GetHead(const Value: string): Boolean; var s: string; begin s := 'HEAD'; if Value <> '' then s := s + ' ' + Value; Result := DoCommandRead(s); end; function TNNTPSend.GetStat(const Value: string): Boolean; var s: string; begin s := 'STAT'; if Value <> '' then s := s + ' ' + Value; Result := DoCommand(s); end; function TNNTPSend.SelectGroup(const Value: string): Boolean; begin Result := DoCommand('GROUP ' + Value); end; function TNNTPSend.IHave(const MessID: string): Boolean; begin Result := DoCommandWrite('IHAVE ' + MessID); end; function TNNTPSend.GotoLast: Boolean; begin Result := DoCommand('LAST'); end; function TNNTPSend.GotoNext: Boolean; begin Result := DoCommand('NEXT'); end; function TNNTPSend.ListGroups: Boolean; begin Result := DoCommandRead('LIST'); end; function TNNTPSend.ListNewGroups(Since: TDateTime): Boolean; begin Result := DoCommandRead('NEWGROUPS ' + SimpleDateTime(Since) + ' GMT'); end; function TNNTPSend.NewArticles(const Group: string; Since: TDateTime): Boolean; begin Result := DoCommandRead('NEWNEWS ' + Group + ' ' + SimpleDateTime(Since) + ' GMT'); end; function TNNTPSend.PostArticle: Boolean; begin Result := DoCommandWrite('POST'); end; function TNNTPSend.SwitchToSlave: Boolean; begin Result := DoCommand('SLAVE'); end; function TNNTPSend.Xover(xoStart, xoEnd: string): Boolean; var s: string; begin s := 'XOVER ' + xoStart; if xoEnd <> xoStart then s := s + '-' + xoEnd; Result := DoCommandRead(s); end; function TNNTPSend.StartTLS: Boolean; begin Result := False; if FindCap('STARTTLS') <> '' then begin if DoCommand('STARTTLS') then begin Fsock.SSLDoConnect; Result := FSock.LastError = 0; end; end; end; function TNNTPSend.ListExtensions: Boolean; begin Result := DoCommandRead('LIST EXTENSIONS'); end; function TNNTPSend.FindCap(const Value: string): string; var n: Integer; s: string; begin s := UpperCase(Value); Result := ''; for n := 0 to FNNTPcap.Count - 1 do if Pos(s, UpperCase(FNNTPcap[n])) = 1 then begin Result := FNNTPcap[n]; Break; end; end; {==============================================================================} end. ./date2dec.lrs0000644000175000017500000001360414576573022013351 0ustar anthonyanthony{ This is an automatically generated lazarus resource file } LazarusResources.Add('TForm10','FORMDATA',[ 'TPF0'#7'TForm10'#6'Form10'#4'Left'#3#12#6#6'Height'#2'u'#3'Top'#3#169#1#5'Wi' +'dth'#3#232#3#7'Caption'#6#20'.dat to decimal date'#12'ClientHeight'#2'u'#11 +'ClientWidth'#3#232#3#8'OnCreate'#7#10'FormCreate'#8'Position'#7#14'poScreen' +'Center'#10'LCLVersion'#6#7'1.8.2.0'#0#5'TEdit'#14'SourceFileEdit'#19'Anchor' +'SideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'#2 +' '#6'Height'#2#25#4'Hint'#6#18' Source directory.'#3'Top'#2#2#5'Width'#3#144 +#2#18'BorderSpacing.Left'#2#2#17'BorderSpacing.Top'#2#2#8'TabOrder'#2#0#0#0#7 +'TBitBtn'#16'SourceFileButton'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'Anc' +'horSideTop.Control'#7#14'SourceFileEdit'#18'AnchorSideTop.Side'#7#9'asrCent' +'er'#23'AnchorSideRight.Control'#7#14'SourceFileEdit'#4'Left'#2#5#6'Height'#2 +#25#4'Hint'#6#24'Select source directory.'#3'Top'#2#2#5'Width'#2#25#7'Anchor' +'s'#11#5'akTop'#7'akRight'#0#18'BorderSpacing.Left'#2#2#17'BorderSpacing.Top' +#2#2#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0 +#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0 +'SMF'#160#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255#164'e4' +#255#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255 +#164'e4'#255#164'f5'#233#166'g69HHH'#224#151#134'x'#255#165'i:'#255#186#131 +'P'#255#186#131'P'#255#186#131'P'#255#186#131'P'#255#186#131'P'#255#186#131 +'P'#255#186#131'P'#255#186#131'P'#255#186#131'P'#255#186#131'P'#255#186#131 +'P'#255#178'xE'#255#165'f6'#192'III'#224#153#153#153#255#165'h9'#255#211#166 +'~'#255#210#163'x'#255#210#163'x'#255#210#163'x'#255#210#163'x'#255#210#163 +'x'#255#210#163'x'#255#210#163'x'#255#210#163'x'#255#210#163'x'#255#211#164 +'y'#255#209#165'z'#255#165'f5'#245'HHH'#226#155#155#155#255#164'g8'#255#213 +#171#133#255#206#156'n'#255#206#156'm'#255#206#156'm'#255#206#156'm'#255#206 +#156'm'#255#206#156'm'#255#206#156'm'#255#206#156'm'#255#206#156'm'#255#207 +#158'p'#255#213#171#132#255#165'f5'#248'LLL'#228#161#161#161#255#165'h8'#255 +#226#196#169#255#213#168#129#255#211#164'z'#255#211#164'z'#255#211#164'z'#255 +#211#164'z'#255#211#164'z'#255#211#164'z'#255#211#164'z'#255#211#164'z'#255 +#212#167'~'#255#221#186#156#255#165'f5'#249'QQQ'#229#164#165#165#255#165'g7' +#255#233#210#190#255#221#186#155#255#221#185#153#255#220#182#149#255#219#181 +#146#255#218#179#144#255#217#178#142#255#216#174#137#255#215#173#135#255#215 +#173#135#255#216#176#139#255#229#201#177#255#165'f5'#250'VVV'#231#169#169#169 +#255#164'f6'#255#236#216#198#255#221#186#153#255#221#186#153#255#221#186#153 +#255#221#186#153#255#221#186#153#255#221#186#153#255#221#186#153#255#220#183 +#149#255#218#178#142#255#217#176#139#255#231#207#184#255#165'f5'#251'[[['#233 +#174#174#174#255#165'g6'#255#235#215#196#255#220#183#148#255#220#183#148#255 +#220#183#148#255#220#183#148#255#220#183#148#255#220#183#148#255#220#183#148 +#255#220#183#148#255#220#183#148#255#218#180#145#255#230#205#182#255#165'f5' +#252'___'#233#179#179#179#255#164'f5'#255#234#213#193#255#219#180#145#255#219 +#180#145#255#219#181#145#255#219#181#145#255#219#181#146#255#219#181#146#255 +#219#181#146#255#219#181#146#255#219#181#146#255#220#184#150#255#231#207#183 +#255#164'f4'#253'eee'#235#183#183#183#255#165'f5'#255#234#211#190#255#234#212 +#191#255#234#212#191#255#234#212#190#255#234#212#190#255#234#212#190#255#233 +#211#190#255#233#211#190#255#233#211#190#255#233#211#190#255#233#211#190#255 +#232#207#184#255#165'e4'#254'jjj'#236#189#189#189#255#166'mA'#255#165'f6'#255 +#165'f6'#255#165'f6'#255#165'f6'#255#165'f6'#255#164'f5'#255#164'f5'#255#164 +'f5'#255#164'f5'#255#164'e4'#255#164'e4'#255#164'e4'#255#166'h7'#224'nnn'#238 +#192#193#193#255#172#172#172#255#170#170#170#255#167#167#167#255#165#165#165 +#255#164#164#164#255#164#164#164#255#172#172#172#255#182#182#182#255#185#185 +#185#255#187#187#187#255#162#162#162#255'jjj'#169'GGG'#0'GGG'#0'sss'#239#197 +#197#197#255#176#176#176#255#173#173#173#255#171#171#171#255#170#170#170#255 +#172#172#172#255#141#141#141#245#141#141#141#242#140#140#140#242#140#140#140 +#242#140#140#140#242#128#128#128#246'lll'#132'GGG'#0'GGG'#0'xxx'#240#201#201 +#201#255#199#199#199#255#197#197#197#255#196#196#196#255#196#196#196#255#180 +#180#180#255'ttt'#202'rrr8rrr8rrr8mmm8ooo5UUU'#3'GGG'#0'GGG'#0'zzz'#159'yyy' +#236'yyy'#236'yyy'#236'yyy'#236'yyy'#236'yyy'#226'xxx5GGG'#0'GGG'#0'GGG'#0'G' +'GG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0 +'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0#7'OnC' +'lick'#7#21'SourceFileButtonClick'#8'TabOrder'#2#1#0#0#7'TButton'#11'StartBu' +'tton'#22'AnchorSideLeft.Control'#7#14'SourceFileEdit'#21'AnchorSideTop.Cont' +'rol'#7#14'SourceFileEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2' ' +#6'Height'#2#25#3'Top'#2#29#5'Width'#2'K'#17'BorderSpacing.Top'#2#2#7'Captio' +'n'#6#5'Start'#7'OnClick'#7#16'StartButtonClick'#8'TabOrder'#2#2#0#0#5'TMemo' +#5'Memo1'#22'AnchorSideLeft.Control'#7#14'SourceFileEdit'#19'AnchorSideLeft.' ,'Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#5'Owner'#23'AnchorSideRigh' +'t.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSide' +'Bottom.Control'#7#10'StatusBar1'#4'Left'#3#178#2#6'Height'#2'^'#3'Top'#2#2#5 +'Width'#3'4'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#20 +'BorderSpacing.Around'#2#2#13'Lines.Strings'#1#6'=This tool converts the UT ' +'date into JD and UT decimal format.'#6#0#6'AThe new file is stored with the' +' _JDUTDEC appened to the filename.'#0#8'TabOrder'#2#3#0#0#10'TStatusBar'#10 +'StatusBar1'#4'Left'#2#0#6'Height'#2#19#3'Top'#2'b'#5'Width'#3#232#3#6'Panel' +'s'#14#1#5'Width'#2'2'#0#0#11'SimplePanel'#8#0#0#11'TOpenDialog'#11'OpenDial' +'og1'#4'left'#3#204#0#3'top'#2','#0#0#0 ]); ./media-playback-stop.png0000644000175000017500000000135314576573022015506 0ustar anthonyanthonyPNG  IHDRשPLTESUPTUR!!!UWS333555IIIHHH^^^ZZZlllooozzzWZUWXUUWSg d'tRNS& %#"   $ <bKGD$ pHYsHHFk>IDAT(Ͻk_Q$$EavpTږP}o_jf4hԔ_-= level) then writeln(FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz": "', Now)+message); end; // Open the communications port function OpenComm() : boolean; begin verbose(verbose_debug,'Opening port: '+SelectedPort); ser.LinuxLock:=False; //lock file sometimes persists stuck if program closes before port verbose(verbose_debug,'Trying to connect ...'); ser.Connect(SelectedPort); verbose(verbose_debug,'Connected to: '+SelectedPort); ser.config(115200, 8, 'N', SB1, False, False); OpenComm:=True; //Indicate success verbose(verbose_debug,'Opened port: '+SelectedPort); end; // Close the communications port function CloseComm() : boolean; begin ser.CloseSocket; CloseComm:=True; //Indicate success end; // Send a command strings then return the result function SendGet(command:string; LeaveOpen:boolean = False; Timeout:Integer=3000; GetAlso:boolean = True; HideStatus:boolean = False) : string; //LeaveOpen indicates that the communication port should be left open var ErrorString: AnsiString; begin //Initialze output string to nothing. SendGet:=''; if (not LeaveOpen) then begin OpenComm(); end; ErrorString:=''; ser.SendString(command); if (GetAlso) then SendGet:=ser.Recvstring(Timeout); If CompareStr(ser.LastErrorDesc,'OK')<>0 then ErrorString:='Error: '+ser.LastErrorDesc; if (not LeaveOpen) then begin CloseComm(); end; if not HideStatus then begin if GetAlso then verbose(verbose_debug,'Sent: '+command+' To: '+SelectedPort+' Received: '+SendGet+ErrorString) else verbose(verbose_debug,'Sent: '+command+' To: '+SelectedPort); end; end; //Return the tty port name of a specific USB serial number (if found) procedure FindUSBtty(serialnumber:string); const USBDevicePath = '/dev/serial/by-id/'; Var Info : TSearchRec; Count : Longint; USBDeviceSerial: String; LinuxDeviceFile: String; pieces:TStringList; Begin pieces := TStringList.Create; pieces.Delimiter := '-'; verbose(verbose_debug,'Searching for Linux USB devices ...'); //Troubleshooting information verbose(verbose_debug,'Searching here : '+USBDevicePath+'usb-FTDI_*'); //Troubleshooting information Count:=0; If FindFirst (USBDevicePath+'usb-FTDI_*',faAnyFile ,Info)=0 then begin Repeat Inc(Count); With Info do begin verbose(verbose_debug,'Found this : '+Name); //Troubleshooting information pieces.DelimitedText:=Name; USBDeviceSerial:=AnsiRightStr(pieces.Strings[pieces.Count-3],8); LinuxDeviceFile:=ExpandFileName(USBDevicePath+fpReadLink(USBDevicePath+Name)); verbose(verbose_debug,'USB device serial number='+USBDeviceSerial); // Check if srial number matches selected, or // if no serial number was defined, then just use the last one found if (serialnumber=USBDeviceSerial) or (serialnumber='') then begin SelectedPort:=LinuxDeviceFile; verbose(verbose_debug,'Found a match: '+serialnumber+' : ' + LinuxDeviceFile); end; verbose(verbose_debug,'Connection='+LinuxDeviceFile); end; Until FindNext(info)<>0; end; FindClose(Info); verbose(verbose_debug,'Finished Linux USB search. Found '+IntToStr(Count)+' devices'); //If no matches are found, then try to select if only one device is found. if not (SelectedPort='') then //Selected port has been set begin pieces.Delimiter := ','; pieces.DelimitedText := SendGet('ix'); verbose(verbose_debug,'pieces.DelimitedText='+pieces.DelimitedText); SelectedUnitSerialNumber:=IntToStr(StrToIntDef(pieces.Strings[4],0)); verbose(verbose_debug,'SelectedUnitSerialNumber='+SelectedUnitSerialNumber); INISection:='Serial:'+SelectedUnitSerialNumber; try //TZRegion:= vConfigurations.ReadString(INISection,'Local region'); TZRegion:= appsettings.vConfigurations.ReadString('','','');//vConfigurations.ReadString(INISection,'Local region'); ptz.ParseDatabaseFromFile(appsettings.TZDirectory+TZRegion); verbose(verbose_debug,'INISection='+INISection); TZLocation:=vConfigurations.ReadString(INISection,'Local time zone'); verbose(verbose_debug,'TZLocation='+TZLocation); except begin //Default to GMT since no proper definition could be found verbose(verbose_error,'failed tz find'); TZRegion:= 'etcetera'; ptz.ParseDatabaseFromFile(appsettings.TZDirectory+TZRegion); verbose(verbose_debug,'INISection='+INISection); TZLocation:=vConfigurations.ReadString(INISection,'Local time zone'); if (TZLocation='') then begin verbose(verbose_error,'TZLocation checking='+TZLocation); TZLocation:='Etc/GMT' end; end; end; end else verbose(verbose_error,'No selected port defined and no device found.'); End; procedure WriteDLHeader(Setting: String = '' ); //Setting describes how UDM was used to create this logfile. var result, HeaderFirmwareVersion: AnsiString; ProtocolNumber,ModelNumber,FeatureNumber,SerialNumber : Integer; Info: TVersionInfo; begin verbose(verbose_action,'*****Writing header...'); {Gather information about the selected unit} result:=SendGet('ix'); ProtocolNumber:=StrToIntDef(AnsiMidStr(result,3,8),0); ModelNumber:=StrToIntDef(AnsiMidStr(result,12,8),0); FeatureNumber:=StrToIntDef(AnsiMidStr(result,21,8),0); SerialNumber:=StrToIntDef(AnsiMidStr(result,30,8),0); HeaderFirmwareVersion:= IntToStr(ProtocolNumber)+'-'+ IntToStr(ModelNumber)+'-'+ IntToStr(FeatureNumber); LogFileName:=Format( '%s%s_%s.dat', [appsettings.LogsDirectory + DirectorySeparator, FormatDateTime('yyyymmdd"_"hhnnss',Now), vConfigurations.ReadString(INISection,'Instrument ID') ]); verbose(verbose_action,'LogFileName='+LogFileName); //Application.ProcessMessages; //why is this here? AssignFile(DLRecFile,LogFileName); Rewrite(DLRecFile); //Open file for writing { Write header } SetTextLineEnding(DLRecFile,#13#10); Writeln(DLRecFile,'# Light Pollution Monitoring Data Format 1.0'); Writeln(DLRecFile,'# URL: http://www.darksky.org/measurements'); Writeln(DLRecFile,'# Number of header lines: 35'); Writeln(DLRecFile,'# This data is released under the following license: ODbL 1.0 http://opendatacommons.org/licenses/odbl/summary/'); Writeln(DLRecFile,'# Device type: USB'); Writeln(DLRecFile,'# Instrument ID: '+vConfigurations.ReadString(INISection,'Instrument ID')); Writeln(DLRecFile,'# Data supplier: '+vConfigurations.ReadString(INISection,'Data Supplier')); Writeln(DLRecFile,'# Location name: '+vConfigurations.ReadString(INISection,'Location Name')); Writeln(DLRecFile,'# Position (lat, lon, elev(m)): '+vConfigurations.ReadString(INISection,'Position')); Writeln(DLRecFile,'# Local timezone: '+TZLocation); Writeln(DLRecFile,'# Time Synchronization: '+vConfigurations.ReadString(INISection,'Time Synchronization')); Writeln(DLRecFile,'# Moving / Stationary position: '+vConfigurations.ReadString(INISection,'Moving Stationary Position')); Writeln(DLRecFile,'# Moving / Fixed look direction: '+vConfigurations.ReadString(INISection,'Moving Stationary Direction')); Writeln(DLRecFile,'# Number of channels: '+vConfigurations.ReadString(INISection,'Number Of Channels')); Writeln(DLRecFile,'# Filters per channel: '+vConfigurations.ReadString(INISection,'Filters Per Channel')); Writeln(DLRecFile,'# Measurement direction per channel: '+vConfigurations.ReadString(INISection,'Measurement Direction Per Channel')); Writeln(DLRecFile,'# Field of view (degrees): '+vConfigurations.ReadString(INISection,'Field Of View')); Writeln(DLRecFile,'# Number of fields per line: 6'); Writeln(DLRecFile,Format('# SQM serial number: %d',[SerialNumber])); Writeln(DLRecFile,'# SQM firmware version: '+HeaderFirmwareVersion); Writeln(DLRecFile,'# SQM cover offset value: '+vConfigurations.ReadString(INISection,'CoverOffset')); Writeln(DLRecFile,'# SQM readout test ix: '+result); Writeln(DLRecFile,'# SQM readout test rx: '+sendget('rx')); Writeln(DLRecFile,'# SQM readout test cx: '+sendget('cx')); Writeln(DLRecFile,'# Comment: '+vConfigurations.ReadString(INISection,'UserComment1')); Writeln(DLRecFile,'# Comment: '+vConfigurations.ReadString(INISection,'UserComment2')); Writeln(DLRecFile,'# Comment: '+vConfigurations.ReadString(INISection,'UserComment3')); Writeln(DLRecFile,'# Comment: '+vConfigurations.ReadString(INISection,'UserComment4')); Writeln(DLRecFile,'# Comment: '+vConfigurations.ReadString(INISection,'UserComment5')); // Log the UDM version. Info := TVersionInfo.Create; Info.Load(HINSTANCE); Writeln(DLRecFile,Format('# UDMC version: %s', [IntToStr(Info.FixedInfo.FileVersion[0]) +'.'+IntToStr(Info.FixedInfo.FileVersion[1]) +'.'+IntToStr(Info.FixedInfo.FileVersion[2]) +'.'+IntToStr(Info.FixedInfo.FileVersion[3])])); Info.Free; //Log the current UDM settings that were passed here. Writeln(DLRecFile,Format('# UDMC setting: %s',[Setting])); Writeln(DLRecFile,'# blank line 32'); Writeln(DLRecFile,'# UTC Date & Time, Local Date & Time, Temperature, Counts, Frequency, MSAS'); Writeln(DLRecFile,'# YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Celsius;number;Hz;mag/arcsec^2'); Writeln(DLRecFile,'# END OF HEADER'); Flush(DLRecFile); end; procedure LogOneReading(); var pieces: TStringList; Result: string; ThisMoment, ThisMomentUTC: TDateTime; subfix: ansistring; const WebPageFile = '/tmp/index.html'; function CheckRecordCount(): boolean; begin if (pieces.Count = 6) then CheckRecordCount := True else begin CheckRecordCount := False; verbose(verbose_error,format( 'CheckRecordCount fail: pieces.Count = %d',[pieces.Count])); end; end; procedure WriteRecord(Special: string = ''); var ComposeString: string; begin ThisMomentUTC := NowUTC; vConfigurations.ReadString(INISection,'Local time zone'); verbose(verbose_debug,'INISection='+INISection); if (TZLocation='') then verbose(verbose_error,'TZLocation is empty'); verbose(verbose_debug,'TZLocation='+TZLocation); ThisMoment := ptz.GMTToLocalTime(ThisMomentUTC, TZLocation, subfix); //Create new logfile if over 24hr UTC time. if (DayOf(LCStartFileTime) <> DayOf(ThisMoment)) then begin // Open new file and store header WriteDLHeader(Format('Logged continuously %s.', [setting])); LCStartFileTime := ThisMoment; end else begin AssignFile(DLRecFile, LogFileName); Append(DLRecFile); //Open file for appending SetTextLineEnding(DLRecFile, #13#10); end; // Display LogFileNameText path verbose(verbose_debug,'LogFileName='+LogFileName); if (Special = '') then begin { Pull in values } Temperature := StrToFloatDef( AnsiLeftStr(pieces.Strings[5], Length(pieces.Strings[5]) - 1), 0, FPointSeparator); Darkness := StrToFloatDef(AnsiLeftStr(pieces.Strings[1], Length(pieces.Strings[1]) - 1), 0, FPointSeparator); // YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Celsius;number;Hz;mag/arcsec^2') ComposeString := FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"', ThisMomentUTC) //Date UTC //+ FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"', Now) //Date Local //+ FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"', DesiredLogTime) + FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"', ThisMoment) //Date Local (calculated) + FormatFloat('##0.0', Temperature, FPointSeparator) + ';' //Temperature + Format('%d;', [StrToIntDef(AnsiLeftStr(pieces.Strings[3], length(pieces.Strings[3]) - 1), 0)]) //counts + Format('%d;', [StrToIntDef(AnsiLeftStr(pieces.Strings[2], length(pieces.Strings[2]) - 2), 0)]) //Hz + FormatFloat('#0.00', Darkness, FPointSeparator) //mpsas value ; end //end of "special" text check when no data was available (missed record). else begin ComposeString := FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"', NowUTC) //Date UTC + FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"', Now) //Date Local + Special; end; verbose(verbose_action,'Logging one reading.'); Writeln(DLRecFile, ComposeString); //Write HTML page to ram disk (/tmp) try AssignFile(RamStatusFile,WebPageFile); Rewrite(RamStatusFile); //Open file for writing //save in text file : last reading with all data and timestamp Writeln(RamStatusFile, 'UDMC'); //Writeln(RamStatusFile, ''); Writeln(RamStatusFile, ''); Writeln(RamStatusFile,'UTC: '+FormatDateTime('yyyy-mm-dd" "hh:nn:ss', ThisMomentUTC)+'
'); //Date UTC Writeln(RamStatusFile,'Local: '+FormatDateTime('yyyy-mm-dd" "hh:nn:ss', ThisMoment)+'
'); //Local time (calculated) Writeln(RamStatusFile,'Darkness: '+FormatFloat('#0.00', Darkness, FPointSeparator) +' mag/arcsec²
'); Writeln(RamStatusFile,'Temperature at light sensor : ' + FormatFloat('##0.0', Temperature, FPointSeparator) +'°C
'); Writeln(RamStatusFile, ''); Flush(RamStatusFile); Close(RamStatusFile); verbose(verbose_action,'Wrote to '+WebPageFile); //****update graph (if feature exists) except verbose(verbose_error,'Failed ' + WebPageFile + ' write.'); end; end; begin Recording := True; pieces := TStringList.Create; pieces.Delimiter := ','; pieces.StrictDelimiter := False; //Parse spaces also //Try a first time Result := SendGet('rx'); pieces.DelimitedText := Result; if CheckRecordCount then WriteRecord else begin //Try a second time Result := SendGet('rx'); pieces.DelimitedText := Result; if CheckRecordCount then WriteRecord else begin //Try a second time Result := SendGet('rx'); pieces.DelimitedText := Result; if CheckRecordCount then WriteRecord else WriteRecord(';;;'); //Empty fields end; end; Flush(DLRecFile); Close(DLRecFile); Recording := False; end; procedure FineTimerTimer(); var ThisMoment: TDateTime; begin // Only trigger out once per second with ~20ms accuracy. // This prevents general drift in recordings. if (SecondOf(Now) <> OldSecond) then begin OldSecond := SecondOf(Now); if (RecordingMode) then begin //Gets triggered by the fine timer once per second if RecordingMode is true. if (Recording = False) then //Prevent more recording while already busy saving a record begin ThisMoment := RecodeMilliSecond(Now, 0); //CurrentTime.Caption := FormatDateTime('yyyy-mm-dd hh:nn:ss', ThisMoment); // Check if counter has expired while in Seconds or Minutes mode if ((LCMode='LCMS') or (LCMode='LCMM')) then begin Dec(LogTimeCurrent); if (LogTimeCurrent <= 0) then begin // Log value//* threshold checking LogOneReading; // Restart counter for continuous logging LogTimeCurrent := LogTimePreset; end; end; if LCMode='LCM' then begin // On-the-clock mode selected if (CompareDateTime(ThisMoment, DesiredLogTime) >= 0) then begin // Log value//* threshold checking LogOneReading; OnTheClock(ThisMoment, LCFreq); //Every __ minutes end else begin //continue counting LogTimeCurrent := Round(SecondSpan(ThisMoment, DesiredLogTime)); end; end; if StopRecording then begin RecordingMode := False; LogTimePreset := 0; LogTimeCurrent := 0; end; end; //End of checking Recording flag //*** Update reading value to ram file for web access //*** Update Chart (when one is created) for web access end; end; end; procedure OnTheClock(const ThisMoment: TDateTime; const Granularity: integer); {This utility gets the next time from now based on a granularity setting, i.e for determining log time and difference for logging every x minutes} begin // Determine new record time and calculate time until record DesiredLogTime := ThisMoment; //Copy current time for manipulation DesiredLogTime := IncMinute(DesiredLogTime, Granularity - MinuteOf(ThisMoment) mod Granularity); //Replace seconds with 0 DesiredLogTime := RecodeSecond(DesiredLogTime, 0); LogTimeCurrent := SecondsBetween(ThisMoment, DesiredLogTime); end; procedure testfptimer(); begin writeln('test fp timer'); end; initialization ser:=TBlockSerial.Create; ptz := TPascalTZ.Create(); // Format seetings to convert a string to a float FPointSeparator := DefaultFormatSettings; FPointSeparator.DecimalSeparator := '.'; FPointSeparator.ThousandSeparator := '#';// disable the thousand separator FCommaSeparator := DefaultFormatSettings; FCommaSeparator.DecimalSeparator := ','; FCommaSeparator.ThousandSeparator := '#';// disable the thousand separator end. ./synacode.pas0000644000175000017500000014605314576573021013472 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 002.002.003 | |==============================================================================| | Content: Coding and decoding support | |==============================================================================| | Copyright (c)1999-2013, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2000-2013. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@abstract(Various encoding and decoding support)} {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$Q-} {$R-} {$H+} {$TYPEDADDRESS OFF} {$IFDEF CIL} {$DEFINE SYNACODE_NATIVE} {$ENDIF} {$IFDEF FPC_BIG_ENDIAN} {$DEFINE SYNACODE_NATIVE} {$ENDIF} {$IFDEF UNICODE} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$WARN SUSPICIOUS_TYPECAST OFF} {$ENDIF} unit synacode; interface uses SysUtils; type TSpecials = set of AnsiChar; const SpecialChar: TSpecials = ['=', '(', ')', '[', ']', '<', '>', ':', ';', ',', '@', '/', '?', '\', '"', '_']; NonAsciiChar: TSpecials = [#0..#31, #127..#255]; URLFullSpecialChar: TSpecials = [';', '/', '?', ':', '@', '=', '&', '#', '+']; URLSpecialChar: TSpecials = [#$00..#$20, '<', '>', '"', '%', '{', '}', '|', '\', '^', '[', ']', '`', #$7F..#$FF]; TableBase64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; TableBase64mod = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+,='; TableUU = '`!"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_'; TableXX = '+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; ReTablebase64 = #$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$3E +#$40 +#$40 +#$40 +#$3F +#$34 +#$35 +#$36 +#$37 +#$38 +#$39 +#$3A +#$3B +#$3C +#$3D +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$00 +#$01 +#$02 +#$03 +#$04 +#$05 +#$06 +#$07 +#$08 +#$09 +#$0A +#$0B +#$0C +#$0D +#$0E +#$0F +#$10 +#$11 +#$12 +#$13 +#$14 +#$15 +#$16 +#$17 +#$18 +#$19 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$1A +#$1B +#$1C +#$1D +#$1E +#$1F +#$20 +#$21 +#$22 +#$23 +#$24 +#$25 +#$26 +#$27 +#$28 +#$29 +#$2A +#$2B +#$2C +#$2D +#$2E +#$2F +#$30 +#$31 +#$32 +#$33 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40; ReTableUU = #$01 +#$02 +#$03 +#$04 +#$05 +#$06 +#$07 +#$08 +#$09 +#$0A +#$0B +#$0C +#$0D +#$0E +#$0F +#$10 +#$11 +#$12 +#$13 +#$14 +#$15 +#$16 +#$17 +#$18 +#$19 +#$1A +#$1B +#$1C +#$1D +#$1E +#$1F +#$20 +#$21 +#$22 +#$23 +#$24 +#$25 +#$26 +#$27 +#$28 +#$29 +#$2A +#$2B +#$2C +#$2D +#$2E +#$2F +#$30 +#$31 +#$32 +#$33 +#$34 +#$35 +#$36 +#$37 +#$38 +#$39 +#$3A +#$3B +#$3C +#$3D +#$3E +#$3F +#$00 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40; ReTableXX = #$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$00 +#$40 +#$01 +#$40 +#$40 +#$02 +#$03 +#$04 +#$05 +#$06 +#$07 +#$08 +#$09 +#$0A +#$0B +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$0C +#$0D +#$0E +#$0F +#$10 +#$11 +#$12 +#$13 +#$14 +#$15 +#$16 +#$17 +#$18 +#$19 +#$1A +#$1B +#$1C +#$1D +#$1E +#$1F +#$20 +#$21 +#$22 +#$23 +#$24 +#$25 +#$40 +#$40 +#$40 +#$40 +#$40 +#$40 +#$26 +#$27 +#$28 +#$29 +#$2A +#$2B +#$2C +#$2D +#$2E +#$2F +#$30 +#$31 +#$32 +#$33 +#$34 +#$35 +#$36 +#$37 +#$38 +#$39 +#$3A +#$3B +#$3C +#$3D +#$3E +#$3F +#$40 +#$40 +#$40 +#$40 +#$40 +#$40; {:Decodes triplet encoding with a given character delimiter. It is used for decoding quoted-printable or URL encoding.} function DecodeTriplet(const Value: AnsiString; Delimiter: AnsiChar): AnsiString; {:Decodes a string from quoted printable form. (also decodes triplet sequences like '=7F')} function DecodeQuotedPrintable(const Value: AnsiString): AnsiString; {:Decodes a string of URL encoding. (also decodes triplet sequences like '%7F')} function DecodeURL(const Value: AnsiString): AnsiString; {:Performs triplet encoding with a given character delimiter. Used for encoding quoted-printable or URL encoding.} function EncodeTriplet(const Value: AnsiString; Delimiter: AnsiChar; Specials: TSpecials): AnsiString; {:Encodes a string to triplet quoted printable form. All @link(NonAsciiChar) are encoded.} function EncodeQuotedPrintable(const Value: AnsiString): AnsiString; {:Encodes a string to triplet quoted printable form. All @link(NonAsciiChar) and @link(SpecialChar) are encoded.} function EncodeSafeQuotedPrintable(const Value: AnsiString): AnsiString; {:Encodes a string to URL format. Used for encoding data from a form field in HTTP, etc. (Encodes all critical characters including characters used as URL delimiters ('/',':', etc.)} function EncodeURLElement(const Value: AnsiString): AnsiString; {:Encodes a string to URL format. Used to encode critical characters in all URLs.} function EncodeURL(const Value: AnsiString): AnsiString; {:Decode 4to3 encoding with given table. If some element is not found in table, first item from table is used. This is good for buggy coded items by Microsoft Outlook. This software sometimes using wrong table for UUcode, where is used ' ' instead '`'.} function Decode4to3(const Value, Table: AnsiString): AnsiString; {:Decode 4to3 encoding with given REVERSE table. Using this function with reverse table is much faster then @link(Decode4to3). This function is used internally for Base64, UU or XX decoding.} function Decode4to3Ex(const Value, Table: AnsiString): AnsiString; {:Encode by system 3to4 (used by Base64, UU coding, etc) by given table.} function Encode3to4(const Value, Table: AnsiString): AnsiString; {:Decode string from base64 format.} function DecodeBase64(const Value: AnsiString): AnsiString; {:Encodes a string to base64 format.} function EncodeBase64(const Value: AnsiString): AnsiString; {:Decode string from modified base64 format. (used in IMAP, for example.)} function DecodeBase64mod(const Value: AnsiString): AnsiString; {:Encodes a string to modified base64 format. (used in IMAP, for example.)} function EncodeBase64mod(const Value: AnsiString): AnsiString; {:Decodes a string from UUcode format.} function DecodeUU(const Value: AnsiString): AnsiString; {:encode UUcode. it encode only datas, you must also add header and footer for proper encode.} function EncodeUU(const Value: AnsiString): AnsiString; {:Decodes a string from XXcode format.} function DecodeXX(const Value: AnsiString): AnsiString; {:decode line with Yenc code. This code is sometimes used in newsgroups.} function DecodeYEnc(const Value: AnsiString): AnsiString; {:Returns a new CRC32 value after adding a new byte of data.} function UpdateCrc32(Value: Byte; Crc32: Integer): Integer; {:return CRC32 from a value string.} function Crc32(const Value: AnsiString): Integer; {:Returns a new CRC16 value after adding a new byte of data.} function UpdateCrc16(Value: Byte; Crc16: Word): Word; {:return CRC16 from a value string.} function Crc16(const Value: AnsiString): Word; {:Returns a binary string with a RSA-MD5 hashing of "Value" string.} function MD5(const Value: AnsiString): AnsiString; {:Returns a binary string with HMAC-MD5 hash.} function HMAC_MD5(Text, Key: AnsiString): AnsiString; {:Returns a binary string with a RSA-MD5 hashing of string what is constructed by repeating "value" until length is "Len".} function MD5LongHash(const Value: AnsiString; Len: integer): AnsiString; {:Returns a binary string with a SHA-1 hashing of "Value" string.} function SHA1(const Value: AnsiString): AnsiString; {:Returns a binary string with HMAC-SHA1 hash.} function HMAC_SHA1(Text, Key: AnsiString): AnsiString; {:Returns a binary string with a SHA-1 hashing of string what is constructed by repeating "value" until length is "Len".} function SHA1LongHash(const Value: AnsiString; Len: integer): AnsiString; {:Returns a binary string with a RSA-MD4 hashing of "Value" string.} function MD4(const Value: AnsiString): AnsiString; implementation const Crc32Tab: array[0..255] of Integer = ( Integer($00000000), Integer($77073096), Integer($EE0E612C), Integer($990951BA), Integer($076DC419), Integer($706AF48F), Integer($E963A535), Integer($9E6495A3), Integer($0EDB8832), Integer($79DCB8A4), Integer($E0D5E91E), Integer($97D2D988), Integer($09B64C2B), Integer($7EB17CBD), Integer($E7B82D07), Integer($90BF1D91), Integer($1DB71064), Integer($6AB020F2), Integer($F3B97148), Integer($84BE41DE), Integer($1ADAD47D), Integer($6DDDE4EB), Integer($F4D4B551), Integer($83D385C7), Integer($136C9856), Integer($646BA8C0), Integer($FD62F97A), Integer($8A65C9EC), Integer($14015C4F), Integer($63066CD9), Integer($FA0F3D63), Integer($8D080DF5), Integer($3B6E20C8), Integer($4C69105E), Integer($D56041E4), Integer($A2677172), Integer($3C03E4D1), Integer($4B04D447), Integer($D20D85FD), Integer($A50AB56B), Integer($35B5A8FA), Integer($42B2986C), Integer($DBBBC9D6), Integer($ACBCF940), Integer($32D86CE3), Integer($45DF5C75), Integer($DCD60DCF), Integer($ABD13D59), Integer($26D930AC), Integer($51DE003A), Integer($C8D75180), Integer($BFD06116), Integer($21B4F4B5), Integer($56B3C423), Integer($CFBA9599), Integer($B8BDA50F), Integer($2802B89E), Integer($5F058808), Integer($C60CD9B2), Integer($B10BE924), Integer($2F6F7C87), Integer($58684C11), Integer($C1611DAB), Integer($B6662D3D), Integer($76DC4190), Integer($01DB7106), Integer($98D220BC), Integer($EFD5102A), Integer($71B18589), Integer($06B6B51F), Integer($9FBFE4A5), Integer($E8B8D433), Integer($7807C9A2), Integer($0F00F934), Integer($9609A88E), Integer($E10E9818), Integer($7F6A0DBB), Integer($086D3D2D), Integer($91646C97), Integer($E6635C01), Integer($6B6B51F4), Integer($1C6C6162), Integer($856530D8), Integer($F262004E), Integer($6C0695ED), Integer($1B01A57B), Integer($8208F4C1), Integer($F50FC457), Integer($65B0D9C6), Integer($12B7E950), Integer($8BBEB8EA), Integer($FCB9887C), Integer($62DD1DDF), Integer($15DA2D49), Integer($8CD37CF3), Integer($FBD44C65), Integer($4DB26158), Integer($3AB551CE), Integer($A3BC0074), Integer($D4BB30E2), Integer($4ADFA541), Integer($3DD895D7), Integer($A4D1C46D), Integer($D3D6F4FB), Integer($4369E96A), Integer($346ED9FC), Integer($AD678846), Integer($DA60B8D0), Integer($44042D73), Integer($33031DE5), Integer($AA0A4C5F), Integer($DD0D7CC9), Integer($5005713C), Integer($270241AA), Integer($BE0B1010), Integer($C90C2086), Integer($5768B525), Integer($206F85B3), Integer($B966D409), Integer($CE61E49F), Integer($5EDEF90E), Integer($29D9C998), Integer($B0D09822), Integer($C7D7A8B4), Integer($59B33D17), Integer($2EB40D81), Integer($B7BD5C3B), Integer($C0BA6CAD), Integer($EDB88320), Integer($9ABFB3B6), Integer($03B6E20C), Integer($74B1D29A), Integer($EAD54739), Integer($9DD277AF), Integer($04DB2615), Integer($73DC1683), Integer($E3630B12), Integer($94643B84), Integer($0D6D6A3E), Integer($7A6A5AA8), Integer($E40ECF0B), Integer($9309FF9D), Integer($0A00AE27), Integer($7D079EB1), Integer($F00F9344), Integer($8708A3D2), Integer($1E01F268), Integer($6906C2FE), Integer($F762575D), Integer($806567CB), Integer($196C3671), Integer($6E6B06E7), Integer($FED41B76), Integer($89D32BE0), Integer($10DA7A5A), Integer($67DD4ACC), Integer($F9B9DF6F), Integer($8EBEEFF9), Integer($17B7BE43), Integer($60B08ED5), Integer($D6D6A3E8), Integer($A1D1937E), Integer($38D8C2C4), Integer($4FDFF252), Integer($D1BB67F1), Integer($A6BC5767), Integer($3FB506DD), Integer($48B2364B), Integer($D80D2BDA), Integer($AF0A1B4C), Integer($36034AF6), Integer($41047A60), Integer($DF60EFC3), Integer($A867DF55), Integer($316E8EEF), Integer($4669BE79), Integer($CB61B38C), Integer($BC66831A), Integer($256FD2A0), Integer($5268E236), Integer($CC0C7795), Integer($BB0B4703), Integer($220216B9), Integer($5505262F), Integer($C5BA3BBE), Integer($B2BD0B28), Integer($2BB45A92), Integer($5CB36A04), Integer($C2D7FFA7), Integer($B5D0CF31), Integer($2CD99E8B), Integer($5BDEAE1D), Integer($9B64C2B0), Integer($EC63F226), Integer($756AA39C), Integer($026D930A), Integer($9C0906A9), Integer($EB0E363F), Integer($72076785), Integer($05005713), Integer($95BF4A82), Integer($E2B87A14), Integer($7BB12BAE), Integer($0CB61B38), Integer($92D28E9B), Integer($E5D5BE0D), Integer($7CDCEFB7), Integer($0BDBDF21), Integer($86D3D2D4), Integer($F1D4E242), Integer($68DDB3F8), Integer($1FDA836E), Integer($81BE16CD), Integer($F6B9265B), Integer($6FB077E1), Integer($18B74777), Integer($88085AE6), Integer($FF0F6A70), Integer($66063BCA), Integer($11010B5C), Integer($8F659EFF), Integer($F862AE69), Integer($616BFFD3), Integer($166CCF45), Integer($A00AE278), Integer($D70DD2EE), Integer($4E048354), Integer($3903B3C2), Integer($A7672661), Integer($D06016F7), Integer($4969474D), Integer($3E6E77DB), Integer($AED16A4A), Integer($D9D65ADC), Integer($40DF0B66), Integer($37D83BF0), Integer($A9BCAE53), Integer($DEBB9EC5), Integer($47B2CF7F), Integer($30B5FFE9), Integer($BDBDF21C), Integer($CABAC28A), Integer($53B39330), Integer($24B4A3A6), Integer($BAD03605), Integer($CDD70693), Integer($54DE5729), Integer($23D967BF), Integer($B3667A2E), Integer($C4614AB8), Integer($5D681B02), Integer($2A6F2B94), Integer($B40BBE37), Integer($C30C8EA1), Integer($5A05DF1B), Integer($2D02EF8D) ); Crc16Tab: array[0..255] of Word = ( $0000, $1189, $2312, $329B, $4624, $57AD, $6536, $74BF, $8C48, $9DC1, $AF5A, $BED3, $CA6C, $DBE5, $E97E, $F8F7, $1081, $0108, $3393, $221A, $56A5, $472C, $75B7, $643E, $9CC9, $8D40, $BFDB, $AE52, $DAED, $CB64, $F9FF, $E876, $2102, $308B, $0210, $1399, $6726, $76AF, $4434, $55BD, $AD4A, $BCC3, $8E58, $9FD1, $EB6E, $FAE7, $C87C, $D9F5, $3183, $200A, $1291, $0318, $77A7, $662E, $54B5, $453C, $BDCB, $AC42, $9ED9, $8F50, $FBEF, $EA66, $D8FD, $C974, $4204, $538D, $6116, $709F, $0420, $15A9, $2732, $36BB, $CE4C, $DFC5, $ED5E, $FCD7, $8868, $99E1, $AB7A, $BAF3, $5285, $430C, $7197, $601E, $14A1, $0528, $37B3, $263A, $DECD, $CF44, $FDDF, $EC56, $98E9, $8960, $BBFB, $AA72, $6306, $728F, $4014, $519D, $2522, $34AB, $0630, $17B9, $EF4E, $FEC7, $CC5C, $DDD5, $A96A, $B8E3, $8A78, $9BF1, $7387, $620E, $5095, $411C, $35A3, $242A, $16B1, $0738, $FFCF, $EE46, $DCDD, $CD54, $B9EB, $A862, $9AF9, $8B70, $8408, $9581, $A71A, $B693, $C22C, $D3A5, $E13E, $F0B7, $0840, $19C9, $2B52, $3ADB, $4E64, $5FED, $6D76, $7CFF, $9489, $8500, $B79B, $A612, $D2AD, $C324, $F1BF, $E036, $18C1, $0948, $3BD3, $2A5A, $5EE5, $4F6C, $7DF7, $6C7E, $A50A, $B483, $8618, $9791, $E32E, $F2A7, $C03C, $D1B5, $2942, $38CB, $0A50, $1BD9, $6F66, $7EEF, $4C74, $5DFD, $B58B, $A402, $9699, $8710, $F3AF, $E226, $D0BD, $C134, $39C3, $284A, $1AD1, $0B58, $7FE7, $6E6E, $5CF5, $4D7C, $C60C, $D785, $E51E, $F497, $8028, $91A1, $A33A, $B2B3, $4A44, $5BCD, $6956, $78DF, $0C60, $1DE9, $2F72, $3EFB, $D68D, $C704, $F59F, $E416, $90A9, $8120, $B3BB, $A232, $5AC5, $4B4C, $79D7, $685E, $1CE1, $0D68, $3FF3, $2E7A, $E70E, $F687, $C41C, $D595, $A12A, $B0A3, $8238, $93B1, $6B46, $7ACF, $4854, $59DD, $2D62, $3CEB, $0E70, $1FF9, $F78F, $E606, $D49D, $C514, $B1AB, $A022, $92B9, $8330, $7BC7, $6A4E, $58D5, $495C, $3DE3, $2C6A, $1EF1, $0F78 ); procedure ArrByteToLong(var ArByte: Array of byte; var ArLong: Array of Integer); {$IFDEF SYNACODE_NATIVE} var n: integer; {$ENDIF} begin if (High(ArByte) + 1) > ((High(ArLong) + 1) * 4) then Exit; {$IFDEF SYNACODE_NATIVE} for n := 0 to ((high(ArByte) + 1) div 4) - 1 do ArLong[n] := ArByte[n * 4 + 0] + (ArByte[n * 4 + 1] shl 8) + (ArByte[n * 4 + 2] shl 16) + (ArByte[n * 4 + 3] shl 24); {$ELSE} Move(ArByte[0], ArLong[0], High(ArByte) + 1); {$ENDIF} end; procedure ArrLongToByte(var ArLong: Array of Integer; var ArByte: Array of byte); {$IFDEF SYNACODE_NATIVE} var n: integer; {$ENDIF} begin if (High(ArByte) + 1) < ((High(ArLong) + 1) * 4) then Exit; {$IFDEF SYNACODE_NATIVE} for n := 0 to high(ArLong) do begin ArByte[n * 4 + 0] := ArLong[n] and $000000FF; ArByte[n * 4 + 1] := (ArLong[n] shr 8) and $000000FF; ArByte[n * 4 + 2] := (ArLong[n] shr 16) and $000000FF; ArByte[n * 4 + 3] := (ArLong[n] shr 24) and $000000FF; end; {$ELSE} Move(ArLong[0], ArByte[0], High(ArByte) + 1); {$ENDIF} end; type TMDCtx = record State: array[0..3] of Integer; Count: array[0..1] of Integer; BufAnsiChar: array[0..63] of Byte; BufLong: array[0..15] of Integer; end; TSHA1Ctx= record Hi, Lo: integer; Buffer: array[0..63] of byte; Index: integer; Hash: array[0..4] of Integer; HashByte: array[0..19] of byte; end; TMDTransform = procedure(var Buf: array of LongInt; const Data: array of LongInt); {==============================================================================} function DecodeTriplet(const Value: AnsiString; Delimiter: AnsiChar): AnsiString; var x, l, lv: Integer; c: AnsiChar; b: Byte; bad: Boolean; begin lv := Length(Value); SetLength(Result, lv); x := 1; l := 1; while x <= lv do begin c := Value[x]; Inc(x); if c <> Delimiter then begin Result[l] := c; Inc(l); end else if x < lv then begin Case Value[x] Of #13: if (Value[x + 1] = #10) then Inc(x, 2) else Inc(x); #10: if (Value[x + 1] = #13) then Inc(x, 2) else Inc(x); else begin bad := False; Case Value[x] Of '0'..'9': b := (Byte(Value[x]) - 48) Shl 4; 'a'..'f', 'A'..'F': b := ((Byte(Value[x]) And 7) + 9) shl 4; else begin b := 0; bad := True; end; end; Case Value[x + 1] Of '0'..'9': b := b Or (Byte(Value[x + 1]) - 48); 'a'..'f', 'A'..'F': b := b Or ((Byte(Value[x + 1]) And 7) + 9); else bad := True; end; if bad then begin Result[l] := c; Inc(l); end else begin Inc(x, 2); Result[l] := AnsiChar(b); Inc(l); end; end; end; end else break; end; Dec(l); SetLength(Result, l); end; {==============================================================================} function DecodeQuotedPrintable(const Value: AnsiString): AnsiString; begin Result := DecodeTriplet(Value, '='); end; {==============================================================================} function DecodeURL(const Value: AnsiString): AnsiString; begin Result := DecodeTriplet(Value, '%'); end; {==============================================================================} function EncodeTriplet(const Value: AnsiString; Delimiter: AnsiChar; Specials: TSpecials): AnsiString; var n, l: Integer; s: AnsiString; c: AnsiChar; begin SetLength(Result, Length(Value) * 3); l := 1; for n := 1 to Length(Value) do begin c := Value[n]; if c in Specials then begin Result[l] := Delimiter; Inc(l); s := IntToHex(Ord(c), 2); Result[l] := s[1]; Inc(l); Result[l] := s[2]; Inc(l); end else begin Result[l] := c; Inc(l); end; end; Dec(l); SetLength(Result, l); end; {==============================================================================} function EncodeQuotedPrintable(const Value: AnsiString): AnsiString; begin Result := EncodeTriplet(Value, '=', ['='] + NonAsciiChar); end; {==============================================================================} function EncodeSafeQuotedPrintable(const Value: AnsiString): AnsiString; begin Result := EncodeTriplet(Value, '=', SpecialChar + NonAsciiChar); end; {==============================================================================} function EncodeURLElement(const Value: AnsiString): AnsiString; begin Result := EncodeTriplet(Value, '%', URLSpecialChar + URLFullSpecialChar); end; {==============================================================================} function EncodeURL(const Value: AnsiString): AnsiString; begin Result := EncodeTriplet(Value, '%', URLSpecialChar); end; {==============================================================================} function Decode4to3(const Value, Table: AnsiString): AnsiString; var x, y, n, l: Integer; d: array[0..3] of Byte; begin SetLength(Result, Length(Value)); x := 1; l := 1; while x <= Length(Value) do begin for n := 0 to 3 do begin if x > Length(Value) then d[n] := 64 else begin y := Pos(Value[x], Table); if y < 1 then y := 1; d[n] := y - 1; end; Inc(x); end; Result[l] := AnsiChar((D[0] and $3F) shl 2 + (D[1] and $30) shr 4); Inc(l); if d[2] <> 64 then begin Result[l] := AnsiChar((D[1] and $0F) shl 4 + (D[2] and $3C) shr 2); Inc(l); if d[3] <> 64 then begin Result[l] := AnsiChar((D[2] and $03) shl 6 + (D[3] and $3F)); Inc(l); end; end; end; Dec(l); SetLength(Result, l); end; {==============================================================================} function Decode4to3Ex(const Value, Table: AnsiString): AnsiString; var x, y, lv: Integer; d: integer; dl: integer; c: byte; p: integer; begin lv := Length(Value); SetLength(Result, lv); x := 1; dl := 4; d := 0; p := 1; while x <= lv do begin y := Ord(Value[x]); if y in [33..127] then c := Ord(Table[y - 32]) else c := 64; Inc(x); if c > 63 then continue; d := (d shl 6) or c; dec(dl); if dl <> 0 then continue; Result[p] := AnsiChar((d shr 16) and $ff); inc(p); Result[p] := AnsiChar((d shr 8) and $ff); inc(p); Result[p] := AnsiChar(d and $ff); inc(p); d := 0; dl := 4; end; case dl of 1: begin d := d shr 2; Result[p] := AnsiChar((d shr 8) and $ff); inc(p); Result[p] := AnsiChar(d and $ff); inc(p); end; 2: begin d := d shr 4; Result[p] := AnsiChar(d and $ff); inc(p); end; end; SetLength(Result, p - 1); end; {==============================================================================} function Encode3to4(const Value, Table: AnsiString): AnsiString; var c: Byte; n, l: Integer; Count: Integer; DOut: array[0..3] of Byte; begin setlength(Result, ((Length(Value) + 2) div 3) * 4); l := 1; Count := 1; while Count <= Length(Value) do begin c := Ord(Value[Count]); Inc(Count); DOut[0] := (c and $FC) shr 2; DOut[1] := (c and $03) shl 4; if Count <= Length(Value) then begin c := Ord(Value[Count]); Inc(Count); DOut[1] := DOut[1] + (c and $F0) shr 4; DOut[2] := (c and $0F) shl 2; if Count <= Length(Value) then begin c := Ord(Value[Count]); Inc(Count); DOut[2] := DOut[2] + (c and $C0) shr 6; DOut[3] := (c and $3F); end else begin DOut[3] := $40; end; end else begin DOut[2] := $40; DOut[3] := $40; end; for n := 0 to 3 do begin if (DOut[n] + 1) <= Length(Table) then begin Result[l] := Table[DOut[n] + 1]; Inc(l); end; end; end; SetLength(Result, l - 1); end; {==============================================================================} function DecodeBase64(const Value: AnsiString): AnsiString; begin Result := Decode4to3Ex(Value, ReTableBase64); end; {==============================================================================} function EncodeBase64(const Value: AnsiString): AnsiString; begin Result := Encode3to4(Value, TableBase64); end; {==============================================================================} function DecodeBase64mod(const Value: AnsiString): AnsiString; begin Result := Decode4to3(Value, TableBase64mod); end; {==============================================================================} function EncodeBase64mod(const Value: AnsiString): AnsiString; begin Result := Encode3to4(Value, TableBase64mod); end; {==============================================================================} function DecodeUU(const Value: AnsiString): AnsiString; var s: AnsiString; uut: AnsiString; x: Integer; begin Result := ''; uut := TableUU; s := trim(UpperCase(Value)); if s = '' then Exit; if Pos('BEGIN', s) = 1 then Exit; if Pos('END', s) = 1 then Exit; if Pos('TABLE', s) = 1 then Exit; //ignore Table yet (set custom UUT) //begin decoding x := Pos(Value[1], uut) - 1; case (x mod 3) of 0: x :=(x div 3)* 4; 1: x :=((x div 3) * 4) + 2; 2: x :=((x div 3) * 4) + 3; end; //x - lenght UU line s := Copy(Value, 2, x); if s = '' then Exit; s := s + StringOfChar(' ', x - length(s)); Result := Decode4to3(s, uut); end; {==============================================================================} function EncodeUU(const Value: AnsiString): AnsiString; begin Result := ''; if Length(Value) < Length(TableUU) then Result := TableUU[Length(Value) + 1] + Encode3to4(Value, TableUU); end; {==============================================================================} function DecodeXX(const Value: AnsiString): AnsiString; var s: AnsiString; x: Integer; begin Result := ''; s := trim(UpperCase(Value)); if s = '' then Exit; if Pos('BEGIN', s) = 1 then Exit; if Pos('END', s) = 1 then Exit; //begin decoding x := Pos(Value[1], TableXX) - 1; case (x mod 3) of 0: x :=(x div 3)* 4; 1: x :=((x div 3) * 4) + 2; 2: x :=((x div 3) * 4) + 3; end; //x - lenght XX line s := Copy(Value, 2, x); if s = '' then Exit; s := s + StringOfChar(' ', x - length(s)); Result := Decode4to3(s, TableXX); end; {==============================================================================} function DecodeYEnc(const Value: AnsiString): AnsiString; var C : Byte; i: integer; begin Result := ''; i := 1; while i <= Length(Value) do begin c := Ord(Value[i]); Inc(i); if c = Ord('=') then begin c := Ord(Value[i]); Inc(i); Dec(c, 64); end; Dec(C, 42); Result := Result + AnsiChar(C); end; end; {==============================================================================} function UpdateCrc32(Value: Byte; Crc32: Integer): Integer; begin Result := (Crc32 shr 8) xor crc32tab[Byte(Value xor (Crc32 and Integer($000000FF)))]; end; {==============================================================================} function Crc32(const Value: AnsiString): Integer; var n: Integer; begin Result := Integer($FFFFFFFF); for n := 1 to Length(Value) do Result := UpdateCrc32(Ord(Value[n]), Result); Result := not Result; end; {==============================================================================} function UpdateCrc16(Value: Byte; Crc16: Word): Word; begin Result := ((Crc16 shr 8) and $00FF) xor crc16tab[Byte(Crc16 xor (Word(Value)) and $00FF)]; end; {==============================================================================} function Crc16(const Value: AnsiString): Word; var n: Integer; begin Result := $FFFF; for n := 1 to Length(Value) do Result := UpdateCrc16(Ord(Value[n]), Result); end; {==============================================================================} procedure MDInit(var MDContext: TMDCtx); var n: integer; begin MDContext.Count[0] := 0; MDContext.Count[1] := 0; for n := 0 to high(MDContext.BufAnsiChar) do MDContext.BufAnsiChar[n] := 0; for n := 0 to high(MDContext.BufLong) do MDContext.BufLong[n] := 0; MDContext.State[0] := Integer($67452301); MDContext.State[1] := Integer($EFCDAB89); MDContext.State[2] := Integer($98BADCFE); MDContext.State[3] := Integer($10325476); end; procedure MD5Transform(var Buf: array of LongInt; const Data: array of LongInt); var A, B, C, D: LongInt; procedure Round1(var W: LongInt; X, Y, Z, Data: LongInt; S: Byte); begin Inc(W, (Z xor (X and (Y xor Z))) + Data); W := (W shl S) or (W shr (32 - S)); Inc(W, X); end; procedure Round2(var W: LongInt; X, Y, Z, Data: LongInt; S: Byte); begin Inc(W, (Y xor (Z and (X xor Y))) + Data); W := (W shl S) or (W shr (32 - S)); Inc(W, X); end; procedure Round3(var W: LongInt; X, Y, Z, Data: LongInt; S: Byte); begin Inc(W, (X xor Y xor Z) + Data); W := (W shl S) or (W shr (32 - S)); Inc(W, X); end; procedure Round4(var W: LongInt; X, Y, Z, Data: LongInt; S: Byte); begin Inc(W, (Y xor (X or not Z)) + Data); W := (W shl S) or (W shr (32 - S)); Inc(W, X); end; begin A := Buf[0]; B := Buf[1]; C := Buf[2]; D := Buf[3]; Round1(A, B, C, D, Data[0] + Longint($D76AA478), 7); Round1(D, A, B, C, Data[1] + Longint($E8C7B756), 12); Round1(C, D, A, B, Data[2] + Longint($242070DB), 17); Round1(B, C, D, A, Data[3] + Longint($C1BDCEEE), 22); Round1(A, B, C, D, Data[4] + Longint($F57C0FAF), 7); Round1(D, A, B, C, Data[5] + Longint($4787C62A), 12); Round1(C, D, A, B, Data[6] + Longint($A8304613), 17); Round1(B, C, D, A, Data[7] + Longint($FD469501), 22); Round1(A, B, C, D, Data[8] + Longint($698098D8), 7); Round1(D, A, B, C, Data[9] + Longint($8B44F7AF), 12); Round1(C, D, A, B, Data[10] + Longint($FFFF5BB1), 17); Round1(B, C, D, A, Data[11] + Longint($895CD7BE), 22); Round1(A, B, C, D, Data[12] + Longint($6B901122), 7); Round1(D, A, B, C, Data[13] + Longint($FD987193), 12); Round1(C, D, A, B, Data[14] + Longint($A679438E), 17); Round1(B, C, D, A, Data[15] + Longint($49B40821), 22); Round2(A, B, C, D, Data[1] + Longint($F61E2562), 5); Round2(D, A, B, C, Data[6] + Longint($C040B340), 9); Round2(C, D, A, B, Data[11] + Longint($265E5A51), 14); Round2(B, C, D, A, Data[0] + Longint($E9B6C7AA), 20); Round2(A, B, C, D, Data[5] + Longint($D62F105D), 5); Round2(D, A, B, C, Data[10] + Longint($02441453), 9); Round2(C, D, A, B, Data[15] + Longint($D8A1E681), 14); Round2(B, C, D, A, Data[4] + Longint($E7D3FBC8), 20); Round2(A, B, C, D, Data[9] + Longint($21E1CDE6), 5); Round2(D, A, B, C, Data[14] + Longint($C33707D6), 9); Round2(C, D, A, B, Data[3] + Longint($F4D50D87), 14); Round2(B, C, D, A, Data[8] + Longint($455A14ED), 20); Round2(A, B, C, D, Data[13] + Longint($A9E3E905), 5); Round2(D, A, B, C, Data[2] + Longint($FCEFA3F8), 9); Round2(C, D, A, B, Data[7] + Longint($676F02D9), 14); Round2(B, C, D, A, Data[12] + Longint($8D2A4C8A), 20); Round3(A, B, C, D, Data[5] + Longint($FFFA3942), 4); Round3(D, A, B, C, Data[8] + Longint($8771F681), 11); Round3(C, D, A, B, Data[11] + Longint($6D9D6122), 16); Round3(B, C, D, A, Data[14] + Longint($FDE5380C), 23); Round3(A, B, C, D, Data[1] + Longint($A4BEEA44), 4); Round3(D, A, B, C, Data[4] + Longint($4BDECFA9), 11); Round3(C, D, A, B, Data[7] + Longint($F6BB4B60), 16); Round3(B, C, D, A, Data[10] + Longint($BEBFBC70), 23); Round3(A, B, C, D, Data[13] + Longint($289B7EC6), 4); Round3(D, A, B, C, Data[0] + Longint($EAA127FA), 11); Round3(C, D, A, B, Data[3] + Longint($D4EF3085), 16); Round3(B, C, D, A, Data[6] + Longint($04881D05), 23); Round3(A, B, C, D, Data[9] + Longint($D9D4D039), 4); Round3(D, A, B, C, Data[12] + Longint($E6DB99E5), 11); Round3(C, D, A, B, Data[15] + Longint($1FA27CF8), 16); Round3(B, C, D, A, Data[2] + Longint($C4AC5665), 23); Round4(A, B, C, D, Data[0] + Longint($F4292244), 6); Round4(D, A, B, C, Data[7] + Longint($432AFF97), 10); Round4(C, D, A, B, Data[14] + Longint($AB9423A7), 15); Round4(B, C, D, A, Data[5] + Longint($FC93A039), 21); Round4(A, B, C, D, Data[12] + Longint($655B59C3), 6); Round4(D, A, B, C, Data[3] + Longint($8F0CCC92), 10); Round4(C, D, A, B, Data[10] + Longint($FFEFF47D), 15); Round4(B, C, D, A, Data[1] + Longint($85845DD1), 21); Round4(A, B, C, D, Data[8] + Longint($6FA87E4F), 6); Round4(D, A, B, C, Data[15] + Longint($FE2CE6E0), 10); Round4(C, D, A, B, Data[6] + Longint($A3014314), 15); Round4(B, C, D, A, Data[13] + Longint($4E0811A1), 21); Round4(A, B, C, D, Data[4] + Longint($F7537E82), 6); Round4(D, A, B, C, Data[11] + Longint($BD3AF235), 10); Round4(C, D, A, B, Data[2] + Longint($2AD7D2BB), 15); Round4(B, C, D, A, Data[9] + Longint($EB86D391), 21); Inc(Buf[0], A); Inc(Buf[1], B); Inc(Buf[2], C); Inc(Buf[3], D); end; //fixed by James McAdams procedure MDUpdate(var MDContext: TMDCtx; const Data: AnsiString; transform: TMDTransform); var Index, partLen, InputLen, I: integer; {$IFDEF SYNACODE_NATIVE} n: integer; {$ENDIF} begin InputLen := Length(Data); with MDContext do begin Index := (Count[0] shr 3) and $3F; Inc(Count[0], InputLen shl 3); if Count[0] < (InputLen shl 3) then Inc(Count[1]); Inc(Count[1], InputLen shr 29); partLen := 64 - Index; if InputLen >= partLen then begin ArrLongToByte(BufLong, BufAnsiChar); {$IFDEF SYNACODE_NATIVE} for n := 1 to partLen do BufAnsiChar[index - 1 + n] := Ord(Data[n]); {$ELSE} Move(Data[1], BufAnsiChar[Index], partLen); {$ENDIF} ArrByteToLong(BufAnsiChar, BufLong); Transform(State, Buflong); I := partLen; while I + 63 < InputLen do begin ArrLongToByte(BufLong, BufAnsiChar); {$IFDEF SYNACODE_NATIVE} for n := 1 to 64 do BufAnsiChar[n - 1] := Ord(Data[i + n]); {$ELSE} Move(Data[I+1], BufAnsiChar, 64); {$ENDIF} ArrByteToLong(BufAnsiChar, BufLong); Transform(State, Buflong); inc(I, 64); end; Index := 0; end else I := 0; ArrLongToByte(BufLong, BufAnsiChar); {$IFDEF SYNACODE_NATIVE} for n := 1 to InputLen-I do BufAnsiChar[Index + n - 1] := Ord(Data[i + n]); {$ELSE} Move(Data[I+1], BufAnsiChar[Index], InputLen-I); {$ENDIF} ArrByteToLong(BufAnsiChar, BufLong); end end; function MDFinal(var MDContext: TMDCtx; transform: TMDTransform): AnsiString; var Cnt: Word; P: Byte; digest: array[0..15] of Byte; i: Integer; n: integer; begin for I := 0 to 15 do Digest[I] := I + 1; with MDContext do begin Cnt := (Count[0] shr 3) and $3F; P := Cnt; BufAnsiChar[P] := $80; Inc(P); Cnt := 64 - 1 - Cnt; if Cnt < 8 then begin for n := 0 to cnt - 1 do BufAnsiChar[P + n] := 0; ArrByteToLong(BufAnsiChar, BufLong); // FillChar(BufAnsiChar[P], Cnt, #0); Transform(State, BufLong); ArrLongToByte(BufLong, BufAnsiChar); for n := 0 to 55 do BufAnsiChar[n] := 0; ArrByteToLong(BufAnsiChar, BufLong); // FillChar(BufAnsiChar, 56, #0); end else begin for n := 0 to Cnt - 8 - 1 do BufAnsiChar[p + n] := 0; ArrByteToLong(BufAnsiChar, BufLong); // FillChar(BufAnsiChar[P], Cnt - 8, #0); end; BufLong[14] := Count[0]; BufLong[15] := Count[1]; Transform(State, BufLong); ArrLongToByte(State, Digest); // Move(State, Digest, 16); Result := ''; for i := 0 to 15 do Result := Result + AnsiChar(digest[i]); end; // FillChar(MD5Context, SizeOf(TMD5Ctx), #0) end; {==============================================================================} function MD5(const Value: AnsiString): AnsiString; var MDContext: TMDCtx; begin MDInit(MDContext); MDUpdate(MDContext, Value, @MD5Transform); Result := MDFinal(MDContext, @MD5Transform); end; {==============================================================================} function HMAC_MD5(Text, Key: AnsiString): AnsiString; var ipad, opad, s: AnsiString; n: Integer; MDContext: TMDCtx; begin if Length(Key) > 64 then Key := md5(Key); ipad := StringOfChar(#$36, 64); opad := StringOfChar(#$5C, 64); for n := 1 to Length(Key) do begin ipad[n] := AnsiChar(Byte(ipad[n]) xor Byte(Key[n])); opad[n] := AnsiChar(Byte(opad[n]) xor Byte(Key[n])); end; MDInit(MDContext); MDUpdate(MDContext, ipad, @MD5Transform); MDUpdate(MDContext, Text, @MD5Transform); s := MDFinal(MDContext, @MD5Transform); MDInit(MDContext); MDUpdate(MDContext, opad, @MD5Transform); MDUpdate(MDContext, s, @MD5Transform); Result := MDFinal(MDContext, @MD5Transform); end; {==============================================================================} function MD5LongHash(const Value: AnsiString; Len: integer): AnsiString; var cnt, rest: integer; l: integer; n: integer; MDContext: TMDCtx; begin l := length(Value); cnt := Len div l; rest := Len mod l; MDInit(MDContext); for n := 1 to cnt do MDUpdate(MDContext, Value, @MD5Transform); if rest > 0 then MDUpdate(MDContext, Copy(Value, 1, rest), @MD5Transform); Result := MDFinal(MDContext, @MD5Transform); end; {==============================================================================} // SHA1 is based on sources by Dave Barton (davebarton@bigfoot.com) procedure SHA1init( var SHA1Context: TSHA1Ctx ); var n: integer; begin SHA1Context.Hi := 0; SHA1Context.Lo := 0; SHA1Context.Index := 0; for n := 0 to High(SHA1Context.Buffer) do SHA1Context.Buffer[n] := 0; for n := 0 to High(SHA1Context.HashByte) do SHA1Context.HashByte[n] := 0; // FillChar(SHA1Context, SizeOf(TSHA1Ctx), #0); SHA1Context.Hash[0] := integer($67452301); SHA1Context.Hash[1] := integer($EFCDAB89); SHA1Context.Hash[2] := integer($98BADCFE); SHA1Context.Hash[3] := integer($10325476); SHA1Context.Hash[4] := integer($C3D2E1F0); end; //****************************************************************************** function RB(A: integer): integer; begin Result := (A shr 24) or ((A shr 8) and $FF00) or ((A shl 8) and $FF0000) or (A shl 24); end; procedure SHA1Compress(var Data: TSHA1Ctx); var A, B, C, D, E, T: integer; W: array[0..79] of integer; i: integer; n: integer; function F1(x, y, z: integer): integer; begin Result := z xor (x and (y xor z)); end; function F2(x, y, z: integer): integer; begin Result := x xor y xor z; end; function F3(x, y, z: integer): integer; begin Result := (x and y) or (z and (x or y)); end; function LRot32(X: integer; c: integer): integer; begin result := (x shl c) or (x shr (32 - c)); end; begin ArrByteToLong(Data.Buffer, W); // Move(Data.Buffer, W, Sizeof(Data.Buffer)); for i := 0 to 15 do W[i] := RB(W[i]); for i := 16 to 79 do W[i] := LRot32(W[i-3] xor W[i-8] xor W[i-14] xor W[i-16], 1); A := Data.Hash[0]; B := Data.Hash[1]; C := Data.Hash[2]; D := Data.Hash[3]; E := Data.Hash[4]; for i := 0 to 19 do begin T := LRot32(A, 5) + F1(B, C, D) + E + W[i] + integer($5A827999); E := D; D := C; C := LRot32(B, 30); B := A; A := T; end; for i := 20 to 39 do begin T := LRot32(A, 5) + F2(B, C, D) + E + W[i] + integer($6ED9EBA1); E := D; D := C; C := LRot32(B, 30); B := A; A := T; end; for i := 40 to 59 do begin T := LRot32(A, 5) + F3(B, C, D) + E + W[i] + integer($8F1BBCDC); E := D; D := C; C := LRot32(B, 30); B := A; A := T; end; for i := 60 to 79 do begin T := LRot32(A, 5) + F2(B, C, D) + E + W[i] + integer($CA62C1D6); E := D; D := C; C := LRot32(B, 30); B := A; A := T; end; Data.Hash[0] := Data.Hash[0] + A; Data.Hash[1] := Data.Hash[1] + B; Data.Hash[2] := Data.Hash[2] + C; Data.Hash[3] := Data.Hash[3] + D; Data.Hash[4] := Data.Hash[4] + E; for n := 0 to high(w) do w[n] := 0; // FillChar(W, Sizeof(W), 0); for n := 0 to high(Data.Buffer) do Data.Buffer[n] := 0; // FillChar(Data.Buffer, Sizeof(Data.Buffer), 0); end; //****************************************************************************** procedure SHA1Update(var Context: TSHA1Ctx; const Data: AnsiString); var Len: integer; n: integer; i, k: integer; begin Len := Length(data); for k := 0 to 7 do begin i := Context.Lo; Inc(Context.Lo, Len); if Context.Lo < i then Inc(Context.Hi); end; for n := 1 to len do begin Context.Buffer[Context.Index] := byte(Data[n]); Inc(Context.Index); if Context.Index = 64 then begin Context.Index := 0; SHA1Compress(Context); end; end; end; //****************************************************************************** function SHA1Final(var Context: TSHA1Ctx): AnsiString; type Pinteger = ^integer; var i: integer; procedure ItoArr(var Ar: Array of byte; I, value: Integer); begin Ar[i + 0] := Value and $000000FF; Ar[i + 1] := (Value shr 8) and $000000FF; Ar[i + 2] := (Value shr 16) and $000000FF; Ar[i + 3] := (Value shr 24) and $000000FF; end; begin Context.Buffer[Context.Index] := $80; if Context.Index >= 56 then SHA1Compress(Context); ItoArr(Context.Buffer, 56, RB(Context.Hi)); ItoArr(Context.Buffer, 60, RB(Context.Lo)); // Pinteger(@Context.Buffer[56])^ := RB(Context.Hi); // Pinteger(@Context.Buffer[60])^ := RB(Context.Lo); SHA1Compress(Context); Context.Hash[0] := RB(Context.Hash[0]); Context.Hash[1] := RB(Context.Hash[1]); Context.Hash[2] := RB(Context.Hash[2]); Context.Hash[3] := RB(Context.Hash[3]); Context.Hash[4] := RB(Context.Hash[4]); ArrLongToByte(Context.Hash, Context.HashByte); Result := ''; for i := 0 to 19 do Result := Result + AnsiChar(Context.HashByte[i]); end; function SHA1(const Value: AnsiString): AnsiString; var SHA1Context: TSHA1Ctx; begin SHA1Init(SHA1Context); SHA1Update(SHA1Context, Value); Result := SHA1Final(SHA1Context); end; {==============================================================================} function HMAC_SHA1(Text, Key: AnsiString): AnsiString; var ipad, opad, s: AnsiString; n: Integer; SHA1Context: TSHA1Ctx; begin if Length(Key) > 64 then Key := SHA1(Key); ipad := StringOfChar(#$36, 64); opad := StringOfChar(#$5C, 64); for n := 1 to Length(Key) do begin ipad[n] := AnsiChar(Byte(ipad[n]) xor Byte(Key[n])); opad[n] := AnsiChar(Byte(opad[n]) xor Byte(Key[n])); end; SHA1Init(SHA1Context); SHA1Update(SHA1Context, ipad); SHA1Update(SHA1Context, Text); s := SHA1Final(SHA1Context); SHA1Init(SHA1Context); SHA1Update(SHA1Context, opad); SHA1Update(SHA1Context, s); Result := SHA1Final(SHA1Context); end; {==============================================================================} function SHA1LongHash(const Value: AnsiString; Len: integer): AnsiString; var cnt, rest: integer; l: integer; n: integer; SHA1Context: TSHA1Ctx; begin l := length(Value); cnt := Len div l; rest := Len mod l; SHA1Init(SHA1Context); for n := 1 to cnt do SHA1Update(SHA1Context, Value); if rest > 0 then SHA1Update(SHA1Context, Copy(Value, 1, rest)); Result := SHA1Final(SHA1Context); end; {==============================================================================} procedure MD4Transform(var Buf: array of LongInt; const Data: array of LongInt); var A, B, C, D: LongInt; function LRot32(a, b: longint): longint; begin Result:= (a shl b) or (a shr (32 - b)); end; begin A := Buf[0]; B := Buf[1]; C := Buf[2]; D := Buf[3]; A:= LRot32(A + (D xor (B and (C xor D))) + Data[ 0], 3); D:= LRot32(D + (C xor (A and (B xor C))) + Data[ 1], 7); C:= LRot32(C + (B xor (D and (A xor B))) + Data[ 2], 11); B:= LRot32(B + (A xor (C and (D xor A))) + Data[ 3], 19); A:= LRot32(A + (D xor (B and (C xor D))) + Data[ 4], 3); D:= LRot32(D + (C xor (A and (B xor C))) + Data[ 5], 7); C:= LRot32(C + (B xor (D and (A xor B))) + Data[ 6], 11); B:= LRot32(B + (A xor (C and (D xor A))) + Data[ 7], 19); A:= LRot32(A + (D xor (B and (C xor D))) + Data[ 8], 3); D:= LRot32(D + (C xor (A and (B xor C))) + Data[ 9], 7); C:= LRot32(C + (B xor (D and (A xor B))) + Data[10], 11); B:= LRot32(B + (A xor (C and (D xor A))) + Data[11], 19); A:= LRot32(A + (D xor (B and (C xor D))) + Data[12], 3); D:= LRot32(D + (C xor (A and (B xor C))) + Data[13], 7); C:= LRot32(C + (B xor (D and (A xor B))) + Data[14], 11); B:= LRot32(B + (A xor (C and (D xor A))) + Data[15], 19); A:= LRot32(A + ((B and C) or (B and D) or (C and D)) + Data[ 0] + longint($5a827999), 3); D:= LRot32(D + ((A and B) or (A and C) or (B and C)) + Data[ 4] + longint($5a827999), 5); C:= LRot32(C + ((D and A) or (D and B) or (A and B)) + Data[ 8] + longint($5a827999), 9); B:= LRot32(B + ((C and D) or (C and A) or (D and A)) + Data[12] + longint($5a827999), 13); A:= LRot32(A + ((B and C) or (B and D) or (C and D)) + Data[ 1] + longint($5a827999), 3); D:= LRot32(D + ((A and B) or (A and C) or (B and C)) + Data[ 5] + longint($5a827999), 5); C:= LRot32(C + ((D and A) or (D and B) or (A and B)) + Data[ 9] + longint($5a827999), 9); B:= LRot32(B + ((C and D) or (C and A) or (D and A)) + Data[13] + longint($5a827999), 13); A:= LRot32(A + ((B and C) or (B and D) or (C and D)) + Data[ 2] + longint($5a827999), 3); D:= LRot32(D + ((A and B) or (A and C) or (B and C)) + Data[ 6] + longint($5a827999), 5); C:= LRot32(C + ((D and A) or (D and B) or (A and B)) + Data[10] + longint($5a827999), 9); B:= LRot32(B + ((C and D) or (C and A) or (D and A)) + Data[14] + longint($5a827999), 13); A:= LRot32(A + ((B and C) or (B and D) or (C and D)) + Data[ 3] + longint($5a827999), 3); D:= LRot32(D + ((A and B) or (A and C) or (B and C)) + Data[ 7] + longint($5a827999), 5); C:= LRot32(C + ((D and A) or (D and B) or (A and B)) + Data[11] + longint($5a827999), 9); B:= LRot32(B + ((C and D) or (C and A) or (D and A)) + Data[15] + longint($5a827999), 13); A:= LRot32(A + (B xor C xor D) + Data[ 0] + longint($6ed9eba1), 3); D:= LRot32(D + (A xor B xor C) + Data[ 8] + longint($6ed9eba1), 9); C:= LRot32(C + (D xor A xor B) + Data[ 4] + longint($6ed9eba1), 11); B:= LRot32(B + (C xor D xor A) + Data[12] + longint($6ed9eba1), 15); A:= LRot32(A + (B xor C xor D) + Data[ 2] + longint($6ed9eba1), 3); D:= LRot32(D + (A xor B xor C) + Data[10] + longint($6ed9eba1), 9); C:= LRot32(C + (D xor A xor B) + Data[ 6] + longint($6ed9eba1), 11); B:= LRot32(B + (C xor D xor A) + Data[14] + longint($6ed9eba1), 15); A:= LRot32(A + (B xor C xor D) + Data[ 1] + longint($6ed9eba1), 3); D:= LRot32(D + (A xor B xor C) + Data[ 9] + longint($6ed9eba1), 9); C:= LRot32(C + (D xor A xor B) + Data[ 5] + longint($6ed9eba1), 11); B:= LRot32(B + (C xor D xor A) + Data[13] + longint($6ed9eba1), 15); A:= LRot32(A + (B xor C xor D) + Data[ 3] + longint($6ed9eba1), 3); D:= LRot32(D + (A xor B xor C) + Data[11] + longint($6ed9eba1), 9); C:= LRot32(C + (D xor A xor B) + Data[ 7] + longint($6ed9eba1), 11); B:= LRot32(B + (C xor D xor A) + Data[15] + longint($6ed9eba1), 15); Inc(Buf[0], A); Inc(Buf[1], B); Inc(Buf[2], C); Inc(Buf[3], D); end; {==============================================================================} function MD4(const Value: AnsiString): AnsiString; var MDContext: TMDCtx; begin MDInit(MDContext); MDUpdate(MDContext, Value, @MD4Transform); Result := MDFinal(MDContext, @MD4Transform); end; {==============================================================================} end. ./uplaysound.pas0000744000175000017500000002136514077651773014076 0ustar anthonyanthonyunit uplaysound; { Copyright (C)2014 minesadorada@charcodelvalle.com Modified GPL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version with the following modification: As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules,and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. } {$mode objfpc}{$H+} interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs , FileUtil{$IFDEF WINDOWS}, mmsystem{$ELSE}, asyncprocess, process{$ENDIF}, aboutplaysound; type TPlayStyle = (psAsync, psSync); Tplaysound = class(TAboutPlaySound) private { Private declarations } {$IFNDEF WINDOWS} SoundPlayerAsyncProcess: Tasyncprocess; SoundPlayerSyncProcess: Tprocess; {$ENDIF} fPlayCommand:String; fDefaultPlayCommand: String; fPathToSoundFile: string; fPlayStyle: TPlayStyle; protected { Protected declarations } function GetPlayCommand: String; procedure PlaySound(const szSoundFilename: string); virtual; public { Public declarations } constructor Create(AOwner: TComponent); override; destructor Destroy; reintroduce; // This is the default method procedure Execute; procedure StopSound; published { Published declarations } // This is normally set at runtime property SoundFile: string read fPathToSoundFile write fPathToSoundFile; // Default is Async property PlayStyle: TPlayStyle read fPlayStyle write fPlayStyle default psASync; // This is automatically determined when the component loads property PlayCommand:String read fPlayCommand write fPlayCommand; end; procedure Register; implementation uses LazFileUtils; resourcestring C_UnableToPlay = 'Unable to play '; function GetNonWindowsPlayCommand:String; begin Result := ''; // Try play if (FindDefaultExecutablePath('play') <> '') then Result := 'play'; // Try aplay if (result = '') then if (FindDefaultExecutablePath('aplay') <> '') then Result := 'aplay -q'; // Try paplay if (Result = '') then if (FindDefaultExecutablePath('paplay') <> '') then Result := 'paplay'; // Try mplayer if (Result = '') then if (FindDefaultExecutablePath('mplayer') <> '') then Result := 'mplayer -really-quiet'; // Try CMus if (Result = '') then if (FindDefaultExecutablePath('CMus') <> '') then Result := 'CMus'; // Try pacat if (Result = '') then if (FindDefaultExecutablePath('pacat') <> '') then Result := 'pacat -p'; // Try ffplay if (Result = '') then if (FindDefaultExecutablePath('ffplay') <> '') then result := 'ffplay -autoexit -nodisp'; // Try cvlc if (Result = '') then if (FindDefaultExecutablePath('cvlc') <> '') then result := 'cvlc -q --play-and-exit'; // Try canberra-gtk-play if (Result = '') then if (FindDefaultExecutablePath('canberra-gtk-play') <> '') then Result := 'canberra-gtk-play -c never -f'; // Try Macintosh command? if (Result = '') then if (FindDefaultExecutablePath('afplay') <> '') then Result := 'afplay'; end; constructor Tplaysound.Create(AOwner: TComponent); begin inherited Create(AOwner); fPlayStyle := psASync; // fPathToSoundFile := ProgramDirectory; {$IFDEF WINDOWS} fDefaultPlayCommand := 'sndPlaySound'; {$ELSE} fDefaultPlayCommand := GetNonWindowsPlayCommand; // Linux, Mac etc. {$ENDIF} if (fDefaultPlayCommand <> '') then FPlayCommand:=fDefaultPlayCommand; // About Dialog properties AboutBoxComponentName := 'PlaySound'; AboutBoxWidth := 400; AboutBoxHeight := 400; AboutBoxBackgroundColor := clCream; //AboutBoxFontName (string) //AboutBoxFontSize (integer) AboutBoxVersion := '0.0.7'; AboutBoxAuthorname := 'Gordon Bamber'; AboutBoxOrganisation := 'Public Domain'; AboutBoxAuthorEmail := 'minesadorada@charcodelvalle.com'; AboutBoxLicenseType := 'MODIFIEDGPL'; AboutBoxDescription := 'Plays WAVE sounds in Windows or Linux'; end; destructor Tplaysound.Destroy; begin {$IFNDEF WINDOWS} FreeAndNil(SoundPlayerSyncProcess); FreeAndNil(SoundPlayerAsyncProcess); {$ENDIF} inherited; end; procedure Tplaysound.Execute; begin if not FileExists(fPathToSoundFile) then Exit; Try PlaySound(fPathToSoundFile); Except On E: Exception do E.CreateFmt(C_UnableToPlay + '%s Message:%s', [fPathToSoundFile, E.Message]); end; end; function TPlaySound.GetPlayCommand: String; begin if FPlayCommand = '' then Result := FDefaultPlayCommand else Result := FPlayCommand; end; procedure Tplaysound.PlaySound(const szSoundFilename: string); var {$IFDEF WINDOWS} flags: word; {$ELSE} L: TStrings; i: Integer; playCmd: String; {$ENDIF} begin {$IFDEF WINDOWS} if fPlayStyle = psASync then flags := SND_ASYNC or SND_NODEFAULT else flags := SND_SYNC or SND_NODEFAULT; try sndPlaySound(PChar(szSoundFilename), flags); except ShowMessage(C_UnableToPlay + szSoundFilename); end; {$ELSE} // How to play in Linux? Use generic Linux commands // Use asyncprocess to play sound as SND_ASYNC // proceed if we managed to find a valid command playCmd := GetPlayCommand; if (playCmd <> '') then begin L := TStringList.Create; try L.Delimiter := ' '; L.DelimitedText := playCmd; if fPlayStyle = psASync then begin if SoundPlayerAsyncProcess = nil then SoundPlayerAsyncProcess := TaSyncProcess.Create(nil); SoundPlayerAsyncProcess.CurrentDirectory := ExtractFileDir(szSoundFilename); SoundPlayerAsyncProcess.Executable := FindDefaultExecutablePath(L[0]); SoundPlayerAsyncProcess.Parameters.Clear; for i := 1 to L.Count-1 do SoundPlayerAsyncProcess.Parameters.Add(L[i]); SoundPlayerAsyncProcess.Parameters.Add(szSoundFilename); try SoundPlayerAsyncProcess.Execute; except On E: Exception do E.CreateFmt('Playstyle=paASync: ' + C_UnableToPlay + '%s Message:%s', [szSoundFilename, E.Message]); end; end else begin if SoundPlayerSyncProcess = nil then SoundPlayerSyncProcess := TProcess.Create(nil); SoundPlayerSyncProcess.CurrentDirectory := ExtractFileDir(szSoundFilename); SoundPlayerSyncProcess.Executable := FindDefaultExecutablePath(L[0]); SoundPlayersyncProcess.Parameters.Clear; for i:=1 to L.Count-1 do SoundPlayerSyncProcess.Parameters.Add(L[i]); SoundPlayerSyncProcess.Parameters.Add(szSoundFilename); try SoundPlayerSyncProcess.Execute; SoundPlayersyncProcess.WaitOnExit; except On E: Exception do E.CreateFmt('Playstyle=paSync: ' + C_UnableToPlay + '%s Message:%s', [szSoundFilename, E.Message]); end; end; finally L.Free; end; end else raise Exception.CreateFmt('The play command %s does not work on your system', [fPlayCommand]); {$ENDIF} end; procedure Tplaysound.StopSound; begin {$IFDEF WINDOWS} sndPlaySound(nil, 0); {$ELSE} if SoundPlayerSyncProcess <> nil then SoundPlayerSyncProcess.Terminate(1); if SoundPlayerAsyncProcess <> nil then SoundPlayerAsyncProcess.Terminate(1); {$ENDIF} end; procedure Register; begin RegisterComponents('LazControls', [Tplaysound]); {$I playsound_icon.lrs} end; end. ./correct49to56.lfm0000644000175000017500000050523314576573021014213 0ustar anthonyanthonyobject CorrectForm: TCorrectForm Left = 1564 Height = 410 Top = 148 Width = 859 Caption = 'Correct DL firmware 49-56 .dat files' ClientHeight = 410 ClientWidth = 859 Constraints.MinHeight = 260 Constraints.MinWidth = 598 Icon.Data = { 3E08010000000100010080800000010020002808010016000000280000008000 0000000100000100200000000000000001006400000064000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000020000000200000003000000030000 0003000000020000000300000002000000010000000100000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000100000003000000060000000A0000 000D00000011000000160000001A0000001E0000002100000023000000240000 00230000002200000022000000210000001E0000001C00000018000000150000 00110000000E0000000B00000007000000040000000200000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000010000 000300000005000000090000000E000000150000001E00000027000000310000 003B000000440000004D000000550000005B0000006100000064000000650000 00650000006400000062000000600000005D00000058000000520000004B0000 00440000003D000000350000002B0000002100000019000000110000000B0000 0007000000040000000100000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000001000000050000000B0000 0015000000210000002E0000003E0000004E0000005E0000006D0000007A0000 008A000000940000009E000000A8000000AD000000B3000000B6000000B60000 00B6000000B7000000B5000000B3000000B0000000A9000000A60000009E0000 00950000008E0000008200000073000000640000005400000043000000340000 00280000001C0000001100000009000000040000000100000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000002000000090000001400000024000000380000 004E000000630000007A00000090000000A0000000B0000000BD000000C70000 00D1000000D7000000DD000000E2000000E4000000E7000000E9000000E90000 00E8000000EA000000E7000000E7000000E7000000E1000000E3000000DD0000 00D8000000D5000000CB000000C3000000B7000000A600000095000000820000 00700000005C0000004700000032000000210000001300000009000000020000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0002000000080000001100000020000000340000004D00000067000000810000 009B000000B0000000C1000000D3000000DB000000E5000000EC000000ED0000 00F3000000F5000000F7000000F9000000FA000000FB000000FC000000FC0000 00FB000000FD000000FC000000FC000000FC000000F9000000FA000000F80000 00F6000000F6000000F0000000EF000000E9000000DE000000D5000000C90000 00BA000000AA000000950000007B0000006300000049000000320000001F0000 0011000000070000000100000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000030000000B0000 00180000002B000000430000005D0000007900000097000000B1000000C60000 00DB000000E7000000ED000000F7000000F9000000FC000000FE000000FB0000 01FE000001FE000001FD010102FE000103FF010103FF010103FF010103FF0102 04FF000104FF010104FF010103FF000102FF000103FF000002FF000001FE0000 01FF000001FF000001FD000000FE000000FC000000F9000000F7000000F20000 00ED000000E4000000D5000000C3000000AD00000093000000770000005C0000 0041000000290000001600000009000000020000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000030000000A0000001A000000300000 004B0000006B0000008D000000AA000000C3000000D7000000E8000000F00000 00F9000000FD000000FB000000FF000001FE000002FE000002FF010103FF0101 04FF010105FF020206FF020308FF020409FF03040BFF04050DFF03060EFF0207 0DFF03060DFF03060DFF03050CFF03040AFF03050AFF030308FF030307FF0202 06FF010205FF000104FF000102FF000002FE000001FE000001FF000001FD0000 00FE000000FC000000F6000000F1000000E5000000D6000000C2000000A90000 008900000069000000490000002C000000160000000800000002000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000008000000180000002F0000004F000000740000 0099000000B9000000D1000000E4000000ED000000F3000000FB000101FD0001 03FE000204FF010306FF010204FF020205FF030206FF030308FF030308FF0404 0AFF05050CFF060610FF060613FF060714FF060817FF080D1EFF070F1FFF050C 1AFF070F1CFF060E1DFF070C1DFF080A1BFF070A18FF070914FF060710FF0606 0FFF05060FFF04050CFF030409FF020307FF020206FF020306FF010306FF0001 04FF000102FF000101FE000000FD000000F7000000F3000000EE000000E10000 00CF000000B7000000950000006F0000004B0000002C00000015000000060000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000005000000130000002B0000004C000000740000009B000000BB0000 00D5000000E8000000F1000000F9000001FC000102FE000205FF000408FF0007 0CFF020A14FF040C17FF04060DFF05050DFF07060EFF070710FF070711FF0A05 12FF0A0511FF0A0917FF0A0E20FF081025FF0A1329FF091329FF091228FF0B14 2BFF0B142CFF0A162EFF09122AFF090D23FF080E21FF080A1CFF0A0A1DFF0A0B 1DFF080A19FF080915FF060814FF060612FF050510FF040711FF040711FF0205 0DFF010409FF010306FF010103FF010001FE000000FD000000FB000000F60000 00F3000000E6000000D2000000B7000000950000006F0000004A0000002B0000 0013000000050000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000030000 000E00000024000000450000006B00000093000000B8000000D7000000E90000 00F4000000FC000102FD000204FE000408FF01060CFF020911FF03101CFF0210 1FFF040E1DFF070B19FF080614FF080613FF090716FF0A0919FF0A0818FF0D05 16FF0C0515FF0B0A1BFF0C1126FF0B152FFF0C1832FF0A152DFF09142DFF0B18 34FF0D1734FF0D1935FF0B1530FF0A1029FF0A1128FF090C22FF0B0D25FF0B0F 27FF0A0E24FF0A0B22FF0A0A1FFF090A1CFF090B1CFF0A0B1CFF090C1AFF080F 1DFF070E1CFF040914FF02050DFF020408FF020204FF010102FE000102FD0000 00FE000000FA000000F3000000E7000000D1000000B5000000920000006A0000 0041000000220000000D00000002000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000007000000180000 00350000005E00000088000000B1000000D3000000E7000000F7000001FC0001 02FD000305FF000509FF010911FF020D19FF04101EFF061223FF061B33FF071A 32FF080F24FF080514FF0C0617FF0C0719FF0B091EFF0B0A21FF0C081DFF0D07 1AFF0B081AFF0B0C1EFF0C1227FF0C142EFF0C1731FF0B1730FF091731FF091A 36FF0D1B37FF0D1935FF0C1631FF0C152FFF0D1430FF0C112AFF0B112AFF0B12 2BFF0D122BFF0B0E29FF0C0A24FF0C0D23FF0B1025FF0D0E24FF0C0F23FF0D18 2DFF0C172EFF080E22FF060D1DFF050A15FF04070FFF02050BFF010509FF0103 05FF000103FE000001FE000000FC000000F3000000E8000000D1000000AE0000 0084000000590000003200000015000000040000000100000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000020000000B00000023000000480000 0074000000A6000000CA000000E4000000F4000000FA000102FE000104FF0104 08FF020910FF030D18FF051527FF07192FFF091A33FF0A1A39FF0B1F3EFF0E1D 3AFF0D122AFF0A0519FF0C091AFF0E0B1DFF0F0C24FF0E0C26FF0C0A22FF0C0C 20FF0A0B1FFF0C0E23FF0F1229FF0B1229FF0B172FFF0C1934FF0C1B37FF0A1D 37FF0C1E39FF0D1935FF0D1633FF0D1835FF0F1A38FF0C1733FF0C152FFF0E14 2DFF10152BFF0C1224FF0D0B22FF0D0D26FF0D102BFF0C0F29FF0A122BFF0D1A 33FF0D1831FF091128FF0C162EFF081124FF070C1DFF050B19FF030B15FF0309 12FF02060CFF010306FF000102FF000001FB000000FB000000F2000000E10000 00C80000009F0000006F000000410000001E0000000900000001000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000500000014000000320000005D0000008D0000 00B9000000DB000000EF000000F9000001FD000102FF000306FF01070EFF030E 1AFF051527FF08172FFF08162FFF08152EFF0A1B37FF0E294DFF0C2243FF0A13 2BFF0C0A1CFF0E0A1BFF0C0A1AFF0C0A1CFF0C0B1FFF0C0C20FF0C0C21FF0D0D 24FF0B0C1FFF0B1021FF0D1529FF0C152BFF0C162EFF0D1630FF0E1732FF0C1A 35FF0B1934FF0B1835FF0B1836FF0B1937FF0C1938FF0A1735FF0B1733FF0C14 2DFF0D1126FF0D1125FF0E1026FF0D0D25FF0B0D24FF0C1026FF0B1029FF0C10 29FF0B102AFF0A1331FF0C1939FF0C1834FF09142DFF071126FF071023FF0513 26FF040F1EFF030813FF01040AFF010205FF000001FD000000FB000000F70000 00EE000000D6000000B400000086000000550000002B00000010000000020000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000080000001E0000004300000071000000A1000000CA0000 00E5000000F3000000FC000001FF010104FF020308FF030913FF071425FF081A 30FF07162FFF091027FF0C1028FF0C0E26FF0C0F28FF111532FF0B112CFF0B0C 24FF0D0B1EFF0D0B1BFF0B0A1AFF0D0C1DFF0D0B1EFF0C0D20FF0C1126FF0B0D 22FF0C0D20FF0D0F21FF0D1124FF0B1026FF0D1129FF0D1027FF0E1026FF0E13 2BFF0C1529FF0D172FFF0D1835FF0D1838FF0C1838FF0D1838FF0F1C39FF0D1B 35FF0A142DFF0B1632FF0D152EFF0D1025FF0D0E21FF0F1028FF0C0F2AFF0F12 2BFF0F152EFF0C1835FF101C3AFF0E1C39FF0A1934FF091931FF0B1B32FF0918 2FFF08152CFF061124FF030C1AFF020912FF020509FF000103FF000000FE0000 00FB000000F1000000E2000000C4000000980000006700000038000000170000 0005000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00010000000B000000240000004E00000082000000B3000000D7000000EE0000 00FA000001FC010103FF020205FF03030AFF050711FF081123FF0A1C36FF0C22 40FF0D1D3BFF0B0B21FF0E0B21FF0E0B21FF0E081FFF10071EFF0C081EFF0D0A 22FF0E0B22FF0C0B1CFF0C0A1BFF0F0C1DFF0F0E20FF0E1024FF0E1027FF0B0D 21FF0E0E22FF0F0E23FF0C0E22FF0C0D24FF0E0F27FF0E0D22FF0D0D21FF0F10 26FF0D1126FF0E142AFF0E1833FF0D1A39FF0D1837FF111A3AFF101E3BFF0D1D 38FF0B1934FF0C193AFF0C1733FF0D1328FF0E1124FF0F122BFF0E122EFF1014 2DFF10152CFF0E162EFF0F1833FF0F1C38FF0D1E3AFF0C203BFF0C213BFF0B19 34FF0B1A36FF091832FF071428FF071322FF050D18FF03070DFF010205FF0000 02FE000000FC000000F8000000EB000000D1000000A800000074000000440000 001F000000090000000100000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000020000 000E0000002B000000570000008C000000BF000000E4000000F4000000FB0000 01FF010104FF04040AFF05050EFF070612FF090B1CFF0D162CFF0C1B36FF0E21 3FFF132342FF0E0D24FF0E0B20FF0E0B21FF0F0A22FF0F0922FF0E0C21FF0E0B 22FF0E0A22FF0F0B20FF0F0A1EFF110B1DFF101021FF101226FF100D24FF0E0E 23FF100E24FF0F0F24FF0C0F24FF0E0F26FF0F1025FF0E0E23FF0E0E24FF1011 29FF0D102AFF0E102AFF0E1731FF0D1C38FF0E1733FF101B3AFF0D1A37FF0B19 34FF0D1A35FF0D1835FF0C162FFF0C142BFF0C1429FF0C142CFF0E1830FF0D13 2AFF0D0F25FF0E0F24FF0C1029FF101833FF101F3DFF0E2342FF0C2240FF0C19 37FF0C1D3CFF0C1D3AFF0B1931FF0C1B31FF0A162BFF060F1EFF040810FF0202 07FF000102FF000000FE000000FB000000F2000000DA000000B3000000820000 004F000000240000000A00000001000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000020000000F0000 002F0000006000000098000000C9000000E6000000F6000000FD010102FE0203 07FF02040BFF070914FF0A0B18FF0C0B1BFF0F0F25FF110F26FF121027FF100F 27FF0D0C25FF0D0B1EFF0E0B1CFF100B20FF110B22FF0E0B21FF0D0C20FF0F0B 21FF110C23FF110D24FF0F0C23FF0F0F20FF0E0D1EFF0E0D21FF121229FF0E12 26FF0F1122FF0F1023FF0F0F27FF0D0D22FF0E0C1EFF100D20FF100F24FF0E11 27FF0E1329FF0F1029FF10112EFF0F1533FF0B1531FF0B1531FF0C1632FF0C17 31FF0C162DFF0C1526FF0B1122FF0B1124FF0B1228FF0B132CFF0C1530FF0D16 30FF0F142CFF101128FF0F1229FF0F112AFF0F1835FF0D2241FF0C2644FF0F1A 38FF0F1F3EFF0D203CFF0B1C36FF0E1E3BFF0C1F3BFF0A172EFF080E1EFF0508 12FF020409FF000203FF000001FF000000FC000000F1000000E3000000C10000 008E00000055000000260000000A000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000200000011000000330000 00670000009E000000CD000000EB000000F8000001FE010204FF030408FF0405 0DFF070A16FF0A0A1BFF0C091CFF0D0A1FFF0F0F26FF120F26FF100D24FF0E0B 21FF0D0A1EFF0D091BFF0E0A1CFF0F0B1EFF0E0B1FFF0B0C1FFF0D0C20FF0D0B 1EFF0E0C1FFF0F0F24FF0F0E28FF0F0E22FF0E0E1FFF0D0D21FF0D0D26FF0F12 29FF0E1327FF0D0F25FF0D0C25FF0C0B21FF0F0A20FF0E0B21FF0D0C23FF0E0E 24FF0E0F23FF0F0F25FF10142FFF0F1A37FF0B1A34FF0C1A35FF0B1734FF0A16 32FF0B172FFF0D172BFF0B1328FF0C152EFF0E1833FF0C152FFF0D1531FF0C18 35FF0C1833FF0E132CFF0E1025FF0F0E26FF0C0E27FF0C152FFF10243EFF0D16 2FFF0D1833FF0E1C37FF0E1933FF0B112AFF0D1933FF0C162DFF090E20FF080A 18FF06070FFF020307FF010103FF000101FF000000FB000000F8000000E60000 00C5000000940000005A0000002A0000000D0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000010000001200000034000000670000 00A3000000D1000000ED000000FA000001FE000104FF02050AFF060912FF0A0D 1CFF0E1429FF101129FF0D0C24FF0C0A21FF0F0D22FF0F0C21FF0E0C21FF0E0D 21FF0E0C1FFF0D091DFF0D091DFF0E0A1CFF0E0C1DFF0C0D20FF0D0D23FF0D0C 20FF0F0C1FFF100E24FF0F0E29FF0E0C25FF0F0E25FF0E0F26FF0C0C25FF0E11 28FF0E142AFF0F132BFF0E0F2AFF0C0D24FF0E0D23FF0E0F26FF0D1027FF0D0F 26FF0F1028FF0E0F27FF0D132DFF0D1835FF0D1B36FF0B1733FF0C1735FF0D18 35FF0E1931FF0F1932FF0C152FFF0D1731FF0E1934FF0D152FFF0E152FFF0D16 31FF0D1731FF0E152CFF0C1025FF0F1027FF0E0E26FF0D1128FF101B31FF0D12 2AFF0D122BFF0D142DFF0C122AFF0C0D26FF0F132EFF0D132BFF0B1023FF0A0C 1DFF090917FF06060FFF030308FF010104FF000001FF000000FE000000F80000 00E8000000C9000000960000005D0000002D0000000D00000001000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000001000000100000003400000068000000A20000 00D3000000F0000001FC000103FE010408FF050C15FF060C19FF0A0C1CFF0F11 25FF10152FFF12132EFF0F0D28FF0C0921FF0D0A1EFF0D0A1DFF0E0E1FFF0E0F 21FF0D0C1FFF0D0A1DFF0D091DFF0D0A1CFF0D0C1DFF0E0D1FFF0D0D25FF0E0D 23FF100D22FF110C23FF0E0D25FF0D0C25FF0E0D27FF0F0E26FF0C0E21FF0D10 23FF0F1529FF10162EFF0F132CFF0D1027FF0E1126FF0F132AFF0E142BFF0B12 27FF0F122DFF0C0F27FF0A0F27FF0B132DFF0E1730FF0B1431FF0D1836FF0F1B 36FF0F1A33FF0F1A36FF0E1531FF0D1630FF0D172FFF0D132DFF0F152EFF0E14 2DFF0D132CFF0E132AFF0D1127FF0F122BFF10122CFF0F122BFF0D1228FF0F10 28FF0F0F25FF0C0D23FF0B0C23FF0F0E26FF100F29FF0E1027FF0C0F23FF0C0D 1FFF0B0B1EFF0B0919FF080712FF04040BFF020207FF010103FE000001FE0000 00FA000000EA000000CB000000980000005D0000002A0000000B000000010000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000010000000D0000003000000066000000A3000000D60000 00ED000000FA000102FF010407FF040B13FF0D1D30FF0E172EFF0C0C23FF0D0B 22FF0C0A1FFF0E0C22FF100A23FF0F0720FF0C071CFF0E0B1CFF0E0F1FFF0D0E 1FFF0C0A1CFF0D0B1BFF0F0A1DFF0E0A1DFF0C0A1DFF0C0C1DFF0E0D23FF0F0F 24FF0F0F23FF100C22FF0D0C21FF0C0D22FF0C0D23FF0C0C20FF0B0C1AFF0D0F 20FF0E1427FF0D1528FF0B1326FF0D1126FF111329FF10132CFF0D112AFF0B10 26FF0B1128FF090C22FF0A0C20FF0C0F23FF0C1124FF0F1733FF0E1936FF0C1A 35FF0C1A35FF0E1C37FF0F1431FF0E122EFF0D152EFF0D132DFF0E1632FF0D15 2FFF0C112AFF0C0E28FF101129FF0E102CFF10112FFF10122EFF0B1028FF1010 25FF110D1FFF0F0C1EFF0D0D20FF0E0B1EFF100D22FF0E0B1FFF0C0A1DFF0E0A 1FFF0D0B22FF0D0C22FF0C0C1CFF080A15FF06040FFF040308FF010103FF0000 00FD000000F8000000EE000000CC0000009600000059000000270000000A0000 0001000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000B0000002B000000620000009E000000D1000000EF0000 00FA000102FE000204FF02040AFF040814FF0A1428FF0F172FFF10132AFF0C0B 20FF0C091DFF0F0D21FF0F0C21FF0E091CFF0D0A1BFF0C0B1AFF0D0D1DFF0D0D 1EFF0D0B1DFF0B0C1DFF0C0B20FF0F091EFF0F081CFF0B0B1FFF0C0C1FFF0C0D 20FF0D0B21FF0D0821FF0C0B21FF0A0C21FF0B0D22FF0C0E21FF0D0F21FF0C0F 23FF0C132AFF0B162EFF0B162DFF0E162DFF0E152DFF0E112CFF0E0D28FF0C0C 22FF090E21FF0B0D21FF0D0E22FF0E1023FF0F0E22FF0D1026FF0C0F26FF0B10 27FF0B152CFF0F1B35FF0E1835FF0E1632FF0D162EFF0C182DFF0C1530FF0D14 2CFF0E1228FF0D0F25FF0D0E25FF0B0C24FF0C0D25FF0D0D24FF0A0A20FF0B0A 1DFF0E0B1AFF0E0B1AFF0C0B1CFF0E0C1DFF0F0B20FF0E0B1DFF0E0C1CFF0D0E 1FFF0A0C1DFF0B0B1DFF0B091CFF090919FF080714FF05050DFF020207FF0000 03FF000000FD000000FA000000E9000000C80000009400000055000000220000 0008000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000009000000260000005A0000009A000000CE000000EE000001FA0001 03FF020408FF04080FFF070D19FF091224FF0E162FFF101935FF101833FF1012 2CFF10122BFF121027FF0F0D26FF0B0A25FF0D0C1FFF0D0C1BFF0D0C1CFF0E0B 1EFF0F0A1EFF0E0B1FFF0D0C20FF0E0C1FFF0F0B1EFF0E0C1FFF0F0A1DFF0E0C 1EFF0D0C20FF0E0B21FF0E0D22FF0F1127FF10142AFF10142AFF0D122BFF0E16 2FFF0E142CFF0E142BFF0E162DFF0D142DFF0F1731FF101330FF100E2AFF0F0C 23FF0A0D1EFF0C0C1FFF0E0E20FF0E1023FF0F1129FF0F1028FF0D0E23FF0C0D 21FF0D0F25FF10132EFF101634FF0E1733FF0C162DFF0C172AFF0B1025FF0D10 25FF0E1025FF0E1024FF0F0F23FF0D0C22FF0C0D21FF0D0E21FF0C0D20FF0C0B 1EFF0C0B1CFF0C0C1DFF0C0C20FF0B0C20FF110B24FF0E0B1FFF0C0C1BFF0E0F 1FFF0B0C20FF0C0E21FF0D0D20FF0B0B1EFF090A1BFF060714FF04050EFF0303 08FF010003FF000001FE000000F9000000E9000000C50000008A0000004C0000 001D000000040000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00050000001F0000005100000091000000C8000000EC000000FC000102FE0204 09FF030913FF060E1EFF091427FF0C1831FF0F1632FF0F1834FF101733FF1314 32FF141A3AFF151734FF121230FF0E0F2CFF0E0D21FF0D0C1DFF0D0C1EFF0F0B 21FF100A20FF0E0A1EFF0C0C1EFF0D0D1FFF0E0D20FF0E0C1EFF100B1CFF100B 1EFF0F0B1FFF0F0B1EFF0E0D20FF0F1128FF11152DFF11182FFF0F1730FF0E15 30FF0E1029FF0E0F26FF0E1127FF0D112AFF0F142FFF10112DFF100F2AFF100E 27FF0B0F23FF0D0D20FF0D0C1EFF0D0D20FF101029FF11122BFF0D0F24FF0B0D 1EFF0D0C22FF100E27FF0F122CFF0F142EFF0E142BFF0C1225FF0C0D20FF0D0D 21FF0D0E22FF0D0F22FF0F0F25FF0D0C22FF0D0D20FF0D0F20FF0E0F21FF0D0B 1FFF0C0B1DFF0B0B1EFF0B0C21FF0B0D20FF0F0B21FF0E0B1FFF0C0C1DFF0D0C 1EFF0B0C20FF0D0F23FF0D0F23FF0B0D22FF0A0D21FF09091CFF070816FF0506 0EFF020206FF000103FF000001FF000000F8000000E4000000BD000000800000 0043000000170000000300000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000020000 00170000004500000084000000C4000000E7000001F9000103FF020408FF050C 18FF061127FF071832FF0A1E39FF0F1F3FFF101A38FF0E1530FF0E112BFF1111 2DFF131A3BFF151B3CFF161835FF14122AFF0F0C1FFF0D0B1EFF0E0C21FF0F0D 23FF0E0B21FF0C0B1CFF0B0A1BFF0C0D1FFF0D0E21FF0D0C1EFF0E0C1BFF100A 1EFF11091EFF0E0B1BFF0C0C1DFF0D0D25FF0D1029FF0E152CFF10182FFF0B10 27FF0C0D24FF0D0B21FF0C0B21FF0E0E26FF0F0D27FF0E0D26FF0E0E27FF0E10 29FF0D1129FF0D0D24FF0C0B1EFF0D0A1DFF100C22FF101129FF0B0F24FF0A0D 20FF0E0E22FF0E0E23FF0C0E24FF0E1027FF0F1028FF0C0D23FF0D0C22FF0E0E 21FF0D0E20FF0B0D22FF0E0F29FF0C0C24FF0C0C22FF0E0E22FF100F21FF0E0C 1FFF0D0C1DFF0B0B1EFF0B0C1FFF0E0E1EFF0C0B1BFF0E0B1EFF0E0B21FF0B09 1FFF0C0C1EFF0E0E21FF0E0E25FF0C0F27FF0B1026FF0B0D24FF0B0B1DFF0809 14FF04050CFF020307FF000102FF000000FC000000F4000000E2000000B40000 0075000000390000001100000002000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000E0000 003800000075000000B6000000E5000000F9000102FF010408FF030A14FF091A 31FF0A2244FF0E2B51FF143257FF183057FF1A2E53FF111936FF090A20FF0C0E 25FF0C0E28FF10112EFF13112BFF120C22FF10071EFF0F0C22FF0F0D22FF0F0D 20FF0E0C1FFF0F0C1BFF0F0A1AFF0E0A1FFF0D0C22FF0F0B1EFF0E0C1DFF0F0D 1EFF100D1FFF0F0E20FF0D1020FF0E0F26FF0E0D25FF0D0E25FF0D122CFF0C10 29FF0C0F25FF0D0D23FF0F0D23FF0C0C22FF0E0C24FF0E0D23FF0D0E23FF0D0C 25FF0F0D24FF0E0B22FF0D0C20FF0D0E20FF0D0C21FF0C0D24FF0C1028FF0D12 29FF0F1126FF0B0C21FF0C0D24FF0C0E24FF0D0D24FF0F0D27FF0E0F23FF1011 26FF0F1126FF0C0E25FF0E0F2AFF0B0F24FF0C0F25FF0F1027FF111124FF0F0E 22FF0E0F23FF0E1023FF0F0F22FF101021FF0C0D1EFF0C0E1FFF0D0D20FF0C0C 1FFF100D20FF110E21FF110F27FF10102CFF0E142BFF0D132AFF0F1224FF0E0E 1CFF080814FF04060DFF020306FF010102FF000101FD000000F4000000DB0000 00A90000006A0000002F0000000B000000010000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000008000000290000 0065000000A7000000DC000000F3000101FD010407FF030811FF040F21FF0A1A 36FF132E54FF123058FF0A2144FF091534FF101D3EFF101B36FF11192FFF151C 34FF0E122CFF0C0E25FF101228FF14162EFF12112AFF0F0E25FF0E0D21FF100D 22FF130C24FF120B1FFF100C1CFF0E0D1EFF0E0C21FF100A1FFF0D0C1EFF0E0D 21FF100F25FF111026FF0E0C24FF100E29FF0F0E27FF0D0D25FF10112BFF1010 2AFF0F0F26FF0F0E25FF0F0E25FF0E0F24FF0F0E23FF0E0E23FF0E0F24FF0F10 27FF110F2AFF110F28FF101026FF0F0F26FF0F0D27FF0F0E26FF11132BFF1115 2EFF0E1229FF0C0D22FF0E0F28FF0F1029FF0E1025FF0C0D24FF0C0F24FF0E10 27FF0D1128FF0C1127FF0C102AFF0C1328FF0D1228FF0D0F28FF0D0E23FF0C0D 21FF0F1026FF0F1226FF0E1023FF0D0E24FF100E22FF0F0E22FF0C0E21FF0C0D 1FFF120F22FF131023FF101024FF0F1026FF101228FF0F1027FF0F1125FF0E10 22FF0C0D1FFF080916FF06050DFF030306FF000101FE000000FB000000F20000 00D40000009D0000005700000020000000060000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000040000001B000000500000 0094000000CE000000F1000000FB000204FF02070EFF061324FF0A2646FF0C2B 4FFF10294EFF112549FF0F2145FF111C3FFF131C3DFF131D39FF141E36FF141B 37FF121936FF0E122AFF10152DFF131935FF11142EFF111027FF0E0E23FF0E0C 22FF110B23FF120C23FF110D1FFF0E0C1EFF0D0B1FFF0F0B1EFF0D0D20FF0E0E 23FF110E26FF130F29FF110F29FF110F29FF100F27FF0F0F26FF100E27FF100F 27FF101028FF0F1027FF0F0E26FF100E27FF110E25FF0F0F25FF0E1025FF0E0F 25FF0F1129FF101127FF101026FF100F28FF0F0E2AFF111029FF12122CFF1113 2DFF0F122AFF0E0F25FF100F29FF0F102AFF0E1027FF0F1127FF0F1029FF1012 29FF10122AFF0F112AFF0D1126FF0D1226FF0D1027FF0E0F26FF0D0E23FF0D0D 21FF0E1027FF0F1328FF0E1324FF0E0F24FF100E24FF0E0D20FF0C0D1EFF0E0E 1FFF120E20FF120F24FF0F0E25FF0D0E24FF101128FF111129FF0F1127FF0C10 25FF0C0F23FF0D0D1FFF080815FF04040CFF020205FF000001FE000000FB0000 00EC000000C50000008700000042000000140000000100000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000F000000390000007E0000 00BE000000E9000000FB000001FF01060AFF030B17FF081C35FF113962FF0E3B 67FF0C2549FF0D1A3AFF132042FF18274CFF131F3DFF121C37FF131D3AFF131F 3FFF131A39FF0F1631FF0E1530FF0F1530FF0F1128FF110F25FF0F0D23FF0E0D 21FF0F0C21FF100B25FF120C20FF110B1EFF0F0A1DFF100C1CFF0E0E1FFF0E0E 22FF100D24FF120D27FF121128FF121129FF111129FF101027FF0E0B24FF0F0D 24FF101128FF0F1127FF0E0E23FF110D26FF100C25FF100E26FF0F0F27FF0E0E 25FF0F1025FF0E0F24FF0F0E24FF0F0D24FF0E0D26FF111129FF10112AFF0F10 29FF101028FF0F1027FF0F0F27FF0E0E26FF0F0F27FF12112AFF111029FF1111 28FF121229FF111129FF101123FF0D0F23FF0E0E24FF100F24FF100F22FF0E0E 22FF0E0F25FF0E1125FF0E1223FF0E0F22FF0D0C23FF0C0C20FF0C0E1EFF0F0F 20FF110E20FF110E26FF0E0E26FF0D0E24FF0F1027FF10132BFF0F122BFF0D11 28FF0C1026FF0F1027FF0B0D20FF070A17FF04060DFF010204FF000001FE0000 00F8000000E2000000B40000006D0000002F0000000B00000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000070000002600000061000000AA0000 00DF000000F9000002FE000206FF040B15FF051123FF0A203CFF153963FF0F3A 68FF0E2F56FF0C1F3FFF0A1534FF0F1C3CFF0B1B35FF0B162FFF111C3AFF182A 4DFF0E1634FF0D1633FF0C152FFF0A1026FF0D0E20FF0E0C1FFF0F0C20FF100D 22FF0F0E23FF0D0A23FF110A20FF130B1DFF120B1BFF110A1BFF0F0D1BFF0F0C 1EFF0F0C20FF0F0D20FF0D0D21FF12132AFF13122CFF100F27FF0F0C23FF110E 22FF100F25FF0D1123FF0B111FFF100D22FF0D0A22FF0E0D26FF100F29FF100F 28FF110F24FF0D0D23FF0C0D22FF0E0D1FFF0D0A1EFF0F1026FF0F1127FF0E10 24FF0F0F23FF0E0E29FF0C0D23FF0D0E22FF100E26FF120E27FF0E0D23FF0D0C 22FF0E0F23FF101224FF111025FF0D0E24FF0E0F24FF100F23FF100E20FF0E0F 22FF0F0E21FF0E0D20FF0D0D1FFF0C0D21FF0B0A22FF0C0D23FF0E1123FF0E10 22FF101024FF0F1026FF0E1026FF0F0F25FF100F26FF0E122AFF10142DFF1014 2CFF0E1429FF0E122BFF0F152BFF0D1324FF080C18FF02050BFF000203FF0000 00FE000000F4000000D500000099000000540000001F00000004000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000100000016000000470000008E000000CC0000 00EE000001FC000305FF020912FF071325FF081B33FF0D2A4BFF17406BFF092D 57FF133C6CFF133563FF0A1D41FF0D1C3CFF142341FF101B36FF0C112BFF0F11 2CFF0F1833FF142241FF101E3CFF0B152EFF11172AFF0D0E21FF0D0C20FF0D0C 21FF0C0B20FF0F0C22FF0F0A1FFF0E0B1BFF0E0B19FF0F0918FF0D0E1CFF0D0C 1CFF0E0B1CFF100B1DFF0D0E1EFF0F1124FF101026FF100E24FF0E101FFF100D 1EFF0E0E24FF0C1025FF0B1020FF0C0D1EFF0F0F24FF0F1028FF0E0E27FF0E0B 24FF100C24FF0E0E24FF0D0F23FF0D0E22FF0E0E23FF0C0F21FF0D1023FF0E10 23FF0D0F21FF0F0E25FF101026FF100F25FF0E0E26FF0C0F28FF0D0D22FF0E0E 22FF0F0D22FF0E0C1FFF0E0D22FF0C0E21FF0C0E22FF0D0D23FF0E0C22FF110F 26FF100F23FF0E0F21FF0D1022FF101329FF0D0E25FF0E0F23FF0E1122FF0D0F 21FF0E0F21FF0F1122FF101125FF110F29FF10132CFF0F142DFF10152CFF1015 29FF0E1527FF0E1628FF0E1629FF0E1628FF0C1222FF060A15FF010306FF0000 01FF000000F9000000E9000000C3000000800000003F00000011000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000A0000002F0000006E000000B6000000E60000 00F9000102FE02050AFF05101FFF051C34FF082240FF10284BFF173157FF0C26 4EFF113662FF133A68FF122D59FF14254AFF101C3FFF0F1D3EFF111F3EFF1219 38FF121834FF111B39FF101F3DFF0F1E38FF0D1229FF0E0E21FF0F0C20FF0F0B 20FF0F0A20FF100B20FF0F0B1DFF0E0D1DFF0D0D1CFF0D0A19FF0C0C1CFF0C0A 1DFF0D0A1DFF0E0C1EFF0D0E20FF0E0F23FF100E24FF100E23FF0E1021FF0D0D 1EFF0C0E21FF0C0F24FF0D0F23FF0C0C1DFF0C0D1EFF0D1025FF0D112AFF0C10 28FF0D1127FF0D1025FF0E1026FF0F1028FF0E0F26FF0C0F20FF0E1024FF0F0F 25FF0C0D22FF0E0D25FF100E27FF100E26FF0D0E24FF0A1024FF0D1023FF0F0D 21FF0E0C22FF0E0E23FF0F0F25FF100E24FF0F0E23FF0C0E22FF0A0C22FF0E0F 26FF0F0F23FF0D0E21FF0C0E22FF0C1226FF0C0D24FF0D0C21FF0E0D20FF0E0F 20FF0F1023FF0E1228FF0E1029FF0F0F2BFF101530FF0E142AFF0D1325FF0D14 26FF0E162BFF171D2FFF14192AFF0E1326FF0A0E22FF080B19FF04080FFF0102 05FF000000FE000000F7000000E0000000AB0000006600000029000000060000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000020000001B0000005100000097000000D4000000F30000 01FE010306FF040B15FF06182FFF0A2B4DFF0C2A4FFF0E2247FF122347FF1124 4BFF0F2D50FF113258FF15305DFF152A56FF12264EFF12264CFF132448FF121D 41FF121A3CFF101C3DFF0F1E3DFF0F1A35FF0E0F25FF100E23FF110C21FF110C 22FF110E24FF130C21FF100D1FFF0E0E1EFF0D0E1DFF0D0D1DFF0E0C20FF0F0D 23FF0F0E23FF0F0F21FF111125FF101227FF101026FF100F24FF101123FF100E 20FF0F0E20FF100F23FF110F26FF0F0E23FF0F0C22FF0F0F24FF0E1229FF0B15 2BFF0D152BFF0E132AFF0F132BFF0E142CFF0F142AFF0F1225FF0F1025FF0E10 26FF0F1026FF101029FF100F2AFF0F0F29FF0F1128FF0F1429FF0E1224FF100F 24FF100E25FF0F1025FF0F0F24FF110E25FF100F24FF0E1024FF0C0F27FF0F12 28FF0F1125FF0F0F23FF0E0F23FF0D1123FF10172EFF0F162CFF0F1427FF1217 27FF13152CFF111731FF0F1731FF101530FF111834FF0E142DFF0C1228FF0C12 29FF0F142DFF12182DFF111428FF0E1026FF0C0F25FF0B1023FF070C18FF0306 0BFF000103FF000000FC000000F1000000CF000000910000004B000000160000 0002000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000010000000B0000003500000078000000BD000000EA000001F90002 04FF02080FFF061223FF072041FF0F3964FF0F3460FF0C234AFF0B1F42FF142A 52FF0F2949FF0E2748FF122851FF122A56FF153057FF152D53FF12244AFF0F1D 42FF122148FF12254AFF0F1F3FFF0E142FFF121024FF111126FF120E25FF120E 25FF111127FF150D24FF120F23FF101425FF101426FF0F0F23FF0F0E25FF1211 28FF121228FF111125FF141329FF12162BFF11142BFF111228FF131324FF130F 22FF130E21FF130E23FF121027FF11122BFF140F2AFF120E25FF0F1125FF0E16 2AFF10142DFF11152EFF0F152DFF0D152CFF0F162BFF111429FF0F1127FF0E11 27FF11152AFF11162EFF10122CFF10122BFF11142DFF131730FF0F1225FF1112 26FF121228FF101025FF100D21FF110F26FF111126FF101127FF11122BFF1114 2CFF101228FF101126FF121226FF111225FF142038FF13233BFF122135FF1520 31FF161B36FF121D37FF111E37FF141E37FF161F3AFF1B223EFF1F233DFF2625 3EFF29263FFF1A1E33FF161930FF1D1F36FF22243AFF161C33FF0A1122FF060A 13FF030508FF000102FD000000F8000000E8000000B7000000710000002E0000 0009000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000040000001C000000560000009E000000DB000000F8000002FE0004 0AFF030D19FF071A30FF09284CFF0B3A66FF0F3D68FF103156FF0B2543FF1438 65FF0F2E56FF0C2448FF0F2449FF11294BFF0C1F38FF0E2444FF132A52FF1228 4DFF112D4FFF10294CFF112243FF131B35FF101525FF101528FF11122AFF1110 28FF111025FF140D26FF100F22FF162236FF1A2A42FF10132AFF0E1126FF0F13 28FF111429FF111329FF13122BFF11142AFF13172CFF16182DFF151627FF0E0F 21FF100D22FF110E24FF101227FF11162BFF0F1129FF0F1025FF0F1023FF1011 25FF121029FF11132BFF10142CFF0E132BFF0C1127FF0E1129FF10112BFF0F12 2AFF0D1529FF0E162DFF0F1328FF11122BFF13132FFF12142CFF0F0F24FF0E10 25FF0F1128FF121128FF130E24FF11142AFF111329FF111127FF111129FF0E13 2CFF0E0F29FF100F27FF131329FF12142CFF101933FF14233EFF17273FFF1521 35FF1B253BFF16223AFF151F38FF1C233DFF2A3349FF3F485EFF525262FF655A 67FF6C5F6DFF4F4859FF3A3D53FF4B4B61FF555165FF2E3246FF121D31FF0C13 20FF090C11FF030506FF000000FC000000F4000000D2000000970000004D0000 0018000000030000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000C000000360000007D000000C0000000EC000001FA000305FF010A 13FF05162AFF092443FF0B2A50FF0E3258FF0D365EFF0E345EFF143258FF1233 5EFF0F2C56FF0C254BFF0C274AFF123456FF0D253BFF0B203BFF0D2547FF1029 4BFF0A1E3DFF122142FF141D3AFF13162BFF161B2BFF141728FF121428FF1012 27FF111024FF170D26FF0D0C23FF172842FF243D5CFF192A48FF142136FF1B29 3DFF1B2A3EFF151E33FF14152FFF0F1428FF101528FF14162AFF14152AFF0F11 25FF101125FF0E1125FF0D1126FF101429FF0F1226FF0E1024FF101024FF1211 26FF110F26FF0F1126FF0F1529FF10172DFF11142AFF0F182EFF0F172CFF0F14 28FF0E1226FF111226FF131229FF13132BFF12142CFF11132BFF111129FF0E10 29FF0E122CFF10142EFF0E0D26FF11122AFF12162DFF10152DFF0E122AFF1013 2BFF14152AFF12172BFF0C182FFF0B1D35FF1F2E42FF253046FF1C2C43FF1C32 47FF5B5C6DFF696474FF4D4C5FFF404257FF736E7DFF615B6EFF4C475BFF4843 55FF584E5EFF695C6BFF746979FF786B7CFF736677FF655D6EFF4B4C5EFF2A33 43FF151D27FF0E1012FF050507FF010101FA000000E8000000BB000000730000 002E0000000A0000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00040000001B00000054000000A0000000DA000000F8000102FD02060CFF030B 18FF071931FF0C2C4DFF0A2F53FF0B3459FF0E345CFF0F315AFF102E57FF1236 64FF113461FF11335EFF12365FFF153B61FF1C3952FF152A43FF0E2442FF112A 49FF0E1933FF141731FF181E35FF192436FF192533FF161B2DFF13172CFF1115 2AFF111127FF131229FF191D33FF24314AFF2C415EFF2B3F5CFF2D3B52FF313C 50FF28384BFF1E3445FF313F51FF333748FF272A39FF191E2DFF141629FF1215 29FF111528FF0F1326FF0F1024FF101124FF111025FF111026FF101027FF1110 27FF131026FF121123FF0F1323FF0E1325FF121125FF1E1D30FF201E33FF1B1B 30FF14172AFF101023FF111124FF131328FF14172EFF151B33FF131C33FF1117 31FF101530FF10152EFF111129FF12122BFF12142DFF11162EFF0E172DFF1015 2CFF0E132AFF192340FF35466BFF5A6A90FF626B8AFF616782FF676E8AFF7981 9FFF888296FF908493FF746D7FFF676780FFA39EB9FF79738BFF50526BFF4A4E 68FF656279FF827485FF958AA3FF9387A0FF887A90FF837A92FF777B9AFF6F72 8FFF535469FF282B35FF101013FF030303FE000000F4000000D3000000950000 0049000000160000000100000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000B0000003100000077000000BF000000EC000000FD000104FF040B15FF070F 21FF0B1831FF0E2645FF0B3056FF0A375EFF0E355EFF102E59FF0D2E5AFF1239 6AFF123B69FF113A66FF133B67FF143D66FF1D3E5DFF213752FF213350FF2034 52FF1A2137FF1D1E34FF232B41FF26394CFF233343FF202A3DFF1E293EFF1C26 3CFF182036FF152237FF2A3347FF343B50FF343C53FF364158FF3C455AFF3D41 55FF374052FF364857FF4F5F6BFF6F6A71FF575358FF292F37FF131627FF1416 2BFF11152AFF101428FF111227FF101025FF110F26FF121127FF13132AFF1314 2CFF121226FF131224FF0F1121FF0B0F1EFF111021FF2E2031FF38293DFF332C 40FF292B3CFF232637FF151A29FF0F1728FF172236FF29364CFF28394DFF3F46 5CFF383950FF15172FFF11142BFF10132DFF10132EFF0E152EFF0C192FFF131E 36FF142039FF2E3B5BFF606D94FF9399BFFF8F90AFFF8C8CA8FF9A9AB7FFAFAB CCFF948DA3FF958A9AFF887F90FF817E96FFA09FBFFF88829BFF706E85FF6E6F 87FF817E97FF8F8399FF9B95B4FF9791B2FF928BAAFF9C99BCFF9096C0FF9B9B C1FF82809DFF444659FF1C1B22FF070608FF000000FA000000E4000000B50000 0068000000280000000600000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000010000 00170000004B0000009A000000D7000000F6000001FE010307FF05101DFF0D16 2CFF101530FF0E1835FF0E2E56FF0D3860FF0E3661FF0F3362FF103867FF123A 6AFF0F3B67FF0D375EFF0C3359FF113C65FF123154FF283B5AFF3A4764FF3643 5DFF293046FF2D3549FF334055FF36465CFF344357FF324053FF344457FF3142 56FF28394EFF263B4DFF384356FF414254FF3E3D4CFF3A3B49FF3F4050FF4243 54FF4B4B5BFF575863FF62646CFF9A8B88FF817774FF3F4246FF151929FF1415 2DFF12152DFF11172DFF11182EFF11142CFF11132AFF13142AFF15182FFF171C 32FF0F1629FF121429FF131628FF121725FF141629FF332333FF413142FF423C 4CFF3E4250FF404352FF222D3CFF112332FF233446FF516070FF516173FF8689 98FF7B7586FF2F2C42FF1A1D36FF111933FF0E1934FF101C37FF16223DFF1A2B 42FF283A51FF49576FFF72778FFF8A879AFF8A8597FF8C889DFF9491ABFF9B98 B5FF928EA6FF90899EFF908699FF8B8397FF827E96FF908497FF97899BFF978B 9FFF9289A0FF8E87A1FF928EACFF8E8BACFF9392B6FFACAED6FF9694BCFF9795 BAFF8684A2FF58566AFF27252FFF0D0C0FFF020202FD000000F2000000D10000 008A000000400000001000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000060000 002800000068000000B6000000E8000000FC000203FF030910FF0A1426FF1119 34FF121936FF0D1C39FF0E2D52FF0D3460FF0F3C69FF0F3F6AFF0A3B67FF1039 65FF103963FF0E365EFF10335BFF1A3B64FF233355FF2F3551FF373B52FF3B3E 53FF3B3E52FF394053FF3C4356FF3F485BFF404B5EFF42495FFF414A5EFF3F4B 5EFF404A60FF454B5AFF4A4D5CFF4E505EFF4F515DFF4D4F5CFF565865FF6061 6DFF696870FF6E6C70FF737075FF767578FF67676BFF4A4C54FF2C303EFF141A 32FF151F36FF172438FF162135FF171D34FF191C34FF161E35FF112036FF1120 36FF131F32FF12192EFF1F273BFF2C3648FF24273BFF222538FF1B2338FF1D27 3BFF292E3FFF272A3DFF323A4BFF333B4CFF484A5CFF827F8DFF767686FF8D85 93FF998C99FF817687FF4E4760FF242B44FF1B2743FF333C5AFF4F546FFF1B2B 45FF28394FFF50596EFF737187FF80798BFF888091FF898397FF9893AEFFB3AD D1FFB6B3D9FF9C9CBDFF8F8EACFF928DAAFF948BA6FF948AA0FF908FAEFF8E8F B3FF8F88A7FF908AA7FF968EB0FF928CAEFF8B87A6FF8A83A2FF8E819DFF8C80 98FF7E7489FF60596AFF36303AFF141316FF040304FF000000F8000000E10000 00A60000005B0000001F00000001000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000F0000 003E00000087000000CF000000F1000102FE01060AFF04111DFF0B1C33FF0C18 36FF0F1635FF13203FFF10385EFF0D3865FF0F3865FF0F3863FF0D3661FF1134 5AFF0F3253FF0C2C50FF102953FF213560FF384468FF3C4364FF3C415FFF4247 60FF3F4966FF4A506AFF50526DFF515571FF5B6073FF5E6174FF5D6C87FF5775 9BFF4E739EFF536286FF4E5A79FF516383FF596A8CFF5B607DFF5E6787FF5E64 7DFF616276FF656577FF646173FF5C5E6AFF5A5860FF595259FF514A54FF3A38 49FF323648FF2A3344FF1C2839FF0C192AFF0E1A2FFF131E34FF1A263BFF2230 43FF1F2A3FFF242E3FFF24313FFF223240FF273142FF1E283BFF162436FF1323 35FF172436FF282B3BFF3A3B4EFF5E5A6BFF847886FF968692FF8C7C8CFF907F 94FF928297FF897C8DFF786A7FFF595369FF5D5870FF716985FF756E8EFF665C 79FF685F79FF746B80FF817587FF83788AFF87788EFF867B92FF8A849CFF9591 ADFF9899B7FF9597B6FF9597B8FF999BBDFF9C9CBDFF9799C2FFA6ABD4FFB3B7 DDFFB3B4D8FFBABFDDFFCBCAE4FFC6BFDAFFB1A9C6FF9F9AB5FF9B93ADFF9089 9FFF847D91FF6F697DFF454150FF1E1C24FF08080AFF010101FB000000EE0000 00C3000000780000003200000008000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000010000001B0000 0056000000A3000000E0000000F8000103FF020A10FF061A2BFF0B2543FF0E21 44FF132144FF152A4EFF0F365DFF0D3762FF0E3763FF0E3461FF0A2E5BFF102F 53FF132D4FFF1D3459FF2E4570FF3E588DFF536F9EFF546F9BFF556B95FF5F72 97FF5B739CFF6B7DA2FF7182A6FF7C8BAAFFA3A5B3FFAAAAB3FFA3AEC2FF91B2 D2FF83B0D8FF97A8C9FF909CBAFF8EA2C1FF95ABCBFF9EA5C0FF9EABC9FF9CA5 BBFF969EB1FF8D9CB2FF899AAEFF9395A4FF8F8F9BFF878B98FF848999FF7381 94FF757F92FF7E8292FF787E8BFF4E6376FF324C61FF39536BFF435E79FF3E5E 79FF4C5D75FF525E73FF535D6DFF485464FF2F455CFF294560FF27415BFF1E33 4EFF1B2B47FF4D5167FF847F90FFABA1B0FFB5ACBDFFA5A4B7FFB0A7B7FFB8B0 C0FFB3ADC1FFA6A1B7FF9E9DB4FF8B8DAAFF9293B3FFA7A5C2FFB5AEC6FFADA5 C0FFA2A5BFFF969CB8FF9090AFFF9697B2FF9295B4FF9798B5FF9B9BB5FF9FA0 B8FFBABAC9FFB3B4C9FFA2A6C5FF9A9FC4FFA5A5C7FF9C9FC9FFA7A9D2FFB1B6 DCFFB5BEE5FFBFC9ECFFD4DEF6FFE0E3F4FFD8D7E9FFBCC3DEFFB1B5D4FFA9AE CBFFA1A8C2FF9198B1FF737586FF3E3E46FF161619FF030303FD000000F50000 00D7000000930000004900000013000000010000000000000000000000000000 00000000000000000000000000000000000000000000000000060000002C0000 006F000000BB000000EA000001FC010305FF030D16FF081F36FF0C2D50FF152F 55FF193158FF15335CFF102F56FF0E325BFF113A65FF103966FF0A2C59FF112F 57FF162A52FF27385FFF3E5680FF4F70A8FF678DC1FF6B92C3FF6E91C0FF7A97 C4FF7A99C6FF84A3CCFF8BAAD0FF9EB8D7FFCBD7E4FFD5DDE5FFCDDAE5FFBCD6 EAFFB4D8F1FFCEE1F6FFCAD9EFFFC7DBF1FFCDE3F8FFDAE7F9FFDAEBFFFFDAE8 F8FFCFE1F0FFBFDBEEFFBCDCEFFFD2DAEBFFC9D3E5FFB6CCE1FFB1C9E0FFA9C9 E0FFB6CBE0FFCDD6E5FFD4DBE8FFAEC5DBFF7499B0FF6892ADFF6796B5FF5C8D AEFF728FA9FF7087A0FF7E8DA4FF7D8DA4FF456989FF507B9EFF6384A5FF647A 98FF5E6F8EFF919BB6FFD2D2E3FFE4E0F1FFD0D4EBFFBBCEE7FFD2D9ECFFDDE6 F3FFDAE4F4FFCCD4EDFFBACAE6FFB2C2E5FFB4C6EBFFC7D5F3FFE5E9F8FFD5DE F4FFC4DEF5FFB2CEEEFFA8BAE3FFB2C5E5FFA8C2E5FFB2C4E5FFBCC6E2FFC2CB E2FFEBEEF5FFD6DBE9FFB6BEDAFFA8B1D3FFB6B8D5FFB1B2D1FFA7ACCEFFA1AB D2FFA5B2D9FFADB6DDFFBCCAE7FFD3DEEFFFDAE3F2FFC1D3F0FFB8C6E9FFBDC9 EBFFBACAEBFFAABCDDFF969EB3FF5C5F6AFF26272CFF070708FE000000F80000 00E4000000AC0000006300000022000000040000000000000000000000000000 000000000000000000000000000000000000000000000000000D0000003F0000 0088000000D0000000F1010203FD02050AFF050F1DFF0A213DFF123055FF1835 5CFF1B365FFF1A3660FF183058FF142D57FF163A65FF17406BFF11345DFF1736 63FF132851FF122247FF1C2D52FF364A72FF6579A2FF7289B1FF728AB1FF7990 B4FF7C94B8FF829CBFFF8BA5C5FF95ADCAFF98B5D0FF9CBCD4FFA1C1DAFFA7C6 E1FFAECCE8FFB2D0EDFFB2D1EDFFB9D7F2FFC3DFF9FFC8E4FDFFC9E3FDFFC5E1 FBFFC2DEF7FFC1DCF2FFC0DAF0FFC1DBF2FFC2DBF2FFC3DBF2FFC2DCF2FFC5DD F2FFCAE1F4FFCBE2F5FFCEE4F7FFD9EBFCFFACCEE5FF7BA7C4FF6491AFFF6993 ADFF658EA8FF55829BFF6D97B1FF86ADCAFF6996B9FF92B8D9FFC7E0F7FFE3F3 FFFFDFF0FFFFDBECFFFFD8E8FFFFD6E7FEFFD5E7FEFFD6E7FDFFD8E9FEFFD3E6 FDFFD5E6FEFFD8E8FEFFC8DBF5FFCBDFFAFFCCE2FCFFCFE4FCFFD8E8FEFFD9E8 FCFFD1E2FAFFCBDEFBFFC9DFFCFFCCE4FBFFC0DBF7FFC2DCF8FFCADFF8FFD1E1 F6FFE0EDF9FFD2E2F7FFCBDCF7FFCBDEF6FFCADDF4FFD3E0F6FFC0D5F4FFAEC4 E9FFABB6D9FFACB4D6FFACB5D8FFB0B9D9FFB1BADAFFA9B4D9FFA8B3D6FFB3BB DDFFB3BCE2FFA2AFD9FF8693B8FF60667CFF30333CFF0C0D10FF020203FB0000 00F1000000C50000007E00000034000000090000000000000000000000000000 0000000000000000000000000000000000000000000200000018000000520000 009D000000DE000000F9000203FF03070EFF091526FF122947FF102C53FF1530 5AFF17335BFF15325AFF1D335EFF172E55FF142B50FF142E55FF133562FF1531 5DFF13254BFF1A294BFF283B5EFF314970FF506E99FF6886B0FF7490B8FF7792 BBFF7C99C0FF809EC4FF87A4C8FF8EABCCFF91B2D2FF95B7D6FF9ABDDDFFA1C4 E4FFA9CBEBFFABCEEEFFAED2F0FFB4D6F3FFB9DAF7FFBCDCF9FFBADAF8FFB9D8 F7FFB9D7F5FFB9D6F3FFBAD7F2FFB9D6F1FFB9D5F0FFB9D6F0FFB9D6EFFFBBD6 F0FFBEDAF2FFC1DDF3FFC3DEF4FFC4DFF5FFC7E1F6FF9FC4E0FF6391B1FF3662 7CFF376179FF376179FF416A85FF547F9EFF719BBEFFB3CEEAFFCCE0FAFFCFE2 FAFFCFE2F9FFCEE1F9FFCEE0F9FFCEE0F9FFCFE1F9FFCFE1FAFFCFE1FAFFCFE1 FAFFCFE1FAFFCEE0FAFFCADCF7FFCCDDF8FFCDDEF8FFCDDEF7FFCFDEF7FFCFDE F7FFCCDCF7FFCADBF7FFC9D9F5FFC6D7F4FFC3D4F1FFC3D3F0FFC3D3F0FFC5D4 EFFFC7D5EFFFC4D3EEFFC2D1EEFFC0CEEDFFBDCBEAFFBFCEEDFFBACDEEFFB4C9 EBFFB3C3E7FFB4BFE2FFB3BEE0FFB3BEE0FFB3BDE0FFB0BBDFFFB1BBDFFFB1BC E2FFB2BFE8FFB0BFE7FF9FADD1FF707893FF3A3F4EFF13161AFF030405FE0000 00F6000000D50000009500000048000000110000000200000000000000000000 0000000000000000000000000000000000000000000400000024000000670000 00B1000000E8000100FC010406FF020912FF09162AFF172E4FFF11315AFF102D 56FF102A53FF122D57FF1A3661FF142B52FF11274BFF122C50FF14315AFF1226 4CFF152648FF182847FF1F3050FF314C71FF5A77A1FF6C8AB4FF6F8FB8FF7092 BBFF7897BFFF7B9CC3FF809FC6FF85A4C9FF89ABCFFF8DB1D5FF92B8DDFF98BF E4FF9EC4E9FFA3CAECFFA6CDEFFFACD0F2FFB0D3F4FFB0D3F5FFAFD1F3FFB0D0 F2FFB1D0F1FFB1D0F0FFB1D1F0FFB1D0EEFFB1CFEDFFB1CFEDFFB2D0ECFFB2D0 ECFFB7D4EFFFBAD7F0FFBAD7F0FFBBD8F1FFC2DDF4FFB7D5EFFF95BAD7FF6692 B0FF4F7997FF2F5874FF3D6987FF6E9BBEFF9ABDDEFFBED7F3FFC6DCF7FFC4DA F5FFC5DAF5FFC4DAF5FFC6DAF6FFC7DAF6FFC7DBF6FFC6DCF7FFC6DBF7FFC7DB F6FFC8DBF6FFC7DAF6FFC7DAF5FFC7D8F5FFC7D8F4FFC7D8F4FFC7D7F3FFC6D7 F3FFC5D6F3FFC3D5F1FFC1D3F0FFBFD1EFFFBFCFECFFBFCEEBFFBFCDEBFFBECD EBFFBECCE9FFBDCCE9FFBCCAE9FFBAC8E8FFBAC7E7FFB9C7E8FFB8C8E9FFB7C7 E9FFB7C5E9FFB6C3E6FFB6C2E5FFB5C1E5FFB5C0E4FFB5C1E4FFB5C0E4FFB3C0 E5FFB4C2E8FFB5C4E8FFABBADCFF8490ACFF505767FF21252BFF08090AFF0101 01FA000000E4000000AC000000600000001D0000000400000000000000000000 00000000000000000000000000000000000000000008000000320000007B0000 00C3000000F0000000FD01050AFF040D19FF0C1C33FF1A3257FF1A3E68FF193B 64FF15315AFF122B58FF173762FF142D55FF122B50FF112E52FF132C52FF1123 46FF142546FF122341FF172947FF365276FF637EA6FF6F8CB4FF6C8BB4FF6E8F B8FF7394BAFF7697BFFF799AC3FF7C9EC6FF80A5CBFF86ADD4FF8BB4DCFF90B9 E1FF95BCE4FF9AC2E8FF9DC5ECFFA1C9EEFFA5CBEFFFA5CAEFFFA5CAEFFFA7CA EEFFA8C9ECFFA8C9EBFFA9C9EAFFA9C9EAFFAAC9E9FFAAC9E9FFACCAE9FFACCA E8FFAFCDEAFFB1CFEBFFB2CFEBFFB4D1ECFFB5D2EDFFBAD5EFFFB5D3EEFFA1C5 E5FF8DB0CFFF6B8EACFF769CBBFF9FC5E5FFB6D3F2FFBDD6F4FFBED7F3FFBED6 F3FFBED5F3FFBED6F3FFBFD6F3FFC0D6F3FFC0D6F3FFBFD8F5FFBFD7F5FFC0D7 F3FFC1D6F3FFC2D6F4FFC0D6F3FFC0D4F2FFC0D4F2FFC1D4F1FFC0D2F0FFC0D2 F0FFBED1EFFFBDCFEDFFBBCDECFFBACDEBFFBBCBE9FFBBCAE8FFBACAE8FFBAC9 E7FFBAC8E5FFB9C7E6FFB8C6E5FFB7C5E4FFB8C5E5FFB6C4E4FFB6C4E4FFB5C3 E4FFB5C2E4FFB5C2E3FFB3C1E3FFB3BFE3FFB3BFE3FFB3C0E2FFB3C0E3FFB2C0 E2FFB2C1E3FFB3C1E3FFAEBDDEFF93A0BCFF626B7DFF2F333BFF0D0E10FF0202 03FD000000EE000000BF000000760000002B0000000800000000000000000000 0000000000000000000000000000000000010000000F000000410000008D0000 00D1000000F7000001FF02070DFF061321FF0E223BFF183359FF244974FF284D 76FF1F3D65FF122C56FF163761FF163159FF132D54FF102C52FF10284EFF1127 4AFF0E2342FF0B203EFF182E4DFF3F5B7FFF617DA2FF6D87AEFF6D87B0FF6F8B B4FF6F8FB5FF7192BAFF7496BFFF779BC4FF7BA1CAFF82AAD2FF87B0D8FF8AB3 DBFF8EB5DDFF90B8E0FF95BCE4FF97BFE6FF99C0E7FF9BC2E8FF9CC2E9FF9EC2 E8FF9FC2E7FF9FC1E5FFA0C0E4FFA2C1E3FFA3C2E3FFA4C3E4FFA6C4E4FFA6C3 E4FFA7C5E4FFA8C6E4FFA9C6E5FFABC7E5FFADC9E6FFADC9E6FFAFCBE8FFB5D0 ECFFBBD5F1FFBDD8F6FFBCD7F4FFBAD3EFFFB6D0EEFFB6CFEFFFB6CFEFFFB6D0 EFFFB7D0EFFFB7D1EFFFB9D2F0FFBAD2F0FFBAD2F0FFBAD3F2FFBBD3F2FFBBD3 F1FFBBD3F0FFBCD3F0FFBAD2F1FFBAD2F1FFBBD1EFFFBCD0EEFFBCCFEFFFBBCD EEFFBACDECFFB9CBEBFFB8CAE9FFB7C9E9FFB8C8E7FFB7C7E6FFB6C6E5FFB5C5 E3FFB5C4E3FFB4C3E3FFB4C2E2FFB3C2E1FFB2C0E0FFB1C0DFFFB1C0DFFFB1BF DEFFB0BEDFFFB0BDDFFFAFBCDEFFAEBBDEFFAEBBDEFFAEBBDDFFAFBCDDFFAEBC DCFFADBBDCFFADBBDDFFACBBDCFF99A5C3FF6E778CFF3A3F4AFF111317FF0304 04FE000000F4000000CE0000008A0000003B0000000D00000000000000000000 0000000000000000000000000000000000020000001500000052000000A00000 00DD000000F9000103FF030912FF061121FF091A30FF0E2848FF1D426BFF183E 63FF0E2E50FF0D284CFF183664FF102A52FF0E254BFF0F274CFF0E284AFF0D24 43FF0A233EFF072440FF153454FF456388FF5F7BA0FF6882A8FF6983AAFF6987 ADFF6C8AB0FF6D8CB3FF7191BAFF7598C1FF789CC6FF7EA4CDFF81A9D1FF83AB D3FF85ABD3FF86ADD4FF8AAFD7FF8EB2D9FF91B5DBFF94B7DCFF92B8DDFF95B8 DDFF97B9DEFF98BADDFF98B9DDFF98B8DCFF9AB9DBFF9CBBDCFF9EBDDCFF9EBC DCFFA0BDDEFFA2BDDEFFA3BEDEFFA3BFDFFFA5BFDFFFA7C1DFFFA8C3E0FFA8C4 E1FFA8C4E1FFABC5E4FFACC6E7FFACC7E7FFADC6E6FFAFC8E8FFAFC8E8FFB0C9 E8FFB0C9E9FFB1CAE9FFB2CBE9FFB2CBEAFFB3CCEBFFB5CDEBFFB5CDECFFB5CE ECFFB6CEECFFB7CDEBFFB8CDEDFFB7CDEDFFB5CDECFFB6CCECFFB7CBEDFFB7CA EBFFB7CAEBFFB6C9EAFFB5C8E9FFB5C7E7FFB4C6E6FFB3C4E4FFB3C3E3FFB2C3 E2FFB0C2E1FFB1C2E1FFB1C0E1FFB0BFE0FFAEBEDEFFADBDDDFFADBDDEFFACBC DEFFACBBDEFFABBADCFFACB9DBFFACB9DBFFABB9DBFFABB9DAFFAAB8DBFFA8B8 DAFFA9B8D9FFA9B7D9FFA9B8D9FF9CABC9FF79849BFF474D5CFF1A1C21FF0506 08FE000000F9000000DC000000A00000004B0000001400000001000000000000 0000000000000000000000000000000000040000001F00000063000000B10000 00E8000000FD010204FF050D18FF08162AFF091C37FF0A203EFF0F2C52FF102C 4EFF0E2644FF0E2446FF14305CFF102A51FF0F284DFF0E2A4DFF0B2B48FF0D27 44FF183251FF1E3C5DFF2E4D6FFF5D769AFF627BA1FF657FA3FF6782A5FF6784 A9FF6B86ADFF6C89AFFF6F8DB2FF7491B8FF7B96C0FF7D9AC5FF7E9EC7FF7FA0 C8FF7F9FC9FF7FA0C9FF83A4CAFF85A6CCFF87A7CDFF8BA9CDFF8CABCFFF8FAD D1FF91AFD2FF92B0D3FF93B0D3FF93B1D3FF95B2D3FF97B3D4FF98B5D5FF99B5 D5FF9AB5D4FF9CB6D5FF9DB7D7FF9EB8D9FF9EB9D8FFA0BAD8FFA1BBD8FFA2BC D9FFA2BEDBFFA4BEDCFFA6BFDDFFA8BFDDFFA9C0DEFFA9C2E0FFAAC3E1FFABC3 E1FFACC4E2FFAEC4E3FFADC5E5FFADC6E6FFAFC6E6FFB1C8E7FFB0C7E7FFB1C8 E7FFB1C8E7FFB2C9E8FFB3C9E9FFB3C8E8FFB3C7E7FFB3C7E7FFB2C7E6FFB2C6 E7FFB2C6E7FFB2C5E7FFB2C4E6FFB1C3E4FFB0C3E4FFB0C2E3FFB0C1E2FFAFC0 E1FFAEC0E0FFADBFE0FFADBEE0FFADBCDFFFAEBCDEFFACBCDDFFAABBDBFFA9BA DBFFAAB9DCFFA9B8DBFFA9B7DAFFA9B6D9FFA8B6D9FFA6B6D8FFA7B5D8FFA5B5 D8FFA6B5D8FFA7B5D7FFA5B4D6FF9FAECEFF818DA8FF52596BFF22242BFF0708 0AFE000000FB000000E4000000AD0000005A0000001C00000003000000000000 0000000000000000000000000000000000070000002900000072000000BD0000 00EE000001FE010206FF060E1BFF0B1B33FF0C2444FF0C284AFF0E264EFF0D25 48FF0B2443FF0C2445FF122C53FF0E254CFF0F274AFF102B4AFF0E2A45FF1026 40FF29405FFF3D5779FF4B6689FF647B9DFF657B9FFF667DA0FF6780A3FF6882 A7FF6B84A9FF6B87ACFF6D89AEFF718CB1FF7790B7FF7993B9FF7A95BBFF7B97 BDFF7C97BFFF7C98C0FF809CC1FF829EC3FF839FC4FF86A1C5FF89A3C7FF8AA6 C8FF8CA7C9FF8EA8CBFF8FAACAFF90AACAFF91ABCBFF93ACCCFF94AECCFF95AF CDFF96AFCDFF97B0CDFF98B1CEFF99B3D1FF9AB3D1FF9CB4D2FF9EB5D3FF9FB6 D3FFA0B8D5FFA0B8D5FFA1B9D6FFA3BAD6FFA4BBD8FFA5BCD9FFA6BDDBFFA7BE DCFFA8BEDCFFAABFDDFFA9C0DFFFAAC0E0FFABC1DFFFACC2E0FFACC2E1FFADC2 E1FFADC3E2FFADC3E3FFAEC2E3FFAEC2E2FFAEC1E1FFAFC1E1FFADC2E0FFADC0 E1FFADC0E1FFAEC0E1FFAEBFE1FFADC0E0FFACBFDFFFACBEE0FFACBDE0FFABBD DFFFABBCDDFFAABCDEFFAABADDFFAAB9DCFFAAB9DCFFA9B9DBFFA8B9D9FFA7B8 D9FFA7B6D9FFA6B6D9FFA7B5D9FFA6B5D9FFA5B4D8FFA4B4D8FFA5B3D7FFA4B4 D6FFA3B3D6FFA4B3D6FFA4B3D5FF9FAFD0FF8794B1FF5C6579FF2B2E38FF0C0D 0FFE010101FC000000EA000000BA0000006A0000002500000005000000000000 00000000000000000000000000000000000B0000003300000081000000C80000 00F2000001FE010307FF07101FFF0C1D38FF0F294EFF12355EFF0E2851FF122C 51FF173154FF183254FF193359FF132C52FF11294BFF112947FF122946FF162C 46FF344A68FF516688FF607597FF637798FF66799CFF687B9EFF687DA0FF6880 A3FF6B82A5FF6B84A8FF6D86ABFF7088ADFF718BAFFF748DB0FF768FB2FF7891 B5FF7A93B7FF7B94B8FF7E97BAFF8099BDFF829BBFFF849DC1FF859FC2FF86A0 C2FF88A2C3FF8AA2C5FF8AA4C3FF8EA5C3FF8FA6C5FF90A7C5FF92A9C4FF93A9 C5FF94AAC7FF94ABC8FF96ACC8FF98AEC9FF98ADCAFF9AAFCCFF9CB1CEFF9DB1 CEFF9EB2D0FF9EB3D0FF9FB4D1FFA0B5D2FFA0B6D3FFA1B7D3FFA3B8D5FFA4B8 D6FFA5B9D7FFA6BAD8FFA6BBD9FFA7BBD9FFA8BCD9FFA9BDDAFFA9BDDCFFA9BD DCFFA9BDDCFFAABEDDFFAABDDCFFAABDDBFFAABCDBFFAABCDBFFA9BCDBFFAABB DCFFAABBDBFFAABBDBFFAABADBFFA9BBDAFFA8BADAFFA8B9DBFFA8BADCFFA7B9 DBFFA7B8DAFFA7B8D9FFA6B7D8FFA6B6D8FFA5B6D8FFA6B6D7FFA5B5D6FFA4B4 D7FFA4B4D6FFA4B4D6FFA4B3D7FFA4B3D7FFA3B3D7FFA2B2D6FFA3B2D6FFA2B2 D5FFA2B1D4FFA3B1D5FFA3B1D4FF9EAFD1FF8B9AB8FF666F86FF343843FF1012 15FF020203FD000000EF000000C60000007A0000002F00000008000000000000 00000000000000000000000000000000000F0000003D00000090000000D40000 00F8000001FF020409FF0A1323FF0C1C37FF0F284CFF183C67FF0B2C50FF243E 64FF394F75FF385074FF2D4D72FF2A486DFF203A5BFF172F4EFF1A3454FF2444 62FF3B5675FF556A89FF667896FF657695FF677899FF69799BFF697A9AFF687C 9BFF6B7FA0FF6C81A3FF6D83A5FF6F85A8FF7188ACFF7289ACFF748BAEFF768D B0FF788FB2FF7A91B3FF7A93B4FF7C95B7FF7E97BBFF809ABDFF809ABCFF829C BDFF859DBEFF869FBFFF889FC1FF8DA1BFFF8EA3BFFF8EA4BFFF90A4BFFF93A3 C0FF92A5C3FF92A6C4FF95A8C4FF98A8C3FF98A8C4FF98AAC6FF99ACC8FF9AAD C9FF9CAECAFF9CB0CDFF9EB1CEFF9FB1CEFF9FB2CEFF9FB2CEFFA1B3D0FFA3B4 D1FFA2B4D3FFA3B5D4FFA3B6D3FFA4B7D4FFA5B8D6FFA6B8D7FFA7B8D8FFA6B9 D7FFA6B9D7FFA8B9D6FFA7BAD6FFA8BAD7FFA7B9D7FFA5B8D6FFA6B8D7FFA7B8 D7FFA6B7D7FFA6B7D6FFA7B6D5FFA6B6D6FFA6B6D6FFA5B6D6FFA4B5D6FFA4B5 D6FFA4B5D6FFA4B4D4FFA3B3D4FFA2B2D4FFA2B2D3FFA3B3D2FFA2B1D2FFA1B1 D3FFA1B1D4FFA2B1D3FFA1B0D3FFA1B0D3FFA1B0D2FFA0B0D2FF9FB0D2FF9FAE D2FFA0ADD3FFA1AED3FFA0AFD3FF9EADD1FF8F9DBCFF6C778EFF393F4CFF1315 19FF030304FF000000F3000000D0000000870000003A0000000D000000000000 000000000000000000000000000000000013000000480000009B000000D90000 00F8000103FE02050BFF091221FF0D1C35FF102949FF183E64FF375170FF4B60 80FF516789FF506688FF556889FF556786FF4D617FFF475D7CFF4A6081FF566C 8AFF5C718EFF5F728FFF627390FF637392FF637693FF647895FF667A97FF687A 98FF6B7C9AFF6D7F9DFF6C81A0FF6C82A3FF6E85A6FF7185A6FF7487A9FF768A ABFF768DACFF788EAEFF7990B1FF7B92B3FF7E94B5FF8094B7FF7F95B7FF8297 B8FF8598B8FF889AB9FF8B9CBDFF8B9CBBFF8C9DBBFF8D9EBBFF8EA0BBFF90A0 BCFF8FA0BEFF91A2BEFF95A4BDFF95A5BFFF95A6C2FF96A7C4FF98A8C5FF9AAA C5FF99ABC6FF99ACC8FF9BACC9FF9DAECAFF9DAFCAFF9DB0CCFF9EB0CDFF9FB0 CEFF9FB2CEFF9FB2D0FFA1B2D0FFA1B4D1FFA2B5D2FFA3B5D2FFA4B5D3FFA3B5 D4FFA3B5D3FFA4B6D2FFA3B6D2FFA4B6D3FFA4B5D4FFA4B5D3FFA4B5D2FFA4B5 D3FFA3B4D3FFA3B3D3FFA3B4D2FFA3B3D3FFA2B3D2FFA3B3D2FFA2B2D2FFA0B1 D1FFA2B1D1FFA2B1D1FFA1B0D2FFA0AFD1FFA0AECFFFA0AFCFFF9FAED0FF9FAD CFFF9FAECFFF9FAECFFF9EADCFFF9EADCFFF9EADCFFF9DADCFFF9DABCFFF9DAB CEFF9CAACEFF9BAACFFF9BAACDFF9BA9CEFF909DBFFF717B95FF414757FF181A 20FF050607FD000000F5000000D7000000930000004300000011000000000000 00000000000000000000000000010000001700000052000000A7000000E10000 00FB000203FE04080FFF081323FF0E1B33FF122340FF153151FF384E6DFF5162 82FF586A8CFF56698BFF5C6B89FF5D6C89FF5C6C89FF5A6C8AFF5A6E8CFF5F71 8FFF61728FFF61728EFF62718DFF637391FF637590FF647793FF667997FF6979 98FF6C7B97FF6D7D99FF6D7F9CFF6E81A0FF6F82A2FF7284A4FF7486A6FF7588 A7FF768BA9FF788DACFF798DADFF7C8FAEFF7F91B0FF8091B2FF7E93B2FF8195 B2FF8496B3FF8597B5FF8799B6FF8A99B7FF8A9AB7FF899BB7FF8A9CB8FF8E9F BAFF8E9FBBFF8F9FBCFF93A1BBFF92A3BDFF93A3C0FF94A4C0FF96A5C0FF98A7 C2FF98A8C3FF99A9C6FF9AA9C7FF9AAAC6FF9BABC5FF9CADC8FF9DADCAFF9EAD CBFF9EAFCBFF9FB0CDFFA0B0CEFFA0B1CEFFA1B2CFFFA3B1CFFFA1B2D0FFA2B2 D1FFA3B2D1FFA3B3D1FFA2B2D0FFA3B3D0FFA2B2D0FFA2B2D0FFA3B2D0FFA2B2 D0FFA1B1D1FFA1B1D1FFA1B1D1FFA0B0CFFFA1B0D0FFA1B0D0FFA1B0CFFFA0AF CFFFA1AED1FFA0AECFFF9FADCEFF9FACCDFF9FADCEFF9FACCDFF9EACCCFF9EAB CCFF9EAACDFF9CAACDFF9CAACBFF9CA9CBFF9CA9CCFF9BA8CBFF9AA7CBFF9BA7 CBFF9AA7CBFF99A6CBFF99A6C9FF99A6CAFF909CBEFF757E9BFF474C5EFF1B1D 24FF050608FE000000F8000000DD0000009D0000004C00000016000000000000 00000000000000000000000000030000001C0000005A000000AF000000E50000 00FD010204FF040A12FF0C192BFF121F38FF15213DFF142646FF223859FF4958 7AFF5D698BFF586887FF5A6985FF5B6A86FF5D6C88FF5E6D8AFF5D6E8AFF5D6D 8AFF5F6F8BFF61708CFF62718DFF62738FFF64748FFF657691FF677794FF6A79 97FF6C7A96FF6C7B97FF6E7D9AFF707F9EFF7180A0FF7283A1FF7484A3FF7586 A4FF7588A6FF768AA8FF7A8BA9FF7D8CABFF7E8EACFF7F8FAEFF7D91AEFF8092 AFFF8393B0FF8395B1FF8496B2FF8896B4FF8798B5FF8799B5FF8999B5FF8C9C B7FF8D9DB9FF8E9DBAFF8F9EBAFF90A0BBFF91A0BEFF92A1BEFF94A3BEFF95A5 C0FF96A5C1FF97A6C3FF98A7C4FF98A7C5FF99A9C4FF9AABC6FF9BABC6FF9CAB C7FF9CACC9FF9DADCAFF9EADCBFF9EAECBFF9FAECBFFA0AFCCFF9EAFCCFFA0B0 CEFFA1B0CFFFA0B0CEFFA1B0CDFFA1B0CEFFA1B0CEFFA0B0CEFFA0AFCEFFA0AF CDFF9FAFCEFF9FAFCEFF9FAECEFF9EAECDFFA0AECDFF9FAECDFF9EADCCFF9FAC CDFF9EABCEFF9EABCCFF9DAACAFF9DAACAFF9DAACBFF9DAACAFF9CA9C9FF9CA8 C9FF9BA7C9FF9AA7CBFF9AA6C9FF9AA6C8FF99A5C9FF99A5C8FF98A4C7FF98A4 C8FF98A4C8FF97A3C8FF97A3C6FF98A3C7FF909BBEFF77809EFF4D5265FF1F21 29FF07080AFF000000F9000000E0000000A5000000530000001A000000010000 00000000000000000000000000040000002000000061000000B4000000E70000 00FC010305FF050A13FF111E32FF15233EFF182442FF243152FF1F3456FF4755 76FF5F6987FF596783FF5A6884FF5A6983FF5B6A85FF5D6C86FF5D6C87FF5D6C 87FF5F6E89FF606F8BFF61708DFF61728CFF63728EFF65748FFF677691FF6A78 94FF697995FF6B7B98FF6D7D9AFF6F7E9CFF717F9EFF71819EFF7483A0FF7584 A2FF7486A3FF7487A4FF7989A6FF7B8AA8FF7B8BA9FF7B8DAAFF7C8EAAFF7E8F ACFF8091AEFF8293AFFF8394B1FF8593B2FF8595B4FF8697B4FF8998B3FF8998 B5FF8B99B7FF8D9BB7FF8D9DB8FF8E9DB9FF8F9DBCFF919EBCFF92A0BCFF94A1 BEFF94A2BEFF95A3BFFF96A4C2FF97A6C4FF98A6C4FF98A8C5FF98A8C4FF99A8 C4FF9AAAC6FF9AA9C7FF9BAAC7FF9CABC8FF9DABC9FF9DACC9FF9CACC8FF9CAD CAFF9DADCBFF9DACCBFF9EADCAFF9EADCBFF9EAECCFF9EAECCFF9DACCBFF9EAC CBFF9DACCBFF9DACCBFF9CABCAFF9CABCAFF9DABCAFF9CABCAFF9BAAC9FF9BA9 C9FF9BA8C9FF9BA8C9FF9AA7C8FF9BA7C7FF9BA7C7FF99A6C6FF99A6C6FF99A4 C5FF97A3C3FF98A4C7FF98A3C7FF97A3C5FF96A3C4FF96A2C5FF96A2C5FF95A1 C4FF95A1C4FF94A0C4FF949FC2FF95A1C5FF8F9ABEFF7982A0FF50576AFF2325 2EFF0A0B0EFE010101F9000000E3000000AC0000005A0000001E000000020000 00000000000000000000000000050000002400000069000000BC000000EC0000 00FE020205FF070A14FF10192CFF0D1C36FF1C2C49FF4F5976FF596480FF5A65 80FF596580FF596581FF5A6682FF5B6982FF5A6A81FF5A6B82FF5C6C85FF5F6B 86FF5F6D88FF5F6E89FF5F6E89FF61718BFF63728CFF65738FFF677591FF6877 92FF687895FF6A7997FF6D7B99FF6E7D9AFF6E7E9AFF6F809AFF71819DFF7482 9FFF74839FFF7686A1FF7786A2FF7887A4FF7989A6FF798BA8FF7B8DA8FF7C8E AAFF7E8FACFF7F90ACFF8192AFFF8393B1FF8393B2FF8494B2FF8796B3FF8896 B3FF8996B4FF8A98B5FF8B9AB6FF8C9BB6FF8F9CB9FF8F9DB9FF909DB9FF919E BBFF92A0BBFF93A1BDFF94A2BFFF95A3BFFF96A3C0FF96A4C2FF97A5C3FF98A6 C3FF98A7C3FF99A7C4FF9AA9C5FF9BA9C7FF9BA8C7FF9BA9C7FF9BAAC8FF9AAA C7FF9AAAC7FF9BABC7FF9BAAC9FF9BAAC9FF9BA9C9FF9BA9C9FF9CAAC9FF9CAA C9FF9BA9C9FF9AA9C8FF9AA8C7FF9AA8C7FF9AA8C7FF9AA8C7FF9AA8C7FF99A7 C8FF99A6C6FF99A5C6FF99A5C6FF98A4C5FF97A4C4FF96A3C3FF96A2C3FF96A2 C3FF95A1C2FF94A0C3FF94A0C3FF94A0C3FF94A0C2FF949FC3FF94A0C2FF939F C0FF929EBFFF929EBFFF929EBFFF929EC1FF8D99BCFF7983A1FF51576BFF2327 2FFF090A0DFF000000FB000000E8000000B20000005E00000020000000020000 0000000000000000000000000006000000270000006D000000BE000000EB0000 00FC010104FF050710FF0E1829FF1C2D44FF334460FF515E7BFF5A657FFF5A66 7EFF58667EFF586581FF5B6681FF5B6780FF5A6880FF5A6982FF5C6A85FF5F6B 87FF5E6C87FF5D6D88FF5E6E88FF62708AFF63728CFF64738DFF64748EFF6575 90FF697795FF697795FF6A7895FF6C7B96FF6C7D97FF6E7E9AFF707F9AFF7380 9BFF74829DFF75849EFF7584A1FF7685A2FF7887A4FF7889A7FF7A8AA7FF798B A6FF7B8BA6FF7F8DA9FF7F90AAFF8091AEFF8091B0FF8092B1FF8494B1FF8594 B0FF8795B2FF8896B4FF8998B4FF8999B3FF8B99B5FF8B9AB7FF8C9BB9FF8E9C BAFF909DBBFF909EBCFF919FBDFF92A0BDFF92A2BCFF92A2BEFF94A3C0FF95A3 C1FF96A3C1FF96A4C1FF97A5C3FF98A5C4FF98A5C4FF99A7C6FF98A7C7FF98A7 C6FF98A7C5FF9AA8C6FF99A8C7FF98A7C7FF99A7C7FF99A7C6FF99A6C6FF99A7 C7FF98A8C6FF98A7C6FF99A6C5FF98A7C5FF98A5C6FF98A4C5FF98A4C5FF97A5 C5FF97A4C5FF97A3C4FF96A2C3FF95A2C2FF95A2C2FF94A0C0FF939FBFFF939F BFFF939FC0FF929EBFFF919EC0FF929DC0FF929DC0FF919DBFFF919DBEFF909C BDFF8F9CBCFF909CBBFF919CBCFF909ABBFF8A96B5FF77839EFF535A6EFF2629 32FF0C0D10FF020102FA000000E6000000B40000006200000022000000030000 00000000000000000000000000060000002800000070000000C1000000ED0000 00FD020305FF0D1019FF212C3CFF39485EFF4C5B75FF54627CFF58647EFF5865 7EFF58667EFF596680FF5A6680FF5C6680FF5C6881FF5C6883FF5D6883FF5E6A 85FF5E6C85FF606D87FF616E88FF616E89FF64708CFF65728DFF65728DFF6574 8EFF687692FF687691FF697691FF6B7893FF6C7B95FF6E7C97FF6F7D98FF707F 99FF73819CFF74819DFF74839FFF7584A1FF7785A3FF7887A5FF7A89A6FF7A8A A5FF7B8AA7FF7D8CA9FF7E8DA9FF808FAAFF8090ACFF8191AEFF8392B0FF8493 B0FF8593B1FF8795B2FF8796B3FF8897B3FF8998B3FF8A99B5FF8C9AB7FF8D9B B7FF8D9CB7FF8E9DB9FF8F9DBBFF909EBCFF919FBBFF92A0BDFF92A1BEFF93A1 C0FF94A1C1FF94A2C1FF96A3C3FF96A3C3FF96A3C2FF96A6C3FF95A5C4FF95A5 C4FF96A5C3FF97A5C3FF97A5C5FF97A5C5FF98A5C5FF98A5C5FF97A4C4FF97A4 C4FF97A5C4FF97A4C4FF97A4C5FF97A4C4FF97A3C3FF97A3C3FF96A2C3FF95A2 C2FF95A2C3FF94A1C3FF94A1C0FF93A0BFFF94A0C1FF939FBFFF929EBEFF929E BFFF929EBFFF909DBCFF909DBDFF909CBEFF909BBEFF909CBDFF8F9ABCFF8E9A BBFF8E9ABAFF8E99B9FF8E99BAFF8E98BAFF8A95B4FF78829DFF525A6EFF2629 32FF0B0C0FFF010101FB000000E9000000B70000006500000024000000030000 00000000000000000000000000060000002A00000073000000C3000000EF0000 00FE040508FF181C24FF343D4FFF4C596FFF58667DFF57647DFF59647EFF5865 7FFF58667FFF596680FF5A6680FF5D6781FF5D6883FF5D6783FF5E6782FF5E6A 83FF5F6B83FF626C85FF656C88FF626D89FF64708BFF66708CFF66718CFF6673 8DFF68758FFF68768FFF697690FF6B7791FF6D7994FF6E7A95FF6E7B96FF6F7D 99FF72809BFF73809CFF73829DFF7583A0FF7684A2FF7785A3FF7987A4FF7B89 A5FF7C8AA8FF7C8BA9FF7D8BA8FF7F8EA9FF808FAAFF818FACFF8391AEFF8491 AFFF8492B0FF8593B1FF8795B1FF8896B2FF8997B2FF8B98B4FF8C99B6FF8D9A B6FF8C9BB5FF8D9BB7FF8E9CBAFF8F9DBCFF919DBCFF929EBCFF929FBEFF92A0 C0FF92A0C1FF93A1C0FF94A2C2FF95A2C2FF95A2C1FF94A4C2FF94A3C2FF94A3 C3FF95A4C3FF96A4C2FF96A4C4FF97A4C4FF97A4C3FF96A4C3FF97A4C3FF96A3 C2FF96A2C2FF96A2C3FF96A2C3FF96A2C2FF96A3C1FF96A3C1FF95A2C2FF94A0 C1FF94A0C1FF93A0C1FF93A0BFFF93A0BFFF929EBFFF929EBEFF919EBFFF929D BEFF919CBDFF909DBBFF8F9CBBFF8F9BBCFF8F9ABCFF919ABBFF8E98BBFF8D98 BAFF8D98B8FF8C97B7FF8B97B8FF8D98B9FF8A94B4FF78809DFF52596DFF2528 31FF0B0C0EFF000101FC000000E9000000B80000006500000024000000030000 00000000000000000000000000070000002B00000074000000C2000000ED0001 01FD07080CFF1D2029FF383E51FF4B566DFF53627AFF57637DFF5B637CFF5B64 7EFF5B6581FF5A6681FF5B6680FF5D6782FF5D6782FF5C6782FF5D6882FF5E6A 84FF5F6A82FF626A83FF656B85FF646D88FF647089FF666F89FF676F8AFF6672 8DFF67728EFF68748FFF697790FF6A7891FF6D7893FF6E7894FF6E7A95FF6E7C 98FF707E9BFF72819CFF73819CFF74819DFF75829FFF7582A0FF7784A1FF7987 A3FF7A88A5FF7B89A6FF7B8AA5FF7F8CA9FF7F8DABFF808EABFF8290ACFF8391 ADFF8391AFFF8592AFFF8694AEFF8796B0FF8795B1FF8896B4FF8A97B6FF8B98 B6FF8D9AB7FF8C9AB8FF8D9BB9FF8E9CBAFF8F9CBAFF8F9DBBFF909EBEFF919E BFFF919EBFFF91A0BFFF91A0C0FF92A0C0FF93A1C0FF93A2C1FF93A1C1FF94A2 C2FF95A3C3FF95A3C2FF94A3C3FF95A3C3FF95A3C2FF95A3C2FF96A3C2FF95A2 C2FF95A1C2FF95A1C1FF95A1C0FF95A1C1FF95A2C0FF94A1C0FF93A0C1FF93A0 C1FF939FC0FF929EBFFF929EBFFF929EBFFF919DBEFF909CBEFF909CBDFF909B BCFF909BBAFF8F9BBAFF8D99BAFF8D99B9FF8D99B9FF8F98B9FF8D97B9FF8D97 B7FF8C96B6FF8C96B6FF8B96B6FF8B97B6FF8691B2FF757D9CFF53576CFF2528 31FF0C0D10FF020202FB000000E6000000B50000006300000023000000030000 00000000000000000000000000070000002C00000076000000C6000000F00101 01FE080A0CFF1B1F28FF393E4FFF4D546CFF565F7AFF58607BFF59627BFF5A61 7CFF5A627EFF5B637FFF5D647EFF5C647FFF5A667FFF5A677FFF5C6881FF5D69 83FF5F6982FF626983FF636A85FF616B86FF636D86FF666E88FF666F8AFF6470 8BFF64718CFF66738EFF68748FFF697590FF6A7792FF6A7692FF6C7996FF6E7C 99FF6E7C99FF6F7E99FF71809BFF72819CFF73839DFF7584A0FF7685A0FF7887 A3FF7988A5FF7988A6FF7B8AA8FF7C8AA7FF7D8BA9FF7F8DAAFF8090AAFF8290 ACFF8291AEFF8392AFFF8492AFFF8493AFFF8594B1FF8694B3FF8895B4FF8996 B4FF8996B5FF8B98B7FF8C99B8FF8D9AB8FF8D9AB8FF8D9BBBFF8E9BBCFF8F9B BCFF8F9DBDFF909DBDFF909EBEFF8F9EBEFF8F9FBDFF929FBEFF929FC0FF909F C0FF909FC0FF939FC1FF939FC1FF929FC1FF939FC0FF939FC0FF929EBEFF94A0 C0FF93A0C0FF929FBFFF929FBFFF929EBFFF929FBFFF929FBFFF919EBEFF909D BEFF8F9CBCFF8F9CBCFF8F9BBBFF8E9BB9FF8F9BBAFF8E9ABAFF8E99B8FF8D99 B7FF8E99B7FF8F97B7FF8D96B6FF8B97B7FF8B97B7FF8B95B6FF8A95B5FF8A95 B4FF8A95B4FF8A93B2FF8B91B2FF8994B2FF848FAFFF727B98FF4E5467FF2225 2DFF090A0CFF000000FD000000E9000000B50000006200000022000000020000 00000000000000000000000000070000002C00000076000000C6000000F00101 02FE080A0CFF1B2029FF393E51FF4D566DFF54617AFF55627DFF57627DFF5962 7DFF5A627BFF5A6279FF5C647AFF5B647EFF5A657EFF5B667DFF5D667DFF5E67 81FF606881FF626982FF626984FF616B85FF616B85FF626D88FF64708AFF6670 8AFF65708CFF66728DFF66738FFF66758FFF687791FF6A7792FF6B7994FF6C7B 96FF6D7C97FF6E7D98FF6F7E99FF71809AFF73819CFF74839EFF74849EFF7585 A0FF7786A3FF7987A4FF7A89A6FF7A8AA6FF7C8BA7FF7D8CA9FF7D8DA9FF7F8F AAFF808FADFF8090AEFF8191AEFF8392AFFF8492AFFF8492B2FF8693B4FF8895 B4FF8894B4FF8996B4FF8A97B4FF8A97B5FF8B98B7FF8A99B8FF8B9ABAFF8D9A B9FF8D9AB8FF8E9BBAFF8E9CBBFF8E9CBBFF8E9DBBFF8F9CBCFF909CBDFF8F9D BDFF8F9DBDFF909DBDFF919EBEFF919EBEFF919EBEFF919DBEFF909DBDFF919D BDFF909DBDFF909DBCFF909DBCFF909DBDFF909CBEFF8F9CBDFF8E9CBBFF8E9B BBFF8E9BBCFF8D9ABBFF8D99BBFF8C99B9FF8C99B8FF8D99B8FF8D98B7FF8C98 B7FF8C98B7FF8D96B7FF8C96B6FF8B95B5FF8994B5FF8994B4FF8894B3FF8893 B3FF8893B2FF8792B1FF8991B1FF8893B1FF838EACFF717A95FF4C5365FF2224 2DFF0A0B0DFF010101FB000000E6000000B20000005F00000020000000020000 00000000000000000000000000070000002B00000074000000C4000000EF0101 02FE080A0CFF1B1F27FF383C4EFF4C546BFF546079FF55617CFF55617BFF5662 7BFF58637AFF5A6378FF5B6477FF5A647CFF5A657DFF5C667CFF5F667CFF5E67 7FFF5F677FFF616881FF626A83FF606A82FF626B86FF626D88FF636E89FF646F 89FF65708BFF65718DFF66728EFF66738EFF69758FFF6A7691FF6A7892FF6B79 92FF6C7A94FF6E7B96FF6E7D98FF6F7D98FF727E9AFF74829CFF73819CFF7483 9EFF7584A0FF7786A3FF7987A5FF7988A4FF7B8AA6FF7B8AA7FF7B8AA7FF7D8C A9FF7E8EABFF7F8EABFF7F8FABFF8290ACFF8290AEFF8391B0FF8492B2FF8593 B1FF8693B1FF8794B1FF8795B1FF8895B3FF8996B5FF8797B5FF8998B6FF8B98 B6FF8A97B4FF8B98B6FF8C99B8FF8D9AB9FF8D9BB9FF8C99B9FF8D99BAFF8E9A BAFF8E9BBAFF8E9BB9FF8E9BBAFF8F9CBAFF8F9CBAFF8E9BBAFF8E9ABAFF8D9B B9FF8D9BB8FF8D9AB8FF8D9AB9FF8D9ABAFF8D99BAFF8C99B8FF8B98B7FF8C98 B7FF8C98B8FF8C98B8FF8C97B7FF8C97B7FF8A97B5FF8A96B4FF8B96B5FF8A95 B5FF8A96B5FF8A94B4FF8A95B3FF8994B3FF8892B2FF8693B2FF8692B2FF8590 B1FF8490B0FF8591B0FF8690B0FF8690B0FF818BA9FF6E7791FF495061FF2022 2BFF090A0CFF010101FB000000E6000000B00000005D0000001F000000020000 00000000000000000000000000060000002900000070000000C1000000ED0101 01FD08090BFF1B1D25FF363A4BFF4B5169FF565E77FF59607BFF566078FF5663 79FF58647BFF5A6379FF5B6378FF5A647BFF5A647DFF5D667DFF5F677EFF5D67 80FF5E667FFF606881FF626B83FF606981FF646C87FF646D88FF636C87FF636D 88FF66708BFF65718BFF66718CFF69728DFF6B738FFF6B7590FF6A7690FF6C77 91FF6E7993FF6F7A95FF6E7B97FF6F7B97FF717C98FF73809BFF73809BFF7481 9CFF75839EFF7685A1FF7785A5FF7886A3FF7A88A4FF7A89A5FF7B8AA6FF7D8A A8FF7E8CA8FF7E8CA9FF7E8DA9FF808DA9FF818FACFF828FAEFF8290ADFF8291 ACFF8493AEFF8492AEFF8593AFFF8594B1FF8694B2FF8695B3FF8895B3FF8894 B3FF8895B1FF8995B2FF8996B4FF8A97B5FF8B98B6FF8B96B6FF8B96B7FF8B98 B7FF8C99B7FF8C99B6FF8C98B6FF8D99B6FF8D99B6FF8D99B6FF8D97B7FF8B98 B6FF8A98B5FF8B98B5FF8C96B7FF8A96B6FF8A96B5FF8A96B4FF8A96B4FF8B96 B5FF8995B5FF8A95B4FF8B94B3FF8B94B3FF8894B3FF8894B1FF8893B1FF8893 B1FF8893B1FF8891B1FF8892B0FF8791B1FF8691B1FF8592B0FF8590B0FF838E AEFF828EAEFF838FAFFF838EAEFF858DAEFF7F88A7FF6B748CFF454C5DFF1D20 27FF07080AFF000000FB000000E6000000AD000000590000001C000000010000 0000000000000000000000000005000000250000006C000000BD000000EC0101 01FE07080BFF1A1B24FF353B4AFF4B5369FF575F78FF5A6179FF58617BFF5962 7AFF5A627AFF5A617BFF5D637CFF5D647EFF5E657FFF5F6580FF5E6581FF5F67 83FF5F6982FF606982FF616883FF626A85FF646C88FF666C87FF666C87FF656E 89FF66708AFF67708BFF69718CFF6C738EFF6D738FFF6D7691FF6D7691FF6F77 92FF707995FF717A96FF717B97FF737C98FF747D99FF737D9AFF74809BFF7480 9BFF75819DFF7683A0FF7684A3FF7885A1FF7886A0FF7987A2FF7D88A4FF7E89 A5FF7D89A6FF7D8AA8FF7E8BA9FF808CA9FF7F8DAAFF7F8DA9FF808DA9FF808E A9FF8291ABFF8390ACFF8290ADFF8291ADFF8592B0FF8592B2FF8792B2FF8893 B1FF8794B0FF8894B1FF8894B1FF8894B1FF8995B1FF8A95B2FF8A96B3FF8B96 B4FF8B96B4FF8B96B3FF8B96B5FF8D96B5FF8C96B4FF8B96B4FF8C95B4FF8B96 B5FF8A96B5FF8B96B5FF8C96B6FF8995B5FF8B95B4FF8B95B4FF8A95B4FF8A95 B4FF8793B4FF8894B3FF8A94B2FF8993B2FF8793B2FF8792B1FF8791B0FF8790 B0FF8791B0FF888FB0FF878FAFFF858FB0FF858FAFFF8690ADFF858FADFF848E ADFF828DADFF818DADFF828CACFF848DAEFF7F86A5FF6A6F88FF434859FF1B1E 25FF07080AFE000001F9000000E0000000A50000005300000019000000000000 00000000000000000000000000040000002200000065000000B5000000E70101 01FC060709FF171820FF333845FF4A5165FF575E77FF5A6179FF5A607AFF5B62 7AFF5C6279FF5C6177FF5C637BFF5D637FFF5E637FFF5D637EFF5B657FFF5F65 81FF606780FF61687FFF626881FF636A86FF636985FF656985FF656B86FF646D 86FF666D88FF676E8AFF68708CFF69738EFF6B728EFF6B748FFF6D7690FF6E77 91FF6F7893FF707994FF707A94FF717B97FF737C9AFF727C9AFF727E9AFF727F 9AFF747F9BFF76809DFF79829FFF79839FFF77849EFF77859FFF7B86A2FF7C87 A3FF7B86A3FF7C88A5FF7E8BA7FF7E8AA5FF7E89A4FF7F89A5FF7F8AA6FF7F8B A7FF7F8DA8FF808EA9FF818FAAFF818FAAFF838FACFF838FACFF8490ADFF8591 AEFF8591AFFF8691AFFF8592AEFF8694AFFF8794B0FF8894B1FF8794B1FF8894 B1FF8993B1FF8994B0FF8A94B1FF8994B2FF8993B2FF8994B3FF8A94B3FF8A94 B4FF8994B3FF8994B2FF8A94B1FF8893B3FF8894B2FF8993B2FF8993B3FF8693 B2FF8592B2FF8693B2FF8792B2FF8791B1FF8591B1FF8691B0FF8690AFFF8590 AEFF868FAEFF868EADFF868DAFFF868EAFFF868DADFF858CAAFF838BAAFF848B ABFF838BABFF808AAAFF808BA9FF818AABFF7A81A0FF646981FF3D4151FF1718 1FFF050507FF000000F9000000DE0000009E0000004D00000016000000000000 00000000000000000000000000030000001D0000005D000000B1000000E60000 01FD050607FF14161BFF2F3340FF464C61FF535B74FF585F78FF5A5F79FF5A60 7AFF5B6079FF5C6177FF5C627AFF5C627DFF5C637EFF5C647EFF5C657EFF5E66 80FF5F667FFF60667EFF62677FFF626884FF626884FF636983FF646B83FF646C 85FF656D87FF666D88FF666F8AFF66718BFF67718CFF68728DFF69748EFF6B75 8EFF6C758FFF6D7791FF6E7792FF707894FF717996FF717A96FF707B97FF6F7D 97FF707D98FF727E99FF75809BFF76819BFF75819CFF76819DFF77829EFF7883 9FFF7A839FFF7A85A1FF7A87A2FF7B87A2FF7D86A2FF7E87A2FF7E88A4FF7E89 A5FF7E8AA6FF7E8BA7FF7E8CA7FF7E8CA8FF818CA9FF818EA9FF818EABFF828E ACFF848FACFF838EACFF828FADFF8291AEFF8391AEFF8491AEFF8491ADFF8592 AEFF8692AFFF8792B0FF8792AFFF8691AFFF8691B0FF8791B1FF8792B1FF8691 B0FF8791B0FF8791AFFF8691ADFF8791B0FF8591B0FF8691B0FF8790B0FF8690 B0FF858FAFFF858FAFFF868FAEFF868EAEFF848EAEFF848DAEFF848EADFF848E ACFF838CACFF838BABFF828BACFF838AABFF848AA8FF848AA8FF8289A8FF8089 A8FF8088A8FF8087A7FF8088A7FF7F87A8FF767E9CFF5E647BFF373B48FF1415 1BFF040405FF000000F7000000D9000000960000004400000011000000000000 00000000000000000000000000010000001800000054000000A8000000E20000 00FC040405FE111216FF2A2E3BFF42485CFF51596FFF565F76FF585E77FF585E 78FF595F78FF5B6079FF5B6078FF5B617AFF5B627AFF5B647BFF5C657DFF5D67 7DFF5C657EFF5E657EFF61667EFF606781FF5F6882FF606982FF616982FF626A 83FF636C85FF646D87FF656D88FF656E88FF646F88FF667089FF677189FF6872 8AFF6A738CFF69748EFF6C7591FF6D7690FF6E7690FF6F7792FF6F7894FF6E79 94FF6E7A95FF707B96FF717D98FF737E98FF747E99FF757E9AFF757F9BFF7680 9CFF78819DFF78829EFF76839EFF7884A0FF7A84A0FF7B85A1FF7C86A2FF7B87 A3FF7C88A4FF7C89A5FF7B89A6FF7C8AA7FF808BA7FF7E8CA7FF7E8DA9FF808D AAFF828DAAFF808CA9FF808DABFF808EACFF808EABFF818EABFF818FAAFF828F ACFF8490ADFF8590ADFF8390ADFF848FADFF858FADFF8590AEFF8490AFFF8390 ADFF848FAEFF848FADFF838FACFF858FADFF838FAEFF848FAEFF858EAEFF858E ACFF848DADFF848CACFF848CACFF848CABFF838BABFF828AACFF828BAAFF828B A9FF828AA9FF8088A9FF7F88A9FF7F88A7FF8088A5FF8188A6FF8188A7FF7E87 A6FF7D85A5FF7F85A6FF7F85A5FF7E84A5FF737997FF595E73FF31343FFF1012 16FF030304FE000000F4000000D30000008B0000003C0000000D000000000000 000000000000000000000000000100000013000000480000009B000000D90000 00F8030304FE0E0F12FF252935FF3E4456FF50586CFF556074FF565E74FF565D 75FF595E77FF5B6079FF586077FF596177FF5B6176FF5B6176FF5B6379FF5C64 78FF5C647CFF5E647DFF60657CFF5E677FFF5D6780FF5E6781FF5F6780FF5F68 80FF626A83FF636B86FF656C87FF656D86FF646D85FF656E86FF676E85FF686F 87FF68728BFF67738CFF6A738EFF6B748DFF6B748CFF6D7490FF6E7591FF6D76 92FF6E7793FF717994FF717A95FF717B96FF737C96FF747C97FF747E99FF767E 9AFF76809CFF76819DFF76819DFF77829EFF77839EFF78839FFF7884A0FF7886 A1FF7A87A2FF7B87A4FF7A88A5FF7B89A6FF7F8AA5FF7D89A6FF7D8BA7FF7E8B A8FF7F8AA9FF7F8BA8FF7E8BA7FF7F8BA8FF808CA9FF7F8DA9FF7F8DAAFF808C AAFF818DAAFF818EAAFF818EAAFF838EAAFF838EABFF818FACFF818FACFF828F ABFF818EACFF818EACFF828FAAFF838DAAFF828DABFF828DACFF828CABFF818C AAFF818DABFF818BAAFF808BA9FF808AA9FF808AAAFF808AA9FF8088A7FF8188 A6FF8288A7FF7F87A7FF7E86A7FF7D87A6FF7B87A5FF7D85A4FF8086A3FF7F85 A3FF7E83A4FF7D84A5FF7C84A4FF7C81A2FF6F7390FF52566AFF292C36FF0C0D 11FF020203FE000000F2000000CB0000007E000000330000000A000000000000 00000000000000000000000000000000000E0000003D00000090000000D40000 00F7010202FE0B0C0EFF22242EFF3C4053FF50556DFF565C71FF575C71FF565D 74FF585F77FF5A6077FF586076FF596075FF5B6174FF5C6174FF5D6175FF5B61 76FF5B6278FF5D6378FF5E6377FF5D6478FF5E667BFF5E667EFF5F677FFF6068 7DFF616880FF636983FF646A85FF636C85FF656C83FF646A84FF666C86FF676E 88FF676F88FF68718AFF69718AFF69718AFF68718BFF6A728EFF6D728FFF6F73 91FF6F7591FF6E7690FF707791FF707993FF717A95FF717B96FF717C97FF747C 97FF757E99FF757F9AFF74809BFF74829CFF77819CFF77819DFF76829EFF7683 9FFF77849FFF7985A2FF7A86A4FF7B87A3FF7C87A2FF7D87A2FF7D87A3FF7D88 A5FF7B88A6FF7C88A4FF7D88A4FF7E88A5FF7F89A7FF7E8AA8FF7C8BA8FF7D8A A7FF7F89A6FF7F8AA7FF808BA7FF808BA6FF7F8BA6FF7E8BA7FF7E8BA9FF808A A7FF808AA8FF7F8BA8FF7E8CA6FF7D89A6FF7F8AA9FF7F8AA9FF7E8AA8FF7F89 A7FF7F89A8FF7F89A8FF7D88A6FF7B87A4FF7C87A6FF8087A7FF8085A4FF8084 A2FF8085A2FF7E84A2FF7E83A3FF7B83A4FF7983A4FF7B83A4FF7E83A1FF7C82 9FFF7A819FFF7A82A1FF7A80A0FF797F9EFF6A6F8AFF4B4E62FF24252FFF0A0B 0EFF010102FD000000EC000000C1000000720000002A00000006000000000000 0000000000000000000000000000000000090000003200000081000000C70000 00F1010202FD09090BFF1C1E27FF363A4AFF4D5166FF565C70FF565D72FF575C 72FF585D73FF585E74FF595F73FF5A5F74FF5A5F74FF5B5F75FF5D6077FF5D61 77FF5B6277FF5B6278FF5D6279FF5E6279FF5D6378FF5E647BFF5F667DFF5F67 7BFF60667DFF626781FF636883FF636984FF636A82FF646A82FF646B83FF656D 85FF666E86FF656F86FF677088FF687088FF697088FF69718AFF6B718BFF6C71 8CFF6D728DFF6D748FFF6E7691FF6D7792FF6E7893FF707893FF717994FF727A 93FF737B95FF737C97FF737C99FF727E99FF747E99FF757F9AFF767F9BFF7780 9CFF76819EFF76829FFF77839FFF77849EFF78849EFF7A859FFF7B84A0FF7A84 A2FF7A85A3FF7C86A3FF7C86A2FF7C86A4FF7D86A5FF7B86A4FF7D88A5FF7D89 A5FF7D88A5FF7E88A5FF7F88A5FF7F89A5FF7F88A6FF7F88A7FF7E8AA8FF7F88 A7FF7F88A5FF7E88A5FF7E88A6FF7C87A5FF7F87A7FF7E87A6FF7D87A5FF7E86 A6FF7E87A5FF7D87A4FF7C87A3FF7C85A3FF7C84A4FF7E85A3FF7E84A1FF7D83 A0FF7B84A1FF7A83A3FF7982A2FF7982A1FF7982A1FF7A82A2FF7C809EFF7B80 9EFF7A809EFF79819EFF7B809EFF767C98FF63687FFF424555FF1C1E25FF0708 0AFF000001FB000000E6000000B4000000620000002100000004000000000000 0000000000000000000000000000000000060000002800000071000000BC0000 00ED010101FE060608FF17191FFF313440FF484D5EFF54596DFF565C72FF575B 72FF585B72FF585C73FF5A5E72FF5A5D73FF5A5D73FF5A5E74FF5B6075FF5B60 75FF5A6278FF5A6278FF5C6177FF5E6379FF5E6279FF5F6379FF60647AFF6066 7AFF60667CFF62667DFF63667FFF626781FF616882FF636981FF636B82FF646C 83FF656C83FF646D83FF666E85FF676E85FF686E86FF687087FF687089FF6870 8AFF6A718BFF6D738DFF6B738EFF6C7490FF6D7590FF6D758FFF6F758FFF7178 91FF717993FF717994FF727A96FF727B96FF737B96FF747C97FF757D98FF777E 9AFF767E9CFF767F9BFF76809CFF76819CFF77829CFF78829DFF79829EFF7982 9EFF79839FFF7B84A1FF7B84A1FF7A84A2FF7A85A2FF7A85A1FF7D85A1FF7D85 A2FF7C85A2FF7D86A2FF7D86A3FF7D86A3FF7D86A4FF7D86A4FF7A86A4FF7C85 A4FF7D86A3FF7D86A3FF7E85A4FF7C85A3FF7D85A3FF7D85A2FF7D84A2FF7D83 A2FF7C84A1FF7B84A0FF7B83A1FF7C83A1FF7A82A1FF7B82A1FF7B829FFF7A82 9EFF7A82A0FF7882A2FF7780A0FF78809EFF7A809EFF78809FFF797E9CFF797D 9CFF787E9CFF787E9CFF777F9CFF717793FF5B5F75FF383B49FF16171DFF0505 07FE000000FA000000E0000000A7000000540000001800000002000000000000 0000000000000000000000000000000000040000001E00000061000000AF0000 00E7000000FD040405FF131317FF2B2C37FF424758FF515669FF565A70FF575A 74FF585A74FF5A5B72FF595C72FF5B5D72FF5A5E72FF595E72FF595F73FF5860 73FF586178FF5A6077FF5C5F73FF5D6275FF606379FF606279FF606279FF6165 7AFF61657BFF62657AFF62657CFF62667EFF616880FF62687FFF636980FF646A 82FF656A81FF656B81FF656C81FF666B82FF676B83FF686E85FF686E88FF666F 89FF687089FF6C7189FF6A728AFF6C728CFF6C728CFF6B738CFF6D738DFF7076 91FF6F7793FF707893FF717893FF737995FF717A95FF727A96FF747B97FF757C 97FF757C98FF757D99FF767E9AFF777F9BFF767F9BFF777F9CFF787F9BFF797F 9BFF79809CFF78819EFF79819FFF78829FFF78839FFF79839FFF7B829EFF7B81 9EFF7C829EFF7D839FFF7B84A0FF7A83A1FF7A83A0FF7A829FFF7881A0FF7A82 A1FF7A82A1FF7B83A0FF7C83A0FF7B83A0FF7A829EFF7A829EFF7B819EFF7B80 9EFF7A819EFF7A809EFF7A809FFF7A809FFF79819DFF78809FFF78809DFF797F 9CFF7B7F9DFF7980A0FF777D9DFF787C9CFF797D9CFF767E9CFF777D9BFF777C 9AFF767B99FF767B99FF747C99FF6C718DFF52556AFF30313DFF111115FF0404 05FE000000F7000000D700000097000000450000001000000000000000000000 000000000000000000000000000000000002000000140000004F0000009C0000 00D9000000F6030304FF0E0E10FF23242DFF3B3F4FFF4E5367FF555971FF565A 73FF585A72FF5A5B71FF575A70FF595C70FF595E73FF585E74FF5A5D73FF5B5F 73FF5A5E74FF5A5E75FF5C5F73FF5B6070FF5F6274FF606178FF606179FF6063 7AFF5F6379FF606479FF60657BFF61657DFF62667EFF62677DFF62677EFF6467 80FF656881FF656980FF646A7FFF656A7FFF676B80FF686B82FF6A6C84FF696D 86FF696D86FF6A6D85FF6B718AFF6B6F88FF6C718AFF6D738DFF6D7490FF6E76 92FF6E7794FF707795FF727895FF747794FF6F7995FF707A96FF727A96FF7379 96FF737A96FF747B97FF757B97FF747C98FF727C98FF747C9AFF767C99FF767C 98FF777D99FF767D9AFF777D9BFF777E9BFF777F9BFF777F9BFF777F9BFF7980 9CFF7A809DFF7B7F9CFF7B7F9EFF797F9FFF797F9DFF797F9BFF7A809CFF7A80 9DFF797E9BFF787E9BFF787F9CFF797E9CFF797F9DFF777F9BFF757F9AFF777F 9BFF7A7F9CFF797E9CFF787E9DFF777E9EFF7A7F9CFF777E9AFF777E9AFF787D 9BFF797C9AFF787E9BFF767D9BFF767B9AFF757B98FF747B98FF767C9AFF777B 99FF767A97FF737996FF727793FF666B85FF494C5FFF272632FF0B0B0EFF0202 03FE000000F1000000C800000083000000350000000B00000000000000000000 0000000000000000000000000000000000010000000D0000003D000000890000 00CD000000F5010101FE09090AFF1C1D24FF353747FF4A4D63FF53566DFF565A 70FF585A70FF585A6EFF575A70FF585B6FFF595C71FF5A5B73FF5B5B73FF5D5D 73FF5C5D73FF5B5D72FF5B5D72FF5D5F73FF5D5F73FF5E5F75FF5F6175FF5F61 75FF5F6075FF606277FF616378FF626378FF61637AFF61657AFF61657AFF6265 7BFF64687EFF62697EFF64697FFF666A81FF666A83FF666A82FF666A84FF676B 83FF686B84FF6A6A86FF696D87FF676F88FF696F86FF6B6F87FF6C728CFF6B73 8FFF6C7693FF6D7694FF6F7592FF717693FF6F7591FF707692FF707893FF7078 94FF717A97FF737B98FF737B98FF727C98FF737C9AFF727997FF737A96FF747C 97FF757C98FF767A97FF767B97FF767C98FF767C98FF777B98FF777B98FF787D 9AFF787D9AFF777C9AFF797C9BFF777C9AFF777C9AFF787D99FF797D9AFF787D 9AFF777D99FF777D9AFF777C9BFF787C9AFF787C98FF767C97FF757C98FF757E 99FF777E9AFF757D99FF757C98FF757B98FF777C99FF767B97FF757C98FF757B 9AFF777A9AFF757B99FF757A99FF757A98FF747A97FF737896FF737997FF7578 96FF767895FF757894FF707591FF5F627BFF404252FF1F1F27FF08080BFF0202 02FD000000ED000000BC00000072000000280000000600000000000000000000 000000000000000000000000000000000000000000070000002C000000720000 00BC000000ED010100FB060607FF15151AFF2D2E39FF46475AFF52536AFF5658 6EFF56586EFF57586EFF58596EFF585A6EFF595A6EFF5B5A6FFF5B5A70FF5C5C 71FF5B5C70FF5B5C70FF5B5D71FF5B5D72FF5C5D72FF5E5E74FF5F5F74FF5F60 74FF5E5F74FF5F6174FF606174FF606075FF616278FF606378FF606378FF6164 79FF64667BFF63677DFF656881FF666882FF656982FF676B84FF666B86FF666C 87FF686C88FF6A6D8AFF696E88FF6A708BFF696F89FF696E87FF6A6E89FF6A6F 8BFF6B718DFF6C748FFF6E7693FF707A98FF6F7895FF6E7896FF6E7995FF6E78 94FF6F7996FF727C9CFF7380A0FF7381A3FF7581A4FF757FA0FF747D9EFF737C 9DFF757C9DFF767C9AFF757B97FF737B96FF737B96FF757A96FF747996FF7679 96FF787A96FF787A96FF767B98FF757B98FF767A97FF777A97FF767A97FF767A 97FF767B98FF757B98FF757A97FF787B98FF787997FF767996FF747A97FF747B 97FF757B97FF747A96FF757A96FF767A96FF757996FF747A97FF747A97FF7378 97FF737797FF757795FF747796FF737796FF737895FF727794FF727795FF7277 94FF737694FF727591FF6C6F8BFF56596FFF353644FF16171CFF050507FF0101 01FA000000E1000000A80000005C0000001B0000000300000000000000000000 000000000000000000000000000000000000000000030000001D0000005C0000 00A6000000E3000000FA030304FF0F0F12FF24242DFF3F3F4FFF504F65FF5556 6CFF56576EFF58576EFF58596DFF59586DFF59586DFF5A596DFF5B596DFF5A5A 70FF5A5B6FFF5A5B6EFF5B5D6FFF5B5C70FF5B5D70FF5C5D72FF5E5E73FF5E5F 73FF5D5F73FF5E5F73FF5F5F73FF5F6075FF606177FF606177FF606278FF6163 78FF636479FF64657AFF65657DFF64657EFF64667FFF666981FF666B84FF656B 85FF656C87FF686E89FF686E87FF6A6E89FF696E88FF686D86FF686D86FF6A6D 88FF6B6E88FF6C708AFF6D748FFF6E7996FF6E7A9AFF6D7A9AFF6D7997FF6C76 92FF6D7593FF717B9AFF727FA1FF7281A4FF7482A5FF7682A6FF7580A5FF737F A4FF747FA3FF767FA1FF757E9FFF737E9EFF727F9DFF727E9DFF737D9DFF737C 9BFF757B9BFF777B9BFF747C9AFF747A97FF757895FF757894FF737895FF7478 95FF767895FF767894FF747893FF757995FF757895FF757895FF747995FF7379 95FF737895FF737895FF747894FF767794FF737794FF717795FF727794FF7376 94FF717594FF747592FF737593FF717593FF717592FF717693FF707693FF7076 92FF707592FF6E7290FF656983FF4B4E61FF2A2B36FF0F0F13FF030304FE0000 00F7000000D50000009400000047000000110000000100000000000000000000 0000000000000000000000000000000000000000000100000011000000450000 008F000000D5000000F7010102FF09090CFF1B1C23FF353644FF4B4B5CFF5354 69FF56566EFF58576DFF58586CFF59566CFF59576DFF58586DFF5A596DFF595A 70FF595A6FFF5A5A6DFF5B5B6DFF5C5C6FFF595C6EFF5B5C6FFF5D5C70FF5C5E 70FF5D5E72FF5D5D73FF5E5E74FF5F6076FF5F5F75FF606077FF606077FF6161 77FF626278FF636378FF626376FF626378FF62647AFF646579FF65677DFF6367 7DFF63687FFF656B82FF666B82FF676A81FF686A81FF686B82FF676C84FF6A6C 86FF6C6C86FF6C6C85FF6A6E87FF6A718CFF6B7898FF6C7999FF6C7593FF6B72 8DFF6C718DFF6E7592FF6E7795FF6F7998FF707B9AFF727FA1FF7280A4FF7280 A4FF727FA3FF7380A4FF7482A7FF7483A8FF7383A8FF7283A8FF7384A7FF7182 A6FF7180A6FF7381A5FF727FA0FF737B9AFF747896FF737795FF717693FF7176 93FF747794FF757692FF747691FF717793FF707793FF727693FF737693FF7176 93FF727794FF717693FF717592FF727592FF707692FF6F7491FF707491FF7175 92FF717591FF717491FF707390FF6F738FFF6F748FFF727391FF6F7390FF6E73 8FFF6E7390FF6A6F8DFF5B6079FF3F4151FF202029FF09090CFF010102FD0000 00F3000000C80000008100000036000000090000000000000000000000000000 0000000000000000000000000000000000000000000000000007000000300000 0076000000C1000000EC010101FB050506FF131318FF2C2B37FF444354FF504F 63FF545469FF56546AFF56566AFF56556AFF56556AFF57576BFF58596CFF5758 6BFF57586AFF58586BFF5A586CFF5B596DFF58596DFF595A6EFF5C5C70FF5D5D 71FF5C5D70FF5C5D71FF5B5D71FF5C5D71FF5F5E71FF5E6071FF5E6071FF5E5F 72FF5F5F74FF616175FF616177FF616177FF626376FF636478FF62657AFF6365 79FF64657AFF64667CFF63677BFF64677AFF66687DFF686980FF66687DFF6869 7FFF686982FF686A84FF676C85FF676B82FF696F86FF69718AFF696F8AFF696D 88FF6B708CFF6B7089FF6C6F88FF6D6F8AFF6E718EFF6C7490FF6D7795FF6E79 99FF6E7A99FF6D7A98FF6E7D9DFF707EA0FF7280A3FF7481A8FF7280A5FF7180 A7FF7281A8FF7382A7FF7081A7FF7280A5FF737EA2FF727B9CFF707996FF6F78 96FF717898FF717796FF6F7591FF6D748FFF6E7491FF6F7490FF6F738FFF6F74 90FF727492FF70738FFF6E718FFF6C718FFF6D738CFF6F7290FF6E718FFF6D72 8EFF6C738FFF6C728DFF6D718CFF6E718DFF6E718DFF6E708CFF6E6E8CFF6D70 8DFF6B708CFF656883FF515369FF31323FFF15151BFF040506FF000001F90000 00E7000000B00000006600000024000000050000000000000000000000000000 00000000000000000000000000000000000000000000000000020000001F0000 005C000000A9000000E4000000FA030303FF0D0D11FF232129FF3D3A47FF4E4C 5CFF555467FF555369FF545567FF535466FF545567FF565668FF575667FF5657 67FF565568FF58566BFF59596EFF59596DFF58586CFF59586BFF5A596DFF5B5B 70FF5B5A6FFF5B5B6EFF5B5C6EFF5B5D6FFF5D5D6EFF5D5E6EFF5E5F6DFF5E5F 6EFF5D5F70FF5E5E71FF5F5F73FF5F6074FF5E6174FF5F6376FF616476FF6262 73FF626274FF626478FF616479FF63647AFF62657BFF63667BFF67677BFF6767 7CFF67687EFF67697FFF66687FFF686980FF666D82FF656B83FF676A83FF696C 85FF696B84FF696C85FF696D85FF6B6D85FF6C6D87FF6A6F89FF6A718BFF6B71 8CFF6A6F8BFF69708BFF6A718DFF6C738FFF6D7693FF6E7897FF6F7B9BFF6F7C A0FF707CA0FF707C9EFF6E7B9FFF6E7B9EFF6F7C9EFF707C9EFF707B9DFF717C 9DFF717B9DFF707B9DFF707B9BFF6F7794FF6C718EFF6D708DFF6E728EFF6D72 8EFF6D718CFF6E728BFF6C708AFF6A6F89FF6C718AFF6E718EFF6C708DFF6B6F 8BFF6A6F8AFF6A6E88FF696E88FF6A6E88FF6C6E89FF6C6E89FF6D6C8AFF6C6D 8AFF686C87FF5D6279FF454759FF252530FF0E0E12FF020303FF000000F70000 00DB000000990000004E00000016000000010000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000110000 00430000008E000000D4000000F4010101FE08080AFF19181DFF33313AFF4846 53FF525162FF535367FF525367FF535265FF545465FF555464FF565364FF5555 67FF575569FF58556AFF57566BFF57586CFF58576BFF585769FF58586AFF5A58 6CFF5A576DFF5B596DFF5B5B6EFF5C5B6FFF5B5B6DFF5C5B6DFF5C5D6CFF5C5E 6CFF5B5E6DFF5D5E6FFF5E6070FF5D6070FF5C5F71FF5E6174FF5F6173FF6061 71FF616273FF616276FF606274FF636379FF61647AFF616579FF66667AFF6564 79FF65667BFF66677CFF66667CFF67677DFF66697FFF656880FF666880FF686A 7FFF67687FFF676A81FF676B82FF686C82FF696C83FF686C84FF686C85FF696D 86FF696D87FF686C86FF696D87FF6B6E88FF6C6F89FF6C708BFF6C728FFF6D74 92FF6D7493FF6B7493FF6B7695FF6C7694FF6C7695FF6D7795FF6E7896FF6E78 96FF6E7797FF6E7797FF6F7796FF6E7592FF6C718EFF6B708CFF6B708BFF6C6F 8AFF696E87FF6A6E88FF6A6E88FF6A6D87FF6C6E88FF6C6E8AFF6B6D89FF6A6D 88FF696D88FF696D87FF686D86FF696D85FF6A6C86FF696B86FF696C87FF6A6B 87FF65667FFF54586CFF373947FF191A20FF07080AFF010101FC000000EF0000 00C60000007D000000360000000A000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000070000 002C00000070000000BD000000EA000000FC040405FF101013FF28272FFF3E3D 49FF4C4B5CFF515265FF535266FF555165FF555264FF555262FF555263FF5553 68FF575469FF575468FF575468FF575669FF585568FF575668FF575769FF5A57 6AFF59566CFF5A596DFF5B5A6EFF5B5A6EFF5A5A6DFF5B5A6DFF5B5C6DFF5A5D 6DFF5A5D6DFF5C5E6EFF5D5F6FFF5C5E6EFF5C5E70FF5F6074FF5E5F73FF5F61 72FF606273FF606275FF606272FF626276FF626277FF626377FF636478FF6263 77FF636379FF64647AFF65657BFF64657AFF65667CFF66667DFF66667DFF6667 7BFF67687CFF66687CFF65697EFF666A80FF666B80FF676A81FF676A82FF686C 85FF696D86FF686C83FF696D85FF6A6D85FF6B6C86FF6B6B87FF6B6A87FF6A6C 87FF6A6E89FF696F8BFF6A708CFF6B708CFF6A6F8BFF6A6F8AFF6C718AFF6970 89FF69718BFF6A718CFF6D708AFF6C708BFF6C718DFF6A708CFF696F8AFF6A6E 89FF676D87FF676C87FF696C87FF6A6C87FF6A6C87FF6A6A86FF6A6A85FF696B 85FF686C86FF696C86FF696C84FF696B84FF686B84FF676A84FF676C86FF676A 83FF5F6077FF494B5CFF292A35FF101014FF030304FE000000F8000000E30000 00AB0000005F0000002100000002000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000020000 001A00000051000000A1000000DC000000F9020203FF0A0A0CFF1C1D24FF3333 40FF454557FF505062FF555263FF575064FF575164FF565263FF555263FF5652 69FF555267FF575366FF595467FF575568FF585464FF575566FF56576AFF5858 6BFF5A586BFF5A596CFF59596DFF59596DFF5A5A6CFF5B5C6CFF5A5B6DFF5A5B 6DFF5B5C6CFF5A5B6DFF5B5C6DFF5C5D70FF5E5D73FF605F75FF5F5E73FF5E5E 72FF5E6072FF5E6172FF5F6174FF5F6073FF616073FF616073FF606175FF6162 76FF616276FF626378FF63647AFF636379FF64647AFF64647AFF64647AFF6565 7AFF66677BFF64667BFF64667DFF65677FFF65687FFF676980FF676981FF6768 81FF676880FF686A7FFF676B7FFF686A81FF696A82FF696A85FF6A6A84FF686A 83FF686B85FF6A6C87FF696A86FF686A84FF686A84FF696B84FF6C6B83FF666B 84FF646C84FF676C83FF6B6C84FF696D86FF696E89FF696F8BFF686F8CFF676E 8AFF676D8AFF696E8AFF696D88FF686B86FF696C89FF686985FF696984FF696A 84FF676A84FF686A83FF6A6A83FF696982FF676882FF666A84FF676A85FF6367 81FF55576DFF3B3B49FF1C1D24FF0A0A0DFF010103FE000000F4000000D40000 008F000000440000001200000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000D000000360000007F000000C4000000ED010102FC050506FF131217FF2927 32FF3E3D4CFF4B4C5EFF524F62FF545065FF555164FF545263FF535366FF5351 65FF555264FF565264FF555264FF565366FF585467FF575568FF565568FF5656 68FF565567FF56556BFF57556CFF59556AFF5A566AFF5A596BFF5A586BFF5A58 6BFF5A5A6BFF5D5A70FF5D5B6FFF5C5C6FFF5C5C70FF5C5C70FF5F5C6FFF5E5E 70FF5C5E71FF5C5E71FF5D5E73FF5E5F72FF5F5F72FF605F74FF5F5F75FF5E61 77FF5E6277FF5F6277FF616178FF616179FF616177FF626377FF636478FF6364 7AFF63647AFF64667BFF64667BFF64657BFF64647DFF66677DFF66677DFF6666 7DFF66667DFF66677EFF67687FFF67677FFF67677FFF676782FF676883FF6868 81FF666980FF656981FF676882FF686982FF676982FF666881FF676882FF6769 84FF676A81FF686A81FF686A83FF676B86FF666C86FF676B87FF696B8AFF6A6C 8AFF686B89FF686B88FF696A87FF696986FF696A87FF686984FF686984FF6769 84FF666983FF686A80FF686980FF676880FF656781FF646782FF656682FF5C5E 77FF47495CFF2B2C37FF111116FF050505FF000000FB000000E6000000B80000 006C0000002B0000000700000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0005000000200000005D000000A9000000E0000000F9020202FE0B0A0DFF1E1B 22FF33313CFF454353FF4E4B5EFF524E61FF524E61FF524F61FF525064FF5450 62FF555062FF535061FF515161FF545265FF555165FF555367FF555366FF5452 62FF545465FF575368FF58556AFF575769FF585668FF58576AFF57576AFF5757 69FF58596AFF59596DFF59586CFF59596BFF5B5A6BFF5C5A6BFF5B5B6BFF5B5C 6DFF5A5C6DFF5A5C6CFF5B5D70FF5B5D72FF5C5D71FF5D5D71FF5D5E72FF5D5E 73FF5D5F71FF5D5F71FF5D5F72FF5E6075FF5E5F74FF5F6074FF616276FF6262 79FF616277FF616278FF626378FF626478FF626378FF636478FF646479FF6465 79FF636479FF63657BFF64647DFF65647CFF65647AFF64657DFF66677FFF6467 7DFF62677CFF62667BFF64677CFF66687EFF65677CFF64657CFF64647EFF6466 7DFF65677DFF65667EFF65667FFF64687EFF62697FFF636882FF666984FF6769 84FF676785FF656884FF656A85FF666A85FF676882FF656983FF656981FF6468 80FF63677FFF62677CFF62667DFF62667FFF626780FF626680FF5F6178FF5153 67FF393948FF1C1D24FF0A0A0CFF020203FE000000F5000000D6000000990000 004B000000170000000100000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0001000000100000003E00000089000000CA000000F1010101FB050506FF1211 14FF26242BFF3A3944FF484755FF4F4C5CFF504D5EFF4F4E5FFF514F60FF524F 5EFF524F5FFF504F60FF504F60FF515162FF514F62FF535164FF545264FF5552 62FF535262FF565264FF565466FF555666FF565565FF555568FF555568FF5556 68FF565769FF56576AFF56576BFF57576AFF595869FF5B5868FF585969FF585A 6AFF5A5A69FF5A5B69FF5A5B6EFF5A5B71FF5A5B6FFF5B5C6DFF5C5D6FFF5C5C 6EFF5C5D6DFF5C5D6CFF5C5D6DFF5C5E6FFF5C5E70FF5D5E70FF5F5F73FF6060 76FF5F6074FF5F6074FF606174FF5F6274FF5E6274FF606073FF616274FF6163 75FF606275FF606377FF626379FF636278FF636277FF62647AFF63647AFF6165 7BFF606579FF606477FF616478FF636579FF646479FF63637AFF62637BFF6264 79FF636579FF63647AFF63637BFF62657AFF60657AFF61657BFF62667CFF6366 7CFF63657EFF62667FFF62677FFF62677FFF63657CFF63667FFF62677EFF6167 7DFF60657EFF5E657CFF5F647CFF5F647CFF5F647DFF60627BFF585A6EFF4445 54FF292A33FF101014FF050505FF010101FA000000E8000000BC000000750000 002F0000000A0000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000060000002500000064000000AB000000E0000000F7010102FE0A08 0BFF19181DFF2D2D35FF41414AFF4C4A57FF4E4D5DFF4D4E5EFF504D5CFF4F4D 5BFF4F4F5CFF4F4F5EFF504E5FFF4F4F5FFF514F5FFF514F60FF535163FF5653 65FF525160FF525261FF535262FF545363FF565363FF555467FF545466FF5554 66FF565567FF555567FF56576BFF56576BFF575769FF595868FF575867FF5758 68FF595968FF5B5968FF5A586CFF59596FFF595A6CFF5A5B69FF5C5D6DFF5B5C 6CFF5B5C6BFF5C5C6BFF5C5C6BFF5C5D6DFF5C5C6EFF5D5D6EFF5D5E70FF5D5F 72FF5D5E72FF5E5F72FF5E6071FF5D6070FF5C6172FF5E5F71FF5F6071FF5E60 71FF5F6072FF606174FF606275FF616174FF616075FF606378FF5F6277FF6163 78FF616378FF5F6276FF606277FF616176FF626378FF626479FF616379FF6262 78FF616479FF616478FF616378FF626479FF616277FF606276FF606275FF6062 76FF606277FF606378FF606378FF606277FF616276FF62627AFF606379FF5F64 7AFF5F647DFF5E637DFF60637BFF5F6279FF5E6177FF5D5C73FF4E4F61FF3435 40FF1A1A20FF07080AFF010101FE000000F3000000D3000000990000004F0000 0018000000030000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000001000000100000004000000086000000CA000000F1000100FC0404 05FF0F0D11FF211F25FF36343FFF464453FF4D4B5CFF4F4C5DFF514B5CFF534C 5DFF514C5CFF504C5DFF514D5FFF534E5FFF534F5FFF534E5FFF544E60FF5650 62FF545162FF525263FF525263FF545164FF575166FF585368FF575265FF5753 63FF575465FF565365FF565467FF555668FF545667FF565766FF585765FF5757 67FF575768FF575767FF575769FF56586CFF56596BFF585A69FF5A5A69FF595A 6BFF5A5A6CFF5B5B6CFF5B5C6DFF5C5C6EFF5F5A70FF5E5B6EFF5C5D6DFF5C5D 6FFF5C5C70FF5D5D70FF5C5D6FFF5B5D6FFF5D5F74FF5E5F74FF5D5E72FF5D5E 6FFF5E5F6FFF5E5F73FF5E5F72FF5E5F72FF5E5F74FF5F6075FF5F6076FF5F5F 75FF606076FF616177FF5F6176FF5F6075FF606174FF606274FF5F6075FF6061 78FF606078FF606077FF606176FF626377FF606277FF606176FF606174FF6061 73FF616176FF606176FF5F6174FF5F6074FF606176FF5F6074FF5F6174FF5F61 75FF5E6177FF5F6077FF606176FF606276FF5D5F73FF535467FF3F3F4EFF2323 2CFF0E0E11FF030304FF000000FA000000E8000000B8000000720000002E0000 0009000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000004000000230000005E000000A4000000DD000000F60100 01FF070608FF151318FF2B272FFF3D3946FF4B4657FF514B5FFF504A5FFF514A 5EFF524D5FFF524E60FF524D60FF514D5EFF514E5EFF524E5FFF524E60FF524F 60FF544F61FF555063FF555063FF554F62FF555163FF555165FF575264FF5853 64FF595364FF5A5364FF575566FF575666FF595565FF575364FF5A5564FF5856 65FF575667FF595669FF59596AFF585868FF585767FF595768FF59586AFF5A5B 6CFF5A5B6CFF5B5A6CFF5C5B6CFF5B5A6DFF5B5A6EFF5C5A6EFF5C5B6DFF5D5B 6CFF5B5B6CFF5C5D6DFF5D5D6DFF5C5D6DFF5C5D6FFF5C5D6DFF5D5E70FF5E5F 71FF5D5D6EFF5E5C71FF5E5E71FF5E5F71FF5E5F73FF5F5F75FF5F5F74FF605F 74FF5F5F75FF5E5F75FF5E5F73FF5F6073FF5F6073FF5E5F73FF5E5E74FF6060 76FF605E76FF605E75FF5F6075FF5F6175FF616076FF615F75FF606073FF6060 72FF605F75FF5F5F74FF606074FF616074FF5F6074FF5F6074FF5E6073FF5E5F 74FF5F5F77FF616077FF606075FF5E6071FF56596AFF46485AFF2D2D39FF1616 1BFF060608FF010101FE000000F3000000D0000000910000004B000000160000 0002000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000E0000003900000079000000BE000000EA0000 00FB030303FF0C0B0DFF1D1A21FF332E38FF453E4DFF4F485BFF504A60FF504A 5DFF514C5EFF524C60FF524C61FF504D5FFF524D5EFF524D5FFF524D61FF514E 62FF554E62FF574E60FF574F60FF565061FF565162FF545064FF565163FF5752 63FF565263FF595263FF565465FF575364FF5A5363FF595366FF5A5464FF5A55 66FF5A5668FF5A5669FF5A5868FF585767FF585767FF585768FF585869FF5B59 6BFF5A596CFF5A596CFF5C596BFF5C596CFF5A596EFF5B596DFF5C596CFF5C5B 6EFF5B5A6EFF5D5B6EFF5E5C6DFF5D5C6CFF5C5C6CFF5C5C6AFF5C5D6EFF5D5E 71FF5E5C70FF5E5C71FF5D5E70FF5C5F71FF5D5F73FF5E5E73FF5F5D70FF605D 71FF5F5E72FF5E5D71FF5E5E71FF5E5E70FF5E5E72FF5E5E74FF5E5E75FF5F5E 74FF605E73FF5F5E73FF5E5E74FF5F5F73FF615E74FF625E74FF615E72FF5F5E 73FF5E5F74FF5F5F73FF605F72FF605F71FF5F5F70FF605F73FF5F5E72FF5F5E 72FF5F5E73FF605F76FF605F76FF5A5B6FFF4D4E5EFF363845FE1D1D25FF0C0C 0FFF030303FF000000F8000000E5000000B00000006A0000002A000000070000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000030000001C0000005000000097000000D30000 00F2010101FD050506FF100F13FF252228FF3A3440FF494253FF4F495DFF514A 5BFF514A5EFF524B60FF534B60FF514C60FF534D60FF534C60FF524C61FF534D 63FF564E62FF574E5EFF564F5EFF565061FF575162FF554F62FF564F61FF5650 61FF545063FF565063FF555265FF565263FF585262FF595468FF585366FF5954 67FF5A5568FF5B5567FF5A5565FF585665FF585767FF585768FF575768FF5A57 6AFF5A576BFF5B576BFF5C576CFF5C586CFF5B586DFF5B586CFF5B586CFF5C59 6FFF5B5A70FF5D596FFF5D5A6EFF5C5B6DFF5C5B6CFF5D5B6DFF5C5C6EFF5C5B 6FFF5D5B71FF5E5D71FF5D5D6FFF5C5E70FF5C5E71FF5D5D71FF5F5C6FFF5F5D 6FFF5E5D70FF5E5D6FFF5E5E71FF5E5C70FF5E5D71FF5E5D73FF5D5D74FF5F5C 73FF5F5D71FF5E5D71FF5F5D72FF605E73FF5F5D73FF605D71FF605D71FF5E5D 72FF5E5E74FF5E5E73FF5E5D71FF5E5D6FFF5F5D6FFF5F5D71FF605C70FF5F5C 6FFF5E5C70FF5E5D73FF5E5B72FF535165FF3F3E4DFF25262EFE101014FF0505 06FF010101FC000000EE000000CA000000880000004400000013000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000A0000002C0000006A000000B00000 00E1000000F9010101FF070608FF171419FF2B2730FF3E3948FF4B4557FF5149 5AFF534A5EFF534A5FFF534B5DFF504B5EFF534C60FF524C61FF514C61FF534C 61FF564E5FFF554E5FFF554F61FF555061FF554F60FF564E5EFF574E5FFF574E 61FF554F64FF565065FF555065FF555265FF555365FF565466FF575368FF5753 67FF575365FF595365FF5A5463FF575463FF585565FF5A5567FF585568FF5858 6AFF5B5769FF5C566AFF5B566CFF5B576DFF5B576CFF5B586CFF5B586DFF5D57 6DFF5C596EFF5C576DFF5B586DFF5B5A6FFF5D5A6FFF5D5971FF5D596FFF5C59 6EFF5B596EFF5F5B71FF5E5B6FFF5C5B6FFF5C5C6FFF5C5C6FFF5E5C70FF5D5C 6EFF5D5C6EFF5E5C6FFF5F5C71FF5D5B72FF5E5B71FF5E5C71FF5C5B71FF5F5D 73FF5E5B70FF5E5C6FFF5F5D70FF5F5D74FF5E5D72FF5D5C6EFF5E5C6DFF605C 70FF5D5C73FF5C5B72FF5C5B71FF5C5B70FF5F5C71FF5C5A70FF5E5A6EFF5E5B 6FFF5D5B70FF5C5B6FFF575265FF474251FF2E2C36FF151419FF070709FF0101 01FE000000F6000000DC000000A30000005C0000002400000005000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000002000000130000003F000000870000 00C6000000EC000000FB030203FF0B090DFF1C181FFF302B37FF413B4FFF4D46 57FF50495BFF50495BFF4F485AFF504A5CFF504B5EFF504B60FF514B62FF524C 62FF534A5DFF544C5DFF544C60FF534C61FF544C5EFF534D5DFF564E5FFF584E 62FF574E62FF555062FF544F63FF535065FF535165FF545163FF565064FF5750 63FF575163FF565364FF565162FF575363FF575464FF585365FF585167FF5854 67FF585466FF585466FF575467FF575568FF5A5769FF59576AFF58566AFF5A55 69FF58576AFF5A5668FF5B5766FF5A5766FF5A566AFF5C576BFF5B586DFF5A59 6FFF5B596FFF5D566EFF5D576EFF5D586DFF5C596DFF5D596DFF5A586CFF5859 6AFF59596AFF5C596CFF5D596BFF5D596FFF5E5A6FFF5E5B6EFF5C5B6DFF5D5A 6DFF5D5B6FFF5D5B6EFF5D5A6BFF5D596EFF5F5B6EFF5E5B6FFF5C5B6FFF5C5A 6FFF5D5A71FF5B5970FF5A5A6FFF5B5B6FFF5C5B6FFF5C5B6FFF5D5B6EFF5D5B 70FF5C5971FF565569FF494757FF34313CFF1C1A20FF09080BFF020203FE0000 00F8000000E5000000BD00000078000000360000000E00000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000600000020000000590000 009C000000D4000000F4000000FE050405FF0E0D10FF1E1C22FF322D3AFF433D 4BFF4B4555FF4C4859FF4B4A5AFF4C495BFF4D4A5BFF4E485BFF50485CFF524A 5EFF52495CFF504A5AFF504B5BFF514A5CFF514A5BFF544B5CFF564C5CFF564C 5DFF564D5EFF544D5EFF524E5FFF524E60FF534E60FF544F61FF544F61FF5550 61FF555061FF535062FF545061FF545260FF555261FF565163FF575165FF5652 65FF565266FF565266FF565365FF555465FF575467FF575468FF565467FF5754 68FF565568FF575567FF585566FF595565FF5A5567FF5C5567FF595567FF5756 68FF57566BFF59576BFF59566AFF5A5669FF5B5768FF5B5868FF5A5868FF5858 67FF58586AFF5B596DFF5C586AFF5C566AFF5D576AFF5C596BFF59586AFF5B58 69FF5B5869FF5A596AFF5A586BFF5B576BFF5C586DFF5C596DFF5B596CFF5959 6CFF5B576CFF5A586CFF59586CFF59586CFF59586CFF58586BFF59596AFF5A58 6AFF575368FF4A4859FF363542FF201F26FF0E0D10FF040405FF000001FD0000 00EF000000CA0000008F0000004B000000190000000300000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000010000000C000000300000 006D000000AF000000E1000000F6010101FE060506FF100F11FF211E25FF352F 3BFF433E4CFF494656FF4B4959FF4C4859FF4C4858FF4E4757FF504758FF5048 59FF50495BFF4E4959FF4E4A59FF504A5AFF50495AFF534A5AFF544B5BFF544B 5CFF544B5CFF534B5CFF524D5CFF524D5CFF534C5DFF544D5FFF544E60FF544F 5FFF544F5FFF534F5FFF554F5FFF545060FF545060FF565061FF575062FF5551 65FF555165FF565164FF555363FF545363FF565365FF555265FF555366FF5653 67FF575368FF575467FF585467FF595366FF595565FF595467FF585366FF5753 65FF575466FF565668FF565667FF575566FF595566FF5B5668FF5A5768FF5A57 67FF595768FF59576AFF5A5768FF5B5669FF5B566AFF5A566AFF585669FF5B56 6AFF595669FF58576AFF59576CFF5A576CFF5A576CFF5A586BFF5A576AFF5957 6AFF5B5669FF59576BFF59576CFF59576BFF59566BFF58576AFF5A5768FF5753 63FF4C4859FF393744FF23232BFF101014FF050405FF010102FD000000F50000 00D9000000A40000006000000025000000080000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000002000000130000 004100000080000000BE000000E5000000F8010102FF070608FF131014FF2520 29FF37323FFF433F4EFF4A4455FF4E4556FF4D4656FF4F4757FF504757FF4F47 56FF4F4959FF4D4858FF4E4958FF4F4B5AFF50495AFF514959FF524A5BFF524B 5DFF514A5CFF524B5DFF504C5BFF504C5CFF524B5EFF534B5EFF534C5FFF534D 5FFF544D5EFF554E5EFF564D5FFF554E60FF554F60FF564F5FFF554F5FFF5351 64FF565064FF565062FF545260FF545362FF565262FF545264FF545265FF5652 66FF585267FF595367FF595266FF595265FF585363FF575368FF575367FF5853 65FF575364FF565365FF575566FF575566FF585467FF5A556AFF5A556AFF5A56 67FF585565FF575466FF585566FF5A5669FF59566AFF595569FF595568FF5C55 6CFF59566CFF58566BFF59566CFF5B576CFF59576BFF585669FF595669FF5A55 69FF5A5568FF58566AFF58566CFF59566BFF5B556AFF5A566AFF585265FF4F49 59FF3C3946FF26242DFF131317FF070708FF010101FD000000F7000000E20000 00B300000074000000360000000C000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000030000 001D0000004D0000008C000000C9000000EC010001FA030203FE080709FF1512 17FF27222AFF37323EFF443D4EFF4C4354FF4E4455FF4E4557FF4E4658FF4E47 56FF4E4756FF4E4655FF4E4757FF4F485AFF4E4759FF514858FF50495AFF4F4A 5CFF4F495DFF4F4A5CFF4C4A5AFF4E4A5DFF514A60FF534B5DFF504C5CFF524D 5DFF544D5EFF554C5EFF554B5EFF524B5FFF544C5FFF544E5EFF524F5EFF514E 60FF534F62FF544F62FF54505FFF555160FF564F60FF555163FF555163FF554F 5FFF565065FF585166FF575163FF565060FF575162FF575164FF585164FF5852 64FF555364FF575265FF565365FF575465FF595466FF575367FF575469FF5653 66FF565465FF565667FF585569FF575366FF575366FF585466FF595465FF5A53 68FF595469FF58556AFF575469FF595468FF595467FF585467FF585468FF5854 6AFF555364FF565467FF585468FF585368FF575367FF545163FF4D4959FF3E3A 48FF292631FF141318FF080709FF020203FD000100F7000000E9000000C20000 0081000000420000001500000002000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0008000000250000005700000098000000CD000000EF000000FD020202FF0A09 0BFF161418FF25222BFF36313EFF453C4BFF4C4150FF4D4454FF4C4455FF4D44 53FF4F4655FF4F4655FF4D4656FF4D4658FF4E475BFF4E4859FF4E4757FF4E47 58FF4F485AFF51495CFF50495BFF504A5CFF524A5CFF52495AFF504959FF514B 5BFF514B5CFF524B5CFF534D5DFF514B5CFF514C5DFF514D5FFF504D61FF524F 5FFF544D5EFF554C5EFF564D5EFF564E5EFF554E5FFF554F60FF555060FF5550 5FFF565065FF555164FF555063FF554F64FF564F65FF575062FF57505FFF5650 60FF565164FF575064FF575166FF575265FF565263FF555263FF535465FF5354 64FF555363FF565364FF555366FF565265FF585264FF595264FF565363FF5752 64FF575264FF575365FF565466FF585366FF585366FF595267FF585366FF5653 63FF545564FF545264FF565265FF585364FF555061FF4C4856FF3D3945FF2926 30FF151419FF09090BFF030203FF000000FB000000EB000000C80000008E0000 004E0000001D0000000400000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000C0000002B00000062000000A1000000D4000000F2000000FA0302 04FE09080AFF151318FF25222BFF36313DFF433B48FF4A4151FF4C4455FF4B44 54FF4D4554FF4D4554FF4D4555FF4C4558FF4D465AFF4D4759FF4E4656FF5046 56FF504859FF50475AFF4F4859FF514959FF514858FF504857FF504859FF514A 5AFF514B5AFF504B5BFF514B5EFF504C5DFF504C5DFF504C5DFF504B5EFF524B 5CFF534C5CFF534B5CFF534B5CFF534C60FF514D5FFF524E60FF534F5FFF554E 5EFF554E60FF544F60FF544F61FF544F62FF544F61FF554F60FF564F5EFF564F 60FF554F63FF564F61FF554E65FF554F65FF555063FF545161FF535465FF5252 63FF545161FF565262FF535163FF555163FF575162FF575161FF555161FF5451 63FF565165FF575165FF565163FF545264FF565064FF585064FF585163FF5751 61FF555364FF555265FF555163FF524F5FFF494655FF3A3843FF28262EFF1715 1AFF09090AFF030204FF010001FA000000ED000000CE00000098000000580000 0025000000080000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000010000000E000000320000006C000000A8000000D7000000F00100 00FC030203FF09080BFF151318FF25212AFF35303BFF423B4AFF4A4153FF4B44 54FF4B4553FF4C4454FF4D4456FF4E4557FF4E4457FF4D4557FF4F4657FF5047 56FF4F4757FF504657FF4F4756FF504757FF504657FF4E4756FF4F4859FF504A 59FF504A58FF504A5AFF51495EFF504B5DFF504C5CFF514B5BFF524B5BFF5249 5AFF534B5CFF514B5BFF504A5BFF504C60FF4F4D5EFF504E5FFF524E5FFF534C 5CFF534B5BFF534C5CFF534E5FFF544F60FF524E5DFF534F60FF564E5FFF564E 60FF554E62FF554E5FFF544D62FF544E63FF544E62FF534F61FF545164FF5350 62FF524F61FF535162FF525063FF544F63FF555061FF555160FF544F60FF5451 64FF565166FF565064FF554F61FF525161FF554F62FF564F63FF575063FF5850 61FF575064FF565063FF524D5EFF484454FF393642FF26242DFF151418FF0909 0AFF030303FE000000FC000000EE000000CF0000009F000000610000002B0000 000B000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000002000000110000003800000070000000AC000000DD0000 00F4010101FC030303FF09070AFF141117FF252028FF352E3AFF413948FF4840 4FFF4A4353FF4B4355FF4D4457FF4E4456FF4F4254FF4E4355FF4E4657FF4D47 57FF4C4656FF504556FF504656FF504657FF4F4658FF4E4657FF4F4858FF4F48 57FF4F4958FF4F4959FF52495BFF504A5CFF504A5AFF514A59FF534A5BFF534A 5BFF534A5CFF524B5BFF514B5BFF4F4C5DFF4F4D5BFF514E5DFF534D5DFF524C 5AFF534B5BFF534C5CFF534D5FFF534E60FF524D5DFF534E61FF564D60FF574D 60FF564E61FF554D5FFF554E5EFF544D5EFF544D5FFF544D60FF544E61FF534E 61FF514F61FF504F62FF524F64FF544E63FF554E62FF544F60FF534F60FF5551 65FF555064FF554F61FF554E60FF545060FF554F61FF554F64FF554F64FF574F 61FF564E62FF514A5DFF474151FF393240FF27222AFF151216FF080709FF0202 02FE000000FA000000F0000000D5000000A2000000650000002F0000000D0000 0001000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000002000000150000003C00000074000000B00000 00DA000000F4000000FE020202FF080709FF131015FF211D25FF302A36FF3D36 45FF443D51FF4A4154FF4D4455FF4D4454FF4B4352FF494555FF494553FF4A44 53FF4C4555FF4C4456FF4D4656FF4D4657FF4D4557FF4E4656FF514758FF5146 58FF504658FF4F4858FF4E4757FF50495AFF504959FF504958FF524758FF5249 5AFF54485BFF53485CFF52495CFF524B5AFF504B5CFF514B5CFF524B5CFF514C 5BFF554D5CFF544D5FFF524C5FFF514B5DFF514C5CFF514B60FF544A61FF554A 5FFF544C5BFF564E5CFF534C5DFF534C5FFF554E60FF534E5DFF534E60FF554D 62FF544D64FF524E64FF544F61FF554F60FF544F60FF535060FF525161FF564E 60FF534C5DFF534C5EFF554D60FF514D5EFF544E5FFF564E60FF544E60FF524B 5DFF51475BFF453D4EFF342F3CFF221E27FF100F12FF070709FF030303FF0000 00FB000000EF000000D4000000A3000000680000003300000010000000020000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000004000000170000003D000000730000 00AE000000DA000000F2000000FB020202FF070608FF100E12FF1D1920FF2D25 31FF3A3140FF443A4AFF494050FF4A4152FF4B4355FF4A4354FF494352FF4B43 53FF4D4355FF4C4356FF4D4556FF4E4657FF4D4658FF4C4555FF4E4556FF5046 57FF4F4757FF4E4856FF514859FF4E4758FF4D4758FF4E4758FF514658FF5148 58FF514858FF51485AFF51495BFF4F4958FF51495AFF50495DFF50495DFF504A 5CFF514A59FF4F4B5BFF4E4C5BFF4F4B5AFF524A5AFF53495BFF53495CFF5349 5BFF544A5AFF544B5AFF544A5CFF524B5DFF514C5DFF514D5EFF514D5EFF534C 5EFF544B5FFF544B60FF534C5EFF524C5DFF524D5DFF524D5FFF514D60FF544C 5DFF544C5DFF544C5EFF544C5EFF524D60FF534D5FFF534C5DFF4F4959FF4943 52FF3F3845FF2F2A34FF1E1B22FF100E12FF060506FF010102FF000000F90000 00EC000000D2000000A100000067000000340000001100000002000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000004000000160000003B0000 0073000000AA000000D5000000EF000000FB020202FE060507FF0D0B0EFF1915 1BFF28212BFF352E3AFF3E3745FF453D4CFF494153FF494052FF4A4152FF4B43 53FF4C4353FF4C4253FF4D4454FF4D4555FF4D4455FF4B4354FF4D4455FF4E45 55FF4E4655FF4D4555FF4F4659FF4C4657FF4C4657FF4E4658FF504657FF4F47 56FF4D4655FF4D4757FF4E4859FF4C4756FF50495AFF51485BFF50485BFF5049 5AFF504857FF4F4A59FF4E4A5AFF4F4A59FF524859FF524959FF514959FF524A 5AFF534A5AFF52485AFF54495DFF52495CFF504A5BFF4F4B5CFF504B5CFF4F4A 5CFF514A5DFF534A5EFF534A5BFF524A59FF514A5BFF524A5EFF534A5FFF524C 5BFF514A5CFF524A5DFF524B5EFF504B5EFF50495CFF4B4556FF433E4CFF3732 3EFF28242CFF19161BFF0C0B0EFF040405FF010101FD000000F9000000EA0000 00CC0000009D0000006400000032000000110000000100000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000003000000140000 003A0000006D000000A4000000D3000000EC000001F8010101FE040304FF0A09 0AFF141116FF201E25FF2D2A33FF3A333FFF423A48FF453D4DFF474050FF4841 51FF494150FF4A4050FF4B4151FF4B4251FF4B4251FF4A4152FF4B4252FF4A43 52FF4B4352FF4B4353FF4B4355FF4A4454FF4B4555FF4D4556FF4E4455FF4D44 53FF4B4553FF4B4653FF4C4655FF4B4756FF4E4758FF504758FF4F4757FF4D47 57FF4E4755FF4F4856FF4F4858FF4F4858FF504858FF4E4858FF4E4858FF4F49 58FF504959FF50465AFF51475CFF51485AFF504858FF4F4959FF4F4859FF4D49 5AFF4D495CFF50495DFF524A5AFF524958FF514959FF52495BFF544A5DFF514A 5AFF4F4859FF4E485BFF4C4A5BFF4B4557FF464051FF3D3846FF302C37FF211E 26FF131115FF09080AFF030303FF000000FD000000F6000000E7000000C90000 00990000005F0000002F0000000F000000010000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000020000 001200000034000000660000009C000000C9000000E7000000F7010001FD0302 03FF060506FF0E0D10FF19171CFF27212AFF332B36FF3C3744FF413B4BFF443D 4CFF463E4DFF493C4DFF473E4EFF47404FFF49414FFF48404EFF47414FFF4641 4EFF47414FFF494250FF4B4251FF494150FF4A4251FF4B4352FF4C4251FF4C43 51FF4B4452FF4B4452FF4B4352FF4B4655FF4A4355FF4B4454FF4B4554FF4944 54FF4A4454FF4A4452FF4C4453FF4E4454FF4C4655FF494554FF4B4554FF4C46 54FF4B4755FF4C4557FF4D4657FF4D4656FF4D4657FF4E485AFF4D4657FF4D48 58FF4C485AFF4C475AFF4F4859FF4E4757FF504859FF51495AFF4F4858FF4F47 57FF504857FF4B4754FF43424FFF3F3A48FF352F3DFF28242DFF1A181DFF0F0D 10FF050406FF020103FF010001FC000000F4000000E5000000C1000000900000 005A0000002B0000000D00000001000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0003000000100000002E0000005A0000008E000000BE000000DF000000F30000 00FD010101FE050505FF0B0A0CFF141116FF201C22FF2B2630FF34303BFF3D37 43FF453B49FF473B49FF483E4FFF494051FF494050FF463F50FF474152FF4A40 51FF49404FFF47414FFF49414FFF484150FF494251FF4B4251FF4B4252FF4A42 51FF49434FFF494451FF4A4454FF494353FF474455FF474353FF494352FF4B44 54FF4B4454FF4C4554FF4D4655FF4D4556FF4B4555FF494553FF4C4656FF4D47 58FF4B4555FF4C4456FF4D4456FF4D4455FF4D4454FF4D4655FF4B4756FF4C48 5AFF4D485AFF4E4658FF4E4555FF4D4658FF4E4759FF504858FF4F4856FF4E45 54FF48414FFF403C48FF37333FFF2B2730FF1F1B22FF131115FF0A090BFF0504 05FF020102FE000000FB000000F0000000D9000000B6000000820000004F0000 00250000000B0000000100000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000010000000D000000260000004D0000007D000000AC000000D40000 00ED000000F6000101FE030303FF080708FF0E0D10FF171519FF221E25FF2D27 31FF38303BFF3F3644FF433B4AFF473E4DFF483E4FFF473E50FF4A4051FF4A40 50FF494050FF484150FF49414FFF4A4251FF4B4252FF4C4252FF4B4252FF4941 52FF4A4252FF4A4353FF4A4353FF4B4153FF4A4354FF4A4454FF4C4453FF4D43 53FF4C4453FF4C4453FF4C4554FF4C4555FF4D4454FF4D4353FF4E4457FF4E45 58FF4C4555FF4D4656FF4C4454FF4C4353FF4D4353FF4E4454FF4C4757FF4C46 59FF4D4558FF4E4657FF4F4555FF4E4558FF4D4558FF4B4454FF48414FFF443B 4AFF39343FFF2D2A33FF211E26FF161318FF0D0B0EFF070607FF030203FF0100 01FE000000F5000000E8000000CC000000A300000073000000430000001F0000 0009000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000080000001C0000003E0000006C0000009C0000 00C5000000E1000000F4000000FC010201FE030304FF080809FF100E11FF1915 1BFF241F27FF2E2933FF36303BFF3D3441FF423847FF443B4BFF473E4DFF4840 4FFF49404FFF484050FF483F4FFF4A4151FF4B4152FF4B4151FF4B4251FF4940 52FF4A4253FF4A4252FF494251FF4A4252FF4B4252FF4C4353FF4C4352FF4B43 51FF4B4352FF4B4352FF4B4352FF4C4353FF4D4352FF4D4252FF4D4255FF4D43 55FF4D4452FF4D4654FF4C4454FF4C4453FF4D4453FF4C4454FF4C4657FF4C45 57FF4D4456FF4C4455FF4C4353FF4A4152FF453E4EFF3F3947FF38333FFF3029 34FF242028FF18161CFF0E0D10FF080608FF030203FF010101FE000000FA0000 00F1000000DC000000BB00000091000000620000003500000016000000050000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000030000001300000030000000580000 0087000000B6000000D6000000EA000000F6000000FD020102FE040305FF0907 09FF100D11FF19151AFF221D24FF2B252DFF322C36FF39313EFF3D3745FF423B 4AFF463D4CFF473D4DFF453D4DFF483F50FF494050FF494050FF4A4150FF4840 51FF49404FFF49414FFF48414FFF474351FF4A4151FF4B4150FF494250FF4743 50FF484251FF494251FF4B4051FF4C3F51FF4B4250FF494151FF494152FF4A42 51FF4C4250FF4B4352FF4C4455FF4D4454FF4C4353FF484353FF4A4353FF4B42 52FF494150FF463E4EFF433A4AFF3D3644FF342F3BFF2B2730FF222026FF1815 1AFF100D12FF08070AFF030303FF020102FD000000FC000000F4000000E50000 00CE000000AB0000007B0000004D000000280000000D00000002000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000010000000B000000210000 0044000000700000009B000000C2000000E1000000F0000000F7010101FD0202 02FF050405FF080709FF0E0D0FFF161317FF1E1920FF252029FF2D2732FF342D 39FF3A323FFF403644FF413947FF443C4AFF473E4CFF493E4EFF493D4EFF4940 51FF49404FFF48404FFF484050FF4B404FFF4A3E4EFF483E4EFF48404FFF4941 51FF4A4152FF4A4052FF4B3F51FF4C3F50FF494151FF4A404FFF483F4FFF4840 4FFF4A4150FF4B4251FF4B4155FF4B3F53FF4A3E50FF463F4FFF463D4BFF4239 48FF3C3443FF372F3CFF2F2833FF26212AFF1C1A20FF131217FF0D0B0EFF0706 08FF040405FF020202FF000000FD000000F7000000EB000000D7000000B80000 008D000000630000003A0000001A000000060000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000060000 001500000031000000550000007F000000A7000000C7000000E1000000F00000 00F8010001FD020202FF040304FF070608FF0C0A0CFF120F12FF171419FF1E19 20FF261F27FF2C252EFF302B35FF362F3BFF3B323FFF3E3442FF413643FF4239 47FF423B4AFF423C4CFF423E4DFF453D4BFF473F4CFF473E4CFF483D4DFF483E 4FFF473E4FFF483F4FFF483F4FFF483F50FF494052FF4A3E4EFF473E4DFF453F 4DFF463F4DFF473E4BFF443B4AFF413849FF3D3545FF39313FFF352E38FF2D27 31FF25212AFF1E1B22FF171419FF110E12FF0B0A0CFF060607FF040305FF0101 02FF000001FC000000F6000000EC000000DD000000BE00000099000000700000 0048000000270000001000000004000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00020000000C0000001F0000003C0000006000000084000000AA000000C70000 00DE000000F0000000F7000000FC010101FE020202FF050405FF080608FF0C0A 0DFF110E12FF161218FF1A181DFF211C23FF262028FF2B232DFF2F2731FF322B 35FF342E3AFF36303DFF37323FFF38333EFF39333EFF3A333EFF3B333FFF3D34 42FF3E3644FF403845FF403845FF3E3845FF3E3746FF3E3543FF3D3541FF3A34 40FF39323EFF37303AFF322B36FF2E2733FF29232EFF231F26FF1E1A20FF1714 19FF100F13FF0C0B0EFF070708FF050405FF020202FF010101FE000001FC0000 00F5000000EC000000DA000000C0000000A10000007A00000053000000310000 0017000000070000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000030000000F000000230000003F00000062000000860000 00A9000000C8000000D9000000EB000000F4000000F8000001FB010001FE0202 03FF040305FF070507FF0A080AFF0D0B0EFF110E12FF151116FF19151BFF1D18 1FFF201C23FF231E27FF252028FF252027FF231F26FF231E26FF251F28FF2722 2BFF2B262FFF2F2833FF2F2933FF2D2831FF2B2730FF2A252EFF29232DFF2721 2BFF241E27FF201C22FF1B181EFF181419FF141015FF0E0D10FF0B090BFF0706 07FF040404FF020202FF010100FE000000FB000000F7000000F1000000E80000 00D4000000BF000000A20000007D00000058000000360000001C0000000A0000 0001000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000030000000E000000220000003D0000 005F00000082000000A1000000BF000000D3000000E1000000ED000000F30001 00F9010101FC010101FE020202FF030203FF040305FF060507FF070608FF0907 0AFF0C0A0DFF0F0C0FFF0F0D10FF0E0C0EFF0D0B0DFF0B090CFF0B090DFF100D 11FF141115FF161419FF17141AFF171319FF161318FF141115FF120F14FF100E 12FF0D0B0FFF0B0A0CFF090809FF070607FF050405FF030204FF030203FF0101 01FD000000FB000000F9000000F2000000EB000000DE000000CD000000B80000 00970000007700000056000000370000001D0000000B00000002000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000100000005000000100000 00200000003800000054000000710000008C000000A7000000C1000000D20000 00E2000000ED000000F3000000F9000000FC010101FD010102FE010102FE0201 02FE030203FE040304FF040304FF030203FF020202FF010101FF010102FF0302 04FF050406FF060608FF070608FF070607FF070608FF050505FF050405FF0403 04FF020203FE030203FD020202FE020202FE010101FC000000FB000000F80000 00F2000000EC000000E2000000D0000000BC000000A100000084000000670000 004A000000310000001C0000000C000000040000000100000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000010000 00050000000E0000001B0000002D000000430000005B000000750000008D0000 00A6000000B9000000C8000000D7000000E1000000EA000000F1000000F50000 00F9000000FA000000FB000000FD000000FF000000FF000000FF000000FF0000 00FF000000FF010101FD010101FE010101FF010101FC000000FF000000FD0000 00FB000000FB000000F8000000F5000000F1000000EB000000E3000000DA0000 00CA000000B8000000A4000000890000006F000000540000003B000000270000 00170000000B0000000400000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000200000008000000110000001E00000030000000440000 005A0000006F0000008200000095000000A5000000B5000000C4000000CE0000 00D8000000DE000000E3000000EA000000F3000000F9000000FD000000FD0000 00F9000000F7000000F1000000F0000000F1000000EB000000ED000000E90000 00E4000000E0000000DA000000D0000000C6000000B9000000A90000009A0000 00850000006E00000058000000410000002C0000001B0000000E000000050000 0001000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000100000007000000110000 001B00000028000000380000004700000057000000690000007A000000890000 0097000000A2000000AC000000B9000000CA000000DA000000E4000000E40000 00DB000000D4000000CB000000C8000000C6000000C1000000BD000000B70000 00AE000000A50000009B0000008C0000007E0000006E0000005C0000004C0000 003A000000290000001B0000000F000000060000000100000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0002000000060000000B0000001000000019000000220000002D000000390000 00440000004D00000057000000650000007A0000008F0000009D0000009F0000 0094000000890000007E0000007900000076000000710000006B000000630000 005A00000051000000460000003B00000030000000250000001B000000120000 000B000000060000000300000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000001000000010000000300000005000000080000000B0000 001000000014000000190000001F0000002A0000003800000041000000420000 003D00000034000000310000002F0000002D0000002A00000025000000200000 001B00000017000000120000000D000000090000000600000003000000020000 0001000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000010000000100000003000000060000000A0000000C0000000D0000 000C000000090000000800000008000000080000000700000005000000030000 0002000000010000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000 } OnCreate = FormCreate OnDestroy = FormDestroy OnShow = FormShow Position = poScreenCenter LCLVersion = '1.8.2.0' object StatusBar1: TStatusBar AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 0 Height = 19 Top = 391 Width = 859 Anchors = [akRight, akBottom] Panels = < item Width = 50 end> SimplePanel = False end object Memo1: TMemo AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = StatusBar1 Left = 608 Height = 385 Top = 3 Width = 248 Anchors = [akTop, akRight, akBottom] BorderSpacing.Around = 3 Lines.Strings = ( 'This tool corrects the mpsas reading for datalogger .dat files created with firmware version 49-56 where subsequent values were 0.66mpsas brighter (lower value).' '' 'Corrected files will have a new filename which is appended with "MPSASCorr". Also, the "# SQM firmware version:" line be appended with "-CorrectedMPSAS" to prevent compounded corrections.' '' 'You can correct all the files in one directory (select the "Entire directory" tab), or just one single file (select the "Single file" tab).' ) ScrollBars = ssAutoVertical TabOrder = 1 end object PageControl1: TPageControl AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner AnchorSideRight.Control = Memo1 AnchorSideBottom.Control = StatusBar1 Left = 3 Height = 385 Top = 3 Width = 602 ActivePage = TabSheet1 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Around = 3 TabIndex = 0 TabOrder = 2 object TabSheet1: TTabSheet Caption = 'Entire directory' ClientHeight = 360 ClientWidth = 600 object ConvertDirectoryEdit: TLabeledEdit AnchorSideLeft.Control = TabSheet1 AnchorSideTop.Control = TabSheet1 AnchorSideRight.Control = TabSheet1 AnchorSideRight.Side = asrBottom Left = 72 Height = 25 Top = 4 Width = 524 Anchors = [akTop, akRight] BorderSpacing.Top = 4 BorderSpacing.Right = 4 EditLabel.AnchorSideTop.Control = ConvertDirectoryEdit EditLabel.AnchorSideTop.Side = asrCenter EditLabel.AnchorSideRight.Control = ConvertDirectoryEdit EditLabel.AnchorSideBottom.Control = ConvertDirectoryEdit EditLabel.AnchorSideBottom.Side = asrBottom EditLabel.Left = 12 EditLabel.Height = 15 EditLabel.Top = 9 EditLabel.Width = 57 EditLabel.Caption = 'Directory:' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 0 OnChange = ConvertDirectoryEditChange OnEditingDone = ConvertDirectoryEditEditingDone end object CheckDirectoryButton: TButton Left = 72 Height = 25 Hint = 'Check selected directory for valid datalogger .dat files to convert.' Top = 32 Width = 132 Caption = 'Check directory' OnClick = CheckDirectoryButtonClick ParentShowHint = False ShowHint = True TabOrder = 1 end object CorrectDirectoryButton: TButton Left = 416 Height = 25 Hint = 'Read files and write corrected ones to new new entries on the disk.' Top = 32 Width = 180 Caption = 'Correct directory file(s)' OnClick = CorrectDirectoryButtonClick ParentShowHint = False ShowHint = True TabOrder = 2 end object DirectoryStringGrid: TStringGrid AnchorSideLeft.Control = TabSheet1 AnchorSideRight.Control = TabSheet1 AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = TabSheet1 AnchorSideBottom.Side = asrBottom Left = 0 Height = 296 Top = 64 Width = 600 Anchors = [akLeft, akRight, akBottom] AutoFillColumns = True ColCount = 4 Columns = < item Title.Caption = 'Filename' Width = 149 end item Title.Caption = 'Size' Width = 149 end item Title.Caption = 'Model' Width = 149 end item Title.Caption = 'Firmware' Width = 149 end> FixedCols = 0 RowCount = 1 TabOrder = 3 ColWidths = ( 149 149 149 149 ) end end object TabSheet2: TTabSheet Caption = 'Single file' ClientHeight = 360 ClientWidth = 600 object InGroupBox: TGroupBox AnchorSideLeft.Control = TabSheet2 AnchorSideTop.Control = TabSheet2 AnchorSideRight.Control = TabSheet2 AnchorSideRight.Side = asrBottom Left = 4 Height = 74 Top = 4 Width = 592 Anchors = [akTop, akLeft, akRight] BorderSpacing.Around = 4 Caption = 'Input file:' ClientHeight = 57 ClientWidth = 588 TabOrder = 0 object FileSelectButton1: TButton AnchorSideTop.Control = InGroupBox Left = 76 Height = 21 Top = 0 Width = 75 Anchors = [akTop] Caption = 'Select file' OnClick = FileSelectButton1Click TabOrder = 0 end object InputFile: TLabeledEdit AnchorSideLeft.Control = FileSelectButton1 AnchorSideTop.Control = FileSelectButton1 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = InGroupBox AnchorSideRight.Side = asrBottom Left = 76 Height = 25 Top = 25 Width = 508 Anchors = [akTop, akLeft, akRight] BorderSpacing.Top = 4 BorderSpacing.Right = 4 EditLabel.AnchorSideTop.Control = InputFile EditLabel.AnchorSideTop.Side = asrCenter EditLabel.AnchorSideRight.Control = InputFile EditLabel.AnchorSideBottom.Control = InputFile EditLabel.AnchorSideBottom.Side = asrBottom EditLabel.Left = 18 EditLabel.Height = 15 EditLabel.Top = 30 EditLabel.Width = 55 EditLabel.Caption = 'Filename:' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 1 end object FirmwareVersionLabeledEdit: TLabeledEdit AnchorSideTop.Control = InGroupBox AnchorSideRight.Control = InGroupBox AnchorSideRight.Side = asrBottom Left = 544 Height = 25 Top = 0 Width = 40 Anchors = [akTop, akRight] BorderSpacing.Right = 4 EditLabel.AnchorSideTop.Control = FirmwareVersionLabeledEdit EditLabel.AnchorSideTop.Side = asrCenter EditLabel.AnchorSideRight.Control = FirmwareVersionLabeledEdit EditLabel.AnchorSideBottom.Control = FirmwareVersionLabeledEdit EditLabel.AnchorSideBottom.Side = asrBottom EditLabel.Left = 437 EditLabel.Height = 15 EditLabel.Top = 5 EditLabel.Width = 104 EditLabel.Caption = 'Firmware version:' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 2 end object ModelLabeledEdit: TLabeledEdit AnchorSideTop.Control = InGroupBox Left = 302 Height = 25 Top = 0 Width = 80 EditLabel.AnchorSideTop.Control = ModelLabeledEdit EditLabel.AnchorSideTop.Side = asrCenter EditLabel.AnchorSideRight.Control = ModelLabeledEdit EditLabel.AnchorSideBottom.Control = ModelLabeledEdit EditLabel.AnchorSideBottom.Side = asrBottom EditLabel.Left = 261 EditLabel.Height = 15 EditLabel.Top = 5 EditLabel.Width = 38 EditLabel.Caption = 'Model:' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 3 end end object OutGroupBox: TGroupBox AnchorSideLeft.Control = TabSheet2 AnchorSideTop.Control = InGroupBox AnchorSideTop.Side = asrBottom AnchorSideRight.Control = TabSheet2 AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = StatusBar1 Left = 4 Height = 95 Top = 82 Width = 592 Anchors = [akTop, akLeft, akRight] BorderSpacing.Around = 4 Caption = 'Output file:' ClientHeight = 78 ClientWidth = 588 TabOrder = 1 object OutputFile: TLabeledEdit AnchorSideLeft.Control = CorrectButton AnchorSideTop.Control = CorrectButton AnchorSideTop.Side = asrBottom AnchorSideRight.Control = OutGroupBox AnchorSideRight.Side = asrBottom Left = 73 Height = 25 Top = 44 Width = 511 Anchors = [akTop, akLeft, akRight] BorderSpacing.Top = 8 BorderSpacing.Right = 4 EditLabel.AnchorSideTop.Control = OutputFile EditLabel.AnchorSideTop.Side = asrCenter EditLabel.AnchorSideRight.Control = OutputFile EditLabel.AnchorSideBottom.Control = OutputFile EditLabel.AnchorSideBottom.Side = asrBottom EditLabel.Left = 15 EditLabel.Height = 15 EditLabel.Top = 49 EditLabel.Width = 55 EditLabel.Caption = 'Filename:' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 0 end object CorrectButton: TBitBtn AnchorSideTop.Control = OutGroupBox Left = 73 Height = 36 Hint = 'Correct .dat file for time difference' Top = 0 Width = 316 Anchors = [akTop] Caption = 'Correct mpsas offset for DL firmware 49-56' Enabled = False Glyph.Data = { 36100000424D3610000000000000360000002800000020000000200000000100 2000000000000010000064000000640000000000000000000000FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0080AA8004C8DAC809FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00085E08211B6F1AE0539451E83D8B 3D2AFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00002F0006025C01D22B742AFF387C37FF086A 06D6002F0006FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00015700AB146813FF367536FF054805FF0B6B 09FF016900B1FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00005500790B620AFE3C813CFF337A33FF014F01FF065A 06FF0A7407FE02690081FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF0000500048045C03F73C853CFF3D883DFF328032FF025B02FF005C 00FF0B6C0AFF077704F90368004FFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF000054001F005500E8368336FF479247FF3A8B3AFF2F852FFF056705FF0067 00FF006A00FF107C0FFF037800ED006A0022FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00002F 0006004F00CF2B772BFF519C51FF459645FF388F38FF2D8A2DFF087208FF0071 00FF007500FF007700FF138411FF047A00D8004D0007FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00004D 00A91D6A1DFF5BA45BFF4F9F4FFF439943FF369436FF2B8F2BFF097C09FF007B 00FF007F00FF008200FF048504FF12870FFF037800B5FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00004C0078125B 12FE60A660FF59A659FF4CA14CFF409C40FF349834FF2A952AFF078307FF0085 00FF008A00FF008D00FF008F00FF099209FF0F870BFE02770085FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00004C0048055105F75FA2 5FFF63AD63FF57A857FF4AA34AFF3E9F3EFF319C31FF2B9C2BFF058A05FF008E 00FF009400FF009800FF009A00FF009A00FF109B0FFF0A8506FA03750051FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000054001F004D00E8579857FF6DB5 6DFF61AD61FF55A955FF48A448FF3CA23CFF2F9F2FFF2CA12CFF009000FF0097 00FF009D00FF00A200FF00A500FF00A500FF00A400FF189F16FF058501EF0073 0023FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00002F0006004D00CF468646FF78BC78FF6BB4 6BFF5EAE5EFF52A952FF46A546FF39A339FF2DA22DFF2AA62AFF009700FF009F 00FF00A600FF00AC00FF00B000FF00B100FF00AF00FF00AA00FF1A9D17FF0584 00DC004D0007FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00004D00A9317331FF84C184FF75BA75FF69B3 69FF5CAD5CFF4FA94FFF43A643FF37A437FF2BA32BFF29A829FF009D00FF00A5 00FF00AE00FF00B500FF00BA00FF00BD00FF00BA00FF00B400FF05AC05FF1896 14FF048500BAFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00004B00791D621DFE87C187FF7FC17FFF73B873FF67B2 67FF5AAC5AFF4DA94DFF41A641FF34A434FF28A528FF28AB28FF00A100FF00AB 00FF00B400FF00BD00FF00C400FF00C800FF00C500FF00BD00FF00B200FF0CA8 0CFF13900EFE04820089FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00004C00480A540AF786BA86FF89C789FF7DBF7DFF70B770FF64B0 64FF58AC58FF4BA74BFF3FA63FFF32A432FF25A525FF28AC28FF00A300FF00AE 00FF00B800FF00C200FF00CC00FF00D300FF00D000FF00C400FF00B700FF00AA 00FF14A013FF0D8D08FA03810054FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF0000400002004D00E384B184FF99D299FF8DC88DFF83C183FF77B977FF6AB3 6AFF60B060FF57AC57FF4DAC4DFF42AC42FF36AB36FF39B339FF04A604FF05B1 05FF06BB06FF06C506FF07D007FF08DA08FF09D609FF0AC90AFF0BBC0BFF0CAF 0CFF0DA10DFF2FA735FF1BA02AECFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF0000550002004D00D3004D00FF004D00FF004D00FF004E00FF005500FF005C 00FF006300FF006A00FF027001FF037402FF037B02FF057E03FF068204FF0784 05FF098806FF098B06FF0A8C07FF0C8F08FF0D8F09FF0E900AFF10920BFF1191 0CFF12900DFF138F0DFF068D01DAFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF000066000300500011005000110050001100500011005000110050 0011005000110050001100500011005000110050001100500011005000110050 0011005000110050001100500011005000110050001100500011005000110050 0011005000110050001100660003FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 } OnClick = CorrectButtonClick ParentShowHint = False ShowHint = True TabOrder = 1 end end end end object OpenDialog1: TOpenDialog left = 752 top = 216 end end ./moon.pas0000644000175000017500000024170514576573021012635 0ustar anthonyanthonyunit moon; {$MODE Delphi} {$i ah_def.inc } { Copyright 1997-2001 Andreas Hrstemeier Version 2.0 2001-07-07 } { this component is public domain - please check the file moon.hlp for } { more detailed info on usage and distributing } { Algorithms taken from the book "Astronomical Algorithms" by Jean Meeus } (*$b-*) { I may make use of the shortcut boolean eval } (*@/// interface *) interface (*@/// uses *) uses AH_MATH, vsop, sysutils; (*@\\\*) type TMoonPhase=(Newmoon,WaxingCrescrent,FirstQuarter,WaxingGibbous, Fullmoon,WaningGibbous,LastQuarter,WaningCrescent); TSeason=(Winter,Spring,Summer,Autumn); TEclipse=(none, partial, noncentral, circular, circulartotal, total, halfshadow); E_NoRiseSet=class(Exception); E_OutOfAlgorithmRange=class(Exception); TSolarTerm=(st_z2,st_j3,st_z3,st_j4,st_z4,st_j5,st_z5,st_j6,st_z6, st_j7,st_z7,st_j8,st_z8,st_j9,st_z9,st_j10,st_z10, st_j11,st_z11,st_j12,st_z12,st_j1,st_z1,st_j2); TChineseZodiac=(ch_rat,ch_ox,ch_tiger,ch_rabbit,ch_dragon,ch_snake, ch_horse,ch_goat,ch_monkey,ch_chicken,ch_dog,ch_pig); TChineseStem=(ch_jia,ch_yi,ch_bing,ch_ding,ch_wu,ch_ji, ch_geng,ch_xin,ch_ren,ch_gui); (*@/// TChineseCycle= record *) TChineseCycle=record zodiac: TChineseZodiac; stem: TChineseStem; end; (*@\\\*) (*@/// TChineseDate = record *) TChineseDate = record cycle: integer; year: integer; epoch_years: integer; month: integer; leap: boolean; leapyear: boolean; day: integer; yearcycle: TChineseCycle; daycycle: TChineseCycle; monthcycle: TChineseCycle; end; (*@\\\*) const (* Date of calendar reformation - start of gregorian calendar *) calendar_change_standard: extended = 2299160.5; calendar_change_russia: extended = 2421638.5; calendar_change_england: extended = 2361221.5; calendar_change_sweden: extended = 2361389.5; (*@/// Jewish_Month_Name:array[1..13] of string *) Jewish_Month_Name:array[1..13] of string = ( 'Nisan', 'Iyar', 'Sivan', 'Tammuz', 'Av', 'Elul', 'Tishri', 'Heshvan', 'Kislev', 'Tevet', 'Shevat', 'Adar', 'Adar 2' ); (*@\\\*) { Calendar algorithms } function julian_date(date:TDateTime):extended; function delphi_date(juldat:extended):TDateTime; function EasterDate(year:integer):TDateTime; function EasterDateJulian(year:integer):TDateTime; function PesachDate(year:integer):TDateTime; procedure DecodeDateJewish(date: TDateTime; var year,month,day: word); function EncodeDateJewish(year,month,day: word):TDateTime; function WeekNumber(date:TDateTime):integer; { Convert date to julian date and back } function Calc_Julian_date_julian(year,month,day:word):extended; function Calc_Julian_date_gregorian(year,month,day:word):extended; function Calc_Julian_date_switch(year,month,day:word; switch_date:extended):extended; function Calc_Julian_date(year,month,day:word):extended; procedure Calc_Calendar_date_julian(juldat:extended; var year,month,day:word); procedure Calc_Calendar_date_gregorian(juldat:extended; var year,month,day:word); procedure Calc_Calendar_date_switch(juldat:extended; var year,month,day:word; switch_date:extended); procedure Calc_Calendar_date(juldat:extended; var year,month,day:word); { corrected TDateTime functions } function isleapyearcorrect(year:word):boolean; function EncodedateCorrect(year,month,day: word):TDateTime; procedure DecodedateCorrect(date:TDateTime; var year,month,day: word); procedure DecodetimeCorrect(date:TDateTime; var hour,min,sec,msec: word); function FalsifyTdateTime(date:TDateTime):TdateTime; { Sun and Moon } function sun_distance(date:TDateTime): extended; function moon_distance(date:TDateTime): extended; function age_of_moon(date:TDateTime): extended; function last_phase(date:TDateTime; phase:TMoonPhase):TDateTime; function next_phase(date:TDateTime; phase:TMoonPhase):TDateTime; function nearest_phase(date: TDateTime):TMoonPhase; function next_blue_moon(date: TDateTime):TDateTime; function is_blue_moon(lunation: integer):boolean; function moon_phase_angle(date: TDateTime):extended; function current_phase(date:TDateTime):extended; function lunation(date:TDateTime):integer; function sun_diameter(date:TDateTime):extended; function moon_diameter(date:TDateTime):extended; function Sun_Rise(date:TDateTime; latitude, longitude:extended):TDateTime; function Sun_Set(date:TDateTime; latitude, longitude:extended):TDateTime; function Sun_Transit(date:TDateTime; latitude, longitude:extended):TDateTime; function Morning_Twilight_Civil(date:TDateTime; latitude, longitude:extended):TDateTime; function Evening_Twilight_Civil(date:TDateTime; latitude, longitude:extended):TDateTime; function Morning_Twilight_Nautical(date:TDateTime; latitude, longitude:extended):TDateTime; function Evening_Twilight_Nautical(date:TDateTime; latitude, longitude:extended):TDateTime; function Morning_Twilight_Astronomical(date:TDateTime; latitude, longitude:extended):TDateTime; function Evening_Twilight_Astronomical(date:TDateTime; latitude, longitude:extended):TDateTime; function Moon_Rise(date:TDateTime; latitude, longitude:extended):TDateTime; function Moon_Set(date:TDateTime; latitude, longitude:extended):TDateTime; function Moon_Transit(date:TDateTime; latitude, longitude:extended):TDateTime; function nextperigee(date:TDateTime):TDateTime; function nextapogee(date:TDateTime):TDateTime; function nextperihel(date:TDateTime):TDateTime; function nextaphel(date:TDateTime):TDateTime; function NextEclipse(var date:TDateTime; sun:boolean):TEclipse; procedure Moon_Position_Horizontal(date:TdateTime; longitude,latitude: extended; var elevation,azimuth: extended); procedure Sun_Position_Horizontal(date:TdateTime; longitude,latitude: extended; var elevation,azimuth: extended); { Further useful functions } function star_time(date:TDateTime):extended; function StartSeason(year: integer; season:TSeason):TDateTime; function CalcSolarTerm(year: integer; term: TSolarTerm):TDateTime; { Chinese calendar } function ChineseNewYear(year: integer): TDateTime; function ChineseDate(date: TdateTime): TChineseDate; function EncodeDateChinese(date:TChineseDate):TDateTime; (*@\\\0000000301*) (*@/// implementation *) implementation (*$undef low_accuracy *) const AU=149597869; (* astronomical unit in km *) mean_lunation=29.530589; (* Mean length of a month *) tropic_year=365.242190; (* Tropic year length *) earth_radius=6378.15; (* Radius of the earth *) (*$ifdef delphi_ge_3 *) var (*$else *) const (*$endif *) (* Shortcuts to avoid calling Encodedate too often *) datetime_2000_01_01: extended = 0; datetime_1999_01_01: extended = 0; datetime_chinese_epoch: extended = 0; datetime_first_lunation: extended = 0; julian_offset: extended = 0; (* How broken is the TDateTime? *) negative_dates_broken: boolean = false; calendar_reform_supported: boolean = true; julian_calendar_before_1582: boolean = true; const beijing_longitude = -(116+25/60); type (*@/// t_coord = record *) t_coord = record longitude, latitude, radius: extended; (* lambda, beta, R *) rektaszension, declination: extended; (* alpha, delta *) parallax: extended; elevation, azimuth: extended; (* h, A *) end; (*@\\\*) T_RiseSet=(_rise,_set,_transit,_rise_civil,_rise_nautical,_rise_astro,_set_civil,_set_nautical,_set_astro); TJewishYearStyle=(ys_common_deficient,ys_common_regular,ys_common_complete, ys_leap_deficient,ys_leap_regular,ys_leap_complete); const (*@/// Jewish_Month_length:array[1..13,TJewishYearStyle] of shortint *) Jewish_Month_length:array[1..13,TJewishYearStyle] of word = ( ( 30,30,30,30,30,30), ( 29,29,29,29,29,29), ( 30,30,30,30,30,30), ( 29,29,29,29,29,29), ( 30,30,30,30,30,30), ( 29,29,29,29,29,29), ( 30,30,30,30,30,30), ( 29,29,30,29,29,30), ( 29,30,30,29,30,30), ( 29,29,29,29,29,29), ( 30,30,30,30,30,30), ( 29,29,29,30,30,30), ( 0, 0, 0,29,29,29) ); (*@\\\*) (*@/// Jewish_Month_Name_short:array[1..13] of string *) Jewish_Month_Name_short:array[1..13] of string = ( 'Nis', 'Iya', 'Siv', 'Tam', 'Av' , 'Elu', 'Tis', 'Hes', 'Kis', 'Tev', 'She', 'Ada', 'Ad2' ); (*@\\\*) Jewish_year_length:array[TJewishYearStyle] of integer = (353,354,355,383,384,385); { Julian date } (*@/// function julian_date(date:TDateTime):extended; *) function julian_date(date:TDateTime):extended; begin julian_date:=julian_offset+date end; (*@\\\*) (*@/// function delphi_date(juldat:extended):TDateTime; *) function delphi_date(juldat:extended):TDateTime; begin delphi_date:=juldat-julian_offset; end; (*@\\\*) (*@/// function isleapyearcorrect(year:word):boolean; *) function isleapyearcorrect(year:word):boolean; begin if year<=1582 then result:=((year mod 4)=0) else result:=(((year mod 4)=0) and ((year mod 100)<>0)) or ((year mod 400)=0); end; (*@\\\*) (*@/// function Calc_Julian_date_julian(year,month,day:word):extended; *) function Calc_Julian_date_julian(year,month,day:word):extended; begin if (year<1) or (year>9999) then raise EConvertError.Create('Invalid year'); if month<3 then begin month:=month+12; year:=year-1; end; case month of 3,5,7,8,10,12,13: if (day<1) or (day>31) then EConvertError.Create('Invalid day'); 4,6,9,11: if (day<1) or (day>30) then EConvertError.Create('Invalid day'); 14: case day of 1..28: ; 29: if (year+1) mod 4<>0 then EConvertError.Create('Invalid day'); else EConvertError.Create('Invalid day'); end; else raise EConvertError.Create('Invalid month'); end; result:=trunc(365.25*(year+4716))+trunc(30.6001*(month+1))+day-1524.5; end; (*@\\\*) (*@/// function Calc_Julian_date_gregorian(year,month,day:word):extended; *) function Calc_Julian_date_gregorian(year,month,day:word):extended; var a,b: longint; begin if (year<1) or (year>9999) then raise EConvertError.Create('Invalid year'); if month<3 then begin month:=month+12; year:=year-1; end; a:=year div 100; case month of 3,5,7,8,10,12,13: if (day<1) or (day>31) then EConvertError.Create('Invalid day'); 4,6,9,11: if (day<1) or (day>30) then EConvertError.Create('Invalid day'); 14: case day of 1..28: ; 29: if (((year mod 4)<>0) or ((year mod 100)=0)) and ((year mod 400)<>0) then EConvertError.Create('Invalid day'); else EConvertError.Create('Invalid day'); end; else raise EConvertError.Create('Invalid month'); end; b:=2-a+(a div 4); result:=trunc(365.25*(year+4716))+trunc(30.6001*(month+1))+day+b-1524.5; end; (*@\\\*) (*@/// function Calc_Julian_date_switch(year,month,day:word; switch_date:extended):extended; *) function Calc_Julian_date_switch(year,month,day:word; switch_date:extended):extended; begin result:=Calc_Julian_date_julian(year,month,day); if result>=switch_date then begin result:=Calc_Julian_date_gregorian(year,month,day); if result12; (*$endif delphi_1 *) d1:=EncodeDate(1582,10,15); d2:=EncodeDate(1582,10,4); calendar_reform_supported:=((d1-d2)=1); d1:=EncodeDate(1500,3,1); d2:=EncodeDate(1500,2,28); julian_calendar_before_1582:=((d1-d2)=2); end; (*@\\\0000001107*) (*@/// function EncodedateCorrect(year,month,day: word):TDateTime; *) function EncodedateCorrect(year,month,day: word):TDateTime; begin result:=delphi_date(Calc_Julian_date(year,month,day)); end; (*@\\\*) (*@/// procedure DecodedateCorrect(date:TDateTime; var year,month,day: word); *) procedure DecodedateCorrect(date:TDateTime; var year,month,day: word); begin Calc_Calendar_date(julian_date(date),year,month,day); end; (*@\\\*) (*@/// procedure DecodetimeCorrect(date:TDateTime; var hour,min,sec,msec: word); *) procedure DecodetimeCorrect(date:TDateTime; var hour,min,sec,msec: word); begin Decodetime(1+frac(date),hour,min,sec,msec); end; (*@\\\*) (*@/// function FalsifyTdateTime(date:TDateTime):TdateTime; *) function FalsifyTdateTime(date:TDateTime):TdateTime; var d: word = 0; m: word = 0; y: word = 0; begin DecodedateCorrect(date,d,m,y); result:=Encodedate(d,m,y); result:=result+frac(date); if negative_dates_broken and (result<0) and (frac(result)<>0) then result:=int(result)-(1-abs(frac(result))); end; (*@\\\*) { Calendar functions } (*@/// function WeekNumber(date:TDateTime):integer; *) function WeekNumber(date:TDateTime):integer; var y: word = 0; m: word = 0; d: word = 0; h: integer; FirstofJanuary, FirstThursday, FirstWeekStart: TDateTime; begin DecodedateCorrect(date,y,m,d); FirstofJanuary:=EncodedateCorrect(y,1,1); h:=dayOfWeek(FirstofJanuary); FirstThursday:=FirstofJanuary+((12-h) mod 7); FirstWeekStart:=FirstThursday-3; if trunc(date)10) then day:=18; result:=EncodedateCorrect(year,month,day); end; (*@\\\*) (*@/// function EasterDate(year:integer):TDateTime; *) function EasterDate(year:integer):TDateTime; begin if year<1583 then result:=EasterDateJulian(year) else result:=EasterDateGregorian(year); end; (*@\\\*) (*@/// function EasterDateJulian(year:integer):TDateTime; *) function EasterDateJulian(year:integer):TDateTime; var a,b,c,d,e,f,g: integer; begin a:=year mod 4; b:=year mod 7; c:=year mod 19; d:=(19*c+15) mod 30; e:=(2*a+4*b-d+34) mod 7; f:=(d+e+114) div 31; g:=(d+e+114) mod 31; result:=EncodedateCorrect(year,f,g+1); end; (*@\\\*) (*@/// function PesachDate(year:integer):TDateTime; *) function PesachDate(year:integer):TDateTime; var a,b,c,d,j,s: integer; q,r: extended; begin if year<359 then raise E_OutOfAlgorithmRange.Create('Out of range of the algorithm'); c:=year div 100; if year<1583 then s:=0 else s:=(3*c-5) div 4; a:=(12*year+12) mod 19; b:=year mod 4; q:=-1.904412361576+1.554241796621*a+0.25*b-0.003177794022*year+s; j:=(trunc(q)+3*year+5*b+2-s) mod 7; r:=frac(q); if false then else if j in [2,4,6] then d:=trunc(q)+23 else if (j=1) and (a>6) and (r>=0.632870370) then d:=trunc(q)+24 else if (j=0) and (a>11) and (r>=0.897723765) then d:=trunc(q)+23 else d:=trunc(q)+22; if d>31 then result:=EncodedateCorrect(year,4,d-31) else result:=EncodedateCorrect(year,3,d); end; (*@\\\*) (*@/// function JewishYearStyle(year:word):TJewishYearStyle; *) function JewishYearStyle(year:word):TJewishYearStyle; var i: TJewishYearStyle; yearlength: integer; begin yearlength:=round(pesachdate(year-3760)-pesachdate(year-3761)); result:=low(TJewishYearStyle); for i:=low(TJewishYearStyle) to high(TJewishYearStyle) do if yearlength=Jewish_year_length[i] then result:=i; end; (*@\\\*) (*@/// function EncodeDateJewish(year,month,day: word):TDateTime; *) function EncodeDateJewish(year,month,day: word):TDateTime; var yearstyle: TJewishYearStyle; offset,i: integer; begin yearstyle:=JewishYearStyle(year); if (month<1) or (month>13) then raise EConvertError.Create('Invalid month'); if (month=13) and (yearstyle in [ys_common_deficient,ys_common_regular,ys_common_complete]) then raise EConvertError.Create('Invalid month'); if (day<1) or (day>Jewish_Month_length[month,yearstyle]) then raise EConvertError.Create('Invalid day'); offset:=day-1; (* count months from tishri *) month:=(month+6) mod 13 +1; for i:=1 to month-1 do offset:=offset+Jewish_Month_length[(i+5) mod 13 +1,yearstyle]; result:=pesachdate(year-3761)+163+offset; end; (*@\\\*) (*@/// procedure DecodeDateJewish(date: TDateTime; var year,month,day: word); *) procedure DecodeDateJewish(date: TDateTime; var year,month,day: word); var year_g: word = 0; month_g: word = 0; day_g: word = 0; yearstyle: TJewishYearStyle; tishri1: TDateTime; begin DecodedateCorrect(date,year_g,month_g,day_g); tishri1:=pesachdate(year_g)+163; if tishri1>date then begin tishri1:=pesachdate(year_g-1)+163; year:=year_g+3760; end else year:=year_g+3761; yearstyle:=JewishYearStyle(year); month:=7; day:=round(date-tishri1+1); while day>Jewish_Month_length[month,yearstyle] do begin dec(day,Jewish_Month_length[month,yearstyle]); month:=(month mod 13) +1; end; end; (*@\\\*) { Misc } (*@/// procedure calc_epsilon_phi(date:TDateTime; var delta_phi,epsilon:extended); *) procedure calc_epsilon_phi(date:TDateTime; var delta_phi,epsilon:extended); (*$ifndef low_accuracy *) const (*@/// arg_mul:array[0..30,0..4] of shortint = (..); *) arg_mul:array[0..30,0..4] of shortint = ( ( 0, 0, 0, 0, 1), (-2, 0, 0, 2, 2), ( 0, 0, 0, 2, 2), ( 0, 0, 0, 0, 2), ( 0, 1, 0, 0, 0), ( 0, 0, 1, 0, 0), (-2, 1, 0, 2, 2), ( 0, 0, 0, 2, 1), ( 0, 0, 1, 2, 2), (-2,-1, 0, 2, 2), (-2, 0, 1, 0, 0), (-2, 0, 0, 2, 1), ( 0, 0,-1, 2, 2), ( 2, 0, 0, 0, 0), ( 0, 0, 1, 0, 1), ( 2, 0,-1, 2, 2), ( 0, 0,-1, 0, 1), ( 0, 0, 1, 2, 1), (-2, 0, 2, 0, 0), ( 0, 0,-2, 2, 1), ( 2, 0, 0, 2, 2), ( 0, 0, 2, 2, 2), ( 0, 0, 2, 0, 0), (-2, 0, 1, 2, 2), ( 0, 0, 0, 2, 0), (-2, 0, 0, 2, 0), ( 0, 0,-1, 2, 1), ( 0, 2, 0, 0, 0), ( 2, 0,-1, 0, 1), (-2, 2, 0, 2, 2), ( 0, 1, 0, 0, 1) ); (*@\\\*) (*@/// arg_phi:array[0..30,0..1] of longint = (); *) arg_phi:array[0..30,0..1] of longint = ( (-171996,-1742), ( -13187, -16), ( -2274, -2), ( 2062, 2), ( 1426, -34), ( 712, 1), ( -517, 12), ( -386, -4), ( -301, 0), ( 217, -5), ( -158, 0), ( 129, 1), ( 123, 0), ( 63, 0), ( 63, 1), ( -59, 0), ( -58, -1), ( -51, 0), ( 48, 0), ( 46, 0), ( -38, 0), ( -31, 0), ( 29, 0), ( 29, 0), ( 26, 0), ( -22, 0), ( 21, 0), ( 17, -1), ( 16, 0), ( -16, 1), ( -15, 0) ); (*@\\\*) (*@/// arg_eps:array[0..30,0..1] of longint = (); *) arg_eps:array[0..30,0..1] of longint = ( ( 92025, 89), ( 5736, -31), ( 977, -5), ( -895, 5), ( 54, -1), ( -7, 0), ( 224, -6), ( 200, 0), ( 129, -1), ( -95, 3), ( 0, 0), ( -70, 0), ( -53, 0), ( 0, 0), ( -33, 0), ( 26, 0), ( 32, 0), ( 27, 0), ( 0, 0), ( -24, 0), ( 16, 0), ( 13, 0), ( 0, 0), ( -12, 0), ( 0, 0), ( 0, 0), ( -10, 0), ( 0, 0), ( -8, 0), ( 7, 0), ( 9, 0) ); (*@\\\*) (*$endif *) var t,omega: extended; (*$ifdef low_accuracy *) l,ls: extended; (*$else *) d,m,ms,f,s: extended; i: integer; (*$endif *) epsilon_0,delta_epsilon: extended; begin t:=(julian_date(date)-2451545.0)/36525; (* longitude of rising knot *) omega:=put_in_360(125.04452+(-1934.136261+(0.0020708+1/450000*t)*t)*t); (*$ifdef low_accuracy *) (*@/// delta_phi and delta_epsilon - low accuracy *) (* mean longitude of sun (l) and moon (ls) *) l:=280.4665+36000.7698*t; ls:=218.3165+481267.8813*t; (* correction due to nutation *) delta_epsilon:=9.20*cos_d(omega)+0.57*cos_d(2*l)+0.10*cos_d(2*ls)-0.09*cos_d(2*omega); (* longitude correction due to nutation *) delta_phi:=(-17.20*sin_d(omega)-1.32*sin_d(2*l)-0.23*sin_d(2*ls)+0.21*sin_d(2*omega))/3600; (*@\\\*) (*$else *) (*@/// delta_phi and delta_epsilon - higher accuracy *) (* mean elongation of moon to sun *) d:=put_in_360(297.85036+(445267.111480+(-0.0019142+t/189474)*t)*t); (* mean anomaly of the sun *) m:=put_in_360(357.52772+(35999.050340+(-0.0001603-t/300000)*t)*t); (* mean anomly of the moon *) ms:=put_in_360(134.96298+(477198.867398+(0.0086972+t/56250)*t)*t); (* argument of the latitude of the moon *) f:=put_in_360(93.27191+(483202.017538+(-0.0036825+t/327270)*t)*t); delta_phi:=0; delta_epsilon:=0; for i:=0 to 30 do begin s:= arg_mul[i,0]*d +arg_mul[i,1]*m +arg_mul[i,2]*ms +arg_mul[i,3]*f +arg_mul[i,4]*omega; delta_phi:=delta_phi+(arg_phi[i,0]+arg_phi[i,1]*t*0.1)*sin_d(s); delta_epsilon:=delta_epsilon+(arg_eps[i,0]+arg_eps[i,1]*t*0.1)*cos_d(s); end; delta_phi:=delta_phi*0.0001/3600; delta_epsilon:=delta_epsilon*0.0001/3600; (*@\\\*) (*$endif *) (* angle of ecliptic *) epsilon_0:=84381.448+(-46.8150+(-0.00059+0.001813*t)*t)*t; epsilon:=(epsilon_0+delta_epsilon)/3600; end; (*@\\\0000000A0A*) (*@/// function star_time(date:TDateTime):extended; // degrees *) function star_time(date:TDateTime):extended; var jd, t: extended; delta_phi: extended = 0; epsilon: extended = 0; begin jd:=julian_date(date); t:=(jd-2451545.0)/36525; calc_epsilon_phi(date,delta_phi,epsilon); result:=put_in_360(280.46061837+360.98564736629*(jd-2451545.0)+ t*t*(0.000387933-t/38710000)+ delta_phi*cos_d(epsilon) ); end; (*@\\\*) { Coordinate functions } (*@/// procedure calc_geocentric(var coord:t_coord; date:TDateTime); *) { Based upon Chapter 13 (12) and 22 (21) of Meeus } procedure calc_geocentric(var coord:t_coord; date:TDateTime); var epsilon: extended = 0; delta_phi: extended = 0; alpha,delta: extended; begin calc_epsilon_phi(date,delta_phi,epsilon); coord.longitude:=put_in_360(coord.longitude+delta_phi); (* geocentric coordinates *) { alpha:=arctan2_d(cos_d(epsilon)*sin_d(o),cos_d(o)); } { delta:=arcsin_d(sin_d(epsilon)*sin_d(o)); } alpha:=arctan2_d( sin_d(coord.longitude)*cos_d(epsilon) -tan_d(coord.latitude)*sin_d(epsilon) ,cos_d(coord.longitude)); delta:=arcsin_d( sin_d(coord.latitude)*cos_d(epsilon) +cos_d(coord.latitude)*sin_d(epsilon)*sin_d(coord.longitude)); coord.rektaszension:=alpha; coord.declination:=delta; end; (*@\\\0000000129*) (*@/// procedure calc_horizontal(var coord:t_coord; date:TDateTime longitude,latitude: extended); *) procedure calc_horizontal(var coord:t_coord; date:TDateTime; longitude,latitude: extended); var h: extended; begin h:=put_in_360(star_time(date)-coord.rektaszension-longitude); coord.azimuth:=arctan2_d(sin_d(h), cos_d(h)*sin_d(latitude)- tan_d(coord.declination)*cos_d(latitude) ); coord.elevation:=arcsin_d(sin_d(latitude)*sin_d(coord.declination)+ cos_d(latitude)*cos_d(coord.declination)*cos_d(h)); end; (*@\\\*) (*@/// function sun_coordinate(date:TDateTime):t_coord; *) { Based upon Chapter 25 (24) of Meeus - low accurancy } (*@/// function sun_coordinate_low(date:TDateTime):t_coord; *) function sun_coordinate_low(date:TDateTime):t_coord; var t,e,m,c,nu: extended; l0,o,omega,lambda: extended; begin t:=(julian_date(date)-2451545.0)/36525; (* geometrical mean longitude of the sun *) l0:=280.46645+(36000.76983+0.0003032*t)*t; (* excentricity of the earth orbit *) e:=0.016708617+(-0.000042037-0.0000001236*t)*t; (* mean anomaly of the sun *) m:=357.52910+(35999.05030-(0.0001559+0.00000048*t)*t)*t; (* mean point of sun *) c:= (1.914600+(-0.004817-0.000014*t)*t)*sin_d(m) +(0.019993-0.000101*t)*sin_d(2*m) +0.000290*sin_d(3*m); (* true longitude of the sun *) o:=put_in_360(l0+c); (* true anomaly of the sun *) nu:=m+c; (* distance of the sun in km *) result.radius:=(1.000001018*(1-e*e))/(1+e*cos_d(nu))*AU; (* apparent longitude of the sun *) omega:=125.04452+(-1934.136261+(0.0020708+1/450000*t)*t)*t; lambda:=put_in_360(o-0.00569-0.00478*sin_d(omega) -20.4898/3600/(result.radius/AU)); result.longitude:=lambda; result.latitude:=0; calc_geocentric(result,date); end; (*@\\\*) (*@/// function sun_coordinate(date:TDateTime):t_coord; *) function sun_coordinate(date:TDateTime):t_coord; var l: extended = 0; b: extended = 0; r: extended = 0; lambda,t: extended; begin earth_coord(date,l,b,r); (* convert earth coordinate to sun coordinate *) l:=l+180; b:=-b; (* conversion to FK5 *) t:=(julian_date(date)-2451545.0)/365250.0*10; lambda:=l+(-1.397-0.00031*t)*t; l:=l-0.09033/3600; b:=b+0.03916/3600*(cos_d(lambda)-sin_d(lambda)); (* aberration *) l:=l-20.4898/3600/r; (* correction of nutation - is done inside calc_geocentric *) { calc_epsilon_phi(date,delta_phi,epsilon); } { l:=l+delta_phi; } (* fill result and convert to geocentric *) result.longitude:=put_in_360(l); result.latitude:=b; result.radius:=r*AU; calc_geocentric(result,date); end; (*@\\\*) (*@\\\0000000126*) (*@/// function moon_coordinate(date:TDateTime):t_coord; *) { Based upon Chapter 47 (45) of Meeus } function moon_coordinate(date:TDateTime):t_coord; const (*@/// arg_lr:array[0..59,0..3] of shortint = (..); *) arg_lr:array[0..59,0..3] of shortint = ( ( 0, 0, 1, 0), ( 2, 0,-1, 0), ( 2, 0, 0, 0), ( 0, 0, 2, 0), ( 0, 1, 0, 0), ( 0, 0, 0, 2), ( 2, 0,-2, 0), ( 2,-1,-1, 0), ( 2, 0, 1, 0), ( 2,-1, 0, 0), ( 0, 1,-1, 0), ( 1, 0, 0, 0), ( 0, 1, 1, 0), ( 2, 0, 0,-2), ( 0, 0, 1, 2), ( 0, 0, 1,-2), ( 4, 0,-1, 0), ( 0, 0, 3, 0), ( 4, 0,-2, 0), ( 2, 1,-1, 0), ( 2, 1, 0, 0), ( 1, 0,-1, 0), ( 1, 1, 0, 0), ( 2,-1, 1, 0), ( 2, 0, 2, 0), ( 4, 0, 0, 0), ( 2, 0,-3, 0), ( 0, 1,-2, 0), ( 2, 0,-1, 2), ( 2,-1,-2, 0), ( 1, 0, 1, 0), ( 2,-2, 0, 0), ( 0, 1, 2, 0), ( 0, 2, 0, 0), ( 2,-2,-1, 0), ( 2, 0, 1,-2), ( 2, 0, 0, 2), ( 4,-1,-1, 0), ( 0, 0, 2, 2), ( 3, 0,-1, 0), ( 2, 1, 1, 0), ( 4,-1,-2, 0), ( 0, 2,-1, 0), ( 2, 2,-1, 0), ( 2, 1,-2, 0), ( 2,-1, 0,-2), ( 4, 0, 1, 0), ( 0, 0, 4, 0), ( 4,-1, 0, 0), ( 1, 0,-2, 0), ( 2, 1, 0,-2), ( 0, 0, 2,-2), ( 1, 1, 1, 0), ( 3, 0,-2, 0), ( 4, 0,-3, 0), ( 2,-1, 2, 0), ( 0, 2, 1, 0), ( 1, 1,-1, 0), ( 2, 0, 3, 0), ( 2, 0,-1,-2) ); (*@\\\*) (*@/// arg_b:array[0..59,0..3] of shortint = (); *) arg_b:array[0..59,0..3] of shortint = ( ( 0, 0, 0, 1), ( 0, 0, 1, 1), ( 0, 0, 1,-1), ( 2, 0, 0,-1), ( 2, 0,-1, 1), ( 2, 0,-1,-1), ( 2, 0, 0, 1), ( 0, 0, 2, 1), ( 2, 0, 1,-1), ( 0, 0, 2,-1), (* !!! Error in German Meeus *) ( 2,-1, 0,-1), ( 2, 0,-2,-1), ( 2, 0, 1, 1), ( 2, 1, 0,-1), ( 2,-1,-1, 1), ( 2,-1, 0, 1), ( 2,-1,-1,-1), ( 0, 1,-1,-1), ( 4, 0,-1,-1), ( 0, 1, 0, 1), ( 0, 0, 0, 3), ( 0, 1,-1, 1), ( 1, 0, 0, 1), ( 0, 1, 1, 1), ( 0, 1, 1,-1), ( 0, 1, 0,-1), ( 1, 0, 0,-1), ( 0, 0, 3, 1), ( 4, 0, 0,-1), ( 4, 0,-1, 1), ( 0, 0, 1,-3), ( 4, 0,-2, 1), ( 2, 0, 0,-3), ( 2, 0, 2,-1), ( 2,-1, 1,-1), ( 2, 0,-2, 1), ( 0, 0, 3,-1), ( 2, 0, 2, 1), ( 2, 0,-3,-1), ( 2, 1,-1, 1), ( 2, 1, 0, 1), ( 4, 0, 0, 1), ( 2,-1, 1, 1), ( 2,-2, 0,-1), ( 0, 0, 1, 3), ( 2, 1, 1,-1), ( 1, 1, 0,-1), ( 1, 1, 0, 1), ( 0, 1,-2,-1), ( 2, 1,-1,-1), ( 1, 0, 1, 1), ( 2,-1,-2,-1), ( 0, 1, 2, 1), ( 4, 0,-2,-1), ( 4,-1,-1,-1), ( 1, 0, 1,-1), ( 4, 0, 1,-1), ( 1, 0,-1,-1), ( 4,-1, 0,-1), ( 2,-2, 0, 1) ); (*@\\\*) (*@/// sigma_r: array[0..59] of longint = (..); *) sigma_r: array[0..59] of longint = ( -20905355, -3699111, -2955968, -569925, 48888, -3149, 246158, -152138, -170733, -204586, -129620, 108743, 104755, 10321, 0, 79661, -34782, -23210, -21636, 24208, 30824, -8379, -16675, -12831, -10445, -11650, 14403, -7003, 0, 10056, 6322, -9884, 5751, 0, -4950, 4130, 0, -3958, 0, 3258, 2616, -1897, -2117, 2354, 0, 0, -1423, -1117, -1571, -1739, 0, -4421, 0, 0, 0, 0, 1165, 0, 0, 8752 ); (*@\\\*) (*@/// sigma_l: array[0..59] of longint = (..); *) sigma_l: array[0..59] of longint = ( 6288774, 1274027, 658314, 213618, -185116, -114332, 58793, 57066, 53322, 45758, -40923, -34720, -30383, 15327, -12528, 10980, 10675, 10034, 8548, -7888, -6766, -5163, 4987, 4036, 3994, 3861, 3665, -2689, -2602, 2390, -2348, 2236, -2120, -2069, 2048, -1773, -1595, 1215, -1110, -892, -810, 759, -713, -700, 691, 596, 549, 537, 520, -487, -399, -381, 351, -340, 330, 327, -323, 299, 294, 0 ); (*@\\\*) (*@/// sigma_b: array[0..59] of longint = (..); *) sigma_b: array[0..59] of longint = ( 5128122, 280602, 277693, 173237, 55413, 46271, 32573, 17198, 9266, 8822, 8216, 4324, 4200, -3359, 2463, 2211, 2065, -1870, 1828, -1794, -1749, -1565, -1491, -1475, -1410, -1344, -1335, 1107, 1021, 833, 777, 671, 607, 596, 491, -451, 439, 422, 421, -366, -351, 331, 315, 302, -283, -229, 223, 223, -220, -220, -185, 181, -177, 176, 166, -164, 132, -119, 115, 107 ); (*@\\\*) var t,d,m,ms,f,e,ls : extended; sr,sl,sb,temp: extended; a1,a2,a3: extended; lambda,beta,delta: extended; i: integer; begin t:=(julian_date(date)-2451545)/36525; (* mean elongation of the moon *) d:=297.8502042+(445267.1115168+(-0.0016300+(1/545868-1/113065000*t)*t)*t)*t; (* mean anomaly of the sun *) m:=357.5291092+(35999.0502909+(-0.0001536+1/24490000*t)*t)*t; (* mean anomaly of the moon *) ms:=134.9634114+(477198.8676313+(0.0089970+(1/69699-1/1471200*t)*t)*t)*t; (* argument of the longitude of the moon *) f:=93.2720993+(483202.0175273+(-0.0034029+(-1/3526000+1/863310000*t)*t)*t)*t; (* correction term due to excentricity of the earth orbit *) e:=1.0+(-0.002516-0.0000074*t)*t; (* mean longitude of the moon *) ls:=218.3164591+(481267.88134236+(-0.0013268+(1/538841-1/65194000*t)*t)*t)*t; (* arguments of correction terms *) a1:=119.75+131.849*t; a2:=53.09+479264.290*t; a3:=313.45+481266.484*t; (*@/// sr := r_i cos(d,m,ms,f); !!! gives different value than in Meeus *) sr:=0; for i:=0 to 59 do begin temp:=sigma_r[i]*cos_d( arg_lr[i,0]*d +arg_lr[i,1]*m +arg_lr[i,2]*ms +arg_lr[i,3]*f); if abs(arg_lr[i,1])=1 then temp:=temp*e; if abs(arg_lr[i,1])=2 then temp:=temp*e*e; sr:=sr+temp; end; (*@\\\*) (*@/// sl := l_i sin(d,m,ms,f); *) sl:=0; for i:=0 to 59 do begin temp:=sigma_l[i]*sin_d( arg_lr[i,0]*d +arg_lr[i,1]*m +arg_lr[i,2]*ms +arg_lr[i,3]*f); if abs(arg_lr[i,1])=1 then temp:=temp*e; if abs(arg_lr[i,1])=2 then temp:=temp*e*e; sl:=sl+temp; end; (* correction terms *) sl:=sl +3958*sin_d(a1) +1962*sin_d(ls-f) +318*sin_d(a2); (*@\\\*) (*@/// sb := b_i sin(d,m,ms,f); *) sb:=0; for i:=0 to 59 do begin temp:=sigma_b[i]*sin_d( arg_b[i,0]*d +arg_b[i,1]*m +arg_b[i,2]*ms +arg_b[i,3]*f); if abs(arg_b[i,1])=1 then temp:=temp*e; if abs(arg_b[i,1])=2 then temp:=temp*e*e; sb:=sb+temp; end; (* correction terms *) sb:=sb -2235*sin_d(ls) +382*sin_d(a3) +175*sin_d(a1-f) +175*sin_d(a1+f) +127*sin_d(ls-ms) -115*sin_d(ls+ms); (*@\\\*) lambda:=ls+sl/1000000; beta:=sb/1000000; delta:=385000.56+sr/1000; result.radius:=delta; result.longitude:=lambda; result.latitude:=beta; calc_geocentric(result,date); end; (*@\\\000000011D*) (*@/// procedure correct_position(var position:t_coord; date:TDateTime; ...); *) { Based upon chapter 40 (39) of Meeus } procedure correct_position(var position:t_coord; date:TDateTime; latitude,longitude,height:extended); var u,h,delta_alpha: extended; rho_sin, rho_cos: extended; const b_a=0.99664719; begin u:=arctan_d(b_a*b_a*tan_d(latitude)); rho_sin:=b_a*sin_d(u)+height/6378140*sin_d(latitude); rho_cos:=cos_d(u)+height/6378140*cos_d(latitude); position.parallax:=arcsin_d(sin_d(8.794/3600)/(moon_distance(date)/AU)); h:=star_time(date)-longitude-position.rektaszension; delta_alpha:=arctan_d( (-rho_cos*sin_d(position.parallax)*sin_d(h))/ (cos_d(position.declination)- rho_cos*sin_d(position.parallax)*cos_d(h))); position.rektaszension:=position.rektaszension+delta_alpha; position.declination:=arctan_d( (( sin_d(position.declination) -rho_sin*sin_d(position.parallax))*cos_d(delta_alpha))/ ( cos_d(position.declination) -rho_cos*sin_d(position.parallax)*cos_d(h))); end; (*@\\\000000011D*) { Moon phases and age of the moon } (*@/// procedure calc_phase_data(date:TDateTime; phase:TMoonPhase; var jde,kk,m,ms,f,o,e: extended); *) { Based upon Chapter 49 (47) of Meeus } { Both used for moon phases and moon and sun eclipses } procedure calc_phase_data(date:TDateTime; phase:TMoonPhase; var jde,kk,m,ms,f,o,e: extended); const phases = ord(high(TMoonPhase))+1; var t: extended; k: longint; ts: extended; begin k:=round((date-datetime_2000_01_01)/36525.0*1236.85); ts:=(date-datetime_2000_01_01)/36525.0; kk:=int(k)+ord(phase)/phases; t:=kk/1236.85; jde:=2451550.09765+29.530588853*kk +t*t*(0.0001337-t*(0.000000150-0.00000000073*t)); m:=2.5534+29.10535669*kk-t*t*(0.0000218+0.00000011*t); ms:=201.5643+385.81693528*kk+t*t*(0.1017438+t*(0.00001239-t*0.000000058)); f:= 160.7108+390.67050274*kk-t*t*(0.0016341+t*(0.00000227-t*0.000000011)); o:=124.7746-1.56375580*kk+t*t*(0.0020691+t*0.00000215); e:=1-ts*(0.002516+ts*0.0000074); end; (*@\\\0000000126*) (*@/// function nextphase_approx(date: TDateTime; phase:TMoonphase):TDateTime; *) function nextphase_approx(date: TDateTime; phase:TMoonphase):TDateTime; const epsilon = 1E-7; phases = ord(high(TMoonPhase))+1; var target_age: extended; h: extended; begin target_age:=ord(phase)*mean_lunation/phases; result:=date; repeat h:=age_of_moon(result)-target_age; if h>mean_lunation/2 then h:=h-mean_lunation; result:=result-h; until abs(h)date do begin result:=nextphase(temp_date,phase); if result=0 then raise E_OutOfAlgorithmRange.Create('No TDateTime possible'); temp_date:=temp_date-28; end; end; (*@\\\*) (*@/// function next_phase(date:TDateTime; phase:TMoonPhase):TDateTime; *) function next_phase(date:TDateTime; phase:TMoonPhase):TDateTime; var temp_date: TDateTime; begin temp_date:=date-28; result:=temp_date; while result27 then (* only chance for a blue moon anyway *) DecodeDateCorrect(last_phase(h-5,FullMoon)-timezonebias,y1,m1,d1) else m1:=0; until m=m1; result:=h; end; (*@\\\*) (*@/// function next_blue_moon(date: TDateTime):TDateTime; *) function next_blue_moon(date: TDateTime):TDateTime; begin result:=next_blue_moon_bias(date,0); end; (*@\\\*) (*@/// function is_blue_moon(lunation: integer):boolean; *) function is_blue_moon(lunation: integer):boolean; var date: TDateTime; begin date:=next_phase(datetime_first_lunation+(lunation-1)*mean_lunation-5,NewMoon); result:=((next_blue_moon(date)-date)180 then result:=-result; end; (*@\\\000000011D*) (*@/// function age_of_moon(date: TDateTime):extended; *) function age_of_moon(date: TDateTime):extended; var sun_coord,moon_coord: t_coord; begin sun_coord:=sun_coordinate(date); moon_coord:=moon_coordinate(date); result:=put_in_360(moon_coord.longitude-sun_coord.longitude)/360*mean_lunation; end; (*@\\\*) (*@/// function current_phase(date:TDateTime):extended; *) function current_phase(date:TDateTime):extended; begin result:=(1+cos_d(moon_phase_angle(date)))/2; end; (*@\\\*) (*@/// function lunation(date:TDateTime):integer; *) function lunation(date:TDateTime):integer; begin result:=round((last_phase(date,NewMoon)-datetime_first_lunation)/mean_lunation)+1; end; (*@\\\*) { The distances } (*@/// function sun_distance(date: TDateTime): extended; // AU *) function sun_distance(date: TDateTime): extended; begin result:=sun_coordinate(date).radius/au; end; (*@\\\*) (*@/// function moon_distance(date: TDateTime): extended; // km *) function moon_distance(date: TDateTime): extended; begin result:=moon_coordinate(date).radius; end; (*@\\\*) { The angular diameter (which is 0.5 of the subtent in moontool) } (*@/// function sun_diameter(date:TDateTime):extended; // angular seconds *) function sun_diameter(date:TDateTime):extended; begin result:=959.63/(sun_coordinate(date).radius/au)*2; end; (*@\\\*) (*@/// function moon_diameter(date:TDateTime):extended; // angular seconds *) function moon_diameter(date:TDateTime):extended; begin result:=358473400/moon_coordinate(date).radius*2; end; (*@\\\*) { Perigee and Apogee } (*@/// function nextXXXgee(date:TDateTime; apo: boolean):TDateTime; *) { Based upon Chapter 50 (48) of Meeus } function nextXXXgee(date:TDateTime; apo: boolean):TDateTime; const (*@/// arg_apo:array[0..31,0..2] of shortint = (..); *) arg_apo:array[0..31,0..2] of shortint = ( { D F M } ( 2, 0, 0), ( 4, 0, 0), ( 0, 0, 1), ( 2, 0,-1), ( 0, 2, 0), ( 1, 0, 0), ( 6, 0, 0), ( 4, 0,-1), ( 2, 2, 0), ( 1, 0, 1), ( 8, 0, 0), ( 6, 0,-1), ( 2,-2, 0), ( 2, 0,-2), ( 3, 0, 0), ( 4, 2, 0), ( 8, 0,-1), ( 4, 0,-2), (10, 0, 0), ( 3, 0, 1), ( 0, 0, 2), ( 2, 0, 1), ( 2, 0, 2), ( 6, 2, 0), ( 6, 0,-2), (10, 0,-1), ( 5, 0, 0), ( 4,-2, 0), ( 0, 2, 1), (12, 0, 0), ( 2, 2,-1), ( 1, 0,-1) ); (*@\\\*) (*@/// arg_per:array[0..59,0..2] of shortint = (..); *) arg_per:array[0..59,0..2] of shortint = ( { D F M } ( 2, 0, 0), ( 4, 0, 0), ( 6, 0, 0), ( 8, 0, 0), ( 2, 0,-1), ( 0, 0, 1), (10, 0, 0), ( 4, 0,-1), ( 6, 0,-1), (12, 0, 0), ( 1, 0, 0), ( 8, 0,-1), (14, 0, 0), ( 0, 2, 0), ( 3, 0, 0), (10, 0,-1), (16, 0, 0), (12, 0,-1), ( 5, 0, 0), ( 2, 2, 0), (18, 0, 0), (14, 0,-1), ( 7, 0, 0), ( 2, 1, 0), (20, 0, 0), ( 1, 0, 1), (16, 0,-1), ( 4, 0, 1), ( 2, 0,-2), ( 4, 0,-2), ( 6, 0,-2), (22, 0, 0), (18, 0,-1), ( 6, 0, 1), (11, 0, 0), ( 8, 0, 1), ( 4,-2, 0), ( 6, 2, 0), ( 3, 0, 1), ( 5, 0, 1), (13, 0, 0), (20, 0,-1), ( 3, 0, 2), ( 4, 2,-2), ( 1, 0, 2), (22, 0,-1), ( 0, 4, 0), ( 6,-2, 0), ( 2,-2, 1), ( 0, 0, 2), ( 0, 2,-1), ( 2, 4, 0), ( 0, 2,-2), ( 2,-2, 2), (24, 0, 0), ( 4,-4, 0), ( 9, 0, 0), ( 4, 2, 0), ( 2, 0, 2), ( 1, 0,-1) ); (*@\\\*) (*@/// koe_apo:array[0..31,0..1] of longint = (..); *) koe_apo:array[0..31,0..1] of longint = ( { 1 T } ( 4392, 0), ( 684, 0), ( 456,-11), ( 426,-11), ( 212, 0), ( -189, 0), ( 144, 0), ( 113, 0), ( 47, 0), ( 36, 0), ( 35, 0), ( 34, 0), ( -34, 0), ( 22, 0), ( -17, 0), ( 13, 0), ( 11, 0), ( 10, 0), ( 9, 0), ( 7, 0), ( 6, 0), ( 5, 0), ( 5, 0), ( 4, 0), ( 4, 0), ( 4, 0), ( -4, 0), ( -4, 0), ( 3, 0), ( 3, 0), ( 3, 0), ( -3, 0) ); (*@\\\*) (*@/// koe_per:array[0..59,0..1] of longint = (..); *) koe_per:array[0..59,0..1] of longint = ( { 1 T } (-16769, 0), ( 4589, 0), ( -1856, 0), ( 883, 0), ( -773, 19), ( 502,-13), ( -460, 0), ( 422,-11), ( -256, 0), ( 253, 0), ( 237, 0), ( 162, 0), ( -145, 0), ( 129, 0), ( -112, 0), ( -104, 0), ( 86, 0), ( 69, 0), ( 66, 0), ( -53, 0), ( -52, 0), ( -46, 0), ( -41, 0), ( 40, 0), ( 32, 0), ( -32, 0), ( 31, 0), ( -29, 0), ( -27, 0), ( 24, 0), ( -21, 0), ( -21, 0), ( -21, 0), ( 19, 0), ( -18, 0), ( -14, 0), ( -14, 0), ( -14, 0), ( 14, 0), ( -14, 0), ( 13, 0), ( 13, 0), ( 11, 0), ( -11, 0), ( -10, 0), ( -9, 0), ( -8, 0), ( 8, 0), ( 8, 0), ( 7, 0), ( 7, 0), ( 7, 0), ( -6, 0), ( -6, 0), ( 6, 0), ( 5, 0), ( 27, 0), ( 27, 0), ( 5, 0), ( -4, 0) ); (*@\\\*) var k, jde, t: extended; d,m,f,v: extended; i: integer; begin k:=round(((date-datetime_1999_01_01)/365.25-0.97)*13.2555); if apo then k:=k+0.5; t:=k/1325.55; jde:=2451534.6698+27.55454988*k+(-0.0006886+ (-0.000001098+0.0000000052*t)*t)*t*t; d:=171.9179+335.9106046*k+(-0.0100250+(-0.00001156+0.000000055*t)*t)*t*t; m:=347.3477+27.1577721*k+(-0.0008323-0.0000010*t)*t*t; f:=316.6109+364.5287911*k+(-0.0125131-0.0000148*t)*t*t; v:=0; if apo then for i:=0 to 31 do v:=v+sin_d(arg_apo[i,0]*d+arg_apo[i,1]*f+arg_apo[i,2]*m)* (koe_apo[i,0]*0.0001+koe_apo[i,1]*0.00001*t) else for i:=0 to 59 do v:=v+sin_d(arg_per[i,0]*d+arg_per[i,1]*f+arg_per[i,2]*m)* (koe_per[i,0]*0.0001+koe_per[i,1]*0.00001*t); result:=delphi_date(jde+v); end; (*@\\\000000011D*) (*@/// function nextperigee(date:TDateTime):TDateTime; *) function nextperigee(date:TDateTime):TDateTime; var temp_date: TDateTime; begin temp_date:=date-28; result:=temp_date; while result180 then result:=result-360; end; (*@\\\*) const epsilon = 3E-10; var degree: extended; coord: T_coord; begin degree:=15*ord(term); result:=tropic_year/24*ord(term)+31+28+21; (* approximate date of term *) if result>365 then result:=result+encodedate(year-1,1,1) else result:=result+encodedate(year,1,1); coord:=sun_coordinate(result); while abs(dist(coord.longitude,degree))>epsilon do begin result:=result+58*sin_d(degree-coord.longitude); coord:=sun_coordinate(result); end; end; (*@\\\*) (*@/// function StartSeason(year: integer; season:TSeason):TDateTime; *) (*$ifndef low_accuracy *) function StartSeason(year: integer; season:TSeason):TDateTime; begin result:=0; case season of spring: result:=CalcSolarTerm(year,st_z2); summer: result:=CalcSolarTerm(year,st_z5); autumn: result:=CalcSolarTerm(year,st_z8); winter: result:=CalcSolarTerm(year,st_z11); end; end; (*$else *) { Based upon chapter 27 (26) of Meeus } function StartSeason(year: integer; season:TSeason):TDateTime; var y: extended; jde0: extended; t, w, dl, s: extended; i: integer; const (*@/// a: array[0..23] of integer = (..); *) a: array[0..23] of integer = ( 485, 203, 199, 182, 156, 136, 77, 74, 70, 58, 52, 50, 45, 44, 29, 18, 17, 16, 14, 12, 12, 12, 9, 8 ); (*@\\\*) (*@/// bc:array[0..23,1..2] of extended = (..); *) bc:array[0..23,1..2] of extended = ( ( 324.96, 1934.136 ), ( 337.23, 32964.467 ), ( 342.08, 20.186 ), ( 27.85, 445267.112 ), ( 73.14, 45036.886 ), ( 171.52, 22518.443 ), ( 222.54, 65928.934 ), ( 296.72, 3034.906 ), ( 243.58, 9037.513 ), ( 119.81, 33718.147 ), ( 297.17, 150.678 ), ( 21.02, 2281.226 ), ( 247.54, 29929.562 ), ( 325.15, 31555.956 ), ( 60.93, 4443.417 ), ( 155.12, 67555.328 ), ( 288.79, 4562.452 ), ( 198.04, 62894.029 ), ( 199.76, 31436.921 ), ( 95.39, 14577.848 ), ( 287.11, 31931.756 ), ( 320.81, 34777.259 ), ( 227.73, 1222.114 ), ( 15.45, 16859.074 ) ); (*@\\\*) begin case year of (*@/// -1000..+999: *) -1000..+999: begin y:=year/1000; case season of spring: jde0:=1721139.29189+(365242.13740+( 0.06134+( 0.00111-0.00071*y)*y)*y)*y; summer: jde0:=1721233.25401+(365241.72562+(-0.05323+( 0.00907+0.00025*y)*y)*y)*y; autumn: jde0:=1721325.70455+(365242.49558+(-0.11677+(-0.00297+0.00074*y)*y)*y)*y; winter: jde0:=1721414.39987+(365242.88257+(-0.00769+(-0.00933-0.00006*y)*y)*y)*y; else jde0:=0; (* this can't happen *) end; end; (*@\\\*) (*@/// +1000..+3000: *) +1000..+3000: begin y:=(year-2000)/1000; case season of spring: jde0:=2451623.80984+(365242.37404+( 0.05169+(-0.00411-0.00057*y)*y)*y)*y; summer: jde0:=2451716.56767+(365241.62603+( 0.00325+( 0.00888-0.00030*y)*y)*y)*y; autumn: jde0:=2451810.21715+(365242.01767+(-0.11575+( 0.00337+0.00078*y)*y)*y)*y; winter: jde0:=2451900.05952+(365242.74049+(-0.06223+(-0.00823+0.00032*y)*y)*y)*y; else jde0:=0; (* this can't happen *) end; end; (*@\\\*) else raise E_OutOfAlgorithmRange.Create('Out of range of the algorithm'); end; t:=(jde0-2451545.0)/36525; w:=35999.373*t-2.47; dl:=1+0.0334*cos_d(w)+0.0007*cos_d(2*w); (*@/// s := a cos(b+c*t) *) s:=0; for i:=0 to 23 do s:=s+a[i]*cos_d(bc[i,1]+bc[i,2]*t); (*@\\\*) result:=delphi_date(jde0+(0.00001*s)/dl); end; (*$endif *) (*@\\\*) (*@/// function MajorSolarTerm(month: integer):TSolarTerm; *) function MajorSolarTerm(month: integer):TSolarTerm; var count: integer; begin count:=(month-2)*2 + ord(st_z1); result:=TSolarTerm(count mod 24); end; (*@\\\*) (*@/// function MajorSolarTermAfter(date: TDateTime):TDateTime; *) function MajorSolarTermAfter(date: TDateTime):TDateTime; var y: word = 0; m: word = 0; d: word = 0; begin DecodeDateCorrect(date,y,m,d); repeat result:=CalcSolarTerm(y,MajorSolarTerm(m)); inc(m); if m>12 then begin inc(y); m:=1; end; until result>=date; end; (*@\\\*) (*@/// function MajorSolarTermBefore(date: TDateTime):TDateTime; *) function MajorSolarTermBefore(date: TDateTime):TDateTime; var y: word = 0; m: word = 0; d: word = 0; begin DecodeDateCorrect(date,y,m,d); repeat result:=CalcSolarTerm(y,MajorSolarTerm(m)); dec(m); if m<1 then begin dec(y); m:=12; end; until result100 then a:=a-360; if a<-100 then a:=a+360; if b>100 then b:=b-360; if b<-100 then b:=b+360; c:=b-a; result:=y2+0.5*n*(a+b+n*c); end; (*@\\\*) (*@/// function correction(m:extended; kind:integer):extended; *) function correction(m:extended; kind:integer):extended; var alpha,delta,h, height: extended; begin alpha:=interpolation(pos1.rektaszension, pos2.rektaszension, pos3.rektaszension, m); delta:=interpolation(pos1.declination, pos2.declination, pos3.declination, m); h:=put_in_360((theta0+360.985647*m)-longitude-alpha); if h>180 then h:=h-360; height:=arcsin_d(sin_d(latitude)*sin_d(delta) +cos_d(latitude)*cos_d(delta)*cos_d(h)); case kind of 0: result:=-h/360; 1,2: result:=(height-h0)/(360*cos_d(delta)*cos_d(latitude)*sin_d(h)); else result:=0; (* this cannot happen *) end; end; (*@\\\*) const sun_diameter = 0.8333; civil_twilight_elevation = -6.0; nautical_twilight_elevation = -12.0; astronomical_twilight_elevation = -18.0; begin case kind of _rise, _set: begin if sun then h0:=-sun_diameter else begin pos1:=moon_coordinate(date); correct_position(pos1,date,latitude,longitude,0); h0:=0.7275*pos1.parallax-34/60; end; end; _rise_civil, _set_civil: h0:=civil_twilight_elevation; _rise_nautical, _set_nautical: h0:=nautical_twilight_elevation; _rise_astro, _set_astro: h0:=astronomical_twilight_elevation; else h0:=0; (* don't care for _transit *) end; h:=int(date); theta0:=star_time(h); if sun then begin pos1:=sun_coordinate(h-1); pos2:=sun_coordinate(h); pos3:=sun_coordinate(h+1); end else begin pos1:=moon_coordinate(h-1); correct_position(pos1,h-1,latitude,longitude,0); pos2:=moon_coordinate(h); correct_position(pos2,h,latitude,longitude,0); pos3:=moon_coordinate(h+1); correct_position(pos3,h+1,latitude,longitude,0); end; cos_h0:=(sin_d(h0)-sin_d(latitude)*sin_d(pos2.declination))/ (cos_d(latitude)*cos_d(pos2.declination)); if (cos_h0<-1) or (cos_h0>1) then raise E_NoRiseSet.Create('No rises or sets calculable'); cap_h0:=arccos_d(cos_h0); m0:=(pos2.rektaszension+longitude-theta0)/360; m1:=m0-cap_h0/360; m2:=m0+cap_h0/360; m0:=frac(m0); if m0<0 then m0:=m0+1; m1:=frac(m1); if m1<0 then m1:=m1+1; m2:=frac(m2); if m2<0 then m2:=m2+1; m0:=m0+correction(m0,0); m1:=m1+correction(m1,1); m2:=m2+correction(m2,2); case kind of _rise, _rise_civil, _rise_nautical, _rise_astro: result:=h+m1; _set, _set_civil, _set_nautical, _set_astro: result:=h+m2; _transit: result:=h+m0; else result:=0; (* this can't happen *) end; end; (*@\\\000000011D*) (*@/// function Sun_Rise(date:TDateTime; latitude, longitude:extended):TDateTime; *) function Sun_Rise(date:TDateTime; latitude, longitude:extended):TDateTime; begin result:=Calc_Set_Rise(date,latitude,longitude,true,_rise); end; (*@\\\*) (*@/// function Sun_Set(date:TDateTime; latitude, longitude:extended):TDateTime; *) function Sun_Set(date:TDateTime; latitude, longitude:extended):TDateTime; begin result:=Calc_Set_Rise(date,latitude,longitude,true,_set); end; (*@\\\*) (*@/// function Sun_Transit(date:TDateTime; latitude, longitude:extended):TDateTime; *) function Sun_Transit(date:TDateTime; latitude, longitude:extended):TDateTime; begin result:=Calc_Set_Rise(date,latitude,longitude,true,_transit); end; (*@\\\*) (*@/// function Moon_Rise(date:TDateTime; latitude, longitude:extended):TDateTime; *) function Moon_Rise(date:TDateTime; latitude, longitude:extended):TDateTime; begin result:=Calc_Set_Rise(date,latitude,longitude,false,_rise); end; (*@\\\*) (*@/// function Moon_Set(date:TDateTime; latitude, longitude:extended):TDateTime; *) function Moon_Set(date:TDateTime; latitude, longitude:extended):TDateTime; begin result:=Calc_Set_Rise(date,latitude,longitude,false,_set); end; (*@\\\*) (*@/// function Moon_Transit(date:TDateTime; latitude, longitude:extended):TDateTime; *) function Moon_Transit(date:TDateTime; latitude, longitude:extended):TDateTime; begin result:=Calc_Set_Rise(date,latitude,longitude,false,_transit); end; (*@\\\*) (*@/// function Morning_Twilight_Civil(date:TDateTime; latitude, longitude:extended):TDateTime; *) function Morning_Twilight_Civil(date:TDateTime; latitude, longitude:extended):TDateTime; begin result:=Calc_Set_Rise(date,latitude,longitude,true,_rise_civil); end; (*@\\\*) (*@/// function Evening_Twilight_Civil(date:TDateTime; latitude, longitude:extended):TDateTime; *) function Evening_Twilight_Civil(date:TDateTime; latitude, longitude:extended):TDateTime; begin result:=Calc_Set_Rise(date,latitude,longitude,true,_set_civil); end; (*@\\\*) (*@/// function Morning_Twilight_Nautical(date:TDateTime; latitude, longitude:extended):TDateTime; *) function Morning_Twilight_Nautical(date:TDateTime; latitude, longitude:extended):TDateTime; begin result:=Calc_Set_Rise(date,latitude,longitude,true,_rise_nautical); end; (*@\\\*) (*@/// function Evening_Twilight_Nautical(date:TDateTime; latitude, longitude:extended):TDateTime; *) function Evening_Twilight_Nautical(date:TDateTime; latitude, longitude:extended):TDateTime; begin result:=Calc_Set_Rise(date,latitude,longitude,true,_set_nautical); end; (*@\\\*) (*@/// function Morning_Twilight_Astronomical(date:TDateTime; latitude, longitude:extended):TDateTime; *) function Morning_Twilight_Astronomical(date:TDateTime; latitude, longitude:extended):TDateTime; begin result:=Calc_Set_Rise(date,latitude,longitude,true,_rise_astro); end; (*@\\\*) (*@/// function Evening_Twilight_Astronomical(date:TDateTime; latitude, longitude:extended):TDateTime; *) function Evening_Twilight_Astronomical(date:TDateTime; latitude, longitude:extended):TDateTime; begin result:=Calc_Set_Rise(date,latitude,longitude,true,_set_astro); end; (*@\\\*) { Checking for eclipses } (*@/// function Eclipse(var date:TDateTime; sun:boolean):TEclipse; *) function Eclipse(var date:TDateTime; sun:boolean):TEclipse; var jde: extended = 0; kk: extended = 0; m: extended = 0; ms: extended = 0; f: extended = 0; o: extended = 0; e: extended = 0; t,f1,a1: extended; p,q,w,gamma,u: extended; begin if sun then calc_phase_data(date,NewMoon,jde,kk,m,ms,f,o,e) else calc_phase_data(date,FullMoon,jde,kk,m,ms,f,o,e); t:=kk/1236.85; if abs(sin_d(f))>0.36 then result:=none (*@/// else *) else begin f1:=f-0.02665*sin_d(o); a1:=299.77+0.107408*kk-0.009173*t*t; if sun then jde:=jde - 0.4075 * sin_d(ms) + 0.1721 * e * sin_d(m) else jde:=jde - 0.4065 * sin_d(ms) + 0.1727 * e * sin_d(m); jde:=jde + 0.0161 * sin_d(2*ms) - 0.0097 * sin_d(2*f1) + 0.0073 * e * sin_d(ms-m) - 0.0050 * e * sin_d(ms+m) - 0.0023 * sin_d(ms-2*f1) + 0.0021 * e * sin_d(2*m) + 0.0012 * sin_d(ms+2*f1) + 0.0006 * e * sin_d(2*ms+m) - 0.0004 * sin_d(3*ms) - 0.0003 * e * sin_d(m+2*f1) + 0.0003 * sin_d(a1) - 0.0002 * e * sin_d(m-2*f1) - 0.0002 * e * sin_d(2*ms-m) - 0.0002 * sin_d(o); p:= + 0.2070 * e * sin_d(m) + 0.0024 * e * sin_d(2*m) - 0.0392 * sin_d(ms) + 0.0116 * sin_d(2*ms) - 0.0073 * e * sin_d(ms+m) + 0.0067 * e * sin_d(ms-m) + 0.0118 * sin_d(2*f1); q:= + 5.2207 - 0.0048 * e * cos_d(m) + 0.0020 * e * cos_d(2*m) - 0.3299 * cos_d(ms) - 0.0060 * e * cos_d(ms+m) + 0.0041 * e * cos_d(ms-m); w:=abs(cos_d(f1)); gamma:=(p*cos_d(f1)+q*sin_d(f1))*(1-0.0048*w); u:= + 0.0059 + 0.0046 * e * cos_d(m) - 0.0182 * cos_d(ms) + 0.0004 * cos_d(2*ms) - 0.0005 * cos_d(m+ms); (*@/// if sun then *) if sun then begin if abs(gamma)<0.9972 then begin if u<0 then result:=total else if u>0.0047 then result:=circular else if u<0.00464*sqrt(1-gamma*gamma) then result:=circulartotal else result:=circular; end else if abs(gamma)>1.5433+u then result:=none else if abs(gamma)<0.9972+abs(u) then result:=noncentral else result:=partial; end (*@\\\*) (*@/// else *) else begin if (1.0128 - u - abs(gamma)) / 0.5450 > 0 then result:=total else if (1.5573 + u - abs(gamma)) / 0.5450 > 0 then result:=halfshadow else result:=none; end; (*@\\\*) end; (*@\\\*) date:=delphi_date(jde); end; (*@\\\*) (*@/// function NextEclipse(var date:TDateTime; sun:boolean):TEclipse; *) function NextEclipse(var date:TDateTime; sun:boolean):TEclipse; var temp_date: TDateTime; begin result:=none; (* just to make Delphi 2/3 shut up, not needed really *) temp_date:=date-28*2; while temp_datedate1) then result:=haspriorleapmonth(date1,ChinaNewMoonBefore(date2-1)) else result:=false; if not result then result:=hasnomajorsolarterm(date2); end; (*@\\\*) (*@/// function ChineseDate(date: TdateTime): TChineseDate; *) function ChineseDate(date: TdateTime): TChineseDate; var s1,s2,s3: TDateTime; m0,m1,m2: TdateTime; d: word = 0; m: word = 0; y: word = 0; daycycle, monthcycle: integer; begin Decodedatecorrect(date,y,m,d); date:=trunc(date); (* Winter solstices (Z12) around the date *) s1:=ChinaSolarTermAfter(encodedatecorrect(y-1,12,15)); s2:=ChinaSolarTermAfter(encodedatecorrect(y ,12,15)); s3:=ChinaSolarTermAfter(encodedatecorrect(y+1,12,15)); (* Start of Months around winter solstices *) if (s1<=date) and (dateEncodedateCorrect(y,7,1)) then inc(result.epoch_years); result.cycle:=((result.epoch_years-1) div 60)+1; result.year:=adjusted_mod(result.epoch_years,60); result.yearcycle.zodiac:=TChineseZodiac((result.year-1) mod 12); result.yearcycle.stem:=TChineseStem((result.year-1) mod 10); (* 2000-1-7 = daycycle jia-zi *) daycycle:=adjusted_mod(round(trunc(date)-datetime_2000_01_01-6),60); result.daycycle.zodiac:=TChineseZodiac(daycycle mod 12); result.daycycle.stem:=TChineseStem(daycycle mod 10); (* 1998-12-19 = monthcycle jia-zi *) monthcycle:=adjusted_mod(1+round((m0-datetime_1999_01_01-13)/mean_lunation),60); result.monthcycle.zodiac:=TChineseZodiac(monthcycle mod 12); result.monthcycle.stem:=TChineseStem(monthcycle mod 10); end; (*@\\\*) (*@/// function EncodeDateChinese(date:TChineseDate):TDateTime; *) function EncodeDateChinese(date:TChineseDate):TDateTime; var y: integer; newyear, month_begin: TdateTime; chinese: TChineseDate; begin y:=60*(date.cycle-1)+(date.year-1)-2636; newyear:=ChineseNewYear(y); month_begin:=ChinaNewMoonAfter(newyear+29*(date.month-1)); chinese:=ChineseDate(month_begin); if (chinese.month=date.month) and (chinese.leap=date.leap) then result:=month_begin+date.day-1 else result:=ChinaNewMoonAfter(month_begin+5)+date.day-1; (* check if the input date was valid *) chinese:=ChineseDate(result); if (chinese.day<>date.day) or (chinese.month<>date.month) or (chinese.leap<>date.leap) or (chinese.year<>date.year) or (chinese.cycle<>date.cycle) then raise EConvertError.Create('Invalid chinese date'); end; (*@\\\*) (*@/// function ChineseNewYear(year: integer): TDateTime; *) function ChineseNewYear(year: integer): TDateTime; var s1,s2: TDateTime; m1,m2,m11: TdateTime; begin (* Winter solstices (Z12) around the January 1st of the year *) s1:=ChinaSolarTermAfter(encodedatecorrect(year-1,12,15)); s2:=ChinaSolarTermAfter(encodedatecorrect(year ,12,15)); m1:=ChinaNewMoonAfter(s1+1); m2:=ChinaNewMoonAfter(m1+4); m11:=ChinaNewMoonBefore(s2+1); if (round((m11-m1)/mean_lunation)=12) and (hasnomajorsolarterm(m1) or hasnomajorsolarterm(m2)) then result:=ChinaNewMoonAfter(m2+1) else result:=m2; end; (*@\\\*) (*$ifdef zero *) (*@/// Jupiter coordinates and moons - currently under construction *) type (*@/// t_jupiter_coord=record *) t_jupiter_coord=record d, v, m, n, j, a, b, k, rr, r, delta, psi, deke: extended; end; (*@\\\*) t_jupiter_moon=array[0..3,0..1] of extended; (*@/// function Jupiter_ephem_phys(date:TdateTime):t_jupiter_coord; *) { Based upon chapter 44 (42) of Meeus } function Jupiter_ephem_phys(date:TdateTime):t_jupiter_coord; var d, t, t1, a0, d0, w1, w2: extended; l, b, r, l0, b0, r0: extended; x,y,z,delta: extended; epsilon_0: extended; begin d:=(julian_date(date)-2433282.5); t1:=d/36525; t:=(julian_date(date)-2451545)/36525; a0:=268.0+0.1061*t1; d0:=64.5-0.0164*t1; w1:=put_in_360(17.710+877.90003539*d); w2:=put_in_360(16.838+870.27003539*d); earth_coord(date,l0,b0,r0); jupiter_coord(date,l,b,r); x:=r*cos_d(b)*cos_d(l)-r0*cos_d(l0); y:=r*cos_d(b)*sin_d(l)-r0*sin_d(l0); z:=r*sin_d(b)-r0*sin_d(b0); delta:=sqrt(x*x+y*y+z*z); l:=l-0.012990*delta/r/r; x:=r*cos_d(b)*cos_d(l)-r0*cos_d(l0); y:=r*cos_d(b)*sin_d(l)-r0*sin_d(l0); z:=r*sin_d(b)-r0*sin_d(b0); delta:=sqrt(x*x+y*y+z*z); epsilon_0:=84381.448+(-46.8150+(-0.00059+0.001813*t)*t)*t; end; (*@\\\000000011D*) (*@/// function Jupiter_moon(date:TdateTime):t_jupiter_moon; *) { Based upon chapter 43 of Meeus } function Jupiter_moon(date:TdateTime):t_jupiter_moon; begin end; (*@\\\*) (*@\\\0000000501*) (*$endif *) (*@\\\000000A70C*) (*@/// initialization *) (*$ifdef delphi_1 *) begin (*$else *) initialization (*$endif *) julian_offset:=2451544.5-EncodeDate(2000,1,1); datetime_2000_01_01:=EncodedateCorrect(2000,1,1); datetime_1999_01_01:=EncodedateCorrect(1999,1,1); datetime_first_lunation:=EncodeDate(1923,1,17); check_TDatetime; (*@\\\*) (*$ifdef delphi_ge_2 *) (*$warnings off *) (*$endif *) end. (*@\\\003F001101001101001001001101000F01000011000F01*) ./cloudremunit.lrs0000644000175000017500000002734514576573022014417 0ustar anthonyanthony{ This is an automatically generated lazarus resource file } LazarusResources.Add('TCloudRemMilkyWay','FORMDATA',[ 'TPF0'#17'TCloudRemMilkyWay'#16'CloudRemMilkyWay'#4'Left'#3#146#7#6'Height'#3 +#244#1#3'Top'#2'('#5'Width'#3'.'#4#7'Caption'#6'''Cloud removal / Milky Way ' +'position Tool'#12'ClientHeight'#3#244#1#11'ClientWidth'#3'.'#4#21'Constrain' +'ts.MinHeight'#3#244#1#20'Constraints.MinWidth'#3#232#3#6'OnShow'#7#8'FormSh' +'ow'#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#7'2.2.6.0'#0#5'TEdit' +#14'SourceFileEdit'#22'AnchorSideLeft.Control'#7#16'SourceFileButton'#19'Anc' +'horSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#16'SourceFileB' +'utton'#23'AnchorSideRight.Control'#7#5'Memo1'#4'Left'#2'$'#6'Height'#2#30#4 +'Hint'#6#18' Source directory.'#3'Top'#2#4#5'Width'#3#226#2#7'Anchors'#11#5 +'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#8#18'BorderSpacing.Left'#2#4#19'B' +'orderSpacing.Right'#2#4#8'TabOrder'#2#0#0#0#7'TBitBtn'#16'SourceFileButton' +#22'AnchorSideLeft.Control'#7#5'Owner'#23'AnchorSideRight.Control'#7#14'Sour' +'ceFileEdit'#4'Left'#2#2#6'Height'#2#30#4'Hint'#6#24'Select source directory' +'.'#3'Top'#2#4#5'Width'#2#30#18'BorderSpacing.Left'#2#2#10'Glyph.Data'#10':' +#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' ' +#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0'SMF'#160#164'e4'#255#164 +'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255#164'e4' +#255#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255#164'f5'#233 +#166'g69HHH'#224#151#134'x'#255#165'i:'#255#186#131'P'#255#186#131'P'#255#186 +#131'P'#255#186#131'P'#255#186#131'P'#255#186#131'P'#255#186#131'P'#255#186 +#131'P'#255#186#131'P'#255#186#131'P'#255#186#131'P'#255#178'xE'#255#165'f6' +#192'III'#224#153#153#153#255#165'h9'#255#211#166'~'#255#210#163'x'#255#210 +#163'x'#255#210#163'x'#255#210#163'x'#255#210#163'x'#255#210#163'x'#255#210 +#163'x'#255#210#163'x'#255#210#163'x'#255#211#164'y'#255#209#165'z'#255#165 +'f5'#245'HHH'#226#155#155#155#255#164'g8'#255#213#171#133#255#206#156'n'#255 +#206#156'm'#255#206#156'm'#255#206#156'm'#255#206#156'm'#255#206#156'm'#255 +#206#156'm'#255#206#156'm'#255#206#156'm'#255#207#158'p'#255#213#171#132#255 +#165'f5'#248'LLL'#228#161#161#161#255#165'h8'#255#226#196#169#255#213#168#129 +#255#211#164'z'#255#211#164'z'#255#211#164'z'#255#211#164'z'#255#211#164'z' +#255#211#164'z'#255#211#164'z'#255#211#164'z'#255#212#167'~'#255#221#186#156 +#255#165'f5'#249'QQQ'#229#164#165#165#255#165'g7'#255#233#210#190#255#221#186 +#155#255#221#185#153#255#220#182#149#255#219#181#146#255#218#179#144#255#217 +#178#142#255#216#174#137#255#215#173#135#255#215#173#135#255#216#176#139#255 +#229#201#177#255#165'f5'#250'VVV'#231#169#169#169#255#164'f6'#255#236#216#198 +#255#221#186#153#255#221#186#153#255#221#186#153#255#221#186#153#255#221#186 +#153#255#221#186#153#255#221#186#153#255#220#183#149#255#218#178#142#255#217 +#176#139#255#231#207#184#255#165'f5'#251'[[['#233#174#174#174#255#165'g6'#255 +#235#215#196#255#220#183#148#255#220#183#148#255#220#183#148#255#220#183#148 +#255#220#183#148#255#220#183#148#255#220#183#148#255#220#183#148#255#220#183 +#148#255#218#180#145#255#230#205#182#255#165'f5'#252'___'#233#179#179#179#255 +#164'f5'#255#234#213#193#255#219#180#145#255#219#180#145#255#219#181#145#255 +#219#181#145#255#219#181#146#255#219#181#146#255#219#181#146#255#219#181#146 +#255#219#181#146#255#220#184#150#255#231#207#183#255#164'f4'#253'eee'#235#183 +#183#183#255#165'f5'#255#234#211#190#255#234#212#191#255#234#212#191#255#234 +#212#190#255#234#212#190#255#234#212#190#255#233#211#190#255#233#211#190#255 +#233#211#190#255#233#211#190#255#233#211#190#255#232#207#184#255#165'e4'#254 +'jjj'#236#189#189#189#255#166'mA'#255#165'f6'#255#165'f6'#255#165'f6'#255#165 +'f6'#255#165'f6'#255#164'f5'#255#164'f5'#255#164'f5'#255#164'f5'#255#164'e4' +#255#164'e4'#255#164'e4'#255#166'h7'#224'nnn'#238#192#193#193#255#172#172#172 +#255#170#170#170#255#167#167#167#255#165#165#165#255#164#164#164#255#164#164 +#164#255#172#172#172#255#182#182#182#255#185#185#185#255#187#187#187#255#162 +#162#162#255'jjj'#169'GGG'#0'GGG'#0'sss'#239#197#197#197#255#176#176#176#255 +#173#173#173#255#171#171#171#255#170#170#170#255#172#172#172#255#141#141#141 +#245#141#141#141#242#140#140#140#242#140#140#140#242#140#140#140#242#128#128 +#128#246'lll'#132'GGG'#0'GGG'#0'xxx'#240#201#201#201#255#199#199#199#255#197 +#197#197#255#196#196#196#255#196#196#196#255#180#180#180#255'ttt'#202'rrr8rr' +'r8rrr8mmm8ooo5UUU'#3'GGG'#0'GGG'#0'zzz'#159'yyy'#236'yyy'#236'yyy'#236'yyy' +#236'yyy'#236'yyy'#226'xxx5GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0 +'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0 +'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0#7'OnClick'#7#21'SourceFileButtonC' +'lick'#8'TabOrder'#2#1#0#0#7'TButton'#11'StartButton'#19'AnchorSideLeft.Side' +#7#9'asrCenter'#21'AnchorSideTop.Control'#7#16'SourceFileButton'#18'AnchorSi' +'deTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#14'SourceFileEdit' +#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#183#2#6'Height'#2#30#3'To' ,'p'#2'>'#5'Width'#2'K'#7'Anchors'#11#5'akTop'#7'akRight'#0#17'BorderSpacing.' +'Top'#2#28#19'BorderSpacing.Right'#2#4#7'Caption'#6#5'Start'#7'OnClick'#7#16 +'StartButtonClick'#8'TabOrder'#2#2#0#0#5'TMemo'#17'ProcessStatusMemo'#22'Anc' +'horSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#6'Label2'#18'An' +'chorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Memo1'#24 +'AnchorSideBottom.Control'#7#12'ProgressBar1'#4'Left'#2#4#6'Height'#3'T'#1#3 +'Top'#2'w'#5'Width'#3#6#3#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBo' +'ttom'#0#18'BorderSpacing.Left'#2#4#10'ScrollBars'#7#6'ssBoth'#8'TabOrder'#2 +#3#0#0#5'TMemo'#5'Memo1'#21'AnchorSideTop.Control'#7#5'Owner'#23'AnchorSideR' +'ight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorS' +'ideBottom.Control'#7#10'StatusBar1'#4'Left'#3#10#3#6'Height'#3#223#1#3'Top' +#2#0#5'Width'#3'$'#1#7'Anchors'#11#5'akTop'#7'akRight'#8'akBottom'#0#13'Line' +'s.Strings'#1#6'}Reads a .dat file of SQM data and creates a comma separated' +' value (.csv) file with these attributes at each SQM time reading:'#6#0#6#10 +'- Location'#6#11'- Lat, Long'#6#20'- UTC_Date, UTC_Time'#6#24'- Local_Date,' +' Local_Time'#6#30'- Celsius, Volts, Msas, Status'#6')- MoonPhase, MoonElev,' +' MoonIllum, SunElev'#6')- MinSince3pm, Msas_Avg, NightsSince_1118'#6'D- Rig' +'htAscensionHr, Galactic Latitude, Galactic Longitude, J2000days'#6'>- Resid' +'StdErr '#226#128#147' for identifying cloud-free spans of SQM data'#6#0#6 +#242'MinSince3pmStdTime - Number of minutes since 3pm standard time of the p' +'revious day; calculated based on the UTC time and longitude of measurement;' +' allows tracking of time from afternoon, through evening, night and morning' +' as a positive number'#6#0#6#179'Msas_Avg -- Average value of SQM reading d' +'uring the current night, under conditions of sun lower than 18 degrees belo' +'w the horizon and moon lower than 10 degrees below the horizon'#6#0#6'kNigh' +'tsSince_1118 -- Number of nights since January 1, 2018; useful to track num' +'ber of nights since that day'#6#0#6#177'RightAscensionHr -- Right ascension' +' in hours of the zenith at the SQM location; equivalent to Local Sidereal T' +'ime at the SQM location; used to calculate the Galactic orientation'#6#0#6 +#194'Galactic Latitude -- Angle in degrees between the zenith at the SQM loc' +'ation and the highest point of the Milky Way Arc; value of zero implies tha' +'t the SQM is pointed directly into the Milky Way'#6#0#6'qGalactic Longitude' +' -- Angle in degrees from the Galactic Center (Sagittarius) eastward along ' +'the Galactic equator'#6#0#6'3J2000days -- Days since January 1, 2000; fract' +'ional'#6#0#12'~'#1#0#0'ResidStdErr -- Residual Standard Error; a measure of' +' jaggedness of the SQM data over a time range specified by the user (typica' +'lly 90 minutes); if ResidStdErr is large, for example > 50, then conditions' +' can be considered to have been cloudy; value as reported is multiplied x 1' +'000 to give larger numbers; Refer to the updated UDM Manual for a detailed ' +'explanation of this attribute.'#6#0#6#187'Limitation '#226#128#147' Handles' +' daily 24-hour SQM data sampled at 1-minute spacing or longer. Attempts to ' +'process SQM data with time spacing that provides more than 1500 samples per' +' day will fail.'#0#10'ScrollBars'#7#14'ssAutoVertical'#8'TabOrder'#2#4#0#0 +#12'TLabeledEdit'#13'HalfRangeEdit'#22'AnchorSideLeft.Control'#7#8'LongEdit' +#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#11'Start' +'Button'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7 +#11'StartButton'#24'AnchorSideBottom.Control'#7#11'StartButton'#21'AnchorSid' +'eBottom.Side'#7#9'asrBottom'#4'Left'#3'g'#2#6'Height'#2'$'#3'Top'#2'8'#5'Wi' +'dth'#2'K'#7'Anchors'#11#7'akRight'#8'akBottom'#0#18'BorderSpacing.Left'#2#10 +#17'BorderSpacing.Top'#2#4#19'BorderSpacing.Right'#2#5#16'EditLabel.Height'#2 +#19#15'EditLabel.Width'#2'K'#17'EditLabel.Caption'#6#11'Half range:'#21'Edit' +'Label.ParentColor'#8#8'TabOrder'#2#5#0#0#6'TLabel'#6'Label2'#22'AnchorSideL' +'eft.Control'#7#17'ProcessStatusMemo'#21'AnchorSideTop.Control'#7#13'HalfRan' +'geEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#4#6'Height'#2#19#3 +'Top'#2'd'#5'Width'#2'n'#17'BorderSpacing.Top'#2#8#7'Caption'#6#18'Processin' +'g status:'#11'ParentColor'#8#0#0#12'TProgressBar'#12'ProgressBar1'#22'Ancho' +'rSideLeft.Control'#7#5'Owner'#23'AnchorSideRight.Control'#7#5'Memo1'#24'Anc' +'horSideBottom.Control'#7#10'StatusBar1'#4'Left'#2#0#6'Height'#2#20#3'Top'#3 +#203#1#5'Width'#3#10#3#7'Anchors'#11#6'akLeft'#7'akRight'#8'akBottom'#0#6'Sm' +'ooth'#9#8'TabOrder'#2#6#0#0#10'TStatusBar'#10'StatusBar1'#4'Left'#2#0#6'Hei' +'ght'#2#21#3'Top'#3#223#1#5'Width'#3'.'#4#6'Panels'#14#1#5'Width'#2'2'#0#0#11 +'SimplePanel'#8#0#0#12'TLabeledEdit'#7'LatEdit'#21'AnchorSideTop.Control'#7 +#11'StartButton'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Co' +'ntrol'#7#8'LongEdit'#24'AnchorSideBottom.Control'#7#11'StartButton'#21'Anch' ,'orSideBottom.Side'#7#9'asrBottom'#4'Left'#3'i'#1#6'Height'#2'$'#3'Top'#2'8' +#5'Width'#2'x'#7'Anchors'#11#7'akRight'#8'akBottom'#0#19'BorderSpacing.Right' +#2#4#16'EditLabel.Height'#2#19#15'EditLabel.Width'#2'x'#17'EditLabel.Caption' +#6#9'Latitude:'#21'EditLabel.ParentColor'#8#8'TabOrder'#2#8#0#0#12'TLabeledE' +'dit'#8'LongEdit'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Co' +'ntrol'#7#11'StartButton'#23'AnchorSideRight.Control'#7#13'HalfRangeEdit'#24 +'AnchorSideBottom.Control'#7#11'StartButton'#21'AnchorSideBottom.Side'#7#9'a' +'srBottom'#4'Left'#3#229#1#6'Height'#2'$'#3'Top'#2'8'#5'Width'#2'x'#7'Anchor' +'s'#11#7'akRight'#8'akBottom'#0#19'BorderSpacing.Right'#2#4#16'EditLabel.Hei' +'ght'#2#19#15'EditLabel.Width'#2'x'#17'EditLabel.Caption'#6#10'Longitude:'#21 +'EditLabel.ParentColor'#8#8'TabOrder'#2#9#0#0#12'TLabeledEdit'#12'LocationEd' +'it'#22'AnchorSideLeft.Control'#7#14'SourceFileEdit'#21'AnchorSideTop.Contro' +'l'#7#14'SourceFileEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSide' +'Right.Control'#7#7'LatEdit'#24'AnchorSideBottom.Control'#7#11'StartButton' +#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2'$'#6'Height'#2'$'#3'Top' +#2'8'#5'Width'#3'A'#1#7'Anchors'#11#6'akLeft'#7'akRight'#8'akBottom'#0#19'Bo' +'rderSpacing.Right'#2#4#16'EditLabel.Height'#2#19#15'EditLabel.Width'#3'A'#1 +#17'EditLabel.Caption'#6#9'Location:'#21'EditLabel.ParentColor'#8#8'TabOrder' +#2#10#0#0#11'TOpenDialog'#16'SourceFileDialog'#6'Filter'#6#23'Data files|*.d' +'at; *.csv'#4'Left'#3'8'#1#3'Top'#3#232#0#0#0#0 ]); ./convertlogfileunit.lrs0000644000175000017500000000746514576573022015630 0ustar anthonyanthony{ This is an automatically generated lazarus resource file } LazarusResources.Add('Tconvertdialog','FORMDATA',[ 'TPF0'#14'Tconvertdialog'#13'convertdialog'#4'Left'#3'5'#8#6'Height'#3'u'#1#3 +'Top'#3#249#1#5'Width'#3#196#2#13'ActiveControl'#7#5'Memo1'#7'Caption'#6#16 +'Convert Log File'#12'ClientHeight'#3'u'#1#11'ClientWidth'#3#196#2#8'OnCreat' +'e'#7#10'FormCreate'#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#8'2.0' +'.12.0'#0#7'TButton'#12'SelectButton'#21'AnchorSideTop.Control'#7#5'Memo1'#18 +'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2't'#6'Height'#2#25#3'Top'#3#174 +#0#5'Width'#3#220#0#17'BorderSpacing.Top'#2#9#7'Caption'#6#29'Select and con' +'vert input file'#7'OnClick'#7#17'SelectButtonClick'#8'TabOrder'#2#0#0#0#5'T' +'Memo'#5'Memo1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Contr' +'ol'#7#5'Owner'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Si' +'de'#7#9'asrBottom'#4'Left'#2#5#6'Height'#3#160#0#3'Top'#2#5#5'Width'#3#186#2 +#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#5#17 +'BorderSpacing.Top'#2#5#19'BorderSpacing.Right'#2#5#13'Lines.Strings'#1#6'{1' +'. This tool adds Moon information to the selected input log file (.dat) and' +' outputs to a (.csv) file of the same filename.'#6#0#6'|2. The lengthy head' +'er from the .dat file is removed. Only one header line describing the recor' +'d fields is left near the top.'#6#0#6'V3. Semicolons are used for the field' +' seperators (just like in the original .dat file).'#0#8'ReadOnly'#9#10'Scro' +'llBars'#7#14'ssAutoVertical'#8'TabOrder'#2#1#0#0#12'TLabeledEdit'#15'Latitu' +'deDisplay'#21'AnchorSideTop.Control'#7#21'OutputFilenameDisplay'#18'AnchorS' +'ideTop.Side'#7#9'asrBottom'#4'Left'#2't'#6'Height'#2' '#3'Top'#3#236#0#5'Wi' +'dth'#2'P'#9'Alignment'#7#14'taRightJustify'#17'BorderSpacing.Top'#2#2#16'Ed' +'itLabel.Height'#2#19#15'EditLabel.Width'#2'a'#17'EditLabel.Caption'#6#14'La' +'titude used:'#21'EditLabel.ParentColor'#8#13'LabelPosition'#7#6'lpLeft'#8'T' +'abOrder'#2#2#0#0#12'TLabeledEdit'#16'LongitudeDisplay'#21'AnchorSideTop.Con' +'trol'#7#15'LatitudeDisplay'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2 +'t'#6'Height'#2' '#3'Top'#3#14#1#5'Width'#2'P'#9'Alignment'#7#14'taRightJust' +'ify'#17'BorderSpacing.Top'#2#2#16'EditLabel.Height'#2#19#15'EditLabel.Width' +#2'o'#17'EditLabel.Caption'#6#15'Longitude used:'#21'EditLabel.ParentColor'#8 +#13'LabelPosition'#7#6'lpLeft'#8'TabOrder'#2#3#0#0#12'TLabeledEdit'#21'Outpu' +'tFilenameDisplay'#21'AnchorSideTop.Control'#7#12'SelectButton'#18'AnchorSid' +'eTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorS' +'ideRight.Side'#7#9'asrBottom'#4'Left'#2't'#6'Height'#2' '#3'Top'#3#202#0#5 +'Width'#3'K'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#17'BorderSpacin' +'g.Top'#2#3#19'BorderSpacing.Right'#2#5#16'EditLabel.Height'#2#19#15'EditLab' +'el.Width'#2'j'#17'EditLabel.Caption'#6#16'File saved here:'#21'EditLabel.Pa' +'rentColor'#8#13'LabelPosition'#7#6'lpLeft'#8'TabOrder'#2#4#0#0#10'TStatusBa' +'r'#10'StatusBar1'#22'AnchorSideLeft.Control'#7#5'Owner'#23'AnchorSideRight.' +'Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBo' +'ttom.Control'#7#5'Owner'#4'Left'#2#0#6'Height'#2#22#3'Top'#3'_'#1#5'Width'#3 +#196#2#6'Panels'#14#1#5'Width'#2'2'#0#0#11'SimplePanel'#8#0#0#7'TButton'#11 +'CloseButton'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side' +#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#10'StatusBar1'#4'Left'#3'i'#2 +#6'Height'#2#25#3'Top'#3'C'#1#5'Width'#2'V'#7'Anchors'#11#7'akRight'#8'akBot' +'tom'#0#19'BorderSpacing.Right'#2#5#20'BorderSpacing.Bottom'#2#3#7'Caption'#6 +#5'Close'#7'OnClick'#7#16'CloseButtonClick'#8'TabOrder'#2#6#0#0#11'TOpenDial' +'og'#14'OpenFileDialog'#4'Left'#3'8'#1#3'Top'#3#8#1#0#0#0 ]); ./fileview.lrs0000644000175000017500000000273714576573022013515 0ustar anthonyanthony{ This is an automatically generated lazarus resource file } LazarusResources.Add('TForm2','FORMDATA',[ 'TPF0'#6'TForm2'#5'Form2'#4'Left'#3#200#1#6'Height'#3#244#1#3'Top'#3#168#0#5 +'Width'#3#146#2#7'Caption'#6#9'File View'#12'ClientHeight'#3#244#1#11'Client' +'Width'#3#146#2#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#7'1.2.2.0' +#0#12'TPageControl'#12'PageControl1'#4'Left'#2#0#6'Height'#3#244#1#3'Top'#2#0 +#5'Width'#3#146#2#10'ActivePage'#7#7'TextTab'#7'Anchors'#11#5'akTop'#6'akLef' +'t'#7'akRight'#8'akBottom'#0#8'TabIndex'#2#0#8'TabOrder'#2#0#0#9'TTabSheet'#7 +'TextTab'#7'Caption'#6#4'Text'#12'ClientHeight'#3#212#1#11'ClientWidth'#3#140 +#2#0#5'TMemo'#5'Memo1'#4'Left'#2#0#6'Height'#3#212#1#3'Top'#2#0#5'Width'#3 +#140#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#10'ScrollBa' +'rs'#7#10'ssAutoBoth'#8'TabOrder'#2#0#0#0#0#9'TTabSheet'#8'GraphTab'#7'Capti' +'on'#6#5'Graph'#12'ClientHeight'#3#212#1#11'ClientWidth'#3#140#2#10'TabVisib' +'le'#8#0#6'TChart'#6'Chart1'#4'Left'#2#0#6'Height'#3#209#1#3'Top'#2#0#5'Widt' +'h'#3#238#1#8'AxisList'#14#1#6'Minors'#14#0#27'Title.LabelFont.Orientation'#3 +#132#3#0#1#9'Alignment'#7#9'calBottom'#6'Minors'#14#0#0#0#16'Foot.Brush.Colo' +'r'#7#9'clBtnFace'#15'Foot.Font.Color'#7#6'clBlue'#17'Title.Brush.Color'#7#9 +'clBtnFace'#16'Title.Font.Color'#7#6'clBlue'#18'Title.Text.Strings'#1#6#7'TA' +'Chart'#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#11'Paren' +'tColor'#8#0#0#0#0#0 ]); ./enhanced1.ucld0000644000175000017500000000161213773347133013647 0ustar anthonyanthony#Description: Unihedron Colour Legend Definition file for Unihedron Device Manager plots #Title: Enhanced1 #MPSAS; Red; Green; Blue 22.15;60;48;50 22.05;78;55;55 21.95;78;53;58 21.85;78;54;58 21.75;97;56;88 21.65;124;80;127 21.55;101;87;143 21.45;71;88;149 21.35;63;93;158 21.25;61;102;172 21.15;0;128;192 21.05;0;145;205 20.95;0;158;209 20.85;0;171;213 20.75;0;181;214 20.65;0;181;182 20.55;48;184;159 20.45;81;187;132 20.35;114;190;104 20.25;167;202;100 20.15;193;205;89 20.05;215;214;78 19.95;221;211;76 19.85;224;203;74 19.75;214;187;84 19.65;217;167;83 19.55;224;154;80 19.45;231;145;76 19.35;223;129;77 19.25;223;120;77 19.15;223;97;78 19.05;219;79;79 18.95;220;74;94 18.85;215;72;111 18.75;229;50;139 18.65;199;102;161 18.55;198;118;169 18.45;196;133;177 18.35;207;150;187 18.25;202;166;193 18.15;212;196;212 18.05;230;226;235 17.95;230;237;244 17.85;237;244;247 17.75;240;244;244 17.65;255;255;255 ./document-open.png0000644000175000017500000000113714576573022014435 0ustar anthonyanthonyPNG  IHDRa&IDATxڥoA7M"-N w#F5ZҪr/~[T4>4m?g׺[!.QGo˖h1(W-Go >mH1OJ?;#p13<|Lݔu+_ 4h,}|í=j.EAq~N<e*{WxWfBZMhٖqhpx~5iPu78eLupg,V ^JNhTVZD|xFGlU|"ͬc4j>NX=wI7- UKtFc^ {D;(cD!W##}&N^J`B] eag;Xv^넶Ʉ673™막cT*P&P%Qhldy(a+']d2kB˯Q2ٜC&z$\Hs/mYzIENDB`./MAG-4-8-17.hex0000644000175000017500000002335014576573022013020 0ustar anthonyanthony:020000040000FA :04080000E6EF04F02B :1008100003B216EF04F0F2B431EF04F09EB039EFFA :1008200004F09EB241EF04F0C4EF04F00392030120 :1008300003EE00F080517F0BE92604C0EFFF802B10 :100840008151805D700BD8A48B8200008051815D46 :10085000700BD8A48B9281518019D8B40790C4EF43 :1008600004F0F2940101383FC4EF04F0392BC4EFD7 :1008700004F09E900101463FC4EF04F0472BC4EF03 :1008800004F09E9207B45DEF04F03AC13EF13BC123 :100890003FF13CC140F13DC141F148C14CF149C17A :1008A0004DF14AC14EF14BC14FF154C156F155C102 :1008B00057F15AC15CF15BC15DF10201002FC4EF39 :1008C00004F03C0E006F0E840E760101606770EF3D :1008D00004F0616770EF04F0626770EF04F0636723 :1008E00074EF04F0A4EF04F064C100F165C101F1FC :1008F00066C102F167C103F10101010E046F000E30 :10090000056F000E066F000E076F9AEC09F000C12C :1009100064F101C165F102C166F103C167F10067CD :1009200099EF04F0016799EF04F0026799EF04F082 :100930000367A4EF04F060C164F161C165F162C1B5 :1009400066F163C167F10E80D59ECD90D6CF3AF1A6 :10095000D7CF3BF138C13CF139C13DF1D76AD66AF6 :100960000101386B396BCECF48F1CFCF49F146C189 :100970004AF147C14BF1CF6ACE6A0101466B476B22 :10098000D58ECD80C4EF04F002C0E0FF005001C05E :10099000D8FF1000A6B2CAEF04F00CC0A9FF0BC02C :1009A000A8FFA69EA69CA684F29E550EA76EAA0E30 :1009B000A76EA682F28EA694A6B2DCEF04F0120017 :1009C000A96EA69EA69CA680A8501200076A0E6A71 :1009D0000F010F0EC16E0F01896A100E926E000E8C :1009E000896E080E8A6EF00E936E8B6A910E946E6D :1009F000F18E0F01280ED56EF28A820ECD6E9D808B :100A00000101386B396B3A6B3B6B3C6B3D6B3E6B5A :100A10003F6B406B416B426B436B446B456B466B6A :100A2000476B486B496B4A6B4B6B4C6B4D6B4E6B1A :100A30004F6B506B516B526B536B760ECA6E9D822F :100A400002013C0E006FCC6A160EE0EC04F0E8CF19 :100A500000F1170EE0EC04F0E8CF01F1180EE0EC25 :100A600004F0E8CF02F1190EE0EC04F0E8CF03F156 :100A7000010103AF56EF05F091EC0AF0160E0C6E73 :100A800000C10BF0CAEC04F0170E0C6E01C10BF0A4 :100A9000CAEC04F0180E0C6E02C10BF0CAEC04F0A4 :100AA000190E0C6E03C10BF0CAEC04F000C160F12A :100AB00001C161F102C162F103C163F100C164F1DE :100AC00001C165F102C166F103C167F1240EAC6E8C :100AD000900EAB6E240EAC6E080EB86E000EB06EAB :100AE0001F0EAF6E0401806B816B0F01900EAB6E19 :100AF0000F019D8A0301806B816BA26B8B92000EAC :100B0000C76E300EC66E8A929E96FF0EC96E9EA666 :100B1000FED79E96FF0EC96E9EA6FED79E96FF0E2E :100B2000C96E9EA6FED79E96FF0EC96E9EA6FED7E4 :100B30008A820101546B556B566B576B586B596B1E :100B40005A6B5B6B5C6B5D6B5E6B5F6B0790000160 :100B5000F28EF28C07B090EF08F00EB0DCEF07F0E9 :100B60000301805181197F0BD8B490EF08F013EE88 :100B700000F081517F0BE126812BE7CFE8FFE00BEE :100B8000D8B490EF08F023EE82F0A2511F0BD926C3 :100B9000E7CFDFFFA22BDF50780AD8A490EF08F050 :100BA000078064C100F165C101F166C102F167C14E :100BB00003F10101040E046F000E056F000E066FB5 :100BC000000E076F9AEC09F000AFF0EF05F001019D :100BD000030E646F000E656F000E666F000E676F88 :100BE00003018251720AD8B4DCEF07F08251520A35 :100BF000D8B4DCEF07F08251690AD8B4C9EF06F027 :100C00008251490AD8B492EF06F08251500AD8B402 :100C100024EF06F08251700AD8B467EF06F08BEF2C :100C200008F0040114EE00F080517F0BE12682C42D :100C3000E7FF802B12000D0E826F11EC06F00A0EFA :100C4000826F11EC06F0120083C31EF184C31FF102 :100C500085C320F186C321F187C322F188C323F124 :100C600089C324F18AC325F18BC326F18CC327F1F4 :100C70000101DEEC0AF056EC0AF0160E0C6E00C113 :100C80000BF0CAEC04F0170E0C6E01C10BF0CAECAD :100C900004F0180E0C6E02C10BF0CAEC04F0190E31 :100CA0000C6E03C10BF0CAEC04F000C160F101C18D :100CB00061F102C162F103C163F100C164F101C1DC :100CC00065F102C166F103C167F192EF06F083C3DB :100CD0001EF184C31FF185C320F186C321F187C3B0 :100CE00022F188C323F189C324F18AC325F18BC380 :100CF00026F18CC327F10101DEEC0AF056EC0AF074 :100D000000C160F101C161F102C162F103C163F18F :100D100000C164F101C165F102C166F103C167F16F :100D200092EF06F0160EE0EC04F0E8CF00F1170E9B :100D3000E0EC04F0E8CF01F1180EE0EC04F0E8CFAD :100D400002F1190EE0EC04F0E8CF03F134EC0AF004 :100D500023EC09F00401730E826F11EC06F004011C :100D60002C0E826F11EC06F060C100F161C101F13F :100D700062C102F163C103F134EC0AF023EC09F023 :100D80000401730E826F11EC06F01BEC06F08BEF82 :100D900008F00401690E826F11EC06F004012C0EBC :100DA000826F11EC06F00101040E006F000E016F5E :100DB000000E026F000E036F34EC0AF020C182F4C3 :100DC0000401300E822711EC06F021C182F40401E7 :100DD000300E822711EC06F022C182F40401300E9D :100DE000822711EC06F023C182F40401300E822721 :100DF00011EC06F024C182F40401300E822711ECBC :100E000006F025C182F40401300E822711EC06F0B1 :100E100026C182F40401300E822711EC06F027C1AE :100E200082F40401300E822711EC06F004012C0E2E :100E3000826F11EC06F00101080E006F000E016FC9 :100E4000000E026F000E036F34EC0AF020C182F432 :100E50000401300E822711EC06F021C182F4040156 :100E6000300E822711EC06F022C182F40401300E0C :100E7000822711EC06F023C182F40401300E822790 :100E800011EC06F024C182F40401300E822711EC2B :100E900006F025C182F40401300E822711EC06F021 :100EA00026C182F40401300E822711EC06F027C11E :100EB00082F40401300E822711EC06F004012C0E9E :100EC000826F11EC06F00101110E006F000E016F30 :100ED000000E026F000E036F34EC0AF020C182F4A2 :100EE0000401300E822711EC06F021C182F40401C6 :100EF000300E822711EC06F022C182F40401300E7C :100F0000822711EC06F023C182F40401300E8227FF :100F100011EC06F024C182F40401300E822711EC9A :100F200006F025C182F40401300E822711EC06F090 :100F300026C182F40401300E822711EC06F027C18D :100F400082F40401300E822711EC06F004012C0E0D :100F5000826F11EC06F0200EF86EF76AF66A040153 :100F60000900F5CF82F411EC06F00900F5CF82F408 :100F700011EC06F00900F5CF82F411EC06F009003F :100F8000F5CF82F411EC06F00900F5CF82F411ECF4 :100F900006F00900F5CF82F411EC06F00900F5CF58 :100FA00082F411EC06F00900F5CF82F411EC06F0A2 :100FB0001BEC06F08BEF08F08251520A03E10E821F :100FC000E3EF07F00E9207843EC142F13FC143F1C7 :100FD00040C144F141C145F14CC150F14DC151F105 :100FE0004EC152F14FC153F156C158F157C159F199 :100FF0005CC15EF15DC15FF107940401720E826F06 :1010000011EC06F004012C0E826F11EC06F042C1C7 :1010100000F143C101F144C102F145C103F10101F5 :1010200034EC0AF023EC09F00401630E826F11EC3A :1010300006F004012C0E826F11EC06F050C100F195 :1010400051C101F152C102F153C103F1010134EC6C :101050000AF023EC09F00401630E826F11EC06F034 :1010600004012C0E826F11EC06F091EC0AF058C1CD :1010700000F159C101F134EC0AF023EC09F004014C :101080002C0E826F11EC06F091EC0AF05EC100F1BB :101090005FC101F134EC0AF023EC09F00EB254EF19 :1010A00008F00EA086EF08F004012C0E826F11EC00 :1010B00006F0200EF86EF76AF66A04010900F5CF13 :1010C00082F411EC06F00900F5CF82F411EC06F081 :1010D0000900F5CF82F411EC06F00900F5CF82F497 :1010E00011EC06F00900F5CF82F411EC06F00900CE :1010F000F5CF82F411EC06F00900F5CF82F411EC83 :1011000006F00900F5CF82F411EC06F01BEC06F0B6 :101110000E908BEF08F00301A26B079090EF08F0A0 :101120000401805181197F0B0BE09EA809D014EEB9 :1011300000F081517F0BE126E750812B0F01AD6E4E :101140000EA4EFEF08F00E940EB6CCEF08F08A92E2 :101150009E96080EC96E9EA6FED79E96800EC96EFC :101160009EA6FED78A828A929E96500EC96E9EA631 :10117000FED79E96000EC96E9EA6FED70784C9CFE5 :1011800055F19E96000EC96E9EA6FED7C9CF54F1AA :1011900007948A82EFEF08F08A949E96080EC96E33 :1011A0009EA6FED79E96800EC96E9EA6FED78A8406 :1011B0008A949E96500EC96E9EA6FED79E96000EED :1011C000C96E9EA6FED70784C9CF5BF19E96000E1E :1011D000C96E9EA6FED7C9CF5AF107948A84AAEF9A :1011E00005F00CC100F10DC101F10EC102F10FC1FA :1011F00003F1000E046F000E056F010E066F000E66 :10120000076FC8EC09F01DA11CEF09F01451D8B408 :101210001CEF09F00CC100F10DC101F10EC102F18A :101220000FC103F1000E046F000E056F0A0E066F6A :10123000000E076FC8EC09F0120001010C6B0D6B7A :101240000E6B0F6B12001EC182F40401300E822758 :1012500011EC06F01FC182F40401300E822711EC5C :1012600006F020C182F40401300E822711EC06F052 :1012700021C182F40401300E822711EC06F022C154 :1012800082F40401300E822711EC06F023C182F4AF :101290000401300E822711EC06F024C182F404010F :1012A000300E822711EC06F025C182F40401300EC5 :1012B000822711EC06F026C182F40401300E822749 :1012C00011EC06F027C182F40401300E822711ECE4 :1012D00006F01200BF0EFA6E200E2D6F2C6BD89008 :1012E0000037013702370337D8B07BEF09F02D2FD5 :1012F00070EF09F02C072D070353D8B41200033107 :10130000070B8009326F03390F0B010F2C6F80EC34 :101310005FF0336F2C0580EC5FF0335D335F2C6B37 :101320003233D8B02C272C3332A990EF09F0335147 :101330002C271200B6EC0AF0D8B01200035107199E :10134000286F79EC0AF0D8900751031928AF800F65 :101350001200286B9DEC0AF0D8A0B3EC0AF0D8B0CC :10136000120088EC0AF091EC0AF01F0E296FC9EC0C :101370000AF00B35D8B079EC0AF0D8A00335D8B014 :101380001200292FB7EF09F028B1A0EC0AF01200E3 :10139000286B04510511061107110008D8A09DEC17 :1013A0000AF0D8A0B3EC0AF0D8B01200086B096BB1 :1013B0000A6B0B6BC9EC0AF01F0E296FC9EC0AF01F :1013C00007510B5DD8A4F1EF09F006510A5DD8A4CE :1013D000F1EF09F00551095DD8A4F1EF09F00451CE :1013E000085DD8A004EF0AF00451085F0551D8A0A9 :1013F000053D095F0651D8A0063D0A5F0751D8A0F8 :10140000073D0B5FD8900081292FDEEF09F028B14E :10141000A0EC0AF0286B9DEC0AF0D890CDEC0AF015 :1014200007510B5DD8A421EF0AF006510A5DD8A43C :1014300021EF0AF00551095DD8A421EF0AF004510B :10144000085DD8A030EF0AF0003F30EF0AF0013F0E :1014500030EF0AF0023F30EF0AF0032BD8B412004D :1014600028B1A0EC0AF012000101286B9DEC0AF0F3 :10147000D8B01200D2EC0AF0200E296F00370137E5 :101480000237033711EE27F00A0E2A6FE7360A0EED :10149000E75CD8B0E76EE5522A2F46EF0AF0292F15 :1014A0003EEF0AF028B11D81D890120001010A0E0A :1014B000286F200E296F11EE1DF028512A6F0A0E99 :1014C000D890E652D8B0E726E7322A2F61EF0AF02B :1014D0000333023301330033292F5BEF0AF0E75067 :1014E000FF0FD8A00335D8B012001DB1A0EC0AF050 :1014F0001200045100270551D8B0053D01270651BF :10150000D8B0063D02270751D8B0073D0327120087 :101510000051086F0151096F02510A6F03510B6F9F :1015200012000101006B016B026B036B12000101E1 :10153000046B056B066B076B12000335D8A0120015 :101540000351800B001F011F021F031F003FB0EF5C :101550000AF0013FB0EF0AF0023FB0EF0AF0032BB0 :10156000282B032512000735D8A012000751800B45 :10157000041F051F061F071F043FC6EF0AF0053FA3 :10158000C6EF0AF0063FC6EF0AF0072B282B072507 :1015900012000037013702370337083709370A3797 :1015A0000B3712001D6B1E6B1F6B206B216B226BA8 :1015B000236B246B256B266B276B12001E510F0BC0 :1015C0001E6F1F510F0B1F6F20510F0B206F2151EA :1015D0000F0B216F22510F0B226F23510F0B236F23 :1015E00024510F0B246F25510F0B256F26510F0B24 :0A15F000266F27510F0B276F120022 :10BF0000E844F926000C160C2B0C3F0C520C640C68 :10BF1000760C860C960CA50CB30CC10CCF0CDC0C6B :06BF2000E80CF40C000C1B :00000001FF ./fchanges.txt0000644000175000017500000001632314576573022013474 0ustar anthonyanthonyFirmware names: The firmware files have the following naming structure: Protocol - ModelName - ModelNumber - Feature . hex for example: SQM-LE-4-3-19.hex ModelName: SQMLE: firmware for Ethernet model (SQM-LE) and USB model SQM-LU SQM-LU-DL: firmware for datalogging unit (SQM-LU-DL) Protocol: 4=is the most recent ModelNumber: 3=SQM-LE/U 4=SQM-C 5=SQM-LR 6=SQM-LU-DL 7=SQM-GPS (reserved for GPS model) 9=SQM-B (reserved for Bluetooth model) 11=SQM-LU-DL-V 12=SQM-HDR (reserved for High Dynamic Range) 13=SQM-LU-DLS (snow LED firmware) Feature: 81 (20240219) DL: Removed extra wakeup LED flashing. 80 (20220915) DL: add new DS1390U RTC type. 79 (20210428) LR: add accessories handlers 78 (20200525) Debug: DL,0123456789x log value of 32 bit input. 77 (20200309) DLS: rFx now shows raw uncompensated full frequency with period mode results converted to frequency also in one value. 76 (20200307) DLS: remove temperature compensation from raw frequency ouput used by rFx request. 75 (20200305) DLS: inline raw frequency rFx request added. 74 (20191230) V: power down accelerometer when sleeping. 73 (20190930) DL: bugfix to solve irregular trigger problem when supercap is drained and alarm values get cleared out. 72 (20190911) DLS: Clear out four empty std freq, snow rdg, snow freq registers at byte 16,20,24 in DL record in case snow readings are not enabled. 71 (20190910) DLS: Clear out four empty registers at byte 28-31 in DL record. DLS: Large Std,Snow frequencies reported as unsigned instead of cropped signed. 70 (20190731) DL: bugfix, do not sleep for log on x seconds. This stopped working sometime after version 56. 69 (20190723) DL: set subsequent flag while logging and powered by PC. 68 (20190705) DL: allow logging while connected to USB data cable 67 (20190627) DL/DLS: DL model firmware ver 66 was actually DLS model for a while. This removes the confusion. 66 (20190609) DL: Snow logging done in one larger 32 byte record. Requires latest UDM (after 20190609) to read. 65 (20190501) DL: Logging threshold is respected again after being ignored in version 61-64. 64 (20190318) DL: Allow Log one snow reading from non-ideal-crossover firmware. DL: Linear frequency output report limited to 25kHz (value still scaled up by multiplier of 45000) 63 (20190317) DL: Internal DL change: Only save 8 bit battery voltage since it is only 8 bits anyway. DL: Snow logging combined into one free byte of DL record. New command: rfx reports light flux (a value equivalent the frequency of the light sensor). The dark frequency has been compensated for. 62 (20190112) Feature: Added Snow LED logging and control (A5ex). 61 (20190106) Feature: Added Snow LED status A5x. 60 (20181122) Feature: HDR I2C interface added. 59 (20180905) Feature: color model, option to cycle colors after each reading. 58 (20180721) Feature: Add r1x which reports both averaged and unaveraged values as well as fresh/stale state. 57 (20180207) Bugfix: DL: subsequent readings were ~0.66 brighter 56 (20171019) Vmodel fix: log record report containd extra comma before Acc readings. LE relay output fix: anything but manual caused extra reading reports. 55 (20171008) Test: added bank setting in command response area, no functional update. 54 (20170927) All-bugfix: Reporting compressed fixed to only report "compressed" reading. 53 (20170916) All-bugfix: Prevent psuedo-lockup when DisplayEnabled and ReportingEnabled and ReportingCompressed. 52 (20170815) color model, fix hang when too bright. 51 (20170713) LED accessory apostrophe lights up when relay accessory is on. And prevent extra rx result when only display needs updating. 50 (20170420) DL command LIx now returns m suffix for logging minutes. 49 (20170420) DL bugfixes: - connection at :50-:57 seconds stalled for new RTC. - bugfix Initial false recording on USB connection not made anymore. DL features: - LED fading (~1 sec duration) to indicate wake from sleep every minute. - Initial and subsequent records marked separately. 48 (20170406) DL bugfix - "Every x minutes" mode made records while connected to PC, fixed. 48 (20170316) Addition of snow detection LED control to LE model. 47 (20170203) DL retrieve all packets use pre-request flow control now to fix retrieve loss on slow computers. 46 (20161216) LE Lock switch options added allows fine grain security control. 45 (20161207) reply blocks sent in short loop to reduce retrieve-all time. - Fix LED accessory options always blinked when reading was requested. 44 Added display accessory mode to update only at reading request. Reduce display accessory models from 0-7 to 0-3 to allows mode bit. 43 Added code for solid state relay accessory control. 42 Lock recognized for Report Interval settings to prevent undesired setting. 41 Accessories added to LE/LU/LR models. Humidity/temperature, display, LED. 40 (201607__) - Continuous reporting feature added, with optional LED blinking to indicate reading taken. 39 (20160603) - V model - read accelerometer magnetometer values contiguously to reduce spurious values. 38 (20160225) - Bug fix from ver37 that prevented old DL RTC from working. Loading of variable RTCCTL registers was mixed up. - Put the 4uS RTC delay into all CE on/off settings instead pof just the off settings and some on settings. - remove unneeded RTC delays from between address and data writing. - RTC version reported in command Lvx 37 (20160204) - initial test for DL optional added DS3234SN# RTC 36 (20151211) - Bugfix: DL "Retrieve All" had spurious values. 35 - All: Add stored model information parameters for Lensholder, Lens, Filter. 34 - DL: fix low-memory EEPROM to identify that >32768 records can be made which worked fine in ver25, only an issue if updating firmware on a unit with stored records . - DL: Add diagnostic L7x to report bytes per FLASH, bytes per record. 33 - Clear OERR in receive routine because continuous streaming of commands can lock up unit during Vector monitoring (calibration mode). 32 - Vector: flash LED after logging a reading - Vector: bugfix; logging of Mz corrected 31 - Bugfix: Vector; block simultaneous command and interrupt SPI usage. 30 - Bugfix: DL max record size calculations modularized for various models and memory chips - Bugfix: DL mode xSec,xMin produced unnecessary CRLF. Removing this allows DLRetrieve and these modes to operate at the same time. 29 - DL power save logging fixed (i.e. 5 minute on battery), unreliable FLASH release-power-down fixed. - Period mode to freq mode at 10Hz fixed negative sign detection - DL updated for Vector records of 32bytes 28 - Vector model wiring change to accommodate future GPS 27 - DL EEPROM erase blocking removed, use command L6x to see status now - Added FLASH power-down 26 - Allow more than 64char commands (up from 32) 25 - DL fix Retrieve log report data corruption 24 - DL added code to pause RTC 23 - DL fix of dark recordings on battery power 22 - buffered cells reported "UX" 21 - Enable filtered period to remove jitter 20 - DL (data logging) synchronized to RTC 19 - simulate calculations added 18 - filtered period to remove jitter ./view-refresh.png0000644000175000017500000000124614576573022014267 0ustar anthonyanthonyPNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<#IDAT8OHTQ9o9T:/-bhҢ .Z \FNDэ$Y?HT?D]m*"  D5#4e0#XfV.r9wνw$6 811 v;OU7??ߑH$.Yc̻H$򨥥F6=, ׂL&s̶XFkc󾾾SA ؔJdٮL>tX,5<,+733sH Iui~ssJrTR @6_E unnn+P`Y Tp{xx1mm1w:;;Iڻjup]\8,$c+ty/%H$q||1* ~|yy`%LT}A=Jj &&&N{xP(UIfmm-U.Լ7Xl$˝}gjf-`d2ٞJB===._a  3!/$M+"YUZeU\IENDB`./worldmap.pas0000644000175000017500000001612414576573021013505 0ustar anthonyanthonyunit worldmap; {$mode objfpc} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls //, Types ; type { TFormWorldmap } TFormWorldmap = class(TForm) ActualElevationEdit: TLabeledEdit; ActualLatitudeEdit: TLabeledEdit; ActualLongitudeEdit: TLabeledEdit; ApplyButton: TButton; CloseButton: TButton; CursorLatitude: TLabeledEdit; CursorLongitude: TLabeledEdit; DesiredElevationEdit: TLabeledEdit; DesiredLabel: TLabel; AppliedLabel: TLabel; DesiredLatitudeEdit: TLabeledEdit; DesiredLongitudeEdit: TLabeledEdit; MapImage: TImage; CreditLabel: TLabel; CursorLabel: TLabel; LatitudeLabel: TLabel; LongitudeLabel: TLabel; ElevationLabel: TLabel; UsageInstructions: TLabel; procedure ApplyButtonClick(Sender: TObject); procedure CancelButtonClick(Sender: TObject); procedure CloseButtonClick(Sender: TObject); procedure DesiredElevationEditChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure MapImageClick(Sender: TObject); procedure MapImageMouseEnter(Sender: TObject); procedure MapImageMouseLeave(Sender: TObject); procedure MapImageMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer ); procedure DesiredLatitudeEditChange(Sender: TObject); procedure DesiredLongitudeEditChange(Sender: TObject); private { private declarations } public { public declarations } procedure WorldmapShow(CalledSection:String; CalledPostion:String); end; //Declare local procedures procedure UpdateLocationLines(); procedure CheckApplyButton(); var FormWorldmap: TFormWorldmap; TempLat, TempLon: Extended; implementation uses //convertlogfileunit appsettings //for file locations , dlheader //contains the DLHeader code , plotter , Unit1 ; const mapfile = 'world.topo.bathy.200412.3x800x400.jpg'; var WorkingSection:String; WorkingPosition:String; { TFormWorldmap } procedure TFormWorldmap.FormShow(Sender: TObject); var LatitudeString, LongitudeString, ElevationString: String; begin //Get lat/lon displayed on this window TempLat:=MyLatitude; TempLon:=MyLongitude; LatitudeString:=Format('%0.6f',[TempLat]); DesiredLatitudeEdit.Text:=LatitudeString; ActualLatitudeEdit.Text:=LatitudeString; LongitudeString:=Format('%0.6f',[TempLon]); DesiredLongitudeEdit.Text:=LongitudeString; ActualLongitudeEdit.Text:=LongitudeString; ElevationString:=Format('%0.0f',[MyElevation]); DesiredElevationEdit.Text:=ElevationString; ActualElevationEdit.Text:=ElevationString; UpdateLocationLines(); //ApplyButton.Enabled:=False; CheckApplyButton(); end; procedure TFormWorldmap.MapImageClick(Sender: TObject); begin DesiredLatitudeEdit.Text:=CursorLatitude.Caption; DesiredLongitudeEdit.Text:=CursorLongitude.Caption; TempLat:=StrToFloatDef(DesiredLatitudeEdit.text,0); TempLon:=StrToFloatDef(DesiredLongitudeEdit.text,0); UpdateLocationLines(); CheckApplyButton(); //ApplyButton.Enabled:=True; end; procedure TFormWorldmap.MapImageMouseEnter(Sender: TObject); begin //Enable cursor display CursorLatitude.Visible:=True; CursorLongitude.Visible:=True; CursorLabel.Visible:=True; end; procedure TFormWorldmap.MapImageMouseLeave(Sender: TObject); begin //Disable cursor display CursorLatitude.Visible:=False; CursorLongitude.Visible:=False; CursorLabel.Visible:=False; end; procedure TFormWorldmap.ApplyButtonClick(Sender: TObject); var LatitudeString, LongitudeString, ElevationString, LocationString: String; begin //Latitude TempLat:=StrToFloat(DesiredLatitudeEdit.Text); MyLatitude:=TempLat; ActualLatitudeEdit.Text:=FloatToStr(TempLat); LatitudeString:=FloatToStr(TempLat); //Longitude TempLon:=StrToFloat(DesiredLongitudeEdit.Text); MyLongitude:=TempLon; ActualLongitudeEdit.Text:=FloatToStr(TempLon); LongitudeString:=FloatToStr(TempLon); //Elevation. Ignore decimal point as per IDA/ChrisKyba header spec. MyElevation:= round(StrToFloatDef(DesiredElevationEdit.Text,0)); ActualElevationEdit.Text:=Format('%0.0f',[MyElevation]); ElevationString:=DesiredElevationEdit.Text; LocationString:= LatitudeString + ', ' + LongitudeString + ', ' + ElevationString; //Set position values on called screen. //Also, write position to the associstaed section in the ini file. { TODO : changed to called function } if WorkingSection='DLHeader' then begin DLHeaderForm.PositionEntry.Text:=LocationString; vConfigurations.WriteString(SerialINISection,'Position',LocationString); end; if WorkingSection='Plotter' then begin PlotterForm.PositionEntry.Text:=LocationString; vConfigurations.WriteString(PlotterINISection,'Position',LocationString); end; Application.ProcessMessages; CheckApplyButton(); UpdateLocationLines(); end; procedure TFormWorldmap.CancelButtonClick(Sender: TObject); begin Close; end; procedure TFormWorldmap.CloseButtonClick(Sender: TObject); begin Close; end; procedure TFormWorldmap.DesiredElevationEditChange(Sender: TObject); begin CheckApplyButton(); end; procedure TFormWorldmap.DesiredLatitudeEditChange(Sender: TObject); begin CheckApplyButton(); end; procedure TFormWorldmap.DesiredLongitudeEditChange(Sender: TObject); begin CheckApplyButton(); end; procedure TFormWorldmap.MapImageMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin with FormWorldmap.MapImage do begin CursorLatitude.Caption:=format('%0.6f',[(Y - Height/2) * -90/(Height/2)],Unit1.FPointSeparator); CursorLongitude.Caption:=format('%0.6f',[(X - Width/2) * 180/(Width/2)],Unit1.FPointSeparator); end; end; procedure CheckApplyButton(); var Different: Boolean; begin with FormWorldmap do begin if DesiredLatitudeEdit.Text <> ActualLatitudeEdit.Text then begin Different:=True; ActualLatitudeEdit.Font.Color:=clRed; end else ActualLatitudeEdit.Font.Color:=clDefault; if DesiredLongitudeEdit.Text <> ActualLongitudeEdit.Text then begin Different:=True; ActualLongitudeEdit.Font.Color:=clRed; end else ActualLongitudeEdit.Font.Color:=clDefault; if DesiredElevationEdit.Text <> ActualElevationEdit.Text then begin Different:=True; ActualElevationEdit.Font.Color:=clRed; end else ActualElevationEdit.Font.Color:=clDefault; ApplyButton.Enabled:=Different; end; end; procedure UpdateLocationLines(); var LatitudePostion, LongitudePostion : Integer; begin with FormWorldmap.MapImage do begin Picture.LoadFromFile(appsettings.DataDirectory+mapfile); LatitudePostion:=round(Height/2 - (TempLat * Height/2)/90 ); LongitudePostion:=round(Width/2 + (TempLon * Width/2)/180); Picture.Bitmap.Canvas.Pen.Color:=clWhite; Picture.Bitmap.Canvas.Line(0,LatitudePostion, Width,LatitudePostion); Picture.Bitmap.Canvas.Line(LongitudePostion,0, LongitudePostion,Height); end; end; procedure TFormWorldmap.WorldmapShow(CalledSection:String; CalledPostion:String); begin WorkingSection:=CalledSection; WorkingPosition:=CalledPostion; ShowModal; end; initialization {$I worldmap.lrs} end. ./quaternions.pas0000644000175000017500000000670314576573021014232 0ustar anthonyanthonyunit Quaternions; // Source: http://rosettacode.org/wiki/Quaternion_type#Delphi {$mode delphi}{$H+} interface type TQuaternion = record A, B, C, D: double; function Init (aA, aB, aC, aD : double): TQuaternion; function Norm : double; function Conjugate : TQuaternion; function ToString : string; class operator Negative (Left : TQuaternion): TQuaternion; class operator Positive (Left : TQuaternion): TQuaternion; class operator Add (Left, Right : TQuaternion): TQuaternion; class operator Add (Left : TQuaternion; Right : double): TQuaternion; overload; class operator Add (Left : double; Right : TQuaternion): TQuaternion; overload; class operator Subtract (Left, Right : TQuaternion): TQuaternion; class operator Multiply (Left, Right : TQuaternion): TQuaternion; class operator Multiply (Left : TQuaternion; Right : double): TQuaternion; overload; class operator Multiply (Left : double; Right : TQuaternion): TQuaternion; overload; end; implementation uses SysUtils; { TQuaternion } function TQuaternion.Init(aA, aB, aC, aD: double): TQuaternion; begin A := aA; B := aB; C := aC; D := aD; result := Self; end; function TQuaternion.Norm: double; begin result := sqrt(sqr(A) + sqr(B) + sqr(C) + sqr(D)); end; function TQuaternion.Conjugate: TQuaternion; begin result.B := -B; result.C := -C; result.D := -D; end; class operator TQuaternion.Negative(Left: TQuaternion): TQuaternion; begin result.A := -Left.A; result.B := -Left.B; result.C := -Left.C; result.D := -Left.D; end; class operator TQuaternion.Positive(Left: TQuaternion): TQuaternion; begin result := Left; end; class operator TQuaternion.Add(Left, Right: TQuaternion): TQuaternion; begin result.A := Left.A + Right.A; result.B := Left.B + Right.B; result.C := Left.C + Right.C; result.D := Left.D + Right.D; end; class operator TQuaternion.Add(Left: TQuaternion; Right: double): TQuaternion; begin result.A := Left.A + Right; result.B := Left.B; result.C := Left.C; result.D := Left.D; end; class operator TQuaternion.Add(Left: double; Right: TQuaternion): TQuaternion; begin result.A := Left + Right.A; result.B := Right.B; result.C := Right.C; result.D := Right.D; end; class operator TQuaternion.Subtract(Left, Right: TQuaternion): TQuaternion; begin result.A := Left.A - Right.A; result.B := Left.B - Right.B; result.C := Left.C - Right.C; result.D := Left.D - Right.D; end; class operator TQuaternion.Multiply(Left, Right: TQuaternion): TQuaternion; begin result.A := Left.A * Right.A - Left.B * Right.B - Left.C * Right.C - Left.D * Right.D; result.B := Left.A * Right.B + Left.B * Right.A + Left.C * Right.D - Left.D * Right.C; result.C := Left.A * Right.C - Left.B * Right.D + Left.C * Right.A + Left.D * Right.B; result.D := Left.A * Right.D + Left.B * Right.C - Left.C * Right.B + Left.D * Right.A; end; class operator TQuaternion.Multiply(Left: double; Right: TQuaternion): TQuaternion; begin result.A := Left * Right.A; result.B := Left * Right.B; result.C := Left * Right.C; result.D := Left * Right.D; end; class operator TQuaternion.Multiply(Left: TQuaternion; Right: double): TQuaternion; begin result.A := Left.A * Right; result.B := Left.B * Right; result.C := Left.C * Right; result.D := Left.D * Right; end; function TQuaternion.ToString: string; begin result := Format('%f + %fi + %fj + %fk', [A, B, C, D]); end; end. ./ah_math.pas0000644000175000017500000001027714576573021013264 0ustar anthonyanthonyunit ah_math; {$MODE Delphi} {$i ah_def.inc } //(*$define nomath *) (*$b-*) { I may make use of the shortcut boolean eval } (*@/// interface *) interface { Angular functions } function tan(x:extended):extended; function arctan2(a,b:extended):extended; function arcsin(x:extended):extended; function arccos(x:extended):extended; { Convert degree and radians } function deg2rad(x:extended):extended; function rad2deg(x:extended):extended; { Angular functions with degrees } function sin_d(x:extended):extended; function cos_d(x:extended):extended; function tan_d(x:extended):extended; function arctan2_d(a,b:extended):extended; function arcsin_d(x:extended):extended; function arccos_d(x:extended):extended; function arctan_d(x:extended):extended; { Limit degree value into 0..360 range } function put_in_360(x:extended):extended; { Modulo operation which returns the value in the range 1..b } function adjusted_mod(a,b:integer):integer; (*@\\\*) (*@/// implementation *) implementation (*$ifndef nomath *) uses math; (*$endif *) (*@/// function deg2rad(x:extended):extended; *) function deg2rad(x:extended):extended; begin result:=x/180*pi; end; (*@\\\*) (*@/// function rad2deg(x:extended):extended; *) function rad2deg(x:extended):extended; begin result:=x*180/pi; end; (*@\\\*) (*$ifdef nomath *) { D1 has no unit math, so here are the needed functions } (*@/// function tan(x:extended):extended; *) function tan(x:extended):extended; begin result:=sin(x)/cos(x); end; (*@\\\*) (*@/// function arctan2(a,b:extended):extended; *) function arctan2(a,b:extended):extended; begin result:=arctan(a/b); if b<0 then result:=result+pi; end; (*@\\\*) (*@/// function arcsin(x:extended):extended; *) function arcsin(x:extended):extended; begin result:=arctan(x/sqrt(1-x*x)); end; (*@\\\*) (*@/// function arccos(x:extended):extended; *) function arccos(x:extended):extended; begin result:=pi/2-arcsin(x); end; (*@\\\*) (*$else (*@/// function tan(x:extended):extended; *) function tan(x:extended):extended; begin result:=math.tan(x); end; (*@\\\*) (*@/// function arctan2(a,b:extended):extended; *) function arctan2(a,b:extended):extended; begin result:=math.arctan2(a,b); end; (*@\\\*) (*@/// function arcsin(x:extended):extended; *) function arcsin(x:extended):extended; begin result:=math.arcsin(x); end; (*@\\\*) (*@/// function arccos(x:extended):extended; *) function arccos(x:extended):extended; begin result:=math.arccos(x); end; (*@\\\*) (*$endif *) { Angular functions with degrees } (*@/// function sin_d(x:extended):extended; *) function sin_d(x:extended):extended; begin sin_d:=sin(deg2rad(put_in_360(x))); end; (*@\\\000000030E*) (*@/// function cos_d(x:extended):extended; *) function cos_d(x:extended):extended; begin cos_d:=cos(deg2rad(put_in_360(x))); end; (*@\\\000000030E*) (*@/// function tan_d(x:extended):extended; *) function tan_d(x:extended):extended; begin tan_d:=tan(deg2rad(put_in_360(x))); end; (*@\\\0000000324*) (*@/// function arctan2_d(a,b:extended):extended; *) function arctan2_d(a,b:extended):extended; begin result:=rad2deg(arctan2(a,b)); end; (*@\\\0000000320*) (*@/// function arcsin_d(x:extended):extended; *) function arcsin_d(x:extended):extended; begin result:=rad2deg(arcsin(x)); end; (*@\\\000000031D*) (*@/// function arccos_d(x:extended):extended; *) function arccos_d(x:extended):extended; begin result:=rad2deg(arccos(x)); end; (*@\\\000000031D*) (*@/// function arctan_d(x:extended):extended; *) function arctan_d(x:extended):extended; begin result:=rad2deg(arctan(x)); end; (*@\\\000000031E*) (*@/// function put_in_360(x:extended):extended; *) function put_in_360(x:extended):extended; begin result:=x-round(x/360)*360; while result<0 do result:=result+360; end; (*@\\\*) (*@/// function adjusted_mod(a,b:integer):integer; *) function adjusted_mod(a,b:integer):integer; begin result:=a mod b; while result<1 do result:=result+b; end; (*@\\\*) (*@\\\*) (*$ifdef delphi_ge_2 *) (*$warnings off *) (*$endif *) end. (*@\\\003F000901000901000901000A01000701000011000701*) ./header_utils.pas0000644000175000017500000016164114576573021014335 0ustar anthonyanthonyunit header_utils; // Header file utilities {$mode objfpc}{$H+} interface uses Classes, SysUtils, StrUtils, Forms, Graphics, dateutils , appsettings, dlheader, viewlog , synaser, synautil, blcksock , math // required for radtodeg , Printers, Process , LazSysUtils //For NowUTC() ; function OpenComm() : boolean; function CloseComm() : boolean; procedure WriteDLHeader(Style:String; Setting:String=''; Ext: String = '.dat'); function SendGet(command:string; LeaveOpen:boolean = False; Timeout:Integer=3000; GetAlso:boolean = True; HideStatus:boolean = False) : string; function GetReading(): String; procedure DisplayedReading(Darkness:Double); procedure StatusMessage(Mstring:string); procedure GetVersion; procedure ClearLockVisibility; procedure CheckLockVisibility; procedure UpdateCalReport; procedure PrintLine(LabelText:String; DataText: String=''); function FixDate(incoming:AnsiString): AnsiString; function ParameterCommand(Command:String): Boolean; var ParameterValue: TStringList; FieldNames:String; //Data line entries in human format FieldUnits:String; //Units of data line entries implementation uses Unit1 , vinfo , dlerase //Data logger erase-all form and some variables , Vector //VectorTab model , Logcont ; { Open the communications port - Will only open if not already opened. } function OpenComm() : boolean; begin if not CommOpened then begin { Clear out old port name. } PortName:=''; { Check selected communications interface } case SelectedInterface of 'USB': begin PortName:=Form1.USBPort.Text; if (PortName<>'') then begin ser.LinuxLock:=False; //lock file sometimes persists stuck if program closes before port SelectedPort:=PortName; ser.Connect(SelectedPort); ser.config(115200, 8, 'N', SB1, False, False); //original //ser.config(115200, 8, 'N', SB1, False,True); //test hardware flow control PortName:=SelectedPort; OpenComm:=True; //Indicate success end; end; { The XPort Ethernet module may have been set to auto-disconnect in a few seconds. Each communication with it must be checked for availability.} 'Eth','WiFi': begin PortName:=Form1.EthernetIP.Text; if (PortName<>'') then begin EthSocket := TTCPBlockSocket.Create; EthSocket.ConvertLineEnd := True; //Try setting the timeout a bit longer than normal, because // finding Ethernet devices failed a few times on slow Windows7 netbook. EthSocket.SetRecvTimeout(2000); EthSocket.SetSendTimeout(2000); SelectedIP:=PortName; SelectedPort:=Form1.EthernetPort.Text; EthSocket.Connect(SelectedIP, SelectedPort); EthConnected:=True; PortName:=SelectedIP; OpenComm:=True; //Indicate success end; end; 'RS232': begin ser.LinuxLock:=False; //lock file sometimes persists stuck if program closes before port //writeln(ser.LastError, ' ', ser.LastErrorDesc); //writeln('RS232PortName=', RS232PortName); ser.Connect(RS232PortName); //writeln(ser.LastError, ' ', ser.LastErrorDesc); //writeln('RS232PortBaud=', RS232PortBaud); ser.config(RS232PortBaud, 8, 'N', SB1, False, False); PortName:=RS232PortName; //if ser.InstanceActive then // writeln('active') //else begin // writeln('not active'); // writeln(ser.LastError, ' ', ser.LastErrorDesc); //end; OpenComm:=True; //Indicate success end; end; if OpenComm then begin CommOpened:=True; //StatusMessage('OpenComm'); form1.CommOpen.Brush.Color:=clLime; end else CommOpened:=False; end; end; // Close the communications port function CloseComm() : boolean; begin unit1.Form1.CommBusy.Enabled:=False; //Prevent further triggers to the comm. busy timer. CommBusyTime:=0; //Reset comm. busy count. CommOpened:=False; //Indicate that the comm. port is closed. {Close all UDM communication ports. - Ports not already opened will have an ignored exception.} try ser.Purge; ser.CloseSocket; except StatusMessage('ser.CloseSocket exception'); end; try if EthConnected then begin EthSocket.CloseSocket; EthSocket.Free; EthConnected:=False; end; except StatusMessage('EthSocket.CloseSocket exception'); end; CloseComm:=True; //Indicate success Unit1.Form1.CommOpen.Brush.Color:=clGray; end; procedure WriteDLHeader(Style:String; Setting: String = ''; Ext: String = '.dat' ); //Style: // DL-Log (Short record) // LE (Long record) default // ADA (Auroral Detection Alarm) // DL-V-Log (Vector model) // DL-V-HSLog (Vector model hard soft calibration log) //Setting describes how UDM was used to create this logfile. var HeaderFirmwareVersion: AnsiString; result: AnsiString; //General purpose result result_ix: AnsiString; //Information result ProtocolNumber,ModelNumber,FeatureNumber,SerialNumber : Integer; Info: TVersionInfo; AccCalPos: Integer; //Accelerometer position ClockDiffSeconds:Integer; ThisMomentUTC, UnitTime: TDateTime; UnitClock: AnsiString; NumberOfFields:Integer; ExternalGPSHeader: Boolean = False; HeaderLines: TStringList; //Contrains all headerlines for easier counting up later. s:String; // General purpose string begin HeaderLines:=TStringList.Create; //Only use external GPS header information if external GPS is enabled and not getting from logger. ExternalGPSHeader:=(FormLogCont.GPSLogIndicator.Visible and not AnsiContainsStr(Setting,'retrieve')); {Gather information about the selected unit} result_ix:=SendGet('ix'); ProtocolNumber:=StrToIntDef(AnsiMidStr(result_ix,3,8),0); ModelNumber:=StrToIntDef(AnsiMidStr(result_ix,12,8),0); FeatureNumber:=StrToIntDef(AnsiMidStr(result_ix,21,8),0); SerialNumber:=StrToIntDef(AnsiMidStr(result_ix,30,8),0); HeaderFirmwareVersion:= IntToStr(ProtocolNumber)+'-'+ IntToStr(ModelNumber)+'-'+ IntToStr(FeatureNumber); LogFileName:=Format('%s%s_%s'+Ext,[RemoveMultiSlash(appsettings.LogsDirectory + DirectorySeparator),FormatDateTime('yyyymmdd"_"hhnnss',Now()),DLHeaderForm.InstrumentIDEntry.Text]); CSVLogFileName:=Format('%s%s_%s.csv',[RemoveMultiSlash(appsettings.LogsDirectory + DirectorySeparator),FormatDateTime('yyyymmdd"_"hhnnss',Now()),DLHeaderForm.InstrumentIDEntry.Text]); if TransferCSV then begin AssignFile(DLRecFile,CSVLogFileName); Rewrite(DLRecFile); //Open file for writing WriteLn(DLRecFile,''); //Write to empty file as placeholder Flush(DLRecFile); CloseFile(DLRecFile); end; AssignFile(DLRecFile,LogFileName); Rewrite(DLRecFile); //Open file for writing { Write header } SetTextLineEnding(DLRecFile,#13#10); HeaderLines.Add('# Light Pollution Monitoring Data Format 1.0'); HeaderLines.Add('# URL: http://www.darksky.org/measurements'); //Determine number of header lines based on style of logging //if SelectedModel=model_V then // HeaderLines.Add('# Number of header lines: 46') //else // HeaderLines.Add('# Number of header lines: 36'); HeaderLines.Add('# This data is released under the following license: ODbL 1.0 http://opendatacommons.org/licenses/odbl/summary/'); HeaderLines.Add('# Device type: '+SelectedModelDescription); HeaderLines.Add('# Instrument ID: '+DLHeaderForm.InstrumentIDEntry.Text); HeaderLines.Add('# Data supplier: '+DLHeaderForm.DataSupplierEntry.Text); HeaderLines.Add('# Location name: '+DLHeaderForm.LocationNameEntry.Text); HeaderLines.Add('# Position (lat, lon, elev(m)): '+DLHeaderForm.PositionEntry.Text); HeaderLines.Add('# Local timezone: '+DLHeaderForm.TZLocationBox.Text); HeaderLines.Add('# Time Synchronization: '+DLHeaderForm.TimeSynchEntry.Text); { GPS moving platform } if ExternalGPSHeader then HeaderLines.Add('# Moving / Stationary position: MOVING') else HeaderLines.Add('# Moving / Stationary position: '+DLHeaderForm.MovingStationaryPositionCombo.Text); HeaderLines.Add('# Moving / Fixed look direction: '+DLHeaderForm.MovingStationaryDirectionCombo.Text); HeaderLines.Add('# Number of channels: '+DLHeaderForm.NumberOfChannelsEntry.Text); HeaderLines.Add('# Filters per channel: '+DLHeaderForm.FiltersPerChannelEntry.Text); HeaderLines.Add('# Measurement direction per channel: '+DLHeaderForm.MeasurementDirectionPerChannelEntry.Text); HeaderLines.Add('# Field of view (degrees): '+DLHeaderForm.FieldOfViewEntry.Text); {Determing number of field that are recorded} if Style = 'DL-Log' then {Short record} NumberOfFields:=5 else if Style = 'DL-V-Log' then //vector model NumberOfFields:=14 else if Style = 'DL-V-HSLog' then //vector model Hard/soft calibration log NumberOfFields:=3 else if Style = 'ADA' then //aurora NumberOfFields:=7 else if Style = 'GDM' then //geomagnetic disturbance meter NumberOfFields:=4 else if Style = 'C' then //color model NumberOfFields:=8 else {Long record} NumberOfFields:=6; if GoToEnabled then NumberOfFields:=NumberOfFields+2; if Freshness then NumberOfFields:=NumberOfFields+2; if ExternalGPSHeader then NumberOfFields:=NumberOfFields+5; if NumberOfMultipleDevices>0 then NumberOfFields:=NumberOfFields+1; HeaderLines.Add('# Number of fields per line: ' + IntToStr(NumberOfFields)); HeaderLines.Add(Format('# SQM serial number: %d',[SerialNumber])); HeaderLines.Add('# SQM hardware identity: ' + SelectedHardwareID); HeaderLines.Add('# SQM firmware version: '+HeaderFirmwareVersion); HeaderLines.Add('# SQM cover offset value: '+DLHeaderForm.CoverOffsetEntry.Text); HeaderLines.Add('# SQM readout test ix (Information): '+result_ix); HeaderLines.Add('# SQM readout test rx (Reading): '+sendget('rx')); if not (Style = 'GDM') then HeaderLines.Add('# SQM readout test cx (Calibration): '+sendget('cx')); HeaderLines.Add('# SQM readout test Ix (Report Interval): '+sendget('Ix')); {Log the time difference, and logging threshold} case SelectedModel of model_DL, model_V, model_GPS, model_DLS: begin result:=sendget('Lcx'); { Read the RTC } ThisMomentUTC:=LazSysUtils.NowUTC(); if Length(result)>=21 then begin UnitClock:=FixDate(AnsiMidStr(Trim(result),4,19)); try UnitTime:=ScanDateTime('yy-mm-dd hh:nn:ss',LeftStr(UnitClock,9)+RightStr(UnitClock,8)); except StatusMessage('Invalid RTC from device = '+UnitClock); UnitTime:=ThisMomentUTC; end; ClockDiffSeconds:=SecondsBetween(ThisMomentUTC,UnitTime); if ThisMomentUTC>UnitTime then ClockDiffSeconds:=ClockDiffSeconds*-1; HeaderLines.Add('# DL time difference (seconds): '+IntToStr(ClockDiffSeconds)); end else HeaderLines.Add('# DL time difference: ???'); HeaderLines.Add('# DL retrieved at (UTC): '+FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz',ThisMomentUTC)); result:=sendget('LIx'); {Read the logging trigger and threshold setting} HeaderLines.Add('# DL trigger seconds : '+IntToStr(StrToIntDef(AnsiMidStr(result,4,10),0))); HeaderLines.Add('# DL trigger minutes : '+IntToStr(StrToIntDef(AnsiMidStr(result,16,10),0))); HeaderLines.Add('# DL trigger threshold : '+FloatToStr(StrToFloatDef(AnsiMidStr(result,52,11),0,FPointSeparator))); end; end; { TODO : vector cal info } //if vector model then write accellerometer and magnetic calibration values if SelectedModel=model_V then begin for AccCalPos:=1 to 6 do begin HeaderLines.Add(Format('# Acceleration position %d: %6.0f %6.0f %6.0f',[AccCalPos, w.getv(AccCalPos-1, 0), w.getv(AccCalPos-1, 1), w.getv(AccCalPos-1, 2)])); end; HeaderLines.Add(Format('# Magnetic maximum XYZ: %7.0f %7.0f %7.0f',[Mxmax,Mymax,Mzmax])); HeaderLines.Add(Format('# Magnetic minimum XYZ: %7.0f %7.0f %7.0f',[Mxmin,Mymin,Mzmin])); end; HeaderLines.Add('# Comment: '+DLHeaderForm.UserComment1.Text); HeaderLines.Add('# Comment: '+DLHeaderForm.UserComment2.Text); HeaderLines.Add('# Comment: '+DLHeaderForm.UserComment3.Text); HeaderLines.Add('# Comment: '+DLHeaderForm.UserComment4.Text); HeaderLines.Add('# Comment: '+DLHeaderForm.UserComment5.Text); // Log the UDM version. Info := TVersionInfo.Create; Info.Load(HINSTANCE); HeaderLines.Add(Format('# UDM version: %s', [IntToStr(Info.FixedInfo.FileVersion[0]) +'.'+IntToStr(Info.FixedInfo.FileVersion[1]) +'.'+IntToStr(Info.FixedInfo.FileVersion[2]) +'.'+IntToStr(Info.FixedInfo.FileVersion[3])])); Info.Free; //Log the current UDM settings that were passed here. HeaderLines.Add(Format('# UDM setting: %s',[Setting])); HeaderLines.Add('# blank line'); //Determing Field names and units if Style = 'DL-Log' then begin //Short record FieldNames:='# UTC Date & Time, Local Date & Time, Temperature, Voltage, MSAS'; FieldUnits:='# YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Celsius;Volts;mag/arcsec^2'; if StrToInt(SelectedFeature)>=49 then begin FieldNames:=FieldNames+', Record type'; FieldUnits:=FieldUnits+';Init/Subs'; end; end else if Style = 'DL-V-Log' then begin if Setting ='One record logged' then begin FieldNames:='# UTC Date & Time, Local Date & Time, Temperature, Counts, Frequency, MSAS, Ax, Ay, Az, Mx, My, Mz, Altitude, Zenith, Azimuth, Vibration'; FieldUnits:='# YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Celsius;number;Hz;mag/arcsec^2;Ax;Ay;Az;Mx;My;Mz;degrees;degrees;degrees;count'; end else if ((Setting='DL Retrieve All') or (Setting='DL-V binary retrieve')) then begin FieldNames:='# UTC Date & Time, Local Date & Time, Temperature, Voltage, MSAS, Ax, Ay, Az, Mx, My, Mz, Altitude, Zenith, Azimuth, Vibration'; FieldUnits:='# YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Celsius;Volts;mag/arcsec^2;Ax;Ay;Az;Mx;My;Mz;degrees;degrees;degrees;count'; end else begin FieldNames:='# UTC Date & Time, Local Date & Time, Temperature, Counts, Frequency, MSAS, Ax, Ay, Az, Mx, My, Mz, Altitude, Zenith, Azimuth, Vibration'; FieldUnits:='# YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Celsius;number;Hz;mag/arcsec^2;Ax;Ay;Az;Mx;My;Mz;degrees;degrees;degrees;count'; end; //Newer DL units have identification for initial or subsequent records. if StrToInt(SelectedFeature)>=49 then begin FieldNames:=FieldNames+', Record type'; FieldUnits:=FieldUnits+';Init/Subs'; end; end else if Style = 'DL-V-HSLog' then begin FieldNames:='# Counts, Counts, Counts'; FieldUnits:='# Mx, My, Mz'; end else if Style = 'ADA' then begin FieldNames:='# UTC Date & Time, Local Date & Time, Frequency, Counts1, Time1, Counts2, Time2, ADAFactor'; FieldUnits:='# YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Hz;Counts;Seconds;Counts;Seconds;Ratio'; end else if Style = 'GDM' then begin FieldNames:='# UTC Date & Time, Local Date & Time, RawMag, Temperature, CompMag'; FieldUnits:='# YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Hz;Counts;Celcius;Counts'; end else if Style = 'C' then begin FieldNames:='# UTC Date & Time, Local Date & Time, Temperature, Counts, Frequency, MSAS, Scale, Color, Cycling'; FieldUnits:='# YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Celsius;number;Hz;mag/arcsec^2;scale;color;F/C'; end else begin //Long record FieldNames:='# UTC Date & Time, Local Date & Time, Temperature, Counts, Frequency, MSAS'; FieldUnits:='# YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Celsius;number;Hz;mag/arcsec^2'; end; { Optional Raw frequency} if ((SelectedModel=model_DLS) and RawFrequencyEnabled) then begin case Style of 'DL-Log':begin end; else begin FieldNames:=FieldNames+', Raw frequency'; FieldUnits:=FieldUnits+';Hz'; end; end; end; { Optional Snow factor header for datalogger} if ((SelectedModel=model_DLS) and SnowLoggingEnabled) then begin case Style of 'DL-Log':begin FieldNames:=FieldNames+', Std lin., Snow MSAS, Snow lin.'; FieldUnits:=FieldUnits+';n;mag/arcsec^2;n'; end; else begin FieldNames:=FieldNames+', Snow/Dark LED status'; FieldUnits:=FieldUnits+';S/D'; end; end; end; { Optional GoTo position data } if GoToEnabled then begin FieldNames:=FieldNames+', Zenith, Azimuth'; FieldUnits:=FieldUnits+';deg;deg'; end; { Optional Moving platform data } if (Freshness and not(AnsiContainsStr(LowerCase(Setting),'retrieve'))) then begin FieldNames:=FieldNames+', MSASraw, Status'; FieldUnits:=FieldUnits+';mag/arcsec^2;F/P/S'; end; //Optional Moon data if FormLogCont.OptionsGroup.Checked[0] then begin FieldNames:=FieldNames+', MoonPhaseDeg, MoonElevDeg, MoonIllum, MoonAzimuth'; FieldUnits:=FieldUnits+';Degrees;Degrees;Percent;Degrees'; end; //Optional GPS data if ExternalGPSHeader then begin FieldNames:=FieldNames+', Latitude, Longitude, Elevation, Speed, Satellites'; FieldUnits:=FieldUnits+';Degrees;Degrees;meters;meters/second;Number'; end; //Optional Humidity data if A1Enabled then begin FieldNames:=FieldNames+', Humidity'; FieldUnits:=FieldUnits+';Percent'; end; {Optoinal Serial number} if NumberOfMultipleDevices>0 then begin FieldNames:=FieldNames+', SerialNumber'; FieldUnits:=FieldUnits+';S/N'; end; HeaderLines.Add(FieldNames); HeaderLines.Add(FieldUnits); if Ext='.dat' then HeaderLines.Add('# END OF HEADER'); {Count header lines and insert number in second line.} HeaderLines.Insert(2,'# Number of header lines: '+ IntToStr(HeaderLines.Count+1)); { Write header to file } for s in HeaderLines do begin Writeln(DLRecFile, s); end; HeaderLines.Destroy; Flush(DLRecFile); CloseFile(DLRecFile); end; // Send a command strings then return the result function SendGet(command:string; LeaveOpen:boolean = False; Timeout:Integer=3000; GetAlso:boolean = True; HideStatus:boolean = False) : string; //LeaveOpen indicates that the communication port should be left open var //ErrorNumber: Integer; ErrorString: AnsiString; begin {Start up Comm busy timer} CommBusyTime:=0; //Reset count unit1.Form1.CommBusy.Enabled:=True; //Initialze output string to nothing. SendGet:=''; ErrorString:=''; {Request to open communications, even if already opened. } OpenComm(); { Check selected communication method. } case SelectedInterface of 'USB','RS232': begin ser.Purge;//debug (does not seem to work with some Macs ) while ser.CanRead(10) do //Try another purge method ser.Recvbyte(10);//was recvstring ser.SendString(command); if (GetAlso) then SendGet:=ser.Recvstring(Timeout); If CompareStr(ser.LastErrorDesc,'OK')<>0 then ErrorString:='Error: '+ser.LastErrorDesc; end; 'Eth','WiFi': begin EthSocket.ResetLastError; EthSocket.Purge; EthSocket.SendString(command); if (GetAlso) then SendGet:=EthSocket.RecvString(Timeout); {If not connected, then retry the connection. } If ((EthSocket.LastError=104) or (EthSocket.LastError=10054))then begin OpenComm(); EthSocket.ResetLastError; EthSocket.SendString(command); if (GetAlso) then SendGet:=EthSocket.RecvString(Timeout); end; If (EthSocket.LastError<>0) then begin ErrorString:= ' ['+IntToStr(EthSocket.LastError)+']'+ EthSocket.LastErrorDesc; end; end; end; if not HideStatus then //Comment this out to allow all messages through to logging begin if GetAlso then StatusMessage('Sent: '+command+' To: '+PortName+' Received: '+SendGet + ErrorString) else StatusMessage('Sent: '+command+' To: '+PortName); end; {Reset comm. counter in case incoming response took a while. } CommBusyTime:=0; //Reset count end; procedure DisplayedReading(Darkness:Double); begin //Update displayed readings Form1.DisplayedReading.Caption :=Darkness2MPSASString(Darkness); Form1.DisplayedNELM.Caption :=Darkness2NELMString(Darkness)+' NELM'; Form1.Displayedcdm2.Caption :=Darkness2CDM2String(Darkness)+' cd/m²'; Form1.DisplayedNSU.Caption :=Darkness2NSUString(Darkness) +' NSU'; end; function GetReading(): String; const {$WRITEABLECONST ON} IsInside:Boolean=False; {$WRITEABLECONST OFF} var //result:string; pieces: TStringList; compose:string; NoResultString:String = 'No Response:'+sLineBreak+ ' - Check Report Interval.'+sLineBreak+ ' - Check Accessories.'; Reading:Double; //Averaged reading. ReadingUA:Double; //Unaveraged reading. ExpectedPieces:Integer; Statustext:String; command:String; //Command to be sent ReadingUAField:Integer = -1; FreshnessField:Integer = -1; SnowLEDField:Integer = -1; begin if IsInSide then begin StatusMessage('Is inside GetReading already.'); Exit; end; IsInside:=True; try if not gettingreading then begin ExpectedPieces:=6; gettingreading:=True; //StatusMessage('GetReading called.');//debug //Clear out existing results Form1.ReadingListBox.Items.Clear; //Try to ensure a model version has been found. if SelectedModel=0 then GetVersion; //Get response to "Request" pieces := TStringList.Create; pieces.StrictDelimiter := true; //Do not parse spaces pieces.Delimiter := ','; if rotstage then command:='ux' //Rotational stage requires unaveraged values. else if ((Freshness) and (StrToInt(SelectedFeature)>=58)) then begin command:='r1x'; //Get averaged, unaveraged, Stale flag. Inc(ExpectedPieces,2); //Account for Freshness reading ReadingUAField:=ExpectedPieces-2; FreshnessField:=ExpectedPieces-1; end else begin if RawFrequencyEnabled then begin ; command:='rFx'; //get raw frequency readings also. end else begin command:='rx'; //Normally the averaged values are desired. end; end; //Are we expecting Snow LED status if ((SelectedModel=model_DLS) and SnowLoggingEnabled) then begin Inc(ExpectedPieces); SnowLEDField:=ExpectedPieces-1; end; result:=SendGet(command); //Normally the averaged values are desired. pieces.DelimitedText := result; case SelectedModel of model_LELU,model_LR,model_DL,model_GPS, model_DLS: begin if (pieces.count>=ExpectedPieces) then begin Reading:=StrToFloatDef(AnsiMidStr(pieces.Strings[1],1,6),0,FPointSeparator); DisplayedReading(Reading); Form1.ReadingListBox.Items.Add(Format(' Reading: %1.2fmpsas',[Reading])); Form1.ReadingListBox.Items.Add(Format('Frequency: %dHz', [StrToIntDef (AnsiMidStr(pieces.Strings[2],1,10),0)])); Form1.ReadingListBox.Items.Add(Format(' Counter: %dcounts', [StrToIntDef (AnsiMidStr(pieces.Strings[3],1,10),0)])); Form1.ReadingListBox.Items.Add(Format(' Time: %1.3fs', [StrToFloatDef(AnsiMidStr(pieces.Strings[4],1,11),0,FPointSeparator)])); Form1.ReadingListBox.Items.Add(Format(' Tint: %1.1fC', [StrToFloatDef(AnsiMidStr(pieces.Strings[5],0,6),0,FPointSeparator)])); //Freshness if command='r1x' then begin ReadingUA:=StrToFloatDef(AnsiMidStr(pieces.Strings[ReadingUAField],1,6),0,FPointSeparator); Form1.ReadingListBox.Items.Add(Format(' Reading: %1.2fmpsas unaveraged',[ReadingUA])); case pieces.Strings[FreshnessField] of 'F': Statustext:='Fresh frequency'; 'P': Statustext:='Fresh period'; 'S': Statustext:='Stale reading'; else Statustext:='????'; end; Form1.ReadingListBox.Items.Add(Format(' Status: %s',[Statustext])); end; //Indicate if Snow LED is on/off if ((SelectedModel=model_DLS) and SnowLoggingEnabled) then begin case pieces.Strings[SnowLEDField] of 'S': Statustext:='On'; 'D': Statustext:='Off'; else Statustext:='???'; end; Form1.ReadingListBox.Items.Add(Format(' Snow LED: %s',[Statustext])); end; end else begin Form1.ReadingListBox.Items.Add(NoResultString); StatusMessage('GetReading failed. Sent: '+command+' Received: '+result); end; end; model_V: begin if ((pieces.count=6) or (pieces.count=8)) then begin Reading:=StrToFloatDef(AnsiMidStr(pieces.Strings[1],1,6),0,FPointSeparator); DisplayedReading(Reading); Form1.ReadingListBox.Items.Add(Format(' Reading: %1.2fmpsas', [Reading])); Form1.ReadingListBox.Items.Add(Format('Frequency: %dHz', [StrToIntDef (AnsiMidStr(pieces.Strings[2],1,10),0)])); Form1.ReadingListBox.Items.Add(Format(' Counter: %dcounts', [StrToIntDef (AnsiMidStr(pieces.Strings[3],1,10),0)])); Form1.ReadingListBox.Items.Add(Format(' Time: %1.3fs', [StrToFloatDef(AnsiMidStr(pieces.Strings[4],1,11),0,FPointSeparator)])); Form1.ReadingListBox.Items.Add(Format(' Tint: %1.1fC', [StrToFloatDef(AnsiMidStr(pieces.Strings[5],0,6),0,FPointSeparator)])); GetAccel(); //Ax:=-1.0 * StrToFloatDef(pieces.Strings[6],0); //Ay:=StrToFloatDef(pieces.Strings[7],0); //Az:=StrToFloatDef(pieces.Strings[8],0); //Form1.ReadingListBox.Items.Add(Format(' Accel: %6.0fx %6.0fy %6.0fz',[Ax,Ay,Az])); //Mx:=StrToFloatDef(pieces.Strings[ 9],0); //My:=StrToFloatDef(pieces.Strings[10],0); //Mz:=StrToFloatDef(pieces.Strings[11],0); GetMag(False); //Form1.ReadingListBox.Items.Add(Format(' Mag: %6.0fx %6.0fy %6.0fz',[Mx,My,Mz])); NormalizeAccel(); //Compute acceleration values (In the future, this may be done inside the PIC) //Form1.ReadingListBox.Items.Add(Format(' Altitude: %4.0f°',[radtodeg(arcsin(-1.0*Ax1))])); Form1.ReadingListBox.Items.Add(Format(' Altitude: %4.1f°',[ComputeAltitude(Ax1, Ay1, Az1)])); ComputeAzimuth(); Heading:=radtodeg(arctan2(-1*Mz2,Mx2))+180; Form1.ReadingListBox.Items.Add(Format(' Azimuth: %4.0f°',[Heading])); end else Form1.ReadingListBox.Items.Add(NoResultString); end; model_GDM: begin //Magnetometer if pieces.count=3 then begin Form1.ReadingListBox.Items.Add(Format('M1: %dc', [StrToIntDef(AnsiMidStr(pieces.Strings[1],1,10),0)])); if StrToIntDef(pieces.Strings[2],0) < 32768 then Form1.ReadingListBox.Items.Add(Format('T1: %10.7fC',[StrToFloatDef(pieces.Strings[2],0,FPointSeparator)/128.0])) else Form1.ReadingListBox.Items.Add(Format('T1: %10.7fC',[(StrToFloatDef(pieces.Strings[2],0,FPointSeparator)-65536.0)/128.0])); end else Form1.ReadingListBox.Items.Add(NoResultString); end; model_TC: begin //Temperature chamber if pieces.count=3 then begin Form1.ReadingListBox.Items.Add(Format('M1: %dc', [StrToIntDef(AnsiMidStr(pieces.Strings[1],1,10),0)])); if StrToIntDef(pieces.Strings[2],0) < 32768 then Form1.ReadingListBox.Items.Add(Format('T1: %10.7fC',[StrToFloatDef(pieces.Strings[2],0,FPointSeparator)/128.0])) else Form1.ReadingListBox.Items.Add(Format('T1: %10.7fC',[(StrToFloatDef(pieces.Strings[2],0,FPointSeparator)-65536.0)/128.0])); end else Form1.ReadingListBox.Items.Add(NoResultString); end; model_ADA: begin //ADA if pieces.count=8 then begin Form1.ReadingListBox.Items.Add(Format('Frequency: %dHz', [StrToIntDef(AnsiMidStr(pieces.Strings[1],1,10),0)])); Form1.ReadingListBox.Items.Add(Format(' Counter1: %dcounts', [StrToIntDef(AnsiMidStr(pieces.Strings[2],1,10),0)])); Form1.ReadingListBox.Items.Add(Format(' Time1: %1.3fs', [StrToFloatDef(AnsiMidStr(pieces.Strings[3],1,11),0,FPointSeparator)])); Form1.ReadingListBox.Items.Add(Format(' Counter2: %dcounts', [StrToIntDef(AnsiMidStr(pieces.Strings[4],1,10),0)])); Form1.ReadingListBox.Items.Add(Format(' Time2: %1.3fs', [StrToFloatDef(AnsiMidStr(pieces.Strings[5],1,11),0,FPointSeparator)])); end else Form1.ReadingListBox.Items.Add(NoResultString); end; model_C: begin //Colour if ((pieces.count=9) or (pieces.count=11)) then begin Form1.ReadingListBox.Items.Add(Format(' Reading: %1.2fmpsas',[StrToFloatDef(AnsiMidStr(pieces.Strings[1],1,6),0,FPointSeparator)])); Form1.ReadingListBox.Items.Add(Format('Frequency: %dHz', [StrToIntDef (AnsiMidStr(pieces.Strings[2],1,10),0)])); Form1.ReadingListBox.Items.Add(Format(' Counter: %dcounts', [StrToIntDef (AnsiMidStr(pieces.Strings[3],1,10),0)])); Form1.ReadingListBox.Items.Add(Format(' Time: %1.3fs', [StrToFloatDef(AnsiMidStr(pieces.Strings[4],1,11),0,FPointSeparator)])); Form1.ReadingListBox.Items.Add(Format(' Tint: %1.1fC', [StrToFloatDef(AnsiMidStr(pieces.Strings[5],0,6),0,FPointSeparator)])); //Report on colour settings Unit1.ColourUpdating:=True; //Prevent colour radios from self triggering. Unit1.SelectedColourScaling:=StrToInt(pieces.Strings[6]); Unit1.Form1.ColourScalingRadio.ItemIndex:=Unit1.SelectedColourScaling; case Unit1.SelectedColourScaling of 0: compose:='Power down'; 1: compose:='2% Frequency scaling'; 2: compose:='20% Frequency scaling'; 3: compose:='100% Frequency scaling'; else compose:='Error :'+ pieces.Strings[6]; end; Form1.ReadingListBox.Items.Add(Format(' Scaling: %s', [compose])); Unit1.SelectedColour:=StrToInt(pieces.Strings[7]);{*** put in variable} Unit1.Form1.ColourRadio.ItemIndex:=Unit1.SelectedColour; case Unit1.SelectedColour of 0: compose:='Red'; 1: compose:='Blue'; 2: compose:='Clear'; 3: compose:='Green'; else compose:='Error :'+ pieces.Strings[7]; end; Form1.ReadingListBox.Items.Add(Format(' Colour: %s', [compose])); {Get colour cycling flag, assume Fixed} case pieces.Strings[8] of 'C': begin ColourCyclingFlag:=True; Unit1.Form1.ColourCyclingRadio.ItemIndex:=1; Unit1.Form1.ColourRadio.Visible:=False; end; else begin //Assume F (Fixed colour) ColourCyclingFlag:=False; Unit1.Form1.ColourCyclingRadio.ItemIndex:=0; Unit1.Form1.ColourRadio.Visible:=True; end; end; { Report freshness } if pieces.count=11 then begin ReadingUA:=StrToFloatDef(AnsiMidStr(pieces.Strings[9],1,6),0,FPointSeparator); Form1.ReadingListBox.Items.Add(Format(' Reading: %1.2fmpsas unaveraged',[ReadingUA])); case pieces.Strings[10] of 'F': Statustext:='Fresh frequency'; 'P': Statustext:='Fresh period'; 'S': Statustext:='Stale reading'; end; Form1.ReadingListBox.Items.Add(Format(' Status: %s',[Statustext])); end; Unit1.ColourUpdating:=False; //Allow colour radios to be triggered. end else Form1.ReadingListBox.Items.Add('Expected 8 fields, got '+IntToStr(pieces.Count)+'.'); end; otherwise Form1.ReadingListBox.Items.Add('Could not get version.'); end; gettingreading:=False; end; //end of checking if getreading was called if Assigned(pieces) then FreeAndNil(pieces); finally IsInside:=False; end; end; procedure GetVersion; const {$WRITEABLECONST ON} IsInside:Boolean=False; {$WRITEABLECONST OFF} {$IFDEF Linux} READ_BYTES = 2048; {$ENDIF} var ixresult:string; {Information settings} Intvresult:string; {Interval settings} pieces,pieces2: TStringList; ResultCount:Integer; OurProcess: TProcess; MemStream: TMemoryStream; OutputLines: TStringList; NumBytes: LongInt; BytesRead: LongInt; RTCType:Integer=0; SnowResult:String; begin if IsInSide then begin //StatusMessage('Is inside GetVersion already.'); Exit; end; IsInside:=True; try StatusMessage('GetVersion called.'); //Clear out existing results Form1.VersionListBox.Items.Clear; ResultCount:=0; pieces := TStringList.Create; pieces.Delimiter := ','; pieces2 := TStringList.Create; pieces2.Delimiter := ','; ixresult:=SendGet('ix'); pieces.DelimitedText := ixresult; //Check size of array. 5 Sections normally. //There is a case where other software might be accessing the device, // another immediate request should get the proper data, and a warning // that possibly other software is accessing the device. if ((pieces.Count>=5) and (pieces.Strings[0]='i')) then begin ResultCount:=1; end else begin //Try once again. Sometimes dual responses get through here. ixresult:=SendGet('ix'); pieces.DelimitedText := ixresult; if ((pieces.Count>=5) and (pieces.Strings[0]='i')) then ResultCount:=2 else begin { Check failed dialout usb connection; groups, suggest adduser then relogin. or administration->users and groups->manage groups->dialout->properties} {$ifdef Linux} MemStream := TMemoryStream.Create; BytesRead := 0; pieces := TStringList.Create; pieces.Delimiter := '='; OurProcess := TProcess.Create(nil); OurProcess.Executable := 'groups'; OurProcess.Options := [poUsePipes]; OurProcess.Execute; while OurProcess.Running do begin MemStream.SetSize(BytesRead + READ_BYTES); NumBytes := OurProcess.Output.Read((MemStream.Memory + BytesRead)^, READ_BYTES); if NumBytes > 0 then begin Inc(BytesRead, NumBytes); end else begin Sleep(100); end; end; repeat MemStream.SetSize(BytesRead + READ_BYTES); NumBytes := OurProcess.Output.Read((MemStream.Memory + BytesRead)^, READ_BYTES); if NumBytes > 0 then begin Inc(BytesRead, NumBytes); end; until NumBytes <= 0; if BytesRead > 0 then WriteLn; //blank line written for linux only. MemStream.SetSize(BytesRead); OutputLines := TStringList.Create; OutputLines.LoadFromStream(MemStream); if not AnsiContainsStr(OutputLines[0],'dialout') then begin Form1.VersionListBox.Items.Add('This user is not part of the'); Form1.VersionListBox.Items.Add(' dialout group.'); Form1.VersionListBox.Items.Add('Use the "adduser", or'); Form1.VersionListBox.Items.Add('"sudo usermod -aG uucp username", or:'); Form1.VersionListBox.Items.Add(' administration->'); Form1.VersionListBox.Items.Add(' users and groups->'); Form1.VersionListBox.Items.Add(' manage groups->'); Form1.VersionListBox.Items.Add(' dialout->'); Form1.VersionListBox.Items.Add(' properties'); Form1.VersionListBox.Items.Add('add user name, then re-login'); StatusMessage('User not in dialout group.'); end; OutputLines.Free; OurProcess.Free; MemStream.Free; {$else} Form1.VersionListBox.Items.Add('Other software may be '); Form1.VersionListBox.Items.Add('accessing the device!'); StatusMessage('Other software may be accessing the device!'); {$endif} end; end; if ResultCount>0 then begin SelectedProtocol:=IntToStr(StrToIntDef(pieces.Strings[1],0)); Form1.VersionListBox.Items.Add('Protocol: '+ SelectedProtocol); SelectedModel:=StrToIntDef(pieces.Strings[2],0); Case SelectedModel of model_ADA : SelectedModelDescription:='ADA'; model_LELU: begin if Form1.CommNotebook.PageIndex=0 then SelectedModelDescription:='SQM-LU' else SelectedModelDescription:='SQM-LE'; end; model_C : SelectedModelDescription:='SQM-C'; model_LR: SelectedModelDescription:='SQM-LR'; model_DL: begin if Form1.CommNotebook.PageIndex=0 then SelectedModelDescription:='SQM-LU-DL' else SelectedModelDescription:='SQM-W'; end; model_GPS: SelectedModelDescription:='SQM-LU-GPS'; model_GDM: SelectedModelDescription:='Magnetometer'; model_TC : SelectedModelDescription:='Temp. Chamber'; model_V : SelectedModelDescription:='SQM-LU-DL-V'; model_DLS: SelectedModelDescription:='SQM-LU-DLS'; otherwise SelectedModelDescription:='Unknown'; end; //Check if Selected model has an RTC case SelectedModel of model_DL, model_GPS, model_V, model_DLS: SelectedHasRTC:=True else SelectedHasRTC:=False; end; SelectedFeature:=IntToStr(StrToIntDef(pieces.Strings[3],0)); SelectedUnitSerialNumber:=IntToStr(StrToIntDef(pieces.Strings[4],0)); //Check for Lens model types; // L = default (as entered above) // 2 = 3D holder, Half-Ball lens, Interfernece filter // '' = no lens (remove the L from the description if StrToIntDef(SelectedFeature,0)>=35 then begin //Enable lens model selections LHFCheck(''); //Results sent as m_x, received as m_,123 //SelectedLH:=StrToInt(AnsiMidStr(SendGet('m0x'),4,3)); //SelectedLens:=StrToInt(AnsiMidStr(SendGet('m1x'),4,3)); //SelectedFilter:=StrToInt(AnsiMidStr(SendGet('m2x'),4,3)); //replace L in 5th place with L2 if ((SelectedLH=2) and (SelectedLens=2) and (SelectedFilter=2)) then SelectedModelDescription:=StuffString(SelectedModelDescription,5,1,'L2'); //replace L with blank (no lens or holder, only Hoya filter) if ((SelectedLH=0) and (SelectedLens=0) and (SelectedFilter=1)) then SelectedModelDescription:=AnsiLeftStr(SelectedModelDescription,4) + AnsiRightStr(SelectedModelDescription,Length(SelectedModelDescription)-5); //replace L with blank (no lens, no holder, no filter), and add suffix -NF if ((SelectedLH=0) and (SelectedLens=0) and (SelectedFilter=0)) then begin SelectedModelDescription:=AnsiLeftStr(SelectedModelDescription,4) + AnsiRightStr(SelectedModelDescription,Length(SelectedModelDescription)-5); SelectedModelDescription:=SelectedModelDescription+'-NF'; end; end; { Check for RTC type } if SelectedHasRTC then begin if StrToIntDef(SelectedFeature,0)>=38 then begin; pieces2.DelimitedText:=SendGet('Lvx'); if pieces2.Count>0 then begin SelectedRTC:=pieces2.Strings[1]; case StrToIntDef(SelectedRTC,0) of 0: begin RTCType:=0; end; 1: begin RTCType:=1; SelectedModelDescription:=SelectedModelDescription+'-R1'; end; 2: begin RTCType:=2; SelectedModelDescription:=SelectedModelDescription+'-R2'; end; otherwise RTCType:=-1; end; end; end; end; //The continuous functions are available on feature version is 40 and higher if StrToIntDef(SelectedFeature,0)>=40 then begin Form1.ContCheckGroup.Visible:=True;//Show group of options Form1.ContCheck('Yx');//Show continuous selections Form1.DataNoteBook.Page[10].TabVisible:=True; //Show Accessory tab end else begin Form1.ContCheckGroup.Visible:=False; if Form1.DataNoteBook.ActivePageIndex=10 then Form1.DataNoteBook.ActivePageIndex:=0;//must not be on active page othewise UDM crashes. Form1.DataNoteBook.Page[10].TabVisible:=False; //Hide Accessory tab. end; //Snow settings if StrToIntDef(SelectedFeature,0)>=62 then begin SnowResult:=SendGet('A5x'); Unit1.Form1.SnowLEDStatus(SnowResult); end; Form1.VersionListBox.Items.Add(' Model: '+ IntToStr(SelectedModel)+ ' ('+ SelectedModelDescription + ')'); Form1.VersionListBox.Items.Add(' Feature: '+ SelectedFeature); DLHeaderForm.SerialNumber.Text:=SelectedUnitSerialNumber; { Read initialization file. } DLHeaderForm.ReadINI; Form1.VersionListBox.Items.Add(' Serial: '+ SelectedUnitSerialNumber); // List RTC type in version box if new RTC if SelectedHasRTC then begin case RTCType of 0: Form1.VersionListBox.Items.Add(' RTC: '+'DS1305'); 1: Form1.VersionListBox.Items.Add(' RTC: '+'DS3234'); 2: Form1.VersionListBox.Items.Add(' RTC: '+'DS1390'); otherwise Form1.VersionListBox.Items.Add(' RTC: '+'Unknown'); end; end; //Vector tab: only for SQM-LU-DL-V if (SelectedModel=model_V) then begin Form1.DataNoteBook.Page[9].TabVisible:=True; end; { Colour model } if SelectedModel=model_C then begin Unit1.ColourUpdating:=True; Unit1.Form1.ColourControls.Visible:=True; SelectedColourScaling:=-1; Unit1.Form1.ColourScalingRadio.ItemIndex:=SelectedColourScaling; SelectedColour:=-1; Unit1.Form1.ColourRadio.ItemIndex:=SelectedColour; Unit1.ColourUpdating:=False; end else Unit1.Form1.ColourControls.Visible:=False; //Datalogging tab: for: SQM-LU-DL, SQM-LU-GPS, SQM-LU-DL-V case SelectedModel of model_DL, model_GPS, model_V, model_DLS: begin form1.DLGetSettings(); Form1.DataNoteBook.Page[4].TabVisible:=True; DataLoggingAvailable:=True; end; else begin Form1.DataNoteBook.Page[4].TabVisible:=False; DataLoggingAvailable:=False; end; end; //GPS tab: only for SQM-LU-GPS if (SelectedModel=model_GPS) then Form1.DataNoteBook.Page[6].TabVisible:=True else Form1.DataNoteBook.Page[6].TabVisible:=False; //StatusMessage('Checking lock visibility');//debug CheckLockVisibility(); //StatusMessage('Checked lock visibility');//debug end; //Interval settings //StatusMessage('Checking Ix');//debug Intvresult:=SendGet('Ix'); //StatusMessage('Checked Ix');//debug Form1.ParseReportInterval(Intvresult); gettingversion:=False; Application.ProcessMessages; UpdateCalReport; // header button enable if serial number is not null //if DLHeaderForm.SerialNumber.Text<>'' then // Form1.HeaderButton.Enabled:=True; if Assigned(pieces) then FreeAndNil(pieces); if Assigned(pieces2) then FreeAndNil(pieces2); finally IsInside:=False; end; if StrToIntDef(SelectedUnitSerialNumber,0)>0 then begin StatusMessage('GetVersion result: ' + ixresult); StatusMessage('Reading Interval Settings: ' + Intvresult); end else begin StatusMessage('GetVersion: No serial number'); end; end; {Write new genertic or appended serial-number-specific logfile ex. SN1234.log} procedure StatusMessage(Mstring:string); begin Form1.StatusBar1.Panels.Items[0].Text:=Mstring; if not(Mstring='') then begin if StrToIntDef(SelectedUnitSerialNumber,0)>0 then begin {A serial number has been selected} SNLogFileName:=RemoveMultiSlash(appsettings.LogsDirectory + DirectorySeparator)+'SN'+SelectedUnitSerialNumber+'.log'; AssignFile(SNLogFile,SNLogFileName); if FileExists(SNLogFileName) then Append(SNLogFile) else Rewrite(SNLogFile); if IOResult <> 0 then begin writeln('Unable to open file: ',SNLogFileName); Exit; end; WriteLn(SNLogFile,FormatDateTime('yyyy-mm-dd hh:nn:ss.zzz',NowUTC()) + ' : SN ' + SelectedUnitSerialNumber + ' : ' + Mstring); Flush(SNLogFile); CloseFile(SNLogFile); end else begin {No serial number has been selected} { Write to udm.log logfile} Append(UDMLogFile); //File is opened for write, but NOT emptied. Any text written to it is appended. WriteLn(UDMLogFile,FormatDateTime('yyyy-mm-dd hh:nn:ss.zzz',NowUTC()) + ' : ' + Mstring); //Append message. Flush(UDMLogFile); Close(UDMLogFile); //Allow other instances to write to file. end; {Write to log viewer screen} ViewedLog.Add(FormatDateTime('yyyy-mm-dd hh:nn:ss.zzz',NowUTC()) + ' : ' + SelectedUnitSerialNumber + ' : ' + Mstring); if ViewingLog then begin Form5.SynEdit1.Lines.Add(FormatDateTime('yyyy-mm-dd hh:nn:ss.zzz',NowUTC()) + ' : ' + SelectedUnitSerialNumber + ' : ' + Mstring); {Automatically scroll up.} Form5.SynEdit1.TopLine:=Form5.SynEdit1.Lines.Count-Form5.SynEdit1.LinesInWindow+1; Form5.SynEdit1.Refresh; end; end; Application.ProcessMessages; end; procedure ClearLockVisibility; begin Form1.CheckLockResult.Text:=''; Form1.CheckLockButton.Visible:=False; Form1.CheckLockResult.Visible:=False; Form1.bXPortDefaults.Enabled:=False; end; procedure CheckLockVisibility; const {$WRITEABLECONST ON} IsInside:Boolean=False; {$WRITEABLECONST OFF} begin if IsInSide then begin StatusMessage('Is inside CheckLockVisibility already.'); Exit; end; IsInside:=True; try StatusMessage('CheckLockVisibility()'); //CheckLock enable/disable Form1.CheckLockResult.Text:=''; if (((SelectedModel=model_LELU) or (SelectedModel=model_C)) and (Form1.CommNotebook.PageIndex=1)) then //SQM-LE/U or Colour, and Ethernet begin Form1.CheckLockButton.Visible:=True; Form1.CheckLockResult.Visible:=True; end else begin Form1.CheckLockButton.Visible:=False; Form1.CheckLockResult.Visible:=False; end; //Check XPort default button enable/disable if (Form1.CommNotebook.PageIndex=1) then //Ethernet begin Form1.bXPortDefaults.Enabled:=True; end else begin Form1.bXPortDefaults.Enabled:=False; end; finally IsInside:=False; end; end; procedure UpdateCalReport; var AccCalPos: Integer; //Accelerometer position begin Form1.ConfRecWarning.Caption:=''; Application.ProcessMessages; if (Form1.FoundDevices.SelCount=0) and (Form1.CommNotebook.PageIndex<>2) then //not for RS232 begin Form1.Panel1.Canvas.Clear; end else begin PrintingLine:=0; PrintLine(SelectedModelDescription+' Calibration data '); PrintLine(' Report Date ', format(' %s',[FormatDateTime('yyyy-mm-dd',Now())])); PrintLine(' Serial Number ', format(' %s',[SelectedUnitSerialNumber])); //check if USB device: if ((Form1.CommNotebook.PageIndex=0) and not (SelectedModel=model_LR)) then // USB device but not RS232 model PrintLine(' USB Serial Number ', format(' %s',[Form1.USBSerialNumber.text])); //check if Ethernet device: if (Form1.CommNotebook.PageIndex=1) then PrintLine(' MAC ', format(' %s',[Form1.EthernetMAC.text])); PrintLine(' Model Number ', format(' %s',[Inttostr(SelectedModel) + ' ('+SelectedModelDescription+')'])); PrintLine(' Feature version ', format(' %s',[SelectedFeature])); PrintLine(' Protocol version ', format(' %s',[SelectedProtocol])); if SelectedHasRTC then begin if StrToIntDef(SelectedFeature,0)>=38 then begin case StrToIntDef(SelectedRTC,0) of 0: PrintLine(' Real Time Clock ', ' DS1305 (±20ppm)'); 1: PrintLine(' Real Time Clock ', ' DS3234 (±3.5ppm)'); 2: PrintLine(' Real Time Clock ', ' DS1390 (±5ppm)'); otherwise PrintLine(' Real Time Clock ', ' Unknown'); end; end; PrintLine(' Data logging capacity ', Format(' %d ',[DLEStorageCapacity])+' records'); //Warning if EEPROM is missing: if DLEStorageCapacity<1000 then begin Form1.ConfRecWarning.Caption:='Records'; Form1.ConfRecWarning.Color:=clRed; Form1.ConfRecWarning.Font.Color:=clWhite; end else begin Form1.ConfRecWarning.Caption:=''; Form1.ConfRecWarning.Color:=clNone; Form1.ConfRecWarning.Font.Color:=clNone; end; end; PrintLine(' Light calibration offset ', Format(' %2.2f ',[ConfCalmpsas])+' mags/arcsec²'); PrintLine(' Light calibration temperature ', Format(' %2.1f ',[ConfCalLightTemp])+' °C'); PrintLine(' Dark calibration period ', Format(' %2.3f ',[ConfCalPeriod])+' seconds'); PrintLine(' Dark calibration temperature ', Format(' %2.1f ',[ConfCalDarkTemp])+' °C'); PrintLine(' Calibration offset ', ' 8.71 mags/arcsec² '); if SelectedModel=model_V then begin for AccCalPos:=1 to 6 do begin PrintLine(format(' Acceleration position %d ',[AccCalPos]), format(' %6.0f %6.0f %6.0f ',[ w.getv(AccCalPos-1, 0), w.getv(AccCalPos-1, 1), w.getv(AccCalPos-1, 2)])); end; PrintLine(' Magnetic maximum XYZ ',format(' %7.0f %7.0f %7.0f',[Mxmax,Mymax,Mzmax])); PrintLine(' Magnetic minimum XYZ ',format(' %7.0f %7.0f %7.0f',[Mxmin,Mymin,Mzmin])); end; end; end; procedure PrintLine(LabelText:String; DataText: String=''); var H,W,PageTop,PageWidth,CellMargin,CH: Integer; WhereTo:TCanvas; begin if CalPrint then //output=printer begin WhereTo:=Printer.Canvas; PageTop:=500; CellMargin:=27; PageWidth:=Printer.PageWidth; H := WhereTo.TextHeight(LabelText); W := WhereTo.TextWidth(LabelText); CH:=H+2*CellMargin; //Draw the rectangle around the text: WhereTo.Rectangle( Rect( PageWidth div 5, PageTop + PrintingLine * CH, 4 * (PageWidth div 5), PageTop + PrintingLine * CH + CH+1)); end else //output = preview on screen begin WhereTo:=Form1.Panel1.Canvas; PageTop:=1; CellMargin:=5; PageWidth:=Form1.Panel1.Width; H := WhereTo.TextHeight(LabelText); W := WhereTo.TextWidth(LabelText); CH:=H+2*CellMargin; //Draw the rectangle around the text: WhereTo.Rectangle( Rect( 1, PageTop + PrintingLine * CH, PageWidth-1, PageTop + PrintingLine * CH + CH+1)); end; //Check for two parameters if Length(DataText)>0 then begin //Draw centerline WhereTo.Line( PageWidth div 2, PageTop + PrintingLine * CH, PageWidth div 2, PageTop + PrintingLine * CH + CH); //Place Left text: WhereTo.TextOut(( PageWidth div 2) - W - CellMargin, PageTop + (PrintingLine * CH) + CellMargin, LabelText); //Place Right text: WhereTo.TextOut(( PageWidth div 2) + CellMargin, PageTop + (PrintingLine * CH) + CellMargin, DataText); end else begin //one text paramater //Place the text: WhereTo.TextOut(( PageWidth div 2) - (W div 2), PageTop + (PrintingLine * CH) + CellMargin, LabelText); end; Inc(PrintingLine); end; function FixDate(incoming:AnsiString): AnsiString; { Fix the date from the DataLogging unit by converting the DOW value to a readable string. } var dowval:Integer; weekday: Array[1..7] of string = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); begin dowval:=StrToInt(AnsiMidStr(incoming,10,1)); if ((dowval>=1) and (dowval<=7)) then FixDate:=AnsiMidStr(incoming,1,9)+weekday[dowval]+AnsiMidStr(incoming,11,9) else FixDate:=AnsiMidStr(incoming,1,9)+'???'+AnsiMidStr(incoming,11,9); end; {Looks through command line pramaters for a command. Returns true if the comand is found. Parse the comma separated command into the global ParameterValue array. Startup options are also availble through the startup setting. Both, Paramater settings, and Startup options are considered here. } function ParameterCommand(Command:String): Boolean; var ParmeterPointer:Integer=1; StartupParmeterPointer:Integer=0; pieces: TStringList; begin ParameterCommand:=False; { Initially assumes nothing was found.} { Read command line parameters. } pieces := TStringList.Create; pieces.Delimiter := ','; if (Paramcount > 0) then begin while ((ParmeterPointer>=1) and (ParmeterPointer<=Paramcount)) do begin pieces.DelimitedText:=ParamStr(ParmeterPointer); if pieces.Strings[0]=Command then begin ParameterValue.Assign(pieces); ParameterCommand:=True; ParmeterPointer:=0; end else inc(ParmeterPointer); end; end; pieces.Destroy; { Read Startup options. } pieces := TStringList.Create; pieces.Delimiter := ','; if (StartupParamcount > 0) then begin while ((StartupParmeterPointer>=0) and (StartupParmeterPointer<=(StartupParamcount-1))) do begin pieces.DelimitedText:=StartupParamStrings[StartupParmeterPointer]; if pieces.Strings[0]=Command then begin ParameterValue.Assign(pieces); ParameterCommand:=True; StartupParmeterPointer:=-1; end else inc(StartupParmeterPointer); end; end; pieces.Destroy; end; end. ./SQMLE-4-3-25.hex0000644000175000017500000006036013772663124013271 0ustar anthonyanthony:020000040000FA :04080000A6EF06F069 :1008100003B207EF05F0F2B422EF05F09EB02AEF25 :1008200005F09EB232EF05F0F2A81AEF04F0F2B232 :100830001CEF04F084EF06F0CD90F2929EA026EF1C :1008400004F00101533F26EF04F0542BAEC1B2F186 :10085000AFC1B3F1B0C1B4F1B1C1B5F1AAC1AEF14C :10086000ABC1AFF1ACC1B0F1ADC1B1F1A6C1AAF15C :10087000A7C1ABF1A8C1ACF1A9C1ADF1A2C1A6F16C :10088000A3C1A7F1A4C1A8F1A5C1A9F19EC1A2F17C :100890009FC1A3F1A0C1A4F1A1C1A5F19AC19EF18C :1008A0009BC19FF19CC1A0F19DC1A1F196C19AF19C :1008B00097C19BF198C19CF199C19DF1CECF96F162 :1008C000CFCF97F153C198F154C199F1CF6ACE6A55 :1008D0000101536B546B9E90CD800EBC0E8E0EBAF0 :1008E00075EF04F00E8A84EF06F00E8C0EBEB1EFA9 :1008F00004F096C19AF197C19BF198C19CF199C1FE :100900009DF19AC19EF19BC19FF19CC1A0F19DC137 :10091000A1F19EC1A2F19FC1A3F1A0C1A4F1A1C107 :10092000A5F1A2C1A6F1A3C1A7F1A4C1A8F1A5C1D7 :10093000A9F1A6C1AAF1A7C1ABF1A8C1ACF1A9C1A7 :10094000ADF1AAC1AEF1ABC1AFF1ACC1B0F1ADC177 :10095000B1F1AEC1B2F1AFC1B3F1B0C1B4F1B1C147 :10096000B5F101015E6B5F6B606B616B96515E2749 :1009700097515F2398516023995161239A515E27C3 :100980009B515F239C5160239D5161239E515E27A3 :100990009F515F23A0516023A1516123A2515E2783 :1009A000A3515F23A4516023A5516123A6515E2763 :1009B000A7515F23A8516023A9516123AA515E2743 :1009C000AB515F23AC516023AD516123AE515E2723 :1009D000AF515F23B0516023B1516123B2515E2703 :1009E000B3515F23B4516023B5516123D890613373 :1009F00060335F335E33D890613360335F335E338F :100A0000D890613360335F335E3384EF06F0039236 :100A1000030103EE00F080517F0BE92604C0EFFFD5 :100A2000802B8151805D700BD8A48B820000805197 :100A3000815D700BD8A48B9281518019D8B4079036 :100A400084EF06F0F2940101453F84EF06F0462B57 :100A500084EF06F09E900101533F84EF06F0542B83 :100A600084EF06F09E92C3CF55F1C4CF56F1C282F7 :100A700007B49DEF05F047C14BF148C14CF149C1A6 :100A80004DF14AC14EF15EC162F15FC163F160C1D7 :100A900064F161C165F196C1B6F197C1B7F198C132 :100AA000B8F199C1B9F19AC1BAF19BC1BBF19CC12E :100AB000BCF19DC1BDF19EC1BEF19FC1BFF1A0C1FE :100AC000C0F1A1C1C1F1A2C1C2F1A3C1C3F1A4C1CE :100AD000C4F1A5C1C5F1A6C1C6F1A7C1C7F1A8C19E :100AE000C8F1A9C1C9F1AAC1CAF1ABC1CBF1ACC16E :100AF000CCF1ADC1CDF1AEC1CEF1AFC1CFF1B0C13E :100B0000D0F1B1C1D1F1B2C1D2F1B3C1D3F1B4C10D :100B1000D4F1B5C1D5F1010155515B2756515C2384 :100B2000E86A5D230D2E9DEF05F05CC157F15DC1B4 :100B300058F15B6B5C6B5D6B078E0201002F84EFDD :100B400006F03C0E006F00C10CF101C10DF102C1B5 :100B50000EF103C10FF104C110F105C111F106C17D :100B600012F107C113F108C114F109C115F10AC14D :100B700016F10BC117F134C135F101018A67C8EFD5 :100B800005F08B67C8EF05F08C67C8EF05F08D673F :100B9000CCEF05F0FCEF05F08EC100F18FC101F143 :100BA00090C102F191C103F10101010E046F000E29 :100BB000056F000E066F000E076F25EC14F000C1E4 :100BC0008EF101C18FF102C190F103C191F1006773 :100BD000F1EF05F00167F1EF05F00267F1EF05F0C5 :100BE0000367FCEF05F08AC18EF18BC18FF18CC1D8 :100BF00090F18DC191F10E80D57ED5BE69D0D6CF52 :100C000047F1D7CF48F145C149F1E86AE8CF4AF149 :100C10000F9047C100F148C101F149C102F14AC139 :100C200003F101010A0E046F000E056F000E066F3E :100C3000000E076F25EC14F000AF0F80010154A7E0 :100C40002EEF06F00E9A0E9C0E9E0101000E5E6FB6 :100C5000600E5F6F3D0E606F080E616F010147BF50 :100C60003EEF06F048673EEF06F049673EEF06F0BC :100C70004A673EEF06F0F28863EF06F0F2985E6B8B :100C80005F6B606B616B966B976B986B996B9A6BF4 :100C90009B6B9C6B9D6B9E6B9F6BA06BA16BA26B08 :100CA000A36BA46BA56BA66BA76BA86BA96BAA6BB8 :100CB000AB6BAC6BAD6BAE6BAF6BB06BB16BB26B68 :100CC000B36BB46BB56BD76AD66A0101456B466BE3 :100CD0000CC100F10DC101F10EC102F10FC103F110 :100CE00010C104F111C105F112C106F113C107F1E0 :100CF00014C108F115C109F116C10AF117C10BF1B0 :100D000035C134F184EF06F002C0E0FF005001C0AD :100D1000D8FF1000A6B28AEF06F00CC0A9FF0BC0E6 :100D2000A8FFA69EA69CA684F29E550EA76EAA0EAC :100D3000A76EA682F28EA694A6B29CEF06F01200D1 :100D4000A96EA69EA69CA680A8501200076A0E6AED :100D50000F6A0F010E0EC16E860EC06E030EC26EBC :100D60000F01896A110E926E080E8A6EF10E936E53 :100D70008B6A800E946EF18E0D6A01015B6B5C6B69 :100D80005D6B576B586BF29A0101476B486B496B6F :100D90004A6B4B6B4C6B4D6B4E6B4F6B506B516B8F :100DA000526B456B466BD76AD66A0F01280ED56E1B :100DB000F28A9D90B00ECD6E01015E6B5F6B606B31 :100DC000616B626B636B646B656B666B676B686BA7 :100DD000696B536B546BCF6ACE6A0E9A0E9C0E9E53 :100DE0009D80760ECA6E9D8202013C0E006FCC6A19 :100DF000160EA0EC06F0E8CF00F1170EA0EC06F0FE :100E0000E8CF01F1180EA0EC06F0E8CF02F1190EC0 :100E1000A0EC06F0E8CF03F1010103AF2AEF07F0E1 :100E20001CEC15F0160E0C6E00C10BF08AEC06F0EF :100E3000170E0C6E01C10BF08AEC06F0180E0C6E4A :100E400002C10BF08AEC06F0190E0C6E03C10BF018 :100E50008AEC06F000C18AF101C18BF102C18CF16C :100E600003C18DF100C18EF101C18FF102C190F17A :100E700003C191F11A0EA0EC06F0E8CF00F11B0EB1 :100E8000A0EC06F0E8CF01F11C0EA0EC06F0E8CFD4 :100E900002F11D0EA0EC06F0E8CF03F1010103AF53 :100EA00080EF07F01CEC15F01A0E0C6E00C10BF071 :100EB0008AEC06F01B0E0C6E01C10BF08AEC06F0FA :100EC0001C0E0C6E02C10BF08AEC06F01D0E0C6EAF :100ED00003C10BF08AEC06F01A0EA0EC06F0E8CF86 :100EE00000F11B0EA0EC06F0E8CF01F11C0EA0EC07 :100EF00006F0E8CF02F11D0EA0EC06F0E8CF03F1FA :100F000000C192F101C193F102C194F103C195F1C5 :100F1000240EAC6E900EAB6E240EAC6E080EB86E46 :100F2000000EB06E1F0EAF6E0401806B816B0F015F :100F3000900EAB6E0F019D8A0301806B816BA26BDB :100F40008B9207900001F28EF28C07B0E9EF11F05E :100F50000EB0CAEF0CF00301805181197F0BD8B499 :100F6000E9EF11F013EE00F081517F0BE126812BA8 :100F7000E7CFE8FFE00BD8B4E9EF11F023EE82F001 :100F8000A2511F0BD926E7CFDFFFA22BDF50780A33 :100F9000D8A4E9EF11F007808EC100F18FC101F1F3 :100FA00090C102F191C103F10101040E046F000E22 :100FB000056F000E066F000E076F25EC14F000AFF2 :100FC000EBEF07F00101030E8E6F000E8F6F000E26 :100FD000906F000E916F03018251720AD8B4CAEF6C :100FE0000CF08251520AD8B4CAEF0CF08251750A43 :100FF000D8B4CAEF0CF08251630AD8B4A5EF0EF052 :101000008251690AD8B485EF09F082517A0AD8B4BE :1010100098EF0AF08251490AD8B424EF09F08251BE :10102000500AD8B442EF08F08251700AD8B485EF64 :1010300008F08251540AD8B4B0EF08F08251740A13 :10104000D8B4F6EF08F08251730AD8B4FAEF0BF077 :101050008251530AD8B45FEF0CF0DAEF0EF00401BE :1010600014EE00F080517F0BE12682C4E7FF802B55 :1010700012000D0E826F2FEC08F00A0E826F2FEC1B :1010800008F0120083C32AF184C32BF185C32CF12D :1010900086C32DF187C32EF188C32FF189C330F1A8 :1010A0008AC331F18BC332F18CC333F101016AEC95 :1010B00015F0E1EC14F0160E0C6E00C10BF08AEC8A :1010C00006F0170E0C6E01C10BF08AEC06F0180E3C :1010D0000C6E02C10BF08AEC06F0190E0C6E03C107 :1010E0000BF08AEC06F000C18AF101C18BF102C15C :1010F0008CF103C18DF100C18EF101C18FF102C1EC :1011000090F103C191F124EF09F083C32AF184C364 :101110002BF185C32CF186C32DF187C32EF188C333 :101120002FF189C330F18AC331F18BC332F18CC303 :1011300033F101016AEC15F0E1EC14F000C18AF121 :1011400001C18BF102C18CF103C18DF100C18EF19F :1011500001C18FF102C190F103C191F124EF09F0B7 :1011600083C32AF184C32BF185C32CF186C32DF1EF :1011700087C32EF188C32FF189C330F18AC331F1BF :101180008CC332F18DC333F101016AEC15F0E1EC4F :1011900014F00101000E046F000E056F010E066FC2 :1011A000000E076F34EC14F01A0E0C6E00C10BF039 :1011B0008AEC06F01B0E0C6E01C10BF08AEC06F0F7 :1011C0001C0E0C6E02C10BF08AEC06F01D0E0C6EAC :1011D00003C10BF08AEC06F000C192F101C193F15A :1011E00002C194F103C195F124EF09F083C32AF100 :1011F00084C32BF185C32CF186C32DF187C32EF157 :1012000088C32FF189C330F18AC331F18CC332F125 :101210008DC333F101016AEC15F0E1EC14F001012A :10122000000E046F000E056F010E066F000E076FB3 :1012300034EC14F000C192F101C193F102C194F1B8 :1012400003C195F124EF09F0160EA0EC06F0E8CFEB :1012500000F1170EA0EC06F0E8CF01F1180EA0EC9B :1012600006F0E8CF02F1190EA0EC06F0E8CF03F18A :10127000BFEC14F0EBEC12F00401730E826F2FEC54 :1012800008F004012C0E826F2FEC08F08AC100F1E7 :101290008BC101F18CC102F18DC103F1BFEC14F0DF :1012A000EBEC12F00401730E826F2FEC08F00401D6 :1012B0002C0E826F2FEC08F01A0EA0EC06F0E8CF8F :1012C00000F11B0EA0EC06F0E8CF01F11C0EA0EC23 :1012D00006F0E8CF02F11D0EA0EC06F0E8CF03F116 :1012E000F5EC0EF004012C0E826F2FEC08F092C189 :1012F00000F193C101F194C102F195C103F1F5EC44 :101300000EF039EC08F0DAEF0EF00401690E826F8E :101310002FEC08F004012C0E826F2FEC08F0010175 :10132000040E006F000E016F000E026F000E036FBF :10133000BFEC14F02CC182F40401300E82272FEC94 :1013400008F02DC182F40401300E82272FEC08F042 :101350002EC182F40401300E82272FEC08F02FC139 :1013600082F40401300E82272FEC08F030C182F4A1 :101370000401300E82272FEC08F031C182F4040101 :10138000300E82272FEC08F032C182F40401300EB7 :1013900082272FEC08F033C182F40401300E82273B :1013A0002FEC08F004012C0E826F2FEC08F00101E5 :1013B000030E006F000E016F000E026F000E036F30 :1013C000BFEC14F02CC182F40401300E82272FEC04 :1013D00008F02DC182F40401300E82272FEC08F0B2 :1013E0002EC182F40401300E82272FEC08F02FC1A9 :1013F00082F40401300E82272FEC08F030C182F411 :101400000401300E82272FEC08F031C182F4040170 :10141000300E82272FEC08F032C182F40401300E26 :1014200082272FEC08F033C182F40401300E8227AA :101430002FEC08F004012C0E826F2FEC08F0010154 :10144000190E006F000E016F000E026F000E036F89 :10145000BFEC14F02CC182F40401300E82272FEC73 :1014600008F02DC182F40401300E82272FEC08F021 :101470002EC182F40401300E82272FEC08F02FC118 :1014800082F40401300E82272FEC08F030C182F480 :101490000401300E82272FEC08F031C182F40401E0 :1014A000300E82272FEC08F032C182F40401300E96 :1014B00082272FEC08F033C182F40401300E82271A :1014C0002FEC08F004012C0E826F2FEC08F0200E98 :1014D000F86EF76AF66A04010900F5CF82F42FEC82 :1014E00008F00900F5CF82F42FEC08F00900F5CFE1 :1014F00082F42FEC08F00900F5CF82F42FEC08F00D :101500000900F5CF82F42FEC08F00900F5CF82F442 :101510002FEC08F00900F5CF82F42FEC08F0090059 :10152000F5CF82F42FEC08F039EC08F0DAEF0EF08A :101530008351630AD8A4DAEF0EF08451610AD8A46B :10154000DAEF0EF085516C0AD8A4DAEF0EF086516E :10155000410A42E08651440A1BE08651420AD8B44F :10156000FFEF0AF08651350AD8B464EF10F08651C7 :10157000360AD8B4B9EF10F08651370AD8B422EF42 :1015800011F08651380AD8B480EF11F0DAEF0EF07E :101590000798079A04017A0E826F2FEC08F0040175 :1015A000780E826F2FEC08F00401640E826F2FEC2E :1015B00008F081A8E3EF0AF00401550E826F2FECCA :1015C00008F0E8EF0AF004014C0E826F2FEC08F0EF :1015D00039EC08F0DAEF0EF00788079A04017A0E6A :1015E000826F2FEC08F00401410E826F2FEC08F09F :1015F0000401610E826F2FEC08F0D9EF0AF0079812 :10160000078A04017A0E826F2FEC08F00401420E63 :10161000826F2FEC08F00401610E826F2FEC08F04E :10162000D9EF0AF0010166671DEF0BF067671DEF48 :101630000BF068671DEF0BF0696735EF0BF04F6734 :1016400029EF0BF0506729EF0BF0516729EF0BF0F2 :10165000526735EF0BF00101000E006F000E016FB5 :10166000000E026F000E036F12000101620E046F84 :10167000010E056F000E066F000E076F66C100F1C8 :1016800067C101F168C102F169C103F125EC14F0F1 :1016900003BFB9EF0BF00101000E046FA80E056F38 :1016A000550E066F020E076F66C100F167C101F1AA :1016B00068C102F169C103F166C186F167C187F1B2 :1016C00068C188F169C189F125EC14F003BF72EF9C :1016D0000BF00101000E866FA80E876F550E886F04 :1016E000020E896F0E0EA0EC06F0E8CF18F10F0E77 :1016F000A0EC06F0E8CF19F1100EA0EC06F0E8CF50 :101700001AF1110EA0EC06F0E8CF1BF16EEC13F00D :1017100086C104F187C105F188C106F189C107F1CD :1017200025EC14F0078232EC13F06EEC13F0079204 :1017300032EC13F086C100F187C101F188C102F1DA :1017400089C103F1079232EC13F0CC0E046FE00E66 :10175000056F870E066F050E076F25EC14F000C1AC :1017600018F101C119F102C11AF103C11BF1F1EF26 :101770000BF00101800E006F1A0E016F060E026F52 :10178000000E036F4FC104F150C105F151C106F1C4 :1017900052C107F125EC14F003AFD2EF0BF01CECB3 :1017A00015F012000E0EA0EC06F0E8CF18F10F0EA7 :1017B000A0EC06F0E8CF19F1100EA0EC06F0E8CF8F :1017C0001AF1110EA0EC06F0E8CF1BF14FC100F1A9 :1017D00050C101F151C102F152C103F1078232EC53 :1017E00013F018C100F119C101F11AC102F11BC1B6 :1017F00003F112000401730E826F2FEC08F0040154 :101800002C0E826F2FEC08F0078462C166F163C171 :1018100067F164C168F165C169F14BC14FF14CC119 :1018200050F14DC151F14EC152F157C159F158C15A :101830005AF1079420EC0CF039EC08F0DAEF0EF0D6 :1018400066C100F167C101F168C102F169C103F12C :101850000101BFEC14F0EBEC12F00401630E826F97 :101860002FEC08F004012C0E826F2FEC08F04FC112 :1018700000F150C101F151C102F152C103F1010166 :10188000BFEC14F0EBEC12F00401660E826F2FEC4B :1018900008F004012C0E826F2FEC08F01CEC15F000 :1018A00059C100F15AC101F10101BFEC14F0EBEC98 :1018B00012F00401740E826F2FEC08F012000F82F8 :1018C0000401530E826F2FEC08F004012C0E826F7E :1018D0002FEC08F083C32AF184C32BF185C32CF1CC :1018E00086C32DF187C32EF188C32FF189C330F150 :1018F0008AC331F18BC332F18CC333F101016AEC3D :1019000015F0E1EC14F000C166F101C167F102C10C :1019100068F103C169F18EC32AF18FC32BF190C323 :101920002CF191C32DF192C32EF193C32FF194C3E7 :1019300030F195C331F196C332F197C333F1010110 :101940006AEC15F0E1EC14F000C14FF101C150F167 :1019500002C151F103C152F15DEC15F099C32FF1B1 :101960009AC330F19BC331F19CC332F19DC333F173 :1019700001016AEC15F0E1EC14F000C159F101C16C :101980005AF120EC0CF004012C0E826F2FEC08F0C1 :10199000D1EF0CF08251520A03E10E82D1EF0CF02C :1019A0000E928251750A03E10F84D8EF0CF00F9468 :1019B0008251550A03E10F86DFEF0CF00F96078482 :1019C0000FB23CEF0DF00FA428EF0DF0B6C166F199 :1019D000B7C167F1B8C168F1B9C169F1BAC16AF1BB :1019E000BBC16BF1BCC16CF1BDC16DF1BEC16EF18B :1019F000BFC16FF1C0C170F1C1C171F1C2C172F15B :101A0000C3C173F1C4C174F1C5C175F1C6C176F12A :101A1000C7C177F1C8C178F1C9C179F1CAC17AF1FA :101A2000CBC17BF1CCC17CF1CDC17DF1CEC17EF1CA :101A3000CFC17FF1D0C180F1D1C181F1D2C182F19A :101A4000D3C183F1D4C184F1D5C185F130EF0DF05C :101A500062C166F163C167F164C168F165C169F192 :101A60004BC14FF14CC150F14DC151F14EC152F13A :101A700057C159F158C15AF107940EA05EEF0DF00D :101A8000010192674BEF0DF093674BEF0DF09467F8 :101A90004BEF0DF095674FEF0DF05EEF0DF012EC90 :101AA0000BF092C104F193C105F194C106F195C107 :101AB00007F125EC14F003BFA2EF0EF012EC0BF0CF :101AC0000101000E046F000E056F010E066F000E7F :101AD000076F53EC14F00FA475EF0DF00401750EB1 :101AE000826F2FEC08F07AEF0DF00401720E826F16 :101AF0002FEC08F004012C0E826F2FEC08F0BFECE5 :101B000014F0296789EF0DF00401200E826F8CEF2D :101B10000DF004012D0E826F2FEC08F030C182F41D :101B20000401300E82272FEC08F031C182F4040149 :101B3000300E82272FEC08F004012E0E826F2FEC5E :101B400008F032C182F40401300E82272FEC08F035 :101B500033C182F40401300E82272FEC08F0040117 :101B60006D0E826F2FEC08F004012C0E826F2FECAB :101B700008F04FC100F150C101F151C102F152C151 :101B800003F10101BFEC14F0EBEC12F00401480E7C :101B9000826F2FEC08F004017A0E826F2FEC08F0B0 :101BA00004012C0E826F2FEC08F066C100F167C1B2 :101BB00001F168C102F169C103F10101BFEC14F048 :101BC000EBEC12F00401630E826F2FEC08F00401BD :101BD0002C0E826F2FEC08F066C100F167C101F195 :101BE00068C102F169C103F101010A0E046F000E20 :101BF000056F000E066F000E076F34EC14F0000E38 :101C0000046F120E056F000E066F000E076F53EC87 :101C100014F0BFEC14F02AC182F40401300E8227C4 :101C20002FEC08F02BC182F40401300E82272FEC38 :101C300008F02CC182F40401300E82272FEC08F04A :101C40002DC182F40401300E82272FEC08F02EC142 :101C500082F40401300E82272FEC08F02FC182F4A9 :101C60000401300E82272FEC08F030C182F4040109 :101C7000300E82272FEC08F004012E0E826F2FEC1D :101C800008F031C182F40401300E82272FEC08F0F5 :101C900032C182F40401300E82272FEC08F033C1E8 :101CA00082F40401300E82272FEC08F00401730E39 :101CB000826F2FEC08F004012C0E826F2FEC08F0DD :101CC0001CEC15F059C100F15AC101F104EC10F0FF :101CD0000EB26EEF0EF00EA0A0EF0EF004012C0E6F :101CE000826F2FEC08F0200EF86EF76AF66A040196 :101CF0000900F5CF82F42FEC08F00900F5CF82F44B :101D00002FEC08F00900F5CF82F42FEC08F0090061 :101D1000F5CF82F42FEC08F00900F5CF82F42FEC18 :101D200008F00900F5CF82F42FEC08F00900F5CF98 :101D300082F42FEC08F00900F5CF82F42FEC08F0C4 :101D400039EC08F00E90DAEF0EF00401630E826FAA :101D50002FEC08F004012C0E826F2FEC08F0E0EC61 :101D60000EF004012C0E826F2FEC08F053EC0FF0F4 :101D700004012C0E826F2FEC08F0CFEC0FF0040161 :101D80002C0E826F2FEC08F00101F80E006FCD0EC3 :101D9000016F660E026F030E036FF5EC0EF0040187 :101DA0002C0E826F2FEC08F0E5EC0FF039EC08F008 :101DB000DAEF0EF00301A26B07900F92E9EF11F03A :101DC000D8900E0EA0EC06F0E8CF00F10F0EA0ECBC :101DD00006F0E8CF01F1100EA0EC06F0E8CF02F11A :101DE000110EA0EC06F0E8CF03F10101000E046F24 :101DF000000E056F010E066F000E076F53EC14F016 :101E0000BFEC14F02AC182F40401300E82272FECBB :101E100008F02BC182F40401300E82272FEC08F069 :101E20002CC182F40401300E82272FEC08F02DC162 :101E300082F40401300E82272FEC08F02EC182F4C8 :101E40000401300E82272FEC08F02FC182F4040128 :101E5000300E82272FEC08F030C182F40401300EDE :101E600082272FEC08F031C182F40401300E822762 :101E70002FEC08F004012E0E826F2FEC08F032C117 :101E800082F40401300E82272FEC08F033C182F473 :101E90000401300E82272FEC08F004016D0E826FD2 :101EA0002FEC08F01200120EA0EC06F0E8CF00F1C3 :101EB000130EA0EC06F0E8CF01F1140EA0EC06F032 :101EC000E8CF02F1150EA0EC06F0E8CF03F1010116 :101ED0000A0E046F000E056F000E066F000E076FEE :101EE00034EC14F0000E046F120E056F000E066F36 :101EF000000E076F53EC14F0BFEC14F02AC182F40B :101F00000401300E82272FEC08F02BC182F404016B :101F1000300E82272FEC08F02CC182F40401300E21 :101F200082272FEC08F02DC182F40401300E8227A5 :101F30002FEC08F02EC182F40401300E82272FEC22 :101F400008F02FC182F40401300E82272FEC08F034 :101F500030C182F40401300E82272FEC08F0040116 :101F60002E0E826F2FEC08F031C182F40401300E86 :101F700082272FEC08F032C182F40401300E822750 :101F80002FEC08F033C182F40401300E82272FECCD :101F900008F00401730E826F2FEC08F012000A0E95 :101FA000A0EC06F0E8CF00F10B0EA0EC06F0E8CFB5 :101FB00001F10C0EA0EC06F0E8CF02F10D0EA0EC42 :101FC00006F0E8CF03F104EF10F0060EA0EC06F0E7 :101FD000E8CF00F1070EA0EC06F0E8CF01F1080E03 :101FE000A0EC06F0E8CF02F1090EA0EC06F0E8CF75 :101FF00003F104EF10F001011CEC15F0078457C148 :1020000000F158C101F107940101E80E046F800E40 :10201000056F000E066F000E076F34EC14F0000E13 :10202000046F040E056F000E066F000E076F53EC71 :1020300014F0880E046F130E056F000E066F000E6D :10204000076F25EC14F00A0E046F000E056F000EEA :10205000066F000E076F53EC14F0BFEC14F0010193 :10206000296738EF10F00401200E826F3BEF10F06B :1020700004012D0E826F2FEC08F030C182F40401B0 :10208000300E82272FEC08F031C182F40401300EAB :1020900082272FEC08F032C182F40401300E82272F :1020A0002FEC08F004012E0E826F2FEC08F033C1E4 :1020B00082F40401300E82272FEC08F00401430E55 :1020C000826F2FEC08F0120087C32AF188C32BF12E :1020D00089C32CF18AC32DF18BC32EF18CC32FF150 :1020E0008DC330F18EC331F190C332F191C333F11E :1020F0000101296B6AEC15F0E1EC14F00101000E0E :10210000046F000E056F010E066F000E076F34ECB2 :1021100014F00E0E0C6E00C10BF08AEC06F00F0EE0 :102120000C6E01C10BF08AEC06F0100E0C6E02C1B1 :102130000BF08AEC06F0110E0C6E03C10BF08AEC6A :1021400006F004017A0E826F2FEC08F004012C0EC9 :10215000826F2FEC08F00401350E826F2FEC08F02F :1021600004012C0E826F2FEC08F0E0EC0EF0E8EF8B :102170000AF087C32AF188C32BF189C32CF18AC3E3 :102180002DF18BC32EF18CC32FF18DC330F18EC393 :1021900031F190C332F191C333F10101296B6AEC43 :1021A00015F0E1EC14F0880E046F130E056F000EAD :1021B000066F000E076F29EC14F0000E046F040E7A :1021C000056F000E066F000E076F34EC14F001016E :1021D000E80E046F800E056F000E066F000E076F8D :1021E00053EC14F00A0E0C6E00C10BF08AEC06F0F2 :1021F0000B0E0C6E01C10BF08AEC06F00C0E0C6E8F :1022000002C10BF08AEC06F00D0E0C6E03C10BF050 :102210008AEC06F004017A0E826F2FEC08F00401BC :102220002C0E826F2FEC08F00401360E826F2FEC1B :1022300008F004012C0E826F2FEC08F0CFEC0FF0A9 :10224000E8EF0AF087C32AF188C32BF189C32CF188 :102250008AC32DF18BC32EF18CC32FF18DC330F1C6 :102260008FC331F190C332F191C333F101016AECB4 :1022700015F0E1EC14F0000E046F120E056F000E65 :10228000066F000E076F34EC14F001010A0E046FA4 :10229000000E056F000E066F000E076F53EC14F072 :1022A000120E0C6E00C10BF08AEC06F0130E0C6ED1 :1022B00001C10BF08AEC06F0140E0C6E02C10BF09B :1022C0008AEC06F0150E0C6E03C10BF08AEC06F0DA :1022D00004017A0E826F2FEC08F004012C0E826F3D :1022E0002FEC08F00401370E826F2FEC08F0040188 :1022F0002C0E826F2FEC08F053EC0FF0E8EF0AF091 :1023000087C32AF188C32BF189C32CF18AC32DF12D :102310008BC32EF18CC32FF18DC330F18EC331F1FD :1023200090C332F191C333F10101296B6AEC15F0CE :10233000E1EC14F0880E046F130E056F000E066FAB :10234000000E076F29EC14F0000E046F040E056FE9 :10235000000E066F000E076F34EC14F00101E80E5A :10236000046F800E056F000E066F000E076F53ECB2 :1023700014F0060E0C6E00C10BF08AEC06F0070E8E :102380000C6E01C10BF08AEC06F0080E0C6E02C157 :102390000BF08AEC06F0090E0C6E03C10BF08AEC10 :1023A00006F004017A0E826F2FEC08F004012C0E67 :1023B000826F2FEC08F00401380E826F2FEC08F0CA :1023C00004012C0E826F2FEC08F0E5EC0FF0E8EF23 :1023D0000AF081A8A7EF12F007A860EF12F0010140 :1023E000800E006F1A0E016F060E026F000E036F53 :1023F0004BC104F14CC105F14DC106F14EC107F1CD :1024000025EC14F003BFA7EF12F0E5EC12F04BC17E :1024100000F14CC101F14DC102F14EC103F107823F :1024200032EC13F018C104F119C105F11AC106F11B :102430001BC107F1F80E006FCD0E016F660E026F23 :10244000030E036F25EC14F00E0E0C6E00C10BF0A2 :102450008AEC06F00F0E0C6E01C10BF08AEC06F050 :10246000100E0C6E02C10BF08AEC06F0110E0C6E11 :1024700003C10BF08AEC06F0078401011CEC15F097 :1024800057C100F158C101F107940A0E0C6E00C14A :102490000BF08AEC06F00B0E0C6E01C10BF08AEC0F :1024A00006F00C0E0C6E02C10BF08AEC06F00D0E5D :1024B0000C6E03C10BF08AEC06F00798A7EF12F040 :1024C00007AAA7EF12F0078401011CEC15F057C111 :1024D00000F158C101F10794060E0C6E00C10BF01B :1024E0008AEC06F0070E0C6E01C10BF08AEC06F0C8 :1024F000080E0C6E02C10BF08AEC06F0090E0C6E91 :1025000003C10BF08AEC06F0078462C100F163C1DD :1025100001F164C102F165C103F10794120E0C6E62 :1025200000C10BF08AEC06F0130E0C6E01C10BF02B :102530008AEC06F0140E0C6E02C10BF08AEC06F069 :10254000150E0C6E03C10BF08AEC06F0079A04011D :10255000805181197F0B0BE09EA809D014EE00F08A :1025600081517F0BE126E750812B0F01AD6EA5EF66 :1025700007F018C100F119C101F11AC102F11BC124 :1025800003F1000E046F000E056F010E066F000EC2 :10259000076F53EC14F029A1E4EF12F02051D8B4E6 :1025A000E4EF12F018C100F119C101F11AC102F1F2 :1025B0001BC103F1000E046F000E056F0A0E066FBB :1025C000000E076F53EC14F012000101186B196B29 :1025D0001A6B1B6B12002AC182F40401300E822791 :1025E0002FEC08F02BC182F40401300E82272FEC6F :1025F00008F02CC182F40401300E82272FEC08F081 :102600002DC182F40401300E82272FEC08F02EC178 :1026100082F40401300E82272FEC08F02FC182F4DF :102620000401300E82272FEC08F030C182F404013F :10263000300E82272FEC08F031C182F40401300EF5 :1026400082272FEC08F032C182F40401300E822779 :102650002FEC08F033C182F40401300E82272FECF6 :1026600008F012000101005305E1015303E1025398 :1026700001E1002BF5EC13F01CEC15F03951006F63 :102680003A51016F420E046F4B0E056F000E066F3C :10269000000E076F34EC14F000C104F101C105F124 :1026A00002C106F103C107F118C100F119C101F11E :1026B0001AC102F11BC103F107B263EF13F029EC59 :1026C00014F065EF13F025EC14F000C118F101C10E :1026D00019F102C11AF103C11BF112001CEC15F033 :1026E00059C100F15AC101F1060EA0EC06F0E8CF85 :1026F00004F1070EA0EC06F0E8CF05F1080EA0ECFF :1027000006F0E8CF06F1090EA0EC06F0E8CF07F1DD :1027100025EC14F000C124F101C125F102C126F11C :1027200003C127F1290E046F000E056F000E066F1E :10273000000E076F34EC14F0EE0E046F430E056FBD :10274000000E066F000E076F29EC14F024C104F18F :1027500025C105F126C106F127C107F134EC14F0BB :1027600000C11CF101C11DF102C11EF103C11FF125 :10277000120EA0EC06F0E8CF04F1130EA0EC06F068 :10278000E8CF05F1140EA0EC06F0E8CF06F1150E27 :10279000A0EC06F0E8CF07F10D0E006F000E016F00 :1027A000000E026F000E036F34EC14F0180E046F6D :1027B000000E056F000E066F000E076F53EC14F04D :1027C0001CC104F11DC105F11EC106F11FC107F1B5 :1027D00029EC14F06A0E046F2A0E056F000E066FC6 :1027E000000E076F25EC14F01200BF0EFA6E200EDB :1027F0003A6F396BD8900037013702370337D8B0BA :1028000006EF14F03A2FFBEF13F039073A070353A2 :10281000D8B412000331070B80093F6F03390F0B47 :10282000010F396F80EC5FF0406F390580EC5FF08D :10283000405D405F396B3F33D8B0392739333FA90A :102840001BEF14F040513927120041EC15F0D8B0BD :10285000120003510719346F04EC15F0D89007519A :10286000031934AF800F1200346B28EC15F0D8A098 :102870003EEC15F0D8B0120013EC15F01CEC15F07E :102880001F0E366F54EC15F00B35D8B004EC15F074 :10289000D8A00335D8B01200362F42EF14F034B16F :1028A0002BEC15F01200346B0451051106110711C1 :1028B0000008D8A028EC15F0D8A03EEC15F0D8B050 :1028C0001200086B096B0A6B0B6B54EC15F01F0EB2 :1028D000366F54EC15F007510B5DD8A47CEF14F063 :1028E00006510A5DD8A47CEF14F00551095DD8A407 :1028F0007CEF14F00451085DD8A08FEF14F0045160 :10290000085F0551D8A0053D095F0651D8A0063DD6 :102910000A5F0751D8A0073D0B5FD8900081362F82 :1029200069EF14F034B12BEC15F0346B28EC15F092 :10293000D89058EC15F007510B5DD8A4ACEF14F00B :1029400006510A5DD8A4ACEF14F00551095DD8A476 :10295000ACEF14F00451085DD8A0BBEF14F0003FB9 :10296000BBEF14F0013FBBEF14F0023FBBEF14F0DC :10297000032BD8B4120034B12BEC15F01200010176 :10298000346B28EC15F0D8B012005DEC15F0200E79 :10299000366F003701370237033711EE33F00A0E76 :1029A000376FE7360A0EE75CD8B0E76EE552372F8F :1029B000D1EF14F0362FC9EF14F034B12981D8903B :1029C000120001010A0E346F200E366F11EE29F04D :1029D0003451376F0A0ED890E652D8B0E726E73266 :1029E000372FECEF14F00333023301330033362F6B :1029F000E6EF14F0E750FF0FD8A00335D8B012006F :102A000029B12BEC15F01200045100270551D8B064 :102A1000053D01270651D8B0063D02270751D8B021 :102A2000073D032712000051086F0151096F025141 :102A30000A6F03510B6F12000101006B016B026BF7 :102A4000036B12000101046B056B066B076B120030 :102A50000335D8A012000351800B001F011F021F75 :102A6000031F003F3BEF15F0013F3BEF15F0023F26 :102A70003BEF15F0032B342B032512000735D8A0AC :102A800012000751800B041F051F061F071F043F7C :102A900051EF15F0053F51EF15F0063F51EF15F0DE :102AA000072B342B07251200003701370237033775 :102AB000083709370A370B3712000101296B2A6BD7 :102AC0002B6B2C6B2D6B2E6B2F6B306B316B326B3A :102AD000336B12002A510F0B2A6F2B510F0B2B6FE8 :102AE0002C510F0B2C6F2D510F0B2D6F2E510F0BE7 :102AF0002E6F2F510F0B2F6F30510F0B306F315145 :102B00000F0B316F32510F0B326F33510F0B336F8D :022B10001200B1 :10BF0000E844F926000C160C2B0C3F0C520C640C68 :10BF1000760C860C960CA50CB30CC10CCF0CDC0C6B :06BF2000E80CF40C000C1B :00000001FF ./gpl-3.0.txt0000644000175000017500000010451514576573022012777 0ustar anthonyanthony GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . ./dlheader.pas0000644000175000017500000003372314576573021013434 0ustar anthonyanthonyunit dlheader; {$mode objfpc} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, Spin, uPascalTZ, appsettings, LCLIntf //, Grids //, StrUtils ; type { TDLHeaderForm } TDLHeaderForm = class(TForm) Button1: TButton; CloseButton: TButton; CoverOffsetEntry: TLabeledEdit; DataSupplierEntry: TLabeledEdit; DefinitionsLink: TLabel; TZRefLink: TLabel; EditPositionButton: TButton; FieldOfViewEntry: TLabeledEdit; FiltersPerChannelEntry: TComboBox; PDFDocButton: TButton; SelectedGroupBox: TGroupBox; InstrumentIDEntry: TLabeledEdit; InvalidInstrumentID: TLabel; Label10: TLabel; Label11: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; LocationNameEntry: TLabeledEdit; MeasurementDirectionPerChannelEntry: TLabeledEdit; MovingStationaryDirectionCombo: TComboBox; MovingStationaryPositionCombo: TComboBox; NumberOfChannelsEntry: TSpinEdit; PositionEntry: TLabeledEdit; ScrollBox1: TScrollBox; SerialNumber: TLabeledEdit; TimeSynchEntry: TLabeledEdit; TZLocationBox: TComboBox; TZRegionBox: TComboBox; UserComment1: TLabeledEdit; UserComment2: TEdit; UserComment3: TEdit; UserComment4: TEdit; UserComment5: TEdit; procedure Button1Click(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure PDFDocButtonClick(Sender: TObject); procedure CloseButtonClick(Sender: TObject); procedure EditPositionButtonClick(Sender: TObject); procedure CoverOffsetEntryChange(Sender: TObject); procedure DefinitionsLinkClick(Sender: TObject); procedure DefinitionsLinkMouseEnter(Sender: TObject); procedure DefinitionsLinkMouseLeave(Sender: TObject); procedure FiltersPerChannelEntryChange(Sender: TObject); procedure FieldOfViewEntryChange(Sender: TObject); procedure MeasurementDirectionPerChannelEntryChange(Sender: TObject); procedure MovingStationaryDirectionComboChange(Sender: TObject); procedure MovingStationaryPositionComboChange(Sender: TObject); procedure DataSupplierEntryChange(Sender: TObject); procedure FormCreate(Sender: TObject); procedure InstrumentIDEntryChange(Sender: TObject); procedure NumberOfChannelsEntryChange(Sender: TObject); procedure TimeSynchEntryChange(Sender: TObject); procedure LocationNameEntryChange(Sender: TObject); procedure TZLocationBoxChange(Sender: TObject); procedure TZRefLinkClick(Sender: TObject); procedure TZRegionBoxChange(Sender: TObject); procedure UserComment1Change(Sender: TObject); procedure UserComment2Change(Sender: TObject); procedure UserComment3Change(Sender: TObject); procedure UserComment4Change(Sender: TObject); procedure UserComment5Change(Sender: TObject); private { private declarations } public { public declarations } procedure ReadINI(); function CheckInstrumentID() : Boolean; end; var SerialINIsection: String; DLHeaderForm: TDLHeaderForm; AZones: TStringList; ptz :TPascalTZ; TZInitialLoad:Boolean = True; LoadingValues:Boolean = False; implementation uses Unit1 , worldmap , logcont , header_utils ; { TDLHeaderForm } { Save the TZ selection. } procedure TDLHeaderForm.TZLocationBoxChange(Sender: TObject); begin if not LoadingValues then begin vConfigurations.WriteString(SerialINIsection,'Local time zone',TZLocationBox.Text); SelectedTZLocation:=vConfigurations.ReadString(SerialINIsection,'Local time zone'); end; end; procedure TDLHeaderForm.TZRefLinkClick(Sender: TObject); begin {Link to very complete Wikipedia list of time zones with offsets explained} OpenURL('https://en.wikipedia.org/wiki/List_of_tz_database_time_zones'); end; procedure TDLHeaderForm.TZRegionBoxChange(Sender: TObject); begin if not LoadingValues then begin { Clear out location because region has changed. } //TZLocationBox.Text:=''; { not needed, and in Mac, this always clears the field on INI for some strange GUI threading issue} { Save the TZ region selection. } SelectedTZRegion:=TZRegionBox.Text; Application.ProcessMessages; vConfigurations.WriteString(SerialINIsection,'Local region',SelectedTZRegion); { Read the region database table. } ptz.Destroy; ptz := TPascalTZ.Create(); ptz.ParseDatabaseFromFile(appsettings.TZDirectory+SelectedTZRegion); Azones.Clear; ptz.GetTimeZoneNames(AZones,true); //only geo name = true TZLocationBox.Items.Clear; TZLocationBox.Items.AddStrings(AZones); end; end; procedure TDLHeaderForm.FormCreate(Sender: TObject); begin { Initialize required variables. } AZones:=TStringList.Create; ptz := TPascalTZ.Create(); CheckInstrumentID; end; procedure TDLHeaderForm.FormDestroy(Sender: TObject); begin AZones.Destroy; ptz.Destroy; end; procedure TDLHeaderForm.Button1Click(Sender: TObject); begin {check specific timezone, from upascaltz example wiki} if ptz.TimeZoneExists('Australia/AS') then StatusMessage('tz exists.') else StatusMessage('tz does not exist.'); end; procedure TDLHeaderForm.DataSupplierEntryChange(Sender: TObject); begin if not LoadingValues then vConfigurations.WriteString(SerialINIsection,'Data Supplier',DataSupplierEntry.Text); end; procedure TDLHeaderForm.MovingStationaryPositionComboChange(Sender: TObject); begin if not LoadingValues then vConfigurations.WriteString(SerialINIsection,'Moving Stationary Position',MovingStationaryPositionCombo.Text); end; procedure TDLHeaderForm.MovingStationaryDirectionComboChange(Sender: TObject); begin if not LoadingValues then vConfigurations.WriteString(SerialINIsection,'Moving Stationary Direction',MovingStationaryDirectionCombo.Text); end; procedure TDLHeaderForm.FiltersPerChannelEntryChange(Sender: TObject); begin if not LoadingValues then vConfigurations.WriteString(SerialINIsection,'Filters Per Channel',FiltersPerChannelEntry.Text); end; procedure TDLHeaderForm.CoverOffsetEntryChange(Sender: TObject); begin if not LoadingValues then vConfigurations.WriteString(SerialINIsection,'CoverOffset',CoverOffsetEntry.Text); end; procedure TDLHeaderForm.DefinitionsLinkClick(Sender: TObject); begin OpenURL(DefinitionsLink.Caption); end; procedure TDLHeaderForm.DefinitionsLinkMouseEnter(Sender: TObject); begin DefinitionsLink.Cursor := crHandPoint; DefinitionsLink.Font.Color := clBlue; DefinitionsLink.Font.Style := [fsUnderline]; if Pos('http://www.', DefinitionsLink.Caption) = 0 then DefinitionsLink.Caption := 'http://www.' + DefinitionsLink.Caption; end; procedure TDLHeaderForm.DefinitionsLinkMouseLeave(Sender: TObject); begin DefinitionsLink.Font.Style := []; if Pos('http://www.', DefinitionsLink.Caption) > 0 then DefinitionsLink.Caption := Copy(DefinitionsLink.Caption, Pos('http://www.', DefinitionsLink.Caption) + Length('http://www.'), Length(DefinitionsLink.Caption)); end; procedure TDLHeaderForm.CloseButtonClick(Sender: TObject); begin Close; end; procedure TDLHeaderForm.PDFDocButtonClick(Sender: TObject); begin OpenDocument(appsettings.DataDirectory+'47_SKYGLOW_DEFINITIONS.PDF'); end; procedure TDLHeaderForm.EditPositionButtonClick(Sender: TObject); begin worldmap.FormWorldmap.WorldmapShow('DLHeader', PositionEntry.Text ); end; procedure TDLHeaderForm.UserComment1Change(Sender: TObject); begin if not LoadingValues then vConfigurations.WriteString(SerialINIsection,'UserComment1',UserComment1.Text); end; procedure TDLHeaderForm.UserComment2Change(Sender: TObject); begin if not LoadingValues then vConfigurations.WriteString(SerialINIsection,'UserComment2',UserComment2.Text); end; procedure TDLHeaderForm.UserComment3Change(Sender: TObject); begin if not LoadingValues then vConfigurations.WriteString(SerialINIsection,'UserComment3',UserComment3.Text); end; procedure TDLHeaderForm.UserComment4Change(Sender: TObject); begin if not LoadingValues then vConfigurations.WriteString(SerialINIsection,'UserComment4',UserComment4.Text); end; procedure TDLHeaderForm.UserComment5Change(Sender: TObject); begin if not LoadingValues then vConfigurations.WriteString(SerialINIsection,'UserComment5',UserComment5.Text); end; procedure TDLHeaderForm.FieldOfViewEntryChange(Sender: TObject); begin if not LoadingValues then vConfigurations.WriteString(SerialINIsection,'Field Of View',FieldOfViewEntry.Text); end; procedure TDLHeaderForm.ReadINI(); var pieces: TStringList; begin {Prevent other routines from affecting the Time zone location name} TZInitialLoad:=True; {Prepare for parsing} pieces := TStringList.Create; pieces.Delimiter := ','; pieces.StrictDelimiter := False; {will be parsing spaces } {Determine the section based on the selected serial number} SerialINIsection:='Serial:'+Unit1.SelectedUnitSerialNumber; { Pull Timezone information from INI file if it exists.} SelectedTZRegion:= vConfigurations.ReadString(SerialINIsection,'Local region'); TZRegionBox.Text:=SelectedTZRegion; if (FileExists(appsettings.TZDirectory+SelectedTZRegion) and (length(SelectedTZRegion)>0))then begin ptz.Destroy; ptz := TPascalTZ.Create(); ptz.ParseDatabaseFromFile(appsettings.TZDirectory+SelectedTZRegion); ptz.GetTimeZoneNames(AZones,true); //only geo name = true, does not show short names TZLocationBox.Items.Clear; TZLocationBox.Items.AddStrings(AZones); end; { Read the previously recorded entries. } SelectedTZLocation:=vConfigurations.ReadString(SerialINIsection,'Local time zone'); TZLocationBox.Text:=SelectedTZLocation; InstrumentIDEntry.Text:=vConfigurations.ReadString(SerialINIsection,'Instrument ID'); DataSupplierEntry.Text:=vConfigurations.ReadString(SerialINIsection,'Data Supplier'); LocationNameEntry.Text:=vConfigurations.ReadString(SerialINIsection,'Location Name'); PositionEntry.Text:=vConfigurations.ReadString(SerialINIsection,'Position'); {Parse location} pieces.DelimitedText := PositionEntry.Text; if pieces.Count>1 then begin MyLatitude:=StrToFloatDef(pieces.Strings[0],0); MyLongitude:=StrToFloatDef(pieces.Strings[1],0); end else begin MyLatitude:=0; MyLongitude:=0; end; //Parse elevation if pieces.Count>2 then begin MyElevation:=StrToFloatDef(pieces.Strings[2],0); end else begin MyElevation:=0; end; TimeSynchEntry.Text:=vConfigurations.ReadString(SerialINIsection,'Time Synchronization'); MovingStationaryPositionCombo.Text:=vConfigurations.ReadString(SerialINIsection,'Moving Stationary Position'); MovingStationaryDirectionCombo.Text:=vConfigurations.ReadString(SerialINIsection,'Moving Stationary Direction'); NumberOfChannelsEntry.Text:=vConfigurations.ReadString(SerialINIsection,'Number Of Channels'); FiltersPerChannelEntry.Text:=vConfigurations.ReadString(SerialINIsection,'Filters Per Channel'); MeasurementDirectionPerChannelEntry.Text:=vConfigurations.ReadString(SerialINIsection,'Measurement Direction Per Channel'); FieldOfViewEntry.Text:=vConfigurations.ReadString(SerialINIsection,'Field Of View'); CoverOffsetEntry.Text:=vConfigurations.ReadString(SerialINIsection,'CoverOffset'); UserComment1.Text:=vConfigurations.ReadString(SerialINIsection,'UserComment1'); UserComment2.Text:=vConfigurations.ReadString(SerialINIsection,'UserComment2'); UserComment3.Text:=vConfigurations.ReadString(SerialINIsection,'UserComment3'); UserComment4.Text:=vConfigurations.ReadString(SerialINIsection,'UserComment4'); UserComment5.Text:=vConfigurations.ReadString(SerialINIsection,'UserComment5'); //GPS tab FormLogCont.GPSPortSelect.Text:=vConfigurations.ReadString(SerialINIsection,'GPS Port'); logcont.GPSBaudrate:=StrToIntDef(vConfigurations.ReadString(SerialINIsection,'GPS Baud','4800'),4800); FormLogCont.GPSBaudSelect.Text:=IntToStr(logcont.GPSBaudrate); FormLogCont.GPSEnable.Checked:=vConfigurations.ReadBool(SerialINIsection,'GPS Enabled'); //GoTo tab logcont.GotoBaudrate:=StrToIntDef(vConfigurations.ReadString('GoToSettings','GoTo Baud',''),9600); FormLogCont.GoToBaudSelect.Text:=IntToStr(logcont.GoToBaudrate); //Write hardware identifier (Ethernet-MAC, USB-ID) {This detail is not chosen by the user, it is automatically stored after reading other header information.} vConfigurations.WriteString(SerialINIsection,'HardwareID',SelectedHardwareID); if Assigned(pieces) then FreeAndNil(pieces); TZInitialLoad:=False; {Allow other routines to affect the Time zone location name} end; procedure TDLHeaderForm.MeasurementDirectionPerChannelEntryChange(Sender: TObject); begin if not LoadingValues then vConfigurations.WriteString(SerialINIsection,'Measurement Direction Per Channel',MeasurementDirectionPerChannelEntry.Text); end; function TDLHeaderForm.CheckInstrumentID() : Boolean; var CheckChar: char; begin CheckInstrumentID:=True; {Assume that text is valid} for CheckChar in InstrumentIDEntry.Text do if not (CheckChar in ['0'..'9','A'..'Z','a'..'z','_','-']) then CheckInstrumentID:=False; InvalidInstrumentID.Visible:=not CheckInstrumentID; end; procedure TDLHeaderForm.InstrumentIDEntryChange(Sender: TObject); begin if not LoadingValues then begin Application.ProcessMessages; //Wait for widgets to become visible if CheckInstrumentID then vConfigurations.WriteString(SerialINIsection,'Instrument ID',InstrumentIDEntry.Text); end; end; procedure TDLHeaderForm.NumberOfChannelsEntryChange(Sender: TObject); begin if not LoadingValues then vConfigurations.WriteString(SerialINIsection,'Number Of Channels',NumberOfChannelsEntry.Text); end; procedure TDLHeaderForm.TimeSynchEntryChange(Sender: TObject); begin if not LoadingValues then vConfigurations.WriteString(SerialINIsection,'Time Synchronization',TimeSynchEntry.Text); end; procedure TDLHeaderForm.LocationNameEntryChange(Sender: TObject); begin if not LoadingValues then vConfigurations.WriteString(SerialINIsection,'Location Name',LocationNameEntry.Text) end; initialization {$I dlheader.lrs} end. ./splash.lfm0000644000175000017500000005720714576573021013154 0ustar anthonyanthonyobject frmSplash: TfrmSplash Cursor = crHourGlass Left = 2153 Height = 179 Top = 292 Width = 322 BorderStyle = bsNone Caption = 'frmSplash' ClientHeight = 179 ClientWidth = 322 Color = 11647937 FormStyle = fsSplash OnCreate = FormCreate Position = poScreenCenter LCLVersion = '2.3.0.0' object Image2: TImage AnchorSideLeft.Control = Owner AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = StaticText1 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Label1 Left = 1 Height = 124 Top = 28 Width = 321 Anchors = [akTop, akLeft, akRight, akBottom] Center = True Picture.Data = { 0A544A706567496D616765DA270000FFD8FFE000104A4649460001010100F000 F00000FFE107E245786966000049492A000800000009000F010200120000007A 000000100102000B0000008C0000001201030001000000010000001A01050001 000000980000001B01050001000000A000000028010300010000000200000031 0102000C000000A80000003201020014000000B40000006987040001000000C8 000000E60100004E494B4F4E20434F52504F524154494F4E004E494B4F4E2044 3730730000F000000001000000F00000000100000047494D5020322E362E3131 00323031323A30323A31312031323A35393A35310011009A820500010000009A 0100009D82050001000000A20100002788030001000000800200000090070004 000000303231300390020014000000AA01000001920A0001000000BE01000002 92050001000000C601000004920A0001000000CE0100000592050001000000D6 0100000792030001000000050000000992030001000000100000000A92050001 000000DE01000000A00700040000003031303001A0030001000000FFFF000002 A00400010000002C01000003A00400010000007000000005A40300010000001B 000000000000000200000001000000230000000A000000323030353A30373A30 362032323A32303A323000FFFFFFFF01000000FF830500A08601000000000001 000000240000000A000000120000000100000006000301030001000000060000 001A01050001000000340200001B010500010000003C02000028010300010000 0002000000010204000100000044020000020204000100000096050000000000 0048000000010000004800000001000000FFD8FFE000104A4649460001010000 0100010000FFDB004300080606070605080707070909080A0C140D0C0B0B0C19 12130F141D1A1F1E1D1A1C1C20242E2720222C231C1C2837292C30313434341F 27393D38323C2E333432FFDB0043010909090C0B0C180D0D1832211C21323232 3232323232323232323232323232323232323232323232323232323232323232 323232323232323232323232323232FFC0001108002900700301220002110103 1101FFC4001F0000010501010101010100000000000000000102030405060708 090A0BFFC400B5100002010303020403050504040000017D0102030004110512 2131410613516107227114328191A1082342B1C11552D1F02433627282090A16 1718191A25262728292A3435363738393A434445464748494A53545556575859 5A636465666768696A737475767778797A838485868788898A92939495969798 999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4 D5D6D7D8D9DAE1E2E3E4E5E6E7E8E9EAF1F2F3F4F5F6F7F8F9FAFFC4001F0100 030101010101010101010000000000000102030405060708090A0BFFC400B511 0002010204040304070504040001027700010203110405213106124151076171 1322328108144291A1B1C109233352F0156272D10A162434E125F11718191A26 2728292A35363738393A434445464748494A535455565758595A636465666768 696A737475767778797A82838485868788898A92939495969798999AA2A3A4A5 A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DA E2E3E4E5E6E7E8E9EAF2F3F4F5F6F7F8F9FAFFDA000C03010002110311003F00 E4ADF64C81D3953ED8AB422F6AE7ED3535B5B39328C26C8F95BA74EB4F83C472 82A92C2AFCF2CBC647D2B9F999D963A158FDAA74873DAA3B39E2BB8F7C4D91D0 8EE3EB5A31479A7CC2B11C76E7D2ADC76C78E2ACC309E38ABF141ED4B98A48A5 1C0DD47F2A945BB9EE6B523B6CF6AB0B6BED5371987F63F6A61B4F6ADF36BED5 1B5B7B53E61D8C06B5F6A85AD7DAB7DAD7DAA16B5F6A7CC1639E7B63E9552580 FA574AF6BED54E7B5E0D1CC1CA7934A1A4037F0173C93C1A811009542F39E463 A9351CC19FF7711F987206696DADE68AED0CB1B6CCF506A12496E0DEA6EC5717 36B11482664049CAA8FEB5D7F84EE25D4A0749F99226C6E3FC40D718DFEB1642 E7EE93B71DA9C9AB5D582916D3CB06E39C090819F5C0AC22DBD0D1A4B53DC6C7 41699148AD14D04A9C5780AF8FF5A4708FA85CF96B9C7EF5891F9D457FE38D52 F228C4777711BA9259C4C72DFE15BAA4FB98B9F91EFA3EC516A434F694F9E7FD 83B41F4DD8C66B5D749E338E2BE561AD5F9003DDCACB9E417273CD6A59F8E357 D3EC9ED60B861191B506E2767D3FCF7A6A9BEAC5CC7D24FA66D1F74D5792C767 DE18FAD782693F10AFEDDCFF00684B3DD2F1B7F7A576FE86BA287E28C6B28940 957924EE0198FA60E3AD5280F98F517B640B92540AA927D953EFCAA3F035E6D7 1F12EDAE3E575BEC31F98F9F907F0AB116BD657D6924E7CD8E18F1BF7CBC03C7 7C73FF00D7A141771F3A47633DEE9A0E05C824F4F91BFC2B327D434F24813124 7A29AE3C6ABA69019D9C2B60824E3839C76359773AD5A4329425D8E3AA1E0D3E 55DC9F68725036FBF6E79ED918CD5EB99BF7206486CE71EB8A8EE7FE437F9D47 7DF7BF1158BF7A48BD933652257456618054B93ED8ACABF2DB8B6DC671CE4127 22B61BFE3C1BE9FD16B2AEBEEC7FEE0FE42B3A3F11AD45A18CC7249A7AF2307F 0A6B751F4A55FE95DCCE41C149600734E6420678A20FF3F9D3FB1A96DDCA203B BD2943118C55C1F707FBBFE1550F7A14AE26AC2C928663B7819E013922AED86A 46D52742BBD644DBB49C0CE41CFE9FCAB3CF5FC281D69D908B293C849D84E320 E3AE71EDDEAE7DBE4F23CA912365C9C9F2D4360FBD5087EF0FA1A926FBCDFEED 435AD8A48FFFD9FFDB0043000604040705070B06060B0E0A080A0E110E0E0E0E 1116131313131316110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C 0C0C0C0C0C0C0C0C0C0C0C0CFFDB004301070909130C1322131322140E0E0E14 140E0E0E0E14110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C 0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CFFC00011080070012C030111000211 01031101FFC4001C000003000301010100000000000000000002030401050600 0708FFC400371000010302040403060602030101000000010203110021041231 41055161F01322710607328191A11442B1C1E1F123D15262721508FFC4001901 01010101010100000000000000000000000102030405FFC4002E110002010204 05040203010003000000000001110221123141F0035161719181A1B1C113D122 E1F132044252FFDA000C03010002110311003F00F9F86C4D713DC3128E62A818 96EA490606FE949064373B5590106F6AA40C22A494308AB20208A1030DF2A00C 23ED500C0DCD240D4B40EBAD492C0E436371350B0302072BD42C0C461C9BC5A9 2582A4A523CA91F38AC3450D96D03E2146543FC4426C916ACC1A93DE311A0AD6 1249E2F386DA515286201692AB9AD250403C2E95487BC28A03C5AA92012CD018 2C9AB2012D74A000B7CAAA00F8551800B356400A6BBEFBE940016AAC814A6E28 400B7500B5B515648216D524409537DFF756441AE6E142410474FE2B9C81A949 AB24181368EFBFA5244061315240592AC920208AB22024A68106111490184D40 3128E5A55908725A9EFEDEB524A90C4B73490312CCD2440D4B5D2A49607259D8 524A390D5490352D5428C4B1D292030CF4A00C334928418A483C181A50192C09 A4830589A483058DEAC804B344012D6940016B6AA012CF7FEE8002D54100164D 54059679D082D4D5A280596778A4814B66804ADAA4904A91D280496CD01C1F09 57E15DCA973FC277DB69F88274B8B09064116AE4F308EB5012A122E3623BEFEF 5B90310915640CC89AC88339456881045A80309DEA9034A06B410342050B0352 8A147211B540390C8A1207A59DAA146A591428E4B1A540390C500C0CD00D4B55 00C4B342861AAA020CD019F0680F1679501EF068500B340096692002CD500166 A8014D45002A66A003C21BD0B00167E94902D6CD00A53228414A628204AD8A10 9DC639559104EA6A0D087CE308D2B181494B84B84D81990459530204F39131D2 B1510E9F85A5C461D01C042B9132796F040E40ED45628BC7FB42C6073214A975 31E5BFA9BC1D01924031A6B6AB207F09E32CF1246668F986A9DC7FB1D45A80B0 E21B89CC9898991AF29E7D3A74A49078154063A1A201A527BEFEB54C8D483428 E403DF7F2A147A05641421134905084D4929421B34050845428E437540E4B535 021896AA881819A1434B1410186680F7814063C1A03058E5490096A8500B3548 0A9AA0014D50005AA0165AA1402D1A48014D4D00B5327BEFFBA016A6A92516A6 A2A4812B6B9D59213B8D1D280954D5E92483E2985C7B9835E74A08741B13CE66 F104CFC3793C8DABA6672475AEF1A759C18756A0AC438632884E4E60E6936173 3A131D6B83BE596F2E67498EFCBF673788C5FE2DDCCF7C6A30674DEE62D363B5 ED706F5A56DE608C1530B2A65460137D09E646863E8622456DDCCA0DAC4AC139 36BDF9C738266D6E663D6B387DCB275FC1FDB24942518C4E52123CC2F3C8C46E 24D8C88D0EB51D81D5B0E25C405A7450047F554839349035026DDF7FDD241421 3A5241421076A85828422280A1B474A14A50D54903D0D5040F4B7403908AA072 1BA01C96EA0181BA142F08ED4067C2A14C16B7A0305B3400168D0005BAA002DD 000A6E80053468002D50025BAA5014D540016B634085A99E940296CD40256C1A 02775AE9429396B90A03E34FA028A70E984A946491A98B5A22240B49B734C915 E6A6A8BE6978DA2D4B4C9F335D8A4A306E1651E7091F1CF4B8036127633A9988 AEF4BC4A729D3A1CDAC2E3DC98BE0AA4F59FA8BFD77D62FCEBAC12404B99960C 1E46F6FDE637BE9F235A6AC6539199A17004A4F7F3F5D3ADEB1A1A366B78A59C 88D0A803B7FD81CC45B9820C45B913C53B9B6767ECB21D852B10F1757A144CC7 5833CA2D68AAAA9BED11AF437E5D6DA199C5048E64C0FAD6B1120A19521C1282 143A19FD3AD132414B69A4882B69BA494ADA6AA622C15B6C549241436C524B05 08622B441C8662A907218A4907A18A4947259A4818962A4943187A033E050182 C50A09628012C55928070F420270F428270F4001C3ED4001C3D0A02B0D49002B 0F402D4C0A014A668512A68D0825C6A8095D6E85255B326843E1185783A67C60 563CC4000C5A24922F3304055845ED5C2BA62D1676415F5BA138A4BCEA732949 2D854588CE7FF626D6102045E1455627A50D2E73D725DBC99A94EEFEA2480A49 0AD4888E9A9888D6C6DAC7A8ADE2811616A6D1868514C66E7F4F96F3798D46E7 4AA757A19C82461C2FFCB2473EF6BE8444EDBD1D716106D10529683932371D40 0481B413E606045CC5CD79AACCECB21897F10909C52014C88247DC1F59320085 48ACA8560D82EBEE2823C559298FDC89BE823E70466809BDDEFC91A363ECFF00 1B4F0F7CB8F1510919523F2ED26046C0E9AFC44F3D4F9308FAA601C4629B4BCD 1CC858907F837F5B03CC0D2988D41B36189B0ACE23506D18E1A5426B388B058D 70C572A622415B7C355CAAE2240E4F0E55695465A189E1E7955C4481C9C011B5 5C4207230476149240E4607A524B035382E949018C1559078E06920C1C155902 D58402A9405618500B2C550016450025AA0014D500B2D4D2048259A4000E1E76 AA4901585342885E1CD0A21CC39A0275E1CD24A4AEE1E809D4C5EA483F3AE2D0 4B8521033286A4DCCC856602E4CC1178491A12A318A5C2BF8F886468F37802DB 85D599B5E34120F3D49FF91378888A55C4950B5F2554C1879684DBE220FCC723 1FC8BFA4D454B7D3EC8D8A7C36B32A92A4E80E93A9275F8A46E0C574A6576D5E A65C313877D2014A41322207D0C017990349BEA0D6EAA60CA66E70D86530CB80 FF00C8405489FDE20C9035DABC95549BF37476A558B9DC5B896BC040194EA201 F969B01783689160270B3DC9B24752A4654A46A9161CAE45CFAEF30AD79D6D2F D9964CFE1CA541248009B1E477272C9E82FF00488ADD0D331523EBDEC1952B02 86162435290BD9573222D0A411045F6324106B0CDA476D83C28544566049D170 FC193008AC3A4988DE61F86A4ED4C231142B86E5DAB4A932EA03FF009E056D23 38836F000EB560CC88E2CE35C2F0EAC4380A88F8523551FCA906E06636954241 D4D4A9E15215CF9C8F7A5C41DC52528C0F858507CE48529517E61A4849131973 ACA92465B8039E37D3E56F9EA68FA5706C5B5C530E9C43408917045C1F9EC624 1E5F3AED47F25F3BE5C88DC7D1B1184E95BC24933F843CAAE11201C34981AD58 1202F0475AB02499785A1645AB0645C8AA44C4A9840198911CE7EB077F9546E3 739F452F72691392D4C022B40C02D1305407AD465801E770ED9292A98E427EE2 D5041239C470C9E7F4AD40810E71BC2A354B87E43F750FD290209D7ED4615BBF 86B3F41FB9A07491BFEDBB1A378751F5581FA24F77ADE133104389F6D929B258 83FF00657A7248EE2B380ADC0947B50FBE82B6DA6C011AAF9D84024137064898 DC09A60CDDDAA54BB6574BE5A338EF1CCD7627DB45A159436831AEB13D0C991A 72268B87269D7048FF00B62E28795B483D4CFEC3793F69B497E31F91133BED53 AA32DA42475837FA08F4ADAA3CEBA2CED0A1E90B37796455B3E1A9C5BCC105D5 109249035279C1F844C9D4A8CCD8835C9D29E5996600E218C71602AC851911A6 C223698D373CEC2AF0E84BA8AEAF4E8421F41195320A8DF36BE92362474FDEBB 46D1CB10031516336EBD9FD85F9D5C2664730F16CA5689CD7023A6D79D88DBE7 59A94DB4374B8EE75ADABC564294929F87303A904E6B916BE68D0100815F25D9 DBD0F62BA24E258C0D795A2080415106C2D26C39845A06DCA6BBF0686F3FEFBC 98A994E156A73FCA23C558950493A9BD85CC738D74074AE35D9C68B29D7BEF23 54B9B80A4A90A07285A53E6CAAB83CE4482390820C4419135D29AFF4468EDB83 7B7CC6030C867F0494AA4ABCAE9020C465490B50882092A3249D0002BA53C375 6BADD42BAE4B28B6B7CC555A5A69CFBDDCCF4CA32EA6F305EF559685F067348D 1DDBF30828333B19B7235D9707ADE6D6494689AD5CDE67D0E2F889E9DEF2DBD1 CE9DA2FCCEAF07EFB7878C8977005195372959549E6524B709B82609262065D6 B75A51649D5D5BA54FA2ABC5BB9C2957BB697449BF78F2653EFC825D486D9478 635516D52779092F909E5F12B4BC8B572A68A9ACA9C56972E33BB50AD2A145F2 EA75A9D33FFB47A7EB72527DFABEFA32B38760AA627CDCB64F8920CDE0A95CBD 7BFE39E4ADDDA717E49DE5A516CAE726D2FF00EBDA23C76FD223C7FBE5E28CA1 4B4B2C2109B92A4AA7D4C2C0035D06D7E75B5C25AF79D574EDAF7D4E6EBE5EE7 38BFFF0049E39871494A18722F6418E596EB06D1337F8AC480056302A5EAFC47 B2593BDE7AD8D5DF4F3FB39AE21EFF00B8B714C5A5EC5B6C96D1395190F941DE 12B4AB3880642C4902645AB8D5C2972F4C92FDED9D29704EDFBDBC5F8A16D064 3892928F212A1952529214A5A8C5E4A4ACA49104580369E1A8E71AB99B26B4D2 F3DFA588EA7BC89DAF7C1C7B028719C1E312D051951484E69B150426328CC412 A3A1CCACB04DE2E161CA7B4DBC171C9DDFB17EFF0078B368FC2F185B4B5124F8 CB10A054A94A54D809B6A11E18284A0A4100E9EAA69A559F9EAFBCE59464736F 6BA6E5EA77787F7A98E295801973C32524C1041172550A1A5C6905307AD74FC5 4E978B37ACE73A1316F4FBB7A9CF3BEFDD587C62B0CEB8C85917B1CA0F9549F3 056E08D4E80C9AE55514A7BB4E9BD0EA9EFDBF650E7BF55E39F561D82C858001 002BD65B51514127431986A473A8E8A6A79C68F93FD7B84F0F5D6FF71131A65E 2C6C18F78DC49D5029CBBEA07AE8205B4D2235ABF852BE7F1E3762629DF48373 8DF6C78829B6D9782197102EAB499B8B0100EE207CB5A35EDE4B4D30FBE9A13B 3ED02F10541EC6210122208B1DAC082144EB3004EB96D39747471928FEB29E6F D4E8A3A4EBB7EBCFA236785F6838660D82EBCEA71274084B707A1CC72C810241 54DC913AD6A9A3BDB9E7B59DEC66ABE56EBF5EEF4D0D262BDBAC3A147F0F8551 498F8940759195248F369E6B8B1D629F8A75DFD5C638EFF5D8971DEF089404E1 F06D223756656D1B91EB689FACED70FB7CFCF632EA9E7ECBE17F86895ED7635C CC486939A4CE533E8224A6FCB28D44ED53F1A5CDF82E39E4A3B823DAE7C81E3A 1A504C809295686F9A525254506602966418820088F86B7D77F591B5C4DFFB3E D06AB11ED36394D9612425049301201BDE263314D84024C7CE4970D2DFDAEDD8 C55C56F7BE66A1CC7E20AA4933F2AE9851CDD4C4E231CFBA65C5151E7FB93BF3 BD454A44C6C57E21475240BE83E9D226C795CC1DE341544CBC4AF6BC7F7A766D AD5818804F1275032AA0813B09B881EB060C1B5B693597495314BE2CF98109B0 8D0DFA98204FCBD6F24D8DFB153DDCF9F3EDA8792C0055C08244EB009BE902E3 913163E34FDD1E868931C52E88336B09D7999222472316D0575A2DEBBD4C5573 569F21B891DFEFDDABD270C835A8932606FF00EBD35DFF00A409361C19E01C09 CA54B3046F1FF90048B4DE63416D6B87154AE9F275E1E67525CCC149447C0ACC 7AEA124ECA9091AD801FF235F26237B7FE9EC27C5F0D4160B42C82E79A2E5404 65BD87C476926C75303B53C5873AC34B926474586A1B5A416933B8245B5FF95E 32C680E80099CA279B7AE7D3B046558901B4A949CC9802742A82AE62C9249D2E 76816170DF974E521BB6EE29CE2219710966EB107CC2C05CE86CAF5D80EB6ED4 28DEA71A9CBEC4871D8A6DD2F7C6837CA6D3E9104099316277E75E9A6A4D464F 99C9D24EFF00B40FCAF2984988E937FA8D37DE6E6DD153BC8E698DE11C61DC4B 89C3392A528EBBE97D75B0BE969AAD60528A94972B8F619ACC1B512A49B48D7E 97D4F4A98991A4558CF780A7387BBC35A69252F01996A12B4C1CC036BD521463 369989234D7AAA9C438FE5AEABB7F8737C3BCF238C5391A77DFA6950E80E6524 8999FF007440CCA966675EE4EA7A6F4C88D496E0788AB0A85232A14A52924288 F3089B257A806466008CD001116AD62B442BC5F551A2E8F511BD0C3BC5F13887 438F2CAC83A289239902FA1D480609BEBAE1A4C246E07B7B8F461DEC1B6A086F 1000720798C19052A3E64E8010921246A0C99CA4D7A9A839F4BC4C99FE7FDFCE AB459369C13DA37B863C871265B0A49293B81A81339491F9C0B6A395630F2CCA 9C6775AF5E68FA8A7DEF70A2E15A30EB4226C3366311B9013106445EDD4DAE37 FA2B89E9ADF3DDF68D863BDE3F0A7925FC3908CE0A92D955C098CAA580608990 0DCA47513D954A393E5C8E712FA05C67DA94B2E34784345E69C080995E651370 A8700852BCB9C0299CA649E765C5A1FBEF512A7A1B26BDA7612C6575294BC559 812B9202490A4E506208F349BDB4B9CBA74AEDD35B6FD8B4D7BD06A3DE970D2F 2D2F30975D208584F940209055A009810084100106F15E76E32BFA65BE9075C6 A2EBECD6637DE070577129C3B0BCA54209FCB3A485102028D858C45D5066B74D 695AEFAFECC557CBC152FDB5E11C2F16861F21D712B09090014954C645AE0820 28807298898BE98754D96FFA37FF0039FB67E6FBD06E238D611E4AD2C3680870 C83F114C48294AC40833E6F2EC348AEB4F0DC5DE27CF2F697F2CC55C54F483DF FD5C392DAD585492D240849202C8332E0209320C109520F220D47C37CFCF2F23 F2AD51ABE218B6F10E153484B6951B253783D0924FA5CF2D75DD347339D5C49C AC03589C3270CB6DC482E920A5579DC29260E5826E64154A62D26B9E6EDBDFD1 A4D250D5F7607138EC32B021B6F0E4620124B93208E5161683A0B6E4C5150D3B E5EFB5F647C45195F9EEE688E39A6D24BA933B46E37806E7EF15AA945CE74D52 0E1F1D84C4B812A5169B36CE4587522CA8EBCE0810457273139BE597B9D16704 C7896109F28CC05A4903ED78FACF313514BFF4D1C13EF16919942C493EA4C4FD A349F4137E34AC4F763B37046C3C028294479883F7BDBA88D3AD76A97B1CD336 8DE0986DE2E84A72E5333CF5902605A446BAC0AF23E236A3AE9E2E7554A932EF 0461C52979A54E1CC00DA74B41DEF6807448D28BFF0021F8CE7363F1AF5148E1 0AC1024AE01041565361FB1B5F94C5CD69F1B1F75A73FDA32B8784DB60DAF154 DA36899DB43B4804A81933AD89D2DE6E25709EDF9E9D0F4219C43105BBA25654 444E97948B0983241117CC46D0463854CE768F36DB2D4C5E2D6B69A561A53E54 83008988B22DB1020CEA04A89B56E949B9E76E7EA4A9C585270929578EA010D8 832620D8D889B12B5C6FCAE2BA3AAF6CDEEFEA6553E1126231ADA14A26024DA4 264F44F98A4002C40198006EA51B1ECA99EFBD0C5552449F882E24854E43F98C 0B6961727537063E75D223B986E4D5BAA2825208B1B7627EA2BD28E00F8B94D8 FD3B9FE3D6B5991980F1EFBB548248C0E18B77FEF5A86A413754EDDF7FC89AB2 45E0C85E6BAB41DE950B987E28160075FEA3FBACC141CFC8401FD5FBB7E96049 90E9373A8FE4D20A0A9D854EF3D9EBF7EB7AA8C98CD1A69DF7A7ED401170C0EF BF41FA51091EC635DC311E11015AC8171AE875020C100DF7B811874CE65983C9 C59D081AFF007F33D37A3A4265387E2D89C29CD85714DC8B94288E86608D89B7 23D68AC560A716F85871A5282C4C199B9B18E52237FE1245EC67F1197FF67583 A69311B1DC5C7D6B1BEE6DB016FD81FBF7781FB5122496F08C5A1B5294ECAA10 600CBAF3CCE664A488919539B6491355119D67B1AFB85D5BA567F04904242940 9CE728092906D9B31CA72C136115AA5B5D8E55FB9D37B4BED41E0E006D04A940 C191FF005CA6089524A4850524E533122A55598A69938BE03C55FC63CEE75C29 6737CCCC848D0850926C0C2404EE0F29676A8737C615885BB88C3AF330C5B526 44E61B829927F28BC99D5558BD37C9BCFAE9F065BD37BD4C61BDB774BA43C121 A098CA6D7131E71988279E5CAA8FCB723B2AD99C045C638EAB103C4608089800 44C6E1633483717032CDA4D575B7BF42D34A4681CC438E4C4FEA23527EA46A04 743511D412E4FC2BB7AC7DB308A04C1C7620299217B9B03CE2240D606A769DA3 59C3A6F6E46EAAAC4B804A6429561F73E93603690266E6C2DD38862937F862A1 733E7F2FCB4CC499B1D6552390BD782A8F17FE8F4A2B929428A0494A42A0899B 81D448B584FA8B8AE39FAB346BB8C625404A9645A536B1BC580D6649CC46A092 662BD3C1A0E55D457832060D9892E2C16EDAFC44DC822D9601BDE05AB9713FE9 F257F5EDCD33AD192E6EC59F8203C6712A50014ACB2644030151CC4A424DCC80 7F2D631E597A737BF9D0DAA73DD89C61025B6DA024BCACB201931BDEF03340B6 C48D2B78A5F6CB7D4CC7ACFD078F071C825B496DA4AE622EA277006B03498091 A12492670FF83BDDB5E0B529E8BE4D46291F87016A6C36136198851F922E2353 F01833E622BD94DF71EFFA3CF55B7242FE2038B9BA8982A2797549F8408035E4 00AEAA930DFF0064AE149329D0F2FDB7EFAD7439B1648D3BFF0071F3E77AD644 7732DC1B77FEBE94610CCC00D2DDFDBA564D1ECB97BFDAA661A300807CBDF4EF 5FA5681EB18169EFF4FD7E95004DE5208F9F7DFE95183C624F4EFBD3EF407865 2663BFE799B4FD680F40DBBFECF3A4830902F3A0EFFAFEA290122223F5EEDFBD 08653E6D3BF5E9FBD52A19703BFB9AC665918C788B584B60A89FCA04CEFA0BFF 005E94C24C5019583F1483DEE751B4560D88598DFBEF9FCEB68C86DB8240D49B 5FF5D8D4803F0F8A4B6AC856A0DAA332474F875041BF434D033E89C54B3C4700 CB871ADE546542507CA418920928494E41991073264660A295A547857E4891F3 EC7A4A54A41F8B36C2072B0B58DF95A418DFA52CDB0B0F8F730F9D9696A01765 2763A2B59B92A48B400201BE946A5196AE3F83F12C2B18953BC4992FB650B100 E5398A4A50E4DC4A150A8502954414915D78709DD625AAFF0021FB99A93EDBBA 369C038D70F4BCD37C4590FB60841CF9B2A533F100DA92B2A49249CCA5795391 20E60A1C2BA6D6B3F60D4976295C2197FC1673B888853AD1CB9412ACDE185025 6DE55048F10DD254177BD79E9C4F3B73B4FDE66953CCE5F1587694B96D4950EA 0883A11111AF2915E94D96111F1871A594A504E74920DB63A4286A041D79DAD5 AE0A6BD4B58BC204BBE44933A41FD4C7CED7E95AADC5C537378D1F0CA412A010 729DC8B98803283980B4D809B49BF85DFD4ECAC3702EB890E176C82A2A99BC91 9520EC5200336904C824D73AD27117711D39B7DF791AA5F823C7BB877E021509 07E2D4481062D306D044E9F33E8E1AAA9FD77F639D4D328E0043E5B6CAF2A50E 6627A180642B6CC131BDCC7319E3284DE6DAF83A70AFE8CDCA02DC4B8E1F8722 12124E9256ECF20038ABC88196337964791DA17577E7092F8DDCF4F3EC947BC9 46102538538A04292D85E552A7F31F0C9034848066440102D9A6B15373879C4A 56B2537EF3B82A514CE7137EAFF468B178D755865B8F2944A5C42419FF00AAC9 B5C00728206804457B29A14DB93F95AFA9E6AAA71EA6A1DCAE20AC8CA06F3BED 3A1240D86BA409AF5D36B6E0E0C98E293050944260CDCC99B09D858D93B5B537 3D60C62DF32649BF974EFBF9D68C1807289AB9833AC9EFFAEF7A4818CAD2917B C7DBE558772AB0D500E19B8B5FF4EBFCDB4B4E660B9985202520FE6BFF0033F6 FAD54E4A2492A31A7A6FEBDF4AD190C4C4224F7CF4FF00751F528E431944AB53 B77BF3F4F98C3A8B8452D929260FCB7E7D2D11FC0AD2A8CB401D6DCBBFBDBED5 A2B16557D4F76AA64C9E9AF7CF4EEDC84329565B0EFBF5A854CC9BDCCDFBFD28 0A38763F13C3DD4E2F0AB534EA2E95A090A1B4A48820C123ACC686B54D585CAF FA57529353D9A69FAA235CF2054EA9D59709254A3249DCEE4EE64F726B99500B 824E6EFBDBFA92282956533F4EFF009FF55732849733CDA4EA47A6FF00217F4A 4199373C578FAB8932C30B4009C3B610923E23B92B544A8024940339130806D2 6D75CA54D9619731FCAA75466F54A2DCA5BD5952F7F1E9F7CF5358FE20BA7C45 92A52B73A9BF3DFE7F5AE491A052B2A2533E9FAFDFE92634AD3500265E692E05 BA952E08F2DAE2648CCA0B03A4A1639A48915AA4CB61B3FE3594AC120DA47D3D 3BDF6E555F2F06E9B0D7C19806E75F417E90239F59BD651A63B11C45B7579B16 9538E401992ACB60001600C981755CAB5249B9D50925EFE4E6EC2F88F01C5B20 871B50294E6222E01800A9362334C8983126201231C3E3D3564D35312B26D670 F583AD7C36B77F535983CCDB9045F973FCC2DAC1FA11A9AF456E51C69B33A76C 971B85D96627E9372445A6481A1B5CDABE6350F9A3D6853E43490D5C8493ADC1 9B5E6646DA5AD0373AA6F7B7C419AAC6B314E16CF86A1972ED03EA7EBEB1D2D5 EAA54DCE6CDA7B3B861885AD02F010011A824E4498B48057313B1D8570E3550B BCE794252FE3DCEFC153E9F2CE85D3F8A462316C83909094A605CE67F2A40F44 82992A324100900578621AA5E776FA2B4BF7F4BA93D5129BE76EF7B09E24EA70 7816F0CC5DEF3499B0CB25C2906C429C73CB339D0DA4A920C0AE9C2FE5536FFE 6D1EB95FB2F46C95BC34A4B3BCFDBF2C8B0D88F1B0CE97165252012AB0FCC988 8007973149204C998335DAA5155B5B45F96EC7157573598C7DC701656A00A3CC 06A3EE12954EEACC666C4E95DE8A62F9CDBA9C6A66AB14D2929F32003BC5BE70 7EC40CB7B5ABD54B38BB136429F4FBFD37DFFBAD988162FD2FDF7D6A9030A220 0DF5A850A4022F6EFBD2A0918839046E6F1DFE959CC640A5D54C77DF41FDD828 68495284881D477D75ACB2A2890998237EFD3EB5CCD9852C1541DBB0379FEEF7 AB06641811722069DF5FB5500369595786989EF9DFAF21CAB4DC11486AC19254 09F87F4D8F49FDEFA56557EE5C209C2AC242A05F4FF6797CB9686AE324589D4D AC1CA906B7264F10A36DBAFD0FED540510209227BFD7E5D6D7850159FE2FCBDE DFDFAD532C10951B73EFD6A9202DE4EA2A1A3C85A907303D3FDFDBBD6806B6B8 1702FDEFA1A8542FCCA327E9FA777FBD50C7364A5492A0729E7F7D6DF31D2F59 611584B71E7824697FACC75822F633CAB8DD6F43A58F3895362E22751D378378 9DA4697E60C570C5ABFCA081215689D768FA7EB1CCD6D5BB07710B752752A98E 43F7ADA4CCB67FFFD9 } Stretch = True end object StaticText1: TStaticText AnchorSideLeft.Control = Owner AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = Owner Left = 44 Height = 28 Top = 0 Width = 235 Alignment = taCenter AutoSize = True Caption = 'Unihedron Device Manager' Font.Height = -17 Font.Name = 'Sans' Font.Style = [fsBold] ParentFont = False TabOrder = 0 end object Label1: TStaticText Left = 4 Height = 25 Top = 152 Width = 309 Alignment = taCenter AutoSize = True Caption = 'Checking for attached devices, please wait ...' Color = 11647937 ParentColor = False TabOrder = 1 end object Timer1: TTimer OnTimer = Timer1Timer Left = 106 Top = 48 end end ./httpsend.pas0000644000175000017500000006701114576573021013512 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 003.012.008 | |==============================================================================| | Content: HTTP client | |==============================================================================| | Copyright (c)1999-2012, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c) 1999-2012. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@abstract(HTTP protocol client) Used RFC: RFC-1867, RFC-1947, RFC-2388, RFC-2616 } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} //old Delphi does not have MSWINDOWS define. {$IFDEF WIN32} {$IFNDEF MSWINDOWS} {$DEFINE MSWINDOWS} {$ENDIF} {$ENDIF} {$IFDEF UNICODE} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$ENDIF} unit httpsend; interface uses SysUtils, Classes, blcksock, synautil, synaip, synacode, synsock; const cHttpProtocol = '80'; type {:These encoding types are used internally by the THTTPSend object to identify the transfer data types.} TTransferEncoding = (TE_UNKNOWN, TE_IDENTITY, TE_CHUNKED); {:abstract(Implementation of HTTP protocol.)} THTTPSend = class(TSynaClient) protected FSock: TTCPBlockSocket; FTransferEncoding: TTransferEncoding; FAliveHost: string; FAlivePort: string; FHeaders: TStringList; FDocument: TMemoryStream; FMimeType: string; FProtocol: string; FKeepAlive: Boolean; FKeepAliveTimeout: integer; FStatus100: Boolean; FProxyHost: string; FProxyPort: string; FProxyUser: string; FProxyPass: string; FResultCode: Integer; FResultString: string; FUserAgent: string; FCookies: TStringList; FDownloadSize: integer; FUploadSize: integer; FRangeStart: integer; FRangeEnd: integer; FAddPortNumberToHost: Boolean; function ReadUnknown: Boolean; virtual; function ReadIdentity(Size: Integer): Boolean; function ReadChunked: Boolean; procedure ParseCookies; function PrepareHeaders: AnsiString; function InternalDoConnect(needssl: Boolean): Boolean; function InternalConnect(needssl: Boolean): Boolean; public constructor Create; destructor Destroy; override; {:Reset headers, document and Mimetype.} procedure Clear; {:Decode ResultCode and ResultString from Value.} procedure DecodeStatus(const Value: string); {:Connects to host defined in URL and accesses resource defined in URL by method. If Document is not empty, send it to the server as part of the HTTP request. Server response is in Document and headers. Connection may be authorised by username and password in URL. If you define proxy properties, connection is made by this proxy. If all OK, result is @true, else result is @false. If you use 'https:' instead of 'http:' in the URL, your request is made by SSL/TLS connection (if you do not specify port, then port 443 is used instead of standard port 80). If you use SSL/TLS request and you have defined HTTP proxy, then HTTP-tunnel mode is automatically used .} function HTTPMethod(const Method, URL: string): Boolean; {:You can call this method from OnStatus event to break current data transfer. (or from another thread.)} procedure Abort; published {:Before HTTP operation you may define any non-standard headers for HTTP request, except: 'Expect: 100-continue', 'Content-Length', 'Content-Type', 'Connection', 'Authorization', 'Proxy-Authorization' and 'Host' headers. After HTTP operation, it contains full headers of the returned document.} property Headers: TStringList read FHeaders; {:Stringlist with name-value stringlist pairs. Each pair is one cookie. After the HTTP request is returned, cookies are parsed to this stringlist. You can leave these cookies untouched for next HTTP requests. You can also save this stringlist for later use.} property Cookies: TStringList read FCookies; {:Stream with document to send (before request), or with document received from HTTP server (after request).} property Document: TMemoryStream read FDocument; {:If you need to download only part of a requested document, specify here the position of subpart begin. If 0, the full document is requested.} property RangeStart: integer read FRangeStart Write FRangeStart; {:If you need to download only part of a requested document, specify here the position of subpart end. If 0, the document from rangeStart to end of document is requested. (Useful for resuming broken downloads, for example.)} property RangeEnd: integer read FRangeEnd Write FRangeEnd; {:Mime type of sending data. Default is: 'text/html'.} property MimeType: string read FMimeType Write FMimeType; {:Define protocol version. Possible values are: '1.1', '1.0' (default) and '0.9'.} property Protocol: string read FProtocol Write FProtocol; {:If @true (default value), keepalives in HTTP protocol 1.1 is enabled.} property KeepAlive: Boolean read FKeepAlive Write FKeepAlive; {:Define timeout for keepalives in seconds!} property KeepAliveTimeout: integer read FKeepAliveTimeout Write FKeepAliveTimeout; {:if @true, then the server is requested for 100status capability when uploading data. Default is @false (off).} property Status100: Boolean read FStatus100 Write FStatus100; {:Address of proxy server (IP address or domain name) where you want to connect in @link(HTTPMethod) method.} property ProxyHost: string read FProxyHost Write FProxyHost; {:Port number for proxy connection. Default value is 8080.} property ProxyPort: string read FProxyPort Write FProxyPort; {:Username for connection to proxy server used in HTTPMethod method.} property ProxyUser: string read FProxyUser Write FProxyUser; {:Password for connection to proxy server used in HTTPMethod method.} property ProxyPass: string read FProxyPass Write FProxyPass; {:Here you can specify custom User-Agent identification. Default: 'Mozilla/4.0 (compatible; Synapse)'} property UserAgent: string read FUserAgent Write FUserAgent; {:Operation result code after successful @link(HTTPMethod) method.} property ResultCode: Integer read FResultCode; {:Operation result string after successful @link(HTTPMethod) method.} property ResultString: string read FResultString; {:if this value is not 0, then data download is pending. In this case you have here the total size of downloaded data. Useful for drawing download progressbar from OnStatus event.} property DownloadSize: integer read FDownloadSize; {:if this value is not 0, then data upload is pending. In this case you have here the total size of uploaded data. Useful for drawing upload progressbar from OnStatus event.} property UploadSize: integer read FUploadSize; {:Socket object used for TCP/IP operation. Good for setting OnStatus hook, etc.} property Sock: TTCPBlockSocket read FSock; {:Allows to switch off port number in 'Host:' HTTP header. By default @TRUE. Some buggy servers do not like port informations in this header.} property AddPortNumberToHost: Boolean read FAddPortNumberToHost write FAddPortNumberToHost; end; {:A very useful function, and example of use can be found in the THTTPSend object. It implements the GET method of the HTTP protocol. This function sends the GET method for URL document to an HTTP server. Returned document is in the "Response" stringlist (without any headers). Returns boolean TRUE if all went well.} function HttpGetText(const URL: string; const Response: TStrings): Boolean; {:A very useful function, and example of use can be found in the THTTPSend object. It implements the GET method of the HTTP protocol. This function sends the GET method for URL document to an HTTP server. Returned document is in the "Response" stream. Returns boolean TRUE if all went well.} function HttpGetBinary(const URL: string; const Response: TStream): Boolean; {:A very useful function, and example of use can be found in the THTTPSend object. It implements the POST method of the HTTP protocol. This function sends the SEND method for a URL document to an HTTP server. The document to be sent is located in the "Data" stream. The returned document is in the "Data" stream. Returns boolean TRUE if all went well.} function HttpPostBinary(const URL: string; const Data: TStream): Boolean; {:A very useful function, and example of use can be found in the THTTPSend object. It implements the POST method of the HTTP protocol. This function is good for POSTing form data. It sends the POST method for a URL document to an HTTP server. You must prepare the form data in the same manner as you would the URL data, and pass this prepared data to "URLdata". The following is a sample of how the data would appear: 'name=Lukas&field1=some%20data'. The information in the field must be encoded by the EncodeURLElement function. The returned document is in the "Data" stream. Returns boolean TRUE if all went well.} function HttpPostURL(const URL, URLData: string; const Data: TStream): Boolean; {:A very useful function, and example of use can be found in the THTTPSend object. It implements the POST method of the HTTP protocol. This function sends the POST method for a URL document to an HTTP server. This function simulates posting of file by HTML form using the 'multipart/form-data' method. The posted file is in the DATA stream. Its name is Filename string. Fieldname is for the name of the form field with the file. (simulates HTML INPUT FILE) The returned document is in the ResultData Stringlist. Returns boolean TRUE if all went well.} function HttpPostFile(const URL, FieldName, FileName: string; const Data: TStream; const ResultData: TStrings): Boolean; implementation constructor THTTPSend.Create; begin inherited Create; FHeaders := TStringList.Create; FCookies := TStringList.Create; FDocument := TMemoryStream.Create; FSock := TTCPBlockSocket.Create; FSock.Owner := self; FSock.ConvertLineEnd := True; FSock.SizeRecvBuffer := c64k; FSock.SizeSendBuffer := c64k; FTimeout := 90000; FTargetPort := cHttpProtocol; FProxyHost := ''; FProxyPort := '8080'; FProxyUser := ''; FProxyPass := ''; FAliveHost := ''; FAlivePort := ''; FProtocol := '1.0'; FKeepAlive := True; FStatus100 := False; FUserAgent := 'Mozilla/4.0 (compatible; Synapse)'; FDownloadSize := 0; FUploadSize := 0; FAddPortNumberToHost := true; FKeepAliveTimeout := 300; Clear; end; destructor THTTPSend.Destroy; begin FSock.Free; FDocument.Free; FCookies.Free; FHeaders.Free; inherited Destroy; end; procedure THTTPSend.Clear; begin FRangeStart := 0; FRangeEnd := 0; FDocument.Clear; FHeaders.Clear; FMimeType := 'text/html'; end; procedure THTTPSend.DecodeStatus(const Value: string); var s, su: string; begin s := Trim(SeparateRight(Value, ' ')); su := Trim(SeparateLeft(s, ' ')); FResultCode := StrToIntDef(su, 0); FResultString := Trim(SeparateRight(s, ' ')); if FResultString = s then FResultString := ''; end; function THTTPSend.PrepareHeaders: AnsiString; begin if FProtocol = '0.9' then Result := FHeaders[0] + CRLF else {$IFNDEF MSWINDOWS} Result := {$IFDEF UNICODE}AnsiString{$ENDIF}(AdjustLineBreaks(FHeaders.Text, tlbsCRLF)); {$ELSE} Result := FHeaders.Text; {$ENDIF} end; function THTTPSend.InternalDoConnect(needssl: Boolean): Boolean; begin Result := False; FSock.CloseSocket; FSock.Bind(FIPInterface, cAnyPort); if FSock.LastError <> 0 then Exit; FSock.Connect(FTargetHost, FTargetPort); if FSock.LastError <> 0 then Exit; if needssl then begin if (FSock.SSL.SNIHost='') then FSock.SSL.SNIHost:=FTargetHost; FSock.SSLDoConnect; FSock.SSL.SNIHost:=''; //don't need it anymore and don't wan't to reuse it in next connection if FSock.LastError <> 0 then Exit; end; FAliveHost := FTargetHost; FAlivePort := FTargetPort; Result := True; end; function THTTPSend.InternalConnect(needssl: Boolean): Boolean; begin if FSock.Socket = INVALID_SOCKET then Result := InternalDoConnect(needssl) else if (FAliveHost <> FTargetHost) or (FAlivePort <> FTargetPort) or FSock.CanRead(0) then Result := InternalDoConnect(needssl) else Result := True; end; function THTTPSend.HTTPMethod(const Method, URL: string): Boolean; var Sending, Receiving: Boolean; status100: Boolean; status100error: string; ToClose: Boolean; Size: Integer; Prot, User, Pass, Host, Port, Path, Para, URI: string; s, su: AnsiString; HttpTunnel: Boolean; n: integer; pp: string; UsingProxy: boolean; l: TStringList; x: integer; begin {initial values} Result := False; FResultCode := 500; FResultString := ''; FDownloadSize := 0; FUploadSize := 0; URI := ParseURL(URL, Prot, User, Pass, Host, Port, Path, Para); User := DecodeURL(user); Pass := DecodeURL(pass); if User = '' then begin User := FUsername; Pass := FPassword; end; if UpperCase(Prot) = 'HTTPS' then begin HttpTunnel := FProxyHost <> ''; FSock.HTTPTunnelIP := FProxyHost; FSock.HTTPTunnelPort := FProxyPort; FSock.HTTPTunnelUser := FProxyUser; FSock.HTTPTunnelPass := FProxyPass; end else begin HttpTunnel := False; FSock.HTTPTunnelIP := ''; FSock.HTTPTunnelPort := ''; FSock.HTTPTunnelUser := ''; FSock.HTTPTunnelPass := ''; end; UsingProxy := (FProxyHost <> '') and not(HttpTunnel); Sending := FDocument.Size > 0; {Headers for Sending data} status100 := FStatus100 and Sending and (FProtocol = '1.1'); if status100 then FHeaders.Insert(0, 'Expect: 100-continue'); if Sending then begin FHeaders.Insert(0, 'Content-Length: ' + IntToStr(FDocument.Size)); if FMimeType <> '' then FHeaders.Insert(0, 'Content-Type: ' + FMimeType); end; { setting User-agent } if FUserAgent <> '' then FHeaders.Insert(0, 'User-Agent: ' + FUserAgent); { setting Ranges } if (FRangeStart > 0) or (FRangeEnd > 0) then begin if FRangeEnd >= FRangeStart then FHeaders.Insert(0, 'Range: bytes=' + IntToStr(FRangeStart) + '-' + IntToStr(FRangeEnd)) else FHeaders.Insert(0, 'Range: bytes=' + IntToStr(FRangeStart) + '-'); end; { setting Cookies } s := ''; for n := 0 to FCookies.Count - 1 do begin if s <> '' then s := s + '; '; s := s + FCookies[n]; end; if s <> '' then FHeaders.Insert(0, 'Cookie: ' + s); { setting KeepAlives } pp := ''; if UsingProxy then pp := 'Proxy-'; if FKeepAlive then begin FHeaders.Insert(0, pp + 'Connection: keep-alive'); FHeaders.Insert(0, 'Keep-Alive: ' + IntToStr(FKeepAliveTimeout)); end else FHeaders.Insert(0, pp + 'Connection: close'); { set target servers/proxy, authorizations, etc... } if User <> '' then FHeaders.Insert(0, 'Authorization: Basic ' + EncodeBase64(User + ':' + Pass)); if UsingProxy and (FProxyUser <> '') then FHeaders.Insert(0, 'Proxy-Authorization: Basic ' + EncodeBase64(FProxyUser + ':' + FProxyPass)); if isIP6(Host) then s := '[' + Host + ']' else s := Host; if FAddPortNumberToHost and (((Port <> '80') and (UpperCase(Prot) = 'HTTP')) or ((Port <> '443') and (UpperCase(Prot) = 'HTTPS'))) then FHeaders.Insert(0, 'Host: ' + s + ':' + Port) else FHeaders.Insert(0, 'Host: ' + s); if UsingProxy then URI := Prot + '://' + s + ':' + Port + URI; if URI = '/*' then URI := '*'; if FProtocol = '0.9' then FHeaders.Insert(0, UpperCase(Method) + ' ' + URI) else FHeaders.Insert(0, UpperCase(Method) + ' ' + URI + ' HTTP/' + FProtocol); if UsingProxy then begin FTargetHost := FProxyHost; FTargetPort := FProxyPort; end else begin FTargetHost := Host; FTargetPort := Port; end; if FHeaders[FHeaders.Count - 1] <> '' then FHeaders.Add(''); { connect } if not InternalConnect(UpperCase(Prot) = 'HTTPS') then begin FAliveHost := ''; FAlivePort := ''; Exit; end; { reading Status } FDocument.Position := 0; Status100Error := ''; if status100 then begin { send Headers } FSock.SendString(PrepareHeaders); if FSock.LastError <> 0 then Exit; repeat s := FSock.RecvString(FTimeout); if s <> '' then Break; until FSock.LastError <> 0; DecodeStatus(s); Status100Error := s; repeat s := FSock.recvstring(FTimeout); if s = '' then Break; until FSock.LastError <> 0; if (FResultCode >= 100) and (FResultCode < 200) then begin { we can upload content } Status100Error := ''; FUploadSize := FDocument.Size; FSock.SendBuffer(FDocument.Memory, FDocument.Size); end; end else { upload content } if sending then begin if FDocument.Size >= c64k then begin FSock.SendString(PrepareHeaders); FUploadSize := FDocument.Size; FSock.SendBuffer(FDocument.Memory, FDocument.Size); end else begin s := PrepareHeaders + ReadStrFromStream(FDocument, FDocument.Size); FUploadSize := Length(s); FSock.SendString(s); end; end else begin { we not need to upload document, send headers only } FSock.SendString(PrepareHeaders); end; if FSock.LastError <> 0 then Exit; Clear; Size := -1; FTransferEncoding := TE_UNKNOWN; { read status } if Status100Error = '' then begin repeat repeat s := FSock.RecvString(FTimeout); if s <> '' then Break; until FSock.LastError <> 0; if Pos('HTTP/', UpperCase(s)) = 1 then begin FHeaders.Add(s); DecodeStatus(s); end else begin { old HTTP 0.9 and some buggy servers not send result } s := s + CRLF; WriteStrToStream(FDocument, s); FResultCode := 0; end; until (FSock.LastError <> 0) or (FResultCode <> 100); end else FHeaders.Add(Status100Error); { if need receive headers, receive and parse it } ToClose := FProtocol <> '1.1'; if FHeaders.Count > 0 then begin l := TStringList.Create; try repeat s := FSock.RecvString(FTimeout); l.Add(s); if s = '' then Break; until FSock.LastError <> 0; x := 0; while l.Count > x do begin s := NormalizeHeader(l, x); FHeaders.Add(s); su := UpperCase(s); if Pos('CONTENT-LENGTH:', su) = 1 then begin Size := StrToIntDef(Trim(SeparateRight(s, ':')), -1); if (Size <> -1) and (FTransferEncoding = TE_UNKNOWN) then FTransferEncoding := TE_IDENTITY; end; if Pos('CONTENT-TYPE:', su) = 1 then FMimeType := Trim(SeparateRight(s, ':')); if Pos('TRANSFER-ENCODING:', su) = 1 then begin s := Trim(SeparateRight(su, ':')); if Pos('CHUNKED', s) > 0 then FTransferEncoding := TE_CHUNKED; end; if UsingProxy then begin if Pos('PROXY-CONNECTION:', su) = 1 then if Pos('CLOSE', su) > 0 then ToClose := True; end else begin if Pos('CONNECTION:', su) = 1 then if Pos('CLOSE', su) > 0 then ToClose := True; end; end; finally l.free; end; end; Result := FSock.LastError = 0; if not Result then Exit; {if need receive response body, read it} Receiving := Method <> 'HEAD'; Receiving := Receiving and (FResultCode <> 204); Receiving := Receiving and (FResultCode <> 304); if Receiving then case FTransferEncoding of TE_UNKNOWN: Result := ReadUnknown; TE_IDENTITY: Result := ReadIdentity(Size); TE_CHUNKED: Result := ReadChunked; end; FDocument.Seek(0, soFromBeginning); if ToClose then begin FSock.CloseSocket; FAliveHost := ''; FAlivePort := ''; end; ParseCookies; end; function THTTPSend.ReadUnknown: Boolean; var s: ansistring; begin Result := false; repeat s := FSock.RecvPacket(FTimeout); if FSock.LastError = 0 then WriteStrToStream(FDocument, s); until FSock.LastError <> 0; if FSock.LastError = WSAECONNRESET then begin Result := true; FSock.ResetLastError; end; end; function THTTPSend.ReadIdentity(Size: Integer): Boolean; begin if Size > 0 then begin FDownloadSize := Size; FSock.RecvStreamSize(FDocument, FTimeout, Size); FDocument.Position := FDocument.Size; Result := FSock.LastError = 0; end else Result := true; end; function THTTPSend.ReadChunked: Boolean; var s: ansistring; Size: Integer; begin repeat repeat s := FSock.RecvString(FTimeout); until (s <> '') or (FSock.LastError <> 0); if FSock.LastError <> 0 then Break; s := Trim(SeparateLeft(s, ' ')); s := Trim(SeparateLeft(s, ';')); Size := StrToIntDef('$' + s, 0); if Size = 0 then Break; if not ReadIdentity(Size) then break; until False; Result := FSock.LastError = 0; end; procedure THTTPSend.ParseCookies; var n: integer; s: string; sn, sv: string; begin for n := 0 to FHeaders.Count - 1 do if Pos('set-cookie:', lowercase(FHeaders[n])) = 1 then begin s := SeparateRight(FHeaders[n], ':'); s := trim(SeparateLeft(s, ';')); sn := trim(SeparateLeft(s, '=')); sv := trim(SeparateRight(s, '=')); FCookies.Values[sn] := sv; end; end; procedure THTTPSend.Abort; begin FSock.StopFlag := True; end; {==============================================================================} function HttpGetText(const URL: string; const Response: TStrings): Boolean; var HTTP: THTTPSend; begin HTTP := THTTPSend.Create; try Result := HTTP.HTTPMethod('GET', URL); if Result then Response.LoadFromStream(HTTP.Document); finally HTTP.Free; end; end; function HttpGetBinary(const URL: string; const Response: TStream): Boolean; var HTTP: THTTPSend; begin HTTP := THTTPSend.Create; try Result := HTTP.HTTPMethod('GET', URL); if Result then begin Response.Seek(0, soFromBeginning); Response.CopyFrom(HTTP.Document, 0); end; finally HTTP.Free; end; end; function HttpPostBinary(const URL: string; const Data: TStream): Boolean; var HTTP: THTTPSend; begin HTTP := THTTPSend.Create; try HTTP.Document.CopyFrom(Data, 0); HTTP.MimeType := 'Application/octet-stream'; Result := HTTP.HTTPMethod('POST', URL); Data.Size := 0; if Result then begin Data.Seek(0, soFromBeginning); Data.CopyFrom(HTTP.Document, 0); end; finally HTTP.Free; end; end; function HttpPostURL(const URL, URLData: string; const Data: TStream): Boolean; var HTTP: THTTPSend; begin HTTP := THTTPSend.Create; try WriteStrToStream(HTTP.Document, URLData); HTTP.MimeType := 'application/x-www-form-urlencoded'; Result := HTTP.HTTPMethod('POST', URL); if Result then Data.CopyFrom(HTTP.Document, 0); finally HTTP.Free; end; end; function HttpPostFile(const URL, FieldName, FileName: string; const Data: TStream; const ResultData: TStrings): Boolean; var HTTP: THTTPSend; Bound, s: string; begin Bound := IntToHex(Random(MaxInt), 8) + '_Synapse_boundary'; HTTP := THTTPSend.Create; try s := '--' + Bound + CRLF; s := s + 'content-disposition: form-data; name="' + FieldName + '";'; s := s + ' filename="' + FileName +'"' + CRLF; s := s + 'Content-Type: Application/octet-string' + CRLF + CRLF; WriteStrToStream(HTTP.Document, s); HTTP.Document.CopyFrom(Data, 0); s := CRLF + '--' + Bound + '--' + CRLF; WriteStrToStream(HTTP.Document, s); HTTP.MimeType := 'multipart/form-data; boundary=' + Bound; Result := HTTP.HTTPMethod('POST', URL); if Result then ResultData.LoadFromStream(HTTP.Document); finally HTTP.Free; end; end; end. ./avgtool.lrs0000644000175000017500000002345414576573022013355 0ustar anthonyanthony{ This is an automatically generated lazarus resource file } LazarusResources.Add('TForm8','FORMDATA',[ 'TPF0'#6'TForm8'#5'Form8'#4'Left'#3'_'#8#6'Height'#3#148#1#3'Top'#3#29#1#5'Wi' +'dth'#3'b'#4#7'Caption'#6#12'Average tool'#12'ClientHeight'#3#148#1#11'Clien' +'tWidth'#3'b'#4#6'OnShow'#7#8'FormShow'#8'Position'#7#14'poScreenCenter'#10 +'LCLVersion'#6#7'2.2.6.0'#0#5'TMemo'#5'Memo1'#21'AnchorSideTop.Control'#7#5 +'Owner'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9 +'asrBottom'#24'AnchorSideBottom.Control'#7#10'StatusBar1'#4'Left'#3#147#3#6 +'Height'#3#127#1#3'Top'#2#0#5'Width'#3#207#0#7'Anchors'#11#5'akTop'#7'akRigh' +'t'#8'akBottom'#0#13'Lines.Strings'#1#6'6All files in the selected directory' +' will be processed.'#6#0#6'lAll files converted will have "_avg" appened to' +' the filename, and stored in a subdirectory called "average".'#6#0#6#23'Rol' +'ling average method:'#6'8Takes readings from multiple files created by SQM-' +'Pro2. '#6#182'Uses the rolling average method to produce a set of new files' +' where all readings are modified using the rolling average method with the ' +'desired number of bins for each average block.'#6#0#6' All records of each ' +'file method:'#6'gAll records in a .dat file are averaged to produce a new .' +'dat file with only one record of the average.'#6#0#6#0#6#0#0#10'ScrollBars' +#7#10'ssAutoBoth'#8'TabOrder'#2#0#0#0#10'TStatusBar'#10'StatusBar1'#4'Left'#2 +#0#6'Height'#2#21#3'Top'#3#127#1#5'Width'#3'b'#4#6'Panels'#14#1#5'Width'#2'2' +#0#0#11'SimplePanel'#8#0#0#12'TProgressBar'#12'ProgressBar1'#22'AnchorSideLe' +'ft.Control'#7#5'Owner'#23'AnchorSideRight.Control'#7#5'Memo1'#24'AnchorSide' +'Bottom.Control'#7#10'StatusBar1'#4'Left'#2#0#6'Height'#2#20#3'Top'#3'k'#1#5 +'Width'#3#147#3#7'Anchors'#11#6'akLeft'#7'akRight'#8'akBottom'#0#6'Smooth'#9 +#8'TabOrder'#2#2#0#0#5'TEdit'#19'SourceDirectoryEdit'#19'AnchorSideLeft.Side' +#7#9'asrBottom'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#0#1#6'Height' +#2'$'#4'Hint'#6#18' Source directory.'#3'Top'#2#8#5'Width'#3#144#2#18'Border' +'Spacing.Left'#2#2#8'TabOrder'#2#3#0#0#7'TBitBtn'#21'SourceDirectoryButton' +#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#19'Sourc' +'eDirectoryEdit'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Co' +'ntrol'#7#19'SourceDirectoryEdit'#4'Left'#3#229#0#6'Height'#2#25#4'Hint'#6#24 +'Select source directory.'#3'Top'#2#14#5'Width'#2#25#7'Anchors'#11#5'akTop'#7 +'akRight'#0#18'BorderSpacing.Left'#2#2#17'BorderSpacing.Top'#2#2#10'Glyph.Da' +'ta'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0 +#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0'SMF'#160#164 +'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255#164'e4' +#255#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255 +#164'f5'#233#166'g69HHH'#224#151#134'x'#255#165'i:'#255#186#131'P'#255#186 +#131'P'#255#186#131'P'#255#186#131'P'#255#186#131'P'#255#186#131'P'#255#186 +#131'P'#255#186#131'P'#255#186#131'P'#255#186#131'P'#255#186#131'P'#255#178 +'xE'#255#165'f6'#192'III'#224#153#153#153#255#165'h9'#255#211#166'~'#255#210 +#163'x'#255#210#163'x'#255#210#163'x'#255#210#163'x'#255#210#163'x'#255#210 +#163'x'#255#210#163'x'#255#210#163'x'#255#210#163'x'#255#211#164'y'#255#209 +#165'z'#255#165'f5'#245'HHH'#226#155#155#155#255#164'g8'#255#213#171#133#255 +#206#156'n'#255#206#156'm'#255#206#156'm'#255#206#156'm'#255#206#156'm'#255 +#206#156'm'#255#206#156'm'#255#206#156'm'#255#206#156'm'#255#207#158'p'#255 +#213#171#132#255#165'f5'#248'LLL'#228#161#161#161#255#165'h8'#255#226#196#169 +#255#213#168#129#255#211#164'z'#255#211#164'z'#255#211#164'z'#255#211#164'z' +#255#211#164'z'#255#211#164'z'#255#211#164'z'#255#211#164'z'#255#212#167'~' +#255#221#186#156#255#165'f5'#249'QQQ'#229#164#165#165#255#165'g7'#255#233#210 +#190#255#221#186#155#255#221#185#153#255#220#182#149#255#219#181#146#255#218 +#179#144#255#217#178#142#255#216#174#137#255#215#173#135#255#215#173#135#255 +#216#176#139#255#229#201#177#255#165'f5'#250'VVV'#231#169#169#169#255#164'f6' +#255#236#216#198#255#221#186#153#255#221#186#153#255#221#186#153#255#221#186 +#153#255#221#186#153#255#221#186#153#255#221#186#153#255#220#183#149#255#218 +#178#142#255#217#176#139#255#231#207#184#255#165'f5'#251'[[['#233#174#174#174 +#255#165'g6'#255#235#215#196#255#220#183#148#255#220#183#148#255#220#183#148 +#255#220#183#148#255#220#183#148#255#220#183#148#255#220#183#148#255#220#183 +#148#255#220#183#148#255#218#180#145#255#230#205#182#255#165'f5'#252'___'#233 +#179#179#179#255#164'f5'#255#234#213#193#255#219#180#145#255#219#180#145#255 +#219#181#145#255#219#181#145#255#219#181#146#255#219#181#146#255#219#181#146 +#255#219#181#146#255#219#181#146#255#220#184#150#255#231#207#183#255#164'f4' +#253'eee'#235#183#183#183#255#165'f5'#255#234#211#190#255#234#212#191#255#234 +#212#191#255#234#212#190#255#234#212#190#255#234#212#190#255#233#211#190#255 +#233#211#190#255#233#211#190#255#233#211#190#255#233#211#190#255#232#207#184 +#255#165'e4'#254'jjj'#236#189#189#189#255#166'mA'#255#165'f6'#255#165'f6'#255 ,#165'f6'#255#165'f6'#255#165'f6'#255#164'f5'#255#164'f5'#255#164'f5'#255#164 +'f5'#255#164'e4'#255#164'e4'#255#164'e4'#255#166'h7'#224'nnn'#238#192#193#193 +#255#172#172#172#255#170#170#170#255#167#167#167#255#165#165#165#255#164#164 +#164#255#164#164#164#255#172#172#172#255#182#182#182#255#185#185#185#255#187 +#187#187#255#162#162#162#255'jjj'#169'GGG'#0'GGG'#0'sss'#239#197#197#197#255 +#176#176#176#255#173#173#173#255#171#171#171#255#170#170#170#255#172#172#172 +#255#141#141#141#245#141#141#141#242#140#140#140#242#140#140#140#242#140#140 +#140#242#128#128#128#246'lll'#132'GGG'#0'GGG'#0'xxx'#240#201#201#201#255#199 +#199#199#255#197#197#197#255#196#196#196#255#196#196#196#255#180#180#180#255 +'ttt'#202'rrr8rrr8rrr8mmm8ooo5UUU'#3'GGG'#0'GGG'#0'zzz'#159'yyy'#236'yyy'#236 +'yyy'#236'yyy'#236'yyy'#236'yyy'#226'xxx5GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0 +'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0 +'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0#7'OnClick'#7#26'Sou' +'rceDirectoryButtonClick'#8'TabOrder'#2#4#0#0#5'TMemo'#17'InputFileListMemo' +#22'AnchorSideLeft.Control'#7#19'SourceDirectoryEdit'#21'AnchorSideTop.Contr' +'ol'#7#19'SourceDirectoryEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'Anch' +'orSideRight.Control'#7#19'SourceDirectoryEdit'#20'AnchorSideRight.Side'#7#9 +'asrBottom'#24'AnchorSideBottom.Control'#7#12'ProgressBar1'#4'Left'#3#0#1#6 +'Height'#3#27#1#3'Top'#2'N'#5'Width'#3#216#0#7'Anchors'#11#6'akLeft'#8'akBot' +'tom'#0#17'BorderSpacing.Top'#2#2#20'BorderSpacing.Bottom'#2#2#10'ScrollBars' +#7#10'ssAutoBoth'#8'TabOrder'#2#5#0#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.' +'Control'#7#17'InputFileListMemo'#24'AnchorSideBottom.Control'#7#17'InputFil' +'eListMemo'#4'Left'#3#0#1#6'Height'#2#19#3'Top'#2'9'#5'Width'#2'P'#7'Anchors' +#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#16'Input file list:'#11'ParentColor' +#8#0#0#5'TMemo'#17'ProcessStatusMemo'#22'AnchorSideLeft.Control'#7#17'InputF' +'ileListMemo'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Contro' +'l'#7#17'InputFileListMemo'#23'AnchorSideRight.Control'#7#19'SourceDirectory' +'Edit'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#220#1#6'Height'#3#28 +#1#3'Top'#2'N'#5'Width'#3#180#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0 +#18'BorderSpacing.Left'#2#4#10'ScrollBars'#7#6'ssBoth'#8'TabOrder'#2#6#0#0#6 +'TLabel'#6'Label2'#22'AnchorSideLeft.Control'#7#17'ProcessStatusMemo'#24'Anc' +'horSideBottom.Control'#7#17'InputFileListMemo'#4'Left'#3#220#1#6'Height'#2 +#19#3'Top'#2'9'#5'Width'#2'n'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Captio' +'n'#6#18'Processing status:'#11'ParentColor'#8#0#0#11'TRadioGroup'#11'Method' +'radio'#22'AnchorSideLeft.Control'#7#5'Owner'#4'Left'#2#5#6'Height'#2'D'#3'T' +'op'#2#8#5'Width'#3#197#0#8'AutoFill'#9#18'BorderSpacing.Left'#2#5#7'Caption' +#6#7'Method:'#28'ChildSizing.LeftRightSpacing'#2#6#29'ChildSizing.EnlargeHor' +'izontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24 +'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChi' +'lds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Lay' +'out'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1 +#12'ClientHeight'#2'0'#11'ClientWidth'#3#195#0#9'ItemIndex'#2#0#13'Items.Str' +'ings'#1#6#28'Rolling average of all files'#6#24'All records of each file'#0 +#7'OnClick'#7#16'MethodRadioClick'#8'TabOrder'#2#7#0#0#9'TGroupBox'#20'Rolli' +'ngSettingsGroup'#22'AnchorSideLeft.Control'#7#11'Methodradio'#21'AnchorSide' +'Top.Control'#7#11'Methodradio'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left' +#2#5#6'Height'#2'H'#3'Top'#2'Q'#5'Width'#3#197#0#17'BorderSpacing.Top'#2#5#7 +'Caption'#6#24'Rolling average setting:'#12'ClientHeight'#2'4'#11'ClientWidt' +'h'#3#195#0#8'TabOrder'#2#8#0#9'TSpinEdit'#12'BinsSpinEdit'#4'Left'#2'0'#6'H' +'eight'#2'$'#3'Top'#2#8#5'Width'#2'2'#9'Alignment'#7#14'taRightJustify'#8'Ma' +'xValue'#2#16#8'MinValue'#2#2#8'OnChange'#7#18'BinsSpinEditChange'#8'TabOrde' +'r'#2#0#5'Value'#2#8#0#0#6'TLabel'#9'BinsLabel'#19'AnchorSideLeft.Side'#7#9 +'asrBottom'#21'AnchorSideTop.Control'#7#12'BinsSpinEdit'#18'AnchorSideTop.Si' +'de'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#12'BinsSpinEdit'#4'Left'#2 +#16#6'Height'#2#19#3'Top'#2#17#5'Width'#2#30#7'Anchors'#11#5'akTop'#7'akRigh' +'t'#0#19'BorderSpacing.Right'#2#2#7'Caption'#6#5'Bins:'#11'ParentColor'#8#0#0 +#0#7'TButton'#11'StartButton'#4'Left'#2'H'#6'Height'#2#25#3'Top'#3#192#0#5'W' +'idth'#2'K'#7'Caption'#6#5'Start'#7'OnClick'#7#16'StartButtonClick'#8'TabOrd' +'er'#2#9#0#0#22'TSelectDirectoryDialog'#22'SelectDirectoryDialog1'#4'Left'#3 +#24#2#3'Top'#2'P'#0#0#0 ]); ./bluetooth.png0000644000175000017500000000132514576573022013664 0ustar anthonyanthonyPNG  IHDRasBIT|dIDAT8}_hq?}f]H5K maJYq!Z-;iRQfBqFvp\~=?,"R8u1fmZqr|_wݴׯH\IxD_͍[^b"4xHQZS[f3EW[J+eJFݼu;[)ply"whGFI.c zx94%4O(JC7RI4n/0'HGBs2~I )` cY&$xq6qZ8c#$B 8yeMRIŮw[ Te[Mra@[X=BS~`!IENDB`./sslinux.pas0000644000175000017500000012042714576573021013367 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 002.000.008 | |==============================================================================| | Content: Socket Independent Platform Layer - Linux definition include | |==============================================================================| | Copyright (c)1999-2003, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2003. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@exclude} {$IFDEF LINUX} //{$DEFINE FORCEOLDAPI} {Note about define FORCEOLDAPI: If you activate this compiler directive, then is allways used old socket API for name resolution. If you leave this directive inactive, then the new API is used, when running system allows it. For IPv6 support you must have new API! } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} interface uses SyncObjs, SysUtils, Classes, synafpc, Libc; function InitSocketInterface(stack: string): Boolean; function DestroySocketInterface: Boolean; const WinsockLevel = $0202; type u_char = Char; u_short = Word; u_int = Integer; u_long = Longint; pu_long = ^u_long; pu_short = ^u_short; TSocket = u_int; TAddrFamily = integer; TMemory = pointer; const DLLStackName = 'libc.so.6'; cLocalhost = '127.0.0.1'; cAnyHost = '0.0.0.0'; cBroadcast = '255.255.255.255'; c6Localhost = '::1'; c6AnyHost = '::0'; c6Broadcast = 'ffff::1'; cAnyPort = '0'; type DWORD = Integer; __fd_mask = LongWord; const __FD_SETSIZE = 1024; __NFDBITS = 8 * sizeof(__fd_mask); type __fd_set = {packed} record fds_bits: packed array[0..(__FD_SETSIZE div __NFDBITS)-1] of __fd_mask; end; TFDSet = __fd_set; PFDSet = ^TFDSet; const FIONREAD = $541B; FIONBIO = $5421; FIOASYNC = $5452; type PTimeVal = ^TTimeVal; TTimeVal = packed record tv_sec: Longint; tv_usec: Longint; end; const IPPROTO_IP = 0; { Dummy } IPPROTO_ICMP = 1; { Internet Control Message Protocol } IPPROTO_IGMP = 2; { Internet Group Management Protocol} IPPROTO_TCP = 6; { TCP } IPPROTO_UDP = 17; { User Datagram Protocol } IPPROTO_IPV6 = 41; IPPROTO_ICMPV6 = 58; IPPROTO_RAW = 255; IPPROTO_MAX = 256; type PInAddr = ^TInAddr; TInAddr = packed record case integer of 0: (S_bytes: packed array [0..3] of byte); 1: (S_addr: u_long); end; PSockAddrIn = ^TSockAddrIn; TSockAddrIn = packed record case Integer of 0: (sin_family: u_short; sin_port: u_short; sin_addr: TInAddr; sin_zero: array[0..7] of Char); 1: (sa_family: u_short; sa_data: array[0..13] of Char) end; TIP_mreq = record imr_multiaddr: TInAddr; { IP multicast address of group } imr_interface: TInAddr; { local IP address of interface } end; PInAddr6 = ^TInAddr6; TInAddr6 = packed record case integer of 0: (S6_addr: packed array [0..15] of byte); 1: (u6_addr8: packed array [0..15] of byte); 2: (u6_addr16: packed array [0..7] of word); 3: (u6_addr32: packed array [0..3] of integer); end; PSockAddrIn6 = ^TSockAddrIn6; TSockAddrIn6 = packed record sin6_family: u_short; // AF_INET6 sin6_port: u_short; // Transport level port number sin6_flowinfo: u_long; // IPv6 flow information sin6_addr: TInAddr6; // IPv6 address sin6_scope_id: u_long; // Scope Id: IF number for link-local // SITE id for site-local end; TIPv6_mreq = record ipv6mr_multiaddr: TInAddr6; // IPv6 multicast address. ipv6mr_interface: integer; // Interface index. padding: u_long; end; PHostEnt = ^THostEnt; THostent = record h_name: PChar; h_aliases: PPChar; h_addrtype: Integer; h_length: Cardinal; case Byte of 0: (h_addr_list: PPChar); 1: (h_addr: PPChar); end; PNetEnt = ^TNetEnt; TNetEnt = record n_name: PChar; n_aliases: PPChar; n_addrtype: Integer; n_net: uint32_t; end; PServEnt = ^TServEnt; TServEnt = record s_name: PChar; s_aliases: PPChar; s_port: Integer; s_proto: PChar; end; PProtoEnt = ^TProtoEnt; TProtoEnt = record p_name: PChar; p_aliases: ^PChar; p_proto: u_short; end; const INADDR_ANY = $00000000; INADDR_LOOPBACK = $7F000001; INADDR_BROADCAST = $FFFFFFFF; INADDR_NONE = $FFFFFFFF; ADDR_ANY = INADDR_ANY; INVALID_SOCKET = TSocket(NOT(0)); SOCKET_ERROR = -1; Const IP_TOS = 1; { int; IP type of service and precedence. } IP_TTL = 2; { int; IP time to live. } IP_HDRINCL = 3; { int; Header is included with data. } IP_OPTIONS = 4; { ip_opts; IP per-packet options. } IP_ROUTER_ALERT = 5; { bool } IP_RECVOPTS = 6; { bool } IP_RETOPTS = 7; { bool } IP_PKTINFO = 8; { bool } IP_PKTOPTIONS = 9; IP_PMTUDISC = 10; { obsolete name? } IP_MTU_DISCOVER = 10; { int; see below } IP_RECVERR = 11; { bool } IP_RECVTTL = 12; { bool } IP_RECVTOS = 13; { bool } IP_MULTICAST_IF = 32; { in_addr; set/get IP multicast i/f } IP_MULTICAST_TTL = 33; { u_char; set/get IP multicast ttl } IP_MULTICAST_LOOP = 34; { i_char; set/get IP multicast loopback } IP_ADD_MEMBERSHIP = 35; { ip_mreq; add an IP group membership } IP_DROP_MEMBERSHIP = 36; { ip_mreq; drop an IP group membership } SOL_SOCKET = 1; SO_DEBUG = 1; SO_REUSEADDR = 2; SO_TYPE = 3; SO_ERROR = 4; SO_DONTROUTE = 5; SO_BROADCAST = 6; SO_SNDBUF = 7; SO_RCVBUF = 8; SO_KEEPALIVE = 9; SO_OOBINLINE = 10; SO_NO_CHECK = 11; SO_PRIORITY = 12; SO_LINGER = 13; SO_BSDCOMPAT = 14; SO_REUSEPORT = 15; SO_PASSCRED = 16; SO_PEERCRED = 17; SO_RCVLOWAT = 18; SO_SNDLOWAT = 19; SO_RCVTIMEO = 20; SO_SNDTIMEO = 21; { Security levels - as per NRL IPv6 - don't actually do anything } SO_SECURITY_AUTHENTICATION = 22; SO_SECURITY_ENCRYPTION_TRANSPORT = 23; SO_SECURITY_ENCRYPTION_NETWORK = 24; SO_BINDTODEVICE = 25; { Socket filtering } SO_ATTACH_FILTER = 26; SO_DETACH_FILTER = 27; SOMAXCONN = 128; IPV6_UNICAST_HOPS = 16; IPV6_MULTICAST_IF = 17; IPV6_MULTICAST_HOPS = 18; IPV6_MULTICAST_LOOP = 19; IPV6_JOIN_GROUP = 20; IPV6_LEAVE_GROUP = 21; MSG_NOSIGNAL = $4000; // Do not generate SIGPIPE. // getnameinfo constants NI_MAXHOST = 1025; NI_MAXSERV = 32; NI_NOFQDN = $4; NI_NUMERICHOST = $1; NI_NAMEREQD = $8; NI_NUMERICSERV = $2; NI_DGRAM = $10; const SOCK_STREAM = 1; { stream socket } SOCK_DGRAM = 2; { datagram socket } SOCK_RAW = 3; { raw-protocol interface } SOCK_RDM = 4; { reliably-delivered message } SOCK_SEQPACKET = 5; { sequenced packet stream } { TCP options. } TCP_NODELAY = $0001; { Address families. } AF_UNSPEC = 0; { unspecified } AF_INET = 2; { internetwork: UDP, TCP, etc. } AF_INET6 = 10; { Internetwork Version 6 } AF_MAX = 24; { Protocol families, same as address families for now. } PF_UNSPEC = AF_UNSPEC; PF_INET = AF_INET; PF_INET6 = AF_INET6; PF_MAX = AF_MAX; type { Structure used by kernel to store most addresses. } PSockAddr = ^TSockAddr; TSockAddr = TSockAddrIn; { Structure used by kernel to pass protocol information in raw sockets. } PSockProto = ^TSockProto; TSockProto = packed record sp_family: u_short; sp_protocol: u_short; end; type PAddrInfo = ^TAddrInfo; TAddrInfo = record ai_flags: integer; // AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST. ai_family: integer; // PF_xxx. ai_socktype: integer; // SOCK_xxx. ai_protocol: integer; // 0 or IPPROTO_xxx for IPv4 and IPv6. ai_addrlen: u_int; // Length of ai_addr. ai_addr: PSockAddr; // Binary address. ai_canonname: PChar; // Canonical name for nodename. ai_next: PAddrInfo; // Next structure in linked list. end; const // Flags used in "hints" argument to getaddrinfo(). AI_PASSIVE = $1; // Socket address will be used in bind() call. AI_CANONNAME = $2; // Return canonical name in first ai_canonname. AI_NUMERICHOST = $4; // Nodename must be a numeric address string. type { Structure used for manipulating linger option. } PLinger = ^TLinger; TLinger = packed record l_onoff: integer; l_linger: integer; end; const MSG_OOB = $01; // Process out-of-band data. MSG_PEEK = $02; // Peek at incoming messages. const WSAEINTR = EINTR; WSAEBADF = EBADF; WSAEACCES = EACCES; WSAEFAULT = EFAULT; WSAEINVAL = EINVAL; WSAEMFILE = EMFILE; WSAEWOULDBLOCK = EWOULDBLOCK; WSAEINPROGRESS = EINPROGRESS; WSAEALREADY = EALREADY; WSAENOTSOCK = ENOTSOCK; WSAEDESTADDRREQ = EDESTADDRREQ; WSAEMSGSIZE = EMSGSIZE; WSAEPROTOTYPE = EPROTOTYPE; WSAENOPROTOOPT = ENOPROTOOPT; WSAEPROTONOSUPPORT = EPROTONOSUPPORT; WSAESOCKTNOSUPPORT = ESOCKTNOSUPPORT; WSAEOPNOTSUPP = EOPNOTSUPP; WSAEPFNOSUPPORT = EPFNOSUPPORT; WSAEAFNOSUPPORT = EAFNOSUPPORT; WSAEADDRINUSE = EADDRINUSE; WSAEADDRNOTAVAIL = EADDRNOTAVAIL; WSAENETDOWN = ENETDOWN; WSAENETUNREACH = ENETUNREACH; WSAENETRESET = ENETRESET; WSAECONNABORTED = ECONNABORTED; WSAECONNRESET = ECONNRESET; WSAENOBUFS = ENOBUFS; WSAEISCONN = EISCONN; WSAENOTCONN = ENOTCONN; WSAESHUTDOWN = ESHUTDOWN; WSAETOOMANYREFS = ETOOMANYREFS; WSAETIMEDOUT = ETIMEDOUT; WSAECONNREFUSED = ECONNREFUSED; WSAELOOP = ELOOP; WSAENAMETOOLONG = ENAMETOOLONG; WSAEHOSTDOWN = EHOSTDOWN; WSAEHOSTUNREACH = EHOSTUNREACH; WSAENOTEMPTY = ENOTEMPTY; WSAEPROCLIM = -1; WSAEUSERS = EUSERS; WSAEDQUOT = EDQUOT; WSAESTALE = ESTALE; WSAEREMOTE = EREMOTE; WSASYSNOTREADY = -2; WSAVERNOTSUPPORTED = -3; WSANOTINITIALISED = -4; WSAEDISCON = -5; WSAHOST_NOT_FOUND = HOST_NOT_FOUND; WSATRY_AGAIN = TRY_AGAIN; WSANO_RECOVERY = NO_RECOVERY; WSANO_DATA = -6; EAI_BADFLAGS = -1; { Invalid value for `ai_flags' field. } EAI_NONAME = -2; { NAME or SERVICE is unknown. } EAI_AGAIN = -3; { Temporary failure in name resolution. } EAI_FAIL = -4; { Non-recoverable failure in name res. } EAI_NODATA = -5; { No address associated with NAME. } EAI_FAMILY = -6; { `ai_family' not supported. } EAI_SOCKTYPE = -7; { `ai_socktype' not supported. } EAI_SERVICE = -8; { SERVICE not supported for `ai_socktype'. } EAI_ADDRFAMILY = -9; { Address family for NAME not supported. } EAI_MEMORY = -10; { Memory allocation failure. } EAI_SYSTEM = -11; { System error returned in `errno'. } const WSADESCRIPTION_LEN = 256; WSASYS_STATUS_LEN = 128; type PWSAData = ^TWSAData; TWSAData = packed record wVersion: Word; wHighVersion: Word; szDescription: array[0..WSADESCRIPTION_LEN] of Char; szSystemStatus: array[0..WSASYS_STATUS_LEN] of Char; iMaxSockets: Word; iMaxUdpDg: Word; lpVendorInfo: PChar; end; function IN6_IS_ADDR_UNSPECIFIED(const a: PInAddr6): boolean; function IN6_IS_ADDR_LOOPBACK(const a: PInAddr6): boolean; function IN6_IS_ADDR_LINKLOCAL(const a: PInAddr6): boolean; function IN6_IS_ADDR_SITELOCAL(const a: PInAddr6): boolean; function IN6_IS_ADDR_MULTICAST(const a: PInAddr6): boolean; function IN6_ADDR_EQUAL(const a: PInAddr6; const b: PInAddr6):boolean; procedure SET_IN6_IF_ADDR_ANY (const a: PInAddr6); procedure SET_LOOPBACK_ADDR6 (const a: PInAddr6); var in6addr_any, in6addr_loopback : TInAddr6; procedure FD_CLR(Socket: TSocket; var FDSet: TFDSet); function FD_ISSET(Socket: TSocket; var FDSet: TFDSet): Boolean; procedure FD_SET(Socket: TSocket; var FDSet: TFDSet); procedure FD_ZERO(var FDSet: TFDSet); {=============================================================================} type TWSAStartup = function(wVersionRequired: Word; var WSData: TWSAData): Integer; cdecl; TWSACleanup = function: Integer; cdecl; TWSAGetLastError = function: Integer; cdecl; TGetServByName = function(name, proto: PChar): PServEnt; cdecl; TGetServByPort = function(port: Integer; proto: PChar): PServEnt; cdecl; TGetProtoByName = function(name: PChar): PProtoEnt; cdecl; TGetProtoByNumber = function(proto: Integer): PProtoEnt; cdecl; TGetHostByName = function(name: PChar): PHostEnt; cdecl; TGetHostByAddr = function(addr: Pointer; len, Struc: Integer): PHostEnt; cdecl; TGetHostName = function(name: PChar; len: Integer): Integer; cdecl; TShutdown = function(s: TSocket; how: Integer): Integer; cdecl; TSetSockOpt = function(s: TSocket; level, optname: Integer; optval: PChar; optlen: Integer): Integer; cdecl; TGetSockOpt = function(s: TSocket; level, optname: Integer; optval: PChar; var optlen: Integer): Integer; cdecl; TSendTo = function(s: TSocket; const Buf; len, flags: Integer; addrto: PSockAddr; tolen: Integer): Integer; cdecl; TSend = function(s: TSocket; const Buf; len, flags: Integer): Integer; cdecl; TRecv = function(s: TSocket; var Buf; len, flags: Integer): Integer; cdecl; TRecvFrom = function(s: TSocket; var Buf; len, flags: Integer; from: PSockAddr; var fromlen: Integer): Integer; cdecl; Tntohs = function(netshort: u_short): u_short; cdecl; Tntohl = function(netlong: u_long): u_long; cdecl; TListen = function(s: TSocket; backlog: Integer): Integer; cdecl; TIoctlSocket = function(s: TSocket; cmd: DWORD; var arg: integer): Integer; cdecl; TInet_ntoa = function(inaddr: TInAddr): PChar; cdecl; TInet_addr = function(cp: PChar): u_long; cdecl; Thtons = function(hostshort: u_short): u_short; cdecl; Thtonl = function(hostlong: u_long): u_long; cdecl; TGetSockName = function(s: TSocket; name: PSockAddr; var namelen: Integer): Integer; cdecl; TGetPeerName = function(s: TSocket; name: PSockAddr; var namelen: Integer): Integer; cdecl; TConnect = function(s: TSocket; name: PSockAddr; namelen: Integer): Integer; cdecl; TCloseSocket = function(s: TSocket): Integer; cdecl; TBind = function(s: TSocket; addr: PSockAddr; namelen: Integer): Integer; cdecl; TAccept = function(s: TSocket; addr: PSockAddr; var addrlen: Integer): TSocket; cdecl; TTSocket = function(af, Struc, Protocol: Integer): TSocket; cdecl; TSelect = function(nfds: Integer; readfds, writefds, exceptfds: PFDSet; timeout: PTimeVal): Longint; cdecl; TGetAddrInfo = function(NodeName: PChar; ServName: PChar; Hints: PAddrInfo; var Addrinfo: PAddrInfo): integer; cdecl; TFreeAddrInfo = procedure(ai: PAddrInfo); cdecl; TGetNameInfo = function( addr: PSockAddr; namelen: Integer; host: PChar; hostlen: DWORD; serv: PChar; servlen: DWORD; flags: integer): integer; cdecl; var WSAStartup: TWSAStartup = nil; WSACleanup: TWSACleanup = nil; WSAGetLastError: TWSAGetLastError = nil; GetServByName: TGetServByName = nil; GetServByPort: TGetServByPort = nil; GetProtoByName: TGetProtoByName = nil; GetProtoByNumber: TGetProtoByNumber = nil; GetHostByName: TGetHostByName = nil; GetHostByAddr: TGetHostByAddr = nil; ssGetHostName: TGetHostName = nil; Shutdown: TShutdown = nil; SetSockOpt: TSetSockOpt = nil; GetSockOpt: TGetSockOpt = nil; ssSendTo: TSendTo = nil; ssSend: TSend = nil; ssRecv: TRecv = nil; ssRecvFrom: TRecvFrom = nil; ntohs: Tntohs = nil; ntohl: Tntohl = nil; Listen: TListen = nil; IoctlSocket: TIoctlSocket = nil; Inet_ntoa: TInet_ntoa = nil; Inet_addr: TInet_addr = nil; htons: Thtons = nil; htonl: Thtonl = nil; ssGetSockName: TGetSockName = nil; ssGetPeerName: TGetPeerName = nil; ssConnect: TConnect = nil; CloseSocket: TCloseSocket = nil; ssBind: TBind = nil; ssAccept: TAccept = nil; Socket: TTSocket = nil; Select: TSelect = nil; GetAddrInfo: TGetAddrInfo = nil; FreeAddrInfo: TFreeAddrInfo = nil; GetNameInfo: TGetNameInfo = nil; function LSWSAStartup(wVersionRequired: Word; var WSData: TWSAData): Integer; cdecl; function LSWSACleanup: Integer; cdecl; function LSWSAGetLastError: Integer; cdecl; var SynSockCS: SyncObjs.TCriticalSection; SockEnhancedApi: Boolean; SockWship6Api: Boolean; type TVarSin = packed record case integer of 0: (AddressFamily: u_short); 1: ( case sin_family: u_short of AF_INET: (sin_port: u_short; sin_addr: TInAddr; sin_zero: array[0..7] of Char); AF_INET6: (sin6_port: u_short; sin6_flowinfo: u_long; sin6_addr: TInAddr6; sin6_scope_id: u_long); ); end; function SizeOfVarSin(sin: TVarSin): integer; function Bind(s: TSocket; const addr: TVarSin): Integer; function Connect(s: TSocket; const name: TVarSin): Integer; function GetSockName(s: TSocket; var name: TVarSin): Integer; function GetPeerName(s: TSocket; var name: TVarSin): Integer; function GetHostName: string; function Send(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; function Recv(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; function SendTo(s: TSocket; Buf: TMemory; len, flags: Integer; addrto: TVarSin): Integer; function RecvFrom(s: TSocket; Buf: TMemory; len, flags: Integer; var from: TVarSin): Integer; function Accept(s: TSocket; var addr: TVarSin): TSocket; function IsNewApi(Family: integer): Boolean; function SetVarSin(var Sin: TVarSin; IP, Port: string; Family, SockProtocol, SockType: integer; PreferIP4: Boolean): integer; function GetSinIP(Sin: TVarSin): string; function GetSinPort(Sin: TVarSin): Integer; procedure ResolveNameToIP(Name: string; Family, SockProtocol, SockType: integer; const IPList: TStrings); function ResolveIPToName(IP: string; Family, SockProtocol, SockType: integer): string; function ResolvePort(Port: string; Family, SockProtocol, SockType: integer): Word; {==============================================================================} implementation var SynSockCount: Integer = 0; LibHandle: TLibHandle = 0; Libwship6Handle: TLibHandle = 0; function IN6_IS_ADDR_UNSPECIFIED(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr32[0] = 0) and (a^.u6_addr32[1] = 0) and (a^.u6_addr32[2] = 0) and (a^.u6_addr32[3] = 0)); end; function IN6_IS_ADDR_LOOPBACK(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr32[0] = 0) and (a^.u6_addr32[1] = 0) and (a^.u6_addr32[2] = 0) and (a^.u6_addr8[12] = 0) and (a^.u6_addr8[13] = 0) and (a^.u6_addr8[14] = 0) and (a^.u6_addr8[15] = 1)); end; function IN6_IS_ADDR_LINKLOCAL(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr8[0] = $FE) and (a^.u6_addr8[1] = $80)); end; function IN6_IS_ADDR_SITELOCAL(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr8[0] = $FE) and (a^.u6_addr8[1] = $C0)); end; function IN6_IS_ADDR_MULTICAST(const a: PInAddr6): boolean; begin Result := (a^.u6_addr8[0] = $FF); end; function IN6_ADDR_EQUAL(const a: PInAddr6; const b: PInAddr6): boolean; begin Result := (CompareMem( a, b, sizeof(TInAddr6))); end; procedure SET_IN6_IF_ADDR_ANY (const a: PInAddr6); begin FillChar(a^, sizeof(TInAddr6), 0); end; procedure SET_LOOPBACK_ADDR6 (const a: PInAddr6); begin FillChar(a^, sizeof(TInAddr6), 0); a^.u6_addr8[15] := 1; end; {=============================================================================} var {$IFNDEF VER1_0} //FTP version 1.0.x errno_loc: function: PInteger cdecl = nil; {$ELSE} errno_loc: function: PInteger = nil; cdecl; {$ENDIF} function LSWSAStartup(wVersionRequired: Word; var WSData: TWSAData): Integer; begin with WSData do begin wVersion := wVersionRequired; wHighVersion := $202; szDescription := 'Synsock - Synapse Platform Independent Socket Layer'; szSystemStatus := 'Running on Linux'; iMaxSockets := 32768; iMaxUdpDg := 8192; end; Result := 0; end; function LSWSACleanup: Integer; begin Result := 0; end; function LSWSAGetLastError: Integer; var p: PInteger; begin p := errno_loc; Result := p^; end; function __FDELT(Socket: TSocket): Integer; begin Result := Socket div __NFDBITS; end; function __FDMASK(Socket: TSocket): __fd_mask; begin Result := LongWord(1) shl (Socket mod __NFDBITS); end; function FD_ISSET(Socket: TSocket; var fdset: TFDSet): Boolean; begin Result := (fdset.fds_bits[__FDELT(Socket)] and __FDMASK(Socket)) <> 0; end; procedure FD_SET(Socket: TSocket; var fdset: TFDSet); begin fdset.fds_bits[__FDELT(Socket)] := fdset.fds_bits[__FDELT(Socket)] or __FDMASK(Socket); end; procedure FD_CLR(Socket: TSocket; var fdset: TFDSet); begin fdset.fds_bits[__FDELT(Socket)] := fdset.fds_bits[__FDELT(Socket)] and (not __FDMASK(Socket)); end; procedure FD_ZERO(var fdset: TFDSet); var I: Integer; begin with fdset do for I := Low(fds_bits) to High(fds_bits) do fds_bits[I] := 0; end; {=============================================================================} function SizeOfVarSin(sin: TVarSin): integer; begin case sin.sin_family of AF_INET: Result := SizeOf(TSockAddrIn); AF_INET6: Result := SizeOf(TSockAddrIn6); else Result := 0; end; end; {=============================================================================} function Bind(s: TSocket; const addr: TVarSin): Integer; begin Result := ssBind(s, @addr, SizeOfVarSin(addr)); end; function Connect(s: TSocket; const name: TVarSin): Integer; begin Result := ssConnect(s, @name, SizeOfVarSin(name)); end; function GetSockName(s: TSocket; var name: TVarSin): Integer; var len: integer; begin len := SizeOf(name); FillChar(name, len, 0); Result := ssGetSockName(s, @name, Len); end; function GetPeerName(s: TSocket; var name: TVarSin): Integer; var len: integer; begin len := SizeOf(name); FillChar(name, len, 0); Result := ssGetPeerName(s, @name, Len); end; function GetHostName: string; var s: string; begin Result := ''; setlength(s, 255); ssGetHostName(pchar(s), Length(s) - 1); Result := Pchar(s); end; function Send(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; begin Result := ssSend(s, Buf^, len, flags); end; function Recv(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; begin Result := ssRecv(s, Buf^, len, flags); end; function SendTo(s: TSocket; Buf: TMemory; len, flags: Integer; addrto: TVarSin): Integer; begin Result := ssSendTo(s, Buf^, len, flags, @addrto, SizeOfVarSin(addrto)); end; function RecvFrom(s: TSocket; Buf: TMemory; len, flags: Integer; var from: TVarSin): Integer; var x: integer; begin x := SizeOf(from); Result := ssRecvFrom(s, Buf^, len, flags, @from, x); end; function Accept(s: TSocket; var addr: TVarSin): TSocket; var x: integer; begin x := SizeOf(addr); Result := ssAccept(s, @addr, x); end; {=============================================================================} function IsNewApi(Family: integer): Boolean; begin Result := SockEnhancedApi; if not Result then Result := (Family = AF_INET6) and SockWship6Api; end; function SetVarSin(var Sin: TVarSin; IP, Port: string; Family, SockProtocol, SockType: integer; PreferIP4: Boolean): integer; type pu_long = ^u_long; var ProtoEnt: PProtoEnt; ServEnt: PServEnt; HostEnt: PHostEnt; r: integer; Hints1, Hints2: TAddrInfo; Sin1, Sin2: TVarSin; TwoPass: boolean; function GetAddr(const IP, port: string; Hints: TAddrInfo; var Sin: TVarSin): integer; var Addr: PAddrInfo; begin Addr := nil; try FillChar(Sin, Sizeof(Sin), 0); if Hints.ai_socktype = SOCK_RAW then begin Hints.ai_socktype := 0; Hints.ai_protocol := 0; Result := synsock.GetAddrInfo(PChar(IP), nil, @Hints, Addr); end else begin if (IP = cAnyHost) or (IP = c6AnyHost) then begin Hints.ai_flags := AI_PASSIVE; Result := synsock.GetAddrInfo(nil, PChar(Port), @Hints, Addr); end else if (IP = cLocalhost) or (IP = c6Localhost) then begin Result := synsock.GetAddrInfo(nil, PChar(Port), @Hints, Addr); end else begin Result := synsock.GetAddrInfo(PChar(IP), PChar(Port), @Hints, Addr); end; end; if Result = 0 then if (Addr <> nil) then Move(Addr^.ai_addr^, Sin, Addr^.ai_addrlen); finally if Assigned(Addr) then synsock.FreeAddrInfo(Addr); end; end; begin Result := 0; FillChar(Sin, Sizeof(Sin), 0); if not IsNewApi(family) then begin SynSockCS.Enter; try Sin.sin_family := AF_INET; ProtoEnt := synsock.GetProtoByNumber(SockProtocol); ServEnt := nil; if ProtoEnt <> nil then ServEnt := synsock.GetServByName(PChar(Port), ProtoEnt^.p_name); if ServEnt = nil then Sin.sin_port := synsock.htons(StrToIntDef(Port, 0)) else Sin.sin_port := ServEnt^.s_port; if IP = cBroadcast then Sin.sin_addr.s_addr := u_long(INADDR_BROADCAST) else begin Sin.sin_addr.s_addr := synsock.inet_addr(PChar(IP)); if Sin.sin_addr.s_addr = u_long(INADDR_NONE) then begin HostEnt := synsock.GetHostByName(PChar(IP)); Result := synsock.WSAGetLastError; if HostEnt <> nil then Sin.sin_addr.S_addr := u_long(Pu_long(HostEnt^.h_addr_list^)^); end; end; finally SynSockCS.Leave; end; end else begin FillChar(Hints1, Sizeof(Hints1), 0); FillChar(Hints2, Sizeof(Hints2), 0); TwoPass := False; if Family = AF_UNSPEC then begin if PreferIP4 then begin Hints1.ai_family := AF_INET; Hints2.ai_family := AF_INET6; TwoPass := True; end else begin Hints2.ai_family := AF_INET; Hints1.ai_family := AF_INET6; TwoPass := True; end; end else Hints1.ai_family := Family; Hints1.ai_socktype := SockType; Hints1.ai_protocol := SockProtocol; Hints2.ai_socktype := Hints1.ai_socktype; Hints2.ai_protocol := Hints1.ai_protocol; r := GetAddr(IP, Port, Hints1, Sin1); Result := r; sin := sin1; if r <> 0 then if TwoPass then begin r := GetAddr(IP, Port, Hints2, Sin2); Result := r; if r = 0 then sin := sin2; end; end; end; function GetSinIP(Sin: TVarSin): string; var p: PChar; host, serv: string; hostlen, servlen: integer; r: integer; begin Result := ''; if not IsNewApi(Sin.AddressFamily) then begin p := synsock.inet_ntoa(Sin.sin_addr); if p <> nil then Result := p; end else begin hostlen := NI_MAXHOST; servlen := NI_MAXSERV; setlength(host, hostlen); setlength(serv, servlen); r := getnameinfo(@sin, SizeOfVarSin(sin), PChar(host), hostlen, PChar(serv), servlen, NI_NUMERICHOST + NI_NUMERICSERV); if r = 0 then Result := PChar(host); end; end; function GetSinPort(Sin: TVarSin): Integer; begin if (Sin.sin_family = AF_INET6) then Result := synsock.ntohs(Sin.sin6_port) else Result := synsock.ntohs(Sin.sin_port); end; procedure ResolveNameToIP(Name: string; Family, SockProtocol, SockType: integer; const IPList: TStrings); type TaPInAddr = array[0..250] of PInAddr; PaPInAddr = ^TaPInAddr; var Hints: TAddrInfo; Addr: PAddrInfo; AddrNext: PAddrInfo; r: integer; host, serv: string; hostlen, servlen: integer; RemoteHost: PHostEnt; IP: u_long; PAdrPtr: PaPInAddr; i: Integer; s: string; InAddr: TInAddr; begin IPList.Clear; if not IsNewApi(Family) then begin IP := synsock.inet_addr(PChar(Name)); if IP = u_long(INADDR_NONE) then begin SynSockCS.Enter; try RemoteHost := synsock.GetHostByName(PChar(Name)); if RemoteHost <> nil then begin PAdrPtr := PAPInAddr(RemoteHost^.h_addr_list); i := 0; while PAdrPtr^[i] <> nil do begin InAddr := PAdrPtr^[i]^; s := Format('%d.%d.%d.%d', [InAddr.S_bytes[0], InAddr.S_bytes[1], InAddr.S_bytes[2], InAddr.S_bytes[3]]); IPList.Add(s); Inc(i); end; end; finally SynSockCS.Leave; end; end else IPList.Add(Name); end else begin Addr := nil; try FillChar(Hints, Sizeof(Hints), 0); Hints.ai_family := AF_UNSPEC; Hints.ai_socktype := SockType; Hints.ai_protocol := SockProtocol; Hints.ai_flags := 0; r := synsock.GetAddrInfo(PChar(Name), nil, @Hints, Addr); if r = 0 then begin AddrNext := Addr; while not(AddrNext = nil) do begin if not(((Family = AF_INET6) and (AddrNext^.ai_family = AF_INET)) or ((Family = AF_INET) and (AddrNext^.ai_family = AF_INET6))) then begin hostlen := NI_MAXHOST; servlen := NI_MAXSERV; setlength(host, hostlen); setlength(serv, servlen); r := getnameinfo(AddrNext^.ai_addr, AddrNext^.ai_addrlen, PChar(host), hostlen, PChar(serv), servlen, NI_NUMERICHOST + NI_NUMERICSERV); if r = 0 then begin host := PChar(host); IPList.Add(host); end; end; AddrNext := AddrNext^.ai_next; end; end; finally if Assigned(Addr) then synsock.FreeAddrInfo(Addr); end; end; if IPList.Count = 0 then IPList.Add(cAnyHost); end; function ResolvePort(Port: string; Family, SockProtocol, SockType: integer): Word; var ProtoEnt: PProtoEnt; ServEnt: PServEnt; Hints: TAddrInfo; Addr: PAddrInfo; r: integer; begin Result := 0; if not IsNewApi(Family) then begin SynSockCS.Enter; try ProtoEnt := synsock.GetProtoByNumber(SockProtocol); ServEnt := nil; if ProtoEnt <> nil then ServEnt := synsock.GetServByName(PChar(Port), ProtoEnt^.p_name); if ServEnt = nil then Result := StrToIntDef(Port, 0) else Result := synsock.htons(ServEnt^.s_port); finally SynSockCS.Leave; end; end else begin Addr := nil; try FillChar(Hints, Sizeof(Hints), 0); Hints.ai_family := AF_UNSPEC; Hints.ai_socktype := SockType; Hints.ai_protocol := Sockprotocol; Hints.ai_flags := AI_PASSIVE; r := synsock.GetAddrInfo(nil, PChar(Port), @Hints, Addr); if (r = 0) and Assigned(Addr) then begin if Addr^.ai_family = AF_INET then Result := synsock.htons(Addr^.ai_addr^.sin_port); if Addr^.ai_family = AF_INET6 then Result := synsock.htons(PSockAddrIn6(Addr^.ai_addr)^.sin6_port); end; finally if Assigned(Addr) then synsock.FreeAddrInfo(Addr); end; end; end; function ResolveIPToName(IP: string; Family, SockProtocol, SockType: integer): string; var Hints: TAddrInfo; Addr: PAddrInfo; r: integer; host, serv: string; hostlen, servlen: integer; RemoteHost: PHostEnt; IPn: u_long; begin Result := IP; if not IsNewApi(Family) then begin IPn := synsock.inet_addr(PChar(IP)); if IPn <> u_long(INADDR_NONE) then begin SynSockCS.Enter; try RemoteHost := GetHostByAddr(@IPn, SizeOf(IPn), AF_INET); if RemoteHost <> nil then Result := RemoteHost^.h_name; finally SynSockCS.Leave; end; end; end else begin Addr := nil; try FillChar(Hints, Sizeof(Hints), 0); Hints.ai_family := AF_UNSPEC; Hints.ai_socktype := SockType; Hints.ai_protocol := SockProtocol; Hints.ai_flags := 0; r := synsock.GetAddrInfo(PChar(IP), nil, @Hints, Addr); if (r = 0) and Assigned(Addr)then begin hostlen := NI_MAXHOST; servlen := NI_MAXSERV; setlength(host, hostlen); setlength(serv, servlen); r := getnameinfo(Addr^.ai_addr, Addr^.ai_addrlen, PChar(host), hostlen, PChar(serv), servlen, NI_NUMERICSERV); if r = 0 then Result := PChar(host); end; finally if Assigned(Addr) then synsock.FreeAddrInfo(Addr); end; end; end; {=============================================================================} function InitSocketInterface(stack: string): Boolean; begin Result := False; SockEnhancedApi := False; if stack = '' then stack := DLLStackName; SynSockCS.Enter; try if SynSockCount = 0 then begin SockEnhancedApi := False; SockWship6Api := False; Libc.Signal(Libc.SIGPIPE, TSignalHandler(Libc.SIG_IGN)); LibHandle := LoadLibrary(PChar(Stack)); if LibHandle <> 0 then begin errno_loc := GetProcAddress(LibHandle, PChar('__errno_location')); CloseSocket := GetProcAddress(LibHandle, PChar('close')); IoctlSocket := GetProcAddress(LibHandle, PChar('ioctl')); WSAGetLastError := LSWSAGetLastError; WSAStartup := LSWSAStartup; WSACleanup := LSWSACleanup; ssAccept := GetProcAddress(LibHandle, PChar('accept')); ssBind := GetProcAddress(LibHandle, PChar('bind')); ssConnect := GetProcAddress(LibHandle, PChar('connect')); ssGetPeerName := GetProcAddress(LibHandle, PChar('getpeername')); ssGetSockName := GetProcAddress(LibHandle, PChar('getsockname')); GetSockOpt := GetProcAddress(LibHandle, PChar('getsockopt')); Htonl := GetProcAddress(LibHandle, PChar('htonl')); Htons := GetProcAddress(LibHandle, PChar('htons')); Inet_Addr := GetProcAddress(LibHandle, PChar('inet_addr')); Inet_Ntoa := GetProcAddress(LibHandle, PChar('inet_ntoa')); Listen := GetProcAddress(LibHandle, PChar('listen')); Ntohl := GetProcAddress(LibHandle, PChar('ntohl')); Ntohs := GetProcAddress(LibHandle, PChar('ntohs')); ssRecv := GetProcAddress(LibHandle, PChar('recv')); ssRecvFrom := GetProcAddress(LibHandle, PChar('recvfrom')); Select := GetProcAddress(LibHandle, PChar('select')); ssSend := GetProcAddress(LibHandle, PChar('send')); ssSendTo := GetProcAddress(LibHandle, PChar('sendto')); SetSockOpt := GetProcAddress(LibHandle, PChar('setsockopt')); ShutDown := GetProcAddress(LibHandle, PChar('shutdown')); Socket := GetProcAddress(LibHandle, PChar('socket')); GetHostByAddr := GetProcAddress(LibHandle, PChar('gethostbyaddr')); GetHostByName := GetProcAddress(LibHandle, PChar('gethostbyname')); GetProtoByName := GetProcAddress(LibHandle, PChar('getprotobyname')); GetProtoByNumber := GetProcAddress(LibHandle, PChar('getprotobynumber')); GetServByName := GetProcAddress(LibHandle, PChar('getservbyname')); GetServByPort := GetProcAddress(LibHandle, PChar('getservbyport')); ssGetHostName := GetProcAddress(LibHandle, PChar('gethostname')); {$IFNDEF FORCEOLDAPI} GetAddrInfo := GetProcAddress(LibHandle, PChar('getaddrinfo')); FreeAddrInfo := GetProcAddress(LibHandle, PChar('freeaddrinfo')); GetNameInfo := GetProcAddress(LibHandle, PChar('getnameinfo')); SockEnhancedApi := Assigned(GetAddrInfo) and Assigned(FreeAddrInfo) and Assigned(GetNameInfo); {$ENDIF} Result := True; end; end else Result := True; if Result then Inc(SynSockCount); finally SynSockCS.Leave; end; end; function DestroySocketInterface: Boolean; begin SynSockCS.Enter; try Dec(SynSockCount); if SynSockCount < 0 then SynSockCount := 0; if SynSockCount = 0 then begin if LibHandle <> 0 then begin FreeLibrary(libHandle); LibHandle := 0; end; if LibWship6Handle <> 0 then begin FreeLibrary(LibWship6Handle); LibWship6Handle := 0; end; end; finally SynSockCS.Leave; end; Result := True; end; initialization begin SynSockCS := SyncObjs.TCriticalSection.Create; SET_IN6_IF_ADDR_ANY (@in6addr_any); SET_LOOPBACK_ADDR6 (@in6addr_loopback); end; finalization begin SynSockCS.Free; end; {$ENDIF} ./date2dec.lfm0000644000175000017500000001064314576573021013326 0ustar anthonyanthonyobject Form10: TForm10 Left = 1548 Height = 117 Top = 425 Width = 1000 Caption = '.dat to decimal date' ClientHeight = 117 ClientWidth = 1000 OnCreate = FormCreate Position = poScreenCenter LCLVersion = '1.8.2.0' object SourceFileEdit: TEdit AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Owner Left = 32 Height = 25 Hint = ' Source directory.' Top = 2 Width = 656 BorderSpacing.Left = 2 BorderSpacing.Top = 2 TabOrder = 0 end object SourceFileButton: TBitBtn AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SourceFileEdit AnchorSideTop.Side = asrCenter AnchorSideRight.Control = SourceFileEdit Left = 5 Height = 25 Hint = 'Select source directory.' Top = 2 Width = 25 Anchors = [akTop, akRight] BorderSpacing.Left = 2 BorderSpacing.Top = 2 Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000534D46A0A465 34FFA46534FFA46534FFA46534FFA46534FFA46534FFA46534FFA46534FFA465 34FFA46534FFA46534FFA46534FFA46534FFA46635E9A6673639484848E09786 78FFA5693AFFBA8350FFBA8350FFBA8350FFBA8350FFBA8350FFBA8350FFBA83 50FFBA8350FFBA8350FFBA8350FFBA8350FFB27845FFA56636C0494949E09999 99FFA56839FFD3A67EFFD2A378FFD2A378FFD2A378FFD2A378FFD2A378FFD2A3 78FFD2A378FFD2A378FFD2A378FFD3A479FFD1A57AFFA56635F5484848E29B9B 9BFFA46738FFD5AB85FFCE9C6EFFCE9C6DFFCE9C6DFFCE9C6DFFCE9C6DFFCE9C 6DFFCE9C6DFFCE9C6DFFCE9C6DFFCF9E70FFD5AB84FFA56635F84C4C4CE4A1A1 A1FFA56838FFE2C4A9FFD5A881FFD3A47AFFD3A47AFFD3A47AFFD3A47AFFD3A4 7AFFD3A47AFFD3A47AFFD3A47AFFD4A77EFFDDBA9CFFA56635F9515151E5A4A5 A5FFA56737FFE9D2BEFFDDBA9BFFDDB999FFDCB695FFDBB592FFDAB390FFD9B2 8EFFD8AE89FFD7AD87FFD7AD87FFD8B08BFFE5C9B1FFA56635FA565656E7A9A9 A9FFA46636FFECD8C6FFDDBA99FFDDBA99FFDDBA99FFDDBA99FFDDBA99FFDDBA 99FFDDBA99FFDCB795FFDAB28EFFD9B08BFFE7CFB8FFA56635FB5B5B5BE9AEAE AEFFA56736FFEBD7C4FFDCB794FFDCB794FFDCB794FFDCB794FFDCB794FFDCB7 94FFDCB794FFDCB794FFDCB794FFDAB491FFE6CDB6FFA56635FC5F5F5FE9B3B3 B3FFA46635FFEAD5C1FFDBB491FFDBB491FFDBB591FFDBB591FFDBB592FFDBB5 92FFDBB592FFDBB592FFDBB592FFDCB896FFE7CFB7FFA46634FD656565EBB7B7 B7FFA56635FFEAD3BEFFEAD4BFFFEAD4BFFFEAD4BEFFEAD4BEFFEAD4BEFFE9D3 BEFFE9D3BEFFE9D3BEFFE9D3BEFFE9D3BEFFE8CFB8FFA56534FE6A6A6AECBDBD BDFFA66D41FFA56636FFA56636FFA56636FFA56636FFA56636FFA46635FFA466 35FFA46635FFA46635FFA46534FFA46534FFA46534FFA66837E06E6E6EEEC0C1 C1FFACACACFFAAAAAAFFA7A7A7FFA5A5A5FFA4A4A4FFA4A4A4FFACACACFFB6B6 B6FFB9B9B9FFBBBBBBFFA2A2A2FF6A6A6AA94747470047474700737373EFC5C5 C5FFB0B0B0FFADADADFFABABABFFAAAAAAFFACACACFF8D8D8DF58D8D8DF28C8C 8CF28C8C8CF28C8C8CF2808080F66C6C6C844747470047474700787878F0C9C9 C9FFC7C7C7FFC5C5C5FFC4C4C4FFC4C4C4FFB4B4B4FF747474CA727272387272 7238727272386D6D6D386F6F6F355555550347474700474747007A7A7A9F7979 79EC797979EC797979EC797979EC797979EC797979E278787835474747004747 4700474747004747470047474700474747004747470047474700474747004747 4700474747004747470047474700474747004747470047474700474747004747 4700474747004747470047474700474747004747470047474700 } OnClick = SourceFileButtonClick TabOrder = 1 end object StartButton: TButton AnchorSideLeft.Control = SourceFileEdit AnchorSideTop.Control = SourceFileEdit AnchorSideTop.Side = asrBottom Left = 32 Height = 25 Top = 29 Width = 75 BorderSpacing.Top = 2 Caption = 'Start' OnClick = StartButtonClick TabOrder = 2 end object Memo1: TMemo AnchorSideLeft.Control = SourceFileEdit AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = StatusBar1 Left = 690 Height = 94 Top = 2 Width = 308 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Around = 2 Lines.Strings = ( 'This tool converts the UT date into JD and UT decimal format.' '' 'The new file is stored with the _JDUTDEC appened to the filename.' ) TabOrder = 3 end object StatusBar1: TStatusBar Left = 0 Height = 19 Top = 98 Width = 1000 Panels = < item Width = 50 end> SimplePanel = False end object OpenDialog1: TOpenDialog left = 204 top = 44 end end ./convertoldlogfile.pas0000644000175000017500000003777314576573021015416 0ustar anthonyanthonyunit convertoldlogfile; {$mode objfpc} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, Grids, dateutils, //Required to convert logged UTC string to TDateTime upascaltz, //For tiomezone conversions strutils, appsettings; type { TConvertOldLogForm } TConvertOldLogForm = class(TForm) ImportHeaderButton: TButton; ConvertButton: TButton; SerialLabel: TLabel; OpenFileDialog: TOpenDialog; OutputfilenameLabel: TLabeledEdit; LogfileSelectButton: TButton; FromPreviousComboBox: TComboBox; ImportHeaderNameEdit: TEdit; LogfilenameLabel: TEdit; HeaderDefinitionGroupBox: TGroupBox; MethodGroupBox: TRadioGroup; StringGrid1: TStringGrid; procedure ConvertButtonClick(Sender: TObject); procedure ImportHeaderButtonClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure FromPreviousComboBoxChange(Sender: TObject); procedure LogfileSelectButtonClick(Sender: TObject); procedure MethodGroupBoxClick(Sender: TObject); procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: integer; Rect: TRect; State: TGridDrawState); private { private declarations } public { public declarations } procedure RadioSelect(); procedure UpdateFromPreviousConfig(); end; var ConvertOldLogForm: TConvertOldLogForm; ZoneValid: boolean = False; ptz :TPascalTZ; AZones: TStringList; implementation uses vinfo; { TConvertOldLogForm } procedure TConvertOldLogForm.MethodGroupBoxClick(Sender: TObject); begin RadioSelect(); end; procedure TConvertOldLogForm.StringGrid1DrawCell(Sender: TObject; ACol, ARow: integer; Rect: TRect; State: TGridDrawState); //Justify text in the columns and and colourize cells appropriately const border = 3; var RectWidth: integer; begin RectWidth := Rect.Right - Rect.Left; with Sender as TStringGrid do begin Canvas.FillRect(Rect); if aCol = 0 then Canvas.TextRect(Rect, Rect.Left + RectWidth - Canvas.TextWidth(Cells[ACol, ARow]) - border, Rect.Top, Cells[ACol, ARow]); if aCol = 2 then Canvas.TextRect(Rect, Rect.Left + border, Rect.Top, Cells[ACol, ARow]); if (aCol = 2) and (aRow = 6) and (length(Stringgrid1.Cells[2, 6]) = 0) then begin stringgrid1.canvas.Brush.Color := clRed; Canvas.FillRect(Rect); ConvertButton.Enabled := False; end else begin stringgrid1.canvas.Brush.Color := clDefault; ConvertButton.Enabled := True; end; end; end; procedure TConvertOldLogForm.LogfileSelectButtonClick(Sender: TObject); // get the filename to be converted begin OpenFileDialog.Filter := 'csv files|*.csv|All files|*.*;*'; OpenFileDialog.InitialDir := appsettings.LogsDirectory; if OpenFileDialog.Execute then begin // Show selected input filename LogfilenameLabel.Caption := OpenFileDialog.FileName; // Show determined output filename OutputfilenameLabel.Text := ChangeFileExt(LogfilenameLabel.Text, '.dat'); end; end; procedure TConvertOldLogForm.FromPreviousComboBoxChange(Sender: TObject); begin UpdateFromPreviousConfig(); end; procedure TConvertOldLogForm.FormShow(Sender: TObject); var INISections: TStringList; i: integer; pieces: TStringList; begin pieces := TStringList.Create; pieces.Delimiter := ':'; INISections := TStringList.Create; //Update radio button selection and enable appropriate fields RadioSelect(); //Update combobox fields with serial numbers of previously storeds header definitions vConfigurations.ReadSectionNames(INISections); INISections.Sort; //delete all non "Serial" number section names FromPreviousComboBox.Items.Clear; for i := 0 to INISections.Count - 1 do begin if AnsiStartsStr('Serial', INISections.Strings[i]) then begin pieces.DelimitedText := INISections.Strings[i]; FromPreviousComboBox.Items.Add(pieces.Strings[1]); end; end; //select first item if none is selected and at least one exists if ((FromPreviousComboBox.Items.Count > 0) and (FromPreviousComboBox.ItemIndex < 0)) then FromPreviousComboBox.ItemIndex := 0; INISections.Free; UpdateFromPreviousConfig(); end; procedure TConvertOldLogForm.FormCreate(Sender: TObject); begin //Fill up stringgrid field labels Stringgrid1.Columns[0].Alignment := taRightJustify; Stringgrid1.Cells[0, 1] := 'Device type';//.dat file record name Stringgrid1.Cells[1, 1] := '';//ini file record name Stringgrid1.Cells[0, 2] := 'Instrument ID'; Stringgrid1.Cells[1, 2] := 'Instrument ID'; Stringgrid1.Cells[0, 3] := 'Data supplier'; Stringgrid1.Cells[1, 3] := 'Data Supplier'; Stringgrid1.Cells[0, 4] := 'Location name'; Stringgrid1.Cells[1, 4] := 'Location Name'; Stringgrid1.Cells[0, 5] := 'Position (lat, lon, elev(m))'; Stringgrid1.Cells[1, 5] := 'Position'; Stringgrid1.Cells[0, 6] := 'Local timezone'; Stringgrid1.Cells[1, 6] := 'Local time zone'; Stringgrid1.Cells[0, 7] := 'Time Synchronization'; Stringgrid1.Cells[1, 7] := 'Time Synchronization'; Stringgrid1.Cells[0, 8] := 'Moving / Stationary position'; Stringgrid1.Cells[1, 8] := 'Moving Stationary Position'; Stringgrid1.Cells[0, 9] := 'Moving / Fixed look direction'; Stringgrid1.Cells[1, 9] := 'Moving Stationary Direction'; Stringgrid1.Cells[0, 10] := 'Number of channels'; Stringgrid1.Cells[1, 10] := 'Number Of Channels'; Stringgrid1.Cells[0, 11] := 'Filters per channel'; Stringgrid1.Cells[1, 11] := 'Filters Per Channel'; Stringgrid1.Cells[0, 12] := 'Measurement direction per channel'; Stringgrid1.Cells[1, 12] := 'Measurement Direction Per Channel'; Stringgrid1.Cells[0, 13] := 'Field of view (degrees)'; Stringgrid1.Cells[1, 13] := 'Field Of View'; Stringgrid1.Cells[0, 15] := 'SQM serial number'; Stringgrid1.Cells[1, 15] := 'SQM serial number'; Stringgrid1.Cells[0, 16] := 'SQM firmware version'; Stringgrid1.Cells[1, 16] := 'SQM firmware version'; Stringgrid1.Cells[0, 17] := 'SQM cover offset value'; Stringgrid1.Cells[1, 17] := 'CoverOffset'; Stringgrid1.AutoAdjustColumns; Stringgrid1.ColWidths[1] := 0; end; procedure TConvertOldLogForm.ImportHeaderButtonClick(Sender: TObject); var File1: TextFile; s, v, Str: string; i: integer; begin OpenFileDialog.Filter := 'data log files|*.dat|All files|*.*'; OpenFileDialog.InitialDir := appsettings.LogsDirectory; if OpenFileDialog.Execute then begin ImportHeaderNameEdit.Text := OpenFileDialog.FileName; //Initially clear out all values from any previous read-in. Stringgrid1.Cols[2].Clear; //Start reading file. AssignFile(File1, OpenFileDialog.Filename); {$I+} try Reset(File1); repeat Readln(File1, Str); // Read one line at a time from the file. if (AnsiStartsStr('# ', Str) and AnsiContainsStr(Str, ':')) then //only parse comment lines containing values begin Str := AnsiRightStr(Str, length(Str) - 2);//Remove comment characters s := AnsiLeftStr(Str, NPos(':', Str, 1) - 1);//get the field name v := Trim(AnsiRightStr(Str, length(Str) - RPos(':', Str))); //get the field value //matchup to fill grid for i := 0 to Stringgrid1.RowCount - 1 do begin if s = Stringgrid1.Cells[0, i] then begin Stringgrid1.Cells[2, i] := v; end; end; end; until (EOF(File1)); CloseFile(File1); except on E: EInOutError do begin MessageDlg('Error', 'File handling error occurred. Details: ' + E.ClassName + '/' + E.Message, mtError, [mbOK], 0); end; end; Stringgrid1.AutoAdjustColumns; Stringgrid1.ColWidths[1] := 0; end; end; procedure TConvertOldLogForm.ConvertButtonClick(Sender: TObject); //Convert old file to .dat format using variables already defined. var InFile, OutFile: TextFile; Str: string; pieces: TStringList; ComposeString: string; WriteAllowable: boolean = True; //Allow output file to be written or not. Info: TVersionInfo; LocalTime,UTCTime : TDateTime; TZLocation:string; begin pieces := TStringList.Create; AZones:=TStringList.Create; //Pull in all timezone regions because region was not defined ptz := TPascalTZ.Create(); ptz.ParseDatabaseFromFile(appsettings.TZDirectory+'africa'); ptz.ParseDatabaseFromFile(appsettings.TZDirectory+'antarctica'); ptz.ParseDatabaseFromFile(appsettings.TZDirectory+'asia'); ptz.ParseDatabaseFromFile(appsettings.TZDirectory+'australasia'); ptz.ParseDatabaseFromFile(appsettings.TZDirectory+'europe'); ptz.ParseDatabaseFromFile(appsettings.TZDirectory+'northamerica'); ptz.ParseDatabaseFromFile(appsettings.TZDirectory+'southamerica'); ptz.ParseDatabaseFromFile(appsettings.TZDirectory+'etcetera'); ptz.ParseDatabaseFromFile(appsettings.TZDirectory+'pacificnew'); Azones.Clear; ptz.GetTimeZoneNames(AZones,true); //only geo name = true ptz.DetectInvalidLocalTimes:=False;// maybe a bug: 2012.12.30 00:00:08 does not exist in Australia/Perth TZLocation:=Stringgrid1.Cells[2, 6]; //Start reading file. AssignFile(InFile, LogfilenameLabel.Text); AssignFile(OutFile, OutputfilenameLabel.Text); if FileExists(OutputfilenameLabel.Text) then begin if (MessageDlg('Overwrite existing file?', 'Do you want to overwrite the existing file?', mtConfirmation, [mbOK, mbCancel], 0) = mrCancel) then WriteAllowable := False; end; if WriteAllowable then begin {$I+} try Reset(InFile); Rewrite(OutFile); //Open file for writing { Write header } SetTextLineEnding(OutFile,#13#10); Writeln(OutFile,'# Light Pollution Monitoring Data Format 1.0'); Writeln(OutFile,'# URL: http://www.darksky.org/measurements'); Writeln(OutFile,'# Number of header lines: 35'); Writeln(OutFile,'# This data is released under the following license: ODbL 1.0 http://opendatacommons.org/licenses/odbl/summary/'); Writeln(OutFile,'# Device type: '+Stringgrid1.Cells[2, 1]); Writeln(OutFile,'# Instrument ID: '+Stringgrid1.Cells[2, 2]); Writeln(OutFile,'# Data supplier: '+Stringgrid1.Cells[2, 3]); Writeln(OutFile,'# Location name: '+Stringgrid1.Cells[2, 4]); Writeln(OutFile,'# Position (lat, lon, elev(m)): '+Stringgrid1.Cells[2, 5]); Writeln(OutFile,'# Local timezone: '+Stringgrid1.Cells[2, 6]); Writeln(OutFile,'# Time Synchronization: '+Stringgrid1.Cells[2, 7]); Writeln(OutFile,'# Moving / Stationary position: '+Stringgrid1.Cells[2, 8]); Writeln(OutFile,'# Moving / Fixed look direction: '+Stringgrid1.Cells[2, 9]); Writeln(OutFile,'# Number of channels: '+Stringgrid1.Cells[2, 10]); Writeln(OutFile,'# Filters per channel: '+Stringgrid1.Cells[2, 11]); Writeln(OutFile,'# Measurement direction per channel: '+Stringgrid1.Cells[2, 12]); Writeln(OutFile,'# Field of view (degrees): '+Stringgrid1.Cells[2, 13]); Writeln(OutFile,'# Number of fields per line: 5'); Writeln(OutFile,'# SQM serial number: '+Stringgrid1.Cells[2, 15]); Writeln(OutFile,'# SQM firmware version: '+Stringgrid1.Cells[2, 16]); Writeln(OutFile,'# SQM cover offset value: '+Stringgrid1.Cells[2, 17]); Writeln(OutFile,'# SQM readout test ix: '); Writeln(OutFile,'# SQM readout test rx: '); Writeln(OutFile,'# SQM readout test cx: '); Writeln(OutFile,'# Comment: '); Writeln(OutFile,'# Comment: '); Writeln(OutFile,'# Comment: '); Writeln(OutFile,'# Comment: '); Writeln(OutFile,'# Comment: '); // Log the UDM version. Info := TVersionInfo.Create; Info.Load(HINSTANCE); Writeln(OutFile,Format('# UDM version: %s', [IntToStr(Info.FixedInfo.FileVersion[0]) +'.'+IntToStr(Info.FixedInfo.FileVersion[1]) +'.'+IntToStr(Info.FixedInfo.FileVersion[2]) +'.'+IntToStr(Info.FixedInfo.FileVersion[3])])); Info.Free; Writeln(OutFile,'# UDM setting: Converted from old style csv file.'); Writeln(OutFile,'# blank line 32'); Writeln(OutFile,'# UTC Date & Time, Local Date & Time, Temperature, Voltage, MSAS'); Writeln(OutFile,'# YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Celsius;Volts;mag/arcsec^2'); Writeln(OutFile,'# END OF HEADER'); Flush(OutFile); repeat Readln(InFile, Str); // Read one line at a time from the file. //Separate the fields of the record. pieces.Delimiter := ','; pieces.StrictDelimiter := False; //Parse spaces also (to get rid of DOW). pieces.DelimitedText := Str; //Make sure the number of fields is correct if ((pieces.Count <> 7)) then begin MessageDlg('Error', 'Got '+IntToStr(pieces.Count)+' fields, need 7 fields in record.', mtError, [mbOK], 0); break; end else begin //parse the fields, and convert as necessary. //Convert UTC string 'YYYY-MM-DDTHH:mm:ss.fff' into TDateTime //UTCRecord := ScanDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz', pieces.Strings[1]); //writeln(FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz',UTCRecord)); //Prepare string for output: // Input = 1,12-11-26 Mon 19:00:58,MPSAS,temperature,voltage //Output = YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Celsius;Volts;mag/arcsec^2 //writeln(Str); //writeln(pieces.Strings[1]); //writeln(pieces.Strings[2]); //writeln(pieces.Strings[3]); LocalTime:=ScanDateTime('yy-mm-ddhh:nn:ss',pieces.Strings[1]+pieces.Strings[3]); UTCTime:=ptz.LocalTimeToGMT(LocalTime, TZLocation); ComposeString := FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"',UTCTime) //UTC calculated from local datetime + FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz";"',LocalTime) //local time fixed to standard method + pieces.Strings[5]+';' //temperature + pieces.Strings[6]+';' //voltage + pieces.Strings[4]; //mpsas WriteLn(OutFile, ComposeString); end;//End of checking number of fields in record. until (EOF(InFile)); // EOF(End Of File) The the program will keep reading new lines until there is none. CloseFile(InFile); except on E: EInOutError do begin MessageDlg('Error', 'File handling error occurred. Details: ' + E.ClassName + '/' + E.Message, mtError, [mbOK], 0); end; end; Flush(OutFile); CloseFile(OutFile); end;//End of WriteAllowable check. ptz.Destroy; end; procedure TConvertOldLogForm.RadioSelect(); begin case MethodGroupBox.ItemIndex of 0: begin FromPreviousComboBox.Visible := True; SerialLabel.Visible := True; ImportHeaderButton.Visible := False; ImportHeaderNameEdit.Visible := False; StringGrid1.Enabled := False; end; 1: begin FromPreviousComboBox.Visible := False; SerialLabel.Visible := False; ImportHeaderButton.Visible := True; ImportHeaderNameEdit.Visible := True; StringGrid1.Enabled := False; end; end; end; procedure TConvertOldLogForm.UpdateFromPreviousConfig(); var INISection: string; SectionValues: TStringList; i: integer; s, v: string; //general purpose strings begin SectionValues := TStringList.Create; INISection := 'Serial:' + FromPreviousComboBox.Text; //Select header from stored serial numbers vConfigurations.ReadSection(INISection, SectionValues); //Initially clear out all values from any previous read-in. Stringgrid1.Cols[2].Clear; for s in SectionValues do begin v := vConfigurations.ReadString(INISection, s, ''); //matchup to fill grid for i := 0 to Stringgrid1.RowCount - 1 do begin if s = Stringgrid1.Cells[1, i] then begin Stringgrid1.Cells[2, i] := v; end; end; end; Stringgrid1.AutoAdjustColumns; Stringgrid1.ColWidths[1] := 0; SectionValues.Free; end; initialization {$I convertoldlogfile.lrs} end. ./date2dec.pas0000644000175000017500000001346514576573021013340 0ustar anthonyanthonyunit date2dec; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons, ComCtrls , LazFileUtils //required for ExtractFileNameOnly ; type { TForm10 } TForm10 = class(TForm) Memo1: TMemo; OpenDialog1: TOpenDialog; SourceFileButton: TBitBtn; SourceFileEdit: TEdit; StartButton: TButton; StatusBar1: TStatusBar; procedure FormCreate(Sender: TObject); procedure SourceFileButtonClick(Sender: TObject); procedure StartButtonClick(Sender: TObject); private public end; var Form10: TForm10; implementation uses Unit1 , strutils , appsettings , dateutils //Required to convert logged UTC string to TDateTime ; var SourcePathFile:String; subfix: ansistring; //Used for time zone conversions { TForm10 } procedure TForm10.SourceFileButtonClick(Sender: TObject); begin OpenDialog1.InitialDir:=RemoveMultiSlash(appsettings.LogsDirectory); if OpenDialog1.Execute then begin SourcePathFile:=OpenDialog1.FileName; SourceFileEdit.Text:=SourcePathFile; end; end; procedure TForm10.FormCreate(Sender: TObject); begin end; { Convert file and write to the outputfile.} procedure TForm10.StartButtonClick(Sender: TObject); Var Infile: TStringList; pieces: TStringList; OutFile: TextFile; ComposeString: String; OutputPathFileName, SourceFileName:String; WorkingPath, OutputPath:String; WriteAllowable: Boolean = True; //Allow output file to be written or not. s: String; //Temporary string i:Integer;//Counter UTCRecord :TDateTime; LocalRecord :TDateTime; Begin Infile := TStringList.Create; pieces := TStringList.Create; SourceFileName:=SourcePathFile; WorkingPath:=RemoveMultiSlash(SourcePathFile + DirectorySeparator); OutputPath:=ExtractFilePath(SourcePathFile); OutputPathFileName:=RemoveMultiSlash(WorkingPath+'JDUTDEC' + DirectorySeparator); { So far there are no conditions to prevent writing files. The output directory either already exists, or has been created. The output files will overwrite previous output files.} WriteAllowable:=True; if WriteAllowable then begin { Process the file } try {Start reading file.} { Define Input file. } SourceFileName:= ExtractFileName(SourcePathFile); { Define Output file. } OutputPathFileName:=OutputPath+LazFileUtils.ExtractFileNameWithoutExt(SourceFileName)+'_JDUTDEC.dat'; AssignFile(OutFile, OutputPathFileName); Rewrite(OutFile); //Open file for writing {$I+} try StatusBar1.Panels.Items[0].Text:='Reading Input file'; Infile.LoadFromFile(OpenDialog1.Filename); {Go through all lines in input file} for s in Infile do begin {Get Data Line, begins with # UTC Date & Time} if AnsiContainsStr(s,'# UTC Date & Time') then begin { Parse field definition line to insert new fields. } pieces.Delimiter := ','; pieces.StrictDelimiter := True; //Do not parse spaces also pieces.DelimitedText := s; ComposeString:=pieces.Strings[0]+','+pieces.Strings[1]+', Julian Date, UT date'; { Get the field locations. } for i:=2 to pieces.Count-1 do begin ComposeString:=ComposeString+','+pieces.Strings[i]; end; end {Get Data Line, begins with # YYYY-MM-DDTHH:mm:ss.fff;} else if AnsiContainsStr(s,'# YYYY-MM-DDTHH:mm:ss.fff;') then begin { Parse field definition line to insert new fields. } pieces.Delimiter := ';'; pieces.StrictDelimiter := True; //Do not parse spaces also pieces.DelimitedText := s; ComposeString:=pieces.Strings[0]+';'+pieces.Strings[1]+';day.frac;day.frac '; { Get the field locations. } for i:=2 to pieces.Count-1 do begin ComposeString:=ComposeString+';'+pieces.Strings[i]; end; end {General comment line} else if AnsiContainsStr(s,'# ') then begin ComposeString:=s; end {Data line} else begin pieces.Delimiter := ';'; pieces.StrictDelimiter := True; //Do not parse spaces { Separate the fields of the record. } pieces.DelimitedText := s; { Pass first and second field untouched. } ComposeString:=pieces.Strings[0]+';'+pieces.Strings[1]; { Assume that the first field is UT time. } UTCRecord:=ScanDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz',pieces.Strings[0]); { Perform the conversion to Julian date. Output UT datetime as decimal with enough precision to indicate seconds.} ComposeString:=ComposeString+format(';%.1f;%.8f',[DateTimeToJulianDate(UTCRecord), UTCRecord]); { Compose remainder of string untouched. } for i:=2 to pieces.count-1 do begin ComposeString:=ComposeString+';'+pieces.Strings[i]; end; end; { Write corrected line to output file. } WriteLn(OutFile,ComposeString); end; Flush(OutFile); CloseFile(OutFile); StatusBar1.Panels.Items[0].Text:='Finished file'+SourceFileName; except on E: EInOutError do begin MessageDlg('Error', 'File handling error occurred. Details: '+E.ClassName+'/'+E.Message, mtError, [mbOK],0); end; end; StatusBar1.Panels.Items[0].Text:='Finished converting file. Result stored in :'+OutputPath; finally end; end; end; initialization {$I date2dec.lrs} end. ./startupoptions.lrs0000644000175000017500000002406014576573022015012 0ustar anthonyanthony{ This is an automatically generated lazarus resource file } LazarusResources.Add('TStartUpOptionsForm','FORMDATA',[ 'TPF0'#19'TStartUpOptionsForm'#18'StartUpOptionsForm'#4'Left'#3'3'#9#6'Height' +#3'T'#2#3'Top'#2'^'#5'Width'#3#227#3#7'Caption'#6#15'Startup options'#12'Cli' +'entHeight'#3'T'#2#11'ClientWidth'#3#227#3#10'OnActivate'#7#12'FormActivate' +#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#7'2.3.0.0'#0#12'TLabeledE' +'dit'#19'StartUpSettingsEdit'#22'AnchorSideLeft.Control'#7#5'Owner'#23'Ancho' +'rSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'A' +'nchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBottom' +#4'Left'#2#0#6'Height'#2#31#3'Top'#3'5'#2#5'Width'#3#227#3#7'Anchors'#11#6'a' +'kLeft'#7'akRight'#8'akBottom'#0#16'EditLabel.Height'#2#21#15'EditLabel.Widt' +'h'#3#227#3#17'EditLabel.Caption'#6#16'Startup options:'#8'TabOrder'#2#0#8'O' +'nChange'#7#25'StartUpSettingsEditChange'#0#0#244#8'TSynMemo'#8'SynMemo1'#22 +'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#19'StartupIn' +'structions'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Contro' +'l'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.C' +'ontrol'#7#23'UDMArgumentsLabeledEdit'#6'Cursor'#7#7'crIBeam'#4'Left'#2#0#6 +'Height'#3#154#1#3'Top'#2'8'#5'Width'#3#227#3#20'BorderSpacing.Bottom'#2')'#7 +'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#11'Font.Height'#2 +#243#9'Font.Name'#6#11'Courier New'#10'Font.Pitch'#7#7'fpFixed'#12'Font.Qual' +'ity'#7#16'fqNonAntialiased'#11'ParentColor'#8#10'ParentFont'#8#8'TabOrder'#2 +#1#14'Gutter.Visible'#8#12'Gutter.Width'#2'9'#19'Gutter.MouseActions'#14#0#10 +'Keystrokes'#14#1#7'Command'#7#4'ecUp'#8'ShortCut'#2'&'#0#1#7'Command'#7#7'e' +'cSelUp'#8'ShortCut'#3'& '#0#1#7'Command'#7#10'ecScrollUp'#8'ShortCut'#3'&@' +#0#1#7'Command'#7#6'ecDown'#8'ShortCut'#2'('#0#1#7'Command'#7#9'ecSelDown'#8 +'ShortCut'#3'( '#0#1#7'Command'#7#12'ecScrollDown'#8'ShortCut'#3'(@'#0#1#7'C' +'ommand'#7#6'ecLeft'#8'ShortCut'#2'%'#0#1#7'Command'#7#9'ecSelLeft'#8'ShortC' +'ut'#3'% '#0#1#7'Command'#7#10'ecWordLeft'#8'ShortCut'#3'%@'#0#1#7'Command'#7 +#13'ecSelWordLeft'#8'ShortCut'#3'%`'#0#1#7'Command'#7#7'ecRight'#8'ShortCut' +#2''''#0#1#7'Command'#7#10'ecSelRight'#8'ShortCut'#3''' '#0#1#7'Command'#7#11 +'ecWordRight'#8'ShortCut'#3'''@'#0#1#7'Command'#7#14'ecSelWordRight'#8'Short' +'Cut'#3'''`'#0#1#7'Command'#7#10'ecPageDown'#8'ShortCut'#2'"'#0#1#7'Command' +#7#13'ecSelPageDown'#8'ShortCut'#3'" '#0#1#7'Command'#7#12'ecPageBottom'#8'S' +'hortCut'#3'"@'#0#1#7'Command'#7#15'ecSelPageBottom'#8'ShortCut'#3'"`'#0#1#7 +'Command'#7#8'ecPageUp'#8'ShortCut'#2'!'#0#1#7'Command'#7#11'ecSelPageUp'#8 +'ShortCut'#3'! '#0#1#7'Command'#7#9'ecPageTop'#8'ShortCut'#3'!@'#0#1#7'Comma' +'nd'#7#12'ecSelPageTop'#8'ShortCut'#3'!`'#0#1#7'Command'#7#11'ecLineStart'#8 +'ShortCut'#2'$'#0#1#7'Command'#7#14'ecSelLineStart'#8'ShortCut'#3'$ '#0#1#7 +'Command'#7#11'ecEditorTop'#8'ShortCut'#3'$@'#0#1#7'Command'#7#14'ecSelEdito' +'rTop'#8'ShortCut'#3'$`'#0#1#7'Command'#7#9'ecLineEnd'#8'ShortCut'#2'#'#0#1#7 +'Command'#7#12'ecSelLineEnd'#8'ShortCut'#3'# '#0#1#7'Command'#7#14'ecEditorB' +'ottom'#8'ShortCut'#3'#@'#0#1#7'Command'#7#17'ecSelEditorBottom'#8'ShortCut' +#3'#`'#0#1#7'Command'#7#12'ecToggleMode'#8'ShortCut'#2'-'#0#1#7'Command'#7#6 +'ecCopy'#8'ShortCut'#3'-@'#0#1#7'Command'#7#7'ecPaste'#8'ShortCut'#3'- '#0#1 +#7'Command'#7#12'ecDeleteChar'#8'ShortCut'#2'.'#0#1#7'Command'#7#5'ecCut'#8 +'ShortCut'#3'. '#0#1#7'Command'#7#16'ecDeleteLastChar'#8'ShortCut'#2#8#0#1#7 +'Command'#7#16'ecDeleteLastChar'#8'ShortCut'#3#8' '#0#1#7'Command'#7#16'ecDe' +'leteLastWord'#8'ShortCut'#3#8'@'#0#1#7'Command'#7#6'ecUndo'#8'ShortCut'#4#8 +#128#0#0#0#1#7'Command'#7#6'ecRedo'#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#7 +#11'ecLineBreak'#8'ShortCut'#2#13#0#1#7'Command'#7#11'ecSelectAll'#8'ShortCu' +'t'#3'A@'#0#1#7'Command'#7#6'ecCopy'#8'ShortCut'#3'C@'#0#1#7'Command'#7#13'e' +'cBlockIndent'#8'ShortCut'#3'I`'#0#1#7'Command'#7#11'ecLineBreak'#8'ShortCut' +#3'M@'#0#1#7'Command'#7#12'ecInsertLine'#8'ShortCut'#3'N@'#0#1#7'Command'#7 +#12'ecDeleteWord'#8'ShortCut'#3'T@'#0#1#7'Command'#7#15'ecBlockUnindent'#8'S' +'hortCut'#3'U`'#0#1#7'Command'#7#7'ecPaste'#8'ShortCut'#3'V@'#0#1#7'Command' +#7#5'ecCut'#8'ShortCut'#3'X@'#0#1#7'Command'#7#12'ecDeleteLine'#8'ShortCut'#3 +'Y@'#0#1#7'Command'#7#11'ecDeleteEOL'#8'ShortCut'#3'Y`'#0#1#7'Command'#7#6'e' +'cUndo'#8'ShortCut'#3'Z@'#0#1#7'Command'#7#6'ecRedo'#8'ShortCut'#3'Z`'#0#1#7 +'Command'#7#13'ecGotoMarker0'#8'ShortCut'#3'0@'#0#1#7'Command'#7#13'ecGotoMa' +'rker1'#8'ShortCut'#3'1@'#0#1#7'Command'#7#13'ecGotoMarker2'#8'ShortCut'#3'2' +'@'#0#1#7'Command'#7#13'ecGotoMarker3'#8'ShortCut'#3'3@'#0#1#7'Command'#7#13 +'ecGotoMarker4'#8'ShortCut'#3'4@'#0#1#7'Command'#7#13'ecGotoMarker5'#8'Short' +'Cut'#3'5@'#0#1#7'Command'#7#13'ecGotoMarker6'#8'ShortCut'#3'6@'#0#1#7'Comma' +'nd'#7#13'ecGotoMarker7'#8'ShortCut'#3'7@'#0#1#7'Command'#7#13'ecGotoMarker8' +#8'ShortCut'#3'8@'#0#1#7'Command'#7#13'ecGotoMarker9'#8'ShortCut'#3'9@'#0#1#7 +'Command'#7#12'ecSetMarker0'#8'ShortCut'#3'0`'#0#1#7'Command'#7#12'ecSetMark' ,'er1'#8'ShortCut'#3'1`'#0#1#7'Command'#7#12'ecSetMarker2'#8'ShortCut'#3'2`'#0 +#1#7'Command'#7#12'ecSetMarker3'#8'ShortCut'#3'3`'#0#1#7'Command'#7#12'ecSet' +'Marker4'#8'ShortCut'#3'4`'#0#1#7'Command'#7#12'ecSetMarker5'#8'ShortCut'#3 +'5`'#0#1#7'Command'#7#12'ecSetMarker6'#8'ShortCut'#3'6`'#0#1#7'Command'#7#12 +'ecSetMarker7'#8'ShortCut'#3'7`'#0#1#7'Command'#7#12'ecSetMarker8'#8'ShortCu' +'t'#3'8`'#0#1#7'Command'#7#12'ecSetMarker9'#8'ShortCut'#3'9`'#0#1#7'Command' +#7#12'EcFoldLevel1'#8'ShortCut'#4'1'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel' +'2'#8'ShortCut'#4'2'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel1'#8'ShortCut'#4 +'3'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel1'#8'ShortCut'#4'4'#160#0#0#0#1#7 +'Command'#7#12'EcFoldLevel1'#8'ShortCut'#4'5'#160#0#0#0#1#7'Command'#7#12'Ec' +'FoldLevel6'#8'ShortCut'#4'6'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel7'#8'Sh' +'ortCut'#4'7'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel8'#8'ShortCut'#4'8'#160 +#0#0#0#1#7'Command'#7#12'EcFoldLevel9'#8'ShortCut'#4'9'#160#0#0#0#1#7'Comman' +'d'#7#12'EcFoldLevel0'#8'ShortCut'#4'0'#160#0#0#0#1#7'Command'#7#13'EcFoldCu' +'rrent'#8'ShortCut'#4'-'#160#0#0#0#1#7'Command'#7#15'EcUnFoldCurrent'#8'Shor' +'tCut'#4'+'#160#0#0#0#1#7'Command'#7#18'EcToggleMarkupWord'#8'ShortCut'#4'M' +#128#0#0#0#1#7'Command'#7#14'ecNormalSelect'#8'ShortCut'#3'N`'#0#1#7'Command' +#7#14'ecColumnSelect'#8'ShortCut'#3'C`'#0#1#7'Command'#7#12'ecLineSelect'#8 +'ShortCut'#3'L`'#0#1#7'Command'#7#5'ecTab'#8'ShortCut'#2#9#0#1#7'Command'#7 +#10'ecShiftTab'#8'ShortCut'#3#9' '#0#1#7'Command'#7#14'ecMatchBracket'#8'Sho' +'rtCut'#3'B`'#0#1#7'Command'#7#10'ecColSelUp'#8'ShortCut'#4'&'#160#0#0#0#1#7 +'Command'#7#12'ecColSelDown'#8'ShortCut'#4'('#160#0#0#0#1#7'Command'#7#12'ec' +'ColSelLeft'#8'ShortCut'#4'%'#160#0#0#0#1#7'Command'#7#13'ecColSelRight'#8'S' +'hortCut'#4''''#160#0#0#0#1#7'Command'#7#16'ecColSelPageDown'#8'ShortCut'#4 +'"'#160#0#0#0#1#7'Command'#7#18'ecColSelPageBottom'#8'ShortCut'#4'"'#224#0#0 +#0#1#7'Command'#7#14'ecColSelPageUp'#8'ShortCut'#4'!'#160#0#0#0#1#7'Command' +#7#15'ecColSelPageTop'#8'ShortCut'#4'!'#224#0#0#0#1#7'Command'#7#17'ecColSel' +'LineStart'#8'ShortCut'#4'$'#160#0#0#0#1#7'Command'#7#15'ecColSelLineEnd'#8 +'ShortCut'#4'#'#160#0#0#0#1#7'Command'#7#17'ecColSelEditorTop'#8'ShortCut'#4 +'$'#224#0#0#0#1#7'Command'#7#20'ecColSelEditorBottom'#8'ShortCut'#4'#'#224#0 +#0#0#0#12'MouseActions'#14#0#16'MouseTextActions'#14#0#15'MouseSelActions'#14 +#0#13'Lines.Strings'#1#6#0#0#19'VisibleSpecialChars'#11#8'vscSpace'#12'vscTa' +'bAtLast'#0#9'RightEdge'#3#0#4#10'ScrollBars'#7#10'ssAutoBoth'#26'SelectedCo' +'lor.BackPriority'#2'2'#26'SelectedColor.ForePriority'#2'2'#27'SelectedColor' +'.FramePriority'#2'2'#26'SelectedColor.BoldPriority'#2'2'#28'SelectedColor.I' +'talicPriority'#2'2'#31'SelectedColor.UnderlinePriority'#2'2'#31'SelectedCol' +'or.StrikeOutPriority'#2'2'#0#244#18'TSynGutterPartList'#22'SynLeftGutterPar' +'tList1'#0#15'TSynGutterMarks'#15'SynGutterMarks1'#5'Width'#2#24#12'MouseAct' +'ions'#14#0#0#0#20'TSynGutterLineNumber'#20'SynGutterLineNumber1'#5'Width'#2 +#17#12'MouseActions'#14#0#21'MarkupInfo.Background'#7#9'clBtnFace'#21'Markup' +'Info.Foreground'#7#6'clNone'#10'DigitCount'#2#2#30'ShowOnlyLineNumbersMulti' +'plesOf'#2#1#9'ZeroStart'#8#12'LeadingZeros'#8#0#0#17'TSynGutterChanges'#17 +'SynGutterChanges1'#5'Width'#2#4#12'MouseActions'#14#0#13'ModifiedColor'#4 +#252#233#0#0#10'SavedColor'#7#7'clGreen'#0#0#19'TSynGutterSeparator'#19'SynG' +'utterSeparator1'#5'Width'#2#2#12'MouseActions'#14#0#21'MarkupInfo.Backgroun' +'d'#7#7'clWhite'#21'MarkupInfo.Foreground'#7#6'clGray'#0#0#21'TSynGutterCode' +'Folding'#21'SynGutterCodeFolding1'#12'MouseActions'#14#0#21'MarkupInfo.Back' +'ground'#7#6'clNone'#21'MarkupInfo.Foreground'#7#6'clGray'#20'MouseActionsEx' +'panded'#14#0#21'MouseActionsCollapsed'#14#0#0#0#0#0#5'TMemo'#19'StartupInst' +'ructions'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7 +#5'Owner'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9 +'asrBottom'#4'Left'#2#0#6'Height'#2'8'#3'Top'#2#0#5'Width'#3#227#3#7'Anchors' +#11#5'akTop'#6'akLeft'#7'akRight'#0#13'Lines.Strings'#1#6'^UDM can be starte' +'d up by commandline parameters or by the Startup options shown at the botto' +'m.'#6'4The command line startup options are explained next:'#0#8'TabOrder'#2 +#2#0#0#12'TLabeledEdit'#23'UDMArgumentsLabeledEdit'#22'AnchorSideLeft.Contro' +'l'#7#5'Owner'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Sid' +'e'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#19'StartUpSettingsEdit'#4 +'Left'#2#0#6'Height'#2#31#3'Top'#3#251#1#5'Width'#3#227#3#7'Anchors'#11#6'ak' +'Left'#7'akRight'#8'akBottom'#0#20'BorderSpacing.Bottom'#2#27#16'EditLabel.H' +'eight'#2#21#15'EditLabel.Width'#3#227#3#17'EditLabel.Caption'#6'2UDM was st' +'arted with these command line arguments:'#7'Enabled'#8#8'ReadOnly'#9#8'TabO' +'rder'#2#3#0#0#0 ]); ./worldmap.lfm0000644000175000017500000002053714576573022013504 0ustar anthonyanthonyobject FormWorldmap: TFormWorldmap Left = 2406 Height = 515 Top = 126 Width = 800 BorderStyle = bsDialog Caption = 'Set location' ClientHeight = 515 ClientWidth = 800 OnShow = FormShow Position = poScreenCenter LCLVersion = '2.0.12.0' object MapImage: TImage AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 0 Height = 400 Top = 0 Width = 800 Anchors = [akTop, akLeft, akRight] OnClick = MapImageClick OnMouseEnter = MapImageMouseEnter OnMouseLeave = MapImageMouseLeave OnMouseMove = MapImageMouseMove ParentShowHint = False Proportional = True end object ApplyButton: TButton AnchorSideLeft.Side = asrBottom AnchorSideRight.Control = CloseButton AnchorSideBottom.Side = asrCenter Left = 620 Height = 25 Top = 487 Width = 75 Anchors = [akRight, akBottom] BorderSpacing.Right = 5 BorderSpacing.Bottom = 3 Caption = 'Apply' OnClick = ApplyButtonClick TabOrder = 0 end object CreditLabel: TLabel AnchorSideTop.Control = MapImage AnchorSideTop.Side = asrBottom AnchorSideRight.Control = MapImage AnchorSideRight.Side = asrBottom Left = 704 Height = 12 Top = 400 Width = 86 Anchors = [akTop, akRight] BorderSpacing.Right = 10 Caption = 'Photo credit: NASA' Font.Color = 3881787 Font.Height = -10 Font.Style = [fsItalic] ParentColor = False ParentFont = False end object CursorLabel: TLabel AnchorSideTop.Control = CursorLatitude AnchorSideTop.Side = asrCenter AnchorSideRight.Control = CursorLatitude Left = 119 Height = 17 Top = 425 Width = 46 Anchors = [akTop, akRight] BorderSpacing.Right = 3 Caption = 'Cursor:' ParentColor = False Visible = False end object CloseButton: TButton AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 700 Height = 25 Top = 487 Width = 75 Anchors = [akRight, akBottom] BorderSpacing.Right = 25 BorderSpacing.Bottom = 3 Caption = 'Close' OnClick = CloseButtonClick TabOrder = 1 end object DesiredLabel: TLabel AnchorSideTop.Control = DesiredLatitudeEdit AnchorSideTop.Side = asrCenter AnchorSideRight.Control = DesiredLatitudeEdit Left = 113 Height = 17 Top = 456 Width = 52 Anchors = [akTop, akRight] BorderSpacing.Right = 3 Caption = 'Desired:' ParentColor = False end object LatitudeLabel: TLabel AnchorSideLeft.Control = CursorLatitude AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = CursorLatitude AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = CursorLongitude Left = 203 Height = 17 Top = 403 Width = 51 Anchors = [akLeft, akBottom] Caption = 'Latitude' ParentColor = False end object LongitudeLabel: TLabel AnchorSideLeft.Control = CursorLongitude AnchorSideLeft.Side = asrCenter AnchorSideBottom.Control = CursorLongitude Left = 341 Height = 17 Top = 403 Width = 63 Anchors = [akLeft, akBottom] Caption = 'Longitude' ParentColor = False end object AppliedLabel: TLabel AnchorSideTop.Control = ActualLatitudeEdit AnchorSideTop.Side = asrCenter AnchorSideRight.Control = ActualLatitudeEdit Left = 123 Height = 17 Top = 489 Width = 42 Anchors = [akTop, akRight] BorderSpacing.Right = 3 Caption = 'Actual:' ParentColor = False end object ElevationLabel: TLabel AnchorSideLeft.Control = DesiredElevationEdit AnchorSideLeft.Side = asrCenter AnchorSideBottom.Control = DesiredElevationEdit Left = 469 Height = 17 Top = 433 Width = 55 Anchors = [akLeft, akBottom] Caption = 'Elevation' ParentColor = False end object DesiredElevationEdit: TLabeledEdit AnchorSideBottom.Control = ActualElevationEdit Left = 456 Height = 30 Top = 450 Width = 80 Alignment = taRightJustify Anchors = [akBottom] AutoSelect = False BorderSpacing.Bottom = 2 EditLabel.Height = 17 EditLabel.Width = 12 EditLabel.Caption = 'm' EditLabel.ParentColor = False LabelPosition = lpRight TabOrder = 2 OnChange = DesiredElevationEditChange end object ActualElevationEdit: TLabeledEdit AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 456 Height = 30 Top = 482 Width = 80 Alignment = taRightJustify Anchors = [akBottom] AutoSelect = False BorderSpacing.Bottom = 3 EditLabel.Height = 17 EditLabel.Width = 12 EditLabel.Caption = 'm' EditLabel.ParentColor = False LabelPosition = lpRight ReadOnly = True TabOrder = 3 TabStop = False end object CursorLatitude: TLabeledEdit AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = DesiredLatitudeEdit Left = 168 Height = 26 Top = 420 Width = 120 Alignment = taRightJustify Anchors = [akLeft, akRight, akBottom] AutoSize = False BorderSpacing.Bottom = 3 EditLabel.Height = 17 EditLabel.Width = 6 EditLabel.Caption = '°' EditLabel.ParentColor = False LabelPosition = lpRight ReadOnly = True TabOrder = 4 Visible = False end object CursorLongitude: TLabeledEdit AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = CursorLatitude AnchorSideBottom.Side = asrBottom Left = 312 Height = 26 Top = 420 Width = 120 Alignment = taRightJustify Anchors = [akBottom] AutoSize = False EditLabel.Height = 17 EditLabel.Width = 6 EditLabel.Caption = '°' EditLabel.ParentColor = False LabelPosition = lpRight ReadOnly = True TabOrder = 5 Visible = False end object DesiredLatitudeEdit: TLabeledEdit AnchorSideLeft.Control = Owner AnchorSideBottom.Control = ActualLatitudeEdit Left = 168 Height = 30 Top = 449 Width = 120 Alignment = taRightJustify Anchors = [akBottom] AutoSelect = False BorderSpacing.Bottom = 3 EditLabel.Height = 17 EditLabel.Width = 6 EditLabel.Caption = '°' EditLabel.ParentColor = False LabelPosition = lpRight TabOrder = 6 OnChange = DesiredLatitudeEditChange end object ActualLatitudeEdit: TLabeledEdit AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 168 Height = 30 Top = 482 Width = 120 Alignment = taRightJustify Anchors = [akBottom] AutoSelect = False BorderSpacing.Bottom = 3 EditLabel.Height = 17 EditLabel.Width = 6 EditLabel.Caption = '°' EditLabel.ParentColor = False LabelPosition = lpRight ReadOnly = True TabOrder = 7 TabStop = False end object ActualLongitudeEdit: TLabeledEdit AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 312 Height = 30 Top = 482 Width = 120 Alignment = taRightJustify Anchors = [akBottom] AutoSelect = False BorderSpacing.Bottom = 3 EditLabel.Height = 17 EditLabel.Width = 6 EditLabel.Caption = '°' EditLabel.ParentColor = False LabelPosition = lpRight ReadOnly = True TabOrder = 8 TabStop = False end object DesiredLongitudeEdit: TLabeledEdit AnchorSideLeft.Side = asrBottom AnchorSideBottom.Control = DesiredLatitudeEdit AnchorSideBottom.Side = asrBottom Left = 312 Height = 30 Top = 449 Width = 120 Alignment = taRightJustify Anchors = [akBottom] AutoSelect = False BorderSpacing.Left = 10 EditLabel.Height = 17 EditLabel.Width = 6 EditLabel.Caption = '°' EditLabel.ParentColor = False LabelPosition = lpRight TabOrder = 9 OnChange = DesiredLongitudeEditChange end object UsageInstructions: TLabel AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = CloseButton Left = 634 Height = 30 Top = 436 Width = 166 Anchors = [akRight, akBottom] BorderSpacing.Bottom = 21 Caption = 'Move mouse to desired position then click.'#10'Or type settings into Desired fields.'#10'Press Apply to store position settings.' Font.Height = -9 Font.Name = 'Sans' ParentColor = False ParentFont = False end end ./ssl_streamsec.pas0000644000175000017500000004152114576573021014526 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 001.000.006 | |==============================================================================| | Content: SSL support by StreamSecII | |==============================================================================| | Copyright (c)1999-2005, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2005. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | | Henrick Hellstrm | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@abstract(SSL plugin for StreamSecII or OpenStreamSecII) StreamSecII is native pascal library, you not need any external libraries! You can tune lot of StreamSecII properties by using your GlobalServer. If you not using your GlobalServer, then this plugin create own TSimpleTLSInternalServer instance for each TCP connection. Formore information about GlobalServer usage refer StreamSecII documentation. If you are not using key and certificate by GlobalServer, then you can use properties of this plugin instead, but this have limited features and @link(TCustomSSL.KeyPassword) not working properly yet! For handling keys and certificates you can use this properties: @link(TCustomSSL.CertCAFile), @link(TCustomSSL.CertCA), @link(TCustomSSL.TrustCertificateFile), @link(TCustomSSL.TrustCertificate), @link(TCustomSSL.PrivateKeyFile), @link(TCustomSSL.PrivateKey), @link(TCustomSSL.CertificateFile), @link(TCustomSSL.Certificate), @link(TCustomSSL.PFXFile). For usage of this properties and for possible formats of keys and certificates refer to StreamSecII documentation. } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} unit ssl_streamsec; interface uses SysUtils, Classes, blcksock, synsock, synautil, synacode, TlsInternalServer, TlsSynaSock, TlsConst, StreamSecII, Asn1, X509Base, SecUtils; type {:@exclude} TMyTLSSynSockSlave = class(TTLSSynSockSlave) protected procedure SetMyTLSServer(const Value: TCustomTLSInternalServer); function GetMyTLSServer: TCustomTLSInternalServer; published property MyTLSServer: TCustomTLSInternalServer read GetMyTLSServer write SetMyTLSServer; end; {:@abstract(class implementing StreamSecII SSL plugin.) Instance of this class will be created for each @link(TTCPBlockSocket). You not need to create instance of this class, all is done by Synapse itself!} TSSLStreamSec = class(TCustomSSL) protected FSlave: TMyTLSSynSockSlave; FIsServer: Boolean; FTLSServer: TCustomTLSInternalServer; FServerCreated: Boolean; function SSLCheck: Boolean; function Init(server:Boolean): Boolean; function DeInit: Boolean; function Prepare(server:Boolean): Boolean; procedure NotTrustEvent(Sender: TObject; Cert: TASN1Struct; var ExplicitTrust: Boolean); function X500StrToStr(const Prefix: string; const Value: TX500String): string; function X501NameToStr(const Value: TX501Name): string; function GetCert: PASN1Struct; public constructor Create(const Value: TTCPBlockSocket); override; destructor Destroy; override; {:See @inherited} function LibVersion: String; override; {:See @inherited} function LibName: String; override; {:See @inherited and @link(ssl_streamsec) for more details.} function Connect: boolean; override; {:See @inherited and @link(ssl_streamsec) for more details.} function Accept: boolean; override; {:See @inherited} function Shutdown: boolean; override; {:See @inherited} function BiShutdown: boolean; override; {:See @inherited} function SendBuffer(Buffer: TMemory; Len: Integer): Integer; override; {:See @inherited} function RecvBuffer(Buffer: TMemory; Len: Integer): Integer; override; {:See @inherited} function WaitingData: Integer; override; {:See @inherited} function GetSSLVersion: string; override; {:See @inherited} function GetPeerSubject: string; override; {:See @inherited} function GetPeerIssuer: string; override; {:See @inherited} function GetPeerName: string; override; {:See @inherited} function GetPeerFingerprint: string; override; {:See @inherited} function GetCertInfo: string; override; published {:TLS server for tuning of StreamSecII.} property TLSServer: TCustomTLSInternalServer read FTLSServer write FTLSServer; end; implementation {==============================================================================} procedure TMyTLSSynSockSlave.SetMyTLSServer(const Value: TCustomTLSInternalServer); begin TLSServer := Value; end; function TMyTLSSynSockSlave.GetMyTLSServer: TCustomTLSInternalServer; begin Result := TLSServer; end; {==============================================================================} constructor TSSLStreamSec.Create(const Value: TTCPBlockSocket); begin inherited Create(Value); FSlave := nil; FIsServer := False; FTLSServer := nil; end; destructor TSSLStreamSec.Destroy; begin DeInit; inherited Destroy; end; function TSSLStreamSec.LibVersion: String; begin Result := 'StreamSecII'; end; function TSSLStreamSec.LibName: String; begin Result := 'ssl_streamsec'; end; function TSSLStreamSec.SSLCheck: Boolean; begin Result := true; FLastErrorDesc := ''; if not Assigned(FSlave) then Exit; FLastError := FSlave.ErrorCode; if FLastError <> 0 then begin FLastErrorDesc := TlsConst.AlertMsg(FLastError); end; end; procedure TSSLStreamSec.NotTrustEvent(Sender: TObject; Cert: TASN1Struct; var ExplicitTrust: Boolean); begin ExplicitTrust := true; end; function TSSLStreamSec.Init(server:Boolean): Boolean; var st: TMemoryStream; pass: ISecretKey; ws: WideString; begin Result := False; ws := FKeyPassword; pass := TSecretKey.CreateBmpStr(PWideChar(ws), length(ws)); try FIsServer := Server; FSlave := TMyTLSSynSockSlave.CreateSocket(FSocket.Socket); if Assigned(FTLSServer) then FSlave.MyTLSServer := FTLSServer else if Assigned(TLSInternalServer.GlobalServer) then FSlave.MyTLSServer := TLSInternalServer.GlobalServer else begin FSlave.MyTLSServer := TSimpleTLSInternalServer.Create(nil); FServerCreated := True; end; if server then FSlave.MyTLSServer.ClientOrServer := cosServerSide else FSlave.MyTLSServer.ClientOrServer := cosClientSide; if not FVerifyCert then begin FSlave.MyTLSServer.OnCertNotTrusted := NotTrustEvent; end; FSlave.MyTLSServer.Options.VerifyServerName := []; FSlave.MyTLSServer.Options.Export40Bit := prAllowed; FSlave.MyTLSServer.Options.Export56Bit := prAllowed; FSlave.MyTLSServer.Options.RequestClientCertificate := False; FSlave.MyTLSServer.Options.RequireClientCertificate := False; if server and FVerifyCert then begin FSlave.MyTLSServer.Options.RequestClientCertificate := True; FSlave.MyTLSServer.Options.RequireClientCertificate := True; end; if FCertCAFile <> '' then FSlave.MyTLSServer.LoadRootCertsFromFile(CertCAFile); if FCertCA <> '' then begin st := TMemoryStream.Create; try WriteStrToStream(st, FCertCA); st.Seek(0, soFromBeginning); FSlave.MyTLSServer.LoadRootCertsFromStream(st); finally st.free; end; end; if FTrustCertificateFile <> '' then FSlave.MyTLSServer.LoadTrustedCertsFromFile(FTrustCertificateFile); if FTrustCertificate <> '' then begin st := TMemoryStream.Create; try WriteStrToStream(st, FTrustCertificate); st.Seek(0, soFromBeginning); FSlave.MyTLSServer.LoadTrustedCertsFromStream(st); finally st.free; end; end; if FPrivateKeyFile <> '' then FSlave.MyTLSServer.LoadPrivateKeyRingFromFile(FPrivateKeyFile, pass); // FSlave.MyTLSServer.PrivateKeyRing.LoadPrivateKeyFromFile(FPrivateKeyFile, pass); if FPrivateKey <> '' then begin st := TMemoryStream.Create; try WriteStrToStream(st, FPrivateKey); st.Seek(0, soFromBeginning); FSlave.MyTLSServer.LoadPrivateKeyRingFromStream(st, pass); finally st.free; end; end; if FCertificateFile <> '' then FSlave.MyTLSServer.LoadMyCertsFromFile(FCertificateFile); if FCertificate <> '' then begin st := TMemoryStream.Create; try WriteStrToStream(st, FCertificate); st.Seek(0, soFromBeginning); FSlave.MyTLSServer.LoadMyCertsFromStream(st); finally st.free; end; end; if FPFXfile <> '' then FSlave.MyTLSServer.ImportFromPFX(FPFXfile, pass); if server and FServerCreated then begin FSlave.MyTLSServer.Options.BulkCipherAES128 := prPrefer; FSlave.MyTLSServer.Options.BulkCipherAES256 := prAllowed; FSlave.MyTLSServer.Options.EphemeralECDHKeySize := ecs256; FSlave.MyTLSServer.Options.SignatureRSA := prPrefer; FSlave.MyTLSServer.Options.KeyAgreementRSA := prAllowed; FSlave.MyTLSServer.Options.KeyAgreementECDHE := prAllowed; FSlave.MyTLSServer.Options.KeyAgreementDHE := prPrefer; FSlave.MyTLSServer.TLSSetupServer; end; Result := true; finally pass := nil; end; end; function TSSLStreamSec.DeInit: Boolean; var obj: TObject; begin Result := True; if assigned(FSlave) then begin FSlave.Close; if FServerCreated then obj := FSlave.TLSServer else obj := nil; FSlave.Free; obj.Free; FSlave := nil; end; FSSLEnabled := false; end; function TSSLStreamSec.Prepare(server:Boolean): Boolean; begin Result := false; DeInit; if Init(server) then Result := true else DeInit; end; function TSSLStreamSec.Connect: boolean; begin Result := False; if FSocket.Socket = INVALID_SOCKET then Exit; if Prepare(false) then begin FSlave.Open; SSLCheck; if FLastError <> 0 then Exit; FSSLEnabled := True; Result := True; end; end; function TSSLStreamSec.Accept: boolean; begin Result := False; if FSocket.Socket = INVALID_SOCKET then Exit; if Prepare(true) then begin FSlave.DoConnect; SSLCheck; if FLastError <> 0 then Exit; FSSLEnabled := True; Result := True; end; end; function TSSLStreamSec.Shutdown: boolean; begin Result := BiShutdown; end; function TSSLStreamSec.BiShutdown: boolean; begin DeInit; Result := True; end; function TSSLStreamSec.SendBuffer(Buffer: TMemory; Len: Integer): Integer; var l: integer; begin l := len; FSlave.SendBuf(Buffer^, l, true); Result := l; SSLCheck; end; function TSSLStreamSec.RecvBuffer(Buffer: TMemory; Len: Integer): Integer; var l: integer; begin l := Len; Result := FSlave.ReceiveBuf(Buffer^, l); SSLCheck; end; function TSSLStreamSec.WaitingData: Integer; begin Result := 0; while FSlave.Connected do begin Result := FSlave.ReceiveLength; if Result > 0 then Break; Sleep(1); end; end; function TSSLStreamSec.GetSSLVersion: string; begin Result := 'SSLv3 or TLSv1'; end; function TSSLStreamSec.GetCert: PASN1Struct; begin if FIsServer then Result := FSlave.GetClientCert else Result := FSlave.GetServerCert; end; function TSSLStreamSec.GetPeerSubject: string; var XName: TX501Name; Cert: PASN1Struct; begin Result := ''; Cert := GetCert; if Assigned(cert) then begin ExtractSubject(Cert^,XName, false); Result := X501NameToStr(XName); end; end; function TSSLStreamSec.GetPeerName: string; var XName: TX501Name; Cert: PASN1Struct; begin Result := ''; Cert := GetCert; if Assigned(cert) then begin ExtractSubject(Cert^,XName, false); Result := XName.commonName.Str; end; end; function TSSLStreamSec.GetPeerIssuer: string; var XName: TX501Name; Cert: PASN1Struct; begin Result := ''; Cert := GetCert; if Assigned(cert) then begin ExtractIssuer(Cert^, XName, false); Result := X501NameToStr(XName); end; end; function TSSLStreamSec.GetPeerFingerprint: string; var Cert: PASN1Struct; begin Result := ''; Cert := GetCert; if Assigned(cert) then Result := MD5(Cert.ContentAsOctetString); end; function TSSLStreamSec.GetCertInfo: string; var Cert: PASN1Struct; l: Tstringlist; begin Result := ''; Cert := GetCert; if Assigned(cert) then begin l := TStringList.Create; try Asn1.RenderAsText(cert^, l, true, true, true, 2); Result := l.Text; finally l.free; end; end; end; function TSSLStreamSec.X500StrToStr(const Prefix: string; const Value: TX500String): string; begin if Value.Str = '' then Result := '' else Result := '/' + Prefix + '=' + Value.Str; end; function TSSLStreamSec.X501NameToStr(const Value: TX501Name): string; begin Result := X500StrToStr('CN',Value.commonName) + X500StrToStr('C',Value.countryName) + X500StrToStr('L',Value.localityName) + X500StrToStr('ST',Value.stateOrProvinceName) + X500StrToStr('O',Value.organizationName) + X500StrToStr('OU',Value.organizationalUnitName) + X500StrToStr('T',Value.title) + X500StrToStr('N',Value.name) + X500StrToStr('G',Value.givenName) + X500StrToStr('I',Value.initials) + X500StrToStr('SN',Value.surname) + X500StrToStr('GQ',Value.generationQualifier) + X500StrToStr('DNQ',Value.dnQualifier) + X500StrToStr('E',Value.emailAddress); end; {==============================================================================} initialization SSLImplementation := TSSLStreamSec; finalization end. ./vector.lrs0000644000175000017500000064503614576573022013212 0ustar anthonyanthony{ This is an automatically generated lazarus resource file } LazarusResources.Add('TVectorForm','FORMDATA',[ 'TPF0'#11'TVectorForm'#10'VectorForm'#4'Left'#3#128#7#6'Height'#3'k'#2#3'Top' +#2'x'#5'Width'#3#3#5#7'Anchors'#11#0#11'BorderStyle'#7#8'bsDialog'#7'Caption' +#6#6'Vector'#12'ClientHeight'#3'k'#2#11'ClientWidth'#3#3#5#9'Icon.Data'#10'B' +#8#1#0'>'#8#1#0#0#0#1#0#1#0#128#128#0#0#1#0' '#0'('#8#1#0#22#0#0#0'('#0#0#0 +#128#0#0#0#0#1#0#0#1#0' '#0#0#0#0#0#0#0#1#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#2#0#0#0#3 +#0#0#0#3#0#0#0#3#0#0#0#2#0#0#0#3#0#0#0#2#0#0#0#1#0#0#0#1#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#3#0#0#0#6#0#0#0#10#0#0#0#13#0#0#0#17#0 +#0#0#22#0#0#0#26#0#0#0#30#0#0#0'!'#0#0#0'#'#0#0#0'$'#0#0#0'#'#0#0#0'"'#0#0#0 +'"'#0#0#0'!'#0#0#0#30#0#0#0#28#0#0#0#24#0#0#0#21#0#0#0#17#0#0#0#14#0#0#0#11#0 +#0#0#7#0#0#0#4#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#3#0#0#0#5#0#0#0#9#0#0#0 +#14#0#0#0#21#0#0#0#30#0#0#0''''#0#0#0'1'#0#0#0';'#0#0#0'D'#0#0#0'M'#0#0#0'U' +#0#0#0'['#0#0#0'a'#0#0#0'd'#0#0#0'e'#0#0#0'e'#0#0#0'd'#0#0#0'b'#0#0#0'`'#0#0 +#0']'#0#0#0'X'#0#0#0'R'#0#0#0'K'#0#0#0'D'#0#0#0'='#0#0#0'5'#0#0#0'+'#0#0#0'!' +#0#0#0#25#0#0#0#17#0#0#0#11#0#0#0#7#0#0#0#4#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#1#0#0#0#5#0#0#0#11#0#0#0#21#0#0#0'!'#0#0#0'.'#0#0#0'>'#0#0#0 +'N'#0#0#0'^'#0#0#0'm'#0#0#0'z'#0#0#0#138#0#0#0#148#0#0#0#158#0#0#0#168#0#0#0 +#173#0#0#0#179#0#0#0#182#0#0#0#182#0#0#0#182#0#0#0#183#0#0#0#181#0#0#0#179#0 +#0#0#176#0#0#0#169#0#0#0#166#0#0#0#158#0#0#0#149#0#0#0#142#0#0#0#130#0#0#0's' +#0#0#0'd'#0#0#0'T'#0#0#0'C'#0#0#0'4'#0#0#0'('#0#0#0#28#0#0#0#17#0#0#0#9#0#0#0 +#4#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#2#0#0#0#9#0#0#0#20#0#0#0'$'#0#0#0'8'#0#0#0'N'#0#0#0'c'#0#0#0'z' +#0#0#0#144#0#0#0#160#0#0#0#176#0#0#0#189#0#0#0#199#0#0#0#209#0#0#0#215#0#0#0 +#221#0#0#0#226#0#0#0#228#0#0#0#231#0#0#0#233#0#0#0#233#0#0#0#232#0#0#0#234#0 +#0#0#231#0#0#0#231#0#0#0#231#0#0#0#225#0#0#0#227#0#0#0#221#0#0#0#216#0#0#0 +#213#0#0#0#203#0#0#0#195#0#0#0#183#0#0#0#166#0#0#0#149#0#0#0#130#0#0#0'p'#0#0 +#0'\'#0#0#0'G'#0#0#0'2'#0#0#0'!'#0#0#0#19#0#0#0#9#0#0#0#2#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#2#0#0#0#8#0#0#0#17#0#0#0' '#0#0#0'4'#0#0#0'M'#0#0#0'g'#0#0 +#0#129#0#0#0#155#0#0#0#176#0#0#0#193#0#0#0#211#0#0#0#219#0#0#0#229#0#0#0#236 +#0#0#0#237#0#0#0#243#0#0#0#245#0#0#0#247#0#0#0#249#0#0#0#250#0#0#0#251#0#0#0 +#252#0#0#0#252#0#0#0#251#0#0#0#253#0#0#0#252#0#0#0#252#0#0#0#252#0#0#0#249#0 +#0#0#250#0#0#0#248#0#0#0#246#0#0#0#246#0#0#0#240#0#0#0#239#0#0#0#233#0#0#0 +#222#0#0#0#213#0#0#0#201#0#0#0#186#0#0#0#170#0#0#0#149#0#0#0'{'#0#0#0'c'#0#0 +#0'I'#0#0#0'2'#0#0#0#31#0#0#0#17#0#0#0#7#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3#0#0#0#11#0#0#0#24#0#0#0'+'#0 +#0#0'C'#0#0#0']'#0#0#0'y'#0#0#0#151#0#0#0#177#0#0#0#198#0#0#0#219#0#0#0#231#0 +#0#0#237#0#0#0#247#0#0#0#249#0#0#0#252#0#0#0#254#0#0#0#251#0#0#1#254#0#0#1 +#254#0#0#1#253#1#1#2#254#0#1#3#255#1#1#3#255#1#1#3#255#1#1#3#255#1#2#4#255#0 +#1#4#255#1#1#4#255#1#1#3#255#0#1#2#255#0#1#3#255#0#0#2#255#0#0#1#254#0#0#1 +#255#0#0#1#255#0#0#1#253#0#0#0#254#0#0#0#252#0#0#0#249#0#0#0#247#0#0#0#242#0 +#0#0#237#0#0#0#228#0#0#0#213#0#0#0#195#0#0#0#173#0#0#0#147#0#0#0'w'#0#0#0'\' +#0#0#0'A'#0#0#0')'#0#0#0#22#0#0#0#9#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#3#0#0#0#10#0#0#0#26#0#0#0'0'#0#0#0'K'#0#0#0'k'#0#0#0#141#0#0#0#170#0 +#0#0#195#0#0#0#215#0#0#0#232#0#0#0#240#0#0#0#249#0#0#0#253#0#0#0#251#0#0#0 +#255#0#0#1#254#0#0#2#254#0#0#2#255#1#1#3#255#1#1#4#255#1#1#5#255#2#2#6#255#2 +#3#8#255#2#4#9#255#3#4#11#255#4#5#13#255#3#6#14#255#2#7#13#255#3#6#13#255#3#6 +#13#255#3#5#12#255#3#4#10#255#3#5#10#255#3#3#8#255#3#3#7#255#2#2#6#255#1#2#5 +#255#0#1#4#255#0#1#2#255#0#0#2#254#0#0#1#254#0#0#1#255#0#0#1#253#0#0#0#254#0 +#0#0#252#0#0#0#246#0#0#0#241#0#0#0#229#0#0#0#214#0#0#0#194#0#0#0#169#0#0#0 ,#137#0#0#0'i'#0#0#0'I'#0#0#0','#0#0#0#22#0#0#0#8#0#0#0#2#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#8 +#0#0#0#24#0#0#0'/'#0#0#0'O'#0#0#0't'#0#0#0#153#0#0#0#185#0#0#0#209#0#0#0#228 +#0#0#0#237#0#0#0#243#0#0#0#251#0#1#1#253#0#1#3#254#0#2#4#255#1#3#6#255#1#2#4 +#255#2#2#5#255#3#2#6#255#3#3#8#255#3#3#8#255#4#4#10#255#5#5#12#255#6#6#16#255 +#6#6#19#255#6#7#20#255#6#8#23#255#8#13#30#255#7#15#31#255#5#12#26#255#7#15#28 +#255#6#14#29#255#7#12#29#255#8#10#27#255#7#10#24#255#7#9#20#255#6#7#16#255#6 +#6#15#255#5#6#15#255#4#5#12#255#3#4#9#255#2#3#7#255#2#2#6#255#2#3#6#255#1#3#6 +#255#0#1#4#255#0#1#2#255#0#1#1#254#0#0#0#253#0#0#0#247#0#0#0#243#0#0#0#238#0 +#0#0#225#0#0#0#207#0#0#0#183#0#0#0#149#0#0#0'o'#0#0#0'K'#0#0#0','#0#0#0#21#0 +#0#0#6#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#5#0#0#0#19#0#0#0'+'#0#0#0'L'#0#0#0't'#0#0#0#155#0#0#0#187#0#0#0#213#0#0#0 +#232#0#0#0#241#0#0#0#249#0#0#1#252#0#1#2#254#0#2#5#255#0#4#8#255#0#7#12#255#2 +#10#20#255#4#12#23#255#4#6#13#255#5#5#13#255#7#6#14#255#7#7#16#255#7#7#17#255 +#10#5#18#255#10#5#17#255#10#9#23#255#10#14' '#255#8#16'%'#255#10#19')'#255#9 +#19')'#255#9#18'('#255#11#20'+'#255#11#20','#255#10#22'.'#255#9#18'*'#255#9 +#13'#'#255#8#14'!'#255#8#10#28#255#10#10#29#255#10#11#29#255#8#10#25#255#8#9 +#21#255#6#8#20#255#6#6#18#255#5#5#16#255#4#7#17#255#4#7#17#255#2#5#13#255#1#4 +#9#255#1#3#6#255#1#1#3#255#1#0#1#254#0#0#0#253#0#0#0#251#0#0#0#246#0#0#0#243 +#0#0#0#230#0#0#0#210#0#0#0#183#0#0#0#149#0#0#0'o'#0#0#0'J'#0#0#0'+'#0#0#0#19 +#0#0#0#5#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3#0#0#0#14#0#0#0'$'#0#0#0'E'#0 +#0#0'k'#0#0#0#147#0#0#0#184#0#0#0#215#0#0#0#233#0#0#0#244#0#0#0#252#0#1#2#253 +#0#2#4#254#0#4#8#255#1#6#12#255#2#9#17#255#3#16#28#255#2#16#31#255#4#14#29 +#255#7#11#25#255#8#6#20#255#8#6#19#255#9#7#22#255#10#9#25#255#10#8#24#255#13 +#5#22#255#12#5#21#255#11#10#27#255#12#17'&'#255#11#21'/'#255#12#24'2'#255#10 +#21'-'#255#9#20'-'#255#11#24'4'#255#13#23'4'#255#13#25'5'#255#11#21'0'#255#10 +#16')'#255#10#17'('#255#9#12'"'#255#11#13'%'#255#11#15''''#255#10#14'$'#255 +#10#11'"'#255#10#10#31#255#9#10#28#255#9#11#28#255#10#11#28#255#9#12#26#255#8 +#15#29#255#7#14#28#255#4#9#20#255#2#5#13#255#2#4#8#255#2#2#4#255#1#1#2#254#0 +#1#2#253#0#0#0#254#0#0#0#250#0#0#0#243#0#0#0#231#0#0#0#209#0#0#0#181#0#0#0 +#146#0#0#0'j'#0#0#0'A'#0#0#0'"'#0#0#0#13#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#7#0#0#0#24#0#0 +#0'5'#0#0#0'^'#0#0#0#136#0#0#0#177#0#0#0#211#0#0#0#231#0#0#0#247#0#0#1#252#0 +#1#2#253#0#3#5#255#0#5#9#255#1#9#17#255#2#13#25#255#4#16#30#255#6#18'#'#255#6 +#27'3'#255#7#26'2'#255#8#15'$'#255#8#5#20#255#12#6#23#255#12#7#25#255#11#9#30 +#255#11#10'!'#255#12#8#29#255#13#7#26#255#11#8#26#255#11#12#30#255#12#18'''' +#255#12#20'.'#255#12#23'1'#255#11#23'0'#255#9#23'1'#255#9#26'6'#255#13#27'7' +#255#13#25'5'#255#12#22'1'#255#12#21'/'#255#13#20'0'#255#12#17'*'#255#11#17 +'*'#255#11#18'+'#255#13#18'+'#255#11#14')'#255#12#10'$'#255#12#13'#'#255#11 +#16'%'#255#13#14'$'#255#12#15'#'#255#13#24'-'#255#12#23'.'#255#8#14'"'#255#6 +#13#29#255#5#10#21#255#4#7#15#255#2#5#11#255#1#5#9#255#1#3#5#255#0#1#3#254#0 ,#0#1#254#0#0#0#252#0#0#0#243#0#0#0#232#0#0#0#209#0#0#0#174#0#0#0#132#0#0#0'Y' +#0#0#0'2'#0#0#0#21#0#0#0#4#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#2#0#0#0#11#0#0#0'#'#0#0#0'H'#0#0#0't'#0#0#0#166#0#0#0#202#0 +#0#0#228#0#0#0#244#0#0#0#250#0#1#2#254#0#1#4#255#1#4#8#255#2#9#16#255#3#13#24 +#255#5#21''''#255#7#25'/'#255#9#26'3'#255#10#26'9'#255#11#31'>'#255#14#29':' +#255#13#18'*'#255#10#5#25#255#12#9#26#255#14#11#29#255#15#12'$'#255#14#12'&' +#255#12#10'"'#255#12#12' '#255#10#11#31#255#12#14'#'#255#15#18')'#255#11#18 +')'#255#11#23'/'#255#12#25'4'#255#12#27'7'#255#10#29'7'#255#12#30'9'#255#13 +#25'5'#255#13#22'3'#255#13#24'5'#255#15#26'8'#255#12#23'3'#255#12#21'/'#255 +#14#20'-'#255#16#21'+'#255#12#18'$'#255#13#11'"'#255#13#13'&'#255#13#16'+' +#255#12#15')'#255#10#18'+'#255#13#26'3'#255#13#24'1'#255#9#17'('#255#12#22'.' +#255#8#17'$'#255#7#12#29#255#5#11#25#255#3#11#21#255#3#9#18#255#2#6#12#255#1 +#3#6#255#0#1#2#255#0#0#1#251#0#0#0#251#0#0#0#242#0#0#0#225#0#0#0#200#0#0#0 +#159#0#0#0'o'#0#0#0'A'#0#0#0#30#0#0#0#9#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#5#0#0#0#20#0#0#0'2'#0#0#0']'#0#0#0#141#0#0#0#185#0#0#0#219#0#0#0 +#239#0#0#0#249#0#0#1#253#0#1#2#255#0#3#6#255#1#7#14#255#3#14#26#255#5#21'''' +#255#8#23'/'#255#8#22'/'#255#8#21'.'#255#10#27'7'#255#14')M'#255#12'"C'#255 +#10#19'+'#255#12#10#28#255#14#10#27#255#12#10#26#255#12#10#28#255#12#11#31 +#255#12#12' '#255#12#12'!'#255#13#13'$'#255#11#12#31#255#11#16'!'#255#13#21 +')'#255#12#21'+'#255#12#22'.'#255#13#22'0'#255#14#23'2'#255#12#26'5'#255#11 +#25'4'#255#11#24'5'#255#11#24'6'#255#11#25'7'#255#12#25'8'#255#10#23'5'#255 +#11#23'3'#255#12#20'-'#255#13#17'&'#255#13#17'%'#255#14#16'&'#255#13#13'%' +#255#11#13'$'#255#12#16'&'#255#11#16')'#255#12#16')'#255#11#16'*'#255#10#19 +'1'#255#12#25'9'#255#12#24'4'#255#9#20'-'#255#7#17'&'#255#7#16'#'#255#5#19'&' +#255#4#15#30#255#3#8#19#255#1#4#10#255#1#2#5#255#0#0#1#253#0#0#0#251#0#0#0 +#247#0#0#0#238#0#0#0#214#0#0#0#180#0#0#0#134#0#0#0'U'#0#0#0'+'#0#0#0#16#0#0#0 +#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#8#0#0#0#30#0#0#0'C'#0#0#0'q'#0#0#0#161#0#0#0#202 +#0#0#0#229#0#0#0#243#0#0#0#252#0#0#1#255#1#1#4#255#2#3#8#255#3#9#19#255#7#20 +'%'#255#8#26'0'#255#7#22'/'#255#9#16''''#255#12#16'('#255#12#14'&'#255#12#15 +'('#255#17#21'2'#255#11#17','#255#11#12'$'#255#13#11#30#255#13#11#27#255#11 +#10#26#255#13#12#29#255#13#11#30#255#12#13' '#255#12#17'&'#255#11#13'"'#255 +#12#13' '#255#13#15'!'#255#13#17'$'#255#11#16'&'#255#13#17')'#255#13#16'''' +#255#14#16'&'#255#14#19'+'#255#12#21')'#255#13#23'/'#255#13#24'5'#255#13#24 +'8'#255#12#24'8'#255#13#24'8'#255#15#28'9'#255#13#27'5'#255#10#20'-'#255#11 +#22'2'#255#13#21'.'#255#13#16'%'#255#13#14'!'#255#15#16'('#255#12#15'*'#255 +#15#18'+'#255#15#21'.'#255#12#24'5'#255#16#28':'#255#14#28'9'#255#10#25'4' +#255#9#25'1'#255#11#27'2'#255#9#24'/'#255#8#21','#255#6#17'$'#255#3#12#26#255 +#2#9#18#255#2#5#9#255#0#1#3#255#0#0#0#254#0#0#0#251#0#0#0#241#0#0#0#226#0#0#0 +#196#0#0#0#152#0#0#0'g'#0#0#0'8'#0#0#0#23#0#0#0#5#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#11#0#0#0'$'#0#0#0 +'N'#0#0#0#130#0#0#0#179#0#0#0#215#0#0#0#238#0#0#0#250#0#0#1#252#1#1#3#255#2#2 +#5#255#3#3#10#255#5#7#17#255#8#17'#'#255#10#28'6'#255#12'"@'#255#13#29';'#255 +#11#11'!'#255#14#11'!'#255#14#11'!'#255#14#8#31#255#16#7#30#255#12#8#30#255 +#13#10'"'#255#14#11'"'#255#12#11#28#255#12#10#27#255#15#12#29#255#15#14' ' +#255#14#16'$'#255#14#16''''#255#11#13'!'#255#14#14'"'#255#15#14'#'#255#12#14 ,'"'#255#12#13'$'#255#14#15''''#255#14#13'"'#255#13#13'!'#255#15#16'&'#255#13 +#17'&'#255#14#20'*'#255#14#24'3'#255#13#26'9'#255#13#24'7'#255#17#26':'#255 +#16#30';'#255#13#29'8'#255#11#25'4'#255#12#25':'#255#12#23'3'#255#13#19'(' +#255#14#17'$'#255#15#18'+'#255#14#18'.'#255#16#20'-'#255#16#21','#255#14#22 +'.'#255#15#24'3'#255#15#28'8'#255#13#30':'#255#12' ;'#255#12'!;'#255#11#25'4' +#255#11#26'6'#255#9#24'2'#255#7#20'('#255#7#19'"'#255#5#13#24#255#3#7#13#255 +#1#2#5#255#0#0#2#254#0#0#0#252#0#0#0#248#0#0#0#235#0#0#0#209#0#0#0#168#0#0#0 +'t'#0#0#0'D'#0#0#0#31#0#0#0#9#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#2#0#0#0#14#0#0#0'+'#0#0#0'W'#0#0#0#140#0#0#0#191#0#0#0#228#0#0 +#0#244#0#0#0#251#0#0#1#255#1#1#4#255#4#4#10#255#5#5#14#255#7#6#18#255#9#11#28 +#255#13#22','#255#12#27'6'#255#14'!?'#255#19'#B'#255#14#13'$'#255#14#11' ' +#255#14#11'!'#255#15#10'"'#255#15#9'"'#255#14#12'!'#255#14#11'"'#255#14#10'"' +#255#15#11' '#255#15#10#30#255#17#11#29#255#16#16'!'#255#16#18'&'#255#16#13 +'$'#255#14#14'#'#255#16#14'$'#255#15#15'$'#255#12#15'$'#255#14#15'&'#255#15 +#16'%'#255#14#14'#'#255#14#14'$'#255#16#17')'#255#13#16'*'#255#14#16'*'#255 +#14#23'1'#255#13#28'8'#255#14#23'3'#255#16#27':'#255#13#26'7'#255#11#25'4' +#255#13#26'5'#255#13#24'5'#255#12#22'/'#255#12#20'+'#255#12#20')'#255#12#20 +','#255#14#24'0'#255#13#19'*'#255#13#15'%'#255#14#15'$'#255#12#16')'#255#16 +#24'3'#255#16#31'='#255#14'#B'#255#12'"@'#255#12#25'7'#255#12#29'<'#255#12#29 +':'#255#11#25'1'#255#12#27'1'#255#10#22'+'#255#6#15#30#255#4#8#16#255#2#2#7 +#255#0#1#2#255#0#0#0#254#0#0#0#251#0#0#0#242#0#0#0#218#0#0#0#179#0#0#0#130#0 +#0#0'O'#0#0#0'$'#0#0#0#10#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0 +#0#15#0#0#0'/'#0#0#0'`'#0#0#0#152#0#0#0#201#0#0#0#230#0#0#0#246#0#0#0#253#1#1 +#2#254#2#3#7#255#2#4#11#255#7#9#20#255#10#11#24#255#12#11#27#255#15#15'%'#255 +#17#15'&'#255#18#16''''#255#16#15''''#255#13#12'%'#255#13#11#30#255#14#11#28 +#255#16#11' '#255#17#11'"'#255#14#11'!'#255#13#12' '#255#15#11'!'#255#17#12 +'#'#255#17#13'$'#255#15#12'#'#255#15#15' '#255#14#13#30#255#14#13'!'#255#18 +#18')'#255#14#18'&'#255#15#17'"'#255#15#16'#'#255#15#15''''#255#13#13'"'#255 +#14#12#30#255#16#13' '#255#16#15'$'#255#14#17''''#255#14#19')'#255#15#16')' +#255#16#17'.'#255#15#21'3'#255#11#21'1'#255#11#21'1'#255#12#22'2'#255#12#23 +'1'#255#12#22'-'#255#12#21'&'#255#11#17'"'#255#11#17'$'#255#11#18'('#255#11 +#19','#255#12#21'0'#255#13#22'0'#255#15#20','#255#16#17'('#255#15#18')'#255 +#15#17'*'#255#15#24'5'#255#13'"A'#255#12'&D'#255#15#26'8'#255#15#31'>'#255#13 +' <'#255#11#28'6'#255#14#30';'#255#12#31';'#255#10#23'.'#255#8#14#30#255#5#8 +#18#255#2#4#9#255#0#2#3#255#0#0#1#255#0#0#0#252#0#0#0#241#0#0#0#227#0#0#0#193 +#0#0#0#142#0#0#0'U'#0#0#0'&'#0#0#0#10#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#17 +#0#0#0'3'#0#0#0'g'#0#0#0#158#0#0#0#205#0#0#0#235#0#0#0#248#0#0#1#254#1#2#4 +#255#3#4#8#255#4#5#13#255#7#10#22#255#10#10#27#255#12#9#28#255#13#10#31#255 +#15#15'&'#255#18#15'&'#255#16#13'$'#255#14#11'!'#255#13#10#30#255#13#9#27#255 +#14#10#28#255#15#11#30#255#14#11#31#255#11#12#31#255#13#12' '#255#13#11#30 +#255#14#12#31#255#15#15'$'#255#15#14'('#255#15#14'"'#255#14#14#31#255#13#13 +'!'#255#13#13'&'#255#15#18')'#255#14#19''''#255#13#15'%'#255#13#12'%'#255#12 +#11'!'#255#15#10' '#255#14#11'!'#255#13#12'#'#255#14#14'$'#255#14#15'#'#255 +#15#15'%'#255#16#20'/'#255#15#26'7'#255#11#26'4'#255#12#26'5'#255#11#23'4' +#255#10#22'2'#255#11#23'/'#255#13#23'+'#255#11#19'('#255#12#21'.'#255#14#24 +'3'#255#12#21'/'#255#13#21'1'#255#12#24'5'#255#12#24'3'#255#14#19','#255#14 +#16'%'#255#15#14'&'#255#12#14''''#255#12#21'/'#255#16'$>'#255#13#22'/'#255#13 +#24'3'#255#14#28'7'#255#14#25'3'#255#11#17'*'#255#13#25'3'#255#12#22'-'#255#9 +#14' '#255#8#10#24#255#6#7#15#255#2#3#7#255#1#1#3#255#0#1#1#255#0#0#0#251#0#0 +#0#248#0#0#0#230#0#0#0#197#0#0#0#148#0#0#0'Z'#0#0#0'*'#0#0#0#13#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#1#0#0#0#18#0#0#0'4'#0#0#0'g'#0#0#0#163#0#0#0#209#0#0#0#237#0#0#0#250#0#0#1 +#254#0#1#4#255#2#5#10#255#6#9#18#255#10#13#28#255#14#20')'#255#16#17')'#255 +#13#12'$'#255#12#10'!'#255#15#13'"'#255#15#12'!'#255#14#12'!'#255#14#13'!' +#255#14#12#31#255#13#9#29#255#13#9#29#255#14#10#28#255#14#12#29#255#12#13' ' +#255#13#13'#'#255#13#12' '#255#15#12#31#255#16#14'$'#255#15#14')'#255#14#12 +'%'#255#15#14'%'#255#14#15'&'#255#12#12'%'#255#14#17'('#255#14#20'*'#255#15 +#19'+'#255#14#15'*'#255#12#13'$'#255#14#13'#'#255#14#15'&'#255#13#16''''#255 +#13#15'&'#255#15#16'('#255#14#15''''#255#13#19'-'#255#13#24'5'#255#13#27'6' +#255#11#23'3'#255#12#23'5'#255#13#24'5'#255#14#25'1'#255#15#25'2'#255#12#21 +'/'#255#13#23'1'#255#14#25'4'#255#13#21'/'#255#14#21'/'#255#13#22'1'#255#13 +#23'1'#255#14#21','#255#12#16'%'#255#15#16''''#255#14#14'&'#255#13#17'('#255 +#16#27'1'#255#13#18'*'#255#13#18'+'#255#13#20'-'#255#12#18'*'#255#12#13'&' +#255#15#19'.'#255#13#19'+'#255#11#16'#'#255#10#12#29#255#9#9#23#255#6#6#15 +#255#3#3#8#255#1#1#4#255#0#0#1#255#0#0#0#254#0#0#0#248#0#0#0#232#0#0#0#201#0 +#0#0#150#0#0#0']'#0#0#0'-'#0#0#0#13#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#16#0#0#0'4'#0#0#0'h'#0#0#0#162#0#0#0 +#211#0#0#0#240#0#0#1#252#0#1#3#254#1#4#8#255#5#12#21#255#6#12#25#255#10#12#28 +#255#15#17'%'#255#16#21'/'#255#18#19'.'#255#15#13'('#255#12#9'!'#255#13#10#30 +#255#13#10#29#255#14#14#31#255#14#15'!'#255#13#12#31#255#13#10#29#255#13#9#29 +#255#13#10#28#255#13#12#29#255#14#13#31#255#13#13'%'#255#14#13'#'#255#16#13 +'"'#255#17#12'#'#255#14#13'%'#255#13#12'%'#255#14#13''''#255#15#14'&'#255#12 +#14'!'#255#13#16'#'#255#15#21')'#255#16#22'.'#255#15#19','#255#13#16''''#255 +#14#17'&'#255#15#19'*'#255#14#20'+'#255#11#18''''#255#15#18'-'#255#12#15'''' +#255#10#15''''#255#11#19'-'#255#14#23'0'#255#11#20'1'#255#13#24'6'#255#15#27 +'6'#255#15#26'3'#255#15#26'6'#255#14#21'1'#255#13#22'0'#255#13#23'/'#255#13 +#19'-'#255#15#21'.'#255#14#20'-'#255#13#19','#255#14#19'*'#255#13#17''''#255 +#15#18'+'#255#16#18','#255#15#18'+'#255#13#18'('#255#15#16'('#255#15#15'%' +#255#12#13'#'#255#11#12'#'#255#15#14'&'#255#16#15')'#255#14#16''''#255#12#15 +'#'#255#12#13#31#255#11#11#30#255#11#9#25#255#8#7#18#255#4#4#11#255#2#2#7#255 +#1#1#3#254#0#0#1#254#0#0#0#250#0#0#0#234#0#0#0#203#0#0#0#152#0#0#0']'#0#0#0 +'*'#0#0#0#11#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0 +#0#13#0#0#0'0'#0#0#0'f'#0#0#0#163#0#0#0#214#0#0#0#237#0#0#0#250#0#1#2#255#1#4 +#7#255#4#11#19#255#13#29'0'#255#14#23'.'#255#12#12'#'#255#13#11'"'#255#12#10 +#31#255#14#12'"'#255#16#10'#'#255#15#7' '#255#12#7#28#255#14#11#28#255#14#15 +#31#255#13#14#31#255#12#10#28#255#13#11#27#255#15#10#29#255#14#10#29#255#12 +#10#29#255#12#12#29#255#14#13'#'#255#15#15'$'#255#15#15'#'#255#16#12'"'#255 +#13#12'!'#255#12#13'"'#255#12#13'#'#255#12#12' '#255#11#12#26#255#13#15' ' +#255#14#20''''#255#13#21'('#255#11#19'&'#255#13#17'&'#255#17#19')'#255#16#19 +','#255#13#17'*'#255#11#16'&'#255#11#17'('#255#9#12'"'#255#10#12' '#255#12#15 +'#'#255#12#17'$'#255#15#23'3'#255#14#25'6'#255#12#26'5'#255#12#26'5'#255#14 +#28'7'#255#15#20'1'#255#14#18'.'#255#13#21'.'#255#13#19'-'#255#14#22'2'#255 +#13#21'/'#255#12#17'*'#255#12#14'('#255#16#17')'#255#14#16','#255#16#17'/' +#255#16#18'.'#255#11#16'('#255#16#16'%'#255#17#13#31#255#15#12#30#255#13#13 +' '#255#14#11#30#255#16#13'"'#255#14#11#31#255#12#10#29#255#14#10#31#255#13 +#11'"'#255#13#12'"'#255#12#12#28#255#8#10#21#255#6#4#15#255#4#3#8#255#1#1#3 +#255#0#0#0#253#0#0#0#248#0#0#0#238#0#0#0#204#0#0#0#150#0#0#0'Y'#0#0#0''''#0#0 +#0#10#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#11#0#0#0'+'#0#0#0'b'#0 +#0#0#158#0#0#0#209#0#0#0#239#0#0#0#250#0#1#2#254#0#2#4#255#2#4#10#255#4#8#20 +#255#10#20'('#255#15#23'/'#255#16#19'*'#255#12#11' '#255#12#9#29#255#15#13'!' +#255#15#12'!'#255#14#9#28#255#13#10#27#255#12#11#26#255#13#13#29#255#13#13#30 +#255#13#11#29#255#11#12#29#255#12#11' '#255#15#9#30#255#15#8#28#255#11#11#31 +#255#12#12#31#255#12#13' '#255#13#11'!'#255#13#8'!'#255#12#11'!'#255#10#12'!' +#255#11#13'"'#255#12#14'!'#255#13#15'!'#255#12#15'#'#255#12#19'*'#255#11#22 ,'.'#255#11#22'-'#255#14#22'-'#255#14#21'-'#255#14#17','#255#14#13'('#255#12 +#12'"'#255#9#14'!'#255#11#13'!'#255#13#14'"'#255#14#16'#'#255#15#14'"'#255#13 +#16'&'#255#12#15'&'#255#11#16''''#255#11#21','#255#15#27'5'#255#14#24'5'#255 +#14#22'2'#255#13#22'.'#255#12#24'-'#255#12#21'0'#255#13#20','#255#14#18'(' +#255#13#15'%'#255#13#14'%'#255#11#12'$'#255#12#13'%'#255#13#13'$'#255#10#10 +' '#255#11#10#29#255#14#11#26#255#14#11#26#255#12#11#28#255#14#12#29#255#15 +#11' '#255#14#11#29#255#14#12#28#255#13#14#31#255#10#12#29#255#11#11#29#255 +#11#9#28#255#9#9#25#255#8#7#20#255#5#5#13#255#2#2#7#255#0#0#3#255#0#0#0#253#0 +#0#0#250#0#0#0#233#0#0#0#200#0#0#0#148#0#0#0'U'#0#0#0'"'#0#0#0#8#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#9#0#0#0'&'#0#0#0'Z'#0#0#0#154#0#0#0#206#0#0#0#238#0#0 +#1#250#0#1#3#255#2#4#8#255#4#8#15#255#7#13#25#255#9#18'$'#255#14#22'/'#255#16 +#25'5'#255#16#24'3'#255#16#18','#255#16#18'+'#255#18#16''''#255#15#13'&'#255 +#11#10'%'#255#13#12#31#255#13#12#27#255#13#12#28#255#14#11#30#255#15#10#30 +#255#14#11#31#255#13#12' '#255#14#12#31#255#15#11#30#255#14#12#31#255#15#10 +#29#255#14#12#30#255#13#12' '#255#14#11'!'#255#14#13'"'#255#15#17''''#255#16 +#20'*'#255#16#20'*'#255#13#18'+'#255#14#22'/'#255#14#20','#255#14#20'+'#255 +#14#22'-'#255#13#20'-'#255#15#23'1'#255#16#19'0'#255#16#14'*'#255#15#12'#' +#255#10#13#30#255#12#12#31#255#14#14' '#255#14#16'#'#255#15#17')'#255#15#16 +'('#255#13#14'#'#255#12#13'!'#255#13#15'%'#255#16#19'.'#255#16#22'4'#255#14 +#23'3'#255#12#22'-'#255#12#23'*'#255#11#16'%'#255#13#16'%'#255#14#16'%'#255 +#14#16'$'#255#15#15'#'#255#13#12'"'#255#12#13'!'#255#13#14'!'#255#12#13' ' +#255#12#11#30#255#12#11#28#255#12#12#29#255#12#12' '#255#11#12' '#255#17#11 +'$'#255#14#11#31#255#12#12#27#255#14#15#31#255#11#12' '#255#12#14'!'#255#13 +#13' '#255#11#11#30#255#9#10#27#255#6#7#20#255#4#5#14#255#3#3#8#255#1#0#3#255 +#0#0#1#254#0#0#0#249#0#0#0#233#0#0#0#197#0#0#0#138#0#0#0'L'#0#0#0#29#0#0#0#4 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#5#0#0#0#31#0#0#0'Q'#0#0#0#145#0#0#0#200#0#0#0#236#0#0#0 +#252#0#1#2#254#2#4#9#255#3#9#19#255#6#14#30#255#9#20''''#255#12#24'1'#255#15 +#22'2'#255#15#24'4'#255#16#23'3'#255#19#20'2'#255#20#26':'#255#21#23'4'#255 +#18#18'0'#255#14#15','#255#14#13'!'#255#13#12#29#255#13#12#30#255#15#11'!' +#255#16#10' '#255#14#10#30#255#12#12#30#255#13#13#31#255#14#13' '#255#14#12 +#30#255#16#11#28#255#16#11#30#255#15#11#31#255#15#11#30#255#14#13' '#255#15 +#17'('#255#17#21'-'#255#17#24'/'#255#15#23'0'#255#14#21'0'#255#14#16')'#255 +#14#15'&'#255#14#17''''#255#13#17'*'#255#15#20'/'#255#16#17'-'#255#16#15'*' +#255#16#14''''#255#11#15'#'#255#13#13' '#255#13#12#30#255#13#13' '#255#16#16 +')'#255#17#18'+'#255#13#15'$'#255#11#13#30#255#13#12'"'#255#16#14''''#255#15 +#18','#255#15#20'.'#255#14#20'+'#255#12#18'%'#255#12#13' '#255#13#13'!'#255 +#13#14'"'#255#13#15'"'#255#15#15'%'#255#13#12'"'#255#13#13' '#255#13#15' ' +#255#14#15'!'#255#13#11#31#255#12#11#29#255#11#11#30#255#11#12'!'#255#11#13 +' '#255#15#11'!'#255#14#11#31#255#12#12#29#255#13#12#30#255#11#12' '#255#13 +#15'#'#255#13#15'#'#255#11#13'"'#255#10#13'!'#255#9#9#28#255#7#8#22#255#5#6 +#14#255#2#2#6#255#0#1#3#255#0#0#1#255#0#0#0#248#0#0#0#228#0#0#0#189#0#0#0#128 +#0#0#0'C'#0#0#0#23#0#0#0#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#23#0#0#0'E'#0#0#0#132#0#0#0#196#0#0#0 +#231#0#0#1#249#0#1#3#255#2#4#8#255#5#12#24#255#6#17''''#255#7#24'2'#255#10#30 +'9'#255#15#31'?'#255#16#26'8'#255#14#21'0'#255#14#17'+'#255#17#17'-'#255#19 +#26';'#255#21#27'<'#255#22#24'5'#255#20#18'*'#255#15#12#31#255#13#11#30#255 +#14#12'!'#255#15#13'#'#255#14#11'!'#255#12#11#28#255#11#10#27#255#12#13#31 +#255#13#14'!'#255#13#12#30#255#14#12#27#255#16#10#30#255#17#9#30#255#14#11#27 +#255#12#12#29#255#13#13'%'#255#13#16')'#255#14#21','#255#16#24'/'#255#11#16 +''''#255#12#13'$'#255#13#11'!'#255#12#11'!'#255#14#14'&'#255#15#13''''#255#14 +#13'&'#255#14#14''''#255#14#16')'#255#13#17')'#255#13#13'$'#255#12#11#30#255 +#13#10#29#255#16#12'"'#255#16#17')'#255#11#15'$'#255#10#13' '#255#14#14'"' +#255#14#14'#'#255#12#14'$'#255#14#16''''#255#15#16'('#255#12#13'#'#255#13#12 +'"'#255#14#14'!'#255#13#14' '#255#11#13'"'#255#14#15')'#255#12#12'$'#255#12 +#12'"'#255#14#14'"'#255#16#15'!'#255#14#12#31#255#13#12#29#255#11#11#30#255 +#11#12#31#255#14#14#30#255#12#11#27#255#14#11#30#255#14#11'!'#255#11#9#31#255 ,#12#12#30#255#14#14'!'#255#14#14'%'#255#12#15''''#255#11#16'&'#255#11#13'$' +#255#11#11#29#255#8#9#20#255#4#5#12#255#2#3#7#255#0#1#2#255#0#0#0#252#0#0#0 +#244#0#0#0#226#0#0#0#180#0#0#0'u'#0#0#0'9'#0#0#0#17#0#0#0#2#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#14#0#0#0'8'#0#0#0'u'#0#0 +#0#182#0#0#0#229#0#0#0#249#0#1#2#255#1#4#8#255#3#10#20#255#9#26'1'#255#10'"D' +#255#14'+Q'#255#20'2W'#255#24'0W'#255#26'.S'#255#17#25'6'#255#9#10' '#255#12 +#14'%'#255#12#14'('#255#16#17'.'#255#19#17'+'#255#18#12'"'#255#16#7#30#255#15 +#12'"'#255#15#13'"'#255#15#13' '#255#14#12#31#255#15#12#27#255#15#10#26#255 +#14#10#31#255#13#12'"'#255#15#11#30#255#14#12#29#255#15#13#30#255#16#13#31 +#255#15#14' '#255#13#16' '#255#14#15'&'#255#14#13'%'#255#13#14'%'#255#13#18 +','#255#12#16')'#255#12#15'%'#255#13#13'#'#255#15#13'#'#255#12#12'"'#255#14 +#12'$'#255#14#13'#'#255#13#14'#'#255#13#12'%'#255#15#13'$'#255#14#11'"'#255 +#13#12' '#255#13#14' '#255#13#12'!'#255#12#13'$'#255#12#16'('#255#13#18')' +#255#15#17'&'#255#11#12'!'#255#12#13'$'#255#12#14'$'#255#13#13'$'#255#15#13 +''''#255#14#15'#'#255#16#17'&'#255#15#17'&'#255#12#14'%'#255#14#15'*'#255#11 +#15'$'#255#12#15'%'#255#15#16''''#255#17#17'$'#255#15#14'"'#255#14#15'#'#255 +#14#16'#'#255#15#15'"'#255#16#16'!'#255#12#13#30#255#12#14#31#255#13#13' ' +#255#12#12#31#255#16#13' '#255#17#14'!'#255#17#15''''#255#16#16','#255#14#20 +'+'#255#13#19'*'#255#15#18'$'#255#14#14#28#255#8#8#20#255#4#6#13#255#2#3#6 +#255#1#1#2#255#0#1#1#253#0#0#0#244#0#0#0#219#0#0#0#169#0#0#0'j'#0#0#0'/'#0#0 +#0#11#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#8#0#0#0')' +#0#0#0'e'#0#0#0#167#0#0#0#220#0#0#0#243#0#1#1#253#1#4#7#255#3#8#17#255#4#15 +'!'#255#10#26'6'#255#19'.T'#255#18'0X'#255#10'!D'#255#9#21'4'#255#16#29'>' +#255#16#27'6'#255#17#25'/'#255#21#28'4'#255#14#18','#255#12#14'%'#255#16#18 +'('#255#20#22'.'#255#18#17'*'#255#15#14'%'#255#14#13'!'#255#16#13'"'#255#19 +#12'$'#255#18#11#31#255#16#12#28#255#14#13#30#255#14#12'!'#255#16#10#31#255 +#13#12#30#255#14#13'!'#255#16#15'%'#255#17#16'&'#255#14#12'$'#255#16#14')' +#255#15#14''''#255#13#13'%'#255#16#17'+'#255#16#16'*'#255#15#15'&'#255#15#14 +'%'#255#15#14'%'#255#14#15'$'#255#15#14'#'#255#14#14'#'#255#14#15'$'#255#15 +#16''''#255#17#15'*'#255#17#15'('#255#16#16'&'#255#15#15'&'#255#15#13''''#255 +#15#14'&'#255#17#19'+'#255#17#21'.'#255#14#18')'#255#12#13'"'#255#14#15'(' +#255#15#16')'#255#14#16'%'#255#12#13'$'#255#12#15'$'#255#14#16''''#255#13#17 +'('#255#12#17''''#255#12#16'*'#255#12#19'('#255#13#18'('#255#13#15'('#255#13 +#14'#'#255#12#13'!'#255#15#16'&'#255#15#18'&'#255#14#16'#'#255#13#14'$'#255 +#16#14'"'#255#15#14'"'#255#12#14'!'#255#12#13#31#255#18#15'"'#255#19#16'#' +#255#16#16'$'#255#15#16'&'#255#16#18'('#255#15#16''''#255#15#17'%'#255#14#16 +'"'#255#12#13#31#255#8#9#22#255#6#5#13#255#3#3#6#255#0#1#1#254#0#0#0#251#0#0 +#0#242#0#0#0#212#0#0#0#157#0#0#0'W'#0#0#0' '#0#0#0#6#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#4#0#0#0#27#0#0#0'P'#0#0#0#148#0#0#0#206#0#0#0#241#0#0 +#0#251#0#2#4#255#2#7#14#255#6#19'$'#255#10'&F'#255#12'+O'#255#16')N'#255#17 +'%I'#255#15'!E'#255#17#28'?'#255#19#28'='#255#19#29'9'#255#20#30'6'#255#20#27 +'7'#255#18#25'6'#255#14#18'*'#255#16#21'-'#255#19#25'5'#255#17#20'.'#255#17 +#16''''#255#14#14'#'#255#14#12'"'#255#17#11'#'#255#18#12'#'#255#17#13#31#255 +#14#12#30#255#13#11#31#255#15#11#30#255#13#13' '#255#14#14'#'#255#17#14'&' +#255#19#15')'#255#17#15')'#255#17#15')'#255#16#15''''#255#15#15'&'#255#16#14 +''''#255#16#15''''#255#16#16'('#255#15#16''''#255#15#14'&'#255#16#14''''#255 +#17#14'%'#255#15#15'%'#255#14#16'%'#255#14#15'%'#255#15#17')'#255#16#17'''' +#255#16#16'&'#255#16#15'('#255#15#14'*'#255#17#16')'#255#18#18','#255#17#19 +'-'#255#15#18'*'#255#14#15'%'#255#16#15')'#255#15#16'*'#255#14#16''''#255#15 +#17''''#255#15#16')'#255#16#18')'#255#16#18'*'#255#15#17'*'#255#13#17'&'#255 +#13#18'&'#255#13#16''''#255#14#15'&'#255#13#14'#'#255#13#13'!'#255#14#16'''' +#255#15#19'('#255#14#19'$'#255#14#15'$'#255#16#14'$'#255#14#13' '#255#12#13 +#30#255#14#14#31#255#18#14' '#255#18#15'$'#255#15#14'%'#255#13#14'$'#255#16 +#17'('#255#17#17')'#255#15#17''''#255#12#16'%'#255#12#15'#'#255#13#13#31#255 +#8#8#21#255#4#4#12#255#2#2#5#255#0#0#1#254#0#0#0#251#0#0#0#236#0#0#0#197#0#0 +#0#135#0#0#0'B'#0#0#0#20#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#15#0#0 ,#0'9'#0#0#0'~'#0#0#0#190#0#0#0#233#0#0#0#251#0#0#1#255#1#6#10#255#3#11#23#255 +#8#28'5'#255#17'9b'#255#14';g'#255#12'%I'#255#13#26':'#255#19' B'#255#24'''L' +#255#19#31'='#255#18#28'7'#255#19#29':'#255#19#31'?'#255#19#26'9'#255#15#22 +'1'#255#14#21'0'#255#15#21'0'#255#15#17'('#255#17#15'%'#255#15#13'#'#255#14 +#13'!'#255#15#12'!'#255#16#11'%'#255#18#12' '#255#17#11#30#255#15#10#29#255 +#16#12#28#255#14#14#31#255#14#14'"'#255#16#13'$'#255#18#13''''#255#18#17'(' +#255#18#17')'#255#17#17')'#255#16#16''''#255#14#11'$'#255#15#13'$'#255#16#17 +'('#255#15#17''''#255#14#14'#'#255#17#13'&'#255#16#12'%'#255#16#14'&'#255#15 +#15''''#255#14#14'%'#255#15#16'%'#255#14#15'$'#255#15#14'$'#255#15#13'$'#255 +#14#13'&'#255#17#17')'#255#16#17'*'#255#15#16')'#255#16#16'('#255#15#16'''' +#255#15#15''''#255#14#14'&'#255#15#15''''#255#18#17'*'#255#17#16')'#255#17#17 +'('#255#18#18')'#255#17#17')'#255#16#17'#'#255#13#15'#'#255#14#14'$'#255#16 +#15'$'#255#16#15'"'#255#14#14'"'#255#14#15'%'#255#14#17'%'#255#14#18'#'#255 +#14#15'"'#255#13#12'#'#255#12#12' '#255#12#14#30#255#15#15' '#255#17#14' ' +#255#17#14'&'#255#14#14'&'#255#13#14'$'#255#15#16''''#255#16#19'+'#255#15#18 +'+'#255#13#17'('#255#12#16'&'#255#15#16''''#255#11#13' '#255#7#10#23#255#4#6 +#13#255#1#2#4#255#0#0#1#254#0#0#0#248#0#0#0#226#0#0#0#180#0#0#0'm'#0#0#0'/'#0 +#0#0#11#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#7#0#0#0'&'#0#0#0'a'#0#0#0#170#0#0#0#223 +#0#0#0#249#0#0#2#254#0#2#6#255#4#11#21#255#5#17'#'#255#10' <'#255#21'9c'#255 +#15':h'#255#14'/V'#255#12#31'?'#255#10#21'4'#255#15#28'<'#255#11#27'5'#255#11 +#22'/'#255#17#28':'#255#24'*M'#255#14#22'4'#255#13#22'3'#255#12#21'/'#255#10 +#16'&'#255#13#14' '#255#14#12#31#255#15#12' '#255#16#13'"'#255#15#14'#'#255 +#13#10'#'#255#17#10' '#255#19#11#29#255#18#11#27#255#17#10#27#255#15#13#27 +#255#15#12#30#255#15#12' '#255#15#13' '#255#13#13'!'#255#18#19'*'#255#19#18 +','#255#16#15''''#255#15#12'#'#255#17#14'"'#255#16#15'%'#255#13#17'#'#255#11 +#17#31#255#16#13'"'#255#13#10'"'#255#14#13'&'#255#16#15')'#255#16#15'('#255 +#17#15'$'#255#13#13'#'#255#12#13'"'#255#14#13#31#255#13#10#30#255#15#16'&' +#255#15#17''''#255#14#16'$'#255#15#15'#'#255#14#14')'#255#12#13'#'#255#13#14 +'"'#255#16#14'&'#255#18#14''''#255#14#13'#'#255#13#12'"'#255#14#15'#'#255#16 +#18'$'#255#17#16'%'#255#13#14'$'#255#14#15'$'#255#16#15'#'#255#16#14' '#255 +#14#15'"'#255#15#14'!'#255#14#13' '#255#13#13#31#255#12#13'!'#255#11#10'"' +#255#12#13'#'#255#14#17'#'#255#14#16'"'#255#16#16'$'#255#15#16'&'#255#14#16 +'&'#255#15#15'%'#255#16#15'&'#255#14#18'*'#255#16#20'-'#255#16#20','#255#14 +#20')'#255#14#18'+'#255#15#21'+'#255#13#19'$'#255#8#12#24#255#2#5#11#255#0#2 +#3#255#0#0#0#254#0#0#0#244#0#0#0#213#0#0#0#153#0#0#0'T'#0#0#0#31#0#0#0#4#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#1#0#0#0#22#0#0#0'G'#0#0#0#142#0#0#0#204#0#0#0#238#0#0#1#252#0#3#5 +#255#2#9#18#255#7#19'%'#255#8#27'3'#255#13'*K'#255#23'@k'#255#9'-W'#255#19'<' +'l'#255#19'5c'#255#10#29'A'#255#13#28'<'#255#20'#A'#255#16#27'6'#255#12#17'+' +#255#15#17','#255#15#24'3'#255#20'"A'#255#16#30'<'#255#11#21'.'#255#17#23'*' +#255#13#14'!'#255#13#12' '#255#13#12'!'#255#12#11' '#255#15#12'"'#255#15#10 +#31#255#14#11#27#255#14#11#25#255#15#9#24#255#13#14#28#255#13#12#28#255#14#11 +#28#255#16#11#29#255#13#14#30#255#15#17'$'#255#16#16'&'#255#16#14'$'#255#14 +#16#31#255#16#13#30#255#14#14'$'#255#12#16'%'#255#11#16' '#255#12#13#30#255 +#15#15'$'#255#15#16'('#255#14#14''''#255#14#11'$'#255#16#12'$'#255#14#14'$' +#255#13#15'#'#255#13#14'"'#255#14#14'#'#255#12#15'!'#255#13#16'#'#255#14#16 +'#'#255#13#15'!'#255#15#14'%'#255#16#16'&'#255#16#15'%'#255#14#14'&'#255#12 +#15'('#255#13#13'"'#255#14#14'"'#255#15#13'"'#255#14#12#31#255#14#13'"'#255 +#12#14'!'#255#12#14'"'#255#13#13'#'#255#14#12'"'#255#17#15'&'#255#16#15'#' +#255#14#15'!'#255#13#16'"'#255#16#19')'#255#13#14'%'#255#14#15'#'#255#14#17 +'"'#255#13#15'!'#255#14#15'!'#255#15#17'"'#255#16#17'%'#255#17#15')'#255#16 +#19','#255#15#20'-'#255#16#21','#255#16#21')'#255#14#21''''#255#14#22'('#255 +#14#22')'#255#14#22'('#255#12#18'"'#255#6#10#21#255#1#3#6#255#0#0#1#255#0#0#0 +#249#0#0#0#233#0#0#0#195#0#0#0#128#0#0#0'?'#0#0#0#17#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#10#0#0#0 +'/'#0#0#0'n'#0#0#0#182#0#0#0#230#0#0#0#249#0#1#2#254#2#5#10#255#5#16#31#255#5 +#28'4'#255#8'"@'#255#16'(K'#255#23'1W'#255#12'&N'#255#17'6b'#255#19':h'#255 +#18'-Y'#255#20'%J'#255#16#28'?'#255#15#29'>'#255#17#31'>'#255#18#25'8'#255#18 +#24'4'#255#17#27'9'#255#16#31'='#255#15#30'8'#255#13#18')'#255#14#14'!'#255 +#15#12' '#255#15#11' '#255#15#10' '#255#16#11' '#255#15#11#29#255#14#13#29 ,#255#13#13#28#255#13#10#25#255#12#12#28#255#12#10#29#255#13#10#29#255#14#12 +#30#255#13#14' '#255#14#15'#'#255#16#14'$'#255#16#14'#'#255#14#16'!'#255#13 +#13#30#255#12#14'!'#255#12#15'$'#255#13#15'#'#255#12#12#29#255#12#13#30#255 +#13#16'%'#255#13#17'*'#255#12#16'('#255#13#17''''#255#13#16'%'#255#14#16'&' +#255#15#16'('#255#14#15'&'#255#12#15' '#255#14#16'$'#255#15#15'%'#255#12#13 +'"'#255#14#13'%'#255#16#14''''#255#16#14'&'#255#13#14'$'#255#10#16'$'#255#13 +#16'#'#255#15#13'!'#255#14#12'"'#255#14#14'#'#255#15#15'%'#255#16#14'$'#255 +#15#14'#'#255#12#14'"'#255#10#12'"'#255#14#15'&'#255#15#15'#'#255#13#14'!' +#255#12#14'"'#255#12#18'&'#255#12#13'$'#255#13#12'!'#255#14#13' '#255#14#15 +' '#255#15#16'#'#255#14#18'('#255#14#16')'#255#15#15'+'#255#16#21'0'#255#14 +#20'*'#255#13#19'%'#255#13#20'&'#255#14#22'+'#255#23#29'/'#255#20#25'*'#255 +#14#19'&'#255#10#14'"'#255#8#11#25#255#4#8#15#255#1#2#5#255#0#0#0#254#0#0#0 +#247#0#0#0#224#0#0#0#171#0#0#0'f'#0#0#0')'#0#0#0#6#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#27#0#0#0'Q'#0#0#0 +#151#0#0#0#212#0#0#0#243#0#0#1#254#1#3#6#255#4#11#21#255#6#24'/'#255#10'+M' +#255#12'*O'#255#14'"G'#255#18'#G'#255#17'$K'#255#15'-P'#255#17'2X'#255#21'0]' +#255#21'*V'#255#18'&N'#255#18'&L'#255#19'$H'#255#18#29'A'#255#18#26'<'#255#16 +#28'='#255#15#30'='#255#15#26'5'#255#14#15'%'#255#16#14'#'#255#17#12'!'#255 +#17#12'"'#255#17#14'$'#255#19#12'!'#255#16#13#31#255#14#14#30#255#13#14#29 +#255#13#13#29#255#14#12' '#255#15#13'#'#255#15#14'#'#255#15#15'!'#255#17#17 +'%'#255#16#18''''#255#16#16'&'#255#16#15'$'#255#16#17'#'#255#16#14' '#255#15 +#14' '#255#16#15'#'#255#17#15'&'#255#15#14'#'#255#15#12'"'#255#15#15'$'#255 +#14#18')'#255#11#21'+'#255#13#21'+'#255#14#19'*'#255#15#19'+'#255#14#20',' +#255#15#20'*'#255#15#18'%'#255#15#16'%'#255#14#16'&'#255#15#16'&'#255#16#16 +')'#255#16#15'*'#255#15#15')'#255#15#17'('#255#15#20')'#255#14#18'$'#255#16 +#15'$'#255#16#14'%'#255#15#16'%'#255#15#15'$'#255#17#14'%'#255#16#15'$'#255 +#14#16'$'#255#12#15''''#255#15#18'('#255#15#17'%'#255#15#15'#'#255#14#15'#' +#255#13#17'#'#255#16#23'.'#255#15#22','#255#15#20''''#255#18#23''''#255#19#21 +','#255#17#23'1'#255#15#23'1'#255#16#21'0'#255#17#24'4'#255#14#20'-'#255#12 +#18'('#255#12#18')'#255#15#20'-'#255#18#24'-'#255#17#20'('#255#14#16'&'#255 +#12#15'%'#255#11#16'#'#255#7#12#24#255#3#6#11#255#0#1#3#255#0#0#0#252#0#0#0 +#241#0#0#0#207#0#0#0#145#0#0#0'K'#0#0#0#22#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#11#0#0#0'5'#0#0#0'x'#0#0#0#189#0#0#0 +#234#0#0#1#249#0#2#4#255#2#8#15#255#6#18'#'#255#7' A'#255#15'9d'#255#15'4`' +#255#12'#J'#255#11#31'B'#255#20'*R'#255#15')I'#255#14'''H'#255#18'(Q'#255#18 +'*V'#255#21'0W'#255#21'-S'#255#18'$J'#255#15#29'B'#255#18'!H'#255#18'%J'#255 +#15#31'?'#255#14#20'/'#255#18#16'$'#255#17#17'&'#255#18#14'%'#255#18#14'%' +#255#17#17''''#255#21#13'$'#255#18#15'#'#255#16#20'%'#255#16#20'&'#255#15#15 +'#'#255#15#14'%'#255#18#17'('#255#18#18'('#255#17#17'%'#255#20#19')'#255#18 +#22'+'#255#17#20'+'#255#17#18'('#255#19#19'$'#255#19#15'"'#255#19#14'!'#255 +#19#14'#'#255#18#16''''#255#17#18'+'#255#20#15'*'#255#18#14'%'#255#15#17'%' +#255#14#22'*'#255#16#20'-'#255#17#21'.'#255#15#21'-'#255#13#21','#255#15#22 +'+'#255#17#20')'#255#15#17''''#255#14#17''''#255#17#21'*'#255#17#22'.'#255#16 +#18','#255#16#18'+'#255#17#20'-'#255#19#23'0'#255#15#18'%'#255#17#18'&'#255 +#18#18'('#255#16#16'%'#255#16#13'!'#255#17#15'&'#255#17#17'&'#255#16#17'''' +#255#17#18'+'#255#17#20','#255#16#18'('#255#16#17'&'#255#18#18'&'#255#17#18 +'%'#255#20' 8'#255#19'#;'#255#18'!5'#255#21' 1'#255#22#27'6'#255#18#29'7'#255 +#17#30'7'#255#20#30'7'#255#22#31':'#255#27'">'#255#31'#='#255'&%>'#255')&?' +#255#26#30'3'#255#22#25'0'#255#29#31'6'#255'"$:'#255#22#28'3'#255#10#17'"' +#255#6#10#19#255#3#5#8#255#0#1#2#253#0#0#0#248#0#0#0#232#0#0#0#183#0#0#0'q'#0 +#0#0'.'#0#0#0#9#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#4#0 +#0#0#28#0#0#0'V'#0#0#0#158#0#0#0#219#0#0#0#248#0#0#2#254#0#4#10#255#3#13#25 +#255#7#26'0'#255#9'(L'#255#11':f'#255#15'=h'#255#16'1V'#255#11'%C'#255#20'8e' +#255#15'.V'#255#12'$H'#255#15'$I'#255#17')K'#255#12#31'8'#255#14'$D'#255#19 +'*R'#255#18'(M'#255#17'-O'#255#16')L'#255#17'"C'#255#19#27'5'#255#16#21'%' +#255#16#21'('#255#17#18'*'#255#17#16'('#255#17#16'%'#255#20#13'&'#255#16#15 +'"'#255#22'"6'#255#26'*B'#255#16#19'*'#255#14#17'&'#255#15#19'('#255#17#20')' +#255#17#19')'#255#19#18'+'#255#17#20'*'#255#19#23','#255#22#24'-'#255#21#22 +''''#255#14#15'!'#255#16#13'"'#255#17#14'$'#255#16#18''''#255#17#22'+'#255#15 +#17')'#255#15#16'%'#255#15#16'#'#255#16#17'%'#255#18#16')'#255#17#19'+'#255 +#16#20','#255#14#19'+'#255#12#17''''#255#14#17')'#255#16#17'+'#255#15#18'*' ,#255#13#21')'#255#14#22'-'#255#15#19'('#255#17#18'+'#255#19#19'/'#255#18#20 +','#255#15#15'$'#255#14#16'%'#255#15#17'('#255#18#17'('#255#19#14'$'#255#17 +#20'*'#255#17#19')'#255#17#17''''#255#17#17')'#255#14#19','#255#14#15')'#255 +#16#15''''#255#19#19')'#255#18#20','#255#16#25'3'#255#20'#>'#255#23'''?'#255 +#21'!5'#255#27'%;'#255#22'":'#255#21#31'8'#255#28'#='#255'*3I'#255'?H^'#255 +'RRb'#255'eZg'#255'l_m'#255'OHY'#255':=S'#255'KKa'#255'UQe'#255'.2F'#255#18 +#29'1'#255#12#19' '#255#9#12#17#255#3#5#6#255#0#0#0#252#0#0#0#244#0#0#0#210#0 +#0#0#151#0#0#0'M'#0#0#0#24#0#0#0#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#12#0#0#0'6'#0#0#0'}'#0#0#0#192#0#0#0#236#0#0#1#250#0#3#5#255#1#10#19 +#255#5#22'*'#255#9'$C'#255#11'*P'#255#14'2X'#255#13'6^'#255#14'4^'#255#20'2X' +#255#18'3^'#255#15',V'#255#12'%K'#255#12'''J'#255#18'4V'#255#13'%;'#255#11' ' +';'#255#13'%G'#255#16')K'#255#10#30'='#255#18'!B'#255#20#29':'#255#19#22'+' +#255#22#27'+'#255#20#23'('#255#18#20'('#255#16#18''''#255#17#16'$'#255#23#13 +'&'#255#13#12'#'#255#23'(B'#255'$=\'#255#25'*H'#255#20'!6'#255#27')='#255#27 +'*>'#255#21#30'3'#255#20#21'/'#255#15#20'('#255#16#21'('#255#20#22'*'#255#20 +#21'*'#255#15#17'%'#255#16#17'%'#255#14#17'%'#255#13#17'&'#255#16#20')'#255 +#15#18'&'#255#14#16'$'#255#16#16'$'#255#18#17'&'#255#17#15'&'#255#15#17'&' +#255#15#21')'#255#16#23'-'#255#17#20'*'#255#15#24'.'#255#15#23','#255#15#20 +'('#255#14#18'&'#255#17#18'&'#255#19#18')'#255#19#19'+'#255#18#20','#255#17 +#19'+'#255#17#17')'#255#14#16')'#255#14#18','#255#16#20'.'#255#14#13'&'#255 +#17#18'*'#255#18#22'-'#255#16#21'-'#255#14#18'*'#255#16#19'+'#255#20#21'*' +#255#18#23'+'#255#12#24'/'#255#11#29'5'#255#31'.B'#255'%0F'#255#28',C'#255#28 +'2G'#255'[\m'#255'idt'#255'ML_'#255'@BW'#255'sn}'#255'a[n'#255'LG['#255'HCU' +#255'XN^'#255'i\k'#255'tiy'#255'xk|'#255'sfw'#255'e]n'#255'KL^'#255'*3C'#255 +#21#29''''#255#14#16#18#255#5#5#7#255#1#1#1#250#0#0#0#232#0#0#0#187#0#0#0's' +#0#0#0'.'#0#0#0#10#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#4#0#0#0#27#0#0#0 +'T'#0#0#0#160#0#0#0#218#0#0#0#248#0#1#2#253#2#6#12#255#3#11#24#255#7#25'1' +#255#12',M'#255#10'/S'#255#11'4Y'#255#14'4\'#255#15'1Z'#255#16'.W'#255#18'6d' +#255#17'4a'#255#17'3^'#255#18'6_'#255#21';a'#255#28'9R'#255#21'*C'#255#14'$B' +#255#17'*I'#255#14#25'3'#255#20#23'1'#255#24#30'5'#255#25'$6'#255#25'%3'#255 +#22#27'-'#255#19#23','#255#17#21'*'#255#17#17''''#255#19#18')'#255#25#29'3' +#255'$1J'#255',A^'#255'+?\'#255'-;R'#255'1]'#255'!7R'#255'!3P'#255' 4R'#255#26'!7'#255#29#30'4'#255'#+A' +#255'&9L'#255'#3C'#255' *='#255#30')>'#255#28'&<'#255#24' 6'#255#21'"7'#255 +'*3G'#255'4;P'#255'4=L'#255':;I'#255'?@P'#255'BCT'#255'KK['#255'WXc'#255'bdl' +#255#154#139#136#255#129'wt'#255'?BF'#255#21#25')'#255#20#21'-'#255#18#21'-' +#255#17#23'-'#255#17#24'.'#255#17#20','#255#17#19'*'#255#19#20'*'#255#21#24 +'/'#255#23#28'2'#255#15#22')'#255#18#20')'#255#19#22'('#255#18#23'%'#255#20 +#22')'#255'3#3'#255'A1B'#255'BBP'#255'@CR'#255'"-<'#255#17'#2'#255 +'#4F'#255'Q`p'#255'Qas'#255#134#137#152#255'{u'#134#255'/,B'#255#26#29'6'#255 +#17#25'3'#255#14#25'4'#255#16#28'7'#255#22'"='#255#26'+B'#255'(:Q'#255'IWo' +#255'rw'#143#255#138#135#154#255#138#133#151#255#140#136#157#255#148#145#171 +#255#155#152#181#255#146#142#166#255#144#137#158#255#144#134#153#255#139#131 +#151#255#130'~'#150#255#144#132#151#255#151#137#155#255#151#139#159#255#146 +#137#160#255#142#135#161#255#146#142#172#255#142#139#172#255#147#146#182#255 +#172#174#214#255#150#148#188#255#151#149#186#255#134#132#162#255'XVj'#255'''' +'%/'#255#13#12#15#255#2#2#2#253#0#0#0#242#0#0#0#209#0#0#0#138#0#0#0'@'#0#0#0 +#16#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#6#0#0#0'('#0#0#0'h'#0#0#0#182#0#0#0#232#0#0#0 +#252#0#2#3#255#3#9#16#255#10#20'&'#255#17#25'4'#255#18#25'6'#255#13#28'9'#255 +#14'-R'#255#13'4`'#255#15'S'#255';>R' +#255'9@S'#255''#255#20#26'2'#255#21#31'6'#255 +#23'$8'#255#22'!5'#255#23#29'4'#255#25#28'4'#255#22#30'5'#255#17' 6'#255#17 +' 6'#255#19#31'2'#255#18#25'.'#255#31''';'#255',6H'#255'$'';'#255'"%8'#255#27 +'#8'#255#29''';'#255').?'#255'''*='#255'2:K'#255'3;L'#255'HJ\'#255#130#127 +#141#255'vv'#134#255#141#133#147#255#153#140#153#255#129'v'#135#255'NG`'#255 +'$+D'#255#27'''C'#255'3'#0#0#0#135#0#0#0#207#0#0#0#241#0#1#2#254#1#6#10#255#4 +#17#29#255#11#28'3'#255#12#24'6'#255#15#22'5'#255#19' ?'#255#16'8^'#255#13'8' +'e'#255#15'8e'#255#15'8c'#255#13'6a'#255#17'4Z'#255#15'2S'#255#12',P'#255#16 +')S'#255'!5`'#255'8Dh'#255'X'#141#255'So'#158#255'To'#155#255'Uk'#149#255'_r'#151#255'[s'#156 +#255'k}'#162#255'q'#130#166#255'|'#139#170#255#163#165#179#255#170#170#179 ,#255#163#174#194#255#145#178#210#255#131#176#216#255#151#168#201#255#144#156 +#186#255#142#162#193#255#149#171#203#255#158#165#192#255#158#171#201#255#156 +#165#187#255#150#158#177#255#141#156#178#255#137#154#174#255#147#149#164#255 +#143#143#155#255#135#139#152#255#132#137#153#255's'#129#148#255'u'#127#146 +#255'~'#130#146#255'x~'#139#255'Ncv'#255'2La'#255'9Sk'#255'C^y'#255'>^y'#255 +'L]u'#255'R^s'#255'S]m'#255'HTd'#255'/E\'#255')E`'#255'''A['#255#30'3N'#255 +#27'+G'#255'MQg'#255#132#127#144#255#171#161#176#255#181#172#189#255#165#164 +#183#255#176#167#183#255#184#176#192#255#179#173#193#255#166#161#183#255#158 +#157#180#255#139#141#170#255#146#147#179#255#167#165#194#255#181#174#198#255 +#173#165#192#255#162#165#191#255#150#156#184#255#144#144#175#255#150#151#178 +#255#146#149#180#255#151#152#181#255#155#155#181#255#159#160#184#255#186#186 +#201#255#179#180#201#255#162#166#197#255#154#159#196#255#165#165#199#255#156 +#159#201#255#167#169#210#255#177#182#220#255#181#190#229#255#191#201#236#255 +#212#222#246#255#224#227#244#255#216#215#233#255#188#195#222#255#177#181#212 +#255#169#174#203#255#161#168#194#255#145#152#177#255'su'#134#255'>>F'#255#22 +#22#25#255#3#3#3#253#0#0#0#245#0#0#0#215#0#0#0#147#0#0#0'I'#0#0#0#19#0#0#0#1 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#6#0#0#0','#0#0#0'o'#0#0#0#187#0#0#0#234#0#0#1#252#1#3#5#255#3#13#22#255#8 +#31'6'#255#12'-P'#255#21'/U'#255#25'1X'#255#21'3\'#255#16'/V'#255#14'2['#255 +#17':e'#255#16'9f'#255#10',Y'#255#17'/W'#255#22'*R'#255'''8_'#255'>V'#128#255 +'Op'#168#255'g'#141#193#255'k'#146#195#255'n'#145#192#255'z'#151#196#255'z' +#153#198#255#132#163#204#255#139#170#208#255#158#184#215#255#203#215#228#255 +#213#221#229#255#205#218#229#255#188#214#234#255#180#216#241#255#206#225#246 +#255#202#217#239#255#199#219#241#255#205#227#248#255#218#231#249#255#218#235 +#255#255#218#232#248#255#207#225#240#255#191#219#238#255#188#220#239#255#210 +#218#235#255#201#211#229#255#182#204#225#255#177#201#224#255#169#201#224#255 +#182#203#224#255#205#214#229#255#212#219#232#255#174#197#219#255't'#153#176 +#255'h'#146#173#255'g'#150#181#255'\'#141#174#255'r'#143#169#255'p'#135#160 +#255'~'#141#164#255'}'#141#164#255'Ei'#137#255'P{'#158#255'c'#132#165#255'dz' +#152#255'^o'#142#255#145#155#182#255#210#210#227#255#228#224#241#255#208#212 +#235#255#187#206#231#255#210#217#236#255#221#230#243#255#218#228#244#255#204 +#212#237#255#186#202#230#255#178#194#229#255#180#198#235#255#199#213#243#255 +#229#233#248#255#213#222#244#255#196#222#245#255#178#206#238#255#168#186#227 +#255#178#197#229#255#168#194#229#255#178#196#229#255#188#198#226#255#194#203 +#226#255#235#238#245#255#214#219#233#255#182#190#218#255#168#177#211#255#182 +#184#213#255#177#178#209#255#167#172#206#255#161#171#210#255#165#178#217#255 +#173#182#221#255#188#202#231#255#211#222#239#255#218#227#242#255#193#211#240 +#255#184#198#233#255#189#201#235#255#186#202#235#255#170#188#221#255#150#158 +#179#255'\_j'#255'&'','#255#7#7#8#254#0#0#0#248#0#0#0#228#0#0#0#172#0#0#0'c' +#0#0#0'"'#0#0#0#4#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#13#0#0#0'?'#0#0#0#136#0#0#0#208#0#0#0#241#1#2#3#253#2#5#10 +#255#5#15#29#255#10'!='#255#18'0U'#255#24'5\'#255#27'6_'#255#26'6`'#255#24'0' +'X'#255#20'-W'#255#22':e'#255#23'@k'#255#17'4]'#255#23'6c'#255#19'(Q'#255#18 +'"G'#255#28'-R'#255'6Jr'#255'ey'#162#255'r'#137#177#255'r'#138#177#255'y'#144 +#180#255'|'#148#184#255#130#156#191#255#139#165#197#255#149#173#202#255#152 +#181#208#255#156#188#212#255#161#193#218#255#167#198#225#255#174#204#232#255 +#178#208#237#255#178#209#237#255#185#215#242#255#195#223#249#255#200#228#253 +#255#201#227#253#255#197#225#251#255#194#222#247#255#193#220#242#255#192#218 +#240#255#193#219#242#255#194#219#242#255#195#219#242#255#194#220#242#255#197 +#221#242#255#202#225#244#255#203#226#245#255#206#228#247#255#217#235#252#255 +#172#206#229#255'{'#167#196#255'd'#145#175#255'i'#147#173#255'e'#142#168#255 +'U'#130#155#255'm'#151#177#255#134#173#202#255'i'#150#185#255#146#184#217#255 +#199#224#247#255#227#243#255#255#223#240#255#255#219#236#255#255#216#232#255 +#255#214#231#254#255#213#231#254#255#214#231#253#255#216#233#254#255#211#230 +#253#255#213#230#254#255#216#232#254#255#200#219#245#255#203#223#250#255#204 +#226#252#255#207#228#252#255#216#232#254#255#217#232#252#255#209#226#250#255 +#203#222#251#255#201#223#252#255#204#228#251#255#192#219#247#255#194#220#248 +#255#202#223#248#255#209#225#246#255#224#237#249#255#210#226#247#255#203#220 +#247#255#203#222#246#255#202#221#244#255#211#224#246#255#192#213#244#255#174 +#196#233#255#171#182#217#255#172#180#214#255#172#181#216#255#176#185#217#255 +#177#186#218#255#169#180#217#255#168#179#214#255#179#187#221#255#179#188#226 +#255#162#175#217#255#134#147#184#255'`f|'#255'03<'#255#12#13#16#255#2#2#3#251 +#0#0#0#241#0#0#0#197#0#0#0'~'#0#0#0'4'#0#0#0#9#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#24#0#0#0'R'#0#0#0#157#0#0#0 ,#222#0#0#0#249#0#2#3#255#3#7#14#255#9#21'&'#255#18')G'#255#16',S'#255#21'0Z' +#255#23'3['#255#21'2Z'#255#29'3^'#255#23'.U'#255#20'+P'#255#20'.U'#255#19'5b' +#255#21'1]'#255#19'%K'#255#26')K'#255'(;^'#255'1Ip'#255'Pn'#153#255'h'#134 +#176#255't'#144#184#255'w'#146#187#255'|'#153#192#255#128#158#196#255#135#164 +#200#255#142#171#204#255#145#178#210#255#149#183#214#255#154#189#221#255#161 +#196#228#255#169#203#235#255#171#206#238#255#174#210#240#255#180#214#243#255 +#185#218#247#255#188#220#249#255#186#218#248#255#185#216#247#255#185#215#245 +#255#185#214#243#255#186#215#242#255#185#214#241#255#185#213#240#255#185#214 +#240#255#185#214#239#255#187#214#240#255#190#218#242#255#193#221#243#255#195 +#222#244#255#196#223#245#255#199#225#246#255#159#196#224#255'c'#145#177#255 +'6b|'#255'7ay'#255'7ay'#255'Aj'#133#255'T'#127#158#255'q'#155#190#255#179#206 +#234#255#204#224#250#255#207#226#250#255#207#226#249#255#206#225#249#255#206 +#224#249#255#206#224#249#255#207#225#249#255#207#225#250#255#207#225#250#255 +#207#225#250#255#207#225#250#255#206#224#250#255#202#220#247#255#204#221#248 +#255#205#222#248#255#205#222#247#255#207#222#247#255#207#222#247#255#204#220 +#247#255#202#219#247#255#201#217#245#255#198#215#244#255#195#212#241#255#195 +#211#240#255#195#211#240#255#197#212#239#255#199#213#239#255#196#211#238#255 +#194#209#238#255#192#206#237#255#189#203#234#255#191#206#237#255#186#205#238 +#255#180#201#235#255#179#195#231#255#180#191#226#255#179#190#224#255#179#190 +#224#255#179#189#224#255#176#187#223#255#177#187#223#255#177#188#226#255#178 +#191#232#255#176#191#231#255#159#173#209#255'px'#147#255':?N'#255#19#22#26 +#255#3#4#5#254#0#0#0#246#0#0#0#213#0#0#0#149#0#0#0'H'#0#0#0#17#0#0#0#2#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#4#0#0#0'$'#0#0#0'g' +#0#0#0#177#0#0#0#232#0#1#0#252#1#4#6#255#2#9#18#255#9#22'*'#255#23'.O'#255#17 +'1Z'#255#16'-V'#255#16'*S'#255#18'-W'#255#26'6a'#255#20'+R'#255#17'''K'#255 +#18',P'#255#20'1Z'#255#18'&L'#255#21'&H'#255#24'(G'#255#31'0P'#255'1Lq'#255 +'Zw'#161#255'l'#138#180#255'o'#143#184#255'p'#146#187#255'x'#151#191#255'{' +#156#195#255#128#159#198#255#133#164#201#255#137#171#207#255#141#177#213#255 +#146#184#221#255#152#191#228#255#158#196#233#255#163#202#236#255#166#205#239 +#255#172#208#242#255#176#211#244#255#176#211#245#255#175#209#243#255#176#208 +#242#255#177#208#241#255#177#208#240#255#177#209#240#255#177#208#238#255#177 +#207#237#255#177#207#237#255#178#208#236#255#178#208#236#255#183#212#239#255 +#186#215#240#255#186#215#240#255#187#216#241#255#194#221#244#255#183#213#239 +#255#149#186#215#255'f'#146#176#255'Oy'#151#255'/Xt'#255'=i'#135#255'n'#155 +#190#255#154#189#222#255#190#215#243#255#198#220#247#255#196#218#245#255#197 +#218#245#255#196#218#245#255#198#218#246#255#199#218#246#255#199#219#246#255 +#198#220#247#255#198#219#247#255#199#219#246#255#200#219#246#255#199#218#246 +#255#199#218#245#255#199#216#245#255#199#216#244#255#199#216#244#255#199#215 +#243#255#198#215#243#255#197#214#243#255#195#213#241#255#193#211#240#255#191 +#209#239#255#191#207#236#255#191#206#235#255#191#205#235#255#190#205#235#255 +#190#204#233#255#189#204#233#255#188#202#233#255#186#200#232#255#186#199#231 +#255#185#199#232#255#184#200#233#255#183#199#233#255#183#197#233#255#182#195 +#230#255#182#194#229#255#181#193#229#255#181#192#228#255#181#193#228#255#181 +#192#228#255#179#192#229#255#180#194#232#255#181#196#232#255#171#186#220#255 +#132#144#172#255'PWg'#255'!%+'#255#8#9#10#255#1#1#1#250#0#0#0#228#0#0#0#172#0 +#0#0'`'#0#0#0#29#0#0#0#4#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#8#0#0#0'2'#0#0#0'{'#0#0#0#195#0#0#0#240#0#0#0#253#1#5#10#255#4#13 +#25#255#12#28'3'#255#26'2W'#255#26'>h'#255#25';d'#255#21'1Z'#255#18'+X'#255 +#23'7b'#255#20'-U'#255#18'+P'#255#17'.R'#255#19',R'#255#17'#F'#255#20'%F'#255 +#18'#A'#255#23')G'#255'6Rv'#255'c~'#166#255'o'#140#180#255'l'#139#180#255'n' +#143#184#255's'#148#186#255'v'#151#191#255'y'#154#195#255'|'#158#198#255#128 +#165#203#255#134#173#212#255#139#180#220#255#144#185#225#255#149#188#228#255 +#154#194#232#255#157#197#236#255#161#201#238#255#165#203#239#255#165#202#239 +#255#165#202#239#255#167#202#238#255#168#201#236#255#168#201#235#255#169#201 +#234#255#169#201#234#255#170#201#233#255#170#201#233#255#172#202#233#255#172 +#202#232#255#175#205#234#255#177#207#235#255#178#207#235#255#180#209#236#255 +#181#210#237#255#186#213#239#255#181#211#238#255#161#197#229#255#141#176#207 +#255'k'#142#172#255'v'#156#187#255#159#197#229#255#182#211#242#255#189#214 +#244#255#190#215#243#255#190#214#243#255#190#213#243#255#190#214#243#255#191 +#214#243#255#192#214#243#255#192#214#243#255#191#216#245#255#191#215#245#255 +#192#215#243#255#193#214#243#255#194#214#244#255#192#214#243#255#192#212#242 +#255#192#212#242#255#193#212#241#255#192#210#240#255#192#210#240#255#190#209 +#239#255#189#207#237#255#187#205#236#255#186#205#235#255#187#203#233#255#187 +#202#232#255#186#202#232#255#186#201#231#255#186#200#229#255#185#199#230#255 ,#184#198#229#255#183#197#228#255#184#197#229#255#182#196#228#255#182#196#228 +#255#181#195#228#255#181#194#228#255#181#194#227#255#179#193#227#255#179#191 +#227#255#179#191#227#255#179#192#226#255#179#192#227#255#178#192#226#255#178 +#193#227#255#179#193#227#255#174#189#222#255#147#160#188#255'bk}'#255'/3;' +#255#13#14#16#255#2#2#3#253#0#0#0#238#0#0#0#191#0#0#0'v'#0#0#0'+'#0#0#0#8#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#15#0#0#0'A'#0#0#0 +#141#0#0#0#209#0#0#0#247#0#0#1#255#2#7#13#255#6#19'!'#255#14'";'#255#24'3Y' +#255'$It'#255'(Mv'#255#31'=e'#255#18',V'#255#22'7a'#255#22'1Y'#255#19'-T'#255 +#16',R'#255#16'(N'#255#17'''J'#255#14'#B'#255#11' >'#255#24'.M'#255'?['#127 +#255'a}'#162#255'm'#135#174#255'm'#135#176#255'o'#139#180#255'o'#143#181#255 +'q'#146#186#255't'#150#191#255'w'#155#196#255'{'#161#202#255#130#170#210#255 +#135#176#216#255#138#179#219#255#142#181#221#255#144#184#224#255#149#188#228 +#255#151#191#230#255#153#192#231#255#155#194#232#255#156#194#233#255#158#194 +#232#255#159#194#231#255#159#193#229#255#160#192#228#255#162#193#227#255#163 +#194#227#255#164#195#228#255#166#196#228#255#166#195#228#255#167#197#228#255 +#168#198#228#255#169#198#229#255#171#199#229#255#173#201#230#255#173#201#230 +#255#175#203#232#255#181#208#236#255#187#213#241#255#189#216#246#255#188#215 +#244#255#186#211#239#255#182#208#238#255#182#207#239#255#182#207#239#255#182 +#208#239#255#183#208#239#255#183#209#239#255#185#210#240#255#186#210#240#255 +#186#210#240#255#186#211#242#255#187#211#242#255#187#211#241#255#187#211#240 +#255#188#211#240#255#186#210#241#255#186#210#241#255#187#209#239#255#188#208 +#238#255#188#207#239#255#187#205#238#255#186#205#236#255#185#203#235#255#184 +#202#233#255#183#201#233#255#184#200#231#255#183#199#230#255#182#198#229#255 +#181#197#227#255#181#196#227#255#180#195#227#255#180#194#226#255#179#194#225 +#255#178#192#224#255#177#192#223#255#177#192#223#255#177#191#222#255#176#190 +#223#255#176#189#223#255#175#188#222#255#174#187#222#255#174#187#222#255#174 +#187#221#255#175#188#221#255#174#188#220#255#173#187#220#255#173#187#221#255 +#172#187#220#255#153#165#195#255'nw'#140#255':?J'#255#17#19#23#255#3#4#4#254 +#0#0#0#244#0#0#0#206#0#0#0#138#0#0#0';'#0#0#0#13#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#21#0#0#0'R'#0#0#0#160#0#0#0#221#0#0#0#249 +#0#1#3#255#3#9#18#255#6#17'!'#255#9#26'0'#255#14'(H'#255#29'Bk'#255#24'>c' +#255#14'.P'#255#13'(L'#255#24'6d'#255#16'*R'#255#14'%K'#255#15'''L'#255#14'(' +'J'#255#13'$C'#255#10'#>'#255#7'$@'#255#21'4T'#255'Ec'#136#255'_{'#160#255'h' +#130#168#255'i'#131#170#255'i'#135#173#255'l'#138#176#255'm'#140#179#255'q' +#145#186#255'u'#152#193#255'x'#156#198#255'~'#164#205#255#129#169#209#255#131 +#171#211#255#133#171#211#255#134#173#212#255#138#175#215#255#142#178#217#255 +#145#181#219#255#148#183#220#255#146#184#221#255#149#184#221#255#151#185#222 +#255#152#186#221#255#152#185#221#255#152#184#220#255#154#185#219#255#156#187 +#220#255#158#189#220#255#158#188#220#255#160#189#222#255#162#189#222#255#163 +#190#222#255#163#191#223#255#165#191#223#255#167#193#223#255#168#195#224#255 +#168#196#225#255#168#196#225#255#171#197#228#255#172#198#231#255#172#199#231 +#255#173#198#230#255#175#200#232#255#175#200#232#255#176#201#232#255#176#201 +#233#255#177#202#233#255#178#203#233#255#178#203#234#255#179#204#235#255#181 +#205#235#255#181#205#236#255#181#206#236#255#182#206#236#255#183#205#235#255 +#184#205#237#255#183#205#237#255#181#205#236#255#182#204#236#255#183#203#237 +#255#183#202#235#255#183#202#235#255#182#201#234#255#181#200#233#255#181#199 +#231#255#180#198#230#255#179#196#228#255#179#195#227#255#178#195#226#255#176 +#194#225#255#177#194#225#255#177#192#225#255#176#191#224#255#174#190#222#255 +#173#189#221#255#173#189#222#255#172#188#222#255#172#187#222#255#171#186#220 +#255#172#185#219#255#172#185#219#255#171#185#219#255#171#185#218#255#170#184 +#219#255#168#184#218#255#169#184#217#255#169#183#217#255#169#184#217#255#156 +#171#201#255'y'#132#155#255'GM\'#255#26#28'!'#255#5#6#8#254#0#0#0#249#0#0#0 +#220#0#0#0#160#0#0#0'K'#0#0#0#20#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#4#0#0#0#31#0#0#0'c'#0#0#0#177#0#0#0#232#0#0#0#253#1#2#4#255#5#13 +#24#255#8#22'*'#255#9#28'7'#255#10' >'#255#15',R'#255#16',N'#255#14'&D'#255 +#14'$F'#255#20'0\'#255#16'*Q'#255#15'(M'#255#14'*M'#255#11'+H'#255#13'''D' +#255#24'2Q'#255#30'<]'#255'.Mo'#255']v'#154#255'b{'#161#255'e'#127#163#255'g' +#130#165#255'g'#132#169#255'k'#134#173#255'l'#137#175#255'o'#141#178#255't' +#145#184#255'{'#150#192#255'}'#154#197#255'~'#158#199#255#127#160#200#255#127 +#159#201#255#127#160#201#255#131#164#202#255#133#166#204#255#135#167#205#255 +#139#169#205#255#140#171#207#255#143#173#209#255#145#175#210#255#146#176#211 +#255#147#176#211#255#147#177#211#255#149#178#211#255#151#179#212#255#152#181 +#213#255#153#181#213#255#154#181#212#255#156#182#213#255#157#183#215#255#158 +#184#217#255#158#185#216#255#160#186#216#255#161#187#216#255#162#188#217#255 ,#162#190#219#255#164#190#220#255#166#191#221#255#168#191#221#255#169#192#222 +#255#169#194#224#255#170#195#225#255#171#195#225#255#172#196#226#255#174#196 +#227#255#173#197#229#255#173#198#230#255#175#198#230#255#177#200#231#255#176 +#199#231#255#177#200#231#255#177#200#231#255#178#201#232#255#179#201#233#255 +#179#200#232#255#179#199#231#255#179#199#231#255#178#199#230#255#178#198#231 +#255#178#198#231#255#178#197#231#255#178#196#230#255#177#195#228#255#176#195 +#228#255#176#194#227#255#176#193#226#255#175#192#225#255#174#192#224#255#173 +#191#224#255#173#190#224#255#173#188#223#255#174#188#222#255#172#188#221#255 +#170#187#219#255#169#186#219#255#170#185#220#255#169#184#219#255#169#183#218 +#255#169#182#217#255#168#182#217#255#166#182#216#255#167#181#216#255#165#181 +#216#255#166#181#216#255#167#181#215#255#165#180#214#255#159#174#206#255#129 +#141#168#255'RYk'#255'"$+'#255#7#8#10#254#0#0#0#251#0#0#0#228#0#0#0#173#0#0#0 +'Z'#0#0#0#28#0#0#0#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#7#0#0#0')' +#0#0#0'r'#0#0#0#189#0#0#0#238#0#0#1#254#1#2#6#255#6#14#27#255#11#27'3'#255#12 +'$D'#255#12'(J'#255#14'&N'#255#13'%H'#255#11'$C'#255#12'$E'#255#18',S'#255#14 +'%L'#255#15'''J'#255#16'+J'#255#14'*E'#255#16'&@'#255')@_'#255'=Wy'#255'Kf' +#137#255'd{'#157#255'e{'#159#255'f}'#160#255'g'#128#163#255'h'#130#167#255'k' +#132#169#255'k'#135#172#255'm'#137#174#255'q'#140#177#255'w'#144#183#255'y' +#147#185#255'z'#149#187#255'{'#151#189#255'|'#151#191#255'|'#152#192#255#128 +#156#193#255#130#158#195#255#131#159#196#255#134#161#197#255#137#163#199#255 +#138#166#200#255#140#167#201#255#142#168#203#255#143#170#202#255#144#170#202 +#255#145#171#203#255#147#172#204#255#148#174#204#255#149#175#205#255#150#175 +#205#255#151#176#205#255#152#177#206#255#153#179#209#255#154#179#209#255#156 +#180#210#255#158#181#211#255#159#182#211#255#160#184#213#255#160#184#213#255 +#161#185#214#255#163#186#214#255#164#187#216#255#165#188#217#255#166#189#219 +#255#167#190#220#255#168#190#220#255#170#191#221#255#169#192#223#255#170#192 +#224#255#171#193#223#255#172#194#224#255#172#194#225#255#173#194#225#255#173 +#195#226#255#173#195#227#255#174#194#227#255#174#194#226#255#174#193#225#255 +#175#193#225#255#173#194#224#255#173#192#225#255#173#192#225#255#174#192#225 +#255#174#191#225#255#173#192#224#255#172#191#223#255#172#190#224#255#172#189 +#224#255#171#189#223#255#171#188#221#255#170#188#222#255#170#186#221#255#170 +#185#220#255#170#185#220#255#169#185#219#255#168#185#217#255#167#184#217#255 +#167#182#217#255#166#182#217#255#167#181#217#255#166#181#217#255#165#180#216 +#255#164#180#216#255#165#179#215#255#164#180#214#255#163#179#214#255#164#179 +#214#255#164#179#213#255#159#175#208#255#135#148#177#255'\ey'#255'+.8'#255#12 +#13#15#254#1#1#1#252#0#0#0#234#0#0#0#186#0#0#0'j'#0#0#0'%'#0#0#0#5#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#11#0#0#0'3'#0#0#0#129#0#0#0#200#0#0#0 +#242#0#0#1#254#1#3#7#255#7#16#31#255#12#29'8'#255#15')N'#255#18'5^'#255#14'(' +'Q'#255#18',Q'#255#23'1T'#255#24'2T'#255#25'3Y'#255#19',R'#255#17')K'#255#17 +')G'#255#18')F'#255#22',F'#255'4Jh'#255'Qf'#136#255'`u'#151#255'cw'#152#255 +'fy'#156#255'h{'#158#255'h}'#160#255'h'#128#163#255'k'#130#165#255'k'#132#168 +#255'm'#134#171#255'p'#136#173#255'q'#139#175#255't'#141#176#255'v'#143#178 +#255'x'#145#181#255'z'#147#183#255'{'#148#184#255'~'#151#186#255#128#153#189 +#255#130#155#191#255#132#157#193#255#133#159#194#255#134#160#194#255#136#162 +#195#255#138#162#197#255#138#164#195#255#142#165#195#255#143#166#197#255#144 +#167#197#255#146#169#196#255#147#169#197#255#148#170#199#255#148#171#200#255 +#150#172#200#255#152#174#201#255#152#173#202#255#154#175#204#255#156#177#206 +#255#157#177#206#255#158#178#208#255#158#179#208#255#159#180#209#255#160#181 +#210#255#160#182#211#255#161#183#211#255#163#184#213#255#164#184#214#255#165 +#185#215#255#166#186#216#255#166#187#217#255#167#187#217#255#168#188#217#255 +#169#189#218#255#169#189#220#255#169#189#220#255#169#189#220#255#170#190#221 +#255#170#189#220#255#170#189#219#255#170#188#219#255#170#188#219#255#169#188 +#219#255#170#187#220#255#170#187#219#255#170#187#219#255#170#186#219#255#169 +#187#218#255#168#186#218#255#168#185#219#255#168#186#220#255#167#185#219#255 +#167#184#218#255#167#184#217#255#166#183#216#255#166#182#216#255#165#182#216 +#255#166#182#215#255#165#181#214#255#164#180#215#255#164#180#214#255#164#180 +#214#255#164#179#215#255#164#179#215#255#163#179#215#255#162#178#214#255#163 +#178#214#255#162#178#213#255#162#177#212#255#163#177#213#255#163#177#212#255 +#158#175#209#255#139#154#184#255'fo'#134#255'48C'#255#16#18#21#255#2#2#3#253 +#0#0#0#239#0#0#0#198#0#0#0'z'#0#0#0'/'#0#0#0#8#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#15#0#0#0'='#0#0#0#144#0#0#0#212#0#0#0#248#0#0#1#255#2#4#9 +#255#10#19'#'#255#12#28'7'#255#15'(L'#255#24'd'#255'9Ou' +#255'8Pt'#255'-Mr'#255'*Hm'#255' :['#255#23'/N'#255#26'4T'#255'$Db'#255';Vu' +#255'Uj'#137#255'fx'#150#255'ev'#149#255'gx'#153#255'iy'#155#255'iz'#154#255 ,'h|'#155#255'k'#127#160#255'l'#129#163#255'm'#131#165#255'o'#133#168#255'q' +#136#172#255'r'#137#172#255't'#139#174#255'v'#141#176#255'x'#143#178#255'z' +#145#179#255'z'#147#180#255'|'#149#183#255'~'#151#187#255#128#154#189#255#128 +#154#188#255#130#156#189#255#133#157#190#255#134#159#191#255#136#159#193#255 +#141#161#191#255#142#163#191#255#142#164#191#255#144#164#191#255#147#163#192 +#255#146#165#195#255#146#166#196#255#149#168#196#255#152#168#195#255#152#168 +#196#255#152#170#198#255#153#172#200#255#154#173#201#255#156#174#202#255#156 +#176#205#255#158#177#206#255#159#177#206#255#159#178#206#255#159#178#206#255 +#161#179#208#255#163#180#209#255#162#180#211#255#163#181#212#255#163#182#211 +#255#164#183#212#255#165#184#214#255#166#184#215#255#167#184#216#255#166#185 +#215#255#166#185#215#255#168#185#214#255#167#186#214#255#168#186#215#255#167 +#185#215#255#165#184#214#255#166#184#215#255#167#184#215#255#166#183#215#255 +#166#183#214#255#167#182#213#255#166#182#214#255#166#182#214#255#165#182#214 +#255#164#181#214#255#164#181#214#255#164#181#214#255#164#180#212#255#163#179 +#212#255#162#178#212#255#162#178#211#255#163#179#210#255#162#177#210#255#161 +#177#211#255#161#177#212#255#162#177#211#255#161#176#211#255#161#176#211#255 +#161#176#210#255#160#176#210#255#159#176#210#255#159#174#210#255#160#173#211 +#255#161#174#211#255#160#175#211#255#158#173#209#255#143#157#188#255'lw'#142 +#255'9?L'#255#19#21#25#255#3#3#4#255#0#0#0#243#0#0#0#208#0#0#0#135#0#0#0':'#0 +#0#0#13#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#19#0#0#0'H'#0#0#0#155#0 +#0#0#217#0#0#0#248#0#1#3#254#2#5#11#255#9#18'!'#255#13#28'5'#255#16')I'#255 +#24'>d'#255'7Qp'#255'K`'#128#255'Qg'#137#255'Pf'#136#255'Uh'#137#255'Ug'#134 +#255'Ma'#127#255'G]|'#255'J`'#129#255'Vl'#138#255'\q'#142#255'_r'#143#255'bs' +#144#255'cs'#146#255'cv'#147#255'dx'#149#255'fz'#151#255'hz'#152#255'k|'#154 +#255'm'#127#157#255'l'#129#160#255'l'#130#163#255'n'#133#166#255'q'#133#166 +#255't'#135#169#255'v'#138#171#255'v'#141#172#255'x'#142#174#255'y'#144#177 +#255'{'#146#179#255'~'#148#181#255#128#148#183#255#127#149#183#255#130#151 +#184#255#133#152#184#255#136#154#185#255#139#156#189#255#139#156#187#255#140 +#157#187#255#141#158#187#255#142#160#187#255#144#160#188#255#143#160#190#255 +#145#162#190#255#149#164#189#255#149#165#191#255#149#166#194#255#150#167#196 +#255#152#168#197#255#154#170#197#255#153#171#198#255#153#172#200#255#155#172 +#201#255#157#174#202#255#157#175#202#255#157#176#204#255#158#176#205#255#159 +#176#206#255#159#178#206#255#159#178#208#255#161#178#208#255#161#180#209#255 +#162#181#210#255#163#181#210#255#164#181#211#255#163#181#212#255#163#181#211 +#255#164#182#210#255#163#182#210#255#164#182#211#255#164#181#212#255#164#181 +#211#255#164#181#210#255#164#181#211#255#163#180#211#255#163#179#211#255#163 +#180#210#255#163#179#211#255#162#179#210#255#163#179#210#255#162#178#210#255 +#160#177#209#255#162#177#209#255#162#177#209#255#161#176#210#255#160#175#209 +#255#160#174#207#255#160#175#207#255#159#174#208#255#159#173#207#255#159#174 +#207#255#159#174#207#255#158#173#207#255#158#173#207#255#158#173#207#255#157 +#173#207#255#157#171#207#255#157#171#206#255#156#170#206#255#155#170#207#255 +#155#170#205#255#155#169#206#255#144#157#191#255'q{'#149#255'AGW'#255#24#26 +' '#255#5#6#7#253#0#0#0#245#0#0#0#215#0#0#0#147#0#0#0'C'#0#0#0#17#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#23#0#0#0'R'#0#0#0#167#0#0#0#225#0#0#0#251 +#0#2#3#254#4#8#15#255#8#19'#'#255#14#27'3'#255#18'#@'#255#21'1Q'#255'8Nm'#255 +'Qb'#130#255'Xj'#140#255'Vi'#139#255'\k'#137#255']l'#137#255'\l'#137#255'Zl' +#138#255'Zn'#140#255'_q'#143#255'ar'#143#255'ar'#142#255'bq'#141#255'cs'#145 +#255'cu'#144#255'dw'#147#255'fy'#151#255'iy'#152#255'l{'#151#255'm}'#153#255 +'m'#127#156#255'n'#129#160#255'o'#130#162#255'r'#132#164#255't'#134#166#255 +'u'#136#167#255'v'#139#169#255'x'#141#172#255'y'#141#173#255'|'#143#174#255 +#127#145#176#255#128#145#178#255'~'#147#178#255#129#149#178#255#132#150#179 +#255#133#151#181#255#135#153#182#255#138#153#183#255#138#154#183#255#137#155 +#183#255#138#156#184#255#142#159#186#255#142#159#187#255#143#159#188#255#147 +#161#187#255#146#163#189#255#147#163#192#255#148#164#192#255#150#165#192#255 +#152#167#194#255#152#168#195#255#153#169#198#255#154#169#199#255#154#170#198 +#255#155#171#197#255#156#173#200#255#157#173#202#255#158#173#203#255#158#175 +#203#255#159#176#205#255#160#176#206#255#160#177#206#255#161#178#207#255#163 +#177#207#255#161#178#208#255#162#178#209#255#163#178#209#255#163#179#209#255 +#162#178#208#255#163#179#208#255#162#178#208#255#162#178#208#255#163#178#208 +#255#162#178#208#255#161#177#209#255#161#177#209#255#161#177#209#255#160#176 +#207#255#161#176#208#255#161#176#208#255#161#176#207#255#160#175#207#255#161 +#174#209#255#160#174#207#255#159#173#206#255#159#172#205#255#159#173#206#255 +#159#172#205#255#158#172#204#255#158#171#204#255#158#170#205#255#156#170#205 +#255#156#170#203#255#156#169#203#255#156#169#204#255#155#168#203#255#154#167 ,#203#255#155#167#203#255#154#167#203#255#153#166#203#255#153#166#201#255#153 +#166#202#255#144#156#190#255'u~'#155#255'GL^'#255#27#29'$'#255#5#6#8#254#0#0 +#0#248#0#0#0#221#0#0#0#157#0#0#0'L'#0#0#0#22#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#3#0#0#0#28#0#0#0'Z'#0#0#0#175#0#0#0#229#0#0#0#253#1#2#4#255#4#10#18 +#255#12#25'+'#255#18#31'8'#255#21'!='#255#20'&F'#255'"8Y'#255'IXz'#255']i' +#139#255'Xh'#135#255'Zi'#133#255'[j'#134#255']l'#136#255'^m'#138#255']n'#138 +#255']m'#138#255'_o'#139#255'ap'#140#255'bq'#141#255'bs'#143#255'dt'#143#255 +'ev'#145#255'gw'#148#255'jy'#151#255'lz'#150#255'l{'#151#255'n}'#154#255'p' +#127#158#255'q'#128#160#255'r'#131#161#255't'#132#163#255'u'#134#164#255'u' +#136#166#255'v'#138#168#255'z'#139#169#255'}'#140#171#255'~'#142#172#255#127 +#143#174#255'}'#145#174#255#128#146#175#255#131#147#176#255#131#149#177#255 +#132#150#178#255#136#150#180#255#135#152#181#255#135#153#181#255#137#153#181 +#255#140#156#183#255#141#157#185#255#142#157#186#255#143#158#186#255#144#160 +#187#255#145#160#190#255#146#161#190#255#148#163#190#255#149#165#192#255#150 +#165#193#255#151#166#195#255#152#167#196#255#152#167#197#255#153#169#196#255 +#154#171#198#255#155#171#198#255#156#171#199#255#156#172#201#255#157#173#202 +#255#158#173#203#255#158#174#203#255#159#174#203#255#160#175#204#255#158#175 +#204#255#160#176#206#255#161#176#207#255#160#176#206#255#161#176#205#255#161 +#176#206#255#161#176#206#255#160#176#206#255#160#175#206#255#160#175#205#255 +#159#175#206#255#159#175#206#255#159#174#206#255#158#174#205#255#160#174#205 +#255#159#174#205#255#158#173#204#255#159#172#205#255#158#171#206#255#158#171 +#204#255#157#170#202#255#157#170#202#255#157#170#203#255#157#170#202#255#156 +#169#201#255#156#168#201#255#155#167#201#255#154#167#203#255#154#166#201#255 +#154#166#200#255#153#165#201#255#153#165#200#255#152#164#199#255#152#164#200 +#255#152#164#200#255#151#163#200#255#151#163#198#255#152#163#199#255#144#155 +#190#255'w'#128#158#255'MRe'#255#31'!)'#255#7#8#10#255#0#0#0#249#0#0#0#224#0 +#0#0#165#0#0#0'S'#0#0#0#26#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#4#0#0#0' '#0 +#0#0'a'#0#0#0#180#0#0#0#231#0#0#0#252#1#3#5#255#5#10#19#255#17#30'2'#255#21 +'#>'#255#24'$B'#255'$1R'#255#31'4V'#255'GUv'#255'_i'#135#255'Yg'#131#255'Zh' +#132#255'Zi'#131#255'[j'#133#255']l'#134#255']l'#135#255']l'#135#255'_n'#137 +#255'`o'#139#255'ap'#141#255'ar'#140#255'cr'#142#255'et'#143#255'gv'#145#255 +'jx'#148#255'iy'#149#255'k{'#152#255'm}'#154#255'o~'#156#255'q'#127#158#255 +'q'#129#158#255't'#131#160#255'u'#132#162#255't'#134#163#255't'#135#164#255 +'y'#137#166#255'{'#138#168#255'{'#139#169#255'{'#141#170#255'|'#142#170#255 +'~'#143#172#255#128#145#174#255#130#147#175#255#131#148#177#255#133#147#178 +#255#133#149#180#255#134#151#180#255#137#152#179#255#137#152#181#255#139#153 +#183#255#141#155#183#255#141#157#184#255#142#157#185#255#143#157#188#255#145 +#158#188#255#146#160#188#255#148#161#190#255#148#162#190#255#149#163#191#255 +#150#164#194#255#151#166#196#255#152#166#196#255#152#168#197#255#152#168#196 +#255#153#168#196#255#154#170#198#255#154#169#199#255#155#170#199#255#156#171 +#200#255#157#171#201#255#157#172#201#255#156#172#200#255#156#173#202#255#157 +#173#203#255#157#172#203#255#158#173#202#255#158#173#203#255#158#174#204#255 +#158#174#204#255#157#172#203#255#158#172#203#255#157#172#203#255#157#172#203 +#255#156#171#202#255#156#171#202#255#157#171#202#255#156#171#202#255#155#170 +#201#255#155#169#201#255#155#168#201#255#155#168#201#255#154#167#200#255#155 +#167#199#255#155#167#199#255#153#166#198#255#153#166#198#255#153#164#197#255 +#151#163#195#255#152#164#199#255#152#163#199#255#151#163#197#255#150#163#196 +#255#150#162#197#255#150#162#197#255#149#161#196#255#149#161#196#255#148#160 +#196#255#148#159#194#255#149#161#197#255#143#154#190#255'y'#130#160#255'PWj' +#255'#%.'#255#10#11#14#254#1#1#1#249#0#0#0#227#0#0#0#172#0#0#0'Z'#0#0#0#30#0 +#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#5#0#0#0'$'#0#0#0'i'#0#0#0#188#0#0#0#236 +#0#0#0#254#2#2#5#255#7#10#20#255#16#25','#255#13#28'6'#255#28',I'#255'OYv' +#255'Yd'#128#255'Ze'#128#255'Ye'#128#255'Ye'#129#255'Zf'#130#255'[i'#130#255 +'Zj'#129#255'Zk'#130#255'\l'#133#255'_k'#134#255'_m'#136#255'_n'#137#255'_n' +#137#255'aq'#139#255'cr'#140#255'es'#143#255'gu'#145#255'hw'#146#255'hx'#149 +#255'jy'#151#255'm{'#153#255'n}'#154#255'n~'#154#255'o'#128#154#255'q'#129 +#157#255't'#130#159#255't'#131#159#255'v'#134#161#255'w'#134#162#255'x'#135 +#164#255'y'#137#166#255'y'#139#168#255'{'#141#168#255'|'#142#170#255'~'#143 +#172#255#127#144#172#255#129#146#175#255#131#147#177#255#131#147#178#255#132 +#148#178#255#135#150#179#255#136#150#179#255#137#150#180#255#138#152#181#255 +#139#154#182#255#140#155#182#255#143#156#185#255#143#157#185#255#144#157#185 +#255#145#158#187#255#146#160#187#255#147#161#189#255#148#162#191#255#149#163 +#191#255#150#163#192#255#150#164#194#255#151#165#195#255#152#166#195#255#152 +#167#195#255#153#167#196#255#154#169#197#255#155#169#199#255#155#168#199#255 ,#155#169#199#255#155#170#200#255#154#170#199#255#154#170#199#255#155#171#199 +#255#155#170#201#255#155#170#201#255#155#169#201#255#155#169#201#255#156#170 +#201#255#156#170#201#255#155#169#201#255#154#169#200#255#154#168#199#255#154 +#168#199#255#154#168#199#255#154#168#199#255#154#168#199#255#153#167#200#255 +#153#166#198#255#153#165#198#255#153#165#198#255#152#164#197#255#151#164#196 +#255#150#163#195#255#150#162#195#255#150#162#195#255#149#161#194#255#148#160 +#195#255#148#160#195#255#148#160#195#255#148#160#194#255#148#159#195#255#148 +#160#194#255#147#159#192#255#146#158#191#255#146#158#191#255#146#158#191#255 +#146#158#193#255#141#153#188#255'y'#131#161#255'QWk'#255'#''/'#255#9#10#13 +#255#0#0#0#251#0#0#0#232#0#0#0#178#0#0#0'^'#0#0#0' '#0#0#0#2#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#6#0#0#0''''#0#0#0'm'#0#0#0#190#0#0#0#235#0#0#0#252#1#1#4#255#5 +#7#16#255#14#24')'#255#28'-D'#255'3D`'#255'Q^{'#255'Ze'#127#255'Zf~'#255'Xf~' +#255'Xe'#129#255'[f'#129#255'[g'#128#255'Zh'#128#255'Zi'#130#255'\j'#133#255 +'_k'#135#255'^l'#135#255']m'#136#255'^n'#136#255'bp'#138#255'cr'#140#255'ds' +#141#255'dt'#142#255'eu'#144#255'iw'#149#255'iw'#149#255'jx'#149#255'l{'#150 +#255'l}'#151#255'n~'#154#255'p'#127#154#255's'#128#155#255't'#130#157#255'u' +#132#158#255'u'#132#161#255'v'#133#162#255'x'#135#164#255'x'#137#167#255'z' +#138#167#255'y'#139#166#255'{'#139#166#255#127#141#169#255#127#144#170#255 +#128#145#174#255#128#145#176#255#128#146#177#255#132#148#177#255#133#148#176 +#255#135#149#178#255#136#150#180#255#137#152#180#255#137#153#179#255#139#153 +#181#255#139#154#183#255#140#155#185#255#142#156#186#255#144#157#187#255#144 +#158#188#255#145#159#189#255#146#160#189#255#146#162#188#255#146#162#190#255 +#148#163#192#255#149#163#193#255#150#163#193#255#150#164#193#255#151#165#195 +#255#152#165#196#255#152#165#196#255#153#167#198#255#152#167#199#255#152#167 +#198#255#152#167#197#255#154#168#198#255#153#168#199#255#152#167#199#255#153 +#167#199#255#153#167#198#255#153#166#198#255#153#167#199#255#152#168#198#255 +#152#167#198#255#153#166#197#255#152#167#197#255#152#165#198#255#152#164#197 +#255#152#164#197#255#151#165#197#255#151#164#197#255#151#163#196#255#150#162 +#195#255#149#162#194#255#149#162#194#255#148#160#192#255#147#159#191#255#147 +#159#191#255#147#159#192#255#146#158#191#255#145#158#192#255#146#157#192#255 +#146#157#192#255#145#157#191#255#145#157#190#255#144#156#189#255#143#156#188 +#255#144#156#187#255#145#156#188#255#144#154#187#255#138#150#181#255'w'#131 +#158#255'SZn'#255'&)2'#255#12#13#16#255#2#1#2#250#0#0#0#230#0#0#0#180#0#0#0 +'b'#0#0#0'"'#0#0#0#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#6#0#0#0'('#0#0#0'p'#0#0#0 +#193#0#0#0#237#0#0#0#253#2#3#5#255#13#16#25#255'!,<'#255'9H^'#255'L[u'#255'T' +'b|'#255'Xd~'#255'Xe~'#255'Xf~'#255'Yf'#128#255'Zf'#128#255'\f'#128#255'\h' +#129#255'\h'#131#255']h'#131#255'^j'#133#255'^l'#133#255'`m'#135#255'an'#136 +#255'an'#137#255'dp'#140#255'er'#141#255'er'#141#255'et'#142#255'hv'#146#255 +'hv'#145#255'iv'#145#255'kx'#147#255'l{'#149#255'n|'#151#255'o}'#152#255'p' +#127#153#255's'#129#156#255't'#129#157#255't'#131#159#255'u'#132#161#255'w' +#133#163#255'x'#135#165#255'z'#137#166#255'z'#138#165#255'{'#138#167#255'}' +#140#169#255'~'#141#169#255#128#143#170#255#128#144#172#255#129#145#174#255 +#131#146#176#255#132#147#176#255#133#147#177#255#135#149#178#255#135#150#179 +#255#136#151#179#255#137#152#179#255#138#153#181#255#140#154#183#255#141#155 +#183#255#141#156#183#255#142#157#185#255#143#157#187#255#144#158#188#255#145 +#159#187#255#146#160#189#255#146#161#190#255#147#161#192#255#148#161#193#255 +#148#162#193#255#150#163#195#255#150#163#195#255#150#163#194#255#150#166#195 +#255#149#165#196#255#149#165#196#255#150#165#195#255#151#165#195#255#151#165 +#197#255#151#165#197#255#152#165#197#255#152#165#197#255#151#164#196#255#151 +#164#196#255#151#165#196#255#151#164#196#255#151#164#197#255#151#164#196#255 +#151#163#195#255#151#163#195#255#150#162#195#255#149#162#194#255#149#162#195 +#255#148#161#195#255#148#161#192#255#147#160#191#255#148#160#193#255#147#159 +#191#255#146#158#190#255#146#158#191#255#146#158#191#255#144#157#188#255#144 +#157#189#255#144#156#190#255#144#155#190#255#144#156#189#255#143#154#188#255 +#142#154#187#255#142#154#186#255#142#153#185#255#142#153#186#255#142#152#186 +#255#138#149#180#255'x'#130#157#255'RZn'#255'&)2'#255#11#12#15#255#1#1#1#251 +#0#0#0#233#0#0#0#183#0#0#0'e'#0#0#0'$'#0#0#0#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#6#0#0#0'*'#0#0#0's'#0#0#0#195#0#0#0#239#0#0#0#254#4#5#8#255#24#28'$'#255'4=' +'O'#255'LYo'#255'Xf}'#255'Wd}'#255'Yd~'#255'Xe'#127#255'Xf'#127#255'Yf'#128 +#255'Zf'#128#255']g'#129#255']h'#131#255']g'#131#255'^g'#130#255'^j'#131#255 +'_k'#131#255'bl'#133#255'el'#136#255'bm'#137#255'dp'#139#255'fp'#140#255'fq' +#140#255'fs'#141#255'hu'#143#255'hv'#143#255'iv'#144#255'kw'#145#255'my'#148 +#255'nz'#149#255'n{'#150#255'o}'#153#255'r'#128#155#255's'#128#156#255's'#130 +#157#255'u'#131#160#255'v'#132#162#255'w'#133#163#255'y'#135#164#255'{'#137 ,#165#255'|'#138#168#255'|'#139#169#255'}'#139#168#255#127#142#169#255#128#143 +#170#255#129#143#172#255#131#145#174#255#132#145#175#255#132#146#176#255#133 +#147#177#255#135#149#177#255#136#150#178#255#137#151#178#255#139#152#180#255 +#140#153#182#255#141#154#182#255#140#155#181#255#141#155#183#255#142#156#186 +#255#143#157#188#255#145#157#188#255#146#158#188#255#146#159#190#255#146#160 +#192#255#146#160#193#255#147#161#192#255#148#162#194#255#149#162#194#255#149 +#162#193#255#148#164#194#255#148#163#194#255#148#163#195#255#149#164#195#255 +#150#164#194#255#150#164#196#255#151#164#196#255#151#164#195#255#150#164#195 +#255#151#164#195#255#150#163#194#255#150#162#194#255#150#162#195#255#150#162 +#195#255#150#162#194#255#150#163#193#255#150#163#193#255#149#162#194#255#148 +#160#193#255#148#160#193#255#147#160#193#255#147#160#191#255#147#160#191#255 +#146#158#191#255#146#158#190#255#145#158#191#255#146#157#190#255#145#156#189 +#255#144#157#187#255#143#156#187#255#143#155#188#255#143#154#188#255#145#154 +#187#255#142#152#187#255#141#152#186#255#141#152#184#255#140#151#183#255#139 +#151#184#255#141#152#185#255#138#148#180#255'x'#128#157#255'RYm'#255'%(1'#255 +#11#12#14#255#0#1#1#252#0#0#0#233#0#0#0#184#0#0#0'e'#0#0#0'$'#0#0#0#3#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#7#0#0#0'+'#0#0#0't'#0#0#0#194#0#0#0#237#0#1#1#253#7#8 +#12#255#29' )'#255'8>Q'#255'KVm'#255'Sbz'#255'Wc}'#255'[c|'#255'[d~'#255'[e' +#129#255'Zf'#129#255'[f'#128#255']g'#130#255']g'#130#255'\g'#130#255']h'#130 +#255'^j'#132#255'_j'#130#255'bj'#131#255'ek'#133#255'dm'#136#255'dp'#137#255 +'fo'#137#255'go'#138#255'fr'#141#255'gr'#142#255'ht'#143#255'iw'#144#255'jx' +#145#255'mx'#147#255'nx'#148#255'nz'#149#255'n|'#152#255'p~'#155#255'r'#129 +#156#255's'#129#156#255't'#129#157#255'u'#130#159#255'u'#130#160#255'w'#132 +#161#255'y'#135#163#255'z'#136#165#255'{'#137#166#255'{'#138#165#255#127#140 +#169#255#127#141#171#255#128#142#171#255#130#144#172#255#131#145#173#255#131 +#145#175#255#133#146#175#255#134#148#174#255#135#150#176#255#135#149#177#255 +#136#150#180#255#138#151#182#255#139#152#182#255#141#154#183#255#140#154#184 +#255#141#155#185#255#142#156#186#255#143#156#186#255#143#157#187#255#144#158 +#190#255#145#158#191#255#145#158#191#255#145#160#191#255#145#160#192#255#146 +#160#192#255#147#161#192#255#147#162#193#255#147#161#193#255#148#162#194#255 +#149#163#195#255#149#163#194#255#148#163#195#255#149#163#195#255#149#163#194 +#255#149#163#194#255#150#163#194#255#149#162#194#255#149#161#194#255#149#161 +#193#255#149#161#192#255#149#161#193#255#149#162#192#255#148#161#192#255#147 +#160#193#255#147#160#193#255#147#159#192#255#146#158#191#255#146#158#191#255 +#146#158#191#255#145#157#190#255#144#156#190#255#144#156#189#255#144#155#188 +#255#144#155#186#255#143#155#186#255#141#153#186#255#141#153#185#255#141#153 +#185#255#143#152#185#255#141#151#185#255#141#151#183#255#140#150#182#255#140 +#150#182#255#139#150#182#255#139#151#182#255#134#145#178#255'u}'#156#255'SWl' +#255'%(1'#255#12#13#16#255#2#2#2#251#0#0#0#230#0#0#0#181#0#0#0'c'#0#0#0'#'#0 +#0#0#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#7#0#0#0','#0#0#0'v'#0#0#0#198#0#0#0#240 +#1#1#1#254#8#10#12#255#27#31'('#255'9>O'#255'MTl'#255'V_z'#255'X`{'#255'Yb{' +#255'Za|'#255'Zb~'#255'[c'#127#255']d~'#255'\d'#127#255'Zf'#127#255'Zg'#127 +#255'\h'#129#255']i'#131#255'_i'#130#255'bi'#131#255'cj'#133#255'ak'#134#255 +'cm'#134#255'fn'#136#255'fo'#138#255'dp'#139#255'dq'#140#255'fs'#142#255'ht' +#143#255'iu'#144#255'jw'#146#255'jv'#146#255'ly'#150#255'n|'#153#255'n|'#153 +#255'o~'#153#255'q'#128#155#255'r'#129#156#255's'#131#157#255'u'#132#160#255 +'v'#133#160#255'x'#135#163#255'y'#136#165#255'y'#136#166#255'{'#138#168#255 +'|'#138#167#255'}'#139#169#255#127#141#170#255#128#144#170#255#130#144#172 +#255#130#145#174#255#131#146#175#255#132#146#175#255#132#147#175#255#133#148 +#177#255#134#148#179#255#136#149#180#255#137#150#180#255#137#150#181#255#139 +#152#183#255#140#153#184#255#141#154#184#255#141#154#184#255#141#155#187#255 +#142#155#188#255#143#155#188#255#143#157#189#255#144#157#189#255#144#158#190 +#255#143#158#190#255#143#159#189#255#146#159#190#255#146#159#192#255#144#159 +#192#255#144#159#192#255#147#159#193#255#147#159#193#255#146#159#193#255#147 +#159#192#255#147#159#192#255#146#158#190#255#148#160#192#255#147#160#192#255 +#146#159#191#255#146#159#191#255#146#158#191#255#146#159#191#255#146#159#191 +#255#145#158#190#255#144#157#190#255#143#156#188#255#143#156#188#255#143#155 +#187#255#142#155#185#255#143#155#186#255#142#154#186#255#142#153#184#255#141 +#153#183#255#142#153#183#255#143#151#183#255#141#150#182#255#139#151#183#255 +#139#151#183#255#139#149#182#255#138#149#181#255#138#149#180#255#138#149#180 +#255#138#147#178#255#139#145#178#255#137#148#178#255#132#143#175#255'r{'#152 +#255'NTg'#255'"%-'#255#9#10#12#255#0#0#0#253#0#0#0#233#0#0#0#181#0#0#0'b'#0#0 +#0'"'#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#7#0#0#0','#0#0#0'v'#0#0#0#198#0#0 +#0#240#1#1#2#254#8#10#12#255#27' )'#255'9>Q'#255'MVm'#255'Taz'#255'Ub}'#255 ,'Wb}'#255'Yb}'#255'Zb{'#255'Zby'#255'\dz'#255'[d~'#255'Ze~'#255'[f}'#255']f}' +#255'^g'#129#255'`h'#129#255'bi'#130#255'bi'#132#255'ak'#133#255'ak'#133#255 +'bm'#136#255'dp'#138#255'fp'#138#255'ep'#140#255'fr'#141#255'fs'#143#255'fu' +#143#255'hw'#145#255'jw'#146#255'ky'#148#255'l{'#150#255'm|'#151#255'n}'#152 +#255'o~'#153#255'q'#128#154#255's'#129#156#255't'#131#158#255't'#132#158#255 +'u'#133#160#255'w'#134#163#255'y'#135#164#255'z'#137#166#255'z'#138#166#255 +'|'#139#167#255'}'#140#169#255'}'#141#169#255#127#143#170#255#128#143#173#255 +#128#144#174#255#129#145#174#255#131#146#175#255#132#146#175#255#132#146#178 +#255#134#147#180#255#136#149#180#255#136#148#180#255#137#150#180#255#138#151 +#180#255#138#151#181#255#139#152#183#255#138#153#184#255#139#154#186#255#141 +#154#185#255#141#154#184#255#142#155#186#255#142#156#187#255#142#156#187#255 +#142#157#187#255#143#156#188#255#144#156#189#255#143#157#189#255#143#157#189 +#255#144#157#189#255#145#158#190#255#145#158#190#255#145#158#190#255#145#157 +#190#255#144#157#189#255#145#157#189#255#144#157#189#255#144#157#188#255#144 +#157#188#255#144#157#189#255#144#156#190#255#143#156#189#255#142#156#187#255 +#142#155#187#255#142#155#188#255#141#154#187#255#141#153#187#255#140#153#185 +#255#140#153#184#255#141#153#184#255#141#152#183#255#140#152#183#255#140#152 +#183#255#141#150#183#255#140#150#182#255#139#149#181#255#137#148#181#255#137 +#148#180#255#136#148#179#255#136#147#179#255#136#147#178#255#135#146#177#255 +#137#145#177#255#136#147#177#255#131#142#172#255'qz'#149#255'LSe'#255'"$-' +#255#10#11#13#255#1#1#1#251#0#0#0#230#0#0#0#178#0#0#0'_'#0#0#0' '#0#0#0#2#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#7#0#0#0'+'#0#0#0't'#0#0#0#196#0#0#0#239#1#1#2#254 +#8#10#12#255#27#31''''#255'8DV'#255'PXl'#255'U`t'#255'V^t' +#255'V]u'#255'Y^w'#255'[`y'#255'X`w'#255'Yaw'#255'[av'#255'[av'#255'[cy'#255 +'\dx'#255'\d|'#255'^d}'#255'`e|'#255'^g'#127#255']g'#128#255'^g'#129#255'_g' +#128#255'_h'#128#255'bj'#131#255'ck'#134#255'el'#135#255'em'#134#255'dm'#133 +#255'en'#134#255'gn'#133#255'ho'#135#255'hr'#139#255'gs'#140#255'js'#142#255 +'kt'#141#255'kt'#140#255'mt'#144#255'nu'#145#255'mv'#146#255'nw'#147#255'qy' +#148#255'qz'#149#255'q{'#150#255's|'#150#255't|'#151#255't~'#153#255'v~'#154 +#255'v'#128#156#255'v'#129#157#255'v'#129#157#255'w'#130#158#255'w'#131#158 +#255'x'#131#159#255'x'#132#160#255'x'#134#161#255'z'#135#162#255'{'#135#164 +#255'z'#136#165#255'{'#137#166#255#127#138#165#255'}'#137#166#255'}'#139#167 +#255'~'#139#168#255#127#138#169#255#127#139#168#255'~'#139#167#255#127#139 +#168#255#128#140#169#255#127#141#169#255#127#141#170#255#128#140#170#255#129 +#141#170#255#129#142#170#255#129#142#170#255#131#142#170#255#131#142#171#255 +#129#143#172#255#129#143#172#255#130#143#171#255#129#142#172#255#129#142#172 +#255#130#143#170#255#131#141#170#255#130#141#171#255#130#141#172#255#130#140 +#171#255#129#140#170#255#129#141#171#255#129#139#170#255#128#139#169#255#128 +#138#169#255#128#138#170#255#128#138#169#255#128#136#167#255#129#136#166#255 +#130#136#167#255#127#135#167#255'~'#134#167#255'}'#135#166#255'{'#135#165#255 +'}'#133#164#255#128#134#163#255#127#133#163#255'~'#131#164#255'}'#132#165#255 +'|'#132#164#255'|'#129#162#255'os'#144#255'RVj'#255'),6'#255#12#13#17#255#2#2 +#3#254#0#0#0#242#0#0#0#203#0#0#0'~'#0#0#0'3'#0#0#0#10#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#14#0#0#0'='#0#0#0#144#0#0#0#212#0#0#0#247#1#2#2#254#11 +#12#14#255'"$.'#255'<@S'#255'PUm'#255'V\q'#255'W\q'#255'V]t'#255'X_w'#255'Z`' +'w'#255'X`v'#255'Y`u'#255'[at'#255'\at'#255']au'#255'[av'#255'[bx'#255']cx' +#255'^cw'#255']dx'#255'^f{'#255'^f~'#255'_g'#127#255'`h}'#255'ah'#128#255'ci' +#131#255'dj'#133#255'cl'#133#255'el'#131#255'dj'#132#255'fl'#134#255'gn'#136 +#255'go'#136#255'hq'#138#255'iq'#138#255'iq'#138#255'hq'#139#255'jr'#142#255 +'mr'#143#255'os'#145#255'ou'#145#255'nv'#144#255'pw'#145#255'py'#147#255'qz' +#149#255'q{'#150#255'q|'#151#255't|'#151#255'u~'#153#255'u'#127#154#255't' +#128#155#255't'#130#156#255'w'#129#156#255'w'#129#157#255'v'#130#158#255'v' +#131#159#255'w'#132#159#255'y'#133#162#255'z'#134#164#255'{'#135#163#255'|' +#135#162#255'}'#135#162#255'}'#135#163#255'}'#136#165#255'{'#136#166#255'|' +#136#164#255'}'#136#164#255'~'#136#165#255#127#137#167#255'~'#138#168#255'|' +#139#168#255'}'#138#167#255#127#137#166#255#127#138#167#255#128#139#167#255 +#128#139#166#255#127#139#166#255'~'#139#167#255'~'#139#169#255#128#138#167 ,#255#128#138#168#255#127#139#168#255'~'#140#166#255'}'#137#166#255#127#138 +#169#255#127#138#169#255'~'#138#168#255#127#137#167#255#127#137#168#255#127 +#137#168#255'}'#136#166#255'{'#135#164#255'|'#135#166#255#128#135#167#255#128 +#133#164#255#128#132#162#255#128#133#162#255'~'#132#162#255'~'#131#163#255'{' +#131#164#255'y'#131#164#255'{'#131#164#255'~'#131#161#255'|'#130#159#255'z' +#129#159#255'z'#130#161#255'z'#128#160#255'y'#127#158#255'jo'#138#255'KNb' +#255'$%/'#255#10#11#14#255#1#1#2#253#0#0#0#236#0#0#0#193#0#0#0'r'#0#0#0'*'#0 +#0#0#6#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#9#0#0#0'2'#0#0#0#129#0#0 +#0#199#0#0#0#241#1#2#2#253#9#9#11#255#28#30''''#255'6:J'#255'MQf'#255'V\p' +#255'V]r'#255'W\r'#255'X]s'#255'X^t'#255'Y_s'#255'Z_t'#255'Z_t'#255'[_u'#255 +']`w'#255']aw'#255'[bw'#255'[bx'#255']by'#255'^by'#255']cx'#255'^d{'#255'_f}' +#255'_g{'#255'`f}'#255'bg'#129#255'ch'#131#255'ci'#132#255'cj'#130#255'dj' +#130#255'dk'#131#255'em'#133#255'fn'#134#255'eo'#134#255'gp'#136#255'hp'#136 +#255'ip'#136#255'iq'#138#255'kq'#139#255'lq'#140#255'mr'#141#255'mt'#143#255 +'nv'#145#255'mw'#146#255'nx'#147#255'px'#147#255'qy'#148#255'rz'#147#255's{' +#149#255's|'#151#255's|'#153#255'r~'#153#255't~'#153#255'u'#127#154#255'v' +#127#155#255'w'#128#156#255'v'#129#158#255'v'#130#159#255'w'#131#159#255'w' +#132#158#255'x'#132#158#255'z'#133#159#255'{'#132#160#255'z'#132#162#255'z' +#133#163#255'|'#134#163#255'|'#134#162#255'|'#134#164#255'}'#134#165#255'{' +#134#164#255'}'#136#165#255'}'#137#165#255'}'#136#165#255'~'#136#165#255#127 +#136#165#255#127#137#165#255#127#136#166#255#127#136#167#255'~'#138#168#255 +#127#136#167#255#127#136#165#255'~'#136#165#255'~'#136#166#255'|'#135#165#255 +#127#135#167#255'~'#135#166#255'}'#135#165#255'~'#134#166#255'~'#135#165#255 +'}'#135#164#255'|'#135#163#255'|'#133#163#255'|'#132#164#255'~'#133#163#255 +'~'#132#161#255'}'#131#160#255'{'#132#161#255'z'#131#163#255'y'#130#162#255 +'y'#130#161#255'y'#130#161#255'z'#130#162#255'|'#128#158#255'{'#128#158#255 +'z'#128#158#255'y'#129#158#255'{'#128#158#255'v|'#152#255'ch'#127#255'BEU' +#255#28#30'%'#255#7#8#10#255#0#0#1#251#0#0#0#230#0#0#0#180#0#0#0'b'#0#0#0'!' +#0#0#0#4#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#6#0#0#0'('#0#0#0'q'#0 +#0#0#188#0#0#0#237#1#1#1#254#6#6#8#255#23#25#31#255'14@'#255'HM^'#255'TYm' +#255'V\r'#255'W[r'#255'X[r'#255'X\s'#255'Z^r'#255'Z]s'#255'Z]s'#255'Z^t'#255 +'[`u'#255'[`u'#255'Zbx'#255'Zbx'#255'\aw'#255'^cy'#255'^by'#255'_cy'#255'`dz' +#255'`fz'#255'`f|'#255'bf}'#255'cf'#127#255'bg'#129#255'ah'#130#255'ci'#129 +#255'ck'#130#255'dl'#131#255'el'#131#255'dm'#131#255'fn'#133#255'gn'#133#255 +'hn'#134#255'hp'#135#255'hp'#137#255'hp'#138#255'jq'#139#255'ms'#141#255'ks' +#142#255'lt'#144#255'mu'#144#255'mu'#143#255'ou'#143#255'qx'#145#255'qy'#147 +#255'qy'#148#255'rz'#150#255'r{'#150#255's{'#150#255't|'#151#255'u}'#152#255 +'w~'#154#255'v~'#156#255'v'#127#155#255'v'#128#156#255'v'#129#156#255'w'#130 +#156#255'x'#130#157#255'y'#130#158#255'y'#130#158#255'y'#131#159#255'{'#132 +#161#255'{'#132#161#255'z'#132#162#255'z'#133#162#255'z'#133#161#255'}'#133 +#161#255'}'#133#162#255'|'#133#162#255'}'#134#162#255'}'#134#163#255'}'#134 +#163#255'}'#134#164#255'}'#134#164#255'z'#134#164#255'|'#133#164#255'}'#134 +#163#255'}'#134#163#255'~'#133#164#255'|'#133#163#255'}'#133#163#255'}'#133 +#162#255'}'#132#162#255'}'#131#162#255'|'#132#161#255'{'#132#160#255'{'#131 +#161#255'|'#131#161#255'z'#130#161#255'{'#130#161#255'{'#130#159#255'z'#130 +#158#255'z'#130#160#255'x'#130#162#255'w'#128#160#255'x'#128#158#255'z'#128 +#158#255'x'#128#159#255'y~'#156#255'y}'#156#255'x~'#156#255'x~'#156#255'w' +#127#156#255'qw'#147#255'[_u'#255'8;I'#255#22#23#29#255#5#5#7#254#0#0#0#250#0 +#0#0#224#0#0#0#167#0#0#0'T'#0#0#0#24#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#4#0#0#0#30#0#0#0'a'#0#0#0#175#0#0#0#231#0#0#0#253#4#4#5#255#19 +#19#23#255'+,7'#255'BGX'#255'QVi'#255'VZp'#255'WZt'#255'XZt'#255'Z[r'#255'Y\' +'r'#255'[]r'#255'Z^r'#255'Y^r'#255'Y_s'#255'X`s'#255'Xax'#255'Z`w'#255'\_s' +#255']bu'#255'`cy'#255'`by'#255'`by'#255'aez'#255'ae{'#255'bez'#255'be|'#255 +'bf~'#255'ah'#128#255'bh'#127#255'ci'#128#255'dj'#130#255'ej'#129#255'ek'#129 +#255'el'#129#255'fk'#130#255'gk'#131#255'hn'#133#255'hn'#136#255'fo'#137#255 +'hp'#137#255'lq'#137#255'jr'#138#255'lr'#140#255'lr'#140#255'ks'#140#255'ms' +#141#255'pv'#145#255'ow'#147#255'px'#147#255'qx'#147#255'sy'#149#255'qz'#149 +#255'rz'#150#255't{'#151#255'u|'#151#255'u|'#152#255'u}'#153#255'v~'#154#255 +'w'#127#155#255'v'#127#155#255'w'#127#156#255'x'#127#155#255'y'#127#155#255 +'y'#128#156#255'x'#129#158#255'y'#129#159#255'x'#130#159#255'x'#131#159#255 +'y'#131#159#255'{'#130#158#255'{'#129#158#255'|'#130#158#255'}'#131#159#255 +'{'#132#160#255'z'#131#161#255'z'#131#160#255'z'#130#159#255'x'#129#160#255 +'z'#130#161#255'z'#130#161#255'{'#131#160#255'|'#131#160#255'{'#131#160#255 +'z'#130#158#255'z'#130#158#255'{'#129#158#255'{'#128#158#255'z'#129#158#255 ,'z'#128#158#255'z'#128#159#255'z'#128#159#255'y'#129#157#255'x'#128#159#255 +'x'#128#157#255'y'#127#156#255'{'#127#157#255'y'#128#160#255'w}'#157#255'x|' +#156#255'y}'#156#255'v~'#156#255'w}'#155#255'w|'#154#255'v{'#153#255'v{'#153 +#255't|'#153#255'lq'#141#255'RUj'#255'01='#255#17#17#21#255#4#4#5#254#0#0#0 +#247#0#0#0#215#0#0#0#151#0#0#0'E'#0#0#0#16#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#2#0#0#0#20#0#0#0'O'#0#0#0#156#0#0#0#217#0#0#0#246#3#3#4 +#255#14#14#16#255'#$-'#255';?O'#255'NSg'#255'UYq'#255'VZs'#255'XZr'#255'Z[q' +#255'WZp'#255'Y\p'#255'Y^s'#255'X^t'#255'Z]s'#255'[_s'#255'Z^t'#255'Z^u'#255 +'\_s'#255'[`p'#255'_bt'#255'`ax'#255'`ay'#255'`cz'#255'_cy'#255'`dy'#255'`e{' +#255'ae}'#255'bf~'#255'bg}'#255'bg~'#255'dg'#128#255'eh'#129#255'ei'#128#255 +'dj'#127#255'ej'#127#255'gk'#128#255'hk'#130#255'jl'#132#255'im'#134#255'im' +#134#255'jm'#133#255'kq'#138#255'ko'#136#255'lq'#138#255'ms'#141#255'mt'#144 +#255'nv'#146#255'nw'#148#255'pw'#149#255'rx'#149#255'tw'#148#255'oy'#149#255 +'pz'#150#255'rz'#150#255'sy'#150#255'sz'#150#255't{'#151#255'u{'#151#255't|' +#152#255'r|'#152#255't|'#154#255'v|'#153#255'v|'#152#255'w}'#153#255'v}'#154 +#255'w}'#155#255'w~'#155#255'w'#127#155#255'w'#127#155#255'w'#127#155#255'y' +#128#156#255'z'#128#157#255'{'#127#156#255'{'#127#158#255'y'#127#159#255'y' +#127#157#255'y'#127#155#255'z'#128#156#255'z'#128#157#255'y~'#155#255'x~'#155 +#255'x'#127#156#255'y~'#156#255'y'#127#157#255'w'#127#155#255'u'#127#154#255 +'w'#127#155#255'z'#127#156#255'y~'#156#255'x~'#157#255'w~'#158#255'z'#127#156 +#255'w~'#154#255'w~'#154#255'x}'#155#255'y|'#154#255'x~'#155#255'v}'#155#255 +'v{'#154#255'u{'#152#255't{'#152#255'v|'#154#255'w{'#153#255'vz'#151#255'sy' +#150#255'rw'#147#255'fk'#133#255'IL_'#255'''&2'#255#11#11#14#255#2#2#3#254#0 +#0#0#241#0#0#0#200#0#0#0#131#0#0#0'5'#0#0#0#11#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#13#0#0#0'='#0#0#0#137#0#0#0#205#0#0#0#245#1 +#1#1#254#9#9#10#255#28#29'$'#255'57G'#255'JMc'#255'SVm'#255'VZp'#255'XZp'#255 +'XZn'#255'WZp'#255'X[o'#255'Y\q'#255'Z[s'#255'[[s'#255']]s'#255'\]s'#255'[]r' +#255'[]r'#255']_s'#255']_s'#255'^_u'#255'_au'#255'_au'#255'_`u'#255'`bw'#255 +'acx'#255'bcx'#255'acz'#255'aez'#255'aez'#255'be{'#255'dh~'#255'bi~'#255'di' +#127#255'fj'#129#255'fj'#131#255'fj'#130#255'fj'#132#255'gk'#131#255'hk'#132 +#255'jj'#134#255'im'#135#255'go'#136#255'io'#134#255'ko'#135#255'lr'#140#255 +'ks'#143#255'lv'#147#255'mv'#148#255'ou'#146#255'qv'#147#255'ou'#145#255'pv' +#146#255'px'#147#255'px'#148#255'qz'#151#255's{'#152#255's{'#152#255'r|'#152 +#255's|'#154#255'ry'#151#255'sz'#150#255't|'#151#255'u|'#152#255'vz'#151#255 +'v{'#151#255'v|'#152#255'v|'#152#255'w{'#152#255'w{'#152#255'x}'#154#255'x}' +#154#255'w|'#154#255'y|'#155#255'w|'#154#255'w|'#154#255'x}'#153#255'y}'#154 +#255'x}'#154#255'w}'#153#255'w}'#154#255'w|'#155#255'x|'#154#255'x|'#152#255 +'v|'#151#255'u|'#152#255'u~'#153#255'w~'#154#255'u}'#153#255'u|'#152#255'u{' +#152#255'w|'#153#255'v{'#151#255'u|'#152#255'u{'#154#255'wz'#154#255'u{'#153 +#255'uz'#153#255'uz'#152#255'tz'#151#255'sx'#150#255'sy'#151#255'ux'#150#255 +'vx'#149#255'ux'#148#255'pu'#145#255'_b{'#255'@BR'#255#31#31''''#255#8#8#11 +#255#2#2#2#253#0#0#0#237#0#0#0#188#0#0#0'r'#0#0#0'('#0#0#0#6#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#7#0#0#0','#0#0#0'r'#0#0#0#188 +#0#0#0#237#1#1#0#251#6#6#7#255#21#21#26#255'-.9'#255'FGZ'#255'RSj'#255'VXn' +#255'VXn'#255'WXn'#255'XYn'#255'XZn'#255'YZn'#255'[Zo'#255'[Zp'#255'\\q'#255 +'[\p'#255'[\p'#255'[]q'#255'[]r'#255'\]r'#255'^^t'#255'__t'#255'_`t'#255'^_t' +#255'_at'#255'`at'#255'``u'#255'abx'#255'`cx'#255'`cx'#255'ady'#255'df{'#255 +'cg}'#255'eh'#129#255'fh'#130#255'ei'#130#255'gk'#132#255'fk'#134#255'fl'#135 +#255'hl'#136#255'jm'#138#255'in'#136#255'jp'#139#255'io'#137#255'in'#135#255 +'jn'#137#255'jo'#139#255'kq'#141#255'lt'#143#255'nv'#147#255'pz'#152#255'ox' +#149#255'nx'#150#255'ny'#149#255'nx'#148#255'oy'#150#255'r|'#156#255's'#128 +#160#255's'#129#163#255'u'#129#164#255'u'#127#160#255't}'#158#255's|'#157#255 +'u|'#157#255'v|'#154#255'u{'#151#255's{'#150#255's{'#150#255'uz'#150#255'ty' +#150#255'vy'#150#255'xz'#150#255'xz'#150#255'v{'#152#255'u{'#152#255'vz'#151 +#255'wz'#151#255'vz'#151#255'vz'#151#255'v{'#152#255'u{'#152#255'uz'#151#255 +'x{'#152#255'xy'#151#255'vy'#150#255'tz'#151#255't{'#151#255'u{'#151#255'tz' +#150#255'uz'#150#255'vz'#150#255'uy'#150#255'tz'#151#255'tz'#151#255'sx'#151 +#255'sw'#151#255'uw'#149#255'tw'#150#255'sw'#150#255'sx'#149#255'rw'#148#255 +'rw'#149#255'rw'#148#255'sv'#148#255'ru'#145#255'lo'#139#255'VYo'#255'56D' +#255#22#23#28#255#5#5#7#255#1#1#1#250#0#0#0#225#0#0#0#168#0#0#0'\'#0#0#0#27#0 +#0#0#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3#0#0#0 +#29#0#0#0'\'#0#0#0#166#0#0#0#227#0#0#0#250#3#3#4#255#15#15#18#255'$$-'#255'?' +'?O'#255'POe'#255'UVl'#255'VWn'#255'XWn'#255'XYm'#255'YXm'#255'YXm'#255'ZYm' +#255'[Ym'#255'ZZp'#255'Z[o'#255'Z[n'#255'[]o'#255'[\p'#255'[]p'#255'\]r'#255 ,'^^s'#255'^_s'#255']_s'#255'^_s'#255'__s'#255'_`u'#255'`aw'#255'`aw'#255'`bx' +#255'acx'#255'cdy'#255'dez'#255'ee}'#255'de~'#255'df'#127#255'fi'#129#255'fk' +#132#255'ek'#133#255'el'#135#255'hn'#137#255'hn'#135#255'jn'#137#255'in'#136 +#255'hm'#134#255'hm'#134#255'jm'#136#255'kn'#136#255'lp'#138#255'mt'#143#255 +'ny'#150#255'nz'#154#255'mz'#154#255'my'#151#255'lv'#146#255'mu'#147#255'q{' +#154#255'r'#127#161#255'r'#129#164#255't'#130#165#255'v'#130#166#255'u'#128 +#165#255's'#127#164#255't'#127#163#255'v'#127#161#255'u~'#159#255's~'#158#255 +'r'#127#157#255'r~'#157#255's}'#157#255's|'#155#255'u{'#155#255'w{'#155#255 +'t|'#154#255'tz'#151#255'ux'#149#255'ux'#148#255'sx'#149#255'tx'#149#255'vx' +#149#255'vx'#148#255'tx'#147#255'uy'#149#255'ux'#149#255'ux'#149#255'ty'#149 +#255'sy'#149#255'sx'#149#255'sx'#149#255'tx'#148#255'vw'#148#255'sw'#148#255 +'qw'#149#255'rw'#148#255'sv'#148#255'qu'#148#255'tu'#146#255'su'#147#255'qu' +#147#255'qu'#146#255'qv'#147#255'pv'#147#255'pv'#146#255'pu'#146#255'nr'#144 +#255'ei'#131#255'KNa'#255'*+6'#255#15#15#19#255#3#3#4#254#0#0#0#247#0#0#0#213 +#0#0#0#148#0#0#0'G'#0#0#0#17#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#17#0#0#0'E'#0#0#0#143#0#0#0#213#0#0#0#247#1#1 +#2#255#9#9#12#255#27#28'#'#255'56D'#255'KK\'#255'STi'#255'VVn'#255'XWm'#255 +'XXl'#255'YVl'#255'YWm'#255'XXm'#255'ZYm'#255'YZp'#255'YZo'#255'ZZm'#255'[[m' +#255'\\o'#255'Y\n'#255'[\o'#255']\p'#255'\^p'#255']^r'#255']]s'#255'^^t'#255 +'_`v'#255'__u'#255'``w'#255'``w'#255'aaw'#255'bbx'#255'ccx'#255'bcv'#255'bcx' +#255'bdz'#255'dey'#255'eg}'#255'cg}'#255'ch'#127#255'ek'#130#255'fk'#130#255 +'gj'#129#255'hj'#129#255'hk'#130#255'gl'#132#255'jl'#134#255'll'#134#255'll' +#133#255'jn'#135#255'jq'#140#255'kx'#152#255'ly'#153#255'lu'#147#255'kr'#141 +#255'lq'#141#255'nu'#146#255'nw'#149#255'oy'#152#255'p{'#154#255'r'#127#161 +#255'r'#128#164#255'r'#128#164#255'r'#127#163#255's'#128#164#255't'#130#167 +#255't'#131#168#255's'#131#168#255'r'#131#168#255's'#132#167#255'q'#130#166 +#255'q'#128#166#255's'#129#165#255'r'#127#160#255's{'#154#255'tx'#150#255'sw' +#149#255'qv'#147#255'qv'#147#255'tw'#148#255'uv'#146#255'tv'#145#255'qw'#147 +#255'pw'#147#255'rv'#147#255'sv'#147#255'qv'#147#255'rw'#148#255'qv'#147#255 +'qu'#146#255'ru'#146#255'pv'#146#255'ot'#145#255'pt'#145#255'qu'#146#255'qu' +#145#255'qt'#145#255'ps'#144#255'os'#143#255'ot'#143#255'rs'#145#255'os'#144 +#255'ns'#143#255'ns'#144#255'jo'#141#255'[`y'#255'?AQ'#255' )'#255#9#9#12 +#255#1#1#2#253#0#0#0#243#0#0#0#200#0#0#0#129#0#0#0'6'#0#0#0#9#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#7#0#0#0'0'#0#0 +#0'v'#0#0#0#193#0#0#0#236#1#1#1#251#5#5#6#255#19#19#24#255',+7'#255'DCT'#255 +'POc'#255'TTi'#255'VTj'#255'VVj'#255'VUj'#255'VUj'#255'WWk'#255'XYl'#255'WXk' +#255'WXj'#255'XXk'#255'ZXl'#255'[Ym'#255'XYm'#255'YZn'#255'\\p'#255']]q'#255 +'\]p'#255'\]q'#255'[]q'#255'\]q'#255'_^q'#255'^`q'#255'^`q'#255'^_r'#255'__t' +#255'aau'#255'aaw'#255'aaw'#255'bcv'#255'cdx'#255'bez'#255'cey'#255'dez'#255 +'df|'#255'cg{'#255'dgz'#255'fh}'#255'hi'#128#255'fh}'#255'hi'#127#255'hi'#130 +#255'hj'#132#255'gl'#133#255'gk'#130#255'io'#134#255'iq'#138#255'io'#138#255 +'im'#136#255'kp'#140#255'kp'#137#255'lo'#136#255'mo'#138#255'nq'#142#255'lt' +#144#255'mw'#149#255'ny'#153#255'nz'#153#255'mz'#152#255'n}'#157#255'p~'#160 +#255'r'#128#163#255't'#129#168#255'r'#128#165#255'q'#128#167#255'r'#129#168 +#255's'#130#167#255'p'#129#167#255'r'#128#165#255's~'#162#255'r{'#156#255'py' +#150#255'ox'#150#255'qx'#152#255'qw'#150#255'ou'#145#255'mt'#143#255'nt'#145 +#255'ot'#144#255'os'#143#255'ot'#144#255'rt'#146#255'ps'#143#255'nq'#143#255 +'lq'#143#255'ms'#140#255'or'#144#255'nq'#143#255'mr'#142#255'ls'#143#255'lr' +#141#255'mq'#140#255'nq'#141#255'nq'#141#255'np'#140#255'nn'#140#255'mp'#141 +#255'kp'#140#255'eh'#131#255'QSi'#255'12?'#255#21#21#27#255#4#5#6#255#0#0#1 +#249#0#0#0#231#0#0#0#176#0#0#0'f'#0#0#0'$'#0#0#0#5#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#31#0#0#0'\'#0#0 +#0#169#0#0#0#228#0#0#0#250#3#3#3#255#13#13#17#255'#!)'#255'=:G'#255'NL\'#255 +'UTg'#255'USi'#255'TUg'#255'STf'#255'TUg'#255'VVh'#255'WVg'#255'VWg'#255'VUh' +#255'XVk'#255'YYn'#255'YYm'#255'XXl'#255'YXk'#255'ZYm'#255'[[p'#255'[Zo'#255 +'[[n'#255'[\n'#255'[]o'#255']]n'#255']^n'#255'^_m'#255'^_n'#255']_p'#255'^^q' +#255'__s'#255'_`t'#255'^at'#255'_cv'#255'adv'#255'bbs'#255'bbt'#255'bdx'#255 +'ady'#255'cdz'#255'be{'#255'cf{'#255'gg{'#255'gg|'#255'gh~'#255'gi'#127#255 +'fh'#127#255'hi'#128#255'fm'#130#255'ek'#131#255'gj'#131#255'il'#133#255'ik' +#132#255'il'#133#255'im'#133#255'km'#133#255'lm'#135#255'jo'#137#255'jq'#139 +#255'kq'#140#255'jo'#139#255'ip'#139#255'jq'#141#255'ls'#143#255'mv'#147#255 +'nx'#151#255'o{'#155#255'o|'#160#255'p|'#160#255'p|'#158#255'n{'#159#255'n{' +#158#255'o|'#158#255'p|'#158#255'p{'#157#255'q|'#157#255'q{'#157#255'p{'#157 +#255'p{'#155#255'ow'#148#255'lq'#142#255'mp'#141#255'nr'#142#255'mr'#142#255 ,'mq'#140#255'nr'#139#255'lp'#138#255'jo'#137#255'lq'#138#255'nq'#142#255'lp' +#141#255'ko'#139#255'jo'#138#255'jn'#136#255'in'#136#255'jn'#136#255'ln'#137 +#255'ln'#137#255'ml'#138#255'lm'#138#255'hl'#135#255']by'#255'EGY'#255'%%0' +#255#14#14#18#255#2#3#3#255#0#0#0#247#0#0#0#219#0#0#0#153#0#0#0'N'#0#0#0#22#0 +#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#17#0#0#0'C'#0#0#0#142#0#0#0#212#0#0#0#244#1#1#1#254#8#8#10 +#255#25#24#29#255'31:'#255'HFS'#255'RQb'#255'SSg'#255'RSg'#255'SRe'#255'TTe' +#255'UTd'#255'VSd'#255'UUg'#255'WUi'#255'XUj'#255'WVk'#255'WXl'#255'XWk'#255 +'XWi'#255'XXj'#255'ZXl'#255'ZWm'#255'[Ym'#255'[[n'#255'\[o'#255'[[m'#255'\[m' +#255'\]l'#255'\^l'#255'[^m'#255']^o'#255'^`p'#255']`p'#255'\_q'#255'^at'#255 +'_as'#255'`aq'#255'abs'#255'abv'#255'`bt'#255'ccy'#255'adz'#255'aey'#255'ffz' +#255'edy'#255'ef{'#255'fg|'#255'ff|'#255'gg}'#255'fi'#127#255'eh'#128#255'fh' +#128#255'hj'#127#255'gh'#127#255'gj'#129#255'gk'#130#255'hl'#130#255'il'#131 +#255'hl'#132#255'hl'#133#255'im'#134#255'im'#135#255'hl'#134#255'im'#135#255 +'kn'#136#255'lo'#137#255'lp'#139#255'lr'#143#255'mt'#146#255'mt'#147#255'kt' +#147#255'kv'#149#255'lv'#148#255'lv'#149#255'mw'#149#255'nx'#150#255'nx'#150 +#255'nw'#151#255'nw'#151#255'ow'#150#255'nu'#146#255'lq'#142#255'kp'#140#255 +'kp'#139#255'lo'#138#255'in'#135#255'jn'#136#255'jn'#136#255'jm'#135#255'ln' +#136#255'ln'#138#255'km'#137#255'jm'#136#255'im'#136#255'im'#135#255'hm'#134 +#255'im'#133#255'jl'#134#255'ik'#134#255'il'#135#255'jk'#135#255'ef'#127#255 +'TXl'#255'79G'#255#25#26' '#255#7#8#10#255#1#1#1#252#0#0#0#239#0#0#0#198#0#0 +#0'}'#0#0#0'6'#0#0#0#10#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#7#0#0#0','#0#0#0'p'#0#0#0#189#0#0#0 +#234#0#0#0#252#4#4#5#255#16#16#19#255'(''/'#255'>=I'#255'LK\'#255'QRe'#255'S' +'Rf'#255'UQe'#255'URd'#255'URb'#255'URc'#255'USh'#255'WTi'#255'WTh'#255'WTh' +#255'WVi'#255'XUh'#255'WVh'#255'WWi'#255'ZWj'#255'YVl'#255'ZYm'#255'[Zn'#255 +'[Zn'#255'ZZm'#255'[Zm'#255'[\m'#255'Z]m'#255'Z]m'#255'\^n'#255']_o'#255'\^n' +#255'\^p'#255'_`t'#255'^_s'#255'_ar'#255'`bs'#255'`bu'#255'`br'#255'bbv'#255 +'bbw'#255'bcw'#255'cdx'#255'bcw'#255'ccy'#255'ddz'#255'ee{'#255'dez'#255'ef|' +#255'ff}'#255'ff}'#255'fg{'#255'gh|'#255'fh|'#255'ei~'#255'fj'#128#255'fk' +#128#255'gj'#129#255'gj'#130#255'hl'#133#255'im'#134#255'hl'#131#255'im'#133 +#255'jm'#133#255'kl'#134#255'kk'#135#255'kj'#135#255'jl'#135#255'jn'#137#255 +'io'#139#255'jp'#140#255'kp'#140#255'jo'#139#255'jo'#138#255'lq'#138#255'ip' +#137#255'iq'#139#255'jq'#140#255'mp'#138#255'lp'#139#255'lq'#141#255'jp'#140 +#255'io'#138#255'jn'#137#255'gm'#135#255'gl'#135#255'il'#135#255'jl'#135#255 +'jl'#135#255'jj'#134#255'jj'#133#255'ik'#133#255'hl'#134#255'il'#134#255'il' +#132#255'ik'#132#255'hk'#132#255'gj'#132#255'gl'#134#255'gj'#131#255'_`w'#255 +'IK\'#255')*5'#255#16#16#20#255#3#3#4#254#0#0#0#248#0#0#0#227#0#0#0#171#0#0#0 +'_'#0#0#0'!'#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#26#0#0#0'Q'#0#0#0#161#0#0#0 +#220#0#0#0#249#2#2#3#255#10#10#12#255#28#29'$'#255'33@'#255'EEW'#255'PPb'#255 +'URc'#255'WPd'#255'WQd'#255'VRc'#255'URc'#255'VRi'#255'URg'#255'WSf'#255'YTg' +#255'WUh'#255'XTd'#255'WUf'#255'VWj'#255'XXk'#255'ZXk'#255'ZYl'#255'YYm'#255 +'YYm'#255'ZZl'#255'[\l'#255'Z[m'#255'Z[m'#255'[\l'#255'Z[m'#255'[\m'#255'\]p' +#255'^]s'#255'`_u'#255'_^s'#255'^^r'#255'^`r'#255'^ar'#255'_at'#255'_`s'#255 +'a`s'#255'a`s'#255'`au'#255'abv'#255'abv'#255'bcx'#255'cdz'#255'ccy'#255'ddz' +#255'ddz'#255'ddz'#255'eez'#255'fg{'#255'df{'#255'df}'#255'eg'#127#255'eh' +#127#255'gi'#128#255'gi'#129#255'gh'#129#255'gh'#128#255'hj'#127#255'gk'#127 +#255'hj'#129#255'ij'#130#255'ij'#133#255'jj'#132#255'hj'#131#255'hk'#133#255 +'jl'#135#255'ij'#134#255'hj'#132#255'hj'#132#255'ik'#132#255'lk'#131#255'fk' +#132#255'dl'#132#255'gl'#131#255'kl'#132#255'im'#134#255'in'#137#255'io'#139 +#255'ho'#140#255'gn'#138#255'gm'#138#255'in'#138#255'im'#136#255'hk'#134#255 +'il'#137#255'hi'#133#255'ii'#132#255'ij'#132#255'gj'#132#255'hj'#131#255'jj' +#131#255'ii'#130#255'gh'#130#255'fj'#132#255'gj'#133#255'cg'#129#255'UWm'#255 +';;I'#255#28#29'$'#255#10#10#13#255#1#1#3#254#0#0#0#244#0#0#0#212#0#0#0#143#0 +#0#0'D'#0#0#0#18#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#13#0#0#0'6'#0#0#0#127#0#0 +#0#196#0#0#0#237#1#1#2#252#5#5#6#255#19#18#23#255')''2'#255'>=L'#255'KL^'#255 +'ROb'#255'TPe'#255'UQd'#255'TRc'#255'SSf'#255'SQe'#255'URd'#255'VRd'#255'URd' +#255'VSf'#255'XTg'#255'WUh'#255'VUh'#255'VVh'#255'VUg'#255'VUk'#255'WUl'#255 +'YUj'#255'ZVj'#255'ZYk'#255'ZXk'#255'ZXk'#255'ZZk'#255']Zp'#255'][o'#255'\\o' +#255'\\p'#255'\\p'#255'_\o'#255'^^p'#255'\^q'#255'\^q'#255']^s'#255'^_r'#255 +'__r'#255'`_t'#255'__u'#255'^aw'#255'^bw'#255'_bw'#255'aax'#255'aay'#255'aaw' +#255'bcw'#255'cdx'#255'cdz'#255'cdz'#255'df{'#255'df{'#255'de{'#255'dd}'#255 ,'fg}'#255'fg}'#255'ff}'#255'ff}'#255'fg~'#255'gh'#127#255'gg'#127#255'gg'#127 +#255'gg'#130#255'gh'#131#255'hh'#129#255'fi'#128#255'ei'#129#255'gh'#130#255 +'hi'#130#255'gi'#130#255'fh'#129#255'gh'#130#255'gi'#132#255'gj'#129#255'hj' +#129#255'hj'#131#255'gk'#134#255'fl'#134#255'gk'#135#255'ik'#138#255'jl'#138 +#255'hk'#137#255'hk'#136#255'ij'#135#255'ii'#134#255'ij'#135#255'hi'#132#255 +'hi'#132#255'gi'#132#255'fi'#131#255'hj'#128#255'hi'#128#255'gh'#128#255'eg' +#129#255'dg'#130#255'ef'#130#255'\^w'#255'GI\'#255'+,7'#255#17#17#22#255#5#5 +#5#255#0#0#0#251#0#0#0#230#0#0#0#184#0#0#0'l'#0#0#0'+'#0#0#0#7#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#5#0#0#0' '#0#0#0']'#0#0#0#169#0#0#0#224#0#0#0#249#2#2#2 +#254#11#10#13#255#30#27'"'#255'31<'#255'ECS'#255'NK^'#255'RNa'#255'RNa'#255 +'ROa'#255'RPd'#255'TPb'#255'UPb'#255'SPa'#255'QQa'#255'TRe'#255'UQe'#255'USg' +#255'USf'#255'TRb'#255'TTe'#255'WSh'#255'XUj'#255'WWi'#255'XVh'#255'XWj'#255 +'WWj'#255'WWi'#255'XYj'#255'YYm'#255'YXl'#255'YYk'#255'[Zk'#255'\Zk'#255'[[k' +#255'[\m'#255'Z\m'#255'Z\l'#255'[]p'#255'[]r'#255'\]q'#255']]q'#255']^r'#255 +']^s'#255']_q'#255']_q'#255']_r'#255'^`u'#255'^_t'#255'_`t'#255'abv'#255'bby' +#255'abw'#255'abx'#255'bcx'#255'bdx'#255'bcx'#255'cdx'#255'ddy'#255'dey'#255 +'cdy'#255'ce{'#255'dd}'#255'ed|'#255'edz'#255'de}'#255'fg'#127#255'dg}'#255 +'bg|'#255'bf{'#255'dg|'#255'fh~'#255'eg|'#255'de|'#255'dd~'#255'df}'#255'eg}' +#255'ef~'#255'ef'#127#255'dh~'#255'bi'#127#255'ch'#130#255'fi'#132#255'gi' +#132#255'gg'#133#255'eh'#132#255'ej'#133#255'fj'#133#255'gh'#130#255'ei'#131 +#255'ei'#129#255'dh'#128#255'cg'#127#255'bg|'#255'bf}'#255'bf'#127#255'bg' +#128#255'bf'#128#255'_ax'#255'QSg'#255'99H'#255#28#29'$'#255#10#10#12#255#2#2 +#3#254#0#0#0#245#0#0#0#214#0#0#0#153#0#0#0'K'#0#0#0#23#0#0#0#1#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#1#0#0#0#16#0#0#0'>'#0#0#0#137#0#0#0#202#0#0#0#241#1#1#1 +#251#5#5#6#255#18#17#20#255'&$+'#255':9D'#255'HGU'#255'OL\'#255'PM^'#255'ON_' +#255'QO`'#255'RO^'#255'RO_'#255'PO`'#255'PO`'#255'QQb'#255'QOb'#255'SQd'#255 +'TRd'#255'URb'#255'SRb'#255'VRd'#255'VTf'#255'UVf'#255'VUe'#255'UUh'#255'UUh' +#255'UVh'#255'VWi'#255'VWj'#255'VWk'#255'WWj'#255'YXi'#255'[Xh'#255'XYi'#255 +'XZj'#255'ZZi'#255'Z[i'#255'Z[n'#255'Z[q'#255'Z[o'#255'[\m'#255'\]o'#255'\\n' +#255'\]m'#255'\]l'#255'\]m'#255'\^o'#255'\^p'#255']^p'#255'__s'#255'``v'#255 +'_`t'#255'_`t'#255'`at'#255'_bt'#255'^bt'#255'``s'#255'abt'#255'acu'#255'`bu' +#255'`cw'#255'bcy'#255'cbx'#255'cbw'#255'bdz'#255'cdz'#255'ae{'#255'`ey'#255 +'`dw'#255'adx'#255'cey'#255'ddy'#255'ccz'#255'bc{'#255'bdy'#255'cey'#255'cdz' +#255'cc{'#255'bez'#255'`ez'#255'ae{'#255'bf|'#255'cf|'#255'ce~'#255'bf'#127 +#255'bg'#127#255'bg'#127#255'ce|'#255'cf'#127#255'bg~'#255'ag}'#255'`e~'#255 +'^e|'#255'_d|'#255'_d|'#255'_d}'#255'`b{'#255'XZn'#255'DET'#255')*3'#255#16 +#16#20#255#5#5#5#255#1#1#1#250#0#0#0#232#0#0#0#188#0#0#0'u'#0#0#0'/'#0#0#0#10 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#6#0#0#0'%'#0#0#0'd'#0#0#0 +#171#0#0#0#224#0#0#0#247#1#1#2#254#10#8#11#255#25#24#29#255'--5'#255'AAJ'#255 +'LJW'#255'NM]'#255'MN^'#255'PM\'#255'OM['#255'OO\'#255'OO^'#255'PN_'#255'OO_' +#255'QO_'#255'QO`'#255'SQc'#255'VSe'#255'RQ`'#255'RRa'#255'SRb'#255'TSc'#255 +'VSc'#255'UTg'#255'TTf'#255'UTf'#255'VUg'#255'UUg'#255'VWk'#255'VWk'#255'WWi' +#255'YXh'#255'WXg'#255'WXh'#255'YYh'#255'[Yh'#255'ZXl'#255'YYo'#255'YZl'#255 +'Z[i'#255'\]m'#255'[\l'#255'[\k'#255'\\k'#255'\\k'#255'\]m'#255'\\n'#255']]n' +#255']^p'#255']_r'#255']^r'#255'^_r'#255'^`q'#255']`p'#255'\ar'#255'^_q'#255 +'_`q'#255'^`q'#255'_`r'#255'`at'#255'`bu'#255'aat'#255'a`u'#255'`cx'#255'_bw' +#255'acx'#255'acx'#255'_bv'#255'`bw'#255'aav'#255'bcx'#255'bdy'#255'acy'#255 +'bbx'#255'ady'#255'adx'#255'acx'#255'bdy'#255'abw'#255'`bv'#255'`bu'#255'`bv' +#255'`bw'#255'`cx'#255'`cx'#255'`bw'#255'abv'#255'bbz'#255'`cy'#255'_dz'#255 +'_d}'#255'^c}'#255'`c{'#255'_by'#255'^aw'#255']\s'#255'NOa'#255'45@'#255#26 +#26' '#255#7#8#10#255#1#1#1#254#0#0#0#243#0#0#0#211#0#0#0#153#0#0#0'O'#0#0#0 +#24#0#0#0#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#16#0#0#0 +'@'#0#0#0#134#0#0#0#202#0#0#0#241#0#1#0#252#4#4#5#255#15#13#17#255'!'#31'%' +#255'64?'#255'FDS'#255'MK\'#255'OL]'#255'QK\'#255'SL]'#255'QL\'#255'PL]'#255 +'QM_'#255'SN_'#255'SO_'#255'SN_'#255'TN`'#255'VPb'#255'TQb'#255'RRc'#255'RRc' +#255'TQd'#255'WQf'#255'XSh'#255'WRe'#255'WSc'#255'WTe'#255'VSe'#255'VTg'#255 +'UVh'#255'TVg'#255'VWf'#255'XWe'#255'WWg'#255'WWh'#255'WWg'#255'WWi'#255'VXl' +#255'VYk'#255'XZi'#255'ZZi'#255'YZk'#255'ZZl'#255'[[l'#255'[\m'#255'\\n'#255 +'_Zp'#255'^[n'#255'\]m'#255'\]o'#255'\\p'#255']]p'#255'\]o'#255'[]o'#255']_t' +#255'^_t'#255']^r'#255']^o'#255'^_o'#255'^_s'#255'^_r'#255'^_r'#255'^_t'#255 ,'_`u'#255'_`v'#255'__u'#255'``v'#255'aaw'#255'_av'#255'_`u'#255'`at'#255'`bt' +#255'_`u'#255'`ax'#255'``x'#255'``w'#255'`av'#255'bcw'#255'`bw'#255'`av'#255 +'`at'#255'`as'#255'aav'#255'`av'#255'_at'#255'_`t'#255'`av'#255'_`t'#255'_at' +#255'_au'#255'^aw'#255'_`w'#255'`av'#255'`bv'#255']_s'#255'STg'#255'??N'#255 +'##,'#255#14#14#17#255#3#3#4#255#0#0#0#250#0#0#0#232#0#0#0#184#0#0#0'r'#0#0#0 +'.'#0#0#0#9#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#4#0#0#0'#'#0#0#0'^'#0#0#0#164#0#0#0#221#0#0#0#246#1#0#1#255#7#6#8#255#21#19 +#24#255'+''/'#255'=9F'#255'KFW'#255'QK_'#255'PJ_'#255'QJ^'#255'RM_'#255'RN`' +#255'RM`'#255'QM^'#255'QN^'#255'RN_'#255'RN`'#255'RO`'#255'TOa'#255'UPc'#255 +'UPc'#255'UOb'#255'UQc'#255'UQe'#255'WRd'#255'XSd'#255'YSd'#255'ZSd'#255'WUf' +#255'WVf'#255'YUe'#255'WSd'#255'ZUd'#255'XVe'#255'WVg'#255'YVi'#255'YYj'#255 +'XXh'#255'XWg'#255'YWh'#255'YXj'#255'Z[l'#255'Z[l'#255'[Zl'#255'\[l'#255'[Zm' +#255'[Zn'#255'\Zn'#255'\[m'#255'][l'#255'[[l'#255'\]m'#255']]m'#255'\]m'#255 +'\]o'#255'\]m'#255']^p'#255'^_q'#255']]n'#255'^\q'#255'^^q'#255'^_q'#255'^_s' +#255'__u'#255'__t'#255'`_t'#255'__u'#255'^_u'#255'^_s'#255'_`s'#255'_`s'#255 +'^_s'#255'^^t'#255'``v'#255'`^v'#255'`^u'#255'_`u'#255'_au'#255'a`v'#255'a_u' +#255'``s'#255'``r'#255'`_u'#255'__t'#255'``t'#255'a`t'#255'_`t'#255'_`t'#255 +'^`s'#255'^_t'#255'__w'#255'a`w'#255'``u'#255'^`q'#255'VYj'#255'FHZ'#255'--9' +#255#22#22#27#255#6#6#8#255#1#1#1#254#0#0#0#243#0#0#0#208#0#0#0#145#0#0#0'K' +#0#0#0#22#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#14#0#0#0'9'#0#0#0'y'#0#0#0#190#0#0#0#234#0#0#0#251#3#3#3#255 +#12#11#13#255#29#26'!'#255'3.8'#255'E>M'#255'OH['#255'PJ`'#255'PJ]'#255'QL^' +#255'RL`'#255'RLa'#255'PM_'#255'RM^'#255'RM_'#255'RMa'#255'QNb'#255'UNb'#255 +'WN`'#255'WO`'#255'VPa'#255'VQb'#255'TPd'#255'VQc'#255'WRc'#255'VRc'#255'YRc' +#255'VTe'#255'WSd'#255'ZSc'#255'YSf'#255'ZTd'#255'ZUf'#255'ZVh'#255'ZVi'#255 +'ZXh'#255'XWg'#255'XWg'#255'XWh'#255'XXi'#255'[Yk'#255'ZYl'#255'ZYl'#255'\Yk' +#255'\Yl'#255'ZYn'#255'[Ym'#255'\Yl'#255'\[n'#255'[Zn'#255'][n'#255'^\m'#255 +']\l'#255'\\l'#255'\\j'#255'\]n'#255']^q'#255'^\p'#255'^\q'#255']^p'#255'\_q' +#255']_s'#255'^^s'#255'_]p'#255'`]q'#255'_^r'#255'^]q'#255'^^q'#255'^^p'#255 +'^^r'#255'^^t'#255'^^u'#255'_^t'#255'`^s'#255'_^s'#255'^^t'#255'__s'#255'a^t' +#255'b^t'#255'a^r'#255'_^s'#255'^_t'#255'__s'#255'`_r'#255'`_q'#255'__p'#255 +'`_s'#255'_^r'#255'_^r'#255'_^s'#255'`_v'#255'`_v'#255'Z[o'#255'MN^'#255'68E' +#254#29#29'%'#255#12#12#15#255#3#3#3#255#0#0#0#248#0#0#0#229#0#0#0#176#0#0#0 +'j'#0#0#0'*'#0#0#0#7#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#3#0#0#0#28#0#0#0'P'#0#0#0#151#0#0#0#211#0#0#0#242 +#1#1#1#253#5#5#6#255#16#15#19#255'%"('#255':4@'#255'IBS'#255'OI]'#255'QJ[' +#255'QJ^'#255'RK`'#255'SK`'#255'QL`'#255'SM`'#255'SL`'#255'RLa'#255'SMc'#255 +'VNb'#255'WN^'#255'VO^'#255'VPa'#255'WQb'#255'UOb'#255'VOa'#255'VPa'#255'TPc' +#255'VPc'#255'URe'#255'VRc'#255'XRb'#255'YTh'#255'XSf'#255'YTg'#255'ZUh'#255 +'[Ug'#255'ZUe'#255'XVe'#255'XWg'#255'XWh'#255'WWh'#255'ZWj'#255'ZWk'#255'[Wk' +#255'\Wl'#255'\Xl'#255'[Xm'#255'[Xl'#255'[Xl'#255'\Yo'#255'[Zp'#255']Yo'#255 +']Zn'#255'\[m'#255'\[l'#255'][m'#255'\\n'#255'\[o'#255'][q'#255'^]q'#255']]o' +#255'\^p'#255'\^q'#255']]q'#255'_\o'#255'_]o'#255'^]p'#255'^]o'#255'^^q'#255 +'^\p'#255'^]q'#255'^]s'#255']]t'#255'_\s'#255'_]q'#255'^]q'#255'_]r'#255'`^s' +#255'_]s'#255'`]q'#255'`]q'#255'^]r'#255'^^t'#255'^^s'#255'^]q'#255'^]o'#255 +'_]o'#255'_]q'#255'`\p'#255'_\o'#255'^\p'#255'^]s'#255'^[r'#255'SQe'#255'?>M' +#255'%&.'#254#16#16#20#255#5#5#6#255#1#1#1#252#0#0#0#238#0#0#0#202#0#0#0#136 +#0#0#0'D'#0#0#0#19#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#10#0#0#0','#0#0#0'j'#0#0#0#176#0#0#0 +#225#0#0#0#249#1#1#1#255#7#6#8#255#23#20#25#255'+''0'#255'>9H'#255'KEW'#255 +'QIZ'#255'SJ^'#255'SJ_'#255'SK]'#255'PK^'#255'SL`'#255'RLa'#255'QLa'#255'SLa' +#255'VN_'#255'UN_'#255'UOa'#255'UPa'#255'UO`'#255'VN^'#255'WN_'#255'WNa'#255 +'UOd'#255'VPe'#255'UPe'#255'URe'#255'USe'#255'VTf'#255'WSh'#255'WSg'#255'WSe' +#255'YSe'#255'ZTc'#255'WTc'#255'XUe'#255'ZUg'#255'XUh'#255'XXj'#255'[Wi'#255 +'\Vj'#255'[Vl'#255'[Wm'#255'[Wl'#255'[Xl'#255'[Xm'#255']Wm'#255'\Yn'#255'\Wm' +#255'[Xm'#255'[Zo'#255']Zo'#255']Yq'#255']Yo'#255'\Yn'#255'[Yn'#255'_[q'#255 +'^[o'#255'\[o'#255'\\o'#255'\\o'#255'^\p'#255']\n'#255']\n'#255'^\o'#255'_\q' +#255'][r'#255'^[q'#255'^\q'#255'\[q'#255'_]s'#255'^[p'#255'^\o'#255'_]p'#255 +'_]t'#255'^]r'#255']\n'#255'^\m'#255'`\p'#255']\s'#255'\[r'#255'\[q'#255'\[p' +#255'_\q'#255'\Zp'#255'^Zn'#255'^[o'#255'][p'#255'\[o'#255'WRe'#255'GBQ'#255 ,'.,6'#255#21#20#25#255#7#7#9#255#1#1#1#254#0#0#0#246#0#0#0#220#0#0#0#163#0#0 +#0'\'#0#0#0'$'#0#0#0#5#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#19#0#0#0'?'#0#0#0#135#0 +#0#0#198#0#0#0#236#0#0#0#251#3#2#3#255#11#9#13#255#28#24#31#255'0+7'#255'A;O' +#255'MFW'#255'PI['#255'PI['#255'OHZ'#255'PJ\'#255'PK^'#255'PK`'#255'QKb'#255 +'RLb'#255'SJ]'#255'TL]'#255'TL`'#255'SLa'#255'TL^'#255'SM]'#255'VN_'#255'XNb' +#255'WNb'#255'UPb'#255'TOc'#255'SPe'#255'SQe'#255'TQc'#255'VPd'#255'WPc'#255 +'WQc'#255'VSd'#255'VQb'#255'WSc'#255'WTd'#255'XSe'#255'XQg'#255'XTg'#255'XTf' +#255'XTf'#255'WTg'#255'WUh'#255'ZWi'#255'YWj'#255'XVj'#255'ZUi'#255'XWj'#255 +'ZVh'#255'[Wf'#255'ZWf'#255'ZVj'#255'\Wk'#255'[Xm'#255'ZYo'#255'[Yo'#255']Vn' +#255']Wn'#255']Xm'#255'\Ym'#255']Ym'#255'ZXl'#255'XYj'#255'YYj'#255'\Yl'#255 +']Yk'#255']Yo'#255'^Zo'#255'^[n'#255'\[m'#255']Zm'#255'][o'#255'][n'#255']Zk' +#255']Yn'#255'_[n'#255'^[o'#255'\[o'#255'\Zo'#255']Zq'#255'[Yp'#255'ZZo'#255 +'[[o'#255'\[o'#255'\[o'#255'][n'#255'][p'#255'\Yq'#255'VUi'#255'IGW'#255'41<' +#255#28#26' '#255#9#8#11#255#2#2#3#254#0#0#0#248#0#0#0#229#0#0#0#189#0#0#0'x' +#0#0#0'6'#0#0#0#14#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#6#0#0#0' '#0#0#0'Y' +#0#0#0#156#0#0#0#212#0#0#0#244#0#0#0#254#5#4#5#255#14#13#16#255#30#28'"'#255 +'2-:'#255'C=K'#255'KEU'#255'LHY'#255'KJZ'#255'LI['#255'MJ['#255'NH['#255'PH\' +#255'RJ^'#255'RI\'#255'PJZ'#255'PK['#255'QJ\'#255'QJ['#255'TK\'#255'VL\'#255 +'VL]'#255'VM^'#255'TM^'#255'RN_'#255'RN`'#255'SN`'#255'TOa'#255'TOa'#255'UPa' +#255'UPa'#255'SPb'#255'TPa'#255'TR`'#255'URa'#255'VQc'#255'WQe'#255'VRe'#255 +'VRf'#255'VRf'#255'VSe'#255'UTe'#255'WTg'#255'WTh'#255'VTg'#255'WTh'#255'VUh' +#255'WUg'#255'XUf'#255'YUe'#255'ZUg'#255'\Ug'#255'YUg'#255'WVh'#255'WVk'#255 +'YWk'#255'YVj'#255'ZVi'#255'[Wh'#255'[Xh'#255'ZXh'#255'XXg'#255'XXj'#255'[Ym' +#255'\Xj'#255'\Vj'#255']Wj'#255'\Yk'#255'YXj'#255'[Xi'#255'[Xi'#255'ZYj'#255 +'ZXk'#255'[Wk'#255'\Xm'#255'\Ym'#255'[Yl'#255'YYl'#255'[Wl'#255'ZXl'#255'YXl' +#255'YXl'#255'YXl'#255'XXk'#255'YYj'#255'ZXj'#255'WSh'#255'JHY'#255'65B'#255 +' '#31'&'#255#14#13#16#255#4#4#5#255#0#0#1#253#0#0#0#239#0#0#0#202#0#0#0#143 +#0#0#0'K'#0#0#0#25#0#0#0#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#12#0 +#0#0'0'#0#0#0'm'#0#0#0#175#0#0#0#225#0#0#0#246#1#1#1#254#6#5#6#255#16#15#17 +#255'!'#30'%'#255'5/;'#255'C>L'#255'IFV'#255'KIY'#255'LHY'#255'LHX'#255'NGW' +#255'PGX'#255'PHY'#255'PI['#255'NIY'#255'NJY'#255'PJZ'#255'PIZ'#255'SJZ'#255 +'TK['#255'TK\'#255'TK\'#255'SK\'#255'RM\'#255'RM\'#255'SL]'#255'TM_'#255'TN`' +#255'TO_'#255'TO_'#255'SO_'#255'UO_'#255'TP`'#255'TP`'#255'VPa'#255'WPb'#255 +'UQe'#255'UQe'#255'VQd'#255'USc'#255'TSc'#255'VSe'#255'URe'#255'USf'#255'VSg' +#255'WSh'#255'WTg'#255'XTg'#255'YSf'#255'YUe'#255'YTg'#255'XSf'#255'WSe'#255 +'WTf'#255'VVh'#255'VVg'#255'WUf'#255'YUf'#255'[Vh'#255'ZWh'#255'ZWg'#255'YWh' +#255'YWj'#255'ZWh'#255'[Vi'#255'[Vj'#255'ZVj'#255'XVi'#255'[Vj'#255'YVi'#255 +'XWj'#255'YWl'#255'ZWl'#255'ZWl'#255'ZXk'#255'ZWj'#255'YWj'#255'[Vi'#255'YWk' +#255'YWl'#255'YWk'#255'YVk'#255'XWj'#255'ZWh'#255'WSc'#255'LHY'#255'97D'#255 +'##+'#255#16#16#20#255#5#4#5#255#1#1#2#253#0#0#0#245#0#0#0#217#0#0#0#164#0#0 +#0'`'#0#0#0'%'#0#0#0#8#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#2#0#0#0#19#0#0#0'A'#0#0#0#128#0#0#0#190#0#0#0#229#0#0#0#248#1#1#2#255#7#6#8 +#255#19#16#20#255'% )'#255'72?'#255'C?N'#255'JDU'#255'NEV'#255'MFV'#255'OGW' +#255'PGW'#255'OGV'#255'OIY'#255'MHX'#255'NIX'#255'OKZ'#255'PIZ'#255'QIY'#255 +'RJ['#255'RK]'#255'QJ\'#255'RK]'#255'PL['#255'PL\'#255'RK^'#255'SK^'#255'SL_' +#255'SM_'#255'TM^'#255'UN^'#255'VM_'#255'UN`'#255'UO`'#255'VO_'#255'UO_'#255 +'SQd'#255'VPd'#255'VPb'#255'TR`'#255'TSb'#255'VRb'#255'TRd'#255'TRe'#255'VRf' +#255'XRg'#255'YSg'#255'YRf'#255'YRe'#255'XSc'#255'WSh'#255'WSg'#255'XSe'#255 +'WSd'#255'VSe'#255'WUf'#255'WUf'#255'XTg'#255'ZUj'#255'ZUj'#255'ZVg'#255'XUe' +#255'WTf'#255'XUf'#255'ZVi'#255'YVj'#255'YUi'#255'YUh'#255'\Ul'#255'YVl'#255 +'XVk'#255'YVl'#255'[Wl'#255'YWk'#255'XVi'#255'YVi'#255'ZUi'#255'ZUh'#255'XVj' +#255'XVl'#255'YVk'#255'[Uj'#255'ZVj'#255'XRe'#255'OIY'#255'<9F'#255'&$-'#255 +#19#19#23#255#7#7#8#255#1#1#1#253#0#0#0#247#0#0#0#226#0#0#0#179#0#0#0't'#0#0 +#0'6'#0#0#0#12#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#3#0#0#0#29#0#0#0'M'#0#0#0#140#0#0#0#201#0#0#0#236#1#0#1#250#3#2#3 +#254#8#7#9#255#21#18#23#255'''"*'#255'72>'#255'D=N'#255'LCT'#255'NDU'#255'NE' +'W'#255'NFX'#255'NGV'#255'NGV'#255'NFU'#255'NGW'#255'OHZ'#255'NGY'#255'QHX' +#255'PIZ'#255'OJ\'#255'OI]'#255'OJ\'#255'LJZ'#255'NJ]'#255'QJ`'#255'SK]'#255 +'PL\'#255'RM]'#255'TM^'#255'UL^'#255'UK^'#255'RK_'#255'TL_'#255'TN^'#255'RO^' +#255'QN`'#255'SOb'#255'TOb'#255'TP_'#255'UQ`'#255'VO`'#255'UQc'#255'UQc'#255 +'UO_'#255'VPe'#255'XQf'#255'WQc'#255'VP`'#255'WQb'#255'WQd'#255'XQd'#255'XRd' +#255'USd'#255'WRe'#255'VSe'#255'WTe'#255'YTf'#255'WSg'#255'WTi'#255'VSf'#255 +'VTe'#255'VVg'#255'XUi'#255'WSf'#255'WSf'#255'XTf'#255'YTe'#255'ZSh'#255'YTi' +#255'XUj'#255'WTi'#255'YTh'#255'YTg'#255'XTg'#255'XTh'#255'XTj'#255'USd'#255 +'VTg'#255'XTh'#255'XSh'#255'WSg'#255'TQc'#255'MIY'#255'>:H'#255')&1'#255#20 +#19#24#255#8#7#9#255#2#2#3#253#0#1#0#247#0#0#0#233#0#0#0#194#0#0#0#129#0#0#0 +'B'#0#0#0#21#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#8#0#0#0'%'#0#0#0'W'#0#0#0#152#0#0#0#205#0#0#0#239#0#0 +#0#253#2#2#2#255#10#9#11#255#22#20#24#255'%"+'#255'61>'#255'E7E'#255'E=L'#255'IAS'#255'I@R'#255'JAR'#255 +'KCS'#255'LCS'#255'LBS'#255'MDT'#255'MEU'#255'MDU'#255'KCT'#255'MDU'#255'NEU' +#255'NFU'#255'MEU'#255'OFY'#255'LFW'#255'LFW'#255'NFX'#255'PFW'#255'OGV'#255 +'MFU'#255'MGW'#255'NHY'#255'LGV'#255'PIZ'#255'QH['#255'PH['#255'PIZ'#255'PHW' +#255'OJY'#255'NJZ'#255'OJY'#255'RHY'#255'RIY'#255'QIY'#255'RJZ'#255'SJZ'#255 +'RHZ'#255'TI]'#255'RI\'#255'PJ['#255'OK\'#255'PK\'#255'OJ\'#255'QJ]'#255'SJ^' +#255'SJ['#255'RJY'#255'QJ['#255'RJ^'#255'SJ_'#255'RL['#255'QJ\'#255'RJ]'#255 +'RK^'#255'PK^'#255'PI\'#255'KEV'#255'C>L'#255'72>'#255'($,'#255#25#22#27#255 +#12#11#14#255#4#4#5#255#1#1#1#253#0#0#0#249#0#0#0#234#0#0#0#204#0#0#0#157#0#0 +#0'd'#0#0#0'2'#0#0#0#17#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3#0#0#0#20#0#0#0':'#0#0 +#0'm'#0#0#0#164#0#0#0#211#0#0#0#236#0#0#1#248#1#1#1#254#4#3#4#255#10#9#10#255 +#20#17#22#255' '#30'%'#255'-*3'#255':3?'#255'B:H'#255'E=M'#255'G@P'#255'HAQ' +#255'IAP'#255'J@P'#255'KAQ'#255'KBQ'#255'KBQ'#255'JAR'#255'KBR'#255'JCR'#255 +'KCR'#255'KCS'#255'KCU'#255'JDT'#255'KEU'#255'MEV'#255'NDU'#255'MDS'#255'KES' +#255'KFS'#255'LFU'#255'KGV'#255'NGX'#255'PGX'#255'OGW'#255'MGW'#255'NGU'#255 +'OHV'#255'OHX'#255'OHX'#255'PHX'#255'NHX'#255'NHX'#255'OIX'#255'PIY'#255'PFZ' +#255'QG\'#255'QHZ'#255'PHX'#255'OIY'#255'OHY'#255'MIZ'#255'MI\'#255'PI]'#255 ,'RJZ'#255'RIX'#255'QIY'#255'RI['#255'TJ]'#255'QJZ'#255'OHY'#255'NH['#255'LJ[' +#255'KEW'#255'F@Q'#255'=8F'#255'0,7'#255'!'#30'&'#255#19#17#21#255#9#8#10#255 +#3#3#3#255#0#0#0#253#0#0#0#246#0#0#0#231#0#0#0#201#0#0#0#153#0#0#0'_'#0#0#0 +'/'#0#0#0#15#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#18#0#0#0 +'4'#0#0#0'f'#0#0#0#156#0#0#0#201#0#0#0#231#0#0#0#247#1#0#1#253#3#2#3#255#6#5 +#6#255#14#13#16#255#25#23#28#255'''!*'#255'3+6'#255'<7D'#255'A;K'#255'D=L' +#255'F>M'#255'IN'#255'G@O'#255'IAO'#255'H@N'#255'GAO'#255'FAN'#255 +'GAO'#255'IBP'#255'KBQ'#255'IAP'#255'JBQ'#255'KCR'#255'LBQ'#255'LCQ'#255'KDR' +#255'KDR'#255'KCR'#255'KFU'#255'JCU'#255'KDT'#255'KET'#255'IDT'#255'JDT'#255 +'JDR'#255'LDS'#255'NDT'#255'LFU'#255'IET'#255'KET'#255'LFT'#255'KGU'#255'LEW' +#255'MFW'#255'MFV'#255'MFW'#255'NHZ'#255'MFW'#255'MHX'#255'LHZ'#255'LGZ'#255 +'OHY'#255'NGW'#255'PHY'#255'QIZ'#255'OHX'#255'OGW'#255'PHW'#255'KGT'#255'CBO' +#255'?:H'#255'5/='#255'($-'#255#26#24#29#255#15#13#16#255#5#4#6#255#2#1#3#255 +#1#0#1#252#0#0#0#244#0#0#0#229#0#0#0#193#0#0#0#144#0#0#0'Z'#0#0#0'+'#0#0#0#13 +#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3#0#0#0#16#0#0 +#0'.'#0#0#0'Z'#0#0#0#142#0#0#0#190#0#0#0#223#0#0#0#243#0#0#0#253#1#1#1#254#5 +#5#5#255#11#10#12#255#20#17#22#255' '#28'"'#255'+&0'#255'40;'#255'=7C'#255'E' +';I'#255'G;I'#255'H>O'#255'I@Q'#255'I@P'#255'F?P'#255'GAR'#255'J@Q'#255'I@O' +#255'GAO'#255'IAO'#255'HAP'#255'IBQ'#255'KBQ'#255'KBR'#255'JBQ'#255'ICO'#255 +'IDQ'#255'JDT'#255'ICS'#255'GDU'#255'GCS'#255'ICR'#255'KDT'#255'KDT'#255'LET' +#255'MFU'#255'MEV'#255'KEU'#255'IES'#255'LFV'#255'MGX'#255'KEU'#255'LDV'#255 +'MDV'#255'MDU'#255'MDT'#255'MFU'#255'KGV'#255'LHZ'#255'MHZ'#255'NFX'#255'NEU' +#255'MFX'#255'NGY'#255'PHX'#255'OHV'#255'NET'#255'HAO'#255'@M'#255'H>O'#255'G>P'#255'J@Q'#255'J@P'#255'I@P' +#255'HAP'#255'IAO'#255'JBQ'#255'KBR'#255'LBR'#255'KBR'#255'IAR'#255'JBR'#255 +'JCS'#255'JCS'#255'KAS'#255'JCT'#255'JDT'#255'LDS'#255'MCS'#255'LDS'#255'LDS' +#255'LET'#255'LEU'#255'MDT'#255'MCS'#255'NDW'#255'NEX'#255'LEU'#255'MFV'#255 +'LDT'#255'LCS'#255'MCS'#255'NDT'#255'LGW'#255'LFY'#255'MEX'#255'NFW'#255'OEU' +#255'NEX'#255'MEX'#255'KDT'#255'HAO'#255'D;J'#255'94?'#255'-*3'#255'!'#30'&' +#255#22#19#24#255#13#11#14#255#7#6#7#255#3#2#3#255#1#0#1#254#0#0#0#245#0#0#0 +#232#0#0#0#204#0#0#0#163#0#0#0's'#0#0#0'C'#0#0#0#31#0#0#0#9#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#8#0#0#0#28#0#0#0'>'#0#0#0'l'#0#0#0#156#0#0#0#197#0#0#0#225#0#0#0#244 +#0#0#0#252#1#2#1#254#3#3#4#255#8#8#9#255#16#14#17#255#25#21#27#255'$'#31'''' +#255'.)3'#255'60;'#255'=4A'#255'B8G'#255'D;K'#255'G>M'#255'H@O'#255'I@O'#255 +'H@P'#255'H?O'#255'JAQ'#255'KAR'#255'KAQ'#255'KBQ'#255'I@R'#255'JBS'#255'JBR' +#255'IBQ'#255'JBR'#255'KBR'#255'LCS'#255'LCR'#255'KCQ'#255'KCR'#255'KCR'#255 +'KCR'#255'LCS'#255'MCR'#255'MBR'#255'MBU'#255'MCU'#255'MDR'#255'MFT'#255'LDT' +#255'LDS'#255'MDS'#255'LDT'#255'LFW'#255'LEW'#255'MDV'#255'LDU'#255'LCS'#255 +'JAR'#255'E>N'#255'?9G'#255'83?'#255'0)4'#255'$ ('#255#24#22#28#255#14#13#16 +#255#8#6#8#255#3#2#3#255#1#1#1#254#0#0#0#250#0#0#0#241#0#0#0#220#0#0#0#187#0 +#0#0#145#0#0#0'b'#0#0#0'5'#0#0#0#22#0#0#0#5#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#3#0#0#0#19#0#0#0'0'#0#0#0'X'#0#0#0#135#0#0#0#182#0#0#0#214#0#0#0#234 +#0#0#0#246#0#0#0#253#2#1#2#254#4#3#5#255#9#7#9#255#16#13#17#255#25#21#26#255 +'"'#29'$'#255'+%-'#255'2,6'#255'91>'#255'=7E'#255'B;J'#255'F=L'#255'G=M'#255 +'E=M'#255'H?P'#255'I@P'#255'I@P'#255'JAP'#255'H@Q'#255'I@O'#255'IAO'#255'HAO' +#255'GCQ'#255'JAQ'#255'KAP'#255'IBP'#255'GCP'#255'HBQ'#255'IBQ'#255'K@Q'#255 +'L?Q'#255'KBP'#255'IAQ'#255'IAR'#255'JBQ'#255'LBP'#255'KCR'#255'LDU'#255'MDT' +#255'LCS'#255'HCS'#255'JCS'#255'KBR'#255'IAP'#255'F>N'#255'C:J'#255'=6D'#255 +'4/;'#255'+''0'#255'" &'#255#24#21#26#255#16#13#18#255#8#7#10#255#3#3#3#255#2 +#1#2#253#0#0#0#252#0#0#0#244#0#0#0#229#0#0#0#206#0#0#0#171#0#0#0'{'#0#0#0'M' +#0#0#0'('#0#0#0#13#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#1#0#0#0#11#0#0#0'!'#0#0#0'D'#0#0#0'p'#0#0#0#155#0#0#0#194#0#0#0#225 +#0#0#0#240#0#0#0#247#1#1#1#253#2#2#2#255#5#4#5#255#8#7#9#255#14#13#15#255#22 +#19#23#255#30#25' '#255'% )'#255'-''2'#255'4-9'#255':2?'#255'@6D'#255'A9G' +#255'DL'#255'I>N'#255'I=N'#255'I@Q'#255'I@O'#255'H@O'#255'H@P'#255 +'K@O'#255'J>N'#255'H>N'#255'H@O'#255'IAQ'#255'JAR'#255'J@R'#255'K?Q'#255'L?P' +#255'IAQ'#255'J@O'#255'H?O'#255'H@O'#255'JAP'#255'KBQ'#255'KAU'#255'K?S'#255 +'J>P'#255'F?O'#255'F=K'#255'B9H'#255'<4C'#255'7/<'#255'/(3'#255'&!*'#255#28 +#26' '#255#19#18#23#255#13#11#14#255#7#6#8#255#4#4#5#255#2#2#2#255#0#0#0#253 +#0#0#0#247#0#0#0#235#0#0#0#215#0#0#0#184#0#0#0#141#0#0#0'c'#0#0#0':'#0#0#0#26 +#0#0#0#6#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#6#0#0#0#21#0#0#0'1'#0#0#0'U'#0#0#0#127#0#0#0#167#0#0#0 +#199#0#0#0#225#0#0#0#240#0#0#0#248#1#0#1#253#2#2#2#255#4#3#4#255#7#6#8#255#12 +#10#12#255#18#15#18#255#23#20#25#255#30#25' '#255'&'#31''''#255',%.'#255'0+5' +#255'6/;'#255';2?'#255'>4B'#255'A6C'#255'B9G'#255'B;J'#255'BM'#255 +'E=K'#255'G?L'#255'G>L'#255'H=M'#255'H>O'#255'G>O'#255'H?O'#255'H?O'#255'H?P' +#255'I@R'#255'J>N'#255'G>M'#255'E?M'#255'F?M'#255'G>K'#255'D;J'#255'A8I'#255 +'=5E'#255'91?'#255'5.8'#255'-''1'#255'%!*'#255#30#27'"'#255#23#20#25#255#17 +#14#18#255#11#10#12#255#6#6#7#255#4#3#5#255#1#1#2#255#0#0#1#252#0#0#0#246#0#0 +#0#236#0#0#0#221#0#0#0#190#0#0#0#153#0#0#0'p'#0#0#0'H'#0#0#0''''#0#0#0#16#0#0 +#0#4#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#12#0#0#0#31#0#0#0'<'#0#0#0'`'#0#0 +#0#132#0#0#0#170#0#0#0#199#0#0#0#222#0#0#0#240#0#0#0#247#0#0#0#252#1#1#1#254 +#2#2#2#255#5#4#5#255#8#6#8#255#12#10#13#255#17#14#18#255#22#18#24#255#26#24 +#29#255'!'#28'#'#255'& ('#255'+#-'#255'/''1'#255'2+5'#255'4.:'#255'60='#255 +'72?'#255'83>'#255'93>'#255':3>'#255';3?'#255'=4B'#255'>6D'#255'@8E'#255'@8E' +#255'>8E'#255'>7F'#255'>5C'#255'=5A'#255':4@'#255'92>'#255'70:'#255'2+6'#255 +'.''3'#255')#.'#255'#'#31'&'#255#30#26' '#255#23#20#25#255#16#15#19#255#12#11 +#14#255#7#7#8#255#5#4#5#255#2#2#2#255#1#1#1#254#0#0#1#252#0#0#0#245#0#0#0#236 +#0#0#0#218#0#0#0#192#0#0#0#161#0#0#0'z'#0#0#0'S'#0#0#0'1'#0#0#0#23#0#0#0#7#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3#0#0#0#15#0#0#0 +'#'#0#0#0'?'#0#0#0'b'#0#0#0#134#0#0#0#169#0#0#0#200#0#0#0#217#0#0#0#235#0#0#0 +#244#0#0#0#248#0#0#1#251#1#0#1#254#2#2#3#255#4#3#5#255#7#5#7#255#10#8#10#255 +#13#11#14#255#17#14#18#255#21#17#22#255#25#21#27#255#29#24#31#255' '#28'#' +#255'#'#30''''#255'% ('#255'% '''#255'#'#31'&'#255'#'#30'&'#255'%'#31'('#255 +'''"+'#255'+&/'#255'/(3'#255'/)3'#255'-(1'#255'+''0'#255'*%.'#255')#-'#255 +'''!+'#255'$'#30''''#255' '#28'"'#255#27#24#30#255#24#20#25#255#20#16#21#255 +#14#13#16#255#11#9#11#255#7#6#7#255#4#4#4#255#2#2#2#255#1#1#0#254#0#0#0#251#0 +#0#0#247#0#0#0#241#0#0#0#232#0#0#0#212#0#0#0#191#0#0#0#162#0#0#0'}'#0#0#0'X' +#0#0#0'6'#0#0#0#28#0#0#0#10#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3#0#0#0#14#0#0#0'"'#0#0#0'='#0#0 +#0'_'#0#0#0#130#0#0#0#161#0#0#0#191#0#0#0#211#0#0#0#225#0#0#0#237#0#0#0#243#0 +#1#0#249#1#1#1#252#1#1#1#254#2#2#2#255#3#2#3#255#4#3#5#255#6#5#7#255#7#6#8 +#255#9#7#10#255#12#10#13#255#15#12#15#255#15#13#16#255#14#12#14#255#13#11#13 +#255#11#9#12#255#11#9#13#255#16#13#17#255#20#17#21#255#22#20#25#255#23#20#26 +#255#23#19#25#255#22#19#24#255#20#17#21#255#18#15#20#255#16#14#18#255#13#11 +#15#255#11#10#12#255#9#8#9#255#7#6#7#255#5#4#5#255#3#2#4#255#3#2#3#255#1#1#1 +#253#0#0#0#251#0#0#0#249#0#0#0#242#0#0#0#235#0#0#0#222#0#0#0#205#0#0#0#184#0 +#0#0#151#0#0#0'w'#0#0#0'V'#0#0#0'7'#0#0#0#29#0#0#0#11#0#0#0#2#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#1#0#0#0#5#0#0#0#16#0#0#0' '#0#0#0'8'#0#0#0'T'#0#0#0'q'#0#0 +#0#140#0#0#0#167#0#0#0#193#0#0#0#210#0#0#0#226#0#0#0#237#0#0#0#243#0#0#0#249 +#0#0#0#252#1#1#1#253#1#1#2#254#1#1#2#254#2#1#2#254#3#2#3#254#4#3#4#255#4#3#4 +#255#3#2#3#255#2#2#2#255#1#1#1#255#1#1#2#255#3#2#4#255#5#4#6#255#6#6#8#255#7 +#6#8#255#7#6#7#255#7#6#8#255#5#5#5#255#5#4#5#255#4#3#4#255#2#2#3#254#3#2#3 +#253#2#2#2#254#2#2#2#254#1#1#1#252#0#0#0#251#0#0#0#248#0#0#0#242#0#0#0#236#0 +#0#0#226#0#0#0#208#0#0#0#188#0#0#0#161#0#0#0#132#0#0#0'g'#0#0#0'J'#0#0#0'1'#0 +#0#0#28#0#0#0#12#0#0#0#4#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#1#0#0#0#5#0#0#0#14#0#0#0#27#0#0#0'-'#0#0#0'C'#0#0#0'['#0#0#0 +'u'#0#0#0#141#0#0#0#166#0#0#0#185#0#0#0#200#0#0#0#215#0#0#0#225#0#0#0#234#0#0 +#0#241#0#0#0#245#0#0#0#249#0#0#0#250#0#0#0#251#0#0#0#253#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#1#1#253#1#1#1#254#1#1#1#255#1#1#1 +#252#0#0#0#255#0#0#0#253#0#0#0#251#0#0#0#251#0#0#0#248#0#0#0#245#0#0#0#241#0 +#0#0#235#0#0#0#227#0#0#0#218#0#0#0#202#0#0#0#184#0#0#0#164#0#0#0#137#0#0#0'o' +#0#0#0'T'#0#0#0';'#0#0#0''''#0#0#0#23#0#0#0#11#0#0#0#4#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#2#0#0#0#8#0#0#0#17#0#0#0#30#0#0#0'0'#0#0#0'D'#0#0#0'Z'#0#0#0'o'#0#0 +#0#130#0#0#0#149#0#0#0#165#0#0#0#181#0#0#0#196#0#0#0#206#0#0#0#216#0#0#0#222 ,#0#0#0#227#0#0#0#234#0#0#0#243#0#0#0#249#0#0#0#253#0#0#0#253#0#0#0#249#0#0#0 +#247#0#0#0#241#0#0#0#240#0#0#0#241#0#0#0#235#0#0#0#237#0#0#0#233#0#0#0#228#0 +#0#0#224#0#0#0#218#0#0#0#208#0#0#0#198#0#0#0#185#0#0#0#169#0#0#0#154#0#0#0 +#133#0#0#0'n'#0#0#0'X'#0#0#0'A'#0#0#0','#0#0#0#27#0#0#0#14#0#0#0#5#0#0#0#1#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0 +#7#0#0#0#17#0#0#0#27#0#0#0'('#0#0#0'8'#0#0#0'G'#0#0#0'W'#0#0#0'i'#0#0#0'z'#0 +#0#0#137#0#0#0#151#0#0#0#162#0#0#0#172#0#0#0#185#0#0#0#202#0#0#0#218#0#0#0 +#228#0#0#0#228#0#0#0#219#0#0#0#212#0#0#0#203#0#0#0#200#0#0#0#198#0#0#0#193#0 +#0#0#189#0#0#0#183#0#0#0#174#0#0#0#165#0#0#0#155#0#0#0#140#0#0#0'~'#0#0#0'n' +#0#0#0'\'#0#0#0'L'#0#0#0':'#0#0#0')'#0#0#0#27#0#0#0#15#0#0#0#6#0#0#0#1#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#6#0#0#0#11#0#0#0#16#0#0#0#25#0#0 +#0'"'#0#0#0'-'#0#0#0'9'#0#0#0'D'#0#0#0'M'#0#0#0'W'#0#0#0'e'#0#0#0'z'#0#0#0 +#143#0#0#0#157#0#0#0#159#0#0#0#148#0#0#0#137#0#0#0'~'#0#0#0'y'#0#0#0'v'#0#0#0 +'q'#0#0#0'k'#0#0#0'c'#0#0#0'Z'#0#0#0'Q'#0#0#0'F'#0#0#0';'#0#0#0'0'#0#0#0'%'#0 +#0#0#27#0#0#0#18#0#0#0#11#0#0#0#6#0#0#0#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#1#0#0#0#3#0#0#0#5#0#0 +#0#8#0#0#0#11#0#0#0#16#0#0#0#20#0#0#0#25#0#0#0#31#0#0#0'*'#0#0#0'8'#0#0#0'A' +#0#0#0'B'#0#0#0'='#0#0#0'4'#0#0#0'1'#0#0#0'/'#0#0#0'-'#0#0#0'*'#0#0#0'%'#0#0 +#0' '#0#0#0#27#0#0#0#23#0#0#0#18#0#0#0#13#0#0#0#9#0#0#0#6#0#0#0#3#0#0#0#2#0#0 +#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#1#0#0#0#1#0#0#0#3#0#0#0#6#0#0#0#10#0#0#0#12#0#0#0#13#0#0#0#12#0#0#0#9 +#0#0#0#8#0#0#0#8#0#0#0#8#0#0#0#7#0#0#0#5#0#0#0#3#0#0#0#2#0#0#0#1#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7 +#8'FormShow'#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#7'2.2.0.4'#0 +#10'TToggleBox'#8'Vmonitor'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorS' +'ideTop.Control'#7#5'Owner'#4'Left'#2#2#6'Height'#2#25#3'Top'#2#2#5'Width'#2 +'n'#18'BorderSpacing.Left'#2#2#17'BorderSpacing.Top'#2#2#7'Caption'#6#7'Moni' +'tor'#8'OnChange'#7#14'VmonitorChange'#8'TabOrder'#2#0#0#0#9'TGroupBox'#15'V' +'SampleGroupBox'#4'Left'#2#2#6'Height'#2'c'#3'Top'#3#145#0#5'Width'#2'n'#7'C' +'aption'#6#6'Sample'#12'ClientHeight'#2'L'#11'ClientWidth'#2'j'#8'TabOrder'#2 +#1#0#7'TButton'#16'SampleTempButton'#4'Left'#2#4#6'Height'#2#25#3'Top'#2#1#5 +'Width'#2'`'#7'Caption'#6#12'Temeperature'#7'OnClick'#7#21'SampleTempButtonC' +'lick'#8'TabOrder'#2#0#0#0#7'TButton'#15'SampleMagButton'#4'Left'#2#4#6'Heig' +'ht'#2#25#3'Top'#2#27#5'Width'#2'`'#7'Caption'#6#9'Magnetics'#7'OnClick'#7#20 +'SampleMagButtonClick'#8'TabOrder'#2#1#0#0#7'TButton'#17'SampleAccelButton'#4 +'Left'#2#4#6'Height'#2#25#3'Top'#2'5'#5'Width'#2'`'#7'Caption'#6#13'Accelera' +'tions'#7'OnClick'#7#22'SampleAccelButtonClick'#8'TabOrder'#2#2#0#0#0#12'TLa' +'beledEdit'#13'OpenGLVersion'#18'AnchorSideTop.Side'#7#9'asrBottom'#24'Ancho' +'rSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4 +'Left'#2's'#6'Height'#2#31#3'Top'#3'L'#2#5'Width'#3'%'#1#7'Anchors'#11#6'akL' +'eft'#8'akBottom'#0#16'EditLabel.Height'#2#21#15'EditLabel.Width'#2't'#17'Ed' +'itLabel.Caption'#6#15'OpenGL Version:'#13'LabelPosition'#7#6'lpLeft'#8'TabO' +'rder'#2#2#0#0#9'TCheckBox'#16'SmoothedCheckBox'#4'Left'#2#2#6'Height'#2#23#3 +'Top'#2#31#5'Width'#2'_'#7'Caption'#6#8'Smoothed'#7'Checked'#9#5'State'#7#9 +'cbChecked'#8'TabOrder'#2#3#0#0#9'TSpinEdit'#16'DeadbandSpinEdit'#4'Left'#2 +#16#6'Height'#2#31#4'Hint'#6#8'Deadband'#3'Top'#2'l'#5'Width'#2'J'#8'MaxValu' +'e'#3#232#3#8'TabOrder'#2#4#5'Value'#2'd'#0#0#12'TPageControl'#17'VectorPage' +'Control'#4'Left'#2's'#6'Height'#3'I'#2#3'Top'#2#0#5'Width'#3#135#4#10'Activ' +'ePage'#7#9'TabSheet2'#8'TabIndex'#2#1#8'TabOrder'#2#5#8'OnChange'#7#23'Vect' +'orPageControlChange'#0#9'TTabSheet'#9'TabSheet1'#7'Caption'#6#8'Overview'#12 +'ClientHeight'#3'&'#2#11'ClientWidth'#3#131#4#0#14'TOpenGLControl'#19'Bubble' +'OpenGLControl'#22'AnchorSideLeft.Control'#7#18'AltAzOpenGLControl'#19'Ancho' +'rSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#10'LevelLabel'#18 +'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3'j'#1#6'Height'#3'b'#1#3'Top'#2 +#25#5'Width'#3'b'#1#18'AutoResizeViewport'#9#18'BorderSpacing.Left'#2#4#17'B' +'orderSpacing.Top'#2#2#13'MultiSampling'#2#4#9'AlphaBits'#2#8#7'OnPaint'#7#24 +'BubbleOpenGLControlPaint'#7'Visible'#8#0#0#6'TLabel'#10'LevelLabel'#22'Anch' +'orSideLeft.Control'#7#19'BubbleOpenGLControl'#19'AnchorSideLeft.Side'#7#9'a' +'srCenter'#21'AnchorSideTop.Control'#7#9'TabSheet1'#24'AnchorSideBottom.Cont' +'rol'#7#19'BubbleOpenGLControl'#4'Left'#3#244#1#6'Height'#2#21#3'Top'#2#2#5 +'Width'#2'N'#17'BorderSpacing.Top'#2#2#7'Caption'#6#12'Zenith level'#0#0#14 +'TOpenGLControl'#18'AltAzOpenGLControl'#22'AnchorSideLeft.Control'#7#9'TabSh' +'eet1'#21'AnchorSideTop.Control'#7#10'AltAzLabel'#18'AnchorSideTop.Side'#7#9 +'asrBottom'#4'Left'#2#4#6'Height'#3'b'#1#3'Top'#2#25#5'Width'#3'b'#1#18'Auto' +'ResizeViewport'#9#18'BorderSpacing.Left'#2#4#17'BorderSpacing.Top'#2#2#13'M' +'ultiSampling'#2#4#9'AlphaBits'#2#8#7'OnPaint'#7#23'AltAzOpenGLControlPaint' +#7'Visible'#8#0#0#6'TLabel'#10'AltAzLabel'#22'AnchorSideLeft.Control'#7#18'A' +'ltAzOpenGLControl'#19'AnchorSideLeft.Side'#7#9'asrCenter'#21'AnchorSideTop.' +'Control'#7#9'TabSheet1'#24'AnchorSideBottom.Control'#7#18'AltAzOpenGLContro' +'l'#4'Left'#2'z'#6'Height'#2#21#3'Top'#2#2#5'Width'#2'v'#17'BorderSpacing.To' ,'p'#2#2#7'Caption'#6#17'Altitude, Azimuth'#0#0#12'TLabeledEdit'#9'Valtitude' +#21'AnchorSideTop.Control'#7#18'AltAzOpenGLControl'#18'AnchorSideTop.Side'#7 +#9'asrBottom'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Co' +'ntrol'#7#8'Vazimuth'#4'Left'#2'L'#6'Height'#2'M'#3'Top'#3#127#1#5'Width'#3 +#206#0#7'Anchors'#11#5'akTop'#0#17'BorderSpacing.Top'#2#2#20'BorderSpacing.A' +'round'#2#2#16'EditLabel.Height'#2#21#15'EditLabel.Width'#2'5'#17'EditLabel.' +'Caption'#6#8'Altitude'#11'Font.Height'#2#208#13'LabelPosition'#7#6'lpLeft' +#10'ParentFont'#8#8'TabOrder'#2#2#0#0#12'TLabeledEdit'#8'Vazimuth'#21'Anchor' +'SideTop.Control'#7#9'Valtitude'#18'AnchorSideTop.Side'#7#9'asrBottom'#20'An' +'chorSideRight.Side'#7#9'asrBottom'#21'AnchorSideBottom.Side'#7#9'asrBottom' +#4'Left'#2'L'#6'Height'#2'M'#3'Top'#3#208#1#5'Width'#3#206#0#7'Anchors'#11#5 +'akTop'#0#17'BorderSpacing.Top'#2#2#20'BorderSpacing.Around'#2#2#16'EditLabe' +'l.Height'#2#21#15'EditLabel.Width'#2'9'#17'EditLabel.Caption'#6#7'Azimuth' +#11'Font.Height'#2#208#13'LabelPosition'#7#6'lpLeft'#10'ParentFont'#8#8'TabO' +'rder'#2#3#0#0#6'TLabel'#17'InitialErrorLabel'#4'Left'#2','#6'Height'#2#13#3 +'Top'#3#204#1#5'Width'#3'l'#2#8'AutoSize'#8#0#0#0#9'TTabSheet'#9'TabSheet2'#7 +'Caption'#6#13'Accelerometer'#12'ClientHeight'#3'&'#2#11'ClientWidth'#3#131#4 +#0#7'TButton'#11'SetP5Button'#22'AnchorSideLeft.Control'#7#11'SetP6Button'#21 +'AnchorSideTop.Control'#7#11'SetP4Button'#18'AnchorSideTop.Side'#7#9'asrBott' +'om'#23'AnchorSideRight.Control'#7#11'WStringGrid'#24'AnchorSideBottom.Contr' +'ol'#7#11'SetP6Button'#4'Left'#3#225#1#6'Height'#2#21#3'Top'#3#167#0#5'Width' +#2'<'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#17'BorderSpacing.Top'#2#2#20'Bor' +'derSpacing.Bottom'#2#7#7'Caption'#6#6'Set P5'#7'OnClick'#7#16'SetP5ButtonCl' +'ick'#8'TabOrder'#2#0#0#0#7'TButton'#11'SetP6Button'#22'AnchorSideLeft.Contr' +'ol'#7#11'YStringGrid'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideT' +'op.Control'#7#11'SetP5Button'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'Anch' +'orSideRight.Control'#7#11'WStringGrid'#24'AnchorSideBottom.Control'#7#11'WS' +'tringGrid'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#225#1#6'Heigh' +'t'#2#21#3'Top'#3#195#0#5'Width'#2'<'#7'Anchors'#11#6'akLeft'#8'akBottom'#0 +#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#2#20'BorderSpacing.Bott' +'om'#2#9#7'Caption'#6#6'Set P6'#7'OnClick'#7#16'SetP6ButtonClick'#8'TabOrder' +#2#1#0#0#7'TButton'#11'SetP3Button'#22'AnchorSideLeft.Control'#7#11'SetP4But' +'ton'#21'AnchorSideTop.Control'#7#11'SetP2Button'#18'AnchorSideTop.Side'#7#9 +'asrBottom'#23'AnchorSideRight.Control'#7#11'WStringGrid'#24'AnchorSideBotto' +'m.Control'#7#11'SetP4Button'#4'Left'#3#225#1#6'Height'#2#21#3'Top'#2'o'#5'W' +'idth'#2'<'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#17'BorderSpacing.Top'#2#2 +#20'BorderSpacing.Bottom'#2#7#7'Caption'#6#6'Set P3'#7'OnClick'#7#16'SetP3Bu' +'ttonClick'#8'TabOrder'#2#2#0#0#7'TButton'#11'SetP1Button'#22'AnchorSideLeft' +'.Control'#7#11'SetP2Button'#21'AnchorSideTop.Control'#7#11'WStringGrid'#23 +'AnchorSideRight.Control'#7#11'WStringGrid'#24'AnchorSideBottom.Control'#7#11 +'SetP2Button'#4'Left'#3#225#1#6'Height'#2#21#3'Top'#2'7'#5'Width'#2'<'#7'Anc' +'hors'#11#6'akLeft'#8'akBottom'#0#17'BorderSpacing.Top'#2#2#20'BorderSpacing' +'.Bottom'#2#7#7'Caption'#6#6'Set P1'#7'OnClick'#7#16'SetP1ButtonClick'#8'Tab' +'Order'#2#3#0#0#7'TButton'#11'SetP4Button'#22'AnchorSideLeft.Control'#7#11'S' +'etP5Button'#21'AnchorSideTop.Control'#7#11'SetP3Button'#18'AnchorSideTop.Si' +'de'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#11'WStringGrid'#24'AnchorS' +'ideBottom.Control'#7#11'SetP5Button'#4'Left'#3#225#1#6'Height'#2#21#3'Top'#3 +#139#0#5'Width'#2'<'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#17'BorderSpacing.' +'Top'#2#2#20'BorderSpacing.Bottom'#2#7#7'Caption'#6#6'Set P4'#7'OnClick'#7#16 +'SetP4ButtonClick'#8'TabOrder'#2#4#0#0#7'TButton'#11'SetP2Button'#22'AnchorS' +'ideLeft.Control'#7#11'SetP3Button'#21'AnchorSideTop.Control'#7#11'SetP1Butt' +'on'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#11 +'WStringGrid'#24'AnchorSideBottom.Control'#7#11'SetP3Button'#4'Left'#3#225#1 +#6'Height'#2#21#3'Top'#2'S'#5'Width'#2'<'#7'Anchors'#11#6'akLeft'#8'akBottom' +#0#17'BorderSpacing.Top'#2#2#20'BorderSpacing.Bottom'#2#7#7'Caption'#6#6'Set' +' P2'#7'OnClick'#7#16'SetP2ButtonClick'#8'TabOrder'#2#5#0#0#11'TStringGrid' +#11'YStringGrid'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Con' +'trol'#7#12'YmatrixLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSid' +'eRight.Control'#7#11'SetP1Button'#24'AnchorSideBottom.Control'#7#5'Owner'#21 +'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#215#0#6'Height'#3#201#0#3'T' +'op'#2#25#5'Width'#3#0#1#19'BorderSpacing.Right'#2#5#20'BorderSpacing.Bottom' +#2#2#8'ColCount'#2#4#8'RowCount'#2#7#10'ScrollBars'#7#6'ssNone'#8'TabOrder'#2 +#6#0#0#11'TStringGrid'#11'WStringGrid'#22'AnchorSideLeft.Control'#7#11'SetP6' +'Button'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7 ,#12'WmatrixLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.C' +'ontrol'#7#11'XStringGrid'#24'AnchorSideBottom.Control'#7#5'Owner'#21'Anchor' +'SideBottom.Side'#7#9'asrBottom'#4'Left'#3#31#2#6'Height'#3#202#0#3'Top'#2#23 +#5'Width'#3'B'#1#20'BorderSpacing.Around'#2#2#8'RowCount'#2#7#10'ScrollBars' +#7#6'ssNone'#8'TabOrder'#2#7#0#0#11'TStringGrid'#11'XStringGrid'#22'AnchorSi' +'deLeft.Control'#7#11'WStringGrid'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21 +'AnchorSideTop.Control'#7#12'XmatrixLabel'#18'AnchorSideTop.Side'#7#9'asrBot' +'tom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'as' +'rBottom'#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7 +#9'asrBottom'#4'Left'#3'e'#3#6'Height'#3#139#0#3'Top'#2#23#5'Width'#3#3#1#18 +'BorderSpacing.Left'#2#4#17'BorderSpacing.Top'#2#2#19'BorderSpacing.Right'#2 +#2#8'ColCount'#2#4#10'ScrollBars'#7#6'ssNone'#8'TabOrder'#2#8#0#0#11'TString' +'Grid'#11'AStringGrid'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideT' +'op.Control'#7#6'Label4'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSide' +'Right.Control'#7#11'SetP1Button'#24'AnchorSideBottom.Control'#7#12'YmatrixL' +'abel'#4'Left'#3#215#0#6'Height'#2'Y'#3'Top'#3#10#1#5'Width'#3#2#1#19'Border' +'Spacing.Right'#2#5#20'BorderSpacing.Bottom'#2#7#8'ColCount'#2#4#8'RowCount' +#2#3#10'ScrollBars'#7#6'ssNone'#8'TabOrder'#2#9#0#0#6'TLabel'#12'XmatrixLabe' +'l'#22'AnchorSideLeft.Control'#7#11'XStringGrid'#19'AnchorSideLeft.Side'#7#9 +'asrCenter'#21'AnchorSideTop.Control'#7#9'TabSheet2'#24'AnchorSideBottom.Con' +'trol'#7#11'XStringGrid'#4'Left'#3#141#3#6'Height'#2#21#3'Top'#2#0#5'Width'#3 +#179#0#7'Caption'#6#26'(X) Calibration parameters'#0#0#6'TLabel'#12'WmatrixL' +'abel'#22'AnchorSideLeft.Control'#7#11'WStringGrid'#19'AnchorSideLeft.Side'#7 +#9'asrCenter'#21'AnchorSideTop.Control'#7#9'TabSheet2'#24'AnchorSideBottom.C' +'ontrol'#7#11'WStringGrid'#4'Left'#3#140#2#6'Height'#2#21#3'Top'#2#0#5'Width' +#2'i'#7'Caption'#6#15'(w) Sensor data'#0#0#6'TLabel'#12'YmatrixLabel'#22'Anc' +'horSideLeft.Control'#7#11'YStringGrid'#19'AnchorSideLeft.Side'#7#9'asrCente' +'r'#21'AnchorSideTop.Control'#7#9'TabSheet2'#24'AnchorSideBottom.Control'#7 +#11'YStringGrid'#4'Left'#3#200#0#6'Height'#2#21#3'Top'#2#2#5'Width'#3#30#1#20 +'BorderSpacing.Around'#2#2#7'Caption'#6')(Y) Known normalized earth gravity ' +'vector'#0#0#6'TLabel'#6'Label4'#22'AnchorSideLeft.Control'#7#11'AStringGrid' +#19'AnchorSideLeft.Side'#7#9'asrCenter'#21'AnchorSideTop.Control'#7#9'TabShe' +'et2'#24'AnchorSideBottom.Control'#7#11'AStringGrid'#4'Left'#3#22#1#6'Height' +#2#21#3'Top'#3#245#0#5'Width'#3#133#0#7'Anchors'#11#6'akLeft'#0#7'Caption'#6 +#18'Accelerometer data'#0#0#6'TLabel'#8'Wwarning'#22'AnchorSideLeft.Control' +#7#11'WStringGrid'#21'AnchorSideTop.Control'#7#11'WStringGrid'#18'AnchorSide' +'Top.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#11'WStringGrid'#20'A' +'nchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#31#2#6'Height'#2#14#3'Top'#3 +#228#0#5'Width'#3'B'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoS' +'ize'#8#17'BorderSpacing.Top'#2#3#0#0#0#9'TTabSheet'#9'TabSheet3'#7'Caption' +#6#12'Magnetometer'#12'ClientHeight'#3'&'#2#11'ClientWidth'#3#131#4#0#6'TLab' +'el'#6'Label5'#22'AnchorSideLeft.Control'#7#6'Vmgrid'#19'AnchorSideLeft.Side' +#7#9'asrCenter'#21'AnchorSideTop.Control'#7#9'TabSheet3'#24'AnchorSideBottom' +'.Control'#7#6'Vmgrid'#4'Left'#3'K'#2#6'Height'#2#21#3'Top'#2#255#5'Width'#3 +#136#0#7'Anchors'#11#6'akLeft'#0#17'BorderSpacing.Top'#2#2#7'Caption'#6#17'M' +'agnetometer data'#0#0#11'TStringGrid'#6'Vmgrid'#19'AnchorSideLeft.Side'#7#9 +'asrBottom'#21'AnchorSideTop.Control'#7#6'Label5'#18'AnchorSideTop.Side'#7#9 +'asrBottom'#4'Left'#3#14#2#6'Height'#3#5#1#3'Top'#2#19#5'Width'#3#2#1#7'Anch' +'ors'#11#0#18'BorderSpacing.Left'#2#2#17'BorderSpacing.Top'#2#2#19'BorderSpa' +'cing.Right'#2#5#8'ColCount'#2#4#8'RowCount'#2#9#10'ScrollBars'#7#6'ssNone'#8 +'TabOrder'#2#0#0#0#7'TButton'#15'GetMagCalButton'#4'Left'#3#22#3#6'Height'#2 +#25#3'Top'#2'3'#5'Width'#2'd'#7'Caption'#6#9'GetMagCal'#7'OnClick'#7#20'GetM' +'agCalButtonClick'#8'TabOrder'#2#1#0#0#7'TButton'#15'SetMagCalButton'#4'Left' +#3#22#3#6'Height'#2#25#3'Top'#2'S'#5'Width'#2'd'#7'Caption'#6#9'SetMagCal'#7 +'OnClick'#7#20'SetMagCalButtonClick'#8'TabOrder'#2#2#0#0#14'TOpenGLControl' +#20'MagXCalOpenGLControl'#4'Left'#2#4#6'Height'#3#200#0#3'Top'#3'X'#1#5'Widt' +'h'#3#200#0#13'MultiSampling'#2#3#9'AlphaBits'#2#8#7'OnPaint'#7#25'MagXCalOp' +'enGLControlPaint'#7'Visible'#8#0#0#14'TOpenGLControl'#20'MagYCalOpenGLContr' +'ol'#4'Left'#3#213#0#6'Height'#3#200#0#3'Top'#3'X'#1#5'Width'#3#200#0#13'Mul' +'tiSampling'#2#4#9'AlphaBits'#2#8#7'OnPaint'#7#25'MagYCalOpenGLControlPaint' +#7'Visible'#8#0#0#14'TOpenGLControl'#20'MagZCalOpenGLControl'#4'Left'#3#165#1 +#6'Height'#3#200#0#3'Top'#3'X'#1#5'Width'#3#200#0#13'MultiSampling'#2#4#9'Al' +'phaBits'#2#8#7'OnPaint'#7#25'MagZCalOpenGLControlPaint'#7'Visible'#8#0#0#6 +'TLabel'#6'Label1'#22'AnchorSideLeft.Control'#7#20'MagXCalOpenGLControl'#19 ,'AnchorSideLeft.Side'#7#9'asrCenter'#24'AnchorSideBottom.Control'#7#20'MagXC' +'alOpenGLControl'#4'Left'#2'='#6'Height'#2#21#3'Top'#3'C'#1#5'Width'#2'V'#7 +'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#13'X calibration'#0#0#6'TL' +'abel'#6'Label2'#22'AnchorSideLeft.Control'#7#20'MagYCalOpenGLControl'#19'An' +'chorSideLeft.Side'#7#9'asrCenter'#21'AnchorSideTop.Control'#7#20'MagYCalOpe' +'nGLControl'#18'AnchorSideTop.Side'#7#9'asrBottom'#24'AnchorSideBottom.Contr' +'ol'#7#20'MagYCalOpenGLControl'#4'Left'#3#15#1#6'Height'#2#21#3'Top'#3'C'#1#5 +'Width'#2'U'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#13'Y calibra' +'tion'#0#0#6'TLabel'#6'Label3'#22'AnchorSideLeft.Control'#7#20'MagZCalOpenGL' +'Control'#19'AnchorSideLeft.Side'#7#9'asrCenter'#24'AnchorSideBottom.Control' +#7#20'MagZCalOpenGLControl'#4'Left'#3#223#1#6'Height'#2#21#3'Top'#3'C'#1#5'W' +'idth'#2'U'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#13'Z calibrat' +'ion'#0#0#7'TButton'#17'ResetMagCalButton'#4'Left'#3#22#3#6'Height'#2#25#3'T' +'op'#2#18#5'Width'#2'd'#7'Caption'#6#11'ResetMagCal'#7'OnClick'#7#22'ResetMa' +'gCalButtonClick'#8'TabOrder'#2#6#0#0#14'TOpenGLControl'#22'MRollcompOpenGLC' +'ontrol'#4'Left'#3#133#3#6'Height'#3#250#0#3'Top'#2'('#5'Width'#3#250#0#13'M' +'ultiSampling'#2#4#9'AlphaBits'#2#8#7'Visible'#8#0#0#14'TOpenGLControl'#23'M' +'PitchcompOpenGLControl'#4'Left'#3#136#2#6'Height'#3#250#0#3'Top'#3'&'#1#5'W' +'idth'#3#250#0#13'MultiSampling'#2#4#9'AlphaBits'#2#8#7'Visible'#8#0#0#14'TO' +'penGLControl'#27'MRollPitchcompOpenGLControl'#4'Left'#3#133#3#6'Height'#3 +#250#0#3'Top'#3'&'#1#5'Width'#3#250#0#13'MultiSampling'#2#4#9'AlphaBits'#2#8 +#7'Visible'#8#0#0#9'TCheckBox'#15'MagnetoCheckBox'#4'Left'#3#22#3#6'Height'#2 +#23#3'Top'#3#152#0#5'Width'#2'U'#7'Caption'#6#7'Magneto'#8'TabOrder'#2#10#0#0 +#9'TCheckBox'#14'MinMaxCheckBox'#4'Left'#3#22#3#6'Height'#2#23#3'Top'#2'|'#5 +'Width'#2'O'#7'Caption'#6#6'MinMax'#8'OnChange'#7#20'MinMaxCheckBoxChange'#8 +'TabOrder'#2#11#0#0#5'TMemo'#5'Memo2'#21'AnchorSideTop.Control'#7#23'MagCalI' +'nstructionsLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#16#6'Heig' +'ht'#3''''#1#3'Top'#2#25#5'Width'#3#246#1#17'BorderSpacing.Top'#2#2#13'Lines' +'.Strings'#1#6'I1. Turn off motors and fluorescent lamp that may produce mag' +'netic spikes.'#6'K2. Remove magnetic jewellery/belt/knife, and move away fr' +'om chair and desk.'#6'#3. Press the Monitor toggle button.'#6#29'4. Check t' +'he MinMax checkbox.'#6' 5. Press the ResetMagCal button.'#6'F6. Rotate mete' +'r to center arrow tip and end in circles (6 directions).'#6#31'7. Uncheck t' +'he MinMax checkbox.'#6'?8. Press the SetMagCal button to set the values int' +'o the meter.'#6'H9. Press the GetmagCal button to ensure values were stored' +' in the meter.'#6'&10. Unpress the Monitor toggle button.'#0#8'TabOrder'#2 +#12#0#0#6'TLabel'#23'MagCalInstructionsLabel'#21'AnchorSideTop.Control'#7#9 +'TabSheet3'#4'Left'#2#16#6'Height'#2#21#3'Top'#2#2#5'Width'#3#15#1#17'Border' +'Spacing.Top'#2#2#7'Caption'#6'&Magnetometer Calibration Instructions:'#0#0#0 +#9'TTabSheet'#12'TiltCompPage'#7'Caption'#6#16'Tilt Compensated'#12'ClientHe' +'ight'#3'&'#2#11'ClientWidth'#3#131#4#0#14'TOpenGLControl'#18'AccelOpenGLCon' +'trol'#22'AnchorSideLeft.Control'#7#9'TabSheet2'#21'AnchorSideTop.Control'#7 +#9'TabSheet2'#4'Left'#2#5#6'Height'#3#250#0#3'Top'#2#5#5'Width'#3#250#0#7'An' +'chors'#11#0#18'AutoResizeViewport'#9#20'BorderSpacing.Around'#2#4#13'MultiS' +'ampling'#2#4#9'AlphaBits'#2#8#7'OnPaint'#7#23'AccelOpenGLControlPaint'#7'Vi' +'sible'#8#0#0#14'TOpenGLControl'#15'M1OpenGLControl'#4'Left'#3#11#1#6'Height' +#3#250#0#3'Top'#2#5#5'Width'#3#250#0#7'Anchors'#11#0#13'MultiSampling'#2#4#9 +'AlphaBits'#2#8#7'Visible'#8#0#0#5'TMemo'#5'Memo1'#4'Left'#2#4#6'Height'#3 +#245#0#3'Top'#3#3#1#5'Width'#3#254#1#13'Lines.Strings'#1#6#5'Memo1'#0#8'TabO' +'rder'#2#2#0#0#14'TOpenGLControl'#15'M2OpenGLControl'#22'AnchorSideLeft.Cont' +'rol'#7#9'TabSheet3'#21'AnchorSideTop.Control'#7#9'TabSheet3'#4'Left'#3#12#2 +#6'Height'#3#250#0#3'Top'#2#5#5'Width'#3#250#0#7'Anchors'#11#0#18'AutoResize' +'Viewport'#9#20'BorderSpacing.Around'#2#4#13'MultiSampling'#2#4#9'AlphaBits' +#2#8#7'Visible'#8#0#0#9'TCheckBox'#15'ReverseCheckBox'#4'Left'#3'$'#2#6'Heig' +'ht'#2#23#3'Top'#3#24#1#5'Width'#2'M'#7'Caption'#6#7'Reverse'#8'TabOrder'#2#4 +#0#0#0#9'TTabSheet'#16'HardSoftTabSheet'#7'Caption'#6#19'Hard/Soft Iron test' +#12'ClientHeight'#3'&'#2#11'ClientWidth'#3#131#4#0#14'TOpenGLControl'#21'Har' +'dSoftOpenGLControl'#21'AnchorSideTop.Control'#7#16'HardSoftTabSheet'#4'Left' +#3#224#1#6'Height'#3#244#1#3'Top'#2#2#5'Width'#3#244#1#7'Anchors'#11#5'akTop' +#0#17'BorderSpacing.Top'#2#2#13'MultiSampling'#2#4#9'AlphaBits'#2#8#11'OnMou' +'seDown'#7#30'HardSoftOpenGLControlMouseDown'#11'OnMouseMove'#7#30'HardSoftO' +'penGLControlMouseMove'#7'OnPaint'#7#26'HardSoftOpenGLControlPaint'#7'Visibl' +'e'#8#0#0#10'TToggleBox'#20'HardSoftRecordToggle'#22'AnchorSideLeft.Control' +#7#16'HardSoftTabSheet'#21'AnchorSideTop.Control'#7#16'HardSoftTabSheet'#4'L' ,'eft'#2#2#6'Height'#2#25#4'Hint'#6'#Start recording hard/soft iron test'#3'T' +'op'#2#4#5'Width'#2'F'#18'BorderSpacing.Left'#2#2#17'BorderSpacing.Top'#2#4#7 +'Caption'#6#6'Record'#8'OnChange'#7#26'HardSoftRecordToggleChange'#8'TabOrde' +'r'#2#1#0#0#14'TOpenGLControl'#8'MxPlusGL'#22'AnchorSideLeft.Control'#7#16'H' +'ardSoftTabSheet'#4'Left'#2#2#6'Height'#3#150#0#3'Top'#3#240#0#5'Width'#3#150 +#0#7'Anchors'#11#6'akLeft'#0#18'BorderSpacing.Left'#2#2#13'MultiSampling'#2#4 +#9'AlphaBits'#2#8#7'OnPaint'#7#13'MxPlusGLPaint'#7'Visible'#8#0#0#14'TOpenGL' +'Control'#8'MyPlusGL'#22'AnchorSideLeft.Control'#7#8'MxPlusGL'#19'AnchorSide' +'Left.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#8'MxPlusGL'#4'Left'#3 +#153#0#6'Height'#3#150#0#3'Top'#3#240#0#5'Width'#3#150#0#18'BorderSpacing.Le' +'ft'#2#1#13'MultiSampling'#2#4#9'AlphaBits'#2#8#7'OnPaint'#7#13'MyPlusGLPain' +'t'#7'Visible'#8#0#0#14'TOpenGLControl'#8'MzPlusGL'#22'AnchorSideLeft.Contro' +'l'#7#8'MyPlusGL'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Co' +'ntrol'#7#8'MyPlusGL'#4'Left'#3'0'#1#6'Height'#3#150#0#3'Top'#3#240#0#5'Widt' +'h'#3#150#0#18'BorderSpacing.Left'#2#1#13'MultiSampling'#2#4#9'AlphaBits'#2#8 +#7'OnPaint'#7#13'MzPlusGLPaint'#7'Visible'#8#0#0#14'TOpenGLControl'#9'MxMinu' +'sGL'#22'AnchorSideLeft.Control'#7#8'MxPlusGL'#21'AnchorSideTop.Control'#7#8 +'MxPlusGL'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#2#6'Height'#3#150 +#0#3'Top'#3#135#1#5'Width'#3#150#0#17'BorderSpacing.Top'#2#1#13'MultiSamplin' +'g'#2#4#9'AlphaBits'#2#8#7'OnPaint'#7#14'MxMinusGLPaint'#7'Visible'#8#0#0#14 +'TOpenGLControl'#9'MyMinusGL'#22'AnchorSideLeft.Control'#7#8'MyPlusGL'#21'An' +'chorSideTop.Control'#7#8'MyPlusGL'#18'AnchorSideTop.Side'#7#9'asrBottom'#4 +'Left'#3#153#0#6'Height'#3#150#0#3'Top'#3#135#1#5'Width'#3#150#0#17'BorderSp' +'acing.Top'#2#1#13'MultiSampling'#2#4#9'AlphaBits'#2#8#7'OnPaint'#7#14'MyMin' +'usGLPaint'#7'Visible'#8#0#0#14'TOpenGLControl'#9'MzMinusGL'#22'AnchorSideLe' +'ft.Control'#7#8'MzPlusGL'#21'AnchorSideTop.Control'#7#8'MzPlusGL'#18'Anchor' +'SideTop.Side'#7#9'asrBottom'#4'Left'#3'0'#1#6'Height'#3#150#0#3'Top'#3#135#1 +#5'Width'#3#150#0#17'BorderSpacing.Top'#2#1#13'MultiSampling'#2#4#9'AlphaBit' +'s'#2#8#7'OnPaint'#7#14'MzMinusGLPaint'#7'Visible'#8#0#0#12'TLabeledEdit'#9 +'HSRecords'#22'AnchorSideLeft.Control'#7#20'HardSoftRecordToggle'#21'AnchorS' +'ideTop.Control'#7#20'HardSoftRecordToggle'#18'AnchorSideTop.Side'#7#9'asrBo' +'ttom'#4'Left'#2'y'#6'Height'#2#31#3'Top'#2#28#5'Width'#2'F'#7'Anchors'#11#0 +#17'BorderSpacing.Top'#2#2#16'EditLabel.Height'#2#21#15'EditLabel.Width'#2'7' +#17'EditLabel.Caption'#6#7'Records'#13'LabelPosition'#7#6'lpLeft'#8'TabOrder' +#2#8#0#0#12'TLabeledEdit'#16'HSSavedFileEntry'#21'AnchorSideTop.Control'#7#20 +'HardSoftRecordToggle'#4'Left'#2'y'#6'Height'#2#31#3'Top'#2#4#5'Width'#3'G'#1 +#7'Anchors'#11#5'akTop'#0#16'EditLabel.Height'#2#21#15'EditLabel.Width'#2#28 +#17'EditLabel.Caption'#6#5'File:'#13'LabelPosition'#7#6'lpLeft'#8'TabOrder'#2 +#9#0#0#9'TGroupBox'#9'GroupBox1'#4'Left'#2#4#6'Height'#2'o'#3'Top'#2'x'#5'Wi' +'dth'#3#188#1#7'Caption'#6#3'CSV'#12'ClientHeight'#2'X'#11'ClientWidth'#3#184 +#1#8'TabOrder'#2#10#0#7'TButton'#11'HSCreateCSV'#4'Left'#2#5#6'Height'#2#25#3 +'Top'#2#4#5'Width'#2'F'#7'Caption'#6#6'Export'#7'OnClick'#7#16'HSCreateCSVCl' +'ick'#8'TabOrder'#2#0#0#0#12'TLabeledEdit'#13'HSRawFilename'#4'Left'#3#136#0 +#6'Height'#2#31#3'Top'#2#4#5'Width'#3'('#1#16'EditLabel.Height'#2#21#15'Edit' +'Label.Width'#2':'#17'EditLabel.Caption'#6#9'Raw file:'#13'LabelPosition'#7#6 +'lpLeft'#8'TabOrder'#2#1#0#0#12'TLabeledEdit'#16'HSOffsetFilename'#4'Left'#3 +#136#0#6'Height'#2#31#3'Top'#2' '#5'Width'#3'('#1#16'EditLabel.Height'#2#21 +#15'EditLabel.Width'#2'F'#17'EditLabel.Caption'#6#12'Offset file:'#13'LabelP' +'osition'#7#6'lpLeft'#8'TabOrder'#2#2#0#0#9'TCheckBox'#13'ExportMagneto'#4'L' +'eft'#2#11#6'Height'#2#23#4'Hint'#6#26'No header, space separator'#3'Top'#2 +'@'#5'Width'#2'h'#7'Caption'#6#10'to magneto'#7'Checked'#9#5'State'#7#9'cbCh' +'ecked'#8'TabOrder'#2#3#0#0#0#7'TButton'#6'HSView'#4'Left'#2#2#6'Height'#2#25 +#4'Hint'#6#27'Load saved file into viewer'#3'Top'#2'H'#5'Width'#2'F'#7'Capti' +'on'#6#4'View'#7'Enabled'#8#7'OnClick'#7#11'HSViewClick'#8'TabOrder'#2#11#0#0 +#7'TButton'#12'HSSelectView'#4'Left'#2'Z'#6'Height'#2#25#3'Top'#2'H'#5'Width' +#2'K'#7'Caption'#6#11'Select view'#7'OnClick'#7#17'HSSelectViewClick'#8'TabO' +'rder'#2#12#0#0#9'TCheckBox'#9'HSShowRaw'#4'Left'#3#192#0#6'Height'#2#23#3'T' +'op'#2'H'#5'Width'#2'\'#7'Caption'#6#8'Show raw'#7'Checked'#9#7'OnClick'#7#14 +'HSShowRawClick'#5'State'#7#9'cbChecked'#8'TabOrder'#2#13#0#0#9'TCheckBox'#9 +'HSMagneto'#4'Left'#3#192#0#6'Height'#2#23#3'Top'#2'Z'#5'Width'#2'U'#7'Capti' +'on'#6#7'Magneto'#8'TabOrder'#2#14#0#0#0#0#6'TLabel'#13'Deadbandlabel'#22'An' +'chorSideLeft.Control'#7#16'DeadbandSpinEdit'#18'AnchorSideTop.Side'#7#9'asr' +'Bottom'#24'AnchorSideBottom.Control'#7#16'DeadbandSpinEdit'#4'Left'#2#16#6 +'Height'#2#21#3'Top'#2'U'#5'Width'#2'K'#7'Anchors'#11#6'akLeft'#8'akBottom'#0 ,#20'BorderSpacing.Bottom'#2#2#7'Caption'#6#9'Deadband:'#0#0#10'TIdleTimer'#10 +'IdleTimer1'#7'Enabled'#8#8'Interval'#2#16#7'OnTimer'#7#15'IdleTimer1Timer'#4 +'Left'#2'('#3'Top'#3'h'#1#0#0#6'TTimer'#13'HSSampleTimer'#7'Enabled'#8#8'Int' +'erval'#2'd'#7'OnTimer'#7#18'HSSampleTimerTimer'#4'Left'#2'('#3'Top'#3#160#1 +#0#0#11'TOpenDialog'#11'OpenDialog1'#4'Left'#2'('#3'Top'#3#216#1#0#0#0 ]); ./rotstageunit.lrs0000644000175000017500000000100314576573022014414 0ustar anthonyanthony{ This is an automatically generated lazarus resource file } LazarusResources.Add('TFormRS','FORMDATA',[ 'TPF0'#7'TFormRS'#6'FormRS'#4'Left'#3#9#2#6'Height'#3#240#0#3'Top'#3#214#0#5 +'Width'#3'@'#1#7'Caption'#6#25'Rotational Stage settings'#12'ClientHeight'#3 +#240#0#11'ClientWidth'#3'@'#1#8'OnCreate'#7#10'FormCreate'#10'LCLVersion'#6#3 +'1.1'#0#10'TStatusBar'#11'RSStatusBar'#4'Left'#2#0#6'Height'#2#18#3'Top'#3 +#222#0#5'Width'#3'@'#1#6'Panels'#14#1#5'Width'#2'2'#0#0#11'SimplePanel'#8#0#0 +#0 ]); ./synamisc.pas0000644000175000017500000003156014576573021013507 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 001.003.001 | |==============================================================================| | Content: misc. procedures and functions | |==============================================================================| | Copyright (c)1999-2014, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c) 2002-2010. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@abstract(Miscellaneous network based utilities)} {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$Q-} {$H+} //Kylix does not known UNIX define {$IFDEF LINUX} {$IFNDEF UNIX} {$DEFINE UNIX} {$ENDIF} {$ENDIF} {$TYPEDADDRESS OFF} {$IFDEF UNICODE} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$ENDIF} unit synamisc; interface {$IFDEF VER125} {$DEFINE BCB} {$ENDIF} {$IFDEF BCB} {$ObjExportAll On} {$HPPEMIT '#pragma comment( lib , "wininet.lib" )'} {$ENDIF} uses synautil, blcksock, SysUtils, Classes {$IFDEF UNIX} {$IFNDEF FPC} , Libc {$ENDIF} {$ELSE} , Windows {$ENDIF} ; Type {:@abstract(This record contains information about proxy settings.)} TProxySetting = record Host: string; Port: string; Bypass: string; end; {:With this function you can turn on a computer on the network, if this computer supports Wake-on-LAN feature. You need the MAC address (network card identifier) of the computer. You can also assign a target IP addres. If you do not specify it, then broadcast is used to deliver magic wake-on-LAN packet. However broadcasts work only on your local network. When you need to wake-up a computer on another network, you must specify any existing IP addres on same network segment as targeting computer.} procedure WakeOnLan(MAC, IP: string); {:Autodetect current DNS servers used by the system. If more than one DNS server is defined, then the result is comma-delimited.} function GetDNS: string; {:Autodetect InternetExplorer proxy setting for given protocol. This function works only on windows!} function GetIEProxy(protocol: string): TProxySetting; {:Return all known IP addresses on the local system. Addresses are divided by comma/comma-delimited.} function GetLocalIPs: string; implementation {==============================================================================} procedure WakeOnLan(MAC, IP: string); var sock: TUDPBlockSocket; HexMac: Ansistring; data: Ansistring; n: integer; b: Byte; begin if MAC <> '' then begin MAC := ReplaceString(MAC, '-', ''); MAC := ReplaceString(MAC, ':', ''); if Length(MAC) < 12 then Exit; HexMac := ''; for n := 0 to 5 do begin b := StrToIntDef('$' + MAC[n * 2 + 1] + MAC[n * 2 + 2], 0); HexMac := HexMac + char(b); end; if IP = '' then IP := cBroadcast; sock := TUDPBlockSocket.Create; try sock.CreateSocket; sock.EnableBroadcast(true); sock.Connect(IP, '9'); data := #$FF + #$FF + #$FF + #$FF + #$FF + #$FF; for n := 1 to 16 do data := data + HexMac; sock.SendString(data); finally sock.Free; end; end; end; {==============================================================================} {$IFNDEF UNIX} function GetDNSbyIpHlp: string; type PTIP_ADDRESS_STRING = ^TIP_ADDRESS_STRING; TIP_ADDRESS_STRING = array[0..15] of Ansichar; PTIP_ADDR_STRING = ^TIP_ADDR_STRING; TIP_ADDR_STRING = packed record Next: PTIP_ADDR_STRING; IpAddress: TIP_ADDRESS_STRING; IpMask: TIP_ADDRESS_STRING; Context: DWORD; end; PTFixedInfo = ^TFixedInfo; TFixedInfo = packed record HostName: array[1..128 + 4] of Ansichar; DomainName: array[1..128 + 4] of Ansichar; CurrentDNSServer: PTIP_ADDR_STRING; DNSServerList: TIP_ADDR_STRING; NodeType: UINT; ScopeID: array[1..256 + 4] of Ansichar; EnableRouting: UINT; EnableProxy: UINT; EnableDNS: UINT; end; const IpHlpDLL = 'IPHLPAPI.DLL'; var IpHlpModule: THandle; FixedInfo: PTFixedInfo; InfoSize: Longint; PDnsServer: PTIP_ADDR_STRING; err: integer; GetNetworkParams: function(FixedInfo: PTFixedInfo; pOutPutLen: PULONG): DWORD; stdcall; begin InfoSize := 0; Result := '...'; IpHlpModule := LoadLibrary(IpHlpDLL); if IpHlpModule = 0 then exit; try GetNetworkParams := GetProcAddress(IpHlpModule,PAnsiChar(AnsiString('GetNetworkParams'))); if @GetNetworkParams = nil then Exit; err := GetNetworkParams(Nil, @InfoSize); if err <> ERROR_BUFFER_OVERFLOW then Exit; Result := ''; GetMem (FixedInfo, InfoSize); try err := GetNetworkParams(FixedInfo, @InfoSize); if err <> ERROR_SUCCESS then exit; with FixedInfo^ do begin Result := DnsServerList.IpAddress; PDnsServer := DnsServerList.Next; while PDnsServer <> Nil do begin if Result <> '' then Result := Result + ','; Result := Result + PDnsServer^.IPAddress; PDnsServer := PDnsServer.Next; end; end; finally FreeMem(FixedInfo); end; finally FreeLibrary(IpHlpModule); end; end; function ReadReg(SubKey, Vn: PChar): string; var OpenKey: HKEY; DataType, DataSize: integer; Temp: array [0..2048] of char; begin Result := ''; if RegOpenKeyEx(HKEY_LOCAL_MACHINE, SubKey, REG_OPTION_NON_VOLATILE, KEY_READ, OpenKey) = ERROR_SUCCESS then begin DataType := REG_SZ; DataSize := SizeOf(Temp); if RegQueryValueEx(OpenKey, Vn, nil, @DataType, @Temp, @DataSize) = ERROR_SUCCESS then SetString(Result, Temp, DataSize div SizeOf(Char) - 1); RegCloseKey(OpenKey); end; end ; {$ENDIF} function GetDNS: string; {$IFDEF UNIX} var l: TStringList; n: integer; begin Result := ''; l := TStringList.Create; try l.LoadFromFile('/etc/resolv.conf'); for n := 0 to l.Count - 1 do if Pos('NAMESERVER', uppercase(l[n])) = 1 then begin if Result <> '' then Result := Result + ','; Result := Result + SeparateRight(l[n], ' '); end; finally l.Free; end; end; {$ELSE} const NTdyn = 'System\CurrentControlSet\Services\Tcpip\Parameters\Temporary'; NTfix = 'System\CurrentControlSet\Services\Tcpip\Parameters'; W9xfix = 'System\CurrentControlSet\Services\MSTCP'; begin Result := GetDNSbyIpHlp; if Result = '...' then begin if Win32Platform = VER_PLATFORM_WIN32_NT then begin Result := ReadReg(NTdyn, 'NameServer'); if result = '' then Result := ReadReg(NTfix, 'NameServer'); if result = '' then Result := ReadReg(NTfix, 'DhcpNameServer'); end else Result := ReadReg(W9xfix, 'NameServer'); Result := ReplaceString(trim(Result), ' ', ','); end; end; {$ENDIF} {==============================================================================} function GetIEProxy(protocol: string): TProxySetting; {$IFDEF UNIX} begin Result.Host := ''; Result.Port := ''; Result.Bypass := ''; end; {$ELSE} type PInternetProxyInfo = ^TInternetProxyInfo; TInternetProxyInfo = packed record dwAccessType: DWORD; lpszProxy: LPCSTR; lpszProxyBypass: LPCSTR; end; const INTERNET_OPTION_PROXY = 38; INTERNET_OPEN_TYPE_PROXY = 3; WininetDLL = 'WININET.DLL'; var WininetModule: THandle; ProxyInfo: PInternetProxyInfo; Err: Boolean; Len: DWORD; Proxy: string; DefProxy: string; ProxyList: TStringList; n: integer; InternetQueryOption: function (hInet: Pointer; dwOption: DWORD; lpBuffer: Pointer; var lpdwBufferLength: DWORD): BOOL; stdcall; begin Result.Host := ''; Result.Port := ''; Result.Bypass := ''; WininetModule := LoadLibrary(WininetDLL); if WininetModule = 0 then exit; try InternetQueryOption := GetProcAddress(WininetModule,PAnsiChar(AnsiString('InternetQueryOptionA'))); if @InternetQueryOption = nil then Exit; if protocol = '' then protocol := 'http'; Len := 4096; GetMem(ProxyInfo, Len); ProxyList := TStringList.Create; try Err := InternetQueryOption(nil, INTERNET_OPTION_PROXY, ProxyInfo, Len); if Err then if ProxyInfo^.dwAccessType = INTERNET_OPEN_TYPE_PROXY then begin ProxyList.CommaText := ReplaceString(ProxyInfo^.lpszProxy, ' ', ','); Proxy := ''; DefProxy := ''; for n := 0 to ProxyList.Count -1 do begin if Pos(lowercase(protocol) + '=', lowercase(ProxyList[n])) = 1 then begin Proxy := SeparateRight(ProxyList[n], '='); break; end; if Pos('=', ProxyList[n]) < 1 then DefProxy := ProxyList[n]; end; if Proxy = '' then Proxy := DefProxy; if Proxy <> '' then begin Result.Host := Trim(SeparateLeft(Proxy, ':')); Result.Port := Trim(SeparateRight(Proxy, ':')); end; Result.Bypass := ReplaceString(ProxyInfo^.lpszProxyBypass, ' ', ','); end; finally ProxyList.Free; FreeMem(ProxyInfo); end; finally FreeLibrary(WininetModule); end; end; {$ENDIF} {==============================================================================} function GetLocalIPs: string; var TcpSock: TTCPBlockSocket; ipList: TStringList; begin Result := ''; ipList := TStringList.Create; try TcpSock := TTCPBlockSocket.create; try TcpSock.ResolveNameToIP(TcpSock.LocalName, ipList); Result := ipList.CommaText; finally TcpSock.Free; end; finally ipList.Free; end; end; {==============================================================================} end. ./media-record.png0000644000175000017500000000244714576573022014220 0ustar anthonyanthonyPNG  IHDRשyPLTE  z 44<<x tt|| """333W))S**JJJLLFF@@@XXX:: ==))%%**++qqvv&&'' ==== Ղ%%%%؋++DD++ꕕ8888雛{{uuqqppoommjjkkiihhiihhggffcc``^^mm__aa``__\\ZZUUQQuuVVVVXXYYXXWWGG00wwpp33??FFDD>>66$$eekk !!""!!{{##$$!!yyddAA$$&&CCbbtt))%%''++uurr::%%;;ppffSSGGTTggqqVV^@>htRNS!( &{y$EDWS,+ 96 bUT+)ji1. 0`_. 2-bKGDEW pHYsHHFk>LIDAT(c`>`dbfaeafbDgcgC@/(,*+pWTVUԖ(*$UT3[Z5`Z]==}&NքM2u3fΚ=g<} -^t+W612HYr 7mXns S-[mؾc vZbg{Ϻ۷w`rtr>xhG~#L':Nv{_X!a""âBQ7:&6.>!1)9&=SRiFs L܆%tEXtdate:create2011-06-17T12:27:10+00:001%tEXtdate:modify2011-06-17T12:27:10+00:00pMtEXtSoftwarewww.inkscape.org<IENDB`./chart-icon.png0000644000175000017500000000131014576573022013700 0ustar anthonyanthonyPNG  IHDR  pHYs  tIME-`чiTXtCommentCreated with GIMPd.e>IDATHN`-şVnPč nĸ+׆+wF156@Jς RwNμΌ㘟 _*3( asjq}r* kk>2[[s{1mih\\`Yt4[h{D憳3Yn )Gt]`aK^^},+% 4qJ% Tx^z mm, EAc%| %KI Lm <(J٣&OOJH*RR(~< L KnW, #-?aHLvRC~]]: 0Mvwcno0`y]mswmVZ !! 0c(ݦbcv}\|)VW@jy*C>?B ݆U\8cd.WW<<̚ANfrY%E9dvcQQ =&|cZI\?SS 4tIENDB`./udm.lpi0000644000175000017500000006266014576573022012455 0ustar anthonyanthony <Scaled Value="True"/> <UseXPManifest Value="True"/> <XPManifest> <TextName Value="Unihedron.SQM.UDM"/> <TextDesc Value="Unihedron connected SQM device manager"/> </XPManifest> <Icon Value="0"/> </General> <VersionInfo> <UseVersionInfo Value="True"/> <MajorVersionNr Value="1"/> <BuildNr Value="352"/> <StringTable CompanyName="Unihedron" OriginalFilename="udm" ProductName="Unihedron Device Manager" ProductVersion="0.0.0.2"/> </VersionInfo> <BuildModes Count="3"> <Item1 Name="default" Default="True"/> <Item2 Name="debug"> <CompilerOptions> <Version Value="11"/> <Target> <Filename Value="udm"/> </Target> <SearchPaths> <IncludeFiles Value="$(ProjOutDir)"/> </SearchPaths> <Parsing> <SyntaxOptions> <UseAnsiStrings Value="False"/> </SyntaxOptions> </Parsing> <CodeGeneration> <Optimizations> <OptimizationLevel Value="0"/> </Optimizations> </CodeGeneration> <Linking> <Debugging> <UseHeaptrc Value="True"/> </Debugging> <Options> <Win32> <GraphicApplication Value="True"/> </Win32> </Options> </Linking> </CompilerOptions> </Item2> <Item3 Name="release"> <CompilerOptions> <Version Value="11"/> <Target> <Filename Value="udm"/> </Target> <SearchPaths> <IncludeFiles Value="$(ProjOutDir)"/> </SearchPaths> <Parsing> <SyntaxOptions> <UseAnsiStrings Value="False"/> </SyntaxOptions> </Parsing> <CodeGeneration> <Optimizations> <OptimizationLevel Value="0"/> </Optimizations> </CodeGeneration> <Linking> <Debugging> <GenerateDebugInfo Value="False"/> </Debugging> <Options> <Win32> <GraphicApplication Value="True"/> </Win32> </Options> </Linking> </CompilerOptions> </Item3> </BuildModes> <PublishOptions> <Version Value="2"/> <DestinationDirectory Value="$(ProjPath)/pub/"/> <CompressFinally Value="False"/> <UseFileFilters Value="True"/> <FileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml|hex|ico|icns|jpg|png|wav|ucld|goto|pkgproj|py);changelog.txt;fchanges.txt;commandlineoptions.txt;Makefile;47_SKYGLOW_DEFINITIONS.PDF"/> </PublishOptions> <RunParams> <FormatVersion Value="2"/> <Modes Count="1"> <Mode0 Name="default"/> </Modes> </RunParams> <RequiredPackages Count="10"> <Item1> <PackageName Value="PascalTZ"/> </Item1> <Item2> <PackageName Value="SynEditDsgn"/> </Item2> <Item3> <PackageName Value="playwavepackage"/> </Item3> <Item4> <PackageName Value="LazOpenGLContext"/> </Item4> <Item5> <PackageName Value="LazUtils"/> </Item5> <Item6> <PackageName Value="FCL"/> </Item6> <Item7> <PackageName Value="Printer4Lazarus"/> </Item7> <Item8> <PackageName Value="TAChartLazarusPkg"/> </Item8> <Item9> <PackageName Value="SynEdit"/> </Item9> <Item10> <PackageName Value="LCL"/> </Item10> </RequiredPackages> <Units Count="45"> <Unit0> <Filename Value="udm.lpr"/> <IsPartOfProject Value="True"/> <EditorIndex Value="-1"/> <TopLine Value="31"/> <CursorPos Y="66"/> <UsageCount Value="232"/> </Unit0> <Unit1> <Filename Value="unit1.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="Form1"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit1"/> <TopLine Value="3648"/> <CursorPos X="42" Y="3664"/> <UsageCount Value="232"/> <Loaded Value="True"/> </Unit1> <Unit2> <Filename Value="fileview.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="Form2"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="-1"/> <CursorPos X="4" Y="33"/> <UsageCount Value="226"/> </Unit2> <Unit3> <Filename Value="about.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="Form4"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="About"/> <EditorIndex Value="-1"/> <TopLine Value="69"/> <CursorPos X="39" Y="92"/> <UsageCount Value="215"/> </Unit3> <Unit4> <Filename Value="dlheader.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="DLHeaderForm"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="4"/> <TopLine Value="319"/> <CursorPos X="80" Y="336"/> <UsageCount Value="232"/> <Loaded Value="True"/> </Unit4> <Unit5> <Filename Value="appsettings.pas"/> <IsPartOfProject Value="True"/> <EditorIndex Value="-1"/> <TopLine Value="223"/> <CursorPos X="167" Y="139"/> <UsageCount Value="222"/> </Unit5> <Unit6> <Filename Value="viewlog.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="Form5"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="-1"/> <TopLine Value="41"/> <CursorPos X="77" Y="51"/> <UsageCount Value="227"/> </Unit6> <Unit7> <Filename Value="splash.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="frmSplash"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="-1"/> <TopLine Value="22"/> <CursorPos Y="41"/> <UsageCount Value="224"/> </Unit7> <Unit8> <Filename Value="logcont.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="FormLogCont"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="1"/> <TopLine Value="3723"/> <CursorPos X="40" Y="3733"/> <ExtraEditorCount Value="1"/> <ExtraEditor1> <EditorIndex Value="-1"/> <TopLine Value="2792"/> <CursorPos X="8" Y="2809"/> </ExtraEditor1> <UsageCount Value="200"/> <Bookmarks Count="1"> <Item0 X="3" Y="3703"/> </Bookmarks> <Loaded Value="True"/> <LoadedDesigner Value="True"/> </Unit8> <Unit9> <Filename Value="header_utils.pas"/> <IsPartOfProject Value="True"/> <EditorIndex Value="2"/> <TopLine Value="1308"/> <CursorPos X="22" Y="1338"/> <ExtraEditorCount Value="1"/> <ExtraEditor1> <EditorIndex Value="-1"/> <TopLine Value="173"/> <CursorPos X="82" Y="196"/> </ExtraEditor1> <UsageCount Value="228"/> <Loaded Value="True"/> </Unit9> <Unit10> <Filename Value="unitdirectorylist.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="Directories"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="-1"/> <TopLine Value="87"/> <CursorPos X="45" Y="110"/> <UsageCount Value="205"/> </Unit10> <Unit11> <Filename Value="convertlogfileunit.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="convertdialog"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="-1"/> <TopLine Value="122"/> <CursorPos X="9" Y="159"/> <UsageCount Value="201"/> </Unit11> <Unit12> <Filename Value="convertoldlog.pas"/> <IsPartOfProject Value="True"/> <EditorIndex Value="-1"/> <CursorPos X="21" Y="8"/> <UsageCount Value="201"/> </Unit12> <Unit13> <Filename Value="convertoldlogfile.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="ConvertOldLogForm"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="-1"/> <TopLine Value="426"/> <CursorPos X="6" Y="431"/> <UsageCount Value="201"/> </Unit13> <Unit14> <Filename Value="vector_utils.pas"/> <IsPartOfProject Value="True"/> <EditorIndex Value="-1"/> <CursorPos Y="12"/> <UsageCount Value="231"/> </Unit14> <Unit15> <Filename Value="vector.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="VectorForm"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="-1"/> <TopLine Value="2630"/> <CursorPos Y="2650"/> <UsageCount Value="205"/> </Unit15> <Unit16> <Filename Value="vectorproduct.pas"/> <IsPartOfProject Value="True"/> <TopLine Value="5"/> <CursorPos Y="38"/> <UsageCount Value="201"/> </Unit16> <Unit17> <Filename Value="dlerase.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="FormDLErase"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="-1"/> <TopLine Value="10"/> <CursorPos X="46" Y="25"/> <UsageCount Value="220"/> </Unit17> <Unit18> <Filename Value="dlclock.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="Form6"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="-1"/> <TopLine Value="51"/> <CursorPos X="26" Y="81"/> <UsageCount Value="206"/> </Unit18> <Unit19> <Filename Value="dlretrieve.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="DLRetrieveForm"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="-1"/> <TopLine Value="187"/> <CursorPos Y="208"/> <ExtraEditorCount Value="2"/> <ExtraEditor1> <EditorIndex Value="-1"/> <TopLine Value="655"/> <CursorPos Y="669"/> </ExtraEditor1> <ExtraEditor2> <EditorIndex Value="-1"/> <TopLine Value="1149"/> <CursorPos Y="1154"/> </ExtraEditor2> <UsageCount Value="204"/> </Unit19> <Unit20> <Filename Value="textfileviewer.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="TextFileViewerForm"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="-1"/> <CursorPos Y="27"/> <UsageCount Value="268"/> </Unit20> <Unit21> <Filename Value="comterm.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="ComTermForm"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="-1"/> <TopLine Value="32"/> <CursorPos X="25" Y="44"/> <UsageCount Value="249"/> </Unit21> <Unit22> <Filename Value="worldmap.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="FormWorldmap"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="-1"/> <TopLine Value="181"/> <CursorPos X="93" Y="214"/> <UsageCount Value="207"/> </Unit22> <Unit23> <Filename Value="plotter.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="PlotterForm"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="6"/> <TopLine Value="1161"/> <CursorPos X="22" Y="1170"/> <ExtraEditorCount Value="1"/> <ExtraEditor1> <EditorIndex Value="-1"/> <TopLine Value="2469"/> <CursorPos X="5" Y="2503"/> </ExtraEditor1> <UsageCount Value="252"/> <Bookmarks Count="1"> <Item0 X="31" Y="1862" ID="1"/> </Bookmarks> <Loaded Value="True"/> </Unit23> <Unit24> <Filename Value="dattimecorrect.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="dattimecorrectform"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="5"/> <TopLine Value="249"/> <CursorPos X="69" Y="277"/> <UsageCount Value="375"/> <Loaded Value="True"/> </Unit24> <Unit25> <Filename Value="changelog.txt"/> <IsVisibleTab Value="True"/> <EditorIndex Value="3"/> <CursorPos Y="19"/> <UsageCount Value="121"/> <Loaded Value="True"/> <DefaultSyntaxHighlighter Value="Text"/> </Unit25> <Unit26> <Filename Value="datlocalcorrect.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="datlocalcorrectform"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="-1"/> <TopLine Value="376"/> <CursorPos X="36" Y="385"/> <UsageCount Value="228"/> </Unit26> <Unit27> <Filename Value="correct49to56.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="CorrectForm"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="-1"/> <TopLine Value="264"/> <CursorPos X="14" Y="279"/> <UsageCount Value="200"/> </Unit27> <Unit28> <Filename Value="dattokml.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="Form7"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="-1"/> <TopLine Value="264"/> <CursorPos Y="272"/> <UsageCount Value="209"/> </Unit28> <Unit29> <Filename Value="concattool.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="ConcatToolForm"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="-1"/> <TopLine Value="51"/> <CursorPos X="6" Y="69"/> <UsageCount Value="200"/> </Unit29> <Unit30> <Filename Value="date2dec.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="Form10"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="-1"/> <TopLine Value="32"/> <CursorPos X="4" Y="43"/> <UsageCount Value="204"/> </Unit30> <Unit31> <Filename Value="unit2.pas"/> <IsPartOfProject Value="True"/> <EditorIndex Value="-1"/> <UsageCount Value="206"/> </Unit31> <Unit32> <Filename Value="unit3.pas"/> <IsPartOfProject Value="True"/> <EditorIndex Value="-1"/> <UsageCount Value="206"/> </Unit32> <Unit33> <Filename Value="unit4.pas"/> <IsPartOfProject Value="True"/> <EditorIndex Value="-1"/> <UsageCount Value="206"/> </Unit33> <Unit34> <Filename Value="editor.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="Form3"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Editor"/> <EditorIndex Value="-1"/> <CursorPos X="30" Y="35"/> <UsageCount Value="212"/> </Unit34> <Unit35> <Filename Value="cloudremunit.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="CloudRemMilkyWay"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="CloudRemUnit"/> <EditorIndex Value="-1"/> <TopLine Value="1116"/> <CursorPos Y="1150"/> <UsageCount Value="201"/> </Unit35> <Unit36> <Filename Value="startupoptions.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="StartUpOptionsForm"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="-1"/> <TopLine Value="40"/> <CursorPos X="26" Y="61"/> <UsageCount Value="221"/> </Unit36> <Unit37> <Filename Value="headerbrowser.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="HeaderBrowserForm"/> <ResourceBaseClass Value="Form"/> <UnitName Value="HeaderBrowser"/> <EditorIndex Value="-1"/> <CursorPos Y="5"/> <UsageCount Value="249"/> </Unit37> <Unit38> <Filename Value="configbrowser.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="ConfigBrowserForm"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="-1"/> <TopLine Value="163"/> <CursorPos X="6" Y="182"/> <UsageCount Value="248"/> </Unit38> <Unit39> <Filename Value="arpmethod.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="Formarpmethod"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="-1"/> <TopLine Value="43"/> <CursorPos X="21" Y="13"/> <UsageCount Value="215"/> </Unit39> <Unit40> <Filename Value="filtersunmoonunit.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="FilterSunMoonForm"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="FilterSunMoonUnit"/> <EditorIndex Value="-1"/> <TopLine Value="208"/> <CursorPos X="24" Y="230"/> <UsageCount Value="210"/> </Unit40> <Unit41> <Filename Value="backup/dlretrieve.pas"/> <ComponentName Value="DLRetrieveForm"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="-1"/> <TopLine Value="1564"/> <CursorPos X="5" Y="1569"/> <UsageCount Value="19"/> </Unit41> <Unit42> <Filename Value="backup/dlheader.pas"/> <ComponentName Value="DLHeaderForm"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="-1"/> <TopLine Value="108"/> <CursorPos X="6" Y="124"/> <UsageCount Value="12"/> </Unit42> <Unit43> <Filename Value="upascaltz.pas"/> <UnitName Value="uPascalTZ"/> <EditorIndex Value="-1"/> <CursorPos X="22" Y="21"/> <UsageCount Value="60"/> </Unit43> <Unit44> <Filename Value="avgtool.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="Form8"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <EditorIndex Value="-1"/> <TopLine Value="105"/> <CursorPos X="28" Y="135"/> <UsageCount Value="210"/> </Unit44> </Units> <Debugger> <ClassConfig Version="1"> <Config ConfigName="New" ConfigClass="TFpLldbDebugger" DebuggerFilename="/usr/bin/lldb" Active="True" UID="{B113350A-2554-4778-A839-0245D49C47EC}"> <Properties AutoDeref="True"/> </Config> </ClassConfig> </Debugger> <JumpHistory Count="30" HistoryIndex="29"> <Position1> <Filename Value="dattimecorrect.pas"/> <Caret Line="436" TopLine="421"/> </Position1> <Position2> <Filename Value="dattimecorrect.pas"/> <Caret Line="444" Column="26" TopLine="421"/> </Position2> <Position3> <Filename Value="dattimecorrect.pas"/> <Caret Line="432" TopLine="421"/> </Position3> <Position4> <Filename Value="dattimecorrect.pas"/> <Caret Line="433" TopLine="421"/> </Position4> <Position5> <Filename Value="dattimecorrect.pas"/> <Caret Line="434" TopLine="421"/> </Position5> <Position6> <Filename Value="dattimecorrect.pas"/> <Caret Line="436" TopLine="421"/> </Position6> <Position7> <Filename Value="dattimecorrect.pas"/> <Caret Line="444" TopLine="421"/> </Position7> <Position8> <Filename Value="dattimecorrect.pas"/> <Caret Line="435" Column="71" TopLine="421"/> </Position8> <Position9> <Filename Value="plotter.pas"/> <Caret Line="1070" Column="21" TopLine="1053"/> </Position9> <Position10> <Filename Value="plotter.pas"/> <Caret Line="1158" Column="21" TopLine="1141"/> </Position10> <Position11> <Filename Value="plotter.pas"/> <Caret Line="1170" Column="22" TopLine="1161"/> </Position11> <Position12> <Filename Value="dattimecorrect.pas"/> <Caret Line="435" Column="9" TopLine="421"/> </Position12> <Position13> <Filename Value="dattimecorrect.pas"/> <Caret Line="38" Column="15" TopLine="22"/> </Position13> <Position14> <Filename Value="changelog.txt"/> <Caret Line="19" Column="14"/> </Position14> <Position15> <Filename Value="logcont.pas"/> <Caret Line="622" Column="29" TopLine="605"/> </Position15> <Position16> <Filename Value="logcont.pas"/> <Caret Line="2624" TopLine="2605"/> </Position16> <Position17> <Filename Value="logcont.pas"/> <Caret Line="2636" Column="6" TopLine="2609"/> </Position17> <Position18> <Filename Value="logcont.pas"/> <Caret Line="3696" Column="6" TopLine="3688"/> </Position18> <Position19> <Filename Value="logcont.pas"/> <Caret Line="3732" Column="4" TopLine="3720"/> </Position19> <Position20> <Filename Value="logcont.pas"/> <Caret Line="4974" Column="44" TopLine="4957"/> </Position20> <Position21> <Filename Value="logcont.pas"/> <Caret Line="267" Column="5" TopLine="255"/> </Position21> <Position22> <Filename Value="logcont.pas"/> <Caret Line="4962" Column="72" TopLine="4950"/> </Position22> <Position23> <Filename Value="logcont.pas"/> <Caret Line="3732" Column="4" TopLine="3719"/> </Position23> <Position24> <Filename Value="logcont.pas"/> <Caret Line="4974" Column="42" TopLine="4957"/> </Position24> <Position25> <Filename Value="logcont.pas"/> <Caret Line="3713" Column="11" TopLine="3700"/> </Position25> <Position26> <Filename Value="logcont.pas"/> <Caret Line="453" Column="15" TopLine="442"/> </Position26> <Position27> <Filename Value="logcont.pas"/> <Caret Line="3713" Column="28" TopLine="3690"/> </Position27> <Position28> <Filename Value="logcont.pas"/> <Caret Line="15" Column="50"/> </Position28> <Position29> <Filename Value="logcont.pas"/> <Caret Line="3713" Column="28" TopLine="3691"/> </Position29> <Position30> <Filename Value="logcont.pas"/> <Caret Line="453" Column="15" TopLine="453"/> </Position30> </JumpHistory> </ProjectOptions> <CompilerOptions> <Version Value="11"/> <Target> <Filename Value="udm"/> </Target> <SearchPaths> <IncludeFiles Value="$(ProjOutDir)"/> </SearchPaths> <Parsing> <SyntaxOptions> <IncludeAssertionCode Value="True"/> </SyntaxOptions> </Parsing> <CodeGeneration> <Checks> <IOChecks Value="True"/> <OverflowChecks Value="True"/> <StackChecks Value="True"/> </Checks> <Optimizations> <OptimizationLevel Value="0"/> </Optimizations> </CodeGeneration> <Linking> <Debugging> <GenerateDebugInfo Value="False"/> <RunWithoutDebug Value="True"/> <DebugInfoType Value="dsDwarf3"/> </Debugging> <Options> <Win32> <GraphicApplication Value="True"/> </Win32> </Options> </Linking> </CompilerOptions> <Debugging> <Watches Count="1"> <Item1> <Expression Value="AValueIndex"/> </Item1> </Watches> <Exceptions Count="6"> <Item1> <Name Value="EAbort"/> </Item1> <Item2> <Name Value="ECodetoolError"/> </Item2> <Item3> <Name Value="EFOpenError"/> </Item3> <Item4> <Name Value="TTZException"/> </Item4> <Item5> <Name Value="EConvertError"/> </Item5> <Item6> <Name Value="EListError"/> </Item6> </Exceptions> </Debugging> </CONFIG> ��������������������������������������������������������������������������������./ftptsend.pas��������������������������������������������������������������������������������������0000644�0001750�0001750�00000030336�14576573021�013510� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{==============================================================================| | Project : Ararat Synapse | 001.001.001 | |==============================================================================| | Content: Trivial FTP (TFTP) client and server | |==============================================================================| | Copyright (c)1999-2010, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2003-2010. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {: @abstract(TFTP client and server protocol) Used RFC: RFC-1350 } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$Q-} {$H+} {$IFDEF UNICODE} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$ENDIF} unit ftptsend; interface uses SysUtils, Classes, blcksock, synautil; const cTFTPProtocol = '69'; cTFTP_RRQ = word(1); cTFTP_WRQ = word(2); cTFTP_DTA = word(3); cTFTP_ACK = word(4); cTFTP_ERR = word(5); type {:@abstract(Implementation of TFTP client and server) Note: Are you missing properties for specify server address and port? Look to parent @link(TSynaClient) too!} TTFTPSend = class(TSynaClient) private FSock: TUDPBlockSocket; FErrorCode: integer; FErrorString: string; FData: TMemoryStream; FRequestIP: string; FRequestPort: string; function SendPacket(Cmd: word; Serial: word; const Value: string): Boolean; function RecvPacket(Serial: word; var Value: string): Boolean; public constructor Create; destructor Destroy; override; {:Upload @link(data) as file to TFTP server.} function SendFile(const Filename: string): Boolean; {:Download file from TFTP server to @link(data).} function RecvFile(const Filename: string): Boolean; {:Acts as TFTP server and wait for client request. When some request incoming within Timeout, result is @true and parametres is filled with information from request. You must handle this request, validate it, and call @link(ReplyError), @link(ReplyRecv) or @link(ReplySend) for send reply to TFTP Client.} function WaitForRequest(var Req: word; var filename: string): Boolean; {:send error to TFTP client, when you acts as TFTP server.} procedure ReplyError(Error: word; Description: string); {:Accept uploaded file from TFTP client to @link(data), when you acts as TFTP server.} function ReplyRecv: Boolean; {:Accept download request file from TFTP client and send content of @link(data), when you acts as TFTP server.} function ReplySend: Boolean; published {:Code of TFTP error.} property ErrorCode: integer read FErrorCode; {:Human readable decription of TFTP error. (if is sended by remote side)} property ErrorString: string read FErrorString; {:MemoryStream with datas for sending or receiving} property Data: TMemoryStream read FData; {:Address of TFTP remote side.} property RequestIP: string read FRequestIP write FRequestIP; {:Port of TFTP remote side.} property RequestPort: string read FRequestPort write FRequestPort; end; implementation constructor TTFTPSend.Create; begin inherited Create; FSock := TUDPBlockSocket.Create; FSock.Owner := self; FTargetPort := cTFTPProtocol; FData := TMemoryStream.Create; FErrorCode := 0; FErrorString := ''; end; destructor TTFTPSend.Destroy; begin FSock.Free; FData.Free; inherited Destroy; end; function TTFTPSend.SendPacket(Cmd: word; Serial: word; const Value: string): Boolean; var s, sh: string; begin FErrorCode := 0; FErrorString := ''; Result := false; if Cmd <> 2 then s := CodeInt(Cmd) + CodeInt(Serial) + Value else s := CodeInt(Cmd) + Value; FSock.SendString(s); s := FSock.RecvPacket(FTimeout); if FSock.LastError = 0 then if length(s) >= 4 then begin sh := CodeInt(4) + CodeInt(Serial); if Pos(sh, s) = 1 then Result := True else if s[1] = #5 then begin FErrorCode := DecodeInt(s, 3); Delete(s, 1, 4); FErrorString := SeparateLeft(s, #0); end; end; end; function TTFTPSend.RecvPacket(Serial: word; var Value: string): Boolean; var s: string; ser: word; begin FErrorCode := 0; FErrorString := ''; Result := False; Value := ''; s := FSock.RecvPacket(FTimeout); if FSock.LastError = 0 then if length(s) >= 4 then if DecodeInt(s, 1) = 3 then begin ser := DecodeInt(s, 3); if ser = Serial then begin Delete(s, 1, 4); Value := s; S := CodeInt(4) + CodeInt(ser); FSock.SendString(s); Result := FSock.LastError = 0; end else begin S := CodeInt(5) + CodeInt(5) + 'Unexcepted serial#' + #0; FSock.SendString(s); end; end; if DecodeInt(s, 1) = 5 then begin FErrorCode := DecodeInt(s, 3); Delete(s, 1, 4); FErrorString := SeparateLeft(s, #0); end; end; function TTFTPSend.SendFile(const Filename: string): Boolean; var s: string; ser: word; n, n1, n2: integer; begin Result := False; FErrorCode := 0; FErrorString := ''; FSock.CloseSocket; FSock.Connect(FTargetHost, FTargetPort); try if FSock.LastError = 0 then begin s := Filename + #0 + 'octet' + #0; if not Sendpacket(2, 0, s) then Exit; ser := 1; FData.Position := 0; n1 := FData.Size div 512; n2 := FData.Size mod 512; for n := 1 to n1 do begin s := ReadStrFromStream(FData, 512); // SetLength(s, 512); // FData.Read(pointer(s)^, 512); if not Sendpacket(3, ser, s) then Exit; inc(ser); end; s := ReadStrFromStream(FData, n2); // SetLength(s, n2); // FData.Read(pointer(s)^, n2); if not Sendpacket(3, ser, s) then Exit; Result := True; end; finally FSock.CloseSocket; end; end; function TTFTPSend.RecvFile(const Filename: string): Boolean; var s: string; ser: word; begin Result := False; FErrorCode := 0; FErrorString := ''; FSock.CloseSocket; FSock.Connect(FTargetHost, FTargetPort); try if FSock.LastError = 0 then begin s := CodeInt(1) + Filename + #0 + 'octet' + #0; FSock.SendString(s); if FSock.LastError <> 0 then Exit; FData.Clear; ser := 1; repeat if not RecvPacket(ser, s) then Exit; inc(ser); WriteStrToStream(FData, s); // FData.Write(pointer(s)^, length(s)); until length(s) <> 512; FData.Position := 0; Result := true; end; finally FSock.CloseSocket; end; end; function TTFTPSend.WaitForRequest(var Req: word; var filename: string): Boolean; var s: string; begin Result := False; FErrorCode := 0; FErrorString := ''; FSock.CloseSocket; FSock.Bind('0.0.0.0', FTargetPort); if FSock.LastError = 0 then begin s := FSock.RecvPacket(FTimeout); if FSock.LastError = 0 then if Length(s) >= 4 then begin FRequestIP := FSock.GetRemoteSinIP; FRequestPort := IntToStr(FSock.GetRemoteSinPort); Req := DecodeInt(s, 1); delete(s, 1, 2); filename := Trim(SeparateLeft(s, #0)); s := SeparateRight(s, #0); s := SeparateLeft(s, #0); Result := lowercase(trim(s)) = 'octet'; end; end; end; procedure TTFTPSend.ReplyError(Error: word; Description: string); var s: string; begin FSock.CloseSocket; FSock.Connect(FRequestIP, FRequestPort); s := CodeInt(5) + CodeInt(Error) + Description + #0; FSock.SendString(s); FSock.CloseSocket; end; function TTFTPSend.ReplyRecv: Boolean; var s: string; ser: integer; begin Result := False; FErrorCode := 0; FErrorString := ''; FSock.CloseSocket; FSock.Connect(FRequestIP, FRequestPort); try s := CodeInt(4) + CodeInt(0); FSock.SendString(s); FData.Clear; ser := 1; repeat if not RecvPacket(ser, s) then Exit; inc(ser); WriteStrToStream(FData, s); // FData.Write(pointer(s)^, length(s)); until length(s) <> 512; FData.Position := 0; Result := true; finally FSock.CloseSocket; end; end; function TTFTPSend.ReplySend: Boolean; var s: string; ser: word; n, n1, n2: integer; begin Result := False; FErrorCode := 0; FErrorString := ''; FSock.CloseSocket; FSock.Connect(FRequestIP, FRequestPort); try ser := 1; FData.Position := 0; n1 := FData.Size div 512; n2 := FData.Size mod 512; for n := 1 to n1 do begin s := ReadStrFromStream(FData, 512); // SetLength(s, 512); // FData.Read(pointer(s)^, 512); if not Sendpacket(3, ser, s) then Exit; inc(ser); end; s := ReadStrFromStream(FData, n2); // SetLength(s, n2); // FData.Read(pointer(s)^, n2); if not Sendpacket(3, ser, s) then Exit; Result := True; finally FSock.CloseSocket; end; end; {==============================================================================} end. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./arpmethod.lfm�������������������������������������������������������������������������������������0000644�0001750�0001750�00000012460�14576573021�013635� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object Formarpmethod: TFormarpmethod Left = 2048 Height = 615 Top = 273 Width = 846 Caption = 'ARP Method' ClientHeight = 615 ClientWidth = 846 OnShow = FormShow Position = poWorkAreaCenter LCLVersion = '2.2.4.0' object IPsInUseGroupBox: TGroupBox AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 0 Height = 440 Top = 0 Width = 376 Caption = '1: Find IPs in use:' ClientHeight = 417 ClientWidth = 372 TabOrder = 0 object FindIPsButton: TButton AnchorSideLeft.Control = IPsInUseGroupBox AnchorSideTop.Control = IPsInUseGroupBox Left = 4 Height = 25 Top = 0 Width = 184 BorderSpacing.Left = 4 Caption = 'Find IPs' OnClick = FindIPsButtonClick TabOrder = 0 end object AssignedIPsLabel: TLabel AnchorSideLeft.Control = FindIPsButton AnchorSideTop.Control = FindIPsButton AnchorSideTop.Side = asrBottom Left = 4 Height = 21 Top = 31 Width = 87 BorderSpacing.Top = 6 Caption = 'Assigned IPs' ParentColor = False end object AssignedIPsStringGrid: TStringGrid AnchorSideLeft.Control = AssignedIPsLabel AnchorSideTop.Control = AssignedIPsLabel AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = IPsInUseGroupBox AnchorSideBottom.Side = asrBottom Left = 4 Height = 359 Top = 52 Width = 180 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Bottom = 6 TabOrder = 1 end object FreeIPsStringGrid: TStringGrid AnchorSideLeft.Control = FreeIPsLabel AnchorSideTop.Control = FreeIPsLabel AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = AssignedIPsStringGrid AnchorSideBottom.Side = asrBottom Left = 190 Height = 359 Top = 52 Width = 180 Anchors = [akTop, akLeft, akBottom] TabOrder = 2 end object FreeIPsLabel: TLabel AnchorSideLeft.Control = AssignedIPsStringGrid AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = AssignedIPsLabel Left = 190 Height = 21 Top = 31 Width = 55 BorderSpacing.Left = 6 Caption = 'Free IPs' ParentColor = False end end object ARPStatusMemo: TMemo AnchorSideLeft.Control = StatusLabel AnchorSideTop.Control = StatusLabel AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 382 Height = 370 Top = 245 Width = 460 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Right = 4 TabOrder = 1 end object ChooseIPGroupBox: TGroupBox AnchorSideLeft.Control = IPsInUseGroupBox AnchorSideTop.Control = IPsInUseGroupBox AnchorSideTop.Side = asrBottom AnchorSideRight.Control = IPsInUseGroupBox AnchorSideRight.Side = asrBottom Left = 0 Height = 96 Top = 440 Width = 376 Anchors = [akTop, akLeft, akRight] Caption = '2: Choose IP:' ClientHeight = 73 ClientWidth = 372 TabOrder = 2 object RandomlyChooseIPButton: TButton AnchorSideLeft.Control = ChooseIPGroupBox AnchorSideTop.Control = ChooseIPGroupBox Left = 2 Height = 25 Top = 6 Width = 184 BorderSpacing.Left = 2 BorderSpacing.Top = 6 Caption = 'Randomly Choose IP' TabOrder = 0 end object IPEdit: TEdit AnchorSideLeft.Control = RandomlyChooseIPButton AnchorSideTop.Control = RandomlyChooseIPButton AnchorSideTop.Side = asrBottom Left = 2 Height = 31 Top = 33 Width = 184 BorderSpacing.Top = 2 TabOrder = 1 end end object StatusLabel: TLabel AnchorSideLeft.Control = InstructionsLabel AnchorSideTop.Control = InstructionsMemo AnchorSideTop.Side = asrBottom Left = 382 Height = 21 Top = 224 Width = 46 Caption = 'Status:' ParentColor = False end object FixXPortGroupBox: TGroupBox AnchorSideLeft.Control = IPsInUseGroupBox AnchorSideTop.Control = ChooseIPGroupBox AnchorSideTop.Side = asrBottom AnchorSideRight.Control = IPsInUseGroupBox AnchorSideRight.Side = asrBottom Left = 0 Height = 64 Top = 536 Width = 376 Anchors = [akTop, akLeft, akRight] Caption = '3: Fix XPort:' ClientHeight = 41 ClientWidth = 372 TabOrder = 3 object FixXPortButton: TButton AnchorSideLeft.Control = FixXPortGroupBox AnchorSideTop.Control = FixXPortGroupBox Left = 0 Height = 25 Top = 0 Width = 75 Caption = 'Fix XPort' TabOrder = 0 end end object InstructionsMemo: TMemo AnchorSideLeft.Control = InstructionsLabel AnchorSideTop.Control = InstructionsLabel AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 382 Height = 203 Top = 21 Width = 464 Anchors = [akTop, akLeft, akRight] TabOrder = 4 end object InstructionsLabel: TLabel AnchorSideLeft.Control = IPsInUseGroupBox AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Owner Left = 382 Height = 21 Top = 0 Width = 86 BorderSpacing.Left = 6 Caption = 'Instructions:' ParentColor = False end end ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./usorters.pas��������������������������������������������������������������������������������������0000644�0001750�0001750�00000066357�14576573021�013563� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit usorters; {$mode objfpc}{$H+} { File: usorters.pas This unit contains non optimal implementations of some sort algoritms but designed to be easilly injected in any code that needs to sort an array or any other data as all compare, swap, etc, actions are handled by callback routines "of object". This way is easy to sort an array in your code just creating an instance and pointing the: OnCompareOfClass OnSwapOfClass OnCopyToTemporalStorageOfClass OnCopyFromTemporalStorageOfClass OnCopyElementOfClass To functions that perform that basic tasks in your code. Not all sorters needs all the handlers, most of them only needs the compare and swap routines. License: The same as freepascal packages (basically LGPL) 2009 - José Mejuto. } interface uses Classes, SysUtils; type TSortCompareResult=(eSortCompareLesser=-1,eSortCompareEqual=0,eSortCompareBigger=1); TSortCompareFunctionOfClass=function (const AIndex,BIndex: SizeInt): TSortCompareResult of object; TSortSwapProcedureOfClass=procedure (const AIndex,BIndex: SizeInt) of object; TSortStoreElementProcedureOfClass=procedure (const AIndex,BIndex: SizeInt) of object; TSortBinarySearchCheckOfClass=function (Const AIndex: SizeInt): TSortCompareResult of object; { TCustomSort } TCustomSort=class(TObject) private protected FElements: SizeInt; procedure SelfTestCheckRange(const AIndex: SizeInt); procedure SelfTestPrepare(); dynamic; procedure SelfTestVerify(); dynamic; procedure SelfTestCleanup(); dynamic; public property Elements: SizeInt read FElements; procedure SelfTest(); dynamic; procedure Sort(); dynamic; abstract; constructor Create(const AElements: SizeInt); end; { TCustomSearch } TCustomSearch=class(TObject) private protected FElements: SizeInt; public function Search(): SizeInt; virtual; abstract; Constructor Create(const AElements: SizeInt); end; { TBinarySearch } TBinarySearch=class(TCustomSearch) private protected FCheckElementOfClass: TSortBinarySearchCheckOfClass; function CheckElement(const AIndex: SizeInt): TSortCompareResult; virtual; function CheckInRange(const AIndex,BIndex: SizeInt): SizeInt; virtual; public property OnCheckElementOfClass: TSortBinarySearchCheckOfClass read FCheckElementOfClass write FCheckElementOfClass; function Search(): SizeInt; override; end; { TBinarySearchFirstMatch } TBinarySearchFirstInList=class(TBinarySearch) private protected public // function Search(): SizeInt; override; end; { TCustomBasicSort } TCustomBasicSort=class(TCustomSort) private SelfTestData: PSizeInt; SelfTestTemporal: PSizeInt; FOnCompareOfClass: TSortCompareFunctionOfClass; FOnSwapOfClass: TSortSwapProcedureOfClass; FOnCopyToTemporalOfClass: TSortStoreElementProcedureOfClass; FOnCopyFromTemporalOfClass: TSortStoreElementProcedureOfClass; FOnCopyElementOfClass: TSortStoreElementProcedureOfClass; function SelfTestCompare(const AIndex,BIndex: SizeInt): TSortCompareResult; procedure SelfTestSwap(const AIndex,BIndex: SizeInt); procedure SelfTestCopyToTemporal(const ATemporalStorageIndex,ASourceIndex: SizeInt); procedure SelfTestCopyFromTemporal(const ATemporalStorageIndex,ASourceIndex: SizeInt); procedure SelfTestCopyElement(const AToIndex,AFromIndex: SizeInt); protected function Compare(const AIndex,BIndex: SizeInt): TSortCompareResult; inline; procedure Swap(const AIndex,BIndex: SizeInt); inline; procedure CopyToTemporalStorage(const ASourceIndex,ATemporalStorageIndex: SizeInt); inline; procedure CopyFromTemporalStorage(const ATemporalStorageIndex,ASourceIndex: SizeInt); inline; procedure CopyElement(const AToIndex,AFromIndex: SizeInt); inline; procedure SelfTestPrepare(); override; procedure SelfTestVerify(); override; procedure SelfTestCleanup(); override; public property OnCompareOfClass: TSortCompareFunctionOfClass read FOnCompareOfClass write FOnCompareOfClass; property OnSwapOfClass: TSortSwapProcedureOfClass read FOnSwapOfClass write FOnSwapOfClass; property OnCopyToTemporalStorageOfClass: TSortStoreElementProcedureOfClass read FOnCopyToTemporalOfClass write FOnCopyToTemporalOfClass; property OnCopyFromTemporalStorageOfClass: TSortStoreElementProcedureOfClass read FOnCopyFromTemporalOfClass write FOnCopyFromTemporalOfClass; property OnCopyElementOfClass: TSortStoreElementProcedureOfClass read FOnCopyElementOfClass write FOnCopyElementOfClass; end; { TMergeSort } // This kind of sort need a temporal sort space equal to the data // to be sort. // The logic of this sort is really simple and easy to understand. // This is the recursive implementation. // Stable: YES. // InPlace: NO. // Recursive: YES. TMergeSort=class(TCustomBasicSort) private protected procedure MergeSort(const ALow,AHigh: SizeInt); procedure Merge(const ALow,AMid,AHigh: SizeInt); inline; procedure SelfTestPrepare(); override; procedure SelfTestCleanup(); override; public procedure SelfTestVerify(); override; procedure Sort(); override; end; { TMergeIterativeSort } // This kind of sort need a temporal sort space equal to the data // to be sort. // The logic of this sort is really simple and easy to understand. // This is the NON-recursive implementation. // Stable: YES. // InPlace: NO. // Recursive: NO. TMergeIterativeSort=class(TMergeSort) private protected public procedure Sort(); override; end; { TMergeIterativeOpt1Sort } // Same sort as Merge iterative but with swap function to // speed up the first pass keeping stability. // Stable: YES. // InPlace: NO. // Recursive: NO. // Reference: None. TMergeIterativeOpt1Sort=class(TMergeIterativeSort) private protected public procedure Sort(); override; end; { THeapSort } // Quite fast sort, this is the choice to many needs. // It competes in speed and efficiency with QuickSort, sometimes // it gets better results and sometimes the QuickSort is faster. // As it is an inplace sort without recursion no extra memory is needed. // Stable: NO. // InPlace: YES. // Recursive: NO. // Reference: http://en.wikipedia.org/wiki/Heapsort THeapSort=class(TCustomBasicSort) private procedure Heapify(const Count: SizeInt); procedure SiftDown(const AStart, AEnd: SizeInt); protected public procedure Sort(); override; end; { TGnomeSort } // Very simple sort. // Stable: YES. // InPlace: YES. // Recursive: NO. // Reference: http://en.wikipedia.org/wiki/Gnome_sort TGnomeSort=class(TCustomBasicSort) private protected public procedure Sort(); override; end; { TCombSort } // The bubble sort with steroids :) Specially fast when the values to be // sorted are heavily repeated, so the entropy is low (many XElement=YElement) // and have a "random" distribution. // Stable: NO. // InPlace: YES. // Recursive: NO. // Reference: http://en.wikipedia.org/wiki/Comb_sort TCombSort11=class(TCustomBasicSort) private protected public procedure Sort(); override; end; { TCocktailSort } // The bubble sort bidirectional // Stable: YES. // InPlace: YES. // Recursive: NO. // Reference: http://en.wikipedia.org/wiki/Cocktail_sort TCocktailSort=class(TCustomBasicSort) private protected public procedure Sort(); override; end; { TQuickSort } // The clear example of divide and conquer. Well known and the fastest // algorithm for most cases, but with a very bad worst case time (which is rare) // Direct compete with HeapSort and MergeSort (this one with a constant // worst case time). // Stable: NO. // InPlace: YES. // Recursive: YES. // Reference: http://en.wikipedia.org/wiki/Quicksort TQuickSort=class(TCustomBasicSort) private protected function SelectPivot(const ALow,AHigh: SizeInt): SizeInt; virtual; function DoPartition(const ALow,Ahigh,APivotIndex: SizeInt): SizeInt; virtual; procedure QuickSortRecursive(const ALow,AHigh: SizeInt); public procedure Sort(); override; end; { TQuickSortThread } // Thread object helper to the QuickSortMP experimental implement. TQuickSortThread=class(TThread) private protected QS: TQuickSort; FLow,FHigh: SizeInt; public procedure Execute; override; Constructor Create(const AParentQS: TQuickSort; const ALow,AHigh: SizeInt); end; { TQuickSortMP } // Basic mutithread implementation of QuickSort (experimental) // Stable: NO. // InPlace: YES. // Recursive: YES. // Reference: None TQuickSortMP=class(TQuickSort) private protected FMaxThreads: SizeInt; FThreads: array of TThread; Procedure AfterConstruction; override; public property MaxThreads: SizeInt read FMaxThreads write FMaxThreads; procedure Sort(); override; end; { TSelectionSort } // Basic selection sort implementation, it is being clearly // improved in the HeapSort version. // Stable: NO. // InPlace: YES. // Recursive: NO. // Reference: http://en.wikipedia.org/wiki/Selection_sort TSelectionSort=class(TCustomBasicSort) private protected public procedure Sort(); override; end; { TBubleSort } // The classic inital sort algo. Not efficient at all. // Stable: YES. // InPlace: YES. // Recursive: NO. // Reference: http://en.wikipedia.org/wiki/Selection_sort TBubleSort=class(TCustomBasicSort) private protected public procedure Sort(); override; end; { TInsertionSort } // It can not be implemented using custombasicsort API as // it needs compares with a given value outside the current // data array. So any insertion sort is not implemented. // Reference: http://en.wikipedia.org/wiki/Insertion_sort //TInsertionSort=class(TCustomBasicSort); (* { TSmoothSort } // Complex advanced version of HeapSort. It performs better with // partially presorted data. It needs similar function as insertion // sort, so it is not implemented by now. // Stable: NO. // InPlace: YES. // Recursive: NO. // Reference: http://www.cs.utexas.edu/~EWD/transcriptions/EWD07xx/EWD796a.html // Reference: http://en.wikibooks.org/wiki/Algorithm_implementation/Sorting/Smoothsort TSmoothSort=class(TCustomBasicSort) private protected procedure Up(var vb,vc: SizeInt); procedure Down(var vb,vc: SizeInt); procedure Sift(const r1: SizeInt); public procedure Sort(); override; end; *) implementation { TCustomSort } procedure TCustomSort.SelfTestCheckRange(const AIndex: SizeInt); begin If (AIndex<0) or (AIndex>(FElements-1)) then begin Raise ERangeError.CreateFmt('Trying to access out of range 0-%d (%d)',[FElements-1,AIndex]); end; end; procedure TCustomSort.SelfTestPrepare(); begin //Do nothing end; procedure TCustomSort.SelfTestVerify(); begin //Do nothing end; procedure TCustomSort.SelfTestCleanup(); begin //Do nothing end; procedure TCustomSort.SelfTest(); begin SelfTestPrepare(); try Sort(); SelfTestVerify(); finally SelfTestCleanup(); end; end; constructor TCustomSort.Create(const AElements: SizeInt); begin FElements:=AElements; end; { TCustomBasicSort } function TCustomBasicSort.SelfTestCompare(const AIndex, BIndex: SizeInt ): TSortCompareResult; begin SelfTestCheckRange(AIndex); SelfTestCheckRange(BIndex); if SelfTestData[AIndex*2]>SelfTestData[BIndex*2] then begin Result:=eSortCompareBigger; end else if SelfTestData[AIndex*2]<SelfTestData[BIndex*2] then begin Result:=eSortCompareLesser; end else begin Result:=eSortCompareEqual; end; end; procedure TCustomBasicSort.SelfTestSwap(const AIndex, BIndex: SizeInt); var Temporal: SizeInt; begin SelfTestCheckRange(AIndex); SelfTestCheckRange(BIndex); Temporal:=SelfTestData[AIndex*2]; SelfTestData[AIndex*2]:=SelfTestData[BIndex*2]; SelfTestData[BIndex*2]:=Temporal; //Swap the stability control too... Temporal:=SelfTestData[AIndex*2+1]; SelfTestData[AIndex*2+1]:=SelfTestData[BIndex*2+1]; SelfTestData[BIndex*2+1]:=Temporal; end; procedure TCustomBasicSort.Swap(const AIndex, BIndex: SizeInt); inline; begin if FOnSwapOfClass<>nil then FOnSwapOfClass(AIndex,BIndex) else Raise Exception.Create('Missing Swap event assignement'); end; function TCustomBasicSort.Compare(const AIndex, BIndex: SizeInt ): TSortCompareResult; inline; begin if FOnCompareOfClass<>nil then begin Result:=FOnCompareOfClass(AIndex,BIndex); Exit; end; Raise Exception.Create('Missing Compare event assignement'); end; procedure TCustomBasicSort.SelfTestPrepare(); var j: integer; begin inherited SelfTestPrepare; FOnCompareOfClass:=@SelfTestCompare; FOnSwapOfClass:=@SelfTestSwap; FOnCopyToTemporalOfClass:=@SelfTestCopyToTemporal; FOnCopyFromTemporalOfClass:=@SelfTestCopyFromTemporal; GetMem(SelfTestData,(sizeof(SizeUInt)*FElements)*2); //Value + Stability check Randomize; j:=0; while j<FElements do begin SelfTestData[j*2]:=Random(High(SizeInt)); SelfTestData[(j*2)+1]:=j; inc(j); end; end; procedure TCustomBasicSort.SelfTestVerify(); var j: SizeInt; begin j:=0; while j<FElements-1 do begin if Compare(j,j+1)=eSortCompareBigger then begin Raise Exception.CreateFmt('Sort selftest failed at element %d. [%s]',[j,Self.ClassName]); end; inc(j,2); end; end; procedure TCustomBasicSort.SelfTestCleanup(); begin FreeMem(SelfTestData); SelfTestData:=nil; Inherited SelfTestCleanup; end; { THeapSort } procedure THeapSort.Heapify(const Count: SizeInt); var Start: SizeInt; begin (*start is assigned the index in a of the last parent node*) Start := (Count - 2) div 2; while Start >= 0 do begin (*sift down the node at index start to the proper place such that all nodes below the start index are in heap order*) SiftDown(start, Count-1); Dec(Start); (*after sifting down the root all nodes/elements are in heap order*) end; end; procedure THeapSort.SiftDown(const AStart, AEnd: SizeInt); var Root: SizeInt; Child: SizeInt; begin Root := AStart; while (Root * 2 + 1) <= AEnd do begin //While the root has at least one child Child := Root * 2 + 1; //root*2+1 points to the left child (*If the child has a sibling and the child's value is less than its sibling's...*) if ((Child + 1) <= AEnd) and (Compare(child,child + 1)=eSortCompareLesser) then inc(Child); //... then point to the right child instead) if Compare(root,child)=eSortCompareLesser then begin //(out of max-heap order) Swap(root,child); Root := Child //(repeat to continue sifting down the child now) end else break; end; end; procedure THeapSort.Sort(); var LEnd: SizeInt; begin Heapify(FElements); LEnd := FElements - 1; while LEnd > 0 do begin //swap the root(maximum value) of the heap with the last element of the heap Swap(Lend,0); //decrease the size of the heap by one so that the previous max value will //stay in its proper placement LEnd := LEnd - 1; //put the heap back in max-heap order SiftDown(0, LEnd); end; end; { TGnomeSort } procedure TGnomeSort.Sort(); var j,i: SizeInt; begin i := 1; j := 2; while i < FElements do begin if Compare(i-1,i)<>eSortCompareBigger then begin // for descending sort, reverse the comparison to >= i := j ; Inc(j); end else begin Swap(i-1,i); Dec(i); if i = 0 then i := 1; end; end; end; { TCustomMergeSort } procedure TCustomBasicSort.SelfTestCopyToTemporal(const ATemporalStorageIndex, ASourceIndex: SizeInt); begin SelfTestCheckRange(ATemporalStorageIndex); SelfTestCheckRange(ASourceIndex); SelfTestTemporal[ATemporalStorageIndex*2]:=SelfTestData[ASourceIndex*2]; //Copy the stability controller too... SelfTestTemporal[ATemporalStorageIndex*2+1]:=SelfTestData[ASourceIndex*2+1]; end; procedure TCustomBasicSort.SelfTestCopyFromTemporal(const ATemporalStorageIndex, ASourceIndex: SizeInt); begin SelfTestCheckRange(ATemporalStorageIndex); SelfTestCheckRange(ASourceIndex); //Copy the stability controller too... SelfTestData[ASourceIndex*2]:=SelfTestTemporal[ATemporalStorageIndex*2]; SelfTestData[ASourceIndex*2+1]:=SelfTestTemporal[ATemporalStorageIndex*2+1]; end; procedure TCustomBasicSort.SelfTestCopyElement(const AToIndex, AFromIndex: SizeInt); begin SelfTestCheckRange(AToIndex); SelfTestCheckRange(AFromIndex); SelfTestData[AToIndex*2]:=SelfTestTemporal[AFromIndex*2]; SelfTestData[AToIndex*2+1]:=SelfTestTemporal[AFromIndex*2+1]; end; procedure TCustomBasicSort.CopyToTemporalStorage(const ASourceIndex, ATemporalStorageIndex: SizeInt); inline; begin SelfTestCheckRange(ATemporalStorageIndex); SelfTestCheckRange(ASourceIndex); if FOnCopyToTemporalOfClass<>nil then FOnCopyToTemporalOfClass(ASourceIndex,ATemporalStorageIndex) else Raise Exception.Create('Missing CopyToTemporal event assignement'); end; procedure TCustomBasicSort.CopyFromTemporalStorage(const ATemporalStorageIndex, ASourceIndex: SizeInt); inline; begin if FOnCopyFromTemporalOfClass<>nil then FOnCopyFromTemporalOfClass(ATemporalStorageIndex,ASourceIndex) else Raise Exception.Create('Missing CopyFromTemporal event assignement'); end; procedure TCustomBasicSort.CopyElement(const AToIndex, AFromIndex: SizeInt); inline; begin if FOnCopyElementOfClass<>nil then FOnCopyElementOfClass(AToIndex,AFromIndex) else Raise Exception.Create('Missing CopyElement event assignement'); end; { TMergeSort } procedure TMergeSort.MergeSort(const ALow, AHigh: SizeInt); var CutPoint: SizeInt; begin if ALow <> AHigh then begin CutPoint:=(ALow + AHigh) div 2; MergeSort(ALow,CutPoint); MergeSort(CutPoint + 1, AHigh); Merge(ALow, CutPoint, AHigh); end; end; procedure TMergeSort.Merge(const ALow, AMid, AHigh: SizeInt); var LowHalf,HighHalf,Count: SizeInt; begin Count:=ALow; LowHalf:= ALow; HighHalf:=AMid + 1; while (LowHalf <= AMid) and (HighHalf <= AHigh) do begin if Compare(HighHalf, LowHalf) = eSortCompareLesser Then begin CopyToTemporalStorage(Count,HighHalf); inc(HighHalf); end else begin CopyToTemporalStorage(Count,LowHalf); inc(LowHalf); end; inc(Count); end; while LowHalf <= AMid do begin CopyToTemporalStorage(Count,LowHalf); inc(LowHalf); inc(Count); end; while HighHalf <= AHigh do begin CopyToTemporalStorage(Count,HighHalf); inc(HighHalf); inc(Count); end; for Count := ALow to AHigh do begin CopyFromTemporalStorage(Count,Count); end; end; procedure TMergeSort.SelfTestPrepare(); begin inherited SelfTestPrepare(); GetMem(SelfTestTemporal,(sizeof(SizeUInt)*FElements)*2); end; procedure TMergeSort.SelfTestCleanup(); begin FreeMem(SelfTestTemporal); inherited SelfTestCleanup(); end; procedure TMergeSort.SelfTestVerify(); var j: SizeInt; Prev,Next: SizeInt; begin inherited SelfTestVerify(); //Now check stability of the sort... j:=0; while j<FElements-1 do begin if Compare(j,j+1)=eSortCompareEqual then begin //If they are equal, this and next original position must be //ordered minor to major... Prev:=SelfTestData[j*2+1]; Next:=SelfTestData[(j+1)*2+1]; if Prev>=Next then begin Raise ERangeError.CreateFmt('Stability test failed at element %d',[j]); end; end; inc(j,2); end; end; procedure TMergeSort.Sort(); begin MergeSort(0,FElements-1); end; { TMergeIterativeSort } procedure TMergeIterativeSort.Sort(); var ALow,AHigh,CutPoint: SizeInt; Stepper,StepperLimit: SizeInt; begin Stepper:=2; StepperLimit:=(FElements-1)*2; while Stepper<StepperLimit do begin ALow:=0; While ALow<FElements do begin AHigh:=ALow+Stepper-1; CutPoint:=(ALow+AHigh) div 2; if AHigh>=FElements then begin AHigh:=FElements-1; if CutPoint>=FElements then begin CutPoint:=AHigh; end; end; Merge(ALow,CutPoint,AHigh); ALow:=AHigh+1; end; Stepper:=Stepper * 2; end; end; { TMergeIterativeOpt1Sort } procedure TMergeIterativeOpt1Sort.Sort(); var ALow,AHigh,CutPoint: SizeInt; Stepper: SizeInt; StepperLimit: SizeInt; begin //First pass (stepper=2) using swap. Stepper:=2; ALow:=0; AHigh:=FElements-1; While ALow<AHigh do begin if Compare(ALow,ALow+1)=eSortCompareBigger then begin Swap(ALow,ALow+1); end; inc(ALow,Stepper); end; //Now the normal iterative mode... Stepper:=4; StepperLimit:=(FElements-1)*2; while Stepper<StepperLimit do begin ALow:=0; While ALow<FElements do begin AHigh:=ALow+Stepper-1; CutPoint:=(ALow+AHigh) div 2; if AHigh>=FElements then begin AHigh:=FElements-1; if CutPoint>=FElements then begin CutPoint:=AHigh; end; end; Merge(ALow,CutPoint,AHigh); ALow:=AHigh+1; end; Stepper:=Stepper * 2; end; end; { TCombSort11 } procedure TCombSort11.Sort(); var Gap,Swaps: SizeInt; i: SizeInt; begin Gap:=FElements; //initialize gap size Swaps:=0; While not ((Gap<=1) and (Swaps=0)) do begin //update the gap value for a next comb if gap > 1 then begin gap :=trunc(gap / 1.3); if (gap = 10) or (gap = 9) then begin gap := 11; end; end; i := 0; swaps := 0; //see bubblesort for an explanation //a single "comb" over the input list while not ((i + Gap) >= FElements) do begin //see shellsort for similar idea if Compare(i,i+gap)=eSortCompareBigger then begin Swap(i,i+gap); Swaps := 1 // Arithmetic_overflow fixup end; inc(i); end; end; end; { TCocktailSort } procedure TCocktailSort.Sort(); var LBegin,LEnd: SizeInt; Swapped: Boolean; i: SizeInt; begin LBegin := -1; LEnd := FElements - 2; repeat Swapped:=false; // increases `begin` because the elements before `begin` are in correct order Inc(LBegin); for i := LBegin to LEnd do begin if Compare(i,i+1)=eSortCompareBigger then begin Swap(i,i+1); Swapped:=true; end; end; if not Swapped then break; //We can go out, no swap, no changes... Swapped:=false; // decreases `end` because the elements after `end` are in correct order Dec(LEnd); for i := LEnd Downto LBegin do begin if Compare(i,i+1)=eSortCompareBigger then begin Swap(i,i+1); swapped:=true; end; end; until not Swapped; end; { TQuickSort } function TQuickSort.SelectPivot(const ALow, AHigh: SizeInt): SizeInt; begin //The basic quick sort always use the element in the middle between //ALow and AHigh whichever one it is, which could render in a very bad //partition element. Result:=(ALow+AHigh) div 2; end; function TQuickSort.DoPartition(const ALow, AHigh, APivotIndex: SizeInt): SizeInt; var StoreIndex: SizeInt; i: SizeInt; begin Swap(APivotIndex,AHigh); // Move pivot to end storeIndex := ALow; for i := ALow to AHigh-1 do begin if Compare(i,AHigh)=eSortCompareLesser then begin Swap(i,StoreIndex); inc(StoreIndex); end; end; Swap(StoreIndex,AHigh); // Move pivot to its final place Result:=StoreIndex; end; procedure TQuickSort.QuickSortRecursive(const ALow, AHigh: SizeInt); var PivotIndex: SizeInt; begin if AHigh > ALow then begin PivotIndex:=SelectPivot(ALow,AHigh); PivotIndex := DoPartition(ALow, AHigh, PivotIndex); QuickSortRecursive(ALow, PivotIndex - 1); QuickSortRecursive(PivotIndex + 1, AHigh); end; end; procedure TQuickSort.Sort(); begin QuickSortRecursive(0,FElements-1); end; { TQuickSortMP } procedure TQuickSortMP.AfterConstruction; begin inherited AfterConstruction; FMaxThreads:=2; end; procedure TQuickSortMP.Sort(); var j: integer; ReduceThreads,Rounds: SizeInt; PivotIndex: SizeInt; begin //FMaxThread must be 1,2,4,8,16,32,64.... if FMaxThreads=0 Then FMaxThreads:=1; ReduceThreads:=FMaxThreads; Rounds:=0; while ReduceThreads>0 do begin inc(Rounds); ReduceThreads:=ReduceThreads shr 1; end; FMaxThreads:=1 shl (Rounds-1); //Currently it only handles 2 threads, as it is only an //experiment. FMaxThreads:=2; SetLength(FThreads,FMaxThreads); j:=0; PivotIndex:=SelectPivot(0,FElements-1); PivotIndex := DoPartition(0, FElements-1, PivotIndex); FThreads[0]:=TQuickSortThread.Create(Self,0,PivotIndex); FThreads[1]:=TQuickSortThread.Create(Self,PivotIndex+1,FElements-1); j:=0; //Wait for all threads. while j < MaxThreads do begin FThreads[j].WaitFor; FThreads[j].Free; inc(j); end; end; { TQuickSortThread } procedure TQuickSortThread.Execute; begin QS.QuickSortRecursive(FLow,FHigh); end; constructor TQuickSortThread.Create(const AParentQS: TQuickSort; const ALow, AHigh: SizeInt); begin Self.FreeOnTerminate:=false; QS:=AParentQS; FLow:=ALow; FHigh:=AHigh; //Thread will be launched here inherited Create(false,0); //Not suspended create... end; { TCustomSearch } constructor TCustomSearch.Create(const AElements: SizeInt); begin FElements:=AElements; end; { TBinarySearch } function TBinarySearch.CheckElement(const AIndex: SizeInt ): TSortCompareResult; begin if FCheckElementOfClass<>nil then begin Result:=FCheckElementOfClass(Aindex); end else Raise Exception.Create('Missing CheckElement event assignement'); end; function TBinarySearch.CheckInRange(const AIndex, BIndex: SizeInt): SizeInt; var r: TSortCompareResult; Pivot: SizeInt; begin if AIndex<=BIndex Then begin Pivot:=(AIndex+BIndex) div 2; r:=CheckElement(Pivot); if r=eSortCompareEqual then begin Result:=Pivot; end else if r=eSortCompareBigger then begin Result:=CheckInRange(Pivot+1,BIndex); end else if r=eSortCompareLesser then begin Result:=CheckInRange(AIndex,Pivot-1); end; end else begin Result:=-1; end; end; function TBinarySearch.Search(): SizeInt; begin Result:=CheckInRange(0,FElements-1); end; { TSelectionSort } procedure TSelectionSort.Sort(); var i,j,s: SizeInt; begin for i := 0 to FElements-1 do begin s:=i; for j := i+1 to FElements-1 do begin if Compare(j,s)=eSortCompareLesser then begin s:=j; end; end; Swap(S,I); end; end; { TBubleSort } procedure TBubleSort.Sort(); var j: SizeInt; Swapped: Boolean; begin repeat Swapped:=false; for j := 0 to FElements-2 do begin if Compare(j,j+1)=eSortCompareBigger Then begin Swap(j,j+1); Swapped:=true; end; end; until not swapped; end; end. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./ssl_openssl.pas�����������������������������������������������������������������������������������0000644�0001750�0001750�00000060043�14576573021�014223� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{==============================================================================| | Project : Ararat Synapse | 001.002.001 | |==============================================================================| | Content: SSL support by OpenSSL | |==============================================================================| | Copyright (c)1999-2012, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2005-2012. | | Portions created by Petr Fejfar are Copyright (c)2011-2012. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} //requires OpenSSL libraries! {:@abstract(SSL plugin for OpenSSL) You need OpenSSL libraries version 0.9.7. It can work with 0.9.6 too, but application mysteriously crashing when you are using freePascal on Linux. Use Kylix on Linux is OK! If you have version 0.9.7 on Linux, then I not see any problems with FreePascal. OpenSSL libraries are loaded dynamicly - you not need OpenSSl librares even you compile your application with this unit. SSL just not working when you not have OpenSSL libraries. This plugin have limited support for .NET too! Because is not possible to use callbacks with CDECL calling convention under .NET, is not supported key/certificate passwords and multithread locking. :-( For handling keys and certificates you can use this properties: @link(TCustomSSL.CertificateFile) for PEM or ASN1 DER (cer) format. @br @link(TCustomSSL.Certificate) for ASN1 DER format only. @br @link(TCustomSSL.PrivateKeyFile) for PEM or ASN1 DER (key) format. @br @link(TCustomSSL.PrivateKey) for ASN1 DER format only. @br @link(TCustomSSL.CertCAFile) for PEM CA certificate bundle. @br @link(TCustomSSL.PFXFile) for PFX format. @br @link(TCustomSSL.PFX) for PFX format from binary string. @br This plugin is capable to create Ad-Hoc certificates. When you start SSL/TLS server without explicitly assigned key and certificate, then this plugin create Ad-Hoc key and certificate for each incomming connection by self. It slowdown accepting of new connections! } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} {$IFDEF UNICODE} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$ENDIF} unit ssl_openssl; interface uses SysUtils, Classes, blcksock, synsock, synautil, {$IFDEF CIL} System.Text, {$ENDIF} ssl_openssl_lib; type {:@abstract(class implementing OpenSSL SSL plugin.) Instance of this class will be created for each @link(TTCPBlockSocket). You not need to create instance of this class, all is done by Synapse itself!} TSSLOpenSSL = class(TCustomSSL) protected FSsl: PSSL; Fctx: PSSL_CTX; function SSLCheck: Boolean; function SetSslKeys: boolean; function Init(server:Boolean): Boolean; function DeInit: Boolean; function Prepare(server:Boolean): Boolean; function LoadPFX(pfxdata: ansistring): Boolean; function CreateSelfSignedCert(Host: string): Boolean; override; public {:See @inherited} constructor Create(const Value: TTCPBlockSocket); override; destructor Destroy; override; {:See @inherited} function LibVersion: String; override; {:See @inherited} function LibName: String; override; {:See @inherited and @link(ssl_cryptlib) for more details.} function Connect: boolean; override; {:See @inherited and @link(ssl_cryptlib) for more details.} function Accept: boolean; override; {:See @inherited} function Shutdown: boolean; override; {:See @inherited} function BiShutdown: boolean; override; {:See @inherited} function SendBuffer(Buffer: TMemory; Len: Integer): Integer; override; {:See @inherited} function RecvBuffer(Buffer: TMemory; Len: Integer): Integer; override; {:See @inherited} function WaitingData: Integer; override; {:See @inherited} function GetSSLVersion: string; override; {:See @inherited} function GetPeerSubject: string; override; {:See @inherited} function GetPeerSerialNo: integer; override; {pf} {:See @inherited} function GetPeerIssuer: string; override; {:See @inherited} function GetPeerName: string; override; {:See @inherited} function GetPeerNameHash: cardinal; override; {pf} {:See @inherited} function GetPeerFingerprint: string; override; {:See @inherited} function GetCertInfo: string; override; {:See @inherited} function GetCipherName: string; override; {:See @inherited} function GetCipherBits: integer; override; {:See @inherited} function GetCipherAlgBits: integer; override; {:See @inherited} function GetVerifyCert: integer; override; end; implementation {==============================================================================} {$IFNDEF CIL} function PasswordCallback(buf:PAnsiChar; size:Integer; rwflag:Integer; userdata: Pointer):Integer; cdecl; var Password: AnsiString; begin Password := ''; if TCustomSSL(userdata) is TCustomSSL then Password := TCustomSSL(userdata).KeyPassword; if Length(Password) > (Size - 1) then SetLength(Password, Size - 1); Result := Length(Password); StrLCopy(buf, PAnsiChar(Password + #0), Result + 1); end; {$ENDIF} {==============================================================================} constructor TSSLOpenSSL.Create(const Value: TTCPBlockSocket); begin inherited Create(Value); FCiphers := 'DEFAULT'; FSsl := nil; Fctx := nil; end; destructor TSSLOpenSSL.Destroy; begin DeInit; inherited Destroy; end; function TSSLOpenSSL.LibVersion: String; begin Result := SSLeayversion(0); end; function TSSLOpenSSL.LibName: String; begin Result := 'ssl_openssl'; end; function TSSLOpenSSL.SSLCheck: Boolean; var {$IFDEF CIL} sb: StringBuilder; {$ENDIF} s : AnsiString; begin Result := true; FLastErrorDesc := ''; FLastError := ErrGetError; ErrClearError; if FLastError <> 0 then begin Result := False; {$IFDEF CIL} sb := StringBuilder.Create(256); ErrErrorString(FLastError, sb, 256); FLastErrorDesc := Trim(sb.ToString); {$ELSE} s := StringOfChar(#0, 256); ErrErrorString(FLastError, s, Length(s)); FLastErrorDesc := s; {$ENDIF} end; end; function TSSLOpenSSL.CreateSelfSignedCert(Host: string): Boolean; var pk: EVP_PKEY; x: PX509; rsa: PRSA; t: PASN1_UTCTIME; name: PX509_NAME; b: PBIO; xn, y: integer; s: AnsiString; {$IFDEF CIL} sb: StringBuilder; {$ENDIF} begin Result := True; pk := EvpPkeynew; x := X509New; try rsa := RsaGenerateKey(1024, $10001, nil, nil); EvpPkeyAssign(pk, EVP_PKEY_RSA, rsa); X509SetVersion(x, 2); Asn1IntegerSet(X509getSerialNumber(x), 0); t := Asn1UtctimeNew; try X509GmtimeAdj(t, -60 * 60 *24); X509SetNotBefore(x, t); X509GmtimeAdj(t, 60 * 60 * 60 *24); X509SetNotAfter(x, t); finally Asn1UtctimeFree(t); end; X509SetPubkey(x, pk); Name := X509GetSubjectName(x); X509NameAddEntryByTxt(Name, 'C', $1001, 'CZ', -1, -1, 0); X509NameAddEntryByTxt(Name, 'CN', $1001, host, -1, -1, 0); x509SetIssuerName(x, Name); x509Sign(x, pk, EvpGetDigestByName('SHA1')); b := BioNew(BioSMem); try i2dX509Bio(b, x); xn := bioctrlpending(b); {$IFDEF CIL} sb := StringBuilder.Create(xn); y := bioread(b, sb, xn); if y > 0 then begin sb.Length := y; s := sb.ToString; end; {$ELSE} setlength(s, xn); y := bioread(b, s, xn); if y > 0 then setlength(s, y); {$ENDIF} finally BioFreeAll(b); end; FCertificate := s; b := BioNew(BioSMem); try i2dPrivatekeyBio(b, pk); xn := bioctrlpending(b); {$IFDEF CIL} sb := StringBuilder.Create(xn); y := bioread(b, sb, xn); if y > 0 then begin sb.Length := y; s := sb.ToString; end; {$ELSE} setlength(s, xn); y := bioread(b, s, xn); if y > 0 then setlength(s, y); {$ENDIF} finally BioFreeAll(b); end; FPrivatekey := s; finally X509free(x); EvpPkeyFree(pk); end; end; function TSSLOpenSSL.LoadPFX(pfxdata: Ansistring): Boolean; var cert, pkey, ca: SslPtr; b: PBIO; p12: SslPtr; begin Result := False; b := BioNew(BioSMem); try BioWrite(b, pfxdata, Length(PfxData)); p12 := d2iPKCS12bio(b, nil); if not Assigned(p12) then Exit; try cert := nil; pkey := nil; ca := nil; try {pf} if PKCS12parse(p12, FKeyPassword, pkey, cert, ca) > 0 then if SSLCTXusecertificate(Fctx, cert) > 0 then if SSLCTXusePrivateKey(Fctx, pkey) > 0 then Result := True; {pf} finally EvpPkeyFree(pkey); X509free(cert); SkX509PopFree(ca,_X509Free); // for ca=nil a new STACK was allocated... end; {/pf} finally PKCS12free(p12); end; finally BioFreeAll(b); end; end; function TSSLOpenSSL.SetSslKeys: boolean; var st: TFileStream; s: string; begin Result := False; if not assigned(FCtx) then Exit; try if FCertificateFile <> '' then if SslCtxUseCertificateChainFile(FCtx, FCertificateFile) <> 1 then if SslCtxUseCertificateFile(FCtx, FCertificateFile, SSL_FILETYPE_PEM) <> 1 then if SslCtxUseCertificateFile(FCtx, FCertificateFile, SSL_FILETYPE_ASN1) <> 1 then Exit; if FCertificate <> '' then if SslCtxUseCertificateASN1(FCtx, length(FCertificate), FCertificate) <> 1 then Exit; SSLCheck; if FPrivateKeyFile <> '' then if SslCtxUsePrivateKeyFile(FCtx, FPrivateKeyFile, SSL_FILETYPE_PEM) <> 1 then if SslCtxUsePrivateKeyFile(FCtx, FPrivateKeyFile, SSL_FILETYPE_ASN1) <> 1 then Exit; if FPrivateKey <> '' then if SslCtxUsePrivateKeyASN1(EVP_PKEY_RSA, FCtx, FPrivateKey, length(FPrivateKey)) <> 1 then Exit; SSLCheck; if FCertCAFile <> '' then if SslCtxLoadVerifyLocations(FCtx, FCertCAFile, '') <> 1 then Exit; if FPFXfile <> '' then begin try st := TFileStream.Create(FPFXfile, fmOpenRead or fmShareDenyNone); try s := ReadStrFromStream(st, st.Size); finally st.Free; end; if not LoadPFX(s) then Exit; except on Exception do Exit; end; end; if FPFX <> '' then if not LoadPFX(FPfx) then Exit; SSLCheck; Result := True; finally SSLCheck; end; end; function TSSLOpenSSL.Init(server:Boolean): Boolean; var s: AnsiString; begin Result := False; FLastErrorDesc := ''; FLastError := 0; Fctx := nil; case FSSLType of LT_SSLv2: Fctx := SslCtxNew(SslMethodV2); LT_SSLv3: Fctx := SslCtxNew(SslMethodV3); LT_TLSv1: Fctx := SslCtxNew(SslMethodTLSV1); LT_all: Fctx := SslCtxNew(SslMethodV23); else Exit; end; if Fctx = nil then begin SSLCheck; Exit; end else begin s := FCiphers; SslCtxSetCipherList(Fctx, s); if FVerifyCert then SslCtxSetVerify(FCtx, SSL_VERIFY_PEER, nil) else SslCtxSetVerify(FCtx, SSL_VERIFY_NONE, nil); {$IFNDEF CIL} SslCtxSetDefaultPasswdCb(FCtx, @PasswordCallback); SslCtxSetDefaultPasswdCbUserdata(FCtx, self); {$ENDIF} if server and (FCertificateFile = '') and (FCertificate = '') and (FPFXfile = '') and (FPFX = '') then begin CreateSelfSignedcert(FSocket.ResolveIPToName(FSocket.GetRemoteSinIP)); end; if not SetSSLKeys then Exit else begin Fssl := nil; Fssl := SslNew(Fctx); if Fssl = nil then begin SSLCheck; exit; end; end; end; Result := true; end; function TSSLOpenSSL.DeInit: Boolean; begin Result := True; if assigned (Fssl) then sslfree(Fssl); Fssl := nil; if assigned (Fctx) then begin SslCtxFree(Fctx); Fctx := nil; ErrRemoveState(0); end; FSSLEnabled := False; end; function TSSLOpenSSL.Prepare(server:Boolean): Boolean; begin Result := false; DeInit; if Init(server) then Result := true else DeInit; end; function TSSLOpenSSL.Connect: boolean; var x: integer; b: boolean; err: integer; begin Result := False; if FSocket.Socket = INVALID_SOCKET then Exit; if Prepare(False) then begin {$IFDEF CIL} if sslsetfd(FSsl, FSocket.Socket.Handle.ToInt32) < 1 then {$ELSE} if sslsetfd(FSsl, FSocket.Socket) < 1 then {$ENDIF} begin SSLCheck; Exit; end; if SNIHost<>'' then SSLCtrl(Fssl, SSL_CTRL_SET_TLSEXT_HOSTNAME, TLSEXT_NAMETYPE_host_name, PAnsiChar(AnsiString(SNIHost))); if FSocket.ConnectionTimeout <= 0 then //do blocking call of SSL_Connect begin x := sslconnect(FSsl); if x < 1 then begin SSLcheck; Exit; end; end else //do non-blocking call of SSL_Connect begin b := Fsocket.NonBlockMode; Fsocket.NonBlockMode := true; repeat x := sslconnect(FSsl); err := SslGetError(FSsl, x); if err = SSL_ERROR_WANT_READ then if not FSocket.CanRead(FSocket.ConnectionTimeout) then break; if err = SSL_ERROR_WANT_WRITE then if not FSocket.CanWrite(FSocket.ConnectionTimeout) then break; until (err <> SSL_ERROR_WANT_READ) and (err <> SSL_ERROR_WANT_WRITE); Fsocket.NonBlockMode := b; if err <> SSL_ERROR_NONE then begin SSLcheck; Exit; end; end; if FverifyCert then if (GetVerifyCert <> 0) or (not DoVerifyCert) then Exit; FSSLEnabled := True; Result := True; end; end; function TSSLOpenSSL.Accept: boolean; var x: integer; begin Result := False; if FSocket.Socket = INVALID_SOCKET then Exit; if Prepare(True) then begin {$IFDEF CIL} if sslsetfd(FSsl, FSocket.Socket.Handle.ToInt32) < 1 then {$ELSE} if sslsetfd(FSsl, FSocket.Socket) < 1 then {$ENDIF} begin SSLCheck; Exit; end; x := sslAccept(FSsl); if x < 1 then begin SSLcheck; Exit; end; FSSLEnabled := True; Result := True; end; end; function TSSLOpenSSL.Shutdown: boolean; begin if assigned(FSsl) then sslshutdown(FSsl); DeInit; Result := True; end; function TSSLOpenSSL.BiShutdown: boolean; var x: integer; begin if assigned(FSsl) then begin x := sslshutdown(FSsl); if x = 0 then begin Synsock.Shutdown(FSocket.Socket, 1); sslshutdown(FSsl); end; end; DeInit; Result := True; end; function TSSLOpenSSL.SendBuffer(Buffer: TMemory; Len: Integer): Integer; var err: integer; {$IFDEF CIL} s: ansistring; {$ENDIF} begin FLastError := 0; FLastErrorDesc := ''; repeat {$IFDEF CIL} s := StringOf(Buffer); Result := SslWrite(FSsl, s, Len); {$ELSE} Result := SslWrite(FSsl, Buffer , Len); {$ENDIF} err := SslGetError(FSsl, Result); until (err <> SSL_ERROR_WANT_READ) and (err <> SSL_ERROR_WANT_WRITE); if err = SSL_ERROR_ZERO_RETURN then Result := 0 else if (err <> 0) then FLastError := err; end; function TSSLOpenSSL.RecvBuffer(Buffer: TMemory; Len: Integer): Integer; var err: integer; {$IFDEF CIL} sb: stringbuilder; s: ansistring; {$ENDIF} begin FLastError := 0; FLastErrorDesc := ''; repeat {$IFDEF CIL} sb := StringBuilder.Create(Len); Result := SslRead(FSsl, sb, Len); if Result > 0 then begin sb.Length := Result; s := sb.ToString; System.Array.Copy(BytesOf(s), Buffer, length(s)); end; {$ELSE} Result := SslRead(FSsl, Buffer , Len); {$ENDIF} err := SslGetError(FSsl, Result); until (err <> SSL_ERROR_WANT_READ) and (err <> SSL_ERROR_WANT_WRITE); if err = SSL_ERROR_ZERO_RETURN then Result := 0 {pf}// Verze 1.1.0 byla s else tak jak to ted mam, // ve verzi 1.1.1 bylo ELSE zruseno, ale pak je SSL_ERROR_ZERO_RETURN // propagovano jako Chyba. {pf} else {/pf} if (err <> 0) then FLastError := err; end; function TSSLOpenSSL.WaitingData: Integer; begin Result := sslpending(Fssl); end; function TSSLOpenSSL.GetSSLVersion: string; begin if not assigned(FSsl) then Result := '' else Result := SSlGetVersion(FSsl); end; function TSSLOpenSSL.GetPeerSubject: string; var cert: PX509; s: ansistring; {$IFDEF CIL} sb: StringBuilder; {$ENDIF} begin if not assigned(FSsl) then begin Result := ''; Exit; end; cert := SSLGetPeerCertificate(Fssl); if not assigned(cert) then begin Result := ''; Exit; end; {$IFDEF CIL} sb := StringBuilder.Create(4096); Result := X509NameOneline(X509GetSubjectName(cert), sb, 4096); {$ELSE} setlength(s, 4096); Result := X509NameOneline(X509GetSubjectName(cert), s, Length(s)); {$ENDIF} X509Free(cert); end; function TSSLOpenSSL.GetPeerSerialNo: integer; {pf} var cert: PX509; SN: PASN1_INTEGER; begin if not assigned(FSsl) then begin Result := -1; Exit; end; cert := SSLGetPeerCertificate(Fssl); try if not assigned(cert) then begin Result := -1; Exit; end; SN := X509GetSerialNumber(cert); Result := Asn1IntegerGet(SN); finally X509Free(cert); end; end; function TSSLOpenSSL.GetPeerName: string; var s: ansistring; begin s := GetPeerSubject; s := SeparateRight(s, '/CN='); Result := Trim(SeparateLeft(s, '/')); end; function TSSLOpenSSL.GetPeerNameHash: cardinal; {pf} var cert: PX509; begin if not assigned(FSsl) then begin Result := 0; Exit; end; cert := SSLGetPeerCertificate(Fssl); try if not assigned(cert) then begin Result := 0; Exit; end; Result := X509NameHash(X509GetSubjectName(cert)); finally X509Free(cert); end; end; function TSSLOpenSSL.GetPeerIssuer: string; var cert: PX509; s: ansistring; {$IFDEF CIL} sb: StringBuilder; {$ENDIF} begin if not assigned(FSsl) then begin Result := ''; Exit; end; cert := SSLGetPeerCertificate(Fssl); if not assigned(cert) then begin Result := ''; Exit; end; {$IFDEF CIL} sb := StringBuilder.Create(4096); Result := X509NameOneline(X509GetIssuerName(cert), sb, 4096); {$ELSE} setlength(s, 4096); Result := X509NameOneline(X509GetIssuerName(cert), s, Length(s)); {$ENDIF} X509Free(cert); end; function TSSLOpenSSL.GetPeerFingerprint: string; var cert: PX509; x: integer; {$IFDEF CIL} sb: StringBuilder; {$ENDIF} begin if not assigned(FSsl) then begin Result := ''; Exit; end; cert := SSLGetPeerCertificate(Fssl); if not assigned(cert) then begin Result := ''; Exit; end; {$IFDEF CIL} sb := StringBuilder.Create(EVP_MAX_MD_SIZE); X509Digest(cert, EvpGetDigestByName('MD5'), sb, x); sb.Length := x; Result := sb.ToString; {$ELSE} setlength(Result, EVP_MAX_MD_SIZE); X509Digest(cert, EvpGetDigestByName('MD5'), Result, x); SetLength(Result, x); {$ENDIF} X509Free(cert); end; function TSSLOpenSSL.GetCertInfo: string; var cert: PX509; x, y: integer; b: PBIO; s: AnsiString; {$IFDEF CIL} sb: stringbuilder; {$ENDIF} begin if not assigned(FSsl) then begin Result := ''; Exit; end; cert := SSLGetPeerCertificate(Fssl); if not assigned(cert) then begin Result := ''; Exit; end; try {pf} b := BioNew(BioSMem); try X509Print(b, cert); x := bioctrlpending(b); {$IFDEF CIL} sb := StringBuilder.Create(x); y := bioread(b, sb, x); if y > 0 then begin sb.Length := y; s := sb.ToString; end; {$ELSE} setlength(s,x); y := bioread(b,s,x); if y > 0 then setlength(s, y); {$ENDIF} Result := ReplaceString(s, LF, CRLF); finally BioFreeAll(b); end; {pf} finally X509Free(cert); end; {/pf} end; function TSSLOpenSSL.GetCipherName: string; begin if not assigned(FSsl) then Result := '' else Result := SslCipherGetName(SslGetCurrentCipher(FSsl)); end; function TSSLOpenSSL.GetCipherBits: integer; var x: integer; begin if not assigned(FSsl) then Result := 0 else Result := SSLCipherGetBits(SslGetCurrentCipher(FSsl), x); end; function TSSLOpenSSL.GetCipherAlgBits: integer; begin if not assigned(FSsl) then Result := 0 else SSLCipherGetBits(SslGetCurrentCipher(FSsl), Result); end; function TSSLOpenSSL.GetVerifyCert: integer; begin if not assigned(FSsl) then Result := 1 else Result := SslGetVerifyResult(FSsl); end; {==============================================================================} initialization if InitSSLInterface then SSLImplementation := TSSLOpenSSL; end. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./concattool.lrs������������������������������������������������������������������������������������0000644�0001750�0001750�00000027330�14576573022�014044� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ This is an automatically generated lazarus resource file } LazarusResources.Add('TConcatToolForm','FORMDATA',[ 'TPF0'#15'TConcatToolForm'#14'ConcatToolForm'#4'Left'#3#239#9#6'Height'#3#148 +#1#3'Top'#2'P'#5'Width'#3'b'#4#7'Caption'#6#18'Concatenation tool'#12'Client' +'Height'#3#148#1#11'ClientWidth'#3'b'#4#6'OnShow'#7#8'FormShow'#8'Position'#7 +#14'poScreenCenter'#10'LCLVersion'#6#8'2.0.12.0'#0#5'TMemo'#5'Memo1'#21'Anch' +'orSideTop.Control'#7#5'Owner'#23'AnchorSideRight.Control'#7#5'Owner'#20'Anc' +'horSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#10'StatusB' +'ar1'#4'Left'#3#147#3#6'Height'#3#128#1#3'Top'#2#0#5'Width'#3#207#0#7'Anchor' +'s'#11#5'akTop'#7'akRight'#8'akBottom'#0#13'Lines.Strings'#1#6'aAll .dat fil' +'es in the selected directory will be concatenated in datestamped chronologi' +'cal order.'#6#0#6'_The oldest file will have its header retained, all other' +' files will have their header stripped.'#6#0#6'XThe output file will be sto' +'red in the same directory but with a suffix of "_concat.dat".'#0#10'ScrollB' +'ars'#7#10'ssAutoBoth'#8'TabOrder'#2#0#0#0#10'TStatusBar'#10'StatusBar1'#4'L' +'eft'#2#0#6'Height'#2#20#3'Top'#3#128#1#5'Width'#3'b'#4#6'Panels'#14#1#5'Wid' +'th'#2'2'#0#0#11'SimplePanel'#8#0#0#12'TProgressBar'#12'ProgressBar1'#22'Anc' +'horSideLeft.Control'#7#5'Owner'#23'AnchorSideRight.Control'#7#5'Memo1'#24'A' +'nchorSideBottom.Control'#7#10'StatusBar1'#4'Left'#2#0#6'Height'#2#20#3'Top' +#3'l'#1#5'Width'#3#147#3#7'Anchors'#11#6'akLeft'#7'akRight'#8'akBottom'#0#6 +'Smooth'#9#8'TabOrder'#2#2#0#0#5'TEdit'#19'SourceDirectoryEdit'#22'AnchorSid' +'eLeft.Control'#7#21'SourceDirectoryButton'#19'AnchorSideLeft.Side'#7#9'asrB' +'ottom'#21'AnchorSideTop.Control'#7#21'SourceDirectoryButton'#4'Left'#2'F'#6 +'Height'#2#30#4'Hint'#6#18' Source directory.'#3'Top'#2#4#5'Width'#3'@'#3#18 +'BorderSpacing.Left'#2#4#8'TabOrder'#2#3#0#0#7'TBitBtn'#21'SourceDirectoryBu' +'tton'#22'AnchorSideLeft.Control'#7#20'ResetDirectoryButton'#19'AnchorSideLe' +'ft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#20'ResetDirectoryButton' +#23'AnchorSideRight.Control'#7#19'SourceDirectoryEdit'#4'Left'#2'$'#6'Height' +#2#30#4'Hint'#6#24'Select source directory.'#3'Top'#2#4#5'Width'#2#30#18'Bor' +'derSpacing.Left'#2#2#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0 +'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0 +#0#0#0#0#0#0#0#0#0'SMF'#160#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255 +#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255#164'e4'#255#164 +'e4'#255#164'e4'#255#164'e4'#255#164'f5'#233#166'g69HHH'#224#151#134'x'#255 +#165'i:'#255#186#131'P'#255#186#131'P'#255#186#131'P'#255#186#131'P'#255#186 +#131'P'#255#186#131'P'#255#186#131'P'#255#186#131'P'#255#186#131'P'#255#186 +#131'P'#255#186#131'P'#255#178'xE'#255#165'f6'#192'III'#224#153#153#153#255 +#165'h9'#255#211#166'~'#255#210#163'x'#255#210#163'x'#255#210#163'x'#255#210 +#163'x'#255#210#163'x'#255#210#163'x'#255#210#163'x'#255#210#163'x'#255#210 +#163'x'#255#211#164'y'#255#209#165'z'#255#165'f5'#245'HHH'#226#155#155#155 +#255#164'g8'#255#213#171#133#255#206#156'n'#255#206#156'm'#255#206#156'm'#255 +#206#156'm'#255#206#156'm'#255#206#156'm'#255#206#156'm'#255#206#156'm'#255 +#206#156'm'#255#207#158'p'#255#213#171#132#255#165'f5'#248'LLL'#228#161#161 +#161#255#165'h8'#255#226#196#169#255#213#168#129#255#211#164'z'#255#211#164 +'z'#255#211#164'z'#255#211#164'z'#255#211#164'z'#255#211#164'z'#255#211#164 +'z'#255#211#164'z'#255#212#167'~'#255#221#186#156#255#165'f5'#249'QQQ'#229 +#164#165#165#255#165'g7'#255#233#210#190#255#221#186#155#255#221#185#153#255 +#220#182#149#255#219#181#146#255#218#179#144#255#217#178#142#255#216#174#137 +#255#215#173#135#255#215#173#135#255#216#176#139#255#229#201#177#255#165'f5' +#250'VVV'#231#169#169#169#255#164'f6'#255#236#216#198#255#221#186#153#255#221 +#186#153#255#221#186#153#255#221#186#153#255#221#186#153#255#221#186#153#255 +#221#186#153#255#220#183#149#255#218#178#142#255#217#176#139#255#231#207#184 +#255#165'f5'#251'[[['#233#174#174#174#255#165'g6'#255#235#215#196#255#220#183 +#148#255#220#183#148#255#220#183#148#255#220#183#148#255#220#183#148#255#220 +#183#148#255#220#183#148#255#220#183#148#255#220#183#148#255#218#180#145#255 +#230#205#182#255#165'f5'#252'___'#233#179#179#179#255#164'f5'#255#234#213#193 +#255#219#180#145#255#219#180#145#255#219#181#145#255#219#181#145#255#219#181 +#146#255#219#181#146#255#219#181#146#255#219#181#146#255#219#181#146#255#220 +#184#150#255#231#207#183#255#164'f4'#253'eee'#235#183#183#183#255#165'f5'#255 +#234#211#190#255#234#212#191#255#234#212#191#255#234#212#190#255#234#212#190 +#255#234#212#190#255#233#211#190#255#233#211#190#255#233#211#190#255#233#211 +#190#255#233#211#190#255#232#207#184#255#165'e4'#254'jjj'#236#189#189#189#255 +#166'mA'#255#165'f6'#255#165'f6'#255#165'f6'#255#165'f6'#255#165'f6'#255#164 +'f5'#255#164'f5'#255#164'f5'#255#164'f5'#255#164'e4'#255#164'e4'#255#164'e4' +#255#166'h7'#224'nnn'#238#192#193#193#255#172#172#172#255#170#170#170#255#167 +#167#167#255#165#165#165#255#164#164#164#255#164#164#164#255#172#172#172#255 ,#182#182#182#255#185#185#185#255#187#187#187#255#162#162#162#255'jjj'#169'GG' +'G'#0'GGG'#0'sss'#239#197#197#197#255#176#176#176#255#173#173#173#255#171#171 +#171#255#170#170#170#255#172#172#172#255#141#141#141#245#141#141#141#242#140 +#140#140#242#140#140#140#242#140#140#140#242#128#128#128#246'lll'#132'GGG'#0 +'GGG'#0'xxx'#240#201#201#201#255#199#199#199#255#197#197#197#255#196#196#196 +#255#196#196#196#255#180#180#180#255'ttt'#202'rrr8rrr8rrr8mmm8ooo5UUU'#3'GGG' +#0'GGG'#0'zzz'#159'yyy'#236'yyy'#236'yyy'#236'yyy'#236'yyy'#236'yyy'#226'xxx' +'5GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG' +#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG'#0'GGG' +#0'GGG'#0'GGG'#0#7'OnClick'#7#26'SourceDirectoryButtonClick'#8'TabOrder'#2#4 +#0#0#5'TMemo'#17'InputFileListMemo'#22'AnchorSideLeft.Control'#7#5'Owner'#21 +'AnchorSideTop.Control'#7#6'Label1'#18'AnchorSideTop.Side'#7#9'asrBottom'#23 +'AnchorSideRight.Control'#7#19'SourceDirectoryEdit'#20'AnchorSideRight.Side' +#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#12'ProgressBar1'#4'Left'#2#0#6 +'Height'#3'/'#1#3'Top'#2';'#5'Width'#3'0'#1#7'Anchors'#11#5'akTop'#6'akLeft' +#8'akBottom'#0#17'BorderSpacing.Top'#2#2#20'BorderSpacing.Bottom'#2#2#10'Scr' +'ollBars'#7#10'ssAutoBoth'#8'TabOrder'#2#5#0#0#6'TLabel'#6'Label1'#22'Anchor' +'SideLeft.Control'#7#17'InputFileListMemo'#21'AnchorSideTop.Control'#7#20'Re' +'setDirectoryButton'#18'AnchorSideTop.Side'#7#9'asrBottom'#24'AnchorSideBott' +'om.Control'#7#17'InputFileListMemo'#4'Left'#2#0#6'Height'#2#17#3'Top'#2'('#5 +'Width'#2'P'#17'BorderSpacing.Top'#2#6#7'Caption'#6#16'Input file list:'#11 +'ParentColor'#8#0#0#5'TMemo'#17'ProcessStatusMemo'#22'AnchorSideLeft.Control' +#7#11'StartButton'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.C' +'ontrol'#7#17'InputFileListMemo'#23'AnchorSideRight.Control'#7#19'SourceDire' +'ctoryEdit'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Cont' +'rol'#7#17'InputFileListMemo'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Lef' +'t'#3#127#1#6'Height'#3'/'#1#3'Top'#2';'#5'Width'#3#7#2#7'Anchors'#11#5'akTo' +'p'#6'akLeft'#7'akRight'#8'akBottom'#0#18'BorderSpacing.Left'#2#4#10'ScrollB' +'ars'#7#6'ssBoth'#8'TabOrder'#2#6#0#0#6'TLabel'#6'Label2'#22'AnchorSideLeft.' +'Control'#7#17'ProcessStatusMemo'#24'AnchorSideBottom.Control'#7#17'InputFil' +'eListMemo'#4'Left'#3#127#1#6'Height'#2#17#3'Top'#2'('#5'Width'#2'n'#7'Ancho' +'rs'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#18'Processing status:'#11'Paren' +'tColor'#8#0#0#7'TButton'#11'StartButton'#22'AnchorSideLeft.Control'#7#17'In' +'putFileListMemo'#19'AnchorSideLeft.Side'#7#9'asrBottom'#4'Left'#3'0'#1#6'He' +'ight'#2#25#3'Top'#3#176#0#5'Width'#2'K'#7'Anchors'#11#6'akLeft'#0#7'Caption' +#6#5'Start'#7'OnClick'#7#16'StartButtonClick'#8'TabOrder'#2#7#0#0#7'TBitBtn' +#20'ResetDirectoryButton'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSid' +'eTop.Control'#7#5'Owner'#4'Left'#2#4#6'Height'#2#30#4'Hint'#6'#Reset locati' +'on of files to default.'#3'Top'#2#4#5'Width'#2#30#18'BorderSpacing.Left'#2#4 +#17'BorderSpacing.Top'#2#4#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0 +#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd' +#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255 +#0'N5'#0#29'N5'#0#133'N5'#0#192'O8'#1#238'O8'#1#237'N5'#0#186'N5'#0#127'N5'#0 +#31#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 +#255#255#0'N5'#0#6'N5'#0'zYD'#5#244#143'j'#7#254#198#158#18#255#226#174#16 +#255#208#166#22#255#170#148#26#255#130'h'#12#253'`H'#8#244'N5'#0'mN5'#0#1#255 +#255#255#0#255#255#255#0#255#255#255#0'N5'#0#1'N5'#0#178'sa'#15#238#170#152 +#30#252#196#157#20#255#209#161#15#255#212#163#14#255#200#159#18#255#179#152 +#25#255#167#142#23#255#156#132#20#255'p_'#14#248'N5'#0#184'N5'#0#1#255#255 +#255#0#255#255#255#0'N5'#0'@^F'#6#220#159#132#21#174#167#142#23#217#175#152 +#27#255#185#156#23#255#185#157#23#255#178#151#26#255#168#146#24#255#162#133 +#18#255#153'v'#11#255#146'l'#6#255'fQ'#10#250'N5'#0't'#255#255#255#0#255#255 +#255#0'fL'#4' '#141'l'#9'g'#153'v'#11#134#159#127#17#175#165#139#21#220#163 +#145#25#250#139'y'#21#254#140'w'#20#254#159#135#23#255#155'x'#13#255#147'm'#7 +#255#143'e'#1#255'wX'#5#255'U?'#5#247'N5'#0')'#0'`'#0#0'dK'#6#26#141'd'#1'2' +#147'm'#5'L'#152'r'#10'lpZ'#12#189'T>'#4#244'O6'#1#170'N7'#0#169'\E'#6#244 +#135'p'#7#254#144'f'#2#255#130'Y'#0#255'lJ'#0#255'M<'#7#254'N5'#0'z'#255#255 +#255#0']H'#7#5'lP'#4#13'~Y'#0#25'|Y'#4',O8'#1#185'N5'#0'"'#255#255#255#0#255 +#255#255#0'N5'#0'''XC'#4#247'xV'#4#255'nK'#0#255'Z='#0#255'F6'#4#255'T<'#2 +#196#255#255#255#0'N5'#0#13'O8'#1#18'N9'#2#21'M7'#3#24'N5'#0#23'N5'#0#8#255 +#255#255#0#255#255#255#0#255#255#255#0'Q9'#1#185'V@'#4#255'[?'#3#255'T<'#8 +#255'P9'#8#255'[D'#5#250'W@'#3#182'fL'#6#255'rS'#8#255#137'g'#21#255#151'q' +#21#255#160'v'#16#255'dP'#10#255'VA'#8'E'#255#255#255#0#255#255#255#0'P9'#2 +#176'J7'#4#255'aI'#21#255'u^+'#255'oX'''#255'_I'#7#245'`J'#6#254#144'p,'#255 ,#167#133';'#255#179#140'7'#255#174#128#28#255#144'd'#4#255'S@'#7#246'N5'#0'1' +#255#255#255#0'N5'#0'$WE'#7#245'L6'#2#255'v^,'#255#132'l:'#255'r_,'#255'YB'#5 +#197'bI'#6#255#161#134'M'#255#166#137'L'#255#168#136'D'#255'~X'#6#255'cG'#3 +#254'Q?'#7#248'P9'#2#177'P9'#2#180'WE'#7#248'S@'#5#254'iQ'#31#255#148'}L'#255 +#148'}L'#255'ta,'#254'N7'#0#132'aF'#5#255#169#146'a'#255#170#146'^'#255#171 +#146']'#255#158#132'L'#255'jO'#22#255'O9'#3#255'R@'#16#255'K9'#7#255'N8'#2 +#255'pY('#255#160#138'Z'#255#164#142'^'#255#156#135'X'#255'fO'#16#247'N5'#0 +'''_D'#3#255#181#159'q'#255#178#157'p'#255#180#158'p'#255#179#157'm'#255#179 +#157'm'#255#163#143'e'#255#135'qA'#255#136'q@'#255#161#139'['#255#179#157'o' +#255#179#157'm'#255#180#158'p'#255'}i-'#250'P8'#0't'#255#255#255#0'`D'#2#255 +#182#162'r'#255'sV'#15#251#143'w?'#250#189#168'{'#255#195#174#127#255#195#174 +#127#255#195#174#127#255#195#174#127#255#195#174#127#255#195#174#127#255#189 +#169'}'#255#141't9'#250'U<'#1#193'N5'#0#2#255#255#255#0'YA'#7#234'hK'#14#242 +'N5'#0'EP7'#0'znQ'#18#247#168#146'd'#255#193#175#135#255#208#190#150#255#206 +#187#146#255#186#166'z'#255#165#143'_'#255'qS'#19#247'N5'#0'sN5'#0#2#255#255 +#255#0#255#255#255#0'N5'#0' N5'#0#28#255#255#255#0#255#255#255#0'N5'#0'$P7'#0 +#133'hN'#22#201#131'k7'#243'v\$'#241'[?'#3#192'P7'#0'~N5'#0'#'#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#7'OnClick'#7#25'ResetDirectoryBut' +'tonClick'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#8#0#0#22'TSelect' +'DirectoryDialog'#22'SelectDirectoryDialog1'#4'Left'#3'4'#2#3'Top'#2'l'#0#0#0 ]); ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./UMain.lfm�����������������������������������������������������������������������������������������0000644�0001750�0001750�00000000302�14576573022�012654� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object FormContourmap: TFormContourmap Left = 573 Height = 499 Top = 79 Width = 763 Caption = 'Dataview' OnCreate = FormCreate LCLVersion = '1.2.4.0' Visible = True end ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./convertoldlogfile.lfm�����������������������������������������������������������������������������0000644�0001750�0001750�00000014611�14576573021�015373� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object ConvertOldLogForm: TConvertOldLogForm Left = 508 Height = 549 Top = 197 Width = 805 Caption = 'Convert old log to dat' ClientHeight = 549 ClientWidth = 805 OnCreate = FormCreate OnShow = FormShow Position = poScreenCenter LCLVersion = '1.3' object HeaderDefinitionGroupBox: TGroupBox AnchorSideLeft.Control = Owner AnchorSideTop.Control = LogfileSelectButton AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = ConvertButton Left = 3 Height = 460 Top = 31 Width = 799 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 3 BorderSpacing.Top = 3 BorderSpacing.Right = 3 BorderSpacing.Bottom = 3 Caption = 'Header definition' ClientHeight = 445 ClientWidth = 795 TabOrder = 0 object MethodGroupBox: TRadioGroup Left = 6 Height = 68 Top = 7 Width = 215 AutoFill = True Caption = 'Method' ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 53 ClientWidth = 211 ItemIndex = 0 Items.Strings = ( 'From previous configuration' 'From other dat file' ) OnClick = MethodGroupBoxClick TabOrder = 0 end object ImportHeaderButton: TButton AnchorSideLeft.Control = MethodGroupBox AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = MethodGroupBox Left = 231 Height = 25 Top = 10 Width = 199 BorderSpacing.Left = 10 BorderSpacing.Top = 3 Caption = 'Import header from dat file' OnClick = ImportHeaderButtonClick TabOrder = 1 end object ImportHeaderNameEdit: TEdit AnchorSideLeft.Control = ImportHeaderButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = ImportHeaderButton AnchorSideTop.Side = asrCenter AnchorSideRight.Control = HeaderDefinitionGroupBox AnchorSideRight.Side = asrBottom Left = 435 Height = 25 Top = 10 Width = 357 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 5 BorderSpacing.Right = 3 TabOrder = 2 end object FromPreviousComboBox: TComboBox AnchorSideLeft.Control = SerialLabel AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = MethodGroupBox AnchorSideTop.Side = asrBottom AnchorSideRight.Control = MethodGroupBox AnchorSideRight.Side = asrBottom Left = 105 Height = 25 Top = 78 Width = 116 Anchors = [akTop, akRight] BorderSpacing.Left = 4 BorderSpacing.Top = 3 ItemHeight = 0 OnChange = FromPreviousComboBoxChange TabOrder = 3 end object StringGrid1: TStringGrid AnchorSideLeft.Control = ImportHeaderButton AnchorSideTop.Control = ImportHeaderButton AnchorSideTop.Side = asrBottom AnchorSideRight.Control = HeaderDefinitionGroupBox AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = HeaderDefinitionGroupBox AnchorSideBottom.Side = asrBottom Left = 231 Height = 403 Top = 39 Width = 561 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Top = 4 BorderSpacing.Right = 3 BorderSpacing.Bottom = 3 ColCount = 3 Columns = < item Title.Caption = 'Value' Width = 463 end item Title.Caption = 'Value2' end> RowCount = 18 TabOrder = 4 OnDrawCell = StringGrid1DrawCell ColWidths = ( 64 463 64 ) end object SerialLabel: TLabel AnchorSideLeft.Control = MethodGroupBox AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = FromPreviousComboBox AnchorSideTop.Side = asrCenter AnchorSideRight.Control = FromPreviousComboBox Left = 70 Height = 13 Top = 84 Width = 31 Anchors = [akTop, akRight] BorderSpacing.Left = 10 BorderSpacing.Right = 4 Caption = 'Serial:' ParentColor = False end end object LogfileSelectButton: TButton AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 3 Height = 25 Top = 3 Width = 168 BorderSpacing.Left = 3 BorderSpacing.Top = 3 Caption = 'Select logfile to convert' OnClick = LogfileSelectButtonClick TabOrder = 1 end object LogfilenameLabel: TEdit AnchorSideLeft.Control = LogfileSelectButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = LogfileSelectButton AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 174 Height = 25 Top = 3 Width = 628 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 3 BorderSpacing.Right = 3 TabOrder = 2 end object ConvertButton: TButton AnchorSideLeft.Control = Owner AnchorSideBottom.Control = OutputfilenameLabel Left = 3 Height = 25 Top = 494 Width = 75 Anchors = [akLeft, akBottom] BorderSpacing.Left = 3 BorderSpacing.Bottom = 2 Caption = 'Convert' OnClick = ConvertButtonClick TabOrder = 3 end object OutputfilenameLabel: TLabeledEdit AnchorSideLeft.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 242 Height = 25 Top = 521 Width = 560 Anchors = [akRight, akBottom] BorderSpacing.Right = 3 BorderSpacing.Bottom = 3 EditLabel.AnchorSideTop.Control = OutputfilenameLabel EditLabel.AnchorSideTop.Side = asrCenter EditLabel.AnchorSideRight.Control = OutputfilenameLabel EditLabel.AnchorSideBottom.Control = OutputfilenameLabel EditLabel.AnchorSideBottom.Side = asrBottom EditLabel.Left = 125 EditLabel.Height = 13 EditLabel.Top = 527 EditLabel.Width = 114 EditLabel.Caption = 'Output file stored here:' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 4 end object OpenFileDialog: TOpenDialog left = 112 top = 184 end end �����������������������������������������������������������������������������������������������������������������������./system-search.png���������������������������������������������������������������������������������0000644�0001750�0001750�00000001524�14576573022�014447� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���������a��IDATxڕkHaƗ.uYsn^h1]45Ӳe\ 2j#-TH12v'ATDeb%YQYX'M>ԇ<?΁�� rxp4\iU<Dmn`z ̾x3˦ПCv=r<'РE݉33y;gřYvXo-|_ U4 X+D>rI+Ex$:_qzb6g@Wu ;aFžbƏG cٹ9 [<ˍc)Atzu pSX2/["i ;==ZWWW2,/KUWaSж1�Bٖ`#'b,tbxa~~baa25:28.|zP�kg_)I1Z6EBe*922>" G7brYb芚)2 yER6p3. ;XuIBrv.*wxONN !2n=Y/o W u \?e�U, Dn%.­=B_SK@vÑ#_r@g36Rt{x] ~Kݡ H bfgm`inG["w(lGhP&Q+ჸ\ot:A+X۴Hȣ2Ά9'_??˖fu|c^ ţl&ZSɞFQ5777����IENDB`����������������������������������������������������������������������������������������������������������������������������������������������������������������������������./upascaltz_types.pas�������������������������������������������������������������������������������0000644�0001750�0001750�00000026536�14561172557�015125� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit uPascalTZ_Types; {******************************************************************************* This file is a part of PascalTZ package: https://github.com/dezlov/pascaltz License: GNU Library General Public License (LGPL) with a special exception. Read accompanying README and COPYING files for more details. Authors: 2009 - José Mejuto 2015 - Denis Kozlov *******************************************************************************} {$mode objfpc}{$H+} interface uses Classes, SysUtils, FGL; const TZ_FILE_CONTINENT_AFRICA = 'africa'; TZ_FILE_CONTINENT_ANTARCTICA = 'antarctica'; TZ_FILE_CONTINENT_ASIA = 'asia'; TZ_FILE_CONTINENT_AUSTRALASIA = 'australasia'; TZ_FILE_CONTINENT_EUROPE = 'europe'; TZ_FILE_CONTINENT_NORTHAMERICA = 'northamerica'; TZ_FILE_CONTINENT_SOUTHAMERICA = 'southamerica'; TZ_FILE_OTHER_BACKWARD = 'backward'; TZ_FILE_OTHER_BACKZONE = 'backzone'; TZ_FILE_OTHER_ETCETERA = 'etcetera'; TZ_FILE_OTHER_FACTORY = 'factory'; TZ_FILE_OTHER_LEAPSECONDS = 'leapseconds'; TZ_FILE_OTHER_PACIFICNEW = 'pacificnew'; TZ_FILE_OTHER_SYSTEMV = 'systemv'; const TZ_FILES_STANDARD: array [1..9] of String = ( TZ_FILE_CONTINENT_AFRICA, TZ_FILE_CONTINENT_ANTARCTICA, TZ_FILE_CONTINENT_ASIA, TZ_FILE_CONTINENT_AUSTRALASIA, TZ_FILE_CONTINENT_EUROPE, TZ_FILE_CONTINENT_NORTHAMERICA, TZ_FILE_CONTINENT_SOUTHAMERICA, TZ_FILE_OTHER_BACKWARD, TZ_FILE_OTHER_ETCETERA ); const // Longest 'backward' zone name is 32 characters: // "America/Argentina/ComodRivadavia" // Longest 'current' zones names are 30 characters: // "America/Argentina/Buenos_Aires" // "America/Argentina/Rio_Gallegos" // "America/North_Dakota/New_Salem" // Longest time zone abbreviation in 2017b: // "+0330/+0430" (Asia/Tehran) TZ_RULENAME_SIZE = 12; TZ_ZONENAME_SIZE = 32; // max 32 characters is 'backward' compatible! TZ_TIMEZONELETTERS_SIZE = 11; TZ_ONRULE_SIZE = 7; type PAsciiChar = ^AsciiChar; AsciiChar = AnsiChar; AsciiString = AnsiString; TParseSequence = (TTzParseRule, TTzParseZone, TTzParseLink, TTzParseFinish); TTZMonth = 1..12; TTZDay = 1..31; // Time component types are used for strict time range checking. // Note: 25:00:00 time introduced in tzdata 2018f, see "Rule Japan 1948 1951". TTZHour = 0..25; TTZMinute = 0..59; TTZSecond = 0..59; TTZWeekDay = (eTZSunday=1, eTZMonday, eTZTuesday, eTZWednesday, eTZThursday, eTZFriday, eTZSaturday); TTZTimeForm = (tztfWallClock, tztfStandard, tztfUniversal); const // Max allowed time specification as a total number of seconds. // Note: 25:00:00 time introduced in tzdata 2018f, see "Rule Japan 1948 1951". TZ_MAX_TIME_VALUE_SECONDS = 25 * 60 * 60; // Used for identifying unspecified dates in future, i.e. "max" keyword in rules. TZ_YEAR_MAX = 9999; // ZIC man page: // For RULE IN/ON/AT fields and ZONE UNTIL fields, // in the absence of an indicator, wall clock time is assumed. TZ_TIME_FORM_DEFAULT = tztfWallClock; // Delimiter of fields for stringifying Zone and Rule objects. // TAB character is a commonly used field delimiter in tzdata files. TZ_EXPORT_DELIM = #9; type TTZDateTime=record Year: smallint; Month: BYTE; Day: BYTE; SecsInDay: integer; end; TTZRule=class public Name: AsciiString; FromYear: integer; ToYear: integer; InMonth: BYTE; OnRule: AsciiString; AtHourTimeForm: TTZTimeForm; AtHourTime: integer; //seconds SaveTime: integer; //seconds TimeZoneLetters: AsciiString; public function GetBeginDate(const AYear: Integer): TTZDateTime; function ToString: String; override; overload; function ToString(const Delimeter: String): String; overload; end; TTZRuleList = specialize TFPGObjectList<TTZRule>; TTZRuleGroup = class private FList: TTZRuleList; FName: AsciiString; public constructor Create(const AName: AsciiString); destructor Destroy; override; property List: TTZRuleList read FList; property Name: AsciiString read FName write FName; end; TTZRuleGroupList = specialize TFPGObjectList<TTZRuleGroup>; TTZDateListItem=class public Rule: TTZRule; Date: TTZDateTime; TimeForm: TTZTimeForm; constructor Create(const ARule: TTZRule; const ADate: TTZDateTime; const ATimeForm: TTZTimeForm); end; TTZDateList = specialize TFPGObjectList<TTZDateListItem>; TTZDateListHelper = class helper for TTZDateList public procedure SortByDate; end; TTZZone=class public // Standard zone definition attributes: Name: AsciiString; Offset: integer; //seconds RuleName: AsciiString; FixedSaveTime: integer; //seconds TimeZoneLetters: AsciiString; ValidUntilForm: TTZTimeForm; ValidUntil: TTZDateTime; // Additionally calculated attributes: ValidUntilSaveTime: Integer; PreviousZone: TTZZone; public function ToString: String; override; overload; function ToString(const Delimeter: String): String; overload; end; TTZZoneList = specialize TFPGObjectList<TTZZone>; TTZZoneListHelper = class helper for TTZZoneList public procedure SortByValidUntil; end; TTZZoneGroup = class private FList: TTZZoneList; FName: AsciiString; public constructor Create(const AName: AsciiString); destructor Destroy; override; property List: TTZZoneList read FList; property Name: AsciiString read FName write FName; end; TTZZoneGroupList = specialize TFPGObjectList<TTZZoneGroup>; TTZLink=class public LinkTarget: AsciiString; // existing zone name LinkName: AsciiString; // alternative zone name end; TTZLinkList = specialize TFPGObjectList<TTZLink>; TTZLineIterate = class(TObject) private Position: integer; Line: AsciiString; LineSize: Integer; protected FIterateChar: AsciiChar; public property IterateChar: AsciiChar read FIterateChar write FIterateChar; property CurrentLine: AsciiString read Line; function GetNextWord: AsciiString; constructor Create(const ALine: AsciiString; const AIterateChar: AsciiChar=#32); end; TTZException = class(Exception); implementation uses uPascalTZ_Tools; function DashIfEmpty(const S: String): String; inline; begin if Length(S) > 0 then Result := S else Result := '-'; end; function TTZRule.GetBeginDate(const AYear: Integer): TTZDateTime; begin Result := MakeTZDate(AYear, Self.InMonth, 1, 0); MacroSolver(Result, Self.OnRule); Result.SecsInDay := Self.AtHourTime; end; function TTZRule.ToString: String; begin Result := Self.ToString(TZ_EXPORT_DELIM); end; function TTZRule.ToString(const Delimeter: String): String; var ToYearStr, AtTimeStr: String; begin // Line format: // Rule, NAME, FROM, TO, TYPE, IN, ON, AT, SAVE, LETTER/S // TO if Self.ToYear = TZ_YEAR_MAX then ToYearStr := 'max' else if Self.ToYear = Self.FromYear then ToYearStr := 'only' else ToYearStr := IntToStr(Self.ToYear); // AT AtTimeStr := ''; if (Self.AtHourTime <> 0) or (Self.AtHourTimeForm <> TZ_TIME_FORM_DEFAULT) then begin AtTimeStr := SecondsToShortTime(Self.AtHourTime); if (Self.AtHourTimeForm <> TZ_TIME_FORM_DEFAULT) then AtTimeStr := AtTimeStr + TimeFormToChar(Self.AtHourTimeForm); end; // Full line Result := 'Rule' + Delimeter + // Rule Self.Name + Delimeter + // NAME IntToStr(Self.FromYear) + Delimeter + // FROM ToYearStr + Delimeter + // TO '-' + Delimeter + // TYPE MonthNumberToShortName(Self.InMonth) + Delimeter + // IN Self.OnRule + Delimeter + // ON DashIfEmpty(AtTimeStr) + Delimeter + // AT SecondsToShortTime(Self.SaveTime) + Delimeter + // SAVE DashIfEmpty(Self.TimeZoneLetters); // LETTER/S end; constructor TTZRuleGroup.Create(const AName: AsciiString); begin FName := AName; FList := TTZRuleList.Create(True); // FreeObjects = True end; destructor TTZRuleGroup.Destroy; begin FreeAndNil(FList); end; function TTZZone.ToString: String; begin Result := Self.ToString(TZ_EXPORT_DELIM); end; function TTZZone.ToString(const Delimeter: String): String; var RuleStr, UntilStr, UntilTimeStr: String; begin // Line format: // Zone, NAME, GMTOFF, RULES/SAVE, FORMAT, [UNTILYEAR [MONTH [DAY [TIME]]]] // RULES/SAVE RuleStr := ''; if Length(Self.RuleName) > 0 then RuleStr := Self.RuleName else if Self.FixedSaveTime <> 0 then RuleStr := SecondsToShortTime(Self.FixedSaveTime); // [UNTILYEAR [MONTH [DAY [TIME]]]] UntilStr := ''; if Self.ValidUntil.Year <> TZ_YEAR_MAX then begin // [TIME] UntilTimeStr := ''; if (Self.ValidUntil.SecsInDay <> 0) or (Self.ValidUntilForm <> TZ_TIME_FORM_DEFAULT) then begin UntilTimeStr := SecondsToShortTime(Self.ValidUntil.SecsInDay); if (Self.ValidUntilForm <> TZ_TIME_FORM_DEFAULT) then UntilTimeStr := UntilTimeStr + TimeFormToChar(Self.ValidUntilForm); end; // [UNTILYEAR [MONTH [DAY [TIME]]]] UntilStr := IntToStr(Self.ValidUntil.Year); if (Self.ValidUntil.Month <> 1) or (Self.ValidUntil.Day <> 1) or (Length(UntilTimeStr) > 0) then begin UntilStr := UntilStr + Delimeter + MonthNumberToShortName(Self.ValidUntil.Month) + Delimeter + IntToStr(Self.ValidUntil.Day) + Delimeter + UntilTimeStr; end; end; // Full line Result := 'Zone' + Delimeter + // Zone Self.Name + Delimeter + // NAME SecondsToShortTime(Self.Offset) + Delimeter + // GMTOFF DashIfEmpty(RuleStr) + Delimeter + // RULES/SAVE DashIfEmpty(Self.TimeZoneLetters) + Delimeter + // FORMAT UntilStr; // [UNTILYEAR [MONTH [DAY [TIME]]]] Result := TrimRight(Result); end; function CompareZonesByValidUntil(const ItemA, ItemB: TTZZone): Integer; begin Result := CompareDates(ItemA.ValidUntil, ItemB.ValidUntil); end; procedure TTZZoneListHelper.SortByValidUntil; begin Self.Sort(@CompareZonesByValidUntil); end; constructor TTZZoneGroup.Create(const AName: AsciiString); begin FName := AName; FList := TTZZoneList.Create(True); // FreeObjects = True end; destructor TTZZoneGroup.Destroy; begin FreeAndNil(FList); end; constructor TTZDateListItem.Create(const ARule: TTZRule; const ADate: TTZDateTime; const ATimeForm: TTZTimeForm); begin Self.Rule := ARule; Self.Date := ADate; Self.TimeForm := ATimeForm; end; function CompareDateListItems(const ItemA, ItemB: TTZDateListItem): Integer; begin Result := CompareDates(ItemA.Date, ItemB.Date); end; procedure TTZDateListHelper.SortByDate; begin Self.Sort(@CompareDateListItems); end; { TTZLineIterate } function TTZLineIterate.GetNextWord: AsciiString; const CHAR_SPACE = #32; CHAR_TAB = #09; var BeginPos: integer; begin if (FIterateChar=CHAR_SPACE) or (FIterateChar=CHAR_TAB) then begin while (Position<=LineSize) and ((Line[Position]=CHAR_SPACE) or (Line[Position]=CHAR_TAB)) do inc(Position); BeginPos:=Position; while (Position<=LineSize) and ((Line[Position]<>CHAR_SPACE) and (Line[Position]<>CHAR_TAB)) do inc(Position); end else begin if Line[Position]=FIterateChar then inc(Position); BeginPos:=Position; while (Position<=LineSize) and (Line[Position]<>FIterateChar) do inc(Position); end; Result:=Copy(Line,BeginPos,Position-BeginPos); end; constructor TTZLineIterate.Create(const ALine: AsciiString; const AIterateChar: AsciiChar); begin Line:=ALine; Position:=1; LineSize:=Length(ALine); FIterateChar:=AIterateChar; end; end. ������������������������������������������������������������������������������������������������������������������������������������������������������������������./vector.lfm����������������������������������������������������������������������������������������0000644�0001750�0001750�00000521524�14576573022�013163� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object VectorForm: TVectorForm Left = 1920 Height = 619 Top = 120 Width = 1283 Anchors = [] BorderStyle = bsDialog Caption = 'Vector' ClientHeight = 619 ClientWidth = 1283 Icon.Data = { 3E08010000000100010080800000010020002808010016000000280000008000 0000000100000100200000000000000001006400000064000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000020000000200000003000000030000 0003000000020000000300000002000000010000000100000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000100000003000000060000000A0000 000D00000011000000160000001A0000001E0000002100000023000000240000 00230000002200000022000000210000001E0000001C00000018000000150000 00110000000E0000000B00000007000000040000000200000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000010000 000300000005000000090000000E000000150000001E00000027000000310000 003B000000440000004D000000550000005B0000006100000064000000650000 00650000006400000062000000600000005D00000058000000520000004B0000 00440000003D000000350000002B0000002100000019000000110000000B0000 0007000000040000000100000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000001000000050000000B0000 0015000000210000002E0000003E0000004E0000005E0000006D0000007A0000 008A000000940000009E000000A8000000AD000000B3000000B6000000B60000 00B6000000B7000000B5000000B3000000B0000000A9000000A60000009E0000 00950000008E0000008200000073000000640000005400000043000000340000 00280000001C0000001100000009000000040000000100000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000002000000090000001400000024000000380000 004E000000630000007A00000090000000A0000000B0000000BD000000C70000 00D1000000D7000000DD000000E2000000E4000000E7000000E9000000E90000 00E8000000EA000000E7000000E7000000E7000000E1000000E3000000DD0000 00D8000000D5000000CB000000C3000000B7000000A600000095000000820000 00700000005C0000004700000032000000210000001300000009000000020000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0002000000080000001100000020000000340000004D00000067000000810000 009B000000B0000000C1000000D3000000DB000000E5000000EC000000ED0000 00F3000000F5000000F7000000F9000000FA000000FB000000FC000000FC0000 00FB000000FD000000FC000000FC000000FC000000F9000000FA000000F80000 00F6000000F6000000F0000000EF000000E9000000DE000000D5000000C90000 00BA000000AA000000950000007B0000006300000049000000320000001F0000 0011000000070000000100000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000030000000B0000 00180000002B000000430000005D0000007900000097000000B1000000C60000 00DB000000E7000000ED000000F7000000F9000000FC000000FE000000FB0000 01FE000001FE000001FD010102FE000103FF010103FF010103FF010103FF0102 04FF000104FF010104FF010103FF000102FF000103FF000002FF000001FE0000 01FF000001FF000001FD000000FE000000FC000000F9000000F7000000F20000 00ED000000E4000000D5000000C3000000AD00000093000000770000005C0000 0041000000290000001600000009000000020000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000030000000A0000001A000000300000 004B0000006B0000008D000000AA000000C3000000D7000000E8000000F00000 00F9000000FD000000FB000000FF000001FE000002FE000002FF010103FF0101 04FF010105FF020206FF020308FF020409FF03040BFF04050DFF03060EFF0207 0DFF03060DFF03060DFF03050CFF03040AFF03050AFF030308FF030307FF0202 06FF010205FF000104FF000102FF000002FE000001FE000001FF000001FD0000 00FE000000FC000000F6000000F1000000E5000000D6000000C2000000A90000 008900000069000000490000002C000000160000000800000002000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000008000000180000002F0000004F000000740000 0099000000B9000000D1000000E4000000ED000000F3000000FB000101FD0001 03FE000204FF010306FF010204FF020205FF030206FF030308FF030308FF0404 0AFF05050CFF060610FF060613FF060714FF060817FF080D1EFF070F1FFF050C 1AFF070F1CFF060E1DFF070C1DFF080A1BFF070A18FF070914FF060710FF0606 0FFF05060FFF04050CFF030409FF020307FF020206FF020306FF010306FF0001 04FF000102FF000101FE000000FD000000F7000000F3000000EE000000E10000 00CF000000B7000000950000006F0000004B0000002C00000015000000060000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000005000000130000002B0000004C000000740000009B000000BB0000 00D5000000E8000000F1000000F9000001FC000102FE000205FF000408FF0007 0CFF020A14FF040C17FF04060DFF05050DFF07060EFF070710FF070711FF0A05 12FF0A0511FF0A0917FF0A0E20FF081025FF0A1329FF091329FF091228FF0B14 2BFF0B142CFF0A162EFF09122AFF090D23FF080E21FF080A1CFF0A0A1DFF0A0B 1DFF080A19FF080915FF060814FF060612FF050510FF040711FF040711FF0205 0DFF010409FF010306FF010103FF010001FE000000FD000000FB000000F60000 00F3000000E6000000D2000000B7000000950000006F0000004A0000002B0000 0013000000050000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000030000 000E00000024000000450000006B00000093000000B8000000D7000000E90000 00F4000000FC000102FD000204FE000408FF01060CFF020911FF03101CFF0210 1FFF040E1DFF070B19FF080614FF080613FF090716FF0A0919FF0A0818FF0D05 16FF0C0515FF0B0A1BFF0C1126FF0B152FFF0C1832FF0A152DFF09142DFF0B18 34FF0D1734FF0D1935FF0B1530FF0A1029FF0A1128FF090C22FF0B0D25FF0B0F 27FF0A0E24FF0A0B22FF0A0A1FFF090A1CFF090B1CFF0A0B1CFF090C1AFF080F 1DFF070E1CFF040914FF02050DFF020408FF020204FF010102FE000102FD0000 00FE000000FA000000F3000000E7000000D1000000B5000000920000006A0000 0041000000220000000D00000002000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000007000000180000 00350000005E00000088000000B1000000D3000000E7000000F7000001FC0001 02FD000305FF000509FF010911FF020D19FF04101EFF061223FF061B33FF071A 32FF080F24FF080514FF0C0617FF0C0719FF0B091EFF0B0A21FF0C081DFF0D07 1AFF0B081AFF0B0C1EFF0C1227FF0C142EFF0C1731FF0B1730FF091731FF091A 36FF0D1B37FF0D1935FF0C1631FF0C152FFF0D1430FF0C112AFF0B112AFF0B12 2BFF0D122BFF0B0E29FF0C0A24FF0C0D23FF0B1025FF0D0E24FF0C0F23FF0D18 2DFF0C172EFF080E22FF060D1DFF050A15FF04070FFF02050BFF010509FF0103 05FF000103FE000001FE000000FC000000F3000000E8000000D1000000AE0000 0084000000590000003200000015000000040000000100000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000020000000B00000023000000480000 0074000000A6000000CA000000E4000000F4000000FA000102FE000104FF0104 08FF020910FF030D18FF051527FF07192FFF091A33FF0A1A39FF0B1F3EFF0E1D 3AFF0D122AFF0A0519FF0C091AFF0E0B1DFF0F0C24FF0E0C26FF0C0A22FF0C0C 20FF0A0B1FFF0C0E23FF0F1229FF0B1229FF0B172FFF0C1934FF0C1B37FF0A1D 37FF0C1E39FF0D1935FF0D1633FF0D1835FF0F1A38FF0C1733FF0C152FFF0E14 2DFF10152BFF0C1224FF0D0B22FF0D0D26FF0D102BFF0C0F29FF0A122BFF0D1A 33FF0D1831FF091128FF0C162EFF081124FF070C1DFF050B19FF030B15FF0309 12FF02060CFF010306FF000102FF000001FB000000FB000000F2000000E10000 00C80000009F0000006F000000410000001E0000000900000001000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000500000014000000320000005D0000008D0000 00B9000000DB000000EF000000F9000001FD000102FF000306FF01070EFF030E 1AFF051527FF08172FFF08162FFF08152EFF0A1B37FF0E294DFF0C2243FF0A13 2BFF0C0A1CFF0E0A1BFF0C0A1AFF0C0A1CFF0C0B1FFF0C0C20FF0C0C21FF0D0D 24FF0B0C1FFF0B1021FF0D1529FF0C152BFF0C162EFF0D1630FF0E1732FF0C1A 35FF0B1934FF0B1835FF0B1836FF0B1937FF0C1938FF0A1735FF0B1733FF0C14 2DFF0D1126FF0D1125FF0E1026FF0D0D25FF0B0D24FF0C1026FF0B1029FF0C10 29FF0B102AFF0A1331FF0C1939FF0C1834FF09142DFF071126FF071023FF0513 26FF040F1EFF030813FF01040AFF010205FF000001FD000000FB000000F70000 00EE000000D6000000B400000086000000550000002B00000010000000020000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000080000001E0000004300000071000000A1000000CA0000 00E5000000F3000000FC000001FF010104FF020308FF030913FF071425FF081A 30FF07162FFF091027FF0C1028FF0C0E26FF0C0F28FF111532FF0B112CFF0B0C 24FF0D0B1EFF0D0B1BFF0B0A1AFF0D0C1DFF0D0B1EFF0C0D20FF0C1126FF0B0D 22FF0C0D20FF0D0F21FF0D1124FF0B1026FF0D1129FF0D1027FF0E1026FF0E13 2BFF0C1529FF0D172FFF0D1835FF0D1838FF0C1838FF0D1838FF0F1C39FF0D1B 35FF0A142DFF0B1632FF0D152EFF0D1025FF0D0E21FF0F1028FF0C0F2AFF0F12 2BFF0F152EFF0C1835FF101C3AFF0E1C39FF0A1934FF091931FF0B1B32FF0918 2FFF08152CFF061124FF030C1AFF020912FF020509FF000103FF000000FE0000 00FB000000F1000000E2000000C4000000980000006700000038000000170000 0005000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00010000000B000000240000004E00000082000000B3000000D7000000EE0000 00FA000001FC010103FF020205FF03030AFF050711FF081123FF0A1C36FF0C22 40FF0D1D3BFF0B0B21FF0E0B21FF0E0B21FF0E081FFF10071EFF0C081EFF0D0A 22FF0E0B22FF0C0B1CFF0C0A1BFF0F0C1DFF0F0E20FF0E1024FF0E1027FF0B0D 21FF0E0E22FF0F0E23FF0C0E22FF0C0D24FF0E0F27FF0E0D22FF0D0D21FF0F10 26FF0D1126FF0E142AFF0E1833FF0D1A39FF0D1837FF111A3AFF101E3BFF0D1D 38FF0B1934FF0C193AFF0C1733FF0D1328FF0E1124FF0F122BFF0E122EFF1014 2DFF10152CFF0E162EFF0F1833FF0F1C38FF0D1E3AFF0C203BFF0C213BFF0B19 34FF0B1A36FF091832FF071428FF071322FF050D18FF03070DFF010205FF0000 02FE000000FC000000F8000000EB000000D1000000A800000074000000440000 001F000000090000000100000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000020000 000E0000002B000000570000008C000000BF000000E4000000F4000000FB0000 01FF010104FF04040AFF05050EFF070612FF090B1CFF0D162CFF0C1B36FF0E21 3FFF132342FF0E0D24FF0E0B20FF0E0B21FF0F0A22FF0F0922FF0E0C21FF0E0B 22FF0E0A22FF0F0B20FF0F0A1EFF110B1DFF101021FF101226FF100D24FF0E0E 23FF100E24FF0F0F24FF0C0F24FF0E0F26FF0F1025FF0E0E23FF0E0E24FF1011 29FF0D102AFF0E102AFF0E1731FF0D1C38FF0E1733FF101B3AFF0D1A37FF0B19 34FF0D1A35FF0D1835FF0C162FFF0C142BFF0C1429FF0C142CFF0E1830FF0D13 2AFF0D0F25FF0E0F24FF0C1029FF101833FF101F3DFF0E2342FF0C2240FF0C19 37FF0C1D3CFF0C1D3AFF0B1931FF0C1B31FF0A162BFF060F1EFF040810FF0202 07FF000102FF000000FE000000FB000000F2000000DA000000B3000000820000 004F000000240000000A00000001000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000020000000F0000 002F0000006000000098000000C9000000E6000000F6000000FD010102FE0203 07FF02040BFF070914FF0A0B18FF0C0B1BFF0F0F25FF110F26FF121027FF100F 27FF0D0C25FF0D0B1EFF0E0B1CFF100B20FF110B22FF0E0B21FF0D0C20FF0F0B 21FF110C23FF110D24FF0F0C23FF0F0F20FF0E0D1EFF0E0D21FF121229FF0E12 26FF0F1122FF0F1023FF0F0F27FF0D0D22FF0E0C1EFF100D20FF100F24FF0E11 27FF0E1329FF0F1029FF10112EFF0F1533FF0B1531FF0B1531FF0C1632FF0C17 31FF0C162DFF0C1526FF0B1122FF0B1124FF0B1228FF0B132CFF0C1530FF0D16 30FF0F142CFF101128FF0F1229FF0F112AFF0F1835FF0D2241FF0C2644FF0F1A 38FF0F1F3EFF0D203CFF0B1C36FF0E1E3BFF0C1F3BFF0A172EFF080E1EFF0508 12FF020409FF000203FF000001FF000000FC000000F1000000E3000000C10000 008E00000055000000260000000A000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000200000011000000330000 00670000009E000000CD000000EB000000F8000001FE010204FF030408FF0405 0DFF070A16FF0A0A1BFF0C091CFF0D0A1FFF0F0F26FF120F26FF100D24FF0E0B 21FF0D0A1EFF0D091BFF0E0A1CFF0F0B1EFF0E0B1FFF0B0C1FFF0D0C20FF0D0B 1EFF0E0C1FFF0F0F24FF0F0E28FF0F0E22FF0E0E1FFF0D0D21FF0D0D26FF0F12 29FF0E1327FF0D0F25FF0D0C25FF0C0B21FF0F0A20FF0E0B21FF0D0C23FF0E0E 24FF0E0F23FF0F0F25FF10142FFF0F1A37FF0B1A34FF0C1A35FF0B1734FF0A16 32FF0B172FFF0D172BFF0B1328FF0C152EFF0E1833FF0C152FFF0D1531FF0C18 35FF0C1833FF0E132CFF0E1025FF0F0E26FF0C0E27FF0C152FFF10243EFF0D16 2FFF0D1833FF0E1C37FF0E1933FF0B112AFF0D1933FF0C162DFF090E20FF080A 18FF06070FFF020307FF010103FF000101FF000000FB000000F8000000E60000 00C5000000940000005A0000002A0000000D0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000010000001200000034000000670000 00A3000000D1000000ED000000FA000001FE000104FF02050AFF060912FF0A0D 1CFF0E1429FF101129FF0D0C24FF0C0A21FF0F0D22FF0F0C21FF0E0C21FF0E0D 21FF0E0C1FFF0D091DFF0D091DFF0E0A1CFF0E0C1DFF0C0D20FF0D0D23FF0D0C 20FF0F0C1FFF100E24FF0F0E29FF0E0C25FF0F0E25FF0E0F26FF0C0C25FF0E11 28FF0E142AFF0F132BFF0E0F2AFF0C0D24FF0E0D23FF0E0F26FF0D1027FF0D0F 26FF0F1028FF0E0F27FF0D132DFF0D1835FF0D1B36FF0B1733FF0C1735FF0D18 35FF0E1931FF0F1932FF0C152FFF0D1731FF0E1934FF0D152FFF0E152FFF0D16 31FF0D1731FF0E152CFF0C1025FF0F1027FF0E0E26FF0D1128FF101B31FF0D12 2AFF0D122BFF0D142DFF0C122AFF0C0D26FF0F132EFF0D132BFF0B1023FF0A0C 1DFF090917FF06060FFF030308FF010104FF000001FF000000FE000000F80000 00E8000000C9000000960000005D0000002D0000000D00000001000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000001000000100000003400000068000000A20000 00D3000000F0000001FC000103FE010408FF050C15FF060C19FF0A0C1CFF0F11 25FF10152FFF12132EFF0F0D28FF0C0921FF0D0A1EFF0D0A1DFF0E0E1FFF0E0F 21FF0D0C1FFF0D0A1DFF0D091DFF0D0A1CFF0D0C1DFF0E0D1FFF0D0D25FF0E0D 23FF100D22FF110C23FF0E0D25FF0D0C25FF0E0D27FF0F0E26FF0C0E21FF0D10 23FF0F1529FF10162EFF0F132CFF0D1027FF0E1126FF0F132AFF0E142BFF0B12 27FF0F122DFF0C0F27FF0A0F27FF0B132DFF0E1730FF0B1431FF0D1836FF0F1B 36FF0F1A33FF0F1A36FF0E1531FF0D1630FF0D172FFF0D132DFF0F152EFF0E14 2DFF0D132CFF0E132AFF0D1127FF0F122BFF10122CFF0F122BFF0D1228FF0F10 28FF0F0F25FF0C0D23FF0B0C23FF0F0E26FF100F29FF0E1027FF0C0F23FF0C0D 1FFF0B0B1EFF0B0919FF080712FF04040BFF020207FF010103FE000001FE0000 00FA000000EA000000CB000000980000005D0000002A0000000B000000010000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000010000000D0000003000000066000000A3000000D60000 00ED000000FA000102FF010407FF040B13FF0D1D30FF0E172EFF0C0C23FF0D0B 22FF0C0A1FFF0E0C22FF100A23FF0F0720FF0C071CFF0E0B1CFF0E0F1FFF0D0E 1FFF0C0A1CFF0D0B1BFF0F0A1DFF0E0A1DFF0C0A1DFF0C0C1DFF0E0D23FF0F0F 24FF0F0F23FF100C22FF0D0C21FF0C0D22FF0C0D23FF0C0C20FF0B0C1AFF0D0F 20FF0E1427FF0D1528FF0B1326FF0D1126FF111329FF10132CFF0D112AFF0B10 26FF0B1128FF090C22FF0A0C20FF0C0F23FF0C1124FF0F1733FF0E1936FF0C1A 35FF0C1A35FF0E1C37FF0F1431FF0E122EFF0D152EFF0D132DFF0E1632FF0D15 2FFF0C112AFF0C0E28FF101129FF0E102CFF10112FFF10122EFF0B1028FF1010 25FF110D1FFF0F0C1EFF0D0D20FF0E0B1EFF100D22FF0E0B1FFF0C0A1DFF0E0A 1FFF0D0B22FF0D0C22FF0C0C1CFF080A15FF06040FFF040308FF010103FF0000 00FD000000F8000000EE000000CC0000009600000059000000270000000A0000 0001000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000B0000002B000000620000009E000000D1000000EF0000 00FA000102FE000204FF02040AFF040814FF0A1428FF0F172FFF10132AFF0C0B 20FF0C091DFF0F0D21FF0F0C21FF0E091CFF0D0A1BFF0C0B1AFF0D0D1DFF0D0D 1EFF0D0B1DFF0B0C1DFF0C0B20FF0F091EFF0F081CFF0B0B1FFF0C0C1FFF0C0D 20FF0D0B21FF0D0821FF0C0B21FF0A0C21FF0B0D22FF0C0E21FF0D0F21FF0C0F 23FF0C132AFF0B162EFF0B162DFF0E162DFF0E152DFF0E112CFF0E0D28FF0C0C 22FF090E21FF0B0D21FF0D0E22FF0E1023FF0F0E22FF0D1026FF0C0F26FF0B10 27FF0B152CFF0F1B35FF0E1835FF0E1632FF0D162EFF0C182DFF0C1530FF0D14 2CFF0E1228FF0D0F25FF0D0E25FF0B0C24FF0C0D25FF0D0D24FF0A0A20FF0B0A 1DFF0E0B1AFF0E0B1AFF0C0B1CFF0E0C1DFF0F0B20FF0E0B1DFF0E0C1CFF0D0E 1FFF0A0C1DFF0B0B1DFF0B091CFF090919FF080714FF05050DFF020207FF0000 03FF000000FD000000FA000000E9000000C80000009400000055000000220000 0008000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000009000000260000005A0000009A000000CE000000EE000001FA0001 03FF020408FF04080FFF070D19FF091224FF0E162FFF101935FF101833FF1012 2CFF10122BFF121027FF0F0D26FF0B0A25FF0D0C1FFF0D0C1BFF0D0C1CFF0E0B 1EFF0F0A1EFF0E0B1FFF0D0C20FF0E0C1FFF0F0B1EFF0E0C1FFF0F0A1DFF0E0C 1EFF0D0C20FF0E0B21FF0E0D22FF0F1127FF10142AFF10142AFF0D122BFF0E16 2FFF0E142CFF0E142BFF0E162DFF0D142DFF0F1731FF101330FF100E2AFF0F0C 23FF0A0D1EFF0C0C1FFF0E0E20FF0E1023FF0F1129FF0F1028FF0D0E23FF0C0D 21FF0D0F25FF10132EFF101634FF0E1733FF0C162DFF0C172AFF0B1025FF0D10 25FF0E1025FF0E1024FF0F0F23FF0D0C22FF0C0D21FF0D0E21FF0C0D20FF0C0B 1EFF0C0B1CFF0C0C1DFF0C0C20FF0B0C20FF110B24FF0E0B1FFF0C0C1BFF0E0F 1FFF0B0C20FF0C0E21FF0D0D20FF0B0B1EFF090A1BFF060714FF04050EFF0303 08FF010003FF000001FE000000F9000000E9000000C50000008A0000004C0000 001D000000040000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00050000001F0000005100000091000000C8000000EC000000FC000102FE0204 09FF030913FF060E1EFF091427FF0C1831FF0F1632FF0F1834FF101733FF1314 32FF141A3AFF151734FF121230FF0E0F2CFF0E0D21FF0D0C1DFF0D0C1EFF0F0B 21FF100A20FF0E0A1EFF0C0C1EFF0D0D1FFF0E0D20FF0E0C1EFF100B1CFF100B 1EFF0F0B1FFF0F0B1EFF0E0D20FF0F1128FF11152DFF11182FFF0F1730FF0E15 30FF0E1029FF0E0F26FF0E1127FF0D112AFF0F142FFF10112DFF100F2AFF100E 27FF0B0F23FF0D0D20FF0D0C1EFF0D0D20FF101029FF11122BFF0D0F24FF0B0D 1EFF0D0C22FF100E27FF0F122CFF0F142EFF0E142BFF0C1225FF0C0D20FF0D0D 21FF0D0E22FF0D0F22FF0F0F25FF0D0C22FF0D0D20FF0D0F20FF0E0F21FF0D0B 1FFF0C0B1DFF0B0B1EFF0B0C21FF0B0D20FF0F0B21FF0E0B1FFF0C0C1DFF0D0C 1EFF0B0C20FF0D0F23FF0D0F23FF0B0D22FF0A0D21FF09091CFF070816FF0506 0EFF020206FF000103FF000001FF000000F8000000E4000000BD000000800000 0043000000170000000300000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000020000 00170000004500000084000000C4000000E7000001F9000103FF020408FF050C 18FF061127FF071832FF0A1E39FF0F1F3FFF101A38FF0E1530FF0E112BFF1111 2DFF131A3BFF151B3CFF161835FF14122AFF0F0C1FFF0D0B1EFF0E0C21FF0F0D 23FF0E0B21FF0C0B1CFF0B0A1BFF0C0D1FFF0D0E21FF0D0C1EFF0E0C1BFF100A 1EFF11091EFF0E0B1BFF0C0C1DFF0D0D25FF0D1029FF0E152CFF10182FFF0B10 27FF0C0D24FF0D0B21FF0C0B21FF0E0E26FF0F0D27FF0E0D26FF0E0E27FF0E10 29FF0D1129FF0D0D24FF0C0B1EFF0D0A1DFF100C22FF101129FF0B0F24FF0A0D 20FF0E0E22FF0E0E23FF0C0E24FF0E1027FF0F1028FF0C0D23FF0D0C22FF0E0E 21FF0D0E20FF0B0D22FF0E0F29FF0C0C24FF0C0C22FF0E0E22FF100F21FF0E0C 1FFF0D0C1DFF0B0B1EFF0B0C1FFF0E0E1EFF0C0B1BFF0E0B1EFF0E0B21FF0B09 1FFF0C0C1EFF0E0E21FF0E0E25FF0C0F27FF0B1026FF0B0D24FF0B0B1DFF0809 14FF04050CFF020307FF000102FF000000FC000000F4000000E2000000B40000 0075000000390000001100000002000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000E0000 003800000075000000B6000000E5000000F9000102FF010408FF030A14FF091A 31FF0A2244FF0E2B51FF143257FF183057FF1A2E53FF111936FF090A20FF0C0E 25FF0C0E28FF10112EFF13112BFF120C22FF10071EFF0F0C22FF0F0D22FF0F0D 20FF0E0C1FFF0F0C1BFF0F0A1AFF0E0A1FFF0D0C22FF0F0B1EFF0E0C1DFF0F0D 1EFF100D1FFF0F0E20FF0D1020FF0E0F26FF0E0D25FF0D0E25FF0D122CFF0C10 29FF0C0F25FF0D0D23FF0F0D23FF0C0C22FF0E0C24FF0E0D23FF0D0E23FF0D0C 25FF0F0D24FF0E0B22FF0D0C20FF0D0E20FF0D0C21FF0C0D24FF0C1028FF0D12 29FF0F1126FF0B0C21FF0C0D24FF0C0E24FF0D0D24FF0F0D27FF0E0F23FF1011 26FF0F1126FF0C0E25FF0E0F2AFF0B0F24FF0C0F25FF0F1027FF111124FF0F0E 22FF0E0F23FF0E1023FF0F0F22FF101021FF0C0D1EFF0C0E1FFF0D0D20FF0C0C 1FFF100D20FF110E21FF110F27FF10102CFF0E142BFF0D132AFF0F1224FF0E0E 1CFF080814FF04060DFF020306FF010102FF000101FD000000F4000000DB0000 00A90000006A0000002F0000000B000000010000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000008000000290000 0065000000A7000000DC000000F3000101FD010407FF030811FF040F21FF0A1A 36FF132E54FF123058FF0A2144FF091534FF101D3EFF101B36FF11192FFF151C 34FF0E122CFF0C0E25FF101228FF14162EFF12112AFF0F0E25FF0E0D21FF100D 22FF130C24FF120B1FFF100C1CFF0E0D1EFF0E0C21FF100A1FFF0D0C1EFF0E0D 21FF100F25FF111026FF0E0C24FF100E29FF0F0E27FF0D0D25FF10112BFF1010 2AFF0F0F26FF0F0E25FF0F0E25FF0E0F24FF0F0E23FF0E0E23FF0E0F24FF0F10 27FF110F2AFF110F28FF101026FF0F0F26FF0F0D27FF0F0E26FF11132BFF1115 2EFF0E1229FF0C0D22FF0E0F28FF0F1029FF0E1025FF0C0D24FF0C0F24FF0E10 27FF0D1128FF0C1127FF0C102AFF0C1328FF0D1228FF0D0F28FF0D0E23FF0C0D 21FF0F1026FF0F1226FF0E1023FF0D0E24FF100E22FF0F0E22FF0C0E21FF0C0D 1FFF120F22FF131023FF101024FF0F1026FF101228FF0F1027FF0F1125FF0E10 22FF0C0D1FFF080916FF06050DFF030306FF000101FE000000FB000000F20000 00D40000009D0000005700000020000000060000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000040000001B000000500000 0094000000CE000000F1000000FB000204FF02070EFF061324FF0A2646FF0C2B 4FFF10294EFF112549FF0F2145FF111C3FFF131C3DFF131D39FF141E36FF141B 37FF121936FF0E122AFF10152DFF131935FF11142EFF111027FF0E0E23FF0E0C 22FF110B23FF120C23FF110D1FFF0E0C1EFF0D0B1FFF0F0B1EFF0D0D20FF0E0E 23FF110E26FF130F29FF110F29FF110F29FF100F27FF0F0F26FF100E27FF100F 27FF101028FF0F1027FF0F0E26FF100E27FF110E25FF0F0F25FF0E1025FF0E0F 25FF0F1129FF101127FF101026FF100F28FF0F0E2AFF111029FF12122CFF1113 2DFF0F122AFF0E0F25FF100F29FF0F102AFF0E1027FF0F1127FF0F1029FF1012 29FF10122AFF0F112AFF0D1126FF0D1226FF0D1027FF0E0F26FF0D0E23FF0D0D 21FF0E1027FF0F1328FF0E1324FF0E0F24FF100E24FF0E0D20FF0C0D1EFF0E0E 1FFF120E20FF120F24FF0F0E25FF0D0E24FF101128FF111129FF0F1127FF0C10 25FF0C0F23FF0D0D1FFF080815FF04040CFF020205FF000001FE000000FB0000 00EC000000C50000008700000042000000140000000100000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000F000000390000007E0000 00BE000000E9000000FB000001FF01060AFF030B17FF081C35FF113962FF0E3B 67FF0C2549FF0D1A3AFF132042FF18274CFF131F3DFF121C37FF131D3AFF131F 3FFF131A39FF0F1631FF0E1530FF0F1530FF0F1128FF110F25FF0F0D23FF0E0D 21FF0F0C21FF100B25FF120C20FF110B1EFF0F0A1DFF100C1CFF0E0E1FFF0E0E 22FF100D24FF120D27FF121128FF121129FF111129FF101027FF0E0B24FF0F0D 24FF101128FF0F1127FF0E0E23FF110D26FF100C25FF100E26FF0F0F27FF0E0E 25FF0F1025FF0E0F24FF0F0E24FF0F0D24FF0E0D26FF111129FF10112AFF0F10 29FF101028FF0F1027FF0F0F27FF0E0E26FF0F0F27FF12112AFF111029FF1111 28FF121229FF111129FF101123FF0D0F23FF0E0E24FF100F24FF100F22FF0E0E 22FF0E0F25FF0E1125FF0E1223FF0E0F22FF0D0C23FF0C0C20FF0C0E1EFF0F0F 20FF110E20FF110E26FF0E0E26FF0D0E24FF0F1027FF10132BFF0F122BFF0D11 28FF0C1026FF0F1027FF0B0D20FF070A17FF04060DFF010204FF000001FE0000 00F8000000E2000000B40000006D0000002F0000000B00000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000070000002600000061000000AA0000 00DF000000F9000002FE000206FF040B15FF051123FF0A203CFF153963FF0F3A 68FF0E2F56FF0C1F3FFF0A1534FF0F1C3CFF0B1B35FF0B162FFF111C3AFF182A 4DFF0E1634FF0D1633FF0C152FFF0A1026FF0D0E20FF0E0C1FFF0F0C20FF100D 22FF0F0E23FF0D0A23FF110A20FF130B1DFF120B1BFF110A1BFF0F0D1BFF0F0C 1EFF0F0C20FF0F0D20FF0D0D21FF12132AFF13122CFF100F27FF0F0C23FF110E 22FF100F25FF0D1123FF0B111FFF100D22FF0D0A22FF0E0D26FF100F29FF100F 28FF110F24FF0D0D23FF0C0D22FF0E0D1FFF0D0A1EFF0F1026FF0F1127FF0E10 24FF0F0F23FF0E0E29FF0C0D23FF0D0E22FF100E26FF120E27FF0E0D23FF0D0C 22FF0E0F23FF101224FF111025FF0D0E24FF0E0F24FF100F23FF100E20FF0E0F 22FF0F0E21FF0E0D20FF0D0D1FFF0C0D21FF0B0A22FF0C0D23FF0E1123FF0E10 22FF101024FF0F1026FF0E1026FF0F0F25FF100F26FF0E122AFF10142DFF1014 2CFF0E1429FF0E122BFF0F152BFF0D1324FF080C18FF02050BFF000203FF0000 00FE000000F4000000D500000099000000540000001F00000004000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000100000016000000470000008E000000CC0000 00EE000001FC000305FF020912FF071325FF081B33FF0D2A4BFF17406BFF092D 57FF133C6CFF133563FF0A1D41FF0D1C3CFF142341FF101B36FF0C112BFF0F11 2CFF0F1833FF142241FF101E3CFF0B152EFF11172AFF0D0E21FF0D0C20FF0D0C 21FF0C0B20FF0F0C22FF0F0A1FFF0E0B1BFF0E0B19FF0F0918FF0D0E1CFF0D0C 1CFF0E0B1CFF100B1DFF0D0E1EFF0F1124FF101026FF100E24FF0E101FFF100D 1EFF0E0E24FF0C1025FF0B1020FF0C0D1EFF0F0F24FF0F1028FF0E0E27FF0E0B 24FF100C24FF0E0E24FF0D0F23FF0D0E22FF0E0E23FF0C0F21FF0D1023FF0E10 23FF0D0F21FF0F0E25FF101026FF100F25FF0E0E26FF0C0F28FF0D0D22FF0E0E 22FF0F0D22FF0E0C1FFF0E0D22FF0C0E21FF0C0E22FF0D0D23FF0E0C22FF110F 26FF100F23FF0E0F21FF0D1022FF101329FF0D0E25FF0E0F23FF0E1122FF0D0F 21FF0E0F21FF0F1122FF101125FF110F29FF10132CFF0F142DFF10152CFF1015 29FF0E1527FF0E1628FF0E1629FF0E1628FF0C1222FF060A15FF010306FF0000 01FF000000F9000000E9000000C3000000800000003F00000011000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000A0000002F0000006E000000B6000000E60000 00F9000102FE02050AFF05101FFF051C34FF082240FF10284BFF173157FF0C26 4EFF113662FF133A68FF122D59FF14254AFF101C3FFF0F1D3EFF111F3EFF1219 38FF121834FF111B39FF101F3DFF0F1E38FF0D1229FF0E0E21FF0F0C20FF0F0B 20FF0F0A20FF100B20FF0F0B1DFF0E0D1DFF0D0D1CFF0D0A19FF0C0C1CFF0C0A 1DFF0D0A1DFF0E0C1EFF0D0E20FF0E0F23FF100E24FF100E23FF0E1021FF0D0D 1EFF0C0E21FF0C0F24FF0D0F23FF0C0C1DFF0C0D1EFF0D1025FF0D112AFF0C10 28FF0D1127FF0D1025FF0E1026FF0F1028FF0E0F26FF0C0F20FF0E1024FF0F0F 25FF0C0D22FF0E0D25FF100E27FF100E26FF0D0E24FF0A1024FF0D1023FF0F0D 21FF0E0C22FF0E0E23FF0F0F25FF100E24FF0F0E23FF0C0E22FF0A0C22FF0E0F 26FF0F0F23FF0D0E21FF0C0E22FF0C1226FF0C0D24FF0D0C21FF0E0D20FF0E0F 20FF0F1023FF0E1228FF0E1029FF0F0F2BFF101530FF0E142AFF0D1325FF0D14 26FF0E162BFF171D2FFF14192AFF0E1326FF0A0E22FF080B19FF04080FFF0102 05FF000000FE000000F7000000E0000000AB0000006600000029000000060000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000020000001B0000005100000097000000D4000000F30000 01FE010306FF040B15FF06182FFF0A2B4DFF0C2A4FFF0E2247FF122347FF1124 4BFF0F2D50FF113258FF15305DFF152A56FF12264EFF12264CFF132448FF121D 41FF121A3CFF101C3DFF0F1E3DFF0F1A35FF0E0F25FF100E23FF110C21FF110C 22FF110E24FF130C21FF100D1FFF0E0E1EFF0D0E1DFF0D0D1DFF0E0C20FF0F0D 23FF0F0E23FF0F0F21FF111125FF101227FF101026FF100F24FF101123FF100E 20FF0F0E20FF100F23FF110F26FF0F0E23FF0F0C22FF0F0F24FF0E1229FF0B15 2BFF0D152BFF0E132AFF0F132BFF0E142CFF0F142AFF0F1225FF0F1025FF0E10 26FF0F1026FF101029FF100F2AFF0F0F29FF0F1128FF0F1429FF0E1224FF100F 24FF100E25FF0F1025FF0F0F24FF110E25FF100F24FF0E1024FF0C0F27FF0F12 28FF0F1125FF0F0F23FF0E0F23FF0D1123FF10172EFF0F162CFF0F1427FF1217 27FF13152CFF111731FF0F1731FF101530FF111834FF0E142DFF0C1228FF0C12 29FF0F142DFF12182DFF111428FF0E1026FF0C0F25FF0B1023FF070C18FF0306 0BFF000103FF000000FC000000F1000000CF000000910000004B000000160000 0002000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000010000000B0000003500000078000000BD000000EA000001F90002 04FF02080FFF061223FF072041FF0F3964FF0F3460FF0C234AFF0B1F42FF142A 52FF0F2949FF0E2748FF122851FF122A56FF153057FF152D53FF12244AFF0F1D 42FF122148FF12254AFF0F1F3FFF0E142FFF121024FF111126FF120E25FF120E 25FF111127FF150D24FF120F23FF101425FF101426FF0F0F23FF0F0E25FF1211 28FF121228FF111125FF141329FF12162BFF11142BFF111228FF131324FF130F 22FF130E21FF130E23FF121027FF11122BFF140F2AFF120E25FF0F1125FF0E16 2AFF10142DFF11152EFF0F152DFF0D152CFF0F162BFF111429FF0F1127FF0E11 27FF11152AFF11162EFF10122CFF10122BFF11142DFF131730FF0F1225FF1112 26FF121228FF101025FF100D21FF110F26FF111126FF101127FF11122BFF1114 2CFF101228FF101126FF121226FF111225FF142038FF13233BFF122135FF1520 31FF161B36FF121D37FF111E37FF141E37FF161F3AFF1B223EFF1F233DFF2625 3EFF29263FFF1A1E33FF161930FF1D1F36FF22243AFF161C33FF0A1122FF060A 13FF030508FF000102FD000000F8000000E8000000B7000000710000002E0000 0009000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000040000001C000000560000009E000000DB000000F8000002FE0004 0AFF030D19FF071A30FF09284CFF0B3A66FF0F3D68FF103156FF0B2543FF1438 65FF0F2E56FF0C2448FF0F2449FF11294BFF0C1F38FF0E2444FF132A52FF1228 4DFF112D4FFF10294CFF112243FF131B35FF101525FF101528FF11122AFF1110 28FF111025FF140D26FF100F22FF162236FF1A2A42FF10132AFF0E1126FF0F13 28FF111429FF111329FF13122BFF11142AFF13172CFF16182DFF151627FF0E0F 21FF100D22FF110E24FF101227FF11162BFF0F1129FF0F1025FF0F1023FF1011 25FF121029FF11132BFF10142CFF0E132BFF0C1127FF0E1129FF10112BFF0F12 2AFF0D1529FF0E162DFF0F1328FF11122BFF13132FFF12142CFF0F0F24FF0E10 25FF0F1128FF121128FF130E24FF11142AFF111329FF111127FF111129FF0E13 2CFF0E0F29FF100F27FF131329FF12142CFF101933FF14233EFF17273FFF1521 35FF1B253BFF16223AFF151F38FF1C233DFF2A3349FF3F485EFF525262FF655A 67FF6C5F6DFF4F4859FF3A3D53FF4B4B61FF555165FF2E3246FF121D31FF0C13 20FF090C11FF030506FF000000FC000000F4000000D2000000970000004D0000 0018000000030000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000C000000360000007D000000C0000000EC000001FA000305FF010A 13FF05162AFF092443FF0B2A50FF0E3258FF0D365EFF0E345EFF143258FF1233 5EFF0F2C56FF0C254BFF0C274AFF123456FF0D253BFF0B203BFF0D2547FF1029 4BFF0A1E3DFF122142FF141D3AFF13162BFF161B2BFF141728FF121428FF1012 27FF111024FF170D26FF0D0C23FF172842FF243D5CFF192A48FF142136FF1B29 3DFF1B2A3EFF151E33FF14152FFF0F1428FF101528FF14162AFF14152AFF0F11 25FF101125FF0E1125FF0D1126FF101429FF0F1226FF0E1024FF101024FF1211 26FF110F26FF0F1126FF0F1529FF10172DFF11142AFF0F182EFF0F172CFF0F14 28FF0E1226FF111226FF131229FF13132BFF12142CFF11132BFF111129FF0E10 29FF0E122CFF10142EFF0E0D26FF11122AFF12162DFF10152DFF0E122AFF1013 2BFF14152AFF12172BFF0C182FFF0B1D35FF1F2E42FF253046FF1C2C43FF1C32 47FF5B5C6DFF696474FF4D4C5FFF404257FF736E7DFF615B6EFF4C475BFF4843 55FF584E5EFF695C6BFF746979FF786B7CFF736677FF655D6EFF4B4C5EFF2A33 43FF151D27FF0E1012FF050507FF010101FA000000E8000000BB000000730000 002E0000000A0000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00040000001B00000054000000A0000000DA000000F8000102FD02060CFF030B 18FF071931FF0C2C4DFF0A2F53FF0B3459FF0E345CFF0F315AFF102E57FF1236 64FF113461FF11335EFF12365FFF153B61FF1C3952FF152A43FF0E2442FF112A 49FF0E1933FF141731FF181E35FF192436FF192533FF161B2DFF13172CFF1115 2AFF111127FF131229FF191D33FF24314AFF2C415EFF2B3F5CFF2D3B52FF313C 50FF28384BFF1E3445FF313F51FF333748FF272A39FF191E2DFF141629FF1215 29FF111528FF0F1326FF0F1024FF101124FF111025FF111026FF101027FF1110 27FF131026FF121123FF0F1323FF0E1325FF121125FF1E1D30FF201E33FF1B1B 30FF14172AFF101023FF111124FF131328FF14172EFF151B33FF131C33FF1117 31FF101530FF10152EFF111129FF12122BFF12142DFF11162EFF0E172DFF1015 2CFF0E132AFF192340FF35466BFF5A6A90FF626B8AFF616782FF676E8AFF7981 9FFF888296FF908493FF746D7FFF676780FFA39EB9FF79738BFF50526BFF4A4E 68FF656279FF827485FF958AA3FF9387A0FF887A90FF837A92FF777B9AFF6F72 8FFF535469FF282B35FF101013FF030303FE000000F4000000D3000000950000 0049000000160000000100000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000B0000003100000077000000BF000000EC000000FD000104FF040B15FF070F 21FF0B1831FF0E2645FF0B3056FF0A375EFF0E355EFF102E59FF0D2E5AFF1239 6AFF123B69FF113A66FF133B67FF143D66FF1D3E5DFF213752FF213350FF2034 52FF1A2137FF1D1E34FF232B41FF26394CFF233343FF202A3DFF1E293EFF1C26 3CFF182036FF152237FF2A3347FF343B50FF343C53FF364158FF3C455AFF3D41 55FF374052FF364857FF4F5F6BFF6F6A71FF575358FF292F37FF131627FF1416 2BFF11152AFF101428FF111227FF101025FF110F26FF121127FF13132AFF1314 2CFF121226FF131224FF0F1121FF0B0F1EFF111021FF2E2031FF38293DFF332C 40FF292B3CFF232637FF151A29FF0F1728FF172236FF29364CFF28394DFF3F46 5CFF383950FF15172FFF11142BFF10132DFF10132EFF0E152EFF0C192FFF131E 36FF142039FF2E3B5BFF606D94FF9399BFFF8F90AFFF8C8CA8FF9A9AB7FFAFAB CCFF948DA3FF958A9AFF887F90FF817E96FFA09FBFFF88829BFF706E85FF6E6F 87FF817E97FF8F8399FF9B95B4FF9791B2FF928BAAFF9C99BCFF9096C0FF9B9B C1FF82809DFF444659FF1C1B22FF070608FF000000FA000000E4000000B50000 0068000000280000000600000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000010000 00170000004B0000009A000000D7000000F6000001FE010307FF05101DFF0D16 2CFF101530FF0E1835FF0E2E56FF0D3860FF0E3661FF0F3362FF103867FF123A 6AFF0F3B67FF0D375EFF0C3359FF113C65FF123154FF283B5AFF3A4764FF3643 5DFF293046FF2D3549FF334055FF36465CFF344357FF324053FF344457FF3142 56FF28394EFF263B4DFF384356FF414254FF3E3D4CFF3A3B49FF3F4050FF4243 54FF4B4B5BFF575863FF62646CFF9A8B88FF817774FF3F4246FF151929FF1415 2DFF12152DFF11172DFF11182EFF11142CFF11132AFF13142AFF15182FFF171C 32FF0F1629FF121429FF131628FF121725FF141629FF332333FF413142FF423C 4CFF3E4250FF404352FF222D3CFF112332FF233446FF516070FF516173FF8689 98FF7B7586FF2F2C42FF1A1D36FF111933FF0E1934FF101C37FF16223DFF1A2B 42FF283A51FF49576FFF72778FFF8A879AFF8A8597FF8C889DFF9491ABFF9B98 B5FF928EA6FF90899EFF908699FF8B8397FF827E96FF908497FF97899BFF978B 9FFF9289A0FF8E87A1FF928EACFF8E8BACFF9392B6FFACAED6FF9694BCFF9795 BAFF8684A2FF58566AFF27252FFF0D0C0FFF020202FD000000F2000000D10000 008A000000400000001000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000060000 002800000068000000B6000000E8000000FC000203FF030910FF0A1426FF1119 34FF121936FF0D1C39FF0E2D52FF0D3460FF0F3C69FF0F3F6AFF0A3B67FF1039 65FF103963FF0E365EFF10335BFF1A3B64FF233355FF2F3551FF373B52FF3B3E 53FF3B3E52FF394053FF3C4356FF3F485BFF404B5EFF42495FFF414A5EFF3F4B 5EFF404A60FF454B5AFF4A4D5CFF4E505EFF4F515DFF4D4F5CFF565865FF6061 6DFF696870FF6E6C70FF737075FF767578FF67676BFF4A4C54FF2C303EFF141A 32FF151F36FF172438FF162135FF171D34FF191C34FF161E35FF112036FF1120 36FF131F32FF12192EFF1F273BFF2C3648FF24273BFF222538FF1B2338FF1D27 3BFF292E3FFF272A3DFF323A4BFF333B4CFF484A5CFF827F8DFF767686FF8D85 93FF998C99FF817687FF4E4760FF242B44FF1B2743FF333C5AFF4F546FFF1B2B 45FF28394FFF50596EFF737187FF80798BFF888091FF898397FF9893AEFFB3AD D1FFB6B3D9FF9C9CBDFF8F8EACFF928DAAFF948BA6FF948AA0FF908FAEFF8E8F B3FF8F88A7FF908AA7FF968EB0FF928CAEFF8B87A6FF8A83A2FF8E819DFF8C80 98FF7E7489FF60596AFF36303AFF141316FF040304FF000000F8000000E10000 00A60000005B0000001F00000001000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000F0000 003E00000087000000CF000000F1000102FE01060AFF04111DFF0B1C33FF0C18 36FF0F1635FF13203FFF10385EFF0D3865FF0F3865FF0F3863FF0D3661FF1134 5AFF0F3253FF0C2C50FF102953FF213560FF384468FF3C4364FF3C415FFF4247 60FF3F4966FF4A506AFF50526DFF515571FF5B6073FF5E6174FF5D6C87FF5775 9BFF4E739EFF536286FF4E5A79FF516383FF596A8CFF5B607DFF5E6787FF5E64 7DFF616276FF656577FF646173FF5C5E6AFF5A5860FF595259FF514A54FF3A38 49FF323648FF2A3344FF1C2839FF0C192AFF0E1A2FFF131E34FF1A263BFF2230 43FF1F2A3FFF242E3FFF24313FFF223240FF273142FF1E283BFF162436FF1323 35FF172436FF282B3BFF3A3B4EFF5E5A6BFF847886FF968692FF8C7C8CFF907F 94FF928297FF897C8DFF786A7FFF595369FF5D5870FF716985FF756E8EFF665C 79FF685F79FF746B80FF817587FF83788AFF87788EFF867B92FF8A849CFF9591 ADFF9899B7FF9597B6FF9597B8FF999BBDFF9C9CBDFF9799C2FFA6ABD4FFB3B7 DDFFB3B4D8FFBABFDDFFCBCAE4FFC6BFDAFFB1A9C6FF9F9AB5FF9B93ADFF9089 9FFF847D91FF6F697DFF454150FF1E1C24FF08080AFF010101FB000000EE0000 00C3000000780000003200000008000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000010000001B0000 0056000000A3000000E0000000F8000103FF020A10FF061A2BFF0B2543FF0E21 44FF132144FF152A4EFF0F365DFF0D3762FF0E3763FF0E3461FF0A2E5BFF102F 53FF132D4FFF1D3459FF2E4570FF3E588DFF536F9EFF546F9BFF556B95FF5F72 97FF5B739CFF6B7DA2FF7182A6FF7C8BAAFFA3A5B3FFAAAAB3FFA3AEC2FF91B2 D2FF83B0D8FF97A8C9FF909CBAFF8EA2C1FF95ABCBFF9EA5C0FF9EABC9FF9CA5 BBFF969EB1FF8D9CB2FF899AAEFF9395A4FF8F8F9BFF878B98FF848999FF7381 94FF757F92FF7E8292FF787E8BFF4E6376FF324C61FF39536BFF435E79FF3E5E 79FF4C5D75FF525E73FF535D6DFF485464FF2F455CFF294560FF27415BFF1E33 4EFF1B2B47FF4D5167FF847F90FFABA1B0FFB5ACBDFFA5A4B7FFB0A7B7FFB8B0 C0FFB3ADC1FFA6A1B7FF9E9DB4FF8B8DAAFF9293B3FFA7A5C2FFB5AEC6FFADA5 C0FFA2A5BFFF969CB8FF9090AFFF9697B2FF9295B4FF9798B5FF9B9BB5FF9FA0 B8FFBABAC9FFB3B4C9FFA2A6C5FF9A9FC4FFA5A5C7FF9C9FC9FFA7A9D2FFB1B6 DCFFB5BEE5FFBFC9ECFFD4DEF6FFE0E3F4FFD8D7E9FFBCC3DEFFB1B5D4FFA9AE CBFFA1A8C2FF9198B1FF737586FF3E3E46FF161619FF030303FD000000F50000 00D7000000930000004900000013000000010000000000000000000000000000 00000000000000000000000000000000000000000000000000060000002C0000 006F000000BB000000EA000001FC010305FF030D16FF081F36FF0C2D50FF152F 55FF193158FF15335CFF102F56FF0E325BFF113A65FF103966FF0A2C59FF112F 57FF162A52FF27385FFF3E5680FF4F70A8FF678DC1FF6B92C3FF6E91C0FF7A97 C4FF7A99C6FF84A3CCFF8BAAD0FF9EB8D7FFCBD7E4FFD5DDE5FFCDDAE5FFBCD6 EAFFB4D8F1FFCEE1F6FFCAD9EFFFC7DBF1FFCDE3F8FFDAE7F9FFDAEBFFFFDAE8 F8FFCFE1F0FFBFDBEEFFBCDCEFFFD2DAEBFFC9D3E5FFB6CCE1FFB1C9E0FFA9C9 E0FFB6CBE0FFCDD6E5FFD4DBE8FFAEC5DBFF7499B0FF6892ADFF6796B5FF5C8D AEFF728FA9FF7087A0FF7E8DA4FF7D8DA4FF456989FF507B9EFF6384A5FF647A 98FF5E6F8EFF919BB6FFD2D2E3FFE4E0F1FFD0D4EBFFBBCEE7FFD2D9ECFFDDE6 F3FFDAE4F4FFCCD4EDFFBACAE6FFB2C2E5FFB4C6EBFFC7D5F3FFE5E9F8FFD5DE F4FFC4DEF5FFB2CEEEFFA8BAE3FFB2C5E5FFA8C2E5FFB2C4E5FFBCC6E2FFC2CB E2FFEBEEF5FFD6DBE9FFB6BEDAFFA8B1D3FFB6B8D5FFB1B2D1FFA7ACCEFFA1AB D2FFA5B2D9FFADB6DDFFBCCAE7FFD3DEEFFFDAE3F2FFC1D3F0FFB8C6E9FFBDC9 EBFFBACAEBFFAABCDDFF969EB3FF5C5F6AFF26272CFF070708FE000000F80000 00E4000000AC0000006300000022000000040000000000000000000000000000 000000000000000000000000000000000000000000000000000D0000003F0000 0088000000D0000000F1010203FD02050AFF050F1DFF0A213DFF123055FF1835 5CFF1B365FFF1A3660FF183058FF142D57FF163A65FF17406BFF11345DFF1736 63FF132851FF122247FF1C2D52FF364A72FF6579A2FF7289B1FF728AB1FF7990 B4FF7C94B8FF829CBFFF8BA5C5FF95ADCAFF98B5D0FF9CBCD4FFA1C1DAFFA7C6 E1FFAECCE8FFB2D0EDFFB2D1EDFFB9D7F2FFC3DFF9FFC8E4FDFFC9E3FDFFC5E1 FBFFC2DEF7FFC1DCF2FFC0DAF0FFC1DBF2FFC2DBF2FFC3DBF2FFC2DCF2FFC5DD F2FFCAE1F4FFCBE2F5FFCEE4F7FFD9EBFCFFACCEE5FF7BA7C4FF6491AFFF6993 ADFF658EA8FF55829BFF6D97B1FF86ADCAFF6996B9FF92B8D9FFC7E0F7FFE3F3 FFFFDFF0FFFFDBECFFFFD8E8FFFFD6E7FEFFD5E7FEFFD6E7FDFFD8E9FEFFD3E6 FDFFD5E6FEFFD8E8FEFFC8DBF5FFCBDFFAFFCCE2FCFFCFE4FCFFD8E8FEFFD9E8 FCFFD1E2FAFFCBDEFBFFC9DFFCFFCCE4FBFFC0DBF7FFC2DCF8FFCADFF8FFD1E1 F6FFE0EDF9FFD2E2F7FFCBDCF7FFCBDEF6FFCADDF4FFD3E0F6FFC0D5F4FFAEC4 E9FFABB6D9FFACB4D6FFACB5D8FFB0B9D9FFB1BADAFFA9B4D9FFA8B3D6FFB3BB DDFFB3BCE2FFA2AFD9FF8693B8FF60667CFF30333CFF0C0D10FF020203FB0000 00F1000000C50000007E00000034000000090000000000000000000000000000 0000000000000000000000000000000000000000000200000018000000520000 009D000000DE000000F9000203FF03070EFF091526FF122947FF102C53FF1530 5AFF17335BFF15325AFF1D335EFF172E55FF142B50FF142E55FF133562FF1531 5DFF13254BFF1A294BFF283B5EFF314970FF506E99FF6886B0FF7490B8FF7792 BBFF7C99C0FF809EC4FF87A4C8FF8EABCCFF91B2D2FF95B7D6FF9ABDDDFFA1C4 E4FFA9CBEBFFABCEEEFFAED2F0FFB4D6F3FFB9DAF7FFBCDCF9FFBADAF8FFB9D8 F7FFB9D7F5FFB9D6F3FFBAD7F2FFB9D6F1FFB9D5F0FFB9D6F0FFB9D6EFFFBBD6 F0FFBEDAF2FFC1DDF3FFC3DEF4FFC4DFF5FFC7E1F6FF9FC4E0FF6391B1FF3662 7CFF376179FF376179FF416A85FF547F9EFF719BBEFFB3CEEAFFCCE0FAFFCFE2 FAFFCFE2F9FFCEE1F9FFCEE0F9FFCEE0F9FFCFE1F9FFCFE1FAFFCFE1FAFFCFE1 FAFFCFE1FAFFCEE0FAFFCADCF7FFCCDDF8FFCDDEF8FFCDDEF7FFCFDEF7FFCFDE F7FFCCDCF7FFCADBF7FFC9D9F5FFC6D7F4FFC3D4F1FFC3D3F0FFC3D3F0FFC5D4 EFFFC7D5EFFFC4D3EEFFC2D1EEFFC0CEEDFFBDCBEAFFBFCEEDFFBACDEEFFB4C9 EBFFB3C3E7FFB4BFE2FFB3BEE0FFB3BEE0FFB3BDE0FFB0BBDFFFB1BBDFFFB1BC E2FFB2BFE8FFB0BFE7FF9FADD1FF707893FF3A3F4EFF13161AFF030405FE0000 00F6000000D50000009500000048000000110000000200000000000000000000 0000000000000000000000000000000000000000000400000024000000670000 00B1000000E8000100FC010406FF020912FF09162AFF172E4FFF11315AFF102D 56FF102A53FF122D57FF1A3661FF142B52FF11274BFF122C50FF14315AFF1226 4CFF152648FF182847FF1F3050FF314C71FF5A77A1FF6C8AB4FF6F8FB8FF7092 BBFF7897BFFF7B9CC3FF809FC6FF85A4C9FF89ABCFFF8DB1D5FF92B8DDFF98BF E4FF9EC4E9FFA3CAECFFA6CDEFFFACD0F2FFB0D3F4FFB0D3F5FFAFD1F3FFB0D0 F2FFB1D0F1FFB1D0F0FFB1D1F0FFB1D0EEFFB1CFEDFFB1CFEDFFB2D0ECFFB2D0 ECFFB7D4EFFFBAD7F0FFBAD7F0FFBBD8F1FFC2DDF4FFB7D5EFFF95BAD7FF6692 B0FF4F7997FF2F5874FF3D6987FF6E9BBEFF9ABDDEFFBED7F3FFC6DCF7FFC4DA F5FFC5DAF5FFC4DAF5FFC6DAF6FFC7DAF6FFC7DBF6FFC6DCF7FFC6DBF7FFC7DB F6FFC8DBF6FFC7DAF6FFC7DAF5FFC7D8F5FFC7D8F4FFC7D8F4FFC7D7F3FFC6D7 F3FFC5D6F3FFC3D5F1FFC1D3F0FFBFD1EFFFBFCFECFFBFCEEBFFBFCDEBFFBECD EBFFBECCE9FFBDCCE9FFBCCAE9FFBAC8E8FFBAC7E7FFB9C7E8FFB8C8E9FFB7C7 E9FFB7C5E9FFB6C3E6FFB6C2E5FFB5C1E5FFB5C0E4FFB5C1E4FFB5C0E4FFB3C0 E5FFB4C2E8FFB5C4E8FFABBADCFF8490ACFF505767FF21252BFF08090AFF0101 01FA000000E4000000AC000000600000001D0000000400000000000000000000 00000000000000000000000000000000000000000008000000320000007B0000 00C3000000F0000000FD01050AFF040D19FF0C1C33FF1A3257FF1A3E68FF193B 64FF15315AFF122B58FF173762FF142D55FF122B50FF112E52FF132C52FF1123 46FF142546FF122341FF172947FF365276FF637EA6FF6F8CB4FF6C8BB4FF6E8F B8FF7394BAFF7697BFFF799AC3FF7C9EC6FF80A5CBFF86ADD4FF8BB4DCFF90B9 E1FF95BCE4FF9AC2E8FF9DC5ECFFA1C9EEFFA5CBEFFFA5CAEFFFA5CAEFFFA7CA EEFFA8C9ECFFA8C9EBFFA9C9EAFFA9C9EAFFAAC9E9FFAAC9E9FFACCAE9FFACCA E8FFAFCDEAFFB1CFEBFFB2CFEBFFB4D1ECFFB5D2EDFFBAD5EFFFB5D3EEFFA1C5 E5FF8DB0CFFF6B8EACFF769CBBFF9FC5E5FFB6D3F2FFBDD6F4FFBED7F3FFBED6 F3FFBED5F3FFBED6F3FFBFD6F3FFC0D6F3FFC0D6F3FFBFD8F5FFBFD7F5FFC0D7 F3FFC1D6F3FFC2D6F4FFC0D6F3FFC0D4F2FFC0D4F2FFC1D4F1FFC0D2F0FFC0D2 F0FFBED1EFFFBDCFEDFFBBCDECFFBACDEBFFBBCBE9FFBBCAE8FFBACAE8FFBAC9 E7FFBAC8E5FFB9C7E6FFB8C6E5FFB7C5E4FFB8C5E5FFB6C4E4FFB6C4E4FFB5C3 E4FFB5C2E4FFB5C2E3FFB3C1E3FFB3BFE3FFB3BFE3FFB3C0E2FFB3C0E3FFB2C0 E2FFB2C1E3FFB3C1E3FFAEBDDEFF93A0BCFF626B7DFF2F333BFF0D0E10FF0202 03FD000000EE000000BF000000760000002B0000000800000000000000000000 0000000000000000000000000000000000010000000F000000410000008D0000 00D1000000F7000001FF02070DFF061321FF0E223BFF183359FF244974FF284D 76FF1F3D65FF122C56FF163761FF163159FF132D54FF102C52FF10284EFF1127 4AFF0E2342FF0B203EFF182E4DFF3F5B7FFF617DA2FF6D87AEFF6D87B0FF6F8B B4FF6F8FB5FF7192BAFF7496BFFF779BC4FF7BA1CAFF82AAD2FF87B0D8FF8AB3 DBFF8EB5DDFF90B8E0FF95BCE4FF97BFE6FF99C0E7FF9BC2E8FF9CC2E9FF9EC2 E8FF9FC2E7FF9FC1E5FFA0C0E4FFA2C1E3FFA3C2E3FFA4C3E4FFA6C4E4FFA6C3 E4FFA7C5E4FFA8C6E4FFA9C6E5FFABC7E5FFADC9E6FFADC9E6FFAFCBE8FFB5D0 ECFFBBD5F1FFBDD8F6FFBCD7F4FFBAD3EFFFB6D0EEFFB6CFEFFFB6CFEFFFB6D0 EFFFB7D0EFFFB7D1EFFFB9D2F0FFBAD2F0FFBAD2F0FFBAD3F2FFBBD3F2FFBBD3 F1FFBBD3F0FFBCD3F0FFBAD2F1FFBAD2F1FFBBD1EFFFBCD0EEFFBCCFEFFFBBCD EEFFBACDECFFB9CBEBFFB8CAE9FFB7C9E9FFB8C8E7FFB7C7E6FFB6C6E5FFB5C5 E3FFB5C4E3FFB4C3E3FFB4C2E2FFB3C2E1FFB2C0E0FFB1C0DFFFB1C0DFFFB1BF DEFFB0BEDFFFB0BDDFFFAFBCDEFFAEBBDEFFAEBBDEFFAEBBDDFFAFBCDDFFAEBC DCFFADBBDCFFADBBDDFFACBBDCFF99A5C3FF6E778CFF3A3F4AFF111317FF0304 04FE000000F4000000CE0000008A0000003B0000000D00000000000000000000 0000000000000000000000000000000000020000001500000052000000A00000 00DD000000F9000103FF030912FF061121FF091A30FF0E2848FF1D426BFF183E 63FF0E2E50FF0D284CFF183664FF102A52FF0E254BFF0F274CFF0E284AFF0D24 43FF0A233EFF072440FF153454FF456388FF5F7BA0FF6882A8FF6983AAFF6987 ADFF6C8AB0FF6D8CB3FF7191BAFF7598C1FF789CC6FF7EA4CDFF81A9D1FF83AB D3FF85ABD3FF86ADD4FF8AAFD7FF8EB2D9FF91B5DBFF94B7DCFF92B8DDFF95B8 DDFF97B9DEFF98BADDFF98B9DDFF98B8DCFF9AB9DBFF9CBBDCFF9EBDDCFF9EBC DCFFA0BDDEFFA2BDDEFFA3BEDEFFA3BFDFFFA5BFDFFFA7C1DFFFA8C3E0FFA8C4 E1FFA8C4E1FFABC5E4FFACC6E7FFACC7E7FFADC6E6FFAFC8E8FFAFC8E8FFB0C9 E8FFB0C9E9FFB1CAE9FFB2CBE9FFB2CBEAFFB3CCEBFFB5CDEBFFB5CDECFFB5CE ECFFB6CEECFFB7CDEBFFB8CDEDFFB7CDEDFFB5CDECFFB6CCECFFB7CBEDFFB7CA EBFFB7CAEBFFB6C9EAFFB5C8E9FFB5C7E7FFB4C6E6FFB3C4E4FFB3C3E3FFB2C3 E2FFB0C2E1FFB1C2E1FFB1C0E1FFB0BFE0FFAEBEDEFFADBDDDFFADBDDEFFACBC DEFFACBBDEFFABBADCFFACB9DBFFACB9DBFFABB9DBFFABB9DAFFAAB8DBFFA8B8 DAFFA9B8D9FFA9B7D9FFA9B8D9FF9CABC9FF79849BFF474D5CFF1A1C21FF0506 08FE000000F9000000DC000000A00000004B0000001400000001000000000000 0000000000000000000000000000000000040000001F00000063000000B10000 00E8000000FD010204FF050D18FF08162AFF091C37FF0A203EFF0F2C52FF102C 4EFF0E2644FF0E2446FF14305CFF102A51FF0F284DFF0E2A4DFF0B2B48FF0D27 44FF183251FF1E3C5DFF2E4D6FFF5D769AFF627BA1FF657FA3FF6782A5FF6784 A9FF6B86ADFF6C89AFFF6F8DB2FF7491B8FF7B96C0FF7D9AC5FF7E9EC7FF7FA0 C8FF7F9FC9FF7FA0C9FF83A4CAFF85A6CCFF87A7CDFF8BA9CDFF8CABCFFF8FAD D1FF91AFD2FF92B0D3FF93B0D3FF93B1D3FF95B2D3FF97B3D4FF98B5D5FF99B5 D5FF9AB5D4FF9CB6D5FF9DB7D7FF9EB8D9FF9EB9D8FFA0BAD8FFA1BBD8FFA2BC D9FFA2BEDBFFA4BEDCFFA6BFDDFFA8BFDDFFA9C0DEFFA9C2E0FFAAC3E1FFABC3 E1FFACC4E2FFAEC4E3FFADC5E5FFADC6E6FFAFC6E6FFB1C8E7FFB0C7E7FFB1C8 E7FFB1C8E7FFB2C9E8FFB3C9E9FFB3C8E8FFB3C7E7FFB3C7E7FFB2C7E6FFB2C6 E7FFB2C6E7FFB2C5E7FFB2C4E6FFB1C3E4FFB0C3E4FFB0C2E3FFB0C1E2FFAFC0 E1FFAEC0E0FFADBFE0FFADBEE0FFADBCDFFFAEBCDEFFACBCDDFFAABBDBFFA9BA DBFFAAB9DCFFA9B8DBFFA9B7DAFFA9B6D9FFA8B6D9FFA6B6D8FFA7B5D8FFA5B5 D8FFA6B5D8FFA7B5D7FFA5B4D6FF9FAECEFF818DA8FF52596BFF22242BFF0708 0AFE000000FB000000E4000000AD0000005A0000001C00000003000000000000 0000000000000000000000000000000000070000002900000072000000BD0000 00EE000001FE010206FF060E1BFF0B1B33FF0C2444FF0C284AFF0E264EFF0D25 48FF0B2443FF0C2445FF122C53FF0E254CFF0F274AFF102B4AFF0E2A45FF1026 40FF29405FFF3D5779FF4B6689FF647B9DFF657B9FFF667DA0FF6780A3FF6882 A7FF6B84A9FF6B87ACFF6D89AEFF718CB1FF7790B7FF7993B9FF7A95BBFF7B97 BDFF7C97BFFF7C98C0FF809CC1FF829EC3FF839FC4FF86A1C5FF89A3C7FF8AA6 C8FF8CA7C9FF8EA8CBFF8FAACAFF90AACAFF91ABCBFF93ACCCFF94AECCFF95AF CDFF96AFCDFF97B0CDFF98B1CEFF99B3D1FF9AB3D1FF9CB4D2FF9EB5D3FF9FB6 D3FFA0B8D5FFA0B8D5FFA1B9D6FFA3BAD6FFA4BBD8FFA5BCD9FFA6BDDBFFA7BE DCFFA8BEDCFFAABFDDFFA9C0DFFFAAC0E0FFABC1DFFFACC2E0FFACC2E1FFADC2 E1FFADC3E2FFADC3E3FFAEC2E3FFAEC2E2FFAEC1E1FFAFC1E1FFADC2E0FFADC0 E1FFADC0E1FFAEC0E1FFAEBFE1FFADC0E0FFACBFDFFFACBEE0FFACBDE0FFABBD DFFFABBCDDFFAABCDEFFAABADDFFAAB9DCFFAAB9DCFFA9B9DBFFA8B9D9FFA7B8 D9FFA7B6D9FFA6B6D9FFA7B5D9FFA6B5D9FFA5B4D8FFA4B4D8FFA5B3D7FFA4B4 D6FFA3B3D6FFA4B3D6FFA4B3D5FF9FAFD0FF8794B1FF5C6579FF2B2E38FF0C0D 0FFE010101FC000000EA000000BA0000006A0000002500000005000000000000 00000000000000000000000000000000000B0000003300000081000000C80000 00F2000001FE010307FF07101FFF0C1D38FF0F294EFF12355EFF0E2851FF122C 51FF173154FF183254FF193359FF132C52FF11294BFF112947FF122946FF162C 46FF344A68FF516688FF607597FF637798FF66799CFF687B9EFF687DA0FF6880 A3FF6B82A5FF6B84A8FF6D86ABFF7088ADFF718BAFFF748DB0FF768FB2FF7891 B5FF7A93B7FF7B94B8FF7E97BAFF8099BDFF829BBFFF849DC1FF859FC2FF86A0 C2FF88A2C3FF8AA2C5FF8AA4C3FF8EA5C3FF8FA6C5FF90A7C5FF92A9C4FF93A9 C5FF94AAC7FF94ABC8FF96ACC8FF98AEC9FF98ADCAFF9AAFCCFF9CB1CEFF9DB1 CEFF9EB2D0FF9EB3D0FF9FB4D1FFA0B5D2FFA0B6D3FFA1B7D3FFA3B8D5FFA4B8 D6FFA5B9D7FFA6BAD8FFA6BBD9FFA7BBD9FFA8BCD9FFA9BDDAFFA9BDDCFFA9BD DCFFA9BDDCFFAABEDDFFAABDDCFFAABDDBFFAABCDBFFAABCDBFFA9BCDBFFAABB DCFFAABBDBFFAABBDBFFAABADBFFA9BBDAFFA8BADAFFA8B9DBFFA8BADCFFA7B9 DBFFA7B8DAFFA7B8D9FFA6B7D8FFA6B6D8FFA5B6D8FFA6B6D7FFA5B5D6FFA4B4 D7FFA4B4D6FFA4B4D6FFA4B3D7FFA4B3D7FFA3B3D7FFA2B2D6FFA3B2D6FFA2B2 D5FFA2B1D4FFA3B1D5FFA3B1D4FF9EAFD1FF8B9AB8FF666F86FF343843FF1012 15FF020203FD000000EF000000C60000007A0000002F00000008000000000000 00000000000000000000000000000000000F0000003D00000090000000D40000 00F8000001FF020409FF0A1323FF0C1C37FF0F284CFF183C67FF0B2C50FF243E 64FF394F75FF385074FF2D4D72FF2A486DFF203A5BFF172F4EFF1A3454FF2444 62FF3B5675FF556A89FF667896FF657695FF677899FF69799BFF697A9AFF687C 9BFF6B7FA0FF6C81A3FF6D83A5FF6F85A8FF7188ACFF7289ACFF748BAEFF768D B0FF788FB2FF7A91B3FF7A93B4FF7C95B7FF7E97BBFF809ABDFF809ABCFF829C BDFF859DBEFF869FBFFF889FC1FF8DA1BFFF8EA3BFFF8EA4BFFF90A4BFFF93A3 C0FF92A5C3FF92A6C4FF95A8C4FF98A8C3FF98A8C4FF98AAC6FF99ACC8FF9AAD C9FF9CAECAFF9CB0CDFF9EB1CEFF9FB1CEFF9FB2CEFF9FB2CEFFA1B3D0FFA3B4 D1FFA2B4D3FFA3B5D4FFA3B6D3FFA4B7D4FFA5B8D6FFA6B8D7FFA7B8D8FFA6B9 D7FFA6B9D7FFA8B9D6FFA7BAD6FFA8BAD7FFA7B9D7FFA5B8D6FFA6B8D7FFA7B8 D7FFA6B7D7FFA6B7D6FFA7B6D5FFA6B6D6FFA6B6D6FFA5B6D6FFA4B5D6FFA4B5 D6FFA4B5D6FFA4B4D4FFA3B3D4FFA2B2D4FFA2B2D3FFA3B3D2FFA2B1D2FFA1B1 D3FFA1B1D4FFA2B1D3FFA1B0D3FFA1B0D3FFA1B0D2FFA0B0D2FF9FB0D2FF9FAE D2FFA0ADD3FFA1AED3FFA0AFD3FF9EADD1FF8F9DBCFF6C778EFF393F4CFF1315 19FF030304FF000000F3000000D0000000870000003A0000000D000000000000 000000000000000000000000000000000013000000480000009B000000D90000 00F8000103FE02050BFF091221FF0D1C35FF102949FF183E64FF375170FF4B60 80FF516789FF506688FF556889FF556786FF4D617FFF475D7CFF4A6081FF566C 8AFF5C718EFF5F728FFF627390FF637392FF637693FF647895FF667A97FF687A 98FF6B7C9AFF6D7F9DFF6C81A0FF6C82A3FF6E85A6FF7185A6FF7487A9FF768A ABFF768DACFF788EAEFF7990B1FF7B92B3FF7E94B5FF8094B7FF7F95B7FF8297 B8FF8598B8FF889AB9FF8B9CBDFF8B9CBBFF8C9DBBFF8D9EBBFF8EA0BBFF90A0 BCFF8FA0BEFF91A2BEFF95A4BDFF95A5BFFF95A6C2FF96A7C4FF98A8C5FF9AAA C5FF99ABC6FF99ACC8FF9BACC9FF9DAECAFF9DAFCAFF9DB0CCFF9EB0CDFF9FB0 CEFF9FB2CEFF9FB2D0FFA1B2D0FFA1B4D1FFA2B5D2FFA3B5D2FFA4B5D3FFA3B5 D4FFA3B5D3FFA4B6D2FFA3B6D2FFA4B6D3FFA4B5D4FFA4B5D3FFA4B5D2FFA4B5 D3FFA3B4D3FFA3B3D3FFA3B4D2FFA3B3D3FFA2B3D2FFA3B3D2FFA2B2D2FFA0B1 D1FFA2B1D1FFA2B1D1FFA1B0D2FFA0AFD1FFA0AECFFFA0AFCFFF9FAED0FF9FAD CFFF9FAECFFF9FAECFFF9EADCFFF9EADCFFF9EADCFFF9DADCFFF9DABCFFF9DAB CEFF9CAACEFF9BAACFFF9BAACDFF9BA9CEFF909DBFFF717B95FF414757FF181A 20FF050607FD000000F5000000D7000000930000004300000011000000000000 00000000000000000000000000010000001700000052000000A7000000E10000 00FB000203FE04080FFF081323FF0E1B33FF122340FF153151FF384E6DFF5162 82FF586A8CFF56698BFF5C6B89FF5D6C89FF5C6C89FF5A6C8AFF5A6E8CFF5F71 8FFF61728FFF61728EFF62718DFF637391FF637590FF647793FF667997FF6979 98FF6C7B97FF6D7D99FF6D7F9CFF6E81A0FF6F82A2FF7284A4FF7486A6FF7588 A7FF768BA9FF788DACFF798DADFF7C8FAEFF7F91B0FF8091B2FF7E93B2FF8195 B2FF8496B3FF8597B5FF8799B6FF8A99B7FF8A9AB7FF899BB7FF8A9CB8FF8E9F BAFF8E9FBBFF8F9FBCFF93A1BBFF92A3BDFF93A3C0FF94A4C0FF96A5C0FF98A7 C2FF98A8C3FF99A9C6FF9AA9C7FF9AAAC6FF9BABC5FF9CADC8FF9DADCAFF9EAD CBFF9EAFCBFF9FB0CDFFA0B0CEFFA0B1CEFFA1B2CFFFA3B1CFFFA1B2D0FFA2B2 D1FFA3B2D1FFA3B3D1FFA2B2D0FFA3B3D0FFA2B2D0FFA2B2D0FFA3B2D0FFA2B2 D0FFA1B1D1FFA1B1D1FFA1B1D1FFA0B0CFFFA1B0D0FFA1B0D0FFA1B0CFFFA0AF CFFFA1AED1FFA0AECFFF9FADCEFF9FACCDFF9FADCEFF9FACCDFF9EACCCFF9EAB CCFF9EAACDFF9CAACDFF9CAACBFF9CA9CBFF9CA9CCFF9BA8CBFF9AA7CBFF9BA7 CBFF9AA7CBFF99A6CBFF99A6C9FF99A6CAFF909CBEFF757E9BFF474C5EFF1B1D 24FF050608FE000000F8000000DD0000009D0000004C00000016000000000000 00000000000000000000000000030000001C0000005A000000AF000000E50000 00FD010204FF040A12FF0C192BFF121F38FF15213DFF142646FF223859FF4958 7AFF5D698BFF586887FF5A6985FF5B6A86FF5D6C88FF5E6D8AFF5D6E8AFF5D6D 8AFF5F6F8BFF61708CFF62718DFF62738FFF64748FFF657691FF677794FF6A79 97FF6C7A96FF6C7B97FF6E7D9AFF707F9EFF7180A0FF7283A1FF7484A3FF7586 A4FF7588A6FF768AA8FF7A8BA9FF7D8CABFF7E8EACFF7F8FAEFF7D91AEFF8092 AFFF8393B0FF8395B1FF8496B2FF8896B4FF8798B5FF8799B5FF8999B5FF8C9C B7FF8D9DB9FF8E9DBAFF8F9EBAFF90A0BBFF91A0BEFF92A1BEFF94A3BEFF95A5 C0FF96A5C1FF97A6C3FF98A7C4FF98A7C5FF99A9C4FF9AABC6FF9BABC6FF9CAB C7FF9CACC9FF9DADCAFF9EADCBFF9EAECBFF9FAECBFFA0AFCCFF9EAFCCFFA0B0 CEFFA1B0CFFFA0B0CEFFA1B0CDFFA1B0CEFFA1B0CEFFA0B0CEFFA0AFCEFFA0AF CDFF9FAFCEFF9FAFCEFF9FAECEFF9EAECDFFA0AECDFF9FAECDFF9EADCCFF9FAC CDFF9EABCEFF9EABCCFF9DAACAFF9DAACAFF9DAACBFF9DAACAFF9CA9C9FF9CA8 C9FF9BA7C9FF9AA7CBFF9AA6C9FF9AA6C8FF99A5C9FF99A5C8FF98A4C7FF98A4 C8FF98A4C8FF97A3C8FF97A3C6FF98A3C7FF909BBEFF77809EFF4D5265FF1F21 29FF07080AFF000000F9000000E0000000A5000000530000001A000000010000 00000000000000000000000000040000002000000061000000B4000000E70000 00FC010305FF050A13FF111E32FF15233EFF182442FF243152FF1F3456FF4755 76FF5F6987FF596783FF5A6884FF5A6983FF5B6A85FF5D6C86FF5D6C87FF5D6C 87FF5F6E89FF606F8BFF61708DFF61728CFF63728EFF65748FFF677691FF6A78 94FF697995FF6B7B98FF6D7D9AFF6F7E9CFF717F9EFF71819EFF7483A0FF7584 A2FF7486A3FF7487A4FF7989A6FF7B8AA8FF7B8BA9FF7B8DAAFF7C8EAAFF7E8F ACFF8091AEFF8293AFFF8394B1FF8593B2FF8595B4FF8697B4FF8998B3FF8998 B5FF8B99B7FF8D9BB7FF8D9DB8FF8E9DB9FF8F9DBCFF919EBCFF92A0BCFF94A1 BEFF94A2BEFF95A3BFFF96A4C2FF97A6C4FF98A6C4FF98A8C5FF98A8C4FF99A8 C4FF9AAAC6FF9AA9C7FF9BAAC7FF9CABC8FF9DABC9FF9DACC9FF9CACC8FF9CAD CAFF9DADCBFF9DACCBFF9EADCAFF9EADCBFF9EAECCFF9EAECCFF9DACCBFF9EAC CBFF9DACCBFF9DACCBFF9CABCAFF9CABCAFF9DABCAFF9CABCAFF9BAAC9FF9BA9 C9FF9BA8C9FF9BA8C9FF9AA7C8FF9BA7C7FF9BA7C7FF99A6C6FF99A6C6FF99A4 C5FF97A3C3FF98A4C7FF98A3C7FF97A3C5FF96A3C4FF96A2C5FF96A2C5FF95A1 C4FF95A1C4FF94A0C4FF949FC2FF95A1C5FF8F9ABEFF7982A0FF50576AFF2325 2EFF0A0B0EFE010101F9000000E3000000AC0000005A0000001E000000020000 00000000000000000000000000050000002400000069000000BC000000EC0000 00FE020205FF070A14FF10192CFF0D1C36FF1C2C49FF4F5976FF596480FF5A65 80FF596580FF596581FF5A6682FF5B6982FF5A6A81FF5A6B82FF5C6C85FF5F6B 86FF5F6D88FF5F6E89FF5F6E89FF61718BFF63728CFF65738FFF677591FF6877 92FF687895FF6A7997FF6D7B99FF6E7D9AFF6E7E9AFF6F809AFF71819DFF7482 9FFF74839FFF7686A1FF7786A2FF7887A4FF7989A6FF798BA8FF7B8DA8FF7C8E AAFF7E8FACFF7F90ACFF8192AFFF8393B1FF8393B2FF8494B2FF8796B3FF8896 B3FF8996B4FF8A98B5FF8B9AB6FF8C9BB6FF8F9CB9FF8F9DB9FF909DB9FF919E BBFF92A0BBFF93A1BDFF94A2BFFF95A3BFFF96A3C0FF96A4C2FF97A5C3FF98A6 C3FF98A7C3FF99A7C4FF9AA9C5FF9BA9C7FF9BA8C7FF9BA9C7FF9BAAC8FF9AAA C7FF9AAAC7FF9BABC7FF9BAAC9FF9BAAC9FF9BA9C9FF9BA9C9FF9CAAC9FF9CAA C9FF9BA9C9FF9AA9C8FF9AA8C7FF9AA8C7FF9AA8C7FF9AA8C7FF9AA8C7FF99A7 C8FF99A6C6FF99A5C6FF99A5C6FF98A4C5FF97A4C4FF96A3C3FF96A2C3FF96A2 C3FF95A1C2FF94A0C3FF94A0C3FF94A0C3FF94A0C2FF949FC3FF94A0C2FF939F C0FF929EBFFF929EBFFF929EBFFF929EC1FF8D99BCFF7983A1FF51576BFF2327 2FFF090A0DFF000000FB000000E8000000B20000005E00000020000000020000 0000000000000000000000000006000000270000006D000000BE000000EB0000 00FC010104FF050710FF0E1829FF1C2D44FF334460FF515E7BFF5A657FFF5A66 7EFF58667EFF586581FF5B6681FF5B6780FF5A6880FF5A6982FF5C6A85FF5F6B 87FF5E6C87FF5D6D88FF5E6E88FF62708AFF63728CFF64738DFF64748EFF6575 90FF697795FF697795FF6A7895FF6C7B96FF6C7D97FF6E7E9AFF707F9AFF7380 9BFF74829DFF75849EFF7584A1FF7685A2FF7887A4FF7889A7FF7A8AA7FF798B A6FF7B8BA6FF7F8DA9FF7F90AAFF8091AEFF8091B0FF8092B1FF8494B1FF8594 B0FF8795B2FF8896B4FF8998B4FF8999B3FF8B99B5FF8B9AB7FF8C9BB9FF8E9C BAFF909DBBFF909EBCFF919FBDFF92A0BDFF92A2BCFF92A2BEFF94A3C0FF95A3 C1FF96A3C1FF96A4C1FF97A5C3FF98A5C4FF98A5C4FF99A7C6FF98A7C7FF98A7 C6FF98A7C5FF9AA8C6FF99A8C7FF98A7C7FF99A7C7FF99A7C6FF99A6C6FF99A7 C7FF98A8C6FF98A7C6FF99A6C5FF98A7C5FF98A5C6FF98A4C5FF98A4C5FF97A5 C5FF97A4C5FF97A3C4FF96A2C3FF95A2C2FF95A2C2FF94A0C0FF939FBFFF939F BFFF939FC0FF929EBFFF919EC0FF929DC0FF929DC0FF919DBFFF919DBEFF909C BDFF8F9CBCFF909CBBFF919CBCFF909ABBFF8A96B5FF77839EFF535A6EFF2629 32FF0C0D10FF020102FA000000E6000000B40000006200000022000000030000 00000000000000000000000000060000002800000070000000C1000000ED0000 00FD020305FF0D1019FF212C3CFF39485EFF4C5B75FF54627CFF58647EFF5865 7EFF58667EFF596680FF5A6680FF5C6680FF5C6881FF5C6883FF5D6883FF5E6A 85FF5E6C85FF606D87FF616E88FF616E89FF64708CFF65728DFF65728DFF6574 8EFF687692FF687691FF697691FF6B7893FF6C7B95FF6E7C97FF6F7D98FF707F 99FF73819CFF74819DFF74839FFF7584A1FF7785A3FF7887A5FF7A89A6FF7A8A A5FF7B8AA7FF7D8CA9FF7E8DA9FF808FAAFF8090ACFF8191AEFF8392B0FF8493 B0FF8593B1FF8795B2FF8796B3FF8897B3FF8998B3FF8A99B5FF8C9AB7FF8D9B B7FF8D9CB7FF8E9DB9FF8F9DBBFF909EBCFF919FBBFF92A0BDFF92A1BEFF93A1 C0FF94A1C1FF94A2C1FF96A3C3FF96A3C3FF96A3C2FF96A6C3FF95A5C4FF95A5 C4FF96A5C3FF97A5C3FF97A5C5FF97A5C5FF98A5C5FF98A5C5FF97A4C4FF97A4 C4FF97A5C4FF97A4C4FF97A4C5FF97A4C4FF97A3C3FF97A3C3FF96A2C3FF95A2 C2FF95A2C3FF94A1C3FF94A1C0FF93A0BFFF94A0C1FF939FBFFF929EBEFF929E BFFF929EBFFF909DBCFF909DBDFF909CBEFF909BBEFF909CBDFF8F9ABCFF8E9A BBFF8E9ABAFF8E99B9FF8E99BAFF8E98BAFF8A95B4FF78829DFF525A6EFF2629 32FF0B0C0FFF010101FB000000E9000000B70000006500000024000000030000 00000000000000000000000000060000002A00000073000000C3000000EF0000 00FE040508FF181C24FF343D4FFF4C596FFF58667DFF57647DFF59647EFF5865 7FFF58667FFF596680FF5A6680FF5D6781FF5D6883FF5D6783FF5E6782FF5E6A 83FF5F6B83FF626C85FF656C88FF626D89FF64708BFF66708CFF66718CFF6673 8DFF68758FFF68768FFF697690FF6B7791FF6D7994FF6E7A95FF6E7B96FF6F7D 99FF72809BFF73809CFF73829DFF7583A0FF7684A2FF7785A3FF7987A4FF7B89 A5FF7C8AA8FF7C8BA9FF7D8BA8FF7F8EA9FF808FAAFF818FACFF8391AEFF8491 AFFF8492B0FF8593B1FF8795B1FF8896B2FF8997B2FF8B98B4FF8C99B6FF8D9A B6FF8C9BB5FF8D9BB7FF8E9CBAFF8F9DBCFF919DBCFF929EBCFF929FBEFF92A0 C0FF92A0C1FF93A1C0FF94A2C2FF95A2C2FF95A2C1FF94A4C2FF94A3C2FF94A3 C3FF95A4C3FF96A4C2FF96A4C4FF97A4C4FF97A4C3FF96A4C3FF97A4C3FF96A3 C2FF96A2C2FF96A2C3FF96A2C3FF96A2C2FF96A3C1FF96A3C1FF95A2C2FF94A0 C1FF94A0C1FF93A0C1FF93A0BFFF93A0BFFF929EBFFF929EBEFF919EBFFF929D BEFF919CBDFF909DBBFF8F9CBBFF8F9BBCFF8F9ABCFF919ABBFF8E98BBFF8D98 BAFF8D98B8FF8C97B7FF8B97B8FF8D98B9FF8A94B4FF78809DFF52596DFF2528 31FF0B0C0EFF000101FC000000E9000000B80000006500000024000000030000 00000000000000000000000000070000002B00000074000000C2000000ED0001 01FD07080CFF1D2029FF383E51FF4B566DFF53627AFF57637DFF5B637CFF5B64 7EFF5B6581FF5A6681FF5B6680FF5D6782FF5D6782FF5C6782FF5D6882FF5E6A 84FF5F6A82FF626A83FF656B85FF646D88FF647089FF666F89FF676F8AFF6672 8DFF67728EFF68748FFF697790FF6A7891FF6D7893FF6E7894FF6E7A95FF6E7C 98FF707E9BFF72819CFF73819CFF74819DFF75829FFF7582A0FF7784A1FF7987 A3FF7A88A5FF7B89A6FF7B8AA5FF7F8CA9FF7F8DABFF808EABFF8290ACFF8391 ADFF8391AFFF8592AFFF8694AEFF8796B0FF8795B1FF8896B4FF8A97B6FF8B98 B6FF8D9AB7FF8C9AB8FF8D9BB9FF8E9CBAFF8F9CBAFF8F9DBBFF909EBEFF919E BFFF919EBFFF91A0BFFF91A0C0FF92A0C0FF93A1C0FF93A2C1FF93A1C1FF94A2 C2FF95A3C3FF95A3C2FF94A3C3FF95A3C3FF95A3C2FF95A3C2FF96A3C2FF95A2 C2FF95A1C2FF95A1C1FF95A1C0FF95A1C1FF95A2C0FF94A1C0FF93A0C1FF93A0 C1FF939FC0FF929EBFFF929EBFFF929EBFFF919DBEFF909CBEFF909CBDFF909B BCFF909BBAFF8F9BBAFF8D99BAFF8D99B9FF8D99B9FF8F98B9FF8D97B9FF8D97 B7FF8C96B6FF8C96B6FF8B96B6FF8B97B6FF8691B2FF757D9CFF53576CFF2528 31FF0C0D10FF020202FB000000E6000000B50000006300000023000000030000 00000000000000000000000000070000002C00000076000000C6000000F00101 01FE080A0CFF1B1F28FF393E4FFF4D546CFF565F7AFF58607BFF59627BFF5A61 7CFF5A627EFF5B637FFF5D647EFF5C647FFF5A667FFF5A677FFF5C6881FF5D69 83FF5F6982FF626983FF636A85FF616B86FF636D86FF666E88FF666F8AFF6470 8BFF64718CFF66738EFF68748FFF697590FF6A7792FF6A7692FF6C7996FF6E7C 99FF6E7C99FF6F7E99FF71809BFF72819CFF73839DFF7584A0FF7685A0FF7887 A3FF7988A5FF7988A6FF7B8AA8FF7C8AA7FF7D8BA9FF7F8DAAFF8090AAFF8290 ACFF8291AEFF8392AFFF8492AFFF8493AFFF8594B1FF8694B3FF8895B4FF8996 B4FF8996B5FF8B98B7FF8C99B8FF8D9AB8FF8D9AB8FF8D9BBBFF8E9BBCFF8F9B BCFF8F9DBDFF909DBDFF909EBEFF8F9EBEFF8F9FBDFF929FBEFF929FC0FF909F C0FF909FC0FF939FC1FF939FC1FF929FC1FF939FC0FF939FC0FF929EBEFF94A0 C0FF93A0C0FF929FBFFF929FBFFF929EBFFF929FBFFF929FBFFF919EBEFF909D BEFF8F9CBCFF8F9CBCFF8F9BBBFF8E9BB9FF8F9BBAFF8E9ABAFF8E99B8FF8D99 B7FF8E99B7FF8F97B7FF8D96B6FF8B97B7FF8B97B7FF8B95B6FF8A95B5FF8A95 B4FF8A95B4FF8A93B2FF8B91B2FF8994B2FF848FAFFF727B98FF4E5467FF2225 2DFF090A0CFF000000FD000000E9000000B50000006200000022000000020000 00000000000000000000000000070000002C00000076000000C6000000F00101 02FE080A0CFF1B2029FF393E51FF4D566DFF54617AFF55627DFF57627DFF5962 7DFF5A627BFF5A6279FF5C647AFF5B647EFF5A657EFF5B667DFF5D667DFF5E67 81FF606881FF626982FF626984FF616B85FF616B85FF626D88FF64708AFF6670 8AFF65708CFF66728DFF66738FFF66758FFF687791FF6A7792FF6B7994FF6C7B 96FF6D7C97FF6E7D98FF6F7E99FF71809AFF73819CFF74839EFF74849EFF7585 A0FF7786A3FF7987A4FF7A89A6FF7A8AA6FF7C8BA7FF7D8CA9FF7D8DA9FF7F8F AAFF808FADFF8090AEFF8191AEFF8392AFFF8492AFFF8492B2FF8693B4FF8895 B4FF8894B4FF8996B4FF8A97B4FF8A97B5FF8B98B7FF8A99B8FF8B9ABAFF8D9A B9FF8D9AB8FF8E9BBAFF8E9CBBFF8E9CBBFF8E9DBBFF8F9CBCFF909CBDFF8F9D BDFF8F9DBDFF909DBDFF919EBEFF919EBEFF919EBEFF919DBEFF909DBDFF919D BDFF909DBDFF909DBCFF909DBCFF909DBDFF909CBEFF8F9CBDFF8E9CBBFF8E9B BBFF8E9BBCFF8D9ABBFF8D99BBFF8C99B9FF8C99B8FF8D99B8FF8D98B7FF8C98 B7FF8C98B7FF8D96B7FF8C96B6FF8B95B5FF8994B5FF8994B4FF8894B3FF8893 B3FF8893B2FF8792B1FF8991B1FF8893B1FF838EACFF717A95FF4C5365FF2224 2DFF0A0B0DFF010101FB000000E6000000B20000005F00000020000000020000 00000000000000000000000000070000002B00000074000000C4000000EF0101 02FE080A0CFF1B1F27FF383C4EFF4C546BFF546079FF55617CFF55617BFF5662 7BFF58637AFF5A6378FF5B6477FF5A647CFF5A657DFF5C667CFF5F667CFF5E67 7FFF5F677FFF616881FF626A83FF606A82FF626B86FF626D88FF636E89FF646F 89FF65708BFF65718DFF66728EFF66738EFF69758FFF6A7691FF6A7892FF6B79 92FF6C7A94FF6E7B96FF6E7D98FF6F7D98FF727E9AFF74829CFF73819CFF7483 9EFF7584A0FF7786A3FF7987A5FF7988A4FF7B8AA6FF7B8AA7FF7B8AA7FF7D8C A9FF7E8EABFF7F8EABFF7F8FABFF8290ACFF8290AEFF8391B0FF8492B2FF8593 B1FF8693B1FF8794B1FF8795B1FF8895B3FF8996B5FF8797B5FF8998B6FF8B98 B6FF8A97B4FF8B98B6FF8C99B8FF8D9AB9FF8D9BB9FF8C99B9FF8D99BAFF8E9A BAFF8E9BBAFF8E9BB9FF8E9BBAFF8F9CBAFF8F9CBAFF8E9BBAFF8E9ABAFF8D9B B9FF8D9BB8FF8D9AB8FF8D9AB9FF8D9ABAFF8D99BAFF8C99B8FF8B98B7FF8C98 B7FF8C98B8FF8C98B8FF8C97B7FF8C97B7FF8A97B5FF8A96B4FF8B96B5FF8A95 B5FF8A96B5FF8A94B4FF8A95B3FF8994B3FF8892B2FF8693B2FF8692B2FF8590 B1FF8490B0FF8591B0FF8690B0FF8690B0FF818BA9FF6E7791FF495061FF2022 2BFF090A0CFF010101FB000000E6000000B00000005D0000001F000000020000 00000000000000000000000000060000002900000070000000C1000000ED0101 01FD08090BFF1B1D25FF363A4BFF4B5169FF565E77FF59607BFF566078FF5663 79FF58647BFF5A6379FF5B6378FF5A647BFF5A647DFF5D667DFF5F677EFF5D67 80FF5E667FFF606881FF626B83FF606981FF646C87FF646D88FF636C87FF636D 88FF66708BFF65718BFF66718CFF69728DFF6B738FFF6B7590FF6A7690FF6C77 91FF6E7993FF6F7A95FF6E7B97FF6F7B97FF717C98FF73809BFF73809BFF7481 9CFF75839EFF7685A1FF7785A5FF7886A3FF7A88A4FF7A89A5FF7B8AA6FF7D8A A8FF7E8CA8FF7E8CA9FF7E8DA9FF808DA9FF818FACFF828FAEFF8290ADFF8291 ACFF8493AEFF8492AEFF8593AFFF8594B1FF8694B2FF8695B3FF8895B3FF8894 B3FF8895B1FF8995B2FF8996B4FF8A97B5FF8B98B6FF8B96B6FF8B96B7FF8B98 B7FF8C99B7FF8C99B6FF8C98B6FF8D99B6FF8D99B6FF8D99B6FF8D97B7FF8B98 B6FF8A98B5FF8B98B5FF8C96B7FF8A96B6FF8A96B5FF8A96B4FF8A96B4FF8B96 B5FF8995B5FF8A95B4FF8B94B3FF8B94B3FF8894B3FF8894B1FF8893B1FF8893 B1FF8893B1FF8891B1FF8892B0FF8791B1FF8691B1FF8592B0FF8590B0FF838E AEFF828EAEFF838FAFFF838EAEFF858DAEFF7F88A7FF6B748CFF454C5DFF1D20 27FF07080AFF000000FB000000E6000000AD000000590000001C000000010000 0000000000000000000000000005000000250000006C000000BD000000EC0101 01FE07080BFF1A1B24FF353B4AFF4B5369FF575F78FF5A6179FF58617BFF5962 7AFF5A627AFF5A617BFF5D637CFF5D647EFF5E657FFF5F6580FF5E6581FF5F67 83FF5F6982FF606982FF616883FF626A85FF646C88FF666C87FF666C87FF656E 89FF66708AFF67708BFF69718CFF6C738EFF6D738FFF6D7691FF6D7691FF6F77 92FF707995FF717A96FF717B97FF737C98FF747D99FF737D9AFF74809BFF7480 9BFF75819DFF7683A0FF7684A3FF7885A1FF7886A0FF7987A2FF7D88A4FF7E89 A5FF7D89A6FF7D8AA8FF7E8BA9FF808CA9FF7F8DAAFF7F8DA9FF808DA9FF808E A9FF8291ABFF8390ACFF8290ADFF8291ADFF8592B0FF8592B2FF8792B2FF8893 B1FF8794B0FF8894B1FF8894B1FF8894B1FF8995B1FF8A95B2FF8A96B3FF8B96 B4FF8B96B4FF8B96B3FF8B96B5FF8D96B5FF8C96B4FF8B96B4FF8C95B4FF8B96 B5FF8A96B5FF8B96B5FF8C96B6FF8995B5FF8B95B4FF8B95B4FF8A95B4FF8A95 B4FF8793B4FF8894B3FF8A94B2FF8993B2FF8793B2FF8792B1FF8791B0FF8790 B0FF8791B0FF888FB0FF878FAFFF858FB0FF858FAFFF8690ADFF858FADFF848E ADFF828DADFF818DADFF828CACFF848DAEFF7F86A5FF6A6F88FF434859FF1B1E 25FF07080AFE000001F9000000E0000000A50000005300000019000000000000 00000000000000000000000000040000002200000065000000B5000000E70101 01FC060709FF171820FF333845FF4A5165FF575E77FF5A6179FF5A607AFF5B62 7AFF5C6279FF5C6177FF5C637BFF5D637FFF5E637FFF5D637EFF5B657FFF5F65 81FF606780FF61687FFF626881FF636A86FF636985FF656985FF656B86FF646D 86FF666D88FF676E8AFF68708CFF69738EFF6B728EFF6B748FFF6D7690FF6E77 91FF6F7893FF707994FF707A94FF717B97FF737C9AFF727C9AFF727E9AFF727F 9AFF747F9BFF76809DFF79829FFF79839FFF77849EFF77859FFF7B86A2FF7C87 A3FF7B86A3FF7C88A5FF7E8BA7FF7E8AA5FF7E89A4FF7F89A5FF7F8AA6FF7F8B A7FF7F8DA8FF808EA9FF818FAAFF818FAAFF838FACFF838FACFF8490ADFF8591 AEFF8591AFFF8691AFFF8592AEFF8694AFFF8794B0FF8894B1FF8794B1FF8894 B1FF8993B1FF8994B0FF8A94B1FF8994B2FF8993B2FF8994B3FF8A94B3FF8A94 B4FF8994B3FF8994B2FF8A94B1FF8893B3FF8894B2FF8993B2FF8993B3FF8693 B2FF8592B2FF8693B2FF8792B2FF8791B1FF8591B1FF8691B0FF8690AFFF8590 AEFF868FAEFF868EADFF868DAFFF868EAFFF868DADFF858CAAFF838BAAFF848B ABFF838BABFF808AAAFF808BA9FF818AABFF7A81A0FF646981FF3D4151FF1718 1FFF050507FF000000F9000000DE0000009E0000004D00000016000000000000 00000000000000000000000000030000001D0000005D000000B1000000E60000 01FD050607FF14161BFF2F3340FF464C61FF535B74FF585F78FF5A5F79FF5A60 7AFF5B6079FF5C6177FF5C627AFF5C627DFF5C637EFF5C647EFF5C657EFF5E66 80FF5F667FFF60667EFF62677FFF626884FF626884FF636983FF646B83FF646C 85FF656D87FF666D88FF666F8AFF66718BFF67718CFF68728DFF69748EFF6B75 8EFF6C758FFF6D7791FF6E7792FF707894FF717996FF717A96FF707B97FF6F7D 97FF707D98FF727E99FF75809BFF76819BFF75819CFF76819DFF77829EFF7883 9FFF7A839FFF7A85A1FF7A87A2FF7B87A2FF7D86A2FF7E87A2FF7E88A4FF7E89 A5FF7E8AA6FF7E8BA7FF7E8CA7FF7E8CA8FF818CA9FF818EA9FF818EABFF828E ACFF848FACFF838EACFF828FADFF8291AEFF8391AEFF8491AEFF8491ADFF8592 AEFF8692AFFF8792B0FF8792AFFF8691AFFF8691B0FF8791B1FF8792B1FF8691 B0FF8791B0FF8791AFFF8691ADFF8791B0FF8591B0FF8691B0FF8790B0FF8690 B0FF858FAFFF858FAFFF868FAEFF868EAEFF848EAEFF848DAEFF848EADFF848E ACFF838CACFF838BABFF828BACFF838AABFF848AA8FF848AA8FF8289A8FF8089 A8FF8088A8FF8087A7FF8088A7FF7F87A8FF767E9CFF5E647BFF373B48FF1415 1BFF040405FF000000F7000000D9000000960000004400000011000000000000 00000000000000000000000000010000001800000054000000A8000000E20000 00FC040405FE111216FF2A2E3BFF42485CFF51596FFF565F76FF585E77FF585E 78FF595F78FF5B6079FF5B6078FF5B617AFF5B627AFF5B647BFF5C657DFF5D67 7DFF5C657EFF5E657EFF61667EFF606781FF5F6882FF606982FF616982FF626A 83FF636C85FF646D87FF656D88FF656E88FF646F88FF667089FF677189FF6872 8AFF6A738CFF69748EFF6C7591FF6D7690FF6E7690FF6F7792FF6F7894FF6E79 94FF6E7A95FF707B96FF717D98FF737E98FF747E99FF757E9AFF757F9BFF7680 9CFF78819DFF78829EFF76839EFF7884A0FF7A84A0FF7B85A1FF7C86A2FF7B87 A3FF7C88A4FF7C89A5FF7B89A6FF7C8AA7FF808BA7FF7E8CA7FF7E8DA9FF808D AAFF828DAAFF808CA9FF808DABFF808EACFF808EABFF818EABFF818FAAFF828F ACFF8490ADFF8590ADFF8390ADFF848FADFF858FADFF8590AEFF8490AFFF8390 ADFF848FAEFF848FADFF838FACFF858FADFF838FAEFF848FAEFF858EAEFF858E ACFF848DADFF848CACFF848CACFF848CABFF838BABFF828AACFF828BAAFF828B A9FF828AA9FF8088A9FF7F88A9FF7F88A7FF8088A5FF8188A6FF8188A7FF7E87 A6FF7D85A5FF7F85A6FF7F85A5FF7E84A5FF737997FF595E73FF31343FFF1012 16FF030304FE000000F4000000D30000008B0000003C0000000D000000000000 000000000000000000000000000100000013000000480000009B000000D90000 00F8030304FE0E0F12FF252935FF3E4456FF50586CFF556074FF565E74FF565D 75FF595E77FF5B6079FF586077FF596177FF5B6176FF5B6176FF5B6379FF5C64 78FF5C647CFF5E647DFF60657CFF5E677FFF5D6780FF5E6781FF5F6780FF5F68 80FF626A83FF636B86FF656C87FF656D86FF646D85FF656E86FF676E85FF686F 87FF68728BFF67738CFF6A738EFF6B748DFF6B748CFF6D7490FF6E7591FF6D76 92FF6E7793FF717994FF717A95FF717B96FF737C96FF747C97FF747E99FF767E 9AFF76809CFF76819DFF76819DFF77829EFF77839EFF78839FFF7884A0FF7886 A1FF7A87A2FF7B87A4FF7A88A5FF7B89A6FF7F8AA5FF7D89A6FF7D8BA7FF7E8B A8FF7F8AA9FF7F8BA8FF7E8BA7FF7F8BA8FF808CA9FF7F8DA9FF7F8DAAFF808C AAFF818DAAFF818EAAFF818EAAFF838EAAFF838EABFF818FACFF818FACFF828F ABFF818EACFF818EACFF828FAAFF838DAAFF828DABFF828DACFF828CABFF818C AAFF818DABFF818BAAFF808BA9FF808AA9FF808AAAFF808AA9FF8088A7FF8188 A6FF8288A7FF7F87A7FF7E86A7FF7D87A6FF7B87A5FF7D85A4FF8086A3FF7F85 A3FF7E83A4FF7D84A5FF7C84A4FF7C81A2FF6F7390FF52566AFF292C36FF0C0D 11FF020203FE000000F2000000CB0000007E000000330000000A000000000000 00000000000000000000000000000000000E0000003D00000090000000D40000 00F7010202FE0B0C0EFF22242EFF3C4053FF50556DFF565C71FF575C71FF565D 74FF585F77FF5A6077FF586076FF596075FF5B6174FF5C6174FF5D6175FF5B61 76FF5B6278FF5D6378FF5E6377FF5D6478FF5E667BFF5E667EFF5F677FFF6068 7DFF616880FF636983FF646A85FF636C85FF656C83FF646A84FF666C86FF676E 88FF676F88FF68718AFF69718AFF69718AFF68718BFF6A728EFF6D728FFF6F73 91FF6F7591FF6E7690FF707791FF707993FF717A95FF717B96FF717C97FF747C 97FF757E99FF757F9AFF74809BFF74829CFF77819CFF77819DFF76829EFF7683 9FFF77849FFF7985A2FF7A86A4FF7B87A3FF7C87A2FF7D87A2FF7D87A3FF7D88 A5FF7B88A6FF7C88A4FF7D88A4FF7E88A5FF7F89A7FF7E8AA8FF7C8BA8FF7D8A A7FF7F89A6FF7F8AA7FF808BA7FF808BA6FF7F8BA6FF7E8BA7FF7E8BA9FF808A A7FF808AA8FF7F8BA8FF7E8CA6FF7D89A6FF7F8AA9FF7F8AA9FF7E8AA8FF7F89 A7FF7F89A8FF7F89A8FF7D88A6FF7B87A4FF7C87A6FF8087A7FF8085A4FF8084 A2FF8085A2FF7E84A2FF7E83A3FF7B83A4FF7983A4FF7B83A4FF7E83A1FF7C82 9FFF7A819FFF7A82A1FF7A80A0FF797F9EFF6A6F8AFF4B4E62FF24252FFF0A0B 0EFF010102FD000000EC000000C1000000720000002A00000006000000000000 0000000000000000000000000000000000090000003200000081000000C70000 00F1010202FD09090BFF1C1E27FF363A4AFF4D5166FF565C70FF565D72FF575C 72FF585D73FF585E74FF595F73FF5A5F74FF5A5F74FF5B5F75FF5D6077FF5D61 77FF5B6277FF5B6278FF5D6279FF5E6279FF5D6378FF5E647BFF5F667DFF5F67 7BFF60667DFF626781FF636883FF636984FF636A82FF646A82FF646B83FF656D 85FF666E86FF656F86FF677088FF687088FF697088FF69718AFF6B718BFF6C71 8CFF6D728DFF6D748FFF6E7691FF6D7792FF6E7893FF707893FF717994FF727A 93FF737B95FF737C97FF737C99FF727E99FF747E99FF757F9AFF767F9BFF7780 9CFF76819EFF76829FFF77839FFF77849EFF78849EFF7A859FFF7B84A0FF7A84 A2FF7A85A3FF7C86A3FF7C86A2FF7C86A4FF7D86A5FF7B86A4FF7D88A5FF7D89 A5FF7D88A5FF7E88A5FF7F88A5FF7F89A5FF7F88A6FF7F88A7FF7E8AA8FF7F88 A7FF7F88A5FF7E88A5FF7E88A6FF7C87A5FF7F87A7FF7E87A6FF7D87A5FF7E86 A6FF7E87A5FF7D87A4FF7C87A3FF7C85A3FF7C84A4FF7E85A3FF7E84A1FF7D83 A0FF7B84A1FF7A83A3FF7982A2FF7982A1FF7982A1FF7A82A2FF7C809EFF7B80 9EFF7A809EFF79819EFF7B809EFF767C98FF63687FFF424555FF1C1E25FF0708 0AFF000001FB000000E6000000B4000000620000002100000004000000000000 0000000000000000000000000000000000060000002800000071000000BC0000 00ED010101FE060608FF17191FFF313440FF484D5EFF54596DFF565C72FF575B 72FF585B72FF585C73FF5A5E72FF5A5D73FF5A5D73FF5A5E74FF5B6075FF5B60 75FF5A6278FF5A6278FF5C6177FF5E6379FF5E6279FF5F6379FF60647AFF6066 7AFF60667CFF62667DFF63667FFF626781FF616882FF636981FF636B82FF646C 83FF656C83FF646D83FF666E85FF676E85FF686E86FF687087FF687089FF6870 8AFF6A718BFF6D738DFF6B738EFF6C7490FF6D7590FF6D758FFF6F758FFF7178 91FF717993FF717994FF727A96FF727B96FF737B96FF747C97FF757D98FF777E 9AFF767E9CFF767F9BFF76809CFF76819CFF77829CFF78829DFF79829EFF7982 9EFF79839FFF7B84A1FF7B84A1FF7A84A2FF7A85A2FF7A85A1FF7D85A1FF7D85 A2FF7C85A2FF7D86A2FF7D86A3FF7D86A3FF7D86A4FF7D86A4FF7A86A4FF7C85 A4FF7D86A3FF7D86A3FF7E85A4FF7C85A3FF7D85A3FF7D85A2FF7D84A2FF7D83 A2FF7C84A1FF7B84A0FF7B83A1FF7C83A1FF7A82A1FF7B82A1FF7B829FFF7A82 9EFF7A82A0FF7882A2FF7780A0FF78809EFF7A809EFF78809FFF797E9CFF797D 9CFF787E9CFF787E9CFF777F9CFF717793FF5B5F75FF383B49FF16171DFF0505 07FE000000FA000000E0000000A7000000540000001800000002000000000000 0000000000000000000000000000000000040000001E00000061000000AF0000 00E7000000FD040405FF131317FF2B2C37FF424758FF515669FF565A70FF575A 74FF585A74FF5A5B72FF595C72FF5B5D72FF5A5E72FF595E72FF595F73FF5860 73FF586178FF5A6077FF5C5F73FF5D6275FF606379FF606279FF606279FF6165 7AFF61657BFF62657AFF62657CFF62667EFF616880FF62687FFF636980FF646A 82FF656A81FF656B81FF656C81FF666B82FF676B83FF686E85FF686E88FF666F 89FF687089FF6C7189FF6A728AFF6C728CFF6C728CFF6B738CFF6D738DFF7076 91FF6F7793FF707893FF717893FF737995FF717A95FF727A96FF747B97FF757C 97FF757C98FF757D99FF767E9AFF777F9BFF767F9BFF777F9CFF787F9BFF797F 9BFF79809CFF78819EFF79819FFF78829FFF78839FFF79839FFF7B829EFF7B81 9EFF7C829EFF7D839FFF7B84A0FF7A83A1FF7A83A0FF7A829FFF7881A0FF7A82 A1FF7A82A1FF7B83A0FF7C83A0FF7B83A0FF7A829EFF7A829EFF7B819EFF7B80 9EFF7A819EFF7A809EFF7A809FFF7A809FFF79819DFF78809FFF78809DFF797F 9CFF7B7F9DFF7980A0FF777D9DFF787C9CFF797D9CFF767E9CFF777D9BFF777C 9AFF767B99FF767B99FF747C99FF6C718DFF52556AFF30313DFF111115FF0404 05FE000000F7000000D700000097000000450000001000000000000000000000 000000000000000000000000000000000002000000140000004F0000009C0000 00D9000000F6030304FF0E0E10FF23242DFF3B3F4FFF4E5367FF555971FF565A 73FF585A72FF5A5B71FF575A70FF595C70FF595E73FF585E74FF5A5D73FF5B5F 73FF5A5E74FF5A5E75FF5C5F73FF5B6070FF5F6274FF606178FF606179FF6063 7AFF5F6379FF606479FF60657BFF61657DFF62667EFF62677DFF62677EFF6467 80FF656881FF656980FF646A7FFF656A7FFF676B80FF686B82FF6A6C84FF696D 86FF696D86FF6A6D85FF6B718AFF6B6F88FF6C718AFF6D738DFF6D7490FF6E76 92FF6E7794FF707795FF727895FF747794FF6F7995FF707A96FF727A96FF7379 96FF737A96FF747B97FF757B97FF747C98FF727C98FF747C9AFF767C99FF767C 98FF777D99FF767D9AFF777D9BFF777E9BFF777F9BFF777F9BFF777F9BFF7980 9CFF7A809DFF7B7F9CFF7B7F9EFF797F9FFF797F9DFF797F9BFF7A809CFF7A80 9DFF797E9BFF787E9BFF787F9CFF797E9CFF797F9DFF777F9BFF757F9AFF777F 9BFF7A7F9CFF797E9CFF787E9DFF777E9EFF7A7F9CFF777E9AFF777E9AFF787D 9BFF797C9AFF787E9BFF767D9BFF767B9AFF757B98FF747B98FF767C9AFF777B 99FF767A97FF737996FF727793FF666B85FF494C5FFF272632FF0B0B0EFF0202 03FE000000F1000000C800000083000000350000000B00000000000000000000 0000000000000000000000000000000000010000000D0000003D000000890000 00CD000000F5010101FE09090AFF1C1D24FF353747FF4A4D63FF53566DFF565A 70FF585A70FF585A6EFF575A70FF585B6FFF595C71FF5A5B73FF5B5B73FF5D5D 73FF5C5D73FF5B5D72FF5B5D72FF5D5F73FF5D5F73FF5E5F75FF5F6175FF5F61 75FF5F6075FF606277FF616378FF626378FF61637AFF61657AFF61657AFF6265 7BFF64687EFF62697EFF64697FFF666A81FF666A83FF666A82FF666A84FF676B 83FF686B84FF6A6A86FF696D87FF676F88FF696F86FF6B6F87FF6C728CFF6B73 8FFF6C7693FF6D7694FF6F7592FF717693FF6F7591FF707692FF707893FF7078 94FF717A97FF737B98FF737B98FF727C98FF737C9AFF727997FF737A96FF747C 97FF757C98FF767A97FF767B97FF767C98FF767C98FF777B98FF777B98FF787D 9AFF787D9AFF777C9AFF797C9BFF777C9AFF777C9AFF787D99FF797D9AFF787D 9AFF777D99FF777D9AFF777C9BFF787C9AFF787C98FF767C97FF757C98FF757E 99FF777E9AFF757D99FF757C98FF757B98FF777C99FF767B97FF757C98FF757B 9AFF777A9AFF757B99FF757A99FF757A98FF747A97FF737896FF737997FF7578 96FF767895FF757894FF707591FF5F627BFF404252FF1F1F27FF08080BFF0202 02FD000000ED000000BC00000072000000280000000600000000000000000000 000000000000000000000000000000000000000000070000002C000000720000 00BC000000ED010100FB060607FF15151AFF2D2E39FF46475AFF52536AFF5658 6EFF56586EFF57586EFF58596EFF585A6EFF595A6EFF5B5A6FFF5B5A70FF5C5C 71FF5B5C70FF5B5C70FF5B5D71FF5B5D72FF5C5D72FF5E5E74FF5F5F74FF5F60 74FF5E5F74FF5F6174FF606174FF606075FF616278FF606378FF606378FF6164 79FF64667BFF63677DFF656881FF666882FF656982FF676B84FF666B86FF666C 87FF686C88FF6A6D8AFF696E88FF6A708BFF696F89FF696E87FF6A6E89FF6A6F 8BFF6B718DFF6C748FFF6E7693FF707A98FF6F7895FF6E7896FF6E7995FF6E78 94FF6F7996FF727C9CFF7380A0FF7381A3FF7581A4FF757FA0FF747D9EFF737C 9DFF757C9DFF767C9AFF757B97FF737B96FF737B96FF757A96FF747996FF7679 96FF787A96FF787A96FF767B98FF757B98FF767A97FF777A97FF767A97FF767A 97FF767B98FF757B98FF757A97FF787B98FF787997FF767996FF747A97FF747B 97FF757B97FF747A96FF757A96FF767A96FF757996FF747A97FF747A97FF7378 97FF737797FF757795FF747796FF737796FF737895FF727794FF727795FF7277 94FF737694FF727591FF6C6F8BFF56596FFF353644FF16171CFF050507FF0101 01FA000000E1000000A80000005C0000001B0000000300000000000000000000 000000000000000000000000000000000000000000030000001D0000005C0000 00A6000000E3000000FA030304FF0F0F12FF24242DFF3F3F4FFF504F65FF5556 6CFF56576EFF58576EFF58596DFF59586DFF59586DFF5A596DFF5B596DFF5A5A 70FF5A5B6FFF5A5B6EFF5B5D6FFF5B5C70FF5B5D70FF5C5D72FF5E5E73FF5E5F 73FF5D5F73FF5E5F73FF5F5F73FF5F6075FF606177FF606177FF606278FF6163 78FF636479FF64657AFF65657DFF64657EFF64667FFF666981FF666B84FF656B 85FF656C87FF686E89FF686E87FF6A6E89FF696E88FF686D86FF686D86FF6A6D 88FF6B6E88FF6C708AFF6D748FFF6E7996FF6E7A9AFF6D7A9AFF6D7997FF6C76 92FF6D7593FF717B9AFF727FA1FF7281A4FF7482A5FF7682A6FF7580A5FF737F A4FF747FA3FF767FA1FF757E9FFF737E9EFF727F9DFF727E9DFF737D9DFF737C 9BFF757B9BFF777B9BFF747C9AFF747A97FF757895FF757894FF737895FF7478 95FF767895FF767894FF747893FF757995FF757895FF757895FF747995FF7379 95FF737895FF737895FF747894FF767794FF737794FF717795FF727794FF7376 94FF717594FF747592FF737593FF717593FF717592FF717693FF707693FF7076 92FF707592FF6E7290FF656983FF4B4E61FF2A2B36FF0F0F13FF030304FE0000 00F7000000D50000009400000047000000110000000100000000000000000000 0000000000000000000000000000000000000000000100000011000000450000 008F000000D5000000F7010102FF09090CFF1B1C23FF353644FF4B4B5CFF5354 69FF56566EFF58576DFF58586CFF59566CFF59576DFF58586DFF5A596DFF595A 70FF595A6FFF5A5A6DFF5B5B6DFF5C5C6FFF595C6EFF5B5C6FFF5D5C70FF5C5E 70FF5D5E72FF5D5D73FF5E5E74FF5F6076FF5F5F75FF606077FF606077FF6161 77FF626278FF636378FF626376FF626378FF62647AFF646579FF65677DFF6367 7DFF63687FFF656B82FF666B82FF676A81FF686A81FF686B82FF676C84FF6A6C 86FF6C6C86FF6C6C85FF6A6E87FF6A718CFF6B7898FF6C7999FF6C7593FF6B72 8DFF6C718DFF6E7592FF6E7795FF6F7998FF707B9AFF727FA1FF7280A4FF7280 A4FF727FA3FF7380A4FF7482A7FF7483A8FF7383A8FF7283A8FF7384A7FF7182 A6FF7180A6FF7381A5FF727FA0FF737B9AFF747896FF737795FF717693FF7176 93FF747794FF757692FF747691FF717793FF707793FF727693FF737693FF7176 93FF727794FF717693FF717592FF727592FF707692FF6F7491FF707491FF7175 92FF717591FF717491FF707390FF6F738FFF6F748FFF727391FF6F7390FF6E73 8FFF6E7390FF6A6F8DFF5B6079FF3F4151FF202029FF09090CFF010102FD0000 00F3000000C80000008100000036000000090000000000000000000000000000 0000000000000000000000000000000000000000000000000007000000300000 0076000000C1000000EC010101FB050506FF131318FF2C2B37FF444354FF504F 63FF545469FF56546AFF56566AFF56556AFF56556AFF57576BFF58596CFF5758 6BFF57586AFF58586BFF5A586CFF5B596DFF58596DFF595A6EFF5C5C70FF5D5D 71FF5C5D70FF5C5D71FF5B5D71FF5C5D71FF5F5E71FF5E6071FF5E6071FF5E5F 72FF5F5F74FF616175FF616177FF616177FF626376FF636478FF62657AFF6365 79FF64657AFF64667CFF63677BFF64677AFF66687DFF686980FF66687DFF6869 7FFF686982FF686A84FF676C85FF676B82FF696F86FF69718AFF696F8AFF696D 88FF6B708CFF6B7089FF6C6F88FF6D6F8AFF6E718EFF6C7490FF6D7795FF6E79 99FF6E7A99FF6D7A98FF6E7D9DFF707EA0FF7280A3FF7481A8FF7280A5FF7180 A7FF7281A8FF7382A7FF7081A7FF7280A5FF737EA2FF727B9CFF707996FF6F78 96FF717898FF717796FF6F7591FF6D748FFF6E7491FF6F7490FF6F738FFF6F74 90FF727492FF70738FFF6E718FFF6C718FFF6D738CFF6F7290FF6E718FFF6D72 8EFF6C738FFF6C728DFF6D718CFF6E718DFF6E718DFF6E708CFF6E6E8CFF6D70 8DFF6B708CFF656883FF515369FF31323FFF15151BFF040506FF000001F90000 00E7000000B00000006600000024000000050000000000000000000000000000 00000000000000000000000000000000000000000000000000020000001F0000 005C000000A9000000E4000000FA030303FF0D0D11FF232129FF3D3A47FF4E4C 5CFF555467FF555369FF545567FF535466FF545567FF565668FF575667FF5657 67FF565568FF58566BFF59596EFF59596DFF58586CFF59586BFF5A596DFF5B5B 70FF5B5A6FFF5B5B6EFF5B5C6EFF5B5D6FFF5D5D6EFF5D5E6EFF5E5F6DFF5E5F 6EFF5D5F70FF5E5E71FF5F5F73FF5F6074FF5E6174FF5F6376FF616476FF6262 73FF626274FF626478FF616479FF63647AFF62657BFF63667BFF67677BFF6767 7CFF67687EFF67697FFF66687FFF686980FF666D82FF656B83FF676A83FF696C 85FF696B84FF696C85FF696D85FF6B6D85FF6C6D87FF6A6F89FF6A718BFF6B71 8CFF6A6F8BFF69708BFF6A718DFF6C738FFF6D7693FF6E7897FF6F7B9BFF6F7C A0FF707CA0FF707C9EFF6E7B9FFF6E7B9EFF6F7C9EFF707C9EFF707B9DFF717C 9DFF717B9DFF707B9DFF707B9BFF6F7794FF6C718EFF6D708DFF6E728EFF6D72 8EFF6D718CFF6E728BFF6C708AFF6A6F89FF6C718AFF6E718EFF6C708DFF6B6F 8BFF6A6F8AFF6A6E88FF696E88FF6A6E88FF6C6E89FF6C6E89FF6D6C8AFF6C6D 8AFF686C87FF5D6279FF454759FF252530FF0E0E12FF020303FF000000F70000 00DB000000990000004E00000016000000010000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000110000 00430000008E000000D4000000F4010101FE08080AFF19181DFF33313AFF4846 53FF525162FF535367FF525367FF535265FF545465FF555464FF565364FF5555 67FF575569FF58556AFF57566BFF57586CFF58576BFF585769FF58586AFF5A58 6CFF5A576DFF5B596DFF5B5B6EFF5C5B6FFF5B5B6DFF5C5B6DFF5C5D6CFF5C5E 6CFF5B5E6DFF5D5E6FFF5E6070FF5D6070FF5C5F71FF5E6174FF5F6173FF6061 71FF616273FF616276FF606274FF636379FF61647AFF616579FF66667AFF6564 79FF65667BFF66677CFF66667CFF67677DFF66697FFF656880FF666880FF686A 7FFF67687FFF676A81FF676B82FF686C82FF696C83FF686C84FF686C85FF696D 86FF696D87FF686C86FF696D87FF6B6E88FF6C6F89FF6C708BFF6C728FFF6D74 92FF6D7493FF6B7493FF6B7695FF6C7694FF6C7695FF6D7795FF6E7896FF6E78 96FF6E7797FF6E7797FF6F7796FF6E7592FF6C718EFF6B708CFF6B708BFF6C6F 8AFF696E87FF6A6E88FF6A6E88FF6A6D87FF6C6E88FF6C6E8AFF6B6D89FF6A6D 88FF696D88FF696D87FF686D86FF696D85FF6A6C86FF696B86FF696C87FF6A6B 87FF65667FFF54586CFF373947FF191A20FF07080AFF010101FC000000EF0000 00C60000007D000000360000000A000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000070000 002C00000070000000BD000000EA000000FC040405FF101013FF28272FFF3E3D 49FF4C4B5CFF515265FF535266FF555165FF555264FF555262FF555263FF5553 68FF575469FF575468FF575468FF575669FF585568FF575668FF575769FF5A57 6AFF59566CFF5A596DFF5B5A6EFF5B5A6EFF5A5A6DFF5B5A6DFF5B5C6DFF5A5D 6DFF5A5D6DFF5C5E6EFF5D5F6FFF5C5E6EFF5C5E70FF5F6074FF5E5F73FF5F61 72FF606273FF606275FF606272FF626276FF626277FF626377FF636478FF6263 77FF636379FF64647AFF65657BFF64657AFF65667CFF66667DFF66667DFF6667 7BFF67687CFF66687CFF65697EFF666A80FF666B80FF676A81FF676A82FF686C 85FF696D86FF686C83FF696D85FF6A6D85FF6B6C86FF6B6B87FF6B6A87FF6A6C 87FF6A6E89FF696F8BFF6A708CFF6B708CFF6A6F8BFF6A6F8AFF6C718AFF6970 89FF69718BFF6A718CFF6D708AFF6C708BFF6C718DFF6A708CFF696F8AFF6A6E 89FF676D87FF676C87FF696C87FF6A6C87FF6A6C87FF6A6A86FF6A6A85FF696B 85FF686C86FF696C86FF696C84FF696B84FF686B84FF676A84FF676C86FF676A 83FF5F6077FF494B5CFF292A35FF101014FF030304FE000000F8000000E30000 00AB0000005F0000002100000002000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000020000 001A00000051000000A1000000DC000000F9020203FF0A0A0CFF1C1D24FF3333 40FF454557FF505062FF555263FF575064FF575164FF565263FF555263FF5652 69FF555267FF575366FF595467FF575568FF585464FF575566FF56576AFF5858 6BFF5A586BFF5A596CFF59596DFF59596DFF5A5A6CFF5B5C6CFF5A5B6DFF5A5B 6DFF5B5C6CFF5A5B6DFF5B5C6DFF5C5D70FF5E5D73FF605F75FF5F5E73FF5E5E 72FF5E6072FF5E6172FF5F6174FF5F6073FF616073FF616073FF606175FF6162 76FF616276FF626378FF63647AFF636379FF64647AFF64647AFF64647AFF6565 7AFF66677BFF64667BFF64667DFF65677FFF65687FFF676980FF676981FF6768 81FF676880FF686A7FFF676B7FFF686A81FF696A82FF696A85FF6A6A84FF686A 83FF686B85FF6A6C87FF696A86FF686A84FF686A84FF696B84FF6C6B83FF666B 84FF646C84FF676C83FF6B6C84FF696D86FF696E89FF696F8BFF686F8CFF676E 8AFF676D8AFF696E8AFF696D88FF686B86FF696C89FF686985FF696984FF696A 84FF676A84FF686A83FF6A6A83FF696982FF676882FF666A84FF676A85FF6367 81FF55576DFF3B3B49FF1C1D24FF0A0A0DFF010103FE000000F4000000D40000 008F000000440000001200000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000D000000360000007F000000C4000000ED010102FC050506FF131217FF2927 32FF3E3D4CFF4B4C5EFF524F62FF545065FF555164FF545263FF535366FF5351 65FF555264FF565264FF555264FF565366FF585467FF575568FF565568FF5656 68FF565567FF56556BFF57556CFF59556AFF5A566AFF5A596BFF5A586BFF5A58 6BFF5A5A6BFF5D5A70FF5D5B6FFF5C5C6FFF5C5C70FF5C5C70FF5F5C6FFF5E5E 70FF5C5E71FF5C5E71FF5D5E73FF5E5F72FF5F5F72FF605F74FF5F5F75FF5E61 77FF5E6277FF5F6277FF616178FF616179FF616177FF626377FF636478FF6364 7AFF63647AFF64667BFF64667BFF64657BFF64647DFF66677DFF66677DFF6666 7DFF66667DFF66677EFF67687FFF67677FFF67677FFF676782FF676883FF6868 81FF666980FF656981FF676882FF686982FF676982FF666881FF676882FF6769 84FF676A81FF686A81FF686A83FF676B86FF666C86FF676B87FF696B8AFF6A6C 8AFF686B89FF686B88FF696A87FF696986FF696A87FF686984FF686984FF6769 84FF666983FF686A80FF686980FF676880FF656781FF646782FF656682FF5C5E 77FF47495CFF2B2C37FF111116FF050505FF000000FB000000E6000000B80000 006C0000002B0000000700000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0005000000200000005D000000A9000000E0000000F9020202FE0B0A0DFF1E1B 22FF33313CFF454353FF4E4B5EFF524E61FF524E61FF524F61FF525064FF5450 62FF555062FF535061FF515161FF545265FF555165FF555367FF555366FF5452 62FF545465FF575368FF58556AFF575769FF585668FF58576AFF57576AFF5757 69FF58596AFF59596DFF59586CFF59596BFF5B5A6BFF5C5A6BFF5B5B6BFF5B5C 6DFF5A5C6DFF5A5C6CFF5B5D70FF5B5D72FF5C5D71FF5D5D71FF5D5E72FF5D5E 73FF5D5F71FF5D5F71FF5D5F72FF5E6075FF5E5F74FF5F6074FF616276FF6262 79FF616277FF616278FF626378FF626478FF626378FF636478FF646479FF6465 79FF636479FF63657BFF64647DFF65647CFF65647AFF64657DFF66677FFF6467 7DFF62677CFF62667BFF64677CFF66687EFF65677CFF64657CFF64647EFF6466 7DFF65677DFF65667EFF65667FFF64687EFF62697FFF636882FF666984FF6769 84FF676785FF656884FF656A85FF666A85FF676882FF656983FF656981FF6468 80FF63677FFF62677CFF62667DFF62667FFF626780FF626680FF5F6178FF5153 67FF393948FF1C1D24FF0A0A0CFF020203FE000000F5000000D6000000990000 004B000000170000000100000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0001000000100000003E00000089000000CA000000F1010101FB050506FF1211 14FF26242BFF3A3944FF484755FF4F4C5CFF504D5EFF4F4E5FFF514F60FF524F 5EFF524F5FFF504F60FF504F60FF515162FF514F62FF535164FF545264FF5552 62FF535262FF565264FF565466FF555666FF565565FF555568FF555568FF5556 68FF565769FF56576AFF56576BFF57576AFF595869FF5B5868FF585969FF585A 6AFF5A5A69FF5A5B69FF5A5B6EFF5A5B71FF5A5B6FFF5B5C6DFF5C5D6FFF5C5C 6EFF5C5D6DFF5C5D6CFF5C5D6DFF5C5E6FFF5C5E70FF5D5E70FF5F5F73FF6060 76FF5F6074FF5F6074FF606174FF5F6274FF5E6274FF606073FF616274FF6163 75FF606275FF606377FF626379FF636278FF636277FF62647AFF63647AFF6165 7BFF606579FF606477FF616478FF636579FF646479FF63637AFF62637BFF6264 79FF636579FF63647AFF63637BFF62657AFF60657AFF61657BFF62667CFF6366 7CFF63657EFF62667FFF62677FFF62677FFF63657CFF63667FFF62677EFF6167 7DFF60657EFF5E657CFF5F647CFF5F647CFF5F647DFF60627BFF585A6EFF4445 54FF292A33FF101014FF050505FF010101FA000000E8000000BC000000750000 002F0000000A0000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000060000002500000064000000AB000000E0000000F7010102FE0A08 0BFF19181DFF2D2D35FF41414AFF4C4A57FF4E4D5DFF4D4E5EFF504D5CFF4F4D 5BFF4F4F5CFF4F4F5EFF504E5FFF4F4F5FFF514F5FFF514F60FF535163FF5653 65FF525160FF525261FF535262FF545363FF565363FF555467FF545466FF5554 66FF565567FF555567FF56576BFF56576BFF575769FF595868FF575867FF5758 68FF595968FF5B5968FF5A586CFF59596FFF595A6CFF5A5B69FF5C5D6DFF5B5C 6CFF5B5C6BFF5C5C6BFF5C5C6BFF5C5D6DFF5C5C6EFF5D5D6EFF5D5E70FF5D5F 72FF5D5E72FF5E5F72FF5E6071FF5D6070FF5C6172FF5E5F71FF5F6071FF5E60 71FF5F6072FF606174FF606275FF616174FF616075FF606378FF5F6277FF6163 78FF616378FF5F6276FF606277FF616176FF626378FF626479FF616379FF6262 78FF616479FF616478FF616378FF626479FF616277FF606276FF606275FF6062 76FF606277FF606378FF606378FF606277FF616276FF62627AFF606379FF5F64 7AFF5F647DFF5E637DFF60637BFF5F6279FF5E6177FF5D5C73FF4E4F61FF3435 40FF1A1A20FF07080AFF010101FE000000F3000000D3000000990000004F0000 0018000000030000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000001000000100000004000000086000000CA000000F1000100FC0404 05FF0F0D11FF211F25FF36343FFF464453FF4D4B5CFF4F4C5DFF514B5CFF534C 5DFF514C5CFF504C5DFF514D5FFF534E5FFF534F5FFF534E5FFF544E60FF5650 62FF545162FF525263FF525263FF545164FF575166FF585368FF575265FF5753 63FF575465FF565365FF565467FF555668FF545667FF565766FF585765FF5757 67FF575768FF575767FF575769FF56586CFF56596BFF585A69FF5A5A69FF595A 6BFF5A5A6CFF5B5B6CFF5B5C6DFF5C5C6EFF5F5A70FF5E5B6EFF5C5D6DFF5C5D 6FFF5C5C70FF5D5D70FF5C5D6FFF5B5D6FFF5D5F74FF5E5F74FF5D5E72FF5D5E 6FFF5E5F6FFF5E5F73FF5E5F72FF5E5F72FF5E5F74FF5F6075FF5F6076FF5F5F 75FF606076FF616177FF5F6176FF5F6075FF606174FF606274FF5F6075FF6061 78FF606078FF606077FF606176FF626377FF606277FF606176FF606174FF6061 73FF616176FF606176FF5F6174FF5F6074FF606176FF5F6074FF5F6174FF5F61 75FF5E6177FF5F6077FF606176FF606276FF5D5F73FF535467FF3F3F4EFF2323 2CFF0E0E11FF030304FF000000FA000000E8000000B8000000720000002E0000 0009000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000004000000230000005E000000A4000000DD000000F60100 01FF070608FF151318FF2B272FFF3D3946FF4B4657FF514B5FFF504A5FFF514A 5EFF524D5FFF524E60FF524D60FF514D5EFF514E5EFF524E5FFF524E60FF524F 60FF544F61FF555063FF555063FF554F62FF555163FF555165FF575264FF5853 64FF595364FF5A5364FF575566FF575666FF595565FF575364FF5A5564FF5856 65FF575667FF595669FF59596AFF585868FF585767FF595768FF59586AFF5A5B 6CFF5A5B6CFF5B5A6CFF5C5B6CFF5B5A6DFF5B5A6EFF5C5A6EFF5C5B6DFF5D5B 6CFF5B5B6CFF5C5D6DFF5D5D6DFF5C5D6DFF5C5D6FFF5C5D6DFF5D5E70FF5E5F 71FF5D5D6EFF5E5C71FF5E5E71FF5E5F71FF5E5F73FF5F5F75FF5F5F74FF605F 74FF5F5F75FF5E5F75FF5E5F73FF5F6073FF5F6073FF5E5F73FF5E5E74FF6060 76FF605E76FF605E75FF5F6075FF5F6175FF616076FF615F75FF606073FF6060 72FF605F75FF5F5F74FF606074FF616074FF5F6074FF5F6074FF5E6073FF5E5F 74FF5F5F77FF616077FF606075FF5E6071FF56596AFF46485AFF2D2D39FF1616 1BFF060608FF010101FE000000F3000000D0000000910000004B000000160000 0002000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000E0000003900000079000000BE000000EA0000 00FB030303FF0C0B0DFF1D1A21FF332E38FF453E4DFF4F485BFF504A60FF504A 5DFF514C5EFF524C60FF524C61FF504D5FFF524D5EFF524D5FFF524D61FF514E 62FF554E62FF574E60FF574F60FF565061FF565162FF545064FF565163FF5752 63FF565263FF595263FF565465FF575364FF5A5363FF595366FF5A5464FF5A55 66FF5A5668FF5A5669FF5A5868FF585767FF585767FF585768FF585869FF5B59 6BFF5A596CFF5A596CFF5C596BFF5C596CFF5A596EFF5B596DFF5C596CFF5C5B 6EFF5B5A6EFF5D5B6EFF5E5C6DFF5D5C6CFF5C5C6CFF5C5C6AFF5C5D6EFF5D5E 71FF5E5C70FF5E5C71FF5D5E70FF5C5F71FF5D5F73FF5E5E73FF5F5D70FF605D 71FF5F5E72FF5E5D71FF5E5E71FF5E5E70FF5E5E72FF5E5E74FF5E5E75FF5F5E 74FF605E73FF5F5E73FF5E5E74FF5F5F73FF615E74FF625E74FF615E72FF5F5E 73FF5E5F74FF5F5F73FF605F72FF605F71FF5F5F70FF605F73FF5F5E72FF5F5E 72FF5F5E73FF605F76FF605F76FF5A5B6FFF4D4E5EFF363845FE1D1D25FF0C0C 0FFF030303FF000000F8000000E5000000B00000006A0000002A000000070000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000030000001C0000005000000097000000D30000 00F2010101FD050506FF100F13FF252228FF3A3440FF494253FF4F495DFF514A 5BFF514A5EFF524B60FF534B60FF514C60FF534D60FF534C60FF524C61FF534D 63FF564E62FF574E5EFF564F5EFF565061FF575162FF554F62FF564F61FF5650 61FF545063FF565063FF555265FF565263FF585262FF595468FF585366FF5954 67FF5A5568FF5B5567FF5A5565FF585665FF585767FF585768FF575768FF5A57 6AFF5A576BFF5B576BFF5C576CFF5C586CFF5B586DFF5B586CFF5B586CFF5C59 6FFF5B5A70FF5D596FFF5D5A6EFF5C5B6DFF5C5B6CFF5D5B6DFF5C5C6EFF5C5B 6FFF5D5B71FF5E5D71FF5D5D6FFF5C5E70FF5C5E71FF5D5D71FF5F5C6FFF5F5D 6FFF5E5D70FF5E5D6FFF5E5E71FF5E5C70FF5E5D71FF5E5D73FF5D5D74FF5F5C 73FF5F5D71FF5E5D71FF5F5D72FF605E73FF5F5D73FF605D71FF605D71FF5E5D 72FF5E5E74FF5E5E73FF5E5D71FF5E5D6FFF5F5D6FFF5F5D71FF605C70FF5F5C 6FFF5E5C70FF5E5D73FF5E5B72FF535165FF3F3E4DFF25262EFE101014FF0505 06FF010101FC000000EE000000CA000000880000004400000013000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000A0000002C0000006A000000B00000 00E1000000F9010101FF070608FF171419FF2B2730FF3E3948FF4B4557FF5149 5AFF534A5EFF534A5FFF534B5DFF504B5EFF534C60FF524C61FF514C61FF534C 61FF564E5FFF554E5FFF554F61FF555061FF554F60FF564E5EFF574E5FFF574E 61FF554F64FF565065FF555065FF555265FF555365FF565466FF575368FF5753 67FF575365FF595365FF5A5463FF575463FF585565FF5A5567FF585568FF5858 6AFF5B5769FF5C566AFF5B566CFF5B576DFF5B576CFF5B586CFF5B586DFF5D57 6DFF5C596EFF5C576DFF5B586DFF5B5A6FFF5D5A6FFF5D5971FF5D596FFF5C59 6EFF5B596EFF5F5B71FF5E5B6FFF5C5B6FFF5C5C6FFF5C5C6FFF5E5C70FF5D5C 6EFF5D5C6EFF5E5C6FFF5F5C71FF5D5B72FF5E5B71FF5E5C71FF5C5B71FF5F5D 73FF5E5B70FF5E5C6FFF5F5D70FF5F5D74FF5E5D72FF5D5C6EFF5E5C6DFF605C 70FF5D5C73FF5C5B72FF5C5B71FF5C5B70FF5F5C71FF5C5A70FF5E5A6EFF5E5B 6FFF5D5B70FF5C5B6FFF575265FF474251FF2E2C36FF151419FF070709FF0101 01FE000000F6000000DC000000A30000005C0000002400000005000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000002000000130000003F000000870000 00C6000000EC000000FB030203FF0B090DFF1C181FFF302B37FF413B4FFF4D46 57FF50495BFF50495BFF4F485AFF504A5CFF504B5EFF504B60FF514B62FF524C 62FF534A5DFF544C5DFF544C60FF534C61FF544C5EFF534D5DFF564E5FFF584E 62FF574E62FF555062FF544F63FF535065FF535165FF545163FF565064FF5750 63FF575163FF565364FF565162FF575363FF575464FF585365FF585167FF5854 67FF585466FF585466FF575467FF575568FF5A5769FF59576AFF58566AFF5A55 69FF58576AFF5A5668FF5B5766FF5A5766FF5A566AFF5C576BFF5B586DFF5A59 6FFF5B596FFF5D566EFF5D576EFF5D586DFF5C596DFF5D596DFF5A586CFF5859 6AFF59596AFF5C596CFF5D596BFF5D596FFF5E5A6FFF5E5B6EFF5C5B6DFF5D5A 6DFF5D5B6FFF5D5B6EFF5D5A6BFF5D596EFF5F5B6EFF5E5B6FFF5C5B6FFF5C5A 6FFF5D5A71FF5B5970FF5A5A6FFF5B5B6FFF5C5B6FFF5C5B6FFF5D5B6EFF5D5B 70FF5C5971FF565569FF494757FF34313CFF1C1A20FF09080BFF020203FE0000 00F8000000E5000000BD00000078000000360000000E00000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000600000020000000590000 009C000000D4000000F4000000FE050405FF0E0D10FF1E1C22FF322D3AFF433D 4BFF4B4555FF4C4859FF4B4A5AFF4C495BFF4D4A5BFF4E485BFF50485CFF524A 5EFF52495CFF504A5AFF504B5BFF514A5CFF514A5BFF544B5CFF564C5CFF564C 5DFF564D5EFF544D5EFF524E5FFF524E60FF534E60FF544F61FF544F61FF5550 61FF555061FF535062FF545061FF545260FF555261FF565163FF575165FF5652 65FF565266FF565266FF565365FF555465FF575467FF575468FF565467FF5754 68FF565568FF575567FF585566FF595565FF5A5567FF5C5567FF595567FF5756 68FF57566BFF59576BFF59566AFF5A5669FF5B5768FF5B5868FF5A5868FF5858 67FF58586AFF5B596DFF5C586AFF5C566AFF5D576AFF5C596BFF59586AFF5B58 69FF5B5869FF5A596AFF5A586BFF5B576BFF5C586DFF5C596DFF5B596CFF5959 6CFF5B576CFF5A586CFF59586CFF59586CFF59586CFF58586BFF59596AFF5A58 6AFF575368FF4A4859FF363542FF201F26FF0E0D10FF040405FF000001FD0000 00EF000000CA0000008F0000004B000000190000000300000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000010000000C000000300000 006D000000AF000000E1000000F6010101FE060506FF100F11FF211E25FF352F 3BFF433E4CFF494656FF4B4959FF4C4859FF4C4858FF4E4757FF504758FF5048 59FF50495BFF4E4959FF4E4A59FF504A5AFF50495AFF534A5AFF544B5BFF544B 5CFF544B5CFF534B5CFF524D5CFF524D5CFF534C5DFF544D5FFF544E60FF544F 5FFF544F5FFF534F5FFF554F5FFF545060FF545060FF565061FF575062FF5551 65FF555165FF565164FF555363FF545363FF565365FF555265FF555366FF5653 67FF575368FF575467FF585467FF595366FF595565FF595467FF585366FF5753 65FF575466FF565668FF565667FF575566FF595566FF5B5668FF5A5768FF5A57 67FF595768FF59576AFF5A5768FF5B5669FF5B566AFF5A566AFF585669FF5B56 6AFF595669FF58576AFF59576CFF5A576CFF5A576CFF5A586BFF5A576AFF5957 6AFF5B5669FF59576BFF59576CFF59576BFF59566BFF58576AFF5A5768FF5753 63FF4C4859FF393744FF23232BFF101014FF050405FF010102FD000000F50000 00D9000000A40000006000000025000000080000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000002000000130000 004100000080000000BE000000E5000000F8010102FF070608FF131014FF2520 29FF37323FFF433F4EFF4A4455FF4E4556FF4D4656FF4F4757FF504757FF4F47 56FF4F4959FF4D4858FF4E4958FF4F4B5AFF50495AFF514959FF524A5BFF524B 5DFF514A5CFF524B5DFF504C5BFF504C5CFF524B5EFF534B5EFF534C5FFF534D 5FFF544D5EFF554E5EFF564D5FFF554E60FF554F60FF564F5FFF554F5FFF5351 64FF565064FF565062FF545260FF545362FF565262FF545264FF545265FF5652 66FF585267FF595367FF595266FF595265FF585363FF575368FF575367FF5853 65FF575364FF565365FF575566FF575566FF585467FF5A556AFF5A556AFF5A56 67FF585565FF575466FF585566FF5A5669FF59566AFF595569FF595568FF5C55 6CFF59566CFF58566BFF59566CFF5B576CFF59576BFF585669FF595669FF5A55 69FF5A5568FF58566AFF58566CFF59566BFF5B556AFF5A566AFF585265FF4F49 59FF3C3946FF26242DFF131317FF070708FF010101FD000000F7000000E20000 00B300000074000000360000000C000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000030000 001D0000004D0000008C000000C9000000EC010001FA030203FE080709FF1512 17FF27222AFF37323EFF443D4EFF4C4354FF4E4455FF4E4557FF4E4658FF4E47 56FF4E4756FF4E4655FF4E4757FF4F485AFF4E4759FF514858FF50495AFF4F4A 5CFF4F495DFF4F4A5CFF4C4A5AFF4E4A5DFF514A60FF534B5DFF504C5CFF524D 5DFF544D5EFF554C5EFF554B5EFF524B5FFF544C5FFF544E5EFF524F5EFF514E 60FF534F62FF544F62FF54505FFF555160FF564F60FF555163FF555163FF554F 5FFF565065FF585166FF575163FF565060FF575162FF575164FF585164FF5852 64FF555364FF575265FF565365FF575465FF595466FF575367FF575469FF5653 66FF565465FF565667FF585569FF575366FF575366FF585466FF595465FF5A53 68FF595469FF58556AFF575469FF595468FF595467FF585467FF585468FF5854 6AFF555364FF565467FF585468FF585368FF575367FF545163FF4D4959FF3E3A 48FF292631FF141318FF080709FF020203FD000100F7000000E9000000C20000 0081000000420000001500000002000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0008000000250000005700000098000000CD000000EF000000FD020202FF0A09 0BFF161418FF25222BFF36313EFF453C4BFF4C4150FF4D4454FF4C4455FF4D44 53FF4F4655FF4F4655FF4D4656FF4D4658FF4E475BFF4E4859FF4E4757FF4E47 58FF4F485AFF51495CFF50495BFF504A5CFF524A5CFF52495AFF504959FF514B 5BFF514B5CFF524B5CFF534D5DFF514B5CFF514C5DFF514D5FFF504D61FF524F 5FFF544D5EFF554C5EFF564D5EFF564E5EFF554E5FFF554F60FF555060FF5550 5FFF565065FF555164FF555063FF554F64FF564F65FF575062FF57505FFF5650 60FF565164FF575064FF575166FF575265FF565263FF555263FF535465FF5354 64FF555363FF565364FF555366FF565265FF585264FF595264FF565363FF5752 64FF575264FF575365FF565466FF585366FF585366FF595267FF585366FF5653 63FF545564FF545264FF565265FF585364FF555061FF4C4856FF3D3945FF2926 30FF151419FF09090BFF030203FF000000FB000000EB000000C80000008E0000 004E0000001D0000000400000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000C0000002B00000062000000A1000000D4000000F2000000FA0302 04FE09080AFF151318FF25222BFF36313DFF433B48FF4A4151FF4C4455FF4B44 54FF4D4554FF4D4554FF4D4555FF4C4558FF4D465AFF4D4759FF4E4656FF5046 56FF504859FF50475AFF4F4859FF514959FF514858FF504857FF504859FF514A 5AFF514B5AFF504B5BFF514B5EFF504C5DFF504C5DFF504C5DFF504B5EFF524B 5CFF534C5CFF534B5CFF534B5CFF534C60FF514D5FFF524E60FF534F5FFF554E 5EFF554E60FF544F60FF544F61FF544F62FF544F61FF554F60FF564F5EFF564F 60FF554F63FF564F61FF554E65FF554F65FF555063FF545161FF535465FF5252 63FF545161FF565262FF535163FF555163FF575162FF575161FF555161FF5451 63FF565165FF575165FF565163FF545264FF565064FF585064FF585163FF5751 61FF555364FF555265FF555163FF524F5FFF494655FF3A3843FF28262EFF1715 1AFF09090AFF030204FF010001FA000000ED000000CE00000098000000580000 0025000000080000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000010000000E000000320000006C000000A8000000D7000000F00100 00FC030203FF09080BFF151318FF25212AFF35303BFF423B4AFF4A4153FF4B44 54FF4B4553FF4C4454FF4D4456FF4E4557FF4E4457FF4D4557FF4F4657FF5047 56FF4F4757FF504657FF4F4756FF504757FF504657FF4E4756FF4F4859FF504A 59FF504A58FF504A5AFF51495EFF504B5DFF504C5CFF514B5BFF524B5BFF5249 5AFF534B5CFF514B5BFF504A5BFF504C60FF4F4D5EFF504E5FFF524E5FFF534C 5CFF534B5BFF534C5CFF534E5FFF544F60FF524E5DFF534F60FF564E5FFF564E 60FF554E62FF554E5FFF544D62FF544E63FF544E62FF534F61FF545164FF5350 62FF524F61FF535162FF525063FF544F63FF555061FF555160FF544F60FF5451 64FF565166FF565064FF554F61FF525161FF554F62FF564F63FF575063FF5850 61FF575064FF565063FF524D5EFF484454FF393642FF26242DFF151418FF0909 0AFF030303FE000000FC000000EE000000CF0000009F000000610000002B0000 000B000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000002000000110000003800000070000000AC000000DD0000 00F4010101FC030303FF09070AFF141117FF252028FF352E3AFF413948FF4840 4FFF4A4353FF4B4355FF4D4457FF4E4456FF4F4254FF4E4355FF4E4657FF4D47 57FF4C4656FF504556FF504656FF504657FF4F4658FF4E4657FF4F4858FF4F48 57FF4F4958FF4F4959FF52495BFF504A5CFF504A5AFF514A59FF534A5BFF534A 5BFF534A5CFF524B5BFF514B5BFF4F4C5DFF4F4D5BFF514E5DFF534D5DFF524C 5AFF534B5BFF534C5CFF534D5FFF534E60FF524D5DFF534E61FF564D60FF574D 60FF564E61FF554D5FFF554E5EFF544D5EFF544D5FFF544D60FF544E61FF534E 61FF514F61FF504F62FF524F64FF544E63FF554E62FF544F60FF534F60FF5551 65FF555064FF554F61FF554E60FF545060FF554F61FF554F64FF554F64FF574F 61FF564E62FF514A5DFF474151FF393240FF27222AFF151216FF080709FF0202 02FE000000FA000000F0000000D5000000A2000000650000002F0000000D0000 0001000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000002000000150000003C00000074000000B00000 00DA000000F4000000FE020202FF080709FF131015FF211D25FF302A36FF3D36 45FF443D51FF4A4154FF4D4455FF4D4454FF4B4352FF494555FF494553FF4A44 53FF4C4555FF4C4456FF4D4656FF4D4657FF4D4557FF4E4656FF514758FF5146 58FF504658FF4F4858FF4E4757FF50495AFF504959FF504958FF524758FF5249 5AFF54485BFF53485CFF52495CFF524B5AFF504B5CFF514B5CFF524B5CFF514C 5BFF554D5CFF544D5FFF524C5FFF514B5DFF514C5CFF514B60FF544A61FF554A 5FFF544C5BFF564E5CFF534C5DFF534C5FFF554E60FF534E5DFF534E60FF554D 62FF544D64FF524E64FF544F61FF554F60FF544F60FF535060FF525161FF564E 60FF534C5DFF534C5EFF554D60FF514D5EFF544E5FFF564E60FF544E60FF524B 5DFF51475BFF453D4EFF342F3CFF221E27FF100F12FF070709FF030303FF0000 00FB000000EF000000D4000000A3000000680000003300000010000000020000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000004000000170000003D000000730000 00AE000000DA000000F2000000FB020202FF070608FF100E12FF1D1920FF2D25 31FF3A3140FF443A4AFF494050FF4A4152FF4B4355FF4A4354FF494352FF4B43 53FF4D4355FF4C4356FF4D4556FF4E4657FF4D4658FF4C4555FF4E4556FF5046 57FF4F4757FF4E4856FF514859FF4E4758FF4D4758FF4E4758FF514658FF5148 58FF514858FF51485AFF51495BFF4F4958FF51495AFF50495DFF50495DFF504A 5CFF514A59FF4F4B5BFF4E4C5BFF4F4B5AFF524A5AFF53495BFF53495CFF5349 5BFF544A5AFF544B5AFF544A5CFF524B5DFF514C5DFF514D5EFF514D5EFF534C 5EFF544B5FFF544B60FF534C5EFF524C5DFF524D5DFF524D5FFF514D60FF544C 5DFF544C5DFF544C5EFF544C5EFF524D60FF534D5FFF534C5DFF4F4959FF4943 52FF3F3845FF2F2A34FF1E1B22FF100E12FF060506FF010102FF000000F90000 00EC000000D2000000A100000067000000340000001100000002000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000004000000160000003B0000 0073000000AA000000D5000000EF000000FB020202FE060507FF0D0B0EFF1915 1BFF28212BFF352E3AFF3E3745FF453D4CFF494153FF494052FF4A4152FF4B43 53FF4C4353FF4C4253FF4D4454FF4D4555FF4D4455FF4B4354FF4D4455FF4E45 55FF4E4655FF4D4555FF4F4659FF4C4657FF4C4657FF4E4658FF504657FF4F47 56FF4D4655FF4D4757FF4E4859FF4C4756FF50495AFF51485BFF50485BFF5049 5AFF504857FF4F4A59FF4E4A5AFF4F4A59FF524859FF524959FF514959FF524A 5AFF534A5AFF52485AFF54495DFF52495CFF504A5BFF4F4B5CFF504B5CFF4F4A 5CFF514A5DFF534A5EFF534A5BFF524A59FF514A5BFF524A5EFF534A5FFF524C 5BFF514A5CFF524A5DFF524B5EFF504B5EFF50495CFF4B4556FF433E4CFF3732 3EFF28242CFF19161BFF0C0B0EFF040405FF010101FD000000F9000000EA0000 00CC0000009D0000006400000032000000110000000100000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000003000000140000 003A0000006D000000A4000000D3000000EC000001F8010101FE040304FF0A09 0AFF141116FF201E25FF2D2A33FF3A333FFF423A48FF453D4DFF474050FF4841 51FF494150FF4A4050FF4B4151FF4B4251FF4B4251FF4A4152FF4B4252FF4A43 52FF4B4352FF4B4353FF4B4355FF4A4454FF4B4555FF4D4556FF4E4455FF4D44 53FF4B4553FF4B4653FF4C4655FF4B4756FF4E4758FF504758FF4F4757FF4D47 57FF4E4755FF4F4856FF4F4858FF4F4858FF504858FF4E4858FF4E4858FF4F49 58FF504959FF50465AFF51475CFF51485AFF504858FF4F4959FF4F4859FF4D49 5AFF4D495CFF50495DFF524A5AFF524958FF514959FF52495BFF544A5DFF514A 5AFF4F4859FF4E485BFF4C4A5BFF4B4557FF464051FF3D3846FF302C37FF211E 26FF131115FF09080AFF030303FF000000FD000000F6000000E7000000C90000 00990000005F0000002F0000000F000000010000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000020000 001200000034000000660000009C000000C9000000E7000000F7010001FD0302 03FF060506FF0E0D10FF19171CFF27212AFF332B36FF3C3744FF413B4BFF443D 4CFF463E4DFF493C4DFF473E4EFF47404FFF49414FFF48404EFF47414FFF4641 4EFF47414FFF494250FF4B4251FF494150FF4A4251FF4B4352FF4C4251FF4C43 51FF4B4452FF4B4452FF4B4352FF4B4655FF4A4355FF4B4454FF4B4554FF4944 54FF4A4454FF4A4452FF4C4453FF4E4454FF4C4655FF494554FF4B4554FF4C46 54FF4B4755FF4C4557FF4D4657FF4D4656FF4D4657FF4E485AFF4D4657FF4D48 58FF4C485AFF4C475AFF4F4859FF4E4757FF504859FF51495AFF4F4858FF4F47 57FF504857FF4B4754FF43424FFF3F3A48FF352F3DFF28242DFF1A181DFF0F0D 10FF050406FF020103FF010001FC000000F4000000E5000000C1000000900000 005A0000002B0000000D00000001000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0003000000100000002E0000005A0000008E000000BE000000DF000000F30000 00FD010101FE050505FF0B0A0CFF141116FF201C22FF2B2630FF34303BFF3D37 43FF453B49FF473B49FF483E4FFF494051FF494050FF463F50FF474152FF4A40 51FF49404FFF47414FFF49414FFF484150FF494251FF4B4251FF4B4252FF4A42 51FF49434FFF494451FF4A4454FF494353FF474455FF474353FF494352FF4B44 54FF4B4454FF4C4554FF4D4655FF4D4556FF4B4555FF494553FF4C4656FF4D47 58FF4B4555FF4C4456FF4D4456FF4D4455FF4D4454FF4D4655FF4B4756FF4C48 5AFF4D485AFF4E4658FF4E4555FF4D4658FF4E4759FF504858FF4F4856FF4E45 54FF48414FFF403C48FF37333FFF2B2730FF1F1B22FF131115FF0A090BFF0504 05FF020102FE000000FB000000F0000000D9000000B6000000820000004F0000 00250000000B0000000100000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000010000000D000000260000004D0000007D000000AC000000D40000 00ED000000F6000101FE030303FF080708FF0E0D10FF171519FF221E25FF2D27 31FF38303BFF3F3644FF433B4AFF473E4DFF483E4FFF473E50FF4A4051FF4A40 50FF494050FF484150FF49414FFF4A4251FF4B4252FF4C4252FF4B4252FF4941 52FF4A4252FF4A4353FF4A4353FF4B4153FF4A4354FF4A4454FF4C4453FF4D43 53FF4C4453FF4C4453FF4C4554FF4C4555FF4D4454FF4D4353FF4E4457FF4E45 58FF4C4555FF4D4656FF4C4454FF4C4353FF4D4353FF4E4454FF4C4757FF4C46 59FF4D4558FF4E4657FF4F4555FF4E4558FF4D4558FF4B4454FF48414FFF443B 4AFF39343FFF2D2A33FF211E26FF161318FF0D0B0EFF070607FF030203FF0100 01FE000000F5000000E8000000CC000000A300000073000000430000001F0000 0009000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000080000001C0000003E0000006C0000009C0000 00C5000000E1000000F4000000FC010201FE030304FF080809FF100E11FF1915 1BFF241F27FF2E2933FF36303BFF3D3441FF423847FF443B4BFF473E4DFF4840 4FFF49404FFF484050FF483F4FFF4A4151FF4B4152FF4B4151FF4B4251FF4940 52FF4A4253FF4A4252FF494251FF4A4252FF4B4252FF4C4353FF4C4352FF4B43 51FF4B4352FF4B4352FF4B4352FF4C4353FF4D4352FF4D4252FF4D4255FF4D43 55FF4D4452FF4D4654FF4C4454FF4C4453FF4D4453FF4C4454FF4C4657FF4C45 57FF4D4456FF4C4455FF4C4353FF4A4152FF453E4EFF3F3947FF38333FFF3029 34FF242028FF18161CFF0E0D10FF080608FF030203FF010101FE000000FA0000 00F1000000DC000000BB00000091000000620000003500000016000000050000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000030000001300000030000000580000 0087000000B6000000D6000000EA000000F6000000FD020102FE040305FF0907 09FF100D11FF19151AFF221D24FF2B252DFF322C36FF39313EFF3D3745FF423B 4AFF463D4CFF473D4DFF453D4DFF483F50FF494050FF494050FF4A4150FF4840 51FF49404FFF49414FFF48414FFF474351FF4A4151FF4B4150FF494250FF4743 50FF484251FF494251FF4B4051FF4C3F51FF4B4250FF494151FF494152FF4A42 51FF4C4250FF4B4352FF4C4455FF4D4454FF4C4353FF484353FF4A4353FF4B42 52FF494150FF463E4EFF433A4AFF3D3644FF342F3BFF2B2730FF222026FF1815 1AFF100D12FF08070AFF030303FF020102FD000000FC000000F4000000E50000 00CE000000AB0000007B0000004D000000280000000D00000002000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000010000000B000000210000 0044000000700000009B000000C2000000E1000000F0000000F7010101FD0202 02FF050405FF080709FF0E0D0FFF161317FF1E1920FF252029FF2D2732FF342D 39FF3A323FFF403644FF413947FF443C4AFF473E4CFF493E4EFF493D4EFF4940 51FF49404FFF48404FFF484050FF4B404FFF4A3E4EFF483E4EFF48404FFF4941 51FF4A4152FF4A4052FF4B3F51FF4C3F50FF494151FF4A404FFF483F4FFF4840 4FFF4A4150FF4B4251FF4B4155FF4B3F53FF4A3E50FF463F4FFF463D4BFF4239 48FF3C3443FF372F3CFF2F2833FF26212AFF1C1A20FF131217FF0D0B0EFF0706 08FF040405FF020202FF000000FD000000F7000000EB000000D7000000B80000 008D000000630000003A0000001A000000060000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000060000 001500000031000000550000007F000000A7000000C7000000E1000000F00000 00F8010001FD020202FF040304FF070608FF0C0A0CFF120F12FF171419FF1E19 20FF261F27FF2C252EFF302B35FF362F3BFF3B323FFF3E3442FF413643FF4239 47FF423B4AFF423C4CFF423E4DFF453D4BFF473F4CFF473E4CFF483D4DFF483E 4FFF473E4FFF483F4FFF483F4FFF483F50FF494052FF4A3E4EFF473E4DFF453F 4DFF463F4DFF473E4BFF443B4AFF413849FF3D3545FF39313FFF352E38FF2D27 31FF25212AFF1E1B22FF171419FF110E12FF0B0A0CFF060607FF040305FF0101 02FF000001FC000000F6000000EC000000DD000000BE00000099000000700000 0048000000270000001000000004000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00020000000C0000001F0000003C0000006000000084000000AA000000C70000 00DE000000F0000000F7000000FC010101FE020202FF050405FF080608FF0C0A 0DFF110E12FF161218FF1A181DFF211C23FF262028FF2B232DFF2F2731FF322B 35FF342E3AFF36303DFF37323FFF38333EFF39333EFF3A333EFF3B333FFF3D34 42FF3E3644FF403845FF403845FF3E3845FF3E3746FF3E3543FF3D3541FF3A34 40FF39323EFF37303AFF322B36FF2E2733FF29232EFF231F26FF1E1A20FF1714 19FF100F13FF0C0B0EFF070708FF050405FF020202FF010101FE000001FC0000 00F5000000EC000000DA000000C0000000A10000007A00000053000000310000 0017000000070000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000030000000F000000230000003F00000062000000860000 00A9000000C8000000D9000000EB000000F4000000F8000001FB010001FE0202 03FF040305FF070507FF0A080AFF0D0B0EFF110E12FF151116FF19151BFF1D18 1FFF201C23FF231E27FF252028FF252027FF231F26FF231E26FF251F28FF2722 2BFF2B262FFF2F2833FF2F2933FF2D2831FF2B2730FF2A252EFF29232DFF2721 2BFF241E27FF201C22FF1B181EFF181419FF141015FF0E0D10FF0B090BFF0706 07FF040404FF020202FF010100FE000000FB000000F7000000F1000000E80000 00D4000000BF000000A20000007D00000058000000360000001C0000000A0000 0001000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000030000000E000000220000003D0000 005F00000082000000A1000000BF000000D3000000E1000000ED000000F30001 00F9010101FC010101FE020202FF030203FF040305FF060507FF070608FF0907 0AFF0C0A0DFF0F0C0FFF0F0D10FF0E0C0EFF0D0B0DFF0B090CFF0B090DFF100D 11FF141115FF161419FF17141AFF171319FF161318FF141115FF120F14FF100E 12FF0D0B0FFF0B0A0CFF090809FF070607FF050405FF030204FF030203FF0101 01FD000000FB000000F9000000F2000000EB000000DE000000CD000000B80000 00970000007700000056000000370000001D0000000B00000002000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000100000005000000100000 00200000003800000054000000710000008C000000A7000000C1000000D20000 00E2000000ED000000F3000000F9000000FC010101FD010102FE010102FE0201 02FE030203FE040304FF040304FF030203FF020202FF010101FF010102FF0302 04FF050406FF060608FF070608FF070607FF070608FF050505FF050405FF0403 04FF020203FE030203FD020202FE020202FE010101FC000000FB000000F80000 00F2000000EC000000E2000000D0000000BC000000A100000084000000670000 004A000000310000001C0000000C000000040000000100000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000010000 00050000000E0000001B0000002D000000430000005B000000750000008D0000 00A6000000B9000000C8000000D7000000E1000000EA000000F1000000F50000 00F9000000FA000000FB000000FD000000FF000000FF000000FF000000FF0000 00FF000000FF010101FD010101FE010101FF010101FC000000FF000000FD0000 00FB000000FB000000F8000000F5000000F1000000EB000000E3000000DA0000 00CA000000B8000000A4000000890000006F000000540000003B000000270000 00170000000B0000000400000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000200000008000000110000001E00000030000000440000 005A0000006F0000008200000095000000A5000000B5000000C4000000CE0000 00D8000000DE000000E3000000EA000000F3000000F9000000FD000000FD0000 00F9000000F7000000F1000000F0000000F1000000EB000000ED000000E90000 00E4000000E0000000DA000000D0000000C6000000B9000000A90000009A0000 00850000006E00000058000000410000002C0000001B0000000E000000050000 0001000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000100000007000000110000 001B00000028000000380000004700000057000000690000007A000000890000 0097000000A2000000AC000000B9000000CA000000DA000000E4000000E40000 00DB000000D4000000CB000000C8000000C6000000C1000000BD000000B70000 00AE000000A50000009B0000008C0000007E0000006E0000005C0000004C0000 003A000000290000001B0000000F000000060000000100000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0002000000060000000B0000001000000019000000220000002D000000390000 00440000004D00000057000000650000007A0000008F0000009D0000009F0000 0094000000890000007E0000007900000076000000710000006B000000630000 005A00000051000000460000003B00000030000000250000001B000000120000 000B000000060000000300000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000001000000010000000300000005000000080000000B0000 001000000014000000190000001F0000002A0000003800000041000000420000 003D00000034000000310000002F0000002D0000002A00000025000000200000 001B00000017000000120000000D000000090000000600000003000000020000 0001000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000010000000100000003000000060000000A0000000C0000000D0000 000C000000090000000800000008000000080000000700000005000000030000 0002000000010000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000 } OnCreate = FormCreate OnShow = FormShow Position = poScreenCenter LCLVersion = '2.2.0.4' object Vmonitor: TToggleBox AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 2 Height = 25 Top = 2 Width = 110 BorderSpacing.Left = 2 BorderSpacing.Top = 2 Caption = 'Monitor' OnChange = VmonitorChange TabOrder = 0 end object VSampleGroupBox: TGroupBox Left = 2 Height = 99 Top = 145 Width = 110 Caption = 'Sample' ClientHeight = 76 ClientWidth = 106 TabOrder = 1 object SampleTempButton: TButton Left = 4 Height = 25 Top = 1 Width = 96 Caption = 'Temeperature' OnClick = SampleTempButtonClick TabOrder = 0 end object SampleMagButton: TButton Left = 4 Height = 25 Top = 27 Width = 96 Caption = 'Magnetics' OnClick = SampleMagButtonClick TabOrder = 1 end object SampleAccelButton: TButton Left = 4 Height = 25 Top = 53 Width = 96 Caption = 'Accelerations' OnClick = SampleAccelButtonClick TabOrder = 2 end end object OpenGLVersion: TLabeledEdit AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 115 Height = 31 Top = 588 Width = 293 Anchors = [akLeft, akBottom] EditLabel.Height = 21 EditLabel.Width = 116 EditLabel.Caption = 'OpenGL Version:' LabelPosition = lpLeft TabOrder = 2 end object SmoothedCheckBox: TCheckBox Left = 2 Height = 23 Top = 31 Width = 95 Caption = 'Smoothed' Checked = True State = cbChecked TabOrder = 3 end object DeadbandSpinEdit: TSpinEdit Left = 16 Height = 31 Hint = 'Deadband' Top = 108 Width = 74 MaxValue = 1000 TabOrder = 4 Value = 100 end object VectorPageControl: TPageControl Left = 115 Height = 585 Top = 0 Width = 1159 ActivePage = TabSheet2 TabIndex = 1 TabOrder = 5 OnChange = VectorPageControlChange object TabSheet1: TTabSheet Caption = 'Overview' ClientHeight = 550 ClientWidth = 1155 object BubbleOpenGLControl: TOpenGLControl AnchorSideLeft.Control = AltAzOpenGLControl AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = LevelLabel AnchorSideTop.Side = asrBottom Left = 362 Height = 354 Top = 25 Width = 354 AutoResizeViewport = True BorderSpacing.Left = 4 BorderSpacing.Top = 2 MultiSampling = 4 AlphaBits = 8 OnPaint = BubbleOpenGLControlPaint Visible = False end object LevelLabel: TLabel AnchorSideLeft.Control = BubbleOpenGLControl AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = TabSheet1 AnchorSideBottom.Control = BubbleOpenGLControl Left = 500 Height = 21 Top = 2 Width = 78 BorderSpacing.Top = 2 Caption = 'Zenith level' end object AltAzOpenGLControl: TOpenGLControl AnchorSideLeft.Control = TabSheet1 AnchorSideTop.Control = AltAzLabel AnchorSideTop.Side = asrBottom Left = 4 Height = 354 Top = 25 Width = 354 AutoResizeViewport = True BorderSpacing.Left = 4 BorderSpacing.Top = 2 MultiSampling = 4 AlphaBits = 8 OnPaint = AltAzOpenGLControlPaint Visible = False end object AltAzLabel: TLabel AnchorSideLeft.Control = AltAzOpenGLControl AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = TabSheet1 AnchorSideBottom.Control = AltAzOpenGLControl Left = 122 Height = 21 Top = 2 Width = 118 BorderSpacing.Top = 2 Caption = 'Altitude, Azimuth' end object Valtitude: TLabeledEdit AnchorSideTop.Control = AltAzOpenGLControl AnchorSideTop.Side = asrBottom AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Vazimuth Left = 76 Height = 77 Top = 383 Width = 206 Anchors = [akTop] BorderSpacing.Top = 2 BorderSpacing.Around = 2 EditLabel.Height = 21 EditLabel.Width = 53 EditLabel.Caption = 'Altitude' Font.Height = -48 LabelPosition = lpLeft ParentFont = False TabOrder = 2 end object Vazimuth: TLabeledEdit AnchorSideTop.Control = Valtitude AnchorSideTop.Side = asrBottom AnchorSideRight.Side = asrBottom AnchorSideBottom.Side = asrBottom Left = 76 Height = 77 Top = 464 Width = 206 Anchors = [akTop] BorderSpacing.Top = 2 BorderSpacing.Around = 2 EditLabel.Height = 21 EditLabel.Width = 57 EditLabel.Caption = 'Azimuth' Font.Height = -48 LabelPosition = lpLeft ParentFont = False TabOrder = 3 end object InitialErrorLabel: TLabel Left = 44 Height = 13 Top = 460 Width = 620 AutoSize = False end end object TabSheet2: TTabSheet Caption = 'Accelerometer' ClientHeight = 550 ClientWidth = 1155 object SetP5Button: TButton AnchorSideLeft.Control = SetP6Button AnchorSideTop.Control = SetP4Button AnchorSideTop.Side = asrBottom AnchorSideRight.Control = WStringGrid AnchorSideBottom.Control = SetP6Button Left = 481 Height = 21 Top = 167 Width = 60 Anchors = [akLeft, akBottom] BorderSpacing.Top = 2 BorderSpacing.Bottom = 7 Caption = 'Set P5' OnClick = SetP5ButtonClick TabOrder = 0 end object SetP6Button: TButton AnchorSideLeft.Control = YStringGrid AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SetP5Button AnchorSideTop.Side = asrBottom AnchorSideRight.Control = WStringGrid AnchorSideBottom.Control = WStringGrid AnchorSideBottom.Side = asrBottom Left = 481 Height = 21 Top = 195 Width = 60 Anchors = [akLeft, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 2 BorderSpacing.Bottom = 9 Caption = 'Set P6' OnClick = SetP6ButtonClick TabOrder = 1 end object SetP3Button: TButton AnchorSideLeft.Control = SetP4Button AnchorSideTop.Control = SetP2Button AnchorSideTop.Side = asrBottom AnchorSideRight.Control = WStringGrid AnchorSideBottom.Control = SetP4Button Left = 481 Height = 21 Top = 111 Width = 60 Anchors = [akLeft, akBottom] BorderSpacing.Top = 2 BorderSpacing.Bottom = 7 Caption = 'Set P3' OnClick = SetP3ButtonClick TabOrder = 2 end object SetP1Button: TButton AnchorSideLeft.Control = SetP2Button AnchorSideTop.Control = WStringGrid AnchorSideRight.Control = WStringGrid AnchorSideBottom.Control = SetP2Button Left = 481 Height = 21 Top = 55 Width = 60 Anchors = [akLeft, akBottom] BorderSpacing.Top = 2 BorderSpacing.Bottom = 7 Caption = 'Set P1' OnClick = SetP1ButtonClick TabOrder = 3 end object SetP4Button: TButton AnchorSideLeft.Control = SetP5Button AnchorSideTop.Control = SetP3Button AnchorSideTop.Side = asrBottom AnchorSideRight.Control = WStringGrid AnchorSideBottom.Control = SetP5Button Left = 481 Height = 21 Top = 139 Width = 60 Anchors = [akLeft, akBottom] BorderSpacing.Top = 2 BorderSpacing.Bottom = 7 Caption = 'Set P4' OnClick = SetP4ButtonClick TabOrder = 4 end object SetP2Button: TButton AnchorSideLeft.Control = SetP3Button AnchorSideTop.Control = SetP1Button AnchorSideTop.Side = asrBottom AnchorSideRight.Control = WStringGrid AnchorSideBottom.Control = SetP3Button Left = 481 Height = 21 Top = 83 Width = 60 Anchors = [akLeft, akBottom] BorderSpacing.Top = 2 BorderSpacing.Bottom = 7 Caption = 'Set P2' OnClick = SetP2ButtonClick TabOrder = 5 end object YStringGrid: TStringGrid AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = YmatrixLabel AnchorSideTop.Side = asrBottom AnchorSideRight.Control = SetP1Button AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 215 Height = 201 Top = 25 Width = 256 BorderSpacing.Right = 5 BorderSpacing.Bottom = 2 ColCount = 4 RowCount = 7 ScrollBars = ssNone TabOrder = 6 end object WStringGrid: TStringGrid AnchorSideLeft.Control = SetP6Button AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = WmatrixLabel AnchorSideTop.Side = asrBottom AnchorSideRight.Control = XStringGrid AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 543 Height = 202 Top = 23 Width = 322 BorderSpacing.Around = 2 RowCount = 7 ScrollBars = ssNone TabOrder = 7 end object XStringGrid: TStringGrid AnchorSideLeft.Control = WStringGrid AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = XmatrixLabel AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 869 Height = 139 Top = 23 Width = 259 BorderSpacing.Left = 4 BorderSpacing.Top = 2 BorderSpacing.Right = 2 ColCount = 4 ScrollBars = ssNone TabOrder = 8 end object AStringGrid: TStringGrid AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label4 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = SetP1Button AnchorSideBottom.Control = YmatrixLabel Left = 215 Height = 89 Top = 266 Width = 258 BorderSpacing.Right = 5 BorderSpacing.Bottom = 7 ColCount = 4 RowCount = 3 ScrollBars = ssNone TabOrder = 9 end object XmatrixLabel: TLabel AnchorSideLeft.Control = XStringGrid AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = TabSheet2 AnchorSideBottom.Control = XStringGrid Left = 909 Height = 21 Top = 0 Width = 179 Caption = '(X) Calibration parameters' end object WmatrixLabel: TLabel AnchorSideLeft.Control = WStringGrid AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = TabSheet2 AnchorSideBottom.Control = WStringGrid Left = 652 Height = 21 Top = 0 Width = 105 Caption = '(w) Sensor data' end object YmatrixLabel: TLabel AnchorSideLeft.Control = YStringGrid AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = TabSheet2 AnchorSideBottom.Control = YStringGrid Left = 200 Height = 21 Top = 2 Width = 286 BorderSpacing.Around = 2 Caption = '(Y) Known normalized earth gravity vector' end object Label4: TLabel AnchorSideLeft.Control = AStringGrid AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = TabSheet2 AnchorSideBottom.Control = AStringGrid Left = 278 Height = 21 Top = 245 Width = 133 Anchors = [akLeft] Caption = 'Accelerometer data' end object Wwarning: TLabel AnchorSideLeft.Control = WStringGrid AnchorSideTop.Control = WStringGrid AnchorSideTop.Side = asrBottom AnchorSideRight.Control = WStringGrid AnchorSideRight.Side = asrBottom Left = 543 Height = 14 Top = 228 Width = 322 Anchors = [akTop, akLeft, akRight] AutoSize = False BorderSpacing.Top = 3 end end object TabSheet3: TTabSheet Caption = 'Magnetometer' ClientHeight = 550 ClientWidth = 1155 object Label5: TLabel AnchorSideLeft.Control = Vmgrid AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = TabSheet3 AnchorSideBottom.Control = Vmgrid Left = 587 Height = 21 Top = -1 Width = 136 Anchors = [akLeft] BorderSpacing.Top = 2 Caption = 'Magnetometer data' end object Vmgrid: TStringGrid AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label5 AnchorSideTop.Side = asrBottom Left = 526 Height = 261 Top = 19 Width = 258 Anchors = [] BorderSpacing.Left = 2 BorderSpacing.Top = 2 BorderSpacing.Right = 5 ColCount = 4 RowCount = 9 ScrollBars = ssNone TabOrder = 0 end object GetMagCalButton: TButton Left = 790 Height = 25 Top = 51 Width = 100 Caption = 'GetMagCal' OnClick = GetMagCalButtonClick TabOrder = 1 end object SetMagCalButton: TButton Left = 790 Height = 25 Top = 83 Width = 100 Caption = 'SetMagCal' OnClick = SetMagCalButtonClick TabOrder = 2 end object MagXCalOpenGLControl: TOpenGLControl Left = 4 Height = 200 Top = 344 Width = 200 MultiSampling = 3 AlphaBits = 8 OnPaint = MagXCalOpenGLControlPaint Visible = False end object MagYCalOpenGLControl: TOpenGLControl Left = 213 Height = 200 Top = 344 Width = 200 MultiSampling = 4 AlphaBits = 8 OnPaint = MagYCalOpenGLControlPaint Visible = False end object MagZCalOpenGLControl: TOpenGLControl Left = 421 Height = 200 Top = 344 Width = 200 MultiSampling = 4 AlphaBits = 8 OnPaint = MagZCalOpenGLControlPaint Visible = False end object Label1: TLabel AnchorSideLeft.Control = MagXCalOpenGLControl AnchorSideLeft.Side = asrCenter AnchorSideBottom.Control = MagXCalOpenGLControl Left = 61 Height = 21 Top = 323 Width = 86 Anchors = [akLeft, akBottom] Caption = 'X calibration' end object Label2: TLabel AnchorSideLeft.Control = MagYCalOpenGLControl AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = MagYCalOpenGLControl AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = MagYCalOpenGLControl Left = 271 Height = 21 Top = 323 Width = 85 Anchors = [akLeft, akBottom] Caption = 'Y calibration' end object Label3: TLabel AnchorSideLeft.Control = MagZCalOpenGLControl AnchorSideLeft.Side = asrCenter AnchorSideBottom.Control = MagZCalOpenGLControl Left = 479 Height = 21 Top = 323 Width = 85 Anchors = [akLeft, akBottom] Caption = 'Z calibration' end object ResetMagCalButton: TButton Left = 790 Height = 25 Top = 18 Width = 100 Caption = 'ResetMagCal' OnClick = ResetMagCalButtonClick TabOrder = 6 end object MRollcompOpenGLControl: TOpenGLControl Left = 901 Height = 250 Top = 40 Width = 250 MultiSampling = 4 AlphaBits = 8 Visible = False end object MPitchcompOpenGLControl: TOpenGLControl Left = 648 Height = 250 Top = 294 Width = 250 MultiSampling = 4 AlphaBits = 8 Visible = False end object MRollPitchcompOpenGLControl: TOpenGLControl Left = 901 Height = 250 Top = 294 Width = 250 MultiSampling = 4 AlphaBits = 8 Visible = False end object MagnetoCheckBox: TCheckBox Left = 790 Height = 23 Top = 152 Width = 85 Caption = 'Magneto' TabOrder = 10 end object MinMaxCheckBox: TCheckBox Left = 790 Height = 23 Top = 124 Width = 79 Caption = 'MinMax' OnChange = MinMaxCheckBoxChange TabOrder = 11 end object Memo2: TMemo AnchorSideTop.Control = MagCalInstructionsLabel AnchorSideTop.Side = asrBottom Left = 16 Height = 295 Top = 25 Width = 502 BorderSpacing.Top = 2 Lines.Strings = ( '1. Turn off motors and fluorescent lamp that may produce magnetic spikes.' '2. Remove magnetic jewellery/belt/knife, and move away from chair and desk.' '3. Press the Monitor toggle button.' '4. Check the MinMax checkbox.' '5. Press the ResetMagCal button.' '6. Rotate meter to center arrow tip and end in circles (6 directions).' '7. Uncheck the MinMax checkbox.' '8. Press the SetMagCal button to set the values into the meter.' '9. Press the GetmagCal button to ensure values were stored in the meter.' '10. Unpress the Monitor toggle button.' ) TabOrder = 12 end object MagCalInstructionsLabel: TLabel AnchorSideTop.Control = TabSheet3 Left = 16 Height = 21 Top = 2 Width = 271 BorderSpacing.Top = 2 Caption = 'Magnetometer Calibration Instructions:' end end object TiltCompPage: TTabSheet Caption = 'Tilt Compensated' ClientHeight = 550 ClientWidth = 1155 object AccelOpenGLControl: TOpenGLControl AnchorSideLeft.Control = TabSheet2 AnchorSideTop.Control = TabSheet2 Left = 5 Height = 250 Top = 5 Width = 250 Anchors = [] AutoResizeViewport = True BorderSpacing.Around = 4 MultiSampling = 4 AlphaBits = 8 OnPaint = AccelOpenGLControlPaint Visible = False end object M1OpenGLControl: TOpenGLControl Left = 267 Height = 250 Top = 5 Width = 250 Anchors = [] MultiSampling = 4 AlphaBits = 8 Visible = False end object Memo1: TMemo Left = 4 Height = 245 Top = 259 Width = 510 Lines.Strings = ( 'Memo1' ) TabOrder = 2 end object M2OpenGLControl: TOpenGLControl AnchorSideLeft.Control = TabSheet3 AnchorSideTop.Control = TabSheet3 Left = 524 Height = 250 Top = 5 Width = 250 Anchors = [] AutoResizeViewport = True BorderSpacing.Around = 4 MultiSampling = 4 AlphaBits = 8 Visible = False end object ReverseCheckBox: TCheckBox Left = 548 Height = 23 Top = 280 Width = 77 Caption = 'Reverse' TabOrder = 4 end end object HardSoftTabSheet: TTabSheet Caption = 'Hard/Soft Iron test' ClientHeight = 550 ClientWidth = 1155 object HardSoftOpenGLControl: TOpenGLControl AnchorSideTop.Control = HardSoftTabSheet Left = 480 Height = 500 Top = 2 Width = 500 Anchors = [akTop] BorderSpacing.Top = 2 MultiSampling = 4 AlphaBits = 8 OnMouseDown = HardSoftOpenGLControlMouseDown OnMouseMove = HardSoftOpenGLControlMouseMove OnPaint = HardSoftOpenGLControlPaint Visible = False end object HardSoftRecordToggle: TToggleBox AnchorSideLeft.Control = HardSoftTabSheet AnchorSideTop.Control = HardSoftTabSheet Left = 2 Height = 25 Hint = 'Start recording hard/soft iron test' Top = 4 Width = 70 BorderSpacing.Left = 2 BorderSpacing.Top = 4 Caption = 'Record' OnChange = HardSoftRecordToggleChange TabOrder = 1 end object MxPlusGL: TOpenGLControl AnchorSideLeft.Control = HardSoftTabSheet Left = 2 Height = 150 Top = 240 Width = 150 Anchors = [akLeft] BorderSpacing.Left = 2 MultiSampling = 4 AlphaBits = 8 OnPaint = MxPlusGLPaint Visible = False end object MyPlusGL: TOpenGLControl AnchorSideLeft.Control = MxPlusGL AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = MxPlusGL Left = 153 Height = 150 Top = 240 Width = 150 BorderSpacing.Left = 1 MultiSampling = 4 AlphaBits = 8 OnPaint = MyPlusGLPaint Visible = False end object MzPlusGL: TOpenGLControl AnchorSideLeft.Control = MyPlusGL AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = MyPlusGL Left = 304 Height = 150 Top = 240 Width = 150 BorderSpacing.Left = 1 MultiSampling = 4 AlphaBits = 8 OnPaint = MzPlusGLPaint Visible = False end object MxMinusGL: TOpenGLControl AnchorSideLeft.Control = MxPlusGL AnchorSideTop.Control = MxPlusGL AnchorSideTop.Side = asrBottom Left = 2 Height = 150 Top = 391 Width = 150 BorderSpacing.Top = 1 MultiSampling = 4 AlphaBits = 8 OnPaint = MxMinusGLPaint Visible = False end object MyMinusGL: TOpenGLControl AnchorSideLeft.Control = MyPlusGL AnchorSideTop.Control = MyPlusGL AnchorSideTop.Side = asrBottom Left = 153 Height = 150 Top = 391 Width = 150 BorderSpacing.Top = 1 MultiSampling = 4 AlphaBits = 8 OnPaint = MyMinusGLPaint Visible = False end object MzMinusGL: TOpenGLControl AnchorSideLeft.Control = MzPlusGL AnchorSideTop.Control = MzPlusGL AnchorSideTop.Side = asrBottom Left = 304 Height = 150 Top = 391 Width = 150 BorderSpacing.Top = 1 MultiSampling = 4 AlphaBits = 8 OnPaint = MzMinusGLPaint Visible = False end object HSRecords: TLabeledEdit AnchorSideLeft.Control = HardSoftRecordToggle AnchorSideTop.Control = HardSoftRecordToggle AnchorSideTop.Side = asrBottom Left = 121 Height = 31 Top = 28 Width = 70 Anchors = [] BorderSpacing.Top = 2 EditLabel.Height = 21 EditLabel.Width = 55 EditLabel.Caption = 'Records' LabelPosition = lpLeft TabOrder = 8 end object HSSavedFileEntry: TLabeledEdit AnchorSideTop.Control = HardSoftRecordToggle Left = 121 Height = 31 Top = 4 Width = 327 Anchors = [akTop] EditLabel.Height = 21 EditLabel.Width = 28 EditLabel.Caption = 'File:' LabelPosition = lpLeft TabOrder = 9 end object GroupBox1: TGroupBox Left = 4 Height = 111 Top = 120 Width = 444 Caption = 'CSV' ClientHeight = 88 ClientWidth = 440 TabOrder = 10 object HSCreateCSV: TButton Left = 5 Height = 25 Top = 4 Width = 70 Caption = 'Export' OnClick = HSCreateCSVClick TabOrder = 0 end object HSRawFilename: TLabeledEdit Left = 136 Height = 31 Top = 4 Width = 296 EditLabel.Height = 21 EditLabel.Width = 58 EditLabel.Caption = 'Raw file:' LabelPosition = lpLeft TabOrder = 1 end object HSOffsetFilename: TLabeledEdit Left = 136 Height = 31 Top = 32 Width = 296 EditLabel.Height = 21 EditLabel.Width = 70 EditLabel.Caption = 'Offset file:' LabelPosition = lpLeft TabOrder = 2 end object ExportMagneto: TCheckBox Left = 11 Height = 23 Hint = 'No header, space separator' Top = 64 Width = 104 Caption = 'to magneto' Checked = True State = cbChecked TabOrder = 3 end end object HSView: TButton Left = 2 Height = 25 Hint = 'Load saved file into viewer' Top = 72 Width = 70 Caption = 'View' Enabled = False OnClick = HSViewClick TabOrder = 11 end object HSSelectView: TButton Left = 90 Height = 25 Top = 72 Width = 75 Caption = 'Select view' OnClick = HSSelectViewClick TabOrder = 12 end object HSShowRaw: TCheckBox Left = 192 Height = 23 Top = 72 Width = 92 Caption = 'Show raw' Checked = True OnClick = HSShowRawClick State = cbChecked TabOrder = 13 end object HSMagneto: TCheckBox Left = 192 Height = 23 Top = 90 Width = 85 Caption = 'Magneto' TabOrder = 14 end end end object Deadbandlabel: TLabel AnchorSideLeft.Control = DeadbandSpinEdit AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = DeadbandSpinEdit Left = 16 Height = 21 Top = 85 Width = 75 Anchors = [akLeft, akBottom] BorderSpacing.Bottom = 2 Caption = 'Deadband:' end object IdleTimer1: TIdleTimer Enabled = False Interval = 16 OnTimer = IdleTimer1Timer Left = 40 Top = 360 end object HSSampleTimer: TTimer Enabled = False Interval = 100 OnTimer = HSSampleTimerTimer Left = 40 Top = 416 end object OpenDialog1: TOpenDialog Left = 40 Top = 472 end end ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������./north.png�����������������������������������������������������������������������������������������0000644�0001750�0001750�00000005757�14576573022�013026� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���d���d���pT���bKGD������ pHYs�� �� ����tIME;:!���tEXtComment�Created with GIMPW�� WIDATxM%GOUwIf0]d4Y( B"ABQ7F!7 R$n\(Q5l!c3}\y:{]Pܾu{~?`NsӜ49do=7Y}me�yj `Cۧljی$8lס@B_lnqY1k1:^(@1kV SP |p40$;�BtRP``=e F`H8'ŬE4% @�N҅5z؁.^p&b/"(VI% ́LW °%E{y>\dPI*yXE&n� )vľWe1M "9(x_ o (bS*1k1,]8W7z+h8'L!1 F* *6*@'!0cRQU<X{xv(bF ޑ W %ur,\W5V8nX؎rI-CPoPWz\$$U%9b8(!@+=:0rs<]9)PG2@@ρj+82VFqVOR*G"LTJde�058Qqi^Wph_Ӻ,Oǡe`XE%ŕg"I~L;Eҿ�h}m>;;Fx: 0U^H~]aj]؏S2 :,57,Qn>LJl:p՝ `(,|@ _+sdUMeg<_t` bz?xm_E�RG,�FQč%’֫](URHb[AݖV'C!#bjU* ��/4ͻ43},u<Fmّ\jpʈ $D|(")"C2M#U{wL鲌pW w*i\Ƕ|]_>0b䴗3uY nsY!nK.ex1wpEndt*hkYsW %uY�Al6 {]VfL,{ uw.3 -]@�.x)#TJ_,޼}s�8Qvhb�<$hF߾RHWbY\^sn񣪺}� _4V h#OCaVZ{~$In nXU;G)jU1ct+a<'(+7<O`9TY0�ZtX h Ub>4_V@PcIr,νu)c| K%~o1մBN|wGky@ANYNPbDtV%;5eO5p~{4-Y.WV :mCPMkl %)X_L1�^nmLCv8C~i_e5vch/vQsYW:GO>k[fQؓ2ԺҶ�9Z4v?riۀ$iETs3D:JԲ�:cL,^:r=ѦBrZ@�h 9jc<8*d9j8BPA2JX �4_G;g~P)S Myl:49T@|0&ɱj* w|>ҹwn:a �Y*ᱶ|nߢT,o|@1>7_F1!Tc5HY2emVڶAfQfvB&!\qjw6 "h{ �/.;NCFKo];OJ^ /hm4}Ŧ{][QI V)Cs.\Q3i%c*EDN)EװB]v#ЃݎJj;5Rwr]xS!%ւ)4@ߌYJ0|ʏO-o-ҹ56BL m@4OdH O Sr] 9֘r7wtӹ[�uQd8eAB7s@VCtv�ŝWj%_K FTBUG*(z7�ǒ|0J.wj0F80rs1䄝qoA\V}”. u Bu]V\V訌~㦤Ty£W9ЂUk:]ZVe%!rgD͇ Y*#Nx uY8qR <)RG/~]� `yPIwsG˷ZH<:JZ濏Z$s^ZcÖАg6q!5mR%'c!}K)mLv: mf ׵mK]Ln=F^sZZ{P󻈹z!i^&,,;ʼIQ@֥5 &16H빕Nq'I**(�]NH�G �CN"�̏[/i3?X  ѫHoO7 F0m3D@p(dc!lsӜ49錧i#2'A����IENDB`�����������������./Chamber-4-10-2.hex��������������������������������������������������������������������������������0000644�0001750�0001750�00000015374�14576573022�013747� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������:020000040000FA :0408000070EF04F0A1 :1008100003B210EF04F09EB22BEF04F04EEF04F0A1 :100820000392030103EE00F080517F0BE92604C020 :10083000EFFF802B8151805D700BD8A48B8200006C :100840008051815D700BD8A48B9281518019D8B4EE :1008500007904EEF04F09E92C3CF48F1C4CF49F108 :10086000C28207B446EF04F0010148514E274951B6 :100870004F23E86A50230D2E46EF04F04FC14AF192 :1008800050C14BF14E6B4F6B506B078E0201002F26 :100890004EEF04F03C0E006F4EEF04F002C0E0FF9C :1008A000005001C0D8FF1000A6B254EF04F00CC0F5 :1008B000A9FF0BC0A8FFA69EA69CA684F29E550E7B :1008C000A76EAA0EA76EA682F28EA694A6B266EFB7 :1008D00004F01200A96EA69EA69CA680A850120045 :1008E000076A0E6A0F6A0F010E0EC16E860EC06E89 :1008F000030EC26E0F01896A110E926E8A6AE00EB3 :10090000936E8B6A800E946EF18E0D6A01014E6BB0 :100910004F6B506B4A6B4B6B760ECA6E9D82020119 :100920003C0E006FCC6A240EAC6E900EAB6E240EA3 :10093000AC6E080EB86E000EB06E1F0EAF6E0401E6 :10094000806B816B0F01900EAB6E0F019D8A0301CE :10095000806B816BA26B8B9207900001F29A9D9045 :10096000F28EF28C07B0F8EF06F003018051811986 :100970007F0BD8B4F8EF06F013EE00F081517F0B37 :10098000E126812BE7CFE8FFE00BD8B4F8EF06F0C3 :1009900023EE82F0A2511F0BD926E7CFDFFFA22B57 :1009A000DF50780AD8A4F8EF06F007807DC100F187 :1009B0007EC101F17FC102F180C103F10101040E8A :1009C000046F000E056F000E066F000E076F83ECBC :1009D00007F000AFF5EF04F00101030E7D6F000E8C :1009E0007E6F000E7F6F000E806F03018251720ACE :1009F000D8B478EF06F08251690AD8B465EF05F0F3 :100A00008251480AD8B41AEF05F08AEF06F00401C3 :100A100014EE00F080517F0BE12682C4E7FF802BAB :100A200012000D0E826F07EC05F00A0E826F07ECC4 :100A300005F012000401480E826F07EC05F0040176 :100A40002C0E826F07EC05F003018351300AD8B4F5 :100A50003CEF05F003018351310AD8B445EF05F0AE :100A600003018351320AD8B44EEF05F003018351DC :100A7000330AD8B457EF05F08B988B9A04014E0EC9 :100A8000826F07EC05F05EEF05F08B888B9A04010E :100A9000460E826F07EC05F05EEF05F08B8A8B98AF :100AA0000401430E826F07EC05F05EEF05F08B8AC0 :100AB0008B880401420E826F07EC05F004012C0EB6 :100AC000826F07EC05F078EF06F00401690E826F83 :100AD00007EC05F004012C0E826F07EC05F0010114 :100AE000040E006F000E016F000E026F000E036F08 :100AF0001DEC08F020C182F40401300E822707ECBF :100B000005F021C182F40401300E822707EC05F0C4 :100B100022C182F40401300E822707EC05F023C1C4 :100B200082F40401300E822707EC05F024C182F420 :100B30000401300E822707EC05F025C182F4040180 :100B4000300E822707EC05F026C182F40401300E36 :100B5000822707EC05F027C182F40401300E8227BA :100B600007EC05F004012C0E826F07EC05F0010183 :100B70000A0E006F000E016F000E026F000E036F71 :100B80001DEC08F020C182F40401300E822707EC2E :100B900005F021C182F40401300E822707EC05F034 :100BA00022C182F40401300E822707EC05F023C134 :100BB00082F40401300E822707EC05F024C182F490 :100BC0000401300E822707EC05F025C182F40401F0 :100BD000300E822707EC05F026C182F40401300EA6 :100BE000822707EC05F027C182F40401300E82272A :100BF00007EC05F004012C0E826F07EC05F00101F3 :100C0000020E006F000E016F000E026F000E036FE8 :100C10001DEC08F020C182F40401300E822707EC9D :100C200005F021C182F40401300E822707EC05F0A3 :100C300022C182F40401300E822707EC05F023C1A3 :100C400082F40401300E822707EC05F024C182F4FF :100C50000401300E822707EC05F025C182F404015F :100C6000300E822707EC05F026C182F40401300E15 :100C7000822707EC05F027C182F40401300E822799 :100C800007EC05F004012C0E826F07EC05F0200E36 :100C9000F86EF76AF66A04010900F5CF82F407ECF2 :100CA00005F00900F5CF82F407EC05F00900F5CF57 :100CB00082F407EC05F00900F5CF82F407EC05F0AB :100CC0000900F5CF82F407EC05F00900F5CF82F4B6 :100CD00007EC05F00900F5CF82F407EC05F00900F8 :100CE000F5CF82F407EC05F011EC05F08AEF06F081 :100CF00007844AC14CF14BC14DF107947AEC08F0DE :100D00004CC100F14DC101F198EC06F011EC05F079 :100D10008AEF06F00301A26B0790F8EF06F00101DD :100D20007AEC08F007844AC100F14BC101F1079445 :100D30000101E80E046F800E056F000E066F000EB5 :100D4000076F92EC07F0000E046F040E056F000EA3 :100D5000066F000E076FB1EC07F0880E046F130EDC :100D6000056F000E066F000E076F83EC07F00A0E8A :100D7000046F000E056F000E066F000E076FB1ECDA :100D800007F01DEC08F001011D67CCEF06F004012F :100D9000200E826FCFEF06F004012D0E826F07EC5C :100DA00005F024C182F40401300E822707EC05F01F :100DB00025C182F40401300E822707EC05F026C11C :100DC00082F40401300E822707EC05F004012E0E98 :100DD000826F07EC05F027C182F40401300E8227F0 :100DE00007EC05F00401430E826F07EC05F01200DA :100DF0000401805181197F0B0BE09EA809D014EEED :100E000000F081517F0BE126E750812B0F01AD6E81 :100E1000B2EF04F00CC100F10DC101F10EC102F1FD :100E20000FC103F1000E046F000E056F010E066F77 :100E3000000E076FB1EC07F01DA135EF07F014515C :100E4000D8B435EF07F00CC100F10DC101F10EC1AE :100E500002F10FC103F1000E046F000E056F0A0EC0 :100E6000066F000E076FB1EC07F0120001010C6B6A :100E70000D6B0E6B0F6B12001EC182F40401300E5D :100E8000822707EC05F01FC182F40401300E82278F :100E900007EC05F020C182F40401300E822707EC34 :100EA00005F021C182F40401300E822707EC05F021 :100EB00022C182F40401300E822707EC05F023C121 :100EC00082F40401300E822707EC05F024C182F47D :100ED0000401300E822707EC05F025C182F40401DD :100EE000300E822707EC05F026C182F40401300E93 :100EF000822707EC05F027C182F40401300E822717 :100F000007EC05F012009FEC08F0D8B01200035176 :100F10000719286F62EC08F0D8900751031928AF21 :100F2000800F1200286B86EC08F0D8A09CEC08F02B :100F3000D8B0120071EC08F07AEC08F01F0E296F9F :100F4000B2EC08F00B35D8B062EC08F0D8A003354D :100F5000D8B01200292FA0EF07F028B189EC08F0D3 :100F60001200286B04510511061107110008D8A0C2 :100F700086EC08F0D8A09CEC08F0D8B01200086B02 :100F8000096B0A6B0B6BB2EC08F01F0E296FB2EC09 :100F900008F007510B5DD8A4DAEF07F006510A5D9F :100FA000D8A4DAEF07F00551095DD8A4DAEF07F00D :100FB0000451085DD8A0EDEF07F00451085F05511A :100FC000D8A0053D095F0651D8A0063D0A5F07512C :100FD000D8A0073D0B5FD8900081292FC7EF07F0FD :100FE00028B189EC08F0286B86EC08F0D890B6ECB4 :100FF00008F007510B5DD8A40AEF08F006510A5D0E :10100000D8A40AEF08F00551095DD8A40AEF08F04A :101010000451085DD8A019EF08F0003F19EF08F05F :10102000013F19EF08F0023F19EF08F0032BD8B485 :10103000120028B189EC08F012000101286B86EC3F :1010400008F0D8B01200BBEC08F0200E296F003772 :1010500001370237033711EE27F00A0E2A6FE73601 :101060000A0EE75CD8B0E76EE5522A2F2FEF08F0A2 :10107000292F27EF08F028B11D81D8901200010117 :101080000A0E286F200E296F11EE1DF028512A6FCD :101090000A0ED890E652D8B0E726E7322A2F4AEF58 :1010A00008F00333023301330033292F44EF08F0F3 :1010B000E750FF0FD8A00335D8B012001DB189EC5E :1010C00008F01200045100270551D8B0053D012752 :1010D0000651D8B0063D02270751D8B0073D032777 :1010E00012000051086F0151096F02510A6F03513C :1010F0000B6F12000101006B016B026B036B12009E :101100000101046B056B066B076B12000335D8A059 :1011100012000351800B001F011F021F031F003F1D :1011200099EF08F0013F99EF08F0023F99EF08F0BE :10113000032B282B032512000735D8A012000751D6 :10114000800B041F051F061F071F043FAFEF08F0A9 :10115000053FAFEF08F0063FAFEF08F0072B282B55 :1011600007251200003701370237033708370937E0 :101170000A370B37120001011D6B1E6B1F6B206BB2 :10118000216B226B236B246B256B266B276B120064 :101190001E510F0B1E6F1F510F0B1F6F20510F0B96 :1011A000206F21510F0B216F22510F0B226F235102 :1011B0000F0B236F24510F0B246F25510F0B256F3D :0E11C00026510F0B266F27510F0B276F1200C1 :00000001FF ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./avgtool.pas���������������������������������������������������������������������������������������0000644�0001750�0001750�00000023236�14576573021�013335� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit avgtool; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Spin, ComCtrls, ExtCtrls, Buttons , strutils , Contnrs , LazFileUtils //required for ExtractFileNameOnly ; type { TForm8 } TForm8 = class(TForm) BinsLabel: TLabel; BinsSpinEdit: TSpinEdit; RollingSettingsGroup: TGroupBox; Label1: TLabel; Label2: TLabel; ProcessStatusMemo: TMemo; Methodradio: TRadioGroup; InputFileListMemo: TMemo; SourceDirectoryButton: TBitBtn; SourceDirectoryEdit: TEdit; Memo1: TMemo; ProgressBar1: TProgressBar; SelectDirectoryDialog1: TSelectDirectoryDialog; StartButton: TButton; StatusBar1: TStatusBar; procedure BinsSpinEditChange(Sender: TObject); procedure MethodRadioClick(Sender: TObject); procedure StartButtonClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure SourceDirectoryButtonClick(Sender: TObject); private public end; var Form8: TForm8; implementation uses appsettings, Unit1 ; type TFileDetails = class Name: String; Size, Time: int64; end; const Section='AvgTool'; var SourceDirectory:String; BinsTotal:Integer; Bins: Array of Double; BinPointer:Integer; //Current bin pointer for incoming values ComputeMethod:Integer; //0=Rolling, 1=All records { TForm8 } procedure UpdateBinSize(); var v:Double; i:Integer; begin //Set array size SetLength(Bins, BinsTotal); //Clear bin values i:=0; for v in Bins do begin Bins[i]:=0; Inc(i); end; end; procedure FileListAppendFileNames(const AFileList: TObjectList; const APath: TFileName); var LDetails: TFileDetails; LSearchRec: TSearchRec; begin if FindFirst(APath + '*.txt', 0, LSearchRec) = 0 then begin try repeat LDetails := TFileDetails.Create; LDetails.Name := LSearchRec.Name; LDetails.Size := LSearchRec.Size; LDetails.Time := LSearchRec.Time; AFileList.Add(LDetails); until FindNext(LSearchRec) <> 0; finally FindClose(LSearchRec); end; end; end; function CompareName(A, B: Pointer): Integer; begin Result := AnsiCompareFilename(TFileDetails(A).Name, TFileDetails(B).Name); end; function CompareSize(A, B: Pointer): Integer; begin Result := TFileDetails(A).Size - TFileDetails(B).Size; end; function CompareTime(A, B: Pointer): Integer; begin Result := TFileDetails(A).Time - TFileDetails(B).Time; end; procedure FillList(Directory:String); var LIndex: Integer; LFileList: TObjectList; begin LFileList := TObjectList.Create; Directory:=Directory; try Form8.InputFileListMemo.Clear; Form8.ProcessStatusMemo.Clear; FileListAppendFileNames(LFileList, Directory); LFileList.Sort(@CompareName); for LIndex := 0 to LFileList.Count - 1 do begin Form8.InputFileListMemo.Append(TFileDetails(LFileList[LIndex]).Name); end; finally { Update the progress bar maximum. } Form8.ProgressBar1.Max:=LFileList.Count; Form8.ProgressBar1.Position:=0; FreeAndNil(LFileList); end; end; procedure TForm8.SourceDirectoryButtonClick(Sender: TObject); begin SelectDirectoryDialog1.FileName:=SourceDirectory; if SelectDirectoryDialog1.Execute then begin SourceDirectory:=RemoveMultiSlash(SelectDirectoryDialog1.FileName+DirectorySeparator); SourceDirectoryEdit.Text:=SourceDirectory; end; //Save directory name in registry vConfigurations.WriteString(Section,'SourceDirectory',SourceDirectory); FillList(SourceDirectory); end; { Processing of averages takes place in the Bins array. Each record of the input files is entered in a Bin (rolling pointer). The average is computer from all bins and written to the outputfile.} procedure TForm8.StartButtonClick(Sender: TObject); Var Count : Longint; pieces: TStringList; Str: String; InFile,OutFile: TextFile; ComposeString: String; InputFileName:String; OutputPathFileName, InputPathFileName:String; WorkingPath, OutputPath:String; index: Integer; WriteAllowable: Boolean = True; //Allow output file to be written or not. i:Integer;//Counter v:Double;//Value in bin Average:Double;//Final average LIndex: Integer; LFileList: TObjectList; MPSASIndex:Integer; Begin pieces := TStringList.Create; BinPointer:=0; {Update the file list in case it recently changed, and set the progress bar maximum.} FillList(SourceDirectory); WorkingPath:=RemoveMultiSlash(SourceDirectory + DirectorySeparator); OutputPath:=RemoveMultiSlash(WorkingPath+'average' + DirectorySeparator); { Make directory to store files. } if (not(DirectoryExists(OutputPath))) then mkdir(OutputPath); { So far there ar no conditions to prevent writing files. The output directory either already exists, or has been created. The output files will overwrite previous output files.} WriteAllowable:=True; if WriteAllowable then begin { Process the files } Count:=0; LFileList := TObjectList.Create; try FileListAppendFileNames(LFileList, SourceDirectory); LFileList.Sort(@CompareName); for LIndex := 0 to LFileList.Count - 1 do begin InputFileName:=TFileDetails(LFileList[LIndex]).Name; Inc(Count); {Start reading file.} { Define Input file. } InputPathFileName:=WorkingPath+InputFileName; AssignFile(InFile, InputPathFileName); ProcessStatusMemo.Append('Processing: '+InputFileName); Application.ProcessMessages; //ProcessStatusMemo.Update; { Define Output file. } OutputPathFileName:=OutputPath+LazFileUtils.ExtractFileNameWithoutExt(InputFileName)+'_avg.txt'; AssignFile(OutFile, OutputPathFileName); Rewrite(OutFile); //Open file for writing {$I+} try Reset(InFile); StatusBar1.Panels.Items[0].Text:='Reading Input file'; { Duplicate first one or two non-record lines. } Readln(InFile, Str); WriteLn(OutFile,Str); if AnsiStartsStr('Produced',Str) then begin Readln(InFile, Str); WriteLn(OutFile,Str); MPSASIndex:=2; end else MPSASIndex:=1; repeat // Read one line at a time from the file. Readln(InFile, Str); StatusBar1.Panels.Items[0].Text:='Processing : '+Str; begin { Separate the fields of the record. } pieces.Delimiter := ','; pieces.StrictDelimiter := True; //Do not parse spaces pieces.DelimitedText := Str; ComposeString:=''; { Compose beginning of string } if MPSASIndex=1 then ComposeString:=pieces.Strings[0] else ComposeString:=pieces.Strings[0]+','+pieces.Strings[1]; { parse the fields, and convert as necessary. } //Insert the reading into a bin for averaging. Bins[BinPointer]:=StrToFloatDef(pieces.Strings[MPSASIndex],0); //perform the averaging function on the bins. Average:=0; i:=0; for v in Bins do begin Average:=Average+Bins[i]; Inc(i); end; Average:=Average/i; ComposeString:=ComposeString+','+format('%.2f',[Average]); { Compose remainder of string } for index:=MPSASIndex+1 to pieces.count-1 do begin ComposeString:=ComposeString+','+pieces.Strings[index]; end; WriteLn(OutFile,ComposeString); BinPointer:= (BinPointer+1) mod BinsTotal; end; until(EOF(InFile)); // EOF(End Of File) The the program will keep reading new lines until there is none. CloseFile(InFile); Flush(OutFile); CloseFile(OutFile); StatusBar1.Panels.Items[0].Text:='Finished file'+InputPathFileName; except on E: EInOutError do begin MessageDlg('Error', 'File handling error occurred. Details: '+E.ClassName+'/'+E.Message, mtError, [mbOK],0); end; end; ProgressBar1.Position:=Count; ProgressBar1.Update; end;//End of files processing finally FreeAndNil(LFileList); end; StatusBar1.Panels.Items[0].Text:='Finished all files. Results stored in :'+OutputPath; ProcessStatusMemo.Append('Finished processing files.'); ProcessStatusMemo.Append('Results stored in: '); ProcessStatusMemo.Append(' '+OutputPath); end;//End of WriteAllowable check. end; procedure TForm8.BinsSpinEditChange(Sender: TObject); begin BinsTotal:=BinsSpinEdit.Value; //Save value in registry vConfigurations.WriteString(Section,'Bins',IntToStr(BinsTotal)); UpdateBinSize(); end; procedure TForm8.MethodRadioClick(Sender: TObject); begin //Save value in registry ComputeMethod:=MethodRadio.ItemIndex; vConfigurations.WriteString(Section,'ComputeMethod',IntToStr(ComputeMethod)); case ComputeMethod of 0: RollingSettingsGroup.Enabled:=True; 1: RollingSettingsGroup.Enabled:=False; end; end; procedure TForm8.FormShow(Sender: TObject); begin SourceDirectory:=RemoveMultiSlash(vConfigurations.ReadString(Section, 'SourceDirectory', '')+DirectorySeparator); SourceDirectoryEdit.Text:=SourceDirectory; BinsTotal:=StrToIntDef(vConfigurations.ReadString(Section,'Bins'),0); BinsSpinEdit.Value:=BinsTotal; UpdateBinSize(); ComputeMethod:=StrToIntDef(vConfigurations.ReadString(Section,'ComputeMethod'),0); MethodRadio.ItemIndex:=ComputeMethod; case ComputeMethod of 0: RollingSettingsGroup.Enabled:=True; 1: RollingSettingsGroup.Enabled:=False; end; FillList(SourceDirectory); end; initialization {$I avgtool.lrs} end. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./vectorproduct.pas���������������������������������������������������������������������������������0000644�0001750�0001750�00000001572�14576573021�014564� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit VectorProduct; {$mode objfpc} interface type Tvector = record x, y, z: double end; function dotProduct(a, b: Tvector): double; function crossProduct(a, b: Tvector): Tvector; function scalarTripleProduct(a, b, c: Tvector): double; function vectorTripleProduct(a, b, c: Tvector): Tvector; implementation uses Classes, SysUtils; function dotProduct(a, b: Tvector): double; begin dotProduct := a.x*b.x + a.y*b.y + a.z*b.z; end; function crossProduct(a, b: Tvector): Tvector; begin crossProduct.x := a.y*b.z - a.z*b.y; crossProduct.y := a.z*b.x - a.x*b.z; crossProduct.z := a.x*b.y - a.y*b.x; end; function scalarTripleProduct(a, b, c: Tvector): double; begin scalarTripleProduct := dotProduct(a, crossProduct(b, c)); end; function vectorTripleProduct(a, b, c: Tvector): Tvector; begin vectorTripleProduct := crossProduct(a, crossProduct(b, c)); end; end. ��������������������������������������������������������������������������������������������������������������������������������������./comterm.pas���������������������������������������������������������������������������������������0000644�0001750�0001750�00000002145�14576573021�013324� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit comterm; {$mode objfpc} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls , LCLType ,header_utils; type { TComTermForm } TComTermForm = class(TForm) ClearButton: TButton; InputEdit: TEdit; Label1: TLabel; InputMemo: TMemo; OutputMemo: TMemo; procedure ClearButtonClick(Sender: TObject); procedure InputEditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); private { private declarations } public { public declarations } end; var ComTermForm: TComTermForm; implementation { TComTermForm } procedure TComTermForm.InputEditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin If (Key=VK_RETURN) then begin //remember to add LCLType in uses //writeln('Enter key'); InputMemo.Append(InputEdit.Text); OutputMemo.Append(SendGet(InputEdit.Text)); Key:=0; end; end; procedure TComTermForm.ClearButtonClick(Sender: TObject); begin OutputMemo.Clear; InputMemo.Clear; InputEdit.Clear; InputEdit.SetFocus; end; initialization {$I comterm.lrs} end. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./convertoldlog.pas���������������������������������������������������������������������������������0000644�0001750�0001750�00000000141�14576573021�014531� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit convertoldlog; {$mode objfpc} interface uses Classes, SysUtils; implementation end. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./dattokml.pas��������������������������������������������������������������������������������������0000644�0001750�0001750�00000030312�14576573021�013472� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit dattokml; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls,math; type { TForm7 } TForm7 = class(TForm) SelectAndConvertButton: TButton; SchemeImage: TImage; StatusLine: TLabeledEdit; HelpNotes: TMemo; OpenLogDialog: TOpenDialog; ColorSchemeGroup: TRadioGroup; procedure SelectAndConvertButtonClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure ColorSchemeGroupClick(Sender: TObject); private procedure DrawImage(); public end; type TKMLColors = array of String; type TKMLValues = array of Double; var Form7: TForm7; //Color display will be done on readings greater than color // value according to new atlas <0.176 mcd/m^2 equates to >21.97 mpsas. //Cleardarkskys legend looks like it was // expanded from The World Atlas of the Artificial Night Sky Brightness KMLColorsCleardarksky: TKMLColors; KMLValuesCleardarksky: TKMLValues; KMLColorsNewatlas: TKMLColors; KMLValuesNewatlas: TKMLValues; KMLColorsSelected: TKMLColors; KMLValuesSelected: TKMLValues; implementation uses appsettings, Unit1, header_utils, strutils , LazFileUtils; //Necessary for filename extraction var SelectedTheme:String; LegendFilename:String; procedure TForm7.FormShow(Sender: TObject); begin //Get previous legend color theme selection, radio button number ColorSchemeGroup.ItemIndex:=StrToIntDef(vConfigurations.ReadString('KMLSettings', 'Selection',''),0); StatusLine.Text:='Waiting to convert .dat file, press Select and Convert'; DrawImage(); end; procedure TForm7.ColorSchemeGroupClick(Sender: TObject); begin vConfigurations.WriteString('KMLSettings', 'Selection',IntToStr(ColorSchemeGroup.ItemIndex)); DrawImage(); end; procedure TForm7.DrawImage(); var PictureFileName:String; begin case ColorSchemeGroup.ItemIndex of 0: SelectedTheme:='kmllegendnewatlas'; 1: SelectedTheme:='kmllegendcleardarksky'; end; LegendFilename:= SelectedTheme+'.png'; PictureFileName:=appsettings.DataDirectory+DirectorySeparator+LegendFilename; if (not FileExists(PictureFileName)) then MessageDlg ('Legend file does not exist!' + PictureFileName, mtConfirmation,[mbIgnore],0) else begin SchemeImage.Picture.LoadFromFile(PictureFileName); end; //Fill WorkingLegend array case SelectedTheme of 'kmllegendnewatlas': begin KMLValuesSelected:=copy(KMLValuesNewatlas,0,length(KMLValuesNewatlas)); KMLColorsSelected:=copy(KMLColorsNewatlas,0,length(KMLColorsNewatlas)); end; 'kmllegendcleardarksky': begin KMLValuesSelected:=copy(KMLValuesCleardarksky,0,length(KMLValuesCleardarksky)); KMLColorsSelected:=copy(KMLColorsCleardarksky,0,length(KMLColorsCleardarksky)); end; end; end; procedure TForm7.SelectAndConvertButtonClick(Sender: TObject); var Infile: TStringList; OutFileName, SourceFileName:String; MessageString: String; AllowFlag: Boolean=False; i:integer; //general purpose counter pieces: TStringList; OutFile: TextFile; Darkness: Double; // Colors converted from the tool at http://www.netdelight.be/kml/index.php // transparency byte should be FF. ColorPointer:Integer; //ColorString:String; ColorValue:Double; s: String; //Temporary string DataLine: String = ''; //Contains data descriptions DataStart:Integer = 0; //Starting line of data. MSASField: Integer = -1; //Field that contains the MSAS variable, -1 = not defined yet. LatitudeField: Integer = -1; //Field that contains the Latitude variable, -1 = not defined yet. LongitudeField: Integer = -1; //Field that contains the Longitude variable, -1 = not defined yet. MinFieldCount:Integer = 0; //Number of fields required to get a result begin Infile := TStringList.Create; pieces := TStringList.Create; OpenLogDialog.InitialDir:= appsettings.LogsDirectory; OpenLogDialog.Filter:='data file|*.dat'; if OpenLogDialog.Execute then begin StatusMessage('DAT to KML tool started.'); //CopyLegend image file so that the .kml file can refer to it. //It should be OK to overwrite existing file for each run in case the original was changed. SourceFileName:=appsettings.DataDirectory+DirectorySeparator+LegendFilename; if (not FileExists(SourceFileName)) then MessageDlg ('Legend file does not exist!' + SourceFileName, mtConfirmation,[mbIgnore],0) else begin CopyFile(SourceFileName,appsettings.LogsDirectory+ DirectorySeparator+LegendFilename); end; Infile.LoadFromFile(OpenLogDialog.Filename); //Get Data Line, begins with # UTC Date & Time for s in Infile do begin if AnsiContainsStr(s,'# UTC Date & Time') then begin DataLine:=s; { Parse field definition line for MSAS field. } pieces.Delimiter := ','; pieces.StrictDelimiter := True; //Do not parse spaces also pieces.DelimitedText := s; { Get the field locations. } for i:=0 to pieces.Count-1 do begin if AnsiContainsStr(pieces.Strings[i],'MSAS') then begin MSASField:=i; MinFieldCount:=MaxValue([MinFieldCount, MSASField]); end; if AnsiContainsStr(pieces.Strings[i],'Latitude') then begin LatitudeField:=i; MinFieldCount:=MaxValue([MinFieldCount, LatitudeField]); end; if AnsiContainsStr(pieces.Strings[i],'Longitude') then begin LongitudeField:=i; MinFieldCount:=MaxValue([MinFieldCount, LongitudeField]); end; end; end; if AnsiStartsStr('#',s) then Inc(DataStart); end; //writeln(Infile[DataStart]); //debug print first line of data //Check that dat file has GPS coordinates: if Infile.Count >=DataStart then begin //Check that at least one record has been made. if AnsiContainsStr(DataLine,'Latitude') then begin //Set delimeter type for data lines pieces.Delimiter := ';'; //Check that kml file does not already exist OutFileName:=appsettings.LogsDirectory+ DirectorySeparator+LazFileUtils.ExtractFileNameOnly(OpenLogDialog.Filename)+'.kml'; if FileExists(OutFileName) then begin MessageString:=OutFileName+ 'exists '; StatusMessage(MessageString); case QuestionDlg('Output file exists',MessageString,mtCustom,[mrOK,'Overwrite',mrCancel,'Cancel'],'') of mrOK: begin AllowFlag:=True; //User allowed overwriting file. StatusMessage('KML file ('+OutFileName+') exists, user allowed overwriting.'); end; mrCancel: begin StatusMessage('KML file ('+OutFileName+') exists already, user cancelled overwrite.'); end; end; end else AllowFlag:=True; //File did not exist, allow writing. if AllowFlag then begin AssignFile(OutFile, OutFileName); Rewrite(OutFile); //Open file for writing writeln(OutFile, '<?xml version="1.0" encoding="UTF-8"?>'); writeln(OutFile, '<kml xmlns="http://www.opengis.net/kml/2.2">'); writeln(OutFile, '<Document>'); //Overlay section writeln(OutFile, '<ScreenOverlay><name>Legend: MPSAS</name><Icon> <href>'+LegendFilename+'</href></Icon>'); writeln(OutFile, '<overlayXY x="0" y="0" xunits="fraction" yunits="fraction"/>'); writeln(OutFile, '<screenXY x="20" y="45" xunits="pixels" yunits="pixels"/>'); writeln(OutFile, '<rotationXY x="0.5" y="0.5" xunits="fraction" yunits="fraction"/>'); writeln(OutFile, '<size x="0" y="0" xunits="pixels" yunits="pixels"/>'); writeln(OutFile, '</ScreenOverlay>'); //Write color map for ColorPointer := low(KMLValuesSelected) to high(KMLValuesSelected) do begin ColorValue:=KMLValuesSelected[ColorPointer]; //ColorString:=KMLColorsSelected[ColorPointer]; //Style Map (contains Normal and Highlight definitions) writeln(OutFile, format('<StyleMap id="m%.2f"><Pair><key>normal</key><styleUrl>#sn%.2f</styleUrl></Pair><Pair><key>highlight</key><styleUrl>#sh%.2f</styleUrl></Pair></StyleMap>' ,[ColorValue, ColorValue, ColorValue])); //Style Normal (definition of normally displayed icon) writeln(OutFile, format('<Style id="sn%.2f"><IconStyle><color>%s</color>',[ColorValue,KMLColorsSelected[ColorPointer]])); writeln(OutFile, '<scale>1.1</scale><Icon><href>http://maps.google.com/mapfiles/kml/paddle/wht-blank.png</href></Icon><hotSpot x="32" y="1" xunits="pixels" yunits="pixels"/></IconStyle><LabelStyle></LabelStyle><ListStyle><ItemIcon><href>http://maps.google.com/mapfiles/kml/paddle/wht-blank-lv.png</href></ItemIcon></ListStyle></Style>'); //Style Highlight (definition of highlited icon) writeln(OutFile, format('<Style id="sh%.2f"><IconStyle><color>%s</color>',[ColorValue,KMLColorsSelected[ColorPointer]])); writeln(OutFile, '<scale>1.3</scale><Icon><href>http://maps.google.com/mapfiles/kml/paddle/wht-blank.png</href></Icon><hotSpot x="32" y="1" xunits="pixels" yunits="pixels"/></IconStyle><LabelStyle></LabelStyle><ListStyle><ItemIcon><href>http://maps.google.com/mapfiles/kml/paddle/wht-blank-lv.png</href></ItemIcon></ListStyle></Style>'); end; //Convert GPS coordinates to KML points for i:=DataStart to Infile.Count-1 do begin pieces.DelimitedText:=Infile[i]; if (pieces.Count < (MinFieldCount+1)) then begin StatusMessage('DAT fields less than '+IntToStr(MinFieldCount+1)+', no GPS data found.'); break; end; writeln(OutFile, '<Placemark>'); writeln(OutFile, Format(' <name>%s</name>',[pieces[MSASField]])); //Colorize the marker Darkness:=StrToFloatDef(pieces[MSASField],0); for ColorPointer := low(KMLValuesSelected) to high(KMLValuesSelected) do begin if Darkness > KMLValuesSelected[ColorPointer] then break; end; writeln(OutFile, Format('<styleUrl>#m%.2f</styleUrl>',[KMLValuesSelected[ColorPointer]])); writeln(OutFile, Format(' <Point><coordinates>%s,%s</coordinates></Point>',[pieces[LongitudeField],pieces[LatitudeField]])); writeln(OutFile, '</Placemark>'); end; writeln(OutFile, '</Document>'); writeln(OutFile, '</kml>'); StatusMessage('KML file ('+OutFileName+') written.'); CloseFile(OutFile); end; end else begin MessageString:='There was no GPS data stored in '+OpenLogDialog.Filename; StatusMessage(MessageString); MessageDlg('No GPS data in file',MessageString,mtWarning,[mbOK],''); end; end else begin MessageString:='The dat file is too short: '+OpenLogDialog.Filename; StatusMessage(MessageString); MessageDlg('dat file too short',MessageString,mtWarning,[mbOK],''); end; end; Infile.Free; StatusLine.Text:='Converted file stored in: '+OutFileName; end; initialization {$I dattokml.lrs} end. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./citylights_round_icon.ico�������������������������������������������������������������������������0000644�0001750�0001750�00000030616�14576573022�016254� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dd����x1�����(���d�������������������������������������� ���� � � � � �� � � � #� %� )�(� -�-�%� $� +� (��+��"�)�&�/�*� -� 1�-� 7�1� 5�#�8�7�?� <�7�5� 1�%"*� :�#-�"4�#6�(!7� "A�"A� !G�,(2�=(3� )J�*E�)M�+G�)P�",D�)W� ,Q�*Y�/B�10<�+0?�70<�2]�3^�5W�4^�(5V�,9N�#:N�6:H�B:I� :e�@>M�:m�9=V�=g�M?Q�H?S�=AR�HAP�MBN�MFT�BGZ�)Ej�OFZ�8G_�JHY�KG^�9Fj�QJX�NHe�ULa�$Jy�UN\�JNa�QN_�PPY�QMd�7Px�VSe�[Rg�[Tb�MTj�XTk�CRy�6Uu�SVi�TUn�YWh�H[k�IYx�^Zr�YZt�^\m�U\s�Y^k�Z]p�=_~�]bn�Z^�_au�dbu�[a~�aa|�[cy�Wd|�bey�8f�Pe�pgv�[d�Yf�[i�ai�gi}�bh�gh�lm�gm�]o�nm�hp�jn�er�kr�ws�zv�Sw�ku�ew�vw�w�qw�ky�lx�Pv�v|�r|�l~�r~�s�S�z��q�g����s�z��z����o���a�w�}�f����}��v�������������x���������������������������������������������������������������������������������������������������������������������������������������   �����������  !!$   ����������� $  !! %'%   ����������$'4'  $'//!%'!!" !+ ���������$ !9*   !%$%''%!!*%  ��������/%    ###/$' "$'*+/$$ �������� $*;  *!'%+%  '44%*$�������     !!!!  !! *9'4/*/���������      '+'%$ '!!% /% ! ������� !   ""!%!' %!$!"!" ������2   "%''+!!"  ������ "      '! !  ����� !'  "!!"!  !    �����$'!!)(    "      ������/=@F;      "�������*G6!',,"     ������IO)6;''(((   ����� $IO9%'$!;!!         " �������$4OAQ6*5!(5$"           " ����94;=IG;)4)!'/         ! - ����� 4O=6;9=?F;))6!  "   " "++1(+,((""" ������@OI4S969/=;9;'":"" """" "+:1,+,KfmYRoD����� 9@IOHI@9H249*5"-[:2B2("  !"""+:KKLRl_arD�����9IOG@QSOSL:<"BB-," DJ]]RLuhD""  33-">2( (pȰ۶ۙzɯZ����� !GOAQQOIOH`]>K]]K]KLZPMVVf~h"""8TVV12uuC!%'B]ɶw.����� ('@OOOIOIGJRVVVZ]f]]ffrf{hD,11,,+21"KD-+DDVVb>Jz:]úE����/#'OOII@@=Fp`np~ym^ZM22>KKKBKBB2Mkɶ^����2@;GGOOA@Fj؛}`P�����4HFGFGQIG6;j꾾ݾ޿r���� <@FGF=;IF5Jj܇}}Ս0������;I@?G=9F5;5j}M ����2Hdd=GF@=;44qf����� 9SH9G==9449}˄.�����/4=<4G=99<[qӕD�����4H=99=6;<:vڨM����� 4S@[jd[<;[}ڴV ������/Svӵf������+;`ӿn�����+5;;Ͽz&�����,/vʿz0����2]vŵz.����]ŷz.�����0Zŵz0����0Zvſn&���0Zſn&����0Zzſn����0Zzǿſÿf�����VzǿǿǿſǿV �����MnzM ����� DnzD����� Dnzzz|0�����0Zzz|z|||f&�����&Vrzxx|||V����Mnzx|||z||z~C ����� Dfr||||xxx|||r7������.Psrsr|yw||||||Z&����Mfssrosyx|y||y||xM �����7^rortrrrrtyr|||||y|f7�����&Pgkrrrktosrtt|wy||yy{|V������ C^rrkkkkokttttoyw|y|{|~{rC������.Pfkckkokktkrrtyry||||||wy|^&����CZgigrkkkkktttsootttwy||y||||rC ������.P^ggggggkgkgkortrrrrrttr|{||||||||||V&������ CP^fghhggggkgkkkrktrrrtr{tyxt||yy||||~~yxf7 ������&C^gaegggggegkkookkktrrttttr{t|y|ywy|||||||rP������ .Nc_cgiggggccegikmmkmmmtttttt|yyy|yyyyy|yyy||y|||ww{Z.������EW_aicgeciceemiekmkelmlttttrttttytywwyyy|wy|||yyy|y|xwywywyw|yyyyywxgC ������&EYacciciceegeeciiikkokmmktttmoooyowoywwwwwy||yyywwwwwyywyyyxxywwyyycC������.NY\aaiiicccceccgiikcekkkklkkktttottttowxootytrttwyyyyyyyyywx|yyywkP&����� .NY^^^\c\^aaaaeegeegegghgliokkokkktktmktrtttttytltttttowttotttttkP.������ 7P^YYYYa^^aacccgecceeeeeekckkkkkollkokkktkootktoooooowtttttooomP7 �����7NU\\YYY\\a^_^^_cgeccceggiggekeilemllkkkkookttkkkloookkokkoogW7 �������7NXWWYYY\aYac\aaaaae^gigeceeeeigiceekcokkrkkkklkklkkllkrikgW7 �����7NUYYW\\\Xa\YYY\aacgga\eaiggeeeggeeceiigkgkggkgkocgccekkgP7 ������7NWWU\T\YYTY\YaaacaaaaaaggeaaecegccceeccggiiegogegciccaN7 ��������.EUUWW^WY\Y\Y\\aYaa\\\ca^aeecaeicaeaeegcigeggcecgeea\N. �������� &ENWUWWUUY\Y\YY\YY\YY\Y\\ca^^a\\aac^ggaccaeieccgcaWE&�������7NWUWWWWWUWWU\YY\YYY^\\aYaa\aaa\\\aa^caa\ca\g^WN7�������� .EPNWTWWWWWWWWWXWWWYUYWWWYY^Y^\YYaY^_aYaaYYPNE& ��������.ENNUWWWTWWWWWWWWW^WWWYYY^\Y\\WY^_\Y\YYWNE. ��������� &7ENTUXWWWWTWUWWTWWXWWYXT\YYWXY^\YYUWNE7���������� &.EENWUUUWWWWWPWWWWWTWWWXWYW^WWWWNE. ��������� .7EENNXTUWWXTWWUUTWXWWWUTUNNE7&����������� &.7EENNPNNNUNWWUTNNNNEE7& ���������� &..77777EEEEE77.& ���������������   ����������������������������������������������������������������������������������������������������?������������������������������?��������������������������������������������������������?������������������������������������������������������������������������������������������������������?������������?�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������p��������������p��������������p��������������p��������������p��������������p��������������p��������������p��������������p��������������p��������������p��������������p��������������p��������������p���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������?����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./udm.pkgproj���������������������������������������������������������������������������������������0000644�0001750�0001750�00000041124�14576573022�013335� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>PROJECT</key> <dict> <key>PACKAGE_FILES</key> <dict> <key>DEFAULT_INSTALL_LOCATION</key> <string>/</string> <key>HIERARCHY</key> <dict> <key>CHILDREN</key> <array> <dict> <key>CHILDREN</key> <array> <dict> <key>BUNDLE_CAN_DOWNGRADE</key> <false/> <key>BUNDLE_POSTINSTALL_PATH</key> <dict> <key>PATH_TYPE</key> <integer>0</integer> </dict> <key>BUNDLE_PREINSTALL_PATH</key> <dict> <key>PATH_TYPE</key> <integer>0</integer> </dict> <key>CHILDREN</key> <array/> <key>GID</key> <integer>80</integer> <key>PATH</key> <string>/Applications/udm.app</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>493</integer> <key>TYPE</key> <integer>3</integer> <key>UID</key> <integer>0</integer> </dict> </array> <key>GID</key> <integer>80</integer> <key>PATH</key> <string>Applications</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>509</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> <dict> <key>CHILDREN</key> <array> <dict> <key>CHILDREN</key> <array/> <key>GID</key> <integer>80</integer> <key>PATH</key> <string>Application Support</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>493</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> <dict> <key>CHILDREN</key> <array/> <key>GID</key> <integer>0</integer> <key>PATH</key> <string>Automator</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>493</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> <dict> <key>CHILDREN</key> <array/> <key>GID</key> <integer>0</integer> <key>PATH</key> <string>Documentation</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>493</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> <dict> <key>CHILDREN</key> <array/> <key>GID</key> <integer>0</integer> <key>PATH</key> <string>Extensions</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>493</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> <dict> <key>CHILDREN</key> <array/> <key>GID</key> <integer>0</integer> <key>PATH</key> <string>Filesystems</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>493</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> <dict> <key>CHILDREN</key> <array/> <key>GID</key> <integer>0</integer> <key>PATH</key> <string>Frameworks</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>493</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> <dict> <key>CHILDREN</key> <array/> <key>GID</key> <integer>0</integer> <key>PATH</key> <string>Input Methods</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>493</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> <dict> <key>CHILDREN</key> <array/> <key>GID</key> <integer>0</integer> <key>PATH</key> <string>Internet Plug-Ins</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>493</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> <dict> <key>CHILDREN</key> <array/> <key>GID</key> <integer>0</integer> <key>PATH</key> <string>LaunchAgents</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>493</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> <dict> <key>CHILDREN</key> <array/> <key>GID</key> <integer>0</integer> <key>PATH</key> <string>LaunchDaemons</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>493</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> <dict> <key>CHILDREN</key> <array/> <key>GID</key> <integer>0</integer> <key>PATH</key> <string>PreferencePanes</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>493</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> <dict> <key>CHILDREN</key> <array/> <key>GID</key> <integer>0</integer> <key>PATH</key> <string>Preferences</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>493</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> <dict> <key>CHILDREN</key> <array/> <key>GID</key> <integer>80</integer> <key>PATH</key> <string>Printers</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>493</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> <dict> <key>CHILDREN</key> <array/> <key>GID</key> <integer>0</integer> <key>PATH</key> <string>PrivilegedHelperTools</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>493</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> <dict> <key>CHILDREN</key> <array/> <key>GID</key> <integer>0</integer> <key>PATH</key> <string>QuickLook</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>493</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> <dict> <key>CHILDREN</key> <array/> <key>GID</key> <integer>0</integer> <key>PATH</key> <string>QuickTime</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>493</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> <dict> <key>CHILDREN</key> <array/> <key>GID</key> <integer>0</integer> <key>PATH</key> <string>Screen Savers</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>493</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> <dict> <key>CHILDREN</key> <array/> <key>GID</key> <integer>0</integer> <key>PATH</key> <string>Scripts</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>493</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> <dict> <key>CHILDREN</key> <array/> <key>GID</key> <integer>0</integer> <key>PATH</key> <string>Services</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>493</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> <dict> <key>CHILDREN</key> <array/> <key>GID</key> <integer>0</integer> <key>PATH</key> <string>Widgets</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>493</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> </array> <key>GID</key> <integer>0</integer> <key>PATH</key> <string>Library</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>493</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> <dict> <key>CHILDREN</key> <array> <dict> <key>CHILDREN</key> <array/> <key>GID</key> <integer>0</integer> <key>PATH</key> <string>Shared</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>1023</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> </array> <key>GID</key> <integer>80</integer> <key>PATH</key> <string>Users</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>493</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> </array> <key>GID</key> <integer>0</integer> <key>PATH</key> <string>/</string> <key>PATH_TYPE</key> <integer>0</integer> <key>PERMISSIONS</key> <integer>493</integer> <key>TYPE</key> <integer>1</integer> <key>UID</key> <integer>0</integer> </dict> <key>PAYLOAD_TYPE</key> <integer>0</integer> <key>SHOW_INVISIBLE</key> <false/> <key>SPLIT_FORKS</key> <true/> <key>TREAT_MISSING_FILES_AS_WARNING</key> <false/> <key>VERSION</key> <integer>4</integer> </dict> <key>PACKAGE_SCRIPTS</key> <dict> <key>POSTINSTALL_PATH</key> <dict> <key>PATH_TYPE</key> <integer>0</integer> </dict> <key>PREINSTALL_PATH</key> <dict> <key>PATH_TYPE</key> <integer>0</integer> </dict> <key>RESOURCES</key> <array/> </dict> <key>PACKAGE_SETTINGS</key> <dict> <key>AUTHENTICATION</key> <integer>1</integer> <key>CONCLUSION_ACTION</key> <integer>0</integer> <key>FOLLOW_SYMBOLIC_LINKS</key> <false/> <key>IDENTIFIER</key> <string>com.unihedron.pkg.udm</string> <key>LOCATION</key> <integer>0</integer> <key>NAME</key> <string></string> <key>OVERWRITE_PERMISSIONS</key> <false/> <key>PAYLOAD_SIZE</key> <integer>-1</integer> <key>RELOCATABLE</key> <false/> <key>USE_HFS+_COMPRESSION</key> <false/> <key>VERSION</key> <string>1.0.0.129</string> </dict> <key>PROJECT_COMMENTS</key> <dict> <key>NOTES</key> <data> </data> </dict> <key>PROJECT_SETTINGS</key> <dict> <key>BUILD_PATH</key> <dict> <key>PATH</key> <string>build</string> <key>PATH_TYPE</key> <integer>1</integer> </dict> <key>EXCLUDED_FILES</key> <array> <dict> <key>PATTERNS_ARRAY</key> <array> <dict> <key>REGULAR_EXPRESSION</key> <false/> <key>STRING</key> <string>.DS_Store</string> <key>TYPE</key> <integer>0</integer> </dict> </array> <key>PROTECTED</key> <true/> <key>PROXY_NAME</key> <string>Remove .DS_Store files</string> <key>PROXY_TOOLTIP</key> <string>Remove ".DS_Store" files created by the Finder.</string> <key>STATE</key> <true/> </dict> <dict> <key>PATTERNS_ARRAY</key> <array> <dict> <key>REGULAR_EXPRESSION</key> <false/> <key>STRING</key> <string>.pbdevelopment</string> <key>TYPE</key> <integer>0</integer> </dict> </array> <key>PROTECTED</key> <true/> <key>PROXY_NAME</key> <string>Remove .pbdevelopment files</string> <key>PROXY_TOOLTIP</key> <string>Remove ".pbdevelopment" files created by ProjectBuilder or Xcode.</string> <key>STATE</key> <true/> </dict> <dict> <key>PATTERNS_ARRAY</key> <array> <dict> <key>REGULAR_EXPRESSION</key> <false/> <key>STRING</key> <string>CVS</string> <key>TYPE</key> <integer>1</integer> </dict> <dict> <key>REGULAR_EXPRESSION</key> <false/> <key>STRING</key> <string>.cvsignore</string> <key>TYPE</key> <integer>0</integer> </dict> <dict> <key>REGULAR_EXPRESSION</key> <false/> <key>STRING</key> <string>.cvspass</string> <key>TYPE</key> <integer>0</integer> </dict> <dict> <key>REGULAR_EXPRESSION</key> <false/> <key>STRING</key> <string>.svn</string> <key>TYPE</key> <integer>1</integer> </dict> <dict> <key>REGULAR_EXPRESSION</key> <false/> <key>STRING</key> <string>.git</string> <key>TYPE</key> <integer>1</integer> </dict> <dict> <key>REGULAR_EXPRESSION</key> <false/> <key>STRING</key> <string>.gitignore</string> <key>TYPE</key> <integer>0</integer> </dict> </array> <key>PROTECTED</key> <true/> <key>PROXY_NAME</key> <string>Remove SCM metadata</string> <key>PROXY_TOOLTIP</key> <string>Remove helper files and folders used by the CVS, SVN or Git Source Code Management systems.</string> <key>STATE</key> <true/> </dict> <dict> <key>PATTERNS_ARRAY</key> <array> <dict> <key>REGULAR_EXPRESSION</key> <false/> <key>STRING</key> <string>classes.nib</string> <key>TYPE</key> <integer>0</integer> </dict> <dict> <key>REGULAR_EXPRESSION</key> <false/> <key>STRING</key> <string>designable.db</string> <key>TYPE</key> <integer>0</integer> </dict> <dict> <key>REGULAR_EXPRESSION</key> <false/> <key>STRING</key> <string>info.nib</string> <key>TYPE</key> <integer>0</integer> </dict> </array> <key>PROTECTED</key> <true/> <key>PROXY_NAME</key> <string>Optimize nib files</string> <key>PROXY_TOOLTIP</key> <string>Remove "classes.nib", "info.nib" and "designable.nib" files within .nib bundles.</string> <key>STATE</key> <true/> </dict> <dict> <key>PATTERNS_ARRAY</key> <array> <dict> <key>REGULAR_EXPRESSION</key> <false/> <key>STRING</key> <string>Resources Disabled</string> <key>TYPE</key> <integer>1</integer> </dict> </array> <key>PROTECTED</key> <true/> <key>PROXY_NAME</key> <string>Remove Resources Disabled folders</string> <key>PROXY_TOOLTIP</key> <string>Remove "Resources Disabled" folders.</string> <key>STATE</key> <true/> </dict> <dict> <key>SEPARATOR</key> <true/> </dict> </array> <key>NAME</key> <string>udm</string> <key>PAYLOAD_ONLY</key> <false/> </dict> </dict> <key>TYPE</key> <integer>1</integer> <key>VERSION</key> <integer>2</integer> </dict> </plist> ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./ethernet_connector.png����������������������������������������������������������������������������0000644�0001750�0001750�00000007745�14576573022�015563� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR�� ����� j��IDATxڡea "&iEj54`7 I?"F jѺ& l2M9낯 /|X뽙zp}43o<z���py�� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@��n�#7V��8g#`>W�+X��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d��٭�pdn̽#`^=�8N�g �� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F���+�ލylřrSbf_=?3V�.?N.'V83�+X��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d7g=ŰGW83�uwf^a=qufn�XK%W�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2��pƯ3΁C53qJ߫G�pv3]=py �YwO$W�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2�tfn%33ɻ3�ٙy~xH뱺~>:��e|̼zgV8fg3�51@87W\^=��,�� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2���� #@�����2��V��8Y=6$@�73pfq(`��o@﷙yu؀f�z�p>`����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@fz��;3W8$�lk� ��d^W z��p~8z���+X��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����d�� ��@F�����dYHu����IENDB`���������������������������./playwavepackage.pas�������������������������������������������������������������������������������0000744�0001750�0001750�00000000727�14077651773�015036� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ This file was automatically created by Lazarus. Do not edit! This source is only used to compile and install the package. } unit playwavepackage; interface uses uplaysound, aboutplaysound, LazarusPackageIntf; implementation procedure Register; begin RegisterUnit('uplaysound', @uplaysound.Register); RegisterUnit('aboutplaysound', @aboutplaysound.Register); end; initialization RegisterPackage('playwavepackage', @Register); end. �����������������������������������������./udmc.lpr������������������������������������������������������������������������������������������0000644�0001750�0001750�00000007356�14576573022�012632� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������program udmc; {$mode objfpc}{$H+} uses {$IFDEF UNIX}{$IFDEF UseCThreads} cthreads, {$ENDIF}{$ENDIF} Classes , SysUtils , CustApp , cli_utils , dateutils ; { Tudmc } type Tudmc = class(TCustomApplication) protected procedure DoRun; override; public constructor Create(TheOwner: TComponent); override; destructor Destroy; override; procedure WriteHelp; virtual; end; procedure Tudmc.DoRun; var ErrorMsg: String; serialnumber: string; DelayInSeconds: Integer=60;//Drfault delay of 60 seconds RemainingSeconds: Integer; RunWhile:Boolean=True; begin // quick check parameters ErrorMsg:=CheckOptions('hr',['help','read','log','LCM:','LCMS:','LCMM:','SUI:','v:']); if ErrorMsg<>'' then begin ShowException(Exception.Create(ErrorMsg)); Terminate; Exit; end; // parse parameters if HasOption('h','help') then begin WriteHelp; Terminate; Exit; end; //Verbose mode if HasOption('v') then begin verbosity:=StrToInt64Def(GetOptionValue('v'),1); end; //Serial number defined if HasOption('SUI') then begin serialnumber:=GetOptionValue('SUI'); cli_utils.FindUSBtty(serialnumber); end; //Log if HasOption('l','log') then begin verbose(verbose_debug,'HasOption l log'); WriteDLHeader(''); end; if HasOption('LCMS') then begin LCMode:='LCMS'; LCFreq:=StrToIntDef(GetOptionValue('LCMS'),1); DelayInSeconds := LCFreq; //Store every x seconds end; if HasOption('LCMM') then begin LCMode:='LCMM'; LCFreq:=StrToIntDef(GetOptionValue('LCMM'),1); DelayInSeconds := LCFreq*60; //Store every x seconds end; if HasOption('LCM') then begin //Set delay verbose(verbose_debug,'HasOption LCM'); LCMode:='LCM'; LCFreq:=StrToIntDef(GetOptionValue('LCM'),1); DelayInSeconds := 1; //Store every x seconds **must be fixed for specific mode** end; if HasOption('r','read') then begin //Read once verbose(verbose_debug,'HasOption r read'); cli_utils.FindUSBtty(serialnumber); writeln(SendGet('rx')); end else begin //Perform logging if not "read once" mode verbose(verbose_action,'Perform logging if not "read once" mode'); cli_utils.FindUSBtty(serialnumber); if not (SelectedPort='') then begin WriteDLHeader(''); LogOneReading(); //Store first reading RemainingSeconds:= DelayInSeconds; verbose(verbose_action,'Perform continuous logging every '+IntToStr(DelayInSeconds)+' seconds.'); while RunWhile do begin //Waking up once per second sleep(1000 - MilliSecondOf(Now)); Dec(RemainingSeconds); if RemainingSeconds<=0 then begin LogOneReading(); //Store successive readings RemainingSeconds:= DelayInSeconds; //Reset delay end; end; end; end; // stop program loop Terminate; end; constructor Tudmc.Create(TheOwner: TComponent); begin inherited Create(TheOwner); StopOnException:=True; end; destructor Tudmc.Destroy; begin inherited Destroy; end; procedure Tudmc.WriteHelp; begin { add your help code here } writeln('Usage: ',ExeName,' -h'); WriteLn('--SUI=FT345678 to specifiy the USB ID Ex.: FT345678'); WriteLn(' default to last USB SQM found'); WriteLn('-r | --read to read once only'); WriteLn('--log'); //WriteLn('--LCM=n n=mode'); WriteLn('--LCMS=n where n=seconds'); //WriteLn('--LCMM=n n=minutes'); WriteLn('--v=n where n ='); WriteLn(' 1 for errors only'); WriteLn(' 2 for actions'); WriteLn(' 3 debugging information'); end; var Application: Tudmc; {$R *.res} begin Application:=Tudmc.Create(nil); Application.Title:='Unihedron Device Manager command line'; Application.Run; Application.Free; end. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./convertlogfileunit.pas����������������������������������������������������������������������������0000644�0001750�0001750�00000020055�14576573021�015600� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit convertlogfileunit; //Tool: .dat to Moon Sun .csv {$mode objfpc} interface uses appsettings, //Required to read application settings (like locations). dateutils, //Required to convert logged UTC string to TDateTime strutils, //Required for checking lines in conversion file. moon, //required for Moon calculations Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, ComCtrls; type { Tconvertdialog } Tconvertdialog = class(TForm) CloseButton: TButton; OutputFilenameDisplay: TLabeledEdit; LatitudeDisplay: TLabeledEdit; LongitudeDisplay: TLabeledEdit; Memo1: TMemo; OpenFileDialog: TOpenDialog; SelectButton: TButton; StatusBar1: TStatusBar; procedure CloseButtonClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure SelectButtonClick(Sender: TObject); private { private declarations } public { public declarations } end; var convertdialog: Tconvertdialog; implementation uses Unit1 , header_utils; { Tconvertdialog } procedure Tconvertdialog.SelectButtonClick(Sender: TObject); var File1,OutFile: TextFile; Str: String; pieces: TStringList; MoonElevation: extended = 0.0; MoonAzimuth: extended = 0.0; SunElevation: extended = 0.0; SunAzimuth: extended = 0.0; UTCRecord :TDateTime; ComposeString: String; OutFileString: String; WriteAllowable: Boolean = True; //Allow output file to be written or not. LineNumber: Integer =0; EndTrimString: String =', Zenith, Azimuth, MoonPhaseDeg, MoonElevDeg, MoonIllum'; ErrorString: String; begin pieces := TStringList.Create; { Clear status bar } StatusBar1.Panels.Items[0].Text:=''; OpenFileDialog.Filter:='data log files|*.dat|All files|*.*'; OpenFileDialog.InitialDir := appsettings.LogsDirectory; if OpenFileDialog.Execute then begin //Start reading file. StatusBar1.Panels.Items[0].Text:='Reading Input file'; AssignFile(File1, OpenFileDialog.Filename); OutFileString:=ChangeFileExt(OpenFileDialog.Filename,'.csv'); AssignFile(OutFile, OutFileString); OutputFilenameDisplay.Text:=OutFileString; //StatusBar1.Panels.te; if FileExists(OutFileString) then begin if (MessageDlg('Overwrite existing file?','Do you want to overwrite the existing file?',mtConfirmation,[mbOK,mbCancel],0) = mrOK) then WriteAllowable:=True else WriteAllowable:=False; end; if WriteAllowable then begin {$I+} try Reset(File1); Rewrite(OutFile); //Open file for writing StatusBar1.Panels.Items[0].Text:='Processing Input file, please wait ...'; Application.ProcessMessages; repeat // Read one line at a time from the file. Readln(File1, Str); inc(LineNumber); // Get location data from header. if AnsiStartsStr('# Position',Str) then begin //Prepare for parsing. pieces.Delimiter := ','; pieces.StrictDelimiter := True; //Do not parse spaces. //Remove comment from beginning of line. pieces.DelimitedText := AnsiRightStr(Str,length(Str) - RPos(':',Str)); if (pieces.Count<2) then begin ErrorString:='No location data found in header.'; StatusBar1.Panels.Items[0].Text:=ErrorString; MessageDlg('Error',ErrorString, mtError, [mbOK],0); Writeln(OutFile,'Error: No location data found in header.'); LatitudeDisplay.Text:='nul'; LongitudeDisplay.Text:='nul'; break; end else begin MyLatitude:=StrToFloat(pieces.Strings[0]); if ((MyLatitude<-90.0) or (MyLatitude>90.0)) then begin ErrorString:='Error: Latitude ' + FloatToStr(MyLatitude) +' out of range'; StatusBar1.Panels.Items[0].Text:=ErrorString; StatusMessage(ErrorString); break; end; MyLongitude:=StrToFloat(pieces.Strings[1]); if ((MyLongitude<-180.0) or (MyLongitude>180.0)) then begin ErrorString:='Error: Longitude '+FloatToStr(MyLongitude)+' out of range'; StatusBar1.Panels.Items[0].Text:=ErrorString; StatusMessage('Error: Longitude '+FloatToStr(MyLongitude)+' out of range'); break; end; LatitudeDisplay.Text:=Format('%.3f',[MyLatitude]); LongitudeDisplay.Text:=Format('%.3f',[MyLongitude]); end; end; Application.ProcessMessages; //Get and modify record header string //if AnsiStartsStr('# YYYY-MM-DDTHH:mm:ss.fff;',Str) then // Writeln(OutFile,'UTC '+AnsiRightStr(Str,length(Str) - 2)+';MoonPhaseDeg;MoonElevDeg;MoonIllum%;SunElevDeg'); Str:=Trim(Str); if AnsiStartsStr('# UTC Date & Time,',Str) then begin if AnsiEndsStr(EndTrimString,Str) then begin Str:=AnsiLeftStr(Str,Length(Str)-Length(EndTrimString)); end; //Remove preceding comment marker Writeln(OutFile,AnsiRightStr(Str,length(Str) - 2)+';MoonPhaseDeg;MoonElevDeg;MoonIllum%;SunElevDeg'); end; Application.ProcessMessages; //Ignore comment lines which have # as first character. if not AnsiStartsStr('#',Str) then begin //Separate the fields of the record. pieces.Delimiter := ';'; pieces.DelimitedText := Str; begin //parse the fields, and convert as necessary. //Convert UTC string 'YYYY-MM-DDTHH:mm:ss.fff' into TDateTime UTCRecord:=ScanDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz',pieces.Strings[0]); //Calculate Moon position //Change sign for Moon calculations Moon_Position_Horizontal( StrToDateTime(DateTimeToStr(UTCRecord)), -1.0*MyLongitude, MyLatitude, MoonElevation, MoonAzimuth); Sun_Position_Horizontal( StrToDateTime(DateTimeToStr(UTCRecord)), -1.0*MyLongitude, MyLatitude,SunElevation, SunAzimuth); //Prepare string for output. ComposeString:= Str + ';' //Moon Phase angle (0 to 180 degrees). + Format('%.1f;',[moon_phase_angle(StrToDateTime(DateTimeToStr(UTCRecord)))]) //Moon elevation (positive = above horizon, negative = below horizon). + Format('%.3f;',[MoonElevation]) //Moon illumination pecent. + Format('%.1f;',[current_phase(StrToDateTime(DateTimeToStr(UTCRecord)))*100.0]) //Sun elevation (positive = above horizon, negative = below horizon). + Format('%.3f;',[SunElevation]) ; WriteLn(OutFile,ComposeString); end;//End of checking number of fields in record. end; until(EOF(File1)); // EOF(End Of File) The the program will keep reading new lines until there is none. CloseFile(File1); StatusBar1.Panels.Items[0].Text:='Writing Output file'; except //on E: EInOutError do begin on E: Exception do begin MessageDlg('Error', 'File handling error occurred. Details: ' + sLineBreak + 'On Line number: '+ IntToStr(LineNumber) + sLineBreak +E.ClassName+'/'+E.Message, mtError, [mbOK],0); StatusBar1.Panels.Items[0].Text:='Error encountered.'; end; end; Flush(OutFile); CloseFile(OutFile); StatusBar1.Panels.Items[0].Text:='Processing complete'; end;//End of WriteAllowable check. end; end; procedure Tconvertdialog.CloseButtonClick(Sender: TObject); begin Close; end; procedure Tconvertdialog.FormCreate(Sender: TObject); begin { Clear status bar } StatusBar1.Panels.Items[0].Text:=''; end; initialization {$I convertlogfileunit.lrs} end. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./about.lfm�����������������������������������������������������������������������������������������0000644�0001750�0001750�00000277201�14576573021�012772� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object Form4: TForm4 Left = 2003 Height = 542 Top = 205 Width = 464 BorderIcons = [] Caption = 'About' ClientHeight = 542 ClientWidth = 464 Constraints.MinHeight = 520 Constraints.MinWidth = 464 Icon.Data = { AE7B00000000010001006464000001001800987B000016000000280000006400 0000C80000000100180000000000307500006400000064000000000000000000 000005235E14122800182C1339730C4281044E84104F8B1558950763A4043A6F 032648122D4815244B133C6D065588065189084B8A09639E115A980E4E8E0059 94075993165592126BA400448307417512518306518F1764A3104F820A3B670B 34610426510F305D093E69063763103B6612365A1217381313311210240F0D21 121125111227080D220A102710182F1017300B16320C17320D1833101A321017 300E162D0D132A0B11280D0E230E0F241011260D0F270B0F280B0F280E122E11 15311216330A15310B1E390B243E041D37081B36121D391519360D1A3A101F3F 0F1E3E0A1C3B0D1F3E0D21400B1F3E071C3B051F3D0C2140101F3F121D3D0E17 380B1636091838071B3A09213F0B1F3E101D3D111A3B0F18390C19390B1F3E0D 25430D1D3A0B1D3A0E2241142C4A16458200081E1939500F4F8506548F055388 1F5E9A1B5A96156DB4014881002142132133252D4A172E5B0B447B145DA10653 92135D9D124F9107549200649B0E56920F4B87076BA121639E114A810E518A04 5493044C8809426F0D3E660021510929520F2E5B03386300305C0B355F0E3054 0C0E300B0926130F220D0B1E100F23101125080B20090E2310162D10162D0B16 320C17320E1934101A321118310E162D0C12290A10270E0F240F10250F10250C 0E26090D260B0F280F132F141834111A350916300C1B350E1F39071832071630 0F1C36121B360D1A3A1221410E1D3D081A390E203F0E22410A1E3D081D3C0420 3E0C24420E203F121D3D0E19390916360C1E3D0B203F0C24420C203F0F1E3E12 1D3D101B3B0A19390A1E3D0E26440E203F0C1E3D0E203F122645214D83193E5A 072B4913588913669A0A538F064D8D14376F0E487C134F850D315900122B1A22 3F212B5316487D0C53A3076CAA1668A90C5B9A075F9B075B9512508C0A417E04 4B8400336A15508810609D0D64A60C4C8307325909365B0939690C2C55072752 00335C01315B09335D133658171A390D0B28110D200E0A1D100E21100F23060A 1D080D220E15290E142B0B16320D18330E1934111B331219320E162D0C12290A 10271011261011260E0F240A0C24070B240B0F28111531161A360D1E3806152F 0C1732111A3509122D06112C0A19330B1C360D1A3A1322420D1C3C0618370F21 400F2342091D3C091E3D05213F0E26440E203F111E3E0E19390A173711234211 26450B25430A1F3E0D1C3C121D3D0F1A3A071636061B3A0A2442091B3A031534 03123206143112265D043758102F56003A6714598A0C4D92004A8F1C164F0F13 300E215415316700244C17214915274C0C56860054A60B5A9D1054970757960B 5E9B0E518E13629B086298064D86093B70114E86005A9B0866A8073D740E2E51 13406202396C1D3B640D2A560539620838620B345B173A5C1E21400B0A24100D 1D0D0A1A0F0D200F0E2207081C080B200E13280C13270B16320D18330F1A3511 1B331219320E162D0C1229090F261213281011260E0F24080A22060A230A0E27 111531181C380B223806162D0C162E1317300C1029050F2708182F071E340D1A 3A1423430C1B3B051736102241102443091D3C091E3D05213F0F27450D1F3E11 1E3E0E1939081737122645152A490A2442091E3D0C1B3B0F1C3C0B1838041333 03183707213F172B4A1224430E1D3D101B390016300729460A2D4E0A1929013D 780B60AA065DB519243A1C08140E1526193351182C5517244A2311360F37610C 6BAA0B58A10566A50A649B106BA200609C0E6FB1046DB00A5AA1003F651D598D 1565A00B3D77001E4A0C395B123361003B73003E70003266092D5D0B2F571531 53141C390A061F0F0D21110B1E0F0B1E0D0B1F0B0A1E070A1F080F230C142B0F 1A300615350716360919360B19360A183409153107142E05122C060D26050C25 060B24050A23070B240B0C260D0E280F102A1525360F2138091B380813310A10 27091128071833031F3E0B1C3D0B1C3D0D1F3E0F214010223F0E203D0D1E390C 1D380F1F3C13234014223F0E1C390C17350D17350D17350C163406203E09213F 0E233F10203D0D18340A112C0E122E141733051E3E061F3F0B20400D20411713 30091024030E2915203B154F9106457F1555A3163268110B1E0D0E2A0C2E521B 304F101B47212754012A43094A87196AAD0862A30C5091134A87083E73003D6F 086B9F0365A11347700F47780C457C002F63092E5A0A2F550D34600130630A3E 6D113A670729540A2D4F1329450C10290A081C090B1D110B1E100C1F0E0C200A 0B1F080B20080F230C142B10182F0917340A18350C1A370D1B370E1A360C1834 0A16320916300E152E0C132C0D122B0B10290C10290E122B12132D13142E171B 2E1219320C173509153108142C08192E081F390524430E2343081D3D0D214013 254212223F0C1A360814300E1A36081B36071A350B1C370E1F3A0E1C380C1834 0E1A36121E3A0627410F2D48112E490C253F071C370A1B350F1C360F1B331429 451126420F213E0F1D3A001329111226130620110E2E204A8F111F5309226821 5BA70E224B0702210B3258021B3D01114013305C032231072A62084C87075A98 1963A50C457C0E355B041F410C2F5B16346F183261082F5C051F4E012854062E 581029530E375E15325E112B530C264B16315319314D0B172F08061A09081804 0C190F0B1E0E0C1F0E0D210B0C20080B20090E230D132A0F172E0A16320C1834 0E1A360F1B37101C38101B370F1A360E19350D172F0D142D0A112A0A0F28090E 270B0F280C10290F102A13112711162F0F1B370A1B3606182F0719300A1F3A0E 26440F2D4A05213F0A22400A1C39071531060E2B060D28161A36071C37071C37 0B1E390D203B0C1D380718330816320B19350825400C27410E27410E243D0B1C 3609172E0B172F101B3115233A111D350C162E070E2708142C0D1233160C2A0F 10251648841F3468061D5B1F66B01D4F910D0F2D15395F0626571525540C2950 182B4014305919386D07326B123F780D315F0A22401827411224491C3060171B 4C0D1F48151B400B25491132590F254F0B2E500C1E3D0D1435040E2C1B26411D 283E0A0E210706160B0D180A111A0E0C1F0E0E200F0E220C0D21090C21090E23 0C102810142C0C132C0B152D0E17321019340F1A36101B37101B37101B370F19 310D172F0C132C091029090E27080D260A0E270B0F280C12290F1931101F390B 1F38061A33081731101B3718203E01234002203D0C27420A1D380814300C102C 0708240F0D2A00162F071D360B213A0B1F380C1D370C1D370E1D370B1A340B16 3109142F0B142F10152E0C1029080A220B0B231210260F15280C1225080C1F06 071B12254602264C0B1F381D1D2D18457E124177103A69225E9906478C182B58 1339630F37681E235416224C172A4B011F3A012B58143661122B531C284A191C 3B2423431F1D4114184115103D1412361513301823411C32551C32560A1E3D00 071F0C0B25100D260A071D0F0D21101020050B180A0E19110F1B0E0E200D0F21 0F10240E0F230A0D220A0D220D0F270F11290A0E260B0F270D132A0D142D0E17 320F17340E19350F1937142038121E36101A320F162F0D142D0F142D0F142D10 152E10152E0E152E0B182E091B320A1D38101E3B111C38161A3700213B03213C 10294311243F121D381216320F0E28120F290617310D1E3810213B0F1E380D1C 360F1C360F1A350C17320409220A0E270B0F28080A2208091E0D0B210F0D210D 0B1F111123111123101022100E21053057012A4A011B2C0814261B42800C3A74 123A5D15487A1859961D42800F3E710D3A651E184D1C20530F294E17374E1337 6710214817233F2B354D111B39081133242345161A37161438160E2D08082019 1B33141F3B1C2E4B0D142D060D200C091F0E0C200C051A11061A0F0D20060D1C 06091813091A0C0E200E10221011251011250D0E230C0D220E0E260F0F270B0C 200C0D210C0F240D11290D142F0D15320C16340D1735111D350F1B330C18300C 162E0C132C0C132C0F142D0F142D1816330F0F27080B2008122A0F203B122645 0F213E0A19330C274209223C0C213C1829431B2641131A33131730171931101C 340F1B33131D35141E361118310C112A0B10290E132C060E250810270811250A 11250910230B11240C13240E1224110F22110F22121023131124080E37100B26 0E1A2C001C3306357307327118385C13386A164D9009386C0F457C0E42711D1E 511A2055061A3D0B294C1A467C15255018233F151C350F1D3A0D1F3E181F3A0B 1F30171B3714112A1213280D0A201010280911280E0F23080F1E0F081D07081C 141327170E2312091E0E0C220A081E1508200B0F210D11230F13260F13260E0F 240C0D220D0D250E0E260D0B1E0E0E200E0F230E10280E132C0E14310E16340D 16370B193009172E08142C08122A0711290910290B122B0C132C131734101028 0D0C200D0F270D18360C1F400B203C081D330C1F3A0C1D380718321827411D29 41101A3210182F0911280B0F280A0E270F102A12132D12112B110E2813102A18 152F0F14290A0F240C10231014271014260B0F210B101F1013220E0C220E0C22 0E0C220E0C221A12301E11270A152B081A371A286A1A3A83233E6A1D2B602557 A90536500538701F599A1E2C600E184710193B0F2D5E164281172A5D13284807 1D360B223C12284112152A0D1D29000B210A0F24121328100B20110C210E0E20 0C0E20030A19130A1F0D1227040D210F09201A0B26120C251410291C102C0910 210B12231014270F13260F10250C0D220E0B240F0C25110E1E0F0D20100F230F 11290E132C0F15320F17350E17380E1C330C1A310B172F0A162E0C162E0D172F 1017301219320619340E192F15162A12122A0A0F2E0711330C1735111D350F1B 37101C38000C2608152F0D1B3207142A0C192F000B210B0821100D26110E270E 0A230C0821110B24130D26150C26170D24180F24160D22130A1E12091D130B1C 11091A0E0617110E27110E270E0E260E0E26011931081633131D3B1711301731 591A467C113D7329325E154783002C520C3A70245FAF14367C1A1F4C06224115 3B5B123E6D0B2D510925480A234D0C1D4404062416132D17173B0B0B230E0E26 0E0F240D0B210C0A1E0E0C200F0B1E0C081B0B0B1B0C0C1C0E0E200F0F211110 24110F25100E24100E240912260811250A11250D122712152A15162B14122811 0E240E13280D12270C11260C11260D12270F142911162B13182D0C17320F1A35 101B360E19340A153008132E08132E0A15300F182C0E172B0C15290D14280C13 270E1328101328111429111024111024111024111024100F23100F23100F2310 0F230B091F0E0C22100E24100E240E0C220E0C22100E241210260F0D23101126 1014270A0E200A0A18110D1912101C080A1408091E090A1F090A1F0A0B20041A 3311133214133318153509284F0F3B701244780A25511B4C840B325E06215918 449121488D1C325C1036540A37581338640B2648192E4E1F365C2131551C2039 24223812143311112909092106071C0C0A20121024100E22100C1F0F0B1E0B0B 1B0C0C1C0D0D1F0F0F210F0E22100E240F0D230F0D230A0D22090C21090C210C 0F240F12270F14290D12270B10250F14290D12270B10250A0F240B10250D1227 10152A12172C0B16310E1934101B360F1A350C17320A15300A15300B16310D16 2A0C15290D14280C13270C11260C11260F12270F12270F0E220F0E220F0E220F 0E220F0E220F0E220F0E220F0E220C0A200E0C22100E240F0D230E0C220D0B21 0F0D23110F25080F231513271A13280E0E20070C1B0D101E10101C0B0B170B0C 210C0D220C0D220D0E2300172C141230100B2B10153613305710376B06376912 366426568A05295903184F1F468A215597082E581133500E2F561A325C0B1D3C 101E3A0D20431724440B0F2207071902072012122A09092105061B0B091F110F 23110F23120E21120E210B0B1B0C0C1C0D0D1F0E0E200E0D210E0C220D0B210D 0B21110E24100D230E0C220C0F240D12270F162A0E172B0B162A12152A0F1227 0C0F240A0D220A0D220C0F2410132812152A0A142C0D172F101A32111B33101A 320E18300D172F0D172F0A13270C13270B12260B10250A0F240C0F240C0F240C 0F240D0C200D0C200D0C200D0C200D0C200E0D210E0D210E0D210D0B210F0D23 100E240F0D230D0B210C0A200D0B210F0D23101427121327110F23110F221417 260F16250F12201613220F10250F10250F10250F10250022351018350A0C2B10 1C401C325B193A6B0932631B36691E497C0A31650C2D5F13437D15549109335E 0B1D3C131D4C1F305708132F0A132E0310300F1B371A1F2E15182600081C0F0F 271010280E0F240B091F0B091D0F0D21130F22120E210C0C1C0C0C1C0C0C1E0D 0D1F0D0C200C0A200C0A200C0A2017152B13142912132810132810152A12172C 131A2E141B2F12152A0F12270B0E23090C21080B200A0D220D1025101328070E 270A112A0D142D1017301017300F162F0D142D0C132C0A11250A11250A0F2409 0E230B0E230A0D220C0D220C0D220B0A1E0B0A1E0B0A1E0C0B1F0C0B1F0C0B1F 0D0C200D0C200E0C22100E24110F25100E240D0B210B091F0C0A200E0C221B12 270B1124071123100E21150F221115270D1526090B1D1011261011260F10250F 10250C2D41101B36071031172A4F10214C113963144271061A532344760E3367 0933620F4274114A821A416D101E4214225322335A0F1A36161F3A0F1C3C0E1A 36111625191C2A19223613132B14142C1011260C0A200B091D0E0C20110D200F 0B1E0D0D1D0C0C1C0C0C1E0C0C1E0C0B1F0C0A200C0A200D0B2112192D11182C 11162B0F142910132813142914152A18162C1314291112270D0E230A0B200A0B 200B0C210E0F24101126080C24090D250B0F270E122A0F132B0F132B0D11290B 0F270A0F240A0F240A0F240B0E230B0E230C0D220B0C210D0B210C0B1F0C0B1F 0C0B1F0C0B1F0C0B1F0C0B1F0C0B1F0C0B1F100E24110F25121026110F250D0B 210C0A200D0B210E0C220E081B080A1C0A10230E12250E0F230E0F2310162910 192D0F10250E0F240E0F240D0E2307172E0E0F290C1334153259061C4603375B 093E69102A66233E7117326407305D163E6E0C33672348741F3C630F3865162E 581729481A284405183B0916360E122518182A151A331B1B3312122A0C0D220F 0D231210240F0D210E0A1D0D091C0D0D1D0D0D1D0C0C1E0C0C1E0C0B1F0D0B21 0E0C220F0D230914280C15290D14280C11260B0E230E0C22100D23110E241311 271210260F0D230E0C220D0B210E0C220F0D23110F250C0F240B0E230B0E230C 0F240E11260E11260C0F240A0D220A0F240A0F240D10250D10250E0F240F0D23 0E0C220D0B210E0D210E0D210E0D210D0C200D0C200D0C200D0C200C0B1F110F 251311271311271210260F0D230D0B210E0C22100E240810214C435743374D07 0E2103122514192E0B0D25020F250E0F240E0F240D0E230D0E23000C240F0823 1017380A395F06264F053858002E5828417F203F721A3260012A571B3F6F0F2E 5B13386410315F17426D173C681732542439591930560B1B3F04082114122809 0B2A1919311111290C0D22110F25141226110F230F0B1E0D091C0D0D1D0D0D1D 0C0C1E0C0C1E0D0C200F0D23100E24110F25090E230B10250D12270E11260B0E 23090C21090C210B0E23110F25110F25100E24100E240F0D23100E24100E2410 0E2414152A1112270E0F240E0F241011261011260F10250D0E230D10250E1126 0E1126101126101126110F250F0D23100D23111024111024100F23100F230F0E 220E0D210D0C200D0C20121026131127151329131127110F250F0D23110F2512 10261317294C46593E354A0B11240E1C2F151D34050C2508142C0F10250F1025 0F10250F10250C233917122D111B3D09476D0229500F38590E2F5C1D2D6F2045 7914305903325E153F6E0322490E315C0E265C09214F0B37660B2D5107234600 18420819400E102E1F1C3610103410102813132B131429110F25100E22121024 130F220F0B1E0D0D1D0D0D1D0D0D1F0D0D1F0E0D21100E241210261311270E0B 21110F251213281114290C11260910240811250912260F0D23100E24110F2511 0F25110F25110F25100E24100E24191A2F15162B1011260F1025101126111227 1011260E0F240E11260F1227101328121328131127121026110E24100D231413 27131226121125111024100F230F0E220E0D210D0C2012102614122815132914 1228121026110F251210261412281F1123080F2004102214122817132C09152D 0516300C15301112271112271112271112270E2440080E2B0C1A370E3B5D0537 6508275C1327560B274A0E36601B2B550F204713385A052B4E1139630F437108 3A6E102840141F3D233253111E4411173C17214300163014253F0313300A1731 11182C1111230F0C1C100C1F0F0D230D0C26100F1F150B1C140B2003061B0509 22140E2D110C2C0E1332141228110F250F0D23100E24121026131127110F250E 0C22100E24110F25121026131127141228131127131127121026131127131127 1311271311271311271311271311271311271011251011251011250F10240F10 240E0F230E0F230E0F230911220F13251513261210230B0D1F090B1D100C1F17 0E220D0B28080C2806092516132D17122D0C0C24101028110B22110F2D0B112E 0D142F1D1A34211D3610152A0C12251E1A2D07102410192D081125101B2F0D1B 38161938151E3F16335A123868112C5F1426550C23490D2C5319325A091F4800 274D13335C17325E0C3B671B45741B254D000931071A3D09213F071C381B2C47 18274108112C0C1C3908152F0A1125111123141121110D200D0B210C0B250E0C 18160C1C1D1324100F231011261A132E120D2A0A0D29131127110F250F0D2310 0E24121026121026110F250E0C220F0D23100E24110F25121026121026110F25 100E24100E24110F25110F25110F25110F25110F25110F25110F25110F251011 251011250F10240F10240F10240E0F230E0F230E0F231B172A1513260F0F210E 0E200E10221012240F13250C132412132F17122F0E0A270E122B10162D0C0E26 13162B131C30131331131C3718213C191A3413132B0E172B111B2D1314280F0C 2217152B110F2514152A0A254009213D1631530B2E560A34631A4374103A6511 3B600A274C162851153E65062B57152C5A0C2654152756193B661E3769021F4B 031B3F0D1F3C04162D08152B171C35131A3510203D0B18320A11251010221310 20110D200D0B210D0C260E0A15130A17190F1F100D1D0C0A1D150E23130B220C 0922131127110F250F0D230F0D23110F25110F25100E240F0D230F0D23100E24 100E24110F25110F25100E240F0D230E0C220F0D230F0D230F0D230F0D230F0D 230F0D230F0D230F0D230F10250F10250F10250E0F240E0F240E0F240E0F240E 0F2412091E0D0C200A10230C1225131226111024090F22010D1F0B0C2816122F 13122C0E152E0B182E0F182C101B2F07182B151C3714213B1321381118310D15 2C0A182B09172A0912260E142B11172E0810270B132A0D2C450C334F0E34560A 2D5807316009406D0A456D073E6300254711214B1C416D0A315E0F2D5E102453 1D204D1C365B0F3A650C3B610C2A4D0D1C3C11223D1D213D1D17361012300E1E 3B111E3812192D0F0F210E0B1B100C1F100E240D0C26110D18100A15100C180D 0A190C09190F091A130D20151124121026110F25100E240F0D23100E24100E24 100E24100E240F10251011261011261112271011260F10250E0F240D0E230E0F 240E0F240E0F240E0F240E0F240E0F240E0F240E0F240F10250F10250F10250E 0F240E0F240E0F240E0F240E0F24070E210A14260C182A0D14270C0D210B091D 0D0C201011250D112A07112907132B0D132A0A112509182B0C1C2D050F210915 2D09172E0C1A310F1C320D1B310E1F340F20350D1B31051129111D3516223A11 1F360B1935021E3D08274E172E5E0D285A0835611447720835600D3A5C0A2851 1B2757093766063561171E4F1A2650182B500F314F0F38581B3B5E12294F051F 43131F431C1B3D21234210203D121F3912192D101022100D1D120E21110F250D 0C260E0E1C0E0F1D0E0F1D1312221312220E0D1D110F221C182B131127131127 121026100E240F0D23100E24110F251210261013281013281114291114291114 291013280F12270F12270F12270F12270F12270F12270F12270F12270F12270F 12270F0F270F0F270F0F270F0F270F0F270F0F27101028101028000F22071024 0C11260E13280E152910172B14172C19172D0A182F081B300C1D320E1529050A 1F070E2111172A1B1A2E0B162C040F250A152B111F350F20350F1F3610203709 1E341B1B3911112F11112F141634161F3A092244082A550F2D5E0A2B5C03325E 083B6608366513446C0A2D5919255518436E043A6311224D0E224B0C294E1028 44021E3D1830541C30591029510F264C0A1F3F152D491727440E1B350B122612 1224171424161225100E240C0B25080E210E1A2C0812240A0E21101125070D20 0A10231A192D141228141228141228121026100E24100E241311271513291013 2811142912152A13162B13162B13162B12152A12152A11142911142911142911 1429111429111429111429111429101028101028101028111129111129111129 1111291111290E172B0F122710112614192E182639192A3D152437121B2F0D22 37121F35151E321720342F35484A43583930441D192C0D142823263B20253A0D 1A300E1C33121E360F1C360D213A121534060B2A0C11300E16341118331E3759 04285600285913406C073963033863194A7A002C5B10326011345F183B63123E 630E355B0E2850093B5F09284F041A4313284E0C21470D1F44182E510D2D4A12 324F1626430E1B350C13271414261A1727181427110F250C0B2507122D1B2F48 10213B0910291217300B172F09162C16183016142A16142A16142A131127110F 25110F2514122818162C0B10250C11260E132810152A11162B11162B10152A10 152A0F14290F14290F14290F14290F14290F14290F14290F142911102A11102A 12112B12112B12112B13122C13122C13122C0C12290C12290C12290C142B0C19 2F111F3516243A1A283E1621371F22373C3D52484C5F5453676E65796F63775C 53675256696661764B485E20283F2A344C40446030375211223D0714342B3858 4B5A7A37466622163420254C1B32620E2F61163866193C680C305E193B700B2A 610D3E6C0E3C651232560A3052103D5F16426700345B1232670C235316375E0E 345208203C1128420F254110193A0F1F3C111E38131A2E141426171424191528 1311270C0B250A1A37304864273D591B2642262E4B1D2E4813223C1519351614 2A17152B17152B141228110F25110F2515132919172D090E230A0F240C11260E 13280F142910152A10152A0F14290E13280E13280E13280E13280E13280E1328 0E13280E132812112B12112B13122C13122C13122C14132D14132D14132D010E 24132439283B50324056373D5441435B555B726873896F69805B596F82809689 80954940553632455C5969807486848496797085736B82656981555C7562637F 7274926876925052746D6F918C8EB0767B9C0E2840103458183C601B3F65032C 5D153A66133055193C640A244815294C043450003A56173B5F182A5919336916 326E01325E163965214269223F5E202B46242E4026344011161F12192D233944 102C331020311B263A09192909172A1F21402B37493A3E513E4A5C3A4A5A373F 50303D4B344A564B5965545D671E26331217261B1C3017152B17163011143000 0623130D1E1E18291711221711221A12231E142513091A2216284B3D4828202B 1F1D291117240916240B1A2A1E2C3E213043282B471F1E381310261814271E1D 2D17192B10172A121D310C1A3639466C92A3CA8296B56C7D988A94B2ACB1CA90 96A19491A1837D90A59FB69390AA5E627B61657E7878909892A9A6A9C58884A1 938AABABA4C7B3B0D7B7B5DFB2ABD8AEA0D095899D93869C948AA19993AC0720 3A0E315216406318436A11396910315E0720480F2852142949050D3209254704 3A590F3C620B325E0F376818336B0B37660A33600D38630B345B1C3C60304669 3042611D24453036593647612F48582D434F3745512F3B472133442940563F45 58393A4E373B4D373B4D4241514E4D5D60616F868392B2A4B0463D4A17182617 172712102420182F1E173216132D0D1425131A2B141E2F0B15260911220F1627 1012242220336A4F5939303A47434E2D303E011625172B3C3A475D41566B8E94 A14A4F5E15192C161A32131A33010D2504172C0D23353537555A59798B89A788 87A187849D918DAA9F9BB88887A18D81958E86978B84938D83909C8A9B97869B 877F968B8DA59194B3868BAAA8ADCCA5AAC9999BBDA7A9CB9398B98084A78D8B A185839985819A8E8AA301112E061A39113259113E6916436E0C3762082A5515 2C521E294918163A16274E07365C0E406A083B660738641132600C3B6704325B 13385E1B35592C405F36415D3738523638503B39562F375437445E3F485C434A 5D424B5F3C41564B465B48525C3B4751424B5450525C585B6366666C716A716F 6B716B6D7548444F2925311C222F0E1F2C051A290D1B2D13182D0E1A2C172537 142435081A2B122233212D3F252C3F12182B071930153045363F534644582A37 45404A54686D76546D719D98A17E7A865F5F712C3048121B362D3955333F5B1D 2C4646415E70687F85798D8F7E9399879EA395ADB4A8C6A79CC28F8CA59997AD 8F8EA28B8CA0969AAD9094AC8C8DA99393B1988DAE8782A28483A38987A5857D 9B867A96837E997D7E98867D98817892807791827A910F0E30110F2D1527500F 3968083F6405406710416D1D3B5E2023421715390F254E0E3B66113E6A04335F 0D3F6912355D0B335D012C53132E532A385C2E3E5B343D58393B53404B5F504A 63404865434A6558586A516576457990507C9B535D7B505B7B5B708C5B668460 6683596581545B7662607D5C617A54555F5D535F5746544036432E3441192936 081727141E2F0C1D321D2B41283349242C432D354C2B334A2D354C202B411F2B 4312203720203832253D4C41558E7E909B83958C7A8B9581988D7D9489839662 627450536876758F7A75955C557874658484798D7F758686799181778E898898 979BAE8F91AF9699B89797BB9C9BC3999DC6A8B4DEB5C1EBB3BAE1CCCBF2E1D5 F3B2A8C6948FAA8F88A38175918375918A819C7A738E767389747187726F8572 6C8320163A2621401D335C123E6D04355B063A620F406C183D5F152242161F44 1029530B325E15376506305B0C3861132C541B2B591E3B6737527E6984B06388 B46283B06A81AF7390BDA6A1CE8D92B9C0BCD5DFCAD3C4C3CC9BC1D980A8D295 A3D48C95B790A3C49EAACCACB5D692A6C58393B0939DBB889BB6938C9B858694 7A828F7A7F8E86869687899B607080324F5D25455C48627A4A5B7547526D4D56 71394660374D6628425A2038501E2944181F385F5F77AE9EB5BCABC0A89AACB3 9DB0B6ABCBACA7C49999B19497AC9598ADA7A4BDBCB3CEAD9EBD8593AF8697AA 8798AD92A0BD848FAA929BA9ACB0BBC3C2D2B4B0D49794BB9D9BC59D95C4A79B CBB6ACDBAAA9D5B3BBE3DCE8FAEAF1FFDADEF6D4D9F2B8C0DDAAB2D0C5CAEBBD BEE0ADA9BCA09BB08D8AA0807D961611312330501B406614446E11366212315E 143661183C6013315422355B213B630E2B571D3864133B650B345B1B28541421 4D2B3C673F527D677DA76A85B1708DB97792BE7999C47F9DCE8DAFDAB0CEE9C7 DCEBC0D1DEB8D2EAC0DEFFBEDBFFD7E5F8DDEEFFE4F3FFE0F0FFDDF2FFDBF0FF D5E8F5D3EBF7E2EBFFD5E9FBC1DFF0C6E4F5CFE7F9DDF1FFD9F1FFB0CCDD6EA2 B983B1C97A9FB97390AB819EB97E9FB96F97B05F8BA394BFDA8FA5C190A9C3C5 DDF3ECF1FFDBE7F9CDE9F4E2F2FFDDEDFFE0EFFFCEDCF8C4D2EEC8D4F0DBE5FD F0F7FFE6EAFCC4E2FDBADBF5B6D6F3BDD9FBBFD7F5D3E4F7DFE8F5F4F8FFD8DD FCBCC4E1C4CDE8C1CBE3B2BBD6AFB9D7ADB7D9B2BEE2BECFE2CFD7EEC8CCE5B7 BBD8BAC5E5BDC9EDBEC5ECD7D6FFDDD5ECD2CCE5C1BED8ADAFCD090F2C14284B 15375B163A62193D6D102F5C19365D193962193962112A541C3B621F395E2432 5C15335C143C66233564132A5014254C2A3960606D938C95BB8191B67992B48C A2C5949DC891A9CD8BB1D196BBDDA2BEE0ACC4E2B5CDE9ADC7E5B9D2F2C4D9F9 CDE7FFC1DBF9BED4F0C7DDF9C0D9F3BDD2EDBCD5EFBFD4EFC5D8F3C6DBF6C2DC F4C4DAF3D3E0FAE6EAFF85B4CF5D8CA74F7E9943728D507D986590AB6590AB94 BCD8EAECFEECECFED9E8FBCAE8FBD3E9FFCFE7FFCEECFFD1E2FFD6F0FFCBE3F7 CEE2FBCFE0FBD3E1FEDAE8FFD6E7FFD6E8FFD4DDFED4DDFFCCDAFEC3D5F4BDD3 EFC2D8F4BCD5EFC3DEF3BED2EBC0D2E9C5D8EDBEDAEBBADBEEACCEE5A1B9D5AE BBDBA9B0D1B1B8D9B0B4D7AAADD3ACB1D8B3B8DFB3B7E0AEB0D99FABCDA1ADCF 9DA9CD949FC5101F390D1E451C264E182C55123D6E002E5815375B112F58142A 5A0E2B570E385B16325520224A0B1B450B335D0D2F5D0D234C1D2D572D467235 56837289BB738DC36D8CC37F93CC87A0C080ACC37CAFC98BB5DA97BBE399C2E2 A9CCEDBACDF8A0D3F3ACD5F6AAD8F7A9D7F6B7D9F7BADCF9B1D8F4B6D2F0A3D3 EFB2DCF9B0D2EFB7D5F2BED9F4BAD5F0C5DDF9C6DDF7BBD8F7789CBA315D7A27 59752454703A627F7B98B7C3DAFACEDCEECCDBEECADFF4CBE3F9CAE2FABBD2EC CAE0FCCBDDFCCFE0F3CEDDF0D6E2F4D8DFF3D0D7F0CED8F6CAD9FAC1D3F8C6D9 FAC3CFF7C8D0F5CFD6F1CED5F0C9CEF5C4CAF7C3CDF5C8D3EEC1CDE9C7D2F2C1 C9EEBDC2E9BEC6EBB4C3E4B2C7E6B0C0EBB0C4EDABC4ECAEC4EDB0C1E8B2C1E8 B4C7ECA7C1E5AAB9E7A9B8E6A3B3DE9DADD81522421C2E4515233F0C224B1538 63102D5418315B123F7216335A18355C1A375E0F2A4F0B264B152F53102B4D0F 284A192F4B0C24421F38585A76997594BB6E8EB77091BE7396C27298C2769CC6 7DA3CD83ABD58AB4DE91BBE596C2EB99C5EEA3CAF1A4CBF2A6CDF4A9CEF4A9CF F2A9CDF1A9CCEEA7CAECACCAEDADCBEEADCCEDAECDECAFCEEDB0D0EDB1D1EEB2 D2EFB4D1F0BAD7F6ABC8E77B98B7607D9C87A4C3B8D5F4C1DEFDBFD7F5C0D8F6 C0D8F6C0D8F6C0D8F6C1D9F7C1D9F7C1D9F7C2D7F6C2D7F6C1D6F5C1D6F5C0D5 F4BFD4F3BFD4F3BED3F2BDCEEFBCCDEEBBCCEDBACBECB9CAEBB8C9EAB7C8E9B6 C7E8B8C7E8B8C7E8B7C6E7B7C6E7B6C5E6B5C4E5B5C4E5B4C3E4B1C0E1B2C1E2 B2C1E2B3C2E3B4C3E4B4C3E4B5C4E5B5C4E5B4C3E3B4C3E3B4C3E3B4C3E30C1E 43091F3B071938122851173A621834571E355B284D792A476E1F3C6319365B1B 365B1B355916305410294B10294B0D2241001836233C5C5C769A708DB26C8AB3 698BB66F90BD7295C07598C37C9FCA82A8D288B0DA8EB6E090BAE492BCE699C0 E79DC1E99FC4EAA1C5EBA2C6EAA3C5E9A1C4E6A0C3E5A8C4E6A8C4E6A9C5E7AA C7E6ABC8E7ACCAE7ADCBE8ADCBE6AFCBEAB6D2F1BAD6F5B7D3F2B7D3F2BBD7F6 B8D4F3ADC9E8BAD2F0BAD2F0BAD2F0BBD3F1BBD3F1BBD3F1BCD4F2BCD4F2C0D5 F4BFD4F3BFD4F3BED3F2BED3F2BDD2F1BCD1F0BCD1F0BBCCEDBBCCEDBACBECB9 CAEBB8C9EAB7C8E9B6C7E8B5C6E7B5C4E5B4C3E4B4C3E4B3C2E3B2C1E2B2C1E2 B1C0E1B1C0E1AFBEDFAFBEDFAFBEDFB0BFE0B0BFE0B0BFE0B0BFE0B1C0E1AEBD DDAEBDDDAEBDDDAEBDDD112750051E400A1E411D335C173459132C4E15294C27 476B1C39600E2B50102B50132F52142E5210294B061F410C25470E234209213F 384F6F617C9E6A85AA6885AC6684AD6B89B27090B97494BD789BC37FA2CA84A8 D088ACD488AFD689B0D78EB1D990B4DA92B6DC96B8DC99B9DD99B9DC9AB8DB9A B9DA9FBADC9FBADCA0BCDBA1BDDCA2BEDCA3BFDDA4C1DCA5C2DDAAC3E3A9C2E2 A0B9D9A3BCDCB0C9E9AEC7E7A8C1E1AFC8E8B2CAE8B2CAE8B3CBE9B3CBE9B4CC EAB4CCEAB5CDEBB5CDEBBBD0EFBACFEEBACFEEB9CEEDB9CEEDB8CDECB8CDECB8 CDECB9CAEBB8C9EAB7C8E9B6C7E8B5C6E7B4C5E6B3C4E5B3C4E5B0BFE0B0BFE0 AFBEDFAFBEDFAEBDDEADBCDDACBBDCACBBDCACBBDCACBBDCACBBDCABBADBABBA DBABBADBABBADBABBADBA7B6D7A7B6D7A7B6D7A6B5D6182B4E0B2040172C4C22 385C132D510B25490620441532570B264B0621460F2B4E0D274B112A4C183153 102747132A4A213655304565546B8B6982A46882A66882A76782A76A84AC6F8C B37390B77895BC7C9BC27E9FC680A1C87FA3C97EA2C884A5CC87A6CD8AAACE8E ABD090AED192AED193AFD192AED099B2D299B2D29AB3D39BB5D39CB6D49DB8D3 9EB9D49EB9D3A0B8D6A8C0DEA5BDDBA4BCDAACC4E2A9C1DFA6BEDCB0C8E6ADC2 E1ADC2E1AEC3E2AFC4E3AFC4E3B0C5E4B0C5E4B1C6E5B5C9E8B5C9E8B5C9E8B4 C8E7B4C8E7B4C8E7B3C7E6B3C7E6B4C5E6B4C5E6B3C4E5B2C3E4B1C2E3B1C2E3 B0C1E2B0C1E2ADBCDDADBCDDACBBDCACBBDCABBADBAAB9DAA9B8D9A9B8D9AAB9 DAAAB9DAA9B8D9A9B8D9A8B7D8A7B6D7A7B6D7A6B5D6A4B3D4A4B3D4A4B3D4A3 B2D3111D35081632192B4A1A2F4E152E50102D540A2C570828510521440E284C 102A4E0E27490E2749142B4B142B4B0E2644354A6A576C8C667B9B677DA0687E A1697FA36B83A76C84A87088AC728AAE758FB37993B77B97BA7A98BB7A98BB7A 98BB7F9CC1819EC385A0C588A2C68AA4C88EA7C98FA8C88FA8C894ABCB95ACCC 95ADCB96AECC98B0CC99B2CC99B2CC9AB3CD9AB0CC9EB4D09EB4D09CB2CE9FB5 D1A0B6D2A0B6D2A1B7D3A9BDDCA9BDDCAABEDDAABEDDABBFDEACC0DFADC1E0AD C1E0AEC2E1AEC2E1AEC2E1AEC2E1ADC1E0ADC1E0ADC1E0ADC1E0AFC0E1AEBFE0 AEBFE0ADBEDFADBEDFACBDDEABBCDDABBCDDABBADBABBADBAAB9DAAAB9DAA9B8 D9A8B7D8A7B6D7A7B6D7A9B8D9A8B7D8A8B7D8A7B6D7A6B5D6A5B4D5A4B3D4A4 B3D4A4B2D6A4B2D6A3B1D5A3B1D50F192B0A15301527441328441A2D4E13315A 1136620B2854142E52284266253E60253E60172E4E071F3D1B304F1B304F4257 77657A9A667B9B5F7494657A9A697E9E6F84A47085A57084A77286A97389AC76 8CAF768FB17891B37792B47792B47D97BC7E98BD829ABE849CC0889EC18AA1C1 8DA2C28DA2C291A6C591A6C592A7C693A9C594ABC595ACC696AEC696AEC69AAF CB99AECA9EB3CFA1B6D29DB2CE9CB1CD9EB3CF9DB2CEA3B7D6A3B7D6A4B8D7A5 B9D8A6BAD9A7BBDAA8BCDBA8BCDBA9BBDAA9BBDAA9BBDAA9BBDAA9BBDAA9BBDA A9BBDAA9BBDAA9BADBA9BADBA8B9DAA8B9DAA7B8D9A7B8D9A6B7D8A6B7D8A8B7 D8A8B7D8A7B6D7A7B6D7A6B5D6A5B4D5A4B3D4A4B3D4A5B4D5A5B4D5A4B3D4A4 B3D4A3B2D3A2B1D2A2B1D2A1B0D1A2B0D4A2B0D4A2B0D4A1AFD3101D33121D3D 132848192E491827470B284F143860243C603B56784D66884A63854D64843D54 742F4463405574485E7A4F638663779A6376975C6F906376976B7D9C6B7D9C6F 81A07182A37283A47184A57386A7758AAA768DAD788FAF7A91B17B93B77D93B7 7F95B98397BA8599BC879ABB899DBC899DBC8CA0BF8CA0BF8DA2BE8EA3BF8FA4 BF90A6BF91A7C091A7C095A8C397AAC59DB0CBA0B3CE9BAEC99AADC89EB1CC9E B1CC9FB1D09FB1D0A0B2D1A1B3D2A3B5D4A4B6D5A5B7D6A5B7D6A4B6D5A4B6D5 A4B6D5A5B7D6A5B7D6A5B7D6A5B7D6A5B7D6A4B5D6A4B5D6A4B5D6A3B4D5A3B4 D5A3B4D5A2B3D4A2B3D4A4B3D4A4B3D4A3B2D3A2B1D2A1B0D1A1B0D1A0AFD0A0 AFD0A0AFD0A0AFD09FAECF9FAECF9FAECF9EADCE9EADCE9EADCE9DAAD09DAAD0 9CA9CF9CA9CF0718330F1F440F274B21385215213D031D411A3D5F495B78546D 8F50698B526B8D546B8B576F8D5E73925E738F6176925D71946074976477985F 72936678976A7C9B6675956D7D9A7281A27281A27182A37283A47386A7768BAB 798EAE7C91B17A90B47B91B57E92B57F93B68295B68497B88799B8889AB98A9C BB8A9CB98B9DBA8C9FBA8DA0BB8EA2BB8FA3BC8FA3BC96A7C298A9C495A6C191 A2BD93A4BF9CADC8A1B2CD9FB0CB9BADCC9BADCC9CAECD9DAFCE9FB1D0A0B2D1 A1B3D2A1B3D2A4B3D3A4B3D3A4B3D3A4B3D3A4B3D3A4B3D3A5B4D4A5B4D4A1B2 D3A1B2D3A1B2D3A1B2D3A0B1D2A0B1D2A0B1D2A0B1D2A0AFD0A0AFD09FAECF9F AECF9EADCE9DACCD9CABCC9CABCC9CABCC9CABCC9CABCC9BAACB9BAACB9BAACB 9BAACB9BAACB98A5CB98A5CB97A4CA97A4CA0B15331426431329451B304C202B 49151F3D0E1C391B314D5967845967845B69865D6B885E6C89606E8B616F8C62 708D5E6E8B5F6F8C61718E6373906575926878956979966A7A976D809B6D809B 6F829D71849F7386A17588A3778AA5788BA67A8CA97B8DAA7C8EAB7E90AD8092 AF8294B18395B28496B38A98B58A98B58B99B68D9BB88E9CB98F9DBA909EBB91 9FBC94A2BF94A2BF95A3C096A4C198A6C399A7C49AA8C59BA9C69FADC99FADC9 A0AECAA1AFCBA1AFCBA2B0CCA3B1CDA3B1CDA4B1D1A4B1D1A4B1D1A4B1D1A4B1 D1A4B1D1A4B1D1A4B1D1A4B1D1A4B1D1A3B0D0A3B0D0A2AFCFA2AFCFA1AECEA1 AECEA1ABCDA1ABCDA0AACCA0AACC9FA9CB9EA8CA9DA7C99DA7C99EA7CC9DA6CB 9DA6CB9CA5CA9CA5CA9BA4C99BA4C99BA4C996A4C896A4C895A3C795A3C71321 3E0E1E3B1325422535522836531A25432A38553345625765815765815967835A 68845C6A865E6C885F6D89606E8A5E6E8B5F6F8C60708D637390657592677794 6979966A7A976B7E996C7F9A6E819C70839E7285A07487A27588A37689A4798B A8798BA87B8DAA7C8EAB7E90AD8092AF8294B18294B18896B38997B48A98B58B 99B68D9BB88E9CB98F9DBA8F9DBA92A0BD93A1BE94A2BF95A3C096A4C197A5C2 98A6C399A7C49BA9C59BA9C59CAAC69DABC79EACC89EACC89FADC99FADC9A0AD CDA0ADCDA0ADCDA0ADCDA0ADCDA0ADCDA0ADCDA0ADCDA0ADCDA0ADCD9FACCC9F ACCC9EABCB9EABCB9DAACA9DAACA9EA8CA9DA7C99DA7C99CA6C89BA5C79AA4C6 9AA4C699A3C59AA3C899A2C799A2C799A2C798A1C698A1C697A0C597A0C592A0 C492A0C492A0C4919FC311213E14223F1823411C2A47182845182A474858755F 6A8857637F5864805965815A66825C68845D69855F6B875F6B875F6D8A606E8B 62708D64728F6674916876936977946A78956B7C976B7C976D7E996F809B7182 9D73849F7586A17687A27888A57989A67A8AA77C8CA97E8EAB8090AD8191AE82 92AF8694B18694B18795B28997B48A98B58B99B68C9AB78D9BB88F9DBA909EBB 919FBC92A0BD94A2BF95A3C096A4C196A4C197A5C297A5C298A6C398A6C399A7 C49AA8C59BA9C69BA9C69BA8C89BA8C89BA8C89BA8C89BA8C89BA8C89BA8C89B A8C89BA8C89BA8C89BA8C89AA7C79AA7C799A6C699A6C699A6C699A3C599A3C5 98A2C497A1C397A1C396A0C2959FC1959FC1959FC1959FC1949EC0949EC0939D BF939DBF939DBF929CBE8F9BBD8F9BBD8F9BBD8E9ABC071A350C183408102D16 213D1D2E493146614E5C785E668357647E58657F5966805A67815C69835D6A84 5E6B855F6C865E6C885F6D89616F8B62708C64728E6674906876926977936879 94697A956A7B966C7D986F809B71829D72839E73849F7585A27686A37787A479 89A67B8BA87D8DAA7E8EAB7F8FAC8391AE8492AF8593B08694B18795B28997B4 8A98B58A98B58C9AB78D9BB88E9CB98F9DBA919FBC92A0BD93A1BE93A1BE94A2 BF95A3C095A3C096A4C197A5C298A6C398A6C398A6C399A6C699A6C699A6C699 A6C699A6C699A6C699A6C699A6C699A6C698A5C598A5C598A5C597A4C496A3C3 96A3C396A3C397A1C396A0C296A0C2959FC1949EC0939DBF939DBF939DBF929C BE929CBE929CBE919BBD919BBD909ABC909ABC909ABC8C98BA8C98BA8C98BA8C 98BA0E213C121D39272D4A454D6A51627D5B6E8954627E5B617E5A65805B6681 5C67825D68835E69845F6A85606B86616C875F6B87606C88616D89636F8B6571 8D67738F6874906975916876926977936A78946C7A966E7C98707E9A72809C73 819D7583A07684A17785A27987A47B89A67D8BA87E8CA97F8DAA818FAC8290AD 8391AE8492AF8593B08694B18795B28896B38A98B58A98B58B99B68D9BB88E9C B98F9DBA909EBB919FBC94A1C194A1C195A2C295A2C296A3C397A4C498A5C598 A5C598A5C598A5C598A5C598A5C598A5C598A5C598A5C598A5C598A5C598A5C5 97A4C497A4C496A3C396A3C395A2C295A2C296A0C296A0C2959FC1949EC0949E C0939DBF929CBE929CBE929DBD919CBC919CBC909BBB909BBB8F9ABA8F9ABA8F 9ABA8D98B88D98B88D98B88C97B714233D1F2A454D567156617C56637D54637D 54617B5A637E5B677F5B677F5C68805D69815E6A825F6B83606C84606C84606B 86606B86616C87636E8965708B66718C67728D68738E6874906975916B77936D 79956F7B97717D99737F9B737F9B76819F7782A07883A17A85A37C87A57D88A6 7F8AA87F8AA8808EAB808EAB818FAC8290AD8492AF8593B08694B18795B28896 B38997B48A98B58B99B68C9AB78E9CB98F9DBA8F9DBA939FC1939FC194A0C294 A0C295A1C396A2C497A3C597A3C597A4C497A4C497A4C497A4C497A4C497A4C4 97A4C497A4C497A4C496A3C396A3C395A2C295A2C294A1C194A1C194A1C1959F C1959FC1949EC0939DBF939DBF929CBE919BBD919BBD909BBB909BBB909BBB8F 9ABA8F9ABA8E99B98E99B98D98B88C95B68C95B68C95B68C95B63D4661444F6A 596680505D77525B7657607B5A65805C69835B657D5B657D5C667E5D677F5E68 805F69815F6981606A825F6A85606B86616C87626D88646F8A65708B66718C67 728D6874906975916A76926C78946E7A96707C98727E9A737F9B75809E76819F 7782A07984A27B86A47D88A67E89A77F8AA87F8DAA808EAB818FAC8290AD8391 AE8492AF8593B08694B18795B28896B38997B48A98B58C9AB78D9BB88E9CB98E 9CB9909CBE909CBE919DBF929EC0939FC1939FC194A0C294A0C294A1C194A1C1 94A1C194A1C194A1C194A1C194A1C194A1C194A1C194A1C193A0C093A0C0929F BF929FBF919EBE919EBE939DBF929CBE929CBE919BBD909ABC8F99BB8F99BB8E 98BA8E99B78D98B68D98B68C97B58C97B58B96B48B96B48B96B48A94B28993B1 8993B18993B1585D765A667E4D5F765161785C637C5F647D515B7356667D5964 7A59647A5A657B5B667C5C677D5C677D5D687E5D687E5F6B835F6B83606C8462 6E86636F8764708865718966728A6874906874906A76926C78946E7A96707C98 727E9A737F9B75809E76819F7782A07984A27B86A47D88A67E89A77F8AA87F8D AA7F8DAA808EAB8290AD8391AE8492AF8593B08694B18795B28896B38997B48A 98B58B99B68D9BB88E9CB98E9CB98E9ABC8E9ABC8F9BBD8F9BBD909CBE919DBF 929EC0929EC0919EBE919EBE919EBE919EBE919EBE919EBE919EBE919EBE919E BE919EBE919EBE909DBD909DBD8F9CBC8F9CBC8F9CBC909ABC909ABC8F99BB8F 99BB8E98BA8D97B98C96B88C96B88B96B48B96B48A95B38A95B38994B28994B2 8893B18893B18791AF8791AF8791AF8690AE545C79545C79545C79555D7A555D 7A565E7B565E7B575F7C58617C59627D59627D5A637E5B647F5C65805C65805C 6580626885626885636986656B88666C89676D8A686E8B696F8C67728D68738E 69748F6B76916D78936E7994707B96707B96717D99727E9A737F9B75819D7783 9F7884A07A86A27A86A27C8AA67C8AA67D8BA77F8DA9808EAA818FAB8290AC83 91AD8591AD8692AE8692AE8894B08995B18A96B28A96B28B97B38B96B48B96B4 8C97B58C97B58D98B68D98B68E99B78E99B7919BB9919BB9919BB9919BB9919B B9919BB9919BB9919BB98F99B78F99B78F99B78F99B78E98B68E98B68E98B68E 98B68D96B78D96B78C95B68C95B68B94B58B94B58A93B48A93B48893B38893B3 8792B28792B28691B18691B18590B08590B0858EAF848DAE848DAE848DAE545D 78545D78555E79555E79565F7A565F7A57607B57607B59627D59627D59627D5A 637E5B647F5C65805C65805D6681626984626984636A85656C87666D88676E89 686F8A69708B67728D68738E69748F6B76916C77926E79946F7A95707B96717D 99717D99737F9B74809C76829E7884A07985A17A86A27B89A57B89A57C8AA67D 8BA77F8DA9808EAA818FAB8290AC8490AC8490AC8591AD8692AE8793AF8894B0 8995B18A96B28A95B38A95B38B96B48B96B48C97B58C97B58C97B58D98B68F99 B78F99B78F99B78F99B78F99B78F99B78F99B78F99B78E98B68E98B68E98B68D 97B58D97B58D97B58D97B58D97B58C95B68B94B58B94B58A93B48A93B48992B3 8992B38992B38792B28792B28691B18691B18590B08590B0848FAF848FAF838C AD838CAD838CAD838CAD555E79555E79555E79565F7A565F7A57607B57607B57 607B59637B59637B5A647C5A647C5B657D5C667E5D677F5D677F626984626984 636A85646B86666D88676E89686F8A69708B67728D67728D69748F6A75906C77 926D78936E79946F7A95717C98727D99737E9A747F9B76819D77829E7984A079 84A07A86A27B87A37C88A47D89A57E8AA6808CA8818DA9818DA9828EAA828EAA 838FAB8490AC8591AD8692AE8793AF8793AF8893B18893B18893B18994B28994 B28A95B38A95B38A95B38D97B58D97B58D97B58D97B58D97B58D97B58D97B58D 97B58C96B48C96B48B95B38B95B38B95B38B95B38A94B28A94B28992B38992B3 8992B38891B28891B28790B18790B18790B1868FB0858EAF858EAF858EAF848D AE848DAE838CAD838CAD818AAB818AAB818AAB818AAB565D76575E77575E7758 5F78585F785960795960795960795A617A5B627B5B627B5C637C5D647D5E657E 5E657E5F667F616881616881626982646B84656C85666D86676E87686F886871 8C68718C69728D6B748F6C75906E77926F78936F78936F7A96707B97717C9872 7D99747F9B75809C76819D77829E77839F7884A07985A17A86A27B87A37D89A5 7E8AA67E8AA67F8BA77F8BA7808CA8818DA9828EAA838FAB8490AC8490AC8590 AE8590AE8590AE8691AF8691AF8792B08792B08792B08A94B28A94B28A94B28A 94B28A94B28A94B28A94B28A94B28993B18993B18993B18892B08892B08892B0 8892B08892B08790B1868FB0868FB0868FB0858EAF848DAE848DAE848DAE838C AD838CAD828BAC828BAC818AAB818AAB8089AA8089AA7E87A87E87A87E87A87E 87A8565D76565D76565D76575E77575E77585F78585F78585F785961785A6279 5A62795B637A5C647B5D657C5D657C5D657C5F667F606780616881626982636A 83656C85666D86666D86686F8A69708B69708B6B728D6C738E6D748F6E75906E 75906F77946F7794707895717996737B98747C99757D9A757D9A75809C75809C 76819D78839F7984A07A85A17B86A27C87A37B87A37C88A47D89A57E8AA67F8B A7808CA8808CA8818DA9818CAA818CAA828DAB828DAB838EAC838EAC848FAD84 8FAD8791AF8791AF8791AF8791AF8791AF8791AF8791AF8791AF8690AE8690AE 8690AE858FAD858FAD858FAD858FAD858FAD848DAE838CAD838CAD828BAC828B AC818AAB818AAB818AAB8289AA8289AA8188A98188A98087A88087A87F86A77F 86A77B84A57B84A57B84A57B84A5565C73565C73575D74575D74585E75585E75 595F76595F765A61755A61755A61755B62765C63775D64785D64785E65795D65 7C5D657C5E667D60687F616980626A81636B82646C83666D88666D88676E8968 6F8A69708B6A718C6B728D6B728D6C74916C74916D75926E76936F7794707895 717996717996727D99727D99737E9A75809C76819D77829E78839F7984A07884 A07985A17985A17A86A27C88A47D89A57D89A57E8AA67E89A77E89A77F8AA87F 8AA8808BA9808BA9818CAA818CAA848EAC848EAC848EAC848EAC848EAC848EAC 848EAC848EAC838DAB838DAB838DAB838DAB828CAA828CAA828CAA828CAA818A AB818AAB8089AA8089AA7F88A97F88A97E87A87E87A87F86A77F86A77E85A67E 85A67D84A57D84A57D84A57C83A47982A37982A37881A27881A2555B72555B72 555B72565C73565C73575D74575D74575D74585F73585F735960745A61755A61 755B62765C63775C63775B637A5B637A5C647B5E667D5F677E60687F61698062 6A81666A86666A86676B87686C88696D89696D896A6E8A6A6E8A6B718E6B718E 6C728F6D73906E74916F75926F7592707693717996727A97737B98747C99767E 9B777F9C78809D78809D76829E76829E77839F7884A07985A17A86A27B87A37B 87A37C87A57C87A57C87A57D88A67D88A67E89A77E89A77F8AA8818BA9818BA9 818BA9818BA9818BA9818BA9818BA9818BA9818BA9818BA9818BA9808AA8808A A8808AA8808AA8808AA87F88A97E87A87E87A87E87A87D86A77C85A67C85A67C 85A67F84A57F84A57E83A47E83A47D82A37D82A37C81A27C81A2767FA0767FA0 767FA0767FA0555971555971555971565A72565A72575B73575B73575B73585D 72585D72595E73595E735A5F745B60755C61765C61765961785A62795B637A5C 647B5E667D5F677E60687F60687F646884656985656985666A86676B87686C88 686C88696D89696F8C6A708D6A708D6B718E6C728F6D73906D73906E74917078 95717996727A97737B98747C99767E9B777F9C777F9C75819D75819D76829E77 839F7884A07985A17A86A27A86A27B86A47B86A47B86A47C87A57C87A57D88A6 7D88A67D88A6808AA8808AA8808AA8808AA8808AA8808AA8808AA8808AA8808A A8808AA8808AA87F89A77F89A77F89A77F89A77E88A67E87A87D86A77D86A77C 85A67C85A67B84A57B84A57B84A57E83A47E83A47D82A37D82A37C81A27C81A2 7B80A17B80A1757E9F757E9F757E9F757E9F54596E54596E54596E555A6F555A 6F565B70565B70575C71565A72565A72575B73575B73585C74595D755A5E765A 5E765C60785C60785D61795E627A5F637B5F637B60647C60647C62687F636980 636980646A81656B82666C83666C83676D84676E89676E89686F8A69708B6A71 8C6B728D6C738E6C738E6B758D6C768E6E779270799471799671799771799770 7896797D9A797D9A7A7E9B7B7F9C7B7F9C7C809D7C809D7C809D79809B7A819C 7C839E7E85A07F86A18087A27F86A17F86A17E85A07C85A07A85A07A87A17887 A17788A27589A27589A28187A48086A37E84A17D83A07C829F7C829F7D83A07D 83A07C84A27C84A27C84A27C84A27B83A17B83A17B83A17B83A179819E79819E 79819E78809D777F9C777F9C777F9C767E9B737B99737B99737B99737B995358 6D53586D54596E54596E555A6F555A6F565B70565B70565A72565A72575B7357 5B73585C74595D755A5E765A5E765B5F775C60785C60785D61795E627A5F637B 5F637B5F637B61677E62687F62687F636980646A81656B82656B82666C83676B 87676B87686C88696D896A6E8A6B6F8B6C708C6C708C6C738C6D748D6F769171 7893727895737996737897737897717996727A97727A97737B98747C99757D9A 767E9B767E9B787F9A79809B7B829D7C839E7D849F7C839E7C839E7B829D8084 A07E85A07D849F7B849F78839E77849E74839D74839D7E84A17D83A07C829F7B 819E7B819E7B819E7C829F7C829F79819F79819F79819F78809E78809E78809E 78809E777F9D787E9B787E9B777D9A777D9A767C99767C99757B98757B987479 9874799874799874799854576C54576C55586D55586D56596E56596E575A6F57 5A6F585B70585B70585B70595C715A5D725B5E735B5E735C5F745C5F745C5F74 5D60755E61765E61765F627760637860637861667B61667B62677C62677C6368 7D64697E656A7F656A7F646982656A83666B84676C85686D86696E87696E876A 6F886A72896B728B6D748D6F76917178937278957379967378976C78946C7894 6C78946D79956F7B97707C98727E9A727E9A747C99757D9A757D9A757D9A757D 9A757D9A747C99737B987C7E9C7C7E9C7B7F9C7B7F9C797F9C797F9C777F9C77 7F9C7A809D7A809D797F9C787E9B787E9B797F9C7A809D7A809D757D9B757D9B 757D9B747C9A747C9A747C9A747C9A747C9A747A97747A97747A977379967379 9672789572789572789572779672779672779672779652556A53566B53566B54 576C54576C55586D55586D55586D575A6F575A6F585B70585B70595C715A5D72 5A5D725B5E735A5D725A5D725B5E735C5F745D60755D60755E61765E61765E63 785F64795F647960657A61667B62677C62677C63687D656982656982666A8367 6B84686C85696D866A6E876A6E87696F866A70876C718A6E738C717591727692 7478957478956A78946B79956B79956C7A966E7C98707E9A72809C73819D747C 99747C99747C99737B98737B98727A9771799671799676789676789677799778 7A98797B99797D9A7A7E9B7B7F9C777D9A767C99757B98757B98757B98767C99 777D9A777D9A757B98757B98747A97747A97747A97747A977379967379967478 9574789574789573779473779472769372769372769372769371759271759271 759253546953546953546954556A54556A55566B55566B56576C57586C57586C 58596D595A6E595A6E5A5B6F5B5C705B5C705A5B6F5B5C705B5C705C5D715D5E 725D5E725E5F735E5F735E62755E62755F637660647760647761657862667962 6679646880656981656981666A82686C84696D85696D856A6E86676E82686F83 696F866B70896D728B6F738F7175917276926D7B976C7A966C7A966D7B976F7D 99717F9B73819D75839F77819F77819F76809E76809E757F9D757F9D757F9D75 7F9D787B9A777A99777A99777A99777A99767998777998777998757B98747A97 737996727895727895737996737996747A97747A97747A977379967379967379 9673799672789572789573779473779473779472769372769371759271759271 75926F73906F73906F73906E728F535167535167545268545268555369555369 56546A56546A57566A57566A58576B58576B59586C5A596D5B5A6E5B5A6E5A59 6D5B5A6E5B5A6E5C5B6F5D5C705E5D715E5D715F5E725E5F735E5F735F60745F 607460617561627661627662637764677C64677C65687D66697E676A7F686B80 696C816A6D82666B80666B80676C81686C846A6E876C70896E718D6F728E7078 956F77946F77946F7794707895727A97757D9A777F9C7A83A47982A37982A379 82A37982A37A83A47B84A57C85A67883A37782A2767FA0737C9D72799A717697 6F74956E7394747A977379967278957177947076937076937177947177947377 9373779373779373779373779372769272769272769272749272749272749271 73917173917072907072907072906D708C6D708C6D708C6D708C525066525066 5351675351675452685452685553695553695555675555675656685656685757 6958586A59596B59596B59596B59596B5A5A6C5B5B6D5C5C6E5C5C6E5D5D6F5D 5D6F5C5E705C5E705D5F715E60725E60725F6173606274606274606378606378 61647962657A63667B64677C65687D65687D646A7D646A7D64697E656981666A 82686C856A6E876B6F886F718F6E708E6C6E8C6C6E8C6D6F8D6F718F71739173 7593707B9B707B9B707B9B717C9C727D9D747F9F7681A17782A27185A47284A3 7082A1707F9F707D9D6F7A9A6E77986D7697747A977379967278957076936F75 926E74916E74916E74917074906F738F6F738F6F738F6F738F6E728E6E728E6E 728E6F718F6F718F6E708E6E708E6D6F8D6D6F8D6C6E8C6C6E8C6B6E8A6B6E8A 6B6E8A6B6E8A514F655250665250665351675351675452685452685452685353 6554546654546655556756566857576957576958586A58586A59596B59596B5A 5A6C5B5B6D5C5C6E5C5C6E5C5C6E5B5D6F5B5D6F5C5E705D5F715D5F715E6072 5F61735F61735C5F745D60755D60755E617660637861647961647962657A6569 7C65697C65687D65687D666880686A826A6B856B6C866C6A886B69876A688669 67856967856B69876E6C8A6F6D8B646F8F646F8F646F8F6570906772926A7595 6D78986E799969819F69819F6B809F6C809F6F81A07180A07380A07580A0757B 98747A977278957076936E74916D73906D73906D73906D718A6D718A6D718A6D 718A6C70896C70896C70896C70896E6E8C6D6D8B6D6D8B6D6D8B6C6C8A6B6B89 6B6B896B6B896C6D876C6D876C6D876C6D87504E61504E61514F62514F625250 6352506353516453516452526453536553536554546655556756566856566856 566857576957576957576958586A58586A59596B59596B59596B595B6D595B6D 5A5C6E5A5C6E5B5D6F5B5D6F5C5E705C5E705C60725C60725C60725D61735D61 735E62745E62745E627465637965637965637966647A67657B67657B67657B68 667C63677F646880646880646880656981656981666A82666A82696E83696D85 696D856A6E876A6E876B6E8A6B6E8A6C6F8B6E728E6E728E6F738F6F738F6F73 8F6F738F6F738F7074907074907074906E728E6D718D6B6F8B696D89686C8867 6B876D6E8A6D6E8A6D6E8A6C6D896B6C886A6B876A6B876A6B87676B87676B87 676B87676B87676B87666A86666A86666A866569856569856569856569854F4D 60504E61504E61514F62514F6252506352506352506352526452526452526453 536554546655556755556756566856566856566857576957576958586A58586A 59596B59596B585A6C595B6D595B6D5A5C6E5A5C6E5B5D6F5B5D6F5B5D6F5B5F 715B5F715B5F715C60725C60725D61735D61735E627464627864627864627865 637966647A66647A66647A67657B62667E62667E63677F63677F646880646880 656981656981676C81676C81676B83686C84696D86696C88696C886A6D896A6E 8A6A6E8A6A6E8A6A6E8A6A6E8A6B6F8B6B6F8B6B6F8B6B6F8B6B6F8B6B6F8B6B 6F8B6A6E8A6A6E8A696D89696D896D6E8A6C6D896C6D896B6C886B6C886A6B87 6A6B87696A86666A86666A86666A86666A86666A866569856569856569856468 846468846468846468844E4C5F4E4C5F4F4D604F4D60504E61504E61514F6251 4F62505062505062515163525264535365535365545466545466555567555567 55556756566856566857576957576957576959596B59596B5A5A6C5A5A6C5B5B 6D5B5B6D5C5C6E5C5C6E5B5D6F5B5D6F5C5E705C5E705D5F715D5F715E60725E 607262607662607663617763617764627864627865637965637962657A63667B 63667B63667B64677C64677C65687D65687D66697E66697E66697E6769816768 82686983686985686985656982656982656982656982656982666A83666A8366 6A83676B84676B84686C85686C85696D866A6E876B6F886B6F886B6C866B6C86 6B6C866A6B856A6B85696A84696A84686983666A83666A836569826569826569 826569826468816468816367806367806367806367804C4A5D4D4B5E4D4B5E4D 4B5E4E4C5F4F4D604F4D604F4D604F4D60504E61504E61514F62525063535164 5351645452655452655452655452655553665553665654675654675755685757 6958586A58586A58586A59596B5A5A6C5A5A6C5A5A6C595B6D595B6D5A5C6E5A 5C6E5B5D6F5B5D6F5C5E705C5E70605F73605F73605F73616074626175626175 62617563627660637860637860637861647961647962657A62657A63667B6266 7962667962657A63667B64667E64657F64657F65668061657E61657E61657E61 657E62667F62667F62667F62667F636780636780646881656982666A83676B84 686C85686C85696A846869836869836869836768826768826768826768826367 8063678063678063678063678062667F62667F62667F61657E61657E61657E61 657E4A485B4B495C4B495C4C4A5D4C4A5D4D4B5E4D4B5E4D4B5E4F4B5E504C5F 504C5F514D60524E61534F62534F625450635450635450635450635551645652 6556526556526557536656546757556857556858566958566959576A59576A59 576A59596B59596B5A5A6C5A5A6C5B5B6D5B5B6D5C5C6E5C5C6E5D5D6F5E5E70 5E5E705E5E705F5F716060726060726060725F60745F60746061756061756162 7661627662637762637761627661627661627662637862637863637B63637B63 627C61637B61637B62647C62647C62647C62647C63657D63657D64667E64667E 64667E64667E64667E64667E64667E64667E65677F65677F65677F65677F6567 7F64667E64667E64667E63657D63657D63657D62647C62647C62647C62647C62 647C60627A60627A60627A60627A49475A49475A49475A4A485B4A485B4B495C 4B495C4B495C4E4A5D4E4A5D4F4B5E4F4B5E504C5F514D60524E61524E61524E 61524E61534F62534F6254506354506355516455516455536655536655536656 546756546757556857556857556857576957576958586A58586A59596B59596B 5A5A6C5A5A6C5B5B6D5B5B6D5C5C6E5C5C6E5D5D6F5D5D6F5E5E705E5E705E5D 715F5E725F5E72605F73605F7361607461607461607460607260607261607461 6074626076626076636079636079626378626378626378636479636479636479 63647964657A64657A64657A6364796364796263786263786263786162776164 7961647961647961647961647961647961647961647963647963647962637862 63786263786263786162776162775F60755F60755F60755F6075474558474558 48465948465949475A49475A4A485B4A485B4E485B4F495C4F495C504A5D514B 5E524C5F524C5F524C5F534D60534D60534D60544E61544E61554F62554F6256 5063555164555164565265565265575366575366585467585467565467575568 57556858566958566959576A59576A59576A5959695A5A6A5A5A6A5A5A6A5B5B 6B5C5C6C5C5C6C5C5C6C5C5C6E5D5D6F5D5D6F5E5E705E5E705F5F715F5F715F 5F715F5F715F5F715F5F71605F73605F73615F75615F75625F78606176606176 6061766162776162776162776162776162776061766061766061766061766061 766061766061766061765E61765E61765E61765E61765E61765E61765E61765E 61766162776162776162776061766061766061766061766061765D5E735D5E73 5D5E735D5E7347455847455847455848465948465949475A49475A49475A4E48 5B4E485B4E485B4F495C504A5D514B5E514B5E524C5F524C5F524C5F534D6053 4D60544E61544E61554F62554F62555164555164555164565265565265575366 5753665753665654675654675654675755685755685856695856695856695858 685959695959695959695A5A6A5B5B6B5B5B6B5B5B6B5B5B6D5C5C6E5C5C6E5D 5D6F5D5D6F5E5E705E5E705E5E705E5E6E5E5E6E5F5F715F5E72605F73605E74 615F75615F755E5F745E5F745E5F745F60755F60755F60755F60755F60755D5E 735D5E735E5F745E5F745F60756061766061766162775C5F745C5F745C5F745C 5F745C5F745D60755D60755D60756061766061766061765F60755F60755F6075 5F60755F60755C5D725C5D725C5D725C5D724A44554A44554A44554B45564B45 564C46574C46574D475850485950485951495A51495A524A5B524A5B534B5C53 4B5C534C61534C61534C61544D62544D62554E63554E63554E63554F60554F60 5650615650615751625751625852635852635553665553665553665654675654 6757556857556857556858566959576A59576A5A586B5A586B5B596C5B596C5B 596C5C5A6D5C5A6D5C5A6D5D5B6E5D5B6E5D5B6E5D5B6E5E5C6F5D5C705D5C70 5E5D715E5D715E5D715E5D715F5E725F5E725F5E725F5E725F5E725F5E725F5E 725F5E725F5E725F5E72605F73605F73605F73605F73605F73605F73605F7360 5F73605F735F5E725F5E725F5E725F5E725E5D715E5D715E5D715F5E725F5E72 5F5E725F5E725F5E725F5E725F5E725F5E725D5B6F5D5B6F5D5B6F5D5B6F4943 544A44554A44554A44554B45564B45564C46574C465750485950485950485951 495A51495A524A5B524A5B524A5B524B60524B60534C61534C61544D62544D62 554E63554E63544E5F554F60554F605650615650615751625751625751625652 6556526557536657536658546758546759556859556858566958566958566959 576A59576A5A586B5A586B5B596C5B596C5B596C5C5A6D5C5A6D5C5A6D5C5A6D 5D5B6E5D5B6E5D5C705D5C705D5C705D5C705D5C705E5D715E5D715E5D715E5D 715E5D715E5D715E5D715E5D715E5D715E5D715E5D715F5E725F5E725F5E725F 5E725F5E725F5E725F5E725F5E725F5E725F5E725E5D715E5D715E5D715E5D71 5D5C705D5C705E5D715E5D715E5D715E5D715E5D715E5D715E5D715E5D715C5A 6E5C5A6E5C5A6E5C5A6E4842534943544943544943544A44554B45564B45564B 45564E46574F47584F475850485950485951495A51495A51495A514A5F514A5F 514A5F524B60524B60534C61534C61534C61534D5E534D5E544E5F544E5F554F 60554F6056506156506155516455516455516456526556526557536657536657 536656546757556857556857556858566959576A59576A59576A5A586B5A586B 5A586B5A586B5B596C5B596C5B596C5B596C5B5A6E5B5A6E5B5A6E5C5B6F5C5B 6F5C5B6F5C5B6F5C5B6F5C5B6F5C5B6F5C5B6F5C5B6F5C5B6F5C5B6F5C5B6F5C 5B6F5D5C705D5C705D5C705D5C705D5C705D5C705D5C705D5C705D5C705D5C70 5D5C705D5C705C5B6F5C5B6F5C5B6F5C5B6F5B5A6E5B5A6E5B5A6E5B5A6E5B5A 6E5B5A6E5B5A6E5B5A6E5B596D5B596D5B596D5B596D47415247415248425348 42534943544943544A44554A44554D45564D45564E46574E46574F47584F4758 4F47585048594F495C4F495C4F495C504A5D504A5D514B5E514B5E524C5F524C 5D524C5D524C5D534D5E534D5E544E5F544E5F544E5F554F62554F62554F6256 5063565063575164575164585265575366575366575366585467585467595568 5955685955685A56695A56695A56695A56695A56695B576A5B576A5B576A5A58 6C5A586C5A586C5A586C5B596D5B596D5B596D5B596D5B596D5B596D5B596D5B 596D5B596D5B596D5B596D5B596D5C5A6E5C5A6E5C5A6E5C5A6E5C5A6E5C5A6E 5C5A6E5C5A6E5C5A6E5C5A6E5C5A6E5B596D5B596D5B596D5B596D5B596D5957 6B59576B59576B59576B59576B59576B59576B59576B59576B59576B59576B59 576B4640514640514640514741524741524842534842534842534B43544C4455 4C44554C44554D45564D45564E46574E46574D47584D47584D47584E48594F49 5A4F495A4F495A504A5B504A5B504A5B514B5C514B5C524C5D524C5D534D5E53 4D5E534D60534D60534D60544E61554F62554F62554F62565063555164555164 5551645652655652655753665753665753665753665854675854675854675854 675955685955685955685A556A5A556A5A556A5A556A5B566B5B566B5B566B5B 566B5B566B5B566B5B566B5B566B5B566B5B566B5B566B5B566B5C576C5C576C 5C576C5C576C5C576C5C576C5C576C5C576C5C576C5C576C5C576C5B566B5B56 6B5B566B5B566B5A556A59546959546959546959546959546959546959546959 5469575569575569575569575569443E4F453F50453F50464051464051474152 4741524741524A42534A42534A42534B43544B43544C44554C44554D45564B45 564B45564C46574C46574D47584D47584E48594E48594F495A4F495A4F495A50 4A5B504A5B514B5C514B5C514B5C534A5E534A5E544B5F544B5F554C60554C60 564D61564D61554F62554F62554F625650635751645751645751645852655751 6458526558526558526558526558526559536659536658536858536858536858 5368585368595469595469595469595469595469595469595469595469595469 5954695954695A556A5A556A5A556A5A556A5A556A5A556A5A556A5A556A5A55 6A5A556A59546959546959546959546959546958536858536858536858536858 5368585368585368585368585368555367555367555367555367433D4E443E4F 443E4F453F50453F504640514640514640514941524941524941524A42534A42 534B43544B43544B43544A45544A45544A45544B46554B46554C47564C47564D 48574D47584E48594E48594E48594F495A504A5B504A5B504A5B52495D52495D 52495D534A5E534A5E544B5F544B5F554C60534D60544E61544E61554F62554F 6256506356506356506356506356506356506356506357516457516457516457 51645851665851665851665952675952675952675952675952675A53685A5368 5A53685A53685A53685A53685A53685A53685A53685A53685A53685A53685A53 685A53685A53685A53685A53685A53685A53685A536859526759526759526759 5267595267595267595267595267595267595267595267595267545266545266 545266545266433D4E433D4E433D4E443E4F453F50453F50453F504640514840 514840514941524941524A42534A42534B43544B43544944534944534A45544A 45544B46554B46554C47564C47564D47584D47584D47584E48594E48594F495A 4F495A4F495A53485C53485C54495D54495D554A5E554A5E564B5F564B5F554C 60554C60554C60564D61564D61574E62574E62584F63574E62574E62574E6258 4F63584F63584F63584F63584F63575065575065585166585166585166585166 5952675952675952675952675952675952675952675952675952675952675952 6759526759526759526759526759526759526759526759526759526759526759 5267595267585166585166585166595267595267595267595267595267595267 595267595267535165535165535165535165463C4C463C4C473D4D473D4D483E 4E483E4E493F4F493F4F493F4F493F4F4A40504A40504B41514B41514C42524C 42524B41514B41514C42524C42524D43534D43534E44544E4454504656504656 5046565046565147575147575147575147574F48574F4857504958514A59524B 5A534C5B544D5C544D5C534C5B534C5B534C5B544D5C544D5C544D5C544D5C55 4E5D534D5E544E5F544E5F544E5F544E5F544E5F554F60554F60574F60574F60 574F60574F605850615850615850615850615351645351645351645351645351 6453516453516453516456506356506356506356506356506356506356506356 5063585265585265585265575164575164565063565063565063565063565063 565063565063565063565063565063565063544D62544D62544D62544D62463C 4C463C4C463C4C473D4D473D4D483E4E483E4E483E4E493F4F493F4F493F4F4A 40504A40504B41514B41514B41514B41514B41514C42524C42524D43534D4353 4E44544E44544F45554F45554F45555046565046565046565046565147574E47 564F48574F4857504958514A59524B5A534C5B534C5B524B5A534C5B534C5B53 4C5B534C5B544D5C544D5C544D5C534D5E534D5E534D5E534D5E544E5F544E5F 544E5F544E5F564E5F564E5F564E5F574F60574F60574F60574F605850615450 6354506354506354506354506354506354506354506356506356506356506356 5063565063565063565063565063575164575164575164565063565063565063 554F62554F62554F62554F62554F62554F62554F62554F62554F62554F62544D 62544D62544D62544D62443A4A453B4B453B4B463C4C463C4C473D4D473D4D47 3D4D473D4D483E4E483E4E493F4F493F4F4A40504A40504A40504B41514B4151 4C42524C42524D43534D43534E44544E44544E44544E44544E44544E44544F45 554F45554F45554F45554D46554E47564E47564F4857504958514A59514A5952 4B5A514A59514A59514A59524B5A524B5A524B5A524B5A524B5A514B5C514B5C 524C5D524C5D524C5D524C5D534D5E534D5E554D5E554D5E554D5E554D5E564E 5F564E5F564E5F564E5F534F62534F62534F62534F62534F62534F62534F6253 4F62544E61544E61544E61544E61544E61544E61544E61544E61554F62554F62 554F62554F62554F62544E61544E61544E61544E61544E61544E61544E61544E 61544E61544E61544E61544D62544D62544D62544D62433949433949443A4A44 3A4A453B4B453B4B453B4B463C4C463C4C463C4C473D4D473D4D483E4E483E4E 483E4E493F4F4A40504A40504B41514B41514C42524C42524D43534D43534C42 524C42524C42524D43534D43534D43534D43534D43534C45544C45544D46554D 46554E47564F48574F48574F48574F48574F4857504958504958504958504958 514A59514A59504A5B504A5B504A5B504A5B504A5B514B5C514B5C514B5C534B 5C534B5C534B5C544C5D544C5D544C5D544C5D544C5D534D60534D60534D6053 4D60534D60534D60534D60534D60524C5F524C5F524C5F524C5F524C5F524C5F 524C5F524C5F534D60534D60534D60534D60534D60524C5F524C5F524C5F524C 5F524C5F524C5F524C5F524C5F524C5F524C5F524C5F524C5F524C5F524C5F52 4C5F413747423848423848423848433949433949443A4A443A4A443A4A453B4B 453B4B453B4B463C4C463C4C473D4D473D4D483E4E493F4F493F4F4A40504A40 504B41514B41514B41514A40504A40504A40504B41514B41514B41514B41514B 41514B44534B44534B44534C45544C45544C45544D46554D46554D46554D4655 4E47564E47564E47564E47564F48574F48574E48594E48594E48594E48594E48 594F495A4F495A4F495A51495A51495A51495A524A5B524A5B524A5B524A5B52 4A5B514B5E514B5E514B5E514B5E514B5E514B5E514B5E514B5E514B5E514B5E 514B5E514B5E514B5E514B5E514B5E514B5E504A5D504A5D504A5D504A5D504A 5D514B5E514B5E514B5E504A5D504A5D504A5D504A5D504A5D504A5D504A5D50 4A5D504A5B504A5B504A5B504A5B403646403646403646413747413747423848 423848433949433949433949433949443A4A443A4A453B4B453B4B463C4C463C 4C463C4C473D4D473D4D483E4E483E4E493F4F493F4F483E4E483E4E493F4F49 3F4F493F4F493F4F4A40504A40504942514942514A43524A43524A43524A4352 4B44534B44534C45544C45544C45544C45544C45544D46554D46554D46554C46 574C46574C46574C46574D47584D47584D47584D47584F47584F475850485950 485950485950485951495A51495A52495D52495D52495D52495D52495D52495D 52495D52495D4F495C4F495C4F495C4F495C4F495C4F495C4F495C4F495C4E48 5B4E485B4E485B4E485B4E485B4F495C4F495C4F495C4E485B4E485B4E485B4E 485B4E485B4E485B4E485B4E485B4D47584D47584D47584D47583F35453F3545 3F35454036464036464137474137474137474238484238484238484339494339 49443A4A443A4A443A4A443A4A443A4A453B4B453B4B463C4C463C4C473D4D47 3D4D473D4D473D4D473D4D473D4D483E4E483E4E483E4E483E4E484150484150 4841504942514942514942514942514942514A43524A43524A43524B44534B44 534B44534B44534C45544A44554B45564B45564B45564B45564C46574C46574C 46574E46574E46574E46574E46574F47584F47584F47584F475850475B50475B 50475B50475B50475B50475B50475B50475B4D475A4D475A4D475A4D475A4D47 5A4D475A4D475A4D475A4C46594C46594C46594D475A4D475A4D475A4E485B4E 485B4D475A4D475A4D475A4D475A4D475A4D475A4D475A4D475A4B46554B4655 4B46554B46553E34443E34443F35453F35454036464036464137474137474137 47413747423848423848433949433949443A4A443A4A43394943394943394944 3A4A443A4A453B4B453B4B463C4C463C4C463C4C473D4D473D4D473D4D473D4D 473D4D483E4E4841504841504841504841504841504841504841504841504942 514A43524A43524A43524A43524B44534B44534B44534A44554A44554A44554A 44554B45564B45564B45564B45564D45564D45564E46574E46574E46574E4657 4E46574F475851465A51465A51465A51465A51465A51465A51465A51465A4D47 5A4D475A4D475A4D475A4D475A4D475A4D475A4D475A4B45584B45584B45584C 46594C46594D475A4D475A4D475A4C46594C46594C46594C46594C46594C4659 4C46594C46594944534944534944534944533E33433F34443F34444035454035 4541364641364641364642364842364843374943374944384A44384A45394B45 394B41394A41394A423A4B423A4B433B4C443C4D443C4D453D4E473B4D483C4E 483C4E483C4E483C4E483C4E493D4F493D4F453E4D453E4D463F4E463F4E4740 4F4841504841504942514B41514B41514C42524C42524C42524C42524C42524D 43534C42524C42524C42524C42524C42524D43534D43534D43534D43534D4353 4D43534E44544E44544E44544E44544E44544F45554F45554F45554F45554F45 554F45554F45554F455550465650465650465650465650465650465650465650 46564F45564F45564F45564F45564E44554E44554E44554E44554C44554C4455 4C44554C44554C44554C44554C44554C44554F45554F45554F45554F45553E33 433E33433F34443F344440354540354541364641364642364842364842364843 374944384A44384A44384A45394B41394A41394A423A4B423A4B433B4C443C4D 443C4D443C4D473B4D473B4D473B4D483C4E483C4E483C4E483C4E483C4E453E 4D453E4D453E4D463F4E47404F47404F4841504841504A40504A40504A40504B 41514B41514B41514B41514C42524B41514B41514B41514C42524C42524C4252 4C42524D43534C42524D43534D43534D43534D43534E44544E44544E44544F45 554F45554F45554F45554F45554F45554F45554F45554F45554F45554F45554F 45554F45554F45554F45554F45554F45564F45564E44554E44554E44554E4455 4E44554D43544C44554C44554C44554C44554C44554C44554C44554C44554C42 524C42524C42524C42523E33433E33433E33433F34443F344440354540354540 354541354742364842364842364843374943374944384A44384A43394A43394A 43394A443A4B453B4C453B4C453B4C463C4D463A4C473B4D473B4D473B4D473B 4D483C4E483C4E483C4E463C4C473D4D473D4D473D4D483E4E483E4E493F4F49 3F4F483E4E493F4F493F4F493F4F493F4F493F4F4A40504A40504A40504A4050 4B41514B41514B41514B41514C42524C42524C42524C42524C42524C42524C42 524D43534D43534D43534E44544E44544E44544E44544E44544E44544E44544E 44544D43534D43534D43534D43534D43534D43534D43534D43534E44554E4455 4E44554D43544D43544D43544D43544D43544B43544B43544B43544B43544B43 544B43544B43544B43544A40504A40504A40504A40503D32423D32423D32423E 33433E33433F34443F3444403545413547413547413547423648423648433749 43374943374943394A43394A43394A443A4B443A4B443A4B453B4C453B4C463A 4C463A4C463A4C463A4C473B4D473B4D473B4D473B4D463C4C463C4C463C4C47 3D4D473D4D473D4D483E4E483E4E473D4D473D4D473D4D473D4D483E4E483E4E 483E4E483E4E493F4F493F4F4A40504A40504A40504A40504B41514B41514A40 504A40504B41514B41514B41514B41514C42524C42524C42524C42524C42524C 42524C42524C42524C42524C42524B41514B41514B41514B41514B41514B4151 4B41514B41514D43544D43544D43544C42534C42534C42534C42534C42534A42 534A42534A42534A42534A42534A42534A42534A42534A40504A40504A40504A 40503C31413C31413D32423D32423E33433E33433F34443F3444403446403446 40344641354741354742364842364842364844384A44384A44384A44384A4438 4A44384A45394B45394B45394B45394B45394B45394B463A4C463A4C463A4C46 3A4C473C4C473C4C473C4C473C4C473C4C473C4C473C4C483D4D463C4C463C4C 463C4C463C4C463C4C473D4D473D4D473D4D483E4E483E4E493F4F493F4F493F 4F493F4F4A40504A4050493F4F493F4F493F4F493F4F4A40504A40504A40504A 40504B41514B41514B41514B41514B41514B41514B41514B41514A40504A4050 4A40504A40504A40504A40504A40504A40504C42534C42534C42534B41524B41 524B41524B41524A405148405148405148405148405148405148405148405148 40514B41514B41514B41514B41513B30403B30403C31413C31413D32423D3242 3E33433E33433F33453F33454034464034464135474135474135474236484638 4A46384A46384A46384A46384A46384A46384A46384A44384A44384A44384A45 394B45394B45394B45394B463A4C483B4B483B4B483B4B483B4B483B4B483B4B 483B4B483B4B453B4B453B4B463C4C463C4C463C4C463C4C473D4D473D4D473D 4D473D4D483E4E483E4E483E4E483E4E493F4F493F4F483E4E483E4E483E4E48 3E4E483E4E493F4F493F4F493F4F4A40504A40504A40504A40504A40504A4050 4A40504A4050493F4F493F4F493F4F493F4F493F4F493F4F493F4F493F4F4B41 524B41524B41524A40514A40514A40514A4051493F50473F50473F50473F5047 3F50473F50473F50473F50473F504B41514B41514B41514B41513B30403B3040 3B30403C31413C31413D32423D32423D32423E32443F33453F33453F33454034 4641354741354741354746384A46384A46384A45374945374945374945374945 374944384A44384A44384A44384A44384A45394B45394B45394B483B4B483B4B 483B4B483B4B483B4B483B4B473A4A473A4A453B4B463C4C463C4C463C4C463C 4C473D4D473D4D473D4D463C4C473D4D473D4D473D4D473D4D483E4E483E4E48 3E4E473D4D473D4D473D4D473D4D473D4D483E4E483E4E483E4E493F4F493F4F 493F4F493F4F493F4F493F4F493F4F493F4F493F4F493F4F493F4F493F4F493F 4F493F4F493F4F493F4F4A40514A40514A40514A4051493F50493F50493F5049 3F50463E4F463E4F463E4F463E4F463E4F463E4F463E4F463E4F483E4E483E4E 483E4E483E4E3A2F3F3A2F3F3B30403B30403C31413C31413D32423D32423E32 443E32443F33453F334540344640344641354741354746384A46384A45374945 374945374945374945374945374943374943374944384A44384A44384A44384A 44384A45394B483B4B483B4B483B4B483B4B473A4A473A4A473A4A473A4A463C 4C463C4C463C4C463C4C473D4D473D4D473D4D473D4D463C4C463C4C463C4C47 3D4D473D4D473D4D473D4D473D4D463C4C463C4C463C4C473D4D473D4D473D4D 473D4D473D4D483E4E483E4E483E4E483E4E483E4E483E4E483E4E483E4E493F 4F493F4F493F4F493F4F493F4F493F4F493F4F493F4F4A40514A4051493F5049 3F50493F50493F50483E4F483E4F463E4F463E4F463E4F463E4F463E4F463E4F 463E4F463E4F463C4C463C4C463C4C463C4C0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000 } OnShow = FormShow Position = poScreenCenter LCLVersion = '3.0.0.3' object Image1: TImage AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 0 Height = 176 Top = 0 Width = 464 Anchors = [akTop, akLeft, akRight] Picture.Data = { 0A544A706567496D616765DA270000FFD8FFE000104A4649460001010100F000 F00000FFE107E245786966000049492A000800000009000F010200120000007A 000000100102000B0000008C0000001201030001000000010000001A01050001 000000980000001B01050001000000A000000028010300010000000200000031 0102000C000000A80000003201020014000000B40000006987040001000000C8 000000E60100004E494B4F4E20434F52504F524154494F4E004E494B4F4E2044 3730730000F000000001000000F00000000100000047494D5020322E362E3131 00323031323A30323A31312031323A35393A35310011009A820500010000009A 0100009D82050001000000A20100002788030001000000800200000090070004 000000303231300390020014000000AA01000001920A0001000000BE01000002 92050001000000C601000004920A0001000000CE0100000592050001000000D6 0100000792030001000000050000000992030001000000100000000A92050001 000000DE01000000A00700040000003031303001A0030001000000FFFF000002 A00400010000002C01000003A00400010000007000000005A40300010000001B 000000000000000200000001000000230000000A000000323030353A30373A30 362032323A32303A323000FFFFFFFF01000000FF830500A08601000000000001 000000240000000A000000120000000100000006000301030001000000060000 001A01050001000000340200001B010500010000003C02000028010300010000 0002000000010204000100000044020000020204000100000096050000000000 0048000000010000004800000001000000FFD8FFE000104A4649460001010000 0100010000FFDB004300080606070605080707070909080A0C140D0C0B0B0C19 12130F141D1A1F1E1D1A1C1C20242E2720222C231C1C2837292C30313434341F 27393D38323C2E333432FFDB0043010909090C0B0C180D0D1832211C21323232 3232323232323232323232323232323232323232323232323232323232323232 323232323232323232323232323232FFC0001108002900700301220002110103 1101FFC4001F0000010501010101010100000000000000000102030405060708 090A0BFFC400B5100002010303020403050504040000017D0102030004110512 2131410613516107227114328191A1082342B1C11552D1F02433627282090A16 1718191A25262728292A3435363738393A434445464748494A53545556575859 5A636465666768696A737475767778797A838485868788898A92939495969798 999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4 D5D6D7D8D9DAE1E2E3E4E5E6E7E8E9EAF1F2F3F4F5F6F7F8F9FAFFC4001F0100 030101010101010101010000000000000102030405060708090A0BFFC400B511 0002010204040304070504040001027700010203110405213106124151076171 1322328108144291A1B1C109233352F0156272D10A162434E125F11718191A26 2728292A35363738393A434445464748494A535455565758595A636465666768 696A737475767778797A82838485868788898A92939495969798999AA2A3A4A5 A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DA E2E3E4E5E6E7E8E9EAF2F3F4F5F6F7F8F9FAFFDA000C03010002110311003F00 E4ADF64C81D3953ED8AB422F6AE7ED3535B5B39328C26C8F95BA74EB4F83C472 82A92C2AFCF2CBC647D2B9F999D963A158FDAA74873DAA3B39E2BB8F7C4D91D0 8EE3EB5A31479A7CC2B11C76E7D2ADC76C78E2ACC309E38ABF141ED4B98A48A5 1C0DD47F2A945BB9EE6B523B6CF6AB0B6BED5371987F63F6A61B4F6ADF36BED5 1B5B7B53E61D8C06B5F6A85AD7DAB7DAD7DAA16B5F6A7CC1639E7B63E9552580 FA574AF6BED54E7B5E0D1CC1CA7934A1A4037F0173C93C1A811009542F39E463 A9351CC19FF7711F987206696DADE68AED0CB1B6CCF506A12496E0DEA6EC5717 36B11482664049CAA8FEB5D7F84EE25D4A0749F99226C6E3FC40D718DFEB1642 E7EE93B71DA9C9AB5D582916D3CB06E39C090819F5C0AC22DBD0D1A4B53DC6C7 41699148AD14D04A9C5780AF8FF5A4708FA85CF96B9C7EF5891F9D457FE38D52 F228C4777711BA9259C4C72DFE15BAA4FB98B9F91EFA3EC516A434F694F9E7FD 83B41F4DD8C66B5D749E338E2BE561AD5F9003DDCACB9E417273CD6A59F8E357 D3EC9ED60B861191B506E2767D3FCF7A6A9BEAC5CC7D24FA66D1F74D5792C767 DE18FAD782693F10AFEDDCFF00684B3DD2F1B7F7A576FE86BA287E28C6B28940 957924EE0198FA60E3AD5280F98F517B640B92540AA927D953EFCAA3F035E6D7 1F12EDAE3E575BEC31F98F9F907F0AB116BD657D6924E7CD8E18F1BF7CBC03C7 7C73FF00D7A141771F3A47633DEE9A0E05C824F4F91BFC2B327D434F24813124 7A29AE3C6ABA69019D9C2B60824E3839C76359773AD5A4329425D8E3AA1E0D3E 55DC9F68725036FBF6E79ED918CD5EB99BF7206486CE71EB8A8EE7FE437F9D47 7DF7BF1158BF7A48BD933652257456618054B93ED8ACABF2DB8B6DC671CE4127 22B61BFE3C1BE9FD16B2AEBEEC7FEE0FE42B3A3F11AD45A18CC7249A7AF2307F 0A6B751F4A55FE95DCCE41C149600734E6420678A20FF3F9D3FB1A96DDCA203B BD2943118C55C1F707FBBFE1550F7A14AE26AC2C928663B7819E013922AED86A 46D52742BBD644DBB49C0CE41CFE9FCAB3CF5FC281D69D908B293C849D84E320 E3AE71EDDEAE7DBE4F23CA912365C9C9F2D4360FBD5087EF0FA1A926FBCDFEED 435AD8A48FFFD9FFDB0043000604040705070B06060B0E0A080A0E110E0E0E0E 1116131313131316110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C 0C0C0C0C0C0C0C0C0C0C0C0CFFDB004301070909130C1322131322140E0E0E14 140E0E0E0E14110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C 0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CFFC00011080070012C030111000211 01031101FFC4001C000003000301010100000000000000000002030401050600 0708FFC400371000010302040403060602030101000000010203110021041231 41055161F01322710607328191A11442B1C1E1F123D15262721508FFC4001901 01010101010100000000000000000000000102030405FFC4002E110002010204 05040203010003000000000001110221123141F0035161719181A1B1C113D122 E1F132044252FFDA000C03010002110311003F00F9F86C4D713DC3128E62A818 96EA490606FE949064373B5590106F6AA40C22A494308AB20208A1030DF2A00C 23ED500C0DCD240D4B40EBAD492C0E436371350B0302072BD42C0C461C9BC5A9 2582A4A523CA91F38AC3450D96D03E2146543FC4426C916ACC1A93DE311A0AD6 1249E2F386DA515286201692AB9AD250403C2E95487BC28A03C5AA92012CD018 2C9AB2012D74A000B7CAAA00F8551800B356400A6BBEFBE940016AAC814A6E28 400B7500B5B515648216D524409537DFF756441AE6E142410474FE2B9C81A949 AB24181368EFBFA5244061315240592AC920208AB22024A68106111490184D40 3128E5A55908725A9EFEDEB524A90C4B73490312CCD2440D4B5D2A49607259D8 524A390D5490352D5428C4B1D292030CF4A00C334928418A483C181A50192C09 A4830589A483058DEAC804B344012D6940016B6AA012CF7FEE8002D54100164D 54059679D082D4D5A280596778A4814B66804ADAA4904A91D280496CD01C1F09 57E15DCA973FC277DB69F88274B8B09064116AE4F308EB5012A122E3623BEFEF 5B90310915640CC89AC88339456881045A80309DEA9034A06B410342050B0352 8A147211B540390C8A1207A59DAA146A591428E4B1A540390C500C0CD00D4B55 00C4B342861AAA020CD019F0680F1679501EF068500B340096692002CD500166 A8014D45002A66A003C21BD0B00167E94902D6CD00A53228414A628204AD8A10 9DC639559104EA6A0D087CE308D2B181494B84B84D81990459530204F39131D2 B1510E9F85A5C461D01C042B9132796F040E40ED45628BC7FB42C6073214A975 31E5BFA9BC1D01924031A6B6AB207F09E32CF1246668F986A9DC7FB1D45A80B0 E21B89CC9898991AF29E7D3A74A49078154063A1A201A527BEFEB54C8D483428 E403DF7F2A147A05641421134905084D4929421B34050845428E437540E4B535 021896AA881819A1434B1410186680F7814063C1A03058E5490096A8500B3548 0A9AA0014D50005AA0165AA1402D1A48014D4D00B5327BEFFBA016A6A92516A6 A2A4812B6B9D59213B8D1D280954D5E92483E2985C7B9835E74A08741B13CE66 F104CFC3793C8DABA6672475AEF1A759C18756A0AC438632884E4E60E6936173 3A131D6B83BE596F2E67498EFCBF673788C5FE2DDCCF7C6A30674DEE62D363B5 ED706F5A56DE608C1530B2A65460137D09E646863E8622456DDCCA0DAC4AC139 36BDF9C738266D6E663D6B387DCB275FC1FDB24942518C4E52123CC2F3C8C46E 24D8C88D0EB51D81D5B0E25C405A7450047F554839349035026DDF7FDD241421 3A5241421076A85828422280A1B474A14A50D54903D0D5040F4B7403908AA072 1BA01C96EA0181BA142F08ED4067C2A14C16B7A0305B3400168D0005BAA002DD 000A6E80053468002D50025BAA5014D540016B634085A99E940296CD40256C1A 02775AE9429396B90A03E34FA028A70E984A946491A98B5A22240B49B734C915 E6A6A8BE6978DA2D4B4C9F335D8A4A306E1651E7091F1CF4B8036127633A9988 AEF4BC4A729D3A1CDAC2E3DC98BE0AA4F59FA8BFD77D62FCEBAC12404B99960C 1E46F6FDE637BE9F235A6AC6539199A17004A4F7F3F5D3ADEB1A1A366B78A59C 88D0A803B7FD81CC45B9820C45B913C53B9B6767ECB21D852B10F1757A144CC7 5833CA2D68AAAA9BED11AF437E5D6DA199C5048E64C0FAD6B1120A19521C1282 143A19FD3AD132414B69A4882B69BA494ADA6AA622C15B6C549241436C524B05 08622B441C8662A907218A4907A18A4947259A4818962A4943187A033E050182 C50A09628012C55928070F420270F428270F4001C3ED4001C3D0A02B0D49002B 0F402D4C0A014A668512A68D0825C6A8095D6E85255B326843E1185783A67C60 563CC4000C5A24922F3304055845ED5C2BA62D1676415F5BA138A4BCEA732949 2D854588CE7FF626D6102045E1455627A50D2E73D725DBC99A94EEFEA2480A49 0AD4888E9A9888D6C6DAC7A8ADE2811616A6D1868514C66E7F4F96F3798D46E7 4AA757A19C82461C2FFCB2473EF6BE8444EDBD1D716106D10529683932371D40 0481B413E606045CC5CD79AACCECB21897F10909C52014C88247DC1F59320085 48ACA8560D82EBEE2823C559298FDC89BE823E70466809BDDEFC91A363ECFF00 1B4F0F7CB8F1510919523F2ED26046C0E9AFC44F3D4F9308FAA601C4629B4BCD 1CC858907F837F5B03CC0D2988D41B36189B0ACE23506D18E1A5426B388B058D 70C572A622415B7C355CAAE2240E4F0E55695465A189E1E7955C4481C9C011B5 5C4207230476149240E4607A524B035382E949018C1559078E06920C1C155902 D58402A9405618500B2C550016450025AA0014D500B2D4D2048259A4000E1E76 AA4901585342885E1CD0A21CC39A0275E1CD24A4AEE1E809D4C5EA483F3AE2D0 4B8521033286A4DCCC856602E4CC1178491A12A318A5C2BF8F886468F37802DB 85D599B5E34120F3D49FF91378888A55C4950B5F2554C1879684DBE220FCC723 1FC8BFA4D454B7D3EC8D8A7C36B32A92A4E80E93A9275F8A46E0C574A6576D5E A65C313877D2014A41322207D0C017990349BEA0D6EAA60CA66E70D86530CB80 FF00C8405489FDE20C9035DABC95549BF37476A558B9DC5B896BC040194EA201 F969B01783689160270B3DC9B24752A4654A46A9161CAE45CFAEF30AD79D6D2F D9964CFE1CA541248009B1E477272C9E82FF00488ADD0D331523EBDEC1952B02 86162435290BD9573222D0A411045F6324106B0CDA476D83C28544566049D170 FC193008AC3A4988DE61F86A4ED4C231142B86E5DAB4A932EA03FF009E056D23 38836F000EB560CC88E2CE35C2F0EAC4380A88F8523551FCA906E06636954241 D4D4A9E15215CF9C8F7A5C41DC52528C0F858507CE48529517E61A4849131973 ACA92465B8039E37D3E56F9EA68FA5706C5B5C530E9C43408917045C1F9EC624 1E5F3AED47F25F3BE5C88DC7D1B1184E95BC24933F843CAAE11201C34981AD58 1202F0475AB02499785A1645AB0645C8AA44C4A9840198911CE7EB077F9546E3 739F452F72691392D4C022B40C02D1305407AD465801E770ED9292A98E427EE2 D5041239C470C9E7F4AD40810E71BC2A354B87E43F750FD290209D7ED4615BBF 86B3F41FB9A07491BFEDBB1A378751F5581FA24F77ADE133104389F6D929B258 83FF00657A7248EE2B380ADC0947B50FBE82B6DA6C011AAF9D84024137064898 DC09A60CDDDAA54BB6574BE5A338EF1CCD7627DB45A159436831AEB13D0C991A 72268B87269D7048FF00B62E28795B483D4CFEC3793F69B497E31F91133BED53 AA32DA42475837FA08F4ADAA3CEBA2CED0A1E90B37796455B3E1A9C5BCC105D5 109249035279C1F844C9D4A8CCD8835C9D29E5996600E218C71602AC851911A6 C223698D373CEC2AF0E84BA8AEAF4E8421F41195320A8DF36BE92362474FDEBB 46D1CB10031516336EBD9FD85F9D5C2664730F16CA5689CD7023A6D79D88DBE7 59A94DB4374B8EE75ADABC564294929F87303A904E6B916BE68D0100815F25D9 DBD0F62BA24E258C0D795A2080415106C2D26C39845A06DCA6BBF0686F3FEFBC 98A994E156A73FCA23C558950493A9BD85CC738D74074AE35D9C68B29D7BEF23 54B9B80A4A90A07285A53E6CAAB83CE4482390820C4419135D29AFF4468EDB83 7B7CC6030C867F0494AA4ABCAE9020C465490B50882092A3249D0002BA53C375 6BADD42BAE4B28B6B7CC555A5A69CFBDDCCF4CA32EA6F305EF559685F067348D 1DDBF30828333B19B7235D9707ADE6D6494689AD5CDE67D0E2F889E9DEF2DBD1 CE9DA2FCCEAF07EFB7878C8977005195372959549E6524B709B82609262065D6 B75A51649D5D5BA54FA2ABC5BB9C2957BB697449BF78F2653EFC825D486D9478 635516D52779092F909E5F12B4BC8B572A68A9ACA9C56972E33BB50AD2A145F2 EA75A9D33FFB47A7EB72527DFABEFA32B38760AA627CDCB64F8920CDE0A95CBD 7BFE39E4ADDDA717E49DE5A516CAE726D2FF00EBDA23C76FD223C7FBE5E28CA1 4B4B2C2109B92A4AA7D4C2C0035D06D7E75B5C25AF79D574EDAF7D4E6EBE5EE7 38BFFF0049E39871494A18722F6418E596EB06D1337F8AC480056302A5EAFC47 B2593BDE7AD8D5DF4F3FB39AE21EFF00B8B714C5A5EC5B6C96D1395190F941DE 12B4AB3880642C4902645AB8D5C2972F4C92FDED9D29704EDFBDBC5F8A16D064 3892928F212A1952529214A5A8C5E4A4ACA49104580369E1A8E71AB99B26B4D2 F3DFA588EA7BC89DAF7C1C7B028719C1E312D051951484E69B150426328CC412 A3A1CCACB04DE2E161CA7B4DBC171C9DDFB17EFF0078B368FC2F185B4B5124F8 CB10A054A94A54D809B6A11E18284A0A4100E9EAA69A559F9EAFBCE59464736F 6BA6E5EA77787F7A98E295801973C32524C1041172550A1A5C6905307AD74FC5 4E978B37ACE73A1316F4FBB7A9CF3BEFDD587C62B0CEB8C85917B1CA0F9549F3 056E08D4E80C9AE55514A7BB4E9BD0EA9EFDBF650E7BF55E39F561D82C858001 002BD65B51514127431986A473A8E8A6A79C68F93FD7B84F0F5D6FF71131A65E 2C6C18F78DC49D5029CBBEA07AE8205B4D2235ABF852BE7F1E3762629DF48373 8DF6C78829B6D9782197102EAB499B8B0100EE207CB5A35EDE4B4D30FBE9A13B 3ED02F10541EC6210122208B1DAC082144EB3004EB96D39747471928FEB29E6F D4E8A3A4EBB7EBCFA236785F6838660D82EBCEA71274084B707A1CC72C810241 54DC913AD6A9A3BDB9E7B59DEC66ABE56EBF5EEF4D0D262BDBAC3A147F0F8551 498F8940759195248F369E6B8B1D629F8A75DFD5C638EFF5D8971DEF089404E1 F06D223756656D1B91EB689FACED70FB7CFCF632EA9E7ECBE17F86895ED7635C CC486939A4CE533E8224A6FCB28D44ED53F1A5CDF82E39E4A3B823DAE7C81E3A 1A504C809295686F9A525254506602966418820088F86B7D77F591B5C4DFFB3E D06AB11ED36394D9612425049301201BDE263314D84024C7CE4970D2DFDAEDD8 C55C56F7BE66A1CC7E20AA4933F2AE9851CDD4C4E231CFBA65C5151E7FB93BF3 BD454A44C6C57E21475240BE83E9D226C795CC1DE341544CBC4AF6BC7F7A766D AD5818804F1275032AA0813B09B881EB060C1B5B693597495314BE2CF98109B0 8D0DFA98204FCBD6F24D8DFB153DDCF9F3EDA8792C0055C08244EB009BE902E3 913163E34FDD1E868931C52E88336B09D7999222472316D0575A2DEBBD4C5573 569F21B891DFEFDDABD270C835A8932606FF00EBD35DFF00A409361C19E01C09 CA54B3046F1FF90048B4DE63416D6B87154AE9F275E1E67525CCC149447C0ACC 7AEA124ECA9091AD801FF235F26237B7FE9EC27C5F0D4160B42C82E79A2E5404 65BD87C476926C75303B53C5873AC34B926474586A1B5A416933B8245B5FF95E 32C680E80099CA279B7AE7D3B046558901B4A949CC9802742A82AE62C9249D2E 76816170DF974E521BB6EE29CE2219710966EB107CC2C05CE86CAF5D80EB6ED4 28DEA71A9CBEC4871D8A6DD2F7C6837CA6D3E9104099316277E75E9A6A4D464F 99C9D24EFF00B40FCAF2984988E937FA8D37DE6E6DD153BC8E698DE11C61DC4B 89C3392A528EBBE97D75B0BE969AAD60528A94972B8F619ACC1B512A49B48D7E 97D4F4A98991A4558CF780A7387BBC35A69252F01996A12B4C1CC036BD521463 369989234D7AAA9C438FE5AEABB7F8737C3BCF238C5391A77DFA6950E80E6524 8999FF007440CCA966675EE4EA7A6F4C88D496E0788AB0A85232A14A52924288 F3089B257A806466008CD001116AD62B442BC5F551A2E8F511BD0C3BC5F13887 438F2CAC83A289239902FA1D480609BEBAE1A4C246E07B7B8F461DEC1B6A086F 1000720798C19052A3E64E8010921246A0C99CA4D7A9A839F4BC4C99FE7FDFCE AB459369C13DA37B863C871265B0A49293B81A81339491F9C0B6A395630F2CCA 9C6775AF5E68FA8A7DEF70A2E15A30EB4226C3366311B9013106445EDD4DAE37 FA2B89E9ADF3DDF68D863BDE3F0A7925FC3908CE0A92D955C098CAA580608990 0DCA47513D954A393E5C8E712FA05C67DA94B2E34784345E69C080995E651370 A8700852BCB9C0299CA649E765C5A1FBEF512A7A1B26BDA7612C6575294BC559 812B9202490A4E506208F349BDB4B9CBA74AEDD35B6FD8B4D7BD06A3DE970D2F 2D2F30975D208584F940209055A009810084100106F15E76E32BFA65BE9075C6 A2EBECD6637DE070577129C3B0BCA54209FCB3A485102028D858C45D5066B74D 695AEFAFECC557CBC152FDB5E11C2F16861F21D712B09090014954C645AE0820 28807298898BE98754D96FFA37FF0039FB67E6FBD06E238D611E4AD2C3680870 C83F114C48294AC40833E6F2EC348AEB4F0DC5DE27CF2F697F2CC55C54F483DF FD5C392DAD585492D240849202C8332E0209320C109520F220D47C37CFCF2F23 F2AD51ABE218B6F10E153484B6951B253783D0924FA5CF2D75DD347339D5C49C AC03589C3270CB6DC482E920A5579DC29260E5826E64154A62D26B9E6EDBDFD1 A4D250D5F7607138EC32B021B6F0E4620124B93208E5161683A0B6E4C5150D3B E5EFB5F647C45195F9EEE688E39A6D24BA933B46E37806E7EF15AA945CE74D52 0E1F1D84C4B812A5169B36CE4587522CA8EBCE0810457273139BE597B9D16704 C7896109F28CC05A4903ED78FACF313514BFF4D1C13EF16919942C493EA4C4FD A349F4137E34AC4F763B37046C3C028294479883F7BDBA88D3AD76A97B1CD336 8DE0986DE2E84A72E5333CF5902605A446BAC0AF23E236A3AE9E2E7554A932EF 0461C52979A54E1CC00DA74B41DEF6807448D28BFF0021F8CE7363F1AF5148E1 0AC1024AE01041565361FB1B5F94C5CD69F1B1F75A73FDA32B8784DB60DAF154 DA36899DB43B4804A81933AD89D2DE6E25709EDF9E9D0F4219C43105BBA25654 444E97948B0983241117CC46D0463854CE768F36DB2D4C5E2D6B69A561A53E54 83008988B22DB1020CEA04A89B56E949B9E76E7EA4A9C585270929578EA010D8 832620D8D889B12B5C6FCAE2BA3AAF6CDEEFEA6553E1126231ADA14A26024DA4 264F44F98A4002C40198006EA51B1ECA99EFBD0C5552449F882E24854E43F98C 0B6961727537063E75D223B986E4D5BAA2825208B1B7627EA2BD28E00F8B94D8 FD3B9FE3D6B5991980F1EFBB548248C0E18B77FEF5A86A413754EDDF7FC89AB2 45E0C85E6BAB41DE950B987E28160075FEA3FBACC141CFC8401FD5FBB7E96049 90E9373A8FE4D20A0A9D854EF3D9EBF7EB7AA8C98CD1A69DF7A7ED401170C0EF BF41FA51091EC635DC311E11015AC8171AE875020C100DF7B811874CE65983C9 C59D081AFF007F33D37A3A4265387E2D89C29CD85714DC8B94288E86608D89B7 23D68AC560A716F85871A5282C4C199B9B18E52237FE1245EC67F1197FF67583 A69311B1DC5C7D6B1BEE6DB016FD81FBF7781FB5122496F08C5A1B5294ECAA10 600CBAF3CCE664A488919539B6491355119D67B1AFB85D5BA567F04904242940 9CE728092906D9B31CA72C136115AA5B5D8E55FB9D37B4BED41E0E006D04A940 C191FF005CA6089524A4850524E533122A55598A69938BE03C55FC63CEE75C29 6737CCCC848D0850926C0C2404EE0F29676A8737C615885BB88C3AF330C5B526 44E61B829927F28BC99D5558BD37C9BCFAE9F065BD37BD4C61BDB774BA43C121 A098CA6D7131E71988279E5CAA8FCB723B2AD99C045C638EAB103C4608089800 44C6E1633483717032CDA4D575B7BF42D34A4681CC438E4C4FEA23527EA46A04 743511D412E4FC2BB7AC7DB308A04C1C7620299217B9B03CE2240D606A769DA3 59C3A6F6E46EAAAC4B804A6429561F73E93603690266E6C2DD38862937F862A1 733E7F2FCB4CC499B1D6552390BD782A8F17FE8F4A2B929428A0494A42A0899B 81D448B584FA8B8AE39FAB346BB8C625404A9645A536B1BC580D6649CC46A092 662BD3C1A0E55D457832060D9892E2C16EDAFC44DC822D9601BDE05AB9713FE9 F257F5EDCD33AD192E6EC59F8203C6712A50014ACB2644030151CC4A424DCC80 7F2D631E597A737BF9D0DAA73DD89C61025B6DA024BCACB201931BDEF03340B6 C48D2B78A5F6CB7D4CC7ACFD078F071C825B496DA4AE622EA277006B03498091 A12492670FF83BDDB5E0B529E8BE4D46291F87016A6C36136198851F922E2353 F01833E622BD94DF71EFFA3CF55B7242FE2038B9BA8982A2797549F8408035E4 00AEAA930DFF0064AE149329D0F2FDB7EFAD7439B1648D3BFF0071F3E77AD644 7732DC1B77FEBE94610CCC00D2DDFDBA564D1ECB97BFDAA661A300807CBDF4EF 5FA5681EB18169EFF4FD7E95004DE5208F9F7DFE95183C624F4EFBD3EF407865 2663BFE799B4FD680F40DBBFECF3A4830902F3A0EFFAFEA290122223F5EEDFBD 08653E6D3BF5E9FBD52A19703BFB9AC665918C788B584B60A89FCA04CEFA0BFF 005E94C24C5019583F1483DEE751B4560D88598DFBEF9FCEB68C86DB8240D49B 5FF5D8D4803F0F8A4B6AC856A0DAA332474F875041BF434D033E89C54B3C4700 CB871ADE546542507CA418920928494E41991073264660A295A547857E4891F3 EC7A4A54A41F8B36C2072B0B58DF95A418DFA52CDB0B0F8F730F9D9696A01765 2763A2B59B92A48B400201BE946A5196AE3F83F12C2B18953BC4992FB650B100 E5398A4A50E4DC4A150A8502954414915D78709DD625AAFF0021FB99A93EDBBA 369C038D70F4BCD37C4590FB60841CF9B2A533F100DA92B2A49249CCA5795391 20E60A1C2BA6D6B3F60D4976295C2197FC1673B888853AD1CB9412ACDE185025 6DE55048F10DD254177BD79E9C4F3B73B4FDE66953CCE5F1587694B96D4950EA 0883A11111AF2915E94D96111F1871A594A504E74920DB63A4286A041D79DAD5 AE0A6BD4B58BC204BBE44933A41FD4C7CED7E95AADC5C537378D1F0CA412A010 729DC8B98803283980B4D809B49BF85DFD4ECAC3702EB890E176C82A2A99BC91 9520EC5200336904C824D73AD27117711D39B7DF791AA5F823C7BB877E021509 07E2D4481062D306D044E9F33E8E1AAA9FD77F639D4D328E0043E5B6CAF2A50E 6627A180642B6CC131BDCC7319E3284DE6DAF83A70AFE8CDCA02DC4B8E1F8722 12124E9256ECF20038ABC88196337964791DA17577E7092F8DDCF4F3EC947BC9 46102538538A04292D85E552A7F31F0C9034848066440102D9A6B15373879C4A 56B2537EF3B82A514CE7137EAFF468B178D755865B8F2944A5C42419FF00AAC9 B5C00728206804457B29A14DB93F95AFA9E6AAA71EA6A1DCAE20AC8CA06F3BED 3A1240D86BA409AF5D36B6E0E0C98E293050944260CDCC99B09D858D93B5B537 3D60C62DF32649BF974EFBF9D68C1807289AB9833AC9EFFAEF7A4818CAD2917B C7DBE558772AB0D500E19B8B5FF4EBFCDB4B4E660B9985202520FE6BFF0033F6 FAD54E4A2492A31A7A6FEBDF4AD190C4C4224F7CF4FF00751F528E431944AB53 B77BF3F4F98C3A8B8452D929260FCB7E7D2D11FC0AD2A8CB401D6DCBBFBDBED5 A2B16557D4F76AA64C9E9AF7CF4EEDC84329565B0EFBF5A854CC9BDCCDFBFD28 0A38763F13C3DD4E2F0AB534EA2E95A090A1B4A48820C123ACC686B54D585CAF FA57529353D9A69FAA235CF2054EA9D59709254A3249DCEE4EE64F726B99500B 824E6EFBDBFA92282956533F4EFF009FF55732849733CDA4EA47A6FF00217F4A 4199373C578FAB8932C30B4009C3B610923E23B92B544A8024940339130806D2 6D75CA54D9619731FCAA75466F54A2DCA5BD5952F7F1E9F7CF5358FE20BA7C45 92A52B73A9BF3DFE7F5AE491A052B2A2533E9FAFDFE92634AD3500265E692E05 BA952E08F2DAE2648CCA0B03A4A1639A48915AA4CB61B3FE3594AC120DA47D3D 3BDF6E555F2F06E9B0D7C19806E75F417E90239F59BD651A63B11C45B7579B16 9538E401992ACB60001600C981755CAB5249B9D50925EFE4E6EC2F88F01C5B20 871B50294E6222E01800A9362334C8983126201231C3E3D3564D35312B26D670 F583AD7C36B77F535983CCDB9045F973FCC2DAC1FA11A9AF456E51C69B33A76C 971B85D96627E9372445A6481A1B5CDABE6350F9A3D6853E43490D5C8493ADC1 9B5E6646DA5AD0373AA6F7B7C419AAC6B314E16CF86A1972ED03EA7EBEB1D2D5 EAA54DCE6CDA7B3B861885AD02F010011A824E4498B48057313B1D8570E3550B BCE794252FE3DCEFC153E9F2CE85D3F8A462316C83909094A605CE67F2A40F44 82992A324100900578621AA5E776FA2B4BF7F4BA93D5129BE76EF7B09E24EA70 7816F0CC5DEF3499B0CB25C2906C429C73CB339D0DA4A920C0AE9C2FE5536FFE 6D1EB95FB2F46C95BC34A4B3BCFDBF2C8B0D88F1B0CE97165252012AB0FCC988 8007973149204C998335DAA5155B5B45F96EC7157573598C7DC701656A00A3CC 06A3EE12954EEACC666C4E95DE8A62F9CDBA9C6A66AB14D2929F32003BC5BE70 7EC40CB7B5ABD54B38BB136429F4FBFD37DFFBAD988162FD2FDF7D6A9030A220 0DF5A850A4022F6EFBD2A0918839046E6F1DFE959CC640A5D54C77DF41FDD828 68495284881D477D75ACB2A2890998237EFD3EB5CCD9852C1541DBB0379FEEF7 AB06641811722069DF5FB5500369595786989EF9DFAF21CAB4DC11486AC19254 09F87F4D8F49FDEFA56557EE5C209C2AC242A05F4FF6797CB9686AE324589D4D AC1CA906B7264F10A36DBAFD0FED540510209227BFD7E5D6D7850159FE2FCBDE DFDFAD532C10951B73EFD6A9202DE4EA2A1A3C85A907303D3FDFDBBD6806B6B8 1702FDEFA1A8542FCCA327E9FA777FBD50C7364A5492A0729E7F7D6DF31D2F59 611584B71E7824697FACC75822F633CAB8DD6F43A58F3895362E22751D378378 9DA4697E60C570C5ABFCA081215689D768FA7EB1CCD6D5BB07710B752752A98E 43F7ADA4CCB67FFFD9 } Proportional = True Stretch = True end object Button1: TButton AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 400 Height = 29 Top = 513 Width = 64 Anchors = [akRight, akBottom] Caption = 'Close' TabOrder = 0 OnClick = Button1Click end object WrittenByString: TLabel AnchorSideLeft.Control = WrittenByLabel AnchorSideLeft.Side = asrBottom AnchorSideTop.Side = asrCenter AnchorSideBottom.Control = WrittenByLabel AnchorSideBottom.Side = asrBottom Left = 101 Height = 19 Top = 523 Width = 94 Anchors = [akLeft, akBottom] BorderSpacing.Left = 4 Caption = 'unihedron.com' Font.Color = clBlue ParentColor = False ParentFont = False OnClick = WrittenByStringClick OnMouseEnter = WrittenByStringMouseEnter OnMouseLeave = WrittenByStringMouseLeave end object Memo1: TMemo AnchorSideLeft.Control = Owner AnchorSideTop.Control = Image1 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = VersionLabel Left = 0 Height = 220 Top = 180 Width = 464 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Top = 4 BorderSpacing.Bottom = 4 BorderStyle = bsNone Lines.Strings = ( 'Use this program with connected Sky Quality Meter products to:' '- Read version information.' '- Request readings.' '- Read and set calibration data.' '- Read and set all other parameters.' '- Install new firmware.' '- Setup and retrieve data from datalogging meters.' '- Continuously log data from connected meters.' '' 'License: GPL' ) ScrollBars = ssAutoBoth TabOrder = 1 end object WrittenByLabel: TLabel AnchorSideTop.Side = asrCenter AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 28 Height = 19 Top = 523 Width = 69 Alignment = taRightJustify Anchors = [akBottom] Caption = 'Written by:' ParentColor = False end object VersionLabel: TLabel AnchorSideRight.Control = WrittenByLabel AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = FpointLabel Left = 46 Height = 19 Top = 404 Width = 51 Alignment = taRightJustify Anchors = [akRight, akBottom] BorderSpacing.Bottom = 5 Caption = 'Version:' ParentColor = False end object FileVersionText: TLabel AnchorSideLeft.Control = VersionLabel AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = VersionLabel AnchorSideTop.Side = asrCenter AnchorSideBottom.Side = asrCenter Left = 101 Height = 19 Top = 404 Width = 140 Alignment = taRightJustify BorderSpacing.Left = 4 Caption = 'XXXX.XXXX.XXXX.XXXX' ParentColor = False end object FpointLabel: TLabel AnchorSideRight.Control = WrittenByLabel AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = FcommaLabel Left = 61 Height = 19 Top = 428 Width = 36 Anchors = [akRight, akBottom] Caption = 'Point:' ParentColor = False end object FpointString: TLabel AnchorSideLeft.Control = FpointLabel AnchorSideLeft.Side = asrBottom AnchorSideTop.Side = asrCenter AnchorSideBottom.Control = FpointLabel AnchorSideBottom.Side = asrBottom Left = 101 Height = 19 Top = 428 Width = 56 Anchors = [akLeft, akBottom] BorderSpacing.Left = 4 Caption = 'resolving' ParentColor = False end object FcommaLabel: TLabel AnchorSideRight.Control = WrittenByLabel AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = UTCLabel Left = 46 Height = 19 Top = 447 Width = 51 Anchors = [akRight, akBottom] Caption = 'Comma:' ParentColor = False end object FCommaString: TLabel AnchorSideLeft.Control = FcommaLabel AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = FcommaLabel AnchorSideTop.Side = asrCenter AnchorSideBottom.Side = asrCenter Left = 101 Height = 19 Top = 447 Width = 56 BorderSpacing.Left = 4 Caption = 'resolving' ParentColor = False end object UTCLabel: TLabel AnchorSideRight.Control = LocalLabel AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = LocalLabel Left = 37 Height = 19 Top = 466 Width = 60 Anchors = [akRight, akBottom] Caption = 'UTC time:' ParentColor = False end object LocalLabel: TLabel AnchorSideRight.Control = WrittenByString AnchorSideBottom.Control = TZDiffLabel Left = 31 Height = 19 Top = 485 Width = 66 Anchors = [akRight, akBottom] Caption = 'Local time:' ParentColor = False end object UTCText: TLabel AnchorSideLeft.Control = UTCLabel AnchorSideLeft.Side = asrBottom AnchorSideBottom.Control = UTCLabel AnchorSideBottom.Side = asrBottom Left = 101 Height = 19 Top = 466 Width = 56 Anchors = [akLeft, akBottom] BorderSpacing.Left = 4 Caption = 'resolving' ParentColor = False end object LocalText: TLabel AnchorSideLeft.Control = LocalLabel AnchorSideLeft.Side = asrBottom AnchorSideBottom.Control = LocalLabel AnchorSideBottom.Side = asrBottom Left = 101 Height = 19 Top = 485 Width = 56 Anchors = [akLeft, akBottom] BorderSpacing.Left = 4 Caption = 'resolving' ParentColor = False end object TZDiffLabel: TLabel AnchorSideRight.Control = WrittenByLabel AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = WrittenByString Left = 12 Height = 19 Top = 504 Width = 85 Anchors = [akRight, akBottom] Caption = 'TZ difference:' ParentColor = False end object TZDiffText: TLabel AnchorSideLeft.Control = TZDiffLabel AnchorSideLeft.Side = asrBottom AnchorSideBottom.Control = TZDiffLabel AnchorSideBottom.Side = asrBottom Left = 101 Height = 19 Top = 504 Width = 56 Anchors = [akLeft, akBottom] BorderSpacing.Left = 4 Caption = 'resolving' ParentColor = False end object Timer1: TTimer OnTimer = Timer1Timer Left = 282 Top = 459 end end �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./prereading.wav������������������������������������������������������������������������������������0000644�0001750�0001750�00000530674�14576573022�014026� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������RIFF�WAVEfmt �����D��X���data ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� � ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� � ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������:1#)(/37C;=G???><9;61,'  & ߁ٻӚrƄ}M€ħǫ[ո0KIQ#.).37:='???><,:6I2J-'l!V F[:kBόʷÝc:UB8"ۓl% "(-.3H7:N= ???>&=t:62-/(!aW s Ԁs�slϴԌWq AB!(-26k:=>?? ?]=:]7&3E.(" >$8NOdC[òu,T@+A T!'6-:26%:<>??0?=;73.E).#odi0Lnл˵Lj#¥Mraʄάeپpy  &,1169<>??N?=R;847/)#E[�`b& S¿ 9QDƲ*?U :S h&1,S159p<>??i?=;_8i4/T*_$�]�C`яiň+- XɜͭF؃-6' t%+0l5592<W>?@{?>;84-0*$x ,5uWź ƒ9#݊Om F%$+m058;+>???�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������� �������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� � ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ����������������������������������������������������������������������������������������������������������������� ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� � ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� � ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ��� ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ���������������������������������������� � ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� �������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ � ������������������������������������������������������������������������������� �������� �����������������������������������������������������������������������A,#),/37D;=K???><9A61, '  & ߁پӕ&iƍvPyĮǤ`нպ0JEL#+).37:=.???><0:6O2E-'i!Z EY;k@ υʽã_7X?5%ېp # |"(/.3K7:M=???>"=w:62-(("\Y r Ԃ w�noϱԎTq <H!(-26g:=>???R=:U7*3E.("  E&5OOeAYøo+YF+< K!'-->26!:<>??'?=;73.B)6#jhk2Ipз˺DŽ&£KtbʇΦmٵ|s  ',1/69<>??K?=N; 84;/)#GX �b^S :PDƷ,BX =P g&.,Y159l<>??g?=;\8l4/S*d$\�>eыk Ŋ++SɣͥL؂*; & ~%+0n5590<Y>???>;8400*$z {02vUż z/)Ҽ݃Yr A%)+k058;0>?�@?"����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ������������������������������������������������������������������������������������������������������������������������������� ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ � �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� � ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� � ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� � ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������������������������������������������������������������������������������������������������������������������������������������������� � � ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@-#)*/37@;=E???><9@61,' � !߄ٽӕ&iƎtT{ĭǦ_нչ1NLT#.).37:=,???><1:6P2E-'i![ H[;i@ χʼáa:W>8"ۑp) ~"(..3H7:O= ???>#=t:72-'("[\ p ԃrroϰԎUt >D!(-26j:=>???R=:T7.3A.("  C$5PLj<Xôs)R!?)< L!'/-=26!:<>??,?=;73.A)6#nik2Isж˺Dž$¤Kr]ʃΪiٹuv  &,1-69<>??O?=O;848/)#IY�e^!V¼ 6REƶ*BV 8S g&0,T159t<y>??f?=;e8g4/V*`$^�Bdьk Ŋ&3LɧͣN-:* z%+0p5391<Z>?@{?>;8400*$x v5.rYŷ }6#݌Wp E%&+k058;3>?@?"������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������� ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������� ��������������� ��������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� �������������������������������������������������������������������������������������������������������������������������������������������� �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� � ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ �������������������������������������������������������������������������������������������������������������������������������� ����������������������������������������������������������������������������� � ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������������������������������������������������������������������������������������������������������������������������� ����������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ���������������������������������������������������������������������������� � ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� � ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@,#)*/3�8@;=E???><9A61, '  "߄ٻӘ"nƉxO#uİǥ_оշ1KDJ#/).37:=&???><.:6P2@-'b!Y G[9m@ τʾàa3[=7#ۑp& "(0.3J7:N= ???>=z:62-.(!bU r ԂrooϯԑXu AB!(-26l:=>???U=:U7,3B.("� < 8NRaF_ðu+S?(: L!',-?26!:<>??3?= ;73.E)1#rll/Mqз˹LJ"¥Iw{eʇΨkٶ{s   &,1/69<>??H?=M; 83</)#C^�e\X»6PGƷ)CT 5X l&,,Y159n<>??f?=;^8k4/W*`$a�Giщm ň,+WɞͩM}/7 " %+0m5691<W>??|?>;84)0*$z .2rRż$v/)ҽ݆Vr  I%!+p058;+>???������������������������������������������������������������������������������������������������������������������������������ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������LIST0���INFOINAM���Pre-reading sound�IART ���Unihedron�id3 F���ID3�@���<���  <&OTPE1��� ���UnihedronTIT2������Pre-reading sound��������������������������������������������������������������������./citylights_round_icon.jpg�������������������������������������������������������������������������0000644�0001750�0001750�00000024751�14576573022�016265� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������JFIF����� mExif��II*���� �����z���� ���������������������������(�������1� ������2�������i���������NIKON CORPORATION�NIKON D70s��������������GIMP 2.6.11�2012:02:11 13:11:59��������������'�����������0210������ ������������ ������������������� ������� �����������0100����������d�������d��������������������#��� ���2005:07:06 22:20:20�������������$��� ���������������������4������<��(�����������D������! ������H������H�������JFIF�������C�    $.' ",#(7),01444'9=82<.342�C  2!!22222222222222222222222222222222222222222222222222��d�d"������������ ����}�!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz�������� ���w�!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz� ��?�( HZ[(גp+m+Vgq-<5�x'N �{74VhJ?! ~эv^_mÈޭZ e ,J? v/�h[h37Eo>3j:tg)?fJ]2q~PӚ|=4Sa5tUs.4ۉ!NF+мQѮ#<L, &?yiGѴU]?QleAe5jQ@q|um PVk[X,qf'W+.<yiƽ+o|IIj<#d5*T�; 8B(U\ҥX:xϥ<D})\NU IJbT &JHwf+s>CzQ;>x�z隋6>c+h pHq_+k0,jTפ| izBn-yq䯥4a(ٞES$| pn^ 'MCn٥,AI,EsV0A2v4b#Z⣘dާ'r;|Ք)"Z/RJmւ[{Tڕec|ٽ 㱈m.__,n;b@zס5pm&x c5qzՏ}Y#W^VgnMtr^'9OUW&O=&;Ed2zw?>zPUϑ&6,(k;YW;Ӟz__)8`Y]8uau,t("U>ꠟV#۰M0j"@}*u>~մ׳).#ȧ֢tsTmn}+m;wks^yR1hS/k /,o|Iha%G!WH3 Cu:�*+OHZ=U(΂#.іO|i e5|i&<2uj*G6.es[N7Y#@Ǯ8ȭzܧBZ&WҨ>u윯=J/De"7<Fm}K⟈i7 Z#~=+~Tw:s "9̌ JY47WK1O9^e3cR ?5p݈-َd޺ C$"jFIStɯ;ӖV''ùU/%Ž%2=3K͔8&qkS6:WCƧym$ҰPῃ!*>(3wϥ\QIC*:}a-K$2VR*O:佰\ ן{aIݎkhnx."Y"qVs,$%|Ib;=:ԁrk{\G^鲼`Hl4?`q،Tٚ)h0wAUTm,&MMO+es6`f`CΣxv<ҹ 3|>"I~b'$J6<6ЉN'_S)T1T~5]UU#_�^f*Š(((r\z0e]x[B$ϥZ=b(x#QWFZvVd1me_Q@(�(�(�http://ns.adobe.com/xap/1.0/�<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?> <x:xmpmeta xmlns:x='adobe:ns:meta/'> <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'> <rdf:Description xmlns:crs='http://ns.adobe.com/camera-raw-settings/1.0/'> <crs:Version>3.1</crs:Version> <crs:RawFileName>DSC_0020.NEF</crs:RawFileName> <crs:WhiteBalance>As Shot</crs:WhiteBalance> <crs:Temperature>4400</crs:Temperature> <crs:Tint>-4</crs:Tint> <crs:AutoExposure>True</crs:AutoExposure> <crs:Exposure>+1.55</crs:Exposure> <crs:AutoShadows>True</crs:AutoShadows> <crs:Shadows>0</crs:Shadows> <crs:AutoBrightness>True</crs:AutoBrightness> <crs:Brightness>100</crs:Brightness> <crs:AutoContrast>True</crs:AutoContrast> <crs:Contrast>+30</crs:Contrast> <crs:Saturation>0</crs:Saturation> <crs:Sharpness>25</crs:Sharpness> <crs:LuminanceSmoothing>0</crs:LuminanceSmoothing> <crs:ColorNoiseReduction>25</crs:ColorNoiseReduction> <crs:ChromaticAberrationR>0</crs:ChromaticAberrationR> <crs:ChromaticAberrationB>0</crs:ChromaticAberrationB> <crs:VignetteAmount>0</crs:VignetteAmount> <crs:ShadowTint>0</crs:ShadowTint> <crs:RedHue>0</crs:RedHue> <crs:RedSaturation>0</crs:RedSaturation> <crs:GreenHue>0</crs:GreenHue> <crs:GreenSaturation>0</crs:GreenSaturation> <crs:BlueHue>0</crs:BlueHue> <crs:BlueSaturation>0</crs:BlueSaturation> <crs:ToneCurveName>Medium Contrast</crs:ToneCurveName> <crs:CameraProfile>ACR 2.4</crs:CameraProfile> <crs:HasSettings>True</crs:HasSettings> <crs:HasCrop>False</crs:HasCrop> <crs:ToneCurve> <rdf:Bag> <rdf:li>0, 0</rdf:li> <rdf:li>32, 22</rdf:li> <rdf:li>64, 56</rdf:li> <rdf:li>128, 128</rdf:li> <rdf:li>192, 196</rdf:li> <rdf:li>255, 255</rdf:li> </rdf:Bag> </crs:ToneCurve> </rdf:Description> <rdf:Description xmlns:exif='http://ns.adobe.com/exif/1.0/'> <exif:ExposureTime>2/1</exif:ExposureTime> <exif:ShutterSpeedValue>-1/1</exif:ShutterSpeedValue> <exif:FNumber>35/10</exif:FNumber> <exif:ApertureValue>361471/100000</exif:ApertureValue> <exif:DateTimeOriginal>2005-07-06T22:20:20-04:00</exif:DateTimeOriginal> <exif:ExposureBiasValue>0/1</exif:ExposureBiasValue> <exif:MaxApertureValue>36/10</exif:MaxApertureValue> <exif:MeteringMode>5</exif:MeteringMode> <exif:FocalLength>18/1</exif:FocalLength> <exif:FocalLengthIn35mmFilm>27</exif:FocalLengthIn35mmFilm> <exif:PixelXDimension>3008</exif:PixelXDimension> <exif:PixelYDimension>2000</exif:PixelYDimension> <exif:ColorSpace>65535</exif:ColorSpace> <exif:NativeDigest>36864,40960,40961,37121,37122,40962,40963,37510,40964,36867,36868,33434,33437,34850,34852,34855,34856,37377,37378,37379,37380,37381,37382,37383,37384,37385,37386,37396,41483,41484,41486,41487,41488,41492,41493,41495,41728,41729,41730,41985,41986,41987,41988,41989,41990,41991,41992,41993,41994,41995,41996,42016,0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,22,23,24,25,26,27,28,30;F0EA45BB385AA6818023354458EC5024</exif:NativeDigest> <exif:ISOSpeedRatings> <rdf:Seq> <rdf:li>640</rdf:li> </rdf:Seq> </exif:ISOSpeedRatings> <exif:Flash rdf:parseType='Resource'> </exif:Flash> </rdf:Description> <rdf:Description xmlns:aux='http://ns.adobe.com/exif/1.0/aux/'> <aux:Lens>18.0-70.0 mm f/3.5-4.5</aux:Lens> </rdf:Description> <rdf:Description xmlns:tiff='http://ns.adobe.com/tiff/1.0/'> <tiff:Make>NIKON CORPORATION</tiff:Make> <tiff:Model>NIKON D70s</tiff:Model> <tiff:ImageWidth>3008</tiff:ImageWidth> <tiff:ImageLength>2000</tiff:ImageLength> <tiff:PhotometricInterpretation>2</tiff:PhotometricInterpretation> <tiff:XResolution>2400000/10000</tiff:XResolution> <tiff:YResolution>2400000/10000</tiff:YResolution> <tiff:ResolutionUnit>2</tiff:ResolutionUnit> <tiff:Orientation>1</tiff:Orientation> <tiff:NativeDigest>256,257,258,259,262,274,277,284,530,531,282,283,296,301,318,319,529,532,306,270,271,272,305,315,33432;A79E433B96AED93FC6EB498198DCD99E</tiff:NativeDigest> <tiff:BitsPerSample> <rdf:Seq> <rdf:li>8</rdf:li> <rdf:li>8</rdf:li> <rdf:li>8</rdf:li> </rdf:Seq> </tiff:BitsPerSample> </rdf:Description> <rdf:Description xmlns:xmp='http://ns.adobe.com/xap/1.0/'> <xmp:CreatorTool>Ver.1.00</xmp:CreatorTool> <xmp:ModifyDate>2012-02-10T17:04:26-05:00</xmp:ModifyDate> <xmp:CreateDate>2005-07-06T22:20:20-04:00</xmp:CreateDate> <xmp:MetadataDate>2012-02-10T17:04:26-05:00</xmp:MetadataDate> </rdf:Description> <rdf:Description xmlns:dc='http://purl.org/dc/elements/1.1/'> <dc:format>image/jpeg</dc:format> </rdf:Description> <rdf:Description xmlns:photoshop='http://ns.adobe.com/photoshop/1.0/'> <photoshop:ColorMode>3</photoshop:ColorMode> <photoshop:ICCProfile>Adobe RGB (1998)</photoshop:ICCProfile> </rdf:Description> <rdf:Description xmlns:xmpMM='http://ns.adobe.com/xap/1.0/mm/'> <xmpMM:InstanceID>xmp.iid:D0C54E323354E111885FECED0D41C93E</xmpMM:InstanceID> <xmpMM:DocumentID rdf:resource='xmp.did:CFC54E323354E111885FECED0D41C93E' /> <xmpMM:OriginalDocumentID>xmp.did:CFC54E323354E111885FECED0D41C93E</xmpMM:OriginalDocumentID> <xmpMM:History> <rdf:Seq> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom rdf:parseType='Resource'> </xmpMM:DerivedFrom> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end='r'?> �C�      �C  ""   ��d�d������������������6�������!1AQ"aq2#BrR�������������(����������!1AQaq� ��?�0�@;>ċeiJ6ŝp�troQYV;i* +?p fՀb׆l[J-Rn=. %{$llc.�@]tҰΨx_""bنuLi$&,7 F6lRu1]#t,T4I7kpz@ V`YǴ 4;_X:NAlegiʍRq`.p+Dsek2ȝp:˂I? `�5-O\*uCH�Q/J'q\U8O:LqIK`%"r9,b%v2= :I�bo5ިMQJ]17)=<3O2uBG0uAOη$ÓO6J`Sp&ʊP9a9,HBE%f KK%%.zD% Zt%HYO{D."*ILefJ)柤tyZ"5 JGC{R~yC12a$藉mB%֊[KZ*fB]NKT9;aj1&&%U�TLTdZR B^ 2X VGleEKu2u q;(>ƜwuAKrOIQCirv6 緶 kE^%%xZԏ-J`rRB T[VsUO'E!c_04ILJA#]P4IĕkT[˥hR@ }/ak<eɌ^T̩ZԡS&zA]3�ɞQ+="s܌;47m*NoCƧePU3G _9b|~TfBx(_z^u>^zO}\5V(%J$b".GS IsP֐ e)4TW!#)sO]>neR2s [mH $(Vx5FW)lrH*ϥ>ωei$2-z6Pm^OK >IO1fN*t]jAR?j 0U̮�M-IROj/|%4ʩowxw:v#]ɇIG)m!,:[NlAMţDƜ<L޿ȟBUf+]H&@t Iщռn82s +@xG2|'Os58D'j“2EA� $mb-Kb68nwϷ{ҘP;DդY,N>�-A%D+pd@\GXߟΣ(' ˩F �qY65&#o�9˭!OI��/Pn( ۈקk*R㮵.Kn.27r#ڟo -K0_-*xa��׬t<["+AAOQ*R{]tc9c9nͩP ['O׿=t6n-hF:ӥ_J3[6N9mO�zrIRu\(s~�S:C;abB^^b2tJuA wŌ\sϓyZhmʐ;Ӡ-sHఠ*Z* T@blȺ]B=MY$ %ӗ.kU2'�Ϳ33ODNZLfalc-?SKno"BTQ hSwIdiSάjF� &Y$.tFW��&gZTK)P?C3lQkkϛ~R|Df*|L-m.=n/>ghMï̞Pͨ[6m*hG8ٷGSU8I1u ٛUڈrRW1brj*&hVóV:sޑ��@ì6q!C1`̓+'�JVᦏ)_D̎ J˶�@� ?�����������������������./datlocalcorrect.lfm�������������������������������������������������������������������������������0000644�0001750�0001750�00000047631�14576573021�015027� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object datlocalcorrectform: Tdatlocalcorrectform Left = 2102 Height = 533 Top = 114 Width = 1138 Caption = '.dat local time reconstruction' ClientHeight = 533 ClientWidth = 1138 Constraints.MinWidth = 395 OnCreate = FormCreate OnDestroy = FormDestroy Position = poScreenCenter LCLVersion = '2.2.6.0' object InGroupBox: TGroupBox AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 0 Height = 96 Top = 0 Width = 817 Caption = 'Input:' ClientHeight = 76 ClientWidth = 815 TabOrder = 0 object FileSelectButton: TButton AnchorSideLeft.Control = InGroupBox AnchorSideTop.Control = InGroupBox Left = 5 Height = 28 Hint = 'Select one .dat file to convert.' Top = 0 Width = 100 BorderSpacing.Left = 5 Caption = 'Select file' OnClick = FileSelectButtonClick ParentShowHint = False ShowHint = True TabOrder = 0 end object DirectorySelectButton: TButton AnchorSideLeft.Control = FileSelectButton AnchorSideTop.Control = FileSelectButton AnchorSideTop.Side = asrBottom Left = 5 Height = 28 Hint = 'Select one directory of .dat files to convert' Top = 33 Width = 100 BorderSpacing.Top = 5 Caption = 'Select dir.' OnClick = DirectorySelectButtonClick ParentShowHint = False ShowHint = True TabOrder = 1 end object InputFileDisplay: TEdit AnchorSideLeft.Control = FileSelectButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = FileSelectButton AnchorSideTop.Side = asrCenter AnchorSideRight.Control = InGroupBox AnchorSideRight.Side = asrBottom Left = 109 Height = 28 Top = 0 Width = 702 Anchors = [akTop, akLeft, akRight] AutoSize = False BorderSpacing.Left = 4 BorderSpacing.Right = 4 ReadOnly = True TabOrder = 2 end object InputDirectoryDisplay: TEdit AnchorSideLeft.Control = DirectorySelectButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = DirectorySelectButton AnchorSideTop.Side = asrCenter AnchorSideRight.Control = InGroupBox AnchorSideRight.Side = asrBottom Left = 109 Height = 28 Top = 33 Width = 702 Anchors = [akTop, akLeft, akRight] AutoSize = False BorderSpacing.Left = 4 BorderSpacing.Right = 4 ReadOnly = True TabOrder = 3 end end object OutGroupBox: TGroupBox AnchorSideLeft.Control = Owner AnchorSideTop.Control = SettingsGroupBox AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = StatusBar1 Left = 0 Height = 182 Top = 330 Width = 816 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Top = 5 Caption = 'Output:' ClientHeight = 162 ClientWidth = 814 TabOrder = 1 object OutputFile: TLabeledEdit AnchorSideLeft.Control = CorrectButton AnchorSideTop.Control = CorrectButton AnchorSideTop.Side = asrBottom AnchorSideRight.Control = OutGroupBox AnchorSideRight.Side = asrBottom Left = 109 Height = 36 Top = 44 Width = 701 Anchors = [akTop, akLeft, akRight] BorderSpacing.Top = 8 BorderSpacing.Right = 4 EditLabel.Height = 19 EditLabel.Width = 60 EditLabel.Caption = 'Filename:' EditLabel.ParentColor = False LabelPosition = lpLeft ReadOnly = True TabOrder = 0 end object CorrectButton: TBitBtn AnchorSideTop.Control = OutGroupBox Left = 109 Height = 36 Hint = 'Correct .dat file for time difference' Top = 0 Width = 224 Caption = 'Reconstruct .dat local times' Glyph.Data = { 36100000424D3610000000000000360000002800000020000000200000000100 2000000000000010000064000000640000000000000000000000FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0080AA8004C8DAC809FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00085E08211B6F1AE0539451E83D8B 3D2AFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00002F0006025C01D22B742AFF387C37FF086A 06D6002F0006FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00015700AB146813FF367536FF054805FF0B6B 09FF016900B1FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00005500790B620AFE3C813CFF337A33FF014F01FF065A 06FF0A7407FE02690081FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF0000500048045C03F73C853CFF3D883DFF328032FF025B02FF005C 00FF0B6C0AFF077704F90368004FFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF000054001F005500E8368336FF479247FF3A8B3AFF2F852FFF056705FF0067 00FF006A00FF107C0FFF037800ED006A0022FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00002F 0006004F00CF2B772BFF519C51FF459645FF388F38FF2D8A2DFF087208FF0071 00FF007500FF007700FF138411FF047A00D8004D0007FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00004D 00A91D6A1DFF5BA45BFF4F9F4FFF439943FF369436FF2B8F2BFF097C09FF007B 00FF007F00FF008200FF048504FF12870FFF037800B5FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00004C0078125B 12FE60A660FF59A659FF4CA14CFF409C40FF349834FF2A952AFF078307FF0085 00FF008A00FF008D00FF008F00FF099209FF0F870BFE02770085FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00004C0048055105F75FA2 5FFF63AD63FF57A857FF4AA34AFF3E9F3EFF319C31FF2B9C2BFF058A05FF008E 00FF009400FF009800FF009A00FF009A00FF109B0FFF0A8506FA03750051FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000054001F004D00E8579857FF6DB5 6DFF61AD61FF55A955FF48A448FF3CA23CFF2F9F2FFF2CA12CFF009000FF0097 00FF009D00FF00A200FF00A500FF00A500FF00A400FF189F16FF058501EF0073 0023FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00002F0006004D00CF468646FF78BC78FF6BB4 6BFF5EAE5EFF52A952FF46A546FF39A339FF2DA22DFF2AA62AFF009700FF009F 00FF00A600FF00AC00FF00B000FF00B100FF00AF00FF00AA00FF1A9D17FF0584 00DC004D0007FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00004D00A9317331FF84C184FF75BA75FF69B3 69FF5CAD5CFF4FA94FFF43A643FF37A437FF2BA32BFF29A829FF009D00FF00A5 00FF00AE00FF00B500FF00BA00FF00BD00FF00BA00FF00B400FF05AC05FF1896 14FF048500BAFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00004B00791D621DFE87C187FF7FC17FFF73B873FF67B2 67FF5AAC5AFF4DA94DFF41A641FF34A434FF28A528FF28AB28FF00A100FF00AB 00FF00B400FF00BD00FF00C400FF00C800FF00C500FF00BD00FF00B200FF0CA8 0CFF13900EFE04820089FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00004C00480A540AF786BA86FF89C789FF7DBF7DFF70B770FF64B0 64FF58AC58FF4BA74BFF3FA63FFF32A432FF25A525FF28AC28FF00A300FF00AE 00FF00B800FF00C200FF00CC00FF00D300FF00D000FF00C400FF00B700FF00AA 00FF14A013FF0D8D08FA03810054FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF0000400002004D00E384B184FF99D299FF8DC88DFF83C183FF77B977FF6AB3 6AFF60B060FF57AC57FF4DAC4DFF42AC42FF36AB36FF39B339FF04A604FF05B1 05FF06BB06FF06C506FF07D007FF08DA08FF09D609FF0AC90AFF0BBC0BFF0CAF 0CFF0DA10DFF2FA735FF1BA02AECFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF0000550002004D00D3004D00FF004D00FF004D00FF004E00FF005500FF005C 00FF006300FF006A00FF027001FF037402FF037B02FF057E03FF068204FF0784 05FF098806FF098B06FF0A8C07FF0C8F08FF0D8F09FF0E900AFF10920BFF1191 0CFF12900DFF138F0DFF068D01DAFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF000066000300500011005000110050001100500011005000110050 0011005000110050001100500011005000110050001100500011005000110050 0011005000110050001100500011005000110050001100500011005000110050 0011005000110050001100660003FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 } OnClick = CorrectButtonClick ParentShowHint = False ShowHint = True TabOrder = 1 end object OutputDir: TLabeledEdit AnchorSideLeft.Control = OutputFile AnchorSideTop.Control = OutputFile AnchorSideTop.Side = asrBottom AnchorSideRight.Control = OutGroupBox AnchorSideRight.Side = asrBottom Left = 109 Height = 36 Top = 80 Width = 701 Anchors = [akTop, akLeft, akRight] BorderSpacing.Right = 4 EditLabel.Height = 19 EditLabel.Width = 62 EditLabel.Caption = 'Directory:' EditLabel.ParentColor = False LabelPosition = lpLeft ReadOnly = True TabOrder = 2 end end object StatusBar1: TStatusBar Left = 0 Height = 21 Top = 512 Width = 1138 Panels = < item Width = 50 end> SimplePanel = False end object SettingsGroupBox: TGroupBox AnchorSideLeft.Control = Owner AnchorSideTop.Control = InGroupBox AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 0 Height = 224 Top = 101 Width = 818 BorderSpacing.Top = 5 Caption = 'Local timezone:' ClientHeight = 204 ClientWidth = 816 TabOrder = 3 object StandardGroupBox: TGroupBox AnchorSideLeft.Control = TZMethodRadioGroup AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = TZMethodRadioGroup Left = 157 Height = 104 Top = 0 Width = 400 BorderSpacing.Left = 5 Caption = 'Standard:' ClientHeight = 84 ClientWidth = 398 TabOrder = 0 object TZLocationBox: TComboBox AnchorSideLeft.Control = Label11 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = TZRegionBox AnchorSideTop.Side = asrBottom AnchorSideRight.Control = TZRegionBox AnchorSideRight.Side = asrBottom AnchorSideBottom.Side = asrBottom Left = 100 Height = 35 Top = 33 Width = 282 BorderSpacing.Top = 2 ItemHeight = 0 OnChange = TZLocationBoxChange Style = csDropDownList TabOrder = 0 end object TZRegionBox: TComboBox AnchorSideLeft.Control = Label6 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SettingsGroupBox AnchorSideRight.Side = asrBottom Left = 100 Height = 31 Top = 0 Width = 282 ItemHeight = 0 Items.Strings = ( 'africa' 'asia' 'europe' 'northamerica' 'antarctica' 'australasia' 'etcetera' 'pacificnew' 'southamerica' ) OnChange = TZRegionBoxChange Style = csDropDownList TabOrder = 1 end object Label6: TLabel AnchorSideLeft.Control = SettingsGroupBox AnchorSideTop.Control = TZRegionBox AnchorSideTop.Side = asrCenter AnchorSideRight.Control = TZRegionBox Left = 0 Height = 20 Top = 5 Width = 100 Alignment = taRightJustify AutoSize = False Caption = 'Region:' ParentColor = False end object Label11: TLabel AnchorSideLeft.Control = Label6 AnchorSideTop.Control = TZLocationBox AnchorSideTop.Side = asrCenter AnchorSideRight.Control = TZLocationBox Left = 0 Height = 20 Top = 40 Width = 100 Alignment = taRightJustify AutoSize = False Caption = 'Timezone:' ParentColor = False end end object CustomGroupBox: TGroupBox AnchorSideLeft.Control = StandardGroupBox AnchorSideTop.Control = StandardGroupBox AnchorSideTop.Side = asrBottom Left = 157 Height = 80 Top = 109 Width = 400 BorderSpacing.Top = 5 Caption = 'Custom:' ClientHeight = 60 ClientWidth = 398 TabOrder = 1 object CustomOffsetEdit: TFloatSpinEdit Left = 100 Height = 36 Top = 8 Width = 72 Increment = 0.5 MaxValue = 14 MinValue = -14 TabOrder = 0 end object CustomOffsetLabel: TLabel Left = 56 Height = 19 Top = 16 Width = 42 Caption = 'Offset:' ParentColor = False end end object TZMethodRadioGroup: TRadioGroup AnchorSideLeft.Control = SettingsGroupBox AnchorSideTop.Control = SettingsGroupBox Left = 5 Height = 80 Top = 0 Width = 147 AutoFill = True BorderSpacing.Left = 5 Caption = 'Method:' ChildSizing.LeftRightSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 60 ClientWidth = 145 ItemIndex = 0 Items.Strings = ( 'Standard' 'Custom' ) OnClick = TZMethodRadioGroupClick TabOrder = 2 end end object Memo1: TMemo AnchorSideLeft.Control = InGroupBox AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = InGroupBox AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = StatusBar1 Left = 822 Height = 503 Top = 9 Width = 316 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 5 BorderSpacing.Top = 9 Constraints.MinWidth = 200 Lines.Strings = ( 'This tool is used when the datalogger timezone was not set properly. The local timestamp is recomputed for each record based on the timezone selections. One .dat file or a directory of .dat files can be corrected.' '' 'The "Standard" timezone usage uses a selected timezone region and timzone as the basis for computing the local time stamp from the existing UTC timestamp.' '' 'The "Custom" timezone usage allows the user to enter a custom time offset in hours as the basis for computing the local time stamp from the existing UTC timestamp.' '' 'If a single inpute file was selected, then the corrected output file will be stored in the same directory with "_LocalCorr" appened to the filename.' '' 'If a directory of input files was selected, then the corrected files will be stored in a subdirectory called LocadCorr, and each file will have "_LocalCorr" appened to its filename.' ) ReadOnly = True ScrollBars = ssAutoVertical TabOrder = 4 end object OpenDialog1: TOpenDialog Left = 624 Top = 128 end object SelectDirectoryDialog1: TSelectDirectoryDialog Left = 624 Top = 216 end end �������������������������������������������������������������������������������������������������������./ftpsend.pas���������������������������������������������������������������������������������������0000644�0001750�0001750�00000157667�14576573021�013345� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{==============================================================================| | Project : Ararat Synapse | 004.000.000 | |==============================================================================| | Content: FTP client | |==============================================================================| | Copyright (c)1999-2011, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c) 1999-2010. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | | Petr Esner <petr.esner@atlas.cz> | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {: @abstract(FTP client protocol) Used RFC: RFC-959, RFC-2228, RFC-2428 } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} {$TYPEINFO ON}// Borland changed defualt Visibility from Public to Published // and it requires RTTI to be generated $M+ {$M+} {$IFDEF UNICODE} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$ENDIF} unit ftpsend; interface uses SysUtils, Classes, blcksock, synautil, synaip, synsock; const cFtpProtocol = '21'; cFtpDataProtocol = '20'; {:Terminating value for TLogonActions} FTP_OK = 255; {:Terminating value for TLogonActions} FTP_ERR = 254; type {:Array for holding definition of logon sequence.} TLogonActions = array [0..17] of byte; {:Procedural type for OnStatus event. Sender is calling @link(TFTPSend) object. Value is FTP command or reply to this comand. (if it is reply, Response is @True).} TFTPStatus = procedure(Sender: TObject; Response: Boolean; const Value: string) of object; {: @abstract(Object for holding file information) parsed from directory listing of FTP server.} TFTPListRec = class(TObject) private FFileName: String; FDirectory: Boolean; FReadable: Boolean; FFileSize: int64; FFileTime: TDateTime; FOriginalLine: string; FMask: string; FPermission: String; public {: You can assign another TFTPListRec to this object.} procedure Assign(Value: TFTPListRec); virtual; {:name of file} property FileName: string read FFileName write FFileName; {:if name is subdirectory not file.} property Directory: Boolean read FDirectory write FDirectory; {:if you have rights to read} property Readable: Boolean read FReadable write FReadable; {:size of file in bytes} property FileSize: int64 read FFileSize write FFileSize; {:date and time of file. Local server timezone is used. Any timezone conversions was not done!} property FileTime: TDateTime read FFileTime write FFileTime; {:original unparsed line} property OriginalLine: string read FOriginalLine write FOriginalLine; {:mask what was used for parsing} property Mask: string read FMask write FMask; {:permission string (depending on used mask!)} property Permission: string read FPermission write FPermission; end; {:@abstract(This is TList of TFTPListRec objects.) This object is used for holding lististing of all files information in listed directory on FTP server.} TFTPList = class(TObject) protected FList: TList; FLines: TStringList; FMasks: TStringList; FUnparsedLines: TStringList; Monthnames: string; BlockSize: string; DirFlagValue: string; FileName: string; VMSFileName: string; Day: string; Month: string; ThreeMonth: string; YearTime: string; Year: string; Hours: string; HoursModif: Ansistring; Minutes: string; Seconds: string; Size: Ansistring; Permissions: Ansistring; DirFlag: string; function GetListItem(Index: integer): TFTPListRec; virtual; function ParseEPLF(Value: string): Boolean; virtual; procedure ClearStore; virtual; function ParseByMask(Value, NextValue, Mask: ansistring): Integer; virtual; function CheckValues: Boolean; virtual; procedure FillRecord(const Value: TFTPListRec); virtual; public {:Constructor. You not need create this object, it is created by TFTPSend class as their property.} constructor Create; destructor Destroy; override; {:Clear list.} procedure Clear; virtual; {:count of holded @link(TFTPListRec) objects} function Count: integer; virtual; {:Assigns one list to another} procedure Assign(Value: TFTPList); virtual; {:try to parse raw directory listing in @link(lines) to list of @link(TFTPListRec).} procedure ParseLines; virtual; {:By this property you have access to list of @link(TFTPListRec). This is for compatibility only. Please, use @link(Items) instead.} property List: TList read FList; {:By this property you have access to list of @link(TFTPListRec).} property Items[Index: Integer]: TFTPListRec read GetListItem; default; {:Set of lines with RAW directory listing for @link(parseLines)} property Lines: TStringList read FLines; {:Set of masks for directory listing parser. It is predefined by default, however you can modify it as you need. (for example, you can add your own definition mask.) Mask is same as mask used in TotalCommander.} property Masks: TStringList read FMasks; {:After @link(ParseLines) it holding lines what was not sucessfully parsed.} property UnparsedLines: TStringList read FUnparsedLines; end; {:@abstract(Implementation of FTP protocol.) Note: Are you missing properties for setting Username and Password? Look to parent @link(TSynaClient) object! (Username and Password have default values for "anonymous" FTP login) Are you missing properties for specify server address and port? Look to parent @link(TSynaClient) too!} TFTPSend = class(TSynaClient) protected FOnStatus: TFTPStatus; FSock: TTCPBlockSocket; FDSock: TTCPBlockSocket; FResultCode: Integer; FResultString: string; FFullResult: TStringList; FAccount: string; FFWHost: string; FFWPort: string; FFWUsername: string; FFWPassword: string; FFWMode: integer; FDataStream: TMemoryStream; FDataIP: string; FDataPort: string; FDirectFile: Boolean; FDirectFileName: string; FCanResume: Boolean; FPassiveMode: Boolean; FForceDefaultPort: Boolean; FForceOldPort: Boolean; FFtpList: TFTPList; FBinaryMode: Boolean; FAutoTLS: Boolean; FIsTLS: Boolean; FIsDataTLS: Boolean; FTLSonData: Boolean; FFullSSL: Boolean; function Auth(Mode: integer): Boolean; virtual; function Connect: Boolean; virtual; function InternalStor(const Command: string; RestoreAt: int64): Boolean; virtual; function DataSocket: Boolean; virtual; function AcceptDataSocket: Boolean; virtual; procedure DoStatus(Response: Boolean; const Value: string); virtual; public {:Custom definition of login sequence. You can use this when you set @link(FWMode) to value -1.} CustomLogon: TLogonActions; constructor Create; destructor Destroy; override; {:Waits and read FTP server response. You need this only in special cases!} function ReadResult: Integer; virtual; {:Parse remote side information of data channel from value string (returned by PASV command). This function you need only in special cases!} procedure ParseRemote(Value: string); virtual; {:Parse remote side information of data channel from value string (returned by EPSV command). This function you need only in special cases!} procedure ParseRemoteEPSV(Value: string); virtual; {:Send Value as FTP command to FTP server. Returned result code is result of this function. This command is good for sending site specific command, or non-standard commands.} function FTPCommand(const Value: string): integer; virtual; {:Connect and logon to FTP server. If you specify any FireWall, connect to firewall and throw them connect to FTP server. Login sequence depending on @link(FWMode).} function Login: Boolean; virtual; {:Logoff and disconnect from FTP server.} function Logout: Boolean; virtual; {:Break current transmission of data. (You can call this method from Sock.OnStatus event, or from another thread.)} procedure Abort; virtual; {:Break current transmission of data. It is same as Abort, but it send abort telnet commands prior ABOR FTP command. Some servers need it. (You can call this method from Sock.OnStatus event, or from another thread.)} procedure TelnetAbort; virtual; {:Download directory listing of Directory on FTP server. If Directory is empty string, download listing of current working directory. If NameList is @true, download only names of files in directory. (internally use NLST command instead LIST command) If NameList is @false, returned list is also parsed to @link(FTPList) property.} function List(Directory: string; NameList: Boolean): Boolean; virtual; {:Read data from FileName on FTP server. If Restore is @true and server supports resume dowloads, download is resumed. (received is only rest of file)} function RetrieveFile(const FileName: string; Restore: Boolean): Boolean; virtual; {:Send data to FileName on FTP server. If Restore is @true and server supports resume upload, upload is resumed. (send only rest of file) In this case if remote file is same length as local file, nothing will be done. If remote file is larger then local, resume is disabled and file is transfered from begin!} function StoreFile(const FileName: string; Restore: Boolean): Boolean; virtual; {:Send data to FTP server and assing unique name for this file.} function StoreUniqueFile: Boolean; virtual; {:Append data to FileName on FTP server.} function AppendFile(const FileName: string): Boolean; virtual; {:Rename on FTP server file with OldName to NewName.} function RenameFile(const OldName, NewName: string): Boolean; virtual; {:Delete file FileName on FTP server.} function DeleteFile(const FileName: string): Boolean; virtual; {:Return size of Filename file on FTP server. If command failed (i.e. not implemented), return -1.} function FileSize(const FileName: string): int64; virtual; {:Send NOOP command to FTP server for preserve of disconnect by inactivity timeout.} function NoOp: Boolean; virtual; {:Change currect working directory to Directory on FTP server.} function ChangeWorkingDir(const Directory: string): Boolean; virtual; {:walk to upper directory on FTP server.} function ChangeToParentDir: Boolean; virtual; {:walk to root directory on FTP server. (May not work with all servers properly!)} function ChangeToRootDir: Boolean; virtual; {:Delete Directory on FTP server.} function DeleteDir(const Directory: string): Boolean; virtual; {:Create Directory on FTP server.} function CreateDir(const Directory: string): Boolean; virtual; {:Return current working directory on FTP server.} function GetCurrentDir: String; virtual; {:Establish data channel to FTP server and retrieve data. This function you need only in special cases, i.e. when you need to implement some special unsupported FTP command!} function DataRead(const DestStream: TStream): Boolean; virtual; {:Establish data channel to FTP server and send data. This function you need only in special cases, i.e. when you need to implement some special unsupported FTP command.} function DataWrite(const SourceStream: TStream): Boolean; virtual; published {:After FTP command contains result number of this operation.} property ResultCode: Integer read FResultCode; {:After FTP command contains main line of result.} property ResultString: string read FResultString; {:After any FTP command it contains all lines of FTP server reply.} property FullResult: TStringList read FFullResult; {:Account information used in some cases inside login sequence.} property Account: string read FAccount Write FAccount; {:Address of firewall. If empty string (default), firewall not used.} property FWHost: string read FFWHost Write FFWHost; {:port of firewall. standard value is same port as ftp server used. (21)} property FWPort: string read FFWPort Write FFWPort; {:Username for login to firewall. (if needed)} property FWUsername: string read FFWUsername Write FFWUsername; {:password for login to firewall. (if needed)} property FWPassword: string read FFWPassword Write FFWPassword; {:Type of Firewall. Used only if you set some firewall address. Supported predefined firewall login sequences are described by comments in source file where you can see pseudocode decribing each sequence.} property FWMode: integer read FFWMode Write FFWMode; {:Socket object used for TCP/IP operation on control channel. Good for seting OnStatus hook, etc.} property Sock: TTCPBlockSocket read FSock; {:Socket object used for TCP/IP operation on data channel. Good for seting OnStatus hook, etc.} property DSock: TTCPBlockSocket read FDSock; {:If you not use @link(DirectFile) mode, all data transfers is made to or from this stream.} property DataStream: TMemoryStream read FDataStream; {:After data connection is established, contains remote side IP of this connection.} property DataIP: string read FDataIP; {:After data connection is established, contains remote side port of this connection.} property DataPort: string read FDataPort; {:Mode of data handling by data connection. If @False, all data operations are made to or from @link(DataStream) TMemoryStream. If @true, data operations is made directly to file in your disk. (filename is specified by @link(DirectFileName) property.) Dafault is @False!} property DirectFile: Boolean read FDirectFile Write FDirectFile; {:Filename for direct disk data operations.} property DirectFileName: string read FDirectFileName Write FDirectFileName; {:Indicate after @link(Login) if remote server support resume downloads and uploads.} property CanResume: Boolean read FCanResume; {:If true (default value), all transfers is made by passive method. It is safer method for various firewalls.} property PassiveMode: Boolean read FPassiveMode Write FPassiveMode; {:Force to listen for dataconnection on standard port (20). Default is @false, dataconnections will be made to any non-standard port reported by PORT FTP command. This setting is not used, if you use passive mode.} property ForceDefaultPort: Boolean read FForceDefaultPort Write FForceDefaultPort; {:When is @true, then is disabled EPSV and EPRT support. However without this commands you cannot use IPv6! (Disabling of this commands is needed only when you are behind some crap firewall/NAT.} property ForceOldPort: Boolean read FForceOldPort Write FForceOldPort; {:You may set this hook for monitoring FTP commands and replies.} property OnStatus: TFTPStatus read FOnStatus write FOnStatus; {:After LIST command is here parsed list of files in given directory.} property FtpList: TFTPList read FFtpList; {:if @true (default), then data transfers is in binary mode. If this is set to @false, then ASCII mode is used.} property BinaryMode: Boolean read FBinaryMode Write FBinaryMode; {:if is true, then if server support upgrade to SSL/TLS mode, then use them.} property AutoTLS: Boolean read FAutoTLS Write FAutoTLS; {:if server listen on SSL/TLS port, then you set this to true.} property FullSSL: Boolean read FFullSSL Write FFullSSL; {:Signalise, if control channel is in SSL/TLS mode.} property IsTLS: Boolean read FIsTLS; {:Signalise, if data transfers is in SSL/TLS mode.} property IsDataTLS: Boolean read FIsDataTLS; {:If @true (default), then try to use SSL/TLS on data transfers too. If @false, then SSL/TLS is used only for control connection.} property TLSonData: Boolean read FTLSonData write FTLSonData; end; {:A very useful function, and example of use can be found in the TFtpSend object. Dowload specified file from FTP server to LocalFile.} function FtpGetFile(const IP, Port, FileName, LocalFile, User, Pass: string): Boolean; {:A very useful function, and example of use can be found in the TFtpSend object. Upload specified LocalFile to FTP server.} function FtpPutFile(const IP, Port, FileName, LocalFile, User, Pass: string): Boolean; {:A very useful function, and example of use can be found in the TFtpSend object. Initiate transfer of file between two FTP servers.} function FtpInterServerTransfer( const FromIP, FromPort, FromFile, FromUser, FromPass: string; const ToIP, ToPort, ToFile, ToUser, ToPass: string): Boolean; implementation constructor TFTPSend.Create; begin inherited Create; FFullResult := TStringList.Create; FDataStream := TMemoryStream.Create; FSock := TTCPBlockSocket.Create; FSock.Owner := self; FSock.ConvertLineEnd := True; FDSock := TTCPBlockSocket.Create; FDSock.Owner := self; FFtpList := TFTPList.Create; FTimeout := 300000; FTargetPort := cFtpProtocol; FUsername := 'anonymous'; FPassword := 'anonymous@' + FSock.LocalName; FDirectFile := False; FPassiveMode := True; FForceDefaultPort := False; FForceOldPort := false; FAccount := ''; FFWHost := ''; FFWPort := cFtpProtocol; FFWUsername := ''; FFWPassword := ''; FFWMode := 0; FBinaryMode := True; FAutoTLS := False; FFullSSL := False; FIsTLS := False; FIsDataTLS := False; FTLSonData := True; end; destructor TFTPSend.Destroy; begin FDSock.Free; FSock.Free; FFTPList.Free; FDataStream.Free; FFullResult.Free; inherited Destroy; end; procedure TFTPSend.DoStatus(Response: Boolean; const Value: string); begin if assigned(OnStatus) then OnStatus(Self, Response, Value); end; function TFTPSend.ReadResult: Integer; var s, c: AnsiString; begin FFullResult.Clear; c := ''; repeat s := FSock.RecvString(FTimeout); if c = '' then if length(s) > 3 then if s[4] in [' ', '-'] then c :=Copy(s, 1, 3); FResultString := s; FFullResult.Add(s); DoStatus(True, s); if FSock.LastError <> 0 then Break; until (c <> '') and (Pos(c + ' ', s) = 1); Result := StrToIntDef(c, 0); FResultCode := Result; end; function TFTPSend.FTPCommand(const Value: string): integer; begin FSock.Purge; FSock.SendString(Value + CRLF); DoStatus(False, Value); Result := ReadResult; end; // based on idea by Petr Esner <petr.esner@atlas.cz> function TFTPSend.Auth(Mode: integer): Boolean; const //if not USER <username> then // if not PASS <password> then // if not ACCT <account> then ERROR! //OK! Action0: TLogonActions = (0, FTP_OK, 3, 1, FTP_OK, 6, 2, FTP_OK, FTP_ERR, 0, 0, 0, 0, 0, 0, 0, 0, 0); //if not USER <FWusername> then // if not PASS <FWPassword> then ERROR! //if SITE <FTPServer> then ERROR! //if not USER <username> then // if not PASS <password> then // if not ACCT <account> then ERROR! //OK! Action1: TLogonActions = (3, 6, 3, 4, 6, FTP_ERR, 5, FTP_ERR, 9, 0, FTP_OK, 12, 1, FTP_OK, 15, 2, FTP_OK, FTP_ERR); //if not USER <FWusername> then // if not PASS <FWPassword> then ERROR! //if USER <UserName>'@'<FTPServer> then OK! //if not PASS <password> then // if not ACCT <account> then ERROR! //OK! Action2: TLogonActions = (3, 6, 3, 4, 6, FTP_ERR, 6, FTP_OK, 9, 1, FTP_OK, 12, 2, FTP_OK, FTP_ERR, 0, 0, 0); //if not USER <FWusername> then // if not PASS <FWPassword> then ERROR! //if not USER <username> then // if not PASS <password> then // if not ACCT <account> then ERROR! //OK! Action3: TLogonActions = (3, 6, 3, 4, 6, FTP_ERR, 0, FTP_OK, 9, 1, FTP_OK, 12, 2, FTP_OK, FTP_ERR, 0, 0, 0); //OPEN <FTPserver> //if not USER <username> then // if not PASS <password> then // if not ACCT <account> then ERROR! //OK! Action4: TLogonActions = (7, 3, 3, 0, FTP_OK, 6, 1, FTP_OK, 9, 2, FTP_OK, FTP_ERR, 0, 0, 0, 0, 0, 0); //if USER <UserName>'@'<FTPServer> then OK! //if not PASS <password> then // if not ACCT <account> then ERROR! //OK! Action5: TLogonActions = (6, FTP_OK, 3, 1, FTP_OK, 6, 2, FTP_OK, FTP_ERR, 0, 0, 0, 0, 0, 0, 0, 0, 0); //if not USER <FWUserName>@<FTPServer> then // if not PASS <FWPassword> then ERROR! //if not USER <username> then // if not PASS <password> then // if not ACCT <account> then ERROR! //OK! Action6: TLogonActions = (8, 6, 3, 4, 6, FTP_ERR, 0, FTP_OK, 9, 1, FTP_OK, 12, 2, FTP_OK, FTP_ERR, 0, 0, 0); //if USER <UserName>@<FTPServer> <FWUserName> then ERROR! //if not PASS <password> then // if not ACCT <account> then ERROR! //OK! Action7: TLogonActions = (9, FTP_ERR, 3, 1, FTP_OK, 6, 2, FTP_OK, FTP_ERR, 0, 0, 0, 0, 0, 0, 0, 0, 0); //if not USER <UserName>@<FWUserName>@<FTPServer> then // if not PASS <Password>@<FWPassword> then // if not ACCT <account> then ERROR! //OK! Action8: TLogonActions = (10, FTP_OK, 3, 11, FTP_OK, 6, 2, FTP_OK, FTP_ERR, 0, 0, 0, 0, 0, 0, 0, 0, 0); var FTPServer: string; LogonActions: TLogonActions; i: integer; s: string; x: integer; begin Result := False; if FFWHost = '' then Mode := 0; if (FTargetPort = cFtpProtocol) or (FTargetPort = '21') then FTPServer := FTargetHost else FTPServer := FTargetHost + ':' + FTargetPort; case Mode of -1: LogonActions := CustomLogon; 1: LogonActions := Action1; 2: LogonActions := Action2; 3: LogonActions := Action3; 4: LogonActions := Action4; 5: LogonActions := Action5; 6: LogonActions := Action6; 7: LogonActions := Action7; 8: LogonActions := Action8; else LogonActions := Action0; end; i := 0; repeat case LogonActions[i] of 0: s := 'USER ' + FUserName; 1: s := 'PASS ' + FPassword; 2: s := 'ACCT ' + FAccount; 3: s := 'USER ' + FFWUserName; 4: s := 'PASS ' + FFWPassword; 5: s := 'SITE ' + FTPServer; 6: s := 'USER ' + FUserName + '@' + FTPServer; 7: s := 'OPEN ' + FTPServer; 8: s := 'USER ' + FFWUserName + '@' + FTPServer; 9: s := 'USER ' + FUserName + '@' + FTPServer + ' ' + FFWUserName; 10: s := 'USER ' + FUserName + '@' + FFWUserName + '@' + FTPServer; 11: s := 'PASS ' + FPassword + '@' + FFWPassword; end; x := FTPCommand(s); x := x div 100; if (x <> 2) and (x <> 3) then Exit; i := LogonActions[i + x - 1]; case i of FTP_ERR: Exit; FTP_OK: begin Result := True; Exit; end; end; until False; end; function TFTPSend.Connect: Boolean; begin FSock.CloseSocket; FSock.Bind(FIPInterface, cAnyPort); if FSock.LastError = 0 then if FFWHost = '' then FSock.Connect(FTargetHost, FTargetPort) else FSock.Connect(FFWHost, FFWPort); if FSock.LastError = 0 then if FFullSSL then FSock.SSLDoConnect; Result := FSock.LastError = 0; end; function TFTPSend.Login: Boolean; var x: integer; begin Result := False; FCanResume := False; if not Connect then Exit; FIsTLS := FFullSSL; FIsDataTLS := False; repeat x := ReadResult div 100; until x <> 1; if x <> 2 then Exit; if FAutoTLS and not(FIsTLS) then if (FTPCommand('AUTH TLS') div 100) = 2 then begin FSock.SSLDoConnect; FIsTLS := FSock.LastError = 0; if not FIsTLS then begin Result := False; Exit; end; end; if not Auth(FFWMode) then Exit; if FIsTLS then begin FTPCommand('PBSZ 0'); if FTLSonData then FIsDataTLS := (FTPCommand('PROT P') div 100) = 2; if not FIsDataTLS then FTPCommand('PROT C'); end; FTPCommand('TYPE I'); FTPCommand('STRU F'); FTPCommand('MODE S'); if FTPCommand('REST 0') = 350 then if FTPCommand('REST 1') = 350 then begin FTPCommand('REST 0'); FCanResume := True; end; Result := True; end; function TFTPSend.Logout: Boolean; begin Result := (FTPCommand('QUIT') div 100) = 2; FSock.CloseSocket; end; procedure TFTPSend.ParseRemote(Value: string); var n: integer; nb, ne: integer; s: string; x: integer; begin Value := trim(Value); nb := Pos('(',Value); ne := Pos(')',Value); if (nb = 0) or (ne = 0) then begin nb:=RPos(' ',Value); s:=Copy(Value, nb + 1, Length(Value) - nb); end else begin s:=Copy(Value,nb+1,ne-nb-1); end; for n := 1 to 4 do if n = 1 then FDataIP := Fetch(s, ',') else FDataIP := FDataIP + '.' + Fetch(s, ','); x := StrToIntDef(Fetch(s, ','), 0) * 256; x := x + StrToIntDef(Fetch(s, ','), 0); FDataPort := IntToStr(x); end; procedure TFTPSend.ParseRemoteEPSV(Value: string); var n: integer; s, v: AnsiString; begin s := SeparateRight(Value, '('); s := Trim(SeparateLeft(s, ')')); Delete(s, Length(s), 1); v := ''; for n := Length(s) downto 1 do if s[n] in ['0'..'9'] then v := s[n] + v else Break; FDataPort := v; FDataIP := FTargetHost; end; function TFTPSend.DataSocket: boolean; var s: string; begin Result := False; if FIsDataTLS then FPassiveMode := True; if FPassiveMode then begin if FSock.IP6used then s := '2' else s := '1'; if FSock.IP6used and not(FForceOldPort) and ((FTPCommand('EPSV ' + s) div 100) = 2) then begin ParseRemoteEPSV(FResultString); end else if FSock.IP6used then Exit else begin if (FTPCommand('PASV') div 100) <> 2 then Exit; ParseRemote(FResultString); end; FDSock.CloseSocket; FDSock.Bind(FIPInterface, cAnyPort); FDSock.Connect(FDataIP, FDataPort); Result := FDSock.LastError = 0; end else begin FDSock.CloseSocket; if FForceDefaultPort then s := cFtpDataProtocol else s := '0'; //data conection from same interface as command connection FDSock.Bind(FSock.GetLocalSinIP, s); if FDSock.LastError <> 0 then Exit; FDSock.SetLinger(True, 10000); FDSock.Listen; FDSock.GetSins; FDataIP := FDSock.GetLocalSinIP; FDataIP := FDSock.ResolveName(FDataIP); FDataPort := IntToStr(FDSock.GetLocalSinPort); if FSock.IP6used and (not FForceOldPort) then begin if IsIp6(FDataIP) then s := '2' else s := '1'; s := 'EPRT |' + s +'|' + FDataIP + '|' + FDataPort + '|'; Result := (FTPCommand(s) div 100) = 2; end; if not Result and IsIP(FDataIP) then begin s := ReplaceString(FDataIP, '.', ','); s := 'PORT ' + s + ',' + IntToStr(FDSock.GetLocalSinPort div 256) + ',' + IntToStr(FDSock.GetLocalSinPort mod 256); Result := (FTPCommand(s) div 100) = 2; end; end; end; function TFTPSend.AcceptDataSocket: Boolean; var x: TSocket; begin if FPassiveMode then Result := True else begin Result := False; if FDSock.CanRead(FTimeout) then begin x := FDSock.Accept; if not FDSock.UsingSocks then FDSock.CloseSocket; FDSock.Socket := x; Result := True; end; end; if Result and FIsDataTLS then begin FDSock.SSL.Assign(FSock.SSL); FDSock.SSLDoConnect; Result := FDSock.LastError = 0; end; end; function TFTPSend.DataRead(const DestStream: TStream): Boolean; var x: integer; begin Result := False; try if not AcceptDataSocket then Exit; FDSock.RecvStreamRaw(DestStream, FTimeout); FDSock.CloseSocket; x := ReadResult; Result := (x div 100) = 2; finally FDSock.CloseSocket; end; end; function TFTPSend.DataWrite(const SourceStream: TStream): Boolean; var x: integer; b: Boolean; begin Result := False; try if not AcceptDataSocket then Exit; FDSock.SendStreamRaw(SourceStream); b := FDSock.LastError = 0; FDSock.CloseSocket; x := ReadResult; Result := b and ((x div 100) = 2); finally FDSock.CloseSocket; end; end; function TFTPSend.List(Directory: string; NameList: Boolean): Boolean; var x: integer; begin Result := False; FDataStream.Clear; FFTPList.Clear; if Directory <> '' then Directory := ' ' + Directory; FTPCommand('TYPE A'); if not DataSocket then Exit; if NameList then x := FTPCommand('NLST' + Directory) else x := FTPCommand('LIST' + Directory); if (x div 100) <> 1 then Exit; Result := DataRead(FDataStream); if (not NameList) and Result then begin FDataStream.Position := 0; FFTPList.Lines.LoadFromStream(FDataStream); FFTPList.ParseLines; end; FDataStream.Position := 0; end; function TFTPSend.RetrieveFile(const FileName: string; Restore: Boolean): Boolean; var RetrStream: TStream; begin Result := False; if FileName = '' then Exit; if not DataSocket then Exit; Restore := Restore and FCanResume; if FDirectFile then if Restore and FileExists(FDirectFileName) then RetrStream := TFileStream.Create(FDirectFileName, fmOpenReadWrite or fmShareExclusive) else RetrStream := TFileStream.Create(FDirectFileName, fmCreate or fmShareDenyWrite) else RetrStream := FDataStream; try if FBinaryMode then FTPCommand('TYPE I') else FTPCommand('TYPE A'); if Restore then begin RetrStream.Position := RetrStream.Size; if (FTPCommand('REST ' + IntToStr(RetrStream.Size)) div 100) <> 3 then Exit; end else if RetrStream is TMemoryStream then TMemoryStream(RetrStream).Clear; if (FTPCommand('RETR ' + FileName) div 100) <> 1 then Exit; Result := DataRead(RetrStream); if not FDirectFile then RetrStream.Position := 0; finally if FDirectFile then RetrStream.Free; end; end; function TFTPSend.InternalStor(const Command: string; RestoreAt: int64): Boolean; var SendStream: TStream; StorSize: int64; begin Result := False; if FDirectFile then if not FileExists(FDirectFileName) then Exit else SendStream := TFileStream.Create(FDirectFileName, fmOpenRead or fmShareDenyWrite) else SendStream := FDataStream; try if not DataSocket then Exit; if FBinaryMode then FTPCommand('TYPE I') else FTPCommand('TYPE A'); StorSize := SendStream.Size; if not FCanResume then RestoreAt := 0; if (StorSize > 0) and (RestoreAt = StorSize) then begin Result := True; Exit; end; if RestoreAt > StorSize then RestoreAt := 0; FTPCommand('ALLO ' + IntToStr(StorSize - RestoreAt)); if FCanResume then if (FTPCommand('REST ' + IntToStr(RestoreAt)) div 100) <> 3 then Exit; SendStream.Position := RestoreAt; if (FTPCommand(Command) div 100) <> 1 then Exit; Result := DataWrite(SendStream); finally if FDirectFile then SendStream.Free; end; end; function TFTPSend.StoreFile(const FileName: string; Restore: Boolean): Boolean; var RestoreAt: int64; begin Result := False; if FileName = '' then Exit; RestoreAt := 0; Restore := Restore and FCanResume; if Restore then begin RestoreAt := Self.FileSize(FileName); if RestoreAt < 0 then RestoreAt := 0; end; Result := InternalStor('STOR ' + FileName, RestoreAt); end; function TFTPSend.StoreUniqueFile: Boolean; begin Result := InternalStor('STOU', 0); end; function TFTPSend.AppendFile(const FileName: string): Boolean; begin Result := False; if FileName = '' then Exit; Result := InternalStor('APPE ' + FileName, 0); end; function TFTPSend.NoOp: Boolean; begin Result := (FTPCommand('NOOP') div 100) = 2; end; function TFTPSend.RenameFile(const OldName, NewName: string): Boolean; begin Result := False; if (FTPCommand('RNFR ' + OldName) div 100) <> 3 then Exit; Result := (FTPCommand('RNTO ' + NewName) div 100) = 2; end; function TFTPSend.DeleteFile(const FileName: string): Boolean; begin Result := (FTPCommand('DELE ' + FileName) div 100) = 2; end; function TFTPSend.FileSize(const FileName: string): int64; var s: string; begin Result := -1; if (FTPCommand('SIZE ' + FileName) div 100) = 2 then begin s := Trim(SeparateRight(ResultString, ' ')); s := Trim(SeparateLeft(s, ' ')); {$IFDEF VER100} Result := StrToIntDef(s, -1); {$ELSE} Result := StrToInt64Def(s, -1); {$ENDIF} end; end; function TFTPSend.ChangeWorkingDir(const Directory: string): Boolean; begin Result := (FTPCommand('CWD ' + Directory) div 100) = 2; end; function TFTPSend.ChangeToParentDir: Boolean; begin Result := (FTPCommand('CDUP') div 100) = 2; end; function TFTPSend.ChangeToRootDir: Boolean; begin Result := ChangeWorkingDir('/'); end; function TFTPSend.DeleteDir(const Directory: string): Boolean; begin Result := (FTPCommand('RMD ' + Directory) div 100) = 2; end; function TFTPSend.CreateDir(const Directory: string): Boolean; begin Result := (FTPCommand('MKD ' + Directory) div 100) = 2; end; function TFTPSend.GetCurrentDir: String; begin Result := ''; if (FTPCommand('PWD') div 100) = 2 then begin Result := SeparateRight(FResultString, '"'); Result := Trim(Separateleft(Result, '"')); end; end; procedure TFTPSend.Abort; begin FSock.SendString('ABOR' + CRLF); FDSock.StopFlag := True; end; procedure TFTPSend.TelnetAbort; begin FSock.SendString(#$FF + #$F4 + #$FF + #$F2); Abort; end; {==============================================================================} procedure TFTPListRec.Assign(Value: TFTPListRec); begin FFileName := Value.FileName; FDirectory := Value.Directory; FReadable := Value.Readable; FFileSize := Value.FileSize; FFileTime := Value.FileTime; FOriginalLine := Value.OriginalLine; FMask := Value.Mask; end; constructor TFTPList.Create; begin inherited Create; FList := TList.Create; FLines := TStringList.Create; FMasks := TStringList.Create; FUnparsedLines := TStringList.Create; //various UNIX FMasks.add('pppppppppp $!!!S*$TTT$DD$hh mm ss$YYYY$n*'); FMasks.add('pppppppppp $!!!S*$DD$TTT$hh mm ss$YYYY$n*'); FMasks.add('pppppppppp $!!!S*$TTT$DD$UUUUU$n*'); //mostly used UNIX format FMasks.add('pppppppppp $!!!S*$DD$TTT$UUUUU$n*'); //MacOS FMasks.add('pppppppppp $!!S*$TTT$DD$UUUUU$n*'); FMasks.add('pppppppppp $!S*$TTT$DD$UUUUU$n*'); //Novell FMasks.add('d $!S*$TTT$DD$UUUUU$n*'); //Windows FMasks.add('MM DD YY hh mmH !S* n*'); FMasks.add('MM DD YY hh mmH $ d!n*'); FMasks.add('MM DD YYYY hh mmH !S* n*'); FMasks.add('MM DD YYYY hh mmH $ d!n*'); FMasks.add('DD MM YYYY hh mmH !S* n*'); FMasks.add('DD MM YYYY hh mmH $ d!n*'); //VMS FMasks.add('v*$ DD TTT YYYY hh mm'); FMasks.add('v*$!DD TTT YYYY hh mm'); FMasks.add('n*$ YYYY MM DD hh mm$S*'); //AS400 FMasks.add('!S*$MM DD YY hh mm ss !n*'); FMasks.add('!S*$DD MM YY hh mm ss !n*'); FMasks.add('n*!S*$MM DD YY hh mm ss d'); FMasks.add('n*!S*$DD MM YY hh mm ss d'); //VxWorks FMasks.add('$S* TTT DD YYYY hh mm ss $n* $ d'); FMasks.add('$S* TTT DD YYYY hh mm ss $n*'); //Distinct FMasks.add('d $S*$TTT DD YYYY hh mm$n*'); FMasks.add('d $S*$TTT DD$hh mm$n*'); //PC-NFSD FMasks.add('nnnnnnnn.nnn dSSSSSSSSSSS MM DD YY hh mmH'); //VOS FMasks.add('- SSSSS YY MM DD hh mm ss n*'); FMasks.add('- d= SSSSS YY MM DD hh mm ss n*'); //Unissys ClearPath FMasks.add('nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn SSSSSSSSS MM DD YYYY hh mm'); FMasks.add('n*\x SSSSSSSSS MM DD YYYY hh mm'); //IBM FMasks.add('- SSSSSSSSSSSS d MM DD YYYY hh mm n*'); //OS9 FMasks.add('- YY MM DD hhmm d SSSSSSSSS n*'); //tandem FMasks.add('nnnnnnnn SSSSSSS DD TTT YY hh mm ss'); //MVS FMasks.add('- YYYY MM DD SSSSS d=O n*'); //BullGCOS8 FMasks.add(' $S* MM DD YY hh mm ss !n*'); FMasks.add('d $S* MM DD YY !n*'); //BullGCOS7 FMasks.add(' TTT DD YYYY n*'); FMasks.add(' d n*'); end; destructor TFTPList.Destroy; begin Clear; FList.Free; FLines.Free; FMasks.Free; FUnparsedLines.Free; inherited Destroy; end; procedure TFTPList.Clear; var n:integer; begin for n := 0 to FList.Count - 1 do if Assigned(FList[n]) then TFTPListRec(FList[n]).Free; FList.Clear; FLines.Clear; FUnparsedLines.Clear; end; function TFTPList.Count: integer; begin Result := FList.Count; end; function TFTPList.GetListItem(Index: integer): TFTPListRec; begin Result := nil; if Index < Count then Result := TFTPListRec(FList[Index]); end; procedure TFTPList.Assign(Value: TFTPList); var flr: TFTPListRec; n: integer; begin Clear; for n := 0 to Value.Count - 1 do begin flr := TFTPListRec.Create; flr.Assign(Value[n]); Flist.Add(flr); end; Lines.Assign(Value.Lines); Masks.Assign(Value.Masks); UnparsedLines.Assign(Value.UnparsedLines); end; procedure TFTPList.ClearStore; begin Monthnames := ''; BlockSize := ''; DirFlagValue := ''; FileName := ''; VMSFileName := ''; Day := ''; Month := ''; ThreeMonth := ''; YearTime := ''; Year := ''; Hours := ''; HoursModif := ''; Minutes := ''; Seconds := ''; Size := ''; Permissions := ''; DirFlag := ''; end; function TFTPList.ParseByMask(Value, NextValue, Mask: AnsiString): Integer; var Ivalue, IMask: integer; MaskC, LastMaskC: AnsiChar; c: AnsiChar; s: string; begin ClearStore; Result := 0; if Value = '' then Exit; if Mask = '' then Exit; Ivalue := 1; IMask := 1; Result := 1; LastMaskC := ' '; while Imask <= Length(mask) do begin if (Mask[Imask] <> '*') and (Ivalue > Length(Value)) then begin Result := 0; Exit; end; MaskC := Mask[Imask]; if Ivalue > Length(Value) then Exit; c := Value[Ivalue]; case MaskC of 'n': FileName := FileName + c; 'v': VMSFileName := VMSFileName + c; '.': begin if c in ['.', ' '] then FileName := TrimSP(FileName) + '.' else begin Result := 0; Exit; end; end; 'D': Day := Day + c; 'M': Month := Month + c; 'T': ThreeMonth := ThreeMonth + c; 'U': YearTime := YearTime + c; 'Y': Year := Year + c; 'h': Hours := Hours + c; 'H': HoursModif := HoursModif + c; 'm': Minutes := Minutes + c; 's': Seconds := Seconds + c; 'S': Size := Size + c; 'p': Permissions := Permissions + c; 'd': DirFlag := DirFlag + c; 'x': if c <> ' ' then begin Result := 0; Exit; end; '*': begin s := ''; if LastMaskC in ['n', 'v'] then begin if Imask = Length(Mask) then s := Copy(Value, IValue, Maxint) else while IValue <= Length(Value) do begin if Value[Ivalue] = ' ' then break; s := s + Value[Ivalue]; Inc(Ivalue); end; if LastMaskC = 'n' then FileName := FileName + s else VMSFileName := VMSFileName + s; end else begin while IValue <= Length(Value) do begin if not(Value[Ivalue] in ['0'..'9']) then break; s := s + Value[Ivalue]; Inc(Ivalue); end; case LastMaskC of 'S': Size := Size + s; end; end; Dec(IValue); end; '!': begin while IValue <= Length(Value) do begin if Value[Ivalue] = ' ' then break; Inc(Ivalue); end; while IValue <= Length(Value) do begin if Value[Ivalue] <> ' ' then break; Inc(Ivalue); end; Dec(IValue); end; '$': begin while IValue <= Length(Value) do begin if not(Value[Ivalue] in [' ', #9]) then break; Inc(Ivalue); end; Dec(IValue); end; '=': begin s := ''; case LastmaskC of 'S': begin while Imask <= Length(Mask) do begin if not(Mask[Imask] in ['0'..'9']) then break; s := s + Mask[Imask]; Inc(Imask); end; Dec(Imask); BlockSize := s; end; 'T': begin Monthnames := Copy(Mask, IMask, 12 * 3); Inc(IMask, 12 * 3); end; 'd': begin Inc(Imask); DirFlagValue := Mask[Imask]; end; end; end; '\': begin Value := NextValue; IValue := 0; Result := 2; end; end; Inc(Ivalue); Inc(Imask); LastMaskC := MaskC; end; end; function TFTPList.CheckValues: Boolean; var x, n: integer; begin Result := false; if FileName <> '' then begin if pos('?', VMSFilename) > 0 then Exit; if pos('*', VMSFilename) > 0 then Exit; end; if VMSFileName <> '' then if pos(';', VMSFilename) <= 0 then Exit; if (FileName = '') and (VMSFileName = '') then Exit; if Permissions <> '' then begin if length(Permissions) <> 10 then Exit; for n := 1 to 10 do if not(Permissions[n] in ['a', 'b', 'c', 'd', 'h', 'l', 'p', 'r', 's', 't', 'w', 'x', 'y', '-']) then Exit; end; if Day <> '' then begin Day := TrimSP(Day); x := StrToIntDef(day, -1); if (x < 1) or (x > 31) then Exit; end; if Month <> '' then begin Month := TrimSP(Month); x := StrToIntDef(Month, -1); if (x < 1) or (x > 12) then Exit; end; if Hours <> '' then begin Hours := TrimSP(Hours); x := StrToIntDef(Hours, -1); if (x < 0) or (x > 24) then Exit; end; if HoursModif <> '' then begin if not (HoursModif[1] in ['a', 'A', 'p', 'P']) then Exit; end; if Minutes <> '' then begin Minutes := TrimSP(Minutes); x := StrToIntDef(Minutes, -1); if (x < 0) or (x > 59) then Exit; end; if Seconds <> '' then begin Seconds := TrimSP(Seconds); x := StrToIntDef(Seconds, -1); if (x < 0) or (x > 59) then Exit; end; if Size <> '' then begin Size := TrimSP(Size); for n := 1 to Length(Size) do if not (Size[n] in ['0'..'9']) then Exit; end; if length(Monthnames) = (12 * 3) then for n := 1 to 12 do CustomMonthNames[n] := Copy(Monthnames, ((n - 1) * 3) + 1, 3); if ThreeMonth <> '' then begin x := GetMonthNumber(ThreeMonth); if (x = 0) then Exit; end; if YearTime <> '' then begin YearTime := ReplaceString(YearTime, '-', ':'); if pos(':', YearTime) > 0 then begin if (GetTimeFromstr(YearTime) = -1) then Exit; end else begin YearTime := TrimSP(YearTime); x := StrToIntDef(YearTime, -1); if (x = -1) then Exit; if (x < 1900) or (x > 2100) then Exit; end; end; if Year <> '' then begin Year := TrimSP(Year); x := StrToIntDef(Year, -1); if (x = -1) then Exit; if Length(Year) = 4 then begin if not((x > 1900) and (x < 2100)) then Exit; end else if Length(Year) = 2 then begin if not((x >= 0) and (x <= 99)) then Exit; end else if Length(Year) = 3 then begin if not((x >= 100) and (x <= 110)) then Exit; end else Exit; end; Result := True; end; procedure TFTPList.FillRecord(const Value: TFTPListRec); var s: string; x: integer; myear: Word; mmonth: Word; mday: Word; mhours, mminutes, mseconds: word; n: integer; begin s := DirFlagValue; if s = '' then s := 'D'; s := Uppercase(s); Value.Directory := s = Uppercase(DirFlag); if FileName <> '' then Value.FileName := SeparateLeft(Filename, ' -> '); if VMSFileName <> '' then begin Value.FileName := VMSFilename; Value.Directory := Pos('.DIR;',VMSFilename) > 0; end; Value.FileName := TrimSPRight(Value.FileName); Value.Readable := not Value.Directory; if BlockSize <> '' then x := StrToIntDef(BlockSize, 1) else x := 1; {$IFDEF VER100} Value.FileSize := x * StrToIntDef(Size, 0); {$ELSE} Value.FileSize := x * StrToInt64Def(Size, 0); {$ENDIF} DecodeDate(Date,myear,mmonth,mday); mhours := 0; mminutes := 0; mseconds := 0; if Day <> '' then mday := StrToIntDef(day, 1); if Month <> '' then mmonth := StrToIntDef(Month, 1); if length(Monthnames) = (12 * 3) then for n := 1 to 12 do CustomMonthNames[n] := Copy(Monthnames, ((n - 1) * 3) + 1, 3); if ThreeMonth <> '' then mmonth := GetMonthNumber(ThreeMonth); if Year <> '' then begin myear := StrToIntDef(Year, 0); if (myear <= 99) and (myear > 50) then myear := myear + 1900; if myear <= 50 then myear := myear + 2000; end; if YearTime <> '' then begin if pos(':', YearTime) > 0 then begin YearTime := TrimSP(YearTime); mhours := StrToIntDef(Separateleft(YearTime, ':'), 0); mminutes := StrToIntDef(SeparateRight(YearTime, ':'), 0); if (Encodedate(myear, mmonth, mday) + EncodeTime(mHours, mminutes, 0, 0)) > now then Dec(mYear); end else myear := StrToIntDef(YearTime, 0); end; if Minutes <> '' then mminutes := StrToIntDef(Minutes, 0); if Seconds <> '' then mseconds := StrToIntDef(Seconds, 0); if Hours <> '' then begin mHours := StrToIntDef(Hours, 0); if HoursModif <> '' then if Uppercase(HoursModif[1]) = 'P' then if mHours <> 12 then mHours := MHours + 12; end; Value.FileTime := Encodedate(myear, mmonth, mday) + EncodeTime(mHours, mminutes, mseconds, 0); if Permissions <> '' then begin Value.Permission := Permissions; Value.Readable := Uppercase(permissions)[2] = 'R'; if Uppercase(permissions)[1] = 'D' then begin Value.Directory := True; Value.Readable := false; end else if Uppercase(permissions)[1] = 'L' then Value.Directory := True; end; end; function TFTPList.ParseEPLF(Value: string): Boolean; var s, os: string; flr: TFTPListRec; begin Result := False; if Value <> '' then if Value[1] = '+' then begin os := Value; Delete(Value, 1, 1); flr := TFTPListRec.create; flr.FileName := SeparateRight(Value, #9); s := Fetch(Value, ','); while s <> '' do begin if s[1] = #9 then Break; case s[1] of '/': flr.Directory := true; 'r': flr.Readable := true; 's': {$IFDEF VER100} flr.FileSize := StrToIntDef(Copy(s, 2, Length(s) - 1), 0); {$ELSE} flr.FileSize := StrToInt64Def(Copy(s, 2, Length(s) - 1), 0); {$ENDIF} 'm': flr.FileTime := (StrToIntDef(Copy(s, 2, Length(s) - 1), 0) / 86400) + 25569; end; s := Fetch(Value, ','); end; if flr.FileName <> '' then if (flr.Directory and ((flr.FileName = '.') or (flr.FileName = '..'))) or (flr.FileName = '') then flr.free else begin flr.OriginalLine := os; flr.Mask := 'EPLF'; Flist.Add(flr); Result := True; end; end; end; procedure TFTPList.ParseLines; var flr: TFTPListRec; n, m: Integer; S: string; x: integer; b: Boolean; begin n := 0; while n < Lines.Count do begin if n = Lines.Count - 1 then s := '' else s := Lines[n + 1]; b := False; x := 0; if ParseEPLF(Lines[n]) then begin b := True; x := 1; end else for m := 0 to Masks.Count - 1 do begin x := ParseByMask(Lines[n], s, Masks[m]); if x > 0 then if CheckValues then begin flr := TFTPListRec.create; FillRecord(flr); flr.OriginalLine := Lines[n]; flr.Mask := Masks[m]; if flr.Directory and ((flr.FileName = '.') or (flr.FileName = '..')) then flr.free else Flist.Add(flr); b := True; Break; end; end; if not b then FUnparsedLines.Add(Lines[n]); Inc(n); if x > 1 then Inc(n, x - 1); end; end; {==============================================================================} function FtpGetFile(const IP, Port, FileName, LocalFile, User, Pass: string): Boolean; begin Result := False; with TFTPSend.Create do try if User <> '' then begin Username := User; Password := Pass; end; TargetHost := IP; TargetPort := Port; if not Login then Exit; DirectFileName := LocalFile; DirectFile:=True; Result := RetrieveFile(FileName, False); Logout; finally Free; end; end; function FtpPutFile(const IP, Port, FileName, LocalFile, User, Pass: string): Boolean; begin Result := False; with TFTPSend.Create do try if User <> '' then begin Username := User; Password := Pass; end; TargetHost := IP; TargetPort := Port; if not Login then Exit; DirectFileName := LocalFile; DirectFile:=True; Result := StoreFile(FileName, False); Logout; finally Free; end; end; function FtpInterServerTransfer( const FromIP, FromPort, FromFile, FromUser, FromPass: string; const ToIP, ToPort, ToFile, ToUser, ToPass: string): Boolean; var FromFTP, ToFTP: TFTPSend; s: string; x: integer; begin Result := False; FromFTP := TFTPSend.Create; toFTP := TFTPSend.Create; try if FromUser <> '' then begin FromFTP.Username := FromUser; FromFTP.Password := FromPass; end; if ToUser <> '' then begin ToFTP.Username := ToUser; ToFTP.Password := ToPass; end; FromFTP.TargetHost := FromIP; FromFTP.TargetPort := FromPort; ToFTP.TargetHost := ToIP; ToFTP.TargetPort := ToPort; if not FromFTP.Login then Exit; if not ToFTP.Login then Exit; if (FromFTP.FTPCommand('PASV') div 100) <> 2 then Exit; FromFTP.ParseRemote(FromFTP.ResultString); s := ReplaceString(FromFTP.DataIP, '.', ','); s := 'PORT ' + s + ',' + IntToStr(StrToIntDef(FromFTP.DataPort, 0) div 256) + ',' + IntToStr(StrToIntDef(FromFTP.DataPort, 0) mod 256); if (ToFTP.FTPCommand(s) div 100) <> 2 then Exit; x := ToFTP.FTPCommand('RETR ' + FromFile); if (x div 100) <> 1 then Exit; x := FromFTP.FTPCommand('STOR ' + ToFile); if (x div 100) <> 1 then Exit; FromFTP.Timeout := 21600000; x := FromFTP.ReadResult; if (x div 100) <> 2 then Exit; ToFTP.Timeout := 21600000; x := ToFTP.ReadResult; if (x div 100) <> 2 then Exit; Result := True; finally ToFTP.Free; FromFTP.Free; end; end; end. �������������������������������������������������������������������������./citylights_round_icon.png�������������������������������������������������������������������������0000644�0001750�0001750�00000033725�14576573022�016272� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���d���d���pT���sRGB����bKGD������ pHYs��$��$P$���tIME  G�� �IDATxٳeq\k3ܡn 4@e")BdѢH9$)K#h6M6AEa zju^~ܧnIIfE]re_~_?G?kZ'@4`8`!_㕗/ GSgQ|{?_ x\16~cVC~_#΀|^n7�im&/٧Glu1xx�ov? #?F> |6~/ t,c g![΁gz xx xϯ ?~{4B'" ""8 {R s\�s)3t[i8?iȟG�? /!nDTEED(*E VTsp3j軎Z 8ckcZaaed�F )/?N"*ZKJuzf]/RAwCPJQZ)Z1of3#6ang?X-<�:|}+߷`2_t*J)E_,fsy+vtU*Zq"E(( .84hm`߳XoVlvV0013738g �~m+1O>Id&W/?z)"}"]gsK G,sfݜj)B-Qq8EA\m xC "Tgdoθ߱Xm\n/\_lw4kMI&F?3W >i^KV%'G/9^,Ygt (FVA0QPuZFp5ŋn Eh w1ݰbr VK.Zkެy"[ ?a{Kq^w턲7J)ݬxyĭk7s6wo5ZgTAu(EzE*BPDŚ*Zki)ڱ%NjcYGQ%ߑLQ9D~,"hܹq7npvz[8hqƏbLoU'/iEQõ%2KQUԎgsNjQL]Q&4+dͪ-wM(Zjurg}wn\c9[PkP@ TqǥRPQ</H Zy(� JA" ((b@FUe>1G,ܝq՝}odMj`Mjo c*rTJ-łg7w6wn ]麊jR(" JU"TUTJp7uGEq-P TJ)Uv$2.8E;\ @GX%< [fVݽO\N`io"kG9ýwyٜYH*J:xDJDr REқ(Y=-aJ T"QUCO.@.lr� њs%v;=epya ?N$)Y̺^\ۼt7OZ#< 2T%ndEՂXEPq%ZpR::Q$T'NbZ Z*&BB-_G +FbTr2?aGݢ>$=1 1ofeULnq]޸ ΪEn$MQ6R񸵪)8U ӈԢ]SKЩGш{&}p1 df%91@P�Zl3fqd1F9˄,!'e_;*:ܼvKp Nǔ"Q+qވ/xKTݒжBkP&DQ~ʒRg*9R*.("P%h!t; h ֬K6z2|AN gDdƵ3ߺͭY̏H^Պ'a C*" E"#T<j PV \]*KZ"hQ,ã*I@bO(,hHbjH1hN:Q00QZY2C 2K8|NE糮gܿ}or8F('Ï;B&FO&[uxFs^-qkK>KuTH(x#:?QR)"3Md"4rjQf}GP`3 fGsaA i3o|^DNZo[79Z,PRXJ"b_AiHaHA I?jxbtEQK(_ÝQU/ [tZ@,<(" JJ}*ݜR b]zII.lP r~NOyݺrIׁGqKxSKI)4P X"85o|!xVUR&W0WY-"o!Fy@HU]OF }-| 2<CկfqhKߺ˫rzrJWZm(U+H|J  UMP<5y-U8")U_"UG#!JF-(*B#xP4ZP-T-KTvj֚z&Sz7yA Y�?."l&o;~hE((%>PI*sRE2(%X*(5jU]PPO.>O4A#(NW N)a(id=Z:16 ^Zk}^}s1i_("׺ڕxK9rܘ3fWh`N c摩hMhxhT$ 5JIh&c*h)A\*B#)4E9PZ&@p.a w,B)h6Qlr\d1BU"%woލ\;:CGn U'- ]UY&JxhZSalƀF"J6>npQ0yMU飤WiBN»MJlw\n6 Xe{߯G_>F8%/ru߹ͳkQd!k!T5@?Xz*wxYD z(�໚GStljd:(w@YIDadޓ*t%֌*BWxIK}TmR3RϧwWZJwwosMԹQJrb)y-i&aa[фjDE.y!D?DJ}H%EPKxY%* ݩEȪTȒfZ' -zbun&)D ׀/f/r9_ݛ7yΖt"hE]h"ќB'=."Y1Ot$`jTH0qrx Y[TѬsMK/."RAZSȟ FÄZVRIPPKrdgUK%f<\&/qQ^RRWRtun1{(-)3Rp (5^CRi !EXb"(p'PЩ9Y_&0TTz$q=R3D^M$jYD}$Jۘ.;)qx8Fld:na,ˇ�Ee*D>"rޭܿ}#tZf8N))"=o[]BCT"YQ0=ռF A֩Z5@ÛEk'-H]$HI4}`UJ`k-l%͆ZͻN?? ,Tl5cj)( hz@*%ꮨ{x cdg+\" Tg%VqlJxNK$ES4s\O-</;7;b <9(\͹{ׯ3 ^~񽈫~D2Zkǧ-X<k Ima5)ɝ hɃTHa3Ի޹ mJ8qHn(jZ`V ̓B%#ќWf;.D Qj; R2#ݼm~q>AI"~X*}qU<ٺ5PPmAGh2 ģC U) UTinYTvqZ)A RP0z% ^ f-yam3CfFוKtt֐4qD46p<_p맧<:0ţl~pgR?x"OYgIE$ҩӈД$SUXJ rJ=іGKKhTEE%sLL \'a)wϜ!xPIQ1Bޔ�f'mRq6ܝBM"kt,B<A�"PpR{npu}n_4TAJ(>\麎G,jB#!JF jIOz BsEH)ƬS}a4CHYA6Sq+R`7t'#jEboMAǥ1h K8.s<5K//<痈 GdyS":nq* -[5<& !]"NlD-^0P0#B_م7�Qe7®91n&{Dqx*ڠÈf}*"]ɥ s'<x8NkYdVZ,sN YGWH#pWPZKGbEg!"ٷp$.JQ9U1SfR'=3Z\r3FMTI ?v}Y!$:#nCV1%BxW0Xΰf#qvtLWkvX9Oj{ "1z)i*-)5:ݍ7P'aߜYVM\ONI6 ~$RԲM*Z>)ѕN Y5CgƉ ?J($Ѹ@"xb-:!31̡0K/3p!:.FE=j"!Cf"Tjm\;=fs^v9VC rxW*NjlF(,D/~-FWqBTՔف(>$=JTJ %!$|R,Gd�fwp "NuA:-1EGh*&#ġX Ah; 5PX,%0`^kkivxk%<d֣dA!<!RCSU<�C7yASxf7B'CA@"Љ4LC, j^3X"BRmt*\1X2i7k) - c�-2-ǜ,Zd?%ǭޥANb,P#Uy6AVTu\Σj+QK0N}Mi FDk(K6ʡ?RTA z<0_f9,u@n٘Y:cX R*u, $~^0+껹HU}O_bz SKs*T Ov K�ˤ 6ޯ0.a1`ʆW �I V1 Ը%{<O,+ų֔Yzk#QU\ ƕRŌ咾`劰n_OKǪ0n-5[J%TjBT0_:PI}IO 7VIjɾ|%ot}T>Q 4F5ag:&\O)1GKZ"3hj,Ƶ:l h>K-g~ R̆WU.XT )ZX<0sN,:o7/A~]4hBjz@|n2ٜCqH6i,.;S/N"(MŽቨ 8OY$m}1kF*d+C7ͳ ٌŜYQT}lM,D YSf)1Xb8ߍ"@+]JQ4vhFIa{1` ׈9c}4E3&iDLMjݖ5Z+\^P2bɫMi�E`q?OIe*-4<K넮K . A&(6u+ ]W(QQ‘5 %Zf\/X$I(qe*E@ NȆ4 ID> ʽoeMsn8AAz(Jqh菄PKeH+B+1P&'�S>P:u.`:8E-y܆G%? ,OrIUfR0Q`ͮ&E"[Kϟf DxS=o8�!rgBΣg"Uq#P㡬r3+Q|AZVt<fɰ7aL*iHo9A^<dɜFO(wiQE>&!K$"qh&)|PcdGNWB;Wd:`GšמZ [Aŝ@6mjd!@mD D<+הKH/G0ip@_%M25Ig.9e^ItMqhN:9)W2[J:eͦmRpi<ҼKEj CCF#0=y׾vrHNOmLˡ@AB5xD4DY닑dC D< )B`p/Xd"I'LBO T/qhS>9 AU#`+ jvLkM-hJO BkIS|M> p5*m7o[0eŚI,F"gLs!ۜ΁~fC8L/)`o8Uz2ة)KԓI\Urt-<s\J&I=N(ٕ ;¦gN9|lY7Sa\1fuGig,_/cڲ0 !t\6[&?Qɤ 5#jA3!=TZƦI5-N!:%Dk1JsRj Iݏy[$<|??YrVe2N`p\Uqa0idHcB#.W4?Hca@vxWSqӐmw$De@L!(TZA!Q\%ǜˁ^bጩ&: 0FƟrLDt+mO 7:S)m{v=&l?d1Lg$HK7{NRTmd_ө89 +t_JZ'_esCVOBWjl+R[)qB h(C5i8P=EnxCv;6(?BZ%͡>.Ɯ'+ޜь~Jh8<͔G7dM[;Hs?O}l>:p /Y* )fCB'53C ],*}1Rrv cl 暌)iM6ٯФIÏFʒ@  /qiL CZ a`.kD^yHKc<.yٷF |0e7c¬cpwn6%2 Y.Xlj*֚k/"4Z+$ǕL*0ڧP1 dJIP\+ tCjFeӲWnIVhj3Zes5^%u:mϷ#f mpfEuxmv"JCkNTVe/誠 +9R(B2oj FEJ􉏝`+5D NaHv|6P$67 O/.y~?d|Tr­x^9xSyp~=G%=XPx8Wݹ/BIya7+TJ("f5hZQ4H��IIDATGVÖAZrKK4["HD. Ef>[P:r!`E+'<_c0)r�%ڦAC3fg=7OYfܿ@ib-4la!U^kk_{f}Ԯ*=[b]M3g eV0dN ;Ė:Z^憘9,jq!J=+joQX2jɳ?<LŞ 烇OX œvv0+~dZїBZ-JuHYa"*h9'8-j7˺';<x|෿<$b2Jz  O>#X<Y,.R'mcQ <x~ 7^d㏪ԧ8Ǯ.ܹof1#m]cSN V#ܤ ųܺ{JW{J͗u0QKJW.VR I΁,]ͥeگُ(K_r㋿)Qb}9ęB&jc&=e18ƮƮl4 L>5Yi65Λl[}T'2ȴ4e|ߜ`\ל8L ݞy1yre1멫gt=v{IaW̱V{(Q\D7 c؍-*\jM*o~m~g*j÷_ỿg~#YZZaO3S|B9[2ʜzvT _%Ksg<e)o&o?zƓ Z􎷾w9c]kn~ pvzgi-'GGO~&7ԞJcVT?2(\>_ c=Ƹ~=6c5nH+<+_׼r&/|7~Sy1_ߥ*׏X⒓k,?S?@ Dxge~fҸ~q<gxuO.*+:Vk䜋͎rww-|8_Gt_V<gX9ehkWc p;|d:r>c<g<[oG=^xrDKao<l چ&՝cƽ!TvC_ӯ|Rg=GUY;<|Br㘎xcyɜy),D#ӻC>-...y)O>㷾W̻0\?{F!/wOW.Knvq~\ Zv{o&ޟ go+AS;zT;x5 n3w;o2;hf0+vj m[Q5lV<~6g~͊gh~_Ύ|`>__s4믱Z`9w.:z3:c[c=x<`'i{q>/rvVW5z{tycE`pq{|ˣv06fX:r|tN{K'O2yu}-϶ѺmP*[t(g72nͷuf7zܽO ';8a^鎛gGwx<x~`qѶƻ3֭FُU)8g>ϛoo?a߻Czd>T^I>꽎)ꌭr=r<4S=&_\w?`ܞ ϶4.x'7\<ߠp܏\_*c.Wo\xddfaq0`֔E߱_}Ox/140 GOyڜK7~WxlHoɛ}*NxǗ{>xY|'W7| B+?'>xZ^1jhQ({ʀ,<ߎ͸9?y3L;/y%2v#b9e;7_yOx89Yr~~cX` tFC)UlGhaV:q[Q;e,.P;~K_ǯr˴} ?kxS}} .+-׾Ʒ{³q}&odZQLӜbol.t{x{3ps4M89.h6yo c  ߾rh4XKiv-hZZl eWۈ -+} 껧!35+4~ Pw}lʞG;|훼ӧ`~%ήw^.׿|_͇y~ۯ�'> ĉgf|=sm1ܘр{OAYG/pv#cH~:cFvΈM֛1AH>f,/FIGnjW(-~ BGFsg؇ھ T5l|cЊG:y!O{hjf\|<[؎qzo~X2gL<G9vǜEڀHeX¸ލB]GTW5z;0=X aȥ507Ʊb& 4Ta363q1za F3>k<܃۫sYm`7Ѱ߄56G/m\Vj?N'od_֔xCPV9횗oڻ+wn>k=aL)g2,J桍uXLLQbƼv9àXѸ!8úiYs[x$ MZXKGk=QrZ8C0ri~hiπ-0ki.G_r߷\;{N￷s-g~d3=%T. @~]ȡ?YVLo E(Zv CG7T,<xlVrPz _"-naX wٹuKi.*/_f'pz4t>@ulFRB-S31* "\CSB-4mGbøz<ՕY*\MϱRc1g0H0/T E]\`+?[t>s [.#0gL^+~?AJ#z;]s1 yijۏUٸS`t}haphҢWnh@8#*Ck5fWϥr\BW0]ziFuG;皌А=r0ݨ[sFfX5cFZ<oeI&R05gᎎώ>Xݍ9ss B1NiQVIh>=N1k+3zz,Kr606ڵw1&i%ue0UF&eA@K VXVm`4wy%T}gQ7[OO˜6>3 zk<7]T:nvJ{oO20ZTɾ-ƍq͠a[4En*%VAc\}\)N_+7`VQ1\S9&`YzoLQ[56I~l}NVpN7`Vj۾oQbVrLb*b~q}S66¼"D0/,~0Ktعݿiˑ1cƖ'Ŝ93c;{B7k'(2k}jN?v:|=rk º!9Q\[Aei2Ʒmd?{ L߅NTirwh!Uw9ZB/BCv3 B h8r) cSC`9;36؎1d5ߥ'm`|ݮ> ,ܙ!H)͸coZa&OsKQH56I' ŅmNjQs&1|K$qRb}cAorXR0:hĨw87kH",Qa'n0vfnex߈GAa?vi++eO)fzhgח5*?,`JKqYҥp+1>]4v^*sgY,*Z+ZC`90Z #Ĝޘ¬3FXv_72CAAKJyJZI+ ќYfUZHTEb%V(82ьaJk ౌxQA`qg3UZ}co,g|V a;4jjir&Lim?m�zu t5C)5:%uRMx(REȭD3j>'YZ,ZթBXZLL5g?,FF/ c;הyߠмqXX#O2gVA2WDO3/ͽ#9"ىs}9r gDLj!?r\hC!bҨӾ )\nʲ2VZjU6*QeEC63|x5&:dBaoq'a)<E%07`4Fn8Z.W{.wF՚b"јOz_,1ZY'Tn^F`j1>c7ad;6L~|7dӸ5l4o&_#ϫDyG95ݵɮQs2Wji{Y<^YlQ2IUaEJAWyU3W s)F Qi-ؖ Q,WC;&#O7bgl3{As%yo<B?I\Sa]^3mnf{Un jsZb#x2ǍB_Qs0<*QGվ1l3U9:ft1^AQ߾R}FT?$ r5<4RDSntV&XZ.5c . ׌E \6ʮlO!CQfcfo<ˡh>f#DQԗSO>_ޝǟ"DaEƍ6܇?]ڨU,)Yh ]1!i31Om/`,Y_=HRwz2O$ roaFBv6)II.,:*g%ZiYH'9:abg- 1ej q? Fv/$_zbiRafn6j9i-MKmO)~E4io/$ i])x;gגiNsw_Vb v{3STǷ;1w r5�wηJo(2:)r-,Dxre <7x<J#?NgϳAW'6=,-z=K.oi|{y;Oc$ҟ%\&蓊9v!&[-xL ?k~-{X%W 2%ӡş??X :����IENDB`�������������������������������������������./comterm.lrs���������������������������������������������������������������������������������������0000644�0001750�0001750�00000005120�14576573022�013336� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ This is an automatically generated lazarus resource file } LazarusResources.Add('TComTermForm','FORMDATA',[ 'TPF0'#12'TComTermForm'#11'ComTermForm'#4'Left'#3#137#6#6'Height'#3#250#0#3'T' +'op'#2'&'#5'Width'#3#244#1#7'Caption'#6#23'Communications Terminal'#12'Clien' +'tHeight'#3#250#0#11'ClientWidth'#3#244#1#21'Constraints.MinHeight'#3#250#0 +#20'Constraints.MinWidth'#3#244#1#8'Position'#7#15'poDesktopCenter'#10'LCLVe' +'rsion'#6#7'1.6.4.0'#0#5'TEdit'#9'InputEdit'#22'AnchorSideLeft.Control'#7#6 +'Label1'#19'AnchorSideLeft.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7 +#11'ClearButton'#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom' +'.Side'#7#9'asrBottom'#4'Left'#2'*'#6'Height'#2#25#3'Top'#3#223#0#5'Width'#3 +'x'#1#7'Anchors'#11#6'akLeft'#7'akRight'#8'akBottom'#0#18'BorderSpacing.Left' +#2#4#19'BorderSpacing.Right'#2#5#20'BorderSpacing.Bottom'#2#2#9'OnKeyDown'#7 +#16'InputEditKeyDown'#8'TabOrder'#2#0#0#0#5'TMemo'#9'InputMemo'#22'AnchorSid' +'eLeft.Control'#7#5'Owner'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorS' +'ideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#9'InputEdit'#4 +'Left'#2#2#6'Height'#2'a'#4'Hint'#6#4'Sent'#3'Top'#2'|'#5'Width'#3#240#1#7'A' +'nchors'#11#6'akLeft'#7'akRight'#8'akBottom'#0#18'BorderSpacing.Left'#2#2#19 +'BorderSpacing.Right'#2#2#20'BorderSpacing.Bottom'#2#2#10'ScrollBars'#7#10's' +'sAutoBoth'#8'TabOrder'#2#1#0#0#5'TMemo'#10'OutputMemo'#22'AnchorSideLeft.Co' +'ntrol'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#23'AnchorSideRight.C' +'ontrol'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBot' +'tom.Control'#7#9'InputMemo'#4'Left'#2#2#6'Height'#2'x'#4'Hint'#6#8'Received' +#3'Top'#2#2#5'Width'#3#240#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'a' +'kBottom'#0#20'BorderSpacing.Around'#2#2#10'ScrollBars'#7#10'ssAutoBoth'#8'T' +'abOrder'#2#2#0#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.Control'#7#5'Owner' +#21'AnchorSideTop.Control'#7#9'InputEdit'#18'AnchorSideTop.Side'#7#9'asrCent' +'er'#4'Left'#2#5#6'Height'#2#15#3'Top'#3#228#0#5'Width'#2'!'#18'BorderSpacin' +'g.Left'#2#5#7'Caption'#6#6'Input:'#11'ParentColor'#8#0#0#7'TButton'#11'Clea' +'rButton'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9 +'asrBottom'#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side' +#7#9'asrBottom'#4'Left'#3#167#1#6'Height'#2#25#3'Top'#3#223#0#5'Width'#2'K'#7 +'Anchors'#11#7'akRight'#8'akBottom'#0#19'BorderSpacing.Right'#2#2#20'BorderS' +'pacing.Bottom'#2#2#7'Caption'#6#5'Clear'#7'OnClick'#7#16'ClearButtonClick'#8 +'TabOrder'#2#3#0#0#0 ]); ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./png-logo.png��������������������������������������������������������������������������������������0000644�0001750�0001750�00000262706�14576573022�013415� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR��t��i���C{���sBIT|d��� pHYs��.#��.#x?v���tEXtSoftware�www.inkscape.org<���tEXtTitle�SVG Logoߦ��� tEXtAuthor�W3C^A���$tEXtDescription�See document descriptionqJ���tEXtCreation Time�14-08-2009Vl�� �IDATxۮm˒}]**B., �<ۼ#dKp\\U U;s5cZ>rs,EgFFDٲ\k}_E"Q_C}D7/_#hGՆ ҦbrbVc\ZYn߉c׿eFOc0xGտVD<b[4DZ1?}anW?/3K] >Vӿ;#R oG?{_#(ݸ.V}\KU|`sy<O#o~aDgS j|\G^1~gqUL9lw#9̗˓N6q.53د.H~3=b퇱yb2\d:'S'_ue'O!60}OzvDt]p(B*A%>?6x˗ 6agC�} _"_?"|N+^ C\m.U`̋&d3sL m *HZ< nBj\#?磢lC*Cْd>kitJdC.0cAԬo0a6m.~Wn~("m\;st_U9T1p>=wߑh2ry[N>TG<+X{+C*>rʧ*Ϊ>5e \Oşn(]KV)J Tc\N|*f2C;*1c`Q'EoneJ~h/#%Gޑە_[%=呁 B=EStgE5`<m0bH#G#o@JU eя4]4AGÜ=(lbU}9`dbEMx|3Yt]A|)ݒ}Ug"@bg{w1WAe}t-PL},\ WrPNM\ݦyEX<ޑa2i<וqz �,JuDsF|[x܅,~Xyb,5i/B*PN6Sm!4G;U"S:TԼo[ݿ nAQ>_Ygəs>\|־2G^cW'8|gAW73G<<#E<UE+0<2Ggu#6ʡ2i'?f͵Cm T[;/f۪صmMu:VCV2l0 uc[V4<w}Z`uuNnoj^t lþ)*N!RU:U{7μ>y%s+w>c m xeG-;/|᪝,lܜXjLb]^j=Y4x#^LfHW<Dz~+,V'W)_˨nؐIŞnLc3S yHDE&xbUD,WɋmE8vu#MA7?n/<?Z{G-VD%+<qrfcܨ{%$w'M8ҧ{:V^i3G3[1Uֶ^ŘTV08Cq,Jcn^<α Fz<0)ۀZjct]t_տ":js=8`ߝ#{\iYn^Yet1lBG+ٗ:ٽWi1:biN^)^9V ;2Qy)uhX .iXUXE20.p9t,gb3""LA7xL#E<9bY_w_5#U8I6,.򪤏Cڣʹ#F& ވrAN!6agy�Эb?g_1#e*N^^dE9UQ UX(W3} 0H1ۉ39^F¥:WR@W+2x'﫵gUnنP)=RwVWysqZǩ*sE],i1pU{cq*"VLݚqV樘U<Y3MA7؂Uu;7mU0u}U]d9{5l8Fɗy9WM@pTy\xfgguV g|ǼTPں:OClLщN jS'`o<E|(pDLWysL՚tTwֹC 6R nG~4<]layaB;sVk|uo0wFF׻N61U3Ms]qJwY\Q'eC0Pd6tǮrP;dʇrȈ!g# }WSS B:NY8|"Yώ82VCInve}+_lnC^o;mkE۰_c_. \(&Uv]6ګf0؇#6J{ʊ6v3rE_qg;UK.s?#+M`mgh)*I;+*6aa\ٜ*Qy67绾XcMFr:$"9'q绊SU]b}gb8շ(]&uW }+9I yFW ɭ|uS>ܘ"\39 ;n2_e;/W�\@SgJbt/kSF]YUx?l@^9yEjj́t1gUd.U2啧aKwd?>G*Q]A2d#l:sdsR@ٳ1ukbsesT՚|MA7|paM}>*SNUa\ӕ+x+Yy)r ބ.R[׫{nΙí$twt׻,\ w}w0`GD J kq.a$G)i+%3C7؊6-{~ZQWE W(r1.wrhrƺ9\zSh'uFNC]S۟;:dWXb.;TpLJUL| [ RXJ�;2Ysҧw]ߕ!K ڇ}gǫqqN^Oۧ|;_ʷUg2l#+gv3Xea;,`ERQRQQcWHnC4+૾Qʏan޸OF|؃#Q<|dZeccc=Jտ҇}5jОbX`3.Reî'mauQNռXnGW OP9{`"D[:pJ4ʁ٫Y^_j*Jt[k  6MC6񬊔m,w>α]{l;`s<2=bymB5evQhvْ~5aX6+X[@XJ\V^eyvR.׻sd;\l7ev5?ȥR.ՆwGwu XAN-*{+92 |u<Ri& Q9Ķ=;bWw+Zؕ.wb,BاDeP9} #o nڪ Wy5bZ̑9}"j._2<jK<Qzձ-RXQ兲'wX^<Xګ*I6Ri&bQDU)y*Mƴ r+_zcǤj{öa{4# О'ޣWDUyw*Plu;3C92_ncl:L<qGm,Ӯ ɋC<\j}P㻾;8jN  6O rJy>wn+=U*NC*ȐeTTa8M5-?g" cc\0*?GN`0jc|6YUy-lǪyܾz AnGjC?.6CZ.'eJ1v׫CnhG* <'3=4AƲ?}gWp-kņ2ë }wO 68 #盍ñ]N|g~L$l1ۂ rW>J<:ّp_Ry1MfҠ3G6z9ʫ>F({|fq}E_]mF0M*j?&tj,wIn:|p;sY|qس<:nN_p9Vk #gfT&_O'y`sbkr0�vvWUm[$/=PC;KX"T 9vږcyi+Ea{6~EP;T]'?G6:uUlΊS a</Xw@T6aG<j3G vcWUɡj}J7M>mm1 .P;y9mMv,cu,*/Ӊ5C@t4CUUs渲uE&GבiwN:)[^k 92ztGqWINq*|!]*ռ=qGQG{SGBty]Nj^W,hBt}GbEޘZmB?Qv:`:j65g)/5-q?Jw6zt xd;1BE̿C*?`Y/]{tJZ *O77i+~=gSq [;ysVӹ _⅃/V]%f[yǗʯs(TY=dOA7؂Ezm`O=tG)J\|:P\~9G'WXli>\DcvX " r)Q3Y?T;1|0\3Xlɪz0av,#&کs|GU1FzLA7'O`ѭ_]UJ:t\OSY ވ^av}j�۝O9UQXW}g,s0؃#7UeSy9ljU|a ,Or9=MA7xzNbG{bBgXVETqq\ٸSbCyXy`"\mUPjlE+n{GÆͣ}wЇSƋpJF6+:~r�ɾ:sddTta,.-W݋;%T[iz۩ i1#|lJt &*vAl:9x\WR7lB~ՔVqivbf|:["SKӔvS}_.`ѰQ.`^)+HcVbߙ>๓;NA7F2:TQ-l0Jͩ9΋I|3_;4xvU#G$=t[l%geq1c 5=Ŭ|U| S CmQ(:o<bo=;<e^_]U dPBG 0YЕVYev1l}~EvŔ`JW9ٖU^v8 Cj?֋9ƪI^q|+vcrF> 6b#/!</!Μ:k֫s\VmS mW(G;ʾ+#:JdTHW{wAư8WGy H?kVmͮQvNv5[eVxT|T߄-k ̱")rsh(K*ZV1ؼXD_b0�iw?;cUSŻwc+_Aڪ<` tH}oVq}=W#c3Եc6tHiWl|!W3ǕwȲZ eW>|?W|>fvv|jh@8^U_˅\Esh_KFh8.ElK*[V2mk|96밌c/?b3vů}0 TRad°.Td}UUremjjj=ƛnH?^ݺ]0R`WeMmUy<+_JwEr.'ue:g0 ENًbTUuT}'nUlenZՆ~V2{P)n;hJIq+1.S9TyؕÈ~OA7؊b6+(p!UcƲ~3b~j\.]c~?o0،>mͶקU}W˨]}WZ 2x/ke*HŭX2UЛ ޳Rf*.s"¼ B bj^]lnnKGW {=N_X|%1:y;J ,NF半{ʼG* ބ&xlG͕wیjcp 6jNٷE`neȱc`?V 6(#箯hgGlgUy)?2(j :ds KWxgU+1YMZ`6Vbcb~ae1`ZU0lAm<Ԝ( wbvæp,SމS0`/xޔUpG<oB/ٳHz^Q,~׾gΣC{{d)[PQOk3#ǰ*w<; U9Jl q՜F. ހY^=; hH<͑=a,|_]#Py A޼+>7x氪o3GYy:y^S [FWPUWg2侫T# }̗# G@>F* ވ#}dJ6)ue*/9HVLXbGݯv0 ,>7alU髫ũH5X6]2u<B7Izym5RnS_X'-lY×ZշBl=|r xgM^q*NU۝,CFuYZ7Ya{7*sWiuHj՗Ñr@@ae pk> 6NQhEڭ Үf<VʗRi^]칚~˃F'3_A;z!}(b_ U8Mb_2NJ+vO 6n0xԆҺ Rc}`snWXn-~ǝ籧W6߯nGn9-:rq]+EQz+م"q.s9BSGeZedչ!S'D'wrz bP1iS}#`,ǖ [ WUU; XrrQy_u֯kiFt+ʪ mE);XY`XSrϪ5b2od XGTNNkaNpΏ#WԻ={d;wBTLb C E&ڬ574bUqqBp�� �IDATʧ;xznn˪s9Ďt d?>O׍+s+hgF(r]ի={B]YήUv^uڪ48LoIU{P?z;B2Qc1!�J+sBtIc_[6e(M6+]`dW%q ߑ$,6{@Zk9~6ػx&F!/_bm^]'fza!QXn0؇flh+H KL]96+e\xwbl֮lhgG+;zU夃t,\5jxVÕ`L8QU=n<yel]m^mWXCUeUwSƜ>+ohh+B[%ŊԽ#1U9ߕ/Q]bWRd 6_Y4ǫa1;rc\1܏m.w{!*|IrRyw_:TTNB=++M[`PU6g;YY(b騶ayvtԧ[_տBuyuf3`pK_XuϽtu\; H W|9yS!yNog^*$`#NpDSi ~Lܪ<+r9w"Jb W1N y {[!-C"wA #$sVyp__b0�w{ ,FNh qUu\?[w~^k}o")uǪVdس+?Nñ [d8vb6+ WX۬_ ѸV ~Vr֦kWo `#?[x+yAڂ;"ghl˘͠١o\)bvSmNTq[mXU2uyU,֪o3C#T޻`Xj~t6tl,{#n mvMGXvU[%[vtˋ="tב_/%~QNpe_UaXL2t<Yk :iGD<G*]䳪9=JU^staڑ Nae+kc+cN>(7# 1C,#DF ^=nJT%[/R";0XI U4U+uP!ÝG. ބUp_G03%SF 6c1@Xd:L5x`"&C4+JK(.f+}]TEʷ[nS CmJ#`f9Yu;{;hПJ֠/?&OtʡG* v$S:݂,mշBU^̷SiyJ0b<NC TqvLLVVwS+2@!ǺwaVdbwf?`V(GNzSdQG=ۈHaAIܵ\!GD/k`3x~]Vb*Q[%liS'[i+:=PDOi.:ٵP#*tz%8q;#xT\s<LayWquԷ]O'[ ނJ1|0[ebݴXiJ}tp~seT`/TUշ/T?] hWdYn_U*^;u Kȯ{Mmxc2>w nA)bjܕ'*vΏ c->+iq;klg0$Na4O)sCx_b_*&J>L~wc+`>0Ro+b(-"՝|0R˕Up0g{MA7ʲq/'>ԑ7z6'刓d gWՖ}`T9M˵5L0= 解}J\C5֪rl w))rq`J̫M[EMUZ9TQps.bF_P1n^l4exEᵻU]*~Ghٶ+Ax8ّ}bqX,בJ7"+vt#9GԔ|){Eʝ9U4kX +wY咧2 5؏y:M@ܮPRc՜Y1W-Kٯk7F}Ra?6OQجD&5TQc ΑՑQA,?W ހJWw kc6]Rbw;U;s,¤nb@{it#þl~0^5fhS9sqyw牾T^n\6޵#=?& xfǺ**2\p1+iqU\5ʞրtl#vtC6M_GR]d-S<XsepsI>l۰=ț$޴bDM@;q u|)HbuKWg`?e@lUT?3fEXdJF0./'G*iVN� 蜗/KUy|^*@-s>^*=*#s (+-6ir,̉Jst}8\hTŚ짠lC+(ҪBR8~_0'WVfg`|"Hi#mΙq+"dmyX­W;&9@8MVl)G*c`?R7Ľ*R\apDW*«I*V|+Z!@g%(MϪq6؏̃+DT-~T.n%]^eR]y|?4x#0-s||;|ͩ#LCUy= iI*W\=PcS=ujJmhVT͋Q͛8+!W+n26+}H?j+r̜X~zӱ+rbTj<ڻ(ɣJىM6`1_G9Xlw;0`;f h1c0xG<oNp)Ub\>Xc)�p%תuy9ؚ~:` \V]}r�UQ"u3IP*T^nk>uQ[ˑH7!2mr.]㮕=UhW|b19ORѿ.`y0EŔ>7>qөmhGUNTEQ}Wws')^ V=ߩS)DZ9DzfcUqy1ƱtCY!0fl+=ƴVW#<p|rb:ITLJ^og`| j1cdVH_}q "ogk׊TYS �OU mػ-b+_q:?WIR$W}CHPWȁ:oU(tNAU͑m͊+-y|ֱ c6bf5-ǒ~(E`WxdtɁ6_85/WR"j}q֧: 6Õ%&8Շm.㶩qV( cX,j_<JD+_wrc[(g&8=R#tpTZ٫9Σ|#1±w0Cl*Abro#ˑ![6<ޑtmkE?g| c+ }rYDL(sTvݢ +v'/֧">3x&(r)]d٫U^Mr[]!;s+?+kC¶X`?^UGAl/A)vU屇gyu9eڭ[lAnZs\n;Ƕw[WE92U$)l;RRby[$q0vguwE b[:L0tsrq}+Vcs7]Շ+HJDzfd|!WFtN)5b9VDt KPۿ kut{Ź>yT9]?SIlcsHG0_ߪ9c 4Ch@8 !x.wsE;.J筴uH_ \)wзZ =L5EH <V~FaTEZY\ŨH;G6ە/3g)/^J>]1W*FK."?&-a"IbԜq+j,*`|"]3mlb fyUZsʁm�{Ñi̞a<`>ẃh*?H@]u_XGU\7袌\;s;z }}n쵬m޽DZgVʀJj8G|Uژ<S}Η[?ʓ&(}Z'p[w6cL 4^~%: |qU:1L$ QnP7{viYi;Xytl?`;tDnGݥ ̦q,A5٫<^*Jt})|M`d"^VUt>*U{5g یd- u7,5x:B=BnڠyLUVw=Vɬʵ;�k 8UQAE!hs>WXgdH~olT2"N[MG-⽓BΗ"@#*k0 vsU[u:"Ș*O<Uw(Qw}l,Yʊ D~N^*PM6+wSm_a*S; ;wx|^lCuhhuWWG7*u N҆c URsV>W ss[]Kf7lDWCtSw*ݥ2b_}ڗSuecٺʶkUofc.+7dΆ �}u)=J<Y<WrRXk~)`k[ի}vrP ,uQYUAPzv%O_GHȩ>?l#QjC}eR1~swVXJMS K ދjSFƮ.* 2qD ¯ֺsH`_'똂nU[}͙SrqPV"9QEcޟiyV%8}E?UkבI7"F&f̾"U=Pc>w(rz;5K;'O;,5x`9阏sN!w =1?0e(}+VށӅ >6[ƣTQy8iSC $NRی]ؚ!@UU,v+mƜ[~Z Wy0jc2;$T6lvhXl8bwb+`+}j�39/* WׇnaR~CԕB= 6NB;w29~YJt4}9ѕn,WvWlB:HbK|;Dٔ2E4,/G+|ytj_b0؀>h&j{>'1x֧c|ɑSy #&!6}UTs쎹ˎ9WU1oe|`?:dmdž~%<~D:̩3un2S?w1Yc"9 '{gX_~rpXVqqo$`#ܙCهw}\+;{%ʁKs5]VVlPC4J "zg^Nq 9F?lۚuAVB$#YT.)irX'`7Ri@"/I&p[͑XUt)h+h!;GP,XGx_W0`?p*Q3FmdTh;6(鐔*X9VG~\"o|}3<]ͪ?천ؑ Λ=\}V~0GJ(:싍>g{LJܝ{7skwaV6˜~M{gl<~gS*\cgKW!D?Y*ϒXG{/U=zi9}7nwc85l@E6^zY-sHQp9TRy9/5FAe,>V~DqR4M%.!8o'bn,c*}n:D8D)uq*21;U/r^ݻ\:yTHR5Wʾ*VѨ,#՜:6*JT:C8f av0؏&rECV hV$cV JY:"/fX$bfopW`9JXcvF]_Q>-T[ mP)?0dPXvvw![ S91[\l]::ʑ<u;ylyڜŪ6|UEU%̊i,!㫛1l vNQjn _yUN;8 0XPGW^I+y)_2VYv|jTW1#c`'i6S;C4 HGr^ɋfR8WyT[?FS ^Ƒ>\mC N+1 r >Gp$p #*#2ىƎT"2-}Wj[9+Rt`ƺbh?6—bHI#xfPwY8%uAmNa6۰؆r*Tҩbx Ѳ.W?r`_ݯus9pU@2_Qv󷚯8*MHJw6Gd8V!l*_ Τx0_5v0x>߳&+&AEj\yUV~\ʮZz?lA~v5U{SYUu|,8`"ԙYT@?#E.#%+* "a*vtSc<y>H]"p0|>~yPeb82+}=@FPnXɶLA7xL':Nb[bZ('{ܾUAYDpY HRa*/87Ri aTgmm>e* !J)_Kb~j,W 26g10v&\mq31_N_΋]Ue>l늶 p6Ǟ}UPp)XFs$d2?"4ȡ[ح Ut5ھj3|y"36=b"gK21;NNa6oQGo*B4T�;q+% C[!||)[_jF�{lSz7YAldD8[qpNelՙ7+_F3[tF<U&K*BtzXQw־CMbGڲbMu;5oOҪ–mBw;; WyUcY^"f7G Z{thmӈWq%Ī=N`VdUY9[>Gw웵_}j=F& ބyOGs~ECaʹ0Ju]V褊rY:9$ca=Z7;cbB VXacS\^lWY W]͋\s |` _+hٻm]C΃gՑaM,~*.nlHwe0؄*={3,gu .i;^!jXJM,Sn( ;oIMT�� �IDAT9WtI~ĶC4CH,/vUCD,�Wg]5ۂ[_CW}lnͮry2OvfS}bql_Ӎd܊=; jsWd65qc]^XݜWY_\<r5v0 v6UV :HKꌭ|se,+Dھ̟ ϫ?~~ώm~:Oc;ڲa>,j(շ|UW�K7"|+2b;sF\/Yռ~}E~0x~>Cow;Dwn*Gg0],<3MA7x =H_ZWq||z˺l zecLVPq+6W RG. 6gPgy mh)VVy8Ua>pV96aT*<VNQ*?N!rƲ؋aVn]e[ͣS ^aڻɽ6WEGWc$C8#O\\Oum及1RiF |HIi%FarߊrsTk_魜W 0ZXrjtVPWi*ߝ ݝwT!mljr{}6W66\p,:yd2Ad=kx*7+9]f/pel]Үҕyt+ T1>W<�K-~}MW Uy+gضJʗ#utmh ζ3:ۇYr=wT`ǡ/T"[u7''Vcz+<l{ݹ]m0ߗp͹K@h$}i>@S_+ v"Juh VYQr]#kS eϘ_2؂#}qG7b5+Rc}8=X&[XHݜ]ES ~ Ý콳{GW9"ѹyts|:Ki]TcwJR{NL9zHY-NPex:;]9*b%rX)[pO}PXi%*-Kʫ`U!fD\ADZ\IK�yl;g:;*Gb1JXz*WcWiN1b`w%'qt3^#>pDEڐU쿣�<T]d\EUl\m>k+})ڪBΎ~,\0 ;C͆=uk6lܿlؙ5@mbzrTֵlF=ڔgjXjg<[N%G4]bQdX>a|GAVԡw�q|mS Hڱ׵%&y|EN1_ouEU6VT$|<q?+iRsŻ[ЍL|i(ªJ/u #-5V~V~\Unl~0 >7'Gu0*]T~m ^5mk�#QQŏ}S �5HE+y\2T[W/tMFE[^(!I QRr9;./cn}#o�JU9͔ﻅ bH~h]:QKQtla`WTW;/WT;Dt);$|ꯛD#})T@Em 6Tgx:\^p[:NY>Lx\rT~BwS9cj$`\mͅn#H9{<<ڦCG*S7)0`N)mB4UUDj+})bx|9[KrVtpgjG7m݂P὎/+QcO!Gg]I?$J6&3j)hFm1*>:Pىqyqxv>36nnS=]=8SJKFEBZQfCRDwXXw}#q?o,F**B{շ %BFNbr~X Pdmc5i&}W۸mc,EjZ{,>j"M0`'mkڄ-:w#fUΌh^J]ZOA7؆Zm~]+̨HmJk86bfPŖ٪#g7#̎6d[\`򹰲MJ>fW>9rvNiHzn_7yHK0`%;㛽#y2J+]E4ݼ:E)b"_coS ^B~-m-Z.E 1f_U1]qRT,vjRÃ=+D<o!][UjU}!Ѣ?yec<騩9vڦ J |<Dx`v]U6(ZGUAvv**tJUEw)l^;e.<35Ŋ8VV:g-fs 6@UǾJ8qlÕȾ]Η F>yl;ˏgd`y<=rC4 CƆ}u RdrY#)PzmWǯrJ?<c^_<qJIT)TƠ/e\=l#/V6Wvn[WPye] 5G,zxgʷ(pS>"NPLkqw֑>}U~OvۑKAqΏ1lnζ^QJjK19׳7^*`誾~wmU3_jN՗`*m~ݍy|Y~ngU5H,hiݨNhJ{uXl`*-ՙGWU32yX?n2pk+]4;Nct5BiE):s]7ľ `n#o۴j+r bie"LY`Wha%/=:_+=_>ҺV汒g;Z:dklumܱ0-sf!Śjٰ]l$-)UAVSm0؀>VܴWs|9 Vy1Rq/pwf]nj:L5؍r'wxzf$sW9Z!WT2*rd ˳1`PT[3y*jBQ9 0ޭƹ#f}I%P[WtOo�ia1XgY ɳ8Wڝ,7FG?E(-پu=\TJu s˶1"΁rgsn J'Wrwg>fۼvX5#Ѯ**Wǻo"ۣlQdǸ cp�zԪbٹBG{ czuG/Wg}F)֞ng<[jx|wo}%5{;_Jub3Gs8kc `Z%=+A1JX]80ex g+c* 6|U[]-:BWʙQB1<t#qUppw@Jo6ESmBsGiĦT<;m0NqV!F(qzEDh_*V'uZB\3D=kw1,>:G2 �WDt^l*?nlKi(FffN;X?Yq­b`9vԝWIЮ*.v 6|['ώjT9u  W6w Xc)L|E2Neq+ߊ;R*x$`3y6:;ƪ1UQcݖj�WAźC,?;Sa\* y�)֊L+8,*bbs䉾/gX^lCjݹ_w;Ujg U`aWT)ZYt4V8|`n:Ѱg6'P;utN$Xic죟e8j�ݦ\!Y?8jj /WwΗwMA7x mlWYdȪP* `*pwcCnl HGgED xvzm5[GUZ;D.ɫ 暋:\ŠX`;Ќt:cٻ rcVBQsZ%~3Wx|u)>n{vj۪+ۺz{e/م: [ʫSЩD͑q?ڬ`Ebml|T!|CQ~m'U'3A )V!}rGMF<ŠIyk_ju J ݡ*BEaU1Y cĹ0vUT1pg>&.`~H|:yblWD^WzIrfyVWf5+; wV'>VAm8E:L<:9C wɴKZc`"x~ٳ|(?|e>;9xU#P=Չb?ڻ:jlW]7V5]<q<\Ν5rywr81<aGDP:=^?>MJUUXWalFŭ|n ~:7tV_U >l3>͍nj^gUa^=ڬ_ѧ#PdŶ,ngn:ČX|;^q87oE^`+_9U\E�#.9t6f8l*vht.W$z 9/TCm/u~l]ں9WE N+f|_srd~3lDkW-MH*{֋S}o܁jBCy^&a;Pxswx�8"@e! 8`L-9yTy*;E49hla?_;|*<;y=(� H |`'*`\!!f$q"!sPU~ү#NAVĿ:ٖx~?GhQq3 V7scOp V:iwx5` ,\gJC1R%{~Q1Yjʯ!,gcՑ]=} [CW|cx6FG<Ǿ!p"@ ۂzmi6wU 3"3N[T P3uԑ#@W(u刣is,[Y"WE,777`N ֮|uh[\]Qdy2ѡU{;'|8k8~0�lVbe,ڹb*n S;y)zS6N|_QgqRd0vҞ9s?RN]Y+{sELGELw7)tv V (F 8C ǫʼؕS+1=c4&;w1cUcoW(PEl|\*^ڦZ 6Vl`*4T'lm6yU)jCQZ+H=|){7}otm|w:qqTW5sF*Nյc:6C)UwGy0؄|fPs)ύq~e,.:cWrgVH^}W9r7v)rGDqr[<(-k x^%Gfl<[;G9/7|>}F 涳]ي+2}w/2/jnOW7⌈㑔V`e[dv|6uㆾӆ}nQ|'yx'I2U7" ?؋]o$LEh5c;$}3sYJ7f:7A l n%c"۾n7_Ո?mObV_R{/qoȫ KT?�l }qq_7q~qv}x*vNgzWum{Nnfw???\cTYM:6]߯ݙgwqZ$~"uֵg>_zs7;#Gq; h%yem*>܏k۸Wv+V⽓*]kEsۻ?8m{sB_I]ѱI$c][&?#wm>�8<W׮cqV}c?sק'g/ƿ&y]s |Q;su686߫/?7~/~7 1_#}HnLT_Q_iKu BoDJ1wꁤ~Ef#ߋ+Ea1"~?"6l9ㅿz&sUvl~qwͬΟkeßxƆ+sn*yRrwWY_3~# `*~7~?7>)BbzK/8rTtq'v'M 3#HFP4/44?c0x_~"te*&fwk/gʫk?'^ď{(AxsAx]5G<k;"<MTJ2ۙ/:N]OӇceT`1}~#}(M>^!45<9"0{7w^0 P{6A);Ef/is¦3˶+l~<+1յ[[f$ϯ{=7t_轉U_~+mqUt(և)^Mqg\xߙWe1=8GJqlUn8|UsĜ9<P$Ħt#8u_ c9 /E++X*\ LS$<Xerrvkmպ`m 26D;_}k>ƣr_H)WtU`ݙGgkt`XHE{v$2ȑ4CC^n` Ute+dMa0 KNw};fXY5Xd0c|<5\VޭcëSk0O*-tgGfd]Lym]w)ߑ*=.W c0؇TTbcp|uxAvblCU_uL I +BA9 o:kS+90ۻs wGTB O:ۚpL#f;ӌ<̵bg|UTqٲc,V >˜f.Py#GGxA+dmf0؄y3;y\v(]}V: Įw}XaaoK +yƅ||4@s(3P¼Xh]>U..W׉;HHnں._`Www",Ȉ0`#ND賝O�;֧ں^ʯ˿bkk֋ٸ;yg0U;"F}AԔAE<J8 FR(6j"1j F+ Cɤ>qGtw H_%;sdЕ],&㿝*|�3l� *�� �IDAT`B$g b{2A; W嵲^̟c?r5/`=(poڅ-U:X5&t\4Ī//*>WU2#+b}SUڻy99D sQ>'H4G26LpS<` w;q;%r?똧j1b>6'Wy+[x7t>v~,ѩ:7W8)M)p\bSfqߊ:#BLG`V}J*6|α`Zׇt� jF<Ns߁n;TL 0(_l}g~/Wxgk:\fyUkϾ? ]!!{Lݳ:]_,ϕX`qڕ ]hTRIv;98,n5@$Nn :Gpj]Ä=ajlU\R@h8bstگ̱Y{ņQeqU< {##w5lUB]FRt{vezWƲ<WUjs4u_]|X&Ȃ}g;2ewI5 D&M1̀6"MP;+B*a쪸pqU_5&vUjV\w}Ww4hEs0(};Vx 6ĹfS=`"i7f`g/:#s#v 3N!jsvDQf'GOsv?!Nx^)plGfur;\}*>eW S V �;{G]Ľ]}c 894ߨ xu4U2@<Th{pO/\^)XQIU|5/ AI[SsgMҘ#Z:EO#!pF<[j=X[ab`+PR`,<to"|ѕ+0}{\-N3`W}Dr`teu c0؇k;w1;ߊ�ݺd Vx$LV 6N#.Su2bTE 氓I_;[wSJ7tw;zix>զd%bCKU\\L8_s4}8$TPU)UǮM+xWTW2lu՜|ܼCJ!15 UxT}U+EP+`L/1n[w,7u8/9`mA.!ZUNCE|9Y:EJS\]cW| {G"Hm}sEZؽ+T±Nk9ʛs>Nh"}P "_|V*ڜ}GeFy?3kΣbOz"].<<!gVg;Ř_WB>gc^Ou0#d0x/*qHCrwPWY,׮\D] "!;:*gyEt;y2nLyn/`p_n{fʎ-DZWtںsa@8G ދ;6({Ur̳n</JOV̑`WQkr&Rˣ.an._x7`+x-Or }?_9s!.1gԽw=^ne"p0؃k#(R b1_MX6Wr9#mjul y;c(FԻf/1s;I˦c_̓VәO7ȸ.+';;"<t:|u~6ǡqugVT2(`LW{,ayj=\<}8sK&j2hb`E|-1ߑ:yۨKT pxw'u}V>+qhíwW̋cU uܙ")]NS`.uET  SH5Il"DscY,.W93{FݼҸ#o\!1>^oW};crlӕl, +k|u֤b,5+ ɝ* >?tJ}E<`O7ks]+_A}�X~c<:Zͱk`?*yyvhpl([7ˡwd{D<Fnv};@ΊIouw/,S)׃د&z0Vcu`{Wn0Xs;UXb&Bc/PU~̖Vd2 N*,˹$,c=#DG*n^ Wy?i3EBڊ$/٭vM<;0_#f#0.|*Vc:S2cdǨZ󿡻Â) psy [Er7AvtLBM}Mb {Q,1-Vvdם^ɋɌG;!ۤHr0x ?tvrBUt dZe2ƎN݉:'7Hb`>VOx1 bJO�8RocZ,Eկځ>R_,[Ksv GZ.laQ;+\+;Ґ1; AXDpRQCVwz<Ca0 ݉rv,Rw2agmRqQYj=N Vo"귔٩Riޮ43X̾3nA8=b;_jj.v~h3oVvD7ny⸢ʋٮ1~W,gň_ێمHё`.7lGtXa%c]B9?v匶**mw`p}~K+;vvUqן!ڑthR6[ βy`c?=n] cCZ.ƪqq:sTm+"}Lc!jHm0؅~wYɵU݂ }cnl7N~A: $ǻX#W8_|jN+  !bڪiD*ΜYGCI:xdЊlbE}UN(˶jm˙Ԭ~KZC\cgovverh8.=0ScSv{eV]y#w0}s]ұewH90rEt:^e_U^j~lpOLntHJO֑ hߑJw`<<U^I'Fv5 [tZe?0]2jccy1Q,_͋`pBW ʮ[-/[̩SK\}G;V`㺒c_.F0;Y,u7Fl9LjoP"xXZeֶhTp;9*+|85缌T KQ;wg2+ |0yTVKI!t;+S|N0DZ:-^[Z>UQW9eb8bvst0x$m(s*;CzH$dybUQ?ݼ̱~gUg7dy`/EoFݑlWtt|îmJt9_* K}y=9Ny؍;Oɯ`;Ҫ*_ɮ�έd,J V8$5xLՊuLvUɬVQũ-eLZ:9!`pٷbv7.eWIέ$n\-cT{W_5w0x WvX!$T`gLEn}|\=;D x_P-yVwdUgɫ.+[^0N1`pBvLftC0^XxH;ˮ̞ sίk5*<`;[+j7wI+E9Cg\Od$W=Gs5D5xplvz 1#:+Yî]&u8U_4m+jrk2ǿ}c;_1_.o9"L7b4Xn'*̰-ǭȵ/g0v<*A)QG<.*v[GULyy9G"77"-< 0$L*:.U^ɤaڪ9Vz.3v (B\j÷ٺ8+P" mwr\ܮ_7`] hw\[已S';dbtvH}eM:"#GZlܐ`'ԁ^_ёG̶_=cmvsǦ.T\˹m0x=QGa~Np?H\տág~ا~Bmja�pL My[�^= d}wʗFdwdHMa0؉cmbbA4˹G:,r`V2U٭α>FW ^3=iscݸU__?G1_qplWa~U,G7/wWg.{P:OҏI:;^3"SvdEGȔ9R v{@;VъTWsޕWgM\_7o6 Vo؏lq q,KĦjlXl^U){d!H&?5ȕQ|wVvrWsaX]͑qk5D.I;Hˆ XF~g3;rR23W̫bު c  [.VU b M}mGEA#=sq9pZ CLyw*V-~]L<A ޅb-XFؗ+_+L|9f`9=7ɋUyS0S3=6t'tLDpֈлS`uw*j"#ۿcJ}'%G3Ml9W9籣>|# \mb~};{"LEΉ٬9* yE% |0xݪhxՎ;[dd_"ry9f`f}w|t^c]xVgmvmٚSe:F)7pøa x xx0!RI,$ʘ*hgk13:W(nΜ3fssLWdBU%Yv?i|_ٽ `kmYi1XU[mCvj}Z%}u8�[}S9v]b5v-s~W=L'j=#xLW>IŎ|1ro=fz;kN su{ Z>Յ{;~tי.^#M4xX @SJiU{TvR*ګ3`JWu=b$j\*m]Q=~-+-h^ŵ Ćq; ^#ݾu=e:3Cӥ*_>8j|qqM4x/TD7nڗJWi9]TՁ Fy֒t#>Ef-ie Y v*͞j؉J:VcUDƪb lw1{SٚZ_ VuvbD& uwt,Y A;NNu~k0؃U ~u| g)+M)A ޅNwE3lu'tWپ+Wcd~*`_%MG$Z#>\c?z؏s:kϟaSsLf1i~^c:x0V2ѸUbrT&2ӑALq]LɞcŒ{CVw x47^vYb_'9=e2ݱ ڮ|0|!ىň߉}w0OwÛ#ǿaߴKvʬ>n{QM4p-wkNS|,++$}FGZĐ}p>.<ݳZ_e'۱a|uyV]+пd؞ &;܏hܜ:T&Gpӑ5dLï| "+L^8TByt�.V[;FP5fzLs*;~Z):ZCUe.cX,ű`p=ʊNzOHz4uʒ:谞E溏u0xAYqwX Ң݉es>f)x~̎+M#Uv aƝA:ՕW~=N]3k^>j(kp_B5L+ Dv'CAW>=+Pu[8V?n䳭`/TyVjHCZuWbrvRH#z|_!S;p+LbZ#~We;XjÆG+^ݸ+ kLv0㗢Ddw7\ҿ1?_��VHq<-f#˱uWTk !<!֯ Lֵ;,]VTcTT~^ŵJwg T;kz<2 \3=XhO`v:a.c?&ST>lL7p=njU[<ƞcM4N(ˮ_=190Wi*#|ua2; p8E8GZ՞s^!BTĦֵje^%v 'GCNw@n3uWVqojkaReb @RGڹ^e #9vA욲kIv6d쒽t(玟h[9Q;ɢ*plkavc\!ny^a*(a&F h|^]mvlR1jwt9:LbsL`o?%Npe;׎L'8Vv6r~\#%�B4l+*vr,gY=1P#! 2^]'Eʐ׊ގU*joegIV>,옕]_R:?@^ُJ^XordpQ7W}%p`U ~]`窕r]V'Hѐ#zl:s<5x7xj|ḁza*'[e,˱ wG<~|o[GvaV2dNMp#s)$muHݽJV<FV73= AːJw&0{ݹt>8]ίy8:$O:@7r`7�>`{UTU{uֲuA+}c骯Xӏ_a?w0X)t?zkat/S]Q=֕Cl ʯ`/6nW|AdW-l1;vq(=So|G�U87* Yqg CkƐj Uve._]WwL`_wN Ʈ滾JWR;�ky媒wɤkv1`/TS6yd]Vb�NF:nKwHNшJ` TqU-ˏcA ]9fYio/~nXJE4 w,aݾ+ݮBU~[.ɪԁA֔<,4\S<T_�� �IDAT`AW+[j2Rt]mPw;'L2`!$Q ! Ȝ.c2{Hvܞ9Կwc~5!߮=)cx֑+j >VWK: *Uƹn�!eĦZcNE*Nk6Mt|;T Y v߭+{nÁ mf9?9*yJU:x(USW2Y䊇<EU{bx9_l{p`4zZzQNEwPt+[#7f"og r3ϱz~@$܀`t($޽dG'T˦R{V[ V;[eUvcf _28Tl2JHs>@8.XާEtP >'XSG�V-AS;-t^賊3]<J>8ߏmNJW:׻WeUXiѺ-kV3Ό.ceݝ;3 Kɻ Zփ:) 3eIבU(2G;nV& ll=kpq {!UQʾ"_"hu1ڮtע!d0ue*ZXyזuX%ȵ{TÙ}#9Vbz+\ex (:^SP:,t{}dz;.Rc )y0a>WiP]{̾kIvWtІ`9 މ\dU1":EJqQ,V8Yfzgv< ݉RXR~KQܡ:Ud[bc&C9̡ј :tJy@Պ0*?L^{s}U>K1wkn vN(\^ӕ,BӱTv+SXka^;c]|yfsǮ+Q~L{ s_[%{tt弄s>`}89 ރT2ae;|EtW]^U^pAG+v*]lx4} Q ރ\@]Vɟz? ]/M6:٦Xe*:Wctr*+`N7#:~0ֹ^LIn(+Y(A9ʶӣ|=Y &Uˀs+IGW*~Eb]=]beMi\Nz se (͕lV/w.F\s6_U6 ;Q"x2z,pQeb5ŝ)~ǽUl3;ޠ *!Up͵+\s{"µA//Nא  v@_F!Qecb:.C/_)yJ;T,[==Z]7Va-Ęqq(fk!*]1}PPLG<NWOn 91.v|b{#ɜ_T{JYG3[{Ȗz0\hU띾gU&Pٹ]SZUw[ljKܩ?tfgjo֔Gl_7{#8xH^UZ,W<G7%5*l"'gY_wbБkg޼- ތ+UZ X]Xٌ1UlQy5&u ] E\f"Uv^{U`ew2:`{Xe6 \we|j\.9CWN83ObjG|V += )2h"_̇Nna%Vpb`_{C̊<v2+Rl3?ϩGZ::,X}P>^i_ y̒y5Qma:_%nkSyů$}UD]Y{~&`(;@p2@J/]&쬰LWVןa2NV=֫*QD6KW=tZEpjv-s0؋UneͿTw1WU~vsD}c,7l*,<[oTkQg\JFNJi_q~*;a:_1ҕ VQ;tu?skPgu`Oz\]9U-**:VׄV6tڛiUK U;w@kLv0xEZgkП#x ]V '`Ne?Uv'׉ uXscV8׿CWL 2UWs'sϹC=eăc4.kvB;BG>`r^-,UPWsWH"D.TK=K X o+t 8e%[9t ä険k̶{z~ί }:k p''a@sQ"+w,9eYh{0V*DݲHK‘TuFZ+^mPF<bZnx0>5Dm"ɥ!cFsAd\ŤOte'0zAϿ:̱ZNJ |Eߊ ! ez^nUsM#}V av:$UQjTL?ήW"(_# XS ^l؞x}+pLXIY9`TTLWY+8`n0Xaoa>1l2e3]d9>]{ԩpن9s;-`? bEE@RY%9g".N'>9u(+1S߯ӝM8_;z/RR^Sι5pպںy0XwvG݉b5 BȪlQY ǾLe'zc*>w6JޅdU]aдH�V=bl/zv]*rtdҒ_= 몈g=P_iW JYj]^PWt.3vB[署AϿ!\%(=ׯufM׏Ul@vUnk_>+?&ÜjI̻cٌ2WZ REeqxݍz іŃ\!QιXIj>.٪2 ]a?KVUӒP~0[|='ȕ͹tUkJ#[}ߏ' W6u(yvv}` x퐁ڛjz*`LJ3`ݘWt/]fnct(=iѾj2Y6lW>tt|'~KG5뗢FfYs?>;?.(~'d( <v~UJv0x򛸚ЫdL)3Y!L%Efg/+wW=<{Xȇ*Wt]Q vЭ UjVL~?7|ZC49>s>WO"N28vI*::q]UKv>T{+Y}F}򹚠I,H%cRT;ӣZÜkuX<UWuʰ`#‚ab%u.d~yp[1h92TXy07zn,ءRʗzOC"w:~}p'AUvuuxKVt}]=V5f]\yn{l8gN''|WTXܷ_9lQƱ |^SJW6.Q(VQ{n҉̝U~w+Y;4v9 Vf]W6TdJpW,"wq1X5mX){&Glo~WbWZ>o0o?F,0TakL-'d#y&"Vvٚ=$4x?TvȤC$ΎX~w%'WZy187B"ˮi?+ {[S11P+g1\/E~z>CPCTS׬IfI՟P1{A]]+ksܹ%#03br0+["- 13*5 5xuU4 ;Kì.{6α J70cUwqbdj0X(^7>d\udnןSYsGp]AUPlհ`XV-*:;~fξN{%-Y cDy}v?`m0؄)ޮ&}xaj+9WW[1_B1V`pl:C:^VX4UOЉSE<XAl8*R`UFr%"_0V6bQmg$}Nr)ioK+V4zqMaq.?x8ը۪f:;c`rL= ?{p{ij I:cO9Nmw/*N*#%{5f d;vub1 {Q.Ѱy*Wژ_]B8DU1{+ }^m{pSq3];,`Qy_+9wT6k]&u.NצuYbe[m;acL]50`>j6Ue#N8VQeTsu q|Gu+CХd Y:\GNHEDt3hʫq,5++q fAd;dUbs$U~Z `^ub]i+-[VsllaSgug͔>R6}\w5SΎ* 6dqC\W_׊_j}0؏UY-2lU~u|qvڎ rW(sg6|\}X1 n cV0C( p.{0WXv#dPw:u>¿*]�Ul2wG M !ƌ8}\>TuansI!1:Vs/gKԉU-{>u9םU+` �]DiE's+9&YgǮ}ptʺLP52*;\u@dNVIvՎ\?hqN>N`#}X1VLȨUTپsb~pϯC]U*L2 6rwp8Qơp ŒWtW~9Tv*8 V-~I}+tutW<ftTJ#q<t{6>ȵZG/09X!0Ub+ۨɑY%_WVdbgԚZGhUtb Uq3fWRuXvtUqn{07J"\ hoE]N7ƈg׋d{8(]NzL@/ mO:UƬua{+~WfZ X7zsj]fPulfS~b{|k _R;='Lgt3_}kr59St1{.q*lkg!WIkNׯE`3\QU\wWu'VVJtwg:./E0GGr?b\Z#?qGd$Y:ɲGM*+2ܯn.*t~^}Ϲ8V`x+^MekrgQhj0L׏qUlY Wn}L'׭UftbS1tN=A7丙~,e?UD=;Y!FbFerۧ(6X) {i aV?_;Rޓt̹҂U{U[]vݘ +#ry>qor]Ʃc#yNhcTY.c0x/* 2^mH]Ѽ/Fj06c ؾ;$? 8+_ʢ|8]qŖ+sYw~;rv2|C v\╽]΀{.;^ջ(;ʯ` wPk=WC:8f:j_m+X-ݝLW_NY'Q(׉ 8'5hLcq5@źXܭ^WDbŨ|oe7#^ynYFTzX~fsqyx&<&`0GLw%z]񫻦bb\0jNs2̇`#8.^Zs{z a[_mەtWS \F7:8gtc}O'З WX0;9Ɋ3zv}J]pInŒUB#uf�_]ӽW]dq QwbEUyRiyb61)Q0X^c.WKQ؛'|lgp5>U\N߃ os.vbkDuˡNfa,>s$CZUڕl~dy#2.nEjʯ._ճwӭ`"X?Pn _y Ht2TƺeL`LcFW~a,`XܑE\U/2:U\*T`AwZt7v9dVAn^tHVI+u7tU̯.c/`v\{`#X񬊮 XVŗbr8UnG<gc.Ӯ2V`b{Y{"`ߟ\n]clN3ݴH~>"~|c'w`X#։#1[l W*vT*b%Rvg0w¹|SJfE:>{e&UihC3X{W-b}T=]]Q>JW٩]Vi<̳eӱ섑 tVsn/TW.:]'*NQ?d֭:+lO; Wٯtvؾ.oeٮ BK-#x“#Ώz#01=Q8)טtۅE`,i8Q~ʻ٪:瘮*S=灺ОVr.`#az}]:yVYk}ENMJu1jr~ȹi Y|UԱ2ۃ*~)JDzm_P.̯ 110Alx9{HHTpfuɮiGWׯdpB_f`^�sW>a5cA]̵*^\ѱAlK O"Zrsy]_uU,w18I8j3fCY.5#+->VFe#fO:sؼGLas ]m\7P(uh=Ueum~=UUރ]\K1v܁ūans SdybXP8Z VOp4%?{ȡ"/|/߻W. i)_UNkC. rXsL[sRdmn%aNʦlɪ7\-yͨ}YM*]e3Kǹ�� �IDAT%a:йZ3#}"I. 0ʖ"YWʺZMFe{0 <U1;J?(D<Ij#Uf9TO˵mbxwezU<?tTgNot;Xsd#euuShZO,aa`?rb1BQ]2jWEYj)Vt萩+L~50. �,SW=+ {F~B;~5}/.]8 V[..lJ3L6ݾA%gVYZg#}!u=@-ɕ (젼C4oGī; d:s 6CK`JȳVQeؾ¹PwgtaT=aU|y".$]u2g5 { ?L(eq/%}<ҧ_=8,khUϫA_OI]hŏCW`cWIZeTe*vql;b:U4L5?SBng=pŜj="84W1+vDp6.TYv3_%Fw"1umeq  u?eW>R)_mg0)iӘe:J[1*1;t+=TC\OseM/sԵ[1DcG2O=NP}%hs0Uޯᡣ<r[g"tNq5f~h$<bUTW䝭39*N{  {0[(V超̯.;vbv + Wvp%[W9l0s$D@uG`1Eu r*ʦ3=LȮ`0k#{;;U; Sj0،wk� }@J;f띶bI(VUr/~U5a2h+Ş`p7S?@;"9Wv.kTsy[s69; 2?xU9׻+:U>w| 2i%U;v癨n0 ,5V "[&.{07W2;]m;Vrz]|:ؘUV2ήMeĤ&p5\{խu ރas"+SEg%n[g1gbVj`&dfU++ڙU& f1vb?[~r2A<`c~;]+kLLeo}Mp{M079`DQWUTYZM:W ӁLב| *,.+Wt_:JǖeTvFhUXZ1#aRg`ovWeU{Ýôwߨ|n~Y] +7;®"J[3+"yvȴ'ʞT2l�_tqN>L{�Y'[/+Pf6bb^W{+;] VKQT6C(QtL`6Nf"]P9Ecba%# |l;Yj:N-"lF.ݢa˥[+;0cg5Z<byTki*tO vO"N}m뾱^u\|WxLtSHr#`uZQqw0lW7Ƚ"0W0lg?:q0_qtQV)~g]a,Ϲި*}GJ͕bN=cX*s;-cu80TŸʯ5ƯW_7C&>Gص >!CT5ƚҕqn0xŪlhUNG7[!mslWbTq]k0،vZ[(.hqX}sGxԏ^܏8ؚev~$Wc#*U.fJǫٔYuH5*KX¢Jh9q0(҅2L"4E76VEzִN7� "Q,N~e +;Q ѭ*;*F2W)XU|AyWM6y0Xn}dҩU2XUlqT 1v:"qx</e-h{0؏VJ6zQm# "xL2EݦtuZ4ƝgUlM4x2NjWXFi:qcÐG_*<vWV++&wluV1؎_\U`dɹ~/ȸK.F'|{b VpU>^9ʇgs1Lrn l_% (Ud"0Y")[3,`O:� xcBunN`sps͈rĢl9qC;zL=/b 6"\Zb׻٭m?u_lV̀*֩jE`И<ƈV<,5rو_aVdV,{}|ƈ~s.BunzrwI]ѣ>'Ӂkcio;0WJ sttkz]eeǤg0]UOA}[aN*/E{vsh?{+q}Cbǘe09> \lwj�#`0U*A'ԻWU+c68bb:XryCWՒ;lD.: #|WغU5iMH;1J+&]eˆS' V㛔ߴ|nτz "Wv2wNEl.q.#}"3*]{ mҏu8n#-?Qud טOl\rG7iq'_)ltLKrN=|Q;RRXc.`p2>x82qoqAǮ 2;[Q{D:Ƶ]Ϝ|+>`/zqTslCupNЙ sj|֫֨[hǪ`  KE:+u9;몚։I i:tpU~_3X$OyLZWUVq?sC98GЭd\]Ն `?=حwʺ2u}ā~)Nn}יuNLMl+JRYjb(B5 l]VeukJEpl8p`p_!bgsgԺcN]* Wvݾ2y,{ؽz|>SɊ.t2tW~gp�^g\kVU gdE0; tqz{w)"YfƜR!(]W1&ĸTxTbNߣt[BWZѥP ht;J`p*[t-KT0ί ͵^ʯ ׊\d~1[xy0،O ruc|_5Et?"RlݵlݶJ]=l ]]xwTFUz׷sA }Q #߉QԑWkN pn`tKKP69`)R7 לW# r2u)2} 6H_`+Q9{Cݬ1`N-3b6:Wt{jϿEeAV':~u2Jeobϵ\Ht|s|e[˺N {HLHC*IuW~ZC]_�5mI!ȕͩtwה.e;7^f׳Ifjktwtj**]&\CzWt)47vkjbc~3?ׇu8.fۊ7S"՜+,pD֑{HKW!@\9|窓  n"Mکۣ pץ�յژmkJbwjM;!N Od\*؛Vk>g=|R>e%s+>>C=uKrpU=\[1fvi^A kUr?/\g),1+Uvb(z\V-Cj +Dq<"W~VOoڸûˇOo|_`?:~O7U:}}C}Ň6MoU'?m']d)X%{UO4(GĿD_~DοF?~\)KkoU "{鮮w~ LV_EO#oxz%bwo?Kʺ+׻J/K:xo~uߑ8W_wLVu8sOg[7{Q$q!.%Rn2x<]<xoaԺzf 'BTJϺ_%#wwߕGo\gl|jgAJf fGy3~m~_E<~۳J+>+:Vw|zQ1Xr8O >m357:*ǧ׍b>eW~ {շ;^;qaO?(aOg%Cs&yeW?ůt+٧y;~v "tdI]r|9~rߏO,G勞l/s?tYvVſMĿ"uտq=WXJ$#xzAxD|tw[IUKu9}y_[]uSʳz];M6~/ ouq,宥8zV༏tzB4h. vǟOvğ n/N㘫n]bz:tZ {}';gvG| ;D!#R`#kX}(Adl <W̳1::fv`?i|XÌ;˲yyQ]Q1WFcr+k8Fĵ<_<=l,DJd?zg }vsVa/* s[+:76ĬnǴ@y+P=JI;NYS1vz'Gguwn0؋\#X6Iɥ~+wWveTkt{!Q|_Y;) +(ϨKpp-Hd$Ft΁np|HRcrVUDhQ9*wN*`#i`Ǯeܫ$yGkC7Qd!VļrPt3yK̝S*:P AJW؏:\U>YS~(_:~NGs3c\[j99dwU/zן9ݑUzb1uzEAʎ22yjUneyCRJ_Gg=>֪_BH o:Z5< 0Q wzʇ11>+fJLGLouHB 6fswF}\9 uF;WXEQ)_b TdbVaW!Aݛe_]sϗ&2)@R:Jcsʎ+C.[ST1=Uҩ>Ww\6jtzꕮzX>g'GXLϱү|ܡk\˲B=\RIܭ&Ul="@e"`#vB ](s/jٸ3~?{:^v3 IYq'7!Uݿuc]{X:MT꫘Y|(:v*2fmIӇi*_xFEZ*cGn/teX9̹gR5@f >`ÚڣlꙪnFo3Xuf>@7؂#_1wzUӫTGNq.3EgƊD5# ރ*$A-o|/�UanKxuDsDlc&+): ӦzRϠheR_Y;:K7o Kj}}Sb}֕{s^U`>`{sl]}s&&^d[wͅ[!ӎm֪8oBb(w_~wpAWk7Wj٫IlnpC{AOmPC= P~a<l}4cq0TvO+ N[t;돺=Kh+3]j"!eP w~*۪X}&8rJOw@=CԩbW84RugyG<I΁n  [ñk;:~SaVeUYġdXl9﫳 B\ZxG٪&UraTd|C]%ɭv\+j0؈GTD\9?LgF<D?g!)#Lk}t[p}Fjtl uv f-_'FgjU<Vù7}ȭR+k1tۨ #Hi8y"LןtkC#Fh7 3U*NYw=ԡlbRus5z{v<V {=́np5U{kםNJGp]U:Q\m\)w:4CUUۡUmW'Sy%S8:UHޑRv2dRg+e՜>Cٙu؇~H#SF4U7ɮ@7؃jJO#=ӥJ'"}Iut1qQ}{twd U1#+XlW8]rDNȩC>R"̮okt=5K96| ru6>叺7^IgE,7VZ_iT =[svbk_UߒVqcJ^iX#^[vd|{iܻ$ #S%4W}ʊ.Ec)8FCOuvBݡ٩tw}=מ+Vl}́nz}`!G/ӏf/L{wbtz%RT*E4I5g] W!&Eԝ8Qva\w `Jc1yeRs8gwbT̫XAIwaDn8mV yz[ѕ4|q{~ugckE%Iy\?tM4؋|T;&^m1%BX%a|Q6v|zF(`VO11`e+v2+Xlz:k+{1`}z};\;8:=@/\w󣻦ry~6{A&;+e7-^ipyUBpa[t<^b3 [䂬##xUO3Qщ4U=8>�� �IDATE8j3}`T-=\RvjuRufۏT~COc}"\d>P+2sr{=`-yUZG#e$\!pDH{r|"`2zw`rWwt1][, \:>8"$W0Aw:o|t\re\3*Ձ+^'_U|Y~_Uz*UdQqmϪg#|v{Yl? CM՛(]ʟNl_e݊:e0؀0+,S{pAٜ݊[Sr*#;Vd -vZ[` fv 9ڣ9HT>WMwcb~)>6U{dپ È$]£/JL݀. GCE]_scHjd&ɇ\;iP\31n+U)Җ=wuG?)bi1nx�^N\=q %'Bv1;Us%Uo'Q<7}P-j ggzTtWw)@;Χ,*],=4g;CX`R#^L ^'fW:iUד9 n뱪U]esWRR#| k"bUo:׫~CM4xwmPP6;Sv { D8|{gQfuvպ3Tވ:M+{h _/iu埿9 Lױ^+=ȸȳ'c:Uz_ͳ8etFGQ/ K:\N+:̎5Et 悬9"pdQip2Gf2y1JߢR85]9V%| !ϞU90y'ֿV+*7by0XƑ>a +k<ʺAǭWVlݸaE_ `Qŏӥ>g"|^O󟢻ܫ5WUu0*F;vrκv ZٗJV$G|`V?tz_3Sכ-*y勫w9wLwuU;We>(E,{qKAXAt\NĽ$di-ߣd>u։$t_֧p5lFft3A|zL{e#Ȝbx3?Aut�+gkW.pO\%zcfЯ+?녪=N'sJ{֘Ი8[u`U'a]Ҫ.aUIdmVdllti]yԯdqvlvF*'˲C)*O=+=\p*}u<"t́nU]z`uVb{T>/ҥȌUHEU?Vё%SkO~ZKvZCu۫|R~)Bqc[NG>x` P'@sʺaB9saW_3V\w=΁nbaw@1EJbS=z>g1f?nwZuFkUa<*[]br@28:i@0Eյ3t_Qz'~_bDp!ctW{BZV>s'`_a>T8# Ni4veg-k3Vڨ\uC4M$ы!fds<ePO:.}pC͡VOewҚpn ~V�`c7ֺ~tb8ZWWuwUϛ RT62$Ist=QKL0^y܁K"� o@~,lւ1~y]Lj)Ũb~iE&$]xtPM{VL%_%lת<[w>9C8ݸ{ﶊ\ �[ 6D u{Ykl+$tJNR&L*8tl}%CT7>uj u8[ݛ}˲+)صSRY<ϣzj[ܩj=8Jf*a cGAYY={gJ�m 1Ze32x,P%0)C+DV}fL 6"3K"5 {;c9u8Ϭ?d_::%ӈW685&~uA*/Z_#`|uW: 2j*?*sD|CSl%WZvʚӹ31`<lc ﮭ[؏ٸ+dܵy]x&6+LAue;lf=6n嗋-gVp3]YcMɲ57G..k"[-�N]uIڑSwm3]L^b{W55x#ءbnuEޭsb`^JF=[o~ι87y9 V<WY#9,rׇ09fJul+]!dW]TtbiWl;T){lؼKKB({u"U]W`٫a3~R\<U٭|`cGqsb]#[5ގCvtU=AGwKRVyʳ~o0؋wJk'Q^eguDJDtE+1tJWx0�d)L):Za]a?w]}x/+uq69`:ʫdM>{UkS0W˸>;y;]+]<Vd[;lJsyxתBYMZfu(İ!SVVE |T:UZZي0^*Fg|p$[ӄr;Z` ުW2zg_{\/%nܪ'9Jý re-{JkQ1*KN "8sadG];*V:d5x;,�YFɺ>j:um+]NG+1:Ͻ&ߡ#hE͟ nOE3WR%ڗ\W~)]+DՑď2}WlOPS1uU}pWm:9yV'iGXk*qOkH�aVD|L2ێ:>3]0 9(a򊱘 :Q1)sIپ,#_b~}qЧXy:9 %:(Tsap-]Opg6Yvu2qDevNbX7ː>kSTGbwW* 5x=>&ˊ+.>} 6>aDePWkXί^ɠ+;1*+g_Ǔ<ק96T/2M!#LNRiۍk9?W_1kY0Rq1<ppKuEPLGcѠ_ΧgxqaEp֡D£C^gu_v::zWG09yﺣ|ϣ` XkJBܟH"y/q}AǮ/ǵίObN{~Ꙩ|>``\N8 (v'k$IBL,ubФ:._3y(X&ڪku~d-ĨaC`u?A.n`\ci^?lo}j)өΏJ7R+N[ud*׿ui0xrob.]QsPYl}G{"Ócx:+ĄaF3;S<MUpH*LJte);6Sig:1fG?S1}UrNgo镳O ~烲G3[׎|+]UNJnϮWň2^XXZkiH!OuuE>6vW``d_]6c{),~%u:B7؆\ΟirG e?8fPv>W{+}(.=o%kϊ=>o7qT1ۓ"tt*_Ҕ3Y#_{T' <D5xT-Яw+C˱R{Vq(٫1vuE೩&9 nH~fskYW{0ĥYѸ8T<yW1]ʶs1Y *$Ƭ}6ŭl|>GHv<QËKhb^DZ|XC|-;lk.\s&g[^e֮\[T_ F&#/2` j3[z�UCU^JJ^XQ~垢zspmg2}}p%ح|,AuIs<P<zw]=-g+ºK47B1:J*;lګfZޑ=J::Fw^CK\i顬UV:Qcψe~VÕOeMցc֎u مsqD.Ӂn+r\[!.5CW=JKԥ1%l`lg#(pt8+UsLfǁr/<wz!ڪ.Era12_3*Ǫ8d/Wmk:mڅX~$wDXMPlgJ@~F&< 8VeW Vil:WcXC|/_t.@7؊\Ca,:lq ۏ0;̷?YH}nwa0l"x;PAP|G?[ 2vYh$Sd$c9]G*!2VN;uرKur,eXc1V>3Nz&NjUz` Z_\N?Э᪲fvlw>c4{Ry4 ݖDg فDqrW9|P{p`p"/ dit_hW .E}JeqO7F嗳buDuZ_́n*ݚ#*;;\MVkVr$ Xmwuqxօz;1*݌OeRej:+Um:;0vZkBwّmޝ1I ހS8U/=V{Y2;]Y89�.Ҋ>I9 n{#w*JVT-f_Uu~~C*`2*&ֻSȲ=xSJj-w-FgS]UDl u;ZWtD\=^\ 62L^M1Nx_{Sgi{3p>5E#e#ϵލ~`#kv{{:ΟΪ|LJNj_ǎ݀q̎U W{V|VGvU=w*:JGgU_}p_10q+Ta仺Qas䞱ݝo't}8 w=n/jbk,Ύ _8f<oe0xRz1[cɳ5flC v&r'ؑUbfWJ^y&ٗ`r#Dוt+a~.ulwW]1^\[œ*8WՌ׏9 57xa*Q+~1m+?7ŕ+3t?wו.1wV:RsCT7b@rlẄ~V~8_Y}Pk.FGwk # slַW5TkTR0ǃ)=>k_l}gL5`?qa-Ī<[w|Q,) .wEgE`Q Q ވT.O*[aR˭U0YK+j[n@UC̋E<uѯ#^mwzg^S=Nr~VЧ`aIVB.Vlαa޸L=L{|.TVyr0،( !+9:)W~9݌uf]E{֘L!́nVT]TzΡSٺ;`_@}1v}uz+5k:QB^ 1YvK$xA*A]f<9٫dc&ubi1cƮ_ *PڋkWuc.wY˗9 �+UmWs.u$R% :rLPcLE'LWwZ 9 J2{UrpʾkS}7^v2|nVEe\RcG @v 3^Y>\g sXZ#d8wYwvbU9r_IfW=k+#Yٮpg*;1ǵξٷ‚Rrv:eך:UҊ4U>dS*]*> 6ݧr/5j uqޫXZŨb]'Hq?{%9 _LWCÍhuuLTPɫ^Jh$1?{UWt8"f߱zw6ဵ<2a8fYZ|i<ucY:Ud j퇏M.GZ9(Bs5n}G&Qt=1]NmeYŌJ::qWPwcnt-p^AC+(Cl|]Nљc~tbd j7V{UI=}*Fav;tי\\ #<UQMc0؈} p}&XSR~. PQ{2S3Po'>f?s8m0P@ygu1U}Q8]9^dq=eڕ<f0N  Yes= 15d>'Lj"S{Gh*Fb 6jޱFu0ȣwȩs2}A<Afw痢 6beU~nna劮;19kU؉CX=eҵyiވly}t}V&<G:+DBQ#w!-`_a%JgP]M<09:{l?{^Ge2&\Tv=w2us𹣫cUk,fvd23bO49xO+1ɞ"]9tiiu{2;H/"NTH&c.+}tv|RiW٬|ĈPOջ)[~ʨ3@7 T _}wXu+UW:W>cfY+rz4u]xOs&bVt2 [l :Vb>lv"E4cG+Ds+S`EF Cakl9;70|[*]O+Ϩm+=?9 nHo&uko#t %t=lkj.aO顲"8Tž%tuDʸrگC iH~=iDR%t%[Cv눘UWH|0xabNǝC9F9󽣫ewPBJ{_<><<^sbU2Nj~Nd[LpP䞽.JٯJk Tt9ζkT%v] STEA35xrcptE= R1UvUGb~`9�� �IDATҕ3敟سWsAzsY).sF6NH+՛0VXu%*2V`reoeg#u`R{:_M^4k`OKn|]2P@GOsD◳}lF>0(&Xaq ʿjM]]l練1#۟ u9;~1=R W/:\ѕC5Tiw9;ϋNHwCbVqJ7^q0pKk*bµ|ߑ +~1" H򼒍0]K;GH`9 n Vb:.\~u}GaPr}M^<m 0S^UtdC4;uI4)lM1lbۯ3UZ.%۝g{Ν.}Tӯ9 ݖEJlӵrA]%z{B̖ZcvUU,;چ+mگf8r{_EVkWu+bSwM n"&3(ZScwASGK>ޱ.{`/?ߵ x!;(eWJd_!utȲy8cH-HW>joL7mA=>͵Ub;k~0JWd'؍)b>;ftW sotxO|] ked/]SU.kazʲ8V1oOV啕NeK;?ٚksWWk8fR>j.Z:`#rVOT:8@٩A0<9eωT15Gҷ΁n6&!HzW@Uo`nm5ʖP6'ȵs D6`uQG<' SJbWtu;L I ބ+ AƎ ~/f(kV~UU93*]J컋6<ވsϕRwrJWW8b^:>t*&t1ۃ{eeAsJEs`mU09LPTW-syMQ^SDs#@yFZ~0،+ lbAt}egek*6[^ח#<q/́nP$]gMx{jӅ~_jwrτSt1:Y_8Gt[Ny2B>J7j}\ǫj$&Sa*e;dBˤ|c{>%)�CR7:@~nUl|q~ej;t1&e~ώUlQ5e9 e~ T{X-]i::}H;;?ոWWaY {kHNvmC]tZ͜\svDI|yE]7ު0TBu~2"xVܻ~X%Nӥ|DjŘUt v2uMjtL簡ZWvUgtR]W%;nzBu+;(l_i)Ltq7W"@v0?]. XR83vٲG;qb~53~"~t{xq|mqV!H)TR>WW^Zc1ꅮ1\JeR7{:kK+_]v)@qV7{FN"bEU8To0 Fd>{]0Fëb W0nٿiE?["<}'Ns.`tڊLTMuEUnuTs1V,F(]_Ł{`$r3ֵN[Vd!&+Kh0oVHR>o@uhpEdKe5?uUz1``@9,ǮP_S\*,FŤbk6ÕrɐZ֕mUID#4%%Ua'wQϘA<mFɫpk.gD^ŬsB́nfgvUE&jU-tqsqbL+d>MeUnYkQr6%}c:_X.GHuWf((_7 SkB.9;)ts U!TpLz�;h}ZnfcF!cz~̎}7+uz-`T-As\[Wk)T_D<;2b $)*RC4VEXFe;C}T|Fr(R{2Zs*;s{3xz;$ &ʜrc3UO^cB;'QB?s%*gz~<ǽY�ZKgv"|&SE?/+b$Bnu .(](ﺷ!fd2,dؾ,FguutuykRlo}u-T=rUwaRfXU!Y<1KhDsE1+FrfqI A a`?`nuꭻzzuRB1];W.u?e|9Fu;L7nEyN)tk(m݇ϙ'0S nO|LEK-|t_$B[Ƿ ۲@Q 1,*KaҍcZz4)n0ǡ>沭oqﳡH&TO3`ku9–˴-kEvrD٣)hOKmJǔ4Upe.[5r VuT<lcꊙV]/xX> [g,6uu\,u{[ٗg}\MMM 5UƤn 0ϙ-9aCGgW\ߥm<|U]álg*�X9}ij0Ǥ[p{cƪezF9Սe:SuQjtM]t9]S q L68um n}hUە˴ H6 ۤU]_]fcrVW̦|<BU>j_l(3LE}?L/l@?zjklumjԱ|i긶춱S)xl~to;&qe^R|v)fOR/î} e_60eO5mݺBm[ߴP=<8l/ ӝi['u{u,u]W3z02_Ӿm9MMgzlm:Faz, 6t 隩z,jkpFw6=fnbk}ӾucF|Beej&qM'׭{ږ TuY}ئeEc騻2 h=}"z:Q53Q\|W3\TsUⅩBTutmҖI=a}Lgݭn{5w\jn;r6to]M]6O]m :fpY*n?m}T`~XeDa6%6p@]RFַQv<i֡L@W]4Lm| غoO2XDYNa}*cZߖӴOu2UTu0ǨLulj|tubCG|Y^”_ǃ_ (aiNa/`?\&L.@7ҭKێ5 #ʜdqQKvJ\; M1L?2t 6dRYr3k]!J�ַ-Ș PQp٬w5j52U3iʥk@Ԝ|ö_y8l9MUܴ~:-W&SelHCyܴi`WU˖Ӕuce];VݭcaΗ({\S&SaV\]OÖg8mlطoҭ*Jl>WF3T=|*k_V07kZi˘>kگϘ�eU\ ŤSvۤ:mc2 nKͨުc׍gz|ǫ;F׭{J9uEJwڊV]gKw6/W.SűM-\Z[M6oF(ÂS)S%USIw&f궶yKعm[<Sm>[s+H0S{I]Ά2G7W8� 8kn겺eulMv2{llPb˥_~lYM(Ε(oeߧ 2M9|^馱�XjecrMtS%WBsvNh]D[ [�vg:Db;[[uU hUC~mUՖ6/}mڟZLǡ۷g>+qS < O3p7�e]s۵\}L0gǸne4}68FW\O(sn�6)鲬3"lzh㵝PvݡlS,>ۨrePR|p7]oegym]vf{&SuW2ku6t>SHj-;O�2}cq|]5`1c>nw=0ܷmQf$]q}6\vIvM|*} '"*Nl2VQt7a*Qq]}+-4 4uG'S}>lǭהE]' 6tI.~,mL׶ymf>O8lQQ7!2͝Lڎ6'r=GtDβu|+h45SuM|2 x< l8rjo+WWtT�} Z2(WԤrߪ.wU?g+zA9=ﮱTR\>_�:ʴ0gJW.k1WW϶kڏmۏZVym_|tuś(si二*Jnc0MSL3cLǬ9d(_2Yt\EUL!ʠ`EU zh65宪eZ߶nSm]ρ:6 몤u릲0G6t8i: <Ry7bkvݺͧy4k?w>eۗc \s*0mNi [|;PXu<q[S5dgJP}uLX۶Qt_}Ŋ2TMLMCuZektT|eغ\}閹JE7nk*m6l(}0ݦ32qf&en,zH~1Ѵ_sc;e1Γ(Lv=S3iߦ)iʧN=YuS۰˂]E^wxkeX2O}Bm>ZW>VqŽ:F2>*nerJ< eF3, +Bn7]m׶뾮2e+}Q.en5ii<[>TJ_Pǫ[82ng}hVzl9t( NR/oT'xkL8V?ݱ[VLL]v*neMr&2E>@jCnM͘"c9]ERͧoS>}؎t_7nۺl4PֳM`Nu0Lgm߶*ae(wmBδm[k ng*,"g`en>njjLVels5O3[mm0U}>sFu_j.ql(ʿuW"ߟ;V<�ZBON|cn\v0ccQэ}!Jg32c՜qtzL3�'^w*L[j04EA7OND3wU 8zS5lV?jUC]5ۖ+2]SEWgs†25'н>8a[sӈ֬/LBZG4OM<qۙ3}2#i4빦6˹lg+ܦ}NmlS!Uwki6̶oml, St))pVV?uۺu|e:ె)?XJϟi"ej9I` }kݺ> 3岍k[ϖM] suMlzވ2K-TbZ6-iy08u OqԍðOQd,IB'ٞn%K) [vܶ|f>Ղ?Lnʭn\ݴ ݭkyp[x]۪4cT=/uH=KU&fz=uLXu�}.غRɢ;O~h+4z}UTȉ@7w}xPU[ta6_J꡻Օ\Ɔң{U3rәR:R'OJ׭T5Nzۼv1ln[u]61rrkuD�t5U XnM1Mr=25k??g+2۷4oq6a,9cMuDw:*2d qMe1mg:~mmݺXl(33x;ʰ16x_.m0aKWrg}\Q.>k4ڦi)XةnuEts*BP)4j!-<>]2$:cu6&jͭo4U>u P>a){cGpCQfI[(4+9 mkNt':P 9 ɬ泍kzn}N\mGg%Jnz.3W]7\LrMA|a\1_I7hMӷ0ٖ3\(Mrik<ֱU\cٲ*)nLL6a[uQc:}t˅t}- >\֐N~W\ kXtNp)iGݟO.ݼ6w2 [CG˻kR Y|5Iw S]7V>ƴ~ Sp]~X(G\eam ڎCUSӭo[G}G~iRz\s-]eCG;stgoP%GeUPa i}tMwze#g=xmls4xa+3M ԩztmRiLWESAo2{XB[\c\X(Ò!c,mMk<өs}U+uۺFg<@w[][ juU28px~Ӡ&us> e꾂S5ЍrS}l_*SWΓ(;ԩP^b\'̴u)W5MOtˠYgc**l@W3~}gmY(Kt&ʠ.3U~}N`;Rǰ-77'Zـ/:ǷJB7+M�:٭{庪LY fIZ4/^Mc+L7”,We3UUsnLj5]qT/))n0[SVٯY�LcO@kTl(N]gzݺJcZߵ[N[}m{`XV}cTƆ25�gl[%a�G<n[Vlka'xuLyP}Ӻ9)k4,#ʼ[6ptt1]}sٞSAh2 c&ͷۊn[S'Jq565pN�� �IDATi}Wt4>>mU[]߷*mNe;c>t239[`k ta} .+ms`>5]V>\8WMضsMN9lg:v:`o 馝86wS F0=St[7iVAE!n3t[a"uLVYXVVX,|۞[Wφ2C}^eP_{M|[djtMGp݉omO4NULSJ\ȕە(s?@°<7 g˕K]kWUV65)~" n*P)4Ƕie <gu}׶2v/evJeU1-Sm[: 4wRK7OжnYݶ e;,4O)rQ)k[I;t]bMs|-3gۇk^n8e)[[}vݶSG!gojsۯdjTn,5kmtSZJj;5ni:vɆ|EΊkZ_7fP9>Ilm`agNfv ;7Qѭk`{ttʼn(?<[4Met\*c٦'}۶LǬftM|>t[g|oa5]OlcUMh S3aCoR}ַ5!\aBT:FM7tUFcTs�~^l{6t9B5rc8k꺦׷1W23i}XWp;Ώ(|7Ir2u|6ݰM}tebmZ4}1L7>J]}[l3!hZDY{*VjnkX\qS=ƺ�xvVR*3=7& >nF]Yk04%euk6OV]9Mۇڴ,̾\bz2VxtF-Hce>ϧٗXR:�[q [�mQݯ)PQPa\dۇk*>fǶ04O(=4 y,x[G:<lP6 6-SC54MO0mOnLִ+n]X,宻=D W,W\ކ]fگ5Mgmrom*L-Zض/L'0f:SNmArTJm?6y.m[6t9̷r^p_{]ou[ۜ$6[;jal˥[׵m쮜r~8W3ci:M1L#̔vN|ѧۦpu%|UN1"BEY:tMHצu°]UF˖#lSo]9| D.L]}ugᕮF&6e}`duO#ULt k˭>DgD.Ͷ}\>2U)R9FH4 hoMo0\AiRkvw5.a.W²VKc~L*oE}Nt_=\Ttg|̷Rw = k*"t뚖٦l<m_NϼHeNRп*ua.Lm}r3un_87ʴ rST)j [<[etcoq1U0֘تoM7}*m+wazM뻮(khnM뫏O$nmlvarcp۵2qaDe+.uꖛ6C:}weuXt˯h)u|3QRI\өaaczLRɥWu:ʬW#$5_0&ܝz]>۵-Np vy~3.Șc45\꺶َٵ-Jy0黭ЅTMCwQ]Ǵ]Vu2l11.SLM͛eKt[UelLUt\KJNݭP}}9:J_G]g댂zMLM8zts[UuCFw1lk+9knߜ+Q.\mgm_LmmY|ojTl;@TLt[LuS}(Tq[f;cm4 [ut|\xSVF6\>Ǥ۾:l(slgcعn<͙~eDB!x_׀ ֬Ko{ tCݚx}2ut~۶Lj2t ]}RlU0}3lufq=;*nb)"e*vbjei lS&~:`>OwkklL [=m빪:N&rٞ{uyJz:,+Vw֫gnΠW,t]M'DSfu}6/ي:Q='#ZN}Lg`64tws}[9\[1ڊ4# ]Erj5QSWLpt*me̾UvK7^*tWrSu0͉_N<;=IzM;+tE@mLmlKzN+Jy^~} iOpLeߴ4SV񝎘rSN]E%!LqRi=BNPئXLT,)l\ˤm:͘6'R+i6t>әT.Ww+#nP3 ױts ɶLA9q܈/8Q_0M@Q;TDz O*:t,K8ir?OåKw(,\aDm 14Ӧ#dr5>]YT,SeV;mc<&6t \5UV lpm0fBn6eQ y1)Z>s9He,~G(LE*P)m=4錥y\I2nLU+^jt5JsDdkJlL@-d*ZV|,u?e1誛os=͜iLSy n+ e`3&vnƧRO@״QCulܾua:0ϗ~TLǧOrK3i\9tcm/4,=NS n 05"nllgk˖ti{u)OES 1VqG5~uW6t3_kΤn~/~ԈE6X3v>Mm,ɴkyQl5u=5%ҝ!inNc0-;:/@\h1m4Y4n)"$u >˵|4 .[̕VJ:wlǛ:uR]zu,ms�Sj>|Xums1mtntQf4#BS nio .O8l`ʥ{n-}S[ߵL]Ntt֨kX>V,Xm7Ue} ܿ«Y|:-OVo% G}E&-M1Q4uڶՍe{ܔٴ}sa2ehw]z]lka my=q"{?R :eOe9Ü|+4\tg”AT1,TdݿC&+|mZMvuC%}"S#6l(utж58)RBs_I=~u}y=DQw鳽m_j+T34m ƋrlV rqu>c*L-on7}0 꺯Y( }*!aYG٪�Ggm۟q;4=ܫmO{*)K�XrhYc,"C/2>tQ6[7,%]ݝi>:uEV^n,6ejl0'p @GKOT:]1/d3R5S~|ܧpۚA6[p[?k1ηj ;RF^w*iֳэY7:nӌoMS<uWs>\ܴuy\gxKEEE/'M?S_.*3/tq8 1D d-Lff&?H?(CQ" QD#"""""(6tDDDDDDņ(E:"""""bCGDDDDDQl興" QD#"""""(6tDDDDDDņ(E:"""""bCGDDDDDQl興" QD#"""""(6tDDDDDDņ(E:"""""bCGDDDDDQl興"D:�KII Zl-[uhժ[hbTTT��Q^=ԫW8x v}xߨƎ;k.ܹg}M6O?Ŗ-[P[[+uD^Q^(--ENЭ[7t ]vE׮]ѥKoD"y<-[?G}>~7oi"t""""b 8gϞ()oߎ˗cʕXbVXUVa߾}(FQ֕3#0h 5qekW_+?X:06tDDDDݺuȑ#1j(uYظq#^x̟? ,[5)Q\r .tI:NI&Xr%,X9s_cQ#"""t_q嗣Gq"?ǂ 0{l<3G|'6t9ֳgOZJ:߿{�޽۷o?o۶mزe 6n܈_v.,\r {1fϞJaȑ;wtyo~S: +//DŽ peaq _|x0g߿_:E@t>F(KPVV�hڴ)?x66m;#~+WĪU;:qfĈ]Qܹ3z\y8c  UUUرcN{ /##6tD)h۶-ڶms9cҥKK/W^+;v$ cƌ?.L"a0qDwy(**T4io}[ַ 6Oz!|'(l$ʐc[1{ll۶ K,C7 (Ǐ@Dy$H`ܸqX|9ϟJ6s?x?1m49:,)**)'x7qF83Q5jTl?V4zh,Y< z-� .ܹsn@yyt,Ɔ(Gڶmk/"֯_ ݻwEt bԨQ1HpB<߿t2ܹ3^lڴ sڷo/#о}{r-xwpB7o]S1o<K2dtTQQ'??]JG Hؐ!C3>M7݄ Hswׯ/rQF;bŊ#>싢_~9֬Y)S6tDyNo~[&M1 1B:^5k`ҤI(--CP\\ &`՘2e t" Qi֬N]wѠAHC|%Qaܹ3ϟz{UJJJ7vѪU+H%lTV0a83cǎ'*P&L[oÇKGW:]wu7n,2 Qk۶-L{I9ӤI~(Qiժf̘)SpRC5-܂5k/P* l"bĈXb~''|%Q8rJQHX۶m_',2 QkW^q71( eee1c NҥKq=cCi`CGA}o~eMVpgH k/"(JJJ0qD׿.Rę QDկ_/`_Wʚ*D7PiO<̙vIǡEgKSNB?&/ڴi#"sŪUpWCS"Wiо}{,^ހ2m۶8pt "PVVGy<�ի'"c<g}?6tDA2e ._5(~%Q+//̙3qeIG1j(Z _|tr`CGT`n?~<'Qkݺ5/^s9G: c9?8򗿠\:#*@_~9M JGбcGG:it/2+ إ^7|Bl Ԙ1c0o<5( /F.]P t 'OAl 1}t4h@: E:riW^A۶m06tDnذa1c:JKѳgODo߾={6***Q`CG#FO>(a)}GӦMQ`CGcƌ}'" ޽{C&MQaCG#W]u&M$"w޽t X޽;͛͛KG!<Æ(f~R.Dӹsg,^mڴBDy Q$ F~PmDլY3̙3[BDy Q կ_SNE-P:uA xVg"bCGS:t?b(1ƍ@Tz!}Q(ϱ##F?t (|ߔAD(~NArꩧ㎓AT*z1("\qq1׿B: EDQQvI% {D!l:uo~!|%Qj O=JKKQ#"�W^ɿ1F<LlR:Q(..O<vIG!aCGD@&McP`ر1 ߎCJ bCGDiwqt (3*++q-H bCGDGk1h COtԹsg/A"BDņPTT|ՓBy1"?0 +_ Z|%QnVq1(֏c4kL:幑#Gq1"O>( �:"j֬nfׯs=W:Qaʔ){sDloDcP.¹뮻|E:6tDdT~}g?AynhРt H:t(&N( :"KЭ[71rHDyA"N(sXQȪ&MAyo$rя~N8A:6tDo~:uAy@dѫW/t "*@lȩ^z[cP;c0l0Dy?ի' :"rWM61(mDzW]uN?tDTR\{1(7%%%1J֭q]wI Ɔ]s5=)2j޼9:,Dy׿56m* :"֦M|k_Ayo$q%H džB馛#PBqqt _ DB:86tDJ~Я_?ZnSO=U:c1(Qh]vtc|%]ii)NDl(o|(++Ay /(֮ztU::" Yf3ft SڵCchҤ n6-K�� �IDATD#l(%W\qtc|%m݆͛K aCGD)9r$Zl):֭[뮓AD1ÆRRRRqIǠ<եK|1r>6l(b ?!>(NZhkF::"JСCѬY3Q|(//AD1T"^z;v,~a(N:$tjٲ%w.ܹ{=]}6mڄ> [lAMM v܉Z߿iԨJKKQVV-[uhݺ5Zl;]tA׮]Ѷm[#$::"JKUU:2?~<DY}5Kwƒ%K-[O?4{�|[fq k׮իO>| 6tDC~طotClеh_tXY|9}Y̙3:jjjr{o{ �P\\O<gu!CW(gQZ6l38ϗByO>8vZ(DYo;k֬)ScƍqRSSUVaժU"|_ň#0n8 8DB:&(~( mԨQ(UUUIG ʊR|ߖQۇ?4hN:$L<9/9Z,[ 'OƩ?JǣÆ6rHiT.b{1 ֭[1ydtW_}5^uHi۴i?`hݺ5,_\:咲/իcaÆ(//Gyy94i·<dAϞ=qcÆ Q( 8ڵ,(nFeǎ;۷ă>SN9W\qoB:E:ʚ>�qbt'tN<D ÇàCGAy(H {t2d# TWWnvl۶M:NNx70i$\ywΝ;KǢ[.)VjjjGa֬Y/~ &m۶۷/n6[#3ΐ@yGG榛nP-Z^zn욹]vFn0n8,ZH:E:d2z ?ѷo_>(8 -RБgSҥ *++cDΝ;qM7aذaZ̘1g}6N?t̞=dR:96tD7|&L@.]OJlj]rNFEEE8ce_"NRO=܃Z8y*++1h 6vdjDda\tE6lX^|K <X:1~%2\z1"?q9_tXd *++1`�9 ӧ~JG{|% 2͚5A .�͛797o?KҥKqgCuu5&NK/?J9] @y^z|%EUW]%!rV^AK2{lW_}56o,�:׿bϤ޽{ KN8C) ,駟Q JMM ?G~H$ QHo[JG; 4@Ϟ=cP1bx.E֕W^D"!#2x {رctcp 0`�^u8$ Q VX#F`QN߾}#P+++Ø1ccVRR/\:Fd<裸K'rdٲe8pײ!6tD)Z|9Ǝˋ_~(mEGF۶mcD?/o̱Z<ի}Y8Cl/oWБ˨QаaCD\ve"UW]Oi&wy+Ӻ`CGߤc䍞={wLȪaÆ=zt "o7ƹ+#=s+Gy? 6tDpUWa1BƍѾ}{KcǢA1ҥK1~xBٴiƌ'b߾}q(Ke={p 7H'ttswʤcy袋# 6Þ={F2o[ 8k֬CY(Cf͚3fH 'xts1bt "MsΑۇ /[lB+V@߾}qJG cCGA'NĿo:]RTUUT:F7xC:yڷonF\tEjaCGA6l}'C:q^z1KG[wy'|{'2 QW_|!CT.]#P4k g}t "-[bȐ!1ի}O:a8SSOIG4#ʰ͛7Ot QZByyt �QRR"#߿_|qe!ؽ{7."L4>e/KTWWKձcGƍCqqt "1cHGKz+VX!2$Lb3f v)R( 6n܈9sHթS'ZcaÆ:ttpB}1( ΝN; k׮B!#ʒ)SHGņ|mF?&ؿ?:$I(%Wƀh"(:,3g6o,C :UUUD"!|1(˶mۆ#GL# Q<xO<t 1:t@Ѷm[ 4H:aD{tfA9R]]+?O6tDY>#PTUUIG :_~a믿A9\s ?3ϱ#ʢ_۶m!c@rm7*++#ӧc…1Hȃ>*ݻW: #ʢ̟?_:֭[sN:v>}H �wyƁp-H a3g9眃۷KG! 6tDY6w\"ЬY3!K͛7\KǠ<++Al舲l޼yg`CG`Ȑ!(*�vڅ1(޽[:ibe٧~uI޽;z)bLKoc{DQ†(.]*ADͥ#Pt$ ٳw}t "(|M";t:tǢG1=܃[J "lr7ސ iӦ(bz]JǠOcϞ=o~#<#ʁe˖QQ*S:†??w" Qܹ7osl(lH :{t " Q|r _~Сt ;cǎ1͜9}t " QɆRH$PUU%bNsDÆ(G5jH:EvI6h ~m1($6tD9vZ9װaCQz*;8#ztqӟ#Q ,!Q0n8 4',CԾ}cI #ʑ8V6trWt QSN.R(GsYge˖1(vKࡇ@D)bCG#۷ogCG(..رccP 8P:7bѢE1(Elrصkt*..FYYt 0ʅGB†(˸^ gذahҤt *`۷'o@Di`CGC_|t+*bԕR:>}HGGaҥ1( i#\IIt۶mt.) x D&6tD9T]]-!犋#޳>ȑ#ѸqcTկJG5uTD&6tD9Iu# vѣcPO6n܈~[: Qű[.C/<vIиqcp 1̞=nIT�L>5551RvA1|+_A"!f(P~X[[+�lٲ/tcȑ1.^AD(JKK#\*ThKqʴ޽{KGpB۷O:e�:bCGMߗ9DDO :*++s@lڴ t5iÆ AO 矗@D†(.DmKʔc=1Dlٲ+WAD†(БiӦIGHرcɩݻw f…~5 Q/֭òeˤcE8묳cP֭t1 .@DĆ(7o.!]vOLO^yDAlr<vA~Z:BZb7)z!AĎ;zjDAlr$?ۻwtx;HHY6mpꩧJǠO^uJ bCG#-ZslWJOtC1D(BG$vYUUD"!"sα(-J"cCG#;vsl׊+HHKǠ'\&I,YD:e:ܹtcCߢi|%* �?ADƆ(GٳG:Y:#X|t"6tD9džnbҥXntu{ADYlt"6tD9r 'HG96toŸQ*zK:e:С***cW#mGq :Ć(+AĎ;#ëO>D:Fz=zHǠiРZl)#os@\?^oxgc?0?X 5kHG ,aCGqmhgCGa}]D%l舲,H_~1Dl޼Y:yXx1l"#e}Rjs QbCGe't7o.Ch̙3c .@Ѿ}{":ņ(F%A ?:imڴ ?#*\l舲, ݞ={g^<8ڵAкuk9W]]K ,aCGE5g!CĿ/Buu5f͚%#eDo$/q QSS# Q :eee1D|($UVrnݺu(e_,A .z͛<8opaCGTeIEEƎ+C?OҾ}0g)+..ƸqcP@Æ cڵk#Q#ʒ.(:?ķ]R!O�6tD QL0A:(./!CYf1(Oŵ'\66tDYp'O!G8كyIHYzpKǠ<O?X:e:,~D"!CLmm-6l Rķ]R'\`˖-1(eXqJ'`1(EfBuut11(5mT:Bm޼#ʰI&(ާ{'ҰsN<1RVVV1cHǠ<džnӦM(=$ʰ={t qk֬@i.5iD:Bα#*|l2$Hwի'E>}:<(#eFBFcPcC'HG ,cCG!&L!CcիWKG4m۶ / bԨQ1(ı>6tDмysL<Y:FO vIcs۶m@DYƆ(MEEExGckU۶m͛cPL6-ҟ7fԯ__:8~(֭[#Q#Jӏc=Z:FXrtʐ͛7W_ƍc1('tDTvtoJG .P$XBGThxc7Tl O?d2)#eƍCiit ())s}t"2DRpgbܹ(//w-[&2?o!#eM47o.,~(MÆ 74vލ>@:eԩS1`�)s='5lP:B8p�{!'t QFq.cl<% L8/ -[ZaO=T,|'(נA9k.y ' #66[.<TTT'wfbɒ%( ֭[~[:FZhO?]: cC{nDl*++j*\xQK/$vIQǷ\ܹS:�:"}bѢE9s&ڷo/'%IAY .@"A:"*TlPYYcҥ8묳#E;?`[V^5kHHYv0p@$(?: `ԨQ{~z̜9Ç_@Y6m4i.?#BOب_>***еkWtIѣzO?=LcCWNnM:FƏ1HH_|!r eM=GI@ӦMQ^^O̢d2^:e[okF;uꄾ}bٲeQH@ro>Dl(kJKK#;p/_O?T:ԩS#Sdz)6tDT;tDsJG]ϏW1:x`CGDi7otʑ%K`Æ 1R֭[7S: (*ߔg(W݈(vͿ?#dӧO~e<KG9(QZ,XHǠ.:"*Tl(-QSx/2IHY޽ѽ{wcql?ۈ l={t ʱZ̜9S:FZƍ'r, ]mmt"6tDcΝ1H@2˷]:"*Tl(eQS.\[JH)N:IǠcCWSS#r 5kt rxcCǟ:"Jɳ>m۶I AQ -v/ql:x`CGD)2et`H婧;N:H:(Qh[nŜ9scGuPTTķ]Q䱡#qTWWKǠ<]RTUՓ@D9B-ܹs[:F<LhB:#\iit"6tDʛoe˖IǠ<w^̝;W:FJJJ0vXq ]IIt"6tDw- vIQO|[. y۲e ~igf͚}IHѴiSel舨P#"o'{c^z3ft 26tDTAyo|E!Bņ<OcP1cFȑ#ѸqcEP"*Tlȩ'OAylǎXhtկ_GAYķ\QbCGDNO<}Kgl舨P#"Zy1(OI瞋 HǠ,[Sߡ#6tDdOc1(lق^zI:F1rH%_|tO 8p�?#"$o@Y† :"2HǠygL&coS+PqlZ&6tD{n~1(b6mڄ^{M:Fʚ4iaÆIǠ,cCW^^.r i?ǖ-[cPEm´w^9ǿHl(~!nQӦMc28B:�:":ʍ7ވ}IǠZn-[&#e-Zg)2, BGlg}V:EvIo$Bņ۵kIǠOKGHKUUx,$ *^谛o|t *�>VZ%#emڴi&2( ]FD1��Ã>( Hv?2^Xv%!6m* a֭#)D/$ !vBMMtkѢt<A�� �IDAT"26tD뮻~t *0+W{'#eڵCcP$Xy(C=zJ:gyF:BZieǎr QcCGc˗/ 7  XvɆı[. :ھ};bo;K.źucK.ݻt ʐ86t QcCGC555#=Ѧ>}ttcΝrUV(-܂{N:vI"?;c#Q#cP꫑={D=cP|r㎓@DYƆ(Ff͚|;1(fjkkiK#W^y]tQ,.ɋ.#Pl߾]:Bα#*|lb`ٲe'Z_|[l}s1(MQ~ 1(%K`С5559st\p(M7o GGTe˖aѱ?Q%.uA:e:h" :43B^8ڵAikCױcGDEl ԩS9;՘5kt% 2>s߿_:Fα#*ll ̽ދ}kطotm$)L>sl :Q]]뮻7x#jkki͛7{쑎u1( q|eN#Q#*�7nęgO: վ}0g)+..ƸqcP'tD Q-^r ^u(D^KdžM6hܸt "6tD~L4 Æ {!CЬY3O?T:B% tM:eIt�" o0aV\)(={`޼y}bzpGB)ظqt=zo)CĢE|2-[A QTWWcɸQ]]-(eSNlCmliÆ Dt]:Gh"uY1#'Nիm֬YFiit1صkt Q[v-ƍÇsN,X@:FpyIǠ_^:=zHG ,aCGlقI&gϞ1ct]]vaǎ1rG8ٱ#3[nŤIбcGL<퓎D3fclhԨt JAvYZZʟ(6tDybոkѡCL<9Nc۶mXxt5lFA).O>dDlb8sЫW/<ػwt,.#P Q!aCG$`O~Ν;G2EsӦMCMMtUVV~1(-:6tD(Gy̞=?8VX!(/l޼*{t/AQjB^(.ZłxbrZ륶*J/k]jݭGeSڊz (JA"K $FH H2s*h$af~b5 ,s~9ù)..f(++  ٺu+SNq75*vt+WN}|{$:)M6oٳ>}:ӦMcԩl߾=ty#GUVSZ?! SD+W$L܁ѣcfeժU,Y%Kh".]իCIzj~m=)-Ҷm[.b^{)j:V^ ':%w?:CR9)cټys}jhhH-ܺu+7nWuu5Ք{{iӦR5jTl:Hv@/+VہNRnqS,]%5Ɉ#4hPccgYb]vY茬ҥ rH9c $Ip-vGzc|bŊ Ar!s93$$)~x>}B'uC'HJ#:IR$}rĸr+$IPRR²eBgq1R^^GMՋ6mڄΐ&t(,, p@\v;w4tFgڵk Ii@'I\XvF<K/ )M$I1|}-֡Ct:CMݕW^:AR8I"eʖENgϞuQ3$$)Ro &Z`A`ZnW\:CR8I"eTTThN;Ν;P_> tF0\sMIi@'Id2ɘ1cBg7G|oX9q_vٳg j|ڷo:Cr$EδiXvmG|(�7C'H:@#ID"رcCg(̟??tBP}R,I_x())6tF0{,w^ INI'O:tr\2dΜ93r٥otHڱc/r YfN[|p I-@'Ivxx뭷B'uGsWΐBtzٴiS 帙3gL&Cg~7tr$E7n\ j}A]wuk.tp$E. M6tM3$$)&L@]]] |�Zj:CR39I"m֭?>trC'ױcG.ɁNy.T-Xs=$5$)򊋋ٶm[ D"o:#k:ΐ t۲e 'N 7iҤ Я_N .TM<9tB$y睴o>t&r$رcihhxbBg|/t&r$BmmWPQd)SΈ~ѶmN.T Gqw}w IM@'I1c:C9́nuQ3$$)6֯_ԩSCg(-[жm[:C~8IbeʴLJNロO<1t}p$ѣI$3ƍ:!2=P~߄ΐ@2t$IMUYY[o:C9lҤIlݺ5tFdr-3t=K:Ibeʤz7GMAAu֡S$DIR5dҟG*s\vIswuW I+t)//g޼y3#<1:C'% �$Naaa尊 /^:#Rڶm>%X>:eZQQQȹ[CgH%Q� ]!IRsdɒa/RHzꩧ<NJbɫtʤ RZZ:#r>3tP <X.t$I-@L*ݞ]ve׿!ݦ$ŋrۻx*t6�+$IjѣGNP[d %%%3"Ç{?VM1t$I-KeW]v?mۆN`} IZjΜ9P{B'Dڗe iӦM)U�+$I:cƌ VZZ… CgD%\CgH�XBKes=:!~Oΐ`^ I̙3YfM aÆ}׿~߇ΐɂDJ$v(tF,g?!@u?pqIRRφNxgy:(t>hIR曬_ʜ &Έ}{9;,ta@Xkll_H$>|xXݻ7'Nc "5k[0Dp٥2g!LΈ^zh".)RY C$IJI&Q[[:C9lժUL<9tFoߞ &пZj:G`@7!`$IiKeO?:!>`x L©:Go`[Iң0tr/Lyyyغ 7owyW뤖6RIk*[l Cgΐ!C1cݻw57p;wGo>н Dڶmƍ 7tP<@у3gN:)tN|+_7`ԨQk.tr;@7+@$Iinʴ :#'jՊn+V0tP:u:)m<L׿2o<wT}<>Ѝ"IRڍ?qO?GQ6m)))ᥗ^K.=vZ / |֭[R'to o$)l«:C9nٲeL81tF)((odҤIXrLJگO<xRLµ^ˁT X;"IRfR0hР 9SOGٳgssgYg6meee<t1tr_ߜ I2ڴi:E9lҤI̘1;/tJNkժݺu[n<#[ӧ3}tf̘E2̺]vt҅.]pgsʡrۻn7{-$eƦMx׹kB(ug,;cӧ} HP^^)))aլ[kײ~z6oL}}= NڦM>}#<:vѮ];?x:t'Lh߾}^S^Ot3 ~%I7j(:e+œ9sڵk蔼UPP@С_u `=tYˑ$)ƎΝ;Cg(w )?T8HYL2%tѣYxq Io?oY$)+RِL&yBgH}?= t/yt1zhD _|%KΐHmb {ʌH֭c &P5662prײ=}pOa$)\vl)..fҤI3$W tO�̵H=#G$5e&)ݒ{ tˑ$)V^o:Cyb^nx t�EI$)�V6=$͘ƾAR#F:AydժU!)7$@>&9$PVV… Cg(<ԄΐG�"IR8.T6UUUqΐnäΥ$)mC ᭷ !)# tHPII ˖\V)#w}7S$R}}:I+,, <3w\7HR M?Is٥B8p UUU3$K=ߟ5eK�op$I0|VZ:Cyΐ/фL2<x@)$EW³>CgH$M:ii$IQ@$wqgIj|bS:G["IR̞=*e̚5kO~:CR5g{I%L2f̘S=Jڗ ~rs:H u$Ş.]wCgH!t71$EδiXvm 婪*gps܁(jc$ID"رcCg( 6,th)К;тI).Th?))) !)v�;tߒnr 'IRL< 6P~aI t�wU:IRܹ"$PX+V?a Ia�-6�x I=]* yyA A:^:IRxټys ~hѢ>nx$Im߾P@p']Xs٥n=W[hs9Ёx�C&L@]]] ӧsmL&CHʼ_s>@:ǀ4<$IAlݺLJΐ>/\q$��1$) C'H_#Fΐ,L:#.6<`&�s\$e]qq1۶m !},Lrm1s)~лwoV\:%.f5|=u$·~ĉCgHP__W_ܹ\5o<uFQQQ蔸h�nLדs[ gOrKEѦM))) "ÇsNGI$��$eرcCTUU׾5VZ:ERWs뭷R__:'NJ{DWeɡ3=K."tܹsҥ C 7qG21$)\v(ફbڵS=={4tN I31|x?C-IRs^-[^z;NQy8p ;vGkg35%Hz鿈XٰaӦM !SYY\p/<0rH>l\#(#ejX@jIbeuqE1k֬)Qׯnodƍsl<;~ Ij$諩/ E݈#836lX蔸[ܟ@p^ب䭷 !5I]]_:E9뮻}RUU:'WfE1Эn£ $I1Kɶm۸/eH"O;w8tN.H(LP6:1SYz-IبQH&3&K&wkeӦMs# , .;N70"/'6J$)˙??I7~x=\ ~ҿvʌ3B9@lX6: ,$I-KՊ+ի&LJ&<tԉ'|Id#pi6_0݇5J"ρNqV]]5\OSo:GoңG~9f5R3Od{܆H"%KΐZ,LOկ~EQ@˗/o߾\tE̞=;tN.J�? My@-IRyN`ҥtޝz~LUU3dĈё x.  uޘ/I~9)Wl۶޽{z9ʰ* '̓O>Ν;C'岗!:oFHZx*ѩS' 79hÆ <Cz 4InC eEIfѡںu+ k׮̚5+tҠzSN9|͛7Ne@Q/C$I]*W-\^zѯ_?jkkCJKKя~I' ]k.@-d0g*I9sPVV:CʈD"9S4hӧOo߾tܙ?]!R0�xH9.T۸q# cǎ 2;<68j_gψ#<<6Y"s!*J]v'ˇI?䮻sμ $ڢE{9Ypa|!Е`p1t$I9s&k֬ !eʕ+Mǎyꩧ-1˶mƈ#+8묳x駩 jI]{'tȧEq`CI u.VZ} 'tLihhoӷo_^Y*R"7:`*ӁE[fÆ 4(tFV[.t$%%%9u9cƌ 9cȐ!lٲ%tFp ,�jjj4h?8}; / ⡱I& /0zhE.4E枹Ok: >,N "I]N<DnfnN?9yf^{5yW =+#@t "Iխ[7nn;9rJ7nSN!tmp3#-.G |'t$IC\wu\{\tE|nժUL>iӦkQ^^:IM7&tDSmx%E$I/|++=zpӪUݻ:ϟϜ9s={6SLqWxJ "tHsf`(?$Imҽ{wzBR��;IDATy䑡l͚5,_K2w\̙=;vwφit�]QC$Ir{,:uSNvi~tԉN:֭[geYիWSQQ{Dze(--͛7gGYQ \ q�^z$IRztA|_}|K_Gqm۶砃C;vޮ_԰n:*++=v).BT<܇I$Iڿ$ǡCT t�}aC$I$EVR; 4 :D$IR,.>.ٽ4?Zz `J$IF࿀o$׮߁ C$I$_!W'ÀDI$I8 `4pjI$IMɴ\B%@G`{I$I�7`B/Zw./I$$0Ԧ'9eSݭz�W+I$)�_#φ9ρ#o6E$IR3-0[H$Iڻ9>pR "I$i@p'P%2N$I}p۷IshI$)l I- YtMs R "I$Z`x~95ߍ/㟟$I.φ<\|&l$IK[^6%F`�p6}$I?IIWot%~R'$IG9 ;^$IR~IX�asr]v| 8϶$IRn,^+q@F/R_ t�Z$IZ&f/�𞸬r 2z<$sA$I=k�sI] l Zl@hఠE$I7L $uͣ"Ɓ.>WZypp]$I@5X L�6R9#I {mϓcf,u^=$I$Yk/H-'5mjI mU@m6.) h?5Oe����IENDB`����������������������������������������������������������./ssl_libssh2.pas�����������������������������������������������������������������������������������0000644�0001750�0001750�00000021777�14576573021�014121� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{==============================================================================| | Project : Ararat Synapse | 001.000.000 | |==============================================================================| | Content: SSH support by LibSSH2 | |==============================================================================| | Copyright (c)1999-2013, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Alexey Suhinin. | | Portions created by Alexey Suhinin are Copyright (c)2012-2013. | | Portions created by Lukas Gebauer are Copyright (c)2013-2013. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} //requires LibSSH2 libraries! http://libssh2.org {:@abstract(SSH plugin for LibSSH2) Requires libssh2.dll or libssh2.so. You can download binaries as part of the CURL project from http://curl.haxx.se/download.html You need Pascal bindings for the library too! You can find one at: http://www.lazarus.freepascal.org/index.php/topic,15935.msg86465.html#msg86465 This plugin implements the client part only. } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} unit ssl_libssh2; interface uses SysUtils, blcksock, synsock, libssh2; type {:@abstract(class implementing LibSSH2 SSH plugin.) Instance of this class will be created for each @link(TTCPBlockSocket). You not need to create instance of this class, all is done by Synapse itself!} TSSLLibSSH2 = class(TCustomSSL) protected FSession: PLIBSSH2_SESSION; FChannel: PLIBSSH2_CHANNEL; function SSHCheck(Value: integer): Boolean; function DeInit: Boolean; public {:See @inherited} constructor Create(const Value: TTCPBlockSocket); override; destructor Destroy; override; {:See @inherited} function LibVersion: String; override; {:See @inherited} function LibName: String; override; {:See @inherited} function Connect: boolean; override; {:See @inherited} function Shutdown: boolean; override; {:See @inherited} function BiShutdown: boolean; override; {:See @inherited} function SendBuffer(Buffer: TMemory; Len: Integer): Integer; override; {:See @inherited} function RecvBuffer(Buffer: TMemory; Len: Integer): Integer; override; {:See @inherited} function WaitingData: Integer; override; {:See @inherited} function GetSSLVersion: string; override; published end; implementation {==============================================================================} function TSSLLibSSH2.SSHCheck(Value: integer): Boolean; var PLastError: PAnsiChar; ErrMsgLen: Integer; begin Result := true; FLastError := 0; FLastErrorDesc := ''; if Value<0 then begin FLastError := libssh2_session_last_error(FSession, PLastError, ErrMsglen, 0); FLastErrorDesc := PLastError; Result := false; end; end; function TSSLLibSSH2.DeInit: Boolean; begin if Assigned(FChannel) then begin libssh2_channel_free(FChannel); FChannel := nil; end; if Assigned(FSession) then begin libssh2_session_disconnect(FSession,'Goodbye'); libssh2_session_free(FSession); FSession := nil; end; FSSLEnabled := False; Result := true; end; constructor TSSLLibSSH2.Create(const Value: TTCPBlockSocket); begin inherited Create(Value); FSession := nil; FChannel := nil; end; destructor TSSLLibSSH2.Destroy; begin DeInit; inherited Destroy; end; function TSSLLibSSH2.Connect: boolean; begin Result := False; if SSLEnabled then DeInit; if (FSocket.Socket <> INVALID_SOCKET) and (FSocket.SSL.SSLType = LT_SSHv2) then begin FSession := libssh2_session_init(); if not Assigned(FSession) then begin FLastError := -999; FLastErrorDesc := 'Cannot initialize SSH session'; exit; end; if not SSHCheck(libssh2_session_startup(FSession, FSocket.Socket)) then exit; // Attempt private key authentication, then fall back to username/password but // do not forget original private key auth error. This avoids giving spurious errors like // Authentication failed (username/password) // instead of e.g. // Unable to extract public key from private key file: Method unimplemented in libgcrypt backend if FSocket.SSL.PrivateKeyFile<>'' then if (not SSHCheck(libssh2_userauth_publickey_fromfile(FSession, PChar(FSocket.SSL.Username), nil, PChar(FSocket.SSL.PrivateKeyFile), PChar(FSocket.SSL.KeyPassword)))) and (libssh2_userauth_password(FSession, PChar(FSocket.SSL.Username), PChar(FSocket.SSL.Password))<0) then exit; FChannel := libssh2_channel_open_session(FSession); if not assigned(FChannel) then begin // SSHCheck(-1); FLastError:=-999; FLastErrorDesc := 'Cannot open session'; exit; end; if not SSHCheck(libssh2_channel_request_pty(FChannel, 'vanilla')) then exit; if not SSHCheck(libssh2_channel_shell(FChannel)) then exit; FSSLEnabled := True; Result := True; end; end; function TSSLLibSSH2.LibName: String; begin Result := 'ssl_libssh2'; end; function TSSLLibSSH2.Shutdown: boolean; begin Result := DeInit; end; function TSSLLibSSH2.BiShutdown: boolean; begin Result := DeInit; end; function TSSLLibSSH2.SendBuffer(Buffer: TMemory; Len: Integer): Integer; begin Result:=libssh2_channel_write(FChannel, PAnsiChar(Buffer), Len); SSHCheck(Result); end; function TSSLLibSSH2.RecvBuffer(Buffer: TMemory; Len: Integer): Integer; begin result:=libssh2_channel_read(FChannel, PAnsiChar(Buffer), Len); SSHCheck(Result); end; function TSSLLibSSH2.WaitingData: Integer; begin if libssh2_poll_channel_read(FChannel, Result) <> 1 then Result := 0; end; function TSSLLibSSH2.GetSSLVersion: string; begin Result := 'SSH2'; end; function TSSLLibSSH2.LibVersion: String; begin Result := libssh2_version(0); end; initialization if libssh2_init(0)=0 then SSLImplementation := TSSLLibSSH2; finalization libssh2_exit; end. �./dattimecorrect.pas��������������������������������������������������������������������������������0000644�0001750�0001750�00000044547�14576573021�014703� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit dattimecorrect; {$mode objfpc} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, Buttons, ComCtrls, upascaltz; type { Tdattimecorrectform } Tdattimecorrectform = class(TForm) FixedMethodRadio: TRadioButton; LatitudeEdit: TLabeledEdit; LongitudeEdit: TLabeledEdit; TimeSpanEdit: TLabeledEdit; LinearMethodRadio: TRadioButton; SunriseDifferenceRadioButton: TRadioButton; TimeZoneExistsText: TStaticText; TimeZoneEdit: TLabeledEdit; CorrectButton: TBitBtn; FileSelectButton: TButton; CorrectionGroupBox: TGroupBox; InputFile: TLabeledEdit; Memo1: TMemo; StartDateTimeEdit: TLabeledEdit; EndDateTimeEdit: TLabeledEdit; OutGroupBox: TGroupBox; InGroupBox: TGroupBox; OutputFile: TLabeledEdit; OpenDialog1: TOpenDialog; StatusBar1: TStatusBar; TimeDifference: TLabeledEdit; procedure CorrectButtonClick(Sender: TObject); procedure FileSelectButtonClick(Sender: TObject); procedure FixedMethodRadioClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure LinearMethodRadioClick(Sender: TObject); procedure SunriseDifferenceRadioButtonClick(Sender: TObject); private { private declarations } procedure GetTimeDifference(); procedure UpdateExplanation(); public { public declarations } end; var dattimecorrectform: Tdattimecorrectform; InFileName, OutputFilename: string; TimeDiffS: int64 = 0; FixedMethod: boolean = True; LinearMethod: boolean = False; SunriseDifferenceMethod: boolean = False; ptzCorr: TPascalTZ; //Time zone region for Correction. LinearCorrectionFactor: double = 0.0; RangeTimeMS: int64; // type Int64 = - 9223372036854775808..9223372036854775807; UTCStartRecordTime, UTCEndRecordTime: TDateTime; datLocalTZ: string; //Timezone information stored in the file. {Field that contains the MSAS variable, -1 = undefined.} MSASField: integer = -1; {Field that contains the Sunrise difference variable, -1 = undefined.} SunriseDiffField: integer = -1; MyLatitude: extended = 0.0; //Latitude MyLongitude: extended = 0.0; //Longitude MyElevation: extended = 0.0; //Elevation implementation uses appsettings //Required to read application settings (like locations). , dateutils //Required to convert logged UTC string to TDateTime , strutils //Required for checking lines in conversion file. , LazFileUtils //required for ExtractFileNameOnly , moon //required for Moon calculations , Unit1 //required for FPointSeparator ; { Tdattimecorrectform } //Select file for correction procedure Tdattimecorrectform.FileSelectButtonClick(Sender: TObject); begin { Clear input filename in preparation for new selected filename} InFileName := ''; InputFile.Text := InFileName; datLocalTZ := ''; TimeZoneEdit.Text := datLocalTZ; UTCStartRecordTime := 0; StartDateTimeEdit.Text := ''; UTCEndRecordTime := 0; EndDateTimeEdit.Text := ''; TimeSpanEdit.Text := ''; RangeTimeMS := 0; TimeDiffS := 0; TimeDifference.Text := ''; LatitudeEdit.Text := ''; LongitudeEdit.Text := ''; {Indicate status} StatusBar1.Panels.Items[0].Text := 'Select a file for processing.'; OpenDialog1.Filter := 'data log files|*.dat|All files|*.*'; OpenDialog1.InitialDir := vConfigurations.ReadString('DatTimeCorrect', 'InputDirectory', appsettings.LogsDirectory); { Get Input filename from user } if (OpenDialog1.Execute) then begin InFileName := OpenDialog1.FileName; InputFile.Text := InFileName; ptzCorr := TPascalTZ.Create(); {Initialize the Timezone database path} ptzCorr.DatabasePath := appsettings.TZDirectory; GetTimeDifference(); { Save "Select file" directory} vConfigurations.WriteString('DatTimeCorrect', 'InputDirectory', OpenDialog1.InitialDir); end; StatusBar1.Panels.Items[0].Text := 'File selected, updating details.'; UpdateExplanation(); StatusBar1.Panels.Items[0].Text := 'Select "Correction method", then press "Correct .dat file" button.'; end; procedure Tdattimecorrectform.FixedMethodRadioClick(Sender: TObject); begin FixedMethod := True; LinearMethod := False; SunriseDifferenceMethod := False; UpdateExplanation(); end; procedure Tdattimecorrectform.LinearMethodRadioClick(Sender: TObject); begin FixedMethod := False; LinearMethod := True; SunriseDifferenceMethod := False; UpdateExplanation(); end; procedure Tdattimecorrectform.SunriseDifferenceRadioButtonClick(Sender: TObject); begin FixedMethod := False; LinearMethod := False; SunriseDifferenceMethod := True; UpdateExplanation(); end; procedure Tdattimecorrectform.FormCreate(Sender: TObject); begin { Clear status bar } StatusBar1.Panels.Items[0].Text := ''; { Restore "Select file" directory. } end; procedure Tdattimecorrectform.FormDestroy(Sender: TObject); begin if Assigned(ptzCorr) then FreeAndNil(ptzCorr); end; { Correct file } procedure Tdattimecorrectform.CorrectButtonClick(Sender: TObject); var InFile, OutFile: TextFile; Str: string; pieces: TStringList; index: integer; i: integer = 0; UTCRecord: TDateTime; CorrUTCRecordTime, CorrLocalRecordTime: TDateTime; {Corrected UTC record} ComposeString: string; CurrentDifferenceMS: int64 = 0; WriteAllowable: boolean = True; //Allow output file to be written or not. {Sunrise comparison variables} SunriseCurrentRdg: double = 0; SunriseLastRdg: double = 0; SunriseTimeStamp: TDateTime; SunriseDifferenceMS: int64; {A change from Dawn to Sunrise} DawnThreshold: double = 13.0; {Approximate reading at Dawn or darker.} SunriseThreshold: double = 10.0; {Approximate reading at sunrise or brighter.} Daytime: boolean = False; {Indicates if readings are during daytime.} begin pieces := TStringList.Create; StatusBar1.Panels.Items[0].Text := ''; { Clear status bar } Application.ProcessMessages; { Start reading file. } AssignFile(InFile, InFileName); AssignFile(OutFile, OutputFile.Text); if FileExists(OutputFile.Text) then begin if (MessageDlg('Overwrite existing file?', 'Do you want to overwrite the existing file?', mtConfirmation, [mbOK, mbCancel], 0) = mrOk) then WriteAllowable := True else WriteAllowable := False; end; if WriteAllowable then begin {$I+} try Reset(InFile); Rewrite(OutFile); {Open file for writing} StatusBar1.Panels.Items[0].Text := 'Reading Input file'; Application.ProcessMessages; repeat Readln(InFile, Str); {Read one line at a time from the file.} StatusBar1.Panels.Items[0].Text := 'Processing : ' + Str; {Update statusbar} Application.ProcessMessages; if (AnsiStartsStr('#', Str)) then begin {Ignore most comment lines which have # as first character.} if (AnsiStartsStr('# DL time difference (seconds)', Str) and (FixedMethod or LinearMethod)) then { Touch up time difference line } WriteLn(OutFile, '# DL time difference (seconds): 0') { Check if file contains SunriseDiff field. } else if (AnsiStartsStr('# UTC Date & Time, Local Date', str)) then begin pieces.Delimiter := ','; pieces.StrictDelimiter := True; //Do not parse spaces also pieces.DelimitedText := Str; { Get the field locations. } for i := 0 to pieces.Count - 1 do begin case Trim(pieces.Strings[i]) of 'SunriseDiff': SunriseDiffFIeld := i; end; end; {Remove Sunrise field description} if (FixedMethod or LinearMethod) then WriteLn(OutFile, AnsiReplaceStr(Str, ', SunriseDiff', '')); { Append Sunrise field to header field descriptions} if (SunriseDifferenceMethod) then WriteLn(OutFile, Str + ', SunriseDiff'); end {Remove Sunrise field units} else if (AnsiStartsStr('# YYYY-MM-DDTHH:mm:ss.fff;', Str)) then begin if (FixedMethod or LinearMethod) then WriteLn(OutFile, AnsiReplaceStr(Str, ';s', '')); { Append Sunrise units} if (SunriseDifferenceMethod) then WriteLn(OutFile, Str + ';s'); end else { Write untouched header line } WriteLn(OutFile, Str); end else begin {Process records} pieces.Delimiter := ';'; pieces.DelimitedText := Str;{Separate the fields of the record.} //parse the fields, and convert as necessary. //Convert UTC string 'YYYY-MM-DDTHH:mm:ss.fff' into TDateTime UTCRecord := ScanDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz', pieces.Strings[0]); { Correct UTC and Local times } if FixedMethod then begin CorrUTCRecordTime := IncSecond(UTCRecord, -1 * TimeDiffS); end; if LinearMethod then begin //get difference from start to current record CurrentDifferenceMS := MilliSecondsBetween(UTCStartRecordTime, UTCRecord); //determine factor for correction on current record CorrUTCRecordTime := IncMilliSecond(UTCRecord, round(double(CurrentDifferenceMS) * LinearCorrectionFactor)); end; {Sunrise difference method; there is no time offset applied} if SunriseDifferenceMethod then begin CorrUTCRecordTime := UTCRecord; end; CorrLocalRecordTime := ptzCorr.Convert(CorrUTCRecordTime, 'UTC', datLocalTZ); ComposeString := FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz;', CorrUTCRecordTime) + FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz', CorrLocalRecordTime); {Compose remainder of string.} for index := 2 to pieces.Count - 1 do begin {Remove Sunrise difference already there.} if not (index = SunriseDiffField) then ComposeString := ComposeString + ';' + pieces.Strings[index]; end; if SunriseDifferenceMethod then begin pieces.Delimiter := ';'; pieces.DelimitedText := Str;{Separate the fields of the record.} {Get current reading} SunriseCurrentRdg := StrToFloatDef(pieces.Strings[MSASField], 0.0); {Switch from Dawn to Sunrise} if ((not Daytime) and (SunriseCurrentRdg < SunriseThreshold)) then begin {Get Sunrise time for the current day} SunriseTimeStamp := Sun_Rise(UTCRecord, MyLatitude, -1.0 * MyLongitude); {Compare current timestamp with Sunrise timestamp} SunriseDifferenceMS := MilliSecondsBetween(UTCRecord, SunriseTimeStamp); {Indicate daytime readings} Daytime := True; end; {Switch from Sunrise to Dawn} if ((Daytime) and (SunriseCurrentRdg > DawnThreshold)) then begin Daytime := False; end; {Write out difference time} ComposeString := ComposeString + ';' + Format( '%0.3f', [SunriseDifferenceMS / 1000.0]); {Roll current reading over to last reading} SunriseLastRdg := SunriseCurrentRdg; {Time unchanged} CorrUTCRecordTime := UTCRecord; end; WriteLn(OutFile, ComposeString); end; until (EOF(InFile)); // EOF(End Of File) The the program will keep reading new lines until there is none. CloseFile(InFile); StatusBar1.Panels.Items[0].Text := 'Finished correcting.'; Application.ProcessMessages; except on E: EInOutError do begin MessageDlg('Error', 'File handling error occurred. Details: ' + E.ClassName + '/' + E.Message, mtError, [mbOK], 0); end; end; Flush(OutFile); CloseFile(OutFile); end;//End of WriteAllowable check. end; { Get time difference listed in the input file.} procedure Tdattimecorrectform.GetTimeDifference(); var InFile: TextFile; Str: string; ReadMode: integer = 0; {0= waiting for END OF HEADER, 1= waiting for first record, 2 waiting for last record} pieces: TStringList; i: integer = 0; //General purpose counter begin pieces := TStringList.Create; StatusBar1.Panels.Items[0].Text := 'File selected. Getting details, please wait ...'; Application.ProcessMessages; //Start reading file. AssignFile(InFile, InputFile.Text); {$I+} try Reset(InFile); repeat { Read one line at a time from the file.} Readln(InFile, Str); { Get Time difference data from header.} if AnsiStartsStr('# DL time difference (seconds)', Str) then begin TimeDiffS := StrToIntDef(AnsiRightStr(Str, length(Str) - RPos(':', Str)), 0); end; {Get the position coordinates} if AnsiStartsStr('# Position (lat, lon, elev(m)):', Str) then begin pieces.Delimiter := ','; pieces.StrictDelimiter := True; //Do not parse spaces also pieces.DelimitedText := AnsiRightStr(Str, length(Str) - RPos(':', Str)); {Check if European commas were used instead of decimal points} if pieces.Count >= 5 then begin MyLatitude := StrToFloatDef(pieces.Strings[0] + '.' + pieces.Strings[1], 0, FPointSeparator); MyLongitude := StrToFloatDef(pieces.Strings[2] + '.' + pieces.Strings[3], 0, FPointSeparator); end else if pieces.Count >= 2 then begin MyLatitude := StrToFloatDef(pieces.Strings[0], 0, FPointSeparator); MyLongitude := StrToFloatDef(pieces.Strings[1], 0, FPointSeparator); end; LatitudeEdit.Text := format('%0.6f', [MyLatitude]); LongitudeEdit.Text := format('%0.6f', [MyLongitude]); end; {Get field number for MSAS} if AnsiStartsStr('# UTC Date & Time, Local Date', Str) then begin pieces.Delimiter := ','; pieces.StrictDelimiter := True; //Do not parse spaces also pieces.DelimitedText := Str; { Get the field locations. } for i := 0 to pieces.Count - 1 do begin case Trim(pieces.Strings[i]) of 'MSAS': MSASField := i; end; end; end; { Get the .dat timezone information if it exists} if (AnsiStartsStr('# Local timezone:', str)) then begin pieces.Delimiter := ':'; pieces.StrictDelimiter := True; //Do not parse spaces also pieces.DelimitedText := Str; if (pieces.Count > 1) then if Trim(pieces.Strings[1]) <> '' then begin datLocalTZ := Trim(pieces.Strings[1]); TimeZoneEdit.Text := datLocalTZ; {Determine if time zone is valid.} if ptzCorr.TimeZoneExists(datLocalTZ) then TimeZoneExistsText.Caption := 'Valid' else TimeZoneExistsText.Caption := '*** Invalid ***'; end; end; {Read the datestamp from the first and last record} if ReadMode = 2 then begin {Waiting for last record} { Separate the fields of the record.} pieces.Delimiter := ';'; pieces.DelimitedText := Str; UTCEndRecordTime := ScanDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz', pieces.Strings[0]); {Pull out UTC record time} EndDateTimeEdit.Text := FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz', UTCEndRecordTime); {Display date to user} TimeSpanEdit.Text := Format( '%dd', [DaysBetween(UTCEndRecordTime, UTCStartRecordTime)]); end; if ReadMode = 1 then begin {waiting for first record} { Separate the fields of the record.} pieces.Delimiter := ';'; pieces.DelimitedText := Str; UTCStartRecordTime := ScanDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz', pieces.Strings[0]); {Pull out UTC record time} StartDateTimeEdit.Text := FormatDateTime('yyyy-mm-dd"T"hh:nn:ss.zzz', UTCStartRecordTime); {Display date to user} ReadMode := 2; {Indicate that Waiting for last record to be read} end; if AnsiStartsStr('# END OF HEADER', Str) then begin ReadMode := 1; //Indicate that Waiting for first record to be read end; until (EOF(InFile)); // EOF(End Of File) The the program will keep reading new lines until there are none. ReadMode := 3; {Indicate that No more records to be read} CloseFile(InFile); except on E: EInOutError do begin MessageDlg('Error', 'File handling error occurred. Details: ' + E.ClassName + '/' + E.Message, mtError, [mbOK], 0); end; end; {Display logged time difference} TimeDifference.Text := Format('%ds', [TimeDiffS]); if Assigned(pieces) then FreeAndNil(pieces); StatusBar1.Panels.Items[0].Text := 'Details retrieved.'; Application.ProcessMessages; end; procedure Tdattimecorrectform.UpdateExplanation(); var OutFileSuffix: string = ''; begin Memo1.Clear; if FixedMethod then begin Memo1.Append(Format('Offset on every record: %ds', [TimeDiffS])); OutFileSuffix := 'Fixed'; end; if LinearMethod then begin {Compute the date range in seconds , possibly show d/h/m/s for convenience} RangeTimeMS := MilliSecondsBetween(UTCEndRecordTime, UTCStartRecordTime); Memo1.Append(Format('Calculated recording range: %0.3fs', [RangeTimeMS / 1000.0])); {Display date to user} LinearCorrectionFactor := -1 * TimeDiffS / (RangeTimeMS / 1000.0); Memo1.Append(Format('Correction factor: %ds/%0.3fs = %0.8f s/s', [TimeDiffS, (RangeTimeMS / 1000.0), LinearCorrectionFactor])); {Display date to user} OutFileSuffix := OutFileSuffix + 'Linear'; end; if SunriseDifferenceMethod then begin Memo1.Append( 'A file will be created noting the difference between sunrise time and reading going to 0 MPSAS.'); OutFileSuffix := 'Sunrise'; end; if (Length(InFileName) > 0) then begin {Update output filename} OutputFilename := ExtractFilePath(InFileName) + LazFileUtils.ExtractFileNameOnly(InFileName) + '_' + OutFileSuffix + 'TimeCorr' + ExtractFileExt(InFileName); OutputFile.Text := OutputFilename; CorrectButton.Enabled := True; end else begin OutputFilename := ''; OutputFile.Text := ''; CorrectButton.Enabled := False; end; end; initialization {$I dattimecorrect.lrs} end. ���������������������������������������������������������������������������������������������������������������������������������������������������������./textfileviewer.pas��������������������������������������������������������������������������������0000644�0001750�0001750�00000002572�14576573021�014730� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit textfileviewer; {$mode objfpc} interface uses Classes, SysUtils, FileUtil, SynMemo, LResources, Forms, Controls, Graphics, Dialogs ,appsettings ; type { TTextFileViewerForm } TTextFileViewerForm = class(TForm) SynMemo1: TSynMemo; private { private declarations } public { public declarations } end; var TextFileViewerForm: TTextFileViewerForm; procedure fillview(Title: String; Filename: String); implementation procedure fillview(Title: String; Filename: String); var File1: TextFile; Str: String; begin {Display Filename } if FileExists(appsettings.DataDirectory+Filename) then begin AssignFile(File1,appsettings.DataDirectory+Filename); {$I-}//Temporarily turn off IO checking try Reset(File1); TextFileViewerForm.SynMemo1.Clear; repeat Readln(File1, Str); // Reads a whole line from the file. TextFileViewerForm.SynMemo1.Lines.Add(Str); until(EOF(File1)); // EOF(End Of File) keep reading new lines until end. CloseFile(File1); except //StatusMessage('File: changelog.txt IOERROR!', clYellow); end; {$I+}//Turn IO checking back on. end; //else //StatusMessage('File: changelog.txt does not exist!', clYellow); TextFileViewerForm.Caption:=Title; TextFileViewerForm.Show; end; initialization {$I textfileviewer.lrs} end. ��������������������������������������������������������������������������������������������������������������������������������������./dlheader.lrs��������������������������������������������������������������������������������������0000644�0001750�0001750�00000040724�14576573022�013451� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ This is an automatically generated lazarus resource file } LazarusResources.Add('TDLHeaderForm','FORMDATA',[ 'TPF0'#13'TDLHeaderForm'#12'DLHeaderForm'#4'Left'#3#147#8#6'Height'#3'\'#3#3 +'Top'#2'Q'#5'Width'#3#148#2#7'Anchors'#11#0#7'Caption'#6#18'Datalogging head' +'er'#12'ClientHeight'#3'\'#3#11'ClientWidth'#3#148#2#8'OnCreate'#7#10'FormCr' +'eate'#9'OnDestroy'#7#11'FormDestroy'#8'Position'#7#14'poScreenCenter'#10'LC' +'LVersion'#6#7'3.0.0.3'#0#10'TScrollBox'#10'ScrollBox1'#22'AnchorSideLeft.Co' +'ntrol'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#23'AnchorSideRight.C' +'ontrol'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBot' +'tom.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#0 +#6'Height'#3'\'#3#3'Top'#2#0#5'Width'#3#148#2#18'HorzScrollBar.Page'#3#144#2 +#18'VertScrollBar.Page'#3#3#3#22'VertScrollBar.Tracking'#9#7'Anchors'#11#5'a' +'kTop'#6'akLeft'#7'akRight'#8'akBottom'#0#12'ClientHeight'#3'Z'#3#11'ClientW' +'idth'#3#146#2#8'TabOrder'#2#0#0#9'TGroupBox'#16'SelectedGroupBox'#22'Anchor' +'SideLeft.Control'#7#10'ScrollBox1'#21'AnchorSideTop.Control'#7#10'ScrollBox' +'1'#24'AnchorSideBottom.Control'#7#10'ScrollBox1'#21'AnchorSideBottom.Side'#7 +#9'asrBottom'#4'Left'#2#4#6'Height'#3'Z'#3#3'Top'#2#0#5'Width'#3#140#2#7'Anc' +'hors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2#4#7'Capt' +'ion'#6#23'Selected serial number:'#12'ClientHeight'#3'F'#3#11'ClientWidth'#3 +#138#2#8'TabOrder'#2#0#0#12'TLabeledEdit'#17'DataSupplierEntry'#22'AnchorSid' +'eLeft.Control'#7#17'InstrumentIDEntry'#21'AnchorSideTop.Control'#7#17'Instr' +'umentIDEntry'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#28#1#6'Height' +#2'$'#4'Hint'#12'}'#1#0#0'The institution and/or person who was responsible ' +'for setting up and acquiring the data. Since it is'#10'expected that skyglo' +'w data will be archived for generations, detailed contact information (e.g.' +' email'#10'address) is unlikely to be as helpful as information about the i' +'nstitute that supplied the data. Users are'#10'free to provide contact info' +'rmation in the user comments section below.'#3'Top'#2'k'#5'Width'#3#25#1#16 +'EditLabel.Height'#2#19#15'EditLabel.Width'#2'Y'#17'EditLabel.Caption'#6#15 +'Data supplier: '#21'EditLabel.ParentColor'#8#13'LabelPosition'#7#6'lpLeft' +#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#0#8'OnChange'#7#23'DataSup' +'plierEntryChange'#0#0#12'TLabeledEdit'#17'InstrumentIDEntry'#22'AnchorSideL' +'eft.Control'#7#12'SerialNumber'#21'AnchorSideTop.Control'#7#12'SerialNumber' +#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#28#1#6'Height'#2'$'#4'Hint' +#12'W'#2#0#0'The instrument ID is a unique human readable name. Since the nu' +'mber of stations monitoring is'#10'currently small, it probably won''t be a' +' problem for users to come up with a name on their own. In the'#10'future, ' +'when a skyglow measurement database is established, there should be a proce' +'dure to have'#10'names assigned. In the meantime, please register your name' +' with christopher.kyba@wew.fu-berlin.de.'#10'Since the instrument ID is use' +'d in the filename, spaces and other characters outside of the set [A-Za-z0-' +#10'9_-] are not permitted (use dash or underscore instead of space).'#10'Ex' +'amples: SQM-RIVM1, Dahlem_tower_le'#3'Top'#2'G'#5'Width'#3#25#1#16'EditLabe' +'l.Height'#2#19#15'EditLabel.Width'#2'`'#17'EditLabel.Caption'#6#15'Instrume' +'nt ID: '#21'EditLabel.ParentColor'#8#13'LabelPosition'#7#6'lpLeft'#14'Paren' +'tShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#1#8'OnChange'#7#23'InstrumentIDEnt' +'ryChange'#0#0#12'TLabeledEdit'#17'LocationNameEntry'#22'AnchorSideLeft.Cont' +'rol'#7#17'DataSupplierEntry'#21'AnchorSideTop.Control'#7#17'DataSupplierEnt' +'ry'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#28#1#6'Height'#2'$'#3'T' +'op'#3#143#0#5'Width'#3#26#1#16'EditLabel.Height'#2#19#15'EditLabel.Width'#2 +'a'#17'EditLabel.Caption'#6#15'Location name: '#21'EditLabel.ParentColor'#8 +#13'LabelPosition'#7#6'lpLeft'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder' +#2#3#8'OnChange'#7#23'LocationNameEntryChange'#0#0#12'TLabeledEdit'#13'Posit' +'ionEntry'#22'AnchorSideLeft.Control'#7#17'LocationNameEntry'#21'AnchorSideT' +'op.Control'#7#17'LocationNameEntry'#18'AnchorSideTop.Side'#7#9'asrBottom'#4 +'Left'#3#28#1#6'Height'#2'$'#3'Top'#3#179#0#5'Width'#3#26#1#16'EditLabel.Hei' +'ght'#2#19#15'EditLabel.Width'#3#160#0#17'EditLabel.Caption'#6#30'Position (' +'lat, lon, elev(m)): '#21'EditLabel.ParentColor'#8#13'LabelPosition'#7#6'lpL' +'eft'#8'ReadOnly'#9#8'TabOrder'#2#2#7'TabStop'#8#0#0#6'TLabel'#6'Label6'#21 +'AnchorSideTop.Control'#7#11'TZRegionBox'#18'AnchorSideTop.Side'#7#9'asrCent' +'er'#23'AnchorSideRight.Control'#7#11'TZRegionBox'#4'Left'#2'g'#6'Height'#2 +#21#3'Top'#3#220#0#5'Width'#3#178#0#9'Alignment'#7#14'taRightJustify'#7'Anch' +'ors'#11#5'akTop'#7'akRight'#0#8'AutoSize'#8#19'BorderSpacing.Right'#2#3#7'C' +'aption'#6#22'Local timezone region:'#11'ParentColor'#8#0#0#9'TComboBox'#11 +'TZRegionBox'#22'AnchorSideLeft.Control'#7#13'PositionEntry'#21'AnchorSideTo' +'p.Control'#7#13'PositionEntry'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left' ,#3#28#1#6'Height'#2#31#3'Top'#3#215#0#5'Width'#3#26#1#10'ItemHeight'#2#0#13 +'Items.Strings'#1#6#6'africa'#6#4'asia'#6#6'europe'#6#12'northamerica'#6#10 +'antarctica'#6#11'australasia'#6#8'etcetera'#6#12'southamerica'#0#5'Style'#7 +#14'csDropDownList'#8'TabOrder'#2#4#8'OnChange'#7#17'TZRegionBoxChange'#0#0 +#12'TLabeledEdit'#14'TimeSynchEntry'#22'AnchorSideLeft.Control'#7#13'TZLocat' +'ionBox'#21'AnchorSideTop.Control'#7#13'TZLocationBox'#18'AnchorSideTop.Side' +#7#9'asrBottom'#4'Left'#3#28#1#6'Height'#2'$'#3'Top'#3#25#1#5'Width'#3#26#1 +#16'EditLabel.Height'#2#19#15'EditLabel.Width'#3#134#0#17'EditLabel.Caption' +#6#21'Time Synchronization:'#21'EditLabel.ParentColor'#8#13'LabelPosition'#7 +#6'lpLeft'#8'TabOrder'#2#5#8'OnChange'#7#20'TimeSynchEntryChange'#0#0#9'TCom' +'boBox'#29'MovingStationaryPositionCombo'#22'AnchorSideLeft.Control'#7#14'Ti' +'meSynchEntry'#21'AnchorSideTop.Control'#7#14'TimeSynchEntry'#18'AnchorSideT' +'op.Side'#7#9'asrBottom'#4'Left'#3#28#1#6'Height'#2'$'#4'Hint'#6' GPS enable' +'d overrides to Moving.'#3'Top'#3'='#1#5'Width'#3#26#1#10'ItemHeight'#2#0#13 +'Items.Strings'#1#6#6'MOVING'#6#10'STATIONARY'#0#14'ParentShowHint'#8#8'Show' +'Hint'#9#8'TabOrder'#2#6#8'OnChange'#7'#MovingStationaryPositionComboChange' +#0#0#6'TLabel'#6'Label7'#21'AnchorSideTop.Control'#7#29'MovingStationaryPosi' +'tionCombo'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control' +#7#29'MovingStationaryPositionCombo'#4'Left'#2'i'#6'Height'#2#19#3'Top'#3'F' +#1#5'Width'#3#176#0#9'Alignment'#7#14'taRightJustify'#7'Anchors'#11#5'akTop' +#7'akRight'#0#19'BorderSpacing.Right'#2#3#7'Caption'#6#29'Moving / Stationar' +'y position:'#11'ParentColor'#8#0#0#9'TComboBox'#30'MovingStationaryDirectio' +'nCombo'#22'AnchorSideLeft.Control'#7#29'MovingStationaryPositionCombo'#21'A' +'nchorSideTop.Control'#7#29'MovingStationaryPositionCombo'#18'AnchorSideTop.' +'Side'#7#9'asrBottom'#4'Left'#3#28#1#6'Height'#2'$'#3'Top'#3'a'#1#5'Width'#3 +#26#1#10'ItemHeight'#2#0#13'Items.Strings'#1#6#6'MOVING'#6#5'FIXED'#0#8'TabO' +'rder'#2#7#8'OnChange'#7'$MovingStationaryDirectionComboChange'#0#0#6'TLabel' +#6'Label8'#21'AnchorSideTop.Control'#7#30'MovingStationaryDirectionCombo'#18 +'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#30'MovingS' +'tationaryDirectionCombo'#4'Left'#2'e'#6'Height'#2#19#3'Top'#3'j'#1#5'Width' +#3#180#0#9'Alignment'#7#14'taRightJustify'#7'Anchors'#11#5'akTop'#7'akRight' +#0#19'BorderSpacing.Right'#2#3#7'Caption'#6#30'Moving / Fixed look direction' +':'#11'ParentColor'#8#0#0#6'TLabel'#6'Label9'#21'AnchorSideTop.Control'#7#21 +'NumberOfChannelsEntry'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideR' +'ight.Control'#7#21'NumberOfChannelsEntry'#4'Left'#3#152#0#6'Height'#2#19#3 +'Top'#3#143#1#5'Width'#3#129#0#9'Alignment'#7#14'taRightJustify'#7'Anchors' +#11#5'akTop'#7'akRight'#0#19'BorderSpacing.Right'#2#3#7'Caption'#6#19'Number' +' of channels:'#11'ParentColor'#8#0#0#9'TSpinEdit'#21'NumberOfChannelsEntry' +#22'AnchorSideLeft.Control'#7#29'MovingStationaryPositionCombo'#21'AnchorSid' +'eTop.Control'#7#30'MovingStationaryDirectionCombo'#18'AnchorSideTop.Side'#7 +#9'asrBottom'#4'Left'#3#28#1#6'Height'#2'$'#3'Top'#3#134#1#5'Width'#3#225#0 +#17'BorderSpacing.Top'#2#1#8'MinValue'#2#1#8'OnChange'#7#27'NumberOfChannels' +'EntryChange'#8'TabOrder'#2#8#5'Value'#2#1#0#0#12'TLabeledEdit#MeasurementDi' +'rectionPerChannelEntry'#22'AnchorSideLeft.Control'#7#12'SerialNumber'#21'An' +'chorSideTop.Control'#7#22'FiltersPerChannelEntry'#18'AnchorSideTop.Side'#7#9 +'asrBottom'#4'Left'#3#28#1#6'Height'#2'$'#3'Top'#3#243#1#5'Width'#3#225#0#16 +'EditLabel.Height'#2#19#15'EditLabel.Width'#3#224#0#17'EditLabel.Caption'#6 +'"Measurement direction per channel:'#21'EditLabel.ParentColor'#8#13'LabelPo' +'sition'#7#6'lpLeft'#8'TabOrder'#2#9#8'OnChange'#7')MeasurementDirectionPerC' +'hannelEntryChange'#0#0#12'TLabeledEdit'#16'FieldOfViewEntry'#22'AnchorSideL' +'eft.Control'#7'#MeasurementDirectionPerChannelEntry'#21'AnchorSideTop.Contr' +'ol'#7'#MeasurementDirectionPerChannelEntry'#18'AnchorSideTop.Side'#7#9'asrB' +'ottom'#4'Left'#3#28#1#6'Height'#2'$'#3'Top'#3#23#2#5'Width'#3#226#0#16'Edit' +'Label.Height'#2#19#15'EditLabel.Width'#3#141#0#17'EditLabel.Caption'#6#24'F' +'ield of view (degrees):'#21'EditLabel.ParentColor'#8#13'LabelPosition'#7#6 +'lpLeft'#8'TabOrder'#2#10#8'OnChange'#7#22'FieldOfViewEntryChange'#0#0#9'TCo' +'mboBox'#13'TZLocationBox'#22'AnchorSideLeft.Control'#7#11'TZRegionBox'#21'A' +'nchorSideTop.Control'#7#11'TZRegionBox'#18'AnchorSideTop.Side'#7#9'asrBotto' +'m'#4'Left'#3#28#1#6'Height'#2'#'#3'Top'#3#246#0#5'Width'#3#26#1#10'ItemHeig' +'ht'#2#0#5'Style'#7#14'csDropDownList'#8'TabOrder'#2#11#8'OnChange'#7#19'TZL' +'ocationBoxChange'#0#0#6'TLabel'#7'Label11'#21'AnchorSideTop.Control'#7#13'T' +'ZLocationBox'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Cont' +'rol'#7#13'TZLocationBox'#4'Left'#3#148#0#6'Height'#2#19#3'Top'#3#254#0#5'Wi' +'dth'#3#133#0#9'Alignment'#7#14'taRightJustify'#7'Anchors'#11#5'akTop'#7'akR' ,'ight'#0#19'BorderSpacing.Right'#2#3#7'Caption'#6#20'Local timezone name:'#11 +'ParentColor'#8#0#0#12'TLabeledEdit'#12'UserComment1'#22'AnchorSideLeft.Cont' +'rol'#7#16'FieldOfViewEntry'#21'AnchorSideTop.Control'#7#16'FieldOfViewEntry' +#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#28#1#6'Height'#2'$'#3'Top'#3 +';'#2#5'Width'#3#28#1#16'EditLabel.Height'#2#19#15'EditLabel.Width'#2'G'#17 +'EditLabel.Caption'#6#9'Comments:'#21'EditLabel.ParentColor'#8#13'LabelPosit' +'ion'#7#6'lpLeft'#8'TabOrder'#2#12#8'OnChange'#7#18'UserComment1Change'#0#0#5 +'TEdit'#12'UserComment2'#22'AnchorSideLeft.Control'#7#12'UserComment1'#21'An' +'chorSideTop.Control'#7#12'UserComment1'#18'AnchorSideTop.Side'#7#9'asrBotto' +'m'#4'Left'#3#28#1#6'Height'#2'$'#3'Top'#3'_'#2#5'Width'#3#28#1#8'TabOrder'#2 +#13#8'OnChange'#7#18'UserComment2Change'#0#0#5'TEdit'#12'UserComment3'#22'An' +'chorSideLeft.Control'#7#12'UserComment2'#21'AnchorSideTop.Control'#7#12'Use' +'rComment2'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#28#1#6'Height'#2 +'$'#3'Top'#3#131#2#5'Width'#3#28#1#8'TabOrder'#2#14#8'OnChange'#7#18'UserCom' +'ment3Change'#0#0#5'TEdit'#12'UserComment4'#22'AnchorSideLeft.Control'#7#12 +'UserComment3'#21'AnchorSideTop.Control'#7#12'UserComment3'#18'AnchorSideTop' +'.Side'#7#9'asrBottom'#4'Left'#3#28#1#6'Height'#2'$'#3'Top'#3#167#2#5'Width' +#3#28#1#8'TabOrder'#2#15#8'OnChange'#7#18'UserComment4Change'#0#0#5'TEdit'#12 +'UserComment5'#22'AnchorSideLeft.Control'#7#12'UserComment4'#21'AnchorSideTo' +'p.Control'#7#12'UserComment4'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left' +#3#28#1#6'Height'#2'$'#3'Top'#3#203#2#5'Width'#3#28#1#8'TabOrder'#2#16#8'OnC' +'hange'#7#18'UserComment5Change'#0#0#12'TLabeledEdit'#16'CoverOffsetEntry'#22 +'AnchorSideLeft.Control'#7#21'NumberOfChannelsEntry'#21'AnchorSideTop.Contro' +'l'#7#21'NumberOfChannelsEntry'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left' +#3#28#1#6'Height'#2'$'#4'Hint'#6#142'this is the difference in reading cause' +'d by the weatherproof housing.'#10'For people using the standard housing fr' +'om Unihedron the value is -0.11.'#3'Top'#3#171#1#5'Width'#2'z'#17'BorderSpa' +'cing.Top'#2#1#16'EditLabel.Height'#2#19#15'EditLabel.Width'#2'R'#17'EditLab' +'el.Caption'#6#13'Cover Offset:'#21'EditLabel.ParentColor'#8#13'LabelPositio' +'n'#7#6'lpLeft'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#18#8'OnChan' +'ge'#7#22'CoverOffsetEntryChange'#0#0#12'TLabeledEdit'#12'SerialNumber'#4'Le' +'ft'#3#28#1#6'Height'#2'$'#3'Top'#2'#'#5'Width'#3#131#0#7'Anchors'#11#0#16'E' +'ditLabel.Height'#2#19#15'EditLabel.Width'#2']'#17'EditLabel.Caption'#6#14'S' +'erial Number:'#21'EditLabel.ParentColor'#8#13'LabelPosition'#7#6'lpLeft'#8 +'ReadOnly'#9#8'TabOrder'#2#17#7'TabStop'#8#0#0#9'TComboBox'#22'FiltersPerCha' +'nnelEntry'#22'AnchorSideLeft.Control'#7#16'CoverOffsetEntry'#21'AnchorSideT' +'op.Control'#7#16'CoverOffsetEntry'#18'AnchorSideTop.Side'#7#9'asrBottom'#4 +'Left'#3#28#1#6'Height'#2'$'#3'Top'#3#207#1#5'Width'#3#225#0#10'ItemHeight'#2 +#0#9'ItemIndex'#2#0#13'Items.Strings'#1#6#11'HOYA CM-500'#0#8'TabOrder'#2#19 +#4'Text'#6#11'HOYA CM-500'#8'OnChange'#7#28'FiltersPerChannelEntryChange'#0#0 +#6'TLabel'#7'Label10'#21'AnchorSideTop.Control'#7#22'FiltersPerChannelEntry' +#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#22'Filt' +'ersPerChannelEntry'#4'Left'#3#163#0#6'Height'#2#19#3'Top'#3#216#1#5'Width'#2 +'y'#9'Alignment'#7#14'taRightJustify'#7'Anchors'#11#5'akTop'#7'akRight'#0#7 +'Caption'#6#21'Filters per channel: '#11'ParentColor'#8#0#0#6'TLabel'#19'Inv' +'alidInstrumentID'#22'AnchorSideLeft.Control'#7#17'InstrumentIDEntry'#19'Anc' +'horSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#17'InstrumentI' +'DEntry'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3':'#2#6'Height'#2#19 +#4'Hint'#6#174'Since the instrument ID is used in '#10'the filename, spaces ' +'and other '#10'characters outside of the set [A-Za-z0-9_-] '#10'are not per' +'mitted (use dash or '#10'underscore instead of space).'#3'Top'#2'P'#5'Width' +#2')'#18'BorderSpacing.Left'#2#5#7'Caption'#6#7'Invalid'#10'Font.Color'#7#5 +'clRed'#11'ParentColor'#8#10'ParentFont'#8#14'ParentShowHint'#8#8'ShowHint'#9 +#7'Visible'#8#0#0#7'TButton'#18'EditPositionButton'#22'AnchorSideLeft.Contro' +'l'#7#13'PositionEntry'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSide' +'Top.Control'#7#13'PositionEntry'#18'AnchorSideTop.Side'#7#9'asrCenter'#20'A' +'nchorSideRight.Side'#7#9'asrBottom'#4'Left'#3'9'#2#6'Height'#2#31#3'Top'#3 +#182#0#5'Width'#2'4'#18'BorderSpacing.Left'#2#3#7'Caption'#6#4'Edit'#8'TabOr' +'der'#2#20#7'OnClick'#7#23'EditPositionButtonClick'#0#0#7'TButton'#11'CloseB' +'utton'#19'AnchorSideLeft.Side'#7#9'asrBottom'#20'AnchorSideRight.Side'#7#9 +'asrBottom'#24'AnchorSideBottom.Control'#7#12'UserComment5'#21'AnchorSideBot' +'tom.Side'#7#9'asrBottom'#4'Left'#3';'#2#6'Height'#2#31#3'Top'#3#208#2#5'Wid' +'th'#2'3'#7'Anchors'#11#8'akBottom'#0#18'BorderSpacing.Left'#2#3#7'Caption'#6 +#5'Close'#8'TabOrder'#2#21#7'OnClick'#7#16'CloseButtonClick'#0#0#7'TButton' ,#12'PDFDocButton'#4'Left'#3#28#1#6'Height'#2#31#4'Hint'#6#15'PDF definitions' +#3'Top'#2#251#5'Width'#2'K'#7'Anchors'#11#0#7'Caption'#6#3'PDF'#8'TabOrder'#2 +#22#7'OnClick'#7#17'PDFDocButtonClick'#0#0#6'TLabel'#15'DefinitionsLink'#19 +'AnchorSideLeft.Side'#7#9'asrBottom'#4'Left'#3'z'#1#6'Height'#2#19#3'Top'#2 +#252#5'Width'#3#170#0#7'Anchors'#11#0#18'BorderSpacing.Left'#2#4#7'Caption'#6 +#24'darksky.org/measurements'#10'Font.Color'#7#6'clBlue'#11'ParentColor'#8#10 +'ParentFont'#8#7'OnClick'#7#20'DefinitionsLinkClick'#12'OnMouseEnter'#7#25'D' +'efinitionsLinkMouseEnter'#12'OnMouseLeave'#7#25'DefinitionsLinkMouseLeave'#0 +#0#7'TButton'#7'Button1'#4'Left'#2#25#6'Height'#2'#'#3'Top'#3#246#0#5'Width' +#2'e'#7'Caption'#6#10'Exist test'#8'TabOrder'#2#23#7'Visible'#8#7'OnClick'#7 +#12'Button1Click'#0#0#6'TLabel'#9'TZRefLink'#22'AnchorSideLeft.Control'#7#11 +'TZRegionBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Contro' +'l'#7#11'TZRegionBox'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3':'#2#6 +'Height'#2#19#3'Top'#3#221#0#5'Width'#2'1'#18'BorderSpacing.Left'#2#4#7'Capt' +'ion'#6#9'Wiki ref.'#10'Font.Color'#7#6'clBlue'#11'ParentColor'#8#10'ParentF' +'ont'#8#7'OnClick'#7#14'TZRefLinkClick'#0#0#0#0#0 ]); ��������������������������������������������./dattokml.lfm��������������������������������������������������������������������������������������0000644�0001750�0001750�00000006620�14576573021�013472� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object Form7: TForm7 Left = 1876 Height = 449 Top = 50 Width = 504 Caption = '.dat to .kml conversion' ClientHeight = 449 ClientWidth = 504 Constraints.MinHeight = 449 Constraints.MinWidth = 504 OnShow = FormShow Position = poScreenCenter LCLVersion = '1.8.2.0' object SchemeImage: TImage AnchorSideLeft.Control = ColorSchemeGroup AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Owner AnchorSideRight.Control = HelpNotes AnchorSideBottom.Control = StatusLine Left = 128 Height = 412 Top = 4 Width = 120 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Around = 4 end object SelectAndConvertButton: TButton AnchorSideLeft.Control = Owner AnchorSideTop.Control = ColorSchemeGroup AnchorSideTop.Side = asrBottom Left = 4 Height = 25 Top = 92 Width = 120 BorderSpacing.Around = 4 Caption = 'Select and convert' OnClick = SelectAndConvertButtonClick TabOrder = 0 end object HelpNotes: TMemo AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = StatusLine Left = 252 Height = 412 Top = 4 Width = 248 Anchors = [akTop, akRight, akBottom] BorderSpacing.Around = 4 Lines.Strings = ( 'This tool converts a .dat log file to a .kml file. This is used when a connected meter and an external GPS are read by UDM in the Log' 'Continuous datalogging mode. ' '' 'The .kml file can be opened in GoogleEarth.' '' 'The legend image (kmllegend*.png) must be available to GoogleEarth in the same directory to properly display the legend.' '' 'The color range shows values that are greater than the lower number and less than or equal to the upper number.' ) ReadOnly = True TabOrder = 1 end object ColorSchemeGroup: TRadioGroup AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 4 Height = 84 Top = 4 Width = 120 AutoFill = True BorderSpacing.Around = 4 Caption = 'Color scheme' ChildSizing.LeftRightSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 67 ClientWidth = 116 ItemIndex = 0 Items.Strings = ( 'New atlas' 'Cleardarksky' ) OnClick = ColorSchemeGroupClick TabOrder = 2 end object StatusLine: TLabeledEdit AnchorSideLeft.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 4 Height = 25 Top = 420 Width = 496 Anchors = [akLeft, akRight, akBottom] BorderSpacing.Around = 4 EditLabel.AnchorSideLeft.Control = StatusLine EditLabel.AnchorSideRight.Control = StatusLine EditLabel.AnchorSideRight.Side = asrBottom EditLabel.AnchorSideBottom.Control = StatusLine EditLabel.Left = 4 EditLabel.Height = 15 EditLabel.Top = 401 EditLabel.Width = 496 EditLabel.Caption = 'Status:' EditLabel.ParentColor = False TabOrder = 3 end object OpenLogDialog: TOpenDialog left = 40 top = 152 end end ����������������������������������������������������������������������������������������������������������������./citylights.jpg������������������������������������������������������������������������������������0000644�0001750�0001750�00000060576�14576573022�014053� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������JFIF�����Exif��II*���� �����z���� ���������������������������(�������1� ������2�������i���������NIKON CORPORATION�NIKON D70s��������������GIMP 2.10.22��2020:12:29 08:29:30��������������'������������ ������������ ������������������� ������� ����������������� �������������������������#��� ���2005:07:06 22:20:20�������������$��� �����������������������������6���������������������������<������G����������JFIF�������C�    $.' ",#(7),01444'9=82<.342�C  2!!22222222222222222222222222222222222222222222222222���"������������ ����}�!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz�������� ���w�!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz� ��?� =i9Tn(QO (�@)RS(P�)p=)J�7җҝ v�zTivp#�g�FKҗ&]g4DWF=]m@)vmh-mvѷހ!3ImHM+@ʊ%qQUe(V="_jz&-Hh�)Zp_HJ4 O 4\Ҟv.20)1ڞR&pZ�J% "i|Sm�Dڔ%Me ˣ`]\ _=}lWGO,RMǞ`&JU)Q{UE*&Ү:Te( {ԊM=Tq1ԁi 8Enp_zpӸpZpSN�pRpSE0 JҸST 8/+%(ަivRtN❲..l#=Xg֬mGhXc>_֐z.;J l4\V+M4W( UҘTp*2 T }*CҋX%JRAJCO RlOjP(JxJw BSsEa}j@\,D2Rk&qȌv*DRV)?jnJV$蹩!H-贾c•dj QV3u&4*&y|tE"*ڐE"\1SZ?jwOjaOjc4~\,R)L)W S t\V)2qҡd G@XΆX]ѸaVV[$N0] Qq@TRz .+ N N�Spе _jpP3Na JzE+yR,~:V0i\v!XU5*J]bR^[S^\e?'ړ]'Ea1{U4Eccp(>jcbhъ.3uGZ FQpP:VD*XC&Rj<>pA[s]Eon~ _"baBg;IEə/:T'Yɤկf�V>lϙOWwHqiü2sW n8mbh2][2cƦ㱢UVEⰪ:-"-YHE`E=R*{R1U^2@TJT�@#,U 8E@ʞ]'*Hb &:ii�ca(:a}*a=yhE?jCfUUiڀq3wGTCh)5a-! RO-{DK 6=j#eW*!;s@Q&dTHNb* 8 hm d#W$6Zk �d'֭[yHV-h.z31\`xtjM(i$s<@@6 nZYږ)mV {VݕB:T91#>;6YK6?kHII̭VVRZlфҥ[cTuc)nHgƒZBWVSũmKcUSj})ڶOli; "NǵFm :S fM1JLDоSrN>(4W$cjװe! ,&/jc@})�ڑB[JvVo@*ٶ}ҚB T-Aq0Z=?�Z]ad�h jU3G$o5벺T7brG, s'j܅f;'=*܅wo<U9.W9zqɖ"irK|c=cm2(< \oqZ= :;%ٔ �]GwqUV�OmBSdUH�֯>m@>p uU+:^?,ܬj!H I?*{2rG_J"<eƫ1#7_zԳǰfUqך_%N:f\\:M=> =zӊzK.0j1^5iv`Vfo/9`;̬sVm,Cw=OYƽy%܂X{#�s7?<G-573ԮnUwu_>L0n%'k%\<:#NyqK˶9GQ8\r*Hxtlc ㊞X=OI<y!9pvG䞕ItnPe_T<׃-38*3BjX[oWΗ#;2[zwmF9gp0Ҽ1_ϭki>%tdr,E/W=]̗w$۰PȾt'*܃^L9ԣE,\/Py*aYEmq+cy5[PIXWrRZGt[l,kDgWI>cq:S"F88g ;޷\4(?ˆ@nf(evd+ӵպV/ /NșFь*ߎh{t78i#\ylPmC˞+b6E\-2;Uֶ޼4sD99v]�9PpMG*̋W#?!Y�{[/Rn@(;&*X2F)su1dD�C'C""īa[R^*O^yNf _#^pcPo9 Mh u#nҳi{3KƬD8#4 ,m,ノ*c@q_ [<mʥ|�W-MoYI#HFV99ڬL^]A89|Vmp[bU'ַY1#?(eqTSL!uE/@�nacر(#�Ж82&�݄.@PPsM8j-I*I;BƪNcI1摀<{yyVx"͑OZNڌ8 :HSncGIMʰOZFF9(\I簠(Iiʅbp)e<3EB1֎FO4C1xl5'9=)1=h`'{nOI=ǂ 9 }x$ړ&.诈&<јk0ChBK5=vH%Sg<g k(ccU/ZM?C9KjmbW#+*I!o{Ե4R5�hWd|=%m>{cDV;9 K:Pgu?竊@ҷ'RxRwƤL Y%1exߣXSjCp1�EIV�yEk*/$ c>=3Q̛O\oz[HKk4[poGk(rH$䓜\?^-QYw:y{ p .>QTn<¤ƻ+[[>٦p>N:W-tnyp0qWFfjAr-VK*I^t ɏ2܏Xz4uiڽr@jPzJɸG=T#O'ӭw$TvA\-8p7o8U' bUH~FAJ4"e֊RMn9 HܦNz~Tq\&sw)cB9\g;`k\*ḍ#$T1Ip+5fsNsRTn V07CZFeb �t=Q)=1On?S$\_ڦEU4QKPbX4${S^Bx ׊rI\zѰH́ى?J�qަn T3^&Op0Gz|Ɨ2jR90;s؞R!pM4=*ض>۶H=8rM!`sL,a*H�̧:ZMbK` W 9Ȩʫ0GRb�̸pO8<9sb4BYx=5=^-iXV;I`tur @އ{MVxY?cܤ`á*cwlx#?MOF Tmk^ bk_*5yͭ@nqs-_J{,^Bg lA�5�?ֱ̤bj.~ЎqmLQSjQ%IT, <Y~�WqtW ӫ3iCS__#H9=MuV`N@{W-e�ҷ{?ʧ3478b[8Vn, 2),Ǘ7֬[�*_:i{t4zJ?j46%8ڭ]�oit?vh0 t R�MtGվ7mIQ>suSۧbӒG5ivUUjjQ= UeryϵO$d`�->_tk;\$#,Hzl;j&֒lv7= 0Q=3('hˌsӓNz ?Tj_aG# ߭4q瞕$?q>_i#f�Ϲ�+?Jh,p,ǴJcǭJG?R?�~http://ns.adobe.com/xap/1.0/�<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:iptcExt="http://iptc.org/std/Iptc4xmpExt/2008-02-29/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:plus="http://ns.useplus.org/ldf/xmp/1.0/" xmlns:GIMP="http://www.gimp.org/xmp/" xmlns:aux="http://ns.adobe.com/exif/1.0/aux/" xmlns:crs="http://ns.adobe.com/camera-raw-settings/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:exif="http://ns.adobe.com/exif/1.0/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:DocumentID="xmp.did:CFC54E323354E111885FECED0D41C93E" xmpMM:InstanceID="xmp.iid:907c4a84-7437-48a3-b762-3677d91621f1" xmpMM:OriginalDocumentID="xmp.did:CFC54E323354E111885FECED0D41C93E" GIMP:API="2.0" GIMP:Platform="Linux" GIMP:TimeStamp="1609248572895094" GIMP:Version="2.10.22" aux:Lens="18.0-70.0 mm f/3.5-4.5" crs:AutoBrightness="True" crs:AutoContrast="True" crs:AutoExposure="True" crs:AutoShadows="True" crs:BlueHue="0" crs:BlueSaturation="0" crs:Brightness="100" crs:CameraProfile="ACR 2.4" crs:ChromaticAberrationB="0" crs:ChromaticAberrationR="0" crs:ColorNoiseReduction="25" crs:Contrast="+30" crs:Exposure="+1.55" crs:GreenHue="0" crs:GreenSaturation="0" crs:HasCrop="False" crs:HasSettings="True" crs:LuminanceSmoothing="0" crs:RawFileName="DSC_0020.NEF" crs:RedHue="0" crs:RedSaturation="0" crs:Saturation="0" crs:ShadowTint="0" crs:Shadows="0" crs:Sharpness="25" crs:Temperature="4400" crs:Tint="-4" crs:ToneCurve="0, 0, 32, 22, 64, 56, 128, 128, 192, 196, 255, 255" crs:ToneCurveName="Medium Contrast" crs:Version="3.1" crs:VignetteAmount="0" crs:WhiteBalance="As Shot" dc:Format="image/jpeg" exif:ApertureValue="361471/100000" exif:DateTimeOriginal="2005-07-06T22:20:20-04:00" exif:ExposureBiasValue="0/1" exif:ExposureTime="2/1" exif:FNumber="35/10" exif:FocalLength="18/1" exif:FocalLengthIn35mmFilm="27" exif:MaxApertureValue="36/10" exif:MeteringMode="5" exif:NativeDigest="36864,40960,40961,37121,37122,40962,40963,37510,40964,36867,36868,33434,33437,34850,34852,34855,34856,37377,37378,37379,37380,37381,37382,37383,37384,37385,37386,37396,41483,41484,41486,41487,41488,41492,41493,41495,41728,41729,41730,41985,41986,41987,41988,41989,41990,41991,41992,41993,41994,41995,41996,42016,0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,22,23,24,25,26,27,28,30;F0EA45BB385AA6818023354458EC5024" exif:PixelXDimension="3008" exif:PixelYDimension="2000" exif:ShutterSpeedValue="-1/1" photoshop:ColorMode="3" photoshop:ICCProfile="Adobe RGB (1998)" xmp:CreateDate="2005-07-06T22:20:20-04:00" xmp:CreatorTool="GIMP 2.10" xmp:MetadataDate="2012-02-10T17:04:26-05:00" xmp:ModifyDate="2012-02-10T17:04:26-05:00"> <iptcExt:LocationCreated> <rdf:Bag/> </iptcExt:LocationCreated> <iptcExt:LocationShown> <rdf:Bag/> </iptcExt:LocationShown> <iptcExt:ArtworkOrObject> <rdf:Bag/> </iptcExt:ArtworkOrObject> <iptcExt:RegistryId> <rdf:Bag/> </iptcExt:RegistryId> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="saved" stEvt:changed="/" stEvt:instanceID="xmp.iid:CFC54E323354E111885FECED0D41C93E" stEvt:softwareAgent="Adobe Photoshop CS4 Windows" stEvt:when="2012-02-10T17:04:26-05:00"/> <rdf:li stEvt:action="converted" stEvt:parameters="from application/vnd.adobe.photoshop to image/jpeg"/> <rdf:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/jpeg"/> <rdf:li stEvt:action="saved" stEvt:changed="/" stEvt:instanceID="xmp.iid:D0C54E323354E111885FECED0D41C93E" stEvt:softwareAgent="Adobe Photoshop CS4 Windows" stEvt:when="2012-02-10T17:04:26-05:00"/> <rdf:li stEvt:action="saved" stEvt:changed="/" stEvt:instanceID="xmp.iid:05648835-89bd-4333-9af7-a7978f904c59" stEvt:softwareAgent="Gimp 2.10 (Linux)" stEvt:when="-05:00"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:documentID="xmp.did:CFC54E323354E111885FECED0D41C93E" stRef:instanceID="xmp.iid:CFC54E323354E111885FECED0D41C93E" stRef:originalDocumentID="xmp.did:CFC54E323354E111885FECED0D41C93E"/> <plus:ImageSupplier> <rdf:Seq/> </plus:ImageSupplier> <plus:ImageCreator> <rdf:Seq/> </plus:ImageCreator> <plus:CopyrightOwner> <rdf:Seq/> </plus:CopyrightOwner> <plus:Licensor> <rdf:Seq/> </plus:Licensor> <exif:Flash exif:Fired="False" exif:Function="False" exif:Mode="2" exif:RedEyeMode="False" exif:Return="0"/> <exif:ISOSpeedRatings> <rdf:Seq> <rdf:li>640</rdf:li> </rdf:Seq> </exif:ISOSpeedRatings> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="w"?>ICC_PROFILE���lcms0��mntrRGB XYZ � �� �� acspAPPL�������������������������������-lcms����������������������������������������������� desc�� ���@cprt��`���6wtpt�����chad�����,rXYZ�����bXYZ�����gXYZ������rTRC����� gTRC����� bTRC����� chrm��4���$dmnd��X���$dmdd��|���$mluc���������� enUS���$����G�I�M�P� �b�u�i�l�t�-�i�n� �s�R�G�Bmluc���������� enUS�������P�u�b�l�i�c� �D�o�m�a�i�n��XYZ �����������-sf32����� B��%��������nXYZ ������o��8��XYZ ������$����XYZ ������b����para��������ff���� Y���� [chrm�����������T|��L����&g��\mluc���������� enUS�������G�I�M�Pmluc���������� enUS�������s�R�G�B�HPhotoshop 3.0�8BIM�����,7� 2020-12-29��33545<�08:29:30-08:29�C�      �C  ""   ��,��������������������������� ���kQUPꊂ: �`����"I$j(1@Հ`8�BPA$M2RR�1 `����RI$u1%:c %aH� PSI76QE cP1V�@!$A+UQJR5pJƍXp�AP!I 1䡭 p5�`�!R!J&\̒TʆPR5` IB"DJI KI@P(rRP5ʖl&B4i$sZ1N*h%1�JiDH ˺*SJZ,ˋ**t�H"I$2PԡS(CBB֒VP�*D,I$3zپaK뛔Z.Ye �B$DH$5>.Kk,u4K.KZ,pK"ȉ 3#y03"]e54Ԥв()*%K" 3#3B9yr~:#7ǨҬ;bX UJ4 k3%y}_7YЅK7Ufvy5w=SUYƶc7Kyɛ\әQ'r"t^s=Tq^vYgFXVܝmxs]}vmNkYy-w X lkyn+1xRXA@oNqzcgƞmpsx=~f婤f%59/5P�(uYTee-^^fkzf:Mvm㋷<0TR&63M"u<*[fg|D랜8> pֲk6iQ5T*TirQRԬϫ+jzC^NYǦ9U$UilXL,qjH4ͨ!j}/z>~3~n?7<ݜz+cX|,8b59rfrƦzfk+&5=cbS|ʥߞogHQ#;5q6ƪJ+6u*W jHVZig�(�������! 01"2@AP���_诂~d.ЅBB.!_.k._%h]!t]/B!B.кB&hB!B|BMMME.!B5hB!B/Ƅ! !F!Bit(B!B!B!B0!ɎB!B!B"`F,+iȶ3,cGQB!B!B0"qDyO/ "!B!F0L9.u"/TO27*EH#QDɩj+:Y?GwhRa<'304455:kR BrМ-Ef6byG?iZS- sI#&[*G8#|DU}c#C ~v>nN5&:nZbLF3ɎųcS e3rxRB:]d(ר< 'r3L39fM,io7$ۏwbrԷ*pϞm_;1Ja- TɎ+1U<lЙ?gQZFFROG}G*YrrfM7hS#f"MO={#)>YԱ>+ȞLPz$eQ[>boY *T$?U`~ab=GYsZ^JՔvis&N3'Vک Bj/U:Nd됷�c-4$Mk$ShW-U񎧨 M hhjEe`ymy[L3s/4-r|f㙏 b$$DADkJ64+IɈXlt5vb#'.?]OL|$ot�&���������� @01!AP`ap�?�!M3wJ7^=J"/E(KՌXNav K N"΍&Zصł>BQ]8gA3OL<D8QG}G>8>#P^~ œ؞�.��������� !01PQ@Aaq"2�? I$џFUV0R&Dy$ ̈$C@H$rEh1LQ(2GIAAEW8z$AYT2I ؂D6I"$I7ϱ D^,(dUf3HjQR֧AM3i(eVW-5% BU]c3xeo?bJ\A|)T [ћKdM/^S/UJܧ>w)o1M\$7f!Ir.ʟ ¥S'ob�letZ�2��������!1Aa "0Q2@Pq#р��?�|Z|-YSo�s] eQ.| ǺBV3r;p}D3);Gh8b/0!Yy.^NV$+ro* 'Yk4{ -JQ6/cЉY[3DV* Q7TXL-v_9'V˜L#dȮcBU{Xyz a5"FC^) ?N'"n1EUB._;훫Ioa}�aJkt}Mۘ㉺<ȓ)dDௐ]O1׋^&H^ȿV%,<dDnHM*y��)��������!1AQaq 0@��?!X@103  1A@AF   $HADz�" 0 " 0F#A445!   A= haX  ��!BX@XAF#�d`  H "#,$'Fx,bVA"J K�0HH  HAXx 3H$FAQE�Ya TL * WBBBBB a0 0�ڗ# /R&3hřtېB /�0Wo/'4e IP %r&"\HHA1QEQ^�99=*s0)rfXREW <6Xee,?j~ bkQ, 4"-OXKb,(ҥ؁ ok!-JVx𡨷:ìhA\jʊ@,04E΂MƓI|_Y6q$VRiG {'gɔBYݕ qsD+)*uU '"G|^UXܖK2BIK{~B+WHu-㮤: zA'dY  ܼ mIrNKN18^pc|4u^16$M>r 9KH)< fJf�;5t=VjKnk&JMV =r+O!4P=$L΂V3zvZ^yTCU^1V8>t&x l$!UQjYXkɣ^͗Hhk'\JY8ԡjYM˛ɩ3b$ XzQ"</:CHWy;pYhom#yDfFːm_̩]r;MU IAy<'6ekHҍ]7P V^^"T̼bD`K "F #|D)yӚ,mIsjuq#(7'MVs!1rέKDZW'dU|9"\ς/cW>D;LsغG’_:Ո.!, "hJbu,I#bc g$ޱTr5I:КY]5RP&K*V~ͥQD%66f<|SBn{FH4BVGE kҵНypqA)Jb,\%WсȂĄ`l&%XYm"y4N-ʅZt}j訂5it Gع=ޙd+St/>;L 5q9$f-Hܢ ,T#01D/MlPDI48KFV?*Nڽ3J^Ι޿s7jkZ_\JK ݔ' ٯ9"*[RӼ1n2zgO65ZDGp*!wTh^2#(Ѐi"L)=K)QJkņ;-j$w=xZKuU;TjQmnK{[QmaQaJBJijttqt<42J o<X~yL∐mA: BK:f* +CNIJUjTر� �����WKued/ +ë# $ bM[$?>rA|',�2J}I65L&I?YdK56\I�&O1ɘ®3J}+&+<\؀A&.yx;%kN�{|Ya) -i]RA7i/M=1e-d�)sefJ dvs+}NU�8؁M:(Cm 3\zW$qa`>hHt2!,G8- MN_nsJPʀ9:5o[D DFC�)����������� !1AQa@q0�?ʰ^x<3,&y<$0^%fCek 3dO3# 3 c1LaBJDT1rO�ϧ }dB L!0O<d^aŌpY&zC\24Ba0Bwt %G!BelhhL[AAkR O z D>Kf4%':p7宿oi>u5nhai-EO}>~>Y 0JテQ؞tn&o6h|w2%4>&#o~\}ߐuȔf-IAƃ-kQ,-̊RJ!4À$i%57Bx[/|>hƆ$B L&"cA4=!;.LެT*ƉwF.(d(cW(1_*HY5J=<_qyh=5E , HLf!SV/qsoBdL] ^{<N>1Xʆ L J`4%{kGv=?7�FzSA–[?OBK]޾G Z/s]u 6{ 1!bWXLO^6\nӒߩ'Z.\i >U~i/1#QA5Ԃ`l2x6C�)���������!1AQa q0@�?G |C'#|A &<1|1(Gx 18qǃNjxp㏍ǃx^/<~qx8\q/qˣx8� x8q8q8x<p*AX8ݖp+PJ8qQ@>l-Gqǃ2*϶WYtcࢊ,eeec_-Gh>[5W)3 h>+Q4odԀ{l#mn'[e|t4>uΐ7N_&UH:(9.D0"=bD %0D's7pHq. y ]VfwҐhLV! 睲u;GNp�"aO<yϗ%C,+a8o x4 x tﻕڻAR€@&6|:%G-&D~|W2 2�PbFxԠNW3_(;�p�7Uyfl*pDa-Bh¶yXhPie �;@)Lىup2r)A< a  ]ڕΐCC2lV%s6beiXp:ЂIu}`emUkj|�ECiN^BIZdyFDX=ax=�B5ҥ=X�w! p2Y 1 R'(5k %YMw[?@p7DMrN29\6L vfp"|am{t`z� fUQ( T;uK��!2<FC hZclܠ�2Mte4K," g*7E5)Z4@J_+PEz9M>vp:y,@GET& u逅 �8EJǏ�(�����!�1AQaq 0��?�ۀ| 0Z|89@2 B88!ҾO|C2؜@8N#Іp`a.+$,-7e2d58%qx~~q~|; Mx,*x<Sd~adX%+鉍(5Xه<8|08vK9}7Eƹߜ/ɁW =xdG <=qEV8}'Vbp`qNz<`gX`8�uG)!Gex=ُ'GX`j13u >?y`xdy(>,xdc_/ҳa>z 0K8d^ Xx\6u8pٌqԛs&82X8Ö9zOq= ۣ5-y##Yx<18_JORWB=,0`va0C&9pc/>}߱(}�1r XzK�!0zÇ\YmZʎ8dw?ZƱ6DI; =�>釢=W\T,f!x:\2St$' "&I4^Hn{Q|Ck5qu13*ȓ';02oL�;�N9F>rG60p i}(mEAblN*{sQ7wo5#L0M,ORԆ3>M�IT.8p�f ѤeytgL\TM*f+sٯ:*Z&#5B(,-SPKm�g3徧 XꀞK}'lN11˔``uۍdoF!HH1)AP?�v sαz}"0/ <EjL?,&Gnk#VUFe uoCD%рC^ViX%;0H #brN+Yw5;yG?@BJu^o/8sz I ~4DA*X'r2qY̚O?=c' ZO򲠅 *vf) VPړBêjcFZӗA $*@;;ts�HLd,>6気 RL^J`,l:'GT -k =f�ܒrgvZI! ujYpQ@2$R,DŌL$<8# l$MA"(P ^ BgScg;0ԑ][qxm$_*:Iڵmxnx`;/f 'Sdyʦ-$@EԢ @ i؁)lG% :_/t_&[!jYZ$95,ֆ䎉A:$׆EB@@ݳ^R6YVFaP )6g5r0JY6SȌʣ|$!ilhH6 &e\s m?T�{<hxƅ˨bq%:U}.XNb$9184b e =ϧ0TE� 値 <@Dԣ9&ipMВv^  ÔHRi#6iD5 xܧ( %C%bŵfH Dds^&IG �EfNMW˛T$ @|-X%!cd6ܑRp0&6oH3�2�HZj=0EC_뷍D-b8)xN_ȰR74|VDk, nn1%"2a1Sg*RWK0h0;!kp=8Eb�& DJ�.|O&'!a&Us"m8Ι9>~2S8 N_?řKhGy�B(QJu Z"&5)@&c%dƮa[\:C�=*R1Hvp DH5Ew!@ˁ99 7E)) J D$Dʭ OEZ:bHpN),TMlPͫ,lR2Eݚ-&#hs<w֥kx,CWZ-yl�o̸8[laQQLɀ � sZ:E$ 'B'Hp,껍B�b9h$ xo'n|Y%<|pś}} /:6|sU+oϚfJEC` Br �BN U (J Q9Ni;CxB1ѓF` @T`B `� P[&tE&5(bpGo=#l0\ڙһ4-<.gVIZ -%bJ(8 0Asb: ڮq(P.\JL38$!c"- <ؼl`qu zŸ?/氶\suz?eIPⲓs>~1eqyloY${�AfZ"lybXƦ1 :9o$>pԑ .Yw_7z֜(,UuH"~(aa5|̧/$8J 6 )ibK!5rI$`񨐓b̙*ڌ`*{zu� RLܭe2.bS Mgi h/D*CJd 5slPp |gl�wϜsl,dϞs7D�#?HC>~yT"98X_:X wI6 7 =Iɧ^?[7oR$R0 f.X5KIEiXcX 1 LK�MRE)1DU[|A=WxE7R^U" eU:cm¹qp[52f[(BZ#))t"dNl I Б&lTnjc{xc03l['Ͽ=h v{Jw>ϯx;ȽO:3 DH|Oύj�|}eo9/:j |VK4?IKU&�a2M| JЕ0p"z0�Al"(8PofQPLP1(h%QJq.B2vh SȘqڨ)AZF L'@S,=J`C  �ÕDn]$YaJ (G\,Ak$RBW%f@�C_D&oSH��=WGg`C+'끩?eL[5<~H- #(I2{]G_-%ͷ9O;ɰI0.]tb ~_ˏl}7넯/kx/oT|_o!=}#n0˜"LJE *Np�ft"c%+ BU 7+%4J!�DR�4ZBEi*ȵJcA TK52& ȱDa9 $ETѐ\PJb*tB m<"IȯQBDyQYrY\KO 또\ιay<d9D>~ӾR6 9�50u`y!6)bxRuř@5EkxfC sbHCar3Vy*Ju�&TYLH*>{4;i}%6fſ>W����������������������������������������������������������������������������������������������������������������������������������./synautil.pas��������������������������������������������������������������������������������������0000644�0001750�0001750�00000163457�14576573021�013544� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{==============================================================================| | Project : Ararat Synapse | 004.015.006 | |==============================================================================| | Content: support procedures and functions | |==============================================================================| | Copyright (c)1999-2013, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c) 1999-2013. | | Portions created by Hernan Sanchez are Copyright (c) 2000. | | Portions created by Petr Fejfar are Copyright (c)2011-2012. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | | Hernan Sanchez (hernan.sanchez@iname.com) | | Tomas Hajny (OS2 support) | | Radek Cervinka (POSIX support) | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@abstract(Support procedures and functions)} {$I jedi.inc} // load common compiler defines {$Q-} {$R-} {$H+} {$IFDEF UNICODE} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$WARN SUSPICIOUS_TYPECAST OFF} {$ENDIF} unit synautil; interface uses {$IFDEF MSWINDOWS} Windows, {$ELSE MSWINDOWS} {$IFDEF FPC} {$IFDEF OS2} Dos, TZUtil, {$ELSE OS2} UnixUtil, Unix, BaseUnix, {$ENDIF OS2} {$ELSE FPC} {$IFDEF POSIX} Posix.Base, Posix.Time, Posix.SysTypes, Posix.SysTime, Posix.Stdio, {$ELSE} Libc, {$ENDIF} {$ENDIF} {$ENDIF} {$IFDEF CIL} System.IO, {$ENDIF} SysUtils, Classes, SynaFpc; {$IFDEF VER100} type int64 = integer; {$ENDIF} {$IFDEF POSIX} type TTimeVal = Posix.SysTime.timeval; Ttimezone = record tz_minuteswest: Integer ; // minutes west of Greenwich tz_dsttime: integer ; // type of DST correction end; PTimeZone = ^Ttimezone; {$ENDIF} {:Return your timezone bias from UTC time in minutes.} function TimeZoneBias: integer; {:Return your timezone bias from UTC time in string representation like "+0200".} function TimeZone: string; {:Returns current time in format defined in RFC-822. Useful for SMTP messages, but other protocols use this time format as well. Results contains the timezone specification. Four digit year is used to break any Y2K concerns. (Example 'Fri, 15 Oct 1999 21:14:56 +0200')} function Rfc822DateTime(t: TDateTime): string; {:Returns date and time in format defined in C compilers in format "mmm dd hh:nn:ss"} function CDateTime(t: TDateTime): string; {:Returns date and time in format defined in format 'yymmdd hhnnss'} function SimpleDateTime(t: TDateTime): string; {:Returns date and time in format defined in ANSI C compilers in format "ddd mmm d hh:nn:ss yyyy" } function AnsiCDateTime(t: TDateTime): string; {:Decode three-letter string with name of month to their month number. If string not match any month name, then is returned 0. For parsing are used predefined names for English, French and German and names from system locale too.} function GetMonthNumber(Value: String): integer; {:Return decoded time from given string. Time must be witch separator ':'. You can use "hh:mm" or "hh:mm:ss".} function GetTimeFromStr(Value: string): TDateTime; {:Decode string representation of TimeZone (CEST, GMT, +0200, -0800, etc.) to timezone offset.} function DecodeTimeZone(Value: string; var Zone: integer): Boolean; {:Decode string in format "m-d-y" to TDateTime type.} function GetDateMDYFromStr(Value: string): TDateTime; {:Decode various string representations of date and time to Tdatetime type. This function do all timezone corrections too! This function can decode lot of formats like: @longcode(# ddd, d mmm yyyy hh:mm:ss ddd, d mmm yy hh:mm:ss ddd, mmm d yyyy hh:mm:ss ddd mmm dd hh:mm:ss yyyy #) and more with lot of modifications, include: @longcode(# Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123 Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036 Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() Format #) Timezone corrections known lot of symbolic timezone names (like CEST, EDT, etc.) or numeric representation (like +0200). By convention defined in RFC timezone +0000 is GMT and -0000 is current your system timezone.} function DecodeRfcDateTime(Value: string): TDateTime; {:Return current system date and time in UTC timezone.} function GetUTTime: TDateTime; {:Set Newdt as current system date and time in UTC timezone. This function work only if you have administrator rights!} function SetUTTime(Newdt: TDateTime): Boolean; {:Return current value of system timer with precizion 1 millisecond. Good for measure time difference.} function GetTick: LongWord; {:Return difference between two timestamps. It working fine only for differences smaller then maxint. (difference must be smaller then 24 days.)} function TickDelta(TickOld, TickNew: LongWord): LongWord; {:Return two characters, which ordinal values represents the value in byte format. (High-endian)} function CodeInt(Value: Word): Ansistring; {:Decodes two characters located at "Index" offset position of the "Value" string to Word values.} function DecodeInt(const Value: Ansistring; Index: Integer): Word; {:Return four characters, which ordinal values represents the value in byte format. (High-endian)} function CodeLongInt(Value: LongInt): Ansistring; {:Decodes four characters located at "Index" offset position of the "Value" string to LongInt values.} function DecodeLongInt(const Value: Ansistring; Index: Integer): LongInt; {:Dump binary buffer stored in a string to a result string.} function DumpStr(const Buffer: Ansistring): string; {:Dump binary buffer stored in a string to a result string. All bytes with code of character is written as character, not as hexadecimal value.} function DumpExStr(const Buffer: Ansistring): string; {:Dump binary buffer stored in a string to a file with DumpFile filename.} procedure Dump(const Buffer: AnsiString; DumpFile: string); {:Dump binary buffer stored in a string to a file with DumpFile filename. All bytes with code of character is written as character, not as hexadecimal value.} procedure DumpEx(const Buffer: AnsiString; DumpFile: string); {:Like TrimLeft, but remove only spaces, not control characters!} function TrimSPLeft(const S: string): string; {:Like TrimRight, but remove only spaces, not control characters!} function TrimSPRight(const S: string): string; {:Like Trim, but remove only spaces, not control characters!} function TrimSP(const S: string): string; {:Returns a portion of the "Value" string located to the left of the "Delimiter" string. If a delimiter is not found, results is original string.} function SeparateLeft(const Value, Delimiter: string): string; {:Returns the portion of the "Value" string located to the right of the "Delimiter" string. If a delimiter is not found, results is original string.} function SeparateRight(const Value, Delimiter: string): string; {:Returns parameter value from string in format: parameter1="value1"; parameter2=value2} function GetParameter(const Value, Parameter: string): string; {:parse value string with elements differed by Delimiter into stringlist.} procedure ParseParametersEx(Value, Delimiter: string; const Parameters: TStrings); {:parse value string with elements differed by ';' into stringlist.} procedure ParseParameters(Value: string; const Parameters: TStrings); {:Index of string in stringlist with same beginning as Value is returned.} function IndexByBegin(Value: string; const List: TStrings): integer; {:Returns only the e-mail portion of an address from the full address format. i.e. returns 'nobody@@somewhere.com' from '"someone" <nobody@@somewhere.com>'} function GetEmailAddr(const Value: string): string; {:Returns only the description part from a full address format. i.e. returns 'someone' from '"someone" <nobody@@somewhere.com>'} function GetEmailDesc(Value: string): string; {:Returns a string with hexadecimal digits representing the corresponding values of the bytes found in "Value" string.} function StrToHex(const Value: Ansistring): string; {:Returns a string of binary "Digits" representing "Value".} function IntToBin(Value: Integer; Digits: Byte): string; {:Returns an integer equivalent of the binary string in "Value". (i.e. ('10001010') returns 138)} function BinToInt(const Value: string): Integer; {:Parses a URL to its various components.} function ParseURL(URL: string; var Prot, User, Pass, Host, Port, Path, Para: string): string; {:Replaces all "Search" string values found within "Value" string, with the "Replace" string value.} function ReplaceString(Value, Search, Replace: AnsiString): AnsiString; {:It is like RPos, but search is from specified possition.} function RPosEx(const Sub, Value: string; From: integer): Integer; {:It is like POS function, but from right side of Value string.} function RPos(const Sub, Value: String): Integer; {:Like @link(fetch), but working with binary strings, not with text.} function FetchBin(var Value: string; const Delimiter: string): string; {:Fetch string from left of Value string.} function Fetch(var Value: string; const Delimiter: string): string; {:Fetch string from left of Value string. This function ignore delimitesr inside quotations.} function FetchEx(var Value: string; const Delimiter, Quotation: string): string; {:If string is binary string (contains non-printable characters), then is returned true.} function IsBinaryString(const Value: AnsiString): Boolean; {:return position of string terminator in string. If terminator found, then is returned in terminator parameter. Possible line terminators are: CRLF, LFCR, CR, LF} function PosCRLF(const Value: AnsiString; var Terminator: AnsiString): integer; {:Delete empty strings from end of stringlist.} Procedure StringsTrim(const value: TStrings); {:Like Pos function, buf from given string possition.} function PosFrom(const SubStr, Value: String; From: integer): integer; {$IFNDEF CIL} {:Increase pointer by value.} function IncPoint(const p: pointer; Value: integer): pointer; {$ENDIF} {:Get string between PairBegin and PairEnd. This function respect nesting. For example: @longcode(# Value is: 'Hi! (hello(yes!))' pairbegin is: '(' pairend is: ')' In this case result is: 'hello(yes!)'#)} function GetBetween(const PairBegin, PairEnd, Value: string): string; {:Return count of Chr in Value string.} function CountOfChar(const Value: string; Chr: char): integer; {:Remove quotation from Value string. If Value is not quoted, then return same string without any modification. } function UnquoteStr(const Value: string; Quote: Char): string; {:Quote Value string. If Value contains some Quote chars, then it is doubled.} function QuoteStr(const Value: string; Quote: Char): string; {:Convert lines in stringlist from 'name: value' form to 'name=value' form.} procedure HeadersToList(const Value: TStrings); {:Convert lines in stringlist from 'name=value' form to 'name: value' form.} procedure ListToHeaders(const Value: TStrings); {:swap bytes in integer.} function SwapBytes(Value: integer): integer; {:read string with requested length form stream.} function ReadStrFromStream(const Stream: TStream; len: integer): AnsiString; {:write string to stream.} procedure WriteStrToStream(const Stream: TStream; Value: AnsiString); {:Return filename of new temporary file in Dir (if empty, then default temporary directory is used) and with optional filename prefix.} function GetTempFile(const Dir, prefix: String): String; {:Return padded string. If length is greater, string is truncated. If length is smaller, string is padded by Pad character.} function PadString(const Value: AnsiString; len: integer; Pad: AnsiChar): AnsiString; {:XOR each byte in the strings} function XorString(Indata1, Indata2: AnsiString): AnsiString; {:Read header from "Value" stringlist beginning at "Index" position. If header is Splitted into multiple lines, then this procedure de-split it into one line.} function NormalizeHeader(Value: TStrings; var Index: Integer): string; {pf} {:Search for one of line terminators CR, LF or NUL. Return position of the line beginning and length of text.} procedure SearchForLineBreak(var APtr:PANSIChar; AEtx:PANSIChar; out ABol:PANSIChar; out ALength:integer); {:Skip both line terminators CR LF (if any). Move APtr position forward.} procedure SkipLineBreak(var APtr:PANSIChar; AEtx:PANSIChar); {:Skip all blank lines in a buffer starting at APtr and move APtr position forward.} procedure SkipNullLines (var APtr:PANSIChar; AEtx:PANSIChar); {:Copy all lines from a buffer starting at APtr to ALines until empty line or end of the buffer is reached. Move APtr position forward).} procedure CopyLinesFromStreamUntilNullLine(var APtr:PANSIChar; AEtx:PANSIChar; ALines:TStrings); {:Copy all lines from a buffer starting at APtr to ALines until ABoundary or end of the buffer is reached. Move APtr position forward).} procedure CopyLinesFromStreamUntilBoundary(var APtr:PANSIChar; AEtx:PANSIChar; ALines:TStrings; const ABoundary:ANSIString); {:Search ABoundary in a buffer starting at APtr. Return beginning of the ABoundary. Move APtr forward behind a trailing CRLF if any).} function SearchForBoundary (var APtr:PANSIChar; AEtx:PANSIChar; const ABoundary:ANSIString): PANSIChar; {:Compare a text at position ABOL with ABoundary and return position behind the match (including a trailing CRLF if any).} function MatchBoundary (ABOL,AETX:PANSIChar; const ABoundary:ANSIString): PANSIChar; {:Compare a text at position ABOL with ABoundary + the last boundary suffix and return position behind the match (including a trailing CRLF if any).} function MatchLastBoundary (ABOL,AETX:PANSIChar; const ABoundary:ANSIString): PANSIChar; {:Copy data from a buffer starting at position APtr and delimited by AEtx position into ANSIString.} function BuildStringFromBuffer (AStx,AEtx:PANSIChar): ANSIString; {/pf} var {:can be used for your own months strings for @link(getmonthnumber)} CustomMonthNames: array[1..12] of string; implementation {==============================================================================} const MyDayNames: array[1..7] of AnsiString = ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'); var MyMonthNames: array[0..6, 1..12] of String = ( ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', //rewrited by system locales 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'), ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', //English 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'), ('jan', 'fv', 'mar', 'avr', 'mai', 'jun', //French 'jul', 'ao', 'sep', 'oct', 'nov', 'dc'), ('jan', 'fev', 'mar', 'avr', 'mai', 'jun', //French#2 'jul', 'aou', 'sep', 'oct', 'nov', 'dec'), ('Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', //German 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'), ('Jan', 'Feb', 'Mr', 'Apr', 'Mai', 'Jun', //German#2 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'), ('Led', 'no', 'Be', 'Dub', 'Kv', 'en', //Czech 'ec', 'Srp', 'Z', 'j', 'Lis', 'Pro') ); {==============================================================================} function TimeZoneBias: integer; {$IFNDEF MSWINDOWS} {$IFNDEF FPC} var {$IFDEF POSIX} t: Posix.SysTypes.time_t; UT: Posix.time.tm; {$ELSE} t: TTime_T; UT: TUnixTime; {$ENDIF} begin {$IFDEF POSIX} __time(T); localtime_r(T, UT); Result := UT.tm_gmtoff div 60; {$ELSE} __time(@T); localtime_r(@T, UT); Result := ut.__tm_gmtoff div 60; {$ENDIF} {$ELSE} begin Result := TZSeconds div 60; {$ENDIF} {$ELSE} var zoneinfo: TTimeZoneInformation; bias: Integer; begin case GetTimeZoneInformation(Zoneinfo) of 2: bias := zoneinfo.Bias + zoneinfo.DaylightBias; 1: bias := zoneinfo.Bias + zoneinfo.StandardBias; else bias := zoneinfo.Bias; end; Result := bias * (-1); {$ENDIF} end; {==============================================================================} function TimeZone: string; var bias: Integer; h, m: Integer; begin bias := TimeZoneBias; if bias >= 0 then Result := '+' else Result := '-'; bias := Abs(bias); h := bias div 60; m := bias mod 60; Result := Result + Format('%.2d%.2d', [h, m]); end; {==============================================================================} function Rfc822DateTime(t: TDateTime): string; var wYear, wMonth, wDay: word; begin DecodeDate(t, wYear, wMonth, wDay); Result := Format('%s, %d %s %s %s', [MyDayNames[DayOfWeek(t)], wDay, MyMonthNames[1, wMonth], FormatDateTime('yyyy hh":"nn":"ss', t), TimeZone]); end; {==============================================================================} function CDateTime(t: TDateTime): string; var wYear, wMonth, wDay: word; begin DecodeDate(t, wYear, wMonth, wDay); Result:= Format('%s %2d %s', [MyMonthNames[1, wMonth], wDay, FormatDateTime('hh":"nn":"ss', t)]); end; {==============================================================================} function SimpleDateTime(t: TDateTime): string; begin Result := FormatDateTime('yymmdd hhnnss', t); end; {==============================================================================} function AnsiCDateTime(t: TDateTime): string; var wYear, wMonth, wDay: word; begin DecodeDate(t, wYear, wMonth, wDay); Result := Format('%s %s %d %s', [MyDayNames[DayOfWeek(t)], MyMonthNames[1, wMonth], wDay, FormatDateTime('hh":"nn":"ss yyyy ', t)]); end; {==============================================================================} function DecodeTimeZone(Value: string; var Zone: integer): Boolean; var x: integer; zh, zm: integer; s: string; begin Result := false; s := Value; if (Pos('+', s) = 1) or (Pos('-',s) = 1) then begin if s = '-0000' then Zone := TimeZoneBias else if Length(s) > 4 then begin zh := StrToIntdef(s[2] + s[3], 0); zm := StrToIntdef(s[4] + s[5], 0); zone := zh * 60 + zm; if s[1] = '-' then zone := zone * (-1); end; Result := True; end else begin x := 32767; if s = 'NZDT' then x := 13; if s = 'IDLE' then x := 12; if s = 'NZST' then x := 12; if s = 'NZT' then x := 12; if s = 'EADT' then x := 11; if s = 'GST' then x := 10; if s = 'JST' then x := 9; if s = 'CCT' then x := 8; if s = 'WADT' then x := 8; if s = 'WAST' then x := 7; if s = 'ZP6' then x := 6; if s = 'ZP5' then x := 5; if s = 'ZP4' then x := 4; if s = 'BT' then x := 3; if s = 'EET' then x := 2; if s = 'MEST' then x := 2; if s = 'MESZ' then x := 2; if s = 'SST' then x := 2; if s = 'FST' then x := 2; if s = 'CEST' then x := 2; if s = 'CET' then x := 1; if s = 'FWT' then x := 1; if s = 'MET' then x := 1; if s = 'MEWT' then x := 1; if s = 'SWT' then x := 1; if s = 'UT' then x := 0; if s = 'UTC' then x := 0; if s = 'GMT' then x := 0; if s = 'WET' then x := 0; if s = 'WAT' then x := -1; if s = 'BST' then x := -1; if s = 'AT' then x := -2; if s = 'ADT' then x := -3; if s = 'AST' then x := -4; if s = 'EDT' then x := -4; if s = 'EST' then x := -5; if s = 'CDT' then x := -5; if s = 'CST' then x := -6; if s = 'MDT' then x := -6; if s = 'MST' then x := -7; if s = 'PDT' then x := -7; if s = 'PST' then x := -8; if s = 'YDT' then x := -8; if s = 'YST' then x := -9; if s = 'HDT' then x := -9; if s = 'AHST' then x := -10; if s = 'CAT' then x := -10; if s = 'HST' then x := -10; if s = 'EAST' then x := -10; if s = 'NT' then x := -11; if s = 'IDLW' then x := -12; if x <> 32767 then begin zone := x * 60; Result := True; end; end; end; {==============================================================================} function GetMonthNumber(Value: String): integer; var n: integer; function TestMonth(Value: String; Index: Integer): Boolean; var n: integer; begin Result := False; for n := 0 to 6 do if Value = AnsiUppercase(MyMonthNames[n, Index]) then begin Result := True; Break; end; end; begin Result := 0; Value := AnsiUppercase(Value); for n := 1 to 12 do if TestMonth(Value, n) or (Value = AnsiUppercase(CustomMonthNames[n])) then begin Result := n; Break; end; end; {==============================================================================} function GetTimeFromStr(Value: string): TDateTime; var x: integer; begin x := rpos(':', Value); if (x > 0) and ((Length(Value) - x) > 2) then Value := Copy(Value, 1, x + 2); Value := ReplaceString(Value, ':', {$IFDEF COMPILER15_UP}FormatSettings.{$ENDIF}TimeSeparator); Result := -1; try Result := StrToTime(Value); except on Exception do ; end; end; {==============================================================================} function GetDateMDYFromStr(Value: string): TDateTime; var wYear, wMonth, wDay: word; s: string; begin Result := 0; s := Fetch(Value, '-'); wMonth := StrToIntDef(s, 12); s := Fetch(Value, '-'); wDay := StrToIntDef(s, 30); wYear := StrToIntDef(Value, 1899); if wYear < 1000 then if (wYear > 99) then wYear := wYear + 1900 else if wYear > 50 then wYear := wYear + 1900 else wYear := wYear + 2000; try Result := EncodeDate(wYear, wMonth, wDay); except on Exception do ; end; end; {==============================================================================} function DecodeRfcDateTime(Value: string): TDateTime; var day, month, year: Word; zone: integer; x, y: integer; s: string; t: TDateTime; begin // ddd, d mmm yyyy hh:mm:ss // ddd, d mmm yy hh:mm:ss // ddd, mmm d yyyy hh:mm:ss // ddd mmm dd hh:mm:ss yyyy // Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123 // Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036 // Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() Format Result := 0; if Value = '' then Exit; day := 0; month := 0; year := 0; zone := 0; Value := ReplaceString(Value, ' -', ' #'); Value := ReplaceString(Value, '-', ' '); Value := ReplaceString(Value, ' #', ' -'); while Value <> '' do begin s := Fetch(Value, ' '); s := uppercase(s); // timezone if DecodetimeZone(s, x) then begin zone := x; continue; end; x := StrToIntDef(s, 0); // day or year if x > 0 then if (x < 32) and (day = 0) then begin day := x; continue; end else begin if (year = 0) and ((month > 0) or (x > 12)) then begin year := x; if year < 32 then year := year + 2000; if year < 1000 then year := year + 1900; continue; end; end; // time if rpos(':', s) > Pos(':', s) then begin t := GetTimeFromStr(s); if t <> -1 then Result := t; continue; end; //timezone daylight saving time if s = 'DST' then begin zone := zone + 60; continue; end; // month y := GetMonthNumber(s); if (y > 0) and (month = 0) then month := y; end; if year = 0 then year := 1980; if month < 1 then month := 1; if month > 12 then month := 12; if day < 1 then day := 1; x := MonthDays[IsLeapYear(year), month]; if day > x then day := x; Result := Result + Encodedate(year, month, day); zone := zone - TimeZoneBias; x := zone div 1440; Result := Result - x; zone := zone mod 1440; t := EncodeTime(Abs(zone) div 60, Abs(zone) mod 60, 0, 0); if zone < 0 then t := 0 - t; Result := Result - t; end; {==============================================================================} function GetUTTime: TDateTime; {$IFDEF MSWINDOWS} {$IFNDEF FPC} var st: TSystemTime; begin GetSystemTime(st); result := SystemTimeToDateTime(st); {$ELSE} var st: SysUtils.TSystemTime; stw: Windows.TSystemTime; begin GetSystemTime(stw); st.Year := stw.wYear; st.Month := stw.wMonth; st.Day := stw.wDay; st.Hour := stw.wHour; st.Minute := stw.wMinute; st.Second := stw.wSecond; st.Millisecond := stw.wMilliseconds; result := SystemTimeToDateTime(st); {$ENDIF} {$ELSE MSWINDOWS} {$IFNDEF FPC} var TV: TTimeVal; begin gettimeofday(TV, nil); Result := UnixDateDelta + (TV.tv_sec + TV.tv_usec / 1000000) / 86400; {$ELSE FPC} {$IFDEF UNIX} var TV: TimeVal; begin fpgettimeofday(@TV, nil); Result := UnixDateDelta + (TV.tv_sec + TV.tv_usec / 1000000) / 86400; {$ELSE UNIX} {$IFDEF OS2} var ST: TSystemTime; begin GetLocalTime (ST); Result := SystemTimeToDateTime (ST); {$ENDIF OS2} {$ENDIF UNIX} {$ENDIF FPC} {$ENDIF MSWINDOWS} end; {==============================================================================} function SetUTTime(Newdt: TDateTime): Boolean; {$IFDEF MSWINDOWS} {$IFNDEF FPC} var st: TSystemTime; begin DateTimeToSystemTime(newdt,st); Result := SetSystemTime(st); {$ELSE} var st: SysUtils.TSystemTime; stw: Windows.TSystemTime; begin DateTimeToSystemTime(newdt,st); stw.wYear := st.Year; stw.wMonth := st.Month; stw.wDay := st.Day; stw.wHour := st.Hour; stw.wMinute := st.Minute; stw.wSecond := st.Second; stw.wMilliseconds := st.Millisecond; Result := SetSystemTime(stw); {$ENDIF} {$ELSE MSWINDOWS} {$IFNDEF FPC} var TV: TTimeVal; d: double; TZ: Ttimezone; PZ: PTimeZone; begin TZ.tz_minuteswest := 0; TZ.tz_dsttime := 0; PZ := @TZ; gettimeofday(TV, PZ); d := (newdt - UnixDateDelta) * 86400; TV.tv_sec := trunc(d); TV.tv_usec := trunc(frac(d) * 1000000); {$IFNDEF POSIX} Result := settimeofday(TV, TZ) <> -1; {$ELSE} Result := False; // in POSIX settimeofday is not defined? http://www.kernel.org/doc/man-pages/online/pages/man2/gettimeofday.2.html {$ENDIF} {$ELSE FPC} {$IFDEF UNIX} var TV: TimeVal; d: double; begin d := (newdt - UnixDateDelta) * 86400; TV.tv_sec := trunc(d); TV.tv_usec := trunc(frac(d) * 1000000); Result := fpsettimeofday(@TV, nil) <> -1; {$ELSE UNIX} {$IFDEF OS2} var ST: TSystemTime; begin DateTimeToSystemTime (NewDT, ST); SetTime (ST.Hour, ST.Minute, ST.Second, ST.Millisecond div 10); Result := true; {$ENDIF OS2} {$ENDIF UNIX} {$ENDIF FPC} {$ENDIF MSWINDOWS} end; {==============================================================================} {$IFNDEF MSWINDOWS} function GetTick: LongWord; var Stamp: TTimeStamp; begin Stamp := DateTimeToTimeStamp(Now); Result := Stamp.Time; end; {$ELSE} function GetTick: LongWord; var tick, freq: TLargeInteger; {$IFDEF VER100} x: TLargeInteger; {$ENDIF} begin if Windows.QueryPerformanceFrequency(freq) then begin Windows.QueryPerformanceCounter(tick); {$IFDEF VER100} x.QuadPart := (tick.QuadPart / freq.QuadPart) * 1000; Result := x.LowPart; {$ELSE} Result := Trunc((tick / freq) * 1000) and High(LongWord) {$ENDIF} end else Result := Windows.GetTickCount; end; {$ENDIF} {==============================================================================} function TickDelta(TickOld, TickNew: LongWord): LongWord; begin //if DWord is signed type (older Deplhi), // then it not work properly on differencies larger then maxint! Result := 0; if TickOld <> TickNew then begin if TickNew < TickOld then begin TickNew := TickNew + LongWord(MaxInt) + 1; TickOld := TickOld + LongWord(MaxInt) + 1; end; Result := TickNew - TickOld; if TickNew < TickOld then if Result > 0 then Result := 0 - Result; end; end; {==============================================================================} function CodeInt(Value: Word): Ansistring; begin setlength(result, 2); result[1] := AnsiChar(Value div 256); result[2] := AnsiChar(Value mod 256); // Result := AnsiChar(Value div 256) + AnsiChar(Value mod 256) end; {==============================================================================} function DecodeInt(const Value: Ansistring; Index: Integer): Word; var x, y: Byte; begin if Length(Value) > Index then x := Ord(Value[Index]) else x := 0; if Length(Value) >= (Index + 1) then y := Ord(Value[Index + 1]) else y := 0; Result := x * 256 + y; end; {==============================================================================} function CodeLongInt(Value: Longint): Ansistring; var x, y: word; begin // this is fix for negative numbers on systems where longint = integer x := (Value shr 16) and integer($ffff); y := Value and integer($ffff); setlength(result, 4); result[1] := AnsiChar(x div 256); result[2] := AnsiChar(x mod 256); result[3] := AnsiChar(y div 256); result[4] := AnsiChar(y mod 256); end; {==============================================================================} function DecodeLongInt(const Value: Ansistring; Index: Integer): LongInt; var x, y: Byte; xl, yl: Byte; begin if Length(Value) > Index then x := Ord(Value[Index]) else x := 0; if Length(Value) >= (Index + 1) then y := Ord(Value[Index + 1]) else y := 0; if Length(Value) >= (Index + 2) then xl := Ord(Value[Index + 2]) else xl := 0; if Length(Value) >= (Index + 3) then yl := Ord(Value[Index + 3]) else yl := 0; Result := ((x * 256 + y) * 65536) + (xl * 256 + yl); end; {==============================================================================} function DumpStr(const Buffer: Ansistring): string; var n: Integer; begin Result := ''; for n := 1 to Length(Buffer) do Result := Result + ' +#$' + IntToHex(Ord(Buffer[n]), 2); end; {==============================================================================} function DumpExStr(const Buffer: Ansistring): string; var n: Integer; x: Byte; begin Result := ''; for n := 1 to Length(Buffer) do begin x := Ord(Buffer[n]); if x in [65..90, 97..122] then Result := Result + ' +''' + char(x) + '''' else Result := Result + ' +#$' + IntToHex(Ord(Buffer[n]), 2); end; end; {==============================================================================} procedure Dump(const Buffer: AnsiString; DumpFile: string); var f: Text; begin AssignFile(f, DumpFile); if FileExists(DumpFile) then DeleteFile(DumpFile); Rewrite(f); try Writeln(f, DumpStr(Buffer)); finally CloseFile(f); end; end; {==============================================================================} procedure DumpEx(const Buffer: AnsiString; DumpFile: string); var f: Text; begin AssignFile(f, DumpFile); if FileExists(DumpFile) then DeleteFile(DumpFile); Rewrite(f); try Writeln(f, DumpExStr(Buffer)); finally CloseFile(f); end; end; {==============================================================================} function TrimSPLeft(const S: string): string; var I, L: Integer; begin Result := ''; if S = '' then Exit; L := Length(S); I := 1; while (I <= L) and (S[I] = ' ') do Inc(I); Result := Copy(S, I, Maxint); end; {==============================================================================} function TrimSPRight(const S: string): string; var I: Integer; begin Result := ''; if S = '' then Exit; I := Length(S); while (I > 0) and (S[I] = ' ') do Dec(I); Result := Copy(S, 1, I); end; {==============================================================================} function TrimSP(const S: string): string; begin Result := TrimSPLeft(s); Result := TrimSPRight(Result); end; {==============================================================================} function SeparateLeft(const Value, Delimiter: string): string; var x: Integer; begin x := Pos(Delimiter, Value); if x < 1 then Result := Value else Result := Copy(Value, 1, x - 1); end; {==============================================================================} function SeparateRight(const Value, Delimiter: string): string; var x: Integer; begin x := Pos(Delimiter, Value); if x > 0 then x := x + Length(Delimiter) - 1; Result := Copy(Value, x + 1, Length(Value) - x); end; {==============================================================================} function GetParameter(const Value, Parameter: string): string; var s: string; v: string; begin Result := ''; v := Value; while v <> '' do begin s := Trim(FetchEx(v, ';', '"')); if Pos(Uppercase(parameter), Uppercase(s)) = 1 then begin Delete(s, 1, Length(Parameter)); s := Trim(s); if s = '' then Break; if s[1] = '=' then begin Result := Trim(SeparateRight(s, '=')); Result := UnquoteStr(Result, '"'); break; end; end; end; end; {==============================================================================} procedure ParseParametersEx(Value, Delimiter: string; const Parameters: TStrings); var s: string; begin Parameters.Clear; while Value <> '' do begin s := Trim(FetchEx(Value, Delimiter, '"')); Parameters.Add(s); end; end; {==============================================================================} procedure ParseParameters(Value: string; const Parameters: TStrings); begin ParseParametersEx(Value, ';', Parameters); end; {==============================================================================} function IndexByBegin(Value: string; const List: TStrings): integer; var n: integer; s: string; begin Result := -1; Value := uppercase(Value); for n := 0 to List.Count -1 do begin s := UpperCase(List[n]); if Pos(Value, s) = 1 then begin Result := n; Break; end; end; end; {==============================================================================} function GetEmailAddr(const Value: string): string; var s: string; begin s := SeparateRight(Value, '<'); s := SeparateLeft(s, '>'); Result := Trim(s); end; {==============================================================================} function GetEmailDesc(Value: string): string; var s: string; begin Value := Trim(Value); s := SeparateRight(Value, '"'); if s <> Value then s := SeparateLeft(s, '"') else begin s := SeparateLeft(Value, '<'); if s = Value then begin s := SeparateRight(Value, '('); if s <> Value then s := SeparateLeft(s, ')') else s := ''; end; end; Result := Trim(s); end; {==============================================================================} function StrToHex(const Value: Ansistring): string; var n: Integer; begin Result := ''; for n := 1 to Length(Value) do Result := Result + IntToHex(Byte(Value[n]), 2); Result := LowerCase(Result); end; {==============================================================================} function IntToBin(Value: Integer; Digits: Byte): string; var x, y, n: Integer; begin Result := ''; x := Value; repeat y := x mod 2; x := x div 2; if y > 0 then Result := '1' + Result else Result := '0' + Result; until x = 0; x := Length(Result); for n := x to Digits - 1 do Result := '0' + Result; end; {==============================================================================} function BinToInt(const Value: string): Integer; var n: Integer; begin Result := 0; for n := 1 to Length(Value) do begin if Value[n] = '0' then Result := Result * 2 else if Value[n] = '1' then Result := Result * 2 + 1 else Break; end; end; {==============================================================================} function ParseURL(URL: string; var Prot, User, Pass, Host, Port, Path, Para: string): string; var x, y: Integer; sURL: string; s: string; s1, s2: string; begin Prot := 'http'; User := ''; Pass := ''; Port := '80'; Para := ''; x := Pos('://', URL); if x > 0 then begin Prot := SeparateLeft(URL, '://'); sURL := SeparateRight(URL, '://'); end else sURL := URL; if UpperCase(Prot) = 'HTTPS' then Port := '443'; if UpperCase(Prot) = 'FTP' then Port := '21'; x := Pos('@', sURL); y := Pos('/', sURL); if (x > 0) and ((x < y) or (y < 1))then begin s := SeparateLeft(sURL, '@'); sURL := SeparateRight(sURL, '@'); x := Pos(':', s); if x > 0 then begin User := SeparateLeft(s, ':'); Pass := SeparateRight(s, ':'); end else User := s; end; x := Pos('/', sURL); if x > 0 then begin s1 := SeparateLeft(sURL, '/'); s2 := SeparateRight(sURL, '/'); end else begin s1 := sURL; s2 := ''; end; if Pos('[', s1) = 1 then begin Host := Separateleft(s1, ']'); Delete(Host, 1, 1); s1 := SeparateRight(s1, ']'); if Pos(':', s1) = 1 then Port := SeparateRight(s1, ':'); end else begin x := Pos(':', s1); if x > 0 then begin Host := SeparateLeft(s1, ':'); Port := SeparateRight(s1, ':'); end else Host := s1; end; Result := '/' + s2; x := Pos('?', s2); if x > 0 then begin Path := '/' + SeparateLeft(s2, '?'); Para := SeparateRight(s2, '?'); end else Path := '/' + s2; if Host = '' then Host := 'localhost'; end; {==============================================================================} function ReplaceString(Value, Search, Replace: AnsiString): AnsiString; var x, l, ls, lr: Integer; begin if (Value = '') or (Search = '') then begin Result := Value; Exit; end; ls := Length(Search); lr := Length(Replace); Result := ''; x := Pos(Search, Value); while x > 0 do begin {$IFNDEF CIL} l := Length(Result); SetLength(Result, l + x - 1); Move(Pointer(Value)^, Pointer(@Result[l + 1])^, x - 1); {$ELSE} Result:=Result+Copy(Value,1,x-1); {$ENDIF} {$IFNDEF CIL} l := Length(Result); SetLength(Result, l + lr); Move(Pointer(Replace)^, Pointer(@Result[l + 1])^, lr); {$ELSE} Result:=Result+Replace; {$ENDIF} Delete(Value, 1, x - 1 + ls); x := Pos(Search, Value); end; Result := Result + Value; end; {==============================================================================} function RPosEx(const Sub, Value: string; From: integer): Integer; var n: Integer; l: Integer; begin result := 0; l := Length(Sub); for n := From - l + 1 downto 1 do begin if Copy(Value, n, l) = Sub then begin result := n; break; end; end; end; {==============================================================================} function RPos(const Sub, Value: String): Integer; begin Result := RPosEx(Sub, Value, Length(Value)); end; {==============================================================================} function FetchBin(var Value: string; const Delimiter: string): string; var s: string; begin Result := SeparateLeft(Value, Delimiter); s := SeparateRight(Value, Delimiter); if s = Value then Value := '' else Value := s; end; {==============================================================================} function Fetch(var Value: string; const Delimiter: string): string; begin Result := FetchBin(Value, Delimiter); Result := TrimSP(Result); Value := TrimSP(Value); end; {==============================================================================} function FetchEx(var Value: string; const Delimiter, Quotation: string): string; var b: Boolean; begin Result := ''; b := False; while Length(Value) > 0 do begin if b then begin if Pos(Quotation, Value) = 1 then b := False; Result := Result + Value[1]; Delete(Value, 1, 1); end else begin if Pos(Delimiter, Value) = 1 then begin Delete(Value, 1, Length(delimiter)); break; end; b := Pos(Quotation, Value) = 1; Result := Result + Value[1]; Delete(Value, 1, 1); end; end; end; {==============================================================================} function IsBinaryString(const Value: AnsiString): Boolean; var n: integer; begin Result := False; for n := 1 to Length(Value) do if Value[n] in [#0..#8, #10..#31] then //ignore null-terminated strings if not ((n = Length(value)) and (Value[n] = AnsiChar(#0))) then begin Result := True; Break; end; end; {==============================================================================} function PosCRLF(const Value: AnsiString; var Terminator: AnsiString): integer; var n, l: integer; begin Result := -1; Terminator := ''; l := length(value); for n := 1 to l do if value[n] in [#$0d, #$0a] then begin Result := n; Terminator := Value[n]; if n <> l then case value[n] of #$0d: if value[n + 1] = #$0a then Terminator := #$0d + #$0a; #$0a: if value[n + 1] = #$0d then Terminator := #$0a + #$0d; end; Break; end; end; {==============================================================================} Procedure StringsTrim(const Value: TStrings); var n: integer; begin for n := Value.Count - 1 downto 0 do if Value[n] = '' then Value.Delete(n) else Break; end; {==============================================================================} function PosFrom(const SubStr, Value: String; From: integer): integer; var ls,lv: integer; begin Result := 0; ls := Length(SubStr); lv := Length(Value); if (ls = 0) or (lv = 0) then Exit; if From < 1 then From := 1; while (ls + from - 1) <= (lv) do begin {$IFNDEF CIL} if CompareMem(@SubStr[1],@Value[from],ls) then {$ELSE} if SubStr = copy(Value, from, ls) then {$ENDIF} begin result := from; break; end else inc(from); end; end; {==============================================================================} {$IFNDEF CIL} function IncPoint(const p: pointer; Value: integer): pointer; begin Result := PAnsiChar(p) + Value; end; {$ENDIF} {==============================================================================} //improved by 'DoggyDawg' function GetBetween(const PairBegin, PairEnd, Value: string): string; var n: integer; x: integer; s: string; lenBegin: integer; lenEnd: integer; str: string; max: integer; begin lenBegin := Length(PairBegin); lenEnd := Length(PairEnd); n := Length(Value); if (Value = PairBegin + PairEnd) then begin Result := '';//nothing between exit; end; if (n < lenBegin + lenEnd) then begin Result := Value; exit; end; s := SeparateRight(Value, PairBegin); if (s = Value) then begin Result := Value; exit; end; n := Pos(PairEnd, s); if (n = 0) then begin Result := Value; exit; end; Result := ''; x := 1; max := Length(s) - lenEnd + 1; for n := 1 to max do begin str := copy(s, n, lenEnd); if (str = PairEnd) then begin Dec(x); if (x <= 0) then Break; end; str := copy(s, n, lenBegin); if (str = PairBegin) then Inc(x); Result := Result + s[n]; end; end; {==============================================================================} function CountOfChar(const Value: string; Chr: char): integer; var n: integer; begin Result := 0; for n := 1 to Length(Value) do if Value[n] = chr then Inc(Result); end; {==============================================================================} // ! do not use AnsiExtractQuotedStr, it's very buggy and can crash application! function UnquoteStr(const Value: string; Quote: Char): string; var n: integer; inq, dq: Boolean; c, cn: char; begin Result := ''; if Value = '' then Exit; if Value = Quote + Quote then Exit; inq := False; dq := False; for n := 1 to Length(Value) do begin c := Value[n]; if n <> Length(Value) then cn := Value[n + 1] else cn := #0; if c = quote then if dq then dq := False else if not inq then inq := True else if cn = quote then begin Result := Result + Quote; dq := True; end else inq := False else Result := Result + c; end; end; {==============================================================================} function QuoteStr(const Value: string; Quote: Char): string; var n: integer; begin Result := ''; for n := 1 to length(value) do begin Result := result + Value[n]; if value[n] = Quote then Result := Result + Quote; end; Result := Quote + Result + Quote; end; {==============================================================================} procedure HeadersToList(const Value: TStrings); var n, x, y: integer; s: string; begin for n := 0 to Value.Count -1 do begin s := Value[n]; x := Pos(':', s); if x > 0 then begin y:= Pos('=',s); if not ((y > 0) and (y < x)) then begin s[x] := '='; Value[n] := s; end; end; end; end; {==============================================================================} procedure ListToHeaders(const Value: TStrings); var n, x: integer; s: string; begin for n := 0 to Value.Count -1 do begin s := Value[n]; x := Pos('=', s); if x > 0 then begin s[x] := ':'; Value[n] := s; end; end; end; {==============================================================================} function SwapBytes(Value: integer): integer; var s: AnsiString; x, y, xl, yl: Byte; begin s := CodeLongInt(Value); x := Ord(s[4]); y := Ord(s[3]); xl := Ord(s[2]); yl := Ord(s[1]); Result := ((x * 256 + y) * 65536) + (xl * 256 + yl); end; {==============================================================================} function ReadStrFromStream(const Stream: TStream; len: integer): AnsiString; var x: integer; {$IFDEF CIL} buf: Array of Byte; {$ENDIF} begin {$IFDEF CIL} Setlength(buf, Len); x := Stream.read(buf, Len); SetLength(buf, x); Result := StringOf(Buf); {$ELSE} Setlength(Result, Len); x := Stream.read(PAnsiChar(Result)^, Len); SetLength(Result, x); {$ENDIF} end; {==============================================================================} procedure WriteStrToStream(const Stream: TStream; Value: AnsiString); {$IFDEF CIL} var buf: Array of Byte; {$ENDIF} begin {$IFDEF CIL} buf := BytesOf(Value); Stream.Write(buf,length(Value)); {$ELSE} Stream.Write(PAnsiChar(Value)^, Length(Value)); {$ENDIF} end; {==============================================================================} {$IFDEF POSIX} function tempnam(const Path: PAnsiChar; const Prefix: PAnsiChar): PAnsiChar; cdecl; external libc name _PU + 'tempnam'; {$ENDIF} function GetTempFile(const Dir, prefix: String): String; {$IFNDEF FPC} {$IFDEF MSWINDOWS} var Path: String; x: integer; {$ENDIF} {$ENDIF} begin {$IFDEF FPC} Result := GetTempFileName(Dir, Prefix); {$ELSE} {$IFNDEF MSWINDOWS} Result := tempnam(Pointer(Dir), Pointer(prefix)); {$ELSE} {$IFDEF CIL} Result := System.IO.Path.GetTempFileName; {$ELSE} if Dir = '' then begin SetLength(Path, MAX_PATH); x := GetTempPath(Length(Path), PChar(Path)); SetLength(Path, x); end else Path := Dir; x := Length(Path); if Path[x] <> '\' then Path := Path + '\'; SetLength(Result, MAX_PATH + 1); GetTempFileName(PChar(Path), PChar(Prefix), 0, PChar(Result)); Result := PChar(Result); SetFileattributes(PChar(Result), GetFileAttributes(PChar(Result)) or FILE_ATTRIBUTE_TEMPORARY); {$ENDIF} {$ENDIF} {$ENDIF} end; {==============================================================================} function PadString(const Value: AnsiString; len: integer; Pad: AnsiChar): AnsiString; begin if length(value) >= len then Result := Copy(value, 1, len) else Result := Value + StringOfChar(Pad, len - length(value)); end; {==============================================================================} function XorString(Indata1, Indata2: AnsiString): AnsiString; var i: integer; begin Indata2 := PadString(Indata2, length(Indata1), #0); Result := ''; for i := 1 to length(Indata1) do Result := Result + AnsiChar(ord(Indata1[i]) xor ord(Indata2[i])); end; {==============================================================================} function NormalizeHeader(Value: TStrings; var Index: Integer): string; var s, t: string; n: Integer; begin s := Value[Index]; Inc(Index); if s <> '' then while (Value.Count - 1) > Index do begin t := Value[Index]; if t = '' then Break; for n := 1 to Length(t) do if t[n] = #9 then t[n] := ' '; if not(AnsiChar(t[1]) in [' ', '"', ':', '=']) then Break else begin s := s + ' ' + Trim(t); Inc(Index); end; end; Result := TrimRight(s); end; {==============================================================================} {pf} procedure SearchForLineBreak(var APtr:PANSIChar; AEtx:PANSIChar; out ABol:PANSIChar; out ALength:integer); begin ABol := APtr; while (APtr<AEtx) and not (APtr^ in [#0,#10,#13]) do inc(APtr); ALength := APtr-ABol; end; {/pf} {pf} procedure SkipLineBreak(var APtr:PANSIChar; AEtx:PANSIChar); begin if (APtr<AEtx) and (APtr^=#13) then inc(APtr); if (APtr<AEtx) and (APtr^=#10) then inc(APtr); end; {/pf} {pf} procedure SkipNullLines(var APtr:PANSIChar; AEtx:PANSIChar); var bol: PANSIChar; lng: integer; begin while (APtr<AEtx) do begin SearchForLineBreak(APtr,AEtx,bol,lng); SkipLineBreak(APtr,AEtx); if lng>0 then begin APtr := bol; Break; end; end; end; {/pf} {pf} procedure CopyLinesFromStreamUntilNullLine(var APtr:PANSIChar; AEtx:PANSIChar; ALines:TStrings); var bol: PANSIChar; lng: integer; s: ANSIString; begin // Copying until body separator will be reached while (APtr<AEtx) and (APtr^<>#0) do begin SearchForLineBreak(APtr,AEtx,bol,lng); SkipLineBreak(APtr,AEtx); if lng=0 then Break; SetString(s,bol,lng); ALines.Add(s); end; end; {/pf} {pf} procedure CopyLinesFromStreamUntilBoundary(var APtr:PANSIChar; AEtx:PANSIChar; ALines:TStrings; const ABoundary:ANSIString); var bol: PANSIChar; lng: integer; s: ANSIString; BackStop: ANSIString; eob1: PANSIChar; eob2: PANSIChar; begin BackStop := '--'+ABoundary; eob2 := nil; // Copying until Boundary will be reached while (APtr<AEtx) do begin SearchForLineBreak(APtr,AEtx,bol,lng); SkipLineBreak(APtr,AEtx); eob1 := MatchBoundary(bol,APtr,ABoundary); if Assigned(eob1) then eob2 := MatchLastBoundary(bol,AEtx,ABoundary); if Assigned(eob2) then begin APtr := eob2; Break; end else if Assigned(eob1) then begin APtr := eob1; Break; end else begin SetString(s,bol,lng); ALines.Add(s); end; end; end; {/pf} {pf} function SearchForBoundary(var APtr:PANSIChar; AEtx:PANSIChar; const ABoundary:ANSIString): PANSIChar; var eob: PANSIChar; Step: integer; begin Result := nil; // Moving Aptr position forward until boundary will be reached while (APtr<AEtx) do begin if strlcomp(APtr,#13#10'--',4)=0 then begin eob := MatchBoundary(APtr,AEtx,ABoundary); Step := 4; end else if strlcomp(APtr,'--',2)=0 then begin eob := MatchBoundary(APtr,AEtx,ABoundary); Step := 2; end else begin eob := nil; Step := 1; end; if Assigned(eob) then begin Result := APtr; // boundary beginning APtr := eob; // boundary end exit; end else inc(APtr,Step); end; end; {/pf} {pf} function MatchBoundary(ABol,AEtx:PANSIChar; const ABoundary:ANSIString): PANSIChar; var MatchPos: PANSIChar; Lng: integer; begin Result := nil; MatchPos := ABol; Lng := length(ABoundary); if (MatchPos+2+Lng)>AETX then exit; if strlcomp(MatchPos,#13#10,2)=0 then inc(MatchPos,2); if (MatchPos+2+Lng)>AETX then exit; if strlcomp(MatchPos,'--',2)<>0 then exit; inc(MatchPos,2); if strlcomp(MatchPos,PANSIChar(ABoundary),Lng)<>0 then exit; inc(MatchPos,Lng); if ((MatchPos+2)<=AEtx) and (strlcomp(MatchPos,#13#10,2)=0) then inc(MatchPos,2); Result := MatchPos; end; {/pf} {pf} function MatchLastBoundary(ABOL,AETX:PANSIChar; const ABoundary:ANSIString): PANSIChar; var MatchPos: PANSIChar; begin Result := nil; MatchPos := MatchBoundary(ABOL,AETX,ABoundary); if not Assigned(MatchPos) then exit; if strlcomp(MatchPos,'--',2)<>0 then exit; inc(MatchPos,2); if (MatchPos+2<=AEtx) and (strlcomp(MatchPos,#13#10,2)=0) then inc(MatchPos,2); Result := MatchPos; end; {/pf} {pf} function BuildStringFromBuffer(AStx,AEtx:PANSIChar): ANSIString; var lng: integer; begin Lng := 0; if Assigned(AStx) and Assigned(AEtx) then begin Lng := AEtx-AStx; if Lng<0 then Lng := 0; end; SetString(Result,AStx,lng); end; {/pf} {==============================================================================} var n: integer; begin for n := 1 to 12 do begin CustomMonthNames[n] := {$IFDEF COMPILER15_UP}FormatSettings.{$ENDIF}ShortMonthNames[n]; MyMonthNames[0, n] := {$IFDEF COMPILER15_UP}FormatSettings.{$ENDIF}ShortMonthNames[n]; end; end. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./about.pas�����������������������������������������������������������������������������������������0000644�0001750�0001750�00000006060�14576573021�012770� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit About; {$mode objfpc} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls,LCLIntf; type { TForm4 } TForm4 = class(TForm) Button1: TButton; Image1: TImage; TZDiffLabel: TLabel; TZDiffText: TLabel; UTCLabel: TLabel; LocalLabel: TLabel; UTCText: TLabel; LocalText: TLabel; Timer1: TTimer; WrittenByString: TLabel; FpointLabel: TLabel; FpointString: TLabel; FcommaLabel: TLabel; FCommaString: TLabel; WrittenByLabel: TLabel; VersionLabel: TLabel; FileVersionText: TLabel; Memo1: TMemo; procedure Button1Click(Sender: TObject); procedure FormShow(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure WrittenByStringClick(Sender: TObject); procedure WrittenByStringMouseEnter(Sender: TObject); procedure WrittenByStringMouseLeave(Sender: TObject); private { private declarations } public { public declarations } end; var Form4: TForm4; implementation uses vinfo, unit1, LazSysUtils //For NowUTC() ; { TForm4 } procedure TForm4.FormShow(Sender: TObject); Var Info: TVersionInfo; Begin FpointString.Caption:=FPointSeparator.DecimalSeparator; FCommaString.Caption:=FCommaSeparator.DecimalSeparator; // grab the build number .... save it to BuildNum Info := TVersionInfo.Create; Info.Load(HINSTANCE); FileVersionText.Caption:=IntToStr(Info.FixedInfo.FileVersion[0])+'.'+ IntToStr(Info.FixedInfo.FileVersion[1])+'.'+ IntToStr(Info.FixedInfo.FileVersion[2])+'.'+ IntToStr(Info.FixedInfo.FileVersion[3]); Info.Free; //ShowMessage( // 'Serial Library verion: ' +ser.GetVersion + sLineBreak + // '' ); end; procedure TForm4.Timer1Timer(Sender: TObject); var CurTime: TDate; UTCTime: TDate; hours : Double; begin CurTime:=Now(); UTCTime:=NowUTC(); UTCText.Caption := FormatDateTime('dd-mmm-yyyy hh:nn:ss', UTCTime); LocalText.Caption := FormatDateTime('dd-mmm-yyyy hh:nn:ss', CurTime) + FormatDateTime(' (hh:nn am/pm)', CurTime) ; hours := (CurTime-UTCTime) * 24; TZDiffText.Caption := Format('%1.1fh (Local-UTC)',[hours]); end; procedure TForm4.WrittenByStringClick(Sender: TObject); begin OpenURL(WrittenByString.Caption); end; procedure TForm4.WrittenByStringMouseEnter(Sender: TObject); begin WrittenByString.Cursor := crHandPoint; WrittenByString.Font.Color := clBlue; WrittenByString.Font.Style := [fsUnderline]; if Pos('http://www.', WrittenByString.Caption) = 0 then WrittenByString.Caption := 'http://www.' + WrittenByString.Caption; end; procedure TForm4.WrittenByStringMouseLeave(Sender: TObject); begin WrittenByString.Font.Style := []; if Pos('http://www.', WrittenByString.Caption) > 0 then WrittenByString.Caption := Copy(WrittenByString.Caption, Pos('http://www.', WrittenByString.Caption) + Length('http://www.'), Length(WrittenByString.Caption)); end; procedure TForm4.Button1Click(Sender: TObject); begin Form4.Close; end; initialization {$I about.lrs} end. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./sntpsend.pas��������������������������������������������������������������������������������������0000644�0001750�0001750�00000031271�14576573021�013516� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{==============================================================================| | Project : Ararat Synapse | 003.000.003 | |==============================================================================| | Content: SNTP client | |==============================================================================| | Copyright (c)1999-2010, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2000-2010. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | | Patrick Chevalley | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@abstract( NTP and SNTP client) Used RFC: RFC-1305, RFC-2030 } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$Q-} {$H+} unit sntpsend; interface uses SysUtils, synsock, blcksock, synautil; const cNtpProtocol = '123'; type {:@abstract(Record containing the NTP packet.)} TNtp = packed record mode: Byte; stratum: Byte; poll: Byte; Precision: Byte; RootDelay: Longint; RootDisperson: Longint; RefID: Longint; Ref1: Longint; Ref2: Longint; Org1: Longint; Org2: Longint; Rcv1: Longint; Rcv2: Longint; Xmit1: Longint; Xmit2: Longint; end; {:@abstract(Implementation of NTP and SNTP client protocol), include time synchronisation. It can send NTP or SNTP time queries, or it can receive NTP broadcasts too. Note: Are you missing properties for specify server address and port? Look to parent @link(TSynaClient) too!} TSNTPSend = class(TSynaClient) private FNTPReply: TNtp; FNTPTime: TDateTime; FNTPOffset: double; FNTPDelay: double; FMaxSyncDiff: double; FSyncTime: Boolean; FSock: TUDPBlockSocket; FBuffer: AnsiString; FLi, FVn, Fmode : byte; function StrToNTP(const Value: AnsiString): TNtp; function NTPtoStr(const Value: Tntp): AnsiString; procedure ClearNTP(var Value: Tntp); public constructor Create; destructor Destroy; override; {:Decode 128 bit timestamp used in NTP packet to TDateTime type.} function DecodeTs(Nsec, Nfrac: Longint): TDateTime; {:Decode TDateTime type to 128 bit timestamp used in NTP packet.} procedure EncodeTs(dt: TDateTime; var Nsec, Nfrac: Longint); {:Send request to @link(TSynaClient.TargetHost) and wait for reply. If all is OK, then result is @true and @link(NTPReply) and @link(NTPTime) are valid.} function GetSNTP: Boolean; {:Send request to @link(TSynaClient.TargetHost) and wait for reply. If all is OK, then result is @true and @link(NTPReply) and @link(NTPTime) are valid. Result time is after all needed corrections.} function GetNTP: Boolean; {:Wait for broadcast NTP packet. If all OK, result is @true and @link(NTPReply) and @link(NTPTime) are valid.} function GetBroadcastNTP: Boolean; {:Holds last received NTP packet.} property NTPReply: TNtp read FNTPReply; published {:Date and time of remote NTP or SNTP server. (UTC time!!!)} property NTPTime: TDateTime read FNTPTime; {:Offset between your computer and remote NTP or SNTP server.} property NTPOffset: Double read FNTPOffset; {:Delay between your computer and remote NTP or SNTP server.} property NTPDelay: Double read FNTPDelay; {:Define allowed maximum difference between your time and remote time for synchronising time. If difference is bigger, your system time is not changed!} property MaxSyncDiff: double read FMaxSyncDiff write FMaxSyncDiff; {:If @true, after successfull getting time is local computer clock synchronised to given time. For synchronising time you must have proper rights! (Usually Administrator)} property SyncTime: Boolean read FSyncTime write FSyncTime; {:Socket object used for TCP/IP operation. Good for seting OnStatus hook, etc.} property Sock: TUDPBlockSocket read FSock; end; implementation constructor TSNTPSend.Create; begin inherited Create; FSock := TUDPBlockSocket.Create; FSock.Owner := self; FTimeout := 5000; FTargetPort := cNtpProtocol; FMaxSyncDiff := 3600; FSyncTime := False; end; destructor TSNTPSend.Destroy; begin FSock.Free; inherited Destroy; end; function TSNTPSend.StrToNTP(const Value: AnsiString): TNtp; begin if length(FBuffer) >= SizeOf(Result) then begin Result.mode := ord(Value[1]); Result.stratum := ord(Value[2]); Result.poll := ord(Value[3]); Result.Precision := ord(Value[4]); Result.RootDelay := DecodeLongInt(value, 5); Result.RootDisperson := DecodeLongInt(value, 9); Result.RefID := DecodeLongInt(value, 13); Result.Ref1 := DecodeLongInt(value, 17); Result.Ref2 := DecodeLongInt(value, 21); Result.Org1 := DecodeLongInt(value, 25); Result.Org2 := DecodeLongInt(value, 29); Result.Rcv1 := DecodeLongInt(value, 33); Result.Rcv2 := DecodeLongInt(value, 37); Result.Xmit1 := DecodeLongInt(value, 41); Result.Xmit2 := DecodeLongInt(value, 45); end; end; function TSNTPSend.NTPtoStr(const Value: Tntp): AnsiString; begin SetLength(Result, 4); Result[1] := AnsiChar(Value.mode); Result[2] := AnsiChar(Value.stratum); Result[3] := AnsiChar(Value.poll); Result[4] := AnsiChar(Value.precision); Result := Result + CodeLongInt(Value.RootDelay); Result := Result + CodeLongInt(Value.RootDisperson); Result := Result + CodeLongInt(Value.RefID); Result := Result + CodeLongInt(Value.Ref1); Result := Result + CodeLongInt(Value.Ref2); Result := Result + CodeLongInt(Value.Org1); Result := Result + CodeLongInt(Value.Org2); Result := Result + CodeLongInt(Value.Rcv1); Result := Result + CodeLongInt(Value.Rcv2); Result := Result + CodeLongInt(Value.Xmit1); Result := Result + CodeLongInt(Value.Xmit2); end; procedure TSNTPSend.ClearNTP(var Value: Tntp); begin Value.mode := 0; Value.stratum := 0; Value.poll := 0; Value.Precision := 0; Value.RootDelay := 0; Value.RootDisperson := 0; Value.RefID := 0; Value.Ref1 := 0; Value.Ref2 := 0; Value.Org1 := 0; Value.Org2 := 0; Value.Rcv1 := 0; Value.Rcv2 := 0; Value.Xmit1 := 0; Value.Xmit2 := 0; end; function TSNTPSend.DecodeTs(Nsec, Nfrac: Longint): TDateTime; const maxi = 4294967295.0; var d, d1: Double; begin d := Nsec; if d < 0 then d := maxi + d + 1; d1 := Nfrac; if d1 < 0 then d1 := maxi + d1 + 1; d1 := d1 / maxi; d1 := Trunc(d1 * 10000) / 10000; Result := (d + d1) / 86400; Result := Result + 2; end; procedure TSNTPSend.EncodeTs(dt: TDateTime; var Nsec, Nfrac: Longint); const maxi = 4294967295.0; maxilongint = 2147483647; var d, d1: Double; begin d := (dt - 2) * 86400; d1 := frac(d); if d > maxilongint then d := d - maxi - 1; d := trunc(d); d1 := Trunc(d1 * 10000) / 10000; d1 := d1 * maxi; if d1 > maxilongint then d1 := d1 - maxi - 1; Nsec:=trunc(d); Nfrac:=trunc(d1); end; function TSNTPSend.GetBroadcastNTP: Boolean; var x: Integer; begin Result := False; FSock.Bind(FIPInterface, FTargetPort); FBuffer := FSock.RecvPacket(FTimeout); if FSock.LastError = 0 then begin x := Length(FBuffer); if (FTargetHost = '0.0.0.0') or (FSock.GetRemoteSinIP = FSock.ResolveName(FTargetHost)) then if x >= SizeOf(NTPReply) then begin FNTPReply := StrToNTP(FBuffer); FNTPTime := DecodeTs(NTPReply.Xmit1, NTPReply.Xmit2); if FSyncTime and ((abs(FNTPTime - GetUTTime) * 86400) <= FMaxSyncDiff) then SetUTTime(FNTPTime); Result := True; end; end; end; function TSNTPSend.GetSNTP: Boolean; var q: TNtp; x: Integer; begin Result := False; FSock.CloseSocket; FSock.Bind(FIPInterface, cAnyPort); FSock.Connect(FTargetHost, FTargetPort); ClearNtp(q); q.mode := $1B; FBuffer := NTPtoStr(q); FSock.SendString(FBuffer); FBuffer := FSock.RecvPacket(FTimeout); if FSock.LastError = 0 then begin x := Length(FBuffer); if x >= SizeOf(NTPReply) then begin FNTPReply := StrToNTP(FBuffer); FNTPTime := DecodeTs(NTPReply.Xmit1, NTPReply.Xmit2); if FSyncTime and ((abs(FNTPTime - GetUTTime) * 86400) <= FMaxSyncDiff) then SetUTTime(FNTPTime); Result := True; end; end; end; function TSNTPSend.GetNTP: Boolean; var q: TNtp; x: Integer; t1, t2, t3, t4 : TDateTime; begin Result := False; FSock.CloseSocket; FSock.Bind(FIPInterface, cAnyPort); FSock.Connect(FTargetHost, FTargetPort); ClearNtp(q); q.mode := $1B; t1 := GetUTTime; EncodeTs(t1, q.org1, q.org2); FBuffer := NTPtoStr(q); FSock.SendString(FBuffer); FBuffer := FSock.RecvPacket(FTimeout); if FSock.LastError = 0 then begin x := Length(FBuffer); t4 := GetUTTime; if x >= SizeOf(NTPReply) then begin FNTPReply := StrToNTP(FBuffer); FLi := (NTPReply.mode and $C0) shr 6; FVn := (NTPReply.mode and $38) shr 3; Fmode := NTPReply.mode and $07; if (Fli < 3) and (Fmode = 4) and (NTPReply.stratum >= 1) and (NTPReply.stratum <= 15) and (NTPReply.Rcv1 <> 0) and (NTPReply.Xmit1 <> 0) then begin t2 := DecodeTs(NTPReply.Rcv1, NTPReply.Rcv2); t3 := DecodeTs(NTPReply.Xmit1, NTPReply.Xmit2); FNTPDelay := (T4 - T1) - (T2 - T3); FNTPTime := t3 + FNTPDelay / 2; FNTPOffset := (((T2 - T1) + (T3 - T4)) / 2) * 86400; FNTPDelay := FNTPDelay * 86400; if FSyncTime and ((abs(FNTPTime - t1) * 86400) <= FMaxSyncDiff) then SetUTTime(FNTPTime); Result := True; end else result:=false; end; end; end; end. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./fileview.pas��������������������������������������������������������������������������������������0000644�0001750�0001750�00000000761�14576573021�013472� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit fileview; {$mode objfpc} interface uses Classes, SysUtils, FileUtil, SynEdit, TAGraph, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, ComCtrls; type { TForm2 } TForm2 = class(TForm) Chart1: TChart; Memo1: TMemo; PageControl1: TPageControl; TextTab: TTabSheet; GraphTab: TTabSheet; private { private declarations } public { public declarations } end; var Form2: TForm2; implementation initialization {$I fileview.lrs} end. ���������������./media-playback-pause.png��������������������������������������������������������������������������0000644�0001750�0001750�00000001606�14576573022�015637� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���������ש��bPLTE������������������RTPXZVTVR^a\ TVRmok efb  """)*)"""efc"""///554000...>>>UWSBBA>>><<<MMMNONNNNLLL___]^]___]]]qqqlllqqqqqq~~}UWSegdWYU[]YVXTfheUWSXZVVXT�@v���NtRNS�&#%%!"&$ %"$!#!   飶&���bKGDI|��� pHYs�� �� B(x��IDAT(gW06ۨh{"*I,iq:m9+Ms~ ?WVTQP]46!4\AZUz!ʑʲPBw z7�ڇopɑK86Db'32 #R/(ӗ+2R]p:0mLÌT{Ng~x<,ȧW +R|4]EX/uؐM/߆Xpyt!J޾?ԑW3T毾::W���%tEXtdate:create�2011-06-17T12:27:10+00:001���%tEXtdate:modify�2011-06-17T12:27:10+00:00pM����IENDB`��������������������������������������������������������������������������������������������������������������������������./startupoptions.lfm��������������������������������������������������������������������������������0000644�0001750�0001750�00000030221�14576573021�014763� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object StartUpOptionsForm: TStartUpOptionsForm Left = 2355 Height = 596 Top = 94 Width = 995 Caption = 'Startup options' ClientHeight = 596 ClientWidth = 995 OnActivate = FormActivate Position = poScreenCenter LCLVersion = '2.3.0.0' object StartUpSettingsEdit: TLabeledEdit AnchorSideLeft.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 0 Height = 31 Top = 565 Width = 995 Anchors = [akLeft, akRight, akBottom] EditLabel.Height = 21 EditLabel.Width = 995 EditLabel.Caption = 'Startup options:' TabOrder = 0 OnChange = StartUpSettingsEditChange end inline SynMemo1: TSynMemo AnchorSideLeft.Control = Owner AnchorSideTop.Control = StartupInstructions AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = UDMArgumentsLabeledEdit Cursor = crIBeam Left = 0 Height = 410 Top = 56 Width = 995 BorderSpacing.Bottom = 41 Anchors = [akTop, akLeft, akRight, akBottom] Font.Height = -13 Font.Name = 'Courier New' Font.Pitch = fpFixed Font.Quality = fqNonAntialiased ParentColor = False ParentFont = False TabOrder = 1 Gutter.Visible = False Gutter.Width = 57 Gutter.MouseActions = <> Keystrokes = < item Command = ecUp ShortCut = 38 end item Command = ecSelUp ShortCut = 8230 end item Command = ecScrollUp ShortCut = 16422 end item Command = ecDown ShortCut = 40 end item Command = ecSelDown ShortCut = 8232 end item Command = ecScrollDown ShortCut = 16424 end item Command = ecLeft ShortCut = 37 end item Command = ecSelLeft ShortCut = 8229 end item Command = ecWordLeft ShortCut = 16421 end item Command = ecSelWordLeft ShortCut = 24613 end item Command = ecRight ShortCut = 39 end item Command = ecSelRight ShortCut = 8231 end item Command = ecWordRight ShortCut = 16423 end item Command = ecSelWordRight ShortCut = 24615 end item Command = ecPageDown ShortCut = 34 end item Command = ecSelPageDown ShortCut = 8226 end item Command = ecPageBottom ShortCut = 16418 end item Command = ecSelPageBottom ShortCut = 24610 end item Command = ecPageUp ShortCut = 33 end item Command = ecSelPageUp ShortCut = 8225 end item Command = ecPageTop ShortCut = 16417 end item Command = ecSelPageTop ShortCut = 24609 end item Command = ecLineStart ShortCut = 36 end item Command = ecSelLineStart ShortCut = 8228 end item Command = ecEditorTop ShortCut = 16420 end item Command = ecSelEditorTop ShortCut = 24612 end item Command = ecLineEnd ShortCut = 35 end item Command = ecSelLineEnd ShortCut = 8227 end item Command = ecEditorBottom ShortCut = 16419 end item Command = ecSelEditorBottom ShortCut = 24611 end item Command = ecToggleMode ShortCut = 45 end item Command = ecCopy ShortCut = 16429 end item Command = ecPaste ShortCut = 8237 end item Command = ecDeleteChar ShortCut = 46 end item Command = ecCut ShortCut = 8238 end item Command = ecDeleteLastChar ShortCut = 8 end item Command = ecDeleteLastChar ShortCut = 8200 end item Command = ecDeleteLastWord ShortCut = 16392 end item Command = ecUndo ShortCut = 32776 end item Command = ecRedo ShortCut = 40968 end item Command = ecLineBreak ShortCut = 13 end item Command = ecSelectAll ShortCut = 16449 end item Command = ecCopy ShortCut = 16451 end item Command = ecBlockIndent ShortCut = 24649 end item Command = ecLineBreak ShortCut = 16461 end item Command = ecInsertLine ShortCut = 16462 end item Command = ecDeleteWord ShortCut = 16468 end item Command = ecBlockUnindent ShortCut = 24661 end item Command = ecPaste ShortCut = 16470 end item Command = ecCut ShortCut = 16472 end item Command = ecDeleteLine ShortCut = 16473 end item Command = ecDeleteEOL ShortCut = 24665 end item Command = ecUndo ShortCut = 16474 end item Command = ecRedo ShortCut = 24666 end item Command = ecGotoMarker0 ShortCut = 16432 end item Command = ecGotoMarker1 ShortCut = 16433 end item Command = ecGotoMarker2 ShortCut = 16434 end item Command = ecGotoMarker3 ShortCut = 16435 end item Command = ecGotoMarker4 ShortCut = 16436 end item Command = ecGotoMarker5 ShortCut = 16437 end item Command = ecGotoMarker6 ShortCut = 16438 end item Command = ecGotoMarker7 ShortCut = 16439 end item Command = ecGotoMarker8 ShortCut = 16440 end item Command = ecGotoMarker9 ShortCut = 16441 end item Command = ecSetMarker0 ShortCut = 24624 end item Command = ecSetMarker1 ShortCut = 24625 end item Command = ecSetMarker2 ShortCut = 24626 end item Command = ecSetMarker3 ShortCut = 24627 end item Command = ecSetMarker4 ShortCut = 24628 end item Command = ecSetMarker5 ShortCut = 24629 end item Command = ecSetMarker6 ShortCut = 24630 end item Command = ecSetMarker7 ShortCut = 24631 end item Command = ecSetMarker8 ShortCut = 24632 end item Command = ecSetMarker9 ShortCut = 24633 end item Command = EcFoldLevel1 ShortCut = 41009 end item Command = EcFoldLevel2 ShortCut = 41010 end item Command = EcFoldLevel1 ShortCut = 41011 end item Command = EcFoldLevel1 ShortCut = 41012 end item Command = EcFoldLevel1 ShortCut = 41013 end item Command = EcFoldLevel6 ShortCut = 41014 end item Command = EcFoldLevel7 ShortCut = 41015 end item Command = EcFoldLevel8 ShortCut = 41016 end item Command = EcFoldLevel9 ShortCut = 41017 end item Command = EcFoldLevel0 ShortCut = 41008 end item Command = EcFoldCurrent ShortCut = 41005 end item Command = EcUnFoldCurrent ShortCut = 41003 end item Command = EcToggleMarkupWord ShortCut = 32845 end item Command = ecNormalSelect ShortCut = 24654 end item Command = ecColumnSelect ShortCut = 24643 end item Command = ecLineSelect ShortCut = 24652 end item Command = ecTab ShortCut = 9 end item Command = ecShiftTab ShortCut = 8201 end item Command = ecMatchBracket ShortCut = 24642 end item Command = ecColSelUp ShortCut = 40998 end item Command = ecColSelDown ShortCut = 41000 end item Command = ecColSelLeft ShortCut = 40997 end item Command = ecColSelRight ShortCut = 40999 end item Command = ecColSelPageDown ShortCut = 40994 end item Command = ecColSelPageBottom ShortCut = 57378 end item Command = ecColSelPageUp ShortCut = 40993 end item Command = ecColSelPageTop ShortCut = 57377 end item Command = ecColSelLineStart ShortCut = 40996 end item Command = ecColSelLineEnd ShortCut = 40995 end item Command = ecColSelEditorTop ShortCut = 57380 end item Command = ecColSelEditorBottom ShortCut = 57379 end> MouseActions = <> MouseTextActions = <> MouseSelActions = <> Lines.Strings = ( '' ) VisibleSpecialChars = [vscSpace, vscTabAtLast] RightEdge = 1024 ScrollBars = ssAutoBoth SelectedColor.BackPriority = 50 SelectedColor.ForePriority = 50 SelectedColor.FramePriority = 50 SelectedColor.BoldPriority = 50 SelectedColor.ItalicPriority = 50 SelectedColor.UnderlinePriority = 50 SelectedColor.StrikeOutPriority = 50 inline SynLeftGutterPartList1: TSynGutterPartList object SynGutterMarks1: TSynGutterMarks Width = 24 MouseActions = <> end object SynGutterLineNumber1: TSynGutterLineNumber Width = 17 MouseActions = <> MarkupInfo.Background = clBtnFace MarkupInfo.Foreground = clNone DigitCount = 2 ShowOnlyLineNumbersMultiplesOf = 1 ZeroStart = False LeadingZeros = False end object SynGutterChanges1: TSynGutterChanges Width = 4 MouseActions = <> ModifiedColor = 59900 SavedColor = clGreen end object SynGutterSeparator1: TSynGutterSeparator Width = 2 MouseActions = <> MarkupInfo.Background = clWhite MarkupInfo.Foreground = clGray end object SynGutterCodeFolding1: TSynGutterCodeFolding MouseActions = <> MarkupInfo.Background = clNone MarkupInfo.Foreground = clGray MouseActionsExpanded = <> MouseActionsCollapsed = <> end end end object StartupInstructions: TMemo AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 0 Height = 56 Top = 0 Width = 995 Anchors = [akTop, akLeft, akRight] Lines.Strings = ( 'UDM can be started up by commandline parameters or by the Startup options shown at the bottom.' 'The command line startup options are explained next:' ) TabOrder = 2 end object UDMArgumentsLabeledEdit: TLabeledEdit AnchorSideLeft.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = StartUpSettingsEdit Left = 0 Height = 31 Top = 507 Width = 995 Anchors = [akLeft, akRight, akBottom] BorderSpacing.Bottom = 27 EditLabel.Height = 21 EditLabel.Width = 995 EditLabel.Caption = 'UDM was started with these command line arguments:' Enabled = False ReadOnly = True TabOrder = 3 end end �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./smtpsend.pas��������������������������������������������������������������������������������������0000644�0001750�0001750�00000061161�14576573021�013516� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{==============================================================================| | Project : Ararat Synapse | 003.005.001 | |==============================================================================| | Content: SMTP client | |==============================================================================| | Copyright (c)1999-2010, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c) 1999-2010. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@abstract(SMTP client) Used RFC: RFC-1869, RFC-1870, RFC-1893, RFC-2034, RFC-2104, RFC-2195, RFC-2487, RFC-2554, RFC-2821 } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} {$IFDEF UNICODE} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$ENDIF} unit smtpsend; interface uses SysUtils, Classes, blcksock, synautil, synacode; const cSmtpProtocol = '25'; type {:@abstract(Implementation of SMTP and ESMTP procotol), include some ESMTP extensions, include SSL/TLS too. Note: Are you missing properties for setting Username and Password for ESMTP? Look to parent @link(TSynaClient) object! Are you missing properties for specify server address and port? Look to parent @link(TSynaClient) too!} TSMTPSend = class(TSynaClient) private FSock: TTCPBlockSocket; FResultCode: Integer; FResultString: string; FFullResult: TStringList; FESMTPcap: TStringList; FESMTP: Boolean; FAuthDone: Boolean; FESMTPSize: Boolean; FMaxSize: Integer; FEnhCode1: Integer; FEnhCode2: Integer; FEnhCode3: Integer; FSystemName: string; FAutoTLS: Boolean; FFullSSL: Boolean; procedure EnhancedCode(const Value: string); function ReadResult: Integer; function AuthLogin: Boolean; function AuthCram: Boolean; function AuthPlain: Boolean; function Helo: Boolean; function Ehlo: Boolean; function Connect: Boolean; public constructor Create; destructor Destroy; override; {:Connects to SMTP server (defined in @link(TSynaClient.TargetHost)) and begin SMTP session. (First try ESMTP EHLO, next old HELO handshake). Parses ESMTP capabilites and if you specified Username and password and remote server can handle AUTH command, try login by AUTH command. Preffered login method is CRAM-MD5 (if safer!). If all OK, result is @true, else result is @false.} function Login: Boolean; {:Close SMTP session (QUIT command) and disconnect from SMTP server.} function Logout: Boolean; {:Send RSET SMTP command for reset SMTP session. If all OK, result is @true, else result is @false.} function Reset: Boolean; {:Send NOOP SMTP command for keep SMTP session. If all OK, result is @true, else result is @false.} function NoOp: Boolean; {:Send MAIL FROM SMTP command for set sender e-mail address. If sender's e-mail address is empty string, transmited message is error message. If size not 0 and remote server can handle SIZE parameter, append SIZE parameter to request. If all OK, result is @true, else result is @false.} function MailFrom(const Value: string; Size: Integer): Boolean; {:Send RCPT TO SMTP command for set receiver e-mail address. It cannot be an empty string. If all OK, result is @true, else result is @false.} function MailTo(const Value: string): Boolean; {:Send DATA SMTP command and transmit message data. If all OK, result is @true, else result is @false.} function MailData(const Value: Tstrings): Boolean; {:Send ETRN SMTP command for start sending of remote queue for domain in Value. If all OK, result is @true, else result is @false.} function Etrn(const Value: string): Boolean; {:Send VRFY SMTP command for check receiver e-mail address. It cannot be an empty string. If all OK, result is @true, else result is @false.} function Verify(const Value: string): Boolean; {:Call STARTTLS command for upgrade connection to SSL/TLS mode.} function StartTLS: Boolean; {:Return string descriptive text for enhanced result codes stored in @link(EnhCode1), @link(EnhCode2) and @link(EnhCode3).} function EnhCodeString: string; {:Try to find specified capability in ESMTP response.} function FindCap(const Value: string): string; published {:result code of last SMTP command.} property ResultCode: Integer read FResultCode; {:result string of last SMTP command (begin with string representation of result code).} property ResultString: string read FResultString; {:All result strings of last SMTP command (result is maybe multiline!).} property FullResult: TStringList read FFullResult; {:List of ESMTP capabilites of remote ESMTP server. (If you connect to ESMTP server only!).} property ESMTPcap: TStringList read FESMTPcap; {:@TRUE if you successfuly logged to ESMTP server.} property ESMTP: Boolean read FESMTP; {:@TRUE if you successfuly pass authorisation to remote server.} property AuthDone: Boolean read FAuthDone; {:@TRUE if remote server can handle SIZE parameter.} property ESMTPSize: Boolean read FESMTPSize; {:When @link(ESMTPsize) is @TRUE, contains max length of message that remote server can handle.} property MaxSize: Integer read FMaxSize; {:First digit of Enhanced result code. If last operation does not have enhanced result code, values is 0.} property EnhCode1: Integer read FEnhCode1; {:Second digit of Enhanced result code. If last operation does not have enhanced result code, values is 0.} property EnhCode2: Integer read FEnhCode2; {:Third digit of Enhanced result code. If last operation does not have enhanced result code, values is 0.} property EnhCode3: Integer read FEnhCode3; {:name of our system used in HELO and EHLO command. Implicit value is internet address of your machine.} property SystemName: string read FSystemName Write FSystemName; {:If is set to true, then upgrade to SSL/TLS mode if remote server support it.} property AutoTLS: Boolean read FAutoTLS Write FAutoTLS; {:SSL/TLS mode is used from first contact to server. Servers with full SSL/TLS mode usualy using non-standard TCP port!} property FullSSL: Boolean read FFullSSL Write FFullSSL; {:Socket object used for TCP/IP operation. Good for seting OnStatus hook, etc.} property Sock: TTCPBlockSocket read FSock; end; {:A very useful function and example of its use would be found in the TSMTPsend object. Send maildata (text of e-mail with all SMTP headers! For example when text of message is created by @link(TMimemess) object) from "MailFrom" e-mail address to "MailTo" e-mail address (If you need more then one receiver, then separate their addresses by comma). Function sends e-mail to a SMTP server defined in "SMTPhost" parameter. Username and password are used for authorization to the "SMTPhost". If you don't want authorization, set "Username" and "Password" to empty strings. If e-mail message is successfully sent, the result returns @true. If you need use different port number then standard, then add this port number to SMTPhost after colon. (i.e. '127.0.0.1:1025')} function SendToRaw(const MailFrom, MailTo, SMTPHost: string; const MailData: TStrings; const Username, Password: string): Boolean; {:A very useful function and example of its use would be found in the TSMTPsend object. Send "Maildata" (text of e-mail without any SMTP headers!) from "MailFrom" e-mail address to "MailTo" e-mail address with "Subject". (If you need more then one receiver, then separate their addresses by comma). This function constructs all needed SMTP headers (with DATE header) and sends the e-mail to the SMTP server defined in the "SMTPhost" parameter. If the e-mail message is successfully sent, the result will be @TRUE. If you need use different port number then standard, then add this port number to SMTPhost after colon. (i.e. '127.0.0.1:1025')} function SendTo(const MailFrom, MailTo, Subject, SMTPHost: string; const MailData: TStrings): Boolean; {:A very useful function and example of its use would be found in the TSMTPsend object. Sends "MailData" (text of e-mail without any SMTP headers!) from "MailFrom" e-mail address to "MailTo" e-mail address (If you need more then one receiver, then separate their addresses by comma). This function sends the e-mail to the SMTP server defined in the "SMTPhost" parameter. Username and password are used for authorization to the "SMTPhost". If you dont want authorization, set "Username" and "Password" to empty Strings. If the e-mail message is successfully sent, the result will be @TRUE. If you need use different port number then standard, then add this port number to SMTPhost after colon. (i.e. '127.0.0.1:1025')} function SendToEx(const MailFrom, MailTo, Subject, SMTPHost: string; const MailData: TStrings; const Username, Password: string): Boolean; implementation constructor TSMTPSend.Create; begin inherited Create; FFullResult := TStringList.Create; FESMTPcap := TStringList.Create; FSock := TTCPBlockSocket.Create; FSock.Owner := self; FSock.ConvertLineEnd := true; FTimeout := 60000; FTargetPort := cSmtpProtocol; FSystemName := FSock.LocalName; FAutoTLS := False; FFullSSL := False; end; destructor TSMTPSend.Destroy; begin FSock.Free; FESMTPcap.Free; FFullResult.Free; inherited Destroy; end; procedure TSMTPSend.EnhancedCode(const Value: string); var s, t: string; e1, e2, e3: Integer; begin FEnhCode1 := 0; FEnhCode2 := 0; FEnhCode3 := 0; s := Copy(Value, 5, Length(Value) - 4); t := Trim(SeparateLeft(s, '.')); s := Trim(SeparateRight(s, '.')); if t = '' then Exit; if Length(t) > 1 then Exit; e1 := StrToIntDef(t, 0); if e1 = 0 then Exit; t := Trim(SeparateLeft(s, '.')); s := Trim(SeparateRight(s, '.')); if t = '' then Exit; if Length(t) > 3 then Exit; e2 := StrToIntDef(t, 0); t := Trim(SeparateLeft(s, ' ')); if t = '' then Exit; if Length(t) > 3 then Exit; e3 := StrToIntDef(t, 0); FEnhCode1 := e1; FEnhCode2 := e2; FEnhCode3 := e3; end; function TSMTPSend.ReadResult: Integer; var s: String; begin Result := 0; FFullResult.Clear; repeat s := FSock.RecvString(FTimeout); FResultString := s; FFullResult.Add(s); if FSock.LastError <> 0 then Break; until Pos('-', s) <> 4; s := FFullResult[0]; if Length(s) >= 3 then Result := StrToIntDef(Copy(s, 1, 3), 0); FResultCode := Result; EnhancedCode(s); end; function TSMTPSend.AuthLogin: Boolean; begin Result := False; FSock.SendString('AUTH LOGIN' + CRLF); if ReadResult <> 334 then Exit; FSock.SendString(EncodeBase64(FUsername) + CRLF); if ReadResult <> 334 then Exit; FSock.SendString(EncodeBase64(FPassword) + CRLF); Result := ReadResult = 235; end; function TSMTPSend.AuthCram: Boolean; var s: ansistring; begin Result := False; FSock.SendString('AUTH CRAM-MD5' + CRLF); if ReadResult <> 334 then Exit; s := Copy(FResultString, 5, Length(FResultString) - 4); s := DecodeBase64(s); s := HMAC_MD5(s, FPassword); s := FUsername + ' ' + StrToHex(s); FSock.SendString(EncodeBase64(s) + CRLF); Result := ReadResult = 235; end; function TSMTPSend.AuthPlain: Boolean; var s: ansistring; begin s := ansichar(0) + FUsername + ansichar(0) + FPassword; FSock.SendString('AUTH PLAIN ' + EncodeBase64(s) + CRLF); Result := ReadResult = 235; end; function TSMTPSend.Connect: Boolean; begin FSock.CloseSocket; FSock.Bind(FIPInterface, cAnyPort); if FSock.LastError = 0 then FSock.Connect(FTargetHost, FTargetPort); if FSock.LastError = 0 then if FFullSSL then FSock.SSLDoConnect; Result := FSock.LastError = 0; end; function TSMTPSend.Helo: Boolean; var x: Integer; begin FSock.SendString('HELO ' + FSystemName + CRLF); x := ReadResult; Result := (x >= 250) and (x <= 259); end; function TSMTPSend.Ehlo: Boolean; var x: Integer; begin FSock.SendString('EHLO ' + FSystemName + CRLF); x := ReadResult; Result := (x >= 250) and (x <= 259); end; function TSMTPSend.Login: Boolean; var n: Integer; auths: string; s: string; begin Result := False; FESMTP := True; FAuthDone := False; FESMTPcap.clear; FESMTPSize := False; FMaxSize := 0; if not Connect then Exit; if ReadResult <> 220 then Exit; if not Ehlo then begin FESMTP := False; if not Helo then Exit; end; Result := True; if FESMTP then begin for n := 1 to FFullResult.Count - 1 do FESMTPcap.Add(Copy(FFullResult[n], 5, Length(FFullResult[n]) - 4)); if (not FullSSL) and FAutoTLS and (FindCap('STARTTLS') <> '') then if StartTLS then begin Ehlo; FESMTPcap.Clear; for n := 1 to FFullResult.Count - 1 do FESMTPcap.Add(Copy(FFullResult[n], 5, Length(FFullResult[n]) - 4)); end else begin Result := False; Exit; end; if not ((FUsername = '') and (FPassword = '')) then begin s := FindCap('AUTH '); if s = '' then s := FindCap('AUTH='); auths := UpperCase(s); if s <> '' then begin if Pos('CRAM-MD5', auths) > 0 then FAuthDone := AuthCram; if (not FauthDone) and (Pos('PLAIN', auths) > 0) then FAuthDone := AuthPlain; if (not FauthDone) and (Pos('LOGIN', auths) > 0) then FAuthDone := AuthLogin; end; end; s := FindCap('SIZE'); if s <> '' then begin FESMTPsize := True; FMaxSize := StrToIntDef(Copy(s, 6, Length(s) - 5), 0); end; end; end; function TSMTPSend.Logout: Boolean; begin FSock.SendString('QUIT' + CRLF); Result := ReadResult = 221; FSock.CloseSocket; end; function TSMTPSend.Reset: Boolean; begin FSock.SendString('RSET' + CRLF); Result := ReadResult div 100 = 2; end; function TSMTPSend.NoOp: Boolean; begin FSock.SendString('NOOP' + CRLF); Result := ReadResult div 100 = 2; end; function TSMTPSend.MailFrom(const Value: string; Size: Integer): Boolean; var s: string; begin s := 'MAIL FROM:<' + Value + '>'; if FESMTPsize and (Size > 0) then s := s + ' SIZE=' + IntToStr(Size); FSock.SendString(s + CRLF); Result := ReadResult div 100 = 2; end; function TSMTPSend.MailTo(const Value: string): Boolean; begin FSock.SendString('RCPT TO:<' + Value + '>' + CRLF); Result := ReadResult div 100 = 2; end; function TSMTPSend.MailData(const Value: TStrings): Boolean; var n: Integer; s: string; t: string; x: integer; begin Result := False; FSock.SendString('DATA' + CRLF); if ReadResult <> 354 then Exit; t := ''; x := 1500; for n := 0 to Value.Count - 1 do begin s := Value[n]; if Length(s) >= 1 then if s[1] = '.' then s := '.' + s; if Length(t) + Length(s) >= x then begin FSock.SendString(t); t := ''; end; t := t + s + CRLF; end; if t <> '' then FSock.SendString(t); FSock.SendString('.' + CRLF); Result := ReadResult div 100 = 2; end; function TSMTPSend.Etrn(const Value: string): Boolean; var x: Integer; begin FSock.SendString('ETRN ' + Value + CRLF); x := ReadResult; Result := (x >= 250) and (x <= 259); end; function TSMTPSend.Verify(const Value: string): Boolean; var x: Integer; begin FSock.SendString('VRFY ' + Value + CRLF); x := ReadResult; Result := (x >= 250) and (x <= 259); end; function TSMTPSend.StartTLS: Boolean; begin Result := False; if FindCap('STARTTLS') <> '' then begin FSock.SendString('STARTTLS' + CRLF); if (ReadResult = 220) and (FSock.LastError = 0) then begin Fsock.SSLDoConnect; Result := FSock.LastError = 0; end; end; end; function TSMTPSend.EnhCodeString: string; var s, t: string; begin s := IntToStr(FEnhCode2) + '.' + IntToStr(FEnhCode3); t := ''; if s = '0.0' then t := 'Other undefined Status'; if s = '1.0' then t := 'Other address status'; if s = '1.1' then t := 'Bad destination mailbox address'; if s = '1.2' then t := 'Bad destination system address'; if s = '1.3' then t := 'Bad destination mailbox address syntax'; if s = '1.4' then t := 'Destination mailbox address ambiguous'; if s = '1.5' then t := 'Destination mailbox address valid'; if s = '1.6' then t := 'Mailbox has moved'; if s = '1.7' then t := 'Bad sender''s mailbox address syntax'; if s = '1.8' then t := 'Bad sender''s system address'; if s = '2.0' then t := 'Other or undefined mailbox status'; if s = '2.1' then t := 'Mailbox disabled, not accepting messages'; if s = '2.2' then t := 'Mailbox full'; if s = '2.3' then t := 'Message Length exceeds administrative limit'; if s = '2.4' then t := 'Mailing list expansion problem'; if s = '3.0' then t := 'Other or undefined mail system status'; if s = '3.1' then t := 'Mail system full'; if s = '3.2' then t := 'System not accepting network messages'; if s = '3.3' then t := 'System not capable of selected features'; if s = '3.4' then t := 'Message too big for system'; if s = '3.5' then t := 'System incorrectly configured'; if s = '4.0' then t := 'Other or undefined network or routing status'; if s = '4.1' then t := 'No answer from host'; if s = '4.2' then t := 'Bad connection'; if s = '4.3' then t := 'Routing server failure'; if s = '4.4' then t := 'Unable to route'; if s = '4.5' then t := 'Network congestion'; if s = '4.6' then t := 'Routing loop detected'; if s = '4.7' then t := 'Delivery time expired'; if s = '5.0' then t := 'Other or undefined protocol status'; if s = '5.1' then t := 'Invalid command'; if s = '5.2' then t := 'Syntax error'; if s = '5.3' then t := 'Too many recipients'; if s = '5.4' then t := 'Invalid command arguments'; if s = '5.5' then t := 'Wrong protocol version'; if s = '6.0' then t := 'Other or undefined media error'; if s = '6.1' then t := 'Media not supported'; if s = '6.2' then t := 'Conversion required and prohibited'; if s = '6.3' then t := 'Conversion required but not supported'; if s = '6.4' then t := 'Conversion with loss performed'; if s = '6.5' then t := 'Conversion failed'; if s = '7.0' then t := 'Other or undefined security status'; if s = '7.1' then t := 'Delivery not authorized, message refused'; if s = '7.2' then t := 'Mailing list expansion prohibited'; if s = '7.3' then t := 'Security conversion required but not possible'; if s = '7.4' then t := 'Security features not supported'; if s = '7.5' then t := 'Cryptographic failure'; if s = '7.6' then t := 'Cryptographic algorithm not supported'; if s = '7.7' then t := 'Message integrity failure'; s := '???-'; if FEnhCode1 = 2 then s := 'Success-'; if FEnhCode1 = 4 then s := 'Persistent Transient Failure-'; if FEnhCode1 = 5 then s := 'Permanent Failure-'; Result := s + t; end; function TSMTPSend.FindCap(const Value: string): string; var n: Integer; s: string; begin s := UpperCase(Value); Result := ''; for n := 0 to FESMTPcap.Count - 1 do if Pos(s, UpperCase(FESMTPcap[n])) = 1 then begin Result := FESMTPcap[n]; Break; end; end; {==============================================================================} function SendToRaw(const MailFrom, MailTo, SMTPHost: string; const MailData: TStrings; const Username, Password: string): Boolean; var SMTP: TSMTPSend; s, t: string; begin Result := False; SMTP := TSMTPSend.Create; try // if you need SOCKS5 support, uncomment next lines: // SMTP.Sock.SocksIP := '127.0.0.1'; // SMTP.Sock.SocksPort := '1080'; // if you need support for upgrade session to TSL/SSL, uncomment next lines: // SMTP.AutoTLS := True; // if you need support for TSL/SSL tunnel, uncomment next lines: // SMTP.FullSSL := True; SMTP.TargetHost := Trim(SeparateLeft(SMTPHost, ':')); s := Trim(SeparateRight(SMTPHost, ':')); if (s <> '') and (s <> SMTPHost) then SMTP.TargetPort := s; SMTP.Username := Username; SMTP.Password := Password; if SMTP.Login then begin if SMTP.MailFrom(GetEmailAddr(MailFrom), Length(MailData.Text)) then begin s := MailTo; repeat t := GetEmailAddr(Trim(FetchEx(s, ',', '"'))); if t <> '' then Result := SMTP.MailTo(t); if not Result then Break; until s = ''; if Result then Result := SMTP.MailData(MailData); end; SMTP.Logout; end; finally SMTP.Free; end; end; function SendToEx(const MailFrom, MailTo, Subject, SMTPHost: string; const MailData: TStrings; const Username, Password: string): Boolean; var t: TStrings; begin t := TStringList.Create; try t.Assign(MailData); t.Insert(0, ''); t.Insert(0, 'X-mailer: Synapse - Delphi & Kylix TCP/IP library by Lukas Gebauer'); t.Insert(0, 'Subject: ' + Subject); t.Insert(0, 'Date: ' + Rfc822DateTime(now)); t.Insert(0, 'To: ' + MailTo); t.Insert(0, 'From: ' + MailFrom); Result := SendToRaw(MailFrom, MailTo, SMTPHost, t, Username, Password); finally t.Free; end; end; function SendTo(const MailFrom, MailTo, Subject, SMTPHost: string; const MailData: TStrings): Boolean; begin Result := SendToEx(MailFrom, MailTo, Subject, SMTPHost, MailData, '', ''); end; end. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./rotstageunit.lfm����������������������������������������������������������������������������������0000644�0001750�0001750�00000000605�14576573021�014400� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object FormRS: TFormRS Left = 521 Height = 240 Top = 214 Width = 320 Caption = 'Rotational Stage settings' ClientHeight = 240 ClientWidth = 320 OnCreate = FormCreate LCLVersion = '1.1' object RSStatusBar: TStatusBar Left = 0 Height = 18 Top = 222 Width = 320 Panels = < item Width = 50 end> SimplePanel = False end end ���������������������������������������������������������������������������������������������������������������������������./playsound_icon.lrs��������������������������������������������������������������������������������0000744�0001750�0001750�00000006277�14576573022�014735� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������LazarusResources.Add('TPlaysound','PNG',[ #137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#24#0#0#0#24#8#6#0#0#0#224'w='#248#0 +#0#0#6'bKGD'#0#255#0#255#0#255#160#189#167#147#0#0#0#9'pHYs'#0#0#14#206#0#0 +#14#206#1#206'_'#197#247#0#0#0#7'tIME'#7#222#9#11#14'*'#1','#3#227';'#0#0#3 +'_IDATH'#199#141#214'K'#136#215'U'#20#7#240#207#252'G'#29'M'#19#173#204#154 +'$,5ln'#164'EI'#15#194'$k'#213#131#178'E'#166'a'#148'``-'#10#178#240#1#161 +#182#201'V'#138#149'-'#162'E'#134#4#9'eX'#248'"'#8#172' '#218#232#25'1M2)' +#209#202#183'&'#234#204#180#248#157#255#204'_'#249#167#222#205'9'#191's'#238 +#189#231#253#189'?@Hz/'#241'b'#159#172'.'#191#212#234'='#255#18#241#244#249 +#178'>'#229'hbK'#242#195#137'v'#151#189'b<q}'#242#31#17'#'#235#154'Z'#195#174 +'W'#240'$1'#0#203'1'#225#2'O.'#226#185#137'XA'#244#199'R'#188'['#215#215'(' +#136'I8J9'#138'7'#177#131#242'5'#241'X'#165#255#191'U'#16#247'S'#214#224#251 +#234'l'#217#131#159#137#135#27'='#217'D'#12'"'#134#16'kS'#182#144'x'#234'2' +#162'x'#136#152#147#252#15'D'#7#209'J,'#205#20#197#141#216'H'#249#23#31#226 +'=b('#6'R'#214#18#195#154'G'#17'-'#196#21#216#130')'#196'8'#204#192'|JWu'#190 +#170#193'M'#248#172#186#200'='#148'Mx'#31#171#136'k*za'#20#1#173#248#20'C1' +#29#203'('#191#226#28'Q'#195'w'#196#180#26#198#227'0'#238#195#219#196#8#180 +'Q'#246'aqU'#252'x'#16#3#250#12#244#180'b&f'#227'sJ'#15'6'#167#147#219'0'#26 +#27#240'|'#13'cq'#2#29#213'f'#211'0'#175'j='#253#209#142#231#232'8'#155'a' +#183'q['#23#238'H'#221'j'#226#22#252#136'qI'#167'g'#202#219'k'#24'I9'#135#17 +'8'#158#223'{'#240#2#222#168'r:f'#14'-W'#166#193'6jm'#156'y'#21'O`'#29'n'#197 +#239#152'Zu'#160#201#25#234#142'Z'#195','#12'B'#15#206#230#247'P'#202'!'#236 +'f'#224#185#212#29#199'1'#186#7'2'#177';#8'#156#6#14'V'#180#252#147#145#192 +#254'Z'#30#172#23'M'#195#247#201#28#186'?'#251#190'{W7-'#178'V]'#24'F'#233 +#198#144#212#215#233#233#198#8#186#146#182#244'ET'#206#164#151'0'#184#193'@' +#141#158#22#156#174'z'#222#177#164'GS_'#167#131#251'5'#164#228'TFQ7x'#166#26 +'>'#183'W'#151#181#212'pm:p'#132#206'!'#216#155#181#235#172'jg{'#226#208#206 +#188'cT'#13#251#19'C'#254#202#158'>'#152']'#241#9#22#224'-:'#151#211's*'#243 +'|'#128'?Z0'#23#235#179#176#219'qs'#14']G'#213#178'`l'#13#191'd'#206#182#225 +#153'l'#213'%'#148#159#178#159'wU'#30'v'#142#236#203#208#145#146#145#30#194 +#163#148#221'x '#239#154'T'#221#17'Wag'#221'@;'#182#226#181#236#130#3#196#24 +',Ld'#253#178#146#245#174#29'X'#153#200#185#136#24'UEPN'#226'.'#202'^<'#142 +#21#181#170#13#205#166#156#192'W'#21#130'Z'#156#200#248'['#194#198'h'#202#217 +'>'#184'('#167'2'#247#31'Pv'#165#177#249#196#228#6'G:(['#235#216#178#190#10 +')'#6#16#223#164#236'Y'#226#227#228#251'5'#1#187'l'#134'XVAs'#180#18#251#136 +#171'S'#190#164'q'#243'u'#196#202#228#23#16#139#146#159'EL'#185#8'T'#207'%^N' +'~'#30'1#'#249'w'#136#187'3'#226#222'''sqB7'#226'[bf'#147#151'KsY'#204'"6$?' +#129'X'#211'ds'#220'@'#172#174#222'c'#136'u'#137#162#151'z'#232#239'$'#190 +#200#247'a8'#177'*'#135#238#188#169#173'o'#158#154#0#246'z'#5#3'FQ.'#241'k' +#17#237#248';''})'#214'R6W'#14#148#166#30'=R'#165#235'b'#233'i'#154#166#153 +#233#224'y'#235'?'#247')('#135#205' '#216'A'#0#0#0#0'IEND'#174'B`'#130 ]); ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./synacrypt.pas�������������������������������������������������������������������������������������0000644�0001750�0001750�00000370760�14576573021�013725� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{==============================================================================| | Project : Ararat Synapse | 001.001.000 | |==============================================================================| | Content: Encryption support | |==============================================================================| | Copyright (c)2007-2011, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2007-2011. | | All Rights Reserved. | | Based on work of David Barton and Eric Young | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@abstract(Encryption support) Implemented are DES and 3DES encryption/decryption by ECB, CBC, CFB-8bit, CFB-block, OFB and CTR methods. } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$Q-} {$R-} {$H+} {$IFDEF UNICODE} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$ENDIF} unit synacrypt; interface uses SysUtils, Classes, synautil, synafpc; type {:@abstract(Implementation of common routines block ciphers (dafault size is 64-bits)) Do not use this class directly, use descendants only!} TSynaBlockCipher= class(TObject) protected procedure InitKey(Key: AnsiString); virtual; function GetSize: byte; virtual; private IV, CV: AnsiString; procedure IncCounter; public {:Sets the IV to Value and performs a reset} procedure SetIV(const Value: AnsiString); virtual; {:Returns the current chaining information, not the actual IV} function GetIV: AnsiString; virtual; {:Reset any stored chaining information} procedure Reset; virtual; {:Encrypt a 64-bit block of data using the ECB method of encryption} function EncryptECB(const InData: AnsiString): AnsiString; virtual; {:Decrypt a 64-bit block of data using the ECB method of decryption} function DecryptECB(const InData: AnsiString): AnsiString; virtual; {:Encrypt data using the CBC method of encryption} function EncryptCBC(const Indata: AnsiString): AnsiString; virtual; {:Decrypt data using the CBC method of decryption} function DecryptCBC(const Indata: AnsiString): AnsiString; virtual; {:Encrypt data using the CFB (8 bit) method of encryption} function EncryptCFB8bit(const Indata: AnsiString): AnsiString; virtual; {:Decrypt data using the CFB (8 bit) method of decryption} function DecryptCFB8bit(const Indata: AnsiString): AnsiString; virtual; {:Encrypt data using the CFB (block) method of encryption} function EncryptCFBblock(const Indata: AnsiString): AnsiString; virtual; {:Decrypt data using the CFB (block) method of decryption} function DecryptCFBblock(const Indata: AnsiString): AnsiString; virtual; {:Encrypt data using the OFB method of encryption} function EncryptOFB(const Indata: AnsiString): AnsiString; virtual; {:Decrypt data using the OFB method of decryption} function DecryptOFB(const Indata: AnsiString): AnsiString; virtual; {:Encrypt data using the CTR method of encryption} function EncryptCTR(const Indata: AnsiString): AnsiString; virtual; {:Decrypt data using the CTR method of decryption} function DecryptCTR(const Indata: AnsiString): AnsiString; virtual; {:Create a encryptor/decryptor instance and initialize it by the Key.} constructor Create(Key: AnsiString); end; {:@abstract(Datatype for holding one DES key data) This data type is used internally.} TDesKeyData = array[0..31] of integer; {:@abstract(Implementation of common routines for DES encryption) Do not use this class directly, use descendants only!} TSynaCustomDes = class(TSynaBlockcipher) protected procedure DoInit(KeyB: AnsiString; var KeyData: TDesKeyData); function EncryptBlock(const InData: AnsiString; var KeyData: TDesKeyData): AnsiString; function DecryptBlock(const InData: AnsiString; var KeyData: TDesKeyData): AnsiString; end; {:@abstract(Implementation of DES encryption)} TSynaDes= class(TSynaCustomDes) protected KeyData: TDesKeyData; procedure InitKey(Key: AnsiString); override; public {:Encrypt a 64-bit block of data using the ECB method of encryption} function EncryptECB(const InData: AnsiString): AnsiString; override; {:Decrypt a 64-bit block of data using the ECB method of decryption} function DecryptECB(const InData: AnsiString): AnsiString; override; end; {:@abstract(Implementation of 3DES encryption)} TSyna3Des= class(TSynaCustomDes) protected KeyData: array[0..2] of TDesKeyData; procedure InitKey(Key: AnsiString); override; public {:Encrypt a 64-bit block of data using the ECB method of encryption} function EncryptECB(const InData: AnsiString): AnsiString; override; {:Decrypt a 64-bit block of data using the ECB method of decryption} function DecryptECB(const InData: AnsiString): AnsiString; override; end; const BC = 4; MAXROUNDS = 14; type {:@abstract(Implementation of AES encryption)} TSynaAes= class(TSynaBlockcipher) protected numrounds: longword; rk, drk: array[0..MAXROUNDS,0..7] of longword; procedure InitKey(Key: AnsiString); override; function GetSize: byte; override; public {:Encrypt a 128-bit block of data using the ECB method of encryption} function EncryptECB(const InData: AnsiString): AnsiString; override; {:Decrypt a 128-bit block of data using the ECB method of decryption} function DecryptECB(const InData: AnsiString): AnsiString; override; end; {:Call internal test of all DES encryptions. Returns @true if all is OK.} function TestDes: boolean; {:Call internal test of all 3DES encryptions. Returns @true if all is OK.} function Test3Des: boolean; {:Call internal test of all AES encryptions. Returns @true if all is OK.} function TestAes: boolean; {==============================================================================} implementation //DES consts const shifts2: array[0..15]of byte= (0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0); des_skb: array[0..7,0..63]of integer=( ( (* for C bits (numbered as per FIPS 46) 1 2 3 4 5 6 *) integer($00000000),integer($00000010),integer($20000000),integer($20000010), integer($00010000),integer($00010010),integer($20010000),integer($20010010), integer($00000800),integer($00000810),integer($20000800),integer($20000810), integer($00010800),integer($00010810),integer($20010800),integer($20010810), integer($00000020),integer($00000030),integer($20000020),integer($20000030), integer($00010020),integer($00010030),integer($20010020),integer($20010030), integer($00000820),integer($00000830),integer($20000820),integer($20000830), integer($00010820),integer($00010830),integer($20010820),integer($20010830), integer($00080000),integer($00080010),integer($20080000),integer($20080010), integer($00090000),integer($00090010),integer($20090000),integer($20090010), integer($00080800),integer($00080810),integer($20080800),integer($20080810), integer($00090800),integer($00090810),integer($20090800),integer($20090810), integer($00080020),integer($00080030),integer($20080020),integer($20080030), integer($00090020),integer($00090030),integer($20090020),integer($20090030), integer($00080820),integer($00080830),integer($20080820),integer($20080830), integer($00090820),integer($00090830),integer($20090820),integer($20090830) ),( (* for C bits (numbered as per FIPS 46) 7 8 10 11 12 13 *) integer($00000000),integer($02000000),integer($00002000),integer($02002000), integer($00200000),integer($02200000),integer($00202000),integer($02202000), integer($00000004),integer($02000004),integer($00002004),integer($02002004), integer($00200004),integer($02200004),integer($00202004),integer($02202004), integer($00000400),integer($02000400),integer($00002400),integer($02002400), integer($00200400),integer($02200400),integer($00202400),integer($02202400), integer($00000404),integer($02000404),integer($00002404),integer($02002404), integer($00200404),integer($02200404),integer($00202404),integer($02202404), integer($10000000),integer($12000000),integer($10002000),integer($12002000), integer($10200000),integer($12200000),integer($10202000),integer($12202000), integer($10000004),integer($12000004),integer($10002004),integer($12002004), integer($10200004),integer($12200004),integer($10202004),integer($12202004), integer($10000400),integer($12000400),integer($10002400),integer($12002400), integer($10200400),integer($12200400),integer($10202400),integer($12202400), integer($10000404),integer($12000404),integer($10002404),integer($12002404), integer($10200404),integer($12200404),integer($10202404),integer($12202404) ),( (* for C bits (numbered as per FIPS 46) 14 15 16 17 19 20 *) integer($00000000),integer($00000001),integer($00040000),integer($00040001), integer($01000000),integer($01000001),integer($01040000),integer($01040001), integer($00000002),integer($00000003),integer($00040002),integer($00040003), integer($01000002),integer($01000003),integer($01040002),integer($01040003), integer($00000200),integer($00000201),integer($00040200),integer($00040201), integer($01000200),integer($01000201),integer($01040200),integer($01040201), integer($00000202),integer($00000203),integer($00040202),integer($00040203), integer($01000202),integer($01000203),integer($01040202),integer($01040203), integer($08000000),integer($08000001),integer($08040000),integer($08040001), integer($09000000),integer($09000001),integer($09040000),integer($09040001), integer($08000002),integer($08000003),integer($08040002),integer($08040003), integer($09000002),integer($09000003),integer($09040002),integer($09040003), integer($08000200),integer($08000201),integer($08040200),integer($08040201), integer($09000200),integer($09000201),integer($09040200),integer($09040201), integer($08000202),integer($08000203),integer($08040202),integer($08040203), integer($09000202),integer($09000203),integer($09040202),integer($09040203) ),( (* for C bits (numbered as per FIPS 46) 21 23 24 26 27 28 *) integer($00000000),integer($00100000),integer($00000100),integer($00100100), integer($00000008),integer($00100008),integer($00000108),integer($00100108), integer($00001000),integer($00101000),integer($00001100),integer($00101100), integer($00001008),integer($00101008),integer($00001108),integer($00101108), integer($04000000),integer($04100000),integer($04000100),integer($04100100), integer($04000008),integer($04100008),integer($04000108),integer($04100108), integer($04001000),integer($04101000),integer($04001100),integer($04101100), integer($04001008),integer($04101008),integer($04001108),integer($04101108), integer($00020000),integer($00120000),integer($00020100),integer($00120100), integer($00020008),integer($00120008),integer($00020108),integer($00120108), integer($00021000),integer($00121000),integer($00021100),integer($00121100), integer($00021008),integer($00121008),integer($00021108),integer($00121108), integer($04020000),integer($04120000),integer($04020100),integer($04120100), integer($04020008),integer($04120008),integer($04020108),integer($04120108), integer($04021000),integer($04121000),integer($04021100),integer($04121100), integer($04021008),integer($04121008),integer($04021108),integer($04121108) ),( (* for D bits (numbered as per FIPS 46) 1 2 3 4 5 6 *) integer($00000000),integer($10000000),integer($00010000),integer($10010000), integer($00000004),integer($10000004),integer($00010004),integer($10010004), integer($20000000),integer($30000000),integer($20010000),integer($30010000), integer($20000004),integer($30000004),integer($20010004),integer($30010004), integer($00100000),integer($10100000),integer($00110000),integer($10110000), integer($00100004),integer($10100004),integer($00110004),integer($10110004), integer($20100000),integer($30100000),integer($20110000),integer($30110000), integer($20100004),integer($30100004),integer($20110004),integer($30110004), integer($00001000),integer($10001000),integer($00011000),integer($10011000), integer($00001004),integer($10001004),integer($00011004),integer($10011004), integer($20001000),integer($30001000),integer($20011000),integer($30011000), integer($20001004),integer($30001004),integer($20011004),integer($30011004), integer($00101000),integer($10101000),integer($00111000),integer($10111000), integer($00101004),integer($10101004),integer($00111004),integer($10111004), integer($20101000),integer($30101000),integer($20111000),integer($30111000), integer($20101004),integer($30101004),integer($20111004),integer($30111004) ),( (* for D bits (numbered as per FIPS 46) 8 9 11 12 13 14 *) integer($00000000),integer($08000000),integer($00000008),integer($08000008), integer($00000400),integer($08000400),integer($00000408),integer($08000408), integer($00020000),integer($08020000),integer($00020008),integer($08020008), integer($00020400),integer($08020400),integer($00020408),integer($08020408), integer($00000001),integer($08000001),integer($00000009),integer($08000009), integer($00000401),integer($08000401),integer($00000409),integer($08000409), integer($00020001),integer($08020001),integer($00020009),integer($08020009), integer($00020401),integer($08020401),integer($00020409),integer($08020409), integer($02000000),integer($0A000000),integer($02000008),integer($0A000008), integer($02000400),integer($0A000400),integer($02000408),integer($0A000408), integer($02020000),integer($0A020000),integer($02020008),integer($0A020008), integer($02020400),integer($0A020400),integer($02020408),integer($0A020408), integer($02000001),integer($0A000001),integer($02000009),integer($0A000009), integer($02000401),integer($0A000401),integer($02000409),integer($0A000409), integer($02020001),integer($0A020001),integer($02020009),integer($0A020009), integer($02020401),integer($0A020401),integer($02020409),integer($0A020409) ),( (* for D bits (numbered as per FIPS 46) 16 17 18 19 20 21 *) integer($00000000),integer($00000100),integer($00080000),integer($00080100), integer($01000000),integer($01000100),integer($01080000),integer($01080100), integer($00000010),integer($00000110),integer($00080010),integer($00080110), integer($01000010),integer($01000110),integer($01080010),integer($01080110), integer($00200000),integer($00200100),integer($00280000),integer($00280100), integer($01200000),integer($01200100),integer($01280000),integer($01280100), integer($00200010),integer($00200110),integer($00280010),integer($00280110), integer($01200010),integer($01200110),integer($01280010),integer($01280110), integer($00000200),integer($00000300),integer($00080200),integer($00080300), integer($01000200),integer($01000300),integer($01080200),integer($01080300), integer($00000210),integer($00000310),integer($00080210),integer($00080310), integer($01000210),integer($01000310),integer($01080210),integer($01080310), integer($00200200),integer($00200300),integer($00280200),integer($00280300), integer($01200200),integer($01200300),integer($01280200),integer($01280300), integer($00200210),integer($00200310),integer($00280210),integer($00280310), integer($01200210),integer($01200310),integer($01280210),integer($01280310) ),( (* for D bits (numbered as per FIPS 46) 22 23 24 25 27 28 *) integer($00000000),integer($04000000),integer($00040000),integer($04040000), integer($00000002),integer($04000002),integer($00040002),integer($04040002), integer($00002000),integer($04002000),integer($00042000),integer($04042000), integer($00002002),integer($04002002),integer($00042002),integer($04042002), integer($00000020),integer($04000020),integer($00040020),integer($04040020), integer($00000022),integer($04000022),integer($00040022),integer($04040022), integer($00002020),integer($04002020),integer($00042020),integer($04042020), integer($00002022),integer($04002022),integer($00042022),integer($04042022), integer($00000800),integer($04000800),integer($00040800),integer($04040800), integer($00000802),integer($04000802),integer($00040802),integer($04040802), integer($00002800),integer($04002800),integer($00042800),integer($04042800), integer($00002802),integer($04002802),integer($00042802),integer($04042802), integer($00000820),integer($04000820),integer($00040820),integer($04040820), integer($00000822),integer($04000822),integer($00040822),integer($04040822), integer($00002820),integer($04002820),integer($00042820),integer($04042820), integer($00002822),integer($04002822),integer($00042822),integer($04042822) )); des_sptrans: array[0..7,0..63] of integer=( ( (* nibble 0 *) integer($02080800), integer($00080000), integer($02000002), integer($02080802), integer($02000000), integer($00080802), integer($00080002), integer($02000002), integer($00080802), integer($02080800), integer($02080000), integer($00000802), integer($02000802), integer($02000000), integer($00000000), integer($00080002), integer($00080000), integer($00000002), integer($02000800), integer($00080800), integer($02080802), integer($02080000), integer($00000802), integer($02000800), integer($00000002), integer($00000800), integer($00080800), integer($02080002), integer($00000800), integer($02000802), integer($02080002), integer($00000000), integer($00000000), integer($02080802), integer($02000800), integer($00080002), integer($02080800), integer($00080000), integer($00000802), integer($02000800), integer($02080002), integer($00000800), integer($00080800), integer($02000002), integer($00080802), integer($00000002), integer($02000002), integer($02080000), integer($02080802), integer($00080800), integer($02080000), integer($02000802), integer($02000000), integer($00000802), integer($00080002), integer($00000000), integer($00080000), integer($02000000), integer($02000802), integer($02080800), integer($00000002), integer($02080002), integer($00000800), integer($00080802) ),( (* nibble 1 *) integer($40108010), integer($00000000), integer($00108000), integer($40100000), integer($40000010), integer($00008010), integer($40008000), integer($00108000), integer($00008000), integer($40100010), integer($00000010), integer($40008000), integer($00100010), integer($40108000), integer($40100000), integer($00000010), integer($00100000), integer($40008010), integer($40100010), integer($00008000), integer($00108010), integer($40000000), integer($00000000), integer($00100010), integer($40008010), integer($00108010), integer($40108000), integer($40000010), integer($40000000), integer($00100000), integer($00008010), integer($40108010), integer($00100010), integer($40108000), integer($40008000), integer($00108010), integer($40108010), integer($00100010), integer($40000010), integer($00000000), integer($40000000), integer($00008010), integer($00100000), integer($40100010), integer($00008000), integer($40000000), integer($00108010), integer($40008010), integer($40108000), integer($00008000), integer($00000000), integer($40000010), integer($00000010), integer($40108010), integer($00108000), integer($40100000), integer($40100010), integer($00100000), integer($00008010), integer($40008000), integer($40008010), integer($00000010), integer($40100000), integer($00108000) ),( (* nibble 2 *) integer($04000001), integer($04040100), integer($00000100), integer($04000101), integer($00040001), integer($04000000), integer($04000101), integer($00040100), integer($04000100), integer($00040000), integer($04040000), integer($00000001), integer($04040101), integer($00000101), integer($00000001), integer($04040001), integer($00000000), integer($00040001), integer($04040100), integer($00000100), integer($00000101), integer($04040101), integer($00040000), integer($04000001), integer($04040001), integer($04000100), integer($00040101), integer($04040000), integer($00040100), integer($00000000), integer($04000000), integer($00040101), integer($04040100), integer($00000100), integer($00000001), integer($00040000), integer($00000101), integer($00040001), integer($04040000), integer($04000101), integer($00000000), integer($04040100), integer($00040100), integer($04040001), integer($00040001), integer($04000000), integer($04040101), integer($00000001), integer($00040101), integer($04000001), integer($04000000), integer($04040101), integer($00040000), integer($04000100), integer($04000101), integer($00040100), integer($04000100), integer($00000000), integer($04040001), integer($00000101), integer($04000001), integer($00040101), integer($00000100), integer($04040000) ),( (* nibble 3 *) integer($00401008), integer($10001000), integer($00000008), integer($10401008), integer($00000000), integer($10400000), integer($10001008), integer($00400008), integer($10401000), integer($10000008), integer($10000000), integer($00001008), integer($10000008), integer($00401008), integer($00400000), integer($10000000), integer($10400008), integer($00401000), integer($00001000), integer($00000008), integer($00401000), integer($10001008), integer($10400000), integer($00001000), integer($00001008), integer($00000000), integer($00400008), integer($10401000), integer($10001000), integer($10400008), integer($10401008), integer($00400000), integer($10400008), integer($00001008), integer($00400000), integer($10000008), integer($00401000), integer($10001000), integer($00000008), integer($10400000), integer($10001008), integer($00000000), integer($00001000), integer($00400008), integer($00000000), integer($10400008), integer($10401000), integer($00001000), integer($10000000), integer($10401008), integer($00401008), integer($00400000), integer($10401008), integer($00000008), integer($10001000), integer($00401008), integer($00400008), integer($00401000), integer($10400000), integer($10001008), integer($00001008), integer($10000000), integer($10000008), integer($10401000) ),( (* nibble 4 *) integer($08000000), integer($00010000), integer($00000400), integer($08010420), integer($08010020), integer($08000400), integer($00010420), integer($08010000), integer($00010000), integer($00000020), integer($08000020), integer($00010400), integer($08000420), integer($08010020), integer($08010400), integer($00000000), integer($00010400), integer($08000000), integer($00010020), integer($00000420), integer($08000400), integer($00010420), integer($00000000), integer($08000020), integer($00000020), integer($08000420), integer($08010420), integer($00010020), integer($08010000), integer($00000400), integer($00000420), integer($08010400), integer($08010400), integer($08000420), integer($00010020), integer($08010000), integer($00010000), integer($00000020), integer($08000020), integer($08000400), integer($08000000), integer($00010400), integer($08010420), integer($00000000), integer($00010420), integer($08000000), integer($00000400), integer($00010020), integer($08000420), integer($00000400), integer($00000000), integer($08010420), integer($08010020), integer($08010400), integer($00000420), integer($00010000), integer($00010400), integer($08010020), integer($08000400), integer($00000420), integer($00000020), integer($00010420), integer($08010000), integer($08000020) ),( (* nibble 5 *) integer($80000040), integer($00200040), integer($00000000), integer($80202000), integer($00200040), integer($00002000), integer($80002040), integer($00200000), integer($00002040), integer($80202040), integer($00202000), integer($80000000), integer($80002000), integer($80000040), integer($80200000), integer($00202040), integer($00200000), integer($80002040), integer($80200040), integer($00000000), integer($00002000), integer($00000040), integer($80202000), integer($80200040), integer($80202040), integer($80200000), integer($80000000), integer($00002040), integer($00000040), integer($00202000), integer($00202040), integer($80002000), integer($00002040), integer($80000000), integer($80002000), integer($00202040), integer($80202000), integer($00200040), integer($00000000), integer($80002000), integer($80000000), integer($00002000), integer($80200040), integer($00200000), integer($00200040), integer($80202040), integer($00202000), integer($00000040), integer($80202040), integer($00202000), integer($00200000), integer($80002040), integer($80000040), integer($80200000), integer($00202040), integer($00000000), integer($00002000), integer($80000040), integer($80002040), integer($80202000), integer($80200000), integer($00002040), integer($00000040), integer($80200040) ),( (* nibble 6 *) integer($00004000), integer($00000200), integer($01000200), integer($01000004), integer($01004204), integer($00004004), integer($00004200), integer($00000000), integer($01000000), integer($01000204), integer($00000204), integer($01004000), integer($00000004), integer($01004200), integer($01004000), integer($00000204), integer($01000204), integer($00004000), integer($00004004), integer($01004204), integer($00000000), integer($01000200), integer($01000004), integer($00004200), integer($01004004), integer($00004204), integer($01004200), integer($00000004), integer($00004204), integer($01004004), integer($00000200), integer($01000000), integer($00004204), integer($01004000), integer($01004004), integer($00000204), integer($00004000), integer($00000200), integer($01000000), integer($01004004), integer($01000204), integer($00004204), integer($00004200), integer($00000000), integer($00000200), integer($01000004), integer($00000004), integer($01000200), integer($00000000), integer($01000204), integer($01000200), integer($00004200), integer($00000204), integer($00004000), integer($01004204), integer($01000000), integer($01004200), integer($00000004), integer($00004004), integer($01004204), integer($01000004), integer($01004200), integer($01004000), integer($00004004) ),( (* nibble 7 *) integer($20800080), integer($20820000), integer($00020080), integer($00000000), integer($20020000), integer($00800080), integer($20800000), integer($20820080), integer($00000080), integer($20000000), integer($00820000), integer($00020080), integer($00820080), integer($20020080), integer($20000080), integer($20800000), integer($00020000), integer($00820080), integer($00800080), integer($20020000), integer($20820080), integer($20000080), integer($00000000), integer($00820000), integer($20000000), integer($00800000), integer($20020080), integer($20800080), integer($00800000), integer($00020000), integer($20820000), integer($00000080), integer($00800000), integer($00020000), integer($20000080), integer($20820080), integer($00020080), integer($20000000), integer($00000000), integer($00820000), integer($20800080), integer($20020080), integer($20020000), integer($00800080), integer($20820000), integer($00000080), integer($00800080), integer($20020000), integer($20820080), integer($00800000), integer($20800000), integer($20000080), integer($00820000), integer($00020080), integer($20020080), integer($20800000), integer($00000080), integer($20820000), integer($00820080), integer($00000000), integer($20000000), integer($20800080), integer($00020000), integer($00820080) )); //AES consts const MAXBC= 8; MAXKC= 8; S: array[0..255] of byte= ( 99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22); T1: array[0..255,0..3] of byte= ( ($c6,$63,$63,$a5), ($f8,$7c,$7c,$84), ($ee,$77,$77,$99), ($f6,$7b,$7b,$8d), ($ff,$f2,$f2,$0d), ($d6,$6b,$6b,$bd), ($de,$6f,$6f,$b1), ($91,$c5,$c5,$54), ($60,$30,$30,$50), ($02,$01,$01,$03), ($ce,$67,$67,$a9), ($56,$2b,$2b,$7d), ($e7,$fe,$fe,$19), ($b5,$d7,$d7,$62), ($4d,$ab,$ab,$e6), ($ec,$76,$76,$9a), ($8f,$ca,$ca,$45), ($1f,$82,$82,$9d), ($89,$c9,$c9,$40), ($fa,$7d,$7d,$87), ($ef,$fa,$fa,$15), ($b2,$59,$59,$eb), ($8e,$47,$47,$c9), ($fb,$f0,$f0,$0b), ($41,$ad,$ad,$ec), ($b3,$d4,$d4,$67), ($5f,$a2,$a2,$fd), ($45,$af,$af,$ea), ($23,$9c,$9c,$bf), ($53,$a4,$a4,$f7), ($e4,$72,$72,$96), ($9b,$c0,$c0,$5b), ($75,$b7,$b7,$c2), ($e1,$fd,$fd,$1c), ($3d,$93,$93,$ae), ($4c,$26,$26,$6a), ($6c,$36,$36,$5a), ($7e,$3f,$3f,$41), ($f5,$f7,$f7,$02), ($83,$cc,$cc,$4f), ($68,$34,$34,$5c), ($51,$a5,$a5,$f4), ($d1,$e5,$e5,$34), ($f9,$f1,$f1,$08), ($e2,$71,$71,$93), ($ab,$d8,$d8,$73), ($62,$31,$31,$53), ($2a,$15,$15,$3f), ($08,$04,$04,$0c), ($95,$c7,$c7,$52), ($46,$23,$23,$65), ($9d,$c3,$c3,$5e), ($30,$18,$18,$28), ($37,$96,$96,$a1), ($0a,$05,$05,$0f), ($2f,$9a,$9a,$b5), ($0e,$07,$07,$09), ($24,$12,$12,$36), ($1b,$80,$80,$9b), ($df,$e2,$e2,$3d), ($cd,$eb,$eb,$26), ($4e,$27,$27,$69), ($7f,$b2,$b2,$cd), ($ea,$75,$75,$9f), ($12,$09,$09,$1b), ($1d,$83,$83,$9e), ($58,$2c,$2c,$74), ($34,$1a,$1a,$2e), ($36,$1b,$1b,$2d), ($dc,$6e,$6e,$b2), ($b4,$5a,$5a,$ee), ($5b,$a0,$a0,$fb), ($a4,$52,$52,$f6), ($76,$3b,$3b,$4d), ($b7,$d6,$d6,$61), ($7d,$b3,$b3,$ce), ($52,$29,$29,$7b), ($dd,$e3,$e3,$3e), ($5e,$2f,$2f,$71), ($13,$84,$84,$97), ($a6,$53,$53,$f5), ($b9,$d1,$d1,$68), ($00,$00,$00,$00), ($c1,$ed,$ed,$2c), ($40,$20,$20,$60), ($e3,$fc,$fc,$1f), ($79,$b1,$b1,$c8), ($b6,$5b,$5b,$ed), ($d4,$6a,$6a,$be), ($8d,$cb,$cb,$46), ($67,$be,$be,$d9), ($72,$39,$39,$4b), ($94,$4a,$4a,$de), ($98,$4c,$4c,$d4), ($b0,$58,$58,$e8), ($85,$cf,$cf,$4a), ($bb,$d0,$d0,$6b), ($c5,$ef,$ef,$2a), ($4f,$aa,$aa,$e5), ($ed,$fb,$fb,$16), ($86,$43,$43,$c5), ($9a,$4d,$4d,$d7), ($66,$33,$33,$55), ($11,$85,$85,$94), ($8a,$45,$45,$cf), ($e9,$f9,$f9,$10), ($04,$02,$02,$06), ($fe,$7f,$7f,$81), ($a0,$50,$50,$f0), ($78,$3c,$3c,$44), ($25,$9f,$9f,$ba), ($4b,$a8,$a8,$e3), ($a2,$51,$51,$f3), ($5d,$a3,$a3,$fe), ($80,$40,$40,$c0), ($05,$8f,$8f,$8a), ($3f,$92,$92,$ad), ($21,$9d,$9d,$bc), ($70,$38,$38,$48), ($f1,$f5,$f5,$04), ($63,$bc,$bc,$df), ($77,$b6,$b6,$c1), ($af,$da,$da,$75), ($42,$21,$21,$63), ($20,$10,$10,$30), ($e5,$ff,$ff,$1a), ($fd,$f3,$f3,$0e), ($bf,$d2,$d2,$6d), ($81,$cd,$cd,$4c), ($18,$0c,$0c,$14), ($26,$13,$13,$35), ($c3,$ec,$ec,$2f), ($be,$5f,$5f,$e1), ($35,$97,$97,$a2), ($88,$44,$44,$cc), ($2e,$17,$17,$39), ($93,$c4,$c4,$57), ($55,$a7,$a7,$f2), ($fc,$7e,$7e,$82), ($7a,$3d,$3d,$47), ($c8,$64,$64,$ac), ($ba,$5d,$5d,$e7), ($32,$19,$19,$2b), ($e6,$73,$73,$95), ($c0,$60,$60,$a0), ($19,$81,$81,$98), ($9e,$4f,$4f,$d1), ($a3,$dc,$dc,$7f), ($44,$22,$22,$66), ($54,$2a,$2a,$7e), ($3b,$90,$90,$ab), ($0b,$88,$88,$83), ($8c,$46,$46,$ca), ($c7,$ee,$ee,$29), ($6b,$b8,$b8,$d3), ($28,$14,$14,$3c), ($a7,$de,$de,$79), ($bc,$5e,$5e,$e2), ($16,$0b,$0b,$1d), ($ad,$db,$db,$76), ($db,$e0,$e0,$3b), ($64,$32,$32,$56), ($74,$3a,$3a,$4e), ($14,$0a,$0a,$1e), ($92,$49,$49,$db), ($0c,$06,$06,$0a), ($48,$24,$24,$6c), ($b8,$5c,$5c,$e4), ($9f,$c2,$c2,$5d), ($bd,$d3,$d3,$6e), ($43,$ac,$ac,$ef), ($c4,$62,$62,$a6), ($39,$91,$91,$a8), ($31,$95,$95,$a4), ($d3,$e4,$e4,$37), ($f2,$79,$79,$8b), ($d5,$e7,$e7,$32), ($8b,$c8,$c8,$43), ($6e,$37,$37,$59), ($da,$6d,$6d,$b7), ($01,$8d,$8d,$8c), ($b1,$d5,$d5,$64), ($9c,$4e,$4e,$d2), ($49,$a9,$a9,$e0), ($d8,$6c,$6c,$b4), ($ac,$56,$56,$fa), ($f3,$f4,$f4,$07), ($cf,$ea,$ea,$25), ($ca,$65,$65,$af), ($f4,$7a,$7a,$8e), ($47,$ae,$ae,$e9), ($10,$08,$08,$18), ($6f,$ba,$ba,$d5), ($f0,$78,$78,$88), ($4a,$25,$25,$6f), ($5c,$2e,$2e,$72), ($38,$1c,$1c,$24), ($57,$a6,$a6,$f1), ($73,$b4,$b4,$c7), ($97,$c6,$c6,$51), ($cb,$e8,$e8,$23), ($a1,$dd,$dd,$7c), ($e8,$74,$74,$9c), ($3e,$1f,$1f,$21), ($96,$4b,$4b,$dd), ($61,$bd,$bd,$dc), ($0d,$8b,$8b,$86), ($0f,$8a,$8a,$85), ($e0,$70,$70,$90), ($7c,$3e,$3e,$42), ($71,$b5,$b5,$c4), ($cc,$66,$66,$aa), ($90,$48,$48,$d8), ($06,$03,$03,$05), ($f7,$f6,$f6,$01), ($1c,$0e,$0e,$12), ($c2,$61,$61,$a3), ($6a,$35,$35,$5f), ($ae,$57,$57,$f9), ($69,$b9,$b9,$d0), ($17,$86,$86,$91), ($99,$c1,$c1,$58), ($3a,$1d,$1d,$27), ($27,$9e,$9e,$b9), ($d9,$e1,$e1,$38), ($eb,$f8,$f8,$13), ($2b,$98,$98,$b3), ($22,$11,$11,$33), ($d2,$69,$69,$bb), ($a9,$d9,$d9,$70), ($07,$8e,$8e,$89), ($33,$94,$94,$a7), ($2d,$9b,$9b,$b6), ($3c,$1e,$1e,$22), ($15,$87,$87,$92), ($c9,$e9,$e9,$20), ($87,$ce,$ce,$49), ($aa,$55,$55,$ff), ($50,$28,$28,$78), ($a5,$df,$df,$7a), ($03,$8c,$8c,$8f), ($59,$a1,$a1,$f8), ($09,$89,$89,$80), ($1a,$0d,$0d,$17), ($65,$bf,$bf,$da), ($d7,$e6,$e6,$31), ($84,$42,$42,$c6), ($d0,$68,$68,$b8), ($82,$41,$41,$c3), ($29,$99,$99,$b0), ($5a,$2d,$2d,$77), ($1e,$0f,$0f,$11), ($7b,$b0,$b0,$cb), ($a8,$54,$54,$fc), ($6d,$bb,$bb,$d6), ($2c,$16,$16,$3a)); T2: array[0..255,0..3] of byte= ( ($a5,$c6,$63,$63), ($84,$f8,$7c,$7c), ($99,$ee,$77,$77), ($8d,$f6,$7b,$7b), ($0d,$ff,$f2,$f2), ($bd,$d6,$6b,$6b), ($b1,$de,$6f,$6f), ($54,$91,$c5,$c5), ($50,$60,$30,$30), ($03,$02,$01,$01), ($a9,$ce,$67,$67), ($7d,$56,$2b,$2b), ($19,$e7,$fe,$fe), ($62,$b5,$d7,$d7), ($e6,$4d,$ab,$ab), ($9a,$ec,$76,$76), ($45,$8f,$ca,$ca), ($9d,$1f,$82,$82), ($40,$89,$c9,$c9), ($87,$fa,$7d,$7d), ($15,$ef,$fa,$fa), ($eb,$b2,$59,$59), ($c9,$8e,$47,$47), ($0b,$fb,$f0,$f0), ($ec,$41,$ad,$ad), ($67,$b3,$d4,$d4), ($fd,$5f,$a2,$a2), ($ea,$45,$af,$af), ($bf,$23,$9c,$9c), ($f7,$53,$a4,$a4), ($96,$e4,$72,$72), ($5b,$9b,$c0,$c0), ($c2,$75,$b7,$b7), ($1c,$e1,$fd,$fd), ($ae,$3d,$93,$93), ($6a,$4c,$26,$26), ($5a,$6c,$36,$36), ($41,$7e,$3f,$3f), ($02,$f5,$f7,$f7), ($4f,$83,$cc,$cc), ($5c,$68,$34,$34), ($f4,$51,$a5,$a5), ($34,$d1,$e5,$e5), ($08,$f9,$f1,$f1), ($93,$e2,$71,$71), ($73,$ab,$d8,$d8), ($53,$62,$31,$31), ($3f,$2a,$15,$15), ($0c,$08,$04,$04), ($52,$95,$c7,$c7), ($65,$46,$23,$23), ($5e,$9d,$c3,$c3), ($28,$30,$18,$18), ($a1,$37,$96,$96), ($0f,$0a,$05,$05), ($b5,$2f,$9a,$9a), ($09,$0e,$07,$07), ($36,$24,$12,$12), ($9b,$1b,$80,$80), ($3d,$df,$e2,$e2), ($26,$cd,$eb,$eb), ($69,$4e,$27,$27), ($cd,$7f,$b2,$b2), ($9f,$ea,$75,$75), ($1b,$12,$09,$09), ($9e,$1d,$83,$83), ($74,$58,$2c,$2c), ($2e,$34,$1a,$1a), ($2d,$36,$1b,$1b), ($b2,$dc,$6e,$6e), ($ee,$b4,$5a,$5a), ($fb,$5b,$a0,$a0), ($f6,$a4,$52,$52), ($4d,$76,$3b,$3b), ($61,$b7,$d6,$d6), ($ce,$7d,$b3,$b3), ($7b,$52,$29,$29), ($3e,$dd,$e3,$e3), ($71,$5e,$2f,$2f), ($97,$13,$84,$84), ($f5,$a6,$53,$53), ($68,$b9,$d1,$d1), ($00,$00,$00,$00), ($2c,$c1,$ed,$ed), ($60,$40,$20,$20), ($1f,$e3,$fc,$fc), ($c8,$79,$b1,$b1), ($ed,$b6,$5b,$5b), ($be,$d4,$6a,$6a), ($46,$8d,$cb,$cb), ($d9,$67,$be,$be), ($4b,$72,$39,$39), ($de,$94,$4a,$4a), ($d4,$98,$4c,$4c), ($e8,$b0,$58,$58), ($4a,$85,$cf,$cf), ($6b,$bb,$d0,$d0), ($2a,$c5,$ef,$ef), ($e5,$4f,$aa,$aa), ($16,$ed,$fb,$fb), ($c5,$86,$43,$43), ($d7,$9a,$4d,$4d), ($55,$66,$33,$33), ($94,$11,$85,$85), ($cf,$8a,$45,$45), ($10,$e9,$f9,$f9), ($06,$04,$02,$02), ($81,$fe,$7f,$7f), ($f0,$a0,$50,$50), ($44,$78,$3c,$3c), ($ba,$25,$9f,$9f), ($e3,$4b,$a8,$a8), ($f3,$a2,$51,$51), ($fe,$5d,$a3,$a3), ($c0,$80,$40,$40), ($8a,$05,$8f,$8f), ($ad,$3f,$92,$92), ($bc,$21,$9d,$9d), ($48,$70,$38,$38), ($04,$f1,$f5,$f5), ($df,$63,$bc,$bc), ($c1,$77,$b6,$b6), ($75,$af,$da,$da), ($63,$42,$21,$21), ($30,$20,$10,$10), ($1a,$e5,$ff,$ff), ($0e,$fd,$f3,$f3), ($6d,$bf,$d2,$d2), ($4c,$81,$cd,$cd), ($14,$18,$0c,$0c), ($35,$26,$13,$13), ($2f,$c3,$ec,$ec), ($e1,$be,$5f,$5f), ($a2,$35,$97,$97), ($cc,$88,$44,$44), ($39,$2e,$17,$17), ($57,$93,$c4,$c4), ($f2,$55,$a7,$a7), ($82,$fc,$7e,$7e), ($47,$7a,$3d,$3d), ($ac,$c8,$64,$64), ($e7,$ba,$5d,$5d), ($2b,$32,$19,$19), ($95,$e6,$73,$73), ($a0,$c0,$60,$60), ($98,$19,$81,$81), ($d1,$9e,$4f,$4f), ($7f,$a3,$dc,$dc), ($66,$44,$22,$22), ($7e,$54,$2a,$2a), ($ab,$3b,$90,$90), ($83,$0b,$88,$88), ($ca,$8c,$46,$46), ($29,$c7,$ee,$ee), ($d3,$6b,$b8,$b8), ($3c,$28,$14,$14), ($79,$a7,$de,$de), ($e2,$bc,$5e,$5e), ($1d,$16,$0b,$0b), ($76,$ad,$db,$db), ($3b,$db,$e0,$e0), ($56,$64,$32,$32), ($4e,$74,$3a,$3a), ($1e,$14,$0a,$0a), ($db,$92,$49,$49), ($0a,$0c,$06,$06), ($6c,$48,$24,$24), ($e4,$b8,$5c,$5c), ($5d,$9f,$c2,$c2), ($6e,$bd,$d3,$d3), ($ef,$43,$ac,$ac), ($a6,$c4,$62,$62), ($a8,$39,$91,$91), ($a4,$31,$95,$95), ($37,$d3,$e4,$e4), ($8b,$f2,$79,$79), ($32,$d5,$e7,$e7), ($43,$8b,$c8,$c8), ($59,$6e,$37,$37), ($b7,$da,$6d,$6d), ($8c,$01,$8d,$8d), ($64,$b1,$d5,$d5), ($d2,$9c,$4e,$4e), ($e0,$49,$a9,$a9), ($b4,$d8,$6c,$6c), ($fa,$ac,$56,$56), ($07,$f3,$f4,$f4), ($25,$cf,$ea,$ea), ($af,$ca,$65,$65), ($8e,$f4,$7a,$7a), ($e9,$47,$ae,$ae), ($18,$10,$08,$08), ($d5,$6f,$ba,$ba), ($88,$f0,$78,$78), ($6f,$4a,$25,$25), ($72,$5c,$2e,$2e), ($24,$38,$1c,$1c), ($f1,$57,$a6,$a6), ($c7,$73,$b4,$b4), ($51,$97,$c6,$c6), ($23,$cb,$e8,$e8), ($7c,$a1,$dd,$dd), ($9c,$e8,$74,$74), ($21,$3e,$1f,$1f), ($dd,$96,$4b,$4b), ($dc,$61,$bd,$bd), ($86,$0d,$8b,$8b), ($85,$0f,$8a,$8a), ($90,$e0,$70,$70), ($42,$7c,$3e,$3e), ($c4,$71,$b5,$b5), ($aa,$cc,$66,$66), ($d8,$90,$48,$48), ($05,$06,$03,$03), ($01,$f7,$f6,$f6), ($12,$1c,$0e,$0e), ($a3,$c2,$61,$61), ($5f,$6a,$35,$35), ($f9,$ae,$57,$57), ($d0,$69,$b9,$b9), ($91,$17,$86,$86), ($58,$99,$c1,$c1), ($27,$3a,$1d,$1d), ($b9,$27,$9e,$9e), ($38,$d9,$e1,$e1), ($13,$eb,$f8,$f8), ($b3,$2b,$98,$98), ($33,$22,$11,$11), ($bb,$d2,$69,$69), ($70,$a9,$d9,$d9), ($89,$07,$8e,$8e), ($a7,$33,$94,$94), ($b6,$2d,$9b,$9b), ($22,$3c,$1e,$1e), ($92,$15,$87,$87), ($20,$c9,$e9,$e9), ($49,$87,$ce,$ce), ($ff,$aa,$55,$55), ($78,$50,$28,$28), ($7a,$a5,$df,$df), ($8f,$03,$8c,$8c), ($f8,$59,$a1,$a1), ($80,$09,$89,$89), ($17,$1a,$0d,$0d), ($da,$65,$bf,$bf), ($31,$d7,$e6,$e6), ($c6,$84,$42,$42), ($b8,$d0,$68,$68), ($c3,$82,$41,$41), ($b0,$29,$99,$99), ($77,$5a,$2d,$2d), ($11,$1e,$0f,$0f), ($cb,$7b,$b0,$b0), ($fc,$a8,$54,$54), ($d6,$6d,$bb,$bb), ($3a,$2c,$16,$16)); T3: array[0..255,0..3] of byte= ( ($63,$a5,$c6,$63), ($7c,$84,$f8,$7c), ($77,$99,$ee,$77), ($7b,$8d,$f6,$7b), ($f2,$0d,$ff,$f2), ($6b,$bd,$d6,$6b), ($6f,$b1,$de,$6f), ($c5,$54,$91,$c5), ($30,$50,$60,$30), ($01,$03,$02,$01), ($67,$a9,$ce,$67), ($2b,$7d,$56,$2b), ($fe,$19,$e7,$fe), ($d7,$62,$b5,$d7), ($ab,$e6,$4d,$ab), ($76,$9a,$ec,$76), ($ca,$45,$8f,$ca), ($82,$9d,$1f,$82), ($c9,$40,$89,$c9), ($7d,$87,$fa,$7d), ($fa,$15,$ef,$fa), ($59,$eb,$b2,$59), ($47,$c9,$8e,$47), ($f0,$0b,$fb,$f0), ($ad,$ec,$41,$ad), ($d4,$67,$b3,$d4), ($a2,$fd,$5f,$a2), ($af,$ea,$45,$af), ($9c,$bf,$23,$9c), ($a4,$f7,$53,$a4), ($72,$96,$e4,$72), ($c0,$5b,$9b,$c0), ($b7,$c2,$75,$b7), ($fd,$1c,$e1,$fd), ($93,$ae,$3d,$93), ($26,$6a,$4c,$26), ($36,$5a,$6c,$36), ($3f,$41,$7e,$3f), ($f7,$02,$f5,$f7), ($cc,$4f,$83,$cc), ($34,$5c,$68,$34), ($a5,$f4,$51,$a5), ($e5,$34,$d1,$e5), ($f1,$08,$f9,$f1), ($71,$93,$e2,$71), ($d8,$73,$ab,$d8), ($31,$53,$62,$31), ($15,$3f,$2a,$15), ($04,$0c,$08,$04), ($c7,$52,$95,$c7), ($23,$65,$46,$23), ($c3,$5e,$9d,$c3), ($18,$28,$30,$18), ($96,$a1,$37,$96), ($05,$0f,$0a,$05), ($9a,$b5,$2f,$9a), ($07,$09,$0e,$07), ($12,$36,$24,$12), ($80,$9b,$1b,$80), ($e2,$3d,$df,$e2), ($eb,$26,$cd,$eb), ($27,$69,$4e,$27), ($b2,$cd,$7f,$b2), ($75,$9f,$ea,$75), ($09,$1b,$12,$09), ($83,$9e,$1d,$83), ($2c,$74,$58,$2c), ($1a,$2e,$34,$1a), ($1b,$2d,$36,$1b), ($6e,$b2,$dc,$6e), ($5a,$ee,$b4,$5a), ($a0,$fb,$5b,$a0), ($52,$f6,$a4,$52), ($3b,$4d,$76,$3b), ($d6,$61,$b7,$d6), ($b3,$ce,$7d,$b3), ($29,$7b,$52,$29), ($e3,$3e,$dd,$e3), ($2f,$71,$5e,$2f), ($84,$97,$13,$84), ($53,$f5,$a6,$53), ($d1,$68,$b9,$d1), ($00,$00,$00,$00), ($ed,$2c,$c1,$ed), ($20,$60,$40,$20), ($fc,$1f,$e3,$fc), ($b1,$c8,$79,$b1), ($5b,$ed,$b6,$5b), ($6a,$be,$d4,$6a), ($cb,$46,$8d,$cb), ($be,$d9,$67,$be), ($39,$4b,$72,$39), ($4a,$de,$94,$4a), ($4c,$d4,$98,$4c), ($58,$e8,$b0,$58), ($cf,$4a,$85,$cf), ($d0,$6b,$bb,$d0), ($ef,$2a,$c5,$ef), ($aa,$e5,$4f,$aa), ($fb,$16,$ed,$fb), ($43,$c5,$86,$43), ($4d,$d7,$9a,$4d), ($33,$55,$66,$33), ($85,$94,$11,$85), ($45,$cf,$8a,$45), ($f9,$10,$e9,$f9), ($02,$06,$04,$02), ($7f,$81,$fe,$7f), ($50,$f0,$a0,$50), ($3c,$44,$78,$3c), ($9f,$ba,$25,$9f), ($a8,$e3,$4b,$a8), ($51,$f3,$a2,$51), ($a3,$fe,$5d,$a3), ($40,$c0,$80,$40), ($8f,$8a,$05,$8f), ($92,$ad,$3f,$92), ($9d,$bc,$21,$9d), ($38,$48,$70,$38), ($f5,$04,$f1,$f5), ($bc,$df,$63,$bc), ($b6,$c1,$77,$b6), ($da,$75,$af,$da), ($21,$63,$42,$21), ($10,$30,$20,$10), ($ff,$1a,$e5,$ff), ($f3,$0e,$fd,$f3), ($d2,$6d,$bf,$d2), ($cd,$4c,$81,$cd), ($0c,$14,$18,$0c), ($13,$35,$26,$13), ($ec,$2f,$c3,$ec), ($5f,$e1,$be,$5f), ($97,$a2,$35,$97), ($44,$cc,$88,$44), ($17,$39,$2e,$17), ($c4,$57,$93,$c4), ($a7,$f2,$55,$a7), ($7e,$82,$fc,$7e), ($3d,$47,$7a,$3d), ($64,$ac,$c8,$64), ($5d,$e7,$ba,$5d), ($19,$2b,$32,$19), ($73,$95,$e6,$73), ($60,$a0,$c0,$60), ($81,$98,$19,$81), ($4f,$d1,$9e,$4f), ($dc,$7f,$a3,$dc), ($22,$66,$44,$22), ($2a,$7e,$54,$2a), ($90,$ab,$3b,$90), ($88,$83,$0b,$88), ($46,$ca,$8c,$46), ($ee,$29,$c7,$ee), ($b8,$d3,$6b,$b8), ($14,$3c,$28,$14), ($de,$79,$a7,$de), ($5e,$e2,$bc,$5e), ($0b,$1d,$16,$0b), ($db,$76,$ad,$db), ($e0,$3b,$db,$e0), ($32,$56,$64,$32), ($3a,$4e,$74,$3a), ($0a,$1e,$14,$0a), ($49,$db,$92,$49), ($06,$0a,$0c,$06), ($24,$6c,$48,$24), ($5c,$e4,$b8,$5c), ($c2,$5d,$9f,$c2), ($d3,$6e,$bd,$d3), ($ac,$ef,$43,$ac), ($62,$a6,$c4,$62), ($91,$a8,$39,$91), ($95,$a4,$31,$95), ($e4,$37,$d3,$e4), ($79,$8b,$f2,$79), ($e7,$32,$d5,$e7), ($c8,$43,$8b,$c8), ($37,$59,$6e,$37), ($6d,$b7,$da,$6d), ($8d,$8c,$01,$8d), ($d5,$64,$b1,$d5), ($4e,$d2,$9c,$4e), ($a9,$e0,$49,$a9), ($6c,$b4,$d8,$6c), ($56,$fa,$ac,$56), ($f4,$07,$f3,$f4), ($ea,$25,$cf,$ea), ($65,$af,$ca,$65), ($7a,$8e,$f4,$7a), ($ae,$e9,$47,$ae), ($08,$18,$10,$08), ($ba,$d5,$6f,$ba), ($78,$88,$f0,$78), ($25,$6f,$4a,$25), ($2e,$72,$5c,$2e), ($1c,$24,$38,$1c), ($a6,$f1,$57,$a6), ($b4,$c7,$73,$b4), ($c6,$51,$97,$c6), ($e8,$23,$cb,$e8), ($dd,$7c,$a1,$dd), ($74,$9c,$e8,$74), ($1f,$21,$3e,$1f), ($4b,$dd,$96,$4b), ($bd,$dc,$61,$bd), ($8b,$86,$0d,$8b), ($8a,$85,$0f,$8a), ($70,$90,$e0,$70), ($3e,$42,$7c,$3e), ($b5,$c4,$71,$b5), ($66,$aa,$cc,$66), ($48,$d8,$90,$48), ($03,$05,$06,$03), ($f6,$01,$f7,$f6), ($0e,$12,$1c,$0e), ($61,$a3,$c2,$61), ($35,$5f,$6a,$35), ($57,$f9,$ae,$57), ($b9,$d0,$69,$b9), ($86,$91,$17,$86), ($c1,$58,$99,$c1), ($1d,$27,$3a,$1d), ($9e,$b9,$27,$9e), ($e1,$38,$d9,$e1), ($f8,$13,$eb,$f8), ($98,$b3,$2b,$98), ($11,$33,$22,$11), ($69,$bb,$d2,$69), ($d9,$70,$a9,$d9), ($8e,$89,$07,$8e), ($94,$a7,$33,$94), ($9b,$b6,$2d,$9b), ($1e,$22,$3c,$1e), ($87,$92,$15,$87), ($e9,$20,$c9,$e9), ($ce,$49,$87,$ce), ($55,$ff,$aa,$55), ($28,$78,$50,$28), ($df,$7a,$a5,$df), ($8c,$8f,$03,$8c), ($a1,$f8,$59,$a1), ($89,$80,$09,$89), ($0d,$17,$1a,$0d), ($bf,$da,$65,$bf), ($e6,$31,$d7,$e6), ($42,$c6,$84,$42), ($68,$b8,$d0,$68), ($41,$c3,$82,$41), ($99,$b0,$29,$99), ($2d,$77,$5a,$2d), ($0f,$11,$1e,$0f), ($b0,$cb,$7b,$b0), ($54,$fc,$a8,$54), ($bb,$d6,$6d,$bb), ($16,$3a,$2c,$16)); T4: array[0..255,0..3] of byte= ( ($63,$63,$a5,$c6), ($7c,$7c,$84,$f8), ($77,$77,$99,$ee), ($7b,$7b,$8d,$f6), ($f2,$f2,$0d,$ff), ($6b,$6b,$bd,$d6), ($6f,$6f,$b1,$de), ($c5,$c5,$54,$91), ($30,$30,$50,$60), ($01,$01,$03,$02), ($67,$67,$a9,$ce), ($2b,$2b,$7d,$56), ($fe,$fe,$19,$e7), ($d7,$d7,$62,$b5), ($ab,$ab,$e6,$4d), ($76,$76,$9a,$ec), ($ca,$ca,$45,$8f), ($82,$82,$9d,$1f), ($c9,$c9,$40,$89), ($7d,$7d,$87,$fa), ($fa,$fa,$15,$ef), ($59,$59,$eb,$b2), ($47,$47,$c9,$8e), ($f0,$f0,$0b,$fb), ($ad,$ad,$ec,$41), ($d4,$d4,$67,$b3), ($a2,$a2,$fd,$5f), ($af,$af,$ea,$45), ($9c,$9c,$bf,$23), ($a4,$a4,$f7,$53), ($72,$72,$96,$e4), ($c0,$c0,$5b,$9b), ($b7,$b7,$c2,$75), ($fd,$fd,$1c,$e1), ($93,$93,$ae,$3d), ($26,$26,$6a,$4c), ($36,$36,$5a,$6c), ($3f,$3f,$41,$7e), ($f7,$f7,$02,$f5), ($cc,$cc,$4f,$83), ($34,$34,$5c,$68), ($a5,$a5,$f4,$51), ($e5,$e5,$34,$d1), ($f1,$f1,$08,$f9), ($71,$71,$93,$e2), ($d8,$d8,$73,$ab), ($31,$31,$53,$62), ($15,$15,$3f,$2a), ($04,$04,$0c,$08), ($c7,$c7,$52,$95), ($23,$23,$65,$46), ($c3,$c3,$5e,$9d), ($18,$18,$28,$30), ($96,$96,$a1,$37), ($05,$05,$0f,$0a), ($9a,$9a,$b5,$2f), ($07,$07,$09,$0e), ($12,$12,$36,$24), ($80,$80,$9b,$1b), ($e2,$e2,$3d,$df), ($eb,$eb,$26,$cd), ($27,$27,$69,$4e), ($b2,$b2,$cd,$7f), ($75,$75,$9f,$ea), ($09,$09,$1b,$12), ($83,$83,$9e,$1d), ($2c,$2c,$74,$58), ($1a,$1a,$2e,$34), ($1b,$1b,$2d,$36), ($6e,$6e,$b2,$dc), ($5a,$5a,$ee,$b4), ($a0,$a0,$fb,$5b), ($52,$52,$f6,$a4), ($3b,$3b,$4d,$76), ($d6,$d6,$61,$b7), ($b3,$b3,$ce,$7d), ($29,$29,$7b,$52), ($e3,$e3,$3e,$dd), ($2f,$2f,$71,$5e), ($84,$84,$97,$13), ($53,$53,$f5,$a6), ($d1,$d1,$68,$b9), ($00,$00,$00,$00), ($ed,$ed,$2c,$c1), ($20,$20,$60,$40), ($fc,$fc,$1f,$e3), ($b1,$b1,$c8,$79), ($5b,$5b,$ed,$b6), ($6a,$6a,$be,$d4), ($cb,$cb,$46,$8d), ($be,$be,$d9,$67), ($39,$39,$4b,$72), ($4a,$4a,$de,$94), ($4c,$4c,$d4,$98), ($58,$58,$e8,$b0), ($cf,$cf,$4a,$85), ($d0,$d0,$6b,$bb), ($ef,$ef,$2a,$c5), ($aa,$aa,$e5,$4f), ($fb,$fb,$16,$ed), ($43,$43,$c5,$86), ($4d,$4d,$d7,$9a), ($33,$33,$55,$66), ($85,$85,$94,$11), ($45,$45,$cf,$8a), ($f9,$f9,$10,$e9), ($02,$02,$06,$04), ($7f,$7f,$81,$fe), ($50,$50,$f0,$a0), ($3c,$3c,$44,$78), ($9f,$9f,$ba,$25), ($a8,$a8,$e3,$4b), ($51,$51,$f3,$a2), ($a3,$a3,$fe,$5d), ($40,$40,$c0,$80), ($8f,$8f,$8a,$05), ($92,$92,$ad,$3f), ($9d,$9d,$bc,$21), ($38,$38,$48,$70), ($f5,$f5,$04,$f1), ($bc,$bc,$df,$63), ($b6,$b6,$c1,$77), ($da,$da,$75,$af), ($21,$21,$63,$42), ($10,$10,$30,$20), ($ff,$ff,$1a,$e5), ($f3,$f3,$0e,$fd), ($d2,$d2,$6d,$bf), ($cd,$cd,$4c,$81), ($0c,$0c,$14,$18), ($13,$13,$35,$26), ($ec,$ec,$2f,$c3), ($5f,$5f,$e1,$be), ($97,$97,$a2,$35), ($44,$44,$cc,$88), ($17,$17,$39,$2e), ($c4,$c4,$57,$93), ($a7,$a7,$f2,$55), ($7e,$7e,$82,$fc), ($3d,$3d,$47,$7a), ($64,$64,$ac,$c8), ($5d,$5d,$e7,$ba), ($19,$19,$2b,$32), ($73,$73,$95,$e6), ($60,$60,$a0,$c0), ($81,$81,$98,$19), ($4f,$4f,$d1,$9e), ($dc,$dc,$7f,$a3), ($22,$22,$66,$44), ($2a,$2a,$7e,$54), ($90,$90,$ab,$3b), ($88,$88,$83,$0b), ($46,$46,$ca,$8c), ($ee,$ee,$29,$c7), ($b8,$b8,$d3,$6b), ($14,$14,$3c,$28), ($de,$de,$79,$a7), ($5e,$5e,$e2,$bc), ($0b,$0b,$1d,$16), ($db,$db,$76,$ad), ($e0,$e0,$3b,$db), ($32,$32,$56,$64), ($3a,$3a,$4e,$74), ($0a,$0a,$1e,$14), ($49,$49,$db,$92), ($06,$06,$0a,$0c), ($24,$24,$6c,$48), ($5c,$5c,$e4,$b8), ($c2,$c2,$5d,$9f), ($d3,$d3,$6e,$bd), ($ac,$ac,$ef,$43), ($62,$62,$a6,$c4), ($91,$91,$a8,$39), ($95,$95,$a4,$31), ($e4,$e4,$37,$d3), ($79,$79,$8b,$f2), ($e7,$e7,$32,$d5), ($c8,$c8,$43,$8b), ($37,$37,$59,$6e), ($6d,$6d,$b7,$da), ($8d,$8d,$8c,$01), ($d5,$d5,$64,$b1), ($4e,$4e,$d2,$9c), ($a9,$a9,$e0,$49), ($6c,$6c,$b4,$d8), ($56,$56,$fa,$ac), ($f4,$f4,$07,$f3), ($ea,$ea,$25,$cf), ($65,$65,$af,$ca), ($7a,$7a,$8e,$f4), ($ae,$ae,$e9,$47), ($08,$08,$18,$10), ($ba,$ba,$d5,$6f), ($78,$78,$88,$f0), ($25,$25,$6f,$4a), ($2e,$2e,$72,$5c), ($1c,$1c,$24,$38), ($a6,$a6,$f1,$57), ($b4,$b4,$c7,$73), ($c6,$c6,$51,$97), ($e8,$e8,$23,$cb), ($dd,$dd,$7c,$a1), ($74,$74,$9c,$e8), ($1f,$1f,$21,$3e), ($4b,$4b,$dd,$96), ($bd,$bd,$dc,$61), ($8b,$8b,$86,$0d), ($8a,$8a,$85,$0f), ($70,$70,$90,$e0), ($3e,$3e,$42,$7c), ($b5,$b5,$c4,$71), ($66,$66,$aa,$cc), ($48,$48,$d8,$90), ($03,$03,$05,$06), ($f6,$f6,$01,$f7), ($0e,$0e,$12,$1c), ($61,$61,$a3,$c2), ($35,$35,$5f,$6a), ($57,$57,$f9,$ae), ($b9,$b9,$d0,$69), ($86,$86,$91,$17), ($c1,$c1,$58,$99), ($1d,$1d,$27,$3a), ($9e,$9e,$b9,$27), ($e1,$e1,$38,$d9), ($f8,$f8,$13,$eb), ($98,$98,$b3,$2b), ($11,$11,$33,$22), ($69,$69,$bb,$d2), ($d9,$d9,$70,$a9), ($8e,$8e,$89,$07), ($94,$94,$a7,$33), ($9b,$9b,$b6,$2d), ($1e,$1e,$22,$3c), ($87,$87,$92,$15), ($e9,$e9,$20,$c9), ($ce,$ce,$49,$87), ($55,$55,$ff,$aa), ($28,$28,$78,$50), ($df,$df,$7a,$a5), ($8c,$8c,$8f,$03), ($a1,$a1,$f8,$59), ($89,$89,$80,$09), ($0d,$0d,$17,$1a), ($bf,$bf,$da,$65), ($e6,$e6,$31,$d7), ($42,$42,$c6,$84), ($68,$68,$b8,$d0), ($41,$41,$c3,$82), ($99,$99,$b0,$29), ($2d,$2d,$77,$5a), ($0f,$0f,$11,$1e), ($b0,$b0,$cb,$7b), ($54,$54,$fc,$a8), ($bb,$bb,$d6,$6d), ($16,$16,$3a,$2c)); T5: array[0..255,0..3] of byte= ( ($51,$f4,$a7,$50), ($7e,$41,$65,$53), ($1a,$17,$a4,$c3), ($3a,$27,$5e,$96), ($3b,$ab,$6b,$cb), ($1f,$9d,$45,$f1), ($ac,$fa,$58,$ab), ($4b,$e3,$03,$93), ($20,$30,$fa,$55), ($ad,$76,$6d,$f6), ($88,$cc,$76,$91), ($f5,$02,$4c,$25), ($4f,$e5,$d7,$fc), ($c5,$2a,$cb,$d7), ($26,$35,$44,$80), ($b5,$62,$a3,$8f), ($de,$b1,$5a,$49), ($25,$ba,$1b,$67), ($45,$ea,$0e,$98), ($5d,$fe,$c0,$e1), ($c3,$2f,$75,$02), ($81,$4c,$f0,$12), ($8d,$46,$97,$a3), ($6b,$d3,$f9,$c6), ($03,$8f,$5f,$e7), ($15,$92,$9c,$95), ($bf,$6d,$7a,$eb), ($95,$52,$59,$da), ($d4,$be,$83,$2d), ($58,$74,$21,$d3), ($49,$e0,$69,$29), ($8e,$c9,$c8,$44), ($75,$c2,$89,$6a), ($f4,$8e,$79,$78), ($99,$58,$3e,$6b), ($27,$b9,$71,$dd), ($be,$e1,$4f,$b6), ($f0,$88,$ad,$17), ($c9,$20,$ac,$66), ($7d,$ce,$3a,$b4), ($63,$df,$4a,$18), ($e5,$1a,$31,$82), ($97,$51,$33,$60), ($62,$53,$7f,$45), ($b1,$64,$77,$e0), ($bb,$6b,$ae,$84), ($fe,$81,$a0,$1c), ($f9,$08,$2b,$94), ($70,$48,$68,$58), ($8f,$45,$fd,$19), ($94,$de,$6c,$87), ($52,$7b,$f8,$b7), ($ab,$73,$d3,$23), ($72,$4b,$02,$e2), ($e3,$1f,$8f,$57), ($66,$55,$ab,$2a), ($b2,$eb,$28,$07), ($2f,$b5,$c2,$03), ($86,$c5,$7b,$9a), ($d3,$37,$08,$a5), ($30,$28,$87,$f2), ($23,$bf,$a5,$b2), ($02,$03,$6a,$ba), ($ed,$16,$82,$5c), ($8a,$cf,$1c,$2b), ($a7,$79,$b4,$92), ($f3,$07,$f2,$f0), ($4e,$69,$e2,$a1), ($65,$da,$f4,$cd), ($06,$05,$be,$d5), ($d1,$34,$62,$1f), ($c4,$a6,$fe,$8a), ($34,$2e,$53,$9d), ($a2,$f3,$55,$a0), ($05,$8a,$e1,$32), ($a4,$f6,$eb,$75), ($0b,$83,$ec,$39), ($40,$60,$ef,$aa), ($5e,$71,$9f,$06), ($bd,$6e,$10,$51), ($3e,$21,$8a,$f9), ($96,$dd,$06,$3d), ($dd,$3e,$05,$ae), ($4d,$e6,$bd,$46), ($91,$54,$8d,$b5), ($71,$c4,$5d,$05), ($04,$06,$d4,$6f), ($60,$50,$15,$ff), ($19,$98,$fb,$24), ($d6,$bd,$e9,$97), ($89,$40,$43,$cc), ($67,$d9,$9e,$77), ($b0,$e8,$42,$bd), ($07,$89,$8b,$88), ($e7,$19,$5b,$38), ($79,$c8,$ee,$db), ($a1,$7c,$0a,$47), ($7c,$42,$0f,$e9), ($f8,$84,$1e,$c9), ($00,$00,$00,$00), ($09,$80,$86,$83), ($32,$2b,$ed,$48), ($1e,$11,$70,$ac), ($6c,$5a,$72,$4e), ($fd,$0e,$ff,$fb), ($0f,$85,$38,$56), ($3d,$ae,$d5,$1e), ($36,$2d,$39,$27), ($0a,$0f,$d9,$64), ($68,$5c,$a6,$21), ($9b,$5b,$54,$d1), ($24,$36,$2e,$3a), ($0c,$0a,$67,$b1), ($93,$57,$e7,$0f), ($b4,$ee,$96,$d2), ($1b,$9b,$91,$9e), ($80,$c0,$c5,$4f), ($61,$dc,$20,$a2), ($5a,$77,$4b,$69), ($1c,$12,$1a,$16), ($e2,$93,$ba,$0a), ($c0,$a0,$2a,$e5), ($3c,$22,$e0,$43), ($12,$1b,$17,$1d), ($0e,$09,$0d,$0b), ($f2,$8b,$c7,$ad), ($2d,$b6,$a8,$b9), ($14,$1e,$a9,$c8), ($57,$f1,$19,$85), ($af,$75,$07,$4c), ($ee,$99,$dd,$bb), ($a3,$7f,$60,$fd), ($f7,$01,$26,$9f), ($5c,$72,$f5,$bc), ($44,$66,$3b,$c5), ($5b,$fb,$7e,$34), ($8b,$43,$29,$76), ($cb,$23,$c6,$dc), ($b6,$ed,$fc,$68), ($b8,$e4,$f1,$63), ($d7,$31,$dc,$ca), ($42,$63,$85,$10), ($13,$97,$22,$40), ($84,$c6,$11,$20), ($85,$4a,$24,$7d), ($d2,$bb,$3d,$f8), ($ae,$f9,$32,$11), ($c7,$29,$a1,$6d), ($1d,$9e,$2f,$4b), ($dc,$b2,$30,$f3), ($0d,$86,$52,$ec), ($77,$c1,$e3,$d0), ($2b,$b3,$16,$6c), ($a9,$70,$b9,$99), ($11,$94,$48,$fa), ($47,$e9,$64,$22), ($a8,$fc,$8c,$c4), ($a0,$f0,$3f,$1a), ($56,$7d,$2c,$d8), ($22,$33,$90,$ef), ($87,$49,$4e,$c7), ($d9,$38,$d1,$c1), ($8c,$ca,$a2,$fe), ($98,$d4,$0b,$36), ($a6,$f5,$81,$cf), ($a5,$7a,$de,$28), ($da,$b7,$8e,$26), ($3f,$ad,$bf,$a4), ($2c,$3a,$9d,$e4), ($50,$78,$92,$0d), ($6a,$5f,$cc,$9b), ($54,$7e,$46,$62), ($f6,$8d,$13,$c2), ($90,$d8,$b8,$e8), ($2e,$39,$f7,$5e), ($82,$c3,$af,$f5), ($9f,$5d,$80,$be), ($69,$d0,$93,$7c), ($6f,$d5,$2d,$a9), ($cf,$25,$12,$b3), ($c8,$ac,$99,$3b), ($10,$18,$7d,$a7), ($e8,$9c,$63,$6e), ($db,$3b,$bb,$7b), ($cd,$26,$78,$09), ($6e,$59,$18,$f4), ($ec,$9a,$b7,$01), ($83,$4f,$9a,$a8), ($e6,$95,$6e,$65), ($aa,$ff,$e6,$7e), ($21,$bc,$cf,$08), ($ef,$15,$e8,$e6), ($ba,$e7,$9b,$d9), ($4a,$6f,$36,$ce), ($ea,$9f,$09,$d4), ($29,$b0,$7c,$d6), ($31,$a4,$b2,$af), ($2a,$3f,$23,$31), ($c6,$a5,$94,$30), ($35,$a2,$66,$c0), ($74,$4e,$bc,$37), ($fc,$82,$ca,$a6), ($e0,$90,$d0,$b0), ($33,$a7,$d8,$15), ($f1,$04,$98,$4a), ($41,$ec,$da,$f7), ($7f,$cd,$50,$0e), ($17,$91,$f6,$2f), ($76,$4d,$d6,$8d), ($43,$ef,$b0,$4d), ($cc,$aa,$4d,$54), ($e4,$96,$04,$df), ($9e,$d1,$b5,$e3), ($4c,$6a,$88,$1b), ($c1,$2c,$1f,$b8), ($46,$65,$51,$7f), ($9d,$5e,$ea,$04), ($01,$8c,$35,$5d), ($fa,$87,$74,$73), ($fb,$0b,$41,$2e), ($b3,$67,$1d,$5a), ($92,$db,$d2,$52), ($e9,$10,$56,$33), ($6d,$d6,$47,$13), ($9a,$d7,$61,$8c), ($37,$a1,$0c,$7a), ($59,$f8,$14,$8e), ($eb,$13,$3c,$89), ($ce,$a9,$27,$ee), ($b7,$61,$c9,$35), ($e1,$1c,$e5,$ed), ($7a,$47,$b1,$3c), ($9c,$d2,$df,$59), ($55,$f2,$73,$3f), ($18,$14,$ce,$79), ($73,$c7,$37,$bf), ($53,$f7,$cd,$ea), ($5f,$fd,$aa,$5b), ($df,$3d,$6f,$14), ($78,$44,$db,$86), ($ca,$af,$f3,$81), ($b9,$68,$c4,$3e), ($38,$24,$34,$2c), ($c2,$a3,$40,$5f), ($16,$1d,$c3,$72), ($bc,$e2,$25,$0c), ($28,$3c,$49,$8b), ($ff,$0d,$95,$41), ($39,$a8,$01,$71), ($08,$0c,$b3,$de), ($d8,$b4,$e4,$9c), ($64,$56,$c1,$90), ($7b,$cb,$84,$61), ($d5,$32,$b6,$70), ($48,$6c,$5c,$74), ($d0,$b8,$57,$42)); T6: array[0..255,0..3] of byte= ( ($50,$51,$f4,$a7), ($53,$7e,$41,$65), ($c3,$1a,$17,$a4), ($96,$3a,$27,$5e), ($cb,$3b,$ab,$6b), ($f1,$1f,$9d,$45), ($ab,$ac,$fa,$58), ($93,$4b,$e3,$03), ($55,$20,$30,$fa), ($f6,$ad,$76,$6d), ($91,$88,$cc,$76), ($25,$f5,$02,$4c), ($fc,$4f,$e5,$d7), ($d7,$c5,$2a,$cb), ($80,$26,$35,$44), ($8f,$b5,$62,$a3), ($49,$de,$b1,$5a), ($67,$25,$ba,$1b), ($98,$45,$ea,$0e), ($e1,$5d,$fe,$c0), ($02,$c3,$2f,$75), ($12,$81,$4c,$f0), ($a3,$8d,$46,$97), ($c6,$6b,$d3,$f9), ($e7,$03,$8f,$5f), ($95,$15,$92,$9c), ($eb,$bf,$6d,$7a), ($da,$95,$52,$59), ($2d,$d4,$be,$83), ($d3,$58,$74,$21), ($29,$49,$e0,$69), ($44,$8e,$c9,$c8), ($6a,$75,$c2,$89), ($78,$f4,$8e,$79), ($6b,$99,$58,$3e), ($dd,$27,$b9,$71), ($b6,$be,$e1,$4f), ($17,$f0,$88,$ad), ($66,$c9,$20,$ac), ($b4,$7d,$ce,$3a), ($18,$63,$df,$4a), ($82,$e5,$1a,$31), ($60,$97,$51,$33), ($45,$62,$53,$7f), ($e0,$b1,$64,$77), ($84,$bb,$6b,$ae), ($1c,$fe,$81,$a0), ($94,$f9,$08,$2b), ($58,$70,$48,$68), ($19,$8f,$45,$fd), ($87,$94,$de,$6c), ($b7,$52,$7b,$f8), ($23,$ab,$73,$d3), ($e2,$72,$4b,$02), ($57,$e3,$1f,$8f), ($2a,$66,$55,$ab), ($07,$b2,$eb,$28), ($03,$2f,$b5,$c2), ($9a,$86,$c5,$7b), ($a5,$d3,$37,$08), ($f2,$30,$28,$87), ($b2,$23,$bf,$a5), ($ba,$02,$03,$6a), ($5c,$ed,$16,$82), ($2b,$8a,$cf,$1c), ($92,$a7,$79,$b4), ($f0,$f3,$07,$f2), ($a1,$4e,$69,$e2), ($cd,$65,$da,$f4), ($d5,$06,$05,$be), ($1f,$d1,$34,$62), ($8a,$c4,$a6,$fe), ($9d,$34,$2e,$53), ($a0,$a2,$f3,$55), ($32,$05,$8a,$e1), ($75,$a4,$f6,$eb), ($39,$0b,$83,$ec), ($aa,$40,$60,$ef), ($06,$5e,$71,$9f), ($51,$bd,$6e,$10), ($f9,$3e,$21,$8a), ($3d,$96,$dd,$06), ($ae,$dd,$3e,$05), ($46,$4d,$e6,$bd), ($b5,$91,$54,$8d), ($05,$71,$c4,$5d), ($6f,$04,$06,$d4), ($ff,$60,$50,$15), ($24,$19,$98,$fb), ($97,$d6,$bd,$e9), ($cc,$89,$40,$43), ($77,$67,$d9,$9e), ($bd,$b0,$e8,$42), ($88,$07,$89,$8b), ($38,$e7,$19,$5b), ($db,$79,$c8,$ee), ($47,$a1,$7c,$0a), ($e9,$7c,$42,$0f), ($c9,$f8,$84,$1e), ($00,$00,$00,$00), ($83,$09,$80,$86), ($48,$32,$2b,$ed), ($ac,$1e,$11,$70), ($4e,$6c,$5a,$72), ($fb,$fd,$0e,$ff), ($56,$0f,$85,$38), ($1e,$3d,$ae,$d5), ($27,$36,$2d,$39), ($64,$0a,$0f,$d9), ($21,$68,$5c,$a6), ($d1,$9b,$5b,$54), ($3a,$24,$36,$2e), ($b1,$0c,$0a,$67), ($0f,$93,$57,$e7), ($d2,$b4,$ee,$96), ($9e,$1b,$9b,$91), ($4f,$80,$c0,$c5), ($a2,$61,$dc,$20), ($69,$5a,$77,$4b), ($16,$1c,$12,$1a), ($0a,$e2,$93,$ba), ($e5,$c0,$a0,$2a), ($43,$3c,$22,$e0), ($1d,$12,$1b,$17), ($0b,$0e,$09,$0d), ($ad,$f2,$8b,$c7), ($b9,$2d,$b6,$a8), ($c8,$14,$1e,$a9), ($85,$57,$f1,$19), ($4c,$af,$75,$07), ($bb,$ee,$99,$dd), ($fd,$a3,$7f,$60), ($9f,$f7,$01,$26), ($bc,$5c,$72,$f5), ($c5,$44,$66,$3b), ($34,$5b,$fb,$7e), ($76,$8b,$43,$29), ($dc,$cb,$23,$c6), ($68,$b6,$ed,$fc), ($63,$b8,$e4,$f1), ($ca,$d7,$31,$dc), ($10,$42,$63,$85), ($40,$13,$97,$22), ($20,$84,$c6,$11), ($7d,$85,$4a,$24), ($f8,$d2,$bb,$3d), ($11,$ae,$f9,$32), ($6d,$c7,$29,$a1), ($4b,$1d,$9e,$2f), ($f3,$dc,$b2,$30), ($ec,$0d,$86,$52), ($d0,$77,$c1,$e3), ($6c,$2b,$b3,$16), ($99,$a9,$70,$b9), ($fa,$11,$94,$48), ($22,$47,$e9,$64), ($c4,$a8,$fc,$8c), ($1a,$a0,$f0,$3f), ($d8,$56,$7d,$2c), ($ef,$22,$33,$90), ($c7,$87,$49,$4e), ($c1,$d9,$38,$d1), ($fe,$8c,$ca,$a2), ($36,$98,$d4,$0b), ($cf,$a6,$f5,$81), ($28,$a5,$7a,$de), ($26,$da,$b7,$8e), ($a4,$3f,$ad,$bf), ($e4,$2c,$3a,$9d), ($0d,$50,$78,$92), ($9b,$6a,$5f,$cc), ($62,$54,$7e,$46), ($c2,$f6,$8d,$13), ($e8,$90,$d8,$b8), ($5e,$2e,$39,$f7), ($f5,$82,$c3,$af), ($be,$9f,$5d,$80), ($7c,$69,$d0,$93), ($a9,$6f,$d5,$2d), ($b3,$cf,$25,$12), ($3b,$c8,$ac,$99), ($a7,$10,$18,$7d), ($6e,$e8,$9c,$63), ($7b,$db,$3b,$bb), ($09,$cd,$26,$78), ($f4,$6e,$59,$18), ($01,$ec,$9a,$b7), ($a8,$83,$4f,$9a), ($65,$e6,$95,$6e), ($7e,$aa,$ff,$e6), ($08,$21,$bc,$cf), ($e6,$ef,$15,$e8), ($d9,$ba,$e7,$9b), ($ce,$4a,$6f,$36), ($d4,$ea,$9f,$09), ($d6,$29,$b0,$7c), ($af,$31,$a4,$b2), ($31,$2a,$3f,$23), ($30,$c6,$a5,$94), ($c0,$35,$a2,$66), ($37,$74,$4e,$bc), ($a6,$fc,$82,$ca), ($b0,$e0,$90,$d0), ($15,$33,$a7,$d8), ($4a,$f1,$04,$98), ($f7,$41,$ec,$da), ($0e,$7f,$cd,$50), ($2f,$17,$91,$f6), ($8d,$76,$4d,$d6), ($4d,$43,$ef,$b0), ($54,$cc,$aa,$4d), ($df,$e4,$96,$04), ($e3,$9e,$d1,$b5), ($1b,$4c,$6a,$88), ($b8,$c1,$2c,$1f), ($7f,$46,$65,$51), ($04,$9d,$5e,$ea), ($5d,$01,$8c,$35), ($73,$fa,$87,$74), ($2e,$fb,$0b,$41), ($5a,$b3,$67,$1d), ($52,$92,$db,$d2), ($33,$e9,$10,$56), ($13,$6d,$d6,$47), ($8c,$9a,$d7,$61), ($7a,$37,$a1,$0c), ($8e,$59,$f8,$14), ($89,$eb,$13,$3c), ($ee,$ce,$a9,$27), ($35,$b7,$61,$c9), ($ed,$e1,$1c,$e5), ($3c,$7a,$47,$b1), ($59,$9c,$d2,$df), ($3f,$55,$f2,$73), ($79,$18,$14,$ce), ($bf,$73,$c7,$37), ($ea,$53,$f7,$cd), ($5b,$5f,$fd,$aa), ($14,$df,$3d,$6f), ($86,$78,$44,$db), ($81,$ca,$af,$f3), ($3e,$b9,$68,$c4), ($2c,$38,$24,$34), ($5f,$c2,$a3,$40), ($72,$16,$1d,$c3), ($0c,$bc,$e2,$25), ($8b,$28,$3c,$49), ($41,$ff,$0d,$95), ($71,$39,$a8,$01), ($de,$08,$0c,$b3), ($9c,$d8,$b4,$e4), ($90,$64,$56,$c1), ($61,$7b,$cb,$84), ($70,$d5,$32,$b6), ($74,$48,$6c,$5c), ($42,$d0,$b8,$57)); T7: array[0..255,0..3] of byte= ( ($a7,$50,$51,$f4), ($65,$53,$7e,$41), ($a4,$c3,$1a,$17), ($5e,$96,$3a,$27), ($6b,$cb,$3b,$ab), ($45,$f1,$1f,$9d), ($58,$ab,$ac,$fa), ($03,$93,$4b,$e3), ($fa,$55,$20,$30), ($6d,$f6,$ad,$76), ($76,$91,$88,$cc), ($4c,$25,$f5,$02), ($d7,$fc,$4f,$e5), ($cb,$d7,$c5,$2a), ($44,$80,$26,$35), ($a3,$8f,$b5,$62), ($5a,$49,$de,$b1), ($1b,$67,$25,$ba), ($0e,$98,$45,$ea), ($c0,$e1,$5d,$fe), ($75,$02,$c3,$2f), ($f0,$12,$81,$4c), ($97,$a3,$8d,$46), ($f9,$c6,$6b,$d3), ($5f,$e7,$03,$8f), ($9c,$95,$15,$92), ($7a,$eb,$bf,$6d), ($59,$da,$95,$52), ($83,$2d,$d4,$be), ($21,$d3,$58,$74), ($69,$29,$49,$e0), ($c8,$44,$8e,$c9), ($89,$6a,$75,$c2), ($79,$78,$f4,$8e), ($3e,$6b,$99,$58), ($71,$dd,$27,$b9), ($4f,$b6,$be,$e1), ($ad,$17,$f0,$88), ($ac,$66,$c9,$20), ($3a,$b4,$7d,$ce), ($4a,$18,$63,$df), ($31,$82,$e5,$1a), ($33,$60,$97,$51), ($7f,$45,$62,$53), ($77,$e0,$b1,$64), ($ae,$84,$bb,$6b), ($a0,$1c,$fe,$81), ($2b,$94,$f9,$08), ($68,$58,$70,$48), ($fd,$19,$8f,$45), ($6c,$87,$94,$de), ($f8,$b7,$52,$7b), ($d3,$23,$ab,$73), ($02,$e2,$72,$4b), ($8f,$57,$e3,$1f), ($ab,$2a,$66,$55), ($28,$07,$b2,$eb), ($c2,$03,$2f,$b5), ($7b,$9a,$86,$c5), ($08,$a5,$d3,$37), ($87,$f2,$30,$28), ($a5,$b2,$23,$bf), ($6a,$ba,$02,$03), ($82,$5c,$ed,$16), ($1c,$2b,$8a,$cf), ($b4,$92,$a7,$79), ($f2,$f0,$f3,$07), ($e2,$a1,$4e,$69), ($f4,$cd,$65,$da), ($be,$d5,$06,$05), ($62,$1f,$d1,$34), ($fe,$8a,$c4,$a6), ($53,$9d,$34,$2e), ($55,$a0,$a2,$f3), ($e1,$32,$05,$8a), ($eb,$75,$a4,$f6), ($ec,$39,$0b,$83), ($ef,$aa,$40,$60), ($9f,$06,$5e,$71), ($10,$51,$bd,$6e), ($8a,$f9,$3e,$21), ($06,$3d,$96,$dd), ($05,$ae,$dd,$3e), ($bd,$46,$4d,$e6), ($8d,$b5,$91,$54), ($5d,$05,$71,$c4), ($d4,$6f,$04,$06), ($15,$ff,$60,$50), ($fb,$24,$19,$98), ($e9,$97,$d6,$bd), ($43,$cc,$89,$40), ($9e,$77,$67,$d9), ($42,$bd,$b0,$e8), ($8b,$88,$07,$89), ($5b,$38,$e7,$19), ($ee,$db,$79,$c8), ($0a,$47,$a1,$7c), ($0f,$e9,$7c,$42), ($1e,$c9,$f8,$84), ($00,$00,$00,$00), ($86,$83,$09,$80), ($ed,$48,$32,$2b), ($70,$ac,$1e,$11), ($72,$4e,$6c,$5a), ($ff,$fb,$fd,$0e), ($38,$56,$0f,$85), ($d5,$1e,$3d,$ae), ($39,$27,$36,$2d), ($d9,$64,$0a,$0f), ($a6,$21,$68,$5c), ($54,$d1,$9b,$5b), ($2e,$3a,$24,$36), ($67,$b1,$0c,$0a), ($e7,$0f,$93,$57), ($96,$d2,$b4,$ee), ($91,$9e,$1b,$9b), ($c5,$4f,$80,$c0), ($20,$a2,$61,$dc), ($4b,$69,$5a,$77), ($1a,$16,$1c,$12), ($ba,$0a,$e2,$93), ($2a,$e5,$c0,$a0), ($e0,$43,$3c,$22), ($17,$1d,$12,$1b), ($0d,$0b,$0e,$09), ($c7,$ad,$f2,$8b), ($a8,$b9,$2d,$b6), ($a9,$c8,$14,$1e), ($19,$85,$57,$f1), ($07,$4c,$af,$75), ($dd,$bb,$ee,$99), ($60,$fd,$a3,$7f), ($26,$9f,$f7,$01), ($f5,$bc,$5c,$72), ($3b,$c5,$44,$66), ($7e,$34,$5b,$fb), ($29,$76,$8b,$43), ($c6,$dc,$cb,$23), ($fc,$68,$b6,$ed), ($f1,$63,$b8,$e4), ($dc,$ca,$d7,$31), ($85,$10,$42,$63), ($22,$40,$13,$97), ($11,$20,$84,$c6), ($24,$7d,$85,$4a), ($3d,$f8,$d2,$bb), ($32,$11,$ae,$f9), ($a1,$6d,$c7,$29), ($2f,$4b,$1d,$9e), ($30,$f3,$dc,$b2), ($52,$ec,$0d,$86), ($e3,$d0,$77,$c1), ($16,$6c,$2b,$b3), ($b9,$99,$a9,$70), ($48,$fa,$11,$94), ($64,$22,$47,$e9), ($8c,$c4,$a8,$fc), ($3f,$1a,$a0,$f0), ($2c,$d8,$56,$7d), ($90,$ef,$22,$33), ($4e,$c7,$87,$49), ($d1,$c1,$d9,$38), ($a2,$fe,$8c,$ca), ($0b,$36,$98,$d4), ($81,$cf,$a6,$f5), ($de,$28,$a5,$7a), ($8e,$26,$da,$b7), ($bf,$a4,$3f,$ad), ($9d,$e4,$2c,$3a), ($92,$0d,$50,$78), ($cc,$9b,$6a,$5f), ($46,$62,$54,$7e), ($13,$c2,$f6,$8d), ($b8,$e8,$90,$d8), ($f7,$5e,$2e,$39), ($af,$f5,$82,$c3), ($80,$be,$9f,$5d), ($93,$7c,$69,$d0), ($2d,$a9,$6f,$d5), ($12,$b3,$cf,$25), ($99,$3b,$c8,$ac), ($7d,$a7,$10,$18), ($63,$6e,$e8,$9c), ($bb,$7b,$db,$3b), ($78,$09,$cd,$26), ($18,$f4,$6e,$59), ($b7,$01,$ec,$9a), ($9a,$a8,$83,$4f), ($6e,$65,$e6,$95), ($e6,$7e,$aa,$ff), ($cf,$08,$21,$bc), ($e8,$e6,$ef,$15), ($9b,$d9,$ba,$e7), ($36,$ce,$4a,$6f), ($09,$d4,$ea,$9f), ($7c,$d6,$29,$b0), ($b2,$af,$31,$a4), ($23,$31,$2a,$3f), ($94,$30,$c6,$a5), ($66,$c0,$35,$a2), ($bc,$37,$74,$4e), ($ca,$a6,$fc,$82), ($d0,$b0,$e0,$90), ($d8,$15,$33,$a7), ($98,$4a,$f1,$04), ($da,$f7,$41,$ec), ($50,$0e,$7f,$cd), ($f6,$2f,$17,$91), ($d6,$8d,$76,$4d), ($b0,$4d,$43,$ef), ($4d,$54,$cc,$aa), ($04,$df,$e4,$96), ($b5,$e3,$9e,$d1), ($88,$1b,$4c,$6a), ($1f,$b8,$c1,$2c), ($51,$7f,$46,$65), ($ea,$04,$9d,$5e), ($35,$5d,$01,$8c), ($74,$73,$fa,$87), ($41,$2e,$fb,$0b), ($1d,$5a,$b3,$67), ($d2,$52,$92,$db), ($56,$33,$e9,$10), ($47,$13,$6d,$d6), ($61,$8c,$9a,$d7), ($0c,$7a,$37,$a1), ($14,$8e,$59,$f8), ($3c,$89,$eb,$13), ($27,$ee,$ce,$a9), ($c9,$35,$b7,$61), ($e5,$ed,$e1,$1c), ($b1,$3c,$7a,$47), ($df,$59,$9c,$d2), ($73,$3f,$55,$f2), ($ce,$79,$18,$14), ($37,$bf,$73,$c7), ($cd,$ea,$53,$f7), ($aa,$5b,$5f,$fd), ($6f,$14,$df,$3d), ($db,$86,$78,$44), ($f3,$81,$ca,$af), ($c4,$3e,$b9,$68), ($34,$2c,$38,$24), ($40,$5f,$c2,$a3), ($c3,$72,$16,$1d), ($25,$0c,$bc,$e2), ($49,$8b,$28,$3c), ($95,$41,$ff,$0d), ($01,$71,$39,$a8), ($b3,$de,$08,$0c), ($e4,$9c,$d8,$b4), ($c1,$90,$64,$56), ($84,$61,$7b,$cb), ($b6,$70,$d5,$32), ($5c,$74,$48,$6c), ($57,$42,$d0,$b8)); T8: array[0..255,0..3] of byte= ( ($f4,$a7,$50,$51), ($41,$65,$53,$7e), ($17,$a4,$c3,$1a), ($27,$5e,$96,$3a), ($ab,$6b,$cb,$3b), ($9d,$45,$f1,$1f), ($fa,$58,$ab,$ac), ($e3,$03,$93,$4b), ($30,$fa,$55,$20), ($76,$6d,$f6,$ad), ($cc,$76,$91,$88), ($02,$4c,$25,$f5), ($e5,$d7,$fc,$4f), ($2a,$cb,$d7,$c5), ($35,$44,$80,$26), ($62,$a3,$8f,$b5), ($b1,$5a,$49,$de), ($ba,$1b,$67,$25), ($ea,$0e,$98,$45), ($fe,$c0,$e1,$5d), ($2f,$75,$02,$c3), ($4c,$f0,$12,$81), ($46,$97,$a3,$8d), ($d3,$f9,$c6,$6b), ($8f,$5f,$e7,$03), ($92,$9c,$95,$15), ($6d,$7a,$eb,$bf), ($52,$59,$da,$95), ($be,$83,$2d,$d4), ($74,$21,$d3,$58), ($e0,$69,$29,$49), ($c9,$c8,$44,$8e), ($c2,$89,$6a,$75), ($8e,$79,$78,$f4), ($58,$3e,$6b,$99), ($b9,$71,$dd,$27), ($e1,$4f,$b6,$be), ($88,$ad,$17,$f0), ($20,$ac,$66,$c9), ($ce,$3a,$b4,$7d), ($df,$4a,$18,$63), ($1a,$31,$82,$e5), ($51,$33,$60,$97), ($53,$7f,$45,$62), ($64,$77,$e0,$b1), ($6b,$ae,$84,$bb), ($81,$a0,$1c,$fe), ($08,$2b,$94,$f9), ($48,$68,$58,$70), ($45,$fd,$19,$8f), ($de,$6c,$87,$94), ($7b,$f8,$b7,$52), ($73,$d3,$23,$ab), ($4b,$02,$e2,$72), ($1f,$8f,$57,$e3), ($55,$ab,$2a,$66), ($eb,$28,$07,$b2), ($b5,$c2,$03,$2f), ($c5,$7b,$9a,$86), ($37,$08,$a5,$d3), ($28,$87,$f2,$30), ($bf,$a5,$b2,$23), ($03,$6a,$ba,$02), ($16,$82,$5c,$ed), ($cf,$1c,$2b,$8a), ($79,$b4,$92,$a7), ($07,$f2,$f0,$f3), ($69,$e2,$a1,$4e), ($da,$f4,$cd,$65), ($05,$be,$d5,$06), ($34,$62,$1f,$d1), ($a6,$fe,$8a,$c4), ($2e,$53,$9d,$34), ($f3,$55,$a0,$a2), ($8a,$e1,$32,$05), ($f6,$eb,$75,$a4), ($83,$ec,$39,$0b), ($60,$ef,$aa,$40), ($71,$9f,$06,$5e), ($6e,$10,$51,$bd), ($21,$8a,$f9,$3e), ($dd,$06,$3d,$96), ($3e,$05,$ae,$dd), ($e6,$bd,$46,$4d), ($54,$8d,$b5,$91), ($c4,$5d,$05,$71), ($06,$d4,$6f,$04), ($50,$15,$ff,$60), ($98,$fb,$24,$19), ($bd,$e9,$97,$d6), ($40,$43,$cc,$89), ($d9,$9e,$77,$67), ($e8,$42,$bd,$b0), ($89,$8b,$88,$07), ($19,$5b,$38,$e7), ($c8,$ee,$db,$79), ($7c,$0a,$47,$a1), ($42,$0f,$e9,$7c), ($84,$1e,$c9,$f8), ($00,$00,$00,$00), ($80,$86,$83,$09), ($2b,$ed,$48,$32), ($11,$70,$ac,$1e), ($5a,$72,$4e,$6c), ($0e,$ff,$fb,$fd), ($85,$38,$56,$0f), ($ae,$d5,$1e,$3d), ($2d,$39,$27,$36), ($0f,$d9,$64,$0a), ($5c,$a6,$21,$68), ($5b,$54,$d1,$9b), ($36,$2e,$3a,$24), ($0a,$67,$b1,$0c), ($57,$e7,$0f,$93), ($ee,$96,$d2,$b4), ($9b,$91,$9e,$1b), ($c0,$c5,$4f,$80), ($dc,$20,$a2,$61), ($77,$4b,$69,$5a), ($12,$1a,$16,$1c), ($93,$ba,$0a,$e2), ($a0,$2a,$e5,$c0), ($22,$e0,$43,$3c), ($1b,$17,$1d,$12), ($09,$0d,$0b,$0e), ($8b,$c7,$ad,$f2), ($b6,$a8,$b9,$2d), ($1e,$a9,$c8,$14), ($f1,$19,$85,$57), ($75,$07,$4c,$af), ($99,$dd,$bb,$ee), ($7f,$60,$fd,$a3), ($01,$26,$9f,$f7), ($72,$f5,$bc,$5c), ($66,$3b,$c5,$44), ($fb,$7e,$34,$5b), ($43,$29,$76,$8b), ($23,$c6,$dc,$cb), ($ed,$fc,$68,$b6), ($e4,$f1,$63,$b8), ($31,$dc,$ca,$d7), ($63,$85,$10,$42), ($97,$22,$40,$13), ($c6,$11,$20,$84), ($4a,$24,$7d,$85), ($bb,$3d,$f8,$d2), ($f9,$32,$11,$ae), ($29,$a1,$6d,$c7), ($9e,$2f,$4b,$1d), ($b2,$30,$f3,$dc), ($86,$52,$ec,$0d), ($c1,$e3,$d0,$77), ($b3,$16,$6c,$2b), ($70,$b9,$99,$a9), ($94,$48,$fa,$11), ($e9,$64,$22,$47), ($fc,$8c,$c4,$a8), ($f0,$3f,$1a,$a0), ($7d,$2c,$d8,$56), ($33,$90,$ef,$22), ($49,$4e,$c7,$87), ($38,$d1,$c1,$d9), ($ca,$a2,$fe,$8c), ($d4,$0b,$36,$98), ($f5,$81,$cf,$a6), ($7a,$de,$28,$a5), ($b7,$8e,$26,$da), ($ad,$bf,$a4,$3f), ($3a,$9d,$e4,$2c), ($78,$92,$0d,$50), ($5f,$cc,$9b,$6a), ($7e,$46,$62,$54), ($8d,$13,$c2,$f6), ($d8,$b8,$e8,$90), ($39,$f7,$5e,$2e), ($c3,$af,$f5,$82), ($5d,$80,$be,$9f), ($d0,$93,$7c,$69), ($d5,$2d,$a9,$6f), ($25,$12,$b3,$cf), ($ac,$99,$3b,$c8), ($18,$7d,$a7,$10), ($9c,$63,$6e,$e8), ($3b,$bb,$7b,$db), ($26,$78,$09,$cd), ($59,$18,$f4,$6e), ($9a,$b7,$01,$ec), ($4f,$9a,$a8,$83), ($95,$6e,$65,$e6), ($ff,$e6,$7e,$aa), ($bc,$cf,$08,$21), ($15,$e8,$e6,$ef), ($e7,$9b,$d9,$ba), ($6f,$36,$ce,$4a), ($9f,$09,$d4,$ea), ($b0,$7c,$d6,$29), ($a4,$b2,$af,$31), ($3f,$23,$31,$2a), ($a5,$94,$30,$c6), ($a2,$66,$c0,$35), ($4e,$bc,$37,$74), ($82,$ca,$a6,$fc), ($90,$d0,$b0,$e0), ($a7,$d8,$15,$33), ($04,$98,$4a,$f1), ($ec,$da,$f7,$41), ($cd,$50,$0e,$7f), ($91,$f6,$2f,$17), ($4d,$d6,$8d,$76), ($ef,$b0,$4d,$43), ($aa,$4d,$54,$cc), ($96,$04,$df,$e4), ($d1,$b5,$e3,$9e), ($6a,$88,$1b,$4c), ($2c,$1f,$b8,$c1), ($65,$51,$7f,$46), ($5e,$ea,$04,$9d), ($8c,$35,$5d,$01), ($87,$74,$73,$fa), ($0b,$41,$2e,$fb), ($67,$1d,$5a,$b3), ($db,$d2,$52,$92), ($10,$56,$33,$e9), ($d6,$47,$13,$6d), ($d7,$61,$8c,$9a), ($a1,$0c,$7a,$37), ($f8,$14,$8e,$59), ($13,$3c,$89,$eb), ($a9,$27,$ee,$ce), ($61,$c9,$35,$b7), ($1c,$e5,$ed,$e1), ($47,$b1,$3c,$7a), ($d2,$df,$59,$9c), ($f2,$73,$3f,$55), ($14,$ce,$79,$18), ($c7,$37,$bf,$73), ($f7,$cd,$ea,$53), ($fd,$aa,$5b,$5f), ($3d,$6f,$14,$df), ($44,$db,$86,$78), ($af,$f3,$81,$ca), ($68,$c4,$3e,$b9), ($24,$34,$2c,$38), ($a3,$40,$5f,$c2), ($1d,$c3,$72,$16), ($e2,$25,$0c,$bc), ($3c,$49,$8b,$28), ($0d,$95,$41,$ff), ($a8,$01,$71,$39), ($0c,$b3,$de,$08), ($b4,$e4,$9c,$d8), ($56,$c1,$90,$64), ($cb,$84,$61,$7b), ($32,$b6,$70,$d5), ($6c,$5c,$74,$48), ($b8,$57,$42,$d0)); S5: array[0..255] of byte= ( $52,$09,$6a,$d5, $30,$36,$a5,$38, $bf,$40,$a3,$9e, $81,$f3,$d7,$fb, $7c,$e3,$39,$82, $9b,$2f,$ff,$87, $34,$8e,$43,$44, $c4,$de,$e9,$cb, $54,$7b,$94,$32, $a6,$c2,$23,$3d, $ee,$4c,$95,$0b, $42,$fa,$c3,$4e, $08,$2e,$a1,$66, $28,$d9,$24,$b2, $76,$5b,$a2,$49, $6d,$8b,$d1,$25, $72,$f8,$f6,$64, $86,$68,$98,$16, $d4,$a4,$5c,$cc, $5d,$65,$b6,$92, $6c,$70,$48,$50, $fd,$ed,$b9,$da, $5e,$15,$46,$57, $a7,$8d,$9d,$84, $90,$d8,$ab,$00, $8c,$bc,$d3,$0a, $f7,$e4,$58,$05, $b8,$b3,$45,$06, $d0,$2c,$1e,$8f, $ca,$3f,$0f,$02, $c1,$af,$bd,$03, $01,$13,$8a,$6b, $3a,$91,$11,$41, $4f,$67,$dc,$ea, $97,$f2,$cf,$ce, $f0,$b4,$e6,$73, $96,$ac,$74,$22, $e7,$ad,$35,$85, $e2,$f9,$37,$e8, $1c,$75,$df,$6e, $47,$f1,$1a,$71, $1d,$29,$c5,$89, $6f,$b7,$62,$0e, $aa,$18,$be,$1b, $fc,$56,$3e,$4b, $c6,$d2,$79,$20, $9a,$db,$c0,$fe, $78,$cd,$5a,$f4, $1f,$dd,$a8,$33, $88,$07,$c7,$31, $b1,$12,$10,$59, $27,$80,$ec,$5f, $60,$51,$7f,$a9, $19,$b5,$4a,$0d, $2d,$e5,$7a,$9f, $93,$c9,$9c,$ef, $a0,$e0,$3b,$4d, $ae,$2a,$f5,$b0, $c8,$eb,$bb,$3c, $83,$53,$99,$61, $17,$2b,$04,$7e, $ba,$77,$d6,$26, $e1,$69,$14,$63, $55,$21,$0c,$7d); U1: array[0..255,0..3] of byte= ( ($00,$00,$00,$00), ($0e,$09,$0d,$0b), ($1c,$12,$1a,$16), ($12,$1b,$17,$1d), ($38,$24,$34,$2c), ($36,$2d,$39,$27), ($24,$36,$2e,$3a), ($2a,$3f,$23,$31), ($70,$48,$68,$58), ($7e,$41,$65,$53), ($6c,$5a,$72,$4e), ($62,$53,$7f,$45), ($48,$6c,$5c,$74), ($46,$65,$51,$7f), ($54,$7e,$46,$62), ($5a,$77,$4b,$69), ($e0,$90,$d0,$b0), ($ee,$99,$dd,$bb), ($fc,$82,$ca,$a6), ($f2,$8b,$c7,$ad), ($d8,$b4,$e4,$9c), ($d6,$bd,$e9,$97), ($c4,$a6,$fe,$8a), ($ca,$af,$f3,$81), ($90,$d8,$b8,$e8), ($9e,$d1,$b5,$e3), ($8c,$ca,$a2,$fe), ($82,$c3,$af,$f5), ($a8,$fc,$8c,$c4), ($a6,$f5,$81,$cf), ($b4,$ee,$96,$d2), ($ba,$e7,$9b,$d9), ($db,$3b,$bb,$7b), ($d5,$32,$b6,$70), ($c7,$29,$a1,$6d), ($c9,$20,$ac,$66), ($e3,$1f,$8f,$57), ($ed,$16,$82,$5c), ($ff,$0d,$95,$41), ($f1,$04,$98,$4a), ($ab,$73,$d3,$23), ($a5,$7a,$de,$28), ($b7,$61,$c9,$35), ($b9,$68,$c4,$3e), ($93,$57,$e7,$0f), ($9d,$5e,$ea,$04), ($8f,$45,$fd,$19), ($81,$4c,$f0,$12), ($3b,$ab,$6b,$cb), ($35,$a2,$66,$c0), ($27,$b9,$71,$dd), ($29,$b0,$7c,$d6), ($03,$8f,$5f,$e7), ($0d,$86,$52,$ec), ($1f,$9d,$45,$f1), ($11,$94,$48,$fa), ($4b,$e3,$03,$93), ($45,$ea,$0e,$98), ($57,$f1,$19,$85), ($59,$f8,$14,$8e), ($73,$c7,$37,$bf), ($7d,$ce,$3a,$b4), ($6f,$d5,$2d,$a9), ($61,$dc,$20,$a2), ($ad,$76,$6d,$f6), ($a3,$7f,$60,$fd), ($b1,$64,$77,$e0), ($bf,$6d,$7a,$eb), ($95,$52,$59,$da), ($9b,$5b,$54,$d1), ($89,$40,$43,$cc), ($87,$49,$4e,$c7), ($dd,$3e,$05,$ae), ($d3,$37,$08,$a5), ($c1,$2c,$1f,$b8), ($cf,$25,$12,$b3), ($e5,$1a,$31,$82), ($eb,$13,$3c,$89), ($f9,$08,$2b,$94), ($f7,$01,$26,$9f), ($4d,$e6,$bd,$46), ($43,$ef,$b0,$4d), ($51,$f4,$a7,$50), ($5f,$fd,$aa,$5b), ($75,$c2,$89,$6a), ($7b,$cb,$84,$61), ($69,$d0,$93,$7c), ($67,$d9,$9e,$77), ($3d,$ae,$d5,$1e), ($33,$a7,$d8,$15), ($21,$bc,$cf,$08), ($2f,$b5,$c2,$03), ($05,$8a,$e1,$32), ($0b,$83,$ec,$39), ($19,$98,$fb,$24), ($17,$91,$f6,$2f), ($76,$4d,$d6,$8d), ($78,$44,$db,$86), ($6a,$5f,$cc,$9b), ($64,$56,$c1,$90), ($4e,$69,$e2,$a1), ($40,$60,$ef,$aa), ($52,$7b,$f8,$b7), ($5c,$72,$f5,$bc), ($06,$05,$be,$d5), ($08,$0c,$b3,$de), ($1a,$17,$a4,$c3), ($14,$1e,$a9,$c8), ($3e,$21,$8a,$f9), ($30,$28,$87,$f2), ($22,$33,$90,$ef), ($2c,$3a,$9d,$e4), ($96,$dd,$06,$3d), ($98,$d4,$0b,$36), ($8a,$cf,$1c,$2b), ($84,$c6,$11,$20), ($ae,$f9,$32,$11), ($a0,$f0,$3f,$1a), ($b2,$eb,$28,$07), ($bc,$e2,$25,$0c), ($e6,$95,$6e,$65), ($e8,$9c,$63,$6e), ($fa,$87,$74,$73), ($f4,$8e,$79,$78), ($de,$b1,$5a,$49), ($d0,$b8,$57,$42), ($c2,$a3,$40,$5f), ($cc,$aa,$4d,$54), ($41,$ec,$da,$f7), ($4f,$e5,$d7,$fc), ($5d,$fe,$c0,$e1), ($53,$f7,$cd,$ea), ($79,$c8,$ee,$db), ($77,$c1,$e3,$d0), ($65,$da,$f4,$cd), ($6b,$d3,$f9,$c6), ($31,$a4,$b2,$af), ($3f,$ad,$bf,$a4), ($2d,$b6,$a8,$b9), ($23,$bf,$a5,$b2), ($09,$80,$86,$83), ($07,$89,$8b,$88), ($15,$92,$9c,$95), ($1b,$9b,$91,$9e), ($a1,$7c,$0a,$47), ($af,$75,$07,$4c), ($bd,$6e,$10,$51), ($b3,$67,$1d,$5a), ($99,$58,$3e,$6b), ($97,$51,$33,$60), ($85,$4a,$24,$7d), ($8b,$43,$29,$76), ($d1,$34,$62,$1f), ($df,$3d,$6f,$14), ($cd,$26,$78,$09), ($c3,$2f,$75,$02), ($e9,$10,$56,$33), ($e7,$19,$5b,$38), ($f5,$02,$4c,$25), ($fb,$0b,$41,$2e), ($9a,$d7,$61,$8c), ($94,$de,$6c,$87), ($86,$c5,$7b,$9a), ($88,$cc,$76,$91), ($a2,$f3,$55,$a0), ($ac,$fa,$58,$ab), ($be,$e1,$4f,$b6), ($b0,$e8,$42,$bd), ($ea,$9f,$09,$d4), ($e4,$96,$04,$df), ($f6,$8d,$13,$c2), ($f8,$84,$1e,$c9), ($d2,$bb,$3d,$f8), ($dc,$b2,$30,$f3), ($ce,$a9,$27,$ee), ($c0,$a0,$2a,$e5), ($7a,$47,$b1,$3c), ($74,$4e,$bc,$37), ($66,$55,$ab,$2a), ($68,$5c,$a6,$21), ($42,$63,$85,$10), ($4c,$6a,$88,$1b), ($5e,$71,$9f,$06), ($50,$78,$92,$0d), ($0a,$0f,$d9,$64), ($04,$06,$d4,$6f), ($16,$1d,$c3,$72), ($18,$14,$ce,$79), ($32,$2b,$ed,$48), ($3c,$22,$e0,$43), ($2e,$39,$f7,$5e), ($20,$30,$fa,$55), ($ec,$9a,$b7,$01), ($e2,$93,$ba,$0a), ($f0,$88,$ad,$17), ($fe,$81,$a0,$1c), ($d4,$be,$83,$2d), ($da,$b7,$8e,$26), ($c8,$ac,$99,$3b), ($c6,$a5,$94,$30), ($9c,$d2,$df,$59), ($92,$db,$d2,$52), ($80,$c0,$c5,$4f), ($8e,$c9,$c8,$44), ($a4,$f6,$eb,$75), ($aa,$ff,$e6,$7e), ($b8,$e4,$f1,$63), ($b6,$ed,$fc,$68), ($0c,$0a,$67,$b1), ($02,$03,$6a,$ba), ($10,$18,$7d,$a7), ($1e,$11,$70,$ac), ($34,$2e,$53,$9d), ($3a,$27,$5e,$96), ($28,$3c,$49,$8b), ($26,$35,$44,$80), ($7c,$42,$0f,$e9), ($72,$4b,$02,$e2), ($60,$50,$15,$ff), ($6e,$59,$18,$f4), ($44,$66,$3b,$c5), ($4a,$6f,$36,$ce), ($58,$74,$21,$d3), ($56,$7d,$2c,$d8), ($37,$a1,$0c,$7a), ($39,$a8,$01,$71), ($2b,$b3,$16,$6c), ($25,$ba,$1b,$67), ($0f,$85,$38,$56), ($01,$8c,$35,$5d), ($13,$97,$22,$40), ($1d,$9e,$2f,$4b), ($47,$e9,$64,$22), ($49,$e0,$69,$29), ($5b,$fb,$7e,$34), ($55,$f2,$73,$3f), ($7f,$cd,$50,$0e), ($71,$c4,$5d,$05), ($63,$df,$4a,$18), ($6d,$d6,$47,$13), ($d7,$31,$dc,$ca), ($d9,$38,$d1,$c1), ($cb,$23,$c6,$dc), ($c5,$2a,$cb,$d7), ($ef,$15,$e8,$e6), ($e1,$1c,$e5,$ed), ($f3,$07,$f2,$f0), ($fd,$0e,$ff,$fb), ($a7,$79,$b4,$92), ($a9,$70,$b9,$99), ($bb,$6b,$ae,$84), ($b5,$62,$a3,$8f), ($9f,$5d,$80,$be), ($91,$54,$8d,$b5), ($83,$4f,$9a,$a8), ($8d,$46,$97,$a3)); U2: array[0..255,0..3] of byte= ( ($00,$00,$00,$00), ($0b,$0e,$09,$0d), ($16,$1c,$12,$1a), ($1d,$12,$1b,$17), ($2c,$38,$24,$34), ($27,$36,$2d,$39), ($3a,$24,$36,$2e), ($31,$2a,$3f,$23), ($58,$70,$48,$68), ($53,$7e,$41,$65), ($4e,$6c,$5a,$72), ($45,$62,$53,$7f), ($74,$48,$6c,$5c), ($7f,$46,$65,$51), ($62,$54,$7e,$46), ($69,$5a,$77,$4b), ($b0,$e0,$90,$d0), ($bb,$ee,$99,$dd), ($a6,$fc,$82,$ca), ($ad,$f2,$8b,$c7), ($9c,$d8,$b4,$e4), ($97,$d6,$bd,$e9), ($8a,$c4,$a6,$fe), ($81,$ca,$af,$f3), ($e8,$90,$d8,$b8), ($e3,$9e,$d1,$b5), ($fe,$8c,$ca,$a2), ($f5,$82,$c3,$af), ($c4,$a8,$fc,$8c), ($cf,$a6,$f5,$81), ($d2,$b4,$ee,$96), ($d9,$ba,$e7,$9b), ($7b,$db,$3b,$bb), ($70,$d5,$32,$b6), ($6d,$c7,$29,$a1), ($66,$c9,$20,$ac), ($57,$e3,$1f,$8f), ($5c,$ed,$16,$82), ($41,$ff,$0d,$95), ($4a,$f1,$04,$98), ($23,$ab,$73,$d3), ($28,$a5,$7a,$de), ($35,$b7,$61,$c9), ($3e,$b9,$68,$c4), ($0f,$93,$57,$e7), ($04,$9d,$5e,$ea), ($19,$8f,$45,$fd), ($12,$81,$4c,$f0), ($cb,$3b,$ab,$6b), ($c0,$35,$a2,$66), ($dd,$27,$b9,$71), ($d6,$29,$b0,$7c), ($e7,$03,$8f,$5f), ($ec,$0d,$86,$52), ($f1,$1f,$9d,$45), ($fa,$11,$94,$48), ($93,$4b,$e3,$03), ($98,$45,$ea,$0e), ($85,$57,$f1,$19), ($8e,$59,$f8,$14), ($bf,$73,$c7,$37), ($b4,$7d,$ce,$3a), ($a9,$6f,$d5,$2d), ($a2,$61,$dc,$20), ($f6,$ad,$76,$6d), ($fd,$a3,$7f,$60), ($e0,$b1,$64,$77), ($eb,$bf,$6d,$7a), ($da,$95,$52,$59), ($d1,$9b,$5b,$54), ($cc,$89,$40,$43), ($c7,$87,$49,$4e), ($ae,$dd,$3e,$05), ($a5,$d3,$37,$08), ($b8,$c1,$2c,$1f), ($b3,$cf,$25,$12), ($82,$e5,$1a,$31), ($89,$eb,$13,$3c), ($94,$f9,$08,$2b), ($9f,$f7,$01,$26), ($46,$4d,$e6,$bd), ($4d,$43,$ef,$b0), ($50,$51,$f4,$a7), ($5b,$5f,$fd,$aa), ($6a,$75,$c2,$89), ($61,$7b,$cb,$84), ($7c,$69,$d0,$93), ($77,$67,$d9,$9e), ($1e,$3d,$ae,$d5), ($15,$33,$a7,$d8), ($08,$21,$bc,$cf), ($03,$2f,$b5,$c2), ($32,$05,$8a,$e1), ($39,$0b,$83,$ec), ($24,$19,$98,$fb), ($2f,$17,$91,$f6), ($8d,$76,$4d,$d6), ($86,$78,$44,$db), ($9b,$6a,$5f,$cc), ($90,$64,$56,$c1), ($a1,$4e,$69,$e2), ($aa,$40,$60,$ef), ($b7,$52,$7b,$f8), ($bc,$5c,$72,$f5), ($d5,$06,$05,$be), ($de,$08,$0c,$b3), ($c3,$1a,$17,$a4), ($c8,$14,$1e,$a9), ($f9,$3e,$21,$8a), ($f2,$30,$28,$87), ($ef,$22,$33,$90), ($e4,$2c,$3a,$9d), ($3d,$96,$dd,$06), ($36,$98,$d4,$0b), ($2b,$8a,$cf,$1c), ($20,$84,$c6,$11), ($11,$ae,$f9,$32), ($1a,$a0,$f0,$3f), ($07,$b2,$eb,$28), ($0c,$bc,$e2,$25), ($65,$e6,$95,$6e), ($6e,$e8,$9c,$63), ($73,$fa,$87,$74), ($78,$f4,$8e,$79), ($49,$de,$b1,$5a), ($42,$d0,$b8,$57), ($5f,$c2,$a3,$40), ($54,$cc,$aa,$4d), ($f7,$41,$ec,$da), ($fc,$4f,$e5,$d7), ($e1,$5d,$fe,$c0), ($ea,$53,$f7,$cd), ($db,$79,$c8,$ee), ($d0,$77,$c1,$e3), ($cd,$65,$da,$f4), ($c6,$6b,$d3,$f9), ($af,$31,$a4,$b2), ($a4,$3f,$ad,$bf), ($b9,$2d,$b6,$a8), ($b2,$23,$bf,$a5), ($83,$09,$80,$86), ($88,$07,$89,$8b), ($95,$15,$92,$9c), ($9e,$1b,$9b,$91), ($47,$a1,$7c,$0a), ($4c,$af,$75,$07), ($51,$bd,$6e,$10), ($5a,$b3,$67,$1d), ($6b,$99,$58,$3e), ($60,$97,$51,$33), ($7d,$85,$4a,$24), ($76,$8b,$43,$29), ($1f,$d1,$34,$62), ($14,$df,$3d,$6f), ($09,$cd,$26,$78), ($02,$c3,$2f,$75), ($33,$e9,$10,$56), ($38,$e7,$19,$5b), ($25,$f5,$02,$4c), ($2e,$fb,$0b,$41), ($8c,$9a,$d7,$61), ($87,$94,$de,$6c), ($9a,$86,$c5,$7b), ($91,$88,$cc,$76), ($a0,$a2,$f3,$55), ($ab,$ac,$fa,$58), ($b6,$be,$e1,$4f), ($bd,$b0,$e8,$42), ($d4,$ea,$9f,$09), ($df,$e4,$96,$04), ($c2,$f6,$8d,$13), ($c9,$f8,$84,$1e), ($f8,$d2,$bb,$3d), ($f3,$dc,$b2,$30), ($ee,$ce,$a9,$27), ($e5,$c0,$a0,$2a), ($3c,$7a,$47,$b1), ($37,$74,$4e,$bc), ($2a,$66,$55,$ab), ($21,$68,$5c,$a6), ($10,$42,$63,$85), ($1b,$4c,$6a,$88), ($06,$5e,$71,$9f), ($0d,$50,$78,$92), ($64,$0a,$0f,$d9), ($6f,$04,$06,$d4), ($72,$16,$1d,$c3), ($79,$18,$14,$ce), ($48,$32,$2b,$ed), ($43,$3c,$22,$e0), ($5e,$2e,$39,$f7), ($55,$20,$30,$fa), ($01,$ec,$9a,$b7), ($0a,$e2,$93,$ba), ($17,$f0,$88,$ad), ($1c,$fe,$81,$a0), ($2d,$d4,$be,$83), ($26,$da,$b7,$8e), ($3b,$c8,$ac,$99), ($30,$c6,$a5,$94), ($59,$9c,$d2,$df), ($52,$92,$db,$d2), ($4f,$80,$c0,$c5), ($44,$8e,$c9,$c8), ($75,$a4,$f6,$eb), ($7e,$aa,$ff,$e6), ($63,$b8,$e4,$f1), ($68,$b6,$ed,$fc), ($b1,$0c,$0a,$67), ($ba,$02,$03,$6a), ($a7,$10,$18,$7d), ($ac,$1e,$11,$70), ($9d,$34,$2e,$53), ($96,$3a,$27,$5e), ($8b,$28,$3c,$49), ($80,$26,$35,$44), ($e9,$7c,$42,$0f), ($e2,$72,$4b,$02), ($ff,$60,$50,$15), ($f4,$6e,$59,$18), ($c5,$44,$66,$3b), ($ce,$4a,$6f,$36), ($d3,$58,$74,$21), ($d8,$56,$7d,$2c), ($7a,$37,$a1,$0c), ($71,$39,$a8,$01), ($6c,$2b,$b3,$16), ($67,$25,$ba,$1b), ($56,$0f,$85,$38), ($5d,$01,$8c,$35), ($40,$13,$97,$22), ($4b,$1d,$9e,$2f), ($22,$47,$e9,$64), ($29,$49,$e0,$69), ($34,$5b,$fb,$7e), ($3f,$55,$f2,$73), ($0e,$7f,$cd,$50), ($05,$71,$c4,$5d), ($18,$63,$df,$4a), ($13,$6d,$d6,$47), ($ca,$d7,$31,$dc), ($c1,$d9,$38,$d1), ($dc,$cb,$23,$c6), ($d7,$c5,$2a,$cb), ($e6,$ef,$15,$e8), ($ed,$e1,$1c,$e5), ($f0,$f3,$07,$f2), ($fb,$fd,$0e,$ff), ($92,$a7,$79,$b4), ($99,$a9,$70,$b9), ($84,$bb,$6b,$ae), ($8f,$b5,$62,$a3), ($be,$9f,$5d,$80), ($b5,$91,$54,$8d), ($a8,$83,$4f,$9a), ($a3,$8d,$46,$97)); U3: array[0..255,0..3] of byte= ( ($00,$00,$00,$00), ($0d,$0b,$0e,$09), ($1a,$16,$1c,$12), ($17,$1d,$12,$1b), ($34,$2c,$38,$24), ($39,$27,$36,$2d), ($2e,$3a,$24,$36), ($23,$31,$2a,$3f), ($68,$58,$70,$48), ($65,$53,$7e,$41), ($72,$4e,$6c,$5a), ($7f,$45,$62,$53), ($5c,$74,$48,$6c), ($51,$7f,$46,$65), ($46,$62,$54,$7e), ($4b,$69,$5a,$77), ($d0,$b0,$e0,$90), ($dd,$bb,$ee,$99), ($ca,$a6,$fc,$82), ($c7,$ad,$f2,$8b), ($e4,$9c,$d8,$b4), ($e9,$97,$d6,$bd), ($fe,$8a,$c4,$a6), ($f3,$81,$ca,$af), ($b8,$e8,$90,$d8), ($b5,$e3,$9e,$d1), ($a2,$fe,$8c,$ca), ($af,$f5,$82,$c3), ($8c,$c4,$a8,$fc), ($81,$cf,$a6,$f5), ($96,$d2,$b4,$ee), ($9b,$d9,$ba,$e7), ($bb,$7b,$db,$3b), ($b6,$70,$d5,$32), ($a1,$6d,$c7,$29), ($ac,$66,$c9,$20), ($8f,$57,$e3,$1f), ($82,$5c,$ed,$16), ($95,$41,$ff,$0d), ($98,$4a,$f1,$04), ($d3,$23,$ab,$73), ($de,$28,$a5,$7a), ($c9,$35,$b7,$61), ($c4,$3e,$b9,$68), ($e7,$0f,$93,$57), ($ea,$04,$9d,$5e), ($fd,$19,$8f,$45), ($f0,$12,$81,$4c), ($6b,$cb,$3b,$ab), ($66,$c0,$35,$a2), ($71,$dd,$27,$b9), ($7c,$d6,$29,$b0), ($5f,$e7,$03,$8f), ($52,$ec,$0d,$86), ($45,$f1,$1f,$9d), ($48,$fa,$11,$94), ($03,$93,$4b,$e3), ($0e,$98,$45,$ea), ($19,$85,$57,$f1), ($14,$8e,$59,$f8), ($37,$bf,$73,$c7), ($3a,$b4,$7d,$ce), ($2d,$a9,$6f,$d5), ($20,$a2,$61,$dc), ($6d,$f6,$ad,$76), ($60,$fd,$a3,$7f), ($77,$e0,$b1,$64), ($7a,$eb,$bf,$6d), ($59,$da,$95,$52), ($54,$d1,$9b,$5b), ($43,$cc,$89,$40), ($4e,$c7,$87,$49), ($05,$ae,$dd,$3e), ($08,$a5,$d3,$37), ($1f,$b8,$c1,$2c), ($12,$b3,$cf,$25), ($31,$82,$e5,$1a), ($3c,$89,$eb,$13), ($2b,$94,$f9,$08), ($26,$9f,$f7,$01), ($bd,$46,$4d,$e6), ($b0,$4d,$43,$ef), ($a7,$50,$51,$f4), ($aa,$5b,$5f,$fd), ($89,$6a,$75,$c2), ($84,$61,$7b,$cb), ($93,$7c,$69,$d0), ($9e,$77,$67,$d9), ($d5,$1e,$3d,$ae), ($d8,$15,$33,$a7), ($cf,$08,$21,$bc), ($c2,$03,$2f,$b5), ($e1,$32,$05,$8a), ($ec,$39,$0b,$83), ($fb,$24,$19,$98), ($f6,$2f,$17,$91), ($d6,$8d,$76,$4d), ($db,$86,$78,$44), ($cc,$9b,$6a,$5f), ($c1,$90,$64,$56), ($e2,$a1,$4e,$69), ($ef,$aa,$40,$60), ($f8,$b7,$52,$7b), ($f5,$bc,$5c,$72), ($be,$d5,$06,$05), ($b3,$de,$08,$0c), ($a4,$c3,$1a,$17), ($a9,$c8,$14,$1e), ($8a,$f9,$3e,$21), ($87,$f2,$30,$28), ($90,$ef,$22,$33), ($9d,$e4,$2c,$3a), ($06,$3d,$96,$dd), ($0b,$36,$98,$d4), ($1c,$2b,$8a,$cf), ($11,$20,$84,$c6), ($32,$11,$ae,$f9), ($3f,$1a,$a0,$f0), ($28,$07,$b2,$eb), ($25,$0c,$bc,$e2), ($6e,$65,$e6,$95), ($63,$6e,$e8,$9c), ($74,$73,$fa,$87), ($79,$78,$f4,$8e), ($5a,$49,$de,$b1), ($57,$42,$d0,$b8), ($40,$5f,$c2,$a3), ($4d,$54,$cc,$aa), ($da,$f7,$41,$ec), ($d7,$fc,$4f,$e5), ($c0,$e1,$5d,$fe), ($cd,$ea,$53,$f7), ($ee,$db,$79,$c8), ($e3,$d0,$77,$c1), ($f4,$cd,$65,$da), ($f9,$c6,$6b,$d3), ($b2,$af,$31,$a4), ($bf,$a4,$3f,$ad), ($a8,$b9,$2d,$b6), ($a5,$b2,$23,$bf), ($86,$83,$09,$80), ($8b,$88,$07,$89), ($9c,$95,$15,$92), ($91,$9e,$1b,$9b), ($0a,$47,$a1,$7c), ($07,$4c,$af,$75), ($10,$51,$bd,$6e), ($1d,$5a,$b3,$67), ($3e,$6b,$99,$58), ($33,$60,$97,$51), ($24,$7d,$85,$4a), ($29,$76,$8b,$43), ($62,$1f,$d1,$34), ($6f,$14,$df,$3d), ($78,$09,$cd,$26), ($75,$02,$c3,$2f), ($56,$33,$e9,$10), ($5b,$38,$e7,$19), ($4c,$25,$f5,$02), ($41,$2e,$fb,$0b), ($61,$8c,$9a,$d7), ($6c,$87,$94,$de), ($7b,$9a,$86,$c5), ($76,$91,$88,$cc), ($55,$a0,$a2,$f3), ($58,$ab,$ac,$fa), ($4f,$b6,$be,$e1), ($42,$bd,$b0,$e8), ($09,$d4,$ea,$9f), ($04,$df,$e4,$96), ($13,$c2,$f6,$8d), ($1e,$c9,$f8,$84), ($3d,$f8,$d2,$bb), ($30,$f3,$dc,$b2), ($27,$ee,$ce,$a9), ($2a,$e5,$c0,$a0), ($b1,$3c,$7a,$47), ($bc,$37,$74,$4e), ($ab,$2a,$66,$55), ($a6,$21,$68,$5c), ($85,$10,$42,$63), ($88,$1b,$4c,$6a), ($9f,$06,$5e,$71), ($92,$0d,$50,$78), ($d9,$64,$0a,$0f), ($d4,$6f,$04,$06), ($c3,$72,$16,$1d), ($ce,$79,$18,$14), ($ed,$48,$32,$2b), ($e0,$43,$3c,$22), ($f7,$5e,$2e,$39), ($fa,$55,$20,$30), ($b7,$01,$ec,$9a), ($ba,$0a,$e2,$93), ($ad,$17,$f0,$88), ($a0,$1c,$fe,$81), ($83,$2d,$d4,$be), ($8e,$26,$da,$b7), ($99,$3b,$c8,$ac), ($94,$30,$c6,$a5), ($df,$59,$9c,$d2), ($d2,$52,$92,$db), ($c5,$4f,$80,$c0), ($c8,$44,$8e,$c9), ($eb,$75,$a4,$f6), ($e6,$7e,$aa,$ff), ($f1,$63,$b8,$e4), ($fc,$68,$b6,$ed), ($67,$b1,$0c,$0a), ($6a,$ba,$02,$03), ($7d,$a7,$10,$18), ($70,$ac,$1e,$11), ($53,$9d,$34,$2e), ($5e,$96,$3a,$27), ($49,$8b,$28,$3c), ($44,$80,$26,$35), ($0f,$e9,$7c,$42), ($02,$e2,$72,$4b), ($15,$ff,$60,$50), ($18,$f4,$6e,$59), ($3b,$c5,$44,$66), ($36,$ce,$4a,$6f), ($21,$d3,$58,$74), ($2c,$d8,$56,$7d), ($0c,$7a,$37,$a1), ($01,$71,$39,$a8), ($16,$6c,$2b,$b3), ($1b,$67,$25,$ba), ($38,$56,$0f,$85), ($35,$5d,$01,$8c), ($22,$40,$13,$97), ($2f,$4b,$1d,$9e), ($64,$22,$47,$e9), ($69,$29,$49,$e0), ($7e,$34,$5b,$fb), ($73,$3f,$55,$f2), ($50,$0e,$7f,$cd), ($5d,$05,$71,$c4), ($4a,$18,$63,$df), ($47,$13,$6d,$d6), ($dc,$ca,$d7,$31), ($d1,$c1,$d9,$38), ($c6,$dc,$cb,$23), ($cb,$d7,$c5,$2a), ($e8,$e6,$ef,$15), ($e5,$ed,$e1,$1c), ($f2,$f0,$f3,$07), ($ff,$fb,$fd,$0e), ($b4,$92,$a7,$79), ($b9,$99,$a9,$70), ($ae,$84,$bb,$6b), ($a3,$8f,$b5,$62), ($80,$be,$9f,$5d), ($8d,$b5,$91,$54), ($9a,$a8,$83,$4f), ($97,$a3,$8d,$46)); U4: array[0..255,0..3] of byte= ( ($00,$00,$00,$00), ($09,$0d,$0b,$0e), ($12,$1a,$16,$1c), ($1b,$17,$1d,$12), ($24,$34,$2c,$38), ($2d,$39,$27,$36), ($36,$2e,$3a,$24), ($3f,$23,$31,$2a), ($48,$68,$58,$70), ($41,$65,$53,$7e), ($5a,$72,$4e,$6c), ($53,$7f,$45,$62), ($6c,$5c,$74,$48), ($65,$51,$7f,$46), ($7e,$46,$62,$54), ($77,$4b,$69,$5a), ($90,$d0,$b0,$e0), ($99,$dd,$bb,$ee), ($82,$ca,$a6,$fc), ($8b,$c7,$ad,$f2), ($b4,$e4,$9c,$d8), ($bd,$e9,$97,$d6), ($a6,$fe,$8a,$c4), ($af,$f3,$81,$ca), ($d8,$b8,$e8,$90), ($d1,$b5,$e3,$9e), ($ca,$a2,$fe,$8c), ($c3,$af,$f5,$82), ($fc,$8c,$c4,$a8), ($f5,$81,$cf,$a6), ($ee,$96,$d2,$b4), ($e7,$9b,$d9,$ba), ($3b,$bb,$7b,$db), ($32,$b6,$70,$d5), ($29,$a1,$6d,$c7), ($20,$ac,$66,$c9), ($1f,$8f,$57,$e3), ($16,$82,$5c,$ed), ($0d,$95,$41,$ff), ($04,$98,$4a,$f1), ($73,$d3,$23,$ab), ($7a,$de,$28,$a5), ($61,$c9,$35,$b7), ($68,$c4,$3e,$b9), ($57,$e7,$0f,$93), ($5e,$ea,$04,$9d), ($45,$fd,$19,$8f), ($4c,$f0,$12,$81), ($ab,$6b,$cb,$3b), ($a2,$66,$c0,$35), ($b9,$71,$dd,$27), ($b0,$7c,$d6,$29), ($8f,$5f,$e7,$03), ($86,$52,$ec,$0d), ($9d,$45,$f1,$1f), ($94,$48,$fa,$11), ($e3,$03,$93,$4b), ($ea,$0e,$98,$45), ($f1,$19,$85,$57), ($f8,$14,$8e,$59), ($c7,$37,$bf,$73), ($ce,$3a,$b4,$7d), ($d5,$2d,$a9,$6f), ($dc,$20,$a2,$61), ($76,$6d,$f6,$ad), ($7f,$60,$fd,$a3), ($64,$77,$e0,$b1), ($6d,$7a,$eb,$bf), ($52,$59,$da,$95), ($5b,$54,$d1,$9b), ($40,$43,$cc,$89), ($49,$4e,$c7,$87), ($3e,$05,$ae,$dd), ($37,$08,$a5,$d3), ($2c,$1f,$b8,$c1), ($25,$12,$b3,$cf), ($1a,$31,$82,$e5), ($13,$3c,$89,$eb), ($08,$2b,$94,$f9), ($01,$26,$9f,$f7), ($e6,$bd,$46,$4d), ($ef,$b0,$4d,$43), ($f4,$a7,$50,$51), ($fd,$aa,$5b,$5f), ($c2,$89,$6a,$75), ($cb,$84,$61,$7b), ($d0,$93,$7c,$69), ($d9,$9e,$77,$67), ($ae,$d5,$1e,$3d), ($a7,$d8,$15,$33), ($bc,$cf,$08,$21), ($b5,$c2,$03,$2f), ($8a,$e1,$32,$05), ($83,$ec,$39,$0b), ($98,$fb,$24,$19), ($91,$f6,$2f,$17), ($4d,$d6,$8d,$76), ($44,$db,$86,$78), ($5f,$cc,$9b,$6a), ($56,$c1,$90,$64), ($69,$e2,$a1,$4e), ($60,$ef,$aa,$40), ($7b,$f8,$b7,$52), ($72,$f5,$bc,$5c), ($05,$be,$d5,$06), ($0c,$b3,$de,$08), ($17,$a4,$c3,$1a), ($1e,$a9,$c8,$14), ($21,$8a,$f9,$3e), ($28,$87,$f2,$30), ($33,$90,$ef,$22), ($3a,$9d,$e4,$2c), ($dd,$06,$3d,$96), ($d4,$0b,$36,$98), ($cf,$1c,$2b,$8a), ($c6,$11,$20,$84), ($f9,$32,$11,$ae), ($f0,$3f,$1a,$a0), ($eb,$28,$07,$b2), ($e2,$25,$0c,$bc), ($95,$6e,$65,$e6), ($9c,$63,$6e,$e8), ($87,$74,$73,$fa), ($8e,$79,$78,$f4), ($b1,$5a,$49,$de), ($b8,$57,$42,$d0), ($a3,$40,$5f,$c2), ($aa,$4d,$54,$cc), ($ec,$da,$f7,$41), ($e5,$d7,$fc,$4f), ($fe,$c0,$e1,$5d), ($f7,$cd,$ea,$53), ($c8,$ee,$db,$79), ($c1,$e3,$d0,$77), ($da,$f4,$cd,$65), ($d3,$f9,$c6,$6b), ($a4,$b2,$af,$31), ($ad,$bf,$a4,$3f), ($b6,$a8,$b9,$2d), ($bf,$a5,$b2,$23), ($80,$86,$83,$09), ($89,$8b,$88,$07), ($92,$9c,$95,$15), ($9b,$91,$9e,$1b), ($7c,$0a,$47,$a1), ($75,$07,$4c,$af), ($6e,$10,$51,$bd), ($67,$1d,$5a,$b3), ($58,$3e,$6b,$99), ($51,$33,$60,$97), ($4a,$24,$7d,$85), ($43,$29,$76,$8b), ($34,$62,$1f,$d1), ($3d,$6f,$14,$df), ($26,$78,$09,$cd), ($2f,$75,$02,$c3), ($10,$56,$33,$e9), ($19,$5b,$38,$e7), ($02,$4c,$25,$f5), ($0b,$41,$2e,$fb), ($d7,$61,$8c,$9a), ($de,$6c,$87,$94), ($c5,$7b,$9a,$86), ($cc,$76,$91,$88), ($f3,$55,$a0,$a2), ($fa,$58,$ab,$ac), ($e1,$4f,$b6,$be), ($e8,$42,$bd,$b0), ($9f,$09,$d4,$ea), ($96,$04,$df,$e4), ($8d,$13,$c2,$f6), ($84,$1e,$c9,$f8), ($bb,$3d,$f8,$d2), ($b2,$30,$f3,$dc), ($a9,$27,$ee,$ce), ($a0,$2a,$e5,$c0), ($47,$b1,$3c,$7a), ($4e,$bc,$37,$74), ($55,$ab,$2a,$66), ($5c,$a6,$21,$68), ($63,$85,$10,$42), ($6a,$88,$1b,$4c), ($71,$9f,$06,$5e), ($78,$92,$0d,$50), ($0f,$d9,$64,$0a), ($06,$d4,$6f,$04), ($1d,$c3,$72,$16), ($14,$ce,$79,$18), ($2b,$ed,$48,$32), ($22,$e0,$43,$3c), ($39,$f7,$5e,$2e), ($30,$fa,$55,$20), ($9a,$b7,$01,$ec), ($93,$ba,$0a,$e2), ($88,$ad,$17,$f0), ($81,$a0,$1c,$fe), ($be,$83,$2d,$d4), ($b7,$8e,$26,$da), ($ac,$99,$3b,$c8), ($a5,$94,$30,$c6), ($d2,$df,$59,$9c), ($db,$d2,$52,$92), ($c0,$c5,$4f,$80), ($c9,$c8,$44,$8e), ($f6,$eb,$75,$a4), ($ff,$e6,$7e,$aa), ($e4,$f1,$63,$b8), ($ed,$fc,$68,$b6), ($0a,$67,$b1,$0c), ($03,$6a,$ba,$02), ($18,$7d,$a7,$10), ($11,$70,$ac,$1e), ($2e,$53,$9d,$34), ($27,$5e,$96,$3a), ($3c,$49,$8b,$28), ($35,$44,$80,$26), ($42,$0f,$e9,$7c), ($4b,$02,$e2,$72), ($50,$15,$ff,$60), ($59,$18,$f4,$6e), ($66,$3b,$c5,$44), ($6f,$36,$ce,$4a), ($74,$21,$d3,$58), ($7d,$2c,$d8,$56), ($a1,$0c,$7a,$37), ($a8,$01,$71,$39), ($b3,$16,$6c,$2b), ($ba,$1b,$67,$25), ($85,$38,$56,$0f), ($8c,$35,$5d,$01), ($97,$22,$40,$13), ($9e,$2f,$4b,$1d), ($e9,$64,$22,$47), ($e0,$69,$29,$49), ($fb,$7e,$34,$5b), ($f2,$73,$3f,$55), ($cd,$50,$0e,$7f), ($c4,$5d,$05,$71), ($df,$4a,$18,$63), ($d6,$47,$13,$6d), ($31,$dc,$ca,$d7), ($38,$d1,$c1,$d9), ($23,$c6,$dc,$cb), ($2a,$cb,$d7,$c5), ($15,$e8,$e6,$ef), ($1c,$e5,$ed,$e1), ($07,$f2,$f0,$f3), ($0e,$ff,$fb,$fd), ($79,$b4,$92,$a7), ($70,$b9,$99,$a9), ($6b,$ae,$84,$bb), ($62,$a3,$8f,$b5), ($5d,$80,$be,$9f), ($54,$8d,$b5,$91), ($4f,$9a,$a8,$83), ($46,$97,$a3,$8d)); rcon: array[0..29] of cardinal= ( $01, $02, $04, $08, $10, $20, $40, $80, $1b, $36, $6c, $d8, $ab, $4d, $9a, $2f, $5e, $bc, $63, $c6, $97, $35, $6a, $d4, $b3, $7d, $fa, $ef, $c5, $91); {==============================================================================} type PDWord = ^LongWord; procedure hperm_op(var a, t: integer; n, m: integer); begin t:= ((a shl (16 - n)) xor a) and m; a:= a xor t xor (t shr (16 - n)); end; procedure perm_op(var a, b, t: integer; n, m: integer); begin t:= ((a shr n) xor b) and m; b:= b xor t; a:= a xor (t shl n); end; {==============================================================================} function TSynaBlockCipher.GetSize: byte; begin Result := 8; end; procedure TSynaBlockCipher.IncCounter; var i: integer; begin Inc(CV[GetSize]); i:= GetSize -1; while (i> 0) and (CV[i + 1] = #0) do begin Inc(CV[i]); Dec(i); end; end; procedure TSynaBlockCipher.Reset; begin CV := IV; end; procedure TSynaBlockCipher.InitKey(Key: AnsiString); begin end; procedure TSynaBlockCipher.SetIV(const Value: AnsiString); begin IV := PadString(Value, GetSize, #0); Reset; end; function TSynaBlockCipher.GetIV: AnsiString; begin Result := CV; end; function TSynaBlockCipher.EncryptECB(const InData: AnsiString): AnsiString; begin Result := InData; end; function TSynaBlockCipher.DecryptECB(const InData: AnsiString): AnsiString; begin Result := InData; end; function TSynaBlockCipher.EncryptCBC(const Indata: AnsiString): AnsiString; var i: integer; s: ansistring; l: integer; bs: byte; begin Result := ''; l := Length(InData); bs := GetSize; for i:= 1 to (l div bs) do begin s := copy(Indata, (i - 1) * bs + 1, bs); s := XorString(s, CV); s := EncryptECB(s); CV := s; Result := Result + s; end; if (l mod bs)<> 0 then begin CV := EncryptECB(CV); s := copy(Indata, (l div bs) * bs + 1, l mod bs); s := XorString(s, CV); Result := Result + s; end; end; function TSynaBlockCipher.DecryptCBC(const Indata: AnsiString): AnsiString; var i: integer; s, temp: ansistring; l: integer; bs: byte; begin Result := ''; l := Length(InData); bs := GetSize; for i:= 1 to (l div bs) do begin s := copy(Indata, (i - 1) * bs + 1, bs); temp := s; s := DecryptECB(s); s := XorString(s, CV); Result := Result + s; CV := Temp; end; if (l mod bs)<> 0 then begin CV := EncryptECB(CV); s := copy(Indata, (l div bs) * bs + 1, l mod bs); s := XorString(s, CV); Result := Result + s; end; end; function TSynaBlockCipher.EncryptCFB8bit(const Indata: AnsiString): AnsiString; var i: integer; Temp: AnsiString; c: AnsiChar; begin Result := ''; for i:= 1 to Length(Indata) do begin Temp := EncryptECB(CV); c := AnsiChar(ord(InData[i]) xor ord(temp[1])); Result := Result + c; Delete(CV, 1, 1); CV := CV + c; end; end; function TSynaBlockCipher.DecryptCFB8bit(const Indata: AnsiString): AnsiString; var i: integer; Temp: AnsiString; c: AnsiChar; begin Result := ''; for i:= 1 to length(Indata) do begin c:= Indata[i]; Temp := EncryptECB(CV); Result := Result + AnsiChar(ord(InData[i]) xor ord(temp[1])); Delete(CV, 1, 1); CV := CV + c; end; end; function TSynaBlockCipher.EncryptCFBblock(const Indata: AnsiString): AnsiString; var i: integer; s: AnsiString; l: integer; bs: byte; begin Result := ''; l := Length(InData); bs := GetSize; for i:= 1 to (l div bs) do begin CV := EncryptECB(CV); s := copy(Indata, (i - 1) * bs + 1, bs); s := XorString(s, CV); Result := Result + s; CV := s; end; if (l mod bs)<> 0 then begin CV := EncryptECB(CV); s := copy(Indata, (l div bs) * bs + 1, l mod bs); s := XorString(s, CV); Result := Result + s; end; end; function TSynaBlockCipher.DecryptCFBblock(const Indata: AnsiString): AnsiString; var i: integer; S, Temp: AnsiString; l: integer; bs: byte; begin Result := ''; l := Length(InData); bs := GetSize; for i:= 1 to (l div bs) do begin s := copy(Indata, (i - 1) * bs + 1, bs); Temp := s; CV := EncryptECB(CV); s := XorString(s, CV); Result := result + s; CV := temp; end; if (l mod bs)<> 0 then begin CV := EncryptECB(CV); s := copy(Indata, (l div bs) * bs + 1, l mod bs); s := XorString(s, CV); Result := Result + s; end; end; function TSynaBlockCipher.EncryptOFB(const Indata: AnsiString): AnsiString; var i: integer; s: AnsiString; l: integer; bs: byte; begin Result := ''; l := Length(InData); bs := GetSize; for i:= 1 to (l div bs) do begin CV := EncryptECB(CV); s := copy(Indata, (i - 1) * bs + 1, bs); s := XorString(s, CV); Result := Result + s; end; if (l mod bs)<> 0 then begin CV := EncryptECB(CV); s := copy(Indata, (l div bs) * bs + 1, l mod bs); s := XorString(s, CV); Result := Result + s; end; end; function TSynaBlockCipher.DecryptOFB(const Indata: AnsiString): AnsiString; var i: integer; s: AnsiString; l: integer; bs: byte; begin Result := ''; l := Length(InData); bs := GetSize; for i:= 1 to (l div bs) do begin Cv := EncryptECB(CV); s := copy(Indata, (i - 1) * bs + 1, bs); s := XorString(s, CV); Result := Result + s; end; if (l mod bs)<> 0 then begin CV := EncryptECB(CV); s := copy(Indata, (l div bs) * bs + 1, l mod bs); s := XorString(s, CV); Result := Result + s; end; end; function TSynaBlockCipher.EncryptCTR(const Indata: AnsiString): AnsiString; var temp: AnsiString; i: integer; s: AnsiString; l: integer; bs: byte; begin Result := ''; l := Length(InData); bs := GetSize; for i:= 1 to (l div bs) do begin temp := EncryptECB(CV); IncCounter; s := copy(Indata, (i - 1) * bs + 1, bs); s := XorString(s, temp); Result := Result + s; end; if (l mod bs)<> 0 then begin temp := EncryptECB(CV); IncCounter; s := copy(Indata, (l div bs) * bs + 1, l mod bs); s := XorString(s, temp); Result := Result + s; end; end; function TSynaBlockCipher.DecryptCTR(const Indata: AnsiString): AnsiString; var temp: AnsiString; s: AnsiString; i: integer; l: integer; bs: byte; begin Result := ''; l := Length(InData); bs := GetSize; for i:= 1 to (l div bs) do begin temp := EncryptECB(CV); IncCounter; s := copy(Indata, (i - 1) * bs + 1, bs); s := XorString(s, temp); Result := Result + s; end; if (l mod bs)<> 0 then begin temp := EncryptECB(CV); IncCounter; s := copy(Indata, (l div bs) * bs + 1, l mod bs); s := XorString(s, temp); Result := Result + s; end; end; constructor TSynaBlockCipher.Create(Key: AnsiString); begin inherited Create; InitKey(Key); IV := StringOfChar(#0, GetSize); IV := EncryptECB(IV); Reset; end; {==============================================================================} procedure TSynaCustomDes.DoInit(KeyB: AnsiString; var KeyData: TDesKeyData); var c, d, t, s, t2, i: integer; begin KeyB := PadString(KeyB, 8, #0); c:= ord(KeyB[1]) or (ord(KeyB[2]) shl 8) or (ord(KeyB[3]) shl 16) or (ord(KeyB[4]) shl 24); d:= ord(KeyB[5]) or (ord(KeyB[6]) shl 8) or (ord(KeyB[7]) shl 16) or (ord(KeyB[8]) shl 24); perm_op(d,c,t,4,integer($0f0f0f0f)); hperm_op(c,t,integer(-2),integer($cccc0000)); hperm_op(d,t,integer(-2),integer($cccc0000)); perm_op(d,c,t,1,integer($55555555)); perm_op(c,d,t,8,integer($00ff00ff)); perm_op(d,c,t,1,integer($55555555)); d:= ((d and $ff) shl 16) or (d and $ff00) or ((d and $ff0000) shr 16) or ((c and integer($f0000000)) shr 4); c:= c and $fffffff; for i:= 0 to 15 do begin if shifts2[i]<> 0 then begin c:= ((c shr 2) or (c shl 26)); d:= ((d shr 2) or (d shl 26)); end else begin c:= ((c shr 1) or (c shl 27)); d:= ((d shr 1) or (d shl 27)); end; c:= c and $fffffff; d:= d and $fffffff; s:= des_skb[0,c and $3f] or des_skb[1,((c shr 6) and $03) or ((c shr 7) and $3c)] or des_skb[2,((c shr 13) and $0f) or ((c shr 14) and $30)] or des_skb[3,((c shr 20) and $01) or ((c shr 21) and $06) or ((c shr 22) and $38)]; t:= des_skb[4,d and $3f] or des_skb[5,((d shr 7) and $03) or ((d shr 8) and $3c)] or des_skb[6, (d shr 15) and $3f ] or des_skb[7,((d shr 21) and $0f) or ((d shr 22) and $30)]; t2:= ((t shl 16) or (s and $ffff)); KeyData[(i shl 1)]:= ((t2 shl 2) or (t2 shr 30)); t2:= ((s shr 16) or (t and integer($ffff0000))); KeyData[(i shl 1)+1]:= ((t2 shl 6) or (t2 shr 26)); end; end; function TSynaCustomDes.EncryptBlock(const InData: AnsiString; var KeyData: TDesKeyData): AnsiString; var l, r, t, u: integer; i: longint; begin r := Swapbytes(DecodeLongint(Indata, 1)); l := swapbytes(DecodeLongint(Indata, 5)); t:= ((l shr 4) xor r) and $0f0f0f0f; r:= r xor t; l:= l xor (t shl 4); t:= ((r shr 16) xor l) and $0000ffff; l:= l xor t; r:= r xor (t shl 16); t:= ((l shr 2) xor r) and $33333333; r:= r xor t; l:= l xor (t shl 2); t:= ((r shr 8) xor l) and $00ff00ff; l:= l xor t; r:= r xor (t shl 8); t:= ((l shr 1) xor r) and $55555555; r:= r xor t; l:= l xor (t shl 1); r:= (r shr 29) or (r shl 3); l:= (l shr 29) or (l shl 3); i:= 0; while i< 32 do begin u:= r xor KeyData[i ]; t:= r xor KeyData[i+1]; t:= (t shr 4) or (t shl 28); l:= l xor des_SPtrans[0,(u shr 2) and $3f] xor des_SPtrans[2,(u shr 10) and $3f] xor des_SPtrans[4,(u shr 18) and $3f] xor des_SPtrans[6,(u shr 26) and $3f] xor des_SPtrans[1,(t shr 2) and $3f] xor des_SPtrans[3,(t shr 10) and $3f] xor des_SPtrans[5,(t shr 18) and $3f] xor des_SPtrans[7,(t shr 26) and $3f]; u:= l xor KeyData[i+2]; t:= l xor KeyData[i+3]; t:= (t shr 4) or (t shl 28); r:= r xor des_SPtrans[0,(u shr 2) and $3f] xor des_SPtrans[2,(u shr 10) and $3f] xor des_SPtrans[4,(u shr 18) and $3f] xor des_SPtrans[6,(u shr 26) and $3f] xor des_SPtrans[1,(t shr 2) and $3f] xor des_SPtrans[3,(t shr 10) and $3f] xor des_SPtrans[5,(t shr 18) and $3f] xor des_SPtrans[7,(t shr 26) and $3f]; u:= r xor KeyData[i+4]; t:= r xor KeyData[i+5]; t:= (t shr 4) or (t shl 28); l:= l xor des_SPtrans[0,(u shr 2) and $3f] xor des_SPtrans[2,(u shr 10) and $3f] xor des_SPtrans[4,(u shr 18) and $3f] xor des_SPtrans[6,(u shr 26) and $3f] xor des_SPtrans[1,(t shr 2) and $3f] xor des_SPtrans[3,(t shr 10) and $3f] xor des_SPtrans[5,(t shr 18) and $3f] xor des_SPtrans[7,(t shr 26) and $3f]; u:= l xor KeyData[i+6]; t:= l xor KeyData[i+7]; t:= (t shr 4) or (t shl 28); r:= r xor des_SPtrans[0,(u shr 2) and $3f] xor des_SPtrans[2,(u shr 10) and $3f] xor des_SPtrans[4,(u shr 18) and $3f] xor des_SPtrans[6,(u shr 26) and $3f] xor des_SPtrans[1,(t shr 2) and $3f] xor des_SPtrans[3,(t shr 10) and $3f] xor des_SPtrans[5,(t shr 18) and $3f] xor des_SPtrans[7,(t shr 26) and $3f]; Inc(i,8); end; r:= (r shr 3) or (r shl 29); l:= (l shr 3) or (l shl 29); t:= ((r shr 1) xor l) and $55555555; l:= l xor t; r:= r xor (t shl 1); t:= ((l shr 8) xor r) and $00ff00ff; r:= r xor t; l:= l xor (t shl 8); t:= ((r shr 2) xor l) and $33333333; l:= l xor t; r:= r xor (t shl 2); t:= ((l shr 16) xor r) and $0000ffff; r:= r xor t; l:= l xor (t shl 16); t:= ((r shr 4) xor l) and $0f0f0f0f; l:= l xor t; r:= r xor (t shl 4); Result := CodeLongInt(Swapbytes(l)) + CodeLongInt(Swapbytes(r)); end; function TSynaCustomDes.DecryptBlock(const InData: AnsiString; var KeyData: TDesKeyData): AnsiString; var l, r, t, u: integer; i: longint; begin r := Swapbytes(DecodeLongint(Indata, 1)); l := Swapbytes(DecodeLongint(Indata, 5)); t:= ((l shr 4) xor r) and $0f0f0f0f; r:= r xor t; l:= l xor (t shl 4); t:= ((r shr 16) xor l) and $0000ffff; l:= l xor t; r:= r xor (t shl 16); t:= ((l shr 2) xor r) and $33333333; r:= r xor t; l:= l xor (t shl 2); t:= ((r shr 8) xor l) and $00ff00ff; l:= l xor t; r:= r xor (t shl 8); t:= ((l shr 1) xor r) and $55555555; r:= r xor t; l:= l xor (t shl 1); r:= (r shr 29) or (r shl 3); l:= (l shr 29) or (l shl 3); i:= 30; while i> 0 do begin u:= r xor KeyData[i ]; t:= r xor KeyData[i+1]; t:= (t shr 4) or (t shl 28); l:= l xor des_SPtrans[0,(u shr 2) and $3f] xor des_SPtrans[2,(u shr 10) and $3f] xor des_SPtrans[4,(u shr 18) and $3f] xor des_SPtrans[6,(u shr 26) and $3f] xor des_SPtrans[1,(t shr 2) and $3f] xor des_SPtrans[3,(t shr 10) and $3f] xor des_SPtrans[5,(t shr 18) and $3f] xor des_SPtrans[7,(t shr 26) and $3f]; u:= l xor KeyData[i-2]; t:= l xor KeyData[i-1]; t:= (t shr 4) or (t shl 28); r:= r xor des_SPtrans[0,(u shr 2) and $3f] xor des_SPtrans[2,(u shr 10) and $3f] xor des_SPtrans[4,(u shr 18) and $3f] xor des_SPtrans[6,(u shr 26) and $3f] xor des_SPtrans[1,(t shr 2) and $3f] xor des_SPtrans[3,(t shr 10) and $3f] xor des_SPtrans[5,(t shr 18) and $3f] xor des_SPtrans[7,(t shr 26) and $3f]; u:= r xor KeyData[i-4]; t:= r xor KeyData[i-3]; t:= (t shr 4) or (t shl 28); l:= l xor des_SPtrans[0,(u shr 2) and $3f] xor des_SPtrans[2,(u shr 10) and $3f] xor des_SPtrans[4,(u shr 18) and $3f] xor des_SPtrans[6,(u shr 26) and $3f] xor des_SPtrans[1,(t shr 2) and $3f] xor des_SPtrans[3,(t shr 10) and $3f] xor des_SPtrans[5,(t shr 18) and $3f] xor des_SPtrans[7,(t shr 26) and $3f]; u:= l xor KeyData[i-6]; t:= l xor KeyData[i-5]; t:= (t shr 4) or (t shl 28); r:= r xor des_SPtrans[0,(u shr 2) and $3f] xor des_SPtrans[2,(u shr 10) and $3f] xor des_SPtrans[4,(u shr 18) and $3f] xor des_SPtrans[6,(u shr 26) and $3f] xor des_SPtrans[1,(t shr 2) and $3f] xor des_SPtrans[3,(t shr 10) and $3f] xor des_SPtrans[5,(t shr 18) and $3f] xor des_SPtrans[7,(t shr 26) and $3f]; Dec(i,8); end; r:= (r shr 3) or (r shl 29); l:= (l shr 3) or (l shl 29); t:= ((r shr 1) xor l) and $55555555; l:= l xor t; r:= r xor (t shl 1); t:= ((l shr 8) xor r) and $00ff00ff; r:= r xor t; l:= l xor (t shl 8); t:= ((r shr 2) xor l) and $33333333; l:= l xor t; r:= r xor (t shl 2); t:= ((l shr 16) xor r) and $0000ffff; r:= r xor t; l:= l xor (t shl 16); t:= ((r shr 4) xor l) and $0f0f0f0f; l:= l xor t; r:= r xor (t shl 4); Result := CodeLongInt(Swapbytes(l)) + CodeLongInt(Swapbytes(r)); end; {==============================================================================} procedure TSynaDes.InitKey(Key: AnsiString); begin Key := PadString(Key, 8, #0); DoInit(Key,KeyData); end; function TSynaDes.EncryptECB(const InData: AnsiString): AnsiString; begin Result := EncryptBlock(InData,KeyData); end; function TSynaDes.DecryptECB(const InData: AnsiString): AnsiString; begin Result := DecryptBlock(Indata,KeyData); end; {==============================================================================} procedure TSyna3Des.InitKey(Key: AnsiString); var Size: integer; n: integer; begin Size := length(Key); key := PadString(key, 3 * 8, #0); DoInit(Copy(key, 1, 8),KeyData[0]); DoInit(Copy(key, 9, 8),KeyData[1]); if Size > 16 then DoInit(Copy(key, 17, 8),KeyData[2]) else for n := 0 to high(KeyData[0]) do KeyData[2][n] := Keydata[0][n]; end; function TSyna3Des.EncryptECB(const InData: AnsiString): AnsiString; begin Result := EncryptBlock(Indata,KeyData[0]); Result := DecryptBlock(Result,KeyData[1]); Result := EncryptBlock(Result,KeyData[2]); end; function TSyna3Des.DecryptECB(const InData: AnsiString): AnsiString; begin Result := DecryptBlock(InData,KeyData[2]); Result := EncryptBlock(Result,KeyData[1]); Result := DecryptBlock(Result,KeyData[0]); end; {==============================================================================} procedure InvMixColumn(a: PByteArray; BC: byte); var j: longword; begin for j:= 0 to (BC-1) do PDWord(@(a^[j*4]))^:= PDWord(@U1[a^[j*4+0]])^ xor PDWord(@U2[a^[j*4+1]])^ xor PDWord(@U3[a^[j*4+2]])^ xor PDWord(@U4[a^[j*4+3]])^; end; {==============================================================================} function TSynaAes.GetSize: byte; begin Result := 16; end; procedure TSynaAes.InitKey(Key: AnsiString); var Size: integer; KC, ROUNDS, j, r, t, rconpointer: longword; tk: array[0..MAXKC-1,0..3] of byte; n: integer; begin FillChar(tk,Sizeof(tk),0); //key must have at least 128 bits and max 256 bits if length(key) < 16 then key := PadString(key, 16, #0); if length(key) > 32 then delete(key, 33, maxint); Size := length(Key); Move(PAnsiChar(Key)^, tk, Size); if Size<= 16 then begin KC:= 4; Rounds:= 10; end else if Size<= 24 then begin KC:= 6; Rounds:= 12; end else begin KC:= 8; Rounds:= 14; end; numrounds:= rounds; r:= 0; t:= 0; j:= 0; while (j< KC) and (r< (rounds+1)) do begin while (j< KC) and (t< BC) do begin rk[r,t]:= PDWord(@tk[j])^; Inc(j); Inc(t); end; if t= BC then begin t:= 0; Inc(r); end; end; rconpointer:= 0; while (r< (rounds+1)) do begin tk[0,0]:= tk[0,0] xor S[tk[KC-1,1]]; tk[0,1]:= tk[0,1] xor S[tk[KC-1,2]]; tk[0,2]:= tk[0,2] xor S[tk[KC-1,3]]; tk[0,3]:= tk[0,3] xor S[tk[KC-1,0]]; tk[0,0]:= tk[0,0] xor rcon[rconpointer]; Inc(rconpointer); if KC<> 8 then begin for j:= 1 to (KC-1) do PDWord(@tk[j])^:= PDWord(@tk[j])^ xor PDWord(@tk[j-1])^; end else begin for j:= 1 to ((KC div 2)-1) do PDWord(@tk[j])^:= PDWord(@tk[j])^ xor PDWord(@tk[j-1])^; tk[KC div 2,0]:= tk[KC div 2,0] xor S[tk[KC div 2 - 1,0]]; tk[KC div 2,1]:= tk[KC div 2,1] xor S[tk[KC div 2 - 1,1]]; tk[KC div 2,2]:= tk[KC div 2,2] xor S[tk[KC div 2 - 1,2]]; tk[KC div 2,3]:= tk[KC div 2,3] xor S[tk[KC div 2 - 1,3]]; for j:= ((KC div 2) + 1) to (KC-1) do PDWord(@tk[j])^:= PDWord(@tk[j])^ xor PDWord(@tk[j-1])^; end; j:= 0; while (j< KC) and (r< (rounds+1)) do begin while (j< KC) and (t< BC) do begin rk[r,t]:= PDWord(@tk[j])^; Inc(j); Inc(t); end; if t= BC then begin Inc(r); t:= 0; end; end; end; Move(rk,drk,Sizeof(rk)); for r:= 1 to (numrounds-1) do InvMixColumn(@drk[r],BC); end; function TSynaAes.EncryptECB(const InData: AnsiString): AnsiString; var r: longword; tempb: array[0..MAXBC-1,0..3] of byte; a: array[0..MAXBC,0..3] of byte; p: pointer; begin p := @a[0,0]; move(pointer(InData)^, p^, 16); for r:= 0 to (numrounds-2) do begin PDWord(@tempb[0])^:= PDWord(@a[0])^ xor rk[r,0]; PDWord(@tempb[1])^:= PDWord(@a[1])^ xor rk[r,1]; PDWord(@tempb[2])^:= PDWord(@a[2])^ xor rk[r,2]; PDWord(@tempb[3])^:= PDWord(@a[3])^ xor rk[r,3]; PDWord(@a[0])^:= PDWord(@T1[tempb[0,0]])^ xor PDWord(@T2[tempb[1,1]])^ xor PDWord(@T3[tempb[2,2]])^ xor PDWord(@T4[tempb[3,3]])^; PDWord(@a[1])^:= PDWord(@T1[tempb[1,0]])^ xor PDWord(@T2[tempb[2,1]])^ xor PDWord(@T3[tempb[3,2]])^ xor PDWord(@T4[tempb[0,3]])^; PDWord(@a[2])^:= PDWord(@T1[tempb[2,0]])^ xor PDWord(@T2[tempb[3,1]])^ xor PDWord(@T3[tempb[0,2]])^ xor PDWord(@T4[tempb[1,3]])^; PDWord(@a[3])^:= PDWord(@T1[tempb[3,0]])^ xor PDWord(@T2[tempb[0,1]])^ xor PDWord(@T3[tempb[1,2]])^ xor PDWord(@T4[tempb[2,3]])^; end; PDWord(@tempb[0])^:= PDWord(@a[0])^ xor rk[numrounds-1,0]; PDWord(@tempb[1])^:= PDWord(@a[1])^ xor rk[numrounds-1,1]; PDWord(@tempb[2])^:= PDWord(@a[2])^ xor rk[numrounds-1,2]; PDWord(@tempb[3])^:= PDWord(@a[3])^ xor rk[numrounds-1,3]; a[0,0]:= T1[tempb[0,0],1]; a[0,1]:= T1[tempb[1,1],1]; a[0,2]:= T1[tempb[2,2],1]; a[0,3]:= T1[tempb[3,3],1]; a[1,0]:= T1[tempb[1,0],1]; a[1,1]:= T1[tempb[2,1],1]; a[1,2]:= T1[tempb[3,2],1]; a[1,3]:= T1[tempb[0,3],1]; a[2,0]:= T1[tempb[2,0],1]; a[2,1]:= T1[tempb[3,1],1]; a[2,2]:= T1[tempb[0,2],1]; a[2,3]:= T1[tempb[1,3],1]; a[3,0]:= T1[tempb[3,0],1]; a[3,1]:= T1[tempb[0,1],1]; a[3,2]:= T1[tempb[1,2],1]; a[3,3]:= T1[tempb[2,3],1]; PDWord(@a[0])^:= PDWord(@a[0])^ xor rk[numrounds,0]; PDWord(@a[1])^:= PDWord(@a[1])^ xor rk[numrounds,1]; PDWord(@a[2])^:= PDWord(@a[2])^ xor rk[numrounds,2]; PDWord(@a[3])^:= PDWord(@a[3])^ xor rk[numrounds,3]; Result := StringOfChar(#0, 16); move(p^, pointer(Result)^, 16); end; function TSynaAes.DecryptECB(const InData: AnsiString): AnsiString; var r: longword; tempb: array[0..MAXBC-1,0..3] of byte; a: array[0..MAXBC,0..3] of byte; p: pointer; begin p := @a[0,0]; move(pointer(InData)^, p^, 16); for r:= NumRounds downto 2 do begin PDWord(@tempb[0])^:= PDWord(@a[0])^ xor drk[r,0]; PDWord(@tempb[1])^:= PDWord(@a[1])^ xor drk[r,1]; PDWord(@tempb[2])^:= PDWord(@a[2])^ xor drk[r,2]; PDWord(@tempb[3])^:= PDWord(@a[3])^ xor drk[r,3]; PDWord(@a[0])^:= PDWord(@T5[tempb[0,0]])^ xor PDWord(@T6[tempb[3,1]])^ xor PDWord(@T7[tempb[2,2]])^ xor PDWord(@T8[tempb[1,3]])^; PDWord(@a[1])^:= PDWord(@T5[tempb[1,0]])^ xor PDWord(@T6[tempb[0,1]])^ xor PDWord(@T7[tempb[3,2]])^ xor PDWord(@T8[tempb[2,3]])^; PDWord(@a[2])^:= PDWord(@T5[tempb[2,0]])^ xor PDWord(@T6[tempb[1,1]])^ xor PDWord(@T7[tempb[0,2]])^ xor PDWord(@T8[tempb[3,3]])^; PDWord(@a[3])^:= PDWord(@T5[tempb[3,0]])^ xor PDWord(@T6[tempb[2,1]])^ xor PDWord(@T7[tempb[1,2]])^ xor PDWord(@T8[tempb[0,3]])^; end; PDWord(@tempb[0])^:= PDWord(@a[0])^ xor drk[1,0]; PDWord(@tempb[1])^:= PDWord(@a[1])^ xor drk[1,1]; PDWord(@tempb[2])^:= PDWord(@a[2])^ xor drk[1,2]; PDWord(@tempb[3])^:= PDWord(@a[3])^ xor drk[1,3]; a[0,0]:= S5[tempb[0,0]]; a[0,1]:= S5[tempb[3,1]]; a[0,2]:= S5[tempb[2,2]]; a[0,3]:= S5[tempb[1,3]]; a[1,0]:= S5[tempb[1,0]]; a[1,1]:= S5[tempb[0,1]]; a[1,2]:= S5[tempb[3,2]]; a[1,3]:= S5[tempb[2,3]]; a[2,0]:= S5[tempb[2,0]]; a[2,1]:= S5[tempb[1,1]]; a[2,2]:= S5[tempb[0,2]]; a[2,3]:= S5[tempb[3,3]]; a[3,0]:= S5[tempb[3,0]]; a[3,1]:= S5[tempb[2,1]]; a[3,2]:= S5[tempb[1,2]]; a[3,3]:= S5[tempb[0,3]]; PDWord(@a[0])^:= PDWord(@a[0])^ xor drk[0,0]; PDWord(@a[1])^:= PDWord(@a[1])^ xor drk[0,1]; PDWord(@a[2])^:= PDWord(@a[2])^ xor drk[0,2]; PDWord(@a[3])^:= PDWord(@a[3])^ xor drk[0,3]; Result := StringOfChar(#0, 16); move(p^, pointer(Result)^, 16); end; {==============================================================================} function TestDes: boolean; var des: TSynaDes; s, t: string; const key = '01234567'; data1= '01234567'; data2= '0123456789abcdefghij'; begin //ECB des := TSynaDes.Create(key); try s := des.EncryptECB(data1); t := strtohex(s); result := t = 'c50ad028c6da9800'; s := des.DecryptECB(s); result := result and (data1 = s); finally des.free; end; //CBC des := TSynaDes.Create(key); try s := des.EncryptCBC(data2); t := strtohex(s); result := result and (t = 'eec50f6353115ad6dee90a22ed1b6a88a0926e35'); des.Reset; s := des.DecryptCBC(s); result := result and (data2 = s); finally des.free; end; //CFB-8bit des := TSynaDes.Create(key); try s := des.EncryptCFB8bit(data2); t := strtohex(s); result := result and (t = 'eb6aa12c2f0ff634b4dfb6da6cb2af8f9c5c1452'); des.Reset; s := des.DecryptCFB8bit(s); result := result and (data2 = s); finally des.free; end; //CFB-block des := TSynaDes.Create(key); try s := des.EncryptCFBblock(data2); t := strtohex(s); result := result and (t = 'ebdbbaa7f9286cdec28605e07f9b7f3be1053257'); des.Reset; s := des.DecryptCFBblock(s); result := result and (data2 = s); finally des.free; end; //OFB des := TSynaDes.Create(key); try s := des.EncryptOFB(data2); t := strtohex(s); result := result and (t = 'ebdbbaa7f9286cdee0b8b3798c4c34baac87dbdc'); des.Reset; s := des.DecryptOFB(s); result := result and (data2 = s); finally des.free; end; //CTR des := TSynaDes.Create(key); try s := des.EncryptCTR(data2); t := strtohex(s); result := result and (t = 'ebdbbaa7f9286cde0dd20b45f3afd9aa1b91b87e'); des.Reset; s := des.DecryptCTR(s); result := result and (data2 = s); finally des.free; end; end; function Test3Des: boolean; var des: TSyna3Des; s, t: string; const key = '0123456789abcdefghijklmn'; data1= '01234567'; data2= '0123456789abcdefghij'; begin //ECB des := TSyna3Des.Create(key); try s := des.EncryptECB(data1); t := strtohex(s); result := t = 'e0dee91008dc460c'; s := des.DecryptECB(s); result := result and (data1 = s); finally des.free; end; //CBC des := TSyna3Des.Create(key); try s := des.EncryptCBC(data2); t := strtohex(s); result := result and (t = 'ee844a2a4f49c01b91a1599b8eba29128c1ad87a'); des.Reset; s := des.DecryptCBC(s); result := result and (data2 = s); finally des.free; end; //CFB-8bit des := TSyna3Des.Create(key); try s := des.EncryptCFB8bit(data2); t := strtohex(s); result := result and (t = '935bbf5210c32cfa1faf61f91e8dc02dfa0ff1e8'); des.Reset; s := des.DecryptCFB8bit(s); result := result and (data2 = s); finally des.free; end; //CFB-block des := TSyna3Des.Create(key); try s := des.EncryptCFBblock(data2); t := strtohex(s); result := result and (t = '93754e3d54828fbf4bd81f1739419e8d2cfe1671'); des.Reset; s := des.DecryptCFBblock(s); result := result and (data2 = s); finally des.free; end; //OFB des := TSyna3Des.Create(key); try s := des.EncryptOFB(data2); t := strtohex(s); result := result and (t = '93754e3d54828fbf04ef0a5efc926ebdf2d95f20'); des.Reset; s := des.DecryptOFB(s); result := result and (data2 = s); finally des.free; end; //CTR des := TSyna3Des.Create(key); try s := des.EncryptCTR(data2); t := strtohex(s); result := result and (t = '93754e3d54828fbf1c51a121d2c93f989e70b3ad'); des.Reset; s := des.DecryptCTR(s); result := result and (data2 = s); finally des.free; end; end; function TestAes: boolean; var aes: TSynaAes; s, t: string; const key1 = #$00#$01#$02#$03#$05#$06#$07#$08#$0A#$0B#$0C#$0D#$0F#$10#$11#$12; data1= #$50#$68#$12#$A4#$5F#$08#$C8#$89#$B9#$7F#$59#$80#$03#$8B#$83#$59; key2 = #$A0#$A1#$A2#$A3#$A5#$A6#$A7#$A8#$AA#$AB#$AC#$AD#$AF#$B0#$B1#$B2#$B4#$B5#$B6#$B7#$B9#$BA#$BB#$BC; data2= #$4F#$1C#$76#$9D#$1E#$5B#$05#$52#$C7#$EC#$A8#$4D#$EA#$26#$A5#$49; key3 = #$00#$01#$02#$03#$05#$06#$07#$08#$0A#$0B#$0C#$0D#$0F#$10#$11#$12#$14#$15#$16#$17#$19#$1A#$1B#$1C#$1E#$1F#$20#$21#$23#$24#$25#$26; data3= #$5E#$25#$CA#$78#$F0#$DE#$55#$80#$25#$24#$D3#$8D#$A3#$FE#$44#$56; begin //ECB aes := TSynaAes.Create(key1); try t := aes.EncryptECB(data1); result := t = #$D8#$F5#$32#$53#$82#$89#$EF#$7D#$06#$B5#$06#$A4#$FD#$5B#$E9#$C9; s := aes.DecryptECB(t); result := result and (data1 = s); finally aes.free; end; aes := TSynaAes.Create(key2); try t := aes.EncryptECB(data2); result := result and (t = #$F3#$84#$72#$10#$D5#$39#$1E#$23#$60#$60#$8E#$5A#$CB#$56#$05#$81); s := aes.DecryptECB(t); result := result and (data2 = s); finally aes.free; end; aes := TSynaAes.Create(key3); try t := aes.EncryptECB(data3); result := result and (t = #$E8#$B7#$2B#$4E#$8B#$E2#$43#$43#$8C#$9F#$FF#$1F#$0E#$20#$58#$72); s := aes.DecryptECB(t); result := result and (data3 = s); finally aes.free; end; end; {==============================================================================} end. ����������������./playsound_icon.png��������������������������������������������������������������������������������0000744�0001750�0001750�00000001722�14576573022�014707� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���������w=���bKGD������ pHYs����_���tIME *,;��_IDATHǍKUGM̚$,5lnEI$kՃEa``- V-E eX" 1M2)ʷ&̴_9s?@Hz/b.=>hbKÉvb<q}#ZîW$1�1O.⹉XAR[(I8J975XUSlك=D "kSx2xDJ,ōH=b(RÚG-؂)8|JWuM=Mxk*zaC1(QwĴ0QaqUx b&fsJ60| cqf0j=ю8aq[HjqIgkI98{ިr:f-W6jmyO`nZuZ, BP!f12;#8VZM?{W7-V]FƐETΤ0@zޱGS_5TFQ7x>Wpm:p!؛jg{μcT Cʞ>] -:s*|?Z0볰qs]Gղ`l dζl%wUvБ£x TWag@;,LdXȹUEPN.^< ͦWZ[h>(2PvG:([ز )ߤY5lXVAsSquELT%^N~1#w3'sqB7[bfKsY"6$?Xds@cuz$a8*o�zFQ.k;'})R6W=Rbiy?)( A����IENDB`����������������������������������������������./ssdotnet.inc��������������������������������������������������������������������������������������0000644�0001750�0001750�00000106405�14576573021�013513� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{==============================================================================| | Project : Ararat Synapse | 001.000.002 | |==============================================================================| | Content: Socket Independent Platform Layer - .NET definition include | |==============================================================================| | Copyright (c)2004, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2004. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@exclude} {$IFDEF CIL} interface uses SyncObjs, SysUtils, Classes, System.Net, System.Net.Sockets; const DLLStackName = ''; WinsockLevel = $0202; function InitSocketInterface(stack: string): Boolean; function DestroySocketInterface: Boolean; type u_char = Char; u_short = Word; u_int = Integer; u_long = Longint; pu_long = ^u_long; pu_short = ^u_short; PSockAddr = IPEndPoint; DWORD = integer; ULong = cardinal; TMemory = Array of byte; TLinger = LingerOption; TSocket = socket; TAddrFamily = AddressFamily; const WSADESCRIPTION_LEN = 256; WSASYS_STATUS_LEN = 128; type PWSAData = ^TWSAData; TWSAData = packed record wVersion: Word; wHighVersion: Word; szDescription: array[0..WSADESCRIPTION_LEN] of Char; szSystemStatus: array[0..WSASYS_STATUS_LEN] of Char; iMaxSockets: Word; iMaxUdpDg: Word; // lpVendorInfo: PChar; end; const MSG_NOSIGNAL = 0; INVALID_SOCKET = nil; AF_UNSPEC = AddressFamily.Unspecified; AF_INET = AddressFamily.InterNetwork; AF_INET6 = AddressFamily.InterNetworkV6; SOCKET_ERROR = integer(-1); FIONREAD = integer($4004667f); FIONBIO = integer($8004667e); FIOASYNC = integer($8004667d); SOMAXCONN = integer($7fffffff); IPPROTO_IP = ProtocolType.IP; IPPROTO_ICMP = ProtocolType.Icmp; IPPROTO_IGMP = ProtocolType.Igmp; IPPROTO_TCP = ProtocolType.Tcp; IPPROTO_UDP = ProtocolType.Udp; IPPROTO_RAW = ProtocolType.Raw; IPPROTO_IPV6 = ProtocolType.IPV6; // IPPROTO_ICMPV6 = ProtocolType.Icmp; //?? SOCK_STREAM = SocketType.Stream; SOCK_DGRAM = SocketType.Dgram; SOCK_RAW = SocketType.Raw; SOCK_RDM = SocketType.Rdm; SOCK_SEQPACKET = SocketType.Seqpacket; SOL_SOCKET = SocketOptionLevel.Socket; SOL_IP = SocketOptionLevel.Ip; IP_OPTIONS = SocketOptionName.IPOptions; IP_HDRINCL = SocketOptionName.HeaderIncluded; IP_TOS = SocketOptionName.TypeOfService; { set/get IP Type Of Service } IP_TTL = SocketOptionName.IpTimeToLive; { set/get IP Time To Live } IP_MULTICAST_IF = SocketOptionName.MulticastInterface; { set/get IP multicast interface } IP_MULTICAST_TTL = SocketOptionName.MulticastTimeToLive; { set/get IP multicast timetolive } IP_MULTICAST_LOOP = SocketOptionName.MulticastLoopback; { set/get IP multicast loopback } IP_ADD_MEMBERSHIP = SocketOptionName.AddMembership; { add an IP group membership } IP_DROP_MEMBERSHIP = SocketOptionName.DropMembership; { drop an IP group membership } IP_DONTFRAGMENT = SocketOptionName.DontFragment; { set/get IP Don't Fragment flag } IPV6_UNICAST_HOPS = 8; // TTL IPV6_MULTICAST_IF = 9; // set/get IP multicast i/f IPV6_MULTICAST_HOPS = 10; // set/get IP multicast ttl IPV6_MULTICAST_LOOP = 11; // set/get IP multicast loopback IPV6_JOIN_GROUP = 12; // add an IP group membership IPV6_LEAVE_GROUP = 13; // drop an IP group membership SO_DEBUG = SocketOptionName.Debug; { turn on debugging info recording } SO_ACCEPTCONN = SocketOptionName.AcceptConnection; { socket has had listen() } SO_REUSEADDR = SocketOptionName.ReuseAddress; { allow local address reuse } SO_KEEPALIVE = SocketOptionName.KeepAlive; { keep connections alive } SO_DONTROUTE = SocketOptionName.DontRoute; { just use interface addresses } SO_BROADCAST = SocketOptionName.Broadcast; { permit sending of broadcast msgs } SO_USELOOPBACK = SocketOptionName.UseLoopback; { bypass hardware when possible } SO_LINGER = SocketOptionName.Linger; { linger on close if data present } SO_OOBINLINE = SocketOptionName.OutOfBandInline; { leave received OOB data in line } SO_DONTLINGER = SocketOptionName.DontLinger; { Additional options. } SO_SNDBUF = SocketOptionName.SendBuffer; { send buffer size } SO_RCVBUF = SocketOptionName.ReceiveBuffer; { receive buffer size } SO_SNDLOWAT = SocketOptionName.SendLowWater; { send low-water mark } SO_RCVLOWAT = SocketOptionName.ReceiveLowWater; { receive low-water mark } SO_SNDTIMEO = SocketOptionName.SendTimeout; { send timeout } SO_RCVTIMEO = SocketOptionName.ReceiveTimeout; { receive timeout } SO_ERROR = SocketOptionName.Error; { get error status and clear } SO_TYPE = SocketOptionName.Type; { get socket type } { WinSock 2 extension -- new options } // SO_GROUP_ID = $2001; { ID of a socket group} // SO_GROUP_PRIORITY = $2002; { the relative priority within a group} // SO_MAX_MSG_SIZE = $2003; { maximum message size } // SO_PROTOCOL_INFOA = $2004; { WSAPROTOCOL_INFOA structure } // SO_PROTOCOL_INFOW = $2005; { WSAPROTOCOL_INFOW structure } // SO_PROTOCOL_INFO = SO_PROTOCOL_INFOA; // PVD_CONFIG = $3001; {configuration info for service provider } { Option for opening sockets for synchronous access. } // SO_OPENTYPE = $7008; // SO_SYNCHRONOUS_ALERT = $10; // SO_SYNCHRONOUS_NONALERT = $20; { Other NT-specific options. } // SO_MAXDG = $7009; // SO_MAXPATHDG = $700A; // SO_UPDATE_ACCEPT_CONTEXT = $700B; // SO_CONNECT_TIME = $700C; { All Windows Sockets error constants are biased by WSABASEERR from the "normal" } WSABASEERR = 10000; { Windows Sockets definitions of regular Microsoft C error constants } WSAEINTR = (WSABASEERR+4); WSAEBADF = (WSABASEERR+9); WSAEACCES = (WSABASEERR+13); WSAEFAULT = (WSABASEERR+14); WSAEINVAL = (WSABASEERR+22); WSAEMFILE = (WSABASEERR+24); { Windows Sockets definitions of regular Berkeley error constants } WSAEWOULDBLOCK = (WSABASEERR+35); WSAEINPROGRESS = (WSABASEERR+36); WSAEALREADY = (WSABASEERR+37); WSAENOTSOCK = (WSABASEERR+38); WSAEDESTADDRREQ = (WSABASEERR+39); WSAEMSGSIZE = (WSABASEERR+40); WSAEPROTOTYPE = (WSABASEERR+41); WSAENOPROTOOPT = (WSABASEERR+42); WSAEPROTONOSUPPORT = (WSABASEERR+43); WSAESOCKTNOSUPPORT = (WSABASEERR+44); WSAEOPNOTSUPP = (WSABASEERR+45); WSAEPFNOSUPPORT = (WSABASEERR+46); WSAEAFNOSUPPORT = (WSABASEERR+47); WSAEADDRINUSE = (WSABASEERR+48); WSAEADDRNOTAVAIL = (WSABASEERR+49); WSAENETDOWN = (WSABASEERR+50); WSAENETUNREACH = (WSABASEERR+51); WSAENETRESET = (WSABASEERR+52); WSAECONNABORTED = (WSABASEERR+53); WSAECONNRESET = (WSABASEERR+54); WSAENOBUFS = (WSABASEERR+55); WSAEISCONN = (WSABASEERR+56); WSAENOTCONN = (WSABASEERR+57); WSAESHUTDOWN = (WSABASEERR+58); WSAETOOMANYREFS = (WSABASEERR+59); WSAETIMEDOUT = (WSABASEERR+60); WSAECONNREFUSED = (WSABASEERR+61); WSAELOOP = (WSABASEERR+62); WSAENAMETOOLONG = (WSABASEERR+63); WSAEHOSTDOWN = (WSABASEERR+64); WSAEHOSTUNREACH = (WSABASEERR+65); WSAENOTEMPTY = (WSABASEERR+66); WSAEPROCLIM = (WSABASEERR+67); WSAEUSERS = (WSABASEERR+68); WSAEDQUOT = (WSABASEERR+69); WSAESTALE = (WSABASEERR+70); WSAEREMOTE = (WSABASEERR+71); { Extended Windows Sockets error constant definitions } WSASYSNOTREADY = (WSABASEERR+91); WSAVERNOTSUPPORTED = (WSABASEERR+92); WSANOTINITIALISED = (WSABASEERR+93); WSAEDISCON = (WSABASEERR+101); WSAENOMORE = (WSABASEERR+102); WSAECANCELLED = (WSABASEERR+103); WSAEEINVALIDPROCTABLE = (WSABASEERR+104); WSAEINVALIDPROVIDER = (WSABASEERR+105); WSAEPROVIDERFAILEDINIT = (WSABASEERR+106); WSASYSCALLFAILURE = (WSABASEERR+107); WSASERVICE_NOT_FOUND = (WSABASEERR+108); WSATYPE_NOT_FOUND = (WSABASEERR+109); WSA_E_NO_MORE = (WSABASEERR+110); WSA_E_CANCELLED = (WSABASEERR+111); WSAEREFUSED = (WSABASEERR+112); { Error return codes from gethostbyname() and gethostbyaddr() (when using the resolver). Note that these errors are retrieved via WSAGetLastError() and must therefore follow the rules for avoiding clashes with error numbers from specific implementations or language run-time systems. For this reason the codes are based at WSABASEERR+1001. Note also that [WSA]NO_ADDRESS is defined only for compatibility purposes. } { Authoritative Answer: Host not found } WSAHOST_NOT_FOUND = (WSABASEERR+1001); HOST_NOT_FOUND = WSAHOST_NOT_FOUND; { Non-Authoritative: Host not found, or SERVERFAIL } WSATRY_AGAIN = (WSABASEERR+1002); TRY_AGAIN = WSATRY_AGAIN; { Non recoverable errors, FORMERR, REFUSED, NOTIMP } WSANO_RECOVERY = (WSABASEERR+1003); NO_RECOVERY = WSANO_RECOVERY; { Valid name, no data record of requested type } WSANO_DATA = (WSABASEERR+1004); NO_DATA = WSANO_DATA; { no address, look for MX record } WSANO_ADDRESS = WSANO_DATA; NO_ADDRESS = WSANO_ADDRESS; EWOULDBLOCK = WSAEWOULDBLOCK; EINPROGRESS = WSAEINPROGRESS; EALREADY = WSAEALREADY; ENOTSOCK = WSAENOTSOCK; EDESTADDRREQ = WSAEDESTADDRREQ; EMSGSIZE = WSAEMSGSIZE; EPROTOTYPE = WSAEPROTOTYPE; ENOPROTOOPT = WSAENOPROTOOPT; EPROTONOSUPPORT = WSAEPROTONOSUPPORT; ESOCKTNOSUPPORT = WSAESOCKTNOSUPPORT; EOPNOTSUPP = WSAEOPNOTSUPP; EPFNOSUPPORT = WSAEPFNOSUPPORT; EAFNOSUPPORT = WSAEAFNOSUPPORT; EADDRINUSE = WSAEADDRINUSE; EADDRNOTAVAIL = WSAEADDRNOTAVAIL; ENETDOWN = WSAENETDOWN; ENETUNREACH = WSAENETUNREACH; ENETRESET = WSAENETRESET; ECONNABORTED = WSAECONNABORTED; ECONNRESET = WSAECONNRESET; ENOBUFS = WSAENOBUFS; EISCONN = WSAEISCONN; ENOTCONN = WSAENOTCONN; ESHUTDOWN = WSAESHUTDOWN; ETOOMANYREFS = WSAETOOMANYREFS; ETIMEDOUT = WSAETIMEDOUT; ECONNREFUSED = WSAECONNREFUSED; ELOOP = WSAELOOP; ENAMETOOLONG = WSAENAMETOOLONG; EHOSTDOWN = WSAEHOSTDOWN; EHOSTUNREACH = WSAEHOSTUNREACH; ENOTEMPTY = WSAENOTEMPTY; EPROCLIM = WSAEPROCLIM; EUSERS = WSAEUSERS; EDQUOT = WSAEDQUOT; ESTALE = WSAESTALE; EREMOTE = WSAEREMOTE; type TVarSin = IPEndpoint; { function IN6_IS_ADDR_UNSPECIFIED(const a: PInAddr6): boolean; function IN6_IS_ADDR_LOOPBACK(const a: PInAddr6): boolean; function IN6_IS_ADDR_LINKLOCAL(const a: PInAddr6): boolean; function IN6_IS_ADDR_SITELOCAL(const a: PInAddr6): boolean; function IN6_IS_ADDR_MULTICAST(const a: PInAddr6): boolean; function IN6_ADDR_EQUAL(const a: PInAddr6; const b: PInAddr6):boolean; procedure SET_IN6_IF_ADDR_ANY (const a: PInAddr6); procedure SET_LOOPBACK_ADDR6 (const a: PInAddr6); var in6addr_any, in6addr_loopback : TInAddr6; } {procedure FD_CLR(Socket: TSocket; var FDSet: TFDSet); function FD_ISSET(Socket: TSocket; var FDSet: TFDSet): Boolean; procedure FD_SET(Socket: TSocket; var FDSet: TFDSet); procedure FD_ZERO(var FDSet: TFDSet); } {=============================================================================} function WSAStartup(wVersionRequired: Word; var WSData: TWSAData): Integer; function WSACleanup: Integer; function WSAGetLastError: Integer; function WSAGetLastErrorDesc: String; function GetHostName: string; function Shutdown(s: TSocket; how: Integer): Integer; // function SetSockOpt(s: TSocket; level, optname: Integer; optval: PChar; // optlen: Integer): Integer; function SetSockOpt(s: TSocket; level, optname: Integer; optval: TMemory; optlen: Integer): Integer; function SetSockOptObj(s: TSocket; level, optname: Integer; optval: TObject): Integer; function GetSockOpt(s: TSocket; level, optname: Integer; optval: TMemory; var optlen: Integer): Integer; // function SendTo(s: TSocket; const Buf; len, flags: Integer; addrto: PSockAddr; // tolen: Integer): Integer; /// function SendTo(s: TSocket; const Buf; len, flags: Integer; addrto: TVarSin): Integer; /// function Send(s: TSocket; const Buf; len, flags: Integer): Integer; /// function Recv(s: TSocket; var Buf; len, flags: Integer): Integer; // function RecvFrom(s: TSocket; var Buf; len, flags: Integer; from: PSockAddr; // var fromlen: Integer): Integer; /// function RecvFrom(s: TSocket; var Buf; len, flags: Integer; from: TVarSin): Integer; function Send(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; function Recv(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; function SendTo(s: TSocket; Buf: TMemory; len, flags: Integer; addrto: TVarSin): Integer; function RecvFrom(s: TSocket; Buf: TMemory; len, flags: Integer; var from: TVarSin): Integer; function ntohs(netshort: u_short): u_short; function ntohl(netlong: u_long): u_long; function Listen(s: TSocket; backlog: Integer): Integer; function IoctlSocket(s: TSocket; cmd: DWORD; var arg: integer): Integer; function htons(hostshort: u_short): u_short; function htonl(hostlong: u_long): u_long; // function GetSockName(s: TSocket; name: PSockAddr; var namelen: Integer): Integer; function GetSockName(s: TSocket; var name: TVarSin): Integer; // function GetPeerName(s: TSocket; name: PSockAddr; var namelen: Integer): Integer; function GetPeerName(s: TSocket; var name: TVarSin): Integer; // function Connect(s: TSocket; name: PSockAddr; namelen: Integer): Integer; function Connect(s: TSocket; const name: TVarSin): Integer; function CloseSocket(s: TSocket): Integer; // function Bind(s: TSocket; addr: PSockAddr; namelen: Integer): Integer; function Bind(s: TSocket; const addr: TVarSin): Integer; // function Accept(s: TSocket; addr: PSockAddr; var addrlen: Integer): TSocket; function Accept(s: TSocket; var addr: TVarSin): TSocket; function Socket(af, Struc, Protocol: Integer): TSocket; // Select = function(nfds: Integer; readfds, writefds, exceptfds: PFDSet; // timeout: PTimeVal): Longint; // {$IFDEF LINUX}cdecl{$ELSE}stdcall{$ENDIF}; // TWSAIoctl = function (s: TSocket; dwIoControlCode: DWORD; lpvInBuffer: Pointer; // cbInBuffer: DWORD; lpvOutBuffer: Pointer; cbOutBuffer: DWORD; // lpcbBytesReturned: PDWORD; lpOverlapped: Pointer; // lpCompletionRoutine: pointer): u_int; // stdcall; function GetPortService(value: string): integer; function IsNewApi(Family: TAddrFamily): Boolean; function SetVarSin(var Sin: TVarSin; IP, Port: string; Family: TAddrFamily; SockProtocol, SockType: integer; PreferIP4: Boolean): integer; function GetSinIP(Sin: TVarSin): string; function GetSinPort(Sin: TVarSin): Integer; procedure ResolveNameToIP(Name: string; Family: TAddrFamily; SockProtocol, SockType: integer; const IPList: TStrings); function ResolveIPToName(IP: string; Family: TAddrFamily; SockProtocol, SockType: integer): string; function ResolvePort(Port: string; Family: TAddrFamily; SockProtocol, SockType: integer): Word; var SynSockCS: SyncObjs.TCriticalSection; SockEnhancedApi: Boolean; SockWship6Api: Boolean; {==============================================================================} implementation threadvar WSALastError: integer; WSALastErrorDesc: string; var services: Array [0..139, 0..1] of string = ( ('echo', '7'), ('discard', '9'), ('sink', '9'), ('null', '9'), ('systat', '11'), ('users', '11'), ('daytime', '13'), ('qotd', '17'), ('quote', '17'), ('chargen', '19'), ('ttytst', '19'), ('source', '19'), ('ftp-data', '20'), ('ftp', '21'), ('telnet', '23'), ('smtp', '25'), ('mail', '25'), ('time', '37'), ('timeserver', '37'), ('rlp', '39'), ('nameserver', '42'), ('name', '42'), ('nickname', '43'), ('whois', '43'), ('domain', '53'), ('bootps', '67'), ('dhcps', '67'), ('bootpc', '68'), ('dhcpc', '68'), ('tftp', '69'), ('gopher', '70'), ('finger', '79'), ('http', '80'), ('www', '80'), ('www-http', '80'), ('kerberos', '88'), ('hostname', '101'), ('hostnames', '101'), ('iso-tsap', '102'), ('rtelnet', '107'), ('pop2', '109'), ('postoffice', '109'), ('pop3', '110'), ('sunrpc', '111'), ('rpcbind', '111'), ('portmap', '111'), ('auth', '113'), ('ident', '113'), ('tap', '113'), ('uucp-path', '117'), ('nntp', '119'), ('usenet', '119'), ('ntp', '123'), ('epmap', '135'), ('loc-srv', '135'), ('netbios-ns', '137'), ('nbname', '137'), ('netbios-dgm', '138'), ('nbdatagram', '138'), ('netbios-ssn', '139'), ('nbsession', '139'), ('imap', '143'), ('imap4', '143'), ('pcmail-srv', '158'), ('snmp', '161'), ('snmptrap', '162'), ('snmp-trap', '162'), ('print-srv', '170'), ('bgp', '179'), ('irc', '194'), ('ipx', '213'), ('ldap', '389'), ('https', '443'), ('mcom', '443'), ('microsoft-ds', '445'), ('kpasswd', '464'), ('isakmp', '500'), ('ike', '500'), ('exec', '512'), ('biff', '512'), ('comsat', '512'), ('login', '513'), ('who', '513'), ('whod', '513'), ('cmd', '514'), ('shell', '514'), ('syslog', '514'), ('printer', '515'), ('spooler', '515'), ('talk', '517'), ('ntalk', '517'), ('efs', '520'), ('router', '520'), ('route', '520'), ('routed', '520'), ('timed', '525'), ('timeserver', '525'), ('tempo', '526'), ('newdate', '526'), ('courier', '530'), ('rpc', '530'), ('conference', '531'), ('chat', '531'), ('netnews', '532'), ('readnews', '532'), ('netwall', '533'), ('uucp', '540'), ('uucpd', '540'), ('klogin', '543'), ('kshell', '544'), ('krcmd', '544'), ('new-rwho', '550'), ('new-who', '550'), ('remotefs', '556'), ('rfs', '556'), ('rfs_server', '556'), ('rmonitor', '560'), ('rmonitord', '560'), ('monitor', '561'), ('ldaps', '636'), ('sldap', '636'), ('doom', '666'), ('kerberos-adm', '749'), ('kerberos-iv', '750'), ('kpop', '1109'), ('phone', '1167'), ('ms-sql-s', '1433'), ('ms-sql-m', '1434'), ('wins', '1512'), ('ingreslock', '1524'), ('ingres', '1524'), ('l2tp', '1701'), ('pptp', '1723'), ('radius', '1812'), ('radacct', '1813'), ('nfsd', '2049'), ('nfs', '2049'), ('knetd', '2053'), ('gds_db', '3050'), ('man', '9535') ); {function IN6_IS_ADDR_UNSPECIFIED(const a: PInAddr6): boolean; begin Result := ((a^.s_un_dw.s_dw1 = 0) and (a^.s_un_dw.s_dw2 = 0) and (a^.s_un_dw.s_dw3 = 0) and (a^.s_un_dw.s_dw4 = 0)); end; function IN6_IS_ADDR_LOOPBACK(const a: PInAddr6): boolean; begin Result := ((a^.s_un_dw.s_dw1 = 0) and (a^.s_un_dw.s_dw2 = 0) and (a^.s_un_dw.s_dw3 = 0) and (a^.s_un_b.s_b13 = char(0)) and (a^.s_un_b.s_b14 = char(0)) and (a^.s_un_b.s_b15 = char(0)) and (a^.s_un_b.s_b16 = char(1))); end; function IN6_IS_ADDR_LINKLOCAL(const a: PInAddr6): boolean; begin Result := ((a^.s_un_b.s_b1 = u_char($FE)) and (a^.s_un_b.s_b2 = u_char($80))); end; function IN6_IS_ADDR_SITELOCAL(const a: PInAddr6): boolean; begin Result := ((a^.s_un_b.s_b1 = u_char($FE)) and (a^.s_un_b.s_b2 = u_char($C0))); end; function IN6_IS_ADDR_MULTICAST(const a: PInAddr6): boolean; begin Result := (a^.s_un_b.s_b1 = char($FF)); end; function IN6_ADDR_EQUAL(const a: PInAddr6; const b: PInAddr6): boolean; begin Result := (CompareMem( a, b, sizeof(TInAddr6))); end; procedure SET_IN6_IF_ADDR_ANY (const a: PInAddr6); begin FillChar(a^, sizeof(TInAddr6), 0); end; procedure SET_LOOPBACK_ADDR6 (const a: PInAddr6); begin FillChar(a^, sizeof(TInAddr6), 0); a^.s_un_b.s_b16 := char(1); end; } {=============================================================================} procedure NullErr; begin WSALastError := 0; WSALastErrorDesc := ''; end; procedure GetErrCode(E: System.Exception); var SE: System.Net.Sockets.SocketException; begin if E is System.Net.Sockets.SocketException then begin SE := E as System.Net.Sockets.SocketException; WSALastError := SE.ErrorCode; WSALastErrorDesc := SE.Message; end end; function WSAStartup(wVersionRequired: Word; var WSData: TWSAData): Integer; begin NullErr; with WSData do begin wVersion := wVersionRequired; wHighVersion := $202; szDescription := 'Synsock - Synapse Platform Independent Socket Layer'; szSystemStatus := 'Running on .NET'; iMaxSockets := 32768; iMaxUdpDg := 8192; end; Result := 0; end; function WSACleanup: Integer; begin NullErr; Result := 0; end; function WSAGetLastError: Integer; begin Result := WSALastError; end; function WSAGetLastErrorDesc: String; begin Result := WSALastErrorDesc; end; function GetHostName: string; begin Result := System.Net.DNS.GetHostName; end; function Shutdown(s: TSocket; how: Integer): Integer; begin Result := 0; NullErr; try s.ShutDown(SocketShutdown(how)); except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; function SetSockOpt(s: TSocket; level, optname: Integer; optval: Tmemory; optlen: Integer): Integer; begin Result := 0; NullErr; try s.SetSocketOption(SocketOptionLevel(level), SocketOptionName(optname), optval); except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; function SetSockOptObj(s: TSocket; level, optname: Integer; optval: TObject): Integer; begin Result := 0; NullErr; try s.SetSocketOption(SocketOptionLevel(level), SocketOptionName(optname), optval); except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; function GetSockOpt(s: TSocket; level, optname: Integer; optval: Tmemory; var optlen: Integer): Integer; begin Result := 0; NullErr; try s.GetSocketOption(SocketOptionLevel(level), SocketOptionName(optname), optval); except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; function SendTo(s: TSocket; Buf: TMemory; len, flags: Integer; addrto: TVarSin): Integer; //function SendTo(s: TSocket; const Buf; len, flags: Integer; addrto: TVarSin): Integer; begin NullErr; try result := s.SendTo(Buf, len, SocketFlags(flags), addrto); except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; function Send(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; //function Send(s: TSocket; const Buf; len, flags: Integer): Integer; begin NullErr; try result := s.Send(Buf, len, SocketFlags(flags)); except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; function Recv(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; //function Recv(s: TSocket; var Buf; len, flags: Integer): Integer; begin NullErr; try result := s.Receive(Buf, len, SocketFlags(flags)); except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; //function RecvFrom(s: TSocket; var Buf; len, flags: Integer; from: PSockAddr; // var fromlen: Integer): Integer; function RecvFrom(s: TSocket; Buf: TMemory; len, flags: Integer; var from: TVarSin): Integer; //function RecvFrom(s: TSocket; var Buf; len, flags: Integer; from: TVarSin): Integer; var EP: EndPoint; begin NullErr; try EP := from; result := s.ReceiveFrom(Buf, len, SocketFlags(flags), EndPoint(EP)); from := EP as IPEndPoint; except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; function ntohs(netshort: u_short): u_short; begin Result := IPAddress.NetworkToHostOrder(NetShort); end; function ntohl(netlong: u_long): u_long; begin Result := IPAddress.NetworkToHostOrder(NetLong); end; function Listen(s: TSocket; backlog: Integer): Integer; begin Result := 0; NullErr; try s.Listen(backlog); except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; function IoctlSocket(s: TSocket; cmd: DWORD; var arg: integer): Integer; var inv, outv: TMemory; begin Result := 0; NullErr; try if cmd = DWORD(FIONBIO) then s.Blocking := arg = 0 else begin inv := BitConverter.GetBytes(arg); outv := BitConverter.GetBytes(integer(0)); s.IOControl(cmd, inv, outv); arg := BitConverter.ToInt32(outv, 0); end; except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; function htons(hostshort: u_short): u_short; begin Result := IPAddress.HostToNetworkOrder(Hostshort); end; function htonl(hostlong: u_long): u_long; begin Result := IPAddress.HostToNetworkOrder(HostLong); end; //function GetSockName(s: TSocket; name: PSockAddr; var namelen: Integer): Integer; function GetSockName(s: TSocket; var name: TVarSin): Integer; begin Result := 0; NullErr; try Name := s.localEndPoint as IPEndpoint; except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; //function GetPeerName(s: TSocket; name: PSockAddr; var namelen: Integer): Integer; function GetPeerName(s: TSocket; var name: TVarSin): Integer; begin Result := 0; NullErr; try Name := s.RemoteEndPoint as IPEndpoint; except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; //function Connect(s: TSocket; name: PSockAddr; namelen: Integer): Integer; function Connect(s: TSocket; const name: TVarSin): Integer; begin Result := 0; NullErr; try s.Connect(name); except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; function CloseSocket(s: TSocket): Integer; begin Result := 0; NullErr; try s.Close; except on e: System.Net.Sockets.SocketException do begin Result := integer(SOCKET_ERROR); end; end; end; //function Bind(s: TSocket; addr: PSockAddr; namelen: Integer): Integer; function Bind(s: TSocket; const addr: TVarSin): Integer; begin Result := 0; NullErr; try s.Bind(addr); except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := integer(SOCKET_ERROR); end; end; end; //function Accept(s: TSocket; addr: PSockAddr; var addrlen: Integer): TSocket; function Accept(s: TSocket; var addr: TVarSin): TSocket; begin NullErr; try result := s.Accept(); except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := nil; end; end; end; function Socket(af, Struc, Protocol: Integer): TSocket; begin NullErr; try result := TSocket.Create(AddressFamily(af), SocketType(Struc), ProtocolType(Protocol)); except on e: System.Net.Sockets.SocketException do begin GetErrCode(e); Result := nil; end; end; end; {=============================================================================} function GetPortService(value: string): integer; var n: integer; begin Result := 0; value := Lowercase(value); for n := 0 to High(Services) do if services[n, 0] = value then begin Result := strtointdef(services[n, 1], 0); break; end; if Result = 0 then Result := StrToIntDef(value, 0); end; {=============================================================================} function IsNewApi(Family: TAddrFamily): Boolean; begin Result := true; end; function SetVarSin(var Sin: TVarSin; IP, Port: string; Family: TAddrFamily; SockProtocol, SockType: integer; PreferIP4: Boolean): integer; var IPs: array of IPAddress; n: integer; ip4, ip6: string; sip: string; begin sip := ''; ip4 := ''; ip6 := ''; IPs := Dns.Resolve(IP).AddressList; for n :=low(IPs) to high(IPs) do begin if (ip4 = '') and (IPs[n].AddressFamily = AF_INET) then ip4 := IPs[n].toString; if (ip6 = '') and (IPs[n].AddressFamily = AF_INET6) then ip6 := IPs[n].toString; if (ip4 <> '') and (ip6 <> '') then break; end; case Family of AF_UNSPEC: begin if (ip4 <> '') and (ip6 <> '') then begin if PreferIP4 then sip := ip4 else Sip := ip6; end else begin sip := ip4; if (ip6 <> '') then sip := ip6; end; end; AF_INET: sip := ip4; AF_INET6: sip := ip6; end; sin := TVarSin.Create(IPAddress.Parse(sip), GetPortService(Port)); end; function GetSinIP(Sin: TVarSin): string; begin Result := Sin.Address.ToString; end; function GetSinPort(Sin: TVarSin): Integer; begin Result := Sin.Port; end; procedure ResolveNameToIP(Name: string; Family: TAddrFamily; SockProtocol, SockType: integer; const IPList: TStrings); var IPs :array of IPAddress; n: integer; begin IPList.Clear; IPs := Dns.Resolve(Name).AddressList; for n := low(IPs) to high(IPs) do begin if not(((Family = AF_INET6) and (IPs[n].AddressFamily = AF_INET)) or ((Family = AF_INET) and (IPs[n].AddressFamily = AF_INET6))) then begin IPList.Add(IPs[n].toString); end; end; end; function ResolvePort(Port: string; Family: TAddrFamily; SockProtocol, SockType: integer): Word; var n: integer; begin Result := StrToIntDef(port, 0); if Result = 0 then begin port := Lowercase(port); for n := 0 to High(Services) do if services[n, 0] = port then begin Result := strtointdef(services[n, 1], 0); break; end; end; end; function ResolveIPToName(IP: string; Family: TAddrFamily; SockProtocol, SockType: integer): string; begin Result := Dns.GetHostByAddress(IP).HostName; end; {=============================================================================} function InitSocketInterface(stack: string): Boolean; begin Result := True; end; function DestroySocketInterface: Boolean; begin NullErr; Result := True; end; initialization begin SynSockCS := SyncObjs.TCriticalSection.Create; // SET_IN6_IF_ADDR_ANY (@in6addr_any); // SET_LOOPBACK_ADDR6 (@in6addr_loopback); end; finalization begin NullErr; SynSockCS.Free; end; {$ENDIF} �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./asn1util.pas��������������������������������������������������������������������������������������0000644�0001750�0001750�00000036415�14576573021�013425� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{==============================================================================| | Project : Ararat Synapse | 002.001.000 | |==============================================================================| | Content: support for ASN.1 BER coding and decoding | |==============================================================================| | Copyright (c)1999-2014, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c) 1999-2014 | | Portions created by Hernan Sanchez are Copyright (c) 2000. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | | Hernan Sanchez (hernan.sanchez@iname.com) | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {: @abstract(Utilities for handling ASN.1 BER encoding) By this unit you can parse ASN.1 BER encoded data to elements or build back any elements to ASN.1 BER encoded buffer. You can dump ASN.1 BER encoded data to human readable form for easy debugging, too. Supported element types are: ASN1_BOOL, ASN1_INT, ASN1_OCTSTR, ASN1_NULL, ASN1_OBJID, ASN1_ENUM, ASN1_SEQ, ASN1_SETOF, ASN1_IPADDR, ASN1_COUNTER, ASN1_GAUGE, ASN1_TIMETICKS, ASN1_OPAQUE For sample of using, look to @link(TSnmpSend) or @link(TLdapSend)class. } {$Q-} {$H+} {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$IFDEF UNICODE} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$ENDIF} unit asn1util; interface uses SysUtils, Classes, synautil; const ASN1_BOOL = $01; ASN1_INT = $02; ASN1_OCTSTR = $04; ASN1_NULL = $05; ASN1_OBJID = $06; ASN1_ENUM = $0a; ASN1_SEQ = $30; ASN1_SETOF = $31; ASN1_IPADDR = $40; ASN1_COUNTER = $41; ASN1_GAUGE = $42; ASN1_TIMETICKS = $43; ASN1_OPAQUE = $44; ASN1_COUNTER64 = $46; {:Encodes OID item to binary form.} function ASNEncOIDItem(Value: Int64): AnsiString; {:Decodes an OID item of the next element in the "Buffer" from the "Start" position.} function ASNDecOIDItem(var Start: Integer; const Buffer: AnsiString): Int64; {:Encodes the length of ASN.1 element to binary.} function ASNEncLen(Len: Integer): AnsiString; {:Decodes length of next element in "Buffer" from the "Start" position.} function ASNDecLen(var Start: Integer; const Buffer: AnsiString): Integer; {:Encodes a signed integer to ASN.1 binary} function ASNEncInt(Value: Int64): AnsiString; {:Encodes unsigned integer into ASN.1 binary} function ASNEncUInt(Value: Integer): AnsiString; {:Encodes ASN.1 object to binary form.} function ASNObject(const Data: AnsiString; ASNType: Integer): AnsiString; {:Beginning with the "Start" position, decode the ASN.1 item of the next element in "Buffer". Type of item is stored in "ValueType."} function ASNItem(var Start: Integer; const Buffer: AnsiString; var ValueType: Integer): AnsiString; {:Encodes an MIB OID string to binary form.} function MibToId(Mib: String): AnsiString; {:Decodes MIB OID from binary form to string form.} function IdToMib(const Id: AnsiString): String; {:Encodes an one number from MIB OID to binary form. (used internally from @link(MibToId))} function IntMibToStr(const Value: AnsiString): AnsiString; {:Convert ASN.1 BER encoded buffer to human readable form for debugging.} function ASNdump(const Value: AnsiString): AnsiString; implementation {==============================================================================} function ASNEncOIDItem(Value: Int64): AnsiString; var x: Int64; xm: Byte; b: Boolean; begin x := Value; b := False; Result := ''; repeat xm := x mod 128; x := x div 128; if b then xm := xm or $80; if x > 0 then b := True; Result := AnsiChar(xm) + Result; until x = 0; end; {==============================================================================} function ASNDecOIDItem(var Start: Integer; const Buffer: AnsiString): Int64; var x: Integer; b: Boolean; begin Result := 0; repeat Result := Result * 128; x := Ord(Buffer[Start]); Inc(Start); b := x > $7F; x := x and $7F; Result := Result + x; until not b; end; {==============================================================================} function ASNEncLen(Len: Integer): AnsiString; var x, y: Integer; begin if Len < $80 then Result := AnsiChar(Len) else begin x := Len; Result := ''; repeat y := x mod 256; x := x div 256; Result := AnsiChar(y) + Result; until x = 0; y := Length(Result); y := y or $80; Result := AnsiChar(y) + Result; end; end; {==============================================================================} function ASNDecLen(var Start: Integer; const Buffer: AnsiString): Integer; var x, n: Integer; begin x := Ord(Buffer[Start]); Inc(Start); if x < $80 then Result := x else begin Result := 0; x := x and $7F; for n := 1 to x do begin Result := Result * 256; x := Ord(Buffer[Start]); Inc(Start); Result := Result + x; end; end; end; {==============================================================================} function ASNEncInt(Value: Int64): AnsiString; var x: Int64; y: byte; neg: Boolean; begin neg := Value < 0; x := Abs(Value); if neg then x := x - 1; Result := ''; repeat y := x mod 256; x := x div 256; if neg then y := not y; Result := AnsiChar(y) + Result; until x = 0; if (not neg) and (Result[1] > #$7F) then Result := #0 + Result; if (neg) and (Result[1] < #$80) then Result := #$FF + Result; end; {==============================================================================} function ASNEncUInt(Value: Integer): AnsiString; var x, y: Integer; neg: Boolean; begin neg := Value < 0; x := Value; if neg then x := x and $7FFFFFFF; Result := ''; repeat y := x mod 256; x := x div 256; Result := AnsiChar(y) + Result; until x = 0; if neg then Result[1] := AnsiChar(Ord(Result[1]) or $80); end; {==============================================================================} function ASNObject(const Data: AnsiString; ASNType: Integer): AnsiString; begin Result := AnsiChar(ASNType) + ASNEncLen(Length(Data)) + Data; end; {==============================================================================} function ASNItem(var Start: Integer; const Buffer: AnsiString; var ValueType: Integer): AnsiString; var ASNType: Integer; ASNSize: Integer; y: int64; n: Integer; x: byte; s: AnsiString; c: AnsiChar; neg: Boolean; l: Integer; begin Result := ''; ValueType := ASN1_NULL; l := Length(Buffer); if l < (Start + 1) then Exit; ASNType := Ord(Buffer[Start]); ValueType := ASNType; Inc(Start); ASNSize := ASNDecLen(Start, Buffer); if (Start + ASNSize - 1) > l then Exit; if (ASNType and $20) > 0 then // Result := '$' + IntToHex(ASNType, 2) Result := Copy(Buffer, Start, ASNSize) else case ASNType of ASN1_INT, ASN1_ENUM, ASN1_BOOL: begin y := 0; neg := False; for n := 1 to ASNSize do begin x := Ord(Buffer[Start]); if (n = 1) and (x > $7F) then neg := True; if neg then x := not x; y := y * 256 + x; Inc(Start); end; if neg then y := -(y + 1); Result := IntToStr(y); end; ASN1_COUNTER, ASN1_GAUGE, ASN1_TIMETICKS, ASN1_COUNTER64: begin y := 0; for n := 1 to ASNSize do begin y := y * 256 + Ord(Buffer[Start]); Inc(Start); end; Result := IntToStr(y); end; ASN1_OCTSTR, ASN1_OPAQUE: begin for n := 1 to ASNSize do begin c := AnsiChar(Buffer[Start]); Inc(Start); s := s + c; end; Result := s; end; ASN1_OBJID: begin for n := 1 to ASNSize do begin c := AnsiChar(Buffer[Start]); Inc(Start); s := s + c; end; Result := IdToMib(s); end; ASN1_IPADDR: begin s := ''; for n := 1 to ASNSize do begin if (n <> 1) then s := s + '.'; y := Ord(Buffer[Start]); Inc(Start); s := s + IntToStr(y); end; Result := s; end; ASN1_NULL: begin Result := ''; Start := Start + ASNSize; end; else // unknown begin for n := 1 to ASNSize do begin c := AnsiChar(Buffer[Start]); Inc(Start); s := s + c; end; Result := s; end; end; end; {==============================================================================} function MibToId(Mib: String): AnsiString; var x: Integer; function WalkInt(var s: String): Integer; var x: Integer; t: AnsiString; begin x := Pos('.', s); if x < 1 then begin t := s; s := ''; end else begin t := Copy(s, 1, x - 1); s := Copy(s, x + 1, Length(s) - x); end; Result := StrToIntDef(t, 0); end; begin Result := ''; x := WalkInt(Mib); x := x * 40 + WalkInt(Mib); Result := ASNEncOIDItem(x); while Mib <> '' do begin x := WalkInt(Mib); Result := Result + ASNEncOIDItem(x); end; end; {==============================================================================} function IdToMib(const Id: AnsiString): String; var x, y, n: Integer; begin Result := ''; n := 1; while Length(Id) + 1 > n do begin x := ASNDecOIDItem(n, Id); if (n - 1) = 1 then begin y := x div 40; x := x mod 40; Result := IntToStr(y); end; Result := Result + '.' + IntToStr(x); end; end; {==============================================================================} function IntMibToStr(const Value: AnsiString): AnsiString; var n, y: Integer; begin y := 0; for n := 1 to Length(Value) - 1 do y := y * 256 + Ord(Value[n]); Result := IntToStr(y); end; {==============================================================================} function ASNdump(const Value: AnsiString): AnsiString; var i, at, x, n: integer; s, indent: AnsiString; il: TStringList; begin il := TStringList.Create; try Result := ''; i := 1; indent := ''; while i < Length(Value) do begin for n := il.Count - 1 downto 0 do begin x := StrToIntDef(il[n], 0); if x <= i then begin il.Delete(n); Delete(indent, 1, 2); end; end; s := ASNItem(i, Value, at); Result := Result + indent + '$' + IntToHex(at, 2); if (at and $20) > 0 then begin x := Length(s); Result := Result + ' constructed: length ' + IntToStr(x); indent := indent + ' '; il.Add(IntToStr(x + i - 1)); end else begin case at of ASN1_BOOL: Result := Result + ' BOOL: '; ASN1_INT: Result := Result + ' INT: '; ASN1_ENUM: Result := Result + ' ENUM: '; ASN1_COUNTER: Result := Result + ' COUNTER: '; ASN1_GAUGE: Result := Result + ' GAUGE: '; ASN1_TIMETICKS: Result := Result + ' TIMETICKS: '; ASN1_OCTSTR: Result := Result + ' OCTSTR: '; ASN1_OPAQUE: Result := Result + ' OPAQUE: '; ASN1_OBJID: Result := Result + ' OBJID: '; ASN1_IPADDR: Result := Result + ' IPADDR: '; ASN1_NULL: Result := Result + ' NULL: '; ASN1_COUNTER64: Result := Result + ' COUNTER64: '; else // other Result := Result + ' unknown: '; end; if IsBinaryString(s) then s := DumpExStr(s); Result := Result + s; end; Result := Result + #$0d + #$0a; end; finally il.Free; end; end; {==============================================================================} end. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./editor.png����������������������������������������������������������������������������������������0000644�0001750�0001750�00000003244�14576573022�013147� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR��� ��� ���szz���sRGB���� pHYs�� �� B(x���tIME Y ���bKGD�����$IDATxڽ l?w>ď<!N!IubtPi[jiQ2 NRVhZ5ݦ k Ɗ*$ıߝn Kq.`MJ?Iߝ- od2[[g?^= 0S` 3RZmWb7 V^ӧ/XieYTn"f|^d᝺YF + Pd(JCsxX-,N$ۃTjE@pX*VD͏S8;7{Q'Z*t:k%14 `N] ȗC>c>t]ctt-.h^#N/aŗPS\ C';GG].tC#L>B }u'~~et:͊%iig'W%(;T2tXrY HuΞˀ V5 b,0:1;uo ,BV yH'6g9.y*z_Yz`z �Xp@!7~}?.Ojxm�T9Oeb;U%tr Y @W'P#{x'o'WL^k9U, �e.T(CW_ۃ[ͥ??KP@4lf(Ot:)u L^;d`PaӞd2k?౯8!Km L܄o$cx*# ؼ}�wOm2>h&|N'UUU444`(mw$u$'q3D*ggދD7�q]i5F!-/½^/pAY`&;=wE >>2@_eIjst=7;qݴ(K%8c][ʎ{C�T"<NK+\M~q n}…Bݪ,`A}8{z:]2h%]_MinijjZL0SQ`11㿥W/}sJrr_ez޼y,Z|,E1Is@^&\Q* ظR!y:$͗e\Ꮗ1t"IvtTz D l\@I i˫<*Vq8Ћ 6(|3*hT۱s'; Xf"6Rȥ"(V&Exo i innFYCÇ~GPʅ 71 ɽwsXh>nD,!:⋨D<ƋG lJu-Pߺ`}V+͜C<ұkwn̙3S)@cSB ,vSݶ Nn2%a@iSm|%d3Ύ/|E4۩,yn, "H&rϟ<qh >W$ yv`R, ����IENDB`������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./about.lrs�����������������������������������������������������������������������������������������0000644�0001750�0001750�00000350211�14576573022�013006� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ This is an automatically generated lazarus resource file } LazarusResources.Add('TForm4','FORMDATA',[ 'TPF0'#6'TForm4'#5'Form4'#4'Left'#3#211#7#6'Height'#3#30#2#3'Top'#3#205#0#5'W' +'idth'#3#208#1#11'BorderIcons'#11#0#7'Caption'#6#5'About'#12'ClientHeight'#3 +#30#2#11'ClientWidth'#3#208#1#21'Constraints.MinHeight'#3#8#2#20'Constraints' +'.MinWidth'#3#208#1#9'Icon.Data'#10#178'{'#0#0#174'{'#0#0#0#0#1#0#1#0'dd'#0#0 +#1#0#24#0#152'{'#0#0#22#0#0#0'('#0#0#0'd'#0#0#0#200#0#0#0#1#0#24#0#0#0#0#0'0' +'u'#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#5'#^'#20#18'('#0#24','#19'9s'#12'B' +#129#4'N'#132#16'O'#139#21'X'#149#7'c'#164#4':o'#3'&H'#18'-H'#21'$K'#19'<m'#6 +'U'#136#6'Q'#137#8'K'#138#9'c'#158#17'Z'#152#14'N'#142#0'Y'#148#7'Y'#147#22 +'U'#146#18'k'#164#0'D'#131#7'Au'#18'Q'#131#6'Q'#143#23'd'#163#16'O'#130#10';' +'g'#11'4a'#4'&Q'#15'0]'#9'>i'#6'7c'#16';f'#18'6Z'#18#23'8'#19#19'1'#18#16'$' +#15#13'!'#18#17'%'#17#18''''#8#13'"'#10#16''''#16#24'/'#16#23'0'#11#22'2'#12 +#23'2'#13#24'3'#16#26'2'#16#23'0'#14#22'-'#13#19'*'#11#17'('#13#14'#'#14#15 +'$'#16#17'&'#13#15''''#11#15'('#11#15'('#14#18'.'#17#21'1'#18#22'3'#10#21'1' +#11#30'9'#11'$>'#4#29'7'#8#27'6'#18#29'9'#21#25'6'#13#26':'#16#31'?'#15#30'>' +#10#28';'#13#31'>'#13'!@'#11#31'>'#7#28';'#5#31'='#12'!@'#16#31'?'#18#29'=' +#14#23'8'#11#22'6'#9#24'8'#7#27':'#9'!?'#11#31'>'#16#29'='#17#26';'#15#24'9' +#12#25'9'#11#31'>'#13'%C'#13#29':'#11#29':'#14'"A'#20',J'#22'E'#130#0#8#30#25 +'9P'#15'O'#133#6'T'#143#5'S'#136#31'^'#154#27'Z'#150#21'm'#180#1'H'#129#0'!B' +#19'!3%-J'#23'.['#11'D{'#20']'#161#6'S'#146#19']'#157#18'O'#145#7'T'#146#0'd' +#155#14'V'#146#15'K'#135#7'k'#161'!c'#158#17'J'#129#14'Q'#138#4'T'#147#4'L' +#136#9'Bo'#13'>f'#0'!Q'#9')R'#15'.['#3'8c'#0'0\'#11'5_'#14'0T'#12#14'0'#11#9 +'&'#19#15'"'#13#11#30#16#15'#'#16#17'%'#8#11' '#9#14'#'#16#22'-'#16#22'-'#11 +#22'2'#12#23'2'#14#25'4'#16#26'2'#17#24'1'#14#22'-'#12#18')'#10#16''''#14#15 +'$'#15#16'%'#15#16'%'#12#14'&'#9#13'&'#11#15'('#15#19'/'#20#24'4'#17#26'5'#9 +#22'0'#12#27'5'#14#31'9'#7#24'2'#7#22'0'#15#28'6'#18#27'6'#13#26':'#18'!A'#14 +#29'='#8#26'9'#14' ?'#14'"A'#10#30'='#8#29'<'#4' >'#12'$B'#14' ?'#18#29'='#14 +#25'9'#9#22'6'#12#30'='#11' ?'#12'$B'#12' ?'#15#30'>'#18#29'='#16#27';'#10#25 +'9'#10#30'='#14'&D'#14' ?'#12#30'='#14' ?'#18'&E!M'#131#25'>Z'#7'+I'#19'X' +#137#19'f'#154#10'S'#143#6'M'#141#20'7o'#14'H|'#19'O'#133#13'1Y'#0#18'+'#26 +'"?!+S'#22'H}'#12'S'#163#7'l'#170#22'h'#169#12'['#154#7'_'#155#7'['#149#18'P' +#140#10'A~'#4'K'#132#0'3j'#21'P'#136#16'`'#157#13'd'#166#12'L'#131#7'2Y'#9'6' +'['#9'9i'#12',U'#7'''R'#0'3\'#1'1['#9'3]'#19'6X'#23#26'9'#13#11'('#17#13' ' +#14#10#29#16#14'!'#16#15'#'#6#10#29#8#13'"'#14#21')'#14#20'+'#11#22'2'#13#24 +'3'#14#25'4'#17#27'3'#18#25'2'#14#22'-'#12#18')'#10#16''''#16#17'&'#16#17'&' +#14#15'$'#10#12'$'#7#11'$'#11#15'('#17#21'1'#22#26'6'#13#30'8'#6#21'/'#12#23 +'2'#17#26'5'#9#18'-'#6#17','#10#25'3'#11#28'6'#13#26':'#19'"B'#13#28'<'#6#24 +'7'#15'!@'#15'#B'#9#29'<'#9#30'='#5'!?'#14'&D'#14' ?'#17#30'>'#14#25'9'#10#23 +'7'#17'#B'#17'&E'#11'%C'#10#31'>'#13#28'<'#18#29'='#15#26':'#7#22'6'#6#27':' +#10'$B'#9#27':'#3#21'4'#3#18'2'#6#20'1'#18'&]'#4'7X'#16'/V'#0':g'#20'Y'#138 +#12'M'#146#0'J'#143#28#22'O'#15#19'0'#14'!T'#21'1g'#0'$L'#23'!I'#21'''L'#12 +'V'#134#0'T'#166#11'Z'#157#16'T'#151#7'W'#150#11'^'#155#14'Q'#142#19'b'#155#8 +'b'#152#6'M'#134#9';p'#17'N'#134#0'Z'#155#8'f'#168#7'=t'#14'.Q'#19'@b'#2'9l' +#29';d'#13'*V'#5'9b'#8'8b'#11'4['#23':\'#30'!@'#11#10'$'#16#13#29#13#10#26#15 +#13' '#15#14'"'#7#8#28#8#11' '#14#19'('#12#19''''#11#22'2'#13#24'3'#15#26'5' +#17#27'3'#18#25'2'#14#22'-'#12#18')'#9#15'&'#18#19'('#16#17'&'#14#15'$'#8#10 +'"'#6#10'#'#10#14''''#17#21'1'#24#28'8'#11'"8'#6#22'-'#12#22'.'#19#23'0'#12 +#16')'#5#15''''#8#24'/'#7#30'4'#13#26':'#20'#C'#12#27';'#5#23'6'#16'"A'#16'$' +'C'#9#29'<'#9#30'='#5'!?'#15'''E'#13#31'>'#17#30'>'#14#25'9'#8#23'7'#18'&E' +#21'*I'#10'$B'#9#30'='#12#27';'#15#28'<'#11#24'8'#4#19'3'#3#24'7'#7'!?'#23'+' +'J'#18'$C'#14#29'='#16#27'9'#0#22'0'#7')F'#10'-N'#10#25')'#1'=x'#11'`'#170#6 +']'#181#25'$:'#28#8#20#14#21'&'#25'3Q'#24',U'#23'$J#'#17'6'#15'7a'#12'k'#170 +#11'X'#161#5'f'#165#10'd'#155#16'k'#162#0'`'#156#14'o'#177#4'm'#176#10'Z'#161 +#0'?e'#29'Y'#141#21'e'#160#11'=w'#0#30'J'#12'9['#18'3a'#0';s'#0'>p'#0'2f'#9 +'-]'#11'/W'#21'1S'#20#28'9'#10#6#31#15#13'!'#17#11#30#15#11#30#13#11#31#11#10 +#30#7#10#31#8#15'#'#12#20'+'#15#26'0'#6#21'5'#7#22'6'#9#25'6'#11#25'6'#10#24 +'4'#9#21'1'#7#20'.'#5#18','#6#13'&'#5#12'%'#6#11'$'#5#10'#'#7#11'$'#11#12'&' +#13#14'('#15#16'*'#21'%6'#15'!8'#9#27'8'#8#19'1'#10#16''''#9#17'('#7#24'3'#3 +#31'>'#11#28'='#11#28'='#13#31'>'#15'!@'#16'"?'#14' ='#13#30'9'#12#29'8'#15 +#31'<'#19'#@'#20'"?'#14#28'9'#12#23'5'#13#23'5'#13#23'5'#12#22'4'#6' >'#9'!?' +#14'#?'#16' ='#13#24'4'#10#17','#14#18'.'#20#23'3'#5#30'>'#6#31'?'#11' @'#13 +' A'#23#19'0'#9#16'$'#3#14')'#21' ;'#21'O'#145#6'E'#127#21'U'#163#22'2h'#17 +#11#30#13#14'*'#12'.R'#27'0O'#16#27'G!''T'#1'*C'#9'J'#135#25'j'#173#8'b'#163 +#12'P'#145#19'J'#135#8'>s'#0'=o'#8'k'#159#3'e'#161#19'Gp'#15'Gx'#12'E|'#0'/c' +#9'.Z'#10'/U'#13'4`'#1'0c'#10'>m'#17':g'#7')T'#10'-O'#19')E'#12#16')'#10#8#28 ,#9#11#29#17#11#30#16#12#31#14#12' '#10#11#31#8#11' '#8#15'#'#12#20'+'#16#24 +'/'#9#23'4'#10#24'5'#12#26'7'#13#27'7'#14#26'6'#12#24'4'#10#22'2'#9#22'0'#14 +#21'.'#12#19','#13#18'+'#11#16')'#12#16')'#14#18'+'#18#19'-'#19#20'.'#23#27 +'.'#18#25'2'#12#23'5'#9#21'1'#8#20','#8#25'.'#8#31'9'#5'$C'#14'#C'#8#29'='#13 +'!@'#19'%B'#18'"?'#12#26'6'#8#20'0'#14#26'6'#8#27'6'#7#26'5'#11#28'7'#14#31 +':'#14#28'8'#12#24'4'#14#26'6'#18#30':'#6'''A'#15'-H'#17'.I'#12'%?'#7#28'7' +#10#27'5'#15#28'6'#15#27'3'#20')E'#17'&B'#15'!>'#15#29':'#0#19')'#17#18'&'#19 +#6' '#17#14'. J'#143#17#31'S'#9'"h!['#167#14'"K'#7#2'!'#11'2X'#2#27'='#1#17 +'@'#19'0\'#3'"1'#7'*b'#8'L'#135#7'Z'#152#25'c'#165#12'E|'#14'5['#4#31'A'#12 +'/['#22'4o'#24'2a'#8'/\'#5#31'N'#1'(T'#6'.X'#16')S'#14'7^'#21'2^'#17'+S'#12 +'&K'#22'1S'#25'1M'#11#23'/'#8#6#26#9#8#24#4#12#25#15#11#30#14#12#31#14#13'!' +#11#12' '#8#11' '#9#14'#'#13#19'*'#15#23'.'#10#22'2'#12#24'4'#14#26'6'#15#27 +'7'#16#28'8'#16#27'7'#15#26'6'#14#25'5'#13#23'/'#13#20'-'#10#17'*'#10#15'('#9 +#14''''#11#15'('#12#16')'#15#16'*'#19#17''''#17#22'/'#15#27'7'#10#27'6'#6#24 +'/'#7#25'0'#10#31':'#14'&D'#15'-J'#5'!?'#10'"@'#10#28'9'#7#21'1'#6#14'+'#6#13 +'('#22#26'6'#7#28'7'#7#28'7'#11#30'9'#13' ;'#12#29'8'#7#24'3'#8#22'2'#11#25 +'5'#8'%@'#12'''A'#14'''A'#14'$='#11#28'6'#9#23'.'#11#23'/'#16#27'1'#21'#:'#17 +#29'5'#12#22'.'#7#14''''#8#20','#13#18'3'#22#12'*'#15#16'%'#22'H'#132#31'4h' +#6#29'['#31'f'#176#29'O'#145#13#15'-'#21'9_'#6'&W'#21'%T'#12')P'#24'+@'#20'0' +'Y'#25'8m'#7'2k'#18'?x'#13'1_'#10'"@'#24'''A'#18'$I'#28'0`'#23#27'L'#13#31'H' +#21#27'@'#11'%I'#17'2Y'#15'%O'#11'.P'#12#30'='#13#20'5'#4#14','#27'&A'#29'(>' +#10#14'!'#7#6#22#11#13#24#10#17#26#14#12#31#14#14' '#15#14'"'#12#13'!'#9#12 +'!'#9#14'#'#12#16'('#16#20','#12#19','#11#21'-'#14#23'2'#16#25'4'#15#26'6'#16 +#27'7'#16#27'7'#16#27'7'#15#25'1'#13#23'/'#12#19','#9#16')'#9#14''''#8#13'&' +#10#14''''#11#15'('#12#18')'#15#25'1'#16#31'9'#11#31'8'#6#26'3'#8#23'1'#16#27 +'7'#24' >'#1'#@'#2' ='#12'''B'#10#29'8'#8#20'0'#12#16','#7#8'$'#15#13'*'#0#22 +'/'#7#29'6'#11'!:'#11#31'8'#12#29'7'#12#29'7'#14#29'7'#11#26'4'#11#22'1'#9#20 +'/'#11#20'/'#16#21'.'#12#16')'#8#10'"'#11#11'#'#18#16'&'#15#21'('#12#18'%'#8 +#12#31#6#7#27#18'%F'#2'&L'#11#31'8'#29#29'-'#24'E~'#18'Aw'#16':i"^'#153#6'G' +#140#24'+X'#19'9c'#15'7h'#30'#T'#22'"L'#23'*K'#1#31':'#1'+X'#20'6a'#18'+S'#28 +'(J'#25#28';$#C'#31#29'A'#20#24'A'#21#16'='#20#18'6'#21#19'0'#24'#A'#28'2U' +#28'2V'#10#30'='#0#7#31#12#11'%'#16#13'&'#10#7#29#15#13'!'#16#16' '#5#11#24 +#10#14#25#17#15#27#14#14' '#13#15'!'#15#16'$'#14#15'#'#10#13'"'#10#13'"'#13 +#15''''#15#17')'#10#14'&'#11#15''''#13#19'*'#13#20'-'#14#23'2'#15#23'4'#14#25 +'5'#15#25'7'#20' 8'#18#30'6'#16#26'2'#15#22'/'#13#20'-'#15#20'-'#15#20'-'#16 +#21'.'#16#21'.'#14#21'.'#11#24'.'#9#27'2'#10#29'8'#16#30';'#17#28'8'#22#26'7' +#0'!;'#3'!<'#16')C'#17'$?'#18#29'8'#18#22'2'#15#14'('#18#15')'#6#23'1'#13#30 +'8'#16'!;'#15#30'8'#13#28'6'#15#28'6'#15#26'5'#12#23'2'#4#9'"'#10#14''''#11 +#15'('#8#10'"'#8#9#30#13#11'!'#15#13'!'#13#11#31#17#17'#'#17#17'#'#16#16'"' +#16#14'!'#5'0W'#1'*J'#1#27','#8#20'&'#27'B'#128#12':t'#18':]'#21'Hz'#24'Y' +#150#29'B'#128#15'>q'#13':e'#30#24'M'#28' S'#15')N'#23'7N'#19'7g'#16'!H'#23 +'#?+5M'#17#27'9'#8#17'3$#E'#22#26'7'#22#20'8'#22#14'-'#8#8' '#25#27'3'#20#31 +';'#28'.K'#13#20'-'#6#13' '#12#9#31#14#12' '#12#5#26#17#6#26#15#13' '#6#13#28 +#6#9#24#19#9#26#12#14' '#14#16'"'#16#17'%'#16#17'%'#13#14'#'#12#13'"'#14#14 +'&'#15#15''''#11#12' '#12#13'!'#12#15'$'#13#17')'#13#20'/'#13#21'2'#12#22'4' +#13#23'5'#17#29'5'#15#27'3'#12#24'0'#12#22'.'#12#19','#12#19','#15#20'-'#15 +#20'-'#24#22'3'#15#15''''#8#11' '#8#18'*'#15' ;'#18'&E'#15'!>'#10#25'3'#12 +'''B'#9'"<'#12'!<'#24')C'#27'&A'#19#26'3'#19#23'0'#23#25'1'#16#28'4'#15#27'3' +#19#29'5'#20#30'6'#17#24'1'#12#17'*'#11#16')'#14#19','#6#14'%'#8#16''''#8#17 +'%'#10#17'%'#9#16'#'#11#17'$'#12#19'$'#14#18'$'#17#15'"'#17#15'"'#18#16'#'#19 +#17'$'#8#14'7'#16#11'&'#14#26','#0#28'3'#6'5s'#7'2q'#24'8\'#19'8j'#22'M'#144 +#9'8l'#15'E|'#14'Bq'#29#30'Q'#26' U'#6#26'='#11')L'#26'F|'#21'%P'#24'#?'#21 +#28'5'#15#29':'#13#31'>'#24#31':'#11#31'0'#23#27'7'#20#17'*'#18#19'('#13#10 +' '#16#16'('#9#17'('#14#15'#'#8#15#30#15#8#29#7#8#28#20#19''''#23#14'#'#18#9 +#30#14#12'"'#10#8#30#21#8' '#11#15'!'#13#17'#'#15#19'&'#15#19'&'#14#15'$'#12 +#13'"'#13#13'%'#14#14'&'#13#11#30#14#14' '#14#15'#'#14#16'('#14#19','#14#20 +'1'#14#22'4'#13#22'7'#11#25'0'#9#23'.'#8#20','#8#18'*'#7#17')'#9#16')'#11#18 +'+'#12#19','#19#23'4'#16#16'('#13#12' '#13#15''''#13#24'6'#12#31'@'#11' <'#8 +#29'3'#12#31':'#12#29'8'#7#24'2'#24'''A'#29')A'#16#26'2'#16#24'/'#9#17'('#11 +#15'('#10#14''''#15#16'*'#18#19'-'#18#17'+'#17#14'('#19#16'*'#24#21'/'#15#20 +')'#10#15'$'#12#16'#'#16#20''''#16#20'&'#11#15'!'#11#16#31#16#19'"'#14#12'"' +#14#12'"'#14#12'"'#14#12'"'#26#18'0'#30#17''''#10#21'+'#8#26'7'#26'(j'#26':' +#131'#>j'#29'+`%W'#169#5'6P'#5'8p'#31'Y'#154#30',`'#14#24'G'#16#25';'#15'-^' +#22'B'#129#23'*]'#19'(H'#7#29'6'#11'"<'#18'(A'#18#21'*'#13#29')'#0#11'!'#10 ,#15'$'#18#19'('#16#11' '#17#12'!'#14#14' '#12#14' '#3#10#25#19#10#31#13#18 +''''#4#13'!'#15#9' '#26#11'&'#18#12'%'#20#16')'#28#16','#9#16'!'#11#18'#'#16 +#20''''#15#19'&'#15#16'%'#12#13'"'#14#11'$'#15#12'%'#17#14#30#15#13' '#16#15 +'#'#15#17')'#14#19','#15#21'2'#15#23'5'#14#23'8'#14#28'3'#12#26'1'#11#23'/' +#10#22'.'#12#22'.'#13#23'/'#16#23'0'#18#25'2'#6#25'4'#14#25'/'#21#22'*'#18#18 +'*'#10#15'.'#7#17'3'#12#23'5'#17#29'5'#15#27'7'#16#28'8'#0#12'&'#8#21'/'#13 +#27'2'#7#20'*'#12#25'/'#0#11'!'#11#8'!'#16#13'&'#17#14''''#14#10'#'#12#8'!' +#17#11'$'#19#13'&'#21#12'&'#23#13'$'#24#15'$'#22#13'"'#19#10#30#18#9#29#19#11 +#28#17#9#26#14#6#23#17#14''''#17#14''''#14#14'&'#14#14'&'#1#25'1'#8#22'3'#19 +#29';'#23#17'0'#23'1Y'#26'F|'#17'=s)2^'#21'G'#131#0',R'#12':p$_'#175#20'6|' +#26#31'L'#6'"A'#21';['#18'>m'#11'-Q'#9'%H'#10'#M'#12#29'D'#4#6'$'#22#19'-'#23 +#23';'#11#11'#'#14#14'&'#14#15'$'#13#11'!'#12#10#30#14#12' '#15#11#30#12#8#27 +#11#11#27#12#12#28#14#14' '#15#15'!'#17#16'$'#17#15'%'#16#14'$'#16#14'$'#9#18 +'&'#8#17'%'#10#17'%'#13#18''''#18#21'*'#21#22'+'#20#18'('#17#14'$'#14#19'(' +#13#18''''#12#17'&'#12#17'&'#13#18''''#15#20')'#17#22'+'#19#24'-'#12#23'2'#15 +#26'5'#16#27'6'#14#25'4'#10#21'0'#8#19'.'#8#19'.'#10#21'0'#15#24','#14#23'+' +#12#21')'#13#20'('#12#19''''#14#19'('#16#19'('#17#20')'#17#16'$'#17#16'$'#17 +#16'$'#17#16'$'#16#15'#'#16#15'#'#16#15'#'#16#15'#'#11#9#31#14#12'"'#16#14'$' +#16#14'$'#14#12'"'#14#12'"'#16#14'$'#18#16'&'#15#13'#'#16#17'&'#16#20''''#10 +#14' '#10#10#24#17#13#25#18#16#28#8#10#20#8#9#30#9#10#31#9#10#31#10#11' '#4 +#26'3'#17#19'2'#20#19'3'#24#21'5'#9'(O'#15';p'#18'Dx'#10'%Q'#27'L'#132#11'2^' +#6'!Y'#24'D'#145'!H'#141#28'2\'#16'6T'#10'7X'#19'8d'#11'&H'#25'.N'#31'6\!1U' +#28' 9$"8'#18#20'3'#17#17')'#9#9'!'#6#7#28#12#10' '#18#16'$'#16#14'"'#16#12 +#31#15#11#30#11#11#27#12#12#28#13#13#31#15#15'!'#15#14'"'#16#14'$'#15#13'#' +#15#13'#'#10#13'"'#9#12'!'#9#12'!'#12#15'$'#15#18''''#15#20')'#13#18''''#11 +#16'%'#15#20')'#13#18''''#11#16'%'#10#15'$'#11#16'%'#13#18''''#16#21'*'#18#23 +','#11#22'1'#14#25'4'#16#27'6'#15#26'5'#12#23'2'#10#21'0'#10#21'0'#11#22'1' +#13#22'*'#12#21')'#13#20'('#12#19''''#12#17'&'#12#17'&'#15#18''''#15#18'''' +#15#14'"'#15#14'"'#15#14'"'#15#14'"'#15#14'"'#15#14'"'#15#14'"'#15#14'"'#12 +#10' '#14#12'"'#16#14'$'#15#13'#'#14#12'"'#13#11'!'#15#13'#'#17#15'%'#8#15'#' +#21#19''''#26#19'('#14#14' '#7#12#27#13#16#30#16#16#28#11#11#23#11#12'!'#12 +#13'"'#12#13'"'#13#14'#'#0#23','#20#18'0'#16#11'+'#16#21'6'#19'0W'#16'7k'#6 +'7i'#18'6d&V'#138#5')Y'#3#24'O'#31'F'#138'!U'#151#8'.X'#17'3P'#14'/V'#26'2\' +#11#29'<'#16#30':'#13' C'#23'$D'#11#15'"'#7#7#25#2#7' '#18#18'*'#9#9'!'#5#6 +#27#11#9#31#17#15'#'#17#15'#'#18#14'!'#18#14'!'#11#11#27#12#12#28#13#13#31#14 +#14' '#14#13'!'#14#12'"'#13#11'!'#13#11'!'#17#14'$'#16#13'#'#14#12'"'#12#15 +'$'#13#18''''#15#22'*'#14#23'+'#11#22'*'#18#21'*'#15#18''''#12#15'$'#10#13'"' +#10#13'"'#12#15'$'#16#19'('#18#21'*'#10#20','#13#23'/'#16#26'2'#17#27'3'#16 +#26'2'#14#24'0'#13#23'/'#13#23'/'#10#19''''#12#19''''#11#18'&'#11#16'%'#10#15 +'$'#12#15'$'#12#15'$'#12#15'$'#13#12' '#13#12' '#13#12' '#13#12' '#13#12' ' +#14#13'!'#14#13'!'#14#13'!'#13#11'!'#15#13'#'#16#14'$'#15#13'#'#13#11'!'#12 +#10' '#13#11'!'#15#13'#'#16#20''''#18#19''''#17#15'#'#17#15'"'#20#23'&'#15#22 +'%'#15#18' '#22#19'"'#15#16'%'#15#16'%'#15#16'%'#15#16'%'#0'"5'#16#24'5'#10 +#12'+'#16#28'@'#28'2['#25':k'#9'2c'#27'6i'#30'I|'#10'1e'#12'-_'#19'C}'#21'T' +#145#9'3^'#11#29'<'#19#29'L'#31'0W'#8#19'/'#10#19'.'#3#16'0'#15#27'7'#26#31 +'.'#21#24'&'#0#8#28#15#15''''#16#16'('#14#15'$'#11#9#31#11#9#29#15#13'!'#19 +#15'"'#18#14'!'#12#12#28#12#12#28#12#12#30#13#13#31#13#12' '#12#10' '#12#10 +' '#12#10' '#23#21'+'#19#20')'#18#19'('#16#19'('#16#21'*'#18#23','#19#26'.' +#20#27'/'#18#21'*'#15#18''''#11#14'#'#9#12'!'#8#11' '#10#13'"'#13#16'%'#16#19 +'('#7#14''''#10#17'*'#13#20'-'#16#23'0'#16#23'0'#15#22'/'#13#20'-'#12#19',' +#10#17'%'#10#17'%'#10#15'$'#9#14'#'#11#14'#'#10#13'"'#12#13'"'#12#13'"'#11#10 +#30#11#10#30#11#10#30#12#11#31#12#11#31#12#11#31#13#12' '#13#12' '#14#12'"' +#16#14'$'#17#15'%'#16#14'$'#13#11'!'#11#9#31#12#10' '#14#12'"'#27#18''''#11 +#17'$'#7#17'#'#16#14'!'#21#15'"'#17#21''''#13#21'&'#9#11#29#16#17'&'#16#17'&' +#15#16'%'#15#16'%'#12'-A'#16#27'6'#7#16'1'#23'*O'#16'!L'#17'9c'#20'Bq'#6#26 +'S#Dv'#14'3g'#9'3b'#15'Bt'#17'J'#130#26'Am'#16#30'B'#20'"S"3Z'#15#26'6'#22#31 +':'#15#28'<'#14#26'6'#17#22'%'#25#28'*'#25'"6'#19#19'+'#20#20','#16#17'&'#12 +#10' '#11#9#29#14#12' '#17#13' '#15#11#30#13#13#29#12#12#28#12#12#30#12#12#30 +#12#11#31#12#10' '#12#10' '#13#11'!'#18#25'-'#17#24','#17#22'+'#15#20')'#16 +#19'('#19#20')'#20#21'*'#24#22','#19#20')'#17#18''''#13#14'#'#10#11' '#10#11 +' '#11#12'!'#14#15'$'#16#17'&'#8#12'$'#9#13'%'#11#15''''#14#18'*'#15#19'+'#15 +#19'+'#13#17')'#11#15''''#10#15'$'#10#15'$'#10#15'$'#11#14'#'#11#14'#'#12#13 +'"'#11#12'!'#13#11'!'#12#11#31#12#11#31#12#11#31#12#11#31#12#11#31#12#11#31 +#12#11#31#12#11#31#16#14'$'#17#15'%'#18#16'&'#17#15'%'#13#11'!'#12#10' '#13 ,#11'!'#14#12'"'#14#8#27#8#10#28#10#16'#'#14#18'%'#14#15'#'#14#15'#'#16#22')' +#16#25'-'#15#16'%'#14#15'$'#14#15'$'#13#14'#'#7#23'.'#14#15')'#12#19'4'#21'2' +'Y'#6#28'F'#3'7['#9'>i'#16'*f#>q'#23'2d'#7'0]'#22'>n'#12'3g#Ht'#31'<c'#15'8e' +#22'.X'#23')H'#26'(D'#5#24';'#9#22'6'#14#18'%'#24#24'*'#21#26'3'#27#27'3'#18 +#18'*'#12#13'"'#15#13'#'#18#16'$'#15#13'!'#14#10#29#13#9#28#13#13#29#13#13#29 +#12#12#30#12#12#30#12#11#31#13#11'!'#14#12'"'#15#13'#'#9#20'('#12#21')'#13#20 +'('#12#17'&'#11#14'#'#14#12'"'#16#13'#'#17#14'$'#19#17''''#18#16'&'#15#13'#' +#14#12'"'#13#11'!'#14#12'"'#15#13'#'#17#15'%'#12#15'$'#11#14'#'#11#14'#'#12 +#15'$'#14#17'&'#14#17'&'#12#15'$'#10#13'"'#10#15'$'#10#15'$'#13#16'%'#13#16 +'%'#14#15'$'#15#13'#'#14#12'"'#13#11'!'#14#13'!'#14#13'!'#14#13'!'#13#12' ' +#13#12' '#13#12' '#13#12' '#12#11#31#17#15'%'#19#17''''#19#17''''#18#16'&'#15 +#13'#'#13#11'!'#14#12'"'#16#14'$'#8#16'!LCWC7M'#7#14'!'#3#18'%'#20#25'.'#11 +#13'%'#2#15'%'#14#15'$'#14#15'$'#13#14'#'#13#14'#'#0#12'$'#15#8'#'#16#23'8' +#10'9_'#6'&O'#5'8X'#0'.X(A'#127' ?r'#26'2`'#1'*W'#27'?o'#15'.['#19'8d'#16'1_' +#23'Bm'#23'<h'#23'2T$9Y'#25'0V'#11#27'?'#4#8'!'#20#18'('#9#11'*'#25#25'1'#17 +#17')'#12#13'"'#17#15'%'#20#18'&'#17#15'#'#15#11#30#13#9#28#13#13#29#13#13#29 +#12#12#30#12#12#30#13#12' '#15#13'#'#16#14'$'#17#15'%'#9#14'#'#11#16'%'#13#18 +''''#14#17'&'#11#14'#'#9#12'!'#9#12'!'#11#14'#'#17#15'%'#17#15'%'#16#14'$'#16 +#14'$'#15#13'#'#16#14'$'#16#14'$'#16#14'$'#20#21'*'#17#18''''#14#15'$'#14#15 +'$'#16#17'&'#16#17'&'#15#16'%'#13#14'#'#13#16'%'#14#17'&'#14#17'&'#16#17'&' +#16#17'&'#17#15'%'#15#13'#'#16#13'#'#17#16'$'#17#16'$'#16#15'#'#16#15'#'#15 +#14'"'#14#13'!'#13#12' '#13#12' '#18#16'&'#19#17''''#21#19')'#19#17''''#17#15 +'%'#15#13'#'#17#15'%'#18#16'&'#19#23')LFY>5J'#11#17'$'#14#28'/'#21#29'4'#5#12 +'%'#8#20','#15#16'%'#15#16'%'#15#16'%'#15#16'%'#12'#9'#23#18'-'#17#27'='#9'G' +'m'#2')P'#15'8Y'#14'/\'#29'-o Ey'#20'0Y'#3'2^'#21'?n'#3'"I'#14'1\'#14'&\'#9 +'!O'#11'7f'#11'-Q'#7'#F'#0#24'B'#8#25'@'#14#16'.'#31#28'6'#16#16'4'#16#16'(' +#19#19'+'#19#20')'#17#15'%'#16#14'"'#18#16'$'#19#15'"'#15#11#30#13#13#29#13 +#13#29#13#13#31#13#13#31#14#13'!'#16#14'$'#18#16'&'#19#17''''#14#11'!'#17#15 +'%'#18#19'('#17#20')'#12#17'&'#9#16'$'#8#17'%'#9#18'&'#15#13'#'#16#14'$'#17 +#15'%'#17#15'%'#17#15'%'#17#15'%'#16#14'$'#16#14'$'#25#26'/'#21#22'+'#16#17 +'&'#15#16'%'#16#17'&'#17#18''''#16#17'&'#14#15'$'#14#17'&'#15#18''''#16#19'(' +#18#19'('#19#17''''#18#16'&'#17#14'$'#16#13'#'#20#19''''#19#18'&'#18#17'%'#17 +#16'$'#16#15'#'#15#14'"'#14#13'!'#13#12' '#18#16'&'#20#18'('#21#19')'#20#18 +'('#18#16'&'#17#15'%'#18#16'&'#20#18'('#31#17'#'#8#15' '#4#16'"'#20#18'('#23 +#19','#9#21'-'#5#22'0'#12#21'0'#17#18''''#17#18''''#17#18''''#17#18''''#14'$' +'@'#8#14'+'#12#26'7'#14';]'#5'7e'#8'''\'#19'''V'#11'''J'#14'6`'#27'+U'#15' G' +#19'8Z'#5'+N'#17'9c'#15'Cq'#8':n'#16'(@'#20#31'=#2S'#17#30'D'#17#23'<'#23'!C' +#0#22'0'#20'%?'#3#19'0'#10#23'1'#17#24','#17#17'#'#15#12#28#16#12#31#15#13'#' +#13#12'&'#16#15#31#21#11#28#20#11' '#3#6#27#5#9'"'#20#14'-'#17#12','#14#19'2' +#20#18'('#17#15'%'#15#13'#'#16#14'$'#18#16'&'#19#17''''#17#15'%'#14#12'"'#16 +#14'$'#17#15'%'#18#16'&'#19#17''''#20#18'('#19#17''''#19#17''''#18#16'&'#19 +#17''''#19#17''''#19#17''''#19#17''''#19#17''''#19#17''''#19#17''''#19#17'''' +#16#17'%'#16#17'%'#16#17'%'#15#16'$'#15#16'$'#14#15'#'#14#15'#'#14#15'#'#9#17 +'"'#15#19'%'#21#19'&'#18#16'#'#11#13#31#9#11#29#16#12#31#23#14'"'#13#11'('#8 +#12'('#6#9'%'#22#19'-'#23#18'-'#12#12'$'#16#16'('#17#11'"'#17#15'-'#11#17'.' +#13#20'/'#29#26'4!'#29'6'#16#21'*'#12#18'%'#30#26'-'#7#16'$'#16#25'-'#8#17'%' +#16#27'/'#13#27'8'#22#25'8'#21#30'?'#22'3Z'#18'8h'#17',_'#20'&U'#12'#I'#13',' +'S'#25'2Z'#9#31'H'#0'''M'#19'3\'#23'2^'#12';g'#27'Et'#27'%M'#0#9'1'#7#26'='#9 +'!?'#7#28'8'#27',G'#24'''A'#8#17','#12#28'9'#8#21'/'#10#17'%'#17#17'#'#20#17 +'!'#17#13' '#13#11'!'#12#11'%'#14#12#24#22#12#28#29#19'$'#16#15'#'#16#17'&' +#26#19'.'#18#13'*'#10#13')'#19#17''''#17#15'%'#15#13'#'#16#14'$'#18#16'&'#18 +#16'&'#17#15'%'#14#12'"'#15#13'#'#16#14'$'#17#15'%'#18#16'&'#18#16'&'#17#15 +'%'#16#14'$'#16#14'$'#17#15'%'#17#15'%'#17#15'%'#17#15'%'#17#15'%'#17#15'%' +#17#15'%'#17#15'%'#16#17'%'#16#17'%'#15#16'$'#15#16'$'#15#16'$'#14#15'#'#14 +#15'#'#14#15'#'#27#23'*'#21#19'&'#15#15'!'#14#14' '#14#16'"'#16#18'$'#15#19 +'%'#12#19'$'#18#19'/'#23#18'/'#14#10''''#14#18'+'#16#22'-'#12#14'&'#19#22'+' +#19#28'0'#19#19'1'#19#28'7'#24'!<'#25#26'4'#19#19'+'#14#23'+'#17#27'-'#19#20 +'('#15#12'"'#23#21'+'#17#15'%'#20#21'*'#10'%@'#9'!='#22'1S'#11'.V'#10'4c'#26 +'Ct'#16':e'#17';`'#10'''L'#22'(Q'#21'>e'#6'+W'#21',Z'#12'&T'#21'''V'#25';f' +#30'7i'#2#31'K'#3#27'?'#13#31'<'#4#22'-'#8#21'+'#23#28'5'#19#26'5'#16' ='#11 +#24'2'#10#17'%'#16#16'"'#19#16' '#17#13' '#13#11'!'#13#12'&'#14#10#21#19#10 +#23#25#15#31#16#13#29#12#10#29#21#14'#'#19#11'"'#12#9'"'#19#17''''#17#15'%' +#15#13'#'#15#13'#'#17#15'%'#17#15'%'#16#14'$'#15#13'#'#15#13'#'#16#14'$'#16 +#14'$'#17#15'%'#17#15'%'#16#14'$'#15#13'#'#14#12'"'#15#13'#'#15#13'#'#15#13 ,'#'#15#13'#'#15#13'#'#15#13'#'#15#13'#'#15#13'#'#15#16'%'#15#16'%'#15#16'%' +#14#15'$'#14#15'$'#14#15'$'#14#15'$'#14#15'$'#18#9#30#13#12' '#10#16'#'#12#18 +'%'#19#18'&'#17#16'$'#9#15'"'#1#13#31#11#12'('#22#18'/'#19#18','#14#21'.'#11 +#24'.'#15#24','#16#27'/'#7#24'+'#21#28'7'#20'!;'#19'!8'#17#24'1'#13#21','#10 +#24'+'#9#23'*'#9#18'&'#14#20'+'#17#23'.'#8#16''''#11#19'*'#13',E'#12'3O'#14 +'4V'#10'-X'#7'1`'#9'@m'#10'Em'#7'>c'#0'%G'#17'!K'#28'Am'#10'1^'#15'-^'#16'$S' +#29' M'#28'6['#15':e'#12';a'#12'*M'#13#28'<'#17'"='#29'!='#29#23'6'#16#18'0' +#14#30';'#17#30'8'#18#25'-'#15#15'!'#14#11#27#16#12#31#16#14'$'#13#12'&'#17 +#13#24#16#10#21#16#12#24#13#10#25#12#9#25#15#9#26#19#13' '#21#17'$'#18#16'&' +#17#15'%'#16#14'$'#15#13'#'#16#14'$'#16#14'$'#16#14'$'#16#14'$'#15#16'%'#16 +#17'&'#16#17'&'#17#18''''#16#17'&'#15#16'%'#14#15'$'#13#14'#'#14#15'$'#14#15 +'$'#14#15'$'#14#15'$'#14#15'$'#14#15'$'#14#15'$'#14#15'$'#15#16'%'#15#16'%' +#15#16'%'#14#15'$'#14#15'$'#14#15'$'#14#15'$'#14#15'$'#7#14'!'#10#20'&'#12#24 +'*'#13#20''''#12#13'!'#11#9#29#13#12' '#16#17'%'#13#17'*'#7#17')'#7#19'+'#13 +#19'*'#10#17'%'#9#24'+'#12#28'-'#5#15'!'#9#21'-'#9#23'.'#12#26'1'#15#28'2'#13 +#27'1'#14#31'4'#15' 5'#13#27'1'#5#17')'#17#29'5'#22'":'#17#31'6'#11#25'5'#2 +#30'='#8'''N'#23'.^'#13'(Z'#8'5a'#20'Gr'#8'5`'#13':\'#10'(Q'#27'''W'#9'7f'#6 +'5a'#23#30'O'#26'&P'#24'+P'#15'1O'#15'8X'#27';^'#18')O'#5#31'C'#19#31'C'#28 +#27'=!#B'#16' ='#18#31'9'#18#25'-'#16#16'"'#16#13#29#18#14'!'#17#15'%'#13#12 +'&'#14#14#28#14#15#29#14#15#29#19#18'"'#19#18'"'#14#13#29#17#15'"'#28#24'+' +#19#17''''#19#17''''#18#16'&'#16#14'$'#15#13'#'#16#14'$'#17#15'%'#18#16'&'#16 +#19'('#16#19'('#17#20')'#17#20')'#17#20')'#16#19'('#15#18''''#15#18''''#15#18 +''''#15#18''''#15#18''''#15#18''''#15#18''''#15#18''''#15#18''''#15#18''''#15 +#15''''#15#15''''#15#15''''#15#15''''#15#15''''#15#15''''#16#16'('#16#16'('#0 +#15'"'#7#16'$'#12#17'&'#14#19'('#14#21')'#16#23'+'#20#23','#25#23'-'#10#24'/' +#8#27'0'#12#29'2'#14#21')'#5#10#31#7#14'!'#17#23'*'#27#26'.'#11#22','#4#15'%' +#10#21'+'#17#31'5'#15' 5'#15#31'6'#16' 7'#9#30'4'#27#27'9'#17#17'/'#17#17'/' +#20#22'4'#22#31':'#9'"D'#8'*U'#15'-^'#10'+\'#3'2^'#8';f'#8'6e'#19'Dl'#10'-Y' +#25'%U'#24'Cn'#4':c'#17'"M'#14'"K'#12')N'#16'(D'#2#30'='#24'0T'#28'0Y'#16')Q' +#15'&L'#10#31'?'#21'-I'#23'''D'#14#27'5'#11#18'&'#18#18'$'#23#20'$'#22#18'%' +#16#14'$'#12#11'%'#8#14'!'#14#26','#8#18'$'#10#14'!'#16#17'%'#7#13' '#10#16 +'#'#26#25'-'#20#18'('#20#18'('#20#18'('#18#16'&'#16#14'$'#16#14'$'#19#17'''' +#21#19')'#16#19'('#17#20')'#18#21'*'#19#22'+'#19#22'+'#19#22'+'#18#21'*'#18 +#21'*'#17#20')'#17#20')'#17#20')'#17#20')'#17#20')'#17#20')'#17#20')'#17#20 +')'#16#16'('#16#16'('#16#16'('#17#17')'#17#17')'#17#17')'#17#17')'#17#17')' +#14#23'+'#15#18''''#16#17'&'#20#25'.'#24'&9'#25'*='#21'$7'#18#27'/'#13'"7'#18 +#31'5'#21#30'2'#23' 4/5HJCX90D'#29#25','#13#20'(#&; %:'#13#26'0'#14#28'3'#18 +#30'6'#15#28'6'#13'!:'#18#21'4'#6#11'*'#12#17'0'#14#22'4'#17#24'3'#30'7Y'#4 +'(V'#0'(Y'#19'@l'#7'9c'#3'8c'#25'Jz'#0',['#16'2`'#17'4_'#24';c'#18'>c'#14'5[' +#14'(P'#9';_'#9'(O'#4#26'C'#19'(N'#12'!G'#13#31'D'#24'.Q'#13'-J'#18'2O'#22'&' +'C'#14#27'5'#12#19''''#20#20'&'#26#23''''#24#20''''#17#15'%'#12#11'%'#7#18'-' +#27'/H'#16'!;'#9#16')'#18#23'0'#11#23'/'#9#22','#22#24'0'#22#20'*'#22#20'*' +#22#20'*'#19#17''''#17#15'%'#17#15'%'#20#18'('#24#22','#11#16'%'#12#17'&'#14 +#19'('#16#21'*'#17#22'+'#17#22'+'#16#21'*'#16#21'*'#15#20')'#15#20')'#15#20 +')'#15#20')'#15#20')'#15#20')'#15#20')'#15#20')'#17#16'*'#17#16'*'#18#17'+' +#18#17'+'#18#17'+'#19#18','#19#18','#19#18','#12#18')'#12#18')'#12#18')'#12 +#20'+'#12#25'/'#17#31'5'#22'$:'#26'(>'#22'!7'#31'"7<=RHL_TSgneyocw\SgRVifavK' +'H^ (?*4L@D`07R'#17'"='#7#20'4+8XKZz7Ff"'#22'4 %L'#27'2b'#14'/a'#22'8f'#25'<' +'h'#12'0^'#25';p'#11'*a'#13'>l'#14'<e'#18'2V'#10'0R'#16'=_'#22'Bg'#0'4['#18 +'2g'#12'#S'#22'7^'#14'4R'#8' <'#17'(B'#15'%A'#16#25':'#15#31'<'#17#30'8'#19 +#26'.'#20#20'&'#23#20'$'#25#21'('#19#17''''#12#11'%'#10#26'70Hd''=Y'#27'&B&.' +'K'#29'.H'#19'"<'#21#25'5'#22#20'*'#23#21'+'#23#21'+'#20#18'('#17#15'%'#17#15 +'%'#21#19')'#25#23'-'#9#14'#'#10#15'$'#12#17'&'#14#19'('#15#20')'#16#21'*'#16 +#21'*'#15#20')'#14#19'('#14#19'('#14#19'('#14#19'('#14#19'('#14#19'('#14#19 +'('#14#19'('#18#17'+'#18#17'+'#19#18','#19#18','#19#18','#20#19'-'#20#19'-' +#20#19'-'#1#14'$'#19'$9(;P2@V7=TAC[U[rhs'#137'oi'#128'[Yo'#130#128#150#137 +#128#149'I@U62E\Yi'#128't'#134#132#132#150'yp'#133'sk'#130'ei'#129'U\ubc'#127 +'rt'#146'hv'#146'PRtmo'#145#140#142#176'v{'#156#14'(@'#16'4X'#24'<`'#27'?e'#3 +',]'#21':f'#19'0U'#25'<d'#10'$H'#21')L'#4'4P'#0':V'#23';_'#24'*Y'#25'3i'#22 +'2n'#1'2^'#22'9e!Bi"?^ +F$.@&4@'#17#22#31#18#25'-#9D'#16',3'#16' 1'#27'&:'#9 +#25')'#9#23'*'#31'!@+7I:>Q>J\:JZ7?P0=K4JVKYeT]g'#30'&3'#18#23'&'#27#28'0'#23 +#21'+'#23#22'0'#17#20'0'#0#6'#'#19#13#30#30#24')'#23#17'"'#23#17'"'#26#18'#' +#30#20'%'#19#9#26'"'#22'(K=H( +'#31#29')'#17#23'$'#9#22'$'#11#26'*'#30',>!0C' +'(+G'#31#30'8'#19#16'&'#24#20''''#30#29'-'#23#25'+'#16#23'*'#18#29'1'#12#26 ,'69Fl'#146#163#202#130#150#181'l}'#152#138#148#178#172#177#202#144#150#161 +#148#145#161#131'}'#144#165#159#182#147#144#170'^b{ae~xx'#144#152#146#169#166 +#169#197#136#132#161#147#138#171#171#164#199#179#176#215#183#181#223#178#171 +#216#174#160#208#149#137#157#147#134#156#148#138#161#153#147#172#7' :'#14'1R' +#22'@c'#24'Cj'#17'9i'#16'1^'#7' H'#15'(R'#20')I'#5#13'2'#9'%G'#4':Y'#15'<b' +#11'2^'#15'7h'#24'3k'#11'7f'#10'3`'#13'8c'#11'4['#28'<`0Fi0Ba'#29'$E06Y6Ga/H' +'X-CO7EQ/;G!3D)@V?EX9:N7;M7;MBAQNM]`ao'#134#131#146#178#164#176'F=J'#23#24'&' +#23#23''''#18#16'$ '#24'/'#30#23'2'#22#19'-'#13#20'%'#19#26'+'#20#30'/'#11#21 +'&'#9#17'"'#15#22''''#16#18'$" 3jOY90:GCN-0>'#1#22'%'#23'+<:G]AVk'#142#148 +#161'JO^'#21#25','#22#26'2'#19#26'3'#1#13'%'#4#23','#13'#557UZYy'#139#137#167 +#136#135#161#135#132#157#145#141#170#159#155#184#136#135#161#141#129#149#142 +#134#151#139#132#147#141#131#144#156#138#155#151#134#155#135#127#150#139#141 +#165#145#148#179#134#139#170#168#173#204#165#170#201#153#155#189#167#169#203 +#147#152#185#128#132#167#141#139#161#133#131#153#133#129#154#142#138#163#1#17 +'.'#6#26'9'#17'2Y'#17'>i'#22'Cn'#12'7b'#8'*U'#21',R'#30')I'#24#22':'#22'''N' +#7'6\'#14'@j'#8';f'#7'8d'#17'2`'#12';g'#4'2['#19'8^'#27'5Y,@_6A]78R68P;9V/7T' +'7D^?H\CJ]BK_<AVKF[HR\;GQBKTPR\X[cfflqjqokqkmuHDO)%1'#28'"/'#14#31','#5#26')' +#13#27'-'#19#24'-'#14#26','#23'%7'#20'$5'#8#26'+'#18'"3!-?%,?'#18#24'+'#7#25 +'0'#21'0E6?SFDX*7E@JThmvTmq'#157#152#161'~z'#134'__q,0H'#18#27'6-9U3?['#29',' +'FFA^ph'#127#133'y'#141#143'~'#147#153#135#158#163#149#173#180#168#198#167 +#156#194#143#140#165#153#151#173#143#142#162#139#140#160#150#154#173#144#148 +#172#140#141#169#147#147#177#152#141#174#135#130#162#132#131#163#137#135#165 +#133'}'#155#134'z'#150#131'~'#153'}~'#152#134'}'#152#129'x'#146#128'w'#145 +#130'z'#145#15#14'0'#17#15'-'#21'''P'#15'9h'#8'?d'#5'@g'#16'Am'#29';^ #B'#23 +#21'9'#15'%N'#14';f'#17'>j'#4'3_'#13'?i'#18'5]'#11'3]'#1',S'#19'.S*8\.>[4=X9' +';S@K_PJc@HeCJeXXjQevEy'#144'P|'#155'S]{P[{[p'#140'[f'#132'`f'#131'Ye'#129'T' +'[vb`}\azTU_]S_WFT@6C.4A'#25')6'#8#23''''#20#30'/'#12#29'2'#29'+A(3I$,C-5L+3' +'J-5L +A'#31'+C'#18' 7 82%=LAU'#142'~'#144#155#131#149#140'z'#139#149#129 +#152#141'}'#148#137#131#150'bbtPShvu'#143'zu'#149'\Uxte'#132#132'y'#141#127 +'u'#134#134'y'#145#129'w'#142#137#136#152#151#155#174#143#145#175#150#153#184 +#151#151#187#156#155#195#153#157#198#168#180#222#181#193#235#179#186#225#204 +#203#242#225#213#243#178#168#198#148#143#170#143#136#163#129'u'#145#131'u' +#145#138#129#156'zs'#142'vs'#137'tq'#135'ro'#133'rl'#131' '#22':&!@'#29'3\' +#18'>m'#4'5['#6':b'#15'@l'#24'=_'#21'"B'#22#31'D'#16')S'#11'2^'#21'7e'#6'0[' +#12'8a'#19',T'#27'+Y'#30';g7R~i'#132#176'c'#136#180'b'#131#176'j'#129#175's' +#144#189#166#161#206#141#146#185#192#188#213#223#202#211#196#195#204#155#193 +#217#128#168#210#149#163#212#140#149#183#144#163#196#158#170#204#172#181#214 +#146#166#197#131#147#176#147#157#187#136#155#182#147#140#155#133#134#148'z' +#130#143'z'#127#142#134#134#150#135#137#155'`p'#128'2O]%E\HbzJ[uGRmMVq9F`7Mf' +'(BZ 8P'#30')D'#24#31'8__w'#174#158#181#188#171#192#168#154#172#179#157#176 +#182#171#203#172#167#196#153#153#177#148#151#172#149#152#173#167#164#189#188 +#179#206#173#158#189#133#147#175#134#151#170#135#152#173#146#160#189#132#143 +#170#146#155#169#172#176#187#195#194#210#180#176#212#151#148#187#157#155#197 +#157#149#196#167#155#203#182#172#219#170#169#213#179#187#227#220#232#250#234 +#241#255#218#222#246#212#217#242#184#192#221#170#178#208#197#202#235#189#190 +#224#173#169#188#160#155#176#141#138#160#128'}'#150#22#17'1#0P'#27'@f'#20'Dn' +#17'6b'#18'1^'#20'6a'#24'<`'#19'1T"5[!;c'#14'+W'#29'8d'#19';e'#11'4['#27'(T' +#20'!M+<g?R}g}'#167'j'#133#177'p'#141#185'w'#146#190'y'#153#196#127#157#206 +#141#175#218#176#206#233#199#220#235#192#209#222#184#210#234#192#222#255#190 +#219#255#215#229#248#221#238#255#228#243#255#224#240#255#221#242#255#219#240 +#255#213#232#245#211#235#247#226#235#255#213#233#251#193#223#240#198#228#245 +#207#231#249#221#241#255#217#241#255#176#204#221'n'#162#185#131#177#201'z' +#159#185's'#144#171#129#158#185'~'#159#185'o'#151#176'_'#139#163#148#191#218 +#143#165#193#144#169#195#197#221#243#236#241#255#219#231#249#205#233#244#226 +#242#255#221#237#255#224#239#255#206#220#248#196#210#238#200#212#240#219#229 +#253#240#247#255#230#234#252#196#226#253#186#219#245#182#214#243#189#217#251 +#191#215#245#211#228#247#223#232#245#244#248#255#216#221#252#188#196#225#196 +#205#232#193#203#227#178#187#214#175#185#215#173#183#217#178#190#226#190#207 +#226#207#215#238#200#204#229#183#187#216#186#197#229#189#201#237#190#197#236 +#215#214#255#221#213#236#210#204#229#193#190#216#173#175#205#9#15','#20'(K' +#21'7['#22':b'#25'=m'#16'/\'#25'6]'#25'9b'#25'9b'#17'*T'#28';b'#31'9^$2\'#21 +'3\'#20'<f#5d'#19'*P'#20'%L*9``m'#147#140#149#187#129#145#182'y'#146#180#140 +#162#197#148#157#200#145#169#205#139#177#209#150#187#221#162#190#224#172#196 +#226#181#205#233#173#199#229#185#210#242#196#217#249#205#231#255#193#219#249 ,#190#212#240#199#221#249#192#217#243#189#210#237#188#213#239#191#212#239#197 +#216#243#198#219#246#194#220#244#196#218#243#211#224#250#230#234#255#133#180 +#207']'#140#167'O~'#153'Cr'#141'P}'#152'e'#144#171'e'#144#171#148#188#216#234 +#236#254#236#236#254#217#232#251#202#232#251#211#233#255#207#231#255#206#236 +#255#209#226#255#214#240#255#203#227#247#206#226#251#207#224#251#211#225#254 +#218#232#255#214#231#255#214#232#255#212#221#254#212#221#255#204#218#254#195 +#213#244#189#211#239#194#216#244#188#213#239#195#222#243#190#210#235#192#210 +#233#197#216#237#190#218#235#186#219#238#172#206#229#161#185#213#174#187#219 +#169#176#209#177#184#217#176#180#215#170#173#211#172#177#216#179#184#223#179 +#183#224#174#176#217#159#171#205#161#173#207#157#169#205#148#159#197#16#31'9' +#13#30'E'#28'&N'#24',U'#18'=n'#0'.X'#21'7['#17'/X'#20'*Z'#14'+W'#14'8['#22'2' +'U "J'#11#27'E'#11'3]'#13'/]'#13'#L'#29'-W-Fr5V'#131'r'#137#187's'#141#195'm' +#140#195#127#147#204#135#160#192#128#172#195'|'#175#201#139#181#218#151#187 +#227#153#194#226#169#204#237#186#205#248#160#211#243#172#213#246#170#216#247 +#169#215#246#183#217#247#186#220#249#177#216#244#182#210#240#163#211#239#178 +#220#249#176#210#239#183#213#242#190#217#244#186#213#240#197#221#249#198#221 +#247#187#216#247'x'#156#186'1]z''Yu$Tp:b'#127'{'#152#183#195#218#250#206#220 +#238#204#219#238#202#223#244#203#227#249#202#226#250#187#210#236#202#224#252 +#203#221#252#207#224#243#206#221#240#214#226#244#216#223#243#208#215#240#206 +#216#246#202#217#250#193#211#248#198#217#250#195#207#247#200#208#245#207#214 +#241#206#213#240#201#206#245#196#202#247#195#205#245#200#211#238#193#205#233 +#199#210#242#193#201#238#189#194#233#190#198#235#180#195#228#178#199#230#176 +#192#235#176#196#237#171#196#236#174#196#237#176#193#232#178#193#232#180#199 +#236#167#193#229#170#185#231#169#184#230#163#179#222#157#173#216#21'"B'#28'.' +'E'#21'#?'#12'"K'#21'8c'#16'-T'#24'1['#18'?r'#22'3Z'#24'5\'#26'7^'#15'*O'#11 +'&K'#21'/S'#16'+M'#15'(J'#25'/K'#12'$B'#31'8XZv'#153'u'#148#187'n'#142#183'p' +#145#190's'#150#194'r'#152#194'v'#156#198'}'#163#205#131#171#213#138#180#222 +#145#187#229#150#194#235#153#197#238#163#202#241#164#203#242#166#205#244#169 +#206#244#169#207#242#169#205#241#169#204#238#167#202#236#172#202#237#173#203 +#238#173#204#237#174#205#236#175#206#237#176#208#237#177#209#238#178#210#239 +#180#209#240#186#215#246#171#200#231'{'#152#183'`}'#156#135#164#195#184#213 +#244#193#222#253#191#215#245#192#216#246#192#216#246#192#216#246#192#216#246 +#193#217#247#193#217#247#193#217#247#194#215#246#194#215#246#193#214#245#193 +#214#245#192#213#244#191#212#243#191#212#243#190#211#242#189#206#239#188#205 +#238#187#204#237#186#203#236#185#202#235#184#201#234#183#200#233#182#199#232 +#184#199#232#184#199#232#183#198#231#183#198#231#182#197#230#181#196#229#181 +#196#229#180#195#228#177#192#225#178#193#226#178#193#226#179#194#227#180#195 +#228#180#195#228#181#196#229#181#196#229#180#195#227#180#195#227#180#195#227 +#180#195#227#12#30'C'#9#31';'#7#25'8'#18'(Q'#23':b'#24'4W'#30'5[(My*Gn'#31'<' +'c'#25'6['#27'6['#27'5Y'#22'0T'#16')K'#16')K'#13'"A'#0#24'6#<\\v'#154'p'#141 +#178'l'#138#179'i'#139#182'o'#144#189'r'#149#192'u'#152#195'|'#159#202#130 +#168#210#136#176#218#142#182#224#144#186#228#146#188#230#153#192#231#157#193 +#233#159#196#234#161#197#235#162#198#234#163#197#233#161#196#230#160#195#229 +#168#196#230#168#196#230#169#197#231#170#199#230#171#200#231#172#202#231#173 +#203#232#173#203#230#175#203#234#182#210#241#186#214#245#183#211#242#183#211 +#242#187#215#246#184#212#243#173#201#232#186#210#240#186#210#240#186#210#240 +#187#211#241#187#211#241#187#211#241#188#212#242#188#212#242#192#213#244#191 +#212#243#191#212#243#190#211#242#190#211#242#189#210#241#188#209#240#188#209 +#240#187#204#237#187#204#237#186#203#236#185#202#235#184#201#234#183#200#233 +#182#199#232#181#198#231#181#196#229#180#195#228#180#195#228#179#194#227#178 +#193#226#178#193#226#177#192#225#177#192#225#175#190#223#175#190#223#175#190 +#223#176#191#224#176#191#224#176#191#224#176#191#224#177#192#225#174#189#221 +#174#189#221#174#189#221#174#189#221#17'''P'#5#30'@'#10#30'A'#29'3\'#23'4Y' +#19',N'#21')L''Gk'#28'9`'#14'+P'#16'+P'#19'/R'#20'.R'#16')K'#6#31'A'#12'%G' +#14'#B'#9'!?8Ooa|'#158'j'#133#170'h'#133#172'f'#132#173'k'#137#178'p'#144#185 +'t'#148#189'x'#155#195#127#162#202#132#168#208#136#172#212#136#175#214#137 +#176#215#142#177#217#144#180#218#146#182#220#150#184#220#153#185#221#153#185 +#220#154#184#219#154#185#218#159#186#220#159#186#220#160#188#219#161#189#220 +#162#190#220#163#191#221#164#193#220#165#194#221#170#195#227#169#194#226#160 +#185#217#163#188#220#176#201#233#174#199#231#168#193#225#175#200#232#178#202 +#232#178#202#232#179#203#233#179#203#233#180#204#234#180#204#234#181#205#235 +#181#205#235#187#208#239#186#207#238#186#207#238#185#206#237#185#206#237#184 +#205#236#184#205#236#184#205#236#185#202#235#184#201#234#183#200#233#182#199 +#232#181#198#231#180#197#230#179#196#229#179#196#229#176#191#224#176#191#224 ,#175#190#223#175#190#223#174#189#222#173#188#221#172#187#220#172#187#220#172 +#187#220#172#187#220#172#187#220#171#186#219#171#186#219#171#186#219#171#186 +#219#171#186#219#167#182#215#167#182#215#167#182#215#166#181#214#24'+N'#11' ' +'@'#23',L"8\'#19'-Q'#11'%I'#6' D'#21'2W'#11'&K'#6'!F'#15'+N'#13'''K'#17'*L' +#24'1S'#16'''G'#19'*J!6U0EeTk'#139'i'#130#164'h'#130#166'h'#130#167'g'#130 +#167'j'#132#172'o'#140#179's'#144#183'x'#149#188'|'#155#194'~'#159#198#128 +#161#200#127#163#201'~'#162#200#132#165#204#135#166#205#138#170#206#142#171 +#208#144#174#209#146#174#209#147#175#209#146#174#208#153#178#210#153#178#210 +#154#179#211#155#181#211#156#182#212#157#184#211#158#185#212#158#185#211#160 +#184#214#168#192#222#165#189#219#164#188#218#172#196#226#169#193#223#166#190 +#220#176#200#230#173#194#225#173#194#225#174#195#226#175#196#227#175#196#227 +#176#197#228#176#197#228#177#198#229#181#201#232#181#201#232#181#201#232#180 +#200#231#180#200#231#180#200#231#179#199#230#179#199#230#180#197#230#180#197 +#230#179#196#229#178#195#228#177#194#227#177#194#227#176#193#226#176#193#226 +#173#188#221#173#188#221#172#187#220#172#187#220#171#186#219#170#185#218#169 +#184#217#169#184#217#170#185#218#170#185#218#169#184#217#169#184#217#168#183 +#216#167#182#215#167#182#215#166#181#214#164#179#212#164#179#212#164#179#212 +#163#178#211#17#29'5'#8#22'2'#25'+J'#26'/N'#21'.P'#16'-T'#10',W'#8'(Q'#5'!D' +#14'(L'#16'*N'#14'''I'#14'''I'#20'+K'#20'+K'#14'&D5JjWl'#140'f{'#155'g}'#160 +'h~'#161'i'#127#163'k'#131#167'l'#132#168'p'#136#172'r'#138#174'u'#143#179'y' +#147#183'{'#151#186'z'#152#187'z'#152#187'z'#152#187#127#156#193#129#158#195 +#133#160#197#136#162#198#138#164#200#142#167#201#143#168#200#143#168#200#148 +#171#203#149#172#204#149#173#203#150#174#204#152#176#204#153#178#204#153#178 +#204#154#179#205#154#176#204#158#180#208#158#180#208#156#178#206#159#181#209 +#160#182#210#160#182#210#161#183#211#169#189#220#169#189#220#170#190#221#170 +#190#221#171#191#222#172#192#223#173#193#224#173#193#224#174#194#225#174#194 +#225#174#194#225#174#194#225#173#193#224#173#193#224#173#193#224#173#193#224 +#175#192#225#174#191#224#174#191#224#173#190#223#173#190#223#172#189#222#171 +#188#221#171#188#221#171#186#219#171#186#219#170#185#218#170#185#218#169#184 +#217#168#183#216#167#182#215#167#182#215#169#184#217#168#183#216#168#183#216 +#167#182#215#166#181#214#165#180#213#164#179#212#164#179#212#164#178#214#164 +#178#214#163#177#213#163#177#213#15#25'+'#10#21'0'#21'''D'#19'(D'#26'-N'#19 +'1Z'#17'6b'#11'(T'#20'.R(Bf%>`%>`'#23'.N'#7#31'='#27'0O'#27'0OBWwez'#154'f{' +#155'_t'#148'ez'#154'i~'#158'o'#132#164'p'#133#165'p'#132#167'r'#134#169's' +#137#172'v'#140#175'v'#143#177'x'#145#179'w'#146#180'w'#146#180'}'#151#188'~' +#152#189#130#154#190#132#156#192#136#158#193#138#161#193#141#162#194#141#162 +#194#145#166#197#145#166#197#146#167#198#147#169#197#148#171#197#149#172#198 +#150#174#198#150#174#198#154#175#203#153#174#202#158#179#207#161#182#210#157 +#178#206#156#177#205#158#179#207#157#178#206#163#183#214#163#183#214#164#184 +#215#165#185#216#166#186#217#167#187#218#168#188#219#168#188#219#169#187#218 +#169#187#218#169#187#218#169#187#218#169#187#218#169#187#218#169#187#218#169 +#187#218#169#186#219#169#186#219#168#185#218#168#185#218#167#184#217#167#184 +#217#166#183#216#166#183#216#168#183#216#168#183#216#167#182#215#167#182#215 +#166#181#214#165#180#213#164#179#212#164#179#212#165#180#213#165#180#213#164 +#179#212#164#179#212#163#178#211#162#177#210#162#177#210#161#176#209#162#176 +#212#162#176#212#162#176#212#161#175#211#16#29'3'#18#29'='#19'(H'#25'.I'#24 +'''G'#11'(O'#20'8`$<`;VxMf'#136'Jc'#133'Md'#132'=Tt/Dc@UtH^zOc'#134'cw'#154 +'cv'#151'\o'#144'cv'#151'k}'#156'k}'#156'o'#129#160'q'#130#163'r'#131#164'q' +#132#165's'#134#167'u'#138#170'v'#141#173'x'#143#175'z'#145#177'{'#147#183'}' +#147#183#127#149#185#131#151#186#133#153#188#135#154#187#137#157#188#137#157 +#188#140#160#191#140#160#191#141#162#190#142#163#191#143#164#191#144#166#191 +#145#167#192#145#167#192#149#168#195#151#170#197#157#176#203#160#179#206#155 +#174#201#154#173#200#158#177#204#158#177#204#159#177#208#159#177#208#160#178 +#209#161#179#210#163#181#212#164#182#213#165#183#214#165#183#214#164#182#213 +#164#182#213#164#182#213#165#183#214#165#183#214#165#183#214#165#183#214#165 +#183#214#164#181#214#164#181#214#164#181#214#163#180#213#163#180#213#163#180 +#213#162#179#212#162#179#212#164#179#212#164#179#212#163#178#211#162#177#210 +#161#176#209#161#176#209#160#175#208#160#175#208#160#175#208#160#175#208#159 +#174#207#159#174#207#159#174#207#158#173#206#158#173#206#158#173#206#157#170 +#208#157#170#208#156#169#207#156#169#207#7#24'3'#15#31'D'#15'''K!8R'#21'!='#3 +#29'A'#26'=_I[xTm'#143'Pi'#139'Rk'#141'Tk'#139'Wo'#141'^s'#146'^s'#143'av' +#146']q'#148'`t'#151'dw'#152'_r'#147'fx'#151'j|'#155'fu'#149'm}'#154'r'#129 +#162'r'#129#162'q'#130#163'r'#131#164's'#134#167'v'#139#171'y'#142#174'|'#145 +#177'z'#144#180'{'#145#181'~'#146#181#127#147#182#130#149#182#132#151#184#135 ,#153#184#136#154#185#138#156#187#138#156#185#139#157#186#140#159#186#141#160 +#187#142#162#187#143#163#188#143#163#188#150#167#194#152#169#196#149#166#193 +#145#162#189#147#164#191#156#173#200#161#178#205#159#176#203#155#173#204#155 +#173#204#156#174#205#157#175#206#159#177#208#160#178#209#161#179#210#161#179 +#210#164#179#211#164#179#211#164#179#211#164#179#211#164#179#211#164#179#211 +#165#180#212#165#180#212#161#178#211#161#178#211#161#178#211#161#178#211#160 +#177#210#160#177#210#160#177#210#160#177#210#160#175#208#160#175#208#159#174 +#207#159#174#207#158#173#206#157#172#205#156#171#204#156#171#204#156#171#204 +#156#171#204#156#171#204#155#170#203#155#170#203#155#170#203#155#170#203#155 +#170#203#152#165#203#152#165#203#151#164#202#151#164#202#11#21'3'#20'&C'#19 +')E'#27'0L +I'#21#31'='#14#28'9'#27'1MYg'#132'Yg'#132'[i'#134']k'#136'^l'#137 +'`n'#139'ao'#140'bp'#141'^n'#139'_o'#140'aq'#142'cs'#144'eu'#146'hx'#149'iy' +#150'jz'#151'm'#128#155'm'#128#155'o'#130#157'q'#132#159's'#134#161'u'#136 +#163'w'#138#165'x'#139#166'z'#140#169'{'#141#170'|'#142#171'~'#144#173#128 +#146#175#130#148#177#131#149#178#132#150#179#138#152#181#138#152#181#139#153 +#182#141#155#184#142#156#185#143#157#186#144#158#187#145#159#188#148#162#191 +#148#162#191#149#163#192#150#164#193#152#166#195#153#167#196#154#168#197#155 +#169#198#159#173#201#159#173#201#160#174#202#161#175#203#161#175#203#162#176 +#204#163#177#205#163#177#205#164#177#209#164#177#209#164#177#209#164#177#209 +#164#177#209#164#177#209#164#177#209#164#177#209#164#177#209#164#177#209#163 +#176#208#163#176#208#162#175#207#162#175#207#161#174#206#161#174#206#161#171 +#205#161#171#205#160#170#204#160#170#204#159#169#203#158#168#202#157#167#201 +#157#167#201#158#167#204#157#166#203#157#166#203#156#165#202#156#165#202#155 +#164#201#155#164#201#155#164#201#150#164#200#150#164#200#149#163#199#149#163 +#199#19'!>'#14#30';'#19'%B%5R(6S'#26'%C*8U3EbWe'#129'We'#129'Yg'#131'Zh'#132 +'\j'#134'^l'#136'_m'#137'`n'#138'^n'#139'_o'#140'`p'#141'cs'#144'eu'#146'gw' +#148'iy'#150'jz'#151'k~'#153'l'#127#154'n'#129#156'p'#131#158'r'#133#160't' +#135#162'u'#136#163'v'#137#164'y'#139#168'y'#139#168'{'#141#170'|'#142#171'~' +#144#173#128#146#175#130#148#177#130#148#177#136#150#179#137#151#180#138#152 +#181#139#153#182#141#155#184#142#156#185#143#157#186#143#157#186#146#160#189 +#147#161#190#148#162#191#149#163#192#150#164#193#151#165#194#152#166#195#153 +#167#196#155#169#197#155#169#197#156#170#198#157#171#199#158#172#200#158#172 +#200#159#173#201#159#173#201#160#173#205#160#173#205#160#173#205#160#173#205 +#160#173#205#160#173#205#160#173#205#160#173#205#160#173#205#160#173#205#159 +#172#204#159#172#204#158#171#203#158#171#203#157#170#202#157#170#202#158#168 +#202#157#167#201#157#167#201#156#166#200#155#165#199#154#164#198#154#164#198 +#153#163#197#154#163#200#153#162#199#153#162#199#153#162#199#152#161#198#152 +#161#198#151#160#197#151#160#197#146#160#196#146#160#196#146#160#196#145#159 +#195#17'!>'#20'"?'#24'#A'#28'*G'#24'(E'#24'*GHXu_j'#136'Wc'#127'Xd'#128'Ye' +#129'Zf'#130'\h'#132']i'#133'_k'#135'_k'#135'_m'#138'`n'#139'bp'#141'dr'#143 +'ft'#145'hv'#147'iw'#148'jx'#149'k|'#151'k|'#151'm~'#153'o'#128#155'q'#130 +#157's'#132#159'u'#134#161'v'#135#162'x'#136#165'y'#137#166'z'#138#167'|'#140 +#169'~'#142#171#128#144#173#129#145#174#130#146#175#134#148#177#134#148#177 +#135#149#178#137#151#180#138#152#181#139#153#182#140#154#183#141#155#184#143 +#157#186#144#158#187#145#159#188#146#160#189#148#162#191#149#163#192#150#164 +#193#150#164#193#151#165#194#151#165#194#152#166#195#152#166#195#153#167#196 +#154#168#197#155#169#198#155#169#198#155#168#200#155#168#200#155#168#200#155 +#168#200#155#168#200#155#168#200#155#168#200#155#168#200#155#168#200#155#168 +#200#155#168#200#154#167#199#154#167#199#153#166#198#153#166#198#153#166#198 +#153#163#197#153#163#197#152#162#196#151#161#195#151#161#195#150#160#194#149 +#159#193#149#159#193#149#159#193#149#159#193#148#158#192#148#158#192#147#157 +#191#147#157#191#147#157#191#146#156#190#143#155#189#143#155#189#143#155#189 +#142#154#188#7#26'5'#12#24'4'#8#16'-'#22'!='#29'.I1FaN\x^f'#131'Wd~Xe'#127'Y' +'f'#128'Zg'#129'\i'#131']j'#132'^k'#133'_l'#134'^l'#136'_m'#137'ao'#139'bp' +#140'dr'#142'ft'#144'hv'#146'iw'#147'hy'#148'iz'#149'j{'#150'l}'#152'o'#128 +#155'q'#130#157'r'#131#158's'#132#159'u'#133#162'v'#134#163'w'#135#164'y'#137 +#166'{'#139#168'}'#141#170'~'#142#171#127#143#172#131#145#174#132#146#175#133 +#147#176#134#148#177#135#149#178#137#151#180#138#152#181#138#152#181#140#154 +#183#141#155#184#142#156#185#143#157#186#145#159#188#146#160#189#147#161#190 +#147#161#190#148#162#191#149#163#192#149#163#192#150#164#193#151#165#194#152 +#166#195#152#166#195#152#166#195#153#166#198#153#166#198#153#166#198#153#166 +#198#153#166#198#153#166#198#153#166#198#153#166#198#153#166#198#152#165#197 +#152#165#197#152#165#197#151#164#196#150#163#195#150#163#195#150#163#195#151 +#161#195#150#160#194#150#160#194#149#159#193#148#158#192#147#157#191#147#157 ,#191#147#157#191#146#156#190#146#156#190#146#156#190#145#155#189#145#155#189 +#144#154#188#144#154#188#144#154#188#140#152#186#140#152#186#140#152#186#140 +#152#186#14'!<'#18#29'9''-JEMjQb}[n'#137'Tb~[a~Ze'#128'[f'#129'\g'#130']h' +#131'^i'#132'_j'#133'`k'#134'al'#135'_k'#135'`l'#136'am'#137'co'#139'eq'#141 +'gs'#143'ht'#144'iu'#145'hv'#146'iw'#147'jx'#148'lz'#150'n|'#152'p~'#154'r' +#128#156's'#129#157'u'#131#160'v'#132#161'w'#133#162'y'#135#164'{'#137#166'}' +#139#168'~'#140#169#127#141#170#129#143#172#130#144#173#131#145#174#132#146 +#175#133#147#176#134#148#177#135#149#178#136#150#179#138#152#181#138#152#181 +#139#153#182#141#155#184#142#156#185#143#157#186#144#158#187#145#159#188#148 +#161#193#148#161#193#149#162#194#149#162#194#150#163#195#151#164#196#152#165 +#197#152#165#197#152#165#197#152#165#197#152#165#197#152#165#197#152#165#197 +#152#165#197#152#165#197#152#165#197#152#165#197#152#165#197#151#164#196#151 +#164#196#150#163#195#150#163#195#149#162#194#149#162#194#150#160#194#150#160 +#194#149#159#193#148#158#192#148#158#192#147#157#191#146#156#190#146#156#190 +#146#157#189#145#156#188#145#156#188#144#155#187#144#155#187#143#154#186#143 +#154#186#143#154#186#141#152#184#141#152#184#141#152#184#140#151#183#20'#=' +#31'*EMVqVa|Vc}Tc}Ta{Zc~[g'#127'[g'#127'\h'#128']i'#129'^j'#130'_k'#131'`l' +#132'`l'#132'`k'#134'`k'#134'al'#135'cn'#137'ep'#139'fq'#140'gr'#141'hs'#142 +'ht'#144'iu'#145'kw'#147'my'#149'o{'#151'q}'#153's'#127#155's'#127#155'v'#129 +#159'w'#130#160'x'#131#161'z'#133#163'|'#135#165'}'#136#166#127#138#168#127 +#138#168#128#142#171#128#142#171#129#143#172#130#144#173#132#146#175#133#147 +#176#134#148#177#135#149#178#136#150#179#137#151#180#138#152#181#139#153#182 +#140#154#183#142#156#185#143#157#186#143#157#186#147#159#193#147#159#193#148 +#160#194#148#160#194#149#161#195#150#162#196#151#163#197#151#163#197#151#164 +#196#151#164#196#151#164#196#151#164#196#151#164#196#151#164#196#151#164#196 +#151#164#196#151#164#196#150#163#195#150#163#195#149#162#194#149#162#194#148 +#161#193#148#161#193#148#161#193#149#159#193#149#159#193#148#158#192#147#157 +#191#147#157#191#146#156#190#145#155#189#145#155#189#144#155#187#144#155#187 +#144#155#187#143#154#186#143#154#186#142#153#185#142#153#185#141#152#184#140 +#149#182#140#149#182#140#149#182#140#149#182'=FaDOjYf'#128'P]wR[vW`{Ze'#128 +'\i'#131'[e}[e}\f~]g'#127'^h'#128'_i'#129'_i'#129'`j'#130'_j'#133'`k'#134'al' +#135'bm'#136'do'#138'ep'#139'fq'#140'gr'#141'ht'#144'iu'#145'jv'#146'lx'#148 +'nz'#150'p|'#152'r~'#154's'#127#155'u'#128#158'v'#129#159'w'#130#160'y'#132 +#162'{'#134#164'}'#136#166'~'#137#167#127#138#168#127#141#170#128#142#171#129 +#143#172#130#144#173#131#145#174#132#146#175#133#147#176#134#148#177#135#149 +#178#136#150#179#137#151#180#138#152#181#140#154#183#141#155#184#142#156#185 +#142#156#185#144#156#190#144#156#190#145#157#191#146#158#192#147#159#193#147 +#159#193#148#160#194#148#160#194#148#161#193#148#161#193#148#161#193#148#161 +#193#148#161#193#148#161#193#148#161#193#148#161#193#148#161#193#148#161#193 +#147#160#192#147#160#192#146#159#191#146#159#191#145#158#190#145#158#190#147 +#157#191#146#156#190#146#156#190#145#155#189#144#154#188#143#153#187#143#153 +#187#142#152#186#142#153#183#141#152#182#141#152#182#140#151#181#140#151#181 +#139#150#180#139#150#180#139#150#180#138#148#178#137#147#177#137#147#177#137 +#147#177'X]vZf~M_vQax\c|_d}Q[sVf}YdzYdzZe{[f|\g}\g}]h~]h~_k'#131'_k'#131'`l' +#132'bn'#134'co'#135'dp'#136'eq'#137'fr'#138'ht'#144'ht'#144'jv'#146'lx'#148 +'nz'#150'p|'#152'r~'#154's'#127#155'u'#128#158'v'#129#159'w'#130#160'y'#132 +#162'{'#134#164'}'#136#166'~'#137#167#127#138#168#127#141#170#127#141#170#128 +#142#171#130#144#173#131#145#174#132#146#175#133#147#176#134#148#177#135#149 +#178#136#150#179#137#151#180#138#152#181#139#153#182#141#155#184#142#156#185 +#142#156#185#142#154#188#142#154#188#143#155#189#143#155#189#144#156#190#145 +#157#191#146#158#192#146#158#192#145#158#190#145#158#190#145#158#190#145#158 +#190#145#158#190#145#158#190#145#158#190#145#158#190#145#158#190#145#158#190 +#145#158#190#144#157#189#144#157#189#143#156#188#143#156#188#143#156#188#144 +#154#188#144#154#188#143#153#187#143#153#187#142#152#186#141#151#185#140#150 +#184#140#150#184#139#150#180#139#150#180#138#149#179#138#149#179#137#148#178 +#137#148#178#136#147#177#136#147#177#135#145#175#135#145#175#135#145#175#134 +#144#174'T\yT\yT\yU]zU]zV^{V^{W_|Xa|Yb}Yb}Zc~[d'#127'\e'#128'\e'#128'\e'#128 +'bh'#133'bh'#133'ci'#134'ek'#136'fl'#137'gm'#138'hn'#139'io'#140'gr'#141'hs' +#142'it'#143'kv'#145'mx'#147'ny'#148'p{'#150'p{'#150'q}'#153'r~'#154's'#127 +#155'u'#129#157'w'#131#159'x'#132#160'z'#134#162'z'#134#162'|'#138#166'|'#138 +#166'}'#139#167#127#141#169#128#142#170#129#143#171#130#144#172#131#145#173 +#133#145#173#134#146#174#134#146#174#136#148#176#137#149#177#138#150#178#138 +#150#178#139#151#179#139#150#180#139#150#180#140#151#181#140#151#181#141#152 +#182#141#152#182#142#153#183#142#153#183#145#155#185#145#155#185#145#155#185 ,#145#155#185#145#155#185#145#155#185#145#155#185#145#155#185#143#153#183#143 +#153#183#143#153#183#143#153#183#142#152#182#142#152#182#142#152#182#142#152 +#182#141#150#183#141#150#183#140#149#182#140#149#182#139#148#181#139#148#181 +#138#147#180#138#147#180#136#147#179#136#147#179#135#146#178#135#146#178#134 +#145#177#134#145#177#133#144#176#133#144#176#133#142#175#132#141#174#132#141 +#174#132#141#174'T]xT]xU^yU^yV_zV_zW`{W`{Yb}Yb}Yb}Zc~[d'#127'\e'#128'\e'#128 +']f'#129'bi'#132'bi'#132'cj'#133'el'#135'fm'#136'gn'#137'ho'#138'ip'#139'gr' +#141'hs'#142'it'#143'kv'#145'lw'#146'ny'#148'oz'#149'p{'#150'q}'#153'q}'#153 +'s'#127#155't'#128#156'v'#130#158'x'#132#160'y'#133#161'z'#134#162'{'#137#165 +'{'#137#165'|'#138#166'}'#139#167#127#141#169#128#142#170#129#143#171#130#144 +#172#132#144#172#132#144#172#133#145#173#134#146#174#135#147#175#136#148#176 +#137#149#177#138#150#178#138#149#179#138#149#179#139#150#180#139#150#180#140 +#151#181#140#151#181#140#151#181#141#152#182#143#153#183#143#153#183#143#153 +#183#143#153#183#143#153#183#143#153#183#143#153#183#143#153#183#142#152#182 +#142#152#182#142#152#182#141#151#181#141#151#181#141#151#181#141#151#181#141 +#151#181#140#149#182#139#148#181#139#148#181#138#147#180#138#147#180#137#146 +#179#137#146#179#137#146#179#135#146#178#135#146#178#134#145#177#134#145#177 +#133#144#176#133#144#176#132#143#175#132#143#175#131#140#173#131#140#173#131 +#140#173#131#140#173'U^yU^yU^yV_zV_zW`{W`{W`{Yc{Yc{Zd|Zd|[e}\f~]g'#127']g' +#127'bi'#132'bi'#132'cj'#133'dk'#134'fm'#136'gn'#137'ho'#138'ip'#139'gr'#141 +'gr'#141'it'#143'ju'#144'lw'#146'mx'#147'ny'#148'oz'#149'q|'#152'r}'#153's~' +#154't'#127#155'v'#129#157'w'#130#158'y'#132#160'y'#132#160'z'#134#162'{'#135 +#163'|'#136#164'}'#137#165'~'#138#166#128#140#168#129#141#169#129#141#169#130 +#142#170#130#142#170#131#143#171#132#144#172#133#145#173#134#146#174#135#147 +#175#135#147#175#136#147#177#136#147#177#136#147#177#137#148#178#137#148#178 +#138#149#179#138#149#179#138#149#179#141#151#181#141#151#181#141#151#181#141 +#151#181#141#151#181#141#151#181#141#151#181#141#151#181#140#150#180#140#150 +#180#139#149#179#139#149#179#139#149#179#139#149#179#138#148#178#138#148#178 +#137#146#179#137#146#179#137#146#179#136#145#178#136#145#178#135#144#177#135 +#144#177#135#144#177#134#143#176#133#142#175#133#142#175#133#142#175#132#141 +#174#132#141#174#131#140#173#131#140#173#129#138#171#129#138#171#129#138#171 +#129#138#171'V]vW^wW^wX_xX_xY`yY`yY`yZaz[b{[b{\c|]d}^e~^e~_f'#127'ah'#129'ah' +#129'bi'#130'dk'#132'el'#133'fm'#134'gn'#135'ho'#136'hq'#140'hq'#140'ir'#141 +'kt'#143'lu'#144'nw'#146'ox'#147'ox'#147'oz'#150'p{'#151'q|'#152'r}'#153't' +#127#155'u'#128#156'v'#129#157'w'#130#158'w'#131#159'x'#132#160'y'#133#161'z' +#134#162'{'#135#163'}'#137#165'~'#138#166'~'#138#166#127#139#167#127#139#167 +#128#140#168#129#141#169#130#142#170#131#143#171#132#144#172#132#144#172#133 +#144#174#133#144#174#133#144#174#134#145#175#134#145#175#135#146#176#135#146 +#176#135#146#176#138#148#178#138#148#178#138#148#178#138#148#178#138#148#178 +#138#148#178#138#148#178#138#148#178#137#147#177#137#147#177#137#147#177#136 +#146#176#136#146#176#136#146#176#136#146#176#136#146#176#135#144#177#134#143 +#176#134#143#176#134#143#176#133#142#175#132#141#174#132#141#174#132#141#174 +#131#140#173#131#140#173#130#139#172#130#139#172#129#138#171#129#138#171#128 +#137#170#128#137#170'~'#135#168'~'#135#168'~'#135#168'~'#135#168'V]vV]vV]vW^' +'wW^wX_xX_xX_xYaxZbyZby[cz\d{]e|]e|]e|_f'#127'`g'#128'ah'#129'bi'#130'cj'#131 +'el'#133'fm'#134'fm'#134'ho'#138'ip'#139'ip'#139'kr'#141'ls'#142'mt'#143'nu' +#144'nu'#144'ow'#148'ow'#148'px'#149'qy'#150's{'#152't|'#153'u}'#154'u}'#154 +'u'#128#156'u'#128#156'v'#129#157'x'#131#159'y'#132#160'z'#133#161'{'#134#162 +'|'#135#163'{'#135#163'|'#136#164'}'#137#165'~'#138#166#127#139#167#128#140 +#168#128#140#168#129#141#169#129#140#170#129#140#170#130#141#171#130#141#171 +#131#142#172#131#142#172#132#143#173#132#143#173#135#145#175#135#145#175#135 +#145#175#135#145#175#135#145#175#135#145#175#135#145#175#135#145#175#134#144 +#174#134#144#174#134#144#174#133#143#173#133#143#173#133#143#173#133#143#173 +#133#143#173#132#141#174#131#140#173#131#140#173#130#139#172#130#139#172#129 +#138#171#129#138#171#129#138#171#130#137#170#130#137#170#129#136#169#129#136 +#169#128#135#168#128#135#168#127#134#167#127#134#167'{'#132#165'{'#132#165'{' +#132#165'{'#132#165'V\sV\sW]tW]tX^uX^uY_vY_vZauZauZau[bv\cw]dx]dx^ey]e|]e|^f' +'}`h'#127'ai'#128'bj'#129'ck'#130'dl'#131'fm'#136'fm'#136'gn'#137'ho'#138'ip' +#139'jq'#140'kr'#141'kr'#141'lt'#145'lt'#145'mu'#146'nv'#147'ow'#148'px'#149 +'qy'#150'qy'#150'r}'#153'r}'#153's~'#154'u'#128#156'v'#129#157'w'#130#158'x' +#131#159'y'#132#160'x'#132#160'y'#133#161'y'#133#161'z'#134#162'|'#136#164'}' +#137#165'}'#137#165'~'#138#166'~'#137#167'~'#137#167#127#138#168#127#138#168 +#128#139#169#128#139#169#129#140#170#129#140#170#132#142#172#132#142#172#132 +#142#172#132#142#172#132#142#172#132#142#172#132#142#172#132#142#172#131#141 ,#171#131#141#171#131#141#171#131#141#171#130#140#170#130#140#170#130#140#170 +#130#140#170#129#138#171#129#138#171#128#137#170#128#137#170#127#136#169#127 +#136#169'~'#135#168'~'#135#168#127#134#167#127#134#167'~'#133#166'~'#133#166 +'}'#132#165'}'#132#165'}'#132#165'|'#131#164'y'#130#163'y'#130#163'x'#129#162 +'x'#129#162'U[rU[rU[rV\sV\sW]tW]tW]tX_sX_sY`tZauZau[bv\cw\cw[cz[cz\d{^f}_g~`' +'h'#127'ai'#128'bj'#129'fj'#134'fj'#134'gk'#135'hl'#136'im'#137'im'#137'jn' +#138'jn'#138'kq'#142'kq'#142'lr'#143'ms'#144'nt'#145'ou'#146'ou'#146'pv'#147 +'qy'#150'rz'#151's{'#152't|'#153'v~'#155'w'#127#156'x'#128#157'x'#128#157'v' +#130#158'v'#130#158'w'#131#159'x'#132#160'y'#133#161'z'#134#162'{'#135#163'{' +#135#163'|'#135#165'|'#135#165'|'#135#165'}'#136#166'}'#136#166'~'#137#167'~' +#137#167#127#138#168#129#139#169#129#139#169#129#139#169#129#139#169#129#139 +#169#129#139#169#129#139#169#129#139#169#129#139#169#129#139#169#129#139#169 +#128#138#168#128#138#168#128#138#168#128#138#168#128#138#168#127#136#169'~' +#135#168'~'#135#168'~'#135#168'}'#134#167'|'#133#166'|'#133#166'|'#133#166 +#127#132#165#127#132#165'~'#131#164'~'#131#164'}'#130#163'}'#130#163'|'#129 +#162'|'#129#162'v'#127#160'v'#127#160'v'#127#160'v'#127#160'UYqUYqUYqVZrVZrW' +'[sW[sW[sX]rX]rY^sY^sZ_t[`u\av\avYaxZby[cz\d{^f}_g~`h'#127'`h'#127'dh'#132'e' +'i'#133'ei'#133'fj'#134'gk'#135'hl'#136'hl'#136'im'#137'io'#140'jp'#141'jp' +#141'kq'#142'lr'#143'ms'#144'ms'#144'nt'#145'px'#149'qy'#150'rz'#151's{'#152 +'t|'#153'v~'#155'w'#127#156'w'#127#156'u'#129#157'u'#129#157'v'#130#158'w' +#131#159'x'#132#160'y'#133#161'z'#134#162'z'#134#162'{'#134#164'{'#134#164'{' +#134#164'|'#135#165'|'#135#165'}'#136#166'}'#136#166'}'#136#166#128#138#168 +#128#138#168#128#138#168#128#138#168#128#138#168#128#138#168#128#138#168#128 +#138#168#128#138#168#128#138#168#128#138#168#127#137#167#127#137#167#127#137 +#167#127#137#167'~'#136#166'~'#135#168'}'#134#167'}'#134#167'|'#133#166'|' +#133#166'{'#132#165'{'#132#165'{'#132#165'~'#131#164'~'#131#164'}'#130#163'}' +#130#163'|'#129#162'|'#129#162'{'#128#161'{'#128#161'u~'#159'u~'#159'u~'#159 +'u~'#159'TYnTYnTYnUZoUZoV[pV[pW\qVZrVZrW[sW[sX\tY]uZ^vZ^v\`x\`x]ay^bz_c{_c{`' +'d|`d|bh'#127'ci'#128'ci'#128'dj'#129'ek'#130'fl'#131'fl'#131'gm'#132'gn'#137 +'gn'#137'ho'#138'ip'#139'jq'#140'kr'#141'ls'#142'ls'#142'ku'#141'lv'#142'nw' +#146'py'#148'qy'#150'qy'#151'qy'#151'px'#150'y}'#154'y}'#154'z~'#155'{'#127 +#156'{'#127#156'|'#128#157'|'#128#157'|'#128#157'y'#128#155'z'#129#156'|'#131 +#158'~'#133#160#127#134#161#128#135#162#127#134#161#127#134#161'~'#133#160'|' +#133#160'z'#133#160'z'#135#161'x'#135#161'w'#136#162'u'#137#162'u'#137#162 +#129#135#164#128#134#163'~'#132#161'}'#131#160'|'#130#159'|'#130#159'}'#131 +#160'}'#131#160'|'#132#162'|'#132#162'|'#132#162'|'#132#162'{'#131#161'{'#131 +#161'{'#131#161'{'#131#161'y'#129#158'y'#129#158'y'#129#158'x'#128#157'w'#127 +#156'w'#127#156'w'#127#156'v~'#155's{'#153's{'#153's{'#153's{'#153'SXmSXmTYn' +'TYnUZoUZoV[pV[pVZrVZrW[sW[sX\tY]uZ^vZ^v[_w\`x\`x]ay^bz_c{_c{_c{ag~bh'#127'b' +'h'#127'ci'#128'dj'#129'ek'#130'ek'#130'fl'#131'gk'#135'gk'#135'hl'#136'im' +#137'jn'#138'ko'#139'lp'#140'lp'#140'ls'#140'mt'#141'ov'#145'qx'#147'rx'#149 +'sy'#150'sx'#151'sx'#151'qy'#150'rz'#151'rz'#151's{'#152't|'#153'u}'#154'v~' +#155'v~'#155'x'#127#154'y'#128#155'{'#130#157'|'#131#158'}'#132#159'|'#131 +#158'|'#131#158'{'#130#157#128#132#160'~'#133#160'}'#132#159'{'#132#159'x' +#131#158'w'#132#158't'#131#157't'#131#157'~'#132#161'}'#131#160'|'#130#159'{' +#129#158'{'#129#158'{'#129#158'|'#130#159'|'#130#159'y'#129#159'y'#129#159'y' +#129#159'x'#128#158'x'#128#158'x'#128#158'x'#128#158'w'#127#157'x~'#155'x~' +#155'w}'#154'w}'#154'v|'#153'v|'#153'u{'#152'u{'#152'ty'#152'ty'#152'ty'#152 +'ty'#152'TWlTWlUXmUXmVYnVYnWZoWZoX[pX[pX[pY\qZ]r[^s[^s\_t\_t\_t]`u^av^av_bw`' +'cx`cxaf{af{bg|bg|ch}di~ej'#127'ej'#127'di'#130'ej'#131'fk'#132'gl'#133'hm' +#134'in'#135'in'#135'jo'#136'jr'#137'kr'#139'mt'#141'ov'#145'qx'#147'rx'#149 +'sy'#150'sx'#151'lx'#148'lx'#148'lx'#148'my'#149'o{'#151'p|'#152'r~'#154'r~' +#154't|'#153'u}'#154'u}'#154'u}'#154'u}'#154'u}'#154't|'#153's{'#152'|~'#156 +'|~'#156'{'#127#156'{'#127#156'y'#127#156'y'#127#156'w'#127#156'w'#127#156'z' +#128#157'z'#128#157'y'#127#156'x~'#155'x~'#155'y'#127#156'z'#128#157'z'#128 +#157'u}'#155'u}'#155'u}'#155't|'#154't|'#154't|'#154't|'#154't|'#154'tz'#151 +'tz'#151'tz'#151'sy'#150'sy'#150'rx'#149'rx'#149'rx'#149'rw'#150'rw'#150'rw' +#150'rw'#150'RUjSVkSVkTWlTWlUXmUXmUXmWZoWZoX[pX[pY\qZ]rZ]r[^sZ]rZ]r[^s\_t]`u' +']`u^av^av^cx_dy_dy`ezaf{bg|bg|ch}ei'#130'ei'#130'fj'#131'gk'#132'hl'#133'im' +#134'jn'#135'jn'#135'io'#134'jp'#135'lq'#138'ns'#140'qu'#145'rv'#146'tx'#149 +'tx'#149'jx'#148'ky'#149'ky'#149'lz'#150'n|'#152'p~'#154'r'#128#156's'#129 +#157't|'#153't|'#153't|'#153's{'#152's{'#152'rz'#151'qy'#150'qy'#150'vx'#150 +'vx'#150'wy'#151'xz'#152'y{'#153'y}'#154'z~'#155'{'#127#156'w}'#154'v|'#153 +'u{'#152'u{'#152'u{'#152'v|'#153'w}'#154'w}'#154'u{'#152'u{'#152'tz'#151'tz' ,#151'tz'#151'tz'#151'sy'#150'sy'#150'tx'#149'tx'#149'tx'#149'sw'#148'sw'#148 +'rv'#147'rv'#147'rv'#147'rv'#147'qu'#146'qu'#146'qu'#146'STiSTiSTiTUjTUjUVkU' +'VkVWlWXlWXlXYmYZnYZnZ[o[\p[\pZ[o[\p[\p\]q]^r]^r^_s^_s^bu^bu_cv`dw`dwaexbfyb' +'fydh'#128'ei'#129'ei'#129'fj'#130'hl'#132'im'#133'im'#133'jn'#134'gn'#130'h' +'o'#131'io'#134'kp'#137'mr'#139'os'#143'qu'#145'rv'#146'm{'#151'lz'#150'lz' +#150'm{'#151'o}'#153'q'#127#155's'#129#157'u'#131#159'w'#129#159'w'#129#159 +'v'#128#158'v'#128#158'u'#127#157'u'#127#157'u'#127#157'u'#127#157'x{'#154'w' +'z'#153'wz'#153'wz'#153'wz'#153'vy'#152'wy'#152'wy'#152'u{'#152'tz'#151'sy' +#150'rx'#149'rx'#149'sy'#150'sy'#150'tz'#151'tz'#151'tz'#151'sy'#150'sy'#150 +'sy'#150'sy'#150'rx'#149'rx'#149'sw'#148'sw'#148'sw'#148'rv'#147'rv'#147'qu' +#146'qu'#146'qu'#146'os'#144'os'#144'os'#144'nr'#143'SQgSQgTRhTRhUSiUSiVTjVT' +'jWVjWVjXWkXWkYXlZYm[Zn[ZnZYm[Zn[Zn\[o]\p^]q^]q_^r^_s^_s_`t_`t`auabvabvbcwdg' +'|dg|eh}fi~gj'#127'hk'#128'il'#129'jm'#130'fk'#128'fk'#128'gl'#129'hl'#132'j' +'n'#135'lp'#137'nq'#141'or'#142'px'#149'ow'#148'ow'#148'ow'#148'px'#149'rz' +#151'u}'#154'w'#127#156'z'#131#164'y'#130#163'y'#130#163'y'#130#163'y'#130 +#163'z'#131#164'{'#132#165'|'#133#166'x'#131#163'w'#130#162'v'#127#160's|' +#157'ry'#154'qv'#151'ot'#149'ns'#148'tz'#151'sy'#150'rx'#149'qw'#148'pv'#147 +'pv'#147'qw'#148'qw'#148'sw'#147'sw'#147'sw'#147'sw'#147'sw'#147'rv'#146'rv' +#146'rv'#146'rt'#146'rt'#146'rt'#146'qs'#145'qs'#145'pr'#144'pr'#144'pr'#144 +'mp'#140'mp'#140'mp'#140'mp'#140'RPfRPfSQgSQgTRhTRhUSiUSiUUgUUgVVhVVhWWiXXjY' +'YkYYkYYkYYkZZl[[m\\n\\n]]o]]o\^p\^p]_q^`r^`r_as`bt`bt`cx`cxadybezcf{dg|eh}e' +'h}dj}dj}di~ei'#129'fj'#130'hl'#133'jn'#135'ko'#136'oq'#143'np'#142'ln'#140 +'ln'#140'mo'#141'oq'#143'qs'#145'su'#147'p{'#155'p{'#155'p{'#155'q|'#156'r}' +#157't'#127#159'v'#129#161'w'#130#162'q'#133#164'r'#132#163'p'#130#161'p'#127 +#159'p}'#157'oz'#154'nw'#152'mv'#151'tz'#151'sy'#150'rx'#149'pv'#147'ou'#146 +'nt'#145'nt'#145'nt'#145'pt'#144'os'#143'os'#143'os'#143'os'#143'nr'#142'nr' +#142'nr'#142'oq'#143'oq'#143'np'#142'np'#142'mo'#141'mo'#141'ln'#140'ln'#140 +'kn'#138'kn'#138'kn'#138'kn'#138'QOeRPfRPfSQgSQgTRhTRhTRhSSeTTfTTfUUgVVhWWiW' +'WiXXjXXjYYkYYkZZl[[m\\n\\n\\n[]o[]o\^p]_q]_q^`r_as_as\_t]`u]`u^av`cxadyadyb' +'ezei|ei|eh}eh}fh'#128'hj'#130'jk'#133'kl'#134'lj'#136'ki'#135'jh'#134'ig' +#133'ig'#133'ki'#135'nl'#138'om'#139'do'#143'do'#143'do'#143'ep'#144'gr'#146 +'ju'#149'mx'#152'ny'#153'i'#129#159'i'#129#159'k'#128#159'l'#128#159'o'#129 +#160'q'#128#160's'#128#160'u'#128#160'u{'#152'tz'#151'rx'#149'pv'#147'nt'#145 +'ms'#144'ms'#144'ms'#144'mq'#138'mq'#138'mq'#138'mq'#138'lp'#137'lp'#137'lp' +#137'lp'#137'nn'#140'mm'#139'mm'#139'mm'#139'll'#138'kk'#137'kk'#137'kk'#137 +'lm'#135'lm'#135'lm'#135'lm'#135'PNaPNaQObQObRPcRPcSQdSQdRRdSSeSSeTTfUUgVVhV' +'VhVVhWWiWWiWWiXXjXXjYYkYYkYYkY[mY[mZ\nZ\n[]o[]o\^p\^p\`r\`r\`r]as]as^bt^bt^' +'btecyecyecyfdzge{ge{ge{hf|cg'#127'dh'#128'dh'#128'dh'#128'ei'#129'ei'#129'f' +'j'#130'fj'#130'in'#131'im'#133'im'#133'jn'#135'jn'#135'kn'#138'kn'#138'lo' +#139'nr'#142'nr'#142'os'#143'os'#143'os'#143'os'#143'os'#143'pt'#144'pt'#144 +'pt'#144'nr'#142'mq'#141'ko'#139'im'#137'hl'#136'gk'#135'mn'#138'mn'#138'mn' +#138'lm'#137'kl'#136'jk'#135'jk'#135'jk'#135'gk'#135'gk'#135'gk'#135'gk'#135 +'gk'#135'fj'#134'fj'#134'fj'#134'ei'#133'ei'#133'ei'#133'ei'#133'OM`PNaPNaQO' +'bQObRPcRPcRPcRRdRRdRRdSSeTTfUUgUUgVVhVVhVVhWWiWWiXXjXXjYYkYYkXZlY[mY[mZ\nZ\' +'n[]o[]o[]o[_q[_q[_q\`r\`r]as]as^btdbxdbxdbxecyfdzfdzfdzge{bf~bf~cg'#127'cg' +#127'dh'#128'dh'#128'ei'#129'ei'#129'gl'#129'gl'#129'gk'#131'hl'#132'im'#134 +'il'#136'il'#136'jm'#137'jn'#138'jn'#138'jn'#138'jn'#138'jn'#138'ko'#139'ko' +#139'ko'#139'ko'#139'ko'#139'ko'#139'ko'#139'jn'#138'jn'#138'im'#137'im'#137 +'mn'#138'lm'#137'lm'#137'kl'#136'kl'#136'jk'#135'jk'#135'ij'#134'fj'#134'fj' +#134'fj'#134'fj'#134'fj'#134'ei'#133'ei'#133'ei'#133'dh'#132'dh'#132'dh'#132 +'dh'#132'NL_NL_OM`OM`PNaPNaQObQObPPbPPbQQcRRdSSeSSeTTfTTfUUgUUgUUgVVhVVhWWiW' +'WiWWiYYkYYkZZlZZl[[m[[m\\n\\n[]o[]o\^p\^p]_q]_q^`r^`rb`vb`vcawcawdbxdbxecye' +'cybezcf{cf{cf{dg|dg|eh}eh}fi~fi~fi~gi'#129'gh'#130'hi'#131'hi'#133'hi'#133 +'ei'#130'ei'#130'ei'#130'ei'#130'ei'#130'fj'#131'fj'#131'fj'#131'gk'#132'gk' +#132'hl'#133'hl'#133'im'#134'jn'#135'ko'#136'ko'#136'kl'#134'kl'#134'kl'#134 +'jk'#133'jk'#133'ij'#132'ij'#132'hi'#131'fj'#131'fj'#131'ei'#130'ei'#130'ei' +#130'ei'#130'dh'#129'dh'#129'cg'#128'cg'#128'cg'#128'cg'#128'LJ]MK^MK^MK^NL_' +'OM`OM`OM`OM`PNaPNaQObRPcSQdSQdTReTReTReTReUSfUSfVTgVTgWUhWWiXXjXXjXXjYYkZZl' +'ZZlZZlY[mY[mZ\nZ\n[]o[]o\^p\^p`_s`_s`_sa`tbaubaubaucbv`cx`cx`cxadyadybezbez' +'cf{bfybfybezcf{df~de'#127'de'#127'ef'#128'ae~ae~ae~ae~bf'#127'bf'#127'bf' +#127'bf'#127'cg'#128'cg'#128'dh'#129'ei'#130'fj'#131'gk'#132'hl'#133'hl'#133 +'ij'#132'hi'#131'hi'#131'hi'#131'gh'#130'gh'#130'gh'#130'gh'#130'cg'#128'cg' +#128'cg'#128'cg'#128'cg'#128'bf'#127'bf'#127'bf'#127'ae~ae~ae~ae~JH[KI\KI\LJ' +']LJ]MK^MK^MK^OK^PL_PL_QM`RNaSObSObTPcTPcTPcTPcUQdVReVReVReWSfVTgWUhWUhXViXV' ,'iYWjYWjYWjYYkYYkZZlZZl[[m[[m\\n\\n]]o^^p^^p^^p__q``r``r``r_`t_`t`au`auabvab' +'vbcwbcwabvabvabvbcxbcxcc{cc{cb|ac{ac{bd|bd|bd|bd|ce}ce}df~df~df~df~df~df~df' +'~df~eg'#127'eg'#127'eg'#127'eg'#127'eg'#127'df~df~df~ce}ce}ce}bd|bd|bd|bd|b' +'d|`bz`bz`bz`bzIGZIGZIGZJH[JH[KI\KI\KI\NJ]NJ]OK^OK^PL_QM`RNaRNaRNaRNaSObSObT' +'PcTPcUQdUQdUSfUSfUSfVTgVTgWUhWUhWUhWWiWWiXXjXXjYYkYYkZZlZZl[[m[[m\\n\\n]]o]' +']o^^p^^p^]q_^r_^r`_s`_sa`ta`ta`t``r``ra`ta`tb`vb`vc`yc`ybcxbcxbcxcdycdycdyc' +'dydezdezdezcdycdybcxbcxbcxabwadyadyadyadyadyadyadyadycdycdybcxbcxbcxbcxabwa' +'bw_`u_`u_`u_`uGEXGEXHFYHFYIGZIGZJH[JH[NH[OI\OI\PJ]QK^RL_RL_RL_SM`SM`SM`TNaT' +'NaUObUObVPcUQdUQdVReVReWSfWSfXTgXTgVTgWUhWUhXViXViYWjYWjYWjYYiZZjZZjZZj[[k\' +'\l\\l\\l\\n]]o]]o^^p^^p__q__q__q__q__q__q`_s`_sa_ua_ub_x`av`av`avabwabwabwa' +'bwabw`av`av`av`av`av`av`av`av^av^av^av^av^av^av^av^avabwabwabw`av`av`av`av`' +'av]^s]^s]^s]^sGEXGEXGEXHFYHFYIGZIGZIGZNH[NH[NH[OI\PJ]QK^QK^RL_RL_RL_SM`SM`T' +'NaTNaUObUObUQdUQdUQdVReVReWSfWSfWSfVTgVTgVTgWUhWUhXViXViXViXXhYYiYYiYYiZZj[' +'[k[[k[[k[[m\\n\\n]]o]]o^^p^^p^^p^^n^^n__q_^r`_s`^ta_ua_u^_t^_t^_t_`u_`u_`u_' +'`u_`u]^s]^s^_t^_t_`u`av`avabw\_t\_t\_t\_t\_t]`u]`u]`u`av`av`av_`u_`u_`u_`u_' +'`u\]r\]r\]r\]rJDUJDUJDUKEVKEVLFWLFWMGXPHYPHYQIZQIZRJ[RJ[SK\SK\SLaSLaSLaTMbT' +'MbUNcUNcUNcUO`UO`VPaVPaWQbWQbXRcXRcUSfUSfUSfVTgVTgWUhWUhWUhXViYWjYWjZXkZXk[' +'Yl[Yl[Yl\Zm\Zm\Zm][n][n][n][n^\o]\p]\p^]q^]q^]q^]q_^r_^r_^r_^r_^r_^r_^r_^r_' +'^r_^r`_s`_s`_s`_s`_s`_s`_s`_s`_s_^r_^r_^r_^r^]q^]q^]q_^r_^r_^r_^r_^r_^r_^r_' +'^r][o][o][o][oICTJDUJDUJDUKEVKEVLFWLFWPHYPHYPHYQIZQIZRJ[RJ[RJ[RK`RK`SLaSLaT' +'MbTMbUNcUNcTN_UO`UO`VPaVPaWQbWQbWQbVReVReWSfWSfXTgXTgYUhYUhXViXViXViYWjYWjZ' +'XkZXk[Yl[Yl[Yl\Zm\Zm\Zm\Zm][n][n]\p]\p]\p]\p]\p^]q^]q^]q^]q^]q^]q^]q^]q^]q^' +']q^]q_^r_^r_^r_^r_^r_^r_^r_^r_^r_^r^]q^]q^]q^]q]\p]\p^]q^]q^]q^]q^]q^]q^]q^' +']q\Zn\Zn\Zn\ZnHBSICTICTICTJDUKEVKEVKEVNFWOGXOGXPHYPHYQIZQIZQIZQJ_QJ_QJ_RK`R' +'K`SLaSLaSLaSM^SM^TN_TN_UO`UO`VPaVPaUQdUQdUQdVReVReWSfWSfWSfVTgWUhWUhWUhXViY' +'WjYWjYWjZXkZXkZXkZXk[Yl[Yl[Yl[Yl[Zn[Zn[Zn\[o\[o\[o\[o\[o\[o\[o\[o\[o\[o\[o\' +'[o\[o]\p]\p]\p]\p]\p]\p]\p]\p]\p]\p]\p]\p\[o\[o\[o\[o[Zn[Zn[Zn[Zn[Zn[Zn[Zn[' +'Zn[Ym[Ym[Ym[YmGARGARHBSHBSICTICTJDUJDUMEVMEVNFWNFWOGXOGXOGXPHYOI\OI\OI\PJ]P' +'J]QK^QK^RL_RL]RL]RL]SM^SM^TN_TN_TN_UObUObUObVPcVPcWQdWQdXReWSfWSfWSfXTgXTgY' +'UhYUhYUhZViZViZViZViZVi[Wj[Wj[WjZXlZXlZXlZXl[Ym[Ym[Ym[Ym[Ym[Ym[Ym[Ym[Ym[Ym[' +'Ym[Ym\Zn\Zn\Zn\Zn\Zn\Zn\Zn\Zn\Zn\Zn\Zn[Ym[Ym[Ym[Ym[YmYWkYWkYWkYWkYWkYWkYWkY' +'WkYWkYWkYWkYWkF@QF@QF@QGARGARHBSHBSHBSKCTLDULDULDUMEVMEVNFWNFWMGXMGXMGXNHYO' +'IZOIZOIZPJ[PJ[PJ[QK\QK\RL]RL]SM^SM^SM`SM`SM`TNaUObUObUObVPcUQdUQdUQdVReVReW' +'SfWSfWSfWSfXTgXTgXTgXTgYUhYUhYUhZUjZUjZUjZUj[Vk[Vk[Vk[Vk[Vk[Vk[Vk[Vk[Vk[Vk[' +'Vk[Vk\Wl\Wl\Wl\Wl\Wl\Wl\Wl\Wl\Wl\Wl\Wl[Vk[Vk[Vk[VkZUjYTiYTiYTiYTiYTiYTiYTiY' +'TiWUiWUiWUiWUiD>OE?PE?PF@QF@QGARGARGARJBSJBSJBSKCTKCTLDULDUMEVKEVKEVLFWLFWM' +'GXMGXNHYNHYOIZOIZOIZPJ[PJ[QK\QK\QK\SJ^SJ^TK_TK_UL`UL`VMaVMaUObUObUObVPcWQdW' +'QdWQdXReWQdXReXReXReXReXReYSfYSfXShXShXShXShXShYTiYTiYTiYTiYTiYTiYTiYTiYTiY' +'TiYTiZUjZUjZUjZUjZUjZUjZUjZUjZUjZUjYTiYTiYTiYTiYTiXShXShXShXShXShXShXShXShX' +'ShUSgUSgUSgUSgC=ND>OD>OE?PE?PF@QF@QF@QIARIARIARJBSJBSKCTKCTKCTJETJETJETKFUK' +'FULGVLGVMHWMGXNHYNHYNHYOIZPJ[PJ[PJ[RI]RI]RI]SJ^SJ^TK_TK_UL`SM`TNaTNaUObUObV' +'PcVPcVPcVPcVPcVPcVPcWQdWQdWQdWQdXQfXQfXQfYRgYRgYRgYRgYRgZShZShZShZShZShZShZ' +'ShZShZShZShZShZShZShZShZShZShZShZShZShZShYRgYRgYRgYRgYRgYRgYRgYRgYRgYRgYRgY' +'RgTRfTRfTRfTRfC=NC=NC=ND>OE?PE?PE?PF@QH@QH@QIARIARJBSJBSKCTKCTIDSIDSJETJETK' +'FUKFULGVLGVMGXMGXMGXNHYNHYOIZOIZOIZSH\SH\TI]TI]UJ^UJ^VK_VK_UL`UL`UL`VMaVMaW' +'NbWNbXOcWNbWNbWNbXOcXOcXOcXOcXOcWPeWPeXQfXQfXQfXQfYRgYRgYRgYRgYRgYRgYRgYRgY' +'RgYRgYRgYRgYRgYRgYRgYRgYRgYRgYRgYRgYRgYRgYRgXQfXQfXQfYRgYRgYRgYRgYRgYRgYRgY' +'RgSQeSQeSQeSQeF<LF<LG=MG=MH>NH>NI?OI?OI?OI?OJ@PJ@PKAQKAQLBRLBRKAQKAQLBRLBRM' +'CSMCSNDTNDTPFVPFVPFVPFVQGWQGWQGWQGWOHWOHWPIXQJYRKZSL[TM\TM\SL[SL[SL[TM\TM\T' +'M\TM\UN]SM^TN_TN_TN_TN_TN_UO`UO`WO`WO`WO`WO`XPaXPaXPaXPaSQdSQdSQdSQdSQdSQdS' +'QdSQdVPcVPcVPcVPcVPcVPcVPcVPcXReXReXReWQdWQdVPcVPcVPcVPcVPcVPcVPcVPcVPcVPcV' +'PcTMbTMbTMbTMbF<LF<LF<LG=MG=MH>NH>NH>NI?OI?OI?OJ@PJ@PKAQKAQKAQKAQKAQLBRLBRM' +'CSMCSNDTNDTOEUOEUOEUPFVPFVPFVPFVQGWNGVOHWOHWPIXQJYRKZSL[SL[RKZSL[SL[SL[SL[T' +'M\TM\TM\SM^SM^SM^SM^TN_TN_TN_TN_VN_VN_VN_WO`WO`WO`WO`XPaTPcTPcTPcTPcTPcTPcT' +'PcTPcVPcVPcVPcVPcVPcVPcVPcVPcWQdWQdWQdVPcVPcVPcUObUObUObUObUObUObUObUObUObU' +'ObTMbTMbTMbTMbD:JE;KE;KF<LF<LG=MG=MG=MG=MH>NH>NI?OI?OJ@PJ@PJ@PKAQKAQLBRLBRM' +'CSMCSNDTNDTNDTNDTNDTNDTOEUOEUOEUOEUMFUNGVNGVOHWPIXQJYQJYRKZQJYQJYQJYRKZRKZR' +'KZRKZRKZQK\QK\RL]RL]RL]RL]SM^SM^UM^UM^UM^UM^VN_VN_VN_VN_SObSObSObSObSObSObS' +'ObSObTNaTNaTNaTNaTNaTNaTNaTNaUObUObUObUObUObTNaTNaTNaTNaTNaTNaTNaTNaTNaTNaT' +'NaTMbTMbTMbTMbC9IC9ID:JD:JE;KE;KE;KF<LF<LF<LG=MG=MH>NH>NH>NI?OJ@PJ@PKAQKAQL' +'BRLBRMCSMCSLBRLBRLBRMCSMCSMCSMCSMCSLETLETMFUMFUNGVOHWOHWOHWOHWOHWPIXPIXPIXP' +'IXQJYQJYPJ[PJ[PJ[PJ[PJ[QK\QK\QK\SK\SK\SK\TL]TL]TL]TL]TL]SM`SM`SM`SM`SM`SM`S' +'M`SM`RL_RL_RL_RL_RL_RL_RL_RL_SM`SM`SM`SM`SM`RL_RL_RL_RL_RL_RL_RL_RL_RL_RL_R' +'L_RL_RL_RL_RL_A7GB8HB8HB8HC9IC9ID:JD:JD:JE;KE;KE;KF<LF<LG=MG=MH>NI?OI?OJ@PJ' ,'@PKAQKAQKAQJ@PJ@PJ@PKAQKAQKAQKAQKAQKDSKDSKDSLETLETLETMFUMFUMFUMFUNGVNGVNGVN' +'GVOHWOHWNHYNHYNHYNHYNHYOIZOIZOIZQIZQIZQIZRJ[RJ[RJ[RJ[RJ[QK^QK^QK^QK^QK^QK^Q' +'K^QK^QK^QK^QK^QK^QK^QK^QK^QK^PJ]PJ]PJ]PJ]PJ]QK^QK^QK^PJ]PJ]PJ]PJ]PJ]PJ]PJ]P' +'J]PJ[PJ[PJ[PJ[@6F@6F@6FA7GA7GB8HB8HC9IC9IC9IC9ID:JD:JE;KE;KF<LF<LF<LG=MG=MH' +'>NH>NI?OI?OH>NH>NI?OI?OI?OI?OJ@PJ@PIBQIBQJCRJCRJCRJCRKDSKDSLETLETLETLETLETM' +'FUMFUMFULFWLFWLFWLFWMGXMGXMGXMGXOGXOGXPHYPHYPHYPHYQIZQIZRI]RI]RI]RI]RI]RI]R' +'I]RI]OI\OI\OI\OI\OI\OI\OI\OI\NH[NH[NH[NH[NH[OI\OI\OI\NH[NH[NH[NH[NH[NH[NH[N' +'H[MGXMGXMGXMGX?5E?5E?5E@6F@6FA7GA7GA7GB8HB8HB8HC9IC9ID:JD:JD:JD:JD:JE;KE;KF' +'<LF<LG=MG=MG=MG=MG=MG=MH>NH>NH>NH>NHAPHAPHAPIBQIBQIBQIBQIBQJCRJCRJCRKDSKDSK' +'DSKDSLETJDUKEVKEVKEVKEVLFWLFWLFWNFWNFWNFWNFWOGXOGXOGXOGXPG[PG[PG[PG[PG[PG[P' +'G[PG[MGZMGZMGZMGZMGZMGZMGZMGZLFYLFYLFYMGZMGZMGZNH[NH[MGZMGZMGZMGZMGZMGZMGZM' +'GZKFUKFUKFUKFU>4D>4D?5E?5E@6F@6FA7GA7GA7GA7GB8HB8HC9IC9ID:JD:JC9IC9IC9ID:JD' +':JE;KE;KF<LF<LF<LG=MG=MG=MG=MG=MH>NHAPHAPHAPHAPHAPHAPHAPHAPIBQJCRJCRJCRJCRK' +'DSKDSKDSJDUJDUJDUJDUKEVKEVKEVKEVMEVMEVNFWNFWNFWNFWNFWOGXQFZQFZQFZQFZQFZQFZQ' +'FZQFZMGZMGZMGZMGZMGZMGZMGZMGZKEXKEXKEXLFYLFYMGZMGZMGZLFYLFYLFYLFYLFYLFYLFYL' +'FYIDSIDSIDSIDS>3C?4D?4D@5E@5EA6FA6FA6FB6HB6HC7IC7ID8JD8JE9KE9KA9JA9JB:KB:KC' +';LD<MD<ME=NG;MH<NH<NH<NH<NH<NI=OI=OE>ME>MF?NF?NG@OHAPHAPIBQKAQKAQLBRLBRLBRL' +'BRLBRMCSLBRLBRLBRLBRLBRMCSMCSMCSMCSMCSMCSNDTNDTNDTNDTNDTOEUOEUOEUOEUOEUOEUO' +'EUOEUPFVPFVPFVPFVPFVPFVPFVPFVOEVOEVOEVOEVNDUNDUNDUNDULDULDULDULDULDULDULDUL' +'DUOEUOEUOEUOEU>3C>3C?4D?4D@5E@5EA6FA6FB6HB6HB6HC7ID8JD8JD8JE9KA9JA9JB:KB:KC' +';LD<MD<MD<MG;MG;MG;MH<NH<NH<NH<NH<NE>ME>ME>MF?NG@OG@OHAPHAPJ@PJ@PJ@PKAQKAQK' +'AQKAQLBRKAQKAQKAQLBRLBRLBRLBRMCSLBRMCSMCSMCSMCSNDTNDTNDTOEUOEUOEUOEUOEUOEUO' +'EUOEUOEUOEUOEUOEUOEUOEUOEUOEUOEVOEVNDUNDUNDUNDUNDUMCTLDULDULDULDULDULDULDUL' +'DULBRLBRLBRLBR>3C>3C>3C?4D?4D@5E@5E@5EA5GB6HB6HB6HC7IC7ID8JD8JC9JC9JC9JD:KE' +';LE;LE;LF<MF:LG;MG;MG;MG;MH<NH<NH<NF<LG=MG=MG=MH>NH>NI?OI?OH>NI?OI?OI?OI?OI' +'?OJ@PJ@PJ@PJ@PKAQKAQKAQKAQLBRLBRLBRLBRLBRLBRLBRMCSMCSMCSNDTNDTNDTNDTNDTNDTN' +'DTNDTMCSMCSMCSMCSMCSMCSMCSMCSNDUNDUNDUMCTMCTMCTMCTMCTKCTKCTKCTKCTKCTKCTKCTK' +'CTJ@PJ@PJ@PJ@P=2B=2B=2B>3C>3C?4D?4D@5EA5GA5GA5GB6HB6HC7IC7IC7IC9JC9JC9JD:KD' +':KD:KE;LE;LF:LF:LF:LF:LG;MG;MG;MG;MF<LF<LF<LG=MG=MG=MH>NH>NG=MG=MG=MG=MH>NH' +'>NH>NH>NI?OI?OJ@PJ@PJ@PJ@PKAQKAQJ@PJ@PKAQKAQKAQKAQLBRLBRLBRLBRLBRLBRLBRLBRL' +'BRLBRKAQKAQKAQKAQKAQKAQKAQKAQMCTMCTMCTLBSLBSLBSLBSLBSJBSJBSJBSJBSJBSJBSJBSJ' +'BSJ@PJ@PJ@PJ@P<1A<1A=2B=2B>3C>3C?4D?4D@4F@4F@4FA5GA5GB6HB6HB6HD8JD8JD8JD8JD' +'8JD8JE9KE9KE9KE9KE9KE9KF:LF:LF:LF:LG<LG<LG<LG<LG<LG<LG<LH=MF<LF<LF<LF<LF<LG' +'=MG=MG=MH>NH>NI?OI?OI?OI?OJ@PJ@PI?OI?OI?OI?OJ@PJ@PJ@PJ@PKAQKAQKAQKAQKAQKAQK' +'AQKAQJ@PJ@PJ@PJ@PJ@PJ@PJ@PJ@PLBSLBSLBSKARKARKARKARJ@QH@QH@QH@QH@QH@QH@QH@QH' +'@QKAQKAQKAQKAQ;0@;0@<1A<1A=2B=2B>3C>3C?3E?3E@4F@4FA5GA5GA5GB6HF8JF8JF8JF8JF' +'8JF8JF8JF8JD8JD8JD8JE9KE9KE9KE9KF:LH;KH;KH;KH;KH;KH;KH;KH;KE;KE;KF<LF<LF<LF' +'<LG=MG=MG=MG=MH>NH>NH>NH>NI?OI?OH>NH>NH>NH>NH>NI?OI?OI?OJ@PJ@PJ@PJ@PJ@PJ@PJ' +'@PJ@PI?OI?OI?OI?OI?OI?OI?OI?OKARKARKARJ@QJ@QJ@QJ@QI?PG?PG?PG?PG?PG?PG?PG?PG' +'?PKAQKAQKAQKAQ;0@;0@;0@<1A<1A=2B=2B=2B>2D?3E?3E?3E@4FA5GA5GA5GF8JF8JF8JE7IE' +'7IE7IE7IE7ID8JD8JD8JD8JD8JE9KE9KE9KH;KH;KH;KH;KH;KH;KG:JG:JE;KF<LF<LF<LF<LG' +'=MG=MG=MF<LG=MG=MG=MG=MH>NH>NH>NG=MG=MG=MG=MG=MH>NH>NH>NI?OI?OI?OI?OI?OI?OI' +'?OI?OI?OI?OI?OI?OI?OI?OI?OI?OJ@QJ@QJ@QJ@QI?PI?PI?PI?PF>OF>OF>OF>OF>OF>OF>OF' +'>OH>NH>NH>NH>N:/?:/?;0@;0@<1A<1A=2B=2B>2D>2D?3E?3E@4F@4FA5GA5GF8JF8JE7IE7IE' +'7IE7IE7IE7IC7IC7ID8JD8JD8JD8JD8JE9KH;KH;KH;KH;KG:JG:JG:JG:JF<LF<LF<LF<LG=MG' +'=MG=MG=MF<LF<LF<LG=MG=MG=MG=MG=MF<LF<LF<LG=MG=MG=MG=MG=MH>NH>NH>NH>NH>NH>NH' +'>NH>NI?OI?OI?OI?OI?OI?OI?OI?OJ@QJ@QI?PI?PI?PI?PH>OH>OF>OF>OF>OF>OF>OF>OF>OF' +'>OF<LF<LF<LF<L'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#6'OnShow'#7#8'FormShow'#8'Position'#7#14'poScreenCe' +'nter'#10'LCLVersion'#6#7'3.0.0.3'#0#6'TImage'#6'Image1'#22'AnchorSideLeft.C' +'ontrol'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#23'AnchorSideRight.' +'Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#0#6'H' +'eight'#3#176#0#3'Top'#2#0#5'Width'#3#208#1#7'Anchors'#11#5'akTop'#6'akLeft' +#7'akRight'#0#12'Picture.Data'#10#233''''#0#0#10'TJpegImage'#218''''#0#0#255 +#216#255#224#0#16'JFIF'#0#1#1#1#0#240#0#240#0#0#255#225#7#226'Exif'#0#0'II*' +#0#8#0#0#0#9#0#15#1#2#0#18#0#0#0'z'#0#0#0#16#1#2#0#11#0#0#0#140#0#0#0#18#1#3 +#0#1#0#0#0#1#0#0#0#26#1#5#0#1#0#0#0#152#0#0#0#27#1#5#0#1#0#0#0#160#0#0#0'('#1 +#3#0#1#0#0#0#2#0#0#0'1'#1#2#0#12#0#0#0#168#0#0#0'2'#1#2#0#20#0#0#0#180#0#0#0 +'i'#135#4#0#1#0#0#0#200#0#0#0#230#1#0#0'NIKON CORPORATION'#0'NIKON D70s'#0#0 +#240#0#0#0#1#0#0#0#240#0#0#0#1#0#0#0'GIMP 2.6.11'#0'2012:02:11 12:59:51'#0#17 +#0#154#130#5#0#1#0#0#0#154#1#0#0#157#130#5#0#1#0#0#0#162#1#0#0''''#136#3#0#1 +#0#0#0#128#2#0#0#0#144#7#0#4#0#0#0'0210'#3#144#2#0#20#0#0#0#170#1#0#0#1#146 +#10#0#1#0#0#0#190#1#0#0#2#146#5#0#1#0#0#0#198#1#0#0#4#146#10#0#1#0#0#0#206#1 +#0#0#5#146#5#0#1#0#0#0#214#1#0#0#7#146#3#0#1#0#0#0#5#0#0#0#9#146#3#0#1#0#0#0 +#16#0#0#0#10#146#5#0#1#0#0#0#222#1#0#0#0#160#7#0#4#0#0#0'0100'#1#160#3#0#1#0 +#0#0#255#255#0#0#2#160#4#0#1#0#0#0','#1#0#0#3#160#4#0#1#0#0#0'p'#0#0#0#5#164 +#3#0#1#0#0#0#27#0#0#0#0#0#0#0#2#0#0#0#1#0#0#0'#'#0#0#0#10#0#0#0'2005:07:06 2' +'2:20:20'#0#255#255#255#255#1#0#0#0#255#131#5#0#160#134#1#0#0#0#0#0#1#0#0#0 +'$'#0#0#0#10#0#0#0#18#0#0#0#1#0#0#0#6#0#3#1#3#0#1#0#0#0#6#0#0#0#26#1#5#0#1#0 +#0#0'4'#2#0#0#27#1#5#0#1#0#0#0'<'#2#0#0'('#1#3#0#1#0#0#0#2#0#0#0#1#2#4#0#1#0 +#0#0'D'#2#0#0#2#2#4#0#1#0#0#0#150#5#0#0#0#0#0#0'H'#0#0#0#1#0#0#0'H'#0#0#0#1#0 +#0#0#255#216#255#224#0#16'JFIF'#0#1#1#0#0#1#0#1#0#0#255#219#0'C'#0#8#6#6#7#6 +#5#8#7#7#7#9#9#8#10#12#20#13#12#11#11#12#25#18#19#15#20#29#26#31#30#29#26#28 +#28' $.'' ",#'#28#28'(7),01444'#31'''9=82<.342'#255#219#0'C'#1#9#9#9#12#11#12 +#24#13#13#24'2!'#28'!22222222222222222222222222222222222222222222222222'#255 +#192#0#17#8#0')'#0'p'#3#1'"'#0#2#17#1#3#17#1#255#196#0#31#0#0#1#5#1#1#1#1#1#1 +#0#0#0#0#0#0#0#0#1#2#3#4#5#6#7#8#9#10#11#255#196#0#181#16#0#2#1#3#3#2#4#3#5#5 +#4#4#0#0#1'}'#1#2#3#0#4#17#5#18'!1A'#6#19'Qa'#7'"q'#20'2'#129#145#161#8'#B' +#177#193#21'R'#209#240'$3br'#130#9#10#22#23#24#25#26'%&''()*456789:CDEFGHIJS' +'TUVWXYZcdefghijstuvwxyz'#131#132#133#134#135#136#137#138#146#147#148#149#150 +#151#152#153#154#162#163#164#165#166#167#168#169#170#178#179#180#181#182#183 +#184#185#186#194#195#196#197#198#199#200#201#202#210#211#212#213#214#215#216 +#217#218#225#226#227#228#229#230#231#232#233#234#241#242#243#244#245#246#247 +#248#249#250#255#196#0#31#1#0#3#1#1#1#1#1#1#1#1#1#0#0#0#0#0#0#1#2#3#4#5#6#7#8 +#9#10#11#255#196#0#181#17#0#2#1#2#4#4#3#4#7#5#4#4#0#1#2'w'#0#1#2#3#17#4#5'!1' +#6#18'AQ'#7'aq'#19'"2'#129#8#20'B'#145#161#177#193#9'#3R'#240#21'br'#209#10 +#22'$4'#225'%'#241#23#24#25#26'&''()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz' ,#130#131#132#133#134#135#136#137#138#146#147#148#149#150#151#152#153#154#162 +#163#164#165#166#167#168#169#170#178#179#180#181#182#183#184#185#186#194#195 +#196#197#198#199#200#201#202#210#211#212#213#214#215#216#217#218#226#227#228 +#229#230#231#232#233#234#242#243#244#245#246#247#248#249#250#255#218#0#12#3#1 +#0#2#17#3#17#0'?'#0#228#173#246'L'#129#211#149'>'#216#171'B/j'#231#237'55' +#181#179#147'('#194'l'#143#149#186't'#235'O'#131#196'r'#130#169',*'#252#242 +#203#198'G'#210#185#249#153#217'c'#161'X'#253#170't'#135'='#170';9'#226#187 +#143'|M'#145#208#142#227#235'Z1G'#154'|'#194#177#28'v'#231#210#173#199'lx' +#226#172#195#9#227#138#191#20#30#212#185#138'H'#165#28#13#212#127'*'#148'[' +#185#238'kR;l'#246#171#11'k'#237'Sq'#152#127'c'#246#166#27'Oj'#223'6'#190#213 +#27'[{S'#230#29#140#6#181#246#168'Z'#215#218#183#218#215#218#161'k_j|'#193'c' +#158'{c'#233'U%'#128#250'WJ'#246#190#213'N{^'#13#28#193#202'y4'#161#164#3#127 +#1's'#201'<'#26#129#16#9'T/9'#228'c'#169'5'#28#193#159#247'q'#31#152'r'#6'im' +#173#230#138#237#12#177#182#204#245#6#161'$'#150#224#222#166#236'W'#23'6'#177 +#20#130'f@I'#202#168#254#181#215#248'N'#226']J'#7'I'#249#146'&'#198#227#252 +'@'#215#24#223#235#22'B'#231#238#147#183#29#169#201#171']X)'#22#211#203#6#227 +#156#9#8#25#245#192#172'"'#219#208#209#164#181'='#198#199'Ai'#145'H'#173#20 +#208'J'#156'W'#128#175#143#245#164'p'#143#168'\'#249'k'#156'~'#245#137#31#157 +'E'#127#227#141'R'#242'('#196'ww'#17#186#146'Y'#196#199'-'#254#21#186#164#251 +#152#185#249#30#250'>'#197#22#164'4'#246#148#249#231#253#131#180#31'M'#216 +#198'k]t'#158'3'#142'+'#229'a'#173'_'#144#3#221#202#203#158'Ars'#205'jY'#248 +#227'W'#211#236#158#214#11#134#17#145#181#6#226'v}?'#207'zj'#155#234#197#204 +'}$'#250'f'#209#247'MW'#146#199'g'#222#24#250#215#130'i?'#16#175#237#220#255 +#0'hK='#210#241#183#247#165'v'#254#134#186'(~('#198#178#137'@'#149'y$'#238#1 +#152#250'`'#227#173'R'#128#249#143'Q{d'#11#146'T'#10#169''''#217'S'#239#202 +#163#240'5'#230#215#31#18#237#174'>W['#236'1'#249#143#159#144#127#10#177#22 +#189'e}i$'#231#205#142#24#241#191'|'#188#3#199'|s'#255#0#215#161'Aw'#31':Gc=' +#238#154#14#5#200'$'#244#249#27#252'+2}CO$'#129'1$z)'#174'<j'#186'i'#1#157 +#156'+`'#130'N89'#199'cYw:'#213#164'2'#148'%'#216#227#170#30#13'>U'#220#159 +'hrP6'#251#246#231#158#217#24#205'^'#185#155#247' d'#134#206'q'#235#138#142 +#231#254'C'#127#157'G}'#247#191#17'X'#191'zH'#189#147'6R%tVa'#128'T'#185'>' +#216#172#171#242#219#139'm'#198'q'#206'A''"'#182#27#254'<'#27#233#253#22#178 +#174#190#236#127#238#15#228'+:?'#17#173'E'#161#140#199'$'#154'z'#242'0'#127 +#10'ku'#31'JU'#254#149#220#206'A'#193'I`'#7'4'#230'B'#6'x'#162#15#243#249#211 +#251#26#150#221#202' ;'#189')C'#17#140'U'#193#247#7#251#191#225'U'#15'z'#20 +#174'&'#172','#146#134'c'#183#129#158#1'9"'#174#216'jF'#213'''B'#187#214'D' +#219#180#156#12#228#28#254#159#202#179#207'_'#194#129#214#157#144#139')<'#132 +#157#132#227' '#227#174'q'#237#222#174'}'#190'O#'#202#145'#e'#201#201#242#212 +'6'#15#189'P'#135#239#15#161#169'&'#251#205#254#237'CZ'#216#164#143#255#217 +#255#219#0'C'#0#6#4#4#7#5#7#11#6#6#11#14#10#8#10#14#17#14#14#14#14#17#22#19 +#19#19#19#19#22#17#12#12#12#12#12#12#17#12#12#12#12#12#12#12#12#12#12#12#12 +#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#255#219#0'C'#1#7#9#9#19#12 +#19'"'#19#19'"'#20#14#14#14#20#20#14#14#14#14#20#17#12#12#12#12#12#17#17#12 +#12#12#12#12#12#17#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12 +#12#12#12#12#12#12#12#12#12#255#192#0#17#8#0'p'#1','#3#1#17#0#2#17#1#3#17#1 +#255#196#0#28#0#0#3#0#3#1#1#1#0#0#0#0#0#0#0#0#0#2#3#4#1#5#6#0#7#8#255#196#0 +'7'#16#0#1#3#2#4#4#3#6#6#2#3#1#1#0#0#0#1#2#3#17#0'!'#4#18'1A'#5'Qa'#240#19'"' +'q'#6#7'2'#129#145#161#20'B'#177#193#225#241'#'#209'Rbr'#21#8#255#196#0#25#1 +#1#1#1#1#1#1#0#0#0#0#0#0#0#0#0#0#0#1#2#3#4#5#255#196#0'.'#17#0#2#1#2#4#5#4#2 +#3#1#0#3#0#0#0#0#0#1#17#2'!'#18'1A'#240#3'Qaq'#145#129#161#177#193#19#209'"' +#225#241'2'#4'BR'#255#218#0#12#3#1#0#2#17#3#17#0'?'#0#249#248'lMq='#195#18 +#142'b'#168#24#150#234'I'#6#6#254#148#144'd7;U'#144#16'oj'#164#12'"'#164#148 +'0'#138#178#2#8#161#3#13#242#160#12'#'#237'P'#12#13#205'$'#13'K@'#235#173'I,' +#14'Ccq5'#11#3#2#7'+'#212','#12'F'#28#155#197#169'%'#130#164#165'#'#202#145 +#243#138#195'E'#13#150#208'>!FT?'#196'Bl'#145'j'#204#26#147#222'1'#26#10#214 +#18'I'#226#243#134#218'QR'#134' '#22#146#171#154#210'P@<.'#149'H{'#194#138#3 +#197#170#146#1','#208#24','#154#178#1'-t'#160#0#183#202#170#0#248'U'#24#0#179 +'V@'#10'k'#190#251#233'@'#1'j'#172#129'Jn(@'#11'u'#0#181#181#21'd'#130#22#213 +'$@'#149'7'#223#247'VD'#26#230#225'BA'#4't'#254'+'#156#129#169'I'#171'$'#24 +#19'h'#239#191#165'$@a1R@Y*'#201' '#138#178' $'#166#129#6#17#20#144#24'M@1(' +#229#165'Y'#8'rZ'#158#254#222#181'$'#169#12'KsI'#3#18#204#210'D'#13'K]*I`rY' +#216'RJ9'#13'T'#144'5-T('#196#177#210#146#3#12#244#160#12'3I(A'#138'H<'#24#26 +'P'#25','#9#164#131#5#137#164#131#5#141#234#200#4#179'D'#1'-i@'#1'kj'#160#18 +#207#127#238#128#2#213'A'#0#22'MT'#5#150'y'#208#130#212#213#162#128'Ygx'#164 ,#129'Kf'#128'J'#218#164#144'J'#145#210#128'Il'#208#28#31#9'W'#225']'#202#151 +'?'#194'w'#219'i'#248#130't'#184#176#144'd'#17'j'#228#243#8#235'P'#18#161'"' +#227'b;'#239#239'['#144'1'#9#21'd'#12#200#154#200#131'9Eh'#129#4'Z'#128'0' +#157#234#144'4'#160'kA'#3'B'#5#11#3'R'#138#20'r'#17#181'@9'#12#138#18#7#165 +#157#170#20'jY'#20'('#228#177#165'@9'#12'P'#12#12#208#13'KU'#0#196#179'B'#134 +#26#170#2#12#208#25#240'h'#15#22'yP'#30#240'hP'#11'4'#0#150'i '#2#205'P'#1'f' +#168#1'ME'#0'*f'#160#3#194#27#208#176#1'g'#233'I'#2#214#205#0#165'2(AJb'#130 +#4#173#138#16#157#198'9U'#145#4#234'j'#13#8'|'#227#8#210#177#129'IK'#132#184 +'M'#129#153#4'YS'#2#4#243#145'1'#210#177'Q'#14#159#133#165#196'a'#208#28#4'+' +#145'2yo'#4#14'@'#237'Eb'#139#199#251'B'#198#7'2'#20#169'u1'#229#191#169#188 +#29#1#146'@1'#166#182#171' '#127#9#227','#241'$fh'#249#134#169#220#127#177 +#212'Z'#128#176#226#27#137#204#152#152#153#26#242#158'}:t'#164#144'x'#21'@c' +#161#162#1#165''''#190#254#181'L'#141'H4('#228#3#223#127'*'#20'z'#5'd'#20'!' +#19'I'#5#8'MI)B'#27'4'#5#8'EB'#142'Cu@'#228#181'5'#2#24#150#170#136#24#25#161 +'CK'#20#16#24'f'#128#247#129'@c'#193#160'0X'#229'I'#0#150#168'P'#11'5H'#10 +#154#160#1'MP'#0'Z'#160#22'Z'#161'@-'#26'H'#1'MM'#0#181'2{'#239#251#160#22 +#166#169'%'#22#166#162#164#129'+k'#157'Y!;'#141#29'('#9'T'#213#233'$'#131#226 +#152'\{'#152'5'#231'J'#8't'#27#19#206'f'#241#4#207#195'y<'#141#171#166'g$u' +#174#241#167'Y'#193#135'V'#160#172'C'#134'2'#136'NN`'#230#147'as:'#19#29'k' +#131#190'Yo.gI'#142#252#191'g7'#136#197#254'-'#220#207'|j0gM'#238'b'#211'c' +#181#237'poZV'#222'`'#140#21'0'#178#166'T`'#19'}'#9#230'F'#134'>'#134'"Em' +#220#202#13#172'J'#193'96'#189#249#199'8&mnf=k8}'#203'''_'#193#253#178'IBQ' +#140'NR'#18'<'#194#243#200#196'n$'#216#200#141#14#181#29#129#213#176#226'\@Z' +'tP'#4#127'UH94'#144'5'#2'm'#223#127#221'$'#20'!:RAB'#16'v'#168'X(B"'#128#161 +#180't'#161'JP'#213'I'#3#208#213#4#15'Kt'#3#144#138#160'r'#27#160#28#150#234 +#1#129#186#20'/'#8#237'@g'#194#161'L'#22#183#160'0[4'#0#22#141#0#5#186#160#2 +#221#0#10'n'#128#5'4h'#0'-P'#2'['#170'P'#20#213'@'#1'kc@'#133#169#158#148#2 +#150#205'@%l'#26#2'wZ'#233'B'#147#150#185#10#3#227'O'#160'('#167#14#152'J' +#148'd'#145#169#139'Z"$'#11'I'#183'4'#201#21#230#166#168#190'ix'#218'-KL'#159 +'3]'#138'J0n'#22'Q'#231#9#31#28#244#184#3'a''c:'#153#136#174#244#188'Jr'#157 +':'#28#218#194#227#220#152#190#10#164#245#159#168#191#215'}b'#252#235#172#18 +'@K'#153#150#12#30'F'#246#253#230'7'#190#159'#Zj'#198'S'#145#153#161'p'#4#164 +#247#243#245#211#173#235#26#26'6kx'#165#156#136#208#168#3#183#253#129#204'E' +#185#130#12'E'#185#19#197';'#155'gg'#236#178#29#133'+'#16#241'uz'#20'L'#199 +'X3'#202'-h'#170#170#155#237#17#175'C~]m'#161#153#197#4#142'd'#192#250#214 +#177#18#10#25'R'#28#18#130#20':'#25#253':'#209'2AKi'#164#136'+i'#186'IJ'#218 +'j'#166'"'#193'[lT'#146'AClRK'#5#8'b+D'#28#134'b'#169#7'!'#138'I'#7#161#138 +'IG%'#154'H'#24#150'*IC'#24'z'#3'>'#5#1#130#197#10#9'b'#128#18#197'Y('#7#15 +'B'#2'p'#244'('''#15'@'#1#195#237'@'#1#195#208#160'+'#13'I'#0'+'#15'@-L'#10#1 +'Jf'#133#18#166#141#8'%'#198#168#9']n'#133'%[2hC'#225#24'W'#131#166'|`V<'#196 +#0#12'Z$'#146'/3'#4#5'XE'#237'\+'#166'-'#22'vA_['#161'8'#164#188#234's)I-' +#133'E'#136#206#127#246'&'#214#16' E'#225'EV'''#165#13'.s'#215'%'#219#201#154 +#148#238#254#162'H'#10'I'#10#212#136#142#154#152#136#214#198#218#199#168#173 +#226#129#22#22#166#209#134#133#20#198'n'#127'O'#150#243'y'#141'F'#231'J'#167 +'W'#161#156#130'F'#28'/'#252#178'G>'#246#190#132'D'#237#189#29'qa'#6#209#5')' +'h927'#29'@'#4#129#180#19#230#6#4'\'#197#205'y'#170#204#236#178#24#151#241#9 +#9#197' '#20#200#130'G'#220#31'Y2'#0#133'H'#172#168'V'#13#130#235#238'(#'#197 +'Y)'#143#220#137#190#130'>pFh'#9#189#222#252#145#163'c'#236#255#0#27'O'#15'|' +#184#241'Q'#9#25'R?.'#210'`F'#192#233#175#196'O=O'#147#8#250#166#1#196'b'#155 +'K'#205#28#200'X'#144#127#131#127'['#3#204#13')'#136#212#27'6'#24#155#10#206 +'#Pm'#24#225#165'Bk8'#139#5#141'p'#197'r'#166'"A[|5\'#170#226'$'#14'O'#14'Ui' +'Te'#161#137#225#231#149'\D'#129#201#192#17#181'\B'#7'#'#4'v'#20#146'@'#228 +'`zRK'#3'S'#130#233'I'#1#140#21'Y'#7#142#6#146#12#28#21'Y'#2#213#132#2#169'@' +'V'#24'P'#11',U'#0#22'E'#0'%'#170#0#20#213#0#178#212#210#4#130'Y'#164#0#14#30 +'v'#170'I'#1'XSB'#136'^'#28#208#162#28#195#154#2'u'#225#205'$'#164#174#225 +#232#9#212#197#234'H?:'#226#208'K'#133'!'#3'2'#134#164#220#204#133'f'#2#228 +#204#17'xI'#26#18#163#24#165#194#191#143#136'dh'#243'x'#2#219#133#213#153#181 +#227'A '#243#212#159#249#19'x'#136#138'U'#196#149#11'_%T'#193#135#150#132#219 +#226' '#252#199'#'#31#200#191#164#212'T'#183#211#236#141#138'|6'#179'*'#146 +#164#232#14#147#169'''_'#138'F'#224#197't'#166'Wm^'#166'\18w'#210#1'JA2"'#7 +#208#192#23#153#3'I'#190#160#214#234#166#12#166'np'#216'e0'#203#128#255#0#200 +'@T'#137#253#226#12#144'5'#218#188#149'T'#155#243'tv'#165'X'#185#220'['#137 +'k'#192'@'#25'N'#162#1#249'i'#176#23#131'h'#145'`'''#11'='#201#178'GR'#164'e' +'JF'#169#22#28#174'E'#207#174#243#10#215#157'm/'#217#150'L'#254#28#165'A$' ,#128#9#177#228'w'','#158#130#255#0'H'#138#221#13'3'#21'#'#235#222#193#149'+' +#2#134#22'$5)'#11#217'W2"'#208#164#17#4'_c$'#16'k'#12#218'Gm'#131#194#133'DV' +'`I'#209'p'#252#25'0'#8#172':I'#136#222'a'#248'jN'#212#194'1'#20'+'#134#229 +#218#180#169'2'#234#3#255#0#158#5'm#8'#131'o'#0#14#181'`'#204#136#226#206'5' +#194#240#234#196'8'#10#136#248'R5Q'#252#169#6#224'f6'#149'BA'#212#212#169#225 +'R'#21#207#156#143'z\A'#220'RR'#140#15#133#133#7#206'HR'#149#23#230#26'HI'#19 +#25's'#172#169'$e'#184#3#158'7'#211#229'o'#158#166#143#165'pl[\S'#14#156'C@' +#137#23#4'\'#31#158#198'$'#30'_:'#237'G'#242'_;'#229#200#141#199#209#177#24 +'N'#149#188'$'#147'?'#132'<'#170#225#18#1#195'I'#129#173'X'#18#2#240'GZ'#176 +'$'#153'xZ'#22'E'#171#6'E'#200#170'D'#196#169#132#1#152#145#28#231#235#7#127 +#149'F'#227's'#159'E/ri'#19#146#212#192'"'#180#12#2#209'0T'#7#173'FX'#1#231 +'p'#237#146#146#169#142'B~'#226#213#4#18'9'#196'p'#201#231#244#173'@'#129#14 +'q'#188'*5K'#135#228'?u'#15#210#144' '#157'~'#212'a['#191#134#179#244#31#185 +#160't'#145#191#237#187#26'7'#135'Q'#245'X'#31#162'Ow'#173#225'3'#16'C'#137 +#246#217')'#178'X'#131#255#0'ezrH'#238'+8'#10#220#9'G'#181#15#190#130#182#218 +'l'#1#26#175#157#132#2'A7'#6'H'#152#220#9#166#12#221#218#165'K'#182'WK'#229 +#163'8'#239#28#205'v'''#219'E'#161'YCh1'#174#177'='#12#153#26'r&'#139#135'&' +#157'pH'#255#0#182'.(y[H=L'#254#195'y?i'#180#151#227#31#145#19';'#237'S'#170 +'2'#218'BGX7'#250#8#244#173#170'<'#235#162#206#208#161#233#11'7ydU'#179#225 +#169#197#188#193#5#213#16#146'I'#3'Ry'#193#248'D'#201#212#168#204#216#131'\' +#157')'#229#153'f'#0#226#24#199#22#2#172#133#25#17#166#194'#i'#141'7<'#236'*' +#240#232'K'#168#174#175'N'#132'!'#244#17#149'2'#10#141#243'k'#233'#bGO'#222 +#187'F'#209#203#16#3#21#22'3n'#189#159#216'_'#157'\&ds'#15#22#202'V'#137#205 +'p#'#166#215#157#136#219#231'Y'#169'M'#180'7K'#142#231'Z'#218#188'VB'#148#146 +#159#135'0:'#144'Nk'#145'k'#230#141#1#0#129'_%'#217#219#208#246'+'#162'N%' +#140#13'yZ '#128'AQ'#6#194#210'l9'#132'Z'#6#220#166#187#240'ho?'#239#188#152 +#169#148#225'V'#167'?'#202'#'#197'X'#149#4#147#169#189#133#204's'#141't'#7'J' +#227']'#156'h'#178#157'{'#239'#T'#185#184#10'J'#144#160'r'#133#165'>l'#170 +#184'<'#228'H#'#144#130#12'D'#25#19'])'#175#244'F'#142#219#131'{|'#198#3#12 +#134#127#4#148#170'J'#188#174#144' '#196'eI'#11'P'#136' '#146#163'$'#157#0#2 +#186'S'#195'uk'#173#212'+'#174'K('#182#183#204'UZZi'#207#189#220#207'L'#163 +'.'#166#243#5#239'U'#150#133#240'g4'#141#29#219#243#8'(3;'#25#183'#]'#151#7 +#173#230#214'IF'#137#173'\'#222'g'#208#226#248#137#233#222#242#219#209#206 +#157#162#252#206#175#7#239#183#135#140#137'w'#0'Q'#149'7)YT'#158'e$'#183#9 +#184'&'#9'& e'#214#183'ZQd'#157']['#165'O'#162#171#197#187#156')W'#187'itI' +#191'x'#242'e>'#252#130']Hm'#148'xcU'#22#213'''y'#9'/'#144#158'_'#18#180#188 +#139'W*h'#169#172#169#197'ir'#227';'#181#10#210#161'E'#242#234'u'#169#211'?' +#251'G'#167#235'rR}'#250#190#250'2'#179#135'`'#170'b|'#220#182'O'#137' '#205 +#224#169'\'#189'{'#254'9'#228#173#221#167#23#228#157#229#165#22#202#231'&' +#210#255#0#235#218'#'#199'o'#210'#'#199#251#229#226#140#161'KK,!'#9#185'*J' +#167#212#194#192#3']'#6#215#231'[\%'#175'y'#213't'#237#175'}Nn'#190'^'#231'8' +#191#255#0'I'#227#152'qIJ'#24'r/d'#24#229#150#235#6#209'3'#127#138#196#128#5 +'c'#2#165#234#252'G'#178'Y;'#222'z'#216#213#223'O?'#179#154#226#30#255#0#184 +#183#20#197#165#236'[l'#150#209'9Q'#144#249'A'#222#18#180#171'8'#128'd,I'#2 +'dZ'#184#213#194#151'/L'#146#253#237#157')pN'#223#189#188'_'#138#22#208'd8' +#146#146#143'!*'#25'RR'#146#20#165#168#197#228#164#172#164#145#4'X'#3'i'#225 +#168#231#26#185#155'&'#180#210#243#223#165#136#234'{'#200#157#175'|'#28'{'#2 +#135#25#193#227#18#208'Q'#149#20#132#230#155#21#4'&2'#140#196#18#163#161#204 +#172#176'M'#226#225'a'#202'{M'#188#23#28#157#223#177'~'#255#0'x'#179'h'#252 +'/'#24'[KQ$'#248#203#16#160'T'#169'JT'#216#9#182#161#30#24'(J'#10'A'#0#233 +#234#166#154'U'#159#158#175#188#229#148'dsok'#166#229#234'wx'#127'z'#152#226 +#149#128#25's'#195'%$'#193#4#17'rU'#10#26'\i'#5'0z'#215'O'#197'N'#151#139'7' +#172#231':'#19#22#244#251#183#169#207';'#239#221'X|b'#176#206#184#200'Y'#23 +#177#202#15#149'I'#243#5'n'#8#212#232#12#154#229'U'#20#167#187'N'#155#208#234 +#158#253#191'e'#14'{'#245'^9'#245'a'#216','#133#128#1#0'+'#214'[QQA''C'#25 +#134#164's'#168#232#166#167#156'h'#249'?'#215#184'O'#15']o'#247#17'1'#166'^,' +'l'#24#247#141#196#157'P)'#203#190#160'z'#232' [M"5'#171#248'R'#190#127#30'7' +'bb'#157#244#131's'#141#246#199#136')'#182#217'x!'#151#16'.'#171'I'#155#139#1 +#0#238' |'#181#163'^'#222'KM0'#251#233#161';>'#208'/'#16'T'#30#198'!'#1'" ' +#139#29#172#8'!D'#235'0'#4#235#150#211#151'GG'#25'('#254#178#158'o'#212#232 +#163#164#235#183#235#207#162'6x_h8f'#13#130#235#206#167#18't'#8'Kpz'#28#199 +','#129#2'AT'#220#145':'#214#169#163#189#185#231#181#157#236'f'#171#229'n' +#191'^'#239'M'#13'&+'#219#172':'#20#127#15#133'QI'#143#137'@u'#145#149'$'#143 +'6'#158'k'#139#29'b'#159#138'u'#223#213#198'8'#239#245#216#151#29#239#8#148#4 ,#225#240'm"7Vem'#27#145#235'h'#159#172#237'p'#251'|'#252#246'2'#234#158'~' +#203#225#127#134#137'^'#215'c\'#204'Hi9'#164#206'S>'#130'$'#166#252#178#141 +'D'#237'S'#241#165#205#248'.9'#228#163#184'#'#218#231#200#30':'#26'PL'#128 +#146#149'ho'#154'RRTPf'#2#150'd'#24#130#0#136#248'k}w'#245#145#181#196#223 +#251'>'#208'j'#177#30#211'c'#148#217'a$%'#4#147#1' '#27#222'&3'#20#216'@$' +#199#206'Ip'#210#223#218#237#216#197'\V'#247#190'f'#161#204'~ '#170'I3'#242 +#174#152'Q'#205#212#196#226'1'#207#186'e'#197#21#30#127#185';'#243#189'EJD' +#198#197'~!GR@'#190#131#233#210'&'#199#149#204#29#227'ATL'#188'J'#246#188#127 +'zvm'#173'X'#24#128'O'#18'u'#3'*'#160#129';'#9#184#129#235#6#12#27'[i5'#151 +'IS'#20#190','#249#129#9#176#141#13#250#152' O'#203#214#242'M'#141#251#21'=' +#220#249#243#237#168'y,'#0'U'#192#130'D'#235#0#155#233#2#227#145'1c'#227'O' +#221#30#134#137'1'#197'.'#136'3k'#9#215#153#146'"G#'#22#208'WZ-'#235#189'LUs' +'V'#159'!'#184#145#223#239#221#171#210'p'#200'5'#168#147'&'#6#255#0#235#211 +']'#255#0#164#9'6'#28#25#224#28#9#202'T'#179#4'o'#31#249#0'H'#180#222'cAmk' +#135#21'J'#233#242'u'#225#230'u%'#204#193'ID|'#10#204'z'#234#18'N'#202#144 +#145#173#128#31#242'5'#242'b7'#183#254#158#194'|_'#13'A`'#180','#130#231#154 +'.T'#4'e'#189#135#196'v'#146'lu0;S'#197#135':'#195'K'#146'dtXj'#27'ZAi3'#184 +'$[_'#249'^2'#198#128#232#0#153#202''''#155'z'#231#211#176'FU'#137#1#180#169 +'I'#204#152#2't*'#130#174'b'#201'$'#157'.v'#129'ap'#223#151'NR'#27#182#238')' +#206'"'#25'q'#9'f'#235#16'|'#194#192'\'#232'l'#175']'#128#235'n'#212'('#222 +#167#26#156#190#196#135#29#138'm'#210#247#198#131'|'#166#211#233#16'@'#153'1' +'bw'#231'^'#154'jMFO'#153#201#210'N'#255#0#180#15#202#242#152'I'#136#233'7' +#250#141'7'#222'nm'#209'S'#188#142'i'#141#225#28'a'#220'K'#137#195'9*R'#142 +#187#233'}u'#176#190#150#154#173'`R'#138#148#151'+'#143'a'#154#204#27'Q*I' +#180#141'~'#151#212#244#169#137#145#164'U'#140#247#128#167'8{'#188'5'#166#146 +'R'#240#25#150#161'+L'#28#192'6'#189'R'#20'c6'#153#137'#Mz'#170#156'C'#143 +#229#174#171#183#248's|;'#207'#'#140'S'#145#167'}'#250'iP'#232#14'e$'#137#153 +#255#0't@'#204#169'fg^'#228#234'zoL'#136#212#150#224'x'#138#176#168'R2'#161 +'JR'#146'B'#136#243#8#155'%z'#128'df'#0#140#208#1#17'j'#214'+D+'#197#245'Q' +#162#232#245#17#189#12';'#197#241'8'#135'C'#143','#172#131#162#137'#'#153#2 +#250#29'H'#6#9#190#186#225#164#194'F'#224'{{'#143'F'#29#236#27'j'#8'o'#16#0 +'r'#7#152#193#144'R'#163#230'N'#128#16#146#18'F'#160#201#156#164#215#169#168 +'9'#244#188'L'#153#254#127#223#206#171'E'#147'i'#193'='#163'{'#134'<'#135#18 +'e'#176#164#146#147#184#26#129'3'#148#145#249#192#182#163#149'c'#15','#202 +#156'gu'#175'^h'#250#138'}'#239'p'#162#225'Z0'#235'B&'#195'6c'#17#185#1'1'#6 +'D^'#221'M'#174'7'#250'+'#137#233#173#243#221#246#141#134';'#222'?'#10'y%' +#252'9'#8#206#10#146#217'U'#192#152#202#165#128'`'#137#144#13#202'GQ='#149'J' +'9>\'#142'q/'#160'\g'#218#148#178#227'G'#132'4^i'#192#128#153'^e'#19'p'#168 +'p'#8'R'#188#185#192')'#156#166'I'#231'e'#197#161#251#239'Q*z'#27'&'#189#167 +'a,eu)K'#197'Y'#129'+'#146#2'I'#10'NPb'#8#243'I'#189#180#185#203#167'J'#237 +#211'[o'#216#180#215#189#6#163#222#151#13'/-/0'#151'] '#133#132#249'@ '#144 +'U'#160#9#129#0#132#16#1#6#241'^v'#227'+'#250'e'#190#144'u'#198#162#235#236 +#214'c}'#224'pWq)'#195#176#188#165'B'#9#252#179#164#133#16' ('#216'X'#196']P' +'f'#183'MiZ'#239#175#236#197'W'#203#193'R'#253#181#225#28'/'#22#134#31'!'#215 +#18#176#144#144#1'IT'#198'E'#174#8' ('#128'r'#152#137#139#233#135'T'#217'o' +#250'7'#255#0'9'#251'g'#230#251#208'n#'#141'a'#30'J'#210#195'h'#8'p'#200'?' +#17'LH)J'#196#8'3'#230#242#236'4'#138#235'O'#13#197#222''''#207'/i'#127',' +#197'\T'#244#131#223#253'\9-'#173'XT'#146#210'@'#132#146#2#200'3.'#2#9'2'#12 +#16#149' '#242' '#212'|7'#207#207'/#'#242#173'Q'#171#226#24#182#241#14#21'4' +#132#182#149#27'%7'#131#208#146'O'#165#207'-u'#221'4s9'#213#196#156#172#3'X' +#156'2p'#203'm'#196#130#233' '#165'W'#157#194#146'`'#229#130'nd'#21'Jb'#210 +'k'#158'n'#219#223#209#164#210'P'#213#247'`q8'#236'2'#176'!'#182#240#228'b'#1 +'$'#185'2'#8#229#22#22#131#160#182#228#197#21#13';'#229#239#181#246'G'#196'Q' +#149#249#238#230#136#227#154'm$'#186#147';F'#227'x'#6#231#239#21#170#148'\' +#231'MR'#14#31#29#132#196#184#18#165#22#155'6'#206'E'#135'R,'#168#235#206#8 +#16'Ers'#19#155#229#151#185#209'g'#4#199#137'a'#9#242#140#192'ZI'#3#237'x' +#250#207'15'#20#191#244#209#193'>'#241'i'#25#148',I>'#164#196#253#163'I'#244 +#19'~4'#172'Ov;7'#4'l<'#2#130#148'G'#152#131#247#189#186#136#211#173'v'#169 +'{'#28#211'6'#141#224#152'm'#226#232'Jr'#229'3<'#245#144'&'#5#164'F'#186#192 +#175'#'#226'6'#163#174#158'.uT'#169'2'#239#4'a'#197')y'#165'N'#28#192#13#167 +'KA'#222#246#128'tH'#210#139#255#0'!'#248#206'sc'#241#175'QH'#225#10#193#2'J' +#224#16'AVSa'#251#27'_'#148#197#205'i'#241#177#247'Zs'#253#163'+'#135#132#219 +'`'#218#241'T'#218'6'#137#157#180';H'#4#168#25'3'#173#137#210#222'n%p'#158 +#223#158#157#15'B'#25#196'1'#5#187#162'VTDN'#151#148#139#9#131'$'#17#23#204 ,'F'#208'F8T'#206'v'#143'6'#219'-L^-ki'#165'a'#165'>T'#131#0#137#136#178'-' +#177#2#12#234#4#168#155'V'#233'I'#185#231'n~'#164#169#197#133''''#9')W'#142 +#160#16#216#131'& '#216#216#137#177'+\o'#202#226#186':'#175'l'#222#239#234'e' +'S'#225#18'b1'#173#161'J&'#2'M'#164'&OD'#249#138'@'#2#196#1#152#0'n'#165#27 +#30#202#153#239#189#12'URD'#159#136'.$'#133'NC'#249#140#11'iaru7'#6'>u'#210 +'#'#185#134#228#213#186#162#130'R'#8#177#183'b~'#162#189'('#224#15#139#148 +#216#253';'#159#227#214#181#153#25#128#241#239#187'T'#130'H'#192#225#139'w' +#254#245#168'jA7T'#237#223#127#200#154#178'E'#224#200'^k'#171'A'#222#149#11 +#152'~('#22#0'u'#254#163#251#172#193'A'#207#200'@'#31#213#251#183#233'`I'#144 +#233'7:'#143#228#210#10#10#157#133'N'#243#217#235#247#235'z'#168#201#140#209 +#166#157#247#167#237'@'#17'p'#192#239#191'A'#250'Q'#9#30#198'5'#220'1'#30#17 +#1'Z'#200#23#26#232'u'#2#12#16#13#247#184#17#135'L'#230'Y'#131#201#197#157#8 +#26#255#0#127'3'#211'z:Be8~-'#137#194#156#216'W'#20#220#139#148'('#142#134'`' +#141#137#183'#'#214#138#197'`'#167#22#248'Xq'#165'(,L'#25#155#155#24#229'"7' +#254#18'E'#236'g'#241#25#127#246'u'#131#166#147#17#177#220'\}k'#27#238'm'#176 +#22#253#129#251#247'x'#31#181#18'$'#150#240#140'Z'#27'R'#148#236#170#16'`'#12 +#186#243#204#230'd'#164#136#145#149'9'#182'I'#19'U'#17#157'g'#177#175#184'][' +#165'g'#240'I'#4'$)@'#156#231'('#9')'#6#217#179#28#167','#19'a'#21#170'[]' +#142'U'#251#157'7'#180#190#212#30#14#0'm'#4#169'@'#193#145#255#0'\'#166#8#149 +'$'#164#133#5'$'#229'3'#18'*UY'#138'i'#147#139#224'<U'#252'c'#206#231'\)g7' +#204#204#132#141#8'P'#146'l'#12'$'#4#238#15')gj'#135'7'#198#21#136'['#184#140 +':'#243'0'#197#181'&D'#230#27#130#153''''#242#139#201#157'UX'#189'7'#201#188 +#250#233#240'e'#189'7'#189'La'#189#183't'#186'C'#193'!'#160#152#202'mq1'#231 +#25#136''''#158'\'#170#143#203'r;*'#217#156#4'\c'#142#171#16'<F'#8#8#152#0'D' +#198#225'c4'#131'qp2'#205#164#213'u'#183#191'B'#211'JF'#129#204'C'#142'LO' +#234'#R~'#164'j'#4't5'#17#212#18#228#252'+'#183#172'}'#179#8#160'L'#28'v )' +#146#23#185#176'<'#226'$'#13'`jv'#157#163'Y'#195#166#246#228'n'#170#172'K' +#128'Jd)V'#31's'#233'6'#3'i'#2'f'#230#194#221'8'#134')7'#248'b'#161's>'#127 +'/'#203'L'#196#153#177#214'U#'#144#189'x*'#143#23#254#143'J+'#146#148'('#160 +'IJB'#160#137#155#129#212'H'#181#132#250#139#138#227#159#171'4k'#184#198'%@J' +#150'E'#165'6'#177#188'X'#13'fI'#204'F'#160#146'f+'#211#193#160#229']Ex2'#6 +#13#152#146#226#193'n'#218#252'D'#220#130'-'#150#1#189#224'Z'#185'q?'#233#242 +'W'#245#237#205'3'#173#25'.n'#197#159#130#3#198'q*P'#1'J'#203'&D'#3#1'Q'#204 +'JBM'#204#128#127'-c'#30'Yzs{'#249#208#218#167'='#216#156'a'#2'[m'#160'$'#188 +#172#178#1#147#27#222#240'3@'#182#196#141'+x'#165#246#203'}L'#199#172#253#7 +#143#7#28#130'[Im'#164#174'b.'#162'w'#0'k'#3'I'#128#145#161'$'#146'g'#15#248 +';'#221#181#224#181')'#232#190'MF)'#31#135#1'jl6'#19'a'#152#133#31#146'.#S' +#240#24'3'#230'"'#189#148#223'q'#239#250'<'#245'[rB'#254' 8'#185#186#137#130 +#162'yuI'#248'@'#128'5'#228#0#174#170#147#13#255#0'd'#174#20#147')'#208#242 +#253#183#239#173't9'#177'd'#141';'#255#0'q'#243#231'z'#214'Dw2'#220#27'w'#254 +#190#148'a'#12#204#0#210#221#253#186'VM'#30#203#151#191#218#166'a'#163#0#128 +'|'#189#244#239'_'#165'h'#30#177#129'i'#239#244#253'~'#149#0'M'#229' '#143 +#159'}'#254#149#24'<bON'#251#211#239'@xe&c'#191#231#153#180#253'h'#15'@'#219 +#191#236#243#164#131#9#2#243#160#239#250#254#162#144#18'"#'#245#238#223#189#8 +'e>m;'#245#233#251#213'*'#25'p;'#251#154#198'e'#145#140'x'#139'XK`'#168#159 +#202#4#206#250#11#255#0'^'#148#194'LP'#25'X?'#20#131#222#231'Q'#180'V'#13#136 +'Y'#141#251#239#159#206#182#140#134#219#130'@'#212#155'_'#245#216#212#128'?' +#15#138'Kj'#200'V'#160#218#163'2GO'#135'PA'#191'CM'#3'>'#137#197'K<G'#0#203 +#135#26#222'TeBP|'#164#24#146#9'(INA'#153#16's&F`'#162#149#165'G'#133'~H'#145 +#243#236'zJT'#164#31#139'6'#194#7'+'#11'X'#223#149#164#24#223#165','#219#11 +#15#143's'#15#157#150#150#160#23'e''c'#162#181#155#146#164#139'@'#2#1#190#148 +'jQ'#150#174'?'#131#241',+'#24#149';'#196#153'/'#182'P'#177#0#229'9'#138'JP' +#228#220'J'#21#10#133#2#149'D'#20#145']xp'#157#214'%'#170#255#0'!'#251#153 +#169'>'#219#186'6'#156#3#141'p'#244#188#211'|E'#144#251'`'#132#28#249#178#165 +'3'#241#0#218#146#178#164#146'I'#204#165'yS'#145' '#230#10#28'+'#166#214#179 +#246#13'Iv)\!'#151#252#22's'#184#136#133':'#209#203#148#18#172#222#24'P%m' +#229'PH'#241#13#210'T'#23'{'#215#158#156'O;s'#180#253#230'iS'#204#229#241'Xv' +#148#185'mIP'#234#8#131#161#17#17#175')'#21#233'M'#150#17#31#24'q'#165#148 +#165#4#231'I '#219'c'#164'(j'#4#29'y'#218#213#174#10'k'#212#181#139#194#4#187 +#228'I3'#164#31#212#199#206#215#233'Z'#173#197#197'77'#141#31#12#164#18#160 +#16'r'#157#200#185#136#3'(9'#128#180#216#9#180#155#248']'#253'N'#202#195'p.' +#184#144#225'v'#200'**'#153#188#145#149' '#236'R'#0'3i'#4#200'$'#215':'#210 +'q'#23'q'#29'9'#183#223'y'#26#165#248'#'#199#187#135'~'#2#21#9#7#226#212'H' +#16'b'#211#6#208'D'#233#243'>'#142#26#170#159#215#127'c'#157'M2'#142#0'C'#229 ,#182#202#242#165#14'f'''#161#128'd+l'#193'1'#189#204's'#25#227'(M'#230#218 +#248':p'#175#232#205#202#2#220'K'#142#31#135'"'#18#18'N'#146'V'#236#242#0'8' +#171#200#129#150'3ydy'#29#161'uw'#231#9'/'#141#220#244#243#236#148'{'#201'F' +#16'%8S'#138#4')-'#133#229'R'#167#243#31#12#144'4'#132#128'fD'#1#2#217#166 +#177'Ss'#135#156'JV'#178'S~'#243#184'*QL'#231#19'~'#175#244'h'#177'x'#215'U' +#134'['#143')D'#165#196'$'#25#255#0#170#201#181#192#7'( h'#4'E{)'#161'M'#185 +'?'#149#175#169#230#170#167#30#166#161#220#174' '#172#140#160'o;'#237':'#18 +'@'#216'k'#164#9#175']6'#182#224#224#201#142')0P'#148'B`'#205#204#153#176#157 +#133#141#147#181#181'7=`'#198'-'#243'&I'#191#151'N'#251#249#214#140#24#7'(' +#154#185#131':'#201#239#250#239'zH'#24#202#210#145'{'#199#219#229'Xw*'#176 +#213#0#225#155#139'_'#244#235#252#219'KNf'#11#153#133' % '#254'k'#255#0'3' +#246#250#213'NJ$'#146#163#26'zo'#235#223'J'#209#144#196#196'"O|'#244#255#0'u' +#31'R'#142'C'#25'D'#171'S'#183'{'#243#244#249#140':'#139#132'R'#217')&'#15 +#203'~}-'#17#252#10#210#168#203'@'#29'm'#203#191#189#190#213#162#177'eW'#212 +#247'j'#166'L'#158#154#247#207'N'#237#200'C)V['#14#251#245#168'T'#204#155#220 +#205#251#253'('#10'8v?'#19#195#221'N/'#10#181'4'#234'.'#149#160#144#161#180 +#164#136' '#193'#'#172#198#134#181'MX\'#175#250'WR'#147'S'#217#166#159#170'#' +'\'#242#5'N'#169#213#151#9'%J2I'#220#238'N'#230'Ork'#153'P'#11#130'Nn'#251 +#219#250#146'()VS?N'#255#0#159#245'W2'#132#151'3'#205#164#234'G'#166#255#0'!' +#127'JA'#153'7<W'#143#171#137'2'#195#11'@'#9#195#182#16#146'>#'#185'+TJ'#128 +'$'#148#3'9'#19#8#6#210'mu'#202'T'#217'a'#151'1'#252#170'uFoT'#162#220#165 +#189'YR'#247#241#233#247#207'SX'#254' '#186'|E'#146#165'+s'#169#191'='#254 +#127'Z'#228#145#160'R'#178#162'S>'#159#175#223#233'&4'#173'5'#0'&^i.'#5#186 +#149'.'#8#242#218#226'd'#140#202#11#3#164#161'c'#154'H'#145'Z'#164#203'a'#179 +#254'5'#148#172#18#13#164'}=;'#223'nU_/'#6#233#176#215#193#152#6#231'_A~'#144 +'#'#159'Y'#189'e'#26'c'#177#28'E'#183'W'#155#22#149'8'#228#1#153'*'#203'`'#0 +#22#0#201#129'u\'#171'RI'#185#213#9'%'#239#228#230#236'/'#136#240#28'[ '#135 +#27'P)Nb"'#224#24#0#169'6#4'#200#152'1& '#18'1'#195#227#211'VM51+&'#214'p' +#245#131#173'|6'#183#127'SY'#131#204#219#144'E'#249's'#252#194#218#193#250#17 +#169#175'EnQ'#198#155'3'#167'l'#151#27#133#217'f'''#233'7$E'#166'H'#26#27'\' +#218#190'cP'#249#163#214#133'>CI'#13'\'#132#147#173#193#155'^fF'#218'Z'#208 +'7:'#166#247#183#196#25#170#198#179#20#225'l'#248'j'#25'r'#237#3#234'~'#190 +#177#210#213#234#165'M'#206'l'#218'{;'#134#24#133#173#2#240#16#1#26#130'ND' +#152#180#128'W1;'#29#133'p'#227'U'#11#188#231#148'%/'#227#220#239#193'S'#233 +#242#206#133#211#248#164'b1l'#131#144#144#148#166#5#206'g'#242#164#15'D'#130 +#153'*2A'#0#144#5'xb'#26#165#231'v'#250'+K'#247#244#186#147#213#18#155#231'n' +#247#176#158'$'#234'px'#22#240#204']'#239'4'#153#176#203'%'#194#144'lB'#156 +'s'#203'3'#157#13#164#169' '#192#174#156'/'#229'So'#254'm'#30#185'_'#178#244 +'l'#149#188'4'#164#179#188#253#191','#139#13#136#241#176#206#151#22'RR'#1'*' +#176#252#201#136#128#7#151'1I L'#153#131'5'#218#165#21'[[E'#249'n'#199#21'us' +'Y'#140'}'#199#1'ej'#0#163#204#6#163#238#18#149'N'#234#204'flN'#149#222#138 +'b'#249#205#186#156'jf'#171#20#210#146#159'2'#0';'#197#190'p~'#196#12#183#181 +#171#213'K8'#187#19'd)'#244#251#253'7'#223#251#173#152#129'b'#253'/'#223'}j' +#144'0'#162' '#13#245#168'P'#164#2'/n'#251#210#160#145#136'9'#4'no'#29#254 +#149#156#198'@'#165#213'Lw'#223'A'#253#216'(hIR'#132#136#29'G}u'#172#178#162 +#137#9#152'#~'#253'>'#181#204#217#133','#21'A'#219#176'7'#159#238#247#171#6 +'d'#24#17'r i'#223'_'#181'P'#3'iYW'#134#152#158#249#223#175'!'#202#180#220#17 +'Hj'#193#146'T'#9#248#127'M'#143'I'#253#239#165'eW'#238'\ '#156'*'#194'B'#160 +'_O'#246'y|'#185'hj'#227'$X'#157'M'#172#28#169#6#183'&O'#16#163'm'#186#253#15 +#237'T'#5#16' '#146''''#191#215#229#214#215#133#1'Y'#254'/'#203#222#223#223 +#173'S,'#16#149#27's'#239#214#169' -'#228#234'*'#26'<'#133#169#7'0=?'#223#219 +#189'h'#6#182#184#23#2#253#239#161#168'T/'#204#163''''#233#250'w'#127#189'P' +#199'6JT'#146#160'r'#158#127'}m'#243#29'/Ya'#21#132#183#30'x$i'#127#172#199 +'X"'#246'3'#202#184#221'oC'#165#143'8'#149'6."u'#29'7'#131'x'#157#164'i~`' +#197'p'#197#171#252#160#129'!V'#137#215'h'#250'~'#177#204#214#213#187#7'q'#11 +'u''R'#169#142'C'#247#173#164#204#182#127#255#217#12'Proportional'#9#7'Stret' +'ch'#9#0#0#7'TButton'#7'Button1'#23'AnchorSideRight.Control'#7#5'Owner'#20'A' +'nchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#5'Owner' +#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#144#1#6'Height'#2#29#3'T' +'op'#3#1#2#5'Width'#2'@'#7'Anchors'#11#7'akRight'#8'akBottom'#0#7'Caption'#6 +#5'Close'#8'TabOrder'#2#0#7'OnClick'#7#12'Button1Click'#0#0#6'TLabel'#15'Wri' +'ttenByString'#22'AnchorSideLeft.Control'#7#14'WrittenByLabel'#19'AnchorSide' +'Left.Side'#7#9'asrBottom'#18'AnchorSideTop.Side'#7#9'asrCenter'#24'AnchorSi' +'deBottom.Control'#7#14'WrittenByLabel'#21'AnchorSideBottom.Side'#7#9'asrBot' ,'tom'#4'Left'#2'e'#6'Height'#2#19#3'Top'#3#11#2#5'Width'#2'^'#7'Anchors'#11#6 +'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2#4#7'Caption'#6#13'unihedron.' +'com'#10'Font.Color'#7#6'clBlue'#11'ParentColor'#8#10'ParentFont'#8#7'OnClic' +'k'#7#20'WrittenByStringClick'#12'OnMouseEnter'#7#25'WrittenByStringMouseEnt' +'er'#12'OnMouseLeave'#7#25'WrittenByStringMouseLeave'#0#0#5'TMemo'#5'Memo1' +#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#6'Image1' +#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner' +#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#12'V' +'ersionLabel'#4'Left'#2#0#6'Height'#3#220#0#3'Top'#3#180#0#5'Width'#3#208#1#7 +'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#17'BorderSpacing.To' +'p'#2#4#20'BorderSpacing.Bottom'#2#4#11'BorderStyle'#7#6'bsNone'#13'Lines.St' +'rings'#1#6'>Use this program with connected Sky Quality Meter products to:' +#6#27'- Read version information.'#6#19'- Request readings.'#6' - Read and s' +'et calibration data.'#6'$- Read and set all other parameters.'#6#23'- Insta' +'ll new firmware.'#6'2- Setup and retrieve data from datalogging meters.'#6 +'.- Continuously log data from connected meters.'#6#0#6#12'License: GPL'#0#10 +'ScrollBars'#7#10'ssAutoBoth'#8'TabOrder'#2#1#0#0#6'TLabel'#14'WrittenByLabe' +'l'#18'AnchorSideTop.Side'#7#9'asrCenter'#24'AnchorSideBottom.Control'#7#5'O' +'wner'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#28#6'Height'#2#19#3 +'Top'#3#11#2#5'Width'#2'E'#9'Alignment'#7#14'taRightJustify'#7'Anchors'#11#8 +'akBottom'#0#7'Caption'#6#11'Written by:'#11'ParentColor'#8#0#0#6'TLabel'#12 +'VersionLabel'#23'AnchorSideRight.Control'#7#14'WrittenByLabel'#20'AnchorSid' +'eRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#11'FpointLabel'#4 +'Left'#2'.'#6'Height'#2#19#3'Top'#3#148#1#5'Width'#2'3'#9'Alignment'#7#14'ta' +'RightJustify'#7'Anchors'#11#7'akRight'#8'akBottom'#0#20'BorderSpacing.Botto' +'m'#2#5#7'Caption'#6#8'Version:'#11'ParentColor'#8#0#0#6'TLabel'#15'FileVers' +'ionText'#22'AnchorSideLeft.Control'#7#12'VersionLabel'#19'AnchorSideLeft.Si' +'de'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#12'VersionLabel'#18'AnchorSi' +'deTop.Side'#7#9'asrCenter'#21'AnchorSideBottom.Side'#7#9'asrCenter'#4'Left' +#2'e'#6'Height'#2#19#3'Top'#3#148#1#5'Width'#3#140#0#9'Alignment'#7#14'taRig' +'htJustify'#18'BorderSpacing.Left'#2#4#7'Caption'#6#19'XXXX.XXXX.XXXX.XXXX' +#11'ParentColor'#8#0#0#6'TLabel'#11'FpointLabel'#23'AnchorSideRight.Control' +#7#14'WrittenByLabel'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideB' +'ottom.Control'#7#11'FcommaLabel'#4'Left'#2'='#6'Height'#2#19#3'Top'#3#172#1 +#5'Width'#2'$'#7'Anchors'#11#7'akRight'#8'akBottom'#0#7'Caption'#6#6'Point:' +#11'ParentColor'#8#0#0#6'TLabel'#12'FpointString'#22'AnchorSideLeft.Control' +#7#11'FpointLabel'#19'AnchorSideLeft.Side'#7#9'asrBottom'#18'AnchorSideTop.S' +'ide'#7#9'asrCenter'#24'AnchorSideBottom.Control'#7#11'FpointLabel'#21'Ancho' +'rSideBottom.Side'#7#9'asrBottom'#4'Left'#2'e'#6'Height'#2#19#3'Top'#3#172#1 +#5'Width'#2'8'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2 +#4#7'Caption'#6#9'resolving'#11'ParentColor'#8#0#0#6'TLabel'#11'FcommaLabel' +#23'AnchorSideRight.Control'#7#14'WrittenByLabel'#20'AnchorSideRight.Side'#7 +#9'asrBottom'#24'AnchorSideBottom.Control'#7#8'UTCLabel'#4'Left'#2'.'#6'Heig' +'ht'#2#19#3'Top'#3#191#1#5'Width'#2'3'#7'Anchors'#11#7'akRight'#8'akBottom'#0 +#7'Caption'#6#6'Comma:'#11'ParentColor'#8#0#0#6'TLabel'#12'FCommaString'#22 +'AnchorSideLeft.Control'#7#11'FcommaLabel'#19'AnchorSideLeft.Side'#7#9'asrBo' +'ttom'#21'AnchorSideTop.Control'#7#11'FcommaLabel'#18'AnchorSideTop.Side'#7#9 +'asrCenter'#21'AnchorSideBottom.Side'#7#9'asrCenter'#4'Left'#2'e'#6'Height'#2 +#19#3'Top'#3#191#1#5'Width'#2'8'#18'BorderSpacing.Left'#2#4#7'Caption'#6#9'r' +'esolving'#11'ParentColor'#8#0#0#6'TLabel'#8'UTCLabel'#23'AnchorSideRight.Co' +'ntrol'#7#10'LocalLabel'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSi' +'deBottom.Control'#7#10'LocalLabel'#4'Left'#2'%'#6'Height'#2#19#3'Top'#3#210 +#1#5'Width'#2'<'#7'Anchors'#11#7'akRight'#8'akBottom'#0#7'Caption'#6#9'UTC t' +'ime:'#11'ParentColor'#8#0#0#6'TLabel'#10'LocalLabel'#23'AnchorSideRight.Con' +'trol'#7#15'WrittenByString'#24'AnchorSideBottom.Control'#7#11'TZDiffLabel'#4 +'Left'#2#31#6'Height'#2#19#3'Top'#3#229#1#5'Width'#2'B'#7'Anchors'#11#7'akRi' +'ght'#8'akBottom'#0#7'Caption'#6#11'Local time:'#11'ParentColor'#8#0#0#6'TLa' +'bel'#7'UTCText'#22'AnchorSideLeft.Control'#7#8'UTCLabel'#19'AnchorSideLeft.' +'Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#8'UTCLabel'#21'AnchorSi' +'deBottom.Side'#7#9'asrBottom'#4'Left'#2'e'#6'Height'#2#19#3'Top'#3#210#1#5 +'Width'#2'8'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2#4 +#7'Caption'#6#9'resolving'#11'ParentColor'#8#0#0#6'TLabel'#9'LocalText'#22'A' +'nchorSideLeft.Control'#7#10'LocalLabel'#19'AnchorSideLeft.Side'#7#9'asrBott' +'om'#24'AnchorSideBottom.Control'#7#10'LocalLabel'#21'AnchorSideBottom.Side' ,#7#9'asrBottom'#4'Left'#2'e'#6'Height'#2#19#3'Top'#3#229#1#5'Width'#2'8'#7'A' +'nchors'#11#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2#4#7'Caption'#6#9 +'resolving'#11'ParentColor'#8#0#0#6'TLabel'#11'TZDiffLabel'#23'AnchorSideRig' +'ht.Control'#7#14'WrittenByLabel'#20'AnchorSideRight.Side'#7#9'asrBottom'#24 +'AnchorSideBottom.Control'#7#15'WrittenByString'#4'Left'#2#12#6'Height'#2#19 +#3'Top'#3#248#1#5'Width'#2'U'#7'Anchors'#11#7'akRight'#8'akBottom'#0#7'Capti' +'on'#6#14'TZ difference:'#11'ParentColor'#8#0#0#6'TLabel'#10'TZDiffText'#22 +'AnchorSideLeft.Control'#7#11'TZDiffLabel'#19'AnchorSideLeft.Side'#7#9'asrBo' +'ttom'#24'AnchorSideBottom.Control'#7#11'TZDiffLabel'#21'AnchorSideBottom.Si' +'de'#7#9'asrBottom'#4'Left'#2'e'#6'Height'#2#19#3'Top'#3#248#1#5'Width'#2'8' +#7'Anchors'#11#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2#4#7'Caption' +#6#9'resolving'#11'ParentColor'#8#0#0#6'TTimer'#6'Timer1'#7'OnTimer'#7#11'Ti' +'mer1Timer'#4'Left'#3#26#1#3'Top'#3#203#1#0#0#0 ]); ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./ssl_cryptlib.pas����������������������������������������������������������������������������������0000644�0001750�0001750�00000055023�14576573021�014372� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{==============================================================================| | Project : Ararat Synapse | 001.001.000 | |==============================================================================| | Content: SSL/SSH support by Peter Gutmann's CryptLib | |==============================================================================| | Copyright (c)1999-2012, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2005-2012. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@abstract(SSL/SSH plugin for CryptLib) This plugin requires cl32.dll at least version 3.2.0! It can be used on Win32 and Linux. This library is staticly linked - when you compile your application with this plugin, you MUST distribute it with Cryptib library, otherwise you cannot run your application! It can work with keys and certificates stored as PKCS#15 only! It must be stored as disk file only, you cannot load them from memory! Each file can hold multiple keys and certificates. You must identify it by 'label' stored in @link(TSSLCryptLib.PrivateKeyLabel). If you need to use secure connection and authorize self by certificate (each SSL/TLS server or client with client authorization), then use @link(TCustomSSL.PrivateKeyFile), @link(TSSLCryptLib.PrivateKeyLabel) and @link(TCustomSSL.KeyPassword) properties. If you need to use server what verifying client certificates, then use @link(TCustomSSL.CertCAFile) as PKCS#15 file with public keyas of allowed clients. Clients with non-matching certificates will be rejected by cryptLib. This plugin is capable to create Ad-Hoc certificates. When you start SSL/TLS server without explicitly assigned key and certificate, then this plugin create Ad-Hoc key and certificate for each incomming connection by self. It slowdown accepting of new connections! You can use this plugin for SSHv2 connections too! You must explicitly set @link(TCustomSSL.SSLType) to value LT_SSHv2 and set @link(TCustomSSL.username) and @link(TCustomSSL.password). You can use special SSH channels too, see @link(TCustomSSL). } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} unit ssl_cryptlib; interface uses Windows, SysUtils, blcksock, synsock, synautil, synacode, cryptlib; type {:@abstract(class implementing CryptLib SSL/SSH plugin.) Instance of this class will be created for each @link(TTCPBlockSocket). You not need to create instance of this class, all is done by Synapse itself!} TSSLCryptLib = class(TCustomSSL) protected FCryptSession: CRYPT_SESSION; FPrivateKeyLabel: string; FDelCert: Boolean; FReadBuffer: string; FTrustedCAs: array of integer; function SSLCheck(Value: integer): Boolean; function Init(server:Boolean): Boolean; function DeInit: Boolean; function Prepare(server:Boolean): Boolean; function GetString(const cryptHandle: CRYPT_HANDLE; const attributeType: CRYPT_ATTRIBUTE_TYPE): string; function CreateSelfSignedCert(Host: string): Boolean; override; function PopAll: string; public {:See @inherited} constructor Create(const Value: TTCPBlockSocket); override; destructor Destroy; override; {:Load trusted CA's in PEM format} procedure SetCertCAFile(const Value: string); override; {:See @inherited} function LibVersion: String; override; {:See @inherited} function LibName: String; override; {:See @inherited} procedure Assign(const Value: TCustomSSL); override; {:See @inherited and @link(ssl_cryptlib) for more details.} function Connect: boolean; override; {:See @inherited and @link(ssl_cryptlib) for more details.} function Accept: boolean; override; {:See @inherited} function Shutdown: boolean; override; {:See @inherited} function BiShutdown: boolean; override; {:See @inherited} function SendBuffer(Buffer: TMemory; Len: Integer): Integer; override; {:See @inherited} function RecvBuffer(Buffer: TMemory; Len: Integer): Integer; override; {:See @inherited} function WaitingData: Integer; override; {:See @inherited} function GetSSLVersion: string; override; {:See @inherited} function GetPeerSubject: string; override; {:See @inherited} function GetPeerIssuer: string; override; {:See @inherited} function GetPeerName: string; override; {:See @inherited} function GetPeerFingerprint: string; override; {:See @inherited} function GetVerifyCert: integer; override; published {:name of certificate/key within PKCS#15 file. It can hold more then one certificate/key and each certificate/key must have unique label within one file.} property PrivateKeyLabel: string read FPrivateKeyLabel Write FPrivateKeyLabel; end; implementation {==============================================================================} constructor TSSLCryptLib.Create(const Value: TTCPBlockSocket); begin inherited Create(Value); FcryptSession := CRYPT_SESSION(CRYPT_SESSION_NONE); FPrivateKeyLabel := 'synapse'; FDelCert := false; FTrustedCAs := nil; end; destructor TSSLCryptLib.Destroy; begin SetCertCAFile(''); // destroy certificates DeInit; inherited Destroy; end; procedure TSSLCryptLib.Assign(const Value: TCustomSSL); begin inherited Assign(Value); if Value is TSSLCryptLib then begin FPrivateKeyLabel := TSSLCryptLib(Value).privatekeyLabel; end; end; function TSSLCryptLib.GetString(const cryptHandle: CRYPT_HANDLE; const attributeType: CRYPT_ATTRIBUTE_TYPE): string; var l: integer; begin l := 0; cryptGetAttributeString(cryptHandle, attributeType, nil, l); setlength(Result, l); cryptGetAttributeString(cryptHandle, attributeType, pointer(Result), l); setlength(Result, l); end; function TSSLCryptLib.LibVersion: String; var x: integer; begin Result := GetString(CRYPT_UNUSED, CRYPT_OPTION_INFO_DESCRIPTION); cryptGetAttribute(CRYPT_UNUSED, CRYPT_OPTION_INFO_MAJORVERSION, x); Result := Result + ' v' + IntToStr(x); cryptGetAttribute(CRYPT_UNUSED, CRYPT_OPTION_INFO_MINORVERSION, x); Result := Result + '.' + IntToStr(x); cryptGetAttribute(CRYPT_UNUSED, CRYPT_OPTION_INFO_STEPPING, x); Result := Result + '.' + IntToStr(x); end; function TSSLCryptLib.LibName: String; begin Result := 'ssl_cryptlib'; end; function TSSLCryptLib.SSLCheck(Value: integer): Boolean; begin Result := true; FLastErrorDesc := ''; if Value = CRYPT_ERROR_COMPLETE then Value := 0; FLastError := Value; if FLastError <> 0 then begin Result := False; {$IF CRYPTLIB_VERSION >= 3400} FLastErrorDesc := GetString(FCryptSession, CRYPT_ATTRIBUTE_ERRORMESSAGE); {$ELSE} FLastErrorDesc := GetString(FCryptSession, CRYPT_ATTRIBUTE_INT_ERRORMESSAGE); {$IFEND} end; end; function TSSLCryptLib.CreateSelfSignedCert(Host: string): Boolean; var privateKey: CRYPT_CONTEXT; keyset: CRYPT_KEYSET; cert: CRYPT_CERTIFICATE; publicKey: CRYPT_CONTEXT; begin if FPrivatekeyFile = '' then FPrivatekeyFile := GetTempFile('', 'key'); cryptCreateContext(privateKey, CRYPT_UNUSED, CRYPT_ALGO_RSA); cryptSetAttributeString(privateKey, CRYPT_CTXINFO_LABEL, Pointer(FPrivatekeyLabel), Length(FPrivatekeyLabel)); cryptSetAttribute(privateKey, CRYPT_CTXINFO_KEYSIZE, 1024); cryptGenerateKey(privateKey); cryptKeysetOpen(keyset, CRYPT_UNUSED, CRYPT_KEYSET_FILE, PChar(FPrivatekeyFile), CRYPT_KEYOPT_CREATE); FDelCert := True; cryptAddPrivateKey(keyset, privateKey, PChar(FKeyPassword)); cryptCreateCert(cert, CRYPT_UNUSED, CRYPT_CERTTYPE_CERTIFICATE); cryptSetAttribute(cert, CRYPT_CERTINFO_XYZZY, 1); cryptGetPublicKey(keyset, publicKey, CRYPT_KEYID_NAME, PChar(FPrivatekeyLabel)); cryptSetAttribute(cert, CRYPT_CERTINFO_SUBJECTPUBLICKEYINFO, publicKey); cryptSetAttributeString(cert, CRYPT_CERTINFO_COMMONNAME, Pointer(host), Length(host)); cryptSignCert(cert, privateKey); cryptAddPublicKey(keyset, cert); cryptKeysetClose(keyset); cryptDestroyCert(cert); cryptDestroyContext(privateKey); cryptDestroyContext(publicKey); Result := True; end; function TSSLCryptLib.PopAll: string; const BufferMaxSize = 32768; var Outbuffer: string; WriteLen: integer; begin Result := ''; repeat setlength(outbuffer, BufferMaxSize); Writelen := 0; SSLCheck(CryptPopData(FCryptSession, @OutBuffer[1], BufferMaxSize, Writelen)); if FLastError <> 0 then Break; if WriteLen > 0 then begin setlength(outbuffer, WriteLen); Result := Result + outbuffer; end; until WriteLen = 0; end; function TSSLCryptLib.Init(server:Boolean): Boolean; var st: CRYPT_SESSION_TYPE; keysetobj: CRYPT_KEYSET; cryptContext: CRYPT_CONTEXT; x: integer; begin Result := False; FLastErrorDesc := ''; FLastError := 0; FDelCert := false; FcryptSession := CRYPT_SESSION(CRYPT_SESSION_NONE); if server then case FSSLType of LT_all, LT_SSLv3, LT_TLSv1, LT_TLSv1_1: st := CRYPT_SESSION_SSL_SERVER; LT_SSHv2: st := CRYPT_SESSION_SSH_SERVER; else Exit; end else case FSSLType of LT_all, LT_SSLv3, LT_TLSv1, LT_TLSv1_1: st := CRYPT_SESSION_SSL; LT_SSHv2: st := CRYPT_SESSION_SSH; else Exit; end; if not SSLCheck(cryptCreateSession(FcryptSession, CRYPT_UNUSED, st)) then Exit; x := -1; case FSSLType of LT_SSLv3: x := 0; LT_TLSv1: x := 1; LT_TLSv1_1: x := 2; end; if x >= 0 then if not SSLCheck(cryptSetAttribute(FCryptSession, CRYPT_SESSINFO_VERSION, x)) then Exit; if (FCertComplianceLevel <> -1) then if not SSLCheck(cryptSetAttribute (CRYPT_UNUSED, CRYPT_OPTION_CERT_COMPLIANCELEVEL, FCertComplianceLevel)) then Exit; if FUsername <> '' then begin cryptSetAttributeString(FcryptSession, CRYPT_SESSINFO_USERNAME, Pointer(FUsername), Length(FUsername)); cryptSetAttributeString(FcryptSession, CRYPT_SESSINFO_PASSWORD, Pointer(FPassword), Length(FPassword)); end; if FSSLType = LT_SSHv2 then if FSSHChannelType <> '' then begin cryptSetAttribute(FCryptSession, CRYPT_SESSINFO_SSH_CHANNEL, CRYPT_UNUSED); cryptSetAttributeString(FCryptSession, CRYPT_SESSINFO_SSH_CHANNEL_TYPE, Pointer(FSSHChannelType), Length(FSSHChannelType)); if FSSHChannelArg1 <> '' then cryptSetAttributeString(FCryptSession, CRYPT_SESSINFO_SSH_CHANNEL_ARG1, Pointer(FSSHChannelArg1), Length(FSSHChannelArg1)); if FSSHChannelArg2 <> '' then cryptSetAttributeString(FCryptSession, CRYPT_SESSINFO_SSH_CHANNEL_ARG2, Pointer(FSSHChannelArg2), Length(FSSHChannelArg2)); end; if server and (FPrivatekeyFile = '') then begin if FPrivatekeyLabel = '' then FPrivatekeyLabel := 'synapse'; if FkeyPassword = '' then FkeyPassword := 'synapse'; CreateSelfSignedcert(FSocket.ResolveIPToName(FSocket.GetRemoteSinIP)); end; if (FPrivatekeyLabel <> '') and (FPrivatekeyFile <> '') then begin if not SSLCheck(cryptKeysetOpen(KeySetObj, CRYPT_UNUSED, CRYPT_KEYSET_FILE, PChar(FPrivatekeyFile), CRYPT_KEYOPT_READONLY)) then Exit; try if not SSLCheck(cryptGetPrivateKey(KeySetObj, cryptcontext, CRYPT_KEYID_NAME, PChar(FPrivatekeyLabel), PChar(FKeyPassword))) then Exit; if not SSLCheck(cryptSetAttribute(FcryptSession, CRYPT_SESSINFO_PRIVATEKEY, cryptcontext)) then Exit; finally cryptKeysetClose(keySetObj); cryptDestroyContext(cryptcontext); end; end; if server and FVerifyCert then begin if not SSLCheck(cryptKeysetOpen(KeySetObj, CRYPT_UNUSED, CRYPT_KEYSET_FILE, PChar(FCertCAFile), CRYPT_KEYOPT_READONLY)) then Exit; try if not SSLCheck(cryptSetAttribute(FcryptSession, CRYPT_SESSINFO_KEYSET, keySetObj)) then Exit; finally cryptKeysetClose(keySetObj); end; end; Result := true; end; function TSSLCryptLib.DeInit: Boolean; begin Result := True; if FcryptSession <> CRYPT_SESSION(CRYPT_SESSION_NONE) then CryptDestroySession(FcryptSession); FcryptSession := CRYPT_SESSION(CRYPT_SESSION_NONE); FSSLEnabled := False; if FDelCert then SysUtils.DeleteFile(FPrivatekeyFile); end; function TSSLCryptLib.Prepare(server:Boolean): Boolean; begin Result := false; DeInit; if Init(server) then Result := true else DeInit; end; function TSSLCryptLib.Connect: boolean; begin Result := False; if FSocket.Socket = INVALID_SOCKET then Exit; if Prepare(false) then begin if not SSLCheck(cryptSetAttribute(FCryptSession, CRYPT_SESSINFO_NETWORKSOCKET, FSocket.Socket)) then Exit; if not SSLCheck(cryptSetAttribute(FCryptSession, CRYPT_SESSINFO_ACTIVE, 1)) then Exit; if FverifyCert then if (GetVerifyCert <> 0) or (not DoVerifyCert) then Exit; FSSLEnabled := True; Result := True; FReadBuffer := ''; end; end; function TSSLCryptLib.Accept: boolean; begin Result := False; if FSocket.Socket = INVALID_SOCKET then Exit; if Prepare(true) then begin if not SSLCheck(cryptSetAttribute(FCryptSession, CRYPT_SESSINFO_NETWORKSOCKET, FSocket.Socket)) then Exit; if not SSLCheck(cryptSetAttribute(FCryptSession, CRYPT_SESSINFO_ACTIVE, 1)) then Exit; FSSLEnabled := True; Result := True; FReadBuffer := ''; end; end; function TSSLCryptLib.Shutdown: boolean; begin Result := BiShutdown; end; function TSSLCryptLib.BiShutdown: boolean; begin if FcryptSession <> CRYPT_SESSION(CRYPT_SESSION_NONE) then cryptSetAttribute(FCryptSession, CRYPT_SESSINFO_ACTIVE, 0); DeInit; FReadBuffer := ''; Result := True; end; function TSSLCryptLib.SendBuffer(Buffer: TMemory; Len: Integer): Integer; var l: integer; begin FLastError := 0; FLastErrorDesc := ''; SSLCheck(cryptPushData(FCryptSession, Buffer, Len, L)); cryptFlushData(FcryptSession); Result := l; end; function TSSLCryptLib.RecvBuffer(Buffer: TMemory; Len: Integer): Integer; begin FLastError := 0; FLastErrorDesc := ''; if Length(FReadBuffer) = 0 then FReadBuffer := PopAll; if Len > Length(FReadBuffer) then Len := Length(FReadBuffer); Move(Pointer(FReadBuffer)^, buffer^, Len); Delete(FReadBuffer, 1, Len); Result := Len; end; function TSSLCryptLib.WaitingData: Integer; begin Result := Length(FReadBuffer); end; function TSSLCryptLib.GetSSLVersion: string; var x: integer; begin Result := ''; if FcryptSession = CRYPT_SESSION(CRYPT_SESSION_NONE) then Exit; cryptGetAttribute(FCryptSession, CRYPT_SESSINFO_VERSION, x); if FSSLType in [LT_SSLv3, LT_TLSv1, LT_TLSv1_1, LT_all] then case x of 0: Result := 'SSLv3'; 1: Result := 'TLSv1'; 2: Result := 'TLSv1.1'; end; if FSSLType in [LT_SSHv2] then case x of 0: Result := 'SSHv1'; 1: Result := 'SSHv2'; end; end; function TSSLCryptLib.GetPeerSubject: string; var cert: CRYPT_CERTIFICATE; begin Result := ''; if FcryptSession = CRYPT_SESSION(CRYPT_SESSION_NONE) then Exit; cryptGetAttribute(FCryptSession, CRYPT_SESSINFO_RESPONSE, cert); cryptSetAttribute(cert, CRYPT_ATTRIBUTE_CURRENT, CRYPT_CERTINFO_SUBJECTNAME); Result := GetString(cert, CRYPT_CERTINFO_DN); cryptDestroyCert(cert); end; function TSSLCryptLib.GetPeerName: string; var cert: CRYPT_CERTIFICATE; begin Result := ''; if FcryptSession = CRYPT_SESSION(CRYPT_SESSION_NONE) then Exit; cryptGetAttribute(FCryptSession, CRYPT_SESSINFO_RESPONSE, cert); cryptSetAttribute(cert, CRYPT_ATTRIBUTE_CURRENT, CRYPT_CERTINFO_SUBJECTNAME); Result := GetString(cert, CRYPT_CERTINFO_COMMONNAME); cryptDestroyCert(cert); end; function TSSLCryptLib.GetPeerIssuer: string; var cert: CRYPT_CERTIFICATE; begin Result := ''; if FcryptSession = CRYPT_SESSION(CRYPT_SESSION_NONE) then Exit; cryptGetAttribute(FCryptSession, CRYPT_SESSINFO_RESPONSE, cert); cryptSetAttribute(cert, CRYPT_ATTRIBUTE_CURRENT, CRYPT_CERTINFO_ISSUERNAME); Result := GetString(cert, CRYPT_CERTINFO_COMMONNAME); cryptDestroyCert(cert); end; function TSSLCryptLib.GetPeerFingerprint: string; var cert: CRYPT_CERTIFICATE; begin Result := ''; if FcryptSession = CRYPT_SESSION(CRYPT_SESSION_NONE) then Exit; cryptGetAttribute(FCryptSession, CRYPT_SESSINFO_RESPONSE, cert); Result := GetString(cert, CRYPT_CERTINFO_FINGERPRINT); cryptDestroyCert(cert); end; procedure TSSLCryptLib.SetCertCAFile(const Value: string); var F:textfile; bInCert:boolean; s,sCert:string; cert: CRYPT_CERTIFICATE; idx:integer; begin if assigned(FTrustedCAs) then begin for idx := 0 to High(FTrustedCAs) do cryptDestroyCert(FTrustedCAs[idx]); FTrustedCAs:=nil; end; if Value<>'' then begin AssignFile(F,Value); reset(F); bInCert:=false; idx:=0; while not eof(F) do begin readln(F,s); if pos('-----END CERTIFICATE-----',s)>0 then begin bInCert:=false; cert:=0; if (cryptImportCert(PAnsiChar(sCert),length(sCert)-2,CRYPT_UNUSED,cert)=CRYPT_OK) then begin cryptSetAttribute( cert, CRYPT_CERTINFO_TRUSTED_IMPLICIT, 1 ); SetLength(FTrustedCAs,idx+1); FTrustedCAs[idx]:=cert; idx:=idx+1; end; end; if bInCert then sCert:=sCert+s+#13#10; if pos('-----BEGIN CERTIFICATE-----',s)>0 then begin bInCert:=true; sCert:=''; end; end; CloseFile(F); end; end; function TSSLCryptLib.GetVerifyCert: integer; var cert: CRYPT_CERTIFICATE; itype,ilocus:integer; begin Result := -1; if FcryptSession = CRYPT_SESSION(CRYPT_SESSION_NONE) then Exit; cryptGetAttribute(FCryptSession, CRYPT_SESSINFO_RESPONSE, cert); result:=cryptCheckCert(cert,CRYPT_UNUSED); if result<>CRYPT_OK then begin //get extended error info if available cryptGetAttribute(cert,CRYPT_ATTRIBUTE_ERRORtype,itype); cryptGetAttribute(cert,CRYPT_ATTRIBUTE_ERRORLOCUS,ilocus); cryptSetAttribute(cert, CRYPT_ATTRIBUTE_CURRENT, CRYPT_CERTINFO_SUBJECTNAME); FLastError := Result; FLastErrorDesc := format('SSL/TLS certificate verification failed for "%s"'#13#10'Status: %d. ERRORTYPE: %d. ERRORLOCUS: %d.', [GetString(cert, CRYPT_CERTINFO_COMMONNAME),result,itype,ilocus]); end; cryptDestroyCert(cert); end; {==============================================================================} var imajor,iminor,iver:integer; // e: ESynapseError; initialization if cryptInit = CRYPT_OK then SSLImplementation := TSSLCryptLib; cryptAddRandom(nil, CRYPT_RANDOM_SLOWPOLL); cryptGetAttribute (CRYPT_UNUSED, CRYPT_OPTION_INFO_MAJORVERSION,imajor); cryptGetAttribute (CRYPT_UNUSED, CRYPT_OPTION_INFO_MINORVERSION,iminor); // according to the documentation CRYPTLIB version has 3 digits. recent versions use 4 digits if CRYPTLIB_VERSION >1000 then iver:=CRYPTLIB_VERSION div 100 else iver:=CRYPTLIB_VERSION div 10; if (iver <> imajor*10+iminor) then begin SSLImplementation :=TSSLNone; // e := ESynapseError.Create(format('Error wrong cryptlib version (is %d.%d expected %d.%d). ', // [imajor,iminor,iver div 10, iver mod 10])); // e.ErrorCode := 0; // e.ErrorMessage := format('Error wrong cryptlib version (%d.%d expected %d.%d)', // [imajor,iminor,iver div 10, iver mod 10]); // raise e; end; finalization cryptEnd; end. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./convertlogfileunit.lfm����������������������������������������������������������������������������0000644�0001750�0001750�00000006665�14576573021�015606� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object convertdialog: Tconvertdialog Left = 2101 Height = 373 Top = 505 Width = 708 ActiveControl = Memo1 Caption = 'Convert Log File' ClientHeight = 373 ClientWidth = 708 OnCreate = FormCreate Position = poScreenCenter LCLVersion = '2.0.12.0' object SelectButton: TButton AnchorSideTop.Control = Memo1 AnchorSideTop.Side = asrBottom Left = 116 Height = 25 Top = 174 Width = 220 BorderSpacing.Top = 9 Caption = 'Select and convert input file' OnClick = SelectButtonClick TabOrder = 0 end object Memo1: TMemo AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 5 Height = 160 Top = 5 Width = 698 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 5 BorderSpacing.Top = 5 BorderSpacing.Right = 5 Lines.Strings = ( '1. This tool adds Moon information to the selected input log file (.dat) and outputs to a (.csv) file of the same filename.' '' '2. The lengthy header from the .dat file is removed. Only one header line describing the record fields is left near the top.' '' '3. Semicolons are used for the field seperators (just like in the original .dat file).' ) ReadOnly = True ScrollBars = ssAutoVertical TabOrder = 1 end object LatitudeDisplay: TLabeledEdit AnchorSideTop.Control = OutputFilenameDisplay AnchorSideTop.Side = asrBottom Left = 116 Height = 32 Top = 236 Width = 80 Alignment = taRightJustify BorderSpacing.Top = 2 EditLabel.Height = 19 EditLabel.Width = 97 EditLabel.Caption = 'Latitude used:' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 2 end object LongitudeDisplay: TLabeledEdit AnchorSideTop.Control = LatitudeDisplay AnchorSideTop.Side = asrBottom Left = 116 Height = 32 Top = 270 Width = 80 Alignment = taRightJustify BorderSpacing.Top = 2 EditLabel.Height = 19 EditLabel.Width = 111 EditLabel.Caption = 'Longitude used:' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 3 end object OutputFilenameDisplay: TLabeledEdit AnchorSideTop.Control = SelectButton AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 116 Height = 32 Top = 202 Width = 587 Anchors = [akTop, akLeft, akRight] BorderSpacing.Top = 3 BorderSpacing.Right = 5 EditLabel.Height = 19 EditLabel.Width = 106 EditLabel.Caption = 'File saved here:' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 4 end object StatusBar1: TStatusBar AnchorSideLeft.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner Left = 0 Height = 22 Top = 351 Width = 708 Panels = < item Width = 50 end> SimplePanel = False end object CloseButton: TButton AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = StatusBar1 Left = 617 Height = 25 Top = 323 Width = 86 Anchors = [akRight, akBottom] BorderSpacing.Right = 5 BorderSpacing.Bottom = 3 Caption = 'Close' OnClick = CloseButtonClick TabOrder = 6 end object OpenFileDialog: TOpenDialog Left = 312 Top = 264 end end ���������������������������������������������������������������������������./citylights_about.jpg������������������������������������������������������������������������������0000644�0001750�0001750�00000023732�14576573022�015236� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������JFIF�����Exif��II*���� �����z���� ���������������������������(�������1� ������2�������i���������NIKON CORPORATION�NIKON D70s��������������GIMP 2.6.11�2012:02:11 12:59:51��������������'�����������0210������ ������������ ������������������� ������� �����������0100����������,������p��������������������#��� ���2005:07:06 22:20:20�������������$��� ���������������������4������<��(�����������D������������H������H�������JFIF�������C�    $.' ",#(7),01444'9=82<.342�C  2!!22222222222222222222222222222222222222222222222222��)�p"������������ ����}�!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz�������� ���w�!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz� ��?�Lӕ>ثB/j55(ltOr,*GҹcXt=;9⻏|MЎZ1G|±vҭlx ㊿ԹH *[kR;l kSqcOj6[{SZڷڡk_j|c{cU%WJN{^ y4s< T/9c5qrim $ަW6f@IʨN]JI&@Bɫ]X) "Ѥ=AiHJWp\k~ER(wwY->4Mk]t3+a_˞ArsjYW v}?zj}$fMWgׂi?�hK=v(~(Ʋ@y$`RQ{d T 'Sʣ5>W[1 e}i$͎||s�סAw:Gc=$+2}CO$1$z)<ji+`N89cYw:դ2% >UܟhrP6^ dq늎CG}XzH6R%tVaT>جۋmqA'"<+:?E$z0 kuJUAI`4Bx ;)CUUz&,c9"jF'BD۴ ʳ_֝)< qޮ}O#ʑ#e6P&CZؤ�C�      �C  ""   ��p,����������������7�����!1AQa"q2B#Rbr�������������.�������!1AQaq"2BR� ��?�lMq=bId7;Uoj "0 #P $ K@I,Ccq5 +, Fũ%#ʑE >!FT?Blj1 IQR P@<.H{ŠŪ,,-t�ʪ�U�V@ k@jJn(@ u�d$@7VDBAt+I$h¥$@a1R@Y* $M@1(YrZ޵$ KsID K]*I`rYRJ9 T5-T(ıҒ 3I(AH<P, D-i@kjA�MTyЂբYgxKfJڤJҀIl W]ʗ?witdjP"b;[1 d Țȃ9EhZ04kAB Rr@9 jY(䱥@9 P KU�ijB hyPhP 4�i PfME�*fаgI�2(AJb9Uj |ұIKMYS1ұQa+2yo@EbB2u1忩@1  ,$fhZ̘}:tx@c'LH4(*zd!IMI)B4EBCu@5CKf@c0XI�P 5H MP�ZZ@-HMM�2{%+kY!;( T$\{5Jtfy<g$uYVC2NN`as:kYo.gIg7-|j0gMbcpoZV`0T`} F>"Em J968&mnf=k8}'_IBQNR<n$ȍհ\@ZtPUH945m$!:RABvX(B"tJPIKtr/@g¡L0[4��� n4h�-P[P@kc@@%lwZB O(JdZ"$ I4榨ix-KL3]J0nQ a'c:Jr:ܘ }b@K F7#ZjSpӭ6kxШE E;gg+uzLX3-hC~]mdֱ R::2AKi+iIJj"[lTAClRKb+Db!IIG%H*ICz> bY(Bp('@@Р+ I�+@-L Jf%ƨ ]n%[2hCW|`V<� Z$/3XE\+-vA_[8s)I-E& EEV' .s%ɚH I ԈǨцnOyFJWF/G>Dqa)h927@\y ȂGY2�HV (#Y)܉>pFh c�O|Q R?.`FO=ObKX[ )6 #PmBk8pr"A[|5\$OUiTe\D\B#v@`zRKSIY YՄ@VP ,U�E�%��Y�vIXSB^ТÚu$ H?:K!2̅fxI¿dhxۅՙA ԟxUĕ _%T #ȿT썊|6*'_FtWm^\18wJA2"I npe0ˀ�@T 5ڼTtvX[k@Nih`' =ɲGReJFEϮ םm/ٖLA$ w',�H 3#+$5) W2"Ф_c$k Gm…DV`Ip0:IajN1+ڴ2�m#8o�`̈58 R5Qf6BAԩRϜz\ARRHRHIs$e7opl[\SC@\$_:G_;ȍѱN$?<IXGZ$xZEEȪDĩFsE/ri" 0TFXp풒B~9p@q*5K?uҐ ~a[t7QXOw3C)X�ezrH+8 GlA7H ڥKWK8v'EYCh1= r&&pH�.(y[H=Ly?i;S2BGX7<С 7ydUżIRyDԨ؃\)f�#i7<*KN!2 k#bGO޻F3n_\&dsVp#םYM7KZڼVB0:Nkk�_%+N% yZ AQl9Zܦho?8V?#XstJ]h{#T Jr>l<H# D])Fۃ{| J eI P $�Suk+K(UZZiϽL.Ug4(3;#]IF\gΝίﷇw�Q7)YTe$ & & eַZQd][OŻ)WitIxe>]HmxcU'y /_W*hir; ҡEu?GrR}2`b|ܶO \{9ݧ&�#o#⌡KK,! *J][\%yt}Nn^8�IqIJr/d3ĀcGY;zO?�ť[l9QA8d,IdZ—/L)pN߽_d8!*RR䤬Xi&ߥ{ȝ|{Q&2̬Ma{M߱~�xh/[KQ$TJT (J A�ꦚUdsokwxz╀s%$rU \i0zON7:;X|bθYIn UNe{^9a,�+[QQA'Cs覧h?׸O]o1^,lĝP)˾z [M"5R7bbsLj)x!.I� |^KM0;>/T!" !D0ӗGG(o裤Ϣ6x_h8f ΧtKpz,ATܑ:֩絝fn^M &+۬:QI@u$6kbu8ؗm"7Vemhp|2~^c\Hi9S>$DS.9䣸#:PLhoRRTPfd�k}w>jca$% &3@$Ip\Vf~ I3Q1Ϻe;EJD~!GR@&ǕATLJzvmXOu*;  5IS, OM=y,�UD�1cO1.3k י"G#WZ-LUsV!ݫp5&�]� 6 To�HcAmkJuu%ID| zNʐ5b7|_ A`,.Tevlu0;SŇ:KdtXjZAi3$[_^2ƀ�'zӰFUI̘t*b$.vapߗNR)"q f|\l]n(ާćmƃ|@1bw^jMFON�I77nmSiaK9*R}u`R+aQ*I~U8{5R+L6Rc6#MzC宫s|;#S}iPe$�t@̩fg^zoLԖxR2JRB%zdf�j+D+Q ;8C,#H F{{Fjo�rRNFɜש9LΫEi={<e3c,ʜgu^h}pZ0B&6c1D^M7+;? y%9 Uʥ` GQ=J9>\q/\gڔG4^i^eppR)IešQ*z&a,eu)KY+I NPbI˧J[oش׽ޗ /-/0] @ U �^v+euƢc}pWq)ðB  (X]PfMiZWR/!ITE (rTo7�9gn#aJhp?LH)J34O '/i,\T\9-XT@3. 2  |7/#Q4%7ВO-u4s9ĜX2pmĂ W’`ndJbknѤP`q82!b$2 ;GQm$;Fx\MRĸ6ER,Ers嗹glja ZIx15>i,I>I~4Ov;7l<Gӭv{6mJr3<&F#6.uT2a)yN KAtHҋ�!scQH JAVSa_iZs+`T6;H3n%pߞB1VTDN $FF8Tv6-L^-kia>T�- VIn~Ņ' )W؃& ؉+\o:leSb1J&M&OD@�nʙ URD.$NC iaru7>u#պRb~(;ֵTHwjA7TȚE^kAޕ ~(�uA@`I7: NzɌѦ@pAQ 51Zu  LYŝ�3z:Be8~-œW܋(`#֊`Xq(,L"7Egu\}kmx$ZR` d9IUg][gI$)@( )ٳ,a[]U7�m@�\$$3*UYi<Uc\)g7̄Pl $)gj7[:0ŵ&D'ɝUX7ɼe7LatC!mq1'\r;*ٜ\c<F�Dc4qp2ͤuBJFCLO#R~jt5+}Lv )<$ `jvYænKJd)Vs6if8)7bs>/LęU#x*J+(IJBH㟫4k%@JE6X fIFf+]Ex2 nD܂-Zq?W3.nşq*PJ&DQJBM̀-cYzs{ڧ=؜a[m$3@č+x}LǬ[Imb.w�kI$g;ݵ)MF)jl6a.#S3"q<[rB 8yuI@5� �d)t9d;�qzDw2wa �VM˗ڦa�|_hi~�M }<bON@xe&c癴h@ۿ "#߽e>m;*p;exXK` �^LPX?QV Yζۂ@ԛ_Ԁ?KjVڣ2GOPACM>K<G�ˇTeBP| (INAs&F`G~HzJT6+ Xߕߥ, se'c@jQ?,+;ę/P�9JPJ D]xp%�!>ۺ6p|E`3�ڒI̥yS +ֳ Iv)\!s:˔P%mPH T{מO;siSXvmIP)MqI c(jyծ kԵI3Z77 rȹ(9 ]Np.v** R�3i$:qq9y#ǻ~ HbD>cM2�Cf'd+l1s(M:pK"NV�8ȁ3ydyuw /{F%8S)-R 4fD٦SsJVS~*QL~hxU[)D$�ɵ( hE{)M?檧ܮ o;:@k ]6Ɏ)0PB`̙7=`-&IN֌(:zHґ{Xw*�ᛋ_KNf % k�3NJ$zoJѐ"O|�uRCDS{:R)&~}- Ҩ@m˿բeWjLNC)V[T̛( 8v?N/ 4. #ƆMX\WRS٦#\N՗ %J2INOrkP Nn()VS?N�W23ͤG�!JA7<W2 @ ö>#+TJ$9muTa1uFoTܥYRSX |E+s=Z䑠RS>&45�&^i..d cHZa5 }=;nU_/_A~#YecEW8*`��Ɂu\RI %/[ P)Nb"�6#4Ș1& 1VM51+&p|6SYېEsEnQƛ3lf'7$EH\ھcPօ>CI \^fFZ7:Ƴljr~Ml{;NDW1;pU %/S΅b1lgD*2A�xbv+Kn$px]4%lBs3 /Som_l4, ΗRR*Ɉ1I L5ڥ[[EnusY}ej�NflNފbͺjfҒ2�;žp~ K8d)7b/}j0 P/nҠ9no@LwA(hIRG}u #~>م,A۰7dr i_PiYW߯!ʴHjT MIeW\ *B_Oy|hj$XM&OmT 'ׅY/߭S,s֩ -*<0=?۽hT/̣'wP6JTr}m/Yax$iX"3ʸoC86."u7xi~`pū!Vh~ջq u'RC̶��������������������������������������./clamsend.pas��������������������������������������������������������������������������������������0000644�0001750�0001750�00000022163�14576573021�013446� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{==============================================================================| | Project : Ararat Synapse | 001.001.001 | |==============================================================================| | Content: ClamAV-daemon client | |==============================================================================| | Copyright (c)2005-2010, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2005-2010. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@abstract( ClamAV-daemon client) This unit is capable to do antivirus scan of your data by TCP channel to ClamD daemon from ClamAV. See more about ClamAV on @LINK(http://www.clamav.net) } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$Q-} {$H+} {$IFDEF UNICODE} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$ENDIF} unit clamsend; interface uses SysUtils, Classes, synsock, blcksock, synautil; const cClamProtocol = '3310'; type {:@abstract(Implementation of ClamAV-daemon client protocol) By this class you can scan any your data by ClamAV opensource antivirus. This class can connect to ClamD by TCP channel, send your data to ClamD and read result.} TClamSend = class(TSynaClient) private FSock: TTCPBlockSocket; FDSock: TTCPBlockSocket; FSession: boolean; function Login: boolean; virtual; function Logout: Boolean; virtual; function OpenStream: Boolean; virtual; public constructor Create; destructor Destroy; override; {:Call any command to ClamD. Used internally by other methods.} function DoCommand(const Value: AnsiString): AnsiString; virtual; {:Return ClamAV version and version of loaded databases.} function GetVersion: AnsiString; virtual; {:Scan content of TStrings.} function ScanStrings(const Value: TStrings): AnsiString; virtual; {:Scan content of TStream.} function ScanStream(const Value: TStream): AnsiString; virtual; {:Scan content of TStrings by new 0.95 API.} function ScanStrings2(const Value: TStrings): AnsiString; virtual; {:Scan content of TStream by new 0.95 API.} function ScanStream2(const Value: TStream): AnsiString; virtual; published {:Socket object used for TCP/IP operation. Good for seting OnStatus hook, etc.} property Sock: TTCPBlockSocket read FSock; {:Socket object used for TCP data transfer operation. Good for seting OnStatus hook, etc.} property DSock: TTCPBlockSocket read FDSock; {:Can turn-on session mode of communication with ClamD. Default is @false, because ClamAV developers design their TCP code very badly and session mode is broken now (CVS-20051031). Maybe ClamAV developers fix their bugs and this mode will be possible in future.} property Session: boolean read FSession write FSession; end; implementation constructor TClamSend.Create; begin inherited Create; FSock := TTCPBlockSocket.Create; FSock.Owner := self; FDSock := TTCPBlockSocket.Create; FDSock.Owner := self; FTimeout := 60000; FTargetPort := cClamProtocol; FSession := false; end; destructor TClamSend.Destroy; begin Logout; FDSock.Free; FSock.Free; inherited Destroy; end; function TClamSend.DoCommand(const Value: AnsiString): AnsiString; begin Result := ''; if not FSession then FSock.CloseSocket else FSock.SendString(Value + LF); if not FSession or (FSock.LastError <> 0) then begin if Login then FSock.SendString(Value + LF) else Exit; end; Result := FSock.RecvTerminated(FTimeout, LF); end; function TClamSend.Login: boolean; begin Result := False; Sock.CloseSocket; FSock.Bind(FIPInterface, cAnyPort); if FSock.LastError <> 0 then Exit; FSock.Connect(FTargetHost, FTargetPort); if FSock.LastError <> 0 then Exit; if FSession then FSock.SendString('SESSION' + LF); Result := FSock.LastError = 0; end; function TClamSend.Logout: Boolean; begin FSock.SendString('END' + LF); Result := FSock.LastError = 0; FSock.CloseSocket; end; function TClamSend.GetVersion: AnsiString; begin Result := DoCommand('nVERSION'); end; function TClamSend.OpenStream: Boolean; var S: AnsiString; begin Result := False; s := DoCommand('nSTREAM'); if (s <> '') and (Copy(s, 1, 4) = 'PORT') then begin s := SeparateRight(s, ' '); FDSock.CloseSocket; FDSock.Bind(FIPInterface, cAnyPort); if FDSock.LastError <> 0 then Exit; FDSock.Connect(FTargetHost, s); if FDSock.LastError <> 0 then Exit; Result := True; end; end; function TClamSend.ScanStrings(const Value: TStrings): AnsiString; begin Result := ''; if OpenStream then begin DSock.SendString(Value.Text); DSock.CloseSocket; Result := FSock.RecvTerminated(FTimeout, LF); end; end; function TClamSend.ScanStream(const Value: TStream): AnsiString; begin Result := ''; if OpenStream then begin DSock.SendStreamRaw(Value); DSock.CloseSocket; Result := FSock.RecvTerminated(FTimeout, LF); end; end; function TClamSend.ScanStrings2(const Value: TStrings): AnsiString; var i: integer; s: AnsiString; begin Result := ''; if not FSession then FSock.CloseSocket else FSock.sendstring('nINSTREAM' + LF); if not FSession or (FSock.LastError <> 0) then begin if Login then FSock.sendstring('nINSTREAM' + LF) else Exit; end; s := Value.text; i := length(s); FSock.SendString(CodeLongint(i) + s + #0#0#0#0); Result := FSock.RecvTerminated(FTimeout, LF); end; function TClamSend.ScanStream2(const Value: TStream): AnsiString; var i: integer; begin Result := ''; if not FSession then FSock.CloseSocket else FSock.sendstring('nINSTREAM' + LF); if not FSession or (FSock.LastError <> 0) then begin if Login then FSock.sendstring('nINSTREAM' + LF) else Exit; end; i := value.Size; FSock.SendString(CodeLongint(i)); FSock.SendStreamRaw(Value); FSock.SendString(#0#0#0#0); Result := FSock.RecvTerminated(FTimeout, LF); end; end. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./udm.ico�������������������������������������������������������������������������������������������0000644�0001750�0001750�00000204076�14576573022�012442� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� �(����(���������� ��������d���d����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��� ���������������!���#���$���#���"���"���!��������������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������'���1���;���D���M���U���[���a���d���e���e���d���b���`���]���X���R���K���D���=���5���+���!��������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ������!���.���>���N���^���m���z������������������������������������������������������������s���d���T���C���4���(��������� ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������$���8���N���c���z������������������������������������������������������������������������������������������p���\���G���2���!������ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ���4���M���g���������������������������������������������������������������������������������������������������������������{���c���I���2������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ������+���C���]���y�����������������������������������������������������������������������������������������w���\���A���)������ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������0���K���k������������������������������������         ����������������������������������������i���I���,��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/���O���t������������������������          ������������������������������o���K���,�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������+���L���t������������������������          % ) ) ( + , . * #!       ����������������������������o���J���+�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������$���E���k���������������������          & / 2 - - 4 4 5 0 ) ( " % ' $ "       �������������������������j���A���"��� ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������5���^��������������������   #32$    !     ' . 1 0 1 6 7 5 1 / 0 * * + + ) $ # % $ # - ."    ������������������������Y���2��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ���#���H���t�����������������  '/ 3 9 >: *    $ & "  #) ) / 4 7 7 9 5 3 58 3 /-+ $ " & + ) + 3 1 ( .$     ���������������������o���A������ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������2���]�������������������'//. 7)M "C +      ! $  ! ) + . 02 5 4 5 6 7 8 5 3 - & %& % $ & ) ) * 1 9 4 -&#& �����������������������U���+�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������C���q����������������� %0/ ' ( & (2 , $      & " ! $ & ) '&+ ) / 5 8 8 89 5 - 2 . % !( *+. 5:9 4 1 2 /,$   ����������������������g���8�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ���$���N����������������� # 6 "@ ; ! ! !  " "    $' !"# " $' " !& &*3 9 7:; 8 4 : 3 ($+.-,.38 : ; !; 4 6 2("  ��������������������t���D������ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������+���W�����������������   , 6!?#B $  ! " " ! " "   !& $#$$ $&%#$) **1 83: 7 4 5 5 / + ) ,0 * %$ )3=#B "@ 7 < : 1 1 +����������������������O���$��� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/���`���������������    %&'' %    " !  ! # $ #   !)&"#' "  $')).3 1 1 2 1 - & " $ ( , 0 0,()*5 "A &D8> < 6; ; . ���������������������U���&��� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������3���g��������������     && $ !        $(" ! &)' % % !  ! #$#%/7 4 5 4 2 / + ( .3 / 1 5 3,%& ' /$> / 373 * 3 -   �������������������Z���*��� ���������������������������������������������������������������������������������������������������������������������������������������������������������������������4���g���������������   )) $ ! " ! ! !      #  $) %%& %(*+* $ #& ' &(' - 5 6 3 5 512 / 14 // 1 1, %'& (1 * + - * &. + #  ��������������������]���-��� ������������������������������������������������������������������������������������������������������������������������������������������������������������4���h������������   %/. ( !  !       % # " # % % '& ! #)., '&*+ '- ' ' -0 1 66361 0 / -.- ,* '+,+ ((% # #&)' #    �����������������]���*��� ������������������������������������������������������������������������������������������������������������������������������������������������� ���0���f�������������  0. # "  " #          #$# " ! " #   ' ( & &), * & ( " # $36 5 571. . -2 / * (),/. (%     "    " "  ������������������Y���'��� ������������������������������������������������������������������������������������������������������������������������������������������ ���+���b��������������  (/*  ! !            ! ! ! ! " ! ! # * . ---, ( " ! ! "#" & & ' ,552 . - 0 ,( % % $ % $              ��������������������U���"�������������������������������������������������������������������������������������������������������������������������������������� ���&���Z������������  $/53,+' & %              ! "'** +/,+- -10* #   #)( # ! %.43 - * % %%$# " ! !     $   !  ������������������L���������������������������������������������������������������������������������������������������������������������������������������Q�������������   ' 12432:40, !   !           (-/00)&' */-*' #  )+ $  "',.+ % ! " "% "  !    !  !    # # " ! ������������������C�������������������������������������������������������������������������������������������������������������������������������E������������ '2 9?80+-;<5*   ! # !    !       % ),/ ' $ ! !& ' &') ) $   ") $ "# $'( # "!  ") $ ""!       !  !% ' & $   ����������������u���9������������������������������������������������������������������������������������������������������������������������8���u����������  1 "D+Q2W0W.S6 % (.+ " " "      "      & % % , ) % # # " $ # # % $ "  ! $ ( )& ! $ $ $ '#&& %* $ %'$"##"!    !',+ *$ �������������j���/��� �������������������������������������������������������������������������������������������������������������)���e����������! 6.T0X !D 4>6/4, %(.*% ! " $    !   !%& $)' %+*&%%$##$'*(&& '&+.) "()% $ $' ( ' * ( ( ( # !&&# $"" ! "#$&('%"   ����������������W��� ������������������������������������������������������������������������������������������������������������P�������������$ &F +O)N%I!E?=9676*-5.'# " # #     #&)))'&''('&'%%%%)'&(*),-*%)*''))** & & '& # !'($$$  $% $()' % #  �����������������B��������������������������������������������������������������������������������������������������������9���~�����������  59b;g %I : B'L=7:?9100(% # ! ! %    " $ '())' $ $('# & %&'%%$$ $ &)*)(''&'*)())# #$$""%%#" #   && $'++ ( &'   ��������������m���/��� ����������������������������������������������������������������������������������������������&���a������������ # <9c:h/V ? 4< 5 /:*M4 3 / &     "# #        !*,' #"% #  " " &)($ # "  &'$#) # "&' # "#$% $$# "!  ! " ##"$&&%&*-,)++ $  ����������������T�����������������������������������������������������������������������������������������������G������������ %3 *K@k -W<l5c A <#A6 +,3"A< .* ! !  "         $&$ $ %  $(' $ $$ # "# ! ## !%&%& ( "" "  " ! " # "&#! ") %#" !!"%),-,)'()( " �����������������?�������������������������������������������������������������������������������������� ���/���n���������� 4"@(K1W &N6b:h-Y%J?>>849=8 )!              #$#!  ! $ #   % * ( ' %&(&  $% " %'& $ $ # ! "#%$# " "&# ! " & $ !  #()+0* % &+/*& " ���������������f���)������������������������������������������������������������������������������������Q����������� / +M *O"G#G$K-P2X0]*V&N&L$HA<==5%# ! "$ !     ##!%'&$#  #&# "$) + +*+,*%%&&)*)()$$%%$%$$ '(%## #.,'',1104- ( )--(& % #  ����������������K���������������������������������������������������������������������������� ���5���x���������# A9d4` #J B*R)I'H(Q*V0W-S$JB!H%J?/$&%%' $#%&#%((%)++($"!#'+*%%*-.- ,+)''*.,+-0%&(% !&&'+,(&&% 8#;!5 16777:">#=&%>)&?306"$:3 " �������������q���.��� �������������������������������������������������������������������������V������������  0 (L :f=h1V %C8e.V $H$I)K 8$D*R(M-O)L"C5%(*(% &""6*B*&())+*,-'! "$'+)%#%)+,+ ')+* )-(+/,$%(($*)'),)'),3#>'?!5%;":8#=*3I?H^RRbeZgl_mOHY:=SKKaUQe.2F1  ���������������M��������������������������������������������������������������������� ���6���}��������� * $C *P2X 6^4^2X3^,V %K 'J4V %; ; %G)K =!B:++(('$ & #(B$=\*H!6)=*>3/((**%%% &)&$$&&&)-*.,(&&)+,+)),. &*--*+*+ / 5.B%0F,C2G[\midtML_@BWsn}a[nLG[HCUXN^i\ktiyxk|sfwe]nKL^*3C'���������s���.��� �����������������������������������������������������������������T����������  1 ,M /S 4Y4\1Z.W6d4a3^6_;a9R*C$B*I315$6%3-,*')3$1J,A^+?\-;R1<P(8K4E1?Q37H'*9-))(&$$%&''&##%%0 30*#$(.3310.)+-.-,*#@5FkZjbkaggnytmggysPRkJNhebytzzw{orSTi(+5������������I������������������������������������������������������������� ���1���w���������� ! 1&E 0V 7^5^.Y .Z9j;i:f;g=f>]!7R!3P 4R!74#+A&9L#3C *=)>&< 6"7*3G4;P4<S6AX<EZ=AU7@R6HWO_kojqWSX)/7'+*('%&'*,&$! !. 18)=3,@)+<#&7)("6)6L(9M?F\89P/+-.. /6 9.;[`m~pnno~DFY"������������h���(������������������������������������������������������������K����������� ,05.V 8`6a3b8g:j;g 7^ 3Y<e1T(;Z:Gd6C])0F-5I3@U6F\4CW2@S4DW1BV(9N&;M8CVABT>=L:;I?@PBCTKK[WXcbdlwt?BF)---.,**/2))(%)3#3A1BB<L>BP@CR"-<#2#4FQ`pQas{u/,B6347"=+B(:QIWorw~XVj'%/ ������������@���������������������������������������������������������(���h����������  &46 9-R 4`<i?j ;g9e9c6^3[;d#3U/5Q7;R;>S;>R9@S<CV?H[@K^BI_AJ^?K^@J`EKZJM\NP^OQ]MO\VXe`amihpnlpspuvuxggkJLT,0>26$8!5445 6 62.';,6H$';"%8#8';).?'*=2:K3;LHJ\vvvNG`$+D'C3<ZOTo+E(9OPYnsqy~t`Yj60:������������[��������������������������������������������������������>����������  3 65 ?8^ 8e8e8c 6a4Z2S ,P)S!5`8Dh<Cd<A_BG`?IfJPjPRmQUq[`s^at]lWuNsSbNZyQcYj[`}^g^d}abveewdas\^jZX`YRYQJT:8I26H*3D(9 */4&;"0C*?$.?$1?"2@'1B(;$6#5$6(+;:;N^Zkx||xjYSi]Xpqiunf\yh_ytkuxx{ƿ}oi}EAP$ ���������x���2����������������������������������������������������V���������� + %C!D!D*N6] 7b7c4a .[/S-O4Y.Ep>XSoToUk_r[sk}q|su~x~Ncv2La9SkC^y>^yL]uR^sS]mHTd/E\)E`'A[3N+GMQgsu>>F������������I������������������������������������������������,���o�������� 6 -P/U1X3\/V2[:e9f ,Y/W*R'8_>VOpgknzzthg\rp~}EiP{cdz^o\_j&',������������c���"������������������������������������������ ���?���������  !=0U5\6_6`0X-W:e@k4]6c(Q"G-R6Jreyrry|{dieUmi`f|03< ���������~���4��� �����������������������������������������R���������� &)G,S0Z3[2Z3^.U+P.U5b1]%K)K(;^1IpPnhtw|c6b|7ay7ayAjTqpx:?N������������H����������������������������������������$���g��������  *.O1Z-V*S-W6a+R'K,P1Z&L&H(G0P1LqZwlopx{fOy/Xt=inPWg!%+ ���������`����������������������������������������2���{���������   32W>h;d1Z+X7b-U+P.R,R#F%F#A)G6Rvc~olnsvy|kvbk}/3; ���������v���+������������������������������������A����������� !";3Y$It(Mv=e,V7a1Y-T,R(N'J#B >.M?[a}mmooqtw{nw:?J������������;��� ���������������������������������R���������� ! 0(HBk>c.P (L6d*R%K'L(J $C #>$@4TEc_{hiilmqux~yGM\!������������K�����������������������������������c��������� * 7 >,R,N&D$F0\*Q(M*M +H 'D2Q<].Mo]vb{eggklot{}~RYk"$+ ������������Z��������������������������������)���r�������� 3 $D (J&N %H $C $E,S%L'J+J*E&@)@_=WyKfd{e{f}ghkkmqwyz{||\ey+.8 ���������j���%�������������������������� ���3����������� 8)N5^(Q,Q1T2T3Y,R)K)G)F,F4JhQf`ucwfyh{h}hkkmpqtvxz{~fo48C���������z���/�����������������������������=����������� # 7(L<g ,P$>d9Ou8Pt-Mr*Hm :[/N4T$Db;VuUjfxevgxiyizh|klmoqrtvxzz|~lw9?L������������:��� ��������������������������H���������� ! 5)I>d7QpK`QgPfUhUgMaG]|J`Vl\q_rbscscvdxfzhzk|mllnqtvvxy{~q{AGW ������������C����������������������������R����������#3#@1Q8NmQbXjVi\k]l\lZlZn_qararbqcscudwfyiyl{m}mnortuvxy|~u~GL^$������������L����������������������������Z���������  +8!=&F"8YIXz]iXhZi[j]l^m]n]m_oapbqbsdtevgwjylzl{n}pqrtuuvz}~}wMRe!) ������������S������������������������ ���a��������� 2#>$B$1R4VGUv_iYgZhZi[j]l]l]l_n`oaparcretgvjxiyk{m}o~qqtutty{{{|~yPWj#%. ���������Z������������������������$���i��������� , 6,IOYvYdZeYeYeZf[iZjZk\l_k_m_n_naqcresguhwhxjym{n}n~oqttvwxyy{|~yQWk#'/ ������������^��� ���������������������'���m���������)-D3D`Q^{ZeZf~Xf~Xe[f[gZhZi\j_k^l]m^nbpcrdsdteuiwiwjxl{l}n~pstuuvxxzy{wSZn&)2 ���������b���"���������������������(���p��������� !,<9H^L[uTb|Xd~Xe~Xf~YfZf\f\h\h]h^j^l`manandpererethvhvivkxl{n|o}psttuwxzz{}~xRZn&)2 ���������e���$���������������������*���s���������$4=OLYoXf}Wd}Yd~XeXfYfZf]g]h]g^g^j_kblelbmdpfpfqfshuhvivkwmynzn{o}rssuvwy{||}xRYm%(1 ����������e���$���������������������+���t�������  )8>QKVmSbzWc}[c|[d~[eZf[f]g]g\g]h^j_jbjekdmdpfogofrgrhtiwjxmxnxnzn|p~rstuuwyz{{u}SWl%(1 ���������c���#���������������������,���v������ (9>OMTlV_zX`{Yb{Za|Zb~[c]d~\dZfZg\h]i_ibicjakcmfnfodpdqfshtiujwjvlyn|n|o~qrsuvxyy{|}r{NTg"%- ������������b���"���������������������,���v������  )9>QMVmTazUb}Wb}Yb}Zb{Zby\dz[d~Ze~[f}]f}^g`hbibiakakbmdpfpepfrfsfuhwjwkyl{m|n}o~qsttuwyzz|}}qzLSe"$- ���������_��� ���������������������+���t������ '8<NLTkT`yUa|Ua{Vb{XczZcx[dwZd|Ze}\f|_f|^g_gahbj`jbkbmcndoepeqfrfsiujvjxkylzn{n}o}r~tstuwyy{{{}~nwIPa "+ ���������]������������������������)���p������ %6:KKQiV^wY`{V`xVcyXd{Zcy[cxZd{Zd}]f}_g~]g^f`hbk`idldmclcmfpeqfqirkskujvlwnyozn{o{q|sstuvwxzz{}~~~ktEL] ' ������������Y������������������������%���l������ $5;JKSiW_xZayXa{YbzZbzZa{]c|]d~^e_e^e_g_i`iahbjdlflflenfpgpiqlsmsmvmvowpyqzq{s|t}s}ttuvvxxy}~}}~joCHY% �����������S�������������������������"���e������  38EJQeW^wZayZ`z[bz\by\aw\c{]c^c]c~[e_e`gahbhcjcieiekdmfmgnhpiskrktmvnwoxpypzq{s|r|r~rtvyyww{|{|~~~zdi=AQ������������M����������������������������]��������/3@FLaS[tX_xZ_yZ`z[`y\aw\bz\b}\c~\d~\e~^f_f`f~bgbhbhcidkdlemfmfofqgqhritkulumwnwpxqyqzp{o}p}r~uvuvwxzzz{}~~~~~~~v~^d{7;H������������D����������������������������T���������*.;BH\QYoV_vX^wX^xY_x[`y[`x[az[bz[d{\e}]g}\e~^e~af~`g_h`iaibjcldmemendofpgqhrjsitlumvnvowoxnynzp{q}s~t~u~uvxxvxz{|{||{|~~~}~syY^s14?������������<��� �������������������������H���������%)5>DVPXlU`tV^tV]uY^w[`yX`wYaw[av[av[cy\dx\d|^d}`e|^g]g^g_g_hbjckelemdmengnhohrgsjsktktmtnumvnwqyqzq{s|t|t~v~vvvwwxxxz{z{}}~~~}{}~}||osRVj),6 ���������~���3��� ��������������������������=��������� "$.<@SPUmV\qW\qV]tX_wZ`wX`vY`u[at\at]au[av[bx]cx^cw]dx^f{^f~_g`h}ahcidjcleldjflgngohqiqiqhqjrmrosounvpwpyqzq{q|t|u~uttwwvvwyz{|}}}{|}~~|}~~~}~}{|~~{y{~|zzzyjoKNb$%/ ���������r���*�������������������������� ���2��������� '6:JMQfV\pV]rW\rX]sX^tY_sZ_tZ_t[_u]`w]aw[bw[bx]by^by]cx^d{_f}_g{`f}bgchcicjdjdkemfneogphpipiqkqlqmrmtnvmwnxpxqyrzs{s|s|r~t~uvwvvwwxz{zz|||}{}}}~~~~|~}~~}|||~~}{zyyyz|{zy{v|chBEU% �����������b���!�����������������������������(���q������14@HM^TYmV\rW[rX[rX\sZ^rZ]sZ]sZ^t[`u[`uZbxZbx\aw^cy^by_cy`dz`fz`f|bf}cfbgahcickdleldmfngnhnhphphpjqmsksltmumuouqxqyqyrzr{s{t|u}w~v~vvvwxyyy{{zzz}}|}}}}}z|}}~|}}}}|{{|z{{zzxwxzxy~y}x~x~wqw[_u8;I������������T�����������������������������������a���������+,7BGXQViVZpWZtXZtZ[rY\r[]rZ^rY^rY_sX`sXaxZ`w\_s]bu`cy`by`byaezae{bezbe|bf~ahbhcidjejekelfkgkhnhnfohplqjrlrlrksmspvowpxqxsyqzrzt{u|u|u}v~wvwxyyxyxxy{{|}{zzzxzz{|{zz{{zzzzyxxy{yw}x|y}v~w}w|v{v{t|lqRUj01=������������E������������������������������������O���������#$-;?ONSgUYqVZsXZrZ[qWZpY\pY^sX^tZ]s[_sZ^tZ^u\_s[`p_bt`ax`ay`cz_cy`dy`e{ae}bf~bg}bg~dgeheidjejgkhkjlimimjmkqkolqmsmtnvnwpwrxtwoypzrzsyszt{u{t|r|t|v|v|w}v}w}w~wwwyz{{yyyzzy~x~xy~ywuwzy~x~w~zw~w~x}y|x~v}v{u{t{v|w{vzsyrwfkIL_'&2 ������������5��� ������������������������������ ���=��������� $57GJMcSVmVZpXZpXZnWZpX[oY\qZ[s[[s]]s\]s[]r[]r]_s]_s^_u_au_au_`u`bwacxbcxaczaezaezbe{dh~bi~difjfjfjfjgkhkjjimgoiokolrkslvmvouqvoupvpxpxqzs{s{r|s|ryszt|u|vzv{v|v|w{w{x}x}w|y|w|w|x}y}x}w}w}w|x|x|v|u|u~w~u}u|u{w|v{u|u{wzu{uzuztzsxsyuxvxuxpu_b{@BR' ���������r���(�������������������������������������,���r�������-.9FGZRSjVXnVXnWXnXYnXZnYZn[Zo[Zp\\q[\p[\p[]q[]r\]r^^t__t_`t^_t_at`at``uabx`cx`cxadydf{cg}ehfheigkfkflhljminjpioinjnjokqltnvpzoxnxnynxoyr|ssuut}s|u|v|u{s{s{uztyvyxzxzv{u{vzwzvzvzv{u{uzx{xyvytzt{u{tzuzvzuytztzsxswuwtwswsxrwrwrwsvruloVYo56D���������\�������������������������������������������\���������$$-??OPOeUVlVWnXWnXYmYXmYXmZYm[YmZZpZ[oZ[n[]o[\p[]p\]r^^s^_s]_s^_s__s_`u`aw`aw`bxacxcdydezee}de~dffifkekelhnhnjninhmhmjmknlpmtnynzmzmylvmuq{rrtvustvu~s~rr~s}s|u{w{t|tzuxuxsxtxvxvxtxuyuxuxtysysxsxtxvwswqwrwsvqutusuququqvpvpvpunreiKNa*+6������������G�������������������������������������������E��������� #56DKK\STiVVnXWmXXlYVlYWmXXmZYmYZpYZoZZm[[m\\oY\n[\o]\p\^p]^r]]s^^t_`v__u``w``waawbbxccxbcvbcxbdzdeyeg}cg}chekfkgjhjhkgljllllljnjqkxlylukrlqnunwoyp{rrrrsttsrsqqsrs{txswqvqvtwuvtvqwpwrvsvqvrwqvqurupvotptququqtpsosotrsosnsnsjo[`y?AQ ) ������������6��� ������������������������������������������0���v������,+7DCTPOcTTiVTjVVjVUjVUjWWkXYlWXkWXjXXkZXl[YmXYmYZn\\p]]q\]p\]q[]q\]q_^q^`q^`q^_r__taauaawaawbcvcdxbezceydezdf|cg{dgzfh}hifh}hihihjglgkioiqioimkpkplomonqltmwnynzmzn}p~rtrqrsprs~r{pyoxqxqwoumtntotosotrtpsnqlqmsornqmrlslrmqnqnqnpnnmpkpehQSi12?�����������f���$������������������������������������������������\��������� #!)=:GNL\UTgUSiTUgSTfTUgVVhWVgVWgVUhXVkYYnYYmXXlYXkZYm[[p[Zo[[n[\n[]o]]n]^n^_m^_n]_p^^q__s_`t^at_cvadvbbsbbtbdxadycdzbe{cf{gg{gg|gh~gifhhifmekgjilikilimkmlmjojqkqjoipjqlsmvnxo{o|p|p|n{n{o|p|p{q|q{p{p{owlqmpnrmrmqnrlpjolqnqlpkojojninjnlnlnmllmhl]byEGY%%0������������N����������������������������������������������������C��������� 31:HFSRQbSSgRSgSReTTeUTdVSdUUgWUiXUjWVkWXlXWkXWiXXjZXlZWm[Ym[[n\[o[[m\[m\]l\^l[^m]^o^`p]`p\_q^at_as`aqabsabv`btccyadzaeyffzedyef{fg|ff|gg}fiehfhhjghgjgkhlilhlhlimimhlimknlolplrmtmtktkvlvlvmwnxnxnwnwownulqkpkploinjnjnjmlnlnkmjmimimhmimjlikiljkefTXl79G  ���������}���6��� ��������������������������������������������������,���p���������('/>=ILK\QReSRfUQeURdURbURcUShWTiWThWThWViXUhWVhWWiZWjYVlZYm[Zn[ZnZZm[Zm[\mZ]mZ]m\^n]_o\^n\^p_`t^_s_ar`bs`bu`brbbvbbwbcwcdxbcwccyddzee{dezef|ff}ff}fg{gh|fh|ei~fjfkgjgjhlimhlimjmklkkkjjljniojpkpjojolqipiqjqmplplqjpiojngmgliljljljjjjikhlililikhkgjglgj_`wIK\)*5������������_���!��������������������������������������������������������Q��������� $33@EEWPPbURcWPdWQdVRcURcVRiURgWSfYTgWUhXTdWUfVWjXXkZXkZYlYYmYYmZZl[\lZ[mZ[m[\lZ[m[\m\]p^]s`_u_^s^^r^`r^ar_at_`sa`sa`s`auabvabvbcxcdzccyddzddzddzeezfg{df{df}egehgigighghhjgkhjijijjjhjhkjlijhjhjiklkfkdlglkliminiohogngminimhkilhiiiijgjhjjjiighfjgjcgUWm;;I$ ������������D���������������������������������������������������������� ���6���������)'2>=LKL^RObTPeUQdTRcSSfSQeURdVRdURdVSfXTgWUhVUhVVhVUgVUkWUlYUjZVjZYkZXkZXkZZk]Zp][o\\o\\p\\p_\o^^p\^q\^q]^s^_r__r`_t__u^aw^bw_bwaaxaayaawbcwcdxcdzcdzdf{df{de{dd}fg}fg}ff}ff}fg~ghggggggghhhfieighhigifhghgigjhjhjgkflgkikjlhkhkijiiijhihigifihjhighegdgef\^wGI\+,7������������l���+������������������������������������������������������������� ���]��������� "31<ECSNK^RNaRNaROaRPdTPbUPbSPaQQaTReUQeUSgUSfTRbTTeWShXUjWWiXVhXWjWWjWWiXYjYYmYXlYYk[Zk\Zk[[k[\mZ\mZ\l[]p[]r\]q]]q]^r]^s]_q]_q]_r^`u^_t_`tabvbbyabwabxbcxbdxbcxcdxddydeycdyce{dd}ed|edzde}fgdg}bg|bf{dg|fh~eg|de|dd~df}eg}ef~efdh~bichfigiggehejfjgheieidhcgbg|bf}bfbgbf_axQSg99H$ ������������K�������������������������������������������������������������������>���������&$+:9DHGUOL\PM^ON_QO`RO^RO_PO`PO`QQbQObSQdTRdURbSRbVRdVTfUVfVUeUUhUUhUVhVWiVWjVWkWWjYXi[XhXYiXZjZZiZ[iZ[nZ[qZ[o[\m\]o\\n\]m\]l\]m\^o\^p]^p__s``v_`t_`t`at_bt^bt``sabtacu`bu`cwbcycbxcbwbdzcdzae{`ey`dwadxceyddycczbc{bdyceycdzcc{bez`ezae{bf|cf|ce~bfbgbgce|cfbg~ag}`e~^e|_d|_d|_d}`b{XZnDET)*3���������u���/��� ������������������������������������������������������������������%���d���������  --5AAJLJWNM]MN^PM\OM[OO\OO^PN_OO_QO_QO`SQcVSeRQ`RRaSRbTScVScUTgTTfUTfVUgUUgVWkVWkWWiYXhWXgWXhYYh[YhZXlYYoYZlZ[i\]m[\l[\k\\k\\k\]m\\n]]n]^p]_r]^r^_r^`q]`p\ar^_q_`q^`q_`r`at`buaata`u`cx_bwacxacx_bv`bwaavbcxbdyacybbxadyadxacxbdyabw`bv`bu`bv`bw`cx`cx`bwabvbbz`cy_dz_d}^c}`c{_by^aw]\sNOa45@  ������������O���������������������������������������������������������������������������@����������� !%64?FDSMK\OL]QK\SL]QL\PL]QM_SN_SO_SN_TN`VPbTQbRRcRRcTQdWQfXShWReWScWTeVSeVTgUVhTVgVWfXWeWWgWWhWWgWWiVXlVYkXZiZZiYZkZZl[[l[\m\\n_Zp^[n\]m\]o\\p]]p\]o[]o]_t^_t]^r]^o^_o^_s^_r^_r^_t_`u_`v__u``vaaw_av_`u`at`bt_`u`ax``x``w`avbcw`bw`av`at`asaav`av_at_`t`av_`t_at_au^aw_`w`av`bv]_sSTg??N##,������������r���.��� ��������������������������������������������������������������������������#���^����������+'/=9FKFWQK_PJ_QJ^RM_RN`RM`QM^QN^RN_RN`RO`TOaUPcUPcUObUQcUQeWRdXSdYSdZSdWUfWVfYUeWSdZUdXVeWVgYViYYjXXhXWgYWhYXjZ[lZ[l[Zl\[l[Zm[Zn\Zn\[m][l[[l\]m]]m\]m\]o\]m]^p^_q]]n^\q^^q^_q^_s__u__t`_t__u^_u^_s_`s_`s^_s^^t``v`^v`^u_`u_aua`va_u``s``r`_u__t``ta`t_`t_`t^`s^_t__wa`w``u^`qVYjFHZ--9������������K������������������������������������������������������������������������������������9���y��������� !3.8E>MOH[PJ`PJ]QL^RL`RLaPM_RM^RM_RMaQNbUNbWN`WO`VPaVQbTPdVQcWRcVRcYRcVTeWSdZScYSfZTdZUfZVhZViZXhXWgXWgXWhXXi[YkZYlZYl\Yk\YlZYn[Ym\Yl\[n[Zn][n^\m]\l\\l\\j\]n]^q^\p^\q]^p\_q]_s^^s_]p`]q_^r^]q^^q^^p^^r^^t^^u_^t`^s_^s^^t__sa^tb^ta^r_^s^_t__s`_r`_q__p`_s_^r_^r_^s`_v`_vZ[oMN^68E% ������������j���*����������������������������������������������������������������������������������������P���������%"(:4@IBSOI]QJ[QJ^RK`SK`QL`SM`SL`RLaSMcVNbWN^VO^VPaWQbUObVOaVPaTPcVPcUReVRcXRbYThXSfYTgZUh[UgZUeXVeXWgXWhWWhZWjZWk[Wk\Wl\Xl[Xm[Xl[Xl\Yo[Zp]Yo]Zn\[m\[l][m\\n\[o][q^]q]]o\^p\^q]]q_\o_]o^]p^]o^^q^\p^]q^]s]]t_\s_]q^]q_]r`^s_]s`]q`]q^]r^^t^^s^]q^]o_]o_]q`\p_\o^\p^]s^[rSQe?>M%&.������������D������������������������������������������������������������������������������������������ ���,���j���������+'0>9HKEWQIZSJ^SJ_SK]PK^SL`RLaQLaSLaVN_UN_UOaUPaUO`VN^WN_WNaUOdVPeUPeUReUSeVTfWShWSgWSeYSeZTcWTcXUeZUgXUhXXj[Wi\Vj[Vl[Wm[Wl[Xl[Xm]Wm\Yn\Wm[Xm[Zo]Zo]Yq]Yo\Yn[Yn_[q^[o\[o\\o\\o^\p]\n]\n^\o_\q][r^[q^\q\[q_]s^[p^\o_]p_]t^]r]\n^\m`\p]\s\[r\[q\[p_\q\Zp^Zn^[o][p\[oWReGBQ.,6 ������������\���$������������������������������������������������������������������������������������������������?������������ 0+7A;OMFWPI[PI[OHZPJ\PK^PK`QKbRLbSJ]TL]TL`SLaTL^SM]VN_XNbWNbUPbTOcSPeSQeTQcVPdWPcWQcVSdVQbWScWTdXSeXQgXTgXTfXTfWTgWUhZWiYWjXVjZUiXWjZVh[WfZWfZVj\Wk[XmZYo[Yo]Vn]Wn]Xm\Ym]YmZXlXYjYYj\Yl]Yk]Yo^Zo^[n\[m]Zm][o][n]Zk]Yn_[n^[o\[o\Zo]Zq[YpZZo[[o\[o\[o][n][p\YqVUiIGW41<  ������������x���6����������������������������������������������������������������������������������������������������� ���Y������������ "2-:C=KKEULHYKJZLI[MJ[NH[PH\RJ^RI\PJZPK[QJ\QJ[TK\VL\VL]VM^TM^RN_RN`SN`TOaTOaUPaUPaSPbTPaTR`URaVQcWQeVReVRfVRfVSeUTeWTgWThVTgWThVUhWUgXUfYUeZUg\UgYUgWVhWVkYWkYVjZVi[Wh[XhZXhXXgXXj[Ym\Xj\Vj]Wj\YkYXj[Xi[XiZYjZXk[Wk\Xm\Ym[YlYYl[WlZXlYXlYXlYXlXXkYYjZXjWShJHY65B & ��������������K�������������������������������������������������������������������������������������������������������� ���0���m���������!%5/;C>LIFVKIYLHYLHXNGWPGXPHYPI[NIYNJYPJZPIZSJZTK[TK\TK\SK\RM\RM\SL]TM_TN`TO_TO_SO_UO_TP`TP`VPaWPbUQeUQeVQdUScTScVSeUReUSfVSgWShWTgXTgYSfYUeYTgXSfWSeWTfVVhVVgWUfYUf[VhZWhZWgYWhYWjZWh[Vi[VjZVjXVi[VjYViXWjYWlZWlZWlZXkZWjYWj[ViYWkYWlYWkYVkXWjZWhWScLHY97D##+������������`���%����������������������������������������������������������������������������������������������������������������A������������% )72?C?NJDUNEVMFVOGWPGWOGVOIYMHXNIXOKZPIZQIYRJ[RK]QJ\RK]PL[PL\RK^SK^SL_SM_TM^UN^VM_UN`UO`VO_UO_SQdVPdVPbTR`TSbVRbTRdTReVRfXRgYSgYRfYReXScWShWSgXSeWSdVSeWUfWUfXTgZUjZUjZVgXUeWTfXUfZViYVjYUiYUh\UlYVlXVkYVl[WlYWkXViYViZUiZUhXVjXVlYVk[UjZVjXReOIY<9F&$-������������t���6��� ���������������������������������������������������������������������������������������������������������������������M���������� '"*72>D=NLCTNDUNEWNFXNGVNGVNFUNGWOHZNGYQHXPIZOJ\OI]OJ\LJZNJ]QJ`SK]PL\RM]TM^UL^UK^RK_TL_TN^RO^QN`SObTObTP_UQ`VO`UQcUQcUO_VPeXQfWQcVP`WQbWQdXQdXRdUSdWReVSeWTeYTfWSgWTiVSfVTeVVgXUiWSfWSfXTfYTeZShYTiXUjWTiYThYTgXTgXThXTjUSdVTgXThXShWSgTQcMIY>:H)&1 ��������������B����������������������������������������������������������������������������������������������������������������������������%���W������������ %"+61>E<KLAPMDTLDUMDSOFUOFUMFVMFXNG[NHYNGWNGXOHZQI\PI[PJ\RJ\RIZPIYQK[QK\RK\SM]QK\QL]QM_PMaRO_TM^UL^VM^VN^UN_UO`UP`UP_VPeUQdUPcUOdVOeWPbWP_VP`VQdWPdWQfWReVRcURcSTeSTdUScVSdUSfVReXRdYRdVScWRdWRdWSeVTfXSfXSfYRgXSfVScTUdTRdVReXSdUPaLHV=9E)&0 ���������������N��������������������������������������������������������������������������������������������������������������������������������� ���+���b������������  %"+61=C;HJAQLDUKDTMETMETMEULEXMFZMGYNFVPFVPHYPGZOHYQIYQHXPHWPHYQJZQKZPK[QK^PL]PL]PL]PK^RK\SL\SK\SK\SL`QM_RN`SO_UN^UN`TO`TOaTObTOaUO`VO^VO`UOcVOaUNeUOeUPcTQaSTeRRcTQaVRbSQcUQcWQbWQaUQaTQcVQeWQeVQcTRdVPdXPdXQcWQaUSdUReUQcRO_IFU:8C(&. �������������X���%����������������������������������������������������������������������������������������������������������������������������������������2���l�����������  %!*50;B;JJASKDTKESLDTMDVNEWNDWMEWOFWPGVOGWPFWOGVPGWPFWNGVOHYPJYPJXPJZQI^PK]PL\QK[RK[RIZSK\QK[PJ[PL`OM^PN_RN_SL\SK[SL\SN_TO`RN]SO`VN_VN`UNbUN_TMbTNcTNbSOaTQdSPbROaSQbRPcTOcUPaUQ`TO`TQdVQfVPdUOaRQaUObVOcWPcXPaWPdVPcRM^HDT96B&$- ���������������a���+��� ���������������������������������������������������������������������������������������������������������������������������������������������8���p���������  % (5.:A9HH@OJCSKCUMDWNDVOBTNCUNFWMGWLFVPEVPFVPFWOFXNFWOHXOHWOIXOIYRI[PJ\PJZQJYSJ[SJ[SJ\RK[QK[OL]OM[QN]SM]RLZSK[SL\SM_SN`RM]SNaVM`WM`VNaUM_UN^TM^TM_TM`TNaSNaQOaPObROdTNcUNbTO`SO`UQeUPdUOaUN`TP`UOaUOdUOdWOaVNbQJ]GAQ92@'"* ���������������e���/��� ����������������������������������������������������������������������������������������������������������������������������������������������������<���t������������ !%0*6=6ED=QJATMDUMDTKCRIEUIESJDSLEULDVMFVMFWMEWNFVQGXQFXPFXOHXNGWPIZPIYPIXRGXRIZTH[SH\RI\RKZPK\QK\RK\QL[UM\TM_RL_QK]QL\QK`TJaUJ_TL[VN\SL]SL_UN`SN]SN`UMbTMdRNdTOaUO`TO`SP`RQaVN`SL]SL^UM`QM^TN_VN`TN`RK]QG[E=N4/<"' ���������������h���3���������������������������������������������������������������������������������������������������������������������������������������������������������������=���s������������ -%1:1@D:JI@PJARKCUJCTICRKCSMCULCVMEVNFWMFXLEUNEVPFWOGWNHVQHYNGXMGXNGXQFXQHXQHXQHZQI[OIXQIZPI]PI]PJ\QJYOK[NL[OKZRJZSI[SI\SI[TJZTKZTJ\RK]QL]QM^QM^SL^TK_TK`SL^RL]RM]RM_QM`TL]TL]TL^TL^RM`SM_SL]OIYICR?8E/*4"���������������g���4�����������������������������������������������������������������������������������������������������������������������������������������������������������������������;���s������������ (!+5.:>7EE=LIASI@RJARKCSLCSLBSMDTMEUMDUKCTMDUNEUNFUMEUOFYLFWLFWNFXPFWOGVMFUMGWNHYLGVPIZQH[PH[PIZPHWOJYNJZOJYRHYRIYQIYRJZSJZRHZTI]RI\PJ[OK\PK\OJ\QJ]SJ^SJ[RJYQJ[RJ^SJ_RL[QJ\RJ]RK^PK^PI\KEVC>L72>($, ���������������d���2�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������:���m�����������  %-*3:3?B:HE=MG@PHAQIAPJ@PKAQKBQKBQJARKBRJCRKCRKCSKCUJDTKEUMEVNDUMDSKESKFSLFUKGVNGXPGXOGWMGWNGUOHVOHXOHXPHXNHXNHXOIXPIYPFZQG\QHZPHXOIYOHYMIZMI\PI]RJZRIXQIYRI[TJ]QJZOHYNH[LJ[KEWF@Q=8F0,7!&  ������������������_���/���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4���f������������� '!*3+6<7DA;KD=LF>MI<MG>NG@OIAOH@NGAOFANGAOIBPKBQIAPJBQKCRLBQLCQKDRKDRKCRKFUJCUKDTKETIDTJDTJDRLDSNDTLFUIETKETLFTKGULEWMFWMFVMFWNHZMFWMHXLHZLGZOHYNGWPHYQIZOHXOGWPHWKGTCBO?:H5/=($- ����������������Z���+��� ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.���Z���������������  "+&040;=7CE;IG;IH>OI@QI@PF?PGARJ@QI@OGAOIAOHAPIBQKBQKBRJBQICOIDQJDTICSGDUGCSICRKDTKDTLETMFUMEVKEUIESLFVMGXKEULDVMDVMDUMDTMFUKGVLHZMHZNFXNEUMFXNGYPHXOHVNETHAO@<H73?+'0" ������������������O���%��� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ���&���M���}������������� "%-'180;?6DC;JG>MH>OG>PJ@QJ@PI@PHAPIAOJBQKBRLBRKBRIARJBRJCSJCSKASJCTJDTLDSMCSLDSLDSLETLEUMDTMCSNDWNEXLEUMFVLDTLCSMCSNDTLGWLFYMEXNFWOEUNEXMEXKDTHAOD;J94?-*3!& ����������������s���C������ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������>���l��������������� $'.)360;=4AB8GD;KG>MH@OI@OH@PH?OJAQKARKAQKBQI@RJBSJBRIBQJBRKBRLCSLCRKCQKCRKCRKCRLCSMCRMBRMBUMCUMDRMFTLDTLDSMDSLDTLFWLEWMDVLDULCSJARE>N?9G83?0)4$ ( ������������������b���5�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������0���X������������������   "$+%-2,691>=7EB;JF=LG=ME=MH?PI@PI@PJAPH@QI@OIAOHAOGCQJAQKAPIBPGCPHBQIBQK@QL?QKBPIAQIARJBQLBPKCRLDUMDTLCSHCSJCSKBRIAPF>NC:J=6D4/;+'0" &  ������������������{���M���(��� ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ���!���D���p���������������   % )-'24-9:2?@6DA9GD<JG>LI>NI=NI@QI@OH@OH@PK@OJ>NH>NH@OIAQJARJ@RK?QL?PIAQJ@OH?OH@OJAPKBQKAUK?SJ>PF?OF=KB9H<4C7/</(3&!*  ���������������������c���:�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������1���U�������������������  &',%.0+56/;;2?>4BA6CB9GB;JB<LB>ME=KG?LG>LH=MH>OG>OH?OH?OH?PI@RJ>NG>ME?MF?MG>KD;JA8I=5E91?5.8-'1%!*" ��������������������p���H���'������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ������<���`��������������������� !#& (+#-/'12+54.:60=72?83>93>:3>;3?=4B>6D@8E@8E>8E>7F>5C=5A:4@92>70:2+6.'3)#.#&  ��������������������z���S���1�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#���?���b������������������������   ##'% (% '#&#&%('"++&//(3/)3-(1+'0*%.)#-'!+$' "  �������������������������}���X���6������ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������"���=���_�����������������������          ���������������������������w���V���7������ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ���8���T���q���������������������������������������������������������g���J���1������ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������-���C���[���u������������������������������������������������������������������������������������������������������o���T���;���'������ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������0���D���Z���o������������������������������������������������������������������������������������������������n���X���A���,���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������(���8���G���W���i���z������������������������������������������������������������������~���n���\���L���:���)��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ���������"���-���9���D���M���W���e���z������������������~���y���v���q���k���c���Z���Q���F���;���0���%��������� �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ���������������*���8���A���B���=���4���1���/���-���*���%��� ������������ ��� ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��� ��� ��� ��� ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./configbrowser.lrs���������������������������������������������������������������������������������0000644�0001750�0001750�00000031114�14576573022�014543� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ This is an automatically generated lazarus resource file } LazarusResources.Add('TConfigBrowserForm','FORMDATA',[ 'TPF0'#18'TConfigBrowserForm'#17'ConfigBrowserForm'#4'Left'#3'R'#8#6'Height'#3 +#204#2#3'Top'#3#180#0#5'Width'#3#155#4#7'Caption'#6#13'ConfigBrowser'#12'Cli' +'entHeight'#3#204#2#11'ClientWidth'#3#155#4#6'OnShow'#7#8'FormShow'#8'Positi' +'on'#7#17'poOwnerFormCenter'#10'LCLVersion'#6#7'2.2.4.0'#0#10'TStatusBar'#9 +'StatusBar'#4'Left'#2#0#6'Height'#2#25#3'Top'#3#179#2#5'Width'#3#155#4#6'Pan' +'els'#14#1#5'Width'#2'2'#0#0#11'SimplePanel'#8#0#0#9'TGroupBox'#14'OnDiskGro' +'upBox'#22'AnchorSideLeft.Control'#7#16'InConfigGroupBox'#19'AnchorSideLeft.' +'Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#5'Owner'#23'AnchorSideRigh' +'t.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSide' +'Bottom.Control'#7#9'StatusBar'#4'Left'#3'J'#2#6'Height'#3#179#2#3'Top'#2#0#5 +'Width'#3'Q'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#18 +'BorderSpacing.Left'#2#10#7'Caption'#6#8'On disk:'#12'ClientHeight'#3#156#2 +#11'ClientWidth'#3'M'#2#8'TabOrder'#2#1#0#9'TGroupBox'#21'ExportedFilesGroup' +'Box'#22'AnchorSideLeft.Control'#7#14'OnDiskGroupBox'#21'AnchorSideTop.Contr' +'ol'#7#13'RefreshBitBtn'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSide' +'Right.Control'#7#14'OnDiskGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom' +#4'Left'#2#0#6'Height'#3#220#0#3'Top'#2#30#5'Width'#3'M'#2#7'Anchors'#11#5'a' +'kTop'#6'akLeft'#7'akRight'#0#7'Caption'#6#23'Exported files on disk:'#12'Cl' +'ientHeight'#3#197#0#11'ClientWidth'#3'I'#2#8'TabOrder'#2#0#0#11'TStringGrid' +#23'ExportedFilesStringGrid'#22'AnchorSideLeft.Control'#7#21'ExportedFilesGr' +'oupBox'#21'AnchorSideTop.Control'#7#21'ExportedFilesGroupBox'#23'AnchorSide' +'Right.Control'#7#21'ExportedFilesGroupBox'#20'AnchorSideRight.Side'#7#9'asr' +'Bottom'#24'AnchorSideBottom.Control'#7#21'ExportedFilesGroupBox'#21'AnchorS' +'ideBottom.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#3#197#0#3'Top'#2#0#5'W' +'idth'#3'I'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#8'Au' +'toEdit'#8#15'AutoFillColumns'#9#8'ColCount'#2#3#16'ColumnClickSorts'#9#7'Co' +'lumns'#14#1#7'MaxSize'#3#244#1#13'Title.Caption'#6#4'Name'#5'Width'#3#127#1 +#0#1#9'Alignment'#7#14'taRightJustify'#12'SizePriority'#2#0#15'Title.Alignme' +'nt'#7#8'taCenter'#13'Title.Caption'#6#4'Size'#5'Width'#2'<'#0#1#9'Alignment' +#7#14'taRightJustify'#12'SizePriority'#2#0#15'Title.Alignment'#7#8'taCenter' +#13'Title.Caption'#6#4'Time'#5'Width'#3#140#0#0#0#21'Constraints.MinHeight'#2 +'d'#9'FixedCols'#2#0#7'Options'#11#15'goFixedVertLine'#15'goFixedHorzLine'#10 +'goHorzLine'#11'goColSizing'#15'goThumbTracking'#14'goSmoothScroll'#0#8'RowC' +'ount'#2#1#8'TabOrder'#2#0#7'OnClick'#7#28'ExportedFilesStringGridClick'#9'C' +'olWidths'#1#3#127#1#2'<'#3#140#0#0#0#0#0#9'TGroupBox'#16'FileViewGroupBox' +#22'AnchorSideLeft.Control'#7#14'OnDiskGroupBox'#21'AnchorSideTop.Control'#7 +#21'ExportedFilesGroupBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSi' +'deRight.Control'#7#14'OnDiskGroupBox'#20'AnchorSideRight.Side'#7#9'asrBotto' +'m'#24'AnchorSideBottom.Control'#7#14'OnDiskGroupBox'#21'AnchorSideBottom.Si' +'de'#7#9'asrBottom'#4'Left'#2#0#6'Height'#3#162#1#3'Top'#3#250#0#5'Width'#3 +'M'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#7'Caption'#6 +#10'File view:'#12'ClientHeight'#3#139#1#11'ClientWidth'#3'I'#2#8'TabOrder'#2 +#1#0#8'TListBox'#15'FileViewListBox'#22'AnchorSideLeft.Control'#7#16'FileVie' +'wGroupBox'#21'AnchorSideTop.Control'#7#13'ReplaceButton'#18'AnchorSideTop.S' +'ide'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#16'FileViewGroupBox'#20'A' +'nchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#16'FileV' +'iewGroupBox'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height' +#3'k'#1#3'Top'#2' '#5'Width'#3'I'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRig' +'ht'#8'akBottom'#0#17'BorderSpacing.Top'#2#2#10'ItemHeight'#2#0#8'TabOrder'#2 +#0#8'TopIndex'#2#255#0#0#7'TButton'#13'ReplaceButton'#22'AnchorSideLeft.Cont' +'rol'#7#16'FileViewGroupBox'#21'AnchorSideTop.Control'#7#16'FileViewGroupBox' +#4'Left'#2#2#6'Height'#2#30#4'Hint'#6'SImport the file viewed into the store' +'d serial numbers replace any existing details.'#3'Top'#2#0#5'Width'#3#130#0 +#18'BorderSpacing.Left'#2#2#7'Caption'#6#16'Import / replace'#7'OnClick'#7#18 +'ReplaceButtonClick'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#1#0#0#7 +'TButton'#11'MergeButton'#22'AnchorSideLeft.Control'#7#13'ReplaceButton'#19 +'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#16'FileView' +'GroupBox'#4'Left'#3#136#0#6'Height'#2#30#4'Hint'#6'UImport the file viewed ' +'into the stored serial numbers and merge with exiting details.'#3'Top'#2#0#5 +'Width'#3#130#0#18'BorderSpacing.Left'#2#4#7'Caption'#6#14'Import / merge'#7 +'OnClick'#7#16'MergeButtonClick'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrd' +'er'#2#2#0#0#0#7'TBitBtn'#13'RefreshBitBtn'#22'AnchorSideLeft.Control'#7#14 +'OnDiskGroupBox'#21'AnchorSideTop.Control'#7#14'OnDiskGroupBox'#4'Left'#2#2#6 +'Height'#2#30#4'Hint'#6#17'Refresh file list'#3'Top'#2#0#5'Width'#2#30#18'Bo' ,'rderSpacing.Left'#2#2#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0 +'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0 +#0#0#0#0#0#0#0#0#0#255#255#255#0#164'e4'#162#164'e4'#1#255#255#255#0#255#255 +#255#0#164'e4'#5#164'e4S'#167'j:'#190#166'i8'#233#164'f5'#250#167'j:'#228#167 +'k;'#170#164'e4$'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#164 +'e4'#255#165'g6'#147#255#255#255#0#164'e4T'#166'g7'#238#181#128'U'#243#206 +#166#132#255#216#182#151#255#219#185#153#255#211#172#138#255#194#148'm'#252 +#166'h8'#246#164'f5['#255#255#255#0#255#255#255#0#255#255#255#0#165'g7'#254 +#183#132'['#247#165'g6'#212#177'zN'#244#227#202#180#255#236#218#201#255#231 +#209#188#255#227#201#176#255#222#190#160#255#210#171#136#255#206#165#130#255 +#211#174#142#255#166'h8'#245#164'e4*'#255#255#255#0#255#255#255#0#166'h8'#253 +#241#228#216#255#212#178#149#254#244#233#224#255#243#232#221#255#237#220#204 +#255#210#173#143#254#176'xL'#245#165'f5'#251#166'i9'#255#166'i9'#254#169'm=' +#255#176'xL'#255#167'j:'#168#255#255#255#0#255#255#255#0#165'g7'#253#246#238 +#230#255#245#236#227#255#245#237#228#255#230#210#193#255#176'yM'#245#166'i8' +#202#164'e46'#255#255#255#0#164'e4j'#169'k<'#237#182'|O'#255#167'j:'#254#165 +'h7'#250#255#255#255#0#255#255#255#0#164'f5'#252#246#238#230#255#235#215#196 +#255#234#217#201#255#164'e4'#254#164'e4j'#255#255#255#0#255#255#255#0#255#255 +#255#0#164'e4'#11#165'f5'#233#201#149'l'#141#183#127'S'#194#164'e4'#255#164 +'e4'#5#255#255#255#0#164'e4'#252#245#237#229#255#246#237#229#255#245#236#228 +#255#215#183#156#253#166'h7'#224#164'e4'#16#255#255#255#0#255#255#255#0#255 +#255#255#0#255#255#255#0#213#164'~'#26#205#153'r9'#164'e4'#252#164'e4'#12#255 +#255#255#0#164'e4'#249#164'e4'#254#164'e4'#254#164'e4'#253#164'e4'#252#164'e' +'4'#251#164'e4'#185#164'e4'#29#164'e4'#24#164'e4'#24#164'e4'#24#164'e4'#24 +#164'e4'#24#164'e4'#28#255#255#255#0#255#255#255#0#164'e4'#13#255#255#255#0 +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#164'e' +'4'#160#164'e4'#255#173'tG'#248#175'wL'#247#175'wL'#247#175'xL'#247#164'e4' +#255#164'e4'#8#255#255#255#0#164'e4'#252#179'yL~'#207#157'v+'#187#131'W'#19 +#164'e4'#2#255#255#255#0#255#255#255#0#164'e4'#4#166'h8'#196#208#172#143#250 +#246#238#231#255#242#230#219#255#246#238#230#255#166'j:'#251#164'e4'#9#255 +#255#255#0#164'e5'#254#167'j:'#251#199#145'h'#157#165'g7'#230#164'e4#'#255 +#255#255#0#255#255#255#0#255#255#255#0#164'e4`'#164'f5'#255#233#215#199#255 +#235#216#198#255#245#236#227#255#166'j:'#250#164'e4'#10#255#255#255#0#166'h8' +#243#171'pA'#255#169'l<'#254#167'j:'#245#164'e4u'#164'e4'#25#164'e4E'#166'i8' +#205#185#136'a'#245#235#219#205#255#245#235#226#255#246#238#230#255#246#238 +#230#255#167'j:'#250#164'e4'#11#255#255#255#0#167'i9'#155#192#144'i'#253#197 +#152'r'#255#168'k<'#255#164'f5'#255#167'j:'#252#183#133']'#243#217#187#161 +#254#241#228#216#255#242#230#219#255#243#232#221#255#206#167#136#253#234#216 +#200#255#167'j:'#249#164'e4'#13#255#255#255#0#164'e4)'#166'i9'#245#211#173 +#140#255#220#189#157#255#221#190#161#255#229#203#180#255#233#211#191#255#238 +#221#204#255#240#226#213#255#231#210#191#255#175'wK'#245#165'g6'#192#171'qC' +#247#164'f5'#252#164'e4'#14#255#255#255#0#255#255#255#0#164'e5P'#166'h8'#246 +#192#144'h'#250#211#176#143#255#223#194#168#255#222#193#168#255#212#177#147 +#255#185#135'_'#244#165'g7'#240#164'e4X'#255#255#255#0#164'f5f'#164'e4'#255 +#164'e4'#15#255#255#255#0#255#255#255#0#255#255#255#0#164'e4'#29#167'i:'#159 +#167'j:'#222#165'g6'#246#167'i9'#229#167'j:'#188#164'e4S'#164'e4'#5#255#255 +#255#0#255#255#255#0#255#255#255#0#164'e4y'#164'e4'#16#7'OnClick'#7#18'Refre' +'shBitBtnClick'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#2#0#0#0#9'T' +'GroupBox'#16'InConfigGroupBox'#22'AnchorSideLeft.Control'#7#5'Owner'#21'Anc' +'horSideTop.Control'#7#5'Owner'#24'AnchorSideBottom.Control'#7#9'StatusBar'#4 +'Left'#2#0#6'Height'#3#179#2#3'Top'#2#0#5'Width'#3'@'#2#7'Anchors'#11#5'akTo' +'p'#6'akLeft'#8'akBottom'#0#7'Caption'#6#10'In config:'#12'ClientHeight'#3 +#156#2#11'ClientWidth'#3'<'#2#8'TabOrder'#2#2#0#9'TGroupBox'#27'StoredSerial' +'NumbersGroupBox'#22'AnchorSideLeft.Control'#7#16'InConfigGroupBox'#21'Ancho' +'rSideTop.Control'#7#18'BackupConfigButton'#18'AnchorSideTop.Side'#7#9'asrBo' +'ttom'#23'AnchorSideRight.Control'#7#16'InConfigGroupBox'#20'AnchorSideRight' +'.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#3#220#0#3'Top'#2#30#5'Width'#3 +'<'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#7'Caption'#6',Stored ser' +'ial numbers in configuration file:'#12'ClientHeight'#3#197#0#11'ClientWidth' +#3'8'#2#8'TabOrder'#2#0#0#8'TListBox'#13'SerialListBox'#22'AnchorSideLeft.Co' +'ntrol'#7#27'StoredSerialNumbersGroupBox'#21'AnchorSideTop.Control'#7#27'Sto' +'redSerialNumbersGroupBox'#23'AnchorSideRight.Control'#7#27'StoredSerialNumb' +'ersGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Co' +'ntrol'#7#27'StoredSerialNumbersGroupBox'#21'AnchorSideBottom.Side'#7#9'asrB' ,'ottom'#4'Left'#2#0#6'Height'#3#197#0#3'Top'#2#0#5'Width'#3'8'#2#7'Anchors' +#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#10'ItemHeight'#2#0#7'OnClick' +#7#18'SerialListBoxClick'#8'TabOrder'#2#0#8'TopIndex'#2#255#0#0#0#9'TGroupBo' +'x'#28'SelectedSerialNumberGroupBox'#22'AnchorSideLeft.Control'#7#16'InConfi' +'gGroupBox'#21'AnchorSideTop.Control'#7#27'StoredSerialNumbersGroupBox'#18'A' +'nchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#16'InConfig' +'GroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Contr' +'ol'#7#16'InConfigGroupBox'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left' +#2#0#6'Height'#3#162#1#3'Top'#3#250#0#5'Width'#3'<'#2#7'Anchors'#11#5'akTop' +#6'akLeft'#7'akRight'#8'akBottom'#0#7'Caption'#6'7Selected serial number det' +'ails from configuration file:'#12'ClientHeight'#3#139#1#11'ClientWidth'#3'8' +#2#8'TabOrder'#2#1#0#8'TListBox'#20'SerialDetailsListBox'#22'AnchorSideLeft.' +'Control'#7#28'SelectedSerialNumberGroupBox'#21'AnchorSideTop.Control'#7#12 +'ExportButton'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Cont' +'rol'#7#28'SelectedSerialNumberGroupBox'#20'AnchorSideRight.Side'#7#9'asrBot' +'tom'#24'AnchorSideBottom.Control'#7#28'SelectedSerialNumberGroupBox'#21'Anc' +'horSideBottom.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#3'm'#1#3'Top'#2#30 +#5'Width'#3'8'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#14 +'ExtendedSelect'#8#10'ItemHeight'#2#0#8'TabOrder'#2#0#8'TopIndex'#2#255#0#0#7 +'TButton'#12'ExportButton'#22'AnchorSideLeft.Control'#7#28'SelectedSerialNum' +'berGroupBox'#21'AnchorSideTop.Control'#7#28'SelectedSerialNumberGroupBox'#4 +'Left'#2#2#6'Height'#2#30#4'Hint'#6#28'Write selected data to file.'#3'Top'#2 +#0#5'Width'#2'K'#18'BorderSpacing.Left'#2#2#7'Caption'#6#6'Export'#7'OnClick' +#7#17'ExportButtonClick'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#1#0 +#0#0#7'TButton'#18'BackupConfigButton'#22'AnchorSideLeft.Control'#7#16'InCon' +'figGroupBox'#21'AnchorSideTop.Control'#7#16'InConfigGroupBox'#4'Left'#2#2#6 +'Height'#2#30#4'Hint'#6'.Make a backup of the entire configuration file'#3'T' +'op'#2#0#5'Width'#2'K'#18'BorderSpacing.Left'#2#2#7'Caption'#6#6'Backup'#7'O' +'nClick'#7#23'BackupConfigButtonClick'#14'ParentShowHint'#8#8'ShowHint'#9#8 +'TabOrder'#2#2#0#0#0#11'TOpenDialog'#11'OpenDialog1'#6'Filter'#6#24'SerialFi' +'les|SERIAL_*.txt'#4'Left'#3'H'#4#3'Top'#2#24#0#0#0 ]); ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./arrow-right.png�����������������������������������������������������������������������������������0000644�0001750�0001750�00000001756�14576573022�014134� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR��� ��� ���szz���sBIT|d��� pHYs��v��v}Ղ���tEXtSoftware�www.inkscape.org<��kIDATxkWǿdwݴb$ZJhaڤ kb_RPPTȫUЗ>KKT)&̽wn/wFtw>,|?s΁KZklg1_.C:Oģo\3T` W>}-;c,~XޤYP(GWiyԠ Mb46pb4"#1K@C<Bg^cWg"w?6e>X( d{@[%l7 <&ҽE`Sm&XZRaO>LYT 5Wd"pd.jb>흀KhS~[x*I148co-U7hݵ{ыpmBȄ9HnX( 0A l`VC?RpX@ H�h(�8a:ڛƷt^ww.a_T @bC87v"6BFk13nen:@@Š"JhXlP)໵z>gpipV;T!K|�uɣ'qW;`+ a }v:00!Xz⦾\GV](S,G6'/eu/T#HAvBbVP`;ԭzYS�  aāVk:A B VX_k\ҷgT 𭀥(#x^R_T~T ^5R?WESR:<Fؒz}r6wTi?Zqz\ҋ|x3_OC}E__RS2s;�˴!����IENDB`������������������./TPlaysound.png������������������������������������������������������������������������������������0000744�0001750�0001750�00000001722�14576573022�013763� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���������w=���bKGD������ pHYs����_���tIME *,;��_IDATHǍKUGM̚$,5lnEI$kՃEa``- V-E eX" 1M2)ʷ&̴_9s?@Hz/b.=>hbKÉvb<q}#ZîW$1�1O.⹉XAR[(I8J975XUSlك=D "kSx2xDJ,ōH=b(RÚG-؂)8|JWuM=Mxk*zaC1(QwĴ0QaqUx b&fsJ60| cqf0j=ю8aq[HjqIgkI98{ިr:f-W6jmyO`nZuZ, BP!f12;#8VZM?{W7-V]FƐETΤ0@zޱGS_5TFQ7x>Wpm:p!؛jg{μcT Cʞ>] -:s*|?Z0볰qs]Gղ`l dζl%wUvБ£x TWag@;,LdXȹUEPN.^< ͦWZ[h>(2PvG:([ز )ߤY5lXVAsSquELT%^N~1#w3'sqB7[bfKsY"6$?Xds@cuz$a8*o�zFQ.k;'})R6W=Rbiy?)( A����IENDB`����������������������������������������������./fileview.lfm��������������������������������������������������������������������������������������0000644�0001750�0001750�00000002720�14576573021�013462� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object Form2: TForm2 Left = 456 Height = 500 Top = 168 Width = 658 Caption = 'File View' ClientHeight = 500 ClientWidth = 658 Position = poScreenCenter LCLVersion = '1.2.2.0' object PageControl1: TPageControl Left = 0 Height = 500 Top = 0 Width = 658 ActivePage = TextTab Anchors = [akTop, akLeft, akRight, akBottom] TabIndex = 0 TabOrder = 0 object TextTab: TTabSheet Caption = 'Text' ClientHeight = 468 ClientWidth = 652 object Memo1: TMemo Left = 0 Height = 468 Top = 0 Width = 652 Anchors = [akTop, akLeft, akRight, akBottom] ScrollBars = ssAutoBoth TabOrder = 0 end end object GraphTab: TTabSheet Caption = 'Graph' ClientHeight = 468 ClientWidth = 652 TabVisible = False object Chart1: TChart Left = 0 Height = 465 Top = 0 Width = 494 AxisList = < item Minors = <> Title.LabelFont.Orientation = 900 end item Alignment = calBottom Minors = <> end> Foot.Brush.Color = clBtnFace Foot.Font.Color = clBlue Title.Brush.Color = clBtnFace Title.Font.Color = clBlue Title.Text.Strings = ( 'TAChart' ) Anchors = [akTop, akLeft, akRight, akBottom] ParentColor = False end end end end ������������������������������������������������./avgtool.lfm���������������������������������������������������������������������������������������0000644�0001750�0001750�00000020174�14576573021�013326� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object Form8: TForm8 Left = 2143 Height = 404 Top = 285 Width = 1122 Caption = 'Average tool' ClientHeight = 404 ClientWidth = 1122 OnShow = FormShow Position = poScreenCenter LCLVersion = '2.2.6.0' object Memo1: TMemo AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = StatusBar1 Left = 915 Height = 383 Top = 0 Width = 207 Anchors = [akTop, akRight, akBottom] Lines.Strings = ( 'All files in the selected directory will be processed.' '' 'All files converted will have "_avg" appened to the filename, and stored in a subdirectory called "average".' '' 'Rolling average method:' 'Takes readings from multiple files created by SQM-Pro2. ' 'Uses the rolling average method to produce a set of new files where all readings are modified using the rolling average method with the desired number of bins for each average block.' '' 'All records of each file method:' 'All records in a .dat file are averaged to produce a new .dat file with only one record of the average.' '' '' '' ) ScrollBars = ssAutoBoth TabOrder = 0 end object StatusBar1: TStatusBar Left = 0 Height = 21 Top = 383 Width = 1122 Panels = < item Width = 50 end> SimplePanel = False end object ProgressBar1: TProgressBar AnchorSideLeft.Control = Owner AnchorSideRight.Control = Memo1 AnchorSideBottom.Control = StatusBar1 Left = 0 Height = 20 Top = 363 Width = 915 Anchors = [akLeft, akRight, akBottom] Smooth = True TabOrder = 2 end object SourceDirectoryEdit: TEdit AnchorSideLeft.Side = asrBottom AnchorSideTop.Side = asrCenter Left = 256 Height = 36 Hint = ' Source directory.' Top = 8 Width = 656 BorderSpacing.Left = 2 TabOrder = 3 end object SourceDirectoryButton: TBitBtn AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SourceDirectoryEdit AnchorSideTop.Side = asrCenter AnchorSideRight.Control = SourceDirectoryEdit Left = 229 Height = 25 Hint = 'Select source directory.' Top = 14 Width = 25 Anchors = [akTop, akRight] BorderSpacing.Left = 2 BorderSpacing.Top = 2 Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000534D46A0A465 34FFA46534FFA46534FFA46534FFA46534FFA46534FFA46534FFA46534FFA465 34FFA46534FFA46534FFA46534FFA46534FFA46635E9A6673639484848E09786 78FFA5693AFFBA8350FFBA8350FFBA8350FFBA8350FFBA8350FFBA8350FFBA83 50FFBA8350FFBA8350FFBA8350FFBA8350FFB27845FFA56636C0494949E09999 99FFA56839FFD3A67EFFD2A378FFD2A378FFD2A378FFD2A378FFD2A378FFD2A3 78FFD2A378FFD2A378FFD2A378FFD3A479FFD1A57AFFA56635F5484848E29B9B 9BFFA46738FFD5AB85FFCE9C6EFFCE9C6DFFCE9C6DFFCE9C6DFFCE9C6DFFCE9C 6DFFCE9C6DFFCE9C6DFFCE9C6DFFCF9E70FFD5AB84FFA56635F84C4C4CE4A1A1 A1FFA56838FFE2C4A9FFD5A881FFD3A47AFFD3A47AFFD3A47AFFD3A47AFFD3A4 7AFFD3A47AFFD3A47AFFD3A47AFFD4A77EFFDDBA9CFFA56635F9515151E5A4A5 A5FFA56737FFE9D2BEFFDDBA9BFFDDB999FFDCB695FFDBB592FFDAB390FFD9B2 8EFFD8AE89FFD7AD87FFD7AD87FFD8B08BFFE5C9B1FFA56635FA565656E7A9A9 A9FFA46636FFECD8C6FFDDBA99FFDDBA99FFDDBA99FFDDBA99FFDDBA99FFDDBA 99FFDDBA99FFDCB795FFDAB28EFFD9B08BFFE7CFB8FFA56635FB5B5B5BE9AEAE AEFFA56736FFEBD7C4FFDCB794FFDCB794FFDCB794FFDCB794FFDCB794FFDCB7 94FFDCB794FFDCB794FFDCB794FFDAB491FFE6CDB6FFA56635FC5F5F5FE9B3B3 B3FFA46635FFEAD5C1FFDBB491FFDBB491FFDBB591FFDBB591FFDBB592FFDBB5 92FFDBB592FFDBB592FFDBB592FFDCB896FFE7CFB7FFA46634FD656565EBB7B7 B7FFA56635FFEAD3BEFFEAD4BFFFEAD4BFFFEAD4BEFFEAD4BEFFEAD4BEFFE9D3 BEFFE9D3BEFFE9D3BEFFE9D3BEFFE9D3BEFFE8CFB8FFA56534FE6A6A6AECBDBD BDFFA66D41FFA56636FFA56636FFA56636FFA56636FFA56636FFA46635FFA466 35FFA46635FFA46635FFA46534FFA46534FFA46534FFA66837E06E6E6EEEC0C1 C1FFACACACFFAAAAAAFFA7A7A7FFA5A5A5FFA4A4A4FFA4A4A4FFACACACFFB6B6 B6FFB9B9B9FFBBBBBBFFA2A2A2FF6A6A6AA94747470047474700737373EFC5C5 C5FFB0B0B0FFADADADFFABABABFFAAAAAAFFACACACFF8D8D8DF58D8D8DF28C8C 8CF28C8C8CF28C8C8CF2808080F66C6C6C844747470047474700787878F0C9C9 C9FFC7C7C7FFC5C5C5FFC4C4C4FFC4C4C4FFB4B4B4FF747474CA727272387272 7238727272386D6D6D386F6F6F355555550347474700474747007A7A7A9F7979 79EC797979EC797979EC797979EC797979EC797979E278787835474747004747 4700474747004747470047474700474747004747470047474700474747004747 4700474747004747470047474700474747004747470047474700474747004747 4700474747004747470047474700474747004747470047474700 } OnClick = SourceDirectoryButtonClick TabOrder = 4 end object InputFileListMemo: TMemo AnchorSideLeft.Control = SourceDirectoryEdit AnchorSideTop.Control = SourceDirectoryEdit AnchorSideTop.Side = asrBottom AnchorSideRight.Control = SourceDirectoryEdit AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = ProgressBar1 Left = 256 Height = 283 Top = 78 Width = 216 Anchors = [akLeft, akBottom] BorderSpacing.Top = 2 BorderSpacing.Bottom = 2 ScrollBars = ssAutoBoth TabOrder = 5 end object Label1: TLabel AnchorSideLeft.Control = InputFileListMemo AnchorSideBottom.Control = InputFileListMemo Left = 256 Height = 19 Top = 57 Width = 80 Anchors = [akLeft, akBottom] Caption = 'Input file list:' ParentColor = False end object ProcessStatusMemo: TMemo AnchorSideLeft.Control = InputFileListMemo AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = InputFileListMemo AnchorSideRight.Control = SourceDirectoryEdit AnchorSideRight.Side = asrBottom Left = 476 Height = 284 Top = 78 Width = 436 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 4 ScrollBars = ssBoth TabOrder = 6 end object Label2: TLabel AnchorSideLeft.Control = ProcessStatusMemo AnchorSideBottom.Control = InputFileListMemo Left = 476 Height = 19 Top = 57 Width = 110 Anchors = [akLeft, akBottom] Caption = 'Processing status:' ParentColor = False end object Methodradio: TRadioGroup AnchorSideLeft.Control = Owner Left = 5 Height = 68 Top = 8 Width = 197 AutoFill = True BorderSpacing.Left = 5 Caption = 'Method:' ChildSizing.LeftRightSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 48 ClientWidth = 195 ItemIndex = 0 Items.Strings = ( 'Rolling average of all files' 'All records of each file' ) OnClick = MethodRadioClick TabOrder = 7 end object RollingSettingsGroup: TGroupBox AnchorSideLeft.Control = Methodradio AnchorSideTop.Control = Methodradio AnchorSideTop.Side = asrBottom Left = 5 Height = 72 Top = 81 Width = 197 BorderSpacing.Top = 5 Caption = 'Rolling average setting:' ClientHeight = 52 ClientWidth = 195 TabOrder = 8 object BinsSpinEdit: TSpinEdit Left = 48 Height = 36 Top = 8 Width = 50 Alignment = taRightJustify MaxValue = 16 MinValue = 2 OnChange = BinsSpinEditChange TabOrder = 0 Value = 8 end object BinsLabel: TLabel AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = BinsSpinEdit AnchorSideTop.Side = asrCenter AnchorSideRight.Control = BinsSpinEdit Left = 16 Height = 19 Top = 17 Width = 30 Anchors = [akTop, akRight] BorderSpacing.Right = 2 Caption = 'Bins:' ParentColor = False end end object StartButton: TButton Left = 72 Height = 25 Top = 192 Width = 75 Caption = 'Start' OnClick = StartButtonClick TabOrder = 9 end object SelectDirectoryDialog1: TSelectDirectoryDialog Left = 536 Top = 80 end end ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./pitchrollheading.jpg������������������������������������������������������������������������������0000644�0001750�0001750�00000031707�14576573022�015202� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������JFIF��Y�W���C�     �C   ��.���������������������������� ���R�������0d2������2$a D"ST*{CښoIK2& 2��� '711Ke>ffv| %4U]vM//.8Gw2dC���0qsi5׶גOWkNn,}iM|6qM$1}|:���G5t۔�Sޱ+tEҘu_'[ڂ/ڻVm=>!K���JǕJE4oI"34ESD[_rdZ/"cYV"V��aZ=|ZS`��RZg ٛi!|$ nwWΗ/\9e׉v} mpL��E|zw]<eI΋ȋn''?.?kxīI8}l3o3ؚ��|!gG$m1sukvZ.ձ}=>$Ii u}C-%��� gZAの>s|VOUΟ>1>tؖYIoa"`V4c ��\bk$GZש)___4wze+eݝ[O|-l9}����Ei7o-3|zrf}opJ}L6in}i<�/B۞ã+}?x����A, ~CWIk})4kdVϷ#ݾ OdESg>iM����מN~^nOכdbZZZ4cM_!}=oD)oK��^x^c/G#ʡ~Y & $k ݰӓ9'��DO�u|4Z*qb��![3y9���� ���W;Vw������������ @�������������������.�������0 !"2@P#16A%��C3],.#Ujr e]+41#ȉ#;yƿ:;] E:ӤL[t+\I<I+2Y̮OnfcxBQWi%R;J?o)lt^ Ǭ ˪ QAus.d/cr.u3"& kԸ+HFo.-ASs2%%ybäkիJ#чj7Yzռ^WkVbjx\k8ldyu8}+`n x] ͚;  [YYßqN> **R(iA gPg8t}eb[4V2Ƚn;v2:-i'6|jf0hlI3ߖ|41FaH~~1ГEy{&(d4Ẑ#q>ɅQK}E pe" *9~U;Uc~an f 'ꗜcs/WjF z6:Uی W(. A .?t&m*'?\=2K&IMaF"6ͽu䚏ՑOLrrn99ZK{dsbmR{幉t}0CF;kԘy5ZMԪYG< G]�1GؗHp\q}[qO!F(,uբ_j%>!y]G(EsU&H$:QՠyLvLuxaX/]<"UKXvg1egv zad,]czR6'noh!1jF^8m rD'o/isl8q͹kY?{tY59|6PHĆkW0~ cZ΄ōs:::/1Bgo:36w&U&6lr =q;Zb--IfX}oUګFL[y; 1Nmq15 q㱟T$Q|Gf�qеzH*HpxsOüv0;'|g�=� ������!1"0Aa4@QSq#$3BRT2P`b�?Mh^Z<"/Ex_3 %K܅ByC^fiFM# gxrK-3x reP8dBT 2ek役k6JL +U"#:<z3`ܶN[07F@wGϣۧ==xóOS3ȓۧ MB<~W 0!q%| 鯌){ۢ K kMML8[>Q:|LOϭw SZ�.42nn2𙉈 Ѽ7"1 㤥jspbp_7\Y[Vf3xD|u>�?>3s-ITmՋq3 D\#FQl#3$Le,yXǸO)?d]3U=Cs 兡y�h_zsJHtPKK1P] 0il3j VUl0ԴBo rlE}.�5>}f5;JC]ak7{K1}'-+c?C +ҥr홏Ɇ^^Z*^ljyqXFci*ŇT[^d?x@Ug.v-~/8He^ Ԟ3,)2L^ sv @&=P|c  zj)]rD.rѰ魱o[Kh=58z<uu7<fY I74^aP,Z3U:J2L/%7P\ÄQGǐ2a"q>;LSuѦzl]0WQSECcv%ݎξ3;Q58B:]zlSDb W[uë9�0��������!1"03@R #2BQAPa`b�?Ÿf%zj␢=1ů@LF" #C(F\藥OE#2s#"ё/-(Ke2eYUnqqLsO5߇"Zo!?k9kk}7gfchQBG,q01(Į,Vsi5aiMe"Thy:"2R#+TU :=T-'?�:J MuݘQ Lim:o�ZDXdCB2؛MwfER#f4F'jȐPHh|e9,D"2H-{)y6LE\;\K#Sy~s%A2�#~ZvyK}Gd40cgi(9"&H^6ahsԺ�%/)_9N[;#)YJfF22#"r -iK8 ҶCZW|U222232GjqPQ5CNRߢINC#!Z[7?䧼.2E[j:缝7uNj ߑ[콣._tW_ӟ�H� �����!1"2AQBaq#03 4@CRr$5DSTbc%P`s��?�ppk3mteQ칋UA [zAմ|9p4*±\~3SYq]wwl_i4zQ-:Ψ #E6-L @5]I1cʖfGgsÇlilZEj72sf~c}݄.$j(H̕'H]w4zlc%i8Qn(P pRCѥa޾ RtsM2z&*PK�4~ܺJ=ZNd]V +rH7Q{rcm>"=b}O#m{1yxF'MG-#'&cCgY%[�Css,vDIcKNwd0\lO-)B-[xM4>q{TiT�S3t!$HʋBRڏV+ފhGPԫޏG||E#RI&5GSHvfg6*P6s_h"̫%hPZNӴG4“ xVsCC,˩mꉓ!lו{[hAф=7WKUM^MMk )k|sstydbMŬh.DuRoii[Dyz_Fp(6SEsTM.eh]Y Q)9Tbb^aRuCp,L!y"sg<ڬĄdBA8Dœw'N*ffNvrMx*XA-knIݖX 9]8u>MEE*>?�XcT�cUɭw.ҽpKkf!N*EU+uB\hAûME8EYi~x󢍣9Lˌ`Ie|R;hJ]AwFn~[½QL4qYHJ-L^G#BݦB`|*WNBhU}~nI,8bʂ޸Z ʈ1ZD`oA$[%C @W=bT9Ewr8È iRHRxAL]BB8r=6uckMԍu51yy=dM7�dqZc1!f0VLS22?j> n7Ӑ%4$ekbI4@HgY|bai&FhAHX;UӍlF3&?g?ڂ>r-ɧL`;i.}cД!!(N� Lf[WRiA?l</H\]M ^VJ7%qw9`ON<t]B{ɴg_N6vSڬ)rD*92M2RpOZKf\3yyWݒaZ)h.КU:&&VSvNa fUXR,=XR7QiyJn8WB_YK ΂JM)K4iAZg+= uZх`;Ui-6V vq1lYt1LwPqEԸ6nS{B.Y,bZZ& A1B#Y1u[BJ)Jx vFe9g^;>iUnʖ;gs-:߆ XK!o8-iN[(b]+J M>�fc<,ٮw?ⷣ:t4y`aun]^Yk=OK!)hr�=Zkt_3g=e> JB@92g g&%JXne$BRZi5`)>WC0]t-y]J]8(W2Tqnf7R]w& 'JeF)qQF\zB8gNRU?H}.ûN:m9GeTRpv}Zg6؜4H-Z(cCn%ԆQqMk6Pm(܅Kkl6ZRRj0]N22vB[C,;2Sm)#"L!jU[fZi\ 6lFX �>%.>WZapv-V\%VEuԌ=ϷI,jBk#ZBڂ 8PpK;|:tF0).ʠ?!WU5GFx eNχRQ�V>p\UӤl?] Bil֑US^97$.m:ƤH$$RR'~�-s^M1yd˫Eqr:ÂT_MRpR/ʿ�)������!1AQaq0 @P��?!�,~-%˗,p6Gr0K+PjE Aߥ-XˏG IE+D^aZC7{Ѽ@u0+TzE1ႅ =\e"46nƷ6+7EԙHQ1ӾIlG-N8o#kUo9r]@9 W�ĚZ1<[}/,tG{ž]C jn <`O`-KFJ'3S\іqnHvj!mk,A�/_-6[??A~,)8 E ,-4?yYݿj+Y4+5/BكBWU�E>,DY>ʔ 嚭 8W݌a>[Q3q*L=P$RԦz6n 6[-G/>4X2jES<;Ϩ146.V �7Y%ojd޳([Lq{h=ql-/0:\2GuaH:AP,C-35_ѝXѝ-e|3zA1q RoC9Ѭ!(ݘQ;񉂞l+Z)GӞfttb~oFbtuҤSHDDG%WW^cdr!CZNJ eׅfgjA1j /2v),bΰسw]@,'rEEu:p]?ʽF&b-l]j6w/OMO9@j0T._p&$m1 !Mk[GX֐}')B.UUW/lt%CJ}kZR{F8ȣn* 0Q|#xK_h42AO*`l) l.n_7vqq>Gyn K2="SAf}&e},bQM&Ut{j{=.ↇhLkM!/V^GMªW}DdٺjL�Ւl1r]]2LO'EvG3RB[z4Q|iE|0C=aαyPJsx|Z-}^^߉۱t#f1DC|Z/j3*ng` }qoˉ6T|PlWp~1v dE5-¡X8TC̊ m0O A5x%ƒY2Ἶq w[4,\`iCdg!W#0!f ƴy-wsc iZs03%0j52Z#pZv^wgL).Kw״)MzK\M%_ҹ~0:MK?][IҶ �P)r& Z1Qn[}~Gl- ʻƻ+)+{MZPj-nS7S$2>഍ _{ Ci Ā4wsH�8V(ik;SUVJZunk�tRٯבդj HIT:& ?bQ:L5)Gn;Ek@Mh^Ӟ$Ô .k[e3a\V /,[ dßQPXܭ`{EkRkHZ*;P(2~ޘShJgU^ԯK#F)!\G+2ܥ ah*TR+Xal[_irj0nFh[72 ÐW~¿� �����HI$$I$I$$nml˔<A�I$=DXx^n @$I�$]_6 �I$Iۤ 2:Q�3I$1=w][I$&y`XI%t1 !78q$IP;LrA$-@ᇹ](I$#Ȏ1tI$I!k >Q{SEPI$HW%Վ9$I v|<\m,$H'S5k �I$@eh�I'�$I$�I$CP�$I$I$I$$I$I$I$I$I$I$�)��������!1AQaq0@P�?C];8e`:Wht$*# KfznE!LP3P`9q-0"$mhdž@[C k7IXıZI3!bPX &CV) aF7)M5/<?2i%=%f%c<C 1i-Q8�V[ȡuCv~N�?P{l5?r)qn)qs^ uQ˚@ R9Rº0HkgaZ|ʏFW�v!t+Ք J@g>-S4ʬo6%qŹhH �J^__vs3)HJ.cj$�C~%z(5�I_F7ĹmbcpCPJJ}5^ʿY+"we-c  D!pW҂5Y*m<!I(+3j�sP :4n^_aJϲƇe|K]?1|ŤMIG8hA7@ŲDY-ΐZV,_m׍ט@"0b5㐾5"PAB9( >[Јk�zƗ4eͨhӃW㼨rZr[yIfѾ么IPT+wcTG�"`zDN-{e͎՗a'=\V&FEr K*!S(&LXAs^slx;pgw[_jZS`~v7G܍>W B;[l̫gbޅut`pr,�x;_�61)6 Pa PX(#kZs �m�*��������!1AQa0q @P�?Fעa{CPKa{_E@n_kLvf!B$_B%|T B aaԖҠT}XA 8;7ĦS#R SA7hj;L"eNr]9  q$Q:&i/,ňTKCnW@i"ѳglt9ᙀ#F"eġqfx3.}ig}U~hLɷx{pZiUM|B:8 K6(p e[&kNuޝ%a`tFOYXKۇ*!nMQ,TNvۤp(LfOez€;zJt4hHkñ܀mtqRoS7DBM=)mp`h?_8A̻zm|zK+dB֢3#%i9Lw鷚U 6 5*[~G(7-i,]iZb}"舰,if�Q#3a .&^Xk\FXQAXԷy>'Fh:QeB)/'(Kspu%(xXeG 6R`0Am/rĤeTg {  k X,Km rE6"<n�Yw |UhTw]cDuG:@gܒ, ǫ?s�[�*������!1AQaq0 @P��?PlwES-ܹ=M7+?_.\AD@%N^e Ʈbw,f [1CpcSQ`e1!}e\X 1ƒM;^`+0IbAe Z&Ec l. R6Y6M媿Ґ .UCOaBţ/eFwS #DN9A UM%5ysb0. ET ŝÈnaWxߛTоXdVhf%$j-BUnxWdh=k9Ṯ4eʷ�eDP1.5HF`R o!Ba̔Xw4D =LSNp�!dFT_{JOx2d2گ(KGGK"к8 C/ݜj7J"Gv2!{ XǦkB=8q$vKw60%6&I(/.dlEe, p]mUe]#IjUznab;(0h0ZZ&Ы;fɆp17*qs-�BQuWr _{?tԢ aAe�PX[#a ˶-W[9+(, Eh =@xl&ZHݯu09pUzLr@\L?,bхiuCg. 5\mME�RuB 6-+- }|KnS$|HcXqoD kf4a/6]G..4 4<KBG-A JnVQVf)/|httj*cz6eSohY)25=$] b F\*ee-%0ZsV^0TUf`!X0!=.�Ю?~a-÷ItY񑖒ɇ~cXx�<y^p�m+9D5sޝ'ͪ:+fF R8^";9URfaDIJ2/ y!f"KUA[%'n=h4BDX_`p̙KF#A._9[D;3ſ@_ 1 톞G=zT<aODE [2+`ۻuՠ*> bXpEg;%:я 4FWJ?ƴ ux 8t ]5WPJK*pvqQ^WZ[ع]cebG/\YƸSs- pAp_Nݗ 6}:g>M|dAh l F\lF "G.)sC'8s+Чoyn_ �,%a<70,5aJ=|7~ �e[(D5ɰ^ܐt17A/`U L%o/1p,A`sҰA[/~b:eѼI-ej@)dAN8^\ZCdkd]Pc,{iYt'$KL6B`k)y[WK" j.|E-ٰ ETZ8H�oATr‡(Ғ-CQW *;o;An[/l&eFK\M~ [2g2$Vs-⃪byD4,Ơ@5/Pu&+@L>֢LC>mi>qB=mb&bcU�3 ޥJ4/@A)& bu8ŸK1rBݗv#*UM$v).`3 FG6nC2n6 |v�O+jPqTOE*sv,[!;)15�WL}*]s~"4RU^6NA�>"ASKVPaY4D@џQCe=EtB2Ly}F*MXĠ"Q€UJa0Uuy5^|gd:j c,mYYm{8�R_H`WN,RvWc(@Ql- 2MWd AT… _:`Xt]t4 VfָFҩ8.& 0P{6GuApPq(w))!,4lcRh@0Ħ'lA 4"q.hu ]7f%8]+�t0UL! YW9 B5_ejK|jȱl2mEbécSM[󒍜 j@PA@y&")+E,8MD8UXhx e�,Aߢ rV>%]#dh 7&5*;]J!ܡ W,q'yv#N`AxHXN%zTP+_E1:B#aY_%`dGsmD6]/Nb[hj;@���������������������������������������������������������./mimepart.pas��������������������������������������������������������������������������������������0000644�0001750�0001750�00000113256�14576573021�013502� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{==============================================================================| | Project : Ararat Synapse | 002.009.000 | |==============================================================================| | Content: MIME support procedures and functions | |==============================================================================| | Copyright (c)1999-200812 | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2000-2012. | | Portions created by Petr Fejfar are Copyright (c)2011-2012. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@abstract(MIME part handling) Handling with MIME parts. Used RFC: RFC-2045 } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} {$Q-} {$R-} {$M+} {$IFDEF UNICODE} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$ENDIF} unit mimepart; interface uses SysUtils, Classes, synafpc, synachar, synacode, synautil, mimeinln; type TMimePart = class; {:@abstract(Procedural type for @link(TMimepart.Walkpart) hook). This hook is used for easy walking through MIME subparts.} THookWalkPart = procedure(const Sender: TMimePart) of object; {:The four types of MIME parts. (textual, multipart, message or any other binary data.)} TMimePrimary = (MP_TEXT, MP_MULTIPART, MP_MESSAGE, MP_BINARY); {:The various types of possible part encodings.} TMimeEncoding = (ME_7BIT, ME_8BIT, ME_QUOTED_PRINTABLE, ME_BASE64, ME_UU, ME_XX); {:@abstract(Object for working with parts of MIME e-mail.) Each TMimePart object can handle any number of nested subparts as new TMimepart objects. It can handle any tree hierarchy structure of nested MIME subparts itself. Basic tasks are: Decoding of MIME message: - store message into Lines property - call DecomposeParts. Now you have decomposed MIME parts in all nested levels! - now you can explore all properties and subparts. (You can use WalkPart method) - if you need decode part, call DecodePart. Encoding of MIME message: - if you need multipart message, you must create subpart by AddSubPart. - set all properties of all parts. - set content of part into DecodedLines stream - encode this stream by EncodePart. - compose full message by ComposeParts. (it build full MIME message from all subparts. Do not call this method for each subpart! It is needed on root part!) - encoded MIME message is stored in Lines property. } TMimePart = class(TObject) private FPrimary: string; FPrimaryCode: TMimePrimary; FSecondary: string; FEncoding: string; FEncodingCode: TMimeEncoding; FDefaultCharset: string; FCharset: string; FCharsetCode: TMimeChar; FTargetCharset: TMimeChar; FDescription: string; FDisposition: string; FContentID: string; FBoundary: string; FFileName: string; FLines: TStringList; FPartBody: TStringList; FHeaders: TStringList; FPrePart: TStringList; FPostPart: TStringList; FDecodedLines: TMemoryStream; FSubParts: TList; FOnWalkPart: THookWalkPart; FMaxLineLength: integer; FSubLevel: integer; FMaxSubLevel: integer; FAttachInside: boolean; FConvertCharset: Boolean; FForcedHTMLConvert: Boolean; FBinaryDecomposer: boolean; procedure SetPrimary(Value: string); procedure SetEncoding(Value: string); procedure SetCharset(Value: string); function IsUUcode(Value: string): boolean; public constructor Create; destructor Destroy; override; {:Assign content of another object to this object. (Only this part, not subparts!)} procedure Assign(Value: TMimePart); {:Assign content of another object to this object. (With all subparts!)} procedure AssignSubParts(Value: TMimePart); {:Clear all data values to default values. It also call @link(ClearSubparts).} procedure Clear; {:Decode Mime part from @link(Lines) to @link(DecodedLines).} procedure DecodePart; {:Parse header lines from Headers property into another properties.} procedure DecodePartHeader; {:Encode mime part from @link(DecodedLines) to @link(Lines) and build mime headers.} procedure EncodePart; {:Build header lines in Headers property from another properties.} procedure EncodePartHeader; {:generate primary and secondary mime type from filename extension in value. If type not recognised, it return 'Application/octet-string' type.} procedure MimeTypeFromExt(Value: string); {:Return number of decomposed subparts. (On this level! Each of this subparts can hold any number of their own nested subparts!)} function GetSubPartCount: integer; {:Get nested subpart object as new TMimePart. For getting maximum possible index you can use @link(GetSubPartCount) method.} function GetSubPart(index: integer): TMimePart; {:delete subpart on given index.} procedure DeleteSubPart(index: integer); {:Clear and destroy all subpart TMimePart objects.} procedure ClearSubParts; {:Add and create new subpart.} function AddSubPart: TMimePart; {:E-mail message in @link(Lines) property is parsed into this object. E-mail headers are stored in @link(Headers) property and is parsed into another properties automaticly. Not need call @link(DecodePartHeader)! Content of message (part) is stored into @link(PartBody) property. This part is in undecoded form! If you need decode it, then you must call @link(DecodePart) method by your hands. Lot of another properties is filled also. Decoding of parts you must call separately due performance reasons. (Not needed to decode all parts in all reasons.) For each MIME subpart is created new TMimepart object (accessible via method @link(GetSubPart)).} procedure DecomposeParts; {pf} {: HTTP message is received by @link(THTTPSend) component in two parts: headers are stored in @link(THTTPSend.Headers) and a body in memory stream @link(THTTPSend.Document). On the top of it, HTTP connections are always 8-bit, hence data are transferred in native format i.e. no transfer encoding is applied. This method operates the similiar way and produces the same result as @link(DecomposeParts). } procedure DecomposePartsBinary(AHeader:TStrings; AStx,AEtx:PANSIChar); {/pf} {:This part and all subparts is composed into one MIME message stored in @link(Lines) property.} procedure ComposeParts; {:By calling this method is called @link(OnWalkPart) event for each part and their subparts. It is very good for calling some code for each part in MIME message} procedure WalkPart; {:Return @true when is possible create next subpart. (@link(maxSublevel) is still not reached)} function CanSubPart: boolean; published {:Primary Mime type of part. (i.e. 'application') Writing to this property automaticly generate value of @link(PrimaryCode).} property Primary: string read FPrimary write SetPrimary; {:String representation of used Mime encoding in part. (i.e. 'base64') Writing to this property automaticly generate value of @link(EncodingCode).} property Encoding: string read FEncoding write SetEncoding; {:String representation of used Mime charset in part. (i.e. 'iso-8859-1') Writing to this property automaticly generate value of @link(CharsetCode). Charset is used only for text parts.} property Charset: string read FCharset write SetCharset; {:Define default charset for decoding text MIME parts without charset specification. Default value is 'ISO-8859-1' by RCF documents. But Microsoft Outlook use windows codings as default. This property allows properly decode textual parts from some broken versions of Microsoft Outlook. (this is bad software!)} property DefaultCharset: string read FDefaultCharset write FDefaultCharset; {:Decoded primary type. Possible values are: MP_TEXT, MP_MULTIPART, MP_MESSAGE and MP_BINARY. If type not recognised, result is MP_BINARY.} property PrimaryCode: TMimePrimary read FPrimaryCode Write FPrimaryCode; {:Decoded encoding type. Possible values are: ME_7BIT, ME_8BIT, ME_QUOTED_PRINTABLE and ME_BASE64. If type not recognised, result is ME_7BIT.} property EncodingCode: TMimeEncoding read FEncodingCode Write FEncodingCode; {:Decoded charset type. Possible values are defined in @link(SynaChar) unit.} property CharsetCode: TMimeChar read FCharsetCode Write FCharsetCode; {:System charset type. Default value is charset used by default in your operating system.} property TargetCharset: TMimeChar read FTargetCharset Write FTargetCharset; {:If @true, then do internal charset translation of part content between @link(CharsetCode) and @link(TargetCharset)} property ConvertCharset: Boolean read FConvertCharset Write FConvertCharset; {:If @true, then allways do internal charset translation of HTML parts by MIME even it have their own charset in META tag. Default is @false.} property ForcedHTMLConvert: Boolean read FForcedHTMLConvert Write FForcedHTMLConvert; {:Secondary Mime type of part. (i.e. 'mixed')} property Secondary: string read FSecondary Write FSecondary; {:Description of Mime part.} property Description: string read FDescription Write FDescription; {:Value of content disposition field. (i.e. 'inline' or 'attachment')} property Disposition: string read FDisposition Write FDisposition; {:Content ID.} property ContentID: string read FContentID Write FContentID; {:Boundary delimiter of multipart Mime part. Used only in multipart part.} property Boundary: string read FBoundary Write FBoundary; {:Filename of file in binary part.} property FileName: string read FFileName Write FFileName; {:String list with lines contains mime part (It can be a full message).} property Lines: TStringList read FLines; {:Encoded form of MIME part data.} property PartBody: TStringList read FPartBody; {:All header lines of MIME part.} property Headers: TStringList read FHeaders; {:On multipart this contains part of message between first line of message and first boundary.} property PrePart: TStringList read FPrePart; {:On multipart this contains part of message between last boundary and end of message.} property PostPart: TStringList read FPostPart; {:Stream with decoded form of budy part.} property DecodedLines: TMemoryStream read FDecodedLines; {:Show nested level in subpart tree. Value 0 means root part. 1 means subpart from this root. etc.} property SubLevel: integer read FSubLevel write FSubLevel; {:Specify maximum sublevel value for decomposing.} property MaxSubLevel: integer read FMaxSubLevel write FMaxSubLevel; {:When is @true, then this part maybe(!) have included some uuencoded binary data.} property AttachInside: boolean read FAttachInside; {:Here you can assign hook procedure for walking through all part and their subparts.} property OnWalkPart: THookWalkPart read FOnWalkPart write FOnWalkPart; {:Here you can specify maximum line length for encoding of MIME part. If line is longer, then is splitted by standard of MIME. Correct MIME mailers can de-split this line into original length.} property MaxLineLength: integer read FMaxLineLength Write FMaxLineLength; end; const MaxMimeType = 25; MimeType: array[0..MaxMimeType, 0..2] of string = ( ('AU', 'audio', 'basic'), ('AVI', 'video', 'x-msvideo'), ('BMP', 'image', 'BMP'), ('DOC', 'application', 'MSWord'), ('EPS', 'application', 'Postscript'), ('GIF', 'image', 'GIF'), ('JPEG', 'image', 'JPEG'), ('JPG', 'image', 'JPEG'), ('MID', 'audio', 'midi'), ('MOV', 'video', 'quicktime'), ('MPEG', 'video', 'MPEG'), ('MPG', 'video', 'MPEG'), ('MP2', 'audio', 'mpeg'), ('MP3', 'audio', 'mpeg'), ('PDF', 'application', 'PDF'), ('PNG', 'image', 'PNG'), ('PS', 'application', 'Postscript'), ('QT', 'video', 'quicktime'), ('RA', 'audio', 'x-realaudio'), ('RTF', 'application', 'RTF'), ('SND', 'audio', 'basic'), ('TIF', 'image', 'TIFF'), ('TIFF', 'image', 'TIFF'), ('WAV', 'audio', 'x-wav'), ('WPD', 'application', 'Wordperfect5.1'), ('ZIP', 'application', 'ZIP') ); {:Generates a unique boundary string.} function GenerateBoundary: string; implementation {==============================================================================} constructor TMIMEPart.Create; begin inherited Create; FOnWalkPart := nil; FLines := TStringList.Create; FPartBody := TStringList.Create; FHeaders := TStringList.Create; FPrePart := TStringList.Create; FPostPart := TStringList.Create; FDecodedLines := TMemoryStream.Create; FSubParts := TList.Create; FTargetCharset := GetCurCP; //was 'US-ASCII' before, but RFC-ignorant Outlook sometimes using default //system charset instead. FDefaultCharset := GetIDFromCP(GetCurCP); FMaxLineLength := 78; FSubLevel := 0; FMaxSubLevel := -1; FAttachInside := false; FConvertCharset := true; FForcedHTMLConvert := false; end; destructor TMIMEPart.Destroy; begin ClearSubParts; FSubParts.Free; FDecodedLines.Free; FPartBody.Free; FLines.Free; FHeaders.Free; FPrePart.Free; FPostPart.Free; inherited Destroy; end; {==============================================================================} procedure TMIMEPart.Clear; begin FPrimary := ''; FEncoding := ''; FCharset := ''; FPrimaryCode := MP_TEXT; FEncodingCode := ME_7BIT; FCharsetCode := ISO_8859_1; FTargetCharset := GetCurCP; FSecondary := ''; FDisposition := ''; FContentID := ''; FDescription := ''; FBoundary := ''; FFileName := ''; FAttachInside := False; FPartBody.Clear; FHeaders.Clear; FPrePart.Clear; FPostPart.Clear; FDecodedLines.Clear; FConvertCharset := true; FForcedHTMLConvert := false; ClearSubParts; end; {==============================================================================} procedure TMIMEPart.Assign(Value: TMimePart); begin Primary := Value.Primary; Encoding := Value.Encoding; Charset := Value.Charset; DefaultCharset := Value.DefaultCharset; PrimaryCode := Value.PrimaryCode; EncodingCode := Value.EncodingCode; CharsetCode := Value.CharsetCode; TargetCharset := Value.TargetCharset; Secondary := Value.Secondary; Description := Value.Description; Disposition := Value.Disposition; ContentID := Value.ContentID; Boundary := Value.Boundary; FileName := Value.FileName; Lines.Assign(Value.Lines); PartBody.Assign(Value.PartBody); Headers.Assign(Value.Headers); PrePart.Assign(Value.PrePart); PostPart.Assign(Value.PostPart); MaxLineLength := Value.MaxLineLength; FAttachInside := Value.AttachInside; FConvertCharset := Value.ConvertCharset; end; {==============================================================================} procedure TMIMEPart.AssignSubParts(Value: TMimePart); var n: integer; p: TMimePart; begin Assign(Value); for n := 0 to Value.GetSubPartCount - 1 do begin p := AddSubPart; p.AssignSubParts(Value.GetSubPart(n)); end; end; {==============================================================================} function TMIMEPart.GetSubPartCount: integer; begin Result := FSubParts.Count; end; {==============================================================================} function TMIMEPart.GetSubPart(index: integer): TMimePart; begin Result := nil; if Index < GetSubPartCount then Result := TMimePart(FSubParts[Index]); end; {==============================================================================} procedure TMIMEPart.DeleteSubPart(index: integer); begin if Index < GetSubPartCount then begin GetSubPart(Index).Free; FSubParts.Delete(Index); end; end; {==============================================================================} procedure TMIMEPart.ClearSubParts; var n: integer; begin for n := 0 to GetSubPartCount - 1 do TMimePart(FSubParts[n]).Free; FSubParts.Clear; end; {==============================================================================} function TMIMEPart.AddSubPart: TMimePart; begin Result := TMimePart.Create; Result.DefaultCharset := FDefaultCharset; FSubParts.Add(Result); Result.SubLevel := FSubLevel + 1; Result.MaxSubLevel := FMaxSubLevel; end; {==============================================================================} procedure TMIMEPart.DecomposeParts; var x: integer; s: string; Mime: TMimePart; procedure SkipEmpty; begin while FLines.Count > x do begin s := TrimRight(FLines[x]); if s <> '' then Break; Inc(x); end; end; begin FBinaryDecomposer := false; x := 0; Clear; //extract headers while FLines.Count > x do begin s := NormalizeHeader(FLines, x); if s = '' then Break; FHeaders.Add(s); end; DecodePartHeader; //extract prepart if FPrimaryCode = MP_MULTIPART then begin while FLines.Count > x do begin s := FLines[x]; Inc(x); if TrimRight(s) = '--' + FBoundary then Break; FPrePart.Add(s); if not FAttachInside then FAttachInside := IsUUcode(s); end; end; //extract body part if FPrimaryCode = MP_MULTIPART then begin repeat if CanSubPart then begin Mime := AddSubPart; while FLines.Count > x do begin s := FLines[x]; Inc(x); if Pos('--' + FBoundary, s) = 1 then Break; Mime.Lines.Add(s); end; Mime.DecomposeParts; end else begin s := FLines[x]; Inc(x); FPartBody.Add(s); end; if x >= FLines.Count then break; until s = '--' + FBoundary + '--'; end; if (FPrimaryCode = MP_MESSAGE) and CanSubPart then begin Mime := AddSubPart; SkipEmpty; while FLines.Count > x do begin s := TrimRight(FLines[x]); Inc(x); Mime.Lines.Add(s); end; Mime.DecomposeParts; end else begin while FLines.Count > x do begin s := FLines[x]; Inc(x); FPartBody.Add(s); if not FAttachInside then FAttachInside := IsUUcode(s); end; end; //extract postpart if FPrimaryCode = MP_MULTIPART then begin while FLines.Count > x do begin s := TrimRight(FLines[x]); Inc(x); FPostPart.Add(s); if not FAttachInside then FAttachInside := IsUUcode(s); end; end; end; procedure TMIMEPart.DecomposePartsBinary(AHeader:TStrings; AStx,AEtx:PANSIChar); var x: integer; s: ANSIString; Mime: TMimePart; BOP: PANSIChar; // Beginning of Part EOP: PANSIChar; // End of Part function ___HasUUCode(ALines:TStrings): boolean; var x: integer; begin Result := FALSE; for x:=0 to ALines.Count-1 do if IsUUcode(ALInes[x]) then begin Result := TRUE; exit; end; end; begin FBinaryDecomposer := true; Clear; // Parse passed headers (THTTPSend returns HTTP headers and body separately) x := 0; while x<AHeader.Count do begin s := NormalizeHeader(AHeader,x); if s = '' then Break; FHeaders.Add(s); end; DecodePartHeader; // Extract prepart if FPrimaryCode=MP_MULTIPART then begin CopyLinesFromStreamUntilBoundary(AStx,AEtx,FPrePart,FBoundary); FAttachInside := FAttachInside or ___HasUUCode(FPrePart); end; // Extract body part if FPrimaryCode=MP_MULTIPART then begin repeat if CanSubPart then begin Mime := AddSubPart; BOP := AStx; EOP := SearchForBoundary(AStx,AEtx,FBoundary); CopyLinesFromStreamUntilNullLine(BOP,EOP,Mime.Lines); Mime.DecomposePartsBinary(Mime.Lines,BOP,EOP); end else begin EOP := SearchForBoundary(AStx,AEtx,FBoundary); FPartBody.Add(BuildStringFromBuffer(AStx,EOP)); end; // BOP := MatchLastBoundary(EOP,AEtx,FBoundary); if Assigned(BOP) then begin AStx := BOP; Break; end; until FALSE; end; // Extract nested MIME message if (FPrimaryCode=MP_MESSAGE) and CanSubPart then begin Mime := AddSubPart; SkipNullLines(AStx,AEtx); CopyLinesFromStreamUntilNullLine(AStx,AEtx,Mime.Lines); Mime.DecomposePartsBinary(Mime.Lines,AStx,AEtx); end // Extract body of single part else begin FPartBody.Add(BuildStringFromBuffer(AStx,AEtx)); FAttachInside := FAttachInside or ___HasUUCode(FPartBody); end; // Extract postpart if FPrimaryCode=MP_MULTIPART then begin CopyLinesFromStreamUntilBoundary(AStx,AEtx,FPostPart,''); FAttachInside := FAttachInside or ___HasUUCode(FPostPart); end; end; {/pf} {==============================================================================} procedure TMIMEPart.ComposeParts; var n: integer; mime: TMimePart; s, t: string; d1, d2, d3: integer; x: integer; begin FLines.Clear; //add headers for n := 0 to FHeaders.Count -1 do begin s := FHeaders[n]; repeat if Length(s) < FMaxLineLength then begin t := s; s := ''; end else begin d1 := RPosEx('; ', s, FMaxLineLength); d2 := RPosEx(' ', s, FMaxLineLength); d3 := RPosEx(', ', s, FMaxLineLength); if (d1 <= 1) and (d2 <= 1) and (d3 <= 1) then begin x := Pos(' ', Copy(s, 2, Length(s) - 1)); if x < 1 then x := Length(s); end else if d1 > 0 then x := d1 else if d3 > 0 then x := d3 else x := d2 - 1; t := Copy(s, 1, x); Delete(s, 1, x); end; Flines.Add(t); until s = ''; end; Flines.Add(''); //add body //if multipart if FPrimaryCode = MP_MULTIPART then begin Flines.AddStrings(FPrePart); for n := 0 to GetSubPartCount - 1 do begin Flines.Add('--' + FBoundary); mime := GetSubPart(n); mime.ComposeParts; FLines.AddStrings(mime.Lines); end; Flines.Add('--' + FBoundary + '--'); Flines.AddStrings(FPostPart); end; //if message if FPrimaryCode = MP_MESSAGE then begin if GetSubPartCount > 0 then begin mime := GetSubPart(0); mime.ComposeParts; FLines.AddStrings(mime.Lines); end; end else //if normal part begin FLines.AddStrings(FPartBody); end; end; {==============================================================================} procedure TMIMEPart.DecodePart; var n: Integer; s, t, t2: string; b: Boolean; begin FDecodedLines.Clear; {pf} // The part decomposer passes data via TStringList which appends trailing line // break inherently. But in a case of native 8-bit data transferred withouth // encoding (default e.g. for HTTP protocol), the redundant line terminators // has to be removed if FBinaryDecomposer and (FPartBody.Count=1) then begin case FEncodingCode of ME_QUOTED_PRINTABLE: s := DecodeQuotedPrintable(FPartBody[0]); ME_BASE64: s := DecodeBase64(FPartBody[0]); ME_UU, ME_XX: begin s := ''; for n := 0 to FPartBody.Count - 1 do if FEncodingCode = ME_UU then s := s + DecodeUU(FPartBody[n]) else s := s + DecodeXX(FPartBody[n]); end; else s := FPartBody[0]; end; end else {/pf} case FEncodingCode of ME_QUOTED_PRINTABLE: s := DecodeQuotedPrintable(FPartBody.Text); ME_BASE64: s := DecodeBase64(FPartBody.Text); ME_UU, ME_XX: begin s := ''; for n := 0 to FPartBody.Count - 1 do if FEncodingCode = ME_UU then s := s + DecodeUU(FPartBody[n]) else s := s + DecodeXX(FPartBody[n]); end; else s := FPartBody.Text; end; if FConvertCharset and (FPrimaryCode = MP_TEXT) then if (not FForcedHTMLConvert) and (uppercase(FSecondary) = 'HTML') then begin b := false; t2 := uppercase(s); t := SeparateLeft(t2, '</HEAD>'); if length(t) <> length(s) then begin t := SeparateRight(t, '<HEAD>'); t := ReplaceString(t, '"', ''); t := ReplaceString(t, ' ', ''); b := Pos('HTTP-EQUIV=CONTENT-TYPE', t) > 0; end; //workaround for shitty M$ Outlook 11 which is placing this information //outside <head> section if not b then begin t := Copy(t2, 1, 2048); t := ReplaceString(t, '"', ''); t := ReplaceString(t, ' ', ''); b := Pos('HTTP-EQUIV=CONTENT-TYPE', t) > 0; end; if not b then s := CharsetConversion(s, FCharsetCode, FTargetCharset); end else s := CharsetConversion(s, FCharsetCode, FTargetCharset); WriteStrToStream(FDecodedLines, s); FDecodedLines.Seek(0, soFromBeginning); end; {==============================================================================} procedure TMIMEPart.DecodePartHeader; var n: integer; s, su, fn: string; st, st2: string; begin Primary := 'text'; FSecondary := 'plain'; FDescription := ''; Charset := FDefaultCharset; FFileName := ''; //was 7bit before, but this is more compatible with RFC-ignorant outlook Encoding := '8BIT'; FDisposition := ''; FContentID := ''; fn := ''; for n := 0 to FHeaders.Count - 1 do if FHeaders[n] <> '' then begin s := FHeaders[n]; su := UpperCase(s); if Pos('CONTENT-TYPE:', su) = 1 then begin st := Trim(SeparateRight(su, ':')); st2 := Trim(SeparateLeft(st, ';')); Primary := Trim(SeparateLeft(st2, '/')); FSecondary := Trim(SeparateRight(st2, '/')); if (FSecondary = Primary) and (Pos('/', st2) < 1) then FSecondary := ''; case FPrimaryCode of MP_TEXT: begin Charset := UpperCase(GetParameter(s, 'charset')); FFileName := GetParameter(s, 'name'); end; MP_MULTIPART: FBoundary := GetParameter(s, 'Boundary'); MP_MESSAGE: begin end; MP_BINARY: FFileName := GetParameter(s, 'name'); end; end; if Pos('CONTENT-TRANSFER-ENCODING:', su) = 1 then Encoding := Trim(SeparateRight(su, ':')); if Pos('CONTENT-DESCRIPTION:', su) = 1 then FDescription := Trim(SeparateRight(s, ':')); if Pos('CONTENT-DISPOSITION:', su) = 1 then begin FDisposition := SeparateRight(su, ':'); FDisposition := Trim(SeparateLeft(FDisposition, ';')); fn := GetParameter(s, 'FileName'); end; if Pos('CONTENT-ID:', su) = 1 then FContentID := Trim(SeparateRight(s, ':')); end; if fn <> '' then FFileName := fn; FFileName := InlineDecode(FFileName, FTargetCharset); FFileName := ExtractFileName(FFileName); end; {==============================================================================} procedure TMIMEPart.EncodePart; var l: TStringList; s, t: string; n, x: Integer; d1, d2: integer; begin if (FEncodingCode = ME_UU) or (FEncodingCode = ME_XX) then Encoding := 'base64'; l := TStringList.Create; FPartBody.Clear; FDecodedLines.Seek(0, soFromBeginning); try case FPrimaryCode of MP_MULTIPART, MP_MESSAGE: FPartBody.LoadFromStream(FDecodedLines); MP_TEXT, MP_BINARY: begin s := ReadStrFromStream(FDecodedLines, FDecodedLines.Size); if FConvertCharset and (FPrimaryCode = MP_TEXT) and (FEncodingCode <> ME_7BIT) then s := GetBOM(FCharSetCode) + CharsetConversion(s, FTargetCharset, FCharsetCode); if FEncodingCode = ME_BASE64 then begin x := 1; while x <= length(s) do begin t := copy(s, x, 54); x := x + length(t); t := EncodeBase64(t); FPartBody.Add(t); end; end else begin if FPrimaryCode = MP_BINARY then l.Add(s) else l.Text := s; for n := 0 to l.Count - 1 do begin s := l[n]; if FEncodingCode = ME_QUOTED_PRINTABLE then begin s := EncodeQuotedPrintable(s); repeat if Length(s) < FMaxLineLength then begin t := s; s := ''; end else begin d1 := RPosEx('=', s, FMaxLineLength); d2 := RPosEx(' ', s, FMaxLineLength); if (d1 = 0) and (d2 = 0) then x := FMaxLineLength else if d1 > d2 then x := d1 - 1 else x := d2 - 1; if x = 0 then x := FMaxLineLength; t := Copy(s, 1, x); Delete(s, 1, x); if s <> '' then t := t + '='; end; FPartBody.Add(t); until s = ''; end else FPartBody.Add(s); end; if (FPrimaryCode = MP_BINARY) and (FEncodingCode = ME_QUOTED_PRINTABLE) then FPartBody[FPartBody.Count - 1] := FPartBody[FPartBody.Count - 1] + '='; end; end; end; finally l.Free; end; end; {==============================================================================} procedure TMIMEPart.EncodePartHeader; var s: string; begin FHeaders.Clear; if FSecondary = '' then case FPrimaryCode of MP_TEXT: FSecondary := 'plain'; MP_MULTIPART: FSecondary := 'mixed'; MP_MESSAGE: FSecondary := 'rfc822'; MP_BINARY: FSecondary := 'octet-stream'; end; if FDescription <> '' then FHeaders.Insert(0, 'Content-Description: ' + FDescription); if FDisposition <> '' then begin s := ''; if FFileName <> '' then s := '; FileName=' + QuoteStr(InlineCodeEx(FileName, FTargetCharset), '"'); FHeaders.Insert(0, 'Content-Disposition: ' + LowerCase(FDisposition) + s); end; if FContentID <> '' then FHeaders.Insert(0, 'Content-ID: ' + FContentID); case FEncodingCode of ME_7BIT: s := '7bit'; ME_8BIT: s := '8bit'; ME_QUOTED_PRINTABLE: s := 'Quoted-printable'; ME_BASE64: s := 'Base64'; end; case FPrimaryCode of MP_TEXT, MP_BINARY: FHeaders.Insert(0, 'Content-Transfer-Encoding: ' + s); end; case FPrimaryCode of MP_TEXT: s := FPrimary + '/' + FSecondary + '; charset=' + GetIDfromCP(FCharsetCode); MP_MULTIPART: s := FPrimary + '/' + FSecondary + '; boundary="' + FBoundary + '"'; MP_MESSAGE, MP_BINARY: s := FPrimary + '/' + FSecondary; end; if FFileName <> '' then s := s + '; name=' + QuoteStr(InlineCodeEx(FileName, FTargetCharset), '"'); FHeaders.Insert(0, 'Content-type: ' + s); end; {==============================================================================} procedure TMIMEPart.MimeTypeFromExt(Value: string); var s: string; n: Integer; begin Primary := ''; FSecondary := ''; s := UpperCase(ExtractFileExt(Value)); if s = '' then s := UpperCase(Value); s := SeparateRight(s, '.'); for n := 0 to MaxMimeType do if MimeType[n, 0] = s then begin Primary := MimeType[n, 1]; FSecondary := MimeType[n, 2]; Break; end; if Primary = '' then Primary := 'application'; if FSecondary = '' then FSecondary := 'octet-stream'; end; {==============================================================================} procedure TMIMEPart.WalkPart; var n: integer; m: TMimepart; begin if assigned(OnWalkPart) then begin OnWalkPart(self); for n := 0 to GetSubPartCount - 1 do begin m := GetSubPart(n); m.OnWalkPart := OnWalkPart; m.WalkPart; end; end; end; {==============================================================================} procedure TMIMEPart.SetPrimary(Value: string); var s: string; begin FPrimary := Value; s := UpperCase(Value); FPrimaryCode := MP_BINARY; if Pos('TEXT', s) = 1 then FPrimaryCode := MP_TEXT; if Pos('MULTIPART', s) = 1 then FPrimaryCode := MP_MULTIPART; if Pos('MESSAGE', s) = 1 then FPrimaryCode := MP_MESSAGE; end; procedure TMIMEPart.SetEncoding(Value: string); var s: string; begin FEncoding := Value; s := UpperCase(Value); FEncodingCode := ME_7BIT; if Pos('8BIT', s) = 1 then FEncodingCode := ME_8BIT; if Pos('QUOTED-PRINTABLE', s) = 1 then FEncodingCode := ME_QUOTED_PRINTABLE; if Pos('BASE64', s) = 1 then FEncodingCode := ME_BASE64; if Pos('X-UU', s) = 1 then FEncodingCode := ME_UU; if Pos('X-XX', s) = 1 then FEncodingCode := ME_XX; end; procedure TMIMEPart.SetCharset(Value: string); begin if value <> '' then begin FCharset := Value; FCharsetCode := GetCPFromID(Value); end; end; function TMIMEPart.CanSubPart: boolean; begin Result := True; if FMaxSubLevel <> -1 then Result := FMaxSubLevel > FSubLevel; end; function TMIMEPart.IsUUcode(Value: string): boolean; begin Value := UpperCase(Value); Result := (pos('BEGIN ', Value) = 1) and (Trim(SeparateRight(Value, ' ')) <> ''); end; {==============================================================================} function GenerateBoundary: string; var x, y: Integer; begin y := GetTick; x := y; while TickDelta(y, x) = 0 do begin Sleep(1); x := GetTick; end; Randomize; y := Random(MaxInt); Result := IntToHex(x, 8) + '_' + IntToHex(y, 8) + '_Synapse_boundary'; end; end. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./dlerase.pas���������������������������������������������������������������������������������������0000644�0001750�0001750�00000025440�14576573021�013300� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit dlerase; {$mode objfpc} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, Grids, StrUtils, //AnsiMidStr header_utils; type { TFormDLErase } TFormDLErase = class(TForm) EraseAllButton: TButton; CancelButton: TButton; MessageLabel: TLabel; StringGrid1: TStringGrid; Timer1: TTimer; procedure CancelButtonClick(Sender: TObject); procedure EraseAllButtonClick(Sender: TObject); procedure FormClose(Sender: TObject; var CloseAction: TCloseAction); procedure FormShow(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { private declarations } procedure EraseChecker(); public { public declarations } end; function DLEGetMID(): Integer;//Get Datalogger EEPROM manufacturer name and part number ID function DLEGetCapacity(): LongInt;//Get Datalogger EEPROM manufacturer name and part number ID var FormDLErase: TFormDLErase; EraseElapsedTime: Integer = 0; DLEEraseTimeMin, DLEEraseTimeMax: Integer;//Datalogger EEPROM specified erase times DLEManufacturer, DLEPartNo: String;//Datalogger EEPROM Manufacturer and Part Number DLEStorageCapacity: LongInt; //Datalogger EEPROM Storage capacity of chip DLEStoredRecords: LongInt; //Number of records stored in the DL FLASH EEPROM implementation uses Unit1; { TFormDLErase } procedure TFormDLErase.FormShow(Sender: TObject); var pieces: TStringList; result: AnsiString; TriggerModeNumber: Integer; begin StringGrid1.Clean; DLEStoredRecords:=0; MessageLabel.Caption:='Warning! All recorded data in meter will be erased!'; //Set up parsing pieces := TStringList.Create; pieces.Delimiter := ','; pieces.StrictDelimiter := False; //Parse spaces also //Ensure that continuous logging mode has not been selected result:=sendget('Lmx'); TriggerModeNumber:=StrToInt(AnsiMidStr(result,4,1)); if ((TriggerModeNumber=1) or (TriggerModeNumber=2)) then //Warn user that erase cannot be done begin StringGrid1.Cells[0,0]:='Warning'; StringGrid1.Cells[1,0]:='Cannot erase database while in continuous trigger mode.'; StringGrid1.Cells[1,1]:='Select trigger mode = Off,'; StringGrid1.Cells[1,2]:=' or one of the "Every x on the hour" modes.'; EraseAllButton.Enabled:=False; end else begin EraseAllButton.Enabled:=True; EraseAllButton.Visible:=True; // Get number of stored records pieces.DelimitedText := sendget('L1x'); if (pieces.Count=2) then DLEStoredRecords:=StrToIntDef(pieces.Strings[1],0); //Get EEPROM chip Manufacturer and Device Identification if ((DLEGetCapacity()=0) and (DLEGetMID()=0)) then begin//get eeprom id was successful StringGrid1.Cells[0,0]:='Stored record(s)'; StringGrid1.Cells[1,0]:=Format('%d records',[DLEStoredRecords]); StringGrid1.Cells[0,1]:='Storage capacity'; StringGrid1.Cells[1,1]:=Format('%d records',[DLEStorageCapacity]); //writeln('DLEStorageCapacity:=',DLEStorageCapacity); // StringGrid1.Cells[0,2]:='Erase time'; if StrToInt(SelectedFeature)>=27 then StringGrid1.Cells[1,2]:=Format('%d to %d seconds',[DLEEraseTimeMin, DLEEraseTimeMax]) else StringGrid1.Cells[1,2]:=Format('%d seconds',[DLEEraseTimeMax]); end else//get eeprom id failed begin StringGrid1.Cells[0,0]:='Error'; StringGrid1.Cells[1,0]:=Format('No EEPROM found, %d parameters.',[DLEPartNo]); end; end; //End of checking for continuous trigger modes that prevent erasing if Assigned(pieces) then FreeAndNil(pieces); end; procedure TFormDLErase.EraseChecker(); var result:String; pieces: TStringList; begin if StrToInt(SelectedFeature)>=27 then begin pieces := TStringList.Create; pieces.Delimiter := ','; pieces.StrictDelimiter := False; //Parse spaces also //Check chip erase status after chip erase has been requested result:=SendGet('L6x');//Get status pieces.DelimitedText := result; pieces.StrictDelimiter := False; //Parse spaces also if EraseElapsedTime<=DLEEraseTimeMax then if pieces.Count = 2 then begin begin if (StrToIntDef(pieces.Strings[1],0) and 1 ) > 0 then //still busy begin StringGrid1.Cells[0,1]:='Progress'; StringGrid1.Cells[1,1]:=Format('Elapsed time of: %d out of %d to %d seconds.',[EraseElapsedTime,DLEEraseTimeMin, DLEEraseTimeMax]); end else begin Timer1.Enabled:=False; StringGrid1.Clean; StringGrid1.Cells[0,0]:='Status'; StringGrid1.Cells[1,0]:=Format('Finished erasing meter database in %d seconds.',[EraseElapsedTime]); MessageLabel.Caption:='Finished erasing meter database'; EraseAllButton.Visible:=False; EraseAllButton.Enabled:=True; CancelButton.Enabled:=True; end; end end // end of checking pieces count (reponse from L6x) else begin StringGrid1.Cells[0,1]:='Progress'; StringGrid1.Cells[1,1]:=Format('No reponse. Elapsed time of: %d out of %d to %d seconds.',[EraseElapsedTime,DLEEraseTimeMin, DLEEraseTimeMax]); end else begin StringGrid1.Clean; StringGrid1.Cells[0,0]:='Status'; StringGrid1.Cells[1,0]:=Format('Erase time too long: (%d seconds) has elapsed, try again.',[EraseElapsedTime]); Timer1.Enabled:=False; EraseAllButton.Enabled:=True; CancelButton.Enabled:=True; end; end else begin if EraseElapsedTime<DLEEraseTimeMax then begin StringGrid1.Cells[0,1]:='Progress'; StringGrid1.Cells[1,1]:=Format('Elapsed time of : %d out of %d seconds.',[EraseElapsedTime,DLEEraseTimeMax]); end else begin StringGrid1.Clean; StringGrid1.Cells[0,0]:='Status'; StringGrid1.Cells[1,0]:=Format('%d seconds elapsed, Meter database should be erased.',[EraseElapsedTime]); Timer1.Enabled:=False; EraseAllButton.Enabled:=True; CancelButton.Enabled:=True; end; end; if Assigned(pieces) then FreeAndNil(pieces); end; procedure TFormDLErase.Timer1Timer(Sender: TObject); begin inc(EraseElapsedTime); EraseChecker(); end; procedure TFormDLErase.CancelButtonClick(Sender: TObject); begin FormDLErase.Close; end; //Proceed to erasing the entire data logging EEPROM procedure TFormDLErase.EraseAllButtonClick(Sender: TObject); begin EraseAllButton.Enabled:=False; CancelButton.Enabled:=False; StringGrid1.Clean; StringGrid1.Cells[0,0]:='Status'; StringGrid1.Cells[1,0]:='Database erasure in the meter is being requested ...'; MessageLabel.Caption:='Erasing meter database'; StatusMessage('Erasing meter database.'); if StrToInt(SelectedFeature)>=27 then begin if SendGet('L2x') = 'L2' then //Initiate erasure and check response. begin StringGrid1.Clean; StringGrid1.Cells[0,0]:='Status'; StringGrid1.Cells[1,0]:='Database in the meter is being erased ...'; end else begin StringGrid1.Clean; StringGrid1.Cells[0,0]:='Status'; StringGrid1.Cells[1,0]:='Database erasure command not accepted, please try again.'; end; EraseElapsedTime:=0; //preset timer EraseChecker(); //The remainder of the erasure phase will be asynchronously performed by the timer. Timer1.Enabled:=True; end else //firmware too old to respond properly begin SendGet('L2x',False,1,False);//Initiate erasure, but don't wait for response StringGrid1.Clean; StringGrid1.Cells[0,0]:='Status'; StringGrid1.Cells[1,0]:='Old firmware prevents accurate status update, install feature 27 or greater.'; StringGrid1.Cells[0,1]:='Erase Status'; StringGrid1.Cells[1,1]:='Database in the meter is being erased ...'; EraseElapsedTime:=0; //preset timer EraseChecker(); //The remainder of the erasure phase will be asynchronously performed by the timer. Timer1.Enabled:=True; end; end; procedure TFormDLErase.FormClose(Sender: TObject; var CloseAction: TCloseAction ); begin //cannot remove "close window icon", just prevent it from being closed. //CloseAction:=caNone; end; function DLEGetCapacity(): Integer;//Get Datalogger EEPROM manufacturer name and part number ID var pieces: TStringList; begin //Set up parsing pieces := TStringList.Create; pieces.Delimiter := ','; pieces.StrictDelimiter := False; //Parse spaces also DLEGetCapacity:=0;//Default to no error DLEStorageCapacity:=0;;//Default to no capacity if StrToInt(SelectedFeature)>=27 then begin pieces.DelimitedText := SendGet('LZx'); //Available on in firmware version 27+ if (pieces.Count=2) then DLEStorageCapacity:=StrToIntDef(pieces.Strings[1],0) else begin DLEGetCapacity:=-1; //Indicate error. end; end else DLEStorageCapacity:=32768; //Old firmware only had 32768 record capactity. if Assigned(pieces) then FreeAndNil(pieces); end; function DLEGetMID(): Integer;//Get Datalogger EEPROM manufacturer name and part number ID var pieces: TStringList; begin //Set up parsing pieces := TStringList.Create; pieces.Delimiter := ','; pieces.StrictDelimiter := False; //Parse spaces also DLEGetMID:=0;//Assume no errors unless they are found pieces.DelimitedText := SendGet('L0x'); if (pieces.Count=3) then begin case StrToIntDef(pieces.Strings[1],0) of 239: begin DLEManufacturer:='Winbond Serial Flash'; case StrToIntDef(pieces.Strings[2],0) of 23: begin DLEPartNo:='W25Q128FV'; //DLEStorageCapacity:=Round((2**24) / bytesperrecord); DLEEraseTimeMin:=40; DLEEraseTimeMax:=200; end; 19: begin DLEPartNo:='W25Q80BV'; //DLEStorageCapacity:=Round((2**20) / bytesperrecord); DLEEraseTimeMin:=2; DLEEraseTimeMax:=6; end; else begin DLEPartNo:='Unknown'; DLEGetMID:=-1; end; end; end else begin DLEManufacturer:='Unknown'; DLEGetMID:=-1; end; end; end else begin DLEGetMID:=-1; end; if Assigned(pieces) then FreeAndNil(pieces); end; initialization {$I dlerase.lrs} end. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./pop3send.pas��������������������������������������������������������������������������������������0000644�0001750�0001750�00000036366�14576573021�013425� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{==============================================================================| | Project : Ararat Synapse | 002.006.002 | |==============================================================================| | Content: POP3 client | |==============================================================================| | Copyright (c)1999-2010, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2001-2010. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@abstract(POP3 protocol client) Used RFC: RFC-1734, RFC-1939, RFC-2195, RFC-2449, RFC-2595 } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} {$M+} {$IFDEF UNICODE} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$ENDIF} unit pop3send; interface uses SysUtils, Classes, blcksock, synautil, synacode; const cPop3Protocol = '110'; type {:The three types of possible authorization methods for "logging in" to a POP3 server.} TPOP3AuthType = (POP3AuthAll, POP3AuthLogin, POP3AuthAPOP); {:@abstract(Implementation of POP3 client protocol.) Note: Are you missing properties for setting Username and Password? Look to parent @link(TSynaClient) object! Are you missing properties for specify server address and port? Look to parent @link(TSynaClient) too!} TPOP3Send = class(TSynaClient) private FSock: TTCPBlockSocket; FResultCode: Integer; FResultString: string; FFullResult: TStringList; FStatCount: Integer; FStatSize: Integer; FListSize: Integer; FTimeStamp: string; FAuthType: TPOP3AuthType; FPOP3cap: TStringList; FAutoTLS: Boolean; FFullSSL: Boolean; function ReadResult(Full: Boolean): Integer; function Connect: Boolean; function AuthLogin: Boolean; function AuthApop: Boolean; public constructor Create; destructor Destroy; override; {:You can call any custom by this method. Call Command without trailing CRLF. If MultiLine parameter is @true, multilined response are expected. Result is @true on sucess.} function CustomCommand(const Command: string; MultiLine: Boolean): boolean; {:Call CAPA command for get POP3 server capabilites. note: not all servers support this command!} function Capability: Boolean; {:Connect to remote POP3 host. If all OK, result is @true.} function Login: Boolean; {:Disconnects from POP3 server.} function Logout: Boolean; {:Send RSET command. If all OK, result is @true.} function Reset: Boolean; {:Send NOOP command. If all OK, result is @true.} function NoOp: Boolean; {:Send STAT command and fill @link(StatCount) and @link(StatSize) property. If all OK, result is @true.} function Stat: Boolean; {:Send LIST command. If Value is 0, LIST is for all messages. After successful operation is listing in FullResult. If all OK, result is @True.} function List(Value: Integer): Boolean; {:Send RETR command. After successful operation dowloaded message in @link(FullResult). If all OK, result is @true.} function Retr(Value: Integer): Boolean; {:Send RETR command. After successful operation dowloaded message in @link(Stream). If all OK, result is @true.} function RetrStream(Value: Integer; Stream: TStream): Boolean; {:Send DELE command for delete specified message. If all OK, result is @true.} function Dele(Value: Integer): Boolean; {:Send TOP command. After successful operation dowloaded headers of message and maxlines count of message in @link(FullResult). If all OK, result is @true.} function Top(Value, Maxlines: Integer): Boolean; {:Send UIDL command. If Value is 0, UIDL is for all messages. After successful operation is listing in FullResult. If all OK, result is @True.} function Uidl(Value: Integer): Boolean; {:Call STLS command for upgrade connection to SSL/TLS mode.} function StartTLS: Boolean; {:Try to find given capabily in capabilty string returned from POP3 server by CAPA command.} function FindCap(const Value: string): string; published {:Result code of last POP3 operation. 0 - error, 1 - OK.} property ResultCode: Integer read FResultCode; {:Result string of last POP3 operation.} property ResultString: string read FResultString; {:Stringlist with full lines returned as result of POP3 operation. I.e. if operation is LIST, this property is filled by list of messages. If operation is RETR, this property have downloaded message.} property FullResult: TStringList read FFullResult; {:After STAT command is there count of messages in inbox.} property StatCount: Integer read FStatCount; {:After STAT command is there size of all messages in inbox.} property StatSize: Integer read FStatSize; {:After LIST 0 command size of all messages on server, After LIST x size of message x on server} property ListSize: Integer read FListSize; {:If server support this, after comnnect is in this property timestamp of remote server.} property TimeStamp: string read FTimeStamp; {:Type of authorisation for login to POP3 server. Dafault is autodetect one of possible authorisation. Autodetect do this: If remote POP3 server support APOP, try login by APOP method. If APOP is not supported, or if APOP login failed, try classic USER+PASS login method.} property AuthType: TPOP3AuthType read FAuthType Write FAuthType; {:If is set to @true, then upgrade to SSL/TLS mode if remote server support it.} property AutoTLS: Boolean read FAutoTLS Write FAutoTLS; {:SSL/TLS mode is used from first contact to server. Servers with full SSL/TLS mode usualy using non-standard TCP port!} property FullSSL: Boolean read FFullSSL Write FFullSSL; {:Socket object used for TCP/IP operation. Good for seting OnStatus hook, etc.} property Sock: TTCPBlockSocket read FSock; end; implementation constructor TPOP3Send.Create; begin inherited Create; FFullResult := TStringList.Create; FPOP3cap := TStringList.Create; FSock := TTCPBlockSocket.Create; FSock.Owner := self; FSock.ConvertLineEnd := true; FTimeout := 60000; FTargetPort := cPop3Protocol; FStatCount := 0; FStatSize := 0; FListSize := 0; FAuthType := POP3AuthAll; FAutoTLS := False; FFullSSL := False; end; destructor TPOP3Send.Destroy; begin FSock.Free; FPOP3cap.Free; FullResult.Free; inherited Destroy; end; function TPOP3Send.ReadResult(Full: Boolean): Integer; var s: AnsiString; begin Result := 0; FFullResult.Clear; s := FSock.RecvString(FTimeout); if Pos('+OK', s) = 1 then Result := 1; FResultString := s; if Full and (Result = 1) then repeat s := FSock.RecvString(FTimeout); if s = '.' then Break; if s <> '' then if s[1] = '.' then Delete(s, 1, 1); FFullResult.Add(s); until FSock.LastError <> 0; if not Full and (Result = 1) then FFullResult.Add(SeparateRight(FResultString, ' ')); if FSock.LastError <> 0 then Result := 0; FResultCode := Result; end; function TPOP3Send.CustomCommand(const Command: string; MultiLine: Boolean): boolean; begin FSock.SendString(Command + CRLF); Result := ReadResult(MultiLine) <> 0; end; function TPOP3Send.AuthLogin: Boolean; begin Result := False; if not CustomCommand('USER ' + FUserName, False) then exit; Result := CustomCommand('PASS ' + FPassword, False) end; function TPOP3Send.AuthAPOP: Boolean; var s: string; begin s := StrToHex(MD5(FTimeStamp + FPassWord)); Result := CustomCommand('APOP ' + FUserName + ' ' + s, False); end; function TPOP3Send.Connect: Boolean; begin // Do not call this function! It is calling by LOGIN method! FStatCount := 0; FStatSize := 0; FSock.CloseSocket; FSock.LineBuffer := ''; FSock.Bind(FIPInterface, cAnyPort); if FSock.LastError = 0 then FSock.Connect(FTargetHost, FTargetPort); if FSock.LastError = 0 then if FFullSSL then FSock.SSLDoConnect; Result := FSock.LastError = 0; end; function TPOP3Send.Capability: Boolean; begin FPOP3cap.Clear; Result := CustomCommand('CAPA', True); if Result then FPOP3cap.AddStrings(FFullResult); end; function TPOP3Send.Login: Boolean; var s, s1: string; begin Result := False; FTimeStamp := ''; if not Connect then Exit; if ReadResult(False) <> 1 then Exit; s := SeparateRight(FResultString, '<'); if s <> FResultString then begin s1 := Trim(SeparateLeft(s, '>')); if s1 <> s then FTimeStamp := '<' + s1 + '>'; end; Result := False; if Capability then if FAutoTLS and (Findcap('STLS') <> '') then if StartTLS then Capability else begin Result := False; Exit; end; if (FTimeStamp <> '') and not (FAuthType = POP3AuthLogin) then begin Result := AuthApop; if not Result then begin if not Connect then Exit; if ReadResult(False) <> 1 then Exit; end; end; if not Result and not (FAuthType = POP3AuthAPOP) then Result := AuthLogin; end; function TPOP3Send.Logout: Boolean; begin Result := CustomCommand('QUIT', False); FSock.CloseSocket; end; function TPOP3Send.Reset: Boolean; begin Result := CustomCommand('RSET', False); end; function TPOP3Send.NoOp: Boolean; begin Result := CustomCommand('NOOP', False); end; function TPOP3Send.Stat: Boolean; var s: string; begin Result := CustomCommand('STAT', False); if Result then begin s := SeparateRight(ResultString, '+OK '); FStatCount := StrToIntDef(Trim(SeparateLeft(s, ' ')), 0); FStatSize := StrToIntDef(Trim(SeparateRight(s, ' ')), 0); end; end; function TPOP3Send.List(Value: Integer): Boolean; var s: string; n: integer; begin if Value = 0 then s := 'LIST' else s := 'LIST ' + IntToStr(Value); Result := CustomCommand(s, Value = 0); FListSize := 0; if Result then if Value <> 0 then begin s := SeparateRight(ResultString, '+OK '); FListSize := StrToIntDef(SeparateLeft(SeparateRight(s, ' '), ' '), 0); end else for n := 0 to FFullResult.Count - 1 do FListSize := FListSize + StrToIntDef(SeparateLeft(SeparateRight(s, ' '), ' '), 0); end; function TPOP3Send.Retr(Value: Integer): Boolean; begin Result := CustomCommand('RETR ' + IntToStr(Value), True); end; //based on code by Miha Vrhovnik function TPOP3Send.RetrStream(Value: Integer; Stream: TStream): Boolean; var s: string; begin Result := False; FFullResult.Clear; Stream.Size := 0; FSock.SendString('RETR ' + IntToStr(Value) + CRLF); s := FSock.RecvString(FTimeout); if Pos('+OK', s) = 1 then Result := True; FResultString := s; if Result then begin repeat s := FSock.RecvString(FTimeout); if s = '.' then Break; if s <> '' then begin if s[1] = '.' then Delete(s, 1, 1); end; WriteStrToStream(Stream, s); WriteStrToStream(Stream, CRLF); until FSock.LastError <> 0; end; if Result then FResultCode := 1 else FResultCode := 0; end; function TPOP3Send.Dele(Value: Integer): Boolean; begin Result := CustomCommand('DELE ' + IntToStr(Value), False); end; function TPOP3Send.Top(Value, Maxlines: Integer): Boolean; begin Result := CustomCommand('TOP ' + IntToStr(Value) + ' ' + IntToStr(Maxlines), True); end; function TPOP3Send.Uidl(Value: Integer): Boolean; var s: string; begin if Value = 0 then s := 'UIDL' else s := 'UIDL ' + IntToStr(Value); Result := CustomCommand(s, Value = 0); end; function TPOP3Send.StartTLS: Boolean; begin Result := False; if CustomCommand('STLS', False) then begin Fsock.SSLDoConnect; Result := FSock.LastError = 0; end; end; function TPOP3Send.FindCap(const Value: string): string; var n: Integer; s: string; begin s := UpperCase(Value); Result := ''; for n := 0 to FPOP3cap.Count - 1 do if Pos(s, UpperCase(FPOP3cap[n])) = 1 then begin Result := FPOP3cap[n]; Break; end; end; end. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./comterm.lfm���������������������������������������������������������������������������������������0000644�0001750�0001750�00000004327�14576573021�013323� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object ComTermForm: TComTermForm Left = 1673 Height = 250 Top = 38 Width = 500 Caption = 'Communications Terminal' ClientHeight = 250 ClientWidth = 500 Constraints.MinHeight = 250 Constraints.MinWidth = 500 Position = poDesktopCenter LCLVersion = '1.6.4.0' object InputEdit: TEdit AnchorSideLeft.Control = Label1 AnchorSideLeft.Side = asrBottom AnchorSideRight.Control = ClearButton AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 42 Height = 25 Top = 223 Width = 376 Anchors = [akLeft, akRight, akBottom] BorderSpacing.Left = 4 BorderSpacing.Right = 5 BorderSpacing.Bottom = 2 OnKeyDown = InputEditKeyDown TabOrder = 0 end object InputMemo: TMemo AnchorSideLeft.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = InputEdit Left = 2 Height = 97 Hint = 'Sent' Top = 124 Width = 496 Anchors = [akLeft, akRight, akBottom] BorderSpacing.Left = 2 BorderSpacing.Right = 2 BorderSpacing.Bottom = 2 ScrollBars = ssAutoBoth TabOrder = 1 end object OutputMemo: TMemo AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = InputMemo Left = 2 Height = 120 Hint = 'Received' Top = 2 Width = 496 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Around = 2 ScrollBars = ssAutoBoth TabOrder = 2 end object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = InputEdit AnchorSideTop.Side = asrCenter Left = 5 Height = 15 Top = 228 Width = 33 BorderSpacing.Left = 5 Caption = 'Input:' ParentColor = False end object ClearButton: TButton AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 423 Height = 25 Top = 223 Width = 75 Anchors = [akRight, akBottom] BorderSpacing.Right = 2 BorderSpacing.Bottom = 2 Caption = 'Clear' OnClick = ClearButtonClick TabOrder = 3 end end ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./gnome-globe.png�����������������������������������������������������������������������������������0000644�0001750�0001750�00000036304�14576573022�014057� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR�����������(zTXtRaw profile type exif��xڥY7s߱ /x^ dS"Ev*C4⿖51[ΖbwK~~Zݯ /.TZ_wyY߅wwesS}>Fawߟ[wp'3iC.D!g  o?gMʯܿnܭ迷?9kuWα~_·7?V_Y933KIL~Ѕah~'.QƯJTOBaikγ+E\wu~z⛟%Be/'xmv{ʝq1G_?9JlV{-6OƎ-j LZeHcaǻH/$woL|}9.q`\`5s,de:C!b>2[[}lx0c'Rȡ7-t6+DXB)JC9K(J4%\J^C5\K| fjV[ksΕ;Gq$3(6$|fiYfmWXʫmBiǝvev? ēN>Nk߶k5wJo,vWK$Mtx^{fkgy"ygiHާ~ڹ׾79woDCB- d?ߵEvjLafgĐOF1:(g.ks99%.̊:t%a§ʈEl{m]~O8 gXR[c\(yͬ']'@٢ųe)"6L^�q=[še؜3=1Ýazމ ϵK~IynH۹ csfH/RTwl^g70Bźc1w j*Z]ɟV~>DX2{ 2܌jgJdro3l(Mk)݋Xvgy1P؏ژA}.v FsMwcBlL >R/wm\Zcrh-TX%(:+t�B()1vtT@ؘЪiގKuwg$Vg3=D<Q:c ,*m~_-6uMcvrl$Ͷ@W63R٭IBq[Ruca7B'"gxbi};]OO >X]YS]^JT@[g8N.2麆veސl%1 a2n+Ci� ١ZHNyIH!&G2)[� zv2`p;Е)e|H!&A&®dI1bG {~' c l~;`-~ i>Q�`'B7e;f;%9kFqk>_Fn0beM4Zw5KyS>_K˥ wGuB"qQVyk.-R%);FxRQ-w>,8%>4֍!מ+nzj ž@_F0T{Pg`a{TCH`9\hRXѵV_҈iraxO=;XNsM! r\`buce=@}̵[/\<*|].K.0ӈbF?+2$J[AO$~Vt 4Xń">Bɕ-W =|ܩ2r[�)ھazj@SrdzXX&[a�$ j>τxTY˟D>ul唘rY}Xyb]F7%xu 42++NGkiaH(b_GY8 C߭�:dA�څ+5p@ѱ;Mʆ@T ldfKdfsDQ/:xqd|a\ ):NCb%"MWfP4 ¤փN7)y&lBoA/ftFK/dPqɌ=(.gS͈MI ltrw鶽 (r2Z Zm'l1V:jڀPFò5{!ԚxKKDc$XM�Qy02�b蹌 卙"B$T#Pز2ٚ >f +%pvHT|ln 6%z��~M�!ed�h3:qCgu@Ojix- Tp- ^`+sYӢ]D9 N@)H: s֮-7lrf-%e0f�;v:jJr0® iB1] xM%RAM;%k\�Z[> Ic4j *Wvż=Q:I?^5hƱF%o]vj,T?60aܐ$qǣ|fX !kQ7E.Ol|<ft~@H0%i}HpsXQ,XlXE<Sc'kA0_S5քlxD2m XJCJId\ ˄qەYvgB(*KUϽeG٠~!{Ϭ"$!Yeg(`h1l4Rn h@kDu!s!dFL%י ZHh%`cdCUn2 !/ m#[fSH>#Se:e'<6ćK (ԡ9dPKxr HjB`{g. 3.vTglγv |?,x+9=>Xc 9ኹ1RcZׂ> k_LyaFܙ:l{oةDLBDR &e y&Fh n=8BPZF2oZuZ[fQN\ f#bfQqq=ViAkcp?O@~Ǚe&Fml-")6qec7:OЕ~րa$39N91pxi.Yfkݭj+B<xdɎj0`QH "!?\I˰'4(֒Lal 1 0p㖋O-]ֺДufk,6ZH/gXRN5^Gg)rW-LGUE֑»_G 6-l| qJlpNT5@oWzQґ#`'ygn}� 8Ty |Cրdy%\Sͳm<@rSlb(`oM MH%s_"K<Ƅ;C*s:N'?C.PelpmĘI7ڎ Q�8EuO`OIPlnDn %хΠnlM$4F * bhzI.YY<RPP2@T|n-nߔ(PbE$=:؈ył: ֜H7Dek:,a`$b&@+HjU[Mk nWLlxC[j0˝D],`+ ZО !dղSNf7^H\Vy=Q!H�! 'WWxT1CN&;$|׈"unB {;j "5�/ND/ Х Y (^MOmeX"KE![Dn.,ŘATf:{0Zٺɪ=R$*Q|.T,J"nA]U tՑoa,ơ^kUb󞡐MÑBGjַYdŎXWRqUhG9)`aLk 'nTB#ljHg.n q#6mJ/X%gPhg.N ``I]AY2(rtJ/!qrX,G6 3Kr߇_s^^}/(-2m}`+p֛ k|r 31~!"Q>zkxu�z;l|jEבN$K4YT$d'BWp6vߔ+sY.[x1۸X3EF&j~;2!Ԁ w nYF2VE>A(4bGx[A6N";%C#50TPv쾜PT�EZ_-iWCB - bSr;HF qPt#orPE"$_>0,@OLB9fQ uQ1P{-_,dUA`J'I:`X8/v GHuklR/yaPdL+\q Ob捻=¥* 9Dw�:h /"RG29!1@�VzwuNߑ;Mz0J]s+RyRKnL' ODEaʈtJ6D&jd�r$ kQqg0'^}PpxE: S)7]hOIUy8E YV&Sqp-ٺ/3ˈ맹aKqQ@N>Zx/y ,qX!^`*ӇPh,Fǚ*aRlk?,{NPOMdqt-Vʁ:YFUy`d,'0'@-PuxaLݺ{BHx#( ο ,m? iʤ@9 WG< Ҡ-{5`+DϮج�iM`J_/˴TH @3!Ujt/׊IS:|M$ʬ!tU9Y`'fK%7id#eF1R-#zMhn01WWӬ3o-E96q&BnUcdjP3%V!rTC27oo 'SB,3 pG-7<eʤ7*H|GZ R'x;31<\W+7j r$uQCr~@DYΣAA8tfQքeG^peXɽi 5L7ixCM JP&NDKY9ZF u[5Iy5')"Dۀ#SD z#l; P,@F AˬBh7o]biӐyAϷ`Od/ 7$ّSc 3Dur5VTMTT.2n1`Chq9% R rI<t!G*p #0J�tuT*:T,}"{T, :<:*DAyp*\0GZ@k4VRa l -Kd˰(%U#ΧS;1@A껝aԧ2E|2):TrQٜ!ڀ ]#l fBZ[ L uV55+�m}F5TĢ9"Ɓ%M ^jnj(͓u6�9[) }.SЩH*w[d>n6V:C:! asD"RTW T``3ݖtCub +يJBWup;qݿ~ΕVl?A9"5n'p@vu"9QFYx28JcIi$.J{jу1!ڪ3FHe, eVEE&-"79XXҡdcZFg ÔRU�ƪC!t*pAr"F#+F0*e4jeYʢ&Hv>xWI' hWoze5n:2j(3f? 0ZT3c [L v4VӃeO5(ĠQ(=g |F/wOI++-j1Ng+@\MQ ~s@ (Y歞ue +nIP@лr+Θ3UgguO1]`d{}>KY#%rۓ[$Z;EG5W8:.KkbA,P҆�Z8w2Ěw"|>Z_ċ85!0WXx u*@B51'q(|ǽEǢjpȿl$[my5SjZRJ4",g9'=g|)Y]82Ejj M$v ?Q$,fhST&3|t0Ry-g.XBf#4"Xc;7oXMn�u)Q3ʃ8= ݩÊ:5*`B9Rm [)@[X&NAs2�:Wv0s?<-Qh|crz2եIØ.,&Q|/&#ՒCVCdR]_~tnFct,H\>0 "Oծci5Z'umtMrE 1R.~T;&ljwaz8λ}[#y) DݪUBUCwz.IcӄU�=I<8C ޙRTوY^=ՂJ[Y|q%D%mul` k^" 3$~|:{SlWC'1[pȥzwe>)S+U28Yy=6=cUtֱ[DPc5SˀPA f(kHMt Ԗ31 `B$1{#,a?G#OvWDcGyj Ծ!;SMHq MT0jq@X *E :>=nLOmtGVtVޟ< J9QX) a{ wj�< d_kTJr˹ $W8am4=+p1 2V=rUEuU8U]2\0eԩyTShB .>6š.FAM7L$l8ͫ4k[xGѪX3<lOK1 jY Ja`dj0MUsr4%֭ㄤ huV[wE ;D|@oKsP` $J;._FOwKQX8{R6z+�m9mƧ�}bLn-ž(Eze WtpKX9񌔂.gi,s6>z@\mnU#ؖݪ<Ύ}g{dPNb,{\ 5{T;"KuE#"wl>ֹ+<FRkH,cfNNJaFjWB3-0:6fa4-誙ӶvS{UB tN uq* uT h5ĉ =[sVxwf^ߙRck!n#-h!ME@C^ٖ֤B7`S}XCHFXtoe_Pm5 P+nANmUP{|cd71UTtC!!N[1f[\ڍ :F`fcU7D+j!jUxSrC xUڠʨ<׸߹G竐�4SW0_5&ڦKc(To$ !­7upV]7CZ-aAbՍ 6VkԼ*9W57BK_lLλ1^l eme1ݠ�[~~v͊V+T6 ssqІLLTM'5z;GEVC I :/Pn j3D(rJ/e65u}a@'Kz: L!p@5*1K.K, $֜ iW]@P~; }̎WɬK1*;q%vn{"Ԟ!uv� <Ik56#�jENXG+%MFN*/#-&AϢqNbb'A}0XO}{؉;5rͩ>]08,t-\U#! T|�uu jTR6#&`A6:tP1;ܯz@EmAmҵD>n`,Z;̔FɗqOp7kȐn2gf\4txԔ PLվ%IXH I?&K)F\-LǶvǁ^%,uY~u (1uPGY' ˖gzj]}*n}b~cb {:‚EjG&5\2_KOC bl&tﻠ }4jłęd5Xuo,l膎_D6yuyw#py/Yq{3j@c`PӮ3Va` .ڇ?\bU;Z<V`>>4CZ$ ]uh +v, %7f?g*]$*:t$VI:C8R> JE(.2;@$Fm?BSOdKT\C\vpG'N5Aۨ�a"n7o] a|A($JR QeSt%#7RF^wmQ6te0y~V `xG'hWH2t\Q5}ŋ/zzۡ6l=չxGg<1[^zLC�3Z(Ma@&1�n=tౌM.NMn߃x֚Ok^{}17C]Xϔdy=zt1�4h%}2N%0 ,17woGߚT0̠ ֳ>TFw%6YONffx>*|$ 9E]^V3zre6|+֧)7LICLz\*J铀?9U~U-+5}@*I(dπ!Uf$ya~upU U'&\=/GZb,s4%Z)'FB>zrX՟l|iyr_:gN22FmS:ϷSrfLGݲIgKT<~iVHΛru/C}Nף:ũ,<w[z$E͈ɩ :6q? I?ym<sx 06P]{pz$w*nNT| )5>O�KE6ô^W #dL7Ɇҋ(Ǎlo|*_6)jTZ ykJ&D6<~hȋw]ŦE|І@E=xբ:ג^ Ql"0U_a,NOf4M˾[ *9kA:>'*U%]I]~_?'*=yJ(ٮ(*rݕDLjɤ4西y @^cpV8o@'Kx AOT3x)"7z7}WDc(H =I鱄R_h׻6:y*/is(PgZ@wv�^ᶇ%|=;UO6/&$��iCCPICC profile��x}=H@_[T␡:Yq*BZu0 4$).kŪ "%/)=Ff8jN&lnU"0L}NS_.γ9z�@<t" ޴tQVs1.Hu7E<3jdQbrOU|egRc{F2i#E,A�5Q8)&Ҵ9~\2`X@*$5 nR$tu> x�f>Iл \\5ytɐ)@_(�gM9q�d pp){ݡ=^r=K�� iTXtXML:com.adobe.xmp�����<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:GIMP="http://www.gimp.org/xmp/" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:DocumentID="gimp:docid:gimp:8aa70051-8689-4398-b27f-9cd5fa7550e9" xmpMM:InstanceID="xmp.iid:b5313c4d-b1a2-44d8-ba25-9559bf1a50b1" xmpMM:OriginalDocumentID="xmp.did:3a23f2b6-f243-4825-968f-1ac259454a11" dc:Format="image/png" GIMP:API="2.0" GIMP:Platform="Linux" GIMP:TimeStamp="1633717559048388" GIMP:Version="2.10.28" tiff:Orientation="1" xmp:CreatorTool="GIMP 2.10"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="saved" stEvt:changed="/" stEvt:instanceID="xmp.iid:7c404a57-6f3f-4fb4-9717-4509bd1aed87" stEvt:softwareAgent="Gimp 2.10 (Linux)" stEvt:when="2021-10-08T14:25:59-04:00"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="w"?> H���bKGD������ pHYs�� �� oy���tIME ;0'��rIDAT8uYl\ww{g6'㽩fi$�**Z BAKE'!B+@>Um8jDMbԉLf<=۽CB<#Oߑ?7KRc|R ru/t??׭ǞUUĩ:"jo"@ΕY˗'eK7N aO+ 3';p'&'4: ,x!Gj!$Y9kPT,dNnxB) GFy{_ VQp*dK-*&}]ljfwz=_2{J{' ?:%2D4h[۶#ȊFjL8}?5HK5_;Oy?.k@zg[/a]r<: d $Dj d5}ᴒ<?}$IHLd)ҙAHHԚ6fm*W?&t Y<޸Ҙ{FF>~Pw BRG$FSv<\']d4P]9\\LPǏjGU-~fd0&NjzSt<ϣTkRkXtT&w v,ö�SYv~1USÑP/fI$tUiPo9Ȳx5>{!BoQoԨT*X~`J,`LY/uIp\zf=<5>Bp<wV %IY MޜD[ dsd7 ַ *f5]h^cXnh,wM}q>)}TADGΈ3+rRw4~eZ%$o}ziT* D>+a5`eQNިEv W4Un}gds% ;M/,sfdIrg.8ۢ+"YAGvdr[ &%YjL\0v0冃9/z ?T?@mضřkܰhk*nmz(¦d6LRu+ٙ&Q/&<jW[V x;7ʨ$D azv>EJiyN tt3c>=o8@r=UFa舰chѝ 11:Jo4'f~t7ڀXюO/% yFfˢtbQb(x;ggzkX\~rC Q lG J݇'GIe/A4|Zk 7R9+[2��hNwm>/=? D`(XMө-scQ=gUR@J_șe){K����IENDB`����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./splash.pas����������������������������������������������������������������������������������������0000644�0001750�0001750�00000001404�14576573021�013145� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit splash; {$mode objfpc} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls; type { TfrmSplash } TfrmSplash = class(TForm) Image2: TImage; Label1: TStaticText; StaticText1: TStaticText; Timer1: TTimer; procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { private declarations } public { public declarations } end; var frmSplash: TfrmSplash; x:Integer; implementation { TfrmSplash } procedure TfrmSplash.Timer1Timer(Sender: TObject); begin if x < 12 then x:= x+1 else frmSplash.Close; end; procedure TfrmSplash.FormCreate(Sender: TObject); begin x:= 0 end; initialization {$I splash.lrs} end. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./filtersunmoonunit.lfm�����������������������������������������������������������������������������0000644�0001750�0001750�00000033005�14576573021�015454� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object FilterSunMoonForm: TFilterSunMoonForm Left = 2075 Height = 786 Top = 119 Width = 1490 Caption = 'Filter Sun-Moon-MW-Clouds.csv' ClientHeight = 786 ClientWidth = 1490 OnCreate = FormCreate OnShow = FormShow Position = poScreenCenter LCLVersion = '2.2.6.0' object SourceFileEdit: TEdit AnchorSideLeft.Control = SourceFileButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SourceFileButton AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 38 Height = 30 Hint = ' Input file.' Top = 4 Width = 1448 Anchors = [akTop, akLeft, akRight] AutoSize = False BorderSpacing.Left = 4 BorderSpacing.Right = 4 TabOrder = 0 end object SourceFileButton: TBitBtn AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner AnchorSideRight.Control = SourceFileEdit Left = 4 Height = 30 Hint = 'Select input file.' Top = 4 Width = 30 BorderSpacing.Left = 4 BorderSpacing.Top = 4 Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000534D46A0A465 34FFA46534FFA46534FFA46534FFA46534FFA46534FFA46534FFA46534FFA465 34FFA46534FFA46534FFA46534FFA46534FFA46635E9A6673639484848E09786 78FFA5693AFFBA8350FFBA8350FFBA8350FFBA8350FFBA8350FFBA8350FFBA83 50FFBA8350FFBA8350FFBA8350FFBA8350FFB27845FFA56636C0494949E09999 99FFA56839FFD3A67EFFD2A378FFD2A378FFD2A378FFD2A378FFD2A378FFD2A3 78FFD2A378FFD2A378FFD2A378FFD3A479FFD1A57AFFA56635F5484848E29B9B 9BFFA46738FFD5AB85FFCE9C6EFFCE9C6DFFCE9C6DFFCE9C6DFFCE9C6DFFCE9C 6DFFCE9C6DFFCE9C6DFFCE9C6DFFCF9E70FFD5AB84FFA56635F84C4C4CE4A1A1 A1FFA56838FFE2C4A9FFD5A881FFD3A47AFFD3A47AFFD3A47AFFD3A47AFFD3A4 7AFFD3A47AFFD3A47AFFD3A47AFFD4A77EFFDDBA9CFFA56635F9515151E5A4A5 A5FFA56737FFE9D2BEFFDDBA9BFFDDB999FFDCB695FFDBB592FFDAB390FFD9B2 8EFFD8AE89FFD7AD87FFD7AD87FFD8B08BFFE5C9B1FFA56635FA565656E7A9A9 A9FFA46636FFECD8C6FFDDBA99FFDDBA99FFDDBA99FFDDBA99FFDDBA99FFDDBA 99FFDDBA99FFDCB795FFDAB28EFFD9B08BFFE7CFB8FFA56635FB5B5B5BE9AEAE AEFFA56736FFEBD7C4FFDCB794FFDCB794FFDCB794FFDCB794FFDCB794FFDCB7 94FFDCB794FFDCB794FFDCB794FFDAB491FFE6CDB6FFA56635FC5F5F5FE9B3B3 B3FFA46635FFEAD5C1FFDBB491FFDBB491FFDBB591FFDBB591FFDBB592FFDBB5 92FFDBB592FFDBB592FFDBB592FFDCB896FFE7CFB7FFA46634FD656565EBB7B7 B7FFA56635FFEAD3BEFFEAD4BFFFEAD4BFFFEAD4BEFFEAD4BEFFEAD4BEFFE9D3 BEFFE9D3BEFFE9D3BEFFE9D3BEFFE9D3BEFFE8CFB8FFA56534FE6A6A6AECBDBD BDFFA66D41FFA56636FFA56636FFA56636FFA56636FFA56636FFA46635FFA466 35FFA46635FFA46635FFA46534FFA46534FFA46534FFA66837E06E6E6EEEC0C1 C1FFACACACFFAAAAAAFFA7A7A7FFA5A5A5FFA4A4A4FFA4A4A4FFACACACFFB6B6 B6FFB9B9B9FFBBBBBBFFA2A2A2FF6A6A6AA94747470047474700737373EFC5C5 C5FFB0B0B0FFADADADFFABABABFFAAAAAAFFACACACFF8D8D8DF58D8D8DF28C8C 8CF28C8C8CF28C8C8CF2808080F66C6C6C844747470047474700787878F0C9C9 C9FFC7C7C7FFC5C5C5FFC4C4C4FFC4C4C4FFB4B4B4FF747474CA727272387272 7238727272386D6D6D386F6F6F355555550347474700474747007A7A7A9F7979 79EC797979EC797979EC797979EC797979EC797979E278787835474747004747 4700474747004747470047474700474747004747470047474700474747004747 4700474747004747470047474700474747004747470047474700474747004747 4700474747004747470047474700474747004747470047474700 } OnClick = SourceFileButtonClick TabOrder = 1 end object Button1: TButton AnchorSideTop.Control = ParametersGroupBox AnchorSideTop.Side = asrBottom AnchorSideRight.Control = ParametersGroupBox AnchorSideRight.Side = asrBottom Left = 268 Height = 30 Top = 397 Width = 120 Anchors = [akTop, akRight] BorderSpacing.Top = 5 BorderSpacing.Right = 4 Caption = 'Run' OnClick = Button1Click TabOrder = 2 end object StatusBar1: TStatusBar Left = 0 Height = 21 Top = 765 Width = 1490 Panels = < item Width = 50 end> SimplePanel = False end object ProgressGroupBox: TGroupBox AnchorSideLeft.Control = ParametersGroupBox AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = HelpGroupBox AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = StatusBar1 Left = 392 Height = 484 Top = 281 Width = 1096 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Top = 9 BorderSpacing.Right = 2 Caption = 'Progress:' ClientHeight = 464 ClientWidth = 1094 TabOrder = 4 object ProgressMemo: TMemo AnchorSideLeft.Control = ProgressGroupBox AnchorSideTop.Control = ProgressGroupBox AnchorSideRight.Control = ProgressGroupBox AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = ProgressBar1 Left = 0 Height = 444 Top = 0 Width = 1094 Anchors = [akTop, akLeft, akRight, akBottom] ReadOnly = True ScrollBars = ssAutoBoth TabOrder = 0 WordWrap = False end object ProgressBar1: TProgressBar AnchorSideLeft.Control = ProgressGroupBox AnchorSideRight.Control = ProgressGroupBox AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = ProgressGroupBox AnchorSideBottom.Side = asrBottom Left = 0 Height = 20 Top = 444 Width = 1094 Anchors = [akLeft, akRight, akBottom] Smooth = True TabOrder = 1 end end object HelpGroupBox: TGroupBox AnchorSideLeft.Control = ParametersGroupBox AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SourceFileEdit AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = StatusBar1 Left = 392 Height = 238 Top = 34 Width = 1098 Anchors = [akTop, akLeft, akRight] Caption = 'Help:' ClientHeight = 218 ClientWidth = 1096 TabOrder = 5 object Memo1: TMemo AnchorSideLeft.Control = HelpGroupBox AnchorSideTop.Control = HelpGroupBox AnchorSideRight.Control = HelpGroupBox AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = HelpGroupBox AnchorSideBottom.Side = asrBottom Left = 0 Height = 214 Top = 4 Width = 1096 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Top = 4 Lines.Strings = ( 'Reads a csv file created previously by the “UDM/Tools/.dat to sun-moon-MW-clouds.csv” program and allows you to: a) Filter that csv file for select data records and b) Apply data adjustments. For example, you can set filter parameters to find data records that were recorded during cloud-free nights. You can apply an adjustment for data recorded because the SQM was inside a weatherproof case. Data records selected by the filters are written out to two separate csv files, with keyword labels “Dense” and “Sparse”, as described below.' '' 'Parameters:' ' 1) Sun elevation angle cutoff in degrees - includes records with sun elevation angle less than or equal to this value (default -18.)' ' 2) Moon elevation angle cutoff in degrees - includes records with moon elevation angle less than or equal to this value (default -10.)' ' 3) Cloud algorithm cutoff - includes records with residual standard error (cloud parameter) less than or equal to this value (default 20.)' ' 4) Galactic Latitude elevation angle in degrees - cutoff to eliminate Milky Way from FOV, includes records with galactic latitude greater than this value (symmetric, positive and negative) (default 0.)' ' 5) Correction for weatherproof cover – value subtracted from SQM readings to account for darkening caused by presence of weatherproof cover (default 0.11)' ' 6) Correction for aging of the SQM - estimate of the increase of brightness reading (darkening) per year due to sunlight exposure (default 0.01897)' ' 7) Max MPSAS allowed - includes records with MPSAS values less than or equal to this value (default 22.0)' ' 8) Sparse cutoff – after the above filters are applied, segregates data records remaining, which are estimated to be caused by constant cloud cover, fog, smoke into the “Sparse” output file; the majority of remaining records are written to “Dense” output file; specify a larger value to segregate more data records; set to zero for no segregation in which case all remaining records go into the “Dense” output file (default 25)' '' 'For additional explanation, see the online SQM-LU-DL operator’s manual, link found under “UDM/Help”' '(http://unihedron.com/projects/darksky/cd/SQM-LU-DL/SQM-LU-DL_Users_manual.pdf)' ) ReadOnly = True ScrollBars = ssAutoVertical TabOrder = 0 end end object ParametersGroupBox: TGroupBox AnchorSideLeft.Control = Owner AnchorSideTop.Control = SourceFileEdit AnchorSideTop.Side = asrBottom Left = 0 Height = 358 Top = 34 Width = 392 Caption = 'Parameters:' ClientHeight = 338 ClientWidth = 390 TabOrder = 6 object SolarElevationAngleCutoffEdit: TLabeledEdit AnchorSideTop.Control = ParametersGroupBox AnchorSideRight.Control = ParametersGroupBox AnchorSideRight.Side = asrBottom Left = 268 Height = 36 Top = 0 Width = 120 Anchors = [akTop, akRight] BorderSpacing.Right = 2 EditLabel.Height = 19 EditLabel.Width = 182 EditLabel.Caption = 'Sun elevation angle cutoff (°):' EditLabel.ParentColor = False EditLabel.WordWrap = True LabelPosition = lpLeft TabOrder = 0 OnChange = SolarElevationAngleCutoffEditChange end object MoonElevationAngleCutoffEdit: TLabeledEdit AnchorSideRight.Control = SolarElevationAngleCutoffEdit AnchorSideRight.Side = asrBottom Left = 268 Height = 36 Top = 40 Width = 120 Anchors = [akTop, akRight] EditLabel.Height = 19 EditLabel.Width = 192 EditLabel.Caption = 'Moon elevation angle cutoff (°):' EditLabel.ParentColor = False EditLabel.WordWrap = True LabelPosition = lpLeft TabOrder = 1 OnChange = MoonElevationAngleCutoffEditChange end object CloudAlgorithmCutoffEdit: TLabeledEdit AnchorSideRight.Control = SolarElevationAngleCutoffEdit AnchorSideRight.Side = asrBottom Left = 268 Height = 36 Top = 80 Width = 120 Anchors = [akTop, akRight] EditLabel.Height = 19 EditLabel.Width = 141 EditLabel.Caption = 'Cloud algorithm cutoff:' EditLabel.ParentColor = False EditLabel.WordWrap = True LabelPosition = lpLeft TabOrder = 2 OnChange = CloudAlgorithmCutoffEditChange end object GalacticLatitudeElevationAngleEdit: TLabeledEdit AnchorSideRight.Control = SolarElevationAngleCutoffEdit AnchorSideRight.Side = asrBottom Left = 268 Height = 36 Top = 120 Width = 120 Anchors = [akTop, akRight] EditLabel.Height = 19 EditLabel.Width = 218 EditLabel.Caption = 'Galactic Latitude elevation angle (°):' EditLabel.ParentColor = False EditLabel.WordWrap = True LabelPosition = lpLeft TabOrder = 3 OnChange = GalacticLatitudeElevationAngleEditChange end object CorrectionForWeatherproofCoverEdit: TLabeledEdit AnchorSideRight.Control = SolarElevationAngleCutoffEdit AnchorSideRight.Side = asrBottom Left = 268 Height = 36 Top = 160 Width = 120 Anchors = [akTop, akRight] EditLabel.Height = 19 EditLabel.Width = 218 EditLabel.Caption = 'Correction for weatherproof cover:' EditLabel.ParentColor = False EditLabel.WordWrap = True LabelPosition = lpLeft TabOrder = 4 OnChange = CorrectionForWeatherproofCoverEditChange end object CorrectionForAgingSQMEdit: TLabeledEdit AnchorSideRight.Control = SolarElevationAngleCutoffEdit AnchorSideRight.Side = asrBottom Left = 268 Height = 36 Top = 200 Width = 120 Anchors = [akTop, akRight] EditLabel.Height = 19 EditLabel.Width = 200 EditLabel.Caption = 'Correction for aging of the SQM:' EditLabel.ParentColor = False EditLabel.WordWrap = True LabelPosition = lpLeft TabOrder = 5 OnChange = CorrectionForAgingSQMEditChange end object MaxMPSASAllowedEdit: TLabeledEdit AnchorSideRight.Control = SolarElevationAngleCutoffEdit AnchorSideRight.Side = asrBottom Left = 268 Height = 36 Top = 240 Width = 120 Anchors = [akTop, akRight] EditLabel.Height = 19 EditLabel.Width = 126 EditLabel.Caption = 'Max MPSAS allowed:' EditLabel.ParentColor = False EditLabel.WordWrap = True LabelPosition = lpLeft TabOrder = 6 OnChange = MaxMPSASAllowedEditChange end object SparseCutoffEdit: TLabeledEdit AnchorSideRight.Control = SolarElevationAngleCutoffEdit AnchorSideRight.Side = asrBottom Left = 268 Height = 36 Top = 280 Width = 120 Anchors = [akTop, akRight] EditLabel.Height = 19 EditLabel.Width = 85 EditLabel.Caption = 'Sparse cutoff:' EditLabel.ParentColor = False EditLabel.WordWrap = True LabelPosition = lpLeft TabOrder = 7 OnChange = SparseCutoffEditChange end end object SourceFileDialog: TOpenDialog Filter = 'Data files|*.csv' Left = 72 Top = 472 end end ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./newpackage.pas������������������������������������������������������������������������������������0000644�0001750�0001750�00000000466�14576573021�013767� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ This file was automatically created by Lazarus. do not edit! This source is only used to compile and install the package. } unit NewPackage; interface uses Unit4, LazarusPackageIntf; implementation procedure Register; begin end; initialization RegisterPackage('NewPackage', @Register); end. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./Makefile������������������������������������������������������������������������������������������0000644�0001750�0001750�00000007665�14576573022�012626� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������NAME=udm # To install, type: # su -c "make install" #Get version number from source file #VERSION=$(shell head -3 $(NAME) | grep version | cut -d\" -f2) #DESTDIR can be defined when calling make ie. make install DESTDIR=$RPM_BUILD_ROOT DESTDIR = prefix = /usr bindir = $(prefix)/local/bin datadir = $(prefix)/share all: @echo "lp2m Copy Linux published files to the Mac" @echo "distmac makes mac distribution" @echo "deb makes .deb for Debian (Linux), must be su." @echo "dist makes tar.gz for Linux (old, does not include database files)" @echo "l64get get pub files while in Linux64" @echo "l64put put Linux64 deb file onto CD" # Put Linux64 deb file onto CD l64put: mv /home/anthony/udm/*.deb /media/sf_cd # Get pub files while in Linux64" l64get: cp /media/sf_pub/* /home/anthony/udm cp -r /media/sf_firmware/* /home/anthony/udm/firmware cp -r /media/sf_tzdatabase/* /home/anthony/udm/tzdatabase #Copy Linux published files to the Mac lp2m: scp -B /home/anthony/projects/sqm-le/lazarus/pub/* anthony@mac.local:/Users/anthony/projects/udm #Not normally used directly, called by make deb: install: install -D -m0755 udm $(DESTDIR)$(bindir)/$(NAME) install -d -m0755 $(DESTDIR)$(datadir)/$(NAME) install -d -m0755 $(DESTDIR)$(datadir)/$(NAME)/tzdatabase/ install -m0644 tzdatabase/* $(DESTDIR)$(datadir)/$(NAME)/tzdatabase/ install -d -m0755 $(DESTDIR)$(datadir)/$(NAME)/firmware/ install -p -m0644 firmware/*.hex $(DESTDIR)$(datadir)/$(NAME)/firmware/ install -m0644 fchanges.txt $(DESTDIR)$(datadir)/$(NAME)/ install -m0644 world*.jpg $(DESTDIR)$(datadir)/$(NAME)/ install -m0644 kmllegend*.png $(DESTDIR)$(datadir)/$(NAME)/ install -m0644 changelog.txt $(DESTDIR)$(datadir)/$(NAME)/ install -m0644 commandlineoptions.txt $(DESTDIR)$(datadir)/$(NAME)/ install -m0644 sqm-skeleton.html $(DESTDIR)$(datadir)/$(NAME)/ install -m0644 *.wav $(DESTDIR)$(datadir)/$(NAME)/ install -m0644 *.ucld $(DESTDIR)$(datadir)/$(NAME)/ install -m0644 *.goto $(DESTDIR)$(datadir)/$(NAME)/ install -m0644 *.tcl $(DESTDIR)$(datadir)/$(NAME)/ install -m0644 47_SKYGLOW_DEFINITIONS.PDF $(DESTDIR)$(datadir)/$(NAME)/ install -m0644 udm.png /usr/share/pixmaps install -m0644 unihedron-device-manager.desktop /usr/share/applications #Only used to remove installation of code. uninstall: rm -f $(DESTDIR)$(bindir)/udm rm -rf $(DESTDIR)$(datadir)/udm* #Normally used to create a debian package deb: checkinstall -D --pkgname=udm --maintainer='Anthony Tekatch \<anthony@unihedron.com\>' --provides='' --nodoc make install #Used to create a tar.gz file for Linux dist: if test -d "$(NAME)-$(VERSION)"; then rm -rf $(NAME)-$(VERSION); fi if test -f "$(NAME)-$(VERSION).tar.gz"; then rm -f $(NAME)-$(VERSION).tar.gz; fi mkdir $(NAME)-$(VERSION) cp Makefile $(NAME)-$(VERSION) cp -R doc $(NAME)-$(VERSION) cp $(NAME) $(NAME)-$(VERSION) tar cvzf $(NAME)-$(VERSION).tar.gz $(NAME)-$(VERSION) rm -rf $(NAME)-$(VERSION) #Used to create a dmg for Mac distmac: @echo "Assumes that udm.app directory exists" @echo " which was created by Create Application Bundle in Lazarus" cp -R firmware "udm.app/Contents/Resources/" cp -R -f tzdatabase "udm.app/Contents/Resources/" cp -f fchanges.txt "udm.app/Contents/Resources/" cp -f world*.jpg "udm.app/Contents/Resources/" cp -f kmllegend*.png "udm.app/Contents/Resources/" cp -f -p *.icns "udm.app/Contents/Resources/" cp -f 47_SKYGLOW_DEFINITIONS.PDF "udm.app/Contents/Resources/" cp -f *.wav "udm.app/Contents/Resources/" cp -f *.ucld "udm.app/Contents/Resources/" cp -f *.goto "udm.app/Contents/Resources/" cp -f *.tcl "udm.app/Contents/Resources/" cp -f changelog.txt "udm.app/Contents/Resources/" cp -f sqm-skeleton.html "udm.app/Contents/Resources/" rm "udm.app/Contents/MacOS/udm" cp udm "udm.app/Contents/MacOS/" ./icon_str.py > Info.plist.temp cp Info.plist.temp udm.app/Contents/Info.plist rm Info.plist.temp rm -rf /Applications/udm.app cp -R udm.app /Applications/ @echo "Now use Packages.app to create a .pkg file" ���������������������������������������������������������������������������./pingsend.pas��������������������������������������������������������������������������������������0000644�0001750�0001750�00000052365�14576573021�013476� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{==============================================================================| | Project : Ararat Synapse | 004.000.002 | |==============================================================================| | Content: PING sender | |==============================================================================| | Copyright (c)1999-2010, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2000-2010. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@abstract(ICMP PING implementation.) Allows create PING and TRACEROUTE. Or you can diagnose your network. This unit using IpHlpApi (on WinXP or higher) if available. Otherwise it trying to use RAW sockets. Warning: For use of RAW sockets you must have some special rights on some systems. So, it working allways when you have administator/root rights. Otherwise you can have problems! Note: This unit is NOT portable to .NET! Use native .NET classes for Ping instead. } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$Q-} {$R-} {$H+} {$IFDEF CIL} Sorry, this unit is not for .NET! {$ENDIF} //old Delphi does not have MSWINDOWS define. {$IFDEF WIN32} {$IFNDEF MSWINDOWS} {$DEFINE MSWINDOWS} {$ENDIF} {$ENDIF} {$IFDEF UNICODE} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$ENDIF} unit pingsend; interface uses SysUtils, synsock, blcksock, synautil, synafpc, synaip {$IFDEF MSWINDOWS} , windows {$ENDIF} ; const ICMP_ECHO = 8; ICMP_ECHOREPLY = 0; ICMP_UNREACH = 3; ICMP_TIME_EXCEEDED = 11; //rfc-2292 ICMP6_ECHO = 128; ICMP6_ECHOREPLY = 129; ICMP6_UNREACH = 1; ICMP6_TIME_EXCEEDED = 3; type {:List of possible ICMP reply packet types.} TICMPError = ( IE_NoError, IE_Other, IE_TTLExceed, IE_UnreachOther, IE_UnreachRoute, IE_UnreachAdmin, IE_UnreachAddr, IE_UnreachPort ); {:@abstract(Implementation of ICMP PING and ICMPv6 PING.)} TPINGSend = class(TSynaClient) private FSock: TICMPBlockSocket; FBuffer: Ansistring; FSeq: Integer; FId: Integer; FPacketSize: Integer; FPingTime: Integer; FIcmpEcho: Byte; FIcmpEchoReply: Byte; FIcmpUnreach: Byte; FReplyFrom: string; FReplyType: byte; FReplyCode: byte; FReplyError: TICMPError; FReplyErrorDesc: string; FTTL: Byte; Fsin: TVarSin; function Checksum(Value: AnsiString): Word; function Checksum6(Value: AnsiString): Word; function ReadPacket: Boolean; procedure TranslateError; procedure TranslateErrorIpHlp(value: integer); function InternalPing(const Host: string): Boolean; function InternalPingIpHlp(const Host: string): Boolean; function IsHostIP6(const Host: string): Boolean; procedure GenErrorDesc; public {:Send ICMP ping to host and count @link(pingtime). If ping OK, result is @true.} function Ping(const Host: string): Boolean; constructor Create; destructor Destroy; override; published {:Size of PING packet. Default size is 32 bytes.} property PacketSize: Integer read FPacketSize Write FPacketSize; {:Time between request and reply.} property PingTime: Integer read FPingTime; {:From this address is sended reply for your PING request. It maybe not your requested destination, when some error occured!} property ReplyFrom: string read FReplyFrom; {:ICMP type of PING reply. Each protocol using another values! For IPv4 and IPv6 are used different values!} property ReplyType: byte read FReplyType; {:ICMP code of PING reply. Each protocol using another values! For IPv4 and IPv6 are used different values! For protocol independent value look to @link(ReplyError)} property ReplyCode: byte read FReplyCode; {:Return type of returned ICMP message. This value is independent on used protocol!} property ReplyError: TICMPError read FReplyError; {:Return human readable description of returned packet type.} property ReplyErrorDesc: string read FReplyErrorDesc; {:Socket object used for TCP/IP operation. Good for seting OnStatus hook, etc.} property Sock: TICMPBlockSocket read FSock; {:TTL value for ICMP query} property TTL: byte read FTTL write FTTL; end; {:A very useful function and example of its use would be found in the TPINGSend object. Use it to ping to any host. If successful, returns the ping time in milliseconds. Returns -1 if an error occurred.} function PingHost(const Host: string): Integer; {:A very useful function and example of its use would be found in the TPINGSend object. Use it to TraceRoute to any host.} function TraceRouteHost(const Host: string): string; implementation type {:Record for ICMP ECHO packet header.} TIcmpEchoHeader = packed record i_type: Byte; i_code: Byte; i_checkSum: Word; i_Id: Word; i_seq: Word; TimeStamp: integer; end; {:record used internally by TPingSend for compute checksum of ICMPv6 packet pseudoheader.} TICMP6Packet = packed record in_source: TInAddr6; in_dest: TInAddr6; Length: integer; free0: Byte; free1: Byte; free2: Byte; proto: Byte; end; {$IFDEF MSWINDOWS} const DLLIcmpName = 'iphlpapi.dll'; type TIP_OPTION_INFORMATION = record TTL: Byte; TOS: Byte; Flags: Byte; OptionsSize: Byte; OptionsData: PAnsiChar; end; PIP_OPTION_INFORMATION = ^TIP_OPTION_INFORMATION; TICMP_ECHO_REPLY = record Address: TInAddr; Status: integer; RoundTripTime: integer; DataSize: Word; Reserved: Word; Data: pointer; Options: TIP_OPTION_INFORMATION; end; PICMP_ECHO_REPLY = ^TICMP_ECHO_REPLY; TICMPV6_ECHO_REPLY = record Address: TSockAddrIn6; Status: integer; RoundTripTime: integer; end; PICMPV6_ECHO_REPLY = ^TICMPV6_ECHO_REPLY; TIcmpCreateFile = function: integer; stdcall; TIcmpCloseHandle = function(handle: integer): boolean; stdcall; TIcmpSendEcho2 = function(handle: integer; Event: pointer; ApcRoutine: pointer; ApcContext: pointer; DestinationAddress: TInAddr; RequestData: pointer; RequestSize: integer; RequestOptions: PIP_OPTION_INFORMATION; ReplyBuffer: pointer; ReplySize: integer; Timeout: Integer): integer; stdcall; TIcmp6CreateFile = function: integer; stdcall; TIcmp6SendEcho2 = function(handle: integer; Event: pointer; ApcRoutine: pointer; ApcContext: pointer; SourceAddress: PSockAddrIn6; DestinationAddress: PSockAddrIn6; RequestData: pointer; RequestSize: integer; RequestOptions: PIP_OPTION_INFORMATION; ReplyBuffer: pointer; ReplySize: integer; Timeout: Integer): integer; stdcall; var IcmpDllHandle: TLibHandle = 0; IcmpHelper4: boolean = false; IcmpHelper6: boolean = false; IcmpCreateFile: TIcmpCreateFile = nil; IcmpCloseHandle: TIcmpCloseHandle = nil; IcmpSendEcho2: TIcmpSendEcho2 = nil; Icmp6CreateFile: TIcmp6CreateFile = nil; Icmp6SendEcho2: TIcmp6SendEcho2 = nil; {$ENDIF} {==============================================================================} constructor TPINGSend.Create; begin inherited Create; FSock := TICMPBlockSocket.Create; FSock.Owner := self; FTimeout := 5000; FPacketSize := 32; FSeq := 0; Randomize; FTTL := 128; end; destructor TPINGSend.Destroy; begin FSock.Free; inherited Destroy; end; function TPINGSend.ReadPacket: Boolean; begin FBuffer := FSock.RecvPacket(Ftimeout); Result := FSock.LastError = 0; end; procedure TPINGSend.GenErrorDesc; begin case FReplyError of IE_NoError: FReplyErrorDesc := ''; IE_Other: FReplyErrorDesc := 'Unknown error'; IE_TTLExceed: FReplyErrorDesc := 'TTL Exceeded'; IE_UnreachOther: FReplyErrorDesc := 'Unknown unreachable'; IE_UnreachRoute: FReplyErrorDesc := 'No route to destination'; IE_UnreachAdmin: FReplyErrorDesc := 'Administratively prohibited'; IE_UnreachAddr: FReplyErrorDesc := 'Address unreachable'; IE_UnreachPort: FReplyErrorDesc := 'Port unreachable'; end; end; function TPINGSend.IsHostIP6(const Host: string): Boolean; var f: integer; begin f := AF_UNSPEC; if IsIp(Host) then f := AF_INET else if IsIp6(Host) then f := AF_INET6; synsock.SetVarSin(Fsin, host, '0', f, IPPROTO_UDP, SOCK_DGRAM, Fsock.PreferIP4); result := Fsin.sin_family = AF_INET6; end; function TPINGSend.Ping(const Host: string): Boolean; var b: boolean; begin FPingTime := -1; FReplyFrom := ''; FReplyType := 0; FReplyCode := 0; FReplyError := IE_Other; GenErrorDesc; FBuffer := StringOfChar(#55, SizeOf(TICMPEchoHeader) + FPacketSize); {$IFDEF MSWINDOWS} b := IsHostIP6(host); if not(b) and IcmpHelper4 then result := InternalPingIpHlp(host) else if b and IcmpHelper6 then result := InternalPingIpHlp(host) else result := InternalPing(host); {$ELSE} result := InternalPing(host); {$ENDIF} end; function TPINGSend.InternalPing(const Host: string): Boolean; var IPHeadPtr: ^TIPHeader; IpHdrLen: Integer; IcmpEchoHeaderPtr: ^TICMPEchoHeader; t: Boolean; x: cardinal; IcmpReqHead: string; begin Result := False; FSock.TTL := FTTL; FSock.Bind(FIPInterface, cAnyPort); FSock.Connect(Host, '0'); if FSock.LastError <> 0 then Exit; FSock.SizeRecvBuffer := 60 * 1024; if FSock.IP6used then begin FIcmpEcho := ICMP6_ECHO; FIcmpEchoReply := ICMP6_ECHOREPLY; FIcmpUnreach := ICMP6_UNREACH; end else begin FIcmpEcho := ICMP_ECHO; FIcmpEchoReply := ICMP_ECHOREPLY; FIcmpUnreach := ICMP_UNREACH; end; IcmpEchoHeaderPtr := Pointer(FBuffer); with IcmpEchoHeaderPtr^ do begin i_type := FIcmpEcho; i_code := 0; i_CheckSum := 0; FId := System.Random(32767); i_Id := FId; TimeStamp := GetTick; Inc(FSeq); i_Seq := FSeq; if fSock.IP6used then i_CheckSum := CheckSum6(FBuffer) else i_CheckSum := CheckSum(FBuffer); end; FSock.SendString(FBuffer); // remember first 8 bytes of ICMP packet IcmpReqHead := Copy(FBuffer, 1, 8); x := GetTick; repeat t := ReadPacket; if not t then break; if fSock.IP6used then begin {$IFNDEF MSWINDOWS} IcmpEchoHeaderPtr := Pointer(FBuffer); {$ELSE} //WinXP SP1 with networking update doing this think by another way ;-O // FBuffer := StringOfChar(#0, 4) + FBuffer; IcmpEchoHeaderPtr := Pointer(FBuffer); // IcmpEchoHeaderPtr^.i_type := FIcmpEchoReply; {$ENDIF} end else begin IPHeadPtr := Pointer(FBuffer); IpHdrLen := (IPHeadPtr^.VerLen and $0F) * 4; IcmpEchoHeaderPtr := @FBuffer[IpHdrLen + 1]; end; //check for timeout if TickDelta(x, GetTick) > FTimeout then begin t := false; Break; end; //it discard sometimes possible 'echoes' of previosly sended packet //or other unwanted ICMP packets... until (IcmpEchoHeaderPtr^.i_type <> FIcmpEcho) and ((IcmpEchoHeaderPtr^.i_id = FId) or (Pos(IcmpReqHead, FBuffer) > 0)); if t then begin FPingTime := TickDelta(x, GetTick); FReplyFrom := FSock.GetRemoteSinIP; FReplyType := IcmpEchoHeaderPtr^.i_type; FReplyCode := IcmpEchoHeaderPtr^.i_code; TranslateError; Result := True; end; end; function TPINGSend.Checksum(Value: AnsiString): Word; var CkSum: integer; Num, Remain: Integer; n, i: Integer; begin Num := Length(Value) div 2; Remain := Length(Value) mod 2; CkSum := 0; i := 1; for n := 0 to Num - 1 do begin CkSum := CkSum + Synsock.HtoNs(DecodeInt(Value, i)); inc(i, 2); end; if Remain <> 0 then CkSum := CkSum + Ord(Value[Length(Value)]); CkSum := (CkSum shr 16) + (CkSum and $FFFF); CkSum := CkSum + (CkSum shr 16); Result := Word(not CkSum); end; function TPINGSend.Checksum6(Value: AnsiString): Word; const IOC_OUT = $40000000; IOC_IN = $80000000; IOC_INOUT = (IOC_IN or IOC_OUT); IOC_WS2 = $08000000; SIO_ROUTING_INTERFACE_QUERY = 20 or IOC_WS2 or IOC_INOUT; var ICMP6Ptr: ^TICMP6Packet; s: AnsiString; b: integer; ip6: TSockAddrIn6; x: integer; begin Result := 0; {$IFDEF MSWINDOWS} s := StringOfChar(#0, SizeOf(TICMP6Packet)) + Value; ICMP6Ptr := Pointer(s); x := synsock.WSAIoctl(FSock.Socket, SIO_ROUTING_INTERFACE_QUERY, @FSock.RemoteSin, SizeOf(FSock.RemoteSin), @ip6, SizeOf(ip6), @b, nil, nil); if x <> -1 then ICMP6Ptr^.in_dest := ip6.sin6_addr else ICMP6Ptr^.in_dest := FSock.LocalSin.sin6_addr; ICMP6Ptr^.in_source := FSock.RemoteSin.sin6_addr; ICMP6Ptr^.Length := synsock.htonl(Length(Value)); ICMP6Ptr^.proto := IPPROTO_ICMPV6; Result := Checksum(s); {$ENDIF} end; procedure TPINGSend.TranslateError; begin if fSock.IP6used then begin case FReplyType of ICMP6_ECHOREPLY: FReplyError := IE_NoError; ICMP6_TIME_EXCEEDED: FReplyError := IE_TTLExceed; ICMP6_UNREACH: case FReplyCode of 0: FReplyError := IE_UnreachRoute; 3: FReplyError := IE_UnreachAddr; 4: FReplyError := IE_UnreachPort; 1: FReplyError := IE_UnreachAdmin; else FReplyError := IE_UnreachOther; end; else FReplyError := IE_Other; end; end else begin case FReplyType of ICMP_ECHOREPLY: FReplyError := IE_NoError; ICMP_TIME_EXCEEDED: FReplyError := IE_TTLExceed; ICMP_UNREACH: case FReplyCode of 0: FReplyError := IE_UnreachRoute; 1: FReplyError := IE_UnreachAddr; 3: FReplyError := IE_UnreachPort; 13: FReplyError := IE_UnreachAdmin; else FReplyError := IE_UnreachOther; end; else FReplyError := IE_Other; end; end; GenErrorDesc; end; procedure TPINGSend.TranslateErrorIpHlp(value: integer); begin case value of 11000, 0: FReplyError := IE_NoError; 11013: FReplyError := IE_TTLExceed; 11002: FReplyError := IE_UnreachRoute; 11003: FReplyError := IE_UnreachAddr; 11005: FReplyError := IE_UnreachPort; 11004: FReplyError := IE_UnreachAdmin; else FReplyError := IE_Other; end; GenErrorDesc; end; function TPINGSend.InternalPingIpHlp(const Host: string): Boolean; {$IFDEF MSWINDOWS} var PingIp6: boolean; PingHandle: integer; r: integer; ipo: TIP_OPTION_INFORMATION; RBuff: Ansistring; ip4reply: PICMP_ECHO_REPLY; ip6reply: PICMPV6_ECHO_REPLY; ip6: TSockAddrIn6; begin Result := False; PingIp6 := Fsin.sin_family = AF_INET6; if pingIp6 then PingHandle := Icmp6CreateFile else PingHandle := IcmpCreateFile; if PingHandle <> -1 then begin try ipo.TTL := FTTL; ipo.TOS := 0; ipo.Flags := 0; ipo.OptionsSize := 0; ipo.OptionsData := nil; setlength(RBuff, 4096); if pingIp6 then begin FillChar(ip6, sizeof(ip6), 0); r := Icmp6SendEcho2(PingHandle, nil, nil, nil, @ip6, @Fsin, PAnsichar(FBuffer), length(FBuffer), @ipo, pAnsichar(RBuff), length(RBuff), FTimeout); if r > 0 then begin RBuff := #0 + #0 + RBuff; ip6reply := PICMPV6_ECHO_REPLY(pointer(RBuff)); FPingTime := ip6reply^.RoundTripTime; ip6reply^.Address.sin6_family := AF_INET6; FReplyFrom := GetSinIp(TVarSin(ip6reply^.Address)); TranslateErrorIpHlp(ip6reply^.Status); Result := True; end; end else begin r := IcmpSendEcho2(PingHandle, nil, nil, nil, Fsin.sin_addr, PAnsichar(FBuffer), length(FBuffer), @ipo, pAnsichar(RBuff), length(RBuff), FTimeout); if r > 0 then begin ip4reply := PICMP_ECHO_REPLY(pointer(RBuff)); FPingTime := ip4reply^.RoundTripTime; FReplyFrom := IpToStr(swapbytes(ip4reply^.Address.S_addr)); TranslateErrorIpHlp(ip4reply^.Status); Result := True; end; end finally IcmpCloseHandle(PingHandle); end; end; end; {$ELSE} begin result := false; end; {$ENDIF} {==============================================================================} function PingHost(const Host: string): Integer; begin with TPINGSend.Create do try Result := -1; if Ping(Host) then if ReplyError = IE_NoError then Result := PingTime; finally Free; end; end; function TraceRouteHost(const Host: string): string; var Ping: TPingSend; ttl : byte; begin Result := ''; Ping := TPINGSend.Create; try ttl := 1; repeat ping.TTL := ttl; inc(ttl); if ttl > 30 then Break; if not ping.Ping(Host) then begin Result := Result + cAnyHost+ ' Timeout' + CRLF; continue; end; if (ping.ReplyError <> IE_NoError) and (ping.ReplyError <> IE_TTLExceed) then begin Result := Result + Ping.ReplyFrom + ' ' + Ping.ReplyErrorDesc + CRLF; break; end; Result := Result + Ping.ReplyFrom + ' ' + IntToStr(Ping.PingTime) + CRLF; until ping.ReplyError = IE_NoError; finally Ping.Free; end; end; {$IFDEF MSWINDOWS} initialization begin IcmpHelper4 := false; IcmpHelper6 := false; IcmpDllHandle := LoadLibrary(DLLIcmpName); if IcmpDllHandle <> 0 then begin IcmpCreateFile := GetProcAddress(IcmpDLLHandle, 'IcmpCreateFile'); IcmpCloseHandle := GetProcAddress(IcmpDLLHandle, 'IcmpCloseHandle'); IcmpSendEcho2 := GetProcAddress(IcmpDLLHandle, 'IcmpSendEcho2'); Icmp6CreateFile := GetProcAddress(IcmpDLLHandle, 'Icmp6CreateFile'); Icmp6SendEcho2 := GetProcAddress(IcmpDLLHandle, 'Icmp6SendEcho2'); IcmpHelper4 := assigned(IcmpCreateFile) and assigned(IcmpCloseHandle) and assigned(IcmpSendEcho2); IcmpHelper6 := assigned(Icmp6CreateFile) and assigned(Icmp6SendEcho2); end; end; finalization begin FreeLibrary(IcmpDllHandle); end; {$ENDIF} end. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./udm.icns������������������������������������������������������������������������������������������0000644�0001750�0001750�00000133647�14576573022�012631� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������icns��it32��w���������������   �$ #'('&&(+/3310.-+'" � #(-15:=?>?BDEFCA@>:63.& �  '.5;?BCGJLMKLLMOPRNMKJIE?81*" �  )29?DGJLNNQOOPONNOQRRQPQOPQUSPOKHC<3* �  $-6>EJLMMP�QOQQPQPQRQPRUTS RPNJD;0& � '3;AGKMOOPOQRQQRSRQRRSRQRSRRUURTTSSTWWVUSRNG?4(� %1;DJMOPQPOQRSTTSTUTSWXUVTSSTWYXWUXXTOJ?3&� "0;CIIOQPPRQO PQQRQOQTSUSRTUVUSVXUVVUTUVZZXUXYXVTOH?0" �*6DKLMMNOONONOPQPQRQQRUUTRSTUTUWWVWZWXZZYWYZXWWTOH=-�  %3?HMPQPPQRSUTUVUSUVXXWWUVXYZ\ZXYYZ\]ZXY[]ZY[[WQF7& � +:ELSRRSTUUTUYWWXWVUWYVZ[[ZWYZYZ]\[\]^[Y[^_[\]^^\VL>,� 1@JPRUTRSUVVWXUVWWVYXZ[XZ]]\Y[[ZZ[\[ZZ\]]^_`^]]_`]]^^`_]YRE4"� %6EQTUTRUSSUVVWWVX WZYXXZ[\\Z\[\__]\`a_[\]_`]`bdda`a`]^`^_``][N<' � (:HOSUWVTUWWV"WXWXWXY[\ZY[[\[[][]]Z[\_`]a``a_^^_`abdcb``eda``addab]Q@* �  *;JSTSTVWAVWWVWWVYYXZ^]\[[Z\[[`^__\[\_`]`_`b_bcbadbabcca``dfdaabccadc^TB- � +=HQUTUXZYVVYZYYXWYZZ[^]�^\`_`_^``aba`^`caeecaecabccbaaceecd cadec_UC. �! +>KPTUSUUVX[YWXZ\[\\ZY[\\]\]_a_^_``_edcdeb_`ddfeccedcdfeddcddef gfcddedaVE0 � *>NTUWXVVUWZYXZ\]\Z]`]\]^__^^`bb_``cc_efc`bdefgifegifehijihgghjdghhgcYH1 �H)?NUVVWWVYXXZZY[]\][\^^__^^_``__ddb`bbdefggfechgedeffgjjgeffijihllkllki hjlkjjeYF-�%;LVYYXWXY[YYZ�[\]_`_&``abeedcceefghggfegfefhgffhhghjhijjijijlkjjiklkkjhcYD+�":KUYZ[\^\Z[\[\\]^^_``aba`aceeffeeghghhgfeghkkjihgjmjkjiijkkmml kjjhYB&� 7OW[[Z\^`bb]]`a^]_b ceecdccdbcdeggffghijjijhffjkmoonnmljjlkoonmmonknnoqponpqiW< � 0HWZ^_]^`a__aa`^_adefhgeecceghjijlmllmmnmmooqonnqopnnoqrqspoptrnmpsrqpqpnopoeQ6 �(@S][^`Racb^^abbaaccecbhfghgeeghhjkkllmlloponmlmnoqqopqqoopoqpqstsqqrssqqrtsqooqpopsreM.� !8M[`]^`a_^_abb``abdcedcfdfhihgghikllklnmln.mlljnqpqpqsspqrqqprtutsststtrstsrqpsrrsvvo^E%�/FW__^_``^^_``accbced ffeddegijhghjlmnnmllmompqnqsuttuustvvuvusrut stwwuqjZ9� %?S\]\]\]_S`bbccdfheceeghgfeghgilkiikllmnpnmoppoottroosrrtuvuvwvuttuxxwvwwvtsvvttvttuwwvvsgN,�  5JW]^\[\^_`ce`abccgffggkkihghlolimlkmnnprqprq*rtutuxwxxvwvxyyxyxxywvuvwxxwvzyz}}{ywsa@ �+DU\^_`^_``bbddbbdffehijkjihijiinqomonmlmoppsvtstuuwyxwzz{ywxyyz{yyz{zz{||~|~}~|}{nT3� "<S^adbbaaeegfbehjihjjijmlkmmlprqqrsqqruttvywxy*{}|z}}|{|~||~}}~~|}xgH$ � 2L^bedcfedfghgkljjk pooppopqqsrrtuwxywwxzz{}�~�w\7�" $@Wbcddccigfghdfjkklmmllmmlmmpsusr�tsuvvxzyz{{} mI$ �/I\efedbchihhihhijlmnnm#nonptsrsurvwwxwyz{z|}}{||~w\5�j :Sbggeeddgijklkijlmmnommllmoppqtsqsvtyzyzy{||}lG �()G\gigfghgghknmlkmponnonnmnpqsttvvstxyz{ |~ yY0�7Tcij klkjklmmnpqpq9rtuwwvxzyz|{z}}i?�  #D\inmllm pommonopprstvuw"xxvxzy}} yQ) �-Oelnnmponopprs(uwwxxyz}~� a6�9Zjnopqppqrrt�ux#y{}oD�  $Gcmppnpoqsrrssuwxxz{~~%{R' �3-Ogqsrqppstsstusptxyzyy{}~}~(_2�7Xipttrssxwsuyz{z|~�j=�@^mr srsstuuxxwyzz|} uI�  'Jfprrststtuwxyyx{}{} U% � .Smqqtwwvuttuvxxwx{~}:� b/�E5Vlttuwywwvvyx|}| j6�;\ovwxxyxzz{}}~�  s?� @atxyzywz}~"~� {H�$ Eewyzzyw{~ Q�5 $Jixy{zz{|~��Y% �1 %Kiw{xy{yx{}}~ ]' �0 'Nky|{{zxw|}||��a+ � )Qmz}-{yz~~}}� e- �  (Olz{{|~~g- �  )Qmz}|~/Â�l1�:$Oo}}~ Ā€m1�<^u|~%�ÁŁĀn2�)D`{~~#ƀƁ n2�,6Iv€ŀ�ȀDŽ�Ȃ�ȀĀ�€k/ �32>BRVv́ˁʁ ŀžj.� +8=FYz ʀ́�̀΀ʀǀǾe) � #3@QmЀуЀ̂ʾ^$�* !5Idp|ҀӀҀЅ οW �* #7LgPdutrm[NTbu ́րՃրԀӁҀѼL�A8N^QQTTYRKGFFh؀�ڀ܁�܀ـր ѸC�.3DJNHCESLJJE@_ỳ ۃ׀бy8�'*7>RNDF\QMMHDQ]oҁـ  فΨk+ �+!0HkcPLdRKLJC>@Tۀ܀ހ݀�܀ڀɛ\!�+ !;YtveVaYTRNJB>M ߀ ÌJ�! 3WhdZXbUPRRFFAGvϬ ޼};�<*OZVSWaRKPZLHGPqװtܬg+ �=&GSZ[Z^UPUb]KK^p|yy ѓN�( =U\_`XWek]cQGRrįʹ+ٸ|<�+6PUX\V[efYWR_!۰ݳj,�j+CDDN]bca[SOYpɺɻvakyyusmd\`[NGg±F�4 365?^eecaZSPS`hd_`fjmqsty}}vwsj`YTIHD9*/4;C?2@B;656;NkipyyƵ}P$ �h&469R`ijgec^[dUQRSRSV[^_^^`Z\^]\emppuxkT>2685445662.;H;88;?=KL\`DCZoEOnٽj:�*,05V`abgjg^YeTZd]FIU\WSWVNMVTLIPT[cltF)-:.,**/2))(%)3BLPR<2FpsB6347=BQoּj/�f!1EV^^YZjifgf]RPR74ALC=><67GPSXZURWkqX7'+*('%&'*,&$!!1=@<7)(6LM\P/+-../69[̣Y"�f 1MSY\ZWda^_aRCBI31563-,*')3J^\RPKEQH9-))(&$$%&''&##%%030*#$(.3310.)+-.-,*@kkhyi5�)*CPX^^X^VKJV;;GK=B:++(('$&#B\H6=>3/((**%&)&$$&1)-*.,(&&)+,+)),.&*--*+*+/5BFCGmt_W}n[U^ky|wn^C'�c 0LfhVCeVHIK8DRMOLC5%(*(%&"6B*&())+*,-'!"$'+)%#%)+,+')+*)-(+/,$%(($*)'),)'),3>?5;:8=I^bgmYSaeF1 �R#Ad`JBRIHQVWSJBHJ?/$&%%'$#%&#%((%)++($"!#'+*%%*-.-,+)''*.,+-0%&(%!&&'+,(&&%8;5167 :>=>?306:3"�I/MOGGKPX]VNLHA<==5%#!"$! ##!%'&$# #&#"$)++*+,*%%&&)*)()$$%%$%$$'(%#.,'',1104-()--(&%# � 4@KWNbhYJ?>>849=8)! E #$#!!$#%*('%&(& $%"%'&$$#!"#%$#""&#!"&$! #()+0*%&+/*&"�%3KkWlcA<A6+,3A<.*! ! " $&$$% $('$ #"#!##!%&%&(""!"#"&#!")%#"!!"%),-,)'()("�#<chV?4<5/:M43/&  "## ? !*,'#"%#""&)($#"&'$#)#"&'#"#$%$$# "! !"##"$&&%&*-,)++$ �. 5bgI:BL=7:?9100(%#!!% "$'())'$$('#&%&'%%$*&)*)(''&'*)())##$$""%%#"#  &&$'++(&'  �$FONIE?=9676*-5.'#"## #&)'&''('&'%)'&(*),-*%)*''))**&&'&#!'($  $%$()'%# �?!6TXD4>6/4,%(.*%!"$!!%&$)'%+*&%%$##$'*(&&'&+.)"()%$$'('*(#!&&#$""!"#$&('%" �51DQWWS6 %(.+""" " &%%,)%##"$##%$" !$()&!$'#&&%*$%'$"##"!  !',+*$ �V'29?80+-;<5*!#!!%),/'$!!&'&'))$")$ "#$'(#"! ")$""!!!%'&$ �T '12432:40,!!   (-/00)&'*/-*'#  )+$"',.+% !""%" !! ! ##"!�7$/53,+'&%  !"'**+/,+--10*# #)(#!%.43-*%$#"!!  $ ! � (/* !!  !"!!#*.-*,("!!"#"&&',552.-0,(%%$%$   �0.#""# 8#$#"!"#  '(&&),*&(" #$365571..-2/*(),/.(% """�M%/.(!!%#"#%%'&!#).,'&*+'-''-01663610/-.-,*'+,+((%##&)'# �  ))$!"!< # $)%%&%(*+*$#&'&('-5635512/14//11,%'&(1*+-*&.+#�G &&$! $("!&)'%%! !#$#%/74542/+(.3/153,%&'/>/373*3- �D %&''% "! !#$# !)&"#'" $')).31121-&"$(,00,()*5AD8><6;;. � ,6?B$ !""!"" !&$#$%&%#$)**183:7455/+),0*%$)3=B@7<:11+� #6@;!3"" $'!"#"$'"!&&*397:;84:3($+.-,.38:;;462(" � %0/'(&(2,$ &" !$&)'&+)/5895-2.%!(*+.5:9412/,$ �9'//.7MC+ !$!)+.0254567853-&%&%$&))*194-&#& �6'/39>:*$&" #))/477953583/-+$"&+)+31(.$ �3 #32$!'.1016751/0**++)$#%$#-." �! &/2--4450)("%'$" �(   %))(+,.*#! �  �   ���������������������  �#  "&()('%#! �  #'+.023468755420+'# � %+/2469;<>=?>=>>?@>>??>;851.'! �  '-269<>>=@>>@AA@??A@?@ABA?>?=94/(! �  %,17;=?@@A@@AACAABCBB@?BAABBCDDC BA>:6/'  � )048;>@�?AB@BCBBCDFDFEDDCA>93)  �  '06;>@AABABCCACDDCDDEEDCDEEFDCCDGFEFE DA;4* � &07;;>@@?A@@AB CDDCDCCDDEFEFGEDFGHHFEFGHHEA<3' � !+7;=><>@A@A BBABCBCDDCFCDEDFEEFGEFHFHHGHGHIHGHGB:/$ � *3:=@AA@ABBABCDEEDDEFFGHIIFGHHIHI�JI JJHHJE@8,� !.7=A@ACCBDEDCDEFEF GFGHGIHHIHJ HIIJJHIIJKKJ LJJKKIE>2$ �%1:@ACEFFEEFGHHG�FHIJJKLKJI JKJKLMMLKKLLML MMLIC8*�*6=ADDCEEDEDFFEFGFFHGIGIHHIK LMMLKLKJJLNLLNMMNOPQNLLMMNKG=/� .9@CCDDBCFGFEFHHIJKKLMNMLKLMNMNMMNMNMNNONNOOQPONPONJA2"�!0;ADEDDEDEFGGFGGFGHJIKLKKIKKJLMNNLKLNONONMNNOQPOQPOPQOQQPOQOOPMD6$ �"1;ADDEFGFFHGHIH�JKL KKLKKLMNONNONOPQTRQRQRPPQQSRQOF8& � "1<ADF GHGGHIIJJIIK MKLMMOMLMNNOPQPOOPQPQRTTSRSRRSTSSRSSURRSPH9& �"2=CDEFGGFGHGHIJIJKLMMLKKLNONOOPQOQQOPQQPQRSRSTTSTSTVUSSTTSTUT STTSSQI:&� 2?DEFGIHIKIIJKJKLLKKLMMNMNOQPPRSRSRRS UUTUUVUTUVVUVWWVVUUVUVRI9$�/>FIHHGGHIIJJIJKMMLMNOPQS�RS TTSUTSSTVVUUVWVWXWWVW VWWSH7#� -=EHJIJHHJIJKJJKLLMMNOOPRRQQR�STUVVWVVWXYXVWYXYXWXY�WXYXSH5 �  +;FIIHJKLJL�MN POPQQPPQSQSTSQTUWWVUWVWWVWXYYVWXYYXYZ[[Z[[ZY[ZZYZ[YUG1� '9EIJJKKLNNOPONOPPRSTSTTU XWVVWWXXWYWXZZY[\[[\[][\]\[\ZZ[RB,�"4BIJJKKLMLLMNNOPQOOPRTSTU�VWXYZYZ[\[[]]^^]\]^\]�\]�^]^^]\][Q>&� .>HJJLMNOPQPQR�TSTUVVXW�XY[Z[\ ]^\\^__^]]^]^�_^_^__[N8 � '9FKJJMNMMNOOPPOQQRSUVUSUVYXWWX[[Z[Z[]^_]\^_``_^`^^`a`_``__`__`YH-� 4DKLKLMNONNPQRRQQSRSTSTVVWXYZ[\\Z[]]\]__^^_``_`aa`ab`a``acba`a`a`ab_T?#� -AJMNMMOONOQSQRRSSTUUWXYYXYZ[]\ ]\]^_^_``a_`aba`cbccbbacdcbddcdbccb cddccba\O5�$9GLMNOQOQRTVU�VWXXYZZ[\]\]^�_`abb`bcbccbbddeeddedccdedce ffefggefggeedbZE*� 1CKNNOP QRQSSRTSUWVWYYXYZZ[\]^^_`_`bcdcddeded�eg"fghgedfgffhihiighjjhiihggffgfaS9 � '=LOPQRSQRSTUUVUVYXXZZ[\^_abba�cd ffedggffghg hhiihiihhij klkklkkjiji jihggf^I,� 3EPRPQRSTUTUWXXYZ\[[\[\]]_^^`aa`abbcdcd egffghiihhjkjkljkl mnoonmnmkliij ihjjgW; �'=KRRQR�STVUVWWVYZ \]]^_^^`_abcdccdeef!ghhijkjjlmlmmlkjlnoppooqpqqppqponmljjkl kkjlj`K*� 1FQSSRTTSUVXWWXXWY[�]^``_abcdefdfgfgihhjhjklmmlmnoprtvwxxwuqpponmnnm lklkfX9� !:LTSUTUVVWUVYYXXY[Z[\]]^_^_`acdbbd efgghihimkjlklm oqqopqsvx{|{{||{|{ wqprrqrpoqqpoonlmlbG%� +COTTVUUWYXYYZ\]^``__acde)fgghihiijlkoqomppooqtwyzz}~~{yxxwut sttsqqsrqrsrqpnpphS2�  6KTVWXVWXYZ�[\ ^^]^`_``abc degghkkjjklnqxyurquwy{{xwvvwvvwwv wvuuvttuutsstso`A �$?OVWWYXXYYZ[[]\]]^_`aabcdefikklnmnptyzzyvu{ ~~~}|{{|zxyxxyyxw�vuvuriN+�.GSX�YZ\])^_`_aa`bccdfghhikkllmnponnoqtvzxxyxy|}|{zyyzz{{z{{z{yyz{{zyzzxw�xwvuoY6� 7MVZ[\[[]_aa`bcehiijkkjmorsvvuvuvxxz{{||yz||z{||{{}}|}| ~~}|{|{|{z{zxyxubB�$?SYZZ[Z\^^]_^^_`baaccdeefghijjkklmqoqstvwwxwyzzyz{{|}�~~~~~~~}|~}{ |{zywkL& �,GVZ [\]^^_`a`_bcbbefhhijjklkknnopqr ssvwxxyzz{||}~}|}~}|{{|qU1�4MY\[[\^]]^``bbacbcdfghikllmnpqsstu xyyz{{|}~~� ~}~~w_;�  :Q\]\]^_`ab cdfgfghijjkmnopqrtvwxxyz{||~~�|hE� $@U\\]_`abccdffghhijlljlnoqrrsuvwyz{||~� oN% � )DX`^]^``a�cd�eg hjklmmnnorsstuvwyz{||~~sV, �*.HY_^^_``abdegeefghiijlmmnopqrstuvvwxyz{}~�y^4�3L[__``abbcdefghhiklmmoqqrtuuwwxyz{}}~ � ~d;� 8Q^a`bbac+eeghhjiikmmnpsrtvwxyz{||~����iA� ;S_aabbacdegiihjlnppqssvvwyz{|}}�� oH�K :Q^``cdccddfggfhkilmlmpqqrsuvwyz{{|�tL �, <T`aabccddeffgghjjkmnopqrsuvxyz{}}~wP" � >Vab ddeffghiikkmprsuwwy{|}~ zS$ � >T_`babcddfghi*jkmnopqstuwvy||~ �{T% �  >Vbccdeffg�hjkmpoorrtwxz|~�}W( �=Yfddef6ghggjkllmppqsuvvwyz{}�Y( �,H[bdefhjlmnnprrtv"x{|}��Z) �=-D^effefghijklmnprstuwwx{}~� �Z) � ,Yde#fijklkmnnqrsuwxy{}~ W' �  #$14Uighijl!noprrtvxy{}~  W% �< !&8Xihijlmnmopqstvwyz{}R!� #1Nbjikl nqrrqsuwyy{} ~L�-)>Q`gfhga]`lqrssvxzz| ��{G�0(<,>OPMH:/4DVjxvxyz| w?� )5(,123,)5,Jfuwy{}�o8�C$(&%$$,%'+*&@Wf{{}€e. �,  ,,&$0*(*+'2<Mv{Ȁ Y$�G (B>.(6*%'($#$4c{΁M�""3IM=,71-,('# .[}р҂€w?�" 2>;1+7-+.,#%#)R~ˀʃŰՁ׀րk3�% .1-*-6+',1&&(0LwрպyXi܂܀ڀ!ĺW% �*),0323.+.51%);InՀđbaaj݁ÿx?�(!05660-:@46("-JyڀΧ(Ķf3 �j -/13/2:9,/*8Vpři{zoκ۾ʼ_'�j %!!*6774./-4EXookrs}~cLS^^]^]TEEA3+Qõu>� 8_642,)5DCAGIPRU`alusbZcj`gdbea^XRJ863(&0*.121($#$+;Zx||jSXin\_kuxx{ʿ}iA�h -4<?;9963;35;>>@CHKIJKJKMPQOXahlpugL0$! '6'%#'.*:;JvvG+'<T+9YqytY0�g.8638:;73<1;GC05@FC@DB9;CB=;@CKXdwB#1<BC-#4`au,"+:Ww~V% �f &075..9;:;=>734!+93*)& "3;<AEA@H_jS/ ),+&"69F9 ;m~no~F�. ,/441.6436;9*$*$%1A?;<84?7*2#FjkgnmgsRNbtzz{rT+�( $*26423,%'4% %)! (=*!)* ( .0,2\dLBn[GCN\ikf]L3�4 (:=1%8.$$)$*(-)" "* *#'!%"#3HRZ_H=KQ2 �1 94#*)'(*0-$!%     #! "#%&$ �5 +*"#$-20*&&$    & �0"(1&6:-%        �E *@-<5#"          �+  9:/*           � 9;% '        �&+)%! &   �G.0!         �= "+20.           �2             �  $        �   &       �        �    9    �   !   �G       �    $ �      "& � !#  #"�"   #   ! �    � )"    �5    �     �-       �&    �   �������������������� �   �$  #%%##%'+//-+*)'$  � !&+/246789:;=>@@>=:972.)# � &,06;>ABEGGHHGHIJGEFGDA=95-% �%-4:@ADGIHHKJHHIJJKLIJHHJK JFFB<7/& �6 "+29=BFGEHIIJHIIHGJKIGHIKLKIIJLKLMLHJKIFC=4+"�$.6=BDGHIHHJKIJJIJKLLK�LMLLML MLLJE?80$�"-8?CGHGJJIHIJKLKIJKJJLMLMMNNLMLLMNLLMNONMKHD9-! �)  +4=EGHIIFGJIGIHIKKJIIJIGGIKKLMMKILMKLMKLMNNMNPONH@7+ �'3<ADFIGGIHGFGIKIJKLLK JKKIJJLNLIKLKLMNMMLLONPQOOPKC?5(�   -:BEGHIJKJKJK JKMNMKKLKNPOMNOPNNOPPQQPOOMMPRRQRTQONLKF=0! �  (5>EIIJKLLMKMNNMOLLNPOMMNLPQP#ONORRQRSRTRPOPOQSSRQRSRQRRPPKC7( �-:DIJKJIKMLMNMLNPONQNMNQOQPQONORST�RQSTTSR�QT RSSOI?/�!0=DJMMKIIJLLMNQQPONP RRTSRRPQRQUTRQ TUTVSSUSSUTRTUTSRVSSUQTVTRQE4"� %5AHJKMNONNMLPONORPPQSRQOOQSRSRSVWVUUTSQPRTUTSU�TUWVQG9'� %5BJKKLMNNMOPOPOPPNOP QPPQRRSQPPOPRSTRSVVUUTSTSRSRTUUTTVVURUVWXWVRH9& � %6CJLKMLMMNPOQQPPQQPQP�RSQRSUUTUVVUVUTSRTVSUWWUTVWVTVXXWURI:( �  %6ELMLMOOMMN OQPPRRPQQRSQPRTUVVU�VUVWWVVW VUSSUVUVXYVWVXXYXVTTVXUL=) �'7DLNONQPOLNQSPRTUURTTRQSTTUVUVXWVWWXXUWVWYWWV XWWXYZYXWYYX UVXXWTM>)�%7CJNMOPOOMNOPQRRQRPPRSTUVUUVUSVVTTVTTVXYXWWXWVWWXZXWXZY\YXY[YXYZZXXY[ZXO<&� !5CIKLLNPNNPPSTSRRSTSUTTVWUUVUTVUUVWWXYXWWVVWY[ZZYYZ[[ZX[YXYZY[YXZWL9#�2CKLKLMNPRRPPQQTV TRRSTTUUSTTUVWV&UWWVWVWXYZ\YWWYYZ[[ZXX[\\]\Y[[ZZ[\\[Y[ZYXYZWJ6 � 0AMPPOPQRSTTSTSVXWUTSSTVWWVVWWXWWZYXZXZ[ZZ\[Z[] \]ZXY\]]^^\]_^\\][Z[\\]]\VI4 �+>KQSPSRQSVUVWWUVU�VWYZWXZXX[\[]\\[[]\[_^\^]]^_]^^\_^^__^]^`]\ _\^^]\WG.�"%:IOQQRSQSSRSVWVVWUVVTVUVXYXYZ[ZXWZZ[\\[\[]]\\]\\]^]\\]__^]__^_`_``^__`_^S?%�  3EOPPQRRPRQUWWVVTVWVYVWZYZX [ZZ\\Z[\\[]^]\ ]^^]\]^_`_^_`_^_aba_^_``_`_``ZM6 �+=KQPQRQQR�TUWXYZWWYWZXWYYXXYYZZ[\[[\\][\]\]^]^ __`_^^__^^`__aa`_`a__^^_a`^VF-� !6FMOQSQPQSTVTRRTWXWVVUTVXW VVXZYZ[[\_^\]\[]^]]^_`a__``_`�b`a`__`_ ^_``]S?#� -ALNMPOPOQQSVRRSTVUTUVUVVWYWWY[ZYYZ\[[\]^^]\^_^_``aa`_aa_`abbababa`ab`__^`_^]N4�&:HOPOQRRPPQQSTUSVVUVUVWY[XXZ�[\]_`__`_^`aa``bccbca``acdcbbcb`abccbccba`^_`XD)� 3ENRTUSQTU TTWXWXXWWXY[\[[ZZ[[\]^^_abaabcddccdeedfdbbdfede dbcfggeefgeedcb_Q9 �)>KRTUTSSUVUVXWVWYZ]]\ _^\\]^_`_^^_a�bcdfghfeghgfghhgfgijhhihhgfhhgede\G+�" 3EPUWWVUVUWYWXWVXZZYYZ[ZZ[Z[\^`_^ __aa`aabccdefddeeghghiijhhjihhilfdgkihggiihihiighjigfgcU; �(>LQSUWXWWZYZ[[Z[[ZZ\]\\_^_`bcbcdedef gfeffgghihijkjjijkjjliijmlljijggijihi�hg_I)�3HRSRSTUVUWXWWXZZ[[\[\[]^]\^_`aa`caafeeffgfefhghihhiihiklmmkkllmnonlkklijllkjiihijiijeT7� #=NUUTSTVWVVXYYXYZ[ ]]^^]^__^_abacbcgfhfegi2kljjkjijlmnooppnnoppqqppolmnmmnljlnlkjjijllmlh]E%�,DPTVWXWWXZ[XY\]\\[\_^�_a bcbcddcdfhfhggikklmnlmnnmnprtrqrsprsrpoqqomno rpnlmonmllmnmkeQ1� 5KSVXXYYXZYYZ[\Y[]\]]^__``abcbdeccefghhgjlljjkllklnnoprsttsrsqqsrstsqqtutqprsqrqqrpopq pooronnj[? � $?PUVXXYYZ[Z[\^^]^__`3acdeddffeehhjihhjklmnnmmlmqrrtvustvusrrssuwttuustvvtu�tstvsqrsqtsqpneK*�-FRVVWXXY[[\[ \^__^_``a``adcefegffhjijiijjklnponorssuutsuvussutvxxvuvwvuuxxvttutuvuttssutssrsrlV5� 5JSVXXWXYZ[]\[[]]^_`ababdbdf ghjigiklklmoqopqssrsrstuv wwxxwywwxyxwxxvuuwuwvuuwu tssuvup_@�#;NUVXZWYYXZ[ZZ\[_`_``ab"deedeghjiijkklmmnnprtoprsstutrtvvwvwyz{{y!zzyxxyywuwzyxwzwwxyxvvutvwvsrfI' �+BQVWXZY[ZYYXXZ\]`aababcdefghhfhljllkmpopqsqrtuvwvwxyyxyxxy{{|}{z xzz{|{zz{{zyxxy{ywxyvwwvvtlR0� 1HTVWXXZ[[ZZ\^^_` bcbaccdedfghjmklmmoqrrstuwvwxy{{z}}|}z|}}~|}|{{|z{{zzxwxzxyyxxwq[8� 6MVVWXXYZZ[]][[]^]^__`bcddefeghiiklmmnmnpqrs rtuvwvvwwxz{zz|}{}�~ ~~~|~}~~}|~~}{zy z|{zy{vcB�+ "<PVWVXZXY[\][[]^]^^_`acdcedfgghiihjmoonppq tuuttwwvvwyz{|}{|}~~|}~~~}~}{|~~{y{~|zyjK$ � %>PUVVY[XY[\\^`^]^__bceedeghhgjkkmnmnqsttvwwxz{z{}}~~~}{}~}||oR) �*BQVXXY[2\]\^a`_`abcdeedfghjilmnoonnpqstuuvxxvxz{|{||{|~~�~}~sY1�/FSXZZ[\^_`bcddefghiklmnpqqpopruvuvwxz{}~v^7�3JWZZ[\]^][_`abcceedfghikkmnoppqsr tvyyww{|{|~ zd=�5KWZXYZZ]]^_^__`abdffefgilm!opqqststtuvvxxy}~}}~jC�06KVYVVXZ[ZZ]_]^`b`ddccfefikkjlnonoqsstuvwxzz{}~ kE�,8LTUUVXZ[ZZ\_^_ab`bbcdeeffijjklnnortstuwyy{}~nI �9MTUWYZZ\[Z[]^`bbaabdfef$hjklmnoqsttuwyzz|}}� qL" �;9MVXYZZ[]\ZZ\]_bcacffddfhijjlnnoqrsuvxyy{|}rN" �8KSW[Z[]]\]^_beddfgfghijmnprstuuwyz{{����� uS% � 4LXWYXXYZ]^^_bebdf$hhikmnnorssuvwy{||} xR% � !9LTXYZ\]^^`aade)hhiklnopsttuwxzz{}~�xR& �*3QZZXX[[ZZ\_^]^bcddeiijllnpstuuvxxzy{ wS& � OYZYYZ[ZZ\_/aceghhjmnnoqttvwxyy{|~��yQ# � $G_YZZ[]_`aacegjikmoqqtutty{|~  yP# �I "I]XZ[]^]]_abbdegjllnpqrtuuvz}~}wM�N8QXV\]\ZZ_aabccdfilmmnortuvxy|~�uG�0 7KQPUUMGJV\_bccdfhkmllnqtvvxy{~��qA�1  $98-* $;Ufegiihklmoqrtvxzz|~ l9� 4Q`cfh,kkmpqtvxz{~�� f4�E  )=Kdefghkkmqwyz{||�\+ �  .]beggklot{}~'� R"�&   E_hiilmqux~ yG�9$( ?ammooqtw{ n:�! 6colnsvy|kv€b/ �% 1Zlopx{·fO/=nȃ P!�# (1Phtw|�ǟc677ATqπ΂ ƀ p:�l 6erry|٬{dieUmi`0 �!  '>Ogknzzͼ̀EϿɶԮthg\rp~}EPcd^л̺IJֶ\&�i   .>STU_[kq|su~xN29C>LRSH/)'Mؼs>�i    !8<<B?JPQ[^]WNSNQY[^^aed\ZYQ:2* "$$"'(:^xY]qufhtƱoE�g    #/7;;9<?@BA?@EJNOMV`insvgJ,,$")'23HvN$3O(Ps~`6�+   (:6)-364241(&8A>:?BKWb?73AB>@"#QQ{/(IrX' �e   !! #&# *446<=76OoW) .83)#)(?8 .`pnD�e $,+-1(13' 5ZbagytgyPJewoS(�5      $ + %[iM@saLHXitxseK*�      *?RelO:KU. �% 6 &)" �  �     �  0           �      ?             �     ;          �  "     �!         �#             �        &      �&     #          �    �   �   �            �      '      �      0          �           �      �                �   .        �         �         � 1         �        �       �      �  �  ��   � �������������t8mk��@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ �������������������������������������������������������������������������������������������������������� *8AB=41/-*%  ����������������������������������������������������������������������������������������������� "-9DMWez~yvqkcZQF;0% ������������������������������������������������������������������������������������������(8GWiz~n\L:)������������������������������������������������������������������������������������0DZoƹnXA,������������������������������������������������������������������������������-C[uʸoT;' �������������������������������������������������������������������������� 8TqмgJ1 ����������������������������������������������������������������������"=_͸wV7 �������������������������������������������������������������������#?bԿ}X6 ��������������������������������������������������������������� <`zS1�������������������������������������������������������������1UݾpH'��������������������������������������������������������� !Dp׸c:�������������������������������������������������������0XΫ{M( ����������������������������������������������������>lܻb5������������������������������������������������� &M}̣sC �����������������������������������������������.ZٶO% ��������������������������������������������4fZ+ ������������������������������������������:mə_/����������������������������������������;s̝d2��������������������������������������=sҡg4������������������������������������<tԣh3����������������������������������8pբe/ ��������������������������������2lϟa+ �������������������������������� +bΘX%������������������������������%WȎN����������������������������MB��������������������������At6 ������������������������� 0m٤`%������������������������ YʏK����������������������?x6���������������������� ,jܣ\$��������������������PʈD��������������������9yj*������������������#^БK����������������@r. ����������������%dәO��������������>u/ �������������� ]֙K������������� 6l+������������QԏD������������,p_!�����������C}6 ����������\ۙN���������0vf$��������Eȁ6 ��������\ՔG�������,r\������ =r(������Oȃ5 ������aחE������(qT����� 2b!�����=r*����H~3 ����TӋ< ����]ٖD����"eޞM����%lS����)pY���+t]���,v_ ���,vb"���+tc#���*se$���(pe$���'mb"���$i^ ��� aZ���ZS���RݝL�����HדC�����=Ї: ����� 3z/�����)rj%�����cZ�����RܠK�����AΊ; �������2{v+�������$g`�������RՕH�������� ?~4 ���������,oc"���������VדI����������>x2�����������(h[�����������Kъ@������������� 1wh(�������������TӕI�������������� 6}s. ���������������VҗM��������������� 5xq. �����������������QϑK������������������ /nf)�������������������GÀ?���������������������&aՙT����������������������9~m/ �����������������������PŇB������������������������)eԝW ��������������������������8u۩j/ ��������������������������Eu9����������������������������Q佀C������������������������������ &ZŊL�������������������������������� +bȔU"��������������������������������� 0f̖Y' ����������������������������������4h˘]* ������������������������������������4gɖ]- ��������������������������������������3gŔZ* �����������������������������������������/`U& �������������������������������������������+WڳO$ �������������������������������������������� $NѨtD �����������������������������������������������CqĘg8��������������������������������������������������2]ִU+���������������������������������������������������� #HtȟoA �������������������������������������������������������5^ѮY2���������������������������������������������������������$EkѵjA" �������������������������������������������������������������+LtҷoJ+�����������������������������������������������������������������/OtϷoK,�������������������������������������������������������������������� 0Kk©iI,����������������������������������������������������������������������� +C]yíw\A) ��������������������������������������������������������������������������� 4Mgɺ{cI2�������������������������������������������������������������������������������� $8Ncz÷p\G2! ������������������������������������������������������������������������������������� !.>N^mzsdTC4( ����������������������������������������������������������������������������������������� '1;DMU[adeedb`]XRKD=5+! ������������������������������������������������������������������������������������������������� !#$#""! ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./update.hex����������������������������������������������������������������������������������������0000644�0001750�0001750�00000103720�14576573022�013143� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������:020000040000FA :040800007CEF05F094 :1008100003B23DEF04F0F2B458EF04F09EB060EF85 :1008200004F09EB268EF04F0F2A81AEF04F0F2B2FE :100830001CEF04F05AEF05F0CD90F29207BC078E42 :10084000078C9EA029EF04F00101463F29EF04F038 :10085000472B07AE34EF04F0CECF51F1CFCF52F19A :1008600046C153F147C154F1CF6ACE6A0101466BCC :10087000476B9E90CD805AEF05F00392030103EE83 :1008800000F080517F0BE92604C0EFFF802B8151DF :10089000805D700BD8A48B8200008051815D700B4D :1008A000D8A48B9281518019D8B407905AEF05F0E3 :1008B000F2940101383F5AEF05F0392B5AEF05F059 :1008C0009E900101463F5AEF05F0472B5AEF05F085 :1008D0009E928B945BA16EEF04F08B94C3CF48F192 :1008E000C4CF49F1C28207B497EF04F03AC13EF198 :1008F0003BC13FF13CC140F13DC141F151C155F116 :1009000052C156F153C157F154C158F10101485138 :100910004E2749514F23E86A50230D2E97EF04F0DC :100920004FC14AF150C14BF14E6B4F6B506B0201FE :10093000002F5AEF05F03C0E006F05014E67A8EF3F :1009400004F04F67A8EF04F05067A8EF04F0516778 :10095000ACEF04F0DCEF04F052C500F153C501F137 :1009600054C502F155C503F10101010E046F000EDB :10097000056F000E066F000E076F7EEC17F000C1CA :1009800052F501C153F502C154F503C155F5006795 :10099000D1EF04F00167D1EF04F00267D1EF04F06A :1009A0000367DCEF04F04EC552F54FC553F550C553 :1009B00054F551C555F50E88050105015B6B2EB741 :1009C000E4EF04F05B818B8401015D67EFEF04F0DD :1009D0005E67EFEF04F05F67EFEF04F06067F3EF3F :1009E00004F023EF05F061C100F162C101F163C1C0 :1009F00002F164C103F10101010E046F000E056FE5 :100A0000000E066F000E076F7EEC17F000C161F15B :100A100001C162F102C163F103C164F1006718EF23 :100A200005F0016718EF05F0026718EF05F003679E :100A300023EF05F05DC161F15EC162F15FC163F159 :100A400060C164F10E80D57ED5BE32D0D6CF3AF1EA :100A5000D7CF3BF138C13CF1E86AE8CF3DF1010165 :100A600047A73EEF05F0079C079E0101000E516F5E :100A7000600E526F3D0E536F080E546F01013ABF66 :100A80004EEF05F03B674EEF05F03C674EEF05F08B :100A90003D674EEF05F0F28853EF05F0F298516B89 :100AA000526B536B546BD76AD66A0101386B396B42 :100AB0005AEF05F002C0E0FF005001C0D8FF10005F :100AC000A6B260EF05F00CC0A9FF0BC0A8FFA69E60 :100AD000A69CA684F29E550EA76EAA0EA76EA682AD :100AE000F28EA694A6B272EF05F01200A96EA69E31 :100AF000A69CA680A8501200076A0E6A0F010E0E6F :100B0000C16E860EC06E030EC26E0F01896A150E8D :100B1000926E200E896E080E8A6EF30E936E8B6AAB :100B2000900E946EF18E0D6A01014E6B4F6B506BFF :100B30004A6B4B6B0F01280ED56EF28AB00ECD6E4C :100B40009D800101516B526B536B546B556B566B0F :100B5000576B586B596B5A6B5B6B5C6B079C079EB2 :100B6000760ECA6E9D8202013C0E006FCC6A160E94 :100B700076EC05F0E8CF00F1170E76EC05F0E8CF43 :100B800001F1180E76EC05F0E8CF02F1190E76ECC3 :100B900005F0E8CF03F1010103AFE9EF05F075ECD3 :100BA00018F0160E0C6E00C10BF060EC05F0170E7D :100BB0000C6E01C10BF060EC05F0180E0C6E02C15A :100BC0000BF060EC05F0190E0C6E03C10BF060EC3D :100BD00005F000C15DF101C15EF102C15FF103C129 :100BE00060F100C161F101C162F102C163F103C1B1 :100BF00064F11A0E76EC05F0E8CF00F11B0E76ECEE :100C000005F0E8CF01F11C0E76EC05F0E8CF02F11B :100C10001D0E76EC05F0E8CF03F1010103AF3FEFC5 :100C200006F075EC18F01A0E0C6E00C10BF060ECBB :100C300005F01B0E0C6E01C10BF060EC05F01C0EF4 :100C40000C6E02C10BF060EC05F01D0E0C6E03C1C2 :100C50000BF060EC05F01A0E76EC05F0E8CF00F131 :100C60001B0E76EC05F0E8CF01F11C0E76EC05F0DA :100C7000E8CF02F11D0E76EC05F0E8CF03F100C1DC :100C800065F101C166F102C167F103C168F1240E8B :100C9000AC6E900EAB6E240EAC6E080EB86E000EED :100CA000B06E1F0EAF6E0401806B816B0F01900E52 :100CB000AB6E0F019D8A0301806B816BA26B8B92DF :100CC000898C400EC76E200EC66E0E94E1EC18F0B3 :100CD0008A840501006B016B026B036B046B056B6F :100CE000066B0D6B0E6B0F6B106B116B126B196B30 :100CF0001A6B1B6B1C6B1D6B1E6B1F6B206B136BBE :100D0000146B156B166B176B186BDFEC19F0200E5C :100D100076EC05F0E8CF4EF5210E76EC05F0E8CF45 :100D20004FF5220E76EC05F0E8CF50F5230E76EC69 :100D300005F0E8CF51F54EC552F54FC553F550C5F6 :100D400054F551C555F5240E76EC05F0E8CF56F56F :100D5000250E76EC05F0E8CF57F5260E76EC05F07B :100D6000E8CF58F5270E76EC05F0E8CF59F50501E8 :100D70005B6B5C6B07900001F28EF28C07B02FEF7B :100D800015F00EB074EF10F00EB848EF0AF0030142 :100D9000805181197F0BD8B42FEF15F013EE00F0BE :100DA00081517F0BE126812BE7CFE8FFE00BD8B420 :100DB0002FEF15F023EE82F0A2511F0BD926E7CFBB :100DC000DFFFA22BDF50780AD8A42FEF15F00780A1 :100DD00061C100F162C101F163C102F164C103F1BB :100DE0000101040E046F000E056F000E066F000E69 :100DF000076F7EEC17F000AF07EF07F00101030E5D :100E0000616F000E626F000E636F000E646F03016E :100E10008251720AD8B474EF10F08251520AD8B4D9 :100E200074EF10F08251630AD8B4EFEF11F08251E1 :100E3000690AD8B449EF0EF082517A0AD8B45CEF4F :100E40000FF08251490AD8B4E8EF0DF08251500AF0 :100E5000D8B406EF0DF08251700AD8B449EF0DF006 :100E60008251540AD8B474EF0DF08251740AD8B488 :100E7000BAEF0DF08251470AD8B46FEF0AF08251F1 :100E8000670AD8B48CEF0CF082514C0AD8B45EEFEC :100E900007F024EF12F0040114EE00F080517F0BF4 :100EA000E12682C4E7FF802B12000D0E826F4BEC0F :100EB00007F00A0E826F4BEC07F012008351300AE4 :100EC0003AE08351310AD8B4E9EF07F08351320A8E :100ED000D8B469EF08F08351330AD8B477EF08F03B :100EE0008351340AD8B485EF08F08351490AD8B445 :100EF000EFEF0BF08351500AD8B497EF0AF083510B :100F0000700AD8B4E9EF0AF08351540AD8B423EF39 :100F10000BF08351740AD8B478EF0BF083514F0A69 :100F2000D8B4B5EF0BF083516F0AD8B4B5EF0BF01E :100F3000D8A424EF12F06BEC1CF075EC18F02EC561 :100F400000F118EC18F004014C0E826F4BEC07F026 :100F50000401300E826F4BEC07F004012C0E826FFF :100F60004BEC07F025C182F40401300E82274BECD4 :100F700007F026C182F40401300E82274BEC07F003 :100F800027C182F40401300E82274BEC07F00401E4 :100F90002C0E826F4BEC07F075EC18F02FC500F1AA :100FA00018EC18F025C182F40401300E82274BECB6 :100FB00007F026C182F40401300E82274BEC07F0C3 :100FC00027C182F40401300E82274BEC07F06BEF4F :100FD0000AF004014C0E826F4BEC07F00401310E55 :100FE000826F4BEC07F004012C0E826F4BEC07F084 :100FF000DFEC19F025C500F126C501F127C502F186 :1010000028C503F118EC18F022C182F40401300E57 :1010100082274BEC07F023C182F40401300E8227B3 :101020004BEC07F024C182F40401300E82274BEC14 :1010300007F025C182F40401300E82274BEC07F043 :1010400026C182F40401300E82274BEC07F027C141 :1010500082F40401300E82274BEC07F004012C0EC1 :10106000826F4BEC07F029C500F12AC501F12BC5B1 :1010700002F12CC503F118EC18F022C182F404012E :10108000300E82274BEC07F023C182F40401300EAE :1010900082274BEC07F024C182F40401300E822732 :1010A0004BEC07F025C182F40401300E82274BEC93 :1010B00007F026C182F40401300E82274BEC07F0C2 :1010C00027C182F40401300E82274BEC07F06BEF4E :1010D0000AF004014C0E826F4BEC07F00401320E53 :1010E000826F4BEC07F04FEC1AF0F3EF07F00401BE :1010F0004C0E826F4BEC07F00401330E826F4BEC09 :1011000007F098EC1AF0F3EF07F0B6EC18F084C390 :101110001EF185C31FF186C320F187C321F188C367 :1011200022F189C323F18AC324F18BC325F18CC337 :1011300026F18DC327F101011D6BC2EC18F03AECCA :1011400018F0200E046F000E056F000E066F000EE3 :10115000076F8DEC17F000C121F501C122F502C126 :1011600023F503C124F53AEC1CF02EB3BFEF08F0D1 :101170000401530E826F4BEC07F0C4EF08F004013A :101180004E0E826F4BEC07F004012C0E826F4BEC7D :1011900007F02EB5D3EF08F00401570E826F4BEC29 :1011A00007F0D8EF08F00401450E826F4BEC07F012 :1011B00004012C0E826F4BEC07F02EB7E7EF08F01E :1011C0000401560E826F4BEC07F0ECEF08F00401BF :1011D000410E826F4BEC07F004012C0E826F4BEC3A :1011E00007F075EC18F02FC500F130C501F131C5DD :1011F00002F118EC18F022C182F40401300E8227AB :101200004BEC07F023C182F40401300E82274BEC33 :1012100007F024C182F40401300E82274BEC07F062 :1012200025C182F40401300E82274BEC07F026C161 :1012300082F40401300E82274BEC07F027C182F4C0 :101240000401300E82274BEC07F004012C0E826F54 :101250004BEC07F075EC18F032C500F133C501F125 :1012600034C502F118EC18F022C182F40401300EEA :1012700082274BEC07F023C182F40401300E822751 :101280004BEC07F024C182F40401300E82274BECB2 :1012900007F025C182F40401300E82274BEC07F0E1 :1012A00026C182F40401300E82274BEC07F027C1DF :1012B00082F40401300E82274BEC07F004012C0E5F :1012C000826F4BEC07F075EC18F035C500F136C5B0 :1012D00001F137C502F138C503F118EC18F020C14F :1012E00082F40401300E82274BEC07F021C182F416 :1012F0000401300E82274BEC07F022C182F4040176 :10130000300E82274BEC07F023C182F40401300E2B :1013100082274BEC07F004012E0E826F4BEC07F096 :1013200024C182F40401300E82274BEC07F025C162 :1013300082F40401300E82274BEC07F026C182F4C0 :101340000401300E82274BEC07F027C182F4040120 :10135000300E82274BEC07F004012C0E826F4BEC11 :1013600007F075EC18F039C500F13AC501F13BC53D :1013700002F13CC503F118EC18F01FC182F404011E :10138000300E82274BEC07F020C182F40401300EAE :1013900082274BEC07F021C182F40401300E822732 :1013A0004BEC07F022C182F40401300E82274BEC93 :1013B00007F023C182F40401300E82274BEC07F0C2 :1013C00004012E0E826F4BEC07F024C182F404015D :1013D000300E82274BEC07F025C182F40401300E59 :1013E00082274BEC07F026C182F40401300E8227DD :1013F0004BEC07F027C182F40401300E82274BEC3E :1014000007F004012C0E826F4BEC07F03DC500F194 :101410003EC501F13FC502F140C503F10101000ED7 :10142000046F000E056F010E066F000E076FACEC27 :1014300017F018EC18F01D6720EF0AF025EF0AF0FE :1014400004012D0E826F4BEC07F024C182F40401DD :10145000300E82274BEC07F025C182F40401300ED8 :1014600082274BEC07F004012E0E826F4BEC07F045 :1014700026C182F40401300E82274BEC07F027C10D :1014800082F40401300E82274BEC07F06BEF0AF078 :101490000E980501566754EF0AF0576754EF0AF0AB :1014A000586754EF0AF0596758EF0AF067EF0AF0EF :1014B000D6EC0FF056C504F157C505F158C506F135 :1014C00059C507F17EEC17F003BFECEF11F098EC73 :1014D0001AF06BEF0AF055EC07F024EF12F023EE50 :1014E00082F0010EA26FA251D926DFCFA3F3A22B67 :1014F000780EA319D8B481EF0AF0F1EC18F073EF6D :101500000AF00D0EA36FF1EC18F00A0EA36FF1ECC8 :1015100018F00401670E826F4BEC07F00401420ED5 :10152000826F4BEC07F055EC07F024EF12F004014A :101530004C0E826F4BEC07F00401500E826F4BECA7 :1015400007F004012C0E826F4BEC07F084C31EF1F0 :1015500085C31FF186C320F187C321F188C322F11F :1015600089C323F18AC324F18BC325F18CC326F1EF :101570008DC327F10101C2EC18F03AEC18F0200EEF :101580000C6E00C10BF060EC05F0210E0C6E01C179 :101590000BF060EC05F0220E0C6E02C10BF060EC5B :1015A00005F0230E0C6E03C10BF060EC05F000C1DA :1015B0004EF501C14FF502C150F503C151F500C10F :1015C00052F501C153F502C154F503C155F5FEEFC3 :1015D0000BF004014C0E826F4BEC07F00401700E0F :1015E000826F4BEC07F004012C0E826F4BEC07F07E :1015F00084C31EF185C31FF186C320F187C321F187 :1016000088C322F189C323F18AC324F18BC325F156 :101610008CC326F18DC327F10101C2EC18F03AEC1E :1016200018F000C14EF501C14FF502C150F503C1DC :1016300051F500C152F501C153F502C154F503C182 :1016400055F5FEEF0BF004014C0E826F4BEC07F0EA :101650000401540E826F4BEC07F004012C0E826FD4 :101660004BEC07F084C31EF185C31FF186C320F144 :1016700087C321F188C322F189C323F18AC324F1EE :101680008BC325F18DC326F18EC327F10101C2EC76 :1016900018F03AEC18F00101000E046F000E056F0F :1016A000010E066F000E076F8DEC17F0240E0C6E06 :1016B00000C10BF060EC05F0250E0C6E01C10BF0C3 :1016C00060EC05F0260E0C6E02C10BF060EC05F02C :1016D000270E0C6E03C10BF060EC05F000C156F54F :1016E00001C157F502C158F503C159F5FEEF0BF0E2 :1016F00004014C0E826F4BEC07F00401740E826FF4 :101700004BEC07F004012C0E826F4BEC07F084C306 :101710001EF185C31FF186C320F187C321F188C361 :1017200022F189C323F18AC324F18BC325F18DC330 :1017300026F18EC327F10101C2EC18F03AEC18F043 :101740000101000E046F000E056F010E066F000E02 :10175000076F8DEC17F000C156F501C157F502C1B6 :1017600058F503C159F5FEEF0BF004014C0E826FE2 :101770004BEC07F08351570A03E08351460A06E019 :10178000280E76EC05F0E890CAEF0BF0280E76EC08 :1017900005F0E880E8CF5AF583516F0A14E00401A0 :1017A0004F0E826F4BEC07F004012C0E826F4BEC56 :1017B00007F05AC5E8FF280E0C6EE8CF0BF060EC7E :1017C00005F0EDEF0BF004016F0E826F4BEC07F0AC :1017D00004012C0E826F4BEC07F0FEEF0BF00401BE :1017E0004C0E826F4BEC07F00401490E826F4BECFC :1017F00007F004012C0E826F4BEC07F0200E76EC04 :1018000005F0E8CF00F1210E76EC05F0E8CF01F10C :10181000220E76EC05F0E8CF02F1230E76EC05F00F :10182000E8CF03F118EC18F044EC16F00401730E45 :10183000826F4BEC07F004012C0E826F4BEC07F02B :101840004EC500F14FC501F150C502F151C503F17C :1018500018EC18F044EC16F00401730E826F4BEC98 :1018600007F004012C0E826F4BEC07F052C500F11B :1018700053C501F154C502F155C503F118EC18F038 :1018800044EC16F00401730E826F4BEC07F0040178 :101890002C0E826F4BEC07F0240E76EC05F0E8CFAF :1018A00000F1250E76EC05F0E8CF01F1260E76EC7E :1018B00005F0E8CF02F1270E76EC05F0E8CF03F152 :1018C0003EEC12F004012C0E826F4BEC07F056C573 :1018D00000F157C501F158C502F159C503F13EECBD :1018E00012F004012C0E826F4BEC07F0280E76EC00 :1018F00005F0E8B083EF0CF00401570E826F4BEC5B :1019000007F088EF0CF00401460E826F4BEC07F0F5 :1019100055EC07F024EF12F08351300A1EE083519A :10192000310A21E08351320A24E08351340A27E04E :101930008351350A2AE08351360A2DE08351380A53 :1019400030E08351410A33E08351420A36E083514B :10195000430A39E0D8A424EF12F00DC502F50EC5F4 :1019600003F5E9EF0CF00FC502F510C503F5E9EF3B :101970000CF011C502F512C503F5E9EF0CF019C51D :1019800002F51AC503F5E9EF0CF01BC502F51CC5FD :1019900003F5E9EF0CF01DC502F51EC503F5E9EFEF :1019A0000CF01FC502F520C503F5E9EF0CF013C5D7 :1019B00002F514C503F5E9EF0CF015C502F516C5DF :1019C00003F5E9EF0CF017C502F518C503F5E9EFCB :1019D0000CF026EE00F005010251D9260351D8B0D3 :1019E0000329DA26DFCFE8FF0A0A0CE0DFCF82F412 :1019F0004BEC07F00501032B023F0307030E03170F :101A0000E9EF0CF055EC07F024EF12F083C31EF160 :101A100084C31FF185C320F186C321F187C322F15E :101A200088C323F189C324F18AC325F18BC326F12E :101A30008CC327F10101C2EC18F03AEC18F0160E35 :101A40000C6E00C10BF060EC05F0170E0C6E01C1BE :101A50000BF060EC05F0180E0C6E02C10BF060ECA0 :101A600005F0190E0C6E03C10BF060EC05F000C11F :101A70005DF101C15EF102C15FF103C160F100C11E :101A800061F101C162F102C163F103C164F1E8EFE8 :101A90000DF083C31EF184C31FF185C320F186C3FB :101AA00021F187C322F188C323F189C324F18AC3BA :101AB00025F18BC326F18CC327F10101C2EC18F08C :101AC0003AEC18F000C15DF101C15EF102C15FF1B5 :101AD00003C160F100C161F101C162F102C163F1B2 :101AE00003C164F1E8EF0DF083C31EF184C31FF15D :101AF00085C320F186C321F187C322F188C323F176 :101B000089C324F18AC325F18CC326F18DC327F143 :101B10000101C2EC18F03AEC18F00101000E046F5C :101B2000000E056F010E066F000E076F8DEC17F0AB :101B30001A0E0C6E00C10BF060EC05F01B0E0C6E63 :101B400001C10BF060EC05F01C0E0C6E02C10BF035 :101B500060EC05F01D0E0C6E03C10BF060EC05F09F :101B600000C165F101C166F102C167F103C168F10D :101B7000E8EF0DF083C31EF184C31FF185C320F18C :101B800086C321F187C322F188C323F189C324F1DD :101B90008AC325F18CC326F18DC327F10101C2EC64 :101BA00018F03AEC18F00101000E046F000E056FFA :101BB000010E066F000E076F8DEC17F000C165F186 :101BC00001C166F102C167F103C168F1E8EF0DF0F0 :101BD000160E76EC05F0E8CF00F1170E76EC05F066 :101BE000E8CF01F1180E76EC05F0E8CF02F1190EFE :101BF00076EC05F0E8CF03F118EC18F044EC16F0A1 :101C00000401730E826F4BEC07F004012C0E826FFF :101C10004BEC07F05DC100F15EC101F15FC102F163 :101C200060C103F118EC18F044EC16F00401730ED7 :101C3000826F4BEC07F004012C0E826F4BEC07F027 :101C40001A0E76EC05F0E8CF00F11B0E76EC05F0ED :101C5000E8CF01F11C0E76EC05F0E8CF02F11D0E85 :101C600076EC05F0E8CF03F13EEC12F004012C0E07 :101C7000826F4BEC07F065C100F166C101F167C1ED :101C800002F168C103F13EEC12F055EC07F024EFCD :101C900012F00401690E826F4BEC07F004012C0E68 :101CA000826F4BEC07F00101040E006F000E016F14 :101CB000000E026F000E036F18EC18F020C182F4C2 :101CC0000401300E82274BEC07F021C182F404019D :101CD000300E82274BEC07F022C182F40401300E53 :101CE00082274BEC07F023C182F40401300E8227D7 :101CF0004BEC07F024C182F40401300E82274BEC38 :101D000007F025C182F40401300E82274BEC07F066 :101D100026C182F40401300E82274BEC07F027C164 :101D200082F40401300E82274BEC07F004012C0EE4 :101D3000826F4BEC07F00101060E006F000E016F81 :101D4000000E026F000E036F18EC18F020C182F431 :101D50000401300E82274BEC07F021C182F404010C :101D6000300E82274BEC07F022C182F40401300EC2 :101D700082274BEC07F023C182F40401300E822746 :101D80004BEC07F024C182F40401300E82274BECA7 :101D900007F025C182F40401300E82274BEC07F0D6 :101DA00026C182F40401300E82274BEC07F027C1D4 :101DB00082F40401300E82274BEC07F004012C0E54 :101DC000826F4BEC07F00101110E006F000E016FE6 :101DD000000E026F000E036F18EC18F020C182F4A1 :101DE0000401300E82274BEC07F021C182F404017C :101DF000300E82274BEC07F022C182F40401300E32 :101E000082274BEC07F023C182F40401300E8227B5 :101E10004BEC07F024C182F40401300E82274BEC16 :101E200007F025C182F40401300E82274BEC07F045 :101E300026C182F40401300E82274BEC07F027C143 :101E400082F40401300E82274BEC07F004012C0EC3 :101E5000826F4BEC07F0200EF86EF76AF66A040109 :101E60000900F5CF82F44BEC07F00900F5CF82F4BE :101E70004BEC07F00900F5CF82F44BEC07F00900BA :101E8000F5CF82F44BEC07F00900F5CF82F44BEC70 :101E900007F00900F5CF82F44BEC07F00900F5CF0D :101EA00082F44BEC07F00900F5CF82F44BEC07F01D :101EB00055EC07F024EF12F08351630AD8A424EF05 :101EC00012F08451610AD8A424EF12F085516C0AF3 :101ED000D8A424EF12F08651410A42E08651440A08 :101EE0001BE08651420AD8B4C3EF0FF08651350A81 :101EF000D8B4ADEF13F08651360AD8B401EF14F020 :101F00008651370AD8B469EF14F08651380AD8B42C :101F1000C7EF14F024EF12F00798079A04017A0E25 :101F2000826F4BEC07F00401780E826F4BEC07F0E8 :101F30000401640E826F4BEC07F081A8A7EF0FF04D :101F40000401550E826F4BEC07F0ACEF0FF004016B :101F50004C0E826F4BEC07F055EC07F024EF12F0BB :101F60000788079A04017A0E826F4BEC07F0040190 :101F7000410E826F4BEC07F00401610E826F4BEC57 :101F800007F09DEF0FF00798078A04017A0E826F21 :101F90004BEC07F00401420E826F4BEC07F004019A :101FA000610E826F4BEC07F09DEF0FF00101620EA6 :101FB000046F010E056F000E066F000E076F59C10A :101FC00000F15AC101F15BC102F15CC103F17EEC89 :101FD00017F003BF33EF10F00E0E76EC05F0E8CFEC :101FE0000CF10F0E76EC05F0E8CF0DF1100E76EC4B :101FF00005F0E8CF0EF1110E76EC05F0E8CF0FF109 :10200000C7EC16F059C104F15AC105F15BC106F1E4 :102010005CC107F17EEC17F007828BEC16F0C7EC81 :1020200016F007928BEC16F059C100F15AC101F17C :102030005BC102F15CC103F107928BEC16F0CC0E90 :10204000046FE00E056F870E066F050E076F7EECBE :1020500017F000C10CF101C10DF102C10EF103C175 :102060000FF16BEF10F00101800E006F1A0E016F7F :10207000060E026F000E036F42C104F143C105F169 :1020800044C106F145C107F17EEC17F003AF4CEFF8 :1020900010F075EC18F012000E0E76EC05F0E8CF9B :1020A0000CF10F0E76EC05F0E8CF0DF1100E76EC8A :1020B00005F0E8CF0EF1110E76EC05F0E8CF0FF148 :1020C00042C100F143C101F144C102F145C103F134 :1020D00007828BEC16F00CC100F10DC101F10EC1AD :1020E00002F10FC103F112008251520A03E10E8284 :1020F0007BEF10F00E92078455C159F156C15AF189 :1021000057C15BF158C15CF13EC142F13FC143F19F :1021100040C144F141C145F14AC14CF14BC14DF1BF :1021200007940EA0B2EF10F0010165679FEF10F069 :1021300066679FEF10F067679FEF10F06867A3EF87 :1021400010F0B2EF10F0D6EC0FF065C104F166C1EB :1021500005F167C106F168C107F17EEC17F003BF16 :10216000ECEF11F0D6EC0FF00101000E046F000E41 :10217000056F010E066F000E076FACEC17F004013F :10218000720E826F4BEC07F004012C0E826F4BEC49 :1021900007F018EC18F01D67D3EF10F00401200EC3 :1021A000826FD6EF10F004012D0E826F4BEC07F01A :1021B00024C182F40401300E82274BEC07F025C1C4 :1021C00082F40401300E82274BEC07F004012E0E3E :1021D000826F4BEC07F026C182F40401300E822797 :1021E0004BEC07F027C182F40401300E82274BEC40 :1021F00007F004016D0E826F4BEC07F004012C0E0A :10220000826F4BEC07F042C100F143C101F144C1C0 :1022100002F145C103F1010118EC18F044EC16F08D :102220000401480E826F4BEC07F004017A0E826FB6 :102230004BEC07F004012C0E826F4BEC07F059C1F8 :1022400000F15AC101F15BC102F15CC103F101016E :1022500018EC18F044EC16F00401630E826F4BEC9E :1022600007F004012C0E826F4BEC07F059C100F10E :102270005AC101F15BC102F15CC103F101010A0E17 :10228000046F000E056F000E066F000E076F8DECD9 :1022900017F0000E046F120E056F000E066F000E91 :1022A000076FACEC17F018EC18F01EC182F40401B3 :1022B000300E82274BEC07F01FC182F40401300E70 :1022C00082274BEC07F020C182F40401300E8227F4 :1022D0004BEC07F021C182F40401300E82274BEC55 :1022E00007F022C182F40401300E82274BEC07F084 :1022F00023C182F40401300E82274BEC07F024C185 :1023000082F40401300E82274BEC07F004012E0EFC :10231000826F4BEC07F025C182F40401300E822756 :102320004BEC07F026C182F40401300E82274BECFF :1023300007F027C182F40401300E82274BEC07F02E :102340000401730E826F4BEC07F004012C0E826FB8 :102350004BEC07F075EC18F04CC100F14DC101F1E8 :102360004DEC13F00EB2B8EF11F00EA0EAEF11F041 :1023700004012C0E826F4BEC07F0200EF86EF76A0A :10238000F66A04010900F5CF82F44BEC07F009006E :10239000F5CF82F44BEC07F00900F5CF82F44BEC5B :1023A00007F00900F5CF82F44BEC07F00900F5CFF8 :1023B00082F44BEC07F00900F5CF82F44BEC07F008 :1023C0000900F5CF82F44BEC07F00900F5CF82F459 :1023D0004BEC07F055EC07F00E9024EF12F00401DF :1023E000630E826F4BEC07F004012C0E826F4BECF6 :1023F00007F029EC12F004012C0E826F4BEC07F071 :102400009CEC12F004012C0E826F4BEC07F018ECE0 :1024100013F004012C0E826F4BEC07F00101F80E53 :10242000006FCD0E016F660E026F030E036F3EEC60 :1024300012F004012C0E826F4BEC07F02EEC13F01F :1024400055EC07F024EF12F00301A26B07902FEF79 :1024500015F0D8900E0E76EC05F0E8CF00F10F0ED7 :1024600076EC05F0E8CF01F1100E76EC05F0E8CF40 :1024700002F1110E76EC05F0E8CF03F10101000E38 :10248000046F000E056F010E066F000E076FACECB7 :1024900017F018EC18F01EC182F40401300E8227E8 :1024A0004BEC07F01FC182F40401300E82274BEC85 :1024B00007F020C182F40401300E82274BEC07F0B4 :1024C00021C182F40401300E82274BEC07F022C1B7 :1024D00082F40401300E82274BEC07F023C182F412 :1024E0000401300E82274BEC07F024C182F4040172 :1024F000300E82274BEC07F025C182F40401300E28 :1025000082274BEC07F004012E0E826F4BEC07F094 :1025100026C182F40401300E82274BEC07F027C15C :1025200082F40401300E82274BEC07F004016D0E9B :10253000826F4BEC07F01200120E76EC05F0E8CF3C :1025400000F1130E76EC05F0E8CF01F1140E76ECF5 :1025500005F0E8CF02F1150E76EC05F0E8CF03F1B7 :1025600001010A0E046F000E056F000E066F000ECB :10257000076F8DEC17F0000E046F120E056F000E42 :10258000066F000E076FACEC17F018EC18F01EC1C8 :1025900082F40401300E82274BEC07F01FC182F455 :1025A0000401300E82274BEC07F020C182F40401B5 :1025B000300E82274BEC07F021C182F40401300E6B :1025C00082274BEC07F022C182F40401300E8227EF :1025D0004BEC07F023C182F40401300E82274BEC50 :1025E00007F024C182F40401300E82274BEC07F07F :1025F00004012E0E826F4BEC07F025C182F404011A :10260000300E82274BEC07F026C182F40401300E15 :1026100082274BEC07F027C182F40401300E822799 :102620004BEC07F00401730E826F4BEC07F01200C5 :102630000A0E76EC05F0E8CF00F10B0E76EC05F013 :10264000E8CF01F10C0E76EC05F0E8CF02F10D0EAB :1026500076EC05F0E8CF03F14DEF13F0060E76ECC3 :1026600005F0E8CF00F1070E76EC05F0E8CF01F1B8 :10267000080E76EC05F0E8CF02F1090E76EC05F0D5 :10268000E8CF03F14DEF13F0010175EC18F007846A :102690004AC100F14BC101F107940101E80E046F3A :1026A000800E056F000E066F000E076F8DEC17F0A1 :1026B000000E046F040E056F000E066F000E076F0C :1026C000ACEC17F0880E046F130E056F000E066F4A :1026D000000E076F7EEC17F00A0E046F000E056FF8 :1026E000000E066F000E076FACEC17F018EC18F038 :1026F00001011D6781EF13F00401200E826F84EF4A :1027000013F004012D0E826F4BEC07F024C182F40C :102710000401300E82274BEC07F025C182F404013E :10272000300E82274BEC07F026C182F40401300EF4 :1027300082274BEC07F004012E0E826F4BEC07F062 :1027400027C182F40401300E82274BEC07F004010C :10275000430E826F4BEC07F0120087C31EF188C353 :102760001FF189C320F18AC321F18BC322F18CC3ED :1027700023F18DC324F18EC325F190C326F191C3BB :1027800027F10101C2EC18F03AEC18F00101000E3B :10279000046F000E056F010E066F000E076F8DECC3 :1027A00017F00E0E0C6E00C10BF060EC05F00F0E72 :1027B0000C6E01C10BF060EC05F0100E0C6E02C146 :1027C0000BF060EC05F0110E0C6E03C10BF060EC29 :1027D00005F004017A0E826F4BEC07F004012C0E19 :1027E000826F4BEC07F00401350E826F4BEC07F063 :1027F00004012C0E826F4BEC07F029EC12F0ACEFC9 :102800000FF087C31EF188C31FF189C320F18AC36B :1028100021F18BC322F18CC323F18DC324F18EC32C :1028200025F190C326F191C327F10101C2EC18F004 :102830003AEC18F0880E046F130E056F000E066F49 :10284000000E076F82EC17F0000E046F040E056F88 :10285000000E066F000E076F8DEC17F00101E80EF9 :10286000046F800E056F000E066F000E076FACEC54 :1028700017F00A0E0C6E00C10BF060EC05F00B0EA9 :102880000C6E01C10BF060EC05F00C0E0C6E02C179 :102890000BF060EC05F00D0E0C6E03C10BF060EC5C :1028A00005F004017A0E826F4BEC07F004012C0E48 :1028B000826F4BEC07F00401360E826F4BEC07F091 :1028C00004012C0E826F4BEC07F018EC13F0ACEF08 :1028D0000FF087C31EF188C31FF189C320F18AC39B :1028E00021F18BC322F18CC323F18DC324F18FC35B :1028F00025F190C326F191C327F10101C2EC18F034 :102900003AEC18F0000E046F120E056F000E066F01 :10291000000E076F8DEC17F001010A0E046F000E18 :10292000056F000E066F000E076FACEC17F0120E6D :102930000C6E00C10BF060EC05F0130E0C6E01C1C3 :102940000BF060EC05F0140E0C6E02C10BF060ECA5 :1029500005F0150E0C6E03C10BF060EC05F00401E0 :102960007A0E826F4BEC07F004012C0E826F4BEC59 :1029700007F00401370E826F4BEC07F004012C0EB8 :10298000826F4BEC07F09CEC12F0ACEF0FF087C3BA :102990001EF188C31FF189C320F18AC321F18BC3C3 :1029A00022F18CC323F18DC324F18EC325F190C392 :1029B00026F191C327F10101C2EC18F03AEC18F0AE :1029C000880E046F130E056F000E066F000E076F62 :1029D00082EC17F0000E046F040E056F000E066FF8 :1029E000000E076F8DEC17F00101E80E046F800EEA :1029F000056F000E066F000E076FACEC17F0060EA9 :102A00000C6E00C10BF060EC05F0070E0C6E01C1FE :102A10000BF060EC05F0080E0C6E02C10BF060ECE0 :102A200005F0090E0C6E03C10BF060EC05F004011B :102A30007A0E826F4BEC07F004012C0E826F4BEC88 :102A400007F00401380E826F4BEC07F004012C0EE6 :102A5000826F4BEC07F02EEC13F0ACEF0FF081A877 :102A6000EDEF15F007A8A6EF15F00101800E006F3D :102A70001A0E016F060E026F000E036F3EC104F1C5 :102A80003FC105F140C106F141C107F17EEC17F0ED :102A900003BFEDEF15F03EEC16F03EC100F13FC173 :102AA00001F140C102F141C103F107828BEC16F044 :102AB0000CC104F10DC105F10EC106F10FC107F102 :102AC000F80E006FCD0E016F660E026F030E036FDE :102AD0007EEC17F00E0E0C6E00C10BF060EC05F0F2 :102AE0000F0E0C6E01C10BF060EC05F0100E0C6EB9 :102AF00002C10BF060EC05F0110E0C6E03C10BF07F :102B000060EC05F00784010175EC18F04AC100F192 :102B10004BC101F107940A0E0C6E00C10BF060EC82 :102B200005F00B0E0C6E01C10BF060EC05F00C0E05 :102B30000C6E02C10BF060EC05F00D0E0C6E03C1C3 :102B40000BF060EC05F00798EDEF15F007AAEDEF3C :102B500015F00784010175EC18F04AC100F14BC172 :102B600001F10794060E0C6E00C10BF060EC05F04D :102B7000070E0C6E01C10BF060EC05F0080E0C6E38 :102B800002C10BF060EC05F0090E0C6E03C10BF0F6 :102B900060EC05F0078455C100F156C101F157C141 :102BA00002F158C103F10794120E0C6E00C10BF034 :102BB00060EC05F0130E0C6E01C10BF060EC05F03B :102BC000140E0C6E02C10BF060EC05F0150E0C6ECD :102BD00003C10BF060EC05F0079A040180518119E4 :102BE0007F0B0BE09EA809D014EE00F081517F0B03 :102BF000E126E750812B0F01AD6E11EC19F080A496 :102C00000AEF16F0949C94928A84898CFC0ED31659 :102C100010EF16F0948C94828A94899C020ED31241 :102C2000BEEF06F00CC100F10DC101F10EC102F1C1 :102C30000FC103F1000E046F000E056F010E066F49 :102C4000000E076FACEC17F01DA13DEF16F014510C :102C5000D8B43DEF16F00CC100F10DC101F10EC169 :102C600002F10FC103F1000E046F000E056F0A0E92 :102C7000066F000E076FACEC17F0120001010C6B31 :102C80000D6B0E6B0F6B12001EC182F40401300E2F :102C900082274BEC07F01FC182F40401300E82271B :102CA0004BEC07F020C182F40401300E82274BEC7C :102CB00007F021C182F40401300E82274BEC07F0AB :102CC00022C182F40401300E82274BEC07F023C1AD :102CD00082F40401300E82274BEC07F024C182F409 :102CE0000401300E82274BEC07F025C182F4040169 :102CF000300E82274BEC07F026C182F40401300E1F :102D000082274BEC07F027C182F40401300E8227A2 :102D10004BEC07F012000101005305E1015303E100 :102D2000025301E1002B4EEC17F075EC18F02C511A :102D3000006F2D51016F420E046F4B0E056F000E98 :102D4000066F000E076F8DEC17F000C104F101C192 :102D500005F102C106F103C107F10CC100F10DC17B :102D600001F10EC102F10FC103F107B2BCEF16F081 :102D700082EC17F0BEEF16F07EEC17F000C10CF1FC :102D800001C10DF102C10EF103C10FF1120075EC8A :102D900018F04CC100F14DC101F1060E76EC05F0C2 :102DA000E8CF04F1070E76EC05F0E8CF05F1080E48 :102DB00076EC05F0E8CF06F1090E76EC05F0E8CFE9 :102DC00007F17EEC17F000C118F101C119F102C141 :102DD0001AF103C11BF1290E046F000E056F000EDE :102DE000066F000E076F8DEC17F0EE0E046F430EAA :102DF000056F000E066F000E076F82EC17F018C10A :102E000004F119C105F11AC106F11BC107F18DECDE :102E100017F000C110F101C111F102C112F103C19B :102E200013F1120E76EC05F0E8CF04F1130E76ECF8 :102E300005F0E8CF05F1140E76EC05F0E8CF06F1C9 :102E4000150E76EC05F0E8CF07F10D0E006F000EC1 :102E5000016F000E026F000E036F8DEC17F0180E5D :102E6000046F000E056F000E066F000E076FACECCE :102E700017F010C104F111C105F112C106F113C11F :102E800007F182EC17F06A0E046F2A0E056F000E30 :102E9000066F000E076F7EEC17F01200BF0EFA6E81 :102EA000200E2D6F2C6BD890003701370237033777 :102EB000D8B05FEF17F02D2F54EF17F02C072D0728 :102EC0000353D8B412000331070B8009326F033962 :102ED0000F0B010F2C6F80EC5FF0336F2C0580EC33 :102EE0005FF0335D335F2C6B3233D8B02C272C333B :102EF00032A974EF17F033512C2712009AEC18F016 :102F0000D8B0120003510719286F5DEC18F0D89063 :102F10000751031928AF800F1200286B81EC18F0BD :102F2000D8A097EC18F0D8B012006CEC18F075EC43 :102F300018F01F0E296FADEC18F00B35D8B05DEC12 :102F400018F0D8A00335D8B01200292F9BEF17F046 :102F500028B184EC18F01200286B045105110611F9 :102F600007110008D8A081EC18F0D8A097EC18F051 :102F7000D8B01200086B096B0A6B0B6BADEC18F044 :102F80001F0E296FADEC18F007510B5DD8A4D5EFDB :102F900017F006510A5DD8A4D5EF17F00551095D69 :102FA000D8A4D5EF17F00451085DD8A0E8EF17F0CA :102FB0000451085F0551D8A0053D095F0651D8A00E :102FC000063D0A5F0751D8A0073D0B5FD8900081EE :102FD000292FC2EF17F028B184EC18F0286B81EC90 :102FE00018F0D890B1EC18F007510B5DD8A405EF9C :102FF00018F006510A5DD8A405EF18F00551095DD7 :10300000D8A405EF18F00451085DD8A014EF18F00B :10301000003F14EF18F0013F14EF18F0023F14EFD7 :1030200018F0032BD8B4120028B184EC18F0120069 :103030000101286B81EC18F0D8B01200B6EC18F042 :10304000200E296F003701370237033711EE27F0C2 :103050000A0E2A6FE7360A0EE75CD8B0E76EE55233 :103060002A2F2AEF18F0292F22EF18F028B11D81FE :10307000D890120001010A0E286F200E296F11EE60 :103080001DF028512A6F0A0ED890E652D8B0E726D4 :10309000E7322A2F45EF18F00333023301330033B0 :1030A000292F3FEF18F0E750FF0FD8A00335D8B015 :1030B00012001DB184EC18F01200045100270551D4 :1030C000D8B0053D01270651D8B0063D022707516B :1030D000D8B0073D032712000051086F0151096F56 :1030E00002510A6F03510B6F12000101006B016B5B :1030F000026B036B12000101046B056B066B076B1F :1031000012000335D8A012000351800B001F011FCD :10311000021F031F003F94EF18F0013F94EF18F0D7 :10312000023F94EF18F0032B282B032512000735DC :10313000D8A012000751800B041F051F061F071F90 :10314000043FAAEF18F0053FAAEF18F0063FAAEFD8 :1031500018F0072B282B07251200003701370237FC :103160000337083709370A370B3712001D6B1E6B00 :103170001F6B206B216B226B236B246B256B266BE3 :10318000276B12001E510F0B1E6F1F510F0B1F6F6D :1031900020510F0B206F21510F0B216F22510F0B6C :1031A000226F23510F0B236F24510F0B246F2551D6 :1031B0000F0B256F26510F0B266F27510F0B276F13 :1031C00012008A969E96CC0EC96E9EA6E5EF18F068 :1031D0009E960B0EC96E9EA6EBEF18F08A860E84A3 :1031E00012008A969E96000EC96E9EA6F5EF18F004 :1031F0009E96000EC96E9EA6FBEF18F08A868A96F0 :103200009E96820EC96E9EA603EF19F09E96A3C3EA :10321000C9FF9EA609EF19F081B20CEF19F08A865A :10322000120081B2DDEF19F08A969E96000EC96EEB :103230009EA618EF19F0C9AEDDEF19F09E96000EAC :10324000C96E9EA621EF19F0C9CFE8FF240A07E155 :103250000E8600C504F501C505F50501066B0EA631 :103260005EEF19F005010651010A11E00651020A4C :1032700012E00651030A13E00651040A14E0065155 :10328000050A15E00651090A16E05DEF19F0C9CFED :1032900007F55DEF19F0C9CF08F55DEF19F0C9CF5B :1032A00009F55DEF19F0C9CF0AF55DEF19F0C9CF47 :1032B0000BF55DEF19F0C9CF0CF5062BC9CFE8FF70 :1032C0000A0A6AE10E960751470A66E10951470A60 :1032D0000EE00951520A48E00951560A4DE00951E1 :1032E0004D0A50E009515A0A53E0CCEF19F00A5147 :1032F000470A16E00A514C0A19E00B51410A1CE03A :103300000B51560A02E0CCEF19F00C51310A1AE0C9 :103310000C51320A1DE00C51330A20E0CCEF19F0B9 :1033200004C50DF505C50EF5CCEF19F004C50FF574 :1033300005C510F5CCEF19F004C511F505C512F55A :10334000CCEF19F004C513F505C514F5CCEF19F051 :1033500004C515F505C516F5CCEF19F004C517F52C :1033600005C518F5CCEF19F004C519F505C51AF512 :10337000E9EC1AF0CCEF19F004C51BF505C51CF5F6 :10338000CCEF19F004C51DF505C51EF5CCEF19F0FD :1033900004C51FF505C520F526EE00F00501005116 :1033A000D9260151D8B00129DA26C9CFDFFF05019E :1033B000012B003F0107030E01178A861200050149 :1033C000256B266B276B286B296B2A6B2B6B2C6B61 :1033D000216B226B236B246B899A9E96030EC96E18 :1033E0009EA6FED79E9623C5C9FF9EA6FED79E9693 :1033F00022C5C9FF9EA6FED79E9621C5C9FF9EA6DF :10340000FED79E96C9529EA6FED7898AC950FF0A4A :103410000AE121C529F522C52AF523C52BF524C5C6 :103420002CF51EEF1AF0200E2127E86A2223E86A05 :10343000232323A9ECEF19F04EEF1AF0899A9E96F8 :10344000030EC96E9EA6FED79E9623C5C9FF9EA6F3 :10345000FED79E9622C5C9FF9EA6FED79E9621C581 :10346000C9FF9EA6FED79E96C9529EA6FED7898A00 :10347000C950FF0A0AE021C525F522C526F523C556 :1034800027F524C528F54EEF1AF0200E2127E86A0B :103490002223E86A232323A91EEF1AF01200899A37 :1034A0009E96060EC96E9EA6FED7898A899A9E961A :1034B000C70EC96E9EA6FED7898A899A9E96050E6A :1034C000C96E9EA6FED79E96C9529EA6FED7C9B0CB :1034D00063EF1AF0898A1200899A9E96060EC96EC9 :1034E0009EA6FED7898A899A9E96200EC96E9EA6B0 :1034F000FED79E9602C1C9FF9EA6FED79E9601C129 :10350000C9FF9EA6FED79E9600C1C9FF9EA6FED704 :10351000898A899A9E96050EC96E9EA6FED79E96AA :10352000C9529EA6FED7C9B08FEF1AF0898A120041 :1035300029C500F12AC501F12BC502F12CC503F103 :103540000101005105E101510F0BD8B46CEC1AF0E8 :103550000501FE0E2E6F0501200E2D6F899A9E9695 :10356000060EC96E9EA6FED7898A899A9E96020E7D :10357000C96E9EA6FED79E962BC5C9FF9EA6FED7F6 :103580009E962AC5C9FF9EA6FED79E9629C5C9FF4D :103590009EA6FED725EE2EF02D2F02D0D7EF1AF0E3 :1035A0009E96DECFC9FF9EA6FED7CCEF1AF0898A81 :1035B000899A9E96050EC96E9EA6FED79E96C95202 :1035C0009EA6FED7C9B0DEEF1AF0898A8EEC1CF0F9 :1035D000120019C502F51AC503F525EE5EF00501C6 :1035E0002D6B16EE00F005010251E1260351D8B013 :1035F0000329E226E7CFE8FF2C0A06E12DC5DEFF0E :1036000005012D6B0CEF1BF0E7CFE8FF2A0A0CE059 :10361000E7CFDEFF05012D2B0501032B023F03073A :10362000030E0317F1EF1AF005012E6B2F6B306BB1 :10363000316B326B336B346B356B366B376B386B8E :10364000396B3A6B3B6B3C6B3D6B3E6B3F6B406B3E :10365000416B426B436B446B456B466B476B486BEE :10366000496B4A6B4B6B4C6B4D6BDDCFE8FF050133 :103670002D5105E0DDCFE8FF2D2F3AEF1BF00501BE :10368000DDCF2DF52D5105E0DDCFE8FF2D2F44EFE7 :103690001BF00501DDCF2DF52D5105E0DDCFE8FF55 :1036A0002D2F4EEF1BF011EE27F00101B6EC18F0B4 :1036B0000501DDCF2DF52D5105E0DDCFE5FF2D2FE7 :1036C0005DEF1BF00101C2EC18F03AEC18F000C1FC :1036D0002FF501C130F502C131F50501DDCF2DF522 :1036E0002D5105E0DDCFE8FF2D2F72EF1BF0050116 :1036F000DDCF2DF52D5105E0DDCFE8FF2D2F7CEF3F :103700001BF00501DDCF2DF52D5107E0DDCFE8FFE2 :10371000E8A82E852D2F86EF1BF011EE27F0010172 :10372000B6EC18F00501DDCF2DF52D5114E0DDCFFD :10373000E5FFDDCFE5FFDDCFE5FFDDCFE5FFDDCF49 :10374000E8FFDDCFE5FFDDCFE5FFDDCFE5FFDDCF36 :10375000E5FFDDCFE5FF0101C2EC18F03AEC18F00F :1037600000C139F501C13AF502C13BF503C13CF591 :103770000501DDCF2DF52D5107E0DDCFE8FFE8A8ED :103780002E832D2FBDEF1BF011EE27F00101B6ECBB :1037900018F00501DDCF2DF52D5105E0DDCFE5FF5A :1037A0002D2FCEEF1BF0010122C123F121C122F107 :1037B00020C121F11FC120F1C2EC18F03AEC18F041 :1037C00000C135F501C136F502C137F503C138F541 :1037D0000501DDCF2DF52D5107E0DDCFE8FF2D2FC1 :1037E000EDEF1BF0E8B02E8711EE27F00101B6ECEB :1037F00018F0DDCFE8FFDDCFE8FFDDCFE8FFDDCF5C :10380000E8FFDDCFE8FFDDCFE5FFDDCFE5FFDDCF72 :10381000E5FFDDCFE5FFDDCFE5FFDDCFE5FFC2EC66 :1038200018F03AEC18F000C132F501C133F502C1CD :1038300034F5078455C159F156C15AF157C15BF1AE :1038400058C15CF13EC142F13FC143F140C144F176 :1038500041C145F14AC14CF14BC14DF10794D6EC41 :103860000FF000C13DF501C13EF502C13FF503C1B6 :1038700040F5120021C500F122C501F123C502F176 :1038800024C503F1899A9E960B0EC96E9EA6FED79B :103890009E9602C1C9FF9EA6FED79E9601C1C9FF92 :1038A0009EA6FED79E9600C1C9FF9EA6FED79E96F5 :1038B000C9529EA6FED725EE2EF00501200E2D6FD3 :1038C0009E96C9529EA6FED7C9CFDEFF2D2F60EF70 :1038D0001CF0898A1200899A9E96900EC96E9EA647 :1038E000FED79E96000EC96E9EA6FED79E96000E2F :1038F000C96E9EA6FED79E96000EC96E9EA6FED7E6 :103900009E96C9529EA6FED7C9CF2EF59E96C95245 :103910009EA6FED7C9CF2FF5898A12000501200E79 :103920002927E86A2A23E86A2B232BA91200296B8E :063930002A6B2B6B120054 :10BF0000E844F926000C160C2B0C3F0C520C640C68 :10BF1000760C860C960CA50CB30CC10CCF0CDC0C6B :06BF2000E80CF40C000C1B :00000001FF ������������������������������������������������./dattokml.lrs��������������������������������������������������������������������������������������0000644�0001750�0001750�00000007437�14576573022�013524� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ This is an automatically generated lazarus resource file } LazarusResources.Add('TForm7','FORMDATA',[ 'TPF0'#6'TForm7'#5'Form7'#4'Left'#3'T'#7#6'Height'#3#193#1#3'Top'#2'2'#5'Widt' +'h'#3#248#1#7'Caption'#6#23'.dat to .kml conversion'#12'ClientHeight'#3#193#1 +#11'ClientWidth'#3#248#1#21'Constraints.MinHeight'#3#193#1#20'Constraints.Mi' +'nWidth'#3#248#1#6'OnShow'#7#8'FormShow'#8'Position'#7#14'poScreenCenter'#10 +'LCLVersion'#6#7'1.8.2.0'#0#6'TImage'#11'SchemeImage'#22'AnchorSideLeft.Cont' +'rol'#7#16'ColorSchemeGroup'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'Ancho' +'rSideTop.Control'#7#5'Owner'#23'AnchorSideRight.Control'#7#9'HelpNotes'#24 +'AnchorSideBottom.Control'#7#10'StatusLine'#4'Left'#3#128#0#6'Height'#3#156#1 +#3'Top'#2#4#5'Width'#2'x'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBo' +'ttom'#0#20'BorderSpacing.Around'#2#4#0#0#7'TButton'#22'SelectAndConvertButt' +'on'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#16'Co' +'lorSchemeGroup'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#4#6'Height' +#2#25#3'Top'#2'\'#5'Width'#2'x'#20'BorderSpacing.Around'#2#4#7'Caption'#6#18 +'Select and convert'#7'OnClick'#7#27'SelectAndConvertButtonClick'#8'TabOrder' +#2#0#0#0#5'TMemo'#9'HelpNotes'#21'AnchorSideTop.Control'#7#5'Owner'#23'Ancho' +'rSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'A' +'nchorSideBottom.Control'#7#10'StatusLine'#4'Left'#3#252#0#6'Height'#3#156#1 +#3'Top'#2#4#5'Width'#3#248#0#7'Anchors'#11#5'akTop'#7'akRight'#8'akBottom'#0 +#20'BorderSpacing.Around'#2#4#13'Lines.Strings'#1#6#133'This tool converts a' +' .dat log file to a .kml file. This is used when a connected meter and an e' +'xternal GPS are read by UDM in the Log'#6#29'Continuous datalogging mode. ' +#6#0#6'+The .kml file can be opened in GoogleEarth.'#6#0#6'xThe legend image' +' (kmllegend*.png) must be available to GoogleEarth in the same directory to' +' properly display the legend.'#6#0#6'oThe color range shows values that are' +' greater than the lower number and less than or equal to the upper number.' +#0#8'ReadOnly'#9#8'TabOrder'#2#1#0#0#11'TRadioGroup'#16'ColorSchemeGroup'#22 +'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#4'L' +'eft'#2#4#6'Height'#2'T'#3'Top'#2#4#5'Width'#2'x'#8'AutoFill'#9#20'BorderSpa' +'cing.Around'#2#4#7'Caption'#6#12'Color scheme'#28'ChildSizing.LeftRightSpac' +'ing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27 +'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.' +'ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14 +'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom' +#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'C'#11'ClientWidth'#2 +'t'#9'ItemIndex'#2#0#13'Items.Strings'#1#6#9'New atlas'#6#12'Cleardarksky'#0 +#7'OnClick'#7#21'ColorSchemeGroupClick'#8'TabOrder'#2#2#0#0#12'TLabeledEdit' +#10'StatusLine'#22'AnchorSideLeft.Control'#7#5'Owner'#23'AnchorSideRight.Con' +'trol'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBotto' +'m.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#4#6 +'Height'#2#25#3'Top'#3#164#1#5'Width'#3#240#1#7'Anchors'#11#6'akLeft'#7'akRi' +'ght'#8'akBottom'#0#20'BorderSpacing.Around'#2#4' EditLabel.AnchorSideLeft.C' +'ontrol'#7#10'StatusLine!EditLabel.AnchorSideRight.Control'#7#10'StatusLine' +#30'EditLabel.AnchorSideRight.Side'#7#9'asrBottom"EditLabel.AnchorSideBottom' +'.Control'#7#10'StatusLine'#14'EditLabel.Left'#2#4#16'EditLabel.Height'#2#15 +#13'EditLabel.Top'#3#145#1#15'EditLabel.Width'#3#240#1#17'EditLabel.Caption' +#6#7'Status:'#21'EditLabel.ParentColor'#8#8'TabOrder'#2#3#0#0#11'TOpenDialog' +#13'OpenLogDialog'#4'left'#2'('#3'top'#3#152#0#0#0#0 ]); ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./svg-logo16.png������������������������������������������������������������������������������������0000644�0001750�0001750�00000001651�14576573022�013565� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���������a���bKGD������ pHYs����+���tIME/9"��6IDAT8mmHxu+/&)ŢuKl2mɜa}&m ZjVmn0#3*`K^u^u>_V8_9*ƓbS@E\1Bk:`:}VJ«ܽm s> ]+DMF2J{瓙"ٮ<S/e\!]PnS@2Y7r tip[@#k�"= Jr"i|;1 pX LXk]sxc9nj)ru` vl~:?3oRx ˥2 .-~{V:_.](~ԕ2@>\ <[ѥ$YyǽLxɘ92S-zol6K$wlݤ;?щhm!UlyP';>VYOU^B/r:,٠>fgA֨}u;Է_+2Ј'&G7sgdeIOOgey@ {Ghjjĝ;LG"k֭ _coJo?[޳Anq_drM}:vIӧl$鹪j ]ׁW~h$A/b]zqUHXXL ,@XL: z ѱ1ՙ3ghjrB�utt(508Q;--M?:;;322H[~lfv.=== 4hf#O\ܚACR����IENDB`���������������������������������������������������������������������������������������./viewlog.pas���������������������������������������������������������������������������������������0000644�0001750�0001750�00000003451�14576573021�013333� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit viewlog; {$mode objfpc} interface uses Classes, SysUtils, FileUtil //, SynMemo , SynEdit, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls; type { TForm5 } TForm5 = class(TForm) SaveLog: TButton; SynEdit1: TSynEdit; procedure SaveLogClick(Sender: TObject); private { private declarations } public { public declarations } end; var Form5: TForm5; implementation uses dateutils , Unit1 , appsettings //For saving and restoring hotkeys. ; { TForm5 } { Save log to a file. } procedure TForm5.SaveLogClick(Sender: TObject); var OutFileName, LogString:String; LogFilename: TextFile; begin //Save contents to standard logging area OutFileName:=RemoveMultiSlash( appsettings.LogsDirectory+ DirectorySeparator+ Format('log_%s.txt', [FormatDateTime('yyyy-mm-dd_hhnnss', Now())])); AssignFile(LogFilename,OutFileName); try Rewrite(LogFilename); //create the file for LogString in SynEdit1.Lines do begin Writeln(LogFilename, LogString); end; except on E: Exception do ShowMessage( OutFileName+sLineBreak + 'Error: '+E.ClassName+sLineBreak + E.Message); //MessageDlg('ERROR! IORESULT','ERROR! IORESULT: ' // + IntToStr(IOResult) // + ' during LogCalButtonClick',mtWarning,[mbOK],0); end; CloseFile(LogFilename); //Message about where log was saved to MessageDlg('Log file stored in:' + sLineBreak + OutFileName, mtInformation,[mbOK],0); end; initialization {$I viewlog.lrs} end. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./sswin32.inc���������������������������������������������������������������������������������������0000644�0001750�0001750�00000155445�14576573021�013170� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{==============================================================================| | Project : Ararat Synapse | 002.003.001 | |==============================================================================| | Content: Socket Independent Platform Layer - Win32/64 definition include | |==============================================================================| | Copyright (c)1999-2012, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2003-2012. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@exclude} //{$DEFINE WINSOCK1} {Note about define WINSOCK1: If you activate this compiler directive, then socket interface level 1.1 is used instead default level 2.2. Level 2.2 is not available on old W95, however you can install update. } //{$DEFINE FORCEOLDAPI} {Note about define FORCEOLDAPI: If you activate this compiler directive, then is allways used old socket API for name resolution. If you leave this directive inactive, then the new API is used, when running system allows it. For IPv6 support you must have new API! } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} {$IFDEF VER125} {$DEFINE BCB} {$ENDIF} {$IFDEF BCB} {$ObjExportAll On} (*$HPPEMIT '/* EDE 2003-02-19 */' *) (*$HPPEMIT 'namespace Synsock { using System::Shortint; }' *) (*$HPPEMIT '#undef h_addr' *) (*$HPPEMIT '#undef IOCPARM_MASK' *) (*$HPPEMIT '#undef FD_SETSIZE' *) (*$HPPEMIT '#undef IOC_VOID' *) (*$HPPEMIT '#undef IOC_OUT' *) (*$HPPEMIT '#undef IOC_IN' *) (*$HPPEMIT '#undef IOC_INOUT' *) (*$HPPEMIT '#undef FIONREAD' *) (*$HPPEMIT '#undef FIONBIO' *) (*$HPPEMIT '#undef FIOASYNC' *) (*$HPPEMIT '#undef IPPROTO_IP' *) (*$HPPEMIT '#undef IPPROTO_ICMP' *) (*$HPPEMIT '#undef IPPROTO_IGMP' *) (*$HPPEMIT '#undef IPPROTO_TCP' *) (*$HPPEMIT '#undef IPPROTO_UDP' *) (*$HPPEMIT '#undef IPPROTO_RAW' *) (*$HPPEMIT '#undef IPPROTO_MAX' *) (*$HPPEMIT '#undef INADDR_ANY' *) (*$HPPEMIT '#undef INADDR_LOOPBACK' *) (*$HPPEMIT '#undef INADDR_BROADCAST' *) (*$HPPEMIT '#undef INADDR_NONE' *) (*$HPPEMIT '#undef INVALID_SOCKET' *) (*$HPPEMIT '#undef SOCKET_ERROR' *) (*$HPPEMIT '#undef WSADESCRIPTION_LEN' *) (*$HPPEMIT '#undef WSASYS_STATUS_LEN' *) (*$HPPEMIT '#undef IP_OPTIONS' *) (*$HPPEMIT '#undef IP_TOS' *) (*$HPPEMIT '#undef IP_TTL' *) (*$HPPEMIT '#undef IP_MULTICAST_IF' *) (*$HPPEMIT '#undef IP_MULTICAST_TTL' *) (*$HPPEMIT '#undef IP_MULTICAST_LOOP' *) (*$HPPEMIT '#undef IP_ADD_MEMBERSHIP' *) (*$HPPEMIT '#undef IP_DROP_MEMBERSHIP' *) (*$HPPEMIT '#undef IP_DONTFRAGMENT' *) (*$HPPEMIT '#undef IP_DEFAULT_MULTICAST_TTL' *) (*$HPPEMIT '#undef IP_DEFAULT_MULTICAST_LOOP' *) (*$HPPEMIT '#undef IP_MAX_MEMBERSHIPS' *) (*$HPPEMIT '#undef SOL_SOCKET' *) (*$HPPEMIT '#undef SO_DEBUG' *) (*$HPPEMIT '#undef SO_ACCEPTCONN' *) (*$HPPEMIT '#undef SO_REUSEADDR' *) (*$HPPEMIT '#undef SO_KEEPALIVE' *) (*$HPPEMIT '#undef SO_DONTROUTE' *) (*$HPPEMIT '#undef SO_BROADCAST' *) (*$HPPEMIT '#undef SO_USELOOPBACK' *) (*$HPPEMIT '#undef SO_LINGER' *) (*$HPPEMIT '#undef SO_OOBINLINE' *) (*$HPPEMIT '#undef SO_DONTLINGER' *) (*$HPPEMIT '#undef SO_SNDBUF' *) (*$HPPEMIT '#undef SO_RCVBUF' *) (*$HPPEMIT '#undef SO_SNDLOWAT' *) (*$HPPEMIT '#undef SO_RCVLOWAT' *) (*$HPPEMIT '#undef SO_SNDTIMEO' *) (*$HPPEMIT '#undef SO_RCVTIMEO' *) (*$HPPEMIT '#undef SO_ERROR' *) (*$HPPEMIT '#undef SO_OPENTYPE' *) (*$HPPEMIT '#undef SO_SYNCHRONOUS_ALERT' *) (*$HPPEMIT '#undef SO_SYNCHRONOUS_NONALERT' *) (*$HPPEMIT '#undef SO_MAXDG' *) (*$HPPEMIT '#undef SO_MAXPATHDG' *) (*$HPPEMIT '#undef SO_UPDATE_ACCEPT_CONTEXT' *) (*$HPPEMIT '#undef SO_CONNECT_TIME' *) (*$HPPEMIT '#undef SO_TYPE' *) (*$HPPEMIT '#undef SOCK_STREAM' *) (*$HPPEMIT '#undef SOCK_DGRAM' *) (*$HPPEMIT '#undef SOCK_RAW' *) (*$HPPEMIT '#undef SOCK_RDM' *) (*$HPPEMIT '#undef SOCK_SEQPACKET' *) (*$HPPEMIT '#undef TCP_NODELAY' *) (*$HPPEMIT '#undef AF_UNSPEC' *) (*$HPPEMIT '#undef SOMAXCONN' *) (*$HPPEMIT '#undef AF_INET' *) (*$HPPEMIT '#undef AF_MAX' *) (*$HPPEMIT '#undef PF_UNSPEC' *) (*$HPPEMIT '#undef PF_INET' *) (*$HPPEMIT '#undef PF_MAX' *) (*$HPPEMIT '#undef MSG_OOB' *) (*$HPPEMIT '#undef MSG_PEEK' *) (*$HPPEMIT '#undef WSABASEERR' *) (*$HPPEMIT '#undef WSAEINTR' *) (*$HPPEMIT '#undef WSAEBADF' *) (*$HPPEMIT '#undef WSAEACCES' *) (*$HPPEMIT '#undef WSAEFAULT' *) (*$HPPEMIT '#undef WSAEINVAL' *) (*$HPPEMIT '#undef WSAEMFILE' *) (*$HPPEMIT '#undef WSAEWOULDBLOCK' *) (*$HPPEMIT '#undef WSAEINPROGRESS' *) (*$HPPEMIT '#undef WSAEALREADY' *) (*$HPPEMIT '#undef WSAENOTSOCK' *) (*$HPPEMIT '#undef WSAEDESTADDRREQ' *) (*$HPPEMIT '#undef WSAEMSGSIZE' *) (*$HPPEMIT '#undef WSAEPROTOTYPE' *) (*$HPPEMIT '#undef WSAENOPROTOOPT' *) (*$HPPEMIT '#undef WSAEPROTONOSUPPORT' *) (*$HPPEMIT '#undef WSAESOCKTNOSUPPORT' *) (*$HPPEMIT '#undef WSAEOPNOTSUPP' *) (*$HPPEMIT '#undef WSAEPFNOSUPPORT' *) (*$HPPEMIT '#undef WSAEAFNOSUPPORT' *) (*$HPPEMIT '#undef WSAEADDRINUSE' *) (*$HPPEMIT '#undef WSAEADDRNOTAVAIL' *) (*$HPPEMIT '#undef WSAENETDOWN' *) (*$HPPEMIT '#undef WSAENETUNREACH' *) (*$HPPEMIT '#undef WSAENETRESET' *) (*$HPPEMIT '#undef WSAECONNABORTED' *) (*$HPPEMIT '#undef WSAECONNRESET' *) (*$HPPEMIT '#undef WSAENOBUFS' *) (*$HPPEMIT '#undef WSAEISCONN' *) (*$HPPEMIT '#undef WSAENOTCONN' *) (*$HPPEMIT '#undef WSAESHUTDOWN' *) (*$HPPEMIT '#undef WSAETOOMANYREFS' *) (*$HPPEMIT '#undef WSAETIMEDOUT' *) (*$HPPEMIT '#undef WSAECONNREFUSED' *) (*$HPPEMIT '#undef WSAELOOP' *) (*$HPPEMIT '#undef WSAENAMETOOLONG' *) (*$HPPEMIT '#undef WSAEHOSTDOWN' *) (*$HPPEMIT '#undef WSAEHOSTUNREACH' *) (*$HPPEMIT '#undef WSAENOTEMPTY' *) (*$HPPEMIT '#undef WSAEPROCLIM' *) (*$HPPEMIT '#undef WSAEUSERS' *) (*$HPPEMIT '#undef WSAEDQUOT' *) (*$HPPEMIT '#undef WSAESTALE' *) (*$HPPEMIT '#undef WSAEREMOTE' *) (*$HPPEMIT '#undef WSASYSNOTREADY' *) (*$HPPEMIT '#undef WSAVERNOTSUPPORTED' *) (*$HPPEMIT '#undef WSANOTINITIALISED' *) (*$HPPEMIT '#undef WSAEDISCON' *) (*$HPPEMIT '#undef WSAENOMORE' *) (*$HPPEMIT '#undef WSAECANCELLED' *) (*$HPPEMIT '#undef WSAEEINVALIDPROCTABLE' *) (*$HPPEMIT '#undef WSAEINVALIDPROVIDER' *) (*$HPPEMIT '#undef WSAEPROVIDERFAILEDINIT' *) (*$HPPEMIT '#undef WSASYSCALLFAILURE' *) (*$HPPEMIT '#undef WSASERVICE_NOT_FOUND' *) (*$HPPEMIT '#undef WSATYPE_NOT_FOUND' *) (*$HPPEMIT '#undef WSA_E_NO_MORE' *) (*$HPPEMIT '#undef WSA_E_CANCELLED' *) (*$HPPEMIT '#undef WSAEREFUSED' *) (*$HPPEMIT '#undef WSAHOST_NOT_FOUND' *) (*$HPPEMIT '#undef HOST_NOT_FOUND' *) (*$HPPEMIT '#undef WSATRY_AGAIN' *) (*$HPPEMIT '#undef TRY_AGAIN' *) (*$HPPEMIT '#undef WSANO_RECOVERY' *) (*$HPPEMIT '#undef NO_RECOVERY' *) (*$HPPEMIT '#undef WSANO_DATA' *) (*$HPPEMIT '#undef NO_DATA' *) (*$HPPEMIT '#undef WSANO_ADDRESS' *) (*$HPPEMIT '#undef ENAMETOOLONG' *) (*$HPPEMIT '#undef ENOTEMPTY' *) (*$HPPEMIT '#undef FD_CLR' *) (*$HPPEMIT '#undef FD_ISSET' *) (*$HPPEMIT '#undef FD_SET' *) (*$HPPEMIT '#undef FD_ZERO' *) (*$HPPEMIT '#undef NO_ADDRESS' *) (*$HPPEMIT '#undef ADDR_ANY' *) (*$HPPEMIT '#undef SO_GROUP_ID' *) (*$HPPEMIT '#undef SO_GROUP_PRIORITY' *) (*$HPPEMIT '#undef SO_MAX_MSG_SIZE' *) (*$HPPEMIT '#undef SO_PROTOCOL_INFOA' *) (*$HPPEMIT '#undef SO_PROTOCOL_INFOW' *) (*$HPPEMIT '#undef SO_PROTOCOL_INFO' *) (*$HPPEMIT '#undef PVD_CONFIG' *) (*$HPPEMIT '#undef AF_INET6' *) (*$HPPEMIT '#undef PF_INET6' *) {$ENDIF} {$IFDEF FPC} {$IFDEF WIN32} {$ALIGN OFF} {$ELSE} {$PACKRECORDS C} {$ENDIF} {$ELSE} {$IFDEF WIN64} {$ALIGN ON} {$MINENUMSIZE 4} {$ELSE} {$MINENUMSIZE 4} {$ALIGN OFF} {$ENDIF} {$ENDIF} interface uses SyncObjs, SysUtils, Classes, Windows; function InitSocketInterface(stack: String): Boolean; function DestroySocketInterface: Boolean; const {$IFDEF WINSOCK1} WinsockLevel = $0101; {$ELSE} WinsockLevel = $0202; {$ENDIF} type u_short = Word; u_int = Integer; u_long = Longint; pu_long = ^u_long; pu_short = ^u_short; {$IFDEF FPC} TSocket = ptruint; {$ELSE} {$IFDEF WIN64} TSocket = UINT_PTR; {$ELSE} TSocket = u_int; {$ENDIF} {$ENDIF} TAddrFamily = integer; TMemory = pointer; const {$IFDEF WINCE} DLLStackName = 'ws2.dll'; {$ELSE} {$IFDEF WINSOCK1} DLLStackName = 'wsock32.dll'; {$ELSE} DLLStackName = 'ws2_32.dll'; {$ENDIF} {$ENDIF} DLLwship6 = 'wship6.dll'; cLocalhost = '127.0.0.1'; cAnyHost = '0.0.0.0'; cBroadcast = '255.255.255.255'; c6Localhost = '::1'; c6AnyHost = '::0'; c6Broadcast = 'ffff::1'; cAnyPort = '0'; const FD_SETSIZE = 64; type PFDSet = ^TFDSet; TFDSet = record fd_count: u_int; fd_array: array[0..FD_SETSIZE-1] of TSocket; end; const FIONREAD = $4004667f; FIONBIO = $8004667e; FIOASYNC = $8004667d; type PTimeVal = ^TTimeVal; TTimeVal = record tv_sec: Longint; tv_usec: Longint; end; const IPPROTO_IP = 0; { Dummy } IPPROTO_ICMP = 1; { Internet Control Message Protocol } IPPROTO_IGMP = 2; { Internet Group Management Protocol} IPPROTO_TCP = 6; { TCP } IPPROTO_UDP = 17; { User Datagram Protocol } IPPROTO_IPV6 = 41; IPPROTO_ICMPV6 = 58; IPPROTO_RM = 113; IPPROTO_RAW = 255; IPPROTO_MAX = 256; type PInAddr = ^TInAddr; TInAddr = record case integer of 0: (S_bytes: packed array [0..3] of byte); 1: (S_addr: u_long); end; PSockAddrIn = ^TSockAddrIn; TSockAddrIn = record case Integer of 0: (sin_family: u_short; sin_port: u_short; sin_addr: TInAddr; sin_zero: array[0..7] of byte); 1: (sa_family: u_short; sa_data: array[0..13] of byte) end; TIP_mreq = record imr_multiaddr: TInAddr; { IP multicast address of group } imr_interface: TInAddr; { local IP address of interface } end; PInAddr6 = ^TInAddr6; TInAddr6 = record case integer of 0: (S6_addr: packed array [0..15] of byte); 1: (u6_addr8: packed array [0..15] of byte); 2: (u6_addr16: packed array [0..7] of word); 3: (u6_addr32: packed array [0..3] of integer); end; PSockAddrIn6 = ^TSockAddrIn6; TSockAddrIn6 = record sin6_family: u_short; // AF_INET6 sin6_port: u_short; // Transport level port number sin6_flowinfo: u_long; // IPv6 flow information sin6_addr: TInAddr6; // IPv6 address sin6_scope_id: u_long; // Scope Id: IF number for link-local // SITE id for site-local end; TIPv6_mreq = record ipv6mr_multiaddr: TInAddr6; // IPv6 multicast address. ipv6mr_interface: integer; // Interface index. padding: integer; end; PHostEnt = ^THostEnt; THostEnt = record h_name: PAnsiChar; h_aliases: ^PAnsiChar; h_addrtype: Smallint; h_length: Smallint; case integer of 0: (h_addr_list: ^PAnsiChar); 1: (h_addr: ^PInAddr); end; PNetEnt = ^TNetEnt; TNetEnt = record n_name: PAnsiChar; n_aliases: ^PAnsiChar; n_addrtype: Smallint; n_net: u_long; end; PServEnt = ^TServEnt; TServEnt = record s_name: PAnsiChar; s_aliases: ^PAnsiChar; {$ifdef WIN64} s_proto: PAnsiChar; s_port: Smallint; {$else} s_port: Smallint; s_proto: PAnsiChar; {$endif} end; PProtoEnt = ^TProtoEnt; TProtoEnt = record p_name: PAnsiChar; p_aliases: ^PAnsichar; p_proto: Smallint; end; const INADDR_ANY = $00000000; INADDR_LOOPBACK = $7F000001; INADDR_BROADCAST = $FFFFFFFF; INADDR_NONE = $FFFFFFFF; ADDR_ANY = INADDR_ANY; INVALID_SOCKET = TSocket(NOT(0)); SOCKET_ERROR = -1; Const {$IFDEF WINSOCK1} IP_OPTIONS = 1; IP_MULTICAST_IF = 2; { set/get IP multicast interface } IP_MULTICAST_TTL = 3; { set/get IP multicast timetolive } IP_MULTICAST_LOOP = 4; { set/get IP multicast loopback } IP_ADD_MEMBERSHIP = 5; { add an IP group membership } IP_DROP_MEMBERSHIP = 6; { drop an IP group membership } IP_TTL = 7; { set/get IP Time To Live } IP_TOS = 8; { set/get IP Type Of Service } IP_DONTFRAGMENT = 9; { set/get IP Don't Fragment flag } {$ELSE} IP_OPTIONS = 1; IP_HDRINCL = 2; IP_TOS = 3; { set/get IP Type Of Service } IP_TTL = 4; { set/get IP Time To Live } IP_MULTICAST_IF = 9; { set/get IP multicast interface } IP_MULTICAST_TTL = 10; { set/get IP multicast timetolive } IP_MULTICAST_LOOP = 11; { set/get IP multicast loopback } IP_ADD_MEMBERSHIP = 12; { add an IP group membership } IP_DROP_MEMBERSHIP = 13; { drop an IP group membership } IP_DONTFRAGMENT = 14; { set/get IP Don't Fragment flag } {$ENDIF} IP_DEFAULT_MULTICAST_TTL = 1; { normally limit m'casts to 1 hop } IP_DEFAULT_MULTICAST_LOOP = 1; { normally hear sends if a member } IP_MAX_MEMBERSHIPS = 20; { per socket; must fit in one mbuf } SOL_SOCKET = $ffff; {options for socket level } { Option flags per-socket. } SO_DEBUG = $0001; { turn on debugging info recording } SO_ACCEPTCONN = $0002; { socket has had listen() } SO_REUSEADDR = $0004; { allow local address reuse } SO_KEEPALIVE = $0008; { keep connections alive } SO_DONTROUTE = $0010; { just use interface addresses } SO_BROADCAST = $0020; { permit sending of broadcast msgs } SO_USELOOPBACK = $0040; { bypass hardware when possible } SO_LINGER = $0080; { linger on close if data present } SO_OOBINLINE = $0100; { leave received OOB data in line } SO_DONTLINGER = $ff7f; { Additional options. } SO_SNDBUF = $1001; { send buffer size } SO_RCVBUF = $1002; { receive buffer size } SO_SNDLOWAT = $1003; { send low-water mark } SO_RCVLOWAT = $1004; { receive low-water mark } SO_SNDTIMEO = $1005; { send timeout } SO_RCVTIMEO = $1006; { receive timeout } SO_ERROR = $1007; { get error status and clear } SO_TYPE = $1008; { get socket type } { WinSock 2 extension -- new options } SO_GROUP_ID = $2001; { ID of a socket group} SO_GROUP_PRIORITY = $2002; { the relative priority within a group} SO_MAX_MSG_SIZE = $2003; { maximum message size } SO_PROTOCOL_INFOA = $2004; { WSAPROTOCOL_INFOA structure } SO_PROTOCOL_INFOW = $2005; { WSAPROTOCOL_INFOW structure } SO_PROTOCOL_INFO = SO_PROTOCOL_INFOA; PVD_CONFIG = $3001; {configuration info for service provider } { Option for opening sockets for synchronous access. } SO_OPENTYPE = $7008; SO_SYNCHRONOUS_ALERT = $10; SO_SYNCHRONOUS_NONALERT = $20; { Other NT-specific options. } SO_MAXDG = $7009; SO_MAXPATHDG = $700A; SO_UPDATE_ACCEPT_CONTEXT = $700B; SO_CONNECT_TIME = $700C; SOMAXCONN = $7fffffff; IPV6_UNICAST_HOPS = 8; // ??? IPV6_MULTICAST_IF = 9; // set/get IP multicast i/f IPV6_MULTICAST_HOPS = 10; // set/get IP multicast ttl IPV6_MULTICAST_LOOP = 11; // set/get IP multicast loopback IPV6_JOIN_GROUP = 12; // add an IP group membership IPV6_LEAVE_GROUP = 13; // drop an IP group membership MSG_NOSIGNAL = 0; // getnameinfo constants NI_MAXHOST = 1025; NI_MAXSERV = 32; NI_NOFQDN = $1; NI_NUMERICHOST = $2; NI_NAMEREQD = $4; NI_NUMERICSERV = $8; NI_DGRAM = $10; const SOCK_STREAM = 1; { stream socket } SOCK_DGRAM = 2; { datagram socket } SOCK_RAW = 3; { raw-protocol interface } SOCK_RDM = 4; { reliably-delivered message } SOCK_SEQPACKET = 5; { sequenced packet stream } { TCP options. } TCP_NODELAY = $0001; { Address families. } AF_UNSPEC = 0; { unspecified } AF_INET = 2; { internetwork: UDP, TCP, etc. } AF_INET6 = 23; { Internetwork Version 6 } AF_MAX = 24; { Protocol families, same as address families for now. } PF_UNSPEC = AF_UNSPEC; PF_INET = AF_INET; PF_INET6 = AF_INET6; PF_MAX = AF_MAX; type { Structure used by kernel to store most addresses. } PSockAddr = ^TSockAddr; TSockAddr = TSockAddrIn; { Structure used by kernel to pass protocol information in raw sockets. } PSockProto = ^TSockProto; TSockProto = record sp_family: u_short; sp_protocol: u_short; end; type PAddrInfo = ^TAddrInfo; TAddrInfo = record ai_flags: integer; // AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST. ai_family: integer; // PF_xxx. ai_socktype: integer; // SOCK_xxx. ai_protocol: integer; // 0 or IPPROTO_xxx for IPv4 and IPv6. ai_addrlen: u_int; // Length of ai_addr. ai_canonname: PAnsiChar; // Canonical name for nodename. ai_addr: PSockAddr; // Binary address. ai_next: PAddrInfo; // Next structure in linked list. end; const // Flags used in "hints" argument to getaddrinfo(). AI_PASSIVE = $1; // Socket address will be used in bind() call. AI_CANONNAME = $2; // Return canonical name in first ai_canonname. AI_NUMERICHOST = $4; // Nodename must be a numeric address string. type { Structure used for manipulating linger option. } PLinger = ^TLinger; TLinger = record l_onoff: u_short; l_linger: u_short; end; const MSG_OOB = $01; // Process out-of-band data. MSG_PEEK = $02; // Peek at incoming messages. const { All Windows Sockets error constants are biased by WSABASEERR from the "normal" } WSABASEERR = 10000; { Windows Sockets definitions of regular Microsoft C error constants } WSAEINTR = (WSABASEERR+4); WSAEBADF = (WSABASEERR+9); WSAEACCES = (WSABASEERR+13); WSAEFAULT = (WSABASEERR+14); WSAEINVAL = (WSABASEERR+22); WSAEMFILE = (WSABASEERR+24); { Windows Sockets definitions of regular Berkeley error constants } WSAEWOULDBLOCK = (WSABASEERR+35); WSAEINPROGRESS = (WSABASEERR+36); WSAEALREADY = (WSABASEERR+37); WSAENOTSOCK = (WSABASEERR+38); WSAEDESTADDRREQ = (WSABASEERR+39); WSAEMSGSIZE = (WSABASEERR+40); WSAEPROTOTYPE = (WSABASEERR+41); WSAENOPROTOOPT = (WSABASEERR+42); WSAEPROTONOSUPPORT = (WSABASEERR+43); WSAESOCKTNOSUPPORT = (WSABASEERR+44); WSAEOPNOTSUPP = (WSABASEERR+45); WSAEPFNOSUPPORT = (WSABASEERR+46); WSAEAFNOSUPPORT = (WSABASEERR+47); WSAEADDRINUSE = (WSABASEERR+48); WSAEADDRNOTAVAIL = (WSABASEERR+49); WSAENETDOWN = (WSABASEERR+50); WSAENETUNREACH = (WSABASEERR+51); WSAENETRESET = (WSABASEERR+52); WSAECONNABORTED = (WSABASEERR+53); WSAECONNRESET = (WSABASEERR+54); WSAENOBUFS = (WSABASEERR+55); WSAEISCONN = (WSABASEERR+56); WSAENOTCONN = (WSABASEERR+57); WSAESHUTDOWN = (WSABASEERR+58); WSAETOOMANYREFS = (WSABASEERR+59); WSAETIMEDOUT = (WSABASEERR+60); WSAECONNREFUSED = (WSABASEERR+61); WSAELOOP = (WSABASEERR+62); WSAENAMETOOLONG = (WSABASEERR+63); WSAEHOSTDOWN = (WSABASEERR+64); WSAEHOSTUNREACH = (WSABASEERR+65); WSAENOTEMPTY = (WSABASEERR+66); WSAEPROCLIM = (WSABASEERR+67); WSAEUSERS = (WSABASEERR+68); WSAEDQUOT = (WSABASEERR+69); WSAESTALE = (WSABASEERR+70); WSAEREMOTE = (WSABASEERR+71); { Extended Windows Sockets error constant definitions } WSASYSNOTREADY = (WSABASEERR+91); WSAVERNOTSUPPORTED = (WSABASEERR+92); WSANOTINITIALISED = (WSABASEERR+93); WSAEDISCON = (WSABASEERR+101); WSAENOMORE = (WSABASEERR+102); WSAECANCELLED = (WSABASEERR+103); WSAEEINVALIDPROCTABLE = (WSABASEERR+104); WSAEINVALIDPROVIDER = (WSABASEERR+105); WSAEPROVIDERFAILEDINIT = (WSABASEERR+106); WSASYSCALLFAILURE = (WSABASEERR+107); WSASERVICE_NOT_FOUND = (WSABASEERR+108); WSATYPE_NOT_FOUND = (WSABASEERR+109); WSA_E_NO_MORE = (WSABASEERR+110); WSA_E_CANCELLED = (WSABASEERR+111); WSAEREFUSED = (WSABASEERR+112); { Error return codes from gethostbyname() and gethostbyaddr() (when using the resolver). Note that these errors are retrieved via WSAGetLastError() and must therefore follow the rules for avoiding clashes with error numbers from specific implementations or language run-time systems. For this reason the codes are based at WSABASEERR+1001. Note also that [WSA]NO_ADDRESS is defined only for compatibility purposes. } { Authoritative Answer: Host not found } WSAHOST_NOT_FOUND = (WSABASEERR+1001); HOST_NOT_FOUND = WSAHOST_NOT_FOUND; { Non-Authoritative: Host not found, or SERVERFAIL } WSATRY_AGAIN = (WSABASEERR+1002); TRY_AGAIN = WSATRY_AGAIN; { Non recoverable errors, FORMERR, REFUSED, NOTIMP } WSANO_RECOVERY = (WSABASEERR+1003); NO_RECOVERY = WSANO_RECOVERY; { Valid name, no data record of requested type } WSANO_DATA = (WSABASEERR+1004); NO_DATA = WSANO_DATA; { no address, look for MX record } WSANO_ADDRESS = WSANO_DATA; NO_ADDRESS = WSANO_ADDRESS; EWOULDBLOCK = WSAEWOULDBLOCK; EINPROGRESS = WSAEINPROGRESS; EALREADY = WSAEALREADY; ENOTSOCK = WSAENOTSOCK; EDESTADDRREQ = WSAEDESTADDRREQ; EMSGSIZE = WSAEMSGSIZE; EPROTOTYPE = WSAEPROTOTYPE; ENOPROTOOPT = WSAENOPROTOOPT; EPROTONOSUPPORT = WSAEPROTONOSUPPORT; ESOCKTNOSUPPORT = WSAESOCKTNOSUPPORT; EOPNOTSUPP = WSAEOPNOTSUPP; EPFNOSUPPORT = WSAEPFNOSUPPORT; EAFNOSUPPORT = WSAEAFNOSUPPORT; EADDRINUSE = WSAEADDRINUSE; EADDRNOTAVAIL = WSAEADDRNOTAVAIL; ENETDOWN = WSAENETDOWN; ENETUNREACH = WSAENETUNREACH; ENETRESET = WSAENETRESET; ECONNABORTED = WSAECONNABORTED; ECONNRESET = WSAECONNRESET; ENOBUFS = WSAENOBUFS; EISCONN = WSAEISCONN; ENOTCONN = WSAENOTCONN; ESHUTDOWN = WSAESHUTDOWN; ETOOMANYREFS = WSAETOOMANYREFS; ETIMEDOUT = WSAETIMEDOUT; ECONNREFUSED = WSAECONNREFUSED; ELOOP = WSAELOOP; ENAMETOOLONG = WSAENAMETOOLONG; EHOSTDOWN = WSAEHOSTDOWN; EHOSTUNREACH = WSAEHOSTUNREACH; ENOTEMPTY = WSAENOTEMPTY; EPROCLIM = WSAEPROCLIM; EUSERS = WSAEUSERS; EDQUOT = WSAEDQUOT; ESTALE = WSAESTALE; EREMOTE = WSAEREMOTE; EAI_ADDRFAMILY = 1; // Address family for nodename not supported. EAI_AGAIN = 2; // Temporary failure in name resolution. EAI_BADFLAGS = 3; // Invalid value for ai_flags. EAI_FAIL = 4; // Non-recoverable failure in name resolution. EAI_FAMILY = 5; // Address family ai_family not supported. EAI_MEMORY = 6; // Memory allocation failure. EAI_NODATA = 7; // No address associated with nodename. EAI_NONAME = 8; // Nodename nor servname provided, or not known. EAI_SERVICE = 9; // Servname not supported for ai_socktype. EAI_SOCKTYPE = 10; // Socket type ai_socktype not supported. EAI_SYSTEM = 11; // System error returned in errno. const WSADESCRIPTION_LEN = 256; WSASYS_STATUS_LEN = 128; type PWSAData = ^TWSAData; TWSAData = record wVersion: Word; wHighVersion: Word; {$ifdef win64} iMaxSockets : Word; iMaxUdpDg : Word; lpVendorInfo : PAnsiChar; szDescription : array[0..WSADESCRIPTION_LEN] of AnsiChar; szSystemStatus : array[0..WSASYS_STATUS_LEN] of AnsiChar; {$else} szDescription: array[0..WSADESCRIPTION_LEN] of AnsiChar; szSystemStatus: array[0..WSASYS_STATUS_LEN] of AnsiChar; iMaxSockets: Word; iMaxUdpDg: Word; lpVendorInfo: PAnsiChar; {$endif} end; function IN6_IS_ADDR_UNSPECIFIED(const a: PInAddr6): boolean; function IN6_IS_ADDR_LOOPBACK(const a: PInAddr6): boolean; function IN6_IS_ADDR_LINKLOCAL(const a: PInAddr6): boolean; function IN6_IS_ADDR_SITELOCAL(const a: PInAddr6): boolean; function IN6_IS_ADDR_MULTICAST(const a: PInAddr6): boolean; function IN6_ADDR_EQUAL(const a: PInAddr6; const b: PInAddr6):boolean; procedure SET_IN6_IF_ADDR_ANY (const a: PInAddr6); procedure SET_LOOPBACK_ADDR6 (const a: PInAddr6); var in6addr_any, in6addr_loopback : TInAddr6; procedure FD_CLR(Socket: TSocket; var FDSet: TFDSet); function FD_ISSET(Socket: TSocket; var FDSet: TFDSet): Boolean; procedure FD_SET(Socket: TSocket; var FDSet: TFDSet); procedure FD_ZERO(var FDSet: TFDSet); {=============================================================================} type TWSAStartup = function(wVersionRequired: Word; var WSData: TWSAData): Integer; stdcall; TWSACleanup = function: Integer; stdcall; TWSAGetLastError = function: Integer; stdcall; TGetServByName = function(name, proto: PAnsiChar): PServEnt; stdcall; TGetServByPort = function(port: Integer; proto: PAnsiChar): PServEnt; stdcall; TGetProtoByName = function(name: PAnsiChar): PProtoEnt; stdcall; TGetProtoByNumber = function(proto: Integer): PProtoEnt; stdcall; TGetHostByName = function(name: PAnsiChar): PHostEnt; stdcall; TGetHostByAddr = function(addr: Pointer; len, Struc: Integer): PHostEnt; stdcall; TGetHostName = function(name: PAnsiChar; len: Integer): Integer; stdcall; TShutdown = function(s: TSocket; how: Integer): Integer; stdcall; TSetSockOpt = function(s: TSocket; level, optname: Integer; optval: PAnsiChar; optlen: Integer): Integer; stdcall; TGetSockOpt = function(s: TSocket; level, optname: Integer; optval: PAnsiChar; var optlen: Integer): Integer; stdcall; TSendTo = function(s: TSocket; const Buf; len, flags: Integer; addrto: PSockAddr; tolen: Integer): Integer; stdcall; TSend = function(s: TSocket; const Buf; len, flags: Integer): Integer; stdcall; TRecv = function(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall; TRecvFrom = function(s: TSocket; var Buf; len, flags: Integer; from: PSockAddr; var fromlen: Integer): Integer; stdcall; Tntohs = function(netshort: u_short): u_short; stdcall; Tntohl = function(netlong: u_long): u_long; stdcall; TListen = function(s: TSocket; backlog: Integer): Integer; stdcall; TIoctlSocket = function(s: TSocket; cmd: DWORD; var arg: Integer): Integer; stdcall; TInet_ntoa = function(inaddr: TInAddr): PAnsiChar; stdcall; TInet_addr = function(cp: PAnsiChar): u_long; stdcall; Thtons = function(hostshort: u_short): u_short; stdcall; Thtonl = function(hostlong: u_long): u_long; stdcall; TGetSockName = function(s: TSocket; name: PSockAddr; var namelen: Integer): Integer; stdcall; TGetPeerName = function(s: TSocket; name: PSockAddr; var namelen: Integer): Integer; stdcall; TConnect = function(s: TSocket; name: PSockAddr; namelen: Integer): Integer; stdcall; TCloseSocket = function(s: TSocket): Integer; stdcall; TBind = function(s: TSocket; addr: PSockAddr; namelen: Integer): Integer; stdcall; TAccept = function(s: TSocket; addr: PSockAddr; var addrlen: Integer): TSocket; stdcall; TTSocket = function(af, Struc, Protocol: Integer): TSocket; stdcall; TSelect = function(nfds: Integer; readfds, writefds, exceptfds: PFDSet; timeout: PTimeVal): Longint; stdcall; TGetAddrInfo = function(NodeName: PAnsiChar; ServName: PAnsiChar; Hints: PAddrInfo; var Addrinfo: PAddrInfo): integer; stdcall; TFreeAddrInfo = procedure(ai: PAddrInfo); stdcall; TGetNameInfo = function( addr: PSockAddr; namelen: Integer; host: PAnsiChar; hostlen: DWORD; serv: PAnsiChar; servlen: DWORD; flags: integer): integer; stdcall; T__WSAFDIsSet = function (s: TSocket; var FDSet: TFDSet): Bool; stdcall; TWSAIoctl = function (s: TSocket; dwIoControlCode: DWORD; lpvInBuffer: Pointer; cbInBuffer: DWORD; lpvOutBuffer: Pointer; cbOutBuffer: DWORD; lpcbBytesReturned: PDWORD; lpOverlapped: Pointer; lpCompletionRoutine: pointer): u_int; stdcall; var WSAStartup: TWSAStartup = nil; WSACleanup: TWSACleanup = nil; WSAGetLastError: TWSAGetLastError = nil; GetServByName: TGetServByName = nil; GetServByPort: TGetServByPort = nil; GetProtoByName: TGetProtoByName = nil; GetProtoByNumber: TGetProtoByNumber = nil; GetHostByName: TGetHostByName = nil; GetHostByAddr: TGetHostByAddr = nil; ssGetHostName: TGetHostName = nil; Shutdown: TShutdown = nil; SetSockOpt: TSetSockOpt = nil; GetSockOpt: TGetSockOpt = nil; ssSendTo: TSendTo = nil; ssSend: TSend = nil; ssRecv: TRecv = nil; ssRecvFrom: TRecvFrom = nil; ntohs: Tntohs = nil; ntohl: Tntohl = nil; Listen: TListen = nil; IoctlSocket: TIoctlSocket = nil; Inet_ntoa: TInet_ntoa = nil; Inet_addr: TInet_addr = nil; htons: Thtons = nil; htonl: Thtonl = nil; ssGetSockName: TGetSockName = nil; ssGetPeerName: TGetPeerName = nil; ssConnect: TConnect = nil; CloseSocket: TCloseSocket = nil; ssBind: TBind = nil; ssAccept: TAccept = nil; Socket: TTSocket = nil; Select: TSelect = nil; GetAddrInfo: TGetAddrInfo = nil; FreeAddrInfo: TFreeAddrInfo = nil; GetNameInfo: TGetNameInfo = nil; __WSAFDIsSet: T__WSAFDIsSet = nil; WSAIoctl: TWSAIoctl = nil; var SynSockCS: SyncObjs.TCriticalSection; SockEnhancedApi: Boolean; SockWship6Api: Boolean; type TVarSin = packed record case integer of 0: (AddressFamily: u_short); 1: ( case sin_family: u_short of AF_INET: (sin_port: u_short; sin_addr: TInAddr; sin_zero: array[0..7] of byte); AF_INET6: (sin6_port: u_short; sin6_flowinfo: u_long; sin6_addr: TInAddr6; sin6_scope_id: u_long); ); end; function SizeOfVarSin(sin: TVarSin): integer; function Bind(s: TSocket; const addr: TVarSin): Integer; function Connect(s: TSocket; const name: TVarSin): Integer; function GetSockName(s: TSocket; var name: TVarSin): Integer; function GetPeerName(s: TSocket; var name: TVarSin): Integer; function GetHostName: AnsiString; function Send(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; function Recv(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; function SendTo(s: TSocket; Buf: TMemory; len, flags: Integer; addrto: TVarSin): Integer; function RecvFrom(s: TSocket; Buf: TMemory; len, flags: Integer; var from: TVarSin): Integer; function Accept(s: TSocket; var addr: TVarSin): TSocket; function IsNewApi(Family: integer): Boolean; function SetVarSin(var Sin: TVarSin; IP, Port: AnsiString; Family, SockProtocol, SockType: integer; PreferIP4: Boolean): integer; function GetSinIP(Sin: TVarSin): AnsiString; function GetSinPort(Sin: TVarSin): Integer; procedure ResolveNameToIP(Name: AnsiString; Family, SockProtocol, SockType: integer; const IPList: TStrings); function ResolveIPToName(IP: AnsiString; Family, SockProtocol, SockType: integer): AnsiString; function ResolvePort(Port: AnsiString; Family, SockProtocol, SockType: integer): Word; {==============================================================================} implementation var SynSockCount: Integer = 0; LibHandle: THandle = 0; Libwship6Handle: THandle = 0; function IN6_IS_ADDR_UNSPECIFIED(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr32[0] = 0) and (a^.u6_addr32[1] = 0) and (a^.u6_addr32[2] = 0) and (a^.u6_addr32[3] = 0)); end; function IN6_IS_ADDR_LOOPBACK(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr32[0] = 0) and (a^.u6_addr32[1] = 0) and (a^.u6_addr32[2] = 0) and (a^.u6_addr8[12] = 0) and (a^.u6_addr8[13] = 0) and (a^.u6_addr8[14] = 0) and (a^.u6_addr8[15] = 1)); end; function IN6_IS_ADDR_LINKLOCAL(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr8[0] = $FE) and (a^.u6_addr8[1] = $80)); end; function IN6_IS_ADDR_SITELOCAL(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr8[0] = $FE) and (a^.u6_addr8[1] = $C0)); end; function IN6_IS_ADDR_MULTICAST(const a: PInAddr6): boolean; begin Result := (a^.u6_addr8[0] = $FF); end; function IN6_ADDR_EQUAL(const a: PInAddr6; const b: PInAddr6): boolean; begin Result := (CompareMem( a, b, sizeof(TInAddr6))); end; procedure SET_IN6_IF_ADDR_ANY (const a: PInAddr6); begin FillChar(a^, sizeof(TInAddr6), 0); end; procedure SET_LOOPBACK_ADDR6 (const a: PInAddr6); begin FillChar(a^, sizeof(TInAddr6), 0); a^.u6_addr8[15] := 1; end; {=============================================================================} procedure FD_CLR(Socket: TSocket; var FDSet: TFDSet); var I: Integer; begin I := 0; while I < FDSet.fd_count do begin if FDSet.fd_array[I] = Socket then begin while I < FDSet.fd_count - 1 do begin FDSet.fd_array[I] := FDSet.fd_array[I + 1]; Inc(I); end; Dec(FDSet.fd_count); Break; end; Inc(I); end; end; function FD_ISSET(Socket: TSocket; var FDSet: TFDSet): Boolean; begin Result := __WSAFDIsSet(Socket, FDSet); end; procedure FD_SET(Socket: TSocket; var FDSet: TFDSet); begin if FDSet.fd_count < FD_SETSIZE then begin FDSet.fd_array[FDSet.fd_count] := Socket; Inc(FDSet.fd_count); end; end; procedure FD_ZERO(var FDSet: TFDSet); begin FDSet.fd_count := 0; end; {=============================================================================} function SizeOfVarSin(sin: TVarSin): integer; begin case sin.sin_family of AF_INET: Result := SizeOf(TSockAddrIn); AF_INET6: Result := SizeOf(TSockAddrIn6); else Result := 0; end; end; {=============================================================================} function Bind(s: TSocket; const addr: TVarSin): Integer; begin Result := ssBind(s, @addr, SizeOfVarSin(addr)); end; function Connect(s: TSocket; const name: TVarSin): Integer; begin Result := ssConnect(s, @name, SizeOfVarSin(name)); end; function GetSockName(s: TSocket; var name: TVarSin): Integer; var len: integer; begin len := SizeOf(name); FillChar(name, len, 0); Result := ssGetSockName(s, @name, Len); end; function GetPeerName(s: TSocket; var name: TVarSin): Integer; var len: integer; begin len := SizeOf(name); FillChar(name, len, 0); Result := ssGetPeerName(s, @name, Len); end; function GetHostName: AnsiString; var s: AnsiString; begin Result := ''; setlength(s, 255); ssGetHostName(pAnsichar(s), Length(s) - 1); Result := PAnsichar(s); end; function Send(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; begin Result := ssSend(s, Buf^, len, flags); end; function Recv(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; begin Result := ssRecv(s, Buf^, len, flags); end; function SendTo(s: TSocket; Buf: TMemory; len, flags: Integer; addrto: TVarSin): Integer; begin Result := ssSendTo(s, Buf^, len, flags, @addrto, SizeOfVarSin(addrto)); end; function RecvFrom(s: TSocket; Buf: TMemory; len, flags: Integer; var from: TVarSin): Integer; var x: integer; begin x := SizeOf(from); Result := ssRecvFrom(s, Buf^, len, flags, @from, x); end; function Accept(s: TSocket; var addr: TVarSin): TSocket; var x: integer; begin x := SizeOf(addr); Result := ssAccept(s, @addr, x); end; {=============================================================================} function IsNewApi(Family: integer): Boolean; begin Result := SockEnhancedApi; if not Result then Result := (Family = AF_INET6) and SockWship6Api; end; function SetVarSin(var Sin: TVarSin; IP, Port: AnsiString; Family, SockProtocol, SockType: integer; PreferIP4: Boolean): integer; type pu_long = ^u_long; var ProtoEnt: PProtoEnt; ServEnt: PServEnt; HostEnt: PHostEnt; r: integer; Hints1, Hints2: TAddrInfo; Sin1, Sin2: TVarSin; TwoPass: boolean; function GetAddr(const IP, port: AnsiString; Hints: TAddrInfo; var Sin: TVarSin): integer; var Addr: PAddrInfo; begin Addr := nil; try FillChar(Sin, Sizeof(Sin), 0); if Hints.ai_socktype = SOCK_RAW then begin Hints.ai_socktype := 0; Hints.ai_protocol := 0; Result := synsock.GetAddrInfo(PAnsiChar(IP), nil, @Hints, Addr); end else begin if (IP = cAnyHost) or (IP = c6AnyHost) then begin Hints.ai_flags := AI_PASSIVE; Result := synsock.GetAddrInfo(nil, PAnsiChar(Port), @Hints, Addr); end else if (IP = cLocalhost) or (IP = c6Localhost) then begin Result := synsock.GetAddrInfo(nil, PAnsiChar(Port), @Hints, Addr); end else begin Result := synsock.GetAddrInfo(PAnsiChar(IP), PAnsiChar(Port), @Hints, Addr); end; end; if Result = 0 then if (Addr <> nil) then Move(Addr^.ai_addr^, Sin, Addr^.ai_addrlen); finally if Assigned(Addr) then synsock.FreeAddrInfo(Addr); end; end; begin Result := 0; FillChar(Sin, Sizeof(Sin), 0); if not IsNewApi(family) then begin SynSockCS.Enter; try Sin.sin_family := AF_INET; ProtoEnt := synsock.GetProtoByNumber(SockProtocol); ServEnt := nil; if (ProtoEnt <> nil) and (StrToIntDef(string(Port),-1) =-1) then ServEnt := synsock.GetServByName(PAnsiChar(Port), ProtoEnt^.p_name); if ServEnt = nil then Sin.sin_port := synsock.htons(StrToIntDef(string(Port), 0)) else Sin.sin_port := ServEnt^.s_port; if IP = cBroadcast then Sin.sin_addr.s_addr := u_long(INADDR_BROADCAST) else begin Sin.sin_addr.s_addr := synsock.inet_addr(PAnsiChar(IP)); if Sin.sin_addr.s_addr = u_long(INADDR_NONE) then begin HostEnt := synsock.GetHostByName(PAnsiChar(IP)); Result := synsock.WSAGetLastError; if HostEnt <> nil then Sin.sin_addr.S_addr := u_long(Pu_long(HostEnt^.h_addr_list^)^); end; end; finally SynSockCS.Leave; end; end else begin FillChar(Hints1, Sizeof(Hints1), 0); FillChar(Hints2, Sizeof(Hints2), 0); TwoPass := False; if Family = AF_UNSPEC then begin if PreferIP4 then begin Hints1.ai_family := AF_INET; Hints2.ai_family := AF_INET6; TwoPass := True; end else begin Hints2.ai_family := AF_INET; Hints1.ai_family := AF_INET6; TwoPass := True; end; end else Hints1.ai_family := Family; Hints1.ai_socktype := SockType; Hints1.ai_protocol := SockProtocol; Hints2.ai_socktype := Hints1.ai_socktype; Hints2.ai_protocol := Hints1.ai_protocol; r := GetAddr(IP, Port, Hints1, Sin1); Result := r; sin := sin1; if r <> 0 then if TwoPass then begin r := GetAddr(IP, Port, Hints2, Sin2); Result := r; if r = 0 then sin := sin2; end; end; end; function GetSinIP(Sin: TVarSin): AnsiString; var p: PAnsiChar; host, serv: AnsiString; hostlen, servlen: integer; r: integer; begin Result := ''; if not IsNewApi(Sin.AddressFamily) then begin p := synsock.inet_ntoa(Sin.sin_addr); if p <> nil then Result := p; end else begin hostlen := NI_MAXHOST; servlen := NI_MAXSERV; setlength(host, hostlen); setlength(serv, servlen); r := getnameinfo(@sin, SizeOfVarSin(sin), PAnsiChar(host), hostlen, PAnsiChar(serv), servlen, NI_NUMERICHOST + NI_NUMERICSERV); if r = 0 then Result := PAnsiChar(host); end; end; function GetSinPort(Sin: TVarSin): Integer; begin if (Sin.sin_family = AF_INET6) then Result := synsock.ntohs(Sin.sin6_port) else Result := synsock.ntohs(Sin.sin_port); end; procedure ResolveNameToIP(Name: AnsiString; Family, SockProtocol, SockType: integer; const IPList: TStrings); type TaPInAddr = array[0..250] of PInAddr; PaPInAddr = ^TaPInAddr; var Hints: TAddrInfo; Addr: PAddrInfo; AddrNext: PAddrInfo; r: integer; host, serv: AnsiString; hostlen, servlen: integer; RemoteHost: PHostEnt; IP: u_long; PAdrPtr: PaPInAddr; i: Integer; s: String; InAddr: TInAddr; begin IPList.Clear; if not IsNewApi(Family) then begin IP := synsock.inet_addr(PAnsiChar(Name)); if IP = u_long(INADDR_NONE) then begin SynSockCS.Enter; try RemoteHost := synsock.GetHostByName(PAnsiChar(Name)); if RemoteHost <> nil then begin PAdrPtr := PAPInAddr(RemoteHost^.h_addr_list); i := 0; while PAdrPtr^[i] <> nil do begin InAddr := PAdrPtr^[i]^; s := Format('%d.%d.%d.%d', [InAddr.S_bytes[0], InAddr.S_bytes[1], InAddr.S_bytes[2], InAddr.S_bytes[3]]); IPList.Add(s); Inc(i); end; end; finally SynSockCS.Leave; end; end else IPList.Add(string(Name)); end else begin Addr := nil; try FillChar(Hints, Sizeof(Hints), 0); Hints.ai_family := AF_UNSPEC; Hints.ai_socktype := SockType; Hints.ai_protocol := SockProtocol; Hints.ai_flags := 0; r := synsock.GetAddrInfo(PAnsiChar(Name), nil, @Hints, Addr); if r = 0 then begin AddrNext := Addr; while not(AddrNext = nil) do begin if not(((Family = AF_INET6) and (AddrNext^.ai_family = AF_INET)) or ((Family = AF_INET) and (AddrNext^.ai_family = AF_INET6))) then begin hostlen := NI_MAXHOST; servlen := NI_MAXSERV; setlength(host, hostlen); setlength(serv, servlen); r := getnameinfo(AddrNext^.ai_addr, AddrNext^.ai_addrlen, PAnsiChar(host), hostlen, PAnsiChar(serv), servlen, NI_NUMERICHOST + NI_NUMERICSERV); if r = 0 then begin host := PAnsiChar(host); IPList.Add(string(host)); end; end; AddrNext := AddrNext^.ai_next; end; end; finally if Assigned(Addr) then synsock.FreeAddrInfo(Addr); end; end; if IPList.Count = 0 then IPList.Add(cAnyHost); end; function ResolvePort(Port: AnsiString; Family, SockProtocol, SockType: integer): Word; var ProtoEnt: PProtoEnt; ServEnt: PServEnt; Hints: TAddrInfo; Addr: PAddrInfo; r: integer; begin Result := 0; if not IsNewApi(Family) then begin SynSockCS.Enter; try ProtoEnt := synsock.GetProtoByNumber(SockProtocol); ServEnt := nil; if ProtoEnt <> nil then ServEnt := synsock.GetServByName(PAnsiChar(Port), ProtoEnt^.p_name); if ServEnt = nil then Result := StrToIntDef(string(Port), 0) else Result := synsock.htons(ServEnt^.s_port); finally SynSockCS.Leave; end; end else begin Addr := nil; try FillChar(Hints, Sizeof(Hints), 0); Hints.ai_family := AF_UNSPEC; Hints.ai_socktype := SockType; Hints.ai_protocol := Sockprotocol; Hints.ai_flags := AI_PASSIVE; r := synsock.GetAddrInfo(nil, PAnsiChar(Port), @Hints, Addr); if (r = 0) and Assigned(Addr) then begin if Addr^.ai_family = AF_INET then Result := synsock.htons(Addr^.ai_addr^.sin_port); if Addr^.ai_family = AF_INET6 then Result := synsock.htons(PSockAddrIn6(Addr^.ai_addr)^.sin6_port); end; finally if Assigned(Addr) then synsock.FreeAddrInfo(Addr); end; end; end; function ResolveIPToName(IP: AnsiString; Family, SockProtocol, SockType: integer): AnsiString; var Hints: TAddrInfo; Addr: PAddrInfo; r: integer; host, serv: AnsiString; hostlen, servlen: integer; RemoteHost: PHostEnt; IPn: u_long; begin Result := IP; if not IsNewApi(Family) then begin IPn := synsock.inet_addr(PAnsiChar(IP)); if IPn <> u_long(INADDR_NONE) then begin SynSockCS.Enter; try RemoteHost := GetHostByAddr(@IPn, SizeOf(IPn), AF_INET); if RemoteHost <> nil then Result := RemoteHost^.h_name; finally SynSockCS.Leave; end; end; end else begin Addr := nil; try FillChar(Hints, Sizeof(Hints), 0); Hints.ai_family := AF_UNSPEC; Hints.ai_socktype := SockType; Hints.ai_protocol := SockProtocol; Hints.ai_flags := 0; r := synsock.GetAddrInfo(PAnsiChar(IP), nil, @Hints, Addr); if (r = 0) and Assigned(Addr)then begin hostlen := NI_MAXHOST; servlen := NI_MAXSERV; setlength(host, hostlen); setlength(serv, servlen); r := getnameinfo(Addr^.ai_addr, Addr^.ai_addrlen, PAnsiChar(host), hostlen, PAnsiChar(serv), servlen, NI_NUMERICSERV); if r = 0 then Result := PAnsiChar(host); end; finally if Assigned(Addr) then synsock.FreeAddrInfo(Addr); end; end; end; {=============================================================================} function InitSocketInterface(stack: String): Boolean; begin Result := False; if stack = '' then stack := DLLStackName; SynSockCS.Enter; try if SynSockCount = 0 then begin SockEnhancedApi := False; SockWship6Api := False; LibHandle := LoadLibrary(PChar(Stack)); if LibHandle <> 0 then begin WSAIoctl := GetProcAddress(LibHandle, PAnsiChar(AnsiString('WSAIoctl'))); __WSAFDIsSet := GetProcAddress(LibHandle, PAnsiChar(AnsiString('__WSAFDIsSet'))); CloseSocket := GetProcAddress(LibHandle, PAnsiChar(AnsiString('closesocket'))); IoctlSocket := GetProcAddress(LibHandle, PAnsiChar(AnsiString('ioctlsocket'))); WSAGetLastError := GetProcAddress(LibHandle, PAnsiChar(AnsiString('WSAGetLastError'))); WSAStartup := GetProcAddress(LibHandle, PAnsiChar(AnsiString('WSAStartup'))); WSACleanup := GetProcAddress(LibHandle, PAnsiChar(AnsiString('WSACleanup'))); ssAccept := GetProcAddress(LibHandle, PAnsiChar(AnsiString('accept'))); ssBind := GetProcAddress(LibHandle, PAnsiChar(AnsiString('bind'))); ssConnect := GetProcAddress(LibHandle, PAnsiChar(AnsiString('connect'))); ssGetPeerName := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getpeername'))); ssGetSockName := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getsockname'))); GetSockOpt := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getsockopt'))); Htonl := GetProcAddress(LibHandle, PAnsiChar(AnsiString('htonl'))); Htons := GetProcAddress(LibHandle, PAnsiChar(AnsiString('htons'))); Inet_Addr := GetProcAddress(LibHandle, PAnsiChar(AnsiString('inet_addr'))); Inet_Ntoa := GetProcAddress(LibHandle, PAnsiChar(AnsiString('inet_ntoa'))); Listen := GetProcAddress(LibHandle, PAnsiChar(AnsiString('listen'))); Ntohl := GetProcAddress(LibHandle, PAnsiChar(AnsiString('ntohl'))); Ntohs := GetProcAddress(LibHandle, PAnsiChar(AnsiString('ntohs'))); ssRecv := GetProcAddress(LibHandle, PAnsiChar(AnsiString('recv'))); ssRecvFrom := GetProcAddress(LibHandle, PAnsiChar(AnsiString('recvfrom'))); Select := GetProcAddress(LibHandle, PAnsiChar(AnsiString('select'))); ssSend := GetProcAddress(LibHandle, PAnsiChar(AnsiString('send'))); ssSendTo := GetProcAddress(LibHandle, PAnsiChar(AnsiString('sendto'))); SetSockOpt := GetProcAddress(LibHandle, PAnsiChar(AnsiString('setsockopt'))); ShutDown := GetProcAddress(LibHandle, PAnsiChar(AnsiString('shutdown'))); Socket := GetProcAddress(LibHandle, PAnsiChar(AnsiString('socket'))); GetHostByAddr := GetProcAddress(LibHandle, PAnsiChar(AnsiString('gethostbyaddr'))); GetHostByName := GetProcAddress(LibHandle, PAnsiChar(AnsiString('gethostbyname'))); GetProtoByName := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getprotobyname'))); GetProtoByNumber := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getprotobynumber'))); GetServByName := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getservbyname'))); GetServByPort := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getservbyport'))); ssGetHostName := GetProcAddress(LibHandle, PAnsiChar(AnsiString('gethostname'))); {$IFNDEF FORCEOLDAPI} GetAddrInfo := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getaddrinfo'))); FreeAddrInfo := GetProcAddress(LibHandle, PAnsiChar(AnsiString('freeaddrinfo'))); GetNameInfo := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getnameinfo'))); SockEnhancedApi := Assigned(GetAddrInfo) and Assigned(FreeAddrInfo) and Assigned(GetNameInfo); if not SockEnhancedApi then begin LibWship6Handle := LoadLibrary(PChar(DLLWship6)); if LibWship6Handle <> 0 then begin GetAddrInfo := GetProcAddress(LibWship6Handle, PAnsiChar(AnsiString('getaddrinfo'))); FreeAddrInfo := GetProcAddress(LibWship6Handle, PAnsiChar(AnsiString('freeaddrinfo'))); GetNameInfo := GetProcAddress(LibWship6Handle, PAnsiChar(AnsiString('getnameinfo'))); SockWship6Api := Assigned(GetAddrInfo) and Assigned(FreeAddrInfo) and Assigned(GetNameInfo); end; end; {$ENDIF} Result := True; end; end else Result := True; if Result then Inc(SynSockCount); finally SynSockCS.Leave; end; end; function DestroySocketInterface: Boolean; begin SynSockCS.Enter; try Dec(SynSockCount); if SynSockCount < 0 then SynSockCount := 0; if SynSockCount = 0 then begin if LibHandle <> 0 then begin FreeLibrary(libHandle); LibHandle := 0; end; if LibWship6Handle <> 0 then begin FreeLibrary(LibWship6Handle); LibWship6Handle := 0; end; end; finally SynSockCS.Leave; end; Result := True; end; initialization begin SynSockCS := SyncObjs.TCriticalSection.Create; SET_IN6_IF_ADDR_ANY (@in6addr_any); SET_LOOPBACK_ADDR6 (@in6addr_loopback); end; finalization begin SynSockCS.Free; end;���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./upascaltz_tools.pas�������������������������������������������������������������������������������0000644�0001750�0001750�00000065004�14561172557�015112� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit uPascalTZ_Tools; {******************************************************************************* This file is a part of PascalTZ package: https://github.com/dezlov/pascaltz License: GNU Library General Public License (LGPL) with a special exception. Read accompanying README and COPYING files for more details. Authors: 2009 - José Mejuto 2015 - Denis Kozlov *******************************************************************************} {$mode objfpc}{$H+} interface uses SysUtils, uPascalTZ_Types; procedure FixUpTime(var ADate: TTZDateTime); function IncSeconds(const ADate: TTZDateTime; const ASeconds: Integer): TTZDateTime; function IncDays(const ADate: TTZDateTime; const ADays: Integer): TTZDateTime; procedure DateTimeToTime(const ADate: TTZDateTime; out AHour,AMinute,ASecond: BYTE); function DateTimeToStr(const ADate: TTZDateTime): String; function TZDateToPascalDate(const ADate: TTZDateTime): TDateTime; function PascalDateToTZDate(const ADate: TDateTime): TTZDateTime; function MakeTZDate(const Year, Month, Day, SecsInDay: Integer): TTZDateTime; inline; function MonthNumberToShortName(const AMonthNumber: Integer): AsciiString; function MonthNumberFromShortName(const AMonthName: AsciiString): TTZMonth; function MinDate(const ADate, BDate: TTZDateTime): TTZDateTime; function MaxDate(const ADate, BDate: TTZDateTime): TTZDateTime; function CompareDates(const ADate,BDate: TTZDateTime): Integer; function IsGregorianLeap(const ADate: TTZDateTime): Boolean; procedure IsGregorianLeapException(const ADate: TTZDateTime); function IsBeforeGregorianLeap(const ADate: TTZDateTime): Boolean; function TimeFormToChar(const ATimeForm: TTZTimeForm): AsciiChar; function CharToTimeForm(const AChar: AsciiChar; out ATimeForm: TTZTimeForm): Boolean; function ExtractTimeForm(var TimeStr: AsciiString; out TimeForm: TTZTimeForm): Boolean; function ExtractTimeFormDefault(var TimeStr: AsciiString; const Default: TTZTimeForm): TTZTimeForm; function ParseUntilFields(const AIterator: TTZLineIterate; out ATimeForm: TTZTimeForm; const ADefaultTimeForm: TTZTimeForm): TTZDateTime; procedure MacroSolver(var ADate: TTZDateTime; const ADayString: AsciiString); function MacroFirstWeekDay(const ADate: TTZDateTime; const AWeekDay: TTZWeekDay): TTZDateTime; function MacroLastWeekDay(const ADate: TTZDateTime; const AWeekDay: TTZWeekDay): TTZDateTime; function FirstDayOfMonth(const ADate: TTZDateTime): TTZDateTime; function LastDayOfMonth(const ADate: TTZDateTime): TTZDateTime; function WeekDayOf(const ADate: TTZDateTime): TTZWeekDay; function IsLeapYear(const AYear: integer): Boolean; function WeekDayToString(const AWeekDay: TTZWeekDay): AsciiString; function DayNameToNumber(const ADayName: AsciiString): TTZWeekDay; function SecondsToShortTime(const ASeconds: Integer): String; function SecondsToTime(const ASeconds: Integer; AAllowShortTime: Boolean = False): String; function LooksLikeTime(const ATime: AsciiString): Boolean; function TimeToSeconds(const ATime: AsciiString; AStrickTimeRange: Boolean = True): Integer; function GregorianDateToJulianDays(const Value: TTZDateTime): Integer; function JulianDaysToGregorianDate(const Value: Integer): TTZDateTime; function ResolveTimeZoneAbbreviation(const AZoneLetters, ARuleLetters: AsciiString; const IsDST: Boolean): AsciiString; function ConvertToTimeForm(const SourceSecondsInDay, StandardTimeOffset, SaveTimeOffset: Integer; const SourceTimeForm, TargetTimeForm: TTZTimeForm): Integer; function ConvertToTimeForm(const SourceDateTime: TTZDateTime; const StandardTimeOffset, SaveTimeOffset: Integer; const SourceTimeForm, TargetTimeForm: TTZTimeForm): TTZDateTime; operator < (const ADate, BDate: TTZDateTime): Boolean; operator > (const ADate, BDate: TTZDateTime): Boolean; operator = (const ADate, BDate: TTZDateTime): Boolean; operator <> (const ADate, BDate: TTZDateTime): Boolean; operator >= (const ADate, BDate: TTZDateTime): Boolean; operator <= (const ADate, BDate: TTZDateTime): Boolean; const TTZMonthDaysCount: array [TTZMonth] of TTZDay = ( 31,28,31,30,31,30,31,31,30,31,30,31); TTZMonthDaysLeapYearCount: array [TTZMonth] of TTZDay = ( 31,29,31,30,31,30,31,31,30,31,30,31); TTZShortMonthNames: array [TTZMonth] of AsciiString = ( 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'); implementation uses DateUtils; operator < (const ADate, BDate: TTZDateTime): Boolean; begin Result := CompareDates(ADate, BDate) < 0; end; operator > (const ADate, BDate: TTZDateTime): Boolean; begin Result := CompareDates(ADate, BDate) > 0; end; operator = (const ADate, BDate: TTZDateTime): Boolean; begin Result := CompareDates(ADate, BDate) = 0; end; operator <> (const ADate, BDate: TTZDateTime): Boolean; begin Result := CompareDates(ADate, BDate) <> 0; end; operator >= (const ADate, BDate: TTZDateTime): Boolean; begin Result := CompareDates(ADate, BDate) >= 0; end; operator <= (const ADate, BDate: TTZDateTime): Boolean; begin Result := CompareDates(ADate, BDate) <= 0; end; function ConvertToTimeForm(const SourceSecondsInDay, StandardTimeOffset, SaveTimeOffset: Integer; const SourceTimeForm, TargetTimeForm: TTZTimeForm): Integer; var InvalidTimeForms: Boolean; begin Result := SourceSecondsInDay; InvalidTimeForms := False; case SourceTimeForm of tztfUniversal: // UTC begin case TargetTimeForm of tztfUniversal: // UTC => UTC begin end; tztfStandard: // UTC => STD Result := Result + StandardTimeOffset; tztfWallClock: // UTC => STD+DST Result := Result + StandardTimeOffset + SaveTimeOffset; else InvalidTimeForms := True; end; end; tztfWallClock: // STD+DST begin case TargetTimeForm of tztfUniversal: // STD+DST => UTC Result := Result - StandardTimeOffset - SaveTimeOffset; tztfStandard: // STD+DST => STD Result := Result - SaveTimeOffset; tztfWallClock: // STD+DST => STD+DST begin end; else InvalidTimeForms := True; end; end; tztfStandard: // STD begin case TargetTimeForm of tztfUniversal: // STD => UTC Result := Result - StandardTimeOffset; tztfStandard: // STD => STD begin end; tztfWallClock: // STD => STD+DST Result := Result + SaveTimeOffset; else InvalidTimeForms := True; end; end; else InvalidTimeForms := True; end; if InvalidTimeForms then raise TTZException.CreateFmt('Invalid time form conversion from "%d" to "%d".', [Ord(SourceTimeForm), Ord(TargetTimeForm)]); end; function ConvertToTimeForm(const SourceDateTime: TTZDateTime; const StandardTimeOffset, SaveTimeOffset: Integer; const SourceTimeForm, TargetTimeForm: TTZTimeForm): TTZDateTime; begin Result := SourceDateTime; Result.SecsInDay := ConvertToTimeForm(Result.SecsInDay, StandardTimeOffset, SaveTimeOffset, SourceTimeForm, TargetTimeForm); FixUpTime(Result); end; function ResolveTimeZoneAbbreviation(const AZoneLetters, ARuleLetters: AsciiString; const IsDST: Boolean): AsciiString; var ZoneNameCut: integer; begin Result := AZoneLetters; // Placeholders "%s" in time zone abbreviations seem to be documented as lower case, // but use rfIgnoreCase flag in StringReplace just to be safe. Result := StringReplace(Result, '%s', ARuleLetters, [rfReplaceAll, rfIgnoreCase]); // When timezonename is XXX/YYY, XXX is no daylight and YYY is daylight saving. ZoneNameCut := Pos('/', Result); if ZoneNameCut > 0 then begin if not IsDST then // Use the XXX Result := Copy(Result, 1, ZoneNameCut - 1) else // Use the YYY Result := Copy(Result, ZoneNameCut + 1, Length(Result) - ZoneNameCut); end; end; procedure IsGregorianLeapException(const ADate: TTZDateTime); begin if IsGregorianLeap(ADate) then raise TTZException.CreateFmt('Gregorian Leap, date does not exist. [%.4d.%.2d.%.2d]', [ADate.Year, ADate.Month, ADate.Day]); end; function IsGregorianLeap(const ADate: TTZDateTime): Boolean; begin Result := False; if (ADate.Year = 1582) and (ADate.Month = 10) then if (ADate.Day > 4) and (ADate.Day < 15) then Result := True; end; function IsBeforeGregorianLeap(const ADate: TTZDateTime): Boolean; begin if ADate.Year < 1582 then Exit(True); if ADate.Year > 1582 then Exit(False); //Now Year is 1582 :) if ADate.Month < 10 then Exit(True); if ADate.Month > 10 then Exit(False); //Now year 1582 and month 10 if ADate.Day <= 4 Then Exit(True); Result := False; end; procedure FixUpTime(var ADate: TTZDateTime); var Days: Integer; begin if (ADate.SecsInDay < 0) or (ADate.SecsInDay >= (3600*24)) then begin Days := ADate.SecsInDay div (3600*24); if ADate.SecsInDay < 0 then begin if ADate.SecsInDay mod (3600*24) < 0 then Dec(Days); end; if Days <> 0 then begin ADate := IncDays(ADate, Days); Dec(ADate.SecsInDay, Days * (3600*24)) end; end; end; procedure DateTimeToTime(const ADate: TTZDateTime; out AHour, AMinute, ASecond: BYTE); var Temp: Integer; begin Temp := ADate.SecsInDay; AHour := ADate.SecsInDay div 3600; Dec(Temp, AHour*3600); AMinute := Temp div 60; Dec(Temp, AMinute*60); ASecond := Temp; end; function MinDate(const ADate, BDate: TTZDateTime): TTZDateTime; begin if ADate < BDate then Result := ADate else Result := BDate; end; function MaxDate(const ADate, BDate: TTZDateTime): TTZDateTime; begin if ADate > BDate then Result := ADate else Result := BDate; end; function CompareDates(const ADate, BDate: TTZDateTime): Integer; begin // Year if ADate.Year > BDate.Year then Exit(1) else if ADate.Year < BDate.Year then Exit(-1); // Month if ADate.Month > BDate.Month then Exit(1) else if ADate.Month < BDate.Month then Exit(-1); // Day if ADate.Day > BDate.Day then Exit(1) else if ADate.Day < BDate.Day then Exit(-1); // SecsInDay if ADate.SecsInDay > BDate.SecsInDay then Exit(1) else if ADate.SecsInDay < BDate.SecsInDay then Exit(-1); // Same Result := 0; end; function MonthNumberToShortName(const AMonthNumber: Integer): AsciiString; begin if (AMonthNumber >= Low(TTZShortMonthNames)) and (AMonthNumber <= High(TTZShortMonthNames)) then Result := TTZShortMonthNames[AMonthNumber] else raise TTZException.CreateFmt('Invalid month number "%s"', [IntToStr(AMonthNumber)]); end; function MonthNumberFromShortName(const AMonthName: AsciiString): TTZMonth; var AMonthNumber: TTZMonth; begin for AMonthNumber := Low(TTZShortMonthNames) to High(TTZShortMonthNames) do if AMonthName = TTZShortMonthNames[AMonthNumber] then Exit(AMonthNumber); raise TTZException.CreateFmt('Invalid short month name "%s"', [AMonthName]); end; function FirstDayOfMonth(const ADate: TTZDateTime): TTZDateTime; begin Result := ADate; Result.Day := 1; end; function LastDayOfMonth(const ADate: TTZDateTime): TTZDateTime; begin Result := ADate; if IsLeapYear(ADate.Year) then Result.Day := TTZMonthDaysLeapYearCount[ADate.Month] else Result.Day := TTZMonthDaysCount[ADate.Month]; end; function WeekDayOf(const ADate: TTZDateTime): TTZWeekDay; var TempYear: Integer; FirstDayOfYear: Integer; j: Integer; DaysAD: Integer; begin IsGregorianLeapException(ADate); TempYear := ADate.Year - 1; //Is date before Gregory Pope change ? if IsBeforeGregorianLeap(ADate) then FirstDayOfYear:= 6+TempYear+(TempYear div 4) else FirstDayOfYear:= 1+TempYear+(TempYear div 4)-(TempYear div 100)+(TempYear div 400); DaysAD := FirstDayOfYear; if IsLeapYear(ADate.Year) then begin for j := 1 to ADate.Month-1 do Inc(DaysAD,TTZMonthDaysLeapYearCount[j]); end else begin for j := 1 to ADate.Month-1 do Inc(DaysAD, TTZMonthDaysCount[j]); end; Inc(DaysAD, ADate.Day-1); Result := TTZWeekDay((DaysAD mod 7)+1); end; function IsLeapYear(const AYear: integer): Boolean; begin if AYear > 1582 then begin if (AYear mod 400) = 0 Then Exit(True); // All years every 400 years are leap years. if (AYear mod 100) = 0 then Exit(False); // Centuries are not leap years (except previous % 400) end; if (AYear mod 4) = 0 then Exit(True); // Each 4 years a leap year comes in play. Result := False; end; function WeekDayToString(const AWeekDay: TTZWeekDay): AsciiString; begin case AWeekDay of eTZSunday : Result:='Sunday'; eTZMonday : Result:='Monday'; eTZTuesday : Result:='Tuesday'; eTZWednesday : Result:='Wednesday'; eTZThursday : Result:='Thursday'; eTZFriday : Result:='Friday'; eTZSaturday : Result:='Saturday'; end; end; function DayNameToNumber(const ADayName: AsciiString): TTZWeekDay; begin if ADayName='Sun' then Result:=eTZSunday else if ADayName='Mon' then Result:=eTZMonday else if ADayName='Tue' then Result:=eTZTuesday else if ADayName='Wed' then Result:=eTZWednesday else if ADayName='Thu' then Result:=eTZThursday else if ADayName='Fri' then Result:=eTZFriday else if ADayName='Sat' then Result:=eTZSaturday else Raise TTZException.Create('Unknown day name: ' + ADayName); end; function TimeFormToChar(const ATimeForm: TTZTimeForm): AsciiChar; begin case ATimeForm of tztfWallClock: Result := 'w'; tztfStandard: Result := 's'; tztfUniversal: Result := 'u'; else Result := '?'; end; end; function CharToTimeForm(const AChar: AsciiChar; out ATimeForm: TTZTimeForm): Boolean; begin Result := True; case AChar of 'w': ATimeForm := tztfWallClock; 's': ATimeForm := tztfStandard; 'u','g','z': ATimeForm := tztfUniversal; else Result := False; end; end; function ExtractTimeForm(var TimeStr: AsciiString; out TimeForm: TTZTimeForm): Boolean; var TimeFormChar: AsciiChar; begin Result := False; if Length(TimeStr) > 0 then begin TimeFormChar := TimeStr[Length(TimeStr)]; Result := CharToTimeForm(TimeFormChar, TimeForm); if Result then Delete(TimeStr, Length(TimeStr), 1); end; end; function ExtractTimeFormDefault(var TimeStr: AsciiString; const Default: TTZTimeForm): TTZTimeForm; begin if not ExtractTimeForm(TimeStr, Result) then Result := Default; end; function ParseUntilFields(const AIterator: TTZLineIterate; out ATimeForm: TTZTimeForm; const ADefaultTimeForm: TTZTimeForm): TTZDateTime; var TmpWord: AsciiString; begin // Default values Result := MakeTZDate(TZ_YEAR_MAX, 1, 1, 0); ATimeForm := ADefaultTimeForm; // Year TmpWord := AIterator.GetNextWord; if TmpWord = '' then Exit; try Result.Year:=StrToInt(TmpWord); except on E: Exception do raise TTZException.Create('Invalid date in "until" fields'); end; // Month TmpWord := AIterator.GetNextWord; if TmpWord = '' Then Exit; Result.Month := MonthNumberFromShortName(TmpWord); // Day TmpWord := AIterator.GetNextWord; if TmpWord = '' then Exit; Result.Day := StrToIntDef(TmpWord, 0); // Day is not a number, try to resolve macro if Result.Day = 0 then MacroSolver(Result, TmpWord); // Seconds TmpWord := AIterator.GetNextWord; if TmpWord = '' then Exit; ATimeForm := ExtractTimeFormDefault(TmpWord, ADefaultTimeForm); Result.SecsInDay := TimeToSeconds(TmpWord); end; // This function check for some macros to specify a given day // in a month and a year, like "lastSun" or "Mon>=15". procedure MacroSolver(var ADate: TTZDateTime; const ADayString: AsciiString); var j,k: integer; ConditionalMacro: Boolean; ConditionalBegin: integer; ConditionalEnd: integer; ConditionA,ConditionOp,ConditionB: AsciiString; WeekDay: TTZWeekDay; begin // Check if it is a regular number j:=StrToIntDef(ADayString,-1); if j<>-1 then begin ADate.Day:=j; Exit; end; // Check if it is a conditional macro ConditionalMacro:=false; ConditionalBegin:=0; ConditionalEnd:=0; for j := 1 to Length(ADayString) do begin if ADayString[j] in ['<','=','>'] then begin ConditionalMacro:=true; ConditionalBegin:=j; for k := j+1 to Length(ADayString) do begin if not (ADayString[k] in ['<','=','>']) then begin ConditionalEnd:=k; Break; end; end; Break; end; end; if ConditionalMacro then begin if (ConditionalEnd=0) or (ConditionalBegin=0) then raise TTZException.Create('Macro expansion not possible: Unrecognised conditional part'); ConditionA:=Copy(ADayString,1,ConditionalBegin-1); ConditionOp:=Copy(ADayString,ConditionalBegin,ConditionalEnd-ConditionalBegin); ConditionB:=Copy(ADayString,ConditionalEnd,Length(ADayString)-ConditionalEnd+1); WeekDay:=DayNameToNumber(ConditionA); j:=StrToInt(ConditionB); if ConditionOp='>' then begin ADate.Day:=j+1; ADate:=MacroFirstWeekDay(ADate,WeekDay); end else if ConditionOp='>=' then begin ADate.Day:=j; ADate:=MacroFirstWeekDay(ADate,WeekDay); end else if ConditionOp='<' then begin ADate.Day:=j-1; ADate:=MacroLastWeekDay(ADate,WeekDay); end else if ConditionOp='<=' then begin ADate.Day:=j; ADate:=MacroLastWeekDay(ADate,WeekDay); end else raise TTZException.Create('Macro expansion not possible: Unknown condition operator'); end else begin // It is not a conditional macro, so it could be firstXXX or lastXXX if LeftStr(ADayString,5)='first' then begin WeekDay:=DayNameToNumber(Copy(ADayString,6,Length(ADayString)-5)); ADate:=MacroFirstWeekDay(FirstDayOfMonth(ADate),WeekDay); end else if LeftStr(ADayString,4)='last' then begin WeekDay:=DayNameToNumber(Copy(ADayString,5,Length(ADayString)-4)); ADate:=MacroLastWeekDay(LastDayOfMonth(ADate),WeekDay); end else raise TTZException.Create('Macro expansion not possible: Unrecognised macro'); end; end; function SecondsToShortTime(const ASeconds: Integer): String; begin Result := SecondsToTime(ASeconds, True); end; function SecondsToTime(const ASeconds: Integer; AAllowShortTime: Boolean = False): String; var H, M, S: Integer; // Hours, Minutes, Seconds begin S := Abs(ASeconds); H := S div 3600; Dec(S, H * 3600); M := S div 60; Dec(S, M * 60); // Negative if ASeconds < 0 then Result := '-' else Result := ''; // Hours if H < 10 then Result := Result + '0'; Result := Result + IntToStr(H); // Minutes Result := Result + ':'; if M < 10 then Result := Result + '0'; Result := Result + IntToStr(M); // Seconds (optional) if not AAllowShortTime or (S <> 0) then begin Result := Result + ':'; if S < 10 then Result := Result + '0'; Result := Result + IntToStr(S); end; end; // A fast and crude guess of whether a string looks like time. function LooksLikeTime(const ATime: AsciiString): Boolean; begin // Time could be expressed in: // [-]h = hours // [-]h:m = hours:minutes // [-]h:m:s = hours:minutes:seconds Result := False; if Length(ATime) > 0 then begin if ATime[1] in ['0'..'9'] then Result := True else if ATime[1] = '-' then begin if Length(ATime) > 1 then Result := ATime[2] in ['0'..'9']; end; end; end; function TimeToSeconds(const ATime: AsciiString; AStrickTimeRange: Boolean = True): Integer; var Sign: integer; TwoColons: integer; j: integer; TmpTime: AsciiString; TimeIterator: TTZLineIterate; Hours, Minutes, Seconds: Integer; begin // Time could be expressed in: // [-]h = hours // [-]h:m = hours:minutes // [-]h:m:s = hours:minutes:seconds // So count the amount of ':' to get the format if Length(ATime) = 0 then raise TTZException.Create('Time string is empty.'); if ATime[1]='-' then begin Sign:=-1; // Negative time TmpTime:=Copy(ATime,2,Length(ATime)-1); end else begin Sign:=1; // Positive time TmpTime:=ATime; end; TwoColons:=0; for j := 1 to Length(TmpTime) do begin if TmpTime[j] = ':' then Inc(TwoColons); end; Hours := 0; Minutes := 0; Seconds := 0; try case TwoColons of // Format is "h" 0: begin Hours := StrToInt(TmpTime); end; // Format is "hh:mm" 1: begin TimeIterator:=TTZLineIterate.Create(TmpTime,':'); try Hours:=StrToInt(TimeIterator.GetNextWord); Minutes:=StrToInt(TimeIterator.GetNextWord); finally TimeIterator.Free; end; end; // Format is "hh:mm:ss" 2: begin TimeIterator:=TTZLineIterate.Create(TmpTime,':'); try Hours:=StrToInt(TimeIterator.GetNextWord); Minutes:=StrToInt(TimeIterator.GetNextWord); Seconds:=StrToInt(TimeIterator.GetNextWord); finally TimeIterator.Free; end; end; else raise TTZException.Create('Unexpected number of colons.'); end; // Total number of seconds Result := (Hours * 3600) + (Minutes * 60) + Seconds; // Check strict time range if AStrickTimeRange then begin if (Hours < Low(TTZHour)) or (Hours > High(TTZHour)) then raise TTZException.CreateFmt('Hours component "%d" is out of range.', [Hours]); if (Minutes < Low(TTZMinute)) or (Minutes > High(TTZMinute)) then raise TTZException.CreateFmt('Minutes component "%d" is out of range.', [Minutes]); if (Seconds < Low(TTZSecond)) or (Seconds > High(TTZSecond)) then raise TTZException.CreateFmt('Seconds component "%d" is out of range.', [Seconds]); if Result > TZ_MAX_TIME_VALUE_SECONDS then raise TTZException.CreateFmt('Total number of seconds "%d" exceeds the limit.', [Result]); end; // Apply time sign Result := Sign * Result; except on E: Exception do raise TTZException.CreateFmt('Failed to parse time string "%s" with error: %s', [ATime, E.Message]); end; end; function MacroFirstWeekDay(const ADate: TTZDateTime; const AWeekDay: TTZWeekDay): TTZDateTime; var ShiftNumDays: Integer; SourceWeekDay: TTZWeekDay; begin SourceWeekDay := WeekDayOf(ADate); if SourceWeekDay < AWeekDay then ShiftNumDays := Integer(AWeekDay) - Integer(SourceWeekDay) else if SourceWeekDay > AWeekDay then ShiftNumDays := 7 - (Integer(SourceWeekDay) - Integer(AWeekDay)) else ShiftNumDays := 0; if ShiftNumDays <> 0 then Result := IncDays(ADate, ShiftNumDays) else Result := ADate; end; function MacroLastWeekDay(const ADate: TTZDateTime; const AWeekDay: TTZWeekDay): TTZDateTime; var ShiftNumDays: Integer; SourceWeekDay: TTZWeekDay; begin SourceWeekDay := WeekDayOf(ADate); if SourceWeekDay < AWeekDay then ShiftNumDays := 7 - (Integer(AWeekDay) - Integer(SourceWeekDay)) else if SourceWeekDay > AWeekDay then ShiftNumDays := Integer(SourceWeekDay) - Integer(AWeekDay) else ShiftNumDays := 0; if ShiftNumDays <> 0 then Result := IncDays(ADate, -ShiftNumDays) else Result := ADate; end; function DateTimeToStr(const ADate: TTZDateTime): String; var H, M, S: BYTE; begin DateTimeToTime(ADate, H, M, S); Result := Format('%.4d.%.2d.%.2d %.2d:%.2d:%.2d', [ADate.Year, ADate.Month, ADate.Day, H, M, S]); end; function IncSeconds(const ADate: TTZDateTime; const ASeconds: Integer): TTZDateTime; begin Result := ADate; Inc(Result.SecsInDay, ASeconds); FixUpTime(Result); end; function IncDays(const ADate: TTZDateTime; const ADays: Integer): TTZDateTime; var JulianDays: Integer; begin JulianDays := GregorianDateToJulianDays(ADate); Inc(JulianDays, ADays); Result := JulianDaysToGregorianDate(JulianDays); Result.SecsInDay := ADate.SecsInDay; end; function TZDateToPascalDate(const ADate: TTZDateTime): TDateTime; begin Result:=EncodeDate(ADate.Year,Adate.Month,ADate.Day); Result:=IncSecond(Result,ADate.SecsInDay); end; function PascalDateToTZDate(const ADate: TDateTime): TTZDateTime; begin Result.Year:=YearOf(ADate); Result.Month:=MonthOf(ADate); Result.Day:=DayOf(ADate); Result.SecsInDay:=HourOf(ADate)*3600+MinuteOf(ADate)*60+SecondOf(ADate); end; function MakeTZDate(const Year, Month, Day, SecsInDay: Integer): TTZDateTime; inline; begin Result.Year := Year; Result.Month := Month; Result.Day := Day; Result.SecsInDay := SecsInDay; end; //****************************************************************************** // Convert "Gregorian Calendar Date" to "Julian Day Number". Time of day is ignored. // The number of days is since Julian Date Epox: 12:00 Jan 1, 4713 BC. // // The algorithm is valid at least for all positive Julian Day Numbers. // // Implemented according to a formula on Wikipedia page: // https://en.wikipedia.org/wiki/Julian_day#Converting_Julian_or_Gregorian_calendar_date_to_Julian_Day_Number // // See Also: // DateTimeToJulianDate, DateTimeToModifiedJulianDate in FPC DateUtils unit. //****************************************************************************** function GregorianDateToJulianDays(const Value: TTZDateTime): Integer; var a, y, m: Integer; begin a := (14 - Value.Month) div 12; y := Value.Year + 4800 - a; m := Value.Month + 12 * a - 3; Result := Value.Day + ((153 * m + 2) div 5) + (365 * y) + (y div 4) - (y div 100) + (y div 400) - 32045; end; //****************************************************************************** // Convert "Julian Day Number" to "Gregorian Calendar Date". Time of day is set to zero. // The number of days is since Julian Date Epox: 12:00 Jan 1, 4713 BC. // // This is an algorithm by Richards to convert a Julian Day Number to // a date in the Gregorian calendar (proleptic, when applicable). // Richards does not state which dates the algorithm is valid for. // // Implemented according to a formula on Wikipedia page: // https://en.wikipedia.org/wiki/Julian_day#Julian_or_Gregorian_calendar_from_Julian_day_number // // See Also: // JulianDateToDateTime, ModifiedJulianDateToDateTime in FPC DateUtils unit. //****************************************************************************** function JulianDaysToGregorianDate(const Value: Integer): TTZDateTime; const y=4716; v=3; j=1401; u=5; m=2; s=153; n=12; w=2; r=4; B=274277; p=1461; C=-38; var f, e, g, h: Integer; begin // f = J + j + (((4 × J + B) div 146097) × 3) div 4 + C f := Value + j + (((4 * Value + B) div 146097) * 3) div 4 + C; // e = r × f + v e := r * f + v; // g = mod(e, p) div r g := (e mod p) div r; // h = u × g + w h := u * g + w; // D = (mod(h, s)) div u + 1 Result.Day := (h mod s) div u + 1; // M = mod(h div s + m, n) + 1 Result.Month := ((h div s + m) mod n) + 1; // Y = (e div p) - y + (n + m - M) div n Result.Year := (e div p) - y + (n + m - Result.Month) div n; Result.SecsInDay := 0; end; end. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������./sqm-skeleton.html���������������������������������������������������������������������������������0000644�0001750�0001750�00000003370�14576573022�014463� 0����������������������������������������������������������������������������������������������������ustar �anthony�������������������������anthony����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!-- Name: - Distributed with UDM as sqm-skeleton.html - Copied to logs directory as sqm-template.html if it does not exist. - Altered by log continuous transfer facility to sqm.html before sending to server. Description: - All variables that are replaced by UDM start with comment, then space, then text SQM-variablename as seen inline below. - Variables shall be on their own line since the entire line gets replaced. - This file can be sent as a standalone html file by default, or you can delete the header and footer to become a stripped down file for including in your own server-side html/php file. - After variable replacement, the file is sent to the server along with the plot file. --> <!doctype html> <html> <head> <meta charset="UTF-8"> <title>SQM readings
mags/arcsec2 naked eye limiting magnitude
cd/m2 luminance
natural sky units
SQM-graph
Current record: Next record at:
./tlntsend.pas0000644000175000017500000002614214576573021013514 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 001.003.001 | |==============================================================================| | Content: TELNET and SSH2 client | |==============================================================================| | Copyright (c)1999-2010, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2002-2010. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@abstract(Telnet script client) Used RFC: RFC-854 } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} {$IFDEF UNICODE} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$ENDIF} unit tlntsend; interface uses SysUtils, Classes, blcksock, synautil; const cTelnetProtocol = '23'; cSSHProtocol = '22'; TLNT_EOR = #239; TLNT_SE = #240; TLNT_NOP = #241; TLNT_DATA_MARK = #242; TLNT_BREAK = #243; TLNT_IP = #244; TLNT_AO = #245; TLNT_AYT = #246; TLNT_EC = #247; TLNT_EL = #248; TLNT_GA = #249; TLNT_SB = #250; TLNT_WILL = #251; TLNT_WONT = #252; TLNT_DO = #253; TLNT_DONT = #254; TLNT_IAC = #255; type {:@abstract(State of telnet protocol). Used internaly by TTelnetSend.} TTelnetState =(tsDATA, tsIAC, tsIAC_SB, tsIAC_WILL, tsIAC_DO, tsIAC_WONT, tsIAC_DONT, tsIAC_SBIAC, tsIAC_SBDATA, tsSBDATA_IAC); {:@abstract(Class with implementation of Telnet/SSH script client.) Note: Are you missing properties for specify server address and port? Look to parent @link(TSynaClient) too!} TTelnetSend = class(TSynaClient) private FSock: TTCPBlockSocket; FBuffer: Ansistring; FState: TTelnetState; FSessionLog: Ansistring; FSubNeg: Ansistring; FSubType: Ansichar; FTermType: Ansistring; function Connect: Boolean; function Negotiate(const Buf: Ansistring): Ansistring; procedure FilterHook(Sender: TObject; var Value: AnsiString); public constructor Create; destructor Destroy; override; {:Connects to Telnet server.} function Login: Boolean; {:Connects to SSH2 server and login by Username and Password properties. You must use some of SSL plugins with SSH support. For exammple CryptLib.} function SSHLogin: Boolean; {:Logout from telnet server.} procedure Logout; {:Send this data to telnet server.} procedure Send(const Value: string); {:Reading data from telnet server until Value is readed. If it is not readed until timeout, result is @false. Otherwise result is @true.} function WaitFor(const Value: string): Boolean; {:Read data terminated by terminator from telnet server.} function RecvTerminated(const Terminator: string): string; {:Read string from telnet server.} function RecvString: string; published {:Socket object used for TCP/IP operation. Good for seting OnStatus hook, etc.} property Sock: TTCPBlockSocket read FSock; {:all readed datas in this session (from connect) is stored in this large string.} property SessionLog: Ansistring read FSessionLog write FSessionLog; {:Terminal type indentification. By default is 'SYNAPSE'.} property TermType: Ansistring read FTermType write FTermType; end; implementation constructor TTelnetSend.Create; begin inherited Create; FSock := TTCPBlockSocket.Create; FSock.Owner := self; FSock.OnReadFilter := FilterHook; FTimeout := 60000; FTargetPort := cTelnetProtocol; FSubNeg := ''; FSubType := #0; FTermType := 'SYNAPSE'; end; destructor TTelnetSend.Destroy; begin FSock.Free; inherited Destroy; end; function TTelnetSend.Connect: Boolean; begin // Do not call this function! It is calling by LOGIN method! FBuffer := ''; FSessionLog := ''; FState := tsDATA; FSock.CloseSocket; FSock.LineBuffer := ''; FSock.Bind(FIPInterface, cAnyPort); FSock.Connect(FTargetHost, FTargetPort); Result := FSock.LastError = 0; end; function TTelnetSend.RecvTerminated(const Terminator: string): string; begin Result := FSock.RecvTerminated(FTimeout, Terminator); end; function TTelnetSend.RecvString: string; begin Result := FSock.RecvTerminated(FTimeout, CRLF); end; function TTelnetSend.WaitFor(const Value: string): Boolean; begin Result := FSock.RecvTerminated(FTimeout, Value) <> ''; end; procedure TTelnetSend.FilterHook(Sender: TObject; var Value: AnsiString); begin Value := Negotiate(Value); FSessionLog := FSessionLog + Value; end; function TTelnetSend.Negotiate(const Buf: Ansistring): Ansistring; var n: integer; c: Ansichar; Reply: Ansistring; SubReply: Ansistring; begin Result := ''; for n := 1 to Length(Buf) do begin c := Buf[n]; Reply := ''; case FState of tsData: if c = TLNT_IAC then FState := tsIAC else Result := Result + c; tsIAC: case c of TLNT_IAC: begin FState := tsData; Result := Result + TLNT_IAC; end; TLNT_WILL: FState := tsIAC_WILL; TLNT_WONT: FState := tsIAC_WONT; TLNT_DONT: FState := tsIAC_DONT; TLNT_DO: FState := tsIAC_DO; TLNT_EOR: FState := tsDATA; TLNT_SB: begin FState := tsIAC_SB; FSubType := #0; FSubNeg := ''; end; else FState := tsData; end; tsIAC_WILL: begin case c of #3: //suppress GA Reply := TLNT_DO; else Reply := TLNT_DONT; end; FState := tsData; end; tsIAC_WONT: begin Reply := TLNT_DONT; FState := tsData; end; tsIAC_DO: begin case c of #24: //termtype Reply := TLNT_WILL; else Reply := TLNT_WONT; end; FState := tsData; end; tsIAC_DONT: begin Reply := TLNT_WONT; FState := tsData; end; tsIAC_SB: begin FSubType := c; FState := tsIAC_SBDATA; end; tsIAC_SBDATA: begin if c = TLNT_IAC then FState := tsSBDATA_IAC else FSubNeg := FSubNeg + c; end; tsSBDATA_IAC: case c of TLNT_IAC: begin FState := tsIAC_SBDATA; FSubNeg := FSubNeg + c; end; TLNT_SE: begin SubReply := ''; case FSubType of #24: //termtype begin if (FSubNeg <> '') and (FSubNeg[1] = #1) then SubReply := #0 + FTermType; end; end; Sock.SendString(TLNT_IAC + TLNT_SB + FSubType + SubReply + TLNT_IAC + TLNT_SE); FState := tsDATA; end; else FState := tsDATA; end; else FState := tsData; end; if Reply <> '' then Sock.SendString(TLNT_IAC + Reply + c); end; end; procedure TTelnetSend.Send(const Value: string); begin Sock.SendString(ReplaceString(Value, TLNT_IAC, TLNT_IAC + TLNT_IAC)); end; function TTelnetSend.Login: Boolean; begin Result := False; if not Connect then Exit; Result := True; end; function TTelnetSend.SSHLogin: Boolean; begin Result := False; if Connect then begin FSock.SSL.SSLType := LT_SSHv2; FSock.SSL.Username := FUsername; FSock.SSL.Password := FPassword; FSock.SSLDoConnect; Result := FSock.LastError = 0; end; end; procedure TTelnetSend.Logout; begin FSock.CloseSocket; end; end. ./sswin32.pas0000644000175000017500000015414414576573021013175 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 002.002.000 | |==============================================================================| | Content: Socket Independent Platform Layer - Win32 definition include | |==============================================================================| | Copyright (c)1999-2008, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2003. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@exclude} {$IFDEF WIN32} //{$DEFINE WINSOCK1} {Note about define WINSOCK1: If you activate this compiler directive, then socket interface level 1.1 is used instead default level 2.2. Level 2.2 is not available on old W95, however you can install update. } //{$DEFINE FORCEOLDAPI} {Note about define FORCEOLDAPI: If you activate this compiler directive, then is allways used old socket API for name resolution. If you leave this directive inactive, then the new API is used, when running system allows it. For IPv6 support you must have new API! } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} {$IFDEF VER125} {$DEFINE BCB} {$ENDIF} {$IFDEF BCB} {$ObjExportAll On} (*$HPPEMIT '/* EDE 2003-02-19 */' *) (*$HPPEMIT 'namespace Synsock { using System::Shortint; }' *) (*$HPPEMIT '#undef h_addr' *) (*$HPPEMIT '#undef IOCPARM_MASK' *) (*$HPPEMIT '#undef FD_SETSIZE' *) (*$HPPEMIT '#undef IOC_VOID' *) (*$HPPEMIT '#undef IOC_OUT' *) (*$HPPEMIT '#undef IOC_IN' *) (*$HPPEMIT '#undef IOC_INOUT' *) (*$HPPEMIT '#undef FIONREAD' *) (*$HPPEMIT '#undef FIONBIO' *) (*$HPPEMIT '#undef FIOASYNC' *) (*$HPPEMIT '#undef IPPROTO_IP' *) (*$HPPEMIT '#undef IPPROTO_ICMP' *) (*$HPPEMIT '#undef IPPROTO_IGMP' *) (*$HPPEMIT '#undef IPPROTO_TCP' *) (*$HPPEMIT '#undef IPPROTO_UDP' *) (*$HPPEMIT '#undef IPPROTO_RAW' *) (*$HPPEMIT '#undef IPPROTO_MAX' *) (*$HPPEMIT '#undef INADDR_ANY' *) (*$HPPEMIT '#undef INADDR_LOOPBACK' *) (*$HPPEMIT '#undef INADDR_BROADCAST' *) (*$HPPEMIT '#undef INADDR_NONE' *) (*$HPPEMIT '#undef INVALID_SOCKET' *) (*$HPPEMIT '#undef SOCKET_ERROR' *) (*$HPPEMIT '#undef WSADESCRIPTION_LEN' *) (*$HPPEMIT '#undef WSASYS_STATUS_LEN' *) (*$HPPEMIT '#undef IP_OPTIONS' *) (*$HPPEMIT '#undef IP_TOS' *) (*$HPPEMIT '#undef IP_TTL' *) (*$HPPEMIT '#undef IP_MULTICAST_IF' *) (*$HPPEMIT '#undef IP_MULTICAST_TTL' *) (*$HPPEMIT '#undef IP_MULTICAST_LOOP' *) (*$HPPEMIT '#undef IP_ADD_MEMBERSHIP' *) (*$HPPEMIT '#undef IP_DROP_MEMBERSHIP' *) (*$HPPEMIT '#undef IP_DONTFRAGMENT' *) (*$HPPEMIT '#undef IP_DEFAULT_MULTICAST_TTL' *) (*$HPPEMIT '#undef IP_DEFAULT_MULTICAST_LOOP' *) (*$HPPEMIT '#undef IP_MAX_MEMBERSHIPS' *) (*$HPPEMIT '#undef SOL_SOCKET' *) (*$HPPEMIT '#undef SO_DEBUG' *) (*$HPPEMIT '#undef SO_ACCEPTCONN' *) (*$HPPEMIT '#undef SO_REUSEADDR' *) (*$HPPEMIT '#undef SO_KEEPALIVE' *) (*$HPPEMIT '#undef SO_DONTROUTE' *) (*$HPPEMIT '#undef SO_BROADCAST' *) (*$HPPEMIT '#undef SO_USELOOPBACK' *) (*$HPPEMIT '#undef SO_LINGER' *) (*$HPPEMIT '#undef SO_OOBINLINE' *) (*$HPPEMIT '#undef SO_DONTLINGER' *) (*$HPPEMIT '#undef SO_SNDBUF' *) (*$HPPEMIT '#undef SO_RCVBUF' *) (*$HPPEMIT '#undef SO_SNDLOWAT' *) (*$HPPEMIT '#undef SO_RCVLOWAT' *) (*$HPPEMIT '#undef SO_SNDTIMEO' *) (*$HPPEMIT '#undef SO_RCVTIMEO' *) (*$HPPEMIT '#undef SO_ERROR' *) (*$HPPEMIT '#undef SO_OPENTYPE' *) (*$HPPEMIT '#undef SO_SYNCHRONOUS_ALERT' *) (*$HPPEMIT '#undef SO_SYNCHRONOUS_NONALERT' *) (*$HPPEMIT '#undef SO_MAXDG' *) (*$HPPEMIT '#undef SO_MAXPATHDG' *) (*$HPPEMIT '#undef SO_UPDATE_ACCEPT_CONTEXT' *) (*$HPPEMIT '#undef SO_CONNECT_TIME' *) (*$HPPEMIT '#undef SO_TYPE' *) (*$HPPEMIT '#undef SOCK_STREAM' *) (*$HPPEMIT '#undef SOCK_DGRAM' *) (*$HPPEMIT '#undef SOCK_RAW' *) (*$HPPEMIT '#undef SOCK_RDM' *) (*$HPPEMIT '#undef SOCK_SEQPACKET' *) (*$HPPEMIT '#undef TCP_NODELAY' *) (*$HPPEMIT '#undef AF_UNSPEC' *) (*$HPPEMIT '#undef SOMAXCONN' *) (*$HPPEMIT '#undef AF_INET' *) (*$HPPEMIT '#undef AF_MAX' *) (*$HPPEMIT '#undef PF_UNSPEC' *) (*$HPPEMIT '#undef PF_INET' *) (*$HPPEMIT '#undef PF_MAX' *) (*$HPPEMIT '#undef MSG_OOB' *) (*$HPPEMIT '#undef MSG_PEEK' *) (*$HPPEMIT '#undef WSABASEERR' *) (*$HPPEMIT '#undef WSAEINTR' *) (*$HPPEMIT '#undef WSAEBADF' *) (*$HPPEMIT '#undef WSAEACCES' *) (*$HPPEMIT '#undef WSAEFAULT' *) (*$HPPEMIT '#undef WSAEINVAL' *) (*$HPPEMIT '#undef WSAEMFILE' *) (*$HPPEMIT '#undef WSAEWOULDBLOCK' *) (*$HPPEMIT '#undef WSAEINPROGRESS' *) (*$HPPEMIT '#undef WSAEALREADY' *) (*$HPPEMIT '#undef WSAENOTSOCK' *) (*$HPPEMIT '#undef WSAEDESTADDRREQ' *) (*$HPPEMIT '#undef WSAEMSGSIZE' *) (*$HPPEMIT '#undef WSAEPROTOTYPE' *) (*$HPPEMIT '#undef WSAENOPROTOOPT' *) (*$HPPEMIT '#undef WSAEPROTONOSUPPORT' *) (*$HPPEMIT '#undef WSAESOCKTNOSUPPORT' *) (*$HPPEMIT '#undef WSAEOPNOTSUPP' *) (*$HPPEMIT '#undef WSAEPFNOSUPPORT' *) (*$HPPEMIT '#undef WSAEAFNOSUPPORT' *) (*$HPPEMIT '#undef WSAEADDRINUSE' *) (*$HPPEMIT '#undef WSAEADDRNOTAVAIL' *) (*$HPPEMIT '#undef WSAENETDOWN' *) (*$HPPEMIT '#undef WSAENETUNREACH' *) (*$HPPEMIT '#undef WSAENETRESET' *) (*$HPPEMIT '#undef WSAECONNABORTED' *) (*$HPPEMIT '#undef WSAECONNRESET' *) (*$HPPEMIT '#undef WSAENOBUFS' *) (*$HPPEMIT '#undef WSAEISCONN' *) (*$HPPEMIT '#undef WSAENOTCONN' *) (*$HPPEMIT '#undef WSAESHUTDOWN' *) (*$HPPEMIT '#undef WSAETOOMANYREFS' *) (*$HPPEMIT '#undef WSAETIMEDOUT' *) (*$HPPEMIT '#undef WSAECONNREFUSED' *) (*$HPPEMIT '#undef WSAELOOP' *) (*$HPPEMIT '#undef WSAENAMETOOLONG' *) (*$HPPEMIT '#undef WSAEHOSTDOWN' *) (*$HPPEMIT '#undef WSAEHOSTUNREACH' *) (*$HPPEMIT '#undef WSAENOTEMPTY' *) (*$HPPEMIT '#undef WSAEPROCLIM' *) (*$HPPEMIT '#undef WSAEUSERS' *) (*$HPPEMIT '#undef WSAEDQUOT' *) (*$HPPEMIT '#undef WSAESTALE' *) (*$HPPEMIT '#undef WSAEREMOTE' *) (*$HPPEMIT '#undef WSASYSNOTREADY' *) (*$HPPEMIT '#undef WSAVERNOTSUPPORTED' *) (*$HPPEMIT '#undef WSANOTINITIALISED' *) (*$HPPEMIT '#undef WSAEDISCON' *) (*$HPPEMIT '#undef WSAENOMORE' *) (*$HPPEMIT '#undef WSAECANCELLED' *) (*$HPPEMIT '#undef WSAEEINVALIDPROCTABLE' *) (*$HPPEMIT '#undef WSAEINVALIDPROVIDER' *) (*$HPPEMIT '#undef WSAEPROVIDERFAILEDINIT' *) (*$HPPEMIT '#undef WSASYSCALLFAILURE' *) (*$HPPEMIT '#undef WSASERVICE_NOT_FOUND' *) (*$HPPEMIT '#undef WSATYPE_NOT_FOUND' *) (*$HPPEMIT '#undef WSA_E_NO_MORE' *) (*$HPPEMIT '#undef WSA_E_CANCELLED' *) (*$HPPEMIT '#undef WSAEREFUSED' *) (*$HPPEMIT '#undef WSAHOST_NOT_FOUND' *) (*$HPPEMIT '#undef HOST_NOT_FOUND' *) (*$HPPEMIT '#undef WSATRY_AGAIN' *) (*$HPPEMIT '#undef TRY_AGAIN' *) (*$HPPEMIT '#undef WSANO_RECOVERY' *) (*$HPPEMIT '#undef NO_RECOVERY' *) (*$HPPEMIT '#undef WSANO_DATA' *) (*$HPPEMIT '#undef NO_DATA' *) (*$HPPEMIT '#undef WSANO_ADDRESS' *) (*$HPPEMIT '#undef ENAMETOOLONG' *) (*$HPPEMIT '#undef ENOTEMPTY' *) (*$HPPEMIT '#undef FD_CLR' *) (*$HPPEMIT '#undef FD_ISSET' *) (*$HPPEMIT '#undef FD_SET' *) (*$HPPEMIT '#undef FD_ZERO' *) (*$HPPEMIT '#undef NO_ADDRESS' *) (*$HPPEMIT '#undef ADDR_ANY' *) (*$HPPEMIT '#undef SO_GROUP_ID' *) (*$HPPEMIT '#undef SO_GROUP_PRIORITY' *) (*$HPPEMIT '#undef SO_MAX_MSG_SIZE' *) (*$HPPEMIT '#undef SO_PROTOCOL_INFOA' *) (*$HPPEMIT '#undef SO_PROTOCOL_INFOW' *) (*$HPPEMIT '#undef SO_PROTOCOL_INFO' *) (*$HPPEMIT '#undef PVD_CONFIG' *) (*$HPPEMIT '#undef AF_INET6' *) (*$HPPEMIT '#undef PF_INET6' *) {$ENDIF} interface uses SyncObjs, SysUtils, Classes, Windows; function InitSocketInterface(stack: String): Boolean; function DestroySocketInterface: Boolean; const {$IFDEF WINSOCK1} WinsockLevel = $0101; {$ELSE} WinsockLevel = $0202; {$ENDIF} type u_short = Word; u_int = Integer; u_long = Longint; pu_long = ^u_long; pu_short = ^u_short; TSocket = u_int; TAddrFamily = integer; TMemory = pointer; const {$IFDEF WINSOCK1} DLLStackName = 'wsock32.dll'; {$ELSE} DLLStackName = 'ws2_32.dll'; {$ENDIF} DLLwship6 = 'wship6.dll'; cLocalhost = '127.0.0.1'; cAnyHost = '0.0.0.0'; cBroadcast = '255.255.255.255'; c6Localhost = '::1'; c6AnyHost = '::0'; c6Broadcast = 'ffff::1'; cAnyPort = '0'; const FD_SETSIZE = 64; type PFDSet = ^TFDSet; TFDSet = packed record fd_count: u_int; fd_array: array[0..FD_SETSIZE-1] of TSocket; end; const FIONREAD = $4004667f; FIONBIO = $8004667e; FIOASYNC = $8004667d; type PTimeVal = ^TTimeVal; TTimeVal = packed record tv_sec: Longint; tv_usec: Longint; end; const IPPROTO_IP = 0; { Dummy } IPPROTO_ICMP = 1; { Internet Control Message Protocol } IPPROTO_IGMP = 2; { Internet Group Management Protocol} IPPROTO_TCP = 6; { TCP } IPPROTO_UDP = 17; { User Datagram Protocol } IPPROTO_IPV6 = 41; IPPROTO_ICMPV6 = 58; IPPROTO_RAW = 255; IPPROTO_MAX = 256; type PInAddr = ^TInAddr; TInAddr = packed record case integer of 0: (S_bytes: packed array [0..3] of byte); 1: (S_addr: u_long); end; PSockAddrIn = ^TSockAddrIn; TSockAddrIn = packed record case Integer of 0: (sin_family: u_short; sin_port: u_short; sin_addr: TInAddr; sin_zero: array[0..7] of byte); 1: (sa_family: u_short; sa_data: array[0..13] of byte) end; TIP_mreq = record imr_multiaddr: TInAddr; { IP multicast address of group } imr_interface: TInAddr; { local IP address of interface } end; PInAddr6 = ^TInAddr6; TInAddr6 = packed record case integer of 0: (S6_addr: packed array [0..15] of byte); 1: (u6_addr8: packed array [0..15] of byte); 2: (u6_addr16: packed array [0..7] of word); 3: (u6_addr32: packed array [0..3] of integer); end; PSockAddrIn6 = ^TSockAddrIn6; TSockAddrIn6 = packed record sin6_family: u_short; // AF_INET6 sin6_port: u_short; // Transport level port number sin6_flowinfo: u_long; // IPv6 flow information sin6_addr: TInAddr6; // IPv6 address sin6_scope_id: u_long; // Scope Id: IF number for link-local // SITE id for site-local end; TIPv6_mreq = record ipv6mr_multiaddr: TInAddr6; // IPv6 multicast address. ipv6mr_interface: integer; // Interface index. padding: integer; end; PHostEnt = ^THostEnt; THostEnt = packed record h_name: PAnsiChar; h_aliases: ^PAnsiChar; h_addrtype: Smallint; h_length: Smallint; case integer of 0: (h_addr_list: ^PAnsiChar); 1: (h_addr: ^PInAddr); end; PNetEnt = ^TNetEnt; TNetEnt = packed record n_name: PAnsiChar; n_aliases: ^PAnsiChar; n_addrtype: Smallint; n_net: u_long; end; PServEnt = ^TServEnt; TServEnt = packed record s_name: PAnsiChar; s_aliases: ^PAnsiChar; s_port: Smallint; s_proto: PAnsiChar; end; PProtoEnt = ^TProtoEnt; TProtoEnt = packed record p_name: PAnsiChar; p_aliases: ^PAnsichar; p_proto: Smallint; end; const INADDR_ANY = $00000000; INADDR_LOOPBACK = $7F000001; INADDR_BROADCAST = $FFFFFFFF; INADDR_NONE = $FFFFFFFF; ADDR_ANY = INADDR_ANY; INVALID_SOCKET = TSocket(NOT(0)); SOCKET_ERROR = -1; Const {$IFDEF WINSOCK1} IP_OPTIONS = 1; IP_MULTICAST_IF = 2; { set/get IP multicast interface } IP_MULTICAST_TTL = 3; { set/get IP multicast timetolive } IP_MULTICAST_LOOP = 4; { set/get IP multicast loopback } IP_ADD_MEMBERSHIP = 5; { add an IP group membership } IP_DROP_MEMBERSHIP = 6; { drop an IP group membership } IP_TTL = 7; { set/get IP Time To Live } IP_TOS = 8; { set/get IP Type Of Service } IP_DONTFRAGMENT = 9; { set/get IP Don't Fragment flag } {$ELSE} IP_OPTIONS = 1; IP_HDRINCL = 2; IP_TOS = 3; { set/get IP Type Of Service } IP_TTL = 4; { set/get IP Time To Live } IP_MULTICAST_IF = 9; { set/get IP multicast interface } IP_MULTICAST_TTL = 10; { set/get IP multicast timetolive } IP_MULTICAST_LOOP = 11; { set/get IP multicast loopback } IP_ADD_MEMBERSHIP = 12; { add an IP group membership } IP_DROP_MEMBERSHIP = 13; { drop an IP group membership } IP_DONTFRAGMENT = 14; { set/get IP Don't Fragment flag } {$ENDIF} IP_DEFAULT_MULTICAST_TTL = 1; { normally limit m'casts to 1 hop } IP_DEFAULT_MULTICAST_LOOP = 1; { normally hear sends if a member } IP_MAX_MEMBERSHIPS = 20; { per socket; must fit in one mbuf } SOL_SOCKET = $ffff; {options for socket level } { Option flags per-socket. } SO_DEBUG = $0001; { turn on debugging info recording } SO_ACCEPTCONN = $0002; { socket has had listen() } SO_REUSEADDR = $0004; { allow local address reuse } SO_KEEPALIVE = $0008; { keep connections alive } SO_DONTROUTE = $0010; { just use interface addresses } SO_BROADCAST = $0020; { permit sending of broadcast msgs } SO_USELOOPBACK = $0040; { bypass hardware when possible } SO_LINGER = $0080; { linger on close if data present } SO_OOBINLINE = $0100; { leave received OOB data in line } SO_DONTLINGER = $ff7f; { Additional options. } SO_SNDBUF = $1001; { send buffer size } SO_RCVBUF = $1002; { receive buffer size } SO_SNDLOWAT = $1003; { send low-water mark } SO_RCVLOWAT = $1004; { receive low-water mark } SO_SNDTIMEO = $1005; { send timeout } SO_RCVTIMEO = $1006; { receive timeout } SO_ERROR = $1007; { get error status and clear } SO_TYPE = $1008; { get socket type } { WinSock 2 extension -- new options } SO_GROUP_ID = $2001; { ID of a socket group} SO_GROUP_PRIORITY = $2002; { the relative priority within a group} SO_MAX_MSG_SIZE = $2003; { maximum message size } SO_PROTOCOL_INFOA = $2004; { WSAPROTOCOL_INFOA structure } SO_PROTOCOL_INFOW = $2005; { WSAPROTOCOL_INFOW structure } SO_PROTOCOL_INFO = SO_PROTOCOL_INFOA; PVD_CONFIG = $3001; {configuration info for service provider } { Option for opening sockets for synchronous access. } SO_OPENTYPE = $7008; SO_SYNCHRONOUS_ALERT = $10; SO_SYNCHRONOUS_NONALERT = $20; { Other NT-specific options. } SO_MAXDG = $7009; SO_MAXPATHDG = $700A; SO_UPDATE_ACCEPT_CONTEXT = $700B; SO_CONNECT_TIME = $700C; SOMAXCONN = $7fffffff; IPV6_UNICAST_HOPS = 8; // ??? IPV6_MULTICAST_IF = 9; // set/get IP multicast i/f IPV6_MULTICAST_HOPS = 10; // set/get IP multicast ttl IPV6_MULTICAST_LOOP = 11; // set/get IP multicast loopback IPV6_JOIN_GROUP = 12; // add an IP group membership IPV6_LEAVE_GROUP = 13; // drop an IP group membership MSG_NOSIGNAL = 0; // getnameinfo constants NI_MAXHOST = 1025; NI_MAXSERV = 32; NI_NOFQDN = $1; NI_NUMERICHOST = $2; NI_NAMEREQD = $4; NI_NUMERICSERV = $8; NI_DGRAM = $10; const SOCK_STREAM = 1; { stream socket } SOCK_DGRAM = 2; { datagram socket } SOCK_RAW = 3; { raw-protocol interface } SOCK_RDM = 4; { reliably-delivered message } SOCK_SEQPACKET = 5; { sequenced packet stream } { TCP options. } TCP_NODELAY = $0001; { Address families. } AF_UNSPEC = 0; { unspecified } AF_INET = 2; { internetwork: UDP, TCP, etc. } AF_INET6 = 23; { Internetwork Version 6 } AF_MAX = 24; { Protocol families, same as address families for now. } PF_UNSPEC = AF_UNSPEC; PF_INET = AF_INET; PF_INET6 = AF_INET6; PF_MAX = AF_MAX; type { Structure used by kernel to store most addresses. } PSockAddr = ^TSockAddr; TSockAddr = TSockAddrIn; { Structure used by kernel to pass protocol information in raw sockets. } PSockProto = ^TSockProto; TSockProto = packed record sp_family: u_short; sp_protocol: u_short; end; type PAddrInfo = ^TAddrInfo; TAddrInfo = record ai_flags: integer; // AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST. ai_family: integer; // PF_xxx. ai_socktype: integer; // SOCK_xxx. ai_protocol: integer; // 0 or IPPROTO_xxx for IPv4 and IPv6. ai_addrlen: u_int; // Length of ai_addr. ai_canonname: PAnsiChar; // Canonical name for nodename. ai_addr: PSockAddr; // Binary address. ai_next: PAddrInfo; // Next structure in linked list. end; const // Flags used in "hints" argument to getaddrinfo(). AI_PASSIVE = $1; // Socket address will be used in bind() call. AI_CANONNAME = $2; // Return canonical name in first ai_canonname. AI_NUMERICHOST = $4; // Nodename must be a numeric address string. type { Structure used for manipulating linger option. } PLinger = ^TLinger; TLinger = packed record l_onoff: u_short; l_linger: u_short; end; const MSG_OOB = $01; // Process out-of-band data. MSG_PEEK = $02; // Peek at incoming messages. const { All Windows Sockets error constants are biased by WSABASEERR from the "normal" } WSABASEERR = 10000; { Windows Sockets definitions of regular Microsoft C error constants } WSAEINTR = (WSABASEERR+4); WSAEBADF = (WSABASEERR+9); WSAEACCES = (WSABASEERR+13); WSAEFAULT = (WSABASEERR+14); WSAEINVAL = (WSABASEERR+22); WSAEMFILE = (WSABASEERR+24); { Windows Sockets definitions of regular Berkeley error constants } WSAEWOULDBLOCK = (WSABASEERR+35); WSAEINPROGRESS = (WSABASEERR+36); WSAEALREADY = (WSABASEERR+37); WSAENOTSOCK = (WSABASEERR+38); WSAEDESTADDRREQ = (WSABASEERR+39); WSAEMSGSIZE = (WSABASEERR+40); WSAEPROTOTYPE = (WSABASEERR+41); WSAENOPROTOOPT = (WSABASEERR+42); WSAEPROTONOSUPPORT = (WSABASEERR+43); WSAESOCKTNOSUPPORT = (WSABASEERR+44); WSAEOPNOTSUPP = (WSABASEERR+45); WSAEPFNOSUPPORT = (WSABASEERR+46); WSAEAFNOSUPPORT = (WSABASEERR+47); WSAEADDRINUSE = (WSABASEERR+48); WSAEADDRNOTAVAIL = (WSABASEERR+49); WSAENETDOWN = (WSABASEERR+50); WSAENETUNREACH = (WSABASEERR+51); WSAENETRESET = (WSABASEERR+52); WSAECONNABORTED = (WSABASEERR+53); WSAECONNRESET = (WSABASEERR+54); WSAENOBUFS = (WSABASEERR+55); WSAEISCONN = (WSABASEERR+56); WSAENOTCONN = (WSABASEERR+57); WSAESHUTDOWN = (WSABASEERR+58); WSAETOOMANYREFS = (WSABASEERR+59); WSAETIMEDOUT = (WSABASEERR+60); WSAECONNREFUSED = (WSABASEERR+61); WSAELOOP = (WSABASEERR+62); WSAENAMETOOLONG = (WSABASEERR+63); WSAEHOSTDOWN = (WSABASEERR+64); WSAEHOSTUNREACH = (WSABASEERR+65); WSAENOTEMPTY = (WSABASEERR+66); WSAEPROCLIM = (WSABASEERR+67); WSAEUSERS = (WSABASEERR+68); WSAEDQUOT = (WSABASEERR+69); WSAESTALE = (WSABASEERR+70); WSAEREMOTE = (WSABASEERR+71); { Extended Windows Sockets error constant definitions } WSASYSNOTREADY = (WSABASEERR+91); WSAVERNOTSUPPORTED = (WSABASEERR+92); WSANOTINITIALISED = (WSABASEERR+93); WSAEDISCON = (WSABASEERR+101); WSAENOMORE = (WSABASEERR+102); WSAECANCELLED = (WSABASEERR+103); WSAEEINVALIDPROCTABLE = (WSABASEERR+104); WSAEINVALIDPROVIDER = (WSABASEERR+105); WSAEPROVIDERFAILEDINIT = (WSABASEERR+106); WSASYSCALLFAILURE = (WSABASEERR+107); WSASERVICE_NOT_FOUND = (WSABASEERR+108); WSATYPE_NOT_FOUND = (WSABASEERR+109); WSA_E_NO_MORE = (WSABASEERR+110); WSA_E_CANCELLED = (WSABASEERR+111); WSAEREFUSED = (WSABASEERR+112); { Error return codes from gethostbyname() and gethostbyaddr() (when using the resolver). Note that these errors are retrieved via WSAGetLastError() and must therefore follow the rules for avoiding clashes with error numbers from specific implementations or language run-time systems. For this reason the codes are based at WSABASEERR+1001. Note also that [WSA]NO_ADDRESS is defined only for compatibility purposes. } { Authoritative Answer: Host not found } WSAHOST_NOT_FOUND = (WSABASEERR+1001); HOST_NOT_FOUND = WSAHOST_NOT_FOUND; { Non-Authoritative: Host not found, or SERVERFAIL } WSATRY_AGAIN = (WSABASEERR+1002); TRY_AGAIN = WSATRY_AGAIN; { Non recoverable errors, FORMERR, REFUSED, NOTIMP } WSANO_RECOVERY = (WSABASEERR+1003); NO_RECOVERY = WSANO_RECOVERY; { Valid name, no data record of requested type } WSANO_DATA = (WSABASEERR+1004); NO_DATA = WSANO_DATA; { no address, look for MX record } WSANO_ADDRESS = WSANO_DATA; NO_ADDRESS = WSANO_ADDRESS; EWOULDBLOCK = WSAEWOULDBLOCK; EINPROGRESS = WSAEINPROGRESS; EALREADY = WSAEALREADY; ENOTSOCK = WSAENOTSOCK; EDESTADDRREQ = WSAEDESTADDRREQ; EMSGSIZE = WSAEMSGSIZE; EPROTOTYPE = WSAEPROTOTYPE; ENOPROTOOPT = WSAENOPROTOOPT; EPROTONOSUPPORT = WSAEPROTONOSUPPORT; ESOCKTNOSUPPORT = WSAESOCKTNOSUPPORT; EOPNOTSUPP = WSAEOPNOTSUPP; EPFNOSUPPORT = WSAEPFNOSUPPORT; EAFNOSUPPORT = WSAEAFNOSUPPORT; EADDRINUSE = WSAEADDRINUSE; EADDRNOTAVAIL = WSAEADDRNOTAVAIL; ENETDOWN = WSAENETDOWN; ENETUNREACH = WSAENETUNREACH; ENETRESET = WSAENETRESET; ECONNABORTED = WSAECONNABORTED; ECONNRESET = WSAECONNRESET; ENOBUFS = WSAENOBUFS; EISCONN = WSAEISCONN; ENOTCONN = WSAENOTCONN; ESHUTDOWN = WSAESHUTDOWN; ETOOMANYREFS = WSAETOOMANYREFS; ETIMEDOUT = WSAETIMEDOUT; ECONNREFUSED = WSAECONNREFUSED; ELOOP = WSAELOOP; ENAMETOOLONG = WSAENAMETOOLONG; EHOSTDOWN = WSAEHOSTDOWN; EHOSTUNREACH = WSAEHOSTUNREACH; ENOTEMPTY = WSAENOTEMPTY; EPROCLIM = WSAEPROCLIM; EUSERS = WSAEUSERS; EDQUOT = WSAEDQUOT; ESTALE = WSAESTALE; EREMOTE = WSAEREMOTE; EAI_ADDRFAMILY = 1; // Address family for nodename not supported. EAI_AGAIN = 2; // Temporary failure in name resolution. EAI_BADFLAGS = 3; // Invalid value for ai_flags. EAI_FAIL = 4; // Non-recoverable failure in name resolution. EAI_FAMILY = 5; // Address family ai_family not supported. EAI_MEMORY = 6; // Memory allocation failure. EAI_NODATA = 7; // No address associated with nodename. EAI_NONAME = 8; // Nodename nor servname provided, or not known. EAI_SERVICE = 9; // Servname not supported for ai_socktype. EAI_SOCKTYPE = 10; // Socket type ai_socktype not supported. EAI_SYSTEM = 11; // System error returned in errno. const WSADESCRIPTION_LEN = 256; WSASYS_STATUS_LEN = 128; type PWSAData = ^TWSAData; TWSAData = packed record wVersion: Word; wHighVersion: Word; szDescription: array[0..WSADESCRIPTION_LEN] of AnsiChar; szSystemStatus: array[0..WSASYS_STATUS_LEN] of AnsiChar; iMaxSockets: Word; iMaxUdpDg: Word; lpVendorInfo: PAnsiChar; end; function IN6_IS_ADDR_UNSPECIFIED(const a: PInAddr6): boolean; function IN6_IS_ADDR_LOOPBACK(const a: PInAddr6): boolean; function IN6_IS_ADDR_LINKLOCAL(const a: PInAddr6): boolean; function IN6_IS_ADDR_SITELOCAL(const a: PInAddr6): boolean; function IN6_IS_ADDR_MULTICAST(const a: PInAddr6): boolean; function IN6_ADDR_EQUAL(const a: PInAddr6; const b: PInAddr6):boolean; procedure SET_IN6_IF_ADDR_ANY (const a: PInAddr6); procedure SET_LOOPBACK_ADDR6 (const a: PInAddr6); var in6addr_any, in6addr_loopback : TInAddr6; procedure FD_CLR(Socket: TSocket; var FDSet: TFDSet); function FD_ISSET(Socket: TSocket; var FDSet: TFDSet): Boolean; procedure FD_SET(Socket: TSocket; var FDSet: TFDSet); procedure FD_ZERO(var FDSet: TFDSet); {=============================================================================} type TWSAStartup = function(wVersionRequired: Word; var WSData: TWSAData): Integer; stdcall; TWSACleanup = function: Integer; stdcall; TWSAGetLastError = function: Integer; stdcall; TGetServByName = function(name, proto: PAnsiChar): PServEnt; stdcall; TGetServByPort = function(port: Integer; proto: PAnsiChar): PServEnt; stdcall; TGetProtoByName = function(name: PAnsiChar): PProtoEnt; stdcall; TGetProtoByNumber = function(proto: Integer): PProtoEnt; stdcall; TGetHostByName = function(name: PAnsiChar): PHostEnt; stdcall; TGetHostByAddr = function(addr: Pointer; len, Struc: Integer): PHostEnt; stdcall; TGetHostName = function(name: PAnsiChar; len: Integer): Integer; stdcall; TShutdown = function(s: TSocket; how: Integer): Integer; stdcall; TSetSockOpt = function(s: TSocket; level, optname: Integer; optval: PAnsiChar; optlen: Integer): Integer; stdcall; TGetSockOpt = function(s: TSocket; level, optname: Integer; optval: PAnsiChar; var optlen: Integer): Integer; stdcall; TSendTo = function(s: TSocket; const Buf; len, flags: Integer; addrto: PSockAddr; tolen: Integer): Integer; stdcall; TSend = function(s: TSocket; const Buf; len, flags: Integer): Integer; stdcall; TRecv = function(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall; TRecvFrom = function(s: TSocket; var Buf; len, flags: Integer; from: PSockAddr; var fromlen: Integer): Integer; stdcall; Tntohs = function(netshort: u_short): u_short; stdcall; Tntohl = function(netlong: u_long): u_long; stdcall; TListen = function(s: TSocket; backlog: Integer): Integer; stdcall; TIoctlSocket = function(s: TSocket; cmd: DWORD; var arg: Integer): Integer; stdcall; TInet_ntoa = function(inaddr: TInAddr): PAnsiChar; stdcall; TInet_addr = function(cp: PAnsiChar): u_long; stdcall; Thtons = function(hostshort: u_short): u_short; stdcall; Thtonl = function(hostlong: u_long): u_long; stdcall; TGetSockName = function(s: TSocket; name: PSockAddr; var namelen: Integer): Integer; stdcall; TGetPeerName = function(s: TSocket; name: PSockAddr; var namelen: Integer): Integer; stdcall; TConnect = function(s: TSocket; name: PSockAddr; namelen: Integer): Integer; stdcall; TCloseSocket = function(s: TSocket): Integer; stdcall; TBind = function(s: TSocket; addr: PSockAddr; namelen: Integer): Integer; stdcall; TAccept = function(s: TSocket; addr: PSockAddr; var addrlen: Integer): TSocket; stdcall; TTSocket = function(af, Struc, Protocol: Integer): TSocket; stdcall; TSelect = function(nfds: Integer; readfds, writefds, exceptfds: PFDSet; timeout: PTimeVal): Longint; stdcall; TGetAddrInfo = function(NodeName: PAnsiChar; ServName: PAnsiChar; Hints: PAddrInfo; var Addrinfo: PAddrInfo): integer; stdcall; TFreeAddrInfo = procedure(ai: PAddrInfo); stdcall; TGetNameInfo = function( addr: PSockAddr; namelen: Integer; host: PAnsiChar; hostlen: DWORD; serv: PAnsiChar; servlen: DWORD; flags: integer): integer; stdcall; T__WSAFDIsSet = function (s: TSocket; var FDSet: TFDSet): Bool; stdcall; TWSAIoctl = function (s: TSocket; dwIoControlCode: DWORD; lpvInBuffer: Pointer; cbInBuffer: DWORD; lpvOutBuffer: Pointer; cbOutBuffer: DWORD; lpcbBytesReturned: PDWORD; lpOverlapped: Pointer; lpCompletionRoutine: pointer): u_int; stdcall; var WSAStartup: TWSAStartup = nil; WSACleanup: TWSACleanup = nil; WSAGetLastError: TWSAGetLastError = nil; GetServByName: TGetServByName = nil; GetServByPort: TGetServByPort = nil; GetProtoByName: TGetProtoByName = nil; GetProtoByNumber: TGetProtoByNumber = nil; GetHostByName: TGetHostByName = nil; GetHostByAddr: TGetHostByAddr = nil; ssGetHostName: TGetHostName = nil; Shutdown: TShutdown = nil; SetSockOpt: TSetSockOpt = nil; GetSockOpt: TGetSockOpt = nil; ssSendTo: TSendTo = nil; ssSend: TSend = nil; ssRecv: TRecv = nil; ssRecvFrom: TRecvFrom = nil; ntohs: Tntohs = nil; ntohl: Tntohl = nil; Listen: TListen = nil; IoctlSocket: TIoctlSocket = nil; Inet_ntoa: TInet_ntoa = nil; Inet_addr: TInet_addr = nil; htons: Thtons = nil; htonl: Thtonl = nil; ssGetSockName: TGetSockName = nil; ssGetPeerName: TGetPeerName = nil; ssConnect: TConnect = nil; CloseSocket: TCloseSocket = nil; ssBind: TBind = nil; ssAccept: TAccept = nil; Socket: TTSocket = nil; Select: TSelect = nil; GetAddrInfo: TGetAddrInfo = nil; FreeAddrInfo: TFreeAddrInfo = nil; GetNameInfo: TGetNameInfo = nil; __WSAFDIsSet: T__WSAFDIsSet = nil; WSAIoctl: TWSAIoctl = nil; var SynSockCS: SyncObjs.TCriticalSection; SockEnhancedApi: Boolean; SockWship6Api: Boolean; type TVarSin = packed record case integer of 0: (AddressFamily: u_short); 1: ( case sin_family: u_short of AF_INET: (sin_port: u_short; sin_addr: TInAddr; sin_zero: array[0..7] of byte); AF_INET6: (sin6_port: u_short; sin6_flowinfo: u_long; sin6_addr: TInAddr6; sin6_scope_id: u_long); ); end; function SizeOfVarSin(sin: TVarSin): integer; function Bind(s: TSocket; const addr: TVarSin): Integer; function Connect(s: TSocket; const name: TVarSin): Integer; function GetSockName(s: TSocket; var name: TVarSin): Integer; function GetPeerName(s: TSocket; var name: TVarSin): Integer; function GetHostName: AnsiString; function Send(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; function Recv(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; function SendTo(s: TSocket; Buf: TMemory; len, flags: Integer; addrto: TVarSin): Integer; function RecvFrom(s: TSocket; Buf: TMemory; len, flags: Integer; var from: TVarSin): Integer; function Accept(s: TSocket; var addr: TVarSin): TSocket; function IsNewApi(Family: integer): Boolean; function SetVarSin(var Sin: TVarSin; IP, Port: AnsiString; Family, SockProtocol, SockType: integer; PreferIP4: Boolean): integer; function GetSinIP(Sin: TVarSin): AnsiString; function GetSinPort(Sin: TVarSin): Integer; procedure ResolveNameToIP(Name: AnsiString; Family, SockProtocol, SockType: integer; const IPList: TStrings); function ResolveIPToName(IP: AnsiString; Family, SockProtocol, SockType: integer): AnsiString; function ResolvePort(Port: AnsiString; Family, SockProtocol, SockType: integer): Word; {==============================================================================} implementation var SynSockCount: Integer = 0; LibHandle: THandle = 0; Libwship6Handle: THandle = 0; function IN6_IS_ADDR_UNSPECIFIED(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr32[0] = 0) and (a^.u6_addr32[1] = 0) and (a^.u6_addr32[2] = 0) and (a^.u6_addr32[3] = 0)); end; function IN6_IS_ADDR_LOOPBACK(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr32[0] = 0) and (a^.u6_addr32[1] = 0) and (a^.u6_addr32[2] = 0) and (a^.u6_addr8[12] = 0) and (a^.u6_addr8[13] = 0) and (a^.u6_addr8[14] = 0) and (a^.u6_addr8[15] = 1)); end; function IN6_IS_ADDR_LINKLOCAL(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr8[0] = $FE) and (a^.u6_addr8[1] = $80)); end; function IN6_IS_ADDR_SITELOCAL(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr8[0] = $FE) and (a^.u6_addr8[1] = $C0)); end; function IN6_IS_ADDR_MULTICAST(const a: PInAddr6): boolean; begin Result := (a^.u6_addr8[0] = $FF); end; function IN6_ADDR_EQUAL(const a: PInAddr6; const b: PInAddr6): boolean; begin Result := (CompareMem( a, b, sizeof(TInAddr6))); end; procedure SET_IN6_IF_ADDR_ANY (const a: PInAddr6); begin FillChar(a^, sizeof(TInAddr6), 0); end; procedure SET_LOOPBACK_ADDR6 (const a: PInAddr6); begin FillChar(a^, sizeof(TInAddr6), 0); a^.u6_addr8[15] := 1; end; {=============================================================================} procedure FD_CLR(Socket: TSocket; var FDSet: TFDSet); var I: Integer; begin I := 0; while I < FDSet.fd_count do begin if FDSet.fd_array[I] = Socket then begin while I < FDSet.fd_count - 1 do begin FDSet.fd_array[I] := FDSet.fd_array[I + 1]; Inc(I); end; Dec(FDSet.fd_count); Break; end; Inc(I); end; end; function FD_ISSET(Socket: TSocket; var FDSet: TFDSet): Boolean; begin Result := __WSAFDIsSet(Socket, FDSet); end; procedure FD_SET(Socket: TSocket; var FDSet: TFDSet); begin if FDSet.fd_count < FD_SETSIZE then begin FDSet.fd_array[FDSet.fd_count] := Socket; Inc(FDSet.fd_count); end; end; procedure FD_ZERO(var FDSet: TFDSet); begin FDSet.fd_count := 0; end; {=============================================================================} function SizeOfVarSin(sin: TVarSin): integer; begin case sin.sin_family of AF_INET: Result := SizeOf(TSockAddrIn); AF_INET6: Result := SizeOf(TSockAddrIn6); else Result := 0; end; end; {=============================================================================} function Bind(s: TSocket; const addr: TVarSin): Integer; begin Result := ssBind(s, @addr, SizeOfVarSin(addr)); end; function Connect(s: TSocket; const name: TVarSin): Integer; begin Result := ssConnect(s, @name, SizeOfVarSin(name)); end; function GetSockName(s: TSocket; var name: TVarSin): Integer; var len: integer; begin len := SizeOf(name); FillChar(name, len, 0); Result := ssGetSockName(s, @name, Len); end; function GetPeerName(s: TSocket; var name: TVarSin): Integer; var len: integer; begin len := SizeOf(name); FillChar(name, len, 0); Result := ssGetPeerName(s, @name, Len); end; function GetHostName: AnsiString; var s: AnsiString; begin Result := ''; setlength(s, 255); ssGetHostName(pAnsichar(s), Length(s) - 1); Result := PAnsichar(s); end; function Send(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; begin Result := ssSend(s, Buf^, len, flags); end; function Recv(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; begin Result := ssRecv(s, Buf^, len, flags); end; function SendTo(s: TSocket; Buf: TMemory; len, flags: Integer; addrto: TVarSin): Integer; begin Result := ssSendTo(s, Buf^, len, flags, @addrto, SizeOfVarSin(addrto)); end; function RecvFrom(s: TSocket; Buf: TMemory; len, flags: Integer; var from: TVarSin): Integer; var x: integer; begin x := SizeOf(from); Result := ssRecvFrom(s, Buf^, len, flags, @from, x); end; function Accept(s: TSocket; var addr: TVarSin): TSocket; var x: integer; begin x := SizeOf(addr); Result := ssAccept(s, @addr, x); end; {=============================================================================} function IsNewApi(Family: integer): Boolean; begin Result := SockEnhancedApi; if not Result then Result := (Family = AF_INET6) and SockWship6Api; end; function SetVarSin(var Sin: TVarSin; IP, Port: AnsiString; Family, SockProtocol, SockType: integer; PreferIP4: Boolean): integer; type pu_long = ^u_long; var ProtoEnt: PProtoEnt; ServEnt: PServEnt; HostEnt: PHostEnt; r: integer; Hints1, Hints2: TAddrInfo; Sin1, Sin2: TVarSin; TwoPass: boolean; function GetAddr(const IP, port: AnsiString; Hints: TAddrInfo; var Sin: TVarSin): integer; var Addr: PAddrInfo; begin Addr := nil; try FillChar(Sin, Sizeof(Sin), 0); if Hints.ai_socktype = SOCK_RAW then begin Hints.ai_socktype := 0; Hints.ai_protocol := 0; Result := synsock.GetAddrInfo(PAnsiChar(IP), nil, @Hints, Addr); end else begin if (IP = cAnyHost) or (IP = c6AnyHost) then begin Hints.ai_flags := AI_PASSIVE; Result := synsock.GetAddrInfo(nil, PAnsiChar(Port), @Hints, Addr); end else if (IP = cLocalhost) or (IP = c6Localhost) then begin Result := synsock.GetAddrInfo(nil, PAnsiChar(Port), @Hints, Addr); end else begin Result := synsock.GetAddrInfo(PAnsiChar(IP), PAnsiChar(Port), @Hints, Addr); end; end; if Result = 0 then if (Addr <> nil) then Move(Addr^.ai_addr^, Sin, Addr^.ai_addrlen); finally if Assigned(Addr) then synsock.FreeAddrInfo(Addr); end; end; begin Result := 0; FillChar(Sin, Sizeof(Sin), 0); if not IsNewApi(family) then begin SynSockCS.Enter; try Sin.sin_family := AF_INET; ProtoEnt := synsock.GetProtoByNumber(SockProtocol); ServEnt := nil; if ProtoEnt <> nil then ServEnt := synsock.GetServByName(PAnsiChar(Port), ProtoEnt^.p_name); if ServEnt = nil then Sin.sin_port := synsock.htons(StrToIntDef(Port, 0)) else Sin.sin_port := ServEnt^.s_port; if IP = cBroadcast then Sin.sin_addr.s_addr := u_long(INADDR_BROADCAST) else begin Sin.sin_addr.s_addr := synsock.inet_addr(PAnsiChar(IP)); if Sin.sin_addr.s_addr = u_long(INADDR_NONE) then begin HostEnt := synsock.GetHostByName(PAnsiChar(IP)); Result := synsock.WSAGetLastError; if HostEnt <> nil then Sin.sin_addr.S_addr := u_long(Pu_long(HostEnt^.h_addr_list^)^); end; end; finally SynSockCS.Leave; end; end else begin FillChar(Hints1, Sizeof(Hints1), 0); FillChar(Hints2, Sizeof(Hints2), 0); TwoPass := False; if Family = AF_UNSPEC then begin if PreferIP4 then begin Hints1.ai_family := AF_INET; Hints2.ai_family := AF_INET6; TwoPass := True; end else begin Hints2.ai_family := AF_INET; Hints1.ai_family := AF_INET6; TwoPass := True; end; end else Hints1.ai_family := Family; Hints1.ai_socktype := SockType; Hints1.ai_protocol := SockProtocol; Hints2.ai_socktype := Hints1.ai_socktype; Hints2.ai_protocol := Hints1.ai_protocol; r := GetAddr(IP, Port, Hints1, Sin1); Result := r; sin := sin1; if r <> 0 then if TwoPass then begin r := GetAddr(IP, Port, Hints2, Sin2); Result := r; if r = 0 then sin := sin2; end; end; end; function GetSinIP(Sin: TVarSin): AnsiString; var p: PAnsiChar; host, serv: AnsiString; hostlen, servlen: integer; r: integer; begin Result := ''; if not IsNewApi(Sin.AddressFamily) then begin p := synsock.inet_ntoa(Sin.sin_addr); if p <> nil then Result := p; end else begin hostlen := NI_MAXHOST; servlen := NI_MAXSERV; setlength(host, hostlen); setlength(serv, servlen); r := getnameinfo(@sin, SizeOfVarSin(sin), PAnsiChar(host), hostlen, PAnsiChar(serv), servlen, NI_NUMERICHOST + NI_NUMERICSERV); if r = 0 then Result := PAnsiChar(host); end; end; function GetSinPort(Sin: TVarSin): Integer; begin if (Sin.sin_family = AF_INET6) then Result := synsock.ntohs(Sin.sin6_port) else Result := synsock.ntohs(Sin.sin_port); end; procedure ResolveNameToIP(Name: AnsiString; Family, SockProtocol, SockType: integer; const IPList: TStrings); type TaPInAddr = array[0..250] of PInAddr; PaPInAddr = ^TaPInAddr; var Hints: TAddrInfo; Addr: PAddrInfo; AddrNext: PAddrInfo; r: integer; host, serv: AnsiString; hostlen, servlen: integer; RemoteHost: PHostEnt; IP: u_long; PAdrPtr: PaPInAddr; i: Integer; s: AnsiString; InAddr: TInAddr; begin IPList.Clear; if not IsNewApi(Family) then begin IP := synsock.inet_addr(PAnsiChar(Name)); if IP = u_long(INADDR_NONE) then begin SynSockCS.Enter; try RemoteHost := synsock.GetHostByName(PAnsiChar(Name)); if RemoteHost <> nil then begin PAdrPtr := PAPInAddr(RemoteHost^.h_addr_list); i := 0; while PAdrPtr^[i] <> nil do begin InAddr := PAdrPtr^[i]^; s := Format('%d.%d.%d.%d', [InAddr.S_bytes[0], InAddr.S_bytes[1], InAddr.S_bytes[2], InAddr.S_bytes[3]]); IPList.Add(s); Inc(i); end; end; finally SynSockCS.Leave; end; end else IPList.Add(Name); end else begin Addr := nil; try FillChar(Hints, Sizeof(Hints), 0); Hints.ai_family := AF_UNSPEC; Hints.ai_socktype := SockType; Hints.ai_protocol := SockProtocol; Hints.ai_flags := 0; r := synsock.GetAddrInfo(PAnsiChar(Name), nil, @Hints, Addr); if r = 0 then begin AddrNext := Addr; while not(AddrNext = nil) do begin if not(((Family = AF_INET6) and (AddrNext^.ai_family = AF_INET)) or ((Family = AF_INET) and (AddrNext^.ai_family = AF_INET6))) then begin hostlen := NI_MAXHOST; servlen := NI_MAXSERV; setlength(host, hostlen); setlength(serv, servlen); r := getnameinfo(AddrNext^.ai_addr, AddrNext^.ai_addrlen, PAnsiChar(host), hostlen, PAnsiChar(serv), servlen, NI_NUMERICHOST + NI_NUMERICSERV); if r = 0 then begin host := PAnsiChar(host); IPList.Add(host); end; end; AddrNext := AddrNext^.ai_next; end; end; finally if Assigned(Addr) then synsock.FreeAddrInfo(Addr); end; end; if IPList.Count = 0 then IPList.Add(cAnyHost); end; function ResolvePort(Port: AnsiString; Family, SockProtocol, SockType: integer): Word; var ProtoEnt: PProtoEnt; ServEnt: PServEnt; Hints: TAddrInfo; Addr: PAddrInfo; r: integer; begin Result := 0; if not IsNewApi(Family) then begin SynSockCS.Enter; try ProtoEnt := synsock.GetProtoByNumber(SockProtocol); ServEnt := nil; if ProtoEnt <> nil then ServEnt := synsock.GetServByName(PAnsiChar(Port), ProtoEnt^.p_name); if ServEnt = nil then Result := StrToIntDef(Port, 0) else Result := synsock.htons(ServEnt^.s_port); finally SynSockCS.Leave; end; end else begin Addr := nil; try FillChar(Hints, Sizeof(Hints), 0); Hints.ai_family := AF_UNSPEC; Hints.ai_socktype := SockType; Hints.ai_protocol := Sockprotocol; Hints.ai_flags := AI_PASSIVE; r := synsock.GetAddrInfo(nil, PAnsiChar(Port), @Hints, Addr); if (r = 0) and Assigned(Addr) then begin if Addr^.ai_family = AF_INET then Result := synsock.htons(Addr^.ai_addr^.sin_port); if Addr^.ai_family = AF_INET6 then Result := synsock.htons(PSockAddrIn6(Addr^.ai_addr)^.sin6_port); end; finally if Assigned(Addr) then synsock.FreeAddrInfo(Addr); end; end; end; function ResolveIPToName(IP: AnsiString; Family, SockProtocol, SockType: integer): AnsiString; var Hints: TAddrInfo; Addr: PAddrInfo; r: integer; host, serv: AnsiString; hostlen, servlen: integer; RemoteHost: PHostEnt; IPn: u_long; begin Result := IP; if not IsNewApi(Family) then begin IPn := synsock.inet_addr(PAnsiChar(IP)); if IPn <> u_long(INADDR_NONE) then begin SynSockCS.Enter; try RemoteHost := GetHostByAddr(@IPn, SizeOf(IPn), AF_INET); if RemoteHost <> nil then Result := RemoteHost^.h_name; finally SynSockCS.Leave; end; end; end else begin Addr := nil; try FillChar(Hints, Sizeof(Hints), 0); Hints.ai_family := AF_UNSPEC; Hints.ai_socktype := SockType; Hints.ai_protocol := SockProtocol; Hints.ai_flags := 0; r := synsock.GetAddrInfo(PAnsiChar(IP), nil, @Hints, Addr); if (r = 0) and Assigned(Addr)then begin hostlen := NI_MAXHOST; servlen := NI_MAXSERV; setlength(host, hostlen); setlength(serv, servlen); r := getnameinfo(Addr^.ai_addr, Addr^.ai_addrlen, PAnsiChar(host), hostlen, PAnsiChar(serv), servlen, NI_NUMERICSERV); if r = 0 then Result := PAnsiChar(host); end; finally if Assigned(Addr) then synsock.FreeAddrInfo(Addr); end; end; end; {=============================================================================} function InitSocketInterface(stack: String): Boolean; begin Result := False; SockEnhancedApi := False; if stack = '' then stack := DLLStackName; SynSockCS.Enter; try if SynSockCount = 0 then begin SockEnhancedApi := False; SockWship6Api := False; LibHandle := LoadLibrary(PChar(Stack)); if LibHandle <> 0 then begin WSAIoctl := GetProcAddress(LibHandle, PAnsiChar(AnsiString('WSAIoctl'))); __WSAFDIsSet := GetProcAddress(LibHandle, PAnsiChar(AnsiString('__WSAFDIsSet'))); CloseSocket := GetProcAddress(LibHandle, PAnsiChar(AnsiString('closesocket'))); IoctlSocket := GetProcAddress(LibHandle, PAnsiChar(AnsiString('ioctlsocket'))); WSAGetLastError := GetProcAddress(LibHandle, PAnsiChar(AnsiString('WSAGetLastError'))); WSAStartup := GetProcAddress(LibHandle, PAnsiChar(AnsiString('WSAStartup'))); WSACleanup := GetProcAddress(LibHandle, PAnsiChar(AnsiString('WSACleanup'))); ssAccept := GetProcAddress(LibHandle, PAnsiChar(AnsiString('accept'))); ssBind := GetProcAddress(LibHandle, PAnsiChar(AnsiString('bind'))); ssConnect := GetProcAddress(LibHandle, PAnsiChar(AnsiString('connect'))); ssGetPeerName := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getpeername'))); ssGetSockName := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getsockname'))); GetSockOpt := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getsockopt'))); Htonl := GetProcAddress(LibHandle, PAnsiChar(AnsiString('htonl'))); Htons := GetProcAddress(LibHandle, PAnsiChar(AnsiString('htons'))); Inet_Addr := GetProcAddress(LibHandle, PAnsiChar(AnsiString('inet_addr'))); Inet_Ntoa := GetProcAddress(LibHandle, PAnsiChar(AnsiString('inet_ntoa'))); Listen := GetProcAddress(LibHandle, PAnsiChar(AnsiString('listen'))); Ntohl := GetProcAddress(LibHandle, PAnsiChar(AnsiString('ntohl'))); Ntohs := GetProcAddress(LibHandle, PAnsiChar(AnsiString('ntohs'))); ssRecv := GetProcAddress(LibHandle, PAnsiChar(AnsiString('recv'))); ssRecvFrom := GetProcAddress(LibHandle, PAnsiChar(AnsiString('recvfrom'))); Select := GetProcAddress(LibHandle, PAnsiChar(AnsiString('select'))); ssSend := GetProcAddress(LibHandle, PAnsiChar(AnsiString('send'))); ssSendTo := GetProcAddress(LibHandle, PAnsiChar(AnsiString('sendto'))); SetSockOpt := GetProcAddress(LibHandle, PAnsiChar(AnsiString('setsockopt'))); ShutDown := GetProcAddress(LibHandle, PAnsiChar(AnsiString('shutdown'))); Socket := GetProcAddress(LibHandle, PAnsiChar(AnsiString('socket'))); GetHostByAddr := GetProcAddress(LibHandle, PAnsiChar(AnsiString('gethostbyaddr'))); GetHostByName := GetProcAddress(LibHandle, PAnsiChar(AnsiString('gethostbyname'))); GetProtoByName := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getprotobyname'))); GetProtoByNumber := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getprotobynumber'))); GetServByName := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getservbyname'))); GetServByPort := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getservbyport'))); ssGetHostName := GetProcAddress(LibHandle, PAnsiChar(AnsiString('gethostname'))); {$IFNDEF FORCEOLDAPI} GetAddrInfo := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getaddrinfo'))); FreeAddrInfo := GetProcAddress(LibHandle, PAnsiChar(AnsiString('freeaddrinfo'))); GetNameInfo := GetProcAddress(LibHandle, PAnsiChar(AnsiString('getnameinfo'))); SockEnhancedApi := Assigned(GetAddrInfo) and Assigned(FreeAddrInfo) and Assigned(GetNameInfo); if not SockEnhancedApi then begin LibWship6Handle := LoadLibrary(PChar(DLLWship6)); if LibWship6Handle <> 0 then begin GetAddrInfo := GetProcAddress(LibWship6Handle, PAnsiChar(AnsiString('getaddrinfo'))); FreeAddrInfo := GetProcAddress(LibWship6Handle, PAnsiChar(AnsiString('freeaddrinfo'))); GetNameInfo := GetProcAddress(LibWship6Handle, PAnsiChar(AnsiString('getnameinfo'))); SockWship6Api := Assigned(GetAddrInfo) and Assigned(FreeAddrInfo) and Assigned(GetNameInfo); end; end; {$ENDIF} Result := True; end; end else Result := True; if Result then Inc(SynSockCount); finally SynSockCS.Leave; end; end; function DestroySocketInterface: Boolean; begin SynSockCS.Enter; try Dec(SynSockCount); if SynSockCount < 0 then SynSockCount := 0; if SynSockCount = 0 then begin if LibHandle <> 0 then begin FreeLibrary(libHandle); LibHandle := 0; end; if LibWship6Handle <> 0 then begin FreeLibrary(LibWship6Handle); LibWship6Handle := 0; end; end; finally SynSockCS.Leave; end; Result := True; end; initialization begin SynSockCS := SyncObjs.TCriticalSection.Create; SET_IN6_IF_ADDR_ANY (@in6addr_any); SET_LOOPBACK_ADDR6 (@in6addr_loopback); end; finalization begin SynSockCS.Free; end; {$ENDIF}./sslinux.inc0000644000175000017500000012042414576573021013352 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 002.000.009 | |==============================================================================| | Content: Socket Independent Platform Layer - Linux definition include | |==============================================================================| | Copyright (c)1999-2012, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)2003-2012. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} {:@exclude} {$IFDEF LINUX} //{$DEFINE FORCEOLDAPI} {Note about define FORCEOLDAPI: If you activate this compiler directive, then is allways used old socket API for name resolution. If you leave this directive inactive, then the new API is used, when running system allows it. For IPv6 support you must have new API! } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$H+} interface uses SyncObjs, SysUtils, Classes, synafpc, Libc; function InitSocketInterface(stack: string): Boolean; function DestroySocketInterface: Boolean; const WinsockLevel = $0202; type u_char = Char; u_short = Word; u_int = Integer; u_long = Longint; pu_long = ^u_long; pu_short = ^u_short; TSocket = u_int; TAddrFamily = integer; TMemory = pointer; const DLLStackName = 'libc.so.6'; cLocalhost = '127.0.0.1'; cAnyHost = '0.0.0.0'; cBroadcast = '255.255.255.255'; c6Localhost = '::1'; c6AnyHost = '::0'; c6Broadcast = 'ffff::1'; cAnyPort = '0'; type DWORD = Integer; __fd_mask = LongWord; const __FD_SETSIZE = 1024; __NFDBITS = 8 * sizeof(__fd_mask); type __fd_set = {packed} record fds_bits: packed array[0..(__FD_SETSIZE div __NFDBITS)-1] of __fd_mask; end; TFDSet = __fd_set; PFDSet = ^TFDSet; const FIONREAD = $541B; FIONBIO = $5421; FIOASYNC = $5452; type PTimeVal = ^TTimeVal; TTimeVal = packed record tv_sec: Longint; tv_usec: Longint; end; const IPPROTO_IP = 0; { Dummy } IPPROTO_ICMP = 1; { Internet Control Message Protocol } IPPROTO_IGMP = 2; { Internet Group Management Protocol} IPPROTO_TCP = 6; { TCP } IPPROTO_UDP = 17; { User Datagram Protocol } IPPROTO_IPV6 = 41; IPPROTO_ICMPV6 = 58; IPPROTO_RM = 113; IPPROTO_RAW = 255; IPPROTO_MAX = 256; type PInAddr = ^TInAddr; TInAddr = packed record case integer of 0: (S_bytes: packed array [0..3] of byte); 1: (S_addr: u_long); end; PSockAddrIn = ^TSockAddrIn; TSockAddrIn = packed record case Integer of 0: (sin_family: u_short; sin_port: u_short; sin_addr: TInAddr; sin_zero: array[0..7] of Char); 1: (sa_family: u_short; sa_data: array[0..13] of Char) end; TIP_mreq = record imr_multiaddr: TInAddr; { IP multicast address of group } imr_interface: TInAddr; { local IP address of interface } end; PInAddr6 = ^TInAddr6; TInAddr6 = packed record case integer of 0: (S6_addr: packed array [0..15] of byte); 1: (u6_addr8: packed array [0..15] of byte); 2: (u6_addr16: packed array [0..7] of word); 3: (u6_addr32: packed array [0..3] of integer); end; PSockAddrIn6 = ^TSockAddrIn6; TSockAddrIn6 = packed record sin6_family: u_short; // AF_INET6 sin6_port: u_short; // Transport level port number sin6_flowinfo: u_long; // IPv6 flow information sin6_addr: TInAddr6; // IPv6 address sin6_scope_id: u_long; // Scope Id: IF number for link-local // SITE id for site-local end; TIPv6_mreq = record ipv6mr_multiaddr: TInAddr6; // IPv6 multicast address. ipv6mr_interface: integer; // Interface index. padding: u_long; end; PHostEnt = ^THostEnt; THostent = record h_name: PChar; h_aliases: PPChar; h_addrtype: Integer; h_length: Cardinal; case Byte of 0: (h_addr_list: PPChar); 1: (h_addr: PPChar); end; PNetEnt = ^TNetEnt; TNetEnt = record n_name: PChar; n_aliases: PPChar; n_addrtype: Integer; n_net: uint32_t; end; PServEnt = ^TServEnt; TServEnt = record s_name: PChar; s_aliases: PPChar; s_port: Integer; s_proto: PChar; end; PProtoEnt = ^TProtoEnt; TProtoEnt = record p_name: PChar; p_aliases: ^PChar; p_proto: u_short; end; const INADDR_ANY = $00000000; INADDR_LOOPBACK = $7F000001; INADDR_BROADCAST = $FFFFFFFF; INADDR_NONE = $FFFFFFFF; ADDR_ANY = INADDR_ANY; INVALID_SOCKET = TSocket(NOT(0)); SOCKET_ERROR = -1; Const IP_TOS = 1; { int; IP type of service and precedence. } IP_TTL = 2; { int; IP time to live. } IP_HDRINCL = 3; { int; Header is included with data. } IP_OPTIONS = 4; { ip_opts; IP per-packet options. } IP_ROUTER_ALERT = 5; { bool } IP_RECVOPTS = 6; { bool } IP_RETOPTS = 7; { bool } IP_PKTINFO = 8; { bool } IP_PKTOPTIONS = 9; IP_PMTUDISC = 10; { obsolete name? } IP_MTU_DISCOVER = 10; { int; see below } IP_RECVERR = 11; { bool } IP_RECVTTL = 12; { bool } IP_RECVTOS = 13; { bool } IP_MULTICAST_IF = 32; { in_addr; set/get IP multicast i/f } IP_MULTICAST_TTL = 33; { u_char; set/get IP multicast ttl } IP_MULTICAST_LOOP = 34; { i_char; set/get IP multicast loopback } IP_ADD_MEMBERSHIP = 35; { ip_mreq; add an IP group membership } IP_DROP_MEMBERSHIP = 36; { ip_mreq; drop an IP group membership } SOL_SOCKET = 1; SO_DEBUG = 1; SO_REUSEADDR = 2; SO_TYPE = 3; SO_ERROR = 4; SO_DONTROUTE = 5; SO_BROADCAST = 6; SO_SNDBUF = 7; SO_RCVBUF = 8; SO_KEEPALIVE = 9; SO_OOBINLINE = 10; SO_NO_CHECK = 11; SO_PRIORITY = 12; SO_LINGER = 13; SO_BSDCOMPAT = 14; SO_REUSEPORT = 15; SO_PASSCRED = 16; SO_PEERCRED = 17; SO_RCVLOWAT = 18; SO_SNDLOWAT = 19; SO_RCVTIMEO = 20; SO_SNDTIMEO = 21; { Security levels - as per NRL IPv6 - don't actually do anything } SO_SECURITY_AUTHENTICATION = 22; SO_SECURITY_ENCRYPTION_TRANSPORT = 23; SO_SECURITY_ENCRYPTION_NETWORK = 24; SO_BINDTODEVICE = 25; { Socket filtering } SO_ATTACH_FILTER = 26; SO_DETACH_FILTER = 27; SOMAXCONN = 128; IPV6_UNICAST_HOPS = 16; IPV6_MULTICAST_IF = 17; IPV6_MULTICAST_HOPS = 18; IPV6_MULTICAST_LOOP = 19; IPV6_JOIN_GROUP = 20; IPV6_LEAVE_GROUP = 21; MSG_NOSIGNAL = $4000; // Do not generate SIGPIPE. // getnameinfo constants NI_MAXHOST = 1025; NI_MAXSERV = 32; NI_NOFQDN = $4; NI_NUMERICHOST = $1; NI_NAMEREQD = $8; NI_NUMERICSERV = $2; NI_DGRAM = $10; const SOCK_STREAM = 1; { stream socket } SOCK_DGRAM = 2; { datagram socket } SOCK_RAW = 3; { raw-protocol interface } SOCK_RDM = 4; { reliably-delivered message } SOCK_SEQPACKET = 5; { sequenced packet stream } { TCP options. } TCP_NODELAY = $0001; { Address families. } AF_UNSPEC = 0; { unspecified } AF_INET = 2; { internetwork: UDP, TCP, etc. } AF_INET6 = 10; { Internetwork Version 6 } AF_MAX = 24; { Protocol families, same as address families for now. } PF_UNSPEC = AF_UNSPEC; PF_INET = AF_INET; PF_INET6 = AF_INET6; PF_MAX = AF_MAX; type { Structure used by kernel to store most addresses. } PSockAddr = ^TSockAddr; TSockAddr = TSockAddrIn; { Structure used by kernel to pass protocol information in raw sockets. } PSockProto = ^TSockProto; TSockProto = packed record sp_family: u_short; sp_protocol: u_short; end; type PAddrInfo = ^TAddrInfo; TAddrInfo = record ai_flags: integer; // AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST. ai_family: integer; // PF_xxx. ai_socktype: integer; // SOCK_xxx. ai_protocol: integer; // 0 or IPPROTO_xxx for IPv4 and IPv6. ai_addrlen: u_int; // Length of ai_addr. ai_addr: PSockAddr; // Binary address. ai_canonname: PChar; // Canonical name for nodename. ai_next: PAddrInfo; // Next structure in linked list. end; const // Flags used in "hints" argument to getaddrinfo(). AI_PASSIVE = $1; // Socket address will be used in bind() call. AI_CANONNAME = $2; // Return canonical name in first ai_canonname. AI_NUMERICHOST = $4; // Nodename must be a numeric address string. type { Structure used for manipulating linger option. } PLinger = ^TLinger; TLinger = packed record l_onoff: integer; l_linger: integer; end; const MSG_OOB = $01; // Process out-of-band data. MSG_PEEK = $02; // Peek at incoming messages. const WSAEINTR = EINTR; WSAEBADF = EBADF; WSAEACCES = EACCES; WSAEFAULT = EFAULT; WSAEINVAL = EINVAL; WSAEMFILE = EMFILE; WSAEWOULDBLOCK = EWOULDBLOCK; WSAEINPROGRESS = EINPROGRESS; WSAEALREADY = EALREADY; WSAENOTSOCK = ENOTSOCK; WSAEDESTADDRREQ = EDESTADDRREQ; WSAEMSGSIZE = EMSGSIZE; WSAEPROTOTYPE = EPROTOTYPE; WSAENOPROTOOPT = ENOPROTOOPT; WSAEPROTONOSUPPORT = EPROTONOSUPPORT; WSAESOCKTNOSUPPORT = ESOCKTNOSUPPORT; WSAEOPNOTSUPP = EOPNOTSUPP; WSAEPFNOSUPPORT = EPFNOSUPPORT; WSAEAFNOSUPPORT = EAFNOSUPPORT; WSAEADDRINUSE = EADDRINUSE; WSAEADDRNOTAVAIL = EADDRNOTAVAIL; WSAENETDOWN = ENETDOWN; WSAENETUNREACH = ENETUNREACH; WSAENETRESET = ENETRESET; WSAECONNABORTED = ECONNABORTED; WSAECONNRESET = ECONNRESET; WSAENOBUFS = ENOBUFS; WSAEISCONN = EISCONN; WSAENOTCONN = ENOTCONN; WSAESHUTDOWN = ESHUTDOWN; WSAETOOMANYREFS = ETOOMANYREFS; WSAETIMEDOUT = ETIMEDOUT; WSAECONNREFUSED = ECONNREFUSED; WSAELOOP = ELOOP; WSAENAMETOOLONG = ENAMETOOLONG; WSAEHOSTDOWN = EHOSTDOWN; WSAEHOSTUNREACH = EHOSTUNREACH; WSAENOTEMPTY = ENOTEMPTY; WSAEPROCLIM = -1; WSAEUSERS = EUSERS; WSAEDQUOT = EDQUOT; WSAESTALE = ESTALE; WSAEREMOTE = EREMOTE; WSASYSNOTREADY = -2; WSAVERNOTSUPPORTED = -3; WSANOTINITIALISED = -4; WSAEDISCON = -5; WSAHOST_NOT_FOUND = HOST_NOT_FOUND; WSATRY_AGAIN = TRY_AGAIN; WSANO_RECOVERY = NO_RECOVERY; WSANO_DATA = -6; EAI_BADFLAGS = -1; { Invalid value for `ai_flags' field. } EAI_NONAME = -2; { NAME or SERVICE is unknown. } EAI_AGAIN = -3; { Temporary failure in name resolution. } EAI_FAIL = -4; { Non-recoverable failure in name res. } EAI_NODATA = -5; { No address associated with NAME. } EAI_FAMILY = -6; { `ai_family' not supported. } EAI_SOCKTYPE = -7; { `ai_socktype' not supported. } EAI_SERVICE = -8; { SERVICE not supported for `ai_socktype'. } EAI_ADDRFAMILY = -9; { Address family for NAME not supported. } EAI_MEMORY = -10; { Memory allocation failure. } EAI_SYSTEM = -11; { System error returned in `errno'. } const WSADESCRIPTION_LEN = 256; WSASYS_STATUS_LEN = 128; type PWSAData = ^TWSAData; TWSAData = packed record wVersion: Word; wHighVersion: Word; szDescription: array[0..WSADESCRIPTION_LEN] of Char; szSystemStatus: array[0..WSASYS_STATUS_LEN] of Char; iMaxSockets: Word; iMaxUdpDg: Word; lpVendorInfo: PChar; end; function IN6_IS_ADDR_UNSPECIFIED(const a: PInAddr6): boolean; function IN6_IS_ADDR_LOOPBACK(const a: PInAddr6): boolean; function IN6_IS_ADDR_LINKLOCAL(const a: PInAddr6): boolean; function IN6_IS_ADDR_SITELOCAL(const a: PInAddr6): boolean; function IN6_IS_ADDR_MULTICAST(const a: PInAddr6): boolean; function IN6_ADDR_EQUAL(const a: PInAddr6; const b: PInAddr6):boolean; procedure SET_IN6_IF_ADDR_ANY (const a: PInAddr6); procedure SET_LOOPBACK_ADDR6 (const a: PInAddr6); var in6addr_any, in6addr_loopback : TInAddr6; procedure FD_CLR(Socket: TSocket; var FDSet: TFDSet); function FD_ISSET(Socket: TSocket; var FDSet: TFDSet): Boolean; procedure FD_SET(Socket: TSocket; var FDSet: TFDSet); procedure FD_ZERO(var FDSet: TFDSet); {=============================================================================} type TWSAStartup = function(wVersionRequired: Word; var WSData: TWSAData): Integer; cdecl; TWSACleanup = function: Integer; cdecl; TWSAGetLastError = function: Integer; cdecl; TGetServByName = function(name, proto: PChar): PServEnt; cdecl; TGetServByPort = function(port: Integer; proto: PChar): PServEnt; cdecl; TGetProtoByName = function(name: PChar): PProtoEnt; cdecl; TGetProtoByNumber = function(proto: Integer): PProtoEnt; cdecl; TGetHostByName = function(name: PChar): PHostEnt; cdecl; TGetHostByAddr = function(addr: Pointer; len, Struc: Integer): PHostEnt; cdecl; TGetHostName = function(name: PChar; len: Integer): Integer; cdecl; TShutdown = function(s: TSocket; how: Integer): Integer; cdecl; TSetSockOpt = function(s: TSocket; level, optname: Integer; optval: PChar; optlen: Integer): Integer; cdecl; TGetSockOpt = function(s: TSocket; level, optname: Integer; optval: PChar; var optlen: Integer): Integer; cdecl; TSendTo = function(s: TSocket; const Buf; len, flags: Integer; addrto: PSockAddr; tolen: Integer): Integer; cdecl; TSend = function(s: TSocket; const Buf; len, flags: Integer): Integer; cdecl; TRecv = function(s: TSocket; var Buf; len, flags: Integer): Integer; cdecl; TRecvFrom = function(s: TSocket; var Buf; len, flags: Integer; from: PSockAddr; var fromlen: Integer): Integer; cdecl; Tntohs = function(netshort: u_short): u_short; cdecl; Tntohl = function(netlong: u_long): u_long; cdecl; TListen = function(s: TSocket; backlog: Integer): Integer; cdecl; TIoctlSocket = function(s: TSocket; cmd: DWORD; var arg: integer): Integer; cdecl; TInet_ntoa = function(inaddr: TInAddr): PChar; cdecl; TInet_addr = function(cp: PChar): u_long; cdecl; Thtons = function(hostshort: u_short): u_short; cdecl; Thtonl = function(hostlong: u_long): u_long; cdecl; TGetSockName = function(s: TSocket; name: PSockAddr; var namelen: Integer): Integer; cdecl; TGetPeerName = function(s: TSocket; name: PSockAddr; var namelen: Integer): Integer; cdecl; TConnect = function(s: TSocket; name: PSockAddr; namelen: Integer): Integer; cdecl; TCloseSocket = function(s: TSocket): Integer; cdecl; TBind = function(s: TSocket; addr: PSockAddr; namelen: Integer): Integer; cdecl; TAccept = function(s: TSocket; addr: PSockAddr; var addrlen: Integer): TSocket; cdecl; TTSocket = function(af, Struc, Protocol: Integer): TSocket; cdecl; TSelect = function(nfds: Integer; readfds, writefds, exceptfds: PFDSet; timeout: PTimeVal): Longint; cdecl; TGetAddrInfo = function(NodeName: PChar; ServName: PChar; Hints: PAddrInfo; var Addrinfo: PAddrInfo): integer; cdecl; TFreeAddrInfo = procedure(ai: PAddrInfo); cdecl; TGetNameInfo = function( addr: PSockAddr; namelen: Integer; host: PChar; hostlen: DWORD; serv: PChar; servlen: DWORD; flags: integer): integer; cdecl; var WSAStartup: TWSAStartup = nil; WSACleanup: TWSACleanup = nil; WSAGetLastError: TWSAGetLastError = nil; GetServByName: TGetServByName = nil; GetServByPort: TGetServByPort = nil; GetProtoByName: TGetProtoByName = nil; GetProtoByNumber: TGetProtoByNumber = nil; GetHostByName: TGetHostByName = nil; GetHostByAddr: TGetHostByAddr = nil; ssGetHostName: TGetHostName = nil; Shutdown: TShutdown = nil; SetSockOpt: TSetSockOpt = nil; GetSockOpt: TGetSockOpt = nil; ssSendTo: TSendTo = nil; ssSend: TSend = nil; ssRecv: TRecv = nil; ssRecvFrom: TRecvFrom = nil; ntohs: Tntohs = nil; ntohl: Tntohl = nil; Listen: TListen = nil; IoctlSocket: TIoctlSocket = nil; Inet_ntoa: TInet_ntoa = nil; Inet_addr: TInet_addr = nil; htons: Thtons = nil; htonl: Thtonl = nil; ssGetSockName: TGetSockName = nil; ssGetPeerName: TGetPeerName = nil; ssConnect: TConnect = nil; CloseSocket: TCloseSocket = nil; ssBind: TBind = nil; ssAccept: TAccept = nil; Socket: TTSocket = nil; Select: TSelect = nil; GetAddrInfo: TGetAddrInfo = nil; FreeAddrInfo: TFreeAddrInfo = nil; GetNameInfo: TGetNameInfo = nil; function LSWSAStartup(wVersionRequired: Word; var WSData: TWSAData): Integer; cdecl; function LSWSACleanup: Integer; cdecl; function LSWSAGetLastError: Integer; cdecl; var SynSockCS: SyncObjs.TCriticalSection; SockEnhancedApi: Boolean; SockWship6Api: Boolean; type TVarSin = packed record case integer of 0: (AddressFamily: u_short); 1: ( case sin_family: u_short of AF_INET: (sin_port: u_short; sin_addr: TInAddr; sin_zero: array[0..7] of Char); AF_INET6: (sin6_port: u_short; sin6_flowinfo: u_long; sin6_addr: TInAddr6; sin6_scope_id: u_long); ); end; function SizeOfVarSin(sin: TVarSin): integer; function Bind(s: TSocket; const addr: TVarSin): Integer; function Connect(s: TSocket; const name: TVarSin): Integer; function GetSockName(s: TSocket; var name: TVarSin): Integer; function GetPeerName(s: TSocket; var name: TVarSin): Integer; function GetHostName: string; function Send(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; function Recv(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; function SendTo(s: TSocket; Buf: TMemory; len, flags: Integer; addrto: TVarSin): Integer; function RecvFrom(s: TSocket; Buf: TMemory; len, flags: Integer; var from: TVarSin): Integer; function Accept(s: TSocket; var addr: TVarSin): TSocket; function IsNewApi(Family: integer): Boolean; function SetVarSin(var Sin: TVarSin; IP, Port: string; Family, SockProtocol, SockType: integer; PreferIP4: Boolean): integer; function GetSinIP(Sin: TVarSin): string; function GetSinPort(Sin: TVarSin): Integer; procedure ResolveNameToIP(Name: string; Family, SockProtocol, SockType: integer; const IPList: TStrings); function ResolveIPToName(IP: string; Family, SockProtocol, SockType: integer): string; function ResolvePort(Port: string; Family, SockProtocol, SockType: integer): Word; {==============================================================================} implementation var SynSockCount: Integer = 0; LibHandle: TLibHandle = 0; Libwship6Handle: TLibHandle = 0; function IN6_IS_ADDR_UNSPECIFIED(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr32[0] = 0) and (a^.u6_addr32[1] = 0) and (a^.u6_addr32[2] = 0) and (a^.u6_addr32[3] = 0)); end; function IN6_IS_ADDR_LOOPBACK(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr32[0] = 0) and (a^.u6_addr32[1] = 0) and (a^.u6_addr32[2] = 0) and (a^.u6_addr8[12] = 0) and (a^.u6_addr8[13] = 0) and (a^.u6_addr8[14] = 0) and (a^.u6_addr8[15] = 1)); end; function IN6_IS_ADDR_LINKLOCAL(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr8[0] = $FE) and (a^.u6_addr8[1] = $80)); end; function IN6_IS_ADDR_SITELOCAL(const a: PInAddr6): boolean; begin Result := ((a^.u6_addr8[0] = $FE) and (a^.u6_addr8[1] = $C0)); end; function IN6_IS_ADDR_MULTICAST(const a: PInAddr6): boolean; begin Result := (a^.u6_addr8[0] = $FF); end; function IN6_ADDR_EQUAL(const a: PInAddr6; const b: PInAddr6): boolean; begin Result := (CompareMem( a, b, sizeof(TInAddr6))); end; procedure SET_IN6_IF_ADDR_ANY (const a: PInAddr6); begin FillChar(a^, sizeof(TInAddr6), 0); end; procedure SET_LOOPBACK_ADDR6 (const a: PInAddr6); begin FillChar(a^, sizeof(TInAddr6), 0); a^.u6_addr8[15] := 1; end; {=============================================================================} var {$IFNDEF VER1_0} //FTP version 1.0.x errno_loc: function: PInteger cdecl = nil; {$ELSE} errno_loc: function: PInteger = nil; cdecl; {$ENDIF} function LSWSAStartup(wVersionRequired: Word; var WSData: TWSAData): Integer; begin with WSData do begin wVersion := wVersionRequired; wHighVersion := $202; szDescription := 'Synsock - Synapse Platform Independent Socket Layer'; szSystemStatus := 'Running on Linux'; iMaxSockets := 32768; iMaxUdpDg := 8192; end; Result := 0; end; function LSWSACleanup: Integer; begin Result := 0; end; function LSWSAGetLastError: Integer; var p: PInteger; begin p := errno_loc; Result := p^; end; function __FDELT(Socket: TSocket): Integer; begin Result := Socket div __NFDBITS; end; function __FDMASK(Socket: TSocket): __fd_mask; begin Result := LongWord(1) shl (Socket mod __NFDBITS); end; function FD_ISSET(Socket: TSocket; var fdset: TFDSet): Boolean; begin Result := (fdset.fds_bits[__FDELT(Socket)] and __FDMASK(Socket)) <> 0; end; procedure FD_SET(Socket: TSocket; var fdset: TFDSet); begin fdset.fds_bits[__FDELT(Socket)] := fdset.fds_bits[__FDELT(Socket)] or __FDMASK(Socket); end; procedure FD_CLR(Socket: TSocket; var fdset: TFDSet); begin fdset.fds_bits[__FDELT(Socket)] := fdset.fds_bits[__FDELT(Socket)] and (not __FDMASK(Socket)); end; procedure FD_ZERO(var fdset: TFDSet); var I: Integer; begin with fdset do for I := Low(fds_bits) to High(fds_bits) do fds_bits[I] := 0; end; {=============================================================================} function SizeOfVarSin(sin: TVarSin): integer; begin case sin.sin_family of AF_INET: Result := SizeOf(TSockAddrIn); AF_INET6: Result := SizeOf(TSockAddrIn6); else Result := 0; end; end; {=============================================================================} function Bind(s: TSocket; const addr: TVarSin): Integer; begin Result := ssBind(s, @addr, SizeOfVarSin(addr)); end; function Connect(s: TSocket; const name: TVarSin): Integer; begin Result := ssConnect(s, @name, SizeOfVarSin(name)); end; function GetSockName(s: TSocket; var name: TVarSin): Integer; var len: integer; begin len := SizeOf(name); FillChar(name, len, 0); Result := ssGetSockName(s, @name, Len); end; function GetPeerName(s: TSocket; var name: TVarSin): Integer; var len: integer; begin len := SizeOf(name); FillChar(name, len, 0); Result := ssGetPeerName(s, @name, Len); end; function GetHostName: string; var s: string; begin Result := ''; setlength(s, 255); ssGetHostName(pchar(s), Length(s) - 1); Result := Pchar(s); end; function Send(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; begin Result := ssSend(s, Buf^, len, flags); end; function Recv(s: TSocket; Buf: TMemory; len, flags: Integer): Integer; begin Result := ssRecv(s, Buf^, len, flags); end; function SendTo(s: TSocket; Buf: TMemory; len, flags: Integer; addrto: TVarSin): Integer; begin Result := ssSendTo(s, Buf^, len, flags, @addrto, SizeOfVarSin(addrto)); end; function RecvFrom(s: TSocket; Buf: TMemory; len, flags: Integer; var from: TVarSin): Integer; var x: integer; begin x := SizeOf(from); Result := ssRecvFrom(s, Buf^, len, flags, @from, x); end; function Accept(s: TSocket; var addr: TVarSin): TSocket; var x: integer; begin x := SizeOf(addr); Result := ssAccept(s, @addr, x); end; {=============================================================================} function IsNewApi(Family: integer): Boolean; begin Result := SockEnhancedApi; if not Result then Result := (Family = AF_INET6) and SockWship6Api; end; function SetVarSin(var Sin: TVarSin; IP, Port: string; Family, SockProtocol, SockType: integer; PreferIP4: Boolean): integer; type pu_long = ^u_long; var ProtoEnt: PProtoEnt; ServEnt: PServEnt; HostEnt: PHostEnt; r: integer; Hints1, Hints2: TAddrInfo; Sin1, Sin2: TVarSin; TwoPass: boolean; function GetAddr(const IP, port: string; Hints: TAddrInfo; var Sin: TVarSin): integer; var Addr: PAddrInfo; begin Addr := nil; try FillChar(Sin, Sizeof(Sin), 0); if Hints.ai_socktype = SOCK_RAW then begin Hints.ai_socktype := 0; Hints.ai_protocol := 0; Result := synsock.GetAddrInfo(PChar(IP), nil, @Hints, Addr); end else begin if (IP = cAnyHost) or (IP = c6AnyHost) then begin Hints.ai_flags := AI_PASSIVE; Result := synsock.GetAddrInfo(nil, PChar(Port), @Hints, Addr); end else if (IP = cLocalhost) or (IP = c6Localhost) then begin Result := synsock.GetAddrInfo(nil, PChar(Port), @Hints, Addr); end else begin Result := synsock.GetAddrInfo(PChar(IP), PChar(Port), @Hints, Addr); end; end; if Result = 0 then if (Addr <> nil) then Move(Addr^.ai_addr^, Sin, Addr^.ai_addrlen); finally if Assigned(Addr) then synsock.FreeAddrInfo(Addr); end; end; begin Result := 0; FillChar(Sin, Sizeof(Sin), 0); if not IsNewApi(family) then begin SynSockCS.Enter; try Sin.sin_family := AF_INET; ProtoEnt := synsock.GetProtoByNumber(SockProtocol); ServEnt := nil; if ProtoEnt <> nil then ServEnt := synsock.GetServByName(PChar(Port), ProtoEnt^.p_name); if ServEnt = nil then Sin.sin_port := synsock.htons(StrToIntDef(Port, 0)) else Sin.sin_port := ServEnt^.s_port; if IP = cBroadcast then Sin.sin_addr.s_addr := u_long(INADDR_BROADCAST) else begin Sin.sin_addr.s_addr := synsock.inet_addr(PChar(IP)); if Sin.sin_addr.s_addr = u_long(INADDR_NONE) then begin HostEnt := synsock.GetHostByName(PChar(IP)); Result := synsock.WSAGetLastError; if HostEnt <> nil then Sin.sin_addr.S_addr := u_long(Pu_long(HostEnt^.h_addr_list^)^); end; end; finally SynSockCS.Leave; end; end else begin FillChar(Hints1, Sizeof(Hints1), 0); FillChar(Hints2, Sizeof(Hints2), 0); TwoPass := False; if Family = AF_UNSPEC then begin if PreferIP4 then begin Hints1.ai_family := AF_INET; Hints2.ai_family := AF_INET6; TwoPass := True; end else begin Hints2.ai_family := AF_INET; Hints1.ai_family := AF_INET6; TwoPass := True; end; end else Hints1.ai_family := Family; Hints1.ai_socktype := SockType; Hints1.ai_protocol := SockProtocol; Hints2.ai_socktype := Hints1.ai_socktype; Hints2.ai_protocol := Hints1.ai_protocol; r := GetAddr(IP, Port, Hints1, Sin1); Result := r; sin := sin1; if r <> 0 then if TwoPass then begin r := GetAddr(IP, Port, Hints2, Sin2); Result := r; if r = 0 then sin := sin2; end; end; end; function GetSinIP(Sin: TVarSin): string; var p: PChar; host, serv: string; hostlen, servlen: integer; r: integer; begin Result := ''; if not IsNewApi(Sin.AddressFamily) then begin p := synsock.inet_ntoa(Sin.sin_addr); if p <> nil then Result := p; end else begin hostlen := NI_MAXHOST; servlen := NI_MAXSERV; setlength(host, hostlen); setlength(serv, servlen); r := getnameinfo(@sin, SizeOfVarSin(sin), PChar(host), hostlen, PChar(serv), servlen, NI_NUMERICHOST + NI_NUMERICSERV); if r = 0 then Result := PChar(host); end; end; function GetSinPort(Sin: TVarSin): Integer; begin if (Sin.sin_family = AF_INET6) then Result := synsock.ntohs(Sin.sin6_port) else Result := synsock.ntohs(Sin.sin_port); end; procedure ResolveNameToIP(Name: string; Family, SockProtocol, SockType: integer; const IPList: TStrings); type TaPInAddr = array[0..250] of PInAddr; PaPInAddr = ^TaPInAddr; var Hints: TAddrInfo; Addr: PAddrInfo; AddrNext: PAddrInfo; r: integer; host, serv: string; hostlen, servlen: integer; RemoteHost: PHostEnt; IP: u_long; PAdrPtr: PaPInAddr; i: Integer; s: string; InAddr: TInAddr; begin IPList.Clear; if not IsNewApi(Family) then begin IP := synsock.inet_addr(PChar(Name)); if IP = u_long(INADDR_NONE) then begin SynSockCS.Enter; try RemoteHost := synsock.GetHostByName(PChar(Name)); if RemoteHost <> nil then begin PAdrPtr := PAPInAddr(RemoteHost^.h_addr_list); i := 0; while PAdrPtr^[i] <> nil do begin InAddr := PAdrPtr^[i]^; s := Format('%d.%d.%d.%d', [InAddr.S_bytes[0], InAddr.S_bytes[1], InAddr.S_bytes[2], InAddr.S_bytes[3]]); IPList.Add(s); Inc(i); end; end; finally SynSockCS.Leave; end; end else IPList.Add(Name); end else begin Addr := nil; try FillChar(Hints, Sizeof(Hints), 0); Hints.ai_family := AF_UNSPEC; Hints.ai_socktype := SockType; Hints.ai_protocol := SockProtocol; Hints.ai_flags := 0; r := synsock.GetAddrInfo(PChar(Name), nil, @Hints, Addr); if r = 0 then begin AddrNext := Addr; while not(AddrNext = nil) do begin if not(((Family = AF_INET6) and (AddrNext^.ai_family = AF_INET)) or ((Family = AF_INET) and (AddrNext^.ai_family = AF_INET6))) then begin hostlen := NI_MAXHOST; servlen := NI_MAXSERV; setlength(host, hostlen); setlength(serv, servlen); r := getnameinfo(AddrNext^.ai_addr, AddrNext^.ai_addrlen, PChar(host), hostlen, PChar(serv), servlen, NI_NUMERICHOST + NI_NUMERICSERV); if r = 0 then begin host := PChar(host); IPList.Add(host); end; end; AddrNext := AddrNext^.ai_next; end; end; finally if Assigned(Addr) then synsock.FreeAddrInfo(Addr); end; end; if IPList.Count = 0 then IPList.Add(cAnyHost); end; function ResolvePort(Port: string; Family, SockProtocol, SockType: integer): Word; var ProtoEnt: PProtoEnt; ServEnt: PServEnt; Hints: TAddrInfo; Addr: PAddrInfo; r: integer; begin Result := 0; if not IsNewApi(Family) then begin SynSockCS.Enter; try ProtoEnt := synsock.GetProtoByNumber(SockProtocol); ServEnt := nil; if ProtoEnt <> nil then ServEnt := synsock.GetServByName(PChar(Port), ProtoEnt^.p_name); if ServEnt = nil then Result := StrToIntDef(Port, 0) else Result := synsock.htons(ServEnt^.s_port); finally SynSockCS.Leave; end; end else begin Addr := nil; try FillChar(Hints, Sizeof(Hints), 0); Hints.ai_family := AF_UNSPEC; Hints.ai_socktype := SockType; Hints.ai_protocol := Sockprotocol; Hints.ai_flags := AI_PASSIVE; r := synsock.GetAddrInfo(nil, PChar(Port), @Hints, Addr); if (r = 0) and Assigned(Addr) then begin if Addr^.ai_family = AF_INET then Result := synsock.htons(Addr^.ai_addr^.sin_port); if Addr^.ai_family = AF_INET6 then Result := synsock.htons(PSockAddrIn6(Addr^.ai_addr)^.sin6_port); end; finally if Assigned(Addr) then synsock.FreeAddrInfo(Addr); end; end; end; function ResolveIPToName(IP: string; Family, SockProtocol, SockType: integer): string; var Hints: TAddrInfo; Addr: PAddrInfo; r: integer; host, serv: string; hostlen, servlen: integer; RemoteHost: PHostEnt; IPn: u_long; begin Result := IP; if not IsNewApi(Family) then begin IPn := synsock.inet_addr(PChar(IP)); if IPn <> u_long(INADDR_NONE) then begin SynSockCS.Enter; try RemoteHost := GetHostByAddr(@IPn, SizeOf(IPn), AF_INET); if RemoteHost <> nil then Result := RemoteHost^.h_name; finally SynSockCS.Leave; end; end; end else begin Addr := nil; try FillChar(Hints, Sizeof(Hints), 0); Hints.ai_family := AF_UNSPEC; Hints.ai_socktype := SockType; Hints.ai_protocol := SockProtocol; Hints.ai_flags := 0; r := synsock.GetAddrInfo(PChar(IP), nil, @Hints, Addr); if (r = 0) and Assigned(Addr)then begin hostlen := NI_MAXHOST; servlen := NI_MAXSERV; setlength(host, hostlen); setlength(serv, servlen); r := getnameinfo(Addr^.ai_addr, Addr^.ai_addrlen, PChar(host), hostlen, PChar(serv), servlen, NI_NUMERICSERV); if r = 0 then Result := PChar(host); end; finally if Assigned(Addr) then synsock.FreeAddrInfo(Addr); end; end; end; {=============================================================================} function InitSocketInterface(stack: string): Boolean; begin Result := False; if stack = '' then stack := DLLStackName; SynSockCS.Enter; try if SynSockCount = 0 then begin SockEnhancedApi := False; SockWship6Api := False; Libc.Signal(Libc.SIGPIPE, TSignalHandler(Libc.SIG_IGN)); LibHandle := LoadLibrary(PChar(Stack)); if LibHandle <> 0 then begin errno_loc := GetProcAddress(LibHandle, PChar('__errno_location')); CloseSocket := GetProcAddress(LibHandle, PChar('close')); IoctlSocket := GetProcAddress(LibHandle, PChar('ioctl')); WSAGetLastError := LSWSAGetLastError; WSAStartup := LSWSAStartup; WSACleanup := LSWSACleanup; ssAccept := GetProcAddress(LibHandle, PChar('accept')); ssBind := GetProcAddress(LibHandle, PChar('bind')); ssConnect := GetProcAddress(LibHandle, PChar('connect')); ssGetPeerName := GetProcAddress(LibHandle, PChar('getpeername')); ssGetSockName := GetProcAddress(LibHandle, PChar('getsockname')); GetSockOpt := GetProcAddress(LibHandle, PChar('getsockopt')); Htonl := GetProcAddress(LibHandle, PChar('htonl')); Htons := GetProcAddress(LibHandle, PChar('htons')); Inet_Addr := GetProcAddress(LibHandle, PChar('inet_addr')); Inet_Ntoa := GetProcAddress(LibHandle, PChar('inet_ntoa')); Listen := GetProcAddress(LibHandle, PChar('listen')); Ntohl := GetProcAddress(LibHandle, PChar('ntohl')); Ntohs := GetProcAddress(LibHandle, PChar('ntohs')); ssRecv := GetProcAddress(LibHandle, PChar('recv')); ssRecvFrom := GetProcAddress(LibHandle, PChar('recvfrom')); Select := GetProcAddress(LibHandle, PChar('select')); ssSend := GetProcAddress(LibHandle, PChar('send')); ssSendTo := GetProcAddress(LibHandle, PChar('sendto')); SetSockOpt := GetProcAddress(LibHandle, PChar('setsockopt')); ShutDown := GetProcAddress(LibHandle, PChar('shutdown')); Socket := GetProcAddress(LibHandle, PChar('socket')); GetHostByAddr := GetProcAddress(LibHandle, PChar('gethostbyaddr')); GetHostByName := GetProcAddress(LibHandle, PChar('gethostbyname')); GetProtoByName := GetProcAddress(LibHandle, PChar('getprotobyname')); GetProtoByNumber := GetProcAddress(LibHandle, PChar('getprotobynumber')); GetServByName := GetProcAddress(LibHandle, PChar('getservbyname')); GetServByPort := GetProcAddress(LibHandle, PChar('getservbyport')); ssGetHostName := GetProcAddress(LibHandle, PChar('gethostname')); {$IFNDEF FORCEOLDAPI} GetAddrInfo := GetProcAddress(LibHandle, PChar('getaddrinfo')); FreeAddrInfo := GetProcAddress(LibHandle, PChar('freeaddrinfo')); GetNameInfo := GetProcAddress(LibHandle, PChar('getnameinfo')); SockEnhancedApi := Assigned(GetAddrInfo) and Assigned(FreeAddrInfo) and Assigned(GetNameInfo); {$ENDIF} Result := True; end; end else Result := True; if Result then Inc(SynSockCount); finally SynSockCS.Leave; end; end; function DestroySocketInterface: Boolean; begin SynSockCS.Enter; try Dec(SynSockCount); if SynSockCount < 0 then SynSockCount := 0; if SynSockCount = 0 then begin if LibHandle <> 0 then begin FreeLibrary(libHandle); LibHandle := 0; end; if LibWship6Handle <> 0 then begin FreeLibrary(LibWship6Handle); LibWship6Handle := 0; end; end; finally SynSockCS.Leave; end; Result := True; end; initialization begin SynSockCS := SyncObjs.TCriticalSection.Create; SET_IN6_IF_ADDR_ANY (@in6addr_any); SET_LOOPBACK_ADDR6 (@in6addr_loopback); end; finalization begin SynSockCS.Free; end; {$ENDIF} ./jedi.inc0000644000175000017500000017541614576573021012573 0ustar anthonyanthony{$IFNDEF JEDI_INC} {$DEFINE JEDI_INC} {**************************************************************************************************} { } { The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License");} { you may not use this file except in compliance with the License. You may obtain a copy of the } { License at http://www.mozilla.org/MPL/ } { } { Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF } { ANY KIND, either express or implied. See the License for the specific language governing rights } { and limitations under the License. } { } { The Original Code is: jedi.inc. } { The Initial Developer of the Original Code is Project JEDI http://www.delphi-jedi.org } { } { Alternatively, the contents of this file may be used under the terms of the GNU Lesser General } { Public License (the "LGPL License"), in which case the provisions of the LGPL License are } { applicable instead of those above. If you wish to allow use of your version of this file only } { under the terms of the LGPL License and not to allow others to use your version of this file } { under the MPL, indicate your decision by deleting the provisions above and replace them with } { the notice and other provisions required by the LGPL License. If you do not delete the } { provisions above, a recipient may use your version of this file under either the MPL or the } { LGPL License. } { } { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } { } {**************************************************************************************************} { } { This file defines various generic compiler directives used in different libraries, e.g. in the } { JEDI Code Library (JCL) and JEDI Visual Component Library Library (JVCL). The directives in } { this file are of generic nature and consist mostly of mappings from the VERXXX directives } { defined by Delphi, C++Builder and FPC to friendly names such as DELPHI5 and } { SUPPORTS_WIDESTRING. These friendly names are subsequently used in the libraries to test for } { compiler versions and/or whether the compiler supports certain features (such as widestrings or } { 64 bit integers. The libraries provide an additional, library specific, include file. For the } { JCL e.g. this is jcl.inc. These files should be included in source files instead of this file } { (which is pulled in automatically). } { } {**************************************************************************************************} { } { Last modified: $Date:: 2012-09-04 16:01:38 +0200 (út, 04 9 2012) $ } { Revision: $Rev:: 161 $ } { Author: $Author:: outchy $ } { } {**************************************************************************************************} (* - Development environment directives This file defines two directives to indicate which development environment the library is being compiled with. Currently this can either be Delphi, Kylix, C++Builder or FPC. Directive Description ------------------------------------------------------------------------------ DELPHI Defined if compiled with Delphi KYLIX Defined if compiled with Kylix DELPHICOMPILER Defined if compiled with Delphi or Kylix/Delphi BCB Defined if compiled with C++Builder CPPBUILDER Defined if compiled with C++Builder (alias for BCB) BCBCOMPILER Defined if compiled with C++Builder or Kylix/C++ DELPHILANGUAGE Defined if compiled with Delphi, Kylix or C++Builder BORLAND Defined if compiled with Delphi, Kylix or C++Builder FPC Defined if compiled with FPC - Platform Directives Platform directives are not all explicitly defined in this file, some are defined by the compiler itself. They are listed here only for completeness. Directive Description ------------------------------------------------------------------------------ WIN32 Defined when target platform is 32 bit Windows WIN64 Defined when target platform is 64 bit Windows MSWINDOWS Defined when target platform is 32 bit Windows LINUX Defined when target platform is Linux UNIX Defined when target platform is Unix-like (including Linux) CLR Defined when target platform is .NET - Architecture directives. These are auto-defined by FPC CPU32 and CPU64 are mostly for generic pointer size dependant differences rather than for a specific architecture. CPU386 Defined when target platform is native x86 (win32) CPUx86_64 Defined when target platform is native x86_64 (win64) CPU32 Defined when target is 32-bit CPU64 Defined when target is 64-bit CPUASM Defined when target assembler is available - Visual library Directives The following directives indicate for a visual library. In a Delphi/BCB (Win32) application you need to define the VisualCLX symbol in the project options, if you want to use the VisualCLX library. Alternatively you can use the IDE expert, which is distributed with the JCL to do this automatically. Directive Description ------------------------------------------------------------------------------ VCL Defined for Delphi/BCB (Win32) exactly if VisualCLX is not defined VisualCLX Defined for Kylix; needs to be defined for Delphi/BCB to use JCL with VisualCLX applications. - Other cross-platform related defines These symbols are intended to help in writing portable code. Directive Description ------------------------------------------------------------------------------ PUREPASCAL Code is machine-independent (as opposed to assembler code) Win32API Code is specific for the Win32 API; use instead of "{$IFNDEF CLR} {$IFDEF MSWINDOWS}" constructs - Delphi Versions The following directives are direct mappings from the VERXXX directives to a friendly name of the associated compiler. These directives are only defined if the compiler is Delphi (ie DELPHI is defined). Directive Description ------------------------------------------------------------------------------ DELPHI1 Defined when compiling with Delphi 1 (Codename WASABI/MANGO) DELPHI2 Defined when compiling with Delphi 2 (Codename POLARIS) DELPHI3 Defined when compiling with Delphi 3 (Codename IVORY) DELPHI4 Defined when compiling with Delphi 4 (Codename ALLEGRO) DELPHI5 Defined when compiling with Delphi 5 (Codename ARGUS) DELPHI6 Defined when compiling with Delphi 6 (Codename ILLIAD) DELPHI7 Defined when compiling with Delphi 7 (Codename AURORA) DELPHI8 Defined when compiling with Delphi 8 (Codename OCTANE) DELPHI2005 Defined when compiling with Delphi 2005 (Codename DIAMONDBACK) DELPHI9 Alias for DELPHI2005 DELPHI10 Defined when compiling with Delphi 2006 (Codename DEXTER) DELPHI2006 Alias for DELPHI10 DELPHI11 Defined when compiling with Delphi 2007 for Win32 (Codename SPACELY) DELPHI2007 Alias for DELPHI11 DELPHI12 Defined when compiling with Delphi 2009 for Win32 (Codename TIBURON) DELPHI2009 Alias for DELPHI12 DELPHI14 Defined when compiling with Delphi 2010 for Win32 (Codename WEAVER) DELPHI2010 Alias for DELPHI14 DELPHI15 Defined when compiling with Delphi XE for Win32 (Codename FULCRUM) DELPHIXE Alias for DELPHI15 DELPHI16 Defined when compiling with Delphi XE2 for Win32 (Codename PULSAR) DELPHIXE2 Alias for DELPHI16 DELPHI17 Defined when compiling with Delphi XE3 for Win32 (Codename WATERDRAGON) DELPHIXE3 Alias for DELPHI17 DELPHI1_UP Defined when compiling with Delphi 1 or higher DELPHI2_UP Defined when compiling with Delphi 2 or higher DELPHI3_UP Defined when compiling with Delphi 3 or higher DELPHI4_UP Defined when compiling with Delphi 4 or higher DELPHI5_UP Defined when compiling with Delphi 5 or higher DELPHI6_UP Defined when compiling with Delphi 6 or higher DELPHI7_UP Defined when compiling with Delphi 7 or higher DELPHI8_UP Defined when compiling with Delphi 8 or higher DELPHI2005_UP Defined when compiling with Delphi 2005 or higher DELPHI9_UP Alias for DELPHI2005_UP DELPHI10_UP Defined when compiling with Delphi 2006 or higher DELPHI2006_UP Alias for DELPHI10_UP DELPHI11_UP Defined when compiling with Delphi 2007 for Win32 or higher DELPHI2007_UP Alias for DELPHI11_UP DELPHI12_UP Defined when compiling with Delphi 2009 for Win32 or higher DELPHI2009_UP Alias for DELPHI12_UP DELPHI14_UP Defined when compiling with Delphi 2010 for Win32 or higher DELPHI2010_UP Alias for DELPHI14_UP DELPHI15_UP Defined when compiling with Delphi XE for Win32 or higher DELPHIXE_UP Alias for DELPHI15_UP DELPHI16_UP Defined when compiling with Delphi XE2 for Win32 or higher DELPHIXE2_UP Alias for DELPHI16_UP DELPHI17_UP Defined when compiling with Delphi XE3 for Win32 or higher DELPHIXE3_UP Alias for DELPHI17_UP - Kylix Versions The following directives are direct mappings from the VERXXX directives to a friendly name of the associated compiler. These directives are only defined if the compiler is Kylix (ie KYLIX is defined). Directive Description ------------------------------------------------------------------------------ KYLIX1 Defined when compiling with Kylix 1 KYLIX2 Defined when compiling with Kylix 2 KYLIX3 Defined when compiling with Kylix 3 (Codename CORTEZ) KYLIX1_UP Defined when compiling with Kylix 1 or higher KYLIX2_UP Defined when compiling with Kylix 2 or higher KYLIX3_UP Defined when compiling with Kylix 3 or higher - Delphi Compiler Versions (Delphi / Kylix, not in BCB mode) Directive Description ------------------------------------------------------------------------------ DELPHICOMPILER1 Defined when compiling with Delphi 1 DELPHICOMPILER2 Defined when compiling with Delphi 2 DELPHICOMPILER3 Defined when compiling with Delphi 3 DELPHICOMPILER4 Defined when compiling with Delphi 4 DELPHICOMPILER5 Defined when compiling with Delphi 5 DELPHICOMPILER6 Defined when compiling with Delphi 6 or Kylix 1, 2 or 3 DELPHICOMPILER7 Defined when compiling with Delphi 7 DELPHICOMPILER8 Defined when compiling with Delphi 8 DELPHICOMPILER9 Defined when compiling with Delphi 2005 DELPHICOMPILER10 Defined when compiling with Delphi Personality of BDS 4.0 DELPHICOMPILER11 Defined when compiling with Delphi 2007 for Win32 DELPHICOMPILER12 Defined when compiling with Delphi Personality of BDS 6.0 DELPHICOMPILER14 Defined when compiling with Delphi Personality of BDS 7.0 DELPHICOMPILER15 Defined when compiling with Delphi Personality of BDS 8.0 DELPHICOMPILER16 Defined when compiling with Delphi Personality of BDS 9.0 DELPHICOMPILER17 Defined when compiling with Delphi Personality of BDS 10.0 DELPHICOMPILER1_UP Defined when compiling with Delphi 1 or higher DELPHICOMPILER2_UP Defined when compiling with Delphi 2 or higher DELPHICOMPILER3_UP Defined when compiling with Delphi 3 or higher DELPHICOMPILER4_UP Defined when compiling with Delphi 4 or higher DELPHICOMPILER5_UP Defined when compiling with Delphi 5 or higher DELPHICOMPILER6_UP Defined when compiling with Delphi 6 or Kylix 1, 2 or 3 or higher DELPHICOMPILER7_UP Defined when compiling with Delphi 7 or higher DELPHICOMPILER8_UP Defined when compiling with Delphi 8 or higher DELPHICOMPILER9_UP Defined when compiling with Delphi 2005 DELPHICOMPILER10_UP Defined when compiling with Delphi 2006 or higher DELPHICOMPILER11_UP Defined when compiling with Delphi 2007 for Win32 or higher DELPHICOMPILER12_UP Defined when compiling with Delphi 2009 for Win32 or higher DELPHICOMPILER14_UP Defined when compiling with Delphi 2010 for Win32 or higher DELPHICOMPILER15_UP Defined when compiling with Delphi XE for Win32 or higher DELPHICOMPILER16_UP Defined when compiling with Delphi XE2 for Win32 or higher DELPHICOMPILER17_UP Defined when compiling with Delphi XE3 for Win32 or higher - C++Builder Versions The following directives are direct mappings from the VERXXX directives to a friendly name of the associated compiler. These directives are only defined if the compiler is C++Builder (ie BCB is defined). Directive Description ------------------------------------------------------------------------------ BCB1 Defined when compiling with C++Builder 1 BCB3 Defined when compiling with C++Builder 3 BCB4 Defined when compiling with C++Builder 4 BCB5 Defined when compiling with C++Builder 5 (Codename RAMPAGE) BCB6 Defined when compiling with C++Builder 6 (Codename RIPTIDE) BCB10 Defined when compiling with C++Builder Personality of BDS 4.0 (also known as C++Builder 2006) (Codename DEXTER) BCB11 Defined when compiling with C++Builder Personality of RAD Studio 2007 (also known as C++Builder 2007) (Codename COGSWELL) BCB12 Defined when compiling with C++Builder Personality of RAD Studio 2009 (also known as C++Builder 2009) (Codename TIBURON) BCB14 Defined when compiling with C++Builder Personality of RAD Studio 2010 (also known as C++Builder 2010) (Codename WEAVER) BCB15 Defined when compiling with C++Builder Personality of RAD Studio XE (also known as C++Builder XE) (Codename FULCRUM) BCB16 Defined when compiling with C++Builder Personality of RAD Studio XE2 (also known as C++Builder XE2) (Codename PULSAR) BCB17 Defined when compiling with C++Builder Personality of RAD Studio XE3 (also known as C++Builder XE3) (Codename WATERDRAGON) BCB1_UP Defined when compiling with C++Builder 1 or higher BCB3_UP Defined when compiling with C++Builder 3 or higher BCB4_UP Defined when compiling with C++Builder 4 or higher BCB5_UP Defined when compiling with C++Builder 5 or higher BCB6_UP Defined when compiling with C++Builder 6 or higher BCB10_UP Defined when compiling with C++Builder Personality of BDS 4.0 or higher BCB11_UP Defined when compiling with C++Builder Personality of RAD Studio 2007 or higher BCB12_UP Defined when compiling with C++Builder Personality of RAD Studio 2009 or higher BCB14_UP Defined when compiling with C++Builder Personality of RAD Studio 2010 or higher BCB15_UP Defined when compiling with C++Builder Personality of RAD Studio XE or higher BCB16_UP Defined when compiling with C++Builder Personality of RAD Studio XE2 or higher BCB17_UP Defined when compiling with C++Builder Personality of RAD Studio XE3 or higher - RAD Studio / Borland Developer Studio Versions The following directives are direct mappings from the VERXXX directives to a friendly name of the associated IDE. These directives are only defined if the IDE is Borland Developer Studio Version 2 or above. Note: Borland Developer Studio 2006 is marketed as Delphi 2006 or C++Builder 2006, but those provide only different labels for identical content. Directive Description ------------------------------------------------------------------------------ BDS Defined when compiling with BDS version of dcc32.exe (Codename SIDEWINDER) BDS2 Defined when compiling with BDS 2.0 (Delphi 8) (Codename OCTANE) BDS3 Defined when compiling with BDS 3.0 (Delphi 2005) (Codename DIAMONDBACK) BDS4 Defined when compiling with BDS 4.0 (Borland Developer Studio 2006) (Codename DEXTER) BDS5 Defined when compiling with BDS 5.0 (CodeGear RAD Studio 2007) (Codename HIGHLANDER) BDS6 Defined when compiling with BDS 6.0 (CodeGear RAD Studio 2009) (Codename TIBURON) BDS7 Defined when compiling with BDS 7.0 (Embarcadero RAD Studio 2010) (Codename WEAVER) BDS8 Defined when compiling with BDS 8.0 (Embarcadero RAD Studio XE) (Codename FULCRUM) BDS9 Defined when compiling with BDS 9.0 (Embarcadero RAD Studio XE2) (Codename PULSAR) BDS10 Defined when compiling with BDS 10.0 (Embarcadero RAD Studio XE3) (Codename WATERDRAGON) BDS2_UP Defined when compiling with BDS 2.0 or higher BDS3_UP Defined when compiling with BDS 3.0 or higher BDS4_UP Defined when compiling with BDS 4.0 or higher BDS5_UP Defined when compiling with BDS 5.0 or higher BDS6_UP Defined when compiling with BDS 6.0 or higher BDS7_UP Defined when compiling with BDS 7.0 or higher BDS8_UP Defined when compiling with BDS 8.0 or higher BDS9_UP Defined when compiling with BDS 9.0 or higher BDS10_UP Defined when compiling with BDS 10.0 or higher - Compiler Versions The following directives are direct mappings from the VERXXX directives to a friendly name of the associated compiler. Unlike the DELPHI_X and BCB_X directives, these directives are indepedent of the development environment. That is, they are defined regardless of whether compilation takes place using Delphi or C++Builder. Directive Description ------------------------------------------------------------------------------ COMPILER1 Defined when compiling with Delphi 1 COMPILER2 Defined when compiling with Delphi 2 or C++Builder 1 COMPILER3 Defined when compiling with Delphi 3 COMPILER35 Defined when compiling with C++Builder 3 COMPILER4 Defined when compiling with Delphi 4 or C++Builder 4 COMPILER5 Defined when compiling with Delphi 5 or C++Builder 5 COMPILER6 Defined when compiling with Delphi 6 or C++Builder 6 COMPILER7 Defined when compiling with Delphi 7 COMPILER8 Defined when compiling with Delphi 8 COMPILER9 Defined when compiling with Delphi 9 COMPILER10 Defined when compiling with Delphi or C++Builder Personalities of BDS 4.0 COMPILER11 Defined when compiling with Delphi or C++Builder Personalities of BDS 5.0 COMPILER12 Defined when compiling with Delphi or C++Builder Personalities of BDS 6.0 COMPILER14 Defined when compiling with Delphi or C++Builder Personalities of BDS 7.0 COMPILER15 Defined when compiling with Delphi or C++Builder Personalities of BDS 8.0 COMPILER16 Defined when compiling with Delphi or C++Builder Personalities of BDS 9.0 COMPILER17 Defined when compiling with Delphi or C++Builder Personalities of BDS 10.0 COMPILER1_UP Defined when compiling with Delphi 1 or higher COMPILER2_UP Defined when compiling with Delphi 2 or C++Builder 1 or higher COMPILER3_UP Defined when compiling with Delphi 3 or higher COMPILER35_UP Defined when compiling with C++Builder 3 or higher COMPILER4_UP Defined when compiling with Delphi 4 or C++Builder 4 or higher COMPILER5_UP Defined when compiling with Delphi 5 or C++Builder 5 or higher COMPILER6_UP Defined when compiling with Delphi 6 or C++Builder 6 or higher COMPILER7_UP Defined when compiling with Delphi 7 COMPILER8_UP Defined when compiling with Delphi 8 COMPILER9_UP Defined when compiling with Delphi Personalities of BDS 3.0 COMPILER10_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 4.0 or higher COMPILER11_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 5.0 or higher COMPILER12_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 6.0 or higher COMPILER14_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 7.0 or higher COMPILER15_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 8.0 or higher COMPILER16_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 9.0 or higher COMPILER17_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 10.0 or higher - RTL Versions Use e.g. following to determine the exact RTL version since version 14.0: {$IFDEF CONDITIONALEXPRESSIONS} {$IF Declared(RTLVersion) and (RTLVersion >= 14.2)} // code for Delphi 6.02 or higher, Kylix 2 or higher, C++Builder 6 or higher ... {$IFEND} {$ENDIF} Directive Description ------------------------------------------------------------------------------ RTL80_UP Defined when compiling with Delphi 1 or higher RTL90_UP Defined when compiling with Delphi 2 or higher RTL93_UP Defined when compiling with C++Builder 1 or higher RTL100_UP Defined when compiling with Delphi 3 or higher RTL110_UP Defined when compiling with C++Builder 3 or higher RTL120_UP Defined when compiling with Delphi 4 or higher RTL125_UP Defined when compiling with C++Builder 4 or higher RTL130_UP Defined when compiling with Delphi 5 or C++Builder 5 or higher RTL140_UP Defined when compiling with Delphi 6, Kylix 1, 2 or 3 or C++Builder 6 or higher RTL150_UP Defined when compiling with Delphi 7 or higher RTL160_UP Defined when compiling with Delphi 8 or higher RTL170_UP Defined when compiling with Delphi Personalities of BDS 3.0 or higher RTL180_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 4.0 or higher RTL185_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 5.0 or higher RTL190_UP Defined when compiling with Delphi.NET of BDS 5.0 or higher RTL200_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 6.0 or higher RTL210_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 7.0 or higher RTL220_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 8.0 or higher RTL230_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 9.0 or higher RTL240_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 10.0 or higher - CLR Versions Directive Description ------------------------------------------------------------------------------ CLR Defined when compiling for .NET CLR10 Defined when compiling for .NET 1.0 (may be overriden by FORCE_CLR10) CLR10_UP Defined when compiling for .NET 1.0 or higher CLR11 Defined when compiling for .NET 1.1 (may be overriden by FORCE_CLR11) CLR11_UP Defined when compiling for .NET 1.1 or higher CLR20 Defined when compiling for .NET 2.0 (may be overriden by FORCE_CLR20) CLR20_UP Defined when compiling for .NET 2.0 or higher - Feature Directives The features directives are used to test if the compiler supports specific features, such as method overloading, and adjust the sources accordingly. Use of these directives is preferred over the use of the DELPHI and COMPILER directives. Directive Description ------------------------------------------------------------------------------ SUPPORTS_CONSTPARAMS Compiler supports const parameters (D1+) SUPPORTS_SINGLE Compiler supports the Single type (D1+) SUPPORTS_DOUBLE Compiler supports the Double type (D1+) SUPPORTS_EXTENDED Compiler supports the Extended type (D1+) SUPPORTS_CURRENCY Compiler supports the Currency type (D2+) SUPPORTS_THREADVAR Compiler supports threadvar declarations (D2+) SUPPORTS_OUTPARAMS Compiler supports out parameters (D3+) SUPPORTS_VARIANT Compiler supports variant (D2+) SUPPORTS_WIDECHAR Compiler supports the WideChar type (D2+) SUPPORTS_WIDESTRING Compiler supports the WideString type (D3+/BCB3+) SUPPORTS_INTERFACE Compiler supports interfaces (D3+/BCB3+) SUPPORTS_DISPINTERFACE Compiler supports dispatch interfaces (D3+/BCB3+) SUPPORTS_DISPID Compiler supports dispatch ids (D3+/BCB3+/FPC) SUPPORTS_EXTSYM Compiler supports the $EXTERNALSYM directive (D4+/BCB3+) SUPPORTS_NODEFINE Compiler supports the $NODEFINE directive (D4+/BCB3+) SUPPORTS_LONGWORD Compiler supports the LongWord type (unsigned 32 bit) (D4+/BCB4+) SUPPORTS_INT64 Compiler supports the Int64 type (D4+/BCB4+) SUPPORTS_UINT64 Compiler supports the UInt64 type (D XE+ ?) SUPPORTS_DYNAMICARRAYS Compiler supports dynamic arrays (D4+/BCB4+) SUPPORTS_DEFAULTPARAMS Compiler supports default parameters (D4+/BCB4+) SUPPORTS_OVERLOAD Compiler supports overloading (D4+/BCB4+) SUPPORTS_IMPLEMENTS Compiler supports implements (D4+/BCB4+) SUPPORTS_DEPRECATED Compiler supports the deprecated directive (D6+/BCB6+) SUPPORTS_PLATFORM Compiler supports the platform directive (D6+/BCB6+) SUPPORTS_LIBRARY Compiler supports the library directive (D6+/BCB6+/FPC) SUPPORTS_LOCAL Compiler supports the local directive (D6+/BCB6+) SUPPORTS_SETPEFLAGS Compiler supports the SetPEFlags directive (D6+/BCB6+) SUPPORTS_EXPERIMENTAL_WARNINGS Compiler supports the WARN SYMBOL_EXPERIMENTAL and WARN UNIT_EXPERIMENTAL directives (D6+/BCB6+) SUPPORTS_INLINE Compiler supports the inline directive (D9+/FPC) SUPPORTS_FOR_IN Compiler supports for in loops (D9+) SUPPORTS_NESTED_CONSTANTS Compiler supports nested constants (D9+) SUPPORTS_NESTED_TYPES Compiler supports nested types (D9+) SUPPORTS_REGION Compiler supports the REGION and ENDREGION directives (D9+) SUPPORTS_ENHANCED_RECORDS Compiler supports class [operator|function|procedure] for record types (D9.NET, D10+) SUPPORTS_CLASS_FIELDS Compiler supports class fields (D9.NET, D10+) SUPPORTS_CLASS_HELPERS Compiler supports class helpers (D9.NET, D10+) SUPPORTS_CLASS_OPERATORS Compiler supports class operators (D9.NET, D10+) SUPPORTS_CLASS_CTORDTORS Compiler supports class contructors/destructors (D14+) SUPPORTS_STRICT Compiler supports strict keyword (D9.NET, D10+) SUPPORTS_STATIC Compiler supports static keyword (D9.NET, D10+) SUPPORTS_FINAL Compiler supports final keyword (D9.NET, D10+) SUPPORTS_METHODINFO Compiler supports the METHODINFO directives (D10+) SUPPORTS_GENERICS Compiler supports generic implementations (D11.NET, D12+) SUPPORTS_DEPRECATED_DETAILS Compiler supports additional text for the deprecated directive (D11.NET, D12+) ACCEPT_DEPRECATED Compiler supports or ignores the deprecated directive (D6+/BCB6+/FPC) ACCEPT_PLATFORM Compiler supports or ignores the platform directive (D6+/BCB6+/FPC) ACCEPT_LIBRARY Compiler supports or ignores the library directive (D6+/BCB6+) SUPPORTS_CUSTOMVARIANTS Compiler supports custom variants (D6+/BCB6+) SUPPORTS_VARARGS Compiler supports varargs (D6+/BCB6+) SUPPORTS_ENUMVALUE Compiler supports assigning ordinalities to values of enums (D6+/BCB6+) SUPPORTS_DEPRECATED_WARNINGS Compiler supports deprecated warnings (D6+/BCB6+) SUPPORTS_LIBRARY_WARNINGS Compiler supports library warnings (D6+/BCB6+) SUPPORTS_PLATFORM_WARNINGS Compiler supports platform warnings (D6+/BCB6+) SUPPORTS_UNSAFE_WARNINGS Compiler supports unsafe warnings (D7) SUPPORTS_WEAKPACKAGEUNIT Compiler supports the WEAKPACKAGEUNIT directive SUPPORTS_COMPILETIME_MESSAGES Compiler supports the MESSAGE directive SUPPORTS_PACKAGES Compiler supports Packages HAS_UNIT_LIBC Unit Libc exists (Kylix, FPC on Linux/x86) HAS_UNIT_RTLCONSTS Unit RTLConsts exists (D6+/BCB6+/FPC) HAS_UNIT_TYPES Unit Types exists (D6+/BCB6+/FPC) HAS_UNIT_VARIANTS Unit Variants exists (D6+/BCB6+/FPC) HAS_UNIT_STRUTILS Unit StrUtils exists (D6+/BCB6+/FPC) HAS_UNIT_DATEUTILS Unit DateUtils exists (D6+/BCB6+/FPC) HAS_UNIT_CONTNRS Unit contnrs exists (D6+/BCB6+/FPC) HAS_UNIT_HTTPPROD Unit HTTPProd exists (D9+) HAS_UNIT_GIFIMG Unit GifImg exists (D11+) HAS_UNIT_ANSISTRINGS Unit AnsiStrings exists (D12+) HAS_UNIT_PNGIMAGE Unit PngImage exists (D12+) HAS_UNIT_CHARACTER Unit Character exists (D12+) XPLATFORM_RTL The RTL supports crossplatform function names (e.g. RaiseLastOSError) (D6+/BCB6+/FPC) SUPPORTS_UNICODE string type is aliased to an unicode string (WideString or UnicodeString) (DX.NET, D12+) SUPPORTS_UNICODE_STRING Compiler supports UnicodeString (D12+) SUPPORTS_INT_ALIASES Types Int8, Int16, Int32, UInt8, UInt16 and UInt32 are defined in the unit System (D12+) HAS_UNIT_RTTI Unit RTTI is available (D14+) SUPPORTS_CAST_INTERFACE_TO_OBJ The compiler supports casts from interfaces to objects (D14+) SUPPORTS_DELAYED_LOADING The compiler generates stubs for delaying imported function loads (D14+) HAS_UNIT_REGULAREXPRESSIONSAPI Unit RegularExpressionsAPI is available (D15+) HAS_UNIT_SYSTEM_UITYPES Unit System.UITypes is available (D16+) HAS_UNIT_SYSTEM_ACTIONS Unit System.Actions is available (D17+) - Compiler Settings The compiler settings directives indicate whether a specific compiler setting is in effect. This facilitates changing compiler settings locally in a more compact and readible manner. Directive Description ------------------------------------------------------------------------------ ALIGN_ON Compiling in the A+ state (no alignment) BOOLEVAL_ON Compiling in the B+ state (complete boolean evaluation) ASSERTIONS_ON Compiling in the C+ state (assertions on) DEBUGINFO_ON Compiling in the D+ state (debug info generation on) IMPORTEDDATA_ON Compiling in the G+ state (creation of imported data references) LONGSTRINGS_ON Compiling in the H+ state (string defined as AnsiString) IOCHECKS_ON Compiling in the I+ state (I/O checking enabled) WRITEABLECONST_ON Compiling in the J+ state (typed constants can be modified) LOCALSYMBOLS Compiling in the L+ state (local symbol generation) LOCALSYMBOLS_ON Alias of LOCALSYMBOLS TYPEINFO_ON Compiling in the M+ state (RTTI generation on) OPTIMIZATION_ON Compiling in the O+ state (code optimization on) OPENSTRINGS_ON Compiling in the P+ state (variable string parameters are openstrings) OVERFLOWCHECKS_ON Compiling in the Q+ state (overflow checing on) RANGECHECKS_ON Compiling in the R+ state (range checking on) TYPEDADDRESS_ON Compiling in the T+ state (pointers obtained using the @ operator are typed) SAFEDIVIDE_ON Compiling in the U+ state (save FDIV instruction through RTL emulation) VARSTRINGCHECKS_ON Compiling in the V+ state (type checking of shortstrings) STACKFRAMES_ON Compiling in the W+ state (generation of stack frames) EXTENDEDSYNTAX_ON Compiling in the X+ state (Delphi extended syntax enabled) *) {$DEFINE BORLAND} { Set FreePascal to Delphi mode } {$IFDEF FPC} {$MODE DELPHI} // {$ASMMODE Intel} //Not needed and raise error on non-intel platforms! {$UNDEF BORLAND} {$DEFINE CPUASM} // FPC defines CPU32, CPU64 and Unix automatically {$ENDIF} {$IFDEF BORLAND} {$IFDEF LINUX} {$DEFINE KYLIX} {$ENDIF LINUX} {$IFNDEF CLR} {$IFNDEF CPUX86} {$IFNDEF CPUX64} {$DEFINE CPU386} // For Borland compilers select the x86 compat assembler by default {$DEFINE CPU32} // Assume Borland compilers are 32-bit (rather than 64-bit) {$DEFINE CPUASM} {$ELSE ~CPUX64} {$DEFINE CPU64} {$DEFINE CPUASM} {$DEFINE DELPHI64_TEMPORARY} {$ENDIF ~CPUX64} {$ELSE ~CPUX86} {$DEFINE CPU386} {$DEFINE CPU32} {$DEFINE CPUASM} {$ENDIF ~CPUX86} {$ENDIF ~CLR} {$ENDIF BORLAND} {------------------------------------------------------------------------------} { VERXXX to COMPILERX, DELPHIX and BCBX mappings } {------------------------------------------------------------------------------} {$IFDEF BORLAND} {$IFDEF KYLIX} {$I kylix.inc} // FPC incompatible stuff {$ELSE ~KYLIX} {$DEFINE UNKNOWN_COMPILER_VERSION} {$IFDEF VER80} {$DEFINE COMPILER1} {$DEFINE DELPHI1} {$DEFINE DELPHICOMPILER1} {$DEFINE RTL80_UP} {$UNDEF UNKNOWN_COMPILER_VERSION} {$ENDIF} {$IFDEF VER90} {$DEFINE COMPILER2} {$DEFINE DELPHI2} {$DEFINE DELPHICOMPILER2} {$DEFINE RTL90_UP} {$UNDEF UNKNOWN_COMPILER_VERSION} {$ENDIF} {$IFDEF VER93} {$DEFINE COMPILER2} {$DEFINE BCB1} {$DEFINE BCB} {$DEFINE RTL93_UP} {$UNDEF UNKNOWN_COMPILER_VERSION} {$ENDIF} {$IFDEF VER100} {$DEFINE COMPILER3} {$DEFINE DELPHI3} {$DEFINE DELPHICOMPILER3} {$DEFINE RTL100_UP} {$UNDEF UNKNOWN_COMPILER_VERSION} {$ENDIF} {$IFDEF VER110} {$DEFINE COMPILER35} {$DEFINE BCB3} {$DEFINE BCB} {$DEFINE RTL110_UP} {$UNDEF UNKNOWN_COMPILER_VERSION} {$ENDIF} {$IFDEF VER120} {$DEFINE COMPILER4} {$DEFINE DELPHI4} {$DEFINE DELPHICOMPILER4} {$DEFINE RTL120_UP} {$UNDEF UNKNOWN_COMPILER_VERSION} {$ENDIF} {$IFDEF VER125} {$DEFINE COMPILER4} {$DEFINE BCB4} {$DEFINE BCB} {$DEFINE RTL125_UP} {$UNDEF UNKNOWN_COMPILER_VERSION} {$ENDIF} {$IFDEF VER130} {$DEFINE COMPILER5} {$IFDEF BCB} {$DEFINE BCB5} {$ELSE} {$DEFINE DELPHI5} {$DEFINE DELPHICOMPILER5} {$ENDIF} {$DEFINE RTL130_UP} {$UNDEF UNKNOWN_COMPILER_VERSION} {$ENDIF} {$IFDEF VER140} {$DEFINE COMPILER6} {$IFDEF BCB} {$DEFINE BCB6} {$ELSE} {$DEFINE DELPHI6} {$DEFINE DELPHICOMPILER6} {$ENDIF} {$DEFINE RTL140_UP} {$UNDEF UNKNOWN_COMPILER_VERSION} {$ENDIF} {$IFDEF VER150} {$DEFINE COMPILER7} {$DEFINE DELPHI7} {$DEFINE DELPHICOMPILER7} {$DEFINE RTL150_UP} {$UNDEF UNKNOWN_COMPILER_VERSION} {$ENDIF} {$IFDEF VER160} {$DEFINE BDS2} {$DEFINE BDS} {$IFDEF CLR} {$DEFINE CLR10} {$ENDIF CLR} {$DEFINE COMPILER8} {$DEFINE DELPHI8} {$DEFINE DELPHICOMPILER8} {$DEFINE RTL160_UP} {$UNDEF UNKNOWN_COMPILER_VERSION} {$ENDIF} {$IFDEF VER170} {$DEFINE BDS3} {$DEFINE BDS} {$IFDEF CLR} {$DEFINE CLR11} {$ENDIF CLR} {$DEFINE COMPILER9} {$DEFINE DELPHI9} {$DEFINE DELPHI2005} // synonym to DELPHI9 {$DEFINE DELPHICOMPILER9} {$DEFINE RTL170_UP} {$UNDEF UNKNOWN_COMPILER_VERSION} {$ENDIF} {$IFDEF VER180} {$DEFINE BDS} {$IFDEF CLR} {$DEFINE CLR11} {$ENDIF CLR} {$IFDEF VER185} {$DEFINE BDS5} {$DEFINE COMPILER11} {$IFDEF BCB} {$DEFINE BCB11} {$ELSE} {$DEFINE DELPHI11} {$DEFINE DELPHI2007} // synonym to DELPHI11 {$DEFINE DELPHICOMPILER11} {$ENDIF} {$DEFINE RTL185_UP} {$ELSE ~~VER185} {$DEFINE BDS4} {$DEFINE COMPILER10} {$IFDEF BCB} {$DEFINE BCB10} {$ELSE} {$DEFINE DELPHI10} {$DEFINE DELPHI2006} // synonym to DELPHI10 {$DEFINE DELPHICOMPILER10} {$ENDIF} {$DEFINE RTL180_UP} {$ENDIF ~VER185} {$UNDEF UNKNOWN_COMPILER_VERSION} {$ENDIF} {$IFDEF VER190} // Delphi 2007 for .NET {$DEFINE BDS} {$DEFINE BDS5} {$IFDEF CLR} {$DEFINE CLR20} {$ENDIF CLR} {$DEFINE COMPILER11} {$DEFINE DELPHI11} {$DEFINE DELPHI2007} // synonym to DELPHI11 {$DEFINE DELPHICOMPILER11} {$DEFINE RTL190_UP} {$UNDEF UNKNOWN_COMPILER_VERSION} {$ENDIF VER190} {$IFDEF VER200} // RAD Studio 2009 {$DEFINE BDS} {$DEFINE BDS6} {$IFDEF CLR} {$DEFINE CLR20} {$ENDIF CLR} {$DEFINE COMPILER12} {$IFDEF BCB} {$DEFINE BCB12} {$ELSE} {$DEFINE DELPHI12} {$DEFINE DELPHI2009} // synonym to DELPHI12 {$DEFINE DELPHICOMPILER12} {$ENDIF BCB} {$IFDEF CLR} {$DEFINE RTL190_UP} {$ELSE} {$DEFINE RTL200_UP} {$ENDIF} {$UNDEF UNKNOWN_COMPILER_VERSION} {$ENDIF VER200} {$IFDEF VER210} // RAD Studio 2010 {$DEFINE BDS} {$DEFINE BDS7} {$DEFINE COMPILER14} {$IFDEF BCB} {$DEFINE BCB14} {$ELSE} {$DEFINE DELPHI14} {$DEFINE DELPHI2010} // synonym to DELPHI14 {$DEFINE DELPHICOMPILER14} {$ENDIF BCB} {$DEFINE RTL210_UP} {$UNDEF UNKNOWN_COMPILER_VERSION} {$ENDIF VER210} {$IFDEF VER220} // RAD Studio XE {$DEFINE BDS} {$DEFINE BDS8} {$DEFINE COMPILER15} {$IFDEF BCB} {$DEFINE BCB15} {$ELSE} {$DEFINE DELPHI15} {$DEFINE DELPHIXE} // synonym to DELPHI15 {$DEFINE DELPHICOMPILER15} {$ENDIF BCB} {$DEFINE RTL220_UP} {$UNDEF UNKNOWN_COMPILER_VERSION} {$ENDIF VER220} {$IFDEF VER230} // RAD Studio XE2 {$DEFINE BDS} {$DEFINE BDS9} {$DEFINE COMPILER16} {$IFDEF BCB} {$DEFINE BCB16} {$ELSE} {$DEFINE DELPHI16} {$DEFINE DELPHIXE2} // synonym to DELPHI16 {$DEFINE DELPHICOMPILER16} {$ENDIF BCB} {$DEFINE RTL230_UP} {$UNDEF UNKNOWN_COMPILER_VERSION} {$ENDIF VER230} {$IFDEF VER240} // RAD Studio XE3 {$DEFINE BDS} {$DEFINE BDS10} {$DEFINE COMPILER17} {$IFDEF BCB} {$DEFINE BCB17} {$ELSE} {$DEFINE DELPHI17} {$DEFINE DELPHIXE3} // synonym to DELPHI17 {$DEFINE DELPHICOMPILER17} {$ENDIF BCB} {$DEFINE RTL240_UP} {$UNDEF UNKNOWN_COMPILER_VERSION} {$ENDIF VER240} {$IFDEF UNKNOWN_COMPILER_VERSION} // adjust for newer version (always use latest version) {$DEFINE BDS} {$DEFINE BDS10} {$DEFINE COMPILER17} {$IFDEF BCB} {$DEFINE BCB17} {$ELSE} {$DEFINE DELPHI17} {$DEFINE DELPHIXE3} // synonym to DELPHI17 {$DEFINE DELPHICOMPILER17} {$ENDIF BCB} {$DEFINE RTL240_UP} {$UNDEF UNKNOWN_COMPILER_VERSION} {$ENDIF} {$ENDIF ~KYLIX} {$IFDEF BCB} {$DEFINE CPPBUILDER} {$DEFINE BCBCOMPILER} {$ELSE ~BCB} {$DEFINE DELPHI} {$DEFINE DELPHICOMPILER} {$ENDIF ~BCB} {$ENDIF BORLAND} {------------------------------------------------------------------------------} { DELPHIX_UP from DELPHIX mappings } {------------------------------------------------------------------------------} {$IFDEF DELPHI17} {$DEFINE DELPHI17_UP} {$ENDIF} {$IFDEF DELPHI16} {$DEFINE DELPHI16_UP} {$ENDIF} {$IFDEF DELPHI15} {$DEFINE DELPHI15_UP} {$ENDIF} {$IFDEF DELPHI14} {$DEFINE DELPHI14_UP} {$ENDIF} {$IFDEF DELPHI12} {$DEFINE DELPHI12_UP} {$ENDIF} {$IFDEF DELPHI11} {$DEFINE DELPHI11_UP} {$ENDIF} {$IFDEF DELPHI10} {$DEFINE DELPHI10_UP} {$ENDIF} {$IFDEF DELPHI9} {$DEFINE DELPHI9_UP} {$ENDIF} {$IFDEF DELPHI8} {$DEFINE DELPHI8_UP} {$ENDIF} {$IFDEF DELPHI7} {$DEFINE DELPHI7_UP} {$ENDIF} {$IFDEF DELPHI6} {$DEFINE DELPHI6_UP} {$ENDIF} {$IFDEF DELPHI5} {$DEFINE DELPHI5_UP} {$ENDIF} {$IFDEF DELPHI4} {$DEFINE DELPHI4_UP} {$ENDIF} {$IFDEF DELPHI3} {$DEFINE DELPHI3_UP} {$ENDIF} {$IFDEF DELPHI2} {$DEFINE DELPHI2_UP} {$ENDIF} {$IFDEF DELPHI1} {$DEFINE DELPHI1_UP} {$ENDIF} {------------------------------------------------------------------------------} { DELPHIX_UP from DELPHIX_UP mappings } {------------------------------------------------------------------------------} {$IFDEF DELPHI17_UP} {$DEFINE DELPHIXE3_UP} // synonym to DELPHI17_UP {$DEFINE DELPHI16_UP} {$ENDIF} {$IFDEF DELPHI16_UP} {$DEFINE DELPHIXE2_UP} // synonym to DELPHI16_UP {$DEFINE DELPHI15_UP} {$ENDIF} {$IFDEF DELPHI15_UP} {$DEFINE DELPHIXE_UP} // synonym to DELPHI15_UP {$DEFINE DELPHI14_UP} {$ENDIF} {$IFDEF DELPHI14_UP} {$DEFINE DELPHI2010_UP} // synonym to DELPHI14_UP {$DEFINE DELPHI12_UP} {$ENDIF} {$IFDEF DELPHI12_UP} {$DEFINE DELPHI2009_UP} // synonym to DELPHI12_UP {$DEFINE DELPHI11_UP} {$ENDIF} {$IFDEF DELPHI11_UP} {$DEFINE DELPHI2007_UP} // synonym to DELPHI11_UP {$DEFINE DELPHI10_UP} {$ENDIF} {$IFDEF DELPHI10_UP} {$DEFINE DELPHI2006_UP} // synonym to DELPHI10_UP {$DEFINE DELPHI9_UP} {$ENDIF} {$IFDEF DELPHI9_UP} {$DEFINE DELPHI2005_UP} // synonym to DELPHI9_UP {$DEFINE DELPHI8_UP} {$ENDIF} {$IFDEF DELPHI8_UP} {$DEFINE DELPHI7_UP} {$ENDIF} {$IFDEF DELPHI7_UP} {$DEFINE DELPHI6_UP} {$ENDIF} {$IFDEF DELPHI6_UP} {$DEFINE DELPHI5_UP} {$ENDIF} {$IFDEF DELPHI5_UP} {$DEFINE DELPHI4_UP} {$ENDIF} {$IFDEF DELPHI4_UP} {$DEFINE DELPHI3_UP} {$ENDIF} {$IFDEF DELPHI3_UP} {$DEFINE DELPHI2_UP} {$ENDIF} {$IFDEF DELPHI2_UP} {$DEFINE DELPHI1_UP} {$ENDIF} {------------------------------------------------------------------------------} { BCBX_UP from BCBX mappings } {------------------------------------------------------------------------------} {$IFDEF BCB17} {$DEFINE BCB17_UP} {$ENDIF} {$IFDEF BCB16} {$DEFINE BCB16_UP} {$ENDIF} {$IFDEF BCB15} {$DEFINE BCB15_UP} {$ENDIF} {$IFDEF BCB14} {$DEFINE BCB14_UP} {$ENDIF} {$IFDEF BCB12} {$DEFINE BCB12_UP} {$ENDIF} {$IFDEF BCB11} {$DEFINE BCB11_UP} {$ENDIF} {$IFDEF BCB10} {$DEFINE BCB10_UP} {$ENDIF} {$IFDEF BCB6} {$DEFINE BCB6_UP} {$ENDIF} {$IFDEF BCB5} {$DEFINE BCB5_UP} {$ENDIF} {$IFDEF BCB4} {$DEFINE BCB4_UP} {$ENDIF} {$IFDEF BCB3} {$DEFINE BCB3_UP} {$ENDIF} {$IFDEF BCB1} {$DEFINE BCB1_UP} {$ENDIF} {------------------------------------------------------------------------------} { BCBX_UP from BCBX_UP mappings } {------------------------------------------------------------------------------} {$IFDEF BCB17_UP} {$DEFINE BCB16_UP} {$ENDIF} {$IFDEF BCB16_UP} {$DEFINE BCB15_UP} {$ENDIF} {$IFDEF BCB15_UP} {$DEFINE BCB14_UP} {$ENDIF} {$IFDEF BCB14_UP} {$DEFINE BCB12_UP} {$ENDIF} {$IFDEF BCB12_UP} {$DEFINE BCB11_UP} {$ENDIF} {$IFDEF BCB11_UP} {$DEFINE BCB10_UP} {$ENDIF} {$IFDEF BCB10_UP} {$DEFINE BCB6_UP} {$ENDIF} {$IFDEF BCB6_UP} {$DEFINE BCB5_UP} {$ENDIF} {$IFDEF BCB5_UP} {$DEFINE BCB4_UP} {$ENDIF} {$IFDEF BCB4_UP} {$DEFINE BCB3_UP} {$ENDIF} {$IFDEF BCB3_UP} {$DEFINE BCB1_UP} {$ENDIF} {------------------------------------------------------------------------------} { BDSX_UP from BDSX mappings } {------------------------------------------------------------------------------} {$IFDEF BDS10} {$DEFINE BDS10_UP} {$ENDIF} {$IFDEF BDS9} {$DEFINE BDS9_UP} {$ENDIF} {$IFDEF BDS8} {$DEFINE BDS8_UP} {$ENDIF} {$IFDEF BDS7} {$DEFINE BDS7_UP} {$ENDIF} {$IFDEF BDS6} {$DEFINE BDS6_UP} {$ENDIF} {$IFDEF BDS5} {$DEFINE BDS5_UP} {$ENDIF} {$IFDEF BDS4} {$DEFINE BDS4_UP} {$ENDIF} {$IFDEF BDS3} {$DEFINE BDS3_UP} {$ENDIF} {$IFDEF BDS2} {$DEFINE BDS2_UP} {$ENDIF} {------------------------------------------------------------------------------} { BDSX_UP from BDSX_UP mappings } {------------------------------------------------------------------------------} {$IFDEF BDS10_UP} {$DEFINE BDS9_UP} {$ENDIF} {$IFDEF BDS9_UP} {$DEFINE BDS8_UP} {$ENDIF} {$IFDEF BDS8_UP} {$DEFINE BDS7_UP} {$ENDIF} {$IFDEF BDS7_UP} {$DEFINE BDS6_UP} {$ENDIF} {$IFDEF BDS6_UP} {$DEFINE BDS5_UP} {$ENDIF} {$IFDEF BDS5_UP} {$DEFINE BDS4_UP} {$ENDIF} {$IFDEF BDS4_UP} {$DEFINE BDS3_UP} {$ENDIF} {$IFDEF BDS3_UP} {$DEFINE BDS2_UP} {$ENDIF} {------------------------------------------------------------------------------} { DELPHICOMPILERX_UP from DELPHICOMPILERX mappings } {------------------------------------------------------------------------------} {$IFDEF DELPHICOMPILER17} {$DEFINE DELPHICOMPILER17_UP} {$ENDIF} {$IFDEF DELPHICOMPILER16} {$DEFINE DELPHICOMPILER16_UP} {$ENDIF} {$IFDEF DELPHICOMPILER15} {$DEFINE DELPHICOMPILER15_UP} {$ENDIF} {$IFDEF DELPHICOMPILER14} {$DEFINE DELPHICOMPILER14_UP} {$ENDIF} {$IFDEF DELPHICOMPILER12} {$DEFINE DELPHICOMPILER12_UP} {$ENDIF} {$IFDEF DELPHICOMPILER11} {$DEFINE DELPHICOMPILER11_UP} {$ENDIF} {$IFDEF DELPHICOMPILER10} {$DEFINE DELPHICOMPILER10_UP} {$ENDIF} {$IFDEF DELPHICOMPILER9} {$DEFINE DELPHICOMPILER9_UP} {$ENDIF} {$IFDEF DELPHICOMPILER8} {$DEFINE DELPHICOMPILER8_UP} {$ENDIF} {$IFDEF DELPHICOMPILER7} {$DEFINE DELPHICOMPILER7_UP} {$ENDIF} {$IFDEF DELPHICOMPILER6} {$DEFINE DELPHICOMPILER6_UP} {$ENDIF} {$IFDEF DELPHICOMPILER5} {$DEFINE DELPHICOMPILER5_UP} {$ENDIF} {$IFDEF DELPHICOMPILER4} {$DEFINE DELPHICOMPILER4_UP} {$ENDIF} {$IFDEF DELPHICOMPILER3} {$DEFINE DELPHICOMPILER3_UP} {$ENDIF} {$IFDEF DELPHICOMPILER2} {$DEFINE DELPHICOMPILER2_UP} {$ENDIF} {$IFDEF DELPHICOMPILER1} {$DEFINE DELPHICOMPILER1_UP} {$ENDIF} {------------------------------------------------------------------------------} { DELPHICOMPILERX_UP from DELPHICOMPILERX_UP mappings } {------------------------------------------------------------------------------} {$IFDEF DELPHICOMPILER17_UP} {$DEFINE DELPHICOMPILER16_UP} {$ENDIF} {$IFDEF DELPHICOMPILER16_UP} {$DEFINE DELPHICOMPILER15_UP} {$ENDIF} {$IFDEF DELPHICOMPILER15_UP} {$DEFINE DELPHICOMPILER14_UP} {$ENDIF} {$IFDEF DELPHICOMPILER14_UP} {$DEFINE DELPHICOMPILER12_UP} {$ENDIF} {$IFDEF DELPHICOMPILER12_UP} {$DEFINE DELPHICOMPILER11_UP} {$ENDIF} {$IFDEF DELPHICOMPILER11_UP} {$DEFINE DELPHICOMPILER10_UP} {$ENDIF} {$IFDEF DELPHICOMPILER10_UP} {$DEFINE DELPHICOMPILER9_UP} {$ENDIF} {$IFDEF DELPHICOMPILER9_UP} {$DEFINE DELPHICOMPILER8_UP} {$ENDIF} {$IFDEF DELPHICOMPILER8_UP} {$DEFINE DELPHICOMPILER7_UP} {$ENDIF} {$IFDEF DELPHICOMPILER8_UP} {$DEFINE DELPHICOMPILER7_UP} {$ENDIF} {$IFDEF DELPHICOMPILER7_UP} {$DEFINE DELPHICOMPILER6_UP} {$ENDIF} {$IFDEF DELPHICOMPILER6_UP} {$DEFINE DELPHICOMPILER5_UP} {$ENDIF} {$IFDEF DELPHICOMPILER5_UP} {$DEFINE DELPHICOMPILER4_UP} {$ENDIF} {$IFDEF DELPHICOMPILER4_UP} {$DEFINE DELPHICOMPILER3_UP} {$ENDIF} {$IFDEF DELPHICOMPILER3_UP} {$DEFINE DELPHICOMPILER2_UP} {$ENDIF} {$IFDEF DELPHICOMPILER2_UP} {$DEFINE DELPHICOMPILER1_UP} {$ENDIF} {------------------------------------------------------------------------------} { COMPILERX_UP from COMPILERX mappings } {------------------------------------------------------------------------------} {$IFDEF COMPILER17} {$DEFINE COMPILER17_UP} {$ENDIF} {$IFDEF COMPILER16} {$DEFINE COMPILER16_UP} {$ENDIF} {$IFDEF COMPILER15} {$DEFINE COMPILER15_UP} {$ENDIF} {$IFDEF COMPILER14} {$DEFINE COMPILER14_UP} {$ENDIF} {$IFDEF COMPILER12} {$DEFINE COMPILER12_UP} {$ENDIF} {$IFDEF COMPILER11} {$DEFINE COMPILER11_UP} {$ENDIF} {$IFDEF COMPILER10} {$DEFINE COMPILER10_UP} {$ENDIF} {$IFDEF COMPILER9} {$DEFINE COMPILER9_UP} {$ENDIF} {$IFDEF COMPILER8} {$DEFINE COMPILER8_UP} {$ENDIF} {$IFDEF COMPILER7} {$DEFINE COMPILER7_UP} {$ENDIF} {$IFDEF COMPILER6} {$DEFINE COMPILER6_UP} {$ENDIF} {$IFDEF COMPILER5} {$DEFINE COMPILER5_UP} {$ENDIF} {$IFDEF COMPILER4} {$DEFINE COMPILER4_UP} {$ENDIF} {$IFDEF COMPILER35} {$DEFINE COMPILER35_UP} {$ENDIF} {$IFDEF COMPILER3} {$DEFINE COMPILER3_UP} {$ENDIF} {$IFDEF COMPILER2} {$DEFINE COMPILER2_UP} {$ENDIF} {$IFDEF COMPILER1} {$DEFINE COMPILER1_UP} {$ENDIF} {------------------------------------------------------------------------------} { COMPILERX_UP from COMPILERX_UP mappings } {------------------------------------------------------------------------------} {$IFDEF COMPILER17_UP} {$DEFINE COMPILER16_UP} {$ENDIF} {$IFDEF COMPILER16_UP} {$DEFINE COMPILER15_UP} {$ENDIF} {$IFDEF COMPILER15_UP} {$DEFINE COMPILER14_UP} {$ENDIF} {$IFDEF COMPILER14_UP} {$DEFINE COMPILER12_UP} {$ENDIF} {$IFDEF COMPILER12_UP} {$DEFINE COMPILER11_UP} {$ENDIF} {$IFDEF COMPILER11_UP} {$DEFINE COMPILER10_UP} {$ENDIF} {$IFDEF COMPILER10_UP} {$DEFINE COMPILER9_UP} {$ENDIF} {$IFDEF COMPILER9_UP} {$DEFINE COMPILER8_UP} {$ENDIF} {$IFDEF COMPILER8_UP} {$DEFINE COMPILER7_UP} {$ENDIF} {$IFDEF COMPILER7_UP} {$DEFINE COMPILER6_UP} {$ENDIF} {$IFDEF COMPILER6_UP} {$DEFINE COMPILER5_UP} {$ENDIF} {$IFDEF COMPILER5_UP} {$DEFINE COMPILER4_UP} {$ENDIF} {$IFDEF COMPILER4_UP} {$DEFINE COMPILER35_UP} {$ENDIF} {$IFDEF COMPILER35_UP} {$DEFINE COMPILER3_UP} {$ENDIF} {$IFDEF COMPILER3_UP} {$DEFINE COMPILER2_UP} {$ENDIF} {$IFDEF COMPILER2_UP} {$DEFINE COMPILER1_UP} {$ENDIF} {------------------------------------------------------------------------------} { RTLX_UP from RTLX_UP mappings } {------------------------------------------------------------------------------} {$IFDEF RTL240_UP} {$DEFINE RTL230_UP} {$ENDIF} {$IFDEF RTL230_UP} {$DEFINE RTL220_UP} {$ENDIF} {$IFDEF RTL220_UP} {$DEFINE RTL210_UP} {$ENDIF} {$IFDEF RTL210_UP} {$DEFINE RTL200_UP} {$ENDIF} {$IFDEF RTL200_UP} {$DEFINE RTL190_UP} {$ENDIF} {$IFDEF RTL190_UP} {$DEFINE RTL185_UP} {$ENDIF} {$IFDEF RTL185_UP} {$DEFINE RTL180_UP} {$ENDIF} {$IFDEF RTL180_UP} {$DEFINE RTL170_UP} {$ENDIF} {$IFDEF RTL170_UP} {$DEFINE RTL160_UP} {$ENDIF} {$IFDEF RTL160_UP} {$DEFINE RTL150_UP} {$ENDIF} {$IFDEF RTL150_UP} {$DEFINE RTL145_UP} {$ENDIF} {$IFDEF RTL145_UP} {$DEFINE RTL142_UP} {$ENDIF} {$IFDEF RTL142_UP} {$DEFINE RTL140_UP} {$ENDIF} {$IFDEF RTL140_UP} {$DEFINE RTL130_UP} {$ENDIF} {$IFDEF RTL130_UP} {$DEFINE RTL125_UP} {$ENDIF} {$IFDEF RTL125_UP} {$DEFINE RTL120_UP} {$ENDIF} {$IFDEF RTL120_UP} {$DEFINE RTL110_UP} {$ENDIF} {$IFDEF RTL110_UP} {$DEFINE RTL100_UP} {$ENDIF} {$IFDEF RTL100_UP} {$DEFINE RTL93_UP} {$ENDIF} {$IFDEF RTL93_UP} {$DEFINE RTL90_UP} {$ENDIF} {$IFDEF RTL90_UP} {$DEFINE RTL80_UP} {$ENDIF} {------------------------------------------------------------------------------} { Check for CLR overrides of default detection } {------------------------------------------------------------------------------} {$IFDEF CLR} {$IFDEF FORCE_CLR10} {$DEFINE CLR10} {$UNDEF CLR11} {$UNDEF CLR20} {$ENDIF FORCE_CLR10} {$IFDEF FORCE_CLR11} {$UNDEF CLR10} {$DEFINE CLR11} {$UNDEF CLR20} {$ENDIF FORCE_CLR11} {$IFDEF FORCE_CLR20} {$UNDEF CLR10} {$UNDEF CLR11} {$DEFINE CLR20} {$ENDIF FORCE_CLR20} {$ENDIF CLR} {------------------------------------------------------------------------------} { CLRX from CLRX_UP mappings } {------------------------------------------------------------------------------} {$IFDEF CLR10} {$DEFINE CLR10_UP} {$ENDIF} {$IFDEF CLR11} {$DEFINE CLR11_UP} {$ENDIF} {$IFDEF CLR20} {$DEFINE CLR20_UP} {$ENDIF} {------------------------------------------------------------------------------} { CLRX_UP from CLRX_UP mappings } {------------------------------------------------------------------------------} {$IFDEF CLR20_UP} {$DEFINE CLR11_UP} {$ENDIF} {$IFDEF CLR11_UP} {$DEFINE CLR10_UP} {$ENDIF} {------------------------------------------------------------------------------} {$IFDEF DELPHICOMPILER} {$DEFINE DELPHILANGUAGE} {$ENDIF} {$IFDEF BCBCOMPILER} {$DEFINE DELPHILANGUAGE} {$ENDIF} {------------------------------------------------------------------------------} { KYLIXX_UP from KYLIXX mappings } {------------------------------------------------------------------------------} {$IFDEF KYLIX3} {$DEFINE KYLIX3_UP} {$ENDIF} {$IFDEF KYLIX2} {$DEFINE KYLIX2_UP} {$ENDIF} {$IFDEF KYLIX1} {$DEFINE KYLIX1_UP} {$ENDIF} {------------------------------------------------------------------------------} { KYLIXX_UP from KYLIXX_UP mappings } {------------------------------------------------------------------------------} {$IFDEF KYLIX3_UP} {$DEFINE KYLIX2_UP} {$ENDIF} {$IFDEF KYLIX2_UP} {$DEFINE KYLIX1_UP} {$ENDIF} {------------------------------------------------------------------------------} { Map COMPILERX_UP to friendly feature names } {------------------------------------------------------------------------------} {$IFDEF FPC} {$IFDEF VER1_0} Please use FPC 2.0 or higher to compile this. {$ELSE} {$DEFINE SUPPORTS_OUTPARAMS} {$DEFINE SUPPORTS_WIDECHAR} {$DEFINE SUPPORTS_WIDESTRING} {$IFDEF HASINTF} {$DEFINE SUPPORTS_INTERFACE} {$ENDIF} {$IFDEF HASVARIANT} {$DEFINE SUPPORTS_VARIANT} {$ENDIF} {$IFDEF FPC_HAS_TYPE_SINGLE} {$DEFINE SUPPORTS_SINGLE} {$ENDIF} {$IFDEF FPC_HAS_TYPE_DOUBLE} {$DEFINE SUPPORTS_DOUBLE} {$ENDIF} {$IFDEF FPC_HAS_TYPE_EXTENDED} {$DEFINE SUPPORTS_EXTENDED} {$ENDIF} {$IFDEF HASCURRENCY} {$DEFINE SUPPORTS_CURRENCY} {$ENDIF} {$DEFINE SUPPORTS_THREADVAR} {$DEFINE SUPPORTS_CONSTPARAMS} {$DEFINE SUPPORTS_LONGWORD} {$DEFINE SUPPORTS_INT64} {$DEFINE SUPPORTS_DYNAMICARRAYS} {$DEFINE SUPPORTS_DEFAULTPARAMS} {$DEFINE SUPPORTS_OVERLOAD} {$DEFINE ACCEPT_DEPRECATED} // 2.2 also gives warnings {$DEFINE ACCEPT_PLATFORM} // 2.2 also gives warnings {$DEFINE ACCEPT_LIBRARY} {$DEFINE SUPPORTS_EXTSYM} {$DEFINE SUPPORTS_NODEFINE} {$DEFINE SUPPORTS_CUSTOMVARIANTS} {$DEFINE SUPPORTS_VARARGS} {$DEFINE SUPPORTS_ENUMVALUE} {$IFDEF LINUX} {$DEFINE HAS_UNIT_LIBC} {$ENDIF LINUX} {$DEFINE HAS_UNIT_CONTNRS} {$DEFINE HAS_UNIT_TYPES} {$DEFINE HAS_UNIT_VARIANTS} {$DEFINE HAS_UNIT_STRUTILS} {$DEFINE HAS_UNIT_DATEUTILS} {$DEFINE HAS_UNIT_RTLCONSTS} {$DEFINE XPLATFORM_RTL} {$IFDEF VER2_2} {$DEFINE SUPPORTS_DISPINTERFACE} {$DEFINE SUPPORTS_IMPLEMENTS} {$DEFINE SUPPORTS_DISPID} {$ELSE} {$UNDEF SUPPORTS_DISPINTERFACE} {$UNDEF SUPPORTS_IMPLEMENTS} {$endif} {$UNDEF SUPPORTS_UNSAFE_WARNINGS} {$ENDIF} {$ENDIF FPC} {$IFDEF CLR} {$DEFINE SUPPORTS_UNICODE} {$ENDIF CLR} {$IFDEF COMPILER1_UP} {$DEFINE SUPPORTS_CONSTPARAMS} {$DEFINE SUPPORTS_SINGLE} {$DEFINE SUPPORTS_DOUBLE} {$DEFINE SUPPORTS_EXTENDED} {$DEFINE SUPPORTS_PACKAGES} {$ENDIF COMPILER1_UP} {$IFDEF COMPILER2_UP} {$DEFINE SUPPORTS_CURRENCY} {$DEFINE SUPPORTS_THREADVAR} {$DEFINE SUPPORTS_VARIANT} {$DEFINE SUPPORTS_WIDECHAR} {$ENDIF COMPILER2_UP} {$IFDEF COMPILER3_UP} {$DEFINE SUPPORTS_OUTPARAMS} {$DEFINE SUPPORTS_WIDESTRING} {$DEFINE SUPPORTS_INTERFACE} {$DEFINE SUPPORTS_DISPINTERFACE} {$DEFINE SUPPORTS_DISPID} {$DEFINE SUPPORTS_WEAKPACKAGEUNIT} {$ENDIF COMPILER3_UP} {$IFDEF COMPILER35_UP} {$DEFINE SUPPORTS_EXTSYM} {$DEFINE SUPPORTS_NODEFINE} {$ENDIF COMPILER35_UP} {$IFDEF COMPILER4_UP} {$DEFINE SUPPORTS_LONGWORD} {$DEFINE SUPPORTS_INT64} {$DEFINE SUPPORTS_DYNAMICARRAYS} {$DEFINE SUPPORTS_DEFAULTPARAMS} {$DEFINE SUPPORTS_OVERLOAD} {$DEFINE SUPPORTS_IMPLEMENTS} {$ENDIF COMPILER4_UP} {$IFDEF COMPILER6_UP} {$DEFINE SUPPORTS_DEPRECATED} {$DEFINE SUPPORTS_LIBRARY} {$DEFINE SUPPORTS_PLATFORM} {$DEFINE SUPPORTS_LOCAL} {$DEFINE SUPPORTS_SETPEFLAGS} {$DEFINE SUPPORTS_EXPERIMENTAL_WARNINGS} {$DEFINE ACCEPT_DEPRECATED} {$DEFINE ACCEPT_PLATFORM} {$DEFINE ACCEPT_LIBRARY} {$DEFINE SUPPORTS_DEPRECATED_WARNINGS} {$DEFINE SUPPORTS_LIBRARY_WARNINGS} {$DEFINE SUPPORTS_PLATFORM_WARNINGS} {$DEFINE SUPPORTS_CUSTOMVARIANTS} {$DEFINE SUPPORTS_VARARGS} {$DEFINE SUPPORTS_ENUMVALUE} {$DEFINE SUPPORTS_COMPILETIME_MESSAGES} {$ENDIF COMPILER6_UP} {$IFDEF COMPILER7_UP} {$DEFINE SUPPORTS_UNSAFE_WARNINGS} {$ENDIF COMPILER7_UP} {$IFDEF COMPILER9_UP} {$DEFINE SUPPORTS_FOR_IN} {$DEFINE SUPPORTS_INLINE} {$DEFINE SUPPORTS_NESTED_CONSTANTS} {$DEFINE SUPPORTS_NESTED_TYPES} {$DEFINE SUPPORTS_REGION} {$IFDEF CLR} {$DEFINE SUPPORTS_ENHANCED_RECORDS} {$DEFINE SUPPORTS_CLASS_FIELDS} {$DEFINE SUPPORTS_CLASS_HELPERS} {$DEFINE SUPPORTS_CLASS_OPERATORS} {$DEFINE SUPPORTS_STRICT} {$DEFINE SUPPORTS_STATIC} {$DEFINE SUPPORTS_FINAL} {$ENDIF CLR} {$ENDIF COMPILER9_UP} {$IFDEF COMPILER10_UP} {$DEFINE SUPPORTS_ENHANCED_RECORDS} {$DEFINE SUPPORTS_CLASS_FIELDS} {$DEFINE SUPPORTS_CLASS_HELPERS} {$DEFINE SUPPORTS_CLASS_OPERATORS} {$DEFINE SUPPORTS_STRICT} {$DEFINE SUPPORTS_STATIC} {$DEFINE SUPPORTS_FINAL} {$DEFINE SUPPORTS_METHODINFO} {$ENDIF COMPILER10_UP} {$IFDEF COMPILER11_UP} {$IFDEF CLR} {$DEFINE SUPPORTS_GENERICS} {$DEFINE SUPPORTS_DEPRECATED_DETAILS} {$ENDIF CLR} {$ENDIF COMPILER11_UP} {$IFDEF COMPILER12_UP} {$DEFINE SUPPORTS_GENERICS} {$DEFINE SUPPORTS_DEPRECATED_DETAILS} {$DEFINE SUPPORTS_INT_ALIASES} {$IFNDEF CLR} {$DEFINE SUPPORTS_UNICODE} {$DEFINE SUPPORTS_UNICODE_STRING} {$ENDIF CLR} {$ENDIF COMPILER12_UP} {$IFDEF COMPILER14_UP} {$DEFINE SUPPORTS_CLASS_CTORDTORS} {$DEFINE HAS_UNIT_RTTI} {$DEFINE SUPPORTS_CAST_INTERFACE_TO_OBJ} {$DEFINE SUPPORTS_DELAYED_LOADING} {$ENDIF COMPILER14_UP} {$IFDEF COMPILER16_UP} {$DEFINE USE_64BIT_TYPES} {$ENDIF COMPILER16_UP} {$IFDEF RTL130_UP} {$DEFINE HAS_UNIT_CONTNRS} {$ENDIF RTL130_UP} {$IFDEF RTL140_UP} {$IFDEF LINUX} {$DEFINE HAS_UNIT_LIBC} {$ENDIF LINUX} {$DEFINE HAS_UNIT_RTLCONSTS} {$DEFINE HAS_UNIT_TYPES} {$DEFINE HAS_UNIT_VARIANTS} {$DEFINE HAS_UNIT_STRUTILS} {$DEFINE HAS_UNIT_DATEUTILS} {$DEFINE XPLATFORM_RTL} {$ENDIF RTL140_UP} {$IFDEF RTL170_UP} {$DEFINE HAS_UNIT_HTTPPROD} {$ENDIF RTL170_UP} {$IFDEF RTL185_UP} {$DEFINE HAS_UNIT_GIFIMG} {$ENDIF RTL185_UP} {$IFDEF RTL200_UP} {$DEFINE HAS_UNIT_ANSISTRINGS} {$DEFINE HAS_UNIT_PNGIMAGE} {$DEFINE HAS_UNIT_CHARACTER} {$ENDIF RTL200_UP} {$IFDEF RTL220_UP} {$DEFINE SUPPORTS_UINT64} {$DEFINE HAS_UNIT_REGULAREXPRESSIONSAPI} {$ENDIF RTL220_UP} {$IFDEF RTL230_UP} {$DEFINE HAS_UNITSCOPE} {$DEFINE HAS_UNIT_SYSTEM_UITYPES} {$ENDIF RTL230_UP} {$IFDEF RTL240_UP} {$DEFINE HAS_UNIT_SYSTEM_ACTIONS} {$ENDIF RTL240_UP} {------------------------------------------------------------------------------} { Cross-platform related defines } {------------------------------------------------------------------------------} {$IFNDEF CPUASM} {$DEFINE PUREPASCAL} {$ENDIF ~CPUASM} {$IFDEF WIN32} {$DEFINE MSWINDOWS} // predefined for D6+/BCB6+ {$DEFINE Win32API} {$ENDIF} {$IFDEF DELPHILANGUAGE} {$IFDEF LINUX} {$DEFINE UNIX} {$ENDIF} {$IFNDEF CONSOLE} {$IFDEF LINUX} {$DEFINE VisualCLX} {$ENDIF} {$IFNDEF VisualCLX} {$DEFINE VCL} {$ENDIF} {$ENDIF ~CONSOLE} {$ENDIF DELPHILANGUAGE} {------------------------------------------------------------------------------} { Compiler settings } {------------------------------------------------------------------------------} {$IFOPT A+} {$DEFINE ALIGN_ON} {$ENDIF} {$IFOPT B+} {$DEFINE BOOLEVAL_ON} {$ENDIF} {$IFDEF COMPILER2_UP} {$IFOPT C+} {$DEFINE ASSERTIONS_ON} {$ENDIF} {$ENDIF} {$IFOPT D+} {$DEFINE DEBUGINFO_ON} {$ENDIF} {$IFOPT G+} {$DEFINE IMPORTEDDATA_ON} {$ENDIF} {$IFDEF COMPILER2_UP} {$IFOPT H+} {$DEFINE LONGSTRINGS_ON} {$ENDIF} {$ENDIF} // Hints {$IFOPT I+} {$DEFINE IOCHECKS_ON} {$ENDIF} {$IFDEF COMPILER2_UP} {$IFOPT J+} {$DEFINE WRITEABLECONST_ON} {$ENDIF} {$ENDIF} {$IFOPT L+} {$DEFINE LOCALSYMBOLS} {$DEFINE LOCALSYMBOLS_ON} {$ENDIF} {$IFOPT M+} {$DEFINE TYPEINFO_ON} {$ENDIF} {$IFOPT O+} {$DEFINE OPTIMIZATION_ON} {$ENDIF} {$IFOPT P+} {$DEFINE OPENSTRINGS_ON} {$ENDIF} {$IFOPT Q+} {$DEFINE OVERFLOWCHECKS_ON} {$ENDIF} {$IFOPT R+} {$DEFINE RANGECHECKS_ON} {$ENDIF} // Real compatibility {$IFOPT T+} {$DEFINE TYPEDADDRESS_ON} {$ENDIF} {$IFOPT U+} {$DEFINE SAFEDIVIDE_ON} {$ENDIF} {$IFOPT V+} {$DEFINE VARSTRINGCHECKS_ON} {$ENDIF} {$IFOPT W+} {$DEFINE STACKFRAMES_ON} {$ENDIF} // Warnings {$IFOPT X+} {$DEFINE EXTENDEDSYNTAX_ON} {$ENDIF} // for Delphi/BCB trial versions remove the point from the line below {.$UNDEF SUPPORTS_WEAKPACKAGEUNIT} {$ENDIF ~JEDI_INC} ./vsop.pas0000644000175000017500000156057414576573021012665 0ustar anthonyanthonyunit vsop; {$MODE Delphi} {$i ah_def.inc } { Calculates the planetary heliocentric coordinates according to the VSOP87 theory. Calculations according to chapter 32 (31) of Meeus. } (* $define meeus *) { Only use the accuracy as in the Meeus book } (*$ifdef delphi_1 *) (*$define meeus *) { Otherwise the code segment will be too small } (*$endif *) (*@/// interface *) interface (*@/// uses *) uses AH_MATH, sysutils; (*@\\\000000020B*) type (*@/// TVSOPEntry=record *) TVSOPEntry=record A,B,C: extended; end; (*@\\\*) TVSOPCalcFunc = function (nr,index: integer):TVSOPEntry of object; (*@/// TVSOP=class(TObject) *) TVSOP=class(TObject) protected FDate: TDateTime; function LongitudeFactor(nr,index: integer):TVSOPEntry; VIRTUAL; abstract; function LatitudeFactor(nr,index: integer):TVSOPEntry; VIRTUAL; abstract; function RadiusFactor(nr,index: integer):TVSOPEntry; VIRTUAL; abstract; function CalcLongitude:extended; function CalcLatitude:extended; function CalcRadius:extended; function Calc(factor: TVSOPCalcFunc):extended; procedure SetDate(value: TDateTime); function Tau:extended; public procedure DynamicToFK5(var longitude,latitude: extended); property Longitude:extended read CalcLongitude; property Latitude:extended read CalcLatitude; property Radius:extended read CalcRadius; property Date:TDateTime write SetDate; end; (*@\\\0000000E01*) TCVSOP=class of TVSOP; (*@/// TVSOPEarth=class(TVSOP) *) TVSOPEarth=class(TVSOP) protected function LongitudeFactor(nr,index: integer):TVSOPEntry; override; function LatitudeFactor(nr,index: integer):TVSOPEntry; override; function RadiusFactor(nr,index: integer):TVSOPEntry; override; end; (*@\\\0000000607*) (*@/// TVSOPJupiter=class(TVSOP) *) TVSOPJupiter=class(TVSOP) protected function LongitudeFactor(nr,index: integer):TVSOPEntry; override; function LatitudeFactor(nr,index: integer):TVSOPEntry; override; function RadiusFactor(nr,index: integer):TVSOPEntry; override; end; (*@\\\0000000607*) procedure earth_coord(date:TdateTime; var l,b,r: extended); procedure jupiter_coord(date:TdateTime; var l,b,r: extended); (*@\\\0000000301*) (*@/// implementation *) implementation uses MOON; (*$ifdef delphi_ge_3 *) var (*$else *) const (*$endif *) datetime_2000_01_01: extended = 0; (*@/// procedure calc_coord(date: TDateTime; obj_class: TCVSOP; var l,b,r: extended); *) procedure calc_coord(date: TDateTime; obj_class: TCVSOP; var l,b,r: extended); var obj: TVSOP; begin obj:=NIL; try obj:=obj_class.Create; obj.date:=date; r:=obj.radius; l:=obj.longitude; b:=obj.latitude; obj.DynamicToFK5(l,b); finally obj.free; end; l:=put_in_360(rad2deg(l)); (* rad -> degree *) b:=rad2deg(b); end; (*@\\\0000001111*) (*@/// procedure earth_coord(date:TdateTime; var l,b,r: extended); *) procedure earth_coord(date:TdateTime; var l,b,r: extended); begin calc_coord(date,TVSOPEarth,l,b,r); end; (*@\\\0000000116*) (*@/// procedure jupiter_coord(date:TdateTime; var l,b,r: extended); *) procedure jupiter_coord(date:TdateTime; var l,b,r: extended); begin calc_coord(date,TVSOPJupiter,l,b,r); end; (*@\\\000000031C*) (*@/// class TVSOP *) (*@/// function TVSOP.CalcLongitude:extended; *) function TVSOP.CalcLongitude:extended; begin result:=calc(Longitudefactor); end; (*@\\\0000000401*) (*@/// function TVSOP.CalcLatitude:extended; *) function TVSOP.CalcLatitude:extended; begin result:=calc(Latitudefactor); end; (*@\\\000000031F*) (*@/// function TVSOP.CalcRadius:extended; *) function TVSOP.CalcRadius:extended; begin result:=calc(radiusfactor); end; (*@\\\000000031D*) (*@/// procedure TVSOP.SetDate(value: TDateTime); *) procedure TVSOP.SetDate(value: TDateTime); begin FDate:=value; end; (*@\\\*) (*@/// function TVSOP.Tau:extended; *) function TVSOP.Tau:extended; begin result:=(FDate-datetime_2000_01_01-0.5)/365250.0; end; (*@\\\0000000301*) (*@/// function TVSOP.Calc(factor: TVSOPCalcFunc):extended; *) function TVSOP.Calc(factor: TVSOPCalcFunc):extended; var t: extended; current: extended; r: array[0..5] of extended; i,j: integer; begin t:=Tau; for j:=0 to 5 do begin r[j]:=0; i:=0; repeat WITH Factor(i,j) do current:=a*cos(b+c*t); r[j]:=r[j]+current; inc(i); until current=0; end; result:=(r[0]+t*(r[1]+t*(r[2]+t*(r[3]+t*(r[4]+t*r[5])))))*1e-8; end; (*@\\\0000000E17*) (*@/// procedure TVSOP.DynamicToFK5(var longitude,latitude: extended); *) procedure TVSOP.DynamicToFK5(var longitude,latitude: extended); var lprime,t: extended; delta_l, delta_b: extended; begin t:=10*tau; lprime:=longitude+deg2rad(-1.397-0.00031*t)*t; delta_l:=-deg2rad(0.09033/3600)+deg2rad(0.03916/3600)*(cos(lprime)+sin(lprime))*tan(latitude); delta_b:=deg2rad(0.03916/3600)*(cos(lprime)-sin(lprime)); longitude:=longitude+delta_l; latitude:=latitude+delta_b; end; (*@\\\*) (*@\\\0000000226*) (*@/// class TVSOPEarth *) (*@/// function TVSOPEarth.RadiusFactor(nr,index: integer):TVSOPEntry; *) function TVSOPEarth.RadiusFactor(nr,index: integer):TVSOPEntry; const (*@/// vsop87_ear_r0:array[0..525,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_ear_r0:array[0.. 39,0..2] of extended = ( (*$else *) vsop87_ear_r0:array[0..525,0..2] of extended = ( (*$endif *) { 4330 1 } ( 100013988.799, 0.00000000000, 0.00000000000 ), { 4330 2 } ( 1670699.626, 3.09846350771, 6283.07584999140 ), { 4330 3 } ( 13956.023, 3.05524609620, 12566.15169998280 ), { 4330 4 } ( 3083.720, 5.19846674381, 77713.77146812050 ), { 4330 5 } ( 1628.461, 1.17387749012, 5753.38488489680 ), { 4330 6 } ( 1575.568, 2.84685245825, 7860.41939243920 ), { 4330 7 } ( 924.799, 5.45292234084, 11506.76976979360 ), { 4330 8 } ( 542.444, 4.56409149777, 3930.20969621960 ), { 4330 9 } ( 472.110, 3.66100022149, 5884.92684658320 ), { 4330 10 } ( 328.780, 5.89983646482, 5223.69391980220 ), { 4330 11 } ( 345.983, 0.96368617687, 5507.55323866740 ), { 4330 12 } ( 306.784, 0.29867139512, 5573.14280143310 ), { 4330 13 } ( 174.844, 3.01193636534, 18849.22754997420 ), { 4330 14 } ( 243.189, 4.27349536153, 11790.62908865880 ), { 4330 15 } ( 211.829, 5.84714540314, 1577.34354244780 ), { 4330 16 } ( 185.752, 5.02194447178, 10977.07880469900 ), { 4330 17 } ( 109.835, 5.05510636285, 5486.77784317500 ), { 4330 18 } ( 98.316, 0.88681311277, 6069.77675455340 ), { 4330 19 } ( 86.499, 5.68959778254, 15720.83878487840 ), { 4330 20 } ( 85.825, 1.27083733351, 161000.68573767410 ), { 4330 21 } ( 62.916, 0.92177108832, 529.69096509460 ), { 4330 22 } ( 57.056, 2.01374292014, 83996.84731811189 ), { 4330 23 } ( 64.903, 0.27250613787, 17260.15465469040 ), { 4330 24 } ( 49.384, 3.24501240359, 2544.31441988340 ), { 4330 25 } ( 55.736, 5.24159798933, 71430.69561812909 ), { 4330 26 } ( 42.515, 6.01110242003, 6275.96230299060 ), { 4330 27 } ( 46.963, 2.57805070386, 775.52261132400 ), { 4330 28 } ( 38.968, 5.36071738169, 4694.00295470760 ), { 4330 29 } ( 44.661, 5.53715807302, 9437.76293488700 ), { 4330 30 } ( 35.660, 1.67468058995, 12036.46073488820 ), { 4330 31 } ( 31.921, 0.18368229781, 5088.62883976680 ), { 4330 32 } ( 31.846, 1.77775642085, 398.14900340820 ), { 4330 33 } ( 33.193, 0.24370300098, 7084.89678111520 ), { 4330 34 } ( 38.245, 2.39255343974, 8827.39026987480 ), { 4330 35 } ( 28.464, 1.21344868176, 6286.59896834040 ), { 4330 36 } ( 37.490, 0.82952922332, 19651.04848109800 ), { 4330 37 } ( 36.957, 4.90107591914, 12139.55350910680 ), { 4330 38 } ( 34.537, 1.84270693282, 2942.46342329160 ), { 4330 39 } ( 26.275, 4.58896850401, 10447.38783960440 ), (*$ifndef meeus *) { 4330 40 } ( 24.596, 3.78660875483, 8429.24126646660 ), { 4330 41 } ( 23.587, 0.26866117066, 796.29800681640 ), (*$endif *) { 4330 42 } ( 27.793, 1.89934330904, 6279.55273164240 ) (*$ifndef meeus *) , { 4330 43 } ( 23.927, 4.99598548138, 5856.47765911540 ), { 4330 44 } ( 20.349, 4.65267995431, 2146.16541647520 ), { 4330 45 } ( 23.287, 2.80783650928, 14143.49524243060 ), { 4330 46 } ( 22.103, 1.95004702988, 3154.68708489560 ), { 4330 47 } ( 19.506, 5.38227371393, 2352.86615377180 ), { 4330 48 } ( 17.958, 0.19871379385, 6812.76681508600 ), { 4330 49 } ( 17.174, 4.43315560735, 10213.28554621100 ), { 4330 50 } ( 16.190, 5.23160507859, 17789.84561978500 ), { 4330 51 } ( 17.314, 6.15200787916, 16730.46368959580 ), { 4330 52 } ( 13.814, 5.18962074032, 8031.09226305840 ), { 4330 53 } ( 18.833, 0.67306674027, 149854.40013480789 ), { 4330 54 } ( 18.331, 2.25348733734, 23581.25817731760 ), { 4330 55 } ( 13.641, 3.68516118804, 4705.73230754360 ), { 4330 56 } ( 13.139, 0.65289581324, 13367.97263110660 ), { 4330 57 } ( 10.414, 4.33285688538, 11769.85369316640 ), { 4330 58 } ( 9.978, 4.20126336355, 6309.37416979120 ), { 4330 59 } ( 10.169, 1.59390681369, 4690.47983635860 ), { 4330 60 } ( 7.564, 2.62560597390, 6256.77753019160 ), { 4330 61 } ( 9.661, 3.67586791220, 27511.46787353720 ), { 4330 62 } ( 6.743, 0.56270332741, 3340.61242669980 ), { 4330 63 } ( 8.743, 6.06359123461, 1748.01641306700 ), { 4330 64 } ( 7.786, 3.67371235637, 12168.00269657460 ), { 4330 65 } ( 6.633, 5.66149277792, 11371.70468975820 ), { 4330 66 } ( 7.712, 0.31242577789, 7632.94325965020 ), { 4330 67 } ( 6.592, 3.13576266188, 801.82093112380 ), { 4330 68 } ( 7.460, 5.64757188143, 11926.25441366880 ), { 4330 69 } ( 6.933, 2.92384586400, 6681.22485339960 ), { 4330 70 } ( 6.802, 1.42329806420, 23013.53953958720 ), { 4330 71 } ( 6.115, 5.13393615454, 1194.44701022460 ), { 4330 72 } ( 6.477, 2.64986648492, 19804.82729158280 ), { 4330 73 } ( 5.233, 4.62434053374, 6438.49624942560 ), { 4330 74 } ( 6.147, 3.02863936662, 233141.31440436149 ), { 4330 75 } ( 4.608, 1.72194702724, 7234.79425624200 ), { 4330 76 } ( 4.221, 1.55697533729, 7238.67559160000 ), { 4330 77 } ( 5.314, 2.40716580847, 11499.65622279280 ), { 4330 78 } ( 5.128, 5.32398965690, 11513.88331679440 ), { 4330 79 } ( 4.770, 0.25554312006, 11856.21865142450 ), { 4330 80 } ( 5.519, 2.09089154502, 17298.18232732620 ), { 4330 81 } ( 5.625, 4.34052903053, 90955.55169449610 ), { 4330 82 } ( 4.578, 4.46569641570, 5746.27133789600 ), { 4330 83 } ( 3.788, 4.90729383510, 4164.31198961300 ), { 4330 84 } ( 5.337, 5.09957905104, 31441.67756975680 ), { 4330 85 } ( 3.967, 1.20054555174, 1349.86740965880 ), { 4330 86 } ( 4.008, 3.03007204392, 1059.38193018920 ), { 4330 87 } ( 3.476, 0.76080277030, 10973.55568635000 ), { 4330 88 } ( 4.232, 1.05485713117, 5760.49843189760 ), { 4330 89 } ( 4.582, 3.76570026763, 6386.16862421000 ), { 4330 90 } ( 3.335, 3.13829943354, 6836.64525283380 ), { 4330 91 } ( 3.418, 3.00072390334, 4292.33083295040 ), { 4330 92 } ( 3.598, 5.70718084323, 5643.17856367740 ), { 4330 93 } ( 3.237, 4.16448773994, 9917.69687450980 ), { 4330 94 } ( 4.154, 2.59941292162, 7058.59846131540 ), { 4330 95 } ( 3.362, 4.54577697964, 4732.03062734340 ), { 4330 96 } ( 2.978, 1.30561268820, 6283.14316029419 ), { 4330 97 } ( 2.765, 0.51311975679, 26.29831979980 ), { 4330 98 } ( 2.802, 5.66263240521, 8635.94200376320 ), { 4330 99 } ( 2.927, 5.73787481548, 16200.77272450120 ), { 4330 100 } ( 3.164, 1.69140262657, 11015.10647733480 ), { 4330 101 } ( 2.598, 2.96244118586, 25132.30339996560 ), { 4330 102 } ( 3.519, 3.62639325753, 244287.60000722769 ), { 4330 103 } ( 2.676, 4.20725700850, 18073.70493865020 ), { 4330 104 } ( 2.978, 1.74971565805, 6283.00853968860 ), { 4330 105 } ( 2.287, 1.06975704977, 14314.16811304980 ), { 4330 106 } ( 2.863, 5.92838131397, 14712.31711645800 ), { 4330 107 } ( 3.071, 0.23793217002, 35371.88726597640 ), { 4330 108 } ( 2.656, 0.89959301780, 12352.85260454480 ), { 4330 109 } ( 2.415, 2.79975176257, 709.93304855830 ), { 4330 110 } ( 2.814, 3.51488206882, 21228.39202354580 ), { 4330 111 } ( 1.977, 2.61358297550, 951.71840625060 ), { 4330 112 } ( 2.548, 2.47684686575, 6208.29425142410 ), { 4330 113 } ( 1.999, 0.56090388160, 7079.37385680780 ), { 4330 114 } ( 2.305, 1.05376461628, 22483.84857449259 ), { 4330 115 } ( 1.855, 2.86090681163, 5216.58037280140 ), { 4330 116 } ( 2.157, 1.31396741861, 154717.60988768269 ), { 4330 117 } ( 1.970, 4.36929875289, 167283.76158766549 ), { 4330 118 } ( 1.635, 5.85571606764, 10984.19235169980 ), { 4330 119 } ( 1.754, 2.14452408833, 6290.18939699220 ), { 4330 120 } ( 2.154, 6.03828341543, 10873.98603048040 ), { 4330 121 } ( 1.714, 3.70157691113, 1592.59601363280 ), { 4330 122 } ( 1.541, 6.21598380732, 23543.23050468179 ), { 4330 123 } ( 1.611, 1.99824499377, 10969.96525769820 ), { 4330 124 } ( 1.712, 1.34295663542, 3128.38876509580 ), { 4330 125 } ( 1.642, 5.55026665339, 6496.37494542940 ), { 4330 126 } ( 1.502, 5.43948825854, 155.42039943420 ), { 4330 127 } ( 1.827, 5.91227480261, 3738.76143010800 ), { 4330 128 } ( 1.726, 2.16764983583, 10575.40668294180 ), { 4330 129 } ( 1.532, 5.35683107070, 13521.75144159140 ), { 4330 130 } ( 1.829, 1.66006148731, 39302.09696219600 ), { 4330 131 } ( 1.605, 1.90928637633, 6133.51265285680 ), { 4330 132 } ( 1.282, 2.46014880418, 13916.01910964160 ), { 4330 133 } ( 1.211, 4.41360631550, 3894.18182954220 ), { 4330 134 } ( 1.394, 1.77801929354, 9225.53927328300 ), { 4330 135 } ( 1.571, 4.95512957592, 25158.60171976540 ), { 4330 136 } ( 1.205, 1.19212540615, 3.52311834900 ), { 4330 137 } ( 1.132, 2.69830084955, 6040.34724601740 ), { 4330 138 } ( 1.504, 5.77002730341, 18209.33026366019 ), { 4330 139 } ( 1.393, 1.62621805428, 5120.60114558360 ), { 4330 140 } ( 1.077, 2.93931554233, 17256.63153634140 ), { 4330 141 } ( 1.232, 0.71655165307, 143571.32428481648 ), { 4330 142 } ( 1.087, 0.99769687939, 955.59974160860 ), { 4330 143 } ( 1.068, 5.28472576231, 65147.61976813770 ), { 4330 144 } ( 0.980, 5.10949204607, 6172.86952877200 ), { 4330 145 } ( 1.169, 3.11664290862, 14945.31617355440 ), { 4330 146 } ( 1.202, 4.02992510402, 553.56940284240 ), { 4330 147 } ( 0.979, 2.00000879212, 15110.46611986620 ), { 4330 148 } ( 0.962, 4.02380771400, 6282.09552892320 ), { 4330 149 } ( 0.999, 3.62643002790, 6262.30045449900 ), { 4330 150 } ( 1.030, 5.84989900289, 213.29909543800 ), { 4330 151 } ( 1.014, 2.84221578218, 8662.24032356300 ), { 4330 152 } ( 1.185, 1.51330541132, 17654.78053974960 ), { 4330 153 } ( 0.967, 2.67081017562, 5650.29211067820 ), { 4330 154 } ( 1.222, 2.65423784904, 88860.05707098669 ), { 4330 155 } ( 0.981, 2.36370360283, 6206.80977871580 ), { 4330 156 } ( 1.033, 0.13874927606, 11712.95531823080 ), { 4330 157 } ( 1.103, 3.08477302937, 43232.30665841560 ), { 4330 158 } ( 0.781, 2.53372735932, 16496.36139620240 ), { 4330 159 } ( 1.019, 3.04569392376, 6037.24420376200 ), { 4330 160 } ( 0.795, 5.80662989111, 5230.80746680300 ), { 4330 161 } ( 0.813, 3.57710279439, 10177.25767953360 ), { 4330 162 } ( 0.962, 5.31470594766, 6284.05617105960 ), { 4330 163 } ( 0.721, 5.96264301567, 12559.03815298200 ), { 4330 164 } ( 0.966, 2.74714939953, 6244.94281435360 ), { 4330 165 } ( 0.921, 0.10155275926, 29088.81141598500 ), { 4330 166 } ( 0.692, 3.89764447548, 1589.07289528380 ), { 4330 167 } ( 0.719, 5.91791450402, 4136.91043351620 ), { 4330 168 } ( 0.772, 4.05505682353, 6127.65545055720 ), { 4330 169 } ( 0.712, 5.49291532439, 22003.91463486980 ), { 4330 170 } ( 0.672, 1.60700490811, 11087.28512591840 ), { 4330 171 } ( 0.690, 4.50539825563, 426.59819087600 ), { 4330 172 } ( 0.854, 3.26104981596, 20426.57109242200 ), { 4330 173 } ( 0.656, 4.32410182940, 16858.48253293320 ), { 4330 174 } ( 0.840, 2.59572585222, 28766.92442448400 ), { 4330 175 } ( 0.692, 0.61650089011, 11403.67699557500 ), { 4330 176 } ( 0.700, 3.40901167143, 7.11354700080 ), { 4330 177 } ( 0.726, 0.04243053594, 5481.25491886760 ), { 4330 178 } ( 0.557, 4.78317696534, 20199.09495963300 ), { 4330 179 } ( 0.649, 1.04027912958, 6062.66320755260 ), { 4330 180 } ( 0.633, 5.70229959167, 45892.73043315699 ), { 4330 181 } ( 0.592, 6.11836729658, 9623.68827669120 ), { 4330 182 } ( 0.523, 3.62840021266, 5333.90024102160 ), { 4330 183 } ( 0.604, 5.57734696185, 10344.29506538580 ), { 4330 184 } ( 0.496, 2.21023499449, 1990.74501704100 ), { 4330 185 } ( 0.691, 1.96071732602, 12416.58850284820 ), { 4330 186 } ( 0.640, 1.59074172032, 18319.53658487960 ), { 4330 187 } ( 0.625, 3.82362791378, 13517.87010623340 ), { 4330 188 } ( 0.663, 5.08444996779, 283.85931886520 ), { 4330 189 } ( 0.475, 1.17025894287, 12569.67481833180 ), { 4330 190 } ( 0.664, 4.50029469969, 47162.51635463520 ), { 4330 191 } ( 0.569, 0.16310365162, 17267.26820169119 ), { 4330 192 } ( 0.568, 3.86100969474, 6076.89030155420 ), { 4330 193 } ( 0.539, 4.83282276086, 18422.62935909819 ), { 4330 194 } ( 0.466, 0.75872342878, 7342.45778018060 ), { 4330 195 } ( 0.541, 3.07212190507, 226858.23855437008 ), { 4330 196 } ( 0.458, 0.26774483096, 4590.91018048900 ), { 4330 197 } ( 0.610, 1.53597051291, 33019.02111220460 ), { 4330 198 } ( 0.617, 2.62356328726, 11190.37790013700 ), { 4330 199 } ( 0.548, 4.55798855791, 18875.52586977400 ), { 4330 200 } ( 0.633, 4.60110281228, 66567.48586525429 ), { 4330 201 } ( 0.596, 5.78202396722, 632.78373931320 ), { 4330 202 } ( 0.533, 5.01786882904, 12132.43996210600 ), { 4330 203 } ( 0.603, 5.38458554802, 316428.22867391503 ), { 4330 204 } ( 0.469, 0.59168241917, 21954.15760939799 ), { 4330 205 } ( 0.548, 3.50613163558, 17253.04110768959 ), { 4330 206 } ( 0.502, 0.98804327589, 11609.86254401220 ), { 4330 207 } ( 0.568, 1.98497313089, 7668.63742494250 ), { 4330 208 } ( 0.482, 1.62141803864, 12146.66705610760 ), { 4330 209 } ( 0.391, 3.68718382989, 18052.92954315780 ), { 4330 210 } ( 0.457, 3.77205737340, 156137.47598479928 ), { 4330 211 } ( 0.401, 5.28260651958, 15671.08175940660 ), { 4330 212 } ( 0.469, 1.80963184268, 12562.62858163380 ), { 4330 213 } ( 0.508, 3.36399024699, 20597.24396304120 ), { 4330 214 } ( 0.450, 5.66054299250, 10454.50138660520 ), { 4330 215 } ( 0.375, 4.98534633105, 9779.10867612540 ), { 4330 216 } ( 0.523, 0.97215560834, 155427.54293624099 ), { 4330 217 } ( 0.403, 5.13939866506, 1551.04522264800 ), { 4330 218 } ( 0.372, 3.69883738807, 9388.00590941520 ), { 4330 219 } ( 0.367, 4.43875659716, 4535.05943692440 ), { 4330 220 } ( 0.406, 4.20863156600, 12592.45001978260 ), { 4330 221 } ( 0.360, 2.53924644657, 242.72860397400 ), { 4330 222 } ( 0.471, 4.61907324819, 5436.99301524020 ), { 4330 223 } ( 0.441, 5.83872966262, 3496.03282613400 ), { 4330 224 } ( 0.385, 4.94496680973, 24356.78078864160 ), { 4330 225 } ( 0.349, 6.15018231784, 19800.94595622480 ), { 4330 226 } ( 0.355, 0.21895678106, 5429.87946823940 ), { 4330 227 } ( 0.344, 5.62993724928, 2379.16447357160 ), { 4330 228 } ( 0.380, 2.72105213143, 11933.36796066960 ), { 4330 229 } ( 0.432, 0.24221790536, 17996.03116822220 ), { 4330 230 } ( 0.378, 5.22517556974, 7477.52286021600 ), { 4330 231 } ( 0.337, 5.10888041439, 5849.36411211460 ), { 4330 232 } ( 0.315, 0.57827745123, 10557.59416082380 ), { 4330 233 } ( 0.318, 4.49953141399, 3634.62102451840 ), { 4330 234 } ( 0.323, 1.54274281393, 10440.27429260360 ), { 4330 235 } ( 0.309, 5.76839284397, 20.77539549240 ), { 4330 236 } ( 0.301, 2.34727604008, 4686.88940770680 ), { 4330 237 } ( 0.414, 5.93237602310, 51092.72605085480 ), { 4330 238 } ( 0.361, 2.16398609550, 28237.23345938940 ), { 4330 239 } ( 0.288, 0.18376252189, 13095.84266507740 ), { 4330 240 } ( 0.277, 5.12952205045, 13119.72110282519 ), { 4330 241 } ( 0.327, 6.19222146204, 6268.84875598980 ), { 4330 242 } ( 0.273, 0.30522428863, 23141.55838292460 ), { 4330 243 } ( 0.267, 5.76152585786, 5966.68398033480 ), { 4330 244 } ( 0.308, 5.99280509979, 22805.73556599360 ), { 4330 245 } ( 0.345, 2.92489919444, 36949.23080842420 ), { 4330 246 } ( 0.253, 5.20995219509, 24072.92146977640 ), { 4330 247 } ( 0.342, 5.72702586209, 16460.33352952499 ), { 4330 248 } ( 0.261, 2.00304796059, 6148.01076995600 ), { 4330 249 } ( 0.238, 5.08264392839, 6915.85958930460 ), { 4330 250 } ( 0.249, 2.94762789744, 135.06508003540 ), { 4330 251 } ( 0.306, 3.89764686987, 10988.80815753500 ), { 4330 252 } ( 0.305, 0.05827812117, 4701.11650170840 ), { 4330 253 } ( 0.319, 2.95712862064, 163096.18036118349 ), { 4330 254 } ( 0.209, 4.43768461442, 6546.15977336420 ), { 4330 255 } ( 0.270, 2.06643178717, 4804.20927592700 ), { 4330 256 } ( 0.217, 0.73691592312, 6303.85124548380 ), { 4330 257 } ( 0.206, 0.32075959415, 25934.12433108940 ), { 4330 258 } ( 0.218, 0.18428135264, 28286.99048486120 ), { 4330 259 } ( 0.205, 5.21312087405, 20995.39296644940 ), { 4330 260 } ( 0.199, 0.44384292491, 16737.57723659660 ), { 4330 261 } ( 0.230, 6.06567392849, 6287.00800325450 ), { 4330 262 } ( 0.219, 1.29194216300, 5326.78669402080 ), { 4330 263 } ( 0.201, 1.74700937253, 22743.40937951640 ), { 4330 264 } ( 0.207, 4.45440927276, 6279.48542133960 ), { 4330 265 } ( 0.269, 6.05640445030, 64471.99124174489 ), { 4330 266 } ( 0.190, 0.99256176518, 29296.61538957860 ), { 4330 267 } ( 0.238, 5.42471431221, 39609.65458316560 ), { 4330 268 } ( 0.262, 5.26961924198, 522.57741809380 ), { 4330 269 } ( 0.210, 4.68618183158, 6254.62666252360 ), { 4330 270 } ( 0.197, 2.80624554080, 4933.20844033260 ), { 4330 271 } ( 0.252, 4.36220154608, 40879.44050464380 ), { 4330 272 } ( 0.261, 1.07241516738, 55022.93574707440 ), { 4330 273 } ( 0.189, 3.82966734476, 419.48464387520 ), { 4330 274 } ( 0.185, 4.14324541379, 5642.19824260920 ), { 4330 275 } ( 0.247, 3.44855612987, 6702.56049386660 ), { 4330 276 } ( 0.205, 4.04424043223, 536.80451209540 ), { 4330 277 } ( 0.191, 3.14082686083, 16723.35014259500 ), { 4330 278 } ( 0.222, 5.16263907319, 23539.70738633280 ), { 4330 279 } ( 0.180, 4.56214752149, 6489.26139842860 ), { 4330 280 } ( 0.219, 0.80382553358, 16627.37091537720 ), { 4330 281 } ( 0.227, 0.60156339452, 5905.70224207560 ), { 4330 282 } ( 0.168, 0.88753528161, 16062.18452611680 ), { 4330 283 } ( 0.158, 0.92127725775, 23937.85638974100 ), { 4330 284 } ( 0.157, 4.69607868164, 6805.65326808520 ), { 4330 285 } ( 0.207, 4.88410451334, 6286.66627864320 ), { 4330 286 } ( 0.160, 4.95943826846, 10021.83728009940 ), { 4330 287 } ( 0.166, 0.97126433565, 3097.88382272579 ), { 4330 288 } ( 0.209, 5.75663411805, 3646.35037735440 ), { 4330 289 } ( 0.175, 6.12762824412, 239424.39025435288 ), { 4330 290 } ( 0.173, 3.13887234973, 6179.98307577280 ), { 4330 291 } ( 0.157, 3.62822058179, 18451.07854656599 ), { 4330 292 } ( 0.157, 4.67695912235, 6709.67404086740 ), { 4330 293 } ( 0.146, 3.09506069735, 4907.30205014560 ), { 4330 294 } ( 0.165, 2.27139128760, 10660.68693504240 ), { 4330 295 } ( 0.201, 1.67701267433, 2107.03450754240 ), { 4330 296 } ( 0.144, 3.96947747592, 6019.99192661860 ), { 4330 297 } ( 0.171, 5.91302216729, 6058.73105428950 ), { 4330 298 } ( 0.144, 2.13155655120, 26084.02180621620 ), { 4330 299 } ( 0.151, 0.67417383554, 2388.89402044920 ), { 4330 300 } ( 0.189, 5.07122281033, 263.08392337280 ), { 4330 301 } ( 0.146, 5.10373877968, 10770.89325626180 ), { 4330 302 } ( 0.187, 1.23915444627, 19402.79695281660 ), { 4330 303 } ( 0.174, 0.08407293391, 9380.95967271720 ), { 4330 304 } ( 0.137, 1.26247412309, 12566.21901028560 ), { 4330 305 } ( 0.137, 3.52826010842, 639.89728631400 ), { 4330 306 } ( 0.148, 1.76124372592, 5888.44996493220 ), { 4330 307 } ( 0.164, 2.39195095081, 6357.85744855870 ), { 4330 308 } ( 0.146, 2.43675816553, 5881.40372823420 ), { 4330 309 } ( 0.161, 1.15721259372, 26735.94526221320 ), { 4330 310 } ( 0.131, 2.51859277344, 6599.46771964800 ), { 4330 311 } ( 0.153, 5.85203687779, 6281.59137728310 ), { 4330 312 } ( 0.151, 3.72338532649, 12669.24447420140 ), { 4330 313 } ( 0.132, 2.38417741883, 6525.80445396540 ), { 4330 314 } ( 0.129, 0.75556744143, 5017.50837136500 ), { 4330 315 } ( 0.127, 0.00254936441, 10027.90319572920 ), { 4330 316 } ( 0.148, 2.85102145528, 6418.14093002680 ), { 4330 317 } ( 0.143, 5.74460279367, 26087.90314157420 ), { 4330 318 } ( 0.172, 0.41289962240, 174242.46596404970 ), { 4330 319 } ( 0.136, 4.15497742275, 6311.52503745920 ), { 4330 320 } ( 0.170, 5.98194913129, 327574.51427678125 ), { 4330 321 } ( 0.124, 1.65497607604, 32217.20018108080 ), { 4330 322 } ( 0.136, 2.48430783417, 13341.67431130680 ), { 4330 323 } ( 0.165, 2.49667924600, 58953.14544329400 ), { 4330 324 } ( 0.123, 3.45660563754, 6277.55292568400 ), { 4330 325 } ( 0.117, 0.86065134175, 6245.04817735560 ), { 4330 326 } ( 0.149, 5.61358280963, 5729.50644714900 ), { 4330 327 } ( 0.153, 0.26860029950, 245.83164622940 ), { 4330 328 } ( 0.128, 0.71204006588, 103.09277421860 ), { 4330 329 } ( 0.159, 2.43166592149, 221995.02880149524 ), { 4330 330 } ( 0.130, 2.80707316718, 6016.46880826960 ), { 4330 331 } ( 0.137, 1.70657709294, 12566.08438968000 ), { 4330 332 } ( 0.111, 1.56305648432, 17782.73207278420 ), { 4330 333 } ( 0.113, 3.58302904101, 25685.87280280800 ), { 4330 334 } ( 0.109, 3.26403795962, 6819.88036208680 ), { 4330 335 } ( 0.122, 0.34120688217, 1162.47470440780 ), { 4330 336 } ( 0.119, 5.84644718278, 12721.57209941700 ), { 4330 337 } ( 0.144, 2.28899679126, 12489.88562870720 ), { 4330 338 } ( 0.137, 5.82029768354, 44809.65020086340 ), { 4330 339 } ( 0.107, 2.42818544140, 5547.19933645960 ), { 4330 340 } ( 0.134, 1.26539982939, 5331.35744374080 ), { 4330 341 } ( 0.103, 5.96518130595, 6321.10352262720 ), { 4330 342 } ( 0.109, 0.33808549034, 11300.58422135640 ), { 4330 343 } ( 0.129, 5.89187277327, 12029.34718788740 ), { 4330 344 } ( 0.122, 5.77325634636, 11919.14086666800 ), { 4330 345 } ( 0.107, 6.24998989350, 77690.75950573849 ), { 4330 346 } ( 0.107, 1.00535580713, 77736.78343050249 ), { 4330 347 } ( 0.143, 0.24122178432, 4214.06901508480 ), { 4330 348 } ( 0.143, 0.88529649733, 7576.56007357400 ), { 4330 349 } ( 0.107, 2.92124030496, 31415.37924995700 ), { 4330 350 } ( 0.099, 5.70862227072, 5540.08578945880 ), { 4330 351 } ( 0.110, 0.37528037383, 5863.59120611620 ), { 4330 352 } ( 0.104, 4.44107178366, 2118.76386037840 ), { 4330 353 } ( 0.098, 5.95877916706, 4061.21921539440 ), { 4330 354 } ( 0.113, 1.24206857385, 84672.47584450469 ), { 4330 355 } ( 0.124, 2.55619029867, 12539.85338018300 ), { 4330 356 } ( 0.110, 3.66952094329, 238004.52415723629 ), { 4330 357 } ( 0.112, 4.32512422943, 97238.62754448749 ), { 4330 358 } ( 0.097, 3.70151541181, 11720.06886523160 ), { 4330 359 } ( 0.120, 1.26895630252, 12043.57428188900 ), { 4330 360 } ( 0.094, 2.56461130309, 19004.64794940840 ), { 4330 361 } ( 0.117, 3.65425622684, 34520.30930938080 ), { 4330 362 } ( 0.098, 0.13589994287, 11080.17157891760 ), { 4330 363 } ( 0.097, 5.38330115253, 7834.12107263940 ), { 4330 364 } ( 0.097, 2.46722096722, 71980.63357473118 ), { 4330 365 } ( 0.095, 5.36958330451, 6288.59877429880 ), { 4330 366 } ( 0.111, 5.01961920313, 11823.16163945020 ), { 4330 367 } ( 0.090, 2.72299804525, 26880.31981303260 ), { 4330 368 } ( 0.099, 0.90164266377, 18635.92845453620 ), { 4330 369 } ( 0.126, 4.78722177847, 305281.94307104882 ), { 4330 370 } ( 0.093, 0.21240380046, 18139.29450141590 ), { 4330 371 } ( 0.124, 5.00979495566, 172146.97134054029 ), { 4330 372 } ( 0.099, 5.67090026475, 16522.65971600220 ), { 4330 373 } ( 0.092, 2.28180963676, 12491.37010141550 ), { 4330 374 } ( 0.090, 4.50544881196, 40077.61957352000 ), { 4330 375 } ( 0.100, 2.00639461612, 12323.42309600880 ), { 4330 376 } ( 0.095, 5.68801979087, 14919.01785375460 ), { 4330 377 } ( 0.087, 1.86043406047, 27707.54249429480 ), { 4330 378 } ( 0.105, 3.02903468417, 22345.26037610820 ), { 4330 379 } ( 0.087, 5.43970168638, 6272.03014972750 ), { 4330 380 } ( 0.089, 1.63389387182, 33326.57873317420 ), { 4330 381 } ( 0.082, 5.58298993353, 10241.20229116720 ), { 4330 382 } ( 0.094, 5.47749711149, 9924.81042151060 ), { 4330 383 } ( 0.082, 4.71988314145, 15141.39079431200 ), { 4330 384 } ( 0.097, 5.61458778738, 2787.04302385740 ), { 4330 385 } ( 0.096, 3.89073946348, 6379.05507720920 ), { 4330 386 } ( 0.081, 3.13038482444, 36147.40987730040 ), { 4330 387 } ( 0.110, 4.89978492291, 72140.62866668739 ), { 4330 388 } ( 0.097, 5.20764563059, 6303.43116939020 ), { 4330 389 } ( 0.082, 5.26342716139, 9814.60410029120 ), { 4330 390 } ( 0.109, 2.35555589770, 83286.91426955358 ), { 4330 391 } ( 0.097, 2.58492958057, 30666.15495843280 ), { 4330 392 } ( 0.093, 1.32651591333, 23020.65308658799 ), { 4330 393 } ( 0.078, 3.99588630754, 11293.47067435560 ), { 4330 394 } ( 0.090, 0.57771932738, 26482.17080962440 ), { 4330 395 } ( 0.106, 3.92012705073, 62883.35513951360 ), { 4330 396 } ( 0.098, 2.94397773524, 316.39186965660 ), { 4330 397 } ( 0.076, 3.96310417608, 29026.48522950779 ), { 4330 398 } ( 0.078, 1.97068529306, 90279.92316810328 ), { 4330 399 } ( 0.076, 0.23027966596, 21424.46664430340 ), { 4330 400 } ( 0.080, 2.23099742212, 266.60704172180 ), { 4330 401 } ( 0.079, 1.46227790922, 8982.81066930900 ), { 4330 402 } ( 0.102, 4.92129953565, 5621.84292321040 ), { 4330 403 } ( 0.100, 0.39243148321, 24279.10701821359 ), { 4330 404 } ( 0.071, 1.52014858474, 33794.54372352860 ), { 4330 405 } ( 0.076, 0.22880641443, 57375.80190084620 ), { 4330 406 } ( 0.091, 0.96515913904, 48739.85989708300 ), { 4330 407 } ( 0.075, 2.77638585157, 12964.30070339100 ), { 4330 408 } ( 0.077, 5.18846946344, 11520.99686379520 ), { 4330 409 } ( 0.068, 0.50006599129, 4274.51831083240 ), { 4330 410 } ( 0.075, 2.07323762803, 15664.03552270859 ), { 4330 411 } ( 0.074, 1.01884134928, 6393.28217121080 ), { 4330 412 } ( 0.077, 0.46665178780, 16207.88627150200 ), { 4330 413 } ( 0.081, 4.10452219483, 161710.61878623239 ), { 4330 414 } ( 0.067, 3.83840630887, 6262.72053059260 ), { 4330 415 } ( 0.071, 3.91415523291, 7875.67186362420 ), { 4330 416 } ( 0.081, 0.91938383237, 74.78159856730 ), { 4330 417 } ( 0.083, 4.69916218791, 23006.42599258639 ), { 4330 418 } ( 0.063, 2.32556465878, 6279.19451463340 ), { 4330 419 } ( 0.065, 5.41938745446, 28628.33622609960 ), { 4330 420 } ( 0.065, 3.02336771694, 5959.57043333400 ), { 4330 421 } ( 0.064, 3.31033198370, 2636.72547263700 ), { 4330 422 } ( 0.064, 0.18375587519, 1066.49547719000 ), { 4330 423 } ( 0.080, 5.81239171612, 12341.80690428090 ), { 4330 424 } ( 0.066, 2.15105504851, 38.02767263580 ), { 4330 425 } ( 0.062, 2.43313614978, 10138.10951694860 ), { 4330 426 } ( 0.060, 3.16153906470, 5490.30096152400 ), { 4330 427 } ( 0.069, 0.30764736334, 7018.95236352320 ), { 4330 428 } ( 0.068, 2.24442548639, 24383.07910844140 ), { 4330 429 } ( 0.078, 1.39649386463, 9411.46461508720 ), { 4330 430 } ( 0.063, 0.72976362625, 6286.95718534940 ), { 4330 431 } ( 0.073, 4.95125917731, 6453.74872061060 ), { 4330 432 } ( 0.078, 0.32736023459, 6528.90749622080 ), { 4330 433 } ( 0.059, 4.95362151577, 35707.71008290740 ), { 4330 434 } ( 0.070, 2.37962727525, 15508.61512327440 ), { 4330 435 } ( 0.073, 1.35229143111, 5327.47610838280 ), { 4330 436 } ( 0.072, 5.91833527334, 10881.09957748120 ), { 4330 437 } ( 0.059, 5.36231868425, 10239.58386601080 ), { 4330 438 } ( 0.059, 1.63156134967, 61306.01159706580 ), { 4330 439 } ( 0.054, 4.29491690425, 21947.11137270000 ), { 4330 440 } ( 0.057, 5.89190132575, 34513.26307268280 ), { 4330 441 } ( 0.074, 1.38235845304, 9967.45389998160 ), { 4330 442 } ( 0.053, 3.86543309344, 32370.97899156560 ), { 4330 443 } ( 0.055, 4.51794544854, 34911.41207609100 ), { 4330 444 } ( 0.063, 5.41479412056, 11502.83761653050 ), { 4330 445 } ( 0.063, 2.34416220742, 11510.70192305670 ), { 4330 446 } ( 0.068, 0.77493931112, 29864.33402730900 ), { 4330 447 } ( 0.060, 5.57024703495, 5756.90800324580 ), { 4330 448 } ( 0.072, 2.80863088166, 10866.87248347960 ), { 4330 449 } ( 0.061, 2.69736991384, 82576.98122099529 ), { 4330 450 } ( 0.063, 5.32068807257, 3116.65941225980 ), { 4330 451 } ( 0.052, 1.02278758099, 6272.43918464160 ), { 4330 452 } ( 0.069, 5.00698550308, 25287.72379939980 ), { 4330 453 } ( 0.066, 6.12047940728, 12074.48840752400 ), { 4330 454 } ( 0.051, 2.59519527563, 11396.56344857420 ), { 4330 455 } ( 0.056, 2.57995973521, 17892.93839400359 ), { 4330 456 } ( 0.059, 0.44167237620, 250570.67585721909 ), { 4330 457 } ( 0.059, 3.84070143543, 5483.25472482600 ), { 4330 458 } ( 0.049, 0.54704693048, 22594.05489571199 ), { 4330 459 } ( 0.065, 2.38423614501, 52670.06959330260 ), { 4330 460 } ( 0.069, 5.34363738671, 66813.56483573320 ), { 4330 461 } ( 0.057, 5.42770501007, 310145.15282392364 ), { 4330 462 } ( 0.053, 1.17760296075, 149.56319713460 ), { 4330 463 } ( 0.061, 4.02090887211, 34596.36465465240 ), { 4330 464 } ( 0.049, 4.18361320516, 18606.49894600020 ), { 4330 465 } ( 0.055, 0.83886167974, 20452.86941222180 ), { 4330 466 } ( 0.050, 1.46327331958, 37455.72649597440 ), { 4330 467 } ( 0.048, 4.53854727167, 29822.78323632420 ), { 4330 468 } ( 0.058, 3.34847975377, 33990.61834428620 ), { 4330 469 } ( 0.065, 1.45522693982, 76251.32777062019 ), { 4330 470 } ( 0.056, 2.35650663692, 37724.75341974820 ), { 4330 471 } ( 0.052, 2.61551081496, 5999.21653112620 ), { 4330 472 } ( 0.053, 0.17334326094, 77717.29458646949 ), { 4330 473 } ( 0.053, 0.79879700631, 77710.24834977149 ), { 4330 474 } ( 0.047, 0.43240779709, 735.87651353180 ), { 4330 475 } ( 0.053, 4.58763261686, 11616.97609101300 ), { 4330 476 } ( 0.048, 6.20230111054, 4171.42553661380 ), { 4330 477 } ( 0.052, 1.09723616404, 640.87760738220 ), { 4330 478 } ( 0.057, 3.42008310383, 50317.20343953080 ), { 4330 479 } ( 0.053, 1.01528448581, 149144.46708624958 ), { 4330 480 } ( 0.047, 3.00924906195, 52175.80628314840 ), { 4330 481 } ( 0.052, 2.03254070404, 6293.71251534120 ), { 4330 482 } ( 0.048, 0.12356889734, 13362.44970679920 ), { 4330 483 } ( 0.045, 3.37963782356, 10763.77970926100 ), { 4330 484 } ( 0.047, 5.50981287869, 12779.45079542080 ), { 4330 485 } ( 0.062, 5.45209070099, 949.17560896980 ), { 4330 486 } ( 0.061, 2.93237974631, 5791.41255753260 ), { 4330 487 } ( 0.044, 2.87440620802, 8584.66166590080 ), { 4330 488 } ( 0.046, 4.03141796560, 10667.80048204320 ), { 4330 489 } ( 0.047, 3.89902931422, 3903.91137641980 ), { 4330 490 } ( 0.046, 2.75700467329, 6993.00889854970 ), { 4330 491 } ( 0.045, 1.93386293300, 206.18554843720 ), { 4330 492 } ( 0.047, 2.57670800912, 11492.54267579200 ), { 4330 493 } ( 0.044, 3.62570223167, 63658.87775083760 ), { 4330 494 } ( 0.051, 0.84536826273, 12345.73905754400 ), { 4330 495 } ( 0.043, 0.01524970172, 37853.87549938260 ), { 4330 496 } ( 0.041, 3.27146326065, 8858.31494432060 ), { 4330 497 } ( 0.045, 3.03765521215, 65236.22129328540 ), { 4330 498 } ( 0.047, 1.44447548944, 21393.54196985760 ), { 4330 499 } ( 0.058, 5.45843180927, 1975.49254585600 ), { 4330 500 } ( 0.050, 2.13285524146, 12573.26524698360 ), { 4330 501 } ( 0.041, 1.32190847146, 2547.83753823240 ), { 4330 502 } ( 0.047, 3.67579608544, 28313.28880466100 ), { 4330 503 } ( 0.041, 2.24013475126, 8273.82086703240 ), { 4330 504 } ( 0.047, 6.21438985953, 10991.30589870060 ), { 4330 505 } ( 0.042, 3.01631817350, 853.19638175200 ), { 4330 506 } ( 0.056, 1.09773690181, 77376.20102240759 ), { 4330 507 } ( 0.040, 2.35698541041, 2699.73481931760 ), { 4330 508 } ( 0.043, 5.28030898459, 17796.95916678580 ), { 4330 509 } ( 0.054, 2.59175932091, 22910.44676536859 ), { 4330 510 } ( 0.054, 0.88027764102, 71960.38658322369 ), { 4330 511 } ( 0.055, 0.07988899477, 83467.15635301729 ), { 4330 512 } ( 0.039, 1.12867321442, 9910.58332750900 ), { 4330 513 } ( 0.040, 1.35670430524, 27177.85152920020 ), { 4330 514 } ( 0.039, 4.39624220245, 5618.31980486140 ), { 4330 515 } ( 0.042, 4.78798367468, 7856.89627409019 ), { 4330 516 } ( 0.047, 2.75482175292, 18202.21671665939 ), { 4330 517 } ( 0.039, 1.97008298629, 24491.42579258340 ), { 4330 518 } ( 0.042, 4.04346599946, 7863.94251078820 ), { 4330 519 } ( 0.038, 0.49178679251, 38650.17350619900 ), { 4330 520 } ( 0.036, 4.86047906533, 4157.19844261220 ), { 4330 521 } ( 0.043, 5.64354880978, 1062.90504853820 ), { 4330 522 } ( 0.036, 3.98066313627, 12565.17137891460 ), { 4330 523 } ( 0.042, 2.30753932657, 6549.68289171320 ), { 4330 524 } ( 0.040, 5.39694918320, 9498.21223063460 ), { 4330 525 } ( 0.040, 3.30603243754, 23536.11695768099 ), { 4330 526 } ( 0.050, 6.15760345261, 78051.34191383338 ) (*$endif *) ); (*@\\\0000000601*) (*@/// vsop87_ear_r1:array[0..291,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_ear_r1:array[0.. 9,0..2] of extended = ( (*$else *) vsop87_ear_r1:array[0..291,0..2] of extended = ( (*$endif *) { 4331 1 } ( 103018.608, 1.10748969588, 6283.07584999140 ), { 4331 2 } ( 1721.238, 1.06442301418, 12566.15169998280 ), { 4331 3 } ( 702.215, 3.14159265359, 0.00000000000 ), { 4331 4 } ( 32.346, 1.02169059149, 18849.22754997420 ), { 4331 5 } ( 30.799, 2.84353804832, 5507.55323866740 ), { 4331 6 } ( 24.971, 1.31906709482, 5223.69391980220 ), { 4331 7 } ( 18.485, 1.42429748614, 1577.34354244780 ), { 4331 8 } ( 10.078, 5.91378194648, 10977.07880469900 ), { 4331 9 } ( 8.634, 0.27146150602, 5486.77784317500 ), { 4331 10 } ( 8.654, 1.42046854427, 6275.96230299060 ) (*$ifndef meeus *) , { 4331 11 } ( 5.069, 1.68613426734, 5088.62883976680 ), { 4331 12 } ( 4.985, 6.01401770704, 6286.59896834040 ), { 4331 13 } ( 4.669, 5.98724494073, 529.69096509460 ), { 4331 14 } ( 4.395, 0.51800238019, 4694.00295470760 ), { 4331 15 } ( 3.872, 4.74969833437, 2544.31441988340 ), { 4331 16 } ( 3.750, 5.07097685568, 796.29800681640 ), { 4331 17 } ( 4.100, 1.08424786092, 9437.76293488700 ), { 4331 18 } ( 3.518, 0.02290216272, 83996.84731811189 ), { 4331 19 } ( 3.436, 0.94937019624, 71430.69561812909 ), { 4331 20 } ( 3.221, 6.15628775313, 2146.16541647520 ), { 4331 21 } ( 3.414, 5.41218322538, 775.52261132400 ), { 4331 22 } ( 2.863, 5.48432847146, 10447.38783960440 ), { 4331 23 } ( 2.520, 0.24276941146, 398.14900340820 ), { 4331 24 } ( 2.201, 4.95216196651, 6812.76681508600 ), { 4331 25 } ( 2.186, 0.41991743105, 8031.09226305840 ), { 4331 26 } ( 2.838, 3.42034351366, 2352.86615377180 ), { 4331 27 } ( 2.554, 6.13241878525, 6438.49624942560 ), { 4331 28 } ( 1.932, 5.31374608366, 8429.24126646660 ), { 4331 29 } ( 2.429, 3.09164528262, 4690.47983635860 ), { 4331 30 } ( 1.730, 1.53686208550, 4705.73230754360 ), { 4331 31 } ( 2.250, 3.68863633842, 7084.89678111520 ), { 4331 32 } ( 2.093, 1.28191783032, 1748.01641306700 ), { 4331 33 } ( 1.441, 0.81656250862, 14143.49524243060 ), { 4331 34 } ( 1.483, 3.22225357771, 7234.79425624200 ), { 4331 35 } ( 1.754, 3.22883705112, 6279.55273164240 ), { 4331 36 } ( 1.583, 4.09702349428, 11499.65622279280 ), { 4331 37 } ( 1.575, 5.53890170575, 3154.68708489560 ), { 4331 38 } ( 1.847, 1.82040335363, 7632.94325965020 ), { 4331 39 } ( 1.504, 3.63293385726, 11513.88331679440 ), { 4331 40 } ( 1.337, 4.64440864339, 6836.64525283380 ), { 4331 41 } ( 1.275, 2.69341415363, 1349.86740965880 ), { 4331 42 } ( 1.352, 6.15101580257, 5746.27133789600 ), { 4331 43 } ( 1.125, 3.35673439497, 17789.84561978500 ), { 4331 44 } ( 1.470, 3.65282991755, 1194.44701022460 ), { 4331 45 } ( 1.177, 2.57676109092, 13367.97263110660 ), { 4331 46 } ( 1.101, 4.49748696552, 4292.33083295040 ), { 4331 47 } ( 1.234, 5.65036509521, 5760.49843189760 ), { 4331 48 } ( 0.984, 0.65517395136, 5856.47765911540 ), { 4331 49 } ( 0.928, 2.32420318751, 10213.28554621100 ), { 4331 50 } ( 1.077, 5.82812169132, 12036.46073488820 ), { 4331 51 } ( 0.916, 0.76613009583, 16730.46368959580 ), { 4331 52 } ( 0.877, 1.50137505051, 11926.25441366880 ), { 4331 53 } ( 1.023, 5.62076589825, 6256.77753019160 ), { 4331 54 } ( 0.851, 0.65709335533, 155.42039943420 ), { 4331 55 } ( 0.802, 4.10519132088, 951.71840625060 ), { 4331 56 } ( 0.857, 1.41661697538, 5753.38488489680 ), { 4331 57 } ( 0.994, 1.14418521187, 1059.38193018920 ), { 4331 58 } ( 0.813, 1.63948433322, 6681.22485339960 ), { 4331 59 } ( 0.662, 4.55200452260, 5216.58037280140 ), { 4331 60 } ( 0.644, 4.19478168733, 6040.34724601740 ), { 4331 61 } ( 0.626, 1.50767713598, 5643.17856367740 ), { 4331 62 } ( 0.590, 6.18277145205, 4164.31198961300 ), { 4331 63 } ( 0.635, 0.52413263542, 6290.18939699220 ), { 4331 64 } ( 0.650, 0.97935690350, 25132.30339996560 ), { 4331 65 } ( 0.568, 2.30125315873, 10973.55568635000 ), { 4331 66 } ( 0.547, 5.27256412213, 3340.61242669980 ), { 4331 67 } ( 0.547, 2.20144422886, 1592.59601363280 ), { 4331 68 } ( 0.526, 0.92464258226, 11371.70468975820 ), { 4331 69 } ( 0.490, 5.90951388655, 3894.18182954220 ), { 4331 70 } ( 0.478, 1.66857963179, 12168.00269657460 ), { 4331 71 } ( 0.516, 3.59803483887, 10969.96525769820 ), { 4331 72 } ( 0.518, 3.97914412373, 17298.18232732620 ), { 4331 73 } ( 0.534, 5.03740926442, 9917.69687450980 ), { 4331 74 } ( 0.487, 2.50545369269, 6127.65545055720 ), { 4331 75 } ( 0.416, 4.04828175503, 10984.19235169980 ), { 4331 76 } ( 0.538, 5.54081539805, 553.56940284240 ), { 4331 77 } ( 0.402, 2.16544019233, 7860.41939243920 ), { 4331 78 } ( 0.553, 2.32177369366, 11506.76976979360 ), { 4331 79 } ( 0.367, 3.39152532250, 6496.37494542940 ), { 4331 80 } ( 0.360, 5.34379853282, 7079.37385680780 ), { 4331 81 } ( 0.337, 3.61563704045, 11790.62908865880 ), { 4331 82 } ( 0.456, 0.30754294809, 801.82093112380 ), { 4331 83 } ( 0.417, 3.70009308674, 10575.40668294180 ), { 4331 84 } ( 0.381, 5.82033971802, 7058.59846131540 ), { 4331 85 } ( 0.321, 0.31988767355, 16200.77272450120 ), { 4331 86 } ( 0.364, 1.08414306177, 6309.37416979120 ), { 4331 87 } ( 0.294, 4.54798604957, 11856.21865142450 ), { 4331 88 } ( 0.290, 1.26473978562, 8635.94200376320 ), { 4331 89 } ( 0.399, 4.16998866302, 26.29831979980 ), { 4331 90 } ( 0.262, 5.08316906342, 10177.25767953360 ), { 4331 91 } ( 0.243, 2.25746091190, 11712.95531823080 ), { 4331 92 } ( 0.237, 1.05070575346, 242.72860397400 ), { 4331 93 } ( 0.275, 3.45319481756, 5884.92684658320 ), { 4331 94 } ( 0.255, 5.38496831087, 21228.39202354580 ), { 4331 95 } ( 0.307, 4.24313526604, 3738.76143010800 ), { 4331 96 } ( 0.216, 3.46037894728, 213.29909543800 ), { 4331 97 } ( 0.196, 0.69029243914, 1990.74501704100 ), { 4331 98 } ( 0.198, 5.16301829964, 12352.85260454480 ), { 4331 99 } ( 0.214, 3.91876200279, 13916.01910964160 ), { 4331 100 } ( 0.212, 4.00861198517, 5230.80746680300 ), { 4331 101 } ( 0.184, 5.59805976614, 6283.14316029419 ), { 4331 102 } ( 0.184, 2.85275392124, 7238.67559160000 ), { 4331 103 } ( 0.179, 2.54259058334, 14314.16811304980 ), { 4331 104 } ( 0.225, 1.64458698399, 4732.03062734340 ), { 4331 105 } ( 0.236, 5.58826125715, 6069.77675455340 ), { 4331 106 } ( 0.187, 2.72805985443, 6062.66320755260 ), { 4331 107 } ( 0.184, 6.04216273598, 6283.00853968860 ), { 4331 108 } ( 0.230, 3.62591335086, 6284.05617105960 ), { 4331 109 } ( 0.163, 2.19117396803, 18073.70493865020 ), { 4331 110 } ( 0.172, 0.97612950740, 3930.20969621960 ), { 4331 111 } ( 0.215, 1.04672844028, 3496.03282613400 ), { 4331 112 } ( 0.169, 4.75084479006, 17267.26820169119 ), { 4331 113 } ( 0.152, 0.19390712179, 9779.10867612540 ), { 4331 114 } ( 0.182, 5.16288118255, 17253.04110768959 ), { 4331 115 } ( 0.149, 0.80944184260, 709.93304855830 ), { 4331 116 } ( 0.163, 2.19209570390, 6076.89030155420 ), { 4331 117 } ( 0.186, 5.01159497089, 11015.10647733480 ), { 4331 118 } ( 0.134, 0.97765485759, 65147.61976813770 ), { 4331 119 } ( 0.141, 4.38421981312, 4136.91043351620 ), { 4331 120 } ( 0.158, 4.60974280627, 9623.68827669120 ), { 4331 121 } ( 0.133, 3.30508592837, 154717.60988768269 ), { 4331 122 } ( 0.163, 6.11782626245, 3.52311834900 ), { 4331 123 } ( 0.174, 1.58078542187, 7.11354700080 ), { 4331 124 } ( 0.141, 0.49976927274, 25158.60171976540 ), { 4331 125 } ( 0.124, 6.03440460031, 9225.53927328300 ), { 4331 126 } ( 0.150, 5.30166336812, 13517.87010623340 ), { 4331 127 } ( 0.127, 1.92389511438, 22483.84857449259 ), { 4331 128 } ( 0.121, 2.37813129011, 167283.76158766549 ), { 4331 129 } ( 0.120, 3.98423684853, 4686.88940770680 ), { 4331 130 } ( 0.117, 5.81072642211, 12569.67481833180 ), { 4331 131 } ( 0.122, 5.60973054224, 5642.19824260920 ), { 4331 132 } ( 0.157, 3.40236426002, 16496.36139620240 ), { 4331 133 } ( 0.129, 2.10705116371, 1589.07289528380 ), { 4331 134 } ( 0.116, 0.55839966736, 5849.36411211460 ), { 4331 135 } ( 0.123, 1.52961392771, 12559.03815298200 ), { 4331 136 } ( 0.111, 0.44848279675, 6172.86952877200 ), { 4331 137 } ( 0.123, 5.81645568991, 6282.09552892320 ), { 4331 138 } ( 0.150, 4.26278409223, 3128.38876509580 ), { 4331 139 } ( 0.106, 2.27437761356, 5429.87946823940 ), { 4331 140 } ( 0.104, 4.42743707728, 23543.23050468179 ), { 4331 141 } ( 0.121, 0.39459045915, 12132.43996210600 ), { 4331 142 } ( 0.104, 2.41842602527, 426.59819087600 ), { 4331 143 } ( 0.110, 5.80381480447, 16858.48253293320 ), { 4331 144 } ( 0.100, 2.93805577485, 4535.05943692440 ), { 4331 145 } ( 0.097, 3.97935904984, 6133.51265285680 ), { 4331 146 } ( 0.110, 6.22339014386, 12146.66705610760 ), { 4331 147 } ( 0.098, 0.87576563709, 6525.80445396540 ), { 4331 148 } ( 0.098, 3.15248421301, 10440.27429260360 ), { 4331 149 } ( 0.095, 2.46168411100, 3097.88382272579 ), { 4331 150 } ( 0.088, 0.23371480284, 13119.72110282519 ), { 4331 151 } ( 0.098, 5.77016493489, 7342.45778018060 ), { 4331 152 } ( 0.092, 6.03915555063, 20426.57109242200 ), { 4331 153 } ( 0.096, 5.56909292561, 2388.89402044920 ), { 4331 154 } ( 0.081, 1.32131147691, 5650.29211067820 ), { 4331 155 } ( 0.086, 3.94529200528, 10454.50138660520 ), { 4331 156 } ( 0.076, 2.70729716925, 143571.32428481648 ), { 4331 157 } ( 0.091, 5.64100034152, 8827.39026987480 ), { 4331 158 } ( 0.076, 1.80783856698, 28286.99048486120 ), { 4331 159 } ( 0.081, 1.90858992196, 29088.81141598500 ), { 4331 160 } ( 0.075, 3.40955892978, 5481.25491886760 ), { 4331 161 } ( 0.069, 4.49936170873, 17256.63153634140 ), { 4331 162 } ( 0.088, 1.10098454357, 11769.85369316640 ), { 4331 163 } ( 0.066, 2.78285801977, 536.80451209540 ), { 4331 164 } ( 0.068, 3.88179770758, 17260.15465469040 ), { 4331 165 } ( 0.084, 1.59303306354, 9380.95967271720 ), { 4331 166 } ( 0.088, 3.88076636762, 7477.52286021600 ), { 4331 167 } ( 0.061, 6.17558202197, 11087.28512591840 ), { 4331 168 } ( 0.060, 4.34824715818, 6206.80977871580 ), { 4331 169 } ( 0.082, 4.59843208943, 9388.00590941520 ), { 4331 170 } ( 0.079, 1.63131230601, 4933.20844033260 ), { 4331 171 } ( 0.078, 4.20905757484, 5729.50644714900 ), { 4331 172 } ( 0.057, 5.48157926651, 18319.53658487960 ), { 4331 173 } ( 0.060, 1.01261781084, 12721.57209941700 ), { 4331 174 } ( 0.056, 1.63031935692, 15720.83878487840 ), { 4331 175 } ( 0.055, 0.24926735018, 15110.46611986620 ), { 4331 176 } ( 0.061, 5.93059279661, 12539.85338018300 ), { 4331 177 } ( 0.055, 4.84298966314, 13095.84266507740 ), { 4331 178 } ( 0.067, 6.11690589247, 8662.24032356300 ), { 4331 179 } ( 0.054, 5.73750638571, 3634.62102451840 ), { 4331 180 } ( 0.074, 1.05466745829, 16460.33352952499 ), { 4331 181 } ( 0.053, 2.29084335688, 16062.18452611680 ), { 4331 182 } ( 0.064, 2.13513767927, 7875.67186362420 ), { 4331 183 } ( 0.067, 0.07096807518, 14945.31617355440 ), { 4331 184 } ( 0.051, 2.31511194429, 6262.72053059260 ), { 4331 185 } ( 0.057, 5.77055471237, 12043.57428188900 ), { 4331 186 } ( 0.056, 4.41980790431, 4701.11650170840 ), { 4331 187 } ( 0.059, 5.87963500073, 5331.35744374080 ), { 4331 188 } ( 0.058, 2.30546168628, 955.59974160860 ), { 4331 189 } ( 0.049, 1.93839278478, 5333.90024102160 ), { 4331 190 } ( 0.048, 2.69973662261, 6709.67404086740 ), { 4331 191 } ( 0.064, 1.64379897981, 6262.30045449900 ), { 4331 192 } ( 0.046, 3.98449608961, 98068.53671630539 ), { 4331 193 } ( 0.050, 3.68875893005, 12323.42309600880 ), { 4331 194 } ( 0.045, 3.30068569697, 22003.91463486980 ), { 4331 195 } ( 0.047, 1.26317154881, 11919.14086666800 ), { 4331 196 } ( 0.045, 0.89150445122, 51868.24866217880 ), { 4331 197 } ( 0.043, 1.61526242998, 6277.55292568400 ), { 4331 198 } ( 0.043, 5.74295325645, 11403.67699557500 ), { 4331 199 } ( 0.044, 3.43070646822, 10021.83728009940 ), { 4331 200 } ( 0.056, 0.02481833774, 15671.08175940660 ), { 4331 201 } ( 0.055, 3.14274403422, 33019.02111220460 ), { 4331 202 } ( 0.045, 3.00877289177, 8982.81066930900 ), { 4331 203 } ( 0.046, 0.73303568429, 6303.43116939020 ), { 4331 204 } ( 0.049, 1.60455690285, 6303.85124548380 ), { 4331 205 } ( 0.045, 0.40210030323, 6805.65326808520 ), { 4331 206 } ( 0.053, 0.94869680175, 10988.80815753500 ), { 4331 207 } ( 0.041, 1.61122384329, 6819.88036208680 ), { 4331 208 } ( 0.055, 0.89439119424, 11933.36796066960 ), { 4331 209 } ( 0.045, 3.88495384656, 60530.48898574180 ), { 4331 210 } ( 0.040, 4.75740908001, 38526.57435087200 ), { 4331 211 } ( 0.040, 1.49921251887, 18451.07854656599 ), { 4331 212 } ( 0.040, 3.77498297228, 26087.90314157420 ), { 4331 213 } ( 0.051, 1.70258603562, 1551.04522264800 ), { 4331 214 } ( 0.039, 2.97100699926, 2118.76386037840 ), { 4331 215 } ( 0.053, 5.19854123078, 77713.77146812050 ), { 4331 216 } ( 0.047, 4.26356628717, 21424.46664430340 ), { 4331 217 } ( 0.037, 0.62902722802, 24356.78078864160 ), { 4331 218 } ( 0.036, 0.11087914947, 10344.29506538580 ), { 4331 219 } ( 0.036, 0.77037556319, 12029.34718788740 ), { 4331 220 } ( 0.035, 3.30933994515, 24072.92146977640 ), { 4331 221 } ( 0.035, 5.93650887012, 31570.79964939120 ), { 4331 222 } ( 0.036, 2.15108874765, 30774.50164257480 ), { 4331 223 } ( 0.036, 1.75078825382, 16207.88627150200 ), { 4331 224 } ( 0.033, 5.06264177921, 226858.23855437008 ), { 4331 225 } ( 0.034, 6.16891378800, 24491.42579258340 ), { 4331 226 } ( 0.035, 3.19120695549, 32217.20018108080 ), { 4331 227 } ( 0.034, 2.31528650443, 55798.45835839840 ), { 4331 228 } ( 0.032, 4.21446357042, 15664.03552270859 ), { 4331 229 } ( 0.039, 1.24979117796, 6418.14093002680 ), { 4331 230 } ( 0.037, 4.11943655770, 2787.04302385740 ), { 4331 231 } ( 0.032, 1.62887710890, 639.89728631400 ), { 4331 232 } ( 0.038, 5.89832942685, 640.87760738220 ), { 4331 233 } ( 0.032, 1.72442327688, 27433.88921587499 ), { 4331 234 } ( 0.031, 2.78828943753, 12139.55350910680 ), { 4331 235 } ( 0.035, 4.44608896525, 18202.21671665939 ), { 4331 236 } ( 0.034, 3.96287980676, 18216.44381066100 ), { 4331 237 } ( 0.033, 4.73611335874, 16723.35014259500 ), { 4331 238 } ( 0.034, 1.43910280005, 49515.38250840700 ), { 4331 239 } ( 0.031, 0.23302920161, 23581.25817731760 ), { 4331 240 } ( 0.029, 2.02633840220, 11609.86254401220 ), { 4331 241 } ( 0.030, 2.54923230240, 9924.81042151060 ), { 4331 242 } ( 0.032, 4.91793198558, 11300.58422135640 ), { 4331 243 } ( 0.028, 0.26187189577, 13521.75144159140 ), { 4331 244 } ( 0.028, 3.84568936822, 2699.73481931760 ), { 4331 245 } ( 0.029, 1.83149729794, 29822.78323632420 ), { 4331 246 } ( 0.033, 4.60320094415, 19004.64794940840 ), { 4331 247 } ( 0.027, 4.46183450287, 6702.56049386660 ), { 4331 248 } ( 0.030, 4.46494072240, 36147.40987730040 ), { 4331 249 } ( 0.027, 0.03211931363, 6279.78949257360 ), { 4331 250 } ( 0.026, 5.46497324333, 6245.04817735560 ), { 4331 251 } ( 0.035, 4.52695674113, 36949.23080842420 ), { 4331 252 } ( 0.027, 3.52528177609, 10770.89325626180 ), { 4331 253 } ( 0.026, 1.48499438453, 11080.17157891760 ), { 4331 254 } ( 0.035, 2.82154380962, 19402.79695281660 ), { 4331 255 } ( 0.025, 2.46339998836, 6279.48542133960 ), { 4331 256 } ( 0.026, 4.97688894643, 16737.57723659660 ), { 4331 257 } ( 0.026, 2.36136541526, 17996.03116822220 ), { 4331 258 } ( 0.029, 4.15148654061, 45892.73043315699 ), { 4331 259 } ( 0.026, 4.50714272714, 17796.95916678580 ), { 4331 260 } ( 0.027, 4.72625223674, 1066.49547719000 ), { 4331 261 } ( 0.025, 2.89309528854, 6286.66627864320 ), { 4331 262 } ( 0.027, 0.37462444357, 12964.30070339100 ), { 4331 263 } ( 0.029, 4.94860010533, 5863.59120611620 ), { 4331 264 } ( 0.031, 3.93096113577, 29864.33402730900 ), { 4331 265 } ( 0.024, 6.14987193584, 18606.49894600020 ), { 4331 266 } ( 0.024, 3.74225964547, 29026.48522950779 ), { 4331 267 } ( 0.025, 5.70460621565, 27707.54249429480 ), { 4331 268 } ( 0.025, 5.33928840652, 15141.39079431200 ), { 4331 269 } ( 0.027, 3.02320897140, 6286.36220740920 ), { 4331 270 } ( 0.023, 0.28364955406, 5327.47610838280 ), { 4331 271 } ( 0.026, 1.34240461687, 18875.52586977400 ), { 4331 272 } ( 0.024, 1.33998410121, 19800.94595622480 ), { 4331 273 } ( 0.025, 6.00172494004, 6489.26139842860 ), { 4331 274 } ( 0.022, 1.81777974484, 6288.59877429880 ), { 4331 275 } ( 0.022, 3.58603606640, 6915.85958930460 ), { 4331 276 } ( 0.029, 2.09564449439, 15265.88651930040 ), { 4331 277 } ( 0.022, 1.02173599251, 11925.27409260060 ), { 4331 278 } ( 0.022, 4.74660932338, 28230.18722269139 ), { 4331 279 } ( 0.021, 2.30688751432, 5999.21653112620 ), { 4331 280 } ( 0.021, 3.22654944430, 25934.12433108940 ), { 4331 281 } ( 0.021, 3.04956726238, 6566.93516885660 ), { 4331 282 } ( 0.027, 5.35653084499, 33794.54372352860 ), { 4331 283 } ( 0.028, 3.91168324815, 18208.34994259200 ), { 4331 284 } ( 0.020, 1.52296293311, 135.06508003540 ), { 4331 285 } ( 0.022, 4.66462839521, 13362.44970679920 ), { 4331 286 } ( 0.019, 1.78121167862, 156137.47598479928 ), { 4331 287 } ( 0.019, 2.99969102221, 19651.04848109800 ), { 4331 288 } ( 0.019, 2.86664273362, 18422.62935909819 ), { 4331 289 } ( 0.025, 0.94995632141, 31415.37924995700 ), { 4331 290 } ( 0.019, 4.71432851499, 77690.75950573849 ), { 4331 291 } ( 0.019, 2.54227398241, 77736.78343050249 ), { 4331 292 } ( 0.020, 5.91915117116, 48739.85989708300 ) (*$endif *) ); (*@\\\*) (*@/// vsop87_ear_r2:array[0..138,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_ear_r2:array[0.. 5,0..2] of extended = ( (*$else *) vsop87_ear_r2:array[0..138,0..2] of extended = ( (*$endif *) { 4332 1 } ( 4359.385, 5.78455133738, 6283.07584999140 ), { 4332 2 } ( 123.633, 5.57934722157, 12566.15169998280 ), { 4332 3 } ( 12.341, 3.14159265359, 0.00000000000 ), { 4332 4 } ( 8.792, 3.62777733395, 77713.77146812050 ), { 4332 5 } ( 5.689, 1.86958905084, 5573.14280143310 ), { 4332 6 } ( 3.301, 5.47027913302, 18849.22754997420 ) (*$ifndef meeus *) , { 4332 7 } ( 1.471, 4.48028885617, 5507.55323866740 ), { 4332 8 } ( 1.013, 2.81456417694, 5223.69391980220 ), { 4332 9 } ( 0.854, 3.10878241236, 1577.34354244780 ), { 4332 10 } ( 1.102, 2.84173992403, 161000.68573767410 ), { 4332 11 } ( 0.648, 5.47349498544, 775.52261132400 ), { 4332 12 } ( 0.609, 1.37969434104, 6438.49624942560 ), { 4332 13 } ( 0.499, 4.41649242250, 6286.59896834040 ), { 4332 14 } ( 0.417, 0.90242451175, 10977.07880469900 ), { 4332 15 } ( 0.402, 3.20376585290, 5088.62883976680 ), { 4332 16 } ( 0.351, 1.81079227770, 5486.77784317500 ), { 4332 17 } ( 0.467, 3.65753702738, 7084.89678111520 ), { 4332 18 } ( 0.458, 5.38585314743, 149854.40013480789 ), { 4332 19 } ( 0.304, 3.51701098693, 796.29800681640 ), { 4332 20 } ( 0.266, 6.17413982699, 6836.64525283380 ), { 4332 21 } ( 0.279, 1.84120501086, 4694.00295470760 ), { 4332 22 } ( 0.260, 1.41629543251, 2146.16541647520 ), { 4332 23 } ( 0.266, 3.13832905677, 71430.69561812909 ), { 4332 24 } ( 0.321, 5.35313367048, 3154.68708489560 ), { 4332 25 } ( 0.238, 2.17720020018, 155.42039943420 ), { 4332 26 } ( 0.293, 4.61501268144, 4690.47983635860 ), { 4332 27 } ( 0.229, 4.75969588070, 7234.79425624200 ), { 4332 28 } ( 0.211, 0.21868065485, 4705.73230754360 ), { 4332 29 } ( 0.201, 4.21905743357, 1349.86740965880 ), { 4332 30 } ( 0.195, 4.57808285364, 529.69096509460 ), { 4332 31 } ( 0.253, 2.81496293039, 1748.01641306700 ), { 4332 32 } ( 0.182, 5.70454011389, 6040.34724601740 ), { 4332 33 } ( 0.179, 6.02897097053, 4292.33083295040 ), { 4332 34 } ( 0.186, 1.58690991244, 6309.37416979120 ), { 4332 35 } ( 0.170, 2.90220009715, 9437.76293488700 ), { 4332 36 } ( 0.166, 1.99984925026, 8031.09226305840 ), { 4332 37 } ( 0.158, 0.04783713552, 2544.31441988340 ), { 4332 38 } ( 0.197, 2.01083639502, 1194.44701022460 ), { 4332 39 } ( 0.165, 5.78372596778, 83996.84731811189 ), { 4332 40 } ( 0.214, 3.38285934319, 7632.94325965020 ), { 4332 41 } ( 0.140, 0.36401486094, 10447.38783960440 ), { 4332 42 } ( 0.151, 0.95153163031, 6127.65545055720 ), { 4332 43 } ( 0.136, 1.48426306582, 2352.86615377180 ), { 4332 44 } ( 0.127, 5.48475435134, 951.71840625060 ), { 4332 45 } ( 0.126, 5.26866506592, 6279.55273164240 ), { 4332 46 } ( 0.125, 3.75754889288, 6812.76681508600 ), { 4332 47 } ( 0.101, 4.95015746147, 398.14900340820 ), { 4332 48 } ( 0.102, 0.68468295277, 1592.59601363280 ), { 4332 49 } ( 0.100, 1.14568935785, 3894.18182954220 ), { 4332 50 } ( 0.129, 0.76540016965, 553.56940284240 ), { 4332 51 } ( 0.109, 5.41063597567, 6256.77753019160 ), { 4332 52 } ( 0.075, 5.84804322893, 242.72860397400 ), { 4332 53 } ( 0.095, 1.94452244083, 11856.21865142450 ), { 4332 54 } ( 0.077, 0.69373708195, 8429.24126646660 ), { 4332 55 } ( 0.100, 5.19725292131, 244287.60000722769 ), { 4332 56 } ( 0.080, 6.18440483705, 1059.38193018920 ), { 4332 57 } ( 0.069, 5.25699888595, 14143.49524243060 ), { 4332 58 } ( 0.085, 5.39484725499, 25132.30339996560 ), { 4332 59 } ( 0.066, 0.51779993906, 801.82093112380 ), { 4332 60 } ( 0.055, 5.16878202461, 7058.59846131540 ), { 4332 61 } ( 0.051, 3.88759155247, 12036.46073488820 ), { 4332 62 } ( 0.050, 5.57636570536, 6290.18939699220 ), { 4332 63 } ( 0.061, 2.24359003264, 8635.94200376320 ), { 4332 64 } ( 0.050, 5.54441900966, 1990.74501704100 ), { 4332 65 } ( 0.056, 4.00301078040, 13367.97263110660 ), { 4332 66 } ( 0.052, 4.13138898038, 7860.41939243920 ), { 4332 67 } ( 0.052, 3.90943054011, 26.29831979980 ), { 4332 68 } ( 0.041, 3.57128482780, 7079.37385680780 ), { 4332 69 } ( 0.056, 2.76959005761, 90955.55169449610 ), { 4332 70 } ( 0.042, 1.91461189199, 7477.52286021600 ), { 4332 71 } ( 0.042, 0.42728171713, 10213.28554621100 ), { 4332 72 } ( 0.042, 1.09413724455, 709.93304855830 ), { 4332 73 } ( 0.039, 3.93298068961, 10973.55568635000 ), { 4332 74 } ( 0.038, 6.17935925345, 9917.69687450980 ), { 4332 75 } ( 0.049, 0.83021145241, 11506.76976979360 ), { 4332 76 } ( 0.053, 1.45828359397, 233141.31440436149 ), { 4332 77 } ( 0.047, 6.21568666789, 6681.22485339960 ), { 4332 78 } ( 0.037, 0.36359309980, 10177.25767953360 ), { 4332 79 } ( 0.035, 3.33024911524, 5643.17856367740 ), { 4332 80 } ( 0.034, 5.63446915337, 6525.80445396540 ), { 4332 81 } ( 0.035, 5.36033855038, 25158.60171976540 ), { 4332 82 } ( 0.034, 5.36319798321, 4933.20844033260 ), { 4332 83 } ( 0.033, 4.24722336872, 12569.67481833180 ), { 4332 84 } ( 0.043, 5.26370903404, 10575.40668294180 ), { 4332 85 } ( 0.042, 5.08837645072, 11015.10647733480 ), { 4332 86 } ( 0.040, 1.98334703186, 6284.05617105960 ), { 4332 87 } ( 0.042, 4.22496037505, 88860.05707098669 ), { 4332 88 } ( 0.029, 3.19088628170, 11926.25441366880 ), { 4332 89 } ( 0.029, 0.15217616684, 12168.00269657460 ), { 4332 90 } ( 0.030, 1.61904744136, 9779.10867612540 ), { 4332 91 } ( 0.027, 0.76388991416, 1589.07289528380 ), { 4332 92 } ( 0.036, 2.74712003443, 3738.76143010800 ), { 4332 93 } ( 0.033, 3.08807829566, 3930.20969621960 ), { 4332 94 } ( 0.031, 5.34906619513, 143571.32428481648 ), { 4332 95 } ( 0.025, 0.10240267494, 22483.84857449259 ), { 4332 96 } ( 0.030, 3.47110495524, 14945.31617355440 ), { 4332 97 } ( 0.024, 1.10425016019, 4535.05943692440 ), { 4332 98 } ( 0.024, 1.58037259780, 6496.37494542940 ), { 4332 99 } ( 0.023, 3.87710321433, 6275.96230299060 ), { 4332 100 } ( 0.025, 3.94529778970, 3128.38876509580 ), { 4332 101 } ( 0.023, 3.44685609601, 4136.91043351620 ), { 4332 102 } ( 0.023, 3.83156029849, 5753.38488489680 ), { 4332 103 } ( 0.022, 1.86956128067, 16730.46368959580 ), { 4332 104 } ( 0.025, 2.42188933855, 5729.50644714900 ), { 4332 105 } ( 0.020, 1.78208352927, 17789.84561978500 ), { 4332 106 } ( 0.021, 4.30363087400, 16858.48253293320 ), { 4332 107 } ( 0.021, 0.49258939822, 29088.81141598500 ), { 4332 108 } ( 0.025, 1.33030250444, 6282.09552892320 ), { 4332 109 } ( 0.027, 2.54785812264, 3496.03282613400 ), { 4332 110 } ( 0.022, 1.11232521950, 12721.57209941700 ), { 4332 111 } ( 0.021, 5.97759081637, 7.11354700080 ), { 4332 112 } ( 0.019, 0.80292033311, 16062.18452611680 ), { 4332 113 } ( 0.023, 4.12454848769, 2388.89402044920 ), { 4332 114 } ( 0.022, 4.92663152168, 18875.52586977400 ), { 4332 115 } ( 0.023, 5.68902059771, 16460.33352952499 ), { 4332 116 } ( 0.023, 4.97346265647, 17260.15465469040 ), { 4332 117 } ( 0.023, 3.03021283729, 66567.48586525429 ), { 4332 118 } ( 0.016, 3.89740925257, 5331.35744374080 ), { 4332 119 } ( 0.017, 3.08268671348, 154717.60988768269 ), { 4332 120 } ( 0.016, 3.95085099736, 3097.88382272579 ), { 4332 121 } ( 0.016, 3.99041783945, 6283.14316029419 ), { 4332 122 } ( 0.020, 6.10644140189, 167283.76158766549 ), { 4332 123 } ( 0.015, 4.09775914607, 11712.95531823080 ), { 4332 124 } ( 0.016, 5.71769940700, 17298.18232732620 ), { 4332 125 } ( 0.016, 3.28894009404, 5884.92684658320 ), { 4332 126 } ( 0.015, 5.64785377164, 12559.03815298200 ), { 4332 127 } ( 0.016, 4.43452080930, 6283.00853968860 ), { 4332 128 } ( 0.014, 2.31721603062, 5481.25491886760 ), { 4332 129 } ( 0.014, 4.43479032305, 13517.87010623340 ), { 4332 130 } ( 0.014, 4.73209312936, 7342.45778018060 ), { 4332 131 } ( 0.012, 0.64705975463, 18073.70493865020 ), { 4332 132 } ( 0.011, 1.51443332200, 16200.77272450120 ), { 4332 133 } ( 0.011, 0.88708889185, 21228.39202354580 ), { 4332 134 } ( 0.014, 4.50116508534, 640.87760738220 ), { 4332 135 } ( 0.011, 4.64339996198, 11790.62908865880 ), { 4332 136 } ( 0.011, 1.31064298246, 4164.31198961300 ), { 4332 137 } ( 0.009, 3.02238989305, 23543.23050468179 ), { 4332 138 } ( 0.009, 2.04999402381, 22003.91463486980 ), { 4332 139 } ( 0.009, 4.91488110218, 213.29909543800 ) (*$endif *) ); (*@\\\*) (*@/// vsop87_ear_r3:array[0.. 26,0..2] of extended = (..); *) (*$ifdef meeus *) vsop87_ear_r3:array[0.. 1,0..2] of extended = ( (*$else *) vsop87_ear_r3:array[0.. 26,0..2] of extended = ( (*$endif *) { 4333 1 } ( 144.595, 4.27319435148, 6283.07584999140 ), { 4333 2 } ( 6.729, 3.91697608662, 12566.15169998280 ) (*$ifndef meeus *) , { 4333 3 } ( 0.774, 0.00000000000, 0.00000000000 ), { 4333 4 } ( 0.247, 3.73019298781, 18849.22754997420 ), { 4333 5 } ( 0.036, 2.80081409050, 6286.59896834040 ), { 4333 6 } ( 0.033, 5.62216602775, 6127.65545055720 ), { 4333 7 } ( 0.019, 3.71292621802, 6438.49624942560 ), { 4333 8 } ( 0.016, 4.26011484232, 6525.80445396540 ), { 4333 9 } ( 0.016, 3.50416887054, 6256.77753019160 ), { 4333 10 } ( 0.014, 3.62127621114, 25132.30339996560 ), { 4333 11 } ( 0.011, 4.39200958819, 4705.73230754360 ), { 4333 12 } ( 0.011, 5.22327127059, 6040.34724601740 ), { 4333 13 } ( 0.010, 4.28045254647, 83996.84731811189 ), { 4333 14 } ( 0.009, 1.56864096494, 5507.55323866740 ), { 4333 15 } ( 0.011, 1.37795688024, 6309.37416979120 ), { 4333 16 } ( 0.010, 5.19937959068, 71430.69561812909 ), { 4333 17 } ( 0.009, 0.47275199930, 6279.55273164240 ), { 4333 18 } ( 0.009, 0.74642756529, 5729.50644714900 ), { 4333 19 } ( 0.007, 2.97374891560, 775.52261132400 ), { 4333 20 } ( 0.007, 3.28615691021, 7058.59846131540 ), { 4333 21 } ( 0.007, 2.19184402142, 6812.76681508600 ), { 4333 22 } ( 0.005, 3.15419034438, 529.69096509460 ), { 4333 23 } ( 0.006, 4.54725567047, 1059.38193018920 ), { 4333 24 } ( 0.005, 1.51104406936, 7079.37385680780 ), { 4333 25 } ( 0.007, 2.98052059053, 6681.22485339960 ), { 4333 26 } ( 0.005, 2.30961231391, 12036.46073488820 ), { 4333 27 } ( 0.005, 3.71102966917, 6290.18939699220 ) (*$endif *) ); (*@\\\*) (*@/// vsop87_ear_r4:array[0.. 9,0..2] of extended = (..); *) (*$ifdef meeus *) vsop87_ear_r4:array[0.. 0,0..2] of extended = ( (*$else *) vsop87_ear_r4:array[0.. 9,0..2] of extended = ( (*$endif *) { 4334 1 } ( 3.858, 2.56384387339, 6283.07584999140 ) (*$ifndef meeus *) , { 4334 2 } ( 0.306, 2.26769501230, 12566.15169998280 ), { 4334 3 } ( 0.053, 3.44031471924, 5573.14280143310 ), { 4334 4 } ( 0.015, 2.04794573436, 18849.22754997420 ), { 4334 5 } ( 0.013, 2.05688873673, 77713.77146812050 ), { 4334 6 } ( 0.007, 4.41218854480, 161000.68573767410 ), { 4334 7 } ( 0.005, 5.26154653107, 6438.49624942560 ), { 4334 8 } ( 0.005, 4.07695126049, 6127.65545055720 ), { 4334 9 } ( 0.006, 3.81514213664, 149854.40013480789 ), { 4334 10 } ( 0.003, 1.28175749811, 6286.59896834040 ) (*$endif *) ); (*@\\\*) (*@/// vsop87_ear_r5:array[0.. 3,0..2] of extended = (..); *) (*$ifdef meeus *) vsop87_ear_r5:array[0.. 0,0..2] of extended = ( (*$else *) vsop87_ear_r5:array[0.. 2,0..2] of extended = ( (*$endif *) (*$ifdef meeus *) ( 0.000, 0.00000000000, 0.00000000000 ) (*$else *) { 4335 1 } ( 0.086, 1.21579741687, 6283.07584999140 ), { 4335 2 } ( 0.012, 0.65617264033, 12566.15169998280 ), { 4335 3 } ( 0.001, 0.38068797142, 18849.22754997420 ) (*$endif *) ); (*@\\\0000000601*) begin WITH result do begin a:=0; b:=0; c:=0; case index of 0: if (nr>=low(vsop87_ear_r0)) and (nr<=high(vsop87_ear_r0)) then begin a:=vsop87_ear_r0[nr,0]; b:=vsop87_ear_r0[nr,1]; c:=vsop87_ear_r0[nr,2]; end; 1: if (nr>=low(vsop87_ear_r1)) and (nr<=high(vsop87_ear_r1)) then begin a:=vsop87_ear_r1[nr,0]; b:=vsop87_ear_r1[nr,1]; c:=vsop87_ear_r1[nr,2]; end; 2: if (nr>=low(vsop87_ear_r2)) and (nr<=high(vsop87_ear_r2)) then begin a:=vsop87_ear_r2[nr,0]; b:=vsop87_ear_r2[nr,1]; c:=vsop87_ear_r2[nr,2]; end; 3: if (nr>=low(vsop87_ear_r3)) and (nr<=high(vsop87_ear_r3)) then begin a:=vsop87_ear_r3[nr,0]; b:=vsop87_ear_r3[nr,1]; c:=vsop87_ear_r3[nr,2]; end; 4: if (nr>=low(vsop87_ear_r4)) and (nr<=high(vsop87_ear_r4)) then begin a:=vsop87_ear_r4[nr,0]; b:=vsop87_ear_r4[nr,1]; c:=vsop87_ear_r4[nr,2]; end; 5: if (nr>=low(vsop87_ear_r5)) and (nr<=high(vsop87_ear_r5)) then begin a:=vsop87_ear_r5[nr,0]; b:=vsop87_ear_r5[nr,1]; c:=vsop87_ear_r5[nr,2]; end; end; end; end; (*@\\\0000000301*) (*@/// function TVSOPEarth.LatitudeFactor(nr,index: integer):TVSOPEntry; *) function TVSOPEarth.LatitudeFactor(nr,index: integer):TVSOPEntry; const (*@/// vsop87_ear_b0:array[0..183,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_ear_b0:array[0.. 4,0..2] of extended = ( (*$else *) vsop87_ear_b0:array[0..183,0..2] of extended = ( (*$endif *) { 4320 1 } ( 279.620, 3.19870156017, 84334.66158130829 ), { 4320 2 } ( 101.643, 5.42248619256, 5507.55323866740 ), { 4320 3 } ( 80.445, 3.88013204458, 5223.69391980220 ), { 4320 4 } ( 43.806, 3.70444689758, 2352.86615377180 ), { 4320 5 } ( 31.933, 4.00026369781, 1577.34354244780 ) (*$ifndef meeus *) , { 4320 6 } ( 22.724, 3.98473831560, 1047.74731175470 ), { 4320 7 } ( 16.392, 3.56456119782, 5856.47765911540 ), { 4320 8 } ( 18.141, 4.98367470263, 6283.07584999140 ), { 4320 9 } ( 14.443, 3.70275614914, 9437.76293488700 ), { 4320 10 } ( 14.304, 3.41117857525, 10213.28554621100 ), { 4320 11 } ( 11.246, 4.82820690530, 14143.49524243060 ), { 4320 12 } ( 10.900, 2.08574562327, 6812.76681508600 ), { 4320 13 } ( 9.714, 3.47303947752, 4694.00295470760 ), { 4320 14 } ( 10.367, 4.05663927946, 71092.88135493269 ), { 4320 15 } ( 8.775, 4.44016515669, 5753.38488489680 ), { 4320 16 } ( 8.366, 4.99251512180, 7084.89678111520 ), { 4320 17 } ( 6.921, 4.32559054073, 6275.96230299060 ), { 4320 18 } ( 9.145, 1.14182646613, 6620.89011318780 ), { 4320 19 } ( 7.194, 3.60193205752, 529.69096509460 ), { 4320 20 } ( 7.698, 5.55425745881, 167621.57585086189 ), { 4320 21 } ( 5.285, 2.48446991566, 4705.73230754360 ), { 4320 22 } ( 5.208, 6.24992674537, 18073.70493865020 ), { 4320 23 } ( 4.529, 2.33827747356, 6309.37416979120 ), { 4320 24 } ( 5.579, 4.41023653738, 7860.41939243920 ), { 4320 25 } ( 4.743, 0.70995680136, 5884.92684658320 ), { 4320 26 } ( 4.301, 1.10255777773, 6681.22485339960 ), { 4320 27 } ( 3.849, 1.82229412531, 5486.77784317500 ), { 4320 28 } ( 4.093, 5.11700141207, 13367.97263110660 ), { 4320 29 } ( 3.681, 0.43793170356, 3154.68708489560 ), { 4320 30 } ( 3.420, 5.42034800952, 6069.77675455340 ), { 4320 31 } ( 3.617, 6.04641937526, 3930.20969621960 ), { 4320 32 } ( 3.670, 4.58210192227, 12194.03291462090 ), { 4320 33 } ( 2.918, 1.95463881126, 10977.07880469900 ), { 4320 34 } ( 2.797, 5.61259275048, 11790.62908865880 ), { 4320 35 } ( 2.502, 0.60499729367, 6496.37494542940 ), { 4320 36 } ( 2.319, 5.01648216014, 1059.38193018920 ), { 4320 37 } ( 2.684, 1.39470396488, 22003.91463486980 ), { 4320 38 } ( 2.428, 3.24183056052, 78051.58573131690 ), { 4320 39 } ( 2.120, 4.30691000285, 5643.17856367740 ), { 4320 40 } ( 2.257, 3.15557225618, 90617.73743129970 ), { 4320 41 } ( 1.813, 3.75574218285, 3340.61242669980 ), { 4320 42 } ( 2.226, 2.79699346659, 12036.46073488820 ), { 4320 43 } ( 1.888, 0.86991545823, 8635.94200376320 ), { 4320 44 } ( 1.517, 1.95852055701, 398.14900340820 ), { 4320 45 } ( 1.581, 3.19976230948, 5088.62883976680 ), { 4320 46 } ( 1.421, 6.25530883827, 2544.31441988340 ), { 4320 47 } ( 1.595, 0.25619915135, 17298.18232732620 ), { 4320 48 } ( 1.391, 4.69964175561, 7058.59846131540 ), { 4320 49 } ( 1.478, 2.81808207569, 25934.12433108940 ), { 4320 50 } ( 1.481, 3.65823554806, 11506.76976979360 ), { 4320 51 } ( 1.693, 4.95689385293, 156475.29024799570 ), { 4320 52 } ( 1.183, 1.29343061246, 775.52261132400 ), { 4320 53 } ( 1.114, 2.37889311846, 3738.76143010800 ), { 4320 54 } ( 0.994, 4.30088900425, 9225.53927328300 ), { 4320 55 } ( 0.924, 3.06451026812, 4164.31198961300 ), { 4320 56 } ( 0.867, 0.55606931068, 8429.24126646660 ), { 4320 57 } ( 0.988, 5.97286104208, 7079.37385680780 ), { 4320 58 } ( 0.824, 1.50984806173, 10447.38783960440 ), { 4320 59 } ( 0.915, 0.12635654592, 11015.10647733480 ), { 4320 60 } ( 0.742, 1.99159139281, 26087.90314157420 ), { 4320 61 } ( 1.039, 3.14159265359, 0.00000000000 ), { 4320 62 } ( 0.850, 4.24120016095, 29864.33402730900 ), { 4320 63 } ( 0.755, 2.89631873320, 4732.03062734340 ), { 4320 64 } ( 0.714, 1.37548118603, 2146.16541647520 ), { 4320 65 } ( 0.708, 1.91406542362, 8031.09226305840 ), { 4320 66 } ( 0.746, 0.57893808616, 796.29800681640 ), { 4320 67 } ( 0.802, 5.12339137230, 2942.46342329160 ), { 4320 68 } ( 0.751, 1.67479850166, 21228.39202354580 ), { 4320 69 } ( 0.602, 4.09976538826, 64809.80550494129 ), { 4320 70 } ( 0.594, 3.49580704962, 16496.36139620240 ), { 4320 71 } ( 0.592, 4.59481504319, 4690.47983635860 ), { 4320 72 } ( 0.530, 5.73979295200, 8827.39026987480 ), { 4320 73 } ( 0.503, 5.66433137112, 33794.54372352860 ), { 4320 74 } ( 0.483, 1.57106522411, 801.82093112380 ), { 4320 75 } ( 0.438, 0.06707733767, 3128.38876509580 ), { 4320 76 } ( 0.423, 2.86944595927, 12566.15169998280 ), { 4320 77 } ( 0.504, 3.26207669160, 7632.94325965020 ), { 4320 78 } ( 0.552, 1.02926440457, 239762.20451754928 ), { 4320 79 } ( 0.427, 3.67434378210, 213.29909543800 ), { 4320 80 } ( 0.404, 1.46193297142, 15720.83878487840 ), { 4320 81 } ( 0.503, 4.85802444134, 6290.18939699220 ), { 4320 82 } ( 0.417, 0.81920713533, 5216.58037280140 ), { 4320 83 } ( 0.365, 0.01002966162, 12168.00269657460 ), { 4320 84 } ( 0.363, 1.28376436579, 6206.80977871580 ), { 4320 85 } ( 0.353, 4.70059133110, 7234.79425624200 ), { 4320 86 } ( 0.415, 0.96862624175, 4136.91043351620 ), { 4320 87 } ( 0.387, 3.09145061418, 25158.60171976540 ), { 4320 88 } ( 0.373, 2.65119262792, 7342.45778018060 ), { 4320 89 } ( 0.361, 2.97762937739, 9623.68827669120 ), { 4320 90 } ( 0.418, 3.75759994446, 5230.80746680300 ), { 4320 91 } ( 0.396, 1.22507712354, 6438.49624942560 ), { 4320 92 } ( 0.322, 1.21162178805, 8662.24032356300 ), { 4320 93 } ( 0.284, 5.64170320068, 1589.07289528380 ), { 4320 94 } ( 0.379, 1.72248432748, 14945.31617355440 ), { 4320 95 } ( 0.320, 3.94161159962, 7330.82316174610 ), { 4320 96 } ( 0.313, 5.47602376446, 1194.44701022460 ), { 4320 97 } ( 0.292, 1.38971327603, 11769.85369316640 ), { 4320 98 } ( 0.305, 0.80429352049, 37724.75341974820 ), { 4320 99 } ( 0.257, 5.81382809757, 426.59819087600 ), { 4320 100 } ( 0.265, 6.10358507671, 6836.64525283380 ), { 4320 101 } ( 0.250, 4.56452895547, 7477.52286021600 ), { 4320 102 } ( 0.266, 2.62926282354, 7238.67559160000 ), { 4320 103 } ( 0.263, 6.22089501237, 6133.51265285680 ), { 4320 104 } ( 0.306, 2.79682380531, 1748.01641306700 ), { 4320 105 } ( 0.236, 2.46093023714, 11371.70468975820 ), { 4320 106 } ( 0.316, 1.62662805006, 250908.49012041549 ), { 4320 107 } ( 0.216, 3.68721275185, 5849.36411211460 ), { 4320 108 } ( 0.230, 0.36165162947, 5863.59120611620 ), { 4320 109 } ( 0.233, 5.03509933858, 20426.57109242200 ), { 4320 110 } ( 0.200, 5.86073159059, 4535.05943692440 ), { 4320 111 } ( 0.277, 4.65400292395, 82239.16695779889 ), { 4320 112 } ( 0.209, 3.72323200804, 10973.55568635000 ), { 4320 113 } ( 0.199, 5.05186622555, 5429.87946823940 ), { 4320 114 } ( 0.256, 2.40923279770, 19651.04848109800 ), { 4320 115 } ( 0.210, 4.50691909144, 29088.81141598500 ), { 4320 116 } ( 0.181, 6.00294783127, 4292.33083295040 ), { 4320 117 } ( 0.249, 0.12900984422, 154379.79562448629 ), { 4320 118 } ( 0.209, 3.87759458598, 17789.84561978500 ), { 4320 119 } ( 0.225, 3.18339652605, 18875.52586977400 ), { 4320 120 } ( 0.191, 4.53897489299, 18477.10876461230 ), { 4320 121 } ( 0.172, 2.09694183014, 13095.84266507740 ), { 4320 122 } ( 0.182, 3.16107943500, 16730.46368959580 ), { 4320 123 } ( 0.188, 2.22746128596, 41654.96311596780 ), { 4320 124 } ( 0.164, 5.18686275017, 5481.25491886760 ), { 4320 125 } ( 0.160, 2.49298855159, 12592.45001978260 ), { 4320 126 } ( 0.155, 1.59595438230, 10021.83728009940 ), { 4320 127 } ( 0.135, 0.21349051064, 10988.80815753500 ), { 4320 128 } ( 0.178, 3.80375177970, 23581.25817731760 ), { 4320 129 } ( 0.123, 1.66800739151, 15110.46611986620 ), { 4320 130 } ( 0.122, 2.72678272244, 18849.22754997420 ), { 4320 131 } ( 0.126, 1.17675512910, 14919.01785375460 ), { 4320 132 } ( 0.142, 3.95053441332, 337.81426319640 ), { 4320 133 } ( 0.116, 6.06340906229, 6709.67404086740 ), { 4320 134 } ( 0.137, 3.52143246757, 12139.55350910680 ), { 4320 135 } ( 0.136, 2.92179113542, 32217.20018108080 ), { 4320 136 } ( 0.110, 3.51203379263, 18052.92954315780 ), { 4320 137 } ( 0.147, 4.63371971408, 22805.73556599360 ), { 4320 138 } ( 0.108, 5.45280814878, 7.11354700080 ), { 4320 139 } ( 0.148, 0.65447253687, 95480.94718417450 ), { 4320 140 } ( 0.119, 5.92110458985, 33019.02111220460 ), { 4320 141 } ( 0.110, 5.34824206306, 639.89728631400 ), { 4320 142 } ( 0.106, 3.71081682629, 14314.16811304980 ), { 4320 143 } ( 0.139, 6.17607198418, 24356.78078864160 ), { 4320 144 } ( 0.118, 5.59738712670, 161338.50000087050 ), { 4320 145 } ( 0.117, 3.65065271640, 45585.17281218740 ), { 4320 146 } ( 0.127, 4.74596574209, 49515.38250840700 ), { 4320 147 } ( 0.120, 1.04211499785, 6915.85958930460 ), { 4320 148 } ( 0.120, 5.60638811846, 5650.29211067820 ), { 4320 149 } ( 0.115, 3.10668213289, 14712.31711645800 ), { 4320 150 } ( 0.099, 0.69018940049, 12779.45079542080 ), { 4320 151 } ( 0.097, 1.07908724794, 9917.69687450980 ), { 4320 152 } ( 0.093, 2.62295197319, 17260.15465469040 ), { 4320 153 } ( 0.099, 4.45774681732, 4933.20844033260 ), { 4320 154 } ( 0.123, 1.37488922089, 28286.99048486120 ), { 4320 155 } ( 0.121, 5.19767249813, 27511.46787353720 ), { 4320 156 } ( 0.105, 0.87192267806, 77375.95720492408 ), { 4320 157 } ( 0.087, 3.93637812950, 17654.78053974960 ), { 4320 158 } ( 0.122, 2.23956068680, 83997.09113559539 ), { 4320 159 } ( 0.087, 4.18201600952, 22779.43724619380 ), { 4320 160 } ( 0.104, 4.59580877295, 1349.86740965880 ), { 4320 161 } ( 0.102, 2.83545248411, 12352.85260454480 ), { 4320 162 } ( 0.102, 3.97386522171, 10818.13528691580 ), { 4320 163 } ( 0.101, 4.32892825857, 36147.40987730040 ), { 4320 164 } ( 0.094, 5.00001709261, 150192.21439800429 ), { 4320 165 } ( 0.077, 3.97199369296, 1592.59601363280 ), { 4320 166 } ( 0.100, 6.07733097102, 26735.94526221320 ), { 4320 167 } ( 0.086, 5.26029638250, 28313.28880466100 ), { 4320 168 } ( 0.093, 4.31900620254, 44809.65020086340 ), { 4320 169 } ( 0.076, 6.22743405935, 13521.75144159140 ), { 4320 170 } ( 0.072, 1.55820597747, 6256.77753019160 ), { 4320 171 } ( 0.082, 4.95202664555, 10575.40668294180 ), { 4320 172 } ( 0.082, 1.69647647075, 1990.74501704100 ), { 4320 173 } ( 0.075, 2.29836095644, 3634.62102451840 ), { 4320 174 } ( 0.075, 2.66367876557, 16200.77272450120 ), { 4320 175 } ( 0.087, 0.26630214764, 31441.67756975680 ), { 4320 176 } ( 0.077, 2.25530954137, 5235.32853823670 ), { 4320 177 } ( 0.076, 1.09869730846, 12903.96596317920 ), { 4320 178 } ( 0.058, 4.28246138307, 12559.03815298200 ), { 4320 179 } ( 0.064, 5.51112830114, 173904.65170085328 ), { 4320 180 } ( 0.056, 2.60133794851, 73188.37597844210 ), { 4320 181 } ( 0.055, 5.81483150022, 143233.51002162008 ), { 4320 182 } ( 0.054, 3.38482031504, 323049.11878710288 ), { 4320 183 } ( 0.039, 3.28500401343, 71768.50988132549 ), { 4320 184 } ( 0.039, 3.11239910690, 96900.81328129109 ) (*$endif *) ); (*@\\\0000000B01*) (*@/// vsop87_ear_b1:array[0.. 98,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_ear_b1:array[0.. 1,0..2] of extended = ( (*$else *) vsop87_ear_b1:array[0.. 98,0..2] of extended = ( (*$endif *) { 4321 1 } ( 9.030, 3.89729061890, 5507.55323866740 ), { 4321 2 } ( 6.177, 1.73038850355, 5223.69391980220 ) (*$ifndef meeus *) , { 4321 3 } ( 3.800, 5.24404145734, 2352.86615377180 ), { 4321 4 } ( 2.834, 2.47345037450, 1577.34354244780 ), { 4321 5 } ( 1.817, 0.41874743765, 6283.07584999140 ), { 4321 6 } ( 1.499, 1.83320979291, 5856.47765911540 ), { 4321 7 } ( 1.466, 5.69401926017, 5753.38488489680 ), { 4321 8 } ( 1.301, 2.18890066314, 9437.76293488700 ), { 4321 9 } ( 1.233, 4.95222451476, 10213.28554621100 ), { 4321 10 } ( 1.021, 0.12866660208, 7860.41939243920 ), { 4321 11 } ( 0.982, 0.09005453285, 14143.49524243060 ), { 4321 12 } ( 0.865, 1.73949953555, 3930.20969621960 ), { 4321 13 } ( 0.581, 2.26949174067, 5884.92684658320 ), { 4321 14 } ( 0.524, 5.65662503159, 529.69096509460 ), { 4321 15 } ( 0.473, 6.22750969242, 6309.37416979120 ), { 4321 16 } ( 0.451, 1.53288619213, 18073.70493865020 ), { 4321 17 } ( 0.364, 3.61614477374, 13367.97263110660 ), { 4321 18 } ( 0.372, 3.22470721320, 6275.96230299060 ), { 4321 19 } ( 0.268, 2.34341267879, 11790.62908865880 ), { 4321 20 } ( 0.322, 0.94084045832, 6069.77675455340 ), { 4321 21 } ( 0.232, 0.26781182579, 7058.59846131540 ), { 4321 22 } ( 0.216, 6.05952221329, 10977.07880469900 ), { 4321 23 } ( 0.232, 2.93325646109, 22003.91463486980 ), { 4321 24 } ( 0.204, 3.86264841382, 6496.37494542940 ), { 4321 25 } ( 0.202, 2.81892511133, 15720.83878487840 ), { 4321 26 } ( 0.185, 4.93512381859, 12036.46073488820 ), { 4321 27 } ( 0.220, 3.99305643742, 6812.76681508600 ), { 4321 28 } ( 0.166, 1.74970002999, 11506.76976979360 ), { 4321 29 } ( 0.212, 1.57166285369, 4694.00295470760 ), { 4321 30 } ( 0.157, 1.08259734788, 5643.17856367740 ), { 4321 31 } ( 0.154, 5.99434678412, 5486.77784317500 ), { 4321 32 } ( 0.144, 5.23285656085, 78051.58573131690 ), { 4321 33 } ( 0.144, 1.16454655948, 90617.73743129970 ), { 4321 34 } ( 0.137, 2.67760436027, 6290.18939699220 ), { 4321 35 } ( 0.180, 2.06509026215, 7084.89678111520 ), { 4321 36 } ( 0.121, 5.90212574947, 9225.53927328300 ), { 4321 37 } ( 0.150, 2.00175038718, 5230.80746680300 ), { 4321 38 } ( 0.149, 5.06157254516, 17298.18232732620 ), { 4321 39 } ( 0.118, 5.39979058038, 3340.61242669980 ), { 4321 40 } ( 0.161, 3.32421999691, 6283.31966747490 ), { 4321 41 } ( 0.121, 4.36722193162, 19651.04848109800 ), { 4321 42 } ( 0.116, 5.83462858507, 4705.73230754360 ), { 4321 43 } ( 0.128, 4.35489873365, 25934.12433108940 ), { 4321 44 } ( 0.143, 0.00000000000, 0.00000000000 ), { 4321 45 } ( 0.109, 2.52157834166, 6438.49624942560 ), { 4321 46 } ( 0.099, 2.70727488041, 5216.58037280140 ), { 4321 47 } ( 0.103, 0.93782340879, 8827.39026987480 ), { 4321 48 } ( 0.082, 4.29214680390, 8635.94200376320 ), { 4321 49 } ( 0.079, 2.24085737326, 1059.38193018920 ), { 4321 50 } ( 0.097, 5.50959692365, 29864.33402730900 ), { 4321 51 } ( 0.072, 0.21891639822, 21228.39202354580 ), { 4321 52 } ( 0.071, 2.86755026812, 6681.22485339960 ), { 4321 53 } ( 0.074, 2.20184828895, 37724.75341974820 ), { 4321 54 } ( 0.063, 4.45586625948, 7079.37385680780 ), { 4321 55 } ( 0.061, 0.63918772258, 33794.54372352860 ), { 4321 56 } ( 0.047, 2.09070235724, 3128.38876509580 ), { 4321 57 } ( 0.047, 3.32543843300, 26087.90314157420 ), { 4321 58 } ( 0.049, 1.60680905005, 6702.56049386660 ), { 4321 59 } ( 0.057, 0.11215813438, 29088.81141598500 ), { 4321 60 } ( 0.056, 5.47982934911, 775.52261132400 ), { 4321 61 } ( 0.050, 1.89396788463, 12139.55350910680 ), { 4321 62 } ( 0.047, 2.97214907240, 20426.57109242200 ), { 4321 63 } ( 0.041, 5.55329394890, 11015.10647733480 ), { 4321 64 } ( 0.041, 5.91861144924, 23581.25817731760 ), { 4321 65 } ( 0.045, 4.95273290181, 5863.59120611620 ), { 4321 66 } ( 0.050, 3.62740835096, 41654.96311596780 ), { 4321 67 } ( 0.037, 6.09033460601, 64809.80550494129 ), { 4321 68 } ( 0.037, 5.86153655431, 12566.15169998280 ), { 4321 69 } ( 0.046, 1.65798680284, 25158.60171976540 ), { 4321 70 } ( 0.038, 2.00673650251, 426.59819087600 ), { 4321 71 } ( 0.036, 6.24373396652, 6283.14316029419 ), { 4321 72 } ( 0.036, 0.40465162918, 6283.00853968860 ), { 4321 73 } ( 0.032, 6.03707103538, 2942.46342329160 ), { 4321 74 } ( 0.041, 4.86809570283, 1592.59601363280 ), { 4321 75 } ( 0.028, 4.38359423735, 7632.94325965020 ), { 4321 76 } ( 0.028, 6.03334294232, 17789.84561978500 ), { 4321 77 } ( 0.026, 3.88971333608, 5331.35744374080 ), { 4321 78 } ( 0.026, 5.94932724051, 16496.36139620240 ), { 4321 79 } ( 0.031, 1.44666331503, 16730.46368959580 ), { 4321 80 } ( 0.026, 6.26376705837, 23543.23050468179 ), { 4321 81 } ( 0.033, 0.93797239147, 213.29909543800 ), { 4321 82 } ( 0.026, 3.71858432944, 13095.84266507740 ), { 4321 83 } ( 0.027, 0.60565274405, 10988.80815753500 ), { 4321 84 } ( 0.023, 4.44388985550, 18849.22754997420 ), { 4321 85 } ( 0.028, 1.53862289477, 6279.48542133960 ), { 4321 86 } ( 0.028, 1.96831814872, 6286.66627864320 ), { 4321 87 } ( 0.028, 5.78094918529, 15110.46611986620 ), { 4321 88 } ( 0.026, 2.48165809843, 5729.50644714900 ), { 4321 89 } ( 0.020, 3.85655029499, 9623.68827669120 ), { 4321 90 } ( 0.021, 5.83006047147, 7234.79425624200 ), { 4321 91 } ( 0.021, 0.69628570421, 398.14900340820 ), { 4321 92 } ( 0.022, 5.02222806555, 6127.65545055720 ), { 4321 93 } ( 0.020, 3.47611265290, 6148.01076995600 ), { 4321 94 } ( 0.020, 0.90769829044, 5481.25491886760 ), { 4321 95 } ( 0.020, 0.03081589303, 6418.14093002680 ), { 4321 96 } ( 0.020, 3.74220084927, 1589.07289528380 ), { 4321 97 } ( 0.021, 4.00149269576, 3154.68708489560 ), { 4321 98 } ( 0.018, 1.58348238359, 2118.76386037840 ), { 4321 99 } ( 0.019, 0.85407021371, 14712.31711645800 ) (*$endif *) ); (*@\\\0000006944*) (*@/// vsop87_ear_b2:array[0.. 48,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_ear_b2:array[0.. 0,0..2] of extended = ( (*$else *) vsop87_ear_b2:array[0.. 48,0..2] of extended = ( (*$endif *) (*$ifdef meeus *) ( 0.000, 0.00000000000, 0.00000000000 ) (*$else *) { 4322 1 } ( 1.662, 1.62703209173, 84334.66158130829 ), { 4322 2 } ( 0.492, 2.41382223971, 1047.74731175470 ), { 4322 3 } ( 0.344, 2.24353004539, 5507.55323866740 ), { 4322 4 } ( 0.258, 6.00906896311, 5223.69391980220 ), { 4322 5 } ( 0.131, 0.95447345240, 6283.07584999140 ), { 4322 6 } ( 0.086, 1.67530247303, 7860.41939243920 ), { 4322 7 } ( 0.090, 0.97606804452, 1577.34354244780 ), { 4322 8 } ( 0.090, 0.37899871725, 2352.86615377180 ), { 4322 9 } ( 0.089, 6.25807507963, 10213.28554621100 ), { 4322 10 } ( 0.075, 0.84213523741, 167621.57585086189 ), { 4322 11 } ( 0.052, 1.70501566089, 14143.49524243060 ), { 4322 12 } ( 0.057, 6.15295833679, 12194.03291462090 ), { 4322 13 } ( 0.051, 1.27616016740, 5753.38488489680 ), { 4322 14 } ( 0.051, 5.37229738682, 6812.76681508600 ), { 4322 15 } ( 0.034, 1.73672994279, 7058.59846131540 ), { 4322 16 } ( 0.038, 2.77761031485, 10988.80815753500 ), { 4322 17 } ( 0.046, 3.38617099014, 156475.29024799570 ), { 4322 18 } ( 0.021, 1.95248349228, 8827.39026987480 ), { 4322 19 } ( 0.018, 3.33419222028, 8429.24126646660 ), { 4322 20 } ( 0.019, 4.32945160287, 17789.84561978500 ), { 4322 21 } ( 0.017, 0.66191210656, 6283.00853968860 ), { 4322 22 } ( 0.018, 3.74885333072, 11769.85369316640 ), { 4322 23 } ( 0.017, 4.23058370776, 10977.07880469900 ), { 4322 24 } ( 0.017, 1.78116162721, 5486.77784317500 ), { 4322 25 } ( 0.021, 1.36972913918, 12036.46073488820 ), { 4322 26 } ( 0.017, 2.79601092529, 796.29800681640 ), { 4322 27 } ( 0.015, 0.43087848850, 11790.62908865880 ), { 4322 28 } ( 0.017, 1.35132152761, 78051.58573131690 ), { 4322 29 } ( 0.015, 1.17032155085, 213.29909543800 ), { 4322 30 } ( 0.018, 2.85221514199, 5088.62883976680 ), { 4322 31 } ( 0.017, 0.21780913672, 6283.14316029419 ), { 4322 32 } ( 0.013, 1.21201504386, 25132.30339996560 ), { 4322 33 } ( 0.012, 1.12953712197, 90617.73743129970 ), { 4322 34 } ( 0.012, 5.13714452592, 7079.37385680780 ), { 4322 35 } ( 0.013, 3.79842135217, 4933.20844033260 ), { 4322 36 } ( 0.012, 4.89407978213, 3738.76143010800 ), { 4322 37 } ( 0.015, 6.05682328852, 398.14900340820 ), { 4322 38 } ( 0.014, 4.81029291856, 4694.00295470760 ), { 4322 39 } ( 0.011, 0.61684523405, 3128.38876509580 ), { 4322 40 } ( 0.011, 5.32876538500, 6040.34724601740 ), { 4322 41 } ( 0.014, 5.27227350286, 4535.05943692440 ), { 4322 42 } ( 0.011, 2.39292099451, 5331.35744374080 ), { 4322 43 } ( 0.010, 4.45296532710, 6525.80445396540 ), { 4322 44 } ( 0.014, 4.66400985037, 8031.09226305840 ), { 4322 45 } ( 0.010, 3.22472385926, 9437.76293488700 ), { 4322 46 } ( 0.011, 3.80913404437, 801.82093112380 ), { 4322 47 } ( 0.010, 5.15032130575, 11371.70468975820 ), { 4322 48 } ( 0.013, 0.98720797401, 5729.50644714900 ), { 4322 49 } ( 0.009, 5.94191743597, 7632.94325965020 ) (*$endif *) ); (*@\\\0000000901*) (*@/// vsop87_ear_b3:array[0.. 10,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_ear_b3:array[0.. 0,0..2] of extended = ( (*$else *) vsop87_ear_b3:array[0.. 10,0..2] of extended = ( (*$endif *) (*$ifdef meeus *) ( 0.000, 0.00000000000, 0.00000000000 ) (*$else *) { 4323 1 } ( 0.011, 0.23877262399, 7860.41939243920 ), { 4323 2 } ( 0.009, 1.16069982609, 5507.55323866740 ), { 4323 3 } ( 0.008, 1.65357552925, 5884.92684658320 ), { 4323 4 } ( 0.008, 2.86720038197, 7058.59846131540 ), { 4323 5 } ( 0.007, 3.04818741666, 5486.77784317500 ), { 4323 6 } ( 0.007, 2.59437103785, 529.69096509460 ), { 4323 7 } ( 0.008, 4.02863090524, 6256.77753019160 ), { 4323 8 } ( 0.008, 2.42003508927, 5753.38488489680 ), { 4323 9 } ( 0.006, 0.84181087594, 6275.96230299060 ), { 4323 10 } ( 0.006, 5.40160929468, 1577.34354244780 ), { 4323 11 } ( 0.007, 2.73399865247, 6309.37416979120 ) (*$endif *) ); (*@\\\*) (*@/// vsop87_ear_b4:array[0.. 10,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_ear_b4:array[0.. 0,0..2] of extended = ( (*$else *) vsop87_ear_b4:array[0.. 4,0..2] of extended = ( (*$endif *) (*$ifdef meeus *) ( 0.000, 0.00000000000, 0.00000000000 ) (*$else *) { 4324 1 } ( 000000000.004, 0.79662198849, 6438.49624942560 ), { 4324 2 } ( 000000000.005, 0.84308705203, 1047.74731175470 ), { 4324 3 } ( 000000000.005, 0.05711572303, 84334.66158130829 ), { 4324 4 } ( 000000000.003, 3.46779895686, 6279.55273164240 ), { 4324 5 } ( 000000000.003, 2.89822201212, 6127.65545055720 ) (*$endif *) ); (*@\\\*) begin WITH result do begin a:=0; b:=0; c:=0; case index of 0: if (nr>=low(vsop87_ear_b0)) and (nr<=high(vsop87_ear_b0)) then begin a:=vsop87_ear_b0[nr,0]; b:=vsop87_ear_b0[nr,1]; c:=vsop87_ear_b0[nr,2]; end; 1: if (nr>=low(vsop87_ear_b1)) and (nr<=high(vsop87_ear_b1)) then begin a:=vsop87_ear_b1[nr,0]; b:=vsop87_ear_b1[nr,1]; c:=vsop87_ear_b1[nr,2]; end; 2: if (nr>=low(vsop87_ear_b2)) and (nr<=high(vsop87_ear_b2)) then begin a:=vsop87_ear_b2[nr,0]; b:=vsop87_ear_b2[nr,1]; c:=vsop87_ear_b2[nr,2]; end; 3: if (nr>=low(vsop87_ear_b3)) and (nr<=high(vsop87_ear_b3)) then begin a:=vsop87_ear_b3[nr,0]; b:=vsop87_ear_b3[nr,1]; c:=vsop87_ear_b3[nr,2]; end; 4: if (nr>=low(vsop87_ear_b4)) and (nr<=high(vsop87_ear_b4)) then begin a:=vsop87_ear_b4[nr,0]; b:=vsop87_ear_b4[nr,1]; c:=vsop87_ear_b4[nr,2]; end; end; end; end; (*@\\\*) (*@/// function TVSOPEarth.LongitudeFactor(nr,index: integer):TVSOPEntry; *) function TVSOPEarth.LongitudeFactor(nr,index: integer):TVSOPEntry; const (*@/// vsop87_ear_l0:array[0..558,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_ear_l0:array[0.. 63,0..2] of extended = ( (*$else *) vsop87_ear_l0:array[0..558,0..2] of extended = ( (*$endif *) { 4310 1 } ( 175347045.673, 0.00000000000, 0.00000000000 ), { 4310 2 } ( 3341656.456, 4.66925680417, 6283.07584999140 ), { 4310 3 } ( 34894.275, 4.62610241759, 12566.15169998280 ), { 4310 4 } ( 3417.571, 2.82886579606, 3.52311834900 ), { 4310 5 } ( 3497.056, 2.74411800971, 5753.38488489680 ), { 4310 6 } ( 3135.896, 3.62767041758, 77713.77146812050 ), { 4310 7 } ( 2676.218, 4.41808351397, 7860.41939243920 ), { 4310 8 } ( 2342.687, 6.13516237631, 3930.20969621960 ), { 4310 9 } ( 1273.166, 2.03709655772, 529.69096509460 ), { 4310 10 } ( 1324.292, 0.74246356352, 11506.76976979360 ), { 4310 11 } ( 901.855, 2.04505443513, 26.29831979980 ), { 4310 12 } ( 1199.167, 1.10962944315, 1577.34354244780 ), { 4310 13 } ( 857.223, 3.50849156957, 398.14900340820 ), { 4310 14 } ( 779.786, 1.17882652114, 5223.69391980220 ), { 4310 15 } ( 990.250, 5.23268129594, 5884.92684658320 ), { 4310 16 } ( 753.141, 2.53339053818, 5507.55323866740 ), { 4310 17 } ( 505.264, 4.58292563052, 18849.22754997420 ), { 4310 18 } ( 492.379, 4.20506639861, 775.52261132400 ), { 4310 19 } ( 356.655, 2.91954116867, 0.06731030280 ), { 4310 20 } ( 284.125, 1.89869034186, 796.29800681640 ), { 4310 21 } ( 242.810, 0.34481140906, 5486.77784317500 ), { 4310 22 } ( 317.087, 5.84901952218, 11790.62908865880 ), { 4310 23 } ( 271.039, 0.31488607649, 10977.07880469900 ), { 4310 24 } ( 206.160, 4.80646606059, 2544.31441988340 ), { 4310 25 } ( 205.385, 1.86947813692, 5573.14280143310 ), { 4310 26 } ( 202.261, 2.45767795458, 6069.77675455340 ), { 4310 27 } ( 126.184, 1.08302630210, 20.77539549240 ), { 4310 28 } ( 155.516, 0.83306073807, 213.29909543800 ), { 4310 29 } ( 115.132, 0.64544911683, 0.98032106820 ), { 4310 30 } ( 102.851, 0.63599846727, 4694.00295470760 ), { 4310 31 } ( 101.724, 4.26679821365, 7.11354700080 ), { 4310 32 } ( 99.206, 6.20992940258, 2146.16541647520 ), { 4310 33 } ( 132.212, 3.41118275555, 2942.46342329160 ), { 4310 34 } ( 97.607, 0.68101272270, 155.42039943420 ), { 4310 35 } ( 85.128, 1.29870743025, 6275.96230299060 ), { 4310 36 } ( 74.651, 1.75508916159, 5088.62883976680 ), { 4310 37 } ( 101.895, 0.97569221824, 15720.83878487840 ), { 4310 38 } ( 84.711, 3.67080093025, 71430.69561812909 ), { 4310 39 } ( 73.547, 4.67926565481, 801.82093112380 ), { 4310 40 } ( 73.874, 3.50319443167, 3154.68708489560 ), { 4310 41 } ( 78.756, 3.03698313141, 12036.46073488820 ), { 4310 42 } ( 79.637, 1.80791330700, 17260.15465469040 ), { 4310 43 } ( 85.803, 5.98322631256, 161000.68573767410 ), { 4310 44 } ( 56.963, 2.78430398043, 6286.59896834040 ), { 4310 45 } ( 61.148, 1.81839811024, 7084.89678111520 ), { 4310 46 } ( 69.627, 0.83297596966, 9437.76293488700 ), { 4310 47 } ( 56.116, 4.38694880779, 14143.49524243060 ), { 4310 48 } ( 62.449, 3.97763880587, 8827.39026987480 ), { 4310 49 } ( 51.145, 0.28306864501, 5856.47765911540 ), { 4310 50 } ( 55.577, 3.47006009062, 6279.55273164240 ), { 4310 51 } ( 41.036, 5.36817351402, 8429.24126646660 ), { 4310 52 } ( 51.605, 1.33282746983, 1748.01641306700 ), { 4310 53 } ( 51.992, 0.18914945834, 12139.55350910680 ), { 4310 54 } ( 49.000, 0.48735065033, 1194.44701022460 ), { 4310 55 } ( 39.200, 6.16832995016, 10447.38783960440 ), { 4310 56 } ( 35.566, 1.77597314691, 6812.76681508600 ), { 4310 57 } ( 36.770, 6.04133859347, 10213.28554621100 ), { 4310 58 } ( 36.596, 2.56955238628, 1059.38193018920 ), { 4310 59 } ( 33.291, 0.59309499459, 17789.84561978500 ), { 4310 60 } ( 35.954, 1.70876111898, 2352.86615377180 ), { 4310 61 } ( 40.938, 2.39850881707, 19651.04848109800 ), { 4310 62 } ( 30.047, 2.73975123935, 1349.86740965880 ), { 4310 63 } ( 30.412, 0.44294464135, 83996.84731811189 ), (*$ifndef meeus *) { 4310 64 } ( 23.663, 0.48473567763, 8031.09226305840 ), { 4310 65 } ( 23.574, 2.06527720049, 3340.61242669980 ), { 4310 66 } ( 21.089, 4.14825464101, 951.71840625060 ), { 4310 67 } ( 24.738, 0.21484762138, 3.59042865180 ), (*$endif *) { 4310 68 } ( 25.352, 3.16470953405, 4690.47983635860 ) (*$ifndef meeus *) , { 4310 69 } ( 22.820, 5.22197888032, 4705.73230754360 ), { 4310 70 } ( 21.419, 1.42563735525, 16730.46368959580 ), { 4310 71 } ( 21.891, 5.55594302562, 553.56940284240 ), { 4310 72 } ( 17.481, 4.56052900359, 135.06508003540 ), { 4310 73 } ( 19.925, 5.22208471269, 12168.00269657460 ), { 4310 74 } ( 19.860, 5.77470167653, 6309.37416979120 ), { 4310 75 } ( 20.300, 0.37133792946, 283.85931886520 ), { 4310 76 } ( 14.421, 4.19315332546, 242.72860397400 ), { 4310 77 } ( 16.225, 5.98837722564, 11769.85369316640 ), { 4310 78 } ( 15.077, 4.19567181073, 6256.77753019160 ), { 4310 79 } ( 19.124, 3.82219996949, 23581.25817731760 ), { 4310 80 } ( 18.888, 5.38626880969, 149854.40013480789 ), { 4310 81 } ( 14.346, 3.72355084422, 38.02767263580 ), { 4310 82 } ( 17.898, 2.21490735647, 13367.97263110660 ), { 4310 83 } ( 12.054, 2.62229588349, 955.59974160860 ), { 4310 84 } ( 11.287, 0.17739328092, 4164.31198961300 ), { 4310 85 } ( 13.971, 4.40138139996, 6681.22485339960 ), { 4310 86 } ( 13.621, 1.88934471407, 7632.94325965020 ), { 4310 87 } ( 12.503, 1.13052412208, 5.52292430740 ), { 4310 88 } ( 10.498, 5.35909518669, 1592.59601363280 ), { 4310 89 } ( 9.803, 0.99947478995, 11371.70468975820 ), { 4310 90 } ( 9.220, 4.57138609781, 4292.33083295040 ), { 4310 91 } ( 10.327, 6.19982566125, 6438.49624942560 ), { 4310 92 } ( 12.003, 1.00351456700, 632.78373931320 ), { 4310 93 } ( 10.827, 0.32734520222, 103.09277421860 ), { 4310 94 } ( 8.356, 4.53902685948, 25132.30339996560 ), { 4310 95 } ( 10.005, 6.02914963280, 5746.27133789600 ), { 4310 96 } ( 8.409, 3.29946744189, 7234.79425624200 ), { 4310 97 } ( 8.006, 5.82145271907, 28.44918746780 ), { 4310 98 } ( 10.523, 0.93871805506, 11926.25441366880 ), { 4310 99 } ( 7.686, 3.12142363172, 7238.67559160000 ), { 4310 100 } ( 9.378, 2.62414241032, 5760.49843189760 ), { 4310 101 } ( 8.127, 6.11228001785, 4732.03062734340 ), { 4310 102 } ( 9.232, 0.48343968736, 522.57741809380 ), { 4310 103 } ( 9.802, 5.24413991147, 27511.46787353720 ), { 4310 104 } ( 7.871, 0.99590177926, 5643.17856367740 ), { 4310 105 } ( 8.123, 6.27053013650, 426.59819087600 ), { 4310 106 } ( 9.048, 5.33686335897, 6386.16862421000 ), { 4310 107 } ( 8.620, 4.16538210888, 7058.59846131540 ), { 4310 108 } ( 6.297, 4.71724819317, 6836.64525283380 ), { 4310 109 } ( 7.575, 3.97382858911, 11499.65622279280 ), { 4310 110 } ( 7.756, 2.95729056763, 23013.53953958720 ), { 4310 111 } ( 7.314, 0.60652505806, 11513.88331679440 ), { 4310 112 } ( 5.955, 2.87641047971, 6283.14316029419 ), { 4310 113 } ( 6.534, 5.79072926033, 18073.70493865020 ), { 4310 114 } ( 7.188, 3.99831508699, 74.78159856730 ), { 4310 115 } ( 7.346, 4.38582365437, 316.39186965660 ), { 4310 116 } ( 5.413, 5.39199024641, 419.48464387520 ), { 4310 117 } ( 5.127, 2.36062848786, 10973.55568635000 ), { 4310 118 } ( 7.056, 0.32258441903, 263.08392337280 ), { 4310 119 } ( 6.625, 3.66475158672, 17298.18232732620 ), { 4310 120 } ( 6.762, 5.91132535899, 90955.55169449610 ), { 4310 121 } ( 4.938, 5.73672165674, 9917.69687450980 ), { 4310 122 } ( 5.547, 2.45152597661, 12352.85260454480 ), { 4310 123 } ( 5.958, 3.32051344676, 6283.00853968860 ), { 4310 124 } ( 4.471, 2.06385999536, 7079.37385680780 ), { 4310 125 } ( 6.153, 1.45823331144, 233141.31440436149 ), { 4310 126 } ( 4.348, 4.42342175480, 5216.58037280140 ), { 4310 127 } ( 6.123, 1.07494905258, 19804.82729158280 ), { 4310 128 } ( 4.488, 3.65285037150, 206.18554843720 ), { 4310 129 } ( 4.020, 0.83995823171, 20.35531939880 ), { 4310 130 } ( 5.188, 4.06503864016, 6208.29425142410 ), { 4310 131 } ( 5.307, 0.38217636096, 31441.67756975680 ), { 4310 132 } ( 3.785, 2.34369213733, 3.88133535800 ), { 4310 133 } ( 4.497, 3.27230796845, 11015.10647733480 ), { 4310 134 } ( 4.132, 0.92128915753, 3738.76143010800 ), { 4310 135 } ( 3.521, 5.97844807108, 3894.18182954220 ), { 4310 136 } ( 4.215, 1.90601120623, 245.83164622940 ), { 4310 137 } ( 3.701, 5.03069397926, 536.80451209540 ), { 4310 138 } ( 3.865, 1.82634360607, 11856.21865142450 ), { 4310 139 } ( 3.652, 1.01838584934, 16200.77272450120 ), { 4310 140 } ( 3.390, 0.97785123922, 8635.94200376320 ), { 4310 141 } ( 3.737, 2.95380107829, 3128.38876509580 ), { 4310 142 } ( 3.507, 3.71291946325, 6290.18939699220 ), { 4310 143 } ( 3.086, 3.64646921512, 10.63666534980 ), { 4310 144 } ( 3.397, 1.10590684017, 14712.31711645800 ), { 4310 145 } ( 3.334, 0.83684924911, 6496.37494542940 ), { 4310 146 } ( 2.805, 2.58504514144, 14314.16811304980 ), { 4310 147 } ( 3.650, 1.08344142571, 88860.05707098669 ), { 4310 148 } ( 3.388, 3.20185096055, 5120.60114558360 ), { 4310 149 } ( 3.252, 3.47859752062, 6133.51265285680 ), { 4310 150 } ( 2.553, 3.94869034189, 1990.74501704100 ), { 4310 151 } ( 3.520, 2.05559692878, 244287.60000722769 ), { 4310 152 } ( 2.565, 1.56071784900, 23543.23050468179 ), { 4310 153 } ( 2.621, 3.85639359951, 266.60704172180 ), { 4310 154 } ( 2.955, 3.39692949667, 9225.53927328300 ), { 4310 155 } ( 2.876, 6.02635617464, 154717.60988768269 ), { 4310 156 } ( 2.395, 1.16131956403, 10984.19235169980 ), { 4310 157 } ( 3.161, 1.32798718453, 10873.98603048040 ), { 4310 158 } ( 3.163, 5.08946464629, 21228.39202354580 ), { 4310 159 } ( 2.361, 4.27212906992, 6040.34724601740 ), { 4310 160 } ( 3.030, 1.80209931347, 35371.88726597640 ), { 4310 161 } ( 2.343, 3.57689860500, 10969.96525769820 ), { 4310 162 } ( 2.618, 2.57870156528, 22483.84857449259 ), { 4310 163 } ( 2.113, 3.71393780256, 65147.61976813770 ), { 4310 164 } ( 2.019, 0.81393923319, 170.67287061920 ), { 4310 165 } ( 2.003, 0.38091017375, 6172.86952877200 ), { 4310 166 } ( 2.506, 3.74379142438, 10575.40668294180 ), { 4310 167 } ( 2.381, 0.10581361289, 7.04623669800 ), { 4310 168 } ( 1.949, 4.86892513469, 36.02786667740 ), { 4310 169 } ( 2.074, 4.22794774570, 5650.29211067820 ), { 4310 170 } ( 1.924, 5.59460549860, 6282.09552892320 ), { 4310 171 } ( 1.949, 1.07002512703, 5230.80746680300 ), { 4310 172 } ( 1.988, 5.19736046771, 6262.30045449900 ), { 4310 173 } ( 1.887, 3.74365662683, 23.87843774780 ), { 4310 174 } ( 1.787, 1.25929682929, 12559.03815298200 ), { 4310 175 } ( 1.883, 1.90364058477, 15.25247118500 ), { 4310 176 } ( 1.816, 3.68083868442, 15110.46611986620 ), { 4310 177 } ( 1.701, 4.41105895380, 110.20632121940 ), { 4310 178 } ( 1.990, 3.93295788548, 6206.80977871580 ), { 4310 179 } ( 2.103, 0.75354917468, 13521.75144159140 ), { 4310 180 } ( 1.774, 0.48747535361, 1551.04522264800 ), { 4310 181 } ( 1.882, 0.86684493432, 22003.91463486980 ), { 4310 182 } ( 1.924, 1.22898324132, 709.93304855830 ), { 4310 183 } ( 2.009, 4.62850921980, 6037.24420376200 ), { 4310 184 } ( 1.924, 0.60231842508, 6284.05617105960 ), { 4310 185 } ( 1.596, 3.98332956992, 13916.01910964160 ), { 4310 186 } ( 1.664, 4.41939715469, 8662.24032356300 ), { 4310 187 } ( 1.971, 1.04560500503, 18209.33026366019 ), { 4310 188 } ( 1.942, 4.31335979989, 6244.94281435360 ), { 4310 189 } ( 1.476, 0.93271367331, 2379.16447357160 ), { 4310 190 } ( 1.810, 0.49112137707, 1.48447270830 ), { 4310 191 } ( 1.346, 1.51574702235, 4136.91043351620 ), { 4310 192 } ( 1.528, 5.61835711404, 6127.65545055720 ), { 4310 193 } ( 1.791, 3.22187270126, 39302.09696219600 ), { 4310 194 } ( 1.747, 3.05638656738, 18319.53658487960 ), { 4310 195 } ( 1.431, 4.51153808594, 20426.57109242200 ), { 4310 196 } ( 1.695, 0.22047718414, 25158.60171976540 ), { 4310 197 } ( 1.242, 4.46665769933, 17256.63153634140 ), { 4310 198 } ( 1.463, 4.69242679213, 14945.31617355440 ), { 4310 199 } ( 1.205, 1.86912144659, 4590.91018048900 ), { 4310 200 } ( 1.192, 2.74227166898, 12569.67481833180 ), { 4310 201 } ( 1.222, 5.18120087482, 5333.90024102160 ), { 4310 202 } ( 1.390, 5.42894648983, 143571.32428481648 ), { 4310 203 } ( 1.473, 1.70479245805, 11712.95531823080 ), { 4310 204 } ( 1.362, 2.61069503292, 6062.66320755260 ), { 4310 205 } ( 1.148, 6.03001800540, 3634.62102451840 ), { 4310 206 } ( 1.198, 5.15294130422, 10177.25767953360 ), { 4310 207 } ( 1.266, 0.11421493643, 18422.62935909819 ), { 4310 208 } ( 1.411, 1.09908857534, 3496.03282613400 ), { 4310 209 } ( 1.349, 2.99805109633, 17654.78053974960 ), { 4310 210 } ( 1.253, 2.79850152848, 167283.76158766549 ), { 4310 211 } ( 1.311, 1.60942984879, 5481.25491886760 ), { 4310 212 } ( 1.079, 6.20304501787, 3.28635741780 ), { 4310 213 } ( 1.181, 1.20653776978, 131.54196168640 ), { 4310 214 } ( 1.254, 5.45103277798, 6076.89030155420 ), { 4310 215 } ( 1.035, 2.32142722747, 7342.45778018060 ), { 4310 216 } ( 1.117, 0.38838354256, 949.17560896980 ), { 4310 217 } ( 0.966, 3.18341890851, 11087.28512591840 ), { 4310 218 } ( 1.171, 3.39635049962, 12562.62858163380 ), { 4310 219 } ( 1.121, 0.72627490378, 220.41264243880 ), { 4310 220 } ( 1.024, 2.19378315386, 11403.67699557500 ), { 4310 221 } ( 0.888, 3.91173199285, 4686.88940770680 ), { 4310 222 } ( 0.910, 1.98802695087, 735.87651353180 ), { 4310 223 } ( 0.830, 0.48984915507, 24072.92146977640 ), { 4310 224 } ( 1.096, 6.17377835617, 5436.99301524020 ), { 4310 225 } ( 0.908, 0.44959639433, 7477.52286021600 ), { 4310 226 } ( 0.974, 1.52996238356, 9623.68827669120 ), { 4310 227 } ( 0.840, 1.79543266333, 5429.87946823940 ), { 4310 228 } ( 0.778, 6.17699177946, 38.13303563780 ), { 4310 229 } ( 0.776, 4.09855402433, 14.22709400160 ), { 4310 230 } ( 1.068, 4.64200173735, 43232.30665841560 ), { 4310 231 } ( 0.954, 1.49988435748, 1162.47470440780 ), { 4310 232 } ( 0.907, 0.86986870809, 10344.29506538580 ), { 4310 233 } ( 0.931, 4.06044689031, 28766.92442448400 ), { 4310 234 } ( 0.739, 5.04368197372, 639.89728631400 ), { 4310 235 } ( 0.937, 3.46884698960, 1589.07289528380 ), { 4310 236 } ( 0.763, 5.86304932998, 16858.48253293320 ), { 4310 237 } ( 0.953, 4.20801492835, 11190.37790013700 ), { 4310 238 } ( 0.708, 1.72899988940, 13095.84266507740 ), { 4310 239 } ( 0.969, 1.64439522215, 29088.81141598500 ), { 4310 240 } ( 0.717, 0.16688678895, 11.72935283600 ), { 4310 241 } ( 0.962, 3.53092337542, 12416.58850284820 ), { 4310 242 } ( 0.747, 5.77866940346, 12592.45001978260 ), { 4310 243 } ( 0.672, 1.91095796194, 3.93215326310 ), { 4310 244 } ( 0.671, 5.46240843677, 18052.92954315780 ), { 4310 245 } ( 0.675, 6.28311558823, 4535.05943692440 ), { 4310 246 } ( 0.684, 0.39975012080, 5849.36411211460 ), { 4310 247 } ( 0.799, 0.29851185294, 12132.43996210600 ), { 4310 248 } ( 0.758, 0.96370823331, 1052.26838318840 ), { 4310 249 } ( 0.782, 5.33878339919, 13517.87010623340 ), { 4310 250 } ( 0.730, 1.70106160291, 17267.26820169119 ), { 4310 251 } ( 0.749, 2.59599901875, 11609.86254401220 ), { 4310 252 } ( 0.734, 2.78417782952, 640.87760738220 ), { 4310 253 } ( 0.688, 5.15048287468, 16496.36139620240 ), { 4310 254 } ( 0.770, 1.62469589333, 4701.11650170840 ), { 4310 255 } ( 0.633, 2.20587893893, 25934.12433108940 ), { 4310 256 } ( 0.760, 4.21317219403, 377.37360791580 ), { 4310 257 } ( 0.584, 2.13420121623, 10557.59416082380 ), { 4310 258 } ( 0.574, 0.24250054587, 9779.10867612540 ), { 4310 259 } ( 0.573, 3.16435264609, 533.21408344360 ), { 4310 260 } ( 0.685, 3.19344289472, 12146.66705610760 ), { 4310 261 } ( 0.675, 0.96179233959, 10454.50138660520 ), { 4310 262 } ( 0.648, 1.46327342555, 6268.84875598980 ), { 4310 263 } ( 0.589, 2.50543543638, 3097.88382272579 ), { 4310 264 } ( 0.551, 5.28099026956, 9388.00590941520 ), { 4310 265 } ( 0.696, 3.65342150016, 4804.20927592700 ), { 4310 266 } ( 0.669, 2.51030077026, 2388.89402044920 ), { 4310 267 } ( 0.550, 0.06883864342, 20199.09495963300 ), { 4310 268 } ( 0.629, 4.13350995675, 45892.73043315699 ), { 4310 269 } ( 0.678, 6.09190163533, 135.62532501000 ), { 4310 270 } ( 0.593, 1.50136257618, 226858.23855437008 ), { 4310 271 } ( 0.542, 3.58573645173, 6148.01076995600 ), { 4310 272 } ( 0.682, 5.02203067788, 17253.04110768959 ), { 4310 273 } ( 0.565, 4.29309238610, 11933.36796066960 ), { 4310 274 } ( 0.486, 0.77746204893, 27.40155609680 ), { 4310 275 } ( 0.503, 0.58963565969, 15671.08175940660 ), { 4310 276 } ( 0.616, 4.06539884128, 227.47613278900 ), { 4310 277 } ( 0.583, 6.12695541996, 18875.52586977400 ), { 4310 278 } ( 0.537, 2.15056440980, 21954.15760939799 ), { 4310 279 } ( 0.669, 6.06986269566, 47162.51635463520 ), { 4310 280 } ( 0.475, 0.40343842110, 6915.85958930460 ), { 4310 281 } ( 0.540, 2.83444222174, 5326.78669402080 ), { 4310 282 } ( 0.530, 5.26359885263, 10988.80815753500 ), { 4310 283 } ( 0.582, 3.24533095664, 153.77881048480 ), { 4310 284 } ( 0.641, 3.24711791371, 2107.03450754240 ), { 4310 285 } ( 0.621, 3.09698523779, 33019.02111220460 ), { 4310 286 } ( 0.466, 3.14982372198, 10440.27429260360 ), { 4310 287 } ( 0.466, 0.90708835657, 5966.68398033480 ), { 4310 288 } ( 0.528, 0.81926454470, 813.55028395980 ), { 4310 289 } ( 0.603, 3.81378921927, 316428.22867391503 ), { 4310 290 } ( 0.559, 1.81894804124, 17996.03116822220 ), { 4310 291 } ( 0.437, 2.28625594435, 6303.85124548380 ), { 4310 292 } ( 0.518, 4.86069178322, 20597.24396304120 ), { 4310 293 } ( 0.424, 6.23520018693, 6489.26139842860 ), { 4310 294 } ( 0.518, 6.17617826756, 0.24381748350 ), { 4310 295 } ( 0.404, 5.72804304258, 5642.19824260920 ), { 4310 296 } ( 0.458, 1.34117773915, 6287.00800325450 ), { 4310 297 } ( 0.548, 5.68454458320, 155427.54293624099 ), { 4310 298 } ( 0.547, 1.03391472061, 3646.35037735440 ), { 4310 299 } ( 0.428, 4.69800981138, 846.08283475120 ), { 4310 300 } ( 0.413, 6.02520699406, 6279.48542133960 ), { 4310 301 } ( 0.534, 3.03030638223, 66567.48586525429 ), { 4310 302 } ( 0.383, 1.49056949125, 19800.94595622480 ), { 4310 303 } ( 0.410, 5.28319622279, 18451.07854656599 ), { 4310 304 } ( 0.352, 4.68891600359, 4907.30205014560 ), { 4310 305 } ( 0.480, 5.36572651091, 348.92442044800 ), { 4310 306 } ( 0.344, 5.89157452896, 6546.15977336420 ), { 4310 307 } ( 0.340, 0.37557426440, 13119.72110282519 ), { 4310 308 } ( 0.434, 4.98417785901, 6702.56049386660 ), { 4310 309 } ( 0.332, 2.68902519126, 29296.61538957860 ), { 4310 310 } ( 0.448, 2.16478480251, 5905.70224207560 ), { 4310 311 } ( 0.344, 2.06546633735, 49.75702547180 ), { 4310 312 } ( 0.315, 1.24023811803, 4061.21921539440 ), { 4310 313 } ( 0.324, 2.30897526929, 5017.50837136500 ), { 4310 314 } ( 0.413, 0.17171692962, 6286.66627864320 ), { 4310 315 } ( 0.431, 3.86601101393, 12489.88562870720 ), { 4310 316 } ( 0.349, 4.55372342974, 4933.20844033260 ), { 4310 317 } ( 0.323, 0.41971136084, 10770.89325626180 ), { 4310 318 } ( 0.341, 2.68612860807, 11.04570026390 ), { 4310 319 } ( 0.316, 3.52936906658, 17782.73207278420 ), { 4310 320 } ( 0.315, 5.63357264999, 568.82187402740 ), { 4310 321 } ( 0.340, 3.83571212349, 10660.68693504240 ), { 4310 322 } ( 0.297, 0.62691416712, 20995.39296644940 ), { 4310 323 } ( 0.405, 1.00085779471, 16460.33352952499 ), { 4310 324 } ( 0.414, 1.21998752076, 51092.72605085480 ), { 4310 325 } ( 0.336, 4.71465945226, 6179.98307577280 ), { 4310 326 } ( 0.361, 3.71227508354, 28237.23345938940 ), { 4310 327 } ( 0.385, 6.21925225757, 24356.78078864160 ), { 4310 328 } ( 0.327, 1.05606504715, 11919.14086666800 ), { 4310 329 } ( 0.327, 6.14222420989, 6254.62666252360 ), { 4310 330 } ( 0.268, 2.47224339737, 664.75604513000 ), { 4310 331 } ( 0.269, 1.86207884109, 23141.55838292460 ), { 4310 332 } ( 0.345, 0.93461290184, 6058.73105428950 ), { 4310 333 } ( 0.296, 4.51687557180, 6418.14093002680 ), { 4310 334 } ( 0.353, 4.50033653082, 36949.23080842420 ), { 4310 335 } ( 0.260, 4.04963546305, 6525.80445396540 ), { 4310 336 } ( 0.298, 2.20046722622, 156137.47598479928 ), { 4310 337 } ( 0.253, 3.49900838384, 29864.33402730900 ), { 4310 338 } ( 0.254, 2.44901693835, 5331.35744374080 ), { 4310 339 } ( 0.296, 0.84347588787, 5729.50644714900 ), { 4310 340 } ( 0.298, 1.29194706125, 22805.73556599360 ), { 4310 341 } ( 0.241, 2.00721280805, 16737.57723659660 ), { 4310 342 } ( 0.311, 1.23668016334, 6281.59137728310 ), { 4310 343 } ( 0.240, 2.51650377121, 6245.04817735560 ), { 4310 344 } ( 0.332, 3.55576945724, 7668.63742494250 ), { 4310 345 } ( 0.264, 4.44052061202, 12964.30070339100 ), { 4310 346 } ( 0.257, 1.79654471948, 11080.17157891760 ), { 4310 347 } ( 0.260, 3.33077598420, 5888.44996493220 ), { 4310 348 } ( 0.285, 0.30886361430, 11823.16163945020 ), { 4310 349 } ( 0.290, 5.70141882483, 77.67377042800 ), { 4310 350 } ( 0.255, 4.00939664440, 5881.40372823420 ), { 4310 351 } ( 0.253, 4.73318493678, 16723.35014259500 ), { 4310 352 } ( 0.228, 0.95333661324, 5540.08578945880 ), { 4310 353 } ( 0.319, 1.38633229189, 163096.18036118349 ), { 4310 354 } ( 0.224, 1.65156322696, 10027.90319572920 ), { 4310 355 } ( 0.226, 0.34106460604, 17796.95916678580 ), { 4310 356 } ( 0.236, 4.19817431922, 19.66976089979 ), { 4310 357 } ( 0.280, 4.14080268970, 12539.85338018300 ), { 4310 358 } ( 0.275, 5.50306930248, 32.53255079140 ), { 4310 359 } ( 0.223, 5.23334210294, 56.89837493560 ), { 4310 360 } ( 0.217, 6.08587881787, 6805.65326808520 ), { 4310 361 } ( 0.280, 4.52472044653, 6016.46880826960 ), { 4310 362 } ( 0.227, 5.06509843737, 6277.55292568400 ), { 4310 363 } ( 0.226, 5.17755154305, 11720.06886523160 ), { 4310 364 } ( 0.245, 3.96486270306, 22.77520145080 ), { 4310 365 } ( 0.220, 4.72078081970, 6.62855890001 ), { 4310 366 } ( 0.207, 5.71701403951, 41.55079098480 ), { 4310 367 } ( 0.204, 3.91227411250, 2699.73481931760 ), { 4310 368 } ( 0.209, 0.86881969011, 6321.10352262720 ), { 4310 369 } ( 0.200, 2.11984445273, 4274.51831083240 ), { 4310 370 } ( 0.200, 5.39839888163, 6019.99192661860 ), { 4310 371 } ( 0.209, 5.67606291663, 11293.47067435560 ), { 4310 372 } ( 0.252, 1.64965729351, 9380.95967271720 ), { 4310 373 } ( 0.275, 5.04826903506, 73.29712585900 ), { 4310 374 } ( 0.208, 1.88207277133, 11300.58422135640 ), { 4310 375 } ( 0.272, 0.74640926842, 1975.49254585600 ), { 4310 376 } ( 0.199, 3.30836672397, 22743.40937951640 ), { 4310 377 } ( 0.269, 4.48560812155, 64471.99124174489 ), { 4310 378 } ( 0.192, 2.17464236325, 5863.59120611620 ), { 4310 379 } ( 0.228, 5.85373115869, 128.01884333740 ), { 4310 380 } ( 0.261, 2.64321183295, 55022.93574707440 ), { 4310 381 } ( 0.220, 5.75012110079, 29.42950853600 ), { 4310 382 } ( 0.187, 4.03230554718, 467.96499035440 ), { 4310 383 } ( 0.200, 5.60556112058, 1066.49547719000 ), { 4310 384 } ( 0.231, 1.09802712785, 12341.80690428090 ), { 4310 385 } ( 0.199, 0.29500625200, 149.56319713460 ), { 4310 386 } ( 0.249, 5.10473210814, 7875.67186362420 ), { 4310 387 } ( 0.208, 0.93013835019, 14919.01785375460 ), { 4310 388 } ( 0.179, 0.87104393079, 12721.57209941700 ), { 4310 389 } ( 0.203, 1.56920753653, 28286.99048486120 ), { 4310 390 } ( 0.179, 2.47036386443, 16062.18452611680 ), { 4310 391 } ( 0.198, 3.54061588502, 30.91412563500 ), { 4310 392 } ( 0.171, 3.45356518113, 5327.47610838280 ), { 4310 393 } ( 0.183, 0.72325421604, 6272.03014972750 ), { 4310 394 } ( 0.216, 2.97174580686, 19402.79695281660 ), { 4310 395 } ( 0.168, 2.51550550242, 23937.85638974100 ), { 4310 396 } ( 0.195, 0.09045393425, 156.40072050240 ), { 4310 397 } ( 0.179, 4.49471798090, 31415.37924995700 ), { 4310 398 } ( 0.216, 0.42177594328, 23539.70738633280 ), { 4310 399 } ( 0.189, 0.37542530191, 9814.60410029120 ), { 4310 400 } ( 0.218, 2.36835880025, 16627.37091537720 ), { 4310 401 } ( 0.166, 4.23182968446, 16840.67001081519 ), { 4310 402 } ( 0.200, 2.02153258098, 16097.67995028260 ), { 4310 403 } ( 0.169, 0.91318727000, 95.97922721780 ), { 4310 404 } ( 0.211, 5.73370637657, 151.89728108520 ), { 4310 405 } ( 0.204, 0.42643085174, 515.46387109300 ), { 4310 406 } ( 0.212, 3.00233538977, 12043.57428188900 ), { 4310 407 } ( 0.192, 5.46153589821, 6379.05507720920 ), { 4310 408 } ( 0.165, 1.38698167064, 4171.42553661380 ), { 4310 409 } ( 0.160, 6.23798383332, 202.25339517410 ), { 4310 410 } ( 0.215, 0.20889073407, 5621.84292321040 ), { 4310 411 } ( 0.181, 4.12439203622, 13341.67431130680 ), { 4310 412 } ( 0.153, 1.24460848836, 29826.30635467320 ), { 4310 413 } ( 0.150, 3.12999753018, 799.82112516540 ), { 4310 414 } ( 0.175, 4.55671604437, 239424.39025435288 ), { 4310 415 } ( 0.192, 1.33928820063, 394.62588505920 ), { 4310 416 } ( 0.149, 2.65697593276, 21.33564046700 ), { 4310 417 } ( 0.146, 5.58021191726, 412.37109687440 ), { 4310 418 } ( 0.156, 3.75650175503, 12323.42309600880 ), { 4310 419 } ( 0.143, 3.75708566606, 58864.54391814630 ), { 4310 420 } ( 0.143, 3.28248547724, 29.82143814880 ), { 4310 421 } ( 0.144, 1.07862546598, 1265.56747862640 ), { 4310 422 } ( 0.148, 0.23389236655, 10021.83728009940 ), { 4310 423 } ( 0.193, 5.92751083086, 40879.44050464380 ), { 4310 424 } ( 0.140, 4.97612440269, 158.94351778320 ), { 4310 425 } ( 0.148, 2.61640453469, 17157.06188047180 ), { 4310 426 } ( 0.141, 3.66871308723, 26084.02180621620 ), { 4310 427 } ( 0.147, 5.09968173403, 661.23292678100 ), { 4310 428 } ( 0.146, 4.96885605695, 57375.80190084620 ), { 4310 429 } ( 0.142, 0.78678347839, 12779.45079542080 ), { 4310 430 } ( 0.134, 4.79432636012, 111.18664228760 ), { 4310 431 } ( 0.140, 1.27748013377, 107.66352393860 ), { 4310 432 } ( 0.169, 2.74893543762, 26735.94526221320 ), { 4310 433 } ( 0.165, 3.95288000638, 6357.85744855870 ), { 4310 434 } ( 0.183, 5.43418358741, 369.69981594040 ), { 4310 435 } ( 0.134, 3.09132862833, 17.81252211800 ), { 4310 436 } ( 0.132, 3.05633896779, 22490.96212149340 ), { 4310 437 } ( 0.134, 4.09472795832, 6599.46771964800 ), { 4310 438 } ( 0.181, 4.22950689891, 966.97087743560 ), { 4310 439 } ( 0.152, 5.28885894415, 12669.24447420140 ), { 4310 440 } ( 0.150, 5.86819430908, 97238.62754448749 ), { 4310 441 } ( 0.142, 5.87266532526, 22476.73502749179 ), { 4310 442 } ( 0.145, 5.07330784304, 87.30820453981 ), { 4310 443 } ( 0.133, 5.65471067133, 31.97230581680 ), { 4310 444 } ( 0.124, 2.83326217072, 12566.21901028560 ), { 4310 445 } ( 0.135, 3.12861731644, 32217.20018108080 ), { 4310 446 } ( 0.137, 0.86487461904, 9924.81042151060 ), { 4310 447 } ( 0.172, 1.98369595114, 174242.46596404970 ), { 4310 448 } ( 0.170, 4.41115280254, 327574.51427678125 ), { 4310 449 } ( 0.151, 0.46542099527, 39609.65458316560 ), { 4310 450 } ( 0.148, 2.13439571118, 491.66329245880 ), { 4310 451 } ( 0.153, 3.78801830344, 17363.24742890899 ), { 4310 452 } ( 0.165, 5.31654110459, 16943.76278503380 ), { 4310 453 } ( 0.165, 4.06747587817, 58953.14544329400 ), { 4310 454 } ( 0.118, 0.63846333239, 6.06591562980 ), { 4310 455 } ( 0.159, 0.86086959274, 221995.02880149524 ), { 4310 456 } ( 0.119, 5.96432932413, 1385.89527633620 ), { 4310 457 } ( 0.114, 5.16516114595, 25685.87280280800 ), { 4310 458 } ( 0.112, 3.39403722178, 21393.54196985760 ), { 4310 459 } ( 0.112, 4.92889233335, 56.80326216980 ), { 4310 460 } ( 0.119, 2.40637635942, 18635.92845453620 ), { 4310 461 } ( 0.115, 0.23374479051, 418.92439890060 ), { 4310 462 } ( 0.122, 0.93575234049, 24492.40611365159 ), { 4310 463 } ( 0.115, 4.58880032176, 26709.64694241340 ), { 4310 464 } ( 0.130, 4.85539251000, 22345.26037610820 ), { 4310 465 } ( 0.140, 1.09413073202, 44809.65020086340 ), { 4310 466 } ( 0.112, 6.05401806281, 433.71173787680 ), { 4310 467 } ( 0.104, 1.54931540602, 127.95153303460 ), { 4310 468 } ( 0.105, 4.82620858888, 33794.54372352860 ), { 4310 469 } ( 0.102, 4.12448497391, 15664.03552270859 ), { 4310 470 } ( 0.107, 4.67919356465, 77690.75950573849 ), { 4310 471 } ( 0.118, 4.52320170120, 19004.64794940840 ), { 4310 472 } ( 0.107, 5.71774478555, 77736.78343050249 ), { 4310 473 } ( 0.143, 1.81201813018, 4214.06901508480 ), { 4310 474 } ( 0.125, 1.14419195615, 625.67019231240 ), { 4310 475 } ( 0.124, 3.27736514057, 12566.08438968000 ), { 4310 476 } ( 0.110, 1.08682570828, 2787.04302385740 ), { 4310 477 } ( 0.105, 1.78318141871, 18139.29450141590 ), { 4310 478 } ( 0.102, 4.75119578149, 12242.64628332540 ), { 4310 479 } ( 0.137, 1.43510636754, 86464.61331683119 ), { 4310 480 } ( 0.101, 4.91289409429, 401.67212175720 ), { 4310 481 } ( 0.129, 1.23567904485, 12029.34718788740 ), { 4310 482 } ( 0.138, 2.45654707999, 7576.56007357400 ), { 4310 483 } ( 0.103, 0.40004073416, 90279.92316810328 ), { 4310 484 } ( 0.108, 0.98989774940, 5636.06501667660 ), { 4310 485 } ( 0.117, 5.17362872063, 34520.30930938080 ), { 4310 486 } ( 0.100, 3.95534628189, 5547.19933645960 ), { 4310 487 } ( 0.098, 1.28118280598, 21548.96236929180 ), { 4310 488 } ( 0.097, 3.34717130592, 16310.97904572060 ), { 4310 489 } ( 0.098, 4.37041908717, 34513.26307268280 ), { 4310 490 } ( 0.125, 2.72164432960, 24065.80792277559 ), { 4310 491 } ( 0.102, 0.66938025772, 10239.58386601080 ), { 4310 492 } ( 0.119, 1.21689479331, 1478.86657406440 ), { 4310 493 } ( 0.094, 1.99595224256, 13362.44970679920 ), { 4310 494 } ( 0.094, 4.30965982872, 26880.31981303260 ), { 4310 495 } ( 0.095, 2.89807657534, 34911.41207609100 ), { 4310 496 } ( 0.106, 1.00156653590, 16522.65971600220 ), { 4310 497 } ( 0.097, 0.89642320201, 71980.63357473118 ), { 4310 498 } ( 0.116, 4.19967201116, 206.70073729660 ), { 4310 499 } ( 0.099, 1.37437847718, 1039.02661079040 ), { 4310 500 } ( 0.126, 3.21642544972, 305281.94307104882 ), { 4310 501 } ( 0.094, 0.68997876060, 7834.12107263940 ), { 4310 502 } ( 0.094, 5.58132218606, 3104.93005942380 ), { 4310 503 } ( 0.095, 3.03823741110, 8982.81066930900 ), { 4310 504 } ( 0.108, 0.52696637156, 276.74577186440 ), { 4310 505 } ( 0.124, 3.43899862683, 172146.97134054029 ), { 4310 506 } ( 0.102, 1.04031728553, 95143.13292097810 ), { 4310 507 } ( 0.104, 3.39218586218, 290.97286586600 ), { 4310 508 } ( 0.110, 3.68205877433, 22380.75580027400 ), { 4310 509 } ( 0.117, 0.78475956902, 83286.91426955358 ), { 4310 510 } ( 0.083, 0.18241793425, 15141.39079431200 ), { 4310 511 } ( 0.089, 4.45371820659, 792.77488846740 ), { 4310 512 } ( 0.082, 4.80703651241, 6819.88036208680 ), { 4310 513 } ( 0.087, 3.43122851097, 27707.54249429480 ), { 4310 514 } ( 0.101, 5.32081603011, 2301.58581590939 ), { 4310 515 } ( 0.082, 0.87060089842, 10241.20229116720 ), { 4310 516 } ( 0.086, 4.61919461931, 36147.40987730040 ), { 4310 517 } ( 0.095, 2.87032884659, 23020.65308658799 ), { 4310 518 } ( 0.088, 3.21133165690, 33326.57873317420 ), { 4310 519 } ( 0.080, 1.84900424847, 21424.46664430340 ), { 4310 520 } ( 0.101, 4.18796434479, 30666.15495843280 ), { 4310 521 } ( 0.107, 5.77864921649, 34115.11406927460 ), { 4310 522 } ( 0.104, 1.08739495962, 6288.59877429880 ), { 4310 523 } ( 0.110, 3.32898859416, 72140.62866668739 ), { 4310 524 } ( 0.087, 4.40657711727, 142.17862703620 ), { 4310 525 } ( 0.109, 1.94546030825, 24279.10701821359 ), { 4310 526 } ( 0.087, 4.32472045435, 742.99006053260 ), { 4310 527 } ( 0.107, 4.91580912547, 277.03499374140 ), { 4310 528 } ( 0.088, 2.10180220766, 26482.17080962440 ), { 4310 529 } ( 0.086, 4.01887374432, 12491.37010141550 ), { 4310 530 } ( 0.106, 5.49092372854, 62883.35513951360 ), { 4310 531 } ( 0.080, 6.19781316983, 6709.67404086740 ), { 4310 532 } ( 0.088, 2.09872810657, 238004.52415723629 ), { 4310 533 } ( 0.083, 4.90662164029, 51.28033786241 ), { 4310 534 } ( 0.095, 4.13387406591, 18216.44381066100 ), { 4310 535 } ( 0.078, 6.06949391680, 148434.53403769129 ), { 4310 536 } ( 0.079, 3.03048221644, 838.96928775040 ), { 4310 537 } ( 0.074, 5.49813051211, 29026.48522950779 ), { 4310 538 } ( 0.073, 3.05008665738, 567.71863773040 ), { 4310 539 } ( 0.084, 0.46604373274, 45.14121963660 ), { 4310 540 } ( 0.093, 2.52267536308, 48739.85989708300 ), { 4310 541 } ( 0.076, 1.76418124905, 41654.96311596780 ), { 4310 542 } ( 0.067, 5.77851227793, 6311.52503745920 ), { 4310 543 } ( 0.062, 3.32967880172, 15508.61512327440 ), { 4310 544 } ( 0.079, 5.59773841328, 71960.38658322369 ), { 4310 545 } ( 0.057, 3.90629505268, 5999.21653112620 ), { 4310 546 } ( 0.061, 0.05695043232, 7856.89627409019 ), { 4310 547 } ( 0.061, 5.63297958433, 7863.94251078820 ), { 4310 548 } ( 0.065, 3.72178394016, 12573.26524698360 ), { 4310 549 } ( 0.057, 4.18217219541, 26087.90314157420 ), { 4310 550 } ( 0.066, 3.92262333487, 69853.35207568129 ), { 4310 551 } ( 0.053, 5.51119362045, 77710.24834977149 ), { 4310 552 } ( 0.053, 4.88573986961, 77717.29458646949 ), { 4310 553 } ( 0.062, 2.88876342225, 9411.46461508720 ), { 4310 554 } ( 0.051, 1.12657183874, 82576.98122099529 ), { 4310 555 } ( 0.045, 2.95671076719, 24602.61243487099 ), { 4310 556 } ( 0.040, 5.55145719241, 12565.17137891460 ), { 4310 557 } ( 0.039, 1.20838190039, 18842.11400297339 ), { 4310 558 } ( 0.045, 3.18590558749, 45585.17281218740 ), { 4310 559 } ( 0.049, 2.44790934886, 13613.80427733600 ) (*$endif *) ); (*@\\\*) (*@/// vsop87_ear_l1:array[0..340,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_ear_l1:array[0.. 33,0..2] of extended = ( (*$else *) vsop87_ear_l1:array[0..340,0..2] of extended = ( (*$endif *) { 4311 1 }(628331966747.491, 0.00000000000, 0.00000000000 ), { 4311 2 } ( 206058.863, 2.67823455584, 6283.07584999140 ), { 4311 3 } ( 4303.430, 2.63512650414, 12566.15169998280 ), { 4311 4 } ( 425.264, 1.59046980729, 3.52311834900 ), { 4311 5 } ( 108.977, 2.96618001993, 1577.34354244780 ), { 4311 6 } ( 093.478, 2.59212835365, 18849.22754997420 ), { 4311 7 } ( 119.261, 5.79557487799, 26.29831979980 ), { 4311 8 } ( 72.122, 1.13846158196, 529.69096509460 ), { 4311 9 } ( 67.768, 1.87472304791, 398.14900340820 ), { 4311 10 } ( 67.327, 4.40918235168, 5507.55323866740 ), { 4311 11 } ( 59.027, 2.88797038460, 5223.69391980220 ), { 4311 12 } ( 55.976, 2.17471680261, 155.42039943420 ), { 4311 13 } ( 45.407, 0.39803079805, 796.29800681640 ), { 4311 14 } ( 36.369, 0.46624739835, 775.52261132400 ), { 4311 15 } ( 28.958, 2.64707383882, 7.11354700080 ), { 4311 16 } ( 19.097, 1.84628332577, 5486.77784317500 ), { 4311 17 } ( 20.844, 5.34138275149, 0.98032106820 ), { 4311 18 } ( 18.508, 4.96855124577, 213.29909543800 ), { 4311 19 } ( 16.233, 0.03216483047, 2544.31441988340 ), { 4311 20 } ( 17.293, 2.99116864949, 6275.96230299060 ), { 4311 21 } ( 15.832, 1.43049285325, 2146.16541647520 ), { 4311 22 } ( 14.615, 1.20532366323, 10977.07880469900 ), { 4311 23 } ( 11.877, 3.25804815607, 5088.62883976680 ), { 4311 24 } ( 11.514, 2.07502418155, 4694.00295470760 ), { 4311 25 } ( 9.721, 4.23925472239, 1349.86740965880 ), { 4311 26 } ( 9.969, 1.30262991097, 6286.59896834040 ), { 4311 27 } ( 9.452, 2.69957062864, 242.72860397400 ), { 4311 28 } ( 12.461, 2.83432285512, 1748.01641306700 ), { 4311 29 } ( 11.808, 5.27379790480, 1194.44701022460 ), { 4311 30 } ( 8.577, 5.64475868067, 951.71840625060 ), { 4311 31 } ( 10.641, 0.76614199202, 553.56940284240 ), { 4311 32 } ( 7.576, 5.30062664886, 2352.86615377180 ), (*$ifndef meeus *) { 4311 33 } ( 5.834, 1.76649917904, 1059.38193018920 ), (*$endif *) { 4311 34 } ( 6.385, 2.65033984967, 9437.76293488700 ), (*$ifndef meeus *) { 4311 35 } ( 5.223, 5.66135767624, 71430.69561812909 ), { 4311 36 } ( 5.305, 0.90857521574, 3154.68708489560 ), (*$endif *) { 4311 37 } ( 6.101, 4.66632584188, 4690.47983635860 ) (*$ifndef meeus *) , { 4311 38 } ( 4.330, 0.24102555403, 6812.76681508600 ), { 4311 39 } ( 5.041, 1.42490103709, 6438.49624942560 ), { 4311 40 } ( 4.259, 0.77355900599, 10447.38783960440 ), { 4311 41 } ( 5.198, 1.85353197345, 801.82093112380 ), { 4311 42 } ( 3.744, 2.00119516488, 8031.09226305840 ), { 4311 43 } ( 3.558, 2.42901552681, 14143.49524243060 ), { 4311 44 } ( 3.372, 3.86210700128, 1592.59601363280 ), { 4311 45 } ( 3.374, 0.88776219727, 12036.46073488820 ), { 4311 46 } ( 3.175, 3.18785710594, 4705.73230754360 ), { 4311 47 } ( 3.221, 0.61599835472, 8429.24126646660 ), { 4311 48 } ( 4.132, 5.23992859705, 7084.89678111520 ), { 4311 49 } ( 2.970, 6.07026318493, 4292.33083295040 ), { 4311 50 } ( 2.900, 2.32464208411, 20.35531939880 ), { 4311 51 } ( 3.504, 4.79975694359, 6279.55273164240 ), { 4311 52 } ( 2.950, 1.43108874817, 5746.27133789600 ), { 4311 53 } ( 2.697, 4.80368225199, 7234.79425624200 ), { 4311 54 } ( 2.531, 6.22290682655, 6836.64525283380 ), { 4311 55 } ( 2.745, 0.93466065396, 5760.49843189760 ), { 4311 56 } ( 3.250, 3.39954640038, 7632.94325965020 ), { 4311 57 } ( 2.277, 5.00277837672, 17789.84561978500 ), { 4311 58 } ( 2.075, 3.95534978634, 10213.28554621100 ), { 4311 59 } ( 2.061, 2.22411683077, 5856.47765911540 ), { 4311 60 } ( 2.252, 5.67166499885, 11499.65622279280 ), { 4311 61 } ( 2.148, 5.20184578235, 11513.88331679440 ), { 4311 62 } ( 1.886, 0.53198320577, 3340.61242669980 ), { 4311 63 } ( 1.875, 4.73511970207, 83996.84731811189 ), { 4311 64 } ( 2.060, 2.54987293999, 25132.30339996560 ), { 4311 65 } ( 1.794, 1.47435409831, 4164.31198961300 ), { 4311 66 } ( 1.778, 3.02473091781, 5.52292430740 ), { 4311 67 } ( 2.029, 0.90960209983, 6256.77753019160 ), { 4311 68 } ( 2.075, 2.26767270157, 522.57741809380 ), { 4311 69 } ( 1.772, 3.02622802353, 5753.38488489680 ), { 4311 70 } ( 1.569, 6.12410242782, 5216.58037280140 ), { 4311 71 } ( 1.590, 4.63713748247, 3.28635741780 ), { 4311 72 } ( 1.542, 4.20004448567, 13367.97263110660 ), { 4311 73 } ( 1.427, 1.19088061711, 3894.18182954220 ), { 4311 74 } ( 1.375, 3.09301252193, 135.06508003540 ), { 4311 75 } ( 1.359, 4.24532506641, 426.59819087600 ), { 4311 76 } ( 1.340, 5.76511818622, 6040.34724601740 ), { 4311 77 } ( 1.284, 3.08524663344, 5643.17856367740 ), { 4311 78 } ( 1.250, 3.07748157144, 11926.25441366880 ), { 4311 79 } ( 1.551, 3.07665451458, 6681.22485339960 ), { 4311 80 } ( 1.268, 2.09196018331, 6290.18939699220 ), { 4311 81 } ( 1.144, 3.24444699514, 12168.00269657460 ), { 4311 82 } ( 1.248, 3.44504937285, 536.80451209540 ), { 4311 83 } ( 1.118, 2.31829670425, 16730.46368959580 ), { 4311 84 } ( 1.105, 5.31966001019, 23.87843774780 ), { 4311 85 } ( 1.051, 3.75015946014, 7860.41939243920 ), { 4311 86 } ( 1.025, 2.44688534235, 1990.74501704100 ), { 4311 87 } ( 0.962, 0.81771017882, 3.88133535800 ), { 4311 88 } ( 0.910, 0.41727865299, 7079.37385680780 ), { 4311 89 } ( 0.883, 5.16833917651, 11790.62908865880 ), { 4311 90 } ( 0.957, 4.07673573735, 6127.65545055720 ), { 4311 91 } ( 1.110, 3.90096793825, 11506.76976979360 ), { 4311 92 } ( 0.802, 3.88778875582, 10973.55568635000 ), { 4311 93 } ( 0.780, 2.39934293755, 1589.07289528380 ), { 4311 94 } ( 0.758, 1.30034364248, 103.09277421860 ), { 4311 95 } ( 0.749, 4.96275803300, 6496.37494542940 ), { 4311 96 } ( 0.765, 3.36312388424, 36.02786667740 ), { 4311 97 } ( 0.915, 5.41543742089, 206.18554843720 ), { 4311 98 } ( 0.776, 2.57589093871, 11371.70468975820 ), { 4311 99 } ( 0.772, 3.98369209464, 955.59974160860 ), { 4311 100 } ( 0.749, 5.17890001805, 10969.96525769820 ), { 4311 101 } ( 0.806, 0.34218864254, 9917.69687450980 ), { 4311 102 } ( 0.728, 5.20962563787, 38.02767263580 ), { 4311 103 } ( 0.685, 2.77592961854, 20.77539549240 ), { 4311 104 } ( 0.636, 4.28242193632, 28.44918746780 ), { 4311 105 } ( 0.608, 5.63278508906, 10984.19235169980 ), { 4311 106 } ( 0.704, 5.60738823665, 3738.76143010800 ), { 4311 107 } ( 0.685, 0.38876148682, 15.25247118500 ), { 4311 108 } ( 0.601, 0.73489602442, 419.48464387520 ), { 4311 109 } ( 0.716, 2.65279791438, 6309.37416979120 ), { 4311 110 } ( 0.584, 5.54502568227, 17298.18232732620 ), { 4311 111 } ( 0.650, 1.13379656406, 7058.59846131540 ), { 4311 112 } ( 0.688, 2.59683891779, 3496.03282613400 ), { 4311 113 } ( 0.485, 0.44467180946, 12352.85260454480 ), { 4311 114 } ( 0.528, 2.74936967681, 3930.20969621960 ), { 4311 115 } ( 0.597, 5.27668281777, 10575.40668294180 ), { 4311 116 } ( 0.583, 3.18929067810, 4732.03062734340 ), { 4311 117 } ( 0.526, 5.01697321546, 5884.92684658320 ), { 4311 118 } ( 0.540, 1.29175137075, 640.87760738220 ), { 4311 119 } ( 0.473, 5.49953306970, 5230.80746680300 ), { 4311 120 } ( 0.406, 5.21248452189, 220.41264243880 ), { 4311 121 } ( 0.395, 1.87474483222, 16200.77272450120 ), { 4311 122 } ( 0.370, 3.84921354713, 18073.70493865020 ), { 4311 123 } ( 0.367, 0.88533542778, 6283.14316029419 ), { 4311 124 } ( 0.379, 0.37983009325, 10177.25767953360 ), { 4311 125 } ( 0.356, 3.84145204913, 11712.95531823080 ), { 4311 126 } ( 0.374, 5.01577520608, 7.04623669800 ), { 4311 127 } ( 0.381, 4.30250406634, 6062.66320755260 ), { 4311 128 } ( 0.471, 0.86381834647, 6069.77675455340 ), { 4311 129 } ( 0.367, 1.32943839763, 6283.00853968860 ), { 4311 130 } ( 0.460, 5.19667219575, 6284.05617105960 ), { 4311 131 } ( 0.333, 5.54256205741, 4686.88940770680 ), { 4311 132 } ( 0.341, 4.36522989934, 7238.67559160000 ), { 4311 133 } ( 0.336, 4.00205876835, 3097.88382272579 ), { 4311 134 } ( 0.359, 6.22679790284, 245.83164622940 ), { 4311 135 } ( 0.307, 2.35299010924, 170.67287061920 ), { 4311 136 } ( 0.343, 3.77164927143, 6076.89030155420 ), { 4311 137 } ( 0.296, 5.44152227481, 17260.15465469040 ), { 4311 138 } ( 0.328, 0.13837875384, 11015.10647733480 ), { 4311 139 } ( 0.268, 1.13904550630, 12569.67481833180 ), { 4311 140 } ( 0.263, 0.00538633678, 4136.91043351620 ), { 4311 141 } ( 0.282, 5.04399837480, 7477.52286021600 ), { 4311 142 } ( 0.288, 3.13401177517, 12559.03815298200 ), { 4311 143 } ( 0.259, 0.93882269387, 5642.19824260920 ), { 4311 144 } ( 0.292, 1.98420020514, 12132.43996210600 ), { 4311 145 } ( 0.247, 3.84244798532, 5429.87946823940 ), { 4311 146 } ( 0.245, 5.70467521726, 65147.61976813770 ), { 4311 147 } ( 0.241, 0.99480969552, 3634.62102451840 ), { 4311 148 } ( 0.246, 3.06168069935, 110.20632121940 ), { 4311 149 } ( 0.239, 6.11855909114, 11856.21865142450 ), { 4311 150 } ( 0.263, 0.66348415419, 21228.39202354580 ), { 4311 151 } ( 0.262, 1.51070507866, 12146.66705610760 ), { 4311 152 } ( 0.230, 1.75927314884, 9779.10867612540 ), { 4311 153 } ( 0.223, 2.00967043606, 6172.86952877200 ), { 4311 154 } ( 0.246, 1.10411690865, 6282.09552892320 ), { 4311 155 } ( 0.221, 3.03945240854, 8635.94200376320 ), { 4311 156 } ( 0.214, 4.03840869663, 14314.16811304980 ), { 4311 157 } ( 0.236, 5.46915070580, 13916.01910964160 ), { 4311 158 } ( 0.224, 4.68408089456, 24072.92146977640 ), { 4311 159 } ( 0.212, 2.13695625494, 5849.36411211460 ), { 4311 160 } ( 0.207, 3.07724246401, 11.72935283600 ), { 4311 161 } ( 0.207, 6.10306282747, 23543.23050468179 ), { 4311 162 } ( 0.266, 1.00709566823, 2388.89402044920 ), { 4311 163 } ( 0.217, 6.27837036335, 17267.26820169119 ), { 4311 164 } ( 0.204, 2.34615348695, 266.60704172180 ), { 4311 165 } ( 0.195, 5.55015549753, 6133.51265285680 ), { 4311 166 } ( 0.188, 2.52667166175, 6525.80445396540 ), { 4311 167 } ( 0.185, 0.90960768344, 18319.53658487960 ), { 4311 168 } ( 0.177, 1.73429218289, 154717.60988768269 ), { 4311 169 } ( 0.187, 4.76483647432, 4535.05943692440 ), { 4311 170 } ( 0.186, 4.63080493407, 10440.27429260360 ), { 4311 171 } ( 0.215, 2.81255454560, 7342.45778018060 ), { 4311 172 } ( 0.172, 1.45551888559, 9225.53927328300 ), { 4311 173 } ( 0.162, 3.30661909388, 639.89728631400 ), { 4311 174 } ( 0.168, 2.17671416605, 27.40155609680 ), { 4311 175 } ( 0.160, 1.68164180475, 15110.46611986620 ), { 4311 176 } ( 0.158, 0.13519771874, 13095.84266507740 ), { 4311 177 } ( 0.183, 0.56281322071, 13517.87010623340 ), { 4311 178 } ( 0.179, 3.58450811616, 87.30820453981 ), { 4311 179 } ( 0.152, 2.84070476818, 5650.29211067820 ), { 4311 180 } ( 0.182, 0.44065530624, 17253.04110768959 ), { 4311 181 } ( 0.160, 5.95767264171, 4701.11650170840 ), { 4311 182 } ( 0.142, 1.46290137520, 11087.28512591840 ), { 4311 183 } ( 0.142, 2.04464036087, 20426.57109242200 ), { 4311 184 } ( 0.131, 5.40912137746, 2699.73481931760 ), { 4311 185 } ( 0.144, 2.07312090485, 25158.60171976540 ), { 4311 186 } ( 0.147, 6.15106982168, 9623.68827669120 ), { 4311 187 } ( 0.141, 5.55739979498, 10454.50138660520 ), { 4311 188 } ( 0.135, 0.06098110407, 16723.35014259500 ), { 4311 189 } ( 0.124, 5.81218025669, 17256.63153634140 ), { 4311 190 } ( 0.124, 2.36293551623, 4933.20844033260 ), { 4311 191 } ( 0.126, 3.47435905118, 22483.84857449259 ), { 4311 192 } ( 0.159, 5.63954754618, 5729.50644714900 ), { 4311 193 } ( 0.123, 3.92815963256, 17996.03116822220 ), { 4311 194 } ( 0.148, 3.02509280598, 1551.04522264800 ), { 4311 195 } ( 0.120, 5.91904349732, 6206.80977871580 ), { 4311 196 } ( 0.134, 3.11122937825, 21954.15760939799 ), { 4311 197 } ( 0.119, 5.52141123450, 709.93304855830 ), { 4311 198 } ( 0.122, 3.00813429479, 19800.94595622480 ), { 4311 199 } ( 0.127, 1.37618620001, 14945.31617355440 ), { 4311 200 } ( 0.141, 2.56889468729, 1052.26838318840 ), { 4311 201 } ( 0.123, 2.83671175442, 11919.14086666800 ), { 4311 202 } ( 0.118, 0.81934438215, 5331.35744374080 ), { 4311 203 } ( 0.151, 2.68731829165, 11769.85369316640 ), { 4311 204 } ( 0.119, 5.08835797638, 5481.25491886760 ), { 4311 205 } ( 0.153, 2.46021790779, 11933.36796066960 ), { 4311 206 } ( 0.108, 1.04936452145, 11403.67699557500 ), { 4311 207 } ( 0.128, 0.99794735107, 8827.39026987480 ), { 4311 208 } ( 0.144, 2.54869747042, 227.47613278900 ), { 4311 209 } ( 0.150, 4.50631437136, 2379.16447357160 ), { 4311 210 } ( 0.107, 1.79272017026, 13119.72110282519 ), { 4311 211 } ( 0.107, 4.43556814486, 18422.62935909819 ), { 4311 212 } ( 0.109, 0.29269062317, 16737.57723659660 ), { 4311 213 } ( 0.141, 3.18979826258, 6262.30045449900 ), { 4311 214 } ( 0.122, 4.23040027813, 29.42950853600 ), { 4311 215 } ( 0.111, 5.16954029551, 17782.73207278420 ), { 4311 216 } ( 0.100, 3.52213872761, 18052.92954315780 ), { 4311 217 } ( 0.108, 1.08514212991, 16858.48253293320 ), { 4311 218 } ( 0.106, 1.96085248410, 74.78159856730 ), { 4311 219 } ( 0.110, 2.30582372873, 16460.33352952499 ), { 4311 220 } ( 0.097, 3.50918940210, 5333.90024102160 ), { 4311 221 } ( 0.099, 3.56417337974, 735.87651353180 ), { 4311 222 } ( 0.094, 5.01857894228, 3128.38876509580 ), { 4311 223 } ( 0.097, 1.65579893894, 533.21408344360 ), { 4311 224 } ( 0.092, 0.89217162285, 29296.61538957860 ), { 4311 225 } ( 0.123, 3.16062050433, 9380.95967271720 ), { 4311 226 } ( 0.102, 1.20493500565, 23020.65308658799 ), { 4311 227 } ( 0.088, 2.21296088224, 12721.57209941700 ), { 4311 228 } ( 0.089, 1.54264720310, 20199.09495963300 ), { 4311 229 } ( 0.113, 4.83320707870, 16496.36139620240 ), { 4311 230 } ( 0.121, 6.19860353182, 9388.00590941520 ), { 4311 231 } ( 0.089, 4.08082274765, 22805.73556599360 ), { 4311 232 } ( 0.098, 1.09181832830, 12043.57428188900 ), { 4311 233 } ( 0.086, 1.13655027605, 143571.32428481648 ), { 4311 234 } ( 0.088, 5.96980472191, 107.66352393860 ), { 4311 235 } ( 0.082, 5.01340404594, 22003.91463486980 ), { 4311 236 } ( 0.094, 1.69615700473, 23006.42599258639 ), { 4311 237 } ( 0.081, 3.00657814365, 2118.76386037840 ), { 4311 238 } ( 0.098, 1.39215287161, 8662.24032356300 ), { 4311 239 } ( 0.077, 3.33555190840, 15720.83878487840 ), { 4311 240 } ( 0.082, 5.86880116464, 2787.04302385740 ), { 4311 241 } ( 0.076, 5.67183650604, 14.22709400160 ), { 4311 242 } ( 0.081, 6.16619455699, 1039.02661079040 ), { 4311 243 } ( 0.076, 3.21449884756, 111.18664228760 ), { 4311 244 } ( 0.078, 1.37531518377, 21947.11137270000 ), { 4311 245 } ( 0.074, 3.58814195051, 11609.86254401220 ), { 4311 246 } ( 0.077, 4.84846488388, 22743.40937951640 ), { 4311 247 } ( 0.090, 1.48869013606, 15671.08175940660 ), { 4311 248 } ( 0.082, 3.48618399109, 29088.81141598500 ), { 4311 249 } ( 0.069, 3.55746476593, 4590.91018048900 ), { 4311 250 } ( 0.069, 1.93625656075, 135.62532501000 ), { 4311 251 } ( 0.070, 2.66548322237, 18875.52586977400 ), { 4311 252 } ( 0.069, 5.41478093731, 26735.94526221320 ), { 4311 253 } ( 0.079, 5.15154513662, 12323.42309600880 ), { 4311 254 } ( 0.094, 3.62899392448, 77713.77146812050 ), { 4311 255 } ( 0.078, 4.17011182047, 1066.49547719000 ), { 4311 256 } ( 0.071, 3.89435637865, 22779.43724619380 ), { 4311 257 } ( 0.063, 4.53968787714, 8982.81066930900 ), { 4311 258 } ( 0.069, 0.96028230548, 14919.01785375460 ), { 4311 259 } ( 0.076, 3.29092216589, 2942.46342329160 ), { 4311 260 } ( 0.063, 4.09167842893, 16062.18452611680 ), { 4311 261 } ( 0.065, 3.34580407184, 51.28033786241 ), { 4311 262 } ( 0.065, 5.75757544877, 52670.06959330260 ), { 4311 263 } ( 0.068, 5.75884067555, 21424.46664430340 ), { 4311 264 } ( 0.057, 5.45122399850, 12592.45001978260 ), { 4311 265 } ( 0.057, 5.25043362558, 20995.39296644940 ), { 4311 266 } ( 0.073, 0.53299090807, 2301.58581590939 ), { 4311 267 } ( 0.070, 4.31243357502, 19402.79695281660 ), { 4311 268 } ( 0.067, 2.53852336668, 377.37360791580 ), { 4311 269 } ( 0.056, 3.20816844695, 24889.57479599160 ), { 4311 270 } ( 0.053, 3.17816599142, 18451.07854656599 ), { 4311 271 } ( 0.053, 3.61529270216, 77.67377042800 ), { 4311 272 } ( 0.053, 0.45467549335, 30666.15495843280 ), { 4311 273 } ( 0.061, 0.14807288453, 23013.53953958720 ), { 4311 274 } ( 0.051, 3.32803972907, 56.89837493560 ), { 4311 275 } ( 0.052, 3.41177624177, 23141.55838292460 ), { 4311 276 } ( 0.058, 3.13638677202, 309.27832265580 ), { 4311 277 } ( 0.070, 2.50592323465, 31415.37924995700 ), { 4311 278 } ( 0.052, 5.10673376738, 17796.95916678580 ), { 4311 279 } ( 0.067, 6.27917920454, 22345.26037610820 ), { 4311 280 } ( 0.050, 0.42577644151, 25685.87280280800 ), { 4311 281 } ( 0.048, 0.70204553333, 1162.47470440780 ), { 4311 282 } ( 0.066, 3.64350022359, 15265.88651930040 ), { 4311 283 } ( 0.050, 5.74382917440, 19.66976089979 ), { 4311 284 } ( 0.050, 4.69825387775, 28237.23345938940 ), { 4311 285 } ( 0.047, 5.74015846442, 12139.55350910680 ), { 4311 286 } ( 0.054, 1.97301333704, 23581.25817731760 ), { 4311 287 } ( 0.049, 4.98223579027, 10021.83728009940 ), { 4311 288 } ( 0.046, 5.41431705539, 33019.02111220460 ), { 4311 289 } ( 0.051, 1.23882053879, 12539.85338018300 ), { 4311 290 } ( 0.046, 2.41369976086, 98068.53671630539 ), { 4311 291 } ( 0.044, 0.80750593746, 167283.76158766549 ), { 4311 292 } ( 0.045, 4.39613584445, 433.71173787680 ), { 4311 293 } ( 0.044, 2.57358208785, 12964.30070339100 ), { 4311 294 } ( 0.046, 0.26142733448, 11.04570026390 ), { 4311 295 } ( 0.045, 2.46230645202, 51868.24866217880 ), { 4311 296 } ( 0.048, 0.89551707131, 56600.27928952220 ), { 4311 297 } ( 0.057, 1.86416707010, 25287.72379939980 ), { 4311 298 } ( 0.042, 5.26377513431, 26084.02180621620 ), { 4311 299 } ( 0.049, 3.17757670611, 6303.85124548380 ), { 4311 300 } ( 0.052, 3.65266055509, 7872.14874527520 ), { 4311 301 } ( 0.040, 1.81891629936, 34596.36465465240 ), { 4311 302 } ( 0.043, 1.94164978061, 1903.43681250120 ), { 4311 303 } ( 0.041, 0.74461854136, 23937.85638974100 ), { 4311 304 } ( 0.048, 6.26034008181, 28286.99048486120 ), { 4311 305 } ( 0.045, 5.45575017530, 60530.48898574180 ), { 4311 306 } ( 0.040, 2.92105728682, 21548.96236929180 ), { 4311 307 } ( 0.040, 0.04502010161, 38526.57435087200 ), { 4311 308 } ( 0.053, 3.64791042082, 11925.27409260060 ), { 4311 309 } ( 0.041, 5.04048954693, 27832.03821928320 ), { 4311 310 } ( 0.042, 5.19292937193, 19004.64794940840 ), { 4311 311 } ( 0.040, 2.57120233428, 24356.78078864160 ), { 4311 312 } ( 0.038, 3.49190341464, 226858.23855437008 ), { 4311 313 } ( 0.039, 4.61184303844, 95.97922721780 ), { 4311 314 } ( 0.043, 2.20648228147, 13521.75144159140 ), { 4311 315 } ( 0.040, 5.83461945819, 16193.65917750039 ), { 4311 316 } ( 0.045, 3.73714372195, 7875.67186362420 ), { 4311 317 } ( 0.043, 1.14078465002, 49.75702547180 ), { 4311 318 } ( 0.037, 1.29390383811, 310.84079886840 ), { 4311 319 } ( 0.038, 0.95970925950, 664.75604513000 ), { 4311 320 } ( 0.037, 4.27532649462, 6709.67404086740 ), { 4311 321 } ( 0.038, 2.20108541046, 28628.33622609960 ), { 4311 322 } ( 0.039, 0.85957361635, 16522.65971600220 ), { 4311 323 } ( 0.040, 4.35214003837, 48739.85989708300 ), { 4311 324 } ( 0.036, 1.68167662194, 10344.29506538580 ), { 4311 325 } ( 0.040, 5.13217319067, 15664.03552270859 ), { 4311 326 } ( 0.036, 3.72187132496, 30774.50164257480 ), { 4311 327 } ( 0.036, 3.32158458257, 16207.88627150200 ), { 4311 328 } ( 0.045, 3.94202418608, 10988.80815753500 ), { 4311 329 } ( 0.039, 1.51948786199, 12029.34718788740 ), { 4311 330 } ( 0.026, 3.87685883180, 6262.72053059260 ), { 4311 331 } ( 0.024, 4.91804163466, 19651.04848109800 ), { 4311 332 } ( 0.023, 0.29300197709, 13362.44970679920 ), { 4311 333 } ( 0.021, 3.18605672363, 6277.55292568400 ), { 4311 334 } ( 0.021, 6.07546891132, 18139.29450141590 ), { 4311 335 } ( 0.022, 2.31199937177, 6303.43116939020 ), { 4311 336 } ( 0.021, 3.58418394393, 18209.33026366019 ), { 4311 337 } ( 0.026, 2.06801296900, 12573.26524698360 ), { 4311 338 } ( 0.021, 1.56857722317, 13341.67431130680 ), { 4311 339 } ( 0.024, 5.72605158675, 29864.33402730900 ), { 4311 340 } ( 0.024, 1.40237993205, 14712.31711645800 ), { 4311 341 } ( 0.025, 5.71466092822, 25934.12433108940 ) (*$endif *) ); (*@\\\0000000601*) (*@/// vsop87_ear_l2:array[0..141,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_ear_l2:array[0.. 19,0..2] of extended = ( (*$else *) vsop87_ear_l2:array[0..141,0..2] of extended = ( (*$endif *) { 4312 1 } ( 52918.870, 0.00000000000, 0.00000000000 ), { 4312 2 } ( 8719.837, 1.07209665242, 6283.07584999140 ), { 4312 3 } ( 309.125, 0.86728818832, 12566.15169998280 ), { 4312 4 } ( 27.339, 0.05297871691, 3.52311834900 ), { 4312 5 } ( 16.334, 5.18826691036, 26.29831979980 ), { 4312 6 } ( 15.752, 3.68457889430, 155.42039943420 ), { 4312 7 } ( 9.541, 0.75742297675, 18849.22754997420 ), { 4312 8 } ( 8.937, 2.05705419118, 77713.77146812050 ), { 4312 9 } ( 6.952, 0.82673305410, 775.52261132400 ), { 4312 10 } ( 5.064, 4.66284525271, 1577.34354244780 ), { 4312 11 } ( 4.061, 1.03057162962, 7.11354700080 ), { 4312 12 } ( 3.463, 5.14074632811, 796.29800681640 ), { 4312 13 } ( 3.169, 6.05291851171, 5507.55323866740 ), { 4312 14 } ( 3.020, 1.19246506441, 242.72860397400 ), { 4312 15 } ( 2.886, 6.11652627155, 529.69096509460 ), { 4312 16 } ( 3.810, 3.44050803490, 5573.14280143310 ), { 4312 17 } ( 2.714, 0.30637881025, 398.14900340820 ), { 4312 18 } ( 2.371, 4.38118838167, 5223.69391980220 ), { 4312 19 } ( 2.538, 2.27992810679, 553.56940284240 ), { 4312 20 } ( 2.079, 3.75435330484, 0.98032106820 ) (*$ifndef meeus *) , { 4312 21 } ( 1.675, 0.90216407959, 951.71840625060 ), { 4312 22 } ( 1.534, 5.75900462759, 1349.86740965880 ), { 4312 23 } ( 1.224, 2.97328088405, 2146.16541647520 ), { 4312 24 } ( 1.449, 4.36415913970, 1748.01641306700 ), { 4312 25 } ( 1.341, 3.72061130861, 1194.44701022460 ), { 4312 26 } ( 1.254, 2.94846826628, 6438.49624942560 ), { 4312 27 } ( 0.999, 5.98640014468, 6286.59896834040 ), { 4312 28 } ( 0.917, 4.79788687522, 5088.62883976680 ), { 4312 29 } ( 0.828, 3.31321076572, 213.29909543800 ), { 4312 30 } ( 1.103, 1.27104454479, 161000.68573767410 ), { 4312 31 } ( 0.762, 3.41582762988, 5486.77784317500 ), { 4312 32 } ( 1.044, 0.60409577691, 3154.68708489560 ), { 4312 33 } ( 0.887, 5.23465144638, 7084.89678111520 ), { 4312 34 } ( 0.645, 1.60096192515, 2544.31441988340 ), { 4312 35 } ( 0.681, 3.43155669169, 4694.00295470760 ), { 4312 36 } ( 0.605, 2.47806340546, 10977.07880469900 ), { 4312 37 } ( 0.706, 6.19393222575, 4690.47983635860 ), { 4312 38 } ( 0.643, 1.98042503148, 801.82093112380 ), { 4312 39 } ( 0.502, 1.44394375363, 6836.64525283380 ), { 4312 40 } ( 0.490, 2.34129524194, 1592.59601363280 ), { 4312 41 } ( 0.458, 1.30876448575, 4292.33083295040 ), { 4312 42 } ( 0.431, 0.03526421494, 7234.79425624200 ), { 4312 43 } ( 0.379, 3.17030522615, 6309.37416979120 ), { 4312 44 } ( 0.348, 0.99049550009, 6040.34724601740 ), { 4312 45 } ( 0.386, 1.57019797263, 71430.69561812909 ), { 4312 46 } ( 0.347, 0.67013291338, 1059.38193018920 ), { 4312 47 } ( 0.458, 3.81499443681, 149854.40013480789 ), { 4312 48 } ( 0.302, 1.91760044838, 10447.38783960440 ), { 4312 49 } ( 0.307, 3.55343347416, 8031.09226305840 ), { 4312 50 } ( 0.395, 4.93701776616, 7632.94325965020 ), { 4312 51 } ( 0.314, 3.18093696547, 2352.86615377180 ), { 4312 52 } ( 0.282, 4.41936437052, 9437.76293488700 ), { 4312 53 } ( 0.276, 2.71314254553, 3894.18182954220 ), { 4312 54 } ( 0.298, 2.52037474210, 6127.65545055720 ), { 4312 55 } ( 0.230, 1.37790215549, 4705.73230754360 ), { 4312 56 } ( 0.252, 0.55330133471, 6279.55273164240 ), { 4312 57 } ( 0.255, 5.26570187369, 6812.76681508600 ), { 4312 58 } ( 0.275, 0.67264264272, 25132.30339996560 ), { 4312 59 } ( 0.178, 0.92820785174, 1990.74501704100 ), { 4312 60 } ( 0.221, 0.63897368842, 6256.77753019160 ), { 4312 61 } ( 0.155, 0.77319790838, 14143.49524243060 ), { 4312 62 } ( 0.150, 2.40470465561, 426.59819087600 ), { 4312 63 } ( 0.196, 6.06877865012, 640.87760738220 ), { 4312 64 } ( 0.137, 2.21679460145, 8429.24126646660 ), { 4312 65 } ( 0.127, 3.26094223174, 17789.84561978500 ), { 4312 66 } ( 0.128, 5.47237279946, 12036.46073488820 ), { 4312 67 } ( 0.122, 2.16291082757, 10213.28554621100 ), { 4312 68 } ( 0.118, 0.45789822268, 7058.59846131540 ), { 4312 69 } ( 0.141, 2.34932647403, 11506.76976979360 ), { 4312 70 } ( 0.100, 0.85621569847, 6290.18939699220 ), { 4312 71 } ( 0.092, 5.10587476002, 7079.37385680780 ), { 4312 72 } ( 0.126, 2.65428307012, 88860.05707098669 ), { 4312 73 } ( 0.106, 5.85646710022, 7860.41939243920 ), { 4312 74 } ( 0.084, 3.57457554262, 16730.46368959580 ), { 4312 75 } ( 0.089, 4.21433259618, 83996.84731811189 ), { 4312 76 } ( 0.097, 5.57938280855, 13367.97263110660 ), { 4312 77 } ( 0.102, 2.05853060226, 87.30820453981 ), { 4312 78 } ( 0.080, 4.73792651816, 11926.25441366880 ), { 4312 79 } ( 0.080, 5.41418965044, 10973.55568635000 ), { 4312 80 } ( 0.106, 4.10978997399, 3496.03282613400 ), { 4312 81 } ( 0.102, 3.62650006043, 244287.60000722769 ), { 4312 82 } ( 0.075, 4.89483161769, 5643.17856367740 ), { 4312 83 } ( 0.087, 0.42863750683, 11015.10647733480 ), { 4312 84 } ( 0.069, 1.88908760720, 10177.25767953360 ), { 4312 85 } ( 0.089, 1.35567273119, 6681.22485339960 ), { 4312 86 } ( 0.066, 0.99455837265, 6525.80445396540 ), { 4312 87 } ( 0.067, 5.51240997070, 3097.88382272579 ), { 4312 88 } ( 0.076, 2.72016814799, 4164.31198961300 ), { 4312 89 } ( 0.063, 1.44349902540, 9917.69687450980 ), { 4312 90 } ( 0.078, 3.51469733747, 11856.21865142450 ), { 4312 91 } ( 0.085, 0.50956043858, 10575.40668294180 ), { 4312 92 } ( 0.067, 3.62043033405, 16496.36139620240 ), { 4312 93 } ( 0.055, 5.24637517308, 3340.61242669980 ), { 4312 94 } ( 0.048, 5.43966777314, 20426.57109242200 ), { 4312 95 } ( 0.064, 5.79535817813, 2388.89402044920 ), { 4312 96 } ( 0.046, 5.43499966519, 6275.96230299060 ), { 4312 97 } ( 0.050, 3.86263598617, 5729.50644714900 ), { 4312 98 } ( 0.044, 1.52269529228, 12168.00269657460 ), { 4312 99 } ( 0.057, 4.96352373486, 14945.31617355440 ), { 4312 100 } ( 0.045, 1.00861230160, 8635.94200376320 ), { 4312 101 } ( 0.043, 3.30685683359, 9779.10867612540 ), { 4312 102 } ( 0.042, 0.63481258930, 2699.73481931760 ), { 4312 103 } ( 0.041, 5.67996766641, 11712.95531823080 ), { 4312 104 } ( 0.056, 4.34024451468, 90955.55169449610 ), { 4312 105 } ( 0.041, 5.81722212845, 709.93304855830 ), { 4312 106 } ( 0.053, 6.17052087143, 233141.31440436149 ), { 4312 107 } ( 0.037, 3.12495025087, 16200.77272450120 ), { 4312 108 } ( 0.035, 5.76973458495, 12569.67481833180 ), { 4312 109 } ( 0.037, 0.31656444326, 24356.78078864160 ), { 4312 110 } ( 0.035, 0.96229051027, 17298.18232732620 ), { 4312 111 } ( 0.033, 5.23130355867, 5331.35744374080 ), { 4312 112 } ( 0.035, 0.62517020593, 25158.60171976540 ), { 4312 113 } ( 0.035, 0.80004512129, 13916.01910964160 ), { 4312 114 } ( 0.037, 2.89336088688, 12721.57209941700 ), { 4312 115 } ( 0.030, 4.50198402401, 23543.23050468179 ), { 4312 116 } ( 0.030, 5.31355708693, 18319.53658487960 ), { 4312 117 } ( 0.029, 3.47275229977, 13119.72110282519 ), { 4312 118 } ( 0.029, 3.11002782516, 4136.91043351620 ), { 4312 119 } ( 0.032, 5.52273255667, 5753.38488489680 ), { 4312 120 } ( 0.035, 3.79699996680, 143571.32428481648 ), { 4312 121 } ( 0.026, 1.50634201907, 154717.60988768269 ), { 4312 122 } ( 0.030, 3.53519084118, 6284.05617105960 ), { 4312 123 } ( 0.023, 4.41808025967, 5884.92684658320 ), { 4312 124 } ( 0.025, 1.38477355808, 65147.61976813770 ), { 4312 125 } ( 0.023, 3.49782549797, 7477.52286021600 ), { 4312 126 } ( 0.019, 3.14329413716, 6496.37494542940 ), { 4312 127 } ( 0.019, 2.20135125199, 18073.70493865020 ), { 4312 128 } ( 0.019, 4.95020255309, 3930.20969621960 ), { 4312 129 } ( 0.019, 0.57998702747, 31415.37924995700 ), { 4312 130 } ( 0.021, 1.75474323399, 12139.55350910680 ), { 4312 131 } ( 0.019, 3.92233070499, 19651.04848109800 ), { 4312 132 } ( 0.014, 0.98131213224, 12559.03815298200 ), { 4312 133 } ( 0.019, 4.93309333729, 2942.46342329160 ), { 4312 134 } ( 0.016, 5.55997534558, 8827.39026987480 ), { 4312 135 } ( 0.013, 1.68808165516, 4535.05943692440 ), { 4312 136 } ( 0.013, 0.33982116161, 4933.20844033260 ), { 4312 137 } ( 0.012, 1.85426309994, 5856.47765911540 ), { 4312 138 } ( 0.010, 4.82763996845, 13095.84266507740 ), { 4312 139 } ( 0.011, 5.38005490571, 11790.62908865880 ), { 4312 140 } ( 0.010, 1.40815507226, 10988.80815753500 ), { 4312 141 } ( 0.011, 3.05005267431, 17260.15465469040 ), { 4312 142 } ( 0.010, 4.93364992366, 12352.85260454480 ) (*$endif *) ); (*@\\\*) (*@/// vsop87_ear_l3:array[0.. 21,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_ear_l3:array[0.. 6,0..2] of extended = ( (*$else *) vsop87_ear_l3:array[0.. 21,0..2] of extended = ( (*$endif *) { 4313 1 } ( 289.226, 5.84384198723, 6283.07584999140 ), { 4313 2 } ( 34.955, 0.00000000000, 0.00000000000 ), { 4313 3 } ( 16.819, 5.48766912348, 12566.15169998280 ), { 4313 4 } ( 2.962, 5.19577265202, 155.42039943420 ), { 4313 5 } ( 1.288, 4.72200252235, 3.52311834900 ), { 4313 6 } ( 0.635, 5.96925937141, 242.72860397400 ), { 4313 7 } ( 0.714, 5.30045809128, 18849.22754997420 ) (*$ifndef meeus *) , { 4313 8 } ( 0.402, 3.78682982419, 553.56940284240 ), { 4313 9 } ( 0.072, 4.29768126180, 6286.59896834040 ), { 4313 10 } ( 0.067, 0.90721687647, 6127.65545055720 ), { 4313 11 } ( 0.036, 5.24029648014, 6438.49624942560 ), { 4313 12 } ( 0.024, 5.16003960716, 25132.30339996560 ), { 4313 13 } ( 0.023, 3.01921570335, 6309.37416979120 ), { 4313 14 } ( 0.017, 5.82863573502, 6525.80445396540 ), { 4313 15 } ( 0.017, 3.67772863930, 71430.69561812909 ), { 4313 16 } ( 0.009, 4.58467294499, 1577.34354244780 ), { 4313 17 } ( 0.008, 1.40626662824, 11856.21865142450 ), { 4313 18 } ( 0.008, 5.07561257196, 6256.77753019160 ), { 4313 19 } ( 0.007, 2.82473374405, 83996.84731811189 ), { 4313 20 } ( 0.005, 2.71488713339, 10977.07880469900 ), { 4313 21 } ( 0.005, 3.76879847273, 12036.46073488820 ), { 4313 22 } ( 0.005, 4.28412873331, 6275.96230299060 ) (*$endif *) ); (*@\\\0000000D01*) (*@/// vsop87_ear_l4:array[0.. 10,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_ear_l4:array[0.. 2,0..2] of extended = ( (*$else *) vsop87_ear_l4:array[0.. 10,0..2] of extended = ( (*$endif *) { 4314 1 } ( 114.084, 3.14159265359, 0.00000000000 ), { 4314 2 } ( 7.717, 4.13446589358, 6283.07584999140 ), { 4314 3 } ( 0.765, 3.83803776214, 12566.15169998280 ) (*$ifndef meeus *) , { 4314 4 } ( 0.420, 0.41925861858, 155.42039943420 ), { 4314 5 } ( 0.040, 3.59847585840, 18849.22754997420 ), { 4314 6 } ( 0.041, 3.14398414077, 3.52311834900 ), { 4314 7 } ( 0.035, 5.00298940826, 5573.14280143310 ), { 4314 8 } ( 0.013, 0.48794833701, 77713.77146812050 ), { 4314 9 } ( 0.010, 5.64801766350, 6127.65545055720 ), { 4314 10 } ( 0.008, 2.84160570605, 161000.68573767410 ), { 4314 11 } ( 0.002, 0.54912904658, 6438.49624942560 ) (*$endif *) ); (*@\\\0000000901*) (*@/// vsop87_ear_l5:array[0.. 0,0..2] of extended = (..); *) (*$ifdef meeus *) vsop87_ear_l5:array[0.. 0,0..2] of extended = ( (*$else *) vsop87_ear_l5:array[0.. 4,0..2] of extended = ( (*$endif *) { 4315 1 } ( 0.878, 3.14159265359, 0.00000000000 ) (*$ifndef meeus *) , { 4315 2 } ( 0.172, 2.76579069510, 6283.07584999140 ), { 4315 3 } ( 0.050, 2.01353298182, 155.42039943420 ), { 4315 4 } ( 0.028, 2.21496423926, 12566.15169998280 ), { 4315 5 } ( 0.005, 1.75600058765, 18849.22754997420 ) (*$endif *) ); (*@\\\0000000201*) begin WITH result do begin a:=0; b:=0; c:=0; case index of 0: if (nr>=low(vsop87_ear_l0)) and (nr<=high(vsop87_ear_l0)) then begin a:=vsop87_ear_l0[nr,0]; b:=vsop87_ear_l0[nr,1]; c:=vsop87_ear_l0[nr,2]; end; 1: if (nr>=low(vsop87_ear_l1)) and (nr<=high(vsop87_ear_l1)) then begin a:=vsop87_ear_l1[nr,0]; b:=vsop87_ear_l1[nr,1]; c:=vsop87_ear_l1[nr,2]; end; 2: if (nr>=low(vsop87_ear_l2)) and (nr<=high(vsop87_ear_l2)) then begin a:=vsop87_ear_l2[nr,0]; b:=vsop87_ear_l2[nr,1]; c:=vsop87_ear_l2[nr,2]; end; 3: if (nr>=low(vsop87_ear_l3)) and (nr<=high(vsop87_ear_l3)) then begin a:=vsop87_ear_l3[nr,0]; b:=vsop87_ear_l3[nr,1]; c:=vsop87_ear_l3[nr,2]; end; 4: if (nr>=low(vsop87_ear_l4)) and (nr<=high(vsop87_ear_l4)) then begin a:=vsop87_ear_l4[nr,0]; b:=vsop87_ear_l4[nr,1]; c:=vsop87_ear_l4[nr,2]; end; 5: if (nr>=low(vsop87_ear_l5)) and (nr<=high(vsop87_ear_l5)) then begin a:=vsop87_ear_l5[nr,0]; b:=vsop87_ear_l5[nr,1]; c:=vsop87_ear_l5[nr,2]; end; end; end; end; (*@\\\000000081C*) (*@\\\0000000301*) (*@/// class TVSOPJupiter *) (*@/// function TVSOPJupiter.RadiusFactor(nr,index: integer):TVSOPEntry; *) function TVSOPJupiter.RadiusFactor(nr,index: integer):TVSOPEntry; const (*@/// vsop87_jup_r0:array[0..744,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_jup_r0:array[0.. 45,0..2] of extended = ( (*$else *) vsop87_jup_r0:array[0..744,0..2] of extended = ( (*$endif *) { 4530 1 } ( 520887429.471, 0.00000000000, 0.00000000000 ), { 4530 2 } ( 25209327.020, 3.49108640015, 529.69096509460 ), { 4530 3 } ( 610599.902, 3.84115365602, 1059.38193018920 ), { 4530 4 } ( 282029.465, 2.57419879933, 632.78373931320 ), { 4530 5 } ( 187647.391, 2.07590380082, 522.57741809380 ), { 4530 6 } ( 86792.941, 0.71001090609, 419.48464387520 ), { 4530 7 } ( 72062.869, 0.21465694745, 536.80451209540 ), { 4530 8 } ( 65517.227, 5.97995850843, 316.39186965660 ), { 4530 9 } ( 29134.620, 1.67759243710, 103.09277421860 ), { 4530 10 } ( 30135.275, 2.16132058449, 949.17560896980 ), { 4530 11 } ( 23453.209, 3.54023147303, 735.87651353180 ), { 4530 12 } ( 22283.710, 4.19362773546, 1589.07289528380 ), { 4530 13 } ( 23947.340, 0.27457854894, 7.11354700080 ), { 4530 14 } ( 13032.600, 2.96043055741, 1162.47470440780 ), { 4530 15 } ( 9703.346, 1.90669572402, 206.18554843720 ), { 4530 16 } ( 12749.004, 2.71550102862, 1052.26838318840 ), { 4530 17 } ( 9161.431, 4.41352618935, 213.29909543800 ), { 4530 18 } ( 7894.539, 2.47907551404, 426.59819087600 ), { 4530 19 } ( 7057.978, 2.18184753111, 1265.56747862640 ), { 4530 20 } ( 6137.755, 6.26417542514, 846.08283475120 ), { 4530 21 } ( 5477.093, 5.65729325169, 639.89728631400 ), { 4530 22 } ( 3502.519, 0.56531297394, 1066.49547719000 ), { 4530 23 } ( 4136.890, 2.72219979684, 625.67019231240 ), { 4530 24 } ( 4170.012, 2.01605033912, 515.46387109300 ), { 4530 25 } ( 2499.966, 4.55182055941, 838.96928775040 ), { 4530 26 } ( 2616.955, 2.00993967129, 1581.95934828300 ), { 4530 27 } ( 1911.876, 0.85621927419, 412.37109687440 ), { 4530 28 } ( 2127.644, 6.12751461750, 742.99006053260 ), { 4530 29 } ( 1610.549, 3.08867789275, 1368.66025284500 ), { 4530 30 } ( 1479.484, 2.68026191372, 1478.86657406440 ), { 4530 31 } ( 1230.708, 1.89042979701, 323.50541665740 ), { 4530 32 } ( 1216.810, 1.80171561024, 110.20632121940 ), { 4530 33 } ( 961.072, 4.54876989805, 2118.76386037840 ), { 4530 34 } ( 885.708, 4.14785948471, 533.62311835770 ), { 4530 35 } ( 776.700, 3.67696954690, 728.76296653100 ), { 4530 36 } ( 998.579, 2.87208940110, 309.27832265580 ), { 4530 37 } ( 1014.959, 1.38673237666, 454.90936652730 ), { 4530 38 } ( 727.162, 3.98824686402, 1155.36115740700 ), { 4530 39 } ( 655.289, 2.79065604219, 1685.05212250160 ), { 4530 40 } ( 821.465, 1.59342534396, 1898.35121793960 ), { 4530 41 } ( 620.798, 4.82284338962, 956.28915597060 ), { 4530 42 } ( 653.981, 3.38150775269, 1692.16566950240 ), { 4530 43 } ( 812.036, 5.94091899141, 909.81873305460 ), { 4530 44 } ( 562.120, 0.08095987241, 543.91805909620 ), { 4530 45 } ( 542.221, 0.28360266386, 525.75881183150 ), (*$ifndef meeus *) { 4530 46 } ( 457.859, 0.12722694510, 1375.77379984580 ), (*$endif *) { 4530 47 } ( 614.784, 2.27624915604, 942.06206196900 ) (*$ifndef meeus *) , { 4530 48 } ( 435.805, 2.60272129748, 95.97922721780 ), { 4530 49 } ( 496.066, 5.53005947761, 380.12776796000 ), { 4530 50 } ( 469.965, 2.81896276101, 1795.25844372100 ), { 4530 51 } ( 445.003, 0.14623567024, 14.22709400160 ), { 4530 52 } ( 290.869, 3.89339143564, 1471.75302706360 ), { 4530 53 } ( 276.627, 2.52238450687, 2001.44399215820 ), { 4530 54 } ( 275.084, 2.98863518924, 526.50957135690 ), { 4530 55 } ( 293.875, 2.04938438861, 199.07200143640 ), { 4530 56 } ( 290.985, 6.03131226226, 1169.58825140860 ), { 4530 57 } ( 338.342, 2.79873192583, 1045.15483618760 ), { 4530 58 } ( 257.482, 6.13395478303, 532.87235883230 ), { 4530 59 } ( 319.013, 1.34803130803, 2214.74308759620 ), { 4530 60 } ( 309.352, 5.36855804945, 1272.68102562720 ), { 4530 61 } ( 345.804, 1.56404293688, 491.55792945680 ), { 4530 62 } ( 303.364, 1.15407454372, 5753.38488489680 ), { 4530 63 } ( 192.325, 0.91996333387, 1596.18644228460 ), { 4530 64 } ( 215.398, 2.63572815848, 2111.65031337760 ), { 4530 65 } ( 200.738, 2.37259566683, 1258.45393162560 ), { 4530 66 } ( 239.036, 3.57397189838, 835.03713448730 ), { 4530 67 } ( 197.073, 5.92859096863, 453.42489381900 ), { 4530 68 } ( 139.440, 3.63960322318, 1788.14489672020 ), { 4530 69 } ( 191.373, 6.28251311870, 983.11585891360 ), { 4530 70 } ( 176.551, 2.57669991654, 9683.59458111640 ), { 4530 71 } ( 123.567, 2.26158186345, 2317.83586181480 ), { 4530 72 } ( 128.176, 4.66585907670, 831.85574074960 ), { 4530 73 } ( 112.430, 0.85604150812, 433.71173787680 ), { 4530 74 } ( 128.817, 1.10567106595, 2531.13495725280 ), { 4530 75 } ( 99.390, 4.50312054049, 518.64526483070 ), { 4530 76 } ( 93.870, 2.72553879990, 853.19638175200 ), { 4530 77 } ( 106.481, 5.81462222290, 220.41264243880 ), { 4530 78 } ( 120.188, 2.95156363556, 3.93215326310 ), { 4530 79 } ( 104.002, 2.22221906187, 74.78159856730 ), { 4530 80 } ( 81.655, 3.23481337678, 1361.54670584420 ), { 4530 81 } ( 112.513, 4.86216964016, 528.20649238630 ), { 4530 82 } ( 79.539, 0.88542246830, 430.53034413910 ), { 4530 83 } ( 85.801, 2.11458386763, 1574.84580128220 ), { 4530 84 } ( 85.685, 2.33823884827, 2428.04218303420 ), { 4530 85 } ( 68.311, 3.35727048905, 2104.53676637680 ), { 4530 86 } ( 69.570, 3.04164697156, 302.16477565500 ), { 4530 87 } ( 69.775, 3.22402404312, 305.34616939270 ), { 4530 88 } ( 69.570, 0.20494979941, 532.13864564940 ), { 4530 89 } ( 56.991, 2.00204191909, 2634.22773147140 ), { 4530 90 } ( 77.062, 2.09816000231, 508.35032409220 ), { 4530 91 } ( 56.716, 3.91743976711, 2221.85663459700 ), { 4530 92 } ( 58.325, 5.72360355252, 628.85158605010 ), { 4530 93 } ( 52.485, 4.02485010492, 527.24328453980 ), { 4530 94 } ( 63.645, 1.09973563964, 1364.72809958190 ), { 4530 95 } ( 53.607, 0.87425992614, 2847.52682690940 ), { 4530 96 } ( 59.598, 0.95822471775, 494.26624244250 ), { 4530 97 } ( 57.960, 3.45779497978, 2008.55753915900 ), { 4530 98 } ( 41.512, 3.51955526735, 529.73914920440 ), { 4530 99 } ( 44.666, 1.62313786651, 984.60033162190 ), { 4530 100 } ( 44.883, 4.90091959557, 2648.45482547300 ), { 4530 101 } ( 53.206, 1.19800364308, 760.25553592000 ), { 4530 102 } ( 44.393, 4.42623747662, 1063.31408345230 ), { 4530 103 } ( 37.566, 2.93021095213, 1677.93857550080 ), { 4530 104 } ( 41.516, 0.32174409278, 529.64278098480 ), { 4530 105 } ( 42.855, 0.03093594081, 1439.50969814920 ), { 4530 106 } ( 45.963, 2.54342106514, 636.71589257630 ), { 4530 107 } ( 40.181, 4.39381642864, 1148.24761040620 ), { 4530 108 } ( 38.770, 4.31675565025, 149.56319713460 ), { 4530 109 } ( 40.348, 2.10140891053, 2744.43405269080 ), { 4530 110 } ( 48.851, 5.60297777544, 2810.92146160520 ), { 4530 111 } ( 37.085, 5.07828164301, 1905.46476494040 ), { 4530 112 } ( 43.875, 1.24536971083, 621.73803904930 ), { 4530 113 } ( 34.005, 3.09360167248, 2420.92863603340 ), { 4530 114 } ( 36.782, 0.84232174637, 530.65417294110 ), { 4530 115 } ( 31.139, 5.35811251334, 1485.98012106520 ), { 4530 116 } ( 39.295, 4.70800489067, 569.04784100980 ), { 4530 117 } ( 39.700, 2.46163878814, 355.74874557180 ), { 4530 118 } ( 31.527, 6.19284070863, 3.18139373770 ), { 4530 119 } ( 28.399, 2.48456666067, 519.39602435610 ), { 4530 120 } ( 32.432, 2.73281750275, 604.47256366190 ), { 4530 121 } ( 27.119, 3.92341697086, 2324.94940881560 ), { 4530 122 } ( 26.753, 1.74975198417, 2950.61960112800 ), { 4530 123 } ( 28.986, 1.83535862643, 1891.23767093880 ), { 4530 124 } ( 26.493, 0.60380196895, 1055.44977692610 ), { 4530 125 } ( 33.525, 0.76068430639, 643.82943957710 ), { 4530 126 } ( 26.568, 1.03594610835, 405.25754987360 ), { 4530 127 } ( 25.534, 3.46320665375, 458.84151979040 ), { 4530 128 } ( 24.421, 0.88181836930, 423.41679713830 ), { 4530 129 } ( 32.949, 3.18597137308, 528.72775724810 ), { 4530 130 } ( 22.456, 0.43129919683, 1073.60902419080 ), { 4530 131 } ( 21.599, 1.41820425091, 540.73666535850 ), { 4530 132 } ( 25.673, 0.52358194760, 511.53171782990 ), { 4530 133 } ( 21.115, 3.08023522766, 629.60234557550 ), { 4530 134 } ( 22.713, 0.65234613144, 3163.91869656600 ), { 4530 135 } ( 19.189, 5.16589014963, 635.96513305090 ), { 4530 136 } ( 26.042, 1.33629471285, 330.61896365820 ), { 4530 137 } ( 18.263, 3.59973446951, 746.92221379570 ), { 4530 138 } ( 18.210, 2.66819439927, 1994.33044515740 ), { 4530 139 } ( 19.724, 4.13552133321, 1464.63948006280 ), { 4530 140 } ( 19.480, 1.85656428109, 3060.82592234740 ), { 4530 141 } ( 23.927, 4.99826361784, 1289.94650101460 ), { 4530 142 } ( 21.886, 5.91718683551, 1802.37199072180 ), { 4530 143 } ( 17.482, 2.82161612542, 2737.32050569000 ), { 4530 144 } ( 16.608, 5.67394889755, 408.43894361130 ), { 4530 145 } ( 22.892, 5.26731352093, 672.14061522840 ), { 4530 146 } ( 18.349, 1.89869734949, 1021.24889455140 ), { 4530 147 } ( 19.123, 3.65882402977, 415.55249061210 ), { 4530 148 } ( 15.735, 3.34772676006, 1056.20053645150 ), { 4530 149 } ( 16.373, 0.18094878053, 1699.27921650320 ), { 4530 150 } ( 18.899, 3.69120638874, 88.86568021700 ), { 4530 151 } ( 18.655, 1.97327300097, 38.13303563780 ), { 4530 152 } ( 15.542, 3.82204881010, 721.64941953020 ), { 4530 153 } ( 16.780, 1.90976657921, 217.23124870110 ), { 4530 154 } ( 15.313, 1.05907174619, 114.13847448250 ), { 4530 155 } ( 15.190, 1.32317039042, 117.31986822020 ), { 4530 156 } ( 15.080, 3.74469077216, 2641.34127847220 ), { 4530 157 } ( 19.836, 2.73184571324, 39.35687591520 ), { 4530 158 } ( 14.708, 1.67270454473, 529.16970023280 ), { 4530 159 } ( 14.036, 3.54305270022, 142.44965013380 ), { 4530 160 } ( 12.931, 1.48829749349, 3267.01147078460 ), { 4530 161 } ( 14.924, 1.32546085940, 490.33408917940 ), { 4530 162 } ( 14.753, 4.64530618027, 6283.07584999140 ), { 4530 163 } ( 14.672, 0.80451954754, 5223.69391980220 ), { 4530 164 } ( 12.085, 3.67072510553, 750.10360753340 ), { 4530 165 } ( 11.954, 2.97127390765, 505.31194270640 ), { 4530 166 } ( 14.650, 2.16792930250, 530.21222995640 ), { 4530 167 } ( 11.869, 1.66551754962, 2207.62954059540 ), { 4530 168 } ( 12.273, 0.20690014405, 1062.56332392690 ), { 4530 169 } ( 11.460, 1.11906683214, 561.93429400900 ), { 4530 170 } ( 11.083, 3.22049096074, 535.10759106600 ), { 4530 171 } ( 11.567, 5.22625628971, 524.06189080210 ), { 4530 172 } ( 11.161, 3.82945634036, 76.26607127560 ), { 4530 173 } ( 10.918, 1.27796962818, 2125.87740737920 ), { 4530 174 } ( 12.685, 3.96848605476, 2538.24850425360 ), { 4530 175 } ( 11.230, 3.23092119889, 422.66603761290 ), { 4530 176 } ( 12.645, 0.73670428580, 908.33426034630 ), { 4530 177 } ( 11.330, 5.56127247007, 531.17543780290 ), { 4530 178 } ( 9.509, 5.00507284204, 597.35901666110 ), { 4530 179 } ( 10.291, 3.84159025239, 1781.03134971940 ), { 4530 180 } ( 10.762, 4.91380719453, 525.02509864860 ), { 4530 181 } ( 11.786, 5.11863653538, 685.47393735270 ), { 4530 182 } ( 11.980, 1.72470898635, 911.30320576290 ), { 4530 183 } ( 8.937, 2.40338241992, 2310.72231481400 ), { 4530 184 } ( 9.253, 2.57670338148, 3053.71237534660 ), { 4530 185 } ( 9.488, 2.95089828501, 1382.88734684660 ), { 4530 186 } ( 9.889, 0.43758517388, 3480.31056622260 ), { 4530 187 } ( 8.781, 3.66562388594, 739.80866679490 ), { 4530 188 } ( 8.664, 2.70398612383, 526.77020378780 ), { 4530 189 } ( 9.505, 1.61249870019, 3377.21779200400 ), { 4530 190 } ( 11.540, 1.59520481029, 1474.67378837040 ), { 4530 191 } ( 9.533, 0.35468711552, 1512.80682400820 ), { 4530 192 } ( 9.980, 4.80984684596, 558.00214074590 ), { 4530 193 } ( 9.014, 1.21458362718, 416.30325013750 ), { 4530 194 } ( 7.969, 0.08480602718, 528.94020556920 ), { 4530 195 } ( 8.668, 5.29060005706, 945.24345570670 ), { 4530 196 } ( 7.851, 1.46751861875, 963.40270297140 ), { 4530 197 } ( 8.611, 1.13232641062, 532.61172640140 ), { 4530 198 } ( 7.838, 6.26933498027, 647.01083331480 ), { 4530 199 } ( 7.581, 2.90608705954, 533.88375078860 ), { 4530 200 } ( 8.583, 6.06634530166, 10213.28554621100 ), { 4530 201 } ( 10.198, 2.48743123636, 1819.63746610920 ), { 4530 202 } ( 8.536, 2.22700701790, 9153.90361602180 ), { 4530 203 } ( 9.759, 6.15593336218, 593.42686339800 ), { 4530 204 } ( 7.968, 3.75535355212, 530.44172462000 ), { 4530 205 } ( 7.142, 3.58836120327, 2957.73314812880 ), { 4530 206 } ( 7.122, 0.11970048938, 224.34479570190 ), { 4530 207 } ( 8.731, 0.75302913970, 960.22130923370 ), { 4530 208 } ( 7.063, 2.16793037690, 724.83081326790 ), { 4530 209 } ( 7.263, 2.29499675875, 520.12973753900 ), { 4530 210 } ( 6.418, 1.25058991868, 3583.40334044120 ), { 4530 211 } ( 8.270, 1.24806288317, 495.75071515080 ), { 4530 212 } ( 6.483, 4.74567772640, 202.25339517410 ), { 4530 213 } ( 7.197, 3.84169279666, 618.55664531160 ), { 4530 214 } ( 8.146, 0.73147060302, 230.56457082540 ), { 4530 215 } ( 6.165, 5.50124418381, 11.04570026390 ), { 4530 216 } ( 7.946, 2.07754951174, 953.10776223290 ), { 4530 217 } ( 7.675, 0.92400307662, 525.49817940060 ), { 4530 218 } ( 6.210, 1.45641362115, 483.22054217860 ), { 4530 219 } ( 7.359, 0.31355650764, 378.64329525170 ), { 4530 220 } ( 6.707, 2.92071167098, 1038.04128918680 ), { 4530 221 } ( 7.143, 0.18218134889, 731.94436026870 ), { 4530 222 } ( 7.309, 6.27084533477, 21.34064100240 ), { 4530 223 } ( 6.135, 2.67651237303, 312.45971639350 ), { 4530 224 } ( 5.558, 3.83419160288, 534.35683154060 ), { 4530 225 } ( 5.344, 5.25294750019, 1048.33622992530 ), { 4530 226 } ( 7.504, 0.74281415471, 457.61767951300 ), { 4530 227 } ( 5.335, 6.23059924424, 551.03160609700 ), { 4530 228 } ( 5.613, 1.51210605952, 524.27433912320 ), { 4530 229 } ( 5.284, 2.18579185671, 280.96714700450 ), { 4530 230 } ( 5.475, 5.95864753605, 539.98590583310 ), { 4530 231 } ( 5.056, 0.37387972537, 529.53090640020 ), { 4530 232 } ( 6.202, 5.53813122743, 2.44768055480 ), { 4530 233 } ( 5.490, 5.97692444199, 227.52618943960 ), { 4530 234 } ( 6.266, 0.76632858238, 938.12990870590 ), { 4530 235 } ( 5.750, 2.13496323512, 191.95845443560 ), { 4530 236 } ( 5.218, 4.69335266854, 560.71045373160 ), { 4530 237 } ( 5.480, 5.21157595558, 1057.89745748090 ), { 4530 238 } ( 5.738, 0.34249718209, 535.91074021810 ), { 4530 239 } ( 4.816, 1.51326236835, 2524.02141025200 ), { 4530 240 } ( 5.056, 3.46671669992, 529.85102378900 ), { 4530 241 } ( 4.710, 2.27813830550, 3370.10424500320 ), { 4530 242 } ( 5.228, 3.61776977584, 2097.42321937600 ), { 4530 243 } ( 4.878, 1.39829798223, 3693.60966166060 ), { 4530 244 } ( 5.727, 4.80120381106, 598.84348936940 ), { 4530 245 } ( 5.707, 3.94177950323, 2854.64037391020 ), { 4530 246 } ( 4.988, 4.87244187719, 1.48447270830 ), { 4530 247 } ( 5.424, 3.53268613904, 456.39383923560 ), { 4530 248 } ( 4.288, 4.84438067847, 70.84944530420 ), { 4530 249 } ( 5.944, 3.79180483544, 25558.21217647960 ), { 4530 250 } ( 4.195, 2.09136830994, 2627.11418447060 ), { 4530 251 } ( 4.582, 5.61707254513, 2435.15573003500 ), { 4530 252 } ( 4.268, 6.20250525415, 775.23338944700 ), { 4530 253 } ( 4.521, 0.20049967962, 92.04707395470 ), { 4530 254 } ( 5.405, 4.66492781581, 833.55266177900 ), { 4530 255 } ( 5.607, 3.30226645638, 535.32003938710 ), { 4530 256 } ( 4.171, 3.14873010832, 944.98282327580 ), { 4530 257 } ( 4.108, 5.84489743779, 440.82528487760 ), { 4530 258 } ( 4.367, 4.68363584557, 327.43756992050 ), { 4530 259 } ( 4.033, 3.30883782817, 3274.12501778540 ), { 4530 260 } ( 4.292, 0.20604269202, 3796.70243587920 ), { 4530 261 } ( 4.270, 0.98941708997, 387.24131496080 ), { 4530 262 } ( 4.259, 3.21120589971, 696.51963761660 ), { 4530 263 } ( 4.673, 1.96606729969, 107.02492748170 ), { 4530 264 } ( 4.031, 4.62854606236, 2751.54759969160 ), { 4530 265 } ( 5.115, 2.66416451377, 1215.16490244730 ), { 4530 266 } ( 4.181, 4.74527698816, 988.53248488500 ), { 4530 267 } ( 4.374, 1.50010561403, 1894.41906467650 ), { 4530 268 } ( 3.803, 3.59911687954, 437.64389113990 ), { 4530 269 } ( 3.761, 3.96903199782, 732.69511979410 ), { 4530 270 } ( 3.620, 1.57847427805, 381.61224066830 ), { 4530 271 } ( 3.490, 0.63097592112, 529.90341341570 ), { 4530 272 } ( 4.019, 2.57664165720, 916.93228005540 ), { 4530 273 } ( 4.133, 4.78417930217, 824.74219374880 ), { 4530 274 } ( 4.411, 3.13179382423, 630.33605875840 ), { 4530 275 } ( 4.099, 3.63702212253, 810.65811209910 ), { 4530 276 } ( 3.704, 6.17243801274, 537.76771994190 ), { 4530 277 } ( 4.124, 2.14248285449, 210.11770170030 ), { 4530 278 } ( 3.490, 3.20962050417, 529.47851677350 ), { 4530 279 } ( 3.281, 1.53106243317, 547.85021235930 ), { 4530 280 } ( 3.554, 6.03787799174, 739.05790726950 ), { 4530 281 } ( 4.101, 6.00406226999, 902.70518605380 ), { 4530 282 } ( 3.267, 3.49354065789, 1166.40685767090 ), { 4530 283 } ( 3.286, 2.55966870530, 945.99421523210 ), { 4530 284 } ( 4.041, 4.78735413707, 850.01498801430 ), { 4530 285 } ( 4.304, 0.11406117717, 1744.85586754190 ), { 4530 286 } ( 4.043, 5.20417093600, 635.23141986800 ), { 4530 287 } ( 3.115, 4.61986265585, 952.35700270750 ), { 4530 288 } ( 3.016, 0.95126220905, 3899.79521009780 ), { 4530 289 } ( 3.017, 2.59699501992, 632.83192342300 ), { 4530 290 } ( 3.219, 1.83594791142, 18.15924726470 ), { 4530 291 } ( 3.203, 6.12597544496, 10.29494073850 ), { 4530 292 } ( 3.220, 6.14213423140, 1158.54255114470 ), { 4530 293 } ( 3.000, 5.69509924353, 632.73555520340 ), { 4530 294 } ( 3.226, 5.59910267099, 608.40471692500 ), { 4530 295 } ( 3.118, 5.64998934505, 99.16062095550 ), { 4530 296 } ( 3.745, 2.08111521615, 282.45161971280 ), { 4530 297 } ( 2.837, 4.60175594220, 245.54242435240 ), { 4530 298 } ( 3.093, 6.02049413961, 633.74694715970 ), { 4530 299 } ( 3.120, 2.29047945342, 631.82053146670 ), { 4530 300 } ( 2.662, 3.69016679729, 885.43971066640 ), { 4530 301 } ( 3.150, 1.79784999553, 521.61421024730 ), { 4530 302 } ( 2.822, 3.14927418161, 295.05122865420 ), { 4530 303 } ( 2.615, 0.20732170653, 35.42472265210 ), { 4530 304 } ( 2.971, 1.28795094653, 1023.95720753710 ), { 4530 305 } ( 2.571, 2.01817133502, 1514.29129671650 ), { 4530 306 } ( 2.592, 0.48790221200, 195.13984817330 ), { 4530 307 } ( 3.263, 2.38820607343, 836.52160719560 ), { 4530 308 } ( 2.501, 0.21653750027, 465.95506679120 ), { 4530 309 } ( 2.451, 5.58559489768, 544.66881862160 ), { 4530 310 } ( 2.535, 1.44414086617, 460.53844081980 ), { 4530 311 } ( 2.666, 3.30350145485, 2413.81508903260 ), { 4530 312 } ( 2.412, 4.36756580310, 1056.93424963440 ), { 4530 313 } ( 2.452, 4.53818816565, 514.71311156760 ), { 4530 314 } ( 3.239, 1.17022488774, 177.87437278590 ), { 4530 315 } ( 3.218, 0.60551913257, 1061.82961074400 ), { 4530 316 } ( 2.408, 0.65423523810, 523.54062594030 ), { 4530 317 } ( 2.299, 2.15247752560, 319.57326339430 ), { 4530 318 } ( 2.791, 2.71505085086, 610.69233878540 ), { 4530 319 } ( 2.729, 1.77685979153, 252.65597135320 ), { 4530 320 } ( 2.666, 3.77750458842, 3171.03224356680 ), { 4530 321 } ( 2.303, 0.36676453766, 1969.20066324380 ), { 4530 322 } ( 2.664, 0.09674841214, 565.11568774670 ), { 4530 323 } ( 2.312, 2.07210502831, 3686.49611465980 ), { 4530 324 } ( 2.680, 4.94445888050, 1593.00504854690 ), { 4530 325 } ( 2.193, 0.55645982205, 2228.97018159780 ), { 4530 326 } ( 2.526, 1.07528597373, 12036.46073488820 ), { 4530 327 } ( 2.778, 1.48379350517, 447.79581952650 ), { 4530 328 } ( 2.235, 5.95475282699, 6151.53388830500 ), { 4530 329 } ( 2.759, 4.63976153480, 462.02291352810 ), { 4530 330 } ( 2.175, 4.53588570240, 501.37978944330 ), { 4530 331 } ( 2.323, 5.93670041006, 611.44309831080 ), { 4530 332 } ( 2.384, 2.81746622971, 3340.61242669980 ), { 4530 333 } ( 2.087, 3.10716079675, 1049.08698945070 ), { 4530 334 } ( 1.994, 2.02500860064, 1058.86066532740 ), { 4530 335 } ( 2.199, 2.20937490997, 1269.49963188950 ), { 4530 336 } ( 2.705, 1.97665276677, 415.29185818120 ), { 4530 337 } ( 2.787, 1.31053438756, 1041.22268292450 ), { 4530 338 } ( 2.003, 4.66904374443, 679.25416222920 ), { 4530 339 } ( 1.962, 1.82999730674, 2943.50605412720 ), { 4530 340 } ( 2.289, 2.96480800939, 69.15252427480 ), { 4530 341 } ( 2.192, 4.47837196209, 209.36694217490 ), { 4530 342 } ( 2.020, 0.04621364490, 4113.09430553580 ), { 4530 343 } ( 2.082, 1.11203059170, 4010.00153131720 ), { 4530 344 } ( 1.991, 3.20108648275, 3590.51688744200 ), { 4530 345 } ( 1.900, 3.32227077969, 421.93232443000 ), { 4530 346 } ( 2.193, 2.82218305362, 292.01284726840 ), { 4530 347 } ( 2.288, 1.94695631885, 1279.79457262800 ), { 4530 348 } ( 1.843, 5.23293634337, 14.97785352700 ), { 4530 349 } ( 1.932, 5.46684252030, 2281.23049651060 ), { 4530 350 } ( 2.177, 2.93031976617, 429.04587143080 ), { 4530 351 } ( 2.125, 0.06224847826, 24.37902238820 ), { 4530 352 } ( 2.464, 5.39581078430, 1261.63532536330 ), { 4530 353 } ( 1.938, 3.79908004671, 1059.43011429900 ), { 4530 354 } ( 2.029, 3.95461157815, 771.30123618390 ), { 4530 355 } ( 1.841, 4.74905354737, 78.71375183040 ), { 4530 356 } ( 1.922, 2.21862085389, 99.91138048090 ), { 4530 357 } ( 1.836, 5.75449805175, 623.22251175760 ), { 4530 358 } ( 2.145, 3.87052575546, 451.94042111070 ), { 4530 359 } ( 1.782, 0.40860352236, 754.03576079650 ), { 4530 360 } ( 1.784, 1.49468287576, 529.95159752550 ), { 4530 361 } ( 1.842, 3.49726261337, 1354.43315884340 ), { 4530 362 } ( 1.748, 3.48730020953, 522.62560220360 ), { 4530 363 } ( 1.816, 1.24334711210, 417.03696332040 ), { 4530 364 } ( 1.752, 1.15500390019, 1060.34513803570 ), { 4530 365 } ( 1.729, 2.69831073799, 642.34496686880 ), { 4530 366 } ( 1.985, 1.99916658759, 934.94851496820 ), { 4530 367 } ( 1.828, 5.44095029767, 1201.83158032300 ), { 4530 368 } ( 2.158, 3.45672748590, 827.92358748650 ), { 4530 369 } ( 1.959, 1.06033047373, 33.94024994380 ), { 4530 370 } ( 1.751, 3.13572498964, 384.05992122310 ), { 4530 371 } ( 1.781, 5.02895146997, 1098.73880610440 ), { 4530 372 } ( 2.074, 3.18582065441, 1366.21257229020 ), { 4530 373 } ( 1.757, 5.02778552877, 586.31331639720 ), { 4530 374 } ( 2.045, 3.08816627459, 535.84130424890 ), { 4530 375 } ( 2.273, 5.17998505813, 3178.14579056760 ), { 4530 376 } ( 1.617, 3.16674916201, 67.66805156650 ), { 4530 377 } ( 1.627, 6.10603469594, 432.01481684740 ), { 4530 378 } ( 1.930, 1.63968957659, 5.41662597140 ), { 4530 379 } ( 1.741, 0.99408274736, 1254.52177836250 ), { 4530 380 } ( 1.607, 5.65498642076, 1165.65609814550 ), { 4530 381 } ( 1.676, 3.06138410273, 1134.16352875650 ), { 4530 382 } ( 1.821, 3.05183555090, 567.82400073240 ), { 4530 383 } ( 1.677, 3.09175084930, 1251.34038462480 ), { 4530 384 } ( 1.994, 2.52023134712, 1059.90319505100 ), { 4530 385 } ( 2.204, 6.15376698510, 563.63121503840 ), { 4530 386 } ( 1.692, 4.19142612803, 106.27416795630 ), { 4530 387 } ( 1.906, 5.58417395051, 32.24332891440 ), { 4530 388 } ( 2.206, 1.75883974012, 1151.42900414390 ), { 4530 389 } ( 1.552, 3.04262360186, 385.54439393140 ), { 4530 390 } ( 1.508, 0.42002830727, 313.21047591890 ), { 4530 391 } ( 1.494, 1.43672345922, 2840.41327990860 ), { 4530 392 } ( 1.678, 2.17255433434, 306.83064210100 ), { 4530 393 } ( 1.511, 4.44377608685, 395.10562148700 ), { 4530 394 } ( 1.958, 0.05215107058, 761.74000862830 ), { 4530 395 } ( 1.760, 1.27045286501, 1173.52040467170 ), { 4530 396 } ( 1.463, 6.07810373103, 0.96320784650 ), { 4530 397 } ( 1.498, 2.79408561759, 277.03499374140 ), { 4530 398 } ( 1.636, 0.26199351490, 522.52923398400 ), { 4530 399 } ( 1.507, 0.48961801593, 4216.18707975440 ), { 4530 400 } ( 1.530, 3.42953827550, 1159.29331067010 ), { 4530 401 } ( 1.744, 2.39637837261, 203.00415469950 ), { 4530 402 } ( 1.569, 2.55719070621, 4.19278569400 ), { 4530 403 } ( 1.576, 3.45039607104, 1058.41872234270 ), { 4530 404 } ( 1.466, 2.24427539934, 1550.93985964600 ), { 4530 405 } ( 1.784, 2.34591354953, 529.43033266370 ), { 4530 406 } ( 1.939, 4.73685428610, 3067.93946934820 ), { 4530 407 } ( 1.938, 0.60126164334, 1059.33374607940 ), { 4530 408 } ( 1.523, 2.98744673443, 2730.20695868920 ), { 4530 409 } ( 1.834, 3.78099298791, 420.96911658350 ), { 4530 410 } ( 1.372, 3.53997115825, 5.62907429250 ), { 4530 411 } ( 1.361, 0.45533257707, 418.52143602870 ), { 4530 412 } ( 1.833, 5.12743628215, 1578.02719501990 ), { 4530 413 } ( 1.839, 4.24616044210, 981.63138620530 ), { 4530 414 } ( 1.567, 3.32429870195, 532.39927808030 ), { 4530 415 } ( 1.340, 1.94668282270, 528.41894070740 ), { 4530 416 } ( 1.422, 1.83191577465, 4002.88798431640 ), { 4530 417 } ( 1.745, 5.76913240451, 490.07345674850 ), { 4530 418 } ( 1.437, 4.19470227783, 420.44785172170 ), { 4530 419 } ( 1.419, 0.74849005330, 632.26247445140 ), { 4530 420 } ( 1.447, 5.65611888743, 373.01422095920 ), { 4530 421 } ( 1.578, 3.90273683089, 602.98809095360 ), { 4530 422 } ( 1.385, 3.88479835656, 419.43645976540 ), { 4530 423 } ( 1.352, 0.81697905853, 1585.14074202070 ), { 4530 424 } ( 1.399, 1.24785452243, 633.30500417500 ), { 4530 425 } ( 1.297, 5.57914023189, 1276.61317889030 ), { 4530 426 } ( 1.491, 1.66541781223, 2655.56837247380 ), { 4530 427 } ( 1.252, 0.72155670765, 173.94221952280 ), { 4530 428 } ( 1.658, 5.60924662850, 362.86229257260 ), { 4530 429 } ( 1.606, 3.95301396173, 2274.54683263650 ), { 4530 430 } ( 1.213, 4.55264289565, 366.79444583570 ), { 4530 431 } ( 1.521, 0.55773831071, 1592.25428902150 ), { 4530 432 } ( 1.220, 3.63029788040, 497.44763618020 ), { 4530 433 } ( 1.215, 4.42854185903, 531.38788612400 ), { 4530 434 } ( 1.549, 5.73765962068, 320.32402291970 ), { 4530 435 } ( 1.480, 4.29779032931, 303.86169668440 ), { 4530 436 } ( 1.507, 2.27998567874, 758.77106321170 ), { 4530 437 } ( 1.212, 3.38335836048, 536.85269620520 ), { 4530 438 } ( 1.245, 4.21639959154, 4.66586644600 ), { 4530 439 } ( 1.507, 3.52136655355, 774.00954916960 ), { 4530 440 } ( 1.481, 3.06156044618, 1585.89150154610 ), { 4530 441 } ( 1.462, 2.30628702634, 1363.24362687360 ), { 4530 442 } ( 1.180, 3.52708055024, 1064.79855616060 ), { 4530 443 } ( 1.193, 5.88284733845, 1060.86640289750 ), { 4530 444 } ( 1.398, 4.99456521692, 842.90144101350 ), { 4530 445 } ( 1.406, 1.53799746944, 1020.02505427400 ), { 4530 446 } ( 1.367, 4.10254739443, 799.61241183520 ), { 4530 447 } ( 1.336, 1.89387272380, 530.96298948180 ), { 4530 448 } ( 1.238, 3.62226383331, 3487.42411322340 ), { 4530 449 } ( 1.306, 3.39985119727, 539.25219265020 ), { 4530 450 } ( 1.156, 0.77127511567, 1603.29998928540 ), { 4530 451 } ( 1.482, 0.48451915093, 493.04240216510 ), { 4530 452 } ( 1.247, 5.64344659992, 479.28838891550 ), { 4530 453 } ( 1.195, 2.39909893341, 561.18353448360 ), { 4530 454 } ( 1.106, 0.89453807282, 2.92076130680 ), { 4530 455 } ( 1.227, 2.76231244946, 299.12639426920 ), { 4530 456 } ( 1.128, 4.72319873338, 124.43341522100 ), { 4530 457 } ( 1.086, 5.66180289525, 1053.75285589670 ), { 4530 458 } ( 1.329, 0.16664094530, 536.75632798560 ), { 4530 459 } ( 1.082, 4.51407359350, 528.25467649610 ), { 4530 460 } ( 1.105, 1.93890691771, 244.31858407500 ), { 4530 461 } ( 1.446, 0.65096230619, 1091.62525910360 ), { 4530 462 } ( 1.071, 4.67974963103, 521.82665856840 ), { 4530 463 } ( 1.413, 4.72936311016, 1141.13406340540 ), { 4530 464 } ( 1.086, 2.88721124443, 1262.38608488870 ), { 4530 465 } ( 1.254, 5.74156595137, 527.99404406520 ), { 4530 466 } ( 1.082, 5.60975006771, 531.12725369310 ), { 4530 467 } ( 1.148, 3.27410230525, 1035.00290780100 ), { 4530 468 } ( 1.224, 3.68807537150, 81.75213321620 ), { 4530 469 } ( 1.072, 0.48068438564, 1058.63117066380 ), { 4530 470 } ( 1.036, 1.68789163831, 1070.42763045310 ), { 4530 471 } ( 1.052, 4.72763208332, 913.75088631770 ), { 4530 472 } ( 1.166, 4.97812626679, 450.97721326420 ), { 4530 473 } ( 1.042, 2.90894542321, 3906.90875709860 ), { 4530 474 } ( 0.997, 1.65967703856, 3259.89792378380 ), { 4530 475 } ( 1.113, 3.06502453809, 1482.79872732750 ), { 4530 476 } ( 0.991, 0.91568114148, 576.16138801060 ), { 4530 477 } ( 0.987, 0.91349590742, 2332.06295581640 ), { 4530 478 } ( 1.003, 6.17381204883, 391.17346822390 ), { 4530 479 } ( 1.087, 3.19260020877, 151.04766984290 ), { 4530 480 } ( 0.987, 2.48065918834, 1912.57831194120 ), { 4530 481 } ( 0.975, 1.55458771092, 536.28324723360 ), { 4530 482 } ( 1.193, 2.19383228000, 523.09868295560 ), { 4530 483 } ( 0.979, 3.28693620660, 1379.70595310890 ), { 4530 484 } ( 0.963, 2.29845109892, 1467.82087380050 ), { 4530 485 } ( 1.279, 4.73978455573, 600.54041039880 ), { 4530 486 } ( 1.269, 1.77171706595, 5120.60114558360 ), { 4530 487 } ( 0.938, 3.13636271584, 1372.59240610810 ), { 4530 488 } ( 0.956, 0.94045126791, 429.77958461370 ), { 4530 489 } ( 1.130, 4.87259620358, 874.39401040250 ), { 4530 490 } ( 1.044, 3.52819283674, 530.58473697190 ), { 4530 491 } ( 1.244, 0.80634178279, 419.53282798500 ), { 4530 492 } ( 0.914, 4.34324212455, 1127.04998175570 ), { 4530 493 } ( 1.095, 3.17513475763, 6681.22485339960 ), { 4530 494 } ( 0.926, 5.53099018797, 537.55527162080 ), { 4530 495 } ( 1.025, 6.08315999637, 469.88722005430 ), { 4530 496 } ( 0.928, 2.64064849636, 31.01948863700 ), { 4530 497 } ( 0.887, 5.53922649066, 498.67147645760 ), { 4530 498 } ( 1.153, 5.20213407651, 554.06998748280 ), { 4530 499 } ( 0.976, 4.26047885490, 806.72595883600 ), { 4530 500 } ( 0.871, 5.79751110150, 594.65070367540 ), { 4530 501 } ( 1.044, 0.31244551729, 528.79719321730 ), { 4530 502 } ( 0.911, 0.94039205468, 337.73251065900 ), { 4530 503 } ( 1.197, 3.12884590029, 1966.23171782720 ), { 4530 504 } ( 0.930, 2.88178471518, 1056.46116888240 ), { 4530 505 } ( 1.052, 1.69484089706, 484.44438245600 ), { 4530 506 } ( 0.862, 0.67309397482, 20426.57109242200 ), { 4530 507 } ( 1.152, 1.16751621652, 1489.91227432830 ), { 4530 508 } ( 0.847, 3.25831322825, 1063.57471588320 ), { 4530 509 } ( 0.884, 0.71487680084, 2042.49778910280 ), { 4530 510 } ( 0.888, 5.38714907441, 5621.84292321040 ), { 4530 511 } ( 1.137, 4.02029739425, 1670.07426897460 ), { 4530 512 } ( 0.844, 3.31846798590, 812.14258480740 ), { 4530 513 } ( 0.860, 4.78175008217, 530.91480537200 ), { 4530 514 } ( 0.835, 3.63117401608, 451.72797278960 ), { 4530 515 } ( 0.931, 2.27352189963, 100.64509366380 ), { 4530 516 } ( 0.939, 3.51238251326, 523.47118997110 ), { 4530 517 } ( 0.860, 5.34207357904, 528.46712481720 ), { 4530 518 } ( 0.875, 0.87775537110, 4326.39340097380 ), { 4530 519 } ( 0.961, 5.69327275886, 498.19839570560 ), { 4530 520 } ( 0.966, 6.25512226434, 700.45179087970 ), { 4530 521 } ( 0.842, 3.20535945596, 1670.82502850000 ), { 4530 522 } ( 0.808, 1.09148925587, 683.18631549230 ), { 4530 523 } ( 0.810, 5.47935192896, 525.54636351040 ), { 4530 524 } ( 0.855, 6.06969867736, 446.31134681820 ), { 4530 525 } ( 0.989, 1.55623875216, 1493.09366806600 ), { 4530 526 } ( 0.837, 1.49510080792, 1025.44168024540 ), { 4530 527 } ( 0.974, 3.67667471757, 25565.32572348040 ), { 4530 528 } ( 0.788, 0.51622458293, 526.98265210890 ), { 4530 529 } ( 0.820, 1.86002542644, 629.86297800640 ), { 4530 530 } ( 0.813, 0.45441968195, 4694.00295470760 ), { 4530 531 } ( 0.953, 0.58786779132, 627.36711334180 ), { 4530 532 } ( 0.908, 2.82093327912, 3046.59882834580 ), { 4530 533 } ( 0.912, 2.69124310451, 946.72792841500 ), { 4530 534 } ( 0.820, 4.14947931572, 1884.12412393800 ), { 4530 535 } ( 0.948, 0.77931728039, 25551.09862947879 ), { 4530 536 } ( 0.844, 0.00976249584, 628.59095361920 ), { 4530 537 } ( 0.910, 0.99542530366, 5760.49843189760 ), { 4530 538 } ( 0.844, 0.22630964490, 1123.11782849260 ), { 4530 539 } ( 0.924, 4.41952345708, 5746.27133789600 ), { 4530 540 } ( 0.967, 3.20618313117, 9050.81084180320 ), { 4530 541 } ( 0.800, 0.10663079153, 4532.57894941100 ), { 4530 542 } ( 0.748, 3.01376405927, 5481.75455838080 ), { 4530 543 } ( 0.752, 5.82360472890, 701.93626358800 ), { 4530 544 } ( 0.771, 0.12101982692, 635.70450062000 ), { 4530 545 } ( 0.725, 2.81220410314, 3597.63043444280 ), { 4530 546 } ( 0.944, 0.40327408174, 1140.38330388000 ), { 4530 547 } ( 0.726, 5.28930472464, 1304.92435454160 ), { 4530 548 } ( 0.994, 5.16391370100, 10316.37832042960 ), { 4530 549 } ( 0.890, 4.10819809692, 1060.13268971460 ), { 4530 550 } ( 0.962, 1.48376004549, 1062.30269149600 ), { 4530 551 } ( 0.883, 5.26813169286, 1542.60247236780 ), { 4530 552 } ( 0.916, 6.02908368648, 7.86430652620 ), { 4530 553 } ( 0.725, 2.18773773010, 1176.70179840940 ), { 4530 554 } ( 0.808, 5.81725174908, 1087.69310584050 ), { 4530 555 } ( 0.757, 0.77440414330, 977.48678462110 ), { 4530 556 } ( 0.838, 3.81585420192, 986.08480433020 ), { 4530 557 } ( 0.888, 1.89634795578, 707.56533788050 ), { 4530 558 } ( 0.854, 5.47701506544, 2818.03500860600 ), { 4530 559 } ( 0.796, 1.08794807212, 987.30864460760 ), { 4530 560 } ( 0.856, 2.58042139486, 2803.80791460440 ), { 4530 561 } ( 0.708, 1.09492310353, 248.72381809010 ), { 4530 562 } ( 0.811, 3.23726191865, 121.25202148330 ), { 4530 563 } ( 0.727, 1.56150632966, 4319.27985397300 ), { 4530 564 } ( 0.687, 2.65457835371, 1567.73225428140 ), { 4530 565 } ( 0.675, 1.78690909614, 103.14095832840 ), { 4530 566 } ( 0.853, 4.74476428852, 951.62328952460 ), { 4530 567 } ( 0.832, 5.14362789810, 1054.71606374320 ), { 4530 568 } ( 0.846, 1.47557828604, 898.77303279070 ), { 4530 569 } ( 0.701, 1.72139817505, 5230.80746680300 ), { 4530 570 } ( 0.863, 3.98700238575, 686.95841006100 ), { 4530 571 } ( 0.703, 2.89202252444, 63.73589830340 ), { 4530 572 } ( 0.673, 6.11618580510, 738.32419408660 ), { 4530 573 } ( 0.806, 4.64475158248, 533.83556667880 ), { 4530 574 } ( 0.670, 2.67625974048, 1012.91150727320 ), { 4530 575 } ( 0.668, 4.93815253692, 5172.47623572500 ), { 4530 576 } ( 0.818, 1.41973280302, 580.09354127370 ), { 4530 577 } ( 0.652, 3.41422919445, 650.94298657790 ), { 4530 578 } ( 0.643, 2.46566726278, 1049.82070263360 ), { 4530 579 } ( 0.859, 2.50530106631, 782.34693644780 ), { 4530 580 } ( 0.662, 4.13533996643, 733.42883297700 ), { 4530 581 } ( 0.812, 1.30325352179, 1055.18914449520 ), { 4530 582 } ( 0.638, 4.21760246824, 1064.04779663520 ), { 4530 583 } ( 0.637, 6.13121700151, 4752.99159184980 ), { 4530 584 } ( 0.636, 0.83411828974, 711.49749114360 ), { 4530 585 } ( 0.642, 1.86741704507, 1053.96530421780 ), { 4530 586 } ( 0.795, 4.54081089118, 1457.52593306200 ), { 4530 587 } ( 0.783, 4.37652961667, 105.54045477340 ), { 4530 588 } ( 0.640, 5.44039474349, 632.03297978780 ), { 4530 589 } ( 0.651, 5.02431301146, 528.04643369190 ), { 4530 590 } ( 0.686, 0.27079898498, 11.77941344680 ), { 4530 591 } ( 0.644, 5.36935176134, 835.78789401270 ), { 4530 592 } ( 0.639, 1.86699974431, 6172.86952877200 ), { 4530 593 } ( 0.630, 2.86895754523, 633.53449883860 ), { 4530 594 } ( 0.826, 1.46026926041, 2199.76523406920 ), { 4530 595 } ( 0.687, 3.81221717134, 73.29712585900 ), { 4530 596 } ( 0.697, 4.18082589322, 1.69692102940 ), { 4530 597 } ( 0.788, 0.21278801649, 313.94418910180 ), { 4530 598 } ( 0.686, 2.51807576494, 638.41281360570 ), { 4530 599 } ( 0.847, 5.56263749391, 4429.48617519240 ), { 4530 600 } ( 0.673, 4.87494072856, 103.04459010880 ), { 4530 601 } ( 0.663, 4.80713895807, 991.71387862270 ), { 4530 602 } ( 0.614, 3.87231597482, 767.36908292080 ), { 4530 603 } ( 0.666, 5.71697262323, 661.09491496450 ), { 4530 604 } ( 0.681, 2.33844767741, 501.23677709140 ), { 4530 605 } ( 0.597, 3.03921014345, 6.95348830640 ), { 4530 606 } ( 0.777, 3.08786050361, 441.57604440300 ), { 4530 607 } ( 0.588, 0.08236113246, 4164.31198961300 ), { 4530 608 } ( 0.693, 4.66190836234, 3384.33133900480 ), { 4530 609 } ( 0.810, 1.97701084490, 860.30992875280 ), { 4530 610 } ( 0.602, 5.56403449542, 1587.58842257550 ), { 4530 611 } ( 0.622, 6.11554348965, 7.06536289100 ), { 4530 612 } ( 0.592, 3.29013906024, 10103.07922499160 ), { 4530 613 } ( 0.692, 6.10931942233, 12.74262129330 ), { 4530 614 } ( 0.597, 6.13204711801, 7.27360569520 ), { 4530 615 } ( 0.594, 2.58839673551, 849.26422848890 ), { 4530 616 } ( 0.728, 2.73732195088, 6.15033915430 ), { 4530 617 } ( 0.602, 5.28816527514, 949.12742486000 ), { 4530 618 } ( 0.568, 1.75508433865, 1077.54117745390 ), { 4530 619 } ( 0.575, 4.50676079721, 1230.14275597430 ), { 4530 620 } ( 0.588, 0.65827893998, 4642.78527063040 ), { 4530 621 } ( 0.561, 3.87565914360, 135.33610313300 ), { 4530 622 } ( 0.558, 3.36094471852, 24498.83024629040 ), { 4530 623 } ( 0.557, 3.45629457197, 19896.88012732740 ), { 4530 624 } ( 0.558, 1.17103892689, 3576.28979344040 ), { 4530 625 } ( 0.574, 5.19235074140, 104.05598206510 ), { 4530 626 } ( 0.560, 3.57141429379, 5333.90024102160 ), { 4530 627 } ( 0.555, 0.18349908409, 512.42548970720 ), { 4530 628 } ( 0.571, 0.83070148820, 1570.91364801910 ), { 4530 629 } ( 0.632, 3.67893818442, 1065.01100448170 ), { 4530 630 } ( 0.744, 2.33083237537, 620.25356634100 ), { 4530 631 } ( 0.540, 5.15775909675, 1751.53953141600 ), { 4530 632 } ( 0.592, 3.07238123875, 1446.62324515000 ), { 4530 633 } ( 0.537, 1.52803865425, 8094.52168583260 ), { 4530 634 } ( 0.550, 5.50701003577, 1432.39615114840 ), { 4530 635 } ( 0.546, 2.34388967045, 949.22379307960 ), { 4530 636 } ( 0.534, 3.04076654796, 7.16173111060 ), { 4530 637 } ( 0.619, 6.07865159203, 46.47042291600 ), { 4530 638 } ( 0.562, 0.96641974928, 1438.02522544090 ), { 4530 639 } ( 0.531, 1.06695547390, 100.17201291180 ), { 4530 640 } ( 0.599, 3.59295739143, 1144.31545714310 ), { 4530 641 } ( 0.526, 3.51641923371, 0.75075952540 ), { 4530 642 } ( 0.564, 0.72677136494, 1059.22187149480 ), { 4530 643 } ( 0.537, 5.72603965787, 513.22863885930 ), { 4530 644 } ( 0.630, 2.31183143900, 2729.45619916380 ), { 4530 645 } ( 0.530, 4.99510636441, 9264.10993724120 ), { 4530 646 } ( 0.649, 0.95666735852, 920.86443331850 ), { 4530 647 } ( 0.547, 1.18801926149, 11506.76976979360 ), { 4530 648 } ( 0.516, 3.28562070858, 734.91330568530 ), { 4530 649 } ( 0.567, 5.13926871155, 288.08069400530 ), { 4530 650 } ( 0.538, 0.28159637680, 153.49535039770 ), { 4530 651 } ( 0.718, 0.48326672359, 842.15068148810 ), { 4530 652 } ( 0.526, 4.39778401928, 546.15329132990 ), { 4530 653 } ( 0.695, 2.44235086902, 657.16276170140 ), { 4530 654 } ( 0.697, 4.99042365686, 12.53017297220 ), { 4530 655 } ( 0.519, 6.27847163164, 59.80374504030 ), { 4530 656 } ( 0.504, 2.58550284000, 5378.66178416220 ), { 4530 657 } ( 0.496, 2.43659402827, 990.22940591440 ), { 4530 658 } ( 0.617, 5.73284985700, 745.43774108740 ), { 4530 659 } ( 0.519, 3.10157097770, 9161.01716302260 ), { 4530 660 } ( 0.654, 1.31181453784, 878.32616366560 ), { 4530 661 } ( 0.619, 3.71554817226, 2090.30967237520 ), { 4530 662 } ( 0.500, 4.28937439066, 5216.58037280140 ), { 4530 663 } ( 0.621, 3.98893673383, 409.92341631960 ), { 4530 664 } ( 0.685, 1.95310431695, 3156.80514956520 ), { 4530 665 } ( 0.552, 2.81774132958, 344.70304530790 ), { 4530 666 } ( 0.551, 1.91969778405, 113.38771495710 ), { 4530 667 } ( 0.682, 0.87321578326, 6069.77675455340 ), { 4530 668 } ( 0.651, 5.09951064975, 531.33549649730 ), { 4530 669 } ( 0.537, 3.67357440226, 605.95703637020 ), { 4530 670 } ( 0.525, 0.74584814988, 736.83972137830 ), { 4530 671 } ( 0.505, 3.12494814307, 1475.68518032670 ), { 4530 672 } ( 0.622, 3.00013939606, 2349.32843120380 ), { 4530 673 } ( 0.644, 3.00156986335, 298.23262239190 ), { 4530 674 } ( 0.564, 3.81960833949, 1059.54198888360 ), { 4530 675 } ( 0.468, 3.50348554992, 4841.85727206680 ), { 4530 676 } ( 0.491, 1.28535573072, 247.23934538180 ), { 4530 677 } ( 0.458, 0.45056377876, 1065.60170531270 ), { 4530 678 } ( 0.543, 2.39704308320, 9690.70812811720 ), { 4530 679 } ( 0.459, 5.29870259698, 1474.93442080130 ), { 4530 680 } ( 0.483, 3.63649121244, 131.40394986990 ), { 4530 681 } ( 0.632, 2.75028345792, 334.55111692130 ), { 4530 682 } ( 0.483, 0.42979609421, 735.82832942200 ), { 4530 683 } ( 0.540, 0.54791737146, 51646.11531805379 ), { 4530 684 } ( 0.531, 0.30026207053, 912.78767847120 ), { 4530 685 } ( 0.449, 3.02583472996, 5901.23920225600 ), { 4530 686 } ( 0.544, 2.98747240952, 4223.30062675520 ), { 4530 687 } ( 0.557, 5.83542572008, 9676.48103411560 ), { 4530 688 } ( 0.501, 0.03408180117, 1080.72257119160 ), { 4530 689 } ( 0.517, 4.40400852026, 2545.36205125440 ), { 4530 690 } ( 0.481, 3.63292807076, 5584.84733259940 ), { 4530 691 } ( 0.557, 6.11443978190, 976.00231191280 ), { 4530 692 } ( 0.481, 3.41035583659, 3803.81598288000 ), { 4530 693 } ( 0.622, 2.29597570837, 9999.98645077300 ), { 4530 694 } ( 0.454, 2.88584538455, 1987.21689815660 ), { 4530 695 } ( 0.439, 4.83198101064, 50.40257617910 ), { 4530 696 } ( 0.475, 2.69994471394, 491.81856188770 ), { 4530 697 } ( 0.618, 0.72471290082, 1291.43097372290 ), { 4530 698 } ( 0.503, 0.13449993622, 2015.67108615980 ), { 4530 699 } ( 0.551, 2.13418546604, 1440.99417085750 ), { 4530 700 } ( 0.595, 3.78181802545, 6386.16862421000 ), { 4530 701 } ( 0.434, 2.64411689486, 748.40668650400 ), { 4530 702 } ( 0.592, 0.32587740408, 737.36098624010 ), { 4530 703 } ( 0.490, 2.37988828800, 2225.78878786010 ), { 4530 704 } ( 0.439, 1.33582802018, 995.64603188580 ), { 4530 705 } ( 0.543, 2.05067702505, 906.84978763800 ), { 4530 706 } ( 0.466, 2.43707405011, 3362.99069800240 ), { 4530 707 } ( 0.481, 2.32223226419, 1357.61455258110 ), { 4530 708 } ( 0.566, 0.59740900184, 350.33211960040 ), { 4530 709 } ( 0.429, 2.46287580628, 3914.02230409940 ), { 4530 710 } ( 0.429, 1.01299906509, 4333.50694797460 ), { 4530 711 } ( 0.425, 1.67255823369, 148.07872442630 ), { 4530 712 } ( 0.412, 3.29630633921, 7.32599532190 ), { 4530 713 } ( 0.508, 1.16158524676, 9.56122755560 ), { 4530 714 } ( 0.524, 5.02562926120, 1090.40141882620 ), { 4530 715 } ( 0.409, 5.80053072411, 9146.79006902100 ), { 4530 716 } ( 0.497, 0.01579913593, 1069.67687092770 ), { 4530 717 } ( 0.548, 6.03429743373, 9367.20271145980 ), { 4530 718 } ( 0.433, 5.93688350840, 1688.23351623930 ), { 4530 719 } ( 0.424, 4.18150111530, 550.13783421970 ), { 4530 720 } ( 0.401, 0.11519846139, 970.51624997220 ), { 4530 721 } ( 0.503, 5.28212300854, 668.20846196530 ), { 4530 722 } ( 0.555, 1.00328633255, 141.22580985640 ), { 4530 723 } ( 0.404, 2.48633976473, 519.65665678700 ), { 4530 724 } ( 0.441, 6.06185501734, 25.12978191360 ), { 4530 725 } ( 0.412, 5.87495245826, 6.90109867970 ), { 4530 726 } ( 0.478, 0.71264950607, 1094.80665284130 ), { 4530 727 } ( 0.446, 2.71248183031, 31.49256938900 ), { 4530 728 } ( 0.404, 5.49462012486, 447.93883187840 ), { 4530 729 } ( 0.391, 1.26105612700, 8.07675484730 ), { 4530 730 } ( 0.463, 1.93535321271, 6275.96230299060 ), { 4530 731 } ( 0.507, 3.61089992782, 546.95644048200 ), { 4530 732 } ( 0.402, 5.86200127054, 927.83496796740 ), { 4530 733 } ( 0.481, 6.21043578332, 683.98946464440 ), { 4530 734 } ( 0.483, 5.02142924458, 857.12853501510 ), { 4530 735 } ( 0.444, 0.84873092377, 1371.84164658270 ), { 4530 736 } ( 0.391, 2.81753436573, 5798.14642803740 ), { 4530 737 } ( 0.395, 0.22367886581, 51116.42435295920 ), { 4530 738 } ( 0.378, 6.03765733432, 1268.74887236410 ), { 4530 739 } ( 0.471, 6.24506463249, 946.46729598410 ), { 4530 740 } ( 0.405, 0.57785207581, 107.28555991260 ), { 4530 741 } ( 0.371, 6.15750793727, 509.24409596950 ), { 4530 742 } ( 0.370, 4.90330687618, 1436.54075273260 ), { 4530 743 } ( 0.448, 4.76565111029, 284.14854074220 ), { 4530 744 } ( 0.474, 0.71146352197, 2108.46891963990 ), { 4530 745 } ( 0.509, 5.53328407404, 1128.53445446400 ) (*$endif *) ); (*@\\\0000003701*) (*@/// vsop87_jup_r1:array[0..380,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_jup_r1:array[0.. 42,0..2] of extended = ( (*$else *) vsop87_jup_r1:array[0..380,0..2] of extended = ( (*$endif *) { 4531 1 } ( 1271801.596, 2.64937511122, 529.69096509460 ), { 4531 2 } ( 61661.771, 3.00076251018, 1059.38193018920 ), { 4531 3 } ( 53443.592, 3.89717644226, 522.57741809380 ), { 4531 4 } ( 31185.167, 4.88276663526, 536.80451209540 ), { 4531 5 } ( 41390.257, 0.00000000000, 0.00000000000 ), { 4531 6 } ( 11847.190, 2.41329588176, 419.48464387520 ), { 4531 7 } ( 9166.360, 4.75979408587, 7.11354700080 ), { 4531 8 } ( 3175.763, 2.79297987071, 103.09277421860 ), { 4531 9 } ( 3203.446, 5.21083285476, 735.87651353180 ), { 4531 10 } ( 3403.605, 3.34688537997, 1589.07289528380 ), { 4531 11 } ( 2600.003, 3.63435101622, 206.18554843720 ), { 4531 12 } ( 2412.207, 1.46947308304, 426.59819087600 ), { 4531 13 } ( 2806.064, 3.74223693580, 515.46387109300 ), { 4531 14 } ( 2676.575, 4.33052878699, 1052.26838318840 ), { 4531 15 } ( 2100.507, 3.92762682306, 639.89728631400 ), { 4531 16 } ( 1646.182, 5.30953510947, 1066.49547719000 ), { 4531 17 } ( 1641.257, 4.41628669824, 625.67019231240 ), { 4531 18 } ( 1049.866, 3.16113622955, 213.29909543800 ), { 4531 19 } ( 1024.802, 2.55432643018, 412.37109687440 ), { 4531 20 } ( 740.996, 2.17094630558, 1162.47470440780 ), { 4531 21 } ( 806.404, 2.67750801380, 632.78373931320 ), { 4531 22 } ( 676.928, 6.24953479790, 838.96928775040 ), { 4531 23 } ( 468.895, 4.70973463481, 543.91805909620 ), { 4531 24 } ( 444.683, 0.40281181402, 323.50541665740 ), { 4531 25 } ( 567.076, 4.57655414712, 742.99006053260 ), { 4531 26 } ( 415.894, 5.36836018215, 728.76296653100 ), { 4531 27 } ( 484.689, 2.46882793186, 949.17560896980 ), { 4531 28 } ( 337.555, 3.16781951120, 956.28915597060 ), { 4531 29 } ( 401.738, 4.60528841541, 309.27832265580 ), { 4531 30 } ( 347.378, 4.68148808722, 14.22709400160 ), { 4531 31 } ( 260.753, 5.34290306101, 846.08283475120 ), { 4531 32 } ( 220.084, 4.84210964963, 1368.66025284500 ), { 4531 33 } ( 203.217, 5.59995425432, 1155.36115740700 ), { 4531 34 } ( 246.603, 3.92313823537, 942.06206196900 ), { 4531 35 } ( 183.504, 4.26526769703, 95.97922721780 ), { 4531 36 } ( 180.134, 4.40165491159, 532.87235883230 ), { 4531 37 } ( 197.134, 3.70551461394, 2118.76386037840 ), { 4531 38 } ( 196.005, 3.75877587139, 199.07200143640 ), { 4531 39 } ( 200.190, 4.43888814441, 1045.15483618760 ), { 4531 40 } ( 170.225, 4.84647488867, 526.50957135690 ), { 4531 41 } ( 146.335, 6.12958365535, 533.62311835770 ), { 4531 42 } ( 133.483, 1.32245735855, 110.20632121940 ), { 4531 43 } ( 132.076, 4.51187950811, 525.75881183150 ) (*$ifndef meeus *) , { 4531 44 } ( 123.851, 2.04290370696, 1478.86657406440 ), { 4531 45 } ( 121.861, 4.40581788491, 1169.58825140860 ), { 4531 46 } ( 115.313, 4.46741278152, 1581.95934828300 ), { 4531 47 } ( 98.527, 5.72833991647, 1596.18644228460 ), { 4531 48 } ( 91.608, 4.52965592121, 1685.05212250160 ), { 4531 49 } ( 110.638, 3.62504147403, 1272.68102562720 ), { 4531 50 } ( 80.536, 4.11311699583, 1258.45393162560 ), { 4531 51 } ( 79.552, 2.71898473954, 1692.16566950240 ), { 4531 52 } ( 100.164, 5.24693885858, 1265.56747862640 ), { 4531 53 } ( 77.854, 5.56722651753, 1471.75302706360 ), { 4531 54 } ( 85.766, 0.07906707372, 831.85574074960 ), { 4531 55 } ( 82.132, 3.80763015979, 508.35032409220 ), { 4531 56 } ( 55.319, 0.35180851191, 316.39186965660 ), { 4531 57 } ( 52.338, 5.53074272117, 433.71173787680 ), { 4531 58 } ( 55.769, 4.75141241141, 302.16477565500 ), { 4531 59 } ( 50.597, 4.85603161770, 1375.77379984580 ), { 4531 60 } ( 43.554, 4.94441642712, 1361.54670584420 ), { 4531 61 } ( 42.172, 1.22404278447, 853.19638175200 ), { 4531 62 } ( 37.695, 4.26767539209, 2001.44399215820 ), { 4531 63 } ( 49.395, 4.01422828967, 220.41264243880 ), { 4531 64 } ( 38.263, 5.33025236797, 1788.14489672020 ), { 4531 65 } ( 35.611, 1.76205571128, 1795.25844372100 ), { 4531 66 } ( 36.296, 3.84995284393, 1574.84580128220 ), { 4531 67 } ( 29.332, 5.16619257786, 3.93215326310 ), { 4531 68 } ( 25.180, 4.33777727362, 519.39602435610 ), { 4531 69 } ( 24.778, 2.72907897410, 405.25754987360 ), { 4531 70 } ( 27.025, 6.09669947903, 1148.24761040620 ), { 4531 71 } ( 22.604, 0.19173890105, 380.12776796000 ), { 4531 72 } ( 20.499, 4.32881495378, 3.18139373770 ), { 4531 73 } ( 19.925, 4.62967500111, 1677.93857550080 ), { 4531 74 } ( 19.528, 5.10596326232, 1073.60902419080 ), { 4531 75 } ( 18.427, 3.76522178300, 1485.98012106520 ), { 4531 76 } ( 18.869, 5.05259402407, 2104.53676637680 ), { 4531 77 } ( 17.031, 4.01843356903, 2317.83586181480 ), { 4531 78 } ( 16.671, 5.42931676507, 88.86568021700 ), { 4531 79 } ( 15.337, 2.92700926091, 2008.55753915900 ), { 4531 80 } ( 14.499, 3.63339836845, 628.85158605010 ), { 4531 81 } ( 14.575, 5.50832843322, 721.64941953020 ), { 4531 82 } ( 13.728, 4.87623389735, 629.60234557550 ), { 4531 83 } ( 18.481, 6.03032762264, 330.61896365820 ), { 4531 84 } ( 13.499, 1.38539534821, 518.64526483070 ), { 4531 85 } ( 15.740, 2.93038271684, 1905.46476494040 ), { 4531 86 } ( 12.459, 1.58587053146, 2111.65031337760 ), { 4531 87 } ( 12.272, 3.37671053917, 635.96513305090 ), { 4531 88 } ( 11.836, 4.08486322993, 2648.45482547300 ), { 4531 89 } ( 11.166, 4.62623267608, 636.71589257630 ), { 4531 90 } ( 14.348, 2.74177797727, 2221.85663459700 ), { 4531 91 } ( 11.221, 3.55311861205, 1891.23767093880 ), { 4531 92 } ( 13.121, 5.83845065644, 1464.63948006280 ), { 4531 93 } ( 11.351, 2.57606886230, 511.53171782990 ), { 4531 94 } ( 10.487, 0.49850799841, 453.42489381900 ), { 4531 95 } ( 9.728, 4.38837468002, 1994.33044515740 ), { 4531 96 } ( 10.131, 2.76432756215, 423.41679713830 ), { 4531 97 } ( 8.620, 5.16374493158, 1056.20053645150 ), { 4531 98 } ( 8.952, 4.79407952752, 2420.92863603340 ), { 4531 99 } ( 8.126, 3.72977106954, 2634.22773147140 ), { 4531 100 } ( 8.078, 1.29246272894, 2428.04218303420 ), { 4531 101 } ( 8.867, 1.85684753622, 750.10360753340 ), { 4531 102 } ( 8.912, 4.80973516711, 1062.56332392690 ), { 4531 103 } ( 8.552, 4.53818617984, 21.34064100240 ), { 4531 104 } ( 9.468, 4.33472161983, 1802.37199072180 ), { 4531 105 } ( 6.904, 5.96616555709, 540.73666535850 ), { 4531 106 } ( 7.293, 4.97763580465, 1699.27921650320 ), { 4531 107 } ( 7.083, 4.99096728816, 1055.44977692610 ), { 4531 108 } ( 7.226, 4.97823884383, 1898.35121793960 ), { 4531 109 } ( 6.464, 1.39173466879, 422.66603761290 ), { 4531 110 } ( 6.214, 4.46490158256, 551.03160609700 ), { 4531 111 } ( 6.794, 2.90878831415, 2324.94940881560 ), { 4531 112 } ( 6.173, 3.65617162985, 621.73803904930 ), { 4531 113 } ( 6.243, 6.13691919694, 2125.87740737920 ), { 4531 114 } ( 5.936, 2.58312235120, 569.04784100980 ), { 4531 115 } ( 6.504, 4.56908431757, 1038.04128918680 ), { 4531 116 } ( 7.305, 3.02062127734, 416.30325013750 ), { 4531 117 } ( 6.598, 5.55348005731, 1781.03134971940 ), { 4531 118 } ( 5.133, 6.21646917980, 963.40270297140 ), { 4531 119 } ( 5.876, 4.23153077453, 539.98590583310 ), { 4531 120 } ( 5.119, 0.06942832171, 1063.31408345230 ), { 4531 121 } ( 5.460, 4.91084384602, 835.03713448730 ), { 4531 122 } ( 4.989, 1.35153694680, 1382.88734684660 ), { 4531 123 } ( 5.224, 0.18468411116, 117.31986822020 ), { 4531 124 } ( 6.187, 3.87193497099, 191.95845443560 ), { 4531 125 } ( 4.681, 4.61057119508, 643.82943957710 ), { 4531 126 } ( 4.627, 3.34644534691, 2207.62954059540 ), { 4531 127 } ( 4.526, 4.07729737127, 2310.72231481400 ), { 4531 128 } ( 4.718, 4.55578336947, 2737.32050569000 ), { 4531 129 } ( 4.471, 1.47603161897, 408.43894361130 ), { 4531 130 } ( 4.073, 1.13014903180, 415.55249061210 ), { 4531 131 } ( 5.476, 5.63198569698, 618.55664531160 ), { 4531 132 } ( 4.034, 4.09631702747, 430.53034413910 ), { 4531 133 } ( 4.304, 4.60536378943, 647.01083331480 ), { 4531 134 } ( 3.765, 3.42751259825, 2950.61960112800 ), { 4531 135 } ( 4.559, 4.23723998745, 227.52618943960 ), { 4531 136 } ( 3.695, 1.03127824978, 2744.43405269080 ), { 4531 137 } ( 3.667, 4.12268925541, 440.82528487760 ), { 4531 138 } ( 3.677, 2.19480200527, 534.35683154060 ), { 4531 139 } ( 3.818, 1.14800596289, 74.78159856730 ), { 4531 140 } ( 4.221, 2.37721579949, 2538.24850425360 ), { 4531 141 } ( 3.488, 5.33792561596, 458.84151979040 ), { 4531 142 } ( 3.437, 4.26164443643, 10.29494073850 ), { 4531 143 } ( 4.394, 0.18808423412, 824.74219374880 ), { 4531 144 } ( 3.339, 4.85708402591, 295.05122865420 ), { 4531 145 } ( 3.329, 5.50043586719, 739.80866679490 ), { 4531 146 } ( 3.623, 4.64011531952, 2214.74308759620 ), { 4531 147 } ( 3.185, 2.69708590442, 561.93429400900 ), { 4531 148 } ( 3.421, 3.38512615384, 149.56319713460 ), { 4531 149 } ( 3.442, 4.34217280083, 305.34616939270 ), { 4531 150 } ( 3.580, 5.29481665335, 2097.42321937600 ), { 4531 151 } ( 3.401, 2.74761862893, 2641.34127847220 ), { 4531 152 } ( 2.901, 0.91012525424, 984.60033162190 ), { 4531 153 } ( 3.566, 1.63400343968, 525.02509864860 ), { 4531 154 } ( 2.869, 1.31799241974, 611.44309831080 ), { 4531 155 } ( 2.635, 5.25517910535, 532.13864564940 ), { 4531 156 } ( 2.683, 4.24641945773, 3053.71237534660 ), { 4531 157 } ( 2.614, 3.17862099921, 527.24328453980 ), { 4531 158 } ( 2.251, 4.21598247360, 739.05790726950 ), { 4531 159 } ( 2.268, 5.52248110560, 524.27433912320 ), { 4531 160 } ( 2.372, 4.19741177512, 217.23124870110 ), { 4531 161 } ( 2.623, 5.82647427958, 732.69511979410 ), { 4531 162 } ( 2.666, 3.92538056951, 210.11770170030 ), { 4531 163 } ( 2.036, 4.84043420813, 1049.08698945070 ), { 4531 164 } ( 2.441, 2.63840901843, 760.25553592000 ), { 4531 165 } ( 2.095, 5.76269812349, 529.64278098480 ), { 4531 166 } ( 2.021, 3.81308146017, 2627.11418447060 ), { 4531 167 } ( 2.089, 4.18463193132, 945.99421523210 ), { 4531 168 } ( 2.305, 1.61220665690, 604.47256366190 ), { 4531 169 } ( 1.969, 5.37427735384, 142.44965013380 ), { 4531 170 } ( 1.923, 4.75088270631, 535.10759106600 ), { 4531 171 } ( 1.955, 5.49000238006, 1439.50969814920 ), { 4531 172 } ( 1.877, 3.26978877187, 3267.01147078460 ), { 4531 173 } ( 2.286, 2.93885172004, 76.26607127560 ), { 4531 174 } ( 2.074, 5.85386852879, 532.61172640140 ), { 4531 175 } ( 2.121, 3.92430797099, 2435.15573003500 ), { 4531 176 } ( 1.807, 3.17208959472, 2524.02141025200 ), { 4531 177 } ( 1.712, 4.02986641257, 731.94436026870 ), { 4531 178 } ( 2.119, 0.41049593984, 1279.79457262800 ), { 4531 179 } ( 1.660, 2.34370903423, 528.72775724810 ), { 4531 180 } ( 1.655, 0.78809717175, 3060.82592234740 ), { 4531 181 } ( 1.729, 4.26127896267, 724.83081326790 ), { 4531 182 } ( 2.060, 5.04785330873, 2413.81508903260 ), { 4531 183 } ( 2.095, 2.67732367556, 529.73914920440 ), { 4531 184 } ( 1.933, 2.49162437046, 2957.73314812880 ), { 4531 185 } ( 1.898, 2.71948262975, 952.35700270750 ), { 4531 186 } ( 1.634, 2.98113068812, 945.24345570670 ), { 4531 187 } ( 1.582, 5.84373095005, 547.85021235930 ), { 4531 188 } ( 1.662, 0.27359627181, 454.90936652730 ), { 4531 189 } ( 1.595, 1.18530167095, 38.13303563780 ), { 4531 190 } ( 1.550, 0.64264572959, 312.45971639350 ), { 4531 191 } ( 1.525, 4.08789824989, 1158.54255114470 ), { 4531 192 } ( 1.542, 1.12520322326, 1021.24889455140 ), { 4531 193 } ( 1.539, 0.37324921979, 319.57326339430 ), { 4531 194 } ( 1.628, 5.24285773388, 1354.43315884340 ), { 4531 195 } ( 1.897, 3.79973291113, 953.10776223290 ), { 4531 196 } ( 1.440, 4.37872256685, 3178.14579056760 ), { 4531 197 } ( 1.439, 4.26513521887, 526.77020378780 ), { 4531 198 } ( 1.557, 5.43779802371, 81.75213321620 ), { 4531 199 } ( 1.656, 6.09667089740, 530.65417294110 ), { 4531 200 } ( 1.548, 3.48799710267, 934.94851496820 ), { 4531 201 } ( 1.772, 5.82549274759, 909.81873305460 ), { 4531 202 } ( 1.615, 1.45018725033, 902.70518605380 ), { 4531 203 } ( 1.387, 2.52840497309, 530.44172462000 ), { 4531 204 } ( 1.574, 1.89565809136, 437.64389113990 ), { 4531 205 } ( 1.459, 3.32546061506, 1041.22268292450 ), { 4531 206 } ( 1.377, 0.10015418633, 490.33408917940 ), { 4531 207 } ( 1.460, 4.00706825185, 3370.10424500320 ), { 4531 208 } ( 1.605, 4.27993020192, 2531.13495725280 ), { 4531 209 } ( 1.707, 6.28253681644, 18.15924726470 ), { 4531 210 } ( 1.802, 2.23019296374, 2854.64037391020 ), { 4531 211 } ( 1.390, 3.76737324192, 1165.65609814550 ), { 4531 212 } ( 1.498, 0.17285954362, 1141.13406340540 ), { 4531 213 } ( 1.401, 4.81225317549, 1251.34038462480 ), { 4531 214 } ( 1.244, 2.83383980283, 124.43341522100 ), { 4531 215 } ( 1.320, 5.80675430384, 387.24131496080 ), { 4531 216 } ( 1.329, 0.88314574243, 916.93228005540 ), { 4531 217 } ( 1.558, 6.17808619637, 983.11585891360 ), { 4531 218 } ( 1.243, 0.29239666059, 597.35901666110 ), { 4531 219 } ( 1.541, 3.51095241498, 2751.54759969160 ), { 4531 220 } ( 1.482, 0.83066678204, 529.16970023280 ), { 4531 221 } ( 1.149, 3.91142023857, 99.91138048090 ), { 4531 222 } ( 1.114, 3.53339637290, 483.22054217860 ), { 4531 223 } ( 1.195, 4.16301075999, 203.00415469950 ), { 4531 224 } ( 1.100, 1.74769285223, 497.44763618020 ), { 4531 225 } ( 1.458, 5.19315120878, 1592.25428902150 ), { 4531 226 } ( 1.123, 1.45270581179, 533.88375078860 ), { 4531 227 } ( 1.078, 5.23991792940, 1159.29331067010 ), { 4531 228 } ( 1.083, 3.57026506855, 2943.50605412720 ), { 4531 229 } ( 1.072, 0.07132659992, 1070.42763045310 ), { 4531 230 } ( 1.037, 5.48955598976, 1585.89150154610 ), { 4531 231 } ( 1.343, 0.29600445633, 860.30992875280 ), { 4531 232 } ( 1.361, 3.46603373194, 107.02492748170 ), { 4531 233 } ( 1.061, 2.44580706826, 1048.33622992530 ), { 4531 234 } ( 1.002, 5.55216117410, 337.73251065900 ), { 4531 235 } ( 0.981, 3.15500987023, 70.84944530420 ), { 4531 236 } ( 1.007, 4.11504050436, 501.23677709140 ), { 4531 237 } ( 0.965, 5.63719524421, 1603.29998928540 ), { 4531 238 } ( 1.083, 4.88373909810, 1166.40685767090 ), { 4531 239 } ( 0.953, 2.83352026342, 3583.40334044120 ), { 4531 240 } ( 1.060, 3.18542176646, 447.79581952650 ), { 4531 241 } ( 1.136, 2.26568590950, 525.49817940060 ), { 4531 242 } ( 1.191, 2.25249961404, 106.27416795630 ), { 4531 243 } ( 0.884, 4.69777781327, 960.22130923370 ), { 4531 244 } ( 1.165, 1.56030440737, 630.33605875840 ), { 4531 245 } ( 0.947, 0.50856414717, 842.90144101350 ), { 4531 246 } ( 1.011, 0.30814674949, 1593.00504854690 ), { 4531 247 } ( 0.924, 2.31939900786, 327.43756992050 ), { 4531 248 } ( 0.896, 0.22222521202, 746.92221379570 ), { 4531 249 } ( 1.078, 4.78329116086, 2730.20695868920 ), { 4531 250 } ( 0.938, 5.42471506763, 1585.14074202070 ), { 4531 251 } ( 0.923, 4.44469169065, 9676.48103411560 ), { 4531 252 } ( 0.894, 0.26940821870, 2655.56837247380 ), { 4531 253 } ( 1.131, 5.46382510304, 224.34479570190 ), { 4531 254 } ( 0.808, 0.48295590141, 3377.21779200400 ), { 4531 255 } ( 0.809, 4.14122746067, 114.13847448250 ), { 4531 256 } ( 0.864, 1.83217006136, 4.66586644600 ), { 4531 257 } ( 1.106, 2.60444312553, 209.36694217490 ), { 4531 258 } ( 0.790, 0.11493626208, 460.53844081980 ), { 4531 259 } ( 0.799, 1.60426497590, 5223.69391980220 ), { 4531 260 } ( 0.933, 0.30976125598, 685.47393735270 ), { 4531 261 } ( 1.053, 5.23433104008, 842.15068148810 ), { 4531 262 } ( 0.846, 3.02878393490, 5746.27133789600 ), { 4531 263 } ( 0.799, 2.08457026425, 77734.01845962799 ), { 4531 264 } ( 0.820, 0.99821486743, 373.01422095920 ), { 4531 265 } ( 0.892, 5.36446426391, 827.92358748650 ), { 4531 266 } ( 0.821, 3.53889274951, 498.67147645760 ), { 4531 267 } ( 0.741, 1.32379374647, 530.21222995640 ), { 4531 268 } ( 0.790, 2.88034567513, 938.12990870590 ), { 4531 269 } ( 0.842, 3.39449778904, 484.44438245600 ), { 4531 270 } ( 0.785, 0.57841470897, 850.01498801430 ), { 4531 271 } ( 0.759, 3.82014112009, 6283.07584999140 ), { 4531 272 } ( 0.954, 2.94534072982, 462.02291352810 ), { 4531 273 } ( 0.767, 3.33725133157, 99.16062095550 ), { 4531 274 } ( 0.810, 4.69425300466, 2228.97018159780 ), { 4531 275 } ( 0.700, 1.72050221502, 775.23338944700 ), { 4531 276 } ( 0.764, 4.91747674296, 1670.82502850000 ), { 4531 277 } ( 0.724, 6.08692841992, 2281.23049651060 ), { 4531 278 } ( 0.711, 4.82250918143, 11.77941344680 ), { 4531 279 } ( 0.692, 2.63705354662, 6.59228213900 ), { 4531 280 } ( 0.771, 3.87410612014, 9690.70812811720 ), { 4531 281 } ( 0.906, 2.47189948442, 3274.12501778540 ), { 4531 282 } ( 0.781, 1.25357484582, 202.25339517410 ), { 4531 283 } ( 0.757, 3.78079814332, 2818.03500860600 ), { 4531 284 } ( 0.756, 4.28312053897, 2803.80791460440 ), { 4531 285 } ( 0.663, 5.27704405712, 4532.57894941100 ), { 4531 286 } ( 0.759, 5.45358686570, 9683.59458111640 ), { 4531 287 } ( 0.698, 5.43712520216, 565.11568774670 ), { 4531 288 } ( 0.709, 3.71117647887, 3686.49611465980 ), { 4531 289 } ( 0.677, 4.27891183416, 25028.52121138500 ), { 4531 290 } ( 0.643, 1.40239510103, 9161.01716302260 ), { 4531 291 } ( 0.656, 0.60909845504, 835.78789401270 ), { 4531 292 } ( 0.635, 5.75373871128, 429.77958461370 ), { 4531 293 } ( 0.702, 6.10412979847, 4635.67172362960 ), { 4531 294 } ( 0.627, 3.03666956129, 2840.41327990860 ), { 4531 295 } ( 0.802, 4.18688054701, 5753.38488489680 ), { 4531 296 } ( 0.838, 4.51386507097, 1069.67687092770 ), { 4531 297 } ( 0.633, 4.37183361444, 5.41662597140 ), { 4531 298 } ( 0.652, 5.79409889124, 1061.82961074400 ), { 4531 299 } ( 0.638, 2.18896270346, 313.21047591890 ), { 4531 300 } ( 0.827, 5.94231186039, 1457.52593306200 ), { 4531 301 } ( 0.678, 2.45013730979, 5760.49843189760 ), { 4531 302 } ( 0.814, 4.89578791170, 1567.73225428140 ), { 4531 303 } ( 0.624, 0.61631100566, 1176.70179840940 ), { 4531 304 } ( 0.600, 3.20918322285, 1098.73880610440 ), { 4531 305 } ( 0.717, 1.82349064490, 3171.03224356680 ), { 4531 306 } ( 0.651, 4.14419317491, 2847.52682690940 ), { 4531 307 } ( 0.629, 1.75272560843, 92.04707395470 ), { 4531 308 } ( 0.626, 3.53146082217, 3067.93946934820 ), { 4531 309 } ( 0.667, 4.22974611158, 4539.69249641180 ), { 4531 310 } ( 0.565, 0.99416346033, 1894.41906467650 ), { 4531 311 } ( 0.752, 0.46063700150, 635.23141986800 ), { 4531 312 } ( 0.622, 1.98136818407, 25565.32572348040 ), { 4531 313 } ( 0.614, 2.48275371627, 25551.09862947879 ), { 4531 314 } ( 0.560, 1.40733893388, 446.31134681820 ), { 4531 315 } ( 0.558, 4.37217796469, 1057.89745748090 ), { 4531 316 } ( 0.628, 4.65037810102, 6275.96230299060 ), { 4531 317 } ( 0.659, 2.41470950463, 195.13984817330 ), { 4531 318 } ( 0.616, 2.08837621877, 10.03430830760 ), { 4531 319 } ( 0.692, 3.13229025530, 7.63481186260 ), { 4531 320 } ( 0.685, 4.18539472904, 46.47042291600 ), { 4531 321 } ( 0.624, 0.02693303471, 1493.09366806600 ), { 4531 322 } ( 0.594, 2.13375704438, 121.25202148330 ), { 4531 323 } ( 0.508, 2.13584300710, 1.69692102940 ), { 4531 324 } ( 0.674, 1.47570122611, 4694.00295470760 ), { 4531 325 } ( 0.559, 4.48852017557, 531.17543780290 ), { 4531 326 } ( 0.640, 3.10239233469, 11.04570026390 ), { 4531 327 } ( 0.496, 1.29000001439, 927.83496796740 ), { 4531 328 } ( 0.587, 3.30651435298, 600.54041039880 ), { 4531 329 } ( 0.582, 0.44540948860, 113.38771495710 ), { 4531 330 } ( 0.492, 4.83275232000, 9492.14631500480 ), { 4531 331 } ( 0.549, 4.34579166146, 3046.59882834580 ), { 4531 332 } ( 0.576, 1.22846846364, 1514.29129671650 ), { 4531 333 } ( 0.593, 5.86079640612, 524.06189080210 ), { 4531 334 } ( 0.510, 2.62557031270, 529.85102378900 ), { 4531 335 } ( 0.489, 6.26855707323, 3693.60966166060 ), { 4531 336 } ( 0.480, 0.30754294369, 528.94020556920 ), { 4531 337 } ( 0.582, 3.51934668795, 1056.93424963440 ), { 4531 338 } ( 0.493, 5.52699906925, 512.28247735530 ), { 4531 339 } ( 0.481, 2.99681040149, 9153.90361602180 ), { 4531 340 } ( 0.562, 3.73437025868, 2015.67108615980 ), { 4531 341 } ( 0.458, 3.86646994292, 11.30633269480 ), { 4531 342 } ( 0.457, 1.80238019931, 3281.23856478620 ), { 4531 343 } ( 0.453, 6.17995938655, 1059.33374607940 ), { 4531 344 } ( 0.551, 0.13794958618, 1912.57831194120 ), { 4531 345 } ( 0.446, 5.53828660924, 2332.06295581640 ), { 4531 346 } ( 0.444, 5.06219342598, 7.86430652620 ), { 4531 347 } ( 0.461, 0.16951411708, 26087.90314157420 ), { 4531 348 } ( 0.439, 4.14986379679, 1151.42900414390 ), { 4531 349 } ( 0.614, 5.42289673768, 2090.30967237520 ), { 4531 350 } ( 0.488, 3.71681959056, 447.93883187840 ), { 4531 351 } ( 0.592, 2.91424148255, 8624.21265092720 ), { 4531 352 } ( 0.433, 2.55336268329, 1064.04779663520 ), { 4531 353 } ( 0.449, 5.24955106938, 10213.28554621100 ), { 4531 354 } ( 0.510, 5.81591864532, 529.53090640020 ), { 4531 355 } ( 0.435, 5.34355963629, 560.71045373160 ), { 4531 356 } ( 0.449, 0.72330388784, 2758.66114669240 ), { 4531 357 } ( 0.430, 0.94519103478, 6.36278747540 ), { 4531 358 } ( 0.563, 6.19175228344, 1884.12412393800 ), { 4531 359 } ( 0.443, 3.39246520261, 1152.17976366930 ), { 4531 360 } ( 0.430, 1.28652623263, 505.31194270640 ), { 4531 361 } ( 0.422, 5.12631540623, 944.98282327580 ), { 4531 362 } ( 0.464, 2.90444584145, 398.14400287280 ), { 4531 363 } ( 0.410, 1.24248975309, 5069.38346150640 ), { 4531 364 } ( 0.411, 2.95117124177, 4326.39340097380 ), { 4531 365 } ( 0.418, 5.15499986314, 1173.52040467170 ), { 4531 366 } ( 0.412, 2.98125446330, 554.06998748280 ), { 4531 367 } ( 0.403, 0.34381388674, 32.24332891440 ), { 4531 368 } ( 0.402, 5.88926765351, 1570.91364801910 ), { 4531 369 } ( 0.505, 1.49028912471, 3782.47534187760 ), { 4531 370 } ( 0.447, 0.03952029309, 245.54242435240 ), { 4531 371 } ( 0.453, 3.09458004153, 1059.43011429900 ), { 4531 372 } ( 0.411, 3.21727542472, 1475.68518032670 ), { 4531 373 } ( 0.426, 3.12237794195, 12566.15169998280 ), { 4531 374 } ( 0.434, 3.59362426939, 3259.89792378380 ), { 4531 375 } ( 0.398, 4.91510709622, 4120.20785253660 ), { 4531 376 } ( 0.399, 4.67075122011, 234.63973644040 ), { 4531 377 } ( 0.386, 4.81320787761, 970.51624997220 ), { 4531 378 } ( 0.427, 3.21176085113, 977.48678462110 ), { 4531 379 } ( 0.411, 4.31566962034, 757.21715453420 ), { 4531 380 } ( 0.392, 1.86527946688, 885.43971066640 ), { 4531 381 } ( 0.416, 3.81408093105, 3156.80514956520 ) (*$endif *) ); (*@\\\0000003101*) (*@/// vsop87_jup_r2:array[0..189,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_jup_r2:array[0.. 35,0..2] of extended = ( (*$else *) vsop87_jup_r2:array[0..189,0..2] of extended = ( (*$endif *) { 4532 1 } ( 79644.833, 1.35865896596, 529.69096509460 ), { 4532 2 } ( 8251.618, 5.77773935444, 522.57741809380 ), { 4532 3 } ( 7029.864, 3.27476965833, 536.80451209540 ), { 4532 4 } ( 5314.006, 1.83835109712, 1059.38193018920 ), { 4532 5 } ( 1860.833, 2.97682139367, 7.11354700080 ), { 4532 6 } ( 836.267, 4.19889881718, 419.48464387520 ), { 4532 7 } ( 964.466, 5.48031822015, 515.46387109300 ), { 4532 8 } ( 406.453, 3.78250730354, 1066.49547719000 ), { 4532 9 } ( 426.570, 2.22753101795, 639.89728631400 ), { 4532 10 } ( 377.316, 2.24248352873, 1589.07289528380 ), { 4532 11 } ( 497.920, 3.14159265359, 0.00000000000 ), { 4532 12 } ( 339.043, 6.12690864038, 625.67019231240 ), { 4532 13 } ( 362.943, 5.36761847267, 206.18554843720 ), { 4532 14 } ( 342.048, 6.09922969324, 1052.26838318840 ), { 4532 15 } ( 279.920, 4.26162555827, 412.37109687440 ), { 4532 16 } ( 332.578, 0.00328961161, 426.59819087600 ), { 4532 17 } ( 229.777, 0.70530766213, 735.87651353180 ), { 4532 18 } ( 200.783, 3.06850623368, 543.91805909620 ), { 4532 19 } ( 199.807, 4.42884165317, 103.09277421860 ), { 4532 20 } ( 257.290, 0.96295364983, 632.78373931320 ), { 4532 21 } ( 138.606, 2.93235671606, 14.22709400160 ), { 4532 22 } ( 113.535, 0.78713911289, 728.76296653100 ), { 4532 23 } ( 86.025, 5.14434751994, 323.50541665740 ), { 4532 24 } ( 94.565, 1.70498041073, 838.96928775040 ), { 4532 25 } ( 83.469, 0.05834873484, 309.27832265580 ), { 4532 26 } ( 75.198, 1.60495195911, 956.28915597060 ), { 4532 27 } ( 70.451, 1.50988357484, 213.29909543800 ), { 4532 28 } ( 80.328, 2.98122361797, 742.99006053260 ), { 4532 29 } ( 56.203, 0.95534810533, 1162.47470440780 ), { 4532 30 } ( 61.649, 6.10137889854, 1045.15483618760 ), { 4532 31 } ( 66.572, 5.47307178077, 199.07200143640 ), { 4532 32 } ( 50.057, 2.72063162317, 532.87235883230 ), { 4532 33 } ( 51.904, 5.58435625607, 942.06206196900 ), { 4532 34 } ( 39.833, 5.94566506227, 95.97922721780 ), { 4532 35 } ( 44.548, 5.52445621411, 508.35032409220 ), { 4532 36 } ( 44.282, 0.27118152557, 526.50957135690 ) (*$ifndef meeus *) , { 4532 37 } ( 29.944, 0.93641735919, 1155.36115740700 ), { 4532 38 } ( 28.412, 2.87835720211, 525.75881183150 ), { 4532 39 } ( 26.330, 4.26891877269, 1596.18644228460 ), { 4532 40 } ( 27.039, 2.80607741398, 1169.58825140860 ), { 4532 41 } ( 27.477, 2.64841266238, 2118.76386037840 ), { 4532 42 } ( 22.705, 0.17830004133, 302.16477565500 ), { 4532 43 } ( 29.347, 1.78589692350, 831.85574074960 ), { 4532 44 } ( 19.991, 0.04328951895, 949.17560896980 ), { 4532 45 } ( 19.906, 1.16072627347, 533.62311835770 ), { 4532 46 } ( 21.714, 1.88820231818, 1272.68102562720 ), { 4532 47 } ( 17.581, 4.14974757919, 846.08283475120 ), { 4532 48 } ( 17.085, 5.89188996975, 1258.45393162560 ), { 4532 49 } ( 21.407, 4.35468497204, 316.39186965660 ), { 4532 50 } ( 21.295, 0.54429472455, 1265.56747862640 ), { 4532 51 } ( 19.859, 0.06453825800, 1581.95934828300 ), { 4532 52 } ( 17.025, 0.53383755278, 1368.66025284500 ), { 4532 53 } ( 12.804, 3.90044242142, 433.71173787680 ), { 4532 54 } ( 13.072, 0.79468040717, 110.20632121940 ), { 4532 55 } ( 11.945, 0.40671403646, 1361.54670584420 ), { 4532 56 } ( 11.695, 4.44394618065, 405.25754987360 ), { 4532 57 } ( 11.979, 2.22872778682, 220.41264243880 ), { 4532 58 } ( 9.633, 6.01002272123, 853.19638175200 ), { 4532 59 } ( 10.163, 0.99504635158, 1471.75302706360 ), { 4532 60 } ( 8.977, 1.60328709409, 1692.16566950240 ), { 4532 61 } ( 8.701, 3.52167876799, 1073.60902419080 ), { 4532 62 } ( 8.314, 5.60169732564, 1574.84580128220 ), { 4532 63 } ( 8.958, 6.26708748901, 519.39602435610 ), { 4532 64 } ( 7.828, 0.65241611799, 1478.86657406440 ), { 4532 65 } ( 7.833, 0.17920601344, 1685.05212250160 ), { 4532 66 } ( 7.451, 0.88421084942, 88.86568021700 ), { 4532 67 } ( 7.320, 0.89341249264, 721.64941953020 ), { 4532 68 } ( 9.135, 1.51210840939, 1148.24761040620 ), { 4532 69 } ( 6.110, 2.50080005128, 3.18139373770 ), { 4532 70 } ( 7.037, 4.44127496638, 330.61896365820 ), { 4532 71 } ( 5.163, 2.79219166952, 21.34064100240 ), { 4532 72 } ( 5.079, 2.97991736844, 1375.77379984580 ), { 4532 73 } ( 4.930, 0.04683167622, 1677.93857550080 ), { 4532 74 } ( 4.664, 2.28007273876, 1485.98012106520 ), { 4532 75 } ( 4.692, 0.86220230505, 3.93215326310 ), { 4532 76 } ( 5.307, 0.85008578245, 1788.14489672020 ), { 4532 77 } ( 4.239, 0.40758287124, 629.60234557550 ), { 4532 78 } ( 4.230, 1.61046658091, 635.96513305090 ), { 4532 79 } ( 3.627, 2.71151441113, 551.03160609700 ), { 4532 80 } ( 3.314, 0.55067236587, 1795.25844372100 ), { 4532 81 } ( 4.409, 1.28127751050, 1464.63948006280 ), { 4532 82 } ( 3.270, 1.18744032691, 1905.46476494040 ), { 4532 83 } ( 3.226, 6.18716071251, 1038.04128918680 ), { 4532 84 } ( 3.103, 6.22971614425, 2001.44399215820 ), { 4532 85 } ( 3.410, 2.44624067925, 539.98590583310 ), { 4532 86 } ( 3.174, 5.54870592599, 191.95845443560 ), { 4532 87 } ( 2.590, 3.24430559059, 1062.56332392690 ), { 4532 88 } ( 2.614, 0.55149554149, 2104.53676637680 ), { 4532 89 } ( 2.174, 5.32613824409, 1891.23767093880 ), { 4532 90 } ( 2.659, 4.82459974220, 416.30325013750 ), { 4532 91 } ( 2.187, 1.71707514653, 628.85158605010 ), { 4532 92 } ( 2.263, 6.19233486371, 1994.33044515740 ), { 4532 93 } ( 2.328, 4.28236795066, 963.40270297140 ), { 4532 94 } ( 2.579, 0.03256542251, 1898.35121793960 ), { 4532 95 } ( 2.077, 3.32602157426, 1699.27921650320 ), { 4532 96 } ( 2.529, 2.39697505835, 227.52618943960 ), { 4532 97 } ( 2.468, 0.06551346218, 750.10360753340 ), { 4532 98 } ( 1.989, 0.29206371261, 636.71589257630 ), { 4532 99 } ( 1.927, 0.32286661566, 295.05122865420 ), { 4532 100 } ( 1.904, 3.43534792123, 647.01083331480 ), { 4532 101 } ( 1.940, 0.29170673525, 2111.65031337760 ), { 4532 102 } ( 1.880, 3.14403615586, 611.44309831080 ), { 4532 103 } ( 2.324, 1.94960720763, 824.74219374880 ), { 4532 104 } ( 1.854, 4.71794950485, 2125.87740737920 ), { 4532 105 } ( 2.547, 1.23908353090, 2221.85663459700 ), { 4532 106 } ( 1.814, 1.60250861074, 2008.55753915900 ), { 4532 107 } ( 1.611, 5.83466560322, 422.66603761290 ), { 4532 108 } ( 1.667, 2.32455940876, 440.82528487760 ), { 4532 109 } ( 1.622, 0.36650974375, 1056.20053645150 ), { 4532 110 } ( 1.624, 2.42139677881, 10.29494073850 ), { 4532 111 } ( 1.622, 3.51892791175, 1055.44977692610 ), { 4532 112 } ( 1.606, 5.76205763975, 117.31986822020 ), { 4532 113 } ( 1.646, 5.88662636573, 2317.83586181480 ), { 4532 114 } ( 2.026, 4.61781314145, 423.41679713830 ), { 4532 115 } ( 2.098, 1.04559231028, 1781.03134971940 ), { 4532 116 } ( 1.868, 1.12487729469, 618.55664531160 ), { 4532 117 } ( 1.885, 2.78775930564, 1802.37199072180 ), { 4532 118 } ( 1.445, 0.08308050305, 1382.88734684660 ), { 4532 119 } ( 1.797, 3.00776822706, 2648.45482547300 ), { 4532 120 } ( 1.422, 0.17649746278, 2420.92863603340 ), { 4532 121 } ( 1.129, 1.59030291320, 380.12776796000 ), { 4532 122 } ( 1.126, 4.19989673600, 547.85021235930 ), { 4532 123 } ( 1.186, 5.98943062173, 2310.72231481400 ), { 4532 124 } ( 1.108, 4.22655117757, 934.94851496820 ), { 4532 125 } ( 1.259, 1.19687222266, 1063.31408345230 ), { 4532 126 } ( 1.072, 3.86169004168, 1603.29998928540 ), { 4532 127 } ( 0.946, 5.59968097387, 99.91138048090 ), { 4532 128 } ( 0.937, 1.03083276760, 81.75213321620 ), { 4532 129 } ( 0.938, 6.18136092771, 945.99421523210 ), { 4532 130 } ( 0.908, 2.54355964041, 6283.07584999140 ), { 4532 131 } ( 0.874, 5.21903196047, 2207.62954059540 ), { 4532 132 } ( 0.874, 6.01240284465, 511.53171782990 ), { 4532 133 } ( 1.188, 0.75698357968, 2097.42321937600 ), { 4532 134 } ( 0.789, 3.91035208173, 10213.28554621100 ), { 4532 135 } ( 1.000, 1.34667100304, 732.69511979410 ), { 4532 136 } ( 0.952, 1.55355777420, 2324.94940881560 ), { 4532 137 } ( 0.811, 5.00475553271, 319.57326339430 ), { 4532 138 } ( 0.763, 3.98527559630, 337.73251065900 ), { 4532 139 } ( 0.880, 1.14789972199, 952.35700270750 ), { 4532 140 } ( 0.780, 4.69463316930, 5746.27133789600 ), { 4532 141 } ( 0.910, 0.08774541571, 2737.32050569000 ), { 4532 142 } ( 0.773, 0.77131695762, 5760.49843189760 ), { 4532 143 } ( 0.764, 6.11686539353, 9676.48103411560 ), { 4532 144 } ( 0.758, 2.19350719860, 9690.70812811720 ), { 4532 145 } ( 0.671, 1.19532387143, 124.43341522100 ), { 4532 146 } ( 0.661, 5.99578306627, 501.23677709140 ), { 4532 147 } ( 0.729, 0.65312263578, 2538.24850425360 ), { 4532 148 } ( 0.825, 2.70770030205, 3370.10424500320 ), { 4532 149 } ( 0.670, 5.44169923277, 107.02492748170 ), { 4532 150 } ( 0.739, 1.14609907817, 2641.34127847220 ), { 4532 151 } ( 0.866, 3.02831268213, 3046.59882834580 ), { 4532 152 } ( 0.718, 4.83684196454, 860.30992875280 ), { 4532 153 } ( 0.813, 6.01229270247, 2214.74308759620 ), { 4532 154 } ( 0.746, 1.12371143332, 739.80866679490 ), { 4532 155 } ( 0.741, 5.93171662010, 2634.22773147140 ), { 4532 156 } ( 0.667, 0.89885058003, 106.27416795630 ), { 4532 157 } ( 0.573, 2.42701822581, 739.05790726950 ), { 4532 158 } ( 0.734, 0.72837704619, 1354.43315884340 ), { 4532 159 } ( 0.662, 2.21768976390, 2015.67108615980 ), { 4532 160 } ( 0.782, 2.52401202862, 3679.38256765900 ), { 4532 161 } ( 0.779, 2.38608991574, 3267.01147078460 ), { 4532 162 } ( 0.553, 1.85211127676, 453.42489381900 ), { 4532 163 } ( 0.701, 4.23431087374, 9683.59458111640 ), { 4532 164 } ( 0.571, 2.98435419019, 1262.38608488870 ), { 4532 165 } ( 0.621, 1.24462887440, 3803.81598288000 ), { 4532 166 } ( 0.563, 5.99845316446, 1049.08698945070 ), { 4532 167 } ( 0.538, 4.92334194042, 447.79581952650 ), { 4532 168 } ( 0.534, 0.99911551571, 462.02291352810 ), { 4532 169 } ( 0.541, 6.19275150397, 1987.21689815660 ), { 4532 170 } ( 0.511, 3.28553278370, 4.66586644600 ), { 4532 171 } ( 0.539, 5.33214565622, 2751.54759969160 ), { 4532 172 } ( 0.651, 5.12199308959, 3156.80514956520 ), { 4532 173 } ( 0.483, 3.03782387056, 3281.23856478620 ), { 4532 174 } ( 0.476, 2.17592053936, 149.56319713460 ), { 4532 175 } ( 0.510, 5.35664230912, 9.56122755560 ), { 4532 176 } ( 0.490, 1.57324553106, 1251.34038462480 ), { 4532 177 } ( 0.467, 5.92343423840, 203.00415469950 ), { 4532 178 } ( 0.528, 5.81786945766, 2627.11418447060 ), { 4532 179 } ( 0.447, 3.51498961805, 18.15924726470 ), { 4532 180 } ( 0.429, 0.16627197188, 74.78159856730 ), { 4532 181 } ( 0.497, 0.30985248432, 2428.04218303420 ), { 4532 182 } ( 0.516, 3.89424540015, 2516.90786325120 ), { 4532 183 } ( 0.519, 2.43126348834, 3686.49611465980 ), { 4532 184 } ( 0.404, 2.77840802846, 7.16173111060 ), { 4532 185 } ( 0.533, 4.77083438961, 3473.19701922180 ), { 4532 186 } ( 0.515, 3.54549816613, 3178.14579056760 ), { 4532 187 } ( 0.533, 5.61415688189, 2524.02141025200 ), { 4532 188 } ( 0.458, 4.91616403047, 3067.93946934820 ), { 4532 189 } ( 0.400, 3.13887720912, 540.73666535850 ), { 4532 190 } ( 0.378, 0.86122450940, 525.02509864860 ) (*$endif *) ); (*@\\\0000002A01*) (*@/// vsop87_jup_r3:array[0.. 97,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_jup_r3:array[0.. 27,0..2] of extended = ( (*$else *) vsop87_jup_r3:array[0.. 97,0..2] of extended = ( (*$endif *) { 4533 1 } ( 3519.257, 6.05800633846, 529.69096509460 ), { 4533 2 } ( 1073.239, 1.67321345760, 536.80451209540 ), { 4533 3 } ( 915.666, 1.41329676116, 522.57741809380 ), { 4533 4 } ( 341.593, 0.52296542656, 1059.38193018920 ), { 4533 5 } ( 254.893, 1.19625473533, 7.11354700080 ), { 4533 6 } ( 221.512, 0.95225226237, 515.46387109300 ), { 4533 7 } ( 69.078, 2.26885282314, 1066.49547719000 ), { 4533 8 } ( 89.729, 3.14159265359, 0.00000000000 ), { 4533 9 } ( 57.827, 1.41389745339, 543.91805909620 ), { 4533 10 } ( 57.653, 0.52580117593, 639.89728631400 ), { 4533 11 } ( 51.079, 5.98016364677, 412.37109687440 ), { 4533 12 } ( 46.935, 1.57864237959, 625.67019231240 ), { 4533 13 } ( 42.824, 6.11689609099, 419.48464387520 ), { 4533 14 } ( 37.477, 1.18262762330, 14.22709400160 ), { 4533 15 } ( 33.816, 1.66671706951, 1052.26838318840 ), { 4533 16 } ( 31.195, 1.04290245896, 1589.07289528380 ), { 4533 17 } ( 30.023, 4.63236245032, 426.59819087600 ), { 4533 18 } ( 33.531, 0.84784977903, 206.18554843720 ), { 4533 19 } ( 20.804, 2.50071243814, 728.76296653100 ), { 4533 20 } ( 14.466, 0.96040197071, 508.35032409220 ), { 4533 21 } ( 12.969, 1.50233788550, 1045.15483618760 ), { 4533 22 } ( 11.654, 3.55513510121, 323.50541665740 ), { 4533 23 } ( 12.319, 2.60952614503, 735.87651353180 ), { 4533 24 } ( 15.023, 0.89136998434, 199.07200143640 ), { 4533 25 } ( 11.160, 1.79041437555, 309.27832265580 ), { 4533 26 } ( 10.554, 6.27845112678, 956.28915597060 ), { 4533 27 } ( 9.812, 6.26016859519, 103.09277421860 ), { 4533 28 } ( 9.301, 3.45126812476, 838.96928775040 ) (*$ifndef meeus *) , { 4533 29 } ( 6.672, 1.87004905364, 302.16477565500 ), { 4533 30 } ( 7.442, 1.28047007623, 742.99006053260 ), { 4533 31 } ( 7.178, 0.92022189637, 942.06206196900 ), { 4533 32 } ( 5.577, 1.37980792905, 95.97922721780 ), { 4533 33 } ( 6.834, 3.45228722967, 831.85574074960 ), { 4533 34 } ( 4.632, 2.82934545414, 1596.18644228460 ), { 4533 35 } ( 3.969, 1.21290005054, 1169.58825140860 ), { 4533 36 } ( 3.869, 5.99495313698, 213.29909543800 ), { 4533 37 } ( 3.551, 6.10714791535, 405.25754987360 ), { 4533 38 } ( 2.943, 2.32831075458, 1155.36115740700 ), { 4533 39 } ( 2.442, 1.86965213405, 532.87235883230 ), { 4533 40 } ( 2.410, 0.42627205128, 220.41264243880 ), { 4533 41 } ( 2.289, 1.94941487274, 1073.60902419080 ), { 4533 42 } ( 2.274, 0.09211517505, 632.78373931320 ), { 4533 43 } ( 2.189, 1.58907745204, 2118.76386037840 ), { 4533 44 } ( 2.387, 5.97080671477, 1162.47470440780 ), { 4533 45 } ( 2.104, 1.06751462671, 21.34064100240 ), { 4533 46 } ( 2.128, 1.51119399925, 1258.45393162560 ), { 4533 47 } ( 2.491, 0.35125020737, 1272.68102562720 ), { 4533 48 } ( 2.006, 5.94487388360, 110.20632121940 ), { 4533 49 } ( 1.980, 2.54989377864, 88.86568021700 ), { 4533 50 } ( 2.040, 2.16463966964, 433.71173787680 ), { 4533 51 } ( 1.955, 2.70341589777, 721.64941953020 ), { 4533 52 } ( 1.670, 4.46255717328, 853.19638175200 ), { 4533 53 } ( 1.910, 2.25964760758, 1361.54670584420 ), { 4533 54 } ( 1.710, 1.98372066321, 525.75881183150 ), { 4533 55 } ( 1.520, 0.11641358425, 949.17560896980 ), { 4533 56 } ( 2.003, 3.16520599208, 1148.24761040620 ), { 4533 57 } ( 1.710, 2.70850417287, 330.61896365820 ), { 4533 58 } ( 1.629, 0.47376028854, 526.50957135690 ), { 4533 59 } ( 1.229, 3.01987279595, 963.40270297140 ), { 4533 60 } ( 1.671, 0.44352103086, 533.62311835770 ), { 4533 61 } ( 1.207, 1.15774089269, 1574.84580128220 ), { 4533 62 } ( 1.146, 2.54505851138, 846.08283475120 ), { 4533 63 } ( 1.355, 1.17462112647, 1038.04128918680 ), { 4533 64 } ( 1.001, 2.70272799283, 519.39602435610 ), { 4533 65 } ( 1.372, 0.67467128629, 551.03160609700 ), { 4533 66 } ( 0.983, 4.17198081351, 2627.11418447060 ), { 4533 67 } ( 1.084, 1.07011164067, 227.52618943960 ), { 4533 68 } ( 0.892, 2.92543286761, 1368.66025284500 ), { 4533 69 } ( 0.823, 4.86559196955, 611.44309831080 ), { 4533 70 } ( 1.136, 1.78981738432, 1581.95934828300 ), { 4533 71 } ( 0.897, 4.91073630270, 1670.82502850000 ), { 4533 72 } ( 0.908, 3.68804047330, 824.74219374880 ), { 4533 73 } ( 0.789, 3.23380893250, 2125.87740737920 ), { 4533 74 } ( 0.771, 2.39070707004, 2317.83586181480 ), { 4533 75 } ( 0.891, 0.59692950778, 539.98590583310 ), { 4533 76 } ( 0.876, 4.52127091462, 750.10360753340 ), { 4533 77 } ( 0.802, 0.20759322884, 1141.13406340540 ), { 4533 78 } ( 0.850, 0.94145487094, 191.95845443560 ), { 4533 79 } ( 0.762, 2.25149516048, 2538.24850425360 ), { 4533 80 } ( 0.694, 0.67080348659, 440.82528487760 ), { 4533 81 } ( 0.741, 5.79934203525, 1485.98012106520 ), { 4533 82 } ( 0.643, 2.48127580335, 1265.56747862640 ), { 4533 83 } ( 0.575, 6.13756590872, 1279.79457262800 ), { 4533 84 } ( 0.636, 5.51001645505, 2413.81508903260 ), { 4533 85 } ( 0.636, 4.40777238491, 1382.88734684660 ), { 4533 86 } ( 0.555, 2.18233983981, 1062.56332392690 ), { 4533 87 } ( 0.564, 1.92775967119, 2634.22773147140 ), { 4533 88 } ( 0.531, 2.04824376019, 295.05122865420 ), { 4533 89 } ( 0.541, 2.32424368689, 1471.75302706360 ), { 4533 90 } ( 0.697, 2.27179476322, 1699.27921650320 ), { 4533 91 } ( 0.546, 1.95774905730, 1677.93857550080 ), { 4533 92 } ( 0.465, 4.35550844067, 1692.16566950240 ), { 4533 93 } ( 0.508, 2.50298248836, 2207.62954059540 ), { 4533 94 } ( 0.496, 5.77087043616, 1478.86657406440 ), { 4533 95 } ( 0.440, 5.98661963879, 934.94851496820 ), { 4533 96 } ( 0.424, 2.80194129521, 81.75213321620 ), { 4533 97 } ( 0.406, 3.93940190897, 316.39186965660 ), { 4533 98 } ( 0.506, 0.18719982992, 10.29494073850 ) (*$endif *) ); (*@\\\0000002201*) (*@/// vsop87_jup_r4:array[0.. 45,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_jup_r4:array[0.. 14,0..2] of extended = ( (*$else *) vsop87_jup_r4:array[0.. 45,0..2] of extended = ( (*$endif *) { 4534 1 } ( 128.628, 0.08419309557, 536.80451209540 ), { 4534 2 } ( 113.458, 4.24858855779, 529.69096509460 ), { 4534 3 } ( 82.650, 3.29754909408, 522.57741809380 ), { 4534 4 } ( 37.883, 2.73326611144, 515.46387109300 ), { 4534 5 } ( 26.694, 5.69142588558, 7.11354700080 ), { 4534 6 } ( 17.650, 5.40012536918, 1059.38193018920 ), { 4534 7 } ( 12.612, 6.01560416057, 543.91805909620 ), { 4534 8 } ( 9.287, 0.76813946494, 1066.49547719000 ), { 4534 9 } ( 8.107, 5.68228065707, 14.22709400160 ), { 4534 10 } ( 6.271, 5.12286932534, 639.89728631400 ), { 4534 11 } ( 6.978, 1.42751292055, 412.37109687440 ), { 4534 12 } ( 5.377, 3.33501947275, 625.67019231240 ), { 4534 13 } ( 2.911, 3.40334805052, 1052.26838318840 ), { 4534 14 } ( 2.593, 4.16090412984, 728.76296653100 ), { 4534 15 } ( 2.562, 2.89802035072, 426.59819087600 ) (*$ifndef meeus *) , { 4534 16 } ( 2.268, 6.22195938856, 1589.07289528380 ), { 4534 17 } ( 2.114, 3.11758855774, 1045.15483618760 ), { 4534 18 } ( 1.673, 2.81399290364, 206.18554843720 ), { 4534 19 } ( 1.805, 2.60030006919, 199.07200143640 ), { 4534 20 } ( 1.823, 1.89432426038, 419.48464387520 ), { 4534 21 } ( 1.522, 1.33432648232, 1596.18644228460 ), { 4534 22 } ( 1.697, 0.00000000000, 0.00000000000 ), { 4534 23 } ( 1.039, 4.41904942302, 956.28915597060 ), { 4534 24 } ( 1.161, 5.16181311538, 831.85574074960 ), { 4534 25 } ( 0.916, 3.17245716108, 508.35032409220 ), { 4534 26 } ( 0.870, 5.79387813500, 1169.58825140860 ), { 4534 27 } ( 0.916, 1.87129662931, 1148.24761040620 ), { 4534 28 } ( 0.955, 0.66801367802, 1361.54670584420 ), { 4534 29 } ( 0.788, 1.47515450553, 1272.68102562720 ), { 4534 30 } ( 0.966, 5.47457968043, 220.41264243880 ), { 4534 31 } ( 0.788, 2.42252866885, 117.31986822020 ), { 4534 32 } ( 0.712, 0.49655897030, 1073.60902419080 ), { 4534 33 } ( 0.656, 3.53022740783, 302.16477565500 ), { 4534 34 } ( 0.681, 2.84507174340, 191.95845443560 ), { 4534 35 } ( 0.771, 2.19893222018, 942.06206196900 ), { 4534 36 } ( 0.765, 5.31147257700, 551.03160609700 ), { 4534 37 } ( 0.667, 3.72432305249, 88.86568021700 ), { 4534 38 } ( 0.534, 1.83172084748, 647.01083331480 ), { 4534 39 } ( 0.553, 0.85896003802, 330.61896365820 ), { 4534 40 } ( 0.543, 5.26057584439, 21.34064100240 ), { 4534 41 } ( 0.584, 3.82243061802, 618.55664531160 ), { 4534 42 } ( 0.512, 4.44485521707, 110.20632121940 ), { 4534 43 } ( 0.612, 1.59320941864, 3.18139373770 ), { 4534 44 } ( 0.631, 1.83863158533, 10.29494073850 ), { 4534 45 } ( 0.491, 1.52912023181, 405.25754987360 ), { 4534 46 } ( 0.521, 0.24011424451, 433.71173787680 ) (*$endif *) ); (*@\\\*) (*@/// vsop87_jup_r5:array[0.. 8,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_jup_r5:array[0.. 6,0..2] of extended = ( (*$else *) vsop87_jup_r5:array[0.. 8,0..2] of extended = ( (*$endif *) { 4535 1 } ( 11.188, 4.75249399945, 536.80451209540 ), { 4535 2 } ( 4.255, 5.91516229170, 522.57741809380 ), { 4535 3 } ( 2.079, 5.56781555864, 515.46387109300 ), { 4535 4 } ( 1.908, 4.29659647286, 543.91805909620 ), { 4535 5 } ( 1.875, 3.69357495838, 7.11354700080 ), { 4535 6 } ( 1.590, 5.49312796166, 1066.49547719000 ), { 4535 7 } ( 1.612, 4.13222808529, 1059.38193018920 ) (*$ifndef meeus *) , { 4535 8 } ( 1.240, 3.77981722506, 14.22709400160 ), { 4535 9 } ( 1.033, 4.50671820436, 529.69096509460 ) (*$endif *) ); (*@\\\*) begin WITH result do begin a:=0; b:=0; c:=0; case index of 0: if (nr>=low(vsop87_jup_r0)) and (nr<=high(vsop87_jup_r0)) then begin a:=vsop87_jup_r0[nr,0]; b:=vsop87_jup_r0[nr,1]; c:=vsop87_jup_r0[nr,2]; end; 1: if (nr>=low(vsop87_jup_r1)) and (nr<=high(vsop87_jup_r1)) then begin a:=vsop87_jup_r1[nr,0]; b:=vsop87_jup_r1[nr,1]; c:=vsop87_jup_r1[nr,2]; end; 2: if (nr>=low(vsop87_jup_r2)) and (nr<=high(vsop87_jup_r2)) then begin a:=vsop87_jup_r2[nr,0]; b:=vsop87_jup_r2[nr,1]; c:=vsop87_jup_r2[nr,2]; end; 3: if (nr>=low(vsop87_jup_r3)) and (nr<=high(vsop87_jup_r3)) then begin a:=vsop87_jup_r3[nr,0]; b:=vsop87_jup_r3[nr,1]; c:=vsop87_jup_r3[nr,2]; end; 4: if (nr>=low(vsop87_jup_r4)) and (nr<=high(vsop87_jup_r4)) then begin a:=vsop87_jup_r4[nr,0]; b:=vsop87_jup_r4[nr,1]; c:=vsop87_jup_r4[nr,2]; end; 5: if (nr>=low(vsop87_jup_r5)) and (nr<=high(vsop87_jup_r5)) then begin a:=vsop87_jup_r5[nr,0]; b:=vsop87_jup_r5[nr,1]; c:=vsop87_jup_r5[nr,2]; end; end; end; end; (*@\\\0000000801*) (*@/// function TVSOPJupiter.LatitudeFactor(nr,index: integer):TVSOPEntry; *) function TVSOPJupiter.LatitudeFactor(nr,index: integer):TVSOPEntry; const (*@/// vsop87_jup_b0:array[0..248,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_jup_b0:array[0.. 25,0..2] of extended = ( (*$else *) vsop87_jup_b0:array[0..248,0..2] of extended = ( (*$endif *) { 4520 1 } ( 2268615.703, 3.55852606718, 529.69096509460 ), { 4520 2 } ( 109971.634, 3.90809347389, 1059.38193018920 ), { 4520 3 } ( 110090.358, 0.00000000000, 0.00000000000 ), { 4520 4 } ( 8101.427, 3.60509573368, 522.57741809380 ), { 4520 5 } ( 6043.996, 4.25883108794, 1589.07289528380 ), { 4520 6 } ( 6437.782, 0.30627121409, 536.80451209540 ), { 4520 7 } ( 1106.880, 2.98534421928, 1162.47470440780 ), { 4520 8 } ( 941.651, 2.93619072405, 1052.26838318840 ), { 4520 9 } ( 894.088, 1.75447429921, 7.11354700080 ), { 4520 10 } ( 767.280, 2.15473594060, 632.78373931320 ), { 4520 11 } ( 944.328, 1.67522288396, 426.59819087600 ), { 4520 12 } ( 684.220, 3.67808770098, 213.29909543800 ), { 4520 13 } ( 629.223, 0.64343282328, 1066.49547719000 ), { 4520 14 } ( 835.861, 5.17881973234, 103.09277421860 ), { 4520 15 } ( 531.670, 2.70305954352, 110.20632121940 ), { 4520 16 } ( 558.524, 0.01354830508, 846.08283475120 ), { 4520 17 } ( 464.449, 1.17337249185, 949.17560896980 ), { 4520 18 } ( 431.072, 2.60825000494, 419.48464387520 ), { 4520 19 } ( 351.433, 4.61062990714, 2118.76386037840 ), { 4520 20 } ( 123.148, 3.34968181384, 1692.16566950240 ), { 4520 21 } ( 115.038, 5.04892295442, 316.39186965660 ), { 4520 22 } ( 132.160, 4.77816990670, 742.99006053260 ), { 4520 23 } ( 103.402, 2.31878999565, 1478.86657406440 ), { 4520 24 } ( 116.379, 1.38688232033, 323.50541665740 ), { 4520 25 } ( 102.420, 3.15293785436, 1581.95934828300 ), { 4520 26 } ( 103.762, 3.70103838110, 515.46387109300 ) (*$ifndef meeus *) , { 4520 27 } ( 78.650, 3.98318653238, 1265.56747862640 ), { 4520 28 } ( 69.935, 2.56006216424, 956.28915597060 ), { 4520 29 } ( 55.597, 0.37500753017, 1375.77379984580 ), { 4520 30 } ( 51.986, 0.99007119033, 1596.18644228460 ), { 4520 31 } ( 55.194, 0.40176412035, 525.75881183150 ), { 4520 32 } ( 63.456, 4.50073574333, 735.87651353180 ), { 4520 33 } ( 49.691, 0.18649893085, 543.91805909620 ), { 4520 34 } ( 48.831, 3.57260550671, 533.62311835770 ), { 4520 35 } ( 28.353, 1.53532744749, 625.67019231240 ), { 4520 36 } ( 29.209, 5.43145863011, 206.18554843720 ), { 4520 37 } ( 23.255, 5.95197992848, 838.96928775040 ), { 4520 38 } ( 22.841, 6.19262787685, 532.87235883230 ), { 4520 39 } ( 23.202, 4.06473368575, 526.50957135690 ), { 4520 40 } ( 24.436, 6.10947656959, 1169.58825140860 ), { 4520 41 } ( 21.116, 4.96322972735, 2648.45482547300 ), { 4520 42 } ( 17.879, 3.08704395969, 1795.25844372100 ), { 4520 43 } ( 16.234, 4.83515727869, 1368.66025284500 ), { 4520 44 } ( 21.314, 2.69476951059, 1045.15483618760 ), { 4520 45 } ( 15.740, 1.15130330106, 942.06206196900 ), { 4520 46 } ( 17.325, 1.61550009206, 14.22709400160 ), { 4520 47 } ( 13.396, 2.30539585502, 853.19638175200 ), { 4520 48 } ( 11.904, 3.09811974536, 2111.65031337760 ), { 4520 49 } ( 11.734, 2.83006431723, 2008.55753915900 ), { 4520 50 } ( 11.291, 0.98957560201, 433.71173787680 ), { 4520 51 } ( 11.830, 4.76527836803, 309.27832265580 ), { 4520 52 } ( 10.702, 3.70181397065, 2221.85663459700 ), { 4520 53 } ( 10.815, 5.81958878617, 1272.68102562720 ), { 4520 54 } ( 13.505, 3.28126975760, 1155.36115740700 ), { 4520 55 } ( 10.179, 2.58691128827, 117.31986822020 ), { 4520 56 } ( 10.632, 5.23487936086, 95.97922721780 ), { 4520 57 } ( 8.771, 0.40456546655, 220.41264243880 ), { 4520 58 } ( 7.439, 2.94638292086, 412.37109687440 ), { 4520 59 } ( 6.151, 2.69100382247, 380.12776796000 ), { 4520 60 } ( 5.028, 0.72750312028, 1055.44977692610 ), { 4520 61 } ( 4.939, 0.73756716762, 1905.46476494040 ), { 4520 62 } ( 5.421, 4.08612438558, 1685.05212250160 ), { 4520 63 } ( 5.936, 4.32059910537, 1063.31408345230 ), { 4520 64 } ( 4.737, 4.09303016850, 527.24328453980 ), { 4520 65 } ( 4.010, 0.51530008355, 1073.60902419080 ), { 4520 66 } ( 4.709, 1.84067645204, 984.60033162190 ), { 4520 67 } ( 3.974, 1.33608029246, 2125.87740737920 ), { 4520 68 } ( 3.762, 3.58647039394, 529.73914920440 ), { 4520 69 } ( 4.731, 6.16377350841, 532.13864564940 ), { 4520 70 } ( 4.666, 5.88762905802, 639.89728631400 ), { 4520 71 } ( 3.763, 0.38865925413, 529.64278098480 ), { 4520 72 } ( 3.409, 4.05398247269, 1898.35121793960 ), { 4520 73 } ( 3.457, 3.43865563497, 1485.98012106520 ), { 4520 74 } ( 4.229, 2.23767157901, 74.78159856730 ), { 4520 75 } ( 3.091, 0.16470256025, 1699.27921650320 ), { 4520 76 } ( 2.975, 0.72268908074, 530.65417294110 ), { 4520 77 } ( 3.162, 1.25048416420, 330.61896365820 ), { 4520 78 } ( 2.727, 4.37679213321, 149.56319713460 ), { 4520 79 } ( 2.837, 0.05987107395, 1439.50969814920 ), { 4520 80 } ( 2.983, 3.25251207220, 528.72775724810 ), { 4520 81 } ( 2.232, 0.26149880534, 1062.56332392690 ), { 4520 82 } ( 2.464, 1.16913304420, 453.42489381900 ), { 4520 83 } ( 2.596, 3.30510149086, 2324.94940881560 ), { 4520 84 } ( 1.988, 2.85269577619, 1574.84580128220 ), { 4520 85 } ( 2.527, 5.94458202950, 909.81873305460 ), { 4520 86 } ( 2.269, 1.30379329597, 3.93215326310 ), { 4520 87 } ( 1.742, 4.49909767044, 1258.45393162560 ), { 4520 88 } ( 1.714, 4.12945878208, 2001.44399215820 ), { 4520 89 } ( 2.029, 3.97938086639, 1056.20053645150 ), { 4520 90 } ( 1.667, 0.36037092553, 10213.28554621100 ), { 4520 91 } ( 1.579, 6.11640144795, 1802.37199072180 ), { 4520 92 } ( 1.393, 3.69324470827, 2214.74308759620 ), { 4520 93 } ( 1.604, 1.98841031703, 38.13303563780 ), { 4520 94 } ( 1.325, 1.74025919863, 529.16970023280 ), { 4520 95 } ( 1.451, 2.39804501178, 2428.04218303420 ), { 4520 96 } ( 1.594, 2.07556780757, 1021.24889455140 ), { 4520 97 } ( 1.320, 1.33770977126, 618.55664531160 ), { 4520 98 } ( 1.346, 3.27591492540, 2641.34127847220 ), { 4520 99 } ( 1.230, 0.19552728220, 305.34616939270 ), { 4520 100 } ( 1.223, 2.86681556337, 1382.88734684660 ), { 4520 101 } ( 1.324, 2.23549334986, 530.21222995640 ), { 4520 102 } ( 1.056, 3.80579750957, 76.26607127560 ), { 4520 103 } ( 1.050, 4.68011652614, 1788.14489672020 ), { 4520 104 } ( 1.226, 5.34003255221, 3178.14579056760 ), { 4520 105 } ( 1.009, 3.19608028376, 2538.24850425360 ), { 4520 106 } ( 1.266, 3.04704446731, 604.47256366190 ), { 4520 107 } ( 0.954, 3.86932544808, 728.76296653100 ), { 4520 108 } ( 1.124, 1.59560367480, 3.18139373770 ), { 4520 109 } ( 0.978, 0.25223689838, 983.11585891360 ), { 4520 110 } ( 0.948, 0.21552742733, 750.10360753340 ), { 4520 111 } ( 0.946, 3.93927748120, 508.35032409220 ), { 4520 112 } ( 0.920, 1.14672086939, 963.40270297140 ), { 4520 113 } ( 0.817, 5.93809619876, 831.85574074960 ), { 4520 114 } ( 0.770, 2.96062737592, 526.77020378780 ), { 4520 115 } ( 1.017, 5.55711112145, 199.07200143640 ), { 4520 116 } ( 0.761, 1.38163787157, 532.61172640140 ), { 4520 117 } ( 0.726, 3.98337964395, 2317.83586181480 ), { 4520 118 } ( 0.862, 0.87975657414, 490.33408917940 ), { 4520 119 } ( 0.868, 3.44331872364, 569.04784100980 ), { 4520 120 } ( 0.711, 4.11107052823, 2751.54759969160 ), { 4520 121 } ( 0.708, 0.33555577415, 528.94020556920 ), { 4520 122 } ( 0.708, 4.00539820601, 530.44172462000 ), { 4520 123 } ( 0.656, 4.39568451439, 519.39602435610 ), { 4520 124 } ( 0.801, 4.03984430862, 1364.72809958190 ), { 4520 125 } ( 0.679, 1.18645749024, 525.49817940060 ), { 4520 126 } ( 0.645, 5.10510349996, 1361.54670584420 ), { 4520 127 } ( 0.668, 3.15607509055, 533.88375078860 ), { 4520 128 } ( 0.663, 0.73722024843, 5223.69391980220 ), { 4520 129 } ( 0.663, 1.57092786811, 6283.07584999140 ), { 4520 130 } ( 0.543, 0.26376529935, 227.52618943960 ), { 4520 131 } ( 0.525, 6.22318693939, 539.98590583310 ), { 4520 132 } ( 0.513, 4.98337900151, 302.16477565500 ), { 4520 133 } ( 0.544, 2.22227019273, 2744.43405269080 ), { 4520 134 } ( 0.532, 2.62425372687, 99.16062095550 ), { 4520 135 } ( 0.602, 1.56074089013, 454.90936652730 ), { 4520 136 } ( 0.518, 0.26343805959, 551.03160609700 ), { 4520 137 } ( 0.516, 1.09376390349, 934.94851496820 ), { 4520 138 } ( 0.659, 0.62560671589, 1512.80682400820 ), { 4520 139 } ( 0.524, 0.64710955846, 524.06189080210 ), { 4520 140 } ( 0.516, 3.69478866795, 535.32003938710 ), { 4520 141 } ( 0.491, 3.63039940597, 2531.13495725280 ), { 4520 142 } ( 0.570, 0.61976758791, 540.73666535850 ), { 4520 143 } ( 0.496, 2.19398015038, 1514.29129671650 ), { 4520 144 } ( 0.532, 0.20040217534, 525.02509864860 ), { 4520 145 } ( 0.493, 0.39160693598, 224.34479570190 ), { 4520 146 } ( 0.449, 0.62392433691, 529.53090640020 ), { 4520 147 } ( 0.449, 3.71676131146, 529.85102378900 ), { 4520 148 } ( 0.450, 5.02467015031, 1048.33622992530 ), { 4520 149 } ( 0.428, 5.44804660290, 11.04570026390 ), { 4520 150 } ( 0.499, 4.13924061941, 534.35683154060 ), { 4520 151 } ( 0.528, 1.76471074936, 524.27433912320 ), { 4520 152 } ( 0.454, 4.53321742354, 1056.93424963440 ), { 4520 153 } ( 0.520, 2.57406093768, 535.10759106600 ), { 4520 154 } ( 0.398, 1.40345870113, 960.22130923370 ), { 4520 155 } ( 0.457, 4.17708652827, 2104.53676637680 ), { 4520 156 } ( 0.505, 5.36536256321, 1057.89745748090 ), { 4520 157 } ( 0.535, 4.80455380313, 1593.00504854690 ), { 4520 158 } ( 0.415, 0.96548127237, 2435.15573003500 ), { 4520 159 } ( 0.519, 0.54543519483, 1061.82961074400 ), { 4520 160 } ( 0.359, 4.02704454075, 1059.43011429900 ), { 4520 161 } ( 0.356, 2.66818105522, 835.03713448730 ), { 4520 162 } ( 0.443, 5.27513700376, 1.48447270830 ), { 4520 163 } ( 0.358, 5.94423960514, 440.82528487760 ), { 4520 164 } ( 0.471, 6.05791940453, 1471.75302706360 ), { 4520 165 } ( 0.386, 2.15984900214, 9153.90361602180 ), { 4520 166 } ( 0.424, 2.70929670030, 1038.04128918680 ), { 4520 167 } ( 0.359, 0.82922836987, 1059.33374607940 ), { 4520 168 } ( 0.310, 0.88102053266, 529.90341341570 ), { 4520 169 } ( 0.310, 3.45966511571, 529.47851677350 ), { 4520 170 } ( 0.300, 3.70331799503, 2634.22773147140 ), { 4520 171 } ( 0.292, 2.63594456361, 415.55249061210 ), { 4520 172 } ( 0.279, 1.60669121578, 643.82943957710 ), { 4520 173 } ( 0.291, 5.83134071820, 1148.24761040620 ), { 4520 174 } ( 0.370, 5.71572992274, 531.17543780290 ), { 4520 175 } ( 0.268, 5.39275891813, 1891.23767093880 ), { 4520 176 } ( 0.275, 3.34108666036, 518.64526483070 ), { 4520 177 } ( 0.269, 1.06051406954, 1585.14074202070 ), { 4520 178 } ( 0.306, 2.50289017370, 511.53171782990 ), { 4520 179 } ( 0.295, 1.84394223501, 547.85021235930 ), { 4520 180 } ( 0.254, 2.98312992496, 1134.16352875650 ), { 4520 181 } ( 0.289, 1.86070918711, 21.34064100240 ), { 4520 182 } ( 0.265, 4.93075479744, 679.25416222920 ), { 4520 183 } ( 0.250, 0.42860925124, 1969.20066324380 ), { 4520 184 } ( 0.308, 2.67237933272, 2957.73314812880 ), { 4520 185 } ( 0.313, 4.88085697819, 528.20649238630 ), { 4520 186 } ( 0.222, 4.78828764413, 514.71311156760 ), { 4520 187 } ( 0.221, 4.32763468981, 1677.93857550080 ), { 4520 188 } ( 0.217, 3.46278526461, 2950.61960112800 ), { 4520 189 } ( 0.216, 0.52207667980, 2228.97018159780 ), { 4520 190 } ( 0.214, 5.83569926578, 544.66881862160 ), { 4520 191 } ( 0.283, 2.88709716090, 35.42472265210 ), { 4520 192 } ( 0.272, 1.65708415457, 3060.82592234740 ), { 4520 193 } ( 0.234, 1.68821537711, 2655.56837247380 ), { 4520 194 } ( 0.205, 3.36186888290, 2847.52682690940 ), { 4520 195 } ( 0.264, 3.62722625694, 2420.92863603340 ), { 4520 196 } ( 0.191, 4.26821147044, 430.53034413910 ), { 4520 197 } ( 0.179, 3.91470663005, 3340.61242669980 ), { 4520 198 } ( 0.180, 0.04531671003, 387.24131496080 ), { 4520 199 } ( 0.241, 4.03927631611, 494.26624244250 ), { 4520 200 } ( 0.176, 4.26298906325, 672.14061522840 ), { 4520 201 } ( 0.187, 2.72587420586, 299.12639426920 ), { 4520 202 } ( 0.234, 1.34474827450, 173.94221952280 ), { 4520 203 } ( 0.171, 0.85473611718, 1603.29998928540 ), { 4520 204 } ( 0.224, 0.33130232434, 565.11568774670 ), { 4520 205 } ( 0.200, 1.27632489123, 39.35687591520 ), { 4520 206 } ( 0.170, 4.96479470273, 1464.63948006280 ), { 4520 207 } ( 0.211, 1.00937080256, 523.54062594030 ), { 4520 208 } ( 0.210, 3.75793720248, 2854.64037391020 ), { 4520 209 } ( 0.162, 5.87784787295, 3480.31056622260 ), { 4520 210 } ( 0.163, 4.62850343495, 2015.67108615980 ), { 4520 211 } ( 0.191, 3.33159283750, 535.84130424890 ), { 4520 212 } ( 0.151, 1.17096741034, 1060.34513803570 ), { 4520 213 } ( 0.160, 1.81852636004, 312.45971639350 ), { 4520 214 } ( 0.158, 2.59595816107, 529.43033266370 ), { 4520 215 } ( 0.158, 1.74472748730, 529.95159752550 ), { 4520 216 } ( 0.173, 3.62399350412, 230.56457082540 ), { 4520 217 } ( 0.142, 0.70435921398, 522.52923398400 ), { 4520 218 } ( 0.144, 5.35763122430, 107.02492748170 ), { 4520 219 } ( 0.144, 6.13954848857, 1158.54255114470 ), { 4520 220 } ( 0.178, 0.27566275049, 3906.90875709860 ), { 4520 221 } ( 0.126, 5.14832919826, 2207.62954059540 ), { 4520 222 } ( 0.126, 3.41994798109, 2.44768055480 ), { 4520 223 } ( 0.127, 0.39825164051, 70.84944530420 ), { 4520 224 } ( 0.123, 4.77865550523, 2524.02141025200 ), { 4520 225 } ( 0.123, 0.46184813516, 647.01083331480 ), { 4520 226 } ( 0.144, 3.60261852727, 1058.41872234270 ), { 4520 227 } ( 0.158, 3.76231915252, 92.04707395470 ), { 4520 228 } ( 0.119, 4.08266911415, 1585.89150154610 ), { 4520 229 } ( 0.125, 2.35496721797, 3163.91869656600 ), { 4520 230 } ( 0.122, 3.21027426317, 3377.21779200400 ), { 4520 231 } ( 0.121, 3.39770381916, 18.15924726470 ), { 4520 232 } ( 0.131, 1.67926417552, 1289.94650101460 ), { 4520 233 } ( 0.115, 2.35735471566, 1550.93985964600 ), { 4520 234 } ( 0.126, 2.40833814513, 106.27416795630 ), { 4520 235 } ( 0.131, 1.37610474529, 1023.95720753710 ), { 4520 236 } ( 0.121, 1.60252617273, 10.29494073850 ), { 4520 237 } ( 0.121, 0.61420823557, 1592.25428902150 ), { 4520 238 } ( 0.135, 3.60177675518, 124.43341522100 ), { 4520 239 } ( 0.137, 2.41724947062, 3274.12501778540 ), { 4520 240 } ( 0.129, 0.09702914345, 2332.06295581640 ), { 4520 241 } ( 0.093, 4.88949890397, 1098.73880610440 ), { 4520 242 } ( 0.106, 5.18592950792, 2281.23049651060 ), { 4520 243 } ( 0.114, 2.96523316419, 1166.40685767090 ), { 4520 244 } ( 0.092, 1.65166124027, 860.30992875280 ), { 4520 245 } ( 0.102, 3.64093193142, 3171.03224356680 ), { 4520 246 } ( 0.103, 1.63066232967, 1894.41906467650 ), { 4520 247 } ( 0.080, 0.38766601876, 4694.00295470760 ), { 4520 248 } ( 0.074, 3.86865238736, 3067.93946934820 ), { 4520 249 } ( 0.095, 1.66362447044, 1151.42900414390 ) (*$endif *) ); (*@\\\0000002001*) (*@/// vsop87_jup_b1:array[0..140,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_jup_b1:array[0.. 21,0..2] of extended = ( (*$else *) vsop87_jup_b1:array[0..140,0..2] of extended = ( (*$endif *) { 4521 1 } ( 177351.787, 5.70166488486, 529.69096509460 ), { 4521 2 } ( 3230.171, 5.77941619340, 1059.38193018920 ), { 4521 3 } ( 3081.364, 5.47464296527, 522.57741809380 ), { 4521 4 } ( 2211.914, 4.73477480209, 536.80451209540 ), { 4521 5 } ( 1694.232, 3.14159265359, 0.00000000000 ), { 4521 6 } ( 346.445, 4.74595174109, 1052.26838318840 ), { 4521 7 } ( 234.264, 5.18856099929, 1066.49547719000 ), { 4521 8 } ( 196.154, 6.18554286642, 7.11354700080 ), { 4521 9 } ( 150.468, 3.92721226087, 1589.07289528380 ), { 4521 10 } ( 114.128, 3.43897271830, 632.78373931320 ), { 4521 11 } ( 96.667, 2.91426304090, 949.17560896980 ), { 4521 12 } ( 76.599, 2.50522188662, 103.09277421860 ), { 4521 13 } ( 81.671, 5.07666097497, 1162.47470440780 ), { 4521 14 } ( 76.572, 0.61288981445, 419.48464387520 ), { 4521 15 } ( 73.875, 5.49958292155, 515.46387109300 ), { 4521 16 } ( 49.915, 3.94799616572, 735.87651353180 ), { 4521 17 } ( 60.544, 5.44740084359, 213.29909543800 ), { 4521 18 } ( 36.561, 4.69828392839, 543.91805909620 ), { 4521 19 } ( 46.032, 0.53850360901, 110.20632121940 ), { 4521 20 } ( 45.123, 1.89516645239, 846.08283475120 ), { 4521 21 } ( 36.019, 6.10952578764, 316.39186965660 ), { 4521 22 } ( 31.975, 4.92452714629, 1581.95934828300 ) (*$ifndef meeus *) , { 4521 23 } ( 21.015, 5.62957731410, 1596.18644228460 ), { 4521 24 } ( 23.156, 5.84829490183, 323.50541665740 ), { 4521 25 } ( 24.719, 3.94107395247, 2118.76386037840 ), { 4521 26 } ( 17.274, 5.65310656429, 533.62311835770 ), { 4521 27 } ( 16.521, 5.89840100621, 526.50957135690 ), { 4521 28 } ( 16.698, 5.66663034948, 1265.56747862640 ), { 4521 29 } ( 15.815, 4.43314786393, 1045.15483618760 ), { 4521 30 } ( 13.398, 4.30179033605, 532.87235883230 ), { 4521 31 } ( 11.744, 1.80990486955, 956.28915597060 ), { 4521 32 } ( 11.925, 4.30094564154, 525.75881183150 ), { 4521 33 } ( 9.514, 2.02589667166, 206.18554843720 ), { 4521 34 } ( 10.542, 6.15533910933, 14.22709400160 ), { 4521 35 } ( 8.414, 3.92910450340, 1478.86657406440 ), { 4521 36 } ( 8.099, 4.20152809071, 1169.58825140860 ), { 4521 37 } ( 7.712, 2.99160389601, 942.06206196900 ), { 4521 38 } ( 8.825, 1.55897920307, 426.59819087600 ), { 4521 39 } ( 8.884, 4.87430124264, 1155.36115740700 ), { 4521 40 } ( 7.793, 3.84684930196, 625.67019231240 ), { 4521 41 } ( 5.646, 3.40915964493, 639.89728631400 ), { 4521 42 } ( 4.615, 0.83374662294, 117.31986822020 ), { 4521 43 } ( 4.020, 5.50502127885, 433.71173787680 ), { 4521 44 } ( 3.704, 0.90226777963, 95.97922721780 ), { 4521 45 } ( 3.859, 0.69640284662, 853.19638175200 ), { 4521 46 } ( 3.091, 5.09115860882, 1073.60902419080 ), { 4521 47 } ( 3.360, 5.10133284081, 1692.16566950240 ), { 4521 48 } ( 2.892, 4.90418916660, 220.41264243880 ), { 4521 49 } ( 2.772, 5.09066125724, 2111.65031337760 ), { 4521 50 } ( 2.425, 3.74438653232, 742.99006053260 ), { 4521 51 } ( 2.558, 5.46955948791, 1795.25844372100 ), { 4521 52 } ( 2.466, 4.22278355430, 2648.45482547300 ), { 4521 53 } ( 1.968, 0.57192251841, 309.27832265580 ), { 4521 54 } ( 1.794, 4.60765219417, 1272.68102562720 ), { 4521 55 } ( 1.822, 1.98842964323, 1375.77379984580 ), { 4521 56 } ( 1.703, 6.12660562937, 2125.87740737920 ), { 4521 57 } ( 2.011, 5.00936865256, 412.37109687440 ), { 4521 58 } ( 1.645, 0.08830372958, 1063.31408345230 ), { 4521 59 } ( 1.875, 5.81006158403, 330.61896365820 ), { 4521 60 } ( 1.741, 4.58650290431, 1574.84580128220 ), { 4521 61 } ( 1.529, 5.81660291389, 1258.45393162560 ), { 4521 62 } ( 1.916, 0.85150399517, 1368.66025284500 ), { 4521 63 } ( 1.614, 4.36839107221, 728.76296653100 ), { 4521 64 } ( 1.510, 2.79374165455, 1485.98012106520 ), { 4521 65 } ( 1.333, 4.84260898693, 1062.56332392690 ), { 4521 66 } ( 1.359, 5.16511980864, 838.96928775040 ), { 4521 67 } ( 1.165, 5.66275740881, 508.35032409220 ), { 4521 68 } ( 1.092, 4.68797557406, 1699.27921650320 ), { 4521 69 } ( 1.438, 5.78105679279, 1056.20053645150 ), { 4521 70 } ( 1.083, 3.99886917926, 1471.75302706360 ), { 4521 71 } ( 1.002, 4.79949608524, 1055.44977692610 ), { 4521 72 } ( 0.749, 6.14400862030, 519.39602435610 ), { 4521 73 } ( 0.657, 5.63765568876, 1898.35121793960 ), { 4521 74 } ( 0.702, 5.04126574492, 1685.05212250160 ), { 4521 75 } ( 0.607, 3.15707515246, 618.55664531160 ), { 4521 76 } ( 0.587, 1.37658820775, 199.07200143640 ), { 4521 77 } ( 0.552, 4.80657729450, 551.03160609700 ), { 4521 78 } ( 0.494, 4.43417307482, 539.98590583310 ), { 4521 79 } ( 0.517, 0.05161181997, 3.18139373770 ), { 4521 80 } ( 0.469, 3.81715950042, 2008.55753915900 ), { 4521 81 } ( 0.415, 1.34693184108, 1382.88734684660 ), { 4521 82 } ( 0.382, 4.86764073919, 227.52618943960 ), { 4521 83 } ( 0.473, 1.72405831407, 532.13864564940 ), { 4521 84 } ( 0.458, 4.44604993015, 1038.04128918680 ), { 4521 85 } ( 0.376, 2.23190744786, 529.64278098480 ), { 4521 86 } ( 0.451, 3.75869883836, 984.60033162190 ), { 4521 87 } ( 0.376, 5.42971857629, 529.73914920440 ), { 4521 88 } ( 0.389, 1.92698506631, 525.02509864860 ), { 4521 89 } ( 0.364, 3.35456685746, 2221.85663459700 ), { 4521 90 } ( 0.476, 5.93625415892, 527.24328453980 ), { 4521 91 } ( 0.383, 6.12255867339, 149.56319713460 ), { 4521 92 } ( 0.301, 4.09378934049, 440.82528487760 ), { 4521 93 } ( 0.310, 5.58150418981, 2428.04218303420 ), { 4521 94 } ( 0.282, 4.85996662231, 1788.14489672020 ), { 4521 95 } ( 0.298, 5.09589374634, 528.72775724810 ), { 4521 96 } ( 0.340, 4.56537070220, 750.10360753340 ), { 4521 97 } ( 0.272, 2.35346960340, 534.35683154060 ), { 4521 98 } ( 0.360, 3.91050161665, 74.78159856730 ), { 4521 99 } ( 0.299, 1.43093538841, 909.81873305460 ), { 4521 100 } ( 0.297, 2.56584512211, 530.65417294110 ), { 4521 101 } ( 0.235, 4.81644489422, 535.10759106600 ), { 4521 102 } ( 0.306, 0.68420442848, 380.12776796000 ), { 4521 103 } ( 0.236, 4.63162956792, 526.77020378780 ), { 4521 104 } ( 0.270, 0.18549916939, 21.34064100240 ), { 4521 105 } ( 0.288, 4.26655874393, 1802.37199072180 ), { 4521 106 } ( 0.196, 5.35950443033, 2214.74308759620 ), { 4521 107 } ( 0.190, 4.54615193260, 2104.53676637680 ), { 4521 108 } ( 0.193, 4.35426216497, 511.53171782990 ), { 4521 109 } ( 0.178, 4.51895208036, 3178.14579056760 ), { 4521 110 } ( 0.194, 0.57050756837, 1361.54670584420 ), { 4521 111 } ( 0.200, 1.48040474749, 302.16477565500 ), { 4521 112 } ( 0.168, 5.40141749419, 524.27433912320 ), { 4521 113 } ( 0.152, 0.68077486546, 1905.46476494040 ), { 4521 114 } ( 0.149, 1.06678990744, 831.85574074960 ), { 4521 115 } ( 0.182, 3.62401009613, 38.13303563780 ), { 4521 116 } ( 0.176, 5.64331384323, 963.40270297140 ), { 4521 117 } ( 0.184, 4.48850356629, 604.47256366190 ), { 4521 118 } ( 0.133, 5.45026366125, 2641.34127847220 ), { 4521 119 } ( 0.143, 2.21577268292, 1439.50969814920 ), { 4521 120 } ( 0.130, 4.88155705493, 2531.13495725280 ), { 4521 121 } ( 0.129, 6.15206333598, 547.85021235930 ), { 4521 122 } ( 0.133, 5.43193972385, 1603.29998928540 ), { 4521 123 } ( 0.133, 3.49297492409, 529.16970023280 ), { 4521 124 } ( 0.132, 3.98820790955, 530.21222995640 ), { 4521 125 } ( 0.118, 5.38352943814, 1891.23767093880 ), { 4521 126 } ( 0.133, 5.65694269884, 76.26607127560 ), { 4521 127 } ( 0.145, 2.94976686191, 454.90936652730 ), { 4521 128 } ( 0.115, 3.29206553804, 3.93215326310 ), { 4521 129 } ( 0.102, 4.48856749557, 2001.44399215820 ), { 4521 130 } ( 0.106, 6.08434275898, 10.29494073850 ), { 4521 131 } ( 0.093, 5.84737771840, 2324.94940881560 ), { 4521 132 } ( 0.101, 0.15815934254, 2655.56837247380 ), { 4521 133 } ( 0.115, 3.59221021604, 2015.67108615980 ), { 4521 134 } ( 0.103, 4.70399583323, 305.34616939270 ), { 4521 135 } ( 0.084, 0.44180206332, 1593.00504854690 ), { 4521 136 } ( 0.092, 2.44863388631, 490.33408917940 ), { 4521 137 } ( 0.087, 6.23817512863, 6283.07584999140 ), { 4521 138 } ( 0.095, 3.30154605532, 2317.83586181480 ), { 4521 139 } ( 0.072, 1.90578907085, 528.94020556920 ), { 4521 140 } ( 0.072, 5.57619428876, 530.44172462000 ), { 4521 141 } ( 0.078, 5.97323507836, 1585.89150154610 ) (*$endif *) ); (*@\\\*) (*@/// vsop87_jup_b2:array[0.. 80,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_jup_b2:array[0.. 13,0..2] of extended = ( (*$else *) vsop87_jup_b2:array[0.. 80,0..2] of extended = ( (*$endif *) { 4522 1 } ( 8094.051, 1.46322843658, 529.69096509460 ), { 4522 2 } ( 742.415, 0.95691639003, 522.57741809380 ), { 4522 3 } ( 813.244, 3.14159265359, 0.00000000000 ), { 4522 4 } ( 398.951, 2.89888666447, 536.80451209540 ), { 4522 5 } ( 342.226, 1.44683789727, 1059.38193018920 ), { 4522 6 } ( 73.948, 0.40724675866, 1052.26838318840 ), { 4522 7 } ( 46.151, 3.48036895772, 1066.49547719000 ), { 4522 8 } ( 29.314, 0.99088831805, 515.46387109300 ), { 4522 9 } ( 29.717, 1.92504171329, 1589.07289528380 ), { 4522 10 } ( 22.753, 4.27124052435, 7.11354700080 ), { 4522 11 } ( 13.916, 2.92242387338, 543.91805909620 ), { 4522 12 } ( 12.067, 5.22168932482, 632.78373931320 ), { 4522 13 } ( 10.703, 4.88024222475, 949.17560896980 ), { 4522 14 } ( 6.078, 6.21089108431, 1045.15483618760 ) (*$ifndef meeus *) , { 4522 15 } ( 5.935, 0.52977760072, 1581.95934828300 ), { 4522 16 } ( 5.037, 1.43444929374, 526.50957135690 ), { 4522 17 } ( 4.564, 0.91811732585, 1162.47470440780 ), { 4522 18 } ( 4.547, 4.01953745202, 1596.18644228460 ), { 4522 19 } ( 5.098, 6.03169795231, 735.87651353180 ), { 4522 20 } ( 3.593, 4.54080164408, 110.20632121940 ), { 4522 21 } ( 3.443, 1.38618954572, 533.62311835770 ), { 4522 22 } ( 3.277, 4.39650286553, 14.22709400160 ), { 4522 23 } ( 3.407, 0.42275631534, 419.48464387520 ), { 4522 24 } ( 2.904, 2.06041641723, 316.39186965660 ), { 4522 25 } ( 2.541, 3.98323842017, 323.50541665740 ), { 4522 26 } ( 3.113, 2.48079280193, 2118.76386037840 ), { 4522 27 } ( 3.061, 2.39880866911, 532.87235883230 ), { 4522 28 } ( 2.155, 4.77990637140, 942.06206196900 ), { 4522 29 } ( 2.143, 3.88727338786, 426.59819087600 ), { 4522 30 } ( 2.252, 0.37196434120, 1155.36115740700 ), { 4522 31 } ( 2.019, 3.89985000464, 846.08283475120 ), { 4522 32 } ( 1.857, 1.19658907851, 103.09277421860 ), { 4522 33 } ( 1.683, 1.42264195434, 1265.56747862640 ), { 4522 34 } ( 2.313, 0.87671613055, 213.29909543800 ), { 4522 35 } ( 1.443, 2.38565505909, 1169.58825140860 ), { 4522 36 } ( 1.823, 5.80106463776, 625.67019231240 ), { 4522 37 } ( 1.728, 2.24114678267, 525.75881183150 ), { 4522 38 } ( 1.198, 0.03252059731, 956.28915597060 ), { 4522 39 } ( 1.138, 3.46420904745, 1073.60902419080 ), { 4522 40 } ( 1.086, 5.35279146700, 117.31986822020 ), { 4522 41 } ( 0.840, 2.89946334223, 95.97922721780 ), { 4522 42 } ( 0.746, 5.53017890231, 1478.86657406440 ), { 4522 43 } ( 0.944, 4.05587053500, 206.18554843720 ), { 4522 44 } ( 0.758, 3.74770617289, 433.71173787680 ), { 4522 45 } ( 0.673, 1.26396626349, 508.35032409220 ), { 4522 46 } ( 0.889, 6.07878453176, 728.76296653100 ), { 4522 47 } ( 0.600, 1.82954494089, 639.89728631400 ), { 4522 48 } ( 0.589, 1.23625943417, 1258.45393162560 ), { 4522 49 } ( 0.619, 0.67923057477, 838.96928775040 ), { 4522 50 } ( 0.566, 5.36336098734, 742.99006053260 ), { 4522 51 } ( 0.648, 5.32990375008, 853.19638175200 ), { 4522 52 } ( 0.553, 3.15511946637, 220.41264243880 ), { 4522 53 } ( 0.432, 1.03719283016, 1692.16566950240 ), { 4522 54 } ( 0.435, 1.65056479007, 519.39602435610 ), { 4522 55 } ( 0.430, 1.41830384501, 412.37109687440 ), { 4522 56 } ( 0.431, 2.20986254651, 1368.66025284500 ), { 4522 57 } ( 0.415, 4.35372561905, 330.61896365820 ), { 4522 58 } ( 0.438, 0.16552277290, 1574.84580128220 ), { 4522 59 } ( 0.312, 4.50639455819, 2125.87740737920 ), { 4522 60 } ( 0.280, 3.01441283033, 551.03160609700 ), { 4522 61 } ( 0.309, 0.67399908949, 2111.65031337760 ), { 4522 62 } ( 0.301, 3.06868080871, 1062.56332392690 ), { 4522 63 } ( 0.236, 1.94696842200, 1485.98012106520 ), { 4522 64 } ( 0.235, 3.41850395941, 199.07200143640 ), { 4522 65 } ( 0.246, 2.61803442505, 309.27832265580 ), { 4522 66 } ( 0.238, 2.56643737684, 539.98590583310 ), { 4522 67 } ( 0.248, 2.96997778167, 2648.45482547300 ), { 4522 68 } ( 0.209, 5.82481690851, 1471.75302706360 ), { 4522 69 } ( 0.205, 1.20202002469, 1056.20053645150 ), { 4522 70 } ( 0.188, 0.97113663101, 1685.05212250160 ), { 4522 71 } ( 0.137, 2.91203499563, 1699.27921650320 ), { 4522 72 } ( 0.131, 1.79274504072, 1063.31408345230 ), { 4522 73 } ( 0.161, 1.05926568614, 1795.25844372100 ), { 4522 74 } ( 0.112, 2.62660288825, 440.82528487760 ), { 4522 75 } ( 0.110, 3.56263668146, 227.52618943960 ), { 4522 76 } ( 0.114, 6.13907482464, 1038.04128918680 ), { 4522 77 } ( 0.103, 4.64287101040, 3.18139373770 ), { 4522 78 } ( 0.123, 4.81268110532, 21.34064100240 ), { 4522 79 } ( 0.102, 4.27603827970, 1375.77379984580 ), { 4522 80 } ( 0.089, 1.22926014128, 1898.35121793960 ), { 4522 81 } ( 0.080, 0.62129648755, 831.85574074960 ) (*$endif *) ); (*@\\\0000001401*) (*@/// vsop87_jup_b3:array[0.. 41,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_jup_b3:array[0.. 8,0..2] of extended = ( (*$else *) vsop87_jup_b3:array[0.. 41,0..2] of extended = ( (*$endif *) { 4523 1 } ( 251.624, 3.38087923084, 529.69096509460 ), { 4523 2 } ( 121.738, 2.73311837200, 522.57741809380 ), { 4523 3 } ( 48.694, 1.03689996685, 536.80451209540 ), { 4523 4 } ( 10.988, 2.31463561347, 1052.26838318840 ), { 4523 5 } ( 8.067, 2.76729757621, 515.46387109300 ), { 4523 6 } ( 6.205, 1.78115827370, 1066.49547719000 ), { 4523 7 } ( 7.287, 4.25268318975, 1059.38193018920 ), { 4523 8 } ( 3.627, 1.13028917221, 543.91805909620 ), { 4523 9 } ( 2.798, 3.14159265359, 0.00000000000 ) (*$ifndef meeus *) , { 4523 10 } ( 1.898, 2.28934054087, 7.11354700080 ), { 4523 11 } ( 1.643, 1.77507208483, 1045.15483618760 ), { 4523 12 } ( 0.945, 0.45261136388, 632.78373931320 ), { 4523 13 } ( 0.758, 0.30577920142, 949.17560896980 ), { 4523 14 } ( 0.731, 2.63748223583, 14.22709400160 ), { 4523 15 } ( 0.876, 0.32927768725, 1589.07289528380 ), { 4523 16 } ( 0.678, 2.36909615348, 1581.95934828300 ), { 4523 17 } ( 0.623, 2.48056213600, 1596.18644228460 ), { 4523 18 } ( 0.736, 1.52532370632, 735.87651353180 ), { 4523 19 } ( 0.499, 3.67985494258, 419.48464387520 ), { 4523 20 } ( 0.454, 0.26977404624, 942.06206196900 ), { 4523 21 } ( 0.453, 3.18232334886, 526.50957135690 ), { 4523 22 } ( 0.409, 2.88147337106, 110.20632121940 ), { 4523 23 } ( 0.347, 5.76244285870, 103.09277421860 ), { 4523 24 } ( 0.310, 2.98017326384, 508.35032409220 ), { 4523 25 } ( 0.321, 4.40642025933, 532.87235883230 ), { 4523 26 } ( 0.300, 1.66936571536, 625.67019231240 ), { 4523 27 } ( 0.295, 1.75924202728, 1073.60902419080 ), { 4523 28 } ( 0.282, 3.11087801399, 533.62311835770 ), { 4523 29 } ( 0.263, 0.55255030187, 426.59819087600 ), { 4523 30 } ( 0.208, 2.17540496886, 1155.36115740700 ), { 4523 31 } ( 0.183, 4.34670868038, 525.75881183150 ), { 4523 32 } ( 0.180, 6.07777744541, 639.89728631400 ), { 4523 33 } ( 0.159, 2.60843864402, 1162.47470440780 ), { 4523 34 } ( 0.117, 4.70141431381, 95.97922721780 ), { 4523 35 } ( 0.107, 5.48942805114, 433.71173787680 ), { 4523 36 } ( 0.105, 3.75192101775, 316.39186965660 ), { 4523 37 } ( 0.130, 1.37897716939, 323.50541665740 ), { 4523 38 } ( 0.094, 3.05797832024, 1265.56747862640 ), { 4523 39 } ( 0.114, 3.75170981478, 117.31986822020 ), { 4523 40 } ( 0.095, 0.54905691533, 1169.58825140860 ), { 4523 41 } ( 0.088, 3.26874502411, 213.29909543800 ), { 4523 42 } ( 0.098, 2.00704668688, 1574.84580128220 ) (*$endif *) ); (*@\\\0000000F01*) (*@/// vsop87_jup_b4:array[0.. 5,0..2] of extended = (..); *) (*$ifdef meeus *) vsop87_jup_b4:array[0.. 5,0..2] of extended = ( (*$else *) vsop87_jup_b4:array[0.. 11,0..2] of extended = ( (*$endif *) { 4524 1 } ( 15.050, 4.52956999637, 522.57741809380 ), { 4524 2 } ( 5.370, 4.47427159142, 529.69096509460 ), { 4524 3 } ( 4.456, 5.43908581047, 536.80451209540 ), { 4524 4 } ( 3.422, 0.00000000000, 0.00000000000 ), { 4524 5 } ( 1.833, 4.51807036227, 515.46387109300 ), { 4524 6 } ( 1.322, 4.20117611581, 1052.26838318840 ) (*$ifndef meeus *) , { 4524 7 } ( 0.755, 5.59451554966, 543.91805909620 ), { 4524 8 } ( 0.512, 0.05803177475, 1066.49547719000 ), { 4524 9 } ( 0.282, 3.66807771223, 1059.38193018920 ), { 4524 10 } ( 0.147, 3.56490986181, 1045.15483618760 ), { 4524 11 } ( 0.142, 5.69936472988, 7.11354700080 ), { 4524 12 } ( 0.112, 1.16718383135, 14.22709400160 ) (*$endif *) ); (*@\\\0000000C01*) (*@/// vsop87_jup_b5:array[0.. 0,0..2] of extended = (..); *) (*$ifdef meeus *) vsop87_jup_b5:array[0.. 0,0..2] of extended = ( (*$else *) vsop87_jup_b5:array[0.. 4,0..2] of extended = ( (*$endif *) { 4525 1 } ( 1.445, 0.09198554072, 522.57741809380 ) (*$ifndef meeus *) , { 4525 2 } ( 0.368, 0.00874408003, 515.46387109300 ), { 4525 3 } ( 0.304, 3.27902945138, 536.80451209540 ), { 4525 4 } ( 0.129, 0.33959775247, 529.69096509460 ), { 4525 5 } ( 0.095, 1.29305954542, 543.91805909620 ) (*$endif *) ); (*@\\\*) begin WITH result do begin a:=0; b:=0; c:=0; case index of 0: if (nr>=low(vsop87_jup_b0)) and (nr<=high(vsop87_jup_b0)) then begin a:=vsop87_jup_b0[nr,0]; b:=vsop87_jup_b0[nr,1]; c:=vsop87_jup_b0[nr,2]; end; 1: if (nr>=low(vsop87_jup_b1)) and (nr<=high(vsop87_jup_b1)) then begin a:=vsop87_jup_b1[nr,0]; b:=vsop87_jup_b1[nr,1]; c:=vsop87_jup_b1[nr,2]; end; 2: if (nr>=low(vsop87_jup_b2)) and (nr<=high(vsop87_jup_b2)) then begin a:=vsop87_jup_b2[nr,0]; b:=vsop87_jup_b2[nr,1]; c:=vsop87_jup_b2[nr,2]; end; 3: if (nr>=low(vsop87_jup_b3)) and (nr<=high(vsop87_jup_b3)) then begin a:=vsop87_jup_b3[nr,0]; b:=vsop87_jup_b3[nr,1]; c:=vsop87_jup_b3[nr,2]; end; 4: if (nr>=low(vsop87_jup_b4)) and (nr<=high(vsop87_jup_b4)) then begin a:=vsop87_jup_b4[nr,0]; b:=vsop87_jup_b4[nr,1]; c:=vsop87_jup_b4[nr,2]; end; 5: if (nr>=low(vsop87_jup_b5)) and (nr<=high(vsop87_jup_b5)) then begin a:=vsop87_jup_b5[nr,0]; b:=vsop87_jup_b5[nr,1]; c:=vsop87_jup_b5[nr,2]; end; end; end; end; (*@\\\0000000301*) (*@/// function TVSOPJupiter.LongitudeFactor(nr,index: integer):TVSOPEntry; *) function TVSOPJupiter.LongitudeFactor(nr,index: integer):TVSOPEntry; const (*@/// vsop87_jup_l0:array[0..759,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_jup_l0:array[0.. 63,0..2] of extended = ( (*$else *) vsop87_jup_l0:array[0..759,0..2] of extended = ( (*$endif *) { 4510 1 } ( 59954691.495, 0.00000000000, 0.00000000000 ), { 4510 2 } ( 9695898.711, 5.06191793105, 529.69096509460 ), { 4510 3 } ( 573610.145, 1.44406205976, 7.11354700080 ), { 4510 4 } ( 306389.180, 5.41734729976, 1059.38193018920 ), { 4510 5 } ( 97178.280, 4.14264708819, 632.78373931320 ), { 4510 6 } ( 72903.096, 3.64042909255, 522.57741809380 ), { 4510 7 } ( 64263.986, 3.41145185203, 103.09277421860 ), { 4510 8 } ( 39806.051, 2.29376744855, 419.48464387520 ), { 4510 9 } ( 38857.780, 1.27231724860, 316.39186965660 ), { 4510 10 } ( 27964.622, 1.78454589485, 536.80451209540 ), { 4510 11 } ( 13589.738, 5.77481031590, 1589.07289528380 ), { 4510 12 } ( 8246.362, 3.58227961655, 206.18554843720 ), { 4510 13 } ( 8768.686, 3.63000324417, 949.17560896980 ), { 4510 14 } ( 7368.057, 5.08101125612, 735.87651353180 ), { 4510 15 } ( 6263.171, 0.02497643742, 213.29909543800 ), { 4510 16 } ( 6114.050, 4.51319531666, 1162.47470440780 ), { 4510 17 } ( 4905.419, 1.32084631684, 110.20632121940 ), { 4510 18 } ( 5305.283, 1.30671236848, 14.22709400160 ), { 4510 19 } ( 5305.457, 4.18625053495, 1052.26838318840 ), { 4510 20 } ( 4647.249, 4.69958109497, 3.93215326310 ), { 4510 21 } ( 3045.009, 4.31675960318, 426.59819087600 ), { 4510 22 } ( 2610.001, 1.56667594850, 846.08283475120 ), { 4510 23 } ( 2028.191, 1.06376547379, 3.18139373770 ), { 4510 24 } ( 1764.768, 2.14148077766, 1066.49547719000 ), { 4510 25 } ( 1722.983, 3.88036008872, 1265.56747862640 ), { 4510 26 } ( 1920.959, 0.97168928755, 639.89728631400 ), { 4510 27 } ( 1633.217, 3.58201089758, 515.46387109300 ), { 4510 28 } ( 1431.997, 4.29683690269, 625.67019231240 ), { 4510 29 } ( 973.278, 4.09764957065, 95.97922721780 ), { 4510 30 } ( 884.439, 2.43701426123, 412.37109687440 ), { 4510 31 } ( 732.875, 6.08534113239, 838.96928775040 ), { 4510 32 } ( 731.072, 3.80591233956, 1581.95934828300 ), { 4510 33 } ( 691.928, 6.13368222939, 2118.76386037840 ), { 4510 34 } ( 709.190, 1.29272573658, 742.99006053260 ), { 4510 35 } ( 614.464, 4.10853496756, 1478.86657406440 ), { 4510 36 } ( 495.224, 3.75567461379, 323.50541665740 ), { 4510 37 } ( 581.902, 4.53967717552, 309.27832265580 ), { 4510 38 } ( 375.657, 4.70299124833, 1368.66025284500 ), { 4510 39 } ( 389.864, 4.89716105852, 1692.16566950240 ), { 4510 40 } ( 341.006, 5.71452525783, 533.62311835770 ), { 4510 41 } ( 330.458, 4.74049819491, 0.04818410980 ), { 4510 42 } ( 440.854, 2.95818460943, 454.90936652730 ), { 4510 43 } ( 417.266, 1.03554430161, 2.44768055480 ), { 4510 44 } ( 244.170, 5.22020878900, 728.76296653100 ), { 4510 45 } ( 261.540, 1.87652461032, 0.96320784650 ), { 4510 46 } ( 256.568, 3.72410724159, 199.07200143640 ), { 4510 47 } ( 261.009, 0.82047246448, 380.12776796000 ), { 4510 48 } ( 220.382, 1.65115015995, 543.91805909620 ), { 4510 49 } ( 201.996, 1.80684574186, 1375.77379984580 ), { 4510 50 } ( 207.327, 1.85461666594, 525.75881183150 ), { 4510 51 } ( 197.046, 5.29252149016, 1155.36115740700 ), { 4510 52 } ( 235.141, 1.22693908124, 909.81873305460 ), { 4510 53 } ( 174.809, 5.90973505276, 956.28915597060 ), { 4510 54 } ( 149.368, 4.37745104275, 1685.05212250160 ), { 4510 55 } ( 175.184, 3.22634903433, 1898.35121793960 ), { 4510 56 } ( 175.191, 3.72966554761, 942.06206196900 ), { 4510 57 } ( 157.909, 4.36483921766, 1795.25844372100 ), { 4510 58 } ( 137.871, 1.31797920785, 1169.58825140860 ), { 4510 59 } ( 117.495, 2.50022140890, 1596.18644228460 ), { 4510 60 } ( 150.502, 3.90625022622, 74.78159856730 ), { 4510 61 } ( 116.757, 3.38920921041, 0.52126486180 ), { 4510 62 } ( 105.895, 4.55439798236, 526.50957135690 ), { 4510 63 } ( 130.531, 4.16867945489, 1045.15483618760 ), { 4510 64 } ( 141.445, 3.13568357861, 491.55792945680 ) (*$ifndef meeus *) , { 4510 65 } ( 99.511, 1.42117395747, 532.87235883230 ), { 4510 66 } ( 96.137, 1.18156870005, 117.31986822020 ), { 4510 67 } ( 91.758, 0.85756633461, 1272.68102562720 ), { 4510 68 } ( 87.695, 1.21738140813, 453.42489381900 ), { 4510 69 } ( 68.507, 2.35242959478, 2.92076130680 ), { 4510 70 } ( 66.098, 5.34386149468, 1471.75302706360 ), { 4510 71 } ( 77.401, 4.42676337124, 39.35687591520 ), { 4510 72 } ( 72.006, 4.23834923691, 2111.65031337760 ), { 4510 73 } ( 63.406, 4.97665525033, 0.75075952540 ), { 4510 74 } ( 59.427, 4.11130498612, 2001.44399215820 ), { 4510 75 } ( 62.481, 0.51211384012, 220.41264243880 ), { 4510 76 } ( 66.532, 2.98864358135, 2214.74308759620 ), { 4510 77 } ( 60.194, 4.12628179571, 4.19278569400 ), { 4510 78 } ( 56.012, 1.15493222602, 21.34064100240 ), { 4510 79 } ( 52.854, 0.91207215543, 10.29494073850 ), { 4510 80 } ( 70.297, 5.14180555282, 835.03713448730 ), { 4510 81 } ( 51.916, 4.10048180020, 1258.45393162560 ), { 4510 82 } ( 46.442, 4.66531163524, 5.62907429250 ), { 4510 83 } ( 58.190, 5.86646380344, 5753.38488489680 ), { 4510 84 } ( 40.103, 4.68801114087, 0.16005869440 ), { 4510 85 } ( 46.654, 4.79394835282, 305.34616939270 ), { 4510 86 } ( 39.298, 4.25448423697, 853.19638175200 ), { 4510 87 } ( 46.042, 5.10983515150, 4.66586644600 ), { 4510 88 } ( 54.459, 1.57072704127, 983.11585891360 ), { 4510 89 } ( 38.920, 6.07592905580, 518.64526483070 ), { 4510 90 } ( 38.450, 2.43836870888, 433.71173787680 ), { 4510 91 } ( 46.800, 3.54640538283, 5.41662597140 ), { 4510 92 } ( 41.830, 4.67982493646, 302.16477565500 ), { 4510 93 } ( 35.920, 2.45088036239, 430.53034413910 ), { 4510 94 } ( 37.888, 0.21127448431, 2648.45482547300 ), { 4510 95 } ( 39.190, 1.71835571629, 11.04570026390 ), { 4510 96 } ( 37.567, 6.19481310233, 831.85574074960 ), { 4510 97 } ( 35.828, 4.61459907698, 2008.55753915900 ), { 4510 98 } ( 43.402, 0.14992289081, 528.20649238630 ), { 4510 99 } ( 31.598, 5.14073450755, 1788.14489672020 ), { 4510 100 } ( 29.849, 5.34441117167, 2221.85663459700 ), { 4510 101 } ( 32.811, 5.28907118836, 88.86568021700 ), { 4510 102 } ( 27.686, 1.85227036207, 0.21244832110 ), { 4510 103 } ( 25.820, 3.85920882494, 2317.83586181480 ), { 4510 104 } ( 24.705, 2.63495214991, 114.13847448250 ), { 4510 105 } ( 33.844, 1.00563073268, 9683.59458111640 ), { 4510 106 } ( 24.266, 3.82355417268, 1574.84580128220 ), { 4510 107 } ( 27.111, 2.80845435102, 18.15924726470 ), { 4510 108 } ( 26.837, 1.77586123775, 532.13864564940 ), { 4510 109 } ( 26.064, 2.74361318804, 2531.13495725280 ), { 4510 110 } ( 30.765, 0.42330537728, 1.48447270830 ), { 4510 111 } ( 30.476, 3.66677894407, 508.35032409220 ), { 4510 112 } ( 23.282, 3.24372142416, 984.60033162190 ), { 4510 113 } ( 19.445, 0.52370214471, 14.97785352700 ), { 4510 114 } ( 19.332, 4.86314494382, 1361.54670584420 ), { 4510 115 } ( 22.910, 3.84914895064, 2428.04218303420 ), { 4510 116 } ( 21.617, 6.01696940024, 1063.31408345230 ), { 4510 117 } ( 20.155, 5.59582008789, 527.24328453980 ), { 4510 118 } ( 23.732, 2.52766031921, 494.26624244250 ), { 4510 119 } ( 20.189, 1.01560227681, 628.85158605010 ), { 4510 120 } ( 15.994, 5.09003530653, 529.73914920440 ), { 4510 121 } ( 16.134, 5.27095037302, 142.44965013380 ), { 4510 122 } ( 20.697, 4.03443281612, 355.74874557180 ), { 4510 123 } ( 21.479, 1.28668134295, 35.42472265210 ), { 4510 124 } ( 14.964, 4.86039684390, 2104.53676637680 ), { 4510 125 } ( 17.242, 1.59187913206, 1439.50969814920 ), { 4510 126 } ( 15.994, 1.89222417794, 529.64278098480 ), { 4510 127 } ( 17.958, 4.30178016003, 6.15033915430 ), { 4510 128 } ( 13.279, 2.18943981644, 1055.44977692610 ), { 4510 129 } ( 14.148, 2.71597731671, 0.26063243090 ), { 4510 130 } ( 14.689, 0.87944553412, 99.16062095550 ), { 4510 131 } ( 14.202, 2.41335693735, 530.65417294110 ), { 4510 132 } ( 15.320, 6.07703092728, 149.56319713460 ), { 4510 133 } ( 15.832, 4.11682440678, 636.71589257630 ), { 4510 134 } ( 12.398, 2.61042299578, 405.25754987360 ), { 4510 135 } ( 16.199, 2.77035044582, 760.25553592000 ), { 4510 136 } ( 13.665, 3.56039678310, 217.23124870110 ), { 4510 137 } ( 15.261, 2.81824770887, 621.73803904930 ), { 4510 138 } ( 14.681, 6.26423732742, 569.04784100980 ), { 4510 139 } ( 12.529, 1.39077179081, 7.06536289100 ), { 4510 140 } ( 11.677, 3.60447374272, 2634.22773147140 ), { 4510 141 } ( 11.603, 4.60461756191, 7.16173111060 ), { 4510 142 } ( 12.152, 0.24540531919, 1485.98012106520 ), { 4510 143 } ( 11.347, 2.00818458261, 1073.60902419080 ), { 4510 144 } ( 11.242, 2.48000947870, 423.41679713830 ), { 4510 145 } ( 10.942, 5.03602448252, 458.84151979040 ), { 4510 146 } ( 11.117, 4.04973271023, 519.39602435610 ), { 4510 147 } ( 12.256, 4.30153222783, 604.47256366190 ), { 4510 148 } ( 13.149, 2.72189077702, 1364.72809958190 ), { 4510 149 } ( 10.604, 3.11518747072, 1.27202438720 ), { 4510 150 } ( 9.874, 1.70200068743, 1699.27921650320 ), { 4510 151 } ( 10.851, 5.08554552028, 2324.94940881560 ), { 4510 152 } ( 10.692, 2.51401681528, 2847.52682690940 ), { 4510 153 } ( 12.640, 4.75572797691, 528.72775724810 ), { 4510 154 } ( 10.084, 4.05599810206, 38.13303563780 ), { 4510 155 } ( 11.536, 2.35034215745, 643.82943957710 ), { 4510 156 } ( 10.247, 3.63479911496, 2744.43405269080 ), { 4510 157 } ( 10.105, 3.65845333837, 107.02492748170 ), { 4510 158 } ( 10.121, 1.31482648275, 1905.46476494040 ), { 4510 159 } ( 9.341, 5.92176693887, 1148.24761040620 ), { 4510 160 } ( 8.796, 2.77421822809, 6.59228213900 ), { 4510 161 } ( 8.420, 4.52537756809, 1677.93857550080 ), { 4510 162 } ( 10.128, 2.09034472544, 511.53171782990 ), { 4510 163 } ( 8.272, 2.98682673354, 540.73666535850 ), { 4510 164 } ( 9.753, 1.22438911827, 32.24332891440 ), { 4510 165 } ( 10.630, 2.07777800288, 92.04707395470 ), { 4510 166 } ( 7.850, 0.98996894618, 408.43894361130 ), { 4510 167 } ( 8.811, 3.46911754939, 1021.24889455140 ), { 4510 168 } ( 7.946, 2.86682926070, 2125.87740737920 ), { 4510 169 } ( 8.575, 5.29590411702, 415.55249061210 ), { 4510 170 } ( 7.841, 6.08025056721, 70.84944530420 ), { 4510 171 } ( 7.706, 1.69832954219, 8.07675484730 ), { 4510 172 } ( 7.265, 4.65503563919, 629.60234557550 ), { 4510 173 } ( 7.164, 4.93400217968, 1056.20053645150 ), { 4510 174 } ( 7.247, 4.61607677560, 2420.92863603340 ), { 4510 175 } ( 7.753, 2.12871653382, 33.94024994380 ), { 4510 176 } ( 6.645, 0.45647460873, 635.96513305090 ), { 4510 177 } ( 9.377, 4.03158388202, 2810.92146160520 ), { 4510 178 } ( 8.263, 1.23558676139, 1802.37199072180 ), { 4510 179 } ( 6.341, 0.07278001580, 202.25339517410 ), { 4510 180 } ( 6.383, 3.54310669809, 1891.23767093880 ), { 4510 181 } ( 7.902, 2.32510002614, 230.56457082540 ), { 4510 182 } ( 6.214, 4.54560345237, 2.70831298570 ), { 4510 183 } ( 7.347, 1.24457237337, 24.37902238820 ), { 4510 184 } ( 7.451, 3.02719199239, 330.61896365820 ), { 4510 185 } ( 6.220, 1.77687561489, 1062.56332392690 ), { 4510 186 } ( 5.674, 5.14132196367, 746.92221379570 ), { 4510 187 } ( 5.855, 5.42130172896, 28.31117565130 ), { 4510 188 } ( 5.629, 3.24348217277, 529.16970023280 ), { 4510 189 } ( 7.652, 0.52813391052, 672.14061522840 ), { 4510 190 } ( 5.456, 3.34716871364, 2950.61960112800 ), { 4510 191 } ( 7.127, 1.43497795005, 6.21977512350 ), { 4510 192 } ( 5.388, 4.90175095580, 69.15252427480 ), { 4510 193 } ( 5.618, 4.97903783721, 2641.34127847220 ), { 4510 194 } ( 5.844, 2.95364118152, 490.33408917940 ), { 4510 195 } ( 4.943, 5.37597740579, 721.64941953020 ), { 4510 196 } ( 5.062, 4.84282906467, 31.01948863700 ), { 4510 197 } ( 5.163, 5.07410777073, 67.66805156650 ), { 4510 198 } ( 4.739, 6.10248862834, 106.27416795630 ), { 4510 199 } ( 4.879, 0.07095292379, 78.71375183040 ), { 4510 200 } ( 4.854, 5.63875661096, 1.69692102940 ), { 4510 201 } ( 5.629, 3.73871604865, 530.21222995640 ), { 4510 202 } ( 4.471, 4.49152882547, 505.31194270640 ), { 4510 203 } ( 4.313, 4.79369370451, 535.10759106600 ), { 4510 204 } ( 4.280, 0.54783823710, 1.43628859850 ), { 4510 205 } ( 4.453, 0.50551854591, 524.06189080210 ), { 4510 206 } ( 4.936, 4.82992988255, 422.66603761290 ), { 4510 207 } ( 4.701, 3.41634869046, 3060.82592234740 ), { 4510 208 } ( 4.261, 2.67044686458, 561.93429400900 ), { 4510 209 } ( 4.156, 4.00660658688, 99.91138048090 ), { 4510 210 } ( 4.561, 2.29650164054, 3163.91869656600 ), { 4510 211 } ( 4.414, 5.67224020329, 1464.63948006280 ), { 4510 212 } ( 5.345, 0.31513851830, 1289.94650101460 ), { 4510 213 } ( 5.269, 3.89116469022, 191.95845443560 ), { 4510 214 } ( 3.855, 4.28942301453, 1994.33044515740 ), { 4510 215 } ( 4.210, 5.32763589447, 2538.24850425360 ), { 4510 216 } ( 3.949, 4.56507101172, 1382.88734684660 ), { 4510 217 } ( 3.885, 1.56778786810, 647.01083331480 ), { 4510 218 } ( 4.227, 5.51697599030, 5223.69391980220 ), { 4510 219 } ( 4.129, 2.81119457666, 416.30325013750 ), { 4510 220 } ( 3.663, 4.35187510477, 2737.32050569000 ), { 4510 221 } ( 3.566, 5.48243943375, 750.10360753340 ), { 4510 222 } ( 4.330, 0.84941756640, 531.17543780290 ), { 4510 223 } ( 4.093, 0.19980340452, 525.02509864860 ), { 4510 224 } ( 4.022, 1.92293311337, 1512.80682400820 ), { 4510 225 } ( 3.400, 6.00302355875, 1.22384027740 ), { 4510 226 } ( 3.496, 0.31252921473, 597.35901666110 ), { 4510 227 } ( 3.299, 4.27596694481, 526.77020378780 ), { 4510 228 } ( 3.226, 2.90455264496, 963.40270297140 ), { 4510 229 } ( 3.150, 3.81061764181, 280.96714700450 ), { 4510 230 } ( 4.129, 4.74946631331, 0.89377187730 ), { 4510 231 } ( 3.840, 1.91064405186, 378.64329525170 ), { 4510 232 } ( 3.057, 1.65589659685, 528.94020556920 ), { 4510 233 } ( 3.011, 1.59276337369, 224.34479570190 ), { 4510 234 } ( 3.196, 5.86588452873, 4.14460158420 ), { 4510 235 } ( 3.628, 0.07930225897, 558.00214074590 ), { 4510 236 } ( 2.932, 0.41424445089, 7.86430652620 ), { 4510 237 } ( 3.316, 2.70211697795, 532.61172640140 ), { 4510 238 } ( 2.925, 4.47580363425, 533.88375078860 ), { 4510 239 } ( 3.690, 0.39897023849, 685.47393735270 ), { 4510 240 } ( 3.223, 2.45833032883, 960.22130923370 ), { 4510 241 } ( 3.059, 5.32616140812, 530.44172462000 ), { 4510 242 } ( 3.383, 4.42170370028, 312.45971639350 ), { 4510 243 } ( 3.320, 2.71417812514, 495.75071515080 ), { 4510 244 } ( 2.697, 5.23146633437, 739.80866679490 ), { 4510 245 } ( 3.590, 2.30999595873, 908.33426034630 ), { 4510 246 } ( 3.677, 5.07337955976, 73.29712585900 ), { 4510 247 } ( 2.618, 3.09118499149, 3267.01147078460 ), { 4510 248 } ( 2.796, 2.98942316119, 483.22054217860 ), { 4510 249 } ( 3.398, 3.29598270278, 911.30320576290 ), { 4510 250 } ( 3.352, 1.44391979336, 593.42686339800 ), { 4510 251 } ( 2.563, 3.35080110279, 2207.62954059540 ), { 4510 252 } ( 2.553, 0.36892288645, 1048.33622992530 ), { 4510 253 } ( 2.620, 3.82769874340, 520.12973753900 ), { 4510 254 } ( 3.356, 1.08315053878, 46.47042291600 ), { 4510 255 } ( 3.035, 5.52230028113, 618.55664531160 ), { 4510 256 } ( 3.397, 3.83084746522, 210.11770170030 ), { 4510 257 } ( 2.497, 0.47917884538, 945.24345570670 ), { 4510 258 } ( 2.341, 5.87941292649, 2751.54759969160 ), { 4510 259 } ( 2.656, 0.49713061045, 1057.89745748090 ), { 4510 260 } ( 2.581, 0.03759881914, 1.64453140270 ), { 4510 261 } ( 2.900, 2.50019054587, 525.49817940060 ), { 4510 262 } ( 3.153, 2.30900986177, 457.61767951300 ), { 4510 263 } ( 2.201, 3.94367109739, 31.49256938900 ), { 4510 264 } ( 2.381, 6.19252134885, 327.43756992050 ), { 4510 265 } ( 2.458, 0.65614291954, 9153.90361602180 ), { 4510 266 } ( 2.111, 5.61905648764, 16.46232623530 ), { 4510 267 } ( 2.130, 3.75880734109, 724.83081326790 ), { 4510 268 } ( 2.406, 2.29315649755, 195.13984817330 ), { 4510 269 } ( 2.166, 5.43262641046, 534.35683154060 ), { 4510 270 } ( 2.057, 1.49875151278, 551.03160609700 ), { 4510 271 } ( 2.676, 5.06374981112, 456.39383923560 ), { 4510 272 } ( 2.078, 5.28920097886, 76.26607127560 ), { 4510 273 } ( 2.261, 5.38117230692, 1781.03134971940 ), { 4510 274 } ( 2.356, 0.67392574097, 227.52618943960 ), { 4510 275 } ( 2.240, 3.18006978517, 3377.21779200400 ), { 4510 276 } ( 2.183, 3.08384250950, 524.27433912320 ), { 4510 277 } ( 2.119, 2.70107659927, 387.24131496080 ), { 4510 278 } ( 2.056, 4.82779196994, 2957.73314812880 ), { 4510 279 } ( 2.116, 6.20263841494, 209.36694217490 ), { 4510 280 } ( 2.712, 3.18157754631, 1474.67378837040 ), { 4510 281 } ( 2.127, 1.24424012514, 539.98590583310 ), { 4510 282 } ( 2.424, 3.57595925853, 953.10776223290 ), { 4510 283 } ( 1.947, 1.94468082546, 529.53090640020 ), { 4510 284 } ( 1.896, 4.01406242800, 2310.72231481400 ), { 4510 285 } ( 1.935, 4.10051493950, 3053.71237534660 ), { 4510 286 } ( 2.056, 6.27074148550, 245.54242435240 ), { 4510 287 } ( 2.108, 3.22886474225, 252.65597135320 ), { 4510 288 } ( 2.596, 2.77467278614, 177.87437278590 ), { 4510 289 } ( 1.919, 3.14834694111, 381.61224066830 ), { 4510 290 } ( 2.217, 1.92368906925, 535.91074021810 ), { 4510 291 } ( 1.947, 5.03751780002, 529.85102378900 ), { 4510 292 } ( 2.025, 4.82814272957, 17.26547538740 ), { 4510 293 } ( 1.945, 2.10611582568, 3480.31056622260 ), { 4510 294 } ( 1.899, 0.05104263891, 560.71045373160 ), { 4510 295 } ( 2.221, 0.58365090630, 3178.14579056760 ), { 4510 296 } ( 2.271, 1.67360565619, 731.94436026870 ), { 4510 297 } ( 1.706, 5.40277333462, 20.44686912510 ), { 4510 298 } ( 2.295, 4.20863103004, 1038.04128918680 ), { 4510 299 } ( 2.218, 3.65982280555, 282.45161971280 ), { 4510 300 } ( 2.181, 4.87369503022, 535.32003938710 ), { 4510 301 } ( 1.745, 1.34021867874, 25.12978191360 ), { 4510 302 } ( 1.601, 3.92730015840, 17.52610781830 ), { 4510 303 } ( 1.651, 0.63598292839, 17.40848773930 ), { 4510 304 } ( 1.826, 0.31592311031, 124.43341522100 ), { 4510 305 } ( 2.041, 0.15617294873, 598.84348936940 ), { 4510 306 } ( 1.494, 3.81418025130, 319.57326339430 ), { 4510 307 } ( 1.551, 5.25201528605, 437.64389113990 ), { 4510 308 } ( 1.852, 2.36130812462, 37.87240320690 ), { 4510 309 } ( 1.466, 1.72926380881, 59.80374504030 ), { 4510 310 } ( 1.417, 5.82273267086, 81.75213321620 ), { 4510 311 } ( 1.430, 1.17528806260, 440.82528487760 ), { 4510 312 } ( 1.906, 4.06896022692, 1819.63746610920 ), { 4510 313 } ( 1.397, 0.26383366743, 50.40257617910 ), { 4510 314 } ( 1.756, 2.32977483716, 938.12990870590 ), { 4510 315 } ( 1.487, 2.24866746540, 10.03430830760 ), { 4510 316 } ( 1.368, 3.56691602771, 1514.29129671650 ), { 4510 317 } ( 1.400, 4.84502200703, 295.05122865420 ), { 4510 318 } ( 1.344, 2.20177702122, 529.90341341570 ), { 4510 319 } ( 1.464, 1.42648716568, 1158.54255114470 ), { 4510 320 } ( 1.341, 1.15693423225, 2435.15573003500 ), { 4510 321 } ( 1.786, 5.44716330146, 2854.64037391020 ), { 4510 322 } ( 1.677, 6.22875777048, 833.55266177900 ), { 4510 323 } ( 1.471, 4.80574535807, 696.51963761660 ), { 4510 324 } ( 1.436, 1.45810957330, 537.76771994190 ), { 4510 325 } ( 1.657, 0.02890651793, 138.51749687070 ), { 4510 326 } ( 1.300, 3.14074420421, 547.85021235930 ), { 4510 327 } ( 1.343, 6.14827138025, 988.53248488500 ), { 4510 328 } ( 1.344, 4.78042160426, 529.47851677350 ), { 4510 329 } ( 1.234, 2.83294330979, 3583.40334044120 ), { 4510 330 } ( 1.651, 2.12056447005, 1061.82961074400 ), { 4510 331 } ( 1.479, 0.24646493075, 1593.00504854690 ), { 4510 332 } ( 1.413, 3.07444632745, 6283.07584999140 ), { 4510 333 } ( 1.246, 5.94882321661, 1056.93424963440 ), { 4510 334 } ( 1.225, 1.95642397635, 1969.20066324380 ), { 4510 335 } ( 1.388, 2.87749576073, 1023.95720753710 ), { 4510 336 } ( 1.263, 3.46181945031, 40.84134862350 ), { 4510 337 } ( 1.325, 4.15429781246, 916.93228005540 ), { 4510 338 } ( 1.477, 5.26691818477, 810.65811209910 ), { 4510 339 } ( 1.165, 4.65528125418, 944.98282327580 ), { 4510 340 } ( 1.137, 2.48561382158, 2.00573757010 ), { 4510 341 } ( 1.118, 3.80747957482, 7.00167241620 ), { 4510 342 } ( 1.138, 5.11611532241, 885.43971066640 ), { 4510 343 } ( 1.131, 1.54599459004, 775.23338944700 ), { 4510 344 } ( 1.477, 4.69742954455, 630.33605875840 ), { 4510 345 } ( 1.252, 1.34316620527, 739.05790726950 ), { 4510 346 } ( 1.273, 5.19070939905, 2097.42321937600 ), { 4510 347 } ( 1.446, 5.54999644374, 43.28902917830 ), { 4510 348 } ( 1.344, 4.75897665313, 1166.40685767090 ), { 4510 349 } ( 1.101, 4.56997613488, 3274.12501778540 ), { 4510 350 } ( 1.376, 3.60998729004, 415.29185818120 ), { 4510 351 } ( 1.437, 6.22410093972, 155.78297225810 ), { 4510 352 } ( 1.167, 4.09497264272, 203.00415469950 ), { 4510 353 } ( 1.237, 4.41132627005, 292.01284726840 ), { 4510 354 } ( 1.077, 2.57045229823, 25.27279426550 ), { 4510 355 } ( 1.341, 0.49262296655, 635.23141986800 ), { 4510 356 } ( 1.209, 3.36289125536, 521.61421024730 ), { 4510 357 } ( 1.030, 1.81822316284, 465.95506679120 ), { 4510 358 } ( 1.002, 3.21720955284, 2524.02141025200 ), { 4510 359 } ( 1.338, 1.26054917773, 902.70518605380 ), { 4510 360 } ( 1.037, 3.87858871885, 3370.10424500320 ), { 4510 361 } ( 1.224, 0.09219976028, 824.74219374880 ), { 4510 362 } ( 1.255, 3.04675952762, 447.79581952650 ), { 4510 363 } ( 0.991, 4.16587903812, 632.83192342300 ), { 4510 364 } ( 0.975, 3.80216680539, 2627.11418447060 ), { 4510 365 } ( 1.061, 5.60184374277, 732.69511979410 ), { 4510 366 } ( 1.049, 2.94931080683, 3693.60966166060 ), { 4510 367 } ( 0.984, 0.98260254313, 632.73555520340 ), { 4510 368 } ( 1.050, 2.20935815967, 7.22542158540 ), { 4510 369 } ( 0.996, 5.41921062583, 1059.43011429900 ), { 4510 370 } ( 0.961, 0.87315283361, 544.66881862160 ), { 4510 371 } ( 1.175, 3.09093466406, 1894.41906467650 ), { 4510 372 } ( 1.049, 5.81616384906, 26.82670294300 ), { 4510 373 } ( 1.161, 0.01274801567, 850.01498801430 ), { 4510 374 } ( 1.109, 3.63294273717, 306.83064210100 ), { 4510 375 } ( 1.077, 0.95716576092, 608.40471692500 ), { 4510 376 } ( 1.288, 4.23019288942, 1215.16490244730 ), { 4510 377 } ( 1.060, 3.85856787901, 631.82053146670 ), { 4510 378 } ( 1.251, 6.15889818604, 462.02291352810 ), { 4510 379 } ( 1.165, 3.50653563773, 8.59801970910 ), { 4510 380 } ( 0.933, 4.62559759882, 1049.08698945070 ), { 4510 381 } ( 1.035, 1.30805283339, 633.74694715970 ), { 4510 382 } ( 1.238, 2.21195391602, 25558.21217647960 ), { 4510 383 } ( 1.240, 2.27960685992, 6.90109867970 ), { 4510 384 } ( 0.942, 4.14526324371, 945.99421523210 ), { 4510 385 } ( 0.927, 6.10893117637, 514.71311156760 ), { 4510 386 } ( 0.914, 6.17656044376, 952.35700270750 ), { 4510 387 } ( 0.893, 4.27448748055, 0.63313944640 ), { 4510 388 } ( 1.045, 1.64682770236, 565.11568774670 ), { 4510 389 } ( 0.903, 1.94250156640, 3796.70243587920 ), { 4510 390 } ( 1.162, 5.51229668479, 2.96894541660 ), { 4510 391 } ( 0.901, 3.03568112112, 460.53844081980 ), { 4510 392 } ( 0.903, 2.24012822393, 523.54062594030 ), { 4510 393 } ( 1.060, 5.28027224466, 3171.03224356680 ), { 4510 394 } ( 1.064, 0.99330150801, 320.32402291970 ), { 4510 395 } ( 0.970, 4.56607888439, 429.04587143080 ), { 4510 396 } ( 1.071, 4.33203090957, 610.69233878540 ), { 4510 397 } ( 0.865, 0.21831429230, 1098.73880610440 ), { 4510 398 } ( 0.865, 2.82123742108, 1060.34513803570 ), { 4510 399 } ( 0.882, 4.80076824948, 384.05992122310 ), { 4510 400 } ( 0.959, 5.45468005818, 451.94042111070 ), { 4510 401 } ( 1.042, 5.79270325150, 303.86169668440 ), { 4510 402 } ( 0.784, 1.85150700827, 313.21047591890 ), { 4510 403 } ( 1.083, 1.40526460812, 72.07328558160 ), { 4510 404 } ( 0.782, 3.03559242565, 5.84152261360 ), { 4510 405 } ( 0.854, 1.22236205478, 611.44309831080 ), { 4510 406 } ( 0.996, 2.22139794743, 1059.33374607940 ), { 4510 407 } ( 0.719, 4.92550252164, 421.93232443000 ), { 4510 408 } ( 0.953, 3.98347050083, 836.52160719560 ), { 4510 409 } ( 0.822, 4.49679856387, 10213.28554621100 ), { 4510 410 } ( 0.707, 2.16473400319, 2228.97018159780 ), { 4510 411 } ( 0.715, 4.62515255534, 385.54439393140 ), { 4510 412 } ( 0.737, 4.63776694324, 1134.16352875650 ), { 4510 413 } ( 0.730, 1.87179326186, 153.49535039770 ), { 4510 414 } ( 0.709, 2.93132115910, 417.03696332040 ), { 4510 415 } ( 0.926, 1.77006317007, 2332.06295581640 ), { 4510 416 } ( 0.864, 3.03246275970, 1041.22268292450 ), { 4510 417 } ( 0.708, 6.01601101389, 395.10562148700 ), { 4510 418 } ( 0.935, 6.01864676296, 173.94221952280 ), { 4510 419 } ( 0.695, 1.39408383356, 432.01481684740 ), { 4510 420 } ( 0.687, 3.06548397586, 529.95159752550 ), { 4510 421 } ( 0.677, 3.58357527210, 244.31858407500 ), { 4510 422 } ( 0.850, 5.46114025921, 41.05379694460 ), { 4510 423 } ( 0.817, 4.65315342412, 535.84130424890 ), { 4510 424 } ( 0.652, 0.44173759183, 1201.83158032300 ), { 4510 425 } ( 0.711, 0.96283289310, 373.01422095920 ), { 4510 426 } ( 0.665, 1.03244633471, 623.22251175760 ), { 4510 427 } ( 0.643, 5.05335060049, 522.62560220360 ), { 4510 428 } ( 0.639, 4.22718483639, 25.86349509650 ), { 4510 429 } ( 0.718, 5.07576900710, 1058.41872234270 ), { 4510 430 } ( 0.664, 2.43728454444, 1585.14074202070 ), { 4510 431 } ( 0.833, 1.49468440213, 563.63121503840 ), { 4510 432 } ( 0.760, 4.34849823663, 100.64509366380 ), { 4510 433 } ( 0.633, 4.31796718640, 3590.51688744200 ), { 4510 434 } ( 0.629, 6.23431126402, 679.25416222920 ), { 4510 435 } ( 0.617, 2.68075016456, 3899.79521009780 ), { 4510 436 } ( 0.646, 2.88581188015, 13.49338081870 ), { 4510 437 } ( 0.768, 3.18498076120, 1151.42900414390 ), { 4510 438 } ( 0.731, 5.86653168561, 501.37978944330 ), { 4510 439 } ( 0.652, 0.82865771780, 2015.67108615980 ), { 4510 440 } ( 0.796, 5.36663489938, 420.96911658350 ), { 4510 441 } ( 0.647, 4.74965662438, 567.82400073240 ), { 4510 442 } ( 0.845, 1.69406147722, 1744.85586754190 ), { 4510 443 } ( 0.802, 5.79824707751, 981.63138620530 ), { 4510 444 } ( 0.764, 5.05232933368, 827.92358748650 ), { 4510 445 } ( 0.604, 5.11265182908, 1159.29331067010 ), { 4510 446 } ( 0.682, 3.68248136835, 2281.23049651060 ), { 4510 447 } ( 0.740, 0.74512356954, 1261.63532536330 ), { 4510 448 } ( 0.666, 2.06624389616, 27.08733537390 ), { 4510 449 } ( 0.652, 4.92932795958, 2413.81508903260 ), { 4510 450 } ( 0.559, 0.17558868481, 63.73589830340 ), { 4510 451 } ( 0.577, 3.82752312276, 1550.93985964600 ), { 4510 452 } ( 0.727, 1.05835550856, 490.07345674850 ), { 4510 453 } ( 0.574, 3.61492119092, 3686.49611465980 ), { 4510 454 } ( 0.732, 5.93179840659, 42.53826965290 ), { 4510 455 } ( 0.606, 2.71411884300, 1173.52040467170 ), { 4510 456 } ( 0.633, 4.21720828607, 166.82867252200 ), { 4510 457 } ( 0.687, 3.91671464962, 529.43033266370 ), { 4510 458 } ( 0.570, 2.73551750122, 4010.00153131720 ), { 4510 459 } ( 0.552, 2.36967119362, 1603.29998928540 ), { 4510 460 } ( 0.600, 1.82659364395, 522.52923398400 ), { 4510 461 } ( 0.558, 5.09099246601, 1354.43315884340 ), { 4510 462 } ( 0.519, 6.11952999304, 366.79444583570 ), { 4510 463 } ( 0.719, 0.85722557905, 362.86229257260 ), { 4510 464 } ( 0.518, 2.03954064144, 418.52143602870 ), { 4510 465 } ( 0.515, 3.51750445111, 528.41894070740 ), { 4510 466 } ( 0.515, 3.47930063838, 103.14095832840 ), { 4510 467 } ( 0.550, 5.77676837730, 420.44785172170 ), { 4510 468 } ( 0.702, 3.67952126446, 1279.79457262800 ), { 4510 469 } ( 0.550, 0.61451088395, 104.05598206510 ), { 4510 470 } ( 0.495, 2.41738205536, 179.35884549420 ), { 4510 471 } ( 0.513, 0.29823688044, 103.04459010880 ), { 4510 472 } ( 0.537, 5.47946238724, 771.30123618390 ), { 4510 473 } ( 0.507, 3.08777345288, 1357.61455258110 ), { 4510 474 } ( 0.495, 4.95362659160, 536.85269620520 ), { 4510 475 } ( 0.681, 4.56294416261, 112.65400177420 ), { 4510 476 } ( 0.500, 3.15631977489, 1070.42763045310 ), { 4510 477 } ( 0.484, 0.79038835602, 28.45418800320 ), { 4510 478 } ( 0.529, 5.46978501034, 419.43645976540 ), { 4510 479 } ( 0.597, 4.98058295172, 1251.34038462480 ), { 4510 480 } ( 0.492, 3.96066546484, 1269.49963188950 ), { 4510 481 } ( 0.482, 3.60167662490, 2943.50605412720 ), { 4510 482 } ( 0.630, 6.16496640092, 105.54045477340 ), { 4510 483 } ( 0.480, 0.86786400621, 35.21227433100 ), { 4510 484 } ( 0.516, 5.97528782923, 3067.93946934820 ), { 4510 485 } ( 0.586, 5.48467997697, 56.62235130260 ), { 4510 486 } ( 0.502, 1.43671788959, 469.88722005430 ), { 4510 487 } ( 0.473, 2.28007170041, 2042.49778910280 ), { 4510 488 } ( 0.565, 1.90952569252, 107.28555991260 ), { 4510 489 } ( 0.452, 3.13938145287, 934.94851496820 ), { 4510 490 } ( 0.605, 1.65413715574, 761.74000862830 ), { 4510 491 } ( 0.443, 5.46282223686, 135.33610313300 ), { 4510 492 } ( 0.580, 2.06327501551, 493.04240216510 ), { 4510 493 } ( 0.540, 1.73777995970, 536.75632798560 ), { 4510 494 } ( 0.432, 0.27167052107, 93.53154666300 ), { 4510 495 } ( 0.515, 3.46469417437, 530.96298948180 ), { 4510 496 } ( 0.440, 5.28884782489, 497.44763618020 ), { 4510 497 } ( 0.487, 5.78767525063, 12036.46073488820 ), { 4510 498 } ( 0.452, 2.57855172248, 1254.52177836250 ), { 4510 499 } ( 0.427, 3.21032629463, 2840.41327990860 ), { 4510 500 } ( 0.414, 1.54298025443, 115.62294719080 ), { 4510 501 } ( 0.424, 0.12699448931, 1268.74887236410 ), { 4510 502 } ( 0.411, 3.12424023238, 536.28324723360 ), { 4510 503 } ( 0.452, 1.00194596383, 113.38771495710 ), { 4510 504 } ( 0.419, 0.81834479225, 1165.65609814550 ), { 4510 505 } ( 0.490, 4.72785081986, 277.03499374140 ), { 4510 506 } ( 0.434, 0.36146539146, 1304.92435454160 ), { 4510 507 } ( 0.401, 5.70326543719, 1127.04998175570 ), { 4510 508 } ( 0.461, 3.26462894820, 102.12956637210 ), { 4510 509 } ( 0.533, 2.54951615753, 141.22580985640 ), { 4510 510 } ( 0.413, 4.38801694479, 6151.53388830500 ), { 4510 511 } ( 0.415, 1.68861617902, 391.17346822390 ), { 4510 512 } ( 0.385, 1.69092319074, 4113.09430553580 ), { 4510 513 } ( 0.450, 5.49339192735, 602.98809095360 ), { 4510 514 } ( 0.499, 3.80738617353, 81.00137369080 ), { 4510 515 } ( 0.454, 0.10952919733, 600.54041039880 ), { 4510 516 } ( 0.377, 6.25375060718, 913.75088631770 ), { 4510 517 } ( 0.453, 3.86104865567, 758.77106321170 ), { 4510 518 } ( 0.401, 4.44475618337, 990.22940591440 ), { 4510 519 } ( 0.407, 5.13442416563, 3487.42411322340 ), { 4510 520 } ( 0.435, 3.76103358490, 523.09868295560 ), { 4510 521 } ( 0.425, 3.22287851959, 2655.56837247380 ), { 4510 522 } ( 0.365, 5.16456645463, 4694.00295470760 ), { 4510 523 } ( 0.454, 1.63325197950, 976.00231191280 ), { 4510 524 } ( 0.406, 2.72102389267, 1438.02522544090 ), { 4510 525 } ( 0.349, 3.59598366422, 1058.86066532740 ), { 4510 526 } ( 0.354, 0.62136331420, 498.67147645760 ), { 4510 527 } ( 0.383, 5.09229089574, 539.25219265020 ), { 4510 528 } ( 0.380, 3.92653231573, 561.18353448360 ), { 4510 529 } ( 0.339, 4.12175871949, 3906.90875709860 ), { 4510 530 } ( 0.458, 3.42556794767, 121.25202148330 ), { 4510 531 } ( 0.427, 3.61285264910, 860.30992875280 ), { 4510 532 } ( 0.424, 4.72757252331, 1366.21257229020 ), { 4510 533 } ( 0.328, 4.55286002816, 1696.09782276550 ), { 4510 534 } ( 0.324, 4.23685005210, 642.34496686880 ), { 4510 535 } ( 0.395, 3.26282558955, 484.44438245600 ), { 4510 536 } ( 0.330, 6.05223507989, 215.74677599280 ), { 4510 537 } ( 0.318, 2.02072800070, 2964.84669512960 ), { 4510 538 } ( 0.417, 0.20173093597, 842.90144101350 ), { 4510 539 } ( 0.408, 0.45800247268, 1578.02719501990 ), { 4510 540 } ( 0.342, 6.15347077985, 1371.84164658270 ), { 4510 541 } ( 0.310, 1.97259286255, 754.03576079650 ), { 4510 542 } ( 0.340, 2.77813018312, 3.52311834900 ), { 4510 543 } ( 0.333, 2.91352254678, 576.16138801060 ), { 4510 544 } ( 0.324, 0.32544817254, 586.31331639720 ), { 4510 545 } ( 0.302, 2.08708848849, 526.98265210890 ), { 4510 546 } ( 0.363, 4.70567113230, 2730.20695868920 ), { 4510 547 } ( 0.300, 0.94464473068, 1432.39615114840 ), { 4510 548 } ( 0.352, 5.75013621801, 806.72595883600 ), { 4510 549 } ( 0.296, 3.97807312133, 2043.98226181110 ), { 4510 550 } ( 0.295, 2.35257797599, 4216.18707975440 ), { 4510 551 } ( 0.309, 2.49768755925, 4326.39340097380 ), { 4510 552 } ( 0.306, 3.35876843257, 2424.11002977110 ), { 4510 553 } ( 0.300, 4.94288858368, 1379.70595310890 ), { 4510 554 } ( 0.336, 4.49193455535, 1585.89150154610 ), { 4510 555 } ( 0.402, 2.04684001796, 842.15068148810 ), { 4510 556 } ( 0.312, 4.59043534747, 188.92007304980 ), { 4510 557 } ( 0.346, 5.19792097706, 523.47118997110 ), { 4510 558 } ( 0.380, 1.67961600066, 36.64856292950 ), { 4510 559 } ( 0.338, 1.32014513725, 148.07872442630 ), { 4510 560 } ( 0.391, 4.82224015188, 1012.91150727320 ), { 4510 561 } ( 0.285, 3.43655052437, 1053.96530421780 ), { 4510 562 } ( 0.332, 2.02575636311, 1091.62525910360 ), { 4510 563 } ( 0.282, 5.78865321890, 1064.04779663520 ), { 4510 564 } ( 0.282, 0.39153852422, 207.67002114550 ), { 4510 565 } ( 0.280, 3.80196391678, 298.23262239190 ), { 4510 566 } ( 0.387, 6.26819309990, 1141.13406340540 ), { 4510 567 } ( 0.349, 4.09121908199, 1059.90319505100 ), { 4510 568 } ( 0.320, 0.39871942000, 2122.69601364150 ), { 4510 569 } ( 0.327, 4.76503823073, 134.58534360760 ), { 4510 570 } ( 0.283, 3.90409016441, 127.47179660680 ), { 4510 571 } ( 0.301, 4.30291951219, 299.12639426920 ), { 4510 572 } ( 0.322, 2.48251052680, 1065.60170531270 ), { 4510 573 } ( 0.297, 2.40814103509, 1591.52057583860 ), { 4510 574 } ( 0.286, 5.85849626574, 172.24529849340 ), { 4510 575 } ( 0.285, 4.55845472479, 1446.62324515000 ), { 4510 576 } ( 0.270, 4.08342186112, 1578.77795454530 ), { 4510 577 } ( 0.362, 1.06148806683, 181.80652604900 ), { 4510 578 } ( 0.335, 4.51094500655, 2349.32843120380 ), { 4510 579 } ( 0.347, 0.62281394535, 1542.60247236780 ), { 4510 580 } ( 0.275, 3.38473403113, 4002.88798431640 ), { 4510 581 } ( 0.255, 1.52357936497, 1688.23351623930 ), { 4510 582 } ( 0.276, 4.32192160071, 1912.57831194120 ), { 4510 583 } ( 0.253, 2.40482338279, 97.67614824720 ), { 4510 584 } ( 0.248, 4.45058246237, 1688.98427576470 ), { 4510 585 } ( 0.300, 3.07435583442, 1902.28337120270 ), { 4510 586 } ( 0.257, 4.79180478086, 1670.82502850000 ), { 4510 587 } ( 0.319, 1.34244222683, 1288.46202830630 ), { 4510 588 } ( 0.245, 4.01852686769, 1567.73225428140 ), { 4510 589 } ( 0.278, 0.25406312148, 874.39401040250 ), { 4510 590 } ( 0.324, 5.57824969423, 1670.07426897460 ), { 4510 591 } ( 0.300, 4.67161812947, 1329.30337692980 ), { 4510 592 } ( 0.241, 0.01789818312, 1586.62521472900 ), { 4510 593 } ( 0.295, 5.86996114913, 2804.23779773110 ), { 4510 594 } ( 0.317, 3.17967272487, 1020.02505427400 ), { 4510 595 } ( 0.238, 4.97765946754, 351.81659230870 ), { 4510 596 } ( 0.302, 1.20236375616, 232.04904353370 ), { 4510 597 } ( 0.301, 5.53432687957, 2274.54683263650 ), { 4510 598 } ( 0.286, 2.41008592059, 2545.36205125440 ), { 4510 599 } ( 0.294, 2.01783542485, 313.94418910180 ), { 4510 600 } ( 0.292, 2.12690999284, 1592.25428902150 ), { 4510 601 } ( 0.250, 2.31712163679, 632.26247445140 ), { 4510 602 } ( 0.238, 5.06557054569, 3803.81598288000 ), { 4510 603 } ( 0.226, 0.05916712753, 1518.22344997960 ), { 4510 604 } ( 0.235, 0.16574304942, 137.03302416240 ), { 4510 605 } ( 0.298, 2.99720233431, 1467.82087380050 ), { 4510 606 } ( 0.286, 5.08357076653, 774.00954916960 ), { 4510 607 } ( 0.246, 2.81685822336, 633.30500417500 ), { 4510 608 } ( 0.269, 4.93023426152, 151.04766984290 ), { 4510 609 } ( 0.228, 6.13118739321, 3281.23856478620 ), { 4510 610 } ( 0.228, 1.22066024988, 700.45179087970 ), { 4510 611 } ( 0.239, 0.71695698501, 1276.61317889030 ), { 4510 612 } ( 0.289, 6.08263862565, 3384.33133900480 ), { 4510 613 } ( 0.218, 2.90308501961, 85.82729883120 ), { 4510 614 } ( 0.283, 6.28058228271, 71.81265315070 ), { 4510 615 } ( 0.271, 6.01605074549, 170.76082578510 ), { 4510 616 } ( 0.221, 0.99914179141, 1053.75285589670 ), { 4510 617 } ( 0.218, 1.50681393471, 1087.69310584050 ), { 4510 618 } ( 0.223, 3.39126063354, 3259.89792378380 ), { 4510 619 } ( 0.229, 1.19373202707, 1060.86640289750 ), { 4510 620 } ( 0.264, 3.93467945263, 1363.24362687360 ), { 4510 621 } ( 0.228, 5.04188376116, 1064.79855616060 ), { 4510 622 } ( 0.295, 2.15253086390, 6386.16862421000 ), { 4510 623 } ( 0.214, 3.85961180377, 4223.30062675520 ), { 4510 624 } ( 0.218, 0.79681703388, 1909.39691820350 ), { 4510 625 } ( 0.212, 4.11706418218, 269.92144674060 ), { 4510 626 } ( 0.264, 5.81676406517, 77.96299230500 ), { 4510 627 } ( 0.256, 5.65978708108, 799.61241183520 ), { 4510 628 } ( 0.242, 6.25078283449, 1621.31622419820 ), { 4510 629 } ( 0.235, 2.20668997852, 1570.91364801910 ), { 4510 630 } ( 0.212, 2.88214546012, 1674.00642223770 ), { 4510 631 } ( 0.206, 1.59586787037, 4429.48617519240 ), { 4510 632 } ( 0.208, 2.31366614282, 878.32616366560 ), { 4510 633 } ( 0.213, 0.30373338388, 8624.21265092720 ), { 4510 634 } ( 0.223, 4.88419887133, 1035.00290780100 ), { 4510 635 } ( 0.279, 3.65173543621, 84.93352695390 ), { 4510 636 } ( 0.210, 4.08825553401, 203.73786788240 ), { 4510 637 } ( 0.214, 4.63498396475, 812.14258480740 ), { 4510 638 } ( 0.258, 1.73501688450, 1887.30551767570 ), { 4510 639 } ( 0.210, 4.51798082710, 1262.38608488870 ), { 4510 640 } ( 0.252, 5.69246905091, 104.57724692690 ), { 4510 641 } ( 0.205, 4.62946016431, 1056.46116888240 ), { 4510 642 } ( 0.263, 3.04951219565, 1493.09366806600 ), { 4510 643 } ( 0.222, 5.54424082649, 5216.58037280140 ), { 4510 644 } ( 0.244, 0.91026645686, 3707.83675566220 ), { 4510 645 } ( 0.204, 0.90117975859, 1408.01712876020 ), { 4510 646 } ( 0.225, 1.23997048012, 3340.61242669980 ), { 4510 647 } ( 0.258, 2.35906183505, 2861.75392091100 ), { 4510 648 } ( 0.267, 3.27705002283, 5120.60114558360 ), { 4510 649 } ( 0.214, 0.66988779149, 9146.79006902100 ), { 4510 650 } ( 0.235, 4.93761209111, 1443.44185141230 ), { 4510 651 } ( 0.194, 1.60798828275, 102.57150935680 ), { 4510 652 } ( 0.215, 0.97603524747, 479.28838891550 ), { 4510 653 } ( 0.205, 5.23642605904, 4649.89881763120 ), { 4510 654 } ( 0.257, 4.70227260707, 9050.81084180320 ), { 4510 655 } ( 0.228, 6.23410921116, 64.95973858080 ), { 4510 656 } ( 0.180, 4.21309134581, 143.93412284210 ), { 4510 657 } ( 0.180, 4.82870451226, 1063.57471588320 ), { 4510 658 } ( 0.180, 5.06126965624, 52.69019803950 ), { 4510 659 } ( 0.226, 0.55334952097, 554.06998748280 ), { 4510 660 } ( 0.209, 5.67975843693, 48.75804477640 ), { 4510 661 } ( 0.186, 3.66368928017, 108.72184851110 ), { 4510 662 } ( 0.190, 2.00852986549, 1058.63117066380 ), { 4510 663 } ( 0.183, 3.17358464220, 140.96517742550 ), { 4510 664 } ( 0.198, 5.49816579454, 4333.50694797460 ), { 4510 665 } ( 0.240, 6.06602357868, 1821.12193881750 ), { 4510 666 } ( 0.172, 3.04802064781, 54.33472944220 ), { 4510 667 } ( 0.170, 4.66520291204, 1372.59240610810 ), { 4510 668 } ( 0.173, 4.72884056307, 77204.32749453338 ), { 4510 669 } ( 0.174, 0.85370421252, 1587.58842257550 ), { 4510 670 } ( 0.215, 0.68219980704, 1054.71606374320 ), { 4510 671 } ( 0.170, 1.52204803308, 5591.96087960020 ), { 4510 672 } ( 0.200, 1.60275092073, 6681.22485339960 ), { 4510 673 } ( 0.193, 2.13003479280, 103.61403908040 ), { 4510 674 } ( 0.231, 4.69962389031, 1966.23171782720 ), { 4510 675 } ( 0.179, 5.57395905447, 1457.52593306200 ), { 4510 676 } ( 0.205, 3.65507571128, 906.84978763800 ), { 4510 677 } ( 0.181, 4.52272934666, 24498.83024629040 ), { 4510 678 } ( 0.223, 0.11650319998, 67.88049988760 ), { 4510 679 } ( 0.172, 5.68083885227, 1884.12412393800 ), { 4510 680 } ( 0.219, 0.60964963735, 2729.45619916380 ), { 4510 681 } ( 0.164, 1.06675279755, 594.65070367540 ), { 4510 682 } ( 0.176, 2.36848603898, 977.48678462110 ), { 4510 683 } ( 0.170, 2.43036684800, 4532.57894941100 ), { 4510 684 } ( 0.191, 3.64255924842, 1440.99417085750 ), { 4510 685 } ( 0.207, 0.49276008455, 71.60020482960 ), { 4510 686 } ( 0.157, 4.26888100582, 5069.38346150640 ), { 4510 687 } ( 0.157, 5.14847227422, 451.72797278960 ), { 4510 688 } ( 0.158, 5.00063628575, 650.94298657790 ), { 4510 689 } ( 0.159, 5.37530499642, 20426.57109242200 ), { 4510 690 } ( 0.218, 0.27875408082, 175.16605980020 ), { 4510 691 } ( 0.155, 0.83696849428, 1474.93442080130 ), { 4510 692 } ( 0.154, 2.62839957291, 683.18631549230 ), { 4510 693 } ( 0.171, 1.79511736017, 1123.11782849260 ), { 4510 694 } ( 0.188, 5.24747110812, 25565.32572348040 ), { 4510 695 } ( 0.168, 4.14907553818, 946.72792841500 ), { 4510 696 } ( 0.203, 2.83699715530, 1489.91227432830 ), { 4510 697 } ( 0.173, 4.34546063838, 3046.59882834580 ), { 4510 698 } ( 0.190, 5.67865607835, 1060.13268971460 ), { 4510 699 } ( 0.201, 2.38524182920, 419.53282798500 ), { 4510 700 } ( 0.152, 5.89088685790, 208.63322899200 ), { 4510 701 } ( 0.206, 4.46933127349, 2654.67460059650 ), { 4510 702 } ( 0.156, 2.37819796438, 2758.66114669240 ), { 4510 703 } ( 0.203, 0.70565514297, 498.19839570560 ), { 4510 704 } ( 0.205, 3.05468636546, 1062.30269149600 ), { 4510 705 } ( 0.174, 3.50824761708, 2004.36475346500 ), { 4510 706 } ( 0.148, 4.73961194393, 1799.19059698410 ), { 4510 707 } ( 0.188, 3.62315953725, 3156.80514956520 ), { 4510 708 } ( 0.183, 2.35011338194, 25551.09862947879 ), { 4510 709 } ( 0.162, 1.58053710589, 628.59095361920 ), { 4510 710 } ( 0.162, 3.99983876824, 1482.79872732750 ), { 4510 711 } ( 0.181, 2.85489861839, 1055.18914449520 ), { 4510 712 } ( 0.151, 3.43198157222, 629.86297800640 ), { 4510 713 } ( 0.157, 3.15195826490, 1025.44168024540 ), { 4510 714 } ( 0.194, 5.13049187783, 1818.15299340090 ), { 4510 715 } ( 0.193, 1.92287052164, 1140.38330388000 ), { 4510 716 } ( 0.137, 4.22335221970, 1049.82070263360 ), { 4510 717 } ( 0.167, 2.85163087563, 5746.27133789600 ), { 4510 718 } ( 0.167, 5.73970282991, 5760.49843189760 ), { 4510 719 } ( 0.138, 2.23519776527, 1176.70179840940 ), { 4510 720 } ( 0.151, 4.89507270899, 532.39927808030 ), { 4510 721 } ( 0.147, 2.65931838448, 987.30864460760 ), { 4510 722 } ( 0.135, 0.12836417770, 991.71387862270 ), { 4510 723 } ( 0.166, 3.12682515439, 580.09354127370 ), { 4510 724 } ( 0.118, 5.98810576300, 531.38788612400 ), { 4510 725 } ( 0.135, 5.26601313643, 1065.01100448170 ), { 4510 726 } ( 0.138, 3.18511244397, 707.56533788050 ), { 4510 727 } ( 0.122, 1.34377059565, 446.31134681820 ), { 4510 728 } ( 0.120, 2.29717714347, 1059.22187149480 ), { 4510 729 } ( 0.121, 0.58145552537, 5621.84292321040 ), { 4510 730 } ( 0.103, 4.75645235023, 1226.21060271120 ), { 4510 731 } ( 0.104, 6.08481630139, 528.25467649610 ), { 4510 732 } ( 0.119, 1.06475523307, 527.99404406520 ), { 4510 733 } ( 0.104, 0.89730746841, 531.12725369310 ), { 4510 734 } ( 0.120, 5.39001411803, 1059.54198888360 ), { 4510 735 } ( 0.104, 0.44849170648, 1128.53445446400 ), { 4510 736 } ( 0.117, 5.42449214711, 986.08480433020 ), { 4510 737 } ( 0.101, 5.09893554462, 530.58473697190 ), { 4510 738 } ( 0.102, 0.26948040239, 450.97721326420 ), { 4510 739 } ( 0.107, 1.58724086516, 1069.67687092770 ), { 4510 740 } ( 0.086, 2.28711702506, 2498.89162833840 ), { 4510 741 } ( 0.101, 1.88318822518, 528.79719321730 ), { 4510 742 } ( 0.086, 1.37568728263, 970.51624997220 ), { 4510 743 } ( 0.083, 0.06930748288, 530.91480537200 ), { 4510 744 } ( 0.085, 3.22094000094, 1553.64817263170 ), { 4510 745 } ( 0.083, 0.62963097974, 528.46712481720 ), { 4510 746 } ( 0.083, 4.16314675511, 849.26422848890 ), { 4510 747 } ( 0.079, 3.46688102340, 1077.54117745390 ), { 4510 748 } ( 0.097, 0.87886975916, 9690.70812811720 ), { 4510 749 } ( 0.097, 4.27398311206, 9676.48103411560 ), { 4510 750 } ( 0.101, 0.29639798579, 857.12853501510 ), { 4510 751 } ( 0.083, 2.55427333923, 1059.59437851030 ), { 4510 752 } ( 0.078, 0.06461496210, 521.82665856840 ), { 4510 753 } ( 0.078, 0.76677000862, 525.54636351040 ), { 4510 754 } ( 0.096, 0.33631035749, 1090.40141882620 ), { 4510 755 } ( 0.098, 1.42815294497, 757.21715453420 ), { 4510 756 } ( 0.077, 0.85066773729, 537.55527162080 ), { 4510 757 } ( 0.084, 5.04765104413, 1160.02702385300 ), { 4510 758 } ( 0.076, 3.62264327413, 782.34693644780 ), { 4510 759 } ( 0.085, 1.86831145784, 25028.52121138500 ), { 4510 760 } ( 0.079, 2.90602202890, 2114.83170711530 ) (*$endif *) ); (*@\\\*) (*@/// vsop87_jup_l1:array[0..368,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_jup_l1:array[0.. 60,0..2] of extended = ( (*$else *) vsop87_jup_l1:array[0..368,0..2] of extended = ( (*$endif *) { 4511 1 } (52993480757.497, 0.00000000000, 0.00000000000 ), { 4511 2 } ( 489741.194, 4.22066689928, 529.69096509460 ), { 4511 3 } ( 228918.538, 6.02647464016, 7.11354700080 ), { 4511 4 } ( 27655.380, 4.57265956824, 1059.38193018920 ), { 4511 5 } ( 20720.943, 5.45938936295, 522.57741809380 ), { 4511 6 } ( 12105.732, 0.16985765041, 536.80451209540 ), { 4511 7 } ( 6068.051, 4.42419502005, 103.09277421860 ), { 4511 8 } ( 5433.924, 3.98478382565, 419.48464387520 ), { 4511 9 } ( 4237.795, 5.89009351271, 14.22709400160 ), { 4511 10 } ( 2211.854, 5.26771446618, 206.18554843720 ), { 4511 11 } ( 1295.769, 5.55132765087, 3.18139373770 ), { 4511 12 } ( 1745.919, 4.92669378486, 1589.07289528380 ), { 4511 13 } ( 1163.411, 0.51450895328, 3.93215326310 ), { 4511 14 } ( 1007.216, 0.46478398551, 735.87651353180 ), { 4511 15 } ( 1173.129, 5.85647304350, 1052.26838318840 ), { 4511 16 } ( 847.678, 5.75805850450, 110.20632121940 ), { 4511 17 } ( 827.329, 4.80312015734, 213.29909543800 ), { 4511 18 } ( 1003.574, 3.15040301822, 426.59819087600 ), { 4511 19 } ( 1098.735, 5.30704981594, 515.46387109300 ), { 4511 20 } ( 816.397, 0.58643054886, 1066.49547719000 ), { 4511 21 } ( 725.447, 5.51827471473, 639.89728631400 ), { 4511 22 } ( 567.845, 5.98867049451, 625.67019231240 ), { 4511 23 } ( 474.181, 4.13245269168, 412.37109687440 ), { 4511 24 } ( 412.930, 5.73652891261, 95.97922721780 ), { 4511 25 } ( 335.817, 3.73248749046, 1162.47470440780 ), { 4511 26 } ( 345.249, 4.24159565410, 632.78373931320 ), { 4511 27 } ( 234.066, 6.24302226646, 309.27832265580 ), { 4511 28 } ( 194.784, 2.21879010911, 323.50541665740 ), { 4511 29 } ( 234.340, 4.03469970332, 949.17560896980 ), { 4511 30 } ( 183.938, 6.27963588822, 543.91805909620 ), { 4511 31 } ( 198.525, 1.50458442825, 838.96928775040 ), { 4511 32 } ( 186.899, 6.08620565908, 742.99006053260 ), { 4511 33 } ( 171.380, 5.41655983845, 199.07200143640 ), { 4511 34 } ( 130.771, 0.62643377351, 728.76296653100 ), { 4511 35 } ( 107.575, 4.49282760117, 956.28915597060 ), { 4511 36 } ( 115.393, 0.68019050174, 846.08283475120 ), { 4511 37 } ( 115.047, 5.28641699144, 2118.76386037840 ), { 4511 38 } ( 66.824, 5.73365126533, 21.34064100240 ), { 4511 39 } ( 69.618, 5.97263450278, 532.87235883230 ), { 4511 40 } ( 64.850, 6.08803490288, 1581.95934828300 ), { 4511 41 } ( 79.686, 5.82412400273, 1045.15483618760 ), { 4511 42 } ( 57.939, 0.99453087342, 1596.18644228460 ), { 4511 43 } ( 65.635, 0.12924191430, 526.50957135690 ), { 4511 44 } ( 58.509, 0.58626971028, 1155.36115740700 ), { 4511 45 } ( 56.600, 1.41198438841, 533.62311835770 ), { 4511 46 } ( 71.643, 5.34162650321, 942.06206196900 ), { 4511 47 } ( 57.368, 5.96851304799, 1169.58825140860 ), { 4511 48 } ( 54.935, 5.42806383723, 10.29494073850 ), { 4511 49 } ( 52.016, 0.22981299129, 1368.66025284500 ), { 4511 50 } ( 52.309, 5.72661448388, 117.31986822020 ), { 4511 51 } ( 50.418, 6.08075147811, 525.75881183150 ), { 4511 52 } ( 47.418, 3.62611843241, 1478.86657406440 ), { 4511 53 } ( 39.888, 4.16158013600, 1692.16566950240 ), { 4511 54 } ( 46.678, 0.51144073175, 1265.56747862640 ), { 4511 55 } ( 32.827, 5.03596689455, 220.41264243880 ), { 4511 56 } ( 33.558, 0.09913904872, 302.16477565500 ), { 4511 57 } ( 29.379, 3.35927241533, 4.66586644600 ), { 4511 58 } ( 29.307, 0.75907909735, 88.86568021700 ), { 4511 59 } ( 32.449, 5.37492530697, 508.35032409220 ), { 4511 60 } ( 29.483, 5.42208897099, 1272.68102562720 ), (*$ifndef meeus *) { 4511 61 } ( 21.802, 6.15054054070, 1685.05212250160 ), (*$endif *) { 4511 62 } ( 25.195, 1.60723063387, 831.85574074960 ) (*$ifndef meeus *) , { 4511 63 } ( 21.133, 5.86346824200, 1258.45393162560 ), { 4511 64 } ( 19.747, 2.17205957814, 316.39186965660 ), { 4511 65 } ( 17.871, 0.82841413516, 433.71173787680 ), { 4511 66 } ( 17.703, 5.95527049039, 5.41662597140 ), { 4511 67 } ( 17.230, 2.76395560958, 853.19638175200 ), { 4511 68 } ( 17.453, 0.70749901224, 1471.75302706360 ), { 4511 69 } ( 17.508, 0.49799925173, 1375.77379984580 ), { 4511 70 } ( 14.368, 0.91459831140, 18.15924726470 ), { 4511 71 } ( 14.107, 0.63031082833, 2.92076130680 ), { 4511 72 } ( 11.559, 4.30379009964, 405.25754987360 ), { 4511 73 } ( 11.728, 1.76426582357, 380.12776796000 ), { 4511 74 } ( 11.054, 5.56735602213, 1574.84580128220 ), { 4511 75 } ( 10.425, 0.31355034390, 1361.54670584420 ), { 4511 76 } ( 9.804, 5.90363777277, 519.39602435610 ), { 4511 77 } ( 9.805, 0.38648727979, 1073.60902419080 ), { 4511 78 } ( 9.285, 3.21842287530, 1795.25844372100 ), { 4511 79 } ( 8.864, 0.53776257958, 1788.14489672020 ), { 4511 80 } ( 8.370, 5.88484552222, 2001.44399215820 ), { 4511 81 } ( 8.148, 5.10162311410, 1485.98012106520 ), { 4511 82 } ( 7.658, 5.64890060131, 2648.45482547300 ), { 4511 83 } ( 6.690, 2.41093459420, 4.19278569400 ), { 4511 84 } ( 5.840, 4.22347896053, 2008.55753915900 ), { 4511 85 } ( 7.256, 6.19384525651, 11.04570026390 ), { 4511 86 } ( 6.266, 1.36137786945, 1148.24761040620 ), { 4511 87 } ( 5.141, 5.23083932012, 628.85158605010 ), { 4511 88 } ( 5.140, 2.92955981951, 518.64526483070 ), { 4511 89 } ( 4.765, 0.16838181862, 629.60234557550 ), { 4511 90 } ( 4.603, 0.78529559911, 721.64941953020 ), { 4511 91 } ( 4.575, 6.24794935732, 1677.93857550080 ), { 4511 92 } ( 4.537, 4.95096707833, 635.96513305090 ), { 4511 93 } ( 4.518, 2.06523915453, 453.42489381900 ), { 4511 94 } ( 4.414, 0.15381186059, 1699.27921650320 ), { 4511 95 } ( 5.593, 5.57489981207, 191.95845443560 ), { 4511 96 } ( 5.403, 1.46004886198, 330.61896365820 ), { 4511 97 } ( 4.285, 0.23949868127, 2104.53676637680 ), { 4511 98 } ( 4.223, 1.44087555881, 2125.87740737920 ), { 4511 99 } ( 4.101, 6.19274358942, 636.71589257630 ), { 4511 100 } ( 4.432, 4.35811524051, 423.41679713830 ), { 4511 101 } ( 4.132, 0.50170694173, 1056.20053645150 ), { 4511 102 } ( 4.398, 4.14280286969, 511.53171782990 ), { 4511 103 } ( 5.406, 4.40429493698, 2221.85663459700 ), { 4511 104 } ( 4.467, 0.08534650684, 1062.56332392690 ), { 4511 105 } ( 3.569, 5.66540477010, 2317.83586181480 ), { 4511 106 } ( 4.007, 2.54845549248, 74.78159856730 ), { 4511 107 } ( 3.515, 0.25495124831, 1055.44977692610 ), { 4511 108 } ( 3.687, 2.93378008847, 32.24332891440 ), { 4511 109 } ( 2.883, 5.72793010505, 99.91138048090 ), { 4511 110 } ( 2.969, 5.50054720569, 107.02492748170 ), { 4511 111 } ( 2.720, 1.25222590925, 540.73666535850 ), { 4511 112 } ( 2.808, 3.30714813896, 0.75075952540 ), { 4511 113 } ( 2.768, 1.61339487804, 1063.31408345230 ), { 4511 114 } ( 2.666, 4.28662288102, 106.27416795630 ), { 4511 115 } ( 2.704, 3.03615556153, 422.66603761290 ), { 4511 116 } ( 3.290, 5.89081682150, 1802.37199072180 ), { 4511 117 } ( 2.578, 3.60390367979, 750.10360753340 ), { 4511 118 } ( 2.661, 0.35249312659, 1898.35121793960 ), { 4511 119 } ( 2.486, 5.28950877719, 1891.23767093880 ), { 4511 120 } ( 2.936, 1.09052029450, 1464.63948006280 ), { 4511 121 } ( 3.190, 4.60740643547, 416.30325013750 ), { 4511 122 } ( 2.390, 6.01779736611, 551.03160609700 ), { 4511 123 } ( 2.214, 5.24450923180, 621.73803904930 ), { 4511 124 } ( 2.319, 5.82920300130, 305.34616939270 ), { 4511 125 } ( 2.089, 5.99310370434, 1994.33044515740 ), { 4511 126 } ( 2.042, 0.75008788531, 142.44965013380 ), { 4511 127 } ( 2.121, 0.01537599023, 2420.92863603340 ), { 4511 128 } ( 2.114, 6.25308371567, 647.01083331480 ), { 4511 129 } ( 2.020, 4.17560390841, 569.04784100980 ), { 4511 130 } ( 2.109, 5.18682321403, 227.52618943960 ), { 4511 131 } ( 2.283, 5.80043809222, 539.98590583310 ), { 4511 132 } ( 1.977, 3.99197009651, 24.37902238820 ), { 4511 133 } ( 1.960, 1.35288793079, 963.40270297140 ), { 4511 134 } ( 1.903, 2.78349628184, 2428.04218303420 ), { 4511 135 } ( 1.915, 4.22134509685, 2324.94940881560 ), { 4511 136 } ( 1.971, 5.88715684267, 217.23124870110 ), { 4511 137 } ( 1.917, 3.03728154374, 1382.88734684660 ), { 4511 138 } ( 2.026, 3.08606488714, 408.43894361130 ), { 4511 139 } ( 1.834, 5.61474110217, 430.53034413910 ), { 4511 140 } ( 1.838, 1.25467410218, 81.75213321620 ), { 4511 141 } ( 2.460, 4.63268678998, 1905.46476494040 ), { 4511 142 } ( 1.820, 5.97497926120, 114.13847448250 ), { 4511 143 } ( 2.043, 4.34047514845, 70.84944530420 ), { 4511 144 } ( 1.959, 4.03116026306, 92.04707395470 ), { 4511 145 } ( 1.768, 0.33097462499, 35.42472265210 ), { 4511 146 } ( 2.334, 5.87042638470, 1038.04128918680 ), { 4511 147 } ( 1.835, 4.81326127892, 124.43341522100 ), { 4511 148 } ( 2.269, 1.02549350754, 618.55664531160 ), { 4511 149 } ( 1.919, 5.01297395549, 99.16062095550 ), { 4511 150 } ( 1.923, 0.28688549585, 31.01948863700 ), { 4511 151 } ( 1.878, 5.69299116574, 210.11770170030 ), { 4511 152 } ( 1.679, 0.25635730278, 295.05122865420 ), { 4511 153 } ( 1.656, 5.46039280732, 2634.22773147140 ), { 4511 154 } ( 1.675, 6.15609073315, 643.82943957710 ), { 4511 155 } ( 1.953, 5.09846435548, 17.40848773930 ), { 4511 156 } ( 1.539, 2.75316078346, 415.55249061210 ), { 4511 157 } ( 1.467, 0.54812675158, 458.84151979040 ), { 4511 158 } ( 1.482, 3.76736278426, 534.35683154060 ), { 4511 159 } ( 1.446, 3.15802770791, 25.12978191360 ), { 4511 160 } ( 1.667, 0.26406950755, 835.03713448730 ), { 4511 161 } ( 1.472, 0.83054329617, 28.31117565130 ), { 4511 162 } ( 1.655, 0.88908548504, 1781.03134971940 ), { 4511 163 } ( 1.294, 5.76241191046, 440.82528487760 ), { 4511 164 } ( 1.348, 2.49823510924, 984.60033162190 ), { 4511 165 } ( 1.352, 5.10869562455, 149.56319713460 ), { 4511 166 } ( 1.344, 0.01942249067, 2214.74308759620 ), { 4511 167 } ( 1.188, 2.24279457878, 31.49256938900 ), { 4511 168 } ( 1.166, 0.80686346228, 739.80866679490 ), { 4511 169 } ( 1.322, 4.25691184168, 2538.24850425360 ), { 4511 170 } ( 1.094, 6.02985819406, 2737.32050569000 ), { 4511 171 } ( 1.112, 4.38204360670, 561.93429400900 ), { 4511 172 } ( 1.346, 3.20575848870, 525.02509864860 ), { 4511 173 } ( 1.056, 5.76507115032, 2310.72231481400 ), { 4511 174 } ( 1.159, 0.46189564970, 67.66805156650 ), { 4511 175 } ( 1.027, 0.20709586018, 7.86430652620 ), { 4511 176 } ( 1.143, 5.56626418636, 46.47042291600 ), { 4511 177 } ( 1.012, 0.54293005597, 532.13864564940 ), { 4511 178 } ( 0.978, 5.13939194101, 2207.62954059540 ), { 4511 179 } ( 0.993, 2.03698185233, 319.57326339430 ), { 4511 180 } ( 1.035, 2.90231353535, 611.44309831080 ), { 4511 181 } ( 1.021, 4.75651217048, 527.24328453980 ), { 4511 182 } ( 1.308, 1.78809336431, 824.74219374880 ), { 4511 183 } ( 0.964, 2.82269601958, 2111.65031337760 ), { 4511 184 } ( 0.896, 2.54505998806, 2744.43405269080 ), { 4511 185 } ( 0.890, 5.41036782817, 28.45418800320 ), { 4511 186 } ( 0.906, 0.76565238554, 1439.50969814920 ), { 4511 187 } ( 0.985, 0.88687623770, 5760.49843189760 ), { 4511 188 } ( 0.983, 1.42102343372, 5746.27133789600 ), { 4511 189 } ( 0.892, 5.87250060663, 203.00415469950 ), { 4511 190 } ( 0.942, 2.31049430734, 9690.70812811720 ), { 4511 191 } ( 0.941, 2.84331157527, 9676.48103411560 ), { 4511 192 } ( 0.867, 0.81020362547, 524.27433912320 ), { 4511 193 } ( 0.829, 2.35178495412, 312.45971639350 ), { 4511 194 } ( 0.912, 2.80494184378, 6.21977512350 ), { 4511 195 } ( 0.809, 1.05148218513, 529.64278098480 ), { 4511 196 } ( 0.779, 4.80009242059, 945.24345570670 ), { 4511 197 } ( 0.878, 5.76532521399, 1.64453140270 ), { 4511 198 } ( 0.953, 4.30945738629, 209.36694217490 ), { 4511 199 } ( 0.772, 5.25607113566, 2950.61960112800 ), { 4511 200 } ( 0.745, 0.03810558502, 535.10759106600 ), { 4511 201 } ( 0.744, 0.58381523987, 25.27279426550 ), { 4511 202 } ( 0.734, 0.20800485100, 1049.08698945070 ), { 4511 203 } ( 0.747, 2.71772840871, 38.13303563780 ), { 4511 204 } ( 0.728, 5.97210358938, 945.99421523210 ), { 4511 205 } ( 0.769, 4.51394016967, 952.35700270750 ), { 4511 206 } ( 0.710, 0.38016353553, 69.15252427480 ), { 4511 207 } ( 0.760, 3.07033779824, 39.35687591520 ), { 4511 208 } ( 0.802, 1.14191463412, 532.61172640140 ), { 4511 209 } ( 0.704, 1.25447308120, 547.85021235930 ), { 4511 210 } ( 0.721, 0.73855379162, 2228.97018159780 ), { 4511 211 } ( 0.794, 4.25051539085, 2641.34127847220 ), { 4511 212 } ( 0.795, 3.20588363820, 604.47256366190 ), { 4511 213 } ( 0.818, 1.05229815343, 909.81873305460 ), { 4511 214 } ( 0.724, 5.68281830264, 953.10776223290 ), { 4511 215 } ( 0.836, 0.60410469174, 2097.42321937600 ), { 4511 216 } ( 0.669, 5.75757140051, 2015.67108615980 ), { 4511 217 } ( 0.682, 1.19994890339, 387.24131496080 ), { 4511 218 } ( 0.640, 3.91546675664, 528.72775724810 ), { 4511 219 } ( 0.809, 4.24929331276, 529.73914920440 ), { 4511 220 } ( 0.819, 4.91540072376, 2751.54759969160 ), { 4511 221 } ( 0.692, 2.51162384766, 916.93228005540 ), { 4511 222 } ( 0.784, 4.23651511312, 195.13984817330 ), { 4511 223 } ( 0.762, 1.12201139619, 732.69511979410 ), { 4511 224 } ( 0.617, 5.80920925081, 739.05790726950 ), { 4511 225 } ( 0.727, 4.24401822698, 760.25553592000 ), { 4511 226 } ( 0.591, 3.26075006572, 202.25339517410 ), { 4511 227 } ( 0.552, 5.83533550039, 526.77020378780 ), { 4511 228 } ( 0.640, 1.38530872949, 530.65417294110 ), { 4511 229 } ( 0.577, 6.09100925678, 2531.13495725280 ), { 4511 230 } ( 0.620, 3.01917904435, 902.70518605380 ), { 4511 231 } ( 0.722, 5.18171159557, 1.48447270830 ), { 4511 232 } ( 0.540, 3.78809230820, 2957.73314812880 ), { 4511 233 } ( 0.523, 3.63882376000, 437.64389113990 ), { 4511 234 } ( 0.527, 5.80796427555, 3053.71237534660 ), { 4511 235 } ( 0.488, 4.99103190309, 483.22054217860 ), { 4511 236 } ( 0.557, 4.11381202161, 2854.64037391020 ), { 4511 237 } ( 0.492, 0.76371083106, 1603.29998928540 ), { 4511 238 } ( 0.487, 5.55383951779, 2627.11418447060 ), { 4511 239 } ( 0.487, 5.86510858429, 724.83081326790 ), { 4511 240 } ( 0.453, 0.61375011101, 1159.29331067010 ), { 4511 241 } ( 0.450, 2.28121042355, 3060.82592234740 ), { 4511 242 } ( 0.515, 4.78126059280, 447.79581952650 ), { 4511 243 } ( 0.449, 4.70231576312, 934.94851496820 ), { 4511 244 } ( 0.450, 1.91049508739, 597.35901666110 ), { 4511 245 } ( 0.438, 6.01178917646, 3178.14579056760 ), { 4511 246 } ( 0.494, 0.53844942275, 1354.43315884340 ), { 4511 247 } ( 0.501, 5.51752195462, 2435.15573003500 ), { 4511 248 } ( 0.432, 3.64903264921, 313.21047591890 ), { 4511 249 } ( 0.435, 3.02449828967, 533.88375078860 ), { 4511 250 } ( 0.426, 5.07945534339, 2524.02141025200 ), { 4511 251 } ( 0.491, 3.59286364200, 230.56457082540 ), { 4511 252 } ( 0.547, 0.34432090949, 1251.34038462480 ), { 4511 253 } ( 0.503, 1.57454509207, 454.90936652730 ), { 4511 254 } ( 0.486, 4.39351469958, 462.02291352810 ), { 4511 255 } ( 0.524, 2.03003740296, 1279.79457262800 ), { 4511 256 } ( 0.388, 5.58318013074, 731.94436026870 ), { 4511 257 } ( 0.449, 1.11025492739, 56.62235130260 ), { 4511 258 } ( 0.398, 5.19943284273, 3267.01147078460 ), { 4511 259 } ( 0.416, 1.70821917336, 245.54242435240 ), { 4511 260 } ( 0.379, 1.80234948769, 2655.56837247380 ), { 4511 261 } ( 0.355, 1.65214516751, 78.71375183040 ), { 4511 262 } ( 0.404, 1.72647262603, 1141.13406340540 ), { 4511 263 } ( 0.335, 6.01254286794, 960.22130923370 ), { 4511 264 } ( 0.331, 1.74086938716, 490.33408917940 ), { 4511 265 } ( 0.401, 0.30034336462, 2332.06295581640 ), { 4511 266 } ( 0.336, 2.64385574909, 1021.24889455140 ), { 4511 267 } ( 0.389, 0.31259289221, 2413.81508903260 ), { 4511 268 } ( 0.314, 5.73833529708, 1158.54255114470 ), { 4511 269 } ( 0.313, 4.74363791106, 938.12990870590 ), { 4511 270 } ( 0.333, 0.80112437148, 1585.14074202070 ), { 4511 271 } ( 0.323, 3.52656245280, 3274.12501778540 ), { 4511 272 } ( 0.395, 1.73181407631, 1593.00504854690 ), { 4511 273 } ( 0.302, 4.64184749164, 1261.63532536330 ), { 4511 274 } ( 0.325, 0.54991590409, 43.28902917830 ), { 4511 275 } ( 0.293, 0.97977818746, 1585.89150154610 ), { 4511 276 } ( 0.341, 2.80833606944, 1514.29129671650 ), { 4511 277 } ( 0.304, 6.12522825214, 1262.38608488870 ), { 4511 278 } ( 0.286, 2.89800423081, 530.21222995640 ), { 4511 279 } ( 0.387, 0.46648572639, 1592.25428902150 ), { 4511 280 } ( 0.285, 4.56394598052, 1268.74887236410 ), { 4511 281 } ( 0.310, 4.69102289591, 76.26607127560 ), { 4511 282 } ( 0.278, 5.49867187248, 280.96714700450 ), { 4511 283 } ( 0.358, 5.45926487831, 113.38771495710 ), { 4511 284 } ( 0.283, 1.09230506350, 1061.82961074400 ), { 4511 285 } ( 0.326, 0.60265259639, 827.92358748650 ), { 4511 286 } ( 0.284, 5.36580034539, 1165.65609814550 ), { 4511 287 } ( 0.281, 5.54635461050, 3370.10424500320 ), { 4511 288 } ( 0.269, 3.92616563946, 42.53826965290 ), { 4511 289 } ( 0.275, 2.58465453365, 373.01422095920 ), { 4511 290 } ( 0.357, 1.39391983207, 1493.09366806600 ), { 4511 291 } ( 0.258, 5.96670694140, 1269.49963188950 ), { 4511 292 } ( 0.259, 2.56026216784, 9146.79006902100 ), { 4511 293 } ( 0.281, 2.74823090198, 4694.00295470760 ), { 4511 294 } ( 0.281, 3.01324655940, 320.32402291970 ), { 4511 295 } ( 0.272, 4.18504958920, 8624.21265092720 ), { 4511 296 } ( 0.245, 1.24462798353, 252.65597135320 ), { 4511 297 } ( 0.244, 2.02892764690, 3377.21779200400 ), { 4511 298 } ( 0.324, 1.84851618413, 1289.94650101460 ), { 4511 299 } ( 0.221, 6.22167997496, 3281.23856478620 ), { 4511 300 } ( 0.238, 3.93371505401, 3171.03224356680 ), { 4511 301 } ( 0.226, 5.94296271326, 224.34479570190 ), { 4511 302 } ( 0.213, 3.68264234750, 1048.33622992530 ), { 4511 303 } ( 0.216, 5.82941334164, 1567.73225428140 ), { 4511 304 } ( 0.295, 4.70194747095, 3067.93946934820 ), { 4511 305 } ( 0.206, 4.98184230959, 1357.61455258110 ), { 4511 306 } ( 0.202, 1.32439444045, 4326.39340097380 ), { 4511 307 } ( 0.227, 0.78540105705, 59.80374504030 ), { 4511 308 } ( 0.237, 5.56926897693, 2943.50605412720 ), { 4511 309 } ( 0.207, 0.07907015398, 5223.69391980220 ), { 4511 310 } ( 0.199, 3.30501818656, 4120.20785253660 ), { 4511 311 } ( 0.194, 5.95526916809, 84.93352695390 ), { 4511 312 } ( 0.266, 1.58032565718, 983.11585891360 ), { 4511 313 } ( 0.198, 4.31078641704, 4017.11507831800 ), { 4511 314 } ( 0.198, 0.30166351366, 1166.40685767090 ), { 4511 315 } ( 0.188, 0.90738705875, 135.33610313300 ), { 4511 316 } ( 0.186, 0.69289672485, 92.79783348010 ), { 4511 317 } ( 0.182, 1.18931462257, 1512.80682400820 ), { 4511 318 } ( 0.191, 1.04146023518, 1884.12412393800 ), { 4511 319 } ( 0.174, 6.13734594396, 3597.63043444280 ), { 4511 320 } ( 0.189, 0.35191512844, 1372.59240610810 ), { 4511 321 } ( 0.172, 4.35250972697, 1578.02719501990 ), { 4511 322 } ( 0.173, 2.30241719278, 1176.70179840940 ), { 4511 323 } ( 0.220, 1.06991056825, 2200.51599359460 ), { 4511 324 } ( 0.186, 4.90511103807, 3583.40334044120 ), { 4511 325 } ( 0.189, 0.24160744024, 1670.82502850000 ), { 4511 326 } ( 0.206, 0.01485146863, 2730.20695868920 ), { 4511 327 } ( 0.174, 1.83997277029, 746.92221379570 ), { 4511 328 } ( 0.225, 3.13108099660, 630.33605875840 ), { 4511 329 } ( 0.206, 5.22730929781, 3995.77443731560 ), { 4511 330 } ( 0.169, 2.57956682688, 9161.01716302260 ), { 4511 331 } ( 0.165, 1.51795928301, 4010.00153131720 ), { 4511 332 } ( 0.181, 2.05055200822, 842.90144101350 ), { 4511 333 } ( 0.181, 5.96554625357, 1578.77795454530 ), { 4511 334 } ( 0.166, 1.55114863100, 1070.42763045310 ), { 4511 335 } ( 0.157, 5.87839958880, 3914.02230409940 ), { 4511 336 } ( 0.160, 0.43729819176, 2545.36205125440 ), { 4511 337 } ( 0.168, 5.73975661792, 2847.52682690940 ), { 4511 338 } ( 0.157, 2.25764581068, 850.01498801430 ), { 4511 339 } ( 0.187, 0.64918748618, 842.15068148810 ), { 4511 340 } ( 0.180, 1.88055488803, 685.47393735270 ), { 4511 341 } ( 0.153, 4.15259684562, 4333.50694797460 ), { 4511 342 } ( 0.154, 3.65536637158, 77734.01845962799 ), { 4511 343 } ( 0.151, 3.17795437121, 3590.51688744200 ), { 4511 344 } ( 0.155, 3.87623547990, 327.43756992050 ), { 4511 345 } ( 0.171, 3.33647878498, 1912.57831194120 ), { 4511 346 } ( 0.188, 4.53005359421, 1041.22268292450 ), { 4511 347 } ( 0.134, 4.09921613445, 530.44172462000 ), { 4511 348 } ( 0.123, 4.79543460218, 1098.73880610440 ), { 4511 349 } ( 0.161, 2.02006564218, 860.30992875280 ), { 4511 350 } ( 0.143, 2.40197278329, 529.16970023280 ), { 4511 351 } ( 0.115, 1.55831212007, 9153.90361602180 ), { 4511 352 } ( 0.106, 5.94313244357, 1057.89745748090 ), { 4511 353 } ( 0.119, 5.10578428676, 1056.93424963440 ), { 4511 354 } ( 0.100, 5.74974781049, 501.23677709140 ), { 4511 355 } ( 0.094, 1.40134175492, 1059.33374607940 ), { 4511 356 } ( 0.098, 3.79115318281, 497.44763618020 ), { 4511 357 } ( 0.090, 4.09610113044, 1064.04779663520 ), { 4511 358 } ( 0.102, 1.10442899544, 1969.20066324380 ), { 4511 359 } ( 0.087, 0.58218477838, 1173.52040467170 ), { 4511 360 } ( 0.109, 3.83745968299, 525.49817940060 ), { 4511 361 } ( 0.094, 4.59915291355, 1059.43011429900 ), { 4511 362 } ( 0.118, 6.11701561559, 1069.67687092770 ), { 4511 363 } ( 0.107, 5.40509332689, 679.25416222920 ), { 4511 364 } ( 0.089, 5.90037690244, 757.21715453420 ), { 4511 365 } ( 0.078, 6.06217863109, 970.51624997220 ), { 4511 366 } ( 0.080, 5.45470236239, 3163.91869656600 ), { 4511 367 } ( 0.072, 5.65789862232, 1151.42900414390 ), { 4511 368 } ( 0.080, 0.04539720100, 1080.72257119160 ), { 4511 369 } ( 0.075, 4.26526686574, 1058.41872234270 ) (*$endif *) ); (*@\\\0000000401*) (*@/// vsop87_jup_l2:array[0..190,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_jup_l2:array[0.. 56,0..2] of extended = ( (*$else *) vsop87_jup_l2:array[0..190,0..2] of extended = ( (*$endif *) { 4512 1 } ( 47233.598, 4.32148323554, 7.11354700080 ), { 4512 2 } ( 30629.053, 2.93021440216, 529.69096509460 ), { 4512 3 } ( 38965.550, 0.00000000000, 0.00000000000 ), { 4512 4 } ( 3189.317, 1.05504615595, 522.57741809380 ), { 4512 5 } ( 2723.358, 3.41411526638, 1059.38193018920 ), { 4512 6 } ( 2729.292, 4.84545481351, 536.80451209540 ), { 4512 7 } ( 1721.069, 4.18734385158, 14.22709400160 ), { 4512 8 } ( 383.258, 5.76790714387, 419.48464387520 ), { 4512 9 } ( 367.498, 6.05509120409, 103.09277421860 ), { 4512 10 } ( 377.524, 0.76048964872, 515.46387109300 ), { 4512 11 } ( 337.386, 3.78644384244, 3.18139373770 ), { 4512 12 } ( 308.200, 0.69356654052, 206.18554843720 ), { 4512 13 } ( 218.408, 3.81389191353, 1589.07289528380 ), { 4512 14 } ( 198.883, 5.33996443444, 1066.49547719000 ), { 4512 15 } ( 197.445, 2.48356402053, 3.93215326310 ), { 4512 16 } ( 146.230, 3.81373196838, 639.89728631400 ), { 4512 17 } ( 155.862, 1.40642426467, 1052.26838318840 ), { 4512 18 } ( 129.570, 5.83738872525, 412.37109687440 ), { 4512 19 } ( 141.932, 1.63435169016, 426.59819087600 ), { 4512 20 } ( 117.327, 1.41435462588, 625.67019231240 ), { 4512 21 } ( 96.733, 4.03383427887, 110.20632121940 ), { 4512 22 } ( 90.823, 1.10630629042, 95.97922721780 ), { 4512 23 } ( 78.769, 4.63726131329, 543.91805909620 ), { 4512 24 } ( 72.392, 2.21716670026, 735.87651353180 ), { 4512 25 } ( 87.292, 2.52235174825, 632.78373931320 ), { 4512 26 } ( 56.910, 3.12292059854, 213.29909543800 ), { 4512 27 } ( 48.622, 1.67283791618, 309.27832265580 ), { 4512 28 } ( 58.475, 0.83216317444, 199.07200143640 ), { 4512 29 } ( 40.150, 4.02485444740, 21.34064100240 ), { 4512 30 } ( 39.784, 0.62416945827, 323.50541665740 ), { 4512 31 } ( 35.718, 2.32581247002, 728.76296653100 ), { 4512 32 } ( 25.620, 2.51240623862, 1162.47470440780 ), { 4512 33 } ( 29.255, 3.60838327799, 10.29494073850 ), { 4512 34 } ( 23.591, 3.00532139306, 956.28915597060 ), { 4512 35 } ( 27.814, 3.23992013743, 838.96928775040 ), { 4512 36 } ( 25.993, 4.50118298290, 742.99006053260 ), { 4512 37 } ( 25.194, 1.21868110687, 1045.15483618760 ), { 4512 38 } ( 19.458, 4.29028644674, 532.87235883230 ), { 4512 39 } ( 17.660, 0.80953941560, 508.35032409220 ), { 4512 40 } ( 15.355, 5.81037986941, 1596.18644228460 ), { 4512 41 } ( 17.058, 4.20001977723, 2118.76386037840 ), { 4512 42 } ( 17.040, 1.83402146640, 526.50957135690 ), { 4512 43 } ( 14.661, 3.99989622586, 117.31986822020 ), { 4512 44 } ( 13.639, 1.80336677963, 302.16477565500 ), { 4512 45 } ( 13.230, 2.51856643603, 88.86568021700 ), { 4512 46 } ( 12.756, 4.36856232414, 1169.58825140860 ), { 4512 47 } ( 15.292, 0.68174165476, 942.06206196900 ), { 4512 48 } ( 10.986, 4.43586634639, 525.75881183150 ), { 4512 49 } ( 13.920, 5.95169568482, 316.39186965660 ), { 4512 50 } ( 9.437, 2.17684563456, 1155.36115740700 ), { 4512 51 } ( 8.812, 3.29452783338, 220.41264243880 ), { 4512 52 } ( 7.823, 5.75672228354, 846.08283475120 ), { 4512 53 } ( 7.549, 2.70955516779, 533.62311835770 ), { 4512 54 } ( 9.681, 1.71563161051, 1581.95934828300 ), { 4512 55 } ( 8.690, 3.31924493607, 831.85574074960 ), { 4512 56 } ( 6.285, 0.49939863541, 949.17560896980 ), { 4512 57 } ( 6.685, 2.17560093281, 1265.56747862640 ) (*$ifndef meeus *) , { 4512 58 } ( 5.381, 6.00510875948, 405.25754987360 ), { 4512 59 } ( 4.676, 1.40846192799, 1258.45393162560 ), { 4512 60 } ( 4.421, 3.02360159274, 1692.16566950240 ), { 4512 61 } ( 4.403, 5.47737266160, 433.71173787680 ), { 4512 62 } ( 4.286, 5.07139951645, 1073.60902419080 ), { 4512 63 } ( 4.201, 5.28560721767, 18.15924726470 ), { 4512 64 } ( 3.933, 1.26665387164, 853.19638175200 ), { 4512 65 } ( 5.351, 3.65320121089, 1272.68102562720 ), { 4512 66 } ( 4.392, 2.27325303667, 1368.66025284500 ), { 4512 67 } ( 3.482, 1.53983001273, 519.39602435610 ), { 4512 68 } ( 2.745, 2.09685315627, 1478.86657406440 ), { 4512 69 } ( 2.737, 1.06017230524, 1574.84580128220 ), { 4512 70 } ( 2.897, 2.05128453665, 1361.54670584420 ), { 4512 71 } ( 3.075, 0.99085727534, 191.95845443560 ), { 4512 72 } ( 2.462, 2.37173605635, 1471.75302706360 ), { 4512 73 } ( 2.203, 2.47960567714, 721.64941953020 ), { 4512 74 } ( 2.096, 3.71482580504, 1485.98012106520 ), { 4512 75 } ( 1.984, 1.88475229557, 1685.05212250160 ), { 4512 76 } ( 2.274, 3.03360234351, 1148.24761040620 ), { 4512 77 } ( 2.041, 6.17114556019, 330.61896365820 ), { 4512 78 } ( 1.451, 4.72055072637, 32.24332891440 ), { 4512 79 } ( 1.454, 5.14703918585, 1375.77379984580 ), { 4512 80 } ( 1.447, 3.18833439444, 635.96513305090 ), { 4512 81 } ( 1.403, 4.26712075104, 551.03160609700 ), { 4512 82 } ( 1.420, 1.99288040133, 629.60234557550 ), { 4512 83 } ( 1.269, 0.03300387779, 2125.87740737920 ), { 4512 84 } ( 1.276, 2.26356919237, 1788.14489672020 ), { 4512 85 } ( 1.189, 1.70223550488, 1677.93857550080 ), { 4512 86 } ( 1.182, 2.18142313946, 1795.25844372100 ), { 4512 87 } ( 1.366, 1.27629917215, 1038.04128918680 ), { 4512 88 } ( 1.306, 4.76302079847, 1062.56332392690 ), { 4512 89 } ( 1.109, 2.97787130235, 81.75213321620 ), { 4512 90 } ( 1.027, 1.99236027398, 295.05122865420 ), { 4512 91 } ( 1.349, 4.01621534182, 539.98590583310 ), { 4512 92 } ( 1.025, 3.75336759986, 28.45418800320 ), { 4512 93 } ( 0.977, 3.01355125761, 124.43341522100 ), { 4512 94 } ( 1.290, 4.62594234857, 2648.45482547300 ), { 4512 95 } ( 1.065, 5.06153058155, 1699.27921650320 ), { 4512 96 } ( 0.965, 1.17716405513, 99.91138048090 ), { 4512 97 } ( 1.021, 1.90712102660, 750.10360753340 ), { 4512 98 } ( 0.923, 3.53450109212, 227.52618943960 ), { 4512 99 } ( 1.059, 0.13532061468, 416.30325013750 ), { 4512 100 } ( 0.836, 2.07492422755, 1056.20053645150 ), { 4512 101 } ( 0.889, 1.75177808106, 1898.35121793960 ), { 4512 102 } ( 0.772, 2.89217715561, 2008.55753915900 ), { 4512 103 } ( 1.014, 2.80847772922, 1464.63948006280 ), { 4512 104 } ( 0.820, 1.99735697577, 2111.65031337760 ), { 4512 105 } ( 0.787, 4.91912237671, 1055.44977692610 ), { 4512 106 } ( 0.743, 2.65209650690, 106.27416795630 ), { 4512 107 } ( 0.705, 0.08006443278, 963.40270297140 ), { 4512 108 } ( 0.724, 3.29664246938, 628.85158605010 ), { 4512 109 } ( 0.791, 1.64655202110, 2001.44399215820 ), { 4512 110 } ( 0.822, 2.74067639972, 618.55664531160 ), { 4512 111 } ( 0.761, 1.26393500358, 1382.88734684660 ), { 4512 112 } ( 0.650, 1.19590511216, 422.66603761290 ), { 4512 113 } ( 0.677, 1.88476058357, 2104.53676637680 ), { 4512 114 } ( 0.681, 5.47481665606, 5760.49843189760 ), { 4512 115 } ( 0.681, 3.11621209674, 5746.27133789600 ), { 4512 116 } ( 0.644, 4.68385640894, 611.44309831080 ), { 4512 117 } ( 0.752, 3.03497138894, 2221.85663459700 ), { 4512 118 } ( 0.641, 1.86274530783, 636.71589257630 ), { 4512 119 } ( 0.614, 3.07677356670, 380.12776796000 ), { 4512 120 } ( 0.635, 4.53916684689, 9676.48103411560 ), { 4512 121 } ( 0.635, 0.61458805483, 9690.70812811720 ), { 4512 122 } ( 0.822, 6.25170365084, 423.41679713830 ), { 4512 123 } ( 0.762, 4.32362906505, 1802.37199072180 ), { 4512 124 } ( 0.582, 0.84137872868, 1891.23767093880 ), { 4512 125 } ( 0.558, 3.96171840325, 440.82528487760 ), { 4512 126 } ( 0.624, 2.83657771014, 1905.46476494040 ), { 4512 127 } ( 0.711, 3.43538032357, 824.74219374880 ), { 4512 128 } ( 0.517, 1.10660016329, 107.02492748170 ), { 4512 129 } ( 0.535, 1.55761050176, 1994.33044515740 ), { 4512 130 } ( 0.501, 4.44389802599, 647.01083331480 ), { 4512 131 } ( 0.414, 5.37130370397, 2228.97018159780 ), { 4512 132 } ( 0.533, 2.54756313371, 1781.03134971940 ), { 4512 133 } ( 0.393, 1.26351262287, 210.11770170030 ), { 4512 134 } ( 0.433, 2.90103969634, 1063.31408345230 ), { 4512 135 } ( 0.384, 1.36194621083, 203.00415469950 ), { 4512 136 } ( 0.440, 1.46934545869, 2214.74308759620 ), { 4512 137 } ( 0.424, 4.98974282486, 3178.14579056760 ), { 4512 138 } ( 0.338, 2.72210106345, 2324.94940881560 ), { 4512 139 } ( 0.332, 0.37505564414, 2655.56837247380 ), { 4512 140 } ( 0.318, 6.11024720065, 934.94851496820 ), { 4512 141 } ( 0.405, 3.51005860013, 2751.54759969160 ), { 4512 142 } ( 0.388, 5.00609647265, 2015.67108615980 ), { 4512 143 } ( 0.424, 4.29668654117, 5753.38488489680 ), { 4512 144 } ( 0.328, 2.35571531981, 1251.34038462480 ), { 4512 145 } ( 0.316, 0.16949503062, 1279.79457262800 ), { 4512 146 } ( 0.345, 2.89328206121, 2957.73314812880 ), { 4512 147 } ( 0.303, 1.63964826684, 2428.04218303420 ), { 4512 148 } ( 0.328, 3.36132375845, 1141.13406340540 ), { 4512 149 } ( 0.294, 2.48947693371, 2641.34127847220 ), { 4512 150 } ( 0.350, 1.50537240918, 2317.83586181480 ), { 4512 151 } ( 0.287, 1.69638214958, 2420.92863603340 ), { 4512 152 } ( 0.272, 0.27466529753, 319.57326339430 ), { 4512 153 } ( 0.303, 2.43034117616, 70.84944530420 ), { 4512 154 } ( 0.251, 0.43544711316, 3259.89792378380 ), { 4512 155 } ( 0.224, 4.49752269293, 5223.69391980220 ), { 4512 156 } ( 0.272, 2.98590404673, 1457.52593306200 ), { 4512 157 } ( 0.228, 5.47896916415, 1603.29998928540 ), { 4512 158 } ( 0.288, 2.30146999217, 2854.64037391020 ), { 4512 159 } ( 0.207, 5.94297320087, 9153.90361602180 ), { 4512 160 } ( 0.243, 1.58604251447, 2744.43405269080 ), { 4512 161 } ( 0.228, 1.28182702946, 2310.72231481400 ), { 4512 162 } ( 0.224, 1.28623905132, 3060.82592234740 ), { 4512 163 } ( 0.222, 0.63265553397, 3163.91869656600 ), { 4512 164 } ( 0.242, 2.52382905368, 3274.12501778540 ), { 4512 165 } ( 0.188, 6.00513627145, 92.04707395470 ), { 4512 166 } ( 0.239, 1.93897157244, 2413.81508903260 ), { 4512 167 } ( 0.214, 1.14529237568, 2531.13495725280 ), { 4512 168 } ( 0.200, 3.42280996072, 99.16062095550 ), { 4512 169 } ( 0.179, 0.53892926207, 2207.62954059540 ), { 4512 170 } ( 0.177, 5.56545270243, 2332.06295581640 ), { 4512 171 } ( 0.172, 1.38604067808, 945.99421523210 ), { 4512 172 } ( 0.203, 0.41899069603, 2840.41327990860 ), { 4512 173 } ( 0.231, 2.26353330460, 2097.42321937600 ), { 4512 174 } ( 0.228, 3.82701076821, 113.38771495710 ), { 4512 175 } ( 0.165, 4.08776703733, 6283.07584999140 ), { 4512 176 } ( 0.202, 3.30429764992, 3067.93946934820 ), { 4512 177 } ( 0.224, 3.69285208525, 2435.15573003500 ), { 4512 178 } ( 0.214, 2.55756944911, 2538.24850425360 ), { 4512 179 } ( 0.203, 2.24205059922, 67.66805156650 ), { 4512 180 } ( 0.152, 5.48122906518, 10213.28554621100 ), { 4512 181 } ( 0.191, 2.68685722531, 1773.91780271860 ), { 4512 182 } ( 0.189, 2.95184620359, 732.69511979410 ), { 4512 183 } ( 0.149, 1.98737542735, 1049.08698945070 ), { 4512 184 } ( 0.163, 1.24084734609, 3053.71237534660 ), { 4512 185 } ( 0.171, 2.34210749987, 1354.43315884340 ), { 4512 186 } ( 0.112, 5.77407285790, 547.85021235930 ), { 4512 187 } ( 0.124, 0.14001204498, 860.30992875280 ), { 4512 188 } ( 0.086, 1.26924601636, 511.53171782990 ), { 4512 189 } ( 0.114, 5.15982838070, 1592.25428902150 ), { 4512 190 } ( 0.091, 1.48896790758, 1567.73225428140 ), { 4512 191 } ( 0.086, 4.34444949905, 1069.67687092770 ) (*$endif *) ); (*@\\\000000041B*) (*@/// vsop87_jup_l3:array[0..108,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_jup_l3:array[0.. 38,0..2] of extended = ( (*$else *) vsop87_jup_l3:array[0..108,0..2] of extended = ( (*$endif *) { 4513 1 } ( 6501.665, 2.59862880482, 7.11354700080 ), { 4513 2 } ( 1356.524, 1.34635886411, 529.69096509460 ), { 4513 3 } ( 470.716, 2.47503977883, 14.22709400160 ), { 4513 4 } ( 416.960, 3.24451243214, 536.80451209540 ), { 4513 5 } ( 352.851, 2.97360159003, 522.57741809380 ), { 4513 6 } ( 154.880, 2.07565585817, 1059.38193018920 ), { 4513 7 } ( 86.771, 2.51431584316, 515.46387109300 ), { 4513 8 } ( 33.538, 3.82633794497, 1066.49547719000 ), { 4513 9 } ( 44.378, 0.00000000000, 0.00000000000 ), { 4513 10 } ( 22.644, 2.98231326774, 543.91805909620 ), { 4513 11 } ( 23.737, 1.27667172313, 412.37109687440 ), { 4513 12 } ( 28.457, 2.44754756058, 206.18554843720 ), { 4513 13 } ( 19.798, 2.10099934005, 639.89728631400 ), { 4513 14 } ( 19.740, 1.40255938973, 419.48464387520 ), { 4513 15 } ( 18.768, 1.59368403500, 103.09277421860 ), { 4513 16 } ( 17.033, 2.30214681202, 21.34064100240 ), { 4513 17 } ( 16.774, 2.59821460673, 1589.07289528380 ), { 4513 18 } ( 16.214, 3.14521117299, 625.67019231240 ), { 4513 19 } ( 16.055, 3.36030126297, 1052.26838318840 ), { 4513 20 } ( 13.392, 2.75973892202, 95.97922721780 ), { 4513 21 } ( 13.234, 2.53862244340, 199.07200143640 ), { 4513 22 } ( 12.611, 6.26578110400, 426.59819087600 ), { 4513 23 } ( 8.637, 2.26563256289, 110.20632121940 ), { 4513 24 } ( 6.725, 3.42566433316, 309.27832265580 ), { 4513 25 } ( 8.701, 1.76334960737, 10.29494073850 ), { 4513 26 } ( 6.527, 4.03869562907, 728.76296653100 ), { 4513 27 } ( 5.368, 5.25196153539, 323.50541665740 ), { 4513 28 } ( 5.675, 2.52096417685, 508.35032409220 ), { 4513 29 } ( 5.399, 2.91184687105, 1045.15483618760 ), { 4513 30 } ( 3.996, 4.30290261177, 88.86568021700 ), { 4513 31 } ( 3.857, 3.52381361552, 302.16477565500 ), { 4513 32 } ( 3.774, 4.09125315146, 735.87651353180 ), { 4513 33 } ( 3.269, 1.43175991274, 956.28915597060 ), { 4513 34 } ( 2.783, 4.35817507670, 1596.18644228460 ), { 4513 35 } ( 2.661, 1.25276590759, 213.29909543800 ), { 4513 36 } ( 2.553, 2.23785673285, 117.31986822020 ), { 4513 37 } ( 2.371, 2.89662409244, 742.99006053260 ), { 4513 38 } ( 2.656, 5.01505839848, 838.96928775040 ), (*$ifndef meeus *) { 4513 39 } ( 1.948, 2.77248294666, 1169.58825140860 ), (*$endif *) { 4513 40 } ( 2.279, 2.35581871230, 942.06206196900 ) (*$ifndef meeus *) , { 4513 41 } ( 1.474, 1.61011468581, 220.41264243880 ), { 4513 42 } ( 1.457, 3.09381959396, 2118.76386037840 ), { 4513 43 } ( 1.937, 5.01388256693, 831.85574074960 ), { 4513 44 } ( 1.585, 1.40097680805, 405.25754987360 ), { 4513 45 } ( 1.257, 3.97811260358, 1155.36115740700 ), { 4513 46 } ( 1.227, 3.45959919972, 1073.60902419080 ), { 4513 47 } ( 0.986, 3.39209446167, 532.87235883230 ), { 4513 48 } ( 0.942, 2.70200385825, 191.95845443560 ), { 4513 49 } ( 0.828, 1.48348768286, 632.78373931320 ), { 4513 50 } ( 0.797, 1.10706688850, 1162.47470440780 ), { 4513 51 } ( 0.822, 3.30295824153, 1258.45393162560 ), { 4513 52 } ( 0.710, 5.89798771980, 853.19638175200 ), { 4513 53 } ( 0.766, 3.66351539483, 1581.95934828300 ), { 4513 54 } ( 0.722, 3.74673245797, 433.71173787680 ), { 4513 55 } ( 0.663, 2.93063953915, 1574.84580128220 ), { 4513 56 } ( 0.658, 3.52797311863, 525.75881183150 ), { 4513 57 } ( 0.609, 4.14881313523, 721.64941953020 ), { 4513 58 } ( 0.598, 4.69454609357, 81.75213321620 ), { 4513 59 } ( 0.668, 1.96442971289, 1272.68102562720 ), { 4513 60 } ( 0.515, 1.57251270902, 949.17560896980 ), { 4513 61 } ( 0.658, 2.02329201466, 526.50957135690 ), { 4513 62 } ( 0.517, 4.35827478516, 1368.66025284500 ), { 4513 63 } ( 0.510, 4.95846155301, 1148.24761040620 ), { 4513 64 } ( 0.507, 4.31396370095, 330.61896365820 ), { 4513 65 } ( 0.567, 2.27813343743, 551.03160609700 ), { 4513 66 } ( 0.480, 3.86758235988, 1361.54670584420 ), { 4513 67 } ( 0.383, 0.24287136454, 611.44309831080 ), { 4513 68 } ( 0.434, 2.95461755540, 1038.04128918680 ), { 4513 69 } ( 0.377, 1.42957648215, 124.43341522100 ), { 4513 70 } ( 0.391, 4.07770324592, 1471.75302706360 ), { 4513 71 } ( 0.385, 4.70295179800, 519.39602435610 ), { 4513 72 } ( 0.428, 2.22472522305, 539.98590583310 ), { 4513 73 } ( 0.343, 4.83463725823, 2125.87740737920 ), { 4513 74 } ( 0.394, 4.52891996323, 1464.63948006280 ), { 4513 75 } ( 0.305, 2.02797683648, 1485.98012106520 ), { 4513 76 } ( 0.283, 0.97461612169, 1905.46476494040 ), { 4513 77 } ( 0.276, 3.83552772064, 1062.56332392690 ), { 4513 78 } ( 0.351, 2.06334334462, 533.62311835770 ), { 4513 79 } ( 0.304, 3.93228052293, 1685.05212250160 ), { 4513 80 } ( 0.322, 3.54763044791, 846.08283475120 ), { 4513 81 } ( 0.345, 4.18332148409, 1788.14489672020 ), { 4513 82 } ( 0.253, 3.12703531516, 1994.33044515740 ), { 4513 83 } ( 0.257, 1.05361498985, 1478.86657406440 ), { 4513 84 } ( 0.232, 1.69999081817, 1692.16566950240 ), { 4513 85 } ( 0.225, 2.51624149780, 1891.23767093880 ), { 4513 86 } ( 0.217, 4.58512911216, 963.40270297140 ), { 4513 87 } ( 0.277, 3.63353707701, 1677.93857550080 ), { 4513 88 } ( 0.242, 2.90163762388, 2310.72231481400 ), { 4513 89 } ( 0.211, 3.96419403991, 295.05122865420 ), { 4513 90 } ( 0.199, 5.17046500750, 618.55664531160 ), { 4513 91 } ( 0.256, 4.19052619061, 1781.03134971940 ), { 4513 92 } ( 0.192, 0.81556540966, 2221.85663459700 ), { 4513 93 } ( 0.187, 3.49895198981, 2648.45482547300 ), { 4513 94 } ( 0.208, 4.11838429822, 2097.42321937600 ), { 4513 95 } ( 0.183, 3.30680692414, 1699.27921650320 ), { 4513 96 } ( 0.231, 2.54516792766, 1375.77379984580 ), { 4513 97 } ( 0.189, 5.74277274755, 2627.11418447060 ), { 4513 98 } ( 0.214, 5.48031974537, 1354.43315884340 ), { 4513 99 } ( 0.220, 3.87471989410, 2104.53676637680 ), { 4513 100 } ( 0.171, 6.10827209399, 1382.88734684660 ), { 4513 101 } ( 0.184, 5.98415847544, 750.10360753340 ), { 4513 102 } ( 0.171, 5.25744961028, 824.74219374880 ), { 4513 103 } ( 0.151, 4.30799091626, 2001.44399215820 ), { 4513 104 } ( 0.140, 4.27089466070, 1265.56747862640 ), { 4513 105 } ( 0.097, 4.67188056608, 647.01083331480 ), { 4513 106 } ( 0.088, 2.43775210355, 440.82528487760 ), { 4513 107 } ( 0.075, 3.93105183253, 1055.44977692610 ), { 4513 108 } ( 0.079, 1.88533153220, 934.94851496820 ), { 4513 109 } ( 0.077, 3.80503143236, 1603.29998928540 ) (*$endif *) ); (*@\\\0000002F44*) (*@/// vsop87_jup_l4:array[0.. 44,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_jup_l4:array[0.. 18,0..2] of extended = ( (*$else *) vsop87_jup_l4:array[0.. 44,0..2] of extended = ( (*$endif *) { 4514 1 } ( 669.483, 0.85282421090, 7.11354700080 ), { 4514 2 } ( 99.961, 0.74258947751, 14.22709400160 ), { 4514 3 } ( 114.019, 3.14159265359, 0.00000000000 ), { 4514 4 } ( 50.024, 1.65346208248, 536.80451209540 ), { 4514 5 } ( 43.585, 5.82026386621, 529.69096509460 ), { 4514 6 } ( 31.813, 4.85829986650, 522.57741809380 ), { 4514 7 } ( 14.742, 4.29061635784, 515.46387109300 ), { 4514 8 } ( 8.899, 0.71478520741, 1059.38193018920 ), { 4514 9 } ( 4.957, 1.29502259434, 543.91805909620 ), { 4514 10 } ( 4.484, 2.31715516627, 1066.49547719000 ), { 4514 11 } ( 4.251, 0.48326797501, 21.34064100240 ), { 4514 12 } ( 3.100, 3.00245542678, 412.37109687440 ), { 4514 13 } ( 2.055, 0.39858940218, 639.89728631400 ), { 4514 14 } ( 1.762, 4.90536207307, 625.67019231240 ), { 4514 15 } ( 1.902, 4.25925620271, 199.07200143640 ), { 4514 16 } ( 1.695, 4.26147580803, 206.18554843720 ), { 4514 17 } ( 1.375, 5.25546955667, 1052.26838318840 ), { 4514 18 } ( 1.203, 4.71614633845, 95.97922721780 ), { 4514 19 } ( 1.086, 1.28604571172, 1589.07289528380 ) (*$ifndef meeus *) , { 4514 20 } ( 0.982, 4.77990073662, 1045.15483618760 ), { 4514 21 } ( 0.935, 6.05847062188, 88.86568021700 ), { 4514 22 } ( 0.916, 5.77537499431, 728.76296653100 ), { 4514 23 } ( 0.890, 4.55299189579, 426.59819087600 ), { 4514 24 } ( 0.784, 3.40161567950, 419.48464387520 ), { 4514 25 } ( 0.768, 3.54672049322, 103.09277421860 ), { 4514 26 } ( 0.670, 0.52223307700, 110.20632121940 ), { 4514 27 } ( 0.415, 5.22809480633, 302.16477565500 ), { 4514 28 } ( 0.393, 6.24184621807, 956.28915597060 ), { 4514 29 } ( 0.381, 5.25466966040, 309.27832265580 ), { 4514 30 } ( 0.421, 0.59561318533, 117.31986822020 ), { 4514 31 } ( 0.346, 4.78348312106, 508.35032409220 ), { 4514 32 } ( 0.319, 3.47979828725, 323.50541665740 ), { 4514 33 } ( 0.331, 2.95893485883, 1596.18644228460 ), { 4514 34 } ( 0.295, 4.32713459459, 942.06206196900 ), { 4514 35 } ( 0.319, 0.47990052824, 831.85574074960 ), { 4514 36 } ( 0.251, 1.79898001222, 1073.60902419080 ), { 4514 37 } ( 0.212, 0.43917684084, 220.41264243880 ), { 4514 38 } ( 0.188, 1.12654974776, 1169.58825140860 ), { 4514 39 } ( 0.188, 2.16135407548, 1361.54670584420 ), { 4514 40 } ( 0.180, 3.43266428069, 1148.24761040620 ), { 4514 41 } ( 0.164, 1.92864127211, 2118.76386037840 ), { 4514 42 } ( 0.157, 3.02963907392, 1272.68102562720 ), { 4514 43 } ( 0.093, 5.60436000012, 1581.95934828300 ), { 4514 44 } ( 0.085, 5.02317256200, 1155.36115740700 ), { 4514 45 } ( 0.075, 3.13198879608, 632.78373931320 ) (*$endif *) ); (*@\\\0000000601*) (*@/// vsop87_jup_l5:array[0.. 9,0..2] of extended = (...); *) (*$ifdef meeus *) vsop87_jup_l5:array[0.. 4,0..2] of extended = ( (*$else *) vsop87_jup_l5:array[0.. 9,0..2] of extended = ( (*$endif *) { 4515 1 } ( 49.577, 5.25658966184, 7.11354700080 ), { 4515 2 } ( 15.761, 5.25126837478, 14.22709400160 ), { 4515 3 } ( 4.343, 0.01461869263, 536.80451209540 ), { 4515 4 } ( 1.526, 1.09739911439, 522.57741809380 ), (*$ifndef meeus *) { 4515 5 } ( 0.728, 5.85949047619, 543.91805909620 ), { 4515 6 } ( 0.694, 0.87382487754, 515.46387109300 ), (*$endif *) { 4515 7 } ( 0.845, 3.14159265359, 0.00000000000 ) (*$ifndef meeus *) , { 4515 8 } ( 0.456, 0.81521692852, 1066.49547719000 ), { 4515 9 } ( 0.293, 5.62909357048, 1059.38193018920 ), { 4515 10 } ( 0.090, 0.21178119710, 529.69096509460 ) (*$endif *) ); (*@\\\000000020F*) begin WITH result do begin a:=0; b:=0; c:=0; case index of 0: if (nr>=low(vsop87_jup_l0)) and (nr<=high(vsop87_jup_l0)) then begin a:=vsop87_jup_l0[nr,0]; b:=vsop87_jup_l0[nr,1]; c:=vsop87_jup_l0[nr,2]; end; 1: if (nr>=low(vsop87_jup_l1)) and (nr<=high(vsop87_jup_l1)) then begin a:=vsop87_jup_l1[nr,0]; b:=vsop87_jup_l1[nr,1]; c:=vsop87_jup_l1[nr,2]; end; 2: if (nr>=low(vsop87_jup_l2)) and (nr<=high(vsop87_jup_l2)) then begin a:=vsop87_jup_l2[nr,0]; b:=vsop87_jup_l2[nr,1]; c:=vsop87_jup_l2[nr,2]; end; 3: if (nr>=low(vsop87_jup_l3)) and (nr<=high(vsop87_jup_l3)) then begin a:=vsop87_jup_l3[nr,0]; b:=vsop87_jup_l3[nr,1]; c:=vsop87_jup_l3[nr,2]; end; 4: if (nr>=low(vsop87_jup_l4)) and (nr<=high(vsop87_jup_l4)) then begin a:=vsop87_jup_l4[nr,0]; b:=vsop87_jup_l4[nr,1]; c:=vsop87_jup_l4[nr,2]; end; 5: if (nr>=low(vsop87_jup_l5)) and (nr<=high(vsop87_jup_l5)) then begin a:=vsop87_jup_l5[nr,0]; b:=vsop87_jup_l5[nr,1]; c:=vsop87_jup_l5[nr,2]; end; end; end; end; (*@\\\0000000801*) (*@\\\0000000345*) (*@\\\0002000A0C000A0C*) (*@/// initialization *) (*$ifdef delphi_1 *) begin (*$else *) initialization (*$endif *) datetime_2000_01_01:=Encodedate(2000,1,1); (*@\\\*) (*$ifdef delphi_ge_2 *) (*$warnings off *) (*$endif *) end. (*@\\\003D001205001205001101001201000011000F05*) ./udm.lrs0000644000175000017500000145735714576573022012505 0ustar anthonyanthonyLazarusResources.Add('MAINICON','ICO',[ #0#0#1#0#6#0#0#0#0#0#1#0' '#0#226#145#0#0'f'#0#0#0#128#128#0#0#1#0' '#0'('#8#1 +#0'H'#146#0#0'@@'#0#0#1#0' '#0'(B'#0#0'p'#154#1#0'00'#0#0#1#0' '#0#168'%'#0#0 +#152#220#1#0' '#0#0#1#0' '#0#168#16#0#0'@'#2#2#0#16#16#0#0#1#0' '#0'h'#4#0#0 +#232#18#2#0#137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#1#0#0#0#1#0#8#6#0#0#0'\r' +#168'f'#0#0#145#169'IDATx'#218#236']'#5#128#28#245#213#127#235'n'#231'w9I.N' +#136#144#4#139#17#220'['#220#221#138';!'#184'|'#180#148#2#197'Kq'#13'R('#20 +'(V'#180#197#3#9'!'#144#144#16#187#156#219#202#173#251'~'#239#253'gfo'#246'r' +'~'#187';{'#242#131#201#236#173#204#204#202#251#253#159'?'#25#140'a'#12'c'#24 +#181#144'I}'#1'c'#24#195#24#164#195#24#1#140'a'#12#163#24'c'#4'0'#134'1'#140 +'b'#140#17#192#24#198'0'#138'1F'#0'c'#24#195'('#198#24#1#140'"'#140#155'}2}' +#223#6#220'L'#184#25'q'#11#227#230#161#173#225#167#21#17#169#175'o'#12#217 +#199#24#1#12'c'#160'@'#155'q7'#21#183'i'#184'M'#198#173#8'8'#225'N'#217'd2' +#153'p'#155#132#191#167#239'<'#132#155''''#145'H0B'#224'7'#175#232'v'#7'n' +#219'p'#219#128#219'F'#220'j'#145'4'#18'R'#127#6'c'#24#26#198#8' '#199#129'B' +'.'#199#221'x'#224#132'|'#170#176#161'P'#211#223'%='#189'N'#214#195'7+'#235 +#230'+O@'#207'r'#156#232#249#161#0#146#197'&'#232'$'#132#228#134#196#224#145 +#250's'#27'C'#255'0F'#0'9'#6#20'x'#18#234#189'q'#219#7#183'=P'#208'ie'#215 +#136#159'#'#22'nA'#160'e'#194#157#226#199'DO'#20'nwG'#12'b!O'#240#127'$R'#238 +#236#230'q'#209#157']I'#2#159#211#136#187#181#184'}'#198'o'#171#145#20'bR' +#127#182'c'#216#17'c'#4' 1P'#224#11'p'#183#20'8'#161#223#27#5'u'#186#240'X' +#167'L'#239'('#228't'#155#219#0#228#244#12#185#140'{'#158#140'{'#157#140#191 +'!'#235#250'|'#232'<'#166' '#196#130#252#146'ps'#27'pRM'#255#203#184#191#197 +#143#209#235#196#247'AbGb'#232'B'#10#29#248#248#255#160#147#16'~'#26'3'#31'r' +#3'c'#4#144'e'#160#192'[p'#183#23#240#171'<'#10#229'L'#224#191#7#177#192#203 +'8)'#6#185'\'#158#20'h'#185#156#187'_.'#227#4#158#30#163#219#10'z'#142#188 +#203#227#252#30'D'#247#201#21#10#220'+AF{P@\'#22#135'D,'#134#194#26#131'8' +#238#227#241#24'/'#216'qn'#31'O'#0#222#194#251#241#223'8@'#28#255#137#199#185 +#191#227#137#4#187#157#224#239'#'#2#136''''#186''''#134'nH'#193#129#247#127 +#14''#193#238#139#11'['#146'(R'#9#161#139#217'A&' +#195#10#220#158'G2'#248'E'#234#239'k4a'#140#0'2'#4#20'z%'#238#246#7'N'#232 +#127#143'{'#29#221'/'#172#230#226#21'^,'#240'$'#172'$'#224'J'#165#2#148#180 +'W)A'#163#214'3'#1#215#144#176'ku'#160#209#242'B'#175'V'#129#10#159#175'T' +#202#217's'#233'u'#10#185'p'#172'.'#26#129#130'3'#21#184#251#216#149'p'#23 +#202'Vn'#224'Vo'#129#4#226#156#128#198'x'#1#142#197'8'#161#142'E'#19#16'E!' +#143'D'#227#16'Eb'#8'!'#9#132#131'~n'#11's'#251#16'#'#135'0>/'#134#207#225'6' +#129#16#24'A'#136#8#129#206#215'U;'#192#251#215#224#238#5#220'^B2h'#150#250 +'{'#28#233#24'#'#128'4'#3#5#127'.'#238'N'#197#237'D'#20#190'b'#186'O,'#244 +#130#170#174#144#209'*.c'#2#175#228#133'^'#173'T'#162'P'#171'Ao'#178#130'^o' +#3#157#209#10'Z'#29#10#187'J'#129#171'=nL'#208#233#182#156#221'V)'#21#201'=#' +#11'%G'#0'D$r9g'#247#211#185#146'&'#3#179#8'd)'#206'AnE'#134#20'5'#30'e'#149 +#187#29#231'6"'#128'h'#156#132'9'#158'$'#128'H'#132#246'1'#238#182'h'#31#198 +'}8'#24#130#128#175#3#252'^'''#248'}N'#8#5'}'#236'1'#129#16#162#177#174#132 +#16'g'#218#1#153#24#220'5'#177']'#12#175#225'c'#224#200#224'M$'#3#191#212#223 +#237'H'#196#24#1#164#1'('#244#21#184';'#25#183'SQ'#184'v'#162#251#186#21'z~' +#133#231'Vv'#18'^'#20'x'#149#10#244'('#232'z'#163#13#12#6#220#27#204#184#226 +#227#170#175'Q'#130'V'#173'`'#194'O'#127#171'U'#188#192#171':'#133'^'#197#142 +#195#173#254't'#31'g&p'#171#127#210#148#160#235#224#29#132#130#250#159#18#9 +#224#205#0#178#245#133#21#153#217#251#252#223'$'#155'$'#160#209'8'#183#250'w' +#146#0#10'2'#145#0#222#14'G8'#2#160'=m'#161'H'#20#205#132#24#4#195#220#237'@' +' '#0'~'#143#139#145#1#145'B'#136#204#8#188#159'#'#131#24'gJ'#224'qbq'#193 +#223#176#131#153#224'E2'#248'''pd@>'#131#184#212#223#249'H'#193#24#1#12#1'(' +#248#243'pw='#10#219#17#192'-'#174#12'rN'#210'8'#149'\&O'#170#244'*'#21#9#178 +#146#9#188#193'd'#195'}'#30'nf'#208'jT'#160#19#132#30'7'#29#19'~%G'#4'<'#9 +#168#149#220#202'O'#171'<'#169#253#10#165#12#148'ra'#213#167's'#164#10'>]'#2 +'wA'#188#192#11#209#129'D*'#1'$U'#239#164'g'#159#255#139#183#215#227#188'3P' +#16#206'(o'#14#16#9#196#4'2Hj'#5#164#1#160#208#147#224#135#163'l'#31#8'E!(' +#222'P'#240#253'>'#31#4#188'.'#240'!'#25#248'<'#14'4'#27#130#248#218'(#'#5'F' +#4#140#12'x"'#232#226'3'#192#191')'#25#233'/'#184'='#131'D'#16#146#250'70' +#220'1F'#0#131#0#10#254'"'#220#221#128#194'v'#16#253#157'\'#237'y'#207''#198#147'BLl'#30#136#136#0#133'>'#16'N%'#1#250 +';'#16#196'-'#20#129'` '#2#30#183#3'<'#174'f'#240'x'#218'Q;'#8'32 '#13'C'#236 +'d'#20'L'#4#17#17#144#227#240'^'#220#30'C"'#240'I'#253#155#24#174#24'#'#128#1 +#0#5#159#156'z7'#162'0-'#161#191#185#24'<-'#181#220'j'#159'j'#203#163'0'#235 +'t`'#182#20#131#201'V'#2'F'#147#25#244'Z'#21#24'p'#163#189'^G'#130#174'b'#194 +#175#21'V|'#141#130#9'='#17#6#19#252#164#131#143#183#229#153#195#16'D6=''' +#224#178#174#241#254'.'#215'-'#147#13#236'k'#22''''#1#137's'#4#128#251#159'#' +#2#193'THtF'#16#146#132'@'#26'B$'#158'4'#11'B'#145'N'#141' '#200#147'A '#24#1 +'?'#146#128#31'I'#192#239#167#219#184#5#130#224'v'#181#129#219#217#194'i'#6 +','#242#16'c'#14#199#164#137#16#139#167'h'#5'x'#187#29'/'#233'~'#220#30'F"' +#232#144#250'72'#220'0F'#0'}'#128'/'#160#249#29'p+'#254#174't'#31#23'^'#239 +#12#209'1!Ur'#234#189'V'#171#1#147#165#136#173#244'&K'#30'/'#236'j0'#232'T' +#201'M'#199#147#128'V'#195#169#248#156#208'+83A'#201#31'O.'#178#231'{'#17'v' +#254'&'#183#239'A'#208#7'"'#255'='#165#254'v%'#133'D'#167#154#176#3')p^'#255 +#4#243#27#196'D'#142'C'#210#10#194#188'_'#128#153#7'A'#142#8'|'#129'0n'#17 +#182#249'i'#143'Z'#128#23#205#4#15#18#1#145#129#223#239#193#215'E'#153'f'#192 +#162#11#188#19#177#139#175#128#146#141#30#193#253'}H'#4#237'R'#255'n'#134#11 +#198#8#160#7#240'9'#248#199#1'g'#227'S'#178#206#14#130#175#18#236'z\'#189#13 +'&+X'#243#199#161#224#23#162#144#235'P'#232'U`'#228#5#158#8#192#168#231#132 +'^'''#8'>'#9#189'Z'#145't'#230'q'#26#132'8'#254'/J'#254#17'.'#170#15'u>['#232 +#202#17']'#201#128#249#14#4#13'A'#228'?`'#209#4'2'#17'b'#228','#140'32 '#159 +#0#167#13#136#8#0'5'#2'/'#146#130#159#255#219#227'qA'#135#179#25':'#28#141'h' +'R'#132'92Hj'#5';'#16#129#31#207#255#24#238#239'A"h'#148#224#227#25'V'#24'#' +#128'n'#128#194#191#27#238#30'EA'#163#144'^'#138#224'+yU_'#141'6'#188#6'7' +#163'9'#15'l'#133#149'`'#177#230#163#176#227'J'#143#130'n'#212#171#217'mN' +#232#213'('#244'h'#235'k95_'#205'<'#250#188#7'_'#217#25#183#239'N'#173'g'#231 +#22'.j8|S]'#202#7'RR'#135'E'#230'B,'#193#231#20#240#161'Cf"'#136'|'#3'$'#244 +'^A+'#240#163'6 '#236'}~p'#180#213'!'#17'4'#224#243#130#140#8':#'#9#169'D' +#128#231#14#224'%'#220#137#219'_'#198#156#133'=c8'#252#172#178#6#20#252'<' +#220#221#137#194'w.'#240'2'#152'"'#248#188#154#175'A'#219#221'd)`'#130'oE5' +#223'hP3'#161'7'#25'4L'#232#13#188#202#159#180#241#153#224#139#156'y'#188'z/' +#8#190'8'#127'?'#165#208'g'#128#182'{'#174#161''''#167'b2'#225#136'O2'#226 +#180#2'!'#140'H>'#130'X'#167#143#0#137#192'C'#194#207#8' '#12'n'#220'{'#188 +'~p'#182#215#131#203'^'#15'A'#127#144#249#10'z!'#2#170'X'#188#24'I'#224'?R' +#127#30#185#136#225#253#11'K'#19'x;'#255','#220#238'B'#161#203#23#156'{2'#133 +#160#234's+'#183#22'W|'#147#181#8#242#138'+'#193'l'#182#129#137#9'='''#248'&' +'#'#238'Q'#240'uL'#229'W'#177#24#190#134'9'#243'RU|qr'#14#8#222'z'#254':d#' +#248#235#216#161'z0'#25'f'#228'3'#17#197'&'#2'i'#5'Q^+ '#18#8'F'#152#22#224 +#245#133#192'C$'#224'#R'#8#129#215#27#0#167#189#1#156#168#21'P'#174'A('#140 +'D@9'#9'T'#215#192';'#11#227#157#213#141#175#225#238#10'$'#130#6#169'?'#139 +'\'#194#200#253#197#245#19'('#252#187#224#238'o('#152'{'#136#195'y,'#227#142 +'6'#18'|T'#227'-'#214#18#176#21'U'#160#224'['#153#208#155'I'#232'y'#225'g'#26 +#128#150#19'|q'#248'N'#156#158'+'#8'>'#147#249#212'z'#222#209#9'Q'#232'1'#233 +'7'#224#137#128#204#132#8#159'tDQ'#0#166#17#132#200'9'#136#155#143#211#8#220 +'H'#6'D'#4#28')'#4#145#8#26#145#8'j'#193#239#247'!qt'#18#1#167'm'#196#5'm' +#128#26#156#220#138#219#3'H'#4'Q'#169'?'#130'\'#192'h'#253#249#9'Uyw'#160'0^' +#128'{'#133#160#238#179'"'#27#222#185'G'#9':'#228#205'/('#169'F'#193'71a'#239 +'I'#240#5#199#30'K'#203'U'#202'S'#236'zN'#232#187#177#235#199#176'C'#30'BB' +#172#25#176#236'CN+'#8'G'#163#157'D'#192#251#4'8m'#128'#'#2#143'@'#4'm'#13 +#224'h'#169'A'#205'!'#192#136' '#194#155#6']'#204#2'*8'#186#16'I'#224#11#169 +#223#191#212#24#149#191'E'#20#254'Spw'#15#229#234'''Km'#21'|J-+'#190'A;'#222 +'hB'#193#159#4#182#252'"&'#244'f#'''#252'f^'#240#13#188'W_'#219'e'#197'O&' +#231#240'R'#223#25#162#147#250']'#231'>D'#193#4'n/'#242#21'$S'#144'{'#210#8 +#188'!'#232' '#18#160'}'#135#23#218#155#183#130#203#217#4#193'`'#152#249#21 +#136#8#226#172#246' %'#153#232'y'#220']'#141'D'#208'&'#245'{'#151#10#163#234 +'g'#137#130'O'#141'0'#31'G'#193'?'#145#254#22'Vh'#5#191#234#171'U*'#180#225 +'5'#204#185'WP2'#30','#6#29'XL'#26#176#24'9'#2#160'U'#159#9#190'F'#136#225'+' +'9'#167#30#139#219#11'y'#255'\'#213']'#231'''<'#170'>'#226#244'A'#228'@L@gM' +#2#249#9'"'#2#17#136#162#6#130'Y'#208#225#9'22'#160#205#225'h'#135#246#166'M' +'H'#10#29#156'6'#192#242#8#226#156#127#160'S'#27#160'P'#225#137'H'#2#255#147 +#250'-K'#129'Q'#243#235'D'#225#159#141#187#127#160#144'N'#17'V}'#5#159'i'#199 ,#169#251'h'#215'['#11#160#176't2'#218#251'f&'#244'V'#163#22#204'D'#0#6'-S' +#251'){'#143#4#159#203#244#227#146'u'#196'e'#183'];'#248#140'a'#232#16#151#11 +#11#230'A,'#193#167#30'G'#184#228'"'#230','#196#205#195#155#5#29#222' '#18'A' +#136#237#221'H'#8#237#173#181#224'l'#217#14#254'`'#16'B'#225'0'#159'f'#28'Oj' +#24#192'U'#30#222#130#251';G['#161#209#168#248#165#162#240#159#135#187#7'PH' +#181'2'#190#6'_H'#217#165#144#158#222'`'#196#21#127'"'#228#229#151#178#149 +#158'V}+['#249'9'#193'7'#232#213'l'#213#167#172'='#242#234's'#9';\'#201#173 +'Pp'#195'>'#204'Q'#241'iJ'#131#206'DDn'#229'N'#166#31#147'F'#16#229#170#16')' +#143#128#210#138#189#188'I'#224#18#17'A'#135#219#11'mM'#155#161#195#209#130 +'&'#4#146#0'%'#19#9#209#130'Nm'#224'#<'#193')H'#2#173'R'#191#223'laD'#255'd' +#249'N<'#143#137'U~'#193#214#167'D'#30#29#174#250'yE'#168#238#23'O'#0#179'Y' +#199#4'>'#185#242#27'9[_H'#217'e'#169#186#138#212#226#155#222#26'm'#142'!3' +#224#139#21#147#14#195'd>A'#148'K7'#230'2'#11'9"'#224#28#132'H'#4'n$'#0#242 +#13#144'Y`o'#133#246#230'M'#224#243'x:'#181#129'h\'#28')h'#194'3'#156#140'$' +#240#153#212#239'5'#27#24#177'?]^'#229#127#141#186#234#138'='#252#172#180'VE' +'N>#'#148#148#239#4'V[>'#191#226'k'#25#1#144#202'O'#241'}'#178#245'uj~'#213 +#23'j'#237'E^}'#246#225#141#216'O/'#247#145'$'#2#232#236'AH)'#199'Q'#190#0 +#137#10#142#168#208#200#231#227#136#128#132#223#229#9'2'#31'A'#135''''#0#173 +#13#191#177#208'a'#144'O-'#142'&C'#134#236#200#184'K'#220#142#251#255#27#233 +'&'#193#136#252#9#163#240#255#1'w'#247#139'U~'#174#147#14#197#244'U`'#177#21 +'Cq'#249'4'#176#153#13'('#252'Z&'#252#164#242's'#153'|\'#234'.'#173#250'\5' +#30#223'aG&'#235'6'#23#127#12#210'"'#145'd'#1#224#27#152#242'D'#16#137#179 +#162'#"'#2#31#239'$'#228#132'?'#4'N'#158#8#236'm'#13#208#214#248#27'j'#11'A' +#150'D$D'#10'D&'#193#167#192'i'#3'#'#182'5'#217#136#250'%'#243'*?y'#249'O' +#160#191#197'*'#191'FM'#130#173#129#252#210'j(,'#169'bj'#190#213#162#5#155'I' +#155#12#241#137#227#249'B'#18'Ogn>$k'#236#199#144'['#160#214#229#157#185#4 +#188'Y'#192#218#152'qY'#133#212#153'('#192#215#23'0'#223#0#145#128';'#128#166 +#1#238#157'Nh'#169'_'#15'^O'#7#231#27#216#209'$h'#1#206'/'#240#177#212#239'3' +#19#24'1'#191'f'#20'~'#26#139#245#30#10#255#188#174'I=\\'#159'T'#254#25'`' +#203#207'c+'#190#205#164#3#171'Y'#203#135#247#212#172'XGH'#221'e'#13'7'#146 +#234#190'h'#229#151#250'M'#142#161'G'#136'|'#132#220','#131'8'#223#201'('#193 +'7)'#9'sNB'#210#6#220#188'9@'#190#1#167#155#246#254#164'I'#16#224#27#146'DY' +#155#244'$'#9'P'#214#224#217'H'#2#207'K'#253'>'#211#141#17#241#155'F'#225#159 +#128#187#255#160#240'O'#18#132#159'b'#243#228#229'gi'#188#182'"T'#249#167#163 +#192#163#202#143'B'#159#135#155#133'_'#249#141'|}'#190#154'o'#192'A'#141':' +#229'2Q'#231#220#17#241#9#141'B'#240#13'L'#200#128#23'Z'#153#9#185#3'T['#224 +#241#134#185'('#1'j'#1#14#212#6#220#168#21#180#183#212'C['#243'&'#214#152#132 +#202#142#133#156#1#222'/'#128'<'#144'X'#134'$p'#143#212'o-'#157#24#246'?o' +#222#217#247#1#10#127#137#216#222#167#226#29#157'V'#203#210'x'#11'H'#229''';' +#223#204#169#252't'#155'e'#243#233':='#252#201#10'='#161':O'#234'76'#134#161 +'#'#193#165#26#11'-'#200#163#188#147#144#186#19#177#188#1'_8'#169#13'8'#153 +'F'#16'@'#147#160#3'Z'#234#214'1'#147#128#146#135'('#5'YD'#2't'#172#187'qw' +#237'H'#153'l4'#172#127#231'('#252'4a'#231'-'#20'~'#139' '#252','#163#143'T~' +#131#1#138'+f@^^A'#167#224#155#185'0'#31#9'?+'#213#229#227#250'B'#231#29#232 +'R'#142';'#134#145#1'q'#163#211'd'#164' '#202#165#19#11#225'Br'#14':'#220#28 +#9#208#214'Z'#191#1'\'#246'&'#212#24#194','#170#16''''#191#0'$M'#130#231#240 +#128#231#140#132#130#162'a'#251'sG'#225'?'#10'w/'#161#240'k'#132#240#28#169 +#252'j'#170#213'7'#153#160#164'r6'#216'lff'#235#219#204#218#164#189'/'#180 +#228'R'#243#173#183#200#209''''#212#225#143#9#255#200#133#144'H'#148'lJ'#130 +'&A'#24#237#252#16'_n'#204#162#4'nN'#27' '#147#128#162#4'-'#13#155#192#209'Z' +#203#234#9'('#162' '#174'%@'#18#248'7'#30#238'8$'#129#128#212#239'm('#24#150 +'?y>'#204'G%'#188'r'#193#211'/8'#251#168#15'_i'#213'L'#176'YM'#144'G'#206'>' +#139'.'#25#226#211#179'&'#29#202'd'#223'='#161'D'#151#251' '#134#229'G1'#134 +#1'B<'#216'Th^J+'#188'@'#2'd'#18#144'c'#208#217#17'`'#251#182#230#237#208#214 +#180#9#130#129'03'#7#186'D'#8#190#194'C'#30#142'$'#224#148#250'}'#13#22#195 +#238'W'#143#194#127'3'#10#238'mt['#16'~5_'#193'g'#177#22'@i'#229'L'#176'Z' +#245'L'#240#137#0#200#233#199#132#159'o'#201'%'#30#160#193'>'#128#177'e'#127 +#212'A<'#2']'#156'' +#129#253#135#147'c0'#231#197#1#133#159#198'o'#189#141#178#175#18#219#252':' +#173#26#10#203#166'@Aq%'#243#240''''#133#159'<'#253'$'#252#201#10'>'#174'tW6' +#22#219#135#223#29'0'#11#2#254#29#167'hi'#181':'#184#231#161#151'`'#234#244 +'YR_'#162'd'#224'9 '#233#23#136'D'#184#209'f'#228#28'd'#21#133#148''''#208#17 +'d'#161'B'#167#203#141'$'#240#19'x<'#29#221#145#192';x'#168'#'#145#4'bR'#191 +#167#254' '#167'e'#130#239#207#255')'#10#191'A,'#252#180#242#23#148'N'#130 +#162#210#241'I'#225#23'r'#250#5#225#231'Fi'#203'E='#249'r'#250#173'f'#5'''' +#31#181#16#218#219#186#175'kQ('#148'p'#239'#'#175#192#244#25#187'H}'#153#146 +'AhP'#10#2#9'D'#185#225'%b'#18'pv'#8#155#27#154'j'#214#128#215#227'fm'#201 +#187'8'#6#159'F'#2'8['#234#247#211#31#228#172'T'#160#240'O'#193#221'W('#184#5 +'B'#146#143' '#252#249'EU'#156#205#207#132#159#203#235'gi'#189'z.'#179#143#28 +#131#138#148#148'^'#24#157'F'#127#23','#191#252#20#248'i'#245#183'=>N$p'#215 +#131'/'#194#140#153#243#165#190'T'#233#144#28'f'#2#201#129#167'D'#2#212#127 +#144#230#18#8'$@'#230#128#195#233'B'#18#248#17'|>'#127'2:'#192'&'#21'q'#14 +#198'?#'#9'\'''#245#219#233#11'9)'#21'('#252#165#184#251#26#133#127#188'8' +#195#143'9'#252#10#199'AI'#197'N,'#185''''#143#247#246#179#236'>'#157#154#13 +#215'd'#194'/j'#211#149#179'oR'#2#216#219'Z'#224#180#227#150#224#15#180#231 +#18'w'#185'B'#1'w'#222#251'<'#204#156#179#155#212#151'+'#9#196#195'P'#133#206 +'CD'#2'!VC'#16'e'#221#135#133'""'#202#21' '#199' i'#2#1#170#31#160#241#230 +#204#28'H'#8'$@s'#8#238#151#250'='#245#134#156#147#13#190']'#247#255'Pxg%' +#133#31#127#148#26#190#168#167#140#226#252#164#242'S'#156#223',R'#251#213'JP' +#170#184'>}c!'#190#158'q'#255']'#215#194''''#31#190#217#235's'#228'r'#5#252 +#249#129#21'h'#14#204#149#250'r%'#133#16'*'#20'r'#5'h'#132#25#149#21#139#205 +#1#210#4#236#237#173#208#178#253'g'#8#132#130#140'('#132#218#129#4'7R'#249 +#148#134#159'^zI'#234#247#210#19'rJJP'#248#201#21#253#17#141#223#22#170#250 +#148'|'#134#159#217#146#7'%'#19'fC'#158#201#0'6'#171#150#197#250#217#202#143 +#194#175#213'(S'#187#246#228#212#187#202'-'#196#227'Q8'#254#176'y'#16#194#31 +'ko'#208'hu'#240#220'k_'#130'^o'#148#250#146'%'#133#216'1('#152#3#204''''#224 +#237'L'#27'&'#231' '#151','#180#129#235'0'#20'I!'#129#8#30#225'0$'#129#156#28 +'M'#150'S'#162#130#4#240#16#10#255#197#226#146'^'#141#138'r'#251'-P:a'#23'\' +#249#141'l'#213'g'#194'o'#226'V~-'#133#250'D'#243#246'r'#234#13#229'('#222 +#254#231#179#240#244#223#255#220#231#243#202'+'#171#225#225#167#222#147#250 +'r%Grr'#17#175#9#4#187#144#128#144''''#208#218'T'#3#246#166#205#157'$'#208 +#217'O'#192#145'H'#196'vi\'#251'J'#173#212#239#165'+rF^'#248#226#158#127#138 +#19'}'#168'A'#7'5'#242'('#173#154#11'y63W'#213#199#215#242#147#195#143'*'#250 +#132#129#28#178#177#149#127'@8'#251#132'%'#224't'#244'='#15'c'#191#131#143 +#133#11#175#184']'#234#203#149#28'B1'#17'9'#249'"|'#187'1.O '#204'J'#137#137 +#4':P'#19'hi'#220#4#246#214#237#16#162#198'"'#169'ME'#190#142#4#28'K['#127'{' +'?"'#245'{'#17'#''D'#134'o'#232#241'#'#149#245#10#225'>'#18'~'#157'^'#15#165 +#227'w'#1#155#205#154't'#248'Y'#153#218#175#225#235#248';'#213'~!'#183#127#12 +#253#195'/?}'#7#183',;'#163'_'#207#189#234#134#251'`'#193#146#131#164#190'd' +#201#145#28'Y'#22#227#204#1#210#4'|B'#155#177'dw'#161' 4'#213#173#131#14#190 +#148'85<'#24#191#27'M'#129'k!e'#144#186#180#144'\jx'#187#255'K'#20#254']'#187 +#134#251#138'+w'#134#130#130#210'd'#172#191#179'}'#151#138#235#207#207#183 +#232#22#6'}'#140'a`8'#239#228#165#168#5#244#221#2#159#194#131#15'='#253#1#20 +#22#149'I}'#201#146#131'K'#27#230'5'#1#190#185#8'M.'#166#218#1#18'~'#135'''' +#192'Z'#140'5m'#253#17'' +#202#242'3'#25#185#149#159#230#241'q'#133'=\'#168'Oj'#6#251#237#215#31#225 +#230'kNM'#185#143'H'#224#222#199#222#134#210#210'*'#137#175#174'wl\'#183#26 +'n'#185#246#180'~?'#127#238#174'{'#193#178'['#30#145#250#178's'#2#180'|s-' +#200#169#187#16#154#3'An"'#17#235','#212#17#20#149#17#175'Ov'#27#22#249#3#190 ,#12'y['#246'n'#223#242#177#228#29#133'$'#147#31#20'~'#146#14#178#251'm'#226 +'4_='#218#253'e'#19#230#161#221'oa'#130#207'9'#253'h'#229'W'#179#22'^\I'#175 +'<9r[j'#220'y'#243'y'#240#243#143#223#236'p'#127'qi'#5#220#247'xnz'#208#219 +'['#155#224#213#23#30#128'5?|'#1'>'#175'{@'#175'='#243#130#27'`'#255'CN'#144 +#250'-H'#14'![0'#193#135#7'I'#192'i"'#145#208'^'#140'5'#20'Am'#160#185#238'W' +'p'#182#215'C8'#196'u'#26'&'#194#224#15'pg'#253'O+n'#0#137'M'#1'ID'#8#133'_' +#5'\'#178#207#30#226'L?'#157'F'#3'E'#21';'#163#250'_'#146'l'#229'%T'#246'Q3' +#15#214#194'K)'#227#166#239#230#130#244'#'#206'8z.D#;:v'#149'J'#21'<'#251#198 +'j'#169'//'#137'p8'#12#239#188#254#4#252#247#227'7'#193#209#222'2'#232#227 +#200#240#187':'#253#188#235'`'#191'1'#18'H'#166#13#11#227#203'Y'#162#144'P7' +#144#236'%'#224'GS`5x'#221#174#29#252#1'h1'#30'R'#183'f'#197#135' !'#9'HE'#0 +'w'#161#240'/'#163#219#10#161#139#175'F'#9#249#133#227#161#168'|2o'#247'wv' +#239'e'#225#190'd'''#159#220'q'#248#213'l^'#15'7]'#221#179' <'#241#202#183 +#160#213#234'%'#189#198'`'#208#15#127#185#245#15#176'y'#227#207#189#166#0#15 +#20#147#167#205#134#229#183'?'#1'j'#181'V'#210#247'''5'#18#162'a'#165'\'#142 +#0'?{'#128'H'#128#138#134'<\'#205'@'#179#216#31#208'i'#10#180'i'#212#138#217 +'['#191#127#190#25'$"'#129#172'K'#18#10#255#28#220#253#128#4#160#16#199#251 +#141'f'#206#238#183#176#6#158#188#221'o'#224'j'#250#233'q*'#238#145#201'd9' +#21#239#127#255'_'#207#193'+'#207#253#181#199#199#175#189#237'q'#216'i'#214 +#238#146']'#223#166#13'?'#193#221'('#252#161'Pf'#202#211#213#26'-\t'#245#221 +'0g'#254#18#201#222#163#212'H$'''#18#9#21#132#220'\'#194'dk1'#26'C'#198'g'#10 +#182'5n`'#13'F'#187#148#15#191#220#240#211#10#234'w'#193#15'8'#203'.'#178'*J' +'('#252't'#190#175#197#170#191'`'#247#151#140'G'#187#223'jN'#246#239#167'Q]' +#212#193'W'#173#22'M'#229#205#21#201#231#241#183'{'#151#193#247'_'#247#156 +#225'y'#197#13#15#195#172#185#139'$'#185#182#230#198#237'p'#253#165'G'#166'u' +#213#239#9#187'.'#216#31'.'#188#234'nI'#222'g'#174'@('#30'bN'#193#8#231#15 +#160'Qd'#212'i'#216#201#166#19#147'?`='#184#218#27'v('#26#146#203#18#251#213 +#173'y'#137#166#17'g'#157#4#178'M'#0#231#2'7'#187#143#169#254#148#234#171'U' +#171'Q'#237#223#9#237#254'q,'#212'G'#4'@'#19'z'#141#186'N'#187'_'#220#202'+' +#151'p'#203'U'#199'A}'#237#166#30#31'?'#245#188#27'a'#233#254'GKrm'#203'/:' +#12'W'#157#236#181#168'3'#154#173'p'#205#205#143'Cy'#213'dI'#222'o.@p'#10'F' +#226#220'(2'#214'iX(!&'#18#240#248#161'q'#235#15#224#247'y'#216'0R'#145')' +#176#161#208#28#223'e'#205#23'/'#135'`'#164#18#0#10#127#1#238'6'#162#240#231 +#145',+'#168#194#15#5#220'l-'#130#210#170#217#220#136'nQ'#129#15#169#254#201 +#210#222#28#136#245'w'#135#171#207';'#0':\'#237'=>>{'#222#18#184#248#218#236 +'W'#131#174#250#246#19#248#251'_'#175#201#250'y'#169#148#248#162'k'#254#138 +'Z'#207#226#172#159';W@>'#129'x'#12#152#199#159':'#10#249#168#183#160#159's' +#10#18#17#216#219'['#160#165'v-'#155':'#20#21'B'#131'@?'#239#196#245'{L'#14 +#255#229#181#215'^'#139'C'#22'I '#155#4#240'4'#10#255#153'B'#194#15'e'#242'i' +#181#26'('#171#222#21'l'#22'+X-'#26#150#227'o'#210#11#241'~E'#206'W'#247']y' +#206#190#224#245#184'z|'#220'`'#180#192'}O}'#154#245#235'z'#230'o'#183#192'7' +#255#253#183'$'#159#9'iw'''#156#185#12#246'>0'#247#19#161'2'#1'nE'#231'z'#11 +'R'#166' '#181#26'gIB'#194'@R'#26'8R'#251#11#184#28'M]K'#135'}'#10'Yd'#230'Y' +'G'#236#180#253#214'[o'#205#154')'#144#21#209'B'#225'_'#136#187'/'#196'M=)' +#225''''#191'x'#2#20#150'M'#228#236'~'#190#159#31#27#209#205''''#251#200#20 +'|'#154'o'#142#142#228#190#242#156#165'L'#157#235#13#203'n'#127#22#170'''' +#207#204#234'u'#253#241#186#147#160#174'f'#163#148#31#13#236'{'#200#201'p' +#236#169'WJz'#13'R!'#217'e'#152'2'#5'Q'#19#160#162'!'#174#155#16'_='#232'rC' +#211#214#239'!'#16#12'tI'#16#138#191'5'#217#214'x'#204#231#159#127'.h'#1#25 +''''#129#140'K'#22#10#191#18'w'#171'Q'#246'g'#138#29#127#6#163#9'W'#255#221 +'P'#232'u'#220#234'o'#20'B~'#156#221#175#148'Q?'#191#172'\'#226#160'q'#229'Y' +'KX'#152#173'7L'#156':'#27#174#186#229')v'#155#190#232#141#235#190#135'_~' +#252#2'j6'#255#2#173'-u'#16#14#5#161#176#184#28'f'#238#178#24#150#236#127',' +#216#242#139#135'|]w\{<4'#214'm'#145#250#227#129'='#150#28#6#167#157#127#171 +#212#151'!'#13'(*'#144#224#187#9#133'R'#203#135'iko'#222#14#237'M'#155' '#28 +#230'M'#1#222'!'#168#144#197#143#216'}r'#244#223#217'2'#5#178'A'#0#201'~'#254 +#130#227#143'V'#255#226#138'Y'#144'_X'#194#170#251#204#204#235#175'f3'#251'4' +#194#164'^'#5#191#242#231#174#252#195#21'g.'#198'/0'#216#231#243'*''L'#135 +#246#214#6'^['#232#253';'#173#154'8'#3'.^'#246' '#232#141#230'A_'#215#223#239 +#189#18'~^'#253#133#212#31#15#195#137'g]'#7#139#246'=J'#234#203#200':'#196 +#249#1#194#172#1#242#7'P4'#192#229#14#129#27'I'#160'q'#219#15#204#132#236#146 +#27#176#173#196#26#155'S]'#20#243'e'#131#4'2*^('#252#229#184#251#21#133#223 +'(8'#254'h'#245'7'#219#138#161#164'r&'#179#249#201#243'o'#22#169#254#148#240 +#195#138'j'#134#193#140#238'+'#206'\'#4#209'H8'#237#199#165#234#187#227#207 ,#188#22#246'\'#250#251'A'#189#254#173#151#31#130#143#223'}A'#234#143#135#129 +'4'#190#229#127'Z'#1#165#229#19#165#190#148#172'#9'#131#144'R'#133#249#209'c' +'n'#26'I'#206#180#128#16'8'#236'm'#208'R'#187#134#213#10#136#27#138#202'e' +#137'?'#21')6'#222#186'j'#213'*j-'#158'QS '#211#4#240','#238'N'#231#194'x\' +#165#159'N'#167#129#210#9#187#162#218'o'#6'3o'#247#155'x'#213'_'#165'Rt'#198 +#251's\'#248#9'W'#158#177'p'#135'A'#27#233#2'}'#6'W'#160#233'@'#26#193'@'#225 +#180#183#192#173#151#255'N'#234#143''''#9#157#222#8'w<'#244'>(G'#227#240#145 +#132#184#167' '#167#5#176#198#162#158#16#155'@'#220'Z'#255'+t8'#26#152'C0'#22 +#139#9#164#17#210'(";W'#154'[k>'#255#252's'#129#4'2'#130#140#137#25'_'#236 +#179#25#127#200#202'd'#147#15'\'#225#243'J&Aa'#201#4'&'#248#22'>'#219#143#188 +#254'B'#194#143#208#214'K6'#28'4'#128'3'#22#160#234#150#185#249#15#148'F'#252 +#199'G>'#4#165'j'#224#130#243#199'k'#143#131#214#166#237'R~<)'#168#24'?'#13 +#174#190#253'9'#169'/#'#171'H'#206#31#20'G'#5#130'\'#150' E'#5#152'&'#224#246 +'A'#211#182#149#16#240#7#146#25#130'd6'#160#22#240#216#30#147'#'#151#226#203 +'c'#153'4'#5'2I'#0#127#195#221#5#194#234'O'#171#187#222'`'#198#213#127'>'#174 +#252#186#164#234'O1'#127#13#175#250#11#173#188's5'#236#215#21'W"'#1'd:'#211 +'n'#206'n'#251#194#233#23#253'q'#192#175'['#245#205#135#240#226#223'o'#145 +#234#163#233#22'{'#29'x'#2#28'q'#210#229'R_FV'#145'L'#21'&_'#0#223'T4'#16#226 +#18#132'H'#3' "ho'#169#5'{'#211#198#174'a'#193#160'Y'#23#157#174#143'ln'#200 +#164')'#144#17'Q'#227#251#250'oCa'#214#8#171#191#150#194'~'#227'v'#130#130 +#194'q,'#233#135'R}'#169#198#159#10'}'#146#173#189#134'Y['#175#171#207'^'#136 +'_lf'#9'@'#173#209#193#157#127#31'\.'#193'u'#231#239#3#225#12#213#1#12#22#231 +'^y'#31'L'#155#185#135#212#151#145'u'#136'G'#145'S'#130#16#171#21#224'K'#135 +'I'#19' -'#192#231#245'$'#147#131#226#156'/'#224#129#137#214#198#229#133#133 +#133#145'Li'#1#153'"'#128'{pw'#149#216#246'7'#24'q'#245#175#222#21'W}m'#146#0 +'('#215'_'#163'Q'#138'r'#253'3'#253'5'#164#23#203#206'Y'#196#190#172'L'#131 +#132'f'#234#206#3'/*'#250#199'3'#127#130#149'_H'#147#16#212#19#242#10'J'#225 +#250#191#252'S'#234#203#200':'#132#4'!'#161'V'#128#229#6#8#166'@W-'#128#250#8 +#178'(B'#194'k'#209#248#166#203'|'#155'Z'#143'='#246#216'h&'#18#132#210'.r(' +#252#249#184#219'.'#158#231'G*~~'#233'4(('#174'`'#182#191'9'#153#238#171'J' +#233#231'?'#220#176#252#188#197#25#245#1#8#152#188#211#174'H'#2#15#12#248'u~' +#159#27'n'#187#252#224#164'-'#154'+'#184#244#198#167#161'|'#252'4'#169'/#' +#235'`i'#194#162#178'a'#214'U'#152#143#10'Px'#176'i'#203'w'#224#247#251#152 +#22' D'#4#20#178#248'_'#198#233'jn'#213'h4'#145'L8'#4'3A'#0#255#135#187#27 +#133#184'?'#173#254'z'#189#1#202'&'#238#193#4#159'<'#255#20#243#167#176#31 +#149#249#178'b'#31#190#189#207'p'#226#128#166#186#205'p'#255'm'#167'g'#229'\' +'&K>'#220'xo'#255'z'#247'u'#197#227#247'\'#10'[6'#172#202#230'G'#211'''*'#171 +'w'#134#139#174#127'L'#234#203'H'#162'v'#235'z'#248#224#141#191#179'U'#248 +#202#219'^'#4'm'#6#134#161#236'P6LZ'#0's'#8#134'Xkq'#242#7#216'['#182#131#189 +'y'#19#203#11#16'E'#4':'#10#13#222#25#165#150'p'#187#209'h'#140#166#219#20'H' +#171#200#161#240'S'#246#10#173#254#214'd'#193#15#10'y^'#233#20#200'/'#170'd' +#4'`'#225'+'#253#132#213'_.'#204#241'K'#251'G'#158'Y<'#245#192#149#176'i'#221 +#202#172#156#139#138'l'#254#244#232#127#7#245'Z'#183#171#13#238#188#246#168 +#156#210#2'hq'#184#225#158'w'#192'h'#178'Jz'#29'?'#175#250#12#222'z'#233#175 +#224#245'8'#147#247'Yl'#133'p'#237#157#175#225'oR'#153#246#243#9'#'#200#147 +#29#132#216#188#193#8'x'#242#5'P'#181#224'w'#16#164#136'@'#172'S'#11 +'P'#202#227#255'7'#181#208'~'#151#221'n'#15#167#219'!'#152'n'#2#184#30'w'#127 +#20#175#254#172#183#127#245#238#184#234#235'p'#245'Ws'#157'}'#249'b'#159'd' +#216'o8-'#253#192#133'tn'#190'x'#31#136'g('#7#160';\'#247#151#183#152'&0'#24 +';d'#213'_'#204#156#191#15#156'x'#174#180#3'G'#222'|'#225'.'#248 +#254#203'wv'#184#191'x\5\v'#243#243#25'9'#167'0'#130'<'#22#19#194#130#145'd' +#243#16#210#4#218#155#183#130#179'uk'#215'r'#225#246#170'<'#255',u'#194#233 +'L'#183'C0m'#146#135#194'O'#189#175'jP'#152#11#133#156#127'J'#249#205'+'#158 +#4#249#197#227'q'#245'Ws'#131'6'#127#209#225'p'#196')'#203'2r^'#241#152'1'#234'#'#232#167 +#228' >*@Z@'#211#150'o!'#24#10'B4'#210'Y#'#160'R'#196'o'#24#167#171'}'#200 +#229'r'#133#210#233#16'L'''#1'\'#134#187#251#133#22#223'JV'#238#171#195#213 +#127#15'0'#25#185')'#190#228#249#215#137'W'#255'af'#247#11#248#203'uG'#130 +#167#195#158#213's'#206#156#191'/'#28'w'#214#224#227#250#143#254#249'\h'#172 +#149#182'B'#176'+'#14':'#234'"X'#184#223#241#146#157#127#235#198#213#168#29 +'u'#159#151' '#147#201#225#218#187#254#5#6'cf'#204#148#148#185#2'4v<'#16#6 +#143#151'#'#129#246#166#205#224'j'#171'I'#169#17#192#127#154'&'#216#218#230 ,'DC'#30'O:'#29#130#233'$'#128#159#196'#'#189')'#231#223'VT'#13#249'%'#213',' +#219#143'y'#254'u'#157#147'|'#5#219#127#184#161#177#246'7x'#236#174's'#179'~' +#222#130#226'J'#184#228#230#193#231#247'?'#250#167#179#160#185'A'#250#10'A1' +#170#167#205#131#211'/'#249#235#208#15'4H'#4#253'^'#184#243#154'C{|'#188'j' +#210'l8'#235#138#7'3rn'#161'N'#128#204#0'J'#14#242#5#195#172'd'#152#204#0#183 +#199#11#205#219'V'#162#22#16'Ji'#29#166'SFO'#221'i\'#224'-$'#128#208#140#25 +'3'#210#162#5#164'E'#2#199#205':q'#14#200#228'?'#166#14#248'PC'#217#196'=' +#193'h'#212'%'#195'~]m'#127'v'#1#195'L'#5'x'#246#129#203#160'f'#211#154#172 +#159'W'#161'T'#193'M'#247#127'<'#232#215'?p'#203#9#224#180'7e'#253#186'{'#131 +#209#156#15'W'#255#233#13'I'#175#225#214'K'#150'v'#186#232#187#193'y'#203#158 +#128#178#202')i='#167'`'#138'u'#230#5#196'Y#Qj'#28'Bu'#2#20#26'lk'#218#8#238 +#246':'#22'-'#16#210#131#21#242#196#191''''#231#181#156#145#151#151#231'okkK' +#139#22#144#30#2#152'}'#242#189#184#187'R'#156#248'c'#206'+'#133#162#242#25 +'l'#245#167#141'l'#255#174#5'?'#195'L'#246#25#238#184'|'#191#140#21#0#245#133 +#195'O'#186#6#230#238'y'#232#160'^{'#207#245'G0_@.'#129'4'#197#155#30#200'~' +#199'$1'#250#250'>+&'#236#12'g]'#249#240#0#142#216'?'#8#26'@gD'#160#179#135 +' +'#22'r9'#160#173'v'#245#14'EB'#165'F'#215#156'Bs'#188#209'h4'#6#211#161#5 +#12'Y'#4#11'&'#238#167#212#24#139#235'P'#160'K'#196#206#191#194#242'Y`'#205 +'+J'#18#0'7'#211'O'#148#243#159#246#143'4'#243#168#223#182#14#158#185#255'b' +#201#206'o+('#131#139'oZ1'#168#215#222'u'#237#161#16#238#163'y'#137#20#184 +#225#222#143'@'#174#148#206#17'x'#247#242#195'!'#24#240#246#248'8'#249#2#150 +#223#243'>.j'#233#175'd'#20#198#139#209#198':'#9#135'"\'#15'A$'#0'2'#7#154'k' +#190'g'#201'\bg'#160'F'#17#185'~'#130#205#254'x'#186#180#128'!'#203#225#184 +#217''''#29#130#135'yW'#172#254#235'tz('#157#184#7#152#244#26#214#229#135'e' +#253#241#171'?'#169#255#220#7#155#246#207'3'#227'xg'#197#159'a'#237#247#255 +#25#250#129#134#128'E'#7#158#10'{'#29'|'#230#128'_'#247#231#171#15'D{2'#167 +'F'#211'3\q'#199#27#160#207#144#163#173'?x'#232#182#19#192#237#236'}B'#242 +#194#253'N'#130#165#135#157#147#145#243''''#135#138#196'83'#128#178#3'='#188 +')`o'#169#1'g'#203#230'd'#219'0'#190'Jp'#213#228#188#230#223#163#6#224'N'#135 +'/`'#168'b(C'#245#255'%'#220#159' '#174#250#179#20'TAA'#233'd'#182#242#147 +#240#179#156#127'a'#180#215'0'#140#251#11'x'#152'~,'#174#190#199'ig'#18#244 +#217#157'q'#249'#PZ9'#176'T'#218';'#175#220'/+3'#2#6#138#11#174#127#1'l'#133 +#227'$;'#255'S'#247#156#7'-'#13#155'{}'#142#193'd'#131#203'n'#207'L'#253#2 +#203#11#192#175'%'#154#156'''@y'#1'\'#207#0#143#199#3#205#219#190#235'j'#6'$' +#242#180#158#189#139#140#190'_'#210#161#5#12'I'#18'Kw>'#214'"W'#168#155#240 +'G'#169#19'w'#252')'#170#154#7#22#139#141#9#191#208#231'O'#205#175#254#178'a' +#24#247#23'p'#215'5'#251'g'#188#250#175'?'#208'h'#13'p'#217'mo'#12'Hu'#206 +#149'k'#239#138#11'oz'#5#204#214'B'#201#206#255#226#195#151#161'i'#247'K'#159 +#207';'#227#138'G'#161#164'<'#189#206'@'#1#226'J'#193#0#211#2#194'L'#11' 3' +#160#165'n'#13#248#220#246#20'3@'#173#136'>2)'#223#241''''#157'N'#231#25#170 +#22'0'#20'I'#148#141#155'u'#210'Y('#205'O'#138'c'#255':'#189#25'J&'#236#202 +'B~F'#3#183#250'k'#133#138'?'#129#0'2'#242'1f'#30'w]'#189#159#212#151#144'DE' +#245',8'#233#194#254#135#208#238'^v@V*'#23#7#2#250#221','#187#251#163#172#159 +#215#209'V'#7#171#190#252#23'4'#213'n'#128#182#230'm'#253'j'#235'V5i'#23'8' +#225#252#244'O?'#18'$'#150#141#26#143'u:'#3'}'#228#12'D"p'#182'7'#128#189#241 +#215#20'3@&K'#212'M'#201'k'#222#27'??'#215'P'#181#128#161#17#192#236#147'?' +#199#253#18'.'#166#207'M'#248#181#22'q'#153#127'$'#248#194'`O'#173#134'k'#244 +#169#16#226#254#195'P'#3#8#6#189#240#208'MGH}'#25')'#216#231'w'#23#194#188 +#197#253'k'#184'y'#239#181#7'f'#165'rq '#160'^'#7#151#221#241#206#208#15#212 +#7#162#209'0'#252#188#242#3#216#176#230'S'#166#238'G'#250#209#200#181'+'#228 +'r'#5'\q'#231#251#236'w'#158'v'#240#209#0#193#25#200'B'#130#188'/'#192#231#11 +'@'#243#214'o'#184#190#129#157'f'#0'X'#181#129'S'#202#173#190'OQ'#3#240'644' +#4#15'?'#252#240#216'`'#180#128'AKb'#217#204#227#170'er'#21#181#252#146#137 +#213#255#226#234#221#209#246'7'#166#172#254#164#254#211#7''''#31#198#234#127 +'['#211'Vx'#238#190'?H}'#25') '#15#245'YW?'#133'6ty'#159#207#253#235#242#131 +'r'#142#0#242#138'*'#217#245'g'#18#159#189#243'wX'#245#5#229#26#12'='#13'z' +#241'Ag'#194#238#251#156#148#145#235'$'#225#23#18#131#184'"!./'#128#234#4#218 +#234#215#131#167#163#169'Kjp'#236#141')'#5#142#171'U*'#149#203#135',1'#216#26 +#129#193'J'#163#172'|'#246#201'7'#226#153'n'#23'{'#255#141#230#2'('#172#152 +#205#173#254'z'#21#232#209#12#160'6'#223'*'#149#144#246';<'#133#159#176'm' +#195'w'#240#230#179'7I}'#25';'#128'<'#232#231#223#248#143'>'#159'w'#255#13 +#135'd'#181'x'#169'?'#216#251#240#11'`'#151#133'Gf'#236#248#219'6'#174#132'7' +#159#185'1m'#199#179#228#149#194#217#203'2'#211#215'P'#152'+'#200':'#8'G'#185 +#225#162'>'#161'i'#136#179#21#218#235#215#166'$'#5#201' '#209'19'#191'u'#145 ,'\'#150'h'#195#197#215'+'#170#20#28#144#157'7h'#2'@'#245#159#234'S'#23#139'+' +#255#242'J'#167#131'-'#191#12#244'zU2'#244#199#138'~'#134'q'#222#191#128#159 +#191#127#31'>~#'#251's'#254#250#131'I;/'#130#195'O'#238#157#156#30#188#241'P' +#201#18#152#186#3#149'8_v'#251#191'I'#183#206#200#241#253'^'#23''#232#163'7|'#247#217#10#248#230#163#204 +#148#136#166#3#135#156'p=L'#153#181'W'#143#143'?q'#231#137#224#243'8'#164#190 +#204'$'#170'&'#207#131'#'#207#252'S'#198#142#255#244#221#167#129#219#217#146 +#246#227#238#182#247#137#176'`'#255'3'#210'~\'#241' '#145#168#168'y('#133#4 +'I'#19'ho\'#7#30'gsJm'#128'^'#21'y'#180#210'b'#191#31'I'#193#129'&'#128'o0' +#206#192'A'#17'@'#197#156#147#247#195#235#252#143'X'#253#215#234#200#251'?' +#159#9#190#1'5'#0#193#249#199#133#254#134'o'#234#175#128#207#223'y'#4#214'~' +#155'y'#135#213'`'#161'Ti'#224#194'['#223#234#241#241#247'^'#186#3'6'#175#251 +'R'#234#203#228#175'U'#13#231','#127'%c+'#233#251#175#222#9#155#214#14#174 +#129'J'#223#215#174#129#243'o~3#'#206'@ae'#167'h@'#152#31'$B'#137'AD'#0'N{=8' +#155'6'#166#180#11'S'#202'c'#223'O'#202'k;'#7#175#165'='#18#137#184'='#30'Oh' +#160#13'C'#6'E'#0'h'#255#255#9#143#190'\'#28#254'3'#219'*'#209#4#152#204#236 +#127#218'h'#188#183'Z'#24#243'5'#12#171#254#186#226#235#15#159#130#213'_'#190 +'.'#245'e'#244#138#5#7#156#9's'#23'w?'#149'w'#203#250#175#224#253#151#239#144 +#250#18#25#14';'#229'6'#24'?u'#183#140#28';'#232'w'#195#147#127'>'#161#215#2 +#159#161'b'#202#172#189#225#128'c3'#215'+'#128#181#12#19#204#0#158#0'|^/'#180 +#212'|'#151','#17#230#252#0#16#156'\'#208#182#31#138'Y'#227'`'#157#129#3#149 +'L'#217#173#183#222'*{'#226#205'M_'#225#237'='#196#197'?y'#227'v'#6#171#173 +#152#23'~n'#245#231#188#255#178'a'#217#240#179'+'#182#172#255#18'>x%s*k:'#160 +#213#153#224#236#235'^'#237#254'A'#252#209#252#237#182#195'%o'#10'2e'#246#222 +#176#255#209#215'd'#236#248#159#188'q/lX'#243'IF'#223#3'-|''_'#246'$s'#10#166 +#27'I3 '#206#153#1','''#0#9#128#136#128#8' '#24#240#165#248#1#10#244#254'K' +#11#13#158#143'Q'#11#176'SH'#16#181#128#240'@'#204#128#1#19#192#148#221'N2' +#251'B'#178'v'#154#248#211'i'#255#171#160#164'zO'#208#235'u'#172#232#135#156 +#127'Z>'#245'W>'#12#219'}w'#7'ZY'#158#185#235'D'#169'/'#163'O'#236'{'#212#213 +'L'#200#186#195#11#247#158#14'^w'#187'd'#215'V4n2'#28'}^f'#29#169'O'#220'q' +#20'D#'#161#140#191#23'K'#254'88'#233#210#199#211'~'#220#174#237#195')'#26'@' +'$'#16' ?@'#211#6#240'8'#27#187#250#1'^'#172'0'#183#223#135'ZA'#171'N'#167's' +#15#180'Jp'#160#162')/'#159'}'#226'!'#9#144#191'#'#216#244#20#255#215#27#172 +'PX9'#151#9'?'#249#0#152#250#175'$'#239#191#208#244'cd'#144#192'cl'#5#205#173 +'l'#186#174'(.'#159#6'G'#158'so'#183#143#173#252#228'9X'#253'E'#223'!'#195'L' +' '#191'x'#2#28'{A'#250#203'j'#197#248'u'#213#7#240#223'w'#30#202#218'{Zt' +#240#249#176#243#238#135#167#245#152'|'#247#31#212#0#184'nA'#194'hq6^'#220 +#209#4#142#166'_'#187#250#1#214'M'#206'o?'#31#9#160#9#205#0'g('#20#242#15#196 +#12#24#136'X2I.'#159's'#242#221'x'#222'+'#197#14'@s~%'#235#253'G'#194#175'G' +#225#167'a'#31'D'#0'r'#133'l'#216#135#255#196'x'#225#222'S'#193#239'u'#14#253 +'@'#25#132'Zk'#128'3'#175'}'#181#199#199#223'x'#252'rhk'#218'<'#128'#'#14#29 +#214#130'r8'#254'"'#154#20#151#153#144#159#128#151#30'8'#27'<'#174#244'{'#254 +'{'#2#245'5fV'#248 +#219#26'7'#193#191#158#186'2+'#239'I'#140#25#187#30#6#11#14'Jo'#134'hgRPg' +#159#0#193#20'h'#175#253#129#245#8#16'u'#12#134'|'#157#247#230'b'#147#255'}' +#148#201#22'$'#128#14'2'#3'P'#3#136'B?'#162#1#3#17'O'#249#132'9G'#230#133#19 +#250'f'#188#173'H'#150#255#170')'#254#191#16#237'~'#174#233#7#197#254'5|'#242 +#15#215#245'w'#228'0'#128#179'm;'#188#241#152't'#13'A'#250#139#197#135']'#10 +'S'#230#236#223#235#251'x'#243#241'K3n'#206#204'^x'#28#204#223#251#212#172 +#188#231#183#159#190#10'I'#224#183#172#156'K'#12#149'Z'#11#167'-{-'#189#7'Mp' +'9'#1#228#8#140'D'#184'h'#128#16#18't'#182'lBS'#160'N'#1'D'#2'd'#226 +#216#27#215#165'8'#2'U'#242#216'&4'#3'.'#198#219#13']'#204#128'>'#163#1#253 +'&'#0'R'#255#191#217#164#186')'#145#144#221'"'#216#255'4'#247#207#156'?'#30 +#172'E'#19#152#240#147#243#143'&'#1#177#220#127#249#200#178#255#5'|'#251#225 +'c'#240#235#170#247#164#190#140'^ '#195#21#233#31'h'#154#245#175#133#213#170 +#207'_'#128'u+'#223#198#31'T'#223'%'#177'}'#158#25'5'#194#9#211#23#194'B'#212 +'@2'#209'B'#171'''|'#242#250#157'P'#251#219#183'Y;_W'#152'l%p'#204#5#233#27 +'u&D'#2#132#226' V'#27#16#138'23 '#16#8'B'#203#182#175#240#251#138''''#29#129 +'2Y'#194'7'#173#160#245'd4'#11#234'('#26'`6'#155';'#182'l'#217#18'Z'#183'n' +#29#153#1#189#170'y'#253'&'#128#165'K'#151'*6'#187#198#189#128#231';A'#236#0 +#180#149'L'#7#147#181#132#9'?'#167#254'wv'#254'aC?F'#152#6#16#143'Ga'#5'j'#1 +#180#207'E'#232#12'68'#238#146'g'#7#250#174#224#251'O'#158#133#223#214'|0@' +#141'@'#198#178#250'4:3'#20#148'N'#130#5#7'_'#12'jm'#250#231#234#245'z'#229 +#236#251'8N'#210'JG'#146#135#211#174#253'WZ'#143#201'R'#131'y?'#0#155#29#128 +#4'@'#27#17'A'#235#182#239' '#28#246#167#248#1#198'['#237#231'j'#20#225#245 +'J'#165#178#9'W'#127#167'N'#167#11#244#167'6'#160#191#210')'#159'7o'#158#162 +'9:'#141'hv'#174#152#0#10'*'#230#130#201'le'#194#175#213't'#134#255#134's' +#235#175#190#240#213'{'#15#194#230#28'u'#6#142#199#21'x'#175#223#15'>'#209 +#134#242#29#234'6}'#7'M'#219#215#178'N4'#241'X'#132'U'#17#146#160#145#160'[' +#242#203#153#176#23'W'#236#4#230'<'#233'Zy'#9#248#254#147#167'a'#253#247#131 +#27#156#154'N,='#234'Z'#168#154#178'g'#218#142#215'u'#132#24'5'#10#9#242'Z@{' +#253'Oh'#246#216'S'#8#160#216#232#249#147'M'#235#251#24#239'k'#196#191#237 +#161'P'#200#215#159#1'"'#253#145'Pf'#255#31'|'#240#193#170#181#141'ymx'#219 +'$'#142#0#20'MX'#8#6#157#134'['#253#133#226#31#249#200'I'#0#234#14'$'#12#175 +'=tF'#214'<'#233#253#6'~'#224'G'#254#225'Q0Z'#138#165#190#146#172#225#229#191 +#158#136'Z'#203#192#27'|'#164#27#21#147'wC'#18#184'.m'#199'K'#13#7'v'#18#0 +#141#21'w4'#253#6'^WC'#151#6'!'#254#23#139#244#174#151#209#254#175#139'F'#163 +'mj'#181#218#211#159#18#225'~'#17#0#217#255#171'6'#199'+Cq'#237#214#164#3#16 +#237'='#181'F'#143#4#176#27#203#250'c'#171#191'Z'#193#186#2')'#21'#'''#249 +#167''''#216'['#182#192#7'/,'#203'h'#206#249'@Q9e'#15'X'#252#251#204#228#168 +#231'"6'#253#248#1#172#252'8'#253#217'x'#131#129'Vo'#129#163'/z&'#173#199#20 +#210#130#201#214''''#2#16#162#1#29#246':'#232'h'#221#156#18#9'0'#168'C'#159 +'UZ\'#15#163'|'#214#14'$'#28#216#31#17#149#163#253'/'#175'q'#151#238#23#137 +#201#223'O'#137#0#24#242'!'#191'b'#22#155#3'@'#177#127'F'#0#138#206#8#192'H' +#199#154#255#189#0#235'W'#190')'#245'e0'#144#231#253#152'K^'#204#170#243'Mj' +#188#249#232#217#16#240#229'Fb'#150#12#127#240'''^'#153#222'b1a'#148'x'#140 +#207#7' '#2#8#134'#'#224#235#176#131#189#241#231#148'H'#128'F'#25#253#181#218 +'f'#191#3#229's;'#254#221#20#12#6#157'J'#165#178#207#226#160'~'#17#192#140#25 +'3'#148'n'#213#172#11#226#9#249#253'b'#2'0'#217#202#193'V<'#25'U'#255'N'#2'H' +#142#252#30#225#26#128#128#207'^'#191#29#154'j'#178'?*L'#12#242#190#239'}' +#204'MPR5['#234#143'#kh'#220#182#26'>'#255'gnT7'#10'8'#225#242'W@'#158'&'#2 +'f'#170'='#223'#@'#240#3#176'~'#129#148#16#228#247'B'#235#246#149')'#4#160 +#148#199#237#147#242'Z'#175'E'#185#164#9#221#13#129'@'#192#238#247#251'}&' +#147#169#215#226#160#190'D'#148#169#255'^'#175'W'#249'K'#147#237#190'xBv'#129 +#152#0#172#197'S'#192#130'$'#160#161#8#128'J!'#234#254#3#204#30#29#13#4'@' +#248#238#195'G`'#235'/'#210'8'#5#233#251'Xr'#228#245'P6a'#174#212#31'CV'#241 +#239#167'/'#6#143'3'#183'f'#29#238'{'#252#237'l'#28'^'#186#144#236#15' '#26 +'%N&@'#24'5'#129#230'-_B4'#18'I'#18#0'">5'#191#229'r'#20#203#173#248'w]8'#28 +#166'Va'#30'Q'#143#128'n'#253#0#253'"'#128#182#182'6'#213'fW'#217';'#137#132 +'l?q'#17'P'#222#184#153'`4'#23#178#213#159#171#254#235','#0#26'%'#178#159#196 +'/'#223#252#3#183'W'#135'~'#160#1#128':'#213'.8'#236'*('#159#180#187#212'o?' +#171'p'#182'l'#133#15'Wd'#174#164'x'#176#152#179#228't'#152'6'#255'wi;'#30'_' +#23#196'|'#0#177'(?D'#20'M'#0'r'#6#182'm'#255#1#194'A/'#171#9#16#136#162#210 +#226#252#139'A'#29#254#142#252#0#161'P'#168#197'`0t'#212#214#214#6'{'#203#7 +#232#147#0'('#254#143'j'#132#250#199'Z'#243'z'#27#205#196#146'wv'#1'RB'#209#132'E'#160#165#236'?u'#151#177#223#195#184 +#253#247'PA'#171#211#234'O'#30#3'G3'#253'@'#211'O'#4'*'#181#30'v^t'#18'L'#154 +'s'#176#212'oU'#18#248#221'm'#240#238#147#231'K}'#25#221'b'#210#156#131'`' +#151'}'#206'M'#235'1'#217'b'#194#143#14#139#242'&'#0#249#1'\'#246'm'#224'm' ,#175'I!'#0#139'6'#240'q'#153#201'M'#163#250#182#225#223#141#184'''?'#128#191 +#188#188'<g'#255 +#167'$'#0#201'G'#141#237#223#27#130'~'#23#172#254#244'Ih'#216#250'=2'#248#208 +#179#212#244'hj'#237#188#231#9'0~'#250'^C>'#214'p'#198#127#223#248'?h'#169 +#253'I'#234#203#232#22'S'#230#30#206#204#128'tB'#136#4'P80'#18#163'\'#0#218 +'"'#172'1'#136#171'ecJ2'#16#170#255'?V'#152#29#143#201#229#242'mx'#127'='#154 +#233#237'}u'#9#234'MTY'#251#175#239#190#251'N'#245'['#171'q~0'#170#254'R'#198 +#229#246'2'#2#208#26#242#160#160'|6'#18#0'7'#248'S'#171#230#186#255#202'y' +#239#255#232#243#2't'#15#250#130'~'#254#250'%'#168#221#240'?'#22#178#234'o'#5 +#30'y'#246#13#150'"('#169#154#3#147#231#28#2'f'#155#244'YwR#'#26#14#194#27 +#143#158'"y['#179#158'0}'#215#163'`'#214#194#147#211'v'#248'1'#228#14#254#249#192#9'h'#3#167's'#208'gzA+'#255'A' +#167#167#127#230'A'#178',8'#193'E'#148#136#0'hX('#245#5'h'#221#250#5#27#248 +'*Z'#145#187#141'N'#20'*'#13#28'}'#233#203#25 +';'#190#160#248'PYp'#8'5'#0#31#18#128'?D3'#2'VA$'#232'N!'#128#234'<'#251#11 +#26'Et='#222#220#138#191#231#237'h'#2#244#26#10#236#145#0'('#4'XXX'#168'B3' +#192#248'K'#147#237#159#241#132'l1{@ '#128'q'#179#193'h'#202#7#147#137''''#0 +#26#3#206#183#1#207#4#9#188#243#216#185#224#239'E'#160#199#207#216#27'v?'#248 +#18#230')^'#245#241#19#3'N'#191'U'#170#180#176#199'!'#151#193#184#201#163#171 +#178'n8'#128'l'#223#215#239';6g3'#0#231#238's6'#211'&3'#5'!'#29#152'"'#1#212 ,#25#200#235#11#177'\'#0'J'#4#10#251#157')'#4'0'#222#234#248#135'N'#21'YK&'#0 +#229#2#224#234'O'#205'A\'#212'$t'#247#221'w'#143#12#136#0'('#7' '#20#10#25 +#127'm-x'#27#9#128'IF'''#1#204#5#163#217#10'f'#163#22#180'H'#0#212#9'H'#166 +#200'\'#15#128#143'W,'#7'{'#227#198#30#31'''/l'#193#184'i'#208'Z'#251#243#144 +#206'SX1'#3#150#28'u#j'#19#218#204#188#145'1'#12#10#239'>q'#1'x]'#205'R_'#198 +#14#160#26#141#195#255#144#217#182'd'#9'^d'#217#192#208'p'#20'<^'#158#0#234 +#215'B8`O!'#128'J'#139#227#13#189'*L'#197#18#201'\'#0#212#226#157'H'#6#221 +#230#2#244'J'#0'j'#181'Z'#19#139#197#140#155#28'E'#175#196#226#242#165#236#1 +#222#203'o+'#157#131'&@>'#243#1'P$@'#145't'#2'f'#134#1'V~'#240' l'#203'R'#211 +#13#5#146#201#220#253#206#131#234#153#251#15#253'`cH'#11#214'|'#254'LN'#166#1 +#31'p'#234'=`+'#158#148#209's'#8#233#192'q'#158#0#220'D'#0#254'0'#18#192#26 +'4'#1'\)'#4'0'#193#230'x]'#171#140#172#3'>'#27#144#186#4#247'6-'#168'O'#2#8 +#135#195#166'm'#29#165'OF'#227'r'#166#227#8#4'`)'#153#9'f['#17#24'y'#2#160'f' +' '#178#12'N'#2'j'#174'Y'#3#255'}'#237#214#140'~'#208']a+'#158#8'K'#143#187 +'-'#235#189#238#199#176'#'#130#254#14'x'#251'og'#230#212't'#230#146#9#187#192 +'^'#199#220#146#241#243#8'EAqf'#2'D'#192#235#14#129#151#8#160'n'#21'DB'#30 +#238'9<'#1'L'#180#181#189#162'R'#196'6Q='#128#208#30#12'I'#192#209'S2PO'#210 +#154#204#2'D'#152'6'#180#218#238#143#198#21#201'('#0#17#128#185#136#250#194 +#151#128#201#164#3#131'^'#197#17'@'#134#235#0'^'#187#247'('#180#131#178#251#3 +#144#203#149'0{'#233#25'0y'#222'aY='#239#24'v'#196#166#213#239#194#143#159'<' +'!'#245'e0'#208#140#132'C'#207#251'{'#210#241#156#13#196#248'T`'#143''''#8'>' +'$'#0'J'#5#142#133#131')'#190#145')'#249'-+'#208#26#175#1'>'#25#8#247#13'(' +#252#164#1#248#186#235#11#208''''#1#168'T*'#243'f{'#254#31#195'1'#197#25#236 +#5'<'#1#152#10#166#176'D '#179'Y'#139#4#160'a'#4#192'f'#1'f'#144#4#200#14#244 +'8'#26#135'~'#160'A'#192'RP'#9'{'#31#127#27'h'#141'y'#146#156#127#12#28'>}' +#233#6'h'#173#251'E'#210'k'#208#155#242#225#16#18#254',u`f&@'#28'X'#243#15'J' +#0'r'#187#3#204#7#208'F'#169#192#209#136#152#0#18#211#11'[^'#196#191#235'I'#3 +'P('#20#219'"'#145'H'#3#222#223'>h'#2'@5'#194'R'#227'*'#188'>'#20'S^'#200'^' +#192#11#184')'#127'"'#152#11#171#192'l'#210#128#209#160#3#165#138'k'#6#154 +#201'>'#0#171'>~'#156#173#2'R'#129'Z?'#239#188#240'$'#152#177'gzK>'#135#27 +#220#246'zh'#216#252#29#11#183#6'|.'#8#5#220#172'V_'#165#214#129'Zg'#2#173 +#222#12'Fk)TN['#12'zsAZ'#207'MCY'#222#127'J'#186#134#160#244#190#14'9'#231'a' +#166#25'f'#11#156#15#144'/'#7#14'F'#160#163'#'#192#178#1#219#182#254#143'/' +#20#226#228'Y.KDP'#3'x'#149'R'#128#129#171#5'`'#233#192#184#136#183#187'\.ow' +#147#130'z%'#0#170#3#192#23'['#234#189#197#151#6'"'#202'd'#23'F"'#1#131#181 +#10#172'%'#19#193'd'#208#130#201#172'I'#154#0#178#12#134#210'i '#194#7'OH?' +#158#219'd+'#133#165''''#252#31#232'-'#133'R_J'#198'A'#130']'#187#225'Kh'#218 +#242#3'ks'#22#244#216#7'4'#135#143#134#148#26#172#197'P1u'#1#236#180#240#184 +#180#9#206#215'o'#221#13'u'#191'~'#153#213#207#194'Z4'#30#14'<'#235'>'#188 +#149#253'|'#17#166#1#160#249#27'@'#193'w'#185#209#4#240#5#161'}'#235#23#220 +'c<'#1'('#229#241#224#164#188#214#127#226'M'#154#18'L'#234#255#214#190':'#3 +#245'J'#0#227#198#141#211#6#131'Ak'#141#211'r'#182'/'#172'Nz;H'#208#245#214 +'r'#176'P='#0#154#0'&'#147'6'#217#15' '#211'x'#253#158'c'#210'2'#201'v'#168 +#160#228#163'Is'#15#129#185#251#159''''#245#165#164#21'm'#245#235#161'n'#195 +'W'#208'^'#183#142#173#178#209'4'#142'B'#167#207#172#160'b'''#152#179#247#153 +#144'W:y'#200#199#219#188#250'='#248#241#227'''3>'#168#149#186'/O'#158#127'8' +#204#217#231#172#140#158#167'W$'#184#17'a'#1#180#253']'#164#1'x}`'#223#254#13 +#255#16''''#207'*E'#204';)'#175#157#6'%'#146#218#207'4'#0#154#24'L#'#195#245 +'z'#189#167#191#4#192#10#129#208'VPVVVjc'#177#152'e'#187#211'|'#162'7'#172 +#185'+'#249#4'j'#9'f*'#5'['#201'4\'#253#181','#23'@'#165'Qr'#149#128#221#229 +'j'#164#145#23#254#243#236#149',3,W@'#17#130'='#127'w5'#148'T'#15#207#190#252 +'q$'#211#205'?~'#0'5'#235'>'#135#142#182#154'n'#11#174'2'#129#252#178#169#176 +#232#152#27#217'H'#173'!]?'#10#255#143#31'?'#1'['#127#250#152#13'2M+'#240'w^' +'>y'#15#216#253#176'+'#178#155#23#210#141#12'%d'#192'f'#3#4#252'!'#232'p'#5 +#192#235'q'#131#163'ne'#138#3'P'#163#140'vT'#219#236'4'#187#190#129#132#159 +'6'#165'RY'#135'2'#220'6h'#2#136'D"'#214#6#183#249'w'#238#144#238'!'#241#147 +#180#166'b'#176#149#206'`y'#0'&'#139#142'M'#7'b'#29#129'2'#252#217#172#251 +#250#31#240#243#127'_'#200#222#151#209'O'#20#148'O'#135'%'#199#222'<,B'#134 +'^\'#217'7'#174#252#23#218#241#223#131#223#211'.Y'#145#13#249'T'#166#237'~$' +#139#178#12#29'qX'#243#201'3Hd'#255'e'#205'C'#134#2#133#146#146#202#166#163 +#224'_'#206#18'}r'#1'T'#13#24#141#198'P'#245#15#129#219#229#7#175#219#1#206 +#134#31'S'#8'@'#167#140#216#171#172#246#143#128#215#0#168'"'#16#247#140#0#240 +#182#183#187#138#192'~'#17'@'#179#199#184#175'3hxZ'#252'$'#141#161#0#242#198 +#237#12'F'#163#14#205#0#29'k'#14#154#169'^'#0'b'#208'D'#222'7'#239#203#205 ,#194#16#25#170#138';-8'#22'v^'#156#190#198#144#233'BG{'#29#252#244#233#211 +#208#142'*~$'#228#151#250'rR`-'#154#0#251#159'y'#127#218'j1(g`'#195'7'#175'C' +#253#198#175#193#215'A'#3#173#251'&8r`'#22'V'#238#12'Sw;'#2#138#170'fI'#253 +#145#236#0'z'#7#17'j'#7#230#9#162#9#224#199#247#213#14#206#198#212#238#200'z' +'U'#184#165#210#226#248#12':}'#0#228#4#172#29#18#1#144#9#208#234#209#237#209 +#230'7'#254'#'#229#3#211'Z!'#191'b'#14#24'P'#253#183#152#245#172''''#0'u'#4 +#202'F3'#208#127#221'w'#18#251#146's'#21'Z'#163#13#22#163'z'#155'?n'#154#212 +#151#2#174#214#26#248#238#223#247#129#179')w'#204#166#238'@'#159#217'!'#231 +#254#13#212#250#244#14':!'#19#193#217#188#21':Z'#183#129#27'I'#208#227'jfu"F' +'['#25'X'#11'+Y'#178#151#165#184':'#183#11#193'X'#166#31#215#11#192#235#13 +#176'('#128#199#209#12#238#150'u)O3'#170'C'#141#21#22#215#127#249'N@d'#2'l' +#29#148#9'@'#155#216#9#232#244#171'f6z'#172')'#241'7'#133'J'#7#5'U'#187#131 +#193#160#1'3'#154#0':'#150#11' '#239#182#31'X'#186')'#225#203#127#222#153'u' +#15#240'`0e'#215#195'a'#222#129#210#12#177#8#251#221#240#217#203'7'#131#163 +'i'#147#212#31'C'#191'A'#5'Y'#135#156#255'(k'#135'>'#154#209#157#190'B'#9'pa' +'>'#9#168#3'M'#0'w'#251'v'#240#218'S'#167'#Y'#180#193#154'2S'#7'y'#6#27#248 +'$ F'#0#209'ht@N@BJ'#24'P'#169'R'#149'nh-'#250#2'_'#165'I>'#3#5#189'p'#194'"' +'$'#0#29'X'#172'z'#208#27'5'#172'5x'#159'y'#0'i`'#131#230'mk'#224#211#23#174 +#207#202#151'1T'#152#11'*'#224#128#179#238#205#170'o`'#235#154#255#192#202'w' +#31#206#154'C/'#157#160'<'#130#163#174'x!mSv'#135#5#250#180'P'#184#28#128'`0' +#2#30'w'#0#220#168#1#184'Z6@'#160'#5)'#174#208#224']W'#160#247#253'D'#137'@d' +#2#240#142#192#186'A'#135#1#137#0#240#133#164#147#21'ov'#20#191#30'K'#200'''' +'$'#159#129#4#144'W1'#15'L'#22#27'j'#0#6'V'#19#160#226'C'#129']'#223'O&'#140 +#130'W'#238'8l@'#241'h)A'#177#240#189'N'#184'%+'#145#130'O'#158'_'#14'-5'#185 +'99'#167#191#176#20#141#135'C'#207#127'T'#234#203#144#4'='#5#209'('#2#16#12 +#132'Q'#248#253#168#5#4#192'Q'#207#149#2#139'Qnv'#174'D3`'#19'%'#255#8#26#128 +#144#8#132#154#128'o'#192#4' '#164#2#227#193#138#183'8'#10#30#12#199#20#139 +#196#151'E]'#129','#249'e`'#178#234#192'd'#212#129'ZC~'#128#236#204#5'x'#239 +#209#11#192#217#178'-+'#231'J'#23#166#237'q$'#204';(}'#195'#S'#128'6'#226'{' +#127#191'h'#216'}&=a'#194#236'}a'#193#145#185'7'#1'X'#10'P'#18#16'E'#0'('#4 +#200#17'@'#16#218#183'}'#3#177'h0'#229'y'#19#243#218'>U+'#226#164#254#215#163 +#224'3'' j'#2#245#129'@'#192#142'f'#128'w'#208#181#0#248'wQ'#141#211'v'#173 +'?'#162'Jq'#191#27#242#171#217#20#27#179'Y'#159#12#5#210'x'#176#158'k'#12#211 +#247#161#172#253#244'yX'#251#249#138#236#127#27'C'#196'n'#135']'#12'Sv;<'#189 +#7'E'#251#240#237#135#207'cN'#174#145#3#25#28'~'#201'c`)'#172#146#250'B'#178 +#131'^'#204#0'j'#6#18#165'n'#192'>'#206#254#247'z'#252#208#182#245#139#148#16 +#160'\'#150#136'N'#201'o'#249#8#5#159#194#30'uB'#30#0'nD'#8#246#129#214#2'$' +#203#129#241#128'fd'#143#194'F'#143#229#20'wH'#151'B'#201'ZS'#9#228#143#155#1 +'&'#179#14#204'V=h'#132#178#224',('#1'>W'#11#188'q'#239#169#153'?Q'#154'AYeG' +']'#189#2't'#166#244#21#21#189#247#247'K'#192#222#176'q'#232#7#202'1'#152#242 +#199#193#17#151'?#'#245'eH'#10'a&'#0#245#1#240'y'#3','#7#192#237'p'#160#9#240 +'Cj'#18#144'"'#234#169#206#179#127#129#247#181#161#204#210'J'#192'f'#3#12#182 +#28'8'#165#31#0#218#15#133#142#128'ai'#139#215#248#160#248'Ij'#141#5#10#198 +#207#3'#O'#0','#18#160'R'#176#142'A'#137','#12#7'}'#233#214'Cr"-x'#160'`?' +#236'+'#158'K'#203#177'H'#19#250#9#183#145#138'='#143#184#10'&'#205#31#157 +#163#208'9$ '#30#163#8#0#239#0't'#250#193#213#214#0#238#214#245')'#4#128#182 +#127'K'#133#197#245#3#222'l%'#199#31#240#229#192#168#193#147#167'pp'#13'A' +#168'%'#152#223#239'7!'#131#20'D'#19#170#201'['#157#133'o'#136'_'#163'P*'#161 +#176'z1K'#6#162'H'#128#206#168'ERP'#246'/'#23' '#13#252#240#206#131#231#177 +#24#239'p'#196#188#131#207#131#25#139#143#27#210'1'#236#13#191#193'{'#127#187 +'(g{'#229#165#3'r'#133#18#142#185#246#21#208#26#173'R_J'#250#209#143#175#141 +'u'#2'B'#251#159#28#128#140#0'P'#3'p6o'#1#175'c[J'#6'g'#158#206#191#173#200 +#224#166#196#128'VJ'#254#17'z'#2#146#6'0'#232#150'`BO@T'#31#10#240'GV'#190 +#201'Q'#242'J}'#246'F)'#191#167'A'#129'j'#227#207#184 +#251#179'A'#189'6'#28#244#195#138#27'G'#167'c'#172#176'r''8'#248#194#7'Xr' +#213#136'@'#143#250'?O'#0#188#253'O+'#191#199#229'C'#18'p'#130#189'v%'#211#12 +#4'('#229#177#224#228#252#246#175#240#249#2#1#212#0#231#4#164#209'`-h'#198 +#187#131#136#1'M'#6#18#15#7#141'F'#163'6'#180'%J'#28'~'#221#190'->'#243#29 +#226''''#170#212'z('#172#222#19#140'&'#29#152'mD'#0'\B'#144#208'&<'#27'j'#192 +#11#215#31#8#145'P'#250#26'Wd'#3#244#3'>'#253#174#143#7#245#218'_'#254#251'*' +#172'|{'#244#14'DUi'#13#176#223#153#127'd~'#148#145#138#4'_'#0'D'#241#255#160 +'?'#4#30#180#255#189#184'9[j'#192#221#250'['#138#227#215#160#14#219'+'#204 +#142#213'('#252#14#138#251#211'<'#0'>'#19#144'*'#1'['#7'3'#28#148' G'#155#129 +'U'#4#250'|>'#139'F'#163')'#142#199'a'#194'F{'#225#243#137#132','#217#29#129 +#170#168#24#1'X,'#204#15'`'#160#210'`'#230#7'P$'#29#129';'#156'-'#205'N'#235 +'_'#191'z'#19#190#249#231'_%'#249#162#6#11's'#193'88'#230#250#193#141#147#254 +#247#131#23'@k'#141#180#141'1s'#1'TA8m'#193#239'a'#206#1#167'g'#181'G_Z'#209 +#131#134'L+<'#133#255#200#254#15#160#253'/'#16'@{'#221'Z'#8#186'[S'#8#160#208 +#224#221'R'#160#247'Q'#185'g;'#17'@'#127#235#0#196#167#239#14';d'#3#226'V' +#185#197#158#255#167'PL1#'#249'$'#20'rK'#241'N`-'#174#0#147'U'#143#4'`'#0#173 +'A'#13'*%'#154#1#138#204#205#10#236#138'Wn;'#10'|'#206#214#236#156','#13#152 +'0go'#216#231#140#255#27#212'k'#159'_~'#0'D'#130#185'U'#211'/%'#168#15'C'#233 +#164']'#160'z'#151'}'#161'j'#230#226'a'#31'2dFz'#156'S'#255'#A'#222#254#167 +#30#0#184'o'#222#252#5#196'#'#225#20#2#24'o'#181#175#210#169#162'-x'#179#29#6 +#144#5#200'>'#187#222'>W'#241't d'#146'B4'#5'*'#154#188#182#179#221'!'#237 +#209#201'''Q'#131'PK)'#228'W'#206'dQ'#0#163#197#0':'#147#150#21#6#201#149#217 +#233#15'@h'#217#250#19#252#251#129#225#227'%^t'#194'r'#152#186#231#224'R'#130 +#159#185'b'#201#176')'#132#146#2#148';'#160'3'#231#225#162'4'#30'J'#170'g' +#195#196'y'#251#131#9'5'#174'a'#131#4'7'#9#184#211#254#199#213#159'e'#0#182 +#131#189#230#7'6"L'#144'c'#133'<'#30#153#146#223#246'5'#10#186#7'e'#141'V@' +#178#251#5#2'h'#196#197#219#217'S'#18#16#161'W'#2#16'&'#4#163#253'o'#212#233 +'t'#249#241'x'#188#188'#'#168']'#220#232#177#220#156'|'#18#10#184'R'#163#131 +#226#137#11#153#31#192'h3'#128#158#18#130#180#252#184#176#12'N'#12#238#138 +#183#239#251#3#180'n'#27#218'l'#192'l'#225#212'?'#127#0#154'A6'#191'x'#242 +#210#133#144'v;j'#132#131'HAo)'#128#252#242')P>mw'#152#186#224#240#156'4'#27 +#216#234#159#224#212#255'('#170#255'd'#255#147#240'3'#251#191'y+'#218#255#155 +'Xn'#128#0#163':'#212'^aq'#145'='#216#129#178#216#140#143#17#1#176#8#0'.'#220 +#212';'#189#199#193#160#132'>'#9'@'#28#10#196#251#202#240#160#213#155#28'%' +#143#196#19'2'#29'{'#18'k'#5'.'#135#194#9'{'#128#201'f'#227#205#0#174'.@AZ'#0 +#171#14#236'>)'#168#219#147#14#225#195#11#184#29#240#210#141#135#231'|^@~' +#197'T8r'#217#179#131'z-E'#0#158#191'f_'#169#223#194#176#135'J'#171#135#165 +#167#222#2'U'#179#150'd'#252'\'#253#253#221#211#243'h'#177#140#199'x'#245'?' +#20#129#128'7'#136#194#239#227#226#255#219#127#132#128#167'-%'#2'Pd'#240'l' +#201#211#249#182#163#28#186#144'8'#154#132'$ '#218#227#202#223'b0'#24'X'#8'p' +#221#186'u'#20'7'#140'ww'#222#30#175#137'"'#1#223'}'#247#157'*'#16#8#232#208 +#20#176#161#9'P'#138'D0~'#155'3'#255#250'`T9C8'#4#249#1#172#165#211'Q'#229 +#170#2#163'@'#0'z'#13#168#132'h@'#182'T'#0#196#202#127'='#12'k?z1k'#231#27'(' +#232#179'8'#254#246'7'#192#152'W:'#168#215#7#189'Nx'#241#218#209#25#2#204#4 +#138#170'g'#194#129#23#220';hm,'#221'`'#222#127'Z'#253#163'Q'#8#163#250'O' +#246#191#151'%'#0#249#161#5#237#255'h'#23#251#191#218#214#190'J'#173#136'R' +#248#207#129#127'6R'#8#144#239#7'H'#154'@k$'#18'q{<'#158'Pw!@B'#175#4'@'#155 +#16#9#160#230#160#212#23#0#239#171'j'#246'ZNv'#5'uG'#8'O$'#2#208'['#202' ' +#175'b&'#18#0#154#1'f'#3'W'#23'@'#141'B'#217#200'0'#25'd'#205#14'@'#188#255 +#224'%'#208#176'ae'#214#206'7'#16'L'#156#191'?'#236'}'#214#29'C:'#198#147#23 +#238'.'#245#219#24'Q '#243'`'#223's'#239#204#138'6'#208#27'HB'#168#244'7'#30 +'E'#2#8#161#250#31#8#129#223#205#169#255'n{+'#180'o_'#197'Z'#131'u'#14#2#137 +#133'&'#229#181'}'#143#194#239#195'?'#237'|'#8#144#217#255#168#181#215#247 +#214#12'T|'#206'^?'#27#161'3'#144'^'#175'7'#1#31#9#240#132#212'{'#214'uX'#151 +''''#15'"''?'#128#22#138'''.b'#171'?e'#4#234'L|8'#144#175#13'`'#166'B'#22'?' ,#204'Wo>'#10#220'm'#245'Y'#3'p;'#202#27#253#221#209'S'#17#144#128'~'#17#0#213#4'x<'#30 +#180#2#244'Vr'#4'"'#17'T5{'#244'G8'#2#198'dA;'#9#184'Zg'#132#162#137'{2'#2' ' +#13'@'#199#178#2'5'#172'6@'#208#2#178#146#27',B'#243#230'5'#240#254'}'#23'B4' +#18#202#234'y'#197#216#237#168'K`'#246'Ag'#164#237'x/\'#181#31#174#6'C'#155 +'~3'#134#238'A'#157#154'N'#185#247#163#172#159#151#171#252#227#212#255'p0'#12 +'Ao'#144#9'?'#173#254'T'#244#229'j'#222#200#156#131#130#253#175'VD'#253#19 +#243#236'?'#226#223#148#17#230'@'#18'`'#14'@'#222#254#167#134' }:'#0#9#253 +#145'F9'#146#128#18'I'#128#210#127#205'h'#10#20'#'#9'T'#198#19#138')'#155#157 +#133#183''''#18'2V'#149'A'#194'M'#13'B'#10'*'#231#161#25'P'#8#6#19#18#0#211#2 +#136#0'T'#160#16'*'#4'3gK'#198#223#195'h'#197#180'%G'#193#226#211'o'#202#206 +#201#184#170#31#142#0#248#216#127#208#23'd'#130#207#212#127#167#19#9#224';' +#212#12'"b'#251'?1)'#191'}'#21#170#255#228#8'"'#251#159#26#129#214'R'#248#15 +#23'h'#234#1#208#136#194#239#232#203#254''''#244'G'#10#153'#'#16#15#166'"?'#0 +#10'p>'#158#168#140#252#0#206#128'vi'#179#215#194#21'h'#147'#PFf'#128#14#205 +#128#5#140#0'H'#3#224#162#1#252#244'`j'#24'*'#151'u'#27#17#200#240'P'#225'$' +#26#127']'#9#31'>|%D'#130#190'L|'#157'L'#203#153#186#232#8'Xr'#234#13'd'#23 +'e'#228#28'O'#253'a7'#246#131#24'Cf`*('#131#19#239'zw'#200#199#233#235'7-<' +#206#21#254#196#208'LE'#2' '#231#31#18'@'#160#131'['#253#157'M'#155#192'M' +#222#255'h4'#169#254#235'U'#225#142'J'#139'c'#29#202'Q'#0#239's'#1#215#4#164 +'V'#176#255'qk'#17#154#128#160#240'G'#249'S'#13#158#0#186#250#1#144'eJ'#240 +'~'#234#215'\'#189#201'Q'#180'<'#22#151'S'#136#144#17#0'e'#255#217#202'g'#130 +#185#176#140'#'#1'3o'#6'h'#133#204#192#206'nA;'#148'Bw'#185#154'L'#182#186 +#219#248#191'7'#224#199'w'#159#2'O['#250'Zj'#149'M'#155#15#251'^xOF'#139'Q' +#234#214'~'#9#31#220'?z:'#1'I'#1'J_?'#231#137#31#134'D'#224#221')'#184']'#127 +#207','#251'/'#193'y'#254#185#213'?'#138#230'j'#136'y'#255'I'#253#15'P'#243 +#143'-'#223'@'#200#239'I'#137#255#151#24#221'[l'#186#0#165#249#250#241'>'#150 +#0'$'#148#0#227#177#234'PKo'#235#143#253'/\C'#127#192#252#0#168#5'h'#220'n' +#183#5#217#165#8'OXIf@'#131#219'r'#130';'#164#221#141#29#140#198#131'+'#20 +#172'8('#175'j&o'#6#232#144#0't'#160#210#169#147'Z'#128#16#17#200#5'8'#27#182 +#194#183'/'#255#5#26'~]'#201#134'F'#14#4'T'#133'f-'#29#15#19#230#239#15';' +#239#127'2h'#12#153#207'&{'#239#238'?@'#195#250'o'#165#250#184'F'#13#246#189 +#240'n'#168#222#245#128#140#158'#!'#168#255#148#249#23#137'B4'#200#169#255'd' +#255#7#220'T'#252#211#10#142#237#171'!'#134#143#197#249#231#202'e'#137#216 +#228#252#182#213'2'#136#7#248#248'?9'#131'X'#252#31#229#170#6'o7'#160#156#182 +'['#173'V__'#246'?'#161#223#4#128'f'#128'\'#156#15#128#251'rd'#155#9#193#152 +'v'#238'v'#151#237'\v02'#3'P'#184#149#26'5'#20#146#25'`6'#161#9#192#145#128 +'Z'#199#229#4#144'/@&'#242#5#236#176#234#15#225'"'#135#2'R'#177#234'~'#254#10 +#26#214'}'#11'm'#219#214'1'#205#128'&'#203#138#175#130'VvKq'#5's'#16#149'M' +#159#15'e;e?#'#239#233'sw'#131'hX'#186#136#198'hA'#213'.K'#225#192#203#31#24 +#212'k'#251'j'#132#155'L'#250#137'sC?c'#164#254#211#234#31#8'A'#136#188#255 ,'l'#245'G'#245#191'a=x'#237#245')'#225'?'#179'&'#216'^fr'#209#196'W'#26#11 +#228#22'*'#0#137#0#132#30#128#129'@'#192#137#230'z'#159#246#127'w'#215#214 +#227#243#132'|'#0#178#1#168'0('#26#141#150'Q8'#16#31#155#176#197#145#127'a8' +#166','#226#252#0'\4'#192'R6'#13#204'EU,$H~'#0#202#9' -@'#201#198#135')'#144 +#4#184#196#160#28'Q'#4#134#5'>z'#248'*'#216#246'}'#246'CT'#163#17#182#242'Ip' +#236#31#223#200#216#241')'#233''''#17#3'V'#214'M+'#249'C'#250#15#156#224#226#254'@'#158#255'8'#231#249#143#6#195','#243 +#143#169#255#168#250#19#9#216'kV'#163#25'`gY'#172#130#250'o'#211#249#27'K' +#140#30'R'#247#131'|'#250'/'#27#3'F'#241#127'R'#255#169#1#8#154#19#142#190 +#242#255#197#24#136#228'%'#195#129'V'#171#213#24#12#6#169'Sp'#25#17#0#238#171 +'j'#156'yg'#4#162#170'*'#193#12#160#162#10#163#173#4'l'#21#179#144#0#180'<'#9 +'hy_'#128#154'9'#3#169'T'#24'dBX'#176#135#14#194#144'$'#205'~^e'#250#191'3)A' +'~'#136#215#151#31#1#174#198#209#212#2'\zP'#133#224'9'#207#241'c'#214#135#26 +#141#226#139#253#19#252#129#216#234#207'l'#127#170#250#139#176#208#31'9'#255 +'H'#240#131'H'#0'>G'#27'8jWC$'#28'I'#241#254'O'#176#182#175#213#170'b'#30'R' +#255#241'O'#23'5'#0#1#222#254''''#239'?'#223#16#164#163#183#6' '#221']Z'#191 +#223#134#16#14#164#254#0#248#183#21'U'#13#150#21'H='#2':'#130#186#5#141#30'3' +'+'#17'f'#177'~'#185#2'Tj5'#20'T'#239#10'z'#139#141'E'#2#136#0'4d'#10#176'f!' +'*'#166#5'0_'#128#140#159'(<'#194#132'w'#168#160#130#159#215#151#253#14#127 +#16'cI?'#217#134'B'#165#129#179#158']'#157#222#131#242#131'>'#133#142'?'#204 +#246'G'#2#8'3'#225#231#9#0#247#142#186#159#192#239'la'#142'iA'#253#215#169'"' +#238#241'V'#199#175#188#250'O'#9'@'#164#254#179#240#31'%'#255#144#250'O'#225 +'?\'#160'='#253#9#255#9#24#16#1#208'&'#152#1#8#19#153#1#148#21'H'#4#128#143 +'Umu'#22#156#25#142')'#11#133'.A'#20#247'7'#228#149#129'm'#220#206'I-@C$@CDY' +#179#16'!/'#128'F'#137'e?E8'#151'AQ'#136'7'#174';r'#172#234'O"'#168'tF8'#227 +#201#244#246#148#16#135#253'('#238'O'#158#255'H'#16'U'#127'"'#0#15'n>'#170 +#254#179#163#250#191#10#205#189'0'#243#15#8#234#127#185#217#185#193#168#14 +#145#211#143#169#255#192#13#1#173#23#17'@'#147#160#254#163'lF'#250#10#255#9 +#24#168#196'13'#160#176#176'PE#'#195#168':'#144#6#134#224#133'T'#145')'#224 +#10#234#23'4{'#205#7#2#175#210'S'#21' '#211#2#198#239#14':'#139#5'4F'#29's' +#10#170#13'|'#207'@'#181#138'=G!'#231'g'#9#202#248'K'#234'O'#154#224'`'#223 +#193'0@'#235#166#159#224#223#183#159'6,'''#31#143#20'h'#205'yp'#234'c_u'#255 +'`_b'#213#205#239#151#21#251#240#163#190'H'#176#227#201#213#191#211#249'G' +#171#191#179#254'g\'#253#155'8'#231#31#175#254'k'#149#17#239'x'#171'}='#10'{' +#132#138#127#200#251'O'#237#191#240#200#181'|'#2#16#169#255#164'&v'#168'T' +#170'`w3'#0#251'{'#169'}>_0'#3'('#26#128#127'['#168'K'#16#158#188#130#8#0#168 +'m'#184#179#240#244'HLa'#21'j'#3#148#168#234#27#243#202#193':n:'#168'Q'#11 +#160#193'!D'#4'j'#22#18'$'#18'P'#240'aA9?V|'#16'W5'#130#176#229#235#247#224 +#243'G'#174'a'#182#223#24#164#3#133#1#143#190#251#157#244#28#140#15#252'S.' +#127'"'#202#175#254'h'#223'G'#130'a^'#253#15#176#172#191'@'#135#19'W'#255#239 +#185#213'?'#130'$'#193'1'#7#140'3w'#252'f'#214#4')'#244#23'F'#185#242#240#201 +'?'#228#253#167#240'_'#13#202'"'#205#4'l'#31#136#247'_'#192'`D-'#165'8'#8#184 +#193#161#204#25'H'#154#128'#`X'#208#234'3-'#21'F'#131#145'3P'#169#209'@'#225 +#132#221'@k'#178'0'#19#128#242#2'Th'#6#8'Z'#0#171#20'Lv'#16#150'%'#157'&'#253 +'m$:R'#176#254'?+'#224#235'g'#239#200'l'#14#244#24#250#133#233#251#159#8#11 +#207#186'eP'#175'M'#249#221#242'!?'#230#253#143'q'#5'?'#156#237#31#134#8#31 +#250#163#212'_'#218';'#27#214#129#223#209#8#209'H$'#25#251#215'('#162#254#9 +#182'v'#234#250'K1}'#10#3'Q'#247#223#22'~'#213#175#193#191'k)'#249#167#175 +#246#223#189']'#235#128#223#159#208'-'#24'm'#13'='#178#143#141#204#0#188#191 +#146'i'#1'2Y'#229#22'{'#193'I'#145#184#194#196'r'#2#228#10'P'#170#149'`'#200 +#175#2'k'#233'T\'#253#181'H'#2#168#5#232#185#196' V)H'#179#4'),'#168#232#140 +#10#176#19#245#148'" zk'#178#228'?'#195#27#171'^{'#8'V'#191#254#176#212#151 +'1'#6#30#135#223#186#2'J'#166#207#239#246#177#148#223'_/'#191#189#4#223#232 ,'#E'#245#167#213'?'#24'a5'#255#17'?'#231#252#11#177#216#127#7#180'o['#9'Q$'#6 +'z'#14#181#6#163#215#149#153':'#182'X'#180'A'#154#248#19#225'{'#255#145'&@+>' +#9'>'#133#255#234'q'#223#170#211#233#220'='#13#0#237#13#131'"'#0'J'#10'B'#150 +'a'#205'B'#3#129#128#153'J'#132'c'#177'X'#5'e'#6'rZ'#128#17#181#0#227#158#130 +'3'#144'T|'#138#255#231'O'#216#3'W'#127#19'G'#2#212'4T'#207#151#10#147'CP' +#221#233#16#148#241#166#128'l'#7#233#30#204#202#152#251#236#240#213#147#183 +#192#175#31#189','#245'e'#140#129#7#253#6#207'~'#249#215#129#190'Jt;'#145#12 +']'''#189#254'd'#207'Gx'#199#31#173#254#254'P'#210#251'O{W'#227#175#224'u' +#212#177'~'#0#148#31'@i'#194'jE4Pmk'#251#5#229'!'#138#199#160#252'o'#15'nT' +#250'['#207''''#255'lG'#217'#2p'#244#167#246#191#175#171#30#208#187'%g'#160 +#201'dR'#163#218'a'#196#191'Yj0'#229#3#224#237'*|'#175#228#11'8>'#154'P'#232 +#153'3'#16'Ww'#188'P0'#20#146#22'0'#133'9'#1'Y8'#144'6=_)H)'#194'h'#6'P'#18 +#145'L('#22#202#206'lQIa'#175#217#0'o.'#251#157#212#151'1'#6#17'J'#166#205 +#135#195'n'#127'iH'#199#232'n'#245#143#161#240#179#184#127'0'#196'9'#255'|A' +#206#1#232'qC{'#205'w'#168#25#132'x'#207'?'#183#250#151#24#221#219#172'Z'#127 +#155#200#249#151','#253'%'#225'GY'#169'C'#185'k'#182'Z'#173'.'#148#195#192'@' +#156#127#2#6'M'#0#130'3'#16#153'G'#231'r'#185#200#233'W'#140#23'T'#1'\'#153 +'pe'#155#207#184#208#30'0'#206'Kj'#1'H'#2'*'#141#22#242'(='#216'bE'#2#208'$' +#137#128#180#3#133'P($T'#11#138#251#6#140'`'#22'x'#251#250'c'#161'u'#211#26 +#169'/c'#12'"'#28'q'#215#155'PP'#189#243#160'_'#207#249#252'D'#141'>H'#168'#' +#188#227'/'#192#173#254'L'#248'}AF'#4#174'z'#180#253#157'h'#251'S'#211#15'z.' +#190'T%'#139#134'&'#230#183#255','#227'l'#255#16#18#0#139#253#163'l4'#144#240 +#227'mr'#0#178#206'?]b'#255#253'V'#255#9#131'&'#0#232#146#19#128#23'H'#163 +#195'h'#0'[%nU1'#210#2#28#133#199#198'P'#180#217#160'p'#210#2'P'#192'u'#150 +'"'#176'U'#204'fu'#1'I'#2'`'#14'A$'#1'V.'#204#153#2#192'L'#7#254#242'Fh'#170 +#176#223#217#10'/'#159#183'p'#204#233#151'C0'#20#148#194#9#127#255'b'#208#175 +#151#241#169#190#204#8#136'w'#198#252#185#130#31'A'#245#199#205#31'`'#197'?' +#1#23'e'#253#173#225'<'#255#209#206#213#191#216#232#169#177'i}'#173#252#234 +'O'#153#127#212#5#150'B}'#245'T'#246'KN@Z'#253#145#0#156'~D'#127'S'#127'w' +#184#222'!|V'#201#10'A'#179#217#172'#g '#222#199'B'#130#184#175#162'=j'#1#11 +#218#253#134#185#204#169'Ge'#194'D'#2'j'#13'X'#199#205#0'}~)S'#255#213#6#29 +#211#6'Tz'#13#31#22#228'{'#6'$'#253#1#248#142'd'#217'm)'#158'-|'#244#231's' +#161#246#135'O'#165#190#140'1'#136'p'#240#205#207'C'#217#172#133#131'|5'#159 +#236#203#219#253'B'#177'O'#156#217#254#188#234'O'#4#224#193#149'?'#192#217 +#254#142#237'?@'#200#211#193'&'#1'1'#2#192#255'T'#242'hp'#162#205#142#182#127 +'"'#202#135#254#216#234'/'#196#254#129#235#250'['#143'2'#215'N'#206'?'#170 +#252#235#173#243'oo'#24#18#1#144'3p'#221#186'u'#172'QH '#16'0'#161#6'P'#128 +#23'Im'#195#153#22#128'W2n'#155#179#224#247#225#184#202'"h'#1#148#2#172#209 +#27#208#20#216#13#212#148#19' '#242#5'(u'#184'Qr'#16#159#27' h'#2'2'#161#157 +'xOq'#193#158#222'E'#142'/'#172#207#158#176#19#174#12'c'#181#253#185#130#202 +#249#251#192#254#215'='#193#253'1'#136#223#148'X'#248'i'#229#135'8'#151#238 +'K'#142'='#177#227'/B'#234'?'#222#246#180#214#128#167'e'#243#14#171#127#185 +#197#181#209#168#10'R'#184#143#250#190#177#208#31'n'#173'(_'#245'|'#209#15'%' +#0'5S'#230#31'j'#224#254#193'8'#255#4#12'uYMf'#6':'#28#14#189'R'#169#180#225 +'E'#22#227'F'#137'AL'#11#240#133'5'#211#235#220#182'}'#4'-@'#193#180#0'5'#24 +#11''''#128#185'x"'#175#5'p$'#192#180#0#161'u'#24#223'>'#172#147#4#248#203#29 +'A'#138#192'sD'#0'c'#21'~9'#1#26#22'z'#242#243#171'Q'#251'T'#15#238#0#188#25 +#215#185#242#243#170#127#152's'#252#145#131#143#179#253#3#16#246'"'#17'x=,' +#233''''#18#12'B'#140#250#253'E'#185#196#31#20'|G'#133#197#181#5#15#21#19'V' +#127#161#237#23#169#253#192#245#252'k'#224#203'~'#221'}'#245#253#239#11'C&'#0 +'A'#11#160#182#225#168#9#144'/'#160#0#137#128#249#2#144#8'H'#19'(k'#240#216 +#246#246#132#181#149'r'#150#29#168'`5'#0#10#10#11'V'#206#3#141#201#10#26'#g' +#10#168#146#17#1'5'#243#7#176'b!'#218#152'#'#145'+'#27#30'I'#166#192#138#211 +'v'#129#144#215'%'#245'e'#140'zP'#225#218#161'w'#188#10'E'#211#230#13#234#245 +#9#174#212#143#247#250#199#217'l'#191#4#223#230'+'#30#140'$W'#127#138#251'3' +#199#31#222'v5'#252#2'AWK'#202#234'/C'#218#168'F'#213'_)'#143#134'zZ'#253#5 +#207'?n'#142#254#182#253#234#245#189#167#227#243#19#215#7'h4'#26#214'4'#148 +'O'#15#166#188#128#242'h\^'#177#213'Yxp'#2#215'uA'#11'P'#168#212#160#181#20 +#176'ra'#181#174'S'#3'P'#11'Z'#0#229#6#8'Q'#1#190#155'0'#136#202#134'G'#130 +'_'#240#213's'#22#130#175#189'Q'#234#203#24#213#160#197'e'#191#27#158#132#10 +'T'#255#7#140#132'x'#166#31#231#244'#Afv?'#173#252#225#8'K'#250#137#6'B'#172 +#221'W'#132#247#250'S'#165#159#139#154'}'#160#240#211' '#16'a'#245'/'#212'{' +#234#10#244'>'#10#243'u]'#253'i'#236'7'#181#253#222#142#130#223'@U'#127'H'#8 +#238#129#230#253'w'#251#254#211#241#25'v'#213#2#240#194#10#132#136#128#160#5 ,'8'#2#198'9'#173'~'#211'l'#210#2'@'#161'`'#14'A'#5#154#2#150#178#157'@'#159 +'W'#202#146#130#152#240#147#22#160#227'H'#128#181#15'S'#241#237#196'EY'#130 +'2y'#186'.]Z'#252#235#210#3#193'Y'#187'Q'#234#203#24#189#192#223#210#146#203 +#255#10#19#247#26#194#236#6#22#231#7#214#224#143#229#250#243'N'#191'X'#132#19 +#254#8#175#250'G|'#156#6#16#246#243#142'?'#159#155#21#4#9'q'#127#149'<'#26 +#168#206'k_'#143#199#139#241#171'?y'#254'Y'#213#31#173#254#184#175'U('#20#181 +#180#250'k'#181'Z'#7#146#192#144'W'#127#246#17#164#235#163#236'N'#11' _'#0'p' +#17#1#26'$R'#180#213#153#191#127'8'#166#178#10#217#129'$'#220'j'#189#145#229 +#6#168#13'z.)'#136'O'#17'V'#178#220#0#222#20'`'#141'D'#249#14'Bra'#196#24'$' +#213#128#225'J'#5#31#222'r24'#174#249'R'#234#203#24#149' '#13't'#191#27#159 +#134#178'9'#139#7#252'Za'#213#231#179'}x'#187#159#19'~Z'#209'i'#245#143#133 +'"'#201#176#31#229#252'GI'#248'q'#239'i'#217#10#222#214'm'#140' '#152#237'O9' +#255#248'_'#165#217#177#193#160#14'S'#166#31#9'4y'#134#133#145#223'Md'#251 +#147#240#163'L'#213#167's'#245''''#164#141#0#186#243#5#0'7H'#180#146#15#13 +#150#249'#'#234#9#181#238#252'%l'#29'Wt'#154#2#134#252'r0'#151'N'#229'j'#3 +#152#6' r'#8'R'#247' '#149#146'+'#24#18#154#137#178','#193#225#239#24'l\'#243 +#5#252#231#230#147#165#190#140'Q'#7'CA'#25#28'~'#223#187'h'#130#230#15#252 +#197#157#195'y:'#139'|'#226#156#205'O'#182'?'#173#234'L'#245#167#132#31'a' +#245#199'-'#26#8#254#127'{_'#22'kYv'#158#181#246'x'#230's'#238'XsWwW'#187#219 +'v'#187#227')'#241#0'v'#136#193#145#8#194'F'#8#5#148#4')'#145#176'P'#132#132 +#20#241#18'!9'#188#0'/H'#188'!'#224#1'x'#2#9#17#144#128'XHH$`x'#128#7#144#172 +'$'#216#198#221#158#186'k'#174'[w:'#243#176#7#254#239'_'#255'Z{'#237'}'#207 +#173#186#213']w'#170#190'K'#218'w'#15#247#12#251#236#189#191#239#159#255#165 +#166#253'='#181#243#222'wT2'#155#209'k'#23'\'#25#8#159'A;'#158'n'#223#232#238 +#161#229#19#192#159#152#184'?:'#254#162#230'_'#233'Y'#127'n/'#145#254#0#255#7 +'*'#27'}'#158#208')E'#4#136#173'V'#137#165'.'#139#22#128#174'A'#215'Q:|o'#208 +#251'b'#127#214'x'#153'+'#255'B"'#129' d'#144#247#174#146')'#176'zUH@'#8#160 +#225#248#3#184'V@'#155#2'l'#14#248#158'T'#15#150#127'I'#158#23'?'#201#243#206 +'x'#28#144#198#191#254#181'O'#169#217#197'D'#159'''3'#232'ay'#245#203'_S'#191 +#240#219#255#248'H/_'#250','#229#198#225'/'#137'>'#22#252#186#208''''#227'2_' +'m'#247'c'#129#218#191#24'C'#19#152'p'#155#175#249#184#207#182#191'Q'#253'=z' +#247'k'#171'['#127#28'x)'#138'}JY'#127#180#127'_<'#255'h'#251'u'#239'yK'#127 +#254']'#207#243#242'.'#203#11#160#31'q'#21'~'#0#163#5'dyp'#229'G{'#27#191#152 +#229'~'#13#0#246'E'#11#136#234#13#181#242#210'gT'#173#211#213'&'#128#144#0 +#182#131'Z'#173'0'#5#196#31'P'#174#28'<'#191'Z'#192'w'#254#229'?P'#127#244 +#187#23'U'#128#199'=z/}D'#253#153'o'#254#11#213#189'~'#235#253#127#8'W'#248 +#228',ssW'#242'['#187#159'l'#250#217'\K'#127'V'#253#167'"'#253#231'j'#255#222 +#247#213'd'#239'>{'#253'a&(N'#249'e'#199#223'{'#235#205#17'z'#251'C'#250#163 +#3#12#247#251#163#5'Y'#128','#253#197#7#240'p>'#159#239':'#158#255#15','#253 +'1'#158'7ll'#227'Pd'#7#146#22#128'9'#178'.!'#18' Q'#1#172'/'#239'Oko'#220#31 +#174'~'#206#19#135#160'1'#5#226#246#138'Z}'#233#211'l'#2'@'#250'G-q'#8'J'#243 +#16'?'#150'Ta3'#211#176';'#229#184#167'='#186#207#214'A'#244#244'G'#150#204 +#213#191#250'K'#175'?'#243#172'D'#23#227'h'#163#181'y]'#253#220'_'#251#166'z' +#229#231#223'g'#193#149#17#252'z'#30#175#178#211#15#246#187#145#252'H'#248 +#129#228'g'#2#152#217#176#31'r'#255'G'#219'w'#200#246#127#135'$'#255#140'I"O' +'u'#185'o=\'#244'_'#233'm'#191#157#231#252#137'\'#239'o'#26'~@'#250#211#254 +'m4'#251#132#244#199#12#192#181'Z'#13'>'#130#217'Q'#27'~'#30'e'#251#6'x' +#138'/'#237#248#203'otw'#223'i'#199'3'#132#249#172#227#143#176#129#164#159'-' +'H|'#241#252#179#227#143'0'#180'3'#164#177#183#183'7{'#214#134#31'O'#27#199 ,'B'#0'J*'#5#209'6'#140#206#187#213'h4`'#10'\VZ'#250#223#148#245#165'E'#26'\!' +#18#248'R'#166#194#136'I'#128#147'~"'#235#15#136#219#29#173#1#136'C'#16#25 +#130'a='#226#181'o'#138#134'l'#142#128#152#3'b'#18#148#148#128'e'#191#242#164 +#177#246#148'+'#253'?'#255#225'o'#169#31#253#193#191'='#225#147'z1'#6#188#249 +#31#251#139#127']'#253#204'_'#254#155#207'>'#163#239#147#158#13#145#250#182 +#194#207#218#252#162#250'/t'#184#143#19'z&s'#209#0'D'#253#167#237'>'#236#254 +#253#251#252#154''#174 +#230#163#254'i'#159#202#185#25'+/'#127'T}'#246#27#127'G]'#255#220'W'#223#215 +#251#151#206'>g5'#254#188'P'#251#179'\l~'#29#235#207#165#188'W'#199#251#181 +#218#159#10#248#19'&'#130#153#26'o'#223'S'#253#135'?`'#211' [,'#172#215#191 +#17#206#251'/'#147#221'/'#223#4#213#31'&'#192#152#22#132#130#224#12#180#170 +'?-'#152#231#15#14#193#145#211#236#243#185'I'#127#251#155#143'iX'#135' &'#20 +'%'#192'cZ'#241'Mt'#14#130'/'#0#166#0#189#230#10'-k'#15'G'#189#183'v'''#205 +#151#141'w_;'#250'b'#213'\'#135'?'#224'u'#21#213'$1'#168#17'["'#240'M[q'#19 +#30#180'='#5'i'#9#138#217#134'r'#201#21'8'#15'n'#129'{'#255#231#191#169#255 +#250';'#191'z'#218#167'q'#166'Gs'#253#138'z'#233#203'_S?'#243'+'#191#165#234 +#171#155#207#245#179'M#'#15'//'#8#0#21'}'#153#16#0#219#253#146#230#11#149#30 +'E> '#0#150#254#0#255'Tk'#1#179#193#158#218#187#253#135#244#191#194#238'W' +#176#251#189'd'#241#234#202#246#247'B'#178#255#149#168#254#180'L'#137#4'0' +#203'/:'#253#222#147'f'#159'w$'#1'h'#219'8'#254#158'W'#216#175':'#142#149#0 +#224#16#252#214#183#190#197'MC'#136#201'Z'#244#195'`'#152']'#22'-'#0'$pM!J' +#160#188#149'w'#247#214#190'0Kk=eH'#0#210#157'H'#160's'#249'5'#186#233'/IRP' +#205'j'#1#8#13#194#28#240'b'#157'#'#160#195#131#18'"4'#25#131#158''''#10#192 +#249#9#19#254#254#223#254'e'#245#240'";'#176'4'#26'kW'#212#205#159#255#154'z' +#235#24'@_'#26#206#196#157'6'#209'G&'#241#204#165#161'g.'#177'~V'#253#167#218 +#238'O'#5#252')'#183#249#30#178#211'o1'#30'j'#233#159'&'#186'4'#152#237#254 +#189'w'#218#209#180'oT'#127'z>9'#230'Ok4'#250#228'f'#31' '#0#244#249#203#178 +#12#190#128#253#227'p'#252#185#227#184'aa'#29#130#244#163'j'#164#1'tMn'#0'H@' +#136#0#29#133#215#147'<'#218#248#233#222#250#23'3'#130#189'q'#10#194#31#0'{' +#191's'#245#227#170#209#187','#192#143#181'?'#192'5'#7'b]>\'#20#14'A'#11#208 +'D'#144#151#10#136#156#159#251#164'_~'#18#254#129'C'#190#31's'#1#254#222#175 +#127'A'#141#30#221'9'#129#147'8'#187#163#177'vYK'#250'_'#251'['#31#12#244'O{' +#194#141#202#159#231#142#237'o'#192#159#217#226#158'\'#178#252'8'#140'7[X' +#192'C'#242#167'Sc'#255#143#9#252#127#164'f'#163'}Q'#253#19#235'7Xo'#142#238 +'m6'#251#144#240#244'Hz'#166#216'g'#12#144'#'#227'O'#21#210#255'.'#225#4#181 +#254#187#180' '#230'?'#251#250#215#191#158'>O'#199#223#179'\'#158#231#241#249 +#236#16#188'v'#237'ZD?'#166'I?'#142'M'#1':~]'#242#2#224#16#132'V'#176#218#159 +'7n'#222#31#174'|'#138#253#1#220#16'$'#212#243#6#196#177#234'^{K'#213'z'#235 +'L'#0'69'#168')'#249#1'5m'#10#232'D'#161'P'#207'1`'#252#2#158'8'#6#13#1'x:' +#195#235','#155#4#217'|'#170#254#227'o|^M'#182#31#156#246#169#156#232#208#160 +#255#243#234#19#4'zl'#31#247'0A'#23#207#216#251#210#196#147#255'!'#192'5Y~' +#185#128#31#146'?'#19#181#127'!$'#144'Ng'#236#245#239#223#253#174#154#13'w4' +#248#209#223#15#170#127#134'x?'#236#254#157#183#229#27'!'#253#145#245'7'#161 +#239#178'1'#127'I'#246'A'#143'?T'#254'm#'#227#143#204#229#217'q8'#254#220'q' +#18'0`-'#128#214#193#189'{'#247'0'#181'x'#11#141'C'#148#6#189'!'#1#248#5'6i{' +'e{'#210'}'#227#241#164#253#154'.'#24#242#25#208' '#129#176#214'P'#221#171'o' +'q'#255#128'@'#204#129#192#248#3#140'S'#208'!'#1#27#29'p'#27#140'B#p'#253#1 +'v6'#226#167'\'#134#147'L)'#150's'#193#148#224#223#250#245#159'S'#211#189#173 +#147#251#238#19#30'A\S'#221#151'^W'#215#190#240#139#234#245#191#240#13#213'X' +#127'N'#160'?'#202#253't<'#253'&'#191'7wm'#254#212'H'#254#2#252#25#131'_''' +#251'X'#181#31#14#192#217'L'#245#31'|_M'#247#183#216''#239#186#170#127#179#217#156#16 +'^'#22#199#225#248'+]'#138#227#248#208'e'#223'cL'#1#218#174#199'q'#220'Y,'#22 +'k'#196'vp'#2#26#18#192#246#6#189#180#247'`'#216'{s'#127#214#188'a'#253#1'a' +#164'g'#24#170#183'T'#239#198'[*nuu'#211#16'h'#2#13#153'h'#148#246#217#31'P3' +#230'@A'#2'z'#242'Q_'#151#17'{^'#209'r'#253'e'#245#234'/'#253'U'#181#249#214#23#143#241#203#158#208 +#198'/'#175#188#206'H{'''#179'O'#247#242'3'#224#207'X'#234'g'#21#201#207#241 +'~'#2'}'#6'{_'#136#0#165#189#147#157#247#24#252#186#181#151#158#212#211#207 +#210#228#229#149#237#31#212#130#197#196#181#251#149#14#249#193#238#223#18#213 +#31's'#252'q'#200#143#182'w'#8#15#195#231'Y'#236's'#132#203'vb'#195#166#9'_' +#191'~'#29#154'@'#11#181#2#240#7#208#15#191'*aA'#204'1'#8'=p5'#247#252#206 +#157#254#234#167#198'I}'#213#23#167#160#23#232','#192#184#217'c'#18#8#26'uM' +#0'l'#18'D'#146')'#136#16#161'4'#18'A'#152#208#180#21#243#29#18'0'#221#133'<' +'!'#0#229#2#255'9D'#12#142'a6'#227#225#253#159#168#255#254#219#191#172#134 +#247'~z'#130#183#236#217#6#8#186#190#178#169#214'>'#254#179#234#213'?'#251'+' +#234#218#159#248#165#163#191#249#176'k'#246'<'#158'PG'#218'kG'#191#201#231 +#207'm#'#143#194#230'/'#210'{y'#153#27#169#191#208#192#135#148#135#250'O'#132 +'0'#217#190#163'F[?"'#146#152'Ks'#15']'#223#143'?7'#187'{o7'#194#217#208#177 +#251#231#244'l'#163#197#23#18'='#182'%'#215#159#193'O8'#128#25#176#141#132 +#159#157#157#157#169'x'#253#13#248'_'#24#2#224#239's'#19#132#8#248#173'$I' +#216#31'@'#11'B'#130#208#4#216#31'@'#235#149'\'#249#157'w'#247#214'?='#205 +#162#14#146#132#152#4#184'7'#0#145'@gMu'#174#189'%'#229#194#162#1#152#252#0 +'h'#1#146'-X8'#6#203#154'@a'#18#248#197#228'#N1'#209'Y'#237'='#248#255#254 +#205'?R?'#248'w'#255'DMw'#30#158#234'y'#4#245#166'jn\S+'#175'}'#130'$'#252 +#159'R7'#190#244#231'T}'#253#202'i_'#158#202#200#203#210'_Rz='#227#236#147'r' +'^'#6#191#163#246'['#240#139#202#15#224#179'z'#207'*'#191#246#1#204'v'#31#168 +#193#195#183#233'usn'#238#193#239'Cyo'#154#229'W'#187'{?'#236#196#147#190#168 +'l'#214#238#23#167#223'.'#236'~ZX'#245#135#211#143'0'#240#152#222#187'O'#166 +#241#4#9'?'#199#233#245#175#142#211'x'#202'}'#152#2#180#6#9'X'#127#0#217'?' +#151#29'S'#0#26#1#252#1#221'$'#243#187#239#246#215'?'#179#200#163#134'o'#204 +#1#216#247'$'#233#153#4#174'|'#156'H'#160'nA'#207'f'#128'h'#4'L'#2#145'&'#1 +#21#233#168#2#147'@h'#8'@r'#5'|'#129';'#214'2)'#225'Y'#159#166'|'#240#222#219 +#234#143#255#249#223'W'#15#254#247#31#208'C99'#190'/'#162'k'#17#183'{'#170'u' +#245'e'#181#250#209#207#168'+'#159#251#170#186#250#249#175#210#245#175#159 +#246'%x'#250'03L'#219#130#30'c'#231#23#253#251#140#167#223'H~V'#225#231'I'#1 +'x'#6#255#156#155'{'#178'&@'#255#155#238#222'U'#163'G'#210#206'{Q'#168#253' ' +#146#203#173'}L'#231#181#131'/q'#156'~H'#245'E'#188#127#15#133'='#180#141'F' +#144'P'#251#225#244'{D'#207#245#222'I'#218#253#238'8'#141'G|'#169'?@f'#22'b' +#167#160#210'Z'#0#182#215#233#1#236#204#147'`'#229#189#254#250#167#19#21#198 +''#28#234'#p'#231'R'#217#151'I' +#184#15#142'>'#14#251#137#31'`'#188#253#30'-'#239'jR'#224'i'#188'S'#142#22#0 +#252#27#205#193#237#245#198#240#145#11'~z'#182#140#221#15#240'o'#153'J?z'#230 +#239#201'4'#223#232#240#131#6' '#199#150#237#247','#151#242#196#190#215#245#7 +#208#197'h'#18#248'{'#164#10'm'#18#192#175'Hx'#144#179#4'iY'#3#9#204#210'x' +#237#246#254#250'''3'#207#15'Yr#<'#24'j'#18#8#27'm'#213'!'#18#136#154#29#2'~' +'h'#181#0#228#8'x'#236#20',H'#128#181#129'J'#152#208#212#17#24#18'`'#231' t' +#148#220#153#144#164'`'#132#234#147#246#244'+y'#10#4'1'#219'{'#172#230#253#29 +'5'#31#236#210'zO-'#134#251'\9'#217'}'#249#13#213#185#249#250#217#149#224'G' +#189#142'K'#239'C'#17#222's[u'#219#16#159#11#254#170#212#151#220#254'L'#154 +'z'#148#9'@K'#255#209#214#143#213'd'#239#30#189'n'#206#145#1'~'#159#228#248 +#175#214'F'#15#174#180#251'w'#243#2#252#200#244#131#221#15#240#195#238#127',' +'!'#191'{R'#223#15#27'n{:'#157#14#136#0#160#194'%''e'#247#31#245'r'#31#251'w' +'W'#243#3#200#28'@3'#209'Md'#10'*'#237#16#196#26'$'#176'J m'#141#23#181#205 +#187#253#213#183#136#4#2'm'#207#11#9'p'#4#160#201#230'@D'#234#170#213#4#156 +#181#23#11#17#24'M'#128'L'#2#21'j'#191#130'2s'#17#26's'#192'M'#30'2UEn'#163 +#145'3l'#26'|'#232'F^'#10#226#8#224'M'#21#159#210#158'}'#137#239#187'i'#189 +#218#230#215#128#207#13#248#173#228'_0'#200#217#241'7'#211#161#190#225#163 ,#183#213#172#255'H'#146'|'#140#218#175'k'#251#187#209'd'#235'zw'#239'=m]d' +#153'x'#252#145#236#3#240'#'#151#127'['#233'y'#253#24#252#216'F'#178#207'I' +#198#251#15#27#167#253'('#151'R'#133'I'#11'h#'#25#136#180#128'K'#208#4'h'#31 +'Z'#0'H'#0#164#176'B@lM'#147'x'#237'N'#127#245#19#169#23#198#218#179'/>'#1 +#174#12#172#17#9'|L'#197#157'uM'#10#198#15'`'#192'/m'#198'=!'#2'_z'#10'('#19 +'%'#16#231#160'2'#230#128#239#21#4'`'#174#214#139'>]'#241'y'#25'.'#234']sGl|' +'O'#202'wm'#3#143#170#179#207'8'#250#0'f'#212#243'/'#28#240#27#231#31#175#167 +'j'#240#240#7#164'ImK'#140'?'#209#196#145'j'#240#175#213'F'#247'/'#183#145 +#226'k'#193#159'I'#154'/g'#250')]'#226#251'H'#230#245#131#228#199#164#30#143 +'1'#171#207'|>'#31#31'w'#170#239'Q.'#227'i'#223'F'#207'8'#5#209'@'#4']'#132 +#208'P'#212#9#15'"O'#224#138#201#20#4#9'$y'#220#189#189#191#250#214'BE'#245 +#18#9#136's'#176's'#249#13#21'w/'#177'/'#192'3'#181#2#177#244#16#176'&A'#164 +#253#2'b'#14#168#208'/'#146#134#140'i '#13'F'#172'F`'#175#152#163#10#156#159 +':'#163#23'f'#148#146'xl'#171'.}'#140#193#159'i'#201'oc'#251#169'n'#226#1#240 +'+'''#204#151'K'#190'>'#171#244'3'#241#250#211#177'\B'#127#201't'#162#6#247 +#191#175#18#228#246'''s'#157#21#232#128#127#163'1'#184#189#217#28'>'#210#138 +'F'#150';'#146#31'*={'#252#149#238#237#7#240#223#151'p'#223'cH'#254#197'b1' +#186'v'#237#26#156#131''''#234#244#171#142#179#240#236'Z'#18#232't:1'#177'b' +#157'.T'#27#149#131#232'$'#4#2'0$ '#173#198'A'#2#205'L'#133#237#219#253#181 +'7gY'#220#214'}'#0#196#174#143't)qk'#243#150'j'#172'^'#215#146#222#1#189#217 +'f-'#160#166#147#139'8Dh'#219#142#7#133's0'#240#10#141#192'I rs'#137#205'f~' +#224'''='#225#10'?'#211#173'>'#175']'#130#142#248'h='#245#250','#191#178#185 +#211#151#223#5#191#246#238#235#248#190'J'#181#202#175#4#176#156#155#159':' +#246#254'\'#131'?'#183'j'#191'd'#242#17#25'$'#147#161#234#223#255#158'Ji]H~' +#157#225#167#210','#191#220#217#255#201'j<'#217#21#193'o'#193#175#138#190'~' +#166#190#255#1#164#191#132#254#30#163#190#159#198#168#209'h'#204#143';'#207 +#255'9'#222#165#227'?'#15'S:'#140#162#161#241'x'#140#134#162#29#169#25#184'd' +'4'#1#165#251#7#160#177'H'#143#174'X'#147#16#218#188#211'_'#251#216'8'#173 +#173'x2'#239#160#206#254#211#18#191#190'rU'#181#214'oiM'#192#250#1'B'#157',$' +'d'#224'I%'#161#138#138#190#2#166#152'Hq'#132#192#244#23#240#203#145#2#167 +#243'P.'#161#195#234#21#245#202#127#158'q'#228'O'#220'='#179#195'{'#234#129 +#167#255#238'|'#201#207#21#144#27#129#175#14#11#237'9'#133'<*-b'#251#197#162 +#129#207#210#127#190#144'p'#223'B'#180#129#5#255'o>'#216'a'#155'?'#157#142'u' +''''#31'Z'#148#128#223'#'#241#127#181#187#247#163'n8'#27','#3#191#210#225'>' +#128#31'-'#188#31#144'&'#203#14'?'#228#248'#'#220'G'#175#27#161#200'G'#157 +#146#211#239#131#222#157'c='#23#248#3'~'#252#227#31#251'h%F'#154'@'#195#228#8 +'`V!'#164#12#131#8'h'#141#164'!4'#26#237#210'Uk'#17#240#234#247#6'k'#175#15 +#23#245#13'c'#14'0'#17'DP'#241#145':'#220'Sm2'#9'PG'#224'K?'#193#2#252#142'6' +#192#254#0'c'#14#232'm'#155'8Ti9f'#195#134#158#201'(tr'#207#171#253#7#204#173 +'=KW'#250','#143#202#245#202#157#166#156'%'#208#27#162#200#164'eW'#150#29'H' +#231'Ui'#1'z'#227#237'O%'#212#151#207#231#142#195'O|'#0'D'#2#147#221#219'j' +#178#253#158#222'w$?>'#223#167#15#184#222#219'{'#167#21#204#199'K'#192'ob' +#253'h'#234#137'4_+'#249#233#153'}L'#160#223#165#231#23'5'#0' '#137'3'#1'~' +#231'2'#159#153#193'$'#240#189#239'}/@x'#16'$@Z@W'#26#137#184#154#0'"'#3#235 +'('#28#162#27#129#18#227#248#254#160'wko'#222#188#234'['#245']k'#2#200#26#244 +#227#26#153#4#31'Q'#181#206#166#150#248#174#244#23#223#128#206#17'0'#249#2 +#129#205#30'TN'#6#161#237'@'#236#251#5#1'8m'#201#221#26#3#235#164#170#22#27 +#157#181'+~F'#134'Wr'#228#185#155#249#1#240'k'''#159'H'#251#180#144#250#165 +'t^'#168#251#137#238#215#175#9'@<'#254#226#237'7'#26#0#19#0#166#233#154'N' +#213#136#164#254'|'#180#171#227#251'IR'#2#127#160#146#217'K'#221#221#31#214 +#131#197'T'#192'o'#28'~F'#242's'#129#15'r'#252#209#220#3#146#31#26#0#212#254 +'('#138'v'#7#131#193#136#180#218#19'M'#243'='#210'u?'#237#19'XvN&<'#184#181 +#181#21#211'Ek'#208#5'4$'#128'lA'#180#24#135')'#192'$@'#251']'#248#4#232'X' +#237#209#168#243#210#246#180'}SO8bH@2'#0#137#8#234#189#171#170#185#241'*'#131 +#222's'#181#129'H'#147#129'''-'#199#149'q'#14'F'#21'm'#192'u'#16#154'z'#2'&' +#3'eg)'#202#29'2p'#181#255#220'!'#133#15'f'#26#188'(C'#210'u\'#137#159#23#181 +#249#202'sT}'#199#201'W'#168#249'"'#245#197#214#231'2'#222#180'p'#242'1'#232 +#165#148#215'z'#252#141#234'/'#170'>'#219#254#201'B-'#250#187'j'#184#245#14 +#29#27#219#200#128#174#229#151#137';'#189#249#228#165#238#222#15#185#170#143 +#235#8'l'#168#143'S|'#149'd'#249')'#237#224'C'#184#15'R'#255#1#212'~'#178#249 +'w'#233#249#29'6'#155#205')i'#183#201'iz'#252#151#141#179#250#4#150'H'#160'A' +'c2'#153#160#145#8#155#3'B'#2' '#3#209#4'T'#151#128#136#190#131#181#253'Yc' +#243#225#168#251'Z'#166#194'PKn'#169'!'#8'C1'#9#186#164#13#188#193#213#132#0 +'>'#28#129#158'D'#4#220#16#161#155'9'#168#156'Z'#2#229#18#129#231#23#179#22 ,#251#198'I'#232'j'#3'E'#30'a'#238#148#25'z'#213#146#195#3#153'mg'#245#182#188 +#223#187#249#4#127#134#233#191#167#156#198#28'|'#188#2'zP'#168#3'~'#211#173 +#135'U}'#9#239')'#167'O?'#188#245#249#28#251#11'+'#249's)'#238#201'%'#207'?' +''''#240#143'wn'#171')-'#153'y]*R_f'#238'iG'#147#237#171#173#253#219#129#151 +'&:'#151'(3e'#189#240#246'3'#248#149#206#242'CO?'#246#248#195#230'G'#168#15 +#224#167'eH'#166#236#20#177#254#179#6'~}'#205#207#238#176#133'C'#4#254#136'.' +'b'#147'L'#130'.H@:'#10']6'#225'A%$'#128#16'!H`'#158#133#237#187#131#222#235 +#179#172#214#230'y'#3#140'o'#192#132#10#163#186'j_zM'#197#221#205#2#248'f1'#4 +#16'W'#142#7#186#211#144#178#243#19#6'em@'#26#143#148'#'#6#158#149#244#172#29 +','#137#30#152#249#11#142'zG'#206#204#147#227#222#168#167#189' ?'#252#128'i' +#197#229'y'#14#248'3'''#150#175#28#27#223'Q'#247'y'#31#182#190#27#222'K'#11 +#137#159#27#208''':'#181'7/'#145'@'#194#245#19'#'#146#250#243#225#142'h'#11 +':'#188#167#138#30'~'#217#165'F'#255#246'Zc'#244#152'S{%'#212#167'tz/O'#223 +'-s'#248'A'#237'7'#137'>'#15#207#19#248#143't'#239'N'#251#252#12#9#244#251 +#253#184#213'j5'#232#226#162#197#248#154#132#4#225#16#188#12#173'@i'#18#232 +'1'#9'('#175#158#7'~'#252'p'#208#189#185'?o]-'#146'|t'#184#15'&'#129'oL'#130 +#245'W'#8#236#177#205#9#240'L'#5'a'#172'5'#6#171#9'p'#10'qPT'#21#210':'#15 +#220')'#202#140'V'#224#21'D'#160#138#237'"JP'#172'K%'#200#206'f^9'#236'='#235 +#173'z'#158'w'#245#153#31#215#188#152'>'#219'='#149#188#188#145';/'#178#245 +#249'n'#18#143#177#243'MG^'#145#250'*u$'#191'c'#235#27'/?'#219#237#12#244'E' +#161#254#207#11'R'#192#255#23#240#242'?'#254'!i'#1#19#177#247'u|'#223'|n'#228 +'/&'#215#218'{?i'#132's'#174#229#23'G'#4#236'}'#147#222';'#145'P'#31#171#253 +'J'#194'}'#178'F'#169#239#222'y'#0#127#233#254#156#209#193#231'W%'#1'd'#12'"' +'Y'#136'.'#178'!'#1#152#5#151'0'#247#128#210'y'#2'm'#186#212'u'#146#184#241 +'p'#222'X{0^'#185#149#145#236#215'@-'#155#4'H!'#6#9#196#157#13#201#7#144#136 +#128#1#191')$'#10'+$ '#11#147#138'h'#6#156'N,'#145#130'\'#162#6'V'#27'x'#26 +#17'8'#221#137'rG;'#240#202'^'#196''''#220#177#147#184#149#249#225#135'+'#167 +'i'#140'{'#175#244'6'#167'<'#23#0'WO'#0'~^'#150#248#202#22#239'8N>c'#239#187 +'v'#191#149#252#139#18#240'Y'#19#152'N'#213'd'#251#167'j6'#220'b'#130'@'#179 +#15'+'#241'3=__'''#154'<'#190#210#234#223'!'#149'?'#205'm'#147'@]'#210#235'd' +#248#245#165#178#15#222#254'G'#146#215#255'H4'#129'}8'#252'666'#206'<'#248 +#237#253'9'#227#195#146#128#18#159#128#146'2b"'#130#21'h'#2#146'%h'#178#5'9Y' +#136'$r'#155#192#211#160';'#23'''Y'#212#184';'#236#189'6Kk'#29'S'#0'd'#27#140 +#8#184#163#214#26#19'APo'#21#17#1#167#138#208's'#251#10'<'#137#8#220#148'b' +#153#194#220#134#14#205#196'%'#165')'#204#202'k7'#132'h'#230'4'#176#135#14 +#132#20#143'n:<'#151'q'#152'*o'#156'v'#246#144#145#236#230#127#249#146#216 +#189'~'#157#14#227'I'#230#158'!'#2'k'#227'/Q'#247'S'#145#248#2'|'#181#208#149 +'|J'#236'w'#215#222'7'#206'?E'#251#147#254'=5'#221#189#173#19#127#210'%*?}' +#209#229#198#224#189#149#198'h'#199#203'MI'#143#14#243')'#1'?'#173#199#180 +#223#151#154'~4k'#132#196'GE'#31#182#183'I('#161#145'''{'#251#201'\=s'#14#191 +'e'#227'<'#16#128'=OC'#2#251#251#251#17']'#228':]x'#174#29#136#162'h'#157#246 +'a'#6'\'#18''''#225#134#212#14'th'#27'}'#4'b'#210#0#162'G'#195#206'K{U'#147 +' '#212#201'C'#138#171#11'#U'#235']S'#245#181#27#156'M'#200#14'@'#199#4#0#1 +'(''Dh'#136#192#148#24'+'#153#181'X'#249#229#198'#'#182#21'Y%'#179'P'#231#15 +'-'''#3#207#209#255#139#222#4#166#151#161'{UN'#136#4#170#143#176#19#182'+m' +#229#5'Y'#149'CxN'#165#158#27#198'3N='''#150'oA'#159#154'm'#0'>#b'#0#160'u' +#17#143'Z'#20#13';'#173#199'?IJ>'#0#132#0#147#209#158#154#236#252'D-&'#131'B' +#213#135#169#128#207'pU'#254#238#238'O'#234'^2'#245't'#229'@'#213#211'?'#147 +#22#222#168#234#219'q'#193#15'O'#127#24#134#232#235#223'_,'#22#227#25#141#243 +#2'~'#140#243'B'#0#246'\'#221'<'#1'8'#252#232#194#183#232'p'#143'.'#254#186 +'8'#7'A'#4#156','#132'V'#227'$'#129';$u'#27#180'_#'#240'E'#131'i}'#237#193 +#164#247'j'#150#235#249#7#180#147'0`'#21#222#244#16#132'Y'#208'X{'#133#139 +#138#188#208#137#6#200#220#3#134#8'4q'#4#162#29#136'&`{'#13'8]'#137#131#138 +#163'P'#8#161'hF"'#19#152#28'H76'#161#195#162','#185#240#15'T='#3'G'#200'1' +#248#160'%'#203'y^yi'#25#240'z'#229'4'#218'TE|'#159'%'#189#153'l'#195#190#230 +#160#154#207#246'~'#154#149#218'r+'#150#250#153#6#173#0'_'#137'='#175#164#131 +#143'2'#4#144'h'#239#127':''u'#127#231']5'#239'?'#210#173#186'L'#26'p'#146#10 +#209'h'#149#31#149'|'#151'['#253#187'P'#249'9'#188#143#254'}'#160'!m'#239#219 +#24#191#1#191#210'e'#189#15'e'#198#222#199'R'#207'? '#1'4>K'#25'~G'#29#231 +#137#0#236'9'#155#180'a'#218#142#26#141'F'#13#17#2#164#7#27#231#160'8'#5'/' +#217#218#1#29'&'#132's'#176#6#147' Sa'#252'h'#220'~'#169'?onz@'#166#137#20 +#216'f!Z'#226#195',h'#192', B'#176'R'#223#1#188'Bd '#22'B'#16'M@9'#25#132#214 +'I'#24'>A+8'#204'GP'#154#242#188#186'v:'#26'['#13#193#161#130#165#190#130'CB' +#143'O'#200#187#183#160'.%'#224#23#26'H.'#234'})Q'#199'%'#0#215#147'/'#158'}' ,#163#226#219'p'#158'q'#240'Y'#208#167'b'#231';'#158'}l'#11#192#181#202#175 +#215':'#175#223'8'#2'%vO'#235#217#222'}5'#222#131#186'?'#211#199#229'3y'#157 +#167'"'#245#147#201#149#230#254#237'f<'#27'z'#26#247'8'#15#146#250'%{'#223'&' +#248#208#178'C'#210#254'1'#9#153'G'#210#213'g'#155#128#191'K'#160#31#160#149 +#23#13#152#8#231#10#252'K'#158#138's3,'#9#208#197#15'k4'#200#12'h"B'#16#4#193 +#170#227#23#128'F'#0#18'X'#5'A B &A'#148#19#196''''#139#176#253'p'#178#242 +#202','#141'ZE'#235#240#162'('#200#147'9'#10'k'#221'+'#170#182'rM'#5'h'#162 +#17#154'y'#8#3#199#28'pM'#3#9#17#134'RK`'#10#140'l'#14'A Z'#129#201'$t'#218 +#146'U'#137#160'j*'#148#202#146'+'#21#137#21'G'#162';'#242''''#146'A'#165#216 +'f'#217'c'#235'Jw'#222#168#172'e;7'#137'<'#153#27#190'3'#137'<'#142#164'wc' +#249#2'|'#29#203'/'#192#175#137#192#9#241#217't^'#13'r'#237#3'H'#10''' -'#139 +#225#14#219#249#9#171#251#186'I'#167#146'L>'#179#246#232#207'j}t'#127#189'1x' +#228#177#180#207'3'#147#214#171'$'#190'O'#203'\j'#249#135#226#233#135's'#15 +#210#30#249#252'['#178#191'O'#207#220#160#223#239'O'#187#221#238#156#8' =o' +#224#175'>'#9#231'm'#148'J'#137'I'#19#136'%u'#152#157#131't'#140#181#1#144#0 +#250#11#210'z'#141#253#2#202'k#}'#152#182'czDc rw'#218#186#180'=m_'#207'H' +#164#235#226#31#237'$'#132'fP'#168#249#145#170#181'/'#169#6#17#129#31'7'#180 +#244'7j'#191'k'#14#24#127'@'#224#164#17#187#166#129#201'!p'#29#133#198'<'#176 +#4#224'W'#18#139#180'G'#192#246'.'#180'='#11#141'iP'#152#3'n'#194'Q'#217';' +#239#29'XU"s'#202'Az'#217#181#144#187#161'='#137#215#231'y'#197#214#151'B'#29 +#163#226'gy'#145#167'oSu'#139')'#183'\'#201'_H'#253#20'M5'#197'VO-'#9#184'a' +#190#220#170#251#198'!H'#18#127#184#173#166'{wU:'#27#22'f'#129#11'~'#241')' +#180#162#217'.I'#253';'#152#156#211'C/`}n'#172#242'+'#221#187#207#228#244#143 +#140#167#159#182#183#197#219#191'Ej'#254'6'#9#24'h'#2'}'#147#215#239#244#241 +'3'#192'?7'#224'w'#30#135's;,'#9#16#1#4#8#19#18#27#195'9'#216#154#205'f=h'#3 +#244#127#244#26'D'#171'1h'#2#240#11#160'r'#144#211#135#17'% '#192'D'#244#17 +'A'#146#249#241#163'I'#247#230'`'#214'X'#247'l'#241'O'#1'^?0 '#142#184#166#0 +#206'B'#244#211'3'#166#0#167#13'['#208#23#161'A'#27'!'#136#180#244#207#131 +#224'@wb'#235'#p*'#15#11'"P:'#164'h'#211#139#165']'#153'*L'#4#151#24#150'^"' +#175'r'#197#170#26#192'!'#14#190#18#15#184#245#246#216#204#242#146#189'o5'#0 +'7W'#223#128#221'z'#244#141#202'/'#246'~'#166#167#219'V'#226#228#179#128#183 +#29'{'#202#224#183#197'='#236#253'_'#168#217'`K'#205#246#239#17#240#199#146 +#16#148'X'#147#1#251'J:'#246'D^2'#187#212#26#220'n'#215#166'}'#248#28'<'#143 +'U~V'#252#233#146#177#163'Oz'#247'Me'#178'Nk'#239'C'#237#151#153'{9'#190#15 +#149#159#20#206'1b'#252#245'z'#29#164'a'#234#249#237'U:O'#227#188#19#128#249 +#13'H'#24#194#154'#'#4'p'#14#18#1'4E'#27'X5'#190#1'!'#1'6'#9'h'#191#7#191#0 +'m'#195'A'#8'm'#128#222#231#251#163'$'#238'>'#28'uo.'#178#168#233#154#5#202 +'I+V'#226''''#136#219#27#170#222#187#174#130'F'#235#160#212'7'#170#191'C'#4 +#134'L'#148'K'#2#2'z'#229'U'#157#133#14')x'#166#10'Q9~'#130'J7cq$'#30#152#241 +#232#176#154#3'[m'#231#188#196'm'#180'a6'#189'B+'#240#158#2'zW'#213#247'*' +#222'|'#29#215#207#172'Df'#7'`R'#168#251#158#1'}'#226'H~'#163#13'd'#134#8'2' +#142#223#207#6#143#24#248#217'bb'#237'~'#227#216#203'\u'#159#132#252'J}'#252 +'p'#179'9x'#224#209#142#199#165#130#224#29#218'f%'#198':'#250'f'#210#187#207 +'t'#238#133#167#223#130#31#19'v'#160#137#7#254#143#254'}'#163#209'h^'#241#244 +'+u'#14#193#127#200#147'q.'#135#141#16#160#156#248#214#173'['#225#214#214'V' +#141#14#213#137#173#17'*'#236#145#250#134'b'#162'u''u'#24#251#200'#hC'#27#160 +#237#26#251#6''#199#245'3'#201#231#183'R'#159#22 +#19#226'c'#149#31#160#199#2#149'_'#8#1#29'|'#198#244#182')'#217#253' '#140 +#132#180#206#236'<'#132#249#142#4#156#23'h'#176's'#240#219#223#254'6'#251#5 +#232#166'E'#4#234':'#28#132'259'#155#4'XD'#27'0$'#208#165#183#146'>'#175#26#4 +#167#24'f'#1#129'='#160#199'%'#220#157#183'6'#247'&'#173#203#137#10#226#3'D' +#224#23#246'>4'#130#176#209'!'#173'`'#147#8'a]'#249'a,m'#198#140#3#240'0'#167 +#224'!'#5'F'#146'3'#224#149'|'#3#166#23'A1'#169#137'%'#2#153#224#196'LuV'#10 +#18#10'7'#148#156#132#14#3'xF'#210'Wd'#153#145#246#7#28'{N'#252#222#149#252 +#182'B'#207#237#200'c'#192'/'#132#160'\'#167#159#149#242#142#211#207#233#224 +#131#255'-'#166#251'j1'#220#162'e'#155'I w'#205#128','#147#150'_'#236#220#195 +'~'#222#138'g'#187#27#141#193#131'Z'#184#152#150#212'}'#199#214#151#182']' +#166'c/l'#249'}i'#226#193#158'~Z?Fl'#159#164#252'>='''#3'2/'#199#244','#205 ,'{'#189#30#192#127'n'#237#253#165#128'9'#237#19'8'#166#223'T2'#9'h N'#211'di' +'O'#128#167#155'j'#137'@'#204#3#236#19#9#168#14#1#174'A'#251'u:'#30#25#179 +#128'@'#21#236#205'Z'#27#187#227#230#229#133#10#235#218'F'#247#203#211#141#17 +#1'('#223#183'ZA'#173#177#170'""'#131#176#185#162#163#4#230#181#142'3'#208'H' +'~'#255'0-'#192#152#8'&'#147#208#248#7#248#23'V2'#12#221#28#130#220#137#12#8 +#27#152#196#220#131#209#130'Jz'#174#167#172'j/'#255'V'#226#245'+Iyc'#227#27 +'{'#223'4'#227#176'Z'#128#1#186#172#165#192#166't'#220'M'#237'u'#215'('#203 +#157#13#31'3'#240'S'#132#242'2'']W'#166#220#206'e'#209#192'O'#243'vm'#182#189 +#217#24'>'#140'|H|'#28#23#191'>'#171#251#220'%'#208#205#232#227#240#30#242 +#249'i'#189'/'#237#187#182#205'"'#206'?'#28#199'k'#166'F'#229''''#205'2;'#207 +#246#254'a`y'#17'G'#201'$@'#168#176#213'j'#197#2'lT'#12'v'#197#25#184'J'#140 +#143#232#0#22#248#5'D'#27'P-!'#2#152#5'a'#206'd'#128#174#225#190#191'7k'#174 +#237#142'[W'#230'y'#216#176#206':'#3'|'#207'H'#242#162#2#17#154'@'#212#222' ' +#173'`C'#5#141#142#227#252#11#184#231#160#231'8'#2#139#168'@u'#10'3'#207#2 +#222'F'#5#2#209#4'\'#237#192#151#144#161#149#252'U'#7'`%'#159#192#12#183#149 +'6'#239'+'#235#28#176#213'zF'#229'O'#171#234'~&fA'#230'T'#234#21#206'?~'#189 +#209#0'*a'#191#18#9','#230'j6'#218'f'#208''''#211'A'#161'!'#152'L@'#199'l0}' +#0#16#210#235#198#147#199#27#4'|x'#246'M'#190#241#19#212'}k'#235#211#210#151 +#238'='#12'~'#186#207#144#254#216#222#15#130#128#19'{h'#153#145#244'_ '#196 +#247#162#168#252'K'#129#242#2#15'k'#18' J'#128#178'b'#186#185'54'#25'!R@'#227 +'Q'#152#5'+ '#1#133'Y'#137'5'#9'@'#27#232#209#210#17#179#160#238'{~Lk'#16'A' +#8'"'#240#9'}'#251#179#250#234#206#164'ue'#150'!'#135#192#128#177#144#218#5 +#176#3'K'#10'a'#212'Tq'#7'Z'#193#154#10'j'#141'2'#184#157#210'bo'#9'!'#184#9 +'C'#133#25#224#21'~'#2'''R`o'#173'u'#11'H'#180#192'M$'#146'W'#185'~'#128#210 +#172#185#178'*'#194'}'#174#244#207#156#233#180#225#240#203'd'#178#205#138#183 +#191'*'#245#179#188#18#1'H'#212'b'#178#175#230'P'#241#199#187#156#216#147';6' +#189#251'~K '#244'}>1B'#183'6f'#224#7#200#15'6'#192#231#138#221'2'#240#149#6 +'?'#128#143'N'#189'#'#201#229#223#23#240#195#185#135#25'y'#25#248#240#240'+M' +#14#211'N'#167'3G'#3#143'7'#223'|'#243#133'R'#249#15#0#228#180'O'#224#132'~#' +#155#4#208#6'h;Z]]'#141#160#13#200#140'D0'#11'z'#162#17#172#233#244'aM'#4#180 +'&'#18'Pm'#186#235#220'l'#4'&'#129'o'#136' '#131'F'#224'y'#195#164#209#219 +#153'4/O'#211'Z'#7#200#180#192'tH'#160'4'#231#128#152#0#232'I'#16#212'z*jt' +#201#168#232#210'~'#173#210'[`I'#231'!G'#213'/'#171#254'x'#173#18#159#128#241 +#234'{'#182#152#168#8#4'x'#149#181'*7'#222'PE'#218#190#178#13'8'#157#146#221 +#204#13#241#21#234#190'w'#192#23'P'#201#233'7'#145#0#2'v2'#27#170#20'v'#253 +#164'O'#219#131'"'#219#207'x'#239#197#137#231#153#254'~v;'#231'p^'#167'6'#217 +'^'#175#143#182'|'#143'sy'#213'2'#224';'#237#185#173#147'O'#233#9':'#160#214 +#239#25#240#3#248'$'#12#246#200#222#135#3#16'z'#254#132'l'#253#217#139#230 +#232'{'#26'8>,'#227#128'6P'#171#213'bz^0G'#22#166'*G'#159#129#30#28#133#240 +#17#28#212#6'T'#211#152#5#4#180#18#17'(.'#25#11#163#253'yc}0k'#172#205#210 +#168'Y'#0#180#172#198#27#245'>'#247#202#196#0'B'#8#27'+*'#170'wT'#0'B'#128#19 +#209'!'#0#27#14#148#162#162'jc'#210#146#9#224'4"'#177'w'#185#218#140'D'#194 +'~n'#233'n)'#12#232'j'#2#198#9#232#168#251'n'#184'/'#207'+I?yA'#0'H'#206'I' +#166'}'#150#244#201'tH'#255'J'#10''' '#155#20'i)4'#200'Q'#0'K&'#184#184'Y' +#138#4#158#149#218'x'#167#25#209#135'i'#204#231#154#160#24#248#0'<'#235#252 +'b'#231'/*'#234#254'H'#226#250#198#214'G'#136'oW'#188#251'}'#186#215'C'#168 +#251#176#245'www'#23'd'#231'sl'#255#19#159#248'D'#254#162#131#223'yB>4'#163 +#164#13#192'7'#176#178#178#18#17#25#208'f'#204'}'#6'h'#1#216#225'(\1'#218#128 +#210#26#2#250#18'"'#164'h'#136#0'Y'#132'1a.'#160'g=dg!'#20'r'#210#11#166'i' +#220#216#155'5'#215'G'#179#218'Z'#162#130#200'S'#5#25#20#146#220#169#7#240 +#141#243#207#28#15#148#31'7Y;'#8#226#22'}B'#131#9#130#29#141#202'5'#3#156#181 +#141#18#136#170#159#171#194'$'#200#171#209#1'U'#16#130#155#244#227'6'#222'4' +#7#149#201#4#212'$'#192' u'#18'}'#12#232#177'dp'#188#211#146'/'#198'l'#199'c' +#201#200'4/'#1#190#186'm'#181#137#204#250#20'`'#195'7'#195'y'#191'S'#159#236 +'t'#163#233#158#199'I'#5'b'#143#232#188#131'Ll|l'#1#244#236#224's'#128#143 +#134#29'#'#153#153#135#195'{'#198#222'7'#14'>'#216#249't'#175#199't'#159#167 +'('#224'[b'#235';W'#224#197#29#31'6'#2#176#191#217'h'#3#155#155#155#254't:' +#13'1S1'#252#3'0'#11#232#223'-'#178#7#225#12'D6'#225#138'8'#7'W'#196'y'#168 +#157#132#158#215#164#199#177'A'#159'V;@'#4#30#224#166'Q:'#152#215#187#253'Yc' +'}'#148#196'+'#185#22#233'V'#133'7)'#191'E'#135#225#162#243#176'K'#8#185#152 +#0#164'x'#16#25#212#153#28#130#176#206')'#201'>'#214'd>'#148#10#139'J'#191 +#244'`'#219#242'"G'#160#236#237#247'Jf@^$'#7#25'3'#1#248'K'#209'H'#19'@'#159 +'p'#197']'#150#152#245#212#206#198#163#242#195#0#15#252'f%'#147#1#239'1'#251 +#181'`1&'#21#127#167'GK'#232#193'!'#160'L'#237'0'#147'B'#154'iu'#223#177#241 ,#171#18#223#216#249#3#1'?'#146'w'#0'~^'#144#194'K'#210#30#197';'#172#238'w' +#187#221#217#214#214'V'#226'x'#248'_X['#255#176#241'a$'#128#210'o_f'#22#208 +#225#26#217#130#28'6$'#2#128'F'#208's'#23#209#6#208'k'#160'm'#136#128#128#140 +'(CL'#251#16#211'Rc'#204#157#238'|'#180'*O'#9#206#251#179#198#234'h^'#235'M' +#211#168#157#230#162#25#24#199#158'r'#10#131'J'#132'`'#156#127#190'>ig'#187 +#152#199#16']'#144#27'*'#8'"q:'#134'tX"'#17#158#164'"'#243#233#232#181'/Z' +#134#150#190#137#216#218'R)'#151'9'#139's'#28#146#28#18#158'_'#207#225'7'#7 +#196#182#196#183#240#1#184#0'W'#165#130' 1#8T'#167#242#154#191#24#213#163#249 +#176'G*>Zn'#23#17#8#145#246'8'#3#2'>x'#18#206'}''o'#223#134#244#164'K'#207 +#184#2'|'#187#208'=d'#224'#'#172#135'L>"'#2#246#238'#'#149#151#8' '#251#176 +'I}w|'#152#9#192#140#3'f'#1'B'#127#244'p'#196#198'QH'#255'o'#9#216#187#244' ' +#245#184#150#128#136'@4'#2'v'#20'*'#204'T'#164#188':4'#2')4'#10#173'V'#224'#' +#29'E'#251#10#176#13#208#18#9#212#137#12#186#147'E'#220#157'$q'#139#224#16#26 +'S'#161#232''''#232';'#205'D+'#246#190#152#2#150','#148#155'*l~'#150#252'@.' +#30':$$'#232#216#255#182'EW'#169'1'#191#201#250'S'#165'\'#0'['#221#167#138 +#148'`'#6'u'#166'T'#158'/'#7'<'#214#181' '#25#215#131#249#176#25#207#251#237 +'h6'#242#149'8'#243'<61'#140'moA'#175't'#202'.'#24#133#213'|Y'#230#198#179'o' +'T}'#19#211#151#5#158#254'>'#128'OD>'#140#162'h'#12#137'O'#199#167't'#127#23 +'t<'#249'0'#170#251#203#198#5#1#20#195's'#205#130';w'#238#4#198'?'#128'9'#7 +#232'!B'#205'@'#203#241#19#244'$'#140#200'k'#248#7#20'"'#6'9W'#26#214#161#209 +#18#216#17'm@BQ'#24#248#30#200' '#160'c>'#180'^F'#165'/'#229'<'#244'wL$@'#132 +#208#153'.'#162#206'4'#141#219#153#14#8#138#237'^T'#4#22'e'#194#170#168#10'T' +#254'R'#240#219#191'U'#207#127#241#207'J'#246'_'#197#7'`Gn'#205#0#3'z'#183 +#145'g'#225'G(^g'#0#31#251#201#164#22#206#135#173'h>h'#147#164#15#252'4)^c' +#153#197#128'^Y'#21#255#160#180'/'#169#250#144#248'p'#224')'#1#187#164#242 +#150#164#189#1'~'#171#213#154#141'F#'#246#236#147#169#151'~X'#213#253'e'#227 +#130#0#202#227#128#127#192#16#1'=H'#28':'#164#127's2'#17#173'['#244#0#162#216 +#168'+'#26#129#171#13#176#143#0#175#229#228'#'#223#135'Ya'#200' 8@'#6#128#174 +#158'`'#132'a'#142'|<"'#132#246'x'#17#183#146'4'#168#207#179#176#190'H'#131 +'Z'#170#160#219'k'#251#221'8'#245#140'K'#191'T'#13#184'$'#239#223#141#8#228 +#203'~t5'#20'h'#134'['#251#239#185#210#221#253#191#6'n'#228#167#211#208#207 +'fQ'#144#204#234#225'bL'#18'~'#16'.'#3#188#233#18'"'#182'C'#174#127#145#168 +#248'E'#214#30'-'#11'g'#218'-'#171#234'+'#157#190#203#224#167'{'#224#18#192 +#144'#'#179'I'#194#210#254#2#248'O'#31#23#4#176'|,%'#2'Z'#135#244'@'#177'F'#0 +'`'#211#186'I*f'#139#236'J'#214#10#132#16#12#9'X"@'#19#18#218#6'y'#212'@'#6 +' '#2#218#14#133#12'|'#218#151#194#2#206#177#169#16#130#178#128'N'#179' '#154 +'fQm'#158#16')'#164'!'#19'C'#146#250#181'E'#22#214'r'#195#2'y'#17#247#207#221 +#219#235#29#248'y2'#242#165#155#252#170'R'#11'0'#253'7'#240#178'E'#236#167 +#179#200'O'#166'Q'#152#206#226' '#153#214'BZ'#252'd^'#10#31#28#4#188#212#222 +#235#20']Ro'#178#220#168#19#185'JM'''#30'U'#150#246'('#207#157'J?>'#11'|'#168 +#251't'#157#135#0#191#0#30'j>&'#221#132'I0E'#6#159#249#172'%'#192'_'#242'K?' +#188#227#130#0#158'<'#150#18#1'|'#4#237'6'#201#183#217#140';'#20#19#1#160#203 +#144#169'5h'#201#186'm'#246#141#198#0#243'@i'#13#2#4#2'2`"'#144#133#181#2'!' +#4#175'B'#8#162#229#235'F'#0'E*'#191#201#243#247#2'"'#129'('#205#252' '#205 +#149#159#229'~'#0#19'"'#203#184#160')'#160#181#143#207'&'#158#241#233'8'#142 +#249'x'#15' '#233'{y'#202#139#162'Wy'#10#219#153'g'#142'y'#244#137'~'#158#6#4 +'N'#218'N#?K0C'#14#127#181#237#249#167#247#204'1}Z'#185#20#11'j'#213#222#145 +#240#12'B'#237#197#183'q{+'#237'Mi'#174#210#192#159'HW'#158#145'*'#128#15#169 +#143#184'='#239#147#186#143#10#189'1'#173'!'#241#209#140'snl'#252'G'#143#30 +'e'#23#192#127#250#184' '#128#163#13'K'#4#223#253#238'w=4%'#5#25#208#161#144 +#164'N'#212'l6'#1'd'#214#10#232#129'lxz'#174'B'#180'('#3#240#153#4'h'#223#144 +'C'#211#209#10'jB'#6#136#30'DJG'#16't'#20'A'#19#2#242#10#8#139#220#2'Dr'#130 +#217'y^'#164#249#225#143#239#219'm'#140#220'sN'#250#224#207#240#14#252'#?' +#176#225#202#240#138#242' '#249#0'z;/'#210#133'9'#25#152#147'!3'#237'P'#212 +#21'x'#158#199#217#3'.'#224#233'X"'#221'vy'#150#29#167'@'#7#224#7#152'a'#223 +#143' '#229#165' '#135#215't|'#4#208'C'#210#3#244#240#230'c!'#2'^'#192#171'O' +#199#211#11#224'?'#219#184' '#128'g'#27'%"@'#212#224#210#165'K>I'#164#144#30 +'D&'#3#180''''#4#168#145'a'#8'2'#192#2'2P'#152#202#220'Y'#132#8#140'i'#192 +#230#1'k'#5#30';'#14']B`2'#160'c'#1'b'#8#162#29'0'#17#152#22' '#24'y'#145#223 +#167'r'#183#11'`'#165#17#192#129'y'#9#151#254'J'#227#225'We'#253'_)'#227#164 +#211'h'#215'L$'#130']'#25#231#157#150#242#136#238#231'6Vo='#248#6#240'R'#142 +'k'#194'x'#0#255'd'#137#212#231'E'#18'vX'#189#23#21#127#14#208'c'#166']'#196 +#241'WVV2x'#245#137#148#243#11#224'?'#219#184' '#128#247'7l^-'#194#135#244#16 +'z'#198'<'#160#135#18#128'E'#143'B6'#17#224'/'#160'}'#16'B'#131#164#22#8#129 ,'5'#0#172'}'#157'Q'#216#144'F'#165'L'#4'R'#177#200#239#177'D'#160#29#136#161 +#199'A}'#144#129'v '#210#182#246#31'(]'#151' '#219#170#152'}'#132#165's'#209 +'4'#200#156#244'!, '#160'Vy^v'#3'j'#183#164'W'#184#253#10'U>7'#157't'#217#129 +''''#222'{'#165#165#188#5#190'S'#127#207'^|'#165#165'=/p'#236#161#209#6#253 +'~'#168#243#19#172'%'#166'?!'#160'c'#31#196'0C=>'#169#247' '#142#132#142'!y' +#7#128#207#156'8'#190#156#253#5#232#159'e\'#16#192#7#27#150#8#240#0#186'Z'#1 +'I'#168'`gg'#7'R;'#132#137#0#243#20'd'#0'p'#139#218'_'#23#240'#'#215#192#128 +#159'5'#2'G30D`4'#3#215'g`'#9'Ai'#13#1'$'#16'pI?'#231#28's'#242#156'''`'#247 +#12#17'('#19';8D'#19'p'#192#207#0'/'#8'AK~'#165'{'#230#27#213'>'#173#0#222 +#196#233#141#138'o'#156'y'#0#191#241#228'O'#5#220'v'#27#199#1'~'#243#127#168 +#245'x}'#20'Es'#0#31#210#30#234'='#17'jz'#227#198#141#20#160#135#180'w'#242 +#245#249'|O'#251'a8'#143#227#130#0#158#223'8'#160#21#12#6#3#175#211#233#4#180 +#248#244#0#179#153#0'I'#14'S'#129#30#234#152#30'n'#164#31'C'#202#215#232'X' +#141#142#25'S'#192#152#5#150#4#232#189#186'eY'#161#21#132'UBP'#154#20'x'#246 +'$!'#4#156#147'/'#224#247'DK'#176#219#149#243#182#170#188'2'#210#221#181#225 +'s''>/'#210']z'#234#25#208'/'#28#208'W'#213'|+'#245'E'#221#231#181#144#194#12 +'*=IwH'#249#5'@O@_'#200'g&'#0'=T|c'#219#11#232#205'y'#186#235#139#241'>'#198 +#5#1#28#207'Xj"'#208#218#7#25'@3'#160#7#157'M'#5','#4'nL'#127#142#233#206'"' +#151#16'|'#157'?`4'#6#248#22'P'#189#24#11#17'D'#134#16'@*'#244#186'RD'#1'D@' +#175'E'#196#194#19'2`"'#192#182#28#243#212#146'x`'#201#142'/'#0#159#27#21'_' +#21'j=7'#212#196'B'#223#195#192#167#207#157#211#246#1#2#192'B'#191'k'#230#2 +#158#200#14#210#29#239'Y@'#194#131'H'#232'xj$'#189#1'=]'#175#188#162#226#187 +#235#139#241#1#199#5#1#28#239#176#215#215'8'#14#141'f'#0'3aoo'#143#9'!@i'#218 +'`'#16#192'l'#160#151#134' '#3#172'A'#8' '#7':'#206'k'#128#158'^'#202'k9'#30 +#154#227'J'#252#4#202'1'#13#180'I'#192'f'#128'oH'#0#231#148'!.X'#144'@q'#178 +#5#208'sQ'#237'-'#240#177#166#247'X'#201#175#196#161''''#4#176'0'#251#134#0 +'d!<'''#6#228#144#236#176#223#23'Fk'#0#224#137#3#210#181#181#181#148'~?'#212 +#250#140'L'#168#28#160#191'p'#232#157#204#184' '#128#147#27#165'D\'#233'Y' +#168'@'#8#208#12'n'#222#188#233'-#'#4#12#2'M '#160#14#5#212'au'#219#172#149 +'&'#14#214#0'0'#0'v'#1'k6'#155#217't:'#205#232#156#243'e'#18'~'#9#224#171#219#23#227#152 +#199#5#1#156#141'Q'#186#15#198'\'#192#182'1'#25#8'H'#30'H'#129'H'#192'#py' +#134#24#8#148#30#200#129#128#232#25'r'#160'}'#143'@j'#23':'#206#128#199'6>' +#19#219#4'V'#187#141#181#207#253'L'#148'"'#0#27#192#243'>}/o'#155#133#190'?' +#7#208#137'Dr'#128#156#190'+'#235#247#251'9'#129#222#2#29#146#189#221'n'#231 +#6#236#248#156#11#192#159#205'qA'#0'gsT'#239#139''''#192'Q.1`'#13'r'#184'u' +#235#150'7'#28#14'-9'#224'8'#8#2'k'#179'O'#192#230'5'#8#3#235#245#245'u'#187 +'m'#6#128#140'5Iy'#11'J'#2';o'#3#220'X?~'#252'8'#199'6@'#142#253'e@'#199#250 +#16#176'/'#219#191#24#167'8.'#8#224'|'#141'e'#247#235#0'9`'#24#130'0'#3'D' +#177#236#3#161'Y`]'#175#215#15#0#211#128#218#29#6#224#24#0'9'#214#135#0#253 +#176'c'#23#227#12#141#11#2'x1'#198#179#220#199#163#190#246#168#224#189#0#249 +'9'#30#23#4'p1.'#198#135'x'#252#127'p'#251'ut'#3#215#244'"'#0#0#0#0'IEND'#174 +'B`'#130'('#0#0#0#128#0#0#0#0#1#0#0#1#0' '#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#1#0#0#0#1#0#0#0#1#0#0#0#1#0#0#0#1#0#0#0#1#0#0 +#0#1#0#0#0#1#0#0#0#1#0#0#0#1#0#0#0#1#0#0#0#1#0#0#0#1#0#0#0#1#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#1#0#0#0#1#0#0#0#2#128#128#128#2'UUU'#3'@@@'#4'333'#5'III'#7'@@@'#8 +'999'#9'999'#9'MMM'#10'FFF'#11'FFF'#11'FFF'#11'MMM'#10'999'#9'@@@'#8'@@@'#8 +'UUU'#6'333'#5'UUU'#3#128#128#128#2#0#0#0#2#0#0#0#1#0#0#0#1#0#0#0#1#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#1#0#0#0#1#128#128#128#2'UUU'#3'UUU'#6'@@@'#8'FFF'#11'III'#14'<<' +'<'#17'III'#21'EEE'#26'DDD'#30'DDD"EEE%AAA''DDD)AAA+AAA+AAA+DDD)AAA''GGG$FFF' +'!DDD'#30'==='#25'@@@'#20'@@@'#16';;;'#13'FFF'#11'@@@'#8'333'#5'UUU'#3#128 +#128#128#2#0#0#0#1#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0 +#2'UUU'#3'+++'#6'999'#9'NNN'#13'CCC'#19'BBB'#27'GGG$DDD-CCC5DDD'#211'SC6'#219'W@0'#227'[>+'#235']<('#238'^<'''#240 +'_<%'#243'`<#'#245'a;"'#247'a:!'#248'a;"'#246'`<$'#245'_<%'#242'^='''#240'\=' +')'#237'Z=,'#233'V@1'#225'RD8'#217'NG?'#210'JHD'#204'IHC'#204'HHD'#204'GEC' +#203'FEC'#202'EED'#198'EED'#195'DDC'#190'DDC'#183'DDD'#172'DDD'#157'DDD'#138 +'DDDtCCC\DDDDCCC.@@@'#28'DDD'#15'III'#7'UUU'#3#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'UUU'#3'@@' +'@'#8'KKK'#17'HHH CCC5CCCPDDDlCCC'#134'DDC'#156'EED'#172'FEC'#185'GFD'#193'G' +'FC'#198'HFC'#202'IGD'#203'PE;'#213'VA0'#227']<('#239'a;#'#246'd9'#30#254'g:' +#29#255'g:'#30#255'i<'#30#255'j='#31#255'j>'#30#255'k>'#30#255'l?'#31#255'l@' +#31#255'mA'#31#255'nA'#31#255'm@'#31#255'l@'#31#255'l?'#31#255'k>'#30#255'j>' +#30#255'j='#31#255'i<'#30#255'g:'#30#255'f:'#29#255'd9'#31#252'`<#'#245'[=*' +#236'UA3'#223'MF?'#210'IHC'#204'HFD'#204'FFC'#203'FFE'#200'DDC'#197'EED'#191 +'DCC'#182'DDD'#170'CCC'#152'CCC'#129'DDDfDDDKDDD1FFF'#29'@@@'#16'III'#7'UUU' +#3#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'UUU'#3'II' +'I'#7'@@@'#16'@@@ FFF7DDDRCCCoCCC'#140'DDC'#163'EED'#180'EED'#191'FFC'#198'I' +'GD'#201'ME?'#208'UA2'#224'\<('#238'b9 '#250'f:'#29#255'h;'#30#255'j>'#30#255 +'m@'#31#255'oB '#255'qD '#255'sF '#255'uH!'#255'|L#'#255#128'O$'#255#133'Q%' +#255#136'S&'#255#139'V'''#255#143'X('#255#145'Y)'#255#142'W('#255#139'U''' +#255#135'S&'#255#131'Q%'#255#128'O$'#255'yK"'#255'tG!'#255'rE '#255'pD '#255 +'nA '#255'l@'#31#255'j='#31#255'g;'#30#255'e9'#29#255'a;!'#247'Z=+'#234'RB5' +#221'JGC'#207'HFD'#204'FEC'#203'FFE'#200'EED'#196'DDC'#189'DDD'#177'CCC'#159 +'DDD'#135'CCCjBBBMBBB2FFF'#29'III'#14'UUU'#6#128#128#128#2#0#0#0#1#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#2'333'#5';;;'#13'BBB'#27'AAA3BBBQDDDqDDD'#142'EED'#165 +'EDB'#183'FEC'#194'HFD'#200'IFB'#205'SA3'#223'^;&'#242'e8'#29#255'g;'#30#255 +'j>'#31#255'mA'#31#255'pD!'#255'tG!'#255'~M#'#255#141'W('#255#151']*'#255#160 +'c-'#255#169'i0'#255#178'n1'#255#181'q2'#255#182's3'#255#183't3'#255#184't3' +#255#184'v3'#255#185'v4'#255#186'w3'#255#185'v3'#255#184'u3'#255#184't3'#255 +#183't3'#255#182'r3'#255#181'q2'#255#175'l1'#255#166'h/'#255#158'a,'#255#149 ,'\*'#255#138'U('#255'zK"'#255'sF '#255'pC '#255'l@'#31#255'i='#31#255'g;'#30 +#255'c8'#31#252'[<*'#237'RC8'#218'IGD'#205'HFD'#204'EED'#201'DDC'#198'EED' +#191'DDD'#179'CCC'#161'DDD'#136'CCCkEEEJDDD-@@@'#24'FFF'#11'@@@'#4#0#0#0#1#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#1'UUU'#3'999'#9'FFF'#22'CCC*DDDGDDDiCCC'#138'EED'#165'FEC'#184'FEC'#194 +'HHD'#200'QC9'#216'[<*'#237'c8'#31#253'g;'#30#255'j>'#31#255'nA '#255'sF!' +#255'|M#'#255#141'W('#255#158'a,'#255#173'k1'#255#181'r3'#255#185'v4'#255#187 +'y4'#255#189'{4'#255#191'~5'#255#193#129'5'#255#195#131'5'#255#196#132'6'#255 +#197#134'6'#255#198#134'6'#255#199#136'6'#255#200#136'6'#255#200#137'6'#255 +#199#136'6'#255#198#135'6'#255#198#134'6'#255#197#133'5'#255#196#132'6'#255 +#195#131'5'#255#193#128'5'#255#191'~4'#255#188'z4'#255#186'x4'#255#184'u3' +#255#181'q2'#255#168'i/'#255#153'_+'#255#137'T'''#255'yJ"'#255'rE '#255'm@' +#31#255'i<'#31#255'f:'#30#255'b9!'#249'X>.'#232'MD>'#212'HFD'#204'EED'#202'E' +'ED'#198'EED'#192'CCC'#180'CCC'#160'DDD'#132'DDDbCCCACCC&CCC'#19'@@@'#8'UUU' +#3#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'333'#5 +'III'#14'>>>!DDD'#255 +#232#177'>'#255#234#179'?'#255#236#181'>'#255#236#182'?'#255#237#183'?'#255 ,#237#183'?'#255#238#183'@'#255#238#184'?'#255#238#185'?'#255#238#184'?'#255 +#238#183'@'#255#237#182'?'#255#237#183'?'#255#236#182'?'#255#236#181'>'#255 +#234#179'>'#255#232#176'>'#255#230#175'>'#255#229#172'='#255#227#169'='#255 +#224#167'='#255#220#161'<'#255#217#157'<'#255#213#153';'#255#209#148':'#255 +#204#142'9'#255#198#135'8'#255#193#129'7'#255#188'{6'#255#183't5'#255#171'k2' +#255#142'W)'#255'tH"'#255'nA '#255'h<'#31#255'd7'#30#255'[:('#240'KD?'#211'G' +'FD'#204'DDC'#201'EDD'#195'CCC'#182'CCC'#159'CCC}EEEUBBB2@@@'#24'999'#9'UUU' +#3#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#1'333'#5'III'#14'BBB#EEECCCCkEEE'#145'DDC'#174'FFE'#192'KE@'#206'Z;)' +#238'c8'#30#255'i<'#31#255'oB!'#255'|M%'#255#153'_-'#255#178'o4'#255#186'x6' +#255#192#128'7'#255#198#135'9'#255#204#142':'#255#209#149';'#255#214#155'=' +#255#219#161'>'#255#223#167'>'#255#227#170'>'#255#230#174'?'#255#232#177'@' +#255#235#181'A'#255#237#183'A'#255#238#185'A'#255#240#187'A'#255#241#188'A' +#255#242#189'B'#255#243#190'A'#255#244#191'B'#255#244#192'B'#255#244#191'B' +#255#244#192'B'#255#244#192'B'#255#245#193'A'#255#244#192'B'#255#244#192'B' +#255#244#191'B'#255#244#192'B'#255#244#191'B'#255#243#190'A'#255#242#189'B' +#255#240#187'A'#255#239#186'A'#255#238#184'@'#255#237#183'A'#255#235#179'@' +#255#232#176'?'#255#229#173'?'#255#226#169'?'#255#223#165'>'#255#218#160'=' +#255#213#153'<'#255#208#147';'#255#202#140':'#255#196#133'9'#255#190'~7'#255 +#184'v6'#255#173'l3'#255#145'Y+'#255'uH$'#255'm@ '#255'g;'#31#255'b7'#31#253 +'U>/'#230'IEC'#206'FFE'#202'EED'#199'CCC'#189'DDD'#170'DDD'#139'BBBdCCC=BBB' +#31'@@@'#12'UUU'#3#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#1'UUU'#6'KKK'#17'DDD)EEENDDDxDCC'#157'DDC'#182'GGC'#197'T=1'#225'a7 ' +#252'g;'#31#255'l@ '#255'wI$'#255#154'^.'#255#179'o6'#255#186'x7'#255#193#128 +'9'#255#200#137':'#255#207#146'<'#255#212#153'>'#255#217#159'>'#255#222#166 +'?'#255#227#170'@'#255#231#175'A'#255#234#180'B'#255#236#182'B'#255#238#185 +'B'#255#240#187'B'#255#242#190'D'#255#243#191'C'#255#244#192'D'#255#245#193 +'C'#255#246#194'D'#255#247#194'D'#255#247#196'E'#255#247#196'D'#255#247#196 +'D'#255#248#197'D'#255#248#197'D'#255#248#197'D'#255#248#197'D'#255#248#197 +'D'#255#248#197'D'#255#248#196'D'#255#247#196'D'#255#247#196'D'#255#247#195 +'E'#255#246#195'D'#255#245#193'D'#255#245#193'C'#255#244#192'D'#255#243#191 +'C'#255#242#189'C'#255#240#186'C'#255#238#184'C'#255#236#182'B'#255#233#179 +'B'#255#230#174'A'#255#226#169'@'#255#221#164'?'#255#216#157'>'#255#211#151 +'='#255#205#143'<'#255#198#135':'#255#191#127'8'#255#184'w7'#255#174'l4'#255 +#144'X+'#255'rE"'#255'j> '#255'e9'#30#255'_8"'#247'O@8'#219'GFD'#204'DDC'#201 +'CCC'#194'CCC'#178'DDD'#151'DDDqDDDGGGG$III'#14'@@@'#4#0#0#0#1#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#2'III'#7'@@@'#20'CCC.DDDVCCC'#130'EED'#165'DDC'#189 +'LB='#207']7$'#244'd7'#31#255'j> '#255'qE"'#255#140'W+'#255#174'l5'#255#186 +'x8'#255#193#129':'#255#200#138'<'#255#207#146'>'#255#213#155'?'#255#220#163 +'@'#255#225#169'A'#255#229#174'B'#255#233#179'D'#255#236#182'D'#255#239#185 +'D'#255#241#189'E'#255#242#190'E'#255#244#192'E'#255#245#194'E'#255#246#195 +'F'#255#247#195'F'#255#247#196'G'#255#247#197'F'#255#248#197'F'#255#248#197 +'F'#255#249#198'F'#255#249#198'G'#255#249#198'G'#255#249#198'G'#255#249#198 +'G'#255#249#198'G'#255#249#198'G'#255#249#198'G'#255#249#198'G'#255#249#198 +'G'#255#249#198'G'#255#249#198'G'#255#249#198'F'#255#248#197'F'#255#248#197 +'F'#255#247#196'F'#255#247#196'F'#255#247#195'F'#255#246#194'F'#255#244#193 +'F'#255#243#191'E'#255#242#190'E'#255#240#188'E'#255#238#185'D'#255#235#181 +'D'#255#232#178'C'#255#228#172'C'#255#223#167'B'#255#218#161'@'#255#212#153 +'?'#255#205#144'='#255#198#135';'#255#191#127'9'#255#183'u7'#255#167'g3'#255 +#130'P('#255'oB"'#255'h< '#255'c7'#30#255'X:*'#237'HFB'#207'EEE'#202'DCC'#197 +'DDD'#184'CCC'#160'CCCzEEENFFF(@@@'#16'333'#5#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2 +'III'#7'FFF'#22'BBB2CCC\DDD'#136'DDC'#171'EED'#192'Q?5'#219'a6'#31#252'f:'#31 +#255'mA!'#255#127'N'''#255#164'f3'#255#182'u8'#255#190#127':'#255#199#138'=' +#255#207#147'?'#255#213#155'A'#255#220#163'B'#255#225#170'D'#255#230#177'E' +#255#234#181'E'#255#237#184'F'#255#240#188'G'#255#242#189'G'#255#243#192'G' +#255#244#193'H'#255#245#194'H'#255#246#195'H'#255#247#196'H'#255#247#197'H' +#255#247#197'H'#255#248#198'H'#255#248#198'H'#255#248#197'H'#255#248#198'H' +#255#248#198'I'#255#249#198'I'#255#249#198'I'#255#249#198'I'#255#249#198'I' +#255#249#198'I'#255#249#198'I'#255#249#198'I'#255#249#198'I'#255#249#198'I' +#255#249#198'I'#255#249#198'I'#255#248#198'I'#255#248#198'H'#255#248#198'H' +#255#248#198'H'#255#248#198'H'#255#247#197'H'#255#247#196'I'#255#247#195'H' +#255#246#195'H'#255#245#195'H'#255#244#193'H'#255#243#191'G'#255#241#189'G' +#255#239#186'G'#255#236#183'F'#255#233#180'F'#255#229#175'D'#255#224#168'D' +#255#218#161'B'#255#211#153'@'#255#205#144'?'#255#196#134'='#255#188'{:'#255 +#180'r8'#255#155'_/'#255'wJ$'#255'j? '#255'e8'#30#255']8#'#246'LB<'#213'FEE' +#203'EED'#199'DDD'#188'DDD'#165'DDD'#128'DDDSFFF,GGG'#18'+++'#6#0#0#0#1#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#2'III'#7'CCC'#23'BBB6DDDaCCC'#141'DDC'#174'GDB'#196'V:+'#233'c7'#30#255'h; ' +#255'pC#'#255#146'Z-'#255#179'p7'#255#187'{;'#255#196#133'='#255#204#144'?' +#255#212#154'B'#255#219#163'E'#255#225#170'E'#255#230#176'G'#255#234#181'H' +#255#238#185'I'#255#240#189'I'#255#242#190'J'#255#243#192'J'#255#244#193'J' +#255#245#195'J'#255#246#195'J'#255#246#196'J'#255#247#196'K'#255#247#196'K' +#255#247#197'K'#255#247#197'K'#255#247#197'K'#255#247#197'J'#255#247#197'J' +#255#247#198'J'#255#247#198'J'#255#247#198'J'#255#247#198'J'#255#247#198'J' +#255#247#198'J'#255#247#198'J'#255#247#198'J'#255#247#198'J'#255#247#198'J' +#255#247#198'J'#255#247#198'J'#255#247#198'J'#255#247#198'J'#255#247#197'J' +#255#247#197'J'#255#247#197'J'#255#247#197'K'#255#247#197'K'#255#247#197'K' +#255#247#196'K'#255#246#196'K'#255#246#196'J'#255#246#195'J'#255#245#195'J' +#255#244#194'J'#255#243#191'I'#255#241#189'I'#255#239#188'I'#255#236#184'H' +#255#233#180'H'#255#228#174'G'#255#223#168'E'#255#217#160'C'#255#210#151'B' +#255#202#141'?'#255#193#130'<'#255#185'x:'#255#174'm6'#255#134'S*'#255'mA"' +#255'f:'#31#255'a6'#30#253'R>4'#224'FFE'#203'EED'#200'CCC'#190'DDD'#169'CCC' +#133'CCCXAAA/CCC'#19'+++'#6#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#1'III'#7'CCC'#23'BBB6CCCcCCC'#144'EED'#177'JC>'#202 +'[6"'#244'c8'#31#255'j?!'#255'xI&'#255#162'd2'#255#183'u:'#255#192#129'='#255 +#200#140'@'#255#209#150'B'#255#217#160'E'#255#223#169'G'#255#229#176'H'#255 +#233#181'J'#255#236#185'J'#255#239#188'K'#255#241#190'K'#255#242#192'K'#255 +#243#193'L'#255#244#194'L'#255#245#195'L'#255#245#195'L'#255#245#195'L'#255 +#246#196'L'#255#246#196'L'#255#246#196'L'#255#246#196'L'#255#246#196'M'#255 +#246#196'M'#255#246#197'M'#255#246#197'M'#255#246#197'M'#255#246#197'M'#255 +#246#197'M'#255#246#197'M'#255#246#197'M'#255#246#197'M'#255#246#197'M'#255 +#246#197'M'#255#246#197'M'#255#246#197'M'#255#246#197'M'#255#246#197'M'#255 +#246#197'M'#255#246#197'M'#255#246#197'M'#255#246#197'M'#255#246#196'M'#255 +#246#196'M'#255#246#196'M'#255#246#196'L'#255#246#196'L'#255#246#196'L'#255 +#246#196'L'#255#245#195'L'#255#245#196'L'#255#244#195'M'#255#244#194'L'#255 +#243#193'L'#255#242#192'L'#255#241#190'K'#255#238#188'K'#255#236#184'J'#255 +#232#179'I'#255#228#173'H'#255#222#166'F'#255#215#158'E'#255#207#148'B'#255 +#198#137'?'#255#190'~<'#255#180'r9'#255#150']/'#255'qE$'#255'h< '#255'b6'#30 +#255'W9*'#235'GED'#204'DDC'#201'DDD'#192'CCC'#172'CCC'#137'DDDZAAA/GGG'#18'3' +'33'#5#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'+++'#6'II' +'I'#21'CCC5DDDbCCC'#145'DDC'#178'LB;'#206'^6 '#249'd8'#31#255'l@!'#255#131'Q' +'*'#255#172'k7'#255#186'z;'#255#196#133'?'#255#205#146'C'#255#213#156'E'#255 +#220#165'G'#255#227#173'I'#255#232#180'K'#255#236#184'L'#255#238#187'L'#255 ,#240#189'N'#255#241#191'N'#255#242#192'N'#255#243#193'N'#255#244#194'N'#255 +#244#194'N'#255#244#194'O'#255#244#195'O'#255#244#195'O'#255#244#195'O'#255 +#244#195'O'#255#244#195'O'#255#244#195'O'#255#244#195'O'#255#244#195'O'#255 +#244#195'O'#255#244#195'O'#255#244#195'O'#255#244#195'O'#255#244#195'O'#255 +#244#195'O'#255#244#195'O'#255#244#195'O'#255#244#195'O'#255#244#195'O'#255 +#244#195'O'#255#244#195'O'#255#244#195'O'#255#244#195'O'#255#244#195'O'#255 +#244#195'O'#255#244#195'O'#255#244#195'O'#255#244#195'O'#255#244#195'O'#255 +#244#195'O'#255#244#195'O'#255#244#195'O'#255#244#195'O'#255#244#195'O'#255 +#244#195'O'#255#244#195'O'#255#244#194'O'#255#244#195'N'#255#244#194'N'#255 +#243#193'N'#255#242#192'M'#255#241#190'N'#255#240#189'M'#255#237#186'M'#255 +#235#182'L'#255#230#178'K'#255#225#171'I'#255#219#163'G'#255#211#153'D'#255 +#202#143'B'#255#192#130'>'#255#183'u:'#255#164'f4'#255'yK&'#255'i=!'#255'c7' +#30#255'Z8%'#241'GEC'#205'DDC'#201'CCC'#193'DDD'#173'DDD'#136'BBBYDDD-KKK'#17 +'333'#5#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'333'#5'CCC'#19'BBB2CCC_DD' +'D'#143'DDC'#178'M@8'#211'_5'#31#251'e9'#31#255'lA"'#255#144'Y/'#255#179'r9' +#255#188'}='#255#198#138'B'#255#208#149'D'#255#217#161'H'#255#223#170'K'#255 +#229#177'L'#255#234#181'M'#255#236#186'N'#255#239#188'O'#255#240#190'P'#255 +#241#191'P'#255#242#192'P'#255#242#192'P'#255#242#193'P'#255#243#193'P'#255 +#243#194'P'#255#243#194'P'#255#243#194'P'#255#243#194'P'#255#243#194'P'#255 +#243#194'P'#255#243#194'P'#255#243#194'P'#255#243#194'P'#255#243#194'P'#255 +#243#194'P'#255#243#194'P'#255#243#194'P'#255#243#194'P'#255#243#194'P'#255 +#243#194'P'#255#243#194'P'#255#243#194'P'#255#243#194'P'#255#243#194'P'#255 +#243#194'P'#255#243#194'P'#255#243#194'P'#255#243#194'P'#255#243#194'P'#255 +#243#194'P'#255#243#194'P'#255#243#194'P'#255#243#194'P'#255#243#194'P'#255 +#243#194'P'#255#243#194'P'#255#243#194'P'#255#243#194'P'#255#243#194'P'#255 +#243#194'P'#255#243#194'P'#255#243#194'P'#255#243#194'P'#255#243#193'P'#255 +#242#193'P'#255#242#192'O'#255#242#192'P'#255#241#192'P'#255#240#190'P'#255 +#238#188'O'#255#236#185'N'#255#232#180'M'#255#228#175'L'#255#222#167'I'#255 +#215#159'H'#255#205#147'D'#255#196#134'@'#255#186'y<'#255#173'm7'#255#130'O*' +#255'j?!'#255'c8'#31#255'[7#'#245'HDA'#208'DDC'#201'CCC'#193'CCC'#172'CCC' +#134'AAAVAAA+@@@'#16'@@@'#4#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'@@@'#4'<<<'#17'CCC.CC' +'C[CCC'#140'EED'#176'O>5'#213'_5'#30#253'e9'#31#255'nB#'#255#151'\1'#255#181 +'s:'#255#191#129'@'#255#201#142'C'#255#211#154'G'#255#219#164'K'#255#226#173 +'M'#255#231#179'O'#255#234#184'P'#255#237#187'Q'#255#239#189'Q'#255#240#190 +'R'#255#240#191'Q'#255#241#192'R'#255#241#192'R'#255#241#192'R'#255#242#192 +'R'#255#242#192'R'#255#242#193'R'#255#242#193'R'#255#242#193'R'#255#242#193 +'R'#255#242#193'R'#255#242#193'R'#255#242#193'R'#255#242#193'R'#255#242#193 +'R'#255#242#193'R'#255#242#193'R'#255#242#193'R'#255#242#193'R'#255#242#193 +'R'#255#242#193'R'#255#242#193'R'#255#242#193'R'#255#242#193'R'#255#242#193 +'R'#255#242#193'R'#255#242#193'R'#255#242#193'R'#255#242#193'R'#255#242#193 +'R'#255#242#193'R'#255#242#193'R'#255#242#193'R'#255#242#193'R'#255#242#193 +'R'#255#242#193'R'#255#242#193'R'#255#242#193'R'#255#242#193'R'#255#242#193 +'R'#255#242#193'R'#255#242#193'R'#255#242#193'R'#255#242#193'R'#255#242#193 +'R'#255#242#192'R'#255#242#192'R'#255#241#192'R'#255#241#192'R'#255#241#192 +'R'#255#240#191'Q'#255#240#190'R'#255#238#189'Q'#255#236#186'P'#255#234#182 +'O'#255#230#177'N'#255#224#171'L'#255#217#162'J'#255#208#150'F'#255#198#138 +'C'#255#188'}>'#255#177'o:'#255#136'S,'#255'k?"'#255'c8'#31#255'\6!'#248'JC?' +#211'DCC'#201'CCC'#193'CCC'#171'BBB'#131'DDDRAAA''777'#14'UUU'#3#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +'UUU'#3';;;'#13'AAA''CCCTBBB'#135'DDC'#174'N=5'#213'`4'#29#254'e9'#31#255'oC' +'$'#255#156'`3'#255#181'u<'#255#193#131'A'#255#204#146'E'#255#213#157'I'#255 +#221#167'M'#255#227#175'O'#255#232#180'Q'#255#235#184'R'#255#237#187'S'#255 +#238#189'S'#255#239#190'S'#255#240#191'T'#255#240#191'T'#255#240#191'T'#255 +#240#191'T'#255#240#191'T'#255#240#191'T'#255#240#191'T'#255#240#191'T'#255 +#240#191'T'#255#240#191'T'#255#240#191'T'#255#240#191'T'#255#240#191'T'#255 +#240#191'T'#255#240#191'T'#255#240#191'T'#255#240#191'T'#255#240#191'T'#255 ,#240#191'T'#255#240#191'T'#255#240#191'T'#255#240#191'T'#255#240#191'T'#255 +#234#187'R'#255#202#161'G'#255#232#185'R'#255#240#191'T'#255#240#191'T'#255 +#240#191'T'#255#240#191'T'#255#240#191'T'#255#240#191'T'#255#240#191'T'#255 +#240#191'T'#255#240#191'T'#255#240#191'T'#255#240#191'T'#255#240#191'T'#255 +#240#191'T'#255#240#191'T'#255#240#191'T'#255#240#191'T'#255#240#191'T'#255 +#240#191'T'#255#240#191'T'#255#240#191'T'#255#240#191'T'#255#240#191'T'#255 +#240#191'T'#255#240#191'T'#255#240#191'T'#255#240#191'T'#255#240#191'T'#255 +#239#189'S'#255#238#188'R'#255#236#186'R'#255#234#184'Q'#255#231#179'Q'#255 +#226#173'O'#255#219#165'L'#255#211#154'H'#255#201#142'E'#255#190#128'@'#255 +#179'q:'#255#140'V.'#255'l@"'#255'c8'#31#255'\4'#31#250'JC>'#211'CCC'#201'DD' +'D'#192'CCC'#168'CCC~DDDKFFF!MMM'#10#128#128#128#2#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128#2'333'#10'@@@ EEE' +'JCCC~EDD'#169'L?8'#208'^4'#30#253'd8 '#255'pD%'#255#159'b4'#255#182'v='#255 +#194#132'C'#255#205#147'H'#255#215#160'L'#255#222#169'O'#255#228#176'Q'#255 +#232#181'S'#255#235#185'T'#255#236#187'T'#255#237#188'U'#255#238#189'U'#255 +#238#190'U'#255#238#190'U'#255#238#191'U'#255#239#190'U'#255#239#190'U'#255 +#239#190'U'#255#239#190'U'#255#239#190'U'#255#239#190'U'#255#239#190'U'#255 +#239#190'U'#255#239#190'U'#255#239#190'U'#255#239#190'U'#255#239#190'U'#255 +#239#190'U'#255#239#190'U'#255#239#190'U'#255#239#190'U'#255#181#144'@'#255 +';/'#21#255#21#16#7#255#9#7#3#255#2#2#1#255#0#0#0#255#0#0#0#255#0#0#0#255#1#1 +#1#255#7#6#3#255#17#14#6#255#31#25#11#255'2'''#18#255'SB'#29#255#157'}8'#255 +#233#186'S'#255#239#190'U'#255#239#190'U'#255#239#190'U'#255#239#190'U'#255 +#239#190'U'#255#239#190'U'#255#239#190'U'#255#239#190'U'#255#239#190'U'#255 +#239#190'U'#255#239#190'U'#255#239#190'U'#255#239#190'U'#255#239#190'U'#255 +#239#190'U'#255#239#190'U'#255#239#190'U'#255#238#190'U'#255#238#190'U'#255 +#238#190'U'#255#238#189'U'#255#237#188'U'#255#236#186'T'#255#234#184'T'#255 +#231#180'S'#255#226#175'Q'#255#220#166'N'#255#212#156'K'#255#202#143'F'#255 +#190#129'A'#255#179'r<'#255#145'Y0'#255'k?"'#255'c7'#31#255'[4 '#248'IC@'#209 +'DDD'#200'CCC'#190'CCC'#163'DDDtCCCAEEE'#26'III'#7#0#0#0#1#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'III'#7'==='#25'AAA?CCCsBBB' +#162'K?;'#202'^4'#30#252'c8 '#255'oB%'#255#160'b5'#255#183'v>'#255#194#134'D' +#255#205#148'J'#255#215#161'M'#255#223#171'Q'#255#228#177'T'#255#232#182'U' +#255#234#185'V'#255#236#187'V'#255#236#187'V'#255#237#188'W'#255#237#189'W' +#255#237#188'W'#255#237#188'W'#255#237#188'W'#255#237#188'W'#255#237#188'W' +#255#237#188'W'#255#237#188'W'#255#237#188'W'#255#237#188'W'#255#237#188'W' +#255#237#188'W'#255#237#188'W'#255#237#188'W'#255#237#188'W'#255#237#188'W' +#255#237#188'W'#255#237#188'W'#255#159'~:'#255#16#13#6#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#0#0#255#16#13#6 +#255'9-'#21#255'y`,'#255#208#165'M'#255#237#188'W'#255#237#188'W'#255#237#188 +'W'#255#237#188'W'#255#237#188'W'#255#237#188'W'#255#237#188'W'#255#237#188 +'W'#255#237#188'W'#255#237#188'W'#255#237#188'W'#255#237#188'W'#255#237#188 +'W'#255#237#188'W'#255#237#188'W'#255#237#188'W'#255#237#189'W'#255#237#188 +'W'#255#236#187'V'#255#235#186'V'#255#234#184'U'#255#231#180'U'#255#227#175 +'R'#255#221#169'Q'#255#213#157'L'#255#202#144'H'#255#191#129'C'#255#180's=' +#255#145'X0'#255'j>#'#255'b6'#31#255'Z5#'#245'GDB'#206'DDD'#200'CCC'#186'DDD' +#154'EEEhBBB6@@@'#20'333'#5#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#1'@@@'#4'GGG'#18'AAA3DDDfCCC'#152'IA>'#195'\4 '#250'c7'#31#255'm@#'#255 +#156'_5'#255#182'v?'#255#194#134'E'#255#206#148'K'#255#215#161'O'#255#223#171 +'S'#255#228#178'V'#255#232#182'V'#255#233#185'X'#255#234#186'X'#255#235#187 +'X'#255#236#187'X'#255#236#188'X'#255#236#188'X'#255#236#188'X'#255#236#188 +'X'#255#236#188'X'#255#236#188'X'#255#236#188'X'#255#236#188'X'#255#236#188 +'X'#255#236#188'X'#255#236#188'X'#255#236#188'X'#255#236#188'X'#255#236#188 +'X'#255#236#188'X'#255#236#188'X'#255#236#188'X'#255#236#188'X'#255'9-'#21 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#6 +#5#2#255'$'#29#14#255'ZH"'#255#169#135'@'#255#234#186'X'#255#236#188'X'#255 ,#236#188'X'#255#236#188'X'#255#236#188'X'#255#236#188'X'#255#236#188'X'#255 +#236#188'X'#255#236#188'X'#255#236#188'X'#255#236#188'X'#255#236#188'X'#255 +#236#188'X'#255#236#187'X'#255#235#187'Y'#255#235#186'X'#255#234#186'X'#255 +#233#184'W'#255#231#180'W'#255#227#176'T'#255#221#169'R'#255#213#158'N'#255 +#203#145'J'#255#192#130'D'#255#179's='#255#139'U/'#255'i="'#255'a5'#30#255'X' +'7%'#242'FDC'#204'CCC'#198'DDD'#180'CCC'#144'CCC[AAA+III'#14'UUU'#3#0#0#0#1#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128#2'@@@'#12'AAA''CCCWCCC'#140'GB?' +#185'Z4!'#247'a6'#30#255'j?"'#255#151']2'#255#181't>'#255#194#133'F'#255#206 +#149'M'#255#215#161'Q'#255#223#170'T'#255#228#178'W'#255#231#181'Y'#255#232 +#183'Y'#255#233#185'Z'#255#234#185'Y'#255#234#186'Y'#255#234#186'Y'#255#234 +#186'Z'#255#234#186'Z'#255#234#186'Z'#255#234#186'Z'#255#234#186'Z'#255#234 +#186'Z'#255#234#186'Z'#255#234#186'Z'#255#234#186'Z'#255#234#186'Z'#255#234 +#186'Z'#255#234#186'Z'#255#234#186'Z'#255#234#186'Z'#255#234#186'Z'#255#234 +#186'Z'#255#234#186'Z'#255'C5'#26#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#1#1#1#255#20#16#8#255'K;'#29#255#189#150'I'#255#234#186'Z'#255#234#186 +'Z'#255#234#186'Z'#255#234#186'Z'#255#234#186'Z'#255#234#186'Z'#255#234#186 +'Z'#255#234#186'Z'#255#234#186'Z'#255#234#186'Z'#255#234#186'Y'#255#234#186 +'Y'#255#234#185'Y'#255#233#185'Z'#255#232#183'Y'#255#230#181'X'#255#226#176 +'W'#255#221#169'T'#255#213#159'O'#255#203#145'K'#255#190#129'D'#255#178'p=' +#255#134'Q-'#255'g;"'#255'`4'#29#255'U7('#238'CCC'#202'DDD'#195'DDD'#173'BBB' +#131'CCCL@@@ 999'#9#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'III'#7'BBB'#27'CC' +'CEDDD|DDD'#170'V6%'#238'`5'#30#255'h<"'#255#145'Y1'#255#179's?'#255#192#132 +'F'#255#205#148'M'#255#215#161'R'#255#222#171'U'#255#227#176'X'#255#230#181 +'Z'#255#231#183'Z'#255#232#183'['#255#232#184'['#255#233#185'['#255#233#185 +'['#255#233#185'['#255#233#185'['#255#233#185'['#255#233#185'['#255#233#185 +'['#255#233#185'['#255#233#185'['#255#233#185'['#255#233#185'['#255#233#185 +'['#255#233#185'['#255#233#185'['#255#233#185'['#255#233#185'['#255#233#185 +'['#255#233#185'['#255#233#185'['#255#127'd1'#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#13#11#5 +#255'N>'#31#255#193#153'L'#255#233#185'['#255#233#185'['#255#233#185'['#255 +#233#185'['#255#233#185'['#255#233#185'['#255#233#185'['#255#233#185'['#255 +#233#185'['#255#233#184'['#255#232#184'['#255#232#183'Z'#255#231#182'Z'#255 +#229#180'Y'#255#226#175'X'#255#220#168'U'#255#213#158'R'#255#201#144'K'#255 +#189#127'D'#255#175'n<'#255#128'N+'#255'e9 '#255'_3'#29#255'Q;1'#227'CCC'#201 +'CCC'#191'CCC'#163'CCCrAAA;FFF'#22'333'#5#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'@@@'#4'<<<' +#17'AAA3EEEhCCC'#156'R:/'#220'_3'#29#255'e: '#255#134'Q-'#255#178'p>'#255#190 +#130'F'#255#203#145'M'#255#213#161'S'#255#221#170'W'#255#226#176'Z'#255#229 +#180'Z'#255#230#182'\'#255#231#182'\'#255#231#183'\'#255#231#183'\'#255#231 +#183'\'#255#231#183'\'#255#231#183'\'#255#231#183'\'#255#231#183'\'#255#231 +#183'\'#255#231#183'\'#255#231#183'\'#255#231#183'\'#255#231#183'\'#255#231 +#183'\'#255#231#183'\'#255#231#183'\'#255#231#183'\'#255#231#183'\'#255#231 +#183'\'#255#231#183'\'#255#231#183'\'#255#180#142'G'#255#1#1#1#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#15#12#6#255'VE"'#255#215#171'V'#255 +#231#183'\'#255#231#183'\'#255#231#183'\'#255#231#183'\'#255#231#183'\'#255 +#231#183'\'#255#231#183'\'#255#231#183'\'#255#231#183'\'#255#231#182'\'#255 +#230#181'['#255#228#178'['#255#225#175'Y'#255#219#168'W'#255#211#156'Q'#255 +#200#142'K'#255#187'|D'#255#172'k<'#255'wF('#255'c7 '#255'^1'#30#254'K@:'#214 +'DDD'#199'CCC'#184'CCC'#148'AAA^GGG+NNN'#13'UUU'#3#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2'MMM'#10'@' +'@@$DDDSDDD'#139'L?8'#197'^1'#29#254'c7 '#255'wG)'#255#173'l<'#255#188#127'E' +#255#201#144'N'#255#212#158'T'#255#220#169'X'#255#225#175'['#255#228#179'\' +#255#229#180'\'#255#230#181']'#255#230#181']'#255#230#182']'#255#230#182']' +#255#230#182']'#255#230#182']'#255#230#182']'#255#230#182']'#255#230#182']' +#255#230#182']'#255#230#182']'#255#230#182']'#255#230#182']'#255#230#182']' +#255#230#182']'#255#230#182']'#255#230#182']'#255#230#182']'#255#230#182']' +#255#230#182']'#255#230#182']'#255#221#175'Y'#255#10#8#4#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#1#1#255'4' +')'#21#255#184#146'J'#255#230#182']'#255#230#182']'#255#230#182']'#255#230 +#182']'#255#230#182']'#255#230#182']'#255#230#182']'#255#230#181']'#255#229 +#182']'#255#228#180']'#255#227#178'\'#255#224#174'['#255#218#166'W'#255#209 +#155'R'#255#198#139'K'#255#184'zC'#255#162'd8'#255'l@$'#255'a5'#30#255'Z3 ' +#249'FBA'#206'DDD'#196'CCC'#174'CCC'#129'BBBIFFF'#29'@@@'#8#0#0#0#1#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'333'#5'FF' +'F'#22'BBB>CCCvFA?'#174'Z3'#31#248'`5'#30#255'l@$'#255#163'd9'#255#184'{D' +#255#199#142'N'#255#210#156'T'#255#218#167'Y'#255#223#174'\'#255#226#177'^' +#255#228#179'^'#255#228#179'^'#255#228#180'_'#255#228#180'_'#255#228#180'_' +#255#228#180'_'#255#228#180'_'#255#228#180'_'#255#228#180'_'#255#228#180'_' +#255#228#180'_'#255#228#180'_'#255#228#180'_'#255#228#180'_'#255#228#180'_' +#255#228#180'_'#255#228#180'_'#255#228#180'_'#255#228#180'_'#255#228#180'_' +#255#228#180'_'#255#228#180'_'#255#228#180'_'#255'bM)'#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#27#21#11#255#140'o;'#255#228#180'_'#255#228#180 +'_'#255#228#180'_'#255#228#180'_'#255#228#180'_'#255#228#180'_'#255#228#180 +'_'#255#228#179'^'#255#227#179'^'#255#226#176']'#255#222#172'['#255#216#164 +'X'#255#207#152'R'#255#195#137'K'#255#181'tA'#255#149'Z3'#255'g<"'#255'_3'#29 +#255'V6'''#239'CCC'#201'CCC'#190'CCC'#159'CCCkCCC5GGG'#18'@@@'#4#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2'@@@'#12'CCC' +'*DDD^DDD'#150'U6('#230'^2'#28#255'f:!'#255#149'Z3'#255#181'uB'#255#195#137 +'K'#255#208#154'T'#255#216#165'Y'#255#221#172']'#255#225#176'^'#255#226#178 +'_'#255#227#178'_'#255#227#178'_'#255#227#179'_'#255#227#179'_'#255#227#179 +'_'#255#227#179'_'#255#227#179'_'#255#227#179'_'#255#227#179'_'#255#227#179 +'_'#255#227#179'_'#255#227#179'_'#255#227#179'_'#255#227#179'_'#255#227#179 +'_'#255#227#179'_'#255#227#179'_'#255#227#179'_'#255#227#179'_'#255#227#179 +'_'#255#227#179'_'#255#227#179'_'#255#227#179'_'#255#13#10#6#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'&'#30#16#255#208#164 +'W'#255#227#179'_'#255#227#179'_'#255#227#179'_'#255#227#179'_'#255#227#178 +'_'#255#227#178'_'#255#226#179'`'#255#226#177'_'#255#224#176'^'#255#220#170 +'\'#255#214#162'X'#255#205#149'R'#255#191#131'I'#255#177'p?'#255#131'O.'#255 +'c7 '#255']1'#29#255'N;3'#222'DDD'#199'DDD'#181'CCC'#140'DDDSDDD"999'#9#0#0#0 +#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'+++'#6'@@@'#24 +'EEECCCC~K=7'#193']0'#28#255'b6'#31#255#129'M,'#255#177'o@'#255#191#131'J' +#255#204#149'S'#255#214#163'Z'#255#220#171']'#255#223#174'_'#255#225#176'`' +#255#225#177'`'#255#226#177'`'#255#226#177'`'#255#226#177'`'#255#226#177'`' +#255#226#177'`'#255#226#177'`'#255#226#177'`'#255#226#177'`'#255#226#177'`' +#255#226#177'`'#255#226#177'`'#255#226#177'`'#255#226#177'`'#255#226#177'`' ,#255#226#177'`'#255#226#177'`'#255#226#177'`'#255#226#177'`'#255#226#177'`' +#255#226#177'`'#255#226#177'`'#255#226#177'`'#255#161'~D'#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#4#3#2 +#255#134'i9'#255#226#177'`'#255#226#177'`'#255#226#177'`'#255#226#177'`'#255 +#226#177'`'#255#225#178'`'#255#225#177'`'#255#224#176'_'#255#222#174'^'#255 +#219#169']'#255#212#159'X'#255#200#144'Q'#255#187'~G'#255#170'j<'#255'qB%' +#255'`5'#30#255'Z2'#31#250'FBA'#205'CCC'#193'DDD'#166'CCCsCCC9CCC'#19'@@@'#4 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2'@@@'#12'AAA+BBB' +'aDBB'#155'Y3!'#244'_3'#29#255'l?$'#255#167'f;'#255#186'}H'#255#200#144'R' +#255#211#158'Y'#255#218#168']'#255#221#172'`'#255#223#174'a'#255#223#176'a' +#255#224#176'b'#255#224#176'b'#255#224#176'b'#255#224#176'b'#255#224#176'b' +#255#224#176'b'#255#224#176'b'#255#224#176'b'#255#224#176'b'#255#224#176'b' +#255#224#176'b'#255#224#176'b'#255#224#176'b'#255#224#176'b'#255#224#176'b' +#255#224#176'b'#255#224#176'b'#255#224#176'b'#255#224#176'b'#255#224#176'b' +#255#224#176'b'#255#224#176'b'#255#224#176'b'#255'hR.'#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255'qY2'#255#224#176'b'#255#224#176'b'#255#224#176'b'#255#224#176 +'b'#255#224#176'b'#255#224#176'b'#255#223#176'a'#255#223#174'`'#255#221#172 +'_'#255#217#166']'#255#208#155'W'#255#196#139'O'#255#182'wE'#255#152'\5'#255 +'e9!'#255'^2'#29#255'S7*'#233'DDD'#200'CCC'#183'DDD'#143'EEEUDDD"UUU'#9#0#0#0 +#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'333'#5'@@@'#24'DDDDCCC~P8-' +#211']0'#29#255'c8!'#255#144'V2'#255#180'uD'#255#196#138'P'#255#207#155'X' +#255#215#165']'#255#220#171'`'#255#221#173'b'#255#222#174'a'#255#222#175'b' +#255#222#175'b'#255#222#175'b'#255#222#175'b'#255#222#175'b'#255#222#175'b' +#255#222#175'b'#255#222#175'b'#255#222#175'b'#255#222#175'b'#255#222#175'b' +#255#222#175'b'#255#222#175'b'#255#222#175'b'#255#222#175'b'#255#222#175'b' +#255#222#175'b'#255#222#175'b'#255#222#175'b'#255#222#175'b'#255#222#175'b' +#255#222#175'b'#255#222#175'b'#255#222#175'b'#255'VD&'#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#1#1#0#255#166#132'J'#255#222#175'b'#255#222#175'b'#255#222#175 +'b'#255#222#175'b'#255#222#175'b'#255#222#175'b'#255#222#174'a'#255#221#173 +'a'#255#219#170'`'#255#213#163'\'#255#205#150'V'#255#192#132'M'#255#176'oA' +#255'}K,'#255'a5'#31#255'\0'#28#254'I?;'#212'CCC'#194'DDD'#166'CCCrDDD8GGG' +#18'@@@'#4#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2'FFF'#11'DDD)BBB`G@<' +#164'[1'#29#252'_3'#29#255'uD)'#255#174'l?'#255#189#130'L'#255#204#150'V'#255 +#213#162'^'#255#217#168'`'#255#220#172'b'#255#221#173'b'#255#221#173'c'#255 +#221#173'c'#255#221#173'c'#255#221#173'c'#255#221#173'c'#255#221#173'c'#255 +#221#173'c'#255#221#173'c'#255#221#173'c'#255#221#173'c'#255#221#173'c'#255 +#221#173'c'#255#221#173'c'#255#221#173'c'#255#221#173'c'#255#221#173'c'#255 +#221#173'c'#255#221#173'c'#255#221#173'c'#255#221#173'c'#255#221#173'c'#255 +#221#173'c'#255#221#173'c'#255#221#173'c'#255#221#173'c'#255'gQ.'#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 ,#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#8#6#4#255#207#163']'#255#221#173'c'#255 +#221#173'c'#255#221#173'c'#255#221#173'c'#255#221#173'c'#255#221#173'c'#255 +#221#172'b'#255#219#171'b'#255#217#167'`'#255#211#159'['#255#200#145'T'#255 +#185'{H'#255#164'd;'#255'h<#'#255'^1'#29#255'X3#'#244'DDD'#200'CCC'#183'DDD' +#142'DDDSFFF!@@@'#8#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'@@@'#4'III'#21'EEE?DD' +'D|S5'''#222'\1'#28#255'c8!'#255#158'_8'#255#183'yH'#255#198#142'S'#255#209 +#158'\'#255#215#166'`'#255#218#170'b'#255#219#171'c'#255#219#171'd'#255#219 +#172'd'#255#219#172'd'#255#219#172'd'#255#219#172'd'#255#219#172'd'#255#219 +#172'd'#255#219#172'd'#255#219#172'd'#255#219#172'd'#255#219#172'd'#255#219 +#172'd'#255#219#172'd'#255#219#172'd'#255#219#172'd'#255#219#172'd'#255#219 +#172'd'#255#219#172'd'#255#219#172'd'#255#219#172'd'#255#219#172'd'#255#219 +#172'd'#255#219#172'd'#255#219#172'd'#255#219#172'd'#255#219#172'd'#255#213 +#168'b'#255#3#3#1#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'M<#'#255#219#172 +'d'#255#219#172'd'#255#219#172'd'#255#219#172'd'#255#219#172'd'#255#219#172 +'d'#255#219#171'd'#255#219#170'c'#255#217#168'b'#255#214#164'`'#255#207#153 +'Z'#255#194#136'P'#255#178'rD'#255#139'R1'#255'a4'#31#255'\0'#28#255'L<5'#219 +'CCC'#193'DDD'#164'CCCoCCC5@@@'#16'UUU'#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'@@@'#8 +'BBB#CCCWHA='#158'\0'#28#253'_3'#29#255'~I+'#255#175'nB'#255#191#133'O'#255 +#205#151'Z'#255#213#163'a'#255#216#167'c'#255#217#169'c'#255#218#170'd'#255 +#218#170'd'#255#218#170'd'#255#218#170'd'#255#218#170'd'#255#218#170'd'#255 +#218#170'd'#255#218#170'd'#255#218#170'd'#255#218#170'd'#255#218#170'd'#255 +#218#170'd'#255#218#170'd'#255#218#170'd'#255#218#170'd'#255#218#170'd'#255 +#218#170'd'#255#218#170'd'#255#218#170'd'#255#218#170'd'#255#218#170'd'#255 +#218#170'd'#255#218#170'd'#255#218#170'd'#255#218#170'd'#255#218#170'd'#255 +#218#170'd'#255#218#170'd'#255'YF)'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#15#12#7#255#218#170'd'#255#218#170'd'#255#218#170'd'#255#218#170'd'#255 +#218#170'd'#255#218#170'd'#255#218#170'd'#255#218#169'c'#255#217#168'c'#255 +#215#166'b'#255#211#160'_'#255#201#147'W'#255#187#127'L'#255#169'h>'#255'l=$' +#255'^1'#29#255'W3"'#244'DDD'#199'DDD'#180'DDD'#136'DDDKBBB'#27'UUU'#6#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0'UUU'#3'DDD'#15'EEE4BBBpS6)'#215'\1'#28#255'b7!'#255#158'_9' +#255#184'{J'#255#199#144'W'#255#209#158'_'#255#214#165'c'#255#216#168'd'#255 +#217#168'd'#255#217#168'd'#255#217#168'd'#255#217#168'd'#255#217#168'd'#255 +#217#168'd'#255#217#168'd'#255#217#168'd'#255#217#168'd'#255#217#168'd'#255 +#217#168'd'#255#217#168'd'#255#217#168'd'#255#217#168'd'#255#217#168'd'#255 +#217#168'd'#255#217#168'd'#255#217#168'd'#255#217#168'd'#255#217#168'd'#255 +#217#168'd'#255#217#168'd'#255#217#168'd'#255#217#168'd'#255#217#168'd'#255 +#217#168'd'#255#217#168'd'#255#217#168'd'#255#217#168'd'#255#217#168'd'#255 +'YD)'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#189#147'W'#255#217#168'd' +#255#217#168'd'#255#217#168'd'#255#217#168'd'#255#217#168'd'#255#217#168'd' +#255#217#168'd'#255#216#168'd'#255#215#167'c'#255#213#164'a'#255#207#154']' +#255#195#138'S'#255#179'tF'#255#139'R1'#255'`5'#30#255'\0'#28#255'K=7'#216'D' +'DD'#191'DDD'#157'CCCcAAA+FFF'#11#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'+++'#6'EEE'#26'BBBIE?=' +#144'Z0'#28#252'^2'#29#255'zF*'#255#174'mB'#255#192#135'R'#255#205#152'\'#255 +#211#161'b'#255#214#165'd'#255#215#166'd'#255#215#166'd'#255#215#166'd'#255 +#215#166'd'#255#215#166'd'#255#215#166'd'#255#215#166'd'#255#215#166'd'#255 +#215#166'd'#255#215#166'd'#255#215#166'd'#255#215#166'd'#255#215#166'd'#255 +#215#166'd'#255#215#166'd'#255#215#166'd'#255#215#166'd'#255#215#166'd'#255 +#215#166'd'#255#215#166'd'#255#215#166'd'#255#215#166'd'#255#215#166'd'#255 +#215#166'd'#255#215#166'd'#255#215#166'd'#255#215#166'd'#255#215#166'd'#255 +#215#166'd'#255#215#166'd'#255#215#166'd'#255#215#166'd'#255'jR1'#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255'fN/'#255#215#166'd'#255#215#166'd'#255#215#166'd' +#255#215#166'd'#255#215#166'd'#255#215#166'd'#255#215#166'd'#255#215#166'd' +#255#215#167'e'#255#214#164'c'#255#210#159'a'#255#202#148'Z'#255#187#128'N' +#255#168'f='#255'i;#'#255'\1'#28#255'V3#'#242'CCC'#197'DDD'#173'BBB{FFF>@@@' +#20'@@@'#4#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#1'MMM'#10'FFF(CCC_R6*'#206'\0'#28#255'`5'#31#255#154'\8' +#255#182'yJ'#255#199#144'Y'#255#208#156'`'#255#212#163'd'#255#213#165'd'#255 +#214#165'e'#255#214#165'e'#255#214#165'e'#255#214#165'e'#255#214#165'e'#255 +#214#165'e'#255#214#165'e'#255#214#165'e'#255#214#165'e'#255#214#165'e'#255 +#214#165'e'#255#214#165'e'#255#214#165'e'#255#214#165'e'#255#214#165'e'#255 +#214#165'e'#255#214#165'e'#255#214#165'e'#255#214#165'e'#255#214#165'e'#255 +#214#165'e'#255#214#165'e'#255#214#165'e'#255#214#165'e'#255#214#165'e'#255 +#214#165'e'#255#214#165'e'#255#214#165'e'#255#214#165'e'#255#214#165'e'#255 +#214#165'e'#255#214#165'e'#255#214#165'e'#255#135'h@'#255#2#1#1#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'b' +'L/'#255#214#165'e'#255#214#165'e'#255#214#165'e'#255#214#165'e'#255#214#165 +'e'#255#214#165'e'#255#214#165'e'#255#214#165'e'#255#213#165'e'#255#213#164 +'d'#255#211#161'c'#255#206#154'^'#255#194#139'U'#255#177'sF'#255#135'P/'#255 +'^3'#29#255'[/'#27#255'J>9'#213'DDD'#185'CCC'#144'DDDSHHH III'#7#0#0#0#1#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'UUU'#3 +'<<<'#17'DDD8DBAyZ0'#29#248'\1'#28#255'uB'''#255#172'lA'#255#190#132'Q'#255 +#203#151'^'#255#209#160'c'#255#211#162'e'#255#212#163'e'#255#212#163'e'#255 +#212#163'e'#255#212#163'e'#255#212#163'e'#255#212#163'e'#255#212#163'e'#255 +#212#163'e'#255#212#163'e'#255#212#163'e'#255#212#163'e'#255#212#163'e'#255 +#212#163'e'#255#212#163'e'#255#212#163'e'#255#212#163'e'#255#212#163'e'#255 +#212#163'e'#255#212#163'e'#255#212#163'e'#255#212#163'e'#255#212#163'e'#255 +#212#163'e'#255#212#163'e'#255#212#163'e'#255#212#163'e'#255#212#163'e'#255 +#212#163'e'#255#212#163'e'#255#212#163'e'#255#212#163'e'#255#212#163'e'#255 +#212#163'e'#255#212#163'e'#255#212#163'e'#255#156'xK'#255#1#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'jQ2'#255#212 +#163'e'#255#212#163'e'#255#212#163'e'#255#212#163'e'#255#212#163'e'#255#212 +#163'e'#255#212#163'e'#255#212#163'e'#255#212#163'e'#255#212#162'e'#255#211 +#162'd'#255#208#158'b'#255#200#147'['#255#186'~M'#255#165'd<'#255'd8!'#255'\' +'0'#28#255'T5'''#237'CCC'#193'DDD'#162'CCCjCCC.@@@'#12#0#0#0#2#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'333'#5'GGG'#25'BB' +'BIN:1'#174'[/'#27#255'^2'#29#255#145'T3'#255#180'vI'#255#196#142'Y'#255#206 +#155'a'#255#209#161'e'#255#211#162'e'#255#211#162'e'#255#211#162'e'#255#211 +#162'e'#255#211#162'e'#255#211#162'e'#255#211#162'e'#255#211#162'e'#255#211 +#162'e'#255#211#162'e'#255#211#162'e'#255#211#162'e'#255#211#162'e'#255#211 ,#162'e'#255#211#162'e'#255#211#162'e'#255#211#162'e'#255#211#162'e'#255#211 +#162'e'#255#211#162'e'#255#211#162'e'#255#211#162'e'#255#211#162'e'#255#211 +#162'e'#255#211#162'e'#255#211#162'e'#255#211#162'e'#255#211#162'e'#255#211 +#162'e'#255#211#162'e'#255#211#162'e'#255#211#162'e'#255#211#162'e'#255#211 +#162'e'#255#211#162'e'#255#211#162'e'#255#211#162'e'#255'O=&'#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'sX7'#255#211 +#162'e'#255#211#162'e'#255#211#162'e'#255#211#162'e'#255#211#162'e'#255#211 +#162'e'#255#211#162'e'#255#211#162'e'#255#211#162'e'#255#211#162'e'#255#210 +#161'f'#255#209#159'd'#255#204#153'`'#255#192#135'U'#255#175'pE'#255'~H+'#255 +']0'#29#255'Z0'#28#253'FBA'#201'DDD'#176'CCC~FFF>CCC'#19'@@@'#4#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'999'#9'EEE%CCC[V3' +'$'#222'\0'#27#255'f7!'#255#167'd>'#255#187#128'Q'#255#200#148'^'#255#207#156 +'d'#255#209#159'e'#255#209#160'e'#255#209#160'e'#255#209#160'e'#255#209#160 +'e'#255#209#160'e'#255#209#160'e'#255#209#160'e'#255#209#160'e'#255#209#160 +'e'#255#209#160'e'#255#209#160'e'#255#209#160'e'#255#209#160'e'#255#209#160 +'e'#255#209#160'e'#255#209#160'e'#255#151'tI'#255'2&'#25#255#27#21#13#255#15 +#12#7#255#7#5#3#255#7#5#3#255' '#25#16#255'P='''#255#151'tI'#255#209#160'e' +#255#209#160'e'#255#209#160'e'#255#209#160'e'#255#209#160'e'#255#209#160'e' +#255#209#160'e'#255#209#160'e'#255#209#160'e'#255#209#160'e'#255#209#160'e' +#255#209#160'e'#255#209#160'e'#255#6#5#3#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#146'pF'#255#209#160'e'#255#209#160'e'#255 +#209#160'e'#255#209#160'e'#255#209#160'e'#255#209#160'e'#255#209#160'e'#255 +#209#160'e'#255#209#160'e'#255#209#160'e'#255#209#160'e'#255#209#159'e'#255 +#206#155'c'#255#198#143'['#255#182'zM'#255#151'Y6'#255'^3'#29#255'[/'#27#255 +'N:1'#222'DDD'#185'DDD'#142'DDDOIII'#28'+++'#6#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2';;;'#13'DDD1F@=x[/'#28#253'\1'#28 +#255'~G+'#255#174'oE'#255#193#137'X'#255#203#151'b'#255#207#156'e'#255#207 +#158'f'#255#208#158'f'#255#208#158'f'#255#208#158'f'#255#208#158'f'#255#208 +#158'f'#255#208#158'f'#255#208#158'f'#255#208#158'f'#255#208#158'f'#255#208 +#158'f'#255#208#158'f'#255#208#158'f'#255#208#158'f'#255#208#158'f'#255'x[;' +#255#15#12#8#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#4#3#2#255'bJ0'#255#208#158'f'#255#208#158'f' +#255#208#158'f'#255#208#158'f'#255#208#158'f'#255#208#158'f'#255#208#158'f' +#255#208#158'f'#255#208#158'f'#255#208#158'f'#255#208#158'f'#255'3'''#25#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#2#2#1#255#208#158'f' +#255#208#158'f'#255#208#158'f'#255#208#158'f'#255#208#158'f'#255#208#158'f' +#255#208#158'f'#255#208#158'f'#255#208#158'f'#255#208#158'f'#255#208#158'f' +#255#208#158'f'#255#207#158'e'#255#206#156'd'#255#201#149'_'#255#189#131'T' +#255#169'h@'#255'j:#'#255'\0'#28#255'V3#'#242'DDD'#191'CCC'#156'BBB`AAA''333' +#10#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'@@@'#4'C' +'CC'#19'EEE?Q7+'#179'[/'#27#255'^1'#29#255#152'X6'#255#181'yM'#255#197#144']' +#255#204#153'c'#255#206#155'f'#255#206#156'e'#255#206#156'e'#255#206#156'e' +#255#206#156'e'#255#206#156'e'#255#206#156'e'#255#206#156'e'#255#206#156'e' +#255#206#156'e'#255#206#156'e'#255#206#156'e'#255#206#156'e'#255#206#156'e' +#255#202#154'c'#255'6)'#27#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#14#10#7#255#178#135'W'#255#206#156'e'#255#206#156'e'#255#206#156'e' +#255#206#156'e'#255#206#156'e'#255#206#156'e'#255#206#156'e'#255#206#156'e' +#255#206#156'e'#255'WB+'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 ,#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#29#22#14#255#206#156'e'#255#206#156'e'#255#206#156'e'#255#206#156'e' +#255#206#156'e'#255#206#156'e'#255#206#156'e'#255#206#156'e'#255#206#156'e' +#255#206#156'e'#255#206#156'e'#255#206#156'e'#255#206#156'e'#255#205#156'e' +#255#203#151'c'#255#194#139'Z'#255#176'qH'#255#131'K-'#255'\1'#28#255'[/'#27 +#255'HA='#204'DDD'#169'DDDqEEE4III'#14#128#128#128#2#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'+++'#6'BBB'#27'EEENW2!'#228'[/'#27#255'i9!' +#255#168'e?'#255#187#130'T'#255#200#147'`'#255#203#153'e'#255#205#154'e'#255 +#205#154'e'#255#205#154'e'#255#205#154'e'#255#205#154'e'#255#205#154'e'#255 +#205#154'e'#255#205#154'e'#255#205#154'e'#255#205#154'e'#255#205#154'e'#255 +#205#154'e'#255#205#154'e'#255#199#150'a'#255#19#14#9#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#7#6#4#255#178#133'W' +#255#205#154'e'#255#205#154'e'#255#205#154'e'#255#205#154'e'#255#205#154'e' +#255#205#154'e'#255#205#154'e'#255#205#154'e'#255'S>)'#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#128'a?'#255#205#154'e'#255#205#154'e' +#255#205#154'e'#255#205#154'e'#255#205#154'e'#255#205#154'e'#255#205#154'e' +#255#205#154'e'#255#205#154'e'#255#205#154'e'#255#205#154'e'#255#205#154'e' +#255#205#154'e'#255#204#154'e'#255#203#152'd'#255#197#145'^'#255#182'zO'#255 +#157'Z8'#255']1'#29#255'[/'#27#255'P9.'#226'CCC'#179'CCC'#129'CCCA@@@'#20'@@' +'@'#4#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'999'#9'EEE%EA?' +'b[/'#27#253'\0'#27#255#127'F*'#255#173'nG'#255#191#136'Z'#255#200#149'c'#255 +#202#152'e'#255#202#152'e'#255#202#153'e'#255#202#153'e'#255#202#153'e'#255 +#202#153'e'#255#202#153'e'#255#202#153'e'#255#202#153'e'#255#202#153'e'#255 +#202#153'e'#255#202#153'e'#255#202#153'e'#255#202#153'e'#255#31#24#16#255#0#0 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#11#8#6#255#200#151'e'#255#202#153'e'#255#202#153'e'#255#202 +#153'e'#255#202#153'e'#255#202#153'e'#255#202#153'e'#255#202#153'e'#255'O;''' +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255''''#29#19#255#202#153'e'#255 +#202#153'e'#255#202#153'e'#255#202#153'e'#255#202#153'e'#255#202#153'e'#255 +#202#153'e'#255#202#153'e'#255#202#153'e'#255#202#153'e'#255#202#153'e'#255 +#202#153'e'#255#202#153'e'#255#202#153'e'#255#202#152'e'#255#202#151'd'#255 +#199#147'b'#255#188#130'U'#255#168'e@'#255'k:"'#255'[/'#27#255'V3$'#241'CCC' +#186'BBB'#142'EEENBBB'#27'+++'#6#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#2'@@@'#12'DDD-O:0'#146'[/'#27#255'\0'#28#255#145'R2'#255#179'wM' +#255#194#141'^'#255#200#148'c'#255#201#150'e'#255#201#150'e'#255#201#150'e' +#255#201#150'e'#255#201#150'e'#255#201#150'e'#255#201#150'e'#255#201#150'e' +#255#201#150'e'#255#201#150'e'#255#201#150'e'#255#201#150'e'#255#201#150'e' +#255';,'#30#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'S>*'#255#201#150'e' +#255#201#150'e'#255#201#150'e'#255#201#150'e'#255#201#150'e'#255#201#150'e' +#255#201#150'e'#255'K8&'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#29#22#14#255 +#184#138']'#255#201#150'e'#255#201#150'e'#255#201#150'e'#255#201#150'e'#255 ,#201#150'e'#255#201#150'e'#255#201#150'e'#255#201#150'e'#255#201#150'e'#255 +#201#150'e'#255#201#150'e'#255#201#150'e'#255#201#150'e'#255#201#150'e'#255 +#201#150'e'#255#200#149'd'#255#199#148'c'#255#191#136'['#255#173'mG'#255'}D(' +#255'\0'#27#255'Z0'#28#253'DBB'#192'CCC'#152'DDDZBBB#@@@'#8#0#0#0#1#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128#2'III'#14'CCC5T5'''#190'[/'#27#255 +'_2'#29#255#162'^:'#255#184'}S'#255#195#142'`'#255#198#147'd'#255#199#148'd' +#255#199#148'd'#255#199#148'd'#255#199#148'd'#255#199#148'd'#255#199#148'd' +#255#199#148'd'#255#199#148'd'#255#199#148'd'#255#199#148'd'#255#199#148'd' +#255#199#148'd'#255#147'mJ'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#3#2#1#255#195#144'b'#255#199#148'd'#255#199#148'd'#255#199#148'd'#255 +#199#148'd'#255#199#148'd'#255#199#148'd'#255'H6$'#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#3#2#1#255#23#17#12 +#255'qT8'#255#199#148'd'#255#199#148'd'#255#199#148'd'#255#199#148'd'#255#199 +#148'd'#255#199#148'd'#255#199#148'd'#255#199#148'd'#255#199#148'd'#255#199 +#148'd'#255#199#148'd'#255#199#148'd'#255#199#148'd'#255#199#148'd'#255#199 +#148'd'#255#199#148'd'#255#199#148'd'#255#199#148'd'#255#198#146'c'#255#193 +#140'^'#255#178'uN'#255#143'O1'#255'\0'#28#255'[/'#27#255'J=7'#208'CCC'#161 +'DDDfAAA+FFF'#11#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'UUU'#3'<<<' +#17'CCC=X1 '#227'[/'#27#255'm:"'#255#167'eA'#255#187#130'X'#255#195#143'a' +#255#196#144'c'#255#197#145'c'#255#197#145'c'#255#197#145'c'#255#197#145'c' +#255#197#145'c'#255#197#145'c'#255#197#145'c'#255#197#145'c'#255#197#145'c' +#255#197#145'c'#255#197#145'c'#255#197#145'c'#255#19#14#10#255#0#0#0#255#0#0 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#135'cD'#255#197#145'c'#255#197 +#145'c'#255#197#145'c'#255#197#145'c'#255#197#145'c'#255#197#145'c'#255'I5$' +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#19#14#10#255'4&'#26#255'cI2'#255 +#161'vP'#255#197#145'c'#255#197#145'c'#255#197#145'c'#255#197#145'c'#255#197 +#145'c'#255#197#145'c'#255#197#145'c'#255#197#145'c'#255#197#145'c'#255#197 +#145'c'#255#197#145'c'#255#197#145'c'#255#197#145'c'#255#197#145'c'#255#197 +#145'c'#255#197#145'c'#255#197#145'c'#255#197#145'c'#255#197#145'c'#255#197 +#145'c'#255#197#145'b'#255#196#144'c'#255#194#140'`'#255#182'|S'#255#159'\:' +#255']2'#28#255'[/'#27#255'Q8-'#226'DDD'#168'DDDqAAA3NNN'#13#128#128#128#2#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'@@@'#4':::'#22'G@/[/'#27 +#254'[/'#27#255'}A&'#255#167'gD'#255#180'zW'#255#181'|Y'#255#181'|Y'#255#181 +'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y' +#255#181'|Y'#255#181'|Y'#255#181'|Y'#255#136']C'#255#0#0#0#255#0#0#0#255#0#0 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#19#13#9#255#151'gJ'#255#181'|Y'#255#181'|Y'#255#181 +'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y' +#255#181'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y'#255#171'vU'#255'1"'#24#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#0#0#255'}V>'#255 +#181'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y'#255#181 +'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y' +#255#181'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y'#255 +#181'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y'#255#181 +'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y'#255#181'|Y' +#255#181'|Y'#255#181'|Y'#255#178'wT'#255#161'];'#255'k8 '#255'[/'#27#255'V3#' +#238'DDD'#151'CCCWFFF!@@@'#8#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2'FFF'#11 +'K:3?[/'#27#255'[/'#27#255#131'F*'#255#169'iH'#255#179'xV'#255#180'zW'#255 +#180'{W'#255#180'{W'#255#180'{W'#255#180'{W'#255#180'{W'#255#180'{W'#255#180 +'{W'#255#180'{W'#255#180'{W'#255#180'{W'#255#180'{W'#255'<)'#29#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#1#1#1#255'O6&'#255#180'{W'#255#180'{W'#255#180'{W'#255#180 +'{W'#255#180'{W'#255#180'{W'#255#180'{W'#255#180'{W'#255#180'{W'#255#180'{W' +#255#180'{W'#255#180'{W'#255#180'{W'#255#180'{W'#255#180'{W'#255#180'{W'#255 +#180'{W'#255#142'aE'#255#27#19#13#255#2#1#1#255#0#0#0#255#0#0#0#255#0#0#0#255 ,#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#8#5#4#255 +#135']A'#255#180'{W'#255#180'{W'#255#180'{W'#255#180'{W'#255#180'{W'#255#180 +'{W'#255#180'{W'#255#180'{W'#255#180'{W'#255'pL6'#255'+'#29#20#255'('#28#19 +#255'*'#28#20#255'+'#29#21#255'-'#30#21#255'fF2'#255#180'{W'#255#180'{W'#255 +#180'{W'#255#180'{W'#255#180'{W'#255#180'{W'#255#180'{W'#255#180'{W'#255#180 +'{W'#255#180'{W'#255#180'{W'#255#180'{W'#255#180'{W'#255#180'{W'#255#180'{W' +#255#180'{W'#255#180'{W'#255#180'{W'#255#180'zX'#255#178'vU'#255#163'_>'#255 +'r<"'#255'[/'#27#255'X2!'#243'CCC'#152'BBBYDDD"@@@'#8#0#0#0#1#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#2'FFF'#11'N8.J[/'#27#255'[/'#27#255#135'H,'#255#170'kI'#255 +#178'wV'#255#179'yX'#255#179'yX'#255#179'yX'#255#179'yX'#255#179'yX'#255#179 +'yX'#255#179'yX'#255#179'yX'#255#179'yX'#255#179'yX'#255#179'yX'#255#179'yX' +#255#16#11#8#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#19#13#10#255#150'fJ'#255#179'yX'#255#179 +'yX'#255#179'yX'#255#179'yX'#255#179'yX'#255#179'yX'#255#179'yX'#255#179'yX' +#255#179'yX'#255#179'yX'#255#179'yX'#255#179'yX'#255#179'yX'#255#179'yX'#255 +#179'yX'#255#179'yX'#255#179'yX'#255#179'yX'#255#179'yX'#255#179'yX'#255#179 +'yX'#255'~V>'#255'=)'#30#255#19#13#9#255#1#1#1#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255'$'#24#17#255#172'uT'#255#179'yX'#255#179'yX'#255#179'yX' +#255#179'yX'#255#179'yX'#255#179'yX'#255#179'yX'#255#158'kN'#255'=)'#30#255#6 +#4#3#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#6#4#3#255'?+'#31#255#164'oP'#255#179'yX'#255#179'yX'#255#179'yX'#255#179 +'yX'#255#179'yX'#255#179'yX'#255#179'yX'#255#179'yX'#255#179'yX'#255#179'yX' +#255#179'yX'#255#179'yX'#255#179'yX'#255#179'yX'#255#179'yX'#255#179'yX'#255 +#177'uU'#255#164'b@'#255'v?%'#255'[/'#27#255'Y1'#31#246'CCC'#152'BBBYDDD"@@@' +#8#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'FFF'#11'Q7+U[/'#27#255'\0'#28#255 +#139'J-'#255#171'lL'#255#177'wW'#255#178'wV'#255#178'wV'#255#178'wV'#255#178 +'wV'#255#178'wV'#255#178'wV'#255#178'wV'#255#178'wV'#255#178'wV'#255#178'wV' +#255#178'wV'#255#172'sT'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#1#1#255'O5&'#255#178'wV'#255#178'wV' +#255#178'wV'#255#178'wV'#255#178'wV'#255#178'wV'#255#178'wV'#255#178'wV'#255 +#178'wV'#255#178'wV'#255#178'wV'#255#178'wV'#255#178'wV'#255#178'wV'#255#178 +'wV'#255#178'wV'#255#178'wV'#255#178'wV'#255#178'wV'#255#178'wV'#255#178'wV' +#255#178'wV'#255#178'wV'#255#178'wV'#255#178'wV'#255#178'wV'#255#176'wV'#255 +'vO9'#255'7%'#27#255#16#10#8#255#1#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0 +#0#255#0#0#0#255#11#8#6#255'9&'#28#255#137'\C'#255#178'wV'#255#178'wV'#255 +#178'wV'#255#178'wV'#255#178'wV'#255#178'wV'#255#178'wV'#255#178'wV'#255'M3%' +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#0#0#255'4"'#25#255#178'wV' +#255#178'wV'#255#178'wV'#255#178'wV'#255#178'wV'#255#178'wV'#255#178'wV'#255 +#178'wV'#255#178'wV'#255#178'wV'#255#178'wV'#255#178'wV'#255#178'wV'#255#178 +'wV'#255#178'wV'#255#176'tT'#255#165'cC'#255'yA'''#255'[/'#27#255'Z0'#29#250 +'DDD'#150'CCCWFFF!III'#7#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'MMM'#10'R4' +'''^[/'#27#255'\0'#28#255#142'M.'#255#171'nN'#255#177'uV'#255#177'wX'#255#177 +'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255#177'wX' +#255#177'wX'#255#177'wX'#255#177'wX'#255'gF3'#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#23#16#12#255#152'fK'#255#177 +'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255#177'wX' +#255#177'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255 +#177'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255#177 +'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255#177'wX' +#255#177'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255#173'uV'#255 +#136'\D'#255#133'YB'#255#131'XA'#255#128'V@'#255#153'gL'#255#177'wX'#255#177 +'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255#177'wX' +#255#177'wX'#255#177'wX'#255'S8)'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255'"'#23#17#255#175'wX'#255#177'wX'#255#177 +'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255#177'wX' +#255#177'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255#177'wX'#255#175'tU'#255 +#166'eE'#255'}B)'#255'\0'#28#255'[/'#28#253'CCC'#148'CCCTBBB'#31'III'#7#0#0#0 ,#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'999'#9'V4%h[/'#27#255'\0'#28#255#145'O0' +#255#171'mN'#255#175'sU'#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255 +#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255#175 +'uW'#255'*'#29#21#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#2 +#1#1#255'X;,'#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255 +#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255#175 +'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW' +#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255 +#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255#175 +'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW' +#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255 +#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255'^?/'#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255'$'#24#18#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255 +#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255#175'uW'#255#175 +'uW'#255#175'uW'#255#175'uW'#255#175'sT'#255#166'eE'#255#128'D*'#255'\0'#28 +#255'[/'#27#255'ECB'#149'CCCP@@@'#28'UUU'#6#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#1'@@@'#8'W3#q[/'#27#255'\1'#29#255#150'Q1'#255#171'mN'#255#174'sU'#255 +#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175 +'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#15#10#8#255#0#0#0 +#255#0#0#0#255#0#0#0#255#4#3#2#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#29#19#14#255#156'iM'#255#175'uV'#255 +#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175 +'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV' +#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255 +#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175 +'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV' +#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255 +#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175 +'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#11#7#6#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255'sM9'#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255 +#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175'uV'#255#175 +'tV'#255#174'rS'#255#167'fG'#255#131'G,'#255'\0'#28#255'[/'#27#255'GA?'#150 +'CCCLGGG'#25'333'#5#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'III'#7'W3#k[/'#27 +#255'\1'#29#255#149'P2'#255#169'lM'#255#174'qT'#255#175'tV'#255#175'tV'#255 +#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175 +'tV'#255#175'tV'#255#175'tV'#255#9#6#4#255#0#0#0#255#0#0#0#255#0#0#0#255#136 +'ZC'#255'T8*'#255#1#1#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#7#5#3#255 +'bA0'#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV' +#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255 +#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175 +'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV' +#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255 +#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175 +'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV' +#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255 +#165'nR'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#10#7#5#255#175'tV'#255#175 +'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV'#255#175'tV' +#255#175'tV'#255#175'tV'#255#175'tV'#255#174'sU'#255#173'qR'#255#166'eG'#255 +#131'F,'#255'\0'#28#255'[/'#27#255'EA?'#145'DDDGFFF'#22'@@@'#4#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#1'333'#5'W3#\[/'#27#255'\1'#29#255#146'P3'#255#168 +'jM'#255#173'pT'#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU' +#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255 +#4#3#2#255#0#0#0#255#0#0#0#255#21#14#10#255#173'rU'#255#173'rU'#255#152'dK' +#255'dB1'#255'A+ '#255'D-!'#255#141']E'#255#173'rU'#255#173'rU'#255#173'rU' +#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255 +#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#173 +'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU' ,#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255 +#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#173 +'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU' +#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255 +#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#169'pS'#255#0#0 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#139'\D'#255#173'rU'#255#173'rU' +#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255#173'rU'#255 +#173'rU'#255#173'rU'#255#173'qT'#255#172'oR'#255#165'cF'#255#128'E+'#255'\0' +#28#255'[/'#27#255'CBA'#132'DDD@CCC'#19'UUU'#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0'@@@'#4'U2"L[/'#27#255'\1'#29#255#143'N3'#255#168'hK'#255#172'oT' +#255#173'qU'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255 +#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#1#1#1#255#0#0#0 +#255#0#0#0#255'nI7'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173 +'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV' +#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255 +#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173 +'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV' +#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255 +#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173 +'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV' +#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255 +#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#2#1#1#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255'H0$'#255#173'rV'#255#173'rV'#255#173'rV' +#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255#173'rV'#255 +#173'rV'#255#173'qU'#255#171'nQ'#255#165'dF'#255'~D+'#255'\1'#29#255'Z0'#28 +#252'CCCzCCC9@@@'#16#128#128#128#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'U' +'UU'#3'T2#=[/'#27#255'\1'#29#255#140'N1'#255#166'gI'#255#171'oR'#255#173'qU' +#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255 +#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#1#1#1#255#27#18#13#255'a@0' +#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255 +#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173 +'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU' +#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255 +#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173 +'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU' +#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255 +#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173 +'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU' +#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255'$'#24#18#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#31#20#15#255#173'qU'#255#173'qU'#255#173'qU'#255 +#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173'qU'#255#173 +'qU'#255#172'pT'#255#169'lP'#255#164'aD'#255'{C*'#255'\1'#29#255'Y0'#30#247 +'CCCoBBB2;;;'#13#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128 +#2'V6''-[/'#27#255'\1'#29#255#137'L0'#255#165'fH'#255#170'mQ'#255#172'pT'#255 +#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172 +'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#166'lS'#255#172'pU'#255#172'pU' +#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255 +#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172 +'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU' +#255#172'pU'#255#172'pU'#255#172'pU'#255#168'nS'#255#134'WB'#255'b@0'#255'tK' +'9'#255#166'lS'#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU' +#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255 +#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172 +'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU' +#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255 +#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#129'T@'#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 ,#255#0#0#0#255#0#0#0#255#22#14#11#255#172'pU'#255#172'pU'#255#172'pU'#255#172 +'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU'#255#172'pU' +#255#172'oT'#255#170'mP'#255#163'`C'#255'xB*'#255'\1'#29#255'Y1'#31#241'BBBd' +'CCC*MMM'#10#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2'T7*'#29 +'[/'#27#255'\1'#29#255#134'J0'#255#165'dG'#255#169'lQ'#255#171'pU'#255#172'q' +'W'#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW' +#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255 +#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172 +'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW' +#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255 +#135'YD'#255'$'#24#18#255#3#2#2#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#8#5#4#255#30#20#16#255'xO='#255#172'qW'#255#172'qW'#255#172'qW'#255 +#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172 +'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW' +#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255 +#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172 +'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#14#9#7#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#20#13#10#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW' +#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#172'qW'#255#171'oT'#255 +#169'jM'#255#162'_A'#255's>'''#255'\1'#29#255'X2 '#234'CCCXDDD"@@@'#8#0#0#0#1 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'C><'#9'[/'#27#247'\1'#29#255 +'}F-'#255#164'bE'#255#169'lO'#255#171'pT'#255#172'qV'#255#172'qV'#255#172'qV' +#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255 +#172'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255#172 +'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV' +#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255 +#172'qV'#255#172'qV'#255#154'eM'#255#22#15#11#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#25#17#13#255#136'ZE'#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV' +#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255 +#172'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255#172 +'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV' +#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255 +#172'qV'#255'U7*'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#17#11#9#255#172'qV'#255#172 +'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV'#255#172'qV' +#255#172'qV'#255#172'qV'#255#171'oT'#255#168'jM'#255#161'^@'#255'k;%'#255'\0' +#28#255'V3#'#220'CCCLEEE'#26'333'#5#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0'+++'#6'[/'#28#214'\1'#29#255't@)'#255#162'`B'#255#168'jO'#255 +#172'pV'#255#173'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#173 +'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#173'rX' +#255#173'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255 +#173'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#173 +'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#144'_I'#255#6#4#3 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'Z;-'#255 +#173'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#173 +'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#173'rX' +#255#173'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255 +#173'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#173 +'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#171'pV'#255#3#2#1#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255'!'#22#17#255#173'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#173'rX' +#255#173'rX'#255#173'rX'#255#173'rX'#255#173'rX'#255#172'qX'#255#171'oU'#255 +#167'hM'#255#160'[>'#255'b5!'#255'\0'#28#255'S5'''#196'EEE?CCC'#19'@@@'#4#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'UUU'#3'Z0'#29#176'\1'#29 +#255'k:%'#255#162'^A'#255#169'jN'#255#173'qV'#255#174'sY'#255#174'sY'#255#174 +'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY' +#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255 +#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174 ,'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY' +#255#151'dM'#255#4#2#2#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#1#1#1#255#136'YF'#255#174'sY'#255#174'sY'#255#174's' +'Y'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY' +#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255 +#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174 +'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY' +#255#174'sY'#255'5#'#27#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'G.$'#255#174'sY'#255#174'sY'#255 +#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174 +'sY'#255#174'sY'#255#172'pV'#255#167'gK'#255#153'X:'#255'^3'#31#255'\0'#28 +#255'Q7+'#166'BBB2777'#14#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#2'Z0'#29#137'\0'#28#255'a5!'#255#160']>'#255#168'jN'#255 +#173'sY'#255#175'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255#175 +'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255#175'v\' +#255#175'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255 +#175'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255#175 +'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255#29#20#15#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#8 +#5#4#255#169'rX'#255#175'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255#175'v\' +#255#175'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255 +#175'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255#175 +'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255#175'v\' +#255#175'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255#156'jR'#255#1#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255'yQ?'#255#175'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255 +#175'v\'#255#175'v\'#255#175'v\'#255#175'v\'#255#174'u['#255#172'qV'#255#166 +'gJ'#255#143'S6'#255'^2'#31#255'[/'#27#255'O;2'#130'CCC&999'#9#0#0#0#1#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'Z0'#29'a\0'#28#255 +'^3'#31#255#153'W;'#255#168'jN'#255#174'tZ'#255#176'x_'#255#176'y_'#255#176 +'y_'#255#176'y_'#255#176'y_'#255#176'y_'#255#176'y_'#255#176'y_'#255#176'y_' +#255#176'y_'#255#176'y_'#255#176'y_'#255#176'y_'#255#176'y_'#255#176'y_'#255 +#176'y_'#255#176'y_'#255#176'y_'#255#176'y_'#255#176'y_'#255#176'y_'#255#176 +'y_'#255#176'y_'#255#176'y_'#255#176'y_'#255#176'y_'#255#176'y_'#255'oL='#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255']@2'#255#176'y_'#255#176'y_'#255#176 +'y_'#255#176'y_'#255#176'y_'#255#176'y_'#255'Z=1'#255')'#28#22#255#26#18#14 +#255#14#10#8#255#10#7#5#255#23#16#12#255'+'#30#23#255'E0&'#255#138'_J'#255 +#176'y_'#255#176'y_'#255#176'y_'#255#176'y_'#255#176'y_'#255#176'y_'#255#176 +'y_'#255#176'y_'#255#176'y_'#255#176'y_'#255#176'y_'#255#176'y_'#255#176'y_' +#255#176'y_'#255'#'#24#19#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#172'w]'#255#176'y_'#255#176'y_'#255 +#176'y_'#255#176'y_'#255#176'y_'#255#176'y_'#255#176'y_'#255#176'y_'#255#176 +'y_'#255#175'w^'#255#172'rW'#255#165'fI'#255#134'K2'#255']1'#30#255'[/'#27 +#255'H?:ZBBB'#27'+++'#6#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0'X/'#29'7[/'#27#255'^2'#31#255#141'P5'#255#167'hK'#255#174 +'sY'#255#177'x_'#255#177'za'#255#177'za'#255#177'za'#255#177'za'#255#177'za' +#255#177'za'#255#177'za'#255#177'za'#255#177'za'#255#177'za'#255#177'za'#255 +#177'za'#255#177'za'#255#177'za'#255#177'za'#255#177'za'#255#177'za'#255#177 +'za'#255#177'za'#255#177'za'#255#177'za'#255#177'za'#255#177'za'#255#177'za' +#255#177'za'#255#177'za'#255#9#6#5#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255'%'#25#20#255#177'za'#255#177'za'#255#177'za'#255#177'za'#255'bD6'#255#8 +#6#4#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255'>+"'#255#175'za'#255#177'za'#255#177'za'#255#177'za' +#255#177'za'#255#177'za'#255#177'za'#255#177'za'#255#177'za'#255#177'za'#255 +#177'za'#255#177'za'#255#177'za'#255#136'^K'#255#0#0#0#255#0#0#0#255#0#0#0 ,#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#16#11#9#255#177'za'#255#177 +'za'#255#177'za'#255#177'za'#255#177'za'#255#177'za'#255#177'za'#255#177'za' +#255#177'za'#255#177'za'#255#176'x^'#255#172'qV'#255#164'cF'#255'{E,'#255']1' +#30#255'Z0'#29#245'DDD'#255 +'`5!'#255'\0'#28#255'T5'''#155'DDD'#30'III'#7#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'Z/'#28'w\0'#28#255 +'`5!'#255#157'\?'#255#172'pU'#255#179'}d'#255#181#129'i'#255#182#129'j'#255 +#182#129'j'#255#182#129'j'#255#182#129'j'#255#182#129'j'#255#182#129'j'#255 +#182#129'j'#255#182#129'j'#255#182#129'j'#255#182#129'j'#255#182#129'j'#255 +#182#129'j'#255#182#129'j'#255#182#129'j'#255#182#129'j'#255#182#129'j'#255 +#182#129'j'#255#182#129'j'#255#182#129'j'#255#182#129'j'#255#182#129'j'#255 +#182#129'j'#255#182#129'j'#255#182#129'j'#255'.!'#27#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#2#1#1#255#166'va'#255#182#129'j'#255#182#129'j'#255'A.&' +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#9#6#5#255#170'yd'#255#182#129'j'#255#182#129'j'#255#182#129'j'#255#182 +#129'j'#255#182#129'j'#255#182#129'j'#255#182#129'j'#255#182#129'j'#255#182 +#129'j'#255#182#129'j'#255#182#129'j'#255#8#6#5#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#135'`O'#255#182#129'j'#255#182#129'j'#255#182#129'j'#255 +#182#129'j'#255#182#129'j'#255#182#129'j'#255#182#129'j'#255#182#129'j'#255 +#182#129'j'#255#182#129'j'#255#181#128'h'#255#177'za'#255#169'kP'#255#139'Q7' +#255'^3'#31#255'\0'#28#255'N9/\GGG'#18'UUU'#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'X.'#26'4\0'#28#255 ,'^3'#31#255#141'S8'#255#170'mQ'#255#179'|c'#255#182#130'k'#255#184#132'm'#255 +#184#132'm'#255#184#132'm'#255#184#132'm'#255#184#132'm'#255#184#132'm'#255 +#184#132'm'#255#184#132'm'#255#184#132'm'#255#184#132'm'#255#184#132'm'#255 +#184#132'm'#255#184#132'm'#255#184#132'm'#255#184#132'm'#255#184#132'm'#255 +#184#132'm'#255#184#132'm'#255#184#132'm'#255#184#132'm'#255#184#132'm'#255 +#184#132'm'#255#184#132'm'#255#184#132'm'#255#20#15#12#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255'N8.'#255#184#132'm'#255#184#132'm'#255#184#132'm' +#255#22#16#13#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#21#15#13#255#182#130'm'#255#184#132'm'#255#184#132 +'m'#255#184#132'm'#255#184#132'm'#255#184#132'm'#255#184#132'm'#255#184#132 +'m'#255#184#132'm'#255#184#132'm'#255#184#132'm'#255'N8.'#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#23#17#13#255#184#132'm'#255#184#132'm'#255#184#132'm'#255 +#184#132'm'#255#184#132'm'#255#184#132'm'#255#184#132'm'#255#184#132'm'#255 +#184#132'm'#255#184#132'm'#255#183#131'l'#255#182#129'j'#255#177'x_'#255#167 +'hK'#255'zG/'#255']1'#30#255'Z0'#28#241'@@@(MMM'#10#0#0#0#1#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'='#31 +#18#3'[/'#27#238']1'#30#255'{G/'#255#167'hL'#255#177'za'#255#183#131'l'#255 +#185#134'p'#255#185#134'p'#255#185#134'p'#255#185#134'p'#255#185#134'p'#255 +#185#134'p'#255#185#134'p'#255#185#134'p'#255#185#134'p'#255#185#134'p'#255 +#185#134'p'#255#185#134'p'#255#185#134'p'#255#185#134'p'#255#185#134'p'#255 +#185#134'p'#255#185#134'p'#255#185#134'p'#255#185#134'p'#255#185#134'p'#255 +#185#134'p'#255#185#134'p'#255#185#134'p'#255#185#134'p'#255#26#19#16#255#0#0 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#12#9#7#255#185#134'p'#255#185#134'p'#255#185#134'p' +#255#185#134'p'#255#3#2#2#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'U>4'#255#185#134'p'#255#185 +#134'p'#255#185#134'p'#255#185#134'p'#255#185#134'p'#255#185#134'p'#255#185 +#134'p'#255#185#134'p'#255#185#134'p'#255#185#134'p'#255#185#134'p'#255#25#18 +#15#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255'xWI'#255#185#134'p'#255#185#134'p'#255#185#134 +'p'#255#185#134'p'#255#185#134'p'#255#185#134'p'#255#185#134'p'#255#185#134 +'p'#255#185#134'p'#255#185#134'p'#255#184#134'o'#255#182#129'j'#255#175'v\' +#255#165'dG'#255'h;&'#255'\1'#29#255'X2 '#193'==='#25'+++'#6#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0'[/'#27#170'\1'#29#255'f9%'#255#164'bG'#255#175'v]'#255#183#131 +'l'#255#186#135'r'#255#186#137's'#255#186#137's'#255#186#137's'#255#186#137 +'s'#255#186#137's'#255#186#137's'#255#186#137's'#255#186#137's'#255#186#137 +'s'#255#186#137's'#255#186#137's'#255#186#137's'#255#186#137's'#255#186#137 +'s'#255#186#137's'#255#186#137's'#255#186#137's'#255#186#137's'#255#186#137 +'s'#255#186#137's'#255#186#137's'#255#186#137's'#255#186#137's'#255'$'#27#23 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#129'_P'#255#186#137's'#255#186#137's'#255 +#186#137's'#255#186#137's'#255#1#1#1#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255' '#23#19#255#186 +#137's'#255#186#137's'#255#186#137's'#255#186#137's'#255#186#137's'#255#186 +#137's'#255#186#137's'#255#186#137's'#255#186#137's'#255#186#137's'#255#186 +#137's'#255#172#127'j'#255#7#5#4#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#12#9#7#255#186#137's'#255#186#137's' +#255#186#137's'#255#186#137's'#255#186#137's'#255#186#137's'#255#186#137's' +#255#186#137's'#255#186#137's'#255#186#137's'#255#186#137's'#255#185#135'q' +#255#181#129'i'#255#173'qW'#255#149'X='#255'`5!'#255'\0'#28#255'V4%'#127'333' +#15#0#0#0#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'Z/'#27'O\0'#28#255'_4 '#255#144'U:' +#255#172'qV'#255#182#130'k'#255#187#137't'#255#188#139'u'#255#188#140'v'#255 +#188#140'v'#255#188#140'v'#255#188#140'v'#255#188#140'v'#255#188#140'v'#255 +#188#140'v'#255#188#140'v'#255#188#140'v'#255#188#140'v'#255#188#140'v'#255 ,#188#140'v'#255#188#140'v'#255#188#140'v'#255#188#140'v'#255#188#140'v'#255 +#188#140'v'#255#188#140'v'#255#188#140'v'#255#188#140'v'#255#188#140'v'#255 +#188#140'v'#255'1$'#31#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255':+$'#255#188#140'v'#255#188#140 +'v'#255#188#140'v'#255#188#140'v'#255#188#140'v'#255#1#1#1#255#0#0#0#255#0#0 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#4#3#3#255#188#140'v'#255#188#140'v'#255#188#140'v'#255#188#140'v'#255 +#188#140'v'#255#188#140'v'#255#188#140'v'#255#188#140'v'#255#188#140'v'#255 +#188#140'v'#255#188#140'v'#255#188#140'v'#255#188#140'v'#255'}]N'#255'6("' +#255#14#11#9#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'S>5'#255 +#188#140'v'#255#188#140'v'#255#188#140'v'#255#188#140'v'#255#188#140'v'#255 +#188#140'v'#255#188#140'v'#255#188#140'v'#255#188#140'v'#255#188#140'v'#255 +#188#139'u'#255#186#136'r'#255#180'~f'#255#169'kP'#255'|H1'#255'^2'#31#255'[' +'/'#27#249'L=6+III'#7#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27#5'[/'#27#235 +']1'#30#255'wD/'#255#169'jO'#255#180#127'g'#255#187#137'u'#255#189#141'x'#255 +#189#142'y'#255#189#142'y'#255#189#142'y'#255#189#142'y'#255#189#142'y'#255 +#189#142'y'#255#189#142'y'#255#189#142'y'#255#189#142'y'#255#189#142'y'#255 +#189#142'y'#255#189#142'y'#255#189#142'y'#255#189#142'y'#255#189#142'y'#255 +#189#142'y'#255#189#142'y'#255#189#142'y'#255#189#142'y'#255#189#142'y'#255 +#189#142'y'#255#189#142'y'#255'J7/'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#16#12#11#255#187#140'y'#255 +#189#142'y'#255#189#142'y'#255#189#142'y'#255#189#142'y'#255#189#142'y'#255#1 +#1#1#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#181#136'u'#255#189#142'y'#255#189#142 +'y'#255#189#142'y'#255#189#142'y'#255#189#142'y'#255#189#142'y'#255#189#142 +'y'#255#189#142'y'#255#189#142'y'#255#189#142'y'#255#189#142'y'#255#189#142 +'y'#255#189#142'y'#255#189#142'y'#255#189#142'y'#255#11#8#7#255#0#0#0#255#0#0 +#0#255#0#0#0#255#1#1#1#255#181#136's'#255#189#142'y'#255#189#142'y'#255#189 +#142'y'#255#189#142'y'#255#189#142'y'#255#189#142'y'#255#189#142'y'#255#189 +#142'y'#255#189#142'y'#255#189#142'y'#255#189#141'x'#255#186#136'q'#255#177 +'za'#255#164'dG'#255'f:&'#255'\1'#29#255'Y1'#31#186'@@@'#16'UUU'#3#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'Z/'#27#147'\1'#29#255'b8$'#255#160'bF'#255 +#177'y`'#255#186#137's'#255#190#143'z'#255#191#145'|'#255#191#145'|'#255#191 +#145'|'#255#191#145'|'#255#191#145'|'#255#191#145'|'#255#191#145'|'#255#191 +#145'|'#255#191#145'|'#255#191#145'|'#255#191#145'|'#255#191#145'|'#255#191 +#145'|'#255#191#145'|'#255#191#145'|'#255#191#145'|'#255#191#145'|'#255#191 +#145'|'#255#191#145'|'#255#191#145'|'#255#191#145'|'#255#191#145'|'#255#162 +'{i'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#1#1#1#255#162'{i'#255#191#145'|'#255#191#145'|'#255#191#145'|'#255 +#191#145'|'#255#191#145'|'#255#191#145'|'#255#2#1#1#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1 +#1#1#255#191#145'|'#255#191#145'|'#255#191#145'|'#255#191#145'|'#255#191#145 +'|'#255#191#145'|'#255#191#145'|'#255#191#145'|'#255#191#145'|'#255#191#145 +'|'#255#191#145'|'#255#191#145'|'#255#191#145'|'#255#191#145'|'#255#191#145 +'|'#255#191#145'|'#255#5#4#3#255#0#0#0#255#0#0#0#255#0#0#0#255'&'#29#25#255 +#191#145'|'#255#191#145'|'#255#191#145'|'#255#191#145'|'#255#191#145'|'#255 +#191#145'|'#255#191#145'|'#255#191#145'|'#255#191#145'|'#255#191#145'|'#255 +#191#145'|'#255#189#142'y'#255#184#134'o'#255#174'sY'#255#143'U;'#255'`5!' +#255'\0'#28#255'U3$`@@@'#8#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0'Z.'#27'5\0'#28#255'_4 '#255#137'Q8'#255#173'rX'#255#184#134'o'#255#190#144 +'{'#255#192#147#127#255#192#147#127#255#192#147#127#255#192#147#127#255#192 +#147#127#255#192#147#127#255#192#147#127#255#192#147#127#255#192#147#127#255 +#192#147#127#255#192#147#127#255#192#147#127#255#192#147#127#255#192#147#127 +#255#192#147#127#255#192#147#127#255#192#147#127#255#192#147#127#255#192#147 +#127#255#192#147#127#255#192#147#127#255#192#147#127#255#192#147#127#255#14 ,#11#9#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255' ' +#24#21#255#192#147#127#255#192#147#127#255#192#147#127#255#192#147#127#255 +#192#147#127#255#192#147#127#255#192#147#127#255#4#3#3#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#8#6#5#255#192#147#127#255#192#147#127#255#192#147#127#255#192#147#127 +#255#192#147#127#255#192#147#127#255#192#147#127#255#192#147#127#255#192#147 +#127#255#192#147#127#255#192#147#127#255#192#147#127#255#192#147#127#255#192 +#147#127#255#192#147#127#255#192#147#127#255#1#1#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#137'iZ'#255#192#147#127#255#192#147#127#255#192#147#127#255#192#147 +#127#255#192#147#127#255#192#147#127#255#192#147#127#255#192#147#127#255#192 +#147#127#255#192#147#127#255#192#146'~'#255#189#142'y'#255#182#129'j'#255#169 +'lP'#255'uD.'#255'^2'#31#255'[/'#28#237'NFB'#21'UUU'#3#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27#211']1'#30#255'l>)'#255#167'iM' +#255#181#127'g'#255#190#143'z'#255#193#148#128#255#194#149#130#255#194#149 +#130#255#194#149#130#255#194#149#130#255#194#149#130#255#194#149#130#255#194 +#149#130#255#194#149#130#255#194#149#130#255#194#149#130#255#194#149#130#255 +#194#149#130#255#194#149#130#255#194#149#130#255#194#149#130#255#194#149#130 +#255#194#149#130#255#194#149#130#255#194#149#130#255#194#149#130#255#194#149 +#130#255#194#149#130#255'G60'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255'ZE<'#255#194#149#130#255#194#149#130#255#194#149#130#255 +#194#149#130#255#194#149#130#255#194#149#130#255#194#149#130#255#7#6#5#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#23#17#15#255#194#149#130#255#194#149#130#255#194#149#130 +#255#194#149#130#255#194#149#130#255#194#149#130#255#194#149#130#255#194#149 +#130#255#194#149#130#255#194#149#130#255#194#149#130#255#194#149#130#255#194 +#149#130#255#194#149#130#255#194#149#130#255#179#137'x'#255#0#0#0#255#0#0#0 +#255#0#0#0#255'-#'#30#255#194#149#130#255#194#149#130#255#194#149#130#255#194 +#149#130#255#194#149#130#255#194#149#130#255#194#149#130#255#194#149#130#255 +#194#149#130#255#194#149#130#255#194#149#130#255#192#147#127#255#188#140'v' +#255#177'za'#255#156'_D'#255'a6#'#255'\1'#29#255'Y1'#31#153'@@@'#8#0#0#0#1#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'Z/'#27']\0'#28#255 +'`5!'#255#143'V='#255#175'v]'#255#187#138'u'#255#193#149#129#255#195#152#132 +#255#195#152#133#255#195#152#133#255#195#152#133#255#195#152#133#255#195#152 +#133#255#195#152#133#255#195#152#133#255#195#152#133#255#195#152#133#255#195 +#152#133#255#195#152#133#255#195#152#133#255#195#152#133#255#195#152#133#255 +#195#152#133#255#195#152#133#255#195#152#133#255#195#152#133#255#195#152#133 +#255#195#152#133#255#195#152#133#255#170#133't'#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#172#133'u'#255#195#152#133#255#195#152 +#133#255#195#152#133#255#195#152#133#255#195#152#133#255#195#152#133#255#146 +'rd'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'_JA'#255#195#152#133#255#195#152#133 +#255#195#152#133#255#195#152#133#255#195#152#133#255#195#152#133#255#195#152 +#133#255#195#152#133#255#195#152#133#255#195#152#133#255#195#152#133#255#195 +#152#133#255#195#152#133#255#195#152#133#255#195#152#133#255#140'm`'#255#0#0 +#0#255#0#0#0#255#6#5#4#255#186#145#127#255#195#152#133#255#195#152#133#255 +#195#152#133#255#195#152#133#255#195#152#133#255#195#152#133#255#195#152#133 +#255#195#152#133#255#195#152#133#255#195#152#133#255#195#152#132#255#192#147 +#127#255#185#134'p'#255#172'pU'#255'|I2'#255'^3'#31#255'\0'#28#250'R5()UUU'#3 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27#3 +'[/'#27#221']1'#30#255'oA,'#255#169'lP'#255#183#131'l'#255#192#147#127#255 +#196#154#135#255#197#155#136#255#197#155#136#255#197#155#136#255#197#155#136 +#255#197#155#136#255#197#155#136#255#197#155#136#255#197#155#136#255#197#155 +#136#255#197#155#136#255#197#155#136#255#197#155#136#255#197#155#136#255#197 +#155#136#255#197#155#136#255#197#155#136#255#197#155#136#255#197#155#136#255 +#197#155#136#255#197#155#136#255#197#155#136#255#197#155#136#255#26#20#18#255 ,#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#8#6#5#255#197#155#136#255#197 +#155#136#255#197#155#136#255#197#155#136#255#197#155#136#255#197#155#136#255 +#197#155#136#255#28#22#19#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#4#3#3#255#193#153#134#255 +#197#155#136#255#197#155#136#255#197#155#136#255#197#155#136#255#197#155#136 +#255#197#155#136#255#197#155#136#255#197#155#136#255#197#155#136#255#197#155 +#136#255#197#155#136#255#197#155#136#255#197#155#136#255#197#155#136#255#197 +#155#136#255#182#143'~'#255'=0*'#255#7#5#5#255#130'fY'#255#197#155#136#255 +#197#155#136#255#197#155#136#255#197#155#136#255#197#155#136#255#197#155#136 +#255#197#155#136#255#197#155#136#255#197#155#136#255#197#155#136#255#196#154 +#136#255#195#152#133#255#190#144'{'#255#180'~f'#255#159'bG'#255'c8%'#255'\1' +#29#255'Z0'#30#163'III'#7#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27'g\0'#28#255'a6#'#255#147'Y@'#255#177 +'za'#255#190#143'z'#255#196#154#135#255#198#157#139#255#198#157#139#255#198 +#157#139#255#198#157#139#255#198#157#139#255#198#157#139#255#198#157#139#255 +#198#157#139#255#198#157#139#255#198#157#139#255#198#157#139#255#198#157#139 +#255#198#157#139#255#198#157#139#255#198#157#139#255#198#157#139#255#198#157 +#139#255#198#157#139#255#198#157#139#255#198#157#139#255#198#157#139#255#198 +#157#139#255'<0+'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'*!'#29#255 +#198#157#139#255#198#157#139#255#198#157#139#255#198#157#139#255#198#157#139 +#255#198#157#139#255#164#130's'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'?2,'#255#198 +#157#139#255#198#157#139#255#198#157#139#255#198#157#139#255#198#157#139#255 +#198#157#139#255#198#157#139#255#198#157#139#255#198#157#139#255#198#157#139 +#255#198#157#139#255#198#157#139#255#198#157#139#255#198#157#139#255#198#157 +#139#255#198#157#139#255#198#157#139#255#198#157#139#255#198#157#139#255#198 +#157#139#255#198#157#139#255#198#157#139#255#198#157#139#255#198#157#139#255 +#198#157#139#255#198#157#139#255#198#157#139#255#198#157#139#255#198#157#139 +#255#198#157#139#255#198#156#138#255#195#152#132#255#187#138't'#255#173'sY' +#255#127'L5'#255'^3'#31#255'\0'#28#252'U3$,'#128#128#128#2#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27#7 +'[/'#27#229'^2'#31#255'qB.'#255#171'nS'#255#185#134'p'#255#194#151#131#255 +#198#158#140#255#200#160#142#255#200#160#142#255#200#160#142#255#200#160#142 +#255#200#160#142#255#200#160#142#255#200#160#142#255#200#160#142#255#200#160 +#142#255#200#160#142#255#200#160#142#255#200#160#142#255#200#160#142#255#200 +#160#142#255#200#160#142#255#200#160#142#255#200#160#142#255#200#160#142#255 +#200#160#142#255#200#160#142#255#200#160#142#255'9.)'#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255'hSJ'#255#200#160#142#255#200#160#142#255#200#160#142 +#255#200#160#142#255#200#160#142#255#200#160#142#255'6+'''#255#0#0#0#255#0#0 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#6#5#5#255#184#148#131#255#200#160#142#255#200#160#142#255#200#160#142 +#255#200#160#142#255#200#160#142#255#200#160#142#255#200#160#142#255#200#160 +#142#255#200#160#142#255#200#160#142#255#200#160#142#255#200#160#142#255#200 +#160#142#255#200#160#142#255#200#160#142#255#200#160#142#255#200#160#142#255 +#200#160#142#255#200#160#142#255#200#160#142#255#200#160#142#255#200#160#142 +#255#200#160#142#255#200#160#142#255#200#160#142#255#200#160#142#255#200#160 +#142#255#200#160#142#255#200#160#142#255#199#159#141#255#198#157#139#255#192 +#147#127#255#181#127'g'#255#161'dI'#255'd:&'#255'\1'#29#255'Z0'#29#171'@@@'#4 +#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27'q\1'#29#255'a6#'#255#143'W?'#255#177'za'#255 +#191#144'|'#255#198#157#139#255#200#161#144#255#201#162#145#255#201#163#145 +#255#201#163#145#255#201#163#145#255#201#163#145#255#201#163#145#255#201#163 +#145#255#201#163#145#255#201#163#145#255#201#163#145#255#201#163#145#255#201 +#163#145#255#201#163#145#255#201#163#145#255#201#163#145#255#201#163#145#255 +#201#163#145#255#201#163#145#255#201#163#145#255#201#163#145#255'=2,'#255#0#0 ,#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255'!'#27#24#255#197#161#143#255#201#163#145#255 +#201#163#145#255#201#163#145#255#201#163#145#255#201#163#145#255#197#161#143 +#255#3#2#2#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#1#1#1#255#149'zl'#255#201#163#145#255#201#163#145 +#255#201#163#145#255#201#163#145#255#201#163#145#255#201#163#145#255#201#163 +#145#255#201#163#145#255#201#163#145#255#201#163#145#255#201#163#145#255#201 +#163#145#255#201#163#145#255#201#163#145#255#201#163#145#255#201#163#145#255 +#201#163#145#255#201#163#145#255#201#163#145#255#201#163#145#255#201#163#145 +#255#201#163#145#255#201#163#145#255#201#163#145#255#201#163#145#255#201#163 +#145#255#201#163#145#255#201#163#145#255#201#163#145#255#201#162#145#255#200 +#161#143#255#197#155#136#255#187#138'u'#255#173'rX'#255'|I3'#255'_4 '#255'\0' +#28#253'W1 2'#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27#6'\0'#28#216'^2'#31#255 +'i=)'#255#165'jP'#255#184#133'n'#255#196#152#134#255#201#162#145#255#202#164 +#148#255#202#165#148#255#202#165#148#255#202#165#148#255#202#165#148#255#202 +#165#148#255#202#165#148#255#202#165#148#255#202#165#148#255#202#165#148#255 +#202#165#148#255#202#165#148#255#202#165#148#255#202#165#148#255#202#165#148 +#255#202#165#148#255#202#165#148#255#202#165#148#255#202#165#148#255#202#165 +#148#255'E82'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#2#2#2#255#1#1#1#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'.&"'#255#202#165#148#255#202#165#148 +#255#202#165#148#255#202#165#148#255#202#165#148#255#202#165#148#255#202#165 +#148#255#146'wk'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'eRI'#255#202#165#148#255#202#165#148 +#255#202#165#148#255#202#165#148#255#202#165#148#255#202#165#148#255#202#165 +#148#255#202#165#148#255#202#165#148#255#202#165#148#255#202#165#148#255#202 +#165#148#255#202#165#148#255#202#165#148#255#202#165#148#255#202#165#148#255 +#202#165#148#255#202#165#148#255#202#165#148#255#202#165#148#255#202#165#148 +#255#202#165#148#255#202#165#148#255#202#165#148#255#202#165#148#255#202#165 +#148#255#202#165#148#255#202#165#148#255#202#165#148#255#202#165#148#255#202 +#164#147#255#200#160#143#255#193#148#128#255#180'~f'#255#151'^D'#255'a7$'#255 +'\1'#29#255'Z0'#28#156'UUU'#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27 +'D\0'#28#255'`5!'#255#128'N8'#255#175'v]'#255#190#143'{'#255#200#159#142#255 +#203#165#150#255#204#167#151#255#204#167#151#255#204#167#151#255#204#167#151 +#255#204#167#151#255#204#167#151#255#204#167#151#255#204#167#151#255#204#167 +#151#255#204#167#151#255#204#167#151#255#204#167#151#255#204#167#151#255#204 +#167#151#255#204#167#151#255#204#167#151#255#204#167#151#255#204#167#151#255 +#204#167#151#255'N?9'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'vaW'#255 +#204#167#151#255#160#131'w'#255'cRI'#255'WG@'#255#168#137'|'#255#204#167#151 +#255#204#167#151#255#204#167#151#255#204#167#151#255#204#167#151#255#204#167 +#151#255#204#167#151#255#204#167#151#255#145'wk'#255#0#0#0#255#0#0#0#255#0#0 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'G:4'#255#204#167 +#151#255#204#167#151#255#204#167#151#255#204#167#151#255#204#167#151#255#204 +#167#151#255#204#167#151#255#204#167#151#255#204#167#151#255#204#167#151#255 +#204#167#151#255#204#167#151#255#204#167#151#255#204#167#151#255#204#167#151 +#255#204#167#151#255#204#167#151#255#204#167#151#255#204#167#151#255#204#167 +#151#255#204#167#151#255#204#167#151#255#204#167#151#255#204#167#151#255#204 +#167#151#255#204#167#151#255#204#167#151#255#204#167#151#255#204#167#151#255 +#204#167#151#255#204#167#150#255#202#165#148#255#198#155#138#255#186#137's' +#255#171'nU'#255'oB.'#255'^2'#31#255'\0'#28#235'V2"'#21#0#0#0#1#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27#169'\1'#29#255'c9&'#255#155'aH'#255 +#182#128'j'#255#195#152#133#255#202#164#148#255#205#169#154#255#206#169#155 +#255#206#169#155#255#206#169#155#255#206#169#155#255#206#169#155#255#206#169 +#155#255#206#169#155#255#206#169#155#255#206#169#155#255#206#169#155#255#206 +#169#155#255#206#169#155#255#206#169#155#255#206#169#155#255#206#169#155#255 +#206#169#155#255#206#169#155#255#206#169#155#255'VGA'#255#0#0#0#255#0#0#0#255 ,#0#0#0#255#5#4#4#255#206#169#155#255#206#169#155#255#206#169#155#255#206#169 +#155#255#206#169#155#255#206#169#155#255#206#169#155#255#206#169#155#255#206 +#169#155#255#206#169#155#255#206#169#155#255#206#169#155#255#206#169#155#255 +#206#169#155#255#152'}r'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#2#1#1#255'vaY'#255#206#169#155#255#206#169#155#255#206#169 +#155#255#206#169#155#255#206#169#155#255#206#169#155#255#206#169#155#255#206 +#169#155#255#206#169#155#255#206#169#155#255#206#169#155#255#206#169#155#255 +#206#169#155#255#206#169#155#255#206#169#155#255#206#169#155#255#206#169#155 +#255#206#169#155#255#206#169#155#255#206#169#155#255#206#169#155#255#206#169 +#155#255#206#169#155#255#206#169#155#255#206#169#155#255#206#169#155#255#206 +#169#155#255#206#169#155#255#206#169#155#255#206#169#155#255#206#169#155#255 +#205#167#152#255#201#162#145#255#192#147#127#255#177'za'#255#138'T='#255'`6"' +#255'\1'#29#255'[0'#29'e'#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0'[/'#27#27'\0'#28#243'^3'#31#255'pC/'#255#171'oU'#255#188#138'u' +#255#199#158#141#255#205#169#154#255#207#171#157#255#207#172#158#255#207#172 +#158#255#207#172#158#255#207#172#158#255#207#172#158#255#207#172#158#255#207 +#172#158#255#207#172#158#255#207#172#158#255#207#172#158#255#207#172#158#255 +#207#172#158#255#207#172#158#255#207#172#158#255#207#172#158#255#207#172#158 +#255#207#172#158#255'~i`'#255#0#0#0#255#0#0#0#255#0#0#0#255#22#18#16#255#207 +#172#158#255#207#172#158#255#207#172#158#255#207#172#158#255#207#172#158#255 +#207#172#158#255#207#172#158#255#207#172#158#255#207#172#158#255#207#172#158 +#255#207#172#158#255#207#172#158#255#207#172#158#255#207#172#158#255#207#172 +#158#255'/''$'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#9#7#7#255 +#164#136'~'#255#207#172#158#255#207#172#158#255#207#172#158#255#207#172#158 +#255#207#172#158#255#207#172#158#255#207#172#158#255#207#172#158#255#207#172 +#158#255#207#172#158#255#207#172#158#255#207#172#158#255#207#172#158#255#207 +#172#158#255#207#172#158#255#207#172#158#255#207#172#158#255#207#172#158#255 +#207#172#158#255#207#172#158#255#207#172#158#255#207#172#158#255#207#172#158 +#255#207#172#158#255#207#172#158#255#207#172#158#255#207#172#158#255#207#172 +#158#255#207#172#158#255#207#172#158#255#207#172#158#255#207#171#157#255#204 +#167#151#255#196#153#136#255#183#131'l'#255#160'fK'#255'f;('#255']1'#30#255 +'[/'#27#199'te^'#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0'[/'#27'q\0'#28#255'`6"'#255#130'P9'#255#177'x`'#255#192#146 +#127#255#203#164#149#255#208#173#159#255#209#175#161#255#209#175#161#255#209 +#175#161#255#209#175#161#255#209#175#161#255#209#175#161#255#209#175#161#255 +#209#175#161#255#209#175#161#255#209#175#161#255#209#175#161#255#209#175#161 +#255#209#175#161#255#209#175#161#255#209#175#161#255#209#175#161#255#209#175 +#161#255#199#167#153#255#0#0#0#255#0#0#0#255#0#0#0#255'.&#'#255#209#175#161 +#255#209#175#161#255#209#175#161#255#209#175#161#255#209#175#161#255#209#175 +#161#255#209#175#161#255#209#175#161#255#209#175#161#255#209#175#161#255#209 +#175#161#255#209#175#161#255#209#175#161#255#209#175#161#255#209#175#161#255 +#209#175#161#255'*$!'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'"'#28#26#255#197#165#153#255 +#209#175#161#255#209#175#161#255#209#175#161#255#209#175#161#255#209#175#161 +#255#209#175#161#255#209#175#161#255#209#175#161#255#209#175#161#255#209#175 +#161#255#209#175#161#255#209#175#161#255#209#175#161#255#209#175#161#255#209 +#175#161#255#209#175#161#255#209#175#161#255#209#175#161#255#209#175#161#255 +#209#175#161#255#209#175#161#255#209#175#161#255#209#175#161#255#209#175#161 +#255#209#175#161#255#209#175#161#255#209#175#161#255#209#175#161#255#209#175 +#161#255#209#175#161#255#209#175#161#255#209#174#160#255#207#171#157#255#200 +#160#144#255#188#139'w'#255#171'pV'#255'rD0'#255'^3'#31#255'\0'#28#250'\2'#30 +'1'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0'[/'#27#1'[/'#27#184']1'#30#255'c9&'#255#148'^E'#255#182#128'j'#255#197 +#154#136#255#206#170#155#255#210#176#163#255#211#178#164#255#211#178#165#255 +#211#178#165#255#211#178#165#255#211#178#165#255#211#178#165#255#211#178#165 +#255#211#178#165#255#211#178#165#255#211#178#165#255#211#178#165#255#211#178 ,#165#255#211#178#165#255#211#178#165#255#211#178#165#255#211#178#165#255#211 +#178#165#255#12#10#9#255#0#0#0#255#0#0#0#255'MA<'#255#211#178#165#255#211#178 +#165#255#211#178#165#255#211#178#165#255#211#178#165#255#211#178#165#255#211 +#178#165#255#211#178#165#255#211#178#165#255#211#178#165#255#211#178#165#255 +#211#178#165#255#211#178#165#255#211#178#165#255#211#178#165#255#211#178#165 +#255#211#178#165#255#178#150#139#255'D95'#255#9#7#7#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'VIC'#255#211#178#165#255#211#178#165 +#255#211#178#165#255#211#178#165#255#211#178#165#255#211#178#165#255#211#178 +#165#255#211#178#165#255#211#178#165#255#211#178#165#255#211#178#165#255#211 +#178#165#255#211#178#165#255#211#178#165#255#211#178#165#255#211#178#165#255 +#211#178#165#255#211#178#165#255#211#178#165#255#211#178#165#255#211#178#165 +#255#211#178#165#255#211#178#165#255#211#178#165#255#211#178#165#255#211#178 +#165#255#211#178#165#255#211#178#165#255#211#178#165#255#211#178#165#255#211 +#178#165#255#211#178#165#255#211#178#164#255#209#176#162#255#204#167#151#255 +#193#148#129#255#177'x`'#255#129'P9'#255'`6"'#255'\0'#28#255'[0'#28't'#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0'[/'#27#21'\0'#28#229'^2'#31#255'i?+'#255#163'jP'#255#186#136 +'s'#255#200#160#144#255#209#174#160#255#212#180#167#255#213#181#169#255#213 +#181#169#255#213#181#169#255#213#181#169#255#213#181#169#255#213#181#169#255 +#213#181#169#255#213#181#169#255#213#181#169#255#213#181#169#255#213#181#169 +#255#213#181#169#255#213#181#169#255#213#181#169#255#213#181#169#255#213#181 +#169#255'.''%'#255#0#0#0#255',%#'#255#200#170#159#255#213#181#169#255#213#181 +#169#255#213#181#169#255#213#181#169#255#213#181#169#255#213#181#169#255#213 +#181#169#255#213#181#169#255#213#181#169#255#213#181#169#255#213#181#169#255 +#213#181#169#255#213#181#169#255#213#181#169#255#213#181#169#255#213#181#169 +#255#213#181#169#255#213#181#169#255#213#181#169#255#139'vo'#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'.''$'#255#213#181#169#255#213#181#169 +#255#213#181#169#255#213#181#169#255#213#181#169#255#213#181#169#255#213#181 +#169#255#213#181#169#255#213#181#169#255#213#181#169#255#213#181#169#255#213 +#181#169#255#213#181#169#255#213#181#169#255#213#181#169#255#213#181#169#255 +#213#181#169#255#213#181#169#255#213#181#169#255#213#181#169#255#213#181#169 +#255#213#181#169#255#213#181#169#255#213#181#169#255#213#181#169#255#213#181 +#169#255#213#181#169#255#213#181#169#255#213#181#169#255#213#181#169#255#213 +#181#169#255#213#181#169#255#212#180#168#255#211#178#165#255#207#171#157#255 +#197#155#137#255#182#128'j'#255#148']E'#255'c9&'#255']1'#30#255'[/'#27#179#0 +#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27'?\0'#28#252'_4 '#255'tF1'#255#172 +'sY'#255#190#142'z'#255#203#165#150#255#211#178#164#255#213#183#170#255#214 +#184#172#255#214#184#172#255#214#184#172#255#214#184#172#255#214#184#172#255 +#214#184#172#255#214#184#172#255#214#184#172#255#214#184#172#255#214#184#172 +#255#214#184#172#255#214#184#172#255#214#184#172#255#214#184#172#255#214#184 +#172#255#127'ng'#255'{ib'#255#214#184#172#255#214#184#172#255#214#184#172#255 +#214#184#172#255#214#184#172#255#214#184#172#255#214#184#172#255#214#184#172 +#255#214#184#172#255#214#184#172#255#214#184#172#255#214#184#172#255#214#184 +#172#255#214#184#172#255#214#184#172#255#214#184#172#255#214#184#172#255#214 +#184#172#255#214#184#172#255#214#184#172#255#214#184#172#255' '#28#26#255#0#0 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#14#12#11#255#209#180#168#255#214#184#172 +#255#214#184#172#255#214#184#172#255#214#184#172#255#214#184#172#255#214#184 +#172#255#214#184#172#255#214#184#172#255#214#184#172#255#214#184#172#255#214 +#184#172#255#214#184#172#255#214#184#172#255#214#184#172#255#214#184#172#255 +#214#184#172#255#214#184#172#255#214#184#172#255#214#184#172#255#214#184#172 +#255#214#184#172#255#214#184#172#255#214#184#172#255#214#184#172#255#214#184 +#172#255#214#184#172#255#214#184#172#255#214#184#172#255#214#184#172#255#214 +#184#172#255#214#184#172#255#214#184#172#255#213#182#169#255#209#176#161#255 +#200#161#143#255#186#135'q'#255#161'gO'#255'h=*'#255'^2'#31#255'\0'#28#226'W' +'-'#26#19#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27'}\1'#29#255'`6"' +#255'|M8'#255#175'x^'#255#192#147#127#255#205#170#154#255#213#181#169#255#215 ,#185#173#255#216#187#175#255#216#187#175#255#216#187#175#255#216#187#175#255 +#216#187#175#255#216#187#175#255#216#187#175#255#216#187#175#255#216#187#175 +#255#216#187#175#255#216#187#175#255#216#187#175#255#216#187#175#255#216#187 +#175#255#216#187#175#255#216#187#175#255#216#187#175#255#216#187#175#255#216 +#187#175#255#216#187#175#255#216#187#175#255#216#187#175#255#216#187#175#255 +#216#187#175#255#216#187#175#255#216#187#175#255#216#187#175#255#216#187#175 +#255#216#187#175#255#216#187#175#255#216#187#175#255#216#187#175#255#216#187 +#175#255#216#187#175#255#216#187#175#255#216#187#175#255#187#162#151#255#0#0 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#2#2#2#255#180#156#146#255#216#187#175 +#255#216#187#175#255#216#187#175#255#216#187#175#255#216#187#175#255#216#187 +#175#255#216#187#175#255#216#187#175#255#216#187#175#255#216#187#175#255#216 +#187#175#255#216#187#175#255#216#187#175#255#216#187#175#255#216#187#175#255 +#216#187#175#255#216#187#175#255#216#187#175#255#216#187#175#255#216#187#175 +#255#216#187#175#255#216#187#175#255#216#187#175#255#216#187#175#255#216#187 +#175#255#216#187#175#255#216#187#175#255#216#187#175#255#216#187#175#255#216 +#187#175#255#216#187#175#255#216#187#175#255#215#185#173#255#211#179#166#255 +#202#165#148#255#188#139'w'#255#167'mU'#255'nC/'#255'^3'#31#255'\0'#28#251'Z' +'.'#27';'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27#2'[/'#27 +#170'\1'#29#255'a7$'#255#130'Q<'#255#178'{c'#255#195#151#132#255#208#173#159 +#255#215#185#173#255#217#189#178#255#217#189#178#255#217#189#178#255#217#189 +#178#255#217#189#178#255#217#189#178#255#217#189#178#255#217#189#178#255#217 +#189#178#255#217#189#178#255#217#189#178#255#217#189#178#255#217#189#178#255 +#217#189#178#255#217#189#178#255#217#189#178#255#217#189#178#255#217#189#178 +#255#217#189#178#255#217#189#178#255#217#189#178#255#217#189#178#255#217#189 +#178#255#217#189#178#255#217#189#178#255#217#189#178#255#217#189#178#255#217 +#189#178#255#217#189#178#255#217#189#178#255#217#189#178#255#217#189#178#255 +#217#189#178#255#217#189#178#255#217#189#178#255#217#189#178#255'.(&'#255#0#0 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#128'oi'#255#217#189#178#255#217#189#178 +#255#217#189#178#255#217#189#178#255#217#189#178#255#217#189#178#255#217#189 +#178#255#217#189#178#255#217#189#178#255#217#189#178#255#217#189#178#255#217 +#189#178#255#217#189#178#255#217#189#178#255#217#189#178#255#217#189#178#255 +#217#189#178#255#217#189#178#255#217#189#178#255#217#189#178#255#217#189#178 +#255#217#189#178#255#217#189#178#255#217#189#178#255#217#189#178#255#217#189 +#178#255#217#189#178#255#217#189#178#255#217#189#178#255#217#189#178#255#217 +#189#178#255#217#189#178#255#217#188#177#255#213#183#170#255#205#168#153#255 +#191#144'|'#255#170'rZ'#255'sF2'#255'`5!'#255'\0'#28#255'Z/'#27'g'#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27#6'[/'#27 +#188']1'#30#255'c9&'#255#136'V?'#255#180'~g'#255#197#154#136#255#209#176#162 +#255#216#187#176#255#219#192#181#255#219#192#182#255#219#193#183#255#219#193 +#183#255#219#193#183#255#219#193#183#255#219#193#183#255#219#193#183#255#219 +#193#183#255#219#193#183#255#219#193#183#255#219#193#183#255#219#193#183#255 +#219#193#183#255#219#193#183#255#219#193#183#255#219#193#183#255#219#193#183 +#255#219#193#183#255#219#193#183#255#219#193#183#255#219#193#183#255#219#193 +#183#255#219#193#183#255#219#193#183#255#219#193#183#255#219#193#183#255#219 +#193#183#255#219#193#183#255#219#193#183#255#219#193#183#255#219#193#183#255 +#219#193#183#255#219#193#183#255#158#138#131#255#0#0#0#255#0#0#0#255#0#0#0 +#255#1#1#1#255#131'sm'#255#219#193#183#255#219#193#183#255#219#193#183#255 +#219#193#183#255#219#193#183#255#219#193#183#255#219#193#183#255#219#193#183 +#255#219#193#183#255#219#193#183#255#219#193#183#255#219#193#183#255#219#193 +#183#255#219#193#183#255#219#193#183#255#219#193#183#255#219#193#183#255#219 +#193#183#255#219#193#183#255#219#193#183#255#219#193#183#255#219#193#183#255 +#219#193#183#255#219#193#183#255#219#193#183#255#219#193#183#255#219#193#183 +#255#219#193#183#255#219#193#183#255#219#193#183#255#219#193#183#255#219#192 +#182#255#218#191#180#255#215#185#173#255#207#172#156#255#193#147#128#255#174 +'v^'#255'wJ6'#255'`6"'#255'\1'#29#255'[/'#27'~'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27#12'[/'#27#203 +']1'#30#255'c:'''#255#141'YC'#255#181#128'h'#255#198#155#138#255#210#177#164 +#255#217#190#178#255#220#194#184#255#221#195#185#255#221#196#186#255#221#196 +#186#255#221#196#186#255#221#196#186#255#221#196#186#255#221#196#186#255#221 +#196#186#255#221#196#186#255#221#196#186#255#221#196#186#255#221#196#186#255 +#221#196#186#255#221#196#186#255#221#196#186#255#221#196#186#255#221#196#186 +#255#221#196#186#255#221#196#186#255#221#196#186#255#221#196#186#255#221#196 +#186#255#221#196#186#255#221#196#186#255#221#196#186#255#221#196#186#255#221 +#196#186#255#221#196#186#255#221#196#186#255#221#196#186#255#221#196#186#255 +#221#196#186#255're_'#255#0#0#0#255#0#0#0#255#4#4#4#255#160#142#134#255#221 +#196#186#255#221#196#186#255#221#196#186#255#221#196#186#255#221#196#186#255 +#221#196#186#255#221#196#186#255#221#196#186#255#221#196#186#255#221#196#186 +#255#221#196#186#255#221#196#186#255#221#196#186#255#221#196#186#255#221#196 +#186#255#221#196#186#255#221#196#186#255#221#196#186#255#221#196#186#255#221 +#196#186#255#221#196#186#255#221#196#186#255#221#196#186#255#221#196#186#255 +#221#196#186#255#221#196#186#255#221#196#186#255#221#196#186#255#221#196#186 +#255#221#196#186#255#221#196#186#255#221#195#185#255#219#193#183#255#216#187 +#175#255#207#172#158#255#194#148#130#255#176'x_'#255'{M8'#255'a6#'#255'\1'#29 +#255'[/'#27#148#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27#21'\0'#28#217']1'#30#255'c:''' +#255#138'XB'#255#181#127'h'#255#197#156#137#255#211#178#164#255#218#191#180 +#255#221#196#187#255#222#198#188#255#223#198#189#255#223#198#189#255#223#198 +#189#255#223#198#189#255#223#198#189#255#223#198#189#255#223#198#189#255#223 +#198#189#255#223#198#189#255#223#198#189#255#223#198#189#255#223#198#189#255 +#223#198#189#255#223#198#189#255#223#198#189#255#223#198#189#255#223#198#189 +#255#223#198#189#255#223#198#189#255#223#198#189#255#223#198#189#255#223#198 +#189#255#223#198#189#255#223#198#189#255#223#198#189#255#223#198#189#255#223 +#198#189#255#223#198#189#255#223#198#189#255#223#198#189#255#221#196#187#255 +#6#6#5#255#10#9#8#255#188#167#159#255#223#198#189#255#223#198#189#255#223#198 +#189#255#223#198#189#255#223#198#189#255#223#198#189#255#223#198#189#255#223 +#198#189#255#223#198#189#255#223#198#189#255#223#198#189#255#223#198#189#255 +#223#198#189#255#223#198#189#255#223#198#189#255#223#198#189#255#223#198#189 +#255#223#198#189#255#223#198#189#255#223#198#189#255#223#198#189#255#223#198 +#189#255#223#198#189#255#223#198#189#255#223#198#189#255#223#198#189#255#223 +#198#189#255#223#198#189#255#223#198#189#255#223#198#189#255#223#198#189#255 +#222#198#188#255#221#196#186#255#217#188#177#255#208#173#159#255#193#149#129 +#255#174'w^'#255'zM8'#255'a7$'#255'\1'#29#255'[/'#27#170'[/'#27#2#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0'[/'#27' \0'#28#223']1'#30#255'c:'''#255#132'T?'#255#180 +'~g'#255#197#155#136#255#211#178#164#255#219#193#181#255#223#198#189#255#224 +#201#192#255#224#201#192#255#224#201#192#255#224#201#192#255#224#201#192#255 +#224#201#192#255#224#201#192#255#224#201#192#255#224#201#192#255#224#201#192 +#255#224#201#192#255#224#201#192#255#224#201#192#255#224#201#192#255#224#201 +#192#255#224#201#192#255#224#201#192#255#224#201#192#255#224#201#192#255#224 +#201#192#255#224#201#192#255#224#201#192#255#224#201#192#255#224#201#192#255 +#224#201#192#255#224#201#192#255#224#201#192#255#224#201#192#255#224#201#192 +#255#224#201#192#255#224#201#192#255#134'xr'#255#205#184#176#255#224#201#192 +#255#224#201#192#255#224#201#192#255#224#201#192#255#224#201#192#255#224#201 +#192#255#224#201#192#255#224#201#192#255#224#201#192#255#224#201#192#255#224 +#201#192#255#224#201#192#255#224#201#192#255#224#201#192#255#224#201#192#255 +#224#201#192#255#224#201#192#255#224#201#192#255#224#201#192#255#224#201#192 +#255#224#201#192#255#224#201#192#255#224#201#192#255#224#201#192#255#224#201 +#192#255#224#201#192#255#224#201#192#255#224#201#192#255#224#201#192#255#224 +#201#192#255#224#201#192#255#223#200#191#255#222#197#187#255#217#189#178#255 +#207#172#158#255#192#147#127#255#171'u\'#255'vI6'#255'a6#'#255'\1'#29#255'[/' +#27#179'[/'#27#6#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27#25'\' +'0'#28#209']1'#30#255'c9&'#255#128'Q='#255#177'{c'#255#195#151#133#255#209 +#176#162#255#219#192#181#255#223#200#191#255#225#203#194#255#226#204#196#255 +#226#204#196#255#226#204#196#255#226#204#196#255#226#204#196#255#226#204#196 +#255#226#204#196#255#226#204#196#255#226#204#196#255#226#204#196#255#226#204 +#196#255#226#204#196#255#226#204#196#255#226#204#196#255#226#204#196#255#226 +#204#196#255#226#204#196#255#226#204#196#255#226#204#196#255#226#204#196#255 +#226#204#196#255#226#204#196#255#226#204#196#255#226#204#196#255#226#204#196 +#255#226#204#196#255#226#204#196#255#226#204#196#255#226#204#196#255#226#204 +#196#255#226#204#196#255#226#204#196#255#226#204#196#255#226#204#196#255#226 +#204#196#255#226#204#196#255#226#204#196#255#226#204#196#255#226#204#196#255 +#226#204#196#255#226#204#196#255#226#204#196#255#226#204#196#255#226#204#196 +#255#226#204#196#255#226#204#196#255#226#204#196#255#226#204#196#255#226#204 +#196#255#226#204#196#255#226#204#196#255#226#204#196#255#226#204#196#255#226 +#204#196#255#226#204#196#255#226#204#196#255#226#204#196#255#226#204#196#255 +#226#204#196#255#226#204#196#255#226#203#195#255#225#202#193#255#222#198#188 +#255#217#188#177#255#206#169#155#255#191#144'|'#255#168'qY'#255'rG3'#255'`6"' +#255'\1'#29#255'[/'#27#159'[/'#27#4#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0'[/'#27#15'\0'#28#193']1'#30#255'b8%'#255'yM8'#255#170 +'u\'#255#192#146'~'#255#207#171#156#255#217#189#178#255#223#200#191#255#226 +#205#197#255#227#206#198#255#228#207#199#255#228#207#199#255#228#207#199#255 +#228#207#199#255#228#207#199#255#228#207#199#255#228#207#199#255#228#207#199 +#255#228#207#199#255#228#207#199#255#228#207#199#255#228#207#199#255#228#207 +#199#255#228#207#199#255#228#207#199#255#228#207#199#255#228#207#199#255#228 +#207#199#255#228#207#199#255#228#207#199#255#228#207#199#255#228#207#199#255 +#228#207#199#255#228#207#199#255#228#207#199#255#228#207#199#255#228#207#199 +#255#228#207#199#255#228#207#199#255#228#207#199#255#228#207#199#255#228#207 +#199#255#228#207#199#255#228#207#199#255#228#207#199#255#228#207#199#255#228 +#207#199#255#228#207#199#255#228#207#199#255#228#207#199#255#228#207#199#255 +#228#207#199#255#228#207#199#255#228#207#199#255#228#207#199#255#228#207#199 +#255#228#207#199#255#228#207#199#255#228#207#199#255#228#207#199#255#228#207 +#199#255#228#207#199#255#228#207#199#255#228#207#199#255#228#207#199#255#228 +#207#199#255#228#207#199#255#227#206#198#255#226#204#196#255#222#198#188#255 +#215#185#173#255#202#165#148#255#187#137'u'#255#159'jR'#255'nD0'#255'`6"'#255 +'\1'#29#255'[/'#27#137#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27#8'[/'#27#175'\1'#29#255'`6"'#255'n' +'D0'#255#158'iR'#255#187#137'u'#255#202#165#148#255#215#186#174#255#223#199 +#190#255#227#205#198#255#229#208#201#255#229#209#202#255#229#210#202#255#229 +#210#202#255#229#210#202#255#229#210#202#255#229#210#202#255#229#210#202#255 +#229#210#202#255#229#210#202#255#229#210#202#255#229#210#202#255#229#210#202 +#255#229#210#202#255#229#210#202#255#229#210#202#255#229#210#202#255#229#210 +#202#255#229#210#202#255#229#210#202#255#229#210#202#255#229#210#202#255#229 +#210#202#255#229#210#202#255#229#210#202#255#229#210#202#255#229#210#202#255 +#229#210#202#255#229#210#202#255#229#210#202#255#229#210#202#255#229#210#202 +#255#229#210#202#255#229#210#202#255#229#210#202#255#229#210#202#255#229#210 +#202#255#229#210#202#255#229#210#202#255#229#210#202#255#229#210#202#255#229 +#210#202#255#229#210#202#255#229#210#202#255#229#210#202#255#229#210#202#255 +#229#210#202#255#229#210#202#255#229#210#202#255#229#210#202#255#229#210#202 +#255#229#210#202#255#229#210#202#255#229#210#202#255#229#210#202#255#229#209 +#202#255#228#207#201#255#226#204#197#255#221#196#187#255#212#180#168#255#198 +#157#140#255#183#130'l'#255#143'^G'#255'g>+'#255'_4 '#255'\1'#29#254'[/'#27 +'q'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27#3'[/'#27#132'\1'#29#254'_4 '#255'g>+' +#255#140'[F'#255#181#129'j'#255#198#155#138#255#211#178#165#255#221#195#185 +#255#227#204#197#255#230#209#203#255#230#212#205#255#231#212#206#255#231#212 +#206#255#231#212#206#255#231#212#206#255#231#212#206#255#231#212#206#255#231 +#212#206#255#231#212#206#255#231#212#206#255#231#212#206#255#231#212#206#255 +#231#212#206#255#231#212#206#255#231#212#206#255#231#212#206#255#231#212#206 +#255#231#212#206#255#231#212#206#255#231#212#206#255#231#212#206#255#231#212 +#206#255#231#212#206#255#231#212#206#255#231#212#206#255#231#212#206#255#231 +#212#206#255#231#212#206#255#231#212#206#255#231#212#206#255#231#212#206#255 +#231#212#206#255#231#212#206#255#231#212#206#255#231#212#206#255#231#212#206 +#255#231#212#206#255#231#212#206#255#231#212#206#255#231#212#206#255#231#212 +#206#255#231#212#206#255#231#212#206#255#231#212#206#255#231#212#206#255#231 +#212#206#255#231#212#206#255#231#212#206#255#231#212#206#255#231#212#206#255 +#231#212#206#255#231#211#206#255#230#211#205#255#229#209#201#255#225#203#194 +#255#219#191#181#255#208#173#159#255#193#149#129#255#173'w`'#255'~Q='#255'c:' +''''#255'^2'#31#255'\0'#28#238'[/'#27'O'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0'[/'#27'F\0'#28#234'^2'#31#255'c:'''#255'zN:'#255#168's['#255 +#190#143'{'#255#205#167#152#255#217#187#177#255#225#201#193#255#229#209#202 +#255#232#213#207#255#232#214#209#255#233#215#210#255#233#215#210#255#233#215 +#210#255#233#215#210#255#233#215#210#255#233#215#210#255#233#215#210#255#233 +#215#210#255#233#215#210#255#233#215#210#255#233#215#210#255#233#215#210#255 +#233#215#210#255#233#215#210#255#233#215#210#255#233#215#210#255#233#215#210 +#255#233#215#210#255#233#215#210#255#233#215#210#255#233#215#210#255#233#215 +#210#255#233#215#210#255#233#215#210#255#233#215#210#255#233#215#210#255#233 +#215#210#255#233#215#210#255#233#215#210#255#233#215#210#255#233#215#210#255 +#233#215#210#255#233#215#210#255#233#215#210#255#233#215#210#255#233#215#210 +#255#233#215#210#255#233#215#210#255#233#215#210#255#233#215#210#255#233#215 +#210#255#233#215#210#255#233#215#210#255#233#215#210#255#233#215#210#255#233 +#215#210#255#232#215#209#255#232#214#208#255#231#212#206#255#228#207#201#255 +#223#198#189#255#213#182#170#255#200#160#144#255#186#136'r'#255#158'iR'#255 +'pE2'#255'a7$'#255']1'#30#255'\0'#28#201'[/'#27#31#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27#26'\0'#28#193']1'#30#255'`' +'6"'#255'iA.'#255#142']H'#255#179#128'h'#255#196#153#135#255#210#176#163#255 +#220#194#184#255#227#205#198#255#231#212#206#255#233#216#211#255#234#217#212 +#255#234#218#213#255#234#218#213#255#234#218#213#255#234#218#213#255#234#218 +#213#255#234#218#213#255#234#218#213#255#234#218#213#255#234#218#213#255#234 +#218#213#255#234#218#213#255#234#218#213#255#234#218#213#255#234#218#213#255 +#234#218#213#255#234#218#213#255#234#218#213#255#234#218#213#255#234#218#213 +#255#234#218#213#255#234#218#213#255#234#218#213#255#234#218#213#255#234#218 +#213#255#234#218#213#255#234#218#213#255#234#218#213#255#234#218#213#255#234 +#218#213#255#234#218#213#255#234#218#213#255#234#218#213#255#234#218#213#255 +#234#218#213#255#234#218#213#255#234#218#213#255#234#218#213#255#234#218#213 +#255#234#218#213#255#234#218#213#255#234#218#213#255#234#218#213#255#234#217 +#212#255#234#216#211#255#233#215#210#255#230#211#205#255#226#203#195#255#218 +#190#179#255#206#170#155#255#192#146#127#255#172'v`'#255#129'S?'#255'e<)'#255 +'_4 '#255'\1'#29#255'[/'#27#143'[/'#27#5#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27#3'[/'#27#127'\0'#28 +#248'^3'#31#255'c:'''#255'sI6'#255#158'kT'#255#186#136's'#255#200#160#143#255 ,#213#180#169#255#222#197#187#255#229#208#201#255#232#214#209#255#234#218#213 +#255#235#219#215#255#236#220#215#255#236#220#216#255#236#220#216#255#236#220 +#216#255#236#220#216#255#236#220#216#255#236#220#216#255#236#220#216#255#236 +#220#216#255#236#220#216#255#236#220#216#255#236#220#216#255#236#220#216#255 +#236#220#216#255#236#220#216#255#236#220#216#255#236#220#216#255#236#220#216 +#255#236#220#216#255#236#220#216#255#236#220#216#255#236#220#216#255#236#220 +#216#255#236#220#216#255#236#220#216#255#236#220#216#255#236#220#216#255#236 +#220#216#255#236#220#216#255#236#220#216#255#236#220#216#255#236#220#216#255 +#236#220#216#255#236#220#216#255#236#220#216#255#236#220#216#255#236#220#216 +#255#236#220#216#255#236#220#215#255#235#219#215#255#234#217#212#255#232#213 +#207#255#227#205#198#255#219#193#183#255#209#176#162#255#196#153#136#255#181 +#129'l'#255#145'`K'#255'lB0'#255'a7$'#255']1'#30#255'\0'#28#231'[/'#27'O'#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27'$\0'#28#185'\1'#29#255'`5!'#255 +'f=*'#255#128'S>'#255#166'r['#255#188#139'v'#255#201#161#145#255#213#181#169 +#255#223#197#189#255#229#209#202#255#233#216#210#255#235#219#215#255#236#221 +#217#255#237#222#219#255#238#223#220#255#238#223#220#255#238#223#220#255#238 +#223#220#255#238#223#220#255#238#223#220#255#238#223#220#255#238#223#220#255 +#238#223#220#255#238#223#220#255#238#223#220#255#238#223#220#255#238#223#220 +#255#238#223#220#255#238#223#220#255#238#223#220#255#238#223#220#255#238#223 +#220#255#238#223#220#255#238#223#220#255#238#223#220#255#238#223#220#255#238 +#223#220#255#238#223#220#255#238#223#220#255#238#223#220#255#238#223#220#255 +#238#223#220#255#238#223#220#255#238#223#220#255#238#223#220#255#238#223#220 +#255#237#222#219#255#237#222#218#255#236#221#217#255#235#218#214#255#232#214 +#208#255#228#206#199#255#220#193#184#255#210#176#163#255#197#155#137#255#184 +#134'o'#255#155'iR'#255'uI7'#255'c:'''#255'^3'#31#255'\1'#29#252'[/'#27#144 +'[/'#27#14#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[' +'/'#27'U\0'#28#228']1'#30#255'`6"'#255'g>,'#255#127'R?'#255#164'qZ'#255#188 +#139'v'#255#200#159#144#255#211#179#166#255#220#194#184#255#228#206#199#255 +#232#214#209#255#235#219#215#255#237#222#219#255#238#225#221#255#239#225#222 +#255#239#225#222#255#239#226#223#255#239#226#223#255#239#226#223#255#239#226 +#223#255#239#226#223#255#239#226#223#255#239#226#223#255#239#226#223#255#239 +#226#223#255#239#226#223#255#239#226#223#255#239#226#223#255#239#226#223#255 +#239#226#223#255#239#226#223#255#239#226#223#255#239#226#223#255#239#226#223 +#255#239#226#223#255#239#226#223#255#239#226#223#255#239#226#223#255#239#226 +#223#255#239#226#223#255#239#226#223#255#239#225#222#255#238#225#221#255#238 +#224#220#255#237#222#218#255#235#218#214#255#231#212#206#255#226#203#195#255 +#218#191#180#255#209#174#160#255#197#154#136#255#184#132'o'#255#154'hR'#255 +'uK8'#255'e;('#255'_4 '#255'\1'#29#255'\0'#28#197'[/'#27'/'#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27 +#12'[/'#27#134'\0'#28#242'^2'#31#255'a5#'#255'g>+'#255'|Q='#255#160'lV'#255 +#184#133'p'#255#196#152#134#255#207#170#156#255#216#187#175#255#224#200#192 +#255#230#210#203#255#234#216#211#255#236#220#216#255#238#224#220#255#239#226 +#223#255#240#227#225#255#240#228#225#255#240#228#225#255#241#229#226#255#241 +#229#226#255#241#229#226#255#241#229#226#255#241#229#227#255#241#229#227#255 +#241#229#227#255#241#229#227#255#241#229#227#255#241#229#227#255#241#229#227 +#255#241#229#227#255#241#229#227#255#241#229#226#255#241#229#226#255#241#229 ,#226#255#241#229#226#255#240#228#225#255#240#228#225#255#240#227#224#255#239 +#225#222#255#238#223#220#255#236#220#215#255#233#215#210#255#228#207#201#255 +#222#196#187#255#213#183#170#255#204#166#150#255#192#147#127#255#179#127'i' +#255#150'fO'#255'tI7'#255'e;('#255'`5!'#255']1'#30#255'\0'#28#223'[/'#27'`[/' +#27#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27#17'[/'#27#127'\0'#28#238']1' +#30#255'`6"'#255'e<)'#255'rI6'#255#142'_J'#255#170'wa'#255#188#140'w'#255#199 +#158#141#255#208#173#159#255#216#186#175#255#222#196#187#255#227#206#198#255 +#232#213#208#255#235#219#214#255#237#222#218#255#238#224#220#255#239#226#223 +#255#240#227#225#255#241#229#226#255#242#230#228#255#242#230#228#255#242#231 +#229#255#242#231#229#255#242#231#229#255#242#231#229#255#242#231#229#255#242 +#231#229#255#242#231#229#255#242#230#228#255#241#229#227#255#241#229#226#255 +#240#227#225#255#239#225#222#255#238#224#220#255#236#221#217#255#234#218#213 +#255#231#211#206#255#226#204#196#255#220#194#184#255#214#183#171#255#206#169 +#155#255#196#153#135#255#185#135'r'#255#162'q['#255#134'XD'#255'lC1'#255'c:' +''''#255'_4 '#255']0'#30#255'\0'#28#217'[/'#27'`[/'#27#4#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27#13'[/'#27'w\0'#28#233 +']1'#30#255'_4 '#255'b8%'#255'h?-'#255'zN;'#255#149'dP'#255#170'xa'#255#187 +#137't'#255#194#150#131#255#202#164#148#255#210#176#163#255#216#187#175#255 +#220#194#184#255#224#200#192#255#228#207#199#255#231#212#206#255#234#217#211 +#255#236#220#215#255#236#222#217#255#237#222#219#255#238#223#220#255#238#223 +#220#255#238#224#220#255#238#223#220#255#237#223#219#255#237#223#218#255#236 +#221#217#255#235#219#215#255#233#216#210#255#230#211#204#255#227#204#197#255 +#223#199#190#255#219#192#183#255#215#185#173#255#208#173#159#255#200#160#144 +#255#192#146#127#255#183#133'o'#255#164's\'#255#142']J'#255'rI7'#255'f=*'#255 +'a6#'#255'^3'#31#255'\1'#29#255'\0'#28#210'[/'#27'X[/'#27#2#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0'[/'#27#5'[/'#27'P\0'#28#173'\1'#29#249']1'#30#255'`5!'#255'c9&'#255'g' +'>,'#255'qH6'#255#133'YE'#255#153'iT'#255#172'yd'#255#186#136'q'#255#191#144 +'}'#255#196#153#136#255#202#162#146#255#207#171#156#255#211#178#165#255#214 +#183#171#255#216#186#175#255#217#188#177#255#218#190#179#255#219#191#182#255 +#219#192#182#255#219#192#181#255#218#189#179#255#217#187#177#255#215#185#173 +#255#213#182#169#255#210#176#163#255#205#169#154#255#200#160#144#255#195#151 +#133#255#190#142'z'#255#183#132'o'#255#167'u_'#255#148'eP'#255#127'S@'#255'm' +'E2'#255'f=*'#255'b7%'#255'_4 '#255']1'#30#255'\0'#28#235'[/'#27#147'[/'#27 +'5'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[' ,'/'#27#18'[/'#27'i\0'#28#199'\1'#29#254']1'#30#255'_4 '#255'a6#'#255'd9('#255 +'g>,'#255'oF3'#255'}Q>'#255#138'[G'#255#149'fQ'#255#160'oZ'#255#170'xa'#255 +#176'}h'#255#180#128'l'#255#183#133'p'#255#186#136's'#255#188#138'u'#255#188 +#139'v'#255#187#138'u'#255#186#135'r'#255#183#132'n'#255#178#128'j'#255#174 +'|e'#255#168'v`'#255#158'mW'#255#146'bN'#255#133'YE'#255'yM;'#255'mC1'#255'g' +'>+'#255'c9&'#255'`6"'#255'^3'#31#255']1'#30#255'\0'#28#248'\0'#28#173'[/'#27 +'O[/'#27#5#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27#20'[/'#27'V\0'#28#153 +'\0'#28#220'\1'#29#255']1'#30#255'^3'#31#255'`5!'#255'a7$'#255'c9&'#255'e;(' +#255'f=*'#255'g>,'#255'i@.'#255'jB0'#255'mE2'#255'qH5'#255'tJ7'#255'qG5'#255 +'lC1'#255'jA0'#255'h?-'#255'g>+'#255'e<)'#255'd:('#255'c9&'#255'a6#'#255'`5!' +#255'^2'#31#255']1'#30#255'\1'#29#252'\0'#28#201'[/'#27#134'[/'#27'C[/'#27#8 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0'[/'#27#31'[/'#27'_[/'#27#138'\0'#28#176'\0'#28#213'\0'#28 +#248'\1'#29#255'\1'#29#255'\1'#29#255']1'#30#255'^2'#31#255'^2'#31#255'^3'#31 +#255'^3'#31#255'^3'#31#255'^2'#31#255']1'#30#255']1'#30#255'\1'#29#255'\1'#29 +#255'\1'#29#255'\0'#28#241'\0'#28#203'\0'#28#165'[/'#27#127'[/'#27'N[/'#27#15 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0'[/'#27#2'[/'#27'![/'#27'E[/'#27'U[/'#27'a[/'#27'm[/'#27'y[/'#27 +#134'\0'#29#141'[/'#27#130'[/'#27'v[/'#27'j[/'#27'^[/'#27'Q[/'#27'=[/'#27#23 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255#255#255#128#0#255#255 +#255#255#255#255#255#255#255#255#255#255#255#224#0#0#3#255#255#255#255#255 +#255#255#255#255#255#255#254#0#0#0#0'?'#255#255#255#255#255#255#255#255#255 +#255#240#0#0#0#0#7#255#255#255#255#255#255#255#255#255#255#128#0#0#0#0#0#255 +#255#255#255#255#255#255#255#255#254#0#0#0#0#0#0'?'#255#255#255#255#255#255 +#255#255#248#0#0#0#0#0#0#15#255#255#255#255#255#255#255#255#224#0#0#0#0#0#0#3 +#255#255#255#255#255#255#255#255#128#0#0#0#0#0#0#0#255#255#255#255#255#255 +#255#254#0#0#0#0#0#0#0#0'?'#255#255#255#255#255#255#252#0#0#0#0#0#0#0#0#31 +#255#255#255#255#255#255#240#0#0#0#0#0#0#0#0#7#255#255#255#255#255#255#224#0 +#0#0#0#0#0#0#0#3#255#255#255#255#255#255#128#0#0#0#0#0#0#0#0#1#255#255#255 +#255#255#255#0#0#0#0#0#0#0#0#0#0#127#255#255#255#255#254#0#0#0#0#0#0#0#0#0#0 +'?'#255#255#255#255#252#0#0#0#0#0#0#0#0#0#0#31#255#255#255#255#248#0#0#0#0#0 +#0#0#0#0#0#15#255#255#255#255#240#0#0#0#0#0#0#0#0#0#0#7#255#255#255#255#224#0 +#0#0#0#0#0#0#0#0#0#3#255#255#255#255#192#0#0#0#0#0#0#0#0#0#0#1#255#255#255 +#255#128#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#0#0#0#0#0#0#0#0#0#0#0#0#127 +#255#255#254#0#0#0#0#0#0#0#0#0#0#0#0#127#255#255#254#0#0#0#0#0#0#0#0#0#0#0#0 +'?'#255#255#252#0#0#0#0#0#0#0#0#0#0#0#0#31#255#255#248#0#0#0#0#0#0#0#0#0#0#0 +#0#15#255#255#240#0#0#0#0#0#0#0#0#0#0#0#0#7#255#255#240#0#0#0#0#0#0#0#0#0#0#0 +#0#7#255#255#224#0#0#0#0#0#0#0#0#0#0#0#0#3#255#255#192#0#0#0#0#0#0#0#0#0#0#0 +#0#3#255#255#192#0#0#0#0#0#0#0#0#0#0#0#0#1#255#255#128#0#0#0#0#0#0#0#0#0#0#0 +#0#1#255#255#128#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#255#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#127#254#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#127#254#0#0#0#0#0#0#0#0#0#0#0#0#0#0'?'#254#0#0#0#0#0#0#0#0#0#0#0#0#0#0'?' +#252#0#0#0#0#0#0#0#0#0#0#0#0#0#0'?'#252#0#0#0#0#0#0#0#0#0#0#0#0#0#0#31#252#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#31#248#0#0#0#0#0#0#0#0#0#0#0#0#0#0#15#248#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#15#248#0#0#0#0#0#0#0#0#0#0#0#0#0#0#15#240#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#7#240#0#0#0#0#0#0#0#0#0#0#0#0#0#0#7#240#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#7#224#0#0#0#0#0#0#0#0#0#0#0#0#0#0#7#224#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3 +#224#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3#224#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3#224#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#3#224#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3#192#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#3#192#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3#192#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#1#192#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#192#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#1#192#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#192#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#192#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#1#192#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#192#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#1#192#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#192#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#1#192#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3#192#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#3#224#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3#224#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3#224 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3#224#0#0#0#0#0#0#0#0#0#0#0#0#0#0#3#224#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#3#240#0#0#0#0#0#0#0#0#0#0#0#0#0#0#7#240#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#7#240#0#0#0#0#0#0#0#0#0#0#0#0#0#0#7#240#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#15#248#0#0#0#0#0#0#0#0#0#0#0#0#0#0#15#248#0#0#0#0#0#0#0#0#0#0#0#0#0#0#15 +#248#0#0#0#0#0#0#0#0#0#0#0#0#0#0#15#252#0#0#0#0#0#0#0#0#0#0#0#0#0#0#31#252#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#31#252#0#0#0#0#0#0#0#0#0#0#0#0#0#0'?'#254#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0'?'#254#0#0#0#0#0#0#0#0#0#0#0#0#0#0'?'#254#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#127#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#127#255#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#255#255#128#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#128#0#0#0#0#0#0#0#0 +#0#0#0#0#1#255#255#128#0#0#0#0#0#0#0#0#0#0#0#0#1#255#255#192#0#0#0#0#0#0#0#0 +#0#0#0#0#3#255#255#192#0#0#0#0#0#0#0#0#0#0#0#0#3#255#255#224#0#0#0#0#0#0#0#0 +#0#0#0#0#7#255#255#224#0#0#0#0#0#0#0#0#0#0#0#0#15#255#255#240#0#0#0#0#0#0#0#0 +#0#0#0#0#15#255#255#248#0#0#0#0#0#0#0#0#0#0#0#0#31#255#255#248#0#0#0#0#0#0#0 +#0#0#0#0#0'?'#255#255#252#0#0#0#0#0#0#0#0#0#0#0#0#127#255#255#252#0#0#0#0#0#0 +#0#0#0#0#0#0#255#255#255#254#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#0#0#0#0 +#0#0#0#0#0#0#0#1#255#255#255#255#128#0#0#0#0#0#0#0#0#0#0#3#255#255#255#255 +#128#0#0#0#0#0#0#0#0#0#0#7#255#255#255#255#192#0#0#0#0#0#0#0#0#0#0#15#255#255 +#255#255#224#0#0#0#0#0#0#0#0#0#0#31#255#255#255#255#240#0#0#0#0#0#0#0#0#0#0 +#31#255#255#255#255#248#0#0#0#0#0#0#0#0#0#0'?'#255#255#255#255#252#0#0#0#0#0 +#0#0#0#0#0#127#255#255#255#255#254#0#0#0#0#0#0#0#0#0#1#255#255#255#255#255 +#255#0#0#0#0#0#0#0#0#0#3#255#255#255#255#255#255#128#0#0#0#0#0#0#0#0#7#255 +#255#255#255#255#255#224#0#0#0#0#0#0#0#0#15#255#255#255#255#255#255#240#0#0#0 +#0#0#0#0#0#31#255#255#255#255#255#255#248#0#0#0#0#0#0#0#0#127#255#255#255#255 +#255#255#254#0#0#0#0#0#0#0#0#255#255#255#255#255#255#255#255#128#0#0#0#0#0#0 +#3#255#255#255#255#255#255#255#255#192#0#0#0#0#0#0#7#255#255#255#255#255#255 +#255#255#240#0#0#0#0#0#0#31#255#255#255#255#255#255#255#255#252#0#0#0#0#0#0 +#127#255#255#255#255#255#255#255#255#255#0#0#0#0#0#3#255#255#255#255#255#255 +#255#255#255#255#224#0#0#0#0#15#255#255#255#255#255#255#255#255#255#255#252#0 +#0#0#0#127#255#255#255#255#255#255#255#255#255#255#255#192#0#0#7#255#255#255 +#255#255#255#255#255#255#255#255#255#254#0#1#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255'('#0#0#0'@'#0#0#0#128#0#0#0#1#0' '#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'@@@'#4'III'#7'III'#7 +'333'#5#128#128#128#2#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'UUU'#6'DDD' +#15'FFF'#22'EEE'#26'DDD'#30'III#GGG/DDD'#30#255'j>'#31#253'g>#'#249'[>+'#235'PB8'#218'HE' +'C'#203'FEC'#195'EED'#184'DDD'#166'DDDqEEE4@@@'#20'@@@'#4#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1 +'999'#9'BBB'#31'CCCPEDD'#143'FFE'#182'NB:'#211'Z?-'#231'g>#'#249'l?'#31#255 +'zK$'#253#150']*'#255#165'h.'#255#172'm0'#255#180's2'#255#186'x4'#255#189'{4' +#255#192#127'5'#255#190'|4'#255#187'x4'#255#182'u3'#255#175'p1'#255#167'j/' +#255#156'b+'#255#131'R&'#254'oB '#255'i>!'#253'_>)'#238'S@6'#222'FEB'#203'DD' +'C'#190'DDD'#164'CCCkCCC.PPP'#16'UUU'#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128#2'CCC'#19'BBBBDDD'#136'EED'#179'LA9' +#209'`=&'#243'k?'#31#255#127'N&'#254#154'`,'#255#176'q1'#255#191'~5'#255#200 +#138'7'#255#207#145'8'#255#210#149'9'#255#213#153'9'#255#217#157':'#255#219 +#160';'#255#221#162';'#255#220#162':'#255#217#158':'#255#215#155':'#255#211 +#151'9'#255#208#146'8'#255#203#141'8'#255#194#129'6'#255#183'v4'#255#163'f.' +#255#137'U('#254'qC"'#254'f' +'>>!+++'#6#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'@@@'#4'BBB'#27'CC' +'C[CCB'#165'LD='#203']<('#238'j> '#255#135'R('#254#176'p3'#255#193#128'7'#255 +#202#139'9'#255#211#151';'#255#220#162'<'#255#227#170'>'#255#232#176'?'#255 +#234#180'?'#255#237#182'?'#255#239#185'@'#255#241#187'@'#255#242#188'A'#255 +#241#187'@'#255#240#185'A'#255#238#183'@'#255#235#180'@'#255#233#178'?'#255 +#229#173'>'#255#222#165'='#255#215#156'<'#255#205#144':'#255#196#133'8'#255 +#185'x5'#255#152'^-'#255'oC"'#254'd<#'#247'QA7'#220'FFE'#200'CCC'#180'CCC}AA' +'A/UUU'#9#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'III'#7'CCC&DDDpECC'#180'X<,'#232'i=' +'!'#254#128'O('#254#170'l3'#255#194#130':'#255#210#150'>'#255#220#163'?'#255 +#227#171'A'#255#234#180'B'#255#240#187'D'#255#242#190'D'#255#244#193'E'#255 +#246#194'D'#255#247#195'E'#255#248#197'E'#255#249#197'E'#255#249#198'E'#255 +#249#197'E'#255#248#196'E'#255#247#195'E'#255#246#195'E'#255#245#194'D'#255 +#243#191'D'#255#240#188'C'#255#236#183'C'#255#230#174'B'#255#223#165'@'#255 +#215#156'?'#255#200#137';'#255#182'u6'#255#146'[,'#255'm@!'#254'`:%'#244'KA;' +#211'CCC'#189'CCC'#144'BBB>PPP'#16#128#128#128#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'999'#9'@@@4CCC'#133 +'HD@'#192'_9$'#244'rE%'#254#164'h3'#255#191#127';'#255#206#146'?'#255#219#163 +'C'#255#232#178'F'#255#238#185'G'#255#241#189'H'#255#244#193'H'#255#246#195 +'I'#255#247#196'I'#255#247#197'J'#255#247#197'I'#255#247#198'I'#255#248#198 +'I'#255#248#198'I'#255#248#197'I'#255#248#198'I'#255#248#198'I'#255#248#198 +'I'#255#247#197'I'#255#247#197'I'#255#247#196'I'#255#246#196'I'#255#245#194 +'H'#255#242#190'H'#255#239#187'H'#255#235#182'G'#255#224#168'D'#255#211#153 +'A'#255#196#134'='#255#177'q7'#255#133'Q)'#254'e: '#253'N?7'#218'DDC'#195'CC' +'C'#160'FFFP@@@'#20#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0'III'#7'FFF3CCC'#145'LB;'#204'd:"'#250'|L('#254#180's9'#255 +#202#143'A'#255#216#159'F'#255#228#174'I'#255#236#184'K'#255#241#191'L'#255 +#243#193'M'#255#244#194'M'#255#244#195'M'#255#245#196'M'#255#245#195'M'#255 +#245#195'M'#255#245#195'M'#255#245#195'M'#255#245#195'M'#255#245#195'M'#255 +#245#195'M'#255#245#195'M'#255#245#195'M'#255#245#195'M'#255#245#195'M'#255 +#245#195'M'#255#245#195'M'#255#245#196'M'#255#245#195'M'#255#244#194'M'#255 +#243#194'M'#255#242#192'M'#255#238#186'L'#255#232#179'J'#255#220#165'F'#255 +#208#150'C'#255#190#127'<'#255#147'[.'#255'h< '#255'S=1'#228'EED'#199'DDD' +#168'BBBUGGG'#18#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +'@@@'#4'FFF(EEE'#134'P?5'#212'e:!'#254#137'U,'#254#186'z='#255#208#150'E'#255 +#224#171'L'#255#233#181'O'#255#238#187'P'#255#240#191'P'#255#242#192'Q'#255 +#242#193'Q'#255#242#193'Q'#255#242#193'P'#255#242#193'Q'#255#242#193'Q'#255 +#242#193'Q'#255#242#193'Q'#255#242#193'Q'#255#242#193'Q'#255#242#193'Q'#255 ,#242#193'Q'#255#242#193'Q'#255#242#193'Q'#255#242#193'Q'#255#242#193'Q'#255 +#242#193'Q'#255#242#193'Q'#255#242#193'Q'#255#242#193'Q'#255#242#193'Q'#255 +#242#193'Q'#255#242#193'Q'#255#241#192'Q'#255#239#189'P'#255#234#184'O'#255 +#228#175'M'#255#215#159'I'#255#194#132'@'#255#160'd3'#255'k?"'#254'X:*'#236 +'FDC'#201'CCC'#164'AAAG;;;'#13#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'U' +'UU'#3'BBB'#31'CCCvO=3'#211'f:'#31#255#150']2'#255#190#128'A'#255#211#155'I' +#255#226#175'Q'#255#234#185'S'#255#237#188'T'#255#238#190'T'#255#239#191'U' +#255#239#191'U'#255#239#191'U'#255#239#191'U'#255#239#191'U'#255#239#191'U' +#255#239#191'U'#255#239#191'U'#255#235#189'S'#255'|d,'#255'N>'#28#255'4*'#19 +#255'=1'#22#255'WE'#31#255'w_*'#255#173#139'='#255#239#191'U'#255#239#191'U' +#255#239#191'U'#255#239#191'U'#255#239#191'U'#255#239#191'U'#255#239#191'U' +#255#239#191'U'#255#239#191'U'#255#239#190'T'#255#238#189'U'#255#236#187'S' +#255#230#179'R'#255#217#162'L'#255#198#138'D'#255#170'l8'#255'pC$'#254'Z8''' +#240'DBB'#197'CCC'#153'FFF:@@@'#8#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2'FFF'#22 +'BBBeJ?9'#195'b8 '#254#150']2'#255#194#133'E'#255#213#158'N'#255#226#176'T' +#255#233#185'W'#255#236#187'W'#255#236#188'X'#255#236#188'X'#255#236#188'X' +#255#236#188'X'#255#236#188'X'#255#236#188'X'#255#236#188'X'#255#236#188'X' +#255#236#188'X'#255'cO%'#255#4#3#1#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#1#1#0#255#18#14#7#255'A4'#24#255#134'k2' +#255#218#174'R'#255#236#188'X'#255#236#188'X'#255#236#188'X'#255#236#188'X' +#255#236#188'X'#255#236#188'X'#255#236#187'W'#255#234#186'W'#255#229#180'U' +#255#218#165'P'#255#201#143'H'#255#173'o<'#255'k>#'#254'S;-'#231'CCC'#193'CC' +'C'#141'DDD-fff'#5#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'@@@'#12'DDDKFA='#179'`7 '#251#137'S-' +#255#192#131'E'#255#214#161'Q'#255#226#176'W'#255#231#183'Y'#255#233#185'[' +#255#233#186'['#255#234#185'Z'#255#234#185'Z'#255#234#185'Z'#255#234#185'Z' +#255#234#185'Z'#255#234#185'Z'#255#234#185'Z'#255#234#185'Z'#255'L<'#29#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#8#7#3#255'P' +'?'#31#255#203#161'N'#255#234#185'Z'#255#234#185'Z'#255#234#185'Z'#255#234 +#185'Z'#255#233#186'['#255#232#183'Z'#255#228#178'Y'#255#219#167'T'#255#201 +#143'K'#255#163'g8'#255'f: '#255'O=4'#222'DDD'#188'CCCzBBB'#27#0#0#0#1#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'U' +'UU'#3'GGG$D@@'#147'\6#'#245'{I*'#254#185'{C'#255#211#157'R'#255#225#175'Z' +#255#229#181'\'#255#230#183']'#255#230#183']'#255#230#183']'#255#230#183']' +#255#230#183']'#255#230#183']'#255#230#183']'#255#230#183']'#255#230#183']' +#255#230#183']'#255#138'm8'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#24#20#10#255'x_0' +#255#226#181'['#255#230#183']'#255#230#183']'#255#230#183']'#255#230#181'\' +#255#227#177'['#255#217#165'V'#255#196#136'J'#255#151']4'#255'b8 '#254'K@9' +#214'CCC'#175'AAAJ...'#11#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0'@@@'#16'CCC\V6'''#228'nA&'#254#178'tA'#255#205 +#151'R'#255#221#172'\'#255#226#179'_'#255#228#180'_'#255#228#180'_'#255#228 +#180'_'#255#228#180'_'#255#228#180'_'#255#228#180'_'#255#228#180'_'#255#228 +#180'_'#255#228#180'_'#255#228#180'_'#255#228#180'_'#255#17#13#7#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#2#1#1#255'H9'#30#255#224#178']' +#255#228#180'_'#255#228#180'_'#255#227#179'^'#255#224#175']'#255#213#160'W' +#255#190#129'H'#255#137'T/'#255'^4 '#252'FB?'#201'CCC'#140'DDD"'#0#0#0#3#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'@@@'#4'FFF,J=7' +#175'`4'#30#255#165'g;'#255#200#144'Q'#255#217#166'\'#255#223#176'`'#255#225 +#177'`'#255#225#177'a'#255#225#177'a'#255#225#177'a'#255#225#177'a'#255#225 +#177'a'#255#225#177'a'#255#225#177'a'#255#225#177'a'#255#225#177'a'#255#225 +#177'a'#255#218#171'^'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#11#9#5#255#196#154'U'#255#225#177'a'#255#225#177 +'`'#255#224#177'a'#255#220#171'^'#255#208#154'W'#255#184'{F'#255'nA%'#254'T8' +'*'#233'DDD'#180'CCCX333'#15#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0'CCC'#19'CCCjY5#'#239'~J,'#254#191#132'M'#255#213#162']'#255 ,#220#171'a'#255#221#173'c'#255#222#174'b'#255#222#174'b'#255#222#174'b'#255 +#222#174'b'#255#222#174'b'#255#222#174'b'#255#222#174'b'#255#222#174'b'#255 +#222#174'b'#255#222#174'b'#255#222#174'b'#255#154'yC'#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#15#11#6 +#255#218#172'`'#255#222#174'b'#255#222#174'b'#255#221#173'b'#255#217#167'_' +#255#202#146'T'#255#156'a9'#255'^4'#30#254'G@='#206'DDD'#151'>>>)@@@'#4#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'UUU'#3'AAA+L;4'#188'b6 '#254#170 +'l@'#255#206#152'Z'#255#217#168'b'#255#219#171'd'#255#219#171'd'#255#219#171 +'d'#255#219#171'd'#255#219#171'd'#255#219#171'd'#255#219#171'd'#255#219#171 +'d'#255#219#171'd'#255#219#171'd'#255#219#171'd'#255#219#171'd'#255#219#171 +'d'#255#219#171'd'#255#26#20#12#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'oW3'#255#219#171'd'#255#219 +#171'd'#255#219#171'd'#255#218#169'c'#255#212#161'_'#255#187#127'L'#255'uD)' +#254'W6('#238'CCC'#182'CCC[III'#14#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0'@@@'#12'EBBS[3'#31#244#134'O/'#255#192#134'Q'#255#212#162'b'#255#215 +#167'd'#255#216#168'd'#255#216#168'd'#255#216#168'd'#255#216#168'd'#255#216 +#168'd'#255#216#168'd'#255#216#168'd'#255#216#168'd'#255#216#168'd'#255#216 +#168'd'#255#216#168'd'#255#216#168'd'#255#216#168'd'#255#216#168'd'#255#198 +#154'\'#255#5#4#2#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255'!'#25#15#255#216#168'd'#255#216#168'd'#255#216#168 +'d'#255#216#168'd'#255#214#166'd'#255#202#147'Y'#255#161'e='#255'^2'#29#255 +'J?:'#208'CCC'#137'EEE'#26#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'C' +'CC'#23'O9/'#171'`3'#31#254#174'pD'#255#203#150']'#255#212#163'e'#255#213#164 +'e'#255#213#164'e'#255#213#164'e'#255#213#164'e'#255#213#164'e'#255#213#164 +'e'#255#213#164'e'#255#213#164'e'#255#213#164'e'#255#213#164'e'#255#213#164 +'e'#255#213#164'e'#255#213#164'e'#255#213#164'e'#255#213#164'e'#255#213#164 +'e'#255#173#133'R'#255#3#2#1#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#22#17#11#255#213#164'e'#255#213#164'e'#255#213#164 +'e'#255#213#164'e'#255#213#164'f'#255#209#158'a'#255#187#128'O'#255'yD)'#254 +'W4$'#241'BBB'#169'DDD1@@@'#4#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2'FFF(W4' +'$'#229'{E)'#255#191#134'T'#255#207#157'c'#255#210#160'f'#255#210#160'f'#255 +#210#160'f'#255#210#160'f'#255#210#160'f'#255#210#160'f'#255#210#160'f'#255 +#210#160'f'#255#152'tJ'#255'[E,'#255'K9$'#255'{]<'#255#196#149'_'#255#210#160 +'f'#255#210#160'f'#255#210#160'f'#255#210#160'f'#255#210#160'f'#255#159'yM' +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'"' +#26#17#255#210#160'f'#255#210#160'f'#255#210#160'f'#255#210#160'f'#255#210 +#160'f'#255#209#160'e'#255#199#146']'#255#156'_;'#255'\1'#28#254'FBA'#188'FF' +'FXNNN'#13#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'FFF'#11'F@=T\/'#28#253#151'\9'#255 +#200#147'_'#255#207#156'e'#255#207#156'e'#255#207#156'e'#255#207#156'e'#255 +#207#156'e'#255#207#156'e'#255#207#156'e'#255#178#135'W'#255'$'#27#17#255#0#0 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'N:&'#255#207#156'e'#255#207 +#156'e'#255#207#156'e'#255#207#156'e'#255#207#156'e'#255#3#2#1#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'uX9'#255#207#156'e'#255#207 +#156'e'#255#207#156'e'#255#207#156'e'#255#207#156'e'#255#207#157'e'#255#204 +#153'b'#255#180'wK'#255'a4'#30#254'M;3'#216'DDD'#132'==='#25#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0'CCC'#19'N9.'#159'^2'#30#254#176'rI'#255#202#150'c'#255#203 +#153'e'#255#203#153'f'#255#203#153'f'#255#203#153'f'#255#203#153'f'#255#203 +#153'f'#255#163'zQ'#255#1#1#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0 +#0#255#0#0#0#255#0#0#0#255#29#22#15#255#203#153'f'#255#203#153'f'#255#203#153 +'f'#255#203#153'f'#255#14#10#7#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 ,#0#0#255#4#3#2#255#203#153'f'#255#203#153'f'#255#203#153'f'#255#203#153'f' +#255#203#153'f'#255#203#153'f'#255#203#153'f'#255#203#152'e'#255#190#134'X' +#255'yC)'#254'V5&'#239'DDD'#165'FFF('#128#128#128#2#0#0#0#0#0#0#0#0#0#0#0#0 +'GGG'#25'V4%'#212's@&'#254#186#128'U'#255#199#148'd'#255#200#148'd'#255#200 +#148'd'#255#200#148'd'#255#200#148'd'#255#200#148'd'#255#198#146'd'#255#12#9 +#6#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#138'fE'#255#200#148'd'#255#200#148'd'#255#200#148'd'#255 +#15#11#7#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#0#0#255'&'#28#19#255#145'kH'#255 +#200#148'd'#255#200#148'd'#255#200#148'd'#255#200#148'd'#255#200#148'd'#255 +#200#148'd'#255#200#148'd'#255#200#148'd'#255#194#141'^'#255#146'W6'#255'[0' +#28#254'EBB'#178'CCC9UUU'#6#0#0#0#0#0#0#0#0#0#0#0#0'JAA'#31'\1'#29#249#140'P' +'2'#255#190#135'\'#255#196#143'c'#255#196#143'c'#255#196#143'c'#255#196#143 +'c'#255#196#143'c'#255#196#143'c'#255'>-'#31#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'&' +#28#19#255#196#143'c'#255#196#143'c'#255#196#143'c'#255#25#18#12#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#2#2#1 +#255'*'#31#21#255'kM6'#255#187#137'_'#255#196#143'c'#255#196#143'c'#255#196 +#143'c'#255#196#143'c'#255#196#143'c'#255#196#143'c'#255#196#143'c'#255#196 +#143'c'#255#196#143'c'#255#196#143'c'#255#194#141'b'#255#170'kF'#255'\0'#28 +#254'L<5'#203'CCCH333'#10#0#0#0#0#0#0#0#0#0#0#0#1'K3+@[/'#27#255#160'`>'#255 +#190#136'_'#255#191#137'`'#255#191#137'`'#255#191#137'`'#255#191#137'`'#255 +#191#137'`'#255#189#135'`'#255#1#1#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#30#21#15#255 +#191#137'`'#255#191#137'`'#255#191#137'`'#255'aF1'#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#5#3#2#255#165'vS'#255#191#137'`' +#255#191#137'`'#255#191#137'`'#255#191#137'`'#255#191#137'`'#255#191#137'`' +#255#191#137'`'#255#191#137'`'#255#191#137'`'#255#191#137'`'#255#191#137'`' +#255#191#137'`'#255#191#137'`'#255#191#136'`'#255#178'vQ'#255'h7 '#253'Q8,' +#220'DDDV;;;'#13#0#0#0#0#0#0#0#0'UUU'#3'R4''^[/'#27#255#169'hF'#255#187#131 +']'#255#187#132'^'#255#187#132'^'#255#187#132'^'#255#187#132'^'#255#187#132 +'^'#255'uS;'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'{W>'#255#187#132'^'#255 +#187#132'^'#255#187#132'^'#255#185#130'^'#255#19#14#10#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#1#1#1#255#158'oO'#255#187#132'^'#255#187#132'^' +#255#187#132'^'#255#187#132'^'#255#187#132'^'#255#187#132'^'#255#187#132'^' +#255#187#132'^'#255#187#132'^'#255#187#132'^'#255#187#132'^'#255#187#132'^' +#255#187#132'^'#255#187#132'^'#255#187#132'^'#255#181'{V'#255'r<"'#255'T6''' +#228'BBBd@@@'#16#0#0#0#0#0#0#0#0'UUU'#6'T5''}_2'#30#253#171'kI'#255#183'}Z' +#255#183'~Z'#255#183'~Z'#255#183'~Z'#255#183'~Z'#255#183'~Z'#255'. '#23#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#1#1#0#255'S9)'#255#183'~Z'#255#183'~Z'#255#183'~Z'#255#183'~Z' +#255#183'~Z'#255#173'xV'#255#31#21#15#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'b' +'C0'#255#183'~Z'#255#183'~Z'#255#183'~Z'#255#183'~Z'#255#183'~Z'#255#183'~Z' +#255#183'~Z'#255#183'~Z'#255#183'~Z'#255#183'~Z'#255#183'~Z'#255#183'~Z'#255 +#183'~Z'#255#183'~Z'#255#183'~Z'#255#183'~Z'#255#181'zV'#255'zA%'#255'X4$' +#237'DDDqCCC'#19#0#0#0#0#0#0#0#0'@@@'#8'U4%'#149'f5'#31#252#172'mK'#255#180 +'yX'#255#180'yX'#255#180'yX'#255#180'yX'#255#180'yX'#255#180'yX'#255#6#4#3 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#19#13#9#255#153'gK'#255#180'yX'#255#180'yX'#255#180'yX'#255#180'yX' +#255#180'yX'#255#180'yX'#255#180'yX'#255#180'yX'#255'{S<'#255'+'#29#21#255#7 +#4#3#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#1#1 +#255'gF3'#255#180'yX'#255#180'yX'#255#180'yX'#255#139']D'#255'+'#29#21#255#8 +#6#4#255#8#6#4#255#16#11#8#255'W:*'#255#178'wV'#255#180'yX'#255#180'yX'#255 +#180'yX'#255#180'yX'#255#180'yX'#255#180'yX'#255#180'yX'#255#179'yV'#255#131 +'F+'#255'[3!'#245'CCCyIII'#21#0#0#0#0#0#0#0#0'UUU'#6'X3"'#165'n:"'#253#172'p' +'O'#255#177'wW'#255#177'wW'#255#177'wW'#255#177'wW'#255#177'wW'#255#173'uU' +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1 +#0#0#255'P6'''#255#177'wW'#255#177'wW'#255#177'wW'#255#177'wW'#255#177'wW' ,#255#177'wW'#255#177'wW'#255#177'wW'#255#177'wW'#255#177'wW'#255#177'wW'#255 +#177'wW'#255#177'wW'#255#158'jM'#255'W;+'#255''''#26#19#255'"'#23#17#255'%' +#25#18#255'W:+'#255#167'qS'#255#177'wW'#255#177'wW'#255#177'wW'#255'@+'#31 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#3#2#1#255 +#149'dI'#255#177'wW'#255#177'wW'#255#177'wW'#255#177'wW'#255#177'wW'#255#177 +'wW'#255#177'vV'#255#139'M0'#255'[1'#30#250'DDDpCCC'#19#0#0#0#0#0#0#0#0'UUU' +#3'Y1'#31#182'v>%'#255#172'oQ'#255#175'tW'#255#175'tW'#255#175'tW'#255#175't' +'W'#255#175'tW'#255'}S?'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#26#17#13#255#150'cK'#255#175'tW'#255#175'tW'#255#175'tW'#255 +#175'tW'#255#175'tW'#255#175'tW'#255#175'tW'#255#175'tW'#255#175'tW'#255#175 +'tW'#255#175'tW'#255#175'tW'#255#175'tW'#255#175'tW'#255#175'tW'#255#175'tW' +#255#175'tW'#255#175'tW'#255#175'tW'#255#175'tW'#255#175'tW'#255#175'tW'#255 +#175'tW'#255'dC2'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#9#6#4#255#169'pU'#255#175'tW'#255#175'tW'#255#175't' +'W'#255#175'tW'#255#175'tW'#255#174'sU'#255#145'S6'#255']0'#28#254'DBBd@@@' +#16#0#0#0#0#0#0#0#0#0#0#0#0'Z0'#30#175'v=%'#255#171'nP'#255#174'rV'#255#174 +'rV'#255#174'rV'#255#174'rV'#255#174'rV'#255'L2&'#255#0#0#0#255'/'#31#23#255 +'}R>'#255' '#21#16#255'!'#22#17#255#139'[E'#255#174'rV'#255#174'rV'#255#174 +'rV'#255#174'rV'#255#174'rV'#255#174'rV'#255#174'rV'#255#174'rV'#255#174'rV' +#255#174'rV'#255#174'rV'#255#174'rV'#255#174'rV'#255#174'rV'#255#174'rV'#255 +#174'rV'#255#174'rV'#255#174'rV'#255#174'rV'#255#174'rV'#255#174'rV'#255#174 +'rV'#255#174'rV'#255#174'rV'#255#174'rV'#255'?*'#31#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'6#'#27 +#255#174'rV'#255#174'rV'#255#174'rV'#255#174'rV'#255#174'rV'#255#173'qT'#255 +#145'S7'#255'\1'#29#254'AAAV;;;'#13#0#0#0#0#0#0#0#0#0#0#0#0'Z1'#30#150'n;$' +#252#169'jM'#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255 +#149'bI'#255'@* '#255#170'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU' +#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255 +#172'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255#172 +'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU' +#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255 +'G/#'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#24#16#12#255#172'qU'#255#172'qU'#255#172'qU'#255#172 +'qU'#255#172'qU'#255#171'oS'#255#138'N3'#255'\2'#31#249'DDDG999'#9#0#0#0#0#0 +#0#0#0#0#0#0#0'X1!|g7#'#250#167'gI'#255#172'pT'#255#172'qU'#255#172'qU'#255 +#172'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255#172 +'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU' +#255#172'qU'#255'P5('#255')'#27#20#255#27#18#13#255'5#'#26#255'pJ8'#255#172 +'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU' +#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255 +#172'qU'#255#172'qU'#255#162'jO'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#9#6#4#255#172'qU'#255#172 +'qU'#255#172'qU'#255#172'qU'#255#172'qU'#255#170'mR'#255#131'I.'#255'[4"'#241 +'FFF7UUU'#6#0#0#0#0#0#0#0#0#0#0#0#0'Y1!`b5 '#251#164'cG'#255#172'pU'#255#173 +'rW'#255#173'rW'#255#173'rW'#255#173'rW'#255#173'rW'#255#173'rW'#255#173'rW' +#255#173'rW'#255#173'rW'#255#173'rW'#255#173'rW'#255#173'rW'#255#173'rW'#255 +#173'rW'#255'}S?'#255#9#6#5#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#16#11#8#255#152'dM'#255#173'rW'#255#173'rW'#255#173'rW'#255#173'rW'#255 +#173'rW'#255#173'rW'#255#173'rW'#255#173'rW'#255#173'rW'#255#173'rW'#255#173 +'rW'#255#173'rW'#255#173'rW'#255#173'rW'#255'$'#24#18#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#4#3#2#255#173'r' +'W'#255#173'rW'#255#173'rW'#255#173'rW'#255#173'rW'#255#170'mQ'#255'|C*'#255 +'W4$'#229'CCC&'#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0'X5!A^2'#31#254#162'bE'#255 +#173'rV'#255#175'tY'#255#175'tY'#255#175'tY'#255#175'tY'#255#175'tY'#255#175 +'tY'#255#175'tY'#255#175'tY'#255#175'tY'#255#175'tY'#255#175'tY'#255#175'tY' +#255#175'tY'#255'{Q?'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#14#9#7#255#173'tY'#255#175'tY'#255#175'tY'#255 +#175'tY'#255#175'tY'#255#175'tY'#255#175'tY'#255#175'tY'#255#175'tY'#255#175 +'tY'#255#175'tY'#255#175'tY'#255#175'tY'#255#175'tY'#255#132'XC'#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#21 +#14#11#255#175'tY'#255#175'tY'#255#175'tY'#255#175'tY'#255#174'tY'#255#170'm' +'P'#255't?('#254'U5&'#203'@@@'#24#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'X0'#24' ^2' +#31#255#156'\A'#255#175'v\'#255#177'y`'#255#177'y`'#255#177'y`'#255#177'y`' +#255#177'y`'#255#177'y`'#255#177'y`'#255#177'y`'#255#177'y`'#255#177'y`'#255 ,#177'y`'#255#177'y`'#255#177'y`'#255#11#8#6#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#136']J'#255#177 +'y`'#255#177'y`'#255'7%'#30#255#9#6#5#255#13#9#7#255#16#11#9#255#26#18#14#255 +#139'_K'#255#177'y`'#255#177'y`'#255#177'y`'#255#177'y`'#255#177'y`'#255#177 +'y`'#255#18#12#9#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255'<)!'#255#177'y`'#255#177'y`'#255#177'y`'#255#177'y`'#255#176 +'x^'#255#169'kP'#255'j<&'#253'U4%'#168';;;'#13#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0'^2'#29#234#136'O4'#255#176'x^'#255#180'~f'#255#180'~f'#255#180'~f' +#255#180'~f'#255#180'~f'#255#180'~f'#255#180'~f'#255#180'~f'#255#180'~f'#255 +#180'~f'#255#180'~f'#255#180'~f'#255#146'gS'#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#139'bO'#255#170'x`'#255#20#14#11#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255']A4'#255#180'~f'#255#180'~f'#255#180'~f'#255#180'~f'#255 +#180'~f'#255'qO@'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#1#1#0#255#165't^'#255#180'~f'#255#180'~f'#255#180'~f'#255#180'~f'#255 +#178'zb'#255#162'dH'#255'_3'#31#254'R6)c@@@'#4#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0'[/'#29#153'r?)'#252#174'sZ'#255#182#129'j'#255#183#131'l'#255#183 +#131'l'#255#183#131'l'#255#183#131'l'#255#183#131'l'#255#183#131'l'#255#183 +#131'l'#255#183#131'l'#255#183#131'l'#255#183#131'l'#255#183#131'l'#255'ZA5' +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#5#3#3#255#179#127'j'#255'uTE'#255#0#0#0#255#0#0#0#255#0#0 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'{XI'#255#183#131'l' +#255#183#131'l'#255#183#131'l'#255#183#131'l'#255#183#131'l'#255#20#15#12#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255':)"'#255#183#131'l'#255 +#183#131'l'#255#183#131'l'#255#183#131'l'#255#183#131'l'#255#179'|c'#255#140 +'R9'#255'\2'#31#248'@@6'#28#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +'[/'#29'E`5 '#252#166'iO'#255#183#131'l'#255#186#136'q'#255#186#136'q'#255 +#186#136'q'#255#186#136'q'#255#186#136'q'#255#186#136'q'#255#186#136'q'#255 +#186#136'q'#255#186#136'q'#255#186#136'q'#255#186#136'q'#255'\D8'#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255'oQC'#255#186#136'q'#255'X@6'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#12#9#7#255#186#136'q'#255#186 +#136'q'#255#186#136'q'#255#186#136'q'#255#186#136'q'#255#148'lZ'#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#169'|g'#255#186#136'q'#255#186 +#136'q'#255#186#136'q'#255#186#136'q'#255#185#134'q'#255#177'y`'#255'tB+'#254 +'W2!'#194'III'#14#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'@@'#0#4'^3' +#30#245#144'W='#255#184#134'o'#255#189#141'x'#255#189#141'x'#255#189#141'x' +#255#189#141'x'#255#189#141'x'#255#189#141'x'#255#189#141'x'#255#189#141'x' +#255#189#141'x'#255#189#141'x'#255#189#141'x'#255'tWJ'#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'('#30#26#255 +#189#141'x'#255#189#141'x'#255'?/('#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#187#139'v'#255#189#141 +'x'#255#189#141'x'#255#189#141'x'#255#189#141'x'#255#189#141'x'#255#172#128 +'m'#255'_G<'#255#1#0#0#255#0#0#0#255'-"'#28#255#189#141'x'#255#189#141'x'#255 +#189#141'x'#255#189#141'x'#255#189#141'x'#255#186#137's'#255#171'oU'#255'a6"' +#253'T5$jUUU'#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'\/' +#27#170'vD,'#252#181#128'h'#255#190#144'{'#255#192#146'~'#255#192#146'~'#255 +#192#146'~'#255#192#146'~'#255#192#146'~'#255#192#146'~'#255#192#146'~'#255 +#192#146'~'#255#192#146'~'#255#192#146'~'#255#186#142'z'#255#1#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#2#1#1#255#186#142'z' +#255#192#146'~'#255#192#146'~'#255'=.('#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#192#146'~'#255#192 +#146'~'#255#192#146'~'#255#192#146'~'#255#192#146'~'#255#192#146'~'#255#192 +#146'~'#255#192#146'~'#255#0#0#0#255#0#0#0#255#167#127'n'#255#192#146'~'#255 +#192#146'~'#255#192#146'~'#255#192#146'~'#255#191#145'}'#255#186#137's'#255 +#149'[A'#255'^1'#31#250'F:.'#22#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0'\.'#28'H`5 '#252#164'jP'#255#190#143'z'#255#194#151#131 +#255#194#151#131#255#194#151#131#255#194#151#131#255#194#151#131#255#194#151 +#131#255#194#151#131#255#194#151#131#255#194#151#131#255#194#151#131#255#194 +#151#131#255#27#21#18#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255' '#25#21#255#194#151#131#255#194#151#131#255#194#151#131#255'7*%' +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#12#9#8#255#194#151#131#255#194#151#131#255#194#151#131#255#194#151 +#131#255#194#151#131#255#194#151#131#255#194#151#131#255#190#149#129#255#0#0 ,#0#255'0% '#255#194#151#131#255#194#151#131#255#194#151#131#255#194#151#131 +#255#194#151#131#255#192#147#127#255#180'~f'#255'q@+'#252'Z0'#29#180#0#0#0#2 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0']0' +#28#199'{H2'#252#184#134'o'#255#196#153#134#255#197#156#137#255#197#156#137 +#255#197#156#137#255#197#156#137#255#197#156#137#255#197#156#137#255#197#156 +#137#255#197#156#137#255#197#156#137#255#197#156#137#255'G81'#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'WE='#255#197#156#137#255#197 +#156#137#255#191#152#133#255#1#1#1#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#135'k^'#255#197#156#137#255#197 +#156#137#255#197#156#137#255#197#156#137#255#197#156#137#255#197#156#137#255 +#197#156#137#255#197#156#137#255#16#12#11#255#174#138'y'#255#197#156#137#255 +#197#156#137#255#197#156#137#255#197#156#137#255#197#155#136#255#191#145'|' +#255#151'_F'#255'^3'#31#253'T2!-'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[0'#29'5_4 '#254#161'hP'#255#195#152#132 +#255#200#161#143#255#200#161#144#255#200#161#144#255#200#161#144#255#200#161 +#144#255#200#161#144#255#200#161#144#255#200#161#144#255#200#161#144#255#200 +#161#144#255'xaW'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#1#1 +#255#171#138'{'#255#200#161#144#255#200#161#144#255#127'f\'#255#0#0#0#255#0#0 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255')!'#30#255 +#200#161#144#255#200#161#144#255#200#161#144#255#200#161#144#255#200#161#144 +#255#200#161#144#255#200#161#144#255#200#161#144#255#200#161#144#255#153'{n' +#255#200#161#144#255#200#161#144#255#200#161#144#255#200#161#144#255#200#161 +#144#255#198#156#138#255#181#128'h'#255'l>*'#252'Z1'#30#159#0#0#0#1#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0'^0'#27#173'uE/'#249#186#136'r'#255#201#162#145#255#203#165#150#255#203#165 +#150#255#203#165#150#255#203#165#150#255#203#165#150#255#203#165#150#255#203 +#165#150#255#203#165#150#255#203#165#150#255#163#132'x'#255#0#0#0#255#0#0#0 +#255#26#21#19#255',$!'#255'-%!'#255#156'~s'#255#203#165#150#255#203#165#150 +#255#203#165#150#255'@4/'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#4#3#3#255#186#151#138#255#203#165#150#255#203#165 +#150#255#203#165#150#255#203#165#150#255#203#165#150#255#203#165#150#255#203 +#165#150#255#203#165#150#255#203#165#150#255#203#165#150#255#203#165#150#255 +#203#165#150#255#203#165#150#255#203#165#150#255#203#164#149#255#195#152#132 +#255#146'\D'#255'_3'#31#247'R3'#30#25#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'Z-'#30'"^4 '#252#155 +'cK'#255#196#153#136#255#206#169#155#255#207#171#156#255#207#171#156#255#207 +#171#156#255#207#171#156#255#207#171#156#255#207#171#156#255#207#171#156#255 +#207#171#156#255#203#167#152#255#0#0#0#255#0#0#0#255#193#159#145#255#207#171 +#156#255#207#171#156#255#207#171#156#255#207#171#156#255#207#171#156#255#207 +#171#156#255'E94'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#15#12#11#255#182#150#137#255#207#171#156#255#207#171#156#255#207#171#156 +#255#207#171#156#255#207#171#156#255#207#171#156#255#207#171#156#255#207#171 +#156#255#207#171#156#255#207#171#156#255#207#171#156#255#207#171#156#255#207 +#171#156#255#207#171#156#255#206#170#155#255#201#162#145#255#178'}f'#255'h<(' +#250'[0'#28#129#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0']1'#29#130'f:&'#250#171'u' +'^'#255#202#164#148#255#210#176#163#255#210#177#164#255#210#177#164#255#210 +#177#164#255#210#177#164#255#210#177#164#255#210#177#164#255#210#177#164#255 +#210#177#164#255#2#1#1#255#27#22#21#255#210#177#164#255#210#177#164#255#210 +#177#164#255#210#177#164#255#210#177#164#255#210#177#164#255#210#177#164#255 +#210#177#164#255'I=8'#255#6#5#4#255#0#0#0#255#0#0#0#255#0#0#0#255'''!'#31#255 +#206#175#162#255#210#177#164#255#210#177#164#255#210#177#164#255#210#177#164 +#255#210#177#164#255#210#177#164#255#210#177#164#255#210#177#164#255#210#177 +#164#255#210#177#164#255#210#177#164#255#210#177#164#255#210#177#164#255#210 +#177#164#255#210#176#163#255#206#170#155#255#188#139'w'#255'zI4'#252'^2'#29 +#222']/'#23#11#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'^1'#29#181'oA-' +#249#182#132'n'#255#208#173#159#255#213#182#169#255#213#183#170#255#213#183 +#170#255#213#183#170#255#213#183#170#255#213#183#170#255#213#183#170#255#213 +#183#170#255#12#10#9#255#159#136#127#255#213#183#170#255#213#183#170#255#213 +#183#170#255#213#183#170#255#213#183#170#255#213#183#170#255#213#183#170#255 +#213#183#170#255#213#183#170#255#139'xo'#255#0#0#0#255#0#0#0#255'% '#30#255 +#213#183#170#255#213#183#170#255#213#183#170#255#213#183#170#255#213#183#170 +#255#213#183#170#255#213#183#170#255#213#183#170#255#213#183#170#255#213#183 ,#170#255#213#183#170#255#213#183#170#255#213#183#170#255#213#183#170#255#213 +#183#170#255#213#183#170#255#211#178#165#255#196#152#134#255#136'T?'#254'`1 ' +#243'U+'#28'$'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'U+'#21#12 +']2'#30#218'zK5'#251#192#146#127#255#212#180#168#255#216#187#176#255#217#188 +#177#255#217#188#177#255#217#188#177#255#217#188#177#255#217#188#177#255#217 +#188#177#255'o`Z'#255#217#188#177#255#217#188#177#255#217#188#177#255#217#188 +#177#255#217#188#177#255#217#188#177#255#217#188#177#255#217#188#177#255#217 +#188#177#255#217#188#177#255#27#24#22#255#0#0#0#255#9#8#7#255#209#180#171#255 +#217#188#177#255#217#188#177#255#217#188#177#255#217#188#177#255#217#188#177 +#255#217#188#177#255#217#188#177#255#217#188#177#255#217#188#177#255#217#188 +#177#255#217#188#177#255#217#188#177#255#217#188#177#255#217#188#177#255#217 +#188#177#255#215#185#173#255#202#163#147#255#152'cM'#255'`5 '#252'X.'#27'B'#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'].'#23'!_' +'3 '#241#135'V@'#254#197#155#137#255#215#185#173#255#219#193#183#255#220#194 +#184#255#220#194#184#255#220#194#184#255#220#194#184#255#220#194#184#255#220 +#194#184#255#220#194#184#255#220#194#184#255#220#194#184#255#220#194#184#255 +#220#194#184#255#220#194#184#255#220#194#184#255#220#194#184#255#220#194#184 +#255#220#194#184#255#4#4#4#255#13#11#11#255#197#173#164#255#220#194#184#255 +#220#194#184#255#220#194#184#255#220#194#184#255#220#194#184#255#220#194#184 +#255#220#194#184#255#220#194#184#255#220#194#184#255#220#194#184#255#220#194 +#184#255#220#194#184#255#220#194#184#255#220#194#184#255#220#194#183#255#218 +#190#179#255#205#169#154#255#165'pY'#255'b8$'#252'[/'#27'h'#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'Y1'#28'?_' +'3!'#249#132'T?'#252#193#148#130#255#215#186#174#255#223#198#189#255#223#200 +#191#255#223#200#191#255#223#200#191#255#223#200#191#255#223#200#191#255#223 +#200#191#255#223#200#191#255#223#200#191#255#223#200#191#255#223#200#191#255 +#223#200#191#255#223#200#191#255#223#200#191#255#223#200#191#255#223#200#191 +#255#199#179#171#255#215#192#183#255#223#200#191#255#223#200#191#255#223#200 +#191#255#223#200#191#255#223#200#191#255#223#200#191#255#223#200#191#255#223 +#200#191#255#223#200#191#255#223#200#191#255#223#200#191#255#223#200#191#255 +#223#200#191#255#223#200#191#255#223#199#190#255#219#192#183#255#203#165#150 +#255#158'kS'#255'c9%'#251']0'#30#147#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'Z-'#25'3_3'#30 +#234'wI5'#250#185#138'v'#255#215#186#174#255#225#203#194#255#227#205#197#255 +#227#205#197#255#227#205#197#255#227#205#197#255#227#205#197#255#227#205#197 +#255#227#205#197#255#227#205#197#255#227#205#197#255#227#205#197#255#227#205 +#197#255#227#205#197#255#227#205#197#255#227#205#197#255#227#205#197#255#227 +#205#197#255#227#205#197#255#227#205#197#255#227#205#197#255#227#205#197#255 +#227#205#197#255#227#205#197#255#227#205#197#255#227#205#197#255#227#205#197 +#255#227#205#197#255#227#205#197#255#227#205#197#255#227#205#197#255#226#204 +#196#255#220#194#183#255#200#159#143#255#144'_H'#254'a6"'#253'\1'#30'y'#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'\3'#31#25'^2'#29#207'nB.'#249#175'~i'#255 +#213#182#169#255#225#202#193#255#230#209#203#255#230#211#205#255#230#211#205 +#255#230#211#205#255#230#211#205#255#230#211#205#255#230#211#205#255#230#211 +#205#255#230#211#205#255#230#211#205#255#230#211#205#255#230#211#205#255#230 +#211#205#255#230#211#205#255#230#211#205#255#230#211#205#255#230#211#205#255 +#230#211#205#255#230#211#205#255#230#211#205#255#230#211#205#255#230#211#205 +#255#230#211#205#255#230#211#205#255#230#211#205#255#230#211#205#255#230#210 +#204#255#227#205#198#255#219#191#181#255#193#149#131#255#131'R='#251'_4 '#247 +'Z0'#26'O'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'` '#8']0' +#28#169'e:'''#250#148'aL'#255#196#153#136#255#220#193#183#255#229#209#202#255 +#233#216#210#255#234#216#211#255#234#216#211#255#234#216#211#255#234#216#211 +#255#234#216#211#255#234#216#211#255#234#216#211#255#234#216#211#255#234#216 +#211#255#234#216#211#255#234#216#211#255#234#216#211#255#234#216#211#255#234 +#216#211#255#234#216#211#255#234#216#211#255#234#216#211#255#234#216#211#255 +#234#216#211#255#234#216#211#255#234#216#211#255#233#216#211#255#231#212#206 ,#255#224#200#192#255#207#171#156#255#168'va'#255'rE1'#249'^3'#31#230'Y,'#28 +'.'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0'^1'#29'h`3'#31#237'nA/'#249#158'mW'#255#203#165#150#255#224#201#192 +#255#232#213#208#255#235#219#215#255#237#222#218#255#237#222#218#255#237#222 +#218#255#237#222#218#255#237#222#218#255#237#222#218#255#237#222#218#255#237 +#222#218#255#237#222#218#255#237#222#218#255#237#222#218#255#237#222#218#255 +#237#222#218#255#237#222#218#255#237#222#218#255#237#222#218#255#237#222#218 +#255#236#220#216#255#233#216#211#255#228#206#200#255#213#182#170#255#177#131 +'n'#255'}M:'#250'a6"'#253']1'#29#155'U1'#24#21#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'].'#23#11 +']1'#29'~`5!'#246'tF5'#249#166'u`'#255#202#164#148#255#221#195#186#255#230 +#210#203#255#234#218#213#255#238#224#220#255#240#227#224#255#240#227#225#255 +#240#227#225#255#240#227#225#255#240#227#225#255#240#227#225#255#240#227#225 +#255#240#227#225#255#240#227#225#255#240#227#225#255#240#227#225#255#239#225 +#222#255#236#220#215#255#232#213#207#255#225#203#194#255#210#176#164#255#183 +#138'u'#255#133'UA'#252'c9&'#254'^2'#30#178'\.'#26''''#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'U1'#24#21']0'#30#147'`7"'#251'jA-'#249#133'UA' +#253#169'zf'#255#201#162#146#255#220#194#184#255#230#211#205#255#233#215#210 +#255#234#217#212#255#236#220#215#255#237#222#218#255#238#223#220#255#237#222 +#219#255#236#220#216#255#234#219#213#255#233#216#211#255#231#213#206#255#225 +#203#194#255#209#174#160#255#181#136'u'#255#145'`L'#255'sG4'#249'c9&'#255'_2' +#30#198'].'#28'7'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0'U+'#28#18'\.'#27'^_1'#30#179'c7$'#248'h?,'#251#127 +'Q;'#251#148'dN'#255#163't_'#255#175#129'n'#255#186#143'~'#255#198#157#141 +#255#204#167#151#255#201#161#145#255#191#149#132#255#179#135'u'#255#167'ye' +#255#153'iT'#255#136'WC'#254'pE2'#249'c9&'#255'_3'#31#212'Z/'#27'|].'#29','#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'U9'#28#9'\.'#26'N^0'#29#157'`' +'4 '#203'c6#'#230'c7%'#249'd:('#255'f=*'#255'i?-'#252'g>+'#255'e;('#255'd9&' +#253'b7$'#237'a5!'#214'_1'#30#180'\/'#26'lX,'#26#29#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0'`0 '#16'[1'#24'*].'#27'B]1'#29'4\3'#31#25'UU'#0#3#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#248#15#255 +#255#255#255#255#254#0#0#127#255#255#255#255#240#0#0#7#255#255#255#255#192#0 +#0#1#255#255#255#255#0#0#0#0#255#255#255#252#0#0#0#0'?'#255#255#248#0#0#0#0 +#31#255#255#240#0#0#0#0#7#255#255#192#0#0#0#0#3#255#255#128#0#0#0#0#1#255#255 +#128#0#0#0#0#0#255#255#0#0#0#0#0#0#127#254#0#0#0#0#0#0#127#252#0#0#0#0#0#0'?' +#252#0#0#0#0#0#0#31#248#0#0#0#0#0#0#31#248#0#0#0#0#0#0#15#240#0#0#0#0#0#0#15 ,#240#0#0#0#0#0#0#7#224#0#0#0#0#0#0#7#224#0#0#0#0#0#0#7#224#0#0#0#0#0#0#3#192 +#0#0#0#0#0#0#3#192#0#0#0#0#0#0#3#192#0#0#0#0#0#0#1#192#0#0#0#0#0#0#1#192#0#0 +#0#0#0#0#1#128#0#0#0#0#0#0#1#128#0#0#0#0#0#0#1#128#0#0#0#0#0#0#1#128#0#0#0#0 +#0#0#1#128#0#0#0#0#0#0#1#128#0#0#0#0#0#0#1#192#0#0#0#0#0#0#1#192#0#0#0#0#0#0 +#1#192#0#0#0#0#0#0#1#192#0#0#0#0#0#0#1#192#0#0#0#0#0#0#3#192#0#0#0#0#0#0#3 +#224#0#0#0#0#0#0#3#224#0#0#0#0#0#0#7#224#0#0#0#0#0#0#7#224#0#0#0#0#0#0#7#240 +#0#0#0#0#0#0#15#240#0#0#0#0#0#0#15#248#0#0#0#0#0#0#31#248#0#0#0#0#0#0#31#252 +#0#0#0#0#0#0'?'#252#0#0#0#0#0#0#127#254#0#0#0#0#0#0#127#254#0#0#0#0#0#0#255 +#255#0#0#0#0#0#1#255#255#128#0#0#0#0#3#255#255#192#0#0#0#0#7#255#255#224#0#0 +#0#0#15#255#255#240#0#0#0#0#31#255#255#248#0#0#0#0'?'#255#255#254#0#0#0#0#127 +#255#255#255#0#0#0#1#255#255#255#255#192#0#0#7#255#255#255#255#240#0#0#31#255 +#255#255#255#254#0#0#255#255#255#255#255#255#248#31#255#255#255#255#255#255 +#255#255#255#255#255'('#0#0#0'0'#0#0#0'`'#0#0#0#1#0' '#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0'UUU'#3'333'#5'UUU'#6'III'#7'@@@'#8'@@@'#8'III'#7 +'UUU'#6'333'#5'UUU'#3#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'@@@' +#4'@@@'#8'@@@'#16'DDD1BBBMCCC_FCCrDBB'#129'FDD'#133'CCCvCCCcDDDRDDD('#240'l@!'#252'qE!' +#253'yJ$'#252#129'R&'#252#138'X)'#253#134'T('#253'}N%'#252'uG#'#252'oC"'#253 +'h=#'#248'Z>.'#230'OC;'#211'FEC'#198'DDC'#187'BBB|CCC&999'#9#0#0#0#1#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#2'<<<'#17'CCCWEED'#170'OB9'#211'd=&'#244'qE"'#253#137'V)'#253 +#164'h.'#255#186'y3'#255#194#130'5'#255#198#135'6'#255#203#140'7'#255#207#145 +'8'#255#205#143'7'#255#201#137'7'#255#196#132'6'#255#192#127'5'#255#177'r1' +#255#152'_+'#254'{L%'#252'k?"'#251'[>-'#233'IEA'#203'EDD'#184'DDDq<<<'#30'@@' +'@'#4#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0'@@@'#4'BBB#EDD'#146'KB<'#205'a='''#242'yK&'#252#166'i/'#255#192#128'6' +#255#205#143'9'#255#217#159'<'#255#226#169'>'#255#230#173'>'#255#232#176'>' +#255#235#180'?'#255#237#182'@'#255#236#181'?'#255#234#178'>'#255#231#175'>' +#255#228#171'>'#255#223#165'<'#255#211#150':'#255#199#136'8'#255#182'v5'#255 +#146'\,'#253'k@"'#252'W?1'#227'GFE'#199'CCC'#171'???=@@@'#8#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'III'#7'DDD8ECB'#170'[>,'#234'sF$' +#252#160'e0'#255#196#133';'#255#216#158'@'#255#227#170'A'#255#234#180'C'#255 +#241#189'D'#255#245#193'E'#255#246#195'F'#255#247#195'F'#255#247#196'E'#255 +#248#197'F'#255#248#197'E'#255#247#195'F'#255#247#194'F'#255#246#194'E'#255 +#244#192'E'#255#238#184'C'#255#230#176'C'#255#223#166'A'#255#207#147'='#255 +#182'w7'#255#138'V+'#253'h>#'#250'NA9'#215'CCC'#186'@@@[;;;'#13#0#0#0#1#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'@@@'#8'EEENGC?'#189'b;%'#245#139'W-'#253#190 +#127';'#255#212#153'B'#255#227#172'F'#255#239#186'I'#255#242#191'J'#255#244 +#193'K'#255#246#195'K'#255#247#196'K'#255#247#196'K'#255#247#196'L'#255#247 +#196'L'#255#247#196'L'#255#247#196'L'#255#247#196'L'#255#247#196'K'#255#247 +#196'K'#255#246#196'K'#255#245#195'J'#255#243#193'J'#255#242#190'J'#255#234 +#180'H'#255#221#165'E'#255#202#142'@'#255#173'o5'#255'oC$'#252'T?3'#225'CCC' +#193'AAAy@@@'#16#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'+++'#6'DDD@K@<'#198'g<"'#250#154 +'a2'#254#200#141'B'#255#222#168'J'#255#234#183'N'#255#239#189'P'#255#242#192 +'P'#255#242#193'P'#255#243#193'P'#255#243#193'P'#255#243#193'P'#255#243#193 +'P'#255#243#193'P'#255#243#193'P'#255#243#193'P'#255#243#193'P'#255#243#193 ,'P'#255#243#193'P'#255#243#193'P'#255#243#193'P'#255#243#193'P'#255#242#193 +'P'#255#242#193'P'#255#241#191'P'#255#238#187'N'#255#229#176'L'#255#214#158 +'G'#255#183'y;'#255'yJ)'#252'[=,'#236'CCB'#195'EEEoFFF'#11#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'UUU'#3 +'CCC.J?;'#190'g=#'#252#167'k7'#255#205#147'H'#255#226#173'P'#255#235#186'T' +#255#238#189'T'#255#239#190'U'#255#239#190'U'#255#239#190'U'#255#239#190'U' +#255#239#190'U'#255#239#190'U'#255#191#152'D'#255'A4'#23#255'>1'#22#255'D6' +#24#255'H9'#26#255'RA'#29#255#146's4'#255#228#182'Q'#255#239#190'U'#255#239 +#190'U'#255#239#190'U'#255#239#190'U'#255#239#190'U'#255#238#190'U'#255#237 +#187'T'#255#232#182'S'#255#217#162'M'#255#191#129'B'#255#132'R-'#253'[9('#240 +'DDD'#191'CCCW@@@'#8#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#1'>>>'#29'F@='#169'd9#'#250#165'i8'#255#208#151'L'#255 +#226#174'U'#255#233#184'Y'#255#235#186'Y'#255#235#187'Y'#255#235#187'Y'#255 +#235#187'Y'#255#235#187'Y'#255#235#187'Y'#255#235#187'Y'#255'<0'#23#255#1#1#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#1#0#255#0#0#0#255#6 +#5#2#255'*!'#16#255'w^-'#255#227#181'W'#255#235#187'Y'#255#235#187'Y'#255#235 +#186'Y'#255#234#186'Y'#255#231#181'X'#255#218#164'Q'#255#194#133'E'#255'{J*' +#252'U=/'#230'CCC'#186'EEE?@@@'#4#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0'333'#10'DAAw_9%'#244#150'^4'#254#204#148'N'#255#225#175 +'Y'#255#230#181'\'#255#231#183'\'#255#231#183'\'#255#231#183'\'#255#231#183 +'\'#255#231#183'\'#255#231#183'\'#255#231#183'\'#255'hR*'#255#1#1#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#1#1#0#255#1#1#0#255'*!'#17#255#164#130'B'#255#231#183'\' +#255#231#183'\'#255#231#182']'#255#228#179'['#255#217#165'V'#255#185'|C'#255 +'nA'''#252'N>5'#219'CCC'#163'@@@'#20#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#128#128#128#2'@@@,W8*'#227#132'P/'#253#196#139'M'#255#220 +#170'['#255#226#179'_'#255#227#179'_'#255#227#179'_'#255#227#179'_'#255#227 +#179'_'#255#227#179'_'#255#227#179'_'#255#227#179'_'#255#227#179'_'#255#4#3#2 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#1#0 +#255#7#6#3#255#178#141'J'#255#227#179'_'#255#227#179'_'#255#225#176'^'#255 +#211#158'U'#255#174'q?'#255'c9"'#252'GA>'#203'BBB]III'#7#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0'FFF'#11'H>:'#150'e:#'#252#186'~H'#255#214#164'\' +#255#222#174'a'#255#223#175'b'#255#223#175'b'#255#223#175'b'#255#223#175'b' +#255#223#175'b'#255#223#175'b'#255#223#175'b'#255#223#175'b'#255#188#148'S' +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#1#1#1#255#154'yC'#255#223#175'b'#255#223#175'a'#255 +#220#171'`'#255#204#150'U'#255#145'Y5'#254'Y8('#238'CCC'#175'FFF'#29#0#0#0#1 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'UUU'#3'AAA3Z7'''#236#148'\6'#255#207#154'Z' +#255#218#170'b'#255#219#171'd'#255#219#171'd'#255#219#171'd'#255#219#171'd' +#255#219#171'd'#255#219#171'd'#255#219#171'd'#255#219#171'd'#255#219#171'd' +#255#211#165'`'#255#6#5#3#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#2#2#1#255#219#171'd'#255#219 +#171'd'#255#219#171'd'#255#215#166'`'#255#189#129'M'#255'h=$'#252'H>;'#207'E' +'EEhIII'#7#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'III'#7'K<5'#137'h;$'#252#188#130 +'O'#255#213#164'b'#255#215#167'd'#255#215#167'd'#255#215#167'd'#255#215#167 +'d'#255#215#167'd'#255#215#167'd'#255#215#167'd'#255#215#167'd'#255#215#167 +'d'#255#215#167'd'#255#215#167'd'#255#168#130'N'#255#1#1#1#255#0#0#0#255#0#0 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#200#155']'#255#215#167'd'#255#215#167'd'#255#215#166'd'#255#205#153']' +#255#153'`:'#255'[6$'#243'CCC'#164';;;'#13#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'7' +'77'#14'Z5%'#229#150'[8'#255#203#150'^'#255#211#162'e'#255#211#162'e'#255#211 +#162'e'#255#211#162'e'#255#211#162'e'#255#211#162'e'#255#211#162'e'#255#211 +#162'e'#255#211#162'e'#255#211#162'e'#255#211#162'e'#255#211#162'e'#255#211 +#162'e'#255#142'mD'#255#1#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#1#1#0#255#145'pF'#255#211#162'e'#255#211#162 +'e'#255#211#162'e'#255#210#159'd'#255#189#131'R'#255'f9#'#252'I@;'#202'===.' +#128#128#128#2#0#0#0#0#0#0#0#0#128#128#128#2'D??4]3'#30#252#181'yM'#255#206 +#155'd'#255#207#157'f'#255#207#157'f'#255#207#157'f'#255#207#157'f'#255#205 +#155'f'#255'S?('#255#1#1#1#255#1#0#0#255#3#2#1#255#15#11#7#255#169#128'S'#255 ,#207#157'f'#255#207#157'f'#255#207#157'f'#255#16#12#8#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#0#0#255#186#141'\' +#255#207#157'f'#255#207#157'f'#255#207#157'f'#255#207#157'e'#255#201#148'`' +#255#135'O0'#254'R9-'#226'BBBeIII'#7#0#0#0#0#0#0#0#0'UUU'#6'O8/'#141'o>''' +#251#193#139'['#255#203#151'e'#255#203#152'e'#255#203#152'e'#255#203#152'e' +#255#203#152'e'#255#23#17#11#255#1#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0 +#0#255#1#1#1#255#153'rL'#255#203#152'e'#255#203#152'e'#255',!'#22#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#0#0#255' '#24#16 +#255#203#152'e'#255#203#152'e'#255#203#152'e'#255#203#152'e'#255#203#152'e' +#255#202#150'd'#255#165'jC'#255'\3!'#247'DDD'#151'MMM'#10#0#0#0#0#0#0#0#0'@@' +'@'#8'Z6%'#206#142'T5'#255#195#142'a'#255#198#145'c'#255#198#145'c'#255#198 +#145'c'#255#198#145'c'#255'W@,'#255#1#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255'%'#27#19#255#198#145'c'#255#198#145'c'#255'U>+' +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#0#0#255#1#1#1#255#27#20#13#255'vW;' +#255#198#145'c'#255#198#145'c'#255#198#145'c'#255#198#145'c'#255#198#145'c' +#255#198#145'c'#255#198#145'c'#255#184'}S'#255'`4 '#252'FA>'#183'@@@'#12#0#0 +#0#0#0#0#0#0'999'#9']2'#30#243#166'gD'#255#192#138'`'#255#192#139'a'#255#192 +#139'a'#255#192#139'a'#255#190#137'a'#255#1#1#1#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#8#6#4#255#192#139'a'#255#192#139 +'a'#255#129']B'#255#1#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#0#0#255'Q;)'#255#192#139'a' +#255#192#139'a'#255#192#139'a'#255#192#139'a'#255#192#139'a'#255#192#139'a' +#255#192#139'a'#255#192#139'a'#255#192#139'a'#255#192#139'a'#255#188#132'[' +#255'u@'''#252'M;3'#212'999'#18#0#0#0#0#0#0#0#0'FFF'#11'^1'#29#250#174'oK' +#255#186#131'\'#255#186#131'\'#255#186#131'\'#255#186#131'\'#255'vS:'#255#1#1 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#0#0#255 +'S:)'#255#186#131'\'#255#186#131'\'#255#184#129'\'#255'('#28#20#255#1#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255'Q9('#255#186#131'\'#255#186#131'\'#255#186#131'\'#255#186#131'\'#255#186 +#131'\'#255#186#131'\'#255#186#131'\'#255#186#131'\'#255#186#131'\'#255#186 +#131'\'#255#186#131'\'#255#186#130'['#255#131'I-'#255'Q9-'#221'FFF!'#0#0#0#1 +#0#0#0#0'M33'#20'_2'#30#251#173'pN'#255#180'{X'#255#180'{X'#255#180'{X'#255 +#180'{X'#255'-'#30#22#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#2#1#1#255'dE1'#255#180'{X'#255#180'{X'#255#180'{X'#255#180'{X'#255 +#180'{X'#255'O6&'#255#2#1#1#255#1#1#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255'G0#'#255#180'{X'#255#180'{X'#255#178'{X'#255'hH3'#255'U:)'#255 +'mK5'#255#180'{X'#255#180'{X'#255#180'{X'#255#180'{X'#255#180'{X'#255#180'{X' +#255#180'{X'#255#139'P3'#255'U7)'#231'BBB2UUU'#3#0#0#0#0'T1&,c5 '#249#174'rQ' +#255#178'wW'#255#178'wW'#255#178'wW'#255#178'wW'#255#8#5#4#255#0#0#0#255#0#0 +#0#255#0#0#0#255#0#0#0#255#1#0#0#255#27#18#13#255#164'nQ'#255#178'wW'#255#178 +'wW'#255#178'wW'#255#178'wW'#255#178'wW'#255#178'wW'#255#178'wW'#255#178'wW' +#255#142'_F'#255'H0#'#255#20#13#10#255#25#16#12#255'9'''#28#255'lI5'#255#178 +'wW'#255#178'wW'#255'kG4'#255#1#1#1#255#1#1#0#255#1#0#0#255#1#0#0#255#3#2#1 +#255'zQ<'#255#178'wW'#255#178'wW'#255#178'wW'#255#178'wW'#255#178'wW'#255#149 +'W9'#255'Z5%'#238'DDD-'#128#128#128#2#0#0#0#0'Y3 Bj8#'#248#173'qS'#255#175't' +'W'#255#175'tW'#255#175'tW'#255#175'tW'#255#1#0#0#255#1#1#1#255#0#0#0#255#0#0 +#0#255#5#3#3#255'cB2'#255#175'tW'#255#175'tW'#255#175'tW'#255#175'tW'#255#175 +'tW'#255#175'tW'#255#175'tW'#255#175'tW'#255#175'tW'#255#175'tW'#255#175'tW' +#255#175'tW'#255#175'tW'#255#175'tW'#255#175'tW'#255#175'tW'#255#175'tW'#255 +#173'rU'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#2#1 +#1#255#152'eL'#255#175'tW'#255#175'tW'#255#175'tW'#255#175'tW'#255#155'[>' +#255'\4"'#244'@@@'#28#0#0#0#1#0#0#0#0'X0!3g7"'#246#172'oR'#255#174'rV'#255 +#174'rV'#255#174'rV'#255#166'lR'#255#7#5#3#255#131'VA'#255#155'fM'#255'oI7' +#255#174'rV'#255#174'rV'#255#174'rV'#255#174'rV'#255#174'rV'#255#174'rV'#255 +#174'rV'#255#174'rV'#255#174'rV'#255#174'rV'#255#174'rV'#255#174'rV'#255#174 +'rV'#255#174'rV'#255#174'rV'#255#174'rV'#255#174'rV'#255#174'rV'#255#174'rV' +#255#153'dL'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#255'<'''#29#255#174'rV'#255#174'rV'#255#174'rV'#255#173'qU'#255#151'Y' +'='#255']6%'#239'333'#15#0#0#0#0#0#0#0#0'O1'''#25'b3'#31#247#168'jN'#255#172 +'oU'#255#172'oU'#255#172'oU'#255#172'oU'#255#172'oU'#255#172'oU'#255#172'oU' +#255#172'oU'#255#172'oU'#255#172'oU'#255#172'oU'#255#172'oU'#255#136'XD'#255 ,'U7*'#255'^=/'#255'kE5'#255#170'oU'#255#172'oU'#255#172'oU'#255#172'oU'#255 +#172'oU'#255#172'oU'#255#172'oU'#255#172'oU'#255#172'oU'#255#172'oU'#255#172 +'oU'#255#172'oU'#255#5#3#2#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255'!'#21#16#255#172'oU'#255#172'oU'#255#172'oU'#255#172'oT'#255 +#143'R7'#255'Y6('#225'@@@'#12#0#0#0#0#0#0#0#0'333'#5'_2'#31#248#167'hL'#255 +#172'qW'#255#172'qX'#255#172'qX'#255#172'qX'#255#172'qX'#255#172'qX'#255#172 +'qX'#255#172'qX'#255#172'qX'#255#172'qX'#255#172'qX'#255':&'#30#255#1#0#0#255 +#1#1#0#255#1#1#1#255#1#1#0#255#4#2#2#255#133'WD'#255#172'qX'#255#172'qX'#255 +#172'qX'#255#172'qX'#255#172'qX'#255#172'qX'#255#172'qX'#255#172'qX'#255#172 +'qX'#255#172'qX'#255'E.$'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#30#20#15#255#172'qX'#255#172'qX'#255#172'qX'#255#172'pV'#255 +#134'K2'#255'V8)'#199'999'#9#0#0#0#0#0#0#0#0#0#0#0#1'_3'#30#239#164'fJ'#255 +#175'w]'#255#175'w^'#255#175'w^'#255#175'w^'#255#175'w^'#255#175'w^'#255#175 +'w^'#255#175'w^'#255#175'w^'#255#175'w^'#255'hF7'#255#1#0#0#255#0#0#0#255#0#0 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#7#5#4#255#175'w^'#255#175'w^'#255'{TB' +#255'X;/'#255']?2'#255#127'VD'#255#175'w^'#255#175'w^'#255#175'w^'#255#175'w' +'^'#255#165'qY'#255#1#1#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#1#1 +#255'fF7'#255#175'w^'#255#175'w^'#255#175'w^'#255#175'v\'#255'{D-'#253'S5(' +#154'333'#5#0#0#0#0#0#0#0#0#0#0#0#0'a3'#30#200#149'Z?'#255#179'|c'#255#179'}' +'e'#255#179'}e'#255#179'}e'#255#179'}e'#255#179'}e'#255#179'}e'#255#179'}e' +#255#179'}e'#255#179'}e'#255#19#13#11#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#2#1#1#255#179'}e'#255'E0'''#255#1#0#0#255#1#1#0#255 +#1#1#0#255#0#0#0#255'R:/'#255#179'}e'#255#179'}e'#255#179'}e'#255#179'}e'#255 +'.!'#26#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#1#1#255#177'}e'#255#179 +'}e'#255#179'}e'#255#179'}e'#255#175'v\'#255'g8$'#251'W7*O'#0#0#0#1#0#0#0#0#0 +#0#0#0#0#0#0#0'[0'#29'lyD-'#249#181#128'i'#255#183#131'l'#255#183#131'l'#255 +#183#131'l'#255#183#131'l'#255#183#131'l'#255#183#131'l'#255#183#131'l'#255 +#183#131'l'#255#183#131'l'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255'"'#25#20#255#183#131'l'#255#0#0#0#255#0#0#0#255#0#0 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255'B/'''#255#183#131'l'#255#183#131'l'#255 +#183#131'l'#255#169'yd'#255#1#1#1#255#0#0#0#255#0#0#0#255#0#0#0#255'#'#25#21 +#255#183#131'l'#255#183#131'l'#255#183#131'l'#255#183#131'l'#255#167'lQ'#255 +'^3'#31#248'@@@'#12#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'Y1'#30#26'b5 '#244#178'z' +'c'#255#187#138't'#255#187#138'u'#255#187#138'u'#255#187#138'u'#255#187#138 +'u'#255#187#138'u'#255#187#138'u'#255#187#138'u'#255#187#138'u'#255#2#2#1#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#1#0#255#170'~j'#255#177 +#130'o'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#4#3#3 +#255#187#138'u'#255#187#138'u'#255#187#138'u'#255#187#138'u'#255'jNB'#255#11 +#8#7#255#0#0#0#255#0#0#0#255#152'p`'#255#187#138'u'#255#187#138'u'#255#187 +#138'u'#255#186#136'r'#255#144'W?'#255']6#'#193'333'#5#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0'`4'#31#217#160'gN'#255#190#143'{'#255#191#145'}'#255#191 +#145'}'#255#191#145'}'#255#191#145'}'#255#191#145'}'#255#191#145'}'#255#191 +#145'}'#255#191#145'}'#255#19#14#12#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255'7*$'#255#191#145'}'#255#164'|k'#255#1#1#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#2#2#1#255#191#145'}'#255#191#145'}'#255 +#191#145'}'#255#191#145'}'#255#191#145'}'#255#191#145'}'#255#0#0#0#255#30#23 +#20#255#191#145'}'#255#191#145'}'#255#191#145'}'#255#191#145'}'#255#187#138 +'t'#255'p>('#249'Y2#U'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27 +'huB+'#244#190#142'z'#255#195#152#132#255#195#152#132#255#195#152#132#255#195 +#152#132#255#195#152#132#255#195#152#132#255#195#152#132#255#195#152#132#255 +'A3,'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#0#0#255#183#142'|'#255 +#195#152#132#255#138'k]'#255#1#1#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#9#7#6#255#195#152#132#255#195#152#132#255#195#152#132#255#195 +#152#132#255#195#152#132#255#195#152#132#255#1#1#1#255#160'}m'#255#195#152 +#132#255#195#152#132#255#195#152#132#255#194#150#131#255#167'pW'#255'`4 '#240 +'M33'#10#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'@@'#0#4'`3'#30#229 +#164'nU'#255#197#156#137#255#199#159#141#255#199#159#141#255#199#159#141#255 +#199#159#141#255#199#159#141#255#199#159#141#255#199#159#141#255'x`U'#255#1#1 +#1#255#0#0#0#255#0#0#0#255#0#0#0#255#18#14#13#255#199#159#141#255#199#159#141 +#255' '#26#23#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#1#0#255 +#139'oc'#255#199#159#141#255#199#159#141#255#199#159#141#255#199#159#141#255 +#199#159#141#255#199#159#141#255'^KC'#255#199#159#141#255#199#159#141#255#199 +#159#141#255#199#159#141#255#192#147#127#255'rB-'#249'\1 k'#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'\.'#28'Sn>('#243#194#149#131 ,#255#202#165#148#255#203#165#149#255#203#165#149#255#203#165#149#255#203#165 +#149#255#203#165#149#255#203#165#149#255#169#138'|'#255#0#0#0#255#1#1#1#255 +#16#13#11#255#23#19#17#255#171#139'~'#255#203#165#149#255#203#165#149#255#3#3 +#2#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#0#0#255'*"'#31#255#203#165 +#149#255#203#165#149#255#203#165#149#255#203#165#149#255#203#165#149#255#203 +#165#149#255#203#165#149#255#203#165#149#255#203#165#149#255#203#165#149#255 +#203#165#149#255#201#162#145#255#163'mU'#255'_3'#31#227'U'#0#0#3#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'a3'#30#213#153 +'eM'#254#204#167#151#255#207#172#158#255#207#172#158#255#207#172#158#255#207 +#172#158#255#207#172#158#255#207#172#158#255#205#170#156#255#0#0#0#255'<1.' +#255#207#172#158#255#207#172#158#255#207#172#158#255#207#172#158#255#207#172 +#158#255#20#16#15#255#1#0#0#255#0#0#0#255#0#0#0#255#1#0#0#255'?40'#255#207 +#172#158#255#207#172#158#255#207#172#158#255#207#172#158#255#207#172#158#255 +#207#172#158#255#207#172#158#255#207#172#158#255#207#172#158#255#207#172#158 +#255#207#172#158#255#207#171#156#255#192#147#127#255'k<'''#244'Z.'#29'L'#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +'^/'#27'&b5!'#240#174'{f'#255#209#176#162#255#212#180#167#255#212#180#167#255 +#212#180#167#255#212#180#167#255#212#180#167#255#212#180#167#255#6#5#5#255 +#179#151#140#255#212#180#167#255#212#180#167#255#212#180#167#255#212#180#167 +#255#212#180#167#255#212#180#167#255'gXR'#255#0#0#0#255#0#0#0#255'gXR'#255 +#212#180#167#255#212#180#167#255#212#180#167#255#212#180#167#255#212#180#167 +#255#212#180#167#255#212#180#167#255#212#180#167#255#212#180#167#255#212#180 +#167#255#212#180#167#255#211#179#166#255#202#162#146#255#127'M7'#248'`2'#31 +#169#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0'[/'#26'Fg:#'#242#190#145#127#255#214#184#172#255#216 +#187#176#255#216#187#176#255#216#187#176#255#216#187#176#255#216#187#176#255 +'k]X'#255#216#187#176#255#216#187#176#255#216#187#176#255#216#187#176#255#216 +#187#176#255#216#187#176#255#216#187#176#255'E<8'#255#0#0#0#255'>63'#255#216 +#187#176#255#216#187#176#255#216#187#176#255#216#187#176#255#216#187#176#255 +#216#187#176#255#216#187#176#255#216#187#176#255#216#187#176#255#216#187#176 +#255#216#187#176#255#216#187#175#255#210#176#163#255#147'_H'#252'`4'#31#210 +'U++'#6#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'\0'#29'trB-'#242#198#157#140#255#218#191 +#180#255#221#195#185#255#221#195#185#255#221#195#185#255#221#195#185#255#221 +#195#185#255#221#195#185#255#221#195#185#255#221#195#185#255#221#195#185#255 +#221#195#185#255#221#195#185#255#221#195#185#255',''%'#255'920'#255#221#195 +#185#255#221#195#185#255#221#195#185#255#221#195#185#255#221#195#185#255#221 +#195#185#255#221#195#185#255#221#195#185#255#221#195#185#255#221#195#185#255 +#221#195#185#255#220#194#184#255#213#183#170#255#162'oW'#255'b5 '#232'].'#23 +#22#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'_1'#30#138'l>)'#242#187#143'|' +#255#221#196#186#255#225#202#193#255#225#203#194#255#225#203#194#255#225#203 +#194#255#225#203#194#255#225#203#194#255#225#203#194#255#225#203#194#255#225 +#203#194#255#225#203#194#255#225#203#194#255#225#203#194#255#225#203#194#255 +#225#203#194#255#225#203#194#255#225#203#194#255#225#203#194#255#225#203#194 +#255#225#203#194#255#225#203#194#255#225#203#194#255#225#203#194#255#225#203 +#194#255#224#201#192#255#212#180#168#255#149'aK'#252'a5!'#230']2'#25')'#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#28'\d9$'#241#172 +'|h'#255#222#197#187#255#228#206#200#255#230#209#203#255#230#209#203#255#230 +#209#203#255#230#209#203#255#230#209#203#255#230#209#203#255#230#209#203#255 +#230#209#203#255#230#209#203#255#230#209#203#255#230#209#203#255#230#209#203 +#255#230#209#203#255#230#209#203#255#230#209#203#255#230#209#203#255#230#209 +#203#255#230#209#203#255#230#209#203#255#229#209#202#255#226#204#197#255#208 +#173#159#255#131'R;'#245'a3'#31#207'Y3'#26#20#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'].'#28'7a5!'#236#137'WB'#248#201 +#163#148#255#229#210#202#255#233#215#210#255#234#217#212#255#234#217#212#255 +#234#217#212#255#234#217#212#255#234#217#212#255#234#217#212#255#234#217#212 +#255#234#217#212#255#234#217#212#255#234#217#212#255#234#217#212#255#234#217 +#212#255#234#217#212#255#234#217#212#255#234#217#212#255#234#216#211#255#231 +#212#206#255#221#195#185#255#174#128'm'#255'm>*'#242'`1'#29#163'f33'#5#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0'b'''#20#13'`2'#29#140'd8$'#241#151'hR'#251#211#179#167#255#233#215 +#210#255#236#220#215#255#237#222#219#255#238#225#221#255#238#225#221#255#238 +#225#221#255#238#225#221#255#238#225#221#255#238#225#221#255#238#225#221#255 +#238#225#221#255#238#225#221#255#238#223#220#255#236#221#217#255#234#219#213 +#255#227#205#198#255#188#146#128#255'wH2'#242'b5 '#219'].'#27'B'#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'X1'#29#26'a3'#30#168'f:$'#242#134'T?' +#246#179#136'v'#255#214#183#172#255#235#218#214#255#238#225#221#255#239#226 +#223#255#240#227#224#255#240#227#225#255#240#227#225#255#239#226#223#255#239 +#225#222#255#238#224#220#255#226#204#196#255#199#161#145#255#158'o['#254'rD-' +#239'b4"'#232'^2'#30'\'#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0'`+ '#24']/'#30'fd6#'#197'c8#'#243'vE0'#240#140'ZF' +#247#156'mY'#255#171#127'm'#255#184#143#127#255#178#136'v'#255#164'wd'#255 +#148'dP'#252#130'Q;'#243'l<('#239'b6"'#234'b5!'#151'Z-'#29'>UU'#0#3#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0'].'#23#11'Z/'#29'G^4 fa4!'#130'd6!'#166'd7#'#194 +'d7"'#182'c6"'#150'_3'#31's\0'#29'YY/'#30'+'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#224#3#255#255#255 +#255#255#254#0#0#127#255#255#255#255#248#0#0#31#255#255#255#255#224#0#0#7#255 +#255#255#255#192#0#0#3#255#255#255#255#128#0#0#1#255#255#255#255#0#0#0#0#127 +#255#255#254#0#0#0#0#127#255#255#252#0#0#0#0'?'#255#255#248#0#0#0#0#31#255 +#255#240#0#0#0#0#15#255#255#240#0#0#0#0#15#255#255#224#0#0#0#0#7#255#255#224 +#0#0#0#0#3#255#255#192#0#0#0#0#3#255#255#192#0#0#0#0#3#255#255#192#0#0#0#0#1 +#255#255#128#0#0#0#0#1#255#255#128#0#0#0#0#1#255#255#128#0#0#0#0#1#255#255 +#128#0#0#0#0#1#255#255#128#0#0#0#0#0#255#255#128#0#0#0#0#0#255#255#128#0#0#0 +#0#0#255#255#128#0#0#0#0#0#255#255#128#0#0#0#0#1#255#255#128#0#0#0#0#1#255 +#255#128#0#0#0#0#1#255#255#128#0#0#0#0#1#255#255#192#0#0#0#0#1#255#255#192#0 +#0#0#0#3#255#255#192#0#0#0#0#3#255#255#224#0#0#0#0#7#255#255#224#0#0#0#0#7 +#255#255#224#0#0#0#0#15#255#255#240#0#0#0#0#15#255#255#248#0#0#0#0#31#255#255 +#248#0#0#0#0'?'#255#255#252#0#0#0#0'?'#255#255#254#0#0#0#0#127#255#255#255#0 +#0#0#0#255#255#255#255#128#0#0#1#255#255#255#255#192#0#0#3#255#255#255#255 +#224#0#0#15#255#255#255#255#248#0#0#31#255#255#255#255#254#0#0#127#255#255 +#255#255#255#192#7#255#255#255#255#255#255#255#255#255#255#255#255'('#0#0#0 +' '#0#0#0'@'#0#0#0#1#0' '#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2'CCC'#19'FFF'#22'UUU'#3#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0'@@@'#12'EAAGDDB'#133'DDC'#181'HC?'#205'LA;'#213 +'JB='#212'FC@'#204'EED'#185'DDC'#145'DDDSFFF'#22#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'III'#14'EEBoLA;'#208'eE-'#235'xK(' +#246#131'R)'#250#139'W*'#251#149'_,'#252#145'\+'#252#136'V*'#250#128'Q('#249 +'rI)'#244'\D2'#227'FB?'#207'CCC'#134'DDD'#30#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0'EEENMA9'#206'oF)'#245#147']-'#252#187'}4'#255#211#150'9'#255#224 +#167';'#255#230#174'='#255#234#179'>'#255#233#178'>'#255#228#171'='#255#221 +#163'<'#255#205#143'8'#255#175'r2'#255#131'R*'#250'eC,'#238'FB?'#205'CCCoUUU' +#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0'@@@'#4'GEA|dB+'#239#142'[.'#252#198#137'<'#255#227#172'C'#255 +#236#183'E'#255#242#190'F'#255#246#195'G'#255#248#198'G'#255#249#199'H'#255 +#249#198'H'#255#247#196'G'#255#245#193'G'#255#240#188'F'#255#234#180'D'#255 +#220#163'A'#255#183'y8'#255'}O*'#250'WA4'#225'CCC'#152'<<<'#17#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1'G@='#148 +'lD*'#245#175'u8'#254#221#166'I'#255#234#182'M'#255#242#193'P'#255#243#194'O' +#255#244#195'O'#255#244#195'P'#255#244#195'P'#255#244#195'P'#255#244#195'P' +#255#244#195'P'#255#244#195'P'#255#243#194'O'#255#243#194'O'#255#240#190'O' +#255#230#179'L'#255#212#155'F'#255#148'^1'#252'`A.'#234'CCC'#171'@@@'#12#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'FA>vmB)'#247#189 +#130'A'#255#224#172'P'#255#236#187'U'#255#238#189'W'#255#238#190'V'#255#238 +#190'V'#255#238#190'V'#255'fQ%'#255#17#14#6#255#17#13#6#255#16#13#6#255',#' +#16#255#155'|8'#255#238#190'V'#255#238#190'V'#255#238#189'V'#255#238#189'W' +#255#233#184'U'#255#217#163'M'#255#164'l8'#254'_>+'#238'DDD'#147#128#128#128 +#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'FDD=e?*'#243#183'}B'#255 +#223#171'W'#255#232#183'['#255#232#183'\'#255#232#183'\'#255#232#183'\'#255 +#232#183'\'#255'>1'#25#255#1#1#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 +#1#1#1#255#5#4#2#255#22#17#9#255'pX,'#255#218#171'V'#255#232#183'\'#255#230 +#182'['#255#217#164'T'#255#152'a7'#252'V=1'#228'DDDb'#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#128#128#128#2'Z<-'#215#163'k='#254#217#166'['#255#226#178'`' +#255#226#179'a'#255#226#179'a'#255#226#179'a'#255#226#179'a'#255#226#179'a' +#255#5#4#2#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#3#3#1#255',#'#19#255#226#179'a'#255#225#177'_' +#255#208#154'T'#255#129'O1'#251'H?;'#205'@@@'#20#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0'J@<[vF,'#249#206#153'Y'#255#220#172'b'#255#220#172'c'#255#220#172'c'#255 +#220#172'c'#255#220#172'c'#255#220#172'c'#255#205#160']'#255#4#3#2#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#1#0#0#255'.$'#21#255#220#172'c'#255#218#170'a'#255#190#132 +'N'#255'c=)'#242'CCCz'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'\9('#218#177'vG'#255 +#213#164'c'#255#214#166'e'#255#214#166'e'#255#214#166'e'#255#214#166'e'#255 +#214#166'e'#255#214#166'e'#255#214#166'e'#255'v\8'#255#2#2#1#255#0#0#0#255#0 +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#11#9#5#255#214#166'e'#255#214#166'e'#255#209#159'a'#255#139'Y' +'6'#252'K>7'#206'333'#5#0#0#0#0#0#0#0#0'?;9'#19'mA+'#247#201#148'^'#255#209 +#159'e'#255#209#159'e'#255#209#159'e'#255#146'oF'#255#18#14#9#255#21#16#10 +#255'O<&'#255#209#159'e'#255#209#159'e'#255'$'#27#17#255#0#0#0#255#0#0#0#255 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#11#8#5#255#209#159'e'#255#209#159'e'#255#208#158'e'#255#185#128'Q'#255 +'^9)'#240'BBB6'#0#0#0#0#0#0#0#0'P8-q'#144'Z:'#252#201#150'd'#255#202#151'd' +#255#202#151'd'#255'uW:'#255#2#1#1#255#0#0#0#255#0#0#0#255#1#0#0#255'-!'#22 +#255#202#151'd'#255'ZC-'#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 +#255#0#0#0#255#0#0#0#255#0#0#0#255#1#1#0#255#5#4#3#255'gM3'#255#202#151'd' +#255#202#151'd'#255#202#151'd'#255#197#145'`'#255'l@*'#248'CCBo'#0#0#0#0#0#0 +#0#0'^7$'#194#171'pK'#255#194#140'a'#255#194#140'a'#255#194#140'a'#255#6#4#3 +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#7#5#4#255#194#140'a'#255#139'eE' +#255#1#1#1#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#13 +#9#6#255'wV<'#255#192#138'a'#255#194#140'a'#255#194#140'a'#255#194#140'a'#255 +#194#140'a'#255#193#140'a'#255#137'T7'#252'K=6'#158#0#0#0#0#0#0#0#0'a6#'#220 +#177'uQ'#255#185#129'['#255#185#129'['#255#127'Y>'#255#1#1#0#255#0#0#0#255#0 +#0#0#255#0#0#0#255#2#1#1#255'8'''#27#255#185#129'['#255#185#129'['#255'+'#30 +#21#255#2#1#1#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#13#9#6#255#179'}Y' +#255#185#129'['#255#185#129'['#255#185#129'['#255#185#129'['#255#185#129'[' +#255#185#129'['#255#185#129'['#255#152'^>'#255'P:1'#190#0#0#0#0#0#0#0#0'c7#' +#227#175'sS'#255#178'xW'#255#178'xW'#255','#30#21#255#0#0#0#255#0#0#0#255#0#0 +#0#255#5#4#3#255'uO:'#255#178'xW'#255#178'xW'#255#178'xW'#255#178'xW'#255'xP' +':'#255'('#26#19#255#10#7#5#255#10#7#5#255#28#19#13#255#168'rS'#255#163'nO' +#255#25#17#12#255#6#4#3#255#17#11#8#255'bB/'#255#178'xW'#255#178'xW'#255#178 +'xW'#255#158'aB'#255'V9,'#210#0#0#0#0#0#0#0#0'f7"'#227#173'sT'#255#175'tW' +#255#175'tW'#255#15#10#7#255#13#8#6#255#5#4#3#255'+'#29#21#255#169'pU'#255 +#175'tW'#255#175'tW'#255#175'tW'#255#175'tW'#255#175'tW'#255#175'tW'#255#175 +'tW'#255#175'tW'#255#175'tW'#255#175'tW'#255#175'tW'#255#17#11#8#255#0#0#0 +#255#0#0#0#255#0#0#0#255#2#2#1#255#136'ZD'#255#175'tW'#255#175'tW'#255#161'd' +'G'#255'[8('#211#0#0#0#0#0#0#0#0'e6"'#218#171'nR'#255#173'qV'#255#173'qV'#255 +#136'YC'#255#173'qV'#255#173'qV'#255#173'qV'#255#173'qV'#255#173'qV'#255'sK9' +#255'uM:'#255#159'gN'#255#173'qV'#255#173'qV'#255#173'qV'#255#173'qV'#255#173 +'qV'#255#173'qV'#255#173'qV'#255'5"'#27#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0 +#0#255'H/$'#255#173'qV'#255#173'qV'#255#153'^D'#255'Y8*'#188#0#0#0#0#0#0#0#0 +'c5 '#203#170'kQ'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY' ,#255#174'sY'#255#164'mU'#255#11#7#6#255#1#1#1#255#1#1#1#255#5#3#2#255#127'TA' +#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255#174'sY'#255 +#128'UA'#255#2#1#1#255#0#0#0#255#0#0#0#255#0#0#0#255'J1&'#255#174'sY'#255#174 +'sY'#255#147'X?'#255'S8,'#140#0#0#0#0#0#0#0#0'd4'#30#153#162'gM'#255#178'{c' +#255#178'{c'#255#178'{c'#255#178'{c'#255#178'{c'#255#178'{c'#255'A-$'#255#0#0 +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#20#14#11#255'xSB'#255#6#4#3#255#5#4#3 +#255#18#12#10#255#170'u_'#255#178'{c'#255#178'{c'#255#9#6#5#255#0#0#0#255#0#0 +#0#255#3#2#2#255#166's]'#255#178'{c'#255#178'{c'#255#131'P8'#252'S3$>'#0#0#0 +#0#0#0#0#0'[/'#27'3'#137'T='#247#184#134'o'#255#184#134'o'#255#184#134'o'#255 +#184#134'o'#255#184#134'o'#255#184#134'o'#255#14#10#9#255#0#0#0#255#0#0#0#255 +#0#0#0#255#1#1#1#255'\C7'#255#14#10#8#255#0#0#0#255#0#0#0#255#0#0#0#255#14#10 +#8#255#184#134'o'#255#184#134'o'#255'xWI'#255#2#1#1#255#0#0#0#255#18#14#11 +#255#184#134'o'#255#184#134'o'#255#183#131'l'#255'h:&'#240#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0'n<%'#218#189#140'x'#255#190#143'z'#255#190#143'z'#255#190#143 +'z'#255#190#143'z'#255#190#143'z'#255',!'#28#255#0#0#0#255#0#0#0#255#0#0#0 +#255#9#7#6#255#190#143'z'#255#9#7#6#255#0#0#0#255#0#0#0#255#0#0#0#255#5#4#3 +#255#190#143'z'#255#190#143'z'#255#190#143'z'#255#159'xe'#255#0#0#0#255#140 +'jZ'#255#190#143'z'#255#190#143'z'#255#175'yc'#255'b6"'#193#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0'd4'#30#151#167's\'#254#196#154#135#255#196#154#135#255#196#154 +#135#255#196#154#135#255#196#154#135#255'qYN'#255#0#0#0#255#0#0#0#255#1#1#1 +#255'v]R'#255#194#152#133#255#5#4#4#255#0#0#0#255#0#0#0#255#0#0#0#255#10#8#7 +#255#196#154#135#255#196#154#135#255#196#154#135#255#196#154#135#255'"'#27#24 +#255#196#154#135#255#196#154#135#255#196#154#135#255#131'R<'#248'^1'#28'1'#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27#14'o>('#224#198#157#140#255#202#163#146 +#255#202#163#146#255#202#163#146#255#202#163#146#255#170#138'{'#255#0#0#0#255 +#8#6#6#255#26#21#19#255#202#163#146#255#143'th'#255#1#1#1#255#0#0#0#255#0#0#0 +#255#2#2#2#255#143'sg'#255#202#163#146#255#202#163#146#255#202#163#146#255 +#202#163#146#255#191#155#138#255#202#163#146#255#202#163#146#255#183#135'r' +#255'd5 '#193#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'd3'#30'{'#156 +'jS'#248#209#174#160#255#209#174#160#255#209#174#160#255#209#174#160#255#209 +#174#160#255#2#2#2#255#205#172#158#255#209#174#160#255#209#174#160#255#169 +#140#129#255#11#9#9#255#1#1#0#255#4#3#3#255#132'oe'#255#209#174#160#255#209 +#174#160#255#209#174#160#255#209#174#160#255#209#174#160#255#209#174#160#255 +#209#174#160#255#205#167#152#255'yG3'#235'[/'#27'"'#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'd4'#30#181#179#134'r'#254#215#185#173#255#215 +#185#173#255#215#185#173#255#215#185#173#255'm^X'#255#215#185#173#255#215#185 +#173#255#215#185#173#255#215#185#173#255#133'sk'#255#0#0#0#255#156#134'}'#255 +#215#185#173#255#215#185#173#255#215#185#173#255#215#185#173#255#215#185#173 +#255#215#185#173#255#215#185#173#255#214#183#172#255#143'^I'#243'b3'#29'`'#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27#8'f6 ' +#205#189#148#131#254#222#197#187#255#222#197#187#255#222#197#187#255#222#197 +#187#255#222#197#187#255#222#197#187#255#222#197#187#255#222#197#187#255#127 +'qk'#255#134'wq'#255#222#197#187#255#222#197#187#255#222#197#187#255#222#197 +#187#255#222#197#187#255#222#197#187#255#222#197#187#255#220#193#183#255#159 +'o['#247'd3'#30#147#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0'[/'#27#15'c3'#30#193#176#132'q'#248#228#206#199#255 +#228#208#201#255#228#208#201#255#228#208#201#255#228#208#201#255#228#208#201 +#255#228#208#201#255#228#208#201#255#228#208#201#255#228#208#201#255#228#208 +#201#255#228#208#201#255#228#208#201#255#228#208#201#255#228#208#201#255#221 +#196#186#255#141']I'#237'c3'#29#129#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27#2'c3'#29#150 +#135'XD'#231#208#176#164#255#235#219#215#255#235#219#215#255#235#219#215#255 +#235#219#215#255#235#219#215#255#235#219#215#255#235#219#215#255#235#219#215 +#255#235#219#215#255#235#219#215#255#235#219#215#255#232#214#209#255#189#149 +#133#253'qA+'#220'a2'#29'O'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27 +'"e4'#30#185#144'cO'#235#195#158#144#254#230#209#203#255#242#231#229#255#242 +#231#229#255#242#231#229#255#242#231#229#255#242#231#229#255#241#230#226#255 +#220#193#184#255#180#141'|'#251'zK6'#226'd3'#30#142'[/'#27#10#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27#28'b3'#29'{g5'#30 +#198'xH2'#218#137']J'#229#156'r`'#236#151'mZ'#234#132'VB'#227'q?)'#213'f4'#30 +#182'_1'#28'W[/'#27#11#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27#5'[/' +#27#30'[/'#27#22'[/'#27#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#252'?'#255 +#255#192#3#255#255#0#0#255#254#0#0'?'#248#0#0#31#240#0#0#15#240#0#0#7#224#0#0 +#7#192#0#0#3#192#0#0#3#192#0#0#1#128#0#0#1#128#0#0#1#128#0#0#1#128#0#0#1#128 +#0#0#1#128#0#0#1#128#0#0#1#128#0#0#1#128#0#0#1#128#0#0#3#192#0#0#3#192#0#0#3 +#192#0#0#7#224#0#0#7#240#0#0#15#240#0#0#31#248#0#0'?'#252#0#0#127#255#0#0#255 +#255#192#3#255#255#252'?'#255'('#0#0#0#16#0#0#0' '#0#0#0#1#0' '#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +';;;'#13'ICB7M=4zL>6xFBA;@@@'#16#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0'III'#7'W;,'#171'nC('#245#145'`+'#250#181#127'2'#253#175 +'z1'#253#139'\*'#250'h?&'#244'P=3'#159'@@@'#12#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0'K921d;'''#235#191#137'7'#254#249#198'E'#255#251#199'F'#255#251#200 +'F'#255#251#200'F'#255#251#199'F'#255#246#194'E'#255#173'y3'#253'\9)'#229'E>' +';2'#0#0#0#0#0#0#0#0#0#0#0#0'>2,'#7'nC'''#238#223#171'N'#255#239#191'U'#255 +#240#192'U'#255#164#131':'#255'@3'#23#255'J;'#26#255'~e-'#255#196#157'E'#255 +#239#191'U'#255#212#159'J'#255'a<('#231'MMM'#10#0#0#0#0#0#0#0#0'[7('#183#195 +#145'N'#254#228#180'_'#255#228#180'_'#255#228#180'_'#255'40'#255#210#176#163#255 +#148'|s'#255'RD?'#255#210#176#163#255#140'fW'#243'[/'#27#2#0#0#0#0'tI6'#209 +#216#188#178#255#221#195#185#255#213#188#178#255'$'#31#30#255#131'sn'#255'sf' +'`'#255#0#0#0#255'eYU'#255#221#195#185#255#221#195#185#255#204#180#170#255 +#207#178#166#255'k>+'#182#0#0#0#0#0#0#0#0'[/'#27#31#156'xi'#240#232#213#207 +#255#232#213#207#255#180#165#161#255#232#213#207#255#182#167#162#255'ICA'#255 +#226#207#201#255#232#213#207#255#232#213#207#255#231#213#206#255#134'_O'#233 +'[/'#27#12#0#0#0#0#0#0#0#0#0#0#0#0'd3'#30'e'#171#139'~'#240#239#226#224#255 +#242#231#229#255#242#231#229#255#240#229#227#255#242#231#229#255#242#231#229 +#255#242#231#229#255#235#221#216#255#153'uh'#236'a2'#29'?'#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0'\0'#27'*'#131'\I'#215#212#191#183#252#239#229#226#255 +#253#250#252#255#253#249#250#255#236#223#220#255#204#180#172#250'yM;'#196'[/' +#27#23#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'[/'#27#3'[/' +#27'>c3'#29#131'uI4'#190'oA-'#183'b2'#29'v[/'#27'4'#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#248#31#172'A'#224#7#172'A'#192#3#172'A'#128#1#172'A'#128#1#172 +'A'#0#0#172'A'#0#0#172'A'#0#0#172'A'#0#0#172'A'#0#0#172'A'#0#0#172'A'#128#1 +#172'A'#128#1#172'A'#192#3#172'A'#224#7#172'A'#240#31#172'A' ]); ./folder.png0000644000175000017500000000110514576573022013126 0ustar anthonyanthonyPNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDAT81kQsW,)2v._?VW(Ĺ`Y)$Pi&%߽&6XZw9{yy_v7 w2 nY33 w~?t:ϗ9gBe8~T9gWU& $vxLӪ+bfkvܤjc$h4b<?\YPUS-~H̚??́={U9gO)1m!rx5)_;9x~J)N ˲|@+U%猈u#j9xs3DظiQ ATc;YuiIjAbR7 inPEar6_TRJ/sN ggD FNuk"ERR;'|:uxlQew"E‹G!c1IENDB`./textfileviewer.lrs0000644000175000017500000002054714576573022014750 0ustar anthonyanthony{ This is an automatically generated lazarus resource file } LazarusResources.Add('TTextFileViewerForm','FORMDATA',[ 'TPF0'#19'TTextFileViewerForm'#18'TextFileViewerForm'#4'Left'#3#30#2#6'Height' +#3#14#2#3'Top'#3#187#0#5'Width'#3#162#2#7'Caption'#6#16'text file viewer'#12 +'ClientHeight'#3#14#2#11'ClientWidth'#3#162#2#8'Position'#7#14'poScreenCente' +'r'#10'LCLVersion'#6#7'2.3.0.0'#0#244#8'TSynMemo'#8'SynMemo1'#22'AnchorSideL' +'eft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#23'AnchorSideR' +'ight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorS' +'ideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBottom'#6'Cu' +'rsor'#7#7'crIBeam'#4'Left'#2#0#6'Height'#3#14#2#3'Top'#2#0#5'Width'#3#162#2 +#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#11'Font.Height'#2 +#243#9'Font.Name'#6#11'Courier New'#10'Font.Pitch'#7#7'fpFixed'#12'Font.Qual' +'ity'#7#16'fqNonAntialiased'#11'ParentColor'#8#10'ParentFont'#8#8'TabOrder'#2 +#0#14'Gutter.Visible'#8#12'Gutter.Width'#2'9'#19'Gutter.MouseActions'#14#0#10 +'Keystrokes'#14#1#7'Command'#7#4'ecUp'#8'ShortCut'#2'&'#0#1#7'Command'#7#7'e' +'cSelUp'#8'ShortCut'#3'& '#0#1#7'Command'#7#10'ecScrollUp'#8'ShortCut'#3'&@' +#0#1#7'Command'#7#6'ecDown'#8'ShortCut'#2'('#0#1#7'Command'#7#9'ecSelDown'#8 +'ShortCut'#3'( '#0#1#7'Command'#7#12'ecScrollDown'#8'ShortCut'#3'(@'#0#1#7'C' +'ommand'#7#6'ecLeft'#8'ShortCut'#2'%'#0#1#7'Command'#7#9'ecSelLeft'#8'ShortC' +'ut'#3'% '#0#1#7'Command'#7#10'ecWordLeft'#8'ShortCut'#3'%@'#0#1#7'Command'#7 +#13'ecSelWordLeft'#8'ShortCut'#3'%`'#0#1#7'Command'#7#7'ecRight'#8'ShortCut' +#2''''#0#1#7'Command'#7#10'ecSelRight'#8'ShortCut'#3''' '#0#1#7'Command'#7#11 +'ecWordRight'#8'ShortCut'#3'''@'#0#1#7'Command'#7#14'ecSelWordRight'#8'Short' +'Cut'#3'''`'#0#1#7'Command'#7#10'ecPageDown'#8'ShortCut'#2'"'#0#1#7'Command' +#7#13'ecSelPageDown'#8'ShortCut'#3'" '#0#1#7'Command'#7#12'ecPageBottom'#8'S' +'hortCut'#3'"@'#0#1#7'Command'#7#15'ecSelPageBottom'#8'ShortCut'#3'"`'#0#1#7 +'Command'#7#8'ecPageUp'#8'ShortCut'#2'!'#0#1#7'Command'#7#11'ecSelPageUp'#8 +'ShortCut'#3'! '#0#1#7'Command'#7#9'ecPageTop'#8'ShortCut'#3'!@'#0#1#7'Comma' +'nd'#7#12'ecSelPageTop'#8'ShortCut'#3'!`'#0#1#7'Command'#7#11'ecLineStart'#8 +'ShortCut'#2'$'#0#1#7'Command'#7#14'ecSelLineStart'#8'ShortCut'#3'$ '#0#1#7 +'Command'#7#11'ecEditorTop'#8'ShortCut'#3'$@'#0#1#7'Command'#7#14'ecSelEdito' +'rTop'#8'ShortCut'#3'$`'#0#1#7'Command'#7#9'ecLineEnd'#8'ShortCut'#2'#'#0#1#7 +'Command'#7#12'ecSelLineEnd'#8'ShortCut'#3'# '#0#1#7'Command'#7#14'ecEditorB' +'ottom'#8'ShortCut'#3'#@'#0#1#7'Command'#7#17'ecSelEditorBottom'#8'ShortCut' +#3'#`'#0#1#7'Command'#7#12'ecToggleMode'#8'ShortCut'#2'-'#0#1#7'Command'#7#6 +'ecCopy'#8'ShortCut'#3'-@'#0#1#7'Command'#7#7'ecPaste'#8'ShortCut'#3'- '#0#1 +#7'Command'#7#12'ecDeleteChar'#8'ShortCut'#2'.'#0#1#7'Command'#7#5'ecCut'#8 +'ShortCut'#3'. '#0#1#7'Command'#7#16'ecDeleteLastChar'#8'ShortCut'#2#8#0#1#7 +'Command'#7#16'ecDeleteLastChar'#8'ShortCut'#3#8' '#0#1#7'Command'#7#16'ecDe' +'leteLastWord'#8'ShortCut'#3#8'@'#0#1#7'Command'#7#6'ecUndo'#8'ShortCut'#4#8 +#128#0#0#0#1#7'Command'#7#6'ecRedo'#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#7 +#11'ecLineBreak'#8'ShortCut'#2#13#0#1#7'Command'#7#11'ecSelectAll'#8'ShortCu' +'t'#3'A@'#0#1#7'Command'#7#6'ecCopy'#8'ShortCut'#3'C@'#0#1#7'Command'#7#13'e' +'cBlockIndent'#8'ShortCut'#3'I`'#0#1#7'Command'#7#11'ecLineBreak'#8'ShortCut' +#3'M@'#0#1#7'Command'#7#12'ecInsertLine'#8'ShortCut'#3'N@'#0#1#7'Command'#7 +#12'ecDeleteWord'#8'ShortCut'#3'T@'#0#1#7'Command'#7#15'ecBlockUnindent'#8'S' +'hortCut'#3'U`'#0#1#7'Command'#7#7'ecPaste'#8'ShortCut'#3'V@'#0#1#7'Command' +#7#5'ecCut'#8'ShortCut'#3'X@'#0#1#7'Command'#7#12'ecDeleteLine'#8'ShortCut'#3 +'Y@'#0#1#7'Command'#7#11'ecDeleteEOL'#8'ShortCut'#3'Y`'#0#1#7'Command'#7#6'e' +'cUndo'#8'ShortCut'#3'Z@'#0#1#7'Command'#7#6'ecRedo'#8'ShortCut'#3'Z`'#0#1#7 +'Command'#7#13'ecGotoMarker0'#8'ShortCut'#3'0@'#0#1#7'Command'#7#13'ecGotoMa' +'rker1'#8'ShortCut'#3'1@'#0#1#7'Command'#7#13'ecGotoMarker2'#8'ShortCut'#3'2' +'@'#0#1#7'Command'#7#13'ecGotoMarker3'#8'ShortCut'#3'3@'#0#1#7'Command'#7#13 +'ecGotoMarker4'#8'ShortCut'#3'4@'#0#1#7'Command'#7#13'ecGotoMarker5'#8'Short' +'Cut'#3'5@'#0#1#7'Command'#7#13'ecGotoMarker6'#8'ShortCut'#3'6@'#0#1#7'Comma' +'nd'#7#13'ecGotoMarker7'#8'ShortCut'#3'7@'#0#1#7'Command'#7#13'ecGotoMarker8' +#8'ShortCut'#3'8@'#0#1#7'Command'#7#13'ecGotoMarker9'#8'ShortCut'#3'9@'#0#1#7 +'Command'#7#12'ecSetMarker0'#8'ShortCut'#3'0`'#0#1#7'Command'#7#12'ecSetMark' +'er1'#8'ShortCut'#3'1`'#0#1#7'Command'#7#12'ecSetMarker2'#8'ShortCut'#3'2`'#0 +#1#7'Command'#7#12'ecSetMarker3'#8'ShortCut'#3'3`'#0#1#7'Command'#7#12'ecSet' +'Marker4'#8'ShortCut'#3'4`'#0#1#7'Command'#7#12'ecSetMarker5'#8'ShortCut'#3 +'5`'#0#1#7'Command'#7#12'ecSetMarker6'#8'ShortCut'#3'6`'#0#1#7'Command'#7#12 +'ecSetMarker7'#8'ShortCut'#3'7`'#0#1#7'Command'#7#12'ecSetMarker8'#8'ShortCu' +'t'#3'8`'#0#1#7'Command'#7#12'ecSetMarker9'#8'ShortCut'#3'9`'#0#1#7'Command' +#7#12'EcFoldLevel1'#8'ShortCut'#4'1'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel' +'2'#8'ShortCut'#4'2'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel1'#8'ShortCut'#4 ,'3'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel1'#8'ShortCut'#4'4'#160#0#0#0#1#7 +'Command'#7#12'EcFoldLevel1'#8'ShortCut'#4'5'#160#0#0#0#1#7'Command'#7#12'Ec' +'FoldLevel6'#8'ShortCut'#4'6'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel7'#8'Sh' +'ortCut'#4'7'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel8'#8'ShortCut'#4'8'#160 +#0#0#0#1#7'Command'#7#12'EcFoldLevel9'#8'ShortCut'#4'9'#160#0#0#0#1#7'Comman' +'d'#7#12'EcFoldLevel0'#8'ShortCut'#4'0'#160#0#0#0#1#7'Command'#7#13'EcFoldCu' +'rrent'#8'ShortCut'#4'-'#160#0#0#0#1#7'Command'#7#15'EcUnFoldCurrent'#8'Shor' +'tCut'#4'+'#160#0#0#0#1#7'Command'#7#18'EcToggleMarkupWord'#8'ShortCut'#4'M' +#128#0#0#0#1#7'Command'#7#14'ecNormalSelect'#8'ShortCut'#3'N`'#0#1#7'Command' +#7#14'ecColumnSelect'#8'ShortCut'#3'C`'#0#1#7'Command'#7#12'ecLineSelect'#8 +'ShortCut'#3'L`'#0#1#7'Command'#7#5'ecTab'#8'ShortCut'#2#9#0#1#7'Command'#7 +#10'ecShiftTab'#8'ShortCut'#3#9' '#0#1#7'Command'#7#14'ecMatchBracket'#8'Sho' +'rtCut'#3'B`'#0#1#7'Command'#7#10'ecColSelUp'#8'ShortCut'#4'&'#160#0#0#0#1#7 +'Command'#7#12'ecColSelDown'#8'ShortCut'#4'('#160#0#0#0#1#7'Command'#7#12'ec' +'ColSelLeft'#8'ShortCut'#4'%'#160#0#0#0#1#7'Command'#7#13'ecColSelRight'#8'S' +'hortCut'#4''''#160#0#0#0#1#7'Command'#7#16'ecColSelPageDown'#8'ShortCut'#4 +'"'#160#0#0#0#1#7'Command'#7#18'ecColSelPageBottom'#8'ShortCut'#4'"'#224#0#0 +#0#1#7'Command'#7#14'ecColSelPageUp'#8'ShortCut'#4'!'#160#0#0#0#1#7'Command' +#7#15'ecColSelPageTop'#8'ShortCut'#4'!'#224#0#0#0#1#7'Command'#7#17'ecColSel' +'LineStart'#8'ShortCut'#4'$'#160#0#0#0#1#7'Command'#7#15'ecColSelLineEnd'#8 +'ShortCut'#4'#'#160#0#0#0#1#7'Command'#7#17'ecColSelEditorTop'#8'ShortCut'#4 +'$'#224#0#0#0#1#7'Command'#7#20'ecColSelEditorBottom'#8'ShortCut'#4'#'#224#0 +#0#0#0#12'MouseActions'#14#0#16'MouseTextActions'#14#0#15'MouseSelActions'#14 +#0#13'Lines.Strings'#1#6#0#0#19'VisibleSpecialChars'#11#8'vscSpace'#12'vscTa' +'bAtLast'#0#9'RightEdge'#3#0#4#10'ScrollBars'#7#10'ssAutoBoth'#26'SelectedCo' +'lor.BackPriority'#2'2'#26'SelectedColor.ForePriority'#2'2'#27'SelectedColor' +'.FramePriority'#2'2'#26'SelectedColor.BoldPriority'#2'2'#28'SelectedColor.I' +'talicPriority'#2'2'#31'SelectedColor.UnderlinePriority'#2'2'#31'SelectedCol' +'or.StrikeOutPriority'#2'2'#0#244#18'TSynGutterPartList'#22'SynLeftGutterPar' +'tList1'#0#15'TSynGutterMarks'#15'SynGutterMarks1'#5'Width'#2#24#12'MouseAct' +'ions'#14#0#0#0#20'TSynGutterLineNumber'#20'SynGutterLineNumber1'#5'Width'#2 +#17#12'MouseActions'#14#0#21'MarkupInfo.Background'#7#9'clBtnFace'#21'Markup' +'Info.Foreground'#7#6'clNone'#10'DigitCount'#2#2#30'ShowOnlyLineNumbersMulti' +'plesOf'#2#1#9'ZeroStart'#8#12'LeadingZeros'#8#0#0#17'TSynGutterChanges'#17 +'SynGutterChanges1'#5'Width'#2#4#12'MouseActions'#14#0#13'ModifiedColor'#4 +#252#233#0#0#10'SavedColor'#7#7'clGreen'#0#0#19'TSynGutterSeparator'#19'SynG' +'utterSeparator1'#5'Width'#2#2#12'MouseActions'#14#0#21'MarkupInfo.Backgroun' +'d'#7#7'clWhite'#21'MarkupInfo.Foreground'#7#6'clGray'#0#0#21'TSynGutterCode' +'Folding'#21'SynGutterCodeFolding1'#12'MouseActions'#14#0#21'MarkupInfo.Back' +'ground'#7#6'clNone'#21'MarkupInfo.Foreground'#7#6'clGray'#20'MouseActionsEx' +'panded'#14#0#21'MouseActionsCollapsed'#14#0#0#0#0#0#0 ]); ./freshreading.wav0000644000175000017500000011217614576573022014340 0ustar anthonyanthonyRIFFvWAVEfmt DXdataRD +>MX^_ []Q*C013@浡;.ɣݜG ` 4FvSB\_6^DWrKm;(`ȯ̠T߰ԿYpp)+)`ԍ1,U褋WE%9JHV]_\TG6" yȣsqRO6/A"PJZm_9_Y6OO@-IH.tv.Cn=V+ $7HRUE]``]UHK8$B͖k3ḑ*?BY-?NY)_x_yZcPA/n;Ĵިܡ_¹Qe "&6;GXT\_]VSJ:u&ɮ^ +,2v+X>MX^_)[QhCy1&ڈ˩JYUMSK  b4EMS+\_H^eWK;c(>Пť7 )1,|W? +>MX^_ [aQ'C213Cⵥ8+ɡݞF ` 4FxSA\_4^FWpKp;(^ʯǠY۰ֿZno)+*bԋ1-X椌ZG%9JGV]_\TG6" {ɣávoNI>^-?NY,_x_vZgPA/h6סaPe "*69GWT\_]VTJ9u&Ϯ` +,5s+Z>MX^_)[QeCy1&ڇ̩H[SORK  a4EKS,\_D^jWK;a(?ОťĠ4)6,WC +>MX^_ [`Q'C414Cᵧ6-ɢݞE c 4FtSD\_7^CWsKl;(bƯɠXݰӿ\ln)+'`ԍ0.Y植ZH%9JGV]_\TG6" zʣtqQM8/A!PMZj_;_Y9OL@-JF0rv.Co:S+ $7HRUF]_b]UHL8$E͓g7`ϧ(=AZ-?NY-_w_wZfPA/k8١dMh "'6MX^_&[QcC|1%ڈɩLZTMTI  b4EKS-\_G^fWK;g(CМ8)5,YB +>MX^_ [^Q)C214Cⵥ7-ɟݟF ` 4FuSC\_7^BWuKj;(aǯʠV߰ҿ\mq)+'_ԍ1,U餉XC&9JFV]_\TG6" wˣ¡srRO5/APMZj_=_Y:OL@-JJ,uv.Bp9P* $7HTUE]_b]UHL8$D͒g6cʧ-:?\-?NY,_y_uZhPA/l7֡aùRf "&6MX^_'[QdCz1&چʩKYTNTH f4EQS&\_D^hWK;e(@Оå5)1,{W./vector_utils.pas0000644000175000017500000000014014576573021014371 0ustar anthonyanthonyunit vector_utils; {$mode objfpc} interface uses Classes, SysUtils; implementation end. ./laz_synapse.pas0000644000175000017500000000077014576573021014210 0ustar anthonyanthony{ This file was automatically created by Lazarus. Do not edit! This source is only used to compile and install the package. } unit laz_synapse; interface uses asn1util, blcksock, clamsend, dnssend, ftpsend, ftptsend, httpsend, imapsend, ldapsend, mimeinln, mimemess, mimepart, nntpsend, pingsend, pop3send, slogsend, smtpsend, snmpsend, sntpsend, synachar, synacode, synacrypt, synadbg, synafpc, synaicnv, synaip, synamisc, synaser, synautil, synsock, tlntsend; implementation end. ./dattimecorrect.lfm0000644000175000017500000050143414576573021014667 0ustar anthonyanthonyobject dattimecorrectform: Tdattimecorrectform Left = 1993 Height = 607 Top = 75 Width = 708 Anchors = [] Caption = '.dat Time Correction' ClientHeight = 607 ClientWidth = 708 Constraints.MinHeight = 400 Constraints.MinWidth = 420 Icon.Data = { 3E08010000000100010080800000010020002808010016000000280000008000 0000000100000100200000000000000001006400000064000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000020000000200000003000000030000 0003000000020000000300000002000000010000000100000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000100000003000000060000000A0000 000D00000011000000160000001A0000001E0000002100000023000000240000 00230000002200000022000000210000001E0000001C00000018000000150000 00110000000E0000000B00000007000000040000000200000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000010000 000300000005000000090000000E000000150000001E00000027000000310000 003B000000440000004D000000550000005B0000006100000064000000650000 00650000006400000062000000600000005D00000058000000520000004B0000 00440000003D000000350000002B0000002100000019000000110000000B0000 0007000000040000000100000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000001000000050000000B0000 0015000000210000002E0000003E0000004E0000005E0000006D0000007A0000 008A000000940000009E000000A8000000AD000000B3000000B6000000B60000 00B6000000B7000000B5000000B3000000B0000000A9000000A60000009E0000 00950000008E0000008200000073000000640000005400000043000000340000 00280000001C0000001100000009000000040000000100000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000002000000090000001400000024000000380000 004E000000630000007A00000090000000A0000000B0000000BD000000C70000 00D1000000D7000000DD000000E2000000E4000000E7000000E9000000E90000 00E8000000EA000000E7000000E7000000E7000000E1000000E3000000DD0000 00D8000000D5000000CB000000C3000000B7000000A600000095000000820000 00700000005C0000004700000032000000210000001300000009000000020000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0002000000080000001100000020000000340000004D00000067000000810000 009B000000B0000000C1000000D3000000DB000000E5000000EC000000ED0000 00F3000000F5000000F7000000F9000000FA000000FB000000FC000000FC0000 00FB000000FD000000FC000000FC000000FC000000F9000000FA000000F80000 00F6000000F6000000F0000000EF000000E9000000DE000000D5000000C90000 00BA000000AA000000950000007B0000006300000049000000320000001F0000 0011000000070000000100000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000030000000B0000 00180000002B000000430000005D0000007900000097000000B1000000C60000 00DB000000E7000000ED000000F7000000F9000000FC000000FE000000FB0000 01FE000001FE000001FD010102FE000103FF010103FF010103FF010103FF0102 04FF000104FF010104FF010103FF000102FF000103FF000002FF000001FE0000 01FF000001FF000001FD000000FE000000FC000000F9000000F7000000F20000 00ED000000E4000000D5000000C3000000AD00000093000000770000005C0000 0041000000290000001600000009000000020000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000030000000A0000001A000000300000 004B0000006B0000008D000000AA000000C3000000D7000000E8000000F00000 00F9000000FD000000FB000000FF000001FE000002FE000002FF010103FF0101 04FF010105FF020206FF020308FF020409FF03040BFF04050DFF03060EFF0207 0DFF03060DFF03060DFF03050CFF03040AFF03050AFF030308FF030307FF0202 06FF010205FF000104FF000102FF000002FE000001FE000001FF000001FD0000 00FE000000FC000000F6000000F1000000E5000000D6000000C2000000A90000 008900000069000000490000002C000000160000000800000002000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000008000000180000002F0000004F000000740000 0099000000B9000000D1000000E4000000ED000000F3000000FB000101FD0001 03FE000204FF010306FF010204FF020205FF030206FF030308FF030308FF0404 0AFF05050CFF060610FF060613FF060714FF060817FF080D1EFF070F1FFF050C 1AFF070F1CFF060E1DFF070C1DFF080A1BFF070A18FF070914FF060710FF0606 0FFF05060FFF04050CFF030409FF020307FF020206FF020306FF010306FF0001 04FF000102FF000101FE000000FD000000F7000000F3000000EE000000E10000 00CF000000B7000000950000006F0000004B0000002C00000015000000060000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000005000000130000002B0000004C000000740000009B000000BB0000 00D5000000E8000000F1000000F9000001FC000102FE000205FF000408FF0007 0CFF020A14FF040C17FF04060DFF05050DFF07060EFF070710FF070711FF0A05 12FF0A0511FF0A0917FF0A0E20FF081025FF0A1329FF091329FF091228FF0B14 2BFF0B142CFF0A162EFF09122AFF090D23FF080E21FF080A1CFF0A0A1DFF0A0B 1DFF080A19FF080915FF060814FF060612FF050510FF040711FF040711FF0205 0DFF010409FF010306FF010103FF010001FE000000FD000000FB000000F60000 00F3000000E6000000D2000000B7000000950000006F0000004A0000002B0000 0013000000050000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000030000 000E00000024000000450000006B00000093000000B8000000D7000000E90000 00F4000000FC000102FD000204FE000408FF01060CFF020911FF03101CFF0210 1FFF040E1DFF070B19FF080614FF080613FF090716FF0A0919FF0A0818FF0D05 16FF0C0515FF0B0A1BFF0C1126FF0B152FFF0C1832FF0A152DFF09142DFF0B18 34FF0D1734FF0D1935FF0B1530FF0A1029FF0A1128FF090C22FF0B0D25FF0B0F 27FF0A0E24FF0A0B22FF0A0A1FFF090A1CFF090B1CFF0A0B1CFF090C1AFF080F 1DFF070E1CFF040914FF02050DFF020408FF020204FF010102FE000102FD0000 00FE000000FA000000F3000000E7000000D1000000B5000000920000006A0000 0041000000220000000D00000002000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000007000000180000 00350000005E00000088000000B1000000D3000000E7000000F7000001FC0001 02FD000305FF000509FF010911FF020D19FF04101EFF061223FF061B33FF071A 32FF080F24FF080514FF0C0617FF0C0719FF0B091EFF0B0A21FF0C081DFF0D07 1AFF0B081AFF0B0C1EFF0C1227FF0C142EFF0C1731FF0B1730FF091731FF091A 36FF0D1B37FF0D1935FF0C1631FF0C152FFF0D1430FF0C112AFF0B112AFF0B12 2BFF0D122BFF0B0E29FF0C0A24FF0C0D23FF0B1025FF0D0E24FF0C0F23FF0D18 2DFF0C172EFF080E22FF060D1DFF050A15FF04070FFF02050BFF010509FF0103 05FF000103FE000001FE000000FC000000F3000000E8000000D1000000AE0000 0084000000590000003200000015000000040000000100000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000020000000B00000023000000480000 0074000000A6000000CA000000E4000000F4000000FA000102FE000104FF0104 08FF020910FF030D18FF051527FF07192FFF091A33FF0A1A39FF0B1F3EFF0E1D 3AFF0D122AFF0A0519FF0C091AFF0E0B1DFF0F0C24FF0E0C26FF0C0A22FF0C0C 20FF0A0B1FFF0C0E23FF0F1229FF0B1229FF0B172FFF0C1934FF0C1B37FF0A1D 37FF0C1E39FF0D1935FF0D1633FF0D1835FF0F1A38FF0C1733FF0C152FFF0E14 2DFF10152BFF0C1224FF0D0B22FF0D0D26FF0D102BFF0C0F29FF0A122BFF0D1A 33FF0D1831FF091128FF0C162EFF081124FF070C1DFF050B19FF030B15FF0309 12FF02060CFF010306FF000102FF000001FB000000FB000000F2000000E10000 00C80000009F0000006F000000410000001E0000000900000001000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000500000014000000320000005D0000008D0000 00B9000000DB000000EF000000F9000001FD000102FF000306FF01070EFF030E 1AFF051527FF08172FFF08162FFF08152EFF0A1B37FF0E294DFF0C2243FF0A13 2BFF0C0A1CFF0E0A1BFF0C0A1AFF0C0A1CFF0C0B1FFF0C0C20FF0C0C21FF0D0D 24FF0B0C1FFF0B1021FF0D1529FF0C152BFF0C162EFF0D1630FF0E1732FF0C1A 35FF0B1934FF0B1835FF0B1836FF0B1937FF0C1938FF0A1735FF0B1733FF0C14 2DFF0D1126FF0D1125FF0E1026FF0D0D25FF0B0D24FF0C1026FF0B1029FF0C10 29FF0B102AFF0A1331FF0C1939FF0C1834FF09142DFF071126FF071023FF0513 26FF040F1EFF030813FF01040AFF010205FF000001FD000000FB000000F70000 00EE000000D6000000B400000086000000550000002B00000010000000020000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000080000001E0000004300000071000000A1000000CA0000 00E5000000F3000000FC000001FF010104FF020308FF030913FF071425FF081A 30FF07162FFF091027FF0C1028FF0C0E26FF0C0F28FF111532FF0B112CFF0B0C 24FF0D0B1EFF0D0B1BFF0B0A1AFF0D0C1DFF0D0B1EFF0C0D20FF0C1126FF0B0D 22FF0C0D20FF0D0F21FF0D1124FF0B1026FF0D1129FF0D1027FF0E1026FF0E13 2BFF0C1529FF0D172FFF0D1835FF0D1838FF0C1838FF0D1838FF0F1C39FF0D1B 35FF0A142DFF0B1632FF0D152EFF0D1025FF0D0E21FF0F1028FF0C0F2AFF0F12 2BFF0F152EFF0C1835FF101C3AFF0E1C39FF0A1934FF091931FF0B1B32FF0918 2FFF08152CFF061124FF030C1AFF020912FF020509FF000103FF000000FE0000 00FB000000F1000000E2000000C4000000980000006700000038000000170000 0005000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00010000000B000000240000004E00000082000000B3000000D7000000EE0000 00FA000001FC010103FF020205FF03030AFF050711FF081123FF0A1C36FF0C22 40FF0D1D3BFF0B0B21FF0E0B21FF0E0B21FF0E081FFF10071EFF0C081EFF0D0A 22FF0E0B22FF0C0B1CFF0C0A1BFF0F0C1DFF0F0E20FF0E1024FF0E1027FF0B0D 21FF0E0E22FF0F0E23FF0C0E22FF0C0D24FF0E0F27FF0E0D22FF0D0D21FF0F10 26FF0D1126FF0E142AFF0E1833FF0D1A39FF0D1837FF111A3AFF101E3BFF0D1D 38FF0B1934FF0C193AFF0C1733FF0D1328FF0E1124FF0F122BFF0E122EFF1014 2DFF10152CFF0E162EFF0F1833FF0F1C38FF0D1E3AFF0C203BFF0C213BFF0B19 34FF0B1A36FF091832FF071428FF071322FF050D18FF03070DFF010205FF0000 02FE000000FC000000F8000000EB000000D1000000A800000074000000440000 001F000000090000000100000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000020000 000E0000002B000000570000008C000000BF000000E4000000F4000000FB0000 01FF010104FF04040AFF05050EFF070612FF090B1CFF0D162CFF0C1B36FF0E21 3FFF132342FF0E0D24FF0E0B20FF0E0B21FF0F0A22FF0F0922FF0E0C21FF0E0B 22FF0E0A22FF0F0B20FF0F0A1EFF110B1DFF101021FF101226FF100D24FF0E0E 23FF100E24FF0F0F24FF0C0F24FF0E0F26FF0F1025FF0E0E23FF0E0E24FF1011 29FF0D102AFF0E102AFF0E1731FF0D1C38FF0E1733FF101B3AFF0D1A37FF0B19 34FF0D1A35FF0D1835FF0C162FFF0C142BFF0C1429FF0C142CFF0E1830FF0D13 2AFF0D0F25FF0E0F24FF0C1029FF101833FF101F3DFF0E2342FF0C2240FF0C19 37FF0C1D3CFF0C1D3AFF0B1931FF0C1B31FF0A162BFF060F1EFF040810FF0202 07FF000102FF000000FE000000FB000000F2000000DA000000B3000000820000 004F000000240000000A00000001000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000020000000F0000 002F0000006000000098000000C9000000E6000000F6000000FD010102FE0203 07FF02040BFF070914FF0A0B18FF0C0B1BFF0F0F25FF110F26FF121027FF100F 27FF0D0C25FF0D0B1EFF0E0B1CFF100B20FF110B22FF0E0B21FF0D0C20FF0F0B 21FF110C23FF110D24FF0F0C23FF0F0F20FF0E0D1EFF0E0D21FF121229FF0E12 26FF0F1122FF0F1023FF0F0F27FF0D0D22FF0E0C1EFF100D20FF100F24FF0E11 27FF0E1329FF0F1029FF10112EFF0F1533FF0B1531FF0B1531FF0C1632FF0C17 31FF0C162DFF0C1526FF0B1122FF0B1124FF0B1228FF0B132CFF0C1530FF0D16 30FF0F142CFF101128FF0F1229FF0F112AFF0F1835FF0D2241FF0C2644FF0F1A 38FF0F1F3EFF0D203CFF0B1C36FF0E1E3BFF0C1F3BFF0A172EFF080E1EFF0508 12FF020409FF000203FF000001FF000000FC000000F1000000E3000000C10000 008E00000055000000260000000A000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000200000011000000330000 00670000009E000000CD000000EB000000F8000001FE010204FF030408FF0405 0DFF070A16FF0A0A1BFF0C091CFF0D0A1FFF0F0F26FF120F26FF100D24FF0E0B 21FF0D0A1EFF0D091BFF0E0A1CFF0F0B1EFF0E0B1FFF0B0C1FFF0D0C20FF0D0B 1EFF0E0C1FFF0F0F24FF0F0E28FF0F0E22FF0E0E1FFF0D0D21FF0D0D26FF0F12 29FF0E1327FF0D0F25FF0D0C25FF0C0B21FF0F0A20FF0E0B21FF0D0C23FF0E0E 24FF0E0F23FF0F0F25FF10142FFF0F1A37FF0B1A34FF0C1A35FF0B1734FF0A16 32FF0B172FFF0D172BFF0B1328FF0C152EFF0E1833FF0C152FFF0D1531FF0C18 35FF0C1833FF0E132CFF0E1025FF0F0E26FF0C0E27FF0C152FFF10243EFF0D16 2FFF0D1833FF0E1C37FF0E1933FF0B112AFF0D1933FF0C162DFF090E20FF080A 18FF06070FFF020307FF010103FF000101FF000000FB000000F8000000E60000 00C5000000940000005A0000002A0000000D0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000010000001200000034000000670000 00A3000000D1000000ED000000FA000001FE000104FF02050AFF060912FF0A0D 1CFF0E1429FF101129FF0D0C24FF0C0A21FF0F0D22FF0F0C21FF0E0C21FF0E0D 21FF0E0C1FFF0D091DFF0D091DFF0E0A1CFF0E0C1DFF0C0D20FF0D0D23FF0D0C 20FF0F0C1FFF100E24FF0F0E29FF0E0C25FF0F0E25FF0E0F26FF0C0C25FF0E11 28FF0E142AFF0F132BFF0E0F2AFF0C0D24FF0E0D23FF0E0F26FF0D1027FF0D0F 26FF0F1028FF0E0F27FF0D132DFF0D1835FF0D1B36FF0B1733FF0C1735FF0D18 35FF0E1931FF0F1932FF0C152FFF0D1731FF0E1934FF0D152FFF0E152FFF0D16 31FF0D1731FF0E152CFF0C1025FF0F1027FF0E0E26FF0D1128FF101B31FF0D12 2AFF0D122BFF0D142DFF0C122AFF0C0D26FF0F132EFF0D132BFF0B1023FF0A0C 1DFF090917FF06060FFF030308FF010104FF000001FF000000FE000000F80000 00E8000000C9000000960000005D0000002D0000000D00000001000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000001000000100000003400000068000000A20000 00D3000000F0000001FC000103FE010408FF050C15FF060C19FF0A0C1CFF0F11 25FF10152FFF12132EFF0F0D28FF0C0921FF0D0A1EFF0D0A1DFF0E0E1FFF0E0F 21FF0D0C1FFF0D0A1DFF0D091DFF0D0A1CFF0D0C1DFF0E0D1FFF0D0D25FF0E0D 23FF100D22FF110C23FF0E0D25FF0D0C25FF0E0D27FF0F0E26FF0C0E21FF0D10 23FF0F1529FF10162EFF0F132CFF0D1027FF0E1126FF0F132AFF0E142BFF0B12 27FF0F122DFF0C0F27FF0A0F27FF0B132DFF0E1730FF0B1431FF0D1836FF0F1B 36FF0F1A33FF0F1A36FF0E1531FF0D1630FF0D172FFF0D132DFF0F152EFF0E14 2DFF0D132CFF0E132AFF0D1127FF0F122BFF10122CFF0F122BFF0D1228FF0F10 28FF0F0F25FF0C0D23FF0B0C23FF0F0E26FF100F29FF0E1027FF0C0F23FF0C0D 1FFF0B0B1EFF0B0919FF080712FF04040BFF020207FF010103FE000001FE0000 00FA000000EA000000CB000000980000005D0000002A0000000B000000010000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000010000000D0000003000000066000000A3000000D60000 00ED000000FA000102FF010407FF040B13FF0D1D30FF0E172EFF0C0C23FF0D0B 22FF0C0A1FFF0E0C22FF100A23FF0F0720FF0C071CFF0E0B1CFF0E0F1FFF0D0E 1FFF0C0A1CFF0D0B1BFF0F0A1DFF0E0A1DFF0C0A1DFF0C0C1DFF0E0D23FF0F0F 24FF0F0F23FF100C22FF0D0C21FF0C0D22FF0C0D23FF0C0C20FF0B0C1AFF0D0F 20FF0E1427FF0D1528FF0B1326FF0D1126FF111329FF10132CFF0D112AFF0B10 26FF0B1128FF090C22FF0A0C20FF0C0F23FF0C1124FF0F1733FF0E1936FF0C1A 35FF0C1A35FF0E1C37FF0F1431FF0E122EFF0D152EFF0D132DFF0E1632FF0D15 2FFF0C112AFF0C0E28FF101129FF0E102CFF10112FFF10122EFF0B1028FF1010 25FF110D1FFF0F0C1EFF0D0D20FF0E0B1EFF100D22FF0E0B1FFF0C0A1DFF0E0A 1FFF0D0B22FF0D0C22FF0C0C1CFF080A15FF06040FFF040308FF010103FF0000 00FD000000F8000000EE000000CC0000009600000059000000270000000A0000 0001000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000B0000002B000000620000009E000000D1000000EF0000 00FA000102FE000204FF02040AFF040814FF0A1428FF0F172FFF10132AFF0C0B 20FF0C091DFF0F0D21FF0F0C21FF0E091CFF0D0A1BFF0C0B1AFF0D0D1DFF0D0D 1EFF0D0B1DFF0B0C1DFF0C0B20FF0F091EFF0F081CFF0B0B1FFF0C0C1FFF0C0D 20FF0D0B21FF0D0821FF0C0B21FF0A0C21FF0B0D22FF0C0E21FF0D0F21FF0C0F 23FF0C132AFF0B162EFF0B162DFF0E162DFF0E152DFF0E112CFF0E0D28FF0C0C 22FF090E21FF0B0D21FF0D0E22FF0E1023FF0F0E22FF0D1026FF0C0F26FF0B10 27FF0B152CFF0F1B35FF0E1835FF0E1632FF0D162EFF0C182DFF0C1530FF0D14 2CFF0E1228FF0D0F25FF0D0E25FF0B0C24FF0C0D25FF0D0D24FF0A0A20FF0B0A 1DFF0E0B1AFF0E0B1AFF0C0B1CFF0E0C1DFF0F0B20FF0E0B1DFF0E0C1CFF0D0E 1FFF0A0C1DFF0B0B1DFF0B091CFF090919FF080714FF05050DFF020207FF0000 03FF000000FD000000FA000000E9000000C80000009400000055000000220000 0008000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000009000000260000005A0000009A000000CE000000EE000001FA0001 03FF020408FF04080FFF070D19FF091224FF0E162FFF101935FF101833FF1012 2CFF10122BFF121027FF0F0D26FF0B0A25FF0D0C1FFF0D0C1BFF0D0C1CFF0E0B 1EFF0F0A1EFF0E0B1FFF0D0C20FF0E0C1FFF0F0B1EFF0E0C1FFF0F0A1DFF0E0C 1EFF0D0C20FF0E0B21FF0E0D22FF0F1127FF10142AFF10142AFF0D122BFF0E16 2FFF0E142CFF0E142BFF0E162DFF0D142DFF0F1731FF101330FF100E2AFF0F0C 23FF0A0D1EFF0C0C1FFF0E0E20FF0E1023FF0F1129FF0F1028FF0D0E23FF0C0D 21FF0D0F25FF10132EFF101634FF0E1733FF0C162DFF0C172AFF0B1025FF0D10 25FF0E1025FF0E1024FF0F0F23FF0D0C22FF0C0D21FF0D0E21FF0C0D20FF0C0B 1EFF0C0B1CFF0C0C1DFF0C0C20FF0B0C20FF110B24FF0E0B1FFF0C0C1BFF0E0F 1FFF0B0C20FF0C0E21FF0D0D20FF0B0B1EFF090A1BFF060714FF04050EFF0303 08FF010003FF000001FE000000F9000000E9000000C50000008A0000004C0000 001D000000040000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00050000001F0000005100000091000000C8000000EC000000FC000102FE0204 09FF030913FF060E1EFF091427FF0C1831FF0F1632FF0F1834FF101733FF1314 32FF141A3AFF151734FF121230FF0E0F2CFF0E0D21FF0D0C1DFF0D0C1EFF0F0B 21FF100A20FF0E0A1EFF0C0C1EFF0D0D1FFF0E0D20FF0E0C1EFF100B1CFF100B 1EFF0F0B1FFF0F0B1EFF0E0D20FF0F1128FF11152DFF11182FFF0F1730FF0E15 30FF0E1029FF0E0F26FF0E1127FF0D112AFF0F142FFF10112DFF100F2AFF100E 27FF0B0F23FF0D0D20FF0D0C1EFF0D0D20FF101029FF11122BFF0D0F24FF0B0D 1EFF0D0C22FF100E27FF0F122CFF0F142EFF0E142BFF0C1225FF0C0D20FF0D0D 21FF0D0E22FF0D0F22FF0F0F25FF0D0C22FF0D0D20FF0D0F20FF0E0F21FF0D0B 1FFF0C0B1DFF0B0B1EFF0B0C21FF0B0D20FF0F0B21FF0E0B1FFF0C0C1DFF0D0C 1EFF0B0C20FF0D0F23FF0D0F23FF0B0D22FF0A0D21FF09091CFF070816FF0506 0EFF020206FF000103FF000001FF000000F8000000E4000000BD000000800000 0043000000170000000300000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000020000 00170000004500000084000000C4000000E7000001F9000103FF020408FF050C 18FF061127FF071832FF0A1E39FF0F1F3FFF101A38FF0E1530FF0E112BFF1111 2DFF131A3BFF151B3CFF161835FF14122AFF0F0C1FFF0D0B1EFF0E0C21FF0F0D 23FF0E0B21FF0C0B1CFF0B0A1BFF0C0D1FFF0D0E21FF0D0C1EFF0E0C1BFF100A 1EFF11091EFF0E0B1BFF0C0C1DFF0D0D25FF0D1029FF0E152CFF10182FFF0B10 27FF0C0D24FF0D0B21FF0C0B21FF0E0E26FF0F0D27FF0E0D26FF0E0E27FF0E10 29FF0D1129FF0D0D24FF0C0B1EFF0D0A1DFF100C22FF101129FF0B0F24FF0A0D 20FF0E0E22FF0E0E23FF0C0E24FF0E1027FF0F1028FF0C0D23FF0D0C22FF0E0E 21FF0D0E20FF0B0D22FF0E0F29FF0C0C24FF0C0C22FF0E0E22FF100F21FF0E0C 1FFF0D0C1DFF0B0B1EFF0B0C1FFF0E0E1EFF0C0B1BFF0E0B1EFF0E0B21FF0B09 1FFF0C0C1EFF0E0E21FF0E0E25FF0C0F27FF0B1026FF0B0D24FF0B0B1DFF0809 14FF04050CFF020307FF000102FF000000FC000000F4000000E2000000B40000 0075000000390000001100000002000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000E0000 003800000075000000B6000000E5000000F9000102FF010408FF030A14FF091A 31FF0A2244FF0E2B51FF143257FF183057FF1A2E53FF111936FF090A20FF0C0E 25FF0C0E28FF10112EFF13112BFF120C22FF10071EFF0F0C22FF0F0D22FF0F0D 20FF0E0C1FFF0F0C1BFF0F0A1AFF0E0A1FFF0D0C22FF0F0B1EFF0E0C1DFF0F0D 1EFF100D1FFF0F0E20FF0D1020FF0E0F26FF0E0D25FF0D0E25FF0D122CFF0C10 29FF0C0F25FF0D0D23FF0F0D23FF0C0C22FF0E0C24FF0E0D23FF0D0E23FF0D0C 25FF0F0D24FF0E0B22FF0D0C20FF0D0E20FF0D0C21FF0C0D24FF0C1028FF0D12 29FF0F1126FF0B0C21FF0C0D24FF0C0E24FF0D0D24FF0F0D27FF0E0F23FF1011 26FF0F1126FF0C0E25FF0E0F2AFF0B0F24FF0C0F25FF0F1027FF111124FF0F0E 22FF0E0F23FF0E1023FF0F0F22FF101021FF0C0D1EFF0C0E1FFF0D0D20FF0C0C 1FFF100D20FF110E21FF110F27FF10102CFF0E142BFF0D132AFF0F1224FF0E0E 1CFF080814FF04060DFF020306FF010102FF000101FD000000F4000000DB0000 00A90000006A0000002F0000000B000000010000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000008000000290000 0065000000A7000000DC000000F3000101FD010407FF030811FF040F21FF0A1A 36FF132E54FF123058FF0A2144FF091534FF101D3EFF101B36FF11192FFF151C 34FF0E122CFF0C0E25FF101228FF14162EFF12112AFF0F0E25FF0E0D21FF100D 22FF130C24FF120B1FFF100C1CFF0E0D1EFF0E0C21FF100A1FFF0D0C1EFF0E0D 21FF100F25FF111026FF0E0C24FF100E29FF0F0E27FF0D0D25FF10112BFF1010 2AFF0F0F26FF0F0E25FF0F0E25FF0E0F24FF0F0E23FF0E0E23FF0E0F24FF0F10 27FF110F2AFF110F28FF101026FF0F0F26FF0F0D27FF0F0E26FF11132BFF1115 2EFF0E1229FF0C0D22FF0E0F28FF0F1029FF0E1025FF0C0D24FF0C0F24FF0E10 27FF0D1128FF0C1127FF0C102AFF0C1328FF0D1228FF0D0F28FF0D0E23FF0C0D 21FF0F1026FF0F1226FF0E1023FF0D0E24FF100E22FF0F0E22FF0C0E21FF0C0D 1FFF120F22FF131023FF101024FF0F1026FF101228FF0F1027FF0F1125FF0E10 22FF0C0D1FFF080916FF06050DFF030306FF000101FE000000FB000000F20000 00D40000009D0000005700000020000000060000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000040000001B000000500000 0094000000CE000000F1000000FB000204FF02070EFF061324FF0A2646FF0C2B 4FFF10294EFF112549FF0F2145FF111C3FFF131C3DFF131D39FF141E36FF141B 37FF121936FF0E122AFF10152DFF131935FF11142EFF111027FF0E0E23FF0E0C 22FF110B23FF120C23FF110D1FFF0E0C1EFF0D0B1FFF0F0B1EFF0D0D20FF0E0E 23FF110E26FF130F29FF110F29FF110F29FF100F27FF0F0F26FF100E27FF100F 27FF101028FF0F1027FF0F0E26FF100E27FF110E25FF0F0F25FF0E1025FF0E0F 25FF0F1129FF101127FF101026FF100F28FF0F0E2AFF111029FF12122CFF1113 2DFF0F122AFF0E0F25FF100F29FF0F102AFF0E1027FF0F1127FF0F1029FF1012 29FF10122AFF0F112AFF0D1126FF0D1226FF0D1027FF0E0F26FF0D0E23FF0D0D 21FF0E1027FF0F1328FF0E1324FF0E0F24FF100E24FF0E0D20FF0C0D1EFF0E0E 1FFF120E20FF120F24FF0F0E25FF0D0E24FF101128FF111129FF0F1127FF0C10 25FF0C0F23FF0D0D1FFF080815FF04040CFF020205FF000001FE000000FB0000 00EC000000C50000008700000042000000140000000100000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000F000000390000007E0000 00BE000000E9000000FB000001FF01060AFF030B17FF081C35FF113962FF0E3B 67FF0C2549FF0D1A3AFF132042FF18274CFF131F3DFF121C37FF131D3AFF131F 3FFF131A39FF0F1631FF0E1530FF0F1530FF0F1128FF110F25FF0F0D23FF0E0D 21FF0F0C21FF100B25FF120C20FF110B1EFF0F0A1DFF100C1CFF0E0E1FFF0E0E 22FF100D24FF120D27FF121128FF121129FF111129FF101027FF0E0B24FF0F0D 24FF101128FF0F1127FF0E0E23FF110D26FF100C25FF100E26FF0F0F27FF0E0E 25FF0F1025FF0E0F24FF0F0E24FF0F0D24FF0E0D26FF111129FF10112AFF0F10 29FF101028FF0F1027FF0F0F27FF0E0E26FF0F0F27FF12112AFF111029FF1111 28FF121229FF111129FF101123FF0D0F23FF0E0E24FF100F24FF100F22FF0E0E 22FF0E0F25FF0E1125FF0E1223FF0E0F22FF0D0C23FF0C0C20FF0C0E1EFF0F0F 20FF110E20FF110E26FF0E0E26FF0D0E24FF0F1027FF10132BFF0F122BFF0D11 28FF0C1026FF0F1027FF0B0D20FF070A17FF04060DFF010204FF000001FE0000 00F8000000E2000000B40000006D0000002F0000000B00000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000070000002600000061000000AA0000 00DF000000F9000002FE000206FF040B15FF051123FF0A203CFF153963FF0F3A 68FF0E2F56FF0C1F3FFF0A1534FF0F1C3CFF0B1B35FF0B162FFF111C3AFF182A 4DFF0E1634FF0D1633FF0C152FFF0A1026FF0D0E20FF0E0C1FFF0F0C20FF100D 22FF0F0E23FF0D0A23FF110A20FF130B1DFF120B1BFF110A1BFF0F0D1BFF0F0C 1EFF0F0C20FF0F0D20FF0D0D21FF12132AFF13122CFF100F27FF0F0C23FF110E 22FF100F25FF0D1123FF0B111FFF100D22FF0D0A22FF0E0D26FF100F29FF100F 28FF110F24FF0D0D23FF0C0D22FF0E0D1FFF0D0A1EFF0F1026FF0F1127FF0E10 24FF0F0F23FF0E0E29FF0C0D23FF0D0E22FF100E26FF120E27FF0E0D23FF0D0C 22FF0E0F23FF101224FF111025FF0D0E24FF0E0F24FF100F23FF100E20FF0E0F 22FF0F0E21FF0E0D20FF0D0D1FFF0C0D21FF0B0A22FF0C0D23FF0E1123FF0E10 22FF101024FF0F1026FF0E1026FF0F0F25FF100F26FF0E122AFF10142DFF1014 2CFF0E1429FF0E122BFF0F152BFF0D1324FF080C18FF02050BFF000203FF0000 00FE000000F4000000D500000099000000540000001F00000004000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000100000016000000470000008E000000CC0000 00EE000001FC000305FF020912FF071325FF081B33FF0D2A4BFF17406BFF092D 57FF133C6CFF133563FF0A1D41FF0D1C3CFF142341FF101B36FF0C112BFF0F11 2CFF0F1833FF142241FF101E3CFF0B152EFF11172AFF0D0E21FF0D0C20FF0D0C 21FF0C0B20FF0F0C22FF0F0A1FFF0E0B1BFF0E0B19FF0F0918FF0D0E1CFF0D0C 1CFF0E0B1CFF100B1DFF0D0E1EFF0F1124FF101026FF100E24FF0E101FFF100D 1EFF0E0E24FF0C1025FF0B1020FF0C0D1EFF0F0F24FF0F1028FF0E0E27FF0E0B 24FF100C24FF0E0E24FF0D0F23FF0D0E22FF0E0E23FF0C0F21FF0D1023FF0E10 23FF0D0F21FF0F0E25FF101026FF100F25FF0E0E26FF0C0F28FF0D0D22FF0E0E 22FF0F0D22FF0E0C1FFF0E0D22FF0C0E21FF0C0E22FF0D0D23FF0E0C22FF110F 26FF100F23FF0E0F21FF0D1022FF101329FF0D0E25FF0E0F23FF0E1122FF0D0F 21FF0E0F21FF0F1122FF101125FF110F29FF10132CFF0F142DFF10152CFF1015 29FF0E1527FF0E1628FF0E1629FF0E1628FF0C1222FF060A15FF010306FF0000 01FF000000F9000000E9000000C3000000800000003F00000011000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000A0000002F0000006E000000B6000000E60000 00F9000102FE02050AFF05101FFF051C34FF082240FF10284BFF173157FF0C26 4EFF113662FF133A68FF122D59FF14254AFF101C3FFF0F1D3EFF111F3EFF1219 38FF121834FF111B39FF101F3DFF0F1E38FF0D1229FF0E0E21FF0F0C20FF0F0B 20FF0F0A20FF100B20FF0F0B1DFF0E0D1DFF0D0D1CFF0D0A19FF0C0C1CFF0C0A 1DFF0D0A1DFF0E0C1EFF0D0E20FF0E0F23FF100E24FF100E23FF0E1021FF0D0D 1EFF0C0E21FF0C0F24FF0D0F23FF0C0C1DFF0C0D1EFF0D1025FF0D112AFF0C10 28FF0D1127FF0D1025FF0E1026FF0F1028FF0E0F26FF0C0F20FF0E1024FF0F0F 25FF0C0D22FF0E0D25FF100E27FF100E26FF0D0E24FF0A1024FF0D1023FF0F0D 21FF0E0C22FF0E0E23FF0F0F25FF100E24FF0F0E23FF0C0E22FF0A0C22FF0E0F 26FF0F0F23FF0D0E21FF0C0E22FF0C1226FF0C0D24FF0D0C21FF0E0D20FF0E0F 20FF0F1023FF0E1228FF0E1029FF0F0F2BFF101530FF0E142AFF0D1325FF0D14 26FF0E162BFF171D2FFF14192AFF0E1326FF0A0E22FF080B19FF04080FFF0102 05FF000000FE000000F7000000E0000000AB0000006600000029000000060000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000020000001B0000005100000097000000D4000000F30000 01FE010306FF040B15FF06182FFF0A2B4DFF0C2A4FFF0E2247FF122347FF1124 4BFF0F2D50FF113258FF15305DFF152A56FF12264EFF12264CFF132448FF121D 41FF121A3CFF101C3DFF0F1E3DFF0F1A35FF0E0F25FF100E23FF110C21FF110C 22FF110E24FF130C21FF100D1FFF0E0E1EFF0D0E1DFF0D0D1DFF0E0C20FF0F0D 23FF0F0E23FF0F0F21FF111125FF101227FF101026FF100F24FF101123FF100E 20FF0F0E20FF100F23FF110F26FF0F0E23FF0F0C22FF0F0F24FF0E1229FF0B15 2BFF0D152BFF0E132AFF0F132BFF0E142CFF0F142AFF0F1225FF0F1025FF0E10 26FF0F1026FF101029FF100F2AFF0F0F29FF0F1128FF0F1429FF0E1224FF100F 24FF100E25FF0F1025FF0F0F24FF110E25FF100F24FF0E1024FF0C0F27FF0F12 28FF0F1125FF0F0F23FF0E0F23FF0D1123FF10172EFF0F162CFF0F1427FF1217 27FF13152CFF111731FF0F1731FF101530FF111834FF0E142DFF0C1228FF0C12 29FF0F142DFF12182DFF111428FF0E1026FF0C0F25FF0B1023FF070C18FF0306 0BFF000103FF000000FC000000F1000000CF000000910000004B000000160000 0002000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000010000000B0000003500000078000000BD000000EA000001F90002 04FF02080FFF061223FF072041FF0F3964FF0F3460FF0C234AFF0B1F42FF142A 52FF0F2949FF0E2748FF122851FF122A56FF153057FF152D53FF12244AFF0F1D 42FF122148FF12254AFF0F1F3FFF0E142FFF121024FF111126FF120E25FF120E 25FF111127FF150D24FF120F23FF101425FF101426FF0F0F23FF0F0E25FF1211 28FF121228FF111125FF141329FF12162BFF11142BFF111228FF131324FF130F 22FF130E21FF130E23FF121027FF11122BFF140F2AFF120E25FF0F1125FF0E16 2AFF10142DFF11152EFF0F152DFF0D152CFF0F162BFF111429FF0F1127FF0E11 27FF11152AFF11162EFF10122CFF10122BFF11142DFF131730FF0F1225FF1112 26FF121228FF101025FF100D21FF110F26FF111126FF101127FF11122BFF1114 2CFF101228FF101126FF121226FF111225FF142038FF13233BFF122135FF1520 31FF161B36FF121D37FF111E37FF141E37FF161F3AFF1B223EFF1F233DFF2625 3EFF29263FFF1A1E33FF161930FF1D1F36FF22243AFF161C33FF0A1122FF060A 13FF030508FF000102FD000000F8000000E8000000B7000000710000002E0000 0009000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000040000001C000000560000009E000000DB000000F8000002FE0004 0AFF030D19FF071A30FF09284CFF0B3A66FF0F3D68FF103156FF0B2543FF1438 65FF0F2E56FF0C2448FF0F2449FF11294BFF0C1F38FF0E2444FF132A52FF1228 4DFF112D4FFF10294CFF112243FF131B35FF101525FF101528FF11122AFF1110 28FF111025FF140D26FF100F22FF162236FF1A2A42FF10132AFF0E1126FF0F13 28FF111429FF111329FF13122BFF11142AFF13172CFF16182DFF151627FF0E0F 21FF100D22FF110E24FF101227FF11162BFF0F1129FF0F1025FF0F1023FF1011 25FF121029FF11132BFF10142CFF0E132BFF0C1127FF0E1129FF10112BFF0F12 2AFF0D1529FF0E162DFF0F1328FF11122BFF13132FFF12142CFF0F0F24FF0E10 25FF0F1128FF121128FF130E24FF11142AFF111329FF111127FF111129FF0E13 2CFF0E0F29FF100F27FF131329FF12142CFF101933FF14233EFF17273FFF1521 35FF1B253BFF16223AFF151F38FF1C233DFF2A3349FF3F485EFF525262FF655A 67FF6C5F6DFF4F4859FF3A3D53FF4B4B61FF555165FF2E3246FF121D31FF0C13 20FF090C11FF030506FF000000FC000000F4000000D2000000970000004D0000 0018000000030000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000C000000360000007D000000C0000000EC000001FA000305FF010A 13FF05162AFF092443FF0B2A50FF0E3258FF0D365EFF0E345EFF143258FF1233 5EFF0F2C56FF0C254BFF0C274AFF123456FF0D253BFF0B203BFF0D2547FF1029 4BFF0A1E3DFF122142FF141D3AFF13162BFF161B2BFF141728FF121428FF1012 27FF111024FF170D26FF0D0C23FF172842FF243D5CFF192A48FF142136FF1B29 3DFF1B2A3EFF151E33FF14152FFF0F1428FF101528FF14162AFF14152AFF0F11 25FF101125FF0E1125FF0D1126FF101429FF0F1226FF0E1024FF101024FF1211 26FF110F26FF0F1126FF0F1529FF10172DFF11142AFF0F182EFF0F172CFF0F14 28FF0E1226FF111226FF131229FF13132BFF12142CFF11132BFF111129FF0E10 29FF0E122CFF10142EFF0E0D26FF11122AFF12162DFF10152DFF0E122AFF1013 2BFF14152AFF12172BFF0C182FFF0B1D35FF1F2E42FF253046FF1C2C43FF1C32 47FF5B5C6DFF696474FF4D4C5FFF404257FF736E7DFF615B6EFF4C475BFF4843 55FF584E5EFF695C6BFF746979FF786B7CFF736677FF655D6EFF4B4C5EFF2A33 43FF151D27FF0E1012FF050507FF010101FA000000E8000000BB000000730000 002E0000000A0000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00040000001B00000054000000A0000000DA000000F8000102FD02060CFF030B 18FF071931FF0C2C4DFF0A2F53FF0B3459FF0E345CFF0F315AFF102E57FF1236 64FF113461FF11335EFF12365FFF153B61FF1C3952FF152A43FF0E2442FF112A 49FF0E1933FF141731FF181E35FF192436FF192533FF161B2DFF13172CFF1115 2AFF111127FF131229FF191D33FF24314AFF2C415EFF2B3F5CFF2D3B52FF313C 50FF28384BFF1E3445FF313F51FF333748FF272A39FF191E2DFF141629FF1215 29FF111528FF0F1326FF0F1024FF101124FF111025FF111026FF101027FF1110 27FF131026FF121123FF0F1323FF0E1325FF121125FF1E1D30FF201E33FF1B1B 30FF14172AFF101023FF111124FF131328FF14172EFF151B33FF131C33FF1117 31FF101530FF10152EFF111129FF12122BFF12142DFF11162EFF0E172DFF1015 2CFF0E132AFF192340FF35466BFF5A6A90FF626B8AFF616782FF676E8AFF7981 9FFF888296FF908493FF746D7FFF676780FFA39EB9FF79738BFF50526BFF4A4E 68FF656279FF827485FF958AA3FF9387A0FF887A90FF837A92FF777B9AFF6F72 8FFF535469FF282B35FF101013FF030303FE000000F4000000D3000000950000 0049000000160000000100000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000B0000003100000077000000BF000000EC000000FD000104FF040B15FF070F 21FF0B1831FF0E2645FF0B3056FF0A375EFF0E355EFF102E59FF0D2E5AFF1239 6AFF123B69FF113A66FF133B67FF143D66FF1D3E5DFF213752FF213350FF2034 52FF1A2137FF1D1E34FF232B41FF26394CFF233343FF202A3DFF1E293EFF1C26 3CFF182036FF152237FF2A3347FF343B50FF343C53FF364158FF3C455AFF3D41 55FF374052FF364857FF4F5F6BFF6F6A71FF575358FF292F37FF131627FF1416 2BFF11152AFF101428FF111227FF101025FF110F26FF121127FF13132AFF1314 2CFF121226FF131224FF0F1121FF0B0F1EFF111021FF2E2031FF38293DFF332C 40FF292B3CFF232637FF151A29FF0F1728FF172236FF29364CFF28394DFF3F46 5CFF383950FF15172FFF11142BFF10132DFF10132EFF0E152EFF0C192FFF131E 36FF142039FF2E3B5BFF606D94FF9399BFFF8F90AFFF8C8CA8FF9A9AB7FFAFAB CCFF948DA3FF958A9AFF887F90FF817E96FFA09FBFFF88829BFF706E85FF6E6F 87FF817E97FF8F8399FF9B95B4FF9791B2FF928BAAFF9C99BCFF9096C0FF9B9B C1FF82809DFF444659FF1C1B22FF070608FF000000FA000000E4000000B50000 0068000000280000000600000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000010000 00170000004B0000009A000000D7000000F6000001FE010307FF05101DFF0D16 2CFF101530FF0E1835FF0E2E56FF0D3860FF0E3661FF0F3362FF103867FF123A 6AFF0F3B67FF0D375EFF0C3359FF113C65FF123154FF283B5AFF3A4764FF3643 5DFF293046FF2D3549FF334055FF36465CFF344357FF324053FF344457FF3142 56FF28394EFF263B4DFF384356FF414254FF3E3D4CFF3A3B49FF3F4050FF4243 54FF4B4B5BFF575863FF62646CFF9A8B88FF817774FF3F4246FF151929FF1415 2DFF12152DFF11172DFF11182EFF11142CFF11132AFF13142AFF15182FFF171C 32FF0F1629FF121429FF131628FF121725FF141629FF332333FF413142FF423C 4CFF3E4250FF404352FF222D3CFF112332FF233446FF516070FF516173FF8689 98FF7B7586FF2F2C42FF1A1D36FF111933FF0E1934FF101C37FF16223DFF1A2B 42FF283A51FF49576FFF72778FFF8A879AFF8A8597FF8C889DFF9491ABFF9B98 B5FF928EA6FF90899EFF908699FF8B8397FF827E96FF908497FF97899BFF978B 9FFF9289A0FF8E87A1FF928EACFF8E8BACFF9392B6FFACAED6FF9694BCFF9795 BAFF8684A2FF58566AFF27252FFF0D0C0FFF020202FD000000F2000000D10000 008A000000400000001000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000060000 002800000068000000B6000000E8000000FC000203FF030910FF0A1426FF1119 34FF121936FF0D1C39FF0E2D52FF0D3460FF0F3C69FF0F3F6AFF0A3B67FF1039 65FF103963FF0E365EFF10335BFF1A3B64FF233355FF2F3551FF373B52FF3B3E 53FF3B3E52FF394053FF3C4356FF3F485BFF404B5EFF42495FFF414A5EFF3F4B 5EFF404A60FF454B5AFF4A4D5CFF4E505EFF4F515DFF4D4F5CFF565865FF6061 6DFF696870FF6E6C70FF737075FF767578FF67676BFF4A4C54FF2C303EFF141A 32FF151F36FF172438FF162135FF171D34FF191C34FF161E35FF112036FF1120 36FF131F32FF12192EFF1F273BFF2C3648FF24273BFF222538FF1B2338FF1D27 3BFF292E3FFF272A3DFF323A4BFF333B4CFF484A5CFF827F8DFF767686FF8D85 93FF998C99FF817687FF4E4760FF242B44FF1B2743FF333C5AFF4F546FFF1B2B 45FF28394FFF50596EFF737187FF80798BFF888091FF898397FF9893AEFFB3AD D1FFB6B3D9FF9C9CBDFF8F8EACFF928DAAFF948BA6FF948AA0FF908FAEFF8E8F B3FF8F88A7FF908AA7FF968EB0FF928CAEFF8B87A6FF8A83A2FF8E819DFF8C80 98FF7E7489FF60596AFF36303AFF141316FF040304FF000000F8000000E10000 00A60000005B0000001F00000001000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000F0000 003E00000087000000CF000000F1000102FE01060AFF04111DFF0B1C33FF0C18 36FF0F1635FF13203FFF10385EFF0D3865FF0F3865FF0F3863FF0D3661FF1134 5AFF0F3253FF0C2C50FF102953FF213560FF384468FF3C4364FF3C415FFF4247 60FF3F4966FF4A506AFF50526DFF515571FF5B6073FF5E6174FF5D6C87FF5775 9BFF4E739EFF536286FF4E5A79FF516383FF596A8CFF5B607DFF5E6787FF5E64 7DFF616276FF656577FF646173FF5C5E6AFF5A5860FF595259FF514A54FF3A38 49FF323648FF2A3344FF1C2839FF0C192AFF0E1A2FFF131E34FF1A263BFF2230 43FF1F2A3FFF242E3FFF24313FFF223240FF273142FF1E283BFF162436FF1323 35FF172436FF282B3BFF3A3B4EFF5E5A6BFF847886FF968692FF8C7C8CFF907F 94FF928297FF897C8DFF786A7FFF595369FF5D5870FF716985FF756E8EFF665C 79FF685F79FF746B80FF817587FF83788AFF87788EFF867B92FF8A849CFF9591 ADFF9899B7FF9597B6FF9597B8FF999BBDFF9C9CBDFF9799C2FFA6ABD4FFB3B7 DDFFB3B4D8FFBABFDDFFCBCAE4FFC6BFDAFFB1A9C6FF9F9AB5FF9B93ADFF9089 9FFF847D91FF6F697DFF454150FF1E1C24FF08080AFF010101FB000000EE0000 00C3000000780000003200000008000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000010000001B0000 0056000000A3000000E0000000F8000103FF020A10FF061A2BFF0B2543FF0E21 44FF132144FF152A4EFF0F365DFF0D3762FF0E3763FF0E3461FF0A2E5BFF102F 53FF132D4FFF1D3459FF2E4570FF3E588DFF536F9EFF546F9BFF556B95FF5F72 97FF5B739CFF6B7DA2FF7182A6FF7C8BAAFFA3A5B3FFAAAAB3FFA3AEC2FF91B2 D2FF83B0D8FF97A8C9FF909CBAFF8EA2C1FF95ABCBFF9EA5C0FF9EABC9FF9CA5 BBFF969EB1FF8D9CB2FF899AAEFF9395A4FF8F8F9BFF878B98FF848999FF7381 94FF757F92FF7E8292FF787E8BFF4E6376FF324C61FF39536BFF435E79FF3E5E 79FF4C5D75FF525E73FF535D6DFF485464FF2F455CFF294560FF27415BFF1E33 4EFF1B2B47FF4D5167FF847F90FFABA1B0FFB5ACBDFFA5A4B7FFB0A7B7FFB8B0 C0FFB3ADC1FFA6A1B7FF9E9DB4FF8B8DAAFF9293B3FFA7A5C2FFB5AEC6FFADA5 C0FFA2A5BFFF969CB8FF9090AFFF9697B2FF9295B4FF9798B5FF9B9BB5FF9FA0 B8FFBABAC9FFB3B4C9FFA2A6C5FF9A9FC4FFA5A5C7FF9C9FC9FFA7A9D2FFB1B6 DCFFB5BEE5FFBFC9ECFFD4DEF6FFE0E3F4FFD8D7E9FFBCC3DEFFB1B5D4FFA9AE CBFFA1A8C2FF9198B1FF737586FF3E3E46FF161619FF030303FD000000F50000 00D7000000930000004900000013000000010000000000000000000000000000 00000000000000000000000000000000000000000000000000060000002C0000 006F000000BB000000EA000001FC010305FF030D16FF081F36FF0C2D50FF152F 55FF193158FF15335CFF102F56FF0E325BFF113A65FF103966FF0A2C59FF112F 57FF162A52FF27385FFF3E5680FF4F70A8FF678DC1FF6B92C3FF6E91C0FF7A97 C4FF7A99C6FF84A3CCFF8BAAD0FF9EB8D7FFCBD7E4FFD5DDE5FFCDDAE5FFBCD6 EAFFB4D8F1FFCEE1F6FFCAD9EFFFC7DBF1FFCDE3F8FFDAE7F9FFDAEBFFFFDAE8 F8FFCFE1F0FFBFDBEEFFBCDCEFFFD2DAEBFFC9D3E5FFB6CCE1FFB1C9E0FFA9C9 E0FFB6CBE0FFCDD6E5FFD4DBE8FFAEC5DBFF7499B0FF6892ADFF6796B5FF5C8D AEFF728FA9FF7087A0FF7E8DA4FF7D8DA4FF456989FF507B9EFF6384A5FF647A 98FF5E6F8EFF919BB6FFD2D2E3FFE4E0F1FFD0D4EBFFBBCEE7FFD2D9ECFFDDE6 F3FFDAE4F4FFCCD4EDFFBACAE6FFB2C2E5FFB4C6EBFFC7D5F3FFE5E9F8FFD5DE F4FFC4DEF5FFB2CEEEFFA8BAE3FFB2C5E5FFA8C2E5FFB2C4E5FFBCC6E2FFC2CB E2FFEBEEF5FFD6DBE9FFB6BEDAFFA8B1D3FFB6B8D5FFB1B2D1FFA7ACCEFFA1AB D2FFA5B2D9FFADB6DDFFBCCAE7FFD3DEEFFFDAE3F2FFC1D3F0FFB8C6E9FFBDC9 EBFFBACAEBFFAABCDDFF969EB3FF5C5F6AFF26272CFF070708FE000000F80000 00E4000000AC0000006300000022000000040000000000000000000000000000 000000000000000000000000000000000000000000000000000D0000003F0000 0088000000D0000000F1010203FD02050AFF050F1DFF0A213DFF123055FF1835 5CFF1B365FFF1A3660FF183058FF142D57FF163A65FF17406BFF11345DFF1736 63FF132851FF122247FF1C2D52FF364A72FF6579A2FF7289B1FF728AB1FF7990 B4FF7C94B8FF829CBFFF8BA5C5FF95ADCAFF98B5D0FF9CBCD4FFA1C1DAFFA7C6 E1FFAECCE8FFB2D0EDFFB2D1EDFFB9D7F2FFC3DFF9FFC8E4FDFFC9E3FDFFC5E1 FBFFC2DEF7FFC1DCF2FFC0DAF0FFC1DBF2FFC2DBF2FFC3DBF2FFC2DCF2FFC5DD F2FFCAE1F4FFCBE2F5FFCEE4F7FFD9EBFCFFACCEE5FF7BA7C4FF6491AFFF6993 ADFF658EA8FF55829BFF6D97B1FF86ADCAFF6996B9FF92B8D9FFC7E0F7FFE3F3 FFFFDFF0FFFFDBECFFFFD8E8FFFFD6E7FEFFD5E7FEFFD6E7FDFFD8E9FEFFD3E6 FDFFD5E6FEFFD8E8FEFFC8DBF5FFCBDFFAFFCCE2FCFFCFE4FCFFD8E8FEFFD9E8 FCFFD1E2FAFFCBDEFBFFC9DFFCFFCCE4FBFFC0DBF7FFC2DCF8FFCADFF8FFD1E1 F6FFE0EDF9FFD2E2F7FFCBDCF7FFCBDEF6FFCADDF4FFD3E0F6FFC0D5F4FFAEC4 E9FFABB6D9FFACB4D6FFACB5D8FFB0B9D9FFB1BADAFFA9B4D9FFA8B3D6FFB3BB DDFFB3BCE2FFA2AFD9FF8693B8FF60667CFF30333CFF0C0D10FF020203FB0000 00F1000000C50000007E00000034000000090000000000000000000000000000 0000000000000000000000000000000000000000000200000018000000520000 009D000000DE000000F9000203FF03070EFF091526FF122947FF102C53FF1530 5AFF17335BFF15325AFF1D335EFF172E55FF142B50FF142E55FF133562FF1531 5DFF13254BFF1A294BFF283B5EFF314970FF506E99FF6886B0FF7490B8FF7792 BBFF7C99C0FF809EC4FF87A4C8FF8EABCCFF91B2D2FF95B7D6FF9ABDDDFFA1C4 E4FFA9CBEBFFABCEEEFFAED2F0FFB4D6F3FFB9DAF7FFBCDCF9FFBADAF8FFB9D8 F7FFB9D7F5FFB9D6F3FFBAD7F2FFB9D6F1FFB9D5F0FFB9D6F0FFB9D6EFFFBBD6 F0FFBEDAF2FFC1DDF3FFC3DEF4FFC4DFF5FFC7E1F6FF9FC4E0FF6391B1FF3662 7CFF376179FF376179FF416A85FF547F9EFF719BBEFFB3CEEAFFCCE0FAFFCFE2 FAFFCFE2F9FFCEE1F9FFCEE0F9FFCEE0F9FFCFE1F9FFCFE1FAFFCFE1FAFFCFE1 FAFFCFE1FAFFCEE0FAFFCADCF7FFCCDDF8FFCDDEF8FFCDDEF7FFCFDEF7FFCFDE F7FFCCDCF7FFCADBF7FFC9D9F5FFC6D7F4FFC3D4F1FFC3D3F0FFC3D3F0FFC5D4 EFFFC7D5EFFFC4D3EEFFC2D1EEFFC0CEEDFFBDCBEAFFBFCEEDFFBACDEEFFB4C9 EBFFB3C3E7FFB4BFE2FFB3BEE0FFB3BEE0FFB3BDE0FFB0BBDFFFB1BBDFFFB1BC E2FFB2BFE8FFB0BFE7FF9FADD1FF707893FF3A3F4EFF13161AFF030405FE0000 00F6000000D50000009500000048000000110000000200000000000000000000 0000000000000000000000000000000000000000000400000024000000670000 00B1000000E8000100FC010406FF020912FF09162AFF172E4FFF11315AFF102D 56FF102A53FF122D57FF1A3661FF142B52FF11274BFF122C50FF14315AFF1226 4CFF152648FF182847FF1F3050FF314C71FF5A77A1FF6C8AB4FF6F8FB8FF7092 BBFF7897BFFF7B9CC3FF809FC6FF85A4C9FF89ABCFFF8DB1D5FF92B8DDFF98BF E4FF9EC4E9FFA3CAECFFA6CDEFFFACD0F2FFB0D3F4FFB0D3F5FFAFD1F3FFB0D0 F2FFB1D0F1FFB1D0F0FFB1D1F0FFB1D0EEFFB1CFEDFFB1CFEDFFB2D0ECFFB2D0 ECFFB7D4EFFFBAD7F0FFBAD7F0FFBBD8F1FFC2DDF4FFB7D5EFFF95BAD7FF6692 B0FF4F7997FF2F5874FF3D6987FF6E9BBEFF9ABDDEFFBED7F3FFC6DCF7FFC4DA F5FFC5DAF5FFC4DAF5FFC6DAF6FFC7DAF6FFC7DBF6FFC6DCF7FFC6DBF7FFC7DB F6FFC8DBF6FFC7DAF6FFC7DAF5FFC7D8F5FFC7D8F4FFC7D8F4FFC7D7F3FFC6D7 F3FFC5D6F3FFC3D5F1FFC1D3F0FFBFD1EFFFBFCFECFFBFCEEBFFBFCDEBFFBECD EBFFBECCE9FFBDCCE9FFBCCAE9FFBAC8E8FFBAC7E7FFB9C7E8FFB8C8E9FFB7C7 E9FFB7C5E9FFB6C3E6FFB6C2E5FFB5C1E5FFB5C0E4FFB5C1E4FFB5C0E4FFB3C0 E5FFB4C2E8FFB5C4E8FFABBADCFF8490ACFF505767FF21252BFF08090AFF0101 01FA000000E4000000AC000000600000001D0000000400000000000000000000 00000000000000000000000000000000000000000008000000320000007B0000 00C3000000F0000000FD01050AFF040D19FF0C1C33FF1A3257FF1A3E68FF193B 64FF15315AFF122B58FF173762FF142D55FF122B50FF112E52FF132C52FF1123 46FF142546FF122341FF172947FF365276FF637EA6FF6F8CB4FF6C8BB4FF6E8F B8FF7394BAFF7697BFFF799AC3FF7C9EC6FF80A5CBFF86ADD4FF8BB4DCFF90B9 E1FF95BCE4FF9AC2E8FF9DC5ECFFA1C9EEFFA5CBEFFFA5CAEFFFA5CAEFFFA7CA EEFFA8C9ECFFA8C9EBFFA9C9EAFFA9C9EAFFAAC9E9FFAAC9E9FFACCAE9FFACCA E8FFAFCDEAFFB1CFEBFFB2CFEBFFB4D1ECFFB5D2EDFFBAD5EFFFB5D3EEFFA1C5 E5FF8DB0CFFF6B8EACFF769CBBFF9FC5E5FFB6D3F2FFBDD6F4FFBED7F3FFBED6 F3FFBED5F3FFBED6F3FFBFD6F3FFC0D6F3FFC0D6F3FFBFD8F5FFBFD7F5FFC0D7 F3FFC1D6F3FFC2D6F4FFC0D6F3FFC0D4F2FFC0D4F2FFC1D4F1FFC0D2F0FFC0D2 F0FFBED1EFFFBDCFEDFFBBCDECFFBACDEBFFBBCBE9FFBBCAE8FFBACAE8FFBAC9 E7FFBAC8E5FFB9C7E6FFB8C6E5FFB7C5E4FFB8C5E5FFB6C4E4FFB6C4E4FFB5C3 E4FFB5C2E4FFB5C2E3FFB3C1E3FFB3BFE3FFB3BFE3FFB3C0E2FFB3C0E3FFB2C0 E2FFB2C1E3FFB3C1E3FFAEBDDEFF93A0BCFF626B7DFF2F333BFF0D0E10FF0202 03FD000000EE000000BF000000760000002B0000000800000000000000000000 0000000000000000000000000000000000010000000F000000410000008D0000 00D1000000F7000001FF02070DFF061321FF0E223BFF183359FF244974FF284D 76FF1F3D65FF122C56FF163761FF163159FF132D54FF102C52FF10284EFF1127 4AFF0E2342FF0B203EFF182E4DFF3F5B7FFF617DA2FF6D87AEFF6D87B0FF6F8B B4FF6F8FB5FF7192BAFF7496BFFF779BC4FF7BA1CAFF82AAD2FF87B0D8FF8AB3 DBFF8EB5DDFF90B8E0FF95BCE4FF97BFE6FF99C0E7FF9BC2E8FF9CC2E9FF9EC2 E8FF9FC2E7FF9FC1E5FFA0C0E4FFA2C1E3FFA3C2E3FFA4C3E4FFA6C4E4FFA6C3 E4FFA7C5E4FFA8C6E4FFA9C6E5FFABC7E5FFADC9E6FFADC9E6FFAFCBE8FFB5D0 ECFFBBD5F1FFBDD8F6FFBCD7F4FFBAD3EFFFB6D0EEFFB6CFEFFFB6CFEFFFB6D0 EFFFB7D0EFFFB7D1EFFFB9D2F0FFBAD2F0FFBAD2F0FFBAD3F2FFBBD3F2FFBBD3 F1FFBBD3F0FFBCD3F0FFBAD2F1FFBAD2F1FFBBD1EFFFBCD0EEFFBCCFEFFFBBCD EEFFBACDECFFB9CBEBFFB8CAE9FFB7C9E9FFB8C8E7FFB7C7E6FFB6C6E5FFB5C5 E3FFB5C4E3FFB4C3E3FFB4C2E2FFB3C2E1FFB2C0E0FFB1C0DFFFB1C0DFFFB1BF DEFFB0BEDFFFB0BDDFFFAFBCDEFFAEBBDEFFAEBBDEFFAEBBDDFFAFBCDDFFAEBC DCFFADBBDCFFADBBDDFFACBBDCFF99A5C3FF6E778CFF3A3F4AFF111317FF0304 04FE000000F4000000CE0000008A0000003B0000000D00000000000000000000 0000000000000000000000000000000000020000001500000052000000A00000 00DD000000F9000103FF030912FF061121FF091A30FF0E2848FF1D426BFF183E 63FF0E2E50FF0D284CFF183664FF102A52FF0E254BFF0F274CFF0E284AFF0D24 43FF0A233EFF072440FF153454FF456388FF5F7BA0FF6882A8FF6983AAFF6987 ADFF6C8AB0FF6D8CB3FF7191BAFF7598C1FF789CC6FF7EA4CDFF81A9D1FF83AB D3FF85ABD3FF86ADD4FF8AAFD7FF8EB2D9FF91B5DBFF94B7DCFF92B8DDFF95B8 DDFF97B9DEFF98BADDFF98B9DDFF98B8DCFF9AB9DBFF9CBBDCFF9EBDDCFF9EBC DCFFA0BDDEFFA2BDDEFFA3BEDEFFA3BFDFFFA5BFDFFFA7C1DFFFA8C3E0FFA8C4 E1FFA8C4E1FFABC5E4FFACC6E7FFACC7E7FFADC6E6FFAFC8E8FFAFC8E8FFB0C9 E8FFB0C9E9FFB1CAE9FFB2CBE9FFB2CBEAFFB3CCEBFFB5CDEBFFB5CDECFFB5CE ECFFB6CEECFFB7CDEBFFB8CDEDFFB7CDEDFFB5CDECFFB6CCECFFB7CBEDFFB7CA EBFFB7CAEBFFB6C9EAFFB5C8E9FFB5C7E7FFB4C6E6FFB3C4E4FFB3C3E3FFB2C3 E2FFB0C2E1FFB1C2E1FFB1C0E1FFB0BFE0FFAEBEDEFFADBDDDFFADBDDEFFACBC DEFFACBBDEFFABBADCFFACB9DBFFACB9DBFFABB9DBFFABB9DAFFAAB8DBFFA8B8 DAFFA9B8D9FFA9B7D9FFA9B8D9FF9CABC9FF79849BFF474D5CFF1A1C21FF0506 08FE000000F9000000DC000000A00000004B0000001400000001000000000000 0000000000000000000000000000000000040000001F00000063000000B10000 00E8000000FD010204FF050D18FF08162AFF091C37FF0A203EFF0F2C52FF102C 4EFF0E2644FF0E2446FF14305CFF102A51FF0F284DFF0E2A4DFF0B2B48FF0D27 44FF183251FF1E3C5DFF2E4D6FFF5D769AFF627BA1FF657FA3FF6782A5FF6784 A9FF6B86ADFF6C89AFFF6F8DB2FF7491B8FF7B96C0FF7D9AC5FF7E9EC7FF7FA0 C8FF7F9FC9FF7FA0C9FF83A4CAFF85A6CCFF87A7CDFF8BA9CDFF8CABCFFF8FAD D1FF91AFD2FF92B0D3FF93B0D3FF93B1D3FF95B2D3FF97B3D4FF98B5D5FF99B5 D5FF9AB5D4FF9CB6D5FF9DB7D7FF9EB8D9FF9EB9D8FFA0BAD8FFA1BBD8FFA2BC D9FFA2BEDBFFA4BEDCFFA6BFDDFFA8BFDDFFA9C0DEFFA9C2E0FFAAC3E1FFABC3 E1FFACC4E2FFAEC4E3FFADC5E5FFADC6E6FFAFC6E6FFB1C8E7FFB0C7E7FFB1C8 E7FFB1C8E7FFB2C9E8FFB3C9E9FFB3C8E8FFB3C7E7FFB3C7E7FFB2C7E6FFB2C6 E7FFB2C6E7FFB2C5E7FFB2C4E6FFB1C3E4FFB0C3E4FFB0C2E3FFB0C1E2FFAFC0 E1FFAEC0E0FFADBFE0FFADBEE0FFADBCDFFFAEBCDEFFACBCDDFFAABBDBFFA9BA DBFFAAB9DCFFA9B8DBFFA9B7DAFFA9B6D9FFA8B6D9FFA6B6D8FFA7B5D8FFA5B5 D8FFA6B5D8FFA7B5D7FFA5B4D6FF9FAECEFF818DA8FF52596BFF22242BFF0708 0AFE000000FB000000E4000000AD0000005A0000001C00000003000000000000 0000000000000000000000000000000000070000002900000072000000BD0000 00EE000001FE010206FF060E1BFF0B1B33FF0C2444FF0C284AFF0E264EFF0D25 48FF0B2443FF0C2445FF122C53FF0E254CFF0F274AFF102B4AFF0E2A45FF1026 40FF29405FFF3D5779FF4B6689FF647B9DFF657B9FFF667DA0FF6780A3FF6882 A7FF6B84A9FF6B87ACFF6D89AEFF718CB1FF7790B7FF7993B9FF7A95BBFF7B97 BDFF7C97BFFF7C98C0FF809CC1FF829EC3FF839FC4FF86A1C5FF89A3C7FF8AA6 C8FF8CA7C9FF8EA8CBFF8FAACAFF90AACAFF91ABCBFF93ACCCFF94AECCFF95AF CDFF96AFCDFF97B0CDFF98B1CEFF99B3D1FF9AB3D1FF9CB4D2FF9EB5D3FF9FB6 D3FFA0B8D5FFA0B8D5FFA1B9D6FFA3BAD6FFA4BBD8FFA5BCD9FFA6BDDBFFA7BE DCFFA8BEDCFFAABFDDFFA9C0DFFFAAC0E0FFABC1DFFFACC2E0FFACC2E1FFADC2 E1FFADC3E2FFADC3E3FFAEC2E3FFAEC2E2FFAEC1E1FFAFC1E1FFADC2E0FFADC0 E1FFADC0E1FFAEC0E1FFAEBFE1FFADC0E0FFACBFDFFFACBEE0FFACBDE0FFABBD DFFFABBCDDFFAABCDEFFAABADDFFAAB9DCFFAAB9DCFFA9B9DBFFA8B9D9FFA7B8 D9FFA7B6D9FFA6B6D9FFA7B5D9FFA6B5D9FFA5B4D8FFA4B4D8FFA5B3D7FFA4B4 D6FFA3B3D6FFA4B3D6FFA4B3D5FF9FAFD0FF8794B1FF5C6579FF2B2E38FF0C0D 0FFE010101FC000000EA000000BA0000006A0000002500000005000000000000 00000000000000000000000000000000000B0000003300000081000000C80000 00F2000001FE010307FF07101FFF0C1D38FF0F294EFF12355EFF0E2851FF122C 51FF173154FF183254FF193359FF132C52FF11294BFF112947FF122946FF162C 46FF344A68FF516688FF607597FF637798FF66799CFF687B9EFF687DA0FF6880 A3FF6B82A5FF6B84A8FF6D86ABFF7088ADFF718BAFFF748DB0FF768FB2FF7891 B5FF7A93B7FF7B94B8FF7E97BAFF8099BDFF829BBFFF849DC1FF859FC2FF86A0 C2FF88A2C3FF8AA2C5FF8AA4C3FF8EA5C3FF8FA6C5FF90A7C5FF92A9C4FF93A9 C5FF94AAC7FF94ABC8FF96ACC8FF98AEC9FF98ADCAFF9AAFCCFF9CB1CEFF9DB1 CEFF9EB2D0FF9EB3D0FF9FB4D1FFA0B5D2FFA0B6D3FFA1B7D3FFA3B8D5FFA4B8 D6FFA5B9D7FFA6BAD8FFA6BBD9FFA7BBD9FFA8BCD9FFA9BDDAFFA9BDDCFFA9BD DCFFA9BDDCFFAABEDDFFAABDDCFFAABDDBFFAABCDBFFAABCDBFFA9BCDBFFAABB DCFFAABBDBFFAABBDBFFAABADBFFA9BBDAFFA8BADAFFA8B9DBFFA8BADCFFA7B9 DBFFA7B8DAFFA7B8D9FFA6B7D8FFA6B6D8FFA5B6D8FFA6B6D7FFA5B5D6FFA4B4 D7FFA4B4D6FFA4B4D6FFA4B3D7FFA4B3D7FFA3B3D7FFA2B2D6FFA3B2D6FFA2B2 D5FFA2B1D4FFA3B1D5FFA3B1D4FF9EAFD1FF8B9AB8FF666F86FF343843FF1012 15FF020203FD000000EF000000C60000007A0000002F00000008000000000000 00000000000000000000000000000000000F0000003D00000090000000D40000 00F8000001FF020409FF0A1323FF0C1C37FF0F284CFF183C67FF0B2C50FF243E 64FF394F75FF385074FF2D4D72FF2A486DFF203A5BFF172F4EFF1A3454FF2444 62FF3B5675FF556A89FF667896FF657695FF677899FF69799BFF697A9AFF687C 9BFF6B7FA0FF6C81A3FF6D83A5FF6F85A8FF7188ACFF7289ACFF748BAEFF768D B0FF788FB2FF7A91B3FF7A93B4FF7C95B7FF7E97BBFF809ABDFF809ABCFF829C BDFF859DBEFF869FBFFF889FC1FF8DA1BFFF8EA3BFFF8EA4BFFF90A4BFFF93A3 C0FF92A5C3FF92A6C4FF95A8C4FF98A8C3FF98A8C4FF98AAC6FF99ACC8FF9AAD C9FF9CAECAFF9CB0CDFF9EB1CEFF9FB1CEFF9FB2CEFF9FB2CEFFA1B3D0FFA3B4 D1FFA2B4D3FFA3B5D4FFA3B6D3FFA4B7D4FFA5B8D6FFA6B8D7FFA7B8D8FFA6B9 D7FFA6B9D7FFA8B9D6FFA7BAD6FFA8BAD7FFA7B9D7FFA5B8D6FFA6B8D7FFA7B8 D7FFA6B7D7FFA6B7D6FFA7B6D5FFA6B6D6FFA6B6D6FFA5B6D6FFA4B5D6FFA4B5 D6FFA4B5D6FFA4B4D4FFA3B3D4FFA2B2D4FFA2B2D3FFA3B3D2FFA2B1D2FFA1B1 D3FFA1B1D4FFA2B1D3FFA1B0D3FFA1B0D3FFA1B0D2FFA0B0D2FF9FB0D2FF9FAE D2FFA0ADD3FFA1AED3FFA0AFD3FF9EADD1FF8F9DBCFF6C778EFF393F4CFF1315 19FF030304FF000000F3000000D0000000870000003A0000000D000000000000 000000000000000000000000000000000013000000480000009B000000D90000 00F8000103FE02050BFF091221FF0D1C35FF102949FF183E64FF375170FF4B60 80FF516789FF506688FF556889FF556786FF4D617FFF475D7CFF4A6081FF566C 8AFF5C718EFF5F728FFF627390FF637392FF637693FF647895FF667A97FF687A 98FF6B7C9AFF6D7F9DFF6C81A0FF6C82A3FF6E85A6FF7185A6FF7487A9FF768A ABFF768DACFF788EAEFF7990B1FF7B92B3FF7E94B5FF8094B7FF7F95B7FF8297 B8FF8598B8FF889AB9FF8B9CBDFF8B9CBBFF8C9DBBFF8D9EBBFF8EA0BBFF90A0 BCFF8FA0BEFF91A2BEFF95A4BDFF95A5BFFF95A6C2FF96A7C4FF98A8C5FF9AAA C5FF99ABC6FF99ACC8FF9BACC9FF9DAECAFF9DAFCAFF9DB0CCFF9EB0CDFF9FB0 CEFF9FB2CEFF9FB2D0FFA1B2D0FFA1B4D1FFA2B5D2FFA3B5D2FFA4B5D3FFA3B5 D4FFA3B5D3FFA4B6D2FFA3B6D2FFA4B6D3FFA4B5D4FFA4B5D3FFA4B5D2FFA4B5 D3FFA3B4D3FFA3B3D3FFA3B4D2FFA3B3D3FFA2B3D2FFA3B3D2FFA2B2D2FFA0B1 D1FFA2B1D1FFA2B1D1FFA1B0D2FFA0AFD1FFA0AECFFFA0AFCFFF9FAED0FF9FAD CFFF9FAECFFF9FAECFFF9EADCFFF9EADCFFF9EADCFFF9DADCFFF9DABCFFF9DAB CEFF9CAACEFF9BAACFFF9BAACDFF9BA9CEFF909DBFFF717B95FF414757FF181A 20FF050607FD000000F5000000D7000000930000004300000011000000000000 00000000000000000000000000010000001700000052000000A7000000E10000 00FB000203FE04080FFF081323FF0E1B33FF122340FF153151FF384E6DFF5162 82FF586A8CFF56698BFF5C6B89FF5D6C89FF5C6C89FF5A6C8AFF5A6E8CFF5F71 8FFF61728FFF61728EFF62718DFF637391FF637590FF647793FF667997FF6979 98FF6C7B97FF6D7D99FF6D7F9CFF6E81A0FF6F82A2FF7284A4FF7486A6FF7588 A7FF768BA9FF788DACFF798DADFF7C8FAEFF7F91B0FF8091B2FF7E93B2FF8195 B2FF8496B3FF8597B5FF8799B6FF8A99B7FF8A9AB7FF899BB7FF8A9CB8FF8E9F BAFF8E9FBBFF8F9FBCFF93A1BBFF92A3BDFF93A3C0FF94A4C0FF96A5C0FF98A7 C2FF98A8C3FF99A9C6FF9AA9C7FF9AAAC6FF9BABC5FF9CADC8FF9DADCAFF9EAD CBFF9EAFCBFF9FB0CDFFA0B0CEFFA0B1CEFFA1B2CFFFA3B1CFFFA1B2D0FFA2B2 D1FFA3B2D1FFA3B3D1FFA2B2D0FFA3B3D0FFA2B2D0FFA2B2D0FFA3B2D0FFA2B2 D0FFA1B1D1FFA1B1D1FFA1B1D1FFA0B0CFFFA1B0D0FFA1B0D0FFA1B0CFFFA0AF CFFFA1AED1FFA0AECFFF9FADCEFF9FACCDFF9FADCEFF9FACCDFF9EACCCFF9EAB CCFF9EAACDFF9CAACDFF9CAACBFF9CA9CBFF9CA9CCFF9BA8CBFF9AA7CBFF9BA7 CBFF9AA7CBFF99A6CBFF99A6C9FF99A6CAFF909CBEFF757E9BFF474C5EFF1B1D 24FF050608FE000000F8000000DD0000009D0000004C00000016000000000000 00000000000000000000000000030000001C0000005A000000AF000000E50000 00FD010204FF040A12FF0C192BFF121F38FF15213DFF142646FF223859FF4958 7AFF5D698BFF586887FF5A6985FF5B6A86FF5D6C88FF5E6D8AFF5D6E8AFF5D6D 8AFF5F6F8BFF61708CFF62718DFF62738FFF64748FFF657691FF677794FF6A79 97FF6C7A96FF6C7B97FF6E7D9AFF707F9EFF7180A0FF7283A1FF7484A3FF7586 A4FF7588A6FF768AA8FF7A8BA9FF7D8CABFF7E8EACFF7F8FAEFF7D91AEFF8092 AFFF8393B0FF8395B1FF8496B2FF8896B4FF8798B5FF8799B5FF8999B5FF8C9C B7FF8D9DB9FF8E9DBAFF8F9EBAFF90A0BBFF91A0BEFF92A1BEFF94A3BEFF95A5 C0FF96A5C1FF97A6C3FF98A7C4FF98A7C5FF99A9C4FF9AABC6FF9BABC6FF9CAB C7FF9CACC9FF9DADCAFF9EADCBFF9EAECBFF9FAECBFFA0AFCCFF9EAFCCFFA0B0 CEFFA1B0CFFFA0B0CEFFA1B0CDFFA1B0CEFFA1B0CEFFA0B0CEFFA0AFCEFFA0AF CDFF9FAFCEFF9FAFCEFF9FAECEFF9EAECDFFA0AECDFF9FAECDFF9EADCCFF9FAC CDFF9EABCEFF9EABCCFF9DAACAFF9DAACAFF9DAACBFF9DAACAFF9CA9C9FF9CA8 C9FF9BA7C9FF9AA7CBFF9AA6C9FF9AA6C8FF99A5C9FF99A5C8FF98A4C7FF98A4 C8FF98A4C8FF97A3C8FF97A3C6FF98A3C7FF909BBEFF77809EFF4D5265FF1F21 29FF07080AFF000000F9000000E0000000A5000000530000001A000000010000 00000000000000000000000000040000002000000061000000B4000000E70000 00FC010305FF050A13FF111E32FF15233EFF182442FF243152FF1F3456FF4755 76FF5F6987FF596783FF5A6884FF5A6983FF5B6A85FF5D6C86FF5D6C87FF5D6C 87FF5F6E89FF606F8BFF61708DFF61728CFF63728EFF65748FFF677691FF6A78 94FF697995FF6B7B98FF6D7D9AFF6F7E9CFF717F9EFF71819EFF7483A0FF7584 A2FF7486A3FF7487A4FF7989A6FF7B8AA8FF7B8BA9FF7B8DAAFF7C8EAAFF7E8F ACFF8091AEFF8293AFFF8394B1FF8593B2FF8595B4FF8697B4FF8998B3FF8998 B5FF8B99B7FF8D9BB7FF8D9DB8FF8E9DB9FF8F9DBCFF919EBCFF92A0BCFF94A1 BEFF94A2BEFF95A3BFFF96A4C2FF97A6C4FF98A6C4FF98A8C5FF98A8C4FF99A8 C4FF9AAAC6FF9AA9C7FF9BAAC7FF9CABC8FF9DABC9FF9DACC9FF9CACC8FF9CAD CAFF9DADCBFF9DACCBFF9EADCAFF9EADCBFF9EAECCFF9EAECCFF9DACCBFF9EAC CBFF9DACCBFF9DACCBFF9CABCAFF9CABCAFF9DABCAFF9CABCAFF9BAAC9FF9BA9 C9FF9BA8C9FF9BA8C9FF9AA7C8FF9BA7C7FF9BA7C7FF99A6C6FF99A6C6FF99A4 C5FF97A3C3FF98A4C7FF98A3C7FF97A3C5FF96A3C4FF96A2C5FF96A2C5FF95A1 C4FF95A1C4FF94A0C4FF949FC2FF95A1C5FF8F9ABEFF7982A0FF50576AFF2325 2EFF0A0B0EFE010101F9000000E3000000AC0000005A0000001E000000020000 00000000000000000000000000050000002400000069000000BC000000EC0000 00FE020205FF070A14FF10192CFF0D1C36FF1C2C49FF4F5976FF596480FF5A65 80FF596580FF596581FF5A6682FF5B6982FF5A6A81FF5A6B82FF5C6C85FF5F6B 86FF5F6D88FF5F6E89FF5F6E89FF61718BFF63728CFF65738FFF677591FF6877 92FF687895FF6A7997FF6D7B99FF6E7D9AFF6E7E9AFF6F809AFF71819DFF7482 9FFF74839FFF7686A1FF7786A2FF7887A4FF7989A6FF798BA8FF7B8DA8FF7C8E AAFF7E8FACFF7F90ACFF8192AFFF8393B1FF8393B2FF8494B2FF8796B3FF8896 B3FF8996B4FF8A98B5FF8B9AB6FF8C9BB6FF8F9CB9FF8F9DB9FF909DB9FF919E BBFF92A0BBFF93A1BDFF94A2BFFF95A3BFFF96A3C0FF96A4C2FF97A5C3FF98A6 C3FF98A7C3FF99A7C4FF9AA9C5FF9BA9C7FF9BA8C7FF9BA9C7FF9BAAC8FF9AAA C7FF9AAAC7FF9BABC7FF9BAAC9FF9BAAC9FF9BA9C9FF9BA9C9FF9CAAC9FF9CAA C9FF9BA9C9FF9AA9C8FF9AA8C7FF9AA8C7FF9AA8C7FF9AA8C7FF9AA8C7FF99A7 C8FF99A6C6FF99A5C6FF99A5C6FF98A4C5FF97A4C4FF96A3C3FF96A2C3FF96A2 C3FF95A1C2FF94A0C3FF94A0C3FF94A0C3FF94A0C2FF949FC3FF94A0C2FF939F C0FF929EBFFF929EBFFF929EBFFF929EC1FF8D99BCFF7983A1FF51576BFF2327 2FFF090A0DFF000000FB000000E8000000B20000005E00000020000000020000 0000000000000000000000000006000000270000006D000000BE000000EB0000 00FC010104FF050710FF0E1829FF1C2D44FF334460FF515E7BFF5A657FFF5A66 7EFF58667EFF586581FF5B6681FF5B6780FF5A6880FF5A6982FF5C6A85FF5F6B 87FF5E6C87FF5D6D88FF5E6E88FF62708AFF63728CFF64738DFF64748EFF6575 90FF697795FF697795FF6A7895FF6C7B96FF6C7D97FF6E7E9AFF707F9AFF7380 9BFF74829DFF75849EFF7584A1FF7685A2FF7887A4FF7889A7FF7A8AA7FF798B A6FF7B8BA6FF7F8DA9FF7F90AAFF8091AEFF8091B0FF8092B1FF8494B1FF8594 B0FF8795B2FF8896B4FF8998B4FF8999B3FF8B99B5FF8B9AB7FF8C9BB9FF8E9C BAFF909DBBFF909EBCFF919FBDFF92A0BDFF92A2BCFF92A2BEFF94A3C0FF95A3 C1FF96A3C1FF96A4C1FF97A5C3FF98A5C4FF98A5C4FF99A7C6FF98A7C7FF98A7 C6FF98A7C5FF9AA8C6FF99A8C7FF98A7C7FF99A7C7FF99A7C6FF99A6C6FF99A7 C7FF98A8C6FF98A7C6FF99A6C5FF98A7C5FF98A5C6FF98A4C5FF98A4C5FF97A5 C5FF97A4C5FF97A3C4FF96A2C3FF95A2C2FF95A2C2FF94A0C0FF939FBFFF939F BFFF939FC0FF929EBFFF919EC0FF929DC0FF929DC0FF919DBFFF919DBEFF909C BDFF8F9CBCFF909CBBFF919CBCFF909ABBFF8A96B5FF77839EFF535A6EFF2629 32FF0C0D10FF020102FA000000E6000000B40000006200000022000000030000 00000000000000000000000000060000002800000070000000C1000000ED0000 00FD020305FF0D1019FF212C3CFF39485EFF4C5B75FF54627CFF58647EFF5865 7EFF58667EFF596680FF5A6680FF5C6680FF5C6881FF5C6883FF5D6883FF5E6A 85FF5E6C85FF606D87FF616E88FF616E89FF64708CFF65728DFF65728DFF6574 8EFF687692FF687691FF697691FF6B7893FF6C7B95FF6E7C97FF6F7D98FF707F 99FF73819CFF74819DFF74839FFF7584A1FF7785A3FF7887A5FF7A89A6FF7A8A A5FF7B8AA7FF7D8CA9FF7E8DA9FF808FAAFF8090ACFF8191AEFF8392B0FF8493 B0FF8593B1FF8795B2FF8796B3FF8897B3FF8998B3FF8A99B5FF8C9AB7FF8D9B B7FF8D9CB7FF8E9DB9FF8F9DBBFF909EBCFF919FBBFF92A0BDFF92A1BEFF93A1 C0FF94A1C1FF94A2C1FF96A3C3FF96A3C3FF96A3C2FF96A6C3FF95A5C4FF95A5 C4FF96A5C3FF97A5C3FF97A5C5FF97A5C5FF98A5C5FF98A5C5FF97A4C4FF97A4 C4FF97A5C4FF97A4C4FF97A4C5FF97A4C4FF97A3C3FF97A3C3FF96A2C3FF95A2 C2FF95A2C3FF94A1C3FF94A1C0FF93A0BFFF94A0C1FF939FBFFF929EBEFF929E BFFF929EBFFF909DBCFF909DBDFF909CBEFF909BBEFF909CBDFF8F9ABCFF8E9A BBFF8E9ABAFF8E99B9FF8E99BAFF8E98BAFF8A95B4FF78829DFF525A6EFF2629 32FF0B0C0FFF010101FB000000E9000000B70000006500000024000000030000 00000000000000000000000000060000002A00000073000000C3000000EF0000 00FE040508FF181C24FF343D4FFF4C596FFF58667DFF57647DFF59647EFF5865 7FFF58667FFF596680FF5A6680FF5D6781FF5D6883FF5D6783FF5E6782FF5E6A 83FF5F6B83FF626C85FF656C88FF626D89FF64708BFF66708CFF66718CFF6673 8DFF68758FFF68768FFF697690FF6B7791FF6D7994FF6E7A95FF6E7B96FF6F7D 99FF72809BFF73809CFF73829DFF7583A0FF7684A2FF7785A3FF7987A4FF7B89 A5FF7C8AA8FF7C8BA9FF7D8BA8FF7F8EA9FF808FAAFF818FACFF8391AEFF8491 AFFF8492B0FF8593B1FF8795B1FF8896B2FF8997B2FF8B98B4FF8C99B6FF8D9A B6FF8C9BB5FF8D9BB7FF8E9CBAFF8F9DBCFF919DBCFF929EBCFF929FBEFF92A0 C0FF92A0C1FF93A1C0FF94A2C2FF95A2C2FF95A2C1FF94A4C2FF94A3C2FF94A3 C3FF95A4C3FF96A4C2FF96A4C4FF97A4C4FF97A4C3FF96A4C3FF97A4C3FF96A3 C2FF96A2C2FF96A2C3FF96A2C3FF96A2C2FF96A3C1FF96A3C1FF95A2C2FF94A0 C1FF94A0C1FF93A0C1FF93A0BFFF93A0BFFF929EBFFF929EBEFF919EBFFF929D BEFF919CBDFF909DBBFF8F9CBBFF8F9BBCFF8F9ABCFF919ABBFF8E98BBFF8D98 BAFF8D98B8FF8C97B7FF8B97B8FF8D98B9FF8A94B4FF78809DFF52596DFF2528 31FF0B0C0EFF000101FC000000E9000000B80000006500000024000000030000 00000000000000000000000000070000002B00000074000000C2000000ED0001 01FD07080CFF1D2029FF383E51FF4B566DFF53627AFF57637DFF5B637CFF5B64 7EFF5B6581FF5A6681FF5B6680FF5D6782FF5D6782FF5C6782FF5D6882FF5E6A 84FF5F6A82FF626A83FF656B85FF646D88FF647089FF666F89FF676F8AFF6672 8DFF67728EFF68748FFF697790FF6A7891FF6D7893FF6E7894FF6E7A95FF6E7C 98FF707E9BFF72819CFF73819CFF74819DFF75829FFF7582A0FF7784A1FF7987 A3FF7A88A5FF7B89A6FF7B8AA5FF7F8CA9FF7F8DABFF808EABFF8290ACFF8391 ADFF8391AFFF8592AFFF8694AEFF8796B0FF8795B1FF8896B4FF8A97B6FF8B98 B6FF8D9AB7FF8C9AB8FF8D9BB9FF8E9CBAFF8F9CBAFF8F9DBBFF909EBEFF919E BFFF919EBFFF91A0BFFF91A0C0FF92A0C0FF93A1C0FF93A2C1FF93A1C1FF94A2 C2FF95A3C3FF95A3C2FF94A3C3FF95A3C3FF95A3C2FF95A3C2FF96A3C2FF95A2 C2FF95A1C2FF95A1C1FF95A1C0FF95A1C1FF95A2C0FF94A1C0FF93A0C1FF93A0 C1FF939FC0FF929EBFFF929EBFFF929EBFFF919DBEFF909CBEFF909CBDFF909B BCFF909BBAFF8F9BBAFF8D99BAFF8D99B9FF8D99B9FF8F98B9FF8D97B9FF8D97 B7FF8C96B6FF8C96B6FF8B96B6FF8B97B6FF8691B2FF757D9CFF53576CFF2528 31FF0C0D10FF020202FB000000E6000000B50000006300000023000000030000 00000000000000000000000000070000002C00000076000000C6000000F00101 01FE080A0CFF1B1F28FF393E4FFF4D546CFF565F7AFF58607BFF59627BFF5A61 7CFF5A627EFF5B637FFF5D647EFF5C647FFF5A667FFF5A677FFF5C6881FF5D69 83FF5F6982FF626983FF636A85FF616B86FF636D86FF666E88FF666F8AFF6470 8BFF64718CFF66738EFF68748FFF697590FF6A7792FF6A7692FF6C7996FF6E7C 99FF6E7C99FF6F7E99FF71809BFF72819CFF73839DFF7584A0FF7685A0FF7887 A3FF7988A5FF7988A6FF7B8AA8FF7C8AA7FF7D8BA9FF7F8DAAFF8090AAFF8290 ACFF8291AEFF8392AFFF8492AFFF8493AFFF8594B1FF8694B3FF8895B4FF8996 B4FF8996B5FF8B98B7FF8C99B8FF8D9AB8FF8D9AB8FF8D9BBBFF8E9BBCFF8F9B BCFF8F9DBDFF909DBDFF909EBEFF8F9EBEFF8F9FBDFF929FBEFF929FC0FF909F C0FF909FC0FF939FC1FF939FC1FF929FC1FF939FC0FF939FC0FF929EBEFF94A0 C0FF93A0C0FF929FBFFF929FBFFF929EBFFF929FBFFF929FBFFF919EBEFF909D BEFF8F9CBCFF8F9CBCFF8F9BBBFF8E9BB9FF8F9BBAFF8E9ABAFF8E99B8FF8D99 B7FF8E99B7FF8F97B7FF8D96B6FF8B97B7FF8B97B7FF8B95B6FF8A95B5FF8A95 B4FF8A95B4FF8A93B2FF8B91B2FF8994B2FF848FAFFF727B98FF4E5467FF2225 2DFF090A0CFF000000FD000000E9000000B50000006200000022000000020000 00000000000000000000000000070000002C00000076000000C6000000F00101 02FE080A0CFF1B2029FF393E51FF4D566DFF54617AFF55627DFF57627DFF5962 7DFF5A627BFF5A6279FF5C647AFF5B647EFF5A657EFF5B667DFF5D667DFF5E67 81FF606881FF626982FF626984FF616B85FF616B85FF626D88FF64708AFF6670 8AFF65708CFF66728DFF66738FFF66758FFF687791FF6A7792FF6B7994FF6C7B 96FF6D7C97FF6E7D98FF6F7E99FF71809AFF73819CFF74839EFF74849EFF7585 A0FF7786A3FF7987A4FF7A89A6FF7A8AA6FF7C8BA7FF7D8CA9FF7D8DA9FF7F8F AAFF808FADFF8090AEFF8191AEFF8392AFFF8492AFFF8492B2FF8693B4FF8895 B4FF8894B4FF8996B4FF8A97B4FF8A97B5FF8B98B7FF8A99B8FF8B9ABAFF8D9A B9FF8D9AB8FF8E9BBAFF8E9CBBFF8E9CBBFF8E9DBBFF8F9CBCFF909CBDFF8F9D BDFF8F9DBDFF909DBDFF919EBEFF919EBEFF919EBEFF919DBEFF909DBDFF919D BDFF909DBDFF909DBCFF909DBCFF909DBDFF909CBEFF8F9CBDFF8E9CBBFF8E9B BBFF8E9BBCFF8D9ABBFF8D99BBFF8C99B9FF8C99B8FF8D99B8FF8D98B7FF8C98 B7FF8C98B7FF8D96B7FF8C96B6FF8B95B5FF8994B5FF8994B4FF8894B3FF8893 B3FF8893B2FF8792B1FF8991B1FF8893B1FF838EACFF717A95FF4C5365FF2224 2DFF0A0B0DFF010101FB000000E6000000B20000005F00000020000000020000 00000000000000000000000000070000002B00000074000000C4000000EF0101 02FE080A0CFF1B1F27FF383C4EFF4C546BFF546079FF55617CFF55617BFF5662 7BFF58637AFF5A6378FF5B6477FF5A647CFF5A657DFF5C667CFF5F667CFF5E67 7FFF5F677FFF616881FF626A83FF606A82FF626B86FF626D88FF636E89FF646F 89FF65708BFF65718DFF66728EFF66738EFF69758FFF6A7691FF6A7892FF6B79 92FF6C7A94FF6E7B96FF6E7D98FF6F7D98FF727E9AFF74829CFF73819CFF7483 9EFF7584A0FF7786A3FF7987A5FF7988A4FF7B8AA6FF7B8AA7FF7B8AA7FF7D8C A9FF7E8EABFF7F8EABFF7F8FABFF8290ACFF8290AEFF8391B0FF8492B2FF8593 B1FF8693B1FF8794B1FF8795B1FF8895B3FF8996B5FF8797B5FF8998B6FF8B98 B6FF8A97B4FF8B98B6FF8C99B8FF8D9AB9FF8D9BB9FF8C99B9FF8D99BAFF8E9A BAFF8E9BBAFF8E9BB9FF8E9BBAFF8F9CBAFF8F9CBAFF8E9BBAFF8E9ABAFF8D9B B9FF8D9BB8FF8D9AB8FF8D9AB9FF8D9ABAFF8D99BAFF8C99B8FF8B98B7FF8C98 B7FF8C98B8FF8C98B8FF8C97B7FF8C97B7FF8A97B5FF8A96B4FF8B96B5FF8A95 B5FF8A96B5FF8A94B4FF8A95B3FF8994B3FF8892B2FF8693B2FF8692B2FF8590 B1FF8490B0FF8591B0FF8690B0FF8690B0FF818BA9FF6E7791FF495061FF2022 2BFF090A0CFF010101FB000000E6000000B00000005D0000001F000000020000 00000000000000000000000000060000002900000070000000C1000000ED0101 01FD08090BFF1B1D25FF363A4BFF4B5169FF565E77FF59607BFF566078FF5663 79FF58647BFF5A6379FF5B6378FF5A647BFF5A647DFF5D667DFF5F677EFF5D67 80FF5E667FFF606881FF626B83FF606981FF646C87FF646D88FF636C87FF636D 88FF66708BFF65718BFF66718CFF69728DFF6B738FFF6B7590FF6A7690FF6C77 91FF6E7993FF6F7A95FF6E7B97FF6F7B97FF717C98FF73809BFF73809BFF7481 9CFF75839EFF7685A1FF7785A5FF7886A3FF7A88A4FF7A89A5FF7B8AA6FF7D8A A8FF7E8CA8FF7E8CA9FF7E8DA9FF808DA9FF818FACFF828FAEFF8290ADFF8291 ACFF8493AEFF8492AEFF8593AFFF8594B1FF8694B2FF8695B3FF8895B3FF8894 B3FF8895B1FF8995B2FF8996B4FF8A97B5FF8B98B6FF8B96B6FF8B96B7FF8B98 B7FF8C99B7FF8C99B6FF8C98B6FF8D99B6FF8D99B6FF8D99B6FF8D97B7FF8B98 B6FF8A98B5FF8B98B5FF8C96B7FF8A96B6FF8A96B5FF8A96B4FF8A96B4FF8B96 B5FF8995B5FF8A95B4FF8B94B3FF8B94B3FF8894B3FF8894B1FF8893B1FF8893 B1FF8893B1FF8891B1FF8892B0FF8791B1FF8691B1FF8592B0FF8590B0FF838E AEFF828EAEFF838FAFFF838EAEFF858DAEFF7F88A7FF6B748CFF454C5DFF1D20 27FF07080AFF000000FB000000E6000000AD000000590000001C000000010000 0000000000000000000000000005000000250000006C000000BD000000EC0101 01FE07080BFF1A1B24FF353B4AFF4B5369FF575F78FF5A6179FF58617BFF5962 7AFF5A627AFF5A617BFF5D637CFF5D647EFF5E657FFF5F6580FF5E6581FF5F67 83FF5F6982FF606982FF616883FF626A85FF646C88FF666C87FF666C87FF656E 89FF66708AFF67708BFF69718CFF6C738EFF6D738FFF6D7691FF6D7691FF6F77 92FF707995FF717A96FF717B97FF737C98FF747D99FF737D9AFF74809BFF7480 9BFF75819DFF7683A0FF7684A3FF7885A1FF7886A0FF7987A2FF7D88A4FF7E89 A5FF7D89A6FF7D8AA8FF7E8BA9FF808CA9FF7F8DAAFF7F8DA9FF808DA9FF808E A9FF8291ABFF8390ACFF8290ADFF8291ADFF8592B0FF8592B2FF8792B2FF8893 B1FF8794B0FF8894B1FF8894B1FF8894B1FF8995B1FF8A95B2FF8A96B3FF8B96 B4FF8B96B4FF8B96B3FF8B96B5FF8D96B5FF8C96B4FF8B96B4FF8C95B4FF8B96 B5FF8A96B5FF8B96B5FF8C96B6FF8995B5FF8B95B4FF8B95B4FF8A95B4FF8A95 B4FF8793B4FF8894B3FF8A94B2FF8993B2FF8793B2FF8792B1FF8791B0FF8790 B0FF8791B0FF888FB0FF878FAFFF858FB0FF858FAFFF8690ADFF858FADFF848E ADFF828DADFF818DADFF828CACFF848DAEFF7F86A5FF6A6F88FF434859FF1B1E 25FF07080AFE000001F9000000E0000000A50000005300000019000000000000 00000000000000000000000000040000002200000065000000B5000000E70101 01FC060709FF171820FF333845FF4A5165FF575E77FF5A6179FF5A607AFF5B62 7AFF5C6279FF5C6177FF5C637BFF5D637FFF5E637FFF5D637EFF5B657FFF5F65 81FF606780FF61687FFF626881FF636A86FF636985FF656985FF656B86FF646D 86FF666D88FF676E8AFF68708CFF69738EFF6B728EFF6B748FFF6D7690FF6E77 91FF6F7893FF707994FF707A94FF717B97FF737C9AFF727C9AFF727E9AFF727F 9AFF747F9BFF76809DFF79829FFF79839FFF77849EFF77859FFF7B86A2FF7C87 A3FF7B86A3FF7C88A5FF7E8BA7FF7E8AA5FF7E89A4FF7F89A5FF7F8AA6FF7F8B A7FF7F8DA8FF808EA9FF818FAAFF818FAAFF838FACFF838FACFF8490ADFF8591 AEFF8591AFFF8691AFFF8592AEFF8694AFFF8794B0FF8894B1FF8794B1FF8894 B1FF8993B1FF8994B0FF8A94B1FF8994B2FF8993B2FF8994B3FF8A94B3FF8A94 B4FF8994B3FF8994B2FF8A94B1FF8893B3FF8894B2FF8993B2FF8993B3FF8693 B2FF8592B2FF8693B2FF8792B2FF8791B1FF8591B1FF8691B0FF8690AFFF8590 AEFF868FAEFF868EADFF868DAFFF868EAFFF868DADFF858CAAFF838BAAFF848B ABFF838BABFF808AAAFF808BA9FF818AABFF7A81A0FF646981FF3D4151FF1718 1FFF050507FF000000F9000000DE0000009E0000004D00000016000000000000 00000000000000000000000000030000001D0000005D000000B1000000E60000 01FD050607FF14161BFF2F3340FF464C61FF535B74FF585F78FF5A5F79FF5A60 7AFF5B6079FF5C6177FF5C627AFF5C627DFF5C637EFF5C647EFF5C657EFF5E66 80FF5F667FFF60667EFF62677FFF626884FF626884FF636983FF646B83FF646C 85FF656D87FF666D88FF666F8AFF66718BFF67718CFF68728DFF69748EFF6B75 8EFF6C758FFF6D7791FF6E7792FF707894FF717996FF717A96FF707B97FF6F7D 97FF707D98FF727E99FF75809BFF76819BFF75819CFF76819DFF77829EFF7883 9FFF7A839FFF7A85A1FF7A87A2FF7B87A2FF7D86A2FF7E87A2FF7E88A4FF7E89 A5FF7E8AA6FF7E8BA7FF7E8CA7FF7E8CA8FF818CA9FF818EA9FF818EABFF828E ACFF848FACFF838EACFF828FADFF8291AEFF8391AEFF8491AEFF8491ADFF8592 AEFF8692AFFF8792B0FF8792AFFF8691AFFF8691B0FF8791B1FF8792B1FF8691 B0FF8791B0FF8791AFFF8691ADFF8791B0FF8591B0FF8691B0FF8790B0FF8690 B0FF858FAFFF858FAFFF868FAEFF868EAEFF848EAEFF848DAEFF848EADFF848E ACFF838CACFF838BABFF828BACFF838AABFF848AA8FF848AA8FF8289A8FF8089 A8FF8088A8FF8087A7FF8088A7FF7F87A8FF767E9CFF5E647BFF373B48FF1415 1BFF040405FF000000F7000000D9000000960000004400000011000000000000 00000000000000000000000000010000001800000054000000A8000000E20000 00FC040405FE111216FF2A2E3BFF42485CFF51596FFF565F76FF585E77FF585E 78FF595F78FF5B6079FF5B6078FF5B617AFF5B627AFF5B647BFF5C657DFF5D67 7DFF5C657EFF5E657EFF61667EFF606781FF5F6882FF606982FF616982FF626A 83FF636C85FF646D87FF656D88FF656E88FF646F88FF667089FF677189FF6872 8AFF6A738CFF69748EFF6C7591FF6D7690FF6E7690FF6F7792FF6F7894FF6E79 94FF6E7A95FF707B96FF717D98FF737E98FF747E99FF757E9AFF757F9BFF7680 9CFF78819DFF78829EFF76839EFF7884A0FF7A84A0FF7B85A1FF7C86A2FF7B87 A3FF7C88A4FF7C89A5FF7B89A6FF7C8AA7FF808BA7FF7E8CA7FF7E8DA9FF808D AAFF828DAAFF808CA9FF808DABFF808EACFF808EABFF818EABFF818FAAFF828F ACFF8490ADFF8590ADFF8390ADFF848FADFF858FADFF8590AEFF8490AFFF8390 ADFF848FAEFF848FADFF838FACFF858FADFF838FAEFF848FAEFF858EAEFF858E ACFF848DADFF848CACFF848CACFF848CABFF838BABFF828AACFF828BAAFF828B A9FF828AA9FF8088A9FF7F88A9FF7F88A7FF8088A5FF8188A6FF8188A7FF7E87 A6FF7D85A5FF7F85A6FF7F85A5FF7E84A5FF737997FF595E73FF31343FFF1012 16FF030304FE000000F4000000D30000008B0000003C0000000D000000000000 000000000000000000000000000100000013000000480000009B000000D90000 00F8030304FE0E0F12FF252935FF3E4456FF50586CFF556074FF565E74FF565D 75FF595E77FF5B6079FF586077FF596177FF5B6176FF5B6176FF5B6379FF5C64 78FF5C647CFF5E647DFF60657CFF5E677FFF5D6780FF5E6781FF5F6780FF5F68 80FF626A83FF636B86FF656C87FF656D86FF646D85FF656E86FF676E85FF686F 87FF68728BFF67738CFF6A738EFF6B748DFF6B748CFF6D7490FF6E7591FF6D76 92FF6E7793FF717994FF717A95FF717B96FF737C96FF747C97FF747E99FF767E 9AFF76809CFF76819DFF76819DFF77829EFF77839EFF78839FFF7884A0FF7886 A1FF7A87A2FF7B87A4FF7A88A5FF7B89A6FF7F8AA5FF7D89A6FF7D8BA7FF7E8B A8FF7F8AA9FF7F8BA8FF7E8BA7FF7F8BA8FF808CA9FF7F8DA9FF7F8DAAFF808C AAFF818DAAFF818EAAFF818EAAFF838EAAFF838EABFF818FACFF818FACFF828F ABFF818EACFF818EACFF828FAAFF838DAAFF828DABFF828DACFF828CABFF818C AAFF818DABFF818BAAFF808BA9FF808AA9FF808AAAFF808AA9FF8088A7FF8188 A6FF8288A7FF7F87A7FF7E86A7FF7D87A6FF7B87A5FF7D85A4FF8086A3FF7F85 A3FF7E83A4FF7D84A5FF7C84A4FF7C81A2FF6F7390FF52566AFF292C36FF0C0D 11FF020203FE000000F2000000CB0000007E000000330000000A000000000000 00000000000000000000000000000000000E0000003D00000090000000D40000 00F7010202FE0B0C0EFF22242EFF3C4053FF50556DFF565C71FF575C71FF565D 74FF585F77FF5A6077FF586076FF596075FF5B6174FF5C6174FF5D6175FF5B61 76FF5B6278FF5D6378FF5E6377FF5D6478FF5E667BFF5E667EFF5F677FFF6068 7DFF616880FF636983FF646A85FF636C85FF656C83FF646A84FF666C86FF676E 88FF676F88FF68718AFF69718AFF69718AFF68718BFF6A728EFF6D728FFF6F73 91FF6F7591FF6E7690FF707791FF707993FF717A95FF717B96FF717C97FF747C 97FF757E99FF757F9AFF74809BFF74829CFF77819CFF77819DFF76829EFF7683 9FFF77849FFF7985A2FF7A86A4FF7B87A3FF7C87A2FF7D87A2FF7D87A3FF7D88 A5FF7B88A6FF7C88A4FF7D88A4FF7E88A5FF7F89A7FF7E8AA8FF7C8BA8FF7D8A A7FF7F89A6FF7F8AA7FF808BA7FF808BA6FF7F8BA6FF7E8BA7FF7E8BA9FF808A A7FF808AA8FF7F8BA8FF7E8CA6FF7D89A6FF7F8AA9FF7F8AA9FF7E8AA8FF7F89 A7FF7F89A8FF7F89A8FF7D88A6FF7B87A4FF7C87A6FF8087A7FF8085A4FF8084 A2FF8085A2FF7E84A2FF7E83A3FF7B83A4FF7983A4FF7B83A4FF7E83A1FF7C82 9FFF7A819FFF7A82A1FF7A80A0FF797F9EFF6A6F8AFF4B4E62FF24252FFF0A0B 0EFF010102FD000000EC000000C1000000720000002A00000006000000000000 0000000000000000000000000000000000090000003200000081000000C70000 00F1010202FD09090BFF1C1E27FF363A4AFF4D5166FF565C70FF565D72FF575C 72FF585D73FF585E74FF595F73FF5A5F74FF5A5F74FF5B5F75FF5D6077FF5D61 77FF5B6277FF5B6278FF5D6279FF5E6279FF5D6378FF5E647BFF5F667DFF5F67 7BFF60667DFF626781FF636883FF636984FF636A82FF646A82FF646B83FF656D 85FF666E86FF656F86FF677088FF687088FF697088FF69718AFF6B718BFF6C71 8CFF6D728DFF6D748FFF6E7691FF6D7792FF6E7893FF707893FF717994FF727A 93FF737B95FF737C97FF737C99FF727E99FF747E99FF757F9AFF767F9BFF7780 9CFF76819EFF76829FFF77839FFF77849EFF78849EFF7A859FFF7B84A0FF7A84 A2FF7A85A3FF7C86A3FF7C86A2FF7C86A4FF7D86A5FF7B86A4FF7D88A5FF7D89 A5FF7D88A5FF7E88A5FF7F88A5FF7F89A5FF7F88A6FF7F88A7FF7E8AA8FF7F88 A7FF7F88A5FF7E88A5FF7E88A6FF7C87A5FF7F87A7FF7E87A6FF7D87A5FF7E86 A6FF7E87A5FF7D87A4FF7C87A3FF7C85A3FF7C84A4FF7E85A3FF7E84A1FF7D83 A0FF7B84A1FF7A83A3FF7982A2FF7982A1FF7982A1FF7A82A2FF7C809EFF7B80 9EFF7A809EFF79819EFF7B809EFF767C98FF63687FFF424555FF1C1E25FF0708 0AFF000001FB000000E6000000B4000000620000002100000004000000000000 0000000000000000000000000000000000060000002800000071000000BC0000 00ED010101FE060608FF17191FFF313440FF484D5EFF54596DFF565C72FF575B 72FF585B72FF585C73FF5A5E72FF5A5D73FF5A5D73FF5A5E74FF5B6075FF5B60 75FF5A6278FF5A6278FF5C6177FF5E6379FF5E6279FF5F6379FF60647AFF6066 7AFF60667CFF62667DFF63667FFF626781FF616882FF636981FF636B82FF646C 83FF656C83FF646D83FF666E85FF676E85FF686E86FF687087FF687089FF6870 8AFF6A718BFF6D738DFF6B738EFF6C7490FF6D7590FF6D758FFF6F758FFF7178 91FF717993FF717994FF727A96FF727B96FF737B96FF747C97FF757D98FF777E 9AFF767E9CFF767F9BFF76809CFF76819CFF77829CFF78829DFF79829EFF7982 9EFF79839FFF7B84A1FF7B84A1FF7A84A2FF7A85A2FF7A85A1FF7D85A1FF7D85 A2FF7C85A2FF7D86A2FF7D86A3FF7D86A3FF7D86A4FF7D86A4FF7A86A4FF7C85 A4FF7D86A3FF7D86A3FF7E85A4FF7C85A3FF7D85A3FF7D85A2FF7D84A2FF7D83 A2FF7C84A1FF7B84A0FF7B83A1FF7C83A1FF7A82A1FF7B82A1FF7B829FFF7A82 9EFF7A82A0FF7882A2FF7780A0FF78809EFF7A809EFF78809FFF797E9CFF797D 9CFF787E9CFF787E9CFF777F9CFF717793FF5B5F75FF383B49FF16171DFF0505 07FE000000FA000000E0000000A7000000540000001800000002000000000000 0000000000000000000000000000000000040000001E00000061000000AF0000 00E7000000FD040405FF131317FF2B2C37FF424758FF515669FF565A70FF575A 74FF585A74FF5A5B72FF595C72FF5B5D72FF5A5E72FF595E72FF595F73FF5860 73FF586178FF5A6077FF5C5F73FF5D6275FF606379FF606279FF606279FF6165 7AFF61657BFF62657AFF62657CFF62667EFF616880FF62687FFF636980FF646A 82FF656A81FF656B81FF656C81FF666B82FF676B83FF686E85FF686E88FF666F 89FF687089FF6C7189FF6A728AFF6C728CFF6C728CFF6B738CFF6D738DFF7076 91FF6F7793FF707893FF717893FF737995FF717A95FF727A96FF747B97FF757C 97FF757C98FF757D99FF767E9AFF777F9BFF767F9BFF777F9CFF787F9BFF797F 9BFF79809CFF78819EFF79819FFF78829FFF78839FFF79839FFF7B829EFF7B81 9EFF7C829EFF7D839FFF7B84A0FF7A83A1FF7A83A0FF7A829FFF7881A0FF7A82 A1FF7A82A1FF7B83A0FF7C83A0FF7B83A0FF7A829EFF7A829EFF7B819EFF7B80 9EFF7A819EFF7A809EFF7A809FFF7A809FFF79819DFF78809FFF78809DFF797F 9CFF7B7F9DFF7980A0FF777D9DFF787C9CFF797D9CFF767E9CFF777D9BFF777C 9AFF767B99FF767B99FF747C99FF6C718DFF52556AFF30313DFF111115FF0404 05FE000000F7000000D700000097000000450000001000000000000000000000 000000000000000000000000000000000002000000140000004F0000009C0000 00D9000000F6030304FF0E0E10FF23242DFF3B3F4FFF4E5367FF555971FF565A 73FF585A72FF5A5B71FF575A70FF595C70FF595E73FF585E74FF5A5D73FF5B5F 73FF5A5E74FF5A5E75FF5C5F73FF5B6070FF5F6274FF606178FF606179FF6063 7AFF5F6379FF606479FF60657BFF61657DFF62667EFF62677DFF62677EFF6467 80FF656881FF656980FF646A7FFF656A7FFF676B80FF686B82FF6A6C84FF696D 86FF696D86FF6A6D85FF6B718AFF6B6F88FF6C718AFF6D738DFF6D7490FF6E76 92FF6E7794FF707795FF727895FF747794FF6F7995FF707A96FF727A96FF7379 96FF737A96FF747B97FF757B97FF747C98FF727C98FF747C9AFF767C99FF767C 98FF777D99FF767D9AFF777D9BFF777E9BFF777F9BFF777F9BFF777F9BFF7980 9CFF7A809DFF7B7F9CFF7B7F9EFF797F9FFF797F9DFF797F9BFF7A809CFF7A80 9DFF797E9BFF787E9BFF787F9CFF797E9CFF797F9DFF777F9BFF757F9AFF777F 9BFF7A7F9CFF797E9CFF787E9DFF777E9EFF7A7F9CFF777E9AFF777E9AFF787D 9BFF797C9AFF787E9BFF767D9BFF767B9AFF757B98FF747B98FF767C9AFF777B 99FF767A97FF737996FF727793FF666B85FF494C5FFF272632FF0B0B0EFF0202 03FE000000F1000000C800000083000000350000000B00000000000000000000 0000000000000000000000000000000000010000000D0000003D000000890000 00CD000000F5010101FE09090AFF1C1D24FF353747FF4A4D63FF53566DFF565A 70FF585A70FF585A6EFF575A70FF585B6FFF595C71FF5A5B73FF5B5B73FF5D5D 73FF5C5D73FF5B5D72FF5B5D72FF5D5F73FF5D5F73FF5E5F75FF5F6175FF5F61 75FF5F6075FF606277FF616378FF626378FF61637AFF61657AFF61657AFF6265 7BFF64687EFF62697EFF64697FFF666A81FF666A83FF666A82FF666A84FF676B 83FF686B84FF6A6A86FF696D87FF676F88FF696F86FF6B6F87FF6C728CFF6B73 8FFF6C7693FF6D7694FF6F7592FF717693FF6F7591FF707692FF707893FF7078 94FF717A97FF737B98FF737B98FF727C98FF737C9AFF727997FF737A96FF747C 97FF757C98FF767A97FF767B97FF767C98FF767C98FF777B98FF777B98FF787D 9AFF787D9AFF777C9AFF797C9BFF777C9AFF777C9AFF787D99FF797D9AFF787D 9AFF777D99FF777D9AFF777C9BFF787C9AFF787C98FF767C97FF757C98FF757E 99FF777E9AFF757D99FF757C98FF757B98FF777C99FF767B97FF757C98FF757B 9AFF777A9AFF757B99FF757A99FF757A98FF747A97FF737896FF737997FF7578 96FF767895FF757894FF707591FF5F627BFF404252FF1F1F27FF08080BFF0202 02FD000000ED000000BC00000072000000280000000600000000000000000000 000000000000000000000000000000000000000000070000002C000000720000 00BC000000ED010100FB060607FF15151AFF2D2E39FF46475AFF52536AFF5658 6EFF56586EFF57586EFF58596EFF585A6EFF595A6EFF5B5A6FFF5B5A70FF5C5C 71FF5B5C70FF5B5C70FF5B5D71FF5B5D72FF5C5D72FF5E5E74FF5F5F74FF5F60 74FF5E5F74FF5F6174FF606174FF606075FF616278FF606378FF606378FF6164 79FF64667BFF63677DFF656881FF666882FF656982FF676B84FF666B86FF666C 87FF686C88FF6A6D8AFF696E88FF6A708BFF696F89FF696E87FF6A6E89FF6A6F 8BFF6B718DFF6C748FFF6E7693FF707A98FF6F7895FF6E7896FF6E7995FF6E78 94FF6F7996FF727C9CFF7380A0FF7381A3FF7581A4FF757FA0FF747D9EFF737C 9DFF757C9DFF767C9AFF757B97FF737B96FF737B96FF757A96FF747996FF7679 96FF787A96FF787A96FF767B98FF757B98FF767A97FF777A97FF767A97FF767A 97FF767B98FF757B98FF757A97FF787B98FF787997FF767996FF747A97FF747B 97FF757B97FF747A96FF757A96FF767A96FF757996FF747A97FF747A97FF7378 97FF737797FF757795FF747796FF737796FF737895FF727794FF727795FF7277 94FF737694FF727591FF6C6F8BFF56596FFF353644FF16171CFF050507FF0101 01FA000000E1000000A80000005C0000001B0000000300000000000000000000 000000000000000000000000000000000000000000030000001D0000005C0000 00A6000000E3000000FA030304FF0F0F12FF24242DFF3F3F4FFF504F65FF5556 6CFF56576EFF58576EFF58596DFF59586DFF59586DFF5A596DFF5B596DFF5A5A 70FF5A5B6FFF5A5B6EFF5B5D6FFF5B5C70FF5B5D70FF5C5D72FF5E5E73FF5E5F 73FF5D5F73FF5E5F73FF5F5F73FF5F6075FF606177FF606177FF606278FF6163 78FF636479FF64657AFF65657DFF64657EFF64667FFF666981FF666B84FF656B 85FF656C87FF686E89FF686E87FF6A6E89FF696E88FF686D86FF686D86FF6A6D 88FF6B6E88FF6C708AFF6D748FFF6E7996FF6E7A9AFF6D7A9AFF6D7997FF6C76 92FF6D7593FF717B9AFF727FA1FF7281A4FF7482A5FF7682A6FF7580A5FF737F A4FF747FA3FF767FA1FF757E9FFF737E9EFF727F9DFF727E9DFF737D9DFF737C 9BFF757B9BFF777B9BFF747C9AFF747A97FF757895FF757894FF737895FF7478 95FF767895FF767894FF747893FF757995FF757895FF757895FF747995FF7379 95FF737895FF737895FF747894FF767794FF737794FF717795FF727794FF7376 94FF717594FF747592FF737593FF717593FF717592FF717693FF707693FF7076 92FF707592FF6E7290FF656983FF4B4E61FF2A2B36FF0F0F13FF030304FE0000 00F7000000D50000009400000047000000110000000100000000000000000000 0000000000000000000000000000000000000000000100000011000000450000 008F000000D5000000F7010102FF09090CFF1B1C23FF353644FF4B4B5CFF5354 69FF56566EFF58576DFF58586CFF59566CFF59576DFF58586DFF5A596DFF595A 70FF595A6FFF5A5A6DFF5B5B6DFF5C5C6FFF595C6EFF5B5C6FFF5D5C70FF5C5E 70FF5D5E72FF5D5D73FF5E5E74FF5F6076FF5F5F75FF606077FF606077FF6161 77FF626278FF636378FF626376FF626378FF62647AFF646579FF65677DFF6367 7DFF63687FFF656B82FF666B82FF676A81FF686A81FF686B82FF676C84FF6A6C 86FF6C6C86FF6C6C85FF6A6E87FF6A718CFF6B7898FF6C7999FF6C7593FF6B72 8DFF6C718DFF6E7592FF6E7795FF6F7998FF707B9AFF727FA1FF7280A4FF7280 A4FF727FA3FF7380A4FF7482A7FF7483A8FF7383A8FF7283A8FF7384A7FF7182 A6FF7180A6FF7381A5FF727FA0FF737B9AFF747896FF737795FF717693FF7176 93FF747794FF757692FF747691FF717793FF707793FF727693FF737693FF7176 93FF727794FF717693FF717592FF727592FF707692FF6F7491FF707491FF7175 92FF717591FF717491FF707390FF6F738FFF6F748FFF727391FF6F7390FF6E73 8FFF6E7390FF6A6F8DFF5B6079FF3F4151FF202029FF09090CFF010102FD0000 00F3000000C80000008100000036000000090000000000000000000000000000 0000000000000000000000000000000000000000000000000007000000300000 0076000000C1000000EC010101FB050506FF131318FF2C2B37FF444354FF504F 63FF545469FF56546AFF56566AFF56556AFF56556AFF57576BFF58596CFF5758 6BFF57586AFF58586BFF5A586CFF5B596DFF58596DFF595A6EFF5C5C70FF5D5D 71FF5C5D70FF5C5D71FF5B5D71FF5C5D71FF5F5E71FF5E6071FF5E6071FF5E5F 72FF5F5F74FF616175FF616177FF616177FF626376FF636478FF62657AFF6365 79FF64657AFF64667CFF63677BFF64677AFF66687DFF686980FF66687DFF6869 7FFF686982FF686A84FF676C85FF676B82FF696F86FF69718AFF696F8AFF696D 88FF6B708CFF6B7089FF6C6F88FF6D6F8AFF6E718EFF6C7490FF6D7795FF6E79 99FF6E7A99FF6D7A98FF6E7D9DFF707EA0FF7280A3FF7481A8FF7280A5FF7180 A7FF7281A8FF7382A7FF7081A7FF7280A5FF737EA2FF727B9CFF707996FF6F78 96FF717898FF717796FF6F7591FF6D748FFF6E7491FF6F7490FF6F738FFF6F74 90FF727492FF70738FFF6E718FFF6C718FFF6D738CFF6F7290FF6E718FFF6D72 8EFF6C738FFF6C728DFF6D718CFF6E718DFF6E718DFF6E708CFF6E6E8CFF6D70 8DFF6B708CFF656883FF515369FF31323FFF15151BFF040506FF000001F90000 00E7000000B00000006600000024000000050000000000000000000000000000 00000000000000000000000000000000000000000000000000020000001F0000 005C000000A9000000E4000000FA030303FF0D0D11FF232129FF3D3A47FF4E4C 5CFF555467FF555369FF545567FF535466FF545567FF565668FF575667FF5657 67FF565568FF58566BFF59596EFF59596DFF58586CFF59586BFF5A596DFF5B5B 70FF5B5A6FFF5B5B6EFF5B5C6EFF5B5D6FFF5D5D6EFF5D5E6EFF5E5F6DFF5E5F 6EFF5D5F70FF5E5E71FF5F5F73FF5F6074FF5E6174FF5F6376FF616476FF6262 73FF626274FF626478FF616479FF63647AFF62657BFF63667BFF67677BFF6767 7CFF67687EFF67697FFF66687FFF686980FF666D82FF656B83FF676A83FF696C 85FF696B84FF696C85FF696D85FF6B6D85FF6C6D87FF6A6F89FF6A718BFF6B71 8CFF6A6F8BFF69708BFF6A718DFF6C738FFF6D7693FF6E7897FF6F7B9BFF6F7C A0FF707CA0FF707C9EFF6E7B9FFF6E7B9EFF6F7C9EFF707C9EFF707B9DFF717C 9DFF717B9DFF707B9DFF707B9BFF6F7794FF6C718EFF6D708DFF6E728EFF6D72 8EFF6D718CFF6E728BFF6C708AFF6A6F89FF6C718AFF6E718EFF6C708DFF6B6F 8BFF6A6F8AFF6A6E88FF696E88FF6A6E88FF6C6E89FF6C6E89FF6D6C8AFF6C6D 8AFF686C87FF5D6279FF454759FF252530FF0E0E12FF020303FF000000F70000 00DB000000990000004E00000016000000010000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000110000 00430000008E000000D4000000F4010101FE08080AFF19181DFF33313AFF4846 53FF525162FF535367FF525367FF535265FF545465FF555464FF565364FF5555 67FF575569FF58556AFF57566BFF57586CFF58576BFF585769FF58586AFF5A58 6CFF5A576DFF5B596DFF5B5B6EFF5C5B6FFF5B5B6DFF5C5B6DFF5C5D6CFF5C5E 6CFF5B5E6DFF5D5E6FFF5E6070FF5D6070FF5C5F71FF5E6174FF5F6173FF6061 71FF616273FF616276FF606274FF636379FF61647AFF616579FF66667AFF6564 79FF65667BFF66677CFF66667CFF67677DFF66697FFF656880FF666880FF686A 7FFF67687FFF676A81FF676B82FF686C82FF696C83FF686C84FF686C85FF696D 86FF696D87FF686C86FF696D87FF6B6E88FF6C6F89FF6C708BFF6C728FFF6D74 92FF6D7493FF6B7493FF6B7695FF6C7694FF6C7695FF6D7795FF6E7896FF6E78 96FF6E7797FF6E7797FF6F7796FF6E7592FF6C718EFF6B708CFF6B708BFF6C6F 8AFF696E87FF6A6E88FF6A6E88FF6A6D87FF6C6E88FF6C6E8AFF6B6D89FF6A6D 88FF696D88FF696D87FF686D86FF696D85FF6A6C86FF696B86FF696C87FF6A6B 87FF65667FFF54586CFF373947FF191A20FF07080AFF010101FC000000EF0000 00C60000007D000000360000000A000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000070000 002C00000070000000BD000000EA000000FC040405FF101013FF28272FFF3E3D 49FF4C4B5CFF515265FF535266FF555165FF555264FF555262FF555263FF5553 68FF575469FF575468FF575468FF575669FF585568FF575668FF575769FF5A57 6AFF59566CFF5A596DFF5B5A6EFF5B5A6EFF5A5A6DFF5B5A6DFF5B5C6DFF5A5D 6DFF5A5D6DFF5C5E6EFF5D5F6FFF5C5E6EFF5C5E70FF5F6074FF5E5F73FF5F61 72FF606273FF606275FF606272FF626276FF626277FF626377FF636478FF6263 77FF636379FF64647AFF65657BFF64657AFF65667CFF66667DFF66667DFF6667 7BFF67687CFF66687CFF65697EFF666A80FF666B80FF676A81FF676A82FF686C 85FF696D86FF686C83FF696D85FF6A6D85FF6B6C86FF6B6B87FF6B6A87FF6A6C 87FF6A6E89FF696F8BFF6A708CFF6B708CFF6A6F8BFF6A6F8AFF6C718AFF6970 89FF69718BFF6A718CFF6D708AFF6C708BFF6C718DFF6A708CFF696F8AFF6A6E 89FF676D87FF676C87FF696C87FF6A6C87FF6A6C87FF6A6A86FF6A6A85FF696B 85FF686C86FF696C86FF696C84FF696B84FF686B84FF676A84FF676C86FF676A 83FF5F6077FF494B5CFF292A35FF101014FF030304FE000000F8000000E30000 00AB0000005F0000002100000002000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000020000 001A00000051000000A1000000DC000000F9020203FF0A0A0CFF1C1D24FF3333 40FF454557FF505062FF555263FF575064FF575164FF565263FF555263FF5652 69FF555267FF575366FF595467FF575568FF585464FF575566FF56576AFF5858 6BFF5A586BFF5A596CFF59596DFF59596DFF5A5A6CFF5B5C6CFF5A5B6DFF5A5B 6DFF5B5C6CFF5A5B6DFF5B5C6DFF5C5D70FF5E5D73FF605F75FF5F5E73FF5E5E 72FF5E6072FF5E6172FF5F6174FF5F6073FF616073FF616073FF606175FF6162 76FF616276FF626378FF63647AFF636379FF64647AFF64647AFF64647AFF6565 7AFF66677BFF64667BFF64667DFF65677FFF65687FFF676980FF676981FF6768 81FF676880FF686A7FFF676B7FFF686A81FF696A82FF696A85FF6A6A84FF686A 83FF686B85FF6A6C87FF696A86FF686A84FF686A84FF696B84FF6C6B83FF666B 84FF646C84FF676C83FF6B6C84FF696D86FF696E89FF696F8BFF686F8CFF676E 8AFF676D8AFF696E8AFF696D88FF686B86FF696C89FF686985FF696984FF696A 84FF676A84FF686A83FF6A6A83FF696982FF676882FF666A84FF676A85FF6367 81FF55576DFF3B3B49FF1C1D24FF0A0A0DFF010103FE000000F4000000D40000 008F000000440000001200000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000D000000360000007F000000C4000000ED010102FC050506FF131217FF2927 32FF3E3D4CFF4B4C5EFF524F62FF545065FF555164FF545263FF535366FF5351 65FF555264FF565264FF555264FF565366FF585467FF575568FF565568FF5656 68FF565567FF56556BFF57556CFF59556AFF5A566AFF5A596BFF5A586BFF5A58 6BFF5A5A6BFF5D5A70FF5D5B6FFF5C5C6FFF5C5C70FF5C5C70FF5F5C6FFF5E5E 70FF5C5E71FF5C5E71FF5D5E73FF5E5F72FF5F5F72FF605F74FF5F5F75FF5E61 77FF5E6277FF5F6277FF616178FF616179FF616177FF626377FF636478FF6364 7AFF63647AFF64667BFF64667BFF64657BFF64647DFF66677DFF66677DFF6666 7DFF66667DFF66677EFF67687FFF67677FFF67677FFF676782FF676883FF6868 81FF666980FF656981FF676882FF686982FF676982FF666881FF676882FF6769 84FF676A81FF686A81FF686A83FF676B86FF666C86FF676B87FF696B8AFF6A6C 8AFF686B89FF686B88FF696A87FF696986FF696A87FF686984FF686984FF6769 84FF666983FF686A80FF686980FF676880FF656781FF646782FF656682FF5C5E 77FF47495CFF2B2C37FF111116FF050505FF000000FB000000E6000000B80000 006C0000002B0000000700000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0005000000200000005D000000A9000000E0000000F9020202FE0B0A0DFF1E1B 22FF33313CFF454353FF4E4B5EFF524E61FF524E61FF524F61FF525064FF5450 62FF555062FF535061FF515161FF545265FF555165FF555367FF555366FF5452 62FF545465FF575368FF58556AFF575769FF585668FF58576AFF57576AFF5757 69FF58596AFF59596DFF59586CFF59596BFF5B5A6BFF5C5A6BFF5B5B6BFF5B5C 6DFF5A5C6DFF5A5C6CFF5B5D70FF5B5D72FF5C5D71FF5D5D71FF5D5E72FF5D5E 73FF5D5F71FF5D5F71FF5D5F72FF5E6075FF5E5F74FF5F6074FF616276FF6262 79FF616277FF616278FF626378FF626478FF626378FF636478FF646479FF6465 79FF636479FF63657BFF64647DFF65647CFF65647AFF64657DFF66677FFF6467 7DFF62677CFF62667BFF64677CFF66687EFF65677CFF64657CFF64647EFF6466 7DFF65677DFF65667EFF65667FFF64687EFF62697FFF636882FF666984FF6769 84FF676785FF656884FF656A85FF666A85FF676882FF656983FF656981FF6468 80FF63677FFF62677CFF62667DFF62667FFF626780FF626680FF5F6178FF5153 67FF393948FF1C1D24FF0A0A0CFF020203FE000000F5000000D6000000990000 004B000000170000000100000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0001000000100000003E00000089000000CA000000F1010101FB050506FF1211 14FF26242BFF3A3944FF484755FF4F4C5CFF504D5EFF4F4E5FFF514F60FF524F 5EFF524F5FFF504F60FF504F60FF515162FF514F62FF535164FF545264FF5552 62FF535262FF565264FF565466FF555666FF565565FF555568FF555568FF5556 68FF565769FF56576AFF56576BFF57576AFF595869FF5B5868FF585969FF585A 6AFF5A5A69FF5A5B69FF5A5B6EFF5A5B71FF5A5B6FFF5B5C6DFF5C5D6FFF5C5C 6EFF5C5D6DFF5C5D6CFF5C5D6DFF5C5E6FFF5C5E70FF5D5E70FF5F5F73FF6060 76FF5F6074FF5F6074FF606174FF5F6274FF5E6274FF606073FF616274FF6163 75FF606275FF606377FF626379FF636278FF636277FF62647AFF63647AFF6165 7BFF606579FF606477FF616478FF636579FF646479FF63637AFF62637BFF6264 79FF636579FF63647AFF63637BFF62657AFF60657AFF61657BFF62667CFF6366 7CFF63657EFF62667FFF62677FFF62677FFF63657CFF63667FFF62677EFF6167 7DFF60657EFF5E657CFF5F647CFF5F647CFF5F647DFF60627BFF585A6EFF4445 54FF292A33FF101014FF050505FF010101FA000000E8000000BC000000750000 002F0000000A0000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000060000002500000064000000AB000000E0000000F7010102FE0A08 0BFF19181DFF2D2D35FF41414AFF4C4A57FF4E4D5DFF4D4E5EFF504D5CFF4F4D 5BFF4F4F5CFF4F4F5EFF504E5FFF4F4F5FFF514F5FFF514F60FF535163FF5653 65FF525160FF525261FF535262FF545363FF565363FF555467FF545466FF5554 66FF565567FF555567FF56576BFF56576BFF575769FF595868FF575867FF5758 68FF595968FF5B5968FF5A586CFF59596FFF595A6CFF5A5B69FF5C5D6DFF5B5C 6CFF5B5C6BFF5C5C6BFF5C5C6BFF5C5D6DFF5C5C6EFF5D5D6EFF5D5E70FF5D5F 72FF5D5E72FF5E5F72FF5E6071FF5D6070FF5C6172FF5E5F71FF5F6071FF5E60 71FF5F6072FF606174FF606275FF616174FF616075FF606378FF5F6277FF6163 78FF616378FF5F6276FF606277FF616176FF626378FF626479FF616379FF6262 78FF616479FF616478FF616378FF626479FF616277FF606276FF606275FF6062 76FF606277FF606378FF606378FF606277FF616276FF62627AFF606379FF5F64 7AFF5F647DFF5E637DFF60637BFF5F6279FF5E6177FF5D5C73FF4E4F61FF3435 40FF1A1A20FF07080AFF010101FE000000F3000000D3000000990000004F0000 0018000000030000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000001000000100000004000000086000000CA000000F1000100FC0404 05FF0F0D11FF211F25FF36343FFF464453FF4D4B5CFF4F4C5DFF514B5CFF534C 5DFF514C5CFF504C5DFF514D5FFF534E5FFF534F5FFF534E5FFF544E60FF5650 62FF545162FF525263FF525263FF545164FF575166FF585368FF575265FF5753 63FF575465FF565365FF565467FF555668FF545667FF565766FF585765FF5757 67FF575768FF575767FF575769FF56586CFF56596BFF585A69FF5A5A69FF595A 6BFF5A5A6CFF5B5B6CFF5B5C6DFF5C5C6EFF5F5A70FF5E5B6EFF5C5D6DFF5C5D 6FFF5C5C70FF5D5D70FF5C5D6FFF5B5D6FFF5D5F74FF5E5F74FF5D5E72FF5D5E 6FFF5E5F6FFF5E5F73FF5E5F72FF5E5F72FF5E5F74FF5F6075FF5F6076FF5F5F 75FF606076FF616177FF5F6176FF5F6075FF606174FF606274FF5F6075FF6061 78FF606078FF606077FF606176FF626377FF606277FF606176FF606174FF6061 73FF616176FF606176FF5F6174FF5F6074FF606176FF5F6074FF5F6174FF5F61 75FF5E6177FF5F6077FF606176FF606276FF5D5F73FF535467FF3F3F4EFF2323 2CFF0E0E11FF030304FF000000FA000000E8000000B8000000720000002E0000 0009000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000004000000230000005E000000A4000000DD000000F60100 01FF070608FF151318FF2B272FFF3D3946FF4B4657FF514B5FFF504A5FFF514A 5EFF524D5FFF524E60FF524D60FF514D5EFF514E5EFF524E5FFF524E60FF524F 60FF544F61FF555063FF555063FF554F62FF555163FF555165FF575264FF5853 64FF595364FF5A5364FF575566FF575666FF595565FF575364FF5A5564FF5856 65FF575667FF595669FF59596AFF585868FF585767FF595768FF59586AFF5A5B 6CFF5A5B6CFF5B5A6CFF5C5B6CFF5B5A6DFF5B5A6EFF5C5A6EFF5C5B6DFF5D5B 6CFF5B5B6CFF5C5D6DFF5D5D6DFF5C5D6DFF5C5D6FFF5C5D6DFF5D5E70FF5E5F 71FF5D5D6EFF5E5C71FF5E5E71FF5E5F71FF5E5F73FF5F5F75FF5F5F74FF605F 74FF5F5F75FF5E5F75FF5E5F73FF5F6073FF5F6073FF5E5F73FF5E5E74FF6060 76FF605E76FF605E75FF5F6075FF5F6175FF616076FF615F75FF606073FF6060 72FF605F75FF5F5F74FF606074FF616074FF5F6074FF5F6074FF5E6073FF5E5F 74FF5F5F77FF616077FF606075FF5E6071FF56596AFF46485AFF2D2D39FF1616 1BFF060608FF010101FE000000F3000000D0000000910000004B000000160000 0002000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000E0000003900000079000000BE000000EA0000 00FB030303FF0C0B0DFF1D1A21FF332E38FF453E4DFF4F485BFF504A60FF504A 5DFF514C5EFF524C60FF524C61FF504D5FFF524D5EFF524D5FFF524D61FF514E 62FF554E62FF574E60FF574F60FF565061FF565162FF545064FF565163FF5752 63FF565263FF595263FF565465FF575364FF5A5363FF595366FF5A5464FF5A55 66FF5A5668FF5A5669FF5A5868FF585767FF585767FF585768FF585869FF5B59 6BFF5A596CFF5A596CFF5C596BFF5C596CFF5A596EFF5B596DFF5C596CFF5C5B 6EFF5B5A6EFF5D5B6EFF5E5C6DFF5D5C6CFF5C5C6CFF5C5C6AFF5C5D6EFF5D5E 71FF5E5C70FF5E5C71FF5D5E70FF5C5F71FF5D5F73FF5E5E73FF5F5D70FF605D 71FF5F5E72FF5E5D71FF5E5E71FF5E5E70FF5E5E72FF5E5E74FF5E5E75FF5F5E 74FF605E73FF5F5E73FF5E5E74FF5F5F73FF615E74FF625E74FF615E72FF5F5E 73FF5E5F74FF5F5F73FF605F72FF605F71FF5F5F70FF605F73FF5F5E72FF5F5E 72FF5F5E73FF605F76FF605F76FF5A5B6FFF4D4E5EFF363845FE1D1D25FF0C0C 0FFF030303FF000000F8000000E5000000B00000006A0000002A000000070000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000030000001C0000005000000097000000D30000 00F2010101FD050506FF100F13FF252228FF3A3440FF494253FF4F495DFF514A 5BFF514A5EFF524B60FF534B60FF514C60FF534D60FF534C60FF524C61FF534D 63FF564E62FF574E5EFF564F5EFF565061FF575162FF554F62FF564F61FF5650 61FF545063FF565063FF555265FF565263FF585262FF595468FF585366FF5954 67FF5A5568FF5B5567FF5A5565FF585665FF585767FF585768FF575768FF5A57 6AFF5A576BFF5B576BFF5C576CFF5C586CFF5B586DFF5B586CFF5B586CFF5C59 6FFF5B5A70FF5D596FFF5D5A6EFF5C5B6DFF5C5B6CFF5D5B6DFF5C5C6EFF5C5B 6FFF5D5B71FF5E5D71FF5D5D6FFF5C5E70FF5C5E71FF5D5D71FF5F5C6FFF5F5D 6FFF5E5D70FF5E5D6FFF5E5E71FF5E5C70FF5E5D71FF5E5D73FF5D5D74FF5F5C 73FF5F5D71FF5E5D71FF5F5D72FF605E73FF5F5D73FF605D71FF605D71FF5E5D 72FF5E5E74FF5E5E73FF5E5D71FF5E5D6FFF5F5D6FFF5F5D71FF605C70FF5F5C 6FFF5E5C70FF5E5D73FF5E5B72FF535165FF3F3E4DFF25262EFE101014FF0505 06FF010101FC000000EE000000CA000000880000004400000013000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000A0000002C0000006A000000B00000 00E1000000F9010101FF070608FF171419FF2B2730FF3E3948FF4B4557FF5149 5AFF534A5EFF534A5FFF534B5DFF504B5EFF534C60FF524C61FF514C61FF534C 61FF564E5FFF554E5FFF554F61FF555061FF554F60FF564E5EFF574E5FFF574E 61FF554F64FF565065FF555065FF555265FF555365FF565466FF575368FF5753 67FF575365FF595365FF5A5463FF575463FF585565FF5A5567FF585568FF5858 6AFF5B5769FF5C566AFF5B566CFF5B576DFF5B576CFF5B586CFF5B586DFF5D57 6DFF5C596EFF5C576DFF5B586DFF5B5A6FFF5D5A6FFF5D5971FF5D596FFF5C59 6EFF5B596EFF5F5B71FF5E5B6FFF5C5B6FFF5C5C6FFF5C5C6FFF5E5C70FF5D5C 6EFF5D5C6EFF5E5C6FFF5F5C71FF5D5B72FF5E5B71FF5E5C71FF5C5B71FF5F5D 73FF5E5B70FF5E5C6FFF5F5D70FF5F5D74FF5E5D72FF5D5C6EFF5E5C6DFF605C 70FF5D5C73FF5C5B72FF5C5B71FF5C5B70FF5F5C71FF5C5A70FF5E5A6EFF5E5B 6FFF5D5B70FF5C5B6FFF575265FF474251FF2E2C36FF151419FF070709FF0101 01FE000000F6000000DC000000A30000005C0000002400000005000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000002000000130000003F000000870000 00C6000000EC000000FB030203FF0B090DFF1C181FFF302B37FF413B4FFF4D46 57FF50495BFF50495BFF4F485AFF504A5CFF504B5EFF504B60FF514B62FF524C 62FF534A5DFF544C5DFF544C60FF534C61FF544C5EFF534D5DFF564E5FFF584E 62FF574E62FF555062FF544F63FF535065FF535165FF545163FF565064FF5750 63FF575163FF565364FF565162FF575363FF575464FF585365FF585167FF5854 67FF585466FF585466FF575467FF575568FF5A5769FF59576AFF58566AFF5A55 69FF58576AFF5A5668FF5B5766FF5A5766FF5A566AFF5C576BFF5B586DFF5A59 6FFF5B596FFF5D566EFF5D576EFF5D586DFF5C596DFF5D596DFF5A586CFF5859 6AFF59596AFF5C596CFF5D596BFF5D596FFF5E5A6FFF5E5B6EFF5C5B6DFF5D5A 6DFF5D5B6FFF5D5B6EFF5D5A6BFF5D596EFF5F5B6EFF5E5B6FFF5C5B6FFF5C5A 6FFF5D5A71FF5B5970FF5A5A6FFF5B5B6FFF5C5B6FFF5C5B6FFF5D5B6EFF5D5B 70FF5C5971FF565569FF494757FF34313CFF1C1A20FF09080BFF020203FE0000 00F8000000E5000000BD00000078000000360000000E00000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000600000020000000590000 009C000000D4000000F4000000FE050405FF0E0D10FF1E1C22FF322D3AFF433D 4BFF4B4555FF4C4859FF4B4A5AFF4C495BFF4D4A5BFF4E485BFF50485CFF524A 5EFF52495CFF504A5AFF504B5BFF514A5CFF514A5BFF544B5CFF564C5CFF564C 5DFF564D5EFF544D5EFF524E5FFF524E60FF534E60FF544F61FF544F61FF5550 61FF555061FF535062FF545061FF545260FF555261FF565163FF575165FF5652 65FF565266FF565266FF565365FF555465FF575467FF575468FF565467FF5754 68FF565568FF575567FF585566FF595565FF5A5567FF5C5567FF595567FF5756 68FF57566BFF59576BFF59566AFF5A5669FF5B5768FF5B5868FF5A5868FF5858 67FF58586AFF5B596DFF5C586AFF5C566AFF5D576AFF5C596BFF59586AFF5B58 69FF5B5869FF5A596AFF5A586BFF5B576BFF5C586DFF5C596DFF5B596CFF5959 6CFF5B576CFF5A586CFF59586CFF59586CFF59586CFF58586BFF59596AFF5A58 6AFF575368FF4A4859FF363542FF201F26FF0E0D10FF040405FF000001FD0000 00EF000000CA0000008F0000004B000000190000000300000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000010000000C000000300000 006D000000AF000000E1000000F6010101FE060506FF100F11FF211E25FF352F 3BFF433E4CFF494656FF4B4959FF4C4859FF4C4858FF4E4757FF504758FF5048 59FF50495BFF4E4959FF4E4A59FF504A5AFF50495AFF534A5AFF544B5BFF544B 5CFF544B5CFF534B5CFF524D5CFF524D5CFF534C5DFF544D5FFF544E60FF544F 5FFF544F5FFF534F5FFF554F5FFF545060FF545060FF565061FF575062FF5551 65FF555165FF565164FF555363FF545363FF565365FF555265FF555366FF5653 67FF575368FF575467FF585467FF595366FF595565FF595467FF585366FF5753 65FF575466FF565668FF565667FF575566FF595566FF5B5668FF5A5768FF5A57 67FF595768FF59576AFF5A5768FF5B5669FF5B566AFF5A566AFF585669FF5B56 6AFF595669FF58576AFF59576CFF5A576CFF5A576CFF5A586BFF5A576AFF5957 6AFF5B5669FF59576BFF59576CFF59576BFF59566BFF58576AFF5A5768FF5753 63FF4C4859FF393744FF23232BFF101014FF050405FF010102FD000000F50000 00D9000000A40000006000000025000000080000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000002000000130000 004100000080000000BE000000E5000000F8010102FF070608FF131014FF2520 29FF37323FFF433F4EFF4A4455FF4E4556FF4D4656FF4F4757FF504757FF4F47 56FF4F4959FF4D4858FF4E4958FF4F4B5AFF50495AFF514959FF524A5BFF524B 5DFF514A5CFF524B5DFF504C5BFF504C5CFF524B5EFF534B5EFF534C5FFF534D 5FFF544D5EFF554E5EFF564D5FFF554E60FF554F60FF564F5FFF554F5FFF5351 64FF565064FF565062FF545260FF545362FF565262FF545264FF545265FF5652 66FF585267FF595367FF595266FF595265FF585363FF575368FF575367FF5853 65FF575364FF565365FF575566FF575566FF585467FF5A556AFF5A556AFF5A56 67FF585565FF575466FF585566FF5A5669FF59566AFF595569FF595568FF5C55 6CFF59566CFF58566BFF59566CFF5B576CFF59576BFF585669FF595669FF5A55 69FF5A5568FF58566AFF58566CFF59566BFF5B556AFF5A566AFF585265FF4F49 59FF3C3946FF26242DFF131317FF070708FF010101FD000000F7000000E20000 00B300000074000000360000000C000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000030000 001D0000004D0000008C000000C9000000EC010001FA030203FE080709FF1512 17FF27222AFF37323EFF443D4EFF4C4354FF4E4455FF4E4557FF4E4658FF4E47 56FF4E4756FF4E4655FF4E4757FF4F485AFF4E4759FF514858FF50495AFF4F4A 5CFF4F495DFF4F4A5CFF4C4A5AFF4E4A5DFF514A60FF534B5DFF504C5CFF524D 5DFF544D5EFF554C5EFF554B5EFF524B5FFF544C5FFF544E5EFF524F5EFF514E 60FF534F62FF544F62FF54505FFF555160FF564F60FF555163FF555163FF554F 5FFF565065FF585166FF575163FF565060FF575162FF575164FF585164FF5852 64FF555364FF575265FF565365FF575465FF595466FF575367FF575469FF5653 66FF565465FF565667FF585569FF575366FF575366FF585466FF595465FF5A53 68FF595469FF58556AFF575469FF595468FF595467FF585467FF585468FF5854 6AFF555364FF565467FF585468FF585368FF575367FF545163FF4D4959FF3E3A 48FF292631FF141318FF080709FF020203FD000100F7000000E9000000C20000 0081000000420000001500000002000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0008000000250000005700000098000000CD000000EF000000FD020202FF0A09 0BFF161418FF25222BFF36313EFF453C4BFF4C4150FF4D4454FF4C4455FF4D44 53FF4F4655FF4F4655FF4D4656FF4D4658FF4E475BFF4E4859FF4E4757FF4E47 58FF4F485AFF51495CFF50495BFF504A5CFF524A5CFF52495AFF504959FF514B 5BFF514B5CFF524B5CFF534D5DFF514B5CFF514C5DFF514D5FFF504D61FF524F 5FFF544D5EFF554C5EFF564D5EFF564E5EFF554E5FFF554F60FF555060FF5550 5FFF565065FF555164FF555063FF554F64FF564F65FF575062FF57505FFF5650 60FF565164FF575064FF575166FF575265FF565263FF555263FF535465FF5354 64FF555363FF565364FF555366FF565265FF585264FF595264FF565363FF5752 64FF575264FF575365FF565466FF585366FF585366FF595267FF585366FF5653 63FF545564FF545264FF565265FF585364FF555061FF4C4856FF3D3945FF2926 30FF151419FF09090BFF030203FF000000FB000000EB000000C80000008E0000 004E0000001D0000000400000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000C0000002B00000062000000A1000000D4000000F2000000FA0302 04FE09080AFF151318FF25222BFF36313DFF433B48FF4A4151FF4C4455FF4B44 54FF4D4554FF4D4554FF4D4555FF4C4558FF4D465AFF4D4759FF4E4656FF5046 56FF504859FF50475AFF4F4859FF514959FF514858FF504857FF504859FF514A 5AFF514B5AFF504B5BFF514B5EFF504C5DFF504C5DFF504C5DFF504B5EFF524B 5CFF534C5CFF534B5CFF534B5CFF534C60FF514D5FFF524E60FF534F5FFF554E 5EFF554E60FF544F60FF544F61FF544F62FF544F61FF554F60FF564F5EFF564F 60FF554F63FF564F61FF554E65FF554F65FF555063FF545161FF535465FF5252 63FF545161FF565262FF535163FF555163FF575162FF575161FF555161FF5451 63FF565165FF575165FF565163FF545264FF565064FF585064FF585163FF5751 61FF555364FF555265FF555163FF524F5FFF494655FF3A3843FF28262EFF1715 1AFF09090AFF030204FF010001FA000000ED000000CE00000098000000580000 0025000000080000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000010000000E000000320000006C000000A8000000D7000000F00100 00FC030203FF09080BFF151318FF25212AFF35303BFF423B4AFF4A4153FF4B44 54FF4B4553FF4C4454FF4D4456FF4E4557FF4E4457FF4D4557FF4F4657FF5047 56FF4F4757FF504657FF4F4756FF504757FF504657FF4E4756FF4F4859FF504A 59FF504A58FF504A5AFF51495EFF504B5DFF504C5CFF514B5BFF524B5BFF5249 5AFF534B5CFF514B5BFF504A5BFF504C60FF4F4D5EFF504E5FFF524E5FFF534C 5CFF534B5BFF534C5CFF534E5FFF544F60FF524E5DFF534F60FF564E5FFF564E 60FF554E62FF554E5FFF544D62FF544E63FF544E62FF534F61FF545164FF5350 62FF524F61FF535162FF525063FF544F63FF555061FF555160FF544F60FF5451 64FF565166FF565064FF554F61FF525161FF554F62FF564F63FF575063FF5850 61FF575064FF565063FF524D5EFF484454FF393642FF26242DFF151418FF0909 0AFF030303FE000000FC000000EE000000CF0000009F000000610000002B0000 000B000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000002000000110000003800000070000000AC000000DD0000 00F4010101FC030303FF09070AFF141117FF252028FF352E3AFF413948FF4840 4FFF4A4353FF4B4355FF4D4457FF4E4456FF4F4254FF4E4355FF4E4657FF4D47 57FF4C4656FF504556FF504656FF504657FF4F4658FF4E4657FF4F4858FF4F48 57FF4F4958FF4F4959FF52495BFF504A5CFF504A5AFF514A59FF534A5BFF534A 5BFF534A5CFF524B5BFF514B5BFF4F4C5DFF4F4D5BFF514E5DFF534D5DFF524C 5AFF534B5BFF534C5CFF534D5FFF534E60FF524D5DFF534E61FF564D60FF574D 60FF564E61FF554D5FFF554E5EFF544D5EFF544D5FFF544D60FF544E61FF534E 61FF514F61FF504F62FF524F64FF544E63FF554E62FF544F60FF534F60FF5551 65FF555064FF554F61FF554E60FF545060FF554F61FF554F64FF554F64FF574F 61FF564E62FF514A5DFF474151FF393240FF27222AFF151216FF080709FF0202 02FE000000FA000000F0000000D5000000A2000000650000002F0000000D0000 0001000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000002000000150000003C00000074000000B00000 00DA000000F4000000FE020202FF080709FF131015FF211D25FF302A36FF3D36 45FF443D51FF4A4154FF4D4455FF4D4454FF4B4352FF494555FF494553FF4A44 53FF4C4555FF4C4456FF4D4656FF4D4657FF4D4557FF4E4656FF514758FF5146 58FF504658FF4F4858FF4E4757FF50495AFF504959FF504958FF524758FF5249 5AFF54485BFF53485CFF52495CFF524B5AFF504B5CFF514B5CFF524B5CFF514C 5BFF554D5CFF544D5FFF524C5FFF514B5DFF514C5CFF514B60FF544A61FF554A 5FFF544C5BFF564E5CFF534C5DFF534C5FFF554E60FF534E5DFF534E60FF554D 62FF544D64FF524E64FF544F61FF554F60FF544F60FF535060FF525161FF564E 60FF534C5DFF534C5EFF554D60FF514D5EFF544E5FFF564E60FF544E60FF524B 5DFF51475BFF453D4EFF342F3CFF221E27FF100F12FF070709FF030303FF0000 00FB000000EF000000D4000000A3000000680000003300000010000000020000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000004000000170000003D000000730000 00AE000000DA000000F2000000FB020202FF070608FF100E12FF1D1920FF2D25 31FF3A3140FF443A4AFF494050FF4A4152FF4B4355FF4A4354FF494352FF4B43 53FF4D4355FF4C4356FF4D4556FF4E4657FF4D4658FF4C4555FF4E4556FF5046 57FF4F4757FF4E4856FF514859FF4E4758FF4D4758FF4E4758FF514658FF5148 58FF514858FF51485AFF51495BFF4F4958FF51495AFF50495DFF50495DFF504A 5CFF514A59FF4F4B5BFF4E4C5BFF4F4B5AFF524A5AFF53495BFF53495CFF5349 5BFF544A5AFF544B5AFF544A5CFF524B5DFF514C5DFF514D5EFF514D5EFF534C 5EFF544B5FFF544B60FF534C5EFF524C5DFF524D5DFF524D5FFF514D60FF544C 5DFF544C5DFF544C5EFF544C5EFF524D60FF534D5FFF534C5DFF4F4959FF4943 52FF3F3845FF2F2A34FF1E1B22FF100E12FF060506FF010102FF000000F90000 00EC000000D2000000A100000067000000340000001100000002000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000004000000160000003B0000 0073000000AA000000D5000000EF000000FB020202FE060507FF0D0B0EFF1915 1BFF28212BFF352E3AFF3E3745FF453D4CFF494153FF494052FF4A4152FF4B43 53FF4C4353FF4C4253FF4D4454FF4D4555FF4D4455FF4B4354FF4D4455FF4E45 55FF4E4655FF4D4555FF4F4659FF4C4657FF4C4657FF4E4658FF504657FF4F47 56FF4D4655FF4D4757FF4E4859FF4C4756FF50495AFF51485BFF50485BFF5049 5AFF504857FF4F4A59FF4E4A5AFF4F4A59FF524859FF524959FF514959FF524A 5AFF534A5AFF52485AFF54495DFF52495CFF504A5BFF4F4B5CFF504B5CFF4F4A 5CFF514A5DFF534A5EFF534A5BFF524A59FF514A5BFF524A5EFF534A5FFF524C 5BFF514A5CFF524A5DFF524B5EFF504B5EFF50495CFF4B4556FF433E4CFF3732 3EFF28242CFF19161BFF0C0B0EFF040405FF010101FD000000F9000000EA0000 00CC0000009D0000006400000032000000110000000100000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000003000000140000 003A0000006D000000A4000000D3000000EC000001F8010101FE040304FF0A09 0AFF141116FF201E25FF2D2A33FF3A333FFF423A48FF453D4DFF474050FF4841 51FF494150FF4A4050FF4B4151FF4B4251FF4B4251FF4A4152FF4B4252FF4A43 52FF4B4352FF4B4353FF4B4355FF4A4454FF4B4555FF4D4556FF4E4455FF4D44 53FF4B4553FF4B4653FF4C4655FF4B4756FF4E4758FF504758FF4F4757FF4D47 57FF4E4755FF4F4856FF4F4858FF4F4858FF504858FF4E4858FF4E4858FF4F49 58FF504959FF50465AFF51475CFF51485AFF504858FF4F4959FF4F4859FF4D49 5AFF4D495CFF50495DFF524A5AFF524958FF514959FF52495BFF544A5DFF514A 5AFF4F4859FF4E485BFF4C4A5BFF4B4557FF464051FF3D3846FF302C37FF211E 26FF131115FF09080AFF030303FF000000FD000000F6000000E7000000C90000 00990000005F0000002F0000000F000000010000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000020000 001200000034000000660000009C000000C9000000E7000000F7010001FD0302 03FF060506FF0E0D10FF19171CFF27212AFF332B36FF3C3744FF413B4BFF443D 4CFF463E4DFF493C4DFF473E4EFF47404FFF49414FFF48404EFF47414FFF4641 4EFF47414FFF494250FF4B4251FF494150FF4A4251FF4B4352FF4C4251FF4C43 51FF4B4452FF4B4452FF4B4352FF4B4655FF4A4355FF4B4454FF4B4554FF4944 54FF4A4454FF4A4452FF4C4453FF4E4454FF4C4655FF494554FF4B4554FF4C46 54FF4B4755FF4C4557FF4D4657FF4D4656FF4D4657FF4E485AFF4D4657FF4D48 58FF4C485AFF4C475AFF4F4859FF4E4757FF504859FF51495AFF4F4858FF4F47 57FF504857FF4B4754FF43424FFF3F3A48FF352F3DFF28242DFF1A181DFF0F0D 10FF050406FF020103FF010001FC000000F4000000E5000000C1000000900000 005A0000002B0000000D00000001000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0003000000100000002E0000005A0000008E000000BE000000DF000000F30000 00FD010101FE050505FF0B0A0CFF141116FF201C22FF2B2630FF34303BFF3D37 43FF453B49FF473B49FF483E4FFF494051FF494050FF463F50FF474152FF4A40 51FF49404FFF47414FFF49414FFF484150FF494251FF4B4251FF4B4252FF4A42 51FF49434FFF494451FF4A4454FF494353FF474455FF474353FF494352FF4B44 54FF4B4454FF4C4554FF4D4655FF4D4556FF4B4555FF494553FF4C4656FF4D47 58FF4B4555FF4C4456FF4D4456FF4D4455FF4D4454FF4D4655FF4B4756FF4C48 5AFF4D485AFF4E4658FF4E4555FF4D4658FF4E4759FF504858FF4F4856FF4E45 54FF48414FFF403C48FF37333FFF2B2730FF1F1B22FF131115FF0A090BFF0504 05FF020102FE000000FB000000F0000000D9000000B6000000820000004F0000 00250000000B0000000100000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000010000000D000000260000004D0000007D000000AC000000D40000 00ED000000F6000101FE030303FF080708FF0E0D10FF171519FF221E25FF2D27 31FF38303BFF3F3644FF433B4AFF473E4DFF483E4FFF473E50FF4A4051FF4A40 50FF494050FF484150FF49414FFF4A4251FF4B4252FF4C4252FF4B4252FF4941 52FF4A4252FF4A4353FF4A4353FF4B4153FF4A4354FF4A4454FF4C4453FF4D43 53FF4C4453FF4C4453FF4C4554FF4C4555FF4D4454FF4D4353FF4E4457FF4E45 58FF4C4555FF4D4656FF4C4454FF4C4353FF4D4353FF4E4454FF4C4757FF4C46 59FF4D4558FF4E4657FF4F4555FF4E4558FF4D4558FF4B4454FF48414FFF443B 4AFF39343FFF2D2A33FF211E26FF161318FF0D0B0EFF070607FF030203FF0100 01FE000000F5000000E8000000CC000000A300000073000000430000001F0000 0009000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000080000001C0000003E0000006C0000009C0000 00C5000000E1000000F4000000FC010201FE030304FF080809FF100E11FF1915 1BFF241F27FF2E2933FF36303BFF3D3441FF423847FF443B4BFF473E4DFF4840 4FFF49404FFF484050FF483F4FFF4A4151FF4B4152FF4B4151FF4B4251FF4940 52FF4A4253FF4A4252FF494251FF4A4252FF4B4252FF4C4353FF4C4352FF4B43 51FF4B4352FF4B4352FF4B4352FF4C4353FF4D4352FF4D4252FF4D4255FF4D43 55FF4D4452FF4D4654FF4C4454FF4C4453FF4D4453FF4C4454FF4C4657FF4C45 57FF4D4456FF4C4455FF4C4353FF4A4152FF453E4EFF3F3947FF38333FFF3029 34FF242028FF18161CFF0E0D10FF080608FF030203FF010101FE000000FA0000 00F1000000DC000000BB00000091000000620000003500000016000000050000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000030000001300000030000000580000 0087000000B6000000D6000000EA000000F6000000FD020102FE040305FF0907 09FF100D11FF19151AFF221D24FF2B252DFF322C36FF39313EFF3D3745FF423B 4AFF463D4CFF473D4DFF453D4DFF483F50FF494050FF494050FF4A4150FF4840 51FF49404FFF49414FFF48414FFF474351FF4A4151FF4B4150FF494250FF4743 50FF484251FF494251FF4B4051FF4C3F51FF4B4250FF494151FF494152FF4A42 51FF4C4250FF4B4352FF4C4455FF4D4454FF4C4353FF484353FF4A4353FF4B42 52FF494150FF463E4EFF433A4AFF3D3644FF342F3BFF2B2730FF222026FF1815 1AFF100D12FF08070AFF030303FF020102FD000000FC000000F4000000E50000 00CE000000AB0000007B0000004D000000280000000D00000002000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000010000000B000000210000 0044000000700000009B000000C2000000E1000000F0000000F7010101FD0202 02FF050405FF080709FF0E0D0FFF161317FF1E1920FF252029FF2D2732FF342D 39FF3A323FFF403644FF413947FF443C4AFF473E4CFF493E4EFF493D4EFF4940 51FF49404FFF48404FFF484050FF4B404FFF4A3E4EFF483E4EFF48404FFF4941 51FF4A4152FF4A4052FF4B3F51FF4C3F50FF494151FF4A404FFF483F4FFF4840 4FFF4A4150FF4B4251FF4B4155FF4B3F53FF4A3E50FF463F4FFF463D4BFF4239 48FF3C3443FF372F3CFF2F2833FF26212AFF1C1A20FF131217FF0D0B0EFF0706 08FF040405FF020202FF000000FD000000F7000000EB000000D7000000B80000 008D000000630000003A0000001A000000060000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000060000 001500000031000000550000007F000000A7000000C7000000E1000000F00000 00F8010001FD020202FF040304FF070608FF0C0A0CFF120F12FF171419FF1E19 20FF261F27FF2C252EFF302B35FF362F3BFF3B323FFF3E3442FF413643FF4239 47FF423B4AFF423C4CFF423E4DFF453D4BFF473F4CFF473E4CFF483D4DFF483E 4FFF473E4FFF483F4FFF483F4FFF483F50FF494052FF4A3E4EFF473E4DFF453F 4DFF463F4DFF473E4BFF443B4AFF413849FF3D3545FF39313FFF352E38FF2D27 31FF25212AFF1E1B22FF171419FF110E12FF0B0A0CFF060607FF040305FF0101 02FF000001FC000000F6000000EC000000DD000000BE00000099000000700000 0048000000270000001000000004000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00020000000C0000001F0000003C0000006000000084000000AA000000C70000 00DE000000F0000000F7000000FC010101FE020202FF050405FF080608FF0C0A 0DFF110E12FF161218FF1A181DFF211C23FF262028FF2B232DFF2F2731FF322B 35FF342E3AFF36303DFF37323FFF38333EFF39333EFF3A333EFF3B333FFF3D34 42FF3E3644FF403845FF403845FF3E3845FF3E3746FF3E3543FF3D3541FF3A34 40FF39323EFF37303AFF322B36FF2E2733FF29232EFF231F26FF1E1A20FF1714 19FF100F13FF0C0B0EFF070708FF050405FF020202FF010101FE000001FC0000 00F5000000EC000000DA000000C0000000A10000007A00000053000000310000 0017000000070000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000030000000F000000230000003F00000062000000860000 00A9000000C8000000D9000000EB000000F4000000F8000001FB010001FE0202 03FF040305FF070507FF0A080AFF0D0B0EFF110E12FF151116FF19151BFF1D18 1FFF201C23FF231E27FF252028FF252027FF231F26FF231E26FF251F28FF2722 2BFF2B262FFF2F2833FF2F2933FF2D2831FF2B2730FF2A252EFF29232DFF2721 2BFF241E27FF201C22FF1B181EFF181419FF141015FF0E0D10FF0B090BFF0706 07FF040404FF020202FF010100FE000000FB000000F7000000F1000000E80000 00D4000000BF000000A20000007D00000058000000360000001C0000000A0000 0001000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000030000000E000000220000003D0000 005F00000082000000A1000000BF000000D3000000E1000000ED000000F30001 00F9010101FC010101FE020202FF030203FF040305FF060507FF070608FF0907 0AFF0C0A0DFF0F0C0FFF0F0D10FF0E0C0EFF0D0B0DFF0B090CFF0B090DFF100D 11FF141115FF161419FF17141AFF171319FF161318FF141115FF120F14FF100E 12FF0D0B0FFF0B0A0CFF090809FF070607FF050405FF030204FF030203FF0101 01FD000000FB000000F9000000F2000000EB000000DE000000CD000000B80000 00970000007700000056000000370000001D0000000B00000002000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000100000005000000100000 00200000003800000054000000710000008C000000A7000000C1000000D20000 00E2000000ED000000F3000000F9000000FC010101FD010102FE010102FE0201 02FE030203FE040304FF040304FF030203FF020202FF010101FF010102FF0302 04FF050406FF060608FF070608FF070607FF070608FF050505FF050405FF0403 04FF020203FE030203FD020202FE020202FE010101FC000000FB000000F80000 00F2000000EC000000E2000000D0000000BC000000A100000084000000670000 004A000000310000001C0000000C000000040000000100000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000010000 00050000000E0000001B0000002D000000430000005B000000750000008D0000 00A6000000B9000000C8000000D7000000E1000000EA000000F1000000F50000 00F9000000FA000000FB000000FD000000FF000000FF000000FF000000FF0000 00FF000000FF010101FD010101FE010101FF010101FC000000FF000000FD0000 00FB000000FB000000F8000000F5000000F1000000EB000000E3000000DA0000 00CA000000B8000000A4000000890000006F000000540000003B000000270000 00170000000B0000000400000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000200000008000000110000001E00000030000000440000 005A0000006F0000008200000095000000A5000000B5000000C4000000CE0000 00D8000000DE000000E3000000EA000000F3000000F9000000FD000000FD0000 00F9000000F7000000F1000000F0000000F1000000EB000000ED000000E90000 00E4000000E0000000DA000000D0000000C6000000B9000000A90000009A0000 00850000006E00000058000000410000002C0000001B0000000E000000050000 0001000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000100000007000000110000 001B00000028000000380000004700000057000000690000007A000000890000 0097000000A2000000AC000000B9000000CA000000DA000000E4000000E40000 00DB000000D4000000CB000000C8000000C6000000C1000000BD000000B70000 00AE000000A50000009B0000008C0000007E0000006E0000005C0000004C0000 003A000000290000001B0000000F000000060000000100000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0002000000060000000B0000001000000019000000220000002D000000390000 00440000004D00000057000000650000007A0000008F0000009D0000009F0000 0094000000890000007E0000007900000076000000710000006B000000630000 005A00000051000000460000003B00000030000000250000001B000000120000 000B000000060000000300000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000001000000010000000300000005000000080000000B0000 001000000014000000190000001F0000002A0000003800000041000000420000 003D00000034000000310000002F0000002D0000002A00000025000000200000 001B00000017000000120000000D000000090000000600000003000000020000 0001000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000010000000100000003000000060000000A0000000C0000000D0000 000C000000090000000800000008000000080000000700000005000000030000 0002000000010000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000 } OnCreate = FormCreate OnDestroy = FormDestroy Position = poScreenCenter LCLVersion = '3.2.0.0' object InGroupBox: TGroupBox AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 0 Height = 348 Top = 0 Width = 708 Anchors = [akTop, akLeft, akRight] AutoSize = True Caption = 'Input flie:' ClientHeight = 328 ClientWidth = 706 TabOrder = 0 object FileSelectButton: TButton AnchorSideLeft.Control = InGroupBox AnchorSideTop.Control = InGroupBox Left = 170 Height = 36 Hint = 'Select the input .dat file that requires correction.' Top = 0 Width = 120 BorderSpacing.Left = 170 Caption = 'Select file' TabOrder = 0 OnClick = FileSelectButtonClick end object InputFile: TLabeledEdit AnchorSideLeft.Control = FileSelectButton AnchorSideTop.Control = FileSelectButton AnchorSideTop.Side = asrBottom AnchorSideRight.Control = InGroupBox AnchorSideRight.Side = asrBottom Left = 170 Height = 36 Top = 38 Width = 536 Anchors = [akTop, akLeft, akRight] BorderSpacing.Top = 2 EditLabel.Height = 19 EditLabel.Width = 60 EditLabel.Caption = 'Filename:' EditLabel.ParentColor = False LabelPosition = lpLeft ReadOnly = True TabOrder = 1 end object TimeDifference: TLabeledEdit AnchorSideLeft.Control = FileSelectButton AnchorSideTop.Control = TimeSpanEdit AnchorSideTop.Side = asrBottom Left = 170 Height = 36 Top = 290 Width = 170 BorderSpacing.Bottom = 2 EditLabel.Height = 19 EditLabel.Width = 161 EditLabel.Caption = 'Retrieved time difference:' EditLabel.ParentColor = False LabelPosition = lpLeft ReadOnly = True TabOrder = 2 end object StartDateTimeEdit: TLabeledEdit AnchorSideLeft.Control = FileSelectButton AnchorSideTop.Control = LongitudeEdit AnchorSideTop.Side = asrBottom AnchorSideRight.Control = InputFile AnchorSideRight.Side = asrBottom Left = 170 Height = 36 Top = 182 Width = 536 Anchors = [akTop, akLeft, akRight] EditLabel.Height = 19 EditLabel.Width = 121 EditLabel.Caption = 'Start UTC datetime:' EditLabel.ParentColor = False LabelPosition = lpLeft ReadOnly = True TabOrder = 3 end object EndDateTimeEdit: TLabeledEdit AnchorSideLeft.Control = FileSelectButton AnchorSideTop.Control = StartDateTimeEdit AnchorSideTop.Side = asrBottom AnchorSideRight.Control = InputFile AnchorSideRight.Side = asrBottom Left = 170 Height = 36 Top = 218 Width = 536 Anchors = [akTop, akLeft, akRight] EditLabel.Height = 19 EditLabel.Width = 114 EditLabel.Caption = 'End UTC datetime:' EditLabel.ParentColor = False LabelPosition = lpLeft ReadOnly = True TabOrder = 4 end object TimeZoneEdit: TLabeledEdit AnchorSideLeft.Control = FileSelectButton AnchorSideTop.Control = InputFile AnchorSideTop.Side = asrBottom Left = 170 Height = 36 Top = 74 Width = 110 Alignment = taCenter EditLabel.Height = 19 EditLabel.Width = 66 EditLabel.Caption = 'TimeZone:' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 5 end object TimeZoneExistsText: TStaticText AnchorSideLeft.Control = TimeZoneEdit AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = TimeZoneEdit AnchorSideTop.Side = asrCenter Left = 284 Height = 17 Top = 84 Width = 137 BorderSpacing.Left = 4 Caption = '....' TabOrder = 6 end object TimeSpanEdit: TLabeledEdit AnchorSideLeft.Control = FileSelectButton AnchorSideTop.Control = EndDateTimeEdit AnchorSideTop.Side = asrBottom Left = 170 Height = 36 Top = 254 Width = 80 EditLabel.Height = 19 EditLabel.Width = 64 EditLabel.Caption = 'TimeSpan:' LabelPosition = lpLeft ReadOnly = True TabOrder = 7 end object LatitudeEdit: TLabeledEdit AnchorSideLeft.Control = TimeZoneEdit AnchorSideTop.Control = TimeZoneEdit AnchorSideTop.Side = asrBottom Left = 170 Height = 36 Top = 110 Width = 110 Alignment = taRightJustify EditLabel.Height = 19 EditLabel.Width = 55 EditLabel.Caption = 'Latitude:' LabelPosition = lpLeft TabOrder = 8 end object LongitudeEdit: TLabeledEdit AnchorSideLeft.Control = TimeZoneEdit AnchorSideTop.Control = LatitudeEdit AnchorSideTop.Side = asrBottom Left = 170 Height = 36 Top = 146 Width = 110 Alignment = taRightJustify EditLabel.Height = 19 EditLabel.Width = 67 EditLabel.Caption = 'Longitude:' LabelPosition = lpLeft TabOrder = 9 end end object OutGroupBox: TGroupBox AnchorSideLeft.Control = Owner AnchorSideTop.Control = CorrectionGroupBox AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 0 Height = 96 Top = 476 Width = 708 Anchors = [akTop, akLeft, akRight] Caption = 'Output file:' ClientHeight = 76 ClientWidth = 706 TabOrder = 1 object OutputFile: TLabeledEdit AnchorSideLeft.Control = CorrectButton AnchorSideTop.Control = CorrectButton AnchorSideTop.Side = asrBottom AnchorSideRight.Control = OutGroupBox AnchorSideRight.Side = asrBottom Left = 170 Height = 36 Top = 38 Width = 536 Anchors = [akTop, akLeft, akRight] BorderSpacing.Top = 2 BorderSpacing.Bottom = 2 EditLabel.Height = 19 EditLabel.Width = 60 EditLabel.Caption = 'Filename:' EditLabel.ParentColor = False LabelPosition = lpLeft TabOrder = 0 end object CorrectButton: TBitBtn AnchorSideLeft.Control = OutGroupBox AnchorSideTop.Control = OutGroupBox Left = 170 Height = 36 Hint = 'Correct .dat file for time difference' Top = 0 Width = 152 BorderSpacing.Left = 170 Caption = 'Correct .dat file' Enabled = False Glyph.Data = { 36100000424D3610000000000000360000002800000020000000200000000100 2000000000000010000064000000640000000000000000000000FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0080AA8004C8DAC809FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00085E08211B6F1AE0539451E83D8B 3D2AFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00002F0006025C01D22B742AFF387C37FF086A 06D6002F0006FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00015700AB146813FF367536FF054805FF0B6B 09FF016900B1FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00005500790B620AFE3C813CFF337A33FF014F01FF065A 06FF0A7407FE02690081FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF0000500048045C03F73C853CFF3D883DFF328032FF025B02FF005C 00FF0B6C0AFF077704F90368004FFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF000054001F005500E8368336FF479247FF3A8B3AFF2F852FFF056705FF0067 00FF006A00FF107C0FFF037800ED006A0022FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00002F 0006004F00CF2B772BFF519C51FF459645FF388F38FF2D8A2DFF087208FF0071 00FF007500FF007700FF138411FF047A00D8004D0007FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00004D 00A91D6A1DFF5BA45BFF4F9F4FFF439943FF369436FF2B8F2BFF097C09FF007B 00FF007F00FF008200FF048504FF12870FFF037800B5FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00004C0078125B 12FE60A660FF59A659FF4CA14CFF409C40FF349834FF2A952AFF078307FF0085 00FF008A00FF008D00FF008F00FF099209FF0F870BFE02770085FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00004C0048055105F75FA2 5FFF63AD63FF57A857FF4AA34AFF3E9F3EFF319C31FF2B9C2BFF058A05FF008E 00FF009400FF009800FF009A00FF009A00FF109B0FFF0A8506FA03750051FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000054001F004D00E8579857FF6DB5 6DFF61AD61FF55A955FF48A448FF3CA23CFF2F9F2FFF2CA12CFF009000FF0097 00FF009D00FF00A200FF00A500FF00A500FF00A400FF189F16FF058501EF0073 0023FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00002F0006004D00CF468646FF78BC78FF6BB4 6BFF5EAE5EFF52A952FF46A546FF39A339FF2DA22DFF2AA62AFF009700FF009F 00FF00A600FF00AC00FF00B000FF00B100FF00AF00FF00AA00FF1A9D17FF0584 00DC004D0007FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00004D00A9317331FF84C184FF75BA75FF69B3 69FF5CAD5CFF4FA94FFF43A643FF37A437FF2BA32BFF29A829FF009D00FF00A5 00FF00AE00FF00B500FF00BA00FF00BD00FF00BA00FF00B400FF05AC05FF1896 14FF048500BAFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00004B00791D621DFE87C187FF7FC17FFF73B873FF67B2 67FF5AAC5AFF4DA94DFF41A641FF34A434FF28A528FF28AB28FF00A100FF00AB 00FF00B400FF00BD00FF00C400FF00C800FF00C500FF00BD00FF00B200FF0CA8 0CFF13900EFE04820089FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00004C00480A540AF786BA86FF89C789FF7DBF7DFF70B770FF64B0 64FF58AC58FF4BA74BFF3FA63FFF32A432FF25A525FF28AC28FF00A300FF00AE 00FF00B800FF00C200FF00CC00FF00D300FF00D000FF00C400FF00B700FF00AA 00FF14A013FF0D8D08FA03810054FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF0000400002004D00E384B184FF99D299FF8DC88DFF83C183FF77B977FF6AB3 6AFF60B060FF57AC57FF4DAC4DFF42AC42FF36AB36FF39B339FF04A604FF05B1 05FF06BB06FF06C506FF07D007FF08DA08FF09D609FF0AC90AFF0BBC0BFF0CAF 0CFF0DA10DFF2FA735FF1BA02AECFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF0000550002004D00D3004D00FF004D00FF004D00FF004E00FF005500FF005C 00FF006300FF006A00FF027001FF037402FF037B02FF057E03FF068204FF0784 05FF098806FF098B06FF0A8C07FF0C8F08FF0D8F09FF0E900AFF10920BFF1191 0CFF12900DFF138F0DFF068D01DAFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF000066000300500011005000110050001100500011005000110050 0011005000110050001100500011005000110050001100500011005000110050 0011005000110050001100500011005000110050001100500011005000110050 0011005000110050001100660003FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 } OnClick = CorrectButtonClick ParentShowHint = False ShowHint = True TabOrder = 1 end end object StatusBar1: TStatusBar AnchorSideTop.Side = asrBottom AnchorSideBottom.Side = asrBottom Left = 0 Height = 21 Top = 586 Width = 708 Anchors = [] AutoSize = False Panels = < item Width = 50 end> SimplePanel = False end object CorrectionGroupBox: TGroupBox AnchorSideTop.Control = InGroupBox AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 1 Height = 128 Top = 348 Width = 707 Anchors = [akTop, akLeft, akRight] Caption = 'Correction method:' ClientHeight = 108 ClientWidth = 705 TabOrder = 3 object Memo1: TMemo AnchorSideLeft.Control = CorrectionGroupBox AnchorSideTop.Control = CorrectionGroupBox AnchorSideRight.Control = CorrectionGroupBox AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = CorrectionGroupBox AnchorSideBottom.Side = asrBottom Left = 170 Height = 105 Top = 0 Width = 533 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 170 BorderSpacing.Right = 2 BorderSpacing.Bottom = 3 ReadOnly = True TabOrder = 0 end object FixedMethodRadio: TRadioButton AnchorSideLeft.Control = CorrectionGroupBox AnchorSideTop.Control = CorrectionGroupBox Left = 7 Height = 23 Top = 0 Width = 59 BorderSpacing.Left = 7 Caption = 'Fixed' Checked = True TabOrder = 1 TabStop = True OnClick = FixedMethodRadioClick end object LinearMethodRadio: TRadioButton AnchorSideLeft.Control = FixedMethodRadio AnchorSideTop.Control = FixedMethodRadio AnchorSideTop.Side = asrBottom Left = 7 Height = 23 Top = 23 Width = 65 Caption = 'Linear' TabOrder = 2 OnClick = LinearMethodRadioClick end object SunriseDifferenceRadioButton: TRadioButton AnchorSideLeft.Control = FixedMethodRadio AnchorSideTop.Control = LinearMethodRadio AnchorSideTop.Side = asrBottom Left = 7 Height = 23 Top = 46 Width = 138 Caption = 'Sunrise difference' TabOrder = 3 OnClick = SunriseDifferenceRadioButtonClick end end object OpenDialog1: TOpenDialog Left = 40 Top = 24 end end ./viewlog.lfm0000644000175000017500000002652614576573022013337 0ustar anthonyanthonyobject Form5: TForm5 Left = 2721 Height = 365 Top = 361 Width = 990 Caption = 'Log' ClientHeight = 365 ClientWidth = 990 Position = poScreenCenter LCLVersion = '2.2.6.0' inline SynEdit1: TSynEdit AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = SaveLog Left = 0 Height = 329 Top = 0 Width = 990 Anchors = [akTop, akLeft, akRight, akBottom] Font.Height = -13 Font.Name = 'Courier New' Font.Pitch = fpFixed Font.Quality = fqNonAntialiased ParentColor = False ParentFont = False TabOrder = 0 Gutter.Width = 57 Gutter.MouseActions = <> RightGutter.Width = 0 RightGutter.MouseActions = <> Keystrokes = < item Command = ecUp ShortCut = 38 end item Command = ecSelUp ShortCut = 8230 end item Command = ecScrollUp ShortCut = 16422 end item Command = ecDown ShortCut = 40 end item Command = ecSelDown ShortCut = 8232 end item Command = ecScrollDown ShortCut = 16424 end item Command = ecLeft ShortCut = 37 end item Command = ecSelLeft ShortCut = 8229 end item Command = ecWordLeft ShortCut = 16421 end item Command = ecSelWordLeft ShortCut = 24613 end item Command = ecRight ShortCut = 39 end item Command = ecSelRight ShortCut = 8231 end item Command = ecWordRight ShortCut = 16423 end item Command = ecSelWordRight ShortCut = 24615 end item Command = ecPageDown ShortCut = 34 end item Command = ecSelPageDown ShortCut = 8226 end item Command = ecPageBottom ShortCut = 16418 end item Command = ecSelPageBottom ShortCut = 24610 end item Command = ecPageUp ShortCut = 33 end item Command = ecSelPageUp ShortCut = 8225 end item Command = ecPageTop ShortCut = 16417 end item Command = ecSelPageTop ShortCut = 24609 end item Command = ecLineStart ShortCut = 36 end item Command = ecSelLineStart ShortCut = 8228 end item Command = ecEditorTop ShortCut = 16420 end item Command = ecSelEditorTop ShortCut = 24612 end item Command = ecLineEnd ShortCut = 35 end item Command = ecSelLineEnd ShortCut = 8227 end item Command = ecEditorBottom ShortCut = 16419 end item Command = ecSelEditorBottom ShortCut = 24611 end item Command = ecToggleMode ShortCut = 45 end item Command = ecCopy ShortCut = 16429 end item Command = ecPaste ShortCut = 8237 end item Command = ecDeleteChar ShortCut = 46 end item Command = ecCut ShortCut = 8238 end item Command = ecDeleteLastChar ShortCut = 8 end item Command = ecDeleteLastChar ShortCut = 8200 end item Command = ecDeleteLastWord ShortCut = 16392 end item Command = ecUndo ShortCut = 32776 end item Command = ecRedo ShortCut = 40968 end item Command = ecLineBreak ShortCut = 13 end item Command = ecSelectAll ShortCut = 16449 end item Command = ecCopy ShortCut = 16451 end item Command = ecBlockIndent ShortCut = 24649 end item Command = ecLineBreak ShortCut = 16461 end item Command = ecInsertLine ShortCut = 16462 end item Command = ecDeleteWord ShortCut = 16468 end item Command = ecBlockUnindent ShortCut = 24661 end item Command = ecPaste ShortCut = 16470 end item Command = ecCut ShortCut = 16472 end item Command = ecDeleteLine ShortCut = 16473 end item Command = ecDeleteEOL ShortCut = 24665 end item Command = ecUndo ShortCut = 16474 end item Command = ecRedo ShortCut = 24666 end item Command = ecGotoMarker0 ShortCut = 16432 end item Command = ecGotoMarker1 ShortCut = 16433 end item Command = ecGotoMarker2 ShortCut = 16434 end item Command = ecGotoMarker3 ShortCut = 16435 end item Command = ecGotoMarker4 ShortCut = 16436 end item Command = ecGotoMarker5 ShortCut = 16437 end item Command = ecGotoMarker6 ShortCut = 16438 end item Command = ecGotoMarker7 ShortCut = 16439 end item Command = ecGotoMarker8 ShortCut = 16440 end item Command = ecGotoMarker9 ShortCut = 16441 end item Command = ecSetMarker0 ShortCut = 24624 end item Command = ecSetMarker1 ShortCut = 24625 end item Command = ecSetMarker2 ShortCut = 24626 end item Command = ecSetMarker3 ShortCut = 24627 end item Command = ecSetMarker4 ShortCut = 24628 end item Command = ecSetMarker5 ShortCut = 24629 end item Command = ecSetMarker6 ShortCut = 24630 end item Command = ecSetMarker7 ShortCut = 24631 end item Command = ecSetMarker8 ShortCut = 24632 end item Command = ecSetMarker9 ShortCut = 24633 end item Command = EcFoldLevel1 ShortCut = 41009 end item Command = EcFoldLevel2 ShortCut = 41010 end item Command = EcFoldLevel3 ShortCut = 41011 end item Command = EcFoldLevel4 ShortCut = 41012 end item Command = EcFoldLevel5 ShortCut = 41013 end item Command = EcFoldLevel6 ShortCut = 41014 end item Command = EcFoldLevel7 ShortCut = 41015 end item Command = EcFoldLevel8 ShortCut = 41016 end item Command = EcFoldLevel9 ShortCut = 41017 end item Command = EcFoldLevel0 ShortCut = 41008 end item Command = EcFoldCurrent ShortCut = 41005 end item Command = EcUnFoldCurrent ShortCut = 41003 end item Command = EcToggleMarkupWord ShortCut = 32845 end item Command = ecNormalSelect ShortCut = 24654 end item Command = ecColumnSelect ShortCut = 24643 end item Command = ecLineSelect ShortCut = 24652 end item Command = ecTab ShortCut = 9 end item Command = ecShiftTab ShortCut = 8201 end item Command = ecMatchBracket ShortCut = 24642 end item Command = ecColSelUp ShortCut = 40998 end item Command = ecColSelDown ShortCut = 41000 end item Command = ecColSelLeft ShortCut = 40997 end item Command = ecColSelRight ShortCut = 40999 end item Command = ecColSelPageDown ShortCut = 40994 end item Command = ecColSelPageBottom ShortCut = 57378 end item Command = ecColSelPageUp ShortCut = 40993 end item Command = ecColSelPageTop ShortCut = 57377 end item Command = ecColSelLineStart ShortCut = 40996 end item Command = ecColSelLineEnd ShortCut = 40995 end item Command = ecColSelEditorTop ShortCut = 57380 end item Command = ecColSelEditorBottom ShortCut = 57379 end> MouseActions = <> MouseTextActions = <> MouseSelActions = <> Lines.Strings = ( 'SynEdit1' ) VisibleSpecialChars = [vscSpace, vscTabAtLast] RightEdge = 0 ScrollBars = ssAutoBoth SelectedColor.BackPriority = 50 SelectedColor.ForePriority = 50 SelectedColor.FramePriority = 50 SelectedColor.BoldPriority = 50 SelectedColor.ItalicPriority = 50 SelectedColor.UnderlinePriority = 50 SelectedColor.StrikeOutPriority = 50 BracketHighlightStyle = sbhsBoth BracketMatchColor.Background = clNone BracketMatchColor.Foreground = clNone BracketMatchColor.Style = [fsBold] FoldedCodeColor.Background = clNone FoldedCodeColor.Foreground = clGray FoldedCodeColor.FrameColor = clGray MouseLinkColor.Background = clNone MouseLinkColor.Foreground = clBlue LineHighlightColor.Background = clNone LineHighlightColor.Foreground = clNone inline SynLeftGutterPartList1: TSynGutterPartList object SynGutterMarks1: TSynGutterMarks Width = 24 MouseActions = <> end object SynGutterLineNumber1: TSynGutterLineNumber Width = 17 MouseActions = <> MarkupInfo.Background = clBtnFace MarkupInfo.Foreground = clNone DigitCount = 2 ShowOnlyLineNumbersMultiplesOf = 1 ZeroStart = False LeadingZeros = False end object SynGutterChanges1: TSynGutterChanges Width = 4 MouseActions = <> ModifiedColor = 59900 SavedColor = clGreen end object SynGutterSeparator1: TSynGutterSeparator Width = 2 MouseActions = <> MarkupInfo.Background = clWhite MarkupInfo.Foreground = clGray end object SynGutterCodeFolding1: TSynGutterCodeFolding MouseActions = <> MarkupInfo.Background = clNone MarkupInfo.Foreground = clGray MouseActionsExpanded = <> MouseActionsCollapsed = <> end end end object SaveLog: TButton AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 850 Height = 28 Top = 333 Width = 136 Anchors = [akRight, akBottom] BorderSpacing.Around = 4 Caption = 'Save to file' OnClick = SaveLogClick TabOrder = 1 end end ./blcksock.pas0000644000175000017500000040613014576573021013453 0ustar anthonyanthony{==============================================================================| | Project : Ararat Synapse | 009.009.001 | |==============================================================================| | Content: Library base | |==============================================================================| | Copyright (c)1999-2013, Lukas Gebauer | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions are met: | | | | Redistributions of source code must retain the above copyright notice, this | | list of conditions and the following disclaimer. | | | | Redistributions in binary form must reproduce the above copyright notice, | | this list of conditions and the following disclaimer in the documentation | | and/or other materials provided with the distribution. | | | | Neither the name of Lukas Gebauer nor the names of its contributors may | | be used to endorse or promote products derived from this software without | | specific prior written permission. | | | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR | | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | | DAMAGE. | |==============================================================================| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | Portions created by Lukas Gebauer are Copyright (c)1999-2013. | | All Rights Reserved. | |==============================================================================| | Contributor(s): | |==============================================================================| | History: see HISTORY.HTM from distribution package | | (Found at URL: http://www.ararat.cz/synapse/) | |==============================================================================} { Special thanks to Gregor Ibic (Intelicom d.o.o., http://www.intelicom.si) for good inspiration about SSL programming. } {$DEFINE ONCEWINSOCK} {Note about define ONCEWINSOCK: If you remove this compiler directive, then socket interface is loaded and initialized on constructor of TBlockSocket class for each socket separately. Socket interface is used only if your need it. If you leave this directive here, then socket interface is loaded and initialized only once at start of your program! It boost performace on high count of created and destroyed sockets. It eliminate possible small resource leak on Windows systems too. } //{$DEFINE RAISEEXCEPT} {When you enable this define, then is Raiseexcept property is on by default } {:@abstract(Synapse's library core) Core with implementation basic socket classes. } {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} {$IFDEF VER125} {$DEFINE BCB} {$ENDIF} {$IFDEF BCB} {$ObjExportAll On} {$ENDIF} {$Q-} {$H+} {$M+} {$TYPEDADDRESS OFF} //old Delphi does not have MSWINDOWS define. {$IFDEF WIN32} {$IFNDEF MSWINDOWS} {$DEFINE MSWINDOWS} {$ENDIF} {$ENDIF} {$IFDEF UNICODE} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$ENDIF} unit blcksock; interface uses SysUtils, Classes, synafpc, synsock, synautil, synacode, synaip {$IFDEF CIL} ,System.Net ,System.Net.Sockets ,System.Text {$ENDIF} ; const SynapseRelease = '40'; cLocalhost = '127.0.0.1'; cAnyHost = '0.0.0.0'; cBroadcast = '255.255.255.255'; c6Localhost = '::1'; c6AnyHost = '::0'; c6Broadcast = 'ffff::1'; cAnyPort = '0'; CR = #$0d; LF = #$0a; CRLF = CR + LF; c64k = 65536; type {:@abstract(Exception clas used by Synapse) When you enable generating of exceptions, this exception is raised by Synapse's units.} ESynapseError = class(Exception) private FErrorCode: Integer; FErrorMessage: string; published {:Code of error. Value depending on used operating system} property ErrorCode: Integer read FErrorCode Write FErrorCode; {:Human readable description of error.} property ErrorMessage: string read FErrorMessage Write FErrorMessage; end; {:Types of OnStatus events} THookSocketReason = ( {:Resolving is begin. Resolved IP and port is in parameter in format like: 'localhost.somewhere.com:25'.} HR_ResolvingBegin, {:Resolving is done. Resolved IP and port is in parameter in format like: 'localhost.somewhere.com:25'. It is always same as in HR_ResolvingBegin!} HR_ResolvingEnd, {:Socket created by CreateSocket method. It reporting Family of created socket too!} HR_SocketCreate, {:Socket closed by CloseSocket method.} HR_SocketClose, {:Socket binded to IP and Port. Binded IP and Port is in parameter in format like: 'localhost.somewhere.com:25'.} HR_Bind, {:Socket connected to IP and Port. Connected IP and Port is in parameter in format like: 'localhost.somewhere.com:25'.} HR_Connect, {:Called when CanRead method is used with @True result.} HR_CanRead, {:Called when CanWrite method is used with @True result.} HR_CanWrite, {:Socket is swithed to Listen mode. (TCP socket only)} HR_Listen, {:Socket Accepting client connection. (TCP socket only)} HR_Accept, {:report count of bytes readed from socket. Number is in parameter string. If you need is in integer, you must use StrToInt function!} HR_ReadCount, {:report count of bytes writed to socket. Number is in parameter string. If you need is in integer, you must use StrToInt function!} HR_WriteCount, {:If is limiting of bandwidth on, then this reason is called when sending or receiving is stopped for satisfy bandwidth limit. Parameter is count of waiting milliseconds.} HR_Wait, {:report situation where communication error occured. When raiseexcept is @true, then exception is called after this Hook reason.} HR_Error ); {:Procedural type for OnStatus event. Sender is calling TBlockSocket object, Reason is one of set Status events and value is optional data.} THookSocketStatus = procedure(Sender: TObject; Reason: THookSocketReason; const Value: String) of object; {:This procedural type is used for DataFilter hooks.} THookDataFilter = procedure(Sender: TObject; var Value: AnsiString) of object; {:This procedural type is used for hook OnCreateSocket. By this hook you can insert your code after initialisation of socket. (you can set special socket options, etc.)} THookCreateSocket = procedure(Sender: TObject) of object; {:This procedural type is used for monitoring of communication.} THookMonitor = procedure(Sender: TObject; Writing: Boolean; const Buffer: TMemory; Len: Integer) of object; {:This procedural type is used for hook OnAfterConnect. By this hook you can insert your code after TCP socket has been sucessfully connected.} THookAfterConnect = procedure(Sender: TObject) of object; {:This procedural type is used for hook OnVerifyCert. By this hook you can insert your additional certificate verification code. Usefull to verify server CN against URL. } THookVerifyCert = function(Sender: TObject):boolean of object; {:This procedural type is used for hook OnHeartbeat. By this hook you can call your code repeately during long socket operations. You must enable heartbeats by @Link(HeartbeatRate) property!} THookHeartbeat = procedure(Sender: TObject) of object; {:Specify family of socket.} TSocketFamily = ( {:Default mode. Socket family is defined by target address for connection. It allows instant access to IPv4 and IPv6 nodes. When you need IPv6 address as destination, then is used IPv6 mode. othervise is used IPv4 mode. However this mode not working properly with preliminary IPv6 supports!} SF_Any, {:Turn this class to pure IPv4 mode. This mode is totally compatible with previous Synapse releases.} SF_IP4, {:Turn to only IPv6 mode.} SF_IP6 ); {:specify possible values of SOCKS modes.} TSocksType = ( ST_Socks5, ST_Socks4 ); {:Specify requested SSL/TLS version for secure connection.} TSSLType = ( LT_all, LT_SSLv2, LT_SSLv3, LT_TLSv1, LT_TLSv1_1, LT_SSHv2 ); {:Specify type of socket delayed option.} TSynaOptionType = ( SOT_Linger, SOT_RecvBuff, SOT_SendBuff, SOT_NonBlock, SOT_RecvTimeout, SOT_SendTimeout, SOT_Reuse, SOT_TTL, SOT_Broadcast, SOT_MulticastTTL, SOT_MulticastLoop ); {:@abstract(this object is used for remember delayed socket option set.)} TSynaOption = class(TObject) public Option: TSynaOptionType; Enabled: Boolean; Value: Integer; end; TCustomSSL = class; TSSLClass = class of TCustomSSL; {:@abstract(Basic IP object.) This is parent class for other class with protocol implementations. Do not use this class directly! Use @link(TICMPBlockSocket), @link(TRAWBlockSocket), @link(TTCPBlockSocket) or @link(TUDPBlockSocket) instead.} TBlockSocket = class(TObject) private FOnStatus: THookSocketStatus; FOnReadFilter: THookDataFilter; FOnCreateSocket: THookCreateSocket; FOnMonitor: THookMonitor; FOnHeartbeat: THookHeartbeat; FLocalSin: TVarSin; FRemoteSin: TVarSin; FTag: integer; FBuffer: AnsiString; FRaiseExcept: Boolean; FNonBlockMode: Boolean; FMaxLineLength: Integer; FMaxSendBandwidth: Integer; FNextSend: LongWord; FMaxRecvBandwidth: Integer; FNextRecv: LongWord; FConvertLineEnd: Boolean; FLastCR: Boolean; FLastLF: Boolean; FBinded: Boolean; FFamily: TSocketFamily; FFamilySave: TSocketFamily; FIP6used: Boolean; FPreferIP4: Boolean; FDelayedOptions: TList; FInterPacketTimeout: Boolean; {$IFNDEF CIL} FFDSet: TFDSet; {$ENDIF} FRecvCounter: Integer; FSendCounter: Integer; FSendMaxChunk: Integer; FStopFlag: Boolean; FNonblockSendTimeout: Integer; FHeartbeatRate: integer; FConnectionTimeout: integer; {$IFNDEF ONCEWINSOCK} FWsaDataOnce: TWSADATA; {$ENDIF} function GetSizeRecvBuffer: Integer; procedure SetSizeRecvBuffer(Size: Integer); function GetSizeSendBuffer: Integer; procedure SetSizeSendBuffer(Size: Integer); procedure SetNonBlockMode(Value: Boolean); procedure SetTTL(TTL: integer); function GetTTL:integer; procedure SetFamily(Value: TSocketFamily); virtual; procedure SetSocket(Value: TSocket); virtual; function GetWsaData: TWSAData; function FamilyToAF(f: TSocketFamily): TAddrFamily; protected FSocket: TSocket; FLastError: Integer; FLastErrorDesc: string; FOwner: TObject; procedure SetDelayedOption(const Value: TSynaOption); procedure DelayedOption(const Value: TSynaOption); procedure ProcessDelayedOptions; procedure InternalCreateSocket(Sin: TVarSin); procedure SetSin(var Sin: TVarSin; IP, Port: string); function GetSinIP(Sin: TVarSin): string; function GetSinPort(Sin: TVarSin): Integer; procedure DoStatus(Reason: THookSocketReason; const Value: string); procedure DoReadFilter(Buffer: TMemory; var Len: Integer); procedure DoMonitor(Writing: Boolean; const Buffer: TMemory; Len: Integer); procedure DoCreateSocket; procedure DoHeartbeat; procedure LimitBandwidth(Length: Integer; MaxB: integer; var Next: LongWord); procedure SetBandwidth(Value: Integer); function TestStopFlag: Boolean; procedure InternalSendStream(const Stream: TStream; WithSize, Indy: boolean); virtual; function InternalCanRead(Timeout: Integer): Boolean; virtual; public constructor Create; {:Create object and load all necessary socket library. What library is loaded is described by STUB parameter. If STUB is empty string, then is loaded default libraries.} constructor CreateAlternate(Stub: string); destructor Destroy; override; {:If @link(family) is not SF_Any, then create socket with type defined in @link(Family) property. If family is SF_Any, then do nothing! (socket is created automaticly when you know what type of socket you need to create. (i.e. inside @link(Connect) or @link(Bind) call.) When socket is created, then is aplyed all stored delayed socket options.} procedure CreateSocket; {:It create socket. Address resolving of Value tells what type of socket is created. If Value is resolved as IPv4 IP, then is created IPv4 socket. If value is resolved as IPv6 address, then is created IPv6 socket.} procedure CreateSocketByName(const Value: String); {:Destroy socket in use. This method is also automatically called from object destructor.} procedure CloseSocket; virtual; {:Abort any work on Socket and destroy them.} procedure AbortSocket; virtual; {:Connects socket to local IP address and PORT. IP address may be numeric or symbolic ('192.168.74.50', 'cosi.nekde.cz', 'ff08::1'). The same for PORT - it may be number or mnemonic port ('23', 'telnet'). If port value is '0', system chooses itself and conects unused port in the range 1024 to 4096 (this depending by operating system!). Structure LocalSin is filled after calling this method. Note: If you call this on non-created socket, then socket is created automaticly. Warning: when you call : Bind('0.0.0.0','0'); then is nothing done! In this case is used implicit system bind instead.} procedure Bind(IP, Port: string); {:Connects socket to remote IP address and PORT. The same rules as with @link(BIND) method are valid. The only exception is that PORT with 0 value will not be connected! Structures LocalSin and RemoteSin will be filled with valid values. When you call this on non-created socket, then socket is created automaticly. Type of created socket is by @link(Family) property. If is used SF_IP4, then is created socket for IPv4. If is used SF_IP6, then is created socket for IPv6. When you have family on SF_Any (default!), then type of created socket is determined by address resolving of destination address. (Not work properly on prilimitary winsock IPv6 support!)} procedure Connect(IP, Port: string); virtual; {:Sets socket to receive mode for new incoming connections. It is necessary to use @link(TBlockSocket.BIND) function call before this method to select receiving port!} procedure Listen; virtual; {:Waits until new incoming connection comes. After it comes a new socket is automatically created (socket handler is returned by this function as result).} function Accept: TSocket; virtual; {:Sends data of LENGTH from BUFFER address via connected socket. System automatically splits data to packets.} function SendBuffer(Buffer: Tmemory; Length: Integer): Integer; virtual; {:One data BYTE is sent via connected socket.} procedure SendByte(Data: Byte); virtual; {:Send data string via connected socket. Any terminator is not added! If you need send true string with CR-LF termination, you must add CR-LF characters to sended string! Because any termination is not added automaticly, you can use this function for sending any binary data in binary string.} procedure SendString(Data: AnsiString); virtual; {:Send integer as four bytes to socket.} procedure SendInteger(Data: integer); virtual; {:Send data as one block to socket. Each block begin with 4 bytes with length of data in block. This 4 bytes is added automaticly by this function.} procedure SendBlock(const Data: AnsiString); virtual; {:Send data from stream to socket.} procedure SendStreamRaw(const Stream: TStream); virtual; {:Send content of stream to socket. It using @link(SendBlock) method} procedure SendStream(const Stream: TStream); virtual; {:Send content of stream to socket. It using @link(SendBlock) method and this is compatible with streams in Indy library.} procedure SendStreamIndy(const Stream: TStream); virtual; {:Note: This is low-level receive function. You must be sure if data is waiting for read before call this function for avoid deadlock! Waits until allocated buffer is filled by received data. Returns number of data received, which equals to LENGTH value under normal operation. If it is not equal the communication channel is possibly broken. On stream oriented sockets if is received 0 bytes, it mean 'socket is closed!" On datagram socket is readed first waiting datagram.} function RecvBuffer(Buffer: TMemory; Length: Integer): Integer; virtual; {:Note: This is high-level receive function. It using internal @link(LineBuffer) and you can combine this function freely with other high-level functions! Method waits until data is received. If no data is received within TIMEOUT (in milliseconds) period, @link(LastError) is set to WSAETIMEDOUT. Methods serves for reading any size of data (i.e. one megabyte...). This method is preffered for reading from stream sockets (like TCP).} function RecvBufferEx(Buffer: Tmemory; Len: Integer; Timeout: Integer): Integer; virtual; {:Similar to @link(RecvBufferEx), but readed data is stored in binary string, not in memory buffer.} function RecvBufferStr(Len: Integer; Timeout: Integer): AnsiString; virtual; {:Note: This is high-level receive function. It using internal @link(LineBuffer) and you can combine this function freely with other high-level functions. Waits until one data byte is received which is also returned as function result. If no data is received within TIMEOUT (in milliseconds)period, @link(LastError) is set to WSAETIMEDOUT and result have value 0.} function RecvByte(Timeout: Integer): Byte; virtual; {:Note: This is high-level receive function. It using internal @link(LineBuffer) and you can combine this function freely with other high-level functions. Waits until one four bytes are received and return it as one Ineger Value. If no data is received within TIMEOUT (in milliseconds)period, @link(LastError) is set to WSAETIMEDOUT and result have value 0.} function RecvInteger(Timeout: Integer): Integer; virtual; {:Note: This is high-level receive function. It using internal @link(LineBuffer) and you can combine this function freely with other high-level functions. Method waits until data string is received. This string is terminated by CR-LF characters. The resulting string is returned without this termination (CR-LF)! If @link(ConvertLineEnd) is used, then CR-LF sequence may not be exactly CR-LF. See @link(ConvertLineEnd) description. If no data is received within TIMEOUT (in milliseconds) period, @link(LastError) is set to WSAETIMEDOUT. You may also specify maximum length of reading data by @link(MaxLineLength) property.} function RecvString(Timeout: Integer): AnsiString; virtual; {:Note: This is high-level receive function. It using internal @link(LineBuffer) and you can combine this function freely with other high-level functions. Method waits until data string is received. This string is terminated by Terminator string. The resulting string is returned without this termination. If no data is received within TIMEOUT (in milliseconds) period, @link(LastError) is set to WSAETIMEDOUT. You may also specify maximum length of reading data by @link(MaxLineLength) property.} function RecvTerminated(Timeout: Integer; const Terminator: AnsiString): AnsiString; virtual; {:Note: This is high-level receive function. It using internal @link(LineBuffer) and you can combine this function freely with other high-level functions. Method reads all data waiting for read. If no data is received within TIMEOUT (in milliseconds) period, @link(LastError) is set to WSAETIMEDOUT. Methods serves for reading unknown size of data. Because before call this function you don't know size of received data, returned data is stored in dynamic size binary string. This method is preffered for reading from stream sockets (like TCP). It is very goot for receiving datagrams too! (UDP protocol)} function RecvPacket(Timeout: Integer): AnsiString; virtual; {:Read one block of data from socket. Each block begin with 4 bytes with length of data in block. This function read first 4 bytes for get lenght, then it wait for reported count of bytes.} function RecvBlock(Timeout: Integer): AnsiString; virtual; {:Read all data from socket to stream until socket is closed (or any error occured.)} procedure RecvStreamRaw(const Stream: TStream; Timeout: Integer); virtual; {:Read requested count of bytes from socket to stream.} procedure RecvStreamSize(const Stream: TStream; Timeout: Integer; Size: Integer); {:Receive data to stream. It using @link(RecvBlock) method.} procedure RecvStream(const Stream: TStream; Timeout: Integer); virtual; {:Receive data to stream. This function is compatible with similar function in Indy library. It using @link(RecvBlock) method.} procedure RecvStreamIndy(const Stream: TStream; Timeout: Integer); virtual; {:Same as @link(RecvBuffer), but readed data stays in system input buffer. Warning: this function not respect data in @link(LineBuffer)! Is not recommended to use this function!} function PeekBuffer(Buffer: TMemory; Length: Integer): Integer; virtual; {:Same as @link(RecvByte), but readed data stays in input system buffer. Warning: this function not respect data in @link(LineBuffer)! Is not recommended to use this function!} function PeekByte(Timeout: Integer): Byte; virtual; {:On stream sockets it returns number of received bytes waiting for picking. 0 is returned when there is no such data. On datagram socket it returns length of the first waiting datagram. Returns 0 if no datagram is waiting.} function WaitingData: Integer; virtual; {:Same as @link(WaitingData), but if exists some of data in @link(Linebuffer), return their length instead.} function WaitingDataEx: Integer; {:Clear all waiting data for read from buffers.} procedure Purge; {:Sets linger. Enabled linger means that the system waits another LINGER (in milliseconds) time for delivery of sent data. This function is only for stream type of socket! (TCP)} procedure SetLinger(Enable: Boolean; Linger: Integer); {:Actualize values in @link(LocalSin).} procedure GetSinLocal; {:Actualize values in @link(RemoteSin).} procedure GetSinRemote; {:Actualize values in @link(LocalSin) and @link(RemoteSin).} procedure GetSins; {:Reset @link(LastError) and @link(LastErrorDesc) to non-error state.} procedure ResetLastError; {:If you "manually" call Socket API functions, forward their return code as parameter to this function, which evaluates it, eventually calls GetLastError and found error code returns and stores to @link(LastError).} function SockCheck(SockResult: Integer): Integer; virtual; {:If @link(LastError) contains some error code and @link(RaiseExcept) property is @true, raise adequate exception.} procedure ExceptCheck; {:Returns local computer name as numerical or symbolic value. It try get fully qualified domain name. Name is returned in the format acceptable by functions demanding IP as input parameter.} function LocalName: string; {:Try resolve name to all possible IP address. i.e. If you pass as name result of @link(LocalName) method, you get all IP addresses used by local system.} procedure ResolveNameToIP(Name: string; const IPList: TStrings); {:Try resolve name to primary IP address. i.e. If you pass as name result of @link(LocalName) method, you get primary IP addresses used by local system.} function ResolveName(Name: string): string; {:Try resolve IP to their primary domain name. If IP not have domain name, then is returned original IP.} function ResolveIPToName(IP: string): string; {:Try resolve symbolic port name to port number. (i.e. 'Echo' to 8)} function ResolvePort(Port: string): Word; {:Set information about remote side socket. It is good for seting remote side for sending UDP packet, etc.} procedure SetRemoteSin(IP, Port: string); {:Picks IP socket address from @link(LocalSin).} function GetLocalSinIP: string; virtual; {:Picks IP socket address from @link(RemoteSin).} function GetRemoteSinIP: string; virtual; {:Picks socket PORT number from @link(LocalSin).} function GetLocalSinPort: Integer; virtual; {:Picks socket PORT number from @link(RemoteSin).} function GetRemoteSinPort: Integer; virtual; {:Return @TRUE, if you can read any data from socket or is incoming connection on TCP based socket. Status is tested for time Timeout (in milliseconds). If value in Timeout is 0, status is only tested and continue. If value in Timeout is -1, run is breaked and waiting for read data maybe forever. This function is need only on special cases, when you need use @link(RecvBuffer) function directly! read functioms what have timeout as calling parameter, calling this function internally.} function CanRead(Timeout: Integer): Boolean; virtual; {:Same as @link(CanRead), but additionally return @TRUE if is some data in @link(LineBuffer).} function CanReadEx(Timeout: Integer): Boolean; virtual; {:Return @TRUE, if you can to socket write any data (not full sending buffer). Status is tested for time Timeout (in milliseconds). If value in Timeout is 0, status is only tested and continue. If value in Timeout is -1, run is breaked and waiting for write data maybe forever. This function is need only on special cases!} function CanWrite(Timeout: Integer): Boolean; virtual; {:Same as @link(SendBuffer), but send datagram to address from @link(RemoteSin). Usefull for sending reply to datagram received by function @link(RecvBufferFrom).} function SendBufferTo(Buffer: TMemory; Length: Integer): Integer; virtual; {:Note: This is low-lever receive function. You must be sure if data is waiting for read before call this function for avoid deadlock! Receives first waiting datagram to allocated buffer. If there is no waiting one, then waits until one comes. Returns length of datagram stored in BUFFER. If length exceeds buffer datagram is truncated. After this @link(RemoteSin) structure contains information about sender of UDP packet.} function RecvBufferFrom(Buffer: TMemory; Length: Integer): Integer; virtual; {$IFNDEF CIL} {:This function is for check for incoming data on set of sockets. Whitch sockets is checked is decribed by SocketList Tlist with TBlockSocket objects. TList may have maximal number of objects defined by FD_SETSIZE constant. Return @TRUE, if you can from some socket read any data or is incoming connection on TCP based socket. Status is tested for time Timeout (in milliseconds). If value in Timeout is 0, status is only tested and continue. If value in Timeout is -1, run is breaked and waiting for read data maybe forever. If is returned @TRUE, CanReadList TList is filled by all TBlockSocket objects what waiting for read.} function GroupCanRead(const SocketList: TList; Timeout: Integer; const CanReadList: TList): Boolean; {$ENDIF} {:By this method you may turn address reuse mode for local @link(bind). It is good specially for UDP protocol. Using this with TCP protocol is hazardous!} procedure EnableReuse(Value: Boolean); {:Try set timeout for all sending and receiving operations, if socket provider can do it. (It not supported by all socket providers!)} procedure SetTimeout(Timeout: Integer); {:Try set timeout for all sending operations, if socket provider can do it. (It not supported by all socket providers!)} procedure SetSendTimeout(Timeout: Integer); {:Try set timeout for all receiving operations, if socket provider can do it. (It not supported by all socket providers!)} procedure SetRecvTimeout(Timeout: Integer); {:Return value of socket type.} function GetSocketType: integer; Virtual; {:Return value of protocol type for socket creation.} function GetSocketProtocol: integer; Virtual; {:WSA structure with information about socket provider. On non-windows platforms this structure is simulated!} property WSAData: TWSADATA read GetWsaData; {:FDset structure prepared for usage with this socket.} property FDset: TFDSet read FFDset; {:Structure describing local socket side.} property LocalSin: TVarSin read FLocalSin write FLocalSin; {:Structure describing remote socket side.} property RemoteSin: TVarSin read FRemoteSin write FRemoteSin; {:Socket handler. Suitable for "manual" calls to socket API or manual connection of socket to a previously created socket (i.e by Accept method on TCP socket)} property Socket: TSocket read FSocket write SetSocket; {:Last socket operation error code. Error codes are described in socket documentation. Human readable error description is stored in @link(LastErrorDesc) property.} property LastError: Integer read FLastError; {:Human readable error description of @link(LastError) code.} property LastErrorDesc: string read FLastErrorDesc; {:Buffer used by all high-level receiving functions. This buffer is used for optimized reading of data from socket. In normal cases you not need access to this buffer directly!} property LineBuffer: AnsiString read FBuffer write FBuffer; {:Size of Winsock receive buffer. If it is not supported by socket provider, it return as size one kilobyte.} property SizeRecvBuffer: Integer read GetSizeRecvBuffer write SetSizeRecvBuffer; {:Size of Winsock send buffer. If it is not supported by socket provider, it return as size one kilobyte.} property SizeSendBuffer: Integer read GetSizeSendBuffer write SetSizeSendBuffer; {:If @True, turn class to non-blocking mode. Not all functions are working properly in this mode, you must know exactly what you are doing! However when you have big experience with non-blocking programming, then you can optimise your program by non-block mode!} property NonBlockMode: Boolean read FNonBlockMode Write SetNonBlockMode; {:Set Time-to-live value. (if system supporting it!)} property TTL: Integer read GetTTL Write SetTTL; {:If is @true, then class in in IPv6 mode.} property IP6used: Boolean read FIP6used; {:Return count of received bytes on this socket from begin of current connection.} property RecvCounter: Integer read FRecvCounter; {:Return count of sended bytes on this socket from begin of current connection.} property SendCounter: Integer read FSendCounter; published {:Return descriptive string for given error code. This is class function. You may call it without created object!} class function GetErrorDesc(ErrorCode: Integer): string; {:Return descriptive string for @link(LastError).} function GetErrorDescEx: string; virtual; {:this value is for free use.} property Tag: Integer read FTag write FTag; {:If @true, winsock errors raises exception. Otherwise is setted @link(LastError) value only and you must check it from your program! Default value is @false.} property RaiseExcept: Boolean read FRaiseExcept write FRaiseExcept; {:Define maximum length in bytes of @link(LineBuffer) for high-level receiving functions. If this functions try to read more data then this limit, error is returned! If value is 0 (default), no limitation is used. This is very good protection for stupid attacks to your server by sending lot of data without proper terminator... until all your memory is allocated by LineBuffer! Note: This maximum length is checked only in functions, what read unknown number of bytes! (like @link(RecvString) or @link(RecvTerminated))} property MaxLineLength: Integer read FMaxLineLength Write FMaxLineLength; {:Define maximal bandwidth for all sending operations in bytes per second. If value is 0 (default), bandwidth limitation is not used.} property MaxSendBandwidth: Integer read FMaxSendBandwidth Write FMaxSendBandwidth; {:Define maximal bandwidth for all receiving operations in bytes per second. If value is 0 (default), bandwidth limitation is not used.} property MaxRecvBandwidth: Integer read FMaxRecvBandwidth Write FMaxRecvBandwidth; {:Define maximal bandwidth for all sending and receiving operations in bytes per second. If value is 0 (default), bandwidth limitation is not used.} property MaxBandwidth: Integer Write SetBandwidth; {:Do a conversion of non-standard line terminators to CRLF. (Off by default) If @True, then terminators like sigle CR, single LF or LFCR are converted to CRLF internally. This have effect only in @link(RecvString) method!} property ConvertLineEnd: Boolean read FConvertLineEnd Write FConvertLineEnd; {:Specified Family of this socket. When you are using Windows preliminary support for IPv6, then I recommend to set this property!} property Family: TSocketFamily read FFamily Write SetFamily; {:When resolving of domain name return both IPv4 and IPv6 addresses, then specify if is used IPv4 (dafault - @true) or IPv6.} property PreferIP4: Boolean read FPreferIP4 Write FPreferIP4; {:By default (@true) is all timeouts used as timeout between two packets in reading operations. If you set this to @false, then Timeouts is for overall reading operation!} property InterPacketTimeout: Boolean read FInterPacketTimeout Write FInterPacketTimeout; {:All sended datas was splitted by this value.} property SendMaxChunk: Integer read FSendMaxChunk Write FSendMaxChunk; {:By setting this property to @true you can stop any communication. You can use this property for soft abort of communication.} property StopFlag: Boolean read FStopFlag Write FStopFlag; {:Timeout for data sending by non-blocking socket mode.} property NonblockSendTimeout: Integer read FNonblockSendTimeout Write FNonblockSendTimeout; {:Timeout for @link(Connect) call. Default value 0 means default system timeout. Non-zero value means timeout in millisecond.} property ConnectionTimeout: Integer read FConnectionTimeout write FConnectionTimeout; {:This event is called by various reasons. It is good for monitoring socket, create gauges for data transfers, etc.} property OnStatus: THookSocketStatus read FOnStatus write FOnStatus; {:this event is good for some internal thinks about filtering readed datas. It is used by telnet client by example.} property OnReadFilter: THookDataFilter read FOnReadFilter write FOnReadFilter; {:This event is called after real socket creation for setting special socket options, because you not know when socket is created. (it is depended on Ipv4, IPv6 or automatic mode)} property OnCreateSocket: THookCreateSocket read FOnCreateSocket write FOnCreateSocket; {:This event is good for monitoring content of readed or writed datas.} property OnMonitor: THookMonitor read FOnMonitor write FOnMonitor; {:This event is good for calling your code during long socket operations. (Example, for refresing UI if class in not called within the thread.) Rate of heartbeats can be modified by @link(HeartbeatRate) property.} property OnHeartbeat: THookHeartbeat read FOnHeartbeat write FOnHeartbeat; {:Specify typical rate of @link(OnHeartbeat) event and @link(StopFlag) testing. Default value 0 disabling heartbeats! Value is in milliseconds. Real rate can be higher or smaller then this value, because it depending on real socket operations too! Note: Each heartbeat slowing socket processing.} property HeartbeatRate: integer read FHeartbeatRate Write FHeartbeatRate; {:What class own this socket? Used by protocol implementation classes.} property Owner: TObject read FOwner Write FOwner; end; {:@abstract(Support for SOCKS4 and SOCKS5 proxy) Layer with definition all necessary properties and functions for implementation SOCKS proxy client. Do not use this class directly.} TSocksBlockSocket = class(TBlockSocket) protected FSocksIP: string; FSocksPort: string; FSocksTimeout: integer; FSocksUsername: string; FSocksPassword: string; FUsingSocks: Boolean; FSocksResolver: Boolean; FSocksLastError: integer; FSocksResponseIP: string; FSocksResponsePort: string; FSocksLocalIP: string; FSocksLocalPort: string; FSocksRemoteIP: string; FSocksRemotePort: string; FBypassFlag: Boolean; FSocksType: TSocksType; function SocksCode(IP, Port: string): Ansistring; function SocksDecode(Value: Ansistring): integer; public constructor Create; {:Open connection to SOCKS proxy and if @link(SocksUsername) is set, do authorisation to proxy. This is needed only in special cases! (it is called internally!)} function SocksOpen: Boolean; {:Send specified request to SOCKS proxy. This is needed only in special cases! (it is called internally!)} function SocksRequest(Cmd: Byte; const IP, Port: string): Boolean; {:Receive response to previosly sended request. This is needed only in special cases! (it is called internally!)} function SocksResponse: Boolean; {:Is @True when class is using SOCKS proxy.} property UsingSocks: Boolean read FUsingSocks; {:If SOCKS proxy failed, here is error code returned from SOCKS proxy.} property SocksLastError: integer read FSocksLastError; published {:Address of SOCKS server. If value is empty string, SOCKS support is disabled. Assingning any value to this property enable SOCKS mode. Warning: You cannot combine this mode with HTTP-tunneling mode!} property SocksIP: string read FSocksIP write FSocksIP; {:Port of SOCKS server. Default value is '1080'.} property SocksPort: string read FSocksPort write FSocksPort; {:If you need authorisation on SOCKS server, set username here.} property SocksUsername: string read FSocksUsername write FSocksUsername; {:If you need authorisation on SOCKS server, set password here.} property SocksPassword: string read FSocksPassword write FSocksPassword; {:Specify timeout for communicatin with SOCKS server. Default is one minute.} property SocksTimeout: integer read FSocksTimeout write FSocksTimeout; {:If @True, all symbolic names of target hosts is not translated to IP's locally, but resolving is by SOCKS proxy. Default is @True.} property SocksResolver: Boolean read FSocksResolver write FSocksResolver; {:Specify SOCKS type. By default is used SOCKS5, but you can use SOCKS4 too. When you select SOCKS4, then if @link(SOCKSResolver) is enabled, then is used SOCKS4a. Othervise is used pure SOCKS4.} property SocksType: TSocksType read FSocksType write FSocksType; end; {:@abstract(Implementation of TCP socket.) Supported features: IPv4, IPv6, SSL/TLS or SSH (depending on used plugin), SOCKS5 proxy (outgoing connections and limited incomming), SOCKS4/4a proxy (outgoing connections and limited incomming), TCP through HTTP proxy tunnel.} TTCPBlockSocket = class(TSocksBlockSocket) protected FOnAfterConnect: THookAfterConnect; FSSL: TCustomSSL; FHTTPTunnelIP: string; FHTTPTunnelPort: string; FHTTPTunnel: Boolean; FHTTPTunnelRemoteIP: string; FHTTPTunnelRemotePort: string; FHTTPTunnelUser: string; FHTTPTunnelPass: string; FHTTPTunnelTimeout: integer; procedure SocksDoConnect(IP, Port: string); procedure HTTPTunnelDoConnect(IP, Port: string); procedure DoAfterConnect; public {:Create TCP socket class with default plugin for SSL/TSL/SSH implementation (see @link(SSLImplementation))} constructor Create; {:Create TCP socket class with desired plugin for SSL/TSL/SSH implementation} constructor CreateWithSSL(SSLPlugin: TSSLClass); destructor Destroy; override; {:See @link(TBlockSocket.CloseSocket)} procedure CloseSocket; override; {:See @link(TBlockSocket.WaitingData)} function WaitingData: Integer; override; {:Sets socket to receive mode for new incoming connections. It is necessary to use @link(TBlockSocket.BIND) function call before this method to select receiving port! If you use SOCKS, activate incoming TCP connection by this proxy. (By BIND method of SOCKS.)} procedure Listen; override; {:Waits until new incoming connection comes. After it comes a new socket is automatically created (socket handler is returned by this function as result). If you use SOCKS, new socket is not created! In this case is used same socket as socket for listening! So, you can accept only one connection in SOCKS mode.} function Accept: TSocket; override; {:Connects socket to remote IP address and PORT. The same rules as with @link(TBlockSocket.BIND) method are valid. The only exception is that PORT with 0 value will not be connected. After call to this method a communication channel between local and remote socket is created. Local socket is assigned automatically if not controlled by previous call to @link(TBlockSocket.BIND) method. Structures @link(TBlockSocket.LocalSin) and @link(TBlockSocket.RemoteSin) will be filled with valid values. If you use SOCKS, activate outgoing TCP connection by SOCKS proxy specified in @link(TSocksBlockSocket.SocksIP). (By CONNECT method of SOCKS.) If you use HTTP-tunnel mode, activate outgoing TCP connection by HTTP tunnel specified in @link(HTTPTunnelIP). (By CONNECT method of HTTP protocol.) Note: If you call this on non-created socket, then socket is created automaticly.} procedure Connect(IP, Port: string); override; {:If you need upgrade existing TCP connection to SSL/TLS (or SSH2, if plugin allows it) mode, then call this method. This method switch this class to SSL mode and do SSL/TSL handshake.} procedure SSLDoConnect; {:By this method you can downgrade existing SSL/TLS connection to normal TCP connection.} procedure SSLDoShutdown; {:If you need use this component as SSL/TLS TCP server, then after accepting of inbound connection you need start SSL/TLS session by this method. Before call this function, you must have assigned all neeeded certificates and keys!} function SSLAcceptConnection: Boolean; {:See @link(TBlockSocket.GetLocalSinIP)} function GetLocalSinIP: string; override; {:See @link(TBlockSocket.GetRemoteSinIP)} function GetRemoteSinIP: string; override; {:See @link(TBlockSocket.GetLocalSinPort)} function GetLocalSinPort: Integer; override; {:See @link(TBlockSocket.GetRemoteSinPort)} function GetRemoteSinPort: Integer; override; {:See @link(TBlockSocket.SendBuffer)} function SendBuffer(Buffer: TMemory; Length: Integer): Integer; override; {:See @link(TBlockSocket.RecvBuffer)} function RecvBuffer(Buffer: TMemory; Len: Integer): Integer; override; {:Return value of socket type. For TCP return SOCK_STREAM.} function GetSocketType: integer; override; {:Return value of protocol type for socket creation. For TCP return IPPROTO_TCP.} function GetSocketProtocol: integer; override; {:Class implementing SSL/TLS support. It is allways some descendant of @link(TCustomSSL) class. When programmer not select some SSL plugin class, then is used @link(TSSLNone)} property SSL: TCustomSSL read FSSL; {:@True if is used HTTP tunnel mode.} property HTTPTunnel: Boolean read FHTTPTunnel; published {:Return descriptive string for @link(LastError). On case of error in SSL/TLS subsystem, it returns right error description.} function GetErrorDescEx: string; override; {:Specify IP address of HTTP proxy. Assingning non-empty value to this property enable HTTP-tunnel mode. This mode is for tunnelling any outgoing TCP connection through HTTP proxy server. (If policy on HTTP proxy server allow this!) Warning: You cannot combine this mode with SOCK5 mode!} property HTTPTunnelIP: string read FHTTPTunnelIP Write FHTTPTunnelIP; {:Specify port of HTTP proxy for HTTP-tunneling.} property HTTPTunnelPort: string read FHTTPTunnelPort Write FHTTPTunnelPort; {:Specify authorisation username for access to HTTP proxy in HTTP-tunnel mode. If you not need authorisation, then let this property empty.} property HTTPTunnelUser: string read FHTTPTunnelUser Write FHTTPTunnelUser; {:Specify authorisation password for access to HTTP proxy in HTTP-tunnel mode.} property HTTPTunnelPass: string read FHTTPTunnelPass Write FHTTPTunnelPass; {:Specify timeout for communication with HTTP proxy in HTTPtunnel mode.} property HTTPTunnelTimeout: integer read FHTTPTunnelTimeout Write FHTTPTunnelTimeout; {:This event is called after sucessful TCP socket connection.} property OnAfterConnect: THookAfterConnect read FOnAfterConnect write FOnAfterConnect; end; {:@abstract(Datagram based communication) This class implementing datagram based communication instead default stream based communication style.} TDgramBlockSocket = class(TSocksBlockSocket) public {:Fill @link(TBlockSocket.RemoteSin) structure. This address is used for sending data.} procedure Connect(IP, Port: string); override; {:Silently redirected to @link(TBlockSocket.SendBufferTo).} function SendBuffer(Buffer: TMemory; Length: Integer): Integer; override; {:Silently redirected to @link(TBlockSocket.RecvBufferFrom).} function RecvBuffer(Buffer: TMemory; Length: Integer): Integer; override; end; {:@abstract(Implementation of UDP socket.) NOTE: in this class is all receiving redirected to RecvBufferFrom. You can use for reading any receive function. Preffered is RecvPacket! Similary all sending is redirected to SendbufferTo. You can use for sending UDP packet any sending function, like SendString. Supported features: IPv4, IPv6, unicasts, broadcasts, multicasts, SOCKS5 proxy (only unicasts! Outgoing and incomming.)} TUDPBlockSocket = class(TDgramBlockSocket) protected FSocksControlSock: TTCPBlockSocket; function UdpAssociation: Boolean; procedure SetMulticastTTL(TTL: integer); function GetMulticastTTL:integer; public destructor Destroy; override; {:Enable or disable sending of broadcasts. If seting OK, result is @true. This method is not supported in SOCKS5 mode! IPv6 does not support broadcasts! In this case you must use Multicasts instead.} procedure EnableBroadcast(Value: Boolean); {:See @link(TBlockSocket.SendBufferTo)} function SendBufferTo(Buffer: TMemory; Length: Integer): Integer; override; {:See @link(TBlockSocket.RecvBufferFrom)} function RecvBufferFrom(Buffer: TMemory; Length: Integer): Integer; override; {$IFNDEF CIL} {:Add this socket to given multicast group. You cannot use Multicasts in SOCKS mode!} procedure AddMulticast(MCastIP:string); {:Remove this socket from given multicast group.} procedure DropMulticast(MCastIP:string); {$ENDIF} {:All sended multicast datagrams is loopbacked to your interface too. (you can read your sended datas.) You can disable this feature by this function. This function not working on some Windows systems!} procedure EnableMulticastLoop(Value: Boolean); {:Return value of socket type. For UDP return SOCK_DGRAM.} function GetSocketType: integer; override; {:Return value of protocol type for socket creation. For UDP return IPPROTO_UDP.} function GetSocketProtocol: integer; override; {:Set Time-to-live value for multicasts packets. It define number of routers for transfer of datas. If you set this to 1 (dafault system value), then multicasts packet goes only to you local network. If you need transport multicast packet to worldwide, then increase this value, but be carefull, lot of routers on internet does not transport multicasts packets!} property MulticastTTL: Integer read GetMulticastTTL Write SetMulticastTTL; end; {:@abstract(Implementation of RAW ICMP socket.) For this object you must have rights for creating RAW sockets!} TICMPBlockSocket = class(TDgramBlockSocket) public {:Return value of socket type. For RAW and ICMP return SOCK_RAW.} function GetSocketType: integer; override; {:Return value of protocol type for socket creation. For ICMP returns IPPROTO_ICMP or IPPROTO_ICMPV6} function GetSocketProtocol: integer; override; end; {:@abstract(Implementation of RAW socket.) For this object you must have rights for creating RAW sockets!} TRAWBlockSocket = class(TBlockSocket) public {:Return value of socket type. For RAW and ICMP return SOCK_RAW.} function GetSocketType: integer; override; {:Return value of protocol type for socket creation. For RAW returns IPPROTO_RAW.} function GetSocketProtocol: integer; override; end; {:@abstract(Implementation of PGM-message socket.) Not all systems supports this protocol!} TPGMMessageBlockSocket = class(TBlockSocket) public {:Return value of socket type. For PGM-message return SOCK_RDM.} function GetSocketType: integer; override; {:Return value of protocol type for socket creation. For PGM-message returns IPPROTO_RM.} function GetSocketProtocol: integer; override; end; {:@abstract(Implementation of PGM-stream socket.) Not all systems supports this protocol!} TPGMStreamBlockSocket = class(TBlockSocket) public {:Return value of socket type. For PGM-stream return SOCK_STREAM.} function GetSocketType: integer; override; {:Return value of protocol type for socket creation. For PGM-stream returns IPPROTO_RM.} function GetSocketProtocol: integer; override; end; {:@abstract(Parent class for all SSL plugins.) This is abstract class defining interface for other SSL plugins. Instance of this class will be created for each @link(TTCPBlockSocket). Warning: not all methods and propertis can work in all existing SSL plugins! Please, read documentation of used SSL plugin.} TCustomSSL = class(TObject) private protected FOnVerifyCert: THookVerifyCert; FSocket: TTCPBlockSocket; FSSLEnabled: Boolean; FLastError: integer; FLastErrorDesc: string; FSSLType: TSSLType; FKeyPassword: string; FCiphers: string; FCertificateFile: string; FPrivateKeyFile: string; FCertificate: Ansistring; FPrivateKey: Ansistring; FPFX: Ansistring; FPFXfile: string; FCertCA: Ansistring; FCertCAFile: string; FTrustCertificate: Ansistring; FTrustCertificateFile: string; FVerifyCert: Boolean; FUsername: string; FPassword: string; FSSHChannelType: string; FSSHChannelArg1: string; FSSHChannelArg2: string; FCertComplianceLevel: integer; FSNIHost: string; procedure ReturnError; procedure SetCertCAFile(const Value: string); virtual; function DoVerifyCert:boolean; function CreateSelfSignedCert(Host: string): Boolean; virtual; public {: Create plugin class. it is called internally from @link(TTCPBlockSocket)} constructor Create(const Value: TTCPBlockSocket); virtual; {: Assign settings (certificates and configuration) from another SSL plugin class.} procedure Assign(const Value: TCustomSSL); virtual; {: return description of used plugin. It usually return name and version of used SSL library.} function LibVersion: String; virtual; {: return name of used plugin.} function LibName: String; virtual; {: Do not call this directly. It is used internally by @link(TTCPBlockSocket)! Here is needed code for start SSL connection.} function Connect: boolean; virtual; {: Do not call this directly. It is used internally by @link(TTCPBlockSocket)! Here is needed code for acept new SSL connection.} function Accept: boolean; virtual; {: Do not call this directly. It is used internally by @link(TTCPBlockSocket)! Here is needed code for hard shutdown of SSL connection. (for example, before socket is closed)} function Shutdown: boolean; virtual; {: Do not call this directly. It is used internally by @link(TTCPBlockSocket)! Here is needed code for soft shutdown of SSL connection. (for example, when you need to continue with unprotected connection.)} function BiShutdown: boolean; virtual; {: Do not call this directly. It is used internally by @link(TTCPBlockSocket)! Here is needed code for sending some datas by SSL connection.} function SendBuffer(Buffer: TMemory; Len: Integer): Integer; virtual; {: Do not call this directly. It is used internally by @link(TTCPBlockSocket)! Here is needed code for receiving some datas by SSL connection.} function RecvBuffer(Buffer: TMemory; Len: Integer): Integer; virtual; {: Do not call this directly. It is used internally by @link(TTCPBlockSocket)! Here is needed code for getting count of datas what waiting for read. If SSL plugin not allows this, then it should return 0.} function WaitingData: Integer; virtual; {:Return string with identificator of SSL/TLS version of existing connection.} function GetSSLVersion: string; virtual; {:Return subject of remote SSL peer.} function GetPeerSubject: string; virtual; {:Return Serial number if remote X509 certificate.} function GetPeerSerialNo: integer; virtual; {:Return issuer certificate of remote SSL peer.} function GetPeerIssuer: string; virtual; {:Return peer name from remote side certificate. This is good for verify, if certificate is generated for remote side IP name.} function GetPeerName: string; virtual; {:Returns has of peer name from remote side certificate. This is good for fast remote side authentication.} function GetPeerNameHash: cardinal; virtual; {:Return fingerprint of remote SSL peer.} function GetPeerFingerprint: string; virtual; {:Return all detailed information about certificate from remote side of SSL/TLS connection. Result string can be multilined! Each plugin can return this informations in different format!} function GetCertInfo: string; virtual; {:Return currently used Cipher.} function GetCipherName: string; virtual; {:Return currently used number of bits in current Cipher algorythm.} function GetCipherBits: integer; virtual; {:Return number of bits in current Cipher algorythm.} function GetCipherAlgBits: integer; virtual; {:Return result value of verify remote side certificate. Look to OpenSSL documentation for possible values. For example 0 is successfuly verified certificate, or 18 is self-signed certificate.} function GetVerifyCert: integer; virtual; {: Resurn @true if SSL mode is enabled on existing cvonnection.} property SSLEnabled: Boolean read FSSLEnabled; {:Return error code of last SSL operation. 0 is OK.} property LastError: integer read FLastError; {:Return error description of last SSL operation.} property LastErrorDesc: string read FLastErrorDesc; published {:Here you can specify requested SSL/TLS mode. Default is autodetection, but on some servers autodetection not working properly. In this case you must specify requested SSL/TLS mode by your hand!} property SSLType: TSSLType read FSSLType write FSSLType; {:Password for decrypting of encoded certificate or key.} property KeyPassword: string read FKeyPassword write FKeyPassword; {:Username for possible credentials.} property Username: string read FUsername write FUsername; {:password for possible credentials.} property Password: string read FPassword write FPassword; {:By this property you can modify default set of SSL/TLS ciphers.} property Ciphers: string read FCiphers write FCiphers; {:Used for loading certificate from disk file. See to plugin documentation if this method is supported and how!} property CertificateFile: string read FCertificateFile write FCertificateFile; {:Used for loading private key from disk file. See to plugin documentation if this method is supported and how!} property PrivateKeyFile: string read FPrivateKeyFile write FPrivateKeyFile; {:Used for loading certificate from binary string. See to plugin documentation if this method is supported and how!} property Certificate: Ansistring read FCertificate write FCertificate; {:Used for loading private key from binary string. See to plugin documentation if this method is supported and how!} property PrivateKey: Ansistring read FPrivateKey write FPrivateKey; {:Used for loading PFX from binary string. See to plugin documentation if this method is supported and how!} property PFX: Ansistring read FPFX write FPFX; {:Used for loading PFX from disk file. See to plugin documentation if this method is supported and how!} property PFXfile: string read FPFXfile write FPFXfile; {:Used for loading trusted certificates from disk file. See to plugin documentation if this method is supported and how!} property TrustCertificateFile: string read FTrustCertificateFile write FTrustCertificateFile; {:Used for loading trusted certificates from binary string. See to plugin documentation if this method is supported and how!} property TrustCertificate: Ansistring read FTrustCertificate write FTrustCertificate; {:Used for loading CA certificates from binary string. See to plugin documentation if this method is supported and how!} property CertCA: Ansistring read FCertCA write FCertCA; {:Used for loading CA certificates from disk file. See to plugin documentation if this method is supported and how!} property CertCAFile: string read FCertCAFile write SetCertCAFile; {:If @true, then is verified client certificate. (it is good for writing SSL/TLS servers.) When you are not server, but you are client, then if this property is @true, verify servers certificate.} property VerifyCert: Boolean read FVerifyCert write FVerifyCert; {:channel type for possible SSH connections} property SSHChannelType: string read FSSHChannelType write FSSHChannelType; {:First argument of channel type for possible SSH connections} property SSHChannelArg1: string read FSSHChannelArg1 write FSSHChannelArg1; {:Second argument of channel type for possible SSH connections} property SSHChannelArg2: string read FSSHChannelArg2 write FSSHChannelArg2; {: Level of standards compliance level (CryptLib: values in cryptlib.pas, -1: use default value ) } property CertComplianceLevel:integer read FCertComplianceLevel write FCertComplianceLevel; {:This event is called when verifying the server certificate immediatally after a successfull verification in the ssl library.} property OnVerifyCert: THookVerifyCert read FOnVerifyCert write FOnVerifyCert; {: Server Name Identification. Host name to send to server. If empty the host name found in URL will be used, which should be the normal use (http Header Host = SNI Host). The value is cleared after the connection is established. (SNI support requires OpenSSL 0.9.8k or later. Cryptlib not supported, yet ) } property SNIHost:string read FSNIHost write FSNIHost; end; {:@abstract(Default SSL plugin with no SSL support.) Dummy SSL plugin implementation for applications without SSL/TLS support.} TSSLNone = class (TCustomSSL) public {:See @inherited} function LibVersion: String; override; {:See @inherited} function LibName: String; override; end; {:@abstract(Record with definition of IP packet header.) For reading data from ICMP or RAW sockets.} TIPHeader = record VerLen: Byte; TOS: Byte; TotalLen: Word; Identifer: Word; FragOffsets: Word; TTL: Byte; Protocol: Byte; CheckSum: Word; SourceIp: LongWord; DestIp: LongWord; Options: LongWord; end; {:@abstract(Parent class of application protocol implementations.) By this class is defined common properties.} TSynaClient = Class(TObject) protected FTargetHost: string; FTargetPort: string; FIPInterface: string; FTimeout: integer; FUserName: string; FPassword: string; public constructor Create; published {:Specify terget server IP (or symbolic name). Default is 'localhost'.} property TargetHost: string read FTargetHost Write FTargetHost; {:Specify terget server port (or symbolic name).} property TargetPort: string read FTargetPort Write FTargetPort; {:Defined local socket address. (outgoing IP address). By default is used '0.0.0.0' as wildcard for default IP.} property IPInterface: string read FIPInterface Write FIPInterface; {:Specify default timeout for socket operations.} property Timeout: integer read FTimeout Write FTimeout; {:If protocol need user authorization, then fill here username.} property UserName: string read FUserName Write FUserName; {:If protocol need user authorization, then fill here password.} property Password: string read FPassword Write FPassword; end; var {:Selected SSL plugin. Default is @link(TSSLNone). Do not change this value directly!!! Just add your plugin unit to your project uses instead. Each plugin unit have initialization code what modify this variable.} SSLImplementation: TSSLClass = TSSLNone; implementation {$IFDEF ONCEWINSOCK} var WsaDataOnce: TWSADATA; e: ESynapseError; {$ENDIF} constructor TBlockSocket.Create; begin CreateAlternate(''); end; constructor TBlockSocket.CreateAlternate(Stub: string); {$IFNDEF ONCEWINSOCK} var e: ESynapseError; {$ENDIF} begin inherited Create; FDelayedOptions := TList.Create; FRaiseExcept := False; {$IFDEF RAISEEXCEPT} FRaiseExcept := True; {$ENDIF} FSocket := INVALID_SOCKET; FBuffer := ''; FLastCR := False; FLastLF := False; FBinded := False; FNonBlockMode := False; FMaxLineLength := 0; FMaxSendBandwidth := 0; FNextSend := 0; FMaxRecvBandwidth := 0; FNextRecv := 0; FConvertLineEnd := False; FFamily := SF_Any; FFamilySave := SF_Any; FIP6used := False; FPreferIP4 := True; FInterPacketTimeout := True; FRecvCounter := 0; FSendCounter := 0; FSendMaxChunk := c64k; FStopFlag := False; FNonblockSendTimeout := 15000; FHeartbeatRate := 0; FConnectionTimeout := 0; FOwner := nil; {$IFNDEF ONCEWINSOCK} if Stub = '' then Stub := DLLStackName; if not InitSocketInterface(Stub) then begin e := ESynapseError.Create('Error loading Socket interface (' + Stub + ')!'); e.ErrorCode := 0; e.ErrorMessage := 'Error loading Socket interface (' + Stub + ')!'; raise e; end; SockCheck(synsock.WSAStartup(WinsockLevel, FWsaDataOnce)); ExceptCheck; {$ENDIF} end; destructor TBlockSocket.Destroy; var n: integer; p: TSynaOption; begin CloseSocket; {$IFNDEF ONCEWINSOCK} synsock.WSACleanup; DestroySocketInterface; {$ENDIF} for n := FDelayedOptions.Count - 1 downto 0 do begin p := TSynaOption(FDelayedOptions[n]); p.Free; end; FDelayedOptions.Free; inherited Destroy; end; function TBlockSocket.FamilyToAF(f: TSocketFamily): TAddrFamily; begin case f of SF_ip4: Result := AF_INET; SF_ip6: Result := AF_INET6; else Result := AF_UNSPEC; end; end; procedure TBlockSocket.SetDelayedOption(const Value: TSynaOption); var li: TLinger; x: integer; buf: TMemory; {$IFNDEF MSWINDOWS} timeval: TTimeval; {$ENDIF} begin case value.Option of SOT_Linger: begin {$IFDEF CIL} li := TLinger.Create(Value.Enabled, Value.Value div 1000); synsock.SetSockOptObj(FSocket, integer(SOL_SOCKET), integer(SO_LINGER), li); {$ELSE} li.l_onoff := Ord(Value.Enabled); li.l_linger := Value.Value div 1000; buf := @li; synsock.SetSockOpt(FSocket, integer(SOL_SOCKET), integer(SO_LINGER), buf, SizeOf(li)); {$ENDIF} end; SOT_RecvBuff: begin {$IFDEF CIL} buf := System.BitConverter.GetBytes(value.Value); {$ELSE} buf := @Value.Value; {$ENDIF} synsock.SetSockOpt(FSocket, integer(SOL_SOCKET), integer(SO_RCVBUF), buf, SizeOf(Value.Value)); end; SOT_SendBuff: begin {$IFDEF CIL} buf := System.BitConverter.GetBytes(value.Value); {$ELSE} buf := @Value.Value; {$ENDIF} synsock.SetSockOpt(FSocket, integer(SOL_SOCKET), integer(SO_SNDBUF), buf, SizeOf(Value.Value)); end; SOT_NonBlock: begin FNonBlockMode := Value.Enabled; x := Ord(FNonBlockMode); synsock.IoctlSocket(FSocket, FIONBIO, x); end; SOT_RecvTimeout: begin {$IFDEF CIL} buf := System.BitConverter.GetBytes(value.Value); synsock.SetSockOpt(FSocket, integer(SOL_SOCKET), integer(SO_RCVTIMEO), buf, SizeOf(Value.Value)); {$ELSE} {$IFDEF MSWINDOWS} buf := @Value.Value; synsock.SetSockOpt(FSocket, integer(SOL_SOCKET), integer(SO_RCVTIMEO), buf, SizeOf(Value.Value)); {$ELSE} timeval.tv_sec:=Value.Value div 1000; timeval.tv_usec:=(Value.Value mod 1000) * 1000; synsock.SetSockOpt(FSocket, integer(SOL_SOCKET), integer(SO_RCVTIMEO), @timeval, SizeOf(timeval)); {$ENDIF} {$ENDIF} end; SOT_SendTimeout: begin {$IFDEF CIL} buf := System.BitConverter.GetBytes(value.Value); {$ELSE} {$IFDEF MSWINDOWS} buf := @Value.Value; synsock.SetSockOpt(FSocket, integer(SOL_SOCKET), integer(SO_SNDTIMEO), buf, SizeOf(Value.Value)); {$ELSE} timeval.tv_sec:=Value.Value div 1000; timeval.tv_usec:=(Value.Value mod 1000) * 1000; synsock.SetSockOpt(FSocket, integer(SOL_SOCKET), integer(SO_SNDTIMEO), @timeval, SizeOf(timeval)); {$ENDIF} {$ENDIF} end; SOT_Reuse: begin x := Ord(Value.Enabled); {$IFDEF CIL} buf := System.BitConverter.GetBytes(x); {$ELSE} buf := @x; {$ENDIF} synsock.SetSockOpt(FSocket, integer(SOL_SOCKET), integer(SO_REUSEADDR), buf, SizeOf(x)); end; SOT_TTL: begin {$IFDEF CIL} buf := System.BitConverter.GetBytes(value.Value); {$ELSE} buf := @Value.Value; {$ENDIF} if FIP6Used then synsock.SetSockOpt(FSocket, integer(IPPROTO_IPV6), integer(IPV6_UNICAST_HOPS), buf, SizeOf(Value.Value)) else synsock.SetSockOpt(FSocket, integer(IPPROTO_IP), integer(IP_TTL), buf, SizeOf(Value.Value)); end; SOT_Broadcast: begin //#todo1 broadcasty na IP6 x := Ord(Value.Enabled); {$IFDEF CIL} buf := System.BitConverter.GetBytes(x); {$ELSE} buf := @x; {$ENDIF} synsock.SetSockOpt(FSocket, integer(SOL_SOCKET), integer(SO_BROADCAST), buf, SizeOf(x)); end; SOT_MulticastTTL: begin {$IFDEF CIL} buf := System.BitConverter.GetBytes(value.Value); {$ELSE} buf := @Value.Value; {$ENDIF} if FIP6Used then synsock.SetSockOpt(FSocket, integer(IPPROTO_IPV6), integer(IPV6_MULTICAST_HOPS), buf, SizeOf(Value.Value)) else synsock.SetSockOpt(FSocket, integer(IPPROTO_IP), integer(IP_MULTICAST_TTL), buf, SizeOf(Value.Value)); end; SOT_MulticastLoop: begin x := Ord(Value.Enabled); {$IFDEF CIL} buf := System.BitConverter.GetBytes(x); {$ELSE} buf := @x; {$ENDIF} if FIP6Used then synsock.SetSockOpt(FSocket, integer(IPPROTO_IPV6), integer(IPV6_MULTICAST_LOOP), buf, SizeOf(x)) else synsock.SetSockOpt(FSocket, integer(IPPROTO_IP), integer(IP_MULTICAST_LOOP), buf, SizeOf(x)); end; end; Value.free; end; procedure TBlockSocket.DelayedOption(const Value: TSynaOption); begin if FSocket = INVALID_SOCKET then begin FDelayedOptions.Insert(0, Value); end else SetDelayedOption(Value); end; procedure TBlockSocket.ProcessDelayedOptions; var n: integer; d: TSynaOption; begin for n := FDelayedOptions.Count - 1 downto 0 do begin d := TSynaOption(FDelayedOptions[n]); SetDelayedOption(d); end; FDelayedOptions.Clear; end; procedure TBlockSocket.SetSin(var Sin: TVarSin; IP, Port: string); var f: TSocketFamily; begin DoStatus(HR_ResolvingBegin, IP + ':' + Port); ResetLastError; //if socket exists, then use their type, else use users selection f := SF_Any; if (FSocket = INVALID_SOCKET) and (FFamily = SF_any) then begin if IsIP(IP) then f := SF_IP4 else if IsIP6(IP) then f := SF_IP6; end else f := FFamily; FLastError := synsock.SetVarSin(sin, ip, port, FamilyToAF(f), GetSocketprotocol, GetSocketType, FPreferIP4); DoStatus(HR_ResolvingEnd, GetSinIP(sin) + ':' + IntTostr(GetSinPort(sin))); end; function TBlockSocket.GetSinIP(Sin: TVarSin): string; begin Result := synsock.GetSinIP(sin); end; function TBlockSocket.GetSinPort(Sin: TVarSin): Integer; begin Result := synsock.GetSinPort(sin); end; procedure TBlockSocket.CreateSocket; var sin: TVarSin; begin //dummy for SF_Any Family mode ResetLastError; if (FFamily <> SF_Any) and (FSocket = INVALID_SOCKET) then begin {$IFDEF CIL} if FFamily = SF_IP6 then sin := TVarSin.Create(IPAddress.Parse('::0'), 0) else sin := TVarSin.Create(IPAddress.Parse('0.0.0.0'), 0); {$ELSE} FillChar(Sin, Sizeof(Sin), 0); if FFamily = SF_IP6 then sin.sin_family := AF_INET6 else sin.sin_family := AF_INET; {$ENDIF} InternalCreateSocket(Sin); end; end; procedure TBlockSocket.CreateSocketByName(const Value: String); var sin: TVarSin; begin ResetLastError; if FSocket = INVALID_SOCKET then begin SetSin(sin, value, '0'); if FLastError = 0 then InternalCreateSocket(Sin); end; end; procedure TBlockSocket.InternalCreateSocket(Sin: TVarSin); begin FStopFlag := False; FRecvCounter := 0; FSendCounter := 0; ResetLastError; if FSocket = INVALID_SOCKET then begin FBuffer := ''; FBinded := False; FIP6Used := Sin.AddressFamily = AF_INET6; FSocket := synsock.Socket(integer(Sin.AddressFamily), GetSocketType, GetSocketProtocol); if FSocket = INVALID_SOCKET then FLastError := synsock.WSAGetLastError; {$IFNDEF CIL} FD_ZERO(FFDSet); FD_SET(FSocket, FFDSet); {$ENDIF} ExceptCheck; if FIP6used then DoStatus(HR_SocketCreate, 'IPv6') else DoStatus(HR_SocketCreate, 'IPv4'); ProcessDelayedOptions; DoCreateSocket; end; end; procedure TBlockSocket.CloseSocket; begin AbortSocket; end; procedure TBlockSocket.AbortSocket; var n: integer; p: TSynaOption; begin if FSocket <> INVALID_SOCKET then synsock.CloseSocket(FSocket); FSocket := INVALID_SOCKET; for n := FDelayedOptions.Count - 1 downto 0 do begin p := TSynaOption(FDelayedOptions[n]); p.Free; end; FDelayedOptions.Clear; FFamily := FFamilySave; DoStatus(HR_SocketClose, ''); end; procedure TBlockSocket.Bind(IP, Port: string); var Sin: TVarSin; begin ResetLastError; if (FSocket <> INVALID_SOCKET) or not((FFamily = SF_ANY) and (IP = cAnyHost) and (Port = cAnyPort)) then begin SetSin(Sin, IP, Port); if FLastError = 0 then begin if FSocket = INVALID_SOCKET then InternalCreateSocket(Sin); SockCheck(synsock.Bind(FSocket, Sin)); GetSinLocal; FBuffer := ''; FBinded := True; end; ExceptCheck; DoStatus(HR_Bind, IP + ':' + Port); end; end; procedure TBlockSocket.Connect(IP, Port: string); var Sin: TVarSin; b: boolean; begin SetSin(Sin, IP, Port); if FLastError = 0 then begin if FSocket = INVALID_SOCKET then InternalCreateSocket(Sin); if FConnectionTimeout > 0 then begin // connect in non-blocking mode b := NonBlockMode; NonBlockMode := true; SockCheck(synsock.Connect(FSocket, Sin)); if (FLastError = WSAEINPROGRESS) OR (FLastError = WSAEWOULDBLOCK) then if not CanWrite(FConnectionTimeout) then FLastError := WSAETIMEDOUT; NonBlockMode := b; end else SockCheck(synsock.Connect(FSocket, Sin)); if FLastError = 0 then GetSins; FBuffer := ''; FLastCR := False; FLastLF := False; end; ExceptCheck; DoStatus(HR_Connect, IP + ':' + Port); end; procedure TBlockSocket.Listen; begin SockCheck(synsock.Listen(FSocket, SOMAXCONN)); GetSins; ExceptCheck; DoStatus(HR_Listen, ''); end; function TBlockSocket.Accept: TSocket; begin Result := synsock.Accept(FSocket, FRemoteSin); /// SockCheck(Result); ExceptCheck; DoStatus(HR_Accept, ''); end; procedure TBlockSocket.GetSinLocal; begin synsock.GetSockName(FSocket, FLocalSin); end; procedure TBlockSocket.GetSinRemote; begin synsock.GetPeerName(FSocket, FRemoteSin); end; procedure TBlockSocket.GetSins; begin GetSinLocal; GetSinRemote; end; procedure TBlockSocket.SetBandwidth(Value: Integer); begin MaxSendBandwidth := Value; MaxRecvBandwidth := Value; end; procedure TBlockSocket.LimitBandwidth(Length: Integer; MaxB: integer; var Next: LongWord); var x: LongWord; y: LongWord; n: integer; begin if FStopFlag then exit; if MaxB > 0 then begin y := GetTick; if Next > y then begin x := Next - y; if x > 0 then begin DoStatus(HR_Wait, IntToStr(x)); sleep(x mod 250); for n := 1 to x div 250 do if FStopFlag then Break else sleep(250); end; end; Next := GetTick + Trunc((Length / MaxB) * 1000); end; end; function TBlockSocket.TestStopFlag: Boolean; begin DoHeartbeat; Result := FStopFlag; if Result then begin FStopFlag := False; FLastError := WSAECONNABORTED; ExceptCheck; end; end; function TBlockSocket.SendBuffer(Buffer: TMemory; Length: Integer): Integer; {$IFNDEF CIL} var x, y: integer; l, r: integer; p: Pointer; {$ENDIF} begin Result := 0; if TestStopFlag then Exit; DoMonitor(True, Buffer, Length); {$IFDEF CIL} Result := synsock.Send(FSocket, Buffer, Length, 0); {$ELSE} l := Length; x := 0; while x < l do begin y := l - x; if y > FSendMaxChunk then y := FSendMaxChunk; if y > 0 then begin LimitBandwidth(y, FMaxSendBandwidth, FNextsend); p := IncPoint(Buffer, x); r := synsock.Send(FSocket, p, y, MSG_NOSIGNAL); SockCheck(r); if FLastError = WSAEWOULDBLOCK then begin if CanWrite(FNonblockSendTimeout) then begin r := synsock.Send(FSocket, p, y, MSG_NOSIGNAL); SockCheck(r); end else FLastError := WSAETIMEDOUT; end; if FLastError <> 0 then Break; Inc(x, r); Inc(Result, r); Inc(FSendCounter, r); DoStatus(HR_WriteCount, IntToStr(r)); end else break; end; {$ENDIF} ExceptCheck; end; procedure TBlockSocket.SendByte(Data: Byte); {$IFDEF CIL} var buf: TMemory; {$ENDIF} begin {$IFDEF CIL} setlength(buf, 1); buf[0] := Data; SendBuffer(buf, 1); {$ELSE} SendBuffer(@Data, 1); {$ENDIF} end; procedure TBlockSocket.SendString(Data: AnsiString); var buf: TMemory; begin {$IFDEF CIL} buf := BytesOf(Data); {$ELSE} buf := Pointer(data); {$ENDIF} SendBuffer(buf, Length(Data)); end; procedure TBlockSocket.SendInteger(Data: integer); var buf: TMemory; begin {$IFDEF CIL} buf := System.BitConverter.GetBytes(Data); {$ELSE} buf := @Data; {$ENDIF} SendBuffer(buf, SizeOf(Data)); end; procedure TBlockSocket.SendBlock(const Data: AnsiString); var i: integer; begin i := SwapBytes(Length(data)); SendString(Codelongint(i) + Data); end; procedure TBlockSocket.InternalSendStream(const Stream: TStream; WithSize, Indy: boolean); var l: integer; yr: integer; s: AnsiString; b: boolean; {$IFDEF CIL} buf: TMemory; {$ENDIF} begin b := true; l := 0; if WithSize then begin l := Stream.Size - Stream.Position;; if not Indy then l := synsock.HToNL(l); end; repeat {$IFDEF CIL} Setlength(buf, FSendMaxChunk); yr := Stream.read(buf, FSendMaxChunk); if yr > 0 then begin if WithSize and b then begin b := false; SendString(CodeLongInt(l)); end; SendBuffer(buf, yr); if FLastError <> 0 then break; end {$ELSE} Setlength(s, FSendMaxChunk); yr := Stream.read(Pointer(s)^, FSendMaxChunk); if yr > 0 then begin SetLength(s, yr); if WithSize and b then begin b := false; SendString(CodeLongInt(l) + s); end else SendString(s); if FLastError <> 0 then break; end {$ENDIF} until yr <= 0; end; procedure TBlockSocket.SendStreamRaw(const Stream: TStream); begin InternalSendStream(Stream, false, false); end; procedure TBlockSocket.SendStreamIndy(const Stream: TStream); begin InternalSendStream(Stream, true, true); end; procedure TBlockSocket.SendStream(const Stream: TStream); begin InternalSendStream(Stream, true, false); end; function TBlockSocket.RecvBuffer(Buffer: TMemory; Length: Integer): Integer; begin Result := 0; if TestStopFlag then Exit; LimitBandwidth(Length, FMaxRecvBandwidth, FNextRecv); // Result := synsock.Recv(FSocket, Buffer^, Length, MSG_NOSIGNAL); Result := synsock.Recv(FSocket, Buffer, Length, MSG_NOSIGNAL); if Result = 0 then FLastError := WSAECONNRESET else SockCheck(Result); ExceptCheck; if Result > 0 then begin Inc(FRecvCounter, Result); DoStatus(HR_ReadCount, IntToStr(Result)); DoMonitor(False, Buffer, Result); DoReadFilter(Buffer, Result); end; end; function TBlockSocket.RecvBufferEx(Buffer: TMemory; Len: Integer; Timeout: Integer): Integer; var s: AnsiString; rl, l: integer; ti: LongWord; {$IFDEF CIL} n: integer; b: TMemory; {$ENDIF} begin ResetLastError; Result := 0; if Len > 0 then begin rl := 0; repeat ti := GetTick; s := RecvPacket(Timeout); l := Length(s); if (rl + l) > Len then l := Len - rl; {$IFDEF CIL} b := BytesOf(s); for n := 0 to l do Buffer[rl + n] := b[n]; {$ELSE} Move(Pointer(s)^, IncPoint(Buffer, rl)^, l); {$ENDIF} rl := rl + l; if FLastError <> 0 then Break; if rl >= Len then Break; if not FInterPacketTimeout then begin Timeout := Timeout - integer(TickDelta(ti, GetTick)); if Timeout <= 0 then begin FLastError := WSAETIMEDOUT; Break; end; end; until False; delete(s, 1, l); FBuffer := s; Result := rl; end; end; function TBlockSocket.RecvBufferStr(Len: Integer; Timeout: Integer): AnsiString; var x: integer; {$IFDEF CIL} buf: Tmemory; {$ENDIF} begin Result := ''; if Len > 0 then begin {$IFDEF CIL} Setlength(Buf, Len); x := RecvBufferEx(buf, Len , Timeout); if FLastError = 0 then begin SetLength(Buf, x); Result := StringOf(buf); end else Result := ''; {$ELSE} Setlength(Result, Len); x := RecvBufferEx(Pointer(Result), Len , Timeout); if FLastError = 0 then SetLength(Result, x) else Result := ''; {$ENDIF} end; end; function TBlockSocket.RecvPacket(Timeout: Integer): AnsiString; var x: integer; {$IFDEF CIL} buf: TMemory; {$ENDIF} begin Result := ''; ResetLastError; if FBuffer <> '' then begin Result := FBuffer; FBuffer := ''; end else begin {$IFDEF MSWINDOWS} //not drain CPU on large downloads... Sleep(0); {$ENDIF} x := WaitingData; if x > 0 then begin {$IFDEF CIL} SetLength(Buf, x); x := RecvBuffer(Buf, x); if x >= 0 then begin SetLength(Buf, x); Result := StringOf(Buf); end; {$ELSE} SetLength(Result, x); x := RecvBuffer(Pointer(Result), x); if x >= 0 then SetLength(Result, x); {$ENDIF} end else begin if CanRead(Timeout) then begin x := WaitingData; if x = 0 then FLastError := WSAECONNRESET; if x > 0 then begin {$IFDEF CIL} SetLength(Buf, x); x := RecvBuffer(Buf, x); if x >= 0 then begin SetLength(Buf, x); result := StringOf(Buf); end; {$ELSE} SetLength(Result, x); x := RecvBuffer(Pointer(Result), x); if x >= 0 then SetLength(Result, x); {$ENDIF} end; end else FLastError := WSAETIMEDOUT; end; end; if FConvertLineEnd and (Result <> '') then begin if FLastCR and (Result[1] = LF) then Delete(Result, 1, 1); if FLastLF and (Result[1] = CR) then Delete(Result, 1, 1); FLastCR := False; FLastLF := False; end; ExceptCheck; end; function TBlockSocket.RecvByte(Timeout: Integer): Byte; begin Result := 0; ResetLastError; if FBuffer = '' then FBuffer := RecvPacket(Timeout); if (FLastError = 0) and (FBuffer <> '') then begin Result := Ord(FBuffer[1]); Delete(FBuffer, 1, 1); end; ExceptCheck; end; function TBlockSocket.RecvInteger(Timeout: Integer): Integer; var s: AnsiString; begin Result := 0; s := RecvBufferStr(4, Timeout); if FLastError = 0 then Result := (ord(s[1]) + ord(s[2]) * 256) + (ord(s[3]) + ord(s[4]) * 256) * 65536; end; function TBlockSocket.RecvTerminated(Timeout: Integer; const Terminator: AnsiString): AnsiString; var x: Integer; s: AnsiString; l: Integer; CorCRLF: Boolean; t: AnsiString; tl: integer; ti: LongWord; begin ResetLastError; Result := ''; l := Length(Terminator); if l = 0 then Exit; tl := l; CorCRLF := FConvertLineEnd and (Terminator = CRLF); s := ''; x := 0; repeat //get rest of FBuffer or incomming new data... ti := GetTick; s := s + RecvPacket(Timeout); if FLastError <> 0 then Break; x := 0; if Length(s) > 0 then if CorCRLF then begin t := ''; x := PosCRLF(s, t); tl := Length(t); if t = CR then FLastCR := True; if t = LF then FLastLF := True; end else begin x := pos(Terminator, s); tl := l; end; if (FMaxLineLength <> 0) and (Length(s) > FMaxLineLength) then begin FLastError := WSAENOBUFS; Break; end; if x > 0 then Break; if not FInterPacketTimeout then begin Timeout := Timeout - integer(TickDelta(ti, GetTick)); if Timeout <= 0 then begin FLastError := WSAETIMEDOUT; Break; end; end; until False; if x > 0 then begin Result := Copy(s, 1, x - 1); Delete(s, 1, x + tl - 1); end; FBuffer := s; ExceptCheck; end; function TBlockSocket.RecvString(Timeout: Integer): AnsiString; var s: AnsiString; begin Result := ''; s := RecvTerminated(Timeout, CRLF); if FLastError = 0 then Result := s; end; function TBlockSocket.RecvBlock(Timeout: Integer): AnsiString; var x: integer; begin Result := ''; x := RecvInteger(Timeout); if FLastError = 0 then Result := RecvBufferStr(x, Timeout); end; procedure TBlockSocket.RecvStreamRaw(const Stream: TStream; Timeout: Integer); var s: AnsiString; begin repeat s := RecvPacket(Timeout); if FLastError = 0 then WriteStrToStream(Stream, s); until FLastError <> 0; end; procedure TBlockSocket.RecvStreamSize(const Stream: TStream; Timeout: Integer; Size: Integer); var s: AnsiString; n: integer; {$IFDEF CIL} buf: TMemory; {$ENDIF} begin for n := 1 to (Size div FSendMaxChunk) do begin {$IFDEF CIL} SetLength(buf, FSendMaxChunk); RecvBufferEx(buf, FSendMaxChunk, Timeout); if FLastError <> 0 then Exit; Stream.Write(buf, FSendMaxChunk); {$ELSE} s := RecvBufferStr(FSendMaxChunk, Timeout); if FLastError <> 0 then Exit; WriteStrToStream(Stream, s); {$ENDIF} end; n := Size mod FSendMaxChunk; if n > 0 then begin {$IFDEF CIL} SetLength(buf, n); RecvBufferEx(buf, n, Timeout); if FLastError <> 0 then Exit; Stream.Write(buf, n); {$ELSE} s := RecvBufferStr(n, Timeout); if FLastError <> 0 then Exit; WriteStrToStream(Stream, s); {$ENDIF} end; end; procedure TBlockSocket.RecvStreamIndy(const Stream: TStream; Timeout: Integer); var x: integer; begin x := RecvInteger(Timeout); x := synsock.NToHL(x); if FLastError = 0 then RecvStreamSize(Stream, Timeout, x); end; procedure TBlockSocket.RecvStream(const Stream: TStream; Timeout: Integer); var x: integer; begin x := RecvInteger(Timeout); if FLastError = 0 then RecvStreamSize(Stream, Timeout, x); end; function TBlockSocket.PeekBuffer(Buffer: TMemory; Length: Integer): Integer; begin {$IFNDEF CIL} // Result := synsock.Recv(FSocket, Buffer^, Length, MSG_PEEK + MSG_NOSIGNAL); Result := synsock.Recv(FSocket, Buffer, Length, MSG_PEEK + MSG_NOSIGNAL); SockCheck(Result); ExceptCheck; {$ENDIF} end; function TBlockSocket.PeekByte(Timeout: Integer): Byte; var s: string; begin {$IFNDEF CIL} Result := 0; if CanRead(Timeout) then begin SetLength(s, 1); PeekBuffer(Pointer(s), 1); if s <> '' then Result := Ord(s[1]); end else FLastError := WSAETIMEDOUT; ExceptCheck; {$ENDIF} end; procedure TBlockSocket.ResetLastError; begin FLastError := 0; FLastErrorDesc := ''; end; function TBlockSocket.SockCheck(SockResult: Integer): Integer; begin ResetLastError; if SockResult = integer(SOCKET_ERROR) then begin FLastError := synsock.WSAGetLastError; FLastErrorDesc := GetErrorDescEx; end; Result := FLastError; end; procedure TBlockSocket.ExceptCheck; var e: ESynapseError; begin FLastErrorDesc := GetErrorDescEx; if (LastError <> 0) and (LastError <> WSAEINPROGRESS) and (LastError <> WSAEWOULDBLOCK) then begin DoStatus(HR_Error, IntToStr(FLastError) + ',' + FLastErrorDesc); if FRaiseExcept then begin e := ESynapseError.Create(Format('Synapse TCP/IP Socket error %d: %s', [FLastError, FLastErrorDesc])); e.ErrorCode := FLastError; e.ErrorMessage := FLastErrorDesc; raise e; end; end; end; function TBlockSocket.WaitingData: Integer; var x: Integer; begin Result := 0; if synsock.IoctlSocket(FSocket, FIONREAD, x) = 0 then Result := x; if Result > c64k then Result := c64k; end; function TBlockSocket.WaitingDataEx: Integer; begin if FBuffer <> '' then Result := Length(FBuffer) else Result := WaitingData; end; procedure TBlockSocket.Purge; begin Sleep(1); try while (Length(FBuffer) > 0) or (WaitingData > 0) do begin RecvPacket(0); if FLastError <> 0 then break; end; except on exception do; end; ResetLastError; end; procedure TBlockSocket.SetLinger(Enable: Boolean; Linger: Integer); var d: TSynaOption; begin d := TSynaOption.Create; d.Option := SOT_Linger; d.Enabled := Enable; d.Value := Linger; DelayedOption(d); end; function TBlockSocket.LocalName: string; begin Result := synsock.GetHostName; if Result = '' then Result := '127.0.0.1'; end; procedure TBlockSocket.ResolveNameToIP(Name: string; const IPList: TStrings); begin IPList.Clear; synsock.ResolveNameToIP(Name, FamilyToAF(FFamily), GetSocketprotocol, GetSocketType, IPList); if IPList.Count = 0 then IPList.Add(cAnyHost); end; function TBlockSocket.ResolveName(Name: string): string; var l: TStringList; begin l := TStringList.Create; try ResolveNameToIP(Name, l); Result := l[0]; finally l.Free; end; end; function TBlockSocket.ResolvePort(Port: string): Word; begin Result := synsock.ResolvePort(Port, FamilyToAF(FFamily), GetSocketProtocol, GetSocketType); end; function TBlockSocket.ResolveIPToName(IP: string): string; begin if not IsIP(IP) and not IsIp6(IP) then IP := ResolveName(IP); Result := synsock.ResolveIPToName(IP, FamilyToAF(FFamily), GetSocketProtocol, GetSocketType); end; procedure TBlockSocket.SetRemoteSin(IP, Port: string); begin SetSin(FRemoteSin, IP, Port); end; function TBlockSocket.GetLocalSinIP: string; begin Result := GetSinIP(FLocalSin); end; function TBlockSocket.GetRemoteSinIP: string; begin Result := GetSinIP(FRemoteSin); end; function TBlockSocket.GetLocalSinPort: Integer; begin Result := GetSinPort(FLocalSin); end; function TBlockSocket.GetRemoteSinPort: Integer; begin Result := GetSinPort(FRemoteSin); end; function TBlockSocket.InternalCanRead(Timeout: Integer): Boolean; {$IFDEF CIL} begin Result := FSocket.Poll(Timeout * 1000, SelectMode.SelectRead); {$ELSE} var TimeVal: PTimeVal; TimeV: TTimeVal; x: Integer; FDSet: TFDSet; begin TimeV.tv_usec := (Timeout mod 1000) * 1000; TimeV.tv_sec := Timeout div 1000; TimeVal := @TimeV; if Timeout = -1 then TimeVal := nil; FDSet := FFdSet; x := synsock.Select(FSocket + 1, @FDSet, nil, nil, TimeVal); SockCheck(x); if FLastError <> 0 then x := 0; Result := x > 0; {$ENDIF} end; function TBlockSocket.CanRead(Timeout: Integer): Boolean; var ti, tr: Integer; n: integer; begin if (FHeartbeatRate <> 0) and (Timeout <> -1) then begin ti := Timeout div FHeartbeatRate; tr := Timeout mod FHeartbeatRate; end else begin ti := 0; tr := Timeout; end; Result := InternalCanRead(tr); if not Result then for n := 0 to ti do begin DoHeartbeat; if FStopFlag then begin Result := False; FStopFlag := False; Break; end; Result := InternalCanRead(FHeartbeatRate); if Result then break; end; ExceptCheck; if Result then DoStatus(HR_CanRead, ''); end; function TBlockSocket.CanWrite(Timeout: Integer): Boolean; {$IFDEF CIL} begin Result := FSocket.Poll(Timeout * 1000, SelectMode.SelectWrite); {$ELSE} var TimeVal: PTimeVal; TimeV: TTimeVal; x: Integer; FDSet: TFDSet; begin TimeV.tv_usec := (Timeout mod 1000) * 1000; TimeV.tv_sec := Timeout div 1000; TimeVal := @TimeV; if Timeout = -1 then TimeVal := nil; FDSet := FFdSet; x := synsock.Select(FSocket + 1, nil, @FDSet, nil, TimeVal); SockCheck(x); if FLastError <> 0 then x := 0; Result := x > 0; {$ENDIF} ExceptCheck; if Result then DoStatus(HR_CanWrite, ''); end; function TBlockSocket.CanReadEx(Timeout: Integer): Boolean; begin if FBuffer <> '' then Result := True else Result := CanRead(Timeout); end; function TBlockSocket.SendBufferTo(Buffer: TMemory; Length: Integer): Integer; begin Result := 0; if TestStopFlag then Exit; DoMonitor(True, Buffer, Length); LimitBandwidth(Length, FMaxSendBandwidth, FNextsend); Result := synsock.SendTo(FSocket, Buffer, Length, MSG_NOSIGNAL, FRemoteSin); SockCheck(Result); ExceptCheck; Inc(FSendCounter, Result); DoStatus(HR_WriteCount, IntToStr(Result)); end; function TBlockSocket.RecvBufferFrom(Buffer: TMemory; Length: Integer): Integer; begin Result := 0; if TestStopFlag then Exit; LimitBandwidth(Length, FMaxRecvBandwidth, FNextRecv); Result := synsock.RecvFrom(FSocket, Buffer, Length, MSG_NOSIGNAL, FRemoteSin); SockCheck(Result); ExceptCheck; Inc(FRecvCounter, Result); DoStatus(HR_ReadCount, IntToStr(Result)); DoMonitor(False, Buffer, Result); end; function TBlockSocket.GetSizeRecvBuffer: Integer; var l: Integer; {$IFDEF CIL} buf: TMemory; {$ENDIF} begin {$IFDEF CIL} setlength(buf, 4); SockCheck(synsock.GetSockOpt(FSocket, integer(SOL_SOCKET), integer(SO_RCVBUF), buf, l)); Result := System.BitConverter.ToInt32(buf,0); {$ELSE} l := SizeOf(Result); SockCheck(synsock.GetSockOpt(FSocket, SOL_SOCKET, SO_RCVBUF, @Result, l)); if FLastError <> 0 then Result := 1024; ExceptCheck; {$ENDIF} end; procedure TBlockSocket.SetSizeRecvBuffer(Size: Integer); var d: TSynaOption; begin d := TSynaOption.Create; d.Option := SOT_RecvBuff; d.Value := Size; DelayedOption(d); end; function TBlockSocket.GetSizeSendBuffer: Integer; var l: Integer; {$IFDEF CIL} buf: TMemory; {$ENDIF} begin {$IFDEF CIL} setlength(buf, 4); SockCheck(synsock.GetSockOpt(FSocket, integer(SOL_SOCKET), integer(SO_SNDBUF), buf, l)); Result := System.BitConverter.ToInt32(buf,0); {$ELSE} l := SizeOf(Result); SockCheck(synsock.GetSockOpt(FSocket, SOL_SOCKET, SO_SNDBUF, @Result, l)); if FLastError <> 0 then Result := 1024; ExceptCheck; {$ENDIF} end; procedure TBlockSocket.SetSizeSendBuffer(Size: Integer); var d: TSynaOption; begin d := TSynaOption.Create; d.Option := SOT_SendBuff; d.Value := Size; DelayedOption(d); end; procedure TBlockSocket.SetNonBlockMode(Value: Boolean); var d: TSynaOption; begin d := TSynaOption.Create; d.Option := SOT_nonblock; d.Enabled := Value; DelayedOption(d); end; procedure TBlockSocket.SetTimeout(Timeout: Integer); begin SetSendTimeout(Timeout); SetRecvTimeout(Timeout); end; procedure TBlockSocket.SetSendTimeout(Timeout: Integer); var d: TSynaOption; begin d := TSynaOption.Create; d.Option := SOT_sendtimeout; d.Value := Timeout; DelayedOption(d); end; procedure TBlockSocket.SetRecvTimeout(Timeout: Integer); var d: TSynaOption; begin d := TSynaOption.Create; d.Option := SOT_recvtimeout; d.Value := Timeout; DelayedOption(d); end; {$IFNDEF CIL} function TBlockSocket.GroupCanRead(const SocketList: TList; Timeout: Integer; const CanReadList: TList): boolean; var FDSet: TFDSet; TimeVal: PTimeVal; TimeV: TTimeVal; x, n: Integer; Max: Integer; begin TimeV.tv_usec := (Timeout mod 1000) * 1000; TimeV.tv_sec := Timeout div 1000; TimeVal := @TimeV; if Timeout = -1 then TimeVal := nil; FD_ZERO(FDSet); Max := 0; for n := 0 to SocketList.Count - 1 do if TObject(SocketList.Items[n]) is TBlockSocket then begin if TBlockSocket(SocketList.Items[n]).Socket > Max then Max := TBlockSocket(SocketList.Items[n]).Socket; FD_SET(TBlockSocket(SocketList.Items[n]).Socket, FDSet); end; x := synsock.Select(Max + 1, @FDSet, nil, nil, TimeVal); SockCheck(x); ExceptCheck; if FLastError <> 0 then x := 0; Result := x > 0; CanReadList.Clear; if Result then for n := 0 to SocketList.Count - 1 do if TObject(SocketList.Items[n]) is TBlockSocket then if FD_ISSET(TBlockSocket(SocketList.Items[n]).Socket, FDSet) then CanReadList.Add(TBlockSocket(SocketList.Items[n])); end; {$ENDIF} procedure TBlockSocket.EnableReuse(Value: Boolean); var d: TSynaOption; begin d := TSynaOption.Create; d.Option := SOT_reuse; d.Enabled := Value; DelayedOption(d); end; procedure TBlockSocket.SetTTL(TTL: integer); var d: TSynaOption; begin d := TSynaOption.Create; d.Option := SOT_TTL; d.Value := TTL; DelayedOption(d); end; function TBlockSocket.GetTTL:integer; var l: Integer; begin {$IFNDEF CIL} l := SizeOf(Result); if FIP6Used then synsock.GetSockOpt(FSocket, IPPROTO_IPV6, IPV6_UNICAST_HOPS, @Result, l) else synsock.GetSockOpt(FSocket, IPPROTO_IP, IP_TTL, @Result, l); {$ENDIF} end; procedure TBlockSocket.SetFamily(Value: TSocketFamily); begin FFamily := Value; FFamilySave := Value; end; procedure TBlockSocket.SetSocket(Value: TSocket); begin FRecvCounter := 0; FSendCounter := 0; FSocket := Value; {$IFNDEF CIL} FD_ZERO(FFDSet); FD_SET(FSocket, FFDSet); {$ENDIF} GetSins; FIP6Used := FRemoteSin.AddressFamily = AF_INET6; end; function TBlockSocket.GetWsaData: TWSAData; begin {$IFDEF ONCEWINSOCK} Result := WsaDataOnce; {$ELSE} Result := FWsaDataOnce; {$ENDIF} end; function TBlockSocket.GetSocketType: integer; begin Result := 0; end; function TBlockSocket.GetSocketProtocol: integer; begin Result := integer(IPPROTO_IP); end; procedure TBlockSocket.DoStatus(Reason: THookSocketReason; const Value: string); begin if assigned(OnStatus) then OnStatus(Self, Reason, Value); end; procedure TBlockSocket.DoReadFilter(Buffer: TMemory; var Len: Integer); var s: AnsiString; begin if assigned(OnReadFilter) then if Len > 0 then begin {$IFDEF CIL} s := StringOf(Buffer); {$ELSE} SetLength(s, Len); Move(Buffer^, Pointer(s)^, Len); {$ENDIF} OnReadFilter(Self, s); if Length(s) > Len then SetLength(s, Len); Len := Length(s); {$IFDEF CIL} Buffer := BytesOf(s); {$ELSE} Move(Pointer(s)^, Buffer^, Len); {$ENDIF} end; end; procedure TBlockSocket.DoCreateSocket; begin if assigned(OnCreateSocket) then OnCreateSocket(Self); end; procedure TBlockSocket.DoMonitor(Writing: Boolean; const Buffer: TMemory; Len: Integer); begin if assigned(OnMonitor) then begin OnMonitor(Self, Writing, Buffer, Len); end; end; procedure TBlockSocket.DoHeartbeat; begin if assigned(OnHeartbeat) and (FHeartbeatRate <> 0) then begin OnHeartbeat(Self); end; end; function TBlockSocket.GetErrorDescEx: string; begin Result := GetErrorDesc(FLastError); end; class function TBlockSocket.GetErrorDesc(ErrorCode: Integer): string; begin {$IFDEF CIL} if ErrorCode = 0 then Result := '' else begin Result := WSAGetLastErrorDesc; if Result = '' then Result := 'Other Winsock error (' + IntToStr(ErrorCode) + ')'; end; {$ELSE} case ErrorCode of 0: Result := ''; WSAEINTR: {10004} Result := 'Interrupted system call'; WSAEBADF: {10009} Result := 'Bad file number'; WSAEACCES: {10013} Result := 'Permission denied'; WSAEFAULT: {10014} Result := 'Bad address'; WSAEINVAL: {10022} Result := 'Invalid argument'; WSAEMFILE: {10024} Result := 'Too many open files'; WSAEWOULDBLOCK: {10035} Result := 'Operation would block'; WSAEINPROGRESS: {10036} Result := 'Operation now in progress'; WSAEALREADY: {10037} Result := 'Operation already in progress'; WSAENOTSOCK: {10038} Result := 'Socket operation on nonsocket'; WSAEDESTADDRREQ: {10039} Result := 'Destination address required'; WSAEMSGSIZE: {10040} Result := 'Message too long'; WSAEPROTOTYPE: {10041} Result := 'Protocol wrong type for Socket'; WSAENOPROTOOPT: {10042} Result := 'Protocol not available'; WSAEPROTONOSUPPORT: {10043} Result := 'Protocol not supported'; WSAESOCKTNOSUPPORT: {10044} Result := 'Socket not supported'; WSAEOPNOTSUPP: {10045} Result := 'Operation not supported on Socket'; WSAEPFNOSUPPORT: {10046} Result := 'Protocol family not supported'; WSAEAFNOSUPPORT: {10047} Result := 'Address family not supported'; WSAEADDRINUSE: {10048} Result := 'Address already in use'; WSAEADDRNOTAVAIL: {10049} Result := 'Can''t assign requested address'; WSAENETDOWN: {10050} Result := 'Network is down'; WSAENETUNREACH: {10051} Result := 'Network is unreachable'; WSAENETRESET: {10052} Result := 'Network dropped connection on reset'; WSAECONNABORTED: {10053} Result := 'Software caused connection abort'; WSAECONNRESET: {10054} Result := 'Connection reset by peer'; WSAENOBUFS: {10055} Result := 'No Buffer space available'; WSAEISCONN: {10056} Result := 'Socket is already connected'; WSAENOTCONN: {10057} Result := 'Socket is not connected'; WSAESHUTDOWN: {10058} Result := 'Can''t send after Socket shutdown'; WSAETOOMANYREFS: {10059} Result := 'Too many references:can''t splice'; WSAETIMEDOUT: {10060} Result := 'Connection timed out'; WSAECONNREFUSED: {10061} Result := 'Connection refused'; WSAELOOP: {10062} Result := 'Too many levels of symbolic links'; WSAENAMETOOLONG: {10063} Result := 'File name is too long'; WSAEHOSTDOWN: {10064} Result := 'Host is down'; WSAEHOSTUNREACH: {10065} Result := 'No route to host'; WSAENOTEMPTY: {10066} Result := 'Directory is not empty'; WSAEPROCLIM: {10067} Result := 'Too many processes'; WSAEUSERS: {10068} Result := 'Too many users'; WSAEDQUOT: {10069} Result := 'Disk quota exceeded'; WSAESTALE: {10070} Result := 'Stale NFS file handle'; WSAEREMOTE: {10071} Result := 'Too many levels of remote in path'; WSASYSNOTREADY: {10091} Result := 'Network subsystem is unusable'; WSAVERNOTSUPPORTED: {10092} Result := 'Winsock DLL cannot support this application'; WSANOTINITIALISED: {10093} Result := 'Winsock not initialized'; WSAEDISCON: {10101} Result := 'Disconnect'; WSAHOST_NOT_FOUND: {11001} Result := 'Host not found'; WSATRY_AGAIN: {11002} Result := 'Non authoritative - host not found'; WSANO_RECOVERY: {11003} Result := 'Non recoverable error'; WSANO_DATA: {11004} Result := 'Valid name, no data record of requested type' else Result := 'Other Winsock error (' + IntToStr(ErrorCode) + ')'; end; {$ENDIF} end; {======================================================================} constructor TSocksBlockSocket.Create; begin inherited Create; FSocksIP:= ''; FSocksPort:= '1080'; FSocksTimeout:= 60000; FSocksUsername:= ''; FSocksPassword:= ''; FUsingSocks := False; FSocksResolver := True; FSocksLastError := 0; FSocksResponseIP := ''; FSocksResponsePort := ''; FSocksLocalIP := ''; FSocksLocalPort := ''; FSocksRemoteIP := ''; FSocksRemotePort := ''; FBypassFlag := False; FSocksType := ST_Socks5; end; function TSocksBlockSocket.SocksOpen: boolean; var Buf: AnsiString; n: integer; begin Result := False; FUsingSocks := False; if FSocksType <> ST_Socks5 then begin FUsingSocks := True; Result := True; end else begin FBypassFlag := True; try if FSocksUsername = '' then Buf := #5 + #1 + #0 else Buf := #5 + #2 + #2 +#0; SendString(Buf); Buf := RecvBufferStr(2, FSocksTimeout); if Length(Buf) < 2 then Exit; if Buf[1] <> #5 then Exit; n := Ord(Buf[2]); case n of 0: //not need authorisation ; 2: begin Buf := #1 + AnsiChar(Length(FSocksUsername)) + FSocksUsername + AnsiChar(Length(FSocksPassword)) + FSocksPassword; SendString(Buf); Buf := RecvBufferStr(2, FSocksTimeout); if Length(Buf) < 2 then Exit; if Buf[2] <> #0 then Exit; end; else //other authorisation is not supported! Exit; end; FUsingSocks := True; Result := True; finally FBypassFlag := False; end; end; end; function TSocksBlockSocket.SocksRequest(Cmd: Byte; const IP, Port: string): Boolean; var Buf: AnsiString; begin FBypassFlag := True; try if FSocksType <> ST_Socks5 then Buf := #4 + AnsiChar(Cmd) + SocksCode(IP, Port) else Buf := #5 + AnsiChar(Cmd) + #0 + SocksCode(IP, Port); SendString(Buf); Result := FLastError = 0; finally FBypassFlag := False; end; end; function TSocksBlockSocket.SocksResponse: Boolean; var Buf, s: AnsiString; x: integer; begin Result := False; FBypassFlag := True; try FSocksResponseIP := ''; FSocksResponsePort := ''; FSocksLastError := -1; if FSocksType <> ST_Socks5 then begin Buf := RecvBufferStr(8, FSocksTimeout); if FLastError <> 0 then Exit; if Buf[1] <> #0 then Exit; FSocksLastError := Ord(Buf[2]); end else begin Buf := RecvBufferStr(4, FSocksTimeout); if FLastError <> 0 then Exit; if Buf[1] <> #5 then Exit; case Ord(Buf[4]) of 1: s := RecvBufferStr(4, FSocksTimeout); 3: begin x := RecvByte(FSocksTimeout); if FLastError <> 0 then Exit; s := AnsiChar(x) + RecvBufferStr(x, FSocksTimeout); end; 4: s := RecvBufferStr(16, FSocksTimeout); else Exit; end; Buf := Buf + s + RecvBufferStr(2, FSocksTimeout); if FLastError <> 0 then Exit; FSocksLastError := Ord(Buf[2]); end; if ((FSocksLastError <> 0) and (FSocksLastError <> 90)) then Exit; SocksDecode(Buf); Result := True; finally FBypassFlag := False; end; end; function TSocksBlockSocket.SocksCode(IP, Port: string): Ansistring; var ip6: TIp6Bytes; n: integer; begin if FSocksType <> ST_Socks5 then begin Result := CodeInt(ResolvePort(Port)); if not FSocksResolver then IP := ResolveName(IP); if IsIP(IP) then begin Result := Result + IPToID(IP); Result := Result + FSocksUsername + #0; end else begin Result := Result + IPToID('0.0.0.1'); Result := Result + FSocksUsername + #0; Result := Result + IP + #0; end; end else begin if not FSocksResolver then IP := ResolveName(IP); if IsIP(IP) then Result := #1 + IPToID(IP) else if IsIP6(IP) then begin ip6 := StrToIP6(IP); Result := #4; for n := 0 to 15 do Result := Result + AnsiChar(ip6[n]); end else Result := #3 + AnsiChar(Length(IP)) + IP; Result := Result + CodeInt(ResolvePort(Port)); end; end; function TSocksBlockSocket.SocksDecode(Value: Ansistring): integer; var Atyp: Byte; y, n: integer; w: Word; ip6: TIp6Bytes; begin FSocksResponsePort := '0'; Result := 0; if FSocksType <> ST_Socks5 then begin if Length(Value) < 8 then Exit; Result := 3; w := DecodeInt(Value, Result); FSocksResponsePort := IntToStr(w); FSocksResponseIP := Format('%d.%d.%d.%d', [Ord(Value[5]), Ord(Value[6]), Ord(Value[7]), Ord(Value[8])]); Result := 9; end else begin if Length(Value) < 4 then Exit; Atyp := Ord(Value[4]); Result := 5; case Atyp of 1: begin if Length(Value) < 10 then Exit; FSocksResponseIP := Format('%d.%d.%d.%d', [Ord(Value[5]), Ord(Value[6]), Ord(Value[7]), Ord(Value[8])]); Result := 9; end; 3: begin y := Ord(Value[5]); if Length(Value) < (5 + y + 2) then Exit; for n := 6 to 6 + y - 1 do FSocksResponseIP := FSocksResponseIP + Value[n]; Result := 5 + y + 1; end; 4: begin if Length(Value) < 22 then Exit; for n := 0 to 15 do ip6[n] := ord(Value[n + 5]); FSocksResponseIP := IP6ToStr(ip6); Result := 21; end; else Exit; end; w := DecodeInt(Value, Result); FSocksResponsePort := IntToStr(w); Result := Result + 2; end; end; {======================================================================} procedure TDgramBlockSocket.Connect(IP, Port: string); begin SetRemoteSin(IP, Port); InternalCreateSocket(FRemoteSin); FBuffer := ''; DoStatus(HR_Connect, IP + ':' + Port); end; function TDgramBlockSocket.RecvBuffer(Buffer: TMemory; Length: Integer): Integer; begin Result := RecvBufferFrom(Buffer, Length); end; function TDgramBlockSocket.SendBuffer(Buffer: TMemory; Length: Integer): Integer; begin Result := SendBufferTo(Buffer, Length); end; {======================================================================} destructor TUDPBlockSocket.Destroy; begin if Assigned(FSocksControlSock) then FSocksControlSock.Free; inherited; end; procedure TUDPBlockSocket.EnableBroadcast(Value: Boolean); var d: TSynaOption; begin d := TSynaOption.Create; d.Option := SOT_Broadcast; d.Enabled := Value; DelayedOption(d); end; function TUDPBlockSocket.UdpAssociation: Boolean; var b: Boolean; begin Result := True; FUsingSocks := False; if FSocksIP <> '' then begin Result := False; if not Assigned(FSocksControlSock) then FSocksControlSock := TTCPBlockSocket.Create; FSocksControlSock.CloseSocket; FSocksControlSock.CreateSocketByName(FSocksIP); FSocksControlSock.Connect(FSocksIP, FSocksPort); if FSocksControlSock.LastError <> 0 then Exit; // if not assigned local port, assign it! if not FBinded then Bind(cAnyHost, cAnyPort); //open control TCP connection to SOCKS FSocksControlSock.FSocksUsername := FSocksUsername; FSocksControlSock.FSocksPassword := FSocksPassword; b := FSocksControlSock.SocksOpen; if b then b := FSocksControlSock.SocksRequest(3, GetLocalSinIP, IntToStr(GetLocalSinPort)); if b then b := FSocksControlSock.SocksResponse; if not b and (FLastError = 0) then FLastError := WSANO_RECOVERY; FUsingSocks :=FSocksControlSock.UsingSocks; FSocksRemoteIP := FSocksControlSock.FSocksResponseIP; FSocksRemotePort := FSocksControlSock.FSocksResponsePort; Result := b and (FLastError = 0); end; end; function TUDPBlockSocket.SendBufferTo(Buffer: TMemory; Length: Integer): Integer; var SIp: string; SPort: integer; Buf: Ansistring; begin Result := 0; FUsingSocks := False; if (FSocksIP <> '') and (not UdpAssociation) then FLastError := WSANO_RECOVERY else begin if FUsingSocks then begin {$IFNDEF CIL} Sip := GetRemoteSinIp; SPort := GetRemoteSinPort; SetRemoteSin(FSocksRemoteIP, FSocksRemotePort); SetLength(Buf,Length); Move(Buffer^, Pointer(Buf)^, Length); Buf := #0 + #0 + #0 + SocksCode(Sip, IntToStr(SPort)) + Buf; Result := inherited SendBufferTo(Pointer(Buf), System.Length(buf)); SetRemoteSin(Sip, IntToStr(SPort)); {$ENDIF} end else Result := inherited SendBufferTo(Buffer, Length); end; end; function TUDPBlockSocket.RecvBufferFrom(Buffer: TMemory; Length: Integer): Integer; var Buf: Ansistring; x: integer; begin Result := inherited RecvBufferFrom(Buffer, Length); if FUsingSocks then begin {$IFNDEF CIL} SetLength(Buf, Result); Move(Buffer^, Pointer(Buf)^, Result); x := SocksDecode(Buf); Result := Result - x + 1; Buf := Copy(Buf, x, Result); Move(Pointer(Buf)^, Buffer^, Result); SetRemoteSin(FSocksResponseIP, FSocksResponsePort); {$ENDIF} end; end; {$IFNDEF CIL} procedure TUDPBlockSocket.AddMulticast(MCastIP: string); var Multicast: TIP_mreq; Multicast6: TIPv6_mreq; n: integer; ip6: Tip6bytes; begin if FIP6Used then begin ip6 := StrToIp6(MCastIP); for n := 0 to 15 do Multicast6.ipv6mr_multiaddr.u6_addr8[n] := Ip6[n]; Multicast6.ipv6mr_interface := 0; SockCheck(synsock.SetSockOpt(FSocket, IPPROTO_IPV6, IPV6_JOIN_GROUP, PAnsiChar(@Multicast6), SizeOf(Multicast6))); end else begin Multicast.imr_multiaddr.S_addr := swapbytes(strtoip(MCastIP)); // Multicast.imr_interface.S_addr := INADDR_ANY; Multicast.imr_interface.S_addr := FLocalSin.sin_addr.S_addr; SockCheck(synsock.SetSockOpt(FSocket, IPPROTO_IP, IP_ADD_MEMBERSHIP, PAnsiChar(@Multicast), SizeOf(Multicast))); end; ExceptCheck; end; procedure TUDPBlockSocket.DropMulticast(MCastIP: string); var Multicast: TIP_mreq; Multicast6: TIPv6_mreq; n: integer; ip6: Tip6bytes; begin if FIP6Used then begin ip6 := StrToIp6(MCastIP); for n := 0 to 15 do Multicast6.ipv6mr_multiaddr.u6_addr8[n] := Ip6[n]; Multicast6.ipv6mr_interface := 0; SockCheck(synsock.SetSockOpt(FSocket, IPPROTO_IPV6, IPV6_LEAVE_GROUP, PAnsiChar(@Multicast6), SizeOf(Multicast6))); end else begin Multicast.imr_multiaddr.S_addr := swapbytes(strtoip(MCastIP)); // Multicast.imr_interface.S_addr := INADDR_ANY; Multicast.imr_interface.S_addr := FLocalSin.sin_addr.S_addr; SockCheck(synsock.SetSockOpt(FSocket, IPPROTO_IP, IP_DROP_MEMBERSHIP, PAnsiChar(@Multicast), SizeOf(Multicast))); end; ExceptCheck; end; {$ENDIF} procedure TUDPBlockSocket.SetMulticastTTL(TTL: integer); var d: TSynaOption; begin d := TSynaOption.Create; d.Option := SOT_MulticastTTL; d.Value := TTL; DelayedOption(d); end; function TUDPBlockSocket.GetMulticastTTL:integer; var l: Integer; begin {$IFNDEF CIL} l := SizeOf(Result); if FIP6Used then synsock.GetSockOpt(FSocket, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, @Result, l) else synsock.GetSockOpt(FSocket, IPPROTO_IP, IP_MULTICAST_TTL, @Result, l); {$ENDIF} end; procedure TUDPBlockSocket.EnableMulticastLoop(Value: Boolean); var d: TSynaOption; begin d := TSynaOption.Create; d.Option := SOT_MulticastLoop; d.Enabled := Value; DelayedOption(d); end; function TUDPBlockSocket.GetSocketType: integer; begin Result := integer(SOCK_DGRAM); end; function TUDPBlockSocket.GetSocketProtocol: integer; begin Result := integer(IPPROTO_UDP); end; {======================================================================} constructor TTCPBlockSocket.CreateWithSSL(SSLPlugin: TSSLClass); begin inherited Create; FSSL := SSLPlugin.Create(self); FHTTPTunnelIP := ''; FHTTPTunnelPort := ''; FHTTPTunnel := False; FHTTPTunnelRemoteIP := ''; FHTTPTunnelRemotePort := ''; FHTTPTunnelUser := ''; FHTTPTunnelPass := ''; FHTTPTunnelTimeout := 30000; end; constructor TTCPBlockSocket.Create; begin CreateWithSSL(SSLImplementation); end; destructor TTCPBlockSocket.Destroy; begin inherited Destroy; FSSL.Free; end; function TTCPBlockSocket.GetErrorDescEx: string; begin Result := inherited GetErrorDescEx; if (FLastError = WSASYSNOTREADY) and (self.SSL.LastError <> 0) then begin Result := self.SSL.LastErrorDesc; end; end; procedure TTCPBlockSocket.CloseSocket; begin if FSSL.SSLEnabled then FSSL.Shutdown; if (FSocket <> INVALID_SOCKET) and (FLastError = 0) then begin Synsock.Shutdown(FSocket, 1); Purge; end; inherited CloseSocket; end; procedure TTCPBlockSocket.DoAfterConnect; begin if assigned(OnAfterConnect) then begin OnAfterConnect(Self); end; end; function TTCPBlockSocket.WaitingData: Integer; begin Result := 0; if FSSL.SSLEnabled and (FSocket <> INVALID_SOCKET) then Result := FSSL.WaitingData; if Result = 0 then Result := inherited WaitingData; end; procedure TTCPBlockSocket.Listen; var b: Boolean; Sip,SPort: string; begin if FSocksIP = '' then begin inherited Listen; end else begin Sip := GetLocalSinIP; if Sip = cAnyHost then Sip := LocalName; SPort := IntToStr(GetLocalSinPort); inherited Connect(FSocksIP, FSocksPort); b := SocksOpen; if b then b := SocksRequest(2, Sip, SPort); if b then b := SocksResponse; if not b and (FLastError = 0) then FLastError := WSANO_RECOVERY; FSocksLocalIP := FSocksResponseIP; if FSocksLocalIP = cAnyHost then FSocksLocalIP := FSocksIP; FSocksLocalPort := FSocksResponsePort; FSocksRemoteIP := ''; FSocksRemotePort := ''; ExceptCheck; DoStatus(HR_Listen, ''); end; end; function TTCPBlockSocket.Accept: TSocket; begin if FUsingSocks then begin if not SocksResponse and (FLastError = 0) then FLastError := WSANO_RECOVERY; FSocksRemoteIP := FSocksResponseIP; FSocksRemotePort := FSocksResponsePort; Result := FSocket; ExceptCheck; DoStatus(HR_Accept, ''); end else begin result := inherited Accept; end; end; procedure TTCPBlockSocket.Connect(IP, Port: string); begin if FSocksIP <> '' then SocksDoConnect(IP, Port) else if FHTTPTunnelIP <> '' then HTTPTunnelDoConnect(IP, Port) else inherited Connect(IP, Port); if FLasterror = 0 then DoAfterConnect; end; procedure TTCPBlockSocket.SocksDoConnect(IP, Port: string); var b: Boolean; begin inherited Connect(FSocksIP, FSocksPort); if FLastError = 0 then begin b := SocksOpen; if b then b := SocksRequest(1, IP, Port); if b then b := SocksResponse; if not b and (FLastError = 0) then FLastError := WSASYSNOTREADY; FSocksLocalIP := FSocksResponseIP; FSocksLocalPort := FSocksResponsePort; FSocksRemoteIP := IP; FSocksRemotePort := Port; end; ExceptCheck; DoStatus(HR_Connect, IP + ':' + Port); end; procedure TTCPBlockSocket.HTTPTunnelDoConnect(IP, Port: string); //bugfixed by Mike Green (mgreen@emixode.com) var s: string; begin Port := IntToStr(ResolvePort(Port)); inherited Connect(FHTTPTunnelIP, FHTTPTunnelPort); if FLastError <> 0 then Exit; FHTTPTunnel := False; if IsIP6(IP) then IP := '[' + IP + ']'; SendString('CONNECT ' + IP + ':' + Port + ' HTTP/1.0' + CRLF); if FHTTPTunnelUser <> '' then Sendstring('Proxy-Authorization: Basic ' + EncodeBase64(FHTTPTunnelUser + ':' + FHTTPTunnelPass) + CRLF); SendString(CRLF); repeat s := RecvTerminated(FHTTPTunnelTimeout, #$0a); if FLastError <> 0 then Break; if (Pos('HTTP/', s) = 1) and (Length(s) > 11) then FHTTPTunnel := s[10] = '2'; until (s = '') or (s = #$0d); if (FLasterror = 0) and not FHTTPTunnel then FLastError := WSAECONNREFUSED; FHTTPTunnelRemoteIP := IP; FHTTPTunnelRemotePort := Port; ExceptCheck; end; procedure TTCPBlockSocket.SSLDoConnect; begin ResetLastError; if not FSSL.Connect then FLastError := WSASYSNOTREADY; ExceptCheck; end; procedure TTCPBlockSocket.SSLDoShutdown; begin ResetLastError; FSSL.BiShutdown; end; function TTCPBlockSocket.GetLocalSinIP: string; begin if FUsingSocks then Result := FSocksLocalIP else Result := inherited GetLocalSinIP; end; function TTCPBlockSocket.GetRemoteSinIP: string; begin if FUsingSocks then Result := FSocksRemoteIP else if FHTTPTunnel then Result := FHTTPTunnelRemoteIP else Result := inherited GetRemoteSinIP; end; function TTCPBlockSocket.GetLocalSinPort: Integer; begin if FUsingSocks then Result := StrToIntDef(FSocksLocalPort, 0) else Result := inherited GetLocalSinPort; end; function TTCPBlockSocket.GetRemoteSinPort: Integer; begin if FUsingSocks then Result := ResolvePort(FSocksRemotePort) else if FHTTPTunnel then Result := StrToIntDef(FHTTPTunnelRemotePort, 0) else Result := inherited GetRemoteSinPort; end; function TTCPBlockSocket.RecvBuffer(Buffer: TMemory; Len: Integer): Integer; begin if FSSL.SSLEnabled then begin Result := 0; if TestStopFlag then Exit; ResetLastError; LimitBandwidth(Len, FMaxRecvBandwidth, FNextRecv); Result := FSSL.RecvBuffer(Buffer, Len); if FSSL.LastError <> 0 then FLastError := WSASYSNOTREADY; ExceptCheck; Inc(FRecvCounter, Result); DoStatus(HR_ReadCount, IntToStr(Result)); DoMonitor(False, Buffer, Result); DoReadFilter(Buffer, Result); end else Result := inherited RecvBuffer(Buffer, Len); end; function TTCPBlockSocket.SendBuffer(Buffer: TMemory; Length: Integer): Integer; var x, y: integer; l, r: integer; {$IFNDEF CIL} p: Pointer; {$ENDIF} begin if FSSL.SSLEnabled then begin Result := 0; if TestStopFlag then Exit; ResetLastError; DoMonitor(True, Buffer, Length); {$IFDEF CIL} Result := FSSL.SendBuffer(Buffer, Length); if FSSL.LastError <> 0 then FLastError := WSASYSNOTREADY; Inc(FSendCounter, Result); DoStatus(HR_WriteCount, IntToStr(Result)); {$ELSE} l := Length; x := 0; while x < l do begin y := l - x; if y > FSendMaxChunk then y := FSendMaxChunk; if y > 0 then begin LimitBandwidth(y, FMaxSendBandwidth, FNextsend); p := IncPoint(Buffer, x); r := FSSL.SendBuffer(p, y); if FSSL.LastError <> 0 then FLastError := WSASYSNOTREADY; if Flasterror <> 0 then Break; Inc(x, r); Inc(Result, r); Inc(FSendCounter, r); DoStatus(HR_WriteCount, IntToStr(r)); end else break; end; {$ENDIF} ExceptCheck; end else Result := inherited SendBuffer(Buffer, Length); end; function TTCPBlockSocket.SSLAcceptConnection: Boolean; begin ResetLastError; if not FSSL.Accept then FLastError := WSASYSNOTREADY; ExceptCheck; Result := FLastError = 0; end; function TTCPBlockSocket.GetSocketType: integer; begin Result := integer(SOCK_STREAM); end; function TTCPBlockSocket.GetSocketProtocol: integer; begin Result := integer(IPPROTO_TCP); end; {======================================================================} function TICMPBlockSocket.GetSocketType: integer; begin Result := integer(SOCK_RAW); end; function TICMPBlockSocket.GetSocketProtocol: integer; begin if FIP6Used then Result := integer(IPPROTO_ICMPV6) else Result := integer(IPPROTO_ICMP); end; {======================================================================} function TRAWBlockSocket.GetSocketType: integer; begin Result := integer(SOCK_RAW); end; function TRAWBlockSocket.GetSocketProtocol: integer; begin Result := integer(IPPROTO_RAW); end; {======================================================================} function TPGMmessageBlockSocket.GetSocketType: integer; begin Result := integer(SOCK_RDM); end; function TPGMmessageBlockSocket.GetSocketProtocol: integer; begin Result := integer(IPPROTO_RM); end; {======================================================================} function TPGMstreamBlockSocket.GetSocketType: integer; begin Result := integer(SOCK_STREAM); end; function TPGMstreamBlockSocket.GetSocketProtocol: integer; begin Result := integer(IPPROTO_RM); end; {======================================================================} constructor TSynaClient.Create; begin inherited Create; FIPInterface := cAnyHost; FTargetHost := cLocalhost; FTargetPort := cAnyPort; FTimeout := 5000; FUsername := ''; FPassword := ''; end; {======================================================================} constructor TCustomSSL.Create(const Value: TTCPBlockSocket); begin inherited Create; FSocket := Value; FSSLEnabled := False; FUsername := ''; FPassword := ''; FLastError := 0; FLastErrorDesc := ''; FVerifyCert := False; FSSLType := LT_all; FKeyPassword := ''; FCiphers := ''; FCertificateFile := ''; FPrivateKeyFile := ''; FCertCAFile := ''; FCertCA := ''; FTrustCertificate := ''; FTrustCertificateFile := ''; FCertificate := ''; FPrivateKey := ''; FPFX := ''; FPFXfile := ''; FSSHChannelType := ''; FSSHChannelArg1 := ''; FSSHChannelArg2 := ''; FCertComplianceLevel := -1; //default FSNIHost := ''; end; procedure TCustomSSL.Assign(const Value: TCustomSSL); begin FUsername := Value.Username; FPassword := Value.Password; FVerifyCert := Value.VerifyCert; FSSLType := Value.SSLType; FKeyPassword := Value.KeyPassword; FCiphers := Value.Ciphers; FCertificateFile := Value.CertificateFile; FPrivateKeyFile := Value.PrivateKeyFile; FCertCAFile := Value.CertCAFile; FCertCA := Value.CertCA; FTrustCertificate := Value.TrustCertificate; FTrustCertificateFile := Value.TrustCertificateFile; FCertificate := Value.Certificate; FPrivateKey := Value.PrivateKey; FPFX := Value.PFX; FPFXfile := Value.PFXfile; FCertComplianceLevel := Value.CertComplianceLevel; FSNIHost := Value.FSNIHost; end; procedure TCustomSSL.ReturnError; begin FLastError := -1; FLastErrorDesc := 'SSL/TLS support is not compiled!'; end; function TCustomSSL.LibVersion: String; begin Result := ''; end; function TCustomSSL.LibName: String; begin Result := ''; end; function TCustomSSL.CreateSelfSignedCert(Host: string): Boolean; begin Result := False; end; function TCustomSSL.Connect: boolean; begin ReturnError; Result := False; end; function TCustomSSL.Accept: boolean; begin ReturnError; Result := False; end; function TCustomSSL.Shutdown: boolean; begin ReturnError; Result := False; end; function TCustomSSL.BiShutdown: boolean; begin ReturnError; Result := False; end; function TCustomSSL.SendBuffer(Buffer: TMemory; Len: Integer): Integer; begin ReturnError; Result := integer(SOCKET_ERROR); end; procedure TCustomSSL.SetCertCAFile(const Value: string); begin FCertCAFile := Value; end; function TCustomSSL.RecvBuffer(Buffer: TMemory; Len: Integer): Integer; begin ReturnError; Result := integer(SOCKET_ERROR); end; function TCustomSSL.WaitingData: Integer; begin ReturnError; Result := 0; end; function TCustomSSL.GetSSLVersion: string; begin Result := ''; end; function TCustomSSL.GetPeerSubject: string; begin Result := ''; end; function TCustomSSL.GetPeerSerialNo: integer; begin Result := -1; end; function TCustomSSL.GetPeerName: string; begin Result := ''; end; function TCustomSSL.GetPeerNameHash: cardinal; begin Result := 0; end; function TCustomSSL.GetPeerIssuer: string; begin Result := ''; end; function TCustomSSL.GetPeerFingerprint: string; begin Result := ''; end; function TCustomSSL.GetCertInfo: string; begin Result := ''; end; function TCustomSSL.GetCipherName: string; begin Result := ''; end; function TCustomSSL.GetCipherBits: integer; begin Result := 0; end; function TCustomSSL.GetCipherAlgBits: integer; begin Result := 0; end; function TCustomSSL.GetVerifyCert: integer; begin Result := 1; end; function TCustomSSL.DoVerifyCert:boolean; begin if assigned(OnVerifyCert) then begin result:=OnVerifyCert(Self); end else result:=true; end; {======================================================================} function TSSLNone.LibVersion: String; begin Result := 'Without SSL support'; end; function TSSLNone.LibName: String; begin Result := 'ssl_none'; end; {======================================================================} initialization begin {$IFDEF ONCEWINSOCK} if not InitSocketInterface(DLLStackName) then begin e := ESynapseError.Create('Error loading Socket interface (' + DLLStackName + ')!'); e.ErrorCode := 0; e.ErrorMessage := 'Error loading Socket interface (' + DLLStackName + ')!'; raise e; end; synsock.WSAStartup(WinsockLevel, WsaDataOnce); {$ENDIF} end; finalization begin {$IFDEF ONCEWINSOCK} synsock.WSACleanup; DestroySocketInterface; {$ENDIF} end; end. ./udm0000755000175000017500007366043014576573022011706 0ustar anthonyanthonyELF>B@Y@8 @@@@@@00pp@p@@@((AAˋˋ\\8|88HKH|HH@@ QtdRtd8|88/lib64/ld-linux-x86-64.so.2GNURy#ddw )%lj#RcuSL+ku:m%N9~>.[Axak<[s${rs#ABe& 5;D}h)1 j=6sNF PZ;N.)+gI^!Mz ! pUK'3L5@qv7D?Q rF"hC3Pn~2,$=dCsz1_  'ZSzgBJ^&7a`[fpM* DYQGR#"E'IM3YLm(iH%UXVE ^4cW,y848Y/0qPS/Rw:F2/tl"GYv9$K[DqXC_M=<m5|y iHt$077 4;<i(6u*x?!YwVn-u(T@tZ,V`5&:~?Hy^b'K[~bAHLFQ@I>VzjMT"-?&W~; 'a8$J-sqdh!yOn=9 =w1 X692\;oOW  IBR P*r6Q`>eL0{A k2]t-IR !^+Do3K&9Q,  HA,qfn1'N&L: CgB \4J*US>k<M(u`!#Qi5_lG<1) fIWOh.Px@0Nb EX@U5J /Fr)E }\0jXKhgN8:{ec\}GxmT%l,2|wW=T?c9#g f1O}p|\4/`ZpGJP(Da8CvSTd|e34"m+6{nOv-%>7 %>E+AJ.aBxOb.G@bUr78j *<z"v]i$o;6C]-3/*_.tc_o+pK{(e E H)f|0lFo:]BZk] }2?VQ QۚNr-v|F,oB\.  %J,iwxA? nw#T!YG_F26w;[d4/o6R-8Gq$ &9gL ujpQqNB$+7yZ|{&!n@r +^7djnzo7w4B ',eJ.;RfMcxwz$"xsbg0iO:sJ}1tn*j6qZ UUTG"%oQ BLmecj:QC6`ya(xzbb|,NttHzl9|9c0DA$J>_$>3ZkN< G4{D+UwMR*]W;vbh/.#6(D4>q-$VE|Jt6T|^(P&-7MqUi [`\ xAO}%'ku*U>Yi1- aZ p\_Z?fr2Vnd`Hd|]P3[zO>[H&1:Y\gY0:SuRZr&`0?YM3@+@u/7onG,s)'6iZr>& 8 5^4; B Y0ft,)^-wIXQOX 5, s^1g2;^CId,|afyQEs4=]oC"{ ^P0hX9ZE{>Ckg/v k^s(qK*.9{XVf35]J I rp!\F'c 8m(um|e EcA&W9d3!sv<"$Jiz@VSj <&pjX>N0f#eBIok@, LX.{Ht5vok7rz XnSI3K;!Re\^xr TGuJ\On!}+FrK{\r<3W%*N/NCE;*$; T"y- =g$]up(P9hiQ RDxwaVl,:U7H;V90v@(zRqfz#_jbprz9mFa2H-AfDJS']$\|e@N$o M]o<Apwl2q "i5R*yK ?Jv jqlHEK"wCy#Q#\k|.OG7"^`1+D=_& $I=!RN'6IbydF8x;-%t_i+rcz=d|Q 25 *YM!uaq2|vTk2"04[E`xc[u n8>a!r)ESaX R`7< &n+LR#Rv   @GP!?LQt`&xZ:(X#i;Im,b/RDG%uA Xn4l7m3J"l?q._4([1 |9KRi"5T8fN%f{G+LZ/7m&+CMjAx&t<N  M?kR?S|(v,rI"DP:{xF >$HNF$Ey99o;N]%$U/(OSH"0kboy !g 3bh3h^iV yopY{ZxW{Ax%^c!)d) @3>c O@/jPLh#fV#)~|cX8Gop^ut>bD.1=1UTKeb #8)_WW PBnW5l:5Ab<*J{Xr[J.OgVsTZUyE[^j:| Kp60P"e)+0EQm|z]B >MMR@8* Pt9xs7zRo9XD?0pango_layout_get_extentsg_type_interface_peekXFreeg_value_unsetcairo_set_operatorg_list_findgdk_pixbuf_get_heightg_slist_freegdk_pixbuf_new_from_dataXInternAtomsg_io_channel_unix_newg_object_get_dataXGrabServer__gmon_start__g_value_set_pointercairo_get_matrixcairo_destroyg_object_unrefg_strdupgdk_pixbuf_get_rowstridegdk_pixbuf_get_pixelsXUngrabPointerXGetWindowPropertyg_list_freeXFreeModifiermapg_object_set_data_fullcairo_set_source_surfacepango_layout_iter_freegdk_pixbuf_newXGrabPointerg_mallocpango_context_get_typeg_string_newcairo_close_pathcairo_line_to_ITM_deregisterTMCloneTablegdk_pixbuf_get_bits_per_samplecairo_paintg_object_newg_utf8_skipg_list_lengthg_object_refcairo_set_source_rgbXSynchronizegdk_pixbuf_get_width_ITM_registerTMCloneTablecairo_restoreg_signal_handlers_disconnect_matchedg_value_set_stringg_string_freegdk_pixbuf_get_typegdk_pixbuf_get_has_alphapango_layout_get_iterg_object_set_dataXUngrabServercairo_rectanglecairo_translateg_main_context_wakeupcairo_createg_quark_try_stringXClearAreag_type_register_staticg_list_remove_linkg_slist_findg_value_get_objectg_getenvXUngrabKeyboardg_quark_from_static_stringg_quark_from_stringg_ascii_tableg_type_check_instance_is_ag_list_lastg_list_indexg_list_appendXSelectInputg_convert_error_quarkpango_extents_to_pixelsg_type_nameXFlushg_source_removeg_signal_connect_datagdk_pixbuf_new_from_xpm_datag_realloccairo_surface_finishcairo_image_surface_create_for_dataXSyncXSendEventg_cclosure_marshal_VOID__VOIDpango_layout_get_typecairo_clipg_malloc0cairo_fillg_value_initg_value_set_objectXGetModifierMappinggdk_pixbuf_get_n_channelsXInternAtomXGrabKeyboardg_io_channel_unrefcairo_identity_matrixpango_layout_get_contextXGetVisualInfocairo_surface_destroyg_unichar_to_utf8XSetErrorHandlerg_strfreevcairo_saveg_type_add_interface_staticg_array_append_valsg_logXGetSelectionOwnercairo_reset_clippango_renderer_draw_layoutpango_context_get_matrixcairo_move_togdk_keymap_get_entries_for_keycodegdk_region_newgdk_selection_owner_getgdk_window_restackgdk_draw_layout_with_colorsgdk_window_set_back_pixmapgdk_gc_set_clip_origingdk_gc_set_fillgdk_screen_widthgdk_draw_linesgdk_window_move_resizegdk_string_to_compound_textgdk_free_compound_textgdk_colormap_free_colorsgdk_image_get_typegdk_window_shape_combine_regiongdk_region_offsetgdk_region_subtractgdkx_visual_getgdk_region_xorgdk_error_trap_pushgdk_draw_imagegdk_screen_get_monitor_at_pointgdk_device_get_typegdk_gc_set_tilegdk_keyval_to_unicodegdk_visual_get_systemgdk_visual_get_best_with_depthgdk_x11_image_get_ximagegdk_pixmap_newgdk_cursor_unrefgdk_window_get_deskrelative_origingdk_region_intersectgdk_window_set_eventsgdk_draw_pixbufgdk_colormap_get_systemgdk_draw_linegdk_colormap_refgdk_visual_get_best_with_typegdk_image_unrefgdk_screen_get_displaygdk_colormap_alloc_colorgdk_text_property_to_text_listgdk_pixmap_create_from_xpm_dgdk_pango_renderer_get_defaultgdk_event_get_typegdk_window_focusgdk_region_equalgdk_x11_get_default_root_xwindowgdk_draw_drawablegdk_window_get_toplevelsgdk_colormap_get_typegdk_x11_colormap_get_xcolormapgdk_window_hidegdk_property_getgdk_drawable_get_displaygdk_color_blackgdk_gc_new_with_valuesgdk_draw_polygongdk_x11_image_get_xdisplaygdk_pango_context_getgdk_window_thaw_updatesgdk_window_begin_paint_rectgdk_cursor_new_from_pixbufgdk_event_newgdk_window_get_childrengdk_atom_interngdk_free_text_listgdk_unicode_to_keyvalgdk_colormap_get_visualgdk_window_lowergdk_x11_colormap_get_xdisplaygdk_visual_get_typegdk_gc_get_typegdk_image_get_colormapgdk_keymap_get_for_displaygdk_gc_set_stipplegdk_pango_renderer_set_gcgdk_screen_heightgdk_window_end_paintgdk_image_newgdk_window_freeze_updatesgdk_pixbuf_get_from_drawablegdk_screen_height_mmgdk_draw_arcgdk_pango_renderer_set_override_colorgdk_keymap_get_typegdk_window_set_functionsgdk_bitmap_create_from_datagdk_drag_context_get_typegdk_gc_set_ts_origingdk_screen_get_resolutiongdk_gc_copygdk_drawable_get_depthgdk_region_rect_ingdk_screen_width_mmgdk_window_get_frame_extentsgdk_window_set_decorationsgdk_pango_renderer_set_drawablegdk_gc_get_valuesgdk_pango_renderer_get_typegdk_region_destroygdk_drawable_get_typegdk_window_get_origingdk_device_get_stategdk_cursor_newgdk_window_get_parentgdk_window_get_stategdk_window_get_window_typegdk_window_get_pointergdk_display_get_defaultgdk_cursor_get_typegdk_window_shape_combine_maskgdk_display_get_default_cursor_sizegdk_rectangle_get_typegdk_get_default_root_windowgdk_color_whitegdk_window_impl_x11_get_typegdk_drawable_get_imagegdk_colormap_alloc_colorsgdk_region_point_ingdk_pixbuf_render_to_drawable_alphagdk_window_foreign_newgdk_window_raisegdk_x11_cursor_get_xdisplaygdk_window_set_keep_abovegdk_image_get_pixelgdk_region_rectanglegdk_window_object_get_typegdk_error_trap_popgdk_screen_get_monitor_geometrygdk_window_get_root_origingdk_x11_display_get_xdisplaygdk_threads_mutexgdk_region_copygdk_display_get_window_at_pointergdk_screen_get_defaultgdk_font_get_typegdk_display_warp_pointergdk_pixbuf_render_to_drawablegdk_gc_set_foregroundgdk_gc_newgdk_displaygdk_x11_get_default_xdisplaygdk_image_refgdk_colormap_query_colorgdk_gc_set_subwindowgdk_gc_set_clip_rectanglegdk_window_get_geometrygdk_rgb_get_colormapgdk_window_showgdk_drawable_set_colormapgdk_x11_cursor_get_xcursorgdk_window_set_cursorgdk_atom_namegdk_screen_get_n_monitorsgdk_screen_get_root_windowgdk_window_get_user_datagdk_gc_set_line_attributesgdk_window_resizegdk_gc_set_clip_regiongdk_drawable_get_colormapgdk_pixmap_get_typegdk_event_get_timegdk_window_get_positiongdk_color_get_typegdk_window_move_regiongdk_screen_get_active_windowgdk_draw_rectanglegdk_region_emptygdk_display_get_maximal_cursor_sizegdk_display_get_pointergdk_draw_pointgdk_image_getgdk_drawable_get_visualgdk_colormap_newgdk_x11_drawable_get_xdisplaygdk_drawable_get_sizegdk_x11_drawable_get_xidgdk_gc_set_backgroundgdk_gc_set_functiongdk_region_polygongdk_window_is_visiblegdk_pixbuf_render_pixmap_and_maskgdk_window_get_eventsgdk_region_uniongdk_region_get_clipboxgdk_x11_get_default_screengdk_region_union_with_rectgdk_gc_set_clip_maskgdk_colormap_unrefgdk_gc_set_dashesgdk_gc_unrefgdk_window_invalidate_regiongdk_window_process_updatescairo_pdf_surface_create_for_streampango_layout_set_attributescairo_set_line_widthg_datalist_id_set_data_fullg_type_is_apango_context_set_matrixcairo_scaleg_signal_lookupg_type_from_namepango_attr_strikethrough_newg_datalist_id_remove_no_notifypango_cairo_create_layoutpango_layout_set_textg_signal_handler_blockpango_font_face_get_face_namepango_matrix_rotategdk_pixbuf_scale_simpleatk_object_get_typeg_object_steal_datapango_font_metrics_get_ascentpango_font_metrics_get_descentg_main_context_pendingg_datalist_id_get_datag_list_allocatk_text_get_typepango_layout_set_alignmentg_type_parentg_signal_handlers_block_matchedcairo_pdf_surface_set_sizeg_value_set_uintpango_font_description_copypango_layout_get_textg_signal_stop_emissionpango_attr_list_newg_option_error_quarkcairo_arcpango_attr_list_changeg_list_firstg_list_insertgdk_pixbuf_new_subpixbufpango_font_description_to_stringg_array_insert_valsatk_action_get_typepango_layout_get_attributespango_attr_list_unrefg_markup_error_quarkpango_layout_set_single_paragraph_modeg_strchomppango_font_metrics_unrefg_closure_get_typepango_font_description_set_sizepango_layout_set_wrapcairo_show_pagepango_font_description_freeg_main_loop_newg_type_check_is_value_typepango_find_base_dircairo_rotatepango_font_description_get_familyg_type_check_value_holdscairo_ps_surface_dsc_commentg_value_set_booleanpango_font_description_get_typeg_value_get_booleanpango_font_description_newatk_image_get_typegdk_pixbuf_loader_closepango_font_description_get_stretchg_idle_addgdk_pixbuf_loader_get_pixbufg_signal_handler_disconnectg_main_context_iterationgdk_pixbuf_copypango_font_metrics_get_approximate_char_widthcairo_select_font_faceg_type_fundamentalpango_context_set_base_dirg_type_check_valueg_object_get_propertypango_context_list_familiesg_signal_handlers_unblock_matchedpango_font_family_get_nameatk_selection_get_typepango_font_description_get_sizeg_object_setpango_layout_get_font_descriptiong_object_getpango_attr_list_get_typepango_font_description_get_weightgdk_pixbuf_animation_get_typeg_gstring_get_typeg_node_prependg_object_set_propertypango_layout_get_pixel_sizeg_slist_indexpango_layout_context_changedpango_tab_array_get_typeg_node_insertg_node_insert_beforepango_font_description_set_familygdk_pixbuf_loader_writepango_font_description_get_styleg_dataset_id_set_data_fullcairo_set_font_sizeg_idle_remove_by_datapango_font_family_list_facescairo_curve_topango_context_get_languagepango_font_description_get_variantpango_font_description_set_absolute_sizeg_type_check_class_is_acairo_pdf_surface_createg_list_positionpango_context_get_font_descriptionatk_object_factory_get_typeg_type_value_table_peekg_signal_handler_unblockgdk_pixbuf_loader_newcairo_ps_surface_dsc_begin_page_setupg_strchugg_markup_escape_textpango_context_get_metricsg_list_nth_dataatk_component_get_typeg_signal_stop_emission_by_nameg_slist_nth_datag_file_error_quarkpango_font_description_from_stringpango_font_description_set_stylegdk_pixbuf_loader_get_typeg_dataset_id_get_datacairo_strokepango_cairo_show_layoutpango_font_description_set_weightcairo_fill_preservepango_layout_set_font_descriptionatk_implementor_get_typeg_node_newgdk_pixbuf_animation_iter_get_typeg_random_intcairo_set_dashpango_attr_underline_newpango_layout_set_widthcairo_get_current_pointgtk_cell_renderer_get_sizegtk_adjustment_get_typegtk_paint_hlinegtk_tree_view_column_queue_resizegtk_color_selection_get_typegtk_fixed_get_typegtk_widget_grab_focusgtk_tree_view_column_set_cell_data_funcgtk_toggle_button_set_activegtk_tree_store_get_typegtk_layout_get_sizegtk_window_get_sizegtk_clipboard_wait_is_text_availablegtk_window_set_default_sizegtk_widget_modify_bggtk_plug_newgtk_clist_select_rowgtk_tree_selection_iter_is_selectedgtk_file_chooser_set_current_foldergtk_tree_path_get_indicesgtk_list_store_setgtk_tree_view_scroll_to_cellgtk_label_newgtk_vruler_get_typegtk_widget_newgtk_tooltips_force_windowgtk_drawing_area_newgtk_widget_set_app_paintablegtk_aspect_frame_get_typegtk_tree_view_column_set_visiblegtk_combo_box_new_with_modelgtk_vscale_newgtk_entry_newgtk_selection_data_freegtk_main_do_eventgtk_image_menu_item_newgtk_window_movegtk_selection_convertgtk_cell_view_get_typegtk_font_selection_dialog_get_typegtk_entry_set_textgtk_tree_view_get_cursorgtk_icon_view_unselect_pathgtk_rc_style_unrefgtk_menu_bar_newgtk_entry_set_visibilitygtk_entry_select_regiongtk_selection_data_setgtk_icon_view_get_path_at_posgtk_text_iter_forward_to_line_endgtk_range_set_valuegtk_tree_path_get_typegtk_rc_style_newgtk_clipboard_set_textgtk_tree_selection_set_modegtk_style_apply_default_backgroundgtk_combo_box_get_typegtk_radio_button_newgtk_requisition_get_typegtk_ruler_get_typegtk_window_get_type_hintgtk_range_set_invertedgtk_vbutton_box_get_typegtk_im_multicontext_newgtk_alignment_get_typegtk_statusbar_get_context_idgtk_window_set_accept_focusgtk_menu_item_newgtk_tree_model_get_itergtk_tree_selection_select_itergtk_icon_view_set_columnsgtk_progress_set_format_stringgtk_window_iconifygtk_entry_set_alignmentgtk_tooltips_set_tipgtk_widget_size_allocategtk_drag_dest_unsetgtk_event_box_set_visible_windowgtk_paint_slidergtk_icon_view_path_is_selectedgtk_vscale_get_typegtk_entry_get_max_lengthgtk_check_menu_item_set_show_togglegtk_text_iter_set_line_offsetgtk_color_selection_palette_to_stringgtk_list_insert_itemsgtk_file_chooser_dialog_newgtk_window_presentgtk_menu_shell_appendgtk_signal_compat_matchedgtk_widget_set_directiongtk_tree_view_set_cursorgtk_window_newgtk_menu_item_set_right_justifiedgtk_minor_versiongtk_widget_get_default_stylegtk_widget_set_redraw_on_allocategtk_toggle_tool_button_get_typegtk_adjustment_changedgtk_text_buffer_insertgtk_accel_map_get_typegtk_tree_view_get_hadjustmentgtk_text_mark_get_typegtk_list_get_typegtk_window_set_icon_listgtk_container_removegtk_widget_get_parentgtk_paint_optiongtk_widget_modify_fggtk_radio_button_get_typegtk_list_newgtk_settings_get_typegtk_tree_view_column_set_sort_indicatorgtk_cell_renderer_combo_get_typegtk_label_set_justifygtk_file_chooser_widget_get_typegtk_notebook_set_current_pagegtk_identifier_get_typegtk_layout_movegtk_window_remove_accel_groupgtk_vbox_newgtk_scrolled_window_get_hadjustmentgtk_tree_view_get_path_at_posgtk_icon_view_get_item_widthgtk_toggle_button_set_inconsistentgtk_ctree_get_typegtk_cell_renderer_toggle_get_typegtk_widget_hidegtk_tree_selection_select_allgtk_scale_get_typegtk_list_item_get_typegtk_box_pack_endgtk_progress_bar_set_bar_stylegtk_cell_renderer_progress_get_typegtk_tree_view_set_headers_visiblegtk_tool_item_get_typegtk_combo_box_popdowngtk_signal_newgtk_invisible_newgtk_tree_view_get_typegtk_tooltips_enablegtk_tree_model_row_deletedgtk_tree_model_get_typegtk_tree_view_column_pack_startgtk_icon_view_get_orientationgtk_frame_get_typegtk_font_selection_dialog_set_font_namegtk_file_chooser_error_quarkgtk_text_thawgtk_statusbar_get_typegtk_tree_view_column_set_fixed_widthgtk_bin_get_childgtk_text_buffer_get_insertgtk_binary_agegtk_combo_box_newgtk_radio_menu_item_get_groupgtk_calendar_get_typegtk_toolbar_get_typegtk_file_selection_get_selectionsgtk_widget_queue_cleargtk_notebook_get_tab_labelgtk_box_reorder_childgtk_icon_source_get_typegtk_widget_set_parentgtk_widget_set_parent_windowgtk_widget_set_namegtk_im_context_get_typegtk_clist_get_vadjustmentgtk_widget_get_pango_contextgtk_tree_model_getgtk_list_store_cleargtk_type_uniquegtk_tree_model_filter_get_typegtk_style_refgtk_icon_theme_get_typegtk_widget_modify_stylegtk_entry_set_has_framegtk_menu_shell_prependgtk_spin_button_get_typegtk_layout_newgtk_radio_tool_button_get_typegtk_editable_cut_clipboardgtk_window_set_resizablegtk_icon_view_get_item_at_posgtk_list_set_selection_modegtk_font_selection_dialog_set_preview_textgtk_icon_view_new_with_modelgtk_tree_selection_get_selected_rowsgtk_box_set_spacinggtk_tree_view_new_with_modelgtk_layout_get_hadjustmentgtk_range_get_invertedgtk_action_group_get_typegtk_cell_layout_pack_startgtk_progress_bar_get_typegtk_widget_get_parent_windowgtk_list_item_new_with_labelgtk_window_set_focus_on_mapgtk_tree_model_get_pathgtk_statusbar_set_has_resize_gripgtk_notebook_insert_page_menugtk_tree_selection_select_pathgtk_check_button_newgtk_notebook_set_scrollablegtk_statusbar_pushgtk_tree_view_column_newgtk_tree_model_get_iter_firstgtk_combo_get_typegtk_scrolled_window_newgtk_text_get_typegtk_item_get_typegtk_window_set_skip_taskbar_hintgtk_calendar_select_daygtk_get_current_eventgtk_combo_box_entry_get_typegtk_menu_shell_insertgtk_file_chooser_list_filtersgtk_widget_refgtk_file_chooser_get_actiongtk_container_get_childrengtk_radio_button_get_groupgtk_text_view_get_typegtk_calendar_get_display_optionsgtk_ui_manager_get_typegtk_entry_set_max_lengthgtk_list_store_removegtk_file_chooser_set_extra_widgetgtk_event_box_set_above_childgtk_icon_view_set_selection_modegtk_image_set_from_pixbufgtk_object_destroygtk_tree_view_get_modelgtk_entry_completion_get_typegtk_toolbar_insertgtk_clist_appendgtk_file_chooser_dialog_get_typegtk_style_get_typegtk_image_get_typegtk_tree_view_set_rules_hintgtk_spin_button_updategtk_notebook_popup_enablegtk_range_get_adjustmentgtk_menu_bar_set_child_pack_directiongtk_tree_model_get_n_columnsgtk_toolbar_newgtk_notebook_page_numgtk_border_freegtk_socket_get_typegtk_icon_theme_error_quarkgtk_cell_renderer_toggle_newgtk_debug_flagsgtk_icon_view_unselect_allgtk_progress_get_typegtk_box_set_child_packinggtk_separator_menu_item_get_typegtk_file_selection_get_typegtk_widget_get_typegtk_layout_set_sizegtk_spin_button_get_valuegtk_file_chooser_set_show_hiddengtk_object_sinkgtk_widget_create_pango_layoutgtk_notebook_prev_pagegtk_color_selection_set_has_palettegtk_event_box_newgtk_file_chooser_set_preview_widgetgtk_statusbar_newgtk_editable_paste_clipboardgtk_tree_model_iter_nth_childgtk_tooltips_newgtk_object_refgtk_color_selection_set_current_colorgtk_color_selection_dialog_get_typegtk_button_set_imagegtk_size_group_get_typegtk_window_set_focusgtk_drawing_area_sizegtk_combo_box_popupgtk_vscrollbar_newgtk_clist_freezegtk_message_dialog_get_typegtk_window_set_positiongtk_icon_set_get_typegtk_image_set_from_pixmapgtk_tips_query_get_typegtk_clist_set_reorderablegtk_menu_shell_get_typegtk_notebook_get_current_pagegtk_item_factory_get_typegtk_tree_model_sort_get_typegtk_interface_agegtk_toggle_button_get_inconsistentgtk_arrow_get_typegtk_editable_get_charsgtk_style_lookup_icon_setgtk_radio_menu_item_set_groupgtk_tree_view_columns_autosizegtk_paint_shadowgtk_text_buffer_deletegtk_widget_hide_allgtk_cell_renderer_pixbuf_newgtk_im_multicontext_get_typegtk_image_menu_item_get_typegtk_timeout_removegtk_fixed_set_has_windowgtk_color_selection_get_current_colorgtk_window_get_modalgtk_label_set_patterngtk_im_context_set_client_windowgtk_entry_set_invisible_chargtk_pixmap_get_typegtk_marshal_VOID__POINTER_POINTERgtk_text_iter_equalgtk_widget_set_size_requestgtk_im_context_simple_get_typegtk_rc_style_get_typegtk_list_item_selectgtk_button_clickedgtk_editable_set_positiongtk_fixed_putgtk_text_iter_get_offsetgtk_text_view_get_buffergtk_tree_item_get_typegtk_text_iter_get_linegtk_icon_info_get_typegtk_editable_copy_clipboardgtk_hpaned_get_typegtk_widget_set_upositiongtk_list_store_insert_with_valuesgtk_cell_renderer_get_fixed_sizegtk_tree_view_set_fixed_height_modegtk_grab_removegtk_list_end_drag_selectiongtk_tree_view_append_columngtk_message_dialog_set_markupgtk_widget_ensure_stylegtk_type_newgtk_widget_destroygtk_drag_dest_setgtk_text_freezegtk_scale_set_value_posgtk_check_button_new_with_labelgtk_about_dialog_get_typegtk_image_new_from_stockgtk_tree_path_new_from_stringgtk_widget_modify_textgtk_scrolled_window_set_policygtk_cell_renderer_text_get_typegtk_tree_iter_get_typegtk_alignment_newgtk_editable_set_editablegtk_file_chooser_set_do_overwrite_confirmationgtk_widget_shape_combine_maskgtk_tree_path_to_stringgtk_message_dialog_get_message_areagtk_widget_style_getgtk_text_buffer_paste_clipboardgtk_window_deiconifygtk_tree_view_get_headers_visiblegtk_viewport_set_shadow_typegtk_paint_handlegtk_widget_get_directiongtk_icon_view_select_pathgtk_gamma_curve_get_typegtk_check_menu_item_newgtk_text_iter_get_chars_in_linegtk_tree_selection_unselect_itergtk_statusbar_removegtk_menu_get_typegtk_dialog_get_typegtk_drag_finishgtk_file_chooser_add_filtergtk_tool_button_get_typegtk_file_filter_add_mime_typegtk_text_view_newgtk_menu_tool_button_get_typegtk_grab_addgtk_tree_view_set_modelgtk_text_buffer_get_iter_at_markgtk_clist_thawgtk_tree_view_column_get_sizinggtk_text_view_set_accepts_tabgtk_text_get_lengthgtk_window_get_gravitygtk_separator_get_typegtk_scale_set_digitsgtk_scale_set_draw_valuegtk_text_child_anchor_get_typegtk_widget_queue_resizegtk_micro_versiongtk_tree_model_iter_n_childrengtk_text_buffer_place_cursorgtk_hscrollbar_newgtk_button_box_get_typegtk_widget_queue_drawgtk_tree_view_set_headers_clickablegtk_text_view_set_justificationgtk_icon_view_get_visible_rangegtk_window_set_keep_abovegtk_box_pack_startgtk_tree_path_new_firstgtk_vseparator_get_typegtk_button_set_focus_on_clickgtk_tool_button_newgtk_spin_button_set_valuegtk_misc_set_alignmentgtk_font_selection_dialog_get_font_namegtk_option_menu_newgtk_text_insertgtk_text_tag_get_typegtk_window_set_transient_forgtk_window_get_positiongtk_button_newgtk_text_iter_get_textgtk_widget_get_settingsgtk_tree_view_column_set_resizablegtk_widget_add_acceleratorgtk_clist_get_hadjustmentgtk_font_selection_get_typegtk_clipboard_get_ownergtk_menu_bar_set_pack_directiongtk_text_iter_get_typegtk_tree_view_column_get_widthgtk_cell_layout_set_attributesgtk_tree_view_column_set_sizinggtk_list_clear_itemsgtk_text_buffer_get_textgtk_tree_view_get_columnsgtk_spin_button_get_adjustmentgtk_message_dialog_newgtk_paint_expandergtk_editable_get_positiongtk_color_selection_palette_from_stringgtk_font_selection_dialog_newgtk_tree_model_get_iter_from_stringgtk_event_box_get_typegtk_file_chooser_set_select_multiplegtk_text_tag_table_get_typegtk_container_set_border_widthgtk_dialog_rungtk_text_buffer_get_line_countgtk_window_set_modalgtk_scrollbar_get_typegtk_text_buffer_get_typegtk_tree_selection_unselect_allgtk_notebook_popup_disablegtk_object_get_typegtk_widget_get_modifier_stylegtk_label_getgtk_tooltips_get_typegtk_label_parse_ulinegtk_paint_checkgtk_scrolled_window_get_typegtk_text_buffer_get_selection_boundsgtk_cell_renderer_set_fixed_sizegtk_button_set_labelgtk_im_context_filter_keypressgtk_paint_tabgtk_vscrollbar_get_typegtk_falsegtk_paint_arrowgtk_binding_entry_cleargtk_widget_get_displaygtk_misc_get_typegtk_pixmap_newgtk_text_attributes_get_typegtk_tree_view_column_cell_get_sizegtk_bin_get_typegtk_text_buffer_cut_clipboardgtk_clist_get_typegtk_label_set_text_with_mnemonicgtk_separator_menu_item_newgtk_color_selection_set_previous_colorgtk_paint_vlinegtk_editable_select_regiongtk_widget_get_size_requestgtk_notebook_get_typegtk_toggle_action_get_typegtk_tree_selection_unselect_pathgtk_widget_queue_clear_areagtk_tree_view_insert_columngtk_icon_view_get_selected_itemsgtk_cell_layout_cleargtk_widget_set_sensitivegtk_get_current_event_timegtk_progress_bar_set_fractiongtk_label_get_textgtk_plug_get_typegtk_icon_view_set_orientationgtk_cell_layout_set_cell_data_funcgtk_widget_get_ancestorgtk_tree_view_column_set_sort_ordergtk_label_set_labelgtk_paint_flat_boxgtk_container_addgtk_tree_view_column_new_with_attributesgtk_type_classgtk_entry_set_editablegtk_label_get_typegtk_style_unrefgtk_file_chooser_set_current_namegtk_style_attachgtk_selection_clear_targetsgtk_adjustment_get_valuegtk_tree_path_comparegtk_window_add_accel_groupgtk_notebook_newgtk_editable_insert_textgtk_radio_menu_item_get_typegtk_tree_view_remove_columngtk_tree_view_column_set_alignmentgtk_widget_get_toplevelgtk_action_get_typegtk_frame_newgtk_file_filter_newgtk_hruler_get_typegtk_text_iter_get_line_offsetgtk_border_get_typegtk_window_resizegtk_widget_modify_basegtk_widget_add_eventsgtk_image_new_from_pixbufgtk_cell_editable_get_typegtk_editable_get_selection_boundsgtk_text_buffer_copy_clipboardgtk_tree_path_freegtk_text_set_pointgtk_menu_item_get_submenugtk_text_layout_get_typegtk_text_buffer_get_start_itergtk_menu_item_get_typegtk_tree_get_typegtk_window_fullscreengtk_tree_view_column_set_clickablegtk_widget_set_usizegtk_icon_view_scroll_to_pathgtk_adjustment_newgtk_frame_set_label_widgetgtk_combo_box_entry_new_with_modelgtk_spin_button_newgtk_tree_selection_get_typegtk_cell_renderer_toggle_set_activegtk_clist_unselect_allgtk_tree_view_get_cell_areagtk_list_store_newgtk_rc_parsegtk_widget_get_stylegtk_tree_drag_source_get_typegtk_calendar_get_dategtk_vbox_get_typegtk_tree_view_scroll_to_pointgtk_file_chooser_button_get_typegtk_tree_view_move_column_aftergtk_paint_focusgtk_tree_view_column_set_min_widthgtk_table_get_typegtk_widget_unrefgtk_menu_newgtk_tree_view_column_set_titlegtk_text_buffer_get_iter_at_linegtk_color_button_get_typegtk_tree_sortable_get_typegtk_window_unfullscreengtk_check_menu_item_get_typegtk_menu_item_new_with_labelgtk_icon_set_render_icongtk_check_button_get_typegtk_file_chooser_set_filenamegtk_menu_bar_get_typegtk_tree_view_column_get_fixed_widthgtk_file_filter_set_namegtk_text_buffer_get_char_countgtk_clist_cleargtk_tree_view_column_get_visiblegtk_notebook_reorder_childgtk_get_event_widgetgtk_window_set_keep_belowgtk_entry_get_textgtk_widget_set_colormapgtk_text_view_scroll_to_markgtk_tree_selection_get_selectedgtk_range_set_update_policygtk_accessible_get_typegtk_timeout_addgtk_window_set_type_hintgtk_scrolled_window_set_shadow_typegtk_preview_get_typegtk_progress_bar_newgtk_check_menu_item_get_activegtk_fixed_newgtk_invisible_get_typegtk_hscale_get_typegtk_alignment_setgtk_file_chooser_get_filtergtk_entry_get_typegtk_list_item_newgtk_widget_set_double_bufferedgtk_vpaned_get_typegtk_initgtk_text_view_set_wrap_modegtk_widget_queue_draw_areagtk_cell_layout_get_typegtk_accel_group_get_typegtk_range_get_update_policygtk_window_set_geometry_hintsgtk_separator_tool_item_get_typegtk_calendar_display_optionsgtk_hbox_newgtk_tree_view_get_columngtk_accel_group_newgtk_tree_selection_set_select_functiongtk_selection_add_targetsgtk_box_get_typegtk_accel_label_get_accel_widthgtk_dialog_newgtk_icon_factory_get_typegtk_major_versiongtk_expander_get_typegtk_accelerator_get_default_mod_maskgtk_file_chooser_get_typegtk_frame_set_shadow_typegtk_hbutton_box_get_typegtk_widget_unparentgtk_ctree_node_get_typegtk_tree_view_get_vadjustmentgtk_window_set_decoratedgtk_spin_button_set_digitsgtk_container_get_typegtk_text_view_set_editablegtk_tree_view_column_set_max_widthgtk_paned_get_typegtk_settings_set_string_propertygtk_truegtk_hseparator_get_typegtk_window_get_skip_taskbar_hintgtk_accel_label_get_typegtk_check_menu_item_set_activegtk_clipboard_getgtk_menu_get_activegtk_toggle_button_get_typegtk_widget_mapgtk_cell_renderer_get_typegtk_file_chooser_set_filtergtk_paint_resize_gripgtk_adjustment_set_valuegtk_scrolled_window_get_vadjustmentgtk_misc_get_alignmentgtk_progress_set_show_textgtk_input_dialog_get_typegtk_menu_popupgtk_notebook_get_nth_pagegtk_layout_get_typegtk_cell_renderer_pixbuf_get_typegtk_tree_view_get_bin_windowgtk_notebook_next_pagegtk_fixed_movegtk_file_filter_get_typegtk_window_get_typegtk_signal_connect_fullgtk_tree_view_column_get_resizablegtk_text_buffer_select_rangegtk_tree_view_get_visible_rangegtk_notebook_set_tab_posgtk_menu_item_toggle_size_allocategtk_grab_get_currentgtk_text_buffer_set_textgtk_layout_putgtk_progress_bar_set_orientationgtk_font_button_get_typegtk_viewport_get_typegtk_tearoff_menu_item_get_typegtk_box_pack_start_defaultsgtk_combo_box_get_activegtk_tree_model_get_valuegtk_button_new_with_labelgtk_text_buffer_get_end_itergtk_tree_drag_dest_get_typegtk_range_get_valuegtk_widget_is_focusgtk_button_get_typegtk_toggle_button_new_with_labelgtk_radio_button_new_with_labelgtk_text_forward_deletegtk_button_set_use_underlinegtk_widget_set_stylegtk_widget_showgtk_list_store_set_valuegtk_button_new_with_mnemonicgtk_file_chooser_get_filenamegtk_icon_view_get_typegtk_hpaned_newgtk_menu_item_activategtk_paint_boxgtk_selection_data_get_typegtk_selection_owner_setgtk_window_has_toplevel_focusgtk_tree_view_newgtk_option_menu_get_typegtk_paint_box_gapgtk_tree_view_get_selectiongtk_menu_set_accel_groupgtk_range_get_typegtk_old_editable_get_typegtk_file_chooser_get_filenamesgtk_notebook_get_menu_labelgtk_widget_get_screengtk_menu_repositiongtk_alignment_set_paddinggtk_window_maximizegtk_icon_view_get_cursorgtk_hscrollbar_get_typegtk_combo_box_get_modelgtk_frame_get_label_widgetgtk_dialog_set_default_responsegtk_file_selection_get_filenamegtk_tree_selection_path_is_selectedgtk_notebook_append_page_menugtk_window_group_get_typegtk_layout_get_vadjustmentgtk_radio_action_get_typegtk_drawing_area_get_typegtk_tree_view_column_get_cell_renderersgtk_hbox_get_typegtk_tree_view_column_get_typegtk_label_set_textgtk_toggle_button_get_activegtk_box_get_spacinggtk_tree_path_new_from_indicesgtk_file_filter_add_patterngtk_clipboard_wait_for_textgtk_window_unmaximizegtk_notebook_set_show_tabsgtk_text_buffer_get_iter_at_offsetgtk_widget_realizegtk_combo_box_set_activegtk_key_snooper_installgtk_calendar_select_monthgtk_widget_show_allgtk_calendar_newgtk_widget_modify_fontgtk_dialog_add_buttongtk_radio_menu_item_newgtk_hscale_newgtk_color_selection_dialog_newgtk_handle_box_get_typegtk_text_attr_appearance_typegtk_tree_model_row_insertedgtk_option_menu_set_menugtk_curve_get_typegtk_window_set_policygtk_vpaned_newgtk_editable_get_typegtk_style_newgtk_progress_bar_pulsegtk_button_set_reliefgtk_set_localegtk_window_set_titlegtk_image_newgtk_icon_view_set_cursorgtk_icon_view_get_modelgtk_widget_style_get_propertygtk_im_context_resetgtk_clipboard_wait_for_contentsgtk_widget_size_requestgtk_icon_view_select_allgtk_menu_item_set_submenugtk_list_store_get_typeXGetInputFocusXSetGraphicsExposuresXVisualIDFromVisualXQueryKeymapXDefaultScreenXScreenNumberOfScreenXRootWindowXRootWindowOfScreenXDefaultScreenOfDisplayg_type_check_class_castg_type_check_instance_castg_string_appendgdk_pixbuf_versiongdk_pixbuf_error_quarkgdk_pixbuf_minor_versiongdk_pixbuf_flipgdk_pixbuf_add_alphagdk_pixbuf_micro_versiongdk_pixbuf_savegdk_pixbuf_major_versiongdk_pixbuf_unrefgdk_pixbuf_refg_main_context_refg_main_context_unrefg_hook_insert_beforeg_value_get_typeg_signal_has_handler_pendingg_signal_handler_findg_type_plugin_get_typeg_type_test_flagsg_value_array_get_typeg_type_check_instanceg_signal_nameg_mem_chunk_freeg_io_channel_error_quarkg_static_mutex_get_mutex_implg_main_context_defaultg_rand_intg_main_context_newg_log_remove_handlerg_thread_use_default_implg_main_context_get_poll_funcg_thread_error_quarkglib_mem_profiler_tableg_main_context_set_poll_funcglib_minor_versiong_mem_chunk_allocglib_major_versiong_thread_create_fullg_threads_got_initializedglib_binary_ageg_shell_error_quarkglib_micro_versiong_thread_selfg_timeout_addg_dataset_id_remove_no_notifyg_array_prepend_valsg_log_set_handlerg_main_context_releaseg_main_context_acquireg_thread_functions_for_glib_useg_spawn_error_quarkg_mem_chunk_alloc0g_io_add_watchg_string_append_cglib_interface_age__cxa_finalizeg_thread_initpango_font_get_typepango_font_family_is_monospacepango_layout_iter_get_char_extentspango_font_metrics_get_typepango_fontset_get_typepango_layout_get_linepango_font_map_get_typepango_color_get_typepango_glyph_string_get_typepango_fontset_simple_get_typepango_layout_iter_next_charpango_matrix_get_typepango_font_family_get_typepango_matrix_translatepango_font_description_get_size_is_absolutepango_language_get_typepango_font_face_get_typecairo_versioncairo_ps_surface_createcairo_arc_negativecairo_ps_surface_create_for_streamcairo_image_surface_createcairo_surface_write_to_png_streamcairo_font_extentscairo_svg_surface_createcairo_surface_write_to_pngcairo_clip_extentscairo_set_line_capcairo_text_extentscairo_set_line_joincairo_ps_surface_dsc_begin_setupcairo_svg_surface_create_for_streamatk_hyperlink_get_typeatk_relation_set_get_typeatk_streamable_content_get_typeatk_gobject_accessible_get_typeatk_relation_get_typeatk_document_get_typeatk_state_set_get_typeatk_value_get_typeatk_util_get_typeatk_hypertext_get_typeatk_editable_text_get_typeatk_registry_get_typeatk_table_get_typepango_cairo_font_map_get_typepango_cairo_font_get_typepango_cairo_update_layoutpango_cairo_show_layout_linenl_langinfoiconv_opensysconfdladdrstrcolliconvsetenviconv_closedlclosembrlenmbrtowcwcscoll__libc_start_mainwcrtombtowlowerdlsymdlopendlerrorsetlocaletowupper__errno_locationlibgdk-x11-2.0.so.0libgtk-x11-2.0.so.0libX11.so.6libgdk_pixbuf-2.0.so.0libgobject-2.0.so.0libglib-2.0.so.0libgthread-2.0.so.0libgmodule-2.0.so.0libpango-1.0.so.0libcairo.so.2libatk-1.0.so.0libpangocairo-1.0.so.0libGL.so.1libm.so.6libc.so.6GLIBC_2.34GLIBC_2.2.5}}ui }- F(W08@HPX>`Bhpx| "ȏHЏe؏* (08@ H P X ` hpxȐАؐ !"#$ %(&0'8(@)H*P+X,`-h.p/x0123456789ȑ:Б;ؑ<=>?@ABCD E(F0G8H@IHJPKXL`MhNpOxPQRSTUVWXYȒZВ[ؒ\]^_`abcd e(f0g8h@iHjPkXl`mhnpoxpqrstuvwxyȓzГ{ؓ|}~ (08@HPX`hpxȔДؔ (08@HPX`hpxȕЕؕ (08@HPX`hpxȖЖؖ (08@HPX`hpxȗЗؗ (0 8 @ H P X`hpxȘИؘ !"#$%& '((0)8*@+H,P.X/`0h1p2x3456789:;<ș=Й>ؙ?@ABCDEGH I(J0K8L@MHNPOXP`QhRpSxTUVXYZ[\]^Ț_К`ؚabcdefghi j(k0l8m@nHoPpXq`rhsptxuvwxyz{|}~țЛ؛ (08@HPX`hpxȜМ؜ (08@HPX`hpxȝН؝ (08@HPX`hpxȞО؞ (08@HPX`hpxȟП؟      (08@HPX`hpx !"#Ƞ$Р%ؠ&'()*+,-. /(00182@3H4P5X6`7h8p9x:;<=?@ACDEȡFСGءHIJKLMNOP Q(R0S8T@UHVPWXX`YhZp[x\]^_`abcdeȢfТgآhijklmnop q(r0s8t@uHvPwXx`yhzp{x|}~ȣУأ (08@HPX`hpxȤФؤ (08@HPX`hpxȥХإ (08@HPX`hpxȦЦئ (08@HPX`hpxȧ Ч ا    (08@HPX`hpx !"#$%&'()Ȩ*Ш+ب,-./01234 5(60788@9H:P;X<`=h>p?x@ABCDEFGHIȩJЩKةLMNOPQRST U(V0W8X@YHZP[X\`]h^p_x`abcdefghiȪjЪkتlmnopqrst u(v0w8x@yHzP{X}`~hpxȫЫث (08@HPX`hpxȬЬج (08@HPX`hpxȭЭح (08@HPX`hpxȮЮخ (08@HPX`hpx    ȯЯد (08@ H!P#X$`%h&p'x()*+,-./01Ȱ2а3ذ456789:;< =(>0?8@@AHBPCXD`EhFpGxIJKLMNOPQRȱSбTرUVWXYZ[\] ^(_0`8a@bHcPdXf`ghhpixjklmnopqrsȲtвuزvwxyz{|}~ (08@HPX`hpxȳгس (08@HPX`hpxȴдش (08@HPX`hpxȵеص (08@HPX`hpxȶжض (08@HPX`h p x   ȷзط  (!0"8#@$H%P&X'`(h)p+x,-./012345ȸ6и7ظ89:;<=>?@ A(B0C8D@EHFPGXH`IhJpKxLMNOPHH)ϤHtH5Ϥ%Ϥ@%Ϥh%Ϥh%Ϥh%Ϥh%Ϥh%Ϥh%Ϥh%Ϥhp%Ϥh`%Ϥh P%zϤh @%rϤh 0%jϤh %bϤh %ZϤh%RϤh%JϤh%BϤh%:Ϥh%2Ϥh%*Ϥh%"Ϥh%Ϥh%Ϥhp% Ϥh`%ϤhP%Τh@%Τh0%Τh %Τh%Τh%Τh%Τh %Τh!%Τh"%Τh#%Τh$%Τh%%Τh&%Τh'p%Τh(`%Τh)P%zΤh*@%rΤh+0%jΤh, %bΤh-%ZΤh.%RΤh/%JΤh0%BΤh1%:Τh2%2Τh3%*Τh4%"Τh5%Τh6%Τh7p% Τh8`%Τh9P%ͤh:@%ͤh;0%ͤh< %ͤh=%ͤh>%ͤh?%ͤh@%ͤhA%ͤhB%ͤhC%ͤhD%ͤhE%ͤhF%ͤhGp%ͤhH`%ͤhIP%zͤhJ@%rͤhK0%jͤhL %bͤhM%ZͤhN%RͤhO%JͤhP%BͤhQ%:ͤhR%2ͤhS%*ͤhT%"ͤhU%ͤhV%ͤhWp% ͤhX`%ͤhYP%̤hZ@%̤h[0%̤h\ %̤h]%̤h^%̤h_%̤h`%̤ha%̤hb%̤hc%̤hd%̤he%̤hf%̤hgp%̤hh`%̤hiP%z̤hj@%r̤hk0%j̤hl %b̤hm%Z̤hn%R̤ho%J̤hp%B̤hq%:̤hr%2̤hs%*̤ht%"̤hu%̤hv%̤hwp% ̤hx`%̤hyP%ˤhz@%ˤh{0%ˤh| %ˤh}%ˤh~%ˤh%ˤh%ˤh%ˤh%ˤh%ˤh%ˤh%ˤh%ˤhp%ˤh`%ˤhP%zˤh@%rˤh0%jˤh %bˤh%Zˤh%Rˤh%Jˤh%Bˤh%:ˤh%2ˤh%*ˤh%"ˤh%ˤh%ˤhp% ˤh`%ˤhP%ʤh@%ʤh0%ʤh %ʤh%ʤh%ʤh%ʤh%ʤh%ʤh%ʤh%ʤh%ʤh%ʤh%ʤhp%ʤh`%ʤhP%zʤh@%rʤh0%jʤh %bʤh%Zʤh%Rʤh%Jʤh%Bʤh%:ʤh%2ʤh%*ʤh%"ʤh%ʤh%ʤhp% ʤh`%ʤhP%ɤh@%ɤh0%ɤh %ɤh%ɤh%ɤh%ɤh%ɤh%ɤh%ɤh%ɤh%ɤh%ɤh%ɤhp%ɤh`%ɤhP%zɤh@%rɤh0%jɤh %bɤh%Zɤh%Rɤh%Jɤh%Bɤh%:ɤh%2ɤh%*ɤh%"ɤh%ɤh%ɤhp% ɤh`%ɤhP%Ȥh@%Ȥh0%Ȥh %Ȥh%Ȥh%Ȥh%Ȥh%Ȥh%Ȥh%Ȥh%Ȥh%Ȥh%Ȥh%Ȥhp%Ȥh`%ȤhP%zȤh@%rȤh0%jȤh %bȤh%ZȤh%RȤh%JȤh%BȤh%:Ȥh%2Ȥh%*Ȥh%"Ȥh%Ȥh%Ȥhp% Ȥh`%ȤhP%Ǥh@%Ǥh0%Ǥh %Ǥh%Ǥh%Ǥh%Ǥh%Ǥh%Ǥh%Ǥh%Ǥh%Ǥh%Ǥh%Ǥhp%Ǥh`%Ǥh P%zǤh @%rǤh 0%jǤh  %bǤh %ZǤh%RǤh%JǤh%BǤh%:Ǥh%2Ǥh%*Ǥh%"Ǥh%Ǥh%Ǥhp% Ǥh`%ǤhP%Ƥh@%Ƥh0%Ƥh %Ƥh%Ƥh%Ƥh%Ƥh %Ƥh!%Ƥh"%Ƥh#%Ƥh$%Ƥh%%Ƥh&%Ƥh'p%Ƥh(`%Ƥh)P%zƤh*@%rƤh+0%jƤh, %bƤh-%ZƤh.%RƤh/%JƤh0%BƤh1%:Ƥh2%2Ƥh3%*Ƥh4%"Ƥh5%Ƥh6%Ƥh7p% Ƥh8`%Ƥh9P%Ťh:@%Ťh;0%Ťh< %Ťh=%Ťh>%Ťh?%Ťh@%ŤhA%ŤhB%ŤhC%ŤhD%ŤhE%ŤhF%ŤhGp%ŤhH`%ŤhIP%zŤhJ@%rŤhK0%jŤhL %bŤhM%ZŤhN%RŤhO%JŤhP%BŤhQ%:ŤhR%2ŤhS%*ŤhT%"ŤhU%ŤhV%ŤhWp% ŤhX`%ŤhYP%ĤhZ@%Ĥh[0%Ĥh\ %Ĥh]%Ĥh^%Ĥh_%Ĥh`%Ĥha%Ĥhb%Ĥhc%Ĥhd%Ĥhe%Ĥhf%Ĥhgp%Ĥhh`%ĤhiP%zĤhj@%rĤhk0%jĤhl %bĤhm%ZĤhn%RĤho%JĤhp%BĤhq%:Ĥhr%2Ĥhs%*Ĥht%"Ĥhu%Ĥhv%Ĥhwp% Ĥhx`%ĤhyP%ähz@%äh{0%äh| %äh}%äh~%äh%äh%äh%äh%äh%äh%äh%äh%ähp%äh`%ähP%zäh@%räh0%jäh %bäh%Zäh%Räh%Jäh%Bäh%:äh%2äh%*äh%"äh%äh%ähp% äh`%ähP%¤h@%¤h0%¤h %¤h%¤h%¤h%¤h%¤h%¤h%¤h%¤h%¤h%¤h%¤hp%¤h`%¤hP%z¤h@%r¤h0%j¤h %b¤h%Z¤h%R¤h%J¤h%B¤h%:¤h%2¤h%*¤h%"¤h%¤h%¤hp% ¤h`%¤hP%h@%h0%h %h%h%h%h%h%h%h%h%h%h%hp%h`%hP%zh@%rh0%jh %bh%Zh%Rh%Jh%Bh%:h%2h%*h%"h%h%hp% h`%hP%h@%h0%h %h%h%h%h%h%h%h%h%h%h%hp%h`%hP%zh@%rh0%jh %bh%Zh%Rh%Jh%Bh%:h%2h%*h%"h%h%hp% h`%hP%h@%h0%꿤h %⿤h%ڿh%ҿh%ʿh%¿h%h%h%h%h%h%hp%h`%h P%zh @%rh 0%jh  %bh %Zh%Rh%Jh%Bh%:h%2h%*h%"h%h%hp% h`%hP%h@%h0%꾤h %⾤h%ھh%Ҿh%ʾh %¾h!%h"%h#%h$%h%%h&%h'p%h(`%h)P%zh*@%rh+0%jh, %bh-%Zh.%Rh/%Jh0%Bh1%:h2%2h3%*h4%"h5%h6%h7p% h8`%h9P%h:@%h;0%꽤h< %⽤h=%ڽh>%ҽh?%ʽh@%½hA%hB%hC%hD%hE%hF%hGp%hH`%hIP%zhJ@%rhK0%jhL %bhM%ZhN%RhO%JhP%BhQ%:hR%2hS%*hT%"hU%hV%hWp% hX`%hYP%hZ@%h[0%꼤h\ %⼤h]%ڼh^%Ҽh_%ʼh`%¼ha%hb%hc%hd%he%hf%hgp%hh`%hiP%zhj@%rhk0%jhl %bhm%Zhn%Rho%Jhp%Bhq%:hr%2hs%*ht%"hu%hv%hwp% hx`%hyP%hz@%h{0%껤h| %⻤h}%ڻh~%һh%ʻh%»h%h%h%h%h%h%hp%h`%hP%zh@%rh0%jh %bh%Zh%Rh%Jh%Bh%:h%2h%*h%"h%h%hp% h`%hP%h@%h0%꺤h %⺤h%ںh%Һh%ʺh%ºh%h%h%h%h%h%hp%h`%hP%zh@%rh0%jh %bh%Zh%Rh%Jh%Bh%:h%2h%*h%"h%h%hp% h`%hP%h@%h0%깤h %⹤h%ڹh%ҹh%ʹh%¹h%h%h%h%h%h%hp%h`%hP%zh@%rh0%jh %bh%Zh%Rh%Jh%Bh%:h%2h%*h%"h%h%hp% h`%hP%h@%h0%긤h %⸤h%ڸh%Ҹh%ʸh%¸h%h%h%h%h%h%hp%h`%hP%zh@%rh0%jh %bh%Zh%Rh%Jh%Bh%:h%2h%*h%"h%h%hp% h`%hP%h@%h0%귤h %ⷤh%ڷh%ҷh%ʷh%·h%h%h%h%h%h%hp%h`%h P%zh @%rh 0%jh  %bh %Zh%Rh%Jh%Bh%:h%2h%*h%"h%h%hp% h`%hP%h@%h0%궤h %ⶤh%ڶh%Ҷh%ʶh %¶h!%h"%h#%h$%h%%h&%h'p%h(`%h)P%zh*@%rh+0%jh, %bh-%Zh.%Rh/%Jh0%Bh1%:h2%2h3%*h4%"h5%h6%h7p% h8`%h9P%h:@%h;0%굤h< %ⵤh=%ڵh>%ҵh?%ʵh@%µhA%hB%hC%hD%hE%hF%hGp%hH`%hIP%zhJ@%rhK0%jhL %bhM%ZhN%RhO%JhP%BhQ%:hR%2hS%*hT%"hU%hV%hWp% hX`%hYP%hZ@%h[0%괤h\ %ⴤh]%ڴh^%Ҵh_%ʴh`%´ha%hb%hc%hd%he%hf%hgp%hh`%hiP%zhj@%rhk0%jhl %bhm%Zhn%Rho%Jhp%Bhq%:hr%2hs%*ht%"hu%hv%hwp% hx`%hyP%hz@%h{0%곤h| %ⳤh}%ڳh~%ҳh%ʳh%³h%h%h%h%h%h%hp%h`%hP%zh@%rh0%jh %bh%Zh%Rh%Jh%Bh%:h%2h%*h%"h%h%hp% h`%hP%h@%h0%겤h %Ⲥh%ڲh%Ҳh%ʲh%²h%h%h%h%h%h%hp%h`%hP%zh@%rh0%jh %bh%Zh%Rh%Jh%Bh%:h%2h%*h%"h%h%hp% h`%hP%h@%h0%걤h %Ɽh%ڱh%ұh%ʱh%±h%h%h%h%h%h%hp%h`%hP%zh@%rh0%jh %bh%Zh%Rh%Jh%Bh%:h%2h%*h%"h%h%hp% h`%hP%h@%h0%갤h %Ⱔh%ڰh%Ұh%ʰh%°h%h%h%h%h%h%hp%h`%hP%zh@%rh0%jh %bh%Zh%Rh%Jh%Bh%:h%2h%*h%"h%h%hp% h`%hP%h@%h0%ꯤh %⯤h%گh%үh%ʯh%¯hп%h%h鰿%h頿%h鐿%h逿%hp%h`%h P%zh @%rh 0%jh  %bh %Zh%Rh%Jh%Bhо%:h%2h鰾%*h頾%"h鐾%h逾%hp% h`%hP%h@%h0%ꮤh %⮤h%ڮh%Үh%ʮh %®h!н%h"%h#鰽%h$頽%h%鐽%h&逽%h'p%h(`%h)P%zh*@%rh+0%jh, %bh-%Zh.%Rh/%Jh0%Bh1м%:h2%2h3鰼%*h4頼%"h5鐼%h6逼%h7p% h8`%h9P%h:@%h;0%ꭤh< %⭤h=%ڭh>%ҭh?%ʭh@%­hAл%hB%hC鰻%hD頻%hE鐻%hF逻%hGp%hH`%hIP%zhJ@%rhK0%jhL %bhM%ZhN%RhO%JhP%BhQк%:hR%2hS鰺%*hT頺%"hU鐺%hV逺%hWp% hX`%hYP%hZ@%h[0%ꬤh\ %⬤h]%ڬh^%Ҭh_%ʬh`%¬haй%hb%hc鰹%hd頹%he鐹%hf逹%hgp%hh`%hiP%zhj@%rhk0%jhl %bhm%Zhn%Rho%Jhp%Bhqи%:hr%2hs鰸%*ht頸%"hu鐸%hv逸%hwp% hx`%hyP%hz@%h{0%ꫤh| %⫤h}%ګh~%ҫh%ʫh%«hз%h%h鰷%h頷%h鐷%h逷%hp%h`%hP%zh@%rh0%jh %bh%Zh%Rh%Jh%Bhж%:h%2h鰶%*h頶%"h鐶%h逶%hp% h`%hP%h@%h0%ꪤh %⪤h%ڪh%Ҫh%ʪh%ªhе%h%h鰵%h頵%h鐵%h逵%hp%h`%hP%zh@%rh0%jh %bh%Zh%Rh%Jh%Bhд%:h%2h鰴%*h頴%"h鐴%h逴%hp% h`%hP%h@%h0%ꩤh %⩤h%کh%ҩh%ʩh%©hг%h%h鰳%h頳%h鐳%h逳%hp%h`%hP%zh@%rh0%jh %bh%Zh%Rh%Jh%Bhв%:h%2h鰲%*h頲%"h鐲%h進%hp% h`%hP%h@%h0%ꨤh %⨤h%ڨh%Ҩh%ʨh%¨hб%h%h鰱%h頱%h鐱%h週%hp%h`%hP%zh@%rh0%jh %bh%Zh%Rh%Jh%Bhа%:h%2h鰰%*h頰%"h鐰%h逰%hp% h`%hP%h@%h0%ꧤh %⧤h%ڧh%ҧh%ʧh%§hЯ%h%h鰯%h頯%h鐯%h逯%hp%h`%h P%zh @%rh 0%jh  %bh %Zh%Rh%Jh%BhЮ%:h%2h鰮%*h頮%"h鐮%h逮%hp% h`%hP%h@%h0%ꦤh %⦤h%ڦh%Ҧh%ʦh %¦h!Э%h"%h#鰭%h$頭%h%鐭%h&逭%h'p%h(`%h)P%zh*@%rh+0%jh, %bh-%Zh.%Rh/%Jh0%Bh1Ь%:h2%2h3鰬H=yHrH9tH|Ht H=IH5BH)HH?HHHtH{HtfD=Tu3UH={Ht H={cT]f.ff.@gXPHTH-TPH=XHgPH HGXHrHG`H1"H1I^HH q8Ha@HHHAHHPTIBHBH@B`ZHSH-SRUHdH@ťHƀXH/ťH8H%ťHHHxH ťH8H5y+PHŏHĥH8H5|PHHĥH8H5χPHHĥH8H5JPH>HĥH8H5UxPH1HzĥH8H5[PH4H]ĥH8H5 >PHH@ĥH8H5d!PHH#ĥH8H5 rPHHĥH8H5OHHåH8H5OHCHåH8H5OHvHåH8H5շOHiHåH8H5ƧsOH̸HuåH8H5;VOHHXåH8H5>9OHH;åH8H5OHźHåH8H5NHXHåH8H5G;NHH¥H8H5LNH>H¥H8H5\NHH¥H8H5oNHH¥H8H5nNHHp¥H8H5QNHHS¥H8H5)4NHH6¥H8H5쩨NH@H¥H8H5ĨMHCHH8H5ըMH6HH8H5MHHH8H5|MHH8OeH]UHHd$HH=rHH HH]UHHd$HHH=rHH HH]UHHd$HHHH=rHH HH]UHHd$HHHHH=rHHV HH]UHHd$HHHHMH=rHH HH]UHHd$HHHHMMH=rHH HH]UHHd$HHHHMMLMH=rHH HH]HHH$IHHLH)s HtIjt7t IȈHtfIfHt IHMIu?MItHHHIuIM~HIuI r Hs6H HDLTHBLRIHDLTHBLRuIy DD@H€uH@H@LLLTLJLRLLLTLJLRLLLTLJLRLLLTLJLRuIIjLI|at6t HʊIȈtHfIft HIMIu=MItHHIHuIM~ffffHʊIȈuI r Hr4H HDLTHBLRIHDLHBLuI} HD@uH@H@LL8LT0LJ8LR0LL(LT LJ(LR LLLTLJLRLLLLJLuIIjIHHHyIIMt1t DHHt fDHHt DHHHH?Hu2HHHtLHHuH~ DHHuH= s;fffH@LALALALAHLALALALAuDH@LALALALAHLALALALAuRfnHHIf`HHf`tMHfpfoAL)ftf% ffffAoHftfu H9wHHDH9vfnHHIfaHHfptLHfoAL)AuOfuf%fffAoHHfufu H9wHHDH9vffqfqfftf%HE1DfAoHftAfD AD!%UUu H9wHHDH9vHIHHIt"L)L)fffBB:uIu1B H)H)8Ht  H 8HtH H H鯤8HtHɯ8HtHHHHHH7H>7HHHHHHHHHHH7HHH>HHH7HHHHUHHd$}fE%H]UHHd$]EH]UHHd$m8>z&s(,r @&H]UHHd$}fMf? fMmmmmH]UHHd$}fMf? fMmmmH]UHHd$}fMf? fMmm}HEmH]UHHd$m}HEH]HHoLgLoLw L(HD$HG0H$HG81HHoLgLoLw L(Hg0g8V[Hd$HH=XHƹ HH oXHPHHqXHHH HsXHH H HHd$Hd$HgHHt =FXHCXHd$SHfHHt =XHX[Hd$HHd$Hd$HcHHcHHd$Hd$Hc~Hd$Hd$HHcHcH¿Hd$Hd$HHHcH1Hd$Hd$HHHcH¿uHd$Hd$HWHd$Hd$HHRHd$Hd$HHHd$Hd$HP~Hd$Hd$HcHSHd$Hd$HT>Hd$SATAUH$pHM1HHbD$%=@t(HdHHt =VHV`Hߺ1Å|K(eIHt9qeIEHt&A]AEAEAEfAEMLH$A]A\[SATHd$HD;Aąt%H dHHt =MUHJU8tH{eHdDHd$A\[SATAUAVHd$HH؋PHc@H9|.HKHc3HS;AEM11DcCH؋PHPIAFCAFCI>tMLHd$A^A]A\[Hd$Hc^Hd$Hd$HHHt HPH uHHHHPHcHA Hd$Hd$HHcMHd$Hd$HHcHd$Hd$9Hd$Hd$HHcHcHM1=2Hd$Hd$HcHHd$Hd$Hc >Hd$Hd$HcHc!KHd$Hd$L $McLcHcHH Hd$Hd$HH Hd$Hd$HcHH Hd$Hd$HHHcH¿Hd$Hd$'1Hd$Hd$HHHYHd$Hd$HHHcHAHd$Hd$HH#Hd$Hd$HHOHd$Hd$HH`Hd$Hd$HHcaHd$Hd$HHcHd$Ht HPH8u1H fDH t=uHH)H5PLQM H#fDED:t IHIHtA9uمu A9=uIAII:u1@Á Á`ÁÁÁÁÃ%%%tt0S%wH!HHcHf3f-f'f!ffeff ffHc^HHtHtM:H HdMHff%[ScfH^HHtH*M:H HMHff%[H$HT[H$HHtHGHHtHHd$H䢤8tH#f+H$Hd$UHHd$HࢤffEH⢤EmUH] % %Hd$Hd$Hd$pHd$Hd$PHd$Hd$PHd$Hd$Hd$Hd$1Hd$Hd$Hd$Hd$H@HDALƁHǁHd$UHHHHxmH]HH~m‰ !HH H HHHHH)HH fHH9wIIII8 @HHH9wHHHHHHH> fHH9wHH~gHH H HHHHH)HH HH9wIIII8 @HHH9wHHHHHHH>HH9wH~HH>HHH9wHH|H?H9HHHH9s I8HL.;uHII)LH?HIILHI9wHHH|HH9HHHH9s I9HL/H;uHII)LH?HIILHI9wHM1HHHH)HHH)HH0fDDM)MMtM}HøHHH9wIIII 9IIIIL%DLLM)MMt HHH9wIIII9r HH :9H0DL)IHtM}HøHHH9w1HHHH)HHH)HH)DD;tDD;vHHHH9wIIII 8IIIILfLL;t HHH9wI?L9IIII9r HH :.H%;t;vHHHH9w1SATAUHIIHt1HL1HHt LHLHLA]A\[HH} IL1:u HII)LHI9v9uH1Hu1HHH9w1SATAUAVHd$H<$HAL3MuL,$CH<$uI>vI6HUHH<$tI6H<$1E!L$$M4$L,$LHd$A^A]A\[UHHd$H]LeHAHt[HuUDHH8tIDHHHHt H@HHt?HHIE!IHHUH]LeH]SATAUHIAHtXI<$tQI<$uHHvHtHtF}A rHH?H!uHtALADAv\H~WH9|OAH)HLbL,-IAFA:EuALI~HuM IL9}LA_A^A]A\[1H|8H9|0H6H9| HfDH@:9uHHH91HHu H~@p?u@:wu Hu1@ǃas @ǃ @%SATAUAVHd$HIA$E,$A|#E1fAAA<AֈE9Hd$A^A]A\[@ǃAs @ǃ @%SATAUAVHd$HIA$E,$A|#E1fAAA<AֈE9Hd$A^A]A\[|,ЃfDЉLkA  |,ЃfDЉLVkA  |#ЃfDЉ0 |/ЃfDHHLjA  H|/ЃfDHHLjA  H|$ЃfD0ȈHHd$0Hd$Hd$PHd$Hd$pHd$HHLiA  HHd$H@0Hx ѽHd$SATAUH$HHIILLHiA$H9}DA$HH)ƁH$H$LHHLLH$A]A\[SATAUH$HHIILLHA$H9}DA$HH)ƁH$H$LH HLLkH$A]A\[HHH;ʉHHffu(HDH>HH;@ǁDEDlj8Hf@|%f@~HH@H>H8Hf u HH Ff }+HDALI A I)DAgC H@H)H>H8HH&Hffu H.tHHH H(f@}ADHHHH?ILHIM Lf |HDADf`}f?Hҋ8!H>HSATAUAVAWHd$EHAHH III Hd$EEMMHd$ADLHd$E!IIHd$DEIHd$AEMMHd$AE!MMHd$E!AMHd$!AIHd$!!HH HDHH !ҿHH !HLH !HDHDHDHLH !H HLH !HLH !H‰HDHHH !J<LH !HHH !H!HH HH$H D$HHH0HHH0Ѓ`fD$ Et>D$%u3H4$|$HHT$HH:H;@Ɓ2Hfl$ H$HT$Hd$ A_A^A]A\[Hd$H<$!HHd$SATAUHd$Idgg f9|f1NHHH)H#u)Y7HHH?HfHHk%HHHH9tff~fHHHLLH?HIIIfEu/HkH5MdHI$HDID$HDID$HkHdH H$HD HD$HD HD$fEfAAHkH`eDT$fAD$f|$t>AHkH6eHH+eHLH<$Ht$AI$IT$AHkHdH I $HDID$IHHfA%HkHeDT$fAD$f|$t;AHkHXeHHMeHLH<$Ht$AI$IT$&AIkHeH I$HD ID$BHet11}HLIL$H2H9H;@Ɓ1HHd$ A]A\[UHH$HLLLLffHLf~ fDžf fDž*f} fDžf~ fDžHaf4H yafTffD=mafA9fDOf} f:)ff} fDžf;}fH8HEH fEf()$E(%fLH H@DžHH@HEHHHEf}H}ƅTf|If$ffD$ffD$HLTMHE1HK fD$ffD$ffD$ff$HLTMHE1HF fEft'f=t!HEHH!uHEfEf}f} H_ DȃfE)fHEHH9u-HDLa_HHf1HDLA_HHOf}tf -HEH@Hu?H) ffEHuH}_??f)EfEf=|f=HEHEHEHEfEZuܺHGfHuf}uHEHEHEHE HUHMH}HuE0VHEHUHEHEEȉEf}~6UHMHHH!HUUHuH}EHEHUHHuH}:EHEH}uHMHTE01HfEbLMLEHUHuH#NJH,HMHTE01HfEfAHMUHTHfEfDuE1f}f]HuH@f>(HEHHH@ljЉE$HHغHHHHHEEHUHEH!HEUȋE!ЉEHEHEE|HuH}HU|HEH H;MЋEЉEHMHuH}fHEHEE|HHHuH|EUTHUHEH!HEUE!ЉEfEf}IHPHEH9~ EH EIHPHEH9fEH E%AMfHEHHEHmfHHHUHHHETHUHEH!HEfEf}IHHUH9~H}uIHHUH9H}%AeDmDeDDAAfHH؉DETDD!AfEIHHUH9~EuEt)IHHUH9AǃfEIƄUfD;}}AHUHTAH fAf|SffD$ffD$EA)f$HDMLTMHHff;E}!HUHTE0H fAffD$ffD$ff$UA)ЃfD$HDMLTMHHHLLLLH]Hd$H<$)*Y]H,f~*f/ztfHd$Hd$H<$Hff&HHHH@AAADHHپHHH2Hd$Hd$H<$Hu?H)Hd$SATAUAVAWHd$H<$HLD$H9wE0KHu?H)fAHHIH !HDIIHfE~Iƹ@H)HHH HIHHH !H!IH1HIHIHH)IHDIIL9vL9vLHHLIH9rHHHLIH)H1HHHHH)HHHH9vH9vHHLMLL9rHHLLHH)IHIHIHHD$HADHd$A_A^A]A\[SATAUAVAWHd$H<$IHfALD$LffAfEufD Aƃf¹)EA)fDf9fLf~fHLfAf~#H$HD$AI<H BfAfEtPfE~ AA+ AA-fA.fDAAЃ%AHT$ A fAfEHd$ A_A^A]A\[UHH$pHxLeLmLuL}H}HuIALEfEfDufUfE fEf](fEEtf҉HuE01H}fEf9E|fUfUAƃffA~f¾))ff9fLf~fHH}L5fAf~&HEHEAHUH<H ɨfAEtAHE- AHU fAfE~HUgP0AHE AHU0fAfA~AHU.fAf%HUgP0AHE0fAffA9~fA9A)ff~&HEHEAHUH<H0fAAHUEfAEtAHU- AHE+fA]E)f~&HEHEAHEH<H0~fAMf|-fffDgP0AHE0fAf9HxLeLmLuL}H]UHH$@HHLPLXL`LhH}HuIALEfDMfDefDmfE fEEEAUff}fE?f;]}9f}~HUH}HuHUHuE0H}fAEfE~f}ufDžpfDžx6fD;e~fEfpAU)fxfDpfDžxfE} IHfEfEfEf;E}fEfEUp)fUUE)E)fUApxff}~MEMȃf¹)ff3A)ff9fLf~fHHH}LfAf~)HEHEAHUH<HHƺ fAEtAHE-fAf1ۊEs.fDȃ0AHU fAffpfpAHU0AHE fAffpfpfx~1HEHEAHUH<HxHƺ0:fDxfEfAHE.fAf}~(HEHEAHUH<Hu0fDeEtf)fDȃ0AHU fAffmf}9HU0AHU fAffmf}f}~#HEHEAHUH<Hu0CEEHHLPLXL`LhH]Hd$H<$HfDDʁH<HHd$Hd$H<$f1fD f D>EuFAu@IHLL9~/I|>r$Aff9t DB< tf9uA AAwEnftHf|>fuYE0@fAAD>HLGII9}EtEu'6#f><> s f:fffHd$SATAUAVAWHd$H<$IfHEHʚ;s1E1HD$hIH/KimILHHIIiʚ;H)ƉHD$Iʚ;s1E*LH/KimHHHHщiʚ;A)ELfE0H<$~fAEtfEu AfAAfEALDH<$?fAAfEALL$H<$fAAHd$A_A^A]A\[Hd$H<$fׅufE16u!HHiH fA%HoP; rfAEt fA }fA fEI@fAt,ʸADk )HML؈DHIHfEAHd$UHHd$H}HHUHUfUfU؊UـE%fEHEHEEHEHUH]UHHd$H]HHEH$fEfD$Hff=|#ff-Ѐ<Eu ef=H]H]SATAUAVAWHd$IHt$PHHfAfAEfAHM110H? D$X:AF$(D<+r,+t,t fAD$XfAA u fAfE9}fE9}IHT$PHNAB(<.r,.t,r, v, t, u0D$D$LH JAH u3LH IAHtD$XD$D$0ۄtLD$T$XHH9 fE1IHD$PHHD$D$f1fD$h00 fAfE9AB<.0AF$.A0A9A0@t$`f=}pHd$Ht$DD$`HHHLH|$LD$I EII K<II EIIIMLII DD$H !HHt$f=uL$` @t$`@@fD$hffAfE90fE9&AB<..fAffDfl$hfAfE9AB<.0AF$.A0A9A0@t$`f=}wHd$Ht$DD$`HHHLH|$LD$I E!II K<II EIIIMLII DD$H !HHt$fl$hf=uL$` @t$`@@ffAfE90uuHD$HurHD$H|$uD$1fE90AB(!H HHHd$SATAUHd$H<$fIHt$T$)f} fAf$~ fAHkH EHHD$ HDHD$(HDHD$0f|$0uHD$I$HD$ID$HD$ID$Sf|$uHD$ I$HD$(ID$HD$0ID$+HT$ HL$(H|$Ht$AI$IT$fA\$fE1AHd$@A]A\[Hd$H<$HLD$ffL$tL$HT$HfT$fPHd$(UHHd$HH}H<$f}f|$H]SATAUAVAWHd$IIMM͸kH$H˃;uMJHBHHHcQL9HcQL9Hc@I)JTHLLMqHs1ҋCgxHcLcLII?LHHcHk HcL9}gQHcHk HcL9~ gy9}XHcHk HTLLכAL9}0ALH)‰у|1A%A 9A1H$$Hd$A_A^A]A\[Hd$t k8Hd$SATAUH$@HIḮtLLH.1LLH"A$H9}DA$HH)ƁH$UH$LHmHLLϚH$A]A\[SATAUAVAWHd$H<$IIHL$ MH|$0ܑIuAHH8|HH1HD$(HD$(H$HH1HHHH HH)HG0DHHHHHHuHD$8Dd$8MtAM}SAI}AIcL)HD$HIcL9ELD$H~ET$8D$H)‰HD$0pD$8HD$0eD$(AAHD$8D$8D0D$8|L)HT$HDHD$0D$0tD$0~ HD$0HD$0D$HA)ċD$H1ۋD$HHD$@D$@T$89} D$8HD$@HcD$@|5r+HcD$@|9sHcT$@HDHcD$@D0uSHcD$@|0uGD$@D0HD$@T$@|9tD$@DL$@D D$@T$89} AHD$8IcL9ELIcL9~D$H} IcL)HD$HEIcH|$ LDMHH8u1D$8gX|gQHD$ +gQHD$ -HcH؉HcH HH0HD$ 0HcHgfffffffHHH?HH0HD$ 0HD$ EfHD$ 0HD$HD$H|D$HgpT$89|VHD$@Hl$@fDHD$@Hl$0D$0uHD$ 0.t$@@t4HD$ @48D$@9D$(u#HD$ -HD$  Hd$PA_A^A]A\[UHH$HLLIIHH蕠L9}>LH)ƁHHHH軖HCH9} HCLHHH9HLLH]UHH$HLLIIHHeL9}>LH)ƁHHHHەHCH9} HCLHHHYHLLH]UHH$HLHMHEH$fEfD$HAID$H9} ID$HHLH賌HLH]UHH$HLLMLAID$H9} ID$HHLH:HLH]UHH$HLHIHOID$H9} ID$HHLH軋HLH]UHH$HLH}HMHH}AfID$H9} ID$HHLH2HLH] ?u HfHDI9|DFA tA ttDFA+rA+tAu HH7H9@47@$t@$t@t!@t$@ t'@(t@ uPHGH>H57H9~-Hq47XtxtuH @HH9~ р<0tHSATAUAVAWHd$HIIM1M1LHHt$I$AI;$A$A<u/I$HnH%A<0ZI$M $H1H<$ uT$HHHDA $A 0rU vrKvrAv':A $A 0@+A $A H7@A $A HW@M@L $II@:4$s@II)M9rH9sM1q@II$AI; $HI$M|$tI߀|$u;<$ t5HH|,HtHtHtIIIIIcILHd$A_A^A]A\[SATAUHd$HIM1HHHt$I$|$ I;$A$<I$HH%<0I$A$,0rJ, v,rB,v,r:,v#4A$0&A$H7A$HWN@4$@8vHH)Ё1HL9sM1)$IL,I$I;$TI$LHd$A]A\[Hd$<$,$Hd$SATAUAVAWH$HH$Ƅ$H$H $$:w$< t$H$H$H|$cL{AD#fDgC&A!Hk ItH$.H$Ht$HiHH~gEuH}%DAE9s$HH$HH$HDHk ADH$A_A^A]A\[Hd$H<$D:vD @fD@ϊ@D A8u @A8sH $L@I; ~H $L@I A8r%AL) H)HHd$SATAUHd$<$HD$HAE1DHcH; t tuH<+r,+t,tH AHE01D<.,.,, 0ALl$L;-)7}'McL 7HgfffffffIHI?LL9HD$Hk IcH)HT$BEEuA|HD$H;6~Hl$AEA1HHcH;-u EEDEAE)HcH;Et etgHHcH;W<+r,+t,tH HE170 AW Ak 0gDHHcH;}AAE~TDɃ1DH=5HgfffffffHHH?HH;T$HD$Hk HD$9QMcIA|E1ېHN5HH;D$Hl$HL$HgfffffffHHH?HHT$A9AtHD$H;5~$McHD$LLT$HD$HH$H,$Hd$A]A\[SATAUHIIL9LLHLMtHsLL,lA]A\[H9LLLMM1HH?fDA8t'DAaAs, EAaAsA A8uHHIM9M9~%AL)H)HUHHd$H]LeLmIILH uLH uDDHHHtHMu;kHHMtNIuIu9|4)HcI|(DM9wM)HcȺHHIHH]LeLmH]UHHd$H]LeLmIILH uLH uDDHHHiHMukjHHMtCIuIu9}L$)HcI|M9wM)ILHH]LeLmH]UHHd$H]LeHIHuiHH?0M} LHLH} HHH߄tH1HHH H1HHHH]LeH]UHHd$H]LeHIHu?iHHH}HHHM} @LH@0L1H@tHHHH]LeH]1ALH!tHHI?|UHHd$H]LeLmLuL}IHuM1A0AALH#Et:L}O<'uHEHt%Mt L;}rM9sAhHHuLHH!t0IIA?|LH]LeLmLuL}H]Hd$!!Hd$HHUHHd$H]LeE0H}EAHHHH}EAHHHHHHtAHtpHgHHtH@H9|VAHHtH@H)HLbLl0@IAFA:EuALI~*WHuM IL9}LA_A^A]A\[SATAUAVAWIM1LMtH@HHzHHtH@H9eHHtH@LMtHIH)HLbLl7DIAEA:u!LMtHRLLlVHuM IL9}LA_A^A]A\[1H|@HHtHIH9|/HLHtHvH9|HH@:9uHHH91SH$HH<$HHtHRH~ H"HH|$HH|$<$,$H$[SH$HHHHtHRH~<$H-HH|$,HH|$/HŊ(<$,$H$[SATH$HHM1HHtH@H=~ HHHHwILH$A\[SATAUH$HIM1HHtH@H=~ I$!HH\LHH.ILH$A]A\[UHH$HLHHfEHHMH $fMfL$HAlHH1HA0HLH]SATH$HLfEHIHAHH1HA08H$A\[SATH$@HfAHH@ǹTHH1WHA0H$A\[SATH$HH4$IH$H|$Ht$LHH$A\[SATH$H<$HHfEHHL$HH<$A9HHt$1HA0H$A\[SATH$HHfAHHHǹģHH1GHA0H$A\[SATH$HHfAHHHǹԢHH1HA0iH$A\[SATAUAVHd$HIIL3MtMvM9xMoM~jHLL)L9} LL)HILL)L9|/ILL)L)L@K4,H;HuH=HLLL)H1Hd$A^A]A\[SATAUAVAWHd$IIHH$HT$Ht$  vH5THcHT$`GLMtH@H2HIHtH@II9}I\$HLMtH@J4 H1/IHtH@Ht!I?ff-w HƘffALff-w HffAAH0H~I?HuH=ܫIH11MMtM@LMuH=HH1LH)H~0LMtH@H MI)I?HuH=uHHJLH4$wH1HD$`HtRyHd$pA_A^A]A\[SATHd$HAHH1H3HtHvH;A]Hd$A\[SATAUAVHd$HIIfAHHL1HA0eMtH3LLHHd$A^A]A\[SATAUHHIfAHHtM~HLAH<HL1+HA0A]A\[SATAUAVAWIIHtHvL1LMtH@HH|-M1fDILTIC|&薛CD%L9A_A^A]A\[SATAUAVAWIIHtHvL1~LMtH@HH|-M1fDILIC|&覛CD%L9A_A^A]A\[HtfG Hޕf%HtfGf%HtHG1SATAUHd$HfAAHD$`HHt$!rHIPHcHT$Xu5Et H3AH|$`7Ht$`HHHfD`uH|$`YHD$XHtzvHd$pA]A\[Hd$H?jHf@f9t^ff-w HŔfffAfAw LfAt f9t0҄uHHxu Hfp Hd$fHfffHvffHvfSATAUAVHd$HIfAILL1ZI<$tIuL1LHu IEIELHHHm0HH]LeLmH]UHHd$H]LeLmIIHӄtHsL1PHcHUsLMtH@IM~!LLHHuH(HEHtH@IHCL9}LsLLH}F4HsL)K<41D7bH}HEHtcHxLeLmLuH]UHH$pHxLeLmLuIHIHEHUHu^H=HcHULMtH@IM~5L ff-w Hf0LLHUHPHEHtH@IHCL9}LsLHLH}/3HsL)HKLTILMuH‰HHuK'HH$ HM9}H$Hd$A_A^A]A\[H~AHHtH@H9|0HLVHtHvH9|HHf;9uHHH91SATAUHd$HIIHD$`HHt$rQH/HcHT$Xu HH|$`H|$`LLqHiTH|$`HD$XHtUHHd$pA]A\[SATAUHd$HIIHD$`HHt$PH /HcHT$Xu HH|$`H|$`LLHSH|$`OHD$XHtPUHHd$pA]A\[SATAUHd$HIIHD$`HHt$RPHz.HcHT$Xu LH|$`Ht$`LHQHISH|$`HD$XHtTHHd$pA]A\[SATHd$HIM~LHHtH@L9|;1JLcHtH[L9|It$Hf;uH HH91HHd$A\[SATAUAVHd$HIIL3MtMvM9MM|HLLL)L9} LL)HILL)L9|CILL)L)HPHHHuHK ,HH$H$ fH$ H|$ OH$[SH$@HHH@ǹڝHHH$[SH$H<$HHHHL$HH<$A/HHt$H$[SH$HHHHHǹ:rHHoH$[SH$HHHHHǹrHH/H$[SATAUHIIMtLe@HLLH1A]A\[SHHZM1IH>F ZEAv:Av>AvpAA^AvMPFICMJI9HEAAF EA?AɀFLIMJI9 EA AF EAA?AɀFLEA?AɀFLIMJI9MKL9fF JfAfAfFLZfAADÁ gEEAAF EA A?AɀFLEAA?AɀFLEA?AɀFLIIIL9v L9VLFM9sHIBs@fB4Zfv%fv$fv#fv"fr>fv5I/I)I#IsH9vf4rfrfwIIIL9wIB[SATAUHIIMtL=HLLH1A]A\[SATAUAVAWHd$HT$Hu H$H$M1M1IHLT$G$ EAu;A ufEfFwIEMfEfFwIEMID1@DAADHAAuMII9vHZHr6M1IOL\$GEAAufA@tLL9wAIIIt/It4It|IIIA?L\$fG fAEAMcML\$fGT fA?MM MI~A?sL\$fG fAEA McML\$fGT fA?EAMcM ML\$fGT fA?MM MIv#IsIIA?L\$fG fAEAMcML\$fGT fA?EA McM ML\$fGT fA?EAMcM ML\$fGT fA?MM MIr IvA?JILVM9v-MI IfFwIMIIM I1A?Hv MfF,wIIL9v L9IvH4$DHt$F$D@u'A u IAI IAIIJD1@H@@uI4HH9vHzHrHHD$`Ht?Hd$hA\[SATHd$HIHD$`HHt$:HHcHT$XuLH|$`6Ht$`H=H|$`HD$XHt?Hd$hA\[SATHd$HIHD$`HHt$':HOHcHT$XuLH|$`FHt$`H17"=H|$`HD$XHt>Hd$hA\[SATAUHd$HIIIE11Ofsf=vf=rH.HfHEDHUHBHEI<tHUIH@HHEHEH;EHEHuH}HuQ:HEHHHUBHL0Hxt H@L(M1M1LHEHpH}fH}oHEHUHBHEI<tJHEIHZH{|7LIHEHH4HCHPIHEIHc t0Hd$UHHd$H]HHHt$H;H- uHHtUHH]H]SHH;tH;HHPH[Hd$HHt HHPHd$SATHd$HIHt LI$PH;t H;HHPL#Hd$A\[SHd$HH4$HT$HD$HtHT$HHHu0H|$tH|$HD$HPHd$ [SHd$HHHt-HH5HHuH$H8H t0Hd$[SHd$HH4$HT$HD$HD$Ht_HeH0HeHPHL$HUtHT$HH|$HD$HtHL$H4$HT$H0t0H|$tH|$HD$HPHd$ [Hd$HtH?^Ht0Hd$SHd$HHH$HL$HD$HtHT$HHHu HD$H H1Hd$ [SHd$HHHt/HH5%HHuH$H8HZ tH$1Hd$[SATHd$HIH$HL$HD$HD$MoHdH0HcHPHL$LtHT$HH|$HD$HtHL$H4$HT$L tH1HD$H H1Hd$(A\[Hd$HtHtH$1Hd$SHd$HHH$HL$Ht;HD$HT$HHHt QH1EHD$H H11Hd$ [SHd$HHHt9HH5uHHuH$H8Hu lQH$1Hd$[SATHd$HIH$HL$MHD$HD$HGbH0H=bHPHL$L tHT$HH|$HD$Ht$HL$H4$HT$L u PH1HD$H H1 Hd$(A\[Hd$Ht$H$H u hPH$1Hd$HtHGH1H?tHH1HtHGH1H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0HHcHT$pu4HD$HD$H|$tH<$tH|$HD$HHD$pHtpHT$xH$HHcH$u&H<$tHt$H|$HD$HP`~ tH$HtR-HD$H$SATHd$HIM~ HHHtMt HHPpHd$A\[Hd$HHtHǾHP`Hd$HOfDLOPEIA"x uHHJHHRHH(AEHt HWH1HHtHPuSATAUAVHd$HIH3L1I$H{Pt LHkHtRH{@HtI8HHt<gDhE|0AfDADHHD J< DHTE9LHd$A^A]A\[HtHGH1SATAUAVHd$HH3HWH<$L$$H31L*I$H{Pt HLHtSH{@HtJA7HHt=gDhE|1AADHHD I<DHTE9LH$Hd$A^A]A\[SHHW[HSATAUAVAWHd$H4$IdfDMo(Mt@AEAADHI|H4$yHuDHMt "D9wIt IGH1IMuM1LHd$A_A^A]A\[SATAUAVAWHd$H4$IIcMn(MtBAEAADHM;| uDHITH<$&D9wI~t IFH1IMuH$Hd$A_A^A]A\[SATAUAVAWHd$H<$Ht$H8H$L2xM~0MtYMg AÅ|HAAHt$I|$ xHuI$H$HHD$;LHP H@ L$D9I~t IFH1IMuHD$HD$Hd$ A_A^A]A\[HG8Hd$HHHPWHd$Hd$HwHHd$Ht)Ht HGH1HHtH9uH90HGXSATAUAVAWHd$H<$Ht$HD$H$HHD$(HD$(H@ HD$ HtHT$ LjHD$ HD$1HD$T$gZ|DADAIcHD$B;*uIcHM|L4$Ht$LLID9HD$(HxtHT$(HBH1HD$(HD$(HPHt$H$HHHd$0A_A^A]A\[SATAUAVAWH$H$H$HHH$HH$ H$ H@XH$Ht-H$8t H$H$H$Lh 1H$$gZ|OAAIcHJ4(HQu&IcHM|L$H$LL\D9H$ HxtH$ HBH1H$ H$ HH$H$HHH$0A_A^A]A\[HHSATAUHL#6Ml$@MtH2LH0I|$t ID$H1IMuA]A\[HHHd$H<$Ht$HT$HL$$;D$u8HD$HT$;u(HD$HHL$H΋;uHHQ;u0Hd$(SATAUHd$HIIIEH\$MHAD$ t+tH~t)tTtID$HIE{ID$HHIEjID$HHHH$LH|$$KIT$HHHH$H|$$IE+ID$H$LH|$$ID$H$H|$$IEI}Hd$A]A\[SATAUAVAWHd$HIIHL$L<$Lt$H$HL$HH8HHp8tHD$HAtIܐI<$L<$Lt$H4$HT$HHT$HLbAńtC r HD$L Et$C ttuHD$H8HD$HHPDHd$ A_A^A]A\[SATAUAVAWHd$HIIHL$L<$Lt$H$HL$HH8HHpHtHD$HAtIܐI<$L<$Lt$H4$HT$HHT$HLrAńtC r HD$L Et$C tttHD$H8HD$HHPDHd$ A_A^A]A\[SATAUAVAWIIHfDH;LmILLHAńtAD$ rIEt3I<$t I$H1HtAD$ ttu I?IHPDA_A^A]A\[Hd$fHd$SATAUAVAWHd$Ht$HT$IMwPIHÅuADADHk(MlI}t IEH1Ht>I}t IEH1H8HpHD$H$HD$HD$H$HL$_u-D9It IGH1IMt IPQM1LHd$ A_A^A]A\[SATAUAVAWHd$H4$I~fDMwPIHÅ|RAADHk(MlI}t IEH1HtI}t IEH81H4$t-D9It IGH1IMt IPxM1LHd$A_A^A]A\[HGPSHHtPHHHpH1 H1u[SATH$HIH$HDŽ$hHT$Ht$ wHHcHT$`HHdH<$uHHt$hHt$hL1]H$HD$hH7QHD$pHH$pH$p1H$h~H$hHD$xHt$hL1ɺxH$hPtHHtHD$`Hti H$xA\[H9HSH$HHH8HHH1~H$[Hd$HHH0HPt1@Hd$Hd$HbHd$SATHd$HH{AąuH{ ,uH߾HP`DHd$A\[SATHd$HIM~ HHCC H1IHtMt HHPpHd$A\[Hd$HHxHd$Hd$Hxt =Hd$Hd$vHt@Hd$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8}HHcHT$xuNHD$H|$1HT$H$HBHD$H|$tH|$tH|$HD$HFHD$xHtH$H$HHcH$u'H|$tHt$H|$HD$HP`pH$HtHD$H$Hd$HHxH@HHd$Hd$HHxH@HPHd$Hd$HHxH@HPHd$Hd$HHHp5H;5LLHHCHHt = 5H5HrCHHt =4H4HHuHECHHt =4H4HHH:tHtHH PHpH8HrH;CA]A\[SHBHHt =*4HH$4H;u 5 HH@H[SATHd$HBHHt =3H3HHu 4[{uL#M1H?BHHt =3H3HSHH{ t H{ OBH'CHHLHd$A\[SATAUHAHHt =63H33L(MtI}u 4:IExu IEL M1I]HCIEH{ t H{ AHBLA]A\[SHHAHHt =2H2HHuHAHHt =}2Hz2H@H;;[SATHd$HH@HHt =02H-2L Mu 3HtI4$Hu1I$Hd$A\[Hd$Hd@HHt =1H1HH=@HHt =1H1HHd$Hd$vHHd$Hd$HHd$SATAUHH?HHt =#1H 1HHtLhM1IHtMtLLHHPxLA]A\[Hd$1ҾHd$Hd$HHH:t HHHd$Hd$HHH:t HHHd$Hd$HHH:t HHqHd$Hd$HHfHIH:t HH9Hd$SATAUIIH\>HHt Hm-: H`-Hf8AD$=|`-t+uTuLL1jLL0ZH=HHt H,8 H,Hfi,H=HHt H,: H,HfgA]A\[SATAUAVHd$HIIIH|$`HHt$LHtHcHT$Xu!LLLH|$`0Ht$`HWBH|$`HD$XHtHd$xA^A]A\[Hd$HIHHL/Hd$SATAUHIIHLLHL.A]A\[Hd$.Hd$Hd$U.Hd$Hd$.Hd$Hd$.Hd$Hd$e.Hd$Hd$.Hd$Hd$HHǺ-Hd$Hd$H@HǺ-Hd$Hd$HHǺt-Hd$Hd$HHǺG-Hd$Hd$0-Hd$Hd$-Hd$Hd$-Hd$Hd$,Hd$Hd$,Hd$Hd$Hf @H,Hd$Hd$H @Ha,Hd$H$HHHf4$HHg,H$SATHd$HfAH$HT$Ht$ H HcHT$`uAHUHH4$,H[HD$`Ht\Hd$hA\[Hd$+Hd$Hd$+Hd$Hd$+Hd$SATHd$HIHD$`HHt$H/HcHT$XuLH|$`&Ht$`H(+H|$`yHD$XHtzHd$hA\[SATHd$HIHD$`HHt$HHcHT$XuLH|$`VHt$`H*H|$`HD$XHtHd$hA\[Hd$HD$D$<$H:*Hd$Hd$HD$D$<$H *Hd$UHHd$HHUH$fUfT$H)H]Hd$HHt$l$<$H)Hd$Hd$HD$D$<$Hz)Hd$Hd$HH4$HH4$_)Hd$Hd$E)Hd$Hd$)Hd$Hd$u(%Hd$Hd$U(Hd$Hd$5(%Hd$Hd$(Hd$Hd$'Hd$Hd$'Hd$Hd$'Hd$Hd$'Hd$Hd$'Hd$Hd$m'f%fHd$Hd$M'%Hd$H$HHD'<$vD$%H$SHd$HH$HT$Ht$ +HSHcHT$`u%HH&H$HtH@H~H$fH蕀HD$`HtHd$p[Hd$&Hd$Hd$u&Hd$Hd$]&Hd$SATHd$HIH$HT$Ht$ 6H^HcHT$`uLH%HH4$J5HHD$`HtHd$hA\[Hd$%$$Hd$Hd$u%$$Hd$Hd$U%<$,$Hd$Hd$5%<$,$Hd$Hd$%$$Hd$Hd$%<$,$Hd$Hd$$Hd$Hd$u%Hd$Hd$u$Hd$SATHd$HIHLHߺ )%Hd$A\[SATHd$HIHLHߺ$Hd$A\[SATHd$HIHLHߺ $Hd$A\[SHgH$[SATHd$HIH:LHߺy$Hd$A\[SATHd$HIH LHߺI$Hd$A\[SATHd$HIHLH1$Hd$A\[SATHd$HIHLHߺ#Hd$A\[SATHd$HIHzLHߺ#Hd$A\[SATHd$HIHJLHߺ#Hd$A\[SATHd$HIHLHߺY#Hd$A\[SATHd$HIHLHߺ)#Hd$A\[SATHd$HIHLHߺ"Hd$A\[SHH"[Hd$"Hd$Hd$"Hd$Hd$"Hd$Hd$h"Hd$Hd$H"Hd$Hd$}"Hd$UHHd$H]LeHIHHHH~HHPLHB"LH110"H]LeH]UHHd$H]LeHIHHHH~HHPLH!LH11!H]LeH]Hd$!Hd$Hd$5 %Hd$Hd$ Hd$Hd$%Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$}Hd$Hd$eHd$Hd$MHd$Hd$-f%fHd$Hd$ %Hd$H$HH<$vD$0%H$SHd$HH$HT$Ht$ HHcHT$`u*HHH$HtH@H~ H$ff1HPxHD$`HtQHd$p[Hd$MHd$Hd$5Hd$Hd$Hd$Hd$$$Hd$Hd$$$Hd$Hd$<$,$Hd$Hd$u<$,$Hd$Hd$U$$Hd$Hd$E<$,$Hd$Hd$Hd$Hd$Hd$Hd$HHǺHd$Hd$HHHǺ^Hd$Hd$HHǺ<Hd$Hd$HHHǺHd$Hd$H!HǺHd$Hd$HHcHǺHd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hf @HHd$Hd$H @HHd$H$HHHf4$HHH$SATHd$HfAHD$`HHt$6H^HcHT$XuAH|$`~Ht$`HV1H|$`tHD$XHtHd$hA\[Hd$5Hd$Hd$Hd$Hd$Hd$Hd$HD$D$<$HzHd$Hd$HD$D$<$HJHd$UHHd$HHUH$fUfT$HH]Hd$HHt$l$<$HHd$Hd$HD$D$<$HHd$Hd$HH4$HH4$Hd$Hd$Hd$Hd$HHcHǺHd$SHHmf[SHHmf[H5y.HHH=fHƹ.HSH$@HsHkH$[SH$HHHHH$+H$HH$[SATHd$HIHD$`HHt$H/HcHT$Xu#LH|$`Ht$`HߺccHH|$`QOHD$XHtrHHd$hA\[SATHd$HIHD$`HHt$wH蟽HcHT$Xu#LH|$`=Ht$`HߺsHkH|$`pHD$XHtHHd$hA\[SH$@HHH8H$[SH$HHHHH޺H$[SATHd$HIHD$`HHt$gH菼HcHT$Xu#HH|$`%H|$`LaH[H|$`MHD$XHtHHd$hA\[SATHd$HIHD$`HHt$HHcHT$Xu#HH|$`H|$`LӊHH|$`AoHD$XHtBHHd$hA\[SATHd$HIHD$hHD$`HHt$>HfHcHT$Xu6LH|$`Ld$`HH|$hH|$hL'HH|$hnH|$`nHD$XHtHHd$xA\[HWGHHHWGHHc@HWGHH8tHHHJRHSATAUHd$H<$@IA$H$< , v ,t',t.,tL,t,t3,t,AAH<$FIH<$EIH$HBJHH:tHH$HH$HHHcBIHzA$A<$ar\ttt&t1FHBH8A$7HBHxA$'HBHxA$HBHxA$ILHd$A]A\[SATAUAVAWIIHVFHCH AA|%E1fAHCJ<8HH0LHE9A_A^A]A\[HWGHH@ SATAUAVAWHd$H<$IHVFH4HNHtFHHHIHFL(LaM|+H@HLHH$H<LLI9Hd$A_A^A]A\[SATHd$HH4$< , v$,,t$,t5,t,t-,t,H~HH4$H iL$$ID$AT$L$I<$tI$H$PH$HL$HeH4$HiID$HtH8tHID$H5Hd$A\[SHd$HH4$< , t-,,t;,tO,,tC,,tHHHjHH4$H+|H$HBJHH:tHH$HH$HHHBHtHxt HHBPH8H4$H\ HrHH4$脨HJHd$[SATHd$HH4$< , t-,,t;,tO,,tC,,tH;GH;iHH4$H)L$$ID$AT$L$I<$tI$H$PH$HL$HKH4$HoID$Ht0Hxt)HID$PH;9H;HuHd$A\[SATAUAVAWHd$H|$Ht$H$HD$H$< r, t5,J,tW,,",,,t9HD$H0H|$F"HD$H0H|$ m H$HP@HHD$ HHD$HD$ HHHHD$ HPHHD$(HD$HHIM1HHM1IHD$J40HD$J<0HT$(ML9xH $HAQH H9tHH$PH$HH HH$HP@HHD$ HCHt+Hxt$Ht$H|$HCPHT$ HcBHD$HcCHD$HD$ M1HcCHH|qM1IHD$ HHHD$(HD$ LpHD$ M9}HD$J4 HD$J< LL)#HD$J40HD$J<0HT$(IO$>L9L;d$}iHD$J4 HD$J< HT$L)թHHD$H0H|$H$0HD$H0H|$Ht$H|$HaHD$HD$Hd$0A_A^A]A\[Hd$6Hd$SATAUAVAWHd$IIHILHH<$t/IM|&IILHJ<8LM9Hd$A_A^A]A\[SATAUAVAWHd$IIHILiHH<$t/IM|&IILHJ<8LAM9Hd$A_A^A]A\[SATAUAVAWHd$IIHILHH<$t/IM|&IILHJ<8LM9Hd$A_A^A]A\[Hd$Hd$Hd$Hd$[SATAUAVAWHd$H|$IHHHIL!IM<$t?LcM|6HHHIHT$H4HIJ<8LI9Hd$A_A^A]A\[% ÉH%߰ 1É= 1H Hcȋt1ielΉ4=o|0opHcH LH5 4ʃHځ߰ 1HcH5q 34H5a =|fHcH C LH56 4ʃHځ߰ 1HcH5 3tH5 =n| ЃH%߰ 13tnSmmH;S^uqr6H8[HHH^ppuv1m!H!  1ЉV,1‰1щ1[S}A!HcHH [SATHd$H AH HH!L Ht HHHH1HHd$A\[Hd$D$D$D$l$Hk(<$,$Hd$(HcHcH7f1%f1%f1%SHHHtH8H H HHHHt H8 HHHHH[HH?tHHHH?tHHQHHUH'HHH]UHHHwH]UHHHWH]UHǢHH7H]UH觢HHH]UH臢HHH]UHHd$H]HHHt H: HHf8tf&HHH]H]Hd$HDHHtHU:H HEHff%Hd$Hd$HHHt Hu: HhHHHd$UHHd$H]}0HXH8tHHXMHHH]H]SHxW8uOHH@HMHHt Hn: HaHH;wH1W[SATAUvHL+Ir+M1ILHH<t LHLcM9wHVH8t HVA]A\[Hd$HVHVrHd$SH-fDHkHHPHH|tHHPHTH{w[Hd$H$HHt H58 H(Hxu/HHHtH8H H=HKHHHt HV8 HIHxu/HHHtH&:H H=HMKHfHHt Hw: HjHxu/H6HHtHG:H H=7HJHHHt H: HHxu/HHHtHh:H H=XHJHd$SATH$LHHHt H: HHfH THHTHHHSH8uHT8t,H'HHtH:H7HH*HHHt H : HHHHSH8IHL1sYH|SL1bHL1NYHGSH0HHL1/YLWXIHSH0HH@THL1YL)XHHRHHVH0HFH1XHWHRff=tf=t H=Uh#$H$A\[Hd$聸Hd$Hd$Hd$Hd$=~H HHd$SH$HH|HHHgŹH$[UHHd$H]LeLmLuHIIHm襛HELuHuH}0H4H}t@H}t9H| HEIDHLuHuH}I9~L;us H;EwH}1HH]LeLmLuH]SATAUIIHLRH8tLLH7RfHPfHPL HSL(H HHt =_H\H8t LL1HP8BA]A\[SHd$H4$HT$HH|$HT$H4$2Hd$[Hd$HHHtHHHtHqHd$UHHd$H]HHoH]H]UHHd$fHOfřHEHmHuH}PHOHEHHRHUHHO85H]Hd$1Hd$Hd$1Hd$Hd$HBPf<BHd$UHH$pH}HuHUHUHxH;HcHpHmEHE8EHEHEHuH}3H}vHuHpHOHpHu1bTH}SH}t@EH'NUHcH9}}u!HEH;Ev\H;EjmHpHt,H]SH$H<$t$H$84tHMD$D$H$H$0HHcH$purHcD$HxHT$Hct$D$gX|ND$D$D$HtH$xHiNH$xH4$1$SH<$KR;\$pH$pHt.H$ [SATAUAVH$H9H+HpHHMHH1RHQD`Lh AE|=ADAIcItHHMHH1[RHQE9H$A^A]A\[SH=^HH^HLHWHH_g[SH2H^HHKHHPHXH^HHKH[UHHd$H]LeLmLuHIAM}M1uIcLHpHH}*H}uM1RD|0fLEIcHcH<1H HuH I 9HUID$McLHLuLH]LeLmLuH]Hd$H?HuH=Hd$SATHd$HfAHعq@ fDH rtr8"u,HfHt"tu8"u&H Ht rts8uIHcH4HHH$H<$EA1҃H$A9fD fDH rtr;"u@HH$HH$H$HHt"tu;"uFH=H$HH$H$H Ht rts;aHd$A\[UHHUJH8t HHJHHaH]UHHH="JH?tHHJ詒HHH]SATAUHIAՀ;uiHHHtHG:H H57HH 1ENH~HHtH8H H=H&McHMHHtH8H H5HH1MHHHtH:H H=HLHHHtH{:H H5kHH 1yMHHHtHC8H H53HL1EMH~HHtH8H H5HH1 MHFHHtH:H H5HIc1UHHHtH:H H5HHX1LHHHtHk:H H=[HKHHHtH<8H H5,HH1:LHsHHtH:H H=H;KA]A\[SHM1A"12HHu11H[Hd$6Hd$H5YX HHH=FXHƹ HHH"XH;Pu H%H;Pt0SHHWH[Hd$Hd$Hd$WHd$Hd$Hd$Hd$WHd$Hd$WHd$Hd$WHd$Hd$EWHd$Hd$Hd$Hd$ WHd$Hd$Hd$Hd$VHd$Hd$VHd$Hd$H<$HHd$Hd$}VHd$Hd$eVHd$SHHHHt =HHHHPH@H)HV H߹H[SHHeHHt =GHDHHHJHRH)HH PS P S@CCCCCC C$[HGHHG HHWH8tHHz H8HHxtHHJHRHQHxtHHJHRHQH@HHHxtHHJHR HQ Hx tHHJ HRHQHPH@HH |nHG8HHHHHH)H(HHH4HxtHLGHIxHxtHLGHIxHxH>HH9sSATHd$HILjI|$tLHPH@HB ID$HI|$tLHPH@HBI|$ |LH7HH)YHd$A\[SATHd$HLc(HHtA$H#HA$HB;sHHHCH;v HL(I$HCI$A$Hd$A\[Hd$HHxHxtHHJHR HQ Hx tHHJ HRHQHPH@H2Hd$Hw(H u HG8HpHPHu HPHHSATAUHLMt#@HLI|$uM Md$M1LA]A\[HGHHHH)H(reL7IIuL I III MHI0HOIHHH HGI@HI@ HIHH8tHLA LHHSATHd$HIID$Ht ID$HHCIT$HtHKLHSHHI|$tLHPH@ HB I|$ tLHP H@HBIT$ID$HHd$A\[S0HGHuHGHH48HFHu8[SATHd$HHCHu"HII)ID$HuHLLHHd$A\[SATAUAVAWHd$Ht$IH $IIM1oHHtH#H[MuITI\$MHHIL9l$w5M9r0H$L(Mu HCI HCID$AHr IH[HuHHd$A_A^A]A\[SATAUAVAWHd$H|$IH$HH8HMtAIM1HD$H3?;rHLHH|$IMHHuHu H=H= H= =H=HLHrIHHD$ID$(I|$tLHPH@HB ID$HI|$tLHPH@HBHT$HID$HD$HtHT$HL`ID$HD$LH=MsH$H8HH%H$Mt2HD$HIHHT$HH$zH$H=H;w'H=H8hIHtSH=HH$CH$H=H;w'H=H81IHtHr=HH$ H<$IMu/H<$IHuH8tM1HD$ID$(ID$HT$HID$HD$HtHD$HLbHD$LHD$HH$HAHHPH;vHAHH$I$MID$ LHHH$H)L9v 8M, LHFDHHHH H HHH$H)H9rH<H~HwHHD$J8 {HHHt =IL-L1I*H;ZwHt HJH;HsHH;Zt HRHtwIHuHL1IHtMfI~tLHPH@ HB I~ tLHP H@HBLHPH@HHL INIHBHHHH;HvHBHBLHd$A^A]A\[SATHd$IHuAIwID$'H%IL[HIs ID$7HIL\HHHd$A\[SATHd$HIH=V IT$(HHHPIT$(HH=k Hd$A\[SHH= HHPHHPHPHH=l' [SATAUHHH II)ID$(L+IH9uUIl$ LHHHCHSHtHZHL)I|$ 'I|$ } L LHLA]A\[SATAUAVHd$HIMl$II;\$t LMVLHgHGHHG HHWH8tHHz H8HHGH H uL)MLHd$A^A]A\[SATAUAVHd$HLcLHuM1VHFHHt =(IL-"II$HuHsLILLJILHd$A^A]A\[SATHd$H!LID$HLHHuHd$A\[SATHd$HHuE0#H= HH= ADHd$A\[SATHd$H!LID$HLHHuHd$A\[SHHt H= HH=w2 [SHu1AHH[HGHHu HHH%HSHHtHHH1-H[SATAUAVAWHd$I$I$HHHHt5HH%HHV'HH9$Hs $HHHFHHII9wHCL9s $HHHt =H~II$HIM;l$ILt ID$HHL9s(IHL)HAHHPH;PvJHAHA@I9sLL5HLHHL)HAHHPH;PvHAHA$$Hd$A_A^A]A\[SATAUHIHuH;H;>HzH;u LHgHLDuXH;II sLHHx L9sLLI9LGIHtH;LLzH;L#HA]A\[Sf=~!H=(fH=SHHHt =HHH1Ҿ|H1HH[SffHHHt =aHH[H1Ҿ4|HM1HHH=1Ҿ|[Hd$f=PfH=HHHt =HH=HH=AtAHd$SATAUHt.ff=f=HHHt =hHHbf=A~H=HkHL+)fDMeIEHu LH_IeMMuHǃf=vH5HIHt.H2IEH=&t HLhHH f-f=yH=?t H=/A]A\[SHBHHt H迧JH#HHt H4: H'HfHHHHHt H: HHHtvHHHHt H: HHH+HHHt H: HHHHH]HHt H: HHH[Hd$HHt HXH=>t>HHHt Hm: H`HHH=UtMHd$Hd$HIE11ɾ@1Hd$Hd$HHIE1@1Hd$Hd$HIHE1@1cHd$Hd$HIHHHE112Hd$Hd$1DHd$Hd$Hd$Hd$fHd$Hd$}Hd$Hd$eHd$Hd$MHd$Hd$=Hd$Hd$%Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$uHd$Hd$]Hd$Hd$EHd$Hd$-Hd$Hd$Hd$Hd$Hd$H5I#HSHHH [SATHd$HAH=t AEt%H=H޹#HH=t ADHd$A\[Hd$eHd$Hd$MHd$Hd$5Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$uHd$Hd$H&8HTHHtH:H H5HH1+HHHtH8H H=H*HHHtH~:H H5nHHk1|+HHHtHF:H H=6H}*cHd$Hd$HHd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$v0Hd$Hd$VHd$Hd$H$8t* H$Hd$Hd$HHd$Hd$HHd$Hd$H$$8t H!$Hd$Hd$H#8t H#Hd$Hd$HcHd$Hd$F1Hd$Hd$H#8t H#1Hd$Hd$HT#8t HQ#Hd$Hd$H$#8t H!#Hd$Hd$H"8t H"1Hd$Hd$H"8tZ H"Hd$Hd$H"8t* H"Hd$Hd$H=T5?Hd$Hd$HTHHt Hպ: HȺHHHd$SHfH;sH H;u[SATAUHD+A|E1ADHDH8E9A]A\[SATAUH1fDH8-IHHIHcSLLYkH H;uA]A\[SATAUHD+A|E1ADHDH8E9A]A\[SH'HHH[Hd$H<$HT$Ht$0ӕHsHcHT$pu"jrfD$rD$H<$HD$Ș|$讙|$ՙHD$pHt6HD$Hd$xHd$}Hd$Hd$UHd$Hd$&Hd$SHd$HHD$`HHt$HsHcHT$XuHH|$``H|$`HH|$`?HD$XHt`HHd$p[Hd$Hd$Hd$H=t1Hd$Hd$Hd$Hd$mHd$Hd$Hd$Hd$fHd$H5 HHH=HƹHHHH5HH=HƹHHd$H8HHHtH:H H5HHr1$HLHHtH8H H=H#HHHtH:H H5HHK1#HHHtHv:H H=fH"Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$HHd$Hd$Hd$Hd$H=$1/Hd$Hd$Hd$SATAUAVAWHd$IAI>HH$AE|aAAIIcHs9Eu*H<$u#HsHI>HSH4$VfH$IIIc/E9Hd$A_A^A]A\[SATAUAVAWHd$IAI>脋HH$AExAAIIcfBf=sR%H0sAEu0H<$u)HsHH`HSHI>H4$eH$IIIcfB/E9Hd$A_A^A]A\[|)1fD H5s/9SATAUAVAWIE0IHtH@Ã|QE1AIIcDHRs+EuL IHuHIAIcAD/D9A_A^A]A\[SATAUAVAWIE0IHtH@Ã|]E1AIIc|B)%Hs-EuL;IHuHIAIcfADE/D9A_A^A]A\[SATHd$fDnAAu ntEtvHd$A\[SH$pHHHyo} vz|$Rut.HHHt H: HHf?Hn}ov,HHHt H: HHfH$[Hd$q}v,HDHHt HU: HHHfHd$Hd$fn}u,HHHt H: HHfHd$SATAUAVAWIAIcLmAlAAu AtA tE} DuE1,HhHHt Hy: HlHfDA_A^A]A\[SATAUAVAWIAIcLlAkAAu AtA tE} tE1,HHHt H: HHfDA_A^A]A\[S1SlHH}Vt,H}HHt H: HHfH[Hd$1lH} t,H1HHt HB: H5HfHd$S1kHH}s,HHHt H: HHfH[SH$pHnuH\$01ۅ}Ys,HHHt H: HHfHH$[SATAUAVHd$HIAD%uWC=|-tF| ;31HHHt H: HHffrD|8t tt(E1CAC ACD%=u A@AAuAA<$uUC=-t~tCDL纶Xiu ht߃;};hu1Dt)A@DL纶iu ht߃;}]qC,H}HHt H8 HHfHd$A^A]A\[SATAUHd$HIAH$HT$Ht$ H)gHcHT$`uEL5HHKHLH[H4$HuH5eHDxӋH+HD$`HtLHd$pA]A\[SHd$HH$HT$Ht$ [HfHcHT$`u@H菂HHHHHH<$HuH=@2HHD$`Ht諌Hd$p[SATHd$HIH$HD$HT$Ht$(譇HeHcHT$h|H݁HHHHHL赁HH˪Ht$LHټHt$HuH5H<$HuH=ҽDHH|$HD$hHt賋Hd$xA\[SATAUHd$HIAH$HT$Ht$ 豆HdHcHT$`uEHHHHHH H<$HuH=DLX胉HHD$`HtHd$pA]A\[H9HOHNSH;[SHSHs(;HcHC HC[SHH{tKSHs(;HcH;Ct,HHHt HȺ: HHfeHC[SATHd$HC=|+-t ttAAA9A1H9HHt HJ8 H=HffHspHD0HHCHHC@{u HHC8OHHC8HHHt HԹ: HǹHf8u;lt HHC@Hd$A\[SH1Ҿx@\CHCHtHC(HHC0Ht tt'.fǃp #HpHщ v fǃp [SATH$HIHWLH&H{pH@HfǃnH$A\[SATH$HIHLH7$H{pH@HfǃnH$A\[SATHd$HIHD$`HHt$H/aHcHT$XuL1H|$`Ht$`HWH|$`XHD$XHtyHd$hA\[SATHd$HIHD$`HHt$臂H`HcHT$XuL1H|$`Ht$`H肅H|$`HD$XHtHd$hA\[SATHd$HAHD$`HHt$H/`HcHT$XuA1H|$`#Ht$`HVH|$`WHD$XHtxHd$hA\[SHHHHt H: HHf8C=|J-~u>{uHS8tt tHSHCHCHC ,HHHt H0: H#Hfg[SATHd$HAC=|-tG| H31HHHt Hŵ8 HHffpDcHCHC ftff-w HfftHS0HHHHt HY: HLHf8tCHd$A\[SHHHHt H: H Hf8uHߺ[SHHHHt Hƴ: HHf8uH1Ҿ[SHHeHHt Hv: HiHf8uHߺ<[SHHHHt H&8 HHf8x{e{u.HHHt H޳8 HѳHfi4HHHt H: HHfgHS8[SHHeHHt Hv8 HiHf8uC{t.H.HHt H?: H2Hff H{p@0k[SATH$HIH$HT$Ht$ }H[HcHT$`HHHt H8 HHf8{t1HiHHt Hz: HmHffzLH4IH{pH4$HuH50'HHHt H!: HHf8u$H$H|$hH{pHt$h@HH8HD$`HtYH$hA\[SATAUAVH$HIH$HT$Ht$ O|HwZHcHT$`9H@HHt HQ8 HDHf8{t1HHHt H: H HffE0LMuHiIL ff-w HfHf;t#LH4HH$HuH$IA LHaH{pDL0pHYHHt Hj8 H]Hf8u$H$H|$hH{pHt$h@H)~HHD$`HtH$hA^A]A\[SATHd$HIHD$`HHt$zHXHcHT$XuL1H|$`THt$`H}H|$`HD$XHtHd$hA\[SATHd$HIHD$`HHt$'zHOXHcHT$XuL1H|$`Ht$`Hw"}H|$`xHD$XHt~Hd$hA\[SATHd$HAHD$`HHt$yHWHcHT$XuA1H|$`Ht$`H|H|$`HD$XHt~Hd$hA\[SATHd$HH>HHt HO: HBHf8tA{h{u.HHHt H: HHfh,HľHHt Hխ8 HȭHfgAGHHPH;P |HS8HHPH;P |A"H8tHS(HC<uAE0DHd$A\[Hd$H4HHtHŢ:H H=HHd$SATHd$HHHHt H: HHf8tA{k{u.HHHt H: HHfh,HtHHt H8 HxHfgAqHHPH;P |HS8HHPH;P |AEHHP(H@< r', v(,t$, t,tH8tAE0HCDHd$A\[Hd$HHHtHE:H H=5HHd$SATHd$HHnHHt H8 HrHf8tA{h{u.H"HHt H3: H&Hfh,HHHt H: HHfgA_HHPH;P |HS8HHPH;P |A:H.8tHHP(H@<uAHS(HC t ADHd$A\[Hd$HDHHtH՟:H H=şHHd$SATHd$HHHHt H: HHf8tA{k{u.HHHt Hé: HHfh,HHHt H8 HHfgA}HHPH;P |HS8HHPH;P |ANHHP(H@< r0, t1,t!,t, t,t!H8tA AE0HCDHd$A\[Hd$HHHtHE:H H=5H|Hd$HHp(HPH@H@ SH$HHHTeHpH@eH$[tHffw H <fftHd$HHHt Hu: HhHHd$Hd$HHHt H: HHHd$SH$HH\cHHH$[SATAUH$HAIDHc<$u$LH ￉HdHHDHbHHH$A]A\[SHHŷHHt H֦8 HɦHfHHHHt H: HHf[SATAUAVAWIIHM1LHBHRH)I=LHP(H@H4J<#LEM)MMoLAW8LHPH@H)IM9|LHP(H@H4J<#LHEI_A_A^A]A\[SATAUHAHLhH@I)BDHHP(H@H<Ic YE)IcHCHS8HHPH@H)AE9|HHP(H@H<Ic YMcLcA]A\[Hd$HHx@tHP@Hd$SHHHHt H8 H Hf8C=|_-t*uSpHqHNH{@tbHS@ZHHHt H8 HHfi,HjHHt H{: HnHfg[SATAUIIH,HHt H=: H0Hf8AD$=k-t6u_AUHcH9}AE)LAUIuLVZHHHt H8 HHfi,HHHt H: HHfgA]A\[SATAUIIH<HHt HM: H@Hf8AD$=-tZuAEAUHcH9}'AE)LAUIuLVkHcIuLBZHHHt H8 HHfi,HkHHt H|: HoHfgA]A\[UHHd$H]LeLmLuL}AIIHEH HHt H8 HHf8AG=-tX}Et HsL1EAAuHCAHCAE9}DD)LIcLLZHmHHt H~8 HqHfi,H?HHt HP: HCHfgH]LeLmLuL}H]UHHd$H]LeLmLuL}AIIHEHͱHHt Hޠ8 HѠHf8AG=-sEt HsL1lDAAuHCAHCAAEDE9}!DD)LxIcLLjIcLLZHHHt H8 HHfi,HHHt H: HHfgH]LeLmLuL}H]SATAUAVHd$AIIHH{HHt H8 HHf8AE=f-t1uZL=dD9} D)LYHcLLZHHHt H8 HHfi,HԯHHt H: H؞HfgHd$A^A]A\[SATAUAVHd$AHIH$HT$Ht$ _iHGHcHT$`UHPHHt Ha: HTHf8#C=-LMtH@AE9}DD)H!EL ff-w Hff;tt<tLHH4$HuH52H$HtHRHvLMuH5 IcHZHUHHt Hf8 HYHfi,H'HHt H8: H+HfgkHuHD$`HtlHd$hA^A]A\[SATAUAVHd$AHIH$HT$Ht$ gHEHcHT$`)M HwHHt H: H{Hf8C=-{LMtH@AE9}DD)HHtIcLMuH=HHeH4$HuH5oH$HtHRHZZHHHt H›8 HHfi,HHHt H: HHfgyiHHD$`HtjHd$hA^A]A\[SATAUH$IIHHHt H%: HHf8u$HLHvLHH$A]A\[SATAUH$IIHHHt H: HHf8u$HLH膑LH H$A]A\[SATAUH$IIHHHt H%: HHf8uBHLHvu $HcH9~$LH[H$A]A\[SATAUH$IIHtHHt H: HxHf8uBHLHfu $HcH9~$LHH$A]A\[UHH$HLLLAAIHHHt Hǘ8 HHf8u?HEH$fEfD$AAHAbLHDHLLLH]UHH$HLLLAAIHHHt H8 HHf8u=HEH$fEfD$HDDA脬LHDBHLLLH]SATAUAVAWH$IHIIEAlAu1H!HHt H2: H%HfiHHHt H8 HHfgIcIHLLAHHHt H8 HHfHyHHt H: H}Hf8u$LHt$H$A_A^A]A\[SATAUH$AIH $HHHt H: HHf8u*HcIcHL$H<$ALHT$DoH$A]A\[SATAUIAHHHt H: HHf8u)EtLH\LHQA]A\[SATAUIAHHHt H-: H Hf8u3uEtLH­LHrA]A\[SATAUIAHHHt H: HHf8A|$gA|$u.HPHHt Ha: HTHfgiH"HHt H3: H&Hfi;~ gsL*LHPH;P|LAT$8LHP(H@D,ID$A]A\[SATAUIAHHHt H: HHf8A|$jA|$u1HPHHt Ha: HTHfgzHHHt H0: H#HfiLu~gsL|*LHPH;P|LAT$8LHP(H@D,ID$A]A\[SATHd$If$HD$HT$Ht$(b]H;HcHT$hHSHHt Hd8 HWHf8A|$jA|$u1HHHt H8 H HfgH֢HHt H: HڑHfil~ gsLLHPH;P|LAT$8A$tHHt$HHt$HuH5HT$HtHRL^_H|$HD$hHt`Hd$xA\[SH0HHyH;y }VH 9tHHy(HI<t9H9}>HHJ(HR>H@HHJH;J |HP8[SATH$H$E0HHPH;P tH8tTHHP(H@<uCU?HH8t>HHPH;P }.H8tHHP(H@<tHHP(H@< vADH$A\[SATAUHIIfLHLtA$L9tHHP(H@< wA]A\[SATHd$HE0HHHt H: HHf8{uC=|=-tu1H6HHt HG: H:HfhqHHHt H: H HfgCHHPH;P |HS8HğHHt HՎ: HȎHf8ADHd$A\[SATAUAVHd$HIIA$HHHHPH;P HHP(H@+t-tuLHLfA HHPH;P HHP(H@$r 4tTtsLHHP(H@<$r',$t,t,t,2t, ufA fAfALHL HHP(H@<0LHLYHHPH;P HHP(H@Xt xtfALHLfAuHHP(H@0mfAuHHP(H@0rNfA uHHP(H@0 r/fAuPHHP(H@0 rr s)LHLrHHPH;P }A$L9GHd$A^A]A\[SATAUAVHd$HIIA$HH~HHPH;P HHP(H@+t-tuLHLE0HHPH;P HHP(H@0 sMAfDLHLHHPH;P A$L9wHHP(H@0 rHHP(H@<.LHL9HHPH;P ,A$L9HHP(H@0 sGALHLHHPH;P A$L9HHP(H@0 rEHHP(H@Et etLHLHHPH;P yA$L9kHHP(H@+t-tu9LHL>)@HHP(H@0 s%LHLHHPH;P } A$L9|Hd$A^A]A\[Hd$HHx@tHP@Hd$SATHd$H HHPH;P |H{@HS@H8tHHP(H@<@HHP(H@D$HCA oHHPH;P |"HS8HHPH;P |H{@tHHS@@H8tHHP(H@<t#A uHHP(H@< u HCsHd$A\[SATHd$H HHPH;P |H{@HS@HHP(H@<u HCfHHP(H@D$HCA jHHPH;P |"HS8HHPH;P |H{@tCHS@;HHP(H@<uHC#A uHHP(H@< u HCxHd$A\[SATAUAVAWHd$H|$Ht$HD$1H$H|$.E1E0HD$HPH;P |!H|$Lt$AV8HD$HPH;P HD$HP(H@HHcL$IcHD$HP H+PH9}HD$HH(HcT$HPIcH)L$HD$HP(H@ L$H\$ 7; s'ƒ t ttH{ߢ8t uA HI9wHH+T$ HD$(HcD$(HT$HBIcHT$H4HcT$(H|$ k&D$(ANjD$D9t EDH$$Hd$0A_A^A]A\[SHHHsHm[SHHHH޺IHcH[UHHd$H]LeLmHIAIT$HEt HcL9AOHcL9HcH]LeLmH]SATAUAVAWHd$IIfIHD$`HHt$gPH.HcHT$XM1@I$L1IJ4 LRHcIMI}LL1AtL0QfA;ttI7H|$`Ht$`LʿRH|$`KHD$XHtlTHd$pA_A^A]A\[SATAUHd$HII$H$HT$Ht$ \OH-HcHT$`uYIL;LHHrH<$H $HtHILH<$HuH=HRHrHD$`HtSHd$pA]A\[SATHd$HIA$Ht+HHPH;P |A$HHP(H@A$HCHd$A\[SATHd$HHHP(H@ L${t%HtHHPH;P } HS(HCL$LHd$A\[SATAUHd$HIH$HT$Ht$(MH+HcHT$hH|$1Ҿ%ADADHtHIcHpH|$H P0HtVHtMfA$wIcHHtH|$HH΂PH$HtH@HuH$ffA$6ApHHHt H*8 HHfjPHHD$hHtQHd$pA]A\[SATHd$HIA$ HHHPH;P | A$ HHP(H@A$HCA<$ uA$ HHHPH;P HHP(H@< uHCHrHHPH;P aHHP(H@<uPHCIA<$ u6A$ H;t1HHPH;P }$HHP(H@<uHC A<$uA$ Hd$A\[SATH$HII$H$HtBHHPH;P Hآ8tHHP(H@<pHH%<$u I$PH$H@I$H$t,HڐHHt H: HHfjH$A\[SATH$HII$Ht`HHH$H親I$H$t,H@HHt HQ: HDHfjH$A\[SATH$HII$H?$H+t!HHPH;P kHH<$u I$KH$H趫I$H$t,HpHHt H~: Ht~HfjH$A\[SATH$HII$Hot[HH{H$HI$H$t,HՎHHt H}: H}HfjH$A\[SATH$HIA<$Hz$HtHHPH;P }]HH\HH$輫A<$f$ft,H$HHt H5}8 H(}HfjH$A\[SATH$HIA<$H1t]HHmHH$-A<$f$ft,HHHt H|: H|HfjH$A\[SATAUH$HIIL{$LtLHPH;P }^LHH$HH蚪AEH$t,HHHt H{: H{HfjH$A]A\[SATH$HIA<$H$HtHHPH;P }fHHlH$H̩He(A<$H$t,H+HHt H<{8 H/{HfjH$A\[SATH$HIA<$H1tfHHmH$H-HƐ(A<$H$t,HHHt Hz: HzHfjH$A\[SATAUAVHd$HH{tgHCXL DkE4$HH`IcHPH9} C`D)AA$IcHLigAF%I4H{(IcHCHd$A^A]A\[SHgHCPH0HCXH8C`HPlHCXH8Њ[SATAUHH{tKLcXM,$MtMmIcHsL1LWMcIUHtH{(HSHCA]A\[SHHCPH8HCXH0H{X1[SATAUAVHd$HHCL`M|9IIHCHL)HpHC(J< 0:IM~O,4 MLkLHd$A^A]A\[SATAUHd$IAH$HT$Ht$ DCHl!HcHT$`uI|$tmI\$XEu L2IMl$I|$(LHHxH3HH$lM)l$I|$tID$(J<(It$(IT$EHZHD$`Ht[GHd$pA]A\[Hd$@0Hd$SH@HCPH8HCXH0H{X1[SATHd$HfAHH5gCHC0HCHfDfAw HHefftHd$A\[SATAUHIIHHe0HCPL H{XIuHHcHT$XuL1H|$`Ht$`HAH|$`HD$XHtCHd$hA\[SATAUHAAHH5xD+DcHHCHAtAtAt(cHHC8H|sftGHHC8HVsftD%tHַHC@ fVxA]A\[SH1ҾppC[SATH$HIHLHWH{pH@HfǃnH$A\[SATH$HIHwLHH{pH@HfǃnH$A\[SATHd$HIHD$`HHt$H|$`HD$XHt@Hd$hA\[SATHd$HAH;HHt HLp8 H?pHf8C=|"-tIt | H 0.H݀HHt Ho: HoHffMEu.HHHt Ho: HoHfHspH0ɺ0McLcHd$A\[SATHd$HAHKHHt H\o: HOoHf8C=|"-tIt | H 0.HHHt Hn: HnHffREu.HHHt Hn: HnHfHspHhĢH0;McLcHd$A\[SHHUHHt Hfn: HYnHf8u H߾[SHHHHt Hn: H nHf8u H߾q[SATAUAVHd$HIIIIH~HHt Hm: HmHf8C=|b-t-|VQHCLHL;HcHH{IZH*~HHt H;m8 H.mHfi,H}HHt H m: HmHfgHd$A^A]A\[SHd$HHHcHH$Hd$[SHd$HHˁHHf$fHd$[SHd$HH!HH$Hd$[SHd$HHˁHHSf$fHd$[SHd$HHcHH'H|HHt Hk8 HkHf8u9HcH;$~0~,H|HHt Hk: HkHfeHd$[SATAUAVHd$HIIIIHJ|HHt H[k: HNkHf8C=|b-t t(uQHCLHL;迨HcHH{IZH{HHt Hj8 HjHfh,H{HHt Hj: HjHfgHd$A^A]A\[SHd$HHHcHH$Hd$[SHd$HHˁHHf$fHd$[SHd$HH!HH$Hd$[SHd$HHˁHHSf$fHd$[SHd$HHHHH&HzHHt Hi8 HiHf8u7H;$~1H~,HVzHHt Hgi: HZiHfdHd$[SATHd$HM1H zHHt Hi: HiHf8uYC=|#-t |;"HH{I,HyHHt Hh: HhHfgLHd$A\[SATHd$HM1H[yHHt Hlh: H_hHf8`C=|*-t |H{~>;WHH{I,HxHHt Hh: HgHfgLHd$A\[SATAUHE0HxHHt Hg: HgHf8cC=|--t |!HIH5I9A,HExHHt HVg: HIgHfgDA]A\[SATHd$HIHwHHt H g: HfHf8u[C=|%-t |HCLH;W,HwHHt Hf: HfHfgHd$A\[SHHewHHt Hvf: HifHf8uYC=|#-HHHCH;賢,H wHHt Hf: HfHfg[SHHvHHt He: HeHf8uWC=|!-t |;LA<$VZH lHHt H[8 H[Hfi,HkHHt HZ: HZHfgA]A\[SATAUIIHkHHt HZ8 HZHf8AD$=-ttMrLA<$9H/kHHt H@Z: H3ZHfdZHkHHt HZ8 HZHfh,HjHHt HY: HYHfgA]A\[SHHHHpHcUHuHHpHߺC[HpSH$HH,HHH$[SATAUH$HAIDH<$u LHDHHHH$A]A\[SHHiHHt HX8 HXHfHHqiHHt HX: HuXHf[Hd$H<$HT$Ht$ #H6HcHT$`u#H<$HuH=Y} &HZHD$`Ht{'Hd$hHd$H<$rHT$Ht$ "HHcHT$`uaH<$H5nHu.HnhHHt HW8 HrWHfH<$HuH=X} D%H蜑HD$`Ht&Hd$hHd$H<$貑HT$Ht$ !HHcHT$`xH<$HuH=VXQ}x HgHHt HV: HVHf8u,HsgHHt HV: HwVHfi$HHD$`Ht%Hd$hSATAUH$HHDŽ$ HDŽ$( HDŽ$ HDŽ$h HDŽ$` H$ H$  HHcH$ SH1腐HHt.HHA1ɺ螛HHC00誮 H$( 16H$ H5n"H$ H$DH$( H$( HlH$0 HRnH$8 H$( H$ sH$ H$.ZH$( H$( HnH$0 HmH$8 H$( H$  H$ LIHH$ 1!LYIH H$( H$@ HmH$H It$A1ɺH$` H$` H$P H3mH$X H$@ H$ TH$ H$0 {H$H$0 HH; ucH@H;BuYID$8.uPtH.uxt=It$A1ɺH$h ]H$h H$ H5l,H$ LH$( H$( HylH$H$HH; H@H;BH$ uHH5UlxHH$ fH$ 1WHH@00裫0[SATHd$HIHD$`HHt$gHHcHT$XuL1H|$`Ht$`HbH|$`踉HD$XHtHd$hA\[SHd$HHD$`HHt$HHcHT$XuJ;tEH_HHt HN: HNHf8uHH|$`H|$`^H|$`HD$XHt0Hd$p[SHd$HHD$`HHt$<HdHcHT$XuJ;tEH,_HHt H=N: H0NHf8uHH|$`XH|$`. H|$`_HD$XHtHd$p[SHd$HHD$`HHt$HHcHT$XuJ;tEH|^HHt HM: HMHf8uHH|$`H|$`>YH|$`诇HD$XHtHd$p[SATAUHd$@IIH$HT$Ht$ HHcHT$`uZHH$HtH@L9LH$L,H]HHt HL8 HLHfHHD$`HtHd$pA]A\[SHd$HHD$`HHt$ H4HcHT$XuHH|$`H|$` H|$`bHD$XHtHd$p[SHd$HHD$`HHt$HHcHT$XuHH|$`{H|$`H|$`HD$XHtHd$p[SHd$HHD$`HHt$ H4HcHT$XuHH|$`H|$` H|$`bHD$XHtHd$p[SATHd$@IH$HT$Ht$ HHcHT$`uHWLH4$ HބHD$`HtHd$hA\[SHd$HHD$`HHt$ H4HcHT$XuJHtEHZHHt H J: HJHf8uHH|$`H|$`~H|$`/HD$XHtPHd$p[SHd$HHD$`HHt$\HHcHT$XuJHtEHLZHHt H]I: HPIHf8uHH|$`H|$`N)H|$`HD$XHtHd$p[SHd$HHD$`HHt$HHcHT$XuJHtEHYHHt HH: HHHf8uHH|$`hH|$`^yH|$`ςHD$XHtHd$p[Hd$`Hd$H% %Hd$HuHoIHuH5cI>Hd$Hd$HuH?IHuH53I(Hd$Hd$HuH5IHd$Hd$HuHHHd$Hd$HuHHHd$Hd$HuH5HHd$11111111111H5Y HHH=FHƹ HHd$%Hd$Hd$ Hd$Hd$Hd$Hd$ݯHd$Hd$ůHd$Hd$Hd$Hd$Hd$Hd$}Hd$Hd$eHd$Hd$MHd$Hd$5Hd$H)H="HHEH8 HEHH@H HEHHHH HPPHUH@XH?SHS([Hd$HD28,FHd$HyESATHd$HAuHH4U/HAED; } HEEHMcJH߾>Hd$A\[Hd$1H1Hd$SATAUAVHd$HD8lbHD$D$$E1$fDHDHIcH<2Á~E0؃|1E1fDAHuDH IcH IcՀ< uAD9EuuAE0Hc$HcHH=|HEtHD$Hc$"$~)H DHIcH'tfA~LYƒt]ƒt fAƒt fAƒt fAƒt fAqat fAbfAXL ƒ?tIƒtfA;ƒtfA-ƒtfAƒtfAtfAfAI$t@I$HÕfff@f`ȃ`f`fA fAfAfEt5AMl$hI$ID$pID$xI$H(I$A]A\[SATHd$؉IH1Ҿ(THH$HD$LH3Hd$(A\[Hd$HPHH5P H5PuH5PdHd$Hd$HNHHtHe3:H H=U3H1ҾEHNHHtH/:H H=/H HeNHHtH+:H H=+HH,NHHtH=6:H H=-6HHMHHtH9:H H=t9HaHd$Hd$H5N1ҿxH5O1ҿ eH5.O1ҿRH5KO1ҿ?Hd$Hd$MH5MH=V ~=rM/uiMHd$Hd$HcHd$SATHd$HE0H1ҾEuHQAEt H;$vH$HHd$A\[HGHgHwHHHHSHH=)HHLHHt H@;: H3;HHHKHHt H;8 H ;HHKHHZH+HKHHt H:: H:HHA` rHaKHHt Hr:: He:Hfm"sH8tq[SATHd$HIHuH2<HL 5HH5S;pHtIMuHH5SpHtL LHd$A\[SATAUAVAWII1A<,AA<,A+Et(Et#HA<,AA<,AE8tAAH)A_A^A]A\[SATH$HHHAuH;k?#uff DfH€<uf~fƒ$HHHt$HHH$eHf$fADH$A\[SATAUAVAWHd$H|$Ht$fAfAH$zIIHHH?HHfHHkHT$L<Ht$LwfAfE} ÃfA(fE~ ÃfAHHkHT$HH$fE9}H$Hd$ A_A^A]A\[1e@LLMMI?MIfEMMkJ;4vEAfD)MMkJ;4sEAfD MMkJf9}SATAUHd$IIHLt,LP@ g AT$I|$H4$JHAD$gHI|$L1jHHHd$A]A\[SATHd$HHIHt!L'L[IHtHLHILHd$A\[1LWE17DDLkK# fAfA!AL9u DHkI AD;G r1SATAUAVAWHd$Ht$I1H$IHtOHJR fAHL`H$f1%HHkI4LLHD$Ѕt ffA9؋$Hd$A_A^A]A\[SATAUAVAWHd$HHT$HL$1H$IWHtgH8ILHtTH‹JR fAL`H$f1-fDHHkIHL$LLHD$Ѕt ffA9Ӌ$Hd$ A_A^A]A\[SATAUAVAWHd$HIHL$LD$1H$H|$HHteILMLHtOfDh L`H$f12DHHkA LD$LLH|$HD$Ѕt ffA9͋$Hd$ A_A^A]A\[SATAUAVHd$HIM1IHt;LHL0Ht(H@xuIVAN HAF AV P@ILHd$A^A]A\[SATAUAVAWIIfM1HLLILHILIHuLIMuL1IMuL IMuMl$A}uIFAV L,AF AF AEAEILA_A^A]A\[SATHd$HM1HtHvP H9r H@HDL`LHd$A\[SATHd$HE1}HtHvP H9r H@HDD` DHd$A\[1H4HH:tHHy4HH8%HY4HH8%Hd$H=Hd$Hd$vHd$Hd$Hd$Hd$vHd$Hd$Hd$Hd$Hd$Hd$yHd$SATHd$HfAHyHA=Hd$A\[Hd$yHd$SATHd$HfAH߁yHAHd$A\[SATHd$HfAH9xHA譈Hd$A\[Hd$xHd$SATHd$HfAHwHAmHd$A\[Hd$wHd$Hd$yHd$Hd$6Hd$Hd$0Hd$Hd$Hd$Hd$Hd$SATH$HAu1HHH1t8E~)H61D; }H:1HMcJ4H16u H1jH$A\[SHd$H<$1jHT$Ht$ MHuHcHT$`u[1H$HtH@r:1L$ALΉυt1Ή19w˅u HaiHD$`HtHd$p[SATAUH0HD(A|B1fDH0HL$ID$HpI<$fiII<$uA9A]A\[SATAUAVAWHd$H|$hIH$HT$Ht$ HFHcHT$`H?0L0IHAE|rAADHIDHH 6KHSH3MHHD$hH<$t H{H4$hH DHIDH;rE9HgHD$`HtHd$pA_A^A]A\[SATAUAVAWH$HH$pIH$HD$HT$Ht$(H$HcHT$hH/L0HH|$p] Ht$pH|$1qIHAEAADHIDHH;Ht$wHuNH 7DKHSH3MHH$pH<$t H{H4$BgH DHIDH;rE9sNHfH|$fHD$hHtH$A_A^A]A\[SATAUAVHd$H .HHL`E|MAADHHDL(I IuI}fI DHHDL;(rE9Hd$A^A]A\[SATAUAVHd$H-HHL`E|KAADHHDL(I I}1 fI DHHDL;(rE9Hd$A^A]A\[Hd$HH6HeHd$Hd$VHd$UHH=}@H]UHH]UHHd$H )HKHEHuHH=DWHz.HEHOHEHuHH=DWH]UHHd$H}uH(HH8uUHuHwH8H]UHH$pHLLLH}HuUHxH(HDžH`H TH|HcH1HH5CH3J1=<u =!u , H}uLeMt%I$H$HHuHH}mHH1HHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$IIHHH5BHL1HuH=XuHEH@H+1HHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$IIHHH51BHIK11}1HH5;BHH1HH8uHEHtHEHt-HUHuH}MH} HUHuH}1H]UHHd$H}HwHEu*HEuHEuEEEH]UHHd$H]LeLmLuL}H}HPEEHEHEHEHEL}ALeMtI$ILmELHuHUAL}LuLmH]HtHIL,LLLA$(}3Hc]HcEH)qHHHH9vS]}3Hc]HcEH)qvHHHH9v]HEHx.uAHELDuHEHHtL#LaDLA$HAHELAHEHHtyL#LDLA$HHEHx.uAHELDuHEHHt'L#L̩DLA$HAHELAHEHHtL#L艩DLA$HH]LeLmLuL}H]UHHd$H}HEEHEH]UHHd$H]LeLmLuH}HuH0SHELH]HELMt-M,$LѨHLAH]LeLmLuH]UHHd$H]LeLmLuH}HuH0HELH]HELMtM,$LAHLAH]LeLmLuH]UHHd$H]LeLmLuH}H(7HEHuHELHELMtI]H覧L0uHELHELMtI]HfLHDz.HELAHELMtvI]HDL`HELAPHELMt6I]HڦDLXHEH)HEHuHELHELMtI]HxL0uHELHELMtI]H8LHDzHELAHELMtHI]HDL`HELAPHELMtI]H謥DLXHEHH]LeLmLuH]UHHd$H]LeLmLuH}HuH8HEHH}HEH@H%HuzEHEH@H5H|/HtHtHtEE EDuLeLmMt I]H譤LD8 H]LeLmLuH]UHHd$H}uHH]UHHd$H]LeLmH}H({LmLeMtgI$H L HEHEHEHEHELHELMt I]H讣L;EHEH^EHELHELMtI]H]L;EdHEH EHELHELMthI]H L;EHEHEHEHUH3HEHUHH]LeLmH]UHHd$H]LeLmH}HuUH@LmLeMtI$HTLE܋E;E|EEE}|EE}|]؃=vhfHUfB$LmLeMt)I$H͡LHcHcUH)qcHEH}| HH]HH-HH9vHEXH]LeLmH]UHHd$H]LeLmH}HHE@P uEH}t1HEHtHEHt HEuHEƀHUHuiH葍HcHUHEu)LeLmMtI]HsL( HELHELMtI]H1HEH%>1H}HEH}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmH}HuH8LmLeMtI$HWLHEHuH}譎HEHc]HcEH)qHH-HH9vz]Hc]HcEH)qHH-HH9vH]HEH]LeLmH]UHHd$H]LeLmH}HuH8LmLeMtI$HwLHEHuH}蝎HEHcEHc]HqHH-HH9v]HcEHc]HqHH-HH9vh]HEH]LeLmH]UHHd$H}HHEHF_CH]UHH$HLLLH}HuHUHH}t)LmLeMtLHELShHEH}t}HUHuˡHHcHUHEHUH}HHEƀ4HUHE苀X XLuALmMtI]H蛒DL0 LuALmMtI]HiDLXHEH}uH}uH}HEH HEHpHhH(踠H~HcH u%H}uHuH}HEHP`貣=訣H Ht臦bHEHLLLH]UHHd$H}HuHHEHHuH}*vH]UHHd$H}HwHEHH}bH]UHHd$H}@uH3HEHy:Et@uH}q5H}H]UHHd$H}HHEuH}xuHUHEX࿉XHUHEX@XH]UHH$HLLH}HuHUHTH}t)LmLeMt7LH܏LShHEH}tNHUHubH|HcHUHEHUH}HOHEƀHEǀ`HUHE苀H2HXuHE苰HEHx胪HEH}uH}uH}HEHӠHEHpHhH(~H{HcH u%H}uHuH}HEHP`xnH HtM(HEHLLH]UHHd$H}ЉuUMDEDMH0v}tHEЋ;Et6HEЋDMDEMuH}*}t HEЋU艐H]UHHd$H}HHEHxuEHE`EEH]UHHd$H]LeLmLuL}H}uEMHpHEHuEf)EuH} ErrHE*YEH-HHHH9vA]HE*YEH-HHHH9v ]HEHME]HEHMEHEHUHUHEDuDmH]LeMt{M<$LHDEEȉƋEЉAH]LeLmLuL}H]UHHd$H}uHHE;Et0HUEHE@PuHUHEH]UHHd$H}@uHHE:EtHfaHcHUHuHH8ħH};pHEHP1H}HuHH8 HEH_1HEHO1EEEHEUH0+1}sH}Hs讅H9H8H9HHP0HEHtH}uH}uH}HEHPpHpLxLmH]UHHd$H]LeLmH}HuH0臵HEEHuH}Ma}t)LeLmMtQI]HrLH]LeLmH]UHHd$H]LeLmLuL}H}HuUH@EHuH}EtHuH=HeuHuH}LRHE@PtCHEHt3HEH@H;Et#HuH=1eu HuH}W)HEHH;EtHEHǀHEHH;EtHEHǀHEHH;EtHEHǀHEHH;EtHEHǀHEHH;EtHEHǀHEHu%HuH=\GOduHuH}KHHEHH;EtH}HV#HEHpH;EtH}HHEH uFHEL DuH]HEL MtM,$LpHDLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHHHEHuH}aHEu[H}IHEH}IHELp`LmHEHX`HtILoLLLHMA$OHELp`LmIHEHEHX`HtȯILmoHULLLA$H]LeLmLuL}H]UHHd$H]LeLmH}HuH0WHEHH;EuHEHHEHEHUHH}u)LeLmMtI]HnLXHEHuKHEHH}HELHELMt諮I]HOnLXH]LeLmH]UHHd$H]LeLmLuH}HuH8SHEHH;EuKHEHHEHEHUHH}u)LeLmMtI]HmLXHEHuKHEHHuHELHELMt觭I]HKmLXHEHtH}u3LuILmMt[I]HlLL`HEHuAHELIHELMt I]HlLL`H]LeLmLuH]UHHd$H]LeLmLuH}HuH0裮HELPH]HELPMt}M,$L!lHLAH]LeLmLuH]UHHd$H]LeLmLuL}H}uH8HEh;EuHEUhHEhrr"HEHpuH}HeHE@PtVH}2uGH}CCIHELp`H]HEL``MtpMLkHLLA0H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH8HEHpH;EuHEHpuHEHpHuHEHUHpHEHpu"HEHpHubHEǀhHE@PtVH}uGH} BIHELp`H]HEL``Mt:MLiHLLA0H]LeLmLuL}H]UHHd$H]LeLmH}HH۫HEHPuHELPHELPMt覩I]HJiLt@HEHtHEHPHP HUH@(HEHEHP@hEHEHPHHHJ HB( .`Eؿ !`EԋEHcHH!HH!H ƋEHcH HH!HH!H HEHP|HEHP{HEHPHUHHEHPu{HEHPHEHB HEHB(HEHHEHA H8WHEHEH]LeLmH]UHHd$H]LeLmH}HHHEHPuHELPHELPMtƧI]HjgLt@HEHxtHEHPHP HUH@(HEHEHP@hEHEHPHHHJ HB(2N^Eؿ1A^EԋEHcHH!HH!H ƋEHcH HH!HH!H HEHPzHEHPyHEHP"HUHxHEHPuyHEHPHEHB HEHB(HEHxHEHa H8)THEHEH]LeLmH]UHHd$H]LeLmH}H HEtoLeLmMtI]HeL(u/LeLmMtƥI]HjeLu H#H}jH]LeLmH]UHH$@HHLPH}HSHEHDžXHUHusHQHcHUHĈH`HEH@H@ HhHĈHpHEL`MtԤI$HxdHHXcHXHXHXHxHlĈHEH/H@HEH`H}H}HUHH=gHH5HtuHXH} HEHt,wHHLPH]UHHd$H}@uHӥHE:EtHE:EtN}u HE HEHEu@uH}HbH8GH]UHHd$H]LeLmH}H +HEHHEtHHEu9HE@Pt)LeLmMtݢI]HbL H]LeLmH]UHHd$H]LeLmLuL}H}HP胤HEt5LuAH]Ht]L#LbDLA$@ H}uHHEH!HXu}HE;EuHEHEuHUHEHEuHUHEDDmH]HELeMt聡M<$L%aE؉HDDEAEAAH]LeLmLuL}H]UHHd$H]LeLmH}H( HE@P uHEHu!HEH tHEHHEHEHEH}Dt1LeLmMt蚠I]H>`LtEH}|H謍LHH}{H9tH}HH)WH]LeLmH]UHH$pHxLeLmH}HuHHEuHEHUHunHBLHcHUuBHEHxt5HExu)LeLmMtzI]H_LH pHEHEHtgrHxLeLmH]UHHd$H}HuHHEHtHEHptHE(uHE@PuHEfx@H}HEfxt*HH8uHH8H`tHH8uHpH8H`HEt9HEt&H<H8uH-H0t H}H]UHHd$H]LeLmH}HuH8ןHE@PuHEHxtHEH@@t tQHEH@HxҩHEH}u)LeLmMtaI]H]LHEHu|HEH@HcpHEH9 E}t9HEHXHSHH9v HsHEHu9 E}uuHH8SH]LeLmH]UHH$HL L(H}HuHhHUHujHHHcHUucHEu+LeLmMt I]H[L )LeLmMtI]H[L kmHEHHxH8jH>HHcH0u9LeLmMt茛I]H0[L t lnlH0HtooHuH}=HL L(H]UHHd$H}HHEHt4HE@Pt%HEHtH}HH}HH]UHHd$H}H藜HEuHErr4HEƀHEHuHEHHuHEH]UHHd$H}HH]UHHd$H]LeH}HuH HEHHH9u*HH-HH9v͙HEDIHI9uLH-HH9v莙DH}PH]LeH]UHHd$H}H7HEHuHEHHuHEH]UHHd$H}HuHHEHtXHEH@H%HBHEPHEHcH9uHEPHEHcH9uHEHuH}讲H]UHHd$H]H}HCHE@PtiHEƀHEHcHqsHH-HH9vHEHUH5HH8HkH]H]UHHd$H]H}H裙HE@PtiHEƀHEHcHqӗHH-HH9vvHEHUH5!H:H8HˈH]H]UHHd$H]LeLmH}HuH(HEHcHqAHH-HH9vHEHEHEtnHEu(HUHE|HUHEHEu(HUHEHUHEHEuHEuHEuHEu4HEƀLeLmMtȕI]HlUL HEuCHEƀHEu)LeLmMtvI]HULP HEu H} HEuHEu H}=HEƀHEƀH]LeLmH]UHHd$H}HuHӖHEHtdHEHxuWHEH@@ %w@HEH@HU@;uHEH@HU@;uHEHuH}όH]UHH$0H8L@LHLPLXH}HuHHEHH}{E=HEHEHEH}2HUHp bH5@HcHhH]LmMtMeL#SHA$xH}HcHq诓HHHH9vQH``}EEEuH}HH=YCEu>uH}ȘILuLMMt迒M<$LcRHLA`;E~$dH}HhHteH8L@LHLPLXH]UHHd$H]LeLmLuH}HuH0#HE@PuHEuHEHu@HEHDLeLmMtǑI]HkQLD=HHD$LeLmMt舑I]H,QLDLuALmMtYI]HPDLH]LeLmLuH]UHHd$H]H}HuHH]=v 3H}aH]H]UHHd$H]LeLmLuL}H}HuHH蟒H}6HcHqHHHH9v舐HEE}\EEEuH}+IHEILMMtM4$LOHLAE;E~H]LeLmLuL}H]UHHd$H}HuHÑHEH}HH]UHHd$H}HuH胑HEHJH]UHHd$H]LeLmH}HuH(GHE@PtHE(tHEHuwH HHuaHHH(tEHHHHu(HHHHHEH詏 LmLeMt腎I$H)NLP H]LeLmH]UHHd$H]LeLmH}HuH('LmLeMtI$HML` HE@PtHE(tHEHuwHHHuaHHH(tEHHHHu(HqHHHHEH H]LeLmH]UHHd$H}؉uHUHMDEH(H}tHH00HU؋EH0t"HH=ѷEHU؋MH0HE؋UH0}HuHUDž1H]UHHd$H}uHUHMH lHUEH0HuHU萃1H]UHHd$H}H'HEAHH=HEHEH]UHHd$H]LeLmH}H ۍHEH_uHEHuHEuHE@PuHEH- 7HELHELMtaI]HKLH}fHHEH H]LeLmH]UHHd$H}HHEE}tHE@Pu;HH0tttEE EEH]UHHd$H]LeLmLuL}H}H0cH\H8uHMHHH;Et?H}t0HEHu HE(tHEtJH}AHELp`H]HEL``MtЉLILrIHLDA8H]LeLmLuL}H]UHHd$H}HwHEH[CH]UHHd$H}HuUH@HEHH}lbuH}H6H]UHH$ H L(L0H}H܊HUHu*WHR5HcHUuOH}NHEHuHEHHuHEHEH@Hu豄1H}xYHEHHUH@VH4HcH8u9LeLmMtI]HGL t Y[}YH8Ht\\7\H L(L0H]UHHd$H}HuH(蓉HEHuHEHHUHuHEHEH8z1E+HEH8umu1HEHUHUHuH}UHEH8Huz1uH]UHH$ H L(L0H}ḦHUHuUHB3HcHUu)HEHuHEHHuHE XHEHHUH@TH2HcH8u9LeLmMt-I]HEL t W(YWH8HtrZMZH L(L0H]UHHd$H}@uH資HUEHEuRHEHt9HE@Pt*HqHuH}HH}.3H}H]UHHd$H}H'HEH8uHEH@HuHE8H]UHHd$H}H׆HEuHErr4HEƀHEHXuHEH`HuHEXH]UHHd$H]LeLmLuH}H(GHEHc,Hq葄HH-HH9v4HE,HE,tqLeLmMtI]HCLHELuLmMt誃MeLNCL@A$H}?H]LeLmLuH]UHHd$H]LeLmLuH}@uH0CHEHHc}u H}T/LuALmMtI]HBDLH]LeLmLuH]UHHd$H}H跄HE,EEH]UHHd$H]LeLmLuH}HuHUHMHPkHEHUHuH}HHEH;EtH}ۉHcHq苂HH-HH9v.}cEE܃E܋uH}ۇHELuLmMtӁMeLwALA$t H}HuU;]~H]LeLmLuH]UHHd$H]LeLmLuH}H0WHPHTE}uLLDEA$HEDHELh`LuHEHX`Ht~IL>LLDA$H}H]LeLmLuL}H]UHH$HLL L(H}HuHQHUHuLH*HcHU7HELLeHELMt~I]H=LLHxH82LHZ*HcH0pLeLmMt}I]HH=L HEH u7HEL HEL Mt]}I]H=LNHELIHELMt}I]HآHHuH(آHHHHEHE6HآHHxxuHעHHxxHHEHEHExEHE}t/HEHpH=kr'uHEH@HEE}t4HxעHHuHbעHHHEEHExLE1*v EHעH8HH-HEHUHEHEHEHEȋEt)st\H֢H8tPH֢H8FEH|֢H8EEEEEEEHEHEHEHE*H}u!H}cHEHUHEHEHEHEH֢H8Wt)HբH8qHEHUHEHEHEHE*H}u!H}HEHUHEHEHEHEYH}u#H}6HEHUHEHEHEHE2HuբH8HHHEHUHEHEHEHEH}u7H}EH;Eu&H}RHEHUHEHEHEHEHE(tGLeLmMtqI]Hv1LHEHUHEHEHEHEE\H}&uuH}'MHHu/u4H~ԢH8&HH蛉HEHUHEHEHEHEUȋE)HcҋE؋M)HcH)qqHH?HHHc]HqdqHH-HH9vq]ŰE)HcҋE܋M)HcH)q$qHH?HHHc]Hq qHHHH9vp]}udH}tU܋E)HcHH?HHHc]HqpHH-HH9vNp]U؋E)HcHH?HHHc]HqepHHHH9vp]UHcHH!HH!H ֋EHcH HH!HH!H HҢH8FHEH}u#H} HEHUHEHEHEHE'H_ҢH8HEHUHEHEHEHEHcEHxE؋U)HcHcUH)qkoHpHpH;x| HpHxHEHcEHxHxH;E HxH]HH-HH9vn]HcEHEU܋E)HcHcEH)qnHEHEH;E|HEHEHEHcEHEHEH;EH]H]HHHH9vH]LeLmH]UHHd$H}H7kHEEEH]UHHd$H}HkHE EEH]UHHd$H}HuHUMDEH(jHEu*}t"HEHUHEHUHUHuDEMH}H]UHHd$H}H7jHEHEuHEhrrHEht'HEhtHEu7HʢHHHEH}uHE(tHEHEhtHEHpHEH}tH}jtH\ʢHHHEH}uH}jtHEHEH;EtHEHEH]UHHd$H}HhHEHKH]UHHd$H}@uHhHE:Et@}u+HEHExtHEǀx@uH}H]UHHd$H}@uHCh}uHEttt@@H}rH]UHHd$H}HuHgHEHtHH=r萬HUHHEHHu衲|!HEHHuVHuH}IyH]UHHd$H}HuHSgHEHuHEHHuϲH]UHHd$H}HgHEHu'HEHtH}@H]UHHd$H}HfE@EHEH]UHHd$H}HuHUHofHEHH;Eu]H}tHEHt@H}tHE苰H} "HUHE苀H} HUHuH}H]UHHd$H]LeLmH}H0eHEHtgHEHtWLeLmMtcI]H(#LHLmMt\cMeL#LeHEH9tH}uEEEH]LeLmH]UHHd$H}HuHdHEHH}賐H]UHHd$H}HuHdHEHpH}ru HEH@H]UHHd$H}HuHcdHEHpH}u HEH@H]UHHd$H]LeLmLuH}HuH8dHE@PuHEt EEHEHuFHELLeHELMtaI]HF!LLuTLuLeLmMtjaI]H!LLuHUHuH*uEEH]LeLmLuH]UHHd$H]LeLmLuL}H}HuHUHPbEH}nhHcHqaHH-HH9v`AA}E@EEuH}cfHEHuH=/tHE؀uhLuH]LeMt/`M,$LHLAu>HuH= uHUHuH}uD;}~LEEH]LeLmLuL}H]UHHd$H}HuHaEHE@PuHEtAHEHHu&HuHuHuHuEEH]UHHd$H]H}HuH(`HEuH}fHcHq4_HH-HH9v^}EfDEEuH}{dHEHuH}juHuH}u/HuH=^!uHuH}uE ;]~EEH]H]UHHd$H}HuH_HEH=PHtHEuEEEH]UHHd$H]LeLmLuH}HuH8_H}u@HELpLeLmMt^]I]HLLuEEEH]LeLmLuH]UHHd$H]LeLmLuL}H}H@^HE@PuHEtH]LeMt\M,$LPHAHEHuHEHH< HcHq\HH-HH9v_\HEE}rEDEEHEHHu IL뀻Du(IIMt[M4$L~LA E;E~HuHH]LeLmLuL}H]UHHd$H]LeLmLuH}HuH@c]HEtHE@PuH}5HcHq[HH-HH9v*[}EEEuH}C5HEHEXu:HEu+LuLmMtZMeLNLA$HuH=S u HuH};]~nH]LeLmLuH]UHHd$H]LeLmH}HuH@'\HEHH;EtH}uH H8HcHqDZHH-HH9vY}EfDEEuHH8HH;EtiuHH8ԩH;EuOHEH@ HEHE HMH}ܮHPIHH=ZHH5H});]~cHEHudHEH@PtNHELHELMtXI]HoLHEHHHE@PuH}uHE@PuHEHEHUHHEHu1HEHHu lHEHHuH}H]LeLmH]UHHd$H]LeLmLuL}H}uH8YHEHT[uPHE;Eu?HELx`DuH]HEL``MtWML.HDLA(HUEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uH8YHE;Et[HUEH}wZu?HELx`DuH]HEL``MtVMLbHDLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uH@PXHE;Et;Ettu/LuALmMtVI]HDL0 HE@Pt(HEHMH&;tEEHEUHE@Pt}uHEH׸4H};HE H}XubHELp`]L}HEL``Mt>UMLLLAH}HHX H}H]LeLmLuL}H]UHHd$H}HVH]UHHd$H}uHVHE;EuIHUEHE@Pt-HEuH}/HNjUH"4LH]UHHd$H]LeLmLuL}H}ЉuUMDEDMHpVHEЋ|;Et8HEЋ;Et'HEЋ;EtHEЋ;EtHEЋEH}оEHEEHEDuDmH]LeMttSI$ILHDDEEAA}u*H]LeMt.SM,$LHA uH}LHUHEЋ|HUHEЋHUHEЋHUHEЋH]LeLmLuL}H]UHHd$H}@uHTHE:EtJHEE@uH}薆}t(HEuHE@Pt H}vH]UHH$`H`LhLpH}HuHSHDžxHDžHDžHUHu H=HcHUHEHH;EtrH}uLeLmMtfQI]H L umHEH;E[H}@,3H;EuGHE@Pu3LeLmMtQI]HLuHqHHDž HuH10HHHDž HpHHDž HuH00HHHDž HpHHDž H}@62HHx00HxHHDž HpHHDž H}@1H;EHDžHpHHDž HE@P(HDž HpH8HDž0 LeLmMtfOI]H LHHDž@HvpHXHDžP LeLmMtOI]HL(hHDž`HPpHxHDžp LeLmMtNI]H^LEHEHH0gH pHHDž HuHx.0HxH(HDž HooH8HDž0 LeLmMt NI]H L(HHDž@HIoHXHDžP LeLmMtMI]HW LhHDž`H;oHxHDžp LeLmMt]MI]H LEHEHHg 0HEHHEH}HTЮHPHH=RN=HH5H;HEHUHHEHu3HEHH=CutHUHEHHHEHuHEHH}5`HE@P tAHEu H} LeLmMt)LI]H LX HxHHۉHEHtH`LhLpH]UHHd$H]LeLmLuH}HuH8MHEHH;EtHEHHEHEHUHHEHuHEHHu _H}u0LuLeLmMtKI]H LL`HEHuQHEHH;Eu>HELLeHELMtJI]H[ LL`H]LeLmLuH]UHHd$H]LeLmLuL}H}@uH8OLHE:EtjHEUH}MuNHE@Pt?HELx`DuH]HEL``MtIML HDLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}@uH@KHE:EtHEUHE@PtjH}Lu[HEHUHEDHELp`LmHEHX`HtIILLLDEA$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}@uH@JHE:EtHEUHE@PtjH}Ku[HEHUHEDHELp`LmHEHX`HtHILLLDEA$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}uHHIHE(;EtHE(EHEU(HE@HE(tH}}tH}H}JuLHEHP`HUD}DuLmHEHX`HtFILLDDH}A$H]LeLmLuL}H]UHHd$H]LeLmLuH}uH0HHEx;EuHUEx}t/LuALmMtDFI]HDLH}HE@PukH}Iu\HEuMHEt;HEt)LeLmMtEI]H\L H]LeLmLuH]UHHd$H}uHdGHE;EtHEUH}諺H]UHHd$H}HuHGHEHH;Et3HEHUHHEHuHEHHuXH]UHH$HLLLLH}HuHUHpvFH}t*H]LeMtYDMLHAUhHEH}tHUHuHHcHUHEHEǀHEƀHEƀHEƀHEƀHcH8HYHHP(HhH(H HcH HEHL}AIH]HtRCL#LLDLHA$ H]HtCL#LLHHrH9uHE@PtHE胈HH HHHcHu)LeLmMtBI]H:L HE胠HHtHH8HHHP0H HtPHEH}uH}uH}HEHHEHpHhH;HcHcH`u%H}uHuH}HEHP`5+H`Ht HEHLLLLH]UHH$pHpLxH}H#CHDžHUHufHHcHU'H}H5tpQ;tH8u~LeMt@I$HYHHHHEHEHMHlǮHPIHH=c;HH5HLeMt7@I$HHH,HHEHEHUHƮHpHHVHHE10HHuH8d0SH}HEHtHpLxH]UHH$HLLLLH}HuHUMH(CAH}t*H]LeMt&?MLHAUhHEH}tHUHuP HxHcHx1HEHEH}'*HUHEHHEǀHEǀHEǀhHEǀHEƀHEƀHSHt tQt?WHEL``HEHX`Ht>ILLAHHUHEƀ HEƀHE tHEǀHE@tHEǀ(HUH}HlLuAH]Htx=L#LDLA$HEƀHEHǀHUHEX XH]Ht=L+LH]Ht=L#LLA$HpHpIHEHAGHE7HLeMtH%HD$LuH]Ht;L#LLDA$H}H5\nH}#`HEH}uH}uH}HEH0 HxHpHXHHHcHpu%H}uHuH}HEHP` ] HpHtHEHLLLLH]UHHd$H]H}HuH ;HEHH}HEHtHEHptHE@PtHHHH;Eu'H}HEH}uH}HUHB HEHx tnH0HHH;EtHHuH}t,HEX HHHH9v8HEX HEXHHHH9v8HEXH]H]UHHd$H]LeLmLuH}H0g:HEuH}G}LeLmMt.8I]HL uKH HHH;EtEHHLLeLmMt7I]HvLLuEEHE(t E}u EELuLeLmMtb7I]HLLh Eytt%teH}ZH}QJ}u7HL HL(Mt6I]HL H}H]LeLmLuH]UHHd$H}H8HH8uHuH}H8%. H}H]UHHd$H]LeLmH}H(;8HEHtjLeLmMt6I]HL(u5LeLmMt5I]HLuEE H}vEEH]LeLmH]UHHd$H]LeLmLuL}H}H8c7HE(tHuHEt ELeLmMt"5I]HL HcHq]5HH-HH9v5AA}EEEDuH]LeMt4M,$LKHDA HIIMty4MuLLA tE9D;}~EHEHuHEHHUHuHEEH]LeLmLuL}H]UHHd$H]LeLmLuH}HuH@5H}jHcHq4HH-HH9v3}E@EEuH} HEHuH=lح/uhHuH={*u9LuLmMt,3MeLLA$ tE)HuH}tE;]~\EEH]LeLmLuH]UHHd$H}HuH4HEHHEH@H]UHH$@H@LHLPLXL`H}HuH:4HEHtHE@EHHXuvHEudHE;EuPE9H}wUHc]Hq2HHHH9v1]HEHUHuHHcHUHEHEusHxHUHpHEHhDuLmLeMt0M<$LLDh‹pAxAAQ]} EEEH}~S;]~HEHtH@LHLPLXL`H]UHHd$H]LeLmLuH}H(72LuLeMt!0M,$L@LAH]LeLmLuH]UHHd$H]LeLmLuL}H}HP1H}ZHHEEHHXuHEu}HE;EuHEHEuwHUHEHUHEHUDuLmLeMt/M<$LLDE؉‹EAEAALeAH]Ht.L3LjDLAHE@Pt4HEu%H}& HHEHB4&H}!H]LeLmLuL}H]UHHd$H]LeLmLuH}H(0HEtH}:LuLeMt-M,$L@LAH}肦H]LeLmLuH]UHHd$H}H/HEHuHEHpuH}-EEEH]UHHd$H}H'/HEH;uHEtttEEEH]UHHd$H}H.EEH]UHHd$H}H.HEHuHEHPuEEEH]UHHd$H]LeLmLuL}H}H`3.HEHEHu5H}@HEH}uH}HEHEUH}m/uLmLeMt+I$HdLtoHEuHExtSvt@jH}HHRH8umHEMHEEHEEUHcHH!HH!H ֋UHcH HH!HH!H HэH8tfHEHHHH;Eu=HHH@y H;EuHjHHHE HHEhHEHpH=h!u4HEHx@ H;EuHHHHE HHE HsHEHEHUHUHEHEHUHEDHELh`H]HEL``Mt)ML*HLDEȉEAEAAPH}HHVH8ykHE$H}HH0H8SkHE|HEEHEEUHcHH!HH!H ֋UHcH HH!HH!H HH8UdHEHEH]LeLmLuL}H]UHHd$H}HW*HEH@ttEHH!HH!H!H8cHEHHHUHH;BuAH׊HH@ HUH;BuHHHCHEHH8NyHEzHHH@xHEH}u7HEH@H;Eu'H}@N HUH;BuH}HEH<H8xHEH'H8xHEHEH]UHH$`H`LhLpLxH}HuH(HEHFEH}uHE@PuHE@PuHEunHEHuQH}@SHEH}u3LuLeLmMt.&I]HLL E HE@PtHEH;EuHEHH;EuvHUHEHHEHu3HEHH=ptHUHEHHHEHuHEHH}09HEHǀHXHHEHBpH}ugH=HHUHPxHuH'H8IHuH=TuHHHUHH뇢HHǀHևH8螄H}uHEtHUHEHUHuHHcHUu&HuHfH8}t;HnEHUHEHEHtHt+HEƊEH`LhLpLxH]UHHd$H}H8%HEH@Hu5HEH@HHEHxtHEH@HǀHEH@HtHEHPHEH@HfDSHEHEH@Ht EHEH@HHEHEHuuJHE@Pt;HELp`LmHEL``MtyLHLLPHEHEH]LeLmLuH]UHHd$H]LeLmLuH}H0EHE(rsXH}uIHE@Pt:HELp`LmHEL``MtLH_LLEEH]LeLmLuH]UHHd$H]LeLmLuL}H}uH@PHEHE(rsaH}uRHE@PtCHELx`DuH]HEL``MtMLHDLAhHEHEH]LeLmLuL}H]UHH$HLLLH}H(uH}t/H0HHH=HH5HH6qHuH}HL0AHL(Mt I]HDLHYH8uHYH8Q HEuRLeLmMt I]HBLt#HEuHE(tH*赱Hu 話HHHiH"pH8HUHuhH萹HcHxHEHEhtH}[u H} gHEHEHoHHHoHH`~DHoHHEHHuHnoH81H_oH8w:H}9H`H H詸HcH:HL0AHL(Mt I]HDLHt HuHnH8Hh=HEHEH}HHHHcHH}HHHELp`LmHEL``Mt# LHLL @HH`PHxHcHXu5HsL HiL(Mt I]H^L0HXHH@HHHcHu]H[mHTu>LuHBmL H8mL(Mt) I]HLL %HHtoJHlHuH}űHEuH}NHEuHH`H HcHuHdlH8@HHHHHH贵HcH@u]HlHTu>LuHkL HkL(MtI]HLL NDH@Ht#HEEH} u &HH} H9uHEHELp`LmHEL``Mt6LHLLHEtH}HuHkH8<H}HHHtXH}HjH8`>H}gu H}HEHEht'H} uHE@Pt H}gHHtfH:jH8肆HxHtAEHLLLH]UHHd$H}HHEHxHHHiHH`xPHiHH`=HiHHHiHHHoiHH`?HWiHHǀH]UHH$@HLLH}HHEHDžHDžHDžHDžHDžHpH0H-HcH(HEH@(@H/HH HEH@@H|/HHHEL`HELhMtI]HL@H./HHHEH@@H/HHr/HHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$H HD$H&HD$HH$L &LH %HH5&H+0H'HHEHpHE/HHH'HHH}HEHEH@uHuH}H&CHEL`HELhMteI]H LtHuH}H'BHEH@uHuH}H'BHEH@(tHuH}H 'fBHUHH=$HH5H 8H@H@Ht@Hh@H\@H}S@H(HtrHLLH]UHHd$H]H}H EHeH8LHcHqPHH-HH9v}EfEEuHdH8LHEHEH@H;EuCHE胸(u4HEHt$HE耸uH}uE;]~뇊EH]H]UHHd$H}HuHEHEHH;EtMHEHH;EtMEH]UHHd$H}HuHHEH}HE@EEHUEH0Hu0}sH]UHHd$H}HuHUMH <EHUHMH}ArH]UHHd$H}HuHUHHEHMH}HFsH]UHHd$H}HuHUMH EHUHMH}A`rH]UHHd$H}HuHUH_HEHMH}HrH]UHHd$H}HuHUMH EHUHMH}AqH]UHHd$H}HuHUHHEHMH}H&rH]UHHd$H}HuHUHMH HEHMHuH}HctH]UHH$0H0L8L@LHLPH}HuHHEHEHDžhHUHxJHrHcHpH}H LShHEH}tHUHuĺHHcHUHEH}HEHL}AIH]HtL#L赫LDLHA$ LmAH]HtL#L{DLA$0 H}/H}@H}ţH}gHEH}uH}uH}HEHHEHpHhH(藹H迗HcH u%H}uHuH}HEHP`葼臼H HtfAHEHLLLLH]UHHd$H}HuHHE(HuHEHxEEH]UHHd$H}H0GHEH{HEHUHEHEHEHEHEUEH]UHHd$H]LeLmLuL}H}HPHEHPHUHEHEL}Hd}L0HU}L MtM,$LJLLLEHuA8tE=vEEHoLHXEEH]LeLmLuL}H]UHHd$H]LeH}H@HEHCHEHUHEHEHEHEH]Lcc HcCI)q5LH-HH9vDeEH]LeH]UHHd$H}H0HEHHEHUHEHEHEHEHEPUEH]UHHd$H]LeH}H@/HEHcHEHUHEHEHEHEH]LccHcI)qVLH-HH9vDeEH]LeH]UHHd$H}H@HEH}HuHEHEHEHEEEEEHEHUH]UHHd$H}H@7HEH}HwuHEHEHEHEEEEEHEHUH]UHHd$H}H8HEH}HuEuEEEH]UHHd$H}uHtEH}6+HEHEH]UHHd$H}uHUH0HEuH}H+H]UHHd$H}HuUH}t HEHlH]UHHd$H}HuHUHMH0HH==ҡH赞HEHUHEHBHEH0HuA0HUЉBEEH]UHH$0H8L@LHLPLXH}HuUHMHHEHDž`HUHp;HcHcHh9HEHEHEHpH}AH9.LeLmMtI]H)LLeLmMtRI]HLHcHqHH-HH9v0ALuH`LeMtM,$L薣HLDAH`Hu1Hu0LuLeLmMtI]HKLLPEH`g!H}^!HhHt}EH8L@LHLPLXH]UHHd$H]LeLmH(HFL(HFL MtI$H蓢LHHuH;HEHEHEH]LeLmH]UHH$HLLH}HuHUHdH}t)LmLeMtGLHLShHEH}tHUHurH蚎HcHUHEHUH}HHH=ALpHUHHEH@`HH=-QK/HUHHH=:C(HUH0HH=uHUHHH=WHUHHH=9HUHHH=HUHHUHUXHH=OHUH`HH=Ql(HUHpHMHFHeHHeHHHMHFHeHHeHHH*HHHEH}uH}uH}HEH谱HEHpHhH([H背HcH u%H}uHuH}HEHP`UKH Ht*HEHLLH]UHHd$H]LeLmH}HuH0WH})LeLmMt:I]HޞLEfDEEHEUHF0}sHHHdHHdHHHHH dHHdHHHEHF0HEH}F0HEHmF0HEHh]F0HEHMF0HEH=F0HEH-F0HEHF0HEH` F0HEHE0HEHpE0HEH}HEH0mH}HA?H}uH}uH}HEHPpH]LeLmH]UHHd$H]H}HuH oHEHHcXHqHH-HH9vX]2Hc]HqHH-HH9v$]}}uH}'H;EuEH]H]UHHd$H]H}HuH HEHHcXHqHH-HH9v]2Hc]HqHH-HH9vd]}}uH},H;EuEH]H]UHHd$H]H}HuH HEHHcXHq5HH-HH9v]2Hc]HqHH-HH9v]}}uH}&H;EuEH]H]UHHd$H}HuH3H}t5H}t,HE@PuHEHHu~| H=h+70HEHxtHEH H;Eu-HEHHuHEHHUHuH= Nu]HEHxtHEH H;Eu-HEHHuHEHHUHuH}H]UHHd$H}HuHH}t5H}t,HE@PuHEHHu.| H=P50HEHxtHEH3 H;Eu-HEHHuHEHHU>H]UHHd$H}HuHHEH}H?H]UHHd$H}HHEH;E}}uH}#HEHEHEH]UHHd$H]H}HsE4fHcEHHqHH-HH9vY]H}";EuH}Z#tH}";EtEEH]H]UHHd$H]H}HuH0EElEH}"HEHEH;EtEHEu?Hc]HqHH-HH9vf]H}!;EEH]H]UHHd$H]H}HuH(HEHHcXHqEHH-HH9v}XEfEEHEHu\ HEHE@PtHEHx HuHt;]~HEHEH]H]UHHd$H]H}HuH(/HEHHcXHquHH-HH9v}XEfEEHEHuHx HutHEHufHE;]~HEHEH]H]UHHd$H]H}HuH(_HEHHcXHqHH-HH9vH}XEfEEHEHuHEHE@PtHEHx Hu訿t;]~HEHEH]H]UHHd$H]H}HuH(HEHHcXHqHH-HH9vx}IEfEEHEHuHEHEHx Hut;]~HEHEH]H]UHHd$H}HHUH<ծXH]UHHd$H}HuHE@EEHUEHHu0}sHuH}9?H]UHHd$H}HuHUMH EHUHMH}A 8H]UHHd$H}HuHUHHEHMH}Hv8H]UHHd$H}HuHUMH EHUHMH}A7H]UHHd$H}HuHUH?HEHMH}H7H]UHHd$H}HuHUMH EHUHMH}A7H]UHHd$H}HHEHH]UHHd$H]LeLmLuH}fuH@sHEH#fEHEHHtH@HHqHEH5~HEHHMHpLmMHEHOoHHHH9vHInfEfA\fEf;EuJuH}HHJdL0H@dL(MtMeL5LHA$H]LeLmLuH]UHHd$H}HGHEHH]UHHd$H}HuHUHHEHMH}H5H]UHHd$H}HuHUMH EHUHMH}A4H]UHHd$H}HuHUHHEHMH}H&5H]UHHd$H}HuHUMH L0H>L MtlM,$LjLLAt,HEHH5HEHOHEHHEHEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H8ëHEHtDIHmnL%fnMt蒩ML7iHLA8HUHHELH<L0H<L Mt?M,$LhLLAt,HEHH5쩮ǞHEH "HEHHEHEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H8蓪HEHtDIH=mL%6mMtbMLhHLA8HUHHELH;L0H;L MtM,$LgLLAt,HEHH5藝HEHHEHHEHEH]LeLmLuL}H]UHHd$H}HuHsHEH}H HEHHu HEHHu HEHHu HEHH;EtHEHǀHEH(H;EtHEHǀ(HEHH;EtHEHǀHEH@xH;Et HEH@xH H8JH]UHHd$H}HuH cEHEHH;EudHEHEHu#HEHHH]](H;EuHEHǀE^HUHEHHEHEHu#HEHHH\軂H;EuEEH]UHHd$H]LeLmLuH}fuH8SHEff;EuH}fEHUfEfH}f;EuUH}fH}8HH8L0H8L(MtդMeLydLHA$H]LeLmLuH]UHHd$H]LeLmLuH}uHUH8pE}ttH}tZH7H8uKH7L0AH7L(MtI]HcDLHHUHHEHUH-uH}H}uHEHHUHu(/H]LeLmLuH]UHHd$H]LeLmLuH}HuH0sHEHtDIHhL%hMtBMLbHLA8HUHHELH]HELMtM,$LbHLAH]LeLmLuH]UHHd$H]LeLmLuH}HuH0蓤HEHtDIH=gL%6gMtbMLbHLA8HUHHELH]HELMtM,$LaHLAH]LeLmLuH]UHHd$H]LeLmLuH}HuH0賣HEHtDIH]fL%VfMt股ML'aHLA8HUHHELH]HELMt9M,$L`HLAH]LeLmLuH]UHHd$H]LeLmLuH}HuH0ӢHEHhtDIH}eL%veMt袠MLG`HLA8HUHhHELhH]HELhMtYM,$L_HLAH]LeLmLuH]UHHd$H}HHEHUH(H;BxuHUHEH@xH(HHEHUH H;BpuHUHEH@pH HH]UHHd$H}H wHEH@H8u%HEH@H@HEHpHEH@8HEH@H躒0EBDHEH@Hu90HEHUHEH@H HEHpH}UHEH@HHu蛒0uH]UHHd$H}H觠HEH@HHu%HEH@HPHEHpHEH@HHEH@H(HEHxH]UHHd$H}H'HEHHDHMHHM7H]UHHd$H]LeLmH}H8˟HEH uHEL HEL Mt薝I]H:]Lu^HEH HEHm@H}YHEH}u3LeLmMt8I]H\LuuHEHUH H;(tHEH((tHEL(HEL(Mt趜I]HZ\L HuDHEL(HEL(MtxI]H\L HH7HEL HEL Mt4I]H[LHEH(utHEL(HEL(MtI]H[Lu7HEL(HEL(Mt訛I]HL[LH]LeLmH]UHHd$H]LeLmH}HuH8WHE@HH}HEH}u5LeLmMt'I]HZLuEEEH]LeLmH]UHHd$H}؉uHUHMDEH(踜H}tHH/HU؋EHt"HH=>߶SHU؋MHHE؋UH}HuHUw0H]UHHd$H}uHUHMH HUEHHuHU@0H]UHHd$H}HuHӛHEHHu H]UHHd$H}HuH蓛HEHHu H]UHHd$H}uHUH0PHUEȞ0E5HEUHuI0HEHUH}HUHuUHEUHHu躌0uH]UHHd$H}H跚HHuYHuHH8߫HEH}tHuHH8OHEH}tHuHgH8HEHEHEH]UHHd$H}HuHHEHH`)fDHEHH}蔃HEHHEH}uHEH8tH]UHHd$H}H藙HEHEDHEHHEH}uHEtH}uHE@PuHEHEH]UHHd$H]H}HuHHEHUHHEH8@赦H=HUHBH]HEHxuxHH8ufHHuQ;HtEEf%ft0Df%ftDf%ftCCHExupHOHHuZH9HHu;HEHx@xHHHH@wH9uHE@H]H]UHHd$H}H觗HH8uHuHH8uFH}HH]UHH$HLLLH}HuHUHH}t)LmLeMtLHTLShHEH}t/HUHu+cHSAHcHUHEH~H-HHEǀHEǀ\HEǀ`HEHǀHEǀHEHǀHEǀHEǀHEƀHEǀHEǀ HEǀHEƀHEƀHEƀ HEHǀ(HMHHH0H8IH.DL%'DMt胓ML(SHLAxHUHHEHHMH?HP HH(HH=O1/HUHHEǀHEƀ4H9HUHHMHB<H߮HH߮HHHEH-HEƀH=6HUH{$HEƀHUH}H4?H}@HH=ao蜟HHHHEH}uH}uH}HEHcHEHpHhH(f`H>HcH u%H}uHuH}HEHP``cdVcH Ht5ffHEHLLLH]UHHd$H]LeLmH}HuH0WH})LeLmMt:I]HPLH}t H=mP/HEHEHuHEHHuHEH}S:HHH>HH4HHHEH9HܮH;t#HHHܮHHܮHHH}NH}@"Hh6HHEH1/H}AHEH/HEH(/EEEHUEH¨/}sH=H}H?HE H};9HEH+H}@oH(HHHH|HH;EtHjHH|HH}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuH}HuUHxHEH}H}tHEHH;EuEE}u}uUH}o"H}MHUHEHHEH7XHEHUHUHEHHEHYHE苀tt$}HELLeHELMtI]HMLLHEHUHHEHHEE;E}"E;E|E;E}E;E|tiHE胸t HuH}%HE胸t(HEHtHEHtHE苰H}.HE苰H}. H}%KH]LeLmLuH]UHHd$H]LeLmH}H 軎HT L(HJ L Mt蛌I$H?LL(H]LeLmH]UHH$pHHxHuHUMHDHLAU`HEHtWHEHH;Et8HEHǀLeLmMt@I]HCLUHuH}諏HXL`LhLpLxH]UHHd$H}HuHӅHEƀ HEHH;EtHEHǀHEHH;EtHEHǀHEHxH;EtHEHǀxHkHH@pH;EtHUHH@pHCHH@xH;Et'H-HH@xHHHǀHHHH;EtHHHǀHEHH;EtHEHǀHH8~H]UHHd$H]LeLmH}H kHL(HL MtKI$HALH]LeLmH]UHHd$H]H}HHEHcHqMHH-HH9vHEHEHhtHH=(:HUHhHEHXHEHh荶 HEHǀXHEHptHH=Ћk:HUHpHEH`HEHp5 HEHǀ`HEt=HEH8uHEH@HuHE8HEHHu }0H}@;H]H]UHH$`H`LhLpLxL}H}HqHEHcHq軀HH-HH9v^HEH}@<HEt=HEHHuHEHPHuHEHHEHHu|0HEHhx6HEHhHcXHq HH-HH9vHEHh= HEHEHhHcXHqHH-HH9vbHEHh谴 H}uHEHXuHEHXa IMuHUHuBMHj+HcHUu.DL HEHuH}迳 L u,PILMMt~M,$L'>HLAU`HEHtQHEHX8HUHEHXHEHXuHUH5sH}HoHEHpHcXHq[~HH-HH9v}HEHp茰 HEHEHpHcXHq~HH-HH9v}HEHp H}uHEH`uHEH`谴 IMuHUHuKH)HcHUu-@L0 HEHuH} L7 u|NILMMt|M,$LwHH5HKHL HL(Mt3{I]H:LhHEHUHuhIH'HcHUu>HL HL(MtzI]Hy:LH}7$BLLuHGHH=L MtzM,$L2:HLApHEHtMHpLxLmLuH]UHHd$H]LeLmH}@uH0|HEHoH}#EHEptBHEH0uHEH8HUHuHE0}u HuH}=}uHEpt H} HEHE}u5H L H L(MtLyI]H8LHEpt H}/BHEH]LeLmH]UHHd$H}HuHUHzH]UHH$HXL`LhLpLxH}HzHEH蒏?H H8t=H L Mt]xI$H8H]HEHH9tHAH@HEi/HHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$IIHHUH5-H/HHPHH=4:HH5HGL5xH L H L(Mt.wI]H6LLHx@ HڡH8 HE@H*uH8H5:HuGHELHHELMtvM&LP6HLA$r3HHH5Gb4HEH}uJ3IHELH]HELMt7vM,$L5HLLA0HXL`LhLpLxH]UHHd$H}HuHwHEHUHuDH>"HcHUuIH}HEH}tH}H;!HEHH}aHuH};FH}xHEHHEHEHHEHc]HHH-HH9vf]Hc]HHHHH9vpf]HcEHcxHqfHHHH9v:f]H ɡH8訶EHEEHEH/HHHHEHHEHELHELMteI]HF%LHEEEHEHHuKHEHHHEHLMt4eMeL$HA$HEHc]HcEH)qgeHH-HH9v eLceHcEI)q8eLHHH9vdDH} HEL0HELHEHHtdL#L($LLA$HEHEHpH"HH}袢EHEHcHEHtH@HqxdHEHcHqcdHHHH9vd]HơHHEHEHEHHMH0HEH}tH}H5"tHơHHE}uHEHu!HEHHMHUHuHEHEH0V0pA@HEH0p:Q0HHHMHUHuHHEH0HpV0u}uHEHuH}uHEHuHHEHHtubL#L"LHH;EuHEH4/HEHtLuL}IH]HtbIL!LLLA$HUHHELAMLHtaL#Lp!LDA$HL@LhHEHIHEHDHELHEHHtRaL#L LDA$uHEHָuHEHHEHHLuDmL}HEHHt`L#L LDLHA$H HHHH|HHEHELHELMtr`I]H Lu;Hc]Hc|H)q`HHHH9vD`t DžtHc]HctH)q]`HHHH9v_ދUH|.HELDuHEHHt_L#LMDLA$HHELLuH|HLmHEHHtW_L#LHLLLA$8 HUHEHHEH}uH}uH} H}cn0HœH5ÃH}SHHt1HLLLLH]UHHd$H}Hg`EEH]UHHd$H]LeLmLuL}H}uUH@`HEHHEU}<HEHtQL}IH7HH-IMt]MLcHLLAHUHHELE=v]DeHELMtc]I]HDLHUHIIHEHHELMt]M,$LHLLAHELAHELMt\I]H{DL HuH} H]LeLmLuL}H]UHHd$H}HuH0s^HEH7HEst tPtbH}t H}-HuH}}uHuH} H}|"H}qHEǀ H}XH]UHHd$H]LeLmLuH}H(]HH\H3L0H)L Mtz[M,$LL@A@H]LeLmLuH]UHHd$H]H}H(#]EH(H80HcHq`[HH-HH9v[}EfEEuHͽH8HEHEHtHE耸uwHEtbHEHEHEH@HH;Et3HE胸t$HE胸tH}uuE ;]~;EH]H]UHHd$H}HuH[HEH@HH;Et3HEt$HEtH}%uEEEH]UHHd$H]LeLmLuH}H0G[HEH@0_HEH@0tHHL0AHL(MtXI]HDLHtEEEH]LeLmLuH]UHHd$H]LeLmH}H8ZEEH~H:dHEH}[ugHE耸uXLeLmMt+XI]HLu)LeLmMtWI]HL Hc]Hq8XHH-HH9vW]HH8);E(HH8HcHqWHH-HH9vW]fuH^H8FHEHE胸(t H}&H3H8蛡EE;E|]]HcHqXWHH-HH9vV]}vH]LeLmH]UHHd$H}HuHXHEHH]UHH$pHpH}HZXHEHHHUHu$HHcHxuLH{8uCH{0uHC0HS8HPHS8HC0HB HC8HC(HC@HC0HC8HC@^'H覆HxHt(DHHHUHu#HHcHxuiH{(tHC(HEHEH@HC(H{(t HC0 HC(H@ HEHHUH@HEHEH@HEH}j&HHxHtHt"(HDžxH}HuU&HpH]UHHd$H]H}HVH}tH},\HcHqTHH-HH9vT}H]EE@EEH}[;EuH}ZHH}~H]H]UHHd$H}HuUHUHEHNju-H]UHHd$H]LeLmLuL}H}HuHPUHEH#H}IH}>IHHHL MtKSI$ILHLLA0H5H8蝝HcHqmSHH-HH9vS]uHH8֝HEH}HH HH8'E܋E;E|]]HcHqRHH-HH9vR]}rH]LeLmLuL}H]UHHd$H]LeLmH}H0 THELHELMtQI]HLtHEHhtHEHHHHB HJ(2E1EEHcHH!HH!H ƋEHcH HH!HH!H HEH$HEH1$HEHqAHUHhHEHHMH HP HH(HEHhHEHEHEH]LeLmH]UHHd$H]LeLmH}H0{RHELHELMtYPI]HLtHEHtHEHHHHB HJ( E EEHcHH!HH!H ƋEHcH HH!HH!H HEHc#HEH"HEH?HUHHEHHMHHP HH(HEHHEHEHEH]LeLmH]UHHd$H}HuHxPHEHUHu9HaHcHUu:HEHH}HEH8tH}HuHuH},- H}nHEHt!H]UHHd$H}HGPHEHhuHEHhHEHǀhHEHuHEHHEHǀH]UHHd$H]LeLmLuH}HuHHOH}tHE<wHE<tHE<HsMHH=vyMHE<j*HH= u3HEHu!@*HHEHHuHE=*H*HHH'`SHE<Hs MHH=vLHE<HEu H}e?)HH= JEHu HHH-}t H}@R)HH=x u}tHEH?0EHEHxhu }vHEHxhu(HHEHxpHuHEPh0fHEHu90HEHU(HHuH}UHEHHuF?0u6(HLuLmMtRKMeL LHA$q(HI(HHH[}t H}@gHE<HqQKHH=vKHE<H]LeLmLuH]UHH$H}HuHUHLH"H8uDHHuH}(HcHHf=HHH]UHH$pHpLxLmLuH}H LHݴL(HݴL MtII$H LhHEHUHu HHHcHUuPHFݴL H<ݴL(MtII]H1 LHEt H}@LuHܴHHܴL Mt4IM,$LHLApHEHt-HpLxLmLuH]UHHd$H]LeLmLuL}H}uHHJEHcEHEL}LuAH]HtHHIL8DLLHUA$E}t+H}uuH(?EEEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHHIEHEHuHLHEL}LuAH]HtGHILKDLLHUA$E}t,H}uHuH?EEEH]LeLmLuL}H]UHH$`H`LhLpLxH}HHHEHUHu;HcHcHUu\HAH8uILuH.L H$L(MtFI]H9LLE}EEH}NHEHtpEH`LhLpLxH]UHHd$H]LeLmH}HuH(GHEH=THu)LeLmMtEI]HnLH]LeLmH]UHHd$H]LeLmLuH}@uH@sGDuHٴL HشL(MtOEI]HLDHuoH5H8t[HEHc8HqbEHH-HH9vEHE8H䧡H8LHcHqEHH-HH9vD}EfDEEuHH8mHEHEHuHEt~HE(ttkH}THEH(tHH=VPъ HUH(HEH(Hu tHEH(Hu藎 ;]~5H]LeLmLuH]UHHd$H]LeLmLuH}@uH8sEDuH״L HִL(MtOCI]HLDPuHEHc8HqvCHH-HH9vCHE8HEH(uHE8tHEH( HcHq CHH-HH9vB}U]EEfEEHEH(u, HþH|HEH(u }~H]LeLmLuH]UHHd$H}HCHEEEH]UHHd$H}HCHEH{H}"HEHǀHEǀH]UHHd$H]LeLmLuH}H8WCHEHu=HELAHELMt"AI]HDLHEHǀEEEEHUHEHHEHH]LeLmLuH]UHHd$H]LeLmLuL}H}H0BHEHubHE uSHELHӴL HӴL(Mt9@I]HLL`HEH!HEHfIIHӴHHӴL Mt?I$ILHLLAH]LeLmLuL}H]UHH$HL L(L0H}HeADHETuHUHu HHcHUu H}HEHxHUH@Y HHcH8u0LuLeLmMt>I]HoLL>H8Ht H}KHEuHL L(L0H]UHHd$H}HuH3@HEuHEH}kH]UHHd$H}HuH?HEuHEt%H}tHEH}`HH]UHHd$H]H}H s?H|H8HcHq=HH-HH9vW=}e]EE@EEuHH8HEHE耸uHuH=߀u H}s }~H]H]UHHd$H]LeLmLuH}HuH0>HE=?rE-?v9HEHXLeA$=v~HUHEHxHUMHuH}HUMHuH}/HEHxuHEH>HEHǀxHEU艐HE;EuHEH>HEHHE0.H]UHH$pH}HuHUMHF.HEf8ttHEffEHUHxtHHcHpHuH=ЬuHEHEHEHHE0.Eԃ}t#HEHxHEH>HEHxtHE;EuHEHxH;EuHEHH>vHUMHuH}HUMHuH}HEHu2.Eԃ}uHEHu>HpHtHtHDžpH]UHHd$H}HuHUMH ,EHUHMH}AH]UHHd$H}HuHUH?,HEHMH}H&H]UHHd$H}HuHUMH +EHUHMH}A@H]UHHd$H}HuHUH+HEHMH}HH]UHHd$H}HuHUMH l+EHUHMH}AH]UHHd$H}HuHUH+HEHMH}HH]UHHd$H}HuHUMH *EHUHMH}A H]UHHd$H}HuHUH*HEHMH}HvH]UHHd$H}HuHUMH L*EHUHMH}AH]UHHd$H}HuHUH)HEHMH}HH]UHHd$H}HuHUMH )EHUHMH}AH]UHHd$H}HuHUHo)HEHMH}HVH]UHHd$H}HuHUMH ,)EHUHMH}ApH]UHHd$H}HuHUH(HEHMH}HH]UHHd$H}HuHUMH (EHUHMH}AH]UHHd$H}HuHUHO(HEHMH}H6H]UHHd$H}HuHUMH (EHUHMH}APH]UHHd$H}HuHUH'HEHMH}HH]UHHd$H}HuHUMH |'EHUHMH} AH]UHHd$H}HuHUH/'HEHMH} HH]UHHd$H}HuHUMH &EHUHMH} A0H]UHHd$H}HuHUH&HEHMH} HH]UHHd$H}HuHUMH \&EHUHMH} AH]UHHd$H}HuHUH&HEHMH} HH]UHHd$H}HuHUMH %EHUHMH} AH]UHHd$H}HuHUH%HEHMH} HfH]UHHd$H}HuHUMH <%EHUHMH} AH]UHHd$H}HuHUH$HEHMH} HH]UHHd$H}HuHUMH $EHUHMH}AH]UHHd$H}HuHUH_$HEHMH}HFH]UHHd$H}HuHUMH $EHUHMH}A`H]UHHd$H}HuHUH#HEHMH}HH]UHHd$H}HuHUMH #EHUHMH}AH]UHHd$H}HuHUH?#HEHMH}H&H]UHHd$H}HuHUMH "EHUHMH}A@H]UHHd$H}HuHUH"HEHMH}HH]UHHd$H}HuHUMH l"EHUHMH}AH]UHHd$H}HuHUH"HEHMH}HH]UHHd$H}HuHUMH !EHUHMH}A H]UHHd$H}HuHUH!HEHMH}HvH]UHHd$H}HuHUMH L!EHUHMH}AH]UHHd$H}HuHUH HEHMH}HH]UHHd$H}HuH E@EEHUEH¨Hu0}sH]UHHd$H}Hg HEHPuHEHXHuHEPHEHHuj0H]UHHd$H}@uH }u HEH5HH}H}H}H{H]UHHd$H}@uH}u HEH5HH}HH}HkH]UHHd$H}HuH(CHEH`uHEHhHuHE`HEH0E+DHEHu 0HEHUHuH}UHEHHu0uH]UHHd$H}HHEHpuHEHxHuHEpHEHHu0H]UHHd$H}H7H@HH5~HEHuHEHHuHEHEHHu(0H]UHHd$H}HuHUH0HEHu!HEHHUHMHuHEHEH0E/HEHu 0HEHUHUHMHuH}UHEHHu0uH]UHHd$H}HHE4uH]UHHd$H}HuUHEtt!>HE胸\tH}DŰHE胸`tH}E覰H]UHHd$H}HWHE$EEH]UHHd$H]LeLmH}HuHUMH8HE%rrEtHEH}H"HtHEH}HHHtHEupLeLmMtuI]HLuAHEHu1HE'rHEHHuHEfH]LeLmH]UHHd$H}HuHHEH}HөH]UHHd$H]LeLmLuH}HuH@EHEHu*HEHHuHUHE}uH^{H8V?HEH}uQH}Hxu:H]LuLmMt MeLLHA$ EBHzHHxxuvHzHHxx_HuUHzHLhxH]HzHLpxMtM&L*HLA$ E}uHEHuHRzHHUH@xH;uHEHujHEHHHuLHELH]HELMtM&LqHLA$ E}uEH]LeLmLuH]UHH$PHXL`LhH}HuHUMHAEtcHEf8tSHEH}HYHt-HEH}H3HHtHEuH}@HEH}uHEHHEH}uLeLmMtuI]HLuHEЀusHUHxHHcHpu)LeLmMtI]HL|HEfHpHtHXL`LhH]UHH$PHXL`LhH}HuHUMHqEtHEf8 tHEH}HHtHEH}HcHHtHEuH}@HEH}ugHEHHEH}tHEHHEH}u4HEHt?HELHELMtoI]HLuLeLmMt9I]HLuHEЀuHUHxTH|HcHpuRLeLmMtI]HnLLeLmMtI]HELHEfHpHtHXL`LhH]UHHd$H]LeLmLuH}HuHUMH@HEf8 tEtHEH}H1HtHEH}H HHtHEupLeLmMtI]H(LuAELuLmMtKMeLL@A$HEfH]LeLmLuH]UHH$@HHLPLXL`LhH}HuHUHLmH]HtILWLAT$hHEHEHUHEHUHxHHcHptHEHxt%HuH=? uHEHUHxL}LuHLeMt M,$LHLLAEt}t-HEHHEHxH;EtHEHǀxHpHtHuH=#?^u{HEHEHuH}HEHH;Et H}$1HEЃ(t;H}LLeLmMt(I]HL@H}JHHLPLXL`LhH]UHHd$H}HuHHEHtLHEHxH;Et9HEt'HE(ttuHEHUHH]UHH$pH}HuHUHMH5HE u,H7HH=^˥YHH5HWH([#HEHUHEHHEHBHEHUHPHEH@HEHL>HUHuH"HcHxu=HEHHUHHHJ HxuHHHUHQHUHHUHPHEH>HxHtAHjhH8uH[hHxHHIhH]UHHd$H}HuHpHE u,HZ6HH=ɥHH5HHEH%=HUHuHHcHUu&HEHH=HEHH*HEH=HEHt7H]UHHd$H}HuH HEH@HEfHEHUH@H;BtHEHxuHEHPHEH@ HB HEHx uHEHP HEH@HBHEH@H;EtHUHEH@ HBHEHH;EtHUHEH@HHEHEHEH@ HEH} HEH@ HEH}3H]UHHd$H}HuH HHHN HHD HHHUH5H}HEH]UHHd$H}HuH H}u#H[4HEHE H}H.H}H]UHHd$H}Hp' HEH`uHEHXuHEHXxtHEHXLwHUHEHXH`HEHǀXHUHuH(HcHUl@HEH`+< HEHEH`> HuH=?duHExhHuH} H}HEH`uHEH`xpyBHEH`; HEHEH`2> HuH}UHEH`uHEH`xHEH`HEHtH]UHHd$H}HuH3 HE@PuHEuH}HEHXE}u HH=YHUHX HEHXHu3? }rHEHXHu< HuH}V}uIHExh"HMHgHHHHHHUH5H}HH]UHHd$H}HuH( EHEHuHEHHUHuHE}ufHEH@X/E7HEH@u/HEHUHUHuH}U؀}uHEH@HuH/uEH]UHHd$H}HuH(CEHEHuHEHHUHuHE}ufHEHH/E7HEHHu /HEHUHUHuH}U؀}uHEHHHux/uEH]UHH$PHXL`H}HuH_HEHDžhHUHuH±HcHx'HuH}HpHuH-WHHH=vft,HuH_xWILH=vfDf]f}w6MHqHuHHh-UHhH}BH}H5.=RHQH}H5."RH6H}H5.RHH}H5.QHH}H5.QHH}H5.QHH}H5.QHH}H5.QHH}H5.eQHyH}H5.JQH^H}H5./QHtGH}H5.QHt0H}H5.QHtH}H5.PHtEEHh@H}@HxHtEHXL`H]UHHd$H]H}HHEHpH-*UHHH=vf]f}t0HEHpH_THHH=vMf]EH]H]UHHd$H}HuHHEH}HSHeEEH]UHHd$H}HuHUHHEHH;EtHEHH;EtHE@Pt1HEHu!HEHHHLHE@Pt1HEHHHZGH8¼HEHHH9GH81HEH HHGH8蠽HEHHHFH8HEH0H(HFH8nHEH@H8HFH8ݹHEHHHFH8謽HEHHHsFH8HEHHHRFH8芾HEHHH1FH8HEHHHFH8hHEHHHEH8׿HEHHHEH8FHEHPHHHEH8HEH`HXHEH8$HEHpHhHkEH8HEHHxHJEH8H}H2F>H}uH}uH}HEHPpH]LeLmH]UHHHyHQH]UHH$HLLLLH}HuHUH H}t*LeH]HtiILLAUhHEH}t2HUHu蓯H軍HcHUHEHUH}HkHEƀ0LuIH]HtL#LzLLA$`LmAH]HtL#LGDLA$HHCL HCL(MtiI]H LHH}HHEHL(AHEHH(HtL#L跟DLA$@HEǀH}]H}HnH]HtL+LbH]HtL#LGLA$HxHxIL}EuAEHHHLeMt@I$HƋ‹ELHEǀ HEƀL}IHErIH;rHHtILqLLLA$HUHH]苃=vDHELHEHHtfL#L LDA$HELAHEHHt(L#L͝DLA$HEH IIHELHEHHtL#L聝LLLA$HEH}uH}uH}HEH HEHpH`H ˫HHcHxu%H}uHuH}HEHP`ŮP軮HxHt蚱uHEHLLLLH]UHHd$H]LeLmH}HuH(H})LeLmMtI]H>LHEHH}H&H}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuH}uH0HUEHEHuWH]=vDHELHELMtI]HLLDH]LeLmLuH]UHHd$H]LeH}HuHUH(GHUHEHHEHHEHLc#IqtLH-HH9vD#HEHLc#Iq;LH-HH9vD#H]LeH]UHHd$H]LeLmLuL}H}H8sHH8tIHL%Mt@MLHLA8HHHL8HmL0HmL MtM,$L蓙LLAt*H5ڭHPH8xHAH8ԹH-HHEHEH]LeLmLuL}H]UHHd$H}HWHEHOeAH]UHHd$H}HuH#HEH@H]UHHd$H}HHEHt4HE@Pt%HEHtH}LHH}蓆H]UHH$`HhLpLxLuL}H}HdHEHtDH]LeMt9M,$LݗHA ueHþH% HEĉUHEHE܋ẺELeLmMtI]H耗LHEHUHEHEHEHEHEHEH?HEHEHEL}Lu܋]HEHELeMtgM,$L H}LLEMHuAHEH}ӲHHuвuH}躲HDzHYHhLpLxLuL}H]UHHd$H]LeLmLuH}H0LeMtI$HKLmMtMeL/HA$0 HHELxHELxMtOM,$LLHA`EEH]LeLmLuH]UHHd$H]LeLmH}uH(EH}jLmLeMtI$HjL H]LeLmH]UHHd$H}HHEtHE tEEEH]UHHd$H]H}H3EHEEHEuZ]HHHH9v]HEt'HEtt E EEt tIt!e]HHH9v]F]HHHH9v]#]HHHH9vc]EH]H]UHHd$H]LeLmLuH}@uH0HEU}tMHEHu=HELAHELMtI]H]DLH]LeLmLuH]UHHd$H]LeLmLuH}HuH0SHEHu=HELAHELMtI]H’DLLuLeMtM,$L蔒@LAH]LeLmLuH]UHH$HLLLLH}H`~HDž8HDž@HUH`賠H~HcHXIH}ЬH}耢+H]LmMtMeL諑HA$ EH]LeMtM,$L}HA( ELeH]HtL+LQLAHHHPHHHEHPHEĀ}u }u6HþHnHLTHLHE̋TEԀ}umHH$HEH>9HHEHHEHL}DuHLMtM,$LcHLDLLHAPHEHH(HEcHEHLAHEHHHt2L#L׏DLA$HHELLuLmHEHHtL#L蔏LLLA$xHEH8HHu}cH}}uH(D$HEH$HEHD$H}HH}H@H@HHEHHLm̋]L(L(MtM<$L諎LLHLAApH}wH0H}H8~H8HtH[HHHH9vH H}H87H8HuHdIHEHAHELMt)M,$L͍DHAHHML ‹0Ab{H8 H@ HXHtHLLLLH]UHHd$H]LeLmH}؉uUMDEH@^EMUuH}ALmLeMt2I$H֌L H]LeLmH]UHHd$H}HEEHEH]UHHd$H]LeLmLuL}H}H@HEHcHEHcH)qHH-HH9vHEHEHcHEHcH)qHH-HH9vCHEHEDHEDH]LeMtI$IL蔋HDDEEAALmAH]HtL3LWDLAHELAHEHHtuL3LDLAHEDHELHEHHt0L3LՊLDAH]LeLmLuL}H]UHH$HLLH}HuHHEHUHuH&wHcHUPHEu<HEuvH}Hu$H}Hu'HtUH}HxHUHxHMHEHHuHUHEHEƀH`H (HPvHcHUu`H}HuxH}Hu{Hu H}+HuH}~XLeLmMtjI]HL HEƀHEHtWšH}HEHt;HLLH]UHHd$H}HuHUHMH HUHEHHEHH}@HuH}H]UHHd$H}HuHUHMH {HUHEHHEHHuH}dH]UHHd$H}HuHUHMLEH(HUHEHHEHHuH}H]UHH$H(L0L8L@LHH}؉uHUHMHHE؋EHE؋EUHcHH!HH!H ыEHcH HH!HH!H HH5*H8HEH}tH*H8HEH)HXuHE؀uH}uH]H};uH}HxHE؋HXHEHPAALeMtTM<$LEEHPX‹xAH}t1EEEEHEHEHEHE}~9H}HcHq'HH-HH9v]H}nHcHqHHHH9v]EEEEEEHEHEHEHEE LmH]Ht(L#L̈́LA$u$]HHHH9v ]HELAHEHHtL3LeDLAHEH]LmMtMeL4HA$( uHEHEH$HþHjHEUHEH`EHhEHpLuLmH]LeMtM<$L謃HLMpAH`hA8HEHUHEHEHEHENH]HtH[HHHH9vHuHuH5DEHMH}WHc]HqHHHH9v_]Hc]HqHH-HH9v0]HEHUH(L0L8L@LHH]UHHd$H]H}@uUHHHEHH%H8MHEH}0HEHUHEHEHEHEHE苀;Ej}uUHEHcHEHcH)qHc]H)qHH-HH9v$HE艘HEU܉HE苀;E|}uwHcEHEHEHcHEHcH)qHcEHqHEHEH;E|H]H]HH-HH9vHE艘HEUԉHE苀;Ej}uUHEHcHEHcH)qqHc]H)qcHH-HH9vHE艘HEU؉HE苀;E|}uwHcEHEHEHcHEHcH)qHcEHqHEHEH;E|H]H]HH-HH9vcHE艘HEUЉH]H]UHHd$H]H}HuUMDEH8HcEHc]HqCHH-HH9vHEHuEԊU@uH}EH]H]UHHd$H]LeLmH}H kHEH?LmLeMtKI$H~L H]LeLmH]UHHd$H}HE=r;-t.`r/v$ t-r v-rvtEEEH]UHHd$H]LeLmH}H HEHu)LeLmMteI]H ~L(H]LeLmH]UHH$HLLH}HuHUHH}t)LmLeMt׽LH|}LShHEH}tHUHuH*jHcHUuGHEHUH}HHEH}uH}uH}HEHӎHEHpHhH(~HiHcH u%H}uHuH}HEHP`xnH HtM(HEHLLH]UHHd$H]LeLmH}HuH(wH})LeLmMtZI]H{LH}HUH}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmH}HؽHEuHEƀHUHuH/hHcHUuRLeLmMt耻I]H${L LeLmMtWI]HzL@͌HEƀHEHtDH]LeLmH]UHH$HLL H}HuHؼH}t)LmLeMt軺LH`zLShHEH}t HUHuHgHcHUufHEH}H{sHE@HE@HE@HE@ HEH}uH}uH}HEH蘋HEHpHpH0CHkfHcH(u%H}uHuH}HEHP`=Ȍ3H(HtHEHLL H]UHHd$H}HuHCHEH=Hlu8HUHE@BHUHE@BHUHE@BHUHE@BH]UHHd$H]HǺE EE$EHcE Hc](Hq HH-HH9v謸]HcE$Hc],Hq׸HH-HH9vz]HEHUH]H]UHH$HLLH}HuHH}t)LmLeMtLHwLShHEH}tHUHhH;dHcH`HEHEHXH(HX]H}H~pHE@HEH@HEHxHuHHHEHx@HuHHDžHDžLDžPDžTHUHHHBhHPHBpHEH}uH}uH}HEHHEHcLcmI)q赱LH-HH9vXHED(:D9~:}uH} YOHHH-HH9v }ADALm IcHH9v԰McLH} NCDEHEHcHcUH)qHHHIHcUH9È}uHUEkD9~{H}(NHHH-HH9vJ}AfDALm(IcHH9vMcLH}(MCDEHEHcHEHcHq%HcUH)qHHHIHcUH9È}u>HEHcLcmI)qLH-HH9v舯HED(jD9~:HEU؉HEUɀ}u$HE;EuHE;EuEEHHtHtHDžpH5A,H} @MH51,H}(0MH`HtρEHLLLH]UHH$HLLH}HuHUH0DHDžHDž HUH@y|HZHcH8EHEЀxtHuHHHH(H0H(HEH0HEHuHUHH8tHH9H(H0H(HEH0HEHEЋ@D$HE@X$H5*H KH5*HDž0H0HH LHEHc@pHc]Hq[HH-HH9vL HH JA$H HD$H5*HKH5*HDž0H0HHLHEHc@hHc]H)q迬HH-HH9vbLHHJA$HHD$HEDHPHED@0HEH(HEHPHEHpH}HEЋ@D$HE@\$H52)H.JH5)HDž0H0HH2KHEHc@tLceIqܫLH-HH9vLHH5IEeHHD$H5(H IH5(HDž0H0HH JHEHc@lLceI)q@LH-HH9vL HH HEeH HD$HEDHTHED@4HEH,HEHPHEHpH}9؈E{H5'HHH5'H HH8HtH}EHLLH]UHH$PHH}HuHUHҫH3HH8ܝHHxH,VHcH)EHExtHuHHHHHHH|HHEHEHHp@HH>HHHH\HHdHDžH5J&HH8HhHHDžH5&HH@HHHIIHHL%Mt虝LIL;]HLLAHHIIHHL%MtFLIL\HLLAH!HHH0-HHH]LeLmLuL}H]UHHH)6HHHH=/H,HH=/虺H]UHH$HH}HuH8fHEHDžHDžHDžHDž0HDž8HDž@HDžHHDžPHDžxHUHuIjHqHHcHUHxH?H0HɆHx4HxH}H}@XtHxcHȆHXHEH`H ɆHhHɆHpHXHHx?HxHxHHH8HȆH5 ɆHPHEH0HȆHP:HPHxHxH=9HȆH!H0H='"mH=l5H5ȆHPHPH`HDžX &H5ȆHx讧HxHpHDžh HXHH5ȆHHİHHH5v|gH=`VH=OEH=>94HH5H@7HDžpH5HpHH@8H@H58Ȇ{H@HxH5IȆdH@HxH5ZȆMH@HxH5kȆ6H@Hx H5|ȆH@Hx(H5ȆH@Hx0H5ȆH@Hx8H5ȆH@Hx@H5ȆH@HxHH5ȆH@HxPH5ȆH@HxXH5Ȇ~H@Hx`H5ɆgH@HxhH5ɆPH@HxpH5&Ɇ9H@H=; H37HDH5=H86HDžpH5HpHH87H8HȆHHH8HȆHHBH8HȆHHBH8HȆHHBH8HȆHHB H8HȆHHB(H8HzȆHHB0H8HmȆHHB8H8H`ȆHHB@H8HSȆHHBHH8HFȆHHBPH8H9ȆHHBXH8H,ȆHHB`H8HȆHHBhH8HȆHHBpH8H=H5HnH5gH@4HDžpH5IHpHH@5H@H5Ć4H@HxH5džH@HxH5džH@HxH5džH@Hx H5džH@Hx(H5džH@Hx0H5džH@Hx8H5ȆH@Hx@H5!Ȇ|H@HxHH52ȆeH@HxPH5CȆNH@HxXH5TȆ7H@Hx`H5eȆ H@HxhH5vȆ H@H=+H4HH5 H82HDžpH5ﱣHpHH83H8HȆHHH8H ȆHHBH8HdžHHBH8HdžHHBH8HdžHHB H8HdžHHB(H8HdžHHB0H8HdžHHB8H8HdžHHB@H8HdžHHBHH8HdžHHBPH8HdžHHBXH8H|džHHB`H8HĆHHBhH8H=H2HۻH5$H=펥ȌH@.H@#HH5tH=蘌Ha@,HV@#H=˸H5ƆHH=MHeHH+HEHHP1HP蠓HɪHEHHPHPH=}HH=G:MHHHHH= MHܨHHHHNH=HHH= HKHH!HGH=MHHHЪHEH HEH Hx H@H{!HEH HEH Hx H@HI!HEH  HEH Hx H@H!HEH HEH Hx H@H!HEH HEH Hx HHEH@GH!HEH HEH Hx HHEH@GHc!HEH D!HEHxD!H="H5KĆ&DžpHDžhHhHH5<ĆH0萦H0HEHyDžpHDžhHhHH5ÆH0CH0HEH,HEHHEHH0 DžpHDžhHhHH5~ÆH0ҥH0HEHDžpHDžhHhHH51ÆH0腥H0HEHnHEHHEHH0 HHEH(HxHGH0HEH(HxH@HEH HxHH0HEH HxH@HEH HxHٳH0HEH HxH@HEHHxHH0HEHHxH@HEHHxHkH0HEHHxH@HEHHxH4H0HEHHxH@HEHHxHH0HEHHxH@HEHHxHƲH0HEHHxH@HEHHxHH0HEHHxH@HEHHxHXH0HEHHxH@HEH@ HxH!H0HEH@ HxH@HEHX HxHH0HEHX HxH@HEHHxHH0HEHHxH@HEHHxH|H0HEHHxH@HEHHxHEH0HEHHxH@HEHHxHH0HEHHxH@HEHHxHװH0HEHHxH@HEHHxHH0HEHHxH@HEHHxHiH0HEHHxH@HEHHxH2H0HEHHxH@HEHHxHH0HEHHxH@HEHHxHįH0HEHHxH@HEH HxHH0HEH HxH@HEH HxHVH0HEH HxH@HEH( HxHH0HEH( HxH@HEH HxHH0HEH HxH@HEH HxHH0HEH HxH@HEH HxHzH0HEH HxH@HH=SHEEHH}SH} S@XHHHHcXHHHHHrHHHH]HH}R@ tHHHHctoHHwHHHH߻HH}R@ tHHHHctHHHvHHHaH H}R@tHHHHctsHH{HHH(HH=|H+H0HȜH8H蹳HHXHH`H&HHhHHpHXHH0H0HQH8yH}@HyHEH v (H HhH0HH@HEH I (H HHHHEH @HEH HHEH @HEH HHH=/: HHHHoH5H=\~H@-H@:H=HH5H=xH0H5HAH8yUHH HH0H5H8a"H52H@N"HHHPHxH}HEHtVHH]UHHd$H}H(wmztHEHH5ʸ(HEH$fEfD$H}HWH5H]UHHd$HP HHH$fBfD$mH(|$Hv(}mH]UHHd$H}H(规mztHEHH58HEH$fEfD$M<$H}L;H]UHHd$HP+HԷHH$fBfD$mHʷ(|$HƷ(}mH]UHHd$H}HPǃmztHEHH5DHEH$fEfD$M}HEHEHEHUH}HH5\_H]UHHd$HP;H䶆HH$fBfD$mH*(H/(|$<$H(H䶆(}mH]UHHd$H}HP跂mztHEHH5 KHEH$fEfD$-}HEHEHEHUH}L{HH5(H]UHHd$HP+HԵHH$fBfD$mHj(HO(|$}mH]UHHd$H}HPǁmztHEHH5KHEH$fEfD$M}HEHEHEHUH}LHH58H]UHHd$H]H}Hp3=u HUHujMH+HcHU9HEH HHEH HHHEH HHEH HHHEH H HEH Hk HEH HT HEH H= HƕH=ٕH5}H=֕H5jH=H5WH=H5DHEH`#HEH#HEHPu#H=f/HHEH@ _PHEH Hh HEH( HQ HEH H: HEH H# HEHH HEHH HEHH HEHH 5HEHH HEHH HEHH} HEHHf HEHHO HEH(H8 HEH0H! HEH`H H˭HHHHHHHHHHHHHHHHHH (HH) 9HEH HEH H HnHEH HEH H HMHEH HEH H H,HEH#HEH#HEH@HEHHPELHEHtMH]H]UHH$HLLH}HP\|HEHEHEHEHEHEHDžHDžHDžHDž(HUH@KHHs&HcH87 ˆEHDž0H5H0H}H?H}HHH= HEH}. HH=̕ HEH=|w+HH= HEHH=NHEH}H(HEHH(H}謈NHH4GH\%HcH0MH}H(NH(HUH}6NH} HHuHHxFH$HcHpHuH| H}H5l/tmHuH=/uHuH=¯/uH}H5ѯDH(ȵHᯆHPHEHXHH`HEHhHPHH(觹H()HuH}HEHPHuH} H}HHEHHH H⫆H(H}HHEHHH0HH8H}HHEHHH@H(HHH H}H譸H(qHHPHEHXHH`HEHhHPHH(PH(T(HuH}HEHPH}H5쭆_H(HUH5H(gH('HuH}HEHPH ^/GHHHP`HpHtHH}HEHFH}/H}u H}.H}u H}.H0HtJHHHrCH!HcH0*H} HHuHH *CHR!HcHHuH EHH=NHEHHBH HcH'H}@NHuH}HqHEH}H}HEH(HuH}HEHHEHtH@HtHExtzH}HEEEHEHcUtH()nH(HuH}й}}EH}HWH}IA}CADAH}HUIcH4{HuH}HtEE9~Ā}tHL HH8(HM$HuL$H}H(HEHH(I|$HExtH5諆I|$ް0HExtH5髆I|$述H5I|$謰H(0HHpI$HxHHID$HHpHH(H($H H8#Hq(rHH5RHH=܈H@LeH}IHH]UHHd$H}HuHx#mHEHUHui9HHcHUuH}H}ԨokMH5jH(FiH(HEHEHEHH5ӗfHEH H5䗆OHEHH58H}u H},H(H8H}H@Ht .H]UHHd$H}HuH\HEHGH]UHHd$H}HuH\HHHHHH H}*H}1H HsHs0H}H]UHH$pHpH}HuH\HDžxHUHuI(HqHcHUH}HrEHH=v* HEH},( AA H5|HxȿHxH} H}HEHH}HxHEHHxdWtZHEH@ wPHEH@ H5FxPHEH@ HEH@ H( HH5H% `H}HcHrHr0H}UHq;t#AH5H=x蓞H}u H})Hx0HEHtR+HpH]UHHd$H}HuHZHEHHEHHHH}fH]UHHd$H}HuHYHEHHEHHHH]UHHd$H}HuHcYHEHX HEHX HHH]UHHd$H}HuHYHHHHHH H]UHHd$H}HuHXHEH5HH}H5H}H5p<H}H5%8H]UHH$pH}HuH}胔HDXHDžxHEHUHu$HHcHUHH=jru HEH},s HuH}F H}轓H}HxHEHHxH}H5YH}pHt(HraHEHx H0eH5⋆H}1Ht(H3aHEHx H0&H aHEHx H0lHxH}HuHEHHuHx&H5Hx蓢Ht H`$H5HxmHt H_`HEH( HJ`@0HEH( H %Hx2H})H} HEHtB'H]UHHd$H}HuHxUHEHUHu9"HaHcHUu*AA H5ғH}HuH},'%H}~HEHt&H]UHH$pH}HuHMUHDžxHEHUHu!HHcHU~HH=so~ HEH},| AA H5H}HuH}2 H}HEHfH^8uH}HuHEHH}H,THe^H\^tHHtHHct@LHtHxHHxŮHxHEHH}HuHEHH}HSH]H]tHHxHHctKHxHx蛙HxHxHEHAH:]HcH@]HcH)qQH<]H3]tHHxHHctJHxHxHx|HxHEHH}u H} "HxrH}iHEHt#H]UHHd$H}HuHxCRHEHUHuHHcHUu*AA H5bH}IHuH}|w!H}΍HEHt"H]UHH$`H}HuHQHEHEHUHuHHcHUHEH8 HEH8 H uH}H5菍H}H5}H}H͏HhHEHpHԏHxHhHH}HuH}O H}覌H}蝌HEHt!H]UHH$PH}HuHUMHfPHDžXHDžxHUHuHHcHUHx HH`HEH THHTHHcTGHTHXHXgHXHhHrHpH`HHx茏HxH}HX;Hx/HEHtQ H]UHH$@H}HuUMDEDMHNHDžHHDžhHUHx$HLHcHpHh莊HHPHEH DHHDHHcDeFHDHHmHHHHHXHH`HPHHhHhH} jHH辉Hh貉HpHtH]UHHd$H}HuHMHEH5H H]UHHd$H}HuHCMHEH 3'tH}H5b] HEH 'tH}H5[6 H]UHH$`H}HuHLHDžhHEHUHuH0HcHUH}xHHpHEHX HEHX H dHHdHHcdADHdHhIHhƦHhHxHъHEHpHH}HuH} OHh裇H}蚇HEHtH]UHHd$H}HuHsKHEH5H H]UHH$`H}HuH-KHEHEHUHukHHcHUHEHH HEHH H uH}H5DH}H5R H}蔆H]HhHEHpHdHxHhHH}聊HuH}H}6H}-HEHtOH]UHH$`H}HuHIHDžhHEHUHu8H`HcHUH}訅HHpHEH@ HEH@ H dHHdHHcdqAHdHhyHhHhHxHHEHpHH}!HuH}4HhӄH}ʄHEHtH]UHH$H}HuH}ӄHHHEHDžHDž0HDž8HUHHHHcH@&HH=b HEH}Ⱦ,解 HuAA H8JH8H}Z H}HEHtLH}ȺH8HEHH8H5$Ht!HEHH @HEHH H HEH0 @HEH0 HPHEH @HEH HPHEH @HEH HPHEH @HEH HPH8ςH}ȺH0HEHH0H8H50{H8|Ht)HEH@ HEH@ H qH5%H89Ht&HEH@ HEH@ H 1H5%H8HtHEH@ HH0߁H}ȺH8HEHH8H0H5@zH0茑HtH}H5H5IH0]HtH}H5ƁVH5H01HtH}H5蚁*H5хH0HtH}H5nH}ȺH0HEHH0H5辐HtH}ȺH0HEHH0H5i脐HtWH}H5rHEH HuyHEH HbHEH HKHEH Hu2HHHT$f@fD$HHH$fBfD$H(۽ <$H}ȺH0HEHH0]ۭ H(}HEH(HDž H HH5HrXHHEH [HDHHT$f@fD$H<HH$fBfD$H (۽ <$H}ȺH0HEHH08\ۭ H(H(}HEH(HDž H HH5HWHHEH yHEHH @HEHH H HEH0 @HEH0 HPHEH @HEH HPHEH @HEH HPHEH @HEH HPHEH HHEH HHEH HEHEH HlHEH HUHEH H>HEHH HEHH H HJH|H0|H8|H}|H}|H@HtH]UHH$pH}HuH}|H@HDžxHEHUHu HHcHUHH=Z HEH},Û HuAA H}iHuH}| H}HEHtLH}HuHEHH}H5L~觋HtFHEH8 @HEH8 H HEH @HEH HPDHEH8 @HEH8 H HEH @HEH HPH}{H}HxHEHHxH}`{H5sH}ЊHt$HEHX HEHX H H}HxHEHHxH5:uHt$HEHp @HEHp H "HEHh @HEHh H H}HxHEHHxj=HEH xl$H}HxHEHHxH5踉HtHEH <'HEH %'0 HxyH}{yH}ryHEHtH]UHHd$H}HuHC=HEH5xzHpH]UHHd$H}HuH=HEHEHUHu> HfHcHUH}H5~yHEHP HEHP H uHuH}Hz zHuH}H{yH}ExHuH%{H}yHuH} H}xH}xHEHt* H]UHH$`H}HuH;HDžhHEHUHuH@HcHUH}wHq}HpHEHx z'dHHdHHcd`3HdHhhHhHhHxHyHEHpHH}{HuH}n HhvH}vHEHt H]UHH$`H}HuH:HDžhHEHUHuHHcHUH}8vHA|HpHEHp HEHp H dHHdHHcd2HdHh Hh膔HhHxHxHEHpHH}yHuH} HhcuH}ZuHEHt| H]UHHd$H}HuH39HEH5H{H@H]UHHd$H}HuH8HEH5({HH]UHH$@H}HuHUMH8HDžXHDžxHUHuHHcHUHxKtHzH`HEHPHDžHHHHH5zHX MHXHhHvHpH`HHxwHxH}JHXsHxsHEHtH]UHH$0H}HuUMDEDMHO7HDžHHDžhHUHxHHcHpHhrHWyHPHEH@HDž8H8HH59yHHKHHHXHxuH`HPHHhvHhH}HHArHh5rHpHtTH]UHHd$H}HuH6HHHH]UHHd$H}HuHUH 5H]UHHd$H}HuH5HܦHHH]UHH$PHXH}HuHF5HEHDž`HEHUHuyHHcHUH}H5wRqH}pHwHhHJHHpHwHxHhHH}tHUHuH}rH}qpHwHhH JHHpHwHxHhHH}XtHUHuH}qHHHHx tH}oHcwHhHHHHH`_H`HpHvHxHhHH}sHUHuH}qH I8t:HH8t,HH8 tHH8 tHH8 tNHԇxHDžpHpHH5vH}HHUHuH}}pHGHHx tHWH8uH}nHuvHhHoGHHH`Y^H`HpHuHxHhHH}qrHUHuH}o=HHuH7=HHUH޿ޔ0Ha0H=u {H`mH}mH}mHEHtHXH]UHHd$H}HuH1H HHH]UHHd$H}HuHP1HEHUHuHHcHUHF8tlH5GH0H}m/HEHtH@HYHGH0H}l/HEHtH@H1HEH8@HxEHHPHe^H8JHH8$HtH5tE}tHG]H8H=]HH H}#lHEHtEH]UHHd$H}HuH0H<HHH]UHHd$H}HuH/HTtHdH]UHHd$H}HuH/H|tH$H]UHHd$H}HuHC/HtHH]UHHd$H}HuH/HtH褀H]UHHd$H}HuH.HtHdH]UHHd$H}HuH.HtH$H]UHHd$H}HuHC.HEHwH]UHH$HH}HuH`.HDžpHPHCHkHcHHEHHH(H[H0jHEHHH&7H0HEHHH0HEHHH 70FHEHHHEHHHunHEHHHH=UQiHEH H>QH0H/QH8@uHQH0HxHHHEHcHHxGyH=hsHH8輮DžlfHpHQhHHx HxHclHq*lHx=uHEHl聽"H= s%HH8&qHHt[HpgHHtHH]UHH$pH}HuH}+HEHEHDžxHUHuHHcHUHr48tHEH '|Et>HEH @HEH HHAH}H5-r0gHUH5RH ?H @#EHuH8H8NH}@u@H=RDHuHHNH5RHHH=WRZxRHHH/zRHswR@H=U>H}H]UHHd$H}HuHH 8t|HYH8HOHH H]UHH$0H}HuHHEHEHDžXHDž@HDžHDžH8H)HQHcH3d{H}HEH8fHt2uHEHx |5tt*HXH5<j HXH5<U iHXH5<> THXH5<) ?HXH5 = *HXH5=HXH5'=HlHHHHHHFHHHDž HXHHDž HHH5<HHHHHH"HH}JHuHhzH}@^uHuH}Hq< H}賒DžpHDžhHo<HHDžx DžHDžH/HHDž HhHuIIH=2<荛t tlƅdHH3<HHEHHR<HHHH!H谑`HbH;HHEHH2<HHHHL!HPƅddu HHOHwHcH Hh)-HHHPHDžH HXH`HDžX HHHH57:HsHHh+CHhHh18H۽ H H8HDž0H0HH5b8HHHh>>Hh7H+۽ H H8HDž0H0HH5=8HHHh=HhU7H۽ H H8HDž0H0HH58HHHhd=Hh6Hq۽ H H8HDž0H0HH57H?HHhH@HFH0HHH.5HHHHHAH="50HHtHh茦H@[HOHCH}:H}1HX%HHtDH]UHH$@H}HuHUH}H}HHDžHHDžxHUHuH7HcHUxHuH-H8uNE}uHx[HuH3HxHxHH8|NHxH3HPHEHXH 4H`HuAAHH3HH.HHHhH3HpHPHHxHxŃ4HxwHUH53HxHx菃HEHd"HcHqHEHd"H(4H8`U諢HHHxH}H}HEHtEH]UHH$`H}HuH}HHEHUHuH}HcHUHuHH8sNE}uWH}<H2HhHEHpHT2HxHhHH})H}0+H} HUH5-2H}lH}HEHb"HcHqHEHsc"H2H8SH}v H}m HEHt菢EH]UHH$`H}HuH=HEHUHu胝H{HcHUHEHb"HEHb"HEH H]H=1HH=k nNHEHHEHHu^HuH#HHx HHHxH51 HH8^yNH}5 H~1H`HHH@HhHHpHHH@HxH`HH}H} H}HH5@1tH} HZ1H`H<HH@HhHgHpHHH@HxH`HH}oH}vHH8HHHHP`H}HH50H}H H50H}H0H51H}HH51H}H11H5J1H}HH5S1H}HH5d1oH}HH5u1XH}HH51AH}HH51*H}H1H51H}HH52H}HH52H}H*2H5C2H}H[2H5t2H}H2H52H}HH52H}HH52rH}H2H5P/[H}H52H}H53{H}2 H33H`HHH@HhHHpHHH@HxH`HH} H}}HpH8vNHaH8HHPHHP`H=2|H-H8NEDEE2}HEHu*^"HS-H8N}}H=2d|进H}HEHt8H]UHHd$H}HuHHEHUHu6H^vHcHUH=2{H,H81H!H52!=E}tFH=2{AA H53H}/H}DH};H}B H= 3d{迚H}HEHt8H]UHH$0H}HHDžPHDžXHDž`HDžhHDžxHUHuH0uHcHUH=2zHFH7HHH2H3HHHH/HHH H+HHHH=V HEH},% H8uRAA H5{Hx/.HxH}?@ H}HEH}H}HxHEHHxH5!dHt<$H}HhHEHHhHpAAHHh1HpHx=.HxH5/HH:1Hf/zrH&1Hf/zwHEHH0ZHEHH0Y<$H}H`HEHH`HpAAHHHpHxR.HxH5DH<$H}HXHEHHXHpAAHH|HpHx.HxH56HH/Hkf/zrH/HOf/zwHEHH0XHEHH0X<$H}HPHEHHPHpAAHHYHpHx.HxH5KHM8HPHXH`tHhhHx\HEHt~H]UHHd$H}HuH0HEHUHuvHpHcHUH=p.#vH&H81Hu.H5.a7E}tFH=.uAA H5/H})H}H}{H} H=/uH}VHEHtxH]UHHd$H}HuH3\HEH"H} H}\H]UHH$H}H8HEHDžHDžHDžHDžHDžHDž(HDž@HDžPHDžhHUHxHnHcHpH=.ktHEH(H$QHEH0H QHEH`HPH-HHEHq8t5[HH=7ޣBP HEH}@b@ H}ؾ,4 HMH8}H}AA H5y-'H}AA H5'HuH}9 Ht&~t tH}HEH}L<$H}غH@HEHH@HHHHHHHPGHPH5۽0H0H`HDžXHXHH5HhDHhHEH(-O<$H}غH(HEHH(HHH HHHHPHPH5Y۽HH8HDž0H0HH5+HhHhHEH0rN<$H}غHHEHHHHHHHHHPHPH53]E۽0H0HHDžHHH5+HhHhHEH`MH:8 t>GEHEH(H5*MHEH0H5*nMHEH`H5*WMRH}HEH t<<$H}غHHEHHHHHHHHHPHPH5c۽0H0HHDžHHH5HhHhHEH(|L<$H}غHHEHHHHH HHHHP HPH5=۽0H0HHDžHHH5 )HhHhHEH0K<$H}غHHEHHHHHHHHHP HPH5]E۽0H0HHDžHHH5k(HhHhHEH`KHPH}HEHdHHHHcdĵHHHIHH5'HPHPmHEH(H5'GJHEH0H5'0JHEH`H5'JHEH(H5'JH'f/Ezr\HEHH5'IHEHHEHHHHEHHxÚH'f/EzwYHEHH5~'aIHEHHEHHHHEHHxQWHEHH5M'IHEH HEHHHHEHHx HqH8#} H,HHtHhH\HPH(DH@8HP,Hh H}HpHt6H]UHH$H}HuH}#HHEHDžXHDžxHUHuH HEH}, H8tEIHHHtH@HHHHtH@HaH(H}H\HcH H8tHWH5pH=LH}HuH}' H}@- H}HEHtH+H0H=輁H=H=H=}H5& H$4H5$HXHH襜H5H-HHH}H`HEHH`HhH HHhHpHpbHDžxHxHH5HHHH}HPHEHHPHhH HHhHp6HpŮHDžxHxHH5HXCHXH<$H}H@HEHH@HhH HHhHpHp(۽0H0HHDžxHxHH5lHHHHHH}H HEHH HhH HHhHpHp}8HDž0H0HH5H(H(H<$H}HHEHHHhH HHhHpLHp۽HH8HDž0H0HH5$HPHHHHHCHH5H=_ H=CH=}vHk8 tHH5H=H}^HuH}# H}@E) H}HEHt:H|$ Hq|$HT<$9}H |$H+H(Yh݅h<$6۽0H(ۭ0۽H(ۭHeHH0H=b}|H=VaH=JH=>H5Hv4H5H(H(HfH5HHHHH<$H}HHEHHHtH@HqSHhH}HHEHHH8HhHH8HpPHp۽0H0HHDžHHH5HXTHXHH}HHEHHHtH@HqnHhH}HHEHHH8HhHH8HpkHpHDžHHH5,HxHHH}HHEHHHtH@Hq蒧HhH}HHEHHH8HhHH8HpHpHDžHHH5PH蜽HH<$H}HHEHHHtH@Hq豦HhH}HHEHHH8HhHH8HpHpB۽0H0HHDžHHH5H貼HHHm۽HHXHDžPHU۽0H0HhHDž`H=۽@H@HxHDžpHE۽0H0HHDžH-۽ H HHDžH۽HHHDžHEHHDžmH(۽HHHDžH۽HHHDžHPHH5H&HHHHHHH5H=z5H=nH=bvL HA8tHH5H= H}4HuH} H}@" H}HEHtkHiH0H=߼uH=ӼH=Ǽ"H=H5dH4H5bH(薰H(HH57HHkHHH<$H}HHEHHHtH@HqТHhH}HHEHHHHhHHHpHpa۽0H0HHDžHHH5HXѸHXHH}HHEHHHtH@HqHhH}HHEHHHHhHHHpHpwHDžHHH5HHHH}HHEHHHtH@HqHhH}HHEHHHHhHHHp Hp蛡HDžHHH5HHH<$H}HHEHHHtH@Hq.HhH}HHEHHHHhHHHp+Hp迺۽0H0HHDžHHH5H/HHH}HpHEHHpCHDžHHH5u HHHH}HpHEHHp՟HDžHHH5҅HSHHHHHFHH5H=bH=FH=pHpH HH}HEHHHHHc蠗HHH%HHH҅HHHHpJHpNOH H5# H=H} HuH}Y H}@ H}HEH}H۹H0H=QloH=EPH=9H=-H5 He4H5 HHHUH5 H(ݩH(H<$H}HHEHHHtH@HqBHhH}HHEHHHHhHHHp?HpӶ۽0H0HHDžHHH5w HHCHHHH}HHEHHHtH@Hq]HhH}HHEHHHHhHHHpZHpHDžHHH5 HXgHXHH}HHEHHHtH@Hq聚HhH}HHEHHHHhHHHp~Hp HDžHHH5?H苰HH<$H}HHEHHHtH@Hq蠙HhH}HHEHHHHhHHHpHp1۽0H0HHDžHHH5΅H衯HHHHHHH5,H=H=H=ݱHkHpHHH}HEHHHHHcHHHsHHH^̅HHHHpHpIhHH HHeHCHcHhHp H"H&HHHHcHHHnHHHHHHHpHpHgHhHtjj H=LH}u H}OgH HHHHHHHHHHHHyHmHaH UH(IH@=HH1HP%HXH` HpHHHHH}H@HtgH]UHHd$H}HuH(裖HEHg,HHcH6*HS^H-HUH}HUHH)q讔HHE}EHH0H}lUH]UHHd$H}HuHH\HHcH]UHH$`HhH}HuH薕HEHEHUHuaH?HcHU,H}?HHH8HEHHEHHukHH8虽QHH8JQH H5HH@HH8!QH  HHHHrH8QH |HHPHH8H|H?HHx tVH8uHH}3H HHHuHUH5AH}HuHH8t,H8tHq8 tHc8 tDHexHDžpHpHH5H}蔨HuHHQHHx tHH}SH,HHHuHUH5H}HuHH} HHH5H}HuHH}HШHH5H}XHuHLHuH8譼Q8bH}H}HEHtcHhH]UHH$pH}HuH}HDHUHu^HTH HHHPH/HcHuPHH]UHH$@HHH}HuH~HEHEHUHu$KHL)HcHUHEH(HEHx tQHEH  HHuH.H}H5.Ht H}cHH8z}(}WHEH  HEH  HHuHéH}H5HtH}H$HEH \ HHuH}H}H5j}HtAA H5GȅH}H}]AA H5IH}HuH}lHH8|(}4HEH @HEH HH}H5 "HEH @HEH HHEH  }XHEH  HEH HEH Hx HHuHMH}H5MHtHEH  HHuHH}H5HtqHąHEHx t^Hsftt tHt%t/KHVIHG:H8+H)H H HEH0@HEH0HHEH8@HEH8HH|*ttHH H}HEH0@HEH0HHEH8@HEH8HSH*HEH0@HEH0HHEH8@HEH8HHHHXHDžP HhHDž`HHHxHDžp HPHH5OH}ΎHuHEH HEH J HHuHkH}H50kHtfH};H}BHېHΐ0H}8HH8uD@HEHHEHHHEH 讂 HHuHϤH}H5HtHEH @HEH HHEHH @HEHH HHEHP @HEHP HH#H8w#}HEH @HEH HHEH @HEH HHEH @HEH HHEH @HEH HHEH @HEH HHEH @HEH HHEH @HEH HHEH @HEH HHEH @HEH HHEH @HEH HHEH @HEH HHEH @HEH HHhH8u.}aH=H8H5nHtH8t2HEHP @HEHP HH}H5ąeH}:H}!/EH}H}HEHt'GHHH]UHHd$H}HuHuH|HHEH(HHEH0 @HEH0 HHEH@HEHHPHEH8 @HEH8 HPH]UHHd$H}HuHuHEH0 @HEH0 HH~HEH8 @HEH8 HPHEH(HH]UHHd$H}HuHt访H]UHH$@H}HuHMtHEHUHu@HHcHU8&EHlH8@dEH}vt[}tdH}豯HH0HH}2HuHEHH=#H;}H}߅q5H}SH}JHEHtl7H]UHHd$H}HuH#fH|}H]UHH$HLH}HuH}HPeH|HH}WHEHEHEHDžHDžHDžHUH@1HHcH8XpEtpEH5bpH}虡KpE HEH @HEH HPH}HEH(HHEH(HHHH=5@ HEHuHёH8IHşH8HşH8HDž0H5 |H0H=yHH}t+H}H5Ɩ!HtH=݅0u H}/H}tH}H5kHtH=܅0t H}TH=܅HyH8HtH=܅HxH8HHqa}EEEH}HǟH}^ IMu(HH/H HcH0fHuLL HUH!H8IH X܅H4HHxHHcEHH<袮HtYHUHЏH8IH /܅HHu%HUHuHH8IH ۅ貨Lʻ :1HLI$P`H0HtI3H HFwHHcEHHDHHۅHHwHHcEHHHHDž HHH5ۅHvHHHKۅHHvHHcEHHDH HۅH(HEH0HHHVHHEH(HHEH(HHP;]~xH=څHH8H=ۅ-uaHH8HHH:HʫH8HHHHHH}H5څHuH8HHq^}EfDEEHHH8HH2HHHHuHHcEHH|賫HtVHEH(uH蛛HUH5څHHEH}v ;]~D H=څ+,uZH{H8HqHH3HTH8HH>HHHH}H5مvHtH8'HHq)]}EEEHةH8HH©HHHHsHHcEHH<DHtVHEH(uHH,HUH5؅H谛HDEH} ;]~EH=؅*u\H H8HHH5HH8HHϨHHHH}H5|؅HrH8HHq[}EEEHhH8HHRHHHH8rHHcEHH|ӨHtVHEH(uH軘HUH53ׅH?H EH};]~DH=ׅK)uHH8HHHH/HqH8HqZH0HHHH0 THHH菶HH5 ׅH@H HͦH8HæHHHcHqY}DEEEEEUH}H8HHlHHHH}H5օ褘HHUH5օH|H EHpH8HHqY}EfDEEUHťH8HHHHHHoHHcEHH<6HtHEH(u7HHUH5օH蟗H3 EEH}H[oH83Hq8XHH5qHH=,oHPH蔕H oH8HqWHHHHHoQHHwHHH5qԅH襖H9 HoHknHHcEHH4HnHHcEHH<PH:nHHcEHUTHcEHq WE;]~}t^HxUHH8HHHHHH5fԅHҕHf}~HmH8lHÃ}ADAHnHuH]mHIcHH<OH输HԅHHEHHfхHHEH HMхH(HEH0HHH脗HD9~FHlH8HHlH8uHqzUH`HH_4HHHHc4NHHHgHH5ӅHH HEH(gtkHEH @HEH HPHEH('H=҅KH}HHHEH(9HEH @HEH HPH=҅H}7HEH @HEH HPH=҅H}nHwH8ڭH}u H} H}u<}t4HHuH҅H蟒H3$HH֐HʐH}H5kH}GH}訐H}蟐H}薐H8Ht%HLH]UHHd$H}HuHcTHEH @HEH HPH}H!HEH @HEH HPH]UHH$HH}HSHDžHDž(HUHu H:HcHUy=^uH=aх]^HxH8HHcH0Hr8tHr8tEEHEH@HEHHPHEH HHEH  HEH HEH Hx H@HHEH HEH Hx H@HHEH  HEH Hx H@HHEH( HEH(HEH(H( E}QHEH @HEH HPHEH(u貽H}YE HDžHHH5υH(tfH(HfHHcEHH|H5ʃ%Ht)HdfHHcEHH4H=YyHEHHYH0H(fHHcEHHtHEHHEHx HH8H=eH5&HEHH(Z|H(H=e׌HPYHHHDž HeHHHDž HHH5΅H(eH(BH;eHHcEHH|H5TϛHt/HeHHcEHH|H5J襛HtHdHHcEHH4H=~XHEHHgXH0HdHHcEHHtHEHXHEHH5ͅAHEHx H%H8]HFdHHcEHHtH=OdZHEHH(zH(H=Ud0HEHH(zH(H= dHEH@HEHHPHcHHHDž HAWHHHDž HcHH HDž HHH5̅H(cH(3}EHEH HyHuHEH(Ȼ@@HEHHEHHPLHEHx t6H=bH5ωHcH0H=b蹉H}E@uH}_sXH0HtBHH(HEHtHH]UHHd$H}@uHLHEH @uHEH HPHEH @uHEH HPHEH @uHEH HPHEH @uHEH HPHEH@uHEHHPHEH @uHEH HPHEHH@uHEHHHPHEHP@uHEHPHPHEHX@uHEHXHPHEH`@uHEH`HPHEH @uHEH HPHEH0 @uHEH0 HPHEH @uHEH HPHEH @uHEH HPHEH @uHEH HPH]UHHd$H}HuHJHEHH]UHHd$H}HuUH`JH]UHH$HH}HuH&JHDž0HDžPHUH`[HHcHXHhHEHHEHH EH=ȅyFHHEHHP_uHPSFHHHHHEHEHHP-uHP!FHH=gȅFHqGH]HEHSB5H]HEH)qjGHEH*BHcHHHHEHEHEHHHEHHH}uHEHHH5DžHEHHHPHEHHHDž@H@HH5DžHP<]HPHEHHHEHHHPHEHHHDž@H@HH5DžHP\HPHEHHHEHHHPHEH轐BkHEHHHDž@H@HH5;DžHPO\HPHEHHHEHHHPHEHHH5DžHEHHHPHEHHPrHPCEHEHHPzrHPBEHEH軏B4Hc]HcEH)qDHEH蒏BHcHHHEE}uEȉHHDž@H@HH5]ƅHP [HPHEHHHEHHHPEĉHHDž@H@HH5,ƅHPZHPHEHHHEHHHPHEH茎BiEHHDž@H@HH5ŅHP ZHPHEHHHEHHHPHEHHH5ąHEHHHPEȉEPDHEHEHH8}uHEHHHDž@H@HH5CŅHPGYHPHEHHHEHHHPH=,Å@HH}H8H8HHHDž@H@HH5ąHPXHPHEHHHEHHHPẺHHDž@H@HH5ąHPWXHPHEHHHEHHHPHEHHH5zHEHHHPH=hą?HHEHq1AH=ją?HHHHH8H8HHDžH=^?HH}HHHHHHDžẺ(HDž HHH5הH03WH0AA HPcHPHEHHHEHHHPHEHBHUHEHq@HE!HEH;E~HK`8uHEH譊BHcUHcEHq?EE;E~H_8uH0}HP}HXHt0HH]UHHd$H}HuH@H_H]UHHd$H}HuH@H\_H]UHH$HH}uHpw@HDžHDžHDž0HDž8HUHH HHcH@b HoHHEHU|,t tt EE E H}UH8<1}HcEHq>EHE}Ⱦ>HH=Y HEH}, H}@ HUHH=HHbHHbH8AH5MEH}H8 HEH@ [OHcEHq:=HHH(HDž H HH5H0SH0AA H8ɢH8H}ٴ H}HEH;E} HSH8:1}hHS8 t.H} H0HEHH0A:E,H}H0HEHH0:EEȉ(HDž H HH5H0RH0HEH@ ZOHEH@ HEH@ H( HH}HHEHHH8H8H(HDž H HH5<H0QH0HI HEH@ HEH@ H( H<$H}H0HEHH0H5["V۽HH(HDž H HH5HRQHH HEH@ HEH@ H( H<$H}H8HEHH8HtH@HqD:HH}H8HEHH8H(HHH(H0AH0H5ZU۽ H HHDžHHH5⽅H>PHH <$H}HHEHHH5ZTHc(H(H(]HEH@ HEH@ H( HE۽ H HHDžHHH5eHqOHH H[f/EzwMH]H8pMH]H8PMHEH@ H]H0HEH@ H HpO8 t<$H}HHEHHRH(Hf<$H}HHEHHRH?<$H}HHEHHRHEHEH@ HEH@ H( HH|$ H|$Hޅ<$$۽ H HHDžHHH5ػHMHH <$H}HHEHHQHp<$H} HHEHHpQH)(H><$H} HHEHH.QH纅(H %JH|$HHY݅<$g۽ Hx(ۭ ۽H_(ۭHވHEH@ HEH@ H( HH۽ H HHDžHHH5UHKHH2 HEH@ HEH@ H( HH} H0HEHH05HDžHHH5HPKHH HKH8r21}l}t3HEH@ HEH@ H( HH5¹HR 1HEH@ HEH@ H( HH5H HHK8 t[H}HEH;E}@HwqH}H0HEHH0HqH5iH$HtH5rHHtHEH@ HEH@ H( HH}HHEHHK4HDžHHH5͸H0IH0H HEH@ HEH@ H( H<$H}H0HEHH0H5XSM۽ H HHDžHHH5OHHHHD HEH@ HEH@ H( HH} H0HEHH03HDžHHH5HbHHH nEHDžH}HEHHDžHHH5HGHHEH@ 3PO'HEH@ OOHEH@ H5 POEHnHnH0nH8unH@HtHH]UHHd$H}HuHxC2HEHUHuHHcHUu2AA H5"H}IH}mH=)oH}mHEHtH]UHHd$H}HuHx1HEHUHuHHcHUu2AA H5ʶH}評H}@mH=ѶtH}&mHEHtHH]UHH$PH1HEHDžPHDžXHDžxHEHUHu"HJHcHUH=TAA H5HxϔHxHEHHHuH} H}/EHEHHH HEHHH H ;EuH}kH뵅H`HDHHH HDHHH H EHHXHHc}'HXHXuHXBHXHhHMnHpH`HH}joHuH}AA 耓HuHHH}}H}L+EH}jHcEHEHHXHH}&HXHPtHPlHPH5H} lH}E|7~0HBCHHH uH.CHHH H qHCHHH HBHHH H EpHDžhHhHH50HPBHPE|_~UHBHHh @H{BHHh HHcuHq+HRBHHh C.H:BHHh @H&BHHh HUE@HDž8EPHDžHH8HH5|HPAHPHAH8mhHPhHXhHxhH}hH}hHEHtH]UHHd$H}HuHc,>H]UHHd$H}HuH3,H]UHH$H}HuH+HDž@HDžHHDžPHDžhHDžpHUHuHH@HEH螶)H@}eHHqeHPeeHhYeHpMeHxHtlH]UHH$H}HuH)HDž@HDžHHDžPHDžhHDžpHUHu4H\HcHxH=#HH=C HEH}ؾ, <$HEHHH=THHH5GA<$H5PHP$HPH`HDžX HXHH5ƯHh =HhAA Hp:HpH}J H}HEH}H}غHHHEHHHH5$osHt<$H}غHPHEHHPH8AAHHpH8HHH7.HHH5:F@۽ H H`HDžXHXHH5H@;H@HEH辳IH@bHHbHPbHhybHpmbHxHtH]UHH$H}HuH=&HDž@HDžHHDžPHDžhHDžpHUHuTH|HcHxH=˭HH=0@; HEH}ؾ,9 <$HEHHH]QHHH5D ?<$H5|HPDHPH`HDžX HXHH5|Hh*:HhAA HpZHpH}j H}HEH}H}غHHHEHHHH5D|pHt<$H}غHPHEHHPH8AAHH |H8HHh4.HHH5ZC=۽ H H`HDžXHXHH5{H@8H@HEHްiH@_HH_HP_Hh_Hp_HxHtH]UHH$H}HuH]#HDž@HDžHHDžPHDžhHDžpHUHutHHcHxH=#HH=P=[ HEH}ؾ,Y~ <$HEHHH}NHHH5A*<<$H5HPdHPH`HDžX HXHH5ƪHhJ7HhAA HpzHpH}芘 H}HEH}H}غHHHEHHHH5dymHt<$H}غHPHEHHPH8AAHHjH8HH1.HHH5z@:۽ H H`HDžXHXHH5H@6H@HEHH@\HH\HP\Hh\Hp\HxHtH]UHH$ H H}HuHv HEHDž8HDž@HDž`HDžhHUHxHHcHp]+EHH8;Hh[HH6HH5qHh]]HhH=zHh[ H5@LH`<+H`H5iHh\HhH}H5n[Ã}mE@EEHEHHHVHPuH@wH@HXHHH}H^;]~H}HKH8IH HH`dH`H=CZHH=8 HEH}о y HBH0H}ǔ H}HEHHBH^6H}H8V H8H=BH耻H}HHEHP`HB8:H`YHZBHH5SH`O[H`H`YHJHH5IH`[H`H=Z=tH}HGH5s5H8诹H@#YH`YHh YH}YHpHt!H H]UHHd$H}HuHxHEHUHuHAHcHUH&8uH&H=KuH=9uH,1H0H}fHiIH8HH5]H%H%8u"H$H8uH0H0H}(fH=uHtH8H=u0H}茱H%H{pH8HqpHH H=vYu7H}*H}aWHZHH82BH+pH8HLH=MuHH8;H=LuH=ZuHH8H}VHEHtH]UHHd$H}HuHH̋HH‹HHH H]UHH$H}HaHDžHDž HDž(HDžHHDžhHDžpHUHumHHcHxHEHHEHHEHHEHHH=4 HEH},u AA H5 kHp}HpH}Ώ H}HEH}CH}HpHEHHpH5bdHt EAA H5jHp3}HpH}C H}HEH}@H}HpHEHHpH5(bkdHt E H=ܣ}<$H}HHHEHHHHPAAHHRHPHp'(.HpH571۽0H0H`HDžXHXHH5Hh,HhHEH蝤<$H}H(HEHH(H`AAHH`H`Hp`'.HpH5R60۽PHPH8HDž0H0HH5ўHh+HhHEH֣<$H}H HEHH H`AAHHHHxuHxoyAA H5cHvHHxQu<Hxn+AA H5cHvHHxuHxnHH HHPPHxHcHHH@MHpH($HH$HHc$ H$HWHlHH0HZH8H(HH@DQH@HHHHt]HxuH@LHLHLHHtH]UHH$H}HuH}LHtHDžHDž8HDž@HDžHHDžhHDžpHUHuH診HcHxHpKHUH52HpnMHpHEH һHEH( »HEH 費HEH 袻HH=) HEH}ؾ,j HuH}Ѕ H}HEHtH}غHHHEHHHHPAAHHfHPHp .Hp,`HDžXHXHH5VAHh#HhHEH 蓛H}غH@HEHH@H`AAHHeH`Hp[.Hpz XHDžPHPHH5@Hh"HhHEH( <$H}غH8HEHH8H`AAHHuH`Hp.HpH5,'۽ H HXHDžPHPHH5Hh1"HhHEH <$H}غHHEHHH`AAHHuH`Hp.HpH5+:&۽PHPH(HDž H HH5ƓHhj!HhHEH SH}u H}H HH8HH@HHHGHhGHpGH}GHxHtH]UHHd$H}HuHx HEHUHuH!HcHUuPAA H5:VH}oH}PGAA H5<~H}oHuH}H}GHEHt:H]UHH$@H}HuH HDžPHDžXHDžpHDžxHUHuH7HcHUAA H5LUHxnHx\F<$HEH HP 6HPH5b)#<$H53HXhHXHhHDž` H`HH5yHpHpAA HxnHxH}HHPEHXEHpEHxxEHEHtH]UHH$@H}HuHM HDžPHDžXHDžpHDžxHUHuoH藳HcHUAA H5SHx(mHxD<$HEH HP4HPH5'-"<$H5HXgfHXHhHDž` H`HH5HpMHpAA Hx}lHxH}}HPCHXCHpCHxCHEHtH]UHH$@H}HuHHDžPHDžXHDžpHDžxHUHuHHcHUAA H5 RHxkHxC<$HEH HP2HPH5"& <$H5HXdHXHhHDž` H`HH5HpHpAA HxjHxH}HP\BHXPBHpDBHx8BHEHtZH]UHH$@H}HuH HDžPHDžXHDžpHDžxHUHu/HWHcHUAA H5lPHxiHx|A<$HEH HP@1HPH5$<$H5HX'cHXHhHDž` H`HH5!Hp HpAA Hx=iHxH}=hHP@HX@Hp@Hx@HEHtH]UHHd$H}HuHsΛH]UHHd$H]H}HuH?HEH HEH Hx HHEH@GH^H]H]UHHd$H]H}HuHHh1HHHV1HH OHp"H61HHH%1HHH( HH("H0HH`H]H]UHHd$H]H}HuH/HEH HEH Hx HHEH@GHNH]H]UHHd$H}HuHHEH HEH HHH]UHH$`H}HuHmHDžhHEHEHUHuHȬHcHUHEH Hh-HhQxHDžpHpHH5H}HuAA H}fH}=HEH HEH HHHhj=H}a=H}X=HEHtzH]UHHd$}HuHUH0HyH1JH]UHHd$H}H0HHEHuH 'H]UHHd$}uUH EEE;E|EEE;EEEEH]UHHd$H}HuH}HuHEHHpH}z>HuHEH(ƄHH=pHsnQHEHH}NpQH}3H}mQ@HuHEH|3Hx+H}~+H}u+HEHtHhLpH]UHHd$H}HuHCHHH衴H]UHH$@HHFH@H HHH'HPH$.HXH4H`H(<HhHBHpHHHxHMHEHRHEHXHEH^HEHeHEHoHEHtHEHْHEHNHEHHEHШHEHծHEHҴHEH׺HEHHEHЇHEH@HH8IH҇H5҇18H]UHH$pHxH}HuHHEHEHUHuĹHHcHUH18tHEHHuH]H5 H}?3HuH$H8H*҇H/H5H} 3HUHH8IH чHu3HuH=)3H}(H}(HEHt製HxH]UHHd$H}HuHSHчH=H]UHHd$H}HuHxHEHUHuYH聖HcHUH+08tHEHHuHuH= (HLH8mH5H}1HuHHHH8HчE.HnH8HH]HHP`HH=vjuH:HH}'HGHH}H0H}(HuHH8 _uHH8HHHHH0HH8!SuHEHHHEHHHHEHHHkH0HEHHH`عH}/&HEHtQH]UHHd$H}HuHHH=eHmv HHHH=piuHHH}H]UHHd$H}HuHHHHH{HHHR`HxH8HHgHHP`H]UHHd$H}HuH#H,HH5·HSuuH=·& H=χH]UHH$pHxH}HuHHEHEHUHuHHcHUuXH,8tJHEHHu/H]H5DH}v.HuH[H8H·H +贷H} $H}$HEHt$HxH]UHH$pHxH}HuHHEHEHUHuH,HcHUuXH+8tJHEHpHu?H]H5TH}-HuHkH8H͇H*ĶH}#H}#HEHt4HxH]UHH$pHxH}HuHHEHEHUHuHHHtH0HpHpHH8JuHH0HH8/?uHEHHHEHHHHEHHHyH0HEHHH`H5DHxsHxHUH8IH THphHpH=JeHEHH3H0bH5HpHpHH8IH H`H`HEHbH5zHpHpHH8IH H`H`HEH7bH5 HpOHpH1H8IH H`DH`HEHXaH5HpHpHH8IH νH`H`HEHaHEHHp<HpH}J H}HEHp<$H}HpHEHHpf H?ޟ8<$H}HpHEHHp/ Hޟ8Hݟ8Hޟ8H}HEH9<$H}HpHEHHp Hݟ8 Hݟ8H5KHpzHpH\H8IH {H`oH`HEH`H5Hp HpHH8IH QH`H`HEHp_H5HpHpHH8IH /H`H`HEHhT_H5=HplHpHNH8IH H`aH`HEHx^H5HpHpHH8IH H`H`HEH^H5HpHpHH8IH H`H`HEH`F^H5/Hp^HpH@H8IH H`SH`HEH]H5HpHpHH8IH շH`H`HEH]H5{HpHpHH8IH #H`H`HEH8]H5!HpPHpH2H8IH H`EH`HEH\H5HpHpHH8IH H`H`HEH\H5mHpHpH~H8IH H`H`HEH*\H5HpBHpH$H8IH [H`7H`HEH[H5HpHpHH8IH H`H`HOHH p[H5YHxHxHjH8LXH qHp}Hpl H% H \HH\HHc\H\H`H`u(H`HwHH ZH5HpHpHH8HƷ@H'HHX HHHX H HLH8IH HķHpXHp%G H H \HH`HHc\H`H`H`P'H`HRHH0 sYH5\HpHpH-՟HHcH8HH}u H}蒃H[裛H`HhHpHxHEHtH]UHH$pHxH}HuHHEHEHUHuH vHcHUuXH8tJHEH`HuH]H54H}fHuHKH8HѴH 褚H}H}HEHtHxH]UHHd$H}HxHEHUHu H5uHcHUEH}yHEHHuEHEHtH@H}THHHHHUT UU-t0 rrt rsEH9~HEH }@HEH HpH}HEHtEH]UHH$pHxH}HuHHEHEHUHuԕHsHcHUvH 8thHH*H8KH}WuJHEHHuH]H5H}4HuHH8HDZH rH}H}HEHtHxH]UHH$pHxH}HuHHEHEHUHuĔHrHcHUuXH 8tJHEHxHuH]H5H}FHuH+H8HH 脗H}H}HEHtHxH]UHH$pHxH}HuHHEHEHUHuԓHqHcHUuXH 8tJHEHHuH]H5$H}V HuH;H8HaH 蔖H}H}HEHtHxH]UHH$pHxH}HuHHEHEHUHuH qHcHUuXH 8tJHEHXHuH]H54H}f HuHKH8H!H褕H}H}HEHtHxH]UHHd$H HİHEHHEH͇HEHۇHEHMHH8IHC߇H5d߇G 8H]UHH$HH}HuHFHDžHDž H}tHEHUHRhHEH}tHUHuUH}oHcHU*HEHpH0HFoHcH(@H xH H=HH8IH zއHއH H H=@H=އuH=hH5އ|@H=އصu(H5އH / H H=!<qH#H8@蘵u+H H0H  H H=.RHHpއH޿ 6H)HH8IH އH݇H H H=HHHtH@Ht HH8@ʴtHmH8/ HHH0HއHGH@xuHHHHHCއHH]އHHHHgHH t H H=&H5(އH L H H=^YHH&H0HއH[H@茳uHHHHH݇HHq݇HHHH{HH  H H=&H5݇H ` H H=m蘐HH H(HtHEH}uH}uH}HEH?HEHpHHHHkHcH@u%H}uHuH}HEHP`oڏH@Ht蹒蔒HEHH]UHHd$H}HuHH}HEHUHHH}HHHH}HxH}uH}uH}HEHPpH]UHH$H}HuHUMH}H}HTHUHu袋HiHcHxHQHHH={HtHEH`H BHjiHcHuMHUHuH}HEH ;H}2wHHt豏H}sH}jHxHt艏H]UHH$H}HuHUMH}lH}cH$HUHxoHhHcHpHHHH=HHAHEHXHH7hHcHuMHUHuH}HEHEH}uHHt{H}=H}4HpHtSEH]UHH$H}HuHUHMH}+H}"H}HڼHUHu(HPgHcHxHHHH=HHEH`H ȈHfHcHuHMHUHuH}HEHH}tHHt6衋H}H}H}HxHtH]UHH$ H}HuHUH}H}H觻HUHuHfHcHUHHHH=HHEHhH(蘇HeHcH uHUHuH}HEH蔊H}sH Ht uH}H}HEHtH]UHH$ H}HuH}H蔺HUHuH eHcHUHHHH=HHEHpH0腆HdHcH(uHuH}HEH腉H}|rH(HtfH}HEHtߊH]UHH$H}HuHUHMLEH}H}H}HfHUHx豅HcHcHpH`HHH=HHEHXHQHycHcHu!HuLEHMHUH}HEHEH}!H]H]UHHd$H]HHcMHHH j=!HcHq,H** M^H-HHH p>!H]H]UHH$`HuHDž`HHxHVHcH ƅHHH(+XHHH~jHHHHHHH uNHHHHHHHHHHkHHHH0H7HH0H uNHHHQHH;HHHHHkHHH8HHH8H uNHHH HH HHHHHjHJHH@H9HH@H uNHHH HH= HHHHHjHHH HHH H uNHHH< HH HHHHHiHLHH`H;HH`H uNHHH HH? HHHHHiHHHHHHHHH uNHHH^ HH HHHHHhHNHHPH=HHPH uNHHH HHA HHHHHhHHHXHHHXH uNHHH HH HHHHHgHHhH HpHl HxHf HHhHHH;gHHH HHH H uNHHhH HpH HxHhHHHfHuHHHdHHH uNHHhH HpHh HxHhHHH=fHHHHHHH uNHHhHG HpHHxHhHHHeHwHHhHfHHhH uNHHhHHpHjHxHhHHH?eHHH(HHH(H uNHHhHyHpHHxHhHHHdHyHHHhHHH uNHHhH HpHlHxHhHHHAdHHHHHHH uNHHhHHpHHxHhHHHcH{HH HjHH H uNHHhHLHpHnHxHhHHHCcHHHHHHH uNHHhH HpHHxHhHHHbHH`H`H^HH(O7 rH`^HHt}sH]UHH$PHXH}HEHHH`H HEHDž`HDžHDžHH,nHTLHcHUHH=_MHHHHƀHH8#LHH8LH58HwHH5HXHH:H8H0HHHHH8LH H8LHHHHݵH8HӵHH HHhHrHpHHxHVHHhHHH[`HHcHWPH@HpuHxHhHHphHH`HHchחH`H`H`\H`HpHHxHHHxHHhH}HlH0HUH5HHHOnH`HHH}HEHtoHXH]UHH$`H襞HDžxHUHujHIHcHUF EEEH+HHHHHH uHcEHq肜EHHH0HHH0H uHcEHq?EHHH8HHH8H uHcEHqEHbHH@HQHH@H uHcEHq蹛EHHH HHH H uHcEHqvEHHH`HHH`H uHcEHq3EHHHHHHHHH uHcEHqEHVHHPHEHHPH uHcEHq譚EHHHXHHHXH uHcEHqjEHHH HHH H uHcEHq'EHHHH|HHH uHcEHqEHJHHH9HHH uHcEHq衙EHHHhHHHhH uHcEHq^EHHH(HHH(H uHcEHqEHHHHpHHH uHcEHqؘEH>HHH-HHH uHcEHq蕘EHHH HHH H uHcEHqREHHHHHHH uHcEHqEHuHH0HdHH0H u5HDHH H3HH H HHH8HHH8H u6HHHHHHH uuHHH@HHH@H u6HuHHHdHHH u H=HH H,HH H u6H HHhHHHhH uHHH`HHH`H u6HHH(HHH(H u:HkHHHHZHHHH u6H:HHH)HHH uHHHPHHHPH u6HHHHHHH uhHHHXHHHXH u3HhHH HWHH H uEE<$H$HHHxHx肯 zt<<$HHHHxHxH ztEHHH(A}uHHH(H5}*}uHnHH(H5X*}uHIHH(H53*}u}u}u 4+=$udHx HEHt,fH]UHH+=u4HHHHHHH HH8H7H5XH\HH0HKHH0H HH8HEH5HHH8HHH8H H5H8H#H5oHHH@HHH@H HH8HH5z%H~HH HmHH H HH8HH50H4HH`H#HH`H HWH8HH5HHHHHHHHH H H8HH5GHHHPHHHPH HÿH8HiH5RHVHHXHEHHXH HyH8HGH5H HH HHH H H/H8H%H5iH¿HHHHHH HH8HH5tHxHHHgHHH HH8HH5*H.HHhHHHhH HQH8HH5HHH(HӾHH(H HH8H}H5AHHHHHHH HH8HSH5LHPHHH?HHH HsH8H)H5HHH HHH H H)H8HH5cHHHHHHH H߼H8HH5nH]UHH$ HHLPHwHDžHDžpHH[H9HcHx J3EHHHHpغHpHHHXH3[H[9HcHH"HHӘHH$fBfD$H̘(H(|$Ea{QIHH~HHPH8LtH5yHpřHpH׻HHX]HHthHH/ZHW8HcHuHHHXH5']HHt`_HXHYH7HcHHH.HgHH$fBfD$H`(HG(|$EUzQhIHHHHH8LhatH5 HpYHpHkHH`\HHthHHXH6HcHuHHH`H50[HHt^u^HXH[XH6HcHHJHHHH$fBfD$H(H(|$EIyQpIHHHHxH8LptH5HpHpHHHP ZHHthHHWWH5HcHuHHHPH5AOZHHt.] ]HXHVH5HcHH޺HVHHH$fBfD$H(Ho(|$E=xQxIHH:HH H8LxtH55Hp聕HpHHHh?YHHthHHUH4HcHuH>HHhH5XXHHt[[HXHUH3HcHHrHH#HH$fBfD$H(H(|$E1wQIHHHHH8LtH5HpHpH'HHHHWHHthHHTH2HcHuHҵHHHH5iwWHHtVZ1ZHXHTH?2HcHHH~HHH$fBfD$H(H(|$E%vQIHHbHH4H8LtH5]Hp詒HpHHHpgVHHthHHSH;1HcHuHfHHpH5 VHHtXXHXHRH0HcHHHHKHH$fBfD$HD(H+(|$EpQIHHHHȲH8LEtH5Hp=HpHOHH@pTHHthHHQH/HcHuHHH@H5THHt~WYWHXH?QHg/HcHH.HHߎHH$fBfD$H؎(H(|$EoQIHHHH\H8LtH5HpяHpHHHxSHHthHH;PHc.HcHuHHHxH5%3SHHtVUSHjHp^HxHt}THHLPH]UHHd$H(HEHUHunOH-HcHU HH8H|H5x@HHHHHHH HïH8HH5P+@HQHH0H@HH0H HvH8HbH5@HHH8HHH8H H)H8H=H5@HHH@HHH@H HܮH8HH5iD@HjHH HYHH H HH8HH5@HHH`H HH`H HBH8HH5@HЮHHHHHHHH HH8HH5]@HHHPHrHHPH HH8HtH55@H6HHXH%HHXH H[H8HOH5@HHH HحHH H HH8H"H5v@HHHHHHH HH8HH5N)@HOHHH>HHH HtH8HH5@HHHhHHHhH H'H8HH5@HHH(HHH(H HګH8HnH5gB@HhHHHWHHH HH8HAH5@HHHH HHH H@H8HH5訿@HΫHH HHH H HH8HH5[@HHHHpHHH HHEHEHUHH5H}_ HuH$HHE H~HEHEHUHH5H} HuHܪHH EHHH0HHH0H uHcEHq{EH|HH8HkHH8H uHcEHqzEH9HH@H(HH@H uHcEHqzEHHH HHH H uHcEHqMzEHHH`HHH`H uHcEHq zEHpHHHH_HHHH uHcEHqyEH-HHPHHHPH uHcEHqyEHHHXH٨HHXH uHcEHqAyE}t.HHH@HHHH EHjHH HYHH H uHcEHqxEH'HHHHHH uHcEHq~xEHHHHӧHHH uHcEHq;xEHHHhHHHhH uHcEHqwEH^HH(HMHH(H uHcEHqwEHHHH HHH uHcEHqrwEHئHHHǦHHH uHcEHq/wEHHH HHH H uHcEHqvE}t.HJHH@H6HHH } } >yGH}HEHt8IH]UHHd$EH(wEEEHuHpf)HaH^H[EHHuH? H$H1HEHHuH H߇H߇H߇EHHuH߇ H߇H߇H߇EHCHuH߇ Hm߇H߇H߇EHHuH;߇ H0߇H]߇H*߇EHHuH߇ HއH(߇H߇EHHuHއ HއHއHއEHOHuHއ HyއHއHkއEHHuHWއ H<އHQއH>އEHHuHއ HއH<އH އEHHuH݇ H݇H݇H݇EH[HuH݇ H݇H݇H݇EHHuHc݇ HX݇HU݇Hr݇EHHuH݇ H݇H ݇H ݇EHHuH܇ H܇H܇H܇EHgHuH܇ H܇H܇H܇EH*Uu}EEH]UHHd$H}EMU]eHuHXjsEf/EzwjEf/EzvZE\EM\M^EMYME\EHUEYEXEHۇYH-H]UHH$`H}HEHHH31HrHDžHDžHH>HHcHULHHwHHH8 <$HH8HHoHHHG Hڇ(Hڇ(HJ8H1H8HHHHHH5ڇ|Ht2H^HHpHHHHpHH0H,HHp HHHpHHHH8HHvHHHH54ڇ׼Ht2HHHXHHHXHH0HHHX HqHHXHHHH8HHѫHHHH5ه2Ht2HHHxHHHxHH0HHHx H̝HHxHHHBH8HH,HHHH5؇荻HtHoHHHH5؇HPHHHH5؇jHӪHxHDžpHpHH5؇H0 HHHH8>HHHEHt@H]UHH$HH}fuH nHEDÈHiHHHH HfEf;EtH}HH,M}HH]UHH$0H}uHnHDžpHUHuQ:HyHcHx'HcEHH<HUHcMHHHHH?HʉUHcEHH<HUHcMHHHHH?HʉUHcEHHHUHcMH*HHH?HʉUE쉅8HDž0E艅HHDž@EXHDžPE؉hHDž`H0HH5ևHpʁ HpH}H萲;E`pKHy;H}iHEHtl H8H艎H"H5H&^HHHH5ѾH]HHHPHH$fBfD$H9qH5Hf HHHHHEHxHHEH@HHHtH@Hq PHHEHxHHEH@HHHHHHHHP 8HDž0H0HH5нH f HHHEHxHHEH@HHHtH@HqOHHEHxHHEH@HHHHHHHHO 8HDž0H0HH5伇H e HHH;HH$fBfD$HoH5HA HHHEHxHHEH@HHH8HDž0 H0HH5Htd HHHEHxHHEH@HHH8HDž0 H0HH5[Hd HHHEHxHHEH@HHH8HDž0 H0HH5Hc HHHH H荎HHH0HIW8u:<$HEHxHHEH@HHHtH@HqZLHHEHx HHEH@HHHHHHHOHH5lg ݝHEHx HHEH@HHHH$HH5tHH5t HV HVHHH bHH HHHH݅<$HkH5H HHHvHHHHHHHHBHHHHbt DiH贇HHH(ݝ8878HNyHH8 H0H0anrHú H8H:?tHHHvH?(ݝ8878HxHHH H0H0mrHú H8H>t3H~HHۆH(ݝ88g68HxHH H0H0+mrHú H8H>tHHH@H (ݝ8858H}wHH@ H0H0lrHú H8Hi=tH0wHH8 HH3frHHHH=;HvHH8 lrHþHHtHvHH@ krHþHxHtHvHHH krHþHRHtH{vHH krHþH,HtH5_8tuH_HcHqFHHHH^H5H޶HhH^HHHHc@HHH虢HHpHT^dHHHHcd?HH谍H-HHxHHHhHHRHAA HbHHݟ8uHقHH6Hܟ(ݝppx2pHstHH HhHhirHú HxpH_:tHܟ8uHׁ8tH!HH~Hܟ(ݝppx 2pHsHH HhHhhrHú HxpH9tI<$HEHxHHEH@HHHtH@HqCHxHEHxHHEH@HHHpHxHHpH貓HH5d^ H۟8<$HEHxHxHEH@HHxHtH@HqCHxHEHxHxHEH@HHxHpHxHHpHHH5Xc] H\ڟ8Hcڟ(HJڟ(zwH4ڟH =ڟHHfBfA/HvHuH5HplOHpH8HDž0 H0HH5HX HH=uHEH.M8u_HH=] HUHHEH,豞 AA H5HpQHpHEHZ HEHHEHHtHڱHHT$f@fD$HұHH$fBfD$MH(۽0<$HEHHpHEHHHp[ ۭ0Hq(HE۸ HE۸HEHuHEHeHp}HrrH5RHvMHHHH1rH5!HEMHHPHןHH$fBfD$H`H5JH趞 HHXHIH`HEHxHhHEH@HHhHtH@HqZ?H@HEHxHhHEH@HHhH8H@HH8HOH? 8HDž0H0HH5 H\U HHhHEHxH`HEH@HH`HtH@Hqn>H@HEHxH`HEH@HH`H8H@HH8HcH> 8HDž0H0HH54HpT HHpH՟HH$f@fD$Hd^H5UH葜 HHxHHHHp$HpHHDŽH؟8uHpzH{۽0H0HpHDžhH{۽pHpHHDžxHhHH5ͭHYS HHH ĬHH>HHXFHXHpH{HpHH较Hӟ8uHXyHEHxHHEH@HH< 8HDž0H0HH5HpYR HpHH īHH>HHFHHXHzHXHH辂HE8uEDž<$HEHxHpHEH@HHpHtH@Hq:HxHEHxHpHEH@HHpHpHxHHpHXӊHXH55[U ݝHEHxHXHEH@HHXHH见HH5)tHH5kt HD HDHXcwHH 婇HH_HHgHHh݅<$H9ZH5*Hf HHpHHxHHHHHhHHXzHXHHhHP8 tfHSD8uXHUD8u&HHH ᩇHJ$HHH éH$HO8 tNH|$ H|$H݆<$#H|$HaHYh݅h<$t۽pH5(ۭp۽0H(ۭ0HHX=uH۽0H0HHDžH۽pHpHHDžH۽`H`H HDžH۽PHPH0HDž(Hֆ۽@H@H@HDž8H۽0H0HPHDžH7۽ H H`HDžXH\HfT݅۽HHpHDžhHv۽HHHDžxHHH5HL HHHP}HPHXHtHXHH-}HfП8uHet۽pHpH8HDž0H0HH5'H K H HdHHHt۽pHpH8HDž0H0HH5馇H K H HOdHHXpHi?8u݅H̟8H|̟HH$f@fD$HP蠰HPH=RiH{H5Hȟ8HȟHH$fBfD$HPrHPH=tiHxH^iH 'HH!HH )xH H_HHܾHǟ8uuH;HHD$fBfD$H;(Hә(<$跥2@HPH HP|<H5uǟH=^ǟ9,QHPMmHH ϟHHIHHQwHHX.2@HXHX;Q۽HH8HDž0H0HH5ڡHE HH`HƟH8HDž0H0HH5HfE HHhs2@HXHX8;QHl(۽HH8HDž0H0HH5HD HHpHşH8HDž0H0HH5 HD HHxHXHHPoHPHH6uHO88t0HA88uHH5uHPjHHP[kH$ş(ݝppxpH\HHHhHhQrHú HPxpH"tHmş8uHPWjHHPjHmğ(ݝppx@pH[HH HhHhQrHú HPxpH!tHß8uHUi8tHPiHHPiHß(ݝppxpH9[HH HhHhLPrHú HPxpH%!tHZHHHxHxIrHHHHß;&HZHHOrHþH_,tHZHH HxHxIrHHHHß;&HHZHH iOrHþH+tH"C8uHP,hHZHH8H WH HH HHHHX rHXHPHQiHPHHqHmYHHu4HPigHH 뙇HHeHHmqHH8HfH8HDž0H0HH5H? HH@H蘇HHHfH8HDž0H0HH53H? HHPHHXH\f8HDž0H0HH5䙇HH? HH`H;HhHfH8HDž0H0HH5H> HHpH嗇HxHe8HDž0H0HH57H> HHH8H HPiHPHH1oH38uHP$eHEHH8HDž0H0HH5ʚHX= HXHHoHHPHLfHPHHnH>H8HHPidHb>HH8HDž0 H0HH50HX<= HXHHMnHHPHeHPHHmHn`8wHHhH?HpHA`HxHhHHHHOUHHH>UHHH t'H_HUHHH.HP c82H5H2HHhH5aH2HHpHHlHHxHhHHPfHPHHElH;8 tHx(ݝxx#HPbH5ڔHPnbHwHԈXp݅p۽H(ۭ۽0ۭ0pH^H7fTH<\p݅pݝppxHvH4XH݅H۽PH딇(ۭP۽`ۭ`oHꇇ^HfTH\X݅XݝXXpHRHHHXHXGrHËHPxpHtoH(zsH8u ş şHHk(zswHQHH H0zHHHHRHzHcH@H>H0H=>H=>fpq"H=>p`"H=>H5|HH5>襀0"H=>"H=>p"H=w>R!H@H H(HpHHcH HP^HH!HH HHcH HhH?}HHHHHHHPdbHPhH Ht}Hb8u}HHHHRHzHcH@H5qbHgHH=R9mH=F9Qn\ H=59nK H=$9H5mzHHPgHPH8AAH H@H8HE1-HH58݃H=8\}H=8;nH=8`H@H3H(HH0HcH HXr\HHHH HHcRH HZfHzHHHHH5`HfHHHHHX_HX5H HtHVh8uIAA H53HX诃HXHH"eH|HHXNeHXHLHH QH3H5wH0 H0HHwHH2H5wH8 H8HHHHhAHhH cJHHHtWHHHHcH@u H=Aw褱H@Ht2HEH@@HEH@HHEHHbHH1HedHEHHbHH1H*dHEHHbHH8dHEHHlbHHdH.HHH4bHHh1HHHO8HƔ8uHEH HEH HH/HHEffHPHH8HcHHHHHT$f@fD$H(Hf(<$HH0EHa+H8ot@H H. H5'H=PH9HH\:H哟(ݝ@H+HH HH rHEк H@Hs HHH HHHHcH@H29HKoHxOtHHtHHctHtH0CH0WH0HHrHHxHHHEHrTHX0$4GHoHEHcrTHþ$4GHCcHEHHbHH̙bHHHEHHlbHHHHEH HhnHEHHbHHbHX0$4GHnHEHjTHEHHEHHHHEHH8JnHEHqTHX0H$nHEHpTHþH cHEHpTHH_bH HKHEHpTHH HHEHfpTHX0HumHEH@pTHþH cHEHHbHH詗bH HHEHHIbHH H^HEH HhlHEHHbHH}bHX0HlHEH,ZqHEH ZqHEHHbHþH cHEHH_bHHHtHEHH(bHHMbHH9H]H]UHHd$H}HuHHEH7H]UHH$pH}HuHHEHUHuHHcHUupH}g,H@gHpHHHxHagHEHpHH}Q0HuIH=Eg 7蛿H}+HEHtH]UHHd$H}HuH HEH /AH,HEH /AH,HfRH5_R?H]UHHd$H}HuHSHEH qHEH #qH]UHHd$H}HuHHQH5QH8?H]UHHd$H}HuHxHEHUHu H1HcHUu5HEH0 HuRHMHH8HeH5eA1H}C*HEHteH]UHH$H}HEHHH蓬HhHDžHHAHiHcHUu^HH=)H1H5)H3HHH8H9eH5ZeU0HO)HEHtqH]UHH$H}HuHxHDžHUHu`H舗HcHUu@HEH HHHH2Hm8H(HEHt讽H]UHHd$H}HuHcH슟HcHqH׊HΊ8 }PH]UHHd$H}HuHHEHEHUHu>HfHcHUudHEH HuHUH=̂H}1H5H}1HMHH8HscH5bG.H}I'H}@'HEHtbH]UHHd$H}HuHHEHEHUHuNHvHcHUudHEH HuHUH=܂H0H5ƂH}0HMHH8HbH5 bW-H}Y&H}P&HEHtrH]UHHd$H]H}HuHHEHUHubH芔HcHUHEHX HEHX H @HEHHEHHHEH@HEHHEHHHEHX HEHX H H5AH}s/HuHXH8H~a)HEHX HEHX H u]+H}*}LHEHX HEHX H @HEH HEH HPHEHX HEHX H @HEH HEH HPH}G$HEHtiH]H]UHHd$H}HuH#HEHHEHH H~H~H H8HY`H5ME(H]UHHd$H}HuHHEH sqHEH qH]UHHd$H}HuHcHEHHEHH H[H8H_H5L'HEHHEHH H}H]UHH$PH}HuHHEHUHuH;HcHUHEH&Ap݅p۽`H`HEHDžxHxHH5 _H}D HMHYH8H_H5K)HEH#&A+1薵H}!HEHtH]UHHd$H}HuHHEH qHEH qH]UHHd$H}HuHsHEH0HEH0H HEH8HEH8H HEH@HEH@H HEH HEH H HEH`HEH`H qHEHHHEHHH uLHEHPHEHPH u'HEHXHEHXH u$HEH@HEHH "HEH@HEHH NH]UHHd$H}HuHHEH HEH H HEHHEHH HEHHEHH HEHhHEHhH HEH(HEH(H qHEHHEHH uLHEHHEHH u'HEH HEH H u$HEH@HEHH "HEH@HEHH HH}HDžHDžHDžHDžHDž0HH@蝬HŊHcH8 HuH0H H8H HHHXHH4HH HXH(HHH0H0H_ H8lH H8LXH SH(EH%H H H8;HS H8LqXH SHDH_%HN H H86H H8L$XH UHDH%H HEHD Hs HsHH`HHWH(H(AAHH=WY;u0HH HH=|H#HHHHWH(H(AAHH=JW;u0HH HH=V}Hg#H H8LFH 7WH(CH#H ǺjHEHpHEHpH0 H2 H8L@FH VHBH>#H- ǺHEHhHEHhH0 <$H H8LUH VHGBH"H H8rHEHH H$rHEHH H HU H8HYVH5AHrHEHHr@0HEHH H}rdHH8H'VH5AcHrHEH Hr@0HEH H Hzr8u^HEH HhHEH HhHPHEHH5bH@Hb\HEH HhHEH HhHPHEHHשbH@HIbHH8H>QH5o@JHqHEH Hq@0HEH H HH8IH NH@H H HHEHH0:%H3H8HNH5?HtHEH0H`@0HEH0H HH8IH MHj?HH H fHEHHq 0HEHH0 HEH HH 0H}LHUH8IH 4MH>HaHP H fHEHH 0HEHH0 HEH( H 0H}HH8IH gMHP>HH H HEHPH0HEHPH0 H[H8IH "MH=HgHV HHEH( H0HEH( H0 H}H}HEH # AHEH q AAHH8LPH RH?=HH DHEH HEH H0 HNH8IH QHQH0ZH0HEH cHEH HH ,HHHHc,HH0H061H0HEH _cHxH8IH ?QHQHHH=HH5H0/H0HEH bHH8IH PHPH HH=OHH59H0H0HEHqbHH8IH PH"PHHH=H H5H0AH0HEH aHH8IH RPHOHHH=aHH5KH0H0HEHaHH8IH PH4OHH HEH 4%HEHHH5OHEHHHPHEHHH5OHEHHHPHEHHH5OHEHHHPHH8IH OHJNH0H0HEHW`HpH8HOH5 NHHEHP H@0HEHP H HH8H{OH5MH`HEH HL@0HEH H HH8HROH5kM6HHEHX H @0HEHX H H0HHEHHHH0H5MH0HtMH-H8LNH NHLH9HH={HH5MH0HtJHH8LNH NH^LHHH=HEbH5lMH00HtHHbH8LXNH NHKHnHH=HH5HHHEH]HH8HONH5KSH\HEH0 HH@0HEH0 H H}pHH8HNH5.KH"HEH H@0HEH H H@H8L^IH MHJHLHH=HH5HHHEH \HH8LMH MHaJHHH=WHHH5AHHHEH 9\H=MuRHPH8HH:HHHHHHH=>M虛u Hg(HH8H4MH5-F8HgHEHP Hg$HEH`Hg@0HEH`HHEHhHVg@0HEHhHH=Lum<$H1H8HHHHH# HcHEHH HcHEHH H H=qLdu)H=LRuH=L@u=H=8L+uH{H8HqHHHTH8HH>HHHA ztt%t/t9tCtMZHKH H'Hpt@tb ,HEH@HEHH HEH@HEHH HEH@HEHH HEH@HEHH HEH@HEHH lHEH@HEHH HHEH@HEHH $HEH@HEHH H}H8HAH5 / H_HEHH_@0HEHH H,H8LJBH sHH.H8H' ǺH_HEH H{_0$)%HH8H)AH5J.% H._HEHH_@0HEHH HEH ǀHEH ǀHEH ǀHEH HxxHYHEH HxxH>HEH HxxH#HHH0H9GH%HHEH HH[HH0HGHHHEH HHHXH0HFHHHEH H?<$HH8L@H ?H{,H H HEHHEHH \HH=R HHHH8,! HH8@B HHqHpHcHuAV5HNHH5EHt HEHH8u H= }HHt詖H}HEHX HEHX H uHoH8HEH5*HZHEHP HZ耶$H)H8HeEH5*H͞HEHP H͞:$HH8HGEH5p*KH͞HEHh H͞@0HEHh H HEH H͞8@HEH HPHEH` Hj͞8@HEH` HPH8H8LV=H DH)HD H( HAH88 H*H8| HHEH H0HEH H0 HZHH8IH _;H:H HHH HEH H^ HHuHHSH{mHcHyiHH HHHHHatHH=YHH uHHHP`HHtZH5SYHRHHEH OHEHhH0_SHH8HBH5'pHWHEHP HW$HEH HEH H EH]H58HpHھH=iBB tyHcEHq衿EH"HUH5RBHHHEH HHEH H H}B uH]H5HdzHھH=B3B txfHcEHqEHzHUH5AHHHEH HHEH H H}8B uH}D HEH @HEH H H H8IH 8Hx7H,HH=WHH5WHHHEH LH}wHX8u|HTHIH=H1H0%H5H}%H H8Ht(HLH]UHHd$H}H׾HEH P HEH }P HEH hP HEH SP HEH >P HEH )P HEH( P HEH0 O HEH8 O HEH O HEH O HEH O H]UHHd$H}HuH賽H]UHH$0H腽HDžHHDžhHDžHDžHH衉HgHcHHH@dHHH HHHHHHHH H0HtHH=HPHHXH=H`HPHHHh]|HhHheHhHpHpHHxH HHpHH H lHH*=HPHHXH&=H`HPHHHP{HPHhHhHpHHHxHHHpHH?HHuH5HH80H<,HH<HHPyHPHHHHjHHHHHHnH8HdHHp$Hm0HDH8AANH'HHh趉HH HhHHHHtH]UHH$H}HuUMDELMHEHHH!xHUHHxHxHDžhHDžpHHx誅HcHcHU؅HĪHHwHWHHH @HHH HHEHmW8tHH8HHHX$fHH8 HHHHwH8 HhHH`uHHpnHpH0H8H&HH}uwbHHhHhUHH8HpHHHHpH}H*uHH8HHHHUBHqHHx0H5[9N uyHhHH]EHHHDž݅۽HHHDž݅۽HHHDžHHH5&H趸 HSHsHH HZHH H H@HH H'HH H H#HHHHHHHcHHX HXHXH5(H8HR?H@f#H<$HHHHHDžHgEE<$HHMHHHDžHHH5'H HHHHHHDžH۽HHHDžH۽HHHDžHHH5x'HL HpQHHH{'HH-HHHHHaHL A H&L #A H5'HHHH_wXHHXHXHEHHHuHHo H}&HHHH&HHHHH_HHHOHgH8t,茫HUH5NH >Hu HVnHHHHHPHXHEHt pH]UHH$pH}HuH轞HEHEHUHujH#IHcHUH}kٽxٽ|fxmH %(H%(٭x߽p٭|HpH} HuH$H}HUH}HmH}H}HEHtnH]UHH$pH}HuHEHHH\H耝HDžpHDžHHiHGHcHUtzHHpHHpHxHHHxHH荱,|ۅ|H#(H#(}}H}غHpHEHHpH5 0Ht<H}غHpHEHHpH5 HtHEH HuFFHEHh H0><$H}غ HpHEHHpHP) ߽xHkxH\`HDžXHXHH5HhH HhHEH 1HpH}غHHEHHHpUH56HpHtHEH` H5i }H5HpHtHEH` H5S JH5HpYHtHEH` H5@ [HEH` H5O BH@HOH-HcHx H}غHpHEHHpH= ,u;H}غHpHEHHpH= 誛,u HEH HuFFIHEH H0HpDH}غHHEHHHp脾H5 HpHtHEHP H5JH5r HpHtHEHP H5m HEHP H5 H}غHpHEHHpHtH@H4H}غHpHEHHpH= 菧 E<$H}غHHEHHHtH@HcUH)q\HqQH`H}غHHEHHHXHXHtH@H+`HPH`HXHp:HpHP H@ (۽<$HcEHq~H`H}غHHEHHHXH`HHXHpHpC ۭH8H}غHpHEHHpH5HtHd(H(HP8HGHHDžHHH5HhT HhHEHX = HEHX H$ H}غHpHEHHpHtH@H4H}غHpHEHHpH= E<$H}غHHEHHHtH@HcUH)q|Hq|HH}غHHEHHHHHtH@H+HPHHHpHpHP脗 H(۽<$HcEHq/|H`H}غHHEHHHXH`HHXHp,Hp ۭH18H}غHpHEHHpH5,HtH(HH(Hݸ8HԸHHDžHHH5eHhё HhHEH` HEH` H <$H}غHpHEHHpHP He(HJ8HAHHDžHHH5Hh HhHEH@  HhHHxH}غ HpHEHHpHHHtH@HHPHHHp@HpHHHH}غ H`HEHH`HHHHHhHhHH[HH}غ HPHEHHPHHHHHXpHXHHHH}غH@HEHH@HHHHHHHHHHHH}غH0HEHH0HHHHH8H8HH#HH}غH HEHH HtH@HqwHH}غH HEHH HHHHH(H(HHxH HhH HcHUuzHEH 萻@EHHHHc}LjHH}WH}HMH,H8HH5׆ִAH}حHEHtBH]UHHd$H}HuHqHEHh HEHh H HzHEH Hz8@HEH HPHEH` H|z8@HEH` HPHZzHAH8HH5ֆ{H]UHHd$H}HuHpHH H]UHH$PH}HuHpHDžXHDžhHEHUHuH]UHHd$H}HuHlHφH5φHH]UHH$pHpH}HuHlHDžxHEHUHu8HHcHUHEH HuH}xk H1H(EHHHHc}dHH} H}H]H5HxHxHØH8HHq;HxpH}gHEHtHEHxHu HuH}荡H5H}Ht=HEHxH5HEH HEH Hh RH5bH}詰Ht;HEHxH5 HEH HEH Hh 4H}iH}`HEHt5H]UHH$pH}HuH-dHDžxHEHEHUHu`0HHcHUXHEHHu襏HUH=jH蛩H}袟HEHHunHuH}H5Z߆H}aHtAH5Hx蒩HxHtH8HBH5ކH5"߆H} Ht>H5Hx:HxHH8H2H5݆ƥSH5ކH}贮HtHEHX@HEHXHPHEHXHx0H]UHHd$H}HuHUHRHEHpHEHpHt HHEHp@HEHpHPH=G H=+ HfH8@HfHHPH]UHH$PHPH}HuHUMHQHDžXHDž`HDžhHDžpHUHuHHcHx@H8u/HEHHEHHu)HEH HEH H uHE0Hx"HEHXb@HcHqBO}EE܃EHEMfHFf;THtiHh莌HcEHqNHpHH`HHptHH`H`|H`H`H5݆Hh認HhH,}H8IH ݆Hp?HpH=qH貕H5[HXHXHEHHEHHEHH tH=W"/H5HX舕HXHEHA;]~gHXH` HhHpHxHt HPH]UHH$@H@H}HuHNHDžXHDž`HDžhHDžpHEHUHuHHcHU HHEH8@HEH8HPHEH@HEHHPHEHH5؆HEH @HEH HPH{H{HEH HH{H{|HH|HHc|qEH|H}|H}HuHEH (HQ{HD{|HHHHc|DHH}H}胧HuHEH 8 5>JHfHH|HHHHc|kDHH}vH}HuHEH "HEH@HEHHPHEHX`@HcHq@J}EEEHh裇HcEHqJHxHH`HHxCH`H`葑H`H`H5k؆Hh迈HhHAxH8IH ؆HpTHpCJ MHyfDJHpȆHcEHq)IHxHHXHHxBHXHX趐HX3HXH5׆HpHpHfwH8IHE׆HhyHhhI H`'H`H`H`HEHXUHEHXH H`襅HcEHqHHXHHXHHXAHXHh蓏HhHhH5-ֆH`H`HCvH8IH"ֆHXVHXHEHXUHEHXH ;]~HuH8H ֆH5ՆO@HEHHEHH HuH8HՆH5Ն@HEHHEHH H}CH _8u"HEHP@HEHPHH]8t$HEH@@HEH@H"HEH@@HEH@HH=HՆuH=Ɔqu HRH]8 t$HEH@HEHH"HEH@HEHHH&tHHXHurHUH=(HHsHHHurHUH=H赌H>Q8uVH0QHtH0H} HEH@HEHHHEHCHEH,H}^:HX-H`!HhHp H}HEHt"H@H]UHHd$H}HuHEHEHHEHH u!HrH8H ӆH5҆HrH8H҆H5҆ޅH]UHH$H}HuH=EHEHUHuHHcHUHEHHEHH u H sHEHHEHH u HrHEHHEHH u HrHEHHEHH u HrHEHHEHH u HXrHEHHEHH u H&rHEHHEHH u HqHEHHEHH u HqHqEHHHHc}_;HH}jH}HMH?pH8Hm†H5ΨH}~HEHt H]UHHd$H}HuHBH,HH"HHH ^H]UHH$HHhnBHDžHDžHDžHDžHDžHDžHHHtHHcH4tHH=P\[ HhHh;S Hh@d HH=\! H`H`H5<φ觽 HPoHH QCH:oHH H`pCHoHH @H}HanHHHΆHH52}H!HHHΆHHHHրHH#@HHHfHHΆHHrHHzHnHHVH@0uTHH&HHxHH+ HSHcHHxU`>HxHxH苺6>Hx %>HxH}HH=͆:X,tNHxHIHHhv HhHhHt HctHq3=HH55<HH=|HK<$HhHHhHHW H{HHctH<HhHHhHH{= ۅHx{HHctH|HctHqTJHwHwH5$H: HHEH H\0H(H(H uHHEH ŻH=iHŞ8t"HtŞ8tH78u HEH K qHEH [qH\lHH(HHclH&H(HPtH͈HHEH DH[0H(诿H(HsHHEH 谺HH8DH68tZH'vH\H]8KJt.HĞ8u HEH qHEH $qHuH]JJ<}IHI[t"t7tIt[tm{HP]BsH6](\H] EH].H\H\<̿H=#HWZlHH(HHcl$H(H#rH蠆HHEH ɸmH`tH5\l3JH-HYHY0H(YH(HqHHEH ZHY8uHHEH8@HEH8HPHEH@HEHHPHEHH5HEH @HEH HPHEHp@HEHpHPHEHh@HEHhHPHEHH @HEHH HPH3XH6XHEH H)HEH@HEHHPHEH @HEH H HEH @HEH HPHEHX@HEHXHPHEHXHx HEHX @HEHX HPHEHP @HEHP HPH @8u3H?H8H5⺆H?HHH?H8H=iuH=H8OHEHp@HEHpHPHEHP@HEHPHPHUH8HhH5h=5ɞuH8us7ɞ;!ɞ}cGɞ;1ɞ}SHEH H1)u,H=YDHEH qHEH qȞHcȞHq8&ȞȞ|;ȞȞzHcȞHq%sȞmȞ|;KȞAȞ\zHU8tbi JHH)q%HEH(HEH(HHEH(@HEH(HH(bHxbHbHHtH]UHHd$H}HuH&HEHUHuHHcHUuQmH (H(H(}HuH} HUH}HkH}aHEHtH]UHH$HH}HuH%HDžHDž HDž(HDž8HDžpHDžxHUHuHHcHUHSH=·uHEHHEHHHEH8 HEH8 HHEH@ HEH@ HHEHH HEHH HHEH HEH HHEH HEH HHEH HEH HH}(n H7U^ HgVH}JH;8uHH=SnFzJH:HH:H@dHQHH0HxOHxH:H8H:HHp$Hr:H8AAN%HP:HHh?}HHp`_HH@H:HH@ HHHHPH9HH@0HXH#H`H9H@(4HH4HHc4H4H8hH8z}H8HhH@HHpbHpH޿I4!H~'!H0PHHH%HH5[HC"HOHH8HHH8G .H8H8H54H8HHH8H8 NH(H|8HHH(Hx} HxHH8`gH8蔮z-H#8H8H5H8HHH7H8 NHxH7HHHxH( H(HH8fH8HNHHH#HH5=H HH8ޢHW7H8H5=HF7HHH37H8 NHxH7HHHxH( H(HH8fH85HMHHH3#HH5HHڀH8+HMHHH"HH5HHH8šH>6H8H5H-6HHH6H8 NHxH6HHHxH( H(HH8dH8HLHHH"HH5HHLHH8H5(諫HH8ܠ*HK5H8H5H:5HHH7LHHH!HH5HJHLHH@H5jHH8N 8JHxNHmNH5ՇH ) H HEH躪HKFtDKyHZKH3KH(KH1KH6KHc8HM+JHeHeH5H ( H HEH ީHJ8tZHJ0HDž(H(HH5H(1 H(H=JHXbXHoJ0HDž(H(HH5WH(;1 H(H=JHaH"J81H JHJHcHkHHDžHHH5{Ht$ HH5>H(UH(H7{H?KHxZHHtHRHq HZZH0H 4,H HEHP H=ZHHtHRHq6 HZH0H @4,H HEH` 詛H<H<lHHHHclyHH TH hH HEH 'HEH(H5UzH>IH6FHm>IH*FH:H8HH5Ɵ)NH=p]8HHHHHHcHhHJIHcHg dHHHHcd*HH82SH8gH8HHHHHHLHؼHHHH dHHHHcdlHH8tRH8fH8HHԣHHHHLHTH}QlHhHtK& zIHH)q HEH(HEH(HHEH(@HEH(HHAGH 5GH()GH8GHpGHxGHEHt'HH]UHHd$H}HuH H$HuHkH8HkH8HEH@HEHHH]UHHd$H}HuHS H8H]UHH$PHPLXH}HuHUMH HDž`HDžhHDžpHUHu5H]HcHxAHEHXtHE0Hp诚HpHpOHpHEHXHEHXHEHXHEHXH HEHXHEH BffDQHEHXk@HcHqK}gEfE܃E܋EHUBDBlHHpHHclHpHpNHp+cLpHhHDHcEHqHhHHpHHh.HpH`6NH`bH`H5HhdEHhH4H8H5̔LJHEHXMܺHhHEHXH HhHHpIMHpHpH3HpH`kML`HhCHcEHqyHhHHpHHhHpHpMHpaHpH5Hh4DHhH3H8H5LdI;]~H`YBHhMBHpABHxHt`HPLXH]UHHd$H}HuHUH HEH}HEHE}EfDUUHMU< sHMU<rHUM t tt(HcUHqUH}uHMU7;E~HcUH}HGH]UHHd$H}HuUMLEH( HEH0H=Ƶu%HEH0H=ݵHUuH}H]UHHd$H}HHEHHEHH ueHEH@HEHHPHEH@HEHHPHW1H8H{H54DcHEH@HEHHPHEH@HEHHPH0H8HH5ϐ*DH]UHHd$H}HuHHEHH]UHHd$H}HuHcH\dH@HH5HHtH]UHHd$H}HuHHEHEHUHuNHvHcHUurHd8tdHEH Hu.HUH=KHHH5xKH}HHMH/H8HH5>}IEH}K>H}B>HEHtdH]UHHd$H}HuHHEHEHUHuNHvHcHUurHd8tdHEH Hu-HUH=KHGH5xKH}GHMH.H8HUH5>|IDH}K=H}B=HEHtdH]UHH$H}HuHx HDžHUHuPHxHcHUuIAA H5sH eHHHFHD^Hs8uHP:H.H5HH HHHHPr;HPH=D;HCHP9H2+HH0HH8H5;H(CH(H@H0HHPu=HPHHHHH=;HCHP 9H*HH0HኆH8HӖH@H0HHPHPAHPHEHx(77H5p?HP@HPHEHx0 7HDBHHH'A8tLH=AHjHH5@H {@H HEH 4H5@HL@HH(iJ H(HH?HH @H HEH轆HEH H5˓覆H}HEHtH p5HɓH0HE@ HHHHcQHHY?HSHH8HH@H0HH 8H HEH ąrH5X?HP>HPHEH4HEƀupHHP>HPH}HEHuHEHH0蘉HEHH0zH0HRHzHcHuYHHHHȶHHP=HPH}HEHHEHHH=HHHHpH¡HcHhHP3HH8HHH xHHhHhHwHEH H5ځ%wH9HH5ށHHHEH Hls HDžH5מHHHHH5j-H5f#H'HHHxH5 H'HHHxH%HHHH&HHEHH(HHHHHHH'HHHx6HHIH}HHAAH=L:uHEH H5SFuHEH H5b-uHAHH5fHHHEH Htq 8HEH H5XlH=H=Ѐ(H}JEE IH*H^0݅0۽HH@HDž8H8HH5ЀHd HHEH tخH,H H H(HHHPH5ԞHHHXHtEHLH]UHH$@HHHHDžHDžHDžH8H赪H݈HcH HH=j HxHx,9 H5H($HHxUT HxHxHHxHHxHH5 ۽`HxHHxHH ۽Pۭ`zw fON fDSH=HHDžۭ`۽HHHDžHHH5o~H HH=~H"ۭPzw&H~H=~H /~H萛$H~H=~H ~HjHc~HHDžۭP۽HHHDžHHH5}H HH=}H!HH=>Ih HEH5.H!HHHH\ HHH5kfzSHZHHHH2iHH }HHHH>H@ tHH3HHHhHH|HHHHHHHHHHchHH=|HHHHoHHٕ-HHHHHgHH{HHHHHH}HEHHH6HHHgHHwsHHHHHHH4HHlHHH}%H}t HHuHH`JHrHcH/HH1 HHH|HHHH=zq+ujHH5z%t\HXyHHDžHHH5FH HHHHH55z谚t\HyHHDžHHH5FH HHHc~HH5y;tEHH5FAH HHH HH5yݙtEHH5@H HHHHH5\yt\H HHDžHHH5DHo HHH2MHH5x t\H] HHDžHHH5nDH HHHHH5x蕘t\H HHDžHHH5CH HHHHcHH5Ex t\Hs HHDžHHH5CH HHHHH5w諗t\H HHDžHHH5CH HHH^yHH5w6t\HyHHDžHHH5BH& HHHHH5.wt\HHHDžHHH5%BH HHHtHH5vLtYHHHDžHHH5AH< HHHHHH耑HHHaHH/H/sH, ,HHHP`HHt蛣H*H}H@H4H(HHtGHHH]UHH$HLH}HH/HHHDž HDž@HDžHHDžPHH`H|HcHX!ĞH\2H8SHEH HEH H HH HbH0H^HHHHHP HPHHH8tH(HH0H HHHHHHHH}|HHg~H\HcHxHHuHHJ+HHuH HHUHHHHH=rIEHxHH`H }H[HcHuDHH0H=vHJHnH0H=dHXH:8uDH.H0H=$HHcHH0H=HVAH8uHuH耇 HHHH=ˇ HtDHH0H=H HH0H=HHHHP 蓐#uDH6H0H=,HkH$H0H=H6I}uDHH0H=HLHH0H=HzH68uDHH0H=HHH0H=|HH8DHFH0H=<H{H4H0H=*HYHH0HxHxHPHH0HxHxHPH}H5dWHtHxH5jHxHPH6HxHxHHcHq聜HHHHHHHHHH5HH}H.HH8H5ćHt"HH8H5+ŇvHtHeH8H[HHX'DHAH8 H2HHHH8 HHH`uHuHH8HHH}u$HuЋUHǮH8HHHHHHx0H5$݇见 u#HHHP0H}ȹH5݇HҮH8H5ÇSHt"HH8H5Ç6HtHUH8JHFH8^JHuH3H8H)HH }u$HuЋUHH8HHHxHHphtHխHpF'taHH8JHuHH8HHH }u$HuЋUHyH8HoHHxH\HpuHۇHHH6HpۇHHxHH H?ۇH(HEHH0HEH8HHH0H0FoH0HڇHHHEHPHڇHXHHH`HHHH0H0FHԠeH0-H@!H}H}HhHt.gH]UHH$PEHHDžxHEHUHubHC@HcHUE<$H}HuHZHH {"H}bE<$HxHxHهH}HuH HH *"H}E<$HxOHxHlهH}HuHHH !H}E<$HxHxH;هH}2HuHgHH !dHxgH}^HEHteH]UHH$pH}H1HEHEHEHEHDžHDžHDžHDžHDžHDžHDžHDžHDžHDžHDžHDžHDžHDž HDž(HDž0HDž8HDž@HDžHHDžPHDžXHDž`HDžhHDžpHDžxHDžHDžH`H 0_HX=HcH(|EEH5H}=auH=&ׇB;(EHH^HH}о9H}HEHDHcuHqcH}HEHHEHcuHpHEHHEHHE}HcUHcEHq`cE dq H}訆9pfDHcuHq&cH}HEHHEHcuHpHEHHEHHE}HcUHcEHqbE}~녃}HHcHcuH}HEHHH=~HEHuH}HEHH}HHEHHHHH= HtHzxHH HH5rH[xHH HHPH:xHH HH5jHxHH HHPHwHH HH5ZHwHH HHPHwHH HH5JHwHH HHPHzwHH HH5JH[wHH HHPH:wHH HH5:HwHH HHPHvHH HH5*HvHH HHPHvHH HH5HvHH HHPHzvHH HH5 H[vHH HHPH:vHH HH5HvHH HHPH= UH}H}H}}H}HHEHH!` HHHHcXHH迦HH tHHx tH=tH5YtH=tH5d_H=tH5lGH={tH5t/HsHHx tH=GtH5`H=2tH5s|H=tH5{ΚgH=tH5蹚RH=sH5褚=H=sH5菚(H=sH5ǮzH=sH5ڮeHs| ~ tt Hs HsH}HHEHH\ HHHHcUHH荣H HH=r藙H}HHEHHY\ HHHHcTHHHtHH=rHJrH8[ #}vHHHpr8tVHrr8tHHtr8t:HqH0L,HVz+HH=qsH r8tH r8tH r8tHyqHHtH@Hq"ZHHTqHHHHtH@H+HPHHH%HHqHHHHHHHH=pH豘Hq8tHq8tHq8tHpHHtH@Hq0YHHbpHHHHtH@H+HPHHH3HHpHHHHHHHH=oH迗HoH0H=oH"蝗Ho8u+HoH88Y &} AA H5HHH}H}HEHH}HHEHHH=HoÕH}0H}AA H5蠻HuHlH8H!HHHlHHHHcOHHH腱HHHHHBlHHHHHHH苖HH-kHH HHkHH HHPHHkHH5AH荓HHjHH HHjHH HHPHHHHkH0HH8^|HrHkkHH5̧HHH"jHH HH jHH HHPHj8u.EttSHiHH HH5VHiHH HHPHqiHH HH5AHRiHH HHPH,iHH HH5,H iHH HHP@HhHH HH5HhHH HHPHji8 t>HhHH  HhHH Hx H@HHi8tH\HChHH @H/hHH HHiHhHH Hi0蠳#HiHgHH Hi0t#H-\.HgHH @HgHH HHChm~ ttYH]gH8EHNgHH H8gHH Hx H@HHgHHgHH HfHH Hx H@H]H6gH|g8t@HfHH HfHH Hx H@H>HnfHH HXfHH Hx H@HH}AA H5j蕵HuH fH8@H pH!H8Y H}u H}r H}u H}` { NHHt!HfH8P jH蜌HUH5䣇H HHhHUH5ࣇHH H=rH!HH HH}H}H}HHHt!HH]UHH$HL H}H}ًHOHDž8HDžhHDžpHUHuHHcHUHdHHHnRHHuH/OH}uiHdH8ON "HhيHb|H0H[zHhWHhHp4NHpHxHHEHdHHEHHEHxH=vH胎HvH0H=v HvH8@> uH=~v)LH=kvvL,MfuOHHH޿LHvHH޿蝰LH {LHp蚉0H5١H8=Y H8H@H衇HHHZcHHPH顇HXHEH`H@HHpHHpH5juKH=Tu_KH=Cu>KH=2uKH=qǙKH8覈0H5堇HpIX HpHPHHXHEH`HPHH8sH8H5q JH=p芨JH=piJH=pȖJHh0H5&H8W H8H@HUHHHaHHPH6HXHEH`H@HHh蕋HhH'jH8HjHHPHj8uHxHHHxHHH( HHh!0H55H8V H8H@HdHHH`HHPHEHXHEH`H@HHh褊HhHHPH xHHHwHHH( HHHAMcHwHHHwHHH HcI)qYHLHqKHHwHHHswHHH HYwHHZHH8&H8zHhnHpbH}YHEHt{HL H]UHH0IH]HHpHH]HHh@H]HHhHH]HHp@H]HHpHH]HH@Hl]HHHPH]UHHd$H`kH=FuH HuFHUHuHHcHUH=@H\HHpHH|]8tHn]8tzH\HHx t^H\HHh@Hm\HHhHHS\HHp@H?\HHpH\H#\HHh@H\HHhHH[HHp@H[HHpHH[HHx t0H[HH@H[HHHP.H{[HH@Hg[HHHPDHEHtH]UHH$ H(H>FHDžHHDžpHDžxHEHUHucHHcHU HZHH HHȦH8HZHH(誳tBHmZHHx u&HQZHH #HH40 H[iH}UHH HxoHUHH H4HTHH HTHH HHHTHH HxHx{Hc۽`H`HEHEHUHH5◇H}T HuH闇Hx }HxH=HxN{H'c۽`H`HEHEHUHH5ꗇH}!T HuHHx|HxH=HxzHb۽`H`HEHEHUHH5ꗇH}S HuHHx|HxH=Hx^zHWb۽`H`HEHEHUHH5H}1S HuHHx{HxH="H5뗇H=HxS8 tEEEEEHEHUHH5HxR HxHcuHq;H=^v݅}HEH HDžHcuHq;H=]v݅۽`H`H0HDž(HcuHqQ;H=ʍv݅۽PHPH@HDž8HHH5&H}Q HuH}}H}HEH HDžH۽`H`H0HDž(H}۽PHPH@HDž8HHH5HxP HxH=ŖHр}HEH HDžH۽`H`H0HDž(H۽PHPH@HDž8HHH5 HxEP HxH=OR HHwHpwHxvH}vHEHt H(H]UHH$`H}HuH}vH}vH:HUHxHHcHpH^8ucH$H8oNHEEEHH8+vNEHuH}HEHEHuH}HEHEHcUHkqY8HcEHqK8EH]HcHcEHq/8HcEHq!8HcMHq8Hq8HcuHgfffffffHHH?HIMkq7Hx]HcHcEHq7HcuHq7Hc}HgfffffffHHH?HHD2} H`HhH`HhH}7HMHH #HEEEHMHH EHuH}HEHEHuH}HEHEHcUHkq6HcEHq6EHo\HcHcEHq6HcEHq6HcMHq6Hq6H/\HcHcEHq}6HcuHqo6HcUHq`6{ H`HhH`HhH}豆HEHtH@HlH[HcHcEHq6HcEHq5LcEIq5H}[HcHcEHq5HcUHq5HcMHH?HHHcuHH?HHH}4H+[HcHcEHqy5HcEHqk5HcUHq]5HcuHH?HHHcEH)q>5HcEH)q05HMH}HEHHZHcHcEHq5HcEHq4HcUHq4HcEHH?HHHcuHq4HMH}HEHvHcuHH?HHHcEHH?HHH)q4HZHcHcEHqh4HcEHqZ4HcUHqL4HMH}HEHHYHcHq"4HYDH}qH}qHpHtH]UHH$ H}HuH}qHT5Hu6HH}a'HDž HDž(HDžHHUHXkHHcHPdH6HuH=3,HuHH HHlHH0 E}}}~HuH HH()H(H0EHDŨH8HuH H H H H@H0H}H4tHuH HH 衂H H0H{H8HuH H H(gH(H@H0H}HsH loH(`oHHToH}KoH5|4H}K&HPHtZH]UHH$pH}H}GoH3HDžxHUHuKHsHcHU'N1E=1EEHH= M+HEH},)DuHxHxH}ѨH}HxHEHHxHu~Ht.HuHR}H8HH}HHEEHcEHqP0E}}@;E}TH}HHEHP`HH=L*HEH},(H!V8fHVHHcUH4H}էH}HxHEHHxHu}Ht.HuHV|H8HL|HHEEHcEHqT/E}}%HrUHcHq4/HcEH9}DH}HHEHP`8HxlH}lHEHtEH]UHH]UHH{H=lH={1lH]UHHd$H}HuH0HEHwH]UHHd$H}HuH/HEHH̼H]UHH$pHxLeH}HuH/HEHUHuHHcHUubH\HFkIHEHHu[HuH=|L|u#HEHH\H0 H}3H}jHEHtHxLeH]UHHd$H}H.H0\H@Hr u@HEHH腻H[HH[H8HꉇH5 >qHEHH5EH]UHHd$H}HuHx#.HEHUHuiHHcHUu-HEHHuYHuH=W[2jH}TH}iHEHtH]UHHd$H}HuHx-HEHUHuHHcHUuSvHZH0H},HuHEH*HZHH9ZH8HH5oH}hHEHtH]UHHd$H}HuHx,HEHUHu H1HcHUH ZH0H}+HuHEHkHEHHYH0QHEHHYH07HEHHeYH0HEHH;YH0H}gHEHtH]UHHd$H+ḢHEHHEHHEHMH'H8IHH5Ro5H]UHH$HH}HuH F+HDžHDž HDž(HDž0HDž8HDžhHDžpHDžHDžHDžHDžHhH(H=HcH :HEHH`ELEH/EHf)EfHEHfDfHDHfDfHDHfDfHH=XDcHHEHH-HHH)HEHH5THEHH0HEHH(HVH0eHEHHEHHuHEHHc,HH5H!)HEHHHXHEHHHHNu HHHnHHnHHFHHnHHEHWHHonH@ u:A H5[H=7lt ƅƅuHH*HRHcH HXTt_&HsN&HEHH*HH50Hp'HYH8葩HHXHC%HXž%HcHqk%HHmHH=睇?+uH,PH@aHHlH:р+H)q$HHHlHHHHtH@H+HPHHHtHHrHHH|HH뜇HDHEHH(HHHkHH%HHkHAH=siHH[#Hz#HEHH5HEHH5 HHHHHN= H.8H.(HE(zw!H.(H9(zrHN`H?HxHy.HH$f@fD$H] HHH0HHxHHdHHHiHEHH&HHHiHH#HHiHHHHHH; Hp-8Hg-(HN(zw!HK-(HB(zrdH^HHHH-HH$fBfD$H\ HHHHHHHbHHH>hHEHH%HHHWhHH("H]HmHH7,HH$fBfD$H;[ HHHޙHHHHaHH+HHDžHHH5HU6 HHEH>Hw+HHDžHHH5H6 HHEHH恜H8HHpfHpH HHHvfHHpfHpH=(k9+uHHpzfHpHH[fHH|9+uH)q[HHH fHHHHHHp]nHpHHpeHt[HqHHHheHhHHHtH@H+HPHHHpmHpH嗇H\HH詁H({HH8HHpdHpH=7+tH;yHHpdHpH贔HHpHHHpH=^ _IH*(HHD$fBfD$H"((HI(<$@Hp{ Hp( HHlOH'HHT$f@fD$H'(H䖇(<$@Hp HpJ( HHOHpYHH HH@H@HcHH@@H0 H0' N۽0H0HHDžHHH5%H8y1 H8HHHHHDžHHH5H(11 H(HP@H0 H0' NHĕ(۽0H0HHDžHHH5\H 0 H HXHHHDžHHH54Hh0 HH`H@HHp[[HpHH`HH6xHUwHXnuHXHEHHHH5H HHH=ՠHHHPHHHcH_H0VHGH@HcHHHHHHH_H{tHHHH&HPHH8HHH _H HXHH`HH@HhH@HH0DYH0AH=^1]HEHH%HH5H^HHt=He`HOHEHHHH5YHqH@TH 4TH((TH0TH8THhTHpSHSHSHSHSH HtHH]UHHd$H}HuHHEHH]UHHd$H]H}HuH_HEHHHHHAH]H]UHHd$H H$HEHMH5H8IHtH5Z5H]UHHd$H}HuHHEH/H]UHH$0H8L@LHLPH}HuUMLELMHSHDžXHDž`HUHpHHcHhVHcEHcUH)q\EHuH=>7HIHuHUI$I$Hx}tMUH`LI$ L`HcELcmIqMUHXLI$ HXI$I$HHcI)qIqDDEHuHUI$Mcf}tIMUHXLI$ LXHcMHq;DEHuHUI$f}t}tHEHHXHEHH HXHtH@HthHEHHH(貥HuHUI$I$HxHEH@HEHHPEHEHHH( JHEH@HEHHPCHXOH`OHhHtH8L@LHLPH]UHHd$H}HuH@HEHEHUHu~H覽HcHUHEHH5՘HEHH0HEHH(HH@H0 OHEHHEHHu^HEHHHEHyHEHHu5>HuHrH}^ HuHEH=H}NH}NHEHt8H]UHHd$H}HuHHEH,H]UHH$`HhH}HuHHDžpHUHuH!HcHx"HH=+HEH}ؾ:lHH=+ǝHEH}Z*HuHO>H8XH}HEHXHEHHHEHHHH}HEHHcHq(}EEEUH}HpHEHHpH=y)+u|UH}HpHEHHpH}踆H}غHpHEHHpHEHHHEHHHP;]~=HEHHHEHHHJHEHHEHH |$HEHHEHH H}H}-*HpH= ȠOH$HHXHHHcHHxa>H*HHH8H]HHH(HHHHHHH%HHHHPHxb?HxAH=čE:HHtHEHHEHHH HEH褖?Hp3=Hx'=H=H=H=HH='jH$HHHH:HcHH|$HEtHHH8HxHHHCtHHHHH8HH@.HHHPH}%HAH=s+UHHt4ȸH4WH蛸FH3H8HH2HHP`HD#H8#H,#H #H#H#Hh"Hp"HxHtHpH]UHHd$H}HHEHK#mt[HEH@HEHHHEH@HEHHHEH@HEHHHEH@HEHHHEH@HEHHPHEH@HEHHHEH@HEHHHEH@HEHHHEH@HEHHHEH@HEHHPH]UHH$HLLH}HHDžHDžHDžxHDžHHH@HcHOHH= qHHh HEHHx1HxH5nyH!HHH*HH=*HHHH8`,HEH{ BHHHH~HHuH`H H#HcH@HH<HHH,)HHd)LHHE)HH'H8IHL>)HHH(HEH1b?AMcIqA}DžHEHHHEHH LHHi(HL .HtIHH;(HHEHHEHH D;~4H4;DEHHHP`HHt贲HEHHEHHH HEHv?HߙڰH.H"HxH HHt)HLLH]UHHd$HHvHEHIHEHMHH8IHH5]$5H]UHHd$H}HuHcHEH( HEH( H @HEH HEH HHEH( HEH( H @HEH0 HEH0 HPHEH( HEH( H H1HEH( HEH( H u,fH}VH=,觏H]UHHd$H}HuHSHEHgH]UHHd$H}HuHHEHfH]UHHd$H}HuHHEHfH]UHHd$H}HuHHEHRfH]UHHd$H}HuHSHEHfH]UHHd$H}HuHHEHeH]UHH$HH}HuHH5HH5HH5HH5HH5HH5pHtH5]HaH5JHNH57H;H5$H((H5H8H5HHH5HXH5HhH5HxHUHuHHcHU HEH59$HMH=(HyHEH5C$HMH=(HyHEHH}PH=4H +f)H*H*HEHHEHH HHx^ZvHxH5p,HhHHh+ZvHhH5M,H5HnHXYvHXH5*,HH;HHYvHHH5,HHH8YvH8H5+HHH(_YvH(H5,HiHH,YvHH5+H6HoHXvHH5+HH<HXvHH5(+HH HXvHH5+HHH`XvHH5*HjHH-XvHH5*H7HEHH H ]HEHH H HEHH H MHEHH H HEHH H =HEHH H HEHH H -HEHH H HEHH H HEHH H HEHH H HEHH H HEHH H HEHH H HEHH H 큇HEHH H HEHH H ݁HEHH H HEHH H ́HEHH H HEHH HEHH 3HEHH HEHH U/HNH5HvHH5'HHEHH H5'vHH5HԮvHH5(HHH5H褮vHH5'HnHEH8 H 쁇HEH8 H HEH8 H HEH8 H HEH8 H tHEH8 H HEH8 H dHEH8 H HEH8 H THEH8 H HEH8 H DHEH8 H HEH8 H 4HEH8 H HEH8 H $HEH8 H HEH8 H HEH8 H HEH8 H HEH8 H HEH8 HEH8 1HEH8 HEH8 ,HEHH HEHH HEHH HEHH HEHH }HEHH HEHH HEHH HEHH HEHH HEHH zHEHH HEHHEH/HEHHEH*+HEH@ H (HEH@ H HEH@ H HEH@ H HEH@ H HEH@ H HEH@ H ~HEH@ H HEH@ H ~HEH@ H HEH@ H ~HEH@ H HEH@ H ~HEH@ H HEH@ HEH@ ).HEH@ HEH@ )HEH H v~HEH H HEH H f~HEH H HEH H ^~HEH H HEH H N~HEH H HEH H >~HEH H HEH H .~HEH H HEH H &~HEH H HEH H ~HEH H HEH H ~HEH H HEH H ~HEH H HEH H }HEH H HEH H }HEH H HEH HEH +HEH HEH 'HEH QH}H!LlH5HH5HH5HH5HH5H}H5HjH5sHWH5`HDH5MH1H5:H(H5'H8 H5HHH5HXH5HhH5HxHEHtўHH]UHHd$H}HuHxHEHUHuəHwHcHUuFSMH}PHHƺH}$HuHEH Z蛜H}HEHtH]UHHd$H}HuHxHEHUHu H1wHcHUu&AA H5"{H}0H}`H}RHEHttH]UHHd$H}HuH#^LHEHOH]UHHd$H}HuUMDEDMH0HEHU؉H]UHHd$H}HuUMDEH(EuHcUHHcH)qHHcHqHHcUHkHcH)qHHcHqzHsHjHQ0H}HEH#UH]UHHd$H}HuHHEHHEHH H]UHHd$H}HuHcHEHHEHH HHEHHEHH @HEH( HEH( H HEHHEHH u.HxH5xH=xHEH0HH0VHHEHH}譴H=xHEHHEHH HEHH}nH=wxRHEHHEHH HEHH}/H=@xHEHHEHH HEHH}H= xHEHHEHH HEHH}豳H=wHEHHEHH HEHH}rH=wVHEHHEHH HEHH}3H=dwHEHHEHH H}HHHEHH @HEHH HNHEHH @HEHH HHHEH@HEHHPH]UHH$HH}HuH`&HDžHDžHDžHDžHDžHDžH8H,HTqHcH HEH0HkHHH^ HH HHs HHH HEHHEHH uHHsuHtHH\uHUHHH ;uHH资HH HHHH HH'HHHH^ HHHHH!HHH HHH RtHHăHH HHHH HH'HHHHm HHHHH0HHH HH HHEH PHH HHEHPHH=ݟPHHH HHxHHh HHHH= HH躓HHBHjmHcH HxlwH fHUHEHHEHH t\HHqHHHqZHy@HHxH=Hx9HHHH=gq*tH;(HHHH7HHHu-AH5qH=Aq\W6HHHHH ۽pHHHHH^ ۽`HHHHH) ۽PHHHHH HHHHHH HHHHHH H}HEHHEHH ufHpHHDžH`HHDžHPHHDžHHH5oHG HH!H~ٽH ۽HHHDžHz ۽HHHDžHb ۽ H HHDžHHH5nH HH8!#HaHpHHDžH`HHDžHPHHDžHHH5MnH HH 脼HsH, ۽HHHDžH ۽HHHDžH ۽ H HHDžHHH5mH HH轻HQ謻Hx虻uHxԍJHH>H=끠.H$HHhHֈHfHcH`H@HlHHHH8H?vH0H5PHȫH=AGvHd^HHHHHtH@HHq HkH=FvH5d^H:HH0HHtH@HHq赱HkDH=eFvHc^HHHHHtH@HHq^HkDHHtWHH+HS]HcHu H=~cb4HHt(HpHHpHH HHHHHtH@HHq茰HkHpHHpHH HHHHHtH@HHq*Hk\HpHHpHH3 HLHHBHHtH@HHqǯHk\Hxs uHxG轀HH>H=^v衂H$HHHI}Hq[HcHHH4aHHH8HmHHH2aHHHHHopHHwHHHPHHAH=`1HHtkFHEHH}HEHHEHH HHH}o H^H5wH [H5dH0HH,H HHt?HH]UHH$@HhH}ȉu؉UHHEH@HEHH( AHH H_(H_H_H*EHj_H__H\_H*EH;_H8_H%_HHH_HH^H^H^HfH^H^H^HH^H^H^HH^H~^Hc^HH_^HD^H9^HnH5^H^H^HDH ^H]H]HH]H]H]HH]H]H]HH}]H]Hw]HHS]HX]H=]HrH)]H.]H]HHH\H\H\HH\H\H\HH\H\H\HH\Hv\H{\HHW\H\\HQ\HvH-\H2\H'\HLH\H\H[H"H[H[H[HH[H[H[HH[Hz[Ho[HHk[HP[HE[HzH1[H&[H+[HPH[HZH[H&HHH{HHtH[HHq}lEEăEHHoZHlZHaZH*EHHZH=ZH:ZH*EHZHZHZHHZHH^HEHHEHH uHYHYHYHH3HHcEHk *DHY^ZH HHcEHk *DHX^ZHHHcEHk *HX^ZHOHHHcEHk}HEH$fEfD$H YHHD$fBfD$? }H}HHcEHkD}HEH$fEfD$HXHHD$fBfD$=? }mm}H(HHcEHkD}HEH$fEfD$HnXHHT$f@fD$> }mm]EHLX\HIXYEH1XXEH1XYZHX\EHXYZHWH8H_HHcEHkZTHGHHcEHkZLH/HHcEHkZHH/HV;]~HEHHEHH HhH]UHHd$H}HuH HEHH}H= WHf)HHyHHHSHHH-HEHHEHH H]UHHd$H}HuHHEHH}HEHHEHH H]UHHd$H}HuH裤HEHH}迏HEHHEHH H]UHHd$H}HuHCH]UHH$H}HuHX HDžHEHUHuHpHpNHcHU HH8&HEH @HEH H{@蓸H}z-1H}L7H}3yH}AH}}HEH HOf)Hp HUHHHH}7 HEH H(H* HHTHiHNH} HEH( H(H HHHHH} HEH( HEH( H u"HEH @HEH HH8u HH!f/zu HHf/zu HHf/zuq HHHHHHHHHHHHHS8u$ HrH0H=rH=ܸH=˸&H:۽HH0HDž(H"۽HH@HDž8H ۽HHPHDžHH"۽HH`HDžXH ۽HHpHDžhH۽HHEHDžxH(HH5QH} HUH5輞H=P諞H=/蚞HHcHq%HH|HHHHc|虗HHHHHEHXG,HEH@HEHH( H~HPHPHOHHfHOHHOHOHOH8HoHDO^ZHEH*O^ZHHO^ZHHHN^ZH^HN^ZH4HN^ZH:HHOHHOHNHNHNH5HHAN^ZHH'N^ZHH N^ZHH%HLHSHHHHOHHHHKHHHHEHHEHH HNHf/zvHEH@HEHH( H7NH<HHuMHMHMHHHL^ZHaHL^ZHMHLHHEHHEHH HEH@HEHH( HTMHYHHLHLHLHHH L^ZH~HK^ZHLHiHHEHHEHH HLHf/zvHEH@HEHH( HWLH\HHKHKHKHHHK^ZHqHJ^ZHKHlHHEHHEHH HEH@HEHH( HtKHyH;HJHJHJH!HH-J^ZHHJ^ZHKHH HEHHEHH HJHMf/zvHEH@HEHH( HwJH|H>HIHIHIH$HH0I^ZHHI^ZHJHH#HEHHEHH HEH@HEHH( HIHH[HHHHHHHAHHMH^ZHH3H^ZH$IHH@HEHHEHH H(HN8uH@H=!h̕fHH}HEHthH]UHH$H}HuEMU]emH菖HEH}H证HH_G(HYGHNGHE|$E<$! ۽pHG(ۭp}m]EHFHFHFHE۽`E۽@H@H$fHfD$HFHHT$f@fD$^- ۽PE۽0H0H$f8fD$HFHHD$fBfD$- ۽@ۭ@ۭP|$H`H$fhfD$ ۽pHF(ۭp}mٝ\\HEHEHEHHHHEHEHEHHEHyEHnEHcEHHgEH4HHEHHEe@EHE(ٝ\\EHE(ٝ\\HDHEHE(]HD(EzrH~HHHsDHpDHeDHHQDHNDHCDHȵHEH E^ZHDHDH7EHD^ZHCHDHHCHCHDHHCH~CHsDHHGHٳEH;D^ZH4CH)DHfEHD^ZHCHDH3EHC^ZHBHCHEHC^ZHBHCHHdHH}HEH H]UHHd$H}HuHCHEH H}_|HEH HEH H H]UHHd$H}HuHHEH H}{HEH HEH H H]UHHd$H}HuH胐HEH( H}{HEH( HEH( H H]UHHd$H}HuH#HEHPHEHPH H}H]UHHd$H}HuHӏHEHH}zHEHHEHH H]UHHd$H}HuHsHEHH}zHEHHEHH H]UHHd$H}HuHHEHH}/zHEHHEHH H]UHHd$H}HuH賎HEHH}yHEHHEHH H]UHHd$H}HuHSHEHH}oyHEHHEHH H]UHHd$H}HuHHEHH}yHEHHEHH H]UHHd$H}HuH蓍H?HҝHHH?HҝHHHt?H}ҝHHHh?HyҝHHHT?HuҝHHH@?HqҝHHH]UHHd$H}HuH@H]UHHd$H}HuHÌ螕H]UHH$ H}HEHHHKHtHDž@HDžHHDžxHHXH6HcHU?HH=HEH},HHxHxH}GH}HEH}H}HxHEHHxH5=lHtpH}HxHEHHx虇 E<$H}HxHEHHxx ݝppHcuHqkH=jv<$H}HxHEHHx ݝppHcuHqH=v<$H}HxHEHHx ݝppHcuHq賈H=,vHcuHq蓈Hl;H=vH}HEHHxH<<HPH}HEHtHHHHHct貁HHHHHH7HHHXH <H`H}H@HEHH@HhHPHHx1Hx59 H=;'9H}u H}U@ pXH@HHHxHEHtYH]UHH$PH}H聈HEHUHuTH2HcHUvEEEHcuHq萆H= Ovp݅p۽`H`HEHDžxHxHH5;H}ל HMHEH8 UHEH8 H HcuHqH=vvEE۽pHpHhHDž`H`HH5x:H}G HMHEH8 UHEH8 H HcuHqmH=,vEE۽pHpHhHDž`H`HH59H}跛 HMHEH8 UHEH8 H HcuHq݄H=VvEE۽pHpHhHDž`H`HH5X9H}' HMHEH8 UHEH8 H }}HEH@ H5SveUH}HEHtVH]UHH$H}HuH@荅HDž`HDžHDžHUHuQH/HcHUH'Hx8HhH"ʝH-HHHHDžHʝH-HHHHDžHɝH-HHH(HDž HɝH-HHH8HDž0HɝH-HHHHHDž@HɝH-HHHXHDžPHHH5\7H` H`HpH,HxHhHHHAA HHHHPHtRH`CH7H+HEHtMTH]UHHd$H}HuHH]UHHd$H}HuHӂH]UHHd$H}HuH裂HEH EHEH}@HEHHHEH}@HEHHHEH }@HEH HHEH }@HEH HHEH( }@HEH( HHEH}@HEHHHEH}@HEHHHEH}@HEHHHEH}@HEHHHEH}@HEHHHEH}@HEHHHEH}@HEHHHEH}@HEHHHEH}@HEHHHEH}@HEHHHEH}@HEHHHEH}@HEHHHEH}@HEHHH]UHH$HhHDžHUHuKH*HcHUuSAA H5 3HHHHH<HNHHEHt#PH]UHH$pH}HEHHHC=H~HDžHHJH)HcHUHH=ܘ HEH},HHmHH}H}HEHtH}HHEHHH51HtJ<$H}HHEHH H<$H}HHEHHÖ H|<$H}HHEHH茖 HU<$H}HHEHHU H.<$H}HHEHH H<$H}HHEHH HH}u H}3 LH[HEHt}MH]UHH$pH}H1|HEHUHuwHH&HcHU|H)۽pHpHEHEHUHH5/H}Ð HMHEH HEH H H۽pHpHEHEHUHH5J/H}Y HMHEH HEH H Hu۽pHpHEHEHUHH5.H} HMHEH HEH H H۽pHpHEHEHUHH5v.H}腏 HMHEH HEH H Ha۽pHpHEHEHUHH5 .H} HMHEH HEH H H۽pHpHEHEHUHH5-H}豎 HMHEH HEH H IH}fHEHtJH]UHH$pHEyHDžHDžHUHu}EH#HcHUEEEEHDžxHxHH5,H躍 HAA HHHH]H}}n`GH@H4HEHtVIH]UHH$H}uHxHDž`HDžHDžHUHu;DHc"HcHUqH訳H+HhE(HDž H_H-HHH8HDž0H?H-HHHHHDž@HH-HHHXHDžPH HH59+H` H`HpHHxHhHHʶHAA HHHHMH^H}EH`2H&HHEHtH}Mv HMHEH HEH H HY۽`H`HxHDžpHpHH5H}u HMHEH HEH H H۽`H`HxHDžpHpHH5XH}gu HMHEH HEH H HS۽`H`HxHDžpHpHH5H}t HMHEH HEH H H۽`H`HxHDžpHpHH5rH}t HMHEH HEH H H۽`H`HxHDžpHpHH5H}t HMHEH HEH H Hڣ۽`H`HxHDžpHpHH5H}s HMHEH HEH H Hw۽`H`HxHDžpHpHH5H}(s HMHEH HEH H H۽`H`HxHDžpHpHH5H}r HMHEH HEH H Hѫ۽`H`HxHDžpHpHH5 H}Br HMHEH HEH H Hn۽`H`HxHDžpHpHH5H}q HMHEH HEH H H ۽`H`HxHDžpHpHH5%H}\q HMHEH HEH H H۽`H`HxHDžpHpHH5H}p HMHEH HEH H HE۽`H`HxHDžpHpHH5?H}vp HMHEH HEH H H۽`H`HxHDžpHpHH5H}p HMHEH HEH H HEHH}EH5Hs$HLf)H-HH&HEHHEHH HEHH}EH5<H$H=H"HH%HEHHEHH HEHH}EH5H#H2H HH H8H۽`HN (ۭ`۽pۭpH?(ٝ||HN HC H@ HHDHH8 H H H H||H^zH} HHEO@Eٝ||Eٝ||H HЍEHd (]H (EzrH<~HyH HHEO@Eٝ||Eٝ||H H@EH(]H (EzrH}H>yH] HHEO@Eٝ||Eٝ||HsHEHD (]H(EzrH}HH* HHHHH%HHHHHHEzH(H HH3H(HH5 PwHyHNH;H0HyH\(HQ HNHSHHH5ȹwHHHHH5yH (H  H H#H H H5@wHYHvH HHHHxHHHHHHH HH HHHH xHlHaHVHHBH H,HiHx HHHHwHHHH H! HHHHwyH Hs~HtH HHvHKHvH/H$HHVHZHHH,HS HHHHGvHHHH͇H$ZHqHfHH HOHdHYHuHHHHDHZHHHHA HHHH5uHHH~HHZHZHܟZHH(wH H~HrH H2H'HHtHhZHHHH. HHHH"tH)ZHvHkHHHTHiH^HsHZHH HIHpHHHHdsH[ZH`ZH5ZHHuH}HEHHEHH HEHH}:H5HH}H4HIH&HHʟ۽`H(ۭ`۽pۭpٝ||HHHH{HHyHHHH}HrHoHHHEMfEٝ||Eٝ||HHXEH(]H,(EzrHsHVoHuHHEO@Eٝ||Eٝ||HHȂEH(]H(EzrH4sHnHHHEO@Eٝ||Eٝ||HH8EH(]H (EzrHrH{HHwHHHHH2}HHVHKHHHoHl(Ha H^HHHEH5دwHHHHHEoH(H HHH(HH5rPwHyHFHCH0HnH\(HQ HNHHHHH5ȮwHxHClHHHHHnH}HrHgHHSHHHHzHHHHHmHHHHHH'HH~HHHHH mHkH`HUH~HH6H+Hh~HnH~HsH}jHdH HHHXlHHHH}HZHHwH}HHHUHjHkH.H#HHU}HZHHH+}HRHHHHFkHHHH|HZHpHeH|HHNHCH8HjHHHHC|HZHZHdZH|HlH?HltH.hHHHHH jHZH]HRH{HH[H0HEHiHZHHH0{HWHHHHKiHBZHHHzHH}HrHgHhHZHZHZHrzH kH0sHEHHEHH HEHH}0H5tHH5sHHHH;yH"۽`HQ(ۭ`۽pۭpHB(ٝ||HQHFHCHtH۽`H(ۭ`۽pۭpٝ||HHHHtHHnHHHHHgHdHHHEREٝ||Eٝ||H+HhxEH(]H<(EzrHhHfdHHHEO@Eٝ||Eٝ||HHwEH(]H(EzrHDhHcHHHEO@Eٝ||Eٝ||H HHwEH(]H(EzrHgH+pHHlHHHHHBrHHfH[HXHdH|(Hq HnHHHUH5wHHHHHUdH(H HHH8H-H5`wHHVHSH@HcHl(Ha H^HHXHH5أwHmHSaH"HHHH.cHHHwHtHcHXHHtHH.H+HHbHHHH+tHH7HHtHHHHHbH{HpHeHsHHFH;HxsHdHH iH_HtHHHHhaHHHHrH%ZHHHrHHHeHzH`H>H3H(HerHZH HH;rHbHHHHV`HHHHqH#ZHHuHqHH^HSHHH_H,H!HHSqHZHZHtZH)qHaHOH|iH>]H%HHHH_HZHmHbHpHHkH@HUH^HZHHH@pHgHHHH[^HRZHHHoHHHHwH]HZHZH͈ZHoH`H@hHhH6HeHzHHHHn]H}HHoHDnH&[HEHHEO@Eٝ||Eٝ||H[HnEHl(]Hl(EzrH_HZHHHH,nHsZHXZHHnH^H(HUfHZHZHZHpHmHD^HkfHfHaH.cHH*HHH[HHHHolHQYHpHHEREٝ||Eٝ||HHlEH(]H(EzrH,]HXH-H"HHTlHZHZHH*lH\HPH}dH?XHZHZHHkHl\HdHEHHEHH H}DrHEHtfH]UHH$H}HuHEHHHH6HDžHH=HeHcHUHdHH`HHHHXH0H-HZHiHFH;H8H]HeHH8{HH(H HHHvHk襘wHb7HpHEHtH]UHHd$H}EMUH8X4HbH8(HH'HhHHHHHdHHHHHzdHH^HHHH|HWHTHUHHHBTDHE@]UHE@]EHHThHUHE@H(ZH (HE@zrHXHFTHUHaHHBOHE@]MHE@]EHHgHUHE@H(ZH(HE@zrHXHSHUHHHBOHE@]UHE@]MHH$gHUHE@H(ZH(HE@zrHWH_HHw\HvHkHhHHbHiH6H+H(HTHL(HA H>HHH%H5r܆踔wHHHHH%TH(H HHHHH5Rن0wHYH&H#HHSH<(H1 H.HH(HuH5ۆ訓wH]H#QHHH|HyHRH]HRHGHdH3H(HHZdHiH߆H߆H߆HuRH߆H߆H߆HcH߆HH߆HcHH}߆Hj߆H_߆HQHK߆H@߆H5߆HrcHH߆H ߆HHcHSH^HXH]OHDHކHކHކH8QHކHކHކHbZEHhކH]ކHbHHfކH;ކHPކHPHކH ކH݆H;bZMH݆H݆HbH>H݆H݆H݆H2PH݆H݆H{݆HaZUHb݆HW݆HaHH@݆H5݆H*݆HOH݆H݆H܆H5aZUZMZEHaHQHCHpYH2MHH܆H܆H܆H OZEHg܆H\܆H`HHe܆H:܆HO܆HNZMH܆H܆H@`HgHۆH܆HۆH[NZUHۆHۆH_HHۆHۆH}ۆHNZUZMZEH_H1PHXXH]UHH$`H}H!*HEHUHugHHcHUHv۽pHpHEHEHUHH5݆H}> HMHEHHEHH H_v۽pHpHEHEHUHH5:݆H}I> HMHEHHEHH Hv۽pHpHEHEHUHH5܆H}= HMHEHHEHH HEH HHeuf/@@ HEH HPHEH HYH&uf/@HEH HPHEH HHtf/@@ HEH HPHEH HHtf/@HEH HPHEH HHtf/@@ HEH HPHEH HiHVtf/@HEH HPHCt۽pHpHEHEHUHH5.H} < HMHEHHEHH Hs۽pHpHEHEHUHH5߆H}; HMHEHHEHH Hs۽pHpHEHEHUHH5Z߆H}9; HMHEHHEHH HEHHEHH xH}aHEHtH]UHH$`H}H%HEHH}HSHmֆ(HGކH\ֆHYHHֆH=ֆH:ֆHކHUHֆHֆHՆH݆HUH܆HOHՆHՆHՆHՆH6HHFH7ֆHHEEfDE]UE]EHWՆHYEH(ֆ(]HhՆ(EzrHJHEHՆHHE?E]ME]EHԆHYEHۆ(]H܆(EzrHIHQHԆHsNHrԆHgԆHdԆHۆHTHeԆH:ԆH/ԆH$ԆHFHۆ(Hۆ H*܆HԆH4ۆHԆH5܆贆wHPH/DHچHӆHӆHӆH FHiӆH^ӆHSӆHWH?ӆH4ӆHچHfWHuچH ӆHӆH҆HEH҆H҆H҆HWH҆HچH҆HVHtGH3ӆHnf/zw7Ho҆H\҆HY҆HN҆HD5H8҆H%҆HzچHoچHDHkنHKHjBHцHцHцHVHm}HEH$fEfD$HцHHT$f@fD$D }Hm}HEH$fEfD$HцHHT$f@fD$ }mm]EHԆH mYZH цHFUHEHl؆HMH[AHl}HEH$fEfD$HІHHD$fBfD$_ }Hl}HEH$fEfD$HІHHT$f@fD$" }mm]EHӆH;lYZH$ІHaTHDHoMHцHIHφHφHφHφHVBHφHφHφH׆HQOHφHuφHjφH׆HOH҆HoYZH9φH&φHφHNHGֆ(H<ֆ H9ֆHφH3ֆHφH5M׆賁wHՆ(HՆ HՆHCφH8φHՆH5׆`wHՆ(HՆ HՆHΆHΆHՆH5Ȇ wHNՆ(HCՆ H@ՆHΆH2ՆHΆH5ֆ躀wHJHJHEHHEHH HEHH}HJH͆Hb͆HW͆HPHk͆H@͆H5͆H*͆H?HΆHFH}=H͆HHEXH̆EHՆ(]MEHՆ(]EHPEHz͆(]H̆(EzrHRAHyIHIHφH\hYZH]hZHB̆HOH̆H ̆H̆HˆH>H̆HEHP<HŏHHE[fDEHԆ(]MEHtԆ(]EHyˆHOEHJ̆(]Hˆ(EzrH"@HIHHEHHEHH H]UHH$H}HuHEHHH_HHDžHH H5HcHUHGHˆHkDHrʆHgʆH\ʆH;H҆HцH*ʆHMHʆH ʆHʆH-цHIHH_HHц(Hц HцHQʆHFʆH;ʆu|wHFH[THEHt}H]UHHd$H}H7HEH( @HEH( H HEH @HEH HHEH0 @HEH0 HPH]UHH$pHpLxHH5@H H5@H H5z@H~ H5g@Hk H5T@H X H5A@H0E HUHusHHcHUHUHHGHoHcH@H?H=gHӯuLH=gH蹯uHHkgH诡uHHLuHH L膡uH HgH0luH0H5gH H@HHHYHHcHuJH>H=fHuHHfHߠuHH5fHi $HHtHbH5v>HZH5c>HGH5P>H4H5=>H!H5*>H H5>H0HEHt HpLxH]UHHd$H}HuH HE@HUHH( HP: HB:H6Hfņ(HPņHEņH:ņH76AH 6q H9H-@H?H͆H̆H%ņH͆HoLH?H>H]UHHd$H H5HĆ(HnĆHkĆH`ĆH6HLĆH9ĆH.ĆHkHH"͆HHEVHĆEH!̆(]MEH ̆(]EHHEHĆ(]HÆ(EzrH8H4HÆHxÆHmÆHbÆH5H^̆HCÆH8ÆHuGH,̆HHEXH!̆EH̆(]MEH̆(]EHGEHÆ(]H†(EzrH7H3H†H†H}†Hj†H4Hn†HK†H@†H}FH4ˆHHEXH1†EH1ʆ(]MEHʆ(]EH&FEH†(]H(EzrH6HHHH3H1HʆHʆHʆHEHgʆHtʆHaʆHfEH=ʆHJʆHGʆHEHÆ(]MEHÆ(]EHmH>EH&(]Hf(EzKH.H]UHH$`HhLp}uEHE]H(E]؋]}EEԃE*EYEEEXEEEE]EE]EE]EE]H)DeA}rEEЃE*EYEEE]E]E^EZEYE^EZEYE^EZHe4*E*M^Z*E*U^ZH9EYEZEYEZZUH<E^EZEYE^EZEYE^EZH3HcEHqH**M^Z*E*U^ZH8EYEZEYEZZUH <D;e~H,;]~HhLpH]UHHd$HH{H4H[(HUHJH:H>H+H(HH)EEEHs'EfEEEEEHcUHcEHqHHdHH*HŶXZEHcEHHdHH*EEH俆(H鿆(H<(EH(H(]EH(H(H(EHp(Hu(]EHP(HU(H(]UMEH9}~}d}Hl*}c}wH2H]UHHd$H[H2H;(H5H*H8H%HH.HHH洆Hk&HRZHRZHlRZH8HHRZH-RZHRZH8H^)HH1H$HSHhH]H%HQZHQZHQZHH8H(H1H]UHH$H}HEHHH3HxHDžHHH HcHUH0HZH?-HFH;H0H$HԺHѺHH6H겆H߲HܲHH2HHGHHf(H[ HXH%HHIewHb/H/=HEHtQH]UHHd$EMUH8HU/Hܱ(HH˱HX5HHHH~HS1HHHlHQH1HmH:+HaH6H+H H#H!HHHEDDE]UE]EHǰH5EH(]Hذ(EzrHp%H!H!HHE?E]ME]EHGH4EHX(]HX(EzrH$H HHHE?E]UE]MHǯH4EH(]Hد(EzrHp$H,H~Hc)HbHWHTHyH.HUH"HHH!H8(H- H*HH|HH5^awHͮHHHH!H(H HHHH鮆H5>awHEHHHH H((H HHwHHaH5n`wH*HH޴HsHhHeHHIH>H3Hp1HHHqHF1HUHꬆH笆HԬHaHHHH0HHHH0H̳HiHVHKHH7H,H!H^0HuHHH40H HJH%HIH0HիHʫHH$HHxHmH/ZEHTHIH/HHRH'H<HHHHꪆH'/ZMHѪHƪH/H*HHĪHHH}HrHgH.ZUHNHCH.HH,H!HHHH渚H䩆H!.ZUZMZEH .HH/H\&HHHHHtHZEHSHHH-HHQH&H;HZMHH暴H,-HSHبHH⨆HGZUHHH,HHHtHiHZUZMZEH,HHD%H]UHH$HpHDžHDžHH7H_HcHHH=*HEH},(RHhH(HHcH IHoHDA H5HZHHHHtYHHHHNHHV,HH1HH( sHHHHHH+HLHHt+H}u H} Hq!He!HxHt脶H]UHH$HX5H>HH=5?H5(H=5,H5H=5H5H=5H5 H=5H5 H=5H5 H=5H5 H=5H5 H=5H5 H=5H5} H=5H5j H=5nH'HHHH{HHHH†HHIɆHH;ІHHֆHH݆HH1HHHHmHHGHHHHSHHH HgH(HH0H;H8HH@H_$HHH)HPH/HXH5H`H;HhHBHpHJHxHQHEHYHEHgbHEHjHEHsHEH.|HEH˄HEHpHEHHEH:HEHϨHEHlHEHaÇHEH6чHEH;߇HEHHEHHVH8I*HH5%4H]UHH)HH=-H5)H=-H5 H=2H5 H=2H5 H=2H5 H=|2wH5 H=y2dH5m H=v2QH5Z H=s2>H5G H=p2+H54 H=m2H5! H=j2H5 H=g2H5 H=d2H]UHHd$HMYM(EYE0XM YM8XMEH]UHHd$H}HgEYE8M YM0\HEE YE(MYM8\HE@EYE0MYM(\HE@H]UHH$PHHEHEHEHEHE HEHE@HD$HEHHD$ HEPHD$(HE(H$HE0HD$HE8HD$H}HEHD$HEHD$ HEHD$(HEH$HEHD$HEHD$EEH]UHH$`H}H!HEHEHEHEHE HEHE@HD$HEHHD$ HEPHD$(HE(H$HE0HD$HE8HD$H}KHEHD$HEHD$ HEHD$(H}HEH$HEHD$HEHD$ H]UHH$@H}HuH]HEHDžpHUHu蘪HHcHxHEH\AH2HEHH5jHH=LWjHEH},U9H}@iZH}AA H5AHuHHHp.,Hp E܃}t }tHEHH HEHH HEHH HEHH HEHH HEHH HEHH HEHH HEH@HEHHPHEH@HEHHPHEH@HEHHAA H5eHpa@HpH}qRH}HEHt7H}HpHEHHp Hd0tOtvHEHH HEHH H0hHDž`H`HH5Hp+ HpHEHHEHH HEHH HEHH Hd/hHDž`H`HH54Hp HpHEHHEHH HEHH >HEHH HH8a }H,HHDž@H,XHDžPH@HH5Hp HpHEHHEHH kH,hHDž`H`HH5HpU HpHEHHEHH HEHH ~HEHH H,HhHDž`H`HH5RHp HpHEHHEHH H}u H} HpSH}JHxHtiH]UHH$PH}H!HDžHH^H膂HcHNHH8 }9HH=-8dHH,03H@ATAA H5EH;HHH4HHlHHMH@SH+H);~YHHHtdHHHHH HEHH uHEHH H*`HDžXH(pHDžhH(HDžxHXHH5H HHEHHEHH JHEH@HEHHHEHyTAHEHH HEHH H)HDžxHxHH5H. HHEHHEHH HEHH5aHEH@HEHHHEH@HEHHPHEH@HEHHPHEHH RHEHH H(`HDžXH&pHDžhH&HDžxHXHH5H HHEHHEHH HEHxRAHEHH HEHH H'HDžxHxHH5H- HHEHHEHH HEH@HEHHHEH@HEHHPHEH@HEHHPH 'H%;|HEHH OHEHH H&pHDžhH$HDžxHhHH5H HHEHHEHH HEHPAHEHH HEHH H%HDžxHxHH58HD HHEHHEHH HEH@HEHHHEH@HEHHPHEH@HEHHPHu H !Hu HHt蔡H]UHHd$H}HuHCH$HcHqH$H}H]UHHd$H}HuHH\"HHQH]UHHd$H}HuHxHEHUHuH!zHcHUqHEH@HEHHPHEH@HEHHPHEHNAHEHH tއHEHH HEHH $HEHH HEHH5D[H=h~HTH8 }SAA H5fH}2H}H5rEHtrHEH.MAHEHH ݇HEHH HEHH 4HEHH pHEHLAHEHH "݇HEHH HEHH HEHH H!H}&HEH@HEHH.AAH5߇H}r1H} HEHKAHEHH O܇HEHH HEHH ߇HEHH HEHH ߇HEHH HEHH އHEHH H H}HEH@HEHH蜛H}HEHtH]UHHd$H}HuHUHH]UHHd$HxHEHUHuHvHcHUHH=WHEH},&H}@GEHHH8f }~AA H5`އH}O/HuH}bAH}HEHt3H}HuHEHH} HKE H7H}u H} H}aHEHt胛EH]UHHd$Hx;HEHUHu聖HtHcHUHH=lwVHEH},u%H}@FEAA H56݇H}.HuH}@H}HEHtWH}HuHEHH} =-tH=H܇H豇H}HuHEHH}Y ~t@trH=H~܇HWHP(HS]H=THU܇HHH$H=H,܇HE$H=H܇H迆EEH}u H} 託H}HEHt!EH]UHHd$HHۇHEHMHH8IHLH5mx 4H]UHHd$H}HuHHEHH]UHH$HH}H0JHEHDžHDžHDžHDžHDžHDžHDž HDž(HDžXHHh'HOqHcH` HEH0@HEH0HHH=RHEH},!q Ew:/EH8t/H8t!H8 tH8 tIHH8H5HtKH=HDH=vHXHH0EغH5 H(Q H(H8E HHHHcoHH w H H H@EغH5H HHHHHPH0HHXHXH}AA )HH8H5kvHt5H=hHH}AA H5\(H3H8H5a$Ht5H=HH}AA H5R](8H}AA H5P;(HEHtH@H}OHuH裴 HHHHHHDHHXHXHHD HH| HHEH5PHH}HmHcHHHH HHHXE)HXHHHHH HHH'HHHHH=އDHEHHWHH5y$H8HHɪ t8HEHH0GSHEHH5uއNH5$HHH5mއ` t5HEHH0RHEHH5TއWN3HEHH0RHEHH5Gއ"NHH=t#H萐HHHHh8H`kHcH`uPHH݇HHHHHpHEHEH`Htܒ跒MEGHHHHH+HH3HHHEHLHHHHIHHEHH0QHEHH0PLHH܇H}HHHHEH8LEH5܇H HHEHLEغH5c܇H HHEHK H'HEH0@HEH0H-HHuHiH]HQHEH 9H(-HX!H}H`Ht7HH]UHHd$H}HuHHEHH07Of 0HH8?H}6HEH0@HEH0HH]UHHd$H}HuHSH,H5]هHH]UHHd$H}HuHHH5ׇH]H]UHHd$H}HuHӼHEH0@HEH0HH]UHHd$H}HuHUHHEH0@HEH0HH]UHHd$H}HuH3H H5ׇH}H]UHHd$H}HuHHHHQH]UHHd$H}HuH賻HEHHxHH0HEHHxH@HEHHxHH0HEHHxH@HEHHxHLH0HEHHxH@HEHHxHH0HEHHxH@H]UHHd$H軺HT؇HEHyHEHMHڶH8IHH5M3H]UHHd$H]LeLmH}EHXFEHfWEEHfWEHEHEHEHEHEH Hu`H}@mQHEH8@`H}S7QHI@I$]`@I|$0P`LC_L^_I@L`H}6QHI@I$ `@I|$0`L~_Lg^_I@L`H]LeLmH]UHH$HLH}EMHٸHDž(HH`H>cHcHXHEHHEHH@HEHHEHHpHEH@HEHHE@EăEEH(]EEݝ88@EEݝ008H8HHH@HPHPH}CQHEEH5fWH݅HEݝHHPEHfW@݅@Eݝ@@HHHH0HPH808H}BQHEHEHHuHEHHHEHHuHEHH}}aHEHE7@EH,fWPEHfWHHHH0HPH808H}+BQHEHEH0HEH808H}AQHEHEHHEHHpHEHHEHH@HEHDE̋MȋUԋuHEHHPXEXEEEf/EzH}2QHH8Z_HHEHHEHHHHEHH5HEHHH EHHHEDEHYP݅P۽@H@H8HDž0H0HH5nH(: H(HHHH(5H(HEHHEHHEHHH0HEH808H}?QHEHEHHEHHHHcEHH?HHHcUH)q轱HcEHH?HHHcuH)q螱H$`IHH(KH(L%`HH`EXEEEf/EzHiH(HXHt܃HLH]UHHd$H}HuH胲HlHHbHHH H]UHHd$H}HuH3HH]UHHd$EMH(E^EH,H*YEM\MEH]UHH$H}HuȉUMDEH裱HDžHHDžPHDžXHDž`HDžH`H }H[HcHCH/HxH.HEH.HEH/H8u HEHpHEHpHpuHEH`u7iQEHEH`u_lQEMEHH8wEE|$E<$Z; EH(ݝxHc\xH fTEE|$E<$ ; ۽H^(ۭ۽HU(ۭ۽ۭHH(<$YH5(ۭ۽ۭ۽HH$ffD$|$ HHHD$fBfD$h u۽ۭ]HHHHhxH`' H`HpHHxHHEHX HXHHxHHHEHP HPHH.HHHEHHI HHHH߇HHhH H.HHEH:}HHHPHXH`HHHt~H]UHHd$H}EMHuH0yHEHHUHEHH]UHHd$H}HuH3HEHHEHH @HEHpHZ`H]UHH$HLLH}H`輬HDžHDžHDžHDžHDžHDžHDžHDžHDž HpH0xHVHcH(8HH*HHj$*E*E*E)E)EH)HEH)HEH)HEHEH`@HEH`HHEH@HEHHH݇HZHHH݇HFHHBH(HQHHHH=H@HBH H8V-H}HH=oŞz7HEHH=XŞc7HEH}fHEH HH= HH5H H H}HEHHH8uHH8bHH= JmaHfHH\H8wHEHp蔺nHEHpHEHpHHH@H5=H HH)HHEH( 6H;'8tHHۇHhH}HEHHcHqƧ}vEDEEH}UH}H HEHH H=}ۇ)uH},H}@%UH}H HEHH H}2H UH}HHEHHH5 ۇH H XHTH}HEHHcHq襦HHHHH*HH 2H H H5ڇH`HWH}HEHAMcIqA}qEEEUH}HHEHHHHH=0ڇHuEEUH}H HEHH HHH= ڇLHuEEUH}HHEHHHHH=هHuEEHHLUH}HHEHHH- HLHtEED;e~UH}HHEHHH=Eه)u ;]~HcEHq7EHHcEHHHHH詝HHH.HHH ؇HHSdHH[HHHH4UHHcEHHHHHٜHHH^HH5 ؇HHTHWHcEHHHHHHHHPHHH5ׇH~HTHHcEHHHHH跛HHHHHPHHcEHk HcDHkHHHEHxHHݼnIĺ HL趍pHHHHHHHHHHPHHcEHk HcDHkHDHHwHHHHiHHPHHcEHk HcDHkHHHEHxHHnIĺ HLpHHH"HHHHHHHPHHcEHk HcHkHDHHHHHHHHPHHcEHk HcHkHHHEHxHH5nIĺ HLpHHHOHEHxHHѺnIH/͇H$͇ HL褋p;]~*HEHxZnHttAtsH?HtH8wH%@HYH8wnHH=H8UwH@H"H8jw7HHH8wH@HH83wHH@8۽`H`HHHDž@HH@@۽pHpHXHDžPH@HH5ˇHH HlFH}NHEH`@HEH`HHEH@HEHHzeHHHHHHHHzH nH(HtfHLLH]UHHd$H}HuH3HEH HEH Hu H}HEH H@蛅 u$HEH@HEHHP"HEH@HEHHPH]UHHd$H}EMHuH0iHH8u.H}Ef)EH\H8wHEH]UHH$@H}HuHHDžHHDžXHEHUHu-`HU>HcHUsHEH HurH} EHEH HuMH}迒 EUuH}hH}DH ɇH`HcEHPHHPHHP'HPHX/HXHXHhHȇHpHcEHPHHPHHP豊HPHHHH6HHHxH`HH}lH}sBaHH"HXH} HEHt/cH]UHH$pHxH}HuH֑HEHUHu^HDHH=alHH,dHEHp tmHEH HH68t>H(8 t0H8 t"H==ćh H H8蔉 -| H=?ć2 AA H5ićHH]HHHHHH8H8H@HHH@HHYHH݈ H@H8Ӌ |Et t+H[H80HÇH5ÇH H HHH0H0HtH@H HHHH0買H0HtH@H H@HHXH-6HcH@l H8 tHÇH5ÇH=ÇcHrÇH5ÇH=ÇGH`H0H=֢[H=ʢH=ωH=H5Ç HПH8H5ÇHHHzfDHH8HHH tƅHHfHHHHdIuHHHaHHHHHHHHHH/ HHHHHHH芆 HDžHHH5X‡H| HH54H=HDžHHH5"‡H HH5蹇H=M訇H5H苇H=dz}DžHEH HEH H( ILI$HEH HEH H( IċHDžHDžHHH5EHH HHLBHH8 DA}DžHzH8HkHHHRHHx0H5Oo uIHH=H&HHP0H5HHHHK7ƅK.H5賅H='袅tD;~;~ƅƅjfHH8HrHH tƅH5H=uHEH HEH H( HHHH{8uzHEH HEH H( HHHHHHcHHHHH}HHHHHH;HHUHHcHq|HHHHH}HH HHHHHHHHHHHHjHEH HEH H( HHH9HHHcHHHHH|HH!HHHHHH۽HHcHHHHH{HHHHHHҽHHHHHH=:EFH$HHHP@HHcHHHWHH0HH8HS1HH8HH@H0HHH4HHHHHPHXHAH=ҧշ0CHHHtFEDH2rHvD!rHEH mHEH HEH H( HHHHHc|HHHHHjHHHxHHHHHHHc|HxHHHHxljHHtHHHHHHHHHHGHEH HEH H( HHHHDžHHH5OH苆 HHHEH HEH H( He] M[vGHx߭xHǬ(۽pHpHHDžHHH5H HHDo@HìH跬H諬H蟬H蓬H臬H{HoH}fH HtAHXL`LhH]UHHd$H}H'pHEHxHEHnHEHwnHExEEH]UHHd$H}HoHEHxHEHE-EU HEH HEH H( HHHH=HH=HH,HEHp mHEH HIH~8t>H~8 t0H~8 t"H=ٟH~H80e /| H=۟ΫzAA H5HHHHlHH褮HHHHHHHyd $H}H8og |E$t $t+HȚH80H@H5YHhH}HHtH@HZH}HHtH@H<HHH@3HHcHH|et(tt:THH5JH=8HH5^H=HqH5rH=sHH0H=s~7H=g~r}eH=V~豳leH=E~H5.詿脜Hm{H8H53H\{HHwHA{H8H2{HH tƅHHf@H@HHH%uHHHH.HHHHHa HHHHH*b EE(HDž 8HDž0H HH5ǥH z H/]}EEEHXoHyH8H5HyHHHEH HEH H( ILI$HEH HEH H( IċE(HDž E8HDž0H HH5hHy HLeHĚH86H>H@HYH@HH<"H@H-H@HH"H@HH@HH!H@HH@HH!H@HH@HH!H@H}H@HH`!H@HQH@HH4!HHHOHHHH3HHHHHHH HH(HH0HH8HH$H H"H(H@L.Ht HcH u5H$HHH=覢GE,1H HthHH-H HcHuH5^H='JGE0HHt33H*H5^,م,۽ H H8HDž0H0HH5Hu H<$z ۽PHD*HޞYH۞YH؞\H՞^<م<۽pH<ۅR;]~}ubH軏HhHHP0H5H5HH57k]HRH=!kܯ7RRƅ>@HAhH8H2hHH tƅuHEH HEH H( HHH}uHEH HEH H( HH5<HHEH HEH H( HHvH7HHcEH0HHHH0YJHHaHެHH H锇H(HcEHHH8HHIH8H H hH H0HH8HHH荑HHHh8utHEH HEH H( HH HۊHHcEH8HH8HH8HH8HHrHHHHHHHcEHqNH8HH8HH8^HH8H fH H HHNHHHHHH9dHEH HEH H( HH薋HHHcEH8HH8HH8yGH8H聕HHHH!HH;HHcEH8HH8HH8FH8H H zH HH5HHHH蟎HHHiHHHDž HHH5H3c HHEH HEH HEH H( HHiHHHDž HHH5Hb HHH'eH==eSLH=,eBL HHuH(HHHcH&HH`HHHq4HfEEH]H]UHHd$H]LeH}HHIHx^HHi^HHHE]HJ^H8H;^HHHiqGHqGEDeH^H8H]HHHHEm<$ }؛HEHq5GLq+G]DeH]H8H]HHHHEm<$ }؛HEHqFLqF]EH]LeH]UHHd$H]LeH}HHHH\HH\HHHEHc]H\H8H\HHHiqFHqFELceH\H8Hv\HHHHEm<$ }؛HEHqELqE]LceH\H8H \HHHHEm<$ }؛HEHqKELqAE]EH]LeH]UHH$pH}HuHFHDžxHEHUHuHHcHUH:[H8H+[HH@@Hx> HxfE EHHxHHc}>HxH} H}荠HUH}H薋AHx蕁H}茁HEHtH]UHHd$H}HuHxcEHEHUHuHHcHUuNHZH8HZHH@@H}= HUH}HȊsH}ʀHEHtH]UHHd$H}HuHxDHEHUHuHHcHUu-HEHHu2pHuH=gc貀H})H}+HEHtMH]UHHd$H}HpDHEHUHuMHuHcHUHbH8@5 u}HbH0H}(CHuH=qHEHHHEHHbH0gHpbHHvpH8HH5 HEHH5$'H} HEHt+H]UHH$pHxLeH}HuHBHEHUHuH@HcHUuHHaH~IHEHHuOnHuH=L輓u H}=H}?~HEHtaHxLeH]UHHd$H}HuHxBHEHUHuYHHcHUuSqHZoH0H}NAHuHEHH3oHHnH8HGH5hsH}u}HEHtH]UHHd$H}HuHSAHEHH`H8uH1H8iH}P:H]UHHd$H}HuH@HEH@HEHHH H}kH}9H]UHHd$H}HuH@HEH@HEHHHH}H}r9H]UHHd$H}HuH@HEH@HEHHH*H}H}9H]UHH$pH}HuHUH}H?HUHu HHcHUu8H$8u*HEH`Hf)Hs#H}uHEHt7H]UHHd$H}HuHx>HEHUHu9 HaHcHUuTHEH(HujHuH=c{H cHHkH8HH5t[H}" H}TzHEHtvH]UHH$ H0L8H}H #>HEHDžPHDžXHDžHDžHH7 H_HcH3EHEH`@HEH`HHEH@HEHHHH=WHEH};ۘH}@HhoHHHH\oHHHBHxHCjHH`HHhHTaHHpHHxH`HH|HHZHAH jHHHBHAH?8 t0H?8 t"H=2`]l!AA H5`H舍HHHnHH3oHHHHHHwH% lHk>H8' |Elt lt+HH80H_H5_H H>HHtH@HH}>HHtH@HH?HHpdHHcHHs=t2ttNrDžhH.dH5onH=`cLDžhHdH5InH= `}c&DžhHcH5KnH=_WcH<H8# 1}HchHq%h}|3HcH!nHPHcEH@HH@HH@H@HHlHHhHHHXHmH`H5{DHH@HHcDiH@H8qlH8H8HhHPHH!fH%HzE}|EHaHDmH0HcEH(HH8HH(H8H8kH8#H8H8HmH@H0HHHeHLE;E} H=l6H@H0H=<H=<q#H=x<q#H?HH@HDž8 H8HH5U_H09 H0HEH zH=<H5\w}];]}EȃH;H;H;H;8uH=NlIBH};HcHq_"HhHhH@HDž8H8HH5*lH(8 H(AA HHHH@,HEH HEH H( ILI$HHH;h}2HEH HEH H( IHp:XHDžPEhHDž`HPHH5 \H(7 H(L HH8ڤHXHH HcHPH(L^HHHHLHH HHH H(L_H(H=_bG_HPHtkH H H3HcHu H5jH=:j}bGHHt<$HH(HHH(HtH@HquHhHH(HHH(H0HhHH0H loH H5?9: ۽<$HH HHH H5?9 H^(H^(H^(۽<$HH HHH H5+?9 ۽pH [H5^H8+ H8HLL[LH5H0HLH83pH5?^HH++ HHHHH$ffD$Ho>H58^H| HHH7^HHH$ffD$H">H5+^HO| HH H]H(HpH$fxfD$H=H5]H| HH0HHH ^H HH8dHH55p{H=5ozH38 tt HXHaHHcHPr HH HHH  HDžHHH5^H2 HH559$H=4yHH HHH o HDžHHH5^H1 HH54H=i4yH H HHH  HDžHHH5]HY1 HH53H=3pxH H HHH G HDžHHH5a]H0 HH5W3}~hH=A3wWH H HHH  HDžHHH5\H10 HH52}H=2HwH H HHH  HDžHHH59\H/ HH5/2U}@H=2v/<$HH HHH H5Y93 Hb(Hf<$HH HHH H5 9u3 Hf<$H H HHH H5813 Hf%Hf|$ Hf|$Hrf<$踦ݝX݅X۽@H@HHDžHHH5ZH. HH50{H=03uXHI\HdsfT0݅0۽@H@HHDžHHH5^ZH- HH50:{%H=/t<$H H HHH H5>71 H2f<$H H HHH H56e1 H`(He<$H H HHH H561 HO`(He)踥HAf|$HLXHIfY0݅0<$ ۽PH`H(ۭP۽@HGH(ۭ@HhH}h۽@H@HHDžHHH5XH+ HH5=.cyNH='.r=H H HHH  HDžHHH5XH+ HH5-xH=-.rH+H8 1}:HH HHH  LHB+H8 B} HHH}H CQHHHHHH5^H RH 5H PHHHHHH #QH5EH `Ht ƅH+H5]H m`HtƅHDžDHPHH HHоHcHgH PHc]H/HHHHc HHYHwnHHH2]HHHHHHHHcj HHrYHmHHH\HHHqHHHHH RH RHHt1 HN(H8 1}:HH HHH  LH'8 tH (NHHHHHH bNH5BH ]Ht ƅH+H5[H ]HtƅHDžD H]'H8 1}iLt0H5,)H}Sn6H=)m%.H5(HUS{nH=(zmHuDHH HHH r @HDž8H8HH5RH% HH5R(xscH=<(lR<$HcDHqHH HHH H5o/) ۽`H`H@HDž8H8HH5YH % HH5'rH='!lHcDHq*HH HHH  @HDž8H8HH5QHi$ HH5&!r H=&k H5&HHSl H=&rk H=&Q\ HHHXHDžPhhHDž`HPHH5XH # H 軾HEH HEH H( IHHHXHDžPhhHDž`HPHH5 XH # H LZHcdHqH dHK%;~HEH HEH H( HHHH%8uHEH HEH H( HH UIH&GHHcdHhHH8HHh5H8H=SHgHHHFHHcEHhHH8HHhH8HRHDgHHH_BHH#HcHq HhHH8HHh8H8H@RHfHHH(FHHHH KH HHEH HEH H( HH pGHEHHcdHhHH8HHhPH8HXQHeHHHDHHcEHhHH8HHhH8HPH_eHHHz@HHcEHhHH8HHhdH8HlPHdHHHDHHHH JH H?HEH HEH H( HH$HH@HDž8 H8HH5DDH  H HњH H=!VH= ZHHHXHxH蠳HcHPH D HHHHcHHNHUcHH5RH FH 蚸HPHt H=\COQHEH @HEH HPHEH HEH H( H P GH߭HeC(۽@H@H@HDž8H8HH5RH  H H HaCHUCHICH =CH(1CH0%CH8CHH CHCHBHBHHtHLH]UHHd$H}HH[H8u}H[H[H8FwH[@H[H8FwHEH`HEH`H@HEH H@ u H}8YH]UHH$pH}HuHHEHUHuCHkHcHUHZH ZHHH@HAH HZH}? HuHEH~HZ@H}? HuHEHUH}HEfH8}HVZH8u H}UH}AHEHt)H]UHHd$H}HuHHEH5OHH]UHH$HH}HuHEHHHH`yHEHDž(HDž0HDž8HDž@HDžpHDžxHHwH蟮HcHU/rHp?H51YH8JH8H@mRH@HHHPHHPH5XH0IH0H8;&H8HXH1NH`HH(rIH(HhHHHHp5CHpHxHxHHHHHH-HUHcHh"HH(HH(@< uHHH FMHoHH0wHH0kDžHDžHMHHDž DžHDžHMHHDž HHH0GH0IIH=LH'tƅHLHHHHLHHHHH6HH0>GH02tHYLHHHH}LHHHHHHH0FH0辰ƅuHH57L2tHH0qFH0HH=O!HEHHfH莪HcH`HUHH=8sHHtHƐH}KHTHH`CHHHHHuHfPH}H`HthUHH5ItH zH)H8HHH52=HyH[)H8HHH52=HyHEHP Hy@0HEHP H HEHX Hy@0HEHX H HEH Hvy@0HEH H H(H8L,H 1H1HuAH}HPHEH H~P0[!Hy8uHEH`H/@H}7HEHt"H]UHH$@H@H}HuHHDžHHDžhHEHEHUHuHHcHU^H@OHHv[H8H;| H][H8HH OH8DRHNHH3[H8H;| H[H8HHNH8qVHNH|HNH8xOHNH|H|NH8PHh5H 'H0H%>Hh7HhHxHDžp HpHH53FH}: HuH}HuHEHH8 u1Htv8t#HEH H@H:vH}4HEHPHlM|HHHHHc|HHHH>HH%SHHHXHEH`HPHH}M8HuHEHHH3Hh3H}3H}3HEHtH@H]UHH$`H`H}HuHHDžxHDžHDžHHHHcHHEH H(H$H03HEH HEH HHEH HHHH5 (1H}3H]UHHd$H}HuHSHEH`@HEH`HH} HEH HEH H HnHnHH8H=H5W'J1HEH`@HEH`HH]UHHd$H}HuHHEH HEHX HEHX H HnHnHoH8H<H5&0H}H]UHH$HLH}HHMHHHDžHDž HDž@HDžHHDžPHH`HHcHXqrHaPH8qHEH(HEH(H HH+HgH0H3HH,HHHP=HPHH4Hu<H(HH0H<H8H(HHH@螮H@H@4H@蚞HH5LHTIHH <HH@=H@H@E4H@L&tHHHE>HHHH3HH@U%&H@HHx3H@|)HH 3H HcH(HH@HH(KH@HS3HGHH@H*H@HH3HHEH(HHEH(HHPHcHqH&uxHTpH}H8L;:H 0H"H2HH=(HEH(HH0 yH}賭莻H'H 'H@'HH'HP'H5{IHHXHt込HLH]UHHd$H}HuHcHEH7H]UHHd$H}HuH0HEHUHuvH螕HcHUHEHHuH}H HuW uH?HUHHEHHuH}H Hu uH?HUHPH}-H}H}V&HEHtxH]UHHd$H}H7Hg8tHg8tHEHpHP@[_HEHxHhHEHxHhHPHEHxHhHEHxHhH@HEHxQmHg8tHg8uHEHpHP@_HEHxHhHEHxHhHPHEHxHhHEHxHhH@HEHxPmHff8uHef8t~HEHpHP@_HEHxHhHEHxHhHPHEHxHhHEHxHhH@He8uHe8uHEHpHP@Q_HEHxHhHEHxHhHPHEHxHhHEHxHhH@HEHxOmH]UHHd$H}HWHdHEHP@HEHPHHEHH@HEHHHH]UHHd$H`H4HEHyBHEHOHEH#XHEH`HEHnHEH{HEHHEH엇HEH)HEHHEHcHEHMHH8I HćH5Ň*3H]UHH$HH}HuHEHHHxxHUHHx^HXHDžHDžHDžH`H HHcHUHc!HxH+HHH0H"H@ uiH!HxH-+HH/H0Hk"HHx舵HHH8HcHUHx=1H:HH'$mHxHxHc_Hx[H:HHH:HHH( HHxH1*HHHPHx7uiHxݴXHEHtHxH)HH9H8pH9H8英HZHNHBHEHtdHH]UHHd$HHHEH!χHEHMH:H8IHׇH5ׇ&3H]UHH$pH}HuHUMHHDžpHDžxHUHuޮHHcHUHEf8 tHEHHxHxHEHvHEHHp HpAA HxBFHxHEHvHEf]HpHxHEHtDzH]UHHd$H}HuHHEH胍HEHsHEHcHEHHEHHH]UHHd$H HևHEHMH5H8IH܇H5܇$3H]UHH$pH}HuHHDžpHDžHH߬HHcHaHH 6HHfBfAHH 6HHf@fAH6HHDžxHxHH5܇HHHH%HHp%HpHEHlHHp%HpHEHxlH6HHDžxHxHH5jۇH>HHH%HHp9%HpHEHkHHp %HpHEHkH HHDžxHxHH5ڇHHHHL$HHp$HpHEH=kHHpU$HpHEHk 菭HpHHHtH]UHH$`H}HuHHDžpHDžxHUHuH HcHUHEHHx' HxHEH@jHEHHxHxHEHj<$HEHHpHp:Hc38<$HEHHpHp HB38 & 1HpHxyHEHt蛭H]UHHd$H}HuHSHEH@HEHHHEH@HEHHHEH0@HEH0HH]UHHd$H}HuHHEH@HEHHHEH@HEHHHEH0@HEH0HH]UHH$H H}HuH&HDž(HDžpHDžxHHMHuHcHHEHHxHxPH)18H 1H HHfBfAH1HH$fBfD$Hp HpHEHQgH0HH$f@fD$Hx HxHHHEHHxHxHw08Hn0H HHfBfAHR0HH$f@fD$Hp HpHEHfH0HH$f@fD$Hx HxHH/<$HEHHxHxw߽h߭hHc8HZH`HDžXHXHH5#ՇHpHpHEHeHEHHpyHpHHlHH0HԇH8HH@HԇHHHHPH0HHH2H=.H5dԇߚtHHpHpHHHdHHxHxH5H(H(HH8HӇHZH=.H5Ӈ7tHHpvHpH/HHp )dHH(AH(H5/Hx"HxHH8HRӇHH7H8Y>DH(HpHxHHt蟧H H]UHHd$H}HuHSHEH跛H]UHHd$H}HuH#HEH臛H]UHHd$H}HuHnH]UHHd$H}HuH>H]UHHd$H}HuHH]UHH$ H(H}HuUMDEHLHDžpHUHu菡HHcHxeH~+HH *M*HчY\HчY*HfчY^X݅X۽@H@HhHDž`H`LHH5ЇHpQHpHEHZa*M*HЇY\HЇY*HЇY^`݅`۽PHPHHHDž@H@LHH5χHpHpHEH`;HpHxHt认H(H]UHHd$H]HdHEHEHUHu袟H}HcHUH)HHHuH]Hv)HHHuH}HHu(EHE)HHHx"H!)HHHx ưH(HHHuLH]H(HHHu.H}H2Hu(EH(HHHxU"H(HHHx 1Hj(HHHuH]HL(HHHuH}HHu(EH(HHHx"H'HHHx 蜯H'HH@uH'HHHPȠH} H} HEHt8H]H]UHH$`H`LhLpHHEHUHuH>{HcHUxH'HH H}u HH0H7͇H} HuH`覫ۃH&(H.͇(H3͇(*ḢYEE}EEۃH&(Ḣ(Ḣ(*Hj̇YEE}EEH`螥ILLL?JH`sILxIDEUL\2H`?ILDIŋMuDL\2貞H} HEHt+H`LhLpH]UHH$H}HuHUHEHHH;HUHH!HHH=$%HHH=&H،H}HEH H]UHHd$H+H\ˇHEH)هHEHMHJH8IHH53H]UHHd$H}HuUHMH8HEH0 udmEEH-HUH]UHHd$H}HuUHMH \EH}m=t HE HEH]UHHd$H}HuUHMH EH}m=t HE HEH]UHHd$H}HuUHMH0EH}mHf/zt HE HE H]UHH$pHpH}HuH6HDžxHEHUHuqHvHcHUS㞜HEH( ^l=HEH HH5uHHEH HHhHH=XH9%HHH=KpH,%HHH0H%H8>pH %H@pHH=tJpH$HH$H@pH}>;H#H8JH5#HxHxHH8IH Hu H}EH5R#H}HUHH8IH HxHxE}t }tH"H8tsH8+H8;E|"H"+H8H"H8 "uH"H8!H*H8;E|"H*H8HW"H8/&uHC"H8&HEH H51$`H5-"H}HUHH8L2H KHxHxH=9.H H=#.H5,tH8H ۇHv%HEHHb%@0HEHH H5HxHxHH8HڇDH}#HEHxHi#@0HEHxH HEH H@#@0HEH HHEHH#@0HEHHH"8uHEH0 HhHEH0 HhHPHEH8 HhHEH8 HhHPHEH@ HhHEH@ HhHPHEH0 HhHEH0 HhHPHEH8 HhHEH8 HhHPHEH@ HhHEH@ HhHPHEH0 mHþHHH5cHxHxHH8H؇#H!HEH Hx!@0HEH H HZ!8u4HEH HhHEH HhHP2HEH HhHEH HhHPHEH H @0HEH HHEH H @0HEH HH54HxHxHH8HׇHm HEH HY @0HEH H H; 8u4HEH( HhHEH( HhHP2HEH( HhHEH( HhHPHEH H@0HEH HHEH H@0HEH HHEH H@^HHF8uHH8u@@H^HUHH=wHpH HHH8D%mHHHhHHHhHHHH8H5ևHHHHH8\mHHHP_HjHHP_HOHHPHx86H0HHP@^_HHHEH iH(H0HEH HH0PH5jHxHxHH8HՇ*HsHEHP H_@0HEHP H HA8u\HcHHhHMHHhHPHEH H^H@Hp^ZHHHhHHHhHPHEH H袉^H@H^HEHX Hr@0HEHX HHEH` HI@0HEH` HHUHH=HHLHHBH8u"mH.HHhHHHhHHHH8H5lӇHHHHH8荾mHHHP2_HHHP'_HHHPHx83HqHHP@_HXHHEHH(H0HEH H*H0PHEH Hև^HH]^HHH8HHHH͖HEH H聇^HHHH8HHHH|H5HxdHxHFH8HчHHEH0 H@0HEH0 H H8u\HHHhHHHhHPHEH H艆^H@H^ZHHHhHHHhHPHEH H-^H@H^HEH8 H @0HEH8 HHEH@ H@0HEH@ HHEH HEH H@2HxH}}HEHt蟇HpH]UHH$H}HuHxMHDžHUHu萂H`HcHUuQHEHp HHHHHHK H8H5χWHHEHt͆H]UHHd$H}HuH胵}EHEH0 HEH0 HHtH8HjHHHgH8H]HHHEH8 HEH8 HHEH@ HEH@ HHEHx HEHx HHEH HEH HHEHH HEHH HHEH HEH HHEH HEH HHEH( HEH( HHEH HEH HHEH HEH HHEH HEH HHEH HEH HEfDEEHEH UHH4P}O}HEH( ?H"͇H#HHH͇HHHH]UHHd$H}HuHHEH @HEH H( H]UHH$pHpH}HuH趲HDžxHEHUHu~H]HcHU3H HEHHHHc}VHH}aH} H]H5 Hx5HxHH8HEȇHH~ HHHHHc軩HHxHx@ HxH5" H}HuHyH8HLJH'ҀHx&H}HEHt?HpH]UHH$pHxH}HuHHEHEHUHu$}HL[HcHU^=tPH}HHEH!ttRH=YH"ʇHnHEH( @HEH( HH=HLJHnHEH( @HEH( HAH=HƇH>nHEH( @HEH( HH5H}H]H5*H}HuHH8HOƇH/~H}1H}(HEHtJHxH]UHHd$H}HuHHH8u H=Hf HH8u H=-f HH8u H=wf HH8u H=e HH8u H=e H]UHHd$H]H}HuHHEH0 H?HHEH8 H0HHEH@ H!HaHEH( HHBHEH HH#HEH HHHEH H徇HHEH H־HHEH HϾHH8u>H"H0H `HHHH0HH[H8u>HH0H HHHH0HHH]UHH$`H`H}HuHUMHEHHH`H"HDžhHDžpHDžxHHInHqLHcHUHHpHpH5\HhHhHH8IHxHHxu赠EHEHhuHEHhHHpHhHpHxHEHt)rH`H]UHH$PHPLXH}HuHUHMHEHHH)_HUHH_H耠HDž`HDžhHDžpHDžxHHlHJHcHUHHp=HpHHhLhH5H`H`HH8HxLIHxHHoH+E܋uH}mHEHPHx8u nH`HHEH 'HEH HH78uLeHEHHHˮmHHHA;$HE苰HEH3m݅۽`H`HxHDžpHpHH5qHUHHEH>HEHH%H>8uLeHEH( HHmHHHA;$HE苰HEH( Jm݅۽`H`HxHDžpHpHH5hHlHHEH UHEH H<.HEH H#HEH H _HHHt aH0L8H]UHH$ H0H}H誏HDž8HDž@HDž`HDžhHDžpHDžxHUHu[H9HcHU5HH=HEH},H}@ H=HHqMHhH^H0HHhSHhH5eH`H`HH8H HpIHpHxHxHEH@ SH5HhkHhHMH8IH |H``H`H="HH5 Hx HxHEH H}+H5dHhHhHH8IH H`H`H=H;H5tHxsHxHEH ,H5H`DH`H&H8IH Hx9HxHEHp HEHp H`苸H`H}H}HEH H}HEH}bH`YH}H@HEHH@HHHHPH}H8HEHH8HXHHHH`H`<$H5^H\8H`H}H8HEHH8HHH_HPH}H@HEHH@HXHHHH`VH`<$H5C认HW\8|<$H}H`HEHH`H5nH\8<$H}H`HEHH`H5ũ0H[8H[8H[8H}HEH@<$H}H`HEHH`H5W£H{[8 Hn[8H}u H}zA YH8H@H`HhHpHxHEHtZH0H]UHH$HLH}HuHEHHH`GH@RH5Hx_{HDž@HDžHHDžPHDžXHDž`HDžhHDžpHDžxHDžHDžHDžHDžHDžHDžHDžHDžHDžHDžHDžHDžHDžHDžHDžHDžXHDžxHDžHDžHDžHDžHHHHTHp2HcHU؅j[tH[Hf[fH[Hf[fHv[Hfp[fHJ[H fD[f(H[H0f[f8HZH@fZfHHZHHZHHZHfZfHnZHfhZfHBZHfHHcHHHHHH8H.HHHHHHHXHHHHbHHHHHo1HHwHHHPH贮H(@HHtC]CBSH5"H込Ht] H`H=HDHcHHP,!HEHp HJHHPHPHHPHHH5VHZA8HQA(HX(zw!H5A(HL(zrHѫHRHH@HH$fBfD$HHHHCHHHH蕯HAH='肳HPHHPHHH5AHU@8HL@(H㏇(zw!H0@(H׏(zrH輪HݏHH?HH$f@fD$HHHH.HHHH耮HAH=mHXlHP HXHXH lHXlHXHHHP*HPHPHuH}HPHPHHHHHc\eHHdHHH5~H蒪HAH=H蹨HPHHPHHH`H跲HH%HHHHH=AFH5RHQHHH8So<$HPHHPHHHtH@HqjHHPHHPHHHHHHHHH5q܄۽@H*HH臧ۭ@ݝHEH0 HHmH HH^oH;HHD$fBfD$H;(HΆ(<$@H@Y Htu HH1eLHEHH袦ۭݝHEH( HHmH HH]oH ;HHD$fBfD$H;(H酇(<$@H[X Ht HH eLH`HH轥ۭݝHEH HH#mH HH\oHXguHX9gZ8HH>H=->:H$HHH`4HHcHXHPHɇH@HH8H@L%H@HHHLJHPH@HHH (HHHHHPHQHAH=cΫ)7HXHt:98SJH5`HDHt6JH`H3HHcH/H5ѿH@HH"H8IH QH5HHWHH=H蕬H5^HͬHHH8IH H¬HH?WHH=qH"H8H5QHxPHxHEH H5"Hx!HxHEH H8HH5HxޫHxHEHP ƅ`HƙH8HJHbH6HXdHXHXHCcHXcHXH5HH=}(u6HXHHH=}(u HXHЪHH=ↇ}(u HP:HP@HXH|HHPHPHPHHPHHPHHHTHuSHPHHPHHHTHHtHctwHtH荩HHH8EotHtHTHAAH HkHs(HHH8ouHtHHDžDž HDžDž HDžH`H(HDž Dž8 HDž0DžH HDž@HHH5ۄH/wH3HtHHDžDž HDžDž HDžH`H(HDž Dž8 HDž0DžH HDž@HHH5HwvH{ƅtHXH|HH=9z(uuHP:诼HP@HXH(HHPUHPHPHHPHHPHHHnQHuSHPHHPHHH,QHH=^HH HHxHHHxH#HHH8IH \}HHHPHH=ǾHxH8wH5H蟥HH!H8WotHgH HDžDž0 HDž(H9H@HDž8DžP HDžHHHH5HsHէH޽HXHӤHH=w(uHP:HP@HXHHHPHPHPHHPHHPHHHNHuUHPHHPHHHxNHxHEHp H$BHXH蜣HH=Yv(uHP:ϸHP@HXHHHHPuHPHPH^HPHHPHHHH脢HP-#HP@4HH蜢HHPHPHPHtHPHHPHHT[HHHHHHcSHHxHx]HxHEH` HXH螡HHHH=蝁HuHXHUHHHH=THuHXH HHHH= Hu[HP,*HP@;HXHp裠HpHPHPHPHHcHqX}ODžLDLLHpLHPH`HPHH`HhJHhHpH5t~Hp舥HtLDH5i~Hp]HtL@xH5^~Hp2HtLemHHliHai H`H6oH*8ujH`}HH`D~HEH( HHdmHHhHh H`H5oH8ujH`o}HH`}HEH HHNdmHH|hHqh H`H!5oHFHHH8t Džd(ۭ@zt Džd DždH 8u DždH=H5\YtH`d|HH`|HHHHEHx HH2cmH H`H 4oH`{HH`L|HUHHHEH HHbmH H`H3oH`z{HH`{HHHHEHH HHHbmH H`H!3oH`{HH`b{HHHHEH HHamH H`H2oH`zHH`zۭ@ݝHEH0 HHNamHËpH`H&2oHH@H0fHf8HEH0 *dHdmHʟ8uH`yHH`zۭݝHHHHx`mHËlH`HP1oHI8uH`#yHH`yۭ ݝH-HHH_mHËhH`H0o$H`xHH`xۭݝHEH HHX_mHH`H10oHZ8uH`xHH`axۭݝHEHHH^mHH`H/oH=H5RXtH`cwHH`wۭ@ݝH=HtHHH^mH H`H.oH/8u&H8uH HHT$f@fD$H (HV(<$@H`N) H`E HH?5LH8tۭHa(zvH`)vHH`vۭݝHEH( HH\mH H`H-oƅ`jH`uHH`uHEH( HH\mHH`H` H`HR-oH[8uHj HHD$fBfD$Hb (HIU(<$@H`' H`C HHl4LH%8tۭH`(zvH`tHH`tۭݝHEH HHY[mH H`H2,oƅ`jH` tHH`jtHEH HHZmHH_H_ H`H+oHXӊl6uSHXR6HHH= H'HHH`HHcHXH`sHVH@HH8H@H@HHHVHPH@HHHHH@|H@HHPH`tH`AH=&VzHXHt_H=HEHHH`mHHcHXH@qHUH HH8H H H(HUH0HUH8HXH@HlUHHHNUHPH HHH[HH`c{H`HHPH@rH@~HXHtnItucH 8uRƅ`HHHH,H*HjHHH,H*HwH=H5[ tH5`H@_zH@HH֍H8^oH'H5H@zH@HHH8oH(HHϚHHHH˚HHHEH H HR_HEH H @R_H`HHHcHu>H53H@2yH@HH84ogHH_H=KHEHHHHHcHH@]nH.RHHH8HYHHH RHHRHHXHHQHHQHHHHHHH`wH`HHPH@&oH@zHHtH`HHHcH Hϒ8uH=^H5GXtH2HH$f@fD$H+(HM(|$}LHHH$f@fD$H(HL(|$L.HUH]lHHH$f@fD$H(HvL(|$L8IH5?H@>vH@HH8L8荟oHHkHHH$f@fD$H(HK(|$LIH5H@uH@H)H8LoH_f/zsTHSf/zv8H@jHH@WkHEH HHQmHHVHU H@H"oH@jHH@jHEH HHoQmHHD H@HE"oH@)jHH@jHEH HHQmHH^U H@H!oHf/zsTHf/zv8H@iHH@iHEH HHiPmHHTHT H@HC(|$ LX.HŀHbHHH$f@fD$H(HB(|$QLIH5H@lH@H0H8Lo`H.H6bHoHH$f@fD$Hh(HOB(|$L IH5H@lH@HH8L foX`Hόf/zsT`HÌf/zv8H@jaHH@aHEH HHIHmHHwLHlL H@HoH@aHH@]aHEH HHGmHH ;` H@HoH@`HH@`HEH HHxGmHHK` H@HNoXH_f/zsTXHSf/zv8H@_HH@W`HEH HHFmHHKHJ H@HoH@_HH@_HEH HHoFmHHJX H@HEoH@)_HH@_HEH HHFmHH69X H@HoH8uH=H5ItHHH$fBfD$H(H>(|$LpHHH$fBfD$H(Hv>(|$Lh.H{H^H>HH$fBfD$H7(H>(|$IL(IH5}H@gH@Hh{H8L(5opHf{Hn]HHH$fBfD$H(H=(|$L0IH5P}H@OgH@HzH8L0螐ohpHf/zsTpHf/zv8H@\HH@\HEH HHCmHHGHG H@HToH@8\HH@\HEH HHCmHHE6p H@HoH@[HH@.\HEH HHBmHHGp H@HohHf/zsThHf/zv8H@2[HH@[HEH HHBmHH?FH4F H@HoH@ZHH@%[HEH HHAmHHEh H@H}oH@aZHH@ZHEH HH@AmHHn4h H@HoHHtWHHMHuHcHu H=PEVHHt5+FHHDXf/z+HEH HU]HH[8uH]8u@@H8^H-~H8uHPu HPh H@XHHXHPXHXXH`XHhXHpXHxXHwXHkXH_XHSXHGXH;XH/XH#XHXH XHWHzHWHWHWHXWHxWHWHWHWHWH5`BHxHEHtHLH]UHH$@H}HAHDžXHDž`HEHUHuqHHcHUHEHP,uvHEH@Hp HuFHuHEHP)H}HEHPHEHPHHEHPHEHPH}H}DVHEHPH`HEHPHH`HhH7HpHEHPHXHEHPHHXHxHhHH}YH}<$H5833H8AHEHPHuHEHPHH}H5802H8H(H9(zw!Hd(H{9(zrHU|H}THz9HhH$HH$f@fD$HX8RHXHpHk9HxHhHH}XHuAH=U9\HEHPHEHPH}H}>THEHPHXHEHPHHXHhH5HpHEHPH`HEHPHH`HxHhHH}WH}<$H56-1H8AHEHPHuHEHPHH}H56*0H8H(H!8(zw!Hn(H8(zrHOzH}RH8HhH.HH$fBfD$HX2PHXHpHe7HxHhHH}VHuAH=7Z HyHXMRH`ARH}8RHEHtZH]UHHd$H}HuHHEHHwH]UHH$HH}HuUMDEDMHxHDž`HDžhHUHxHHcHpHEHH dh~MHEHH M؋UHhHEHH H HhHEHH MUH`HEHH H H`HHUHEHH MUH`HEHH H H`HcHEHH M؋UH`HEHH H H`HcH)qHE=HHHvH螾HcHHEHH MUH`HEHH H H`H55] @AFHHEHH M؋UH`HEHH H H`H55 @[AFH)qHEHHtWHHH躽HcHu H=:@HHtzUHEHH `t$HEHcHHH9uHEBH`NHhNHpHtHH]UHHd$H}HuUMH M}uHEHH U@3?H]UHH$HH}HuHEHHHhHHEHDž0HDž8HDž@HDžpHDžxHHH HcHU HpCMH5HHHH{.HPH5=wH8LWH8H@H%H@HXH.H`HH0WH0HhHHHHpPHpHxHxHHXVHH0VH0@ uHHH +8H4HH8HH82HH@&HHpHHxHH}eHEHt'HH]UHHd$H}HuHx HEHUHuHAHcHUHEHHEHH H,mH5#dH}QHuH mHq8H8Hg#KHl8u4HEH HhHEH HhHP2HEH HhHEH HhHPYH}FHEHtH]UHHd$H}HuHx HEHUHuHHcHUu`HEH8HEH8H HmH5bH}IPHuHnmH%7H8H"fJH}EHEHtH]UHHd$H}HuHx HEHUHuH!HcHU=kܛtHEHxHEHxH H.kH5aH}gOHuH kHC6H8H9"IHEH Hj@0HEH HHEHHj@0HEHHHj8uHEH0 HhHEH0 HhHPHEH8 HhHEH8 HhHPHEH@ HhHEH@ HhHPHEH0 HhHEH0 HhHPHEH8 HhHEH8 HhHPHEH@ HhHEH@ HhHP H}bCHEHtH]UHHd$H}HuHx3HEHUHuyH衱HcHUHEHHEHH HhH5_H}LHuHhH3H8HGHkh8u4HEH HhHEH HhHP2HEH HhHEH HhHPH}BHEHt2H]UHH$pH}HuUHHEHUHu HHHcHU}t#HlHHQqHlH!HlHH-QqHlHHlHHxHHxHHx8HxH}CKH}_HuHEH H}HejH}@HEHtH]UHHd$H}HuHHEH@@HEH@HHEHH@HEHHHH]UHHd$H}HuH#HEHH@HEHHHHEH@@HEH@HH]UHHd$H}HuHH=,FH]UHHd$H}HuHUHoH]UHH$pH}HuUH:HEHUHuH設HcHU}t#H:jHHqJH#jH!HjHH-q'HjHHiHHxHHxHHxHxH}HH}#]HuHEH OH}H?cH}!>HEHtCH]UHH$pH}HuUHHEHUHu0HXHcHU}t!HhHH H8HH5HśHx.H}.H}.HEHtHpH]UHHd$H]H}HuHHEHUHuH HcHUa=TśtSHEHP HEHP H H'TH5JH}P8HuHTH,H8H m2HEHX HS@0HEHX HHEH` HS@0HEH` HHEH H]HHuS@0H ^HcS8u2HRHHhHoRHHhHP0HSRHHhH=RHHhHPH},HEHtH]H]UHH$pH}HuUHHEHUHuH(HcHU}t#HWHH: qHWH!HWHH-: qHWHHvWHHxHHxHHxHxH}#6H}JHuHEH |H}HPJH}+HEHtH]UHHd$H}HuHxsHEHUHu蹻HHcHUu`HEHHEHH HRH5GH}95HuHnRHH8HV/qH}*HEHtH]UHH$HLH}HuHEHHHHrH5+LHHDž(HDž0HDž8HDž@HDžHHDžPHHXeH荘HcHU ›E›EHH n HHHȬHHHH3HHHP;HPHHP3HEHH8)H8H@HHH@H@;H@HH2HEHH x<HH5JHIHHHHH˫HHH@2H@L%txfDHHH<HHHH02E싽 H5UH@7H@HH1HH@"2H@H0HcEHHHH0HHHH0H01H0JFH0H8HH(1H(H@H0HEHH uHn?HcEHqEH7%uHnHEHH @ ?uH(&H0&H8&H@&HH&HP&H5VHHHEHt蜻HLH]UHH$HLH}Hh3HDžHDžHDžHDžHDžHDžHDžHDžH@H#HKHcHHXH5H HHH5H H齛 ս$(,HHPffXHdH`f^fhH}CHEH@ HHHH.HHHH=BH"HH=uHxHEH HEHX mM CxHEH @pxHEH HEH HH$HEHH HEHH HHEHH H HH5AH.HHHG%HHHz-HH-H@# t t9H=VLH5tH}H1,H=(LH51tH= LH5#ΩtHEH( Uf<HcHq5}HLfDHLHLHH,HH6LHEH( H_LHHEH( H HL2Ht8ƅ HLHPGHJHuEH<оlHEH HJHLEH4/OHH=JHfH IHHHҢHH)HH<<H8pHH)HHI4HH5S6/HtGHHg)HH4HH5..HtHH}ZYHH)HH3HH5.Htt HHH"HcHuoHH(HH%HH=A#F@HHH蜠ƅ(蠱HHfH=I脳HLHHH@,HTHcH8HHgH HH8H蒞HH(HEH0H HHH RH HZ'HHHH@HH HH HHHH H)ƅ(GH8Ht&躱HEH HEH H uAHH躬HHcH@nE8H H5:H2&HH8H58 HHHHH%HH{0HHHHHHHH1%ƅ,ծHHfH=~蹰HLHHHpaH艉HcHHHHpHH8HǛHHxHzHHpHHH臞HH$HHPHH@HXH H`H HhHPHH$H'ƅ,|HHt[6HH`H?HcH@E0HlH5e7H#HH0H5 HHHHH@#HH-HHHHHHHH"ƅ$7HHfH=HLHHH èHHcHH-HHHH8H)HHHHHHHHHH!HHHH@HHHHHHHHHj$ƅ$ުHHt轭蘭QHH`yH衅HcHuQ,uHH}HQ(uHH}-Q$uHH}Q=HH_H=敝!HEHHH ɦHHcHH3HHHH8H/HHHHHHHHHHHHHH@HH HH"HHHHHp"HHtʫ襫^Hxu Hx薐 诨HHHHHHHHHHtΩHLH]UHH$@H}EHlHDžpHDžxHUHu褤ĤHcHUHf/Ezw[HxEHpJHpHHxkHxH}HHef/EzvHHh߭h<$p ߽hHhH*f/Ezw~HpBEHYh݅h<$H5"Hx4HxH#HpHpH}HHHh߭h<$\o ߽hHhH*f/EzvHHh߭h<$o ߽hHhH*f/EzwHp:EHYH Yh݅h<$H5Hx3HxH0Hp|HpH}HHHh߭h<$In ߽hHhH*f/EzvHHh߭h<$n ߽hHhH*f/EzwHp'EHYHYHYh݅h<$H5Hx2HxH2Hp^HpH}HHpEHoYHdYHYYHNYh݅h<$H5RHx.2HxHHpHpH}H蠣HpHxHEHt H]UHH$H}HuHEHHH/HH}HH .H菒H]UHH$0H}HuUMDELMH?HDžHDžXHUHhtH}HcH`-EHuHXHXUu{_HEH@HH7}HcHHHݞH}HcHHuH~HH}>_H}耉H*HHcHH?HHH*HHcHqWHEHcHH?HHH)q5H}|'He*HHcHH?HHHG*HHcHqHEHcHH?HHH)qH}H(H}HEH EߠHHtWHxH8苝H{HcH0u H=蔠H0HtsNwH}nHHtXH HX H`Ht迡EH]UHH$H}HPqHDž HEHEHUHu褜HzHcHUDH} H5=+H}?HUHtH0H} H}@ uH*8wH)H8HH)HHP`HH=9OoHb)HHpH0כHyHcH(uSH}H H5q*H pH HH0H} HuH(H8.Co虞H(HHHAHiyHcHuFH)HHDžHHH5uH H HHtʠH(H0H'(H86oHEH HHEH HHHEH HH'H0HEH HH`tH H} H} HEHt؞H]UHH$PHH^HH=1蟿HHXH"H`HHhHHpHHxH%HH,HHV3HH:HH@HH,GHHMHHTHHJZHH_HHVeHHjHH*pHHuHHN{HHЀHHrHH4HH.HH`HHRH HtH(HH0H@H8HʾH@H\LJHHHχHPH؇HXHH`HHhHNHpHHxHHEHHEH4 HEH!.HEH><HEH3JHEHTHEH[HEHJjHEH'xHEHtHEHIHEH^HEHHEHHEHMHEHXHH8I4HRH5sn2H]UHHe$HmH5FH=-jH]UHH$pHxH}HuH6HEHEHUHutHtHcHUHV1H5L1H}HuHEHVHc3H5Y3H}HuHEHVHxH 3HHHEH(HlVHMH2HHHEH0HAVHEHH*VH2HH%HHEH`HUHEHHUHEHHUHEHXHHH5HHEHPH5ɸHEHPH0HLHH8H ڸHHuHuHEHPH(HEHPHEHPHuHEHPHH=N/H H58/H} HuHEHTHH=CGoH0HHH0H0H8FoH}WHEHPH(H~H8HԷH5( HEHXHlHH5H*H} HEHXH5HH5HnH}H}HEHtޗHxH]UHHd$H}HuHHHHH}H]UHHd$H}HuHCH\HbHhH}H]UHHd$H}HuHH HHH}\H]UHHd$H]H}HuHHEHXHHHHH]H]UHHd$H}HuHCH.H8u H=.| H]UHH$0HXL`H}HuH HDžxHDžHDžHDžHDžHDžHDžHXHHoHcHRtH=HxH'HHHHH櫛HѫHHH=hޜsPHHEHXHHHHH$H8EH5+H HHXDHEHHH=HHHEHHHH@ u:A H5H=ȴ;t ƅƅu; HH.HVmHcH HXXcHRHEHXHHH5\HtH]#H8DDHHXHC=HX9HEHXHAHHHHHHHHHH"H8CHHHH=y'uIHHHH=E'uSHX8uHZ8u3HH7¿HV豿HHHH=v'u(H,7H@H=HHHH6HHHHcHq覾}DžfHHHHHHH辰HH+H5H HtH;~eH8uH8uHHHHAAHHFHHC'HH!ƽHZ赽H.8uRHH HH}HHfHUdHHHH=e'uHu8uHw8uHHUHHAAHH}HH 'HH 荼H!|H8uRHH (HH|HH-H.HHrHH;HH.HH[3HHHHHH=]EH8u9HHHHH9uٺH9EH8uMH%KEHH*HtYH-~EH?8uHHH5%HHH%H8H5)oHH5-H)HH5^HxHxHHHHHHHHHcHqS}DžH,;uHxHHHHLHH HHhyHHpHHxLHxHH;~#H48u2H;iHHxHxH0<$HHHxHHHxݝtt}f/xzrgHŠHH$fBfD$H(HU(|$KEHƅttuf/zwƅtHxH*Hᬈ^م۽HHHDžHHH5HOHHH ZHH4wHHH=L|菈H$HHH@7H_aHcH8HxHBH HH8HxsHxH(H@H0H HHHx]vHxHeHHHPHxHxAH=ܪ zH8HtY4H|Hk6HxH~HrHfHZHNHBHHtaHXL`H]UHH$HH}HPHDž0HDž8HDž@HDžHHDžhHDžxHDžHDžH@HH_HcH} b\NlHH=Μ@H`HEHXHbHH5 H H H8A6HEHHHHp藄HHHG^HcH HpIT@HpHpH..Hp+HpHuHH=2'upHpHx:Hx:I (H)qOHHpHxHxHpHpHtH@H+HPHHpH=H̱HcHHHpHHH=D'uH`, H`@.pHpHh,Hh:; (H)qAHpHpHhHhHHHtH@H+pHPHpHH/HH`'H`H`H}}H/H`HH`HHHPHHXH`HHH`HHHH`HPHHH<$H5(H8HsH`HHH`HHHHPHӥHXH`HH`HHH`HPHHH<$H5lHe8H`H`H}<$H`HH`HHH5H떛8<$H`HH`HHH5SH8HHXHDžPHPHH5H@H@HEH;H]HXHDžPHPHH5NH@H@HEH;HpHHH= X'u"H`, H`@*HpHGHH`t$H`H`HHcHq=}Dž\\\H\H`H0H`HH0H8VH8HH5$H0HtH\;\~eHpH0EH0H='uH`:xH`@)HpH0H0H`#H`H`H-H`H8H`HH8H07H0uH`H8H`HH8H0H0H=HH5H@ H@HEH8H5_H0H0HH8ouHEHH5y8HEHH5`8lt H`;HpH0YH0H`!H`H0H`HH0H=EHdHYH5aH@]H@HEH07HH;EXHDžPHPHH5H@IH@HEH27ltH`;HpH0+H0H`X H`H0H`HH0H=ZEH&HH53H@/H@HEH(h6DžlHpH0vH0H=3'u DžlHp7ЧuwDžlHpz謧wxHH>H=n[zH$HpHPHuH+SHcHH0mHHHpH8HieHHH HHHHH)hHH81H8HpHPH0nH0AH= FwHHt%zzxHH`HDžXHXHH5H@_H@HEH`H4H`u H`^ HEHXHTHH5ҝHHH83)~vH0H8H@HHHhHxHH~HHtwHH]UHH$HH}H JHDžHDžHDžHDžHDžHDž HDž(HDžHH:rHbPHcHHHH#dHEH QH8unHHHDžHHH5OHKHHEH :HH>HcH@8uHf)HEHPHHFH*H ^|م|۽`H`HHDžHHH5HxHHEH 19HjHHHH9u蠢H*H H*Hh^^HiZHH8HDž0Ha H*H%^م۽`H`HHHDž@H۽pHpHXHDžPH0HH5HkHHEH $8HHH 皈H@bHi8u4HEH H5ؚ7HH%HnaHG 8wH(H5* HHH H H0H5 HHH $HH8HH@HHiHHHHHPH5v H5HHHHXH0HH(H(H= HH5 HHHEHHy.HEH@HEHHPCH HEHHH4.HEH@HEHHPpHHHHHH H(HHHtqHH]UHH$HPuHHHHHzHHHH.HHHˆHHJɈHHψHHֈHHH݈HHHHHH^HHHHjH HH(HvH0H H8HRH@HHHHnHPH#HXH(H`H.HhH4HpH;HxHCHEHJHEHRHEHq[HEHdHEHlHEH8uHEH}HEHrHEHHEH<HEHѡHEHHEHHEHHEHmĉHEHHH8I)H͉H5͉1H]UHHd$H}HxHEHUHuMjHuHHcHU HH=8C*HEH},AH}@UH=H5g͉HHHH8IH p͉HuHuH=HEHpHH0=*H}$H-HHCH8IH :͉HuYHuH=NYHEHhH7H0)H}u H}=T XlH}HEHtmH]UHH$PHPH}HuHvHDžXHDž`HDžhHUHuhHFHcHUQHHEHH )HEHH(HEH@HEHHHEH@HEHHHEHX@HEHXHHEH@HEHHHEH`H萞HHHNH7H8oHEHHH5mˉHEHHH0HEHHH(HpH0HHEHHHEHHHuHEHHHH=WHEHH@H0'H1H0HhHhHpH H0H`$H`HxHʉHEHH0HXHXHEHpH=HHEHXHH0&fiHXH`HhHEHtjHPH]UHH$`HhH}HuHfHEHUHueHCHcHUsHHEHH&HEHH%HEH@HEHHHEH@HEHHHEHX@HEHXHHEH@HEHHHEH`H虛HHHWH@H8xHEH H(HH0wHEH HEH Hu-HEH HH=1H}HHHpHhȉHxHzȉHEHpHH}HuHEHn$H7HHpHȉHxH@ȉHEHpH=HEH} HHHpHljHxHȉHEHpHH}HuHEH#MfH}HEHtgHhH]UHHd$H]H}HuH(oHEH`H蓙HHHQH:H8rHH="H(HHH=GoHHH}HEH0@HEH0HPHEH@HEHHPHEHH)HEHH H]H]UHHd$H}HuHSH\H8u H=ML HQH8u H=BL H]UHHd$H}HuHHEH(H<H3t tKHEH0@HEH0HPHEH@HEHHPFHEH0@HEH0HPHEH@HEHHPH]UHHd$H}HuHxHEHUHuI`Hq>HcHUH;8tqH-HEHhHuvHuH=HH8HHHvH0HH8HÉ=HƋbH}5HEHtWdH]UHHd$H}HuHxHEHUHuY_H=HcHUHK8tH:HEHpHu胾HuH=HH8HHHH0HH8Ho‰JH}Q H=HHEHhHH04H}HH#H0H9H8H7‰HsaH}HEHtcH]UHH$@H@H}HuHUH}H}H 萑HDžHDžHDžHDžHDžPHDžXHHh]H;HcH`THEH`H4HHXHUH5‰HXYHXHʐHH8HH= HHuHpAaHuH1aH}@ uHP@HH8HEH@HHHH8HHP*HPA H= t ƅƅuH8H \H2:HcHiHp4?H.HEH`H蒒HH5`HPH9H8qHHHHp ȍHp跍HH=1'u HH=5ȧ'uHt trHHHHDž HHH5HcHHH0HH֌HjŌ.HH褌H8蓌=H;MHHHHPHHHPH=<oEHptt?eHtH,HHH0H@H8n(HH俉^XH5HPvHPH5HOHHHHHHHcHq轊}DžHHHdHHHHHHHHHH;~wHHwbHQHp>uEHpy\$HEH`H舎HH5HFH/H8g ZHH(H=SP\HHHHx>WHf5HcHHH9HXHH8HXGHXHHH`HHhHH@HpHXHHOHAH=ٽ< YHHtv\Q\ [H.虈HZ興SYHHHPHXH}zH}qHeHYH`HtxZH@H]UHH$HH}HuHHHH}#{HDžHDž0HDžPHUH`-UHU3HcHXCHEH`H׋HH5uH蕈H~H8 HEHv;HHԀ8t"HHHH0H}`HH8@y tHH87迆H]H5HzHPHHH8HH@HHHH8HHPHPHھ萜$tHPTH-HH8HH@HEHHH8HHP;HPH0HHHHHHuHy$HH HܺH(HHH0H0H}HH}袜$u H}` UHOH0CHP7H5H}7yHXHtFWHH]UHH$H}HHHDž(HEHUHu,RHT0HcHU9H}HHH H0H}H}@.v uHHHtH@HHpH8HH_HHP`HH=hoH<HHxH8aQH/HcH0uGH(HHH>H0H(JH(HH8n/TH0HHHPH.HcHuIHHHHDž HHH5pH($H(( SHHtV]VHH0H H8PnHEHhHHEHhHHHEHhHHH0HEHhHH`SH([H}RHEHttTH]UHHd$H0+HHEHĉHEHɉHEHcωHEHh׉HEHHEHMHH8IHeH51H]UHHUH荾H=V聾H=ZuH=^iH=r]H=QH=EH=9H]UHH$PH}HuHUH}OHHDžPHDžXHDž`HUHu=NHe,HcHUHuH`H`HhHuHX8$HXHpHHxHuHPLHPHEHhH}HePHP$HXH` H}HEHt%RH]UHH$`H`H}HuHրHEHDžhHEHUHu MH1+HcHU HEHH{ HEH0H蟃HHH]HEHH5sHEHH0HEHH(HH0fHEHHEHHuXHEHHH=U HEHH>H0 H/H0H=EHH55H}<H%@xHDžpHpHH5H}CHuHEH/ H@xHDžpHpHH5wH}HuHEH HxuHyxuHgxuH5HH}HhRHhH=$ߺHEH H H0e HEH0H艁HH5HG~HEH@HEHHPH}H`HxtUH@xHDžpHpHH5Hh赒HhHuH},HExtUH6@xHDžpHpHH5HhQHhHuH}ȺHxtVHHHxHDžp HpHH5hHhHhHuH}cHEH0HHHuH|HEH@HEHHPLHheH}\H}SHEHtuMH`H]UHH$HH}HuH |HDžhHDžHDžHDžHHH2HHZ&HcHdHH=HEHE@HE@HE@HE@HE@HEHpHpLHHGH%HcHHpyHEH0H4~HH5HzfHhHHHp}xyHpLgyHEH0H}HHlHhH5HHH^zH}-H}@HhH}HhH=V'u+H}HEHt H}HHEHHyHUBHExtHEx tHE@H}HHEHHxHUBHEx1}HEx8~HE@HE@H}HEH?H}HHEHHH5h߉HtHE@ƅdHpwu duHpIawHEH0H{HH5߉HxGHHSH==IH9HHpH0DH"HcH(HHމHHH8H4HHHHHމHHH@HHމHHމHHEH@H HHHpHAH=މ] FH(HtIrI+HFHH޲HҲHhƲHHtGHH]UHHd$H}HuH@vH\HH5H=kpFnH@.H@#H)H52H=;pnH@,H@#H݉HH$f@fD$ }H݉HH$fBfD$ mHi݉(HHH=>IHHH]UHHd$H}HuHuHHH.H]UHHd$H}HuHSuH̢HH=H蚱HEHHH0 HH0H}}H]UHHd$H}HuHxtHEHUHu)AHQHcHUuIHEHHurHuH=HEH8I>HEH8<CH}OHEHtqEH]UHHd$H}HuH#tHEHHpH]UHH$HH}HuH sHDžHDžHDžHDžHDžHDž HDž(HDžHHHX?HHcHP ||HH=HHEH0H>vHHHrHEH0HhCHEHpHCHEHx@ec uH{H8H5cډvHuHH8H5kډVHtWA H5hډH=ډ| tH={H5ډ蒮H=y{H5ډ}3HQH8H5ډHtHHܭHډH0HEHpH(j$H(H8HEHpH H H@H0HHH蛱HHAH=ډ舵 jtPt!t1tTH=zH5؉膭?H=mzH5ىq*H=XzH5ى\H=CzH5dډG0H,zH8H5؉譼HuH=zH5PډHyH8H5j؉}Ht?HyH8H5ى`Ht"HyH8H5ډCHt H0H uHuH}H]萋H}'Dž@HDž8HSHPHDžH Dž`HDžXHMHpHDžh H8HuIIH=6t tiEH9H2HHEHHAHHHH#H'`HوHHHEHH!HHHHÌHE}u HuH84H8Ș#KH8H{KH8蚨JH8HMJH8lJH8HJH8>JH轇HHHHHHHHH褋HH8<'JH8軧JH8HnIH8荧IH8H@IH8_IH8HIH81IH8HoIH8^IH8H趧AIH8զ0IH)H8HÃ}Dž,f,,HHHc,HH ݅ ۽HHPHDžH݅ ۽HH`HDžX݅ ۽HHpHDžhHHHH51H^HH8E0HH8ĥH݅ ۽HHHDžHHHc,HHHDž HHH5FH]HH8誫GH8)GH8HF|gGH8VG݅ ۽HHHDžHHHc,HHHDž HHH5H)]HH8FH8`FH8H質FH82F;,~xD H}HEHHcHqED9}DeEEEEUH}HHEHHH}輽H}HEHHcHcHqEH9|HHHHcHqPEHHHHH>HH݌HZHHH=HHHHHH8HfDH8腢DH}HHEHHHHDž HHH5HZHH8耨kDH8ZD<$H}HHEHH^ݝ0HH8}NDž,D,,HH Hc,f/0zr ;,~HHHc,۽HHHDžHHH5HYHH8ePCH8?CH}HHEHHH`HDžX H}HHEHHHpHDžh HXHH5\HXHH8訦BH8'BH8HLڠeBH8TB;]~ H8H$袠-BH8BH8HtAH8蓟AHH HHEHHHHHHHH8AQHEHHH}H5&H}HuIH=| QHEHHH}H5H}jHuIH=) H}H}HUйH5HxHHEH\H}H}H}H}H}H t}Hxh}H}_}H}V}H}M}HA}H5}HHtTHLH]UHHd$H AHHEHMH5=H8IHH5訄1H]UHH \HH=+3H57\H=(3H5[H=%3H5\H="}3H5[H=j3H5[H=W3H= ;|H=$/|H]UHHd$H@Hc$HEH5kHMH=HEH=/}RʃH5HcHHUH5ЯHc}HHHHcUHq=U9~H]UHH$HLH}HuH(O?HHH}\1HDžHHUHX| HHcHPH]H5H1IHHzHuHHHT|HHL0tH0H HHcHu]HH=:gHEHEHxHuzHUHEHBHEHcUHPHuH};*H}"u H}HHt HHyH5H}0HPHtHLH]UHHd$H}HuH=HEHpHEHx>cEEH]UHHd$H}HuHS=HEHUH@HRH)q;EEH]UHHd$H}HuH=HEHUH@HRH)qI;EEH]UHH$ H H}H}xH*HEHuH}xHpH0HHcH(H HHHHHHuH}iH52H}ɇH}0HcHq :}?EfEEuH}*HpHHHQ;]~ H}HSHHH=HH H}H(Ht? H}wHEHt# H H]UHHd$H}HuH:HEHEHUHuH6HcHUHEH H5HEH H(HEH HEH HudH}3vHEH HHuH}wHuH}9HuH=_vHEHH5H HfH8H@H5a|H=C H}uH}uHEHt H]UHH$PHhLpLxH}HuH H9HEHDžHDžHDžHDžHDžHDžHDžHDž8HDžHDžHXHHBHcH RbHH=RHEH=lHKtH5THHuHH7H tHHHHHJHHHHwHHA7H@) tH0[6ƅu EHH=9*HxHHHHcHO H5,HxH5iHxHxa{HcHqQ5} DžDHx*HpHsHcEHq4EHHHtHHP#HGrHH5HsHHEHHH8RHHHHqo$HHHHHHHuHHcHR4HHHHHcH@HP4HEH0Hs8IH5QL15LeLqLHP3HP萬3HUH覗3H%3HuH= M'umLeLpLHPJE3HP43HUH/3H讐 3Džt DžtLeLpLHPЯ2HP蟫2HEH0H7IH8oHUȹH5?H8CqH8L3H}о,&H}@:HuH}HHott"HH}кHEHH}кHHEHHH HH(H}кHHEHHH0H HHr<$tH}HHEHHKHHcHHHDžH=x}iʃH5RHcHHH5=HcXHcHqO09~*^HH HZH(݅۽HHHDžHHH59HeFHH0H HHXqLctIq/H}HEHAMcIqd/E9}D@HH HdH(H}HHEHHH0H HHpD;~|HH.H蓌.HcWHq|.Hc %HH:HPA.EuHP.H}.Hy.HEH0H2IH8~kHH5cH8lH8Lp/H@H(H=HHHHwHHcH0HjHHHH8HHHtHHHHHH@HHHHnHAH=ur H0HtCHEHuHEHHEHH;~ oHxCHHtHEH0H0HH8iHH5H8kH8Hy-HEHH5"HEHH5( HiHH54HjHHEHHhH8hHhHhH}hHhHhHhH{hHohHchHHtHhLpLxH]UHH$H}HuH,HEHUHucHHcHUHEH u;HcߛHEHHHH}#HH}qH}EHMHXH8HH5Dn/H}AgHEHtcH]UHH$H}HuH +HEHUHuSH{HcHUHEH̏HcHEHHHH}"HH}pH}5HMHWH8HH54m|Stt&HHEH@HEHHP$HEH@HEHHPH}eHEHtH]UHH$pH}HuH)HDžxHEHEHUHuHHcHUH}PeHyVH8IH HHxoHxHrH}fHuH}(HuH=\eHEHH5HUH8IH H^Hx oHx'HEH5HEHH0 IHUH8IH HHxnHx'wHEH5f衈[|Stt&HHEH@HEHHP$HEH@HEHHPH=CHxcH}cH}cHEHtH]UHHd$Hk'HHEHHEHMH#H8IHiH5j1H]UHHHbH5RH=H]UHHd$H}HuHx&HEHUHuHAHcHUHTH0H}&HuHEHH(bHEHHEHHu5HEHHH=bHEHH5H}aHEHtH]UHHd$H}HuH%H]UHH$HLH}HuH%HDž`HDžXHDžPHDžHHDž@HDž0HDž(HDž`HDž0HDžHHiHHcH y\j Hh`A EuHhj HEHHIHoIHH5HJHLa HH(H=}ҜHHxH`H hH萷HcHHPHHHHxH8HHHRHHHHHxH@HHHHPyLHPAH=KfP HHt{4HEHuѝHEHHEHH;~`HY Hn HHHtHEHHHHVGHH5HHHHH HEHH5HEHH5ڟHPFHH5HPoHHPHEH蘟SHFHFHPFH}FHzFHnFHbFHVFHJFHXHtiHLH]UHHd$H}HuH HEHEHUHuNHvHcHUumH}THuH}E HuH=JzFHEHH53z螖H 'zH6H8HH57ZLH=zH}PEH}GEHEHtiH]UHH$pH}HuH HDžxHEHEHUHuPHxHcHUH}DH5H8IH HHiHxNHxHH}FHuH}HuH=yDHEHH5xUH=xHx(DH}DH}DHEHt8H]UHHd$HHHEHAHEHHEHMHH8IHH5K1H]UHH%xH}CH]UHHd$H}H}CHh^HUHuHԱHcHUHwHHHuHwHHHwHHHpHwHHHvwHHH HgH8?H}BHEHtH]UHH$HH}H( jHEHDžHDžHDžHDžH8H~H覰HcH6&[P[TZXZ\HH=6 AHEHfvHHHH=.+HuH=ZH5.AYH vHHHH=(+HuH=?ZH5(AH=*ZH53~AHZH8H5PHt HEH@HEHHPHEH@HEHHPHcuH0H`dH`HQSH]Hw@HH`3.H`|8HuH=}H'uH]HtH[Hu:t^'H)qzHHEHHHtH@H+HPHHHRHH=t @HtHHtH[HtH0,]'H)qHHatHHHHHHRHH=(t?HtH0H HAAH sHH 'HH=sM?HsHHtH@HtH=sH5e ?HEHHsH0規HEH@HEHHPHuH=At'uH}ؾ,]H}@H]HtH[Hu:\'H)qHHEHHHtH@H+HPHHHPHH}ExH}HEH|H=.H="HEHH5(苎HEHH5tƅ\H$r8H)r8HEH@HEHHPHEH@HEHHPH}غHHEHHHq8Hq(Hl(zw!Hyq(H`(zrHEPDžTTTH]H8HH`xH`tHuH}>sHPHXH}غHHEHHH==EPXP>EH߭THk ۼVTd}"H`Hc这 ۽@H@H`HDžXHXHH5HHcnHHt^HHHHBHcH@uH=uƅPH@HtPu H=HEH@PHEHHPH`;SHPH8H5FHtHkH0H`H`GH]H6HH`zvuH`IrdH}ؾ,&VH}@:wH]HtH[Hu:T'H)qHHEHHHtH@H+HPHHHHHH}~pH}HEH;Xt3HEH@HEHHPH&H8LMH fHH?HH=uj5HEHH^jH0vH&H8LH nH/H?HHi8HiHHDžHHH5H HHEHH%H8LdH HH ?HNHwi8HniHHDžHHH5GHk HHEHTHm%H8LH H Hy>H]HiHhHDžHHH5H HHEH„PH}HEHHDžXHDžHHH57Hc HH=pH}HH=oH=HEH@HEHHPHEH@HEHHPHEHH5`ÃHEHH5I謃ƅ\H\g8Hag8HEH@HEHHPHEH@\HEHHPH`KfHEH@HEHHPHEH@HEHHPHEH@HEHHPYH1H1H1H1H}1HHtHH]UHHd$}HXHcEHHHHt?HcEHHdHHHcEHHHHt EEEH]UHHd$Љ}uUH0EEQEЋEHk4MHIHHcHcEHqEHcEHq=}]E܋E܃E܋E܃E܋}EЃ}tHcEHmqEHcEHnqEԁ}~HcUHcEHqmE؋E؉EEH]UHHd$}uUH8*M*EH^X*MH^XMHEHEEH]UHHd$}uUMDEDMHhWHcEHH qH*HHH?HHcEHqHkquHH?HHHHcuHioqQH)qGHcMHiq5HrqqHH?HHqHcEHq H*H\ZE*EEEH(*EEE*EH^EEH(]EXEEHEHEEH]UHHd$}uUMDEDMEHpEDE؋MUu}AWEUЋu؋}EEH%(H (EEH(]EH^H-E}*EHYM\M}|*EHYM\MHf/EzwEH(]EH^EHEHEEH]UHHH]UHH$HLH}HuH@HDžxHDž`HDž8HDžHDžHDž HDž(HDž0HDž8HDž@HDžHHDž`HHpCHkHcHh05EEHEHfEfH~EHfxEfHREHfLEfH&EHf EfE@DDDHDLDPDTHEHHH=K V{HXHX,NJHX@_kEEHDžHOHHp$fBfx$ۭp$H=(۽ۭp$H6(۽ЙDž8HH衿HHHXHDžP HPHH5 H`H`kH^HHtH@H{^HHXHDžP HPHH5HHHH Hb^HHH8HH5?B0HEHHHHHH]8H]HXHDžPHPHH5HHHHpH]HXHDžPHPHH5HHHHHH8HH5or/HEHHHKHHH8]8H/]HXHDžPHPHH5HH,HHH\HXHDžPHPHH5HHHHHH8HH5.HEHHH{HHH\Hz\XHDžPHPHH5ZHHVHHH3\XHDžPHPHH5HHHHH!H8HwH5-H[H0H 蕻H y7Hm[H0H8;H@&HK[H0HH $$HHHH@'H@HHL2HHLHHfHHXHDžPHPHH5`HHHHpHH͹H16H8H55HtH`H%HH LeGH a62H`H=]'uHX,DH`HX_HXHXHHcHqi}xDžDHH$HXH8HXHH8H`~H`HH$H5HHX4HtTH5HH-4HtPH5HH4HtLvH5HH3HtHNH5HH3HtD&H5 HH3Ht @;~H`Hh#HH $cH ^H`H/#HH bH ^H=XH5b#HWH0H=WHp$HWH0H=WHN$HWH0H=WH,$HWH0H=WH $VH`HY"HH bH ]H`H=!,&H8H51HtNH`H!HH aH o]H=VH5"KH8HXHDžP HPHH5wH8{H8 *HSVHcHkqHqH@߭@۽HHVXHDžPHPHH5$H8H8dۭ߽@H@HXHDžPHPHH5H8H8HzUHcHkqH@߭@߽@H@HXHDžPHPHH5 H8.H8H UHcHkqmHkqbH@߭@߽@H@HXHDžPHPHH5H8H8(HTHcHkqHkqH@߭@߽@H@HXHDžPHPHH5H8:H8Hۭp$߽@H@HXHDžPHPHH5H8H8OHC8XHDžPHPHH5/H8H8HHlSHH(EH>H#HH@݅@H(HY(ݝ8݅@H(H7(ݝ0݅@H(H(ݝ(H=?EDžHcEHqEȁ}AH=H=>H=H=H=J%H`H1HH \H XH`HtH@H H8H5ߊ,Ht|HX;^<H`HX+WH0HH+HcHHXH8HXHH8H=N!E0HXH8HXHH8H=p !E(0vDUȉ0DUȉx0DUȉ0DUȉ0DUȉ(s0D*EHD(DUȉ,(DUȉh( DUȉ(6DUȉ(LDUȉ(bD*E8JHHHHHHcHuMH`HXHDžP HPHH5~H8BH8ƅ躭HHt虰tu"H0HJHrHcH<$LHXH8HXHH8EݜŘH:HHXH8HXHH8EݜxB׬HHHHH觇HcHuMH`HXHDžP HPHH5KH8H8CƅGHHt&u0!DHXH8HXHH8uD<$DHXH8HXHH8zEݜXqHHqiHEȋ,HDžEȋhHDžEȋHDžEȋ HDžEȋ0HDž(E8H-HHH@HDž8HHH5H8)H8HcEHqnEX@:@HXH8HXHH8 Uȉ0@H8jH8艪JEݜŸHHKHHT$f@fD$H@K(Hw(<$0@H8 H8=HHJEۭݜص0@H8H8貫JH (ɋEݜHJHHD$fBfD$HJ(H(<$0@H8WH8HHJEۭݜXH8H5׊0%HtHX,4H`HXOHXH8HXHH8H=ILHXH8HXHH8UȉHXH8HXHH8UȉxHXH8HXHH8UȉHXH8HXHH8RUȉHXH8HXHH8Uȉ(sHXH8HXHH8@߽@H*@EHDHXH8HXHH8Uȉ,HXH8HXHH8\UȉhHX H8HXHH8#UȉHX H8HXHH8UȉHX H8HXHH8UȉHX H8HXHH8߽@H*@E8HX H8HXHH8EݜŘHXH8HXHH8TEݜxBHXH8HXHH8EݜXqHXH8HXHH8UȉHXH8HXHH8EݜŸHXH8HXHH8pEݜصHXH8HXHH87EݜHXH8HXHH8EݜXDžtHE(zr DžtٽXٽ\fXHD(Hڊ(ۅt٭X߽P٭\PpEHcHcpHqllrHclHqHkHcH)qHcUHq9}X<<<f<<<Hk HH _ff (_;<~H>HcHkqjHq_HqTH@߭@۽HcHq/H=HcH)qHqH=;}H=<fD<<۽۽۽۽۽<Hk ۼ _<Hk ۼ$Hc<H =HcH)qpHc<H<HcHqUHqJHq?9}E̋ẼEfẼE̋EۄXۭ۽E݄Xqۭ۽EۄXE݄Xqۭ۽EۄXEۄXۭ۽E݄XqE݄Xqۭ۽;U~Qۭۭ۽ۭۭ۽ۭۭ۽ۭۭ۽ۭۭۭۭۭۭ۽pۭۭۭۭۭۭۭ۽`ۭۭۭۭۭۭۭۭۭۭۭۭ۽PۭPۭP۽@Hc<H:HcH)q$Hc<H:HcHq HqHq9}E̋ẼEfDẼE̋EۄXۭpۭ`EHk ۼE݄XqEHk ۼ<Hk EHk EHk ۬۬ EHk EHk ۬۬ ۬5$<Hk ۼ$;U~K<Hk ۭ۬$ۭp$ɋ<Hk ۼ _<Hk ۬ _zr-<Hk <Hk Hgڊ(۬ _ۼ _<Hk L _Lu(<Hk HЙH _fؙf(_;<~b} EẼE̋E̋,E̋E̋hhÉX}HchHqhEHDL-H,8(ݝ@@ED(sE̋E̋E̋xE̋@Hي^H͊YY@݅@۽@Hي^@݅@Hf7(۽ۭ݅0݅8ۭۭ݅0<$,Y ݝ`HOي^@Y``ۭ݅8ۭݝHۭ݅0݅8ۭۭ݅0ݝP݅P|$݅H<$P ݅(ݝX݅@HƊ(݅XݝXH!̊f/Xzw݅XH ̊(ݝXEHDL-ȋED(sE̋E̋E̋xE̋xH5HHH؊HH5HHDžH5HHDžHHH5׊H@H@HE̋HDžE̋xHDžE̋HDžHHH5׊H0H0H E̋HDžE̋(sHDžEHDH-HHHHDžHHH5#׊H(H(H(E̋,HDžE̋hHDžE̋HDžHHH5{֊H H H0E̋HDžE̋HDžE8H-HHHHDžHHH5 ֊HqHH8E݄Ř۽HHXHDžPHPHH5ՊHHH@HHxH HkE݄xB۽PHPHHDžHHH5{ՊH8H8HxHxHxHxHTՊE݄Xq۽PHPHHDžHHH5ԊH8 H8HxHx~@]E̋HDžHHH5ԊH8H8HxHxHxHxHԊHxHE݄Ÿ۽HHHDžE݄ص۽PHPHHDžE݄۽HHHDžE݄X۽HHHDžHHH5ӊHHHE̋XHDžHHH5ӊHJHH E݄8)۽PHPHHDžHHH5ӊH H H(hHDžHHH5ӊH(H(H0݅۽HHHDž݅`۽PHPHHDž݅X۽HHHDžHHH5ӊH0H0H8݅x۽HHHDžEHk H _HHDžHHH5ҊH@H@H@HHxHHxH$ H;]~dH HuH=TҊ菵EȋEȋxxEȋEȋEȋ(s(sEHHDHHDEȋ,,EȋhhEȋEȋEȋEH8H8EHŘHEHxBHxBEHXqHXqEȋEHŸHEHصHصEHHEHXHXEȋXXEHk ۭp$۬ _۽ _Et DžHHHDžHHH5ЊH8%H8虳HFHHHDžHHH5ЊH8H8GH=Њ;H 迋jH讋Y$HxHlH `H(TH0HH8H8HHHXHXHuH5]HF H81HE}tHH H@HEHHH HPH@HHHYHEH HcHq}EDEEHEHHUHuHEHHHHEHHUHHEHHHHH=EHcEHqRHPHEHHUHHEHHHHHH}HPHH8HEHtH@HcUH)qͦHPHEHHUHHEHHHHHHHtH@H+PHPH}HPHHHUH5HWHHMHUHH8;]~H} H=WwHgH[HOHCHX7H}.H}%H}H}H`Ht2xHH]UHH$HLH}HuHϦHEHEHEHpHH}ĘHEHDž(HxH8rHQHcH0'EEHEHH563HEHHEHHx HH0H}$H}H5THEH_F;H]H5H̘IH(HUHuعH(4H(L蠺#tHuH}EE}EH5~H}вcHEHHcEHHHHH)HH(1H(H(HHEH HHEHuH$(>HcEHqEH}蹺#uH}w(HEH@_=HEH<HEHHEHxh-;sH(H}H}H}H5H}H}H0HtuHLH]UHH$HH}HuH薣HEHEHEHEHDžHDžHDžHDžHDžXHUHhoHMHcH`H5H}`HEHHEHHHuHEHHHHuAAHHHX覲&HXH}HuAAHHHXl&HXH}HX H H@HEHHHHPH@HHX HXRHXHHHEH H*H(H<H0HNH8HHHXHXHuH5mHVH81HE}tHHH@HEHHH0HPH@HHHQHHUH5H>HHH8HEHHcHq؞}EEEHEHHUHuHEHHHHEHHUHHEHHHHH=EHcEHq"HPHEHHUHHEHHHHHH}HPHHHEHtH@HcUH)q蝝HPHEHHUHHEHHHHHHHtH@H+PHPH}HPHoHHUH5H'HHMHUHH8Y;]~H} H==NmH7H+HHHXH}H}H}H}H`HtoHH]UHH$HH}HuH覝HEHDž HDžHDžHPHiHGHcHdlH#HHHH3HHEHH/HHHFHH5NHzHHH]HHHHHH}HuHp/mHHhHFHcHHpHEH HcHql}DžlllHEH HlHHEH HHHHpgRHpA;l~|Hpxl#jHHH=`lHHHhH(zgHEHcHHHH޿蟙HH8H(WH(H޿p/H޿^YHHPH޿Q)HeH0HthhZgeHH HpHhHHtgH(H]UHH$ H H}HuH趕HEHDžXHDž`HEHUHuaH@HcHURH}NHHh[H5H`H`HpHHxHhHH}H]H HHhH}AAH HHh&HuHH8FP(HEH@HʗHHXkHH8HHH@HHHHEHPH8HHXDHXH%cHXH`H}H}HEHtdH H]UHH$HH}HuH薓HEHEHDžHDžpHUHu_H=HcHxH5H}H5H}HH=HEHEH HEH Hx HEH(HEH(H( }dHEH(HEH(H( HEH(HHpHEH(HHHpH=HHH}H5+HUHuHOH8Hp HHXHEH`H{HhHXHHpHpHEH HHEH HHPH},HHu*HXH]H;HcH@HuHHp(HEHHHHMHUH0H8IHJHHHHHpHpHEH HHEH HHPH9`HHHP`HHta_H@Hp4H}+H}"HxHtAaHH]UHHd$HHHEHHEHHEHMHH8IHH50H]UHHH}H]UHH$pHxH}HuHVHEHUHu[H9HcHUHEHHH5HEHHHPHH8"H]HHHtHEHuAAHH=r4u3HEHHHuHEHHHP4HEHHH5;HEHHHP]H}HEHt<_HxH]UHHd$H}HuHHEH9HEHHxHH0HEHHxH@H]UHHd$H苍HHEHHEHMHH8IHQH5r0H]UHHd$H}HuH}VHpHUHuhYH7HcHUu#HEH Hu!HH8]\H}HEHt]H]UHHd$H}HuH}Hp芌HUHuXH7HcHUuNHUH5 H=HEH Hu HH8W[H}HEHt]H]UHH$`HhH}HuH$ƋHEHEHEHEHEHDž0HDžHDžHDžHDžHDžHDžHDžHDžHDžHDžHDžHDžHDžHHLWHt5HcH6HH=4?H8H8,7H8@HHEH 6H=:HEH@Hu8HEHtH@HtH=x:&6HEHHDž HHH5H HH}V۽HHHDžHHH5H趞HH}f۽HHHDžHHH5H`HH}۽HHHDžHHH5H HH}۽HHHDžHHH5xH贝HH}dH}H5THfT #۽HHHDžHHH5H3HH}۽HHHDžHHH5HݜHH}g۽HHHDžHHH5H臜HH}7AHDžHHH5H?HH}H}H5HuH=WHH`WSH1HcHuH=萅[VHHHHHSH+1HcHuIHEHHDž HHH5ZHVHH}UHHtXXU}X1HEHHDž HHH5%HHHEH HuH}عH.AHEHHDž HHH5&HzHH}*HuH=VHHQH/HcHuH=ۃTHHHH0NQHv/HcHuIHEHxHDžp HpHH5 H衙HH}QTHHtVVSVF0HEHHDž HHH5` H,HH}HuH}йHp HEHHDž HHH5h H̘HH}|HuH=lTHHOH.HcHuH=g-RHHHH0OH-HcHuIHEHxHDžp HpHH5 HHH}lRHHtKU&UORU.HEHHDž HHH5 H~HH}.HuH}ȹHr HEHHDž HHH5j HHH}HuH=sRHHFNHn,HcHuH=9$JQHHHH0MH,HcHuIHEHxHDžp HpHH5! HEHH}PHHtSxSPlS,HEHHDž HHH5\ HЕHH}H5) jeH=THEHHDž HHH5H]HH5H=~۽HHHDžHHH5HHH5K~H=5 {~%۽HHHDžHHH5HuHH5-~H=~۽HHHDžHHH5HHH5c}H=M8}]۽HHHDžHHH5QH荓HH5E0}H=}H5Hw}H=|۽HHHDžHHH5HHH5M|H=7"}|w۽HHHDžHHH5cHwHH5/|H= |۽HHHDžHHH57HHH5e{H=O:{HDžHHH5)H蝑HH5U@{H=/{H5 {H={H5 zH=|zDžDDžHiH}}HHHhHHHPH5HzH= zH54HecyH=yH]HHH=yH=yEEHHH`HHHXfH]H蔶HH=PKyH=t:yHuH8H8HH8HHH=)蔶H8HH8HH襒H8HH8HHpH0H8H8HH8HH8HHH-HHHtHvHHuH=W|BoJH8HH8HHHHHtHvHHuH={{H8HH8HHH-HHHtHvHHuH={onH8HH8HHHHHtHvHHuH={zAH8HH8HHrlH8HH8HH='H8 HH8HHH8 HH8HHss-H8 HH8HH螏H8 HH8HHiH8 HH8HH4^H8HH8HH9H8HH8HHjrEH8HH8HH蘎H8HH8HHrEH8HH8HH1H8HH8HHH8HH8HHǍH8HH8HH蒍H8HH8HH]'HcEHqsE}tHH\/\YH^ \ H(zw Uf/mzs 5f/]zs vEf/MzsY8f/Pzs<f/#zr&HYf/zrHcEHqqEhXhf/`zwHH`f/XzrH|HX*EHaYH^^H[XH,Hqq| Dž DžH\HYH^HXH,Hqp| Dž DžHiHHcHqKpHi҄HH=zpuE쉅HDžHHH5@H|HH},EHDžHHH5KH7HH}H}H5H}HE쉅HDžHHH5H҅HH54uoH= doEHDžHHH5HoHH5'oH=oH5HYnH=xnH5|H+nH=_Jn*Mh^xEEHHHHHHH@H=Ǻ[H]HcHH=YnH=C n@H]H$HH=mH=mHuH8jH8HH8HHH=$H8HH8HH5H8HH8HHzH8HH8HHH-H]HHtHvHHuH= qcH8HH8HHHHHtHvHHuH=p_pH8HH8HHH-HHHtHvHHuH=7p"cJH8HH8HHHHHtHvHHuH=ooH8HH8HH%H8HH8HHH8 HH8HH軄H8 HH8HH&hH8 HH8HHQ[H8 HH8HH6H8 HH8HHH8HH8HH貃H8HH8HHgEH8HH8HHKH8HH8HHfEH8HH8HH>H8HH8HH诂YH8HH8HHz4H8HH8HHEH8HH8HH\ z\YH^ \ Hn(zw 9rf/HzsUf/;zs8&f/.zsf/1zsf/zr&HYf/zrٽٽf*E݅H (H(H(٭߽٭HHq)WH=ثqWuh*EP^pH}H5EHDžHHH5HJmHH}EHDžHHH51HmHH}EH}H55H}H5r%H}H5R݅x۽HHHDž݅X۽HHHDž݅`۽pHpHHDžHHH59H5lHH}uH}H5ZeH}H5rUH}H5E݅p۽HHHDž݅@۽HHHDž݅H۽pHpHHDžHHH5iHekHH}H}H5H}H5HNf/zrH}H5^YH}H5IH}H59۽HHHDžHHH5HjHH}H}H58H}H5H}H5H}H5Hlf/zrH}H5|wH}H5gH}H5W۽HHHDžHHH5%HiHH}H}H5VH}H5H}H5H}H5H=Zu% SH=d%SH=8S%RH=B%RH}H5#HHHH؏H̏HH贏H訏H蜏H萏H脏HxHlH}cH}ZH}QH}HH}?H03HHtR$HhH]UHH$@H}HuHRHDžpHDžxHUHu5H]HcHUdH`HH$fBfD$HH8IH `HHxŘHxk۽PHPHhHDž`H`HH5aHpgHpHEH(H?HH$f@fD$HH8IH ?HHxHxk"۽PHPHhHDž`H`HH5HplfHpHEHUHHH$f@fD$HW~H8IH H'HxcHxWj{۽PHPHhHDž`H`HH5HpeHpHEH<$H}H8IH _HHxĖHxi۽PHPHhHDž`H`HH5`HpeHpHEHHHH$f@fD$H}H8IH HHxHxia[۽PHPHhHDž`H`HH5HpkdHpHEHTH}HH$fBfD$HV|H8IH }H&HxbHxVh۽PHPHhHDž`H`HH5FHpcHpHEHH,HH$f@fD$H{H8IH ,HuHx豔Hxg۽PHPHhHDž`H`HH5MHp cHpHEHH {H8IH HHxHxMzhHDž`H`HH5HpxbHpHEHHaޚHp9Hx-HEHtOH]UHHd$H}HuHMHEHEHUHu>HfHcHUu\HyH8IH HHuHuH}LHuH=kHEH@H5ToH}QH}HHEHtjH]UHH$@H}HuHLHDžxHUHu`HHcHU=Bݚt<$HEH(HxwHxe ۽PHPHpHDžhHhHH5Hxg`HxHyxH8H'H5P#Hx"HEHtDH]UHHd$H}HuHxJHEHUHu9HaHcHUHEH0H5HEH0H(HEH0HEH0HuBHEH0HH}IHuH=1謆HEH@H55H HGwH8HEH5ߊH}HEHtH]UHH$@H}HuHIHDžxHUHuH8HcHU=ښt<$HEHHx?uHxbͺǺ۽PHPHpHDžhHhHH5[ފHx^HxH)vH8HgފH5ފӋ~Hx҄HEHtH]UHH$@H}HuHHHDžxHUHuHHcHU=ٚt<$HEHHxtHxa۽PHPHpHDžhHhHH5+݊Hx\HxHtH8Hw݊H5܊裊NHx袃HEHtH]UHH$@H}HuHmGHDžxHUHuHHcHU=ؚt<$HEHHxrHxS`۽PHPHpHDžhHhHH5ۊHx[HxHsH8Hw܊H5ۊsHxrHEHtH]UHH$@H}HuH=FHDžxHUHuHHcHU=bךt<$HEHHxqHx#_}w۽PHPHpHDžhHhHH5ڊHxZHxHrH8HۊH5pڊCHxBHEHtdH]UHH$@H}HuH EHDžxHUHuPHxHcHU=2֚t<$HEHHxpHx]]W۽PHPHpHDžhHhHH5ڊHxWYHxHiqH8HڊH5@يHxHEHt4H]UHH$@H}HuHCHDžxHUHu HHHcHU=՚t<$HEHHxOoHx\ ۽PHPHpHDžhHhHH5k؊Hx'XHxH9pH8HيH5؊Hx~HEHtH]UHH$pH}HuHBHEHUHuHHcHU=Ӛt{HEHHHu-nH}AEHDžxHxHH5(يH}WHMH,oH8H؊H5׊քH}}HEHtH]UHHd$H AHيHEHYHEHHEH+HEHMH=H8IHH5$70H]UHH5H=}H=61}H]SHd$HD$HSHHt =HH0ffH08ltHcHHHtH|$#}H|$H5}H|$HuH=CH5SHHRHHt =HHHt$HuH5lCH=EHHRHHt =HHH=rt^HRHHt ={HxH8t8$H\RHHt =NHKH8HH|${Hd$[Hd$HRHHt =HH8t(HQHHt =HH8HQHHt =HH8t(HQHHt =HH8蟓Hd$SATAUAVAWIAHfAjAAEt,IcHHHtHuH5ALdH*IcHHH|HuH=AL8HAHu#ACIcHHfD;dxHA_A^A]A\[SATAUAVAWHd$HHt$@fT$8HL$HH-fT$8f;uaHhPHHt =jHgfH-f;t H/PHHt =!HL0E0D|$80H5IIt%H=ʾtD$0HT$0LAIu!Ht$@HL$HH,H記HD$ HD$(HD$HH4@H|$@1HD$HH @HD$HHH$H\$HD$@HHuH?HT$ILd$@fÃt\t >HD$H,$HD$?HD$Hl$LD$(HL$ HT$(Ht$ L{HD$@HHuHS?HD$H)IHT$HHRJ4 H|$@1HT$HHRHD$HT$HHRIHD$@HHuH?J*HD$ ,CLD$HL$HHt$LBHHD$@H0HtHvH+t$H|$@1膈H|$@t$80EEtLHd$PA_A^A]A\[SATAUAVAWHd$HfAHT$0H $H*fD; uaHMHHt =HfH*f;t QHeMHHt =GHDL0E0AH5IAIu HT$0H $HV*0H苖eHD$ HD$(H$HH|$0ILLH\$HT$0HHD$LHHD$fdÃtWt >HD$H,$HD$f?HD$Hl$LD$(HL$ HT$(Ht$ Lhu[zTHD$0HHD$H)IH$J4(H|$0藪H$HHD$H$IHT$0HLHD$ @LD$HL$HHt$LHHD$0H0HtHvHD$HH)H|$0EtLHd$@A_A^A]A\[SATAUAVHd$HIHtHvHݩMMtMmIM|4IIIFA|DHHuH;fBrM9Hd$A^A]A\[SATAUAVHd$HIHtHvH]MMtMmIM|4IIIFA|DHHuHN;fBrM9Hd$A^A]A\[SHHHtH@H9}QHHtH@H= }HHtH@Hp H1̈́!HHtH@HHH4H1誄[SATAU@III$HtH@I;E}TI$HtH@H= }I$HtH@Hp L1O"I$HtH@HHH4L1+I$IUHTIEA]A\[SATAUAVAWAHIIHILlALHA;IH HHtHRH9}QHHtH@H= }HHtH@Hp H1萃!HHtH@HHH4H1mLDL}HtI AE?IA_A^A]A\[SATAUAVAWHd$IIH|$1Ҿ{H|$1ҾjLMtH@HHs L1AH$fC|&wCD&D$A!HL)HPKt&HL$H|$ILMt1Ht$Ht%:DLC|&HIL9}5LC|&HI|$$LHL$H"ML9NH$HpL1Hd$ A_A^A]A\[SATAUAVAWHd$IIH|$1Ҿ;H|$1Ҿ*LMtH@HHs L1譁AH$fC|&wCD&D$A!HL)HPKt&HL$H|$蠋ILMt1Ht$Ht%:DLC|&HIL9}5LC|&HsI|$LHL$HML9NH$HpL1ԀHd$ A_A^A]A\[SATAUHd$HIMMtMmIEH$H5mHHߺ51ATtЅuH h=v=rHR=wEI9~@HVfATTfr/fw(HVA|Tg@( HzH|${HLLvHt$H<$xIH iH|$iLHd$A^A]A\[SATAUAVHd$HIIIHtMvLWL9}*MeM~IuLHIEB0Hd$A^A]A\[SHd$HHD$HD$HH1H|$csHt$H|$HHH|$DH|$*hH|$ hH$Hd$ [SHd$HHD$HD$HH1H|$rHt$H|$HHH|$H|$gH|$gH$Hd$ [Hd$Ht 8t0Hd$SHd$H$H={u H=suH=st6hHHt>uH5T1H*rH<$WfXfHfHd$[SHC=|2-tt$Jft7ft[SH=HHtH!:H H!HC=|2-tt$ftftH<HHtH:H HHC=|2-tt$mftZftHL<HHtH8H HHC=|2-tt$ftftH;HHtH#8H H#HC=|2-tt$ftftH;HHtH':H H'HC=|2-tt$;ft(ft[H$8H=!HH5HHCH$HHD$HHD$H0HD$HtHD$ HHHD$(HHD$0HHD$8HHD$@HHD$HHLHD$PH HD$XHHD$`H8HD$hHHD$pH0HD$xHH$HuH$HH$HWH$HH$HH$H:H$H{H$HH$H H$SzH5;٢H=J]HVHtH=JH5K^H'1@Hyf,HfH{HffH9HHtH:H HHC=|2-tt$ftftH8HHtH:H HHC=|2-tt$\ftIftH;8HHtH8H HHC=|2-tt$ftftH7HHtH8H HHC=|2-tt$ft}ftHo7HHtH#:H H"HC=|2-tt$*ftftk[Hd$H=ަtH=զ\H=貁Hd$SATAUHd$HAH #6L,$HHIEIHH IEIIcHpL5IuIcH+IEMcB IIEH$Hd$A]A\[Hd$7H_Hd$Hd$HHtHv:Hd$SHHtH{6H6[H$HHHHH AH|$gH$SATHd$HAE~ A~z(McILH?HcIJ 4J41Hd$A\[SATHd$HAE~ A~*McILH?HcIJ#4J41Hd$A\[øH|1H|1SATHd$HAE~ A~z.McILHI?DHcH#4v1Hd$A\[||É?HcɺHH !H1||É?HcɺHHH#!H1H|1H|1||É!҃?HcɿHH#[Hd$Hd$HHd$Hd$HHd$Hd$HHHHAoHd$Hd$HHHc&Hd$Hd$HHc$諿Hd$Hd$H$HD$HD$!H|$HT$ H1}1 T$8tHd$HSHd$H !H$HT$H1uD$Hd$ [SHd$HHcH$HHd$[Hd$1Hd$SATHd$!H<$HD$H|$ H|$ HT$0Ht$ 1u H|$0H|$ /H|$ `HT$@1}+AHt$01ҿD}H|$@u2Ht$HtAHt$01ҿpD1Ht$01ҿUHt$HxHt$HgÅtH|$e|Hd$hA\[Hd$H?.Hd$SATAUH$pHIH}A8H$EHID$H9sIT$HH$EjBD#E1DH$A]A\[SATAUH$pHIHU}A2H|$A_HID$H9sIT$HH|$ABD#E1DH$A]A\[Hd$HM11H=ҼHd$Hd$nѻHd$Hd$f豻Hd$Hd$k葻Hd$Hd$hqHd$Hd$lQHd$Hd$i_Hd$Hd$j?Hd$Hd$HHcsKHd$Hd$oѺHd$Hd$p豺Hd$Hd$Hc|辺Hd$Hd$Hc_螺Hd$Hd$HHV諺Hd$Hd$HcH1ɿHd$Hd$HcHZ[Hd$Hd$щH\zHd$Hd$HHHd$Hd$HιHd$Hd$HcHcHcHHd$Hd$HHcHcHHd$Hd$HcHcH蛹Hd$Hd$HHH;踹Hd$Hd$HHHH;葹Hd$Hd$HdHd$Hd$HMHcIHH¿迹Hd$Hd$HщHHd$Hd$HH軸Hd$S11$g11gÅu 11É[SATAUA|~AIcHcKADA]A\[SATAUAAՅ| A|A~ IcIcHc/A]A\[Hd$HHX˷Hd$Hd$HIHcHH¿"Hd$Hd$HIHcHH¿Hd$Hd$HHcHcH¿腷Hd$Hd$HHcHcH¿UHd$Hd$HHHd$@Á Á`ÁÁÁÁÃ%%%tt0SATHd$HIH$HD$HT$Ht$(mHHcHT$hu@HHLH|$Ht$HuH5H<$HuH=DHQH|$QHD$hHtHd$xA\[SATHd$HAH$HT$Ht$ H޿HcHT$`u%HHGH<$HuH=7DOHQHD$`Ht!Hd$hA\[SATHd$HAH$HT$Ht$ &HNHcHT$`u%HH跭H<$HuH=DHpPHD$`HtHd$hA\[SATAUHd$HAAH$HT$Ht$ H蹾HcHT$`u(HH"H<$HuH=DDwHOHD$`HtHd$pA]A\[SATHd$HIH$HT$Ht$ HHcHT$`u%HH臬H<$HuH=wLH@OHD$`HtaHd$hA\[SH$HƄ$HHu H1`O)HHA1ɺZHH00mH$[SATAUHd$HIIH$HT$Ht$ HHcHT$`u(HH肫H<$HuH=rLLH8NHD$`HtYHd$pA]A\[SATHd$HIH$HT$Ht$ VH~HcHT$`u/HHH<$HuH=HHL>HMHD$`HtHd$hA\[SHd$HH$HT$Ht$ HHcHT$`u"HHLH<$HuH=<7HMHD$`Ht)Hd$p[SATAUHd$HAAH$HT$Ht$ 1HYHcHT$`u(HH©H<$HuH=DDw HxLHD$`HtHd$pA]A\[SATHd$HAH$HT$Ht$ H辺HcHT$`u%HH'H<$HuH=D/HKHD$`HtHd$hA\[SHd$HH$HT$Ht$  H3HcHT$`u"HH蜨H<$HuH='HXKHD$`HtyHd$p[SHd$HH$HT$Ht$ H賹HcHT$`u"HHH<$HuH= GHJHD$`HtHd$p[SATHd$HIH$HD$HT$Ht$(H%HcHT$hu@HH莧LH|$聧Ht$HuH5pH<$HuH=`H,JH|$"JHD$hHtCHd$xA\[SATHd$HIH$HT$Ht$ FHnHcHT$`u%HHצLH<$HuH=蟺8HIHD$`HtHd$hA\[SATHd$HIH$HT$Ht$ H޷HcHT$`u%HHGH<$HuH=7LHIHD$`Ht!Hd$hA\[Hd$Hd$SATHd$HIHD$`HHt$H?HcHT$Xu2H|$`HHH|$`蜥LH|$`HuH=sH|$`RHHD$XHtsHd$hA\[SATHd$HAH$HT$Ht$ vH螶HcHT$`u%HHH<$HuH=DhHGHD$`HtHd$hA\[Hd$?dHd$Hd$?DHd$SHd$H4$H|$1Ҿ#HD$HT$(H苺薶t1HD$(Hd$P[Hd$vHd$Hd$膷Hd$Hd$Hd$Hd$&Hd$Hd$豶Hd$SATHd$HAH$HT$Ht$ HHcHT$`u*HH臣H<$HuH=w D溶:H;FHD$`Ht\Hd$hA\[SH$HHHHH ɊH|$޺͵H$[SATH$AHH@HHH CɊH|$DzH$A\[SHd$HH$HT$Ht$ HHcHT$`u#HHLH<$HuH=< 藶HHEHD$`Ht(HHd$p[H$HHXHHH [ȊH|$'H$SH$HHHHHH Ȋ}HH|$PH$[SATHd$HIHULH޹oHI$tID$(;cA$Hd$A\[SHHHHƹNH84[SATHd$HIC=|- H UtAD$=|- LTTfA$LH޹oH%A$I$tID$(A4$;зHd$A\[Hd$HHfDHHƹNHADDƋ8菷Hd$Hd$HòHd$Hd$IEAuM1H !Hc;<|Hc /~HHcH9}H HcDH HcHSATAUIIH}H~H}HH}H@A$AEHHx}H H} 12@HyHcDDH=yTH HI}J ƒ;5l}|H SPH@H!}H ‹7}H .Hc;~H Hc‹DA$H Hc;ucu| t;t}NAEfDAE~2H͢HcHqHc-t u2H{~+HSHs(;AHSHs(;šHC Dc HCDHd$A\[SATHd$HE1H؁xuHxt HgAHCDHd$A\[Hd$G?Hd$SATAUHd$HIHt$Hu AHH5ᭊ6$CCPHHC0HHC8H7HC@HlHCHLH56D$A$AD$AD$PHKID$0HID$8HID$@HID$HE1DHd$A]A\[SATAUHd$HIHt$H3uAYHH5W|$CHCCPLH5ݬ0|D$A$AD$ID$AD$PE1DHd$A]A\[Hd$Hd$SATAUAVAWH$IIHDŽ$hH$H$qH虖HcH$PVRtWttcA(H$xHAAu A$u*HK6FH$x964A$EWs<$tBHHHtHF:H H56HH:AH5H$x5AsH5$xtLH1HHtHB:H H52HH$xAH$xA5SH(蒿H0膿H8zH@nHHbHPVH`JHx>HHt]TH H]UHH$PH}؉uUMDEHEHUHhVOH~-HcH`EHuH}{PH}H}H5uzHH=XHEDEMUuH}H}3HPHXHUHPHHHXHPH}:HEHHHP EQH}H`Ht SEH]UHHd$H}HHHHEHPHEHEHUH]UHHd$H}HuElHE=HtvH]UHHd$H}EHEH{E}jtE}jE}jtE}jEHEHHE:HE;Eu"HEHxHEHpMUHEP[HEH@(HEH}uCH]UHH$H}uHUH=\H?uE=qthH}Hו8t1H0HtHtJHDž0H L(H]UHHd$H}HuHVt H}H}HH8t/HuHH8葰HHxu H=0H]UHHd$H}H H]UHHd$H]H}H8HxH$H8謩 HE؋@gXEfEԃEԉH}LHEH0a HEHtHuH=&7)uHHuH=m)tHEHuEE}u H} HuH}聿 H}i HEHt HEȁ`P;]KH}r0H;H8S#H]H]UHH$pH}HDžpHEHUHuCH"HcHUuaH}_HoHxHEHpHpR$HpHEHoHEHx1ɺH}@H}W$FHpH}HEHtHH]UHHd$H}H,HxEEH]UHHd$H}~ H]UHHd$H}HuUMDE}E}E}u }d芻HH}NK}} u HE,} HEUHEHEȋEEHEHEEfDEԃEԃvEs(E tHUuH}cHUuH}A}|}H}u} t }u HE,}`) HEUHEHEEEHEHEEDEԃEԃvEs(EtHUuH}HUuH}}|H]UHH$pHxH}HEHEHUHH EdHExu;"HExu.H1tmHt}H}|fHEHx`!HUHu@HHcHUHEHx`!HEHH}!tYHExl }DHE@lHEHx`$!tHEH@`HpHEHx`8jHMtR HE@lHEHx`]!HECHEHx`!HEHt-HHuDHEHEH}tdHUHu?HHcHUu#H]H}LCHKSH3HEH}BH}tHEHtCHӖHoHWtHӖHH}%tHɕ8t1CHxH]UHHd$H}^HuHEHxU%tEEEH]UHHd$H}H@hHExuHǾ`HE@hH]UHHd$H}HHHHEHHHEHHHEHHxHEHHeHEHHRHEHH?HEHH,HEHHHEHHH]UHHd$H}HuHH8tHEH@HEHHEH0HEHxHEH@HHEHH]UHHd$H}   H]UHHd$H}HE1ҾHpEEEH}HEHEHuHUH}HEHHMUHHUEH@}|H]UHHd$H}E@EHEUHH }|H]UHHd$H}HuHH8tHEH@HEHHEH0HEHxHEH@HHEHH]UHHd$H}HxtHE@H]UHHd$H}G8H]UHHd$H]H}EHEx<~HE@HEHoHE耸HEHHE胸tuH}QGHxPH} t[HuH}HUHuH} E܋U)ЃHUBJ$HH5\UH|$ƅtHH&HHcHH`f@8f=rNf-tf-tf-t"f-t)4HE@aHE@THE@GHE@:H`@8HDžxHx1H=T$ƅt7 )H`HDž`HHtH~*HDžHhHU@4B!HhHU@0B"HhHU@@B#HhHU@$HH54MHq$|HUHuH}κH}EEȃt+}t%EȉEHEHu1H=4M $/H}u1HEHHEP11褒HEHUHEHEHEHEHUHHEHBHEE;E E;EEHHDž@EXHDžPEhHDž`ExHDžpẺEHEEЉEHEH@H=L $GEU)ЉE؋EU)ЉEHE@;EtH= M$HE@;EtH=LMϧ$UuDEԋMH}褳HEHu&=$HH5tMHo$HUH@HHcHUudHE@ < r2, u.}uMԋUHuH;MԋUHuHl'HE@ EHEHu1H=:M $"NH}HEHtHtHEEEH8H]UHHd$H}HuUMHEH@@HEHE@8EHEH@H@HHEHEHx!EHEH@@'HcHHEH@H(HH҉UHEH@@(EEEfDEHUHUHUHUЋUEEHM9uHMЋ1M! HMЉ9HEHE;UwHcUHUHcUHU;EwH]UHHd$H}HuUMHEH@@HEHE@8EHEH@H@HHEHEHx!EHEH@xu,HEH@@'HEH@@(U*HEH@@'HEH@@(UEЉEEEH}HEx uEEEEfDEUUHUHUHUHUЋUEEHMDHuA!uHMЋ1M!HuЉHMЋ1M! MHuЉHEuMMfMft eHE;UwHcUHUHcUHU;EMH]UHH$0H8H}HuHUHMEHEHxXtH=_J貣$H}u!9$HH5JHk$yH}u'EEHE@EHE@E|HEEHE@EHEHcPHEHcH)HUHE@HEH;E}HEHEEHEHcP HEHc@H)HUHE@HEH;E}HEHEEHE@;EtH=JȢ$HE@;EtH=XJ諢$DE̋MЋUԋuH}耮HEHu8$HH5JHj$ZHUH@vHHcHUH}HUB)HE@,HEP,HEp)HEx!EHcUHcEHHEHP`HEHp`HEHxXZHEHx`HE@8HcUH9uHEHpXHEHx@HEHP`UHEH@@HEHEH@XHEẺE/fDHcUHuH}gHE@8HEHcEHEm}HEP`HEHpXH}|H}HEHtEEH8H]UHH$pH}HuUMDEDMHEH}H2tHuH}2tEE}OHEt"HU HuH}[!HU0Hu(H}^!H}=J!HEEEEE HEt"HUHuH}O[!HUHuH}N^!H}I!HEEEEE}E}tHcEH؉EEU)ЉE}E}tHcEH؉E؋EU)ЉE}o}e}([}0QE;E(uE;E0u }u}tEE}P EHEHuHHEHHUHuhHEHuHHEHHxH|4E;|E;xHcUHcEHHHcEHcUHHxE;ElE ;E`HcUHcE(HHLHcE HcU0HH8}}RU(EЉEHcEHcUHHcM(HHEEU)EE;|EEE(} }PE0E EHcEHcUHHcM0HHEE؋U)EE;xE EE0HcEHcU(HHcEH9~EEU)ЉEHcEHcUHHcM(HHEKHcUHcEHH7EE(HcU HcE0HHcUH9~EEU )ЉEHcEHcUHHcM0HHE؅HcUHcEHHEE0H}8u EE@E EHHEHEUPHuH}HEHtHEHu(HEHu HE3HlE&HEHu HE HTE̋tHuH}HEHH}t H}H}t H}EH]UHHd$H}HEHUHu9HaHcHUu3HEH@HEHEHU1H5EDH}VH}ӛ$H}u}HEHtH]UHH$pH}HDžpHUHu HHcHUHDHEHDžx HEH@HHp;HpHEHE Hx#HEH@HEHEHU1H5CHpUHpޚ$)Hp}|HEHtH]UHHd$H}~EHEH@Hxt4HEH@H@@@ttH}IE H};EEH]UHHd$H}EHEH@Hxt4HEH@H@@@ttH}E H}EEH]UHHd$H}EHEH@HxHEH@HxHEH@H@@@t t;jHEH@H@@@ttPH}5EBH}E4HEH@H@@@ttH}E H}EEH]UHHd$H]H}.$HH50BH(a$0EH]H]UHHd$H]H}J.$HH5`BH`$0EH]H]UHHd$H]H} .$HH5BH`$0EH]H]UHHd$H}.H]UHHd$H}H]UHH$PH]H}EHEȁxP  HEH@HHEȀxbHEHUȋ@;B(uHEHUȋ@;B0tNHEH@HHEȋPHEȋpLHEHu6,$HH5AH_$HEH@HH}HEȀxt#H}ՃHEH}țHEHEHEȀxt H}1諃HEH}螛HEHED$(D$ D$HEȋ@؉D$HEȋ@D$HEȋ@$HEHxh!HHEH@HHEDHHED@ HEȋHHUH}D$(D$ D$HEȋ@؉D$HEȋ@D$HEȋ@$HEHx,h!HHEH@HHEH@HHEDHHED@ HEȋHotEHEH@H@HEHu@HEH@HHEHEH}u?*+$HH5h@H]$!HEH@HHEHEHp8H}HEH}HEȀxHEȁxP HEHx9g!H1详HEȋ@؉D$HEȋ@D$HEȋ@ $HEHxg!HHEH@HHEDHHEȋHHEȋPLEHEHx4t!HEHxf!Hlj+0HEHx1wI!HEHxf!HHEH@HLEHMH}'u,H}t H}C)$HH5?Hl\$HEHxt>HEH@HEHE@HE@ HUHEȋ@B(HUHEȋ@؉B0HEHxt6H}t H}EHEH@HEHE@@HE@HHEȋ@PBrBt- uHEHpH}$HEHD$HEH$HEȋ@HD$HEȋ@@D$HEHxPe!HHEDHHED@HEȋHHEȋPHEHxHEȋ@0D$HEȋ@(D$HEȋ@ $HEHxd!HHEH@HHEDHHEȋHHEȋPLEtHEHx'g!H}t H}}uH}t H}HEHxd!H1EEH]H]UHHd$H}HuHEHxHExPbtHExPBtHExP UHEH@HEHExPbu!HEHx1HEH@HxHE"HEHxоHEH@HxHEHuH}_=!H}F!H}e!u5HE@؉$H}c!HHEDHHEHxE11ɺ菾HuH}=!H]UHH$HhH}HuHUHMLEEH}u&$HH5<H'Y$HEH@H.HpHuHpטHp1Hp1HEx+HEHU@;B(EHEHU@;B0|}t|t E9}u |t E!HEH@t EEHD$HEHD$HEHHHD$@HEH@HD$8HE@D$0HE@D$(HE@؉D$ HE@D$HE@0$HEDH(HED@ HEHHUuHp9E %$HH5g;HW$}HExto補@EHEP0HEp(M1UHUHBHE@0D$HE@(D$HE@ $HEDHHEHxLEHp11E}tHEpPH}?HpSEHhH]UHHd$H}H@H]UHH$0H}HuEH}HEHEH}(HEH}H5g:HEH}UH`H}H`{HDžpHDžhH$HpHD$(HxHD$ HEHD$HEHD$HEHD$HUH`H}E0A1H}} HpH}H59(HEH$HhHD$(HxHD$ HEHD$HEHD$HEHD$HUHuH}E0A1u-H}u&} u HhtHpHh:EHpt HpFHht Hh0HDžpHDžhEH]UHH$H}HuHDžH`H yHHcHH}1TnHEHHEH}H5,8HEHH}0H558HEHHDžxHEH$!HxHD$(HEHD$ HEHD$HEHD$HEHD$HUHuH}E0A1dH}!u5} u/Hxt%HxHHEHx軅HDžxH}H}0H57HEH$HxHD$(HEHD$ HEHD$HEHD$HEHD$H}0H5F7HHuH}E0A1uTHEH;Eu)}u#HxH\HH}'Hxt HxHDžxHkHHtH]UHH$H}HESHEH-HEH}0H5h6HEH$HxHD$(HEHD$ HEHD$HEHD$HEHD$HUHuH}E0A1sttHXHuHHcHu5H}t} u HxuƅtttHxHHEUHxt HxoHHttt }HEHEH]UHH$@H}HuEHEHQH}譡HEH;H}0H55.HEHHDžxH$HxHD$(HEHD$ HEHD$HEHD$HEHD$HUHuH}E0A1H}} HxhfH}0H5s4~HxH9uE%H}0H5l4WHxH9uEHm}uH}tHxH}wH}v HxЁHDžxEH]UHHd$H}.HEHEHEH8sHEH8Hu蒮HEH8tSH}YtFH}H535Ht1HEH8贻t!H}H53{HEH8_H}HEH}gH}t H}跤H]UHHd$H}^HEHEHEH8uHEH8Hu­HEH8tUH}tHH}H52eHt3H}H52PHtH}1H52zHEH8H}4HEH}eH}t H}H]UHHd$H}EHPA8u H@8 r9HAH8H}0H5`2 HEHvHuH}赗HEEH]UHHd$H}HuHgHEHk HEHt H})H]UHHd$H}HuUMDEDMHEH=~͡H>tH}H}+t H}i H]UHHd$H}uHUHMHHUuH}AHwH]UHHd$H}uHUHMHHUuH}E0HwH]UHHd$H}HuHt2H} HEHt HEH$H}M1M111ҾH]UHHd$H}HuH HEHH}H}-H}LH}#HEHH}t!HEH H;Eu H}1iHuH=t H} H}3@t H}uHuH}0HuH=egt HuH}&HoH@H;Eu H^@$H]UHHd$H}HuHUHMH} HEHHEHHUHE@B,HUHE@ B0HEHU؋@8B(HE@EHE@EHE@EHE@EHuH}AHuH}HUHuH={9H]UHH$`H}HuUtH}lSH}苤H}b HEH}9 HH}Tt HuH}賭HuH}fHHH;EtHHH;EuHHHaHH;EtHQHH;EH͇H8nHHHtZHHH)(t@HHHH;Et$HrHHHH}& H}1&kHH}ItHuH}HEHH}wp HuHLH8s#HEH;EtHuH?H8s#H}N HEHx`!|!HUHpHDHcHhubHEHx`i~!HEHHEH@HEHEH@HEHEHH;EuHEHx`Huر#!HEHEH}uHEHx`{!HhHtAH]UHHd$H}HuEHEH=UӡHtHEE{HuH=atHELEXHuH=h_kuHuH=DlWtHEE!HuH=y4t HEEEH]UHH$H}HuHUHH8H&HH}14jHuH=aҡtHuH}O%HuH=`tHEHpxH}`HEH8uH}HHp_H]UHHd$H]H}Hu&iHEH HEHHEHHBHEHUHH}H} HEHt-H]HEHH}H5j*erHn*HHC8H}NqHEHt*H]HEHPxH}H5.*)rH2*HHC8HuH={tH}> !H4H} THEH]H]UHHd$H}HuU'HE@0 HEH}NHHurH}Y}tH}z HEЃHPHuH} HuH} H}HEH]UHHd$H}fuHEf}Nf}BfEf-f=%HHcHEDEEEE EtEElEEEEFyE`mE aEXEOEDFE=El4Et+ED"E\E<E4E}t }豮HEHEH]UHHd$H}HuHH=e]H u H='mz$H}H}HH}HH=$]H}HEH"tmH}uHEHH}ІtKHEH@xHEk4HH}识t*HEHEHxpuH}c{H}1H5.'nH]UHHd$H]H}HuUHEH=E¡HuHyHuH=Nt HEHEHEH}H} )H} HE}H}tHEHu H}+ HuHH8q#tDH}tHEHuHuH}e HEHt H}W^ H}h H}HEHHEu#HE(ttuSHE@PuFH} EH}ܩ EH} H} HEȋuH}guH}苶H}* HEH8H5|%uv H}H}輋H}QHEH?HEHp-HEEHE@PtEEtt_tLH}- HEHCt H}fCu CH}ĎH}H}cH}t H}+ H}H}t@HuH= J[t,HE(tttHEt H}f H}HH}Qt HuH}谢HH}/tVH}H8tIH}HHt5H|HHttH|HH՚H]H]UHH$H}HEHEHUHuHHcHUuQH}RWHEH@H8H[H1H}iaHU1H5$#H}XH}Zu$H}VH}VHEHtH]UHHd$H}HuHUHMHEH(HUH(HUHuH}oHEH(Uԋu艇HEH(詓HEH(HxP1HEH(HxP" HuH}]HUH0HEH0HEH(WHEH07HEH(HxPHu11gHEHUH8HEH(E܊EH]UHHd$H}HH(t=HEH0tHEH0huHEH(XuHEHǀ(H]UHHd$H}uUHEH(E}tbHEH(HxPctHEH(HxPuHEH({HHE苀<U)HE苀8u)eEH]UHHd$H}@uHEH(E}t(}tHEH(賆HEH(EH]UHH$HH}HuHUHDžHUHuHHcHU1HEHHhH(JHrHcH u H}KHERH HH=Қ6HHHHHHcHuQHLSHHP1H5HTHH$HHH9$HHt\H},HUHH})gHRHEHtHH]UHHd$H}HuUMDEH}HEHH}!HH}C,!HEЋEEEEH}1h%!}@ HEUHEHEċEEH}[B!HHugH}FB!HHEHMÚH]UHHd$H]H}HuHuHHEH}H5([zHEHtcH}I HEHtQ$HEȋ@LD$HEȋ@HD$H}ڐHH}!H HUH}E1E11?H]H]UHHd$H}HuUMEH}'HEHH}!HH}*!HEEEEEHEHHUHu舀}}E;EE;EHEHUuA+zHEH~H}nHEHuHEHwHEH}u uHEH}11}EH}1Ҿ XHUċuH}8]H}H}ċua E܋EH]UHHd$H}HuHEHxPHuf#H]UHHd$H}HuHtHEHxXHue#tEEEH]UHHd$H}HuUHEH}HtHE@ ;EuEEEH]UHHd$H}HuUHEH}HtHEHEUH]UHHd$H}HHu8HH= !HUHHEHL8HEH.!HEHEHxPHui]#HEH]UHHd$H}HuHEH}HEH@PH@ HEEUHEHHEEfDEԃEԉH}!H;Eu HEHE4}rփEHEH@HEH}uHEH@P@;Et1k$HEH]UHHd$H}HuHEHxPHuc#t%HEHxPHuI_#HEHHuu!H]UHHd$H}HuHUMLEH}KHELEMHUHuH},!HEH]UHHd$H}u !HEH‹EB HE@HEHEHxXHu[#HEH]UHHd$H}HuHEHxXHub#tHEHxXHuY^#H} !1j$H]UHHd$H]LeH}HuHu EH]+;{t E{~HPEH{t(s H{t!H;EtH1ҋs H{!C tktHt !H{(1HH8Hs( Z!H{Xt H{XԪH{0軬C@t tt6DH{Ht=H{Hc2H{Ht H{H葪H{PtH{PAH{Ht H{HmH{0t{,u H{0詯H{8H{8~uH{0'H{Xn!aH{(tZH{(茥OH{0t H{0ZH{8t H{8J~H{@H{HE-#IH5L0$HuH}EH]LeH]UHH$@H}HDž@HDžHHDžPHEHUHuEHmHcHUHEH@HEH}IHHXHuHP#HPH`HHhHEHpHH#HHHpHHxHEp HEHx!HH@l#H@HEHX1ɺH}*MH}Ag$H@HHHHHPHH}HHEHtH]UHH$HH}HDžHDžHDž0HDž8HDž@HDžxHUHuHͶHcHUHEH@HEHxHHHHHuH@8#H@HPH3HXHEp H8I !H8H`HHhHEpH0Z#H0HpHH1ɺHxKHxHE"#HHuH-$HEHxHuHEHHFHHDž HuHL#HHHDž Dž HDžHEHHsHH(HDž H#'HHpHDžh Hh1#HSFHGFH0;FH8/FH@#FHxFHEHt9HH]UHHd$H}HuHH]UHHd$H}HHHE@PHE@0xkHUHBHHEHp8HEHxH+HEHx0莨HEH]UHHd$H}HHcHE@lH}@0HUHB(HEHp(HH8]P!HEHtHEHp(HuH8=S! HEHp(HLHUH81kP!HEH]UHHd$H}HHHE@dHE@THE@0]jHUHBHHEHp8HEHxHpHEHx0sHEH]UHHd$H}H1HFH]UHH$HH}HuHDžHUH@UH}HcH8HEHuH}HEHEH1ҾDHuHH8M!HEH}@0,H;EEH}u`}uZHH HDž HuH~#HH0HDž( HT#1#H}ttHExHtjHUHE@LHUHE@PHUHEHUHEHEHUHHrTHYHEHH}辏 C@H}R CAHEHHEHut HEH}ZHEHu'H<H0HDž( H(1T#H}[{HEHu'H[H0HDž( H(1#HE}u/H}t(HuH+H8L!HEHt HEH@xHEH}u H}OHEH}uH}@0HEH}u'HH0HDž( H(1#HUHuH}dxHEHu'H<H0HDž( H(1D#H}}CH}pgC H}CC CCC@HHLHt"HEHxpHuHEHEH]H]UHHd$H}HuHUEHE8uHE@EH]UHH$H}HuHuHEHUHRhHEH}HUHuHϠHcHUDHEH}1=1111:HxHUHUHxHBHEHB1HUHB HEHx MIHEHx 1pHEHx 1?VHEHx CHEHx KxvXHHEHx HH8t/H2xH8 tHEHx HHH=cHHEHx HMH5`SHEH}tH}tH}HEHwHEHtfH`H &HNHcHUu#H}tHuH}HEHP`%HEHtHEH]UHHd$H}؉uUMDEHEHx EԀ}IHvH8t EE'}~}~ }~}\OHHU1!dEKE H}jEH}^H EEEEEHEHx Hu QAEEEEEEEEEEEEHEHx HuPHEHx zaHEHx FHEHx UunHEHx UuME:fDEf H1qt~Hnu܋E;EHEH@ HxPtE:fDEf~H1t~H8nu܋E;E HE؀xt1111e6HEHUHEHEHEHEEX@EH}HEHUHEHEHEHE#~H1艁t~Hmu܋E;E}~EH]UHHd$H}HuH~HEHUHHHEHx t"H}"HEHx eMHEH@ H}1辩H}tH}tH}HEHPpH]UHHd$H}HHBHEHBHEHEHx VHEH@ HxP =HEH@ HxP'$HEH@ HxPHu {HEH@ HxPHUHuH}HuTHEHUHEHEHEHEHEHx HUHufHEHx HUHuQMUu}4HEHUHEHEHEHEЋME)EU))UE)‹Eċu))‹uE)Ƌ}ċE)4HEHUHUHEHBHEHBHEx } HE@ HEHPHUH@HEHEHUH]UHHd$H}HHx tHEHx JH]UHHd$H}HHx t HEHx aH]UHHd$H}HuU؉MDEDMHEH}HAE&H}HEH(HEu EH}C!HEtbLEHMHUHuH}!HUHuH}!HUHuH}!UEЉEHUHuH}!EU)ЉEH}c HEEE؋EEЋEEȋEEH} ED$ED$EU)Љ$H}F!HDMȋEA)HEHDEЋM1dEH]UHHd$H}HuUMDEDMȋED$E$DMDEЋM؋UHuH}#H]UHHd$H}HuHUH}H}nHEHtHEЃ@XHuH}HEHHUHHEHHMHUHB HHBHHEHHEH}tH}HEHEH}HEHx`HuHEH@`(H}HE@ EHE@EHEHU@R )ЉEHEHU@R)ЉEă}~}&EEHUHuHEH XHEHBHEHHu>HEH]UHH$`H}HuȉUMDEDME(D$(ED$ ED$E D$ED$HEH$DMDEMUHuH}HEHH]UHHd$H}HuUHMLE1H]UHHd$H}HuHUMLELMEH}tVHEH5gHOHEHt:HUHHEHBHEEEHEHEHEHEH}HuUEE̋EH]UHHd$H}HuHUH}uEE H}HEHUEHEUPH]UHHd$H}HuHUHt%H}jHEH}HuH}s4 H}1v&H]UHH$HH}uHUHMEH}JH}?E3EHEH}1Ҿ8H`H HHcHHEHEоH=9H;EHE1H5H}u1H=9HE1H5}H1H5\H|1H5kHkH5_HWH5[HCH5WH/1H5NHH}HMЋUHvH0H< H}HHMHUHvH;HEH;EH}F}<H=tw8H;E H=i\8H;EHEMHUuH}LES=|HHH=HcHu`|gX|REfEHUHcEH<t1HEHcUHHEH@XHuH}JHEx HE@@tt*tBzHEHUH@HHBXHE@PHEHUH@HHBXHE@PbHEH@XHEHEHxHHEHpXHUйH}l%#HH5H# H=[+$HEHxXtKHEHxXSlHuH}1tHEH@HHEHEHMUuH}EEH]H]UHH$0H0H}HuUMHDžHHUH`OHwyHcHXHuH}t2HEHt$HEHHEHEHKEHE6@Ẽ}|} ~bHEẺ@HDž8H81H5މHH;HHHP#HHPH#H}1HEЋM̋UuH}@eHEHpHUHB0}uHE@@HEHUHPHHE@@HUHEHBHHEHx0u2}HUHB0HEHx0u 4HUHB0HE@,HEHx0 nHE@,HEHx0"PHUHB8HEHE轜HH HXHt0HEH0H]UHHd$H}HuHEH}HE.HHEHHGHEH@k}.HHEHh:_HEH`kHEH]UHHd$H}HuHE}t H}^EH]UHHd$H}HuHt(H}ѡuh^HH}ltEE}t!H}蟡t H}* H}WcEH]UHHd$H}HuHUMEHEH}Hѷu EOHEu E9HEHE"@mHEHPHuH} HE}EEH]UHH$H}؉uUMDEHEHUH@VH~uHcH8HcEHcUH)HH?HHEHcEHcUH)HH?HHEEEEEEEHcUHcEH)H0HcEHcUH)H(H;0~ H(H0HEHcEH0H5NH0H}ȺgEăE@E*E*M^HډY0݅0]EEE߽0HMHcu0EEE߽0HuHcU0L;EvH}ؾ舸HEH}ȋuĺ#7HEHEHUHP(HEHEHDž0H5IH0H}Ⱥf诘H5(H}H8HtHEH]UHHd$H}HuH}1HEH`H]UHH$HLH}HuHUHEHEHEHEHDžHDžH`H 謔HrHcHHEHEHEH}uHEHpH}A1ɺ HuH}IHH1HYrHcHQHuHUHH8!HEHt?HEHxR0H}茶HE@lHEH@HUH@@HB(HExHE8HExHExsHExuiHExu_HEx uUHEHpA1ɺHHHH5׉H葯uH}DHEBH]HLeLLHLEHMH}\HEHH5b׉H.H}@0HEH~H}+HEHuH}K HCHEH}HHHH}G}u-HE8u$H}3EH}3Vu }觍E}uHE8uH}H5։v}~eEHHHcrH}1H H}01 }t#HuH}1Hd։ H}1zHuȺ,H~VHEHxH@HHEHH'HHEHHxH}1ɺTHEHxHՉHHEHHѻHHEHHxH}1ɺxH}HuH=X HEH=uHExtHEpH}CH}]NuHExtH};H}8]HxHH}1 Hx}u?HE8t6HE8}HEHcHH E HE E*EH}8H}脲HE@l1 H1E2HUHB(HEH@(HEHuH}LHExuHExEH}"HEHu !1HEEHExt9HEHH}(HExt&HEHH}'HuH}d}t H}%/H} H}yNH}1HExH}u]H}tVHEHx(tKHEHp(HUHMHH8 !HEHEHx(WH}tHEHUHPxHEH}t H}=CH}tfHEHx(u>HLӉHHDž H1#HuH}HEHEHuHx0HHEHEHHtHt艒HDžH8H,H}#H}H}H}HHt'HEHLH]UHHd$H}HuHEHEHpH}& HEH@x@uHEH@HxHO9HEHEH@H@HHEHUHuH}E,HE8u-G;HHUHuGE;EE;EHEHpHEHxzRHEH$DEMH}M111+IHEH}t H}'[HE8t HEHE3:HHEHHEPHuEEH}HcuHUHcMԋʉHuHc}HUHcMԋTT;EɃ}u EEUuH}+HUHB(H}HEHEHEH]UHHd$H}؉uUMDEHEؾHHEE;EEEEU)ЉEEEEU)ЉEȋE;EEEċEU)ЉEEEċEU)ЉE`PHEHuH}/HEHUHEHB(H}FSHEH]UHHd$H]H}HuHUHMDEEHEHEHEHEHEHEHuH}ct(HuH}RtHuH}AtEE}u#舫#HH5͉H&#EHE8~,\#HH5͉H#HEHx(TEHEH@(HEHEH@(HEEvttFtTt)t[HuH}HEWH}jHEHHuH}wHE5HuH}$HE"HuH}HEEHEHEHx(t HEHx(QHEHUHP(H}SEԋEH]H]UHHd$H}HuHH}1HUH HHEEH]UHHd$H}HuHuE5HEHxXHu #EE}uHHuH}販EEH]UHHd$H}HEHEHUHu!HIdHcHUu9H}HEHpH}4#HU1H5ˉH}H}$H}WH}NHEHtpH]UHHd$H]H}HuHuEH}t/WHH}zHHt H}EEH]H]UHH$HH}HuHUHMDEDMHDžHDž HUH@HcHcH8(EHuH}菤HEtYHuHUH} H(H0H(HEH0HEHUHuH} HUHuH} HEHEHEHEHEHHEHt$H}ĞHEHtHEHEHEH}к HEHUE;2)tE؃ttu@0H>E؃t@H&E؃t HqE؃E؃E؉HDžH1H5ɉH H H0q#HH0H#UE0HDž(H(1H5ɉHmHH#HHH#ӅH'H H8Ht:EHH]UHH$pH}@uHEȋ@؃t EHEȋ@%t EEHEȋ@%t E5HEȋ@%t EHEȋ@%t EEHEHxH}l HEUH]< HEHu01 HEHt H}HHEH@9HEUHrHfPHcHhE%` = u^HEH0HPHx讣 HUHH4HBHtVHUHE4DHUHE8HHEH@H@ p\EEEH (Em}mEEeHΫf/EzSrQ}}fMH\EEEH(Em}mEEEHEU؉HUE܉H]UHHd$H]H}HHPHMHHxHBHAHEHU@x)ЉEHE@؃ yHEHPHtHRHEHpHuH5HMH}HEHM|QHEPHE@%t/HExEHUBHE|UHEPEE9E}UUHExHEPHE|UHEPHE@؃vXHEH@HcP HEH@Hc@H)HEHcHHEHc|H)H)HH?HHHEHx1\HE@؃HEHPHEH@R @)HEHM@|))HEHx1HE@؃u8HEHPHtHRHEHpHuH5HMH}EEHEHPHuH[HELhHELpHEHpHEHxЋMmHE@%EEHEHp{HEhgX|iEfEHEHpHcUH<4[HHEHpHcMH4HMH}AEE9E~EE܉EEE;]E;E}EEEEEHEHUHhEHExEHUBHE|EHUBHEh~HEhHURHUBH}xH}M|jtt:^HEH@HcpHEHc@H)HH?HHHEHx1&HEH@HUpB)HEHx1辸H]H]UHH$`H}HuUHMHEHDžhHUHxm_H=HcHpHE@؃@}Hu1HhHhH}AH aH HMHtHILEHUHuHHEHpHEHxHEH@HE/LEHEHpHEHxЋMHUHEH@HEaHhH} HpHt,cEH]UHHd$H}G%=EEH]UHHd$H}G؃u EHE@؃u EEEH]UHHd$H}G؃u EHE@؃u EEEH]UHHd$H}HuUM0H]UHHd$H}HuUEH}tOH}xnEE@ƁH}:HEHx@HpHHEHUHuHU1EH]UHHd$H}HuHUEHEH8H}tH}yHEHEH}tQHEHx`HuHEH@`(t3H}:ou&HEHH(HEHHH}H}HEHtHEЃhXHEHHuH}HEHHEH]UHHd$H]H}HuHUHMLEE&H&Ã|FEE}t HcEHxHM11Ut EE}t;]ċEH]H]UHH$ H(L0H}HuHUHMLEDMHDžHDžHDžxHDžHPHZH"9HcHEEDžHExpHEHpA1ɺHHDHEx6EH=}HHHIZHq8HcHHH HHHÃEDEȃEȉHHxHHHxHH$HHHMUHHUE;]\HEHHt^EEH=@KHH=(3HH=X #HpH}H8Ã|^EDEȃEȉHNH8&llHpk"#ulHp!#;]HHfXH6HcHHEHpA1ɺHnHHED@HEPHHHHHÃsE@EȃEȉHHxHHHxHH$HHHE@#UHHxHHHx?H8CHDH8HLLMLEHHuH.HHH}HHHpx~Hp1#HMUHHUE̋gD`ADž|f||HHHH-HH%H}HHHMUHHUED;|zHp@gD`A|TDž|||Hp#HMUHHUED;|;]XHpAH{AHoAHHtYYXHxHH5rH{HHHtYEH(L0H]UHH$@H}ЉuHUHMLELMLHHEHDž@HUHPkTH2HcHHHEHUHuHEHHH}HuH=ˊFHEHEH}>EHE}ˆP}|u E}uEHUEBH}HUH}uHE8*OHUHEHHEHHHEHHcEHH|H#|UEEmHEHHcEHHDHcUH4HEHHEHHP}H}1HEHHEHHEHEHHEHH~"1H@H}MH@H}UH@ H}HHHt"WEH]UHHd$H}HuUHEHUHu"RHJ0HcHUuhH}1}|WHEHHEHH;E~3HEHUHuHEHHH}HuTH})HEHtKVH]UHH$HH}HuUHMDEHEHUHX=QHe/HcHPEH= +HEȾH= HEH8HPH/HcHHuH}CH}HEHÃEfDEEHuH}HEH}}E<,t ,t8,wuH}HEHHt^HuH}HEHPGuH}HEHHu.HuH}HEHPHuH}HEHP;];H}tH}HEH|\EEEEHuH}HEHHuH}HtuH}HEH}H}HEHÃ|JEEEHuH}HEHHEH8HuHEHHP;]HEH8HEHHEQH}:H}:HHt^SQH} HPHt?SEHH]UHH$@H@LHH}HuHDžPHUHh.NHV,HcH`VHEH8HEHHHDžXH5kHXHEHEHEHEHUHuH}FHcEHXH5dkHXHEHEgXEfEHUHcEH;EHEH]UHHd$H]LeLmH}HuHUMEHEH}Hgu EHEHxE~B~HEHx(E܅fHUHuH}HEHEEHEHuH}HEH(HEHEHHUHu3H}~ ]H )H}~ DeA)H}~ II McIH}~ HH H HcHH}HEHDDAHEH}HEH(HEDEHMHUHuH}HEHEHUHuH}HEHHuH}HEHHuH}HEHMHUHuH}qE܋EH]LeLmH]UHH$0H}HuUMDELMHEH}HeEĄH}誥 HE؃H}H}w| H@HHH@HH&H@HHH@HPHHHXHcTHHcPHHP<UuHP*LPMHUHuH}A HEHHPHEHDžpH}| HEE؃tJHuH}HEHhEHEDH HED@HEЋHHEЋHuH}HEH HEtSH}t;HEH0HPH}t H@HHHUH@HHHHBHUHuH} uH}`EEEHuH}zoUEЉEHEEEEEH}1螆 E؃HEHUЋ@)ЉEHEHUЋ@ R)ЉEH}0ɲ{H}" E$H}c HHEЋPEgDHEЋEg HEHDM[HE<u%HEH`H}HEHhHpH}0ɲHDžxHE HhHEH`HEHE}}+EE}UuDEHMHHcEHEHE@HcEHEHE}~UuDEHMHEEHEHHEH;Es&HE t tuHEHU:tHEHEHUH)ЉEH}YE}EEHEH;EfE؃tUHuH}HEHXEEH]UHHd$H}ЉuUHMDEHEHx EEHEH`"EHEHpH$HELxHEH`HEHxDEM̋U HEHhEHEHhHcEHUH`E)E؃}v9HEHpH$HELxHEЋPHEHxDEMHu裮 H]UHHd$H}HuHUHMLEHEH}Hc`tHuH}`tEE}H}Hu| uqHExPuLHE<u?HE`v HEHHuHUH}Ah HuH}HEHHMHuHUH}A; EԊEH]UHH$0H}HuHUHMHEH}H_t)HuH}_tHuH}_t1E܅]HuH}HEHhEHEHxt&HEH@Hx(tHEH@Hx('HEHEH}EHUHP ?H3HcHHHUHuH}HEHtzHEHx(HucH}HuVH8H@H8HEH@HEHMHuHUH}Aʘ HUHuH}HEHEA}t H}UHuH}HEHXHHHtBEH]UHH$HLLLLH}HuHUMDEHEH}H]EԄ}HHEHHEHEH0HPH}u HHHUHHHHBHEHPHuH}Ʌ HEHP HEHpH}谅 EEEEHuH}g HEHEHU ;} IȉMEEEtt+tFtaxHcUHHcuHH}+v HEHHEHEHpHEH}t;HUHuH}BHEUHEUPH}薱HEHEH;EuH}?CtHEHU@@)HEHU@D)BHEHUHHHUBHEHMPLQHEP EeH}t^HEHU؋@@R@)HUHEHU؋@DRD)HUBHEHUHHHUBHEHUHLBHUB E}u2HEHX@K S11荩HEHUHUHEHHEHBEEH]H]UHHd$H}HuHUEH}t(H}bHEHUHUHEHHEHBEEH]UHHd$H}HuHUEH}t*1111ިHEHUHUHEHHEHBHuH}Pu ELH}h HEHEHxHEu'HEuHEu HEtHUHMHHHHABHEHHUHuM̋U11HEHUHUHEHHEHBE]HEH@Hx(+EHEH@Hx(HuHEUԉHEU؉PHEUHEPHE@EHUB HUHuH}HEHHcUHHcuHH}躈EH]UHHd$H}HuHUEH}t*1111HEHUHUHEHHEHBHuH}VOu EIHEHx(,EH}t2HEHx(HuHEUԉU؉PUU܉PUUP EH]UHHd$H}HuHH}HNtH}裏 EEEH]UHHd$H]H}HuHUEHEH}H@Nu EuHuH}SNu#EQ#HH5QwHA#AHEHxt!HEHpH}Nu EHEHEHxtHEH@H@(HE1111pHEHUHEHEHEHEH}t3H}蘿HEH}Ke HEHcUHHcuHH}pHHUHuH}HEHHUHuH}HEHH}HuHEHEHx(t HEHx(HEHUHP(H}Eu E }tE}uEEH]H]UHH$H}HuHDžHDžHDžHDžHDžHDžHDžHDžHDžHDžHDžHDžHDž HUHu,HC HcHUHڡHPH HH H(HڡHPHHHH0HڡHPHHjHH8HڡHPHHBHH@HڡHPHHHHHHڡHPHHHHPHڡHPHHHHXHڡHPHHHH`HڡHPHHzHHhHڡHPHHRHHpHڡHPHH*HHxHڡHPHHHHEHPݡHPHHHHEH(H}1ɺ 諝-HjH^HRHFH:H.H"HH HHHH ژHEHt-H]UHH$`H}HuHUHDžhHUHu(H#HcHUuXHuKHh^$HhHpH!rHxHrHEHpH}1ɺP+HhHEHt1-H]UHHd$H}HuUHEHEHH:HGtRErJt9tt!u6HEH@HE(HEH@HEHEH@ HE HEH@0HEHEH]UHHd$H}Hu*HHEHHHUM11QH]UHHd$H}HuHH}M101HIH]UHH$0HH}HuUHDžHXH'H7HcH Dž|H}uZH}1HEHHEHUHuH}HEH|HUH}1HEHHHuH}MFE4tDJ$/;blHEHuH}1HEH|HEHH|19HEHu!H}HEH|HEHH|1HEHu@|kHEH6|PDž|AHuH}XHEHۅHM(۽HuH}HEHHcHkdHۭ߭۽ۭ߽|HuH}ZHEHۅHM(۽HuH} HEHHcHkdHۭ߭۽ۭ߽|HW| HV@|H)tHp@$|Dž|Dž|uH,#HHF#HHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$M1M11HH5{lH |#&HjHHt'|HH]UHHd$H]H}HHǀpHEHXHtHHUHpHEHpuuHUHpHEHpEEH]H]UHH$HH}HuHUHDžHDžH`H !HHcHWHuH}|Au ƅ|:HEHt811HUHHEHPHuHEHbƅ|HEHH0#HHHuHa+#HHnD#HHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$HH$L ejLjHHjH5jHy#ƅ|#HHՏHHt$|HH]UHHd$H}HuHUHME11XHUHHuH}?H}W HEHEHHEHUHuH}_EE̋EEH}::HEHuHEHEHUHuHEHxP$E̋U)HUEЋU)HUBEEH]UHHd$H}HuHH}M11HyAH]UHHd$H}HEHEHEHEH8lHEH8HuJH}!8tOHEHHEHt;H}`0t.H}CCHEHt HE@Pu'H}7HEH}HEH}nH}t H}vHEH]UHHd$H}HuEHEH}H=tHuH}gIHEtEEH]UHHd$H}u=|,-t ttEEEHEHxHHcu蚆%H)8fBfEfu2uHcHEHxHc%H7fBfEuHcHEHxH1%fMH7fBf fE,EfEf%t}uEufeErsE3HLEHMHU1]UHs7TE!%H;7fBf UEH]UHHd$H}HuHH}HJHEHtEEHUHE@THUHE@PBHE@HUHE@0B HEH@HUHE@`BHEx`vMHE@`EEHUHJXHcU4HUHHcM4;EHE@H}u EsHcEH|iEHUHE@0B HExP1趍HUHBHUHE@T/-HE@ 8HDž0H01H=`#;H@菅H}膅HPHtEH]UHH$ H L(L0L8H}HHxu Eh^EH}1ҾhgHEL`H]LmfBMCCfCfCHCAE(AEAEfCfAE fAEAEAEAEAEAE AE$AD$@tt;thI|$HIUIuI|$HEfAEvI|$HtnIUIuI|$HI|$HgEfEfAEDI|$HtHH}tHEH@`HE^KHH}迧tHEH@`HE;HH}蜧t&H}oHE40#HH5JXHb#H}HE@tHE@0H-HUBHE@t*HE@ H-HUBHE@(H-HUB HE@tHE@HH-HUBHE@tHE@0H-HUBEEH]H]UHHd$H}uHEE4tmtTt;HEHHEHEHHEHEHHEHEHHEHEHHEuHEHHEdHEHHESHEHHEBHEHHE1HEHuH}4HUHHEHHEHEH]UHH$PHPH}uHDžxHUHui HHcHU}|}~wE1"E`HDžXDžpHDžhHXH5UHxRHxHE@-#HHuH_#EHE Hx>yHEHt`EHPH]UHH$PHPH}uHDžxHUHuY HHcHU}|}~xHE1"E`HDžXDžpHDžhHXH5 UHxQHxHE/,#HHuH^#HEUHHE Hx*xHEHtL HEHPH]UHHd$H]LeH}uEE{!H|HcHHE@@E~E1EHE@@E~E1EeHE}xElE`ETEHC> wHEH'H}@8E LHEHH}@HEHÃH}HEHAH}!HEHA)D)]EEH]LeH]UHHd$H}HuEHEH}H"t HE@EEH]UHHd$H}HuHUMDELMHEH}H"u EHEHE@H}t HE}u E}|H}u E}u H}yEHcuH}!HEHu EHuH}*4HEHuH}-HcUHuH}xo HEHPHuH}ÃHEt=HEHPHuH}H HEIHEHEPIHEPH}u-H}u EHE;EHU؋EEHEHEH}茝HEHuH}ˊHcEHEEEHu1"HEtHUHuH}4H UIЉUH}tE;E5HE؋UH}tHEHUMLHEH}[kH}ZEEH]UHHd$H}HuHUMLEH$HEHD$MHUHuH}M1E1HEHH]UHHd$H}HuHUHEH}HEt$HuH}w+HEH}HHEH]UHHd$H}HuHUHEH}Ht1H}t*HEHUHEHUBEEEH]UHHd$H}HuHUHEH}Ht1H}t*HEHUHEHU BEEEH]UHHd$H}HuHUHEH}Ht1H}t*HEHU$HEHU(BEEEH]UHHd$H}HuUЃ|tVt9H}"HEHtHEHc@(HEHEH5JHHEH5JHHEH}"HEHtHEHc@,HEfHE\H}`"HEHtHEHc@0HE HUHuH}HEHHuH}HEHCH}HEHH}' H}#D HHEHDEHMȺSH}*F u@H}HEH(H}' H}C HHEHDEHM1H}t H}*HDž H5$H H}ߴEH5H}& H(Ht5EHH]UHHd$H]H}HuHUMHEH}Hu E(} EH}E t EH} HEHcuHH}t(EgX|oEfEHEtHEHcUH4H}*, HEHEHcUHHEHuHcM؋UEЉHMHcu؋EẺD;]H}HEH(HEE܀}t9H}HD u,H}% H}B HHEHMHUxH}O(EH]H]UHH$`H}HuUHMLEE0(HEH1Ҿ0@HEHUHHEȋUPHUHEHBHUHEHBHEHx`fk HUHpaH艿HcHhu4HEȃxt HEȁxcu HuHHEHx`Hu'm BHEHx`Ek HhHtBH8H;t>H$*8u%H`*8sHEHxtHEH@f@]H%EH]UHHd$H}HuHEH@Hx`HEH0j HEHHEH@HEH{HExt HEЃxu'HEx=H}zHE@$HExctH=-m#HEЁxctH=.m#HEH@HEHEH@HEHUHExu HE؀xtBBHExHE؋@EHE@E;E}EEHUBHE؋@EHE@E;E}UUHEPHE؋@ EHE@ E;E~UUHEP HE؋@$EHE@$E;E~EEHUB$HEH@Hx`Hu:m H]UHHd$H}EHEHxHEHH=xHEHHEHuH=utUHEHHE=H} HEHEH@Hx`Huh HtEHEHHEH}uEH]UHHd$H}HuUMEHEH}HtBHEHxHuHEHxHu HEHxHtEHEHx(Uu E܊EH]UHHd$H}Hu؉UЉMDEDME(D$E D$ED$E$DMDEMȋUHuH} H]UHHd$H}Hu؉UЉMDEDME(D$E D$ED$E$DMDEMȋUHuH};H]UHHd$H}HuEHEH}HhEH]UHH$pH}HuUMDEDMHEH}Hu EHE耸tLEHMHUHuH}& HEHD$HEH$LMLEMȋUЋu؋} }t}u EmmH}HEHH}j HEH}}= H}l HEHUH}; HEH} HExPu]HEx0tME$HEHD$H},; HƋUEgDUEg HEP0HEHDM@E$H}: HƋEUgDEUg HEHDMH}HEH(HEE}tSH}< uFH}( E$H}i: HƋUEgDUEg HEHDM1kEH]UHHd$H}HuHUHMHEHuHrHEHUHEHx(HuގE܊EH]UHHd$H}HuHUHMHEHMHuH}HOH]UHHd$H]H}HuUEH};Tu"HH5'H/#yH}1 lH}1H5#(N\HfHEHcUH}H5(.\H}uH}.THE HuH}kH}THEH'EEH]H]UHHd$H]H}HEHEHxoHEHH}THEHE]fHEHUHH;Bt>HEH8+St.H]HEH8H55'p;CuHEH8_hHE#HEH@HEH}uH}t H}VHEH]H]UHHd$H}H1HUHHH]UHH$HH}HuHUDž|H}HEHxPHu]"HEHpDždfDddHp1 drHpHHhHt,HhH}1HEHHHpHǀDždddHp HXHtQHXH@H;pt1d#HXH}HEHdHp Ht1fd#dyH@HaH艴HcHu3Hp7 t#Hp6 H{HpH@8CHHH=ę'HHHHHHcHHH@H"HHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$M1M11HH5 $H).#4HHtHpH}Dž||HH]UHHd$H}HuHUHH}1HWH]UHHd$H}HuUHEH}H,u E}EvHEHHE؃mHuH}A) EHUHEHHHEHǀH}8@ HuH}HEH}EH]UHHd$H}HuUMDEDMȋED$E$DMDEЋM؋UHuH}H]UHHd$H}HuEHEH}HtMH} HEHuH}E00( HUHEHHHUHEHEEH]UHHd$H}HuHUH}uEEH}HHEHuHEHEH}uEEH}HEHtiHUHuH} hH}tYH}iHtKHEU)HU+B@HUHE@U)HU+BDHUBE*EEHUE)HUE)BEEH]UHH$ H}HuUMLELME}u } H} H}H}"HEHy H}HEHc EEEHE@HEHE@LEHEHEHEHEH}HE4HE;4~4UHE@4E0;4~04EHE@4E0;4}04EHE@ 4E0;4}04EHcUHcEHH0HcEH(H;0~ H(H0pHcUHcEHH0HcEH(H;0~ H(H0tHcEHcUHH0HcEH(H;0} H(H0xHcUHcEHH0HcEH(H;0} H(H0|H}HE؋(p,;(~,(pHE؋@(t,;(~,(tHE؋@(x,;(},(xHE؋@ (|,;(},(|HcEH0HcpHcEH)H(HH;0~ H(H0EHcEH0HctHcEH)H(HH;0~ H(H0EHcEH0HcxHcUH)H(H;0} H(H0EHcEH0Hc|HcUH)H(H;0} H(H0EH}MH8H}}8H8x$~+H8@(HE;(}(U}~H8@$;E~ H8@$E}}?H8x ~2H8@(E,;(},(E}~H8@ ;E~ H8@ EHcUHcEHH0HcpH(H;0~ H(H0`HcEHcUHH0HctH(H;0~ H(H0dHcUHcEHH0HcxH(H;0} H(H0hHcEHcUHH0Hc|H(H;0} H(H0lH}HucHPHX\_XRHPHEMUHuH}{H}E a`;E~fHEH@HEHH`HH@HuH}0HEH(H}t}~HUH@HHHHBh;E}fHEH@HEHHh@H@HuH}0HEH(H}t}}HUH@HHHHBd;E~fHEH@HEHHdLH@HuH}0HEH(H}t}~HUH@HHHHBl;E}fHEH@HEHHlDH@HuH}0HEH(H}t}}HUH@HHHHB`;p~FHpH@HxHH`HH@HuH}0HEH(h;x}FHpH@HxHHh@H@HuH}0HEH(d;t~FHpH@HxHHdLH@HuH}0HEH(l;|HpH@HxHHlDH@HuH}0HEH(GE t;HUHuH}0HEH(HpHuH}0HEH(EEH]UHHd$H]H}HuHUHEH}Hu EHEHxt@HEH@HEH}1H} H;EuHuH}HEHH}uH}3 EHuH}CzHuH}HEH8HH}*HEHPH} HEH@H@(HEH}HEЋUԋuH}FH}3 H}趓EE"HH5H#EH]H]UHHd$H}HuHUHEHEH}H3+HuH}NHE@ tt.tetHuH}+ HEH}_& HEHEH@H;EHuH}lH}1 H}% HEHEH@ H;EuHEpHuH}sH}@0 H}1< JHEH@HEH}E% HtHUHuH}HEHH}1JHHEH]UHH$H}HEHEHUHuHHcHUuqH}b4HEH@@ EHHHc}X1HH}f>01H}RHU1H5H}5H}JR#H}3H}3HEHtH]UHHd$H}HuHUM1H]UHHd$H}HuUHMLEEE̋EEHEHEHEHEHEH}'HEHtb}t }cu#HUHuHHuH}HEHuH}_HEЃ}t }cuHUHuH HEH]UHHd$H}HuHUHExcu H}zCHE8u:HEHxt/HEHPHEHx1HEH@HHHEH@H]UHHd$H}HuHUHЁ8cu@HuH}HHEHEHu0H} yH}HuHH}谮H]UHHd$H}HuHEHUHHHEH}t-KHH}\tH}tH}AHEHEH]UHHd$H}HuUEHEH}Ht HE`EHEH`uEH]UHHd$H}HuUHE<EHEU<EH]UHHd$H}HuHuH}HEHHEHt xH4aHMH8t,wHu"H6H8tH#H8`HHH}teH}HEHtSHHEHH}@wH;EH́H8t&LEHH0H}1ɺHEHHEH]UHHd$H}uUHEHUHHHE؋MUHuH}HEHH]UHHd$H]H}HuUMHEHEHE܀}t58HH}_HHttUuH}Q;EEH]H]UHHd$H]H}HuUH}t9L8HH}HHt@uH};E EEEH]H]UHHd$H}HuHEHHEHEHH;Et8HSH817H;Eu 1?7 H}?7HEHUHHEH]UHHd$H]H}uU脉HlHNjMUH{EH]H]UHHd$H]H}HuHu HEHEHEH}HEHHEHEH}zHEHEH;ExHH}XH}HEHH=$t4HEHEHQRH8HuHH #H}@HE^}tXH}zHEH}@EtME)HEЋPxHuHHEH@0H-EiHH}Nt(L"HH5H #HEH@`HE_HH}hN "HH5aH #H}VHEhHH}&NtHEH@`HE^nHH}NtHEH@`HE;L\HH}Mt&H}wHEx"HH5fH #H}Et**EHEHp H*EHEHp(HEE H*HEHpHHHUHEB(\@ HXEHEZ@HEH/Ez sE HZEf/Ez sEEHEHpHHRHE@HH^HXHEHp@H#E*E$HEHp0HHEH@ HEHEH@0HEEf/Ez vEEHEHp0HHUHE@HH\ZEH/Ez sE HZJ(\MHEH@0HEEf/Ez sEEHEHp0H2EE|}t }lHUHMHE@HH\ZEH./Ez sE HZI(\f/J zw EuEHE@0H-E܀}|}r}tZE|\tt&QEH.˘H}1H51WS-UH ˘H}1H513S H};H}/rEH]H]UHHd$H}HuEHEf/EztHUHEHHE@H]UHHd$H}HuUMHUHuH}TE;EuE;EtHE@UuH}1H0HPHDžH H8_"H=pS0#Et)S.}tH}CH}u H}CHEHxPH}vSH}fbEăt H}Eăt H}DGEăH}_lH}G}H})}tH}ECH}7NHEHxPH}vH}aEăt H}tEăt H}kEă{H}Hm}t H}B\H}0QHEHxPH}utpHNjMUM11&8HEHuHtHvH}HuH=HxHH}m HxHMHH}H5Sd}E؃EEDmHEHcU !HyHcHH|HxH5ɈHH_HHLɈHHHHPHEHxH5ɈeHH(HHLɈHHNHHHHxH5ɈHHHHLɈHHHH3H7HxH5|ɈHHHHLɈHHHHKHHxH5eɈ`HHHHLhɈHHIHHHHxH5NɈ HHHHLQɈHHHH.HHpHHHpHfHHpHLHHpH2HHpHHHpH}"HEH҅HEHEEfDHEH8HEH8HEHHEHEHcU<uH}H5ź(HUHcEEHcUH}H5HMH[H}H5P`HUHcE;Eu@HUHcE4HH}-HEHcUEHcUH}H58EH}HHEH}H}t H}H}tHuHuH5H}H}1?E=n-tt"t3tDVHHpH}@HHpH}*HHpH}HHpH}HuHuH5cH}:H}HEHHEHt HuH}H}H}'H}EEnHH}HHtoEH]UHHd$H}u !HtHcHEaEXEOEFE=E4E+E"EEEEEH]UHHd$H}HuUHMLE}tH}HuA H}Hu2H]UHH$pH}HuUHDžxHUHuiHHHcHUuDHuHx"HxHuH5fHEHxUHEHǾlHxHEHt6nH]UHHd$H}HuUMDEEH}HxH}+^HH5!Ĉ|HEHtEEUE‰EHuH}EH]UHHd$H}uHUHHx(HEHpUHEP H]UHHd$H}HuUHMLELMH}@苯HE}/HEHUHEHHUHEHBHUHEHBHUHEHB HEHB(H=HMuH} HUBHEH@0HUHEHHB8HEHtHEHHUHP0HUHEHHEHEHEH]UHHd$H}HuHH8HEHxHEHHxSHEHHx0uHEHHUH@8HHEHHP0HEHH@8HB8HEHHx8tHEHHP8HEHH@0HB0HEH8/HEHH]UHHd$H}HuUH}t.HEx)HEHxHHMuHUBH]UHHd$H}HuHUHMH}t'EUAA)ЋME)HEHxPUuIH]UHHd$H}HuHUHMLEH}tb "HEHUHPHUHEHBHEHBLEH 7LMHuH}غHEHHUHHEHEHEH]UHHd$H}HuUEEuMEuMEuMHEHxHEHpUHEPH]UHHd$H}HuHH8t/HEH0H}HEH HEH82HEHH]UHHd$H}HuHUHMLEH}u HE0ūHEȋUHEHUHPHUHEHBHEHBHEH@ HUHEHHB(HEHtHEHHEHB HUHEHHEHEHEH]UHHd$H}HuHH8HEHHx uHEHHUH@(HHEHHP HEHH@(HB(HEHHx(tHEHHP(HEHH@ HB HEH8辪HEHH]UHH$H}HuHUMLEH}uHEHUHRhHEH}eHUHxcH@AHcHpHEH}1 #H}u H="HUHEHBX}|HEHxXH;E H="HE؋UPTH}u H=8c"HEHUHP`HE@lHEH}tH}tH}HEHpeHpHtlHXHbHD@HcHu#H}tHuH}HEHP`efeHHtggHEH]UHHd$H}HuH~HEHUHHHEH@XHEH18H}1H}tH}tH}HEHPpH]UHHd$H}HuHExhtHUHuH}dH}HEHEHUuH}HEHEH]UHH$`HhLpH}@uHDžxHEHUHuy`H>HcHUHE@h:EHUEBhHExhH}HEHÃ}EDEEgPH}HuHEHLeUH}HxHEHHxH}HEHLHH} H};]bHxH}HEHt7dHhLpH]UHHd$H]H}H@lH}HEHHUBxH}HEHHUBtHEHcptHHEHåHEHxXtRHE@xgX|CEfEHEHxXHHEHHcEHH4M1;]HE`lH]H]UHHd$H}HcGtHkHH?HHHH HUBtHEHcptHHEHH]UHHd$H}GxgPHEPtHEHcptHHEH蹤H]UHHd$H}HxP} HE@P HE@PH]UHHd$H}uHU}|HEHUHH;EH=fA"iHEHxXt^H}HEHHcEHH}H4HHEHc@THPHEHxXHuHMA1H}H]UHHd$H}NH=⪘HEHuH}HEHH}HEHXHE@hEHE@hHuH}HEHHEUPhH}HH}H]UHH$`H`LhH}HuHDžpHDžxHUHu\H.:HcHUHEH;Eu EH}u EH}HEHEH}HEH;Et EEgXEEEH}HxHEHLxUH}HpHEHHpLHtECuH}HEHIċuH}HEHI9tE ;]bE ^Hp]HxQHEHts_EH`LhH]UHHd$H}HH]UHHd$H}HH]UHH$HLH}HuHDžHUHuZH98HcHxHEH;EH}HuH=Sq>>tHEHUH@XH;BXu H="H}HE@hEHEH`H yYH7HcH(HuH=ܣ=HExht=H=ALHEHuH}HEHH}HEHXHEHEHuH}H}HEHHE@hH}HEHEgX|wEEEH}HEHIċUH}HHEHHH}HEHLX;] HuH}!b[HUE܈BhHEH;Et H}EDH}HHtHt\HDž[HgHxHt\HLH]UHHd$H}HuU|HEHUHH;EH=0S"H}HEHHcEHH}H4HHEHEHxXHHEPTHMHuA1~H}u H}1H}Hu1H}H]UHHd$H}u|HEHUHH;EH=w"HEjHEHxXu HEUH}HEHHcEHH}H4HHEHc@THPHEHxXHMHuA1HEH]UHHd$H}uHU}|HEHUHH;EH=&"pHEHxXteH}[HEHHcEHH}H4HHEPTHEHxXHMHuH )HuA1xH}H]UHHd$H}H@lt>HEHxXt HEHxXH15HUBp HE@pHE`lHE@pH]UHHd$H}HHx` teHEHx`a H^yHE@THEHxXHEHp`H=آ8t HEHxHEhTHEH@`H}uHEH1HE@tHE@xHE`lHE@pHE`lH]UHHd$H}uHE@lu%HEHHcEHH}H4HHEHxXHuЋM1HEHx`` HCxHEȃ@THEHxXHuHEȃhTH}HE@luHEhpHE@luKH}HEH;Eu5HEhxHEHc@tHH?HHHUHcRxH9~H}HEHlHEHp`H=P7t,HEHp`1H= HHEH@`H]UHH$`H}HuHUHDžhHUHxhRH0HcHpEEH}HEHEHcEHcUH)HH?HHHcUHЉE؉H}HhHEHHhHuH}HEHHEԅ~ E؃EE؃E܃}u EE؉EE;EqHUETHhHpHt&VEH]UHHd$H}HuEH}HExhtHUHuH}tuEHuH} EH}~EH]UHH$HH}uHUHDž HDž0HDžXHUHhPH.HcH`}|H}HEH;EHXֿH׭H8HcEH(H(HH({1H(H001H0IH0H@HHHH}HEH,H(HHc,G{1H(H R01H H HPH81ɺHX HX"HEHx`uH=/"H}H@HNH$-HcH8%HEHTHEHxXLEMuLsHuȋUA1H}HEHp`H=3ttNHEHEHxpt?HEH@pHxt0HEH@pH@HHEHH}uHEH}HEHuH}HEHHHHPHuHhcHhH@p"H@HXH㦈H`HHH}1ɺmH}"IH@#HhH}HpHt-KH]UHH$H}HuHUHMDEH}uHEHUHRhHEH}GHUHxFH/$HcHpHEH}1H}u H="HEHUHPPH}u H=5"HEHUHPXHU؊EB|HE؃HdH}HEH8HEH}tH}tH}HEH}HHpHtlHXH)EHQ#HcHu#H}tHuH}HEHP`%HIHHHtJJHEH]UHHd$H}HuH~HEHUHHH}HEHHHEHxp1FHEH@pHE@hHE@lH}1H}tH}tH}HEHPpH]UHHd$H}HuHEx`t:HuH}EH}HEHHUH}HEH,H}HEHEHUuH}HEHEH]UHHd$H}@uHE@`:Et%HUEB`HEx`tH}HEHPH]UHHd$H}>HHEHxPnHEHt?HEHt1HHEH?HUH;BPuHEHǀH]UHHd$H}uH}HEHPpHcEH4HuH}HEH0H]UHHd$H]H}HuHEH}H5䠈HTHEHPPH}H58HLH]UHHd$H}HuUH}HEHu H}1+"HEHuH}H}HuwH]UHHd$H}uHEEH}HEHtH}H5HEHEH]UHHd$H}uHUHEx`tHuH}u E;E~ mEEԋuH}HEHu H==0"H}tHEHuHhHE HDHEHuH}HEx`tE;EtUԋuH}HEHH]UHHd$H}u|HEHUHH;EH=䓈臿"H}HEH@pHcUHHEHEH]UHHd$H}uH}sHEHEx|tHEH@pH@pH@HHHE HEH@pHEHEH]UHHd$H}HHxPt$HEH@PHxptH}HE@hEEEH]UHHd$H}nH}HEHHHE@h|EE;EHEHdH}.HEHxPQuHEHxP:H}HEHHEHxP1HE@hHEHxX@e t7HEHpXH= htHEHxX'= HTH@`H}H]UHHd$H}uH}uH}[HEHc@hHHcUH9~=HEHcPhHHcEH)HHEH@pHcMH|HEH@pHcMH4)HEhhHE@lHU;Bh~)HE@lHUBlHEHcplHHEHxpuHEHxPuFHEH@PHxxt7HEH@PHxpu0HUHRPHRxH;uHEHxPH}HEHu H}OHEHxPEgPu(HEHdHEHpXH=qt!HEHpXH=mH}m8H]UHH$pH}HuHDžpHUHu-H' HcHxHEx`EH}HEHEEElfDHcEHcUHHEH}HpHEHHpH}mPE܅} EE}~ EEEE!E;E~EHuH}EL0Hp蠜HxHt1EH]UHH$@H}uHUHEHUHHEH}yHUHX,H HcHPHEx`tHuH}cE}|E;E~HHEHxXu H=#"HEx|HE11HEHH}^HEHH}E111GH}HuH=bHEHEH@XHx1uUHEH@XHxHuHH8AHEH@XHxHuHH8豵HuH}E111H}HuH=aHEH@pHEHEH@XHx31uUHEH@XHxHuHoH8AHEH@XHxHuHBH8 HuH}HEH0H}HE@l;EMHExluHE@lHE@lHUBlHE@l;E~HEHcplHHEHxp#qHE@hE;E}5HEHPpHcEHtHcUHcEH)HHEHHpHcEHHd$[SATAUIAL0{Et D1A;\$t`HcHI|$]I|$t.A;\$~;AT$gC9|.It$9~HHxEA\$El$A]A\[SATAUHAAgAt$HDEt"DHcҾHK 4‰4!AMcDHs#!A]A\[SHcWHHH|dLOAHd$A\[SATHd$HIHHHIHS(H{0L1议Hd$A\[H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8HHcHT$xuPHD$苕HH$H|$E01UHD$H|$tH|$tH|$HD$HtHD$xHtH$H$HDHcH$u'H|$tHt$H|$HD$HP` H$HtHD$H$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$ HT$ Ht$8]HHcHT$xu\HD$H$H|$1+HT$HB0HD$@8HD$H|$tH|$tH|$HD$HHD$xHtH$H$HHcH$u'H|$tHt$H|$HD$HP`BH$HtfHD$H$SH$H|$Ht$H$HDŽ$H|$uHD$HT$HRhHD$H|$HT$(Ht$@HHcH$HD$ H$H$HHcH$H<$vfD$ft\$zHH9ueHT$HB0HD$@8|$'HT$HB0HD$@8H4$H$DH$H|$1;H5LYH$H$HtHD$ H|$tH|$tH|$HD$HH$HtH$H$HHcH$u'H|$tHt$ H|$HD$HP` vH$HtT/HD$H$[SH$H|$ Ht$H$HL$DD$HDŽ$H|$uHD$ HT$ HRhHD$ H|$ HT$0Ht$HHHcH$HD$(H$H$xHHcH$u\H\$ |$tH|$KuC8C8HT$ HD$HB0H$H|$H$ H$H|$ 10H5AWH$H$HtHD$(H|$ tH|$tH|$ HD$ HH$HtH$H$~HHcH$u'H|$tHt$(H|$ HD$ HP`ukH$HtI$HD$ H$[H$H|$Ht$H$L$H|$uHD$HT$HRhHD$H|$ HT$(Ht$@HHcH$uTHD$ |$pHH$H|$A1ZHD$ H|$tH|$tH|$HD$HyH$HtH$H$HFHcH$u'H|$tHt$ H|$HD$HP` H$HtHD$H$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8]HHcHT$xuPHD$KHH$H|$E01HD$H|$tH|$tH|$HD$H$HD$xHtH$H$HHcH$u'H|$tHt$H|$HD$HP`NH$HtrHD$H$SH$H|$ Ht$H$HL$DD$HDŽ$H|$uHD$ HT$ HRhHD$ H|$ HT$0Ht$HHHcH$HD$(H$H$HHcH$u\H\$ |$tH|$苒uC8C8HT$ HD$HB0H$H|$H$ H$H|$ 1pH5RH$H$HtHD$ H$SATHd$HIM~ HHH{(H{(H1HtMt HHPpHd$A\[H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8-HUHcHT$xuBHD$HT$H$HBHD$H|$tH|$tH|$HD$HHD$xHtH$H$HұHcH$u'H|$tHt$H|$HD$HP`,H$HtuPHD$H$SATHd$HIM~ HH{t H{"H1HtMt HHPpHd$A\[H$H|$Ht$H$L$H|$uHD$HT$HRhHD$H|$HT$(Ht$@H豰HcH$ucHD$ H|$1HD$H$HPHD$T$P HD$@$HD$ H|$tH|$tH|$HD$H:H$HtH$H$HHcH$u'H|$tHt$ H|$HD$HP`aH$HtHD$H$SATHd$HIM~ HH{ u H{RH1HtMt HHPpHd$A\[SATHd$HHˀx$tA(HuA HxH@HHtE1DHd$A\[SATHd$HHˀx$tA(HuA HxH@HHtE1DHd$A\[SATAUAVAWIHIA~$t Azt t"t;WI~H1IFHIDI~H޺IFHI&I~H޺IFHIA MtM/E1DA_A^A]A\[H$(H|$H4$HD$x$t D$HT$Ht$0H諭HcHT$pu'HD$HxH4$HD$H@HD$sHD$pHtRHT$xH$"HJHcH$uD$@.H$Ht D$H$SATAUAVAWH$IH4$HIMH<$足H$H$(H贬HcH$hA~$t AI$IuHv D$\$I~T$Ht$ IFHD$IHL$Ht$ T$H<$H$HP D$I$|$uA@D$H)HwE1H豲H$hHtoDH$pA_A^A]A\[$t1G$1SATAUHI{$tALsAMt7L1ҾP莶AD$H{HCHID$AD$4E1ADA]A\[Hd$H$tHd$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8]H腪HcHT$xuGHD$HD$HxH4$^HD$H|$tH|$tH|$HD$H-HD$xHtH$H$HHcH$u'H|$tHt$H|$HD$HP`WH$Ht{HD$H$SHd$HH{HHCHPHHH($Hd$[SHd$HH{HHCHP(HHH(H$Hd$[SHd$HH{HHCHP HHH($Hd$[Hd$HHHp輯Hd$UHHd$H]LeLmHAH.H=:Ø=IEeH5HL4H]LeLmH]SATHd$HHAAwAHWH4H9HA1"DHd$A\[SHHsH{HCHHKHcC CCC-[Hd$HHHHcP<uHHd$SHd$HHD$`HHt$HSHcC.t0 r t5tHCHcSCrt rts HCHcSC$CHC,C$MH|$x1H|$p1HD$XHtH$A\[SATHd$HH{0H5j&1CH)E0@AHEHuEu)HC0HD$H$ HHљHpH1C,Hd$A\[SATHd$HIHD$`HHt$'HOHcHT$XL11CHiHCHcSt, t,t,t,DH$љHpH/HљHpHCHHCHcS<'uH$HD$pH.HD$xHt$`L1ɺ#"H;H$賠H$L1)H$oH$bHD$XHt胴H$A\[HGSH$HHH8H6HH1I)H$[SATHd$HAHjƃ~ A9tHCHx D~H@Hd$A\[Hd$@0Hd$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8蝮HŌHcHT$xuXHD$H|$14H4$H|$HD$HHD$H|$tH|$tH|$HD$H\HD$xHtH$H$H,HcH$u'H|$tHt$H|$HD$HP`膲H$Htϳ誳HD$H$SATHd$HIM~ HHH1HH1HtMt HHPpHd$A\[H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$ HT$ Ht$8ݬHHcHT$xuZHD$H|$1tHD$H$HPHD$@HD$H|$tH|$tH|$HD$H蚯HD$xHtH$H$BHjHcH$u'H|$tHt$H|$HD$HP`9İ/H$Ht HD$H$Hd$wHHd$SHCH{/;C[Hd$HHd$HG @SH$H<$HDŽ$HT$ Ht$83H[HcHT$xkH$Hx01 H<$H$HHD$H=HD$H8耛H'Ht$H|$D$H$H$說H҈HcH$D$gXD$D$HT$D$HHHu1H8u[H$HHL$D$H4H|$(H;$u7HD$T$HHp+1H$#H$H$Hx01;\$uH|$&H$HtHt~HDŽ$۬H$.HD$xHtOH$[SATHd$HIHs0LfHHI<$u*Ht%H8HtHHHs0L)Hd$A\[SATHd$HIH{LvtEH{ LI\$C,AD$ C,LHHLH1H HMHd$A\[SATHd$HIHߺH H{ Lƃt H{ ID$HHd$A\[1Hd$HH1.Hd$SHHHx n HHH[Hd$HH= Hd$SATAUH$pIIHDŽ$HDŽ$HD$`HHt$芧H貅HcHT$XLI$HHtuLHt$`H|$`t`HH$HH$HD$hH@ HD$pLH$H$HD$xHt$hL1ɺ#I<$H$臗H$L1 H$CH$6H|$`,HD$XHtMH$A]A\[Hd$Hx(uH1HHd$Hd$H Hd$SHHHx p HHH[HHd$HHHH1(Hd$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8mH蕃HcHT$xuhHD$H|$1HD$H$HPH=KHT$HB HD$H|$tH|$tH|$HD$HHD$xHtH$H$ĤHHcH$u'H|$tHt$H|$HD$HP`軧F豧H$Ht菪jHD$H$Hd$H|$H4$H~HD$HT$HHHD$@(HT$Ht$(H/HcHT$huHD$Hx t H|$=HD$@(HD$hHt}HD$Hx ߏH|$1H|$tH<$tH|$HD$HPpHd$xHd$HHxH¾H@Hd$SATHd$H|$H4$HH=H荇H|$HD$H(HT$Ht$0HHcHT$pu_H|$H<$WÃ|CD$fDD$H|$1Iċt$H<$QHLI$;\$覥H|$HD$H0HD$pHtH4$H|$Hd$xA\[H@(Hd$H<$HG xtgH<$H$H(HT$Ht$ HHcHT$`u H<$+H<$H$H0HD$`HtfHd$hSHfH{ H跍HC x[Hd$Hx(~h(x(uHHd$SATAUAVAWIAIF @Å|'AAI~ DhIE;} tD9M1LA_A^A]A\[SATHd$HH{ ,ILHߺH L݌Hd$A\[SATHd$!IĉLI$LHd$A\[SATHd$HIH{tS{(uMt tt,=LHHߺ蒺(LHHߺ}LHHߺhHd$A\[Hd$H|$H4$HD$HT$HH(HT$Ht$(踟H}HcHT$huHD$Hx H4$R 轢H|$HD$H0HD$hHt+Hd$xSHH{ S{(uHH11螹[SHHHH[H$H|$Ht$H$HL$H|$uHD$HT$HRhHD$H|$HT$(Ht$@踞H|HcH$uSHD$ HD$H$HP8HT$H|$1HD$ H|$tH|$tH|$HD$HyH$HtH$H$HF|HcH$u'H|$tHt$ H|$HD$HP`蠢 H$HtģHD$H$HG8H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$ HT$ Ht$8MHu{HcHT$xuZHD$H|$1HD$H$HPHD$@HD$H|$tH|$tH|$HD$H HD$xHtH$H$貜HzHcH$u'H|$tHt$H|$HD$HP`詟4蟟H$Ht}XHD$H$Hd$wHHd$GHG@;GHd$HH8HcHyHpHd$Hd$H|;P|H8HcH@HpGHd$SATHd$HAHHCE!JHd$A\[SATAUHAIDHHHCE!N,A]A\[SATHd$IHLJƅ| L<1HHd$A\[SATHd$HAD;c| A~H;IcH&HpmD;ctIcHH{DcHd$A\[SATHd$HAE| A~H;IcH礙HpD;c~7D;c~ DHWD;c~ HcCIcH)HHCSH<1豄DcHd$A\[SATHd$HIM~ HHHH1߅HtMt HHPpHd$A\[SATAUAVHd$HIHcSIcD$HHcSH9~CAT$g4HAD$gDhE|%AADLHHE9Hd$A^A]A\[SATHd$HIC;CuHHCSL$ЋCCHd$A\[SHH{tH1[H1HC[SATHd$HAHHkHcSIcH)HHKIcH|HCE!J4ymC=~;C~kHcsHH{CHd$A\[UHHd$HHUHEHEHEHMHM1H=ŗeHHHtHUHHtHuH]SATAUIAՉLDLIT$H ID$!DHHID$E!J A]A\[SATHd$HC;C}IZ{~8{~ C%{~ C{~Cg4H1ILHd$A\[Su1 1nHH[Hd$HH=ӗGHd$1O9~ LGI;4u9SATHd$HIu LH$S | HKL;$uHd$A\[SATAUHAIE|D;c~H;IcHʠHpC;CuHD;c}*HcSIcH)HHKIcHtHKDHLLH.LLHELLHLLH5A]A\[H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$ HT$ Ht$8݊HiHcHT$xuZHD$H|$1tuHD$H$HPHD$@HD$H|$tH|$tH|$HD$H蚍HD$xHtH$H$BHjhHcH$u'H|$tHt$H|$HD$HP`9Ď/H$Ht HD$H$Hd$wH/Hd$SHCH{;C[Hd$HHd$HSATAUAVHd$HAIDHIH{LDMtLHߺHMtLH1HHd$A^A]A\[SATAUHHCD`H{IHCD;`tLHߺHLA]A\[SATHd$HIH{tMt tt,=LHHߺX(LHHߺCLHHߺ.Hd$A\[HG@Hd$HHxHd$HG@SATHd$HAHCD;`}'fDHC@gpH-HCD;`| H{DHd$A\[H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0DHleHcHT$puZHD$H|$1qH=/×qHT$HBHD$H|$tH<$tH|$HD$HHD$pHtpHT$xH$谆HdHcH$u&H<$tHt$H|$HD$HP`訉3螉H$Ht|WHD$H$SATHd$HIM~ HHH{t HHH{tHH1ɺH{pH{pH1qHtMt HHPpHd$A\[UHH$HLHIHULH5}uXI<$HvHHEHEHMHHPM1H=s{HH5H!H{uH=.oHCH{HuHLH]UHH$HLHIHULH5|uXI<$HIuHHEHEHMHKHPM1H=踗zHH5HQH{t H{Hu=HCxu H{:oHLH]SATAUAVAWHd$IH4$AII}t@IE@|2AAAI}D(HLDH4$HHEHd$A_A^A]A\[SATAUHIH{L)AMtLH1HDA]A\[SATAUAVHd$HIIt$H{`L(AAE|AAfDADLqHtDLaHH1HE9Hd$A^A]A\[SHfHƃHHCx[SATAUHAH{DIH{DMtLHߺHA]A\[UHHd$HHUHEHEHEHMHM1H=ExHHHtHUHHtHuH]SHH{HH11[SHH{H[Hd$HrHd$Hd$HH=7Hd$Hd$HrHd$SATHd$HIH{LMtLH1HHd$A\[Hd$H"Hd$Hd$HHxHd$SATHd$HPAAt DH DHd$A\[Hd$HHxHd$Hd$HHxHd$SATAUAVHd$HIHHL*AAE|%AADLyHHnE9Hd$A^A]A\[SATAUAVHd$HILAAE|CA@ADLHH6}DLHHE9Hd$A^A]A\[SATHd$HIHHt H LHHd$A\[H$xH|$H4$HT$HtH$Ht$HH|HT$ Ht$8~H]HcHT$xu6H=#HD$Ht$H|$OHT$H4$H.蹁H|$jHD$xHt0H$SATAUAVHd$H<$HIH$HxH$H@HH)AAE|KAADHqHL}DHWHH$HxGE9Hd$A^A]A\[SATAUAVAWIIHHtdLILAEAADLHH|DLHLE9KL=|LLHu.LLHLLHLLH%A]A\[HGH@H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0xHVHcHT$putHD$H|$1+cHD$@HD$HxQH=5HT$HBHD$H|$tH<$tH|$HD$H7{HD$pHtpHT$xH$wHVHcH$u&H<$tHt$H|$HD$HP`zi|zH$Ht}}HD$H$Hd$H|$H4$H~HD$HT$HHH|$HT$Ht$()wHQUHcHT$huHD$Hx7cH|$1b&zH|$LHD$HxHD$hHt{H|$tH<$tH|$HD$HPpHd$xHd$H|$H4$H|$HHT$Ht$(tvHTHcHT$hnHD$xtHD$HxH4$uHD$HxH4$8HD$xu-HD$H@H8H$HTvHpHD$H@HyH|$?HD$hHtzHd$xHd$H<$rHT$Ht$ uHSHcHT$`uH$HxH$H@HxH<$HD$`HtzHd$hSH_HrH[Hd$H|$H4$H|$HT$Ht$(tHSHcHT$huHD$HxH4$wH|$HD$hHtpyHd$xHd$HHxHd$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$ HT$ Ht$8-tHURHcHT$xuZHD$H|$1^HD$H$HPHD$@HD$H|$tH|$tH|$HD$HvHD$xHtH$H$sHQHcH$u'H|$tHt$H|$HD$HP`vxvH$Ht]y8yHD$H$Hd$HPHxH@HHd$SHCH{HCH;C[SATAUAVAWH$pH$IIHD$`HHt$rHPHcHT$XE1H$L[LMtH@AA|P1@AHcAt1H|$`dH|$`LHuIcH$LAA9L|$hH$HHD$pL|$xHt$hH$1ɺtH|$`DHD$XHtevH$A_A^A]A\[Hd$Hx,u,@."@/,@0=HP@@,HxHH5ևVHd$Hd$6Hd$Hd$H@@H!Hd$SHwC@[SATHd$HAHHWDc@Hd$A\[SATHd$HAHH'Dc/Hd$A\[SATHd$HIH{ tH{ u H{ \Lm tLc MtLI$HC HC Hd$A\[SHC/[SATHd$HIHHwH{HLHd$A\[SATHd$HIHHGHsHLHd$A\[SATHd$HAHHDc.Hd$A\[SHC.[SATHd$HAHHDc0Hd$A\[SHC0[H$xH<$Ht$H<$H<$D$H<$D$H<$sD$H<$,!H<$"#H<$@0'HT$ Ht$8nHLHcHT$xuHt$H<$qt$H<$t$H<$@t$H<$HD$xHt#sH$SATHd$HIHHH{HH5ӇHtHsHLDC@t tt$1LH5_Ӈ LH5nӇLH5}ӇHd$A\[SH'C([SATAUAVAWH$H$H$HD$ HDŽ$HDŽ$HT$(Ht$@ZmHKHcH$H$H$1#H$tkH$H$eй H$H=҇mH$ H$HmHH$HiH$jH$й H$H=C҇NmH$ H$H1mHH$HH$H$HAEAADHt$ H$H$HH$Dh-Eu]HD$ HuHyI@IA$$sHD$ H$HuHHH$HtHRHL9AEtnH$t]H$1H$H$Ht$ H$nH$H$H0H$1<H$H0H$HT$ 1IcH$H$HHcHH9}AH$1H$H$H$H0H$1E9iH$HHtH@HH$H$HH$H$%HHf$H$H$^%HHf$H$H$Hl\H$H$1ulH$#H$H|$ H$Ht*nH$A_A^A]A\[UHH$`H`LhLpLxL}HAIII$IEHEHUHuhHGHcHUL1H5DHHuHHuL{0IuAƅt-IcHIuLIcLuC(xtt!t(geIuL6L1,ML1 AD}HEHMHHPM1H=L/^HH5HikH}_HEHtlH`LhLpLxL}H]SATAUHIIH{0LHtHcHLL L1?A]A\[SH$H|$H4$HT$HL$HD$ HT$(Ht$@fHEHcH$H|$r5HHH$H$fHDHcH$uG9Ht$ HcH|$Ht$ $tHt$ H|$HD$HPHbuyiHHP`H$HtjTiH|$ H$HtjH$[SH$ H|$H4$HT$HD$HT$ Ht$8eHCHcHT$xH|$:4HHH$H$teHCHcH$u+Ht$H+H|$Ht$$HFu]hHHP`H$Hti8hH|$HD$xHtiH$[SATAUAVAWHd$IIHHD$`HHt$dHBHcHT$XuOLIAE|8ADADLHt$`IHt$`HDLE9vgH|$`HD$XHthHd$pA_A^A]A\[SATAUAVAWHd$IHt$hIHD$`HHt$cHBHcHT$XudLIAE|MAADLIHDLHt$`IHt$`LDHD$hHE9fH|$`HD$XHthHd$pA_A^A]A\[H$H|$H4$HT$HD$H8(#HD$HT$ Ht$8bHAHcHT$xuHL$HT$H4$H|$eHD$xHtaH$H$bH@HcH$uH|$Me/geH$HtxhShHD$H$SATAUAVHd$HIAAE}HHAHHD9HHAE9|AALDHH E9Hd$A^A]A\[SH$H|$H4$HT$HL$HD$ HDŽ$HT$(Ht$@{aH?HcH$H|$/HHH$H$0aHX?HcH$uRDHt$ HH|$HT$ H$$H$H|$HD$HPHucHHP`H$HtbecH$ H|$ H$Ht4eH$[H$H|$H4$HT$HD$H8X HD$HT$ Ht$8`HG>HcHT$xuHL$HT$H4$H|$3cHD$xHtaH$H$_H=HcH$uH|$Jb_dbH$HteeHD$H$SH$H|$Ht$ H$HL$LD$HD$(HDŽ$HT$0Ht$H&_HN=HcH$H|$ Ht$H|$-HHH$H$^HHHcH$u&H<$tHt$H|$HD$HP`AmCAH$HtDDHD$H$SATAUHIHHAHHLHHDA]A\[UHH$pHxLeLmLuHIIIHEHUHu=H#HcHUu$LLLH}vHuHHP@H}FHEHthBHxLeLmLuH]SATAUHIHHPALDHH(DA]A\[UHH$PHXL`LhLpLxH}IHUHLEHELsIILILLLLmHEHUHu1H$輵H$HD$pH\$xHt$h1ɺH|$`Ht$`LLIXk>H$辪H|$`贪HD$XHt?LH$A_A^A]A\[Hd$HPHd$SATH$H|$H4$T$HDŽ$HT$ Ht$8:HHcHT$xH|$H$H$l:HHcH$#|$tH|$HD$HH|$HD$HHcH<$H$HHcHH|$HD$HHcH9~=H|$HD$HH<$H$Hg4H|$HD$H0H<$H$HÃ|jD$D$D$H<$H$HIċT$H<$H$H$HH$H|$HD$HLX;\$YHcHT$XE0H|$pHD$pHLI9uhgDkE|[AfDADLHt$`IH\$`DH|$pHt$hHD$pHH|$hHHuE9A6H|$hH|$`HD$XHt8DH$A_A^A]A\[H$H|$4$T$HD$ HDŽ$HT$(Ht$@2HHcH$;H|$H$H$2HHcH$4$H|$HD$HHD$$Ht$ H|$HD$Ht$H|$HD$HH‹4$H|$HD$H(T$H|$H$HD$HH$4$H|$HD$H HT$t$H|$HD$H(HT$ t$H|$HD$H 4H|$H$Ht]64H$H|$ H$Ht/6H$Hd$HH=l~ǼHd$SHd$HHD$`HHt$1HDHcHT$Xu*HHt$`HH|$`HuH=g衐H 4H|$`_HD$XHt5HHd$p[SATAUIItLLSHcHLLLHcHHA]A\[SATAUHd$HIHD$`HHt$50H]HcHT$XubE1@AHHD9~-DHHt$`HHt$`LHHHHuHHD9uA2H|$`@HD$XHta4DHd$pA]A\[SATAUHd$IIHD$`HHt$c/H HcHT$Xs}LI$Å}1LI$9~.LHt$`I$Ht$`LLI$HHuLI$9u2H|$`YHD$XHtz3Hd$pA]A\[SATAUAVHd$HIH$HD$hHT$Ht$ i.H HcHT$`H蹼E1g@DHHH{0H4$lHAE|/IcH4$H|$hJHT$hLHHHHtAHHD9A0H|$hGH?HD$`Ht`2DHd$xA^A]A\[SATAUHIE1AHHD9~DHHL9uHHD9uADA]A\[SATAUHAIDHHHLDHH(A]A\[SATHd$HIHHƒLHHHd$A\[SATAUAVHd$IIHD$`HHt$,H HcHT$X~}LI$Å}1LcLI$HcHI9|LI$|.LHt$`I$Ht$`LLI$HHu/H|$`lHD$XHt0Hd$hA^A]A\[Hd$0Hd$H$xH|$H4$T$H$ H=.H~1HD$HT$ Ht$8E+Hm HcHT$xuT$Ht$H|$I.H|$?HD$xHt/H$H$xH|$H4$HT$H$ H=H0HD$HT$ Ht$8*HHcHT$xuHT$Ht$H|$HD$H-H|$HD$xHt/H$Hd$0Hd$H$H|$H4$T$HD$HT$8Ht$P)HHcH${|$uH4$H|$1HD$HVH|$H$H$)HHcH$H|$1cHD$ D$,fD$, D$0Hct$0Ht$ H|$1迩H|$EHT$ HHtT$0H<$H$HD$(HcD$0HD$ |$,?}d$,D$(;D$0tHcD$0HT$ H)HcD$(H4H|$1JHt$H|$HD$H8H|$11$+H|$H$Ht3-HD$@Dt H|$@0+H|$ٗH$Ht,H$H$H|$H4$HT$HD$HD$ HT$@Ht$X'H HcH$%H|$H$H$'HHcH$HDŽ$H5H$H|$HD$(D$4D$4 D$8HcD$8HD$(H$H5lH$H|$MHD$HT$(H4T$8H<$H$HD$0HcD$8HD$(|$4?}d$4D$0;D$8xHcD$8HT$(H)HcD$0HH$H5䖘H$H|$HD$HPHt$H|$D$HLHHPt(t3t*H!HpH1L4$HHH@$Hd$A\[SHxXt'HHH8H01+HH0[SATHd$HAHHGHH8HSPDHH<1襃tHSPDHH|kXD;cX}2HcSXIcH)HHKPIcHH|HCPE!IJ4 +HH0Hd$A\[SATAUHAADHHDHHH8HSPDHH HSPDHH|HCPDHDHH40H4HCPE!IDHHTJT HSPDHH HCPE!IJ|(HH0A]A\[Hd$H|$@4$HD$:$HT$$HD$ugHD$ƀHT$Ht$(H:HcHT$huH|$HD$HXHD$ƀHD$hHtHd$xSATHd$HAD;tAu HHXDHd$A\[Hd$H|;PX|H HqHHd$SATAUAVHd$IIIA$t2L(tLL3HcHCLL,HcH0LtLL3HcHLLD-HcHHHd$A^A]A\[UHHd$H]LeLmLuL}IHuHUEHELu.H)HPH==BHH5H@E1LIEAcIcIcH)HH?HHHЉIUPHHHuLIEHIM~gDsgD{MuEADEE9}HED0EH]LeLmLuL}H]SATHd$HIHuLH $HLHHPu$$Hd$A\[SATAUHAIՃuH#HpH1D3E|D;cX~DH}HpH!LDHH@A]A\[SATHd$HI{X~>u t,HH8CXgPLH1zHH0Hd$A\[Hd$HHHP!HHHHP!HH41HHHHd$Hd$HH5HH`Hd$Hd$HPhHd$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$ HT$ Ht$8} HHcHT$xu^HD$H|$@1 HD$@HT$H$HBhHD$H|$tH|$tH|$HD$H6HD$xHtH$H$ HHcH$u'H|$tHt$H|$HD$HP``H$HtHD$H$HSH$ H|$H4$HuHD$HT$HRhHD$H|$hHT$Ht$0 H;HcHT$pHD$HD$@8H|$@016 H=芖HHT$xH$ HHcH$u Ht$HH=pۖH$Ht)HD$H|$tH<$tH|$HD$HiHD$pHtpHT$xH$ H@HcH$u&H<$tHt$H|$HD$HP`H$HtHD$H$[SHd$H|$H4$H~HD$HT$HHH|$1j =udH=Z%HHT$Ht$(N HvHcHT$hu Ht$H=X H=|HD$hHtH|$tH<$tH|$HD$HPpHd$p[H$(H<$HT$Ht$0 HHcHT$puBH$xu8HOHHt =HH$HH<$H$H HD$pHtWHT$xH$D HlHcH$u H$HB0K H$Ht)H$@D$H$Hc@HD$H$@H<$H$H|$t H<$|$:iHD$H$镗H$H<$H|$HT$ Ht$8kHHcHT$xHD$xXtrHD$HxPlHD$xHD$xHD$@XHNHHt =H HT$HH|$HD$HUHD$@\HD$HxPlHMHHt =HHT$HH|$HD$H HD$xHH=W HH$H$H$7H_HcH$u/{HT$HB0H$H=snt HD$@ H$Ht  HD$Hc@HD$HD$@D$H|$HD$HHD$@|$tH|$|$fHD$H$UHHd$H]LeLmHAI-jHCPE%؉CC`DcXHC0E%؉C\HSHH=~LHfHCHu*HlH='pHH5HH]LeLmH]UHHd$H]HH{PH{uH{PigH;CHu<{u0{u*HkH=nqAHH5H?C9C{`u/Hg{\uCX%tHH`H{PhH{0HC0H]H]SHC @8t@t HH[UHHd$H]H+fH;CHu-{uQH{%t5H{Ph*HkH=n0HH5H.H]H]SH{\t%H{\1%t H{Ph({t"H{1p%t H{Pg[Hd$H@HHHd$SH7eHH;u d.{tH{1dC`[Hd$HHx(HP Hd$Hd$HHx tH5HHHd$Hd$Hd¸fDH=D;DrHd$Hd$HHx!H4dHd$H$H|$Ht$$HL$H|$uHD$HT$HRhHD$H|$4HT$(Ht$@IHqHcH${HD$ H|$1H=}HD$x8tcHT$HBHHT$@4$H|$oHD$ H|$tH|$tH|$HD$HH$HtH$H$HHcH$u'H|$tHt$ H|$HD$HP`zpH$HtN)HD$H$SATHd$HIM~ HH{8uH3H{t H{aHK HH=u H=\bH1HtMt HHPpHd$A\[Hd$VHd$ËG HSHw{8u{XuH[Hd$HH8tHxHd$UHHd$H}@uaHCH;%v}%u HɊ8uZHUHuHHcHUu H}fHEHx(u H}FHEHt/HEH@HEHEHx(EH=aHUHu3H[HcHUu1H=tHHEHB0 HEHHEHH=^aHEHtH=IbHH8tHHxHuH}t/HEHx(bHEHx tHEHx H5HjH]SHH{@u>8[EHC@H1Ҿ8(HC@HXHS@HCHHBaHS@HB([SHH{@tHC@Hx(aH{@EHC@[SH$pH|$H4$HT$HL$H<$tH$T_H;CHuH$HD$(HCHHt =HH8t*HCHHt =uHrHHD$(CHD$(8MDHD$ H1Ҿ8^HT$ HB`HT$ HB(H|$(tH|$(HD$(H@@HD$ HD$ H@ HT$ HD$HHD$HBHT$0Ht$HHHcH$u H|$ @0HD$ 1HHHHD$ H@0H|$(uHD$ Hx(X`H|$ ~CH$HtH$[Hd$HHHHH=`e3Hd$Hd$HH$HH=^HT$Ht$ HHcHT$`u7H<H$HtH,H@0H!H=u HH= ]HD$`HtH$Hd$hUHH$ }EH68\HqH;tN\HEHEHEHEHMHhHPM1H=%e HH5H}~uH=>9_ H=0^HEDHEHUHu~HHcHUu H}2HEHtRHhH(HD$HD$(HD$H@0HD$H|$ H=}HYH$HtvH$Hd$HHH1;Hd$Hd$H11HHd$UHHd$H]H\<HHt =NHKH8u.H HPH=6aHH5HH<HHt =HH@H]H]UHHd$H]H;HHt =HH8u.H$ HPH=`oHH5HmHv;HHt =hHeHXH]H]UHHd$H]LeHHu.H`HPH=HH5HHھH=kH]LeH]SHd$H<$HH<$蚆HT$Ht$ HHcHT$`u H4$HVVHHD$`HtHd$p[SHd$H<$HH<$ dHT$Ht$ &HNHcHT$`u H4$HU1HcHD$`HtHd$p[Hd$THd$Hd$v3Hd$Ãr19wHd$1Ҿ Hd$Hd$LHd$Hd$ Hd$H$H|$(Ht$ H$HL$LD$LL$H|$ uHD$(HT$(HRhHD$(H|$(.HT$8Ht$PH&HcH$uHD$0HT$(H$HBhHD$HBpHT$(HD$HB HD$HB(H|$(@01HD$0H|$(tH|$ tH|$(HD$(HH$HtH$H$>HfHcH$u'H|$ tHt$0H|$(HD$(HP`5+H$Ht HD$(H$Hd$H@HxpPhHd$UHH$H}HuHUHMLELMH}uHEHUHRhHEH}>HUHpSH{HcHhHEHUHEHBhHEHBpHUHEHB HEHB(HUHEHHEHHEHxx1`H}й@01.HEH}tH}tH}HEHHhHtlHPH~HHcHu#H}tHuH}HEHP`zpHHtO*HEH]Hd$H@HxpH5HPhHd$SATHd$HIHsxLVoHt(H{xL_HtH5HHyHd$A\[Hd$HHHPxHHd$H$H|$ Ht$H$HL$LD$H|$uHD$ HT$ HRhHD$ H|$ JHT$0Ht$HH;HcH$HD$(HT$ H$HBhHT$ HD$HBpHT$ HD$HBxHD$ HxptHD$ HHP H@(H|$ @01HD$(H|$ tH|$tH|$ HD$ HH$HtH$H$7H_HcH$u'H|$tHt$(H|$ HD$ HP`.$H$HtHD$ H$Hd$H@HxxPhHd$Hd$HHHxptHpxPpHd$H$H|$(Ht$ H$HL$LD$LL$H|$ uHD$(HT$(HRhHD$(H|$(nHT$8Ht$PHFHcH$HD$0HD$(H$HPhHD$(HT$HPpHT$(HD$HHD$(HxptHT$(HHB HR(HT$(HD$HHD$(Hxx1\H|$(@01HD$0H|$(tH|$ tH|$(HD$(HyH$HtH$H$HFHcH$u'H|$ tHt$0H|$(HD$(HP` H$HtHD$(H$Hd$H@H5HHPhHd$SATHd$HIHsxLjHt(H{xLU[HtH5HH Hd$A\[Hd$HHPxHHHd$Hd$HHHxpt HPpHd$Hd$IIHHH=cNHd$Hd$HIHH=eHd$UHHd$H]LeLmLuL}IIHIMLMHu.HHPH=dTHH5H HEHD$L$$MILLH=c3HEH]LeLmLuL}H]UHHd$H]LeLmLuL}IHIIHu.HHPH=SfHH5HdMILLH=deH]LeLmLuL}H]UHH$HLHIHEHUHuHHcHUMt$I<$HjHH}1xbH}H5 PXHEHEHDžx H;H$HHEHEHxHߘHPAH=xHH5H&QH}WHEHtHLH]Hd$HHHHd$H1SATHd$HIM~ HHH{tHH1ɺH{H1UHtMt HHPpHd$A\[UHH$HLHIHULH5:LMuXI<$HHHEHEHMHHPM1H=HHH5HH{uH="YHCH{Hu8MHLH]UHH$HLHIHULH5jK}uXI<$HHHEHEHMHHPM1H=x3HH5HH{t H{HuPHCxu H{HLH]SATAUAVAWIAHItAIG@|3AAfAIDIIHDLLIEEA_A^A]A\[SHHHtHHH H1[SATH$HIH$HT$Ht$ HHcHT$`uH;Ht$h^Ht$hL1o^HHHtHHHHH<$t2H$HD$hHIHD$pI$HD$xHt$hL1ɺXqHSHD$`HtH$hA\[SATHd$H0HHIHt,HHHHVKH0HLKHPLHd$A\[Hd$HHxtHxH@HPHd$Hd$HHxtHxH@HPHd$Hd$HHH0HP t1@Hd$H$H|$Ht$H$HL$H|$uHD$HT$HRhHD$H|$HT$(Ht$@HHcH$ufHD$ H|$1\HT$H$HBHT$HD$HBH|$WHD$ H|$tH|$tH|$HD$HvH$HtH$H$HCHcH$u'H|$tHt$ H|$HD$HP`H$HtHD$H$SATHd$HIM~ HHH{tHsH{HCHH-H1SHtMt HHPpHd$A\[Hd$HH@Hx7Hd$Hd$HHxtHxtHpHxH@HHd$HW1HRHuH$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8mH蕾HcHT$xuBHD$HT$H$HBHD$H|$tH|$tH|$HD$HBHD$xHtH$H$HHcH$u'H|$tHt$H|$HD$HP`lH$HtHD$H$SATHd$HIM~ HHH)H1?HtMt HHPpHd$A\[SATHd$HLc%LcMd$HCH@H{ MuHd$A\[SHH{HSHPHC[SATHd$HLg Md$MtLHHuHd$A\[Hd$HHHtIHxtBH;xu HOHH)HHHIHAHtH9uH;yuHGHAtWHd$Hd$H<$HD$H=7B@HT$Ht$(HHcHT$huGH=t=HH@HD$fDHD$H@HD$H|$tHD$H@H;$uH=@HD$hHt3HD$Hd$xHd$H<$2HD$HH=mx?HT$Ht$($HLHcHT$hu\H=(u'H^H=[H[HH=HH=^dHD$HH$HBH=ؔ#?HD$hHtTHD$Hd$xH$8H<$H=>HT$Ht$ TH|HcHT$`u]HT$hH$)HQHcH$uH4$H='B-HH$HtH=R>HD$`HtH$Hd$H=ÓH֒HH̒HHHR(HHt$nH薹HcHT$XuH=_ HlHuH8HkHHP0HD$XHtHd$hHd$HHH= tH¾H=`GHOHd$Hd$HHIH=ʒtH¾H=IaH Hd$Hd$HHIH=tH¾H= bHHd$Hd$HHH=MtH¾H=^ HHd$HSATAUAVHd$HIH{ uXIHAt)Hs(L[aIHAtHsLLXDHd$A^A]A\[HtH;wu0HGSATHd$HIM~ HHH{hH1HtMt HHPpHd$A\[SATAUHd$HIIH $LD$H<$HH|$HHT$Ht$(HHcHT$huiH{u$HXH=WHWHCH{HH=kXHH{ H4$fHH{(Ht$XHLkLc{HGH|$GHD$hHtHHd$pA]A\[1HtHWHBSATAUHI2fDL`IHsLtH{L/MMuHHA]A\[H$H|$Ht$H$HL$H|$uHD$HT$HRhHD$H|$HT$(Ht$@8H`HcH$uPHD$ HT$H$HBHT$HD$HBHD$ H|$tH|$tH|$HD$HH$HtH$H$HɴHcH$u'H|$tHt$ H|$HD$HP`#H$HtlGHD$H$SATHd$HH ILHsL|t1It$ H{HCHuIt$ H{HCHPL_IMuHd$A\[H$H|$ Ht$H$HL$LD$HDŽ$H|$uHD$ HT$ HRhHD$ H|$ HT$0Ht$HGHoHcH$HD$(H$H$ H1HcH$uCHT$ H$HBHt$H$H$HD$ HxDHD$ HT$HPH$-DH$HtKHD$(H|$ tH|$tH|$ HD$ HH$HtH$H$/HWHcH$u'H|$tHt$(H|$ HD$ HP`&H$HtHD$ H$SATHd$HIHD$`HHt$H迱HcHT$XLgIkfHCI;D$uSIt$ H|$`Ht$`H{RHu1It$(H{HCHuIt$(H{HCHPLIMu+H|$`BHD$XHtHd$hA\[H$H|$ Ht$H$HL$LD$HDŽ$H|$uHD$ HT$ HRhHD$ H|$ HT$0Ht$HgH菰HcH$HD$(H$H$)HQHcH$uHHD$ H$HPHt$H$#H$HD$ HxAHD$ HxHt$AH$HAH$HtfHD$(H|$ tH|$tH|$ HD$ HH$HtH$H$JHrHcH$u'H|$tHt$(H|$ HD$ HP`A7H$HtHD$ H$SATHd$HIHD$`HHt$H߮HcHT$XueLIQfDHsLt0It$ H|$`Ht$`H{OHuHsI|$ P@LIMuiH|$`?HD$XHtHd$hA\[H$H|$Ht$H$HL$HDŽ$H|$uHD$HT$HRhHD$H|$xHT$(Ht$@HԭHcH$HD$ H$H$nH薭HcH$u5HT$H$HBHt$H$hH$HD$Hx"?MH$>H$HtHD$ H|$tH|$tH|$HD$HH$HtH$H$HʬHcH$u'H|$tHt$ H|$HD$HP`$H$HtmHHD$H$SH$H|$H4$HDŽ$HT$0Ht$HH&HcH$H<$H|$HD$ HD$(H$H$HիHcH$CDHD$HpH|$ tjHD$Hxt1HD$ Hp H$H$HD$HxLHu-H|$(uH=@ ۷HD$(Ht$ H|$(3H|$ HD$ H|$ dH|$(tLHD$(@gX|HH{kHtEtHHH$A\[Hd$HHp@Hd$Hd$HHpBHd$Hd$HHx /4Hd$SATAUHd$II1ID$HtX@fAU@f9$LjMHLLH5+I$fAEBf9$LKMHLLH5l+I$Hd$A]A\[H1HHd$HH= 1WHd$Hd$HHHp 3Hd$HGH`PHHPSATAUAVHd$HIAAu LHH{0tQHC0@gDp>DH{0D&DLHHAHC0D;p| HC0@AE}Hd$A^A]A\[HHd$HHHͬHd$SATAUAVHd$HA@tKP cPH{0t8HC0@gDhE|'AAH{0D &HDE9Hd$A^A]A\[SATAUAVHd$HA@tKPcPH{0tBt>HC0@gDhE|-ADAH{0D%HDE9Hd$A^A]A\[H@tHPÁ`PH@tHPÁ`PUHHd$H]LeHIH{ L=@HMtRL0@0uALeHE HMHȘHPM1H=诶HH5H]H{tHS H{LHHCH`HS LH1H`H@09LHH@#H]LeH]HHHHP@H`PHUHHd$H]LeLmLuHIIIMtgLLtXI;\$uQLHEHtALuHE HMHɿHPM1H=naHH5HCPt!H{tH{LLLHCH`H]LeLmLuH]Hd$HHHHHpHd$HHd$HHH Hd$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8-HUHcHT$xuVHD$HD$@TH<$tHt$H<$OHD$H|$tH|$tH|$HD$HHD$xHtH$H$薽H辛HcH$u'H|$tHt$H|$HD$HP`H$HtaVHHD$/HD$H= V*HD$pHtHtOHD$pHD$H$xA\[HH111SATHd$HIM~ HHH{0(H1^HtMt HHPpHd$A\[Hd$Ht&H=HH VH4Hd$UHH$pHpLxLmLuL}IHuIHEMuIHLYILLHrLeHUHu"HJ{HcHUM1H=XUu!\H=HUsAE|EAfADH="U}Hx(L1HuDH=U]HE9HuH=THH{(Ls H{0uH=PږHC0EE|$AAHUIcH4H{0E9HDSH8tHuLLH-S6H}-HEHt诠HpLxLmLuL}H]UHH$pHxLeLmLuH}IH]Ml$ILILLHdpLuHUHunHyHcHUH=SuxH=S1HH{0uH=ٖHC0EE|(ADAHUIcH4H{0`E9HRH8tH}LHRH}HEHtrHxLeLmLuH]UHHd$H]LeLmH}HH]L`ILpILLH/oLmLsH]LeLmH]H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$ HT$ Ht$8ݙHxHcHT$xuZHD$H|$1tHD$H$HPHD$@HD$H|$tH|$tH|$HD$H蚜HD$xHtH$H$BHjwHcH$u'H|$tHt$H|$HD$HP`9ĝ/H$Ht HD$H$Hd$HPHxHd$SHCH{/;C[H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0DHlvHcHT$puZHD$H|$1ۂH=/ؖ*HT$HBHD$H|$tH<$tH|$HD$HHD$pHtpHT$xH$谗HuHcH$u&H<$tHt$H|$HD$HP`訚3螚H$Ht|WHD$H$SATHd$HIM~ HHHyH{@H1vHtMt HHPpHd$A\[Hd$H|$Ht$$HD$Hx!HT$Ht$0謖HtHcHT$pu<$|HD$H@Hx|;$5HD$H@H@H8Hc$H젘HpHD$H@H@HHD$H@Hx@$H4H|$O{JHD$Hxl!HD$pHt轚Hd$xHd$H<$HHx HT$Ht$(ǕHsHcHT$huH$H@Hxr D$ɘH$Hx HD$hHt=D$Hd$xHd$H<$HHx HT$Ht$(GHosHcHT$huH$H@Hx" D$IH$Hxl HD$hHt轙D$Hd$xH$(H|$4$HT$HyHT$Ht$0返HrHcHT$pHD$HxYHT$xH$肔HrHcH$u<$|HD$H@HxO ;$5HD$H@H@H8Hc$HHpHD$H@H@HHD$H@Hx$HOHd$SATHd$H<$H==>HHT$Ht$0豅HcHcHT$pucHAAE|FD$D$D$HH@H;$ut$HH@HD$6D;d$HD$eH==HD$pHtHtԉHD$pHD$Hd$xA\[SATAUHd$H<$H=K=HHT$Ht$0迄HbHcHT$pulHAAE|OD$D$D$HIŋt$HH@H;$u IEHD$6D;d$HD$jH=<HD$pHtHtوHD$pHD$H$A]A\[UHHd$H]LeLmLuL}IHuIAE|?@HcHI|LuHcHAHUAA9E0DH]LeLmLuL}H]UHHd$H]LeLmLuL}AHuIAE|8@HcHE;<uHcHItH}AA9E0DH]LeLmLuL}H]SATAUAVHd$H<$Ht$H=$;o HHT$Ht$0蘂H`HcHT$puVH|AAE|=D$D$Ll$L4$t$HLLPtD$2D;d$D$YH=:} HD$pHtHtȆHD$pϊD$Hd$xA^A]A\[SHH=d:uH=1HJ:HH=@:K}HH=-:[Hd$HH=:tHH=:Hd$SATAUAVHd$HM1H=9tDH=98LcIM|,IIIDH=9LIHuMLHd$A^A]A\[H$H<$Ht$H=W9uH=H1H:9H= ikHD$H$HPHD$HT$HPHT$ Ht$8zH^HcHT$xD$D$H=8G;D$~&t$H=8HpHD$HxqtH=8;D$~Dt$H=~8iHT$H@H;Bu%t$H=_8JHT$HPH|$kHT$t$H=58pۂHD$xHtaH$H$H]HcH$uH|$k葂臂H$Hte@H$H$H<$t$HT$D$|$u nD$HT$(Ht$@~H]HcH$HcT$H $A H=|ۖHD$ H$H$~H\HcH$uHD$H0H|$ zHT$H蒁H|$ jH$HtqH$HrH=ɪTHt\H$H$H$}H%\HcH$uD$ H$HtŃ~D$H$Hd$H<$Ht$H4HH4HHHR(HT$Ht$0q}H[HcHT$puH$H0H>D$uH~4H8Ht4HHP0HD$pHt܁D$Hd$xSATH$H<$HHD$hHT$Ht$ |H [HcHT$`nE0HHH9t\HH$H;BtOH{t HCH01H<$AHHt$p/mHt$p1H|$h>H|$hH$1.AH|$hHD$`HtDH$xA\[SATAUAVAWHd$IH4$1H=4uAeE0E1GfDH=f4QHpI?lt"L$$LDH=@4+HLPAAEuH=4D9DHd$A_A^A]A\[SHH9[SH$p<$Ht$HT$Hc$HHt$ hHD$ HuHD$Hc$HL$A H=ז,HHT$(Ht$@zH YHcH$uHt$H!wHD$}HfH$Ht]HD$H$[SATHd$HI}iHLHHd$A\[Hd$1Hd$H$xH<$Ht$H$1ɾH=ΖH%HD$HT$ Ht$8yHXHcHT$xuHt$H|$vHD$|H|$eHD$xHtf~HD$H$H$H<$Ht$HDŽ$HT$Ht$0_yHWHcHT$pH$H=͖MHD$HT$xH$yH9WHcH$uCHD$H8H$iH$1H$H$HT$H|$v{H|$dH$HtV}{H$HD$pHt5}H$SATH$xHH4$T$H<$HD$HD$xHT$Ht$0xHCVHcHT$pkH<$uM1_INfLHt$xHHt$xH|$Ht$H贼IHuH|$H5+HLDH<$tMuzH|$xHH|$HD$pHt(|LH$A\[SATAUHd$H<$HH$H0.yIAEuGH$xt!H$H0H=AąAEuH$HHtH@HAIcHH$H0Hߺ McAK,H<$Hd$A]A\[SHHHt =*/H'/H8u7H=}aHH^HHt =.H.HH;HHt =.H.HHHHt =.H.H8HH=`HHٻHHt =[.HX.H[SATHd$HHHt =#.H .H@gX|JA@AHeHHt =-H-H8DHHD9Hd$A\[SHHHt =-H-H8aHHHt =-H-H8HHźHHt =G-HD-HHHHt =4-H1-H@gXHxHHt = -H-H8eHNHHt =,H,HxuOH%HHt =,H,H8$`HHHt =,H,H[0SH$H<$Ht$HT$HL$D$ H$HHT$HH9H<$H|$9H<$u D$ kH=ʖ]HD$(HT$8Ht$PsHAQHcH$H=Rʖ]HD$0H$H$rHPHcH$HL$H$Ht$(HHL$HT$Ht$0HH|$(HD$(HHH|$0HD$0HH9u9H|$(HD$(HHHD$0HpHD$(Hx[HuD$ D$ EuH|$0;^H$Htv$uH|$(^H$HtvD$ H$[H$xH|$H4$HT$HL$H$H=XH(HD$ HT$(Ht$@oqHOHcH$u5Ht$H|$ HD$ HHT$ HD$HBHt$H|$ 3NtH|$ D]H$HtuH$HHHHHHuHff?҉ ʉHɁu0H7ff? fNf? ʉHH7ff?  fNf? fNf? ʉHUHHd$H}HuUH}rH\;t*HنH=ݗdHH5Hq1HH]SATH$XH|$H4$HDHD$HD$HDŽ$HDŽ$HT$ Ht$86oH^MHcHT$xHD$Hxq$H҆H$IcH$H31H$H$<01H$H$H$HD҆H$H$1ɺH$H$H|$1H|$2H$H4$1HֆH$ H$H|$ eHD$HxHD$H@HH$H4$1HֆH$H$H|$HD$HxDnuH$H4$1H^ֆH$YH$H|$GBoH$H$HH|$vH|$lHD$xHtpH$A\[H$hH|$H4$HwHDŽ$HD$pHT$Ht$(~kHIHcHT$hHD$HxHD$H@HH|$pH$HD$xH$H|$V H$H$HGՆH$Ht$x1ɺH|$pHt$pH|$HD$HxlH$HUHD$Hxl?mH$H|$pH HD$hHt,oH$UHH$ H0L8L@H}HUHHEHDžHHDžPHDžXHUHhiHHHcH`؃!H^HcHH5ԆH}HAfDHEH@Hxwk%ÅEt1H}HE0HXHu1HPӆHXlHXH}HHXHu1HӆHX3HXH}THXpHu1H[ӆHXHXH}HHEH@HxjDHXHIc.1HXHX901HXHXH}HuIH}H DHXHIcē1HXHX01HXOHXH}H H}Hy AŹHXHIc[1HXHXf01HXHXH}HvH}H IŹHXHL1HXHX01HX}HXH}H9 H}H}LmLxHEH$fEfD$LE1HHHuH}HHXH}HHXH}H 1H}HmHXH}HHXH}Hl@H5ІH}HS'H5ІH}H:HmH5ʆH}HAHXH}H HXH}HEHtH@Ht/EuH5ІH}HqE0HuH}H]H5tʆH}H kHXH}H.HXH}H 1H}H[ /HPH}HHPH}H 1H}H HPH}HfHPH}Hb 1H}H H5φH}H H5φH}Ha @HuH}H HEH@HxHEH@H@HHXHu1HkφHXGHXH}H HEH@Hxe%ÃHXfHȆH@H}HIŹHHHLK1HHHHV01HHHHHHHaȆHPH@1ɺHXHXH}H 1H}HM HXHu1HlΆHX(HXH}H$HXhHu1HSΆHXHXH}H HEH@HxdH53ΆH}H HXH}HEHXH}HA1H}Hr I@HDž8H8H1dHPM1H=&IXHH5Hc"eHHvHPHX^H}UH}LH`HtkfH0L8L@H]SATAUAVH$hH<$HD$(HDŽ$HT$0Ht$HTaH|?HcH$/H<$HHH5̆H<$HH> AA ~A D)H$HpH|$(1Hʆ H$H@H@HxDHt$.ZgEt$E|GADADtH$ʌH$Ht$(H|$(1E9Ht$(H<$HHFH$H$Hp1H̆H$SH$H<$HH:5cH$H|$(~H$HtdH$A^A]A\[SATHd$H<$HH<$XADHEvH3DH$HxXHd$A\[SATHd$H<$HH<$ADHEvH3DH$HxXHd$A\[SATHd$H<$HH<$ADH1EvH HH$HxDHXHd$A\[SATHd$H<$HH$Hx`AH1$EvHHAH$HxWHd$A\[Hd$H<$HHxHt$ Wl$Hd$(Hd$H<$HHx `H<$Hd$SHd$H<$r[tt"t/t;EH$Hx_HH/H<$HHH<$ZHcH H<$HHHd$[Hd$H<$HHxHt$VHD$Hd$Hd$H<$HHxk_Hd$Hd$H<$HHx+_%Hd$H$xH|$H4$HHT$Ht$(\H ;HcHT$hHD$xu@H$HT$pHuH[HD$pHtH@HH H4$E0H|$>H$HD$xHuHHT$xHtHRHH H4$E0H|$Bm_HHD$hHt`H$Hd$H|$H4$HHT$Ht$([H:HcHT$huAH$HD$pHtH@HHT$pHuH\HH H4$E0H|$^H4HD$hHt5`Hd$xHd$H|$H4$H:HT$Ht$(6[H^9HcHT$huAH$HD$pHtH@HHT$pHuHHH H4$E0H|$ ^HHD$hHt_Hd$xHd$H|$H4$HjHT$Ht$(ZH8HcHT$huHH$HD$pHuH HT$pHtHRHHD$xAH HH4$H|$*U]HHD$hHt^Hd$xSATAUAVAWH$pH|$H4$H$IEHD$HD$HDŽ$HT$ Ht$8YH7HcHT$xsH<$uH|$H5ņvGH|$1e0fDAHLAA'uuAH|$H59ņ,A r-ArEt"AsuAAH|$16ftE0DH$H1H$H$01H$ H$H|$1H5ĆD8tHT$H|$1H5ĆDHT$Ht$H|$1H$H;$tHt$H|$1HwĆZHt$H|$F[H$H|$H|$HD$xHt\H$A_A^A]A\[Hd$H|$H4$HHD$pHT$Ht$(WH5HcHT$hu0H|$pH4$1HڼH|$pHt$pH|$9ZH|$pHHD$hHt[Hd$xHd$H|$H4$HHT$Ht$(VH5HcHT$hu>H$HtH@H~,H$HtHRHD$HxH4$HD$H@HYH'HD$hHtH[Hd$xHd$1tHd$Hd$H<$Ht$H$H=H蚙HD$HT$Ht$0!VHI4HcHT$puH5H|$PH/YH|$BHD$pHtZHd$xSATHd$H<$HD$HD$HT$Ht$0UH3HcHT$pcH$HxH5Rt02H$HxH56tH$HxH5 H$Hx苟H$HxH|$1H$HxHt$ˡH$HxNH$H@x,:H$Hx/H$Hx荚Ht$H|$H$HxHt$lH$HxH$H@x,[uLH$HxԞH$HxIH$Hx跞H$Hx]H$Hx蘞t/@@H$Hx'Wff%t IcH<$ Ht$H<$D Ht$H<$6 @H<$H$HxH5裡uHH$HxH5苡u0H$HxH5suH$HxH5 [tH$Hx1xVfDH<$H$HxH5#tH$Hx蒝H$Hx13V>VH|$H|$HD$pHtWHd$xA\[H$hH<$HD$HDŽ$HT$Ht$(RH0HcHT$hH$HxaH$HxHt$OH$Hx˜H$H@x,.uuH$Hx谜H$HxHD$HD$pH=HD$xH$HxH$H$H$Ht$pH|$1ɺpHt$H<$* H$Hx=蘗H$HxH<$BTH$ H|$HD$hHt7VH$H$H|$HD$0HDŽ$HDŽ$HT$@Ht$XQHF/HcH$VHD$H@@,<),,,t1,t[,,#,3,, HD$HxHD$Hx@HD$Hx-HD$Hx PHD$H@x,]HD$Hx]HD$HxH$GH$H|$HD$Hx跗HD$H@x,]t#HD$Hx,HD$Hx臗HD$Hx1%PHD$HxgEHD$HxTHD$HxOH|$^HD$H@x,)uHD$Hx1OHD$HxHD$HxHD$HxOfDHD$HxH5@+HD$Hx譖HD$HxJO H|$>HD$HxH56tHD$HxgHD$Hx1OHD$H@x,>tHD$Hx1NHD$Hx&HD$Hx NH=M6HD$8H$H$nKH)HcH$u`HD$HxHt$8贔H|$8HD$8HHH|$H|$8HD$8HHHD$8HpHD$HxE"NH|$87H$HtOHD$Hx8HD$HxHfSHp MH$KH$H|$0H$Ht2OH$SHd$H<$HHD$HD$pHT$Ht$(-JHU(HcHT$hH$HxHt$p賗HT$pHH|$dH$HxKH$H@@,tttH$Hx葏H$HxHt$pOHT$pHt$H|$H$Hx<+tH$HxLHt$H<$ LH|$pH|$HD$hHtMH$[SHd$H<$HH|-H'H$HxLH$HxLH|)H H$HxKH<$`OH|(HH$HxKH<$H$HxKHH<$Hd$[SATHd$H<$HIHtMd$DH<$EvDH$HxH.BHd$A\[SHd$H<$HHtHvH<$qHHtH@H~HHtHRH$HxHAHd$[SHd$H|$H4$HYHT$Ht$(uGH%HcHT$hu`H$HtH@H=~H$HtH@HD$HxHJH$HtH@H~HD$HxH4$!A,JH脶HD$hHtKHd$p[UHHd$H}HHxHu @H]Hd$H|$H4$H4$HD$HxH@Hd$Hd$H<$HHxIHd$Hd$H<$HHxIHd$SATHd$HIHHELH|Hd$A\[H$H<$Ht$HD$ HDŽ$HT$(Ht$@EH#HcH$oH<$H$HD$H$H=ޭшHD$H$H$REHz#HcH$H|$H5uH|$H5H|$wH|$؊H|$^H|$:迊H|$EH|$覊Ht$ H|$藑GH|$0Hct$H<$H$HH$Ht@IHt$ H$^H$H|$ \HT$Ht$ H|$(CHt$H<$t$H|$CWGH$誳H|$ 蠳H$HtHH$H H8 tH9rHd$覧H?H=#H=\觥BHHH=HpH=tH8HHH=d_HH=LGHHH=9nH2nHHtHH=&(H5*H=|Hd$SATHd$HHHHHHR(H=OHHT$Ht$(xBH HcHT$hu=H\AAE|)$$$H襸H].D;$$REH=vHD$hHtFH=p+.H=T.H=X.11gH=HׇHHt =iHfH8-H=-H=,H=1&H=tBH=jÃ|-$f$$H=豷Hi-;$H=X-HH=A-H?ΖH=HHT$Ht$0@HHcHT$(uAHAAE|-$D$$HH,D;$$CH=kHD$(Ht'EH=Pk+H=OHT$Ht$0;@HcHcHT$(uQH=[.HHD$H@0HHD$Hx(u H|$H=suHvCH=zEHD$(HtvDH=u H=O躡Hd$xA\[HHpHd$HHHǺHf$$Hd$Hd$HHHǺH$Hd$Hd$HHHǺHH$Hd$Hd$HHHǺ H,$Hd$UHH$H}HuHUMH}uHEHUHRhHEH}?HUHuo>HHcHxHEH}1)H}u.H$?HPH=tMt\LH5_"LH5_r"LH5_^"LH5_J"|HLS"hH <$Ln!SHHt$pHt$pL"7HXL!%H&L!HHL"H|$p*aHD$hHtKHd$xA\[Hd$H<$Hd$UHH$HLLHIHELHjHsHH}uHCHtH;Ct HsHH}u"L QILH5*tLmH}u!HtHHMLHH}tH}H5d*wuJLHDž HHHPM1H=8HH5H9HEHLLH]SATAUAVAWHd$H<$L>fDIG0HD$HtjHD$LpAÅ|TAfDADIDL(H$HLntLH5h){t H$Lh*D9It IGH1IH4)L9cHd$A_A^A]A\[HHd$Hf4$f4$HHǺHHd$Hd$H4$4$HHǺHHd$Hd$HH4$H4$HHǺHHd$UHHHuHǺ HH]UHH$H}HuHUMH}uHEHUHRhHEH}?HUHuHGHcHxHEH}1H}u.HHPH=HH5HHEHUHPHEUPHEHxHcu&3HEH}tH}tH}HEHHxHtlH`H FHnHcHu#H}tHuH}HEHP`B8HHtHEH]SATHd$HIM~ HHHHH{t HcsH{a2H1HtMt HHPpHd$A\[Hd$ Hd$Hd$HH5!yHǺHHd$SATAUAVH$HIAAHD$hHT$Ht$ HHcHT$`uEt7D $HHߺHAtIcHHHI<$Ht$p6Ht$p1H|$hEeHt$hHH It$ H; H|$hZHD$`HtH$xA^A]A\[Hd$ Hd$Hd$1 Hd$Hd$ Hd$HSATAUHIAHH߾ R DHLDHHA]A\[SH@tH߾ H߾[UHHd$H]HHEH$fEfD$HmH]H]SHd$H$HH߾4$HHd$[SHd$HH4$HH߾cH4$HHd$[SHd$H$HH߾2H4$HHd$[SATHd$HIHD$`HHt$7H_HcHT$XLH|$`BH|$`H5VhHuH߾ LH|$` H|$`H5QVLhHuH߾jyLH|$`H|$`H5HcHUA$%rtpy\vxt;t6tM-H߾ :H1+LSHHHHLHHHPL;@HHL}HuHH8LHH(L&<$HH LHH0lLH}HuHHxNA$xHDžpHpH*HPM1H=G HH5H0[H}sHEHtHPLXH]SHHsSH{ C[SATAUAVHd$HIAZEHcSHcCH)IcH9} CS)AHSHcCH4IcLpE)DsIcIċC;Cu HHEHd$A^A]A\[Hd$H@4$HHǺHHd$SATAUHd$HIMMtMmA~AD,$HHߺHE~DLHHHd$A]A\[H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8]H腾HcHT$xuNHD$H|$1HT$H$HB(HD$H|$tH|$tH|$HD$H&HD$xHtH$H$HHcH$u'H|$tHt$H|$HD$HP`PH$HttHD$H$UHH$H}HuHUMH}uHEHUHRhHEH}@HUHuH7HcHxHEH}1H}u.HߗHPH=HH5HUHuH}HEHHUHB(HE@0HEH}tH}tH}HEHHxHtlH`H 5H]HcHu#H}tHuH}HEHP`1'HHtHEH]SATHd$HIM~ HH{0t H{(H1HtMt HHPpHd$A\[Hd$HHx(H@(HHd$Hd$HH=BBHd$H$H|$Ht$$HL$H|$uHD$HT$HRhHD$H|$HT$(Ht$@HHcH$uNHD$ HT$$BHT$HD$HBHD$ H|$tH|$tH|$HD$HH$HtH$H$4H\HcH$u'H|$tHt$ H|$HD$HP`+!H$HtHD$H$SATHd$HIH{HHCHHLH=PgkHIt$ H{HHCHHXHd$A\[UHH$pHpLxLmLuL}IILMDmHEHUHuH8HcHUuVEtQHtLH}zJIw@L1H}LHuI(IG(HLLHI(IG(HH})JHEHtKHpLxLmLuL}H]UHH$pHpLxLmLuL}IILMDmHEHUHuH8HcHUuYEtTHtOH}zIIw@L1H}KHuI(IG(HLHLI(IG(HH}&IHEHtHHpLxLmLuL}H]Hd$HHx(H@(HHd$SATHd$HIHH藙LcHd$A\[Hd$HHx(H@(HHd$H$xH|$H4$HT$H=.0HHD$HT$(Ht$@HնHcH$uLH|$Ht$$H|$HD$HD$ HD$HpHD$Hx(T$ HD$H@(HuH|$kH$HtH$Hd$HHx(H@(HHd$SATHd$HAHD$`HHt$HHcHT$XuA1H|$`QHt$`H"H|$`'GHD$XHtHHd$hA\[SATHd$HfAHD$`HHt$FHnHcHT$XuAH|$`rHt$`Hg"BH|$`hHD$XHtHd$hA\[SATAUAVHd$HIH{(HC(HMtOLP+AAE|;AfDAHlDLQ0HHHnE9HaHd$A^A]A\[SHH{HtLHv H{HHCHHƃuHCCPH{HHCHHHPHS@CP[SATHd$HIH{XtDH{tHsH=Dt)HCH$H{`LK8IL$ ILHSXH$HCHd$A\[H$H|$H4$HD$H@HD$HD$H@HD$HD$H@8HD$ HT$(Ht$@AHiHcH$H$HPH$H$H,HcH$uMH4$H|$H4$H|$Ht$H<$H$HHD$Hx(HD$H@(HH$`PH$HtAHD$HT$HPHT$HD$HBHD$HT$ HP8H$HtH$SH$H|$H4$HD$H@HD$HD$H@8HD$HD$H@HHD$ HD$@TD$(HD$@PD$0HT$8Ht$PHHcH$HD$H@HHD$@THD$@PH$@Pt HD$H$HPHD$HpH=6 ɷzH=U!`HT$HBHHD$H@@Pt HD$HPHP8HD$HH8HT$H5CHD$HxHD$H@HHD$HxH@gH$H$HHcH$u&HD$HHHT$H5H<$H$HHD$HxHtaHD$HxHHD$H@HHÃ|=D$,D$,HD$HxHt$,HD$H@HHHD;\$,HD$HxHH$HtHT$HD$ HBHHT$HD$HBHD$HT$HP8HT$D$(BTHT$D$0BPH$HtUH$[SATHd$HI1H{t!AD$Pt tH{HtAD$PtH{HtCT;CPuH{uKTH{(LHC(HH{HtCTLHH{ u LHHd$A\[SATHd$HIL`HPHP8L`HHLH Hd$A\[UHHd$HHUH$fUfT$Hx(H@(H H]Hd$HHx(H@(H(Hd$Hd$HH4$Hx(H4$H@(H8Hd$Hd$HHx(H@(H0Hd$Hd$HHx(H@(H@Hd$Hd$HHx(HcH@(HHHd$Hd$HHx(H@(HHHd$Hd$HHx(H@(HhHd$Hd$HHx(H@(HXHd$Hd$HHx(H@(HHd$Hd$HHx(H@(HHd$SHd$H|$H4$HD$H<$HAD$HT$ Ht$8HجHcHT$xuTD$gX|HD$D$HD$T$H4H<$=tHD$T$HH4$H|$N;\$sH|$HD$xHtHt$H<$H$HH$[UHH$HH}HuHUHEHDžXHDžPHDžHHDž@HDž8HDž0HDžHDžHDžHDžHDžHHDž(HDž0HH@&HNHcH8CHEHx4HEHHu1HHEHEHxuLHE8HuH}AKHH8H5蛽H@THEHxt+HEH@H;EtHEH@HHUHH9uEEHE,<|%HQHcHHuH}c?E}tHEHxHuI?E HE؋@$EE;Eu =H0k;HEHp+1H(EH(HEHp@1H0H0HEHp@1H(5H(HEHx(HEH@(HH8H}HEHx(HEH@(HEHPH8u.HŗHPH=ոHH5HHUHuHeHHHHH H}tDHEHpHUHeHHHHH HH1Ҿ(HH谝HN H(2HEHp+1H0SH5LH?H5LH+H5 LHH5LHE1DHd$A^A]A\[SATHd$Lk0Hk0HjbH4߲}HSbBD (|ٖHd$A\[SHd$Љ=ٖuH0.Hd$0[S=ٖu_t}Hk0HaD([SATHd$=oٖu(t 9|JgD`@ADH*ٖ<DHk0HxaH4?DHk0HaaD(D9Hd$A\[SATAUHd$ЉA=ؖut 9gDhAEtDzDHk0H`|(tDHk0H`HH4HH1Ҿ(~H$DH1ؖ<H1ÉuDHk0Hq`D(D9cHd$0A]A\[SATAUIIH48tLL>HcHLLkHcHHA]A\[Hd$HHd$Hd$Hd$Hd$Hd$Hd$)Hd$Hd$VHd$Hd$Hd$Hd$ Hd$SATAUAVAWE1I謟ÃrKE1fAADA<%AD%AŅtDD1ADD1AD9wEuDA_A^A]A\[SATAUHd$HIMMtMmIcH$H5>HHߺ&vE~IcH3LyHd$A]A\[SATHd$HAH$H5HHߺuHD Hd$A\[>SATAUAVAWHd$H<$fAE1A^IcIcHH!HHfD$fE9uHHHtH<$1"fE9sgDkgDsE9}H<$1Hd$A_A^A]A\[SATAUAVAWHd$HH$HD$hHT$Ht$ 蚣HHcHT$` HHH<$HuH=AE1AIcIcHH!HHԖD$E9 fD~fgC!HHxԖD;$uOHHcԖHt1H|$hHt$hH<$T"HuHH 2ԖfDfD$pA/HHԖD;$uE9sgDsgDkE9,fD$p蠥H|$hHHD$`HtD$pH$A_A^A]A\[SATAUAVH$8IHIHDŽ$HT$ Ht$8H HcHT$x/HHtH@AH5*/H=/ H$董H$ H$H56pHH$HAE~Ic|C;%$sEt Icf|C.tHHtH@HAQAt"IcH|CZ;%HN.s0tH,8uHHtH@HAIcHH޺H$DMH$LLA7ܣH$O2HD$xHtPH$A^A]A\[SATAUHd$HIMMtMmH5-H=- HT$ 'HHt$ H DAE~IcA|DHtE~IcHLzL H1>6Hd$@A]A\[SATAUHd$HIMMtMmH5-H=, HT$ 臡HHt$ H DAE~IcA|DHFtA~6IcA|DH5,'tIcHA|DHuAIcHLKHd$@A]A\[SATAUAVHd$HIH1D5MMtMmAH57,A|$tHL3KH5+A<$mH5+A|$StAAE9~IcHA|DH5+tA@AE9~IcHA|DH5c+tIcHLJHd$A^A]A\[SATAUHd$HIMMtMmH5-+H=+ HT$ 藟HHt$ H DAE~IcA|DHVtMcIUHLIHd$@A]A\[SATAUHd$HIH13MMtMmH5*H=l* HT$@H|$@ HT$ H5G2HHt$ HAE~IcA|DHtE~aIcfA|D.uTAt#IcHA|D6%H)s0t H&(8tIcHLH H12Hd$`A]A\[Hd$2Hd$SATAU@IH>HHt HO8 HBHfD(HHHt H$8 HHfL賈HHHt H8 HHfD(A]A\[SATAUAVH$HIH$HD$HD$HD$HDŽ$HDŽ$HDŽ$HT$ Ht$80HXyHcHT$xKH(8tLH|$O1 LH|$NHD$H$HtH@HVH$f:~CH$fz/t H)H50H$H$H/.H$H$Ht:H$HtH@HuH~8LMtH@Ht'fA|D/tHt$HtHvH|$ZCHHt$)H$k$H$^$H$1HI$H|$?$H|$5$H|$+$HD$xHt,H$A^A]A\[SATHd$HIH$HT$Ht$ &HNpHcHT$`uLHW(H HH4$SH#HD$`Ht藖Hd$hA\[Hd$fHd$SATAUAVH$HIHIH5"HIHD$@HD$HHDŽ$HT$PHt$hWHoHcH$LHHu AEIH5!L護LH߾FtH@N8t;AEI4$H$QH$LHT$L'HdH*HWHAEH8 D$8H|$@1&HH$^H$HtH@HIHHtH@L9 IHHtH@L9|B|sH5V uINHH|$Hw/u f~/u0Hd$SATHd$H<$HHD$HD$HT$Ht$0諀H^HcHT$ptAHH|$H|$t\H|$@'uKHt$H|$Ht$H|$L$HuE0Ht$H<$TAEt H|$AJH|$H|$HD$pHt跄DHd$xA\[SATAUAVH$8IHIHDŽ$HT$ Ht$8H]HcHT$xHHtH@AH5 H= H$AH$ H$H5 HH$HAE~IcD$sEt Icƀ|.tHHtH@HAGAtIcHDH s0tH^ 8uHHtH@HAIcHH޺H$H$LL蝁H$HD$xHtH$A^A]A\[SATAUHd$HIMMtMmH5} H=V HT$  DAE~IcIDD$ sE~IcHL H1Hd$@A]A\[SATAUHd$HIMMtMmH5 H= HT$ W DAE~IcIDD$ sA~1IcIDH} sIcHIDD$ rAIcHL[Hd$@A]A\[SATAUHIH1MMtMmAAD$H( sHLA$H AD$H l A9~HcHIT H  s݃A9~HcHITH j sHcHLbA]A\[SATAUHd$HIMMtMmH5= H= HT$ } DAE~IcIDD$ sMcIUHLHd$@A]A\[SATAUHd$HIH1fMMtMmH5H= HT$@}H|$@ HT$ H5g}AE~IcIDD$ sE~UIcA|.uJAtIcHATHs0t He8tIcHL H1Hd$`A]A\[Hd$Hd$SATAU@IH~HHt H8 HHfD(HSHHt Hd: HWHfLS_LHy0_HHHt H: H HfD(A]A\[SATAUAVH$HIH$HD$HD$HD$HDŽ$HDŽ$HDŽ$HT$ Ht$8PyHxWHcHT$xH8t$LH$EH$H|$ 7LH$EH$H$cH$H|$HD$H$HtH@HmH$:~\H$z/t HDH5 H$ijH$H$EH$HOH$H$Ht8H$HtH@Hu:HD$HtH@H~&H$8/uH|$H$H$HHtHR|/uFHL$HtHIHHt$H$H$H4$H|$DHD$HtH@HHHt$H$H$H4$H|$tHD$HtH@H~OHD$Ar s7HD$p1H$@H$uH|$HD$H$HtH@H| H$:/u HH1$H$HtH@HuHT$H4$H|$HD$HtH@HuKH4$H|$SHD$HtH@HpH|$1H|$KHT$HtHRD/bH4$H|$HD$HtH@HpH|$1zH|$HT$HtHRD/HT$Ht$H|$HL$HtHIHHt$H|$Ht$H= hAjgEnAHT$HtHRIcH9~HT$gAEHc|/tIcIcH)gAvHcH|$/Ht$H= AEuHt$H= {A1fDIcH|$Ht$H=} HAEuHt$H= *A]DgEnAE~HT$Icŀ|/uIcIcH)HPgAuHcH|$aHt$H= AEuHt$H=" AƅlHT$HtHRHIcH9uRgEnAE~HT$Icŀ|/uEuH|$1IcIcH)HPgAuHcH|$HD$HtH@HuHD$8.H|$1xHD$H$HtH@HhH$|.uYHT$HD$HtH@H|/u;Ht$HtHvHH|$@H|$HD$H$HtH@H|4H$8.u'H$x/uH|$HD$H$HtH@H|)H$8.uH$x.uH$x/tHD$H$HtH@HuH$8.u H|$1"HD$H$HtH@Hu'H$8.uH$x.u H|$1HD$HtH@HyHt$H$H$H|$HD$8/uHD$HtH@HpH|$1H|$HT$HtHRD/8Ht$H$H$HT$H|$GHT$H$HHtH@|/uHHtHRIcH9~*HIcDAHIcHHTIcIAHHtHRIcH9}A~ADH]LeLmLuH]SATHd$H L#MtMd$EtHIcHDH9r&IcHpH1sHMcIT$D/Hd$A\[Hd$Hd$Hd$Hd$Hd$HHtHI~HcHDHsHcɺHd$SATHd$H@L#MtMd$EtHHar3IcHpH1H#HpIcH;6H /Hd$A\[SHHHtH@~$HHsHߺ[~.HcHHtHRH9HcHD7Hs0UHH$`HhLpLxLuL}IIHHEHEHUHu aH4?HcHUvHCH~cI7LHCHÃ|SE1AIcI4H}LmI6H}tHuLLD9 L1cH}H}HEHteHhLpLxLuL}H]SHHtH@Hu0?肈%@[SATAUHHHHtH8I L%IfE,$fA$HJDfA<$HHHt Hʔ: HHfD(A]A\[SATAUHHqHHtH8I L%rIfE,$fA$HZBfA<$H)HHt H:: H-HfD(A]A\[SATAUHHHHtH8I L%IfE,$fA$HzBfA<$HHHt H: HHfD(A]A\[UHH$pHxLeLmHHEHEHUHu^H8/u ~/u0Hd$SATHd$H<$HHD$HD$HT$Ht$0\H:HcHT$ptAHH|$H|$t\H|$@ށuKHt$H|$Ht$H|$HuE0Ht$H<$TAEt H|$AJ_H|$H|$HD$pHt`DHd$xA\[SATHd$HAHD$`HHt$[H9HcHT$XuHH|$`'H|$`DIx^H|$`HD$XHt)`Hd$hA\[SHd$HHD$`HHt$,[HT9HcHT$XuHH|$`'H|$`x*^H|$`HD$XHt_Hd$p[SATHd$HAHD$`HHt$ZH8HcHT$XuHH|$`&H|$`D x]H|$`HD$XHt_Hd$hA\[SATAUHd$HAAHD$`HHt$ZH:8HcHT$XuHH|$`&H|$`DDx ]H|$``HD$XHt^Hd$pA]A\[SHd$HHD$`HHt$YH7HcHT$XuHH|$`{%H|$`Qy\H|$`HD$XHt^Hd$p[SATHd$HAHD$`HHt$YH/7HcHT$XuHH|$`$H|$`D)}\H|$`XHD$XHty]Hd$hA\[SATHd$HAHD$`HHt$wXH6HcHT$XuHH|$`f$H|$`D}r[H|$`HD$XHt\Hd$hA\[SHd$HHD$`HHt$WH6HcHT$XuHH|$`#H|$`ZH|$`@HD$XHta\Hd$p[SATHd$HAHD$`HHt$gWH5HcHT$XuHH|$`V#H|$`DbZH|$`HD$XHt[Hd$hA\[SHd$HHD$`HHt$VH5HcHT$XuHH|$`"H|$`聈YH|$`0HD$XHtQ[Hd$p[SATHd$HIHD$hHD$`HHt$NVHv4HcHT$Xu.LH|$`="Ld$`HH|$h+"H|$hLn7YH|$hH|$`HD$XHtZHd$xA\[SHd$HHD$`HHt$UH3HcHT$XuHH|$`!H|$`葈XH|$`HD$XHt!ZHd$p[SATHd$HAHD$`HHt$'UHO3HcHT$XuHH|$`!H|$`D虈"XH|$`xHD$XHtYHd$hA\[SATAUAVAWH$`HIAH5HWzHT$8Ht$PTH2HcH$HHtH@|,E1@AIcHT*t?tuE0QD9E1EuAIH5rLzLDH Au<$lAHo WH53HkzH$HtyXDH$A_A^A]A\[SATAUHd$HIAHD$`HHt$rSH1HcHT$XuHH|$`aH|$`LDjVH|$`HD$XHtWHd$pA]A\[SATAUH$pHIH5FLxH5HxHDŽ$HD$xHT$Ht$0RH0HcHT$puoIH5L0yHH|$xH|$xLtÄt=H4$H$H$LHD$ID$D$AD$D$AD$^UH$H|$xH5 HxHD$pHtVH$A]A\[SATAUAVHd$HIIAHD$pHD$hHD$`HHt$QH/HcHT$XuALH|$hLl$hLH|$pxHt$pDH|$`LHt$`HqTH|$pH|$hH|$`HD$XHtUHd$xA^A]A\[SATAUAVHd$HIIAHD$pHD$hHD$`HHt$PH.HcHT$XuALH|$hLl$hLH|$pHt$pDH|$`LHt$`HSH|$pH|$hݿH|$`ӿHD$XHtTHd$xA^A]A\[SATAUHd$HIIHD$pHD$hHD$`HHt$OH.HcHT$Xu>LH|$hLl$hLH|$pHt$pH|$`L{Ht$`H>RH|$pH|$hH|$`HD$XHtTH$A]A\[SATAUAVHd$HIIAH$HD$hHT$Ht$ OH+-HcHT$`VHLLHAtH;tH;@ sH<$H4$:AŅt*IcHHH4$IcHsHH4$UH1KH;~AtMH8"uEHHHtHR|"u/H HtHIHH3H|$hHHt$hHH;t"H3H|$hHt$hHLH; H;@qH1蕽PH|$hHHD$`Ht/RHd$xA^A]A\[SATAUHIIՄtHLLHLL1A]A\[SATAUHd$HIIH$HT$Ht$ LH+HcHT$`u4LHҼH<$uHH5 1H߉H$LiOH,HD$`HtMQHd$pA]A\[SATAUHd$HII$H5ޖHrHT$ Ht$8ELHm*HcHT$xu/IH5wޖLrLHÄt LH4$R-OH5FޖHrHD$xHtPH$A]A\[SATAUHd$HII$H5ޖHYqHT$Ht$0KH)HcHT$pu/IH5wޖLqLHmÄt LH4$BmNH5FޖHqHD$pHtOH$A]A\[SATAUAVHd$HAIH5$ܖL|pMH5bLJqLIMDHyÅuI}Hn0Hd$A^A]A\[SATHd$HHsHvAąuH{Hm0DHd$A\[SATAUAVHd$HAIH5tږLoH$HD$pHD$hHT$Ht$ IH'HcHT$`uTMH5`LHpHH|$hH|$hHDLxÅuH4$H|$p$Ht$pI}LH|$pH|$hݸHոHD$`HtMHd$xA^A]A\[SATHd$IH$HD$hHT$Ht$ HH'HcHT$`u.LHauÅuH4$H|$hmHt$hI|$KH|$hOH'HD$`HtHMHd$xA\[Hd$HHx(osHd$Hd$HHx(OsHd$Hd$H8衖Hd$Hd$H8聖Hd$HޅHޅUHHd$H}HuH HodE}.HHPH=Yd|<HH5HzIHUHuhGH%HcHUu H}utJ}fHEHtKH]UHHd$H}HuH HE}.HAHPH=c;HH5HHHUHuFH$HcHUu H}u)I}eHEHt>KH]SATAUAVAWHd$H|$ߺ1eLcAD11{eML4$H5uHH|$[1ېHT$HL,LH)LDdHcILI9~MM}PHd$A_A^A]A\[SATAUHd$HIIHD$`HHt$EH#HcHT$XuLH|$`HT$`HLHH5H|$`[HD$XHtIHd$pA]A\[SATHd$HI-HHLOHd$A\[SATHd$HIHHLHd$A\[SATAUHd$HIIHD$`HHt$DH"HcHT$XuLH|$`aHT$`HLAGH5H|$`kHD$XHt IHd$pA]A\[UHHd$H}HEHUHuDH<"HcHUuFH}舳HU1H5څH}HUH=28HH5HEFH}=H}4HEHtVHH]SHd$H@HHt$RH|$1ҾH$HT$H$HT$Hd$ [UHH$`H]LeLmLuHIAAIT$DH)H}5HMIHڅH=Z$9HH5HDDH<HuĺDH|HuDH|HuqEtA}EfU‰ fMfU‰ fMDDD$ DDD$DD D$DD D$DD $DDL DDD DLUu}HEHUHEHUH]LeLmLuH]Hd$H@HH$HT$H$HT$Hd$Hd$HH1H$HT$H$HT$Hd$UHHd$H]LeLmHAAHHtH@HDH)H}5HMIH4؅H= XC7HH5HBHHAHDHEHUHEHUH]LeLmH]Hd$&/H$HT$H$HT$Hd$UHH$pH]LeLmLufAfAILMtH@HHt5HMIHׅH=;W^6HH5H BAFD$ AFD$AFD$AFD$AF$ENEFAAAHEHUHEHUH]LeLmLuH]UHHd$H]LeDeD]] DU(@}0@|$ DT$\$D\$D$$AA,HEHUHEHUH]LeH]UHHd$H]LeDUD]] @}(De0EfufUMDEDMDUD]]@}DeHEHUH]LeH]Hd$HQH$HT$Hd$SATAUHd$HIAH$H5HLEtf;I$HC I$HfC I$HfI$HpH{HI4$Hd$A]A\[SATAUHd$HIAHD$`HHt$=HHcHT$XuEH3HSL1Et1I $HtHIHI4$H|$`薿Ht$`L9d@H|$`躬HD$XHtAHd$pA]A\[UH10fD@:<Hu LBI9H]HHFDHHtH@Hd$HIHtM@E111Hd$SATAUIItLL!LL1ÉA]A\[Hd$AIHtM@H11Hd$Hd$E1Hd$SATAUAVAWHd$H<$IIIMEtMLLLH<$A2MLLLH<$E1ÉHd$A_A^A]A\[SATAUAVAWHd$H<$IIIMH$HtH@L)L9}H$HtH@L)ILMtH@L)L9}LMtH@L)IAt#ID$ItIVH$H|LL!ID$ItIVH$H|LٗÉHd$A_A^A]A\[Hd$HIHtM@HHtH@L9}HHtH@I11Hd$Hd$HHLHHtHH|KHd$Hd$VHd$SH'H?[Hd$Hd$UHHLBH1 H]UHHd$H]LeLmLuHIIMHL1.M~H豻HK<,LbH]LeLmLuH]SATHd$HIHD$`HHt$79H_HcHT$XuTHtMLMtH@HHtHRH)HPHHtHILH|$`6H|$`HIUu0;H|$`PHD$XHtq=Hd$hA\[Hd$HHd$UHH]HtHHSHd$HHD$`HHt$<8HdHcHT$Xu!HH|$`\HD$`HtH@H2;H|$`舧HD$XHtHd$Hd$H?c?Hd$Hd$HH8[$$Hd$Hd$HH8Z$$Hd$Hd$HH8Z<$,$Hd$SATHd$HIHHLH1 Hd$A\[SATAUAVHd$HIIIL4$H5դHL]IFH|+HDHH;J *HI4$L H9Hd$A^A]A\[Hd$HHH0M(Hd$Hd$HHH0-(Hd$Hd$HHH0'Hd$Hd$HHH0'Hd$Hd$HHH01Hd$Hd$HHH0 2Hd$Hd$HHH0-2Hd$UHH$pHxLeLmLuHIIIHEHUHu HHcHUu-H}|LHLHuMLLLH}H}{HEHtHxLeLmLuH]UHHd$H]LeLmLuL}IIHIHEL'IfHEL;m|IHU|HLuH}u I6L{,L;m} L1{LH+EHHI6LHUڍH]LeLmLuL}H]UHHd$H]LeLmLuL}IHuIILnHI fDII|IB|0LLuI} H}1z'L9uI7H}zI7H}L$H]LeLmLuL}H]UH7H]UHgH]Hd$$H-Hd$Hd$$H-Hd$Hd$$H-Hd$Hd$$Hn-Hd$Hd$HH57HYV$$Hd$Hd$6V$$Hd$Hd$H5$7wHd$Hd$wHd$Hd$L6{Hd$Hd${Hd$Hd$H6\Hd$Hd$[Hd$SATHd$HAAr DE!B#Hd$A\[SATHd$HAAr RDE!BcHd$A\[Hd$v+Hd$Hd$+Hd$Hd$+Hd$SATAUHAAAr CHE!F, A]A\[SATAUHAfAAr CHE!fF,`A]A\[Hd$*Hd$Hd$F+Hd$Hd$+Hd$Hd$,Hd$Hd$F*Hd$Hd$*<$,$Hd$Hd$+Hd$Hd$*Hd$Hd$*Hd$Hd$*Hd$Hd$@3)Hd$Hd$f*Hd$Hd$HH։DLs4xHd$Hd$HH։DMrxHd$Hd$HHHtHd$Hd$HHH53utHd$Hd$$H'Hd$Hd$$H&Hd$Hd$$H&Hd$Hd$$H&Hd$Hd$HH5A3HR$$Hd$Hd$Q$$Hd$Hd$H52rHd$Hd$rHd$Hd$L2vHd$Hd$fvHd$Hd$H2XHd$Hd$WHd$SATHd$HAAr B@E!B#Hd$A\[SATHd$HAAr @E!BcHd$A\[Hd$V$Hd$Hd$$Hd$Hd$$Hd$SATAUHAAAr ?HE!F, A]A\[SATAUHAfAAr ?HE!fF,`A]A\[Hd$#Hd$Hd$v$Hd$Hd$$Hd$Hd$V%Hd$Hd$#Hd$Hd$"<$,$Hd$Hd$F$Hd$Hd$&$Hd$Hd$$Hd$Hd$#Hd$Hd$@!Hd$Hd$#Hd$Hd$HH։DL30sHd$Hd$HH։DMsHd$Hd$HHHoHd$Hd$HHH5/oHd$UHH}H]UHH}sH]UHH}SH]UHH}3H]Hd$HH5/HM<$,$Hd$Hd$M<$,$Hd$ UHHd$HHUH$fUfT$HH5.mH]UHHd$HHUH$fUfT$HmH]UHHd$HH}H<$f}f|$HL).$qH]UHHd$HH}H<$f}f|$HpH]Hd$H-SHd$Hd$SHd$SATHd$HAA r ;E!B#Hd$A\[SATHd$HAAr b;E!BcHd$A\[Hd$Hd$HHd$Hd$SATAUHAAA r ;HE!F, A]A\[SATAUHAfAAr :HE!fF,`A]A\[Hd$fHd$HH0Hd$vHd$Hd$Hd$Hd$Hd$Hd$v<$,$Hd$Hd$FHd$Hd$&Hd$Hd$Hd$Hd$Hd$Hd$@Hd$Hd$Hd$Hd$HH։DLL$f@fD$Lw+rnHd$Hd$HH։DMLL $f@fD$6nHd$Hd$HHHHH$f@fD$MjHd$Hd$HHHH$f@fD$H5*jHd$Hd$-%Hd$Hd$HH'Hd$SHd$HH_$Hd$[?*Hd$D$D$<$,$Hd$SH$HH0HQ&HH1$vH$[Hd$HH0m(Hd$Hd$HH0*Hd$*Hd$HH0&Hd$ ˆ"%2%"Hd$&+Hd$Hd$H@H%Hd$SHd$HHHǀ$Hd$[?*Hd$D$D$<$,$Hd$SH$HH0Ha$HH14tH$[Hd$HH0}&Hd$Hd$HH0(Hd$*Hd$HH0$Hd$ ˆ"2"Hd$6)Hd$Hd$HH#Hd$SHd$HHH~f$Hd$[f?*Hd$D$D$<$,$Hd$SH$HH0Hq"HH1DrH$[Hd$HH0$Hd$Hd$HH0 'Hd$*Hd$HH0"Hd$ fff#ff3ff#Hd$F'%Hd$Hd$HH!Hd$SHd$HH|f$Hd$[f?*Hd$D$D$<$,$Hd$SH$HH0H HH1TpH$[Hd$HH0"Hd$Hd$HH0=%Hd$*Hd$HH0 Hd$ fff#f%f3f%f#Hd$V%Hd$øHd$H!H Hd$SHd$HHz$Hd$[?H*Hd$D$D$l$<$,$Hd$SH$HH0 HHH1enH$[Hd$HH0"Hd$Hd$HH0#Hd$H*Hd$HH0nHd$ #3#Hd$f#Hd$øHd$Hd$SHd$HHH'y$Hd$[?H*Hd$H<$,$Hd$SH$HH0 HHH1lH$[Hd$HH0Hd$Hd$HH0!Hd$H*Hd$HH0Hd$ #3#Hd$!HcHd$Hd$Hd$SHd$HHHGwH$Hd$[H?HH*Hd$H(<$,$Hd$SH$HHH0@HHH1jH$[Hd$HHH0Hd$Hd$HHH0 Hd$HH*Hd$HHH0mHd$@θHH H@θHHH#H@θHH3H@θHH#Hd$HcHd$Hd$Hd$SHd$HHuH$Hd$[H?H`H*s H XHd$H`(s H<$,$Hd$SH$HHH0@H!HH1hH$[Hd$HHH0=Hd$Hd$HHH0-Hd$H`H*s HJXHd$HHH0Hd$@θHH H@θHHH#H@θHH3H@θHH#Hd$HcHd$Hd$Hd$SHd$HHHWsH$Hd$[H?HH*Hd$H(<$,$Hd$SH$HHH0@HHH1fH$[Hd$HHH0-Hd$Hd$HHH0Hd$HH*Hd$HHH0}Hd$@θHH H@θHHH#H@θHH3H@θHH#Hd$HcHd$Hd$Hd$SHd$HHqH$Hd$[H?H`H*s H2XHd$H`(s H<$,$Hd$SH$HHH0@H1HH1dH$[Hd$HHH0MHd$Hd$HHH0=Hd$H`H*s HrXHd$HHH0Hd$@θHH H@θHHH#H@θHH3H@θHH#Hd$faHd$øHd$HHbHd$Hd$dHd$Hd$HH@0bHd$Hd$`Hd$øHd$HHzbHd$Hd$cHd$Hd$HH@ƃ2bHd$Hd$V`Hd$øHd$HHaHd$Hd$bHd$Hd$HHff @ƃaHd$Hd$_Hd$øHd$HHZaHd$Hd$fbHd$ËHd$HH @ƃaHd$SATHd$HHuM1$.HIHt LHwWLHd$A\[SHHtHVHw.1[Hd$HHtHrH,Hd$Hd$HH8WHd$Hd$HHH0H1XHd$Hc8HC8SATAUAVAWHd$IHT$H$LlVI?tE0IHuHIIHtH@AA|J1fDAEHT$s'EuL1hIHcLlAAE$AEIA9Hd$A_A^A]A\[Hd$H}*Hd$SATHd$HIttHL HLHd$A\[Hd$ Ho}Hd$SATHd$HIttHL HLHd$A\[SATHd$HIHD$`HHt$HHcHT$XuLH|$`&Ht$`HIH|$`:THD$XHt[Hd$hA\[H}H~1SATHd$1HHtH[IHtMd$I9ILHMmuL)H}H~1҉Hd$A\[SATAUIIttLL LLÉA]A\[SH9u1QÉ[SH9u 1HÈ[HHtHRHHtHIH9LLLMM1M~G@DA8t'DAaAs, EAaAsA A8uHHIM9M9~%AD)H)H}H~1ɉSATAUIIttLL/ LLÉA]A\[Hd$Hd$SATAUIItt!LL LLKÈA]A\[Hd$Hd$SATAUIItt!LL LL ÈA]A\[SATAUAVHd$HIMMtMmIcH1EbA|2E1@AHcIcIcAt H Y 1LE9Hd$A^A]A\[SATAUAVHd$HIMMtMmIcH1aA|2E1@AHLcIcIcAt H 1LE9Hd$A^A]A\[1HHtHRHHtHIAfDFDFTM)LIHu L9|L9}HuH)H1HHtHRHHtHIA-fDLAFLG FTGM)LIHu L9|L9}HuH)HHHu HtWHHufH)HHHHu ?t>uHu:t?uHøHHuHlHHu3+fDHY DBH)HHHHu ?t>uHu:t?uHøHHtGHu Ht=HHuM1@DL)HHHIHuL9uHHtYHu HtOHHuM1@H iDFDB I)LHHIHuL9uHHt fDH H?uHHt fDH H?uHd$Hd$Hd$Hd$Hd$F7HHd$Hd$&7HHd$Hd$HP8Hd$Hd$HP@Hd$Hd$HPHHH}H~1Hd$Hd$HPPHH}H~1Hd$Hd$HDPXHH}H~1Hd$Hd$HP`HH}H~1Hd$Hd$HPhHH}H~1Hd$Hd$HPpHH}H~1Hd$Hd$HDPxHd$Hd$H$Hd$Hd$HHtH@D~ HcT!rD9| HcL!rHcHHHcH)Hco]Hd$Hd$HHtHI9| HcD!rHcHc)]Hd$Hd$HHtHID~ HcD!rHcɺ\Hd$Hd$'Hd$SATAUAVAWH$`H$IAHDŽ$HDŽ$HD$`HHt$HFHcHT$X=A1H|$`6THt$`H$ILMtH@A1E1HcE:|uyH$HHD$hHcIcH)IcHPLH$[H$HD$pA1H$SH$HD$xHt$hH$1ɺMAA9qA9tM&L1IM9pA:$t LL7]ILL)HpL1XI7(@A$HA:$uIA:$tH IM9uM&IH)L1TXA_A^A]A\[Hd$HTe Hd$SATAUAVAWHd$IH$IHHtH@ADAgIcŊD< S, t,tI$uA<$uE9~IcH| uAE9~IcH| uAE9}A9u LFHcL1^WLXHHc1詮I$1E1~IcA< r\, t,t$R$u Hc Hc AD$u Hc Hc AIcA< uAHcIcA2AE9|Hd$A_A^A]A\[HHtHI}0AAAE1ɐAEt*McFTAAArAtA AE0N@tMcB|.ut:D9A/McFTA0A rAArAtA At E9rSH$HHcHHH1HNH01tcH$[SH$HHHHH1HNH01$cH$[SH$HHHHH1HPNH01bH$[SH$HHHH}H1HNH01bH$[SH$HHHH1HMH015bH$[SATAUAVAWHd$IAHD$`HHt$H跱HcHT$XuHcL1SgDcEvADAL\UHcIcH)DH5( LAE97@DH(41H|$`3MHt$`IL1DAEuH|$`YBHD$XHtzHd$pA_A^A]A\[SATAUAVAWHd$IIHD$`HHt$oH藰HcHT$XuHcL1RgDcEwADAL.HxHEH@HH.HHhHHH".HHxHh1ɺdH-HxHhHHH-HHEH@HH-HHxHh1ɺsEt9t7HhHHtHRH~HhH:-uHhHR蝗HpHEHtHLL L(L0H]SATAUAVAWHd$H<$ID$HH$xuH$H@DpIHtH@II9|bLb@IIH$P Ht$(H=,胔H|$(Aֹ Ht$kBD#D$D$HD$HtM9D$HtH$xtLZD$HHd$PA_A^A]A\[UHHd$HH4$HHuE1E11wH]UHHd$HHUH$fUfT$HH5iH]Hd$HHt$H$HHt$AE11Hd$Hd$HH4$HHH4$Hd$Hd$HD$ D$ |$H4$HHt$AE11Hd$(Hd$H5Hd$Hd$HD$ D$ |$H4$HHt$AE11)Hd$(Hd$H54Hd$Hd$HHt$l$|$H$HHt$AE11Hd$(Hd$HH4$HHʾH4$Hd$Hd$HHd$Hd$HHt$l$|$H$HHt$AE11:Hd$(UHH$ H0L8L@LHLPIAAMHDžXHUHhcHnHcH`uRHEH$fEfD$MDDHXHXH}ľ( EĉHcLH}d&HXzH`Ht虔H0L8L@LHLPH]UHHd$HEH$fEfD$LH]UHHd$HL$HAȉщHuE1H]UHHd$HH}H<$f}f|$HLH]Hd$HHt$L $HHt$ALHd$Hd$HH4$HL JH4$Hd$Hd$HD$ D$ |$L$HAȉщHt$AHd$(Hd$L仕Hd$Hd$HD$ D$ |$L$HAȉщHt$A|Hd$(Hd$LHd$Hd$HHt$l$|$L $HHt$A$Hd$(Hd$HH4$HL H4$Hd$Hd$HHt$l$|$L $HHt$AHd$(Hd$L Hd$Hd$HH4$MHAH4$Hd$Hd$HH4$HLZH4$Hd$UHHd$HmzrHmzGvEHEHEHEHMHTӖHPM1H=1茂HH5H:m]EEH]UHmHb$(H(z%w#mHC$(Hx(zr0tmH$*?H]UHH$`HDžpHUHu臋HiHcHUHEH$fEfD$H}6ukHEH$fEfD$Hp5HpHEHDžx HxHіHPM1H=ގ9HH5HHpfHEHt舏mH]Hd$HH4$HH4$E11Hd$Hd$HH4$IHH4$E11kHd$UHHd$H]HHuHߺuAH]HE HMHtіHPM1H=LHH5HmH]H]UHHd$H]LeHILHuHߺUuAH]HE HMHЖHPM1H=gHH5HpmH]LeH]Hd$Hd$Hd$HѺHd$Hd$HH4$Ht$HǺu H$HD$l$Hd$Hd$HH4$HHt$HǺ_u H$HD$l$Hd$Hd$HH4$HǁHHd$UHHd$H]HH鵕HuHuAH]HE HMHΖHPM1H=Z~HH5HEH]H]UHHd$H]LeHILHuHZuAH]HE HMHΖHPM1H=|}HH5H腉EH]LeH]Hd$Ht@HHtH@HHu9H$H5HH=F@lXH5@H8H5c H/@HHtH@HHu9H$H5sHH=@XH?H8H5. Hd$SATHd$HAt8)EtHH?HH0]HcHT$`H$h@zuE1DDIHT$hHHcvH1Ht$hH01 H$HcHHtH@H)¾0H$h H$hHH1E}HH1H5^3E|.A+u(A1H$hqH$hHH1LGH$hHD$`Ht軂H$pA]A\[Hd$H<$HxxtH$'H$R|)gFH$HrH$R H<$HPAH$P|H$xxtH$ǀ/H$P|HP)щH$| H$PPH$ǀDH$H$} HcҀ|VuHd$Hd$H<$HHP| H$zxt=t=u0Hd$Hd$H<$HGhHtH@E0@0fH$LJhHcAt@փ"t'tuEt @8AeA@ZEQ@#E# tCttF tAH$z| H$DADJ|H$LJ0AyBt9H$LJhHcAtL $@փ+t-AAxH$zxt/@H$9~H$LJhHcHA|0tH$~hH$ǂXH$KH$DD;}H$DADH$H$DAD9_H$x|uH$P|H$P|)ʉH$~H$ǀH$P|)ʉH$}H$ǀHd$UHHd$H]LeLmLuL}H}IAAFAFAF E0EE1HEHx(tHEH@(IcԊE<"n,"tP,tL,ubEu]A~*HaH=hnHH5H{DgAT$AAEt E:EA AEEAD9lDA$$AEuAIcHt$H<$oAE~$AA$$tEuA<$uLHt$xZH$HtH@AHcHc$H)Ic$HHD$xHtH@H4L1AE1IHuHH$HD$xHuH՟HD$pIcHt$H<$AEDD)Å~(HcH$H|$p=HcH$HcHD$pE~#IcH$H$=IcH$$AHc$HD$pgEf$t EQHT$xHtHRIcH)‰Ӆ~HcH$H|$p"=mkHH|$HD$hHtlH$A_A^A]A\[SH0H~)HHtHIH9||Hƺ"HÈ[HHtH@H9HLHHHtH@H9HLH11Hd$HĜP(Hd$SHH[SATAUAVAWHd$IIAH$HD$HD$xHD$pHT$Ht$(fHDHcHT$h0LHEtH4$H|$p躀Ht$pH}xWADH|$pskHD$pHtH@AEzDH|$pLkHD$pAs_DH|$x1kHt$xIcHH|$VEtHt$H|$x"Ht$xH|$Ht$H<$UHAu ENhH|$x?H|$p5H-H|$#HD$hHtDjH$A_A^A]A\[Hd$@H5LHd$Hd$0H5j-Hd$SATAUAVAWH$PH|$pHH$HL$xDH$H$HD$hHT$Ht$ dHCHcHT$` H|$p1HHH$HtHRH$$~H$$Ƅ$H$HtH@H$fDA0E0E0DH$IcDtD8u0Aƃ"t'tuDt AyD8$u;Hc$HIcHH4$H|$h"Ht$hH$@HuAE0Et $A $D9AHD$xAA$D9|"$D9}Eu-E$IcHHH4$H|$hHT$hHD$pH0H|$p1NIcHHHH$HtH@H$$~!EuHD$pH0H|$pH$1$meH|$h6H.HD$`HtOgH$A_A^A]A\[Hd$HAHH HHd$UHH$PHPLXL`LhLpH}HuIIHEHUHuaH@HcHxHEHE1MIDIHHcIHHtHt?HthH~@0HbH}1KoHEHtH@H;E~eK HUHEDHE@H~=H}?K8 H<~KH$HXL`HP Ht$xH=:]BD#D$xiH$H@HtH@a_H|$pHD$`Ht`H$A\[SH$pH<$@HD$xHT$Ht$ [H9HcHT$`H$Hx1 fH$H@H$HHHL$hHtHIHPH9~ HD$h| tH$HHHL$pHtHIHPH9HD$pD+t -tt+H$HPH@|-uH$H@HtH@H$HPH@t1H|$x+HT$xH$HpH$Hx1H$H@F@H$HPH@t1H|$xHT$xH$HpH$Hx1H$H@H$HHH$HtHIHPH9|H$D0 rH$H@HtH@_]H|$xHD$`Ht^H$[H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0YH7HcHT$puJHD$H|$@1!HD$H|$tH<$tH|$HD$H\HD$pHtpHT$xH$0YHX7HcH$u&H<$tHt$H|$HD$HP`(\]\H$Ht^^HD$H$H$H|$Ht$H$L$H|$uHD$HT$HRhHD$H|$HT$(Ht$@iXH6HcH$ujHD$ T$H|$1H$HtH@H~H4$H|$HD$ H|$tH|$tH|$HD$H[H$HtH$H$WH5HcH$u'H|$tHt$ H|$HD$HP`Z:\ZH$Ht]^]HD$H$H$H|$(Ht$ H$L$DD$DL$HDŽ$H|$ uHD$(HT$(HRhHD$(H|$(zHT$8Ht$PVH 5HcH$HD$0H$H$VH4HcH$u7HcD$HPHcL$H4$H$H$L$H|$(1YH$H$HtZHD$0H|$(tH|$ tH|$(HD$(H2YH$HtH$H$UH3HcH$u'H|$ tHt$0H|$(HD$(HP`XYZXH$Ht[}[HD$(H$H$H|$Ht$$L$H|$uHD$HT$HRhHD$H|$HT$(Ht$@ UH23HcH$uZHD$ HD$T$P4$H|$,HD$@HD$ H|$tH|$tH|$HD$HWH$HtH$H$iTH2HcH$u'H|$tHt$ H|$HD$HP``WXVWH$Ht4ZZHD$H$H$H|$Ht$$H|$uHD$HT$HRhHD$H|$HT$ Ht$8SH1HcHT$xuIHD$$H|$1HD$H|$tH|$tH|$HD$H|VHD$xHtH$H$$SHL1HcH$u'H|$tHt$H|$HD$HP`VWVH$HtXXHD$H$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8]RH0HcHT$xuJHD$H$H|$@1kHD$H|$tH|$tH|$HD$H*UHD$xHtH$H$QH/HcH$u'H|$tHt$H|$HD$HP`TTVTH$HtWxWHD$H$GHGHtH@HSATHd$HAHHKDH1HCMcB Hd$A\[SATAUHAADHHH-KDH1zHCMcF$(A]A\[SATHd$HAHHHUKDH10fDHHD9|DcHd$A\[UHHd$H]LeLmLuHAAAE|IcIcHIcH9~ADeHEHMH.HPM1H=[BFHH5HQH]LeLmLuH]UHHd$H]LeLmHAIE}ALmHE HMHƐHPM1H=A~EHH5H,QH]LeLmH]SATAUAVHd$HIMMtMmE~'DsgC4.HLHSIcH4IcL#Hd$A^A]A\[UHHd$H]LeLmLuL}IHuHUAEEgHUHBE|IcIcHHcH9~ADmHEHMHHPM1H=@oDHH5HPgC44LIGIcH4IcHUH<Ic"H]LeLmLuL}H]UHHd$H]LeLmLuL}IAIAD$E| IcHcH9~ADmHEHMHɎHPM1H=?CHH5HOOLMtH@AAD$D)HUAD$gB40LIL$IcIcHH4ID$IcH<HcU!ID$IcH4IcL!H]LeLmLuL}H]UHHd$H]LeLmLuL}IAHUHMEEAD$E| IcHcH9~ADmHEHMHHPM1H=>BHH5H4NE}HH(HEHE HMHHPM1H=>9BHH5HME}HHHEHE HMH4HPM1H=A>AHH5HMHEHPE|IcIcHHcH9~AD}HEHMHHPM1H==AHH5H9MAD$gB40LAD$D)HU؋E؅~'IL$IcIcHH4ID$IcH<HcUIT$IcH4IcHUH<IcH]LeLmLuL}H]SATH$HIHD$`HHt$JH(HcHT$XuILHT$hHv1Ht$hH|$`01H|$`Ht$`HHRMH|$`訹HD$XHtNHH$hA\[UHHd$H]LeHAHBuI$AD9~ IcȀ<uH1HILH]LeH]SHd$HD$hHD$`HHt$fIH'HcHT$Xu!D$hH|$`蒷Ht$`HH\LH|$`貸HD$XHtMHHd$p[SATH$HfAHD$`HHt$HH&HcHT$XuIAHT$hHHcRt1Ht$hH|$`a01H|$`Ht$`H& KH|$`HD$XHtMHH$hA\[SATH$HAHD$`HHt$HH<&HcHT$XuIDHT$hH't1Ht$hH|$`01H|$`(Ht$`HHJH|$`8HD$XHtYLHH$hA\[SATAUHd$HAAHD$`HHt$RGHz%HcHT$Xu"IcAH|$`Ht$`HHGJH|$`蝶HD$XHtKHHd$pA]A\[SATH$HAHD$`HHt$FH$HcHT$XuMAHT$hHHcCr1Ht$hH|$`R01H|$`Ht$`HHIH|$`HD$XHtKHH$hA\[SATHd$HAHD$`HHt$FH/$HcHT$Xu!A1H|$`#Ht$`HHHH|$`SHD$XHttJHHd$hA\[SHd$HH4$HD$hHT$Ht$ vEH#HcHT$`uH4$H|$h蔺Ht$hHHnHH|$hĴHD$`HtIHHd$p[SATHd$HAHD$`HHt$DH#HcHT$Xu DH|$`Ht$`HHGH|$`4HD$XHtUIHHd$hA\[SATH$HAHD$`HHt$TDH|"HcHT$XuMAHT$hHHco1Ht$hH|$`01H|$`dHt$`HHGH|$`tHD$XHtHHH$hA\[SHd$HD$hHD$`HHt$CH!HcHT$Xu!D$hH|$`bHt$`HHFH|$`HD$XHtHHHd$p[SATH$HIHD$`HHt$CH,!HcHT$XuILHT$hHn1Ht$hH|$`薼01H|$`Ht$`HHEH|$`(HD$XHtIGHH$hA\[SATHd$HIHD$`HHt$GBHo HcHT$Xu#LHt$`I$Ht$`HH;EH|$`葱HD$XHtFHHd$hA\[SATH$HfAHD$`HHt$AHHcHT$XuMAHT$hHHc2m1Ht$hH|$`A01H|$`Ht$`HH}DH|$`ӰHD$XHtEHH$hA\[SATH$HAHD$`HHt$@HHcHT$XuIIcHT$hHwl1Ht$hH|$`膺01H|$`Ht$`HHCH|$`HD$XHt9EHH$hA\[UHHd$H]HHHH]H]UHH$PHXL`LhLpLxIIAAHEHUHu?HHcHULMtH@E|IcIcHHcH9~ADeHEHMHـHPM1H=25HH5H_AIcHPIcLH}HuLIELm_BH}趮HEHtCHEHXL`LhLpLxH]SATHd$HIHD$`HHt$>HHcHT$Xu L1H|$`4Ht$`HHAH|$`HD$XHt%CHHd$hA\[SHHH[UHH$pHxLeLmLuHIIIHEHUHu=HHcHUu"LLLH}fHuHH@H}8HEHtZBHHxLeLmLuH]UHH$pHxLeLmLuHIIIHEHUHu+=HSHcHUu"LLLH}覅HuHH!@H}xHEHtAHHxLeLmLuH]SHH5%ׄHH[SHHH[SH1H߾@8[UHHd$H]LeLmLuL}H}AHUIEEE}HHcׄHEHE HMHl}HPM1H=y.$2HH5H=E}HH6ׄHEHE HMH}HPM1H=,.1HH5H=IGE|IcIcHHcH9~ADmHEHMH|HPM1H=-z1HH5H(=EHEXE|IcIcHHcH9~ADuHEHMH;|HPM1H=h-1HH5H"H5HH-Eȅ}HH.DŽHEHE HMH7mHPM1H=D!H5HH-A]E|HcUHcEHHcH9~CEEHEHMHlHPM1H=!H5HH<-HEHtH@AHUHtHRHE؋UD)HEEEHEDeHEEIUHcEL4tDEA:u_IEIcH<IcHHuHuH5ga貇Hu4HMHUDLIEUgBAIEIcL4EHEAIAEHcIcH)HIcH9~ ED9lLmHEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}@uЈUHEEEu HEHEHEȅ}HHĄHEHE HMH(kHPM1H=5HH5H+E}HHĄHEHE HMHjHPM1H=HH5HA+HED`gA]Eȅ|HcEHcHIcH9~CEȉEHEHMHRjHPM1H=*H5HH*HEHPHcEL<D|#E1DAEA:uEAID9HEHEHEH]LeLmLuL}H]Hd$DG14Hd$Hd$DG1Hd$UHHd$H]LeHAD;c~ADeHEHMH|iHPM1H=iHH5H)CD9~ADeHEHMH3iHPM1H= HH5Hy)IcHEH5KH{HMH]LeH]Hd$HHH1 Hd$UHHd$H]LeLmLuL}IIA̅uL1}HH„HEHE HMH3hHPM1H=@HH5H(E}HH}„HEHE HMHgHPM1H=HH5HL(Eo|HcIcHIcH9~@]HEHMHmgHPM1H=EHH5H'IcL1vLHIWHcH<IcH]LeLmLuL}H]SATAUAVAWHd$IHD$H $HHtH@AHtHRD)AŅt[EfE~ gC4,LD$g<INHcT$IcHH4IcHcH)IFHcHE} gC4,LsIVHcD$H4IcH<$Hd$A_A^A]A\[H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0$HHcHT$puJHD$H|$@1!HD$H|$tH<$tH|$HD$HQ'HD$pHtpHT$xH$$H(HcH$u&H<$tHt$H|$HD$HP`&(&H$Ht))HD$H$H$H|$Ht$H$L$H|$uHD$HT$HRhHD$H|$HT$(Ht$@9#HaHcH$ujHD$ T$H|$1H$HtH@H~H4$H|$HD$ H|$tH|$tH|$HD$H%H$HtH$H$"HHcH$u'H|$tHt$ H|$HD$HP`% 'u%H$HtS(.(HD$H$H$H|$(Ht$ H$L$DD$DL$HDŽ$H|$ uHD$(HT$(HRhHD$(H|$(zHT$8Ht$P!HHcH$HD$0H$H$u!HHcH$u7HcD$HPHcL$H4$H$H$L$H|$(1R$H$ŲH$Ht%HD$0H|$(tH|$ tH|$(HD$(H$H$HtH$H$ HHcH$u'H|$ tHt$0H|$(HD$(HP`#)%#H$Htr&M&HD$(H$H$H|$Ht$$L$H|$uHD$HT$HRhHD$H|$HT$(Ht$@HHcH$uZHD$ HD$T$P4$H|$2HD$@HD$ H|$tH|$tH|$HD$H"H$HtH$H$9HaHcH$u'H|$tHt$ H|$HD$HP`0"#&"H$Ht%$HD$H$H$H|$Ht$$H|$uHD$HT$HRhHD$H|$HT$ Ht$8~HHcHT$xuIHD$$H|$1HD$H|$tH|$tH|$HD$HL!HD$xHtH$H$HHcH$u'H|$tHt$H|$HD$HP` v" H$Ht##HD$H$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8-HUHcHT$xuJHD$H$H|$@1kHD$H|$tH|$tH|$HD$HHD$xHtH$H$HHcH$u'H|$tHt$H|$HD$HP`$!H$Htm"H"HD$H$GHGHtH@HSATHd$HAHHKDH1HCMcB`Hd$A\[SATAUHAfADHHH,KDH1yHCMcfF$hA]A\[SATHd$HAHHH}KDH10fDH@HD9|DcHd$A\[UHHd$H]LeLmLuHAAAE|IcIcHIcH9~ADeHEHMH[HPM1H=+ HH5HH]LeLmLuH]UHHd$H]LeLmHAIE}ALmHEHMH[HPM1H= NHH5HH]LeLmH]SATAUAVHd$HIMMtMmE~*DsgC4.HLHSIcH4BIcHLsHd$A^A]A\[UHHd$H]LeLmLuL}IHuHUAEEgHUHBE|IcIcHHcH9~ADmHEHMHgZHPM1H= ?HH5HgC44LIGIcH4PIcHUH1Ht$hH|$`01H|$`cHt$`H !H|$`wHD$XHtHH$hA\[SATH$HAHD$hHD$`HHt$HHcHT$XuXDHT$pH>1Ht$pH|$h01H|$h蟠Ht$hH|$`Ht$`HHJH|$h蠁H|$`趣HD$XHtHH$xA\[SATAUHd$HfAAHD$hHD$`HHt$HHcHT$Xu9A˫IcH|$hHt$hH|$`Ht$`HHH|$h܀H|$`HD$XHtHHd$pA]A\[SATH$HAHD$hHD$`HHt$HHcHT$Xu\AHT$pHHcj<1Ht$pH|$hy01H|$hHt$hH|$`HcHT$XuAH|$`脫Ht$`HHH|$`脡HD$XHtHHd$hA\[SHd$HH4$HD$pHD$hHT$Ht$ }HHcHT$`u.H4$H|$p蛄Ht$pH|$hHt$hHHfH|$p~H|$hҠHD$`HtHH$[SATHd$HAHD$hHD$`HHt$HHcHT$Xu/DH|$hHt$hH|$`LHt$`HHH|$h ~H|$`"HD$XHt#HHd$xA\[SATH$HAHD$hHD$`HHt$HCHcHT$Xu\AHT$pHHc91Ht$pH|$h詇01H|$h+Ht$hH|$`lHt$`HHH|$h,}H|$`BHD$XHtCHH$xA\[SHd$HD$pHD$hHD$`HHt$= HeHcHT$Xu0D$pH|$h {Ht$hH|$`躠Ht$`HH$H|$hz|H|$`萞HD$XHtHH$[SATH$HIHD$hHD$`HHt$ HHcHT$XuXLHT$pH81Ht$pH|$h01H|$h蟚Ht$hH|$`Ht$`HHJH|$h{H|$`趝HD$XHtHH$xA\[SATHd$HIHD$hHD$`HHt$ HHcHT$Xu2LHt$hI$Ht$hH|$`)Ht$`HHH|$hzH|$`HD$XHtHHd$xA\[SATH$HfAHD$hHD$`HHt$ H"HcHT$Xu\AHT$pHHcy61Ht$pH|$h舄01H|$h Ht$hH|$`KHt$`HH H|$h zH|$`!HD$XHt"HH$xA\[SATH$HAHD$hHD$`HHt$ HCHcHT$XuXIcHT$pH51Ht$pH|$h譃01H|$h/Ht$hH|$`pHt$`HH H|$h0yH|$`FHD$XHtGHH$xA\[UHHd$H]HHHH]H]UHH$PHXL`LhLpLxIIAAHEHUHuHHcHULMtH@E|IcIcHHcH9~ADeHEHMHIHPM1H=HH5Ho IcHPIcLH}ٴHuLIELmo H}HEHt HEHXL`LhLpLxH]SATHd$HIHD$hHD$`HHt$HHcHT$Xu/L1H|$h軜Ht$hH|$`L1H}THuLLH}NHuH}褙HuHH H}fuH}]uH}tHEHtv HHhLpLxLuH]UHH$`HhLpLxLuHIIIHEHEHEHUHu5H]HcHUu>L1H}THuLLH}MHuH}褘HuHHH}ftH}]tH}tHEHtv HHhLpLxLuH]SHH5EHH[SATHd$HIHD$`HHt$GHoHcHT$Xu)LH|$`֗Ht$`HHH}H5H|$`諕HD$XHtHHd$hA\[SH1uH߾@([UHHd$H]LeLmLuL}H}AHUIEEE}HHcHEHEHMHDHPM1H=HH5HBE}HH>HEHEHMHDHPM1H=GHH5HIGE|IcIcHHcH9~ADmHEHMHDHPM1H=?HH5HEHEXE|IcIcHHcH9~ADuHEHMHCHPM1H=HH5H1HEHPIcHHEHEHMH2HPM1H=oH5HHA]E|HcUHcEHHcH9~CEEHEHMH62HPM1H=cH5HHHEHtH@AHUHtHRHE؋UD)HEEEHEDeHEffEIUHcEL4BtfEfA;u_IEIcHD$ D$D$<$H,D$(HD$l$\$D$D$<D$ D$D$<$H,D$(HD$l$\$D$D$D$Hd$8Hd$HYHf/zsf)H\f)f)HXf)H,HHHIH\&H$H,H3ukcHHH?HHZ D$H$Hd$Hd$HH*H^ H HcH-Z H*Hd$Hd$H<$|$|$fL$,$Hօ(l$|$l$D$D$ D$ H(,$<$,$|$D$D$HD$Hd$(Hd$H<$D$Ht($|$l$Hd$SATAUAVHd$fAfAfIfEvDfA'sAD$0$u%AD$$u AD$IcHT$HtHRH9} AwE1@ADD A|H|$1JE1H$D$EA@AIcH$0 s7IcH$41H$TH$Ht$H|$1K$ tIcH$< XIcH$8$t"$D90 AA~3H$1H$TH$H5xHhIc$H9uHD$HtH@H~Ƅ$Ht$H$f_DD f$ft3H$1H$SH$H5xH4H|$13IJIcH$0 r3H$1H$SH$H5wHE9.As?IcAH9~3H$1H$USH$H5vwH8H|$0OD$0E1DAD| ~H<$H5lw_HA|Au&$| $t $L 7A} L$$D$2"$:$v L$$t$(L$(t$$|_d}Z$uOH$p)LcH ףp= ףILHI?LHkdH$fpv9~dсHL$uH<$H5nvaGH$FH|$FH|$FH$HtD$H$A_A^A]A\[SATH$xH<$HIHD$hHT$Ht$ HHcHT$`u3Ld$xHD$p HT$pH1H|$hHHt$hH$H8FH|$hFHD$`Ht9H$A\[UHH$PHXL`LhLpLxIAHAHEHUHu H3HcHUu[LmL|ELELnHDLEH}t'HUH=ٔHH5HH}EHEHtAEHXL`LhLpLxH]UHH$pHpLxHH5/H}HEHUHu H1HcHUumLeLzDLHHtHRHHuH5| LEHM E1EH}t'HUH=ؔHH5HH5.H}H}CHEHtEHpLxH]Hd$HI0HxLHd$Hd$HIHHtHvHHuH= LzHd$Hd$H@0HxHAHPHHd$Hd$H0HxHHP1Hd$Hd$H@HHtHvHHuH= HHPHd$Hd$HHHtHvHHuH= HHP1Hd$SH$PHH4$T$HL$DD$HHDŽ$HT$8Ht$PHðHcH$T|$u HD$@D$D$(HT$(Ht$,HcukL$H$H$HWH$H$HDŽ$H$HHp1H$H$HA|$(uf|$, t fD$, |$(uf|$, ufD$,LD$ L$2T$0t$.|$,6ufL$H$H$HH$H$HDŽ$H$HHp1H$H$H,AWH$@H$HtD$ H$[SATAUAVAWH$ H<$H$H$HDŽ$HDŽ$xHDŽ$pH$H$ H赮HcH$`/Ƅ$H$Ƅ$1H$H$1Ҿ&1H$ fH$H$$;P}HHc$< t֋$H$H$HcPHHc$H9H :PH@:PsH$HHc$0 $H$HHc$D4Aƃ0 _$$ $H$A0t D$;A3AuH$HHc$<0tD$H$H$HcPHHc$H9~HD0 rAuD$$gPD)AA~AY$IH$IcHHDH$pH<$H$pH$h0f$$hH$$f$H$fHH$Ƅ$lA bH$D:pu4$$Ƅ$Ƅ$$H$H@D:pu9$ $a$QƄ$Ƅ$H$8+$$H$fDH$H$HcPHHc$H9H$L Hc$H$@H¹ H$0H= lH$0H$H@@H¹ H$PAD$Pr H$HHc$D0 N$gP$)AH$Hc$HHDH$pH<$yH$pH|$bH$H@H HHt$1H$pEH$pH$hH3H$hHPPH}H~1҅uH$H$H@H@(H$hHt$1H$xqEH$xH$pH$hH$pH PPH}H~1҅uH$zHt$1H$EH$H5sjuH$>Ht$1H$DH$H5WjRH$$u Ƅ$H$Ƅ$H$H$$;P$t7H$8tH$ff wft$uƄ$nH$9H$x9H$p9H$`Ht$H$A_A^A]A\[SATAUHd$H<$HIAA~AIcH߾ZIcHsL{Hd$A]A\[UHH$`H`LhLpLxHAAHEHUHuEHmHcHUuXLuL8LEH DH-EH}t'HUH=̔ܽHH5HH}\8HEHt~EH`LhLpLxH]UHH$pHpLxHH5"H}HEHUHuIHqHcHUuiLeL7LHHtHRHHuH5HME1 EH}t'HUH=˔ϼHH5HH51"H}XH}?7HEHtaEHpLxH]Hd$H@0HxHd$Hd$H@HHtHvHHuH=Hd$Hd$H0Hx1jHd$Hd$HHHtHvHHuH=}16Hd$SATAUAVAWH$pH<$HIIH<$i6II$HDŽ$HD$xHD$pHT$Ht$(XH耤HcHT$h+E1L136L1)6H4$H|$pHt$pH6H$HtH@HH؀x u5x u/H4$ &JH~LH4$5AAs1H|$x?Ht$xH=IHuX AIcH$H$HtHRH9lH$HD r ttrD{H4$oIAŅt)At#H$IcD r ttsEuH$HtH@AIcLH4$GIcHPH4$H$FH$H|$pHt$pL4I$HtH@HtA[AH؊P:Pt{I6HHH؊P:Pu)HI>Ht$>uI6L4L14@H$3H|$x3H|$p3Hw3HD$hHtDH$A_A^A]A\[SATAUAVH$HIHDŽ$xHDŽ$H$H$yH衡HcH$L$L2L$xL2LLLHmwtt2`HHP111$<H$HtH@H~hAL$ID$H$H$H$H$H$HtHvH$HuH=/$HL/HH$x$HL/HH$x$AL$ID$H$H$H$H$H$HtHvH$HuH=ze$$H$x,1H$1H$Ht=$H$A^A]A\[Hd$HH5HHd$SATHd$HIH$HT$Ht$ H>HcHT$`uHH1:LH<$)D$hHf0HD$`HtD$hHd$xA\[SATAUHd$HI$AHH0HDH$LHd$A]A\[SATAUAVHd$HH$IAIL/LLD$HbHd$A^A]A\[SATAUHd$HI$AHHHv/HDHi$L Hd$A]A\[SATH$HHI$HT$L$HHDŽ$H$HH$`tH蜝HcH$H$4H$0H$,H$($H$DH$@H$<H$8$D$HD$H$ MtL01H|01H5_^HgD$DHt$H$H$H.H$.H$Ht8H$A\[UHHd$H]LeLmLuL}H}HuȉHEЈM؋EЃ HUHuHHEHtH@L<EEIMfAEE<","t,t ,t), t%qI fDIM9v\AE:EtSLH55]Ht2LH5$]HtLH5]HuE IM9^E AH A>EHEMnE<  , ,,,, !,,L ,,,,, ,p, ,`, ,P,, DIM9v AE:EuILL)HUEgPIvH} LH5[HuLHEHEf8 sHEH@Hp H} tHEH@Hp(H} ZLH5y[HuEHEHEf8 sLH}. IvH} LH5 [HuEHEHEf8 sLH}IvH}HZH=H5HHoHEH@HHƺH}hMHEH@HHƺH}F+HE@t ELH}HE@t ELH} IM9vA}:EtLL)HUE< , tQ,#,,,,,,O,,,t!,,ULH}ME~ HE(ƺH}EHE(Qkd)ЉƺH}EtSAHtE؄tFHMHjGfTH,Hk8HHk<<HЉ1H}cHtE؄tEEuHE<1H}2HE<ƺH}gUpt t$t?_HE,1H}-HE,ƺH} HEHP,Ht8H}[HEHP,H˜H}6qUtt5tPtpHE01H}{&HE0ƺH}[HEHP4HH}HEHP4H0H}HEH@HpEgP0H}HEH@HpEgP0H}vEt8HUH0EfTH,Hk8Hȉ1H}7EtcHE8k )HEEu HEEuu1H}8uH}"EuHE81H}HE8ƺH}EtFHMHBDfTH,Hk8HHk<<HЉ1H};EuHE<1H}kHE<ƺH}KEtTHMHCfTH,Hk8HHk<<HHk<@HЉ1H}EuHE@1H}vHE@ƺH}VEuHED1H}1HEDƺH}fEu#HEH@Hp0EgPH}+HEH@Hp8EgPH}HEH@HpEgP0H}HEf8uf<uf@|H5LH},HEH@Hp8EgPH}LHEH@HpEgP0H}nH5oLH}HEH@Hp8EgPH}@A܊]HuH}HcEIM96H]LeLmLuL}H]Hd$H<$HcHcHT$D$|1@ʀ|  u D 09T$Ht$ H<$Hd$(SHd$H<$HHtH[H$HcPHcHH=};HcHuH5UH$H H$HcH H H$XHd$[SHd$H<$HH$HcJHcHH}2HcH $H HH$HcH H H$XHd$[Hd$HT$Ht$HD$ HL$HT$Ht$H|$ D$ dDL$DD$L$ T$t$<$Hd$(Hd$HS$Hd$Hd$؉HT$H$LL$LD$HL$HT$ Ht$T$t$|$1 D$ T$t$ |$@L$ UHd$(Hd$1Hd$SATAUAVAWHd$IIHAH$HT$Ht$ 誰HҎHcHT$`u6IL LAIvELޔH}AH<$苳HHD$`HtHd$pA_A^A]A\[SATAUAVAWHd$HHt$hIAH$HT$Ht$ H HcHT$`ucHHtH@HAtNILTLHHtHRHHuH5VEL+ݔLHT$hH<$A謲HHD$`Ht%DHd$pA_A^A]A\[Hd$HܔHPXHd$Hd$HܔHP1Hd$Hd$HܔHPHd$SATAUAVAWHd$IIHH$HT$Ht$ 轮HHcHT$`u[LMtH@HAtFILLLMtHRIHKLMuH5E1lAH<$AyHHD$`HtDHd$pA_A^A]A\[SATAUAVHd$HIAH$HT$Ht$ HHcHT$`u3IL`LHsEH K۔A$H<$ӰH+HD$`HtLHd$hA^A]A\[Hd$1DHd$SATAUAVAWHd$IIH$HT$Ht$ HFHcHT$`u\LMtH@HAtGILzLLMtHRLMuH5|DH QڔAH<$AٯH1HD$`HtRDHd$pA_A^A]A\[Hd$1$Hd$SATAUAVAWHd$IIHH$HT$Ht$ -HUHcHT$`uWLMtH@HAtBILLLMtHRHLMuH5E1AH<$AHEHD$`HtfDHd$pA_A^A]A\[SATHd$HIHD$`HHt$gH菉HcHT$Xu%H1H|$`%H|$`LHؔPYH|$`HD$XHtЯHd$hA\[Hd$HؔHd$SATAUAVAWHd$HIIHD$pHT$Ht$(謪HԈHcHT$hE0A|$H޺.AEAE~ Icŀ| uEIcHH޺H|$p,H|$pLH;~HHtHIIcH)IcHPHH|$pM,H|$pLHt$tBD$f)$AA$LLH[ALLHAЬH|$p&HD$hHtGDH$A_A^A]A\[Hd$1Hd$Hd$14Hd$SHd$HD$pHD$`HHt$H.HcHT$Xu,H1H|$`"H|$`H5g֔D$p<D$hH|$`GHD$XHthD$hH$[Hd$HD$HHHu D$$$Hd$Hd$HD$@HǁHu D$$$Hd$Hd$HD$@HǁHu D$$$Hd$Hd$1tHd$Hd$1Hd$Hd$HD$HHwu D$$$Hd$Hd$HD$@HH#u D$$$Hd$Hd$HD$@HHu D$$$Hd$SHf)[SHd$H$ $Լ$H$HHd$[Hd$Hd$HHu1ÐH<uHSATHd$HIL1HAHPHL{HHd$A\[SATHd$HM1)B#ar=sB<#OB#IB<#uHHd$A\[H10AsH€2 H<0uSATAUHAIEu!H葟HfF:$+uJ+ IB<+u1A]A\[SATAUAVHd$H@AIEu*H1L4&B<#nD8uN4#IB<#uM1LHd$A^A]A\[SATHd$HAHڞEuH&HH|HfHD:$uHH1HHd$A\[SATAUAVHd$I@ALmEuI2HH|'LpDIC<4D8uK4M1HHd$A^A]A\[SATAUHIL1H|IIUHLxJ+A]A\[H1>uH@ > 8H<>tH98SATAUAVAWII1A<AA<A+Et(Et#HA<AA<AE8tAAH)A_A^A]A\[IHu1ÐB FtEtIA8uL9AL)HSATAUAVAWHd$IIIHMu H$KA<AA<D$EtD$tHD8d$uI9AD$H)H$H$Hd$A_A^A]A\[SATHd$HIHHLHHd$A\[SATAUHIIHjHH)I)M~ LLHA]A\[SHHHvH[SATAUAVHd$HIHtTHtO3IHt?HxI-LHLBHuMI3LIMuLHd$A^A]A\[SATAUAVHd$HIHtTHtO3IHt?HI-LHLHuMI3LiIMuLHd$A^A]A\[Hd$1$Hd$SHd$HH$H$H$Hd$[SATAUHIHt/;t*H?LhDIHtIcLHtLA]A\[Hd$HHtH@HPHuH5Hd$SATHd$HHt0IHtMd$L9LBHuH5@LHB#HHd$A\[Hd$HHtH0HHd$HtG1Hd$HW1ҾHwHHx8uH HHB8H~Hx@uHpHiHB@H^HxHuHHIHBHH>HxPuHH)HBPHHxXuHPH HBXHHx`uHHHB`HHxhuHHHBhHHxpuHPHHBpHHxxuHHHBxH~HuHHfHHd$fr fw0SATHd$HIHD$`HHt$wH{HcHT$XfLMt HRHH~ fA|T v fDHH9| fA|D vHJH)HLH|$`IHt$`HI3$H|$`.HD$XHt蛡Hd$hA\[SATHd$HIHD$`HHt$觜HzHcHT$XuCLMtHIHH9| fA|D vHLH|$`HHt$`H2{H|$`-HD$XHtHd$hA\[SATHd$HIHD$`HHt$HzHcHT$XuHLMtH@ DHH~ fA|D vHLH|$`(HHt$`H1ƞH|$`<-HD$XHt=Hd$hA\[Hd$HPHd$Hd$HPHd$Hd$1HP Hd$Hd$1HP HHd$Hd$HoP Hd$Hd$HOP HHd$UHH$HLLLLHHuHUHMMHEHEHDžHDžHDž HpH0&HNxHcH( H1R0HEHtH@HEHEHEHE @ fDHEHUH;U HEf|P%uHEH;E~1HMHEH)HUHuH FH H3H0HEH;E0 H A<%H ,%0 ,tM,,,b,,,,,, 01HK t1LuL*LHMHEHHc|H R0ҾH t1LuLG*LHMHEHHDH8HQBH t/LuL*LHMHEHHDH8HQUIЉUHcUHEHtH@H)HUHEf8-tAHU0Hk#HH+HHUH}T.HEHP0H&#HH C+H HuHq01H t0LuL )LHMHEH|HP0ҾH t1LuL(LHMHEHHDH8HPBHF t/LuL(LHMHEHHDH8HCPUIЉUHcEHUHtHRH)HEH¾0H!HH*HHUH},F0Ҿ HtFHUHEHHDH0MMAH HH})HFHUHEHHTHH$fBfD$MUH1HH}A)0Ҿ HtFHUHEHHDH0MDE'HHHH}(+HHUHEHHTHH$fBfD$MM'HoHH}(0Ҿ HtCHUHEHHDH0MMA1HHH})(lHUHUHEHHTHH$fBfD$MU1HHH}'0Ҿ H_tFHUHEHHDH0MDE'HHH}j'HHUHEHHTHH$fBfD$MM'HHH}'D0ҾHtRHUHEHHTHH$fBfD$MM'HHH}& H8HUHEHHDH0MDE'HHH}?&0ҾHtHUHEHHtH}M%0ҾHtHUHEHtH}+,S0ҾHwtHUHEHHtH}.!0Ҿ HEtHUHEHHtH}&0Ҿ HtHUHEHtH}%-0ҾHtHUHEHHtH}'0Ҿ HtHUHEHHtH}$\0ҾHtHUHEHHtH}R'- HQtHUHEHHtH}SHEHtH@HEEtHcH;E}HcEHEHMHuH =H H}&sHHUHEHHtH:HH}*#-01HtHUHEHDIHE\0ҾHYtHUHEHHDL(HE+H(HUHEHHDL(HEHcEH;E~(ULH迹HH}o"rHEHEHEHHHL9wH|HcEH;E}EEULHZHH} "H}H5/X%}HEHtH@HcUH9}uOHcuHEHtH@H)ƁH8HH!HHUH}!%MHcuHEHtH@H)ƁHHHF!HHuH}$H3HHU$HEHEHEHEH;EUCHHH H}H}H(Ht茒HLLLLH]SATAUHd$H<$HAHD$hHT$Ht$ oHkHcHT$`E0H$HxuH$HPHP H$HPHPH$HPHHPH$HPH;PH@HH;t3Et#H$Hp1H|$h* Ht$hH$HhAH|$hNHD$`HtoDHd$pA]A\[SHd$H<$HH@H$@H$@D$H$H@H$HPH@f|B%u%QHCHHH;H$HPH@|B>ffv <&Hd$[Hd$H<$HHPH@f|B.u;H$HH@H<$H$xu H$@H$HH$@BHd$Hd$H<$H$xtH$HH$@BH$@Hd$Hd$H<$HHPH@f|B-uH$H@H$HH@ H$H@Hd$Hd$H<$HD$hHT$Ht$ ڊHiHcHT$`H$HHPH@f|B:t H<$ H$@H$HHPH@f|B:uZH$xu&H$HHp1H|$hHt$hLH$Hc@H$HHBH$@H$HH@MH|$hHD$`HtĎHd$xSHd$H<$HD$xHD$hHT$Ht$ HgHcHT$`H$x}H$HHPHP H$HH@H$HHPH;PH@fDPf=9wf=0sH$HHPH;P~&H$HHp1H|$hnHt$hH$HHPH@f|B*GH$HHxu H$HHXH$HHXH$HH@H$HHPH;PH;X~&H$HHp1H|$hHt$h蔼H$HHCHBH$HHPHHHHsHtHt'HtC`H$HHPHHH $DAgH$HHPHHHDH$BEH$HH@HHDH$B&H$HHp1H|$hHt$hͻH$HH@H$HHPH;PH$HHHH@H)H$HHPH$HHpH|$x3Ht$xHT$p>H$BfD$pfv3H$HHp1H|$hyHt$h* H$@HH|$xH|$hHD$`Ht赋H$[UHLe H]UHH$`H`LhLpLxL}H}AIԉMMHEHEHEHUHu\HdHcHUpH}*vH}=2HƉHLZLLHuH}*HEHtH@D9sHEHtH@DHuH}ZH}wH}nHEHtpH`LhLpLxL}H]UHHd$HH$H]UHH$pHxLeLmLuHIIIHEHUHuHCcHcHUuLLLH}HuH:H}HEHt莉HxLeLmLuH]UHL5@H]H1 f Vf PHfs0Hd$IHd$SATAUAVAWH$`IH$HH$DH$MH$HD$HT$Ht$(薃HaHcHT$hMA$L1HD$xHD$pH1H|$1HHtH@H$$uLH$c$t)H$H|$H|PHHHlPH$H|$HH H$HtH@H$H$HtH@Hc$H9LH$AIcHt$H<$/AE~IA$LR.IcHtPHc$HH$W$$AEuAfDIcHt$H<$/AE~$AA$$tEuA<$uLH$hH$HtH@AHcHc$H)Ic$HH$HtH@H4L%AE1IHuHHD$xH$HuHѷHD$p@IcHt$H<$7.AEDD)Å~+HcHHt$xH|$pUHcHHD$xHcHHD$pE~#IcHHt$xH$UIcHHD$x$AHc$HHD$pgEf$t EKH$HtHRIcH)‰Ӆ~HcHHt$xH|$pU\HH|$HD$hHt˄H$A_A^A]A\[Hd$HHtH@ DHH~ f|F v HH9| f|V vHHH),Hd$Hd$HHtHIHH9| f|V v+Hd$Hd$HHtHI DHH~ f|N v+Hd$SATAUAVAWHd$IHT$H$L<I?yE0IHuHIIHtH@AA|O1fDHt$A}nt(EuL*IHcLlPAAE$fAEIA9Hd$A_A^A]A\[Hd$H/*Hd$Hd$ H/ Hd$Hd$HHd$Hd$HtHd$Hd$1HRHd$Hd$1H2HHd$Hd$HHd$Hd$HHHd$UHH$HLLLLHHuHUHMMHEHEHDžHDžHDž HpH0|HZHcH( H1HEHtH@HEHEHEHE @ fDHEHUH;U HEf|P%uHEH;E~1HMHEH)HUHuH (H H3HHEH;EX H A<%p ,%X ,tM,,,b,,,,,, 01H{ t1LuL LHMHEHHc|H40ҾH7 t1LuL LHMHEHHDH8HT4BH t/LuL LHMHEHHDH8H4UIЉUHcUHEHtH@H)HUHEf8-tAHU0HHH H HUH}HEHP0HHH H Hu^+01H t0LuL LHMHEH|H30ҾH t1LuLZ LHMHEHHDH8H3BHv t/LuL LHMHEHHDH8H2UIЉUHcEHUHtHRH)HEH¾0HHH H HUH}sn0Ҿ HtFHUHEHHDH0MMAHHH}: HvHUHEHHTHH$fBfD$MUHHH} 0Ҿ H tFHUHEHHDH0MDE'HHH}x SH<HUHEHHTHH$fBfD$MM'HHH} 0Ҿ HKtCHUHEHHDH0MMA1HHH} H}HUHEHHTHH$fBfD$MU1HCHH}S .0Ҿ HtFHUHEHHDH0MDE'HZHH} H6HUHEHHTHH$fBfD$MM'HHH} l0ҾHtRHUHEHHTHH$fBfD$MM'HHH},  HhHUHEHHDH0MDE'H/HH}0ҾH tHUHEHHtH}0ҾHtHUHEHtH}0ҾHtHUHEHHtH}Z0Ҿ Hut2HUHEHHtH HH} 0Ҿ H0t2HUHEHtHHH}O 0ҾHtHUHEHHtH} 0Ҿ HtHUHEHHtH}Ko0ҾHtHUHEHHtH} @ H[t-HUHEHHtH躄HH}z HEHtH@HEEtHcH;E}HcEHEHMHuH}juHHUHEHHtH褝HH}/01HtHUHEHDIHE\0ҾHctHUHEHHDL(HE+H2HUHEHHDL(HEHcEH;E~(ULH)HH}tHEfHEHEHHHL9wH|HcEH;E}EEULH›HH}rH}H5}}HEHtH@HcUH9}uOHcuHEHtH@H)ƁH蠜HH H HUH}MHcuHEHtH@H)ƁHQHH H HuH}:H3HHU+HEHEHEHEH;E-sHHH H}H}H(HttHLLLLH]SATAUHd$H<$HAHD$hHT$Ht$ oHMHcHT$`E0H$HxuH$HPHP H$HPHPH$HPHHPH$HPH;PH@HH;t3Et#H$Hp1H|$hHt$h;H$HhAXrH|$hHD$`HtsDHd$pA]A\[SHd$H<$HH@H$@H$@D$H$H@H$HPH@f|B%u%QHCHHH;H$HPH@|BU!ffv Hd$[Hd$H<$HHPH@f|B.u;H$HH@H<$H$xu H$@H$HH$@BHd$Hd$H<$H$xtH$HH$@BH$@Hd$Hd$H<$HHPH@f|B-uH$H@H$HH@ H$H@Hd$Hd$H<$HD$hHT$Ht$ :mHbKHcHT$`H$HHPH@f|B:t H<$ H$@H$HHPH@f|B:uZH$xu&H$HHp1H|$hHt$h謠H$Hc@H$HHBH$@H$HH@oH|$hHD$`Ht$qHd$xSHd$H<$HD$xHD$hHT$Ht$  lHHJHcHT$`H$x}H$HHPHP H$HH@H$HHPH;PH@fDPf=9wf=0sH$HHPH;P~&H$HHp1H|$hHt$hH$HHPH@f|B*GH$HHxu H$HHXH$HHXH$HH@H$HHPH;PH;X~&H$HHp1H|$hCHt$hH$HHCHBH$HHPHHHHsHtHt'HtC`H$HHPHHH $DAgH$HHPHHHDH$BEH$HH@HHDH$B&H$HHp1H|$h|Ht$h-H$HH@H$HHPH;PH$HHHH@H)H$HHPH$HHpH|$xUHt$xHT$pA!H$BfD$pfv3H$HHp1H|$hHt$h芝 H$@lH|$xH|$hHD$`HtnH$[UHLŖH]UHH$`H`LhLpLxL}H}AIԉMMHEHEHEHUHuhHFHcHUpH} vH}HƉHL]=LLHuH}*HEHtH@D9sHEHtH@DHuH}=`kH}H}HEHtlH`LhLpLxL}H]UHHd$H`H$H]UHH$pHxLeLmLuHIIIHEHUHu{gHEHcHUuLLLH}HuHujH}HEHtkHxLeLmLuH]UHL@H]SHHHH;H[SATHd$HHIHtMd$L9LBLHH;fBcHHd$A\[Hd$HHtHRHd$SATAUHfAIfEu(H`HC%fF;$kuJkIfBHcHT$Xu&{ IAH|$`HT$`HL cH|$`HD$XHtdHd$pA]A\[SATHd$HI HHL Hd$A\[SATAUHd$HIMMtMmIIcH$H5ДHHߺ1E~IcH3L4Hd$A]A\[SATAUHIMMtMmILH?IIIcHE~Hp HIcHL/4A]A\[HHtH@HHd$IHd$SATAUAVAWH$`IH$HH$DH$MH$HD$HT$Ht$(^H;\$ HD$pH5%ݔHL$pH= o#ZUH= 螴HD$hHtVH$[Hd$fDH $ HrH=P ˳Hd$Hd$H=$sH=( óHd$1SATAUAVHd$HHIIMHD$`HHt$JQHr/HcHT$Xu LLHt$`& HT$`HLATH5۔H|$`!HD$XHtUHd$hA^A]A\[UHH$`HhLpLxLuL}HIIHMMDDeHEHUHuPH.HcHUu$ELLHu HULH}OzSH5;ڔH}J HEHtTHhLpLxLuL}H]SATAUHHafH  L$L9uACrH2 H8|(H  H1HcL$L9uA9E0DA]A\[SATHd$HImHLHHd$A\[SATHd$H<$HIH;t%H3HT$HD$tHHT$Hnt HQKHHT$HKt 2H.HHT$H(t H L#D$D$Hd$A\[SATHd$H<$HIHD$HT$Ht$(aNH,HcHT$h~Ht$HH HD$HtH@HA$H$HHtHIHA$HcH9|~0ۄt)Ic$H$H0H|$H9uA e(HADPH5H|$UtHD$hHtfRHd$xA\[SHHtH@HHu1HHtHIH1É[UHHd$H]LeLmLuL}IHAAE|IcIcHHHtH@HH9~ADmHEHMH}HPM1H=bmCHH5HNE}ADeHEHMHWHPM1H=mBHH5H}NIcH4CDLIH]LeLmLuL}H]SHHu1&HHtHRHuH5˂HHÉ[UHHd$H]LeLmLuL}IHAAE|IcIcHHHtH@H9~ADmHEHMH1HPM1H=lAHH5HwMA}ADeHEHMH HPM1H=kAHH5H0MIcHtCDLIH]LeLmLuL}H]SATAUHd$HIILHHOHcH$H5HLI$HtH@HH~4M$MtM@II $LMtHRHLHHHd$A]A\[UHHd$H]LeLmLuL}IIHAEE|IcIcHHHtH@HH9~ADmHEHMHHPM1H=oj"@HH5HKE}ADeHEHMHdHPM1H=)j?HH5HKDDHL)HcHEH5HMLMMtM@IIcH4CIDLIH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuAAMELMtH@HÅu3E~.HHPH=5i=HH5HJE|A9~ADeHEHMHeHPM1H=h>HH5HKJE|IcIcHHEHtH@HH9~ADmHEHMHHPM1H=h8>HH5HIE}ADuHEHMHzHPM1H=?h=HH5HIIcI IcHUH4BD)ADH}LMIHUEH]LeLmLuL}H]SATAUHd$HIILHHHcH$H5iHLQI$HtH@HH~0M$MtM@II $LMtHRLHHHd$A]A\[UHHd$H]LeLmLuL}H}HuAAMELMtH@HÅu3E~.H=HPH=fH;HH5HFHE|A9~ADeHEHMHHPM1H=fM<HH5HGE|IcIcHHEHtH@H9~ADmHEHMHTHPM1H=9f;HH5HGA}ADuHEHMH-HPM1H=e;HH5HSGIcI IcHUHtBD)ADH}LMIHUEH]LeLmLuL}H]SHHHtHRHHu1HHtHRHHHÉ[UHHd$H]LeLmLuL}IHAAE|HHtH@HIcH9}ADeHEHMHSHPM1H=d:HH5H9FIcH4DLIH]LeLmLuL}H]SATAUHd$HIILHHHcH$H5͔HLI$HtH@HH~4M$MtM@II $LMtHRHLHHHd$A]A\[UHHd$H]LeLmLuL}HIIAEE|LMtH@HIcH9}ADuHEHMHHPM1H=uc(9HH5HDDDLHHcHEH5̔HMLM$MtM@IIcJ4(I $DHHH]LeLmLuL}H]UHHd$H]LeLmLuL}IIAՉHEMDE|LMtHRHIcH9ADmHEHMHꐕHPM1H=ob"8HH5HCLMtH@HHU؅|E9|@]HEHMHIHPM1H=b7HH5HoCHcI DIcI4U)AЋULIHUEH]LeLmLuL}H]SATHd$AD=-tt2-7tItb{H=gHg(HyH=hHh(H[H=dHd(H=H=eHe(HDH=cHc0HHHd$A\[UHH$pHpLxLmHHEHUHu@H-HcHUH1H} H}fAfAuAH]HEHMH$HPM1H=)`5HH5HAAԾH=2bH+b0IBH}HEHtDLHpLxLmH]SATAUHd$HIIH$HT$Ht$ ?H)HcHT$`uTLMtH@HHu L13LHHLfLH$HtHRHH4$YAH5ȔH%eHD$`Ht6CHd$pA]A\[SATAUAVAWHd$IIHAEH$HT$Ht$ '>HOHcHT$`uHGHD$`HtH@Hd$pA]A\[SATAUAVAWHd$IHAIEH$HT$Ht$ 7;H_HcHT$`uVLIƁIcHHHpH$HtH@D9AO݅~HcHLH<$=HpHD$`Htq?Hd$pA_A^A]A\[ËGSATHd$HIHD$`HHt$g:HHcHT$Xu+HHƁH|$`ŕHt$`LS=H|$`詩HD$XHt>Hd$hA\[H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$09HHcHT$puXHD$H\H|$E111HD$H8HD$H|$tH<$tH|$HD$Hs>HD$H$H$H|$Ht$$H|$uHD$HT$HRhHD$H|$HT$ Ht$8^8HHcHT$xuRHD$$H|$E111HD$H8HD$H|$tH|$tH|$HD$H#;HD$xHtH$H$7HHcH$u'H|$tHt$H|$HD$HP`:M<:H$Ht=q=HD$H$H$H|$ Ht$$L$DD$H|$uHD$ HT$ HRhHD$ H|$ BHT$0Ht$H7H-HcH$HD$(HT$ $BHD$ T$PHD$ T$P$=|-~ -7| HD$ @ HD$ @HD$(H|$ tH|$tH|$ HD$ H9H$HtH$H$16HYHcH$u'H|$tHt$(H|$ HD$ HP`(9:9H$Ht;;HD$ H$Hd$DGOWH=]XHVX8Hd$SATAUAVAWHd$IIHAH$HT$Ht$ Z5HHcHT$`ILǤLIcH1HpX0H0sLIƁHUH$HtH@HD$hH5$HL$hL H$HtH@H~H$HtHRI7H<$ 7H"HD$`HtC9Hd$pA_A^A]A\[SATAUAVAWIIHAMLLIcH1LHHƁL0LHeW0kA_A^A]A\[SHd$HHHH=-tHtq-8H$H5ߣHHߺHH@H@{H$H5HHߺHH@MH$H5yHHߺaHH@H$H5KHHߺ3Hd$[H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$02HHcHT$puNHD$H|$1HD$@HD$H|$tH<$tH|$HD$H]5HD$pHtpHT$xH$ 2H4HcH$u&H<$tHt$H|$HD$HP`564H$Ht77HD$H$Hd$H=UHU(Hd$gvH$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$01H,HcHT$puNHD$H|$1&HD$@HD$H|$tH<$tH|$HD$H3HD$pHtpHT$xH$|0HHcH$u&H<$tHt$H|$HD$HP`t34j3H$HtH6#6HD$H$Hd$H=wUHpU(Hd$gvSHd$HHH$H5ퟔHHߺHH@H@Hd$[SHHD9AO؅~Hc"[HcHH?HHSHHHcHH?HHD9AOHcH[SATHd$HIHD$`HHt$.H HcHT$Xu+HHƁH|$`Ht$`L1H|$`HD$XHt 3Hd$hA\[H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0-H HcHT$puUHD$H|$1HD$@HD$@ HD$H|$tH<$tH|$HD$H0HD$pHtpHT$xH$e-H HcH$u&H<$tHt$H|$HD$HP`]01S0H$Ht13 3HD$H$Hd$H=SHS(Hd$SATAUHd$HHIAH$HT$Ht$ ,H HcHT$`IcHHO0LHaH$HtH@HHD$hH5HL$hHߺhHHtH@HH~HHtHRHH3H<$"/H蚽HD$`Ht0Hd$pA]A\[Hd$HHHcHH?HHHNH4aHd$HcHH?HHSHd$HHH$H5HHߺuHH@Hd$[D9AOHcH%D>@9HH9v@>@9HHH9wHcHH?HHD9AOHcHQHDADf9HHH9wSATHd$HIHD$`HHt$W*HHcHT$Xu+HHƁH|$`赅Ht$`LȽC-H|$`虙HD$XHt.Hd$hA\[Hd$H=RHR(Hd$SATAUAVAWHd$IIHAHD$`HHt$)HHcHT$Xu>L-{DHHt$`HHHt$`LLTLLYd,H5uH|$`3HD$XHt-Hd$pA_A^A]A\[SATAUAVHd$HIIAH$HT$Ht$ (HHcHT$`ugEu L1詘VIcHD$hH5HL$hHIcLH4$WHHwH$LDHH|+H5HNHD$`Ht,Hd$xA^A]A\[SHd$HHH$H5MHHߺ5HH@Hd$[HHtH@HH1-H>HcDLHcLHcATA9H>HcDT9H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0D'HlHcHT$puBHD$HD$HxHD$H|$tH<$tH|$HD$H*HD$pHtpHT$xH$&HHcH$u&H<$tHt$H|$HD$HP`)K+)H$Ht,o,HD$H$SATHd$HIM~ HHH{XHtMt HHPpHd$A\[Hd$HBHd$Hd$HHx_Hd$Hd$HHxHd$Hd$HHxHd$H$(H|$H4$HuHD$HT$HRhHD$H|$OHT$Ht$0D%HlHcHT$pHD$HD$HHT$HHD$H0HD$ǀHD$ǀ10@1HT$HHD$H|$tH<$tH|$HD$H'HD$pHtpHT$xH$b$HHcH$u&H<$tHt$H|$HD$HP`Z'(P'H$Ht.* *HD$H$SATAUAVAWIIM~ LIII踇I MdIDMM$$LiMu|MtMt LIPpA_A^A]A\[UHHd$H]LeLmHAHH@IHouLE0A} ~6HEHÃH=OHH5H$HAU Ey!uUA} u HHHƆ@HԆH1wxAE DH]LeLmH]UHHd$H]LeH@0IHuAT$ x!tfcxA)D$ IA|$ uH%0Hu HTH(A|$ u7LH*HH= NkHH5Hi#H]LeH]UHHd$H]LeH@IA|$ Hd|SHGt HH薄s*H_H=[MHH5H"HH1%uAD$ H]LeH]UHHd$H]LeH@0IHtUAT$ v!tFAl$ A|$ ubHcu9v HLH*HH=tLHH5H!H]LeH]HH 1HH 1HH$1H011ЃSATAUAVAWIE0HjeHHt HB8 HBHHMLHH 1HH 1HH$1HH011ЃA!MlAE;.uuAMmMtI;]uMEtJDMl;DAE;tu!I}5tAD;5tuI]MmMuMu@eII]AE tAEMmDI|L,IELA_A^A]A\[SHHtHCZDtC[=ytu(mtHtfDYtHH?uItSATAUH$pIHH$HQHD$HD$HDŽ$HD$xHT$Ht$0FHnHcHT$pH4$H|$蠩L1HH3H|$k|Ht$=7AHcHHt$H$H$H|$x4H|$xHt$%Hu*HL$HtHIIcH)IcHPLHt$ȞHH;`H$H|$x܋HԋH|$ʋH|$HD$pHt H$A]A\[SATAUHIAH1fDAII<$tAI<$tI4$H1fA]A\[SATHd$HIHD$hHD$`HHt$HHcHT$Xu+L1H|$h諮Ht$hH|$`VHt$`HzH|$hЊH|$`ƊHD$XHtHd$xA\[SHHH8tHH H1[SHd$HHD$hHD$`HHt$HHcHT$XuEHxH8tHHh*1H|$hHt$hH|$`iHt$`H1zH|$hۉH|$`щHD$XHtHd$p[SHd$HHD$hHD$`HHt$HHcHT$Xu(1H|$hHt$hH|$`脛Ht$`HH|$h8H|$`.HD$XHtOHd$p[SATAUH$pHAAHD$hHD$`HHt$FHnHcHT$XDH|$`ZHt$`HEt?H|$`蕈H3H.H|$`Ht$`H|$h譵Ht$hHЈHHD$pH|$`HD$`HD$xHGHH$Ht$pH1ɺNH|$hH|$`HD$XHt&H$A]A\[Hd$0$[Hd$SHd$HHD$`HHt$ H4HcHT$Xu1H|$`Ht$`H蟙 H|$``HD$XHtHd$p[Hd$@C\Hd$SATAUH$pHIIH$HT$Ht$ ^HHcHT$`H?H8tHLLH)Mu He LHسMuH4$H1HKLH4$H1 E1H$HD$pHD$h D$HD$xHT$hH߹H5<_AH;@:uH;@;uHHD$`HtH$A]A\[Hd$11Hd$SATAUAVH$xIIIH$HD$HD$pHT$Ht$(HHcHT$hLH5ut;$HD$xHT$x1H5CH|$p9^HT$pH4$H1趆LH|$ptHt$pH$H|$HD$HtH@~HcHPLH|$ ubH|$p踄H谄H|$覄HD$hHtH$A^A]A\[Hd$HH8H Hd$Hd$HH8H [Hd$SATHd$HHIHt-LH50HHuI$H8Het0Hd$A\[Hd$HH4$HT$HHtHHHu0Hd$SATHd$HH4$HT$IHt[HH0HHPHL$H tLHH|$HD$HtLH4$HT$H t0Hd$A\[Hd$Ht t0Hd$Hd$HHd$SATAUAVHd$HIIH$HT$Ht$ HGHcHT$`u,ILLLd$hLl$pHt$hHT$pH HHD$`HtHd$xA^A]A\[SATAUAVHd$HIIH$HT$Ht$ HHcHT$`u,ILPLLd$hLl$pHt$hHT$pH!jH"HD$`HtHd$xA^A]A\[Hd$HtH?> Ht0Hd$Hd$Ht H4$HT$H4$HT$ Ht0Hd$Hd$Ht Ht0Hd$UHHd$H]HHuHduAH]HE HMHXHPM1H=qHH5HHEHUH]H]SATAUHd$HHHtH@H&tE0$HuH=yGH|$Hd$HD$8{t$HD$HDAH%A H%A H%A H% A H%A H%A H%A D+Hd$HD$8-t$HD$HUDA HE%A H2%A H%A fDkHd$HD$8-t$HD$HDA H%A H%A H%A fDkHd$HD$8-t$HD$HDAH}%A DkHiDAHY%A Dk Hd$HD$8-t$HD$H,DAH%A Dk HDAH%A Dk HDAH%A Dk HDAH%A Dk HDAH%A DkHxDAHh%A DkHd$HD$8}t$HD$D$$DHd$ A]A\[Hd$H<$@H$HR:tH$H$H@Hd$Hd$H<$HG<0rP,9v,rH,v/,r@,v:H$H@01H$HRa H$HRA H$H$HB%Hd$Hd$H<$Ht$HT$HL$HHT$; uH;JuH;Ju @ ;B u0Hd$(UHHd$H]LeLmLuIIIօ|:˃DHcHIILLeLmH}HuXu лH]LeLmLuH]SH$@HH4$HT$H1Ҿ&輌$D$HD$D$D$(HD$ D$D$8HD$0D$D$HHD$@D$ D$XHD$PD$ D$hHD$`D$ D$xHD$pD$ $HDŽ$D$ $HDŽ$D$$HDŽ$D$$HDŽ$HL$H;HuH=AA Hffi&VH$[H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8 HHcHT$xuSHD$H|$1THD$HxH4$zHD$H|$tH|$tH|$HD$H HD$xHtH$H$) HQHcH$u'H|$tHt$H|$HD$HP`  H$HtHD$H$UHH$H}HuHUHMLEHDžH}uHEHUHRhHEH}bHUHx\ HHcHpHEHXH" HJHcHu7H}1HUHMHuHQHHEHxx HTxHHts HEH}tH}tH}HEH HpHtlHXHcHHcHPu#H}tHuH}HEHP`_ U HPHt4HEH]H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8HHcHT$xuVHD$H|$1DHD$HxH$H0owHD$H|$tH|$tH|$HD$Hn HD$xHtH$H$H>HcH$u'H|$tHt$H|$HD$HP`  H$Ht HD$H$UHH$H}HuHUHMLEHDžH}uHEHUHRhHEH}eHUHx<HdHcHpHEHXHH*HcHu:H}1HUHEH0HMHfNHHEHxuH1uHHtP HEH}tH}tH}HEHHpHtlHXH@HhHcHPu#H}tHuH}HEHP`< 2HPHt HEH]H$H|$Ht$H$L$H|$uHD$HT$HRhHD$H|$HT$(Ht$@HHcH$u_HD$ H|$1HD$HxH4$KtHT$D$BHD$ H|$tH|$tH|$HD$H>H$HtH$H$H HcH$u'H|$tHt$ H|$HD$HP`eH$Ht HD$H$UHH$H}HuHUHMLEDMHDžH}uHEHUHRhHEH}lHUHpH0HcHhHEHPHHHcHuAH}1mHUHMHuH5KHHEHxrHEЋUPHqHHtHEH}tH}tH}HEHYHhHtlHPHH-HcHu#H}tHuH}HEHP`HHtHEH]H$H|$Ht$H$L$H|$uHD$HT$HRhHD$H|$HT$(Ht$@IHqHcH$ubHD$ H|$1HD$HxH$H0qHT$D$BHD$ H|$tH|$tH|$HD$HH$HtH$H$HHcH$u'H|$tHt$ H|$HD$HP`"H$HtkFHD$H$UHH$H}HuHUHMLEDMHDžH}uHEHUHRhHEH}oHUHpHHcHhHEHPHHHcHuDH}1-HUHEH0HMHGHHEHx>oHEЋUP_HnHHtHEH}tH}tH}HEHHhHtlHPHHHcHu#H}tHuH}HEHP`IHHtnHEH]SATH$xHIHD$xHHt$4H\HcHT$XuWH;H$H$1H|$xwHD$xHD$`HHD$hHCHD$pHt$`L1ɺqH|$xJmHD$XHtkH$A\[Hd$HxtHHd$H$H|$Ht$$H|$uHD$HT$HRhHD$H|$HT$ Ht$8HFHcHT$x#HD$$=@6=y=t|=== Q= = = ==W+HfEHPH|$1VGH*IHPH|$1:+HnDHPH|$1HHHPH|$1HHHPH|$1HzGHPH|$1HGHPH|$1H"HHPH|$1H&HHPH|$1vjHGHPH|$1]QHTIHPH|$1D8$$HDŽ$H$HFHPH|$M11ZHT$$BHD$H|$tH|$tH|$HD$HHD$xHtH$H$HHcH$u'H|$tHt$H|$HD$HP`8H$Ht\HD$H$SATAUAVAWH$IIAH$HDž8t,H@HHt H+8 H+HH*H?HHt H(8 H'HHILHǛHH1r+LH$HH1U+:H1љ+Hd+LH=Et\LI}HHH1+HdH1u+IUH1wb+HU+LH=f}Qt\LHH1虉$+I}HhHH1{+HH1e*H興*&LHH1=*H`*LLHHKHH1 *H/*E~[gEoE|QADALIcH$H4HHHH1豈<*Hԇ/*E9LHhH1膈*H詇*H$A_A^A]A\[HkH5(N4HcH9uHkH5NHÃ|1SATAUAVHd$IIՉ؃|+t-ttL5 L5sHtHPHxI1҉؃Rtmt{ UH;HHH<HHHAHHH8HHHB=HHH=HHnH<9HH^H8HHNH:HH>H,;HH.H<;HHHL;HHH<=HHHtH=\oI1\$H$HHD@HM1H=)IA^H>;HHt HO*: HB*HfLLLHd$A^A]A\[Hd$5Hd$UHH$`HhLpHDžxHUHuHHcHUtW]HEHxs/HxHEHE HMH=HPAH=ZIH>?HPH=IA\$H5HL Hx^cHEHtHhLpH]Hd$tHd$SATAUAVH$XHIAIH$HD$hHT$Ht$ @HhHcHT$`H1H|$hlH|$huHz5HpHb HH1lH$HD$xHD$p L$HDŽ$D$HDŽ$HL$pH4HPAH= HLMtILMtIvoH|$haHaHD$`Ht H$A^A]A\[Hd$HH=:HHH|~HH;HPH=H@H9HPH={H@H4H}HHSH}HHªHHd$Hd$HD@H=9H=@H=2}Hd$SjHu1\HH[SJHu1 HcHT$xu5,Ht$T$|$D$~HcD$HD$D$)D$|$|$/ HD$xHtp H<$t$QH$H$H<$HD$HDŽ$HT$Ht$0[HHcHT$p>@H=gD$ D$|$HT$xH$H-HcH$H|$1Ҿ$iiH|$jHƋ|$ $^HcH|$1?iHD$HtH@H$D$|$tlH$XH勃H$HD$H$H鋃H$H$1ɺH$[H$H $HHQP|$ H$Ht0H$WH|$yWHD$pHtD$H$SH'u H߾F1[IHcHCH:DuHD$@;D$~gET$E@Ɓ4$H|$tHD$@$HD$@D$EtHt$H|$D$HD$@;D$uHD$@;D$HD$@D$wHD$T$;PHHc<$HpHcҊD9:Du0D tDHT$HH|$,HD$T$;PH8Hc4$HHHcҊD7:Du0ۃ$D$tHD$@;$,tHD$@;D$}AE0DHd$ A]A\[SATAUHd$H<$HIAA4$H<$;E$fDH $D;A";yLHcLIIcAt2A:t u0҃AtuEt;E$Hd$A]A\[SHd$H<$H3H<$Hd$[SHd$H<$G)gXH$H@HcH|0HcCHHHI…DHd$[SHH;t=HxuHHxt HHx觶H5H;XH;H[SATAUAVAWH$IIHHDŽ$H$H$`H舲HcH$IG(Ht@%~HLAHL褴AEt_HLAIG(@D!Au?LH$WH$HCEoHD$0IGD$AG0D$XAAH$(CH$HtFDH$A_A^A]A\[SATAUAVAWH$`IH$H$HD$HD$HDŽ$HD$xHT$Ht$0H9HcHT$pH$Mw(MwI~lLxuKHxuDA>uHH5\vBIcIvHTH<$HuH=9 蔳IFIcHPINHtHIIvH|$TE0I~ADI~HHuH|$1+BHsH|$A1ɺQMH|$uAHj0H|$0K`Ht$H|$LtgH|$x^AIcIvH$TH$HT$H|$xBH|$xH$LAńt 1H$ E H$@H|$x@H@H|$@H|$@HD$pHt$H$A_A^A]A\[SATAUAVAWHd$IAHT$hIH5wH|$hHD$`HHt$HHcHT$X%AH|$h1Ҿ8yM HH5\{H$H1Ҿ EHD$hHX(D CL?~THu?L*gTHu(LH|$`赜H|$`LHt$hStaE1\LH|$`荜Ht$`H{?HCHtH@ fD+H؋~H@HcҀ|/uLH|$h!AEtHD$hHx(H|$`>HD$XHtDHd$pA_A^A]A\[H$hH萲}D$XH$SH$HH$H$H$HHcH$uJHH`Ht$H<$RÅ}Ht$H<$Å}Ht$H<$3H=H$HtH$[SHd$HH$HT$Ht$  H3HcHT$`u%HH蜚H<$HuH='HU=HD$`HtvHd$p[SATHd$HIH$HD$HT$Ht$(mH蕫HcHT$hu+HHLH|$Ht$H<$裭YHHd$(Hd$HH|$H|$H|$H<$H Hd$Hd$HHT$HT$HPH$LH L@ HHHPHpHHd$Hd$fDˆH5 `|`DgPH5z|zˆH5r =|H5!H=*@`ˆH5: @|@DgP H5Z|ZˆH5 =|H5H=@Hd$Hd$%Hd$SH$HH{HH1>H$[SHH脪HH17?[Hd$H$H8蜦Hd$Hd$HHHH0DHd$UHH$0H8L@LHLPLXIHH`HEHEHUHuHHcHUHELH}3H}EH0H}QHtHHH}3H}EH0H}QH}&HEHHEH1H}HUHEHuHHHEH@蔦AŅuHuH}ƥtAunHEHpHDžh EHDžxHhHHPAH=:ӓݸIAFH5HLDAHt H}E|AugHEHpHDžh DeHDžxHhHHPAH=ғNIEfH5HL H}w1H}n1HEHtDH8L@LHLPLXH]UHHd$H]LeLmLuL}III։HEÅuLLL[!cu^LeHE EHEHMHHPAH=ѓIIAEH5HLHU؋E؅|E؃u\LeHE E؉EHEHMHHPAH=-ѓжIŋEAEH5HLtEH]LeLmLuL}H]SHd$HS㥛 HHH?HH$HHHi@BHT$@Ht$HCHD$H$HD$HD$u tHd$ [Hd$ƞHd$SHd$HHD$`HHt$蜿HĝHcHT$Xu/HH5TH;tH3H|$`6\Ht$`HY/H|$`.HD$XHtHd$p[SHd$HHD$`HHt$ H4HcHT$XuQHH5b9H;u"H|$`Ht$`H1Hb/H3H|$`[Ht$`H.H|$`(.HD$XHtIHd$p[SATHd$HAHD$pHD$hHD$`HHt$EHmHcHT$XEtHH>H0ZH|$`Ht$`HZH|$hH|$htGH|$`q-H|$pǢHT$pH3H|$`.Ht$`H|$hZHt$hH-H|$`*-H|$h谢HT$hH3H|$`.Ht$`H|$p:ZHt$pH]-H|$p,H|$h,H|$`,HD$XHtHd$xA\[SATAUH$pHAAHD$pHD$hHD$`HHt$ݼHHcHT$XEtHHH0~YH|$`rHt$`HeYEH|$hrH|$htGH|$`,H|$pVHT$pH3H|$`-Ht$`H|$hYHt$hH3,H|$`+H|$h?HT$hH3H|$`8-Ht$`H|$pXHt$pH+HHD$xH|$`HD$`H$HHH$Ht$xH1ɺg/ҾH|$p(+H|$h+H|$`+HD$XHt5H$A]A\[SATHd$HAHD$`HHt$7H_HcHT$XHtH8tHDHsNHH5_BH;uHH5:\-H;uHH5_H;uHH5_*H;tH3H|$`pWHt$`H*辽H|$`*HD$XHt5Hd$hA\[SHd$HHD$`HHt$u/؅|H\H4L 9L1 -IEAU)HHHЃHL1oHd$A^A]A\[SATAUAVAWH$HHHtH@HuH$ILHIL IE1H$A>uRLH[H8耹u1H$LH[HxZ~H$lI]4fHH}HuAEgB H$HHHA$u;u$uLLMH$$H$A_A^A]A\[SH;u%11HHHHH8uHVH[SATAUHHAAjGHHDD A]A\[Hd$H$HH Hd$SATAUAVAWH$@H$IHӈ$HD$xHHt$oHyHcHT$X LILEH$H$H$1% IT$HH?HHHH$ID$HHH$ID$HPHH?HHHH$$AA$D9u D$ADgAAIcDHHH$HHHIcHHIcHAH$H8uH$DH$TH$HHT$`H@HD$hDH$H|$xHD$xHD$pHt$`H$1ɺq D98$D9$tAHN@HD$`H$HHD$hHR@HD$pHt$`H$1ɺ wH|$xHD$XHtH$A_A^A]A\[Hd$0Hd$SATAUHHIAZDHHDLA]A\[SATAUHd$HIAH1I$HtH@HiAIcI$H$HtHRH9"H$IcD t,t [t]tuIcHI4$HߺIcL1!Hd$A]A\[SHCHH [Hd$HHH $Hd$UHH$0H0L8L@LHLPHpHhHXHEHEHUHujHuHcHUkHpH`HpHX1oH`@ILXHhH}HEHtH@HHcHEHEHtH@H9"HUHcD tӃ,t΃[tɃ]ttHcHH}HuH}H}HuLÅ}KHEHEHDžx HxHuHPM1H= SmHH5HAʼn؃AHcLIc 44H}XH}jH}aHEHt胚H0L8L@LHLPH]SATHd$HHIH@HLHHd$A\[HHHWHGHSATAUAVAWH$H$HHwzfH$IHP@HHIMfAÃ|7E1@AI|$+HgHt>LP+H+HHID9L`>H$H$HwM1LH$A_A^A]A\[SATHd$IątMtL?rM1LHd$A\[SATHd$HA荄HDHHd$A\[Hd$H?Hd$Hd$1Hd$Hd$1Hd$UHHd$H]LeLmHIHIHuALeHE HMHHPM1H=OVHH5HLH]LeLmH]UHHd$H]LeLmLuHIALHIHuALeHE HMHHPM1H=iÖHH5HzLH]LeLmLuH]UHHd$H]LeLmHIHIHuALeHE HMHHPM1H=NFHH5HLH]LeLmH]UHHd$H]LeLmLuHIALHIHuALeHE HMHHPM1H=YN輇HH5HjLH]LeLmLuH]fG*f%Hd$HHd$Hd$HHd$G*Hd$VHHd$Hd$FHHd$SHd$F*ttvt hHFH]F QF*u HFH$HHFHH$H|$F*tv H|$$ H|$$ÈHd$[SATAUAVAWHIIIvHH1gfDLIHP@HHIA$AI8DAD$(H<u AD$(L$LHP+H+HHIAEL09IHuA_A^A]A\[SATAUAVHd$HIAE1 fDAE9~DHHp+I|$+E9~!IcIcH)HIcHtDH6xHH5HH]LeLmH]Hd$1Hd$SATHd$HIH*HLH,Hd$A\[Hd$1Hd$SATHd$HpIHtMtI<$H'ruM1LHd$A\[SATHd$HIHHHLH Hd$A\[Hd$Hd$Hd$HI,HHHd$Hd$H,HaHHd$SATHd$HIHLHHL Hd$A\[UHHd$H]LeLmHIIH1XefAE*f%ftf-tf-~lIELH0H efAE*f%f=u IEHEI$IEHHELeAE*tAU HH}UQHH}UEIE+HEHEHMHKHPM1H=@<uHH5HQH]LeLmH]SATHd$HIHHHLH Hd$A\[UHHd$H]LeLmHIILj*<,t ,AD$*t}vsID$H<LcAD$*u ID$HEHID$HHEH]AD$*tAt$ H}LU~H}LUrID$+HEHEHMHϗHPM1H=:GtHH5H*H$H=lrHH5HH]LeLmH]SH7HH [Hd$Hd$SATHd$HIHHHLH Hd$A\[Hd$vHd$SHHH [UHH$`H`LhLpHIHEHUHu|H[HcHUM1L=(8fAD$*f%ftf-~f-~sID$HL(fAD$*f%f=u ID$HEHID$HHEH]AD$*tAT$ H}HuULm]H}HuULmLID$+HEHDžxHxHŕHPM1H=8rHH5H}~H5']H}KHEHthLH`LhLpH]SATHd$HIHHHLH Hd$A\[UHHd$H]LeHIHUL&8AD$*tv,L{&HID$H<Hu!AD$*u ID$HEHID$HHEH]AD$*tAt$ H}HUUSH}HuUFID$+HEHEHMHHPM1H=)7pHH5H:|H]LeH]UHH$`HhLpLxHIIHEHEHUHuyHWHcHUqH1L+%<U,tY,i,t ,t'<LLH}YHuH1 LLH}G HuH1 fAE*f%ftf-f-~AEJ4 H1fAE*f%f=u IEHEI$IEHHELeAE*t(AU H}HUHH1xWH}HUHH1T3IE+HxHDžpHpH+HPM1H= 5nHH5H1zfAE*f%ftf-tf-~lAELH0HfAE*f%f=u IEHEI$IEHHELeAE*tAU HH}UZHH}UNIE+HxHDžpHpHFHPM1H=;4mHH5HLywzH}H}HEHt{HhLpLxH]UHH$`HhLpHIHUHDžxHEHUHuvHTHcHUyL"<g,t],x,t ,t&NHuH} HULH-HuHx HxLH AD$*tv!AD$H<HUuAD$*u ID$HEHID$HHEH]AD$*t-HUHxHxAt$ H}U_HUHxHxH}U7ID$+HpHDžhHhH鎔HPM1H=1akHH5HwAD$*t}vsAD$H<HuAD$*u ID$HEHID$HHEH]AD$*tAt$ H}HUU\H}HuUOID$+HpHDžhHhHHPM1H=1yjHH5H'vRwHxH}HEHtxHhLpH]SATHd$HIHLWHHLHd$A\[SATHd$HIHH'HLHHd$A\[SATHd$HIHLHHL9Hd$A\[SATHd$HIHHHLHHd$A\[UHH$`H`LhLpHIIHEHUHurHQHcHUAH1 L3<%,t,t ,t<,t%LLH}eHuH)HLLVfAE*f%ftf-tf-~lIELH0HyfAE*f%f=u IEHEI$IEHHELeAE*tAU HH}UWHH}UKIE+HEHDžxHxH~HPM1H=s.gHH5HstH}HEHt(vH`LhLpH]UHH$`H`LhLpHIIHEHUHupH$OHcHU9L]<',t,t ,t>,t'L1H}HULHLLH^AD$*tzvpID$H<LAD$*u ID$HEHID$HHEH]AD$*tAt$ H}LUXH}LULID$+HEHDžxHxHHPM1H=,eHH5HqrH}.HEHtPtH`LhLpH]SATHd$HIHLHHL9Hd$A\[SATHd$HIHHHLHHd$A\[UHH$`H`LhLpHIIHEHUHunHLHcHUAH1L#<%,t,t ,t),t8LLH}UHuHHLL6fAE*f%ftf-tf-~lIELH0HifAE*f%f=u IEHEI$IEHHELeAE*tAU HH}UWHH}UKIE+HEHDžxHxHnHPM1H=c*cHH5HtopH}HEHtrH`LhLpH]UHH$`H`LhLpHIIHEHUHulHKHcHU9LM<',t,t ,t+,t:L1H}HULHLLH>AD$*tzvpID$H<LAD$*u ID$HEHID$HHEH]AD$*tAt$ H}LUXH}LULID$+HEHDžxHxHvHPM1H=(aHH5HmnH}HEHt@pH`LhLpH]UHH$PHPLXL`HIIHDžxHEHEHUHu kH1IHcHUH1L`<c,tY,w,t ,t'JLLH}HuH1(LLH}|HuH1LLHxGHxHXfAE*f%ftf-tf-~lAELH0HfAE*f%f=u IEHEI$IEHHELeAE*tAU HH}UZHH}UNIE+HpHDžhHhHmHPM1H=b&_HH5HsklHxH} H}HEHtnHPLXL`H]SATHd$HIHLHHLHd$A\[UHH$PHXL`LhHIIHEHEHUHuhHFHcHUZL<H,tQ,t`,t ,t%3LH} HULH LH}HULHLLHAD$*tzvpAD$H<LAD$*u ID$HEHID$HHEH]AD$*tAt$ H}LU[H}LUOID$+HxHDžpHpH HPM1H="$]HH5H3i^jH}H}HEHtkHXL`LhH]SATHd$HIHHgHLHHd$A\[UHHd$H]LeHI}fAD$*f% ftf-f-LH6t,t#,t1,tI,tW ID$H}ID$H}ID$HHHUf@fEID$H(}ID$HH) (*}fAD$*f%f=u ID$HEHID$HHEH]L%Hmt,tV,,<AD$*uH}UEE}At$ H}UEE}AD$*uH}UEE}At$ H}UEE}AD$*uH}U}At$ H}U}AD$*uH}UH (}dAt$ H}UH (}HFID$+HEHEHMH<~HPM1H=1!ZHH5HBfmH]LeH]UHHd$H]LeHIAD$*t'LlHt,t#,t1,tJ,tX4ID$Hm"ID$HmID$HHEHfEfBID$Hm8ID$HmH *8AD$*u ID$HEHID$HHEH]LHt,tV,,fAD$*um]EH}UAAt$ m]EH}U%AD$*um]EH}UAt$ m]EH}UAD$*uHEH$fEfD$H}UHEH$fEfD$At$ H}UAD$*uH}mH` (}HuUkAt$ H}mH= (}HUUHFID$+HEHEHMHo{HPM1H=WHH5HcH]LeH]SHd$HHH<$,$Hd$[UHHd$H]HHUH$fUfT$HHHHH]H]UHHd$H]LeLmHIHEHEfAD$*f%ftf-f-~,ID$L,MIEHEIEHEfAD$*f%f=u ID$HEHID$HHEH]AD$*tAt$ H}UHEHUWH}UHEHUFID$+HEHEHMHyHPM1H==VHH5HaHEHUH]LeLmH]UHHd$H]LeLmLuHIIIAD$*tvID$HL(LpAD$*u ID$HEHID$HHEH]AD$*tAt$ H}LmLuHUHMU_H}LmLuHuHUUFID$+HEHEHMHxHPM1H=UHH5H`H]LeLmLuH]SHd$H"HHwH$HT$H$HT$Hd$[SATAUHd$HIIHHHL$$Ll$H$HL$HUHd$A]A\[UHHd$H]HHu.H_HPH=LRHH5H_H]H]SATAUHIIHH8HLLHA]A\[SATAUHIIHkH8SLLHHSA]A\[SATHd$HIHLHHLYHd$A\[SATHd$HIHHHLHiHd$A\[SATHd$HIHLWHHL9Hd$A\[SATAUHIHAL'HHDL&A]A\[Hd$Hd$SATAUAVHd$HIIAHH8)HDLLHHd$A^A]A\[SATHd$HIHHHLH Hd$A\[SATAUHIIHH8LLHHA]A\[Hd$HHd$Hd$HHd$S8[S(8[Hd$HHd$Hd$HHd$SHHH\[$f$tH}H~G0@:7r1HWHk H2Hk HGHHWH:u1HHH?u1HHHWH:u1HHHTH:u1HHHWH:u1HH| W HcH91HG HJ HH HHGHHGHHd$HHHP gKHd$f;w r1ùHHWHHH?u1O HHWHHHGHf vO HHHH?tHHGHf vO HHHH?tHHd$HHHPJHd$SATHd$ffGf=tf9wM1&HGHI@LHIffwLHd$A\[HG!HHSATHd$ff;rM1 Lg DL(IffwLHd$A\[Hd$Hd$W HG HHHd$HHHPIHd$HGHPGHHd$HGHPGH<vHd$Hd$HHHP7IHd$Hd$HHHPH@H¾ IHd$HGHPGHHHHd$HGHPGHHPH<Hd$Hd$HHHPHHd$HGHPGHHW H:u1HHHW H:u1HHHWH:u1HHHPHHH?u1HHHWH:u1HHH?u1HHH?u1HHHd$HHPHHHPGHd$HWH:u1HHHWH:u1HHH?u1HHH?u1HHSATHd$ff;rM1 LgDLxIffwLHd$A\[Sf?u HHH7H#HH[H?u1HHHG+HPG+HHG+HPG+HH HtH@HH fD|H HcHH;<uHd$u1H HcHHTHHd$SATHd$HL%Mt Md$IIcHH$H59HH=d$HSIcHHHAMcIJD Hd$A\[SATHd$HH58HyHT$Ht$(2SHZ1HcHT$hHÃH8H HcHH<HV~HD$pH5>8HL$pH|$$H$L%sMt Md$IIHB8H SHcHH4H AIcHH<}H8H #IcHH4H}McLd$pH598HL$pH=k#VUH57HxHD$hHtVHd$xA\[UHH$HLLH}HuHUMHEHEHUHXQH/HcHPHE8t.H8HPH=yhLFHH5HJSH}HEHMHtHEHcPHcEHH9}.H7HPH= hEHH5HRH}HEHu H}HEH36HEH0H}!EHEHtH@HEHcEHEHHHH55HHH}к!H0HYPH.HcHHH}HDHH}HEH4E̋UgD$AE|aEEHUHcEHLlH}IuFlu.H6HPH=fDHH5HQD;eHMHcEHcUHHL$UEA$HuI|$mEH;]7RHcEHcUHHUHtHRHH9t.HcEHcUHHH54HH}кK Hl4H}Hu HHHtSRH5B4H}quH}XHPHtwSHLLH]SATAUAVHd$HAfIHt`MuMtMvII>IUIcHHDH$HH<$juIUIcHD$AAuE}DHd$A^A]A\[Hd$Hd$Hd$H5D0H=} htH= LH53H=n ItHd$Hd$Hc Hd$Hd$ Hd$Hd$Hc Hd$Hd$IHcHcHc!Hd$Hd$HLcHcHcH¿ Hd$Hd$HH}; Hd$Hd$HH~ Hd$Hd$HAHcHH¿r Hd$Hd$HcKHd$Hd$HMcL $HcHcMIH Hd$Hd$IMcL $MHHcHcMпf Hd$Hd$McL $MIHHcHcп9 Hd$Hd$IHcHcHHd$Hd$IHHcHcпcHd$Hd$IHHcHcп3Hd$Hd$HHHcH¿Hd$ Ё  Hd$1Hd$Hd$HcHd$Hd$HHcH¿&Hd$Hd$HcHcHd$Hd$HHcHd$Hd$HHcHd$Hd$HHckHd$Hd$rMHd$Hd$q-Hd$SATH$HAE|A}|dIcH H-uHÃHD$HH|$(;HD$(HD$HvÃHD$ HT$H߹<E!HJ4H*@H$(A\[SATH$HAHHHtHz:H H5yzHH1{HHHtHPz8H H5@zHHƒ1NzDHHHtHHtHz8H H5yH1HzH;HHtHy:H H=yH^zH$A\[SATH$HfAfDfEf-f-f-f-f-f-f- f-U-f-;f-If-Wf-ef-sf-f-^f-f-f-f-f-f-f-f-f- f-f-)f-7f-Ef-Sf-af-of-}f-f-f-f-f-f-f-f-f-f-f- f-$HHHp HHHpHH)HpеHHHp踵HHyHp蠵HHHp舵HHHpp|HHqHpXdHHHp@LHH!Hp(4HHIHpHHqHpHHyHpHHHpȴHHiHp谴HHчHp蘴HHHp耴HHAHphtHHiHpP\HH1Hp8DHH9Hp ,HHHpHHɅHpHHqHpسHHHpHHHp訳HHHp萳HHQHpxHHHp`lHHHpHTHHHp0<HH1Hp$HHHp HHAHpHHiHpвHH1Hp踲HHHp蠲HHHp舲HH錔Hpp|HH1HpXgHH\HpCRHHHp.=HHRHp(HH=HpHHHHpHHtH@HuGAHxmH1H苻H01HHHHp1DzH$A\[UHHd$mm H]UHHd$m؛H]UHHd$mH]UHHd$mH]UHm>?H]UHHd$EEH]UHHd$EEH]UHHיffH]UHHיffH]UHH1H]UHHיH]UH@tH]Hd$% Hd$SATAUfAAfD ǁCD CA A]A\[Hd$&%Hd$SATHd$fAfD ߁SCAHd$A\[Hd$?Hd$SATAUfAAffDf%f ǁBD CD?A]A\[UHHd$H]HH]HEHMHHPM1H=24HH5HO@H]H]UHHH@H=H 3HH5H @H]HcH HH?HH?H H/ %/)Hf/ %f/)UHm%m ʁ)H]UHHd$H^(m}mH]UHHd$H.(m}mH]UHHd$H(m}mH]UHHd$H(m}mH]UHHd$mH(}mH]UHHd$mH(}mH]UHHd$H~(m}mH]UHHd$HN(m}mH]Hd$D$H.^D$D$<$(H!(D$D$D$\$D$H/zs(HX(Hd$Hd$D$H^D$D$<$H(D$D$D$\$D$Hf/zsf)HwXf)Hd$(UHHd$mH=(<$1H*(m}mzsmH(}mH]UHHd$HEH$fEfD$}mH]UHHd$m}mH]UHHd$m}mH]UHHd$m}mH]UHHd$m}mH]UHHd$HEH$fEfD$mm|$}mH]UHHd$mzumz s}6}/HEHD$fEfD$mm<$q}mH]UHHd$HEH$fEfD$}mmH{(}mH]UHHd$HEH$fEfD$a}HEHD$fEfD$mmH(<$$}mH]UHHd$mH(z s}XmH(zvHHHUf@fE,mH(<$}mm}mH]UHHd$HEH$fEfD$q}mH]UHHd$HEH$fEfD$}mH]UHHd$HEH$fEfD$}mH]UHHd$mmm}mH]UHHd$m}mm}HEHD$fEfD$HEH$fEfD$"}mH]UHHd$HEH$fEfD$}m<$mH(}mH]UHHd$m}m } m mzvmm m}7mzvm mm }HE HEfE(fEmH]UHHd$mH(}mH]UHHd$m m}mH]UHHd$mH](zwm}[m}mzuHEHEfEfE2m}mzvmmmm}mH]UHHd$m z u }mzum z v }m H(zYrWHE H$fE(fD$z9u7HEH$fEfD$}}fMm m}mܛ}4}mm <$}mH]UHHd$mz u u}J} m}I}(fDm}ƒtmm}mH]UHHd$HE HD$fE(fD$HEH$fEfD$o}mH]Hd$HHHD$l$<$$|$HD$Hd$UHHd$}}fMmm}mHEH$fEfD$ %HEH]UHHd$}}fMmm}mHEH$fEfD$ %HEH]UHHd$}}fMmm}mHEH$fEfD$HHEH)H]UHHd$}}fMmm}mHEH$fEfD$HEH)H]UHHmzmmH*zJvH@mH*}.mH*zw'@mH*}mzvHUHfUfPH]UHHd$ЉH .HH$fQfT$m}mH]UHHd$HHH}mH]SHd$HHM<$\$D$,$<$,$Hd$ [UHHd$HHH}mH]Hd$<$gF|Hc,$<$9,$Hd$UHHd$HHH}mH]SHd$HHM<$\$D$,$<$,$Hd$ [UHHd$HHH}mH]Hd$<$gF|Hc,$<$9,$Hd$UHHd$HHH}mH]SHd$HHM<$\$D$,$<$,$Hd$ [UHHd$HHH}mH]Hd$<$gF|HcHk ,$,<$9,$Hd$1gV|HcH4H9UHHH]SHd$HHHD$l$<$\$D$,$<$,$Hd$ [UHHd$HHH}mH]1gV|HcHc4H9UHHH]SHd$HHHD$l$<$\$D$,$<$,$Hd$ [UHHd$HHH}mH]UHHd$HHH}mH]Hd$<$gF|+HcYD$D$,$<$9,$Hd$UHHHH H]Hd$9:gF|0fDLcB<$,$)9,$*:9Hd$UHHd$HHH}mH]Hd$<$gF|+HcYD$D$,$<$9,$Hd$UHHHH H]Hd$9:gF|0fDLcB<$,$)9,$*:9Hd$UHHd$HHH}mH]Hd$<$gF|!HcHk ,,$<$9,$Hd$UHHHH H]Hd$9:gF|AfDLcMk NL$fFDfDD$,$)9,$*:9Hd$UHHd$+ZH$(}m} ZH(m}mzsmHV(mmm m}mH]SATAUAHcIcH)HHHI>YIʼnDHcLA]A\[SATAUHIHL)HHHIYIHLLA]A\[SATAUAVHd$HAIIDH=A}A>gAD$|'DHcAmA.A>9Hd$A^A]A\[UHHd$HHH}mH]Hd$<$,$Hd$UHHHH H]SATHd$HIHH}A<$HcHH\$l$,$A<$Hd$A\[UHHd$HHH}mH]SHd$Hu<$HOHcHH\$l$<$,$Hd$ [UHHd$HHH}mH]Hd$HHHT$H,$Hd$(UHHd$HHHh}mH]Hd$F<$,$Hd$UHHd$HHH}mH]SHd$HH=\$D$<$,$Hd$ [UHHd$HLUH}H|$L$HHH]UHHd$H]LeLmH]L]:*H^ME}HgDVE|!AfDA*:HE9m*:9A8A9gF|pAfDA*]M((Y(UE)9(YMEA(A8(YMEA)A9HD9m)9mA(A8mA)A9))A(;)A)A;H]LeLmH]UHHd$HHH}mH]Hd$<$,$Hd$SATAUAVHd$HAIIDHA}A>gAD$|'DHcAmA.A>9Hd$A^A]A\[UHHd$HHH}mH]Hd$<$,$Hd$UHHHH H]SATHd$HIHH}A<$HcHH\$l$,$A<$Hd$A\[UHHd$HHH}mH]SHd$Hu<$HOHcHH\$l$<$,$Hd$ [UHHd$HHH}mH]Hd$HHHT$H,$Hd$(UHHd$HHHh}mH]Hd$F<$,$Hd$UHHd$HHH}mH]SHd$HH=\$D$<$,$Hd$ [UHHd$HLUH}H|$L$HHH]UHHd$H]LeLmH]L]:*Hd݃^ME}HgDVE|!AfDA*:HE9m*:9A8A9gF|uAfDA*]Mf)f)Yf)UE)9f)YMEA(A8f)YMEA)A9HD9m)9mA(A8mA)A9))A(;)A)A;H]LeLmH]UHHd$HHH}mH]Hd$V<$,$Hd$SATAUAVHd$HAIIDHA}A>gAD$|+DHcHk Am, A.A>9Hd$A^A]A\[UHHd$HHH}mH]Hd$<$,$Hd$UHHHH H]SATHd$HIHH}A<$HcHH\$l$,$A<$Hd$A\[UHHd$HHH}mH]SHd$Hu<$HOHcHH\$l$<$,$Hd$ [UHHd$HHH}mH]Hd$HHHT$H,$Hd$(UHHd$HHHh}mH]Hd$F<$,$Hd$UHHd$HHH}mH]SHd$HH=\$D$<$,$Hd$ [UHHd$HLUH}H|$L$HHH]UHHd$H]LeLmH]L]:*H؃^ME}HgDVE|!AfDA(*:H E9m*:9A8A9gF|PAfDA*/}m}m)9mmA(A8mA)A9H D9m)9mA(A8mA)A9))A(;)A)A;H]LeLmH]UHHd$HHH}mH]Hd$<$,$Hd$UH|1Hc;~Hcʋ9H]UH|1Hc;}Hcʋ9H]UHHH]gV|1Hc;~Hc9UHHH]gV|1Hc;}Hc9UHHd$HHHH]gF|1ҐHc/z vHc9UHHd$HHHH]gF|1ҐHc/z sHc9UHHd$HHHH]gF|1ҐHcf/z vHc9UHHd$HHHH]gF|1ҐHcf/z sHc9UHHd$HHH}mH]Hd$HH$fGfD$gF|71҃HcHk ,$,zsHcHk H 7H $fL7fL$9,$Hd$UHHd$HHH}mH]Hd$HH$fGfD$gF|71҃HcHk ,$,zvHcHk H 7H $fL7fL$9,$Hd$9ON9LMH9HOHNH9HLHMH9HGHFH9HBHC/zw(/zr(f/zwf)f/zrf)UHHd$m mzsHEHEfEfEHE HEfE(fEmH]UHHd$m mzvHEHEfEfEHE HEfE(fEmH]99|0H9H9|0f/z w f/zr09O9LHH9HOH9HLf/zvf)f/zsf)HIу/z u HS҃HT/Hd$H,҃Hd$Hуf/z u H ҃HϣfTf/Hd$HуHHD$fBfD$D$ D$ <$Hd$(UHm zuHуHHE fBfE(mm H]UHHd$HуHHD$fBfD$HEH$fEfD$H]Hd$$$%=Hd$Hd$$D$%=HPu 8u0tu0Hd$UHE%=HE8u@%u0tu0H]Hd$$$%=Hd$Hd$$D$%=HPu 8u0 Hd$UHE%=HE8u@%u0 H]UHHd$E%fU( fEHEHEfEfEmH]UHHd$m0m }m}mmzsHEHEfEfEHEHEfEfEH[σ(m}mHGσ(zsHEHE0fEfE8H$σHHE0fBfE8m mzvm mm0mm m0H]UHHd$|$ HE HD$fE(fD$HEH$fEfD$H]Hd$HL̓ Hd$Hd$H,̓f/f)HfTf)HꟍfT f/zwf)d$ D$ H ΃(|$l$H̓(zsHD$H$fD$fD$H̓HH$fBfD$,$\$ T$ f/zsf)\f/ \f/Hd$(Hd$HD̃ Hd$Hd$H$̃/(H랍T(HޞT /zw(d$ D$ H0̓(|$l$H̓(zsHD$H$fD$fD$H̃HH$fBfD$,$\$ T$ /zs(\/ \/Hd$(Hd$D$L$D$^D$D$D$<$D$D$D$D$D$D$\$D$Hd$(Hd$D$L$ D$^D$ D$D$<$1D$ D$D$D$D$D$\$D$Hd$(UHHd$m m<$m m}mH]UHH$pm m<$m m}m }m}HEHD$fEfD$HEH$fEfD$|$ it}mH]@ED@HEHD@uf)9u09~H9u0H9~H9u0H9v(\HT/zr0 /zvf)\HfTf/zr0 f/zvUHm mm0zr0m mzsH]Hd$D$@HɃH H $fRfT$s\$L$D$^H-H*YHd$(UHHd$@H ɃHH$fQfT$}mm}țmm}mH]Hd$D$@H;ɃH H $fRfT$\$L$D$^H-H*YHd$Hd$D$@HȃH H $fRfT$HH_\$D$D$HHǃD$/zOsMD$YD$Hȃ\D$D$<$D$D$D$\$D$D$KD$YD$HKȃXD$D$<$5D$D$D$\$D$D$D$Hd$(Hd$D$ @HǃH H $fRfT$HH_\$D$D$HPƃD$ f/zOsMD$ YD$Hǃ\D$D$<$D$D$D$\$D$D$(KD$ YD$HRǃXD$D$<$4D$D$D$\$D$D$(D$(Hd$8UHHd$@H ƃHH$fQfT$HHa}mz's%mmHŃ(<$m}#mmHŃ(<$m}mH]UHHd$H]HH~9H]H]UHHd$H]HH~9H]H]UHHd$H]HH~9HH]H]UHH$pH]mzum0EEm }gm}HUH$fUfT$EE|$.}mm}u mm}mm0mm }mH]H]UHH$ HXL`LhAE1HŃHHUf@fEmHŃ(}HE HD$ fE(fD$(HEHD$fEfD$HEH$fEfD$D}HE HD$ fE(fD$(HEHD$fEfD$HEH$fEfD$D~۽pmm0mۭpH\ă(}mm}AmHJă(zw AHEHEfEfEmHXL`LhH]UHHd$mzum@m0m }m}u mm } mm@m }mm0m }mzthm%m ʁ)Hmm@@ )HHH}H+ÃHHEfBfEmmm}mH]UHH$pH]mzum m0EE}gm}HUH$fUfT$EE|$}mm}u mm}mm m0m}mH]H]UHH$pH]mzum0EEm }gm}HUH$fUfT$EE|$N}mm}u mm}mm m0m}mH]H]GHd$H@Hd$SHH]H@[Hd$FH@@Hd$Hd$&H@HHd$Hd$H@`Hd$Hd$H@XHd$Hd$@Hd$Hd$@Hd$Hd$v@ Hd$Hd$V@$Hd$Hd$6@8Hd$Hd$@4Hd$HG GGGtHHd$@8Hd$Hd$vH@PHd$GTG\GXGPHHHHHcHHSHWH[HGHGHG`HGXHGPG8HGHHG@GGG G$G8Hd$@4Hd$GlGhGtGpHGxHd$HPHHd$UHHd$E$;H]UHHd$H]LeLmLmLUL] H](Le0HE8HD$(Ld$ H\$L\$LT$L,$A:H]LeLmH]Hd$耥Hd$UHHd$L]LUHE HD$LT$L$蒢H]Hd$@Hd$Hd$0Hd$Hd$耟Hd$Hd$Hd$Hd$`Hd$Hd$Hd$HcHFHHcH7HH!HHHHHHG@HP@ fP@HHHd$HbH@0Hd$Hd$HH@Hd$Hd$HH@8Hd$SATHd$H t HI HILHd$A\[SATHd$Ht HI H7ILHd$A\[SATHd$Ht HI H7ILHd$A\[Hd$H@Hd$Hd$H@8Hd$Hd$HH@0Hd$Hd$HNH@Hd$Hd$H.H@8Hd$Hd$Hx8MHd$HHGHP fPGHP fPGHP fPHd$趢Hd$SHHH[SHHHL[SHHH[SHHH[SHgHH[GlHPl fPlGlHPl fPlHd$趏Hd$Hd$Hd$Hd$fHd$Hd$vHd$Hd$Hd$Hd$fHd$SATHd$Ht H4I HgILHd$A\[SATHd$H@t HI HGILHd$A\[Hd$VHx8-Hd$Hd$6H@0Hd$Hd$H@(Hd$Hd$@0Hd$HGXSH_0xHH[Hd$vHd$Hd$Hd$Hd$H}Hd$Hd$VHd$Hd$FHd$Hd$H}Hd$Hd$Hd$Hd$FHnHd$Hd$Hd$Hd$Hd$Hd$覶Hd$SHHH[SHHH[SHHH\[SHHH[SHgHH<[H@8u#He@8uH!A8u H@H8Hd$fHd$SHHH[SHHH[Hd$vHd$SHHH\[SHHHL[Hd$xHd$SHHH [SHHH[Hd$覄Hd$H?8H/?8Hm?8H?8HI?8H?8Hd$֣Hd$SHHH\[SHHHL[SHHHL[SHHH<[SHgHH[Hd$Hd$Hd$H^Hd$Hd$&@Hd$Hd$%Hd$SATAUHAHHIH@A EeA]A\[SATAUHAHHIHAD#`EeA]A\[Hd$薘Hd$Hd$zHd$Hd$H^Hd$Hd$Hd$SHHH[Hd$&Hd$HHd$Hd$Hd$nHd$Hd$nHd$Hd$超Hd$Hd$6Hd$Hd$Hd$Hd$fHd$Hd$Hd$Hd$Hd$Hd$FHd$UHE H]UHE H]UHE H]UHE H]UHE H]UHHE H]UHHE H]UHHd$E H]UHHd$E H]UHHE H]UHE H]UHE H]UHHE H]UHHE H]UHHE H]UHHd$HE HEHE(HEHEHUH]UHHE H]UHHE H]UHHE H]UHHE H]UHHE H]UHHE H]UHHE H]UHHE H]UHHE H]UHHE H]UHHE H]UHHE H]UHHE H]UHHE H]UHHE H]Hd$Hd$SHHH\[SHHHL[SHHHL[SHHH<[SHgHH[Hd$Hd$Hd$F@"Hd$Hd$&@#Hd$Hd$Hd$Hd$%Hd$Hd$ %Hd$Hd$@%Hd$Hd$%%Hd$Hd$f%%Hd$SHtHt1[Hd$%%Hd$Hd$%%Hd$SHtHt1[Hd$%%Hd$Hd$%%Hd$Hd$f% %Hd$Hd$F%@%Hd$Hd$&%%Hd$Hd$%%Hd$Hd$%%Hd$Hd$%%Hd$Hd$%%Hd$Hd$% %Hd$Hd$Hd$ËGHP fPGHP fPHtHHHHd$1蔢Hd$Hd$1tHd$G Ɖw#wwHd$mHd$SHHH[SHHH[SHHH[SHHH[SHgHH\[Hd$膑Hd$SHHH[SHHHl[SHHH[SHHH<[SHgHH[GHP fPHd$֛Hd$Hd$ƳHd$Hd$趮Hd$SHHH [SHHH[SHHH[SHHH[SHgHH[SHtHkt0[Gh%H phphËGh%H phphGh%H phphGh%H phphGh%H phphSATAUAVH$HAIuIHyL1?yDL1轂 L1詈H޺HdHL1x L1snLH.HL1xLLw?H$A^A]A\[Hd$fHd$Hd$Hd$Hd$趙Hd$SHHHL[SHHH<[SHHH<[SHHH,[SHgHH[Hd$Hd$SHHH[SHHH[SHHH[SHHH|[SHgHH<[H H H H H %H %H % H  % H %@H@ %H %H %H %H %H %H %H %H Hd$&xHd$SHHH[SHHH[SHHHl[SHHH[SHgHHL[Hd$veHd$Hd$覗Hd$SHHH[SHHH[SHHH[SHHH[SHgHHl[GxHPx fPxGxHPx fPxGxHPx fPxGxHPx fPxHd$fHd$Hd$vvHd$SHHHL[SHHH<[SHHH<[SHHH,[SHgHH[@H@ f@Hd$&Hd$Hd$rHd$SHHH\[SHHHL[SHHHL[SHHH<[SHgHH[Hd$薕Hd$SHHH[SHHH[SHHH[SHHH[SHgHHL[Hd$覝Hd$SHHH[SHHH[SHHH[SHHH[SHgHH[Hd$V]Hd$SHHHL[SHHH<[SHHH<[SHHH,[SHgHH[Hd$&{Hd$SHHH[SHHH[SHHH[SHHH|[SHgHH<[Hd$覗Hd$SHHH[SHHH[SHHH[SHHH[SHgHH[Hd$Hd$SHHH<[SHHH,[SHHH,[SHHH[SHgHH[G8HP8 fP8GHP fPGHP fPHd$Hd$Hd$_Hd$SHHH[SHHH[SHHH[SHHH[SHgHH[GzHPz fPzG HP  fP G HP  fP G HP  fP G HP  fP Hd$]Hd$SHHHL[SHHH<[SHHH<[SHHH,[SHgHH[SHHHlj踤[Hd$H辇Hd$Hd$nHd$SHHH\[SHHHL[SHHHL[SHHH<[SHgHH[H fH fH fH f H f@H@ ff%H f%H fHd$UHd$SHHH,[SHHH[SHHH[SHHH [SHgHH[Hd$cHd$SHHH[SHHH[SHHH\[SHHH|[Hd$iHd$SHHH[SHHH[SHHH[SHHH[SHgHH[G4HP4 fP4G4HP4 fP4G4HP4 fP4G4HP4 fP4G4 HP4 fP4Hd$xHd$SHHHL[SHHH<[SHHH<[SHHH,[SHgHH[GtHPt fPtGtHPt fPtGtHPt fPtGtHPt fPtGtHPt fPtGt HPt fPtGt@HPt@ fPtfGt%HPt fPtGt%HPt fPtGt% HPt  fPtHd$LHd$SHHH[SHHH[SHHH[SHHH[SHgHH\[G8HP8 fP8G8HP8 fP8G8HP8 fP8Hd$nHd$SHHH|[SHHHl[SHHHl[SHHH\[SHgHH[Hd$iHd$SHHH[SHHH[SHHH[SHHH[SHgHHl[Hd$Hd$SHHH[SHHH [SHHH [SHHH[SHgHH[H fH fH fH fH fpHp fpHd$Hd$Hd$6nHd$SHHH,[SHHH[SHHH[SHHH [SHgHH[H fH fH fHd$&Hd$Hd$[Hd$SHHH[SHHH[SHHH[SHHH[SHgHH|[Hd$VHd$SHHH,[SHHH[SHHH[SHHH [SHgHH[H fH fH fHd$EHd$Hd$6tHd$SHHH[SHHH[SHHH[SHHH[SHgHH|[Hd$V@pHd$SATHd$HfAHH&f@pfA fDcpHd$A\[SATHd$HfAHHfAfD#`pfDcpHd$A\[Hd$fHd$Hd$FHd$Hd$&Hd$Hd$Hd$Hd$ Hd$Hd$@Hd$Hd$f%Hd$Hd$%Hd$Hd$f%Hd$Hd$F%Hd$HHd$H<$HHd$Hd$H<$HHd$Hd$H<$HHd$Hd$H<$HHd$G8HP8 fP8G8HP8 fP8G8HP8 fP8G8HP8 fP8G8HP8 fP8G@HP@ fP@G@HP@ fP@G@HP@ fP@Hd$VHHd$SHHHL[SHHH<[SHHH<[SHHH,[SHgHH[Hd$=Hd$SHHH[SHHH[SHHH[SHHH|[SHgHH<[Hd$FHd$SHHH[SHHH[SHHH[SHHH[SHgHH[Hd$uHd$SHHH<[SHHH,[SHHH,[SHHH[SHgHH[Hd$fHd$SHHH[SHHH|[SHHH|[SHHHl[SHgHH,[Hd$Hd$SHHH[SHHH[SHHH[SHHH[SHgHH|[H fH fH fH fH fHd$&rHd$SHHH<[SHHH,[SHHH,[SHHH[SHgHH[HHHGHGHHd$Hd$ËH f H fH fH fH fHd$H@@ƁHc7Hd$Hd$覈Hd$SHHH [SHHH[SHHH[SHHH[SHgHH[Hd$WHd$SHHH\[SHHHL[SHHHL[SHHH<[SHgHH[Hd$Hd$SHHH輩[SHHH [SHHH茩[SHHHܩ[SHgHH茩[Hd$FDHd$SHHH[SHHH[SHHH[SHHH[SHgHH[Hd$JHd$SHHHL[SHHH<[SHHH<[SHHH,[SHgHH[H fH fH fH fH f H f8H8 f8Hd$=Hd$SHHHL[SHHH<[SHHH<[SHHH,[SHgHH[$H$ f$$H$ f$$H$ f$$H$ f$$H$ f$$ H$ f$$@H$@ f$f$%H$ f$Hd$fwHd$Hd$nHd$Hd$&:Hd$Hd$^Hd$SHHH[SHHH[SHHH[SHHH[SHgHH[GhHPh fPhGhHPh fPhGhHPh fPhGhHPh fPhH fH fH fH fH f H f@H@ ff%H f%H fHd$6]Hd$SHHH̾[SHHH輾[SHHH輾[SHHH謾[SHgHHl[Hd$YHd$SHHH [SHHH[SHHH[SHHH[SHgHH謽[Hd$6@Hd$SHHH\[SHHHL[SHHHL[SHHH<[SHgHH[Hd$jHd$SHHH謼[SHHH蜼[SHHH蜼[SHHH茼[SHgHHL[Hd$VWHd$SHHH[SHHH[SHHH[SHHHܻ[SHgHH蜻[Hd$&UHd$SHHHL[SHHH<[SHHH<[SHHH,[SHgHH[Hd$4Hd$SHHH蜺[SHHH茺[SHHH茺[SHHH|[SHgHH<[H fH fH fH f H f%H fHd$\Hd$SHHH̸[SHHH輸[SHHH輸[SHHH謸[SHgHHl[H fH fH fH fH f H f@H@ ff%H f%H fHtHtHd$FnHd$SHHHL[SHHH<[SHHH<[SHHH,[SHgHH[Hd$iHd$SHHH蜵[SHHH茵[SHHH茵[SHHH|[SHgHH<[Hd$?Hd$SHHH[SHHHܴ[SHHHܴ[SHHH̴[SHgHH茴[Hd$3Hd$SHHH<[SHHH,[SHHH,[SHHH[SHgHHܳ[Hd$&ZHd$SHHH茳[SHHH|[SHHH|[SHHHl[SHgHH,[Hd$;Hd$SHHH[SHHH<[SHHH輔[SHHH [SHgHH蜔[xHx fxHd$vZHd$SHHH [SHHH\[SHHHܓ[SHHH,[SHgHH輓[Hd$VHd$Hd$FHd$UHHd$HDU}|$DT$D $EIȉHǺk3H]Hd$6MHd$SHHHܰ[SHHH̰[SHHH̰[SHHH輰[SHgHH|[GlHPl fPlGlHPl fPlGlHPl fPlGlHPl fPlGlHPl fPlGl HPl fPlGl@HPl@ fPlfGl%HPl fPlH fH fHd$VHd$SHHHL[SHHH<[SHHH<[SHHH,[SHgHH[H fH fHd$-Hd$SHHH<[SHHH,[SHHH,[SHHH[SHgHHܬ[Hd$6"Hd$SHHH茬[SHHH|[SHHH|[SHHHl[SHgHH,[Hd$VZHd$SHHHܫ[SHHH̫[SHHH̫[SHHH輫[SHgHH|[Hd$v%Hd$SHHH,[SHHH[SHHH[SHHH [SHgHH̪[Hd$*Hd$SHHH|[SHHHl[SHHHl[SHHH\[SHgHH[Hd$dHd$SHHH܋[SHHH,[SHHH謋[SHHH[SHgHH茋[Hd$FNHd$Hd$FhHd$Hd$MHd$SHHH[SHHH[SHHH[SHHHܨ[SHgHH蜨[Hd$F\Hd$SHHHL[SHHH<[SHHH<[SHHH,[SHgHH[Hd$KHd$SHHH蜧[SHHH茧[SHHH茧[SHHH|[SHgHH<[GHHPH fPHHd$V#Hd$SHHH輦[SHHH謦[SHHH謦[SHHH蜦[SHgHH\[Hd$&XHd$SHHH [SHHH[SHHH[SHHH[SHgHH謥[Hd$fFHd$SHHH\[SHHHL[SHHHL[SHHH<[SHgHH[Hd$cHd$SHHH謤[SHHH蜤[SHHH蜤[SHHH茤[SHgHHL[Hd$KHd$SHHH[SHHH[SHHH[SHHHܣ[SHgHH蜣[Hd$f%Hd$SHHHL[SHHH<[SHHH<[SHHH,[SHgHH[H fH fH fHd$6Hd$SHHH [SHHH[SHHH[SHHH[SHgHH謡[Hd$RHd$SHHHl[SHHH\[SHHH|[Hd$v^Hd$Hd$.Hd$Hd$vKHd$Hd$v"Hd$Hd$:Hd$SHHH輂[SHHH [SHHH茂[SHHH謂[Hd$6FHd$SHHH[SHHH [SHHH [SHHH[SHgHH輟[Hd$>Hd$SHHHl[SHHH\[SHHH\[SHHHL[SHgHH [GpHPp fPpHd$F#Hd$SHHH茞[SHHH|[SHHH|[SHHHl[SHgHH,[Hd$&SHd$Hd$VJHd$Hd$Hd$Hd$vXHd$SHHH謝[SHHH蜝[SHHH蜝[SHHH茝[SHgHHL[Hd$vHd$SHHH[SHHH[SHHH[SHHHܜ[SHgHH蜜[H fH fH fH f H ff%H f%H f% H f% H  f% H f%@H@ ff%H fHd$Hd$Hd$F1Hd$Hd$$Hd$SHHH[SHHHܙ[SHHHܙ[SHHH̙[SHgHH茙[GlHPl fPlGlHPl fPlGlHPl fPlHd$vGHd$SHHH謘[SHHH蜘[SHHH蜘[SHHH茘[SHgHHL[Hd$&?Hd$SHHH[SHHH[SHHH[SHHHܗ[SHgHH蜗[H fHd$CHd$SHHH[SHHH [SHHH [SHHH[SHgHH輖[H fHd$ Hd$SHHH<[SHHH,[SHHH,[SHHH[SHgHHܕ[GtHPt fPtGtHPt fPtHd$6Hd$SHHH,[SHHH[SHHH[SHHH [SHgHH̔[H fH fH fHd$;Hd$SHHH[SHHHܓ[SHHHܓ[SHHH̓[SHgHH茓[H fHd$fHd$SHHH [SHHH[SHHH[SHHH[SHgHH謒[Hd$Hd$Hd$$Hd$SHHHL[SHHH<[SHHH<[SHHH,[SHgHH[Hd$Hd$Hd$(Hd$SHHH茑[SHHH|[SHHH|[SHHHl[SHgHH,[H f H fH f H ff%H f%H fHd$KHd$Hd$@Hd$SHHH謏[SHHH蜏[SHHH蜏[SHHH茏[SHgHHL[Hd$JHd$Hd$&Hd$Hd$HH1CHd$Hd$ID$$M11DHd$Hd$ID$$M11oDHd$Hd$ID$$M11?DHd$Hd$ID$$M11DHd$Hd$vKHd$Hd$$Hd$Hd$vHd$Hd$HHHE11CHd$Hd$E1Hd$Hd$E1Hd$Hd$HHHA1Hd$Hd$E1Hd$Hd$HHHA1Hd$Hd$1"Hd$Hd$HL$u L$LL$M11sH%Hd$Hd$ Hd$Hd$vHd$SHHHl[SHHH\[SHHH\[SHHHL[SHgHH [G"HP" fP"G"HP" fP"Hd$VHd$SHHH\[SHHHL[SHHHL[SHHH<[SHgHH[H fH fH fH fH fHd$F0.D;sHDHE!䋓L%A]A\[Hd$VHd$Hd$Hd$SHHHLb[SHHHb[SHHHb[SHHHlb[SHgHHa[Hd$Hd$ËG8H p8p8G8H p8p8G8H p8p8ËG8H p8p8ËG8H p8p8ËG8 H p8p8ËG8@H@ p8p8ËG8%H p8p8G8%H p8p8G8% H  p8p8G8% H  p8p8G8% H  p8p8G8% H  p8p8G8% H p8p8G8%@H@ p8p8G8%H p8p8G8%H p8p8G8%H p8p8G8%H p8p8G8%H p8p8G8%H p8p8G8% H p8p8G8%@H@ p8p8G8%H p8p8G8HP8 fP8G8HP8 fP8G8 HP8 fP8G8@HP8@ fP8fG8%HP8 fP8G8%HP8 fP8G8% HP8  fP8G8% HP8  fP8G8% HP8  fP8H fH fH fH fH f H f@H@ ff%H fHd$Hd$SHHHLZ[SHHHZ[SHHHZ[SHHHlZ[SHgHHY[Hd$Hd$SHHHY[SHHHY[SHHHlY[SHHHY[SHgHHLY[G HP  fP G HP  fP Hd$%Hd$SHHHX[SHHHX[SHHH\X[SHHHX[SHgHH[SHHHl>%[Hd$Hd$HHHd$&Hd$Hd$HHd$SATHd$HHIHHLWHd$A\[Hd$Hd$SHHH=[SHHH|=%[Hd$vHd$Hd$Hd$SHHH,=[SHHH|=[SHHH<%[SHHHL=%[SHgHH<[SHHH<[Hd$Hd$SHHH\<[SHHH<[SHHH,<%[SHHH|<%[SHgHH <[Hd$vHd$SHHH;[SHHH;[SHHH|;%[SHHH;%[SHgHH\;[Hd$Hd$SHHH:[SHHHL;[SHHH:%[SHHH;%[SHgHH:[Hd$Hd$SHHHL:[SHHH:[SHHH:%[SHHHl:%[SHgHH9[Hd$6Hd$SHHH9[SHHH9[SHHHl9%[SHHH9%[SHgHHL9[Hd$Hd$SHHH8[SHHH<9[SHHH8%[SHHH 9%[SHgHH8[Hd$Hd$SHHH<8[SHHH8[SHHH 8%[SHHH\8%[SHgHH7[Hd$VHd$SHHH7[SHHH7[SHHH\7%[SHHH7%[SHgHH<7[Hd$&Hd$SHHH6[SHHH,7[SHHH6%[SHHH6%[SHgHH6[Hd$vHd$SHHH,6[SHHH|6[SHHH5%[SHHHL6%[SHgHH5[Hd$Hd$SHHH|5[SHHH5[SHHHL5%[SHHH5%[SHgHH,5[Hd$vHd$SHHH4[SHHH5[SHHH4%[SHHH4%[SHgHH|4[Hd$VHd$SHHH4[SHHHl4[SHHH3%[SHHH<4%[SHgHH3[Hd$VHd$Hd$Hd$SHHH\3[SHHH3[SHHH,3%[SHHH|3%[SHgHH 3[Hd$&Hd$Hd$Hd$SHHH2[SHHH2[SHHHl2%[SHHH2%[SHgHHL2[Hd$Hd$SHHH1[SHHH1[SHHH1[Hd$Hd$SHHH|1[SHHH1[SHHHL1%[SHHH1%[SHgHH,1[Hd$vHd$SHHH0[SHHH1[SHHH0%[SHHH0%[SHgHH|0[Hd$Hd$SHHH0[SHHHl0[SHHH/[SHHH<0[SHgHH/[Hd$&Hd$SHHHl/[SHHH/[SHHHHd$Hd$&Hd$1SHHH|[SHHH[SHHHL[SHHH[SHgHH,[1SHHH[SHHH[SHHH[SHHH[SHgHH|[1SHHH[SHHHl[SHHH[SHHH<[SHgHH[Hd$Hd$Hd$Hd$Hd$EHd$Hd$Hd$Hd$Hd$Hd$qHd$Hd$QHd$Hd$1Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$qHd$Hd$!QHd$Hd$1Hd$HHHd$Hd$Hd$1Hd$Hd$Hd$SHHHHHHlHHH[SHHH<HgHH[Hd$Hd$Hd$Hd$Hd$Hd$SHHHL[SHHH[SHHH[SHHHl[SHgHH[Hd$VHd$ËH fH fH fH fHd$Hd$Hd$fHd$Hd$Hd$Hd$VHd$Hd$Hd$Hd$Hd$Hd$HHHd$Hd$vHHd$UHHd$HALDDED]DM DL$D\$D$AHH]Hd$6!Hd$HyrH8Hr8tHBr8t Hr8f% %% Љ Ё ÉHd$H4$HHd$Hd$H4$HHd$Hd$H$HzHd$H!HHd$Hd$Hd$HHq:t HHqPHd$Hd$H|q8t HqPHd$Hd$HHIq:t HHJqPHd$Hd$HHq:t HHqP Hd$Hd$HHp:t HHpP@Hd$Hd$Hp8t HpPHHd$HpHpHHpH@(Hd$HHYp:t HHZpP0Hd$Hd$HH)p:t HH*pP8Hd$Hd$HHo:t HHoPPHd$Hd$HoPXHd$SHHo8tHHoP`H[HH~o:uH0Hd$H\o8t H`oPxHd$Hd$H $AE115Hd$Hd$&Hd$Hd$H.Hd$Hd$H>Hd$Hd$֬HNHd$Hd$12Hd$Hd$1Hd$Hd$1Hd$Hd$H1衳Hd$HtHG1Hd$HHd$Hd$HHd$Hd$HHHH)Hd$Hd$VHd$Hd$&Hd$Hd$fHd$HtHG1HtHG1Hd$薷Hd$Hd$1Hd$Hd$1Hd$SHHH[SATAUHHIILLH*A]A\[Hd$1Hd$SHHTHZ[SHH4H1[Hd$14Hd$Hd$1Hd$SHHH:[SATAUHHII*LLHA]A\[SHHH[Hd$1Hd$SHHDH1[Hd$vHd$ËG%H ppËG%H ppHG(G(G(Hd$H t t0Hd$HuHuH u u0Hd$HHH1{Hd$Hd$Hd$ËG^HP^ fP^G^HP^ fP^G^HP^ fP^G^HP^ fP^G^HP^ fP^G^ HP^ fP^HhHHHqh9r,9u Hh;0rtHh;0uHi;w0UHH$`H`LhLpLxLIHuIHEI_HIHeIHLLoLmHEHEHUHuiHHcHUuXLHH1H}HuHULH}fHUHuHT11.)!H}耍H}wH}eHEHt"H`LhLpLxLH]Hd$H11躢Hd$UHH$`H`LhLpLxLIHuIHEI_HIH@dIHLLLmHEHEHUHuH!HcHUuXLHrH1H}萖HuHULH}LeHUHuHLS 11辡H}H}H}cHEHt !H`LhLpLxLH]Hd$H 11JHd$UHH$`H`LhLpLxLIHuIHEI_HIHbIHLLLmHEHEHUHuHHcHUuXLHH1H} HuHULH}cHUHuHQ11NIH}蠊H}藊H}.bHEHtH`LhLpLxLH]Hd$H11ڟHd$UHH$`H`LhLpLxLIHuIHEI_HIH`aIHLLLmHEHEHUHuHAHcHUuXLHH1H}谓HuHULH}lbHUHuHlP11ޞH}0H}'H}`HEHt@H`LhLpLxLH]Hd$H11jHd$Hd$vHd$HuHu Hu0H Hd$H1!Hd$SATHd$HAH HDHHd$A\[SATHd$HIHHLHHd$A\[SHHHH[SHHHH1w[HtHG1HtHG1HtHG 1Hd$%%Hd$Hd$F%%Hd$G H p p G H p p G H p p ËG H p p ËG H p p ËG H p p ËG @H@ p p ËG %H p p G %H p p G % H  p p G % H  p p G % H  p p G % H  p p G % H p p G %@H@ p p G %H p p G %H p p G %H p p G %H p p G %H p p G %H p p HHHd$ƿHd$Hd$Hd$H]HxH]HxHi]HxHI]HxH)]HxH ]Hx H\Hx@H\Hfxf%H\Hx%H\Hx%Hi\Hx%Hd$HHd$HcHHHd$FHHd$Hd$Hd$Hd$ Hd$Hd$ Hd$Hd$街 Hd$Hd$聗 Hd$Hd$ a Hd$Hd$ Hd$Hd$薏HHd$Hd$Hd$Hd$ֶHd$Hd$ְ Hd$Hd$H?Hd$Hd$H?CHd$Hd$Hd$Hd$f Hd$Hd$& Hd$Hd$ Hd$Hd$H?Hd$HHHd$観 Hd$Hd$VHd$HHd$H.Hd$Hd$6Hd$Hd$HLHd$Hd$LAHd$Hd$L1Hd$Hd$LqHd$Hd$LaHd$Hd$LHd$Hd$Hd$Hd$H.Hd$Hd$&H@Hd$Hd$LHd$HSATHd$HpAHAHAHDHd$A\[Hd$VHd$H%H 00%H 00%H 00%H 00%H 00%H 00%H 00% H 00%@H@ 00%H 00Hd$E1M10Hd$Hd$AM1 Hd$Hd$AM1Hd$Hd$IH$M111ҾSHd$Hd$HIH$HM111ҾHd$Hd$HIH$HM111Ҿ]Hd$Hd$&HPHd$Hd$PHd$Hd$P1Hd$Hd$PHd$Hd$PHd$Hd$PHd$Hd$&Hd$Hd$HHd$Hd$Hd$Hd$HHd$Hd$PHd$Hd$HHщHH5qǂHd$SHd$HHHD$H$ Ht$HD$T$(HD$ HGHD$8HD$0HHD$HHD$@HHD$XHD$PHH=ƂHd$`[Hd$Hd$SHHH[SHHH,[SHHH[SHHH[SHgHH[Hd$fH0%Hd$Hd$0Hd$Hd$0%Hd$Hd$Hd$Hd$HnHd$Hd$ֽH4%Hd$Hd$4Hd$Hd$4%Hd$Hd$VHd$Hd$Hd$Hd$0%Hd$Hd$4%Hd$9~9LMHHHd$ Hd$Hd$aHd$Hd$AHd$Hd$!Hd$Hd$Hd$Hd$ Hd$Hd$$Hd$Hd$(Hd$Hd$,Hd$Hd$8aHd$Hd$<AHd$Hd$@!Hd$Hd$DHd$Hd$FHH%Hd$Hd$H%Hd$Hd$趽Hd$Hd$6Hd$Hd$FHd$Hd$覙Hd$HH HcHH H g7Hg7Hd$薢Hd$H|HcHHH?HHH HcHHH?HHH Hd$趫Hd$Hd$Hd$ËH fH fH fH fH f H f@H@ ff%H f%H f% H  fHd$vHd$SHHH[SHHH<[SHHH[SHHH [SHgHH[Hd$趷Hd$SHHH<[SHHH,[SHHHl[SHHH\[SHgHH[Hd$VHd$SHHH[SHHH|[Hd$Hd$Hd$覅Hd$Hd$&Hd$SHHH[SHHH [SHHHL[SHHH<[SHgHH[Hd$Hd$SHHHl[SHHH\[SHHH[SHHH[SHgHH[Hd$覧Hd$SHHH[SHHH[SHHH[SHHH[SHgHHl[Hd$Hd$SHHH [SHHH[SHHH<[SHHH,[SHgHH[H fHd$Hd$Hd$覢Hd$SHHH,[SHHH|[SHHH[SHHHL[SHgHH[Hd$膘Hd$Hd$FHd$SHHHl[SHHH\[SHHH[SHHH[SHgHH[Hd$֣Hd$UHHd$H}uH0t/E ".:FR^j v  &*6BNZfr]~    & 2 > J -T ` l x               , -6 B N Z f -p -       ".:FR^jv*6BNZfr~ -- * -.:FdId  -]-E'3?KWco{  # / ; G S _ k w    d  H}H5޲dH}H5dH}H5dH}H5dH}H5dH}H5-xdmH}H5@cdXH}H5SNdCH}H5f9d.H}H5$dH}H5dH}H5cH}H5cH}H5ͳcH}H5ೂcH}H5cH}H5cH}H5|cqH}H5,gc\H}H5?RcGH}H5R=c2H}H5e(cH}H5cH}H5b H}H5b H}H5b H}H5̴b H}H5ߴb H}H5b H}H5bu H}H5kb` H}H5+VbK H}H5>Ab6 H}H5Q,b! H}H5lb H}H5b H}H5a H}H5a H}H5a H}H5˵a H}H5޵a H}H5ay H}H5oad H}H5ZaO H}H5*Ea: H}H5=0a% H}H5Pa H}H5ca H}H5~` H}H5` H}H5` H}H5` H}H5Ҷ` H}H5`} H}H5s`h H}H5^`S H}H5.I`> H}H5A4`) H}H5\` H}H5o ` H}H5_ H}H5_ H}H5_ H}H5÷_ H}H5޷_ H}H5_ H}H5w_l H}H5b_W H}H52M_B H}H5E8_- H}H5X#_ H}H5s_ H}H5^ H}H5^ H}H5^ H}H5^ H}H5¸^ H}H5ո^ H}H5踂{^p H}H5f^[ H}H5Q^F H}H5<^1 H}H5$'^ H}H57^ H}H5J]H}H5]]H}H5p]H}H5]H}H5]H}H5]H}H5]tH}H5Ϲj]_H}H5⹂U]JH}H5@]5H}H5+] H}H5] H}H5.]H}H5I\H}H5T\H}H5g\H}H5z\H}H5\H}H5\xH}H5n\cH}H5Y\NH}H5ٺD\9H}H5/\$H}H5\H}H5*\H}H5E[H}H5`[H}H5s[H}H5[H}H5[H}H5[|H}H5ϻr[gH}H5⻂][RH}H5H[=H}H53[(H}H5+[H}H5> [H}H5QZH}H5dZH}H5ZH}H5ZH}H5ZH}H5ȼZH}H5㼂vZkH}H5aZVH}H5 LZAH}H5$7Z,H}H57"ZH}H5J ZH}H5]YH}H5pYH}H5YH}H5YH}H5YH}H5ԽYH}H5߽zYoH}H5eYZH}H5 PYEH}H5(;Y0H}H5;&YH}H5VYH}H5yXH}H5XH}H5XH}H5XH}H5վXH}H5辂XH}H5~XsH}H5iX^H}H5)TXIH}H5D?X4H}H5W*XH}H5rX H}H5XH}H5WH}H5˿WH}H5޿WH}H5WH}H5WH}H5/WwH}H5BmWbH}H5eXWMH}H5CW8H}H5.W#H}H5WH}H5WH}H5VH}H5VH}H5VH}H5-VH}H5@VH}H5[V{H}H5vqVfH}H5\VQH}H5GV<H}H52V'H}H5VH}H5VH}H5UH}H5 ‚UH}H5‚UH}H51‚UH}H5D‚UH}H5W‚UH}H5b‚uUmH}H5x‚cU[H}H5‚QUIH}H5‚?U7EEHEEEHEHUH}HH5‚-H]UHHd$H]LeLmLuL}H}H@sEHEHHtH[HH-HH9v_]EELeM,$HcUHH9v(Hc]HI<$dA|&tE;E|wHc]Hq/HH-HH9v]LeM,$HcEHH9vHc]HI<$/dA|&u}|EEE;E|kH}eIHcUHH9vYLcuLLcH]L#HcUHH9v+LcmLH;cCD,CD7Hc]HqCHH-HH9v]Hc]HqHH-HH9v]E;E`E;E|HcuHqH}OcEH]LeLmLuL}H]UHHd$H]LeLmH}HuH0HEHHugRE#LeM,$HcUHH9vHc]HI<$xbA|&tHEHHtH@HcUH9JLmMeHc]HqHHH9vHI}bA|&tEEHcuH}Hj}u/Hc]HqHH-HH9v*]Hc]HqXHH-HH9v]HEHHtH@HcUH9H]LeLmH]UHH$pHpH}HuHvHEHDžxHUHuHپHcHUHEHc0H}aHEHcH}HuH=HuOHEHt`HEHpH]UHHd$H}HuH(HEH@HEHEH@HEHEH;EwHUH;UrEEH]UHHd$H}HuH HEH@HEHEH;EwHUH;UrEEH]UHHd$H}fuUH@f}v}uyfEff-f-f-f-f-f-f-f-f-,f-;f-Jf-Yf-hf-tf-f-H}H;HpMH}H"HpMH}H)HpMzH}H0HpwMaH}H7Hp^MHH}H>HpEM/H}HEHp,MH}HLHpMH}HSHpLH}HZHpLH}HaHpLH}HhHpLH}HoHpLH}HvHp}LjH}HHpgLTH}HHpQL>H}HTHp;L(E=v EH>H4H}L(E=v EHH4H}K fEf=f-tf-tLf- uf-@}uH}HLHpKH}H5тK}uH}HHp`KH}H5тNKp}uH}HHp-KH}H5тK@}uH}HHpJH}H5тJH}HJH]UHH$PH}fuUHJHEHDž`HUHuH譸HcHUlH}H^JEuH|HpHpEuH~HpHREuHHpH4EuHHpHEuHęHpHuH}H}tHЂHhE\HH\HHc\!H\H`)SH`gH`HpH9ЂHxHhH}HLHuH2-H`HH}xHHEHtH]UHHd$H}HuHS HEH@H8u$HEH@H0HEHxHςIHEH@H0HEHxHUIH]UHHd$H}H HEHtH@H/H}HuH=HH54ςtEEEH]UHH$pH}fuUHZ HEHDžxHUHuH轵HcHUIH}HnGfufUH}H}uE% u0U HxgHxHEH0H};HE%@u0U@Hx(HxHEH0H}GE%u0UHxHxHEH0H}GfEf%fu0UHxHxHEH0H}~GHEH0H}HUeG`HxEH}EHEHtH]UHHd$H}fuH HEHuH]UHHd$H}fuHC HEHuH]UHH$`H`LhH}@uHHEHDžpHUHu*HRHcHxfEH}tfEElfU HpHpHuHu$]H HH=v`f]HuH˂HTu$]H@HH=v#f]U@HpHpHuHu$]H@HH=vf]UHp5HpHuHufEf fEPUHpHpHuHwu!]HHH=vFf]fEfEffEUuH}H}uHEHtH@HcUH)q-Hq"HUHtHRH9tLeHcUHH9vHc]HH}/SI\LeMtMd$LHH9vuLHuHuH5R HtfUfEf fE f}sHpAH}AHxHt EH`LhH]UHHd$H]LeLmH}HuHUH8H}u HEHcHEHtH@HqHqHUHRHtHRH9~LeMl$H]HcHH9vOHcHI|$QI\LeMtMd$LHH9vLHuHuH5H:tGEHEHcH]HtH[HqHH-HH9vHEEEH]LeLmH]UHHd$H}HWHE@H(fEEH]UHHd$H}HHE@HfEEH]UHH$ H(L0L8L@LHH}HuUMDELMHHEHDžXHUHhHHcH`H}Hu?H}te}tXH]LeMtM,$LHAt#HcMHuH}Hթ}t'HuHHXHXH}?}uH]LeMtM,$L;HAHcHqHHHH9vsHPP}}EẼED}LuLXH]HtL#L譿LLDA$HXLEЋMHUHRu P;E~LmLeMtI$HHLHcHqHHHH9v}}]̋ẼEẼEDuLmLXH]Ht L#LžLLDA$HXLEЋMHUHju}~eHXLmLeMtI$HiLHcHkqHEHEHH9vH}]HEH}Hu跔LmLeMtSI$HLHcHqHHLmLeMt I$H语LHcHqFH}:HEfDHEHHEHUHEHHUHHH9vEHPP9}p]̋ẼEfẼEHEH@HcULHEHqHPHPH;E}HEHHEDHEHHEHEHEHUHqHEHHH9H}(HUHEHHE@HEHHEHUHHH9vD}HELpH`HEL`MtM,$LRHLDAH`H@HUHHH9vD}HEHXLXHEL`Mt>M,$LLHDAHXHEH@PHEHEHHH;E~HEH;EHEH-HH9vD}HELhLuHEHXHtL#L@LLDA$HUHHH9vD}HELpLXHEHXHt9L#LޢLLDA$LXHUHHH9vDuHELhHEHXHtL#L|LDLA$ HEH-HH9vD}HELpLmHEHXHtyL#LLLDA$ HPH;E~ֳHX* H` H} HhHt4HL L(L0L8H]UHHd$H}HHEH=H]UHHd$H]HRHHH]H]UHHd$H]H}HSHHuHH]H]UHH$pHxLeLmH}HuHELeIMkHLbILLH!LmHHUHuHDHcHUudHHuHUHqH}HEHt蕳HxLeLmH]UHH$pHpLxLmH}HuHUHELeIMkHLILLHJLmHHUHuEHmHcHUuHHUHMHuHAH}8HEHt躲HpLxLmH]UHH$H`H}HuHUHxLpLhH=HHEhHD$`HE`HD$XHEXHD$PHEPHD$HHEHHD$@HE@HD$8HE8HD$0HE0HD$(HE(HD$ HE HD$HEHD$HEHD$HhH$LpLxHMHUHuH H`H]UHHd$H]H}Hs.HHuHH]H]UHH$pHxLeLmH}HuHELeIMkHLILLHALmHHUHuHUHu茥H贃HcHUuHHUHMHuH- 舨H}H}vHEHtHpLxLmH]UHH$H`H}HuHUHxLpLhH}8HHEhHD$`HE`HD$XHEXHD$PHEPHD$HHEHHD$@HE@HD$8HE8HD$0HE0HD$(HE(HD$ HE HD$HEHD$HEHD$HhH$LpLxHMHUHuH H`H]UHHd$H}uHHEHNjuH]UHHd$H}uHHEHNju5H]UHHd$H}HuHSHEHHusH]UHHd$H}HuHHEHHu裭H]UHHd$H}HuHUHHEHHuHU˭H]UHHd$H}HuHHEHHu#H]UHHd$H}HuHSHEHHu胱H]UHHd$H}uH0HEH$fEfD$H}u臱H]UHHd$H}@uHHEH@uH]UHHd$H}uHHEHNju%H]UHHd$H}HuHUH_HEHHuHU۱H]UHHd$H}HuH#HEHHusH]UHHd$H}HuHHEHHu賴H]UHHd$H}HuHHEHHu#H]UHHd$H}HuHcHEHHuH]UHHd$H}HuUMH HEHNjMUHuH]UHHd$H}HuUHHEHNjUHuH]UHHd$H}HuHHEHHuH]UHHd$H}HuHcHEHHu3H]UHHd$H}uH$HEHHqEuHEH0H}HyEuHEH0H}HQEuHEH0H}H)EuHEH0H}HEuHEH0H}HE uHEH0H}HƖE@uHEH0H}HƖE%uHEH0H}H̖_E%uHEH0H}HҖ5E%uHEH0H}Hؖ E%uHEH0H}HޖE% uHEH0H}H䖂E%@uHEH0H}HꖂE%uHEH0H}HcE%uHEH0H}H9HEH8u+HEH0HtHvHqH}H%H]UHHd$H}؉uUMDEH(:HEHDEMUuH]UHHd$H}uHHEHNju襷H]UHH$`H}fuHHDžpHUHuH(zHcHUfEf;f-Ff-Qf-\f-gf-rf-}f-f-f-f-f-f-f-f-f-f-f-f-f- f-f-"f--f-8f-Cf-Nf-Yf-df-of-zf-f-f-f-f-f-f-f-f-f-f-f-f- f-f-f-*f-5f-@f-Kf-Vf-af-lf-wf-f-f-f-f-f-f-f-f-f-f-f-f- f- f- f-' f-2 f-= f-H f-S f-^ f-i f-t f- f- f- f- f- f- f- f- f- f- f- f- f- f- f- f-$ f-/ f-: f-E f-P f-[ f-f f-q f-| f- f- f- f- f- f- f- f- f- f- f- f- f- f- f-! f-, f-7 f-B f-M f- X f-c f-n f-y f- f- f- f- f- f- f- f- f- f- f- f- f- f- f- f-) f-4 f-? f-J f-U f-` f-k f- f-l f-w f- f-x f- f- f- f- f- f- f-" f- f- f-  H}H5a H}H5|L H}H5ԏg7 H}H5珂R" H}H5= H}H5 ( H}H5 H}H5# H}H56 H}H5I H}H5\ H}H5oz H}H5ze H}H5P H}H5k; H}H5V& H}H5A H}H5ѐ, H}H5䐂 H}H5 H}H5  H}H5 H}H50 H}H5C~ H}H5Vi H}H5iT H}H5to? H}H5Z* H}H5E H}H50 H}H5 H}H5 H}H5 H}H5ё H}H5䑂 H}H5 H}H5 m H}H5X H}H50sC H}H5;^. H}H5FI H}H5Q4 H}H5\ H}H5g  H}H5r H}H5} H}H5 H}H5 H}H5q H}H5\ H}H5wG H}H5b2 H}H5ʒM H}H5Ւ8 H}H5#H}H5뒂H}H5H}H5H}H5 H}H5H}H5"uH}H5-`H}H58{KH}H5Cf6H}H5NQ!H}H5Y< H}H5d'H}H5oH}H5zH}H5H}H5H}H5H}H5yH}H5dH}H5OH}H5Ǔj:H}H5ғU%H}H5ݓ@H}H5蓂+H}H5H}H5H}H5!H}H54H}H5GH}H5Z}H}H5mhH}H5SH}H5n>H}H5Y)H}H5DH}H5̔/H}H5הH}H5ꔂH}H5H}H5H}H5#H}H5.H}H59lH}H5DWH}H5OrBH}H5Z]-H}H5eHH}H5p3H}H5{H}H5 H}H5H}H5H}H5H}H5H}H5pH}H5ȕ[H}H5ӕvFH}H5ޕa1H}H5镂LH}H57H}H5"H}H5 H}H5H}H5 H}H5+H}H5>H}H5QtH}H5d_H}H5wzJH}H5e5H}H5P H}H5; H}H5Ö&H}H5֖H}H5H}H5 H}H5H}H5:H}H5UxH}H5hcH}H5{~NH}H5i9H}H5T$H}H5?H}H5ח*H}H5ꗂH}H5H}H5H}H53H}H5FH}H5Y|H}H5lgH}H5RH}H5m=H}H5X(H}H5CH}H5Ә.H}H5H}H5 H}H5$H}H57H}H5JH}H5]H}H5pnH}H5\HHxEllHpMHpHEHHEHxH}HVHpHEHťH]UHHd$H}HuH胻HEHHu賛H]UHH$HH}HuH`6HDžHDžHDžHDžHDžHDžHDžHDžHDžHDžHDžHDžHDžHDžHDžHDž HDž(HDž0HDž@HDžHHUHu訆HdHcHUHꗂHPH]3HHяHHHXH䗂H`HE@<HH({HH(HiH=p-x[HHH H0Ht\HLH]UHH$0H}HuUHzHDž8HDž@HDžPHUHuWH5HcHUHYpHXHEH@HHHHHP@fHPH`H[mHhH-pHpHEH@HHHHH@DH@HxHmHEHXH}H}ugHEHHhHoHpHlHxHEHp H@7H@HEHhH}H0HExu}HEHHpHoHxHNlHEHpH}H}u2HEHp(H8H8HEH0H}YH8cH@WHPKHEHtmZH]UHHd$H]LeLmH}HuH0H})LeLmMtI]HFLHEH5VHEHx HMH^&HEH5/HEHx(HMH7&H}H@H}uH}uH}HEHPpH]LeLmH]UHH@HH=HJ?HHH=0?HyH]UHHHIHq@H6H=?Z@H/H5`,H=1zH]UHHd$H]H}H 胇H=-tHUHH9vzEEHuH=Y- HEH}tiHEHxt:H]HSHH9v,HSHEH8H@\")HEHPHEH8HEPH]H]UHHd$H諆V EEH]UHHd$H{& HEHEH]UHHd$}HHUHH<t`HH8t0H/HPHH=]AXGHH5HVTUH.H<#MH)HʋUHHHEHEH]UHHd$H}H藅E1f=|M1f=|M[1f=|MHEH% HuMEH]UHH$`HxLeLmLuL}H}uU؉MDEDMHلED$E$EHEEHEEHED}LuHHHH>L Mt菂I$IL0BHLDEEAEAAEEHxLeLmLuL}H]UHH$`HxLeLmLuL}H}uU؉MDEDMHED$E$EHEEHEEHED}LuHXHHNL Mt蟁I$IL@AHLDEEAEAAEEHxLeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@HEILuHHHL MtI$IL@HLLAHEHEH]LeLmLuL}H]UHH$@HhLpLxLuL}H}؉uЉUȉMDELMHSE D$ED$ED$HEH$EHEEHEEHED}LuHHHL MtI$IL?HLDEEAEAAEEHhLpLxLuL}H]UHHd$H]LeLmLuL}H}uHUHMH`hHEHEHEHED}LuHHHL Mt0I$IL>HLDHMLEAE܋EH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuUHMLEHp褀HEHEHEHEEHEL}LuHHHL Mte~I$IL>HLLELELMAEԋEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@HEILuHmHHcL Mt}I$ILU=HLLAEEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHUMH`8EHEHEHEL}LuHHHL Mt}I$ILI$ILHLLELEEAAEĊEH]LeLmLuL}H]UHHd$H]LeLmLuH}H0?LuHџHHџL Mt=M,$LwHLAEEH]LeLmLuH]UHHd$H]LeLmLuL}H}uUMDEHpV?EHEȋEHEEHED}LuHПHHПL Mt=I$ILHLDEEAEAA EԋEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuUHP>EEL}LuHПL(H ПHHt^E@?H@HuHHM'H$豅H`%Hy:HHtH`HH]UHHd$Љ}uUH0BE=vSEEЋEEԋEEH}Hu$HEHEH]UHHd$H}HuHEUu}0HEHEH]UHHd$}H EEEHEH}HufHEHEH]UHHd$H}HuHUHMH(KE;Et$E;EtE;EtE;EtEEEH]UHHd$H}uH0EEHEЋuH}H蓯EEEH]UHHd$H]}HEÁ=v]EH]H]UHHd$H]}HTE=vX]EH]H]UHHd$H]}HE=v]EH]H]UHHd$H]؉}HuHUHMH(EÁ=vHE]=vHE]=voHEH]H]UHHd$H]Le؉}HuHUHMH0Le]=vA$]=vHE]=vHEH]LeH]UHHd$H}uHUHMH@|EHEuH}H"EHUEȉHEỦEH]UHHd$}H(EEEH]UHHd$H]H}uUH(}|HEHcPHEHcH)q)HcEHkqHqH|[HEHcHEHcXHqHH?HHHH-HH9vHEHUHEBrHEHcHcEH)qHH-HH9v;HEHEHc@Hc]Hq_HH-HH9vHEX}|HEHcP HEHc@H)qHcEHkqHqH|^HEHcPHEHcX HqHH?HHHH-HH9vqHEXHUHE@B tHEHcXHcEH)qHH-HH9v$HEXHEHc@ Hc]HqGHH-HH9vHEX EEH]H]UHHd$H}HuHUHMLEH0HEHHMLEHuHUEԊEH]UHHd$@}HGE0 rr rEEH]UHHd$H}HuHE;E~ E;E~EEEH]UHHd$H]LeLmLuH}HuHXH=t EH=t EHEغHH;HEHEHEHEHUHuH=,Gyt EHuH=uyHEH}t EnHELpHHHvL MtM,$LkHLA؉EHuH=_HuH=^EH]LeLmLuH]UHHd$f}fuHCEU ЉEEH]UHHd$f}fuHEU %HEHEH]UHHd$f}fuHEU %HEHEH]UHHd$}uHE% EEEH]UHHd$H]@}@uH ?EE É=vBf]EH]H]UHHd$f}fuHEU %HEHEH]UHHd$H}uUH HEHNjUuEEH]UHHd$H}HwE-=vfEfEE-=vgfEfEEH]UHHd$H}HfEfEfEfEEH]UHHd$H}HuHUH E;E}$E;E|E;E}E;E|EEEH]UHHd$@}@uUH pEU U ЉEEH]UHHd$H}uUHMLEHPD$H$HEHMЋU؋uH}IIEĊEH]UHHd$H}uUMDEH0EHUEHEUPHEUPHEU؉P EH]UHHd$H}HWHEHǺH菕EEH]UHHd$H}؉uЉUȈMH EH}؉EEEȉEHHuHHUuH},EH]UHH$pH}؉uЉUȉMDEHEEȉEEEHHuHHUuH}EEH]UHH$`H`LhLpLxL}H}HuUHMHH=t&HH=b9WHԕH=ܕt$ HH=09kWHH}ȺHHEHEHEHEHEHUHuH=hrE}udHuH=]rHEH}tEAHELpHƀL(HHHt L#L責LLA$}t}#yHs8HHH9vxxEHEHEH}t EHEHEHEHEHEHUHuH=yTqHEHEHUHEHBUHfHUINjE=v`DuHL(HHHtHIL辫LDLHMA$HUHB}tHUHuH=ꓖpHEHxu EHE(HuH=ēWHuH=WHEHEH`LhLpLxL}H]UHHd$}HHEEEEHEH]UHHd$H}HuHUHMLEH@E;EEЋE;EE̋E;EEȋE;EEHUHEHHEHB}u]}uU}u5}uHEUPHEUP EaHUEBEQ}u HEU܉P E9}u-}u%}u HUE}u HUE؉BEEH]UHHd$H}HuHUHMLEH8HEHuHuHUHEHHEHBH}HuuHUHEHHEHBHEHU ;| HEE܉EЋEE̋E;E|EEHUBEEЋEE̋E;EEEHUBEEЋEE̋E;EEEHUB HEH8HpEԊEH]UHHd$H]LeLmLuL}H}uHUHMLEHpHEHEHEHEHEHED}LuH-|HH#|L MttI$ILHLDHMLELMAHEHEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHUHMH`HEHEL}HEHELuHh{HH^{L MtI$ILPHLHULLEAHEHEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHUHMH`'HEHEL}HEHELuHzHHzL MtI$IL萦HLHULLEAHEHEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@oLuL}HzHHyL MtGI$ILHLLAHEHEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuUHMDEHpEHEHEHEEHEL}LuH?yHH5yL MtI$IL'HLLELEEAAEԋEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH8HEILuHxHHxL MtI$ILuHLLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH8_HEILuHwHHwL Mt4I$ILգHLLAH]LeLmLuL}H]UHHd$H]LeLmLuL}Љ}HuHUHPHEHEL}DuHEwL(H;wHHtHIL.LDLHMA$EEH]LeLmLuL}H]UHHd$H]LeLmLuL}Љ}HuHUHP HEHEHEIDuHvL(HvHHtHIL{LDLHMA$EEH]LeLmLuL}H]UHHd$H]LeLmLuL}}HuHUMLEHpUHEHEȋEHEL}HEHEDuHuHHuL MtI$IL跡HDHULEALMAEԊEH]LeLmLuL}H]UHHd$H]LeLmLuH}H0LuH,uHH"uL MtsM,$LHLAHEHEH]LeLmLuH]UHHd$H]LeLmLu}H0DuHtHHtL MtM,$L舠HDA EEH]LeLmLuH]UHHd$H]LeLmH H(tL(HtL MtoI$HL(HEHEH]LeLmH]UHHd$H]LeLmLuL}H}uH@D}LuHsHHsL MtI$IL艟HLDA0HEHEH]LeLmLuL}H]UHHd$H]LeLmLuH}H0wLuH sHHsL MtSM,$LHLA8HEHEH]LeLmLuH]UHHd$H]LeLmLuf}H0DuH{rHHqrL MtM,$LfHDAHHEHEH]LeLmLuH]UHHd$H]LeLmLuH}H0WLuHqHHqL Mt3M,$LםHLAPEEH]LeLmLuH]UHHd$H]LeLmLuL}H}HuHUHPHEHEL}LuHDqL(H:qHHtHIL-LLLHMA$@HEHEH]LeLmLuL}H]UHHd$H]LeLmLuH}H(LuHpHHpL MtM,$L藜HLAXH]LeLmLuH]UHHd$H]LeLmLuH}H(LuH,pHH"pL MtsM,$LHLA`H]LeLmLuH]UHHd$H]LeLmLuL}H}HuHUHMDEHhEHEHEHEHEHEL}LuH}oHHsoL MtI$ILeHLLHMLEEAAhH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHUMDEHh4EHEЋEHEHEHEL}LuHnHHnL MtI$IL藚HLHULEAEAApH]LeLmLuL}H]UHH$PHpLxLmLuL}H}u؉UЉMLELMHVHEHD$ED$HEH$HEHEEHEEHED}LuHmHHmL MtI$IL衙HLDEEALMAxEEHpLxLmLuL}H]UHHd$H]LeLmLuL}H}HuHUMH`hHEHEHEHEHEIDuHlHHlL Mt-I$ILΘHELHUHMA` E܊EH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@HEILuH=lHH3lL MtI$IL%HLLAh EEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@HEILuHkHHkL MtI$IL腗HLLAp EEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHUHMH`gHEHEHEHEL}LuHjHHjL Mt/I$ILЖHLLLEHuAx E܊EH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHUHMH`HEHEHEHEL}LuH(jHHjL MtoI$ILHLHMMHuA E܊EH]LeLmLuL}H]UHHd$H]LeLmLuL}}HuH@HEIDuH~iHHtiL MtI$ILfHDLA EEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUHMDEHpEEHEHEHEEHED}LuHhHHhL MtI$IL訔HLDELEEAA EԊEH]LeLmLuL}H]UHHd$H]LeLmLuH}H0LuHhHHhL MtcM,$LHLAEEH]LeLmLuH]UHHd$H]LeLmLuL}H}HuUMH`HEHEЋEHED}LuHkgHHagL MtI$ILSHLDEAHUAE܊EH]LeLmLuL}H]UHHd$H]LeLmLuL}H}@uH@/D}LuHfHHfL MtI$IL訒HLDAEEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}@uH@D}LuH fHHfL MtgI$ILHLDAEEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@HEILuH}eHHseL MtI$ILeHLLAEEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@OHEILuHdHHdL Mt$I$ILŐHLLAEEH]LeLmLuL}H]UHHd$H]LeLmLuH}H(HEHHIdL0H?dL MtM,$L4LHAH]LeLmLuH]UHHd$H]LeLmLuH}H07LuHcHHcL MtM,$L跏HLAEEH]LeLmLuH]UHHd$H]LeLmLuL}H}HuHUHPHEHEL}LuH$cL(HcHHtkHIL LLLHMA$EEH]LeLmLuL}H]UHHd$H]LeLmLuH}H0LuHbHHbL MtM,$LwHLAHEHEH]LeLmLuH]UHHd$H]LeLmLuL}H}HuH@_HEILuHaHHaL Mt4I$ILՍHLLAEEH]LeLmLuL}H]UHHd$H]LeLmLuH}H0LuH\aHHRaL MtM,$LGHLAHEHEH]LeLmLuH]UHHd$H]LeLmLuL}H}uH@0D}LuH`HH`L MtI$IL詌HLDAEEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uH@D}LuH!`HH`L MthI$IL HLDA EEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}@uUHHHEHED}DuHt_L(Hj_HHtHIL]LDDHuA$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUHP=EED}LuH^L(H^HHtHIL豊LLDMA$HEHEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUHPEED}LuH^L(H^HHt_HILLLDMA$HEHEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHUHPHEHEHEILuHa]L(HW]HHtHILJLLLHMA$ EEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuUMH`)EHEЊEEL}LuH\HH\L MtI$IL蕈HLLMȋEAA E܊EH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@oL}LuH\HH[L MtGI$ILHLLA EEH]LeLmLuL}H]UHHd$H]LeLmH Hx[L(Hn[L MtI$HcL EEH]LeLmH]UHHd$H]LeLmLuH}H0gLuHZHHZL MtCM,$LHLA( EEH]LeLmLuH]UHHd$H]LeLmLuL}H}uUHPEHED}LuHWZL(HMZHHtHIL@LLDE؉A$0 EEH]LeLmLuL}H]UHH$`HxLeLmLuL}H}uHU؉MDEDMHED$Eȉ$EHEHEHEEHEL}HzYL0HHiYL MtI$IL[HLLELEEAA8 EEHxLeLmLuL}H]UHH$`HxLeLmLuL}H}HuUHMDEDMHED$E$EHEHEHEEHEL}LuHXHH{XL MtI$ILmHLLELEEAA8 EEHxLeLmLuL}H]UHH$@HhLpLxLuL}H}؉uHUȉMDEDMH"ED$ED$ED$E$EHEHEHEEHEL}HWL0HHuWL MtI$ILgHLLELEEAA@ EEHhLpLxLuL}H]UHH$@HhLpLxLuL}H}HuЉUHMDEDMH!E D$ED$ED$E$EHEHEHEEHEL}LuHVHHwVL MtI$ILiHLLELEEAA@ EEHhLpLxLuL}H]UHH$@HhLpLxLuL}H}؉uЉUȉMDEDMH#E D$ED$ED$E$EHEEHEEHED}LuHUHHzUL MtI$ILlHLDEEAEAAP EEHhLpLxLuL}H]UHH$@HhLpLxLuL}H}؉uЉUȉMDEDMH#E D$ED$ED$E$EHEEHEEHED}LuHTHHzTL MtI$ILlHLDEEAEAAH EEHhLpLxLuL}H]UHH$`HxLeLmLuL}H}uU؉MDEDMH)ED$E$EHEEHEEHED}LuHSHHSL Mt߿I$ILHLDEEAEAAX EEHxLeLmLuL}H]UHHd$H]LeLmLuL}H}uH@PD}LuHRHHRL Mt(I$IL~HLDA EEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@L}LuH@RHH6RL Mt臾I$IL(~HLLA EEH]LeLmLuL}H]UHHd$H]LeLmLuH}H(HEHHQL0HQL MtM,$L}LHA H]LeLmLuH]UHHd$H]LeLmLuH}H(藿HEHH)QL0HQL MtpM,$L}LHA H]LeLmLuH]UHHd$H]LeLmLuH}H(HEHHPL0HPL MtM,$L|LHA H]LeLmLuH]UHHd$H]LeLmLuL}H}HuUHMH`舾HEHEЊEEL}LuH PHHPL MtRI$IL{HLLMLEA E܊EH]LeLmLuL}H]UHHH]UHHd$H]LeLmLuL}H}@uH@诽D}LuH@OHH6OL Mt臻I$IL({HLDA EEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUMH` EHEЋEHED}LuHNHHNL MtԺI$ILuzHLDEȉEAA E܊EH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uH8PD}LuHMHHML Mt(I$ILyHLDA H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHUHH軻HEHEL}LuHDML(H:MHHt苹HIL-yLLHULA$ H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@L}LuHLHHLL MtI$ILxHLLA EEH]LeLmLuL}H]UHH$H@LHLPLXL`H}uUMDELMHMEHD$@E@D$8E8D$0HE0HD$(E(D$ E D$ED$ED$HEH$EHxEHpEHhD}LuH~KHHtKL MtŷI$ILfwHLDhpAxAA EEH@LHLPLXL`H]UHHd$H}HuH3HEH}HVEEH]UHHd$H}uHEHEuH}AAHH7H]UHHd$H}HuUH8蠸$EHE܋UHuH}AIHH]UHHd$H}uU؉MHH>EЉD$E؉$EHŰuH}AAHH]UHHd$H}Hu؉UЉMDEHhٷ$ED$EȉD$EHMUHuH}AIH]UHH$PHPLXL`H}uHUHMDEDMHELeIMkHLILLHlXLmHHUHpdHaHcHhubHEH@HvH]LeIq&LH-HH9vɴDDMDEuH}H?EH}HhHt荇EHPLXL`H]UHH$0HHLPLXH}HuUHMLEDMHELeIMkHLmILLH,WLmHٵHUHh$HL`HcH`uhE$HEH@Hv賳H]LeIqLH-HH9v胳EDMЋUHuH}HEфH}H`HtGEHHLPLXH]UHH$0H@LHLPH}uHUHMDEDMHELeIMkHLILLHULmH艴HUH`ԀH^HcHXoED$E$HEH@HvXH]LeIq腲LH-HH9v(DDMDEЋuH}H~EvH}mHXHtEH@LHLPH]UHH$H8L@LHH}Hu؉UHMLEDMHELeIMkHLILLH|TLmH)HUHXtH]HcHPvE D$ED$E$HEH@HvH]LeIqLH-HH9vEDMUHuH}HEH}HPHt腃EH8L@LHH]UHH$`H`H}HuHEHH HDžhHDžpHDžxHEHUHu0~HX\HcHUH5RHx=HxHpHHhHhHuHpHpALHH}HvHuH}HEH8E诀HhHpHxH}HEHtEH`H]UHH$PHXH}HuHEHHEHH萰HDž`HDžhHDžpHDžxHUHu|HZHcHUH}HH}H5{E@EEE vUH VHDHEH5}Hp<HpHhHH` H`HuHhHhAL;HHxHtHxH}HEH8u } }'HEH8E~H` HhHpHxHEHtEHXH]UHHd$H]LeH}HuHEHHEHH(蕮H]HyLeLmLHEEH]LeH]UHH$PHXL`H}H}YHHEHEHDžxHUHuMzHuXHcHUHSH8u HSHxHuHSEH]HLeLLHu$H}UuH}uEE}tDHEHpHDžh HhHuHHxHxH} |HxH}H}H}HEHt}EHXL`H]UHH$pHxH}H}H聬HEHEHUHuxHVHcHUH1RH8u H"RHxHuHREEH}uH}mu EH}H5㓁 H}tH}H5 H}tH}H5| H}tEPH}u:H]HH}0;"uHu'H}WHuH}HuH}= zH}/H}&H}HEHt?|EHxH]UHHd$H]LeHHEHUHu6wH^UHcHUEEEUH4H}sEEE}ϟ@@H} DeH]HH}H4B"} MH5 }syH}HEHt){H]LeH]UHHH]UHHHOH!aH=OaH5PH=O蒜H]UHHd$}HhEfEEH]UHHd$}H8fEfEEH]UHHd$H]@}HE<0,0, v!,,t,,v8]H0q"H0qHH=vǦf]f]HAqHaqHH=v蔦f]6]HAq迦HAq账HH=vdf]fEEH]H]UHHd$H]f}HfEf=0zf-0f- vf-ff-v1^]H0s*H0sHH=vϥ]3]HasHAsHH=v蠥]E?EH]H]UHHd$HKmzs.}}fMmH(m}mHEHE,}}fMmH(m}mHEHEHEH]UHHd$H]}uUHX讦}t EE;Et EEHcUHcEHqҤH**M^EE}mzs*}}fMmHĐ(m}m̛H](}}fMmH(m}m̛H]HH-HH9v]EH]H]UHHd$H]f}uH 蠥fEf%fu fEfEfEEu&]H qHH=vqf]Eu&]H@q萣HH=v@f]Eu&]Hs_HH=vf]Eu&]Hq.HH=vޢf]EH]H]UHHd$H}uH 脤E; !-9 ,8DP\htmyH}H50H}H5H}H5H}H5wH}H5эbH}H5܍MH}H5獁8H}H5#H}H5 H}H5 sH}H5+^H}H5>IH}H5Q4H}H5dH}H5w H}H5{H}H5fH}H5QH}H5ێ<H}H5'H}H5 H}H5wH}H5/bH}H5BMH}H5U8H}H5`#H}H5sH}H5H}H5jH}H5UH}H5@H}H5ʏ+H}H5ݏH}H5{H}H5fH}H5QH}H5)<H}H54'H}H5?H}H5RH}H5eqH}H5{_H}H5MH}H5;H}H5Ր)EEHEHUH}HH5ҐH]UHHd$H}uHE+>3+7CO[gsyH}H5tH}H5Ə _H}H5ُJH}H5쏁5H}H5 H}H5 H}H5-H}H5@H}H5SvH}H5naH}H5LH}H57H}H5"xH}H5 cH}H5ՐNH}H5萁9H}H5$H}H5H}H5)H}H5<H}H5GzH}H5ZeH}H5mPH}H5;H}H5&|H}H5jH}H5XH}H5ґFH}H5葁4H}H5"H}H5H}HH]UHHd$H}H}ZHxHEHUHudgHEHcHUHuH}pHuH}3H}H5Ht EH}H5Ht EH}H5ȌcHt ExH}H5ЌCHt EMXH}H5،#Ht E8H}H5茁Ht EH}H5Ht EH}H5Ht EH}H5Ht EH}H5Ht EH}H5cHt ExH}H5 CHt EXH}H50#Ht E8H}H58Ht EH}H5@Ht EH}H5HHt EH}H5PHt EH}H5XHt EH}H5hcHt ExH}H5pCHt EXH}H5p#Ht E8H}H5xHt EH}H5Ht EH}H5Ht EH}H5Ht E H}H5Ht E H}H5cHt E xH}H5CHtE [H}H5&HtE >H}H5 HtE!H}H5ɍHtEEfH}H}HEHtgEH]UHHd$H}HuUH蠖EHuH}NHEHx uHEHx(UHuHEP H]UHH]UHH݂HH=>6H5oH=>#H]UHHd$H}uHH5HH}UH]UHH$PHXL`H}uH蠕HDžhHUHuaH @HcHUH}HDe؃ArU]HEHHpuHhHhHxHČHEHpH}H sHHpHEHHtH[HqHH-HH9v迒HEH0Hh HhHxHmHEHpH}HucHh4HEHtVeHXL`H]UHHd$H@ H̉HEHaHEHHEHHEHHEH]HEHڟHEHGHEHuHH=lHHEHuHH=JH]UHH$PHXH}HuUHCHDž`HDžhHUHxx_H=HcHpEt E(_Et EIEt E 3Et EpEt E EE@@tE=E00tE*E tEEtEEE%=t E;E%=t E!E%=t EEEEEE؊E؈EEEr/Hc]HqHH-HH9v貏]Ѓ}t} sHuHhhHhHuH`LH`DMԋMUAHE`H`HhHpHtbEHXH]UHHd$H}uHĐE=-tt't8tItZnH}HHphH}HHpRH}HHpZH Ht]\HEHLLH]UHHd$H]LeLmH}HuH(GH})LeLmMt*I]HGLHEHBH}H(H}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuH}HuH0蓉HELH]HELMtmM,$LGHLAH]LeLmLuH]UHH$`H`LhH}HuHHDžpHDžxHEHUHu/UHW3HcHUHuH}uHu}u}|uH}LeHxQHc]HAq貆HH=vb@@HpHpH5HxHxHEHL|WHpHxH}HEHtXH`LhH]UHHd$H}H臇HEHf,H]UHHd$H}HuHSHEHH5HpH]UHH$HLLLH}HuHUHHDžH}t)LmLeMtńLHjDLShHEH}tHUHuRH1HcHUHEHhH(RH0HcH u^HUH}HLuLLmMtI]HCLLHHEHEpUHH HtVHEH}uH}uH}HEH#UHEHpHhH QH/HcH`u%H}uHuH}HEHP`TSVTH`HtWxWHEHLLLH]UHH$HLLLH}H资_HEHH8}HUHuPH/HcHUH}HHHlH8H HEHhH(PH.HcH HEǀH}HELp`LmHEL``MtLHALLHUHELp`LmHEL``Mt蟁LHDALLHH}LeLmMthI]H ALELeLmMtHCHcHhHEHxueHEHXHtH[HH-HH9voHEL`HHxLMHUAz t7HEH8uHEHHuHtHEؐHEHE fDHEHEt;ttH]HEH)HH-HH9vnދMHUH}AtHE؀8t HEwHEH8uHEH0H}HiHcuH}к5H}輾HHHڼHHUHtHRH}QHEH0H}HUй舭?H}ګHhHt@HXL`H]UHHd$H]H}HuHoHEHHuHEHuLHEHHH ;.u'HEHHEHH5h迬H]H]UHHd$H}uHoHUEHEHxxt HEUH]UHHd$H}HnHEH֪,H]UHHd$H}HnHEEEH]UHHd$H}HuHSnHEHHu蟪H]UHHd$H}HuHnHEHHu߹HtHEHHuBH]UHHd$H}HmHEH,H]UHH$PHPLXL`LhLpH}H^mHEHEHUHu9HHcHUHEHuJHEHH}l|LuLmH]HtjL#L*LLA$(HEHuHELHELMtjI]H:*LHcHqjHH-HH9vtjHxx}E@EEHELDuLmHEHHtiL#L)LDLA$H}uHELDuLmHEHHtiL#LP)LDLA$HuH}zL}HELDuHEHHtSiL#L(DLLA$ x;E~:H} H}HEHt"O,LuHcUHH9vdLceLH}K4L;]~h#6H5TɐH}YHEHt7HXL`LhLpH]UHH$@H@LHLPH}HuUHfHEHEHEHEHUHh@2HhHcH`H}H}|HuH},Hc]HqcHH-HH9vc]Hc]H}H90LeHcUHH9vXcHc]HH}I4H}{HuH}AHƅ\;H\CH}:HHH-HH9vb}EEELmHcUHH9vbLceLH}sKtH}UHuH?Ht+HuH*HtH}Hu萠 ;]~l3H5ƐH}WH5ƐH}VH}H}ݟH`Ht4H@LHLPH]UHH$0H8L@LHLPH}HuHcHEHEHDžhHDžpHUHu/H HcHxEHEHuHEH0HpHptHEH8ktLeLmMt`I]Hq L HEHH}RHEHtH@HHEH0H}HUع HEHHEH0H}HEpuHEH0HhڰHh.tEHEH0Hp记HpH`HDžX HXHGחHpHHhvHhHחHxAɥ0HEpuBHEL0LeLmMtg_I]H LLXt EHEpuHEH8iuHEH8蝄E5HEH0H}訯H}tH}H5dZ?H}vE}tgHEHH`HDžX HXH֗HpHHhuHhH֗HxA薤/HhCHp7H}.H}%HxHtD1EH8L@LHLPH]UHH$pH}HuH_HEHUHu#,HK HcHUuH}htbEHEHxHDžp HpHE՗HpHH}atHuHԗHxAmE.H}HEHt;0EH]UHH$@HHLPLXL`LhH}H^HEHDžxHUHu +H1 HcHU8EHEHH}ښH}uHEp@trLuLmH]HtD\L#LLLA$PELuLmH]Ht\L#LLLA$(}tHEp@u{HELHEHHt[L+LXLAHcHq[HH-HH9v[Hpp}EEEHELDuLxHEHHt[L#LLDLA$HxH}NLmLuH]HtZL#L{LLA$PEHELLuD}HEHHtZL#L5DLLA$ }tp;E~ +Hx9H}0HEHtR-EHHLPLXL`LhH]UHH$PHPLXL`LhLpH}H[HDžxHEHEHUHu'HHcHUH}AEHEpt)LeLmMtHYI]HLHHEpt^HEHH}*H}u-HEHH} HuHEH(9HELHELMtXI]HVLHELAHxHELMtdXM,$LHDLAHxH}XH}uoHELAHxHELMtXM,$LHDLAHxH}HuHEH( }t,LeLmMtWI]HFL`E)HxiH}`H}WHEHty*EHPLXL`LhLpH]UHHd$H}HuHYHEHH͗HpLH]UHH$HLLH}HuHUHXH}t)LmLeMtVLH,LShHEH}t HUHu$HHcHUucHEHUH}H#HEǀ8HEǀpHEH}uH}uH}HEHg'HEHpHhH($H:HcH u%H}uHuH}HEHP` '('H Ht))HEHLLH]UHHd$H}HuHWHEptHuH}HEƀHEH]UHHd$H}HVHEHPuHEHXHuHEPH]UHHd$H}HpgVHEHUHu"HHcHUnHEHH}肒HEHxHuHt=HEHxHuQHEH`uHEHhHuHE`S%H}誑HEHt&H]UHHd$H}uUHU}uHUEpHEUpH]UHHd$H}H7UHEH[趑,H]UHHd$H}HuHUHEHHe˗HpLH]UHH$HLLH}HuHUHTH}t)LmLeMtRLH,LShHEH}tHUHu HHcHUuUHEHUH}HCHEǀ9HEH}uH}uH}HEHu#HEHpHhH( HHHcH u%H}uHuH}HEHP`#$#H Ht%%HEHLLH]UHH$HLLH}HuHUHSH}t)LmLeMtPLHLShHEH}tHUHuH:HcHUuUHEHUH}HHEǀ:HEH}uH}uH}HEH!HEHpHhH(HHcH u%H}uHuH}HEHP`z!#p!H HtO$*$HEHLLH]UHHd$H}HQHEH6,H]UHH$pH}HuHMQHEHUHuHHcHUuH}#tbEHEHxHDžp HpHƗHpHH}eHuHvƗHxAݔE2 H}艌HEHt!EH]UHHd$H}HuHcPHEHHǗHp謌H]UHH$`HhLpLxLuH}HuHPHEHUHuJHrHcHUuXHEHHu{H}HELHELMtMMeL= L@A$P H}aHEHt HhLpLxLuH]UHHd$H}HuH#OHEHHH]UHH$HLLLLH}HuHUMHNH}t)LmLeMtLLH; LShHEH}tHUHxHHcHpHEHUH}H EEH}ྡ躣H}Mܤ}uH}ྦcH}ྟH}ྦGjH}ྟilHELAHELMtKI]H5 DLHELAHELMtQKI]H DLHELAHELMtKI]H DLH}ྈfH}H}ྌJiH}lkHELAHELMtJI]H8 DLHELAHELMtTJI]H DLLuALmMt%JI]H DLH} H}H5EHEHH5E8LuIH-HH-IMtIMLR HLLAHUHHELLLL5MLXIgtH5EL(HEHL/ @L躮LuLMMtHM,$LHLA`L}IH)HHIMtHMLUHLLAHUHHELUL"L L8It/LJL蝦H5.DLLuLMMtHM,$LHLA`LuIHe؝HH[؝IMtGMLiHLLAHUHHELL6RL+LLLoALMMtJGM,$LHDAIPlIOsLYI`豅I`蠇I`I`~RL1eLTgLH]MMMtFMuL%LHA`L}IHHHIMt=FMLHLLAHUHHELL话LrLŞLH5BLL,HELLMMtEM,$LCHLA`LuIHHH IMt[EMLHLLAHUHHELL͜L萣LLH5OALLJHELLMMtDM,$LaHLA`L}IH2HH(IMtyDMLHLLAHUHHELLL订:LL$H5@LLhHELLMMtCM,$LHLA`L}IHHHIMtCML<HLLAHUHHELL -L̡1LLB@LwALMMtCM,$LHDA ImH5?LI`舁I`I`~I`I`āI`3I`袀I`0L`LbLz<MMMt BMuLLAH>HMMMtAMuLsLHAPH>HMMMtAMuL6LHAPLܟH]MMMtVAMuLLHA`LuIHѝHHѝIMtAMLHLLAHUHHELL脘LGL蚙\L轚ALMMt@M,$L9HDAMMMth@MuL L@ALSI`~I``I`πL^\L`LXH]MMMt?MuLvLHA`L}IHHHuIMt?ML3HLLAHUHHELLLÝLPL9ALMMt?M,$LHDAH5<LPMMMt>MuLqLA@L:{ L HEHMMMt>MuL$LHA`L}IH-HH#IMt<>MLHLLAHUHHELL讕Lq@LĖPLALMMt=M,$LfHDA Ie@Ly H5:L~PMMMt_=MuLLALzz L蝛HEHMMMt=MuLLHA`LuIHHHIMtLdLTPLwALMMtR HHEHH{HEH HHEHH{HEH HþHhHEHH l_HELA HELMt4I]HDLHEHg HHEHH!{HEH< HHEHHzHEH HþH~HELLL7\LZALMMt23M,$LHDAHEH HHEHH>zHEHY HþH}HELAHELMt2I]HEDLHEH HHEHHyHEH HþHI}HEH HHEHH^yHELAHELMt1I]HDLHEH9 HHEHHxHEH HþH|HEHHHEHHxHEHHHEHHxxHEHHHEHHMxHEHhHþH{HEHCHHEHpHxHEHHHEHHwHEHHþHp{HELAHELMt80I]HDLHEHHHEHHEwHEH`HHEHHwHEH5HþHzHEHHHEHHvHELA HELMtR/I]HDLHEHHþH%zHEHHHEHH:vHEHUHþHyHEH0HHEHHuHELAHELMtr.I]HDLHEHHHEHHuHEHHHEHHTuHEHoHHEHH)uHEHDHþHxH]LeLmLuL}H]UHHd$H}HuHs/HEH8H}kH]UHHd$H}HuH3/HEH8HuzHtHEH8HubkH]UHHd$H]LeLmH}HuH(.LmLeMt,I$HWLXHUHE % LmLeMtn,I$HL0H]LeLmH]UHHd$H]LeLmH}HuH(.LmLeMt,I$HL8H]LeLmH]UHHd$H}HuH-HEHH]UHHd$H}H-HEHuHEHE H}EEH]UHHd$H}H'-HEHuHEHE H}ȱEEH]UHHd$H}HuHUH,HE@Pu_HEHHU苀HEHHU苀HEHuHEHHuHEH]UHHd$H}HuH#,HE@Pu)HEHuHEHHuHEH]UHHd$H}HuH+HEH@H}hH]UHHd$H}H+HEHuHEHHUHEEEH]UHHd$H]H}H#+HEH'H}lljnHEHEH]H]UHHd$H}H*HEHuHEHHUHEEEH]UHHd$H}HuHs*HEH@Hu?vHt?HEH@HufHEHuHEHHHuH]UHHd$H}uH)HE;Et7HEUHEHuHEHEHZH]UHHd$H]LeLmLuH}uH0t)HE ;Et1HUE HEHuHE  HEHLHEHLMt&MeLL@A$ HE HEHLHEHLMt&MeLFL@A$ HE  HEHLHEHLMtG&MeLL@A$ H]LeLmLuH]UHHd$H}HuH'HEHG;Eu uH}H};Eu uH}H]UHHd$H}uH'HE;Et7HEUHEHuHEHEH*~H]UHHd$H}H''HEHuHEHHuHEH]UHHd$H}H&HEH(uHEH0HuHE(H]UHHd$H}H&HEHuHEHHuHEH]UHHd$H]LeLmLuL}H}H8#&HE HHH=,WHEHEHHHpHEHH~HpŲHEHHCHp課HEHHhHp菲HEHHmHptHEHHHpYHEHHHp>HEHHHp#HEHLHLpHEHLMt"I$ILLLA HEHLH\LpHEHLMt"I$IL&LLA HEHHUH aHHHEHHMHHHHEHHUH 9HHH}uHEH}zHEH}wyHEH]LeLmLuL}H]UHHd$H]LeLmLuH}H0w#HEHHEHEH@HEHMHELHELMt+!I$HL HEHH}HE HELHELMt M,$LsL@A HE  HELHELMt M,$L'L@A HE  HELHELMt7 M,$LL@A HE @@HEHxHE HELHELMtM,$LiL@APHE @HELHELMtyM,$LL@APHE HELHELMt-M,$LL@APHE HELHELMtM,$LL@AHE HELHELMtM,$L9L@AHE HELHELMtIM,$LL@AHE HELHELMtM,$LL@AHE @HELHELMtM,$LUL@AH]LeLmLuH]UHH$pHpLxLmH}HOHEHUHuHHcHUHEHHEHEHtHUHE  HUHE  HELHELMtI]HKL uHUHE   HUHE % HELHELMt6I]HL uHUHE  HUHE ߉ HELHELMtI]HmL uHUHE  HUHE % HEHHu6IHuHEH@YH}4YHEHtVHpLxLmH]UHHd$H}HuHHE@PuH}&THE|EHE|6H}HUHEHUHEH]UHH$HLLH}HuHUH4H}t)LmLeMtLHLShHEH}tHUHuBHjHcHUqHEHUH}HHEǀ HEǀHEǀHEH}uH}uH}HEHHEHpHhH(HHcH u%H}uHuH}HEHP`H Ht_:HEHLLH]UHHd$H]LeLmH}HuH(H})LeLmMtjI]HLHEHH}H5|(H}uH}uH}HEHPpH]LeLmH]UHHd$H}HHEHuHEH7H]UHHd$H]LeLmH}H(EHEHt4LeLmMtsI]HLHHUHHEHu HEHH}LeLmMtI]HLPHEHHMHH HHHEHHUHH(HXH`HEHEHwHEHHEH耥HEHHEHHUHEHHUEEH]LeLmH]UHHd$H}HuHHEHHHpLTH]UHH$HLLLLH}HuHUMHH}t)LmLeMtvLHLShHEH}tHUHxHHcHpHEHUH}HsEE܀}uH}ྟlH}QsH}྇mH}nH}'3H}I5HELAHELMtqI]HDLHELAHELMt1I]HDLH}ྟkH}ྸxrH}MlH}mH}ྌN2H}p4HELAHELMtI]HH5 LHEHL @LwLuLMMtM,$LfHLA`L}IHHHIMt~ML#HLLAHUH8HEL8LhLo-LjWL)kIH=I'<H5LHEHL @LzvLuLMMtM,$LXHLA`L}IH邙HH߂IMtpMLHLLAHUHHELYLgLn Lh LjLnnH5 LLuLMMtM,$L}HLA`L}IHHHIMtML:HLLAHUHHELcLgLm(LhL@iI9LmH5 LLuLMMtM,$LHLA`L}IHJHH@IMtMLNHLLAHUHHELLfrLl>L1gLThALMMt/M,$LHDAI53I4:L I`NI`LI`tJrL',LJ.rMMMt{ MuLLALkH]MMMt@ MuLLHA`LuIH͙HH͙IMt MLHLLAHUHHELLndL1kLeLfH5L舛LjHELLMMt^ M,$LHLA`LuIH̙HH̙IMt MLHLLAHUHHELLcLOjLdLeH5L覚L jHELLMMt| M,$L HLA`LuIH˙HH˙IMt8 MLHLLAHUHHELLbLmi:LcLdH5TLęL'iHELLMMt M,$L>HLA`L}IH˙HH˙IMtV MLHLLAHUH HEL LaLhYLbLdH5LLEhHELLMMt M,$L\HLA`L}IHYHHYIMtt MLHLLAHUHHELL`<Lg>LaLc@LTvALMMtM,$LHDA Ie3H5vL趗I`eGI`HI`DI`EI`GI`HI`FI`D&L&L(LWi<MMMtMuLLAHHMMMtMuLPLHAPHHMMMtoMuLLHAPLeH]MMMt3MuLLHA`LuIHHHIMtMLHLLAHUHHEL}uLV^LeLl_L`ALMMtgM,$L HDALL$L&LdL]L{dL^\L_MMMtMuLnLALuI`TDI`EI`2FL#\L&LcH]MMMt5MuLLHA`LuIHⲙHHزIMtMLHLLAHUHHELIG( L[\Lc Lq][L^ALMMtoM,$LHDAH5wLG[MMMt(MuLLA@L@ LhbHEHMMMtMuLLHA`LuIHHH~IMtMLHEHHHEHH>HEHHþH)BHELAHELMtI]H蕶DLHEHH!HEH0OHEH05CNHEH0H !HEH0HHEH(H=HEH0HþH7AHEH0HHEHHL=HEH0gHþH@HEH(NHEH(]MHEH(H 1 HEH(HHEHH<HEH(HþHQ@HEH(HHEHHf<HEH(HþH@HEHMHEHgwLHEHH KHEHHHEHH;HEHHþHk?HEHHHEHH;HEHHþH?HEHvHHEHH0;HEHKHHEHH;HEH HHEHH:HEHHþHu>f HELLQLLgL>MALMMtM,$L轲HDAMMMtMuL荲LAHEH<HHEHpH9HEHHHEHpH9HEH8HHEHH9HEH8HHEHH{9HEH8HþH=HELAHELMtI]H肱DLHEH1HHEHH8HEHHþH<HEHHHEHH8HEHHþH6<HEHHHEHHK8HELAHELMtI]HwDLHEH&HHEH8H7HEHHþH{;HEHHHEH8H7HEHHþH+;HEHHHEHH@7HELAHELMtI]HlDLHEHHHEHH6HEHHþHp:HEHHHEHH6HEHHHEHHZ6HEHuHHEHH/6HEHJHþH9HEH%HHEHH5HEHHHEH8H5HEHHþHO9HEHH cHELAHELMtI]H蟭DLHEHNHHEHH5HEH#HHEHH4HEHHþHx8HEH0H HEH0HþH78HEH0HHEHHL4HEH0gHþH7HEH0BHHEHH3HEH0HþH7HEL0AHEL0Mt_I]HDLHEH(H kHEH(HþH7HEH(qHHEH0H+3HEH(FHþH6HEH(!HHEHH2HEH(HþHv6HEL(AHEL(Mt>I]HDLHEHH *HEHuHþH5HEHPHþH5HEH+HHEHH1HEHHþH5HEHHHEHH1HELA HELMtI]HDLHEHpHHEHH*1HEHEHHEHH0HEHHþH4HEHHHEHH0HEHHþHJ4HELAHELMtI]H趨DLH]LeLmLuL}H]UHHd$H]LeLmH}HuH(LmLeMtI$HGLXHUHE  % LmLeMt\I$HL@H]LeLmH]UHHd$H]LeLmH}HuH(LmLeMtI$H藧LXHUHE  % LmLeMtI$HPL@H]LeLmH]UHH$`H`LhLpLxL}H}HAHEHUHu臵H诓HcHU[HE HHH=% HEHEHH`HpuHEH0H `HpuHEH(H`HpuHEHH5[Hp|uHEHH_HpauHEHHuHpFuHEHH$uHp+uHEHHIuHpuHEH HuHptHEHH3uHptHEH8H_HptHEHHuHptHEHLHuLpHEHLMtdM,$LLLA HEHLHtLpHEHLMt M,$L譤LLA HEHHuLuHELHELMtI]HXLLAHEH8HuULuHEHHELMt_M,$LHLAA9RHEH誻HHEHHd+HEHHþH.PHEHXHHEHH+HEH-HþH.HEHHMHHHHEH0HUHHHHEH(HMHHHHEHHUH KHHHEHHUHHHH}6HEH};HEH}e:@H} HEHt蹵HEH`LhLpLxL}H]UHHd$H]LeLmLuH}H0GHEHHEHEH@HEHqHELHELMtI$H蟡L HEHH}貏HEH8HEHpHE HELHELMtM,$L(L@A HE  HELHELMt8M,$LܠL@A HE  HELHELMtM,$L萠L@A HE HEL HEL MtM,$LDL@A HE @@HEHBHE HELHELMt.M,$LҟL@APHE @HELHELMtM,$L膟L@APHE HELHELMtM,$L:L@APHE HELHELMtJM,$LL@AHE HELHELMtM,$L袞L@AHE HELHELMtM,$LVL@AHE HELHELMtfM,$L L@AHE @HELHELMtM,$L辝L@AHE HEL HEL MtM,$LrL@AH]LeLmLuH]UHH$pHpLxLmH}HoHEHUHu赫H݉HcHUeHEHHEHEHDtHUHE  HUHE  HELHELMtI]HkL uHUHE   HUHE % HELHELMtVI]HL uHUHE  HUHE ߉ HELHELMtI]H荛L uHUHE  HUHE % HEL HEL MtxI]HL uHUHE  HUHE % HEHHuHuHEH@aHEHHuHuHEH89dH}HEHtݭHpLxLmH]UHH$HLLH}HuHUHdH}t)LmLeMtGLHLShHEH}tHUHurH蚆HcHUu`HEHUH}HsHUHE苀   HEH}uH}uH}HEH*HEHpHhH(էHHcH u%H}uHuH}HEHP`ϪZŪH Ht褭HEHLLH]UHHd$H}HuHHEHHRHpH]UHHd$H}HHEHuHEHHuHEH]UHH$HLLLH}HuHUHH}t)LmLeMtLH襗LShHEH}tRHUHu+HSHcHUHEHUH}HhRHEǀ%IHDL%=MtiMLHLA8HUHHEǀHEH}uH}uH}HEH蘨HEHpHhH(CHkHcH u%H}uHuH}HEHP`=ȩ3H HtHEHLLLH]UHHd$H]LeLmH}HuH(7H})LeLmMtI]H辕LHEH腐H}H9(H}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuH}HuH0HELH]HELMt]M,$LHLAH]LeLmLuH]UHHd$H}HHEHkXF,H]UHHd$H}HuHHEHHMHpH]UHHd$HH7HHxxuH7HHxxHEEHh7HHuHR7HHHEHF7H8%HEHEH]UHH$HLLLLH}HuUHMHhHDžHUHXH;HcHPEL%L-Mt{LH LShHEH}HEHAIIH]Ht.L#LӒLLDHA$ H8HSH{HcHH}о&H}о=|HuH}aH}оH}оTaEL}IHIHuHHtfIL LLLA$HELmLuH]Ht.L#LӑLLA$`HuH}aLmAH]HtL#L蓑DLA$LuAH]HtL#LcDLA$L}IHCIHCHHtzILLLLA$HELmLuH]HtBL#LLLA$`HEȋH})LuAH]HtL#L衐DLA$Hc]HH?HHHHHH9vHEHHEH}@HcH:HcHqH ףp= ףHHHH?HHH:0H}_HcHHH; HHHH}HcHqXHHH;| HHHH-HH9v]HELE=vDmHEHHtzL#LDLA$HEH0H}Q^H}@.}uCLmAH]Ht#L#LȎDLA$h H}*̌ ALmAH]HtL#L腎DLA$h H}艌 H}-L}IHaIHWHHtIL%LLLA$HLHEHcHEHcHqHH-HH9v9L&LmMLHtL#L融LLA$`@L(LH(AMLHtL#LULDA$HEH`u HEH`u1 LmAH]HtZL#LDLA$H}hLeLmMt$I]HȌL t$H}HHH}H EoH}fHHtPH HPHtßEHLLLLH]UHH$HLLLLH}HuHUHMDELMHpHDžHDžHUH@OHwxHcH8 H}H% HEH.L8IH3IH)HHtIL/LLLA$HEH H貙HwHcHYH}YEH}YEH}tHuH}YH}=HELLmHEHHtL#LlLLA$EHELLmHEHHtL#L*LLA$E;EELeLmMt7I]HۉLHcHqrHH-HH9vH}EDEȃEHDuLmHLeMtM<$L@HLDAHHǀHLHELHEHHt8L#L݈LLA$E;EE̋;E~L}IHdYIHZYHHtILhLLLA$HELuLmH]HtL#L0LLA$`LuAH]HtXL#LDLA$HEHu\H}HWH}LuAH]HtL#L蜇DLA$L}IH̫IH«HHtILXLLLA$HELmLuH]Ht{L#L LLA$`HuH}UVH}ǞHHuHH}語HHuHkH}荞HHuHNH}pHþHHEHuLmAH]HtL#LXDLA$H}@ LuAH]HtwL#LDLA$L}IHtIHjHHt3IL؅LLLA$HELuLmH]HtL#L蠅LLA$`UH0D4LmH]HtL#LdLDA$ HELLuHEHHtL#L%LLA$LuAH]HtML#LDLA$ H}覜HHuHg H}艜HþH H}kHHuH, H}NHHuH H}1HþHLmAH]HtL#L,DLA$LuIH$IHHHtCILLLLA$HELuLmH]Ht L#L调LLA$`H}d(LuAH]HtL#LrDLA$HcEHkqLcuIqLH=vHELHEHHteL#L LDA$LeLmMt8I]H܂L t=HuH}LmH]HtL#L蠂LA$ HU؉jH}A|HHtKHHH8Ht貕HLLLLH]UHH$pH}HuHUH9HDžxHUHu|HnHcHUu+LMHMHUHuAHxzHxiHxHEHtߔEH]UHH$HLLLLH}HuHUHMH bHEHUHp襏HmHcHhHH=ݎOHEHPH\HmHcHH}}yILHILHEH@H9vHEH4H}LuH]LeMt~M,$L"HLAPL;}}HUHuH}EԑH}zHHtJ赑H} HhHt+EHLLLLH]UHHd$H}HuHUHMDEH0HEHLMDEHMHUHu'H]UHH$HLLLLH}HuHUHMLEDMH(:HEHUHh}HkHcH`HH=eێpMHEHHH4H\kHcHH}}yILHILHEH@H9v蟾HEH4H}LuH]LeMtVM,$L}HLAPL;}}H}DEHMHUHu<觏H}xHHt舏H}H`HtHLLLLH]UHHd$}H蘿EEH]UHHd$}HhEEu EEu EEu E Eu EE u EEu EnEu EZEuEIEuE8E@uE'EEEEErEE} sEH]UHHd$H]}HuHUHMDEDMHH@EtE=t EEHE}uEЈE }EHEHEHEEDEEEErHEHcHqHkqHHH9v譻HH}HuHEHcUH&E:Et HUHEHEHcHq蝻HH-HH9v@HE} s7HEH]H]UHH$PHXH}@uUMHмHDž`HUHpH8gHcHhHMHUHuԋ}AA HEHuH`3H`EHc%4DMDE؋MHUÉ؃ vKH~%DEH}H7蒋H`HhHtEHXH]UHH$0HHH}HuUMDEH蜻HDžPHUH`܇HfHcHXHMHUHuċ}AAHEEĉ$HuHP2HPEH)$DMDEHMH}É؃ vHC$DEH}HWHPHXHtʋEHHH]UHH$0H@H}HuUMDEDMHXHDžHHUHX蘆HdHcHPDMHMHUHu}AHEE$HuHHx1HHEH"DMDEHMH}^É؃ vͷH#DEH}HHHhHPHt臊EH@H]UHHd$H}@uUMDEH0)EDEMUHuHAwEԋEH]UHHd$H}HuUMLEH0ɸEUHuH}AEԋEH]UHH$ H8H}@uU؉MDEDMHhHDž@HUHP訄HbHcHHHMHUHu}AAHEED$Eȉ$HuH@/H@EH 4DMDEMHUWÉ؃ vֵH !DEH}HH@qHHHt萈EH8H]UHHd$H]H}@uUMDEDMH@1HH5³HDMDE؋MUuH}_E̋EH]H]UHHd$H}Hp׶HEHUHuHEaHcHUuHuH}-.H}H}qHEHt蓇H]UHH$`H`LhLpH}HuHUHELeIMkHLILLHGWLmHHDžxHEHUHu/HW`HcHUu6HUHMHuHxHxH}$-H}vHxeH}\H}HEHtuH`LhLpH]UHHd$H}uUHHEHUHuTH|_HcHUu!HuH}d,H}MU`KH}HEHtąH]UHHd$H}HuHUHMH kHEHHuHUHuH}z H]UHHd$H}HuHUHHEHHlHMHuH}i H]UHH$HLLLLH}HuHUMH裳HEHDžHDžHDžHDž@HDžXHUHhH]HcH`HE-tCtt EtHuH=6dHEH}H@H@HPHDžH HHHH5HXHXH}عH'HEHuH= ЕOcuHEH H|H(LuLLmMtBI]HoLL HH0H-H8H H}عHH}HHNIMuH(H~HA\HcH fLHEHuH=YLbunHEHH|HH}HHHHPHHH}عH5HEH}tHEHUȋ;EHEHHHH߭HHH}عHHuH}عHƭH}HIHH2HHPHDžH HHHH50HX,HXHuH}عHEHELcILMMtۭM,$LmHLAU`H HtԀ/n(HHuH,HHH(HlH`HTH@HHXH}uHuH}e&H\H8H=:HH}=HEЋU@HEЃ@\Hc]HkqrHHH9vHHEHHHcUHkq9HEHHH},E;E} }|HEǀ, HUЋE,HEǀHELc@Iq҈LHHH9vtA}EfẼEHEHHHcŨ<}HEHHHcẼ< ~HEHHLceB vBHxDEȋEȃht;ttWHEǀGHEЃuHEǀ(HEЋttuHEǀD;m~HEЃtHEǀHEH8tHEH8H5 nHEHpHB-HEHp@ @ @@ HEЀ(u H} H}?XHHHHtYHEH}uH}uH}HEHWH`HpHHHTH2HcH@u%H}uHuH}HEHP`WY~WH@Ht]Z8ZHEHLLLLH]UHHd$H}uEMH0zEf)EEH}获HE(u H}6 H}H]UHHd$H}HuHHEH}HUHEƀ~H]UHHd$H}HuHӆHEH8H}H]UHH$PHXL`LhLpLxH}HnHwHH,AMcIdq諄LH-HH9vNH7H8HcHH?HHHH-HH9vھDHEHUHUHEHPHEHXHEHHHEL8MtMd$LHHH9v蔃DHEH8HuH5jHEHPA HHZE}|uH}*EH@E}|uH}EEH}H} EHE\EE;EEEEHc]H} AMcMkqIq݂LHHH9vDeEH}HcHq蛂HHHH9v=HEE}5EE؃E؋uH}ۇHH=IP4uuH}跇HEHuHHED}EHEDuEHEH]LeMt艁M,$L-AHߋEDEEALceHEHcH} VAMcIq薁Mq茁LH-HH9v/DmHEuHuH}.HuH}bE;E~Hc]H} HcH)qHHHH9v踀]HE0}H} H} uǹRHEHUHUHEH`HEHh (HHEHx H)HHEH`ǡ;HEHUHUHEH`HEHhHEHchH} AMcIqLHHH9vDeHEHcXHc]HqHH-HH9vY]E;E|EEH} %HcHUHcXHcMH)qYHH?HHHqBHMHcEHEHEH;EH]H]HHHH9v~]UHcEHc]Hq~HEHcXH)q~HH?HHHHHH9vk~]H} JHEHPu腥Hc]H} #AMcMkqb~IqX~LHHH9v}DH}~H} HcHkq~HcUHq~Hc]Hq}HHHH9v}H}H}dHHcHcEH)q}HH?HHHHHH9vF}]H}躄AMcIqi}LH-HH9v }A}EfE؃E؋uH}賂HH=!K/utuH}菂HEuH}?LcmHEHcH} AMcIq|Mq|LH-HH9v[|DeD;u~THXL`LhLpLxH]UHHd$H]LeLmLuL}H}HuHH}HEH蓝HEHEL}LuAH]Ht{HILB;DLLHUA$XHE@;E| HUEBHUE;B| HE@̉EHEU;P| HE@ЉEHEH]LeLmLuL}H]UHHd$H]LeLmLuH}H`|HEǀ0H}EdH}`tH݊H8wHcHdqzHH-HH9vzH}| ¾YHEHUHUHEHPHEHXH;݊H8HcHdqszHH-HH9vzH}d ¾տHEHUHUHEHPHEHXHEHxHEHH THEHHHEL8MtMd$LH-HH9vfyDHEH8HuH5<~HEHPAH HE\EH}蝀t H}~EH}HcHkq yHc]HqyHH-HH9vxHETHEH\HEHcTLc#IqxLH-HH9vkxD#H}JHUPH}2HcHUHcPHqjxHH-HH9v xHEXH}}HH=3F*uH}}HEH}dHcH}UHcHH?HHH)qwHH-HH9vswH}H}JH}H}U1H}&HE耸uHuH}$HuH}mNH}nEH}EH}]~HcHq wHH-HH9vv}EEEuH}S|HH=D$)uuH}/|HEuH}uH}H}U%H}LcmHELcH}AMcMq=vMq3vLH-HH9vuDuHE耸uHuH}v#HuH} ;]~H}HUTHEH\HEHcTLc#IquLH-HH9vGuD#HEǀPHEHcPHdq`uHH-HH9vuHEXHc]H}HcH)quHH-HH9vt]؋E;EEE؉EH}|tHEHc\HEHcTH)qtH}THcHkqtHqtHc]Hq~tHH-HH9v!tH}vH}H}bLceH}HcLqtHH-HH9vsH}H}H})HEHcHw֊H8/HcH2qsH9GHS֊H8 HcH2qsHH-HH9v.sH}H]LeLmLuH]UHH$ H0L8L@LHLPH}HuUHMDEDMHtED$Eȉ$LMDEHMHUHH=ǕIMHUH`@HHcHX}t#La+u Lu(LLMMtqM,$L1HA EEtEEE vqEHܕE,CLH!,HXHtDEH0L8L@LHLPH]UHHd$H}@uUH 0sEUHuHHEHEH]UHHd$H}HuU؉MHhrHEHUHu}AAHMHEED$E$EHەDLMHMHUHH=ŕHEHEHEH}H蒅HEH]UHH$@HxLeLmLuL}H}HrHEHn@HEHtH}IHHEHzHEHH$HEЋHUHEЋHUHEHHUHELLHEHHELMtqoM,$L/HLLLMEEAAHEHuHELHELMtoI]H.L0HED$ D$D$$HEHD$HEHIAMLHtnL#LJ.LDA$HEHELHELMtfnI]H .LHUHELHEHHt)nL+L-LA0AHELHELMtmM,$L-LAHǺ DEALM9HxLeLmLuL}H]UHH$HLLLLH}HNoHEHHUHP;HHcHHHEHHGHEH@ @ @@ HEHtHEHH5lHϊH8vAHϊH84HcHH?HHHH-HH9vlھDQH8H@HUH8HH@HEH%ϊL HϊL(MtkI]H+LHH@HE`H@HEHHHWHEHHHELMtMd$LHHH9vkDHEHHuH5cpHEHDEHH}>HH؃H8H@HcDH}>IL诃H8H@HcHpH}聊BHHHpH}k,HrHpH}UH<HpH}?H}trH踉HcuHqLH#HH5MHHHH=HH5HH}uHELmH]LeMt=KM4$L HLAHEUP0}u1LuLmH]HtJL#L LLA$@}u1LmLuH]HtJL#Lf LLA$8fH芈uHK"HH5MHHHH= HH5HHcEH;EHEHx@tDžDžDž DžDžDžDžDž DžDžHH}H %uILmLeMtII$H2 LL@HuHHHxEH] HpEHhL}LuHܝHHܝL MtIM,$LHLMhApHxAEeH}\HHtFH蚆H莆H肆HvH} ^H}dH}[H0HtzEH@LHLPLXL`H]UHHd$H]H}HuHUHEHH(IH}H@HEHcHUH;B ECEH]HcHH9vGHcHEH@H@H9vGHEH@HHHHHt3H2HHxHtiHkH]HcHH9v2GHcHEH@H@H9vGHEH@HHtH}H]HcHH9vFHcHEH@H@H9vFHEH@HHtH}H]HcHH9vFHcHEH@H@H9vhFHEH@HtH}ɎfH]HcHH9v)FHcHEH@H@H9vFHEH@HHtH}ώ H]HcHH9vEHcHEH@H@H9vEHEH@HHtH}H]HcHH9vuEHcHEH@H@H9vZEHEH@HtH}K[H]HcHH9vEHcHEH@H@H9vEHEH@HHtH}dE}u5HEHcHqEHH-HH9vDHEEH]H]UHH$PHPLXL`H}HuUHMLELMHELeIMkHLYILLHLLmHEHUHpDHlHcHhu"HMLEUHuH}AE7H}.YHhHtEHPLXL`H]UHH$HLLLLH}HuHUH &EH}t)LeLmMt CLHLShHEH}tHUHu4H\HcHU:HEHUH}HHEǀxHEǀpHEƀtHEHǀH]Ht[BL+LH]Ht@BL#LLA$HxHxIHEHAGHAHALeMtAM4$LDꋅAHAHEH}uH}uH}HEHHEHpH`H HHcHxu%H}uHuH}HEHP`>HxHtcHEHLLLLH]UHHd$H]LeLmH}HuH(BH})LeLmMt@I]H.LHEHH}HeH}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmH}uH(AHE|;EtnHUE|HEHu(HE@PtHEHHuHELmLeMt?I$H-L@H]LeLmH]UHHd$H]LeLmH}uH(8AHEp;EtEHUEpHEtu)LeLmMt>I]HL@H]LeLmH]UHHd$H}H@HEtEEH]UHHd$H]LeLmH}@uH(g@HEt:Et6HUEtLmLeMt3>I$HL@H]LeLmH]UHH$`HhLpLxLuL}H}H?LeLmMt=I]HTLtRHEHEHEHtYH}IIH=HH<IMt==MLHLLAHUHHUHue HHcHUyHE|EHEHHE|HELHELMt1HH-HH9v0HEXEH]H]UHHd$H}H2HEHk[HEHEH]UHH$`H`LhLpLxL}H}uH2H}IMuHUHuVH~HcHUu-LXHEHE@8;EtVL|uAILMMt/M,$L?AWHUHBhHUH &CHH=?WHUHHE@x HE@|HEǀHEǀHEǀHEH}uH}uH}HEHHEHpHhH(HHcH u%H}uHuH}HEHP`{H HtZ5HEHLLH]UHHd$H]H}uH (}d|Ert%t)t-t1t5t9t=tAHEEEHEHƺHxH5WIH=PHDEHxHpHx0bH]UHH$`H}uHHEHUHuH,HcHUH}HAEfDEEEErMHEH8uHEH0H}H BuH}HUHEH0H}B}sH HhHEHHpH HxHhH}HDLH}@HEHtH]UHH$pH}uH~HEHH@HuHxFH5#H=DEHxHAnHx``H]UHH$`H}uHHEHUHu4H\HcHUH}H @EfDEEEErMHEH8uHEH0H}H! @uH}HUHEH0H}@}sH HhHEHHpH HxHhH}HC|H}>HEHtH]UHH$pH}uHHEHƺHx膍H5H=0DEHxHl,Hx^H]UHHd$H}uH4E vGEHHHH}HH]UHH$HLLH}H8HE@PuHE@uH}tULeMtrI$HHHgHHEHEHuHH="=LmLeMtI$H轾LELmLeMtI$H葾L(H}}uH}NuHEHHLLH]UHHd$H}HuH(cHEH@hHEHEH@hHEHEH;EwHUH;UrEEH]UHHd$H}HuH HEH@hHEHEH;EwHUH;UrEEH]UHHd$HHHEHuHH=I.HRޕHEHוHEH}H/H]UHHd$}HuHUH HEHu}H EEH]UHHd$H}uUHEuH}5H]UHH$`HhLpLxLuL}H}HuHHEHHEH.H8HEfEfEfEfEEU %HEEHEHtrHEHEHEAuH_H86GHEHc]HqCHH-HH9v]HEH;EuH}kHEHUHEHEHEHEE;E}"E;E|E;E}E;E|uLuLeLmMtDI]HLLILu*LeMtM,$L贺LLAxHEHuH=豭u HEHEHEHEH]H8xE;EHEHHEH}u&HMH}HʱHt=H}u HEHUHHEH8HUHHEHHEHHhLpLxLuL}H]UHHd$H]LeLmLuL}H}HuHUHMDEDMHpE}uHHEE HEȀ}uHEHcX HqHH-HH9vzHEX HEx ~ }u HE@ jHUHBHEHUHPHUHEHBHEHUHHEU؈P$}t HE@ H}uHE@Pt HEx LuLeLmMtI]HBLLIH]ALeMtiM,$L DHLAxHEH}tHEHEHE@ nt t&t@]HEXt HE@ >HEXt HE@ HEXt HE@ HEx  HE@ HUEЈB%}tEE؈E}ueEv]HLeAD$ vlEd$ HHBD=vKHHBDE:Ev%]HD=v HDE̋EH]LeLmLuL}H]UHHd$H}HHEHu$H}<uH}uEEEH]UHHd$H}HGHEH{u3H}u$H}muH}uEEEH]UHHd$H}HHEH@HU@$:BEEH]UHHd$H]H}H>gHHEH@H+Xsc%H9EEH]H]UHHd$H}H7HEH@HcPHEHc@H)qyHHHIH~6HEH@HcPHEHc@H)qIHHHIH~EEEH]UHHd$H}HHEH@H8u5HEH@HUHH;BtHEH@HUH@H;BtEEEH]UHHd$H;E蘢f=|M肢f=|Mlf=|M[Vf=|\Df=|MEH]UHHd$H}HH}uHEH5HkHEHEHEH]UHHd$H}HG-DHEHHEH}uH}|HEH}uHEHEH]UHHd$H]LeLmLuL}H}HHHEHE@HHEH}tLuH]LeMtM,$L&HLAHELuH]A LeMtGI$ILDHLAxHEH}tHEHEHEH]LeLmLuL}H]UHHd$H]H}HuH(EHEH_HEH}uHEHsHHH9vHEHEHHuHEHEHqHHH9vZHEEEH]H]UHHd$H}@uH HEHWHE}t2H}?HEH}蒶uH}tH}puH}AHEHEHEH]UHHd$H}@uHcEH}@HEHEH]UHHd$H]LeLmLuL}H}@uHPHEEH}@HEH}uHEHELuLeLmMtI]HlLLIUH AH]LeMtM,$L)HDLAxHEH}uHEHEHEH]LeLmLuL}H]UHHd$HvHHEH}u-H=u!H~HH;Et HhHEHEH]UHHd$H]LeLmLuH HdH8uvHRL HHL(MtiI]H Lu;HL0AH L(Mt+I]HϭDLH]LeLmLuH]UHHd$H]LeLmLuL}H}HuH@HEHEH}uML}Lu LeMtM,$L5LLAxHEH}tHEHEH}(H]LeLmLuL}H]UHHd$H}HHH;EtH}tH*kHuH=⑕襟u HEHEHEHHEH}tH2!HEH H}"HH]UHHd$H}fuH SHEHH*Hu}t*EEHEHUH}HH5xSH]UHHd$H}HHEH}Ht H}EfEfEEH]UHHd$H}HuHE@EEEvEHHtHtH}U}}H]UHHd$}HuHHEHH&}H5EEH]UHHd$H}HuHHEHHH}H5EEH]UHHd$H}HwH}u%HEuHEHuEEEH]UHHd$H}HuHHEH8tHH=I0HUHHEH8Hu4H]UHHd$H}uHUHHEH8tHH=a0HUHHEH8HUu6H]UHHd$H}HuHSEHEH8uHEH8Hu06EEH]UHHd$H}HEH}uHEHK/EEH]UHHd$H}HuHHEH8t9HEH8HuE6HEH8.tHEH8HEHH]UHHd$H}uHTHEH8t8HEH8u4HEH8.tHEH8詢HEHH]UHHd$H}HuHHEH8tHH=IHUHHEH8HuH]UHHd$H}uHUHHEH8tHH=聠HUHHEH8HUuGH]UHHd$H}HuH#EHEH8uHEH8HuEEH]UHHd$H}HEH}u HE@EEH]UHHd$H}HuHHEH8t6HEH8HuHEHxtHEH8HEHH]UHHd$H}uH$HEH8t5HEH8uHEHxtHEH8|HEHH]UHH$HLLH}HuHUHH}t)LmLeMtwLHLShHEH}tOHUHu袳HʑHcHUHEH}H3HEHUHPHE@,HE@ HE@<HE@0LeLmMtI]HkL HEH}uH}uH}HEHHEHpHhH(轲HHcH u%H}uHuH}HEHP`践B譵H Ht茸gHEHLLH]UHHd$H]LeLmLuL}H}H0HEHpH=ou^HEHxuKHEH@Lx`HELpH]HEH@L``MtVMLHLLAH]LeLmLuL}H]UHHd$H]LeLmH}؉uUMDEH@HE؋@8;Et/HE؋@4;Et!HE؋@(;EtHE؋@$;EtHU؋EB8HE؋UP4HE؋UP(HU؋EB$HEHXHEH@H}*;u+HEHXHEH@H}a;u1HEL`HELhMtI]H迡LxH]LeLmH]UHHd$H}HHEH@@Pu EXHEPLHEHxH}H踀H}uH}uH}HEHPpH]LeLmH]UHHd$H}HuHHEHxuHEH@H@H;EtEEEH]UHHd$H]LeLmH}HuH(HEHxtHELhHEL`MtI$H-LHUHBHEHxuHEHxMUHHELhHEL`Mt)I$Ḧ́LH]LeLmH]UHHd$H]LeLmLuL}H}HuH`HEHxt#s%u HE HHEHEH@H@ H;EuHEHpH}HEHPHEHB H}uMHELxLuLmH]Ht)L#L΃LLA$IG(HuHP IGXHE耸tNHELpHELHEHHtL#LhLLA$tIXt7LuMo(H]HtL#L%LLA$AGPeLuMoXI_XHtIL#LLLA$IMwXI_XHtL#L辂LLA$AGPHEH@H@ H;Eu&HEHPHEHB HEHpH}HEHpH}EHELxDuDmHEHXHtHIL'DDL@uA$fEHEHxuH}t$HEXuHEH@xuUHEHxu2HEHxutHEHxMUHHEHxUu` HEHxuH$H8IHDUL H:UHHtL+L0LLAHUHBHEHEHx tXHEH@HPHUHEHXDuD}HEH@L`Mt"M,$LƀDDHH}A(LeMLHtL3L葀LAH]LeLmLuL}H]UHH$HLLL L(H}HnHEHEH@H@HxhtHH=̍ HEHUHh耎HlHcH`0HEH@H@H@hHcXHqGHH-HH9vHHH}JEfEăEHEH@H@HxhuGHEHE耸tH]LeMt[M,$L~HAtLmLeMt&I$H~L tHEH@H@H@H;EtrHuH}uZHEHuUHELHEHHt蟾L+LD~LAtHuH}uHuEHEH@HPHBH8HELxLuHEH0H]LeMtM,$L}HH0MLH8A}uiHEHPHEHPHEHX;P}*;X|B;T}B;\|u HuH}GH;E~H}~H}HcHq蛽HH-HH9v>}]ċEăEċEăEH}VHcHqFHHHH9vH@@}zEEEuH}cINjuH}TILMMtoM4$L|HLAuuH} @;E~덃}~"EH}z*HH8AMcIqPLHHH9vA}EEEH}HcHqHH-HH9v衻]3@Hc]HqɻHH-HH9vl]ă}}5uH}H@*HËuH-H8UH9u}} D;e~5}|EuH}HEaH}XuH`Ht׍HEHLLL L(H]UHHd$H}HgHEH@H@H@H@HuGHEH@H@H@H@HUHH;BuHEHxsEEHHEH@H@H@H@HUHH;BuHEHpH}uEEEH]UHHd$H]LeH}HuH0苻EH}HcHq˹HH-HH9vn}EDEEuH}胓dtGuH}lht0LceIqRLH-HH9vDe}E ;]~EEH]LeH]UHHd$H}HuH 胺EHEH@H@H@HEH}u,!HEH;EtEHEHHEH}uEH]UHHd$H}HuHE2DHEH@H@H@H;EtEHEHHEH}uEH]UHHd$H]H}HuH8菹HEH}u<HEu*H}PH}舒HEH}+tHEH@H@H@H;EtHEH@H@H@ HE@H}HEfDH}ϑHcHq/HH-HH9vҶ}AE@E܃E܋uH}ˑH;EtuH}跑HE2;]~HEHHEH}uHEH;EuYHEH]H]UHH$`HhLpLxLLH}@uHHDžHUHp*HRbHcHh[HEH@HEHEHxu?HPH܃HbHcHHEH@HLeH]Ht6L+LtLAHEHUHz @pEHEHx E؀}uH}HHDž HEL`HELhMt迴I]HctLHDžDž HDžHE@pHDžDž HDžHEHpH蟔HHHDž HHStHEL`HEHXHtL+LsLAu8HExpu,HHHDž HHs}tHEH@HulHEH@HHHELxHELp AHEH@HHtAL#LrDLLHA$xE+HEHx tEHEH@HtEHEHx u(HEHp H=:ceuHEH@(HE HEH@ HEЀ}u>}u&HExpuHuH}u}uEEHEU؈P2}u}tHExpu}HEHx@$HEH}u'HEHUHH;BtH}H_HELhLuHEHXHtбL#LuqLLA$ HEHx u}tEEEEHH!HH!HEHP HEH@ EHEHx! HEHxHELH HEL@ HEHp HMUH}W}t1HEL`HELhMtI]HpL`HELh DuD}HEHH]Ht裰L#LHpHDDLA$ HEx0u H}jHHtuH4HhHtSHhLpLxLLH]UHHd$H}HuUHH]UHHd$H]LeLmH}HuH(觱H})LeLmMt芯I]H.oLHEHxhhH}HH}uH}uH}HEHPpH]LeLmH]UHHd$H}HHEHxpuHEtEEEH]UHHd$H]LeLmLuH}HuH8裰HEHxptE;HELppLeHELhpMtpI]HnLLEEH]LeLmLuH]UHHd$H]LeLmLuL}H}HuUMDEH`HEHxpt}}HU؋E艂HUHE؋@dHE؀}}uPHI!HI!LmLeMtxI$HmLLHUHBx HEHxx)ULmLeMt5I$HlLHEdt t_L}LuHEH!IHHHtجIL}lLHuLLA$HUHBpZL}LuHEHߣIHգHHt~IL#lLHuLLA$HUHBp}urHELpxHELhpHEHXpHt%L#LkLLA$HELpxLmH]HtL#LkLLA$H]LeLmLuL}H]UHHd$H]LeLmLuH}HuH0胭HEHxpuHEuHEHc@xHcUH)q諫HHHIHUHcH9} HEƀDHEHc@|HcUH)qlHHHIHUHcH9} HEƀ}HELppLeHELhpMt辪I]HbjLLHEHxpu8HELppLeHELhpMtyI]HjLLH]LeLmLuH]UHH$pHpLxLmLuH}@uHHEHxpuHEtHEƀHUHu(xHPVHcHUuS}uHEtHELppHELhpMt|MeL iL@A$zHEHxpbHEƀHEHtW|HpLxLmLuH]UHHd$H}HuUHH}uHEHxhtHH=IaHUHBhHEHxhHu+:EtF}u HEHxhHuHuH}FHEHxhHuHuH}薼H]UHHd$H]LeLmLuH}HuUH8 HEf8t@H6H84HLuLmMtMeLgLHA$H]LeLmLuH]UHHd$H]LeLmLuH}HuUH8耩HEff=f-t f- tG|H6H8HLuLmMt8MeLfLHA$:LuALmMtI]HfDLHEfH]LeLmLuH]UHHd$H}؉uUMDEH(蚨H]UHHd$H]LeLmLuL}H}HuUH@\EHuH}ڱHEHxpu@HELxpDuH]HEL`pMtM,$LeHDLA}tHEHxhu.HEHxhHu4HEH@hxt HEHxh'_HuH=VwXueLuLeLmMt艥I]H-eLLu/LuALmMtTI]HdDLH]LeLmLuL}H]UHH$HLLH}HuHUHH}t)LmLeMtǤLHldLShHEH}tHUHurHQHcHUuRHEHUH}HS HEƀHEH}uH}uH}HEHuHEHpHhH(crHPHcH u%H}uHuH}HEHP`]uvSuH Ht2x xHEHLLH]UHHd$H]LeLmLuH}uUMHHNEE؋EELuH]LeMt*M,$LbHLAH]LeLmLuH]UHHd$H]LeLmLuH}؉uUMDEHH躤HE؀LuLeMt蘢M,$LJHcHUpHEH}HHEHǀ@HEHǀ8HEHǀHHEH}uH}uH}HEHnHEHpHpH0ekHIHcH(u%H}uHuH}HEHP`_noUnH(Ht4qqHEHLL H]UHHd$H]LeLmH}HuH(WH})LeLmMt:I]H[LLmLeMtI$H[LH}HH}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuH}H0臝HEH8tH}HEH@tHEH8H=L@NuHEH8HEHEH8HHEH}ټHEH@tPHELHHEL8HEL8Mt̚I]HpZLLHUH@HEL@LeLmMt芚I]H.ZLLH]LeLmLuH]UHHd$H}H7HEHHEH@u*HEH@HEHHvHEHǀ@H]UHHd$H}HǛHEH8uHEH88uEEEH]UHHd$H}HgHExxtBHE@|t4H}pHx tH}pHx tEEEH]UHHd$H}uHHExxE}tuErr4HE@|tH}pHx tEE2HE@| tH}oHx tEEEH]UHHd$H}HuH(#HEH@HEHEH@HEHEH;Ew EHEH;Er EEEH]UHHd$H}HuH(賙HEHEHEH@HEHEH;Ew EHEH;Er EEEH]UHHd$H}HuH CH}t HEHEH@H;Et H=&QHEHxt"HHH=v:HUHBHEHxHHuZHEH}uHEH@(HE.HUHH=㏕f HEHEHxHu聺HEH]UHH$`H}HQHEx tHH=MOHEHUHptdHBHcHhulEẼE̋UHEHDЃ}sHfHYHLH?H2gH}PHhHthH]UHHd$H]H}uH8@HEH@HxHEHPuHHEH@HcXHqfHH-HH9v }LEEEHEHxuHEHEHxHuJHEEEԃEԋUMHr rrHu؋EHHUMHTHTPEԃr@HM؋EHHUHDPH;B@8tHU؋EHDXHU؋EHDX}sbErUttt(t1t::HEHUHP,HEHUHPHEHUHPHEHUHP;]~H]H]UHHd$H]LeLmH}HX[HEHcX Hq訓HH-HH9vK}EfEEHEHxu_mHEHuH}HEEE܃EHUEHHDPH;EtE܃rrFHUE܋D0EHEH@H`@4EċE;EMMHUEHL\DHUE܋D0EHEH@H`@PEċE;EUUHMEHT\HUEHLd\HUEHcD@Mc,$IqYLH-HH9vE,$UHUEHH|PuHUEHHDPHEЋE܃rrHUE܋D0EHUEH|XttHEH@H`@,EȋE;EEEȉẼ}t!HEЋ@8EȋE;EEEȉEHEЋ@HH-HH9v]6HEHc@,Hc]HqHH-HH9v詄]HUEHMHD`UԉHMEHUHDh(HUEHMHDh Hib EHUEHDXtt%t;[ErrMM@ErrMM%Err EăE Eă EEEfEEEErIMUHuH}E܃}tHE@xtttHEPxMH" skHHPHDžH HuHZcHH`HDžX HHpHDžh HEHpHcHHHDžx Dž HDžuH@{H@HHDž Dž HDžEHH[HHHDžHHHRBE HEӋ@|!؉LuLmMt؁MeL|ALA$E}u[HHHDž HuH@aH@HHDž HHHDž HEHpHaHHHDž HƍHHDž uHyHHHDž HHHDž uHLyHHHDž Dž( HDž EHHHH8HDž0HH @ HMȋEHUHDh<tEE}sEt&HMEHUHDhEM HUEHDXv=HUEH|Xt2ErrHUȋE苄EHEȋUD`E3ErrHUȋE苄EHUȋE苄EԋErƒ}8t@HUEHHcD\Hc]HqHH-HH9v(]>HUEHHcD\Hc]H)qEHH-HH9v~])ErrEtZHEȋUHcHUȋEHcHq~HH?HHHH-HH9vr~]EtPHEHc@(HH?HHHMȋUHcHqr~HH-HH9v~]NHEHc@(HH?HHHUȋMHcH)q"~HH-HH9v}]HEHc@(HH?HHHc]H)q}HH-HH9v}]ԃ}}8t(HE@(E;EEE tWHUȋEHcL`HUȋEHcHqO}HH?HHHH-HH9v|]EtMHEHc@,HH?HHHUȋMHc\`Hq|HH-HH9v|]NHEHc@,HH?HHHUȋMHcH)q|HH-HH9v;|]HEHc@,HH?HHHc]H)qU|HH-HH9v{]ԃ}}8t(HE@,E;EEHUEHMHT`EԉHMEHUHDhEErErƒ}8uyMUHuH}E܃}uoHMEHUHDh tHMEHUHD`EEE؃rrHUEH|Xt)E؃rrHUEH|Xt%Err HE@(E HE@,EHcEHc]HqzHH-HH9vKz]HMEHUHD`;E|HUEHMHT`Eԉ.,HφHH=)7$=HH5H"JEErbEr}8uGMUHuH}E܃}uHMEHUHDhtHUEHMHD`EԋErr HE@(E HE@,EHcEHc]HqOyHH-HH9vx]HUEHMHD`UԉHUEHMHDhHHUEHMHDh,H_HH=5;HH5HHyErƒ}8tGHUEHD\EHUEHMHT`EԉHUEHMHDhHMEHUHDhHMEHUHDhrsHHHDž HuHWHHHDž HHHDž uH@oH@HHDž HńH HDž EHH%HH0HDž(HH7HHH=4:HH5HGE4HH舴H@|HpHdH8HtIEHxLLLH]UHH$HLLLH}HuHUMHHwH}t)LmLeMtuLHr5LShHEH}t{HUHHCH"HcH@HEHUHEHBHEHpH=`#(u&HUHEH@HBHEHxOHUB HE@ HEL`HELhMtuI]H4L(HUB$HEH@LLeHEH@LMttI]HZ4LLHUEЉB4HEUԉP0HEU؉P8HEU܉PoHEx tHEH@H`x0tEHUH}}tEHUH}EHUH}}tEHUH}_HEHEHH=v%HEHPH:HHcHHEHxFHcHq|lHH-HH9vl}DžlllHEHxl&FHELuLmMtkMeLR+LA$(uH}u HuH}腠;l~HExtHHH=B耬HEHH=cI$HEHEH@L`LeLmMtkI]H*LLH}ؾH}ؾH}ؾ耪H}ؾHEL`HELhMtjI]H:*LHHHHpHHx$HEH@D|DxHUHuH}YHEHcX\HqsjHH-HH9vj}uEDẼEHEHPhHcEHHEHELc`XIqjLH-HH9viA}EEEHEH@`HcUHHEHEH@HEH}tHUHBpHEHBxHEHuH}HEMHuH}LcmHcEI)q]iLH-HH9viHEDh(MHuH}LcmHcEI)qiLH-HH9vhHEDh,D;e~;]~:H}"H}"H}"HHtHt`;HDžHLLLH]UHHd$H]LeLmLuH}@uUHMLELMHiHEHEHEHEHEЃx tEHEHcX HqgHH-HH9vg}EẼEHEHxuAHEHuH} HuH}HEHEx$u0LceIqZgLH-HH9vfDe;]~낃}tHMDHEHcX HqgHH-HH9vf}EẼEHEHxu@HEHuH}HEH}HEx$tzEEEHUEHDXHE@xrrHEHxEHjr HEUP|rUHuH}s;]~4U@uH}H}H}H})uHEHcX HqeHH-HH9v`e}*EẼEHEHxuo?HEHuH}HEHEx$tEfEEHUEH|htHUEH|ltHUEHHcL`HUEHLcddIqdLH-HH9vdDeErrHE؋;E| HU؋EHE;E| HUE}s6;]~}u }u%HEHEHEHcX Hq2dHH-HH9vc}E@ẼEHEHxu=HEHuH}HELuLmMt^cMeL#LA$(t.H}.u}uxHEtiHEHcHEHcH)qKcHUHEHcHEHEH;ELeLeLH-HH9vbHED H}u}}urHExhtfHEHcHEHc@`H)qbHUHEHcHEHEH;ELeLeLH-HH9v5bHED ;]~dHE8t HEHE8t HEH]LeLmLuH]UHHd$H]H}HuUH8cHEH@HEuH}8HHMHUHuH蝰H}tQHMEHHUHRHTPErrHUEHDXHUEHDXHEH@H@H;EtHMEHHUHRHTPEH}uLceHcEI)q6?Iq+?LH-HH9v>DeHEH@`HcUHH@hHcUHHEHuH}HuH}HE@\EHcEHcMHHILH-HH9vT>DeHcEHcMHHILH-HH9v#>De؃}tBHELc`XHcEI)qA>Iq6>LH-HH9v=DeHEHPhHcEHH@`HcUHHEHuH}HuH};]~H]LeH]UHHd$H}HuHC?HEHx@tHExPt HE@4E HE@,EHE@0EE;EEEHUB0HEHx@t(HEH@@HcPXHq-=HEHc@PH9t HE@4E HE@,EHE@8EE;EUUHEP8HEHxHtHExTt HE@PE HE@TEHE@4EE;EEEHUB4HEHxHt(HEH@HHcP\HqoHEUHD`HcUHq9HЋUD8EċE;EEEԉEHEU|?HEULdHcEMc,$IqU9LH-HH9v8E,$HEULdHcEMc,$Iq9LH-HH9v8E,$HEULd HcEMc,$Iq8LH-HH9vz8E,$HEU|hHE؋U|IHEULdHE؋UHcDMc,$Iqp8LH-HH9v8E,$HEUDHEULdHE؋UHcDMc,$Iq8LH-HH9v7E,$HEULd HE؋UHcD Mc,$Iq7LH-HH9vt7E,$HEU|ZHE؋U|;HE؋UDEHEUDEE;EUUHEMTHEUDHU؋EDEHEUDEE;EEEHUMDHU؋ED EHUED EE;EUUHEMT HU؋ED0EHEUD0EE;EUUHEMT0HU؋ED8EHEUD8EE;EEEHUMD8;]~`HEUHL`HUEHcDXHq56HHEHMuHUȋED8D8H]LeLmH]UHHd$H]H}H07HEHcX\Hq5HH-HH9vs5}@EDEEHEH@hHcUHHEH}ز;]~HEHcXXHqY5HH-HH9v4}AEfDEEHEH@`HcUHHEH}[;]~H}DH}4H]H]UHHd$H]LeH}uH@<6EHEUHc\XHq~4HH-HH9v!4}_EEEHUEHT`HcEHHE}t;HEUHcD0LceIq 4LH-HH9v3DeHMEU܉T(HEUHcD LceIq3LH-HH9vg3DeHEUD8EHEUHcTXHq~3HcEH9>HEUHT`HcEHqX3H‹UD0EԋE;EEEԉEHcELceIq#3LH-HH9v2De;]~H]LeH]UHHd$H]H}HuUMHV4HHEEEEE;Eb}t HE@$E HE@(E,HUHuH}t }t*E*M^EHEf/EzrEf/EzrHEHEHcEHcUH)q1Hq1HcMHHHHq1HH-HH9vi1]}E;E|EȉEEHuH Hc]Hqn1HH-HH9v1]} H=DE;EkE;E|^}t HE@HE HE@LE-@HUHuH}t }t*E*M^EHIDf/EzrEf/EzwHEHEHcEHcUH)qx0Hqm0HcMHHHHqV0HH-HH9v/]}E;EEEEHuH]Hc]Hq/HH-HH9v/]} H=C觋E;EH]H]UHHd$H]LeH}EHuHp&1HEHPHE@Hc\XHqg/HH-HH9v /}EEEHEHPHE@HD`HcUHHEHUHE@| ~$H}HEHHuHEPD ;D~uHE@؃et~IHELc`HEHc@I)q.LH-HH9v1.DeHUHE@D EHcEHqL.HE*EYEH-HEHEH;E|LeLeLH-HH9v-DeHcUHcEH)q-HU}|EHcHEHEH;ELeLeLH-HH9v\-DeHcUHcEH)q-HELc`I)qt-LH-HH9v-HED`HMHE@UЉT HELc`HEHc@I)q-LH-HH9v,DeHUHE@D EHcELceI)q,LH-HH9v|,DeHcUHcEH)q,HU}EHcHEHEH;ELeLeLH-HH9v,DeHcUHcEH)q@,HELc`I)q.,LH-HH9v+HED`HMHEPEЉD }t%HELc`HEHc@I)q+LH-HH9vp+DeHUHE@D0EHcUHcEH)q+HUHcEHcUH)qr+HUH}| HHEHEHEH;ELeLeLH-HH9v*DeHcUHcEH)q +HELc`I)q*LH-HH9v*HED`HMHEPEЉD0HELc`HEHc@I)q*LH-HH9vK*DeHUHE@D8EHcEHcUH)qc*HEHcEHcUH)qM*HUH}| HHEHEHEH;ELeLeLH-HH9v)DeHcUHcEH)q)HELc`I)q)LH-HH9vw)HED`HMHEPEЉD8HEHPHE@HcDXHq~)HcUH9HMHE@UЉT0;]~H]LeH]UHHd$H]LeH}HuHUHX*HUH<HHHE@HEHE@؅t7v$KFHEHPHE@Hc\XHq(HH-HH9vD(}'EEEHEHPHE@HT`HcEHHEHuHEPH}HEHD ;D~HUHE@| ~HELc Iq'LH-HH9v'HED HE@؃itVHUHE@*DHUHE@*L ^EHUHE@Lcd HUHE@HcDI)q^'LH-HH9v'DeHExtHEf/EzrHEHUHHEUԉPHUHE@*DHUHE@*L ^EHUHE@Lcd HUHE@HcDI)q&LH-HH9vR&DeHExtHE@;EHUHEHHEUԉP;]~HEHPHE@Hc\XHq/&HH-HH9v%}`EEEHEHPHE@HT`HcEHHEȃ}tHE*@EHUHE@D0Eԃ}eHELc Iq%LH-HH9v5%HED HExtHE@;EHEHUHHUEԉBHE*@EHUHE@D8Eԃ}eHELc Iq%LH-HH9v$HED HExtHE@;EHEHUHHEUԉP;]~,H8HH=|HH5HzH]LeH]UHHd$H]LeH}EHuHp%HEHPHE@Hc\XHq$HH-HH9v#}EEEHEHU@;Bt_HEHPHE@HD`HcUHHEHUHE@||'HuHEPH}HEHD ;D}HE@܃tmtHELc`HEHc@I)q'#LH-HH9v"DeHUHE@D E*EYEL-LH-HH9v"DeHcEHEHcEHq"HEHEH;EHEHEHEHcUHcEHq}"HEHEH;E|LeLeLH-HH9v"DeHcUHcEH)q0"HELc`Iq"LH-HH9v!HED`HMHE@UЉT oHELc`HEHc@I)q!LH-HH9vk!DeHUHE@D EHcUHcEHq!HEHcUHcEHqm!HEHEH;E|LeLeLH-HH9v DeHcUHcEH)q !HELc`Iq!LH-HH9v HED`HMHEPEЉD _}t HELc`HEHc@I)q LH-HH9vP DeHUHE@D0EHcUHcEHqh HEHcUHcEHqR HEHEH;E|LeLeLH-HH9vDeHcUHcEH)q HELc`IqLH-HH9vHED`HMHEPEЉD0HELc`HEHc@I)qLH-HH9vEDeHUHE@D8EHcUHcEHq]HEHcUHcEHqGHEHEH;E|LeLeLH-HH9vDeHcUHcEH)qHELc`IqLH-HH9vHED`HMHE@UЉT8HEHPHE@HcTXHqHcEH9HMHE@UЉT0;]~H]LeH]UHHd$H]LeH}HuHUHXHUH1HHHE@HEHE@܅tvsHEHPHE@Hc\XHqHH-HH9vT}EEEHEHPHE@HD`HcUHHEHUHE@|'HuHEPH}HEHD ;D}+HELc Iq LH-HH9vHED HE@܃vHUHE@|tHE*@EHE@EvHUHE@*DHUHE@*L ^EHUHE@LcdHUHE@HcD I)qCLH-HH9vDeHExtHE@;EHUHEHHUEԉB;]~gHEHPHE@|XaHE*@HEHUHE@BHEHPHE@Hc\XHqHH-HH9v/HE,H`/HH=B؍=HH5H;H]LeH]UHHd$H]LeH}H0EHEHPHE@Hc\XHqHH-HH9v|}EEEHEHPHE@HT`HcEHHE}t?HUHE@HcD0LceIqYLH-HH9vDeHUHE@| |HUHE@D HUHE@HcD LceIqLH-HH9vDeHUHE@D8EHEHPHE@HcDXHqHcUH9JHEHPHE@HT`HcEHqsHHE@D0EE;EEEEHcELceIq:LH-HH9vDe;]~gEH]LeH]UHHd$H}HuUMH mEHuH}H}MHuH}H}H]UHH$`HhLpLxH}HuUHHEHcX\Hq2HH-HH9v}E@EEHEH@hHcUHHEHELc`XIqLH-HH9vsA}EEԃEHEHP`HcEHHEHEH@HHEHEH@HEH}tHE؋@$EHEȋ@ EHE؋@,EHEȋ@(EEEEEEUgEEUgEEEEEHE@ EHE@$EHEȋ@ ;EHEH@ tvFLcmHcEI)qLH-HH9vADmHEHx }8t3LcmHcEI)qGLH-HH9vDm^HcEHcUH)qHcUH)qHH?HHLcmIqLH-HH9vDmTHEȋ@ ;E|FHE@Hrr3LcmHcEI)qLH-HH9v4DmHEȋ@$;EHEH@$ttKtKwLcmHcEI)q#LH-HH9vDmLcmHcEI)qLH-HH9vDm^HcEHcUH)qHcUH)qHH?HHLcmIqLH-HH9v+DmTHEȋ@$;E|FHE@Lrr3LcmHcEI)q0LH-HH9vDmHcELcmIqLH-HH9vDmHcELcmIqLH-HH9vmDmHUHEHBpHEHBxD;e~;]~HhLpLxH]UHH$PHPLXL`LhLpH}HuHEHEHcX\HqHH-HH9vHEE}E@EEHEHPhHcEHHEHEHcXXHqHH-HH9v;HEE}REE܃EHEHP`HcEHHEHEH@HEH}tHEHPpHUH@xHEH}lHEHUHEHEHEHEHuH}tEHc]HcEH)qHHHH9vjHEHc]HcEH)qHH-HH9v5A݋]DeLuL}MtIHxHxLDDEAHxE;E~E;E~AEHPLXL`LhLpH]UHHd$H}HuHUMDEDMH8DEHUHuH}ЉH}M؋UHuH}UHuH}}uHuH}uEEEH]UHH$@HLLH}HuHHDžHDžHDžHDžHDžHDžHDž HDžHHDžPHDžXHDž`HDžHDžHDžHDžHDžHDžHDžHDžHDžHDžHHHH!HcH HEp\H,HHHEpXH HHH!LH"HHEHH"HHHH PHIHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$ILH K"HH3L4HEHcX\Hq HH-HH9v1 }EEEHEHPhHcEHHxHJHxpXH~HH5!H/LHHHxp4H;HHHQJHxp$H HH5p!HKHHHJHxpHHH5A!HmKHHHIHxpHmHH5!HKHHHdIuH%HH5 HJLIHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HHD$HH$L n LHHI4$L-HxLc`XIq LH-HH9v A}DžtDttHxH@`HctHHhHHHHhHhp H`H`HpHHxHhp$HXzHXHHhHHKHHHhp0HP)HPHHH?GHHH(HhpHXHXH0HH8HhpH`H`H@H(HHHJHHHH FHHHhpHXNHXHHqHHhpH`H`HHHH OJH H@HhHpHjHH8IHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HHD$HH$L LH@H8H5L)D;t~IHL+;]~ HH5Hi&HEHcXXHqVHH-HH9v}(DžtDttHEH@`HctHH`H{DH`p H5HH5BHEHHH,DH`pHHH5HEHHHCH`pHHH5HHEHHHCH`pPHHHH5-HDHHIHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$ILHHHL$';t~bHHH)HoBHcBHWBHKBH?BH3BH 'BHHBHPBHXBH`AHAHAHAHAHAHAHAHAHAHAHHtHLLH]UHHd$H]LeLmH}HuH07H})LeLmMtI]HLEfDEEHEUH|@u(HEUHT@EHL`HEUHcDPH}sH}EH}HH}uH}uH}HEHPpH]LeLmH]UHHd$H]H}HCE@EEHEUHc\XHqxHH-HH9v}5EDEEHEUHT`HcEH HuH}BH]UHHd$H}HHEHtHEHptEEEH]UHHd$H}HuHSH]UHHd$H]LeLmLuH}HuH@HE tLeLmMtI]H莾LHEHUHUHEHPHEHXHELPLeLmMtI]H8LLHE HUHMHPHHXHAH]LeLmLuH]UHHd$H]LeLmLuH}uHUHMHPHEH@3H}uVHE@x;EtH}t1LeLmMtI]HaL(u HuH}2HEHHcXHqHH-HH9vz}EE܃EHEHu/HEHEЋ@x;EtLuLmMtMeL觼LA$(uHEH;EtE1LceIqLH-HH9vDeHE@;E&uH}>/H‹MHuH<tHUЋuH}R4;]~H]LeLmLuH]UHHd$H]LeLmLuL}H}HuHUMHPEt)r2rHEHU;|6HEHU;tHEHU;|EEHEHU;|6HEHU;tHEHU;|EEHEHcHEHcHqHHUHcHUHcHq(H9eHEHcHEHcHqHUHcHUHcHqH9tHEHU;EEHEHcHEHcHqHUHcHUHcHqkH9eHEHcHEHcHq@HUHcHUHcHq H9tHEHU;EEIHELxLuH]HEL`MtmM,$LHLLAEEEH]LeLmLuL}H]UHHd$H}HuHHEHtHH=eHUHHEHHuA0E}|HEHHU0HEHu31H]UHH$pHpLxLLH}HuHUH-HDžHDžHDžHXHTH|HcHAHEu*HE胈HHH(HcHHE耸u\HE耸uMHEHu=HELAHELMt3I]H׶DLXH]LuLmMtMeL觶LHA$LeLmMtI]HyLHHHHpHHxxE|EH uDžDžDžDžHHEHHEHEH`DHPHEH`D@4HEH`HPHEH`P4H}HuHH=`HEHHHHGHcHH}<E]}EDEEEHUHHEHBHEHEHEHEHEHHvHiH\HOHBH5H}tLceH}sHcHq%I9tH HHDž HuHHH HDž H H0HDž( E@HDž8HHyH}uH HHDž HuHdHHHDž H HHDž HuHUHHHHDž H HHDž H}CH8H@H8H@HkHHHDž HHoHUHEHHEHBHEHEHEHE;]~H}脭HHtLeLmMtI]HsLEHE胠HHt$Hx0Hl0H`0HHtHpLxLLH]UHHd$H]LeLmLuH}H8HEH@H`x0t HEHx.'HEHxqHcHq!HH-HH9v}EEEHEHxuHEH}WuBLuLmMtPMeLLA$(uHEHxHu2&;]~HEH@xt)HEH@HEHPHEHpHEHx谽H]LeLmLuH]UHHd$H]LeLmLuL}H}uHXHEHHHEHPHEHxu@HEH@HEHEHPHUHELxHELp]HEL`Mt1M,$LկLLHMLEAuE}tHEH@耸uHEH@H`x0uHEH@HcXHqHHHH9v}W]EEEEHEHxu"HEH}UuHEHxu$}~HEH@HcXHq}HH-HH9v };EfEEHEHxu!HƋMUH}%;]~H]LeLmLuL}H]UHH$`HLLLLH}Hu؉UЉMHTHEHHELMt2M,$L֭HA0E}|EHEHHELMtM,$L茭HA@EHEHHELMtM,$LQHA8E}|EHEHHELMtcM,$LHAHEDž4HE؋@xrrHE؋@xH4HE؋@| 48HE؋EHE؋EHE؋EHE؋EHE؀uLLLuƅƅLeMtI$H1DLLL E EHUHuHHUHuHmH}tHE؋@|;4uFHEHHE}td}t\HEHHHEHpHcHH!HH!H ׋HcH HH!HH!H H}HUHHEHHEHEH@t-H}HHHHEHHE8uUH@E8uHcUHcEH)q:HEHcXH)q(HH-HH9v]4t"HE@|uUHEHc]HcEH)qHH-HH9viHEJ8uHcUHcEH)qrHEHcXH)q`HH-HH9v]4t"HE@|uUHEHc]HcEH)qHH-HH9v]HcEHc]HqHH?HHHH-HH9v]ދUHEx\DHcHcEHH?HHH)qlHHHH9v]8uUH E8uHcUHcEH)qHEHcXH)qHHHH9v]4t"HE@|uUHEHc]HcEH)qHH-HH9v2HEK8uHcUHcEH)q;HEHcXH)q)HH-HH9v]4t"HE@|uUH EHc]HcEH)qHHHH9vi]HcEHc]HqHH?HHHHHH9v$ދUHEx#BHcHcEHH?HHH)q3HH-HH9v]}|E}|EEЃtv!HcEHc]HqHH-HH9vY]HcEHc]HqHH-HH9v']HEH@HHpH@HxHUHBH`HBHhHELLPHEHHtL#LILLA$HPHHXHH`HpDD2EH(u8u{pEHc]LceHcEI)qZLH-HH9vDH"AMcIq"LHHH9vDeMHcpHcUH)qHc]H)qHHHH9v}]pEEH7u8u{tEHc]LceHcEI)qiLHHH9v DH AMcIq0LH-HH9vDeMHctHcUH)qHc]H)qHHHH9v]tEEHFu8uHcxHcEH)qHH-HH9v%HK EHEH@xxt=xEHc]HcEH)q-HH-HH9v]3HcEHc]HqHHHH9v]LHcxHcEH)qHc]HqHH-HH9vV]xEUHu8uHc|HcEH)qLHHHH9vH E}t=|EHc]HcEH)qHH-HH9v]2HcEHc]HqHH-HH9vm]MHc|HcEH)qHc]HqHHHH9v']|EHcUHcEH)qIHH| HHHH-HH9v]HcUHcEH)qHH| HHHH-HH9vt]HEH@HDžEȉHHD$HHD$HHD$HEH@H$HEHPHHEHHEHH]L}LuHEL`MtM,$LYLLHLLHAuHEuHyEHcEHc]HqHHHH9vV]HcEHc]HqHH-HH9v$]HE؋;Eu8HE؋;Eu'HE؋;EuHE؋;EuDH}qHHHH$HH,D}DmDuEHHEHLeMtVI$HHDDEH}HHHHHHH]HH$"CHExu&HEHUHPHUH$HBH,HBHE؋EHE؋EHE؋EHE؋EEЃt)VSHEH@Hc@ HHcUHcEHqwHHH;| HHHHHH9vHEH@XHE@\HEH@H`@T;HEHxHEHpAABdHEH@@E;HEH@P HE@THEH@H`@T; DDHEHxHEHpAHEH@Hc@HHcUHcEHqHHH;| HHHHHH9vEHEH@HE@XHEH@H`@,;HEHxHEHpAAHEH@E;HEH@PHE@PHEH@H`@,; DDHEHxHEHpAHLLLLH]UHHd$H}uUH8HEULuHEUHEHhuILMMtךM,$L{ZHAhD;}~H}@tHE:Etz}ucLeLmMtpI]HZLu4LeLmMtAI]HYL t @uH%H]LeLmLuL}H]UHH$H}@uH͛HDžHUHuhH8FHcHUlHEH@:EtRHEHPEHxH8gHEHcH0u HEHxHHpPjHEH@HEH@:uHEHPHEH@H~HHDž HEHpHyHHHDž H~HHDž HEH@(HDž HH~XH0HtMkiH HEHt.kH]UHHd$H}HHEHkuH}lsH蔔H]UHHd$H]LeLmH}H(苙LeLmMtwI]HWLu.H}uCHH;EtEEEH]LeLmH]UHHd$H]LeLmH}@uH@EHE@HxHEH}tyUHuH}AHEH}tULmLeMt芖I$H.VLLmLeMtaI$HVLEEH]LeLmH]UHHd$H]LeLmH}HuUMH8}MUHuH}AHEH}u)LeLmMtÕI]HgULH]LeLmH]UHHd$H]LeLmLuL}H}fuH8_HEHtTuHPH8xIHELp`H]HEL``MtLILTHLLAH]LeLmLuL}H]UHHd$H]H}HuH(诖HEHhuHEHhHcXHqHH-HH9v腔}NEEEHEHhuHEHEHx Hu~t;]~HEHEH]H]UHH$PHPLXL`LhLpH}@uH誕HEH>nt HH=LHEH}HUHuaH?HcHxH}mHcHq莓HH-HH9v1}JEEEuH}KmHEHE؋@xrr HuH};]~LeLmMt謒I]HPRL8fHEHcXHqݒHH-HH9v耒H}HEHE؃xxt4LuALmMt+I]HQDL>HE؃xxt2LuALmMtI]HQDLHEHcXHq HH-HH9vÑH}HExcH} LH}HxHtdHUHE}uH}kHcHq膑HH-HH9v)AA}qE@EEuH};kHEHuH=5Cu/LuسLeMt諐M,$LOP@LAD;}~HPLXL`LhLpH]UHHd$H]LeLmLuL}H}uUH@-D}DuH]LeMtI$ILOHDDAH]LeLmLuL}H]UHH$0H8L@LHLPH}HuUMDEH臑HUH`]H;HcHXIHEHH=™]HHELuLeLmMt!I]HNLLHEȃxHuH}mE}|D}u5HEHcXHq'HH-HH9vʎ]EEE}uIHc]HqHH-HH9v脎]HEȋ@;E~EjHc]Hq蘎HH-HH9v;]}|3HEHcXHq]HH-HH9v]uH}HE}tHEu}tHEHH;EtjLeLmMt}I]H!MLu1LeLmMtNI]HLL uHEHEЋE;Et H}uw^H}GHXHt`HEH8L@LHLPH]UHHd$H]LeLmLuH}uH0蔎DuH]LeMt|M,$L LHDAHuHH]LeLmLuH]UHHd$H]LeLmLuL}H}HuHHH}fHcHqVHHHH9vHEE}EfDEEuH}fIHEDhLMMt膋M4$L*KHDAuH}eHH=_0">uuH}eHH}E;E~oH]LeLmLuL}H]UHHd$H}HHE@HlHEH}uUH}AHHEH}tH}AHHEH}u HuH}V8H]UHH$pHpH}HJHEHhu=HH=DCHEHH=-CHEHUHuWXH6HcHxHEHhHcXHq#HH-HH9vƉ}^EEEHEHhuHELLeHELMtw}I]H=LL0HuH}HNHEHxtH}XHHuTH Ht3PHLLLH]UHHd$H]LeLmH}HuH0~HEX@u5LeLmMt|I]HEH]LuLmMtsMeL3LHA$uEE`EH}%HxHtFEHXL`LhLpH]UHHd$H}HwuHEHEH}\HEH}t)HEuHEHHEH}tHEH]UHHd$H]LeLmLuL}H}HuUMHXtHEH]vuXHEHP`HU؋EHED}LuH]HEL``MtrML92HLDEAH}AH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuUMHPtHEHMHED}DuLmH]HtqHIL1LDDHuA$ H]LeMtqM,$LZ1HAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH8OsHEHtt1H}uLeLmMtqI]H0L0HU;tLeLmMtpI]H0LHU;tiLeLmMtpI]HK0L IHELp`H]HEL``MtopML0HLLAKH}tBHELp`H]IHEL``Mt"pML/LHLAH]LeLmLuL}H]UHHd$H]H}HuH qHEHuH?H]H}BKHDzHeH]H]UHHd$H}HuUH `qEHuH}HEHEH]UHHd$H]LeLmLuL}H}HuUMHXpE}uM}uMD}LuH]LeMtnI$IL_.HLDAxHEHEH]LeLmLuL}H]UHH$`H`LhLpLxL}H}HuUH*pLmLeMtnI$H-LHEHUHEHEHEHELmLeMtmI$Hy-LHEEuHcEHc]HqmHH-HH9vm]HcEHc]HqmHH-HH9vmm]HcEHc]HqmHH-HH9v;m]HcEHc]HqfmHH-HH9v m]ċE;E}"E;E|E;E}E;E|t HEHEHEEtdHcEHc]HqlHH-HH9vl]HcEHc]HqlHH-HH9vQl]HEHEHhuEuHEHhHcXHqKlHH-HH9vk}k]܋E܃E܋E܃EHEHhu\HH=]u&HEHhu4HHyu}~H}tE tHEHhHcXHqkHH-HH9v(k}m]܋E܃EfE܃EHEHhu蔝HH=t&HEHhulHHu}~HEHEEu^HuH=x;uEH}D2LeLmMt;jI]H)LHELeLmMtjI]H)LHEHEHEHcUHcEH)q;jHc]Hq-jHH-HH9vi]HcUHcEH)qiHc]HqiHH-HH9vi]LuL}ELeMtMiM,$L(LLAxHEH}uHEHEHEH`LhLpLxL}H]UHHd$H]LeLmH}HuH`jHEHcXHEHcH)q iHH-HH9vh]HEHcXHEHcH)qhHH-HH9vph]܋EHcHH!HH!H EHcH HH!HH!H HM}}0}}(HE;EHE;EEE}uHE@urLeLmMtgI]H6'LHEHUHEHEHEHEԋE;E}"E;E|E;E}E;E|E}uHE@PuHEXHE@PtHEuLeLmMtfI]Hp&LuHE@uLfE% fE% HcH}H HuEE}u HEHUHPȊEH]LeLmH]UHHd$H}HuHgHEHhuHEHhHuOEEEH]UHHd$H}HuUHgEHuH}H]UHH$HLLLH}H5gHDžHhH(r3HHcH |H}htLeMtdI$Hz$HH#HHӬHHHEH@ HAVHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$L c~~LH ~~HH5~~H_HEHH2HAHcHHEHhuHEHhHcXHqcHH-HH9vuc}E@EEHEHhuHEHuH=u:H}fu+LuLmMtbMeL"LA$(;]~LeLmMtbI]HY"L0+4HEHHt54H[H Htz5HLLLH]UHHd$H]LeLmLuL}H}HuHcHE؋ -[-G-!-2T H}@;CHEH}uhHEtVHE@PtGLuLeLmMt`I]H LL tHEH@dHEuZHEH@<HuHHHH}< HuH}u wHEЀuhHEЀuYHEHuIHELHEIH]HELMt`M,$LHLLA8H}'up%H]lH;EtAH==eu5H2eHH;EtH=eHHHEЀuhHEЀuYHEHuIHELHEIH]HELMt_M,$LHLLA8HEHuHEHunHEHHuWHEHLHEIH]HEHLMtx^M,$LHLLA8HuH}-<H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH8_HELx`LuH]HEL``Mt]LIL}HLLAH]LeLmLuL}H]UHHd$H]LeLmLuH}HuHUHMH@k_LuH]LeMtS]M,$LHLA`H]LeLmLuH]UHHd$H]LeLmLuL}H}HuUMDELMHp^}t1LuLmH]Ht\L#LfLLA$pHEIDuEHEEHEH]HEHELeMts\I$ILH}HދE‹EEMAhH]LeLmLuL}H]UHHd$H}HuUMDELMHH]HEHu0HEH$HEHDMDEMHUHuHEH]UHHd$H}HuH]H]UHHd$H]LeLmLuL}H}HuHUMHE]EHEHHu2HEHPLEHMHUHuHEH}tN}tH}$HEHUHEHEHEHEHE@xtZtHEHcHc]HqZHH-HH9vZ]HEHcHc]HqZHHHH9vMZ]wHEHcHc]H)qlZHHHH9vZ];HEHcHc]H)q0ZHH-HH9vY]Hc]HcEH)qYHH-HH9vYHEHc]HcEH)qYHH-HH9vjYHEDuDmH]LeMt(YM<$LHDDEEAA}uDLmL}LuH]HtXL#LLLLA$PuEEEH]LeLmLuL}H]UHHd$H]LeLmLuH}HuHUHMLEHHWZHEH3HHuHEHcH qXHH-HH9v0XHEHEHcXH qWXHH-HH9vWHEXHEHcXH q XHH-HH9vWHEXHEHcX H qWHH-HH9vWHEX HE؀uDHELLeHELMt0WI]HLLxHUHEHu)HEHLMHMLEHUHuHEH]LeLmLuH]UHHd$H}HXHEHuHEH'2HEHEHpHEHEH]UHHd$H}HGXHEHEDHEHHEHEHuHEHptH}1HEHEHpHEHEH]UHHd$H}HuHUHWHEHxHuhHH= HUHH]UHHd$H]LeLmLuL}H}H8cWHEHtjHEu[HEuLL}HL0HHL MtUMLHLLAHEHEHHEHEH]LeLmLuL}H]UHHd$H]LeLmH}HuH(VHEHu`HEHH;EuMHELHELMtBTI]HLpuHEHHUHEHH]LeLmH]UHHd$H]LeLmH}@uH(UHE:EtqHEUHEuUHE@PtEHEHt5LeLmMtaSI]HLHH}H]LeLmH]UHH$PHXL`LhLpLxH}HuHTH]LmMtRMeLjHA$ILmMtRI]H@H]HEI9tHEEHUHu HHcHUuKHUHB@HELzHLuIH]Ht!RL#LLLHULA$H#}u H}HEHt$ HuH}n{HXL`LhLpLxH]UHH$PHXL`LhLpLxH}HuHUHVSHEHUHuHHcHUxLuLeLmMt QI]HLLHuH}HHEIH]L}LeMtPM,$LmLHLA8"H}菎HEHt#HXL`LhLpLxH]UHHd$H}HuHCRH]UHHd$H}HuHUHRHEHpu!HEHxHMHUHuHEpH]UHHd$H}HuHQH]UHHd$H]LeLmH}H({QHE@Hl1HEH}uHuH}袛OLeLmMt}HxHt]EHPLXL`LhH]UHHd$H]LeLmLuL}H}HuHX@EHEHHEVfHuH=5u/HEHEHEuHuH}~uHEHHEH}uHEHxEH$CL HCL(Mt;>I]HLuXHELxDuHBHHBL Mt=M,$LHDLAHEfxt`HEX@tJHELp]L}LeMt=M,$L;LLAHEfxtEEH]LeLmLuL}H]UHHd$H}HuUH ?HEH‹MHuH H8sH]UHHd$H}HuUH>HEH‹MHuHH8CH]UHHd$H]H}HuH>HEHǺHHEHHuH]AHEHHE@FHE@ HEXu,HEX HHHH9vuGHE@P t7HELp`LmHEL``Mt:LH:LLH]LeLmLuH]UHHd$H]LeLmLuH}H(7LShHEH}t+HUHuHHcHUHEHUHEHpL}IHLeMt M,$LHLLAHEH}uH}uH}HEHXHEHpHhH(H+HcH u%H}uHuH}HEHP`H HtHEHLLLLH]UHHd$H}HuH HEH}HHHEHEH]UHHd$H]LeLmH}HuH8 H})LeLmMtzI]HLHEHu H}@H}!u)LeLmMt&I]HL(H}EwHc]HqQHH-HH9vH})HEHuH}HEHH;EtH}HH},E}\H}_HcHqHH-HH9vbH}wHEH}H3H} HEHsHEH8HEH`ӄHEHu^HELHELMtI]HULpuHEHvHEHǀHEHUHEHEH}H襮H}uH}uH}HEHPpH]LeLmH]UHHd$H}HHEH(uHEH0HuHE(H]UHHd$H}HHEH8uHEH@HuHE8H]UHHd$H]LeLmLuL}H}HXCLmLeMt/I$HLHEHU؋E؉EH}s]H}HcHqJHH-HH9vAA}EEEuH}HEHEH@4EHEHpHHEHEHEHuEHEHcHc]H)qHEHcH)qHH-HH9v2H}qH}@{AH]LeMtM,$LHDAD;}~H}bH]LeLmLuL}H]UHHd$H]LeLmH}HuH(gLeLmMtSI]HLtHEHu H}@|H}uNHE@Pt?LeLmMtI]HLH}jH@OHuH}蒸H]LeLmH]UHHd$H}HuHHE#HWH]UHHd$H]LeLmLuL}H}HuHH/HEHH}OH}=WH}uHEHxtH}6EH]LeMtM,$LsHAEH]LmMtMeLFHA$AHELp`H]HEL``MthML HLDMDEA@H]LeMt2M,$LHAxH]LeLmLuL}H]UHHd$H]LeLmH}HuH(HE@HhYLmLeMtI$HXLxLmLeMtI$H/L@H]LeLmH]UHHd$H]LeLmH}HuH(7HEPHULmLeMtI$HL@H]LeLmH]UHHd$H}HuHH]UHHd$H]LeLmH}HuH0HE@PtQH}@kHEH}u8HE耸u)LeLmMt;I]HLH]LeLmH]UHH$HLLL H}HuHHE@P uH}HtkHEHxuBHELp`LmHEL``MtLH%LL(tgHEtCH}t4H]LuLmMt'MeLLHA$ HuH}HpH0AHiHcH(QH}^HHurHEH}tQHEHEHE HUH}HHEH}HHuAtUuH}:LHEHUHPHUH}HeHEH@Hc]HHH9uNHH-HH9vLceIHI9uLH-HH9vDH}KH}"HHu親HEH(HtHtoHDž(HLLL H]UHHd$H}HuHHEHHH]UHH$pHxLeLmLuL}H}HuHHEEHEEHEH@H%HHEt"HEHc(HEHc H)qHHHH9v>]HEHc,HEHc$H)q[HH-HH9v]H}bu0H}cHtH}LHHUHuEEEEHE@EHE@EEEEEċEUgEȋEUgEHEHEHEHEHEH H}puH}̭HEHuH=uHE@uHHUHEH HEH(LeLmMtI]H^L u`HE@HUHE@ADmDuHEHELeMtaI$HHH}DEDEHxLeLmLuL}H]UHH$@H}HHDžHHDžPHDžXHEHUHuH>HcHUH}LH*~H`HEHpHXHXHhH*~HpHEH@H H(HPFHPHxH*~HEHEHpHPHHHHHEH`HH}OHUHH=\HH5H@HHKHPKHX|KH}sKHEHtH]UHH$`H`LhLpLxL}H}HuH-HEEHEEHEH@H%HHEtHE@EHE@EEEEEUEgEUEgEHEHEHEHEEEEEHEH H}uuHEtcHEEHEEEEȋEEH}EH}EEEEEċE;EtE;EtH}萩HEHuH=ٰ蜾uHE@uHHUHEH HEH(H]LmMt~ MeL"HA$ ufHEHu*H]LeMt5 M,$LHAHEHuwHuH=1̽taHE@HUHE@HUDuDmH]LeMt M<$LbHDDEEAA^HEPHEHE@ADuDmHEHELeMt\ I$HH}DDDEAHEH@H%H.HEH@HHtH}Ou H}@LH`LhLpLxL}H]UHH$@H}H HEHDžHHDžPHDžXHUHuHHcHUH&~H`HEHpHXHXHhHp%~HpHEH@H H(HPHPHxHb%~HEHEHpHPHHHHHEH`H}HJHEHU@;BuHEHU@;BuHEHhH%~HpHEHpHHHHHxH%~HEHEHpHPVHPHEHhH}HJHUHH=mܓ(HH5H&QHHEHPEHXEH}EHEHtH]UHH$pHpLxLmLuL}H}HuHC HEHxtHEH@@ %tHuH}S]HEH@@EHEH@@EHEH@@EHEH@@EEEEEUEgEEUgEHEHEHEHEHEH H} uHEtH}HEHuH=_"uHE@uHHUHEH HEH(LmH]HtL#LLA$ uHEtHEHu)LeLmMtI]HNLHEHuSEHEEHEDuDmH]LeMt[M<$LHDDEEAAOEHED}Du]HEHELeMtM,$LH}DDEAAHEH@@ %wH}Ju H}@QGHpLxLmLuL}H]UHH$@H}HqHDžHHDžPHDžXHEHUHuH辰HcHUH}BH!~H`HEHpHXTHXHhH7 ~HpHEH@H H(HPHPHxH) ~HEHEHpHPHHHHHEH`HH}~EHUHH=דHH5HHHAHPAHX@H}@HEHtH]UHHd$H}HuHHEHH}ѶuHEH@H]UHHd$H}HuHHEHH}聶uHEH@H]UHHd$H}HuH3HEHH}uHEH@H]UHHd$H}HuHHEHH}uHEH@H]UHHd$H]LeLmLuL}H}HuHHHL0A HHHtYL#LDLA$HtHEfxrH]C=v1ECEL}LuAHEH]HtL#LEDLLA$}u H]C=vC:Eu!}tHEfUfP HEf@HEfxtHEH@!HuH}袻uHEH@H]LeLmLuL}H]UHHd$H}HuHHEHH}suHEH@H]UHHd$H]LeLmLuH}HuH0HEH@H8Hu t2H]LuLmMtqMeLLHA$H]LeLmLuH]UHHd$H}HuH#H]UHHd$H}HuHH]UHHd$H]LeLmLuH}HuH0HEHxuRHE u@HELpLeLmMtxI]HLLHEH@H]LeLmLuH]UHHd$H}HuHH]UHHd$H}HuHHEHH}Su HEH@H]UHHd$H}HuHHEHH}#u HEH@H]UHHd$H}HuHCHEHH}Ӷu HEH@H]UHHd$H}HuHHEHH}Su HEH@H]UHHd$H}HuHHEHH}u HEH@H]UHHd$H}HWHEHEEH]UHHd$H]LeLmH}H HEHt)LeLmMtI]H艻L H]LeLmH]UHH$`HLLLLH}HnHDžHDžHDž(HDž8HDž@HDžHHDžPHDžXHHp^H膧HcHhs HE@Pu/HEHuHEH@PuHuHXHXH`EHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$IIHH`H5~Hc!HVa HEuHuHP HPH`ZHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$IIH 6~H`H5X~Hx H,Uv HE@uHuHH"HHH`oHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$IIH ~H`H5m~HHAT HEuHuH@7H@H`HHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$IIH ~H`H5~HHVS HE@PtHE@P@H8"H8H`HuH($H(H0qHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$IL`H -~H0H5G~HDžDžDž Dž$HUHH H H(HEH}@HHH HcH0HEHufHEHtPHEHH}uH~H HDž HHHHEƀHEHE@HHh,HTHcH`5LLmH]HtL#LHEHu H}ũH0HtHtHDž0HP+HD+H(8+H8,+H@ +HH+HP+HX*HhHtHLLLLH]UHH$HLLL L(H}HHEHUHuԺHHcHU'H}HHUH5}qH}ȧHxH8耺H記HcH0HEuBHELp`LmHEL``MtLHyLLXHEHEuQHELxHELp`H]HEL``MtuMLHLLAhHEHE@Pt?LeLmMt,I]HЪLH}H@葂HE@PtLuLeLmMtI]H{LL8u0LuLeLmMtI]HELLpLeLmMtuI]HLHE@PuWHZMH8}1IHELp`H]HEL``MtML迩HLLA|LeLmMtI]H芩LfHLH80IHELp`H]HEL``MtML>HLLA H}蠥H0HtLeLmMtKI]HLpH}'HEHt:HLLL L(H]UHH$PHXL`LhLpLxH}HHEHUHuHHcHUH}t H= ~DHELx`LuH]HEL``Mt>MLHLLA0uHEHHui&HE u HEH}HH5!}$EEEEHUHEH@HEHH)H}%HEHt袺HXL`LhLpLxH]UHHd$H]LeLmLuL}H}H8#HEHHEHhuHEHhHcXHqJHH-HH9vAA}YEEEHEHhu\ILMMtM,$L+HAxD;}~H]LeLmLuL}H]UHHd$H}H7HEH]UHHd$H}HHEHuH;EtEEEH]UHHd$H}HEHEHEBH}/t#HE@PuHEuHEHHEH}uEEH]UHH$HLLLLH}HHEHUHxQHyHcHpGH}^HXHH>HcHHE@uHEEPHEHE=H}gE؃}/HEЋE؃}HEHHEH}uHEuHEEOHEHEHELLeHELMtI]HJLLPEH]LeLmLuH]UHH$PH}؉uUMDEHDHE؃uH}HEHUHEHEHEHEEEEEEUgEUEgEHEHEHEHEHuH} t|HE؋@PtHjH}1HUHPH|HcHUuDEMUuH}sH}腋HEHtgH]UHH$pH}H!HDžpHUHudH{HcHUHEH@؃xHEx|vHEHpHpHpHEHDžx HE@EHEHxIHh}HH=HH5H賞HEx|vHEHpHp蓮HpHEHDžx HE@EHEHxIH>}HH=x胒HH5H1\Hp HEHtҠH]UHH$H L(L0L8L@H}HuHUMHSHEHHuMH}tH}ufHEHP`HPHEHHHEIDuH]HEL``MtML蕌HELHHHPAH}^HEHUH`HyHcHXuOHUرHH=œ8VHEHEH$LMLEHMH}в@2d}u }u轝H}贆HXHt3LmLuL}H]HtL#L蜋LLLA$(}dHcUHcEHq!HEHEHcHXHXH;E HXH]HHHH9vHE}cHcUHcEHqHEHEHcHXHXH;E HXH]HH-HH9v*HEHE8#HE8tHEXuNHEHHcP0HkqHEHcHq HH-HH9vHEHE8#HE8tHEXuOHEHHcP0HkqHEHcHqHHHH9v5HEH L(L0L8L@H]UHHd$H]H}HuHUH HEHcH}觔HcH)qHH-HH9vHEHEHcH}HcH)qHH-HH9vYHEH]H]UHH$`H`LhLpLxL}H}HuHHEHUHu#HKuHcHUH}HH}#tYHE@PuJHELx`HEIH]HEL``MtWMLHLLA0tH}HuIHuH}|觙H}HEHt H`LhLpLxL}H]UHHd$H]LeLmLuL}H}H8EHEH tVHE@PuGHELx`LuH]HEL``MtWMLHLLA8t H}EEH]LeLmLuL}H]UHHd$H]LeLmLuH}HuH0HEHWuHE@PtLuLeLmMtI]H8LLpLeLmMthI]H LHuH}SLeLmMt2I]HօLx HuH}SH]LeLmLuH]UHH$HLH}HuHHHEHSH{oHEH}tHEH@ HEHE LeMtwI$HHHlHHEHEHMHNLHPIHH=ŋHH5{HnH}襠HUHHEHLH]UHHd$H}HuHHEtHEHu H}@HE@PtHEXu H}H]UHHd$H]LeLmH}HuH(7LmLeMt#I$HǃLH]LeLmH]UHHd$H]LeLmH}HuH(LmLeMtI$HWLH]LeLmH]UHHd$H}HuHcHEhu6HEHuHEH@H}HEƀhH]UHHd$H]LeLmLuL}H}HuH@HEHxuHEfxuHExPHLuLmMtMeL=LHA$IH]ALeMtbM,$LDHLAxHEH}u6HEHcHHEHPHE0H}jyHUHBHEHxu HuH}H]LeLmLuL}H]UHHd$H]LeLmLuH}H0LmLeMtI$H7LEHE:Eu]}uHEHEHELp`LmHEL``MtLH€LLH]LeLmLuH]UHHd$H}HH]UHH$pHxLeLmLuL}H}HHEHt5H]LeMtvM,$LHAtHEEHEEHEEHEEEEEEEUgEEUgEHUHEH HEH(H]LeMtͿM,$LqHAHEHUHEHEHEHEHEHEHUHEHUHEHUHEDHEHX`LuHEL``MtHELLeHELMtI]HwLL`H]LeLmLuH]UHHd$H]H}H賹HEx}2H]HEHx6;CHEpHEHxۑHEHEHEH]H]UHH$HLLH}HuHUMH!H}t)LmLeMtLHvLShHEH}t'HUHu/HWcHcHxvHEHUHEHBHUEB HEx u HE@HEHxHUBHEH}uH}uH}HEHʇHxHpH`H rHbHcHu%H}uHuH}HEHP`lbHHtAHEHLLH]UHHd$H}HwHEHEHEH]UHHd$H]H}HCHEx uQHEHcXHq脵HH-HH9v'HEXH]HEHx菏;CECHEHcXHq3HH-HH9vִHEXHExEEH]H]UHHd$H}HuHsHEH=dH`gHUHB H]UHH$0H8L@LHLPH}HuHHDžXHEHUHuLHt`HcHUEHEHpH=ZSfuHELhH]HELpMt蔳M&L9sHLA$uHkHuHEH@fuHEH8uxHEHHhHDž` HEH@HXbHXHxHDžp H`HH5,}H}HuH}IHXH}HEHt超EH8L@LHLPH]UHHd$H]H}HPHEHUHu薀H^HcHUuXH}&uEHEHpH=QeHHEHx HuH}HHtEEVH}HEHtτEH]H]UHHd$H]LeLmH}H({HEH&uWHEL` HELh MtMI]HpLHEHpH=P"d:tEEEH]LeLmH]UHHd$H}HײHEH+&uH]LeLmH]UHHd$H]LeLmLuH}@uH0#LeLmMtI]HnLxu8HELp DeHELh MtԮI]HxnDLPH]LeLmLuH]UHHd$H]LeLmLuH}HuH0sLeLmMt_I]HnLu8HELp LeHELh Mt$I]HmLLXH]LeLmLuH]UHHd$H]LeLmLuH}@uH0ïLeLmMt语I]HSmLu8HELp DeHELh MttI]HmDLH]LeLmLuH]UHHd$H}HuHUHH]UHHd$H}HHEHpH=L_HUHR ;thHEHpH=TL_HHEH@ H|Ht2HEHpH=L_HUHR ;tEEEH]UHHd$H]LeLmH}HuH('LeLmMtI]HkLuHEHx Hu H]LeLmH]UHHd$H]LeLmH}uH(設LeLmMt蔫I]H8kLuHEHx u H]LeLmH]UHHd$H]LeLmH}uH((LeLmMtI]HjLuHEH@ UH]LeLmH]UHHd$H}H跬HEHxuHEH@H@(HEHEHEH]UHHd$H]LeLmLuH}H8WHEH}uHEHx(tLuLmLeMtLHiLLHHHH9v HEHX(HEHx(u)LeLmMtI]HdiLHEH@(HEHEH]LeLmLuH]UHHd$H}HuHcHEHpHH}H]UHHd$H}H'HEHxXuHEHxXqH;EtrHEH@XEHEH@XEEHcHH!HH!H EHcH HH!HH!H HM HEH@HEHEH]UHHd$H}HWHEHxXuHEHxXpH;EtrHEH@XEHEH@XEEHcHH!HH!H EHcH HH!HH!H HM HEH@HEHEH]UHHd$H]LeLmH}HuH(wHEH@(H;EtBHUHEHB(HEHx(u)LeLmMt8I]HfLH]LeLmH]UHHd$H]LeLmLuL}H}HuH@ߨHE@;EtHE@ ;EtOHUHEHBPHEL}LuH]LeMt萦LIL2fHLLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@HE@;EtHE@;EtOHUHEHBHEL}LuH]LeMtХLILreHLLAH]LeLmLuL}H]UHHd$H}Hw"H]UHH$HLLH}HuHUH$H}t)LmLeMtLHdLShHEH}t_HUHu2sHZQHcHUHEH}H]HEHUHPXHHH="HUHB0LeMteI$H dLmMtIMeLcHA$HEH}uH}uH}HEHuHEHpHhH(=rHePHcH u%H}uHuH}HEHP`7uv-uH Ht xwHEHLLH]UHHd$H]LeLmLuH}HuH83H})LeLmMtI]HbL蜿HEH}H}uHcHUH}1H}HpHEHpHhrHhHxHµ}HEHEHx[HPHXHPHXH`jH`HEHpHH}HUHH=(fTHH5?Ha cH``HhTH}KHEHtmdH]UHHd$H]LeLmLuL}H}@uUHP EHEEEL}HĕL0HL MtِI$ILzPALLU؋EAH]LeLmLuL}H]UHHd$H]LeLmLuH}@uH0cHEHGXuHcEHHHH9uHH-HH9v躉]HE@;E~HUEBHUEBH]H]UHHd$H}HGHEHEH]UHHd$H]LeLmLuL}H}HuH@HEHp H=-;uHEH@ uxHEH@ HEH}WdHHEHp@GHEHu>HELLeHELMtqI]HHLL@HEHX@HE@ HE@CLc+HEHx $AMcMqyLH-HH9vDcLckHEHxw#AMcMq7LH-HH9vڇDc HELx@LpHH]LeMt薇M,$L:GHLLAH]LeLmLuL}H]UHHd$H}HGH]UHHd$H]LeLmLuH}H(LuLeMtM,$LF@LAH]LeLmLuH]UHHd$H}H跈EEH]UHHd$H}H臈HEH}H7H=H]UHHd$H}HGHEHPuHEHXHuHEPH]UHHd$H]LeLmH}HuH(HEƀHEƀLmLeMt轅I$HaEL@H}HH<HEuRLeLmMtiI]H ELLeLmMt@I]HDLxH]LeLmH]UHHd$H}HH]UHHd$H]LeLmLuL}H}HuH@迆H}t,HEHxp9?HEH@pHEX6HEXHEHxptrH]LmMtXMeLCHA$0HEL}ILmH]HtILCLLLA$HUHBpHELhpLuHEHXpHtڃL#LCLLA$HEHHpHUHXHAHQHE@PALuL}H]Ht}L#L"CLLDA$8HuH}$H]LeLmLuL}H]UHH$HLLLLH}ЉuUMDEDMHx݄HDžHUH`QHE/HcHXHEHu}tHEHHuWLEHMHUHuH}0HEЋ;EuHEЋ;EuEEHEЋ;EuHEЋ;EuEE}u}uE}t9H}@uHuHbHHHDž HEЋHDžHEЋHDžHEЋHDžHEЋHDžE HDžE0HDž(E艅@HDž8EPHDžHHIH}HH=TU_EHH5H QHEЋEHEЋEHEЋEHEЋEHE@PuRHuH=g%*3u<H]LeMt@M,$L?HA(@H}бjEHEHDuDmH]LeMtM<$L?HDD򋅰AAHP}t H}H2HEHcHqHHHH9v~HEЉH@HMH+HcHLmH]HtL#L>LA$ H0tHEHu }u*LmH]Ht~L#L^>LA$x.PHEHcHq~HH-HH9v~HEЉHHtHfQHDžHqtzHHEЃYHE@PuIHEHu9HELHEHHt}L+Li=LA@OHE@Pt@HuH="^0t*H]LeMtt}M,$L=HA@HHE@PtH]LeMt+}M,$L~HDžHUHuJH(HcHUHEH@Ё|GHEH@Ё1HEH@Ё|HEH@ЁHP}HHDž EHDžDž)HDžHEHpH[HHHDž H }HHDž HE@ĉ(HDž Dž8,HDž0HE@HHDž@DžX,HDžPHE@hHDž`Džx,HDžpHE@HDžHa}HHDž HE@HDžDž,HDžHE@HDžDž,HDžHE@艅HDžDž,HDžHE@HDžHɞ}HHDž HEH@Ћ(HDž Dž8,HDž0HEH@ЋHHDž@DžX,HDžPHEH@ЋhHDž`Džx,HDžpHEH@ЋEHEHH/9zJHζHEHtKH]UHHd$H}HzHMHEH@HU;BuHEH@HU;BuAAHMHEH@HU;BuHEH@HU;BuAAHExuHExuEEEH]UHHd$H]LeLmH}؉uUMDEH@y}蠆 }ࠆ HHHE؋UHE؋UHE؋U艐HE؋UHEHu7HELHELMt7wI]H6LH]LeLmH]UHH$pHLH}HxHDžHDžHDžHDžHDž HxH8DH#HcH0kHED@HEHHEPHEpH !^H H(HEH@DHEH@؋HEH@؋HEH@؋H]HHHEL`MtuI$H5HH4HHٽHHHEH@H@ HCgHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$H(HD$H}HD$HH$L ̌}LH ~}HH5}HXH輲H}HHEH@H@ HH4}HHEL`MttI$H-4HH~3HH膼HHH}HHHH;HOEHHHֱHʱH 辱H0HtFHLH]UHHd$H]LeLmLuL}H}uUH@muHELA<wMUuAǓHPIHH=BPHH5HLuLeLmMt@I]H*LLHLuLmMtW@MeLLHA$HEHEH]LeLmLuH]UHHd$H}HBHEH uHEH(HuHE H]UHHd$H}HAHEHuHEHHuHEH]UHHd$H}HgAHEH0uHEH8HuHE0H]UHH$@H@LHLPLXL`H}ЉuHUHMLEDMH@HEEv \t^HEHEQELuLmH]Ht>L#L4LLA$HEHuH=2umHEH@ HEEHEEHEHEHEDuLmH]LeMt>M<$LHLELME‹EA`|HmHEx1u HEH@HEHEEHEEHxLuDmH]LeMt=M<$LDHEMx‹EHuAhEHE LuLmH]HtN=L#LLLA$HEHuH=vuXHEH@ HED}EHhLmH]LeMtHEH@x1uHEH@H@HE HEH@HEHEH]UHHd$H}HuUMDELMHH=HUHEH@HEЀ8u0HEH$HEHHDMDEMHUHuHE@H]UHHd$H}HuUMH -=HEH0u$HEH8DEMHUHuHE0H]UHHd$H}HuH}yHpHE*YEH-HH-HH9v1H} H]H]UHHd$H}HG3HEHHE-fDHEuEHEHHEH}uEEH]UHHd$H}H2HEHvH]UHHd$H}H2HEHFH]UHHd$H}Hw2HEHH]UHHd$H}HG2HEHH]UHHd$H}؉uHUHMDEH(2HU؋EHt"HH=tHU؋MHHE؋UH}HuHU(H]UHHd$H}uHUHMH |1HUEHHuHU&H]UHHd$H}uH41HUEHHu\+H]UHHd$H}uHUMH80HUEHi"E5@HEUHuHEHUHUMHuH}UHEUHHuW"uH]UHHd$H}ЉuUMLELMHHF0HUЋEH!E=DHEЋUHuAHEHULMLEMUHuH}UHE؀8t HEЋUHHu!uH]UHHd$H}HuHUH/HEHu!HEHHMHUHuHEH]UHH$PHXL`LhLpH}HuUH/HDžxHUHuQHyHcHUHuH=g̨uHEHE}tIH}HxqZHxt-H}HxUZHxHEHp QzHtHEHH}V}t1LeLmMt:,I]HLu7HEDLeLmMt,I]HLDP}tHEHt7HELLeLmMt+I]HULLX}tHE耸u7HEDLeLmMtc+I]HLD}tHE胸tHE苰H}a}tHEHtHEHH}蕌HxhHEHtHXL`LhLpH]UHHd$H]LeLmLuL}H}HuH8,LeLmMtk*I]HLH;Et5L}LuLeMt4*M,$LLLA8H]LeLmLuL}H]UHHd$H}HuH+HEHHp8H}+hH]UHHd$H}HuH+HEHHp@H}gH]UHHd$H]LeLmLuH}HuH0S+HELH]HELMt-)M.LHLAH]LeLmLuH]UHHd$H}H*HEH@PEEH]UHHd$H}H*HEEEH]UHHd$H}uHd*HUEH€HEHEH]UHHd$H}uH$*HEHuZHEHEH]UHHd$H}H)HEHuHEHE HEEEH]UHHd$H}H)EEHEEHEEHEHUH]UHHd$H]LeLmH}H@+)LmLeMt'I$HLHEHUHEHEHEHEHEHUH]LeLmH]UHHd$H]LeLmH}HH(LmLeMt&I$H;LHEHUHEHEHEHELmLeMtV&I$HLHEHcEHc]Hq&HH-HH9v.&]HcEHc]HqY&HH-HH9v%]HcEHc]Hq'&HH-HH9v%]HcEHc]Hq%HH-HH9v%]HEHUH]LeLmH]UHHd$H]LeLmH}@uHP''LmLeMt%I$HLHEHUHEHEHEHE}uLeLmMt$I]HkLHEHcEHc]Hq$HH-HH9v$]HcEHc]Hq$HH-HH9vm$]HcEHc]Hq$HH-HH9v;$]HcEHc]Hqf$HH-HH9v $]HEHUH]LeLmH]UHHd$H}H%HH!HH!HEHEH]UHHd$H]LeLmH}H8[%HEEHEEEHcHH!HH!H EHcH HH!HH!H HMHEHuHELHELMt"I]HbLHEHcEHc]Hq"HH-HH9v"]HcEHc]Hq"HH-HH9vd"]HEH]LeLmH]UHH$`H`LhLpLxL}H}HuH#HE@PuH}rHEH}udHEH uTHEL HEIH]HEL Mtx!M,$LHLLAu*]HE8srHE8vdH}@!HEH}uFHEIH]L}LeMt M,$LLHLA uHE8sHE8v%HE8FsHE8OvHE=-tt,htkHUHuHKH8CRHEHEht)LeLmMt I]HL HEHE8tHE HUHu!HIHcHUu2H]LuLmMtMeL:LHA$HEHEHt{2H]LuLmMtAMeLLHA$H`LhLpLxL}H]UHHd$H]LeLmH}H LmLeMtI$HkLxH]LeLmH]UHHd$H]LeLmLuH}H(w HEX@LuLeMtRM,$LLA @H}SH]LeLmLuH]UHHd$H]LeLmLuL}H}HuUMH`HEX@tHEpH}HEH]HSHH9vH{ EHUЋEHEDuDmH]LeMt_M<$LHDDEAEЉAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuUHpHEX@tHEpH}HE؋ErrHm!HHc!L MtM,$L(HAuLuLmH]HtML#LLLA$HEH]HSHH9v4H{HUЋEHED}DuH HH L MtM,$LzHDDEAEЉAHEH@H]HSHH9vH{HU]DuD}HEHELeMtUM,$LH}DDA؋EAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUHMHPEHEHu'HEHLMLEMUHuHE}tLMLEMUH} }t~}|=L}DuH]LeMtKM,$LHDLAE9Lu]L}LeMtM,$LLLAE܊EH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUHMHPEHEHu'HEHLMLEMUHuHE}tLMLEMUH} }t~}|=L}DuH]LeMt M,$LHDLAE9Lu]L}LeMtM,$LsLLAE܊EH]LeLmLuL}H]UHHd$H}uHUH pEHEHu$HEHLEHMUHuHEEH]UHHd$H}uHUH EHEHu$HEHLEHMUHuHEEH]UHHd$H}uHUH EHEHu$HEHLEHMUHuHEEH]UHHd$H}uHUH PEHEH u$HEH(LEHMUHuHE EH]UHHd$H]LeLmLuL}H}uHUH@uH}PL}ILMMtI$ILXHLAH]LeLmLuL}H]UHHd$H]LeLmLuH}HuH0SHEHH;Et?HELH]HELMtM,$LHLAH]LeLmLuH]UHHd$H]LeLmLuL}H}HuHPHE@PuHEHxuHEpH}~HE}u4LuLeLmMtZI]HLLHEEL}LuH]LeMtI$ILHLLA}uHEH@LmLeMtI$HvLHEH}uHE耸tHEHUH}tHH!HH!HELuLeLmMtLI]HLLHEDu]L}LeMtM,$LLDA HEH@H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@HEXuHEu H}@/8HEXu HEHEHEL}AAH]Ht*HILDDLHuA$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@HEXuHEu H}@?7HEHEL}AAH]HtWHILDDLHuA$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@HEXuHEu H}@o6HEHEL}AAH]HtHIL)DDLHuA$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHHHEH@H Hu E!HEH@H@Hu EyHEXuHUEr H}@b5HEHED}LuAH]Ht|HILDLDHuA$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@HEXuHEu H}@4HEHEL}A@AH]HtHILYDDLHuA$HEXu*H]LeMtnM,$LHAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@HEXuHEu H}@3HEHEL}A@AH]HtHILIDDLHuA$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@/HEXuHEu H}@2HEHEL}A@AH]Ht HILyDDLHuA$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHH_HEH@H Hu E!HEH@H@Hu EyHEXuHUEr H}@1HEHED}LuA@H]Ht HILnDLDHuA$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@_HEXuHEu H}@0HEXu*H]LeMt M,$LHAHEHEL}A@AH]Ht HILmDDLHuA$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@O HEXuHEu H}@/HEHEL}A@AH]Ht HILDDLHuA$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@ HEXuHEu H}@/HEHEL}A@AH]Ht' HILDDLHuA$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHH HEH@H Hu E!HEH@H@Hu EyHEXuHUEr H}@.HEHED}LuA@H]Ht HILDLDHuA$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@ HEXuHEu H}@?-HEXu*H]LeMtYM,$LHAHEHEL}AAH]HtHILDDLHuA$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@ HEXuHEu H}@/,HEHEL}AAH]HtGHILDDLHuA$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@HEXuHEu H}@_+HEHEL}AAH]HtwHILDDLHuA$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHHHEH@H Hu E!HEH@H@Hu EyHEXuHUEr H}@R*HEHED}LuAH]HtlHILDLDHuA$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH`HEXuHEu H}@)HEuHEHEpH}HELeLmMtI]H+LHEHUHEHEHEHEE;E}"E;E|E;E}E;E|u)LeLmMtI]HLHEILuLeMtI$IL~LLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH8oHEXuHEu H}@'HEILuLeMtI$ILLLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH8HEXuHEu H}@?'HEILuLeMt_I$ILLLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@HEH@H Hu E!HEH@H@Hu EnHEXuHUEr H}@B&HEIDuH]LeMtcI$ILHDLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHPHEf@fEHEf@fEuH}HEHE@(%EHE@ HULuDmH]LeMtM<$L2HDLE؉AuHEH@0LuLmLeMtAI$HLLH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHPHEf@fEHEf@fEuH}HEHE@(%EHE@ HULuDmH]LeMt~M<$L"HDLE؉AuHEH@0LuLmLeMt1I$HվLLH]LeLmLuL}H]UHHd$H]LeLmLuH}H0HE@PtHEHxpuEEHEHu3}tHtHEHHuHE}u8HELppLeHELhpMtFI]HLLH]LeLmLuH]UHHd$H]LeLmH}HHEHEL`HELhMtI]HoLHtHEL`HELhMtI]H2LHxxtHEH@Ht}HELhHEL`Mt6I$HڼLHPxHUHHEHEHPHHEHHEHEH;EHEH;E ЈEEH]LeLmH]UHHd$H}HuHEEH]UHHd$H]LeLmLuH}uUH8aHE@PusHV_H8Nfu[LmLeMt!I$HŻLfLuLeMtM,$L薻LAPH]LeLmLuH]UHH$HLLLH}HuUH`~LuH]LeMtfM,$L HLAE}t}uLeMt$I$HȺHHHHEHEH}HHHEHEHMHXHPIHH=JHH5lHEHLLLH]UHHd$H]LeH}HuH(KH}u2LeMt2I$HֹH]HEHH}PHEH;Et0H-HPHH=K6HH5H4H]LeH]UHHd$H]LeLmH}@uH(HE:EuEHUEHEu)LeLmMtVI]HLxH]LeLmH]UHHd$H]LeLmLuL}H}H`HEH+EH}8,E}u }uEEHEHEHEHEL}ALeMtM,$LHE@|u/*EYEH-HH-HH9v]HExxtHE@|uHEHuH}Hx tHE@|tHEH)HcHcUH)qxHcUH)qjH*YEH-HH-HH9v]HEH˺HcHcEH)qHcEH)q HHHH9v]HEHtHcHUHcH)qHcUH)qH*YEH-HHHH9vA]HEHHcHcEH)q[HcEH)qMHHHH9v]HExxt>HE@|u/*EYEH-HH-HH9v]HExxtHE@|uHEHuH}Hx tHE@|tHEH袸HcHcUH)qaHcUH)qSH*YEH-HHHH9v]HEHCHcHcEH)qHcEH)qHHHH9v]HEHHcHUHcH)qHcUH)qH*YEH-HHHH9v)]HEH膷HcHcEH)qCHcEH)q5HHHH9v]Ȁ}u6HE*YEH-HH-HH9v]̀}u7HE*YEH-HHHH9vZ]HEHMEHEHMESEԉEEЉEẺEEȉEHEHu EHEHu EȀ}u E;EuOHE@|u@HcUHcEH)qHc]HqHH-HH9v]Ԁ}u E;EuOHE@|u@HcUHcEH)qHc]Hq}HH-HH9v ]Ѐ}uOHE@|u@HcUHcEH)q4Hc]Hq&HH-HH9v]}uOHE@|u@HcUHcEH)qHc]HqHH-HH9vr]HEUHUEHcEHc]HqHHHH9v%HEHcEHc]HqIHHHH9vHEHEHu4HEH衴HUHEHHUD}DűEHE]HEHELeMtSM,$LH}ދEDEAH`LhLpLxL}H]UHHd$H]LeLmH}HuH(LmLeMtI$HgLxH]LeLmH]UHHd$H}HuUH(pHEH@(HEHEH@ H;EtbHEHtHH=QHUHHEHHu|HEHHuHEHumHEHx(uLEEEHE؋UHЀuHE؋UHЀH@ H;Et}sHEHHu H]UHHd$H]LeLmH}H(;HEHuHELLeHELMtI]H%LL`HE@PtHEXu/LuALmMt1I]H՗DLH]LeLmLuH]UHHd$H]LeLmLuH}HuUH@EHuH}N}t2LeLmMtI]HCLH;EtH}H>LeLmMtYI]HLH;Et5LuILmMt!I]HŖLL@"HEHH;EtHEHǀEfDEEHEUHЀu2HUEH€H@ H;EtHUEH€H@ }sH]LeLmLuH]UHH$ H L(L0L8L@H}HuHHDžHHUHxZH肂HcHp`LeLmMtI]HpLuHEHuHElHEhhHcHH!HH!H ËlHcH HH!HH!H HELHELMt MeL譔LHA$HEHEHP@HUH@HHEHcUHcEH)q%HEHHcHq HEHcH)qHH-HH9vlHcUHcEH)qHEHHcHqHEHcH)qHH-HH9v1hHEHHcHc]HqKHcEH)q=HH-HH9vTHEHHcHc]HqHcEH)qHH-HH9vPPXT\Phg`TlgdHXH`HEHHEHp@HPHH}gHEH}u`L}LuHHLeMtM,$LeHLLAHHH}aHEHUHP H} HH_HpHt~H L(L0L8L@H]UHH$`HLLLLH}HuHHDžHXH'HO~HcH|HUHHhHpHxHZ\H;pt7H]LuLmMtgMeL LHA$ LeMt8I$HܐHH-HH5HHHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$IIHHH58|HLeLmMtHEHxzHEHt賑HpLxLmH]UHHd$H]H}HuH(OHEHuH=Acqu{HEHEH}躘HcHqjHH-HH9v }6EEEuH}#HH}G;]~H]H]UHHd$H]H}HuH0HE@Pu HEHEHuH=`b#puHEHEH}ٗHcHq艽HH-HH9v,}DEfDEEuH}CHH}7HEH}u;]~HEHEH]H]UHHd$H]LeLmH}H {LmLeMtgI$H |LxLmLeMt>I$H{LpH}@eH]LeLmH]UHHd$H}HuHH]UHH$`H`LhLpLxL}H}HuH荽HEHUHuӉHgHcHUbHuH=Znu<LeLmMt/I]HzL@H}%HEHH}:&%H}HuHuH}P%HE@H})%HELLH]LeMt覺M,$LJzHLLAHEDLeLmMtkI]HzLDHELLeLmMt4I]HyLLHEH}y!% HuH}j腋H}HEHtH`LhLpLxL}H]UHHd$H}HuHp蓻HEH}uHUHu͇HeHcHUuHEHuH}r͊HEH}YuHEHt;H]UHHd$H}HH]UHHd$H]LeLmLuL}H}؉uUMDEHh趺EHEЋEHEȋEHEDuLmسLeMt臸I$IL(xALDE‹EȉEAAH]LeLmLuL}H]UHHd$H]LeLmLuH}HuH0HELH]HELMtݷM,$LwHLAH]LeLmLuH]UHHd$H}@uH胹HE:Eu)HUEH}HH5nH]UHH$PHXL`LhLpH}uHHE@x;EtH}vrHUHu4H\cHcHxZHEHHUHHEHE@xEHEUPxHE@PtHE@xrrrEDEEHEHxEH.s:uH}訍HHHfuH}芍HþH }sHEM@|HѺ;tZHE@xHMH;A|u>HE@xHD4LeLmMt蘵I]HHELLeHELMtGI]H[LLHEu)HEHEHHH}H}u HuH}NlimH}XHEHtnHpLxLmLuH]UHHd$H]LeLmH}@uH(wHEHKC:Ete}uHUHEX XHUHEX%XLmLeMtI$HZL@H]LeLmH]UHHd$H]LeLmLuH}HuH0賜HEH=?HpMu0LuLeLmMt肚I]H&ZLL`H]LeLmLuH]UHHd$H}@uH3HE:EuHHUEHEHu+HE@PtH}HH *QH]UHHd$H}@uH賛HE:EuHHUEHEHu+HE@PtH}HHPH]UHHd$H}@uH3HE:EuHHUEHEHu+HE@PtH}HH#*PH]UHHd$H}HuH賚HEHUHHEHuHEHHuPH]UHHd$H]LeLmLuL}H}HuHH?HEpH}/dHEUuH}茛HEX@tPHEx}uHUDuDmH]LeMtۗM<$LWHDDEAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}؉uUMDEHpfHEH=c<H#Jt1LmLeMt9I$HVLt`H}@yHEH}uGHEHu7HELHELMtӖI]HwVLErrHxL HnHHt菖L+L4VLAuUHcHH!HI!I ֋UHcH HH!HI!I LmLeMtI$HULLHEЋEHED}DuEHEHHHL MtM,$LeUHߋEDDEAAHEHu'HEHDMDEMUHuHEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUMHX HәHHəL(MtMeLTHA$uUHcHH!HI!I ֋EHcH HH!HI!I LmLeMtlI$HTLLHED}Du؋EHEH L(HHHt!L#LSLEЉDDA$HEHu#HEHDEMUHuHEH]LeLmLuL}H]UHHd$H}؉uUMDEH(芕HEHu'HEHDMDEMUHuHEH]UHHd$H}H'HEHuHEHHuHEH]UHHd$H}HהHEHuHEHHuHEH]UHHd$H]LeLmLuH}H(wH@L H6L(MtWI]HQLu?LLDH8A$xE܀}uHuHUH}WHEH}uLmLuL@H]Ht(L#L>LLLA$H@H} LmAH]Ht~L#L>DLA$H}SI\H}IXDž`DždXh\lL`HhH0LuLmH]HtU~L#L=LLLH0A$HMLuL}HEH(IH]Ht~L#L=LH(LLA$HH} :eOH@蹻HH譻HpHtPEHLLLL H]UHH$ H L(L0L8L@H}HuHUHMDEH.EHEH8HEHHEH}uH}mtH}u?HELLmHEHHt|L#LhHHcH(H}H 9H Hu9HtHEHHxHH9t5LuLeLmMtpI]H/LL(6LeMtoI$H/HH.HHHHfaHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$IIHHH5̙|H脖H]HuHtLuLmMtnMeL.LHA$xHEHuAHELIHELMtnI]H1.LL@HTH HH(HtgAHLLLH]UHHd$H]LeLmH}H oHEHu7HELHELMtmI]Hm-LH]LeLmH]UHHd$H]LeLmLuL}H}HuHhooH})LmLeMtRmI$H,LH}@L}HqL0AHqHHtmHIL,DLLA$HuHφH8HEHuHEH@PtHELLuIHEHHt|lL#L!,LLLA$PLmIH]HtElL#L+LLA$`H}5HEHUL}HEHELmIH]HtkL#L+LLLHMA$HHEHǀHEHuAHEHHu*HEHHHuޤHEHǀLuIH]HtTkL#L*LLA$`HEHuHEHHcXHqnkHH-HH9vk}rEEEEEEuH}{BIċuL-BHEH}uHEH@ H;Et HEH@ }s;]~HEHUHEHxpHEEEHUEH€#}sHEH HEHHEHxHEHH}H#E@EEHEUH} sH}uH}uH}HEHPpH]LeLmLuL}H]UHHd$H}HWkHEH{{H}9H]UHH$HLLLLH}HuHUHjH}t)LmLeMthLHn(LShHEH}tHUHu6HHcHx HEH}#H`H 6HHcHHUH}HxLeLmMthI]H'L`HUHHUHE苀X XL}IH6HH6IMtgMLP'HLLAHUHLeLmMtqgI]H'L(HUHEfEEMHUHH=8襳HUMHʀ}sHEǀHE@|HE@xHEǀHEǀ HEƀHEƀHEƀHEƀHEƀHEƀHMHUHHpHHHEfǀ IH+L%+Mt>fML%HLA8HUHxHEHxHMHHHB8HJ@HEƀHEƀHEǀHEfǀ`HEH~HpB7H}!HHt8HEH}uH}uH}HEH6HxHpH`H 3HHcHu%H}uHuH}HEHP`6%86HHto9J9HEHLLLLH]UHHd$H}HfHEHHH=4HFHEHEH]UHHd$H]LeLmLuH}HuHH3fHEHtOHEH@ HEHE HMHtHPIHH=Ke(HH5H44HELH]HELMtcM&LS#HLA$HEHEHEH}tHEDHEH}%HEH]LeLmLuH]UHHd$H}HeHEHEEH]UHHd$H}HdHEHHEHEH]UHHd$H}HuHdE&DHEHHEHEH;EtE H}uEH]UHHd$H}H7dHEHEDHEHHEHEHuHEH]UHH$pHpH}HuH} HcHEHUHu0H;HcHxHuH.4HHH-HH9va]}EHcUHqaHMHtHIHuH}HUHtHRHcuH}膸H}HdHuH}GtHEH}uH}uHuH}$tHE[2H}貞H}詞HxHt3HEHpH]UHHd$H]LeLmLuH}H(gbLuLeMtQ`M,$L@LAH]LeLmLuH]UHH$`H`LhLpLxH}uUHMHaHEHuHEH+HUHu .H1 HcHUEt&t t1tATHEHu?HEHu蒋*HEHumHEHuHuH}6HËEH]d4HuH}v6HHuH7E HE X|LuLmMt^MeLWLA$%0HEHuHEH蕧HEHt1H`LhLpLxH]UHH$`H`LhLpLxH}uUHMH_HEHuHEHKHUHu),HQ HcHUgEt&t t1tATHEHu'?HEHu貉*HEHu荈HEHuhEt2ttFt_xuH}4HþHZuH}4HþHAHyAHZc)HEHuHEHӠHpHt*HPLXL`LhH]UHHd$H]H}؉uUMDEH0VYHEHHHE؋PHp\A|s"HEHx؋u.HHHcHEHHHE؋PHEHx؋uHEHHHEHx؋uHEHHHEHx؋uzH]H]UHH$`H`LhLpLxL}H}uHUHjXHEHuHEH躘HUHu$HHcHUHUEB|rOE HE X|LuLmMtUMeLLA$SE HEӋ@|!؉LuLmMtUMeL-LA$uH},INjuH},ILMMt@UM,$LHLA&HEHuHEH"HEHt(H`LhLpLxL}H]UHH$`HhLpLxLuH}uUHVHEHHUHu"HHcHUUH/YuUHEHu~H}+HþHH}u+HHEHH/UHXuUHEHuH})+HþH詞H} +HHEHHŚUH[XuUHEHu}~H}*HþH?H}*HHEHH[UHWuUHEHu{H}U*HþH՝H}7*HHEHHHEUX|HW LuLmMtyRMeLLA$#HEHkHEHt]%HhLpLxLuH]UHHd$H}uHSEH}!H]UHHd$H}HSHEHt EHEH@EEH]UHHd$H]LeLmLuL}H}؉uUMDEH`FSHE@Pu&HEHxuHEH@@PuTEHEЋEHEDuDmH]LeMtPI$ILHDDEȉEAAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}؉uUMDEHhfREHEЋEHEȋEHEDuLmسLeMt7PI$ILALDE‹EȉEAAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHUMDEH`Q}uHEt_HUHHEHELLuAH]HtVOL#LDLLHUA$XHE؁HEHUHEHUHEt_HEHHUHELLmAH]HtNL#LeDLLHUA$XHE؁HEHUHEHU}tHE8|#HE8tHEXt?HE؀uH}ÀuH}THUHEHUHE8|#HE8tHEXt?HE؀uH}uH}HUHEHUHEHHE0;nHUHEHHE0oHUH]LeLmLuL}H]UHHd$H]LeLmLuH}H@OHELh`LeHEHX`HtLIL LLAEEH]LeLmLuH]UHHd$H]LeLmH}H(NHEH/uWLeMtyLI$H LmMt]LMeL HA$HH}JEHEuEHEHcHEHcH)q`LHH-HH9vL]HEuBHEHcHEHcH)q LHH-HH9vK]RLeMtwKI$H LmMt[KMeL HA$HH}HEEH]LeLmH]UHHd$H]LeLmH}H(LHEH?~u[LeMtJI$H} LmMtJMeLa HA$HH H}EHEuEHEHcHEHcH)qJHH-HH9v_J]HE uBHEHcHEHcH)qeJHH-HH9vJ]VLeMtII$Hw LmMtIMeL[ HA$HH H}EEH]LeLmH]UHHd$H}HWKEKE2HEH]UHHd$H]H}uH KEt&tt.tkHEEHEEHEHcHEHcHq!IHH-HH9vH]BHEHcHEHcHqHHH-HH9vH]EH]H]UHHd$H]LeLmH}H +JLmLeMtHI$HLH]LeLmH]UHHd$H]LeLmH}H(IHEHEfDHEHEHuH=\uHELeLmMtdGI]HL(tFHEHtHEuH-HEHHEH}KH]LeLmH]UHH$PH}HHHDž`HDžhHEHUHuH)HcHUH}qHzq|HpHEHpHh&HhHxHj|HEHEHxHPHXHPHXH`!H`HEHpHH} HUHH=h# HH5?H!LH`蠃Hh蔃H}苃HEHtH]UHHd$H}@uHcGEHEHtHE@|t EEHE@| t E EEfDEEHE@xHMHI Q|ErV}uIuH}IHUH@ H;t*uH}*Hx tErrEE}stEH]UHHd$H]H}HSFHEHcHqDHH-HH9v@DHEHEt HEHuHEHwH]H]UHH$`HhLpLxH}HEHEHUHuH HcHUHE~THuH}#HEHEHE HMIHun|HH=HH5HhHEHcHqRCHH-HH9vBHEHEtKHEHuHEH)LeLmMtBI]H*LH}SHEHtuHhLpLxH]UHHd$H}HDHEtHHEƀH]UHHd$H}HCHhm|HH]UHHd$H}HuHCHEH@H]UHHd$H]LeLmLuL}H}HuHX_CHEHuoHE@HUHE@HUHEDHEDH]LeMt AM<$LHDDE؉EAAmHE@HUHE@HUHEDHEDH]LeMt@M<$L>HDDEЉEAAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHXBHEHunHE@HUHE@HUHEDHEDH]LeMt?M<$LmHDEE؉ƋEAlHE@HUHE@HUHEDHEDH]LeMt[?M<$LHDEEЉƋEAH]LeLmLuL}H]UHHd$H}uHp@HE;Et~HEUHEƀH}MHUHu H3HcHUuH}HH<H}HEHtH]UHHd$H}@uH3@HE:EtHHUEHEHu+HE@PtH}HH=(H]UHHd$H]LeLmH}HuH(?HEHxt)LeLmMt=I]H*L@H]LeLmH]UHHd$H}HuHC?HEHu'HEHHHuHEHH]UHHd$H]LeLmH}HuH(>HEuLHџL HǟL(MtHE@PuXHEuIHEHDLeLmMt;I]HLDHEƀH]LeLmLuH]UHHd$H}H=HEEEH]UHHd$H]LeLmH}H([=LmLeMtG;I$HLEEH]LeLmH]UHHd$H}HLHEHH}HH}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmH}H 2HEHu7HELHELMt/I]H}LH}kOH]LeLmH]UHHd$H}H1HEHuHEHHuHEH]UHHd$H}HuHp31HEHH  HUHujHHcHUuCHEHxHEHH  HEHxHEH:?HEHH HEHtHuH}=H]UHHd$H}uHT0HE;Et-uH}իHEHH(HEH]UHHd$H}H/=P8uHEH`28H]UHHd$H}HuH/HE@PuH} 1t)HEHuH}HHEH]UHH$`HhLpLxLuH}HuH/HELHELMt,I]HLtHEHH;EuEE}u>HELLeHELMtw,I]HLLHUHuHHcHUu)LeLmMt&,I]HL }uAHELIHELMt+I]HLLHEHtHhLpLxLuH]UHHd$H]LeLmLuH}uH0d-HE@0ptt4dDuLeLmMt0+I]HLD(^DuLeLmMt*I]HLD ,HV|HH=HH5HH]LeLmLuH]UHHd$H]LeLmLuH}uH0t,HE@0ptt4dDuLeLmMt@*I]HLD^DuLeLmMt*I]HLD0,HU|HH=/*HH5H(H]LeLmLuH]UHHd$H]LeLmH}uH(+LeLmMtt)I]HLt)HEHxuHEHxu躇 HUEBTH]LeLmH]UHHd$H]LeLmH}uH(*LeLmMt(I]HxLt)HEHxuHEHxuJ HUEBHH]LeLmH]UHHd$H]LeLmH}uH(H*LeLmMt4(I]HLt)HEHxuHEHxuڀ HUEBLH]LeLmH]UHHd$H]LeLmH}uH()LeLmMt'I]H8Lt)HEHxuHEHxuj HUEBPH]LeLmH]UHHd$H]LeLmH}H( )LeLmMt&I]HLt EHEH@ H@8H;EtHEH@ Hx ;EpHEHxuHEH@EPHEH@(x0t HE@TE4HEL`(HELh(MtK&I]HLEEH]LeLmH]UHHd$H]LeLmH}H('LeLmMt%I]H{Lt EHEH@ H@8H;Et EpHEHxuHEH@EPHEH@(x0t HE@HE4HEL`(HELh(Mt8%I]HLEEH]LeLmH]UHHd$H]LeLmH}H(&HE@0htt0\LeLmMt$I]HOLEZLeLmMt}$I]H!LE,HP|HH=HH5HEH]LeLmH]UHHd$H]LeLmH}H(%HE@0htt0\LeLmMt#I]HoLEZLeLmMt#I]HALE,HO|HH=HH5HEH]LeLmH]UHHd$H]LeLmH}H(%LeLmMt#I]HLt EHEH@ H@8H;Et EpHEHxuHEH@EPHEH@(x0t HE@LE4HEL`(HELh(Mth"I]H LEEH]LeLmH]UHHd$H}H$HEHxuHEH@EH}HEEH]UHHd$H]H}H #EHEHHE>fH}?HEHc]Hq!HH-HH9v!]H}uEH]H]UHHd$H]LeLmH}H(#LeLmMt!I]HLt EHEH@ H@8H;EtHEH@ Hx EpHEHxuHEH@EPHEH@(x0t HE@PE4HEL`(HELh(Mt[ I]HLEEH]LeLmH]UHHd$H]LeLmH}H(!HEH@8HEDHEH@8HEH}u1LeLmMtI]HcLtHEH]LeLmH]UHH$HLLH}HuHUHMH@!H}t)LmLeMt#LHLShHEH}t>HUHuNHvHcHxHEHEHUHP HEHUHPDžhDžlDžpDžtHUHhHBHHpHBPHEH}uH}uH}HEHHxHpHPHzHHcHpu%H}uHuH}HEHP`tjHpHtI$HEHLLH]UHHd$H}HuHHEHEH@H;Et HEHEOHEHxu HEHxHuHEH}u"HEHx8uHEHx8HuvHEHEH]UHHd$H]LeLmH}H(HEHxuXHEL`HELhMtI]HVLuHEH@HEHEHx\HEHEHEH]LeLmH]UHHd$H]LeLmH}H(+HEH@8HEDHEH@8HEH}u1LeLmMtI]HLtHEH]LeLmH]UHHd$H]LeLmH}H(HEH@@HEDHEH@@HEH}u1LeLmMtOI]HLtHEH]LeLmH]UHHd$H]H}HuHHEHUHP(HUHEH@HB8HEHxuHEH@HUHP@HUHEHBHEHcXHqHH-HH9vHEXH]H]UHHd$H]H}HuH ?HUHEHB(H}JHEHEHUHP@H}uHEHUHP8 HEHUHPHEHcXHqDHH-HH9vHEXH]H]UHHd$H}HuUH Er.ttttHEH@@HE6HEHE,HE|HH=֊HH5HH}tHEHx(HuUHEHUHP@HUHEH@8HB8HUHEH@(HB(HEHx8uHEH@8HUHP@HUHEHB8H]UHHd$H}HuHUHHEHUHP(HUHEH@8HB8HUHEH@@HB@HEHx8uHEH@8HUHP@HEHx@uHEH@@HUHP8HEH@H;Et HEHUHPHEH@8HEH@@HEH@(H]UHHd$H}HHEH@HEH}t!fDHEH@8HEHEHx8uHEH]UHHd$H]H}H cEHEH@@HEAfDHc]HqHH-HH9v<]HEH@@HEH}uEH]H]UHHd$H]H}HuHHEH@(H;Eu,HC|HH=ӊHH5HHEH@H;EtHUHEH@8HBHEHx8uHEHP8HEH@@HB@HEHx@uHEHP@HEH@8HB8HEH@@HEH@8HEH@(HEHcXHqZHH-HH9vHEXH]H]UHHd$H}HuHHEHpHH}H]UHHd$H}HuHcH}u+HEHpH}HEHp8H}H}H]UHHd$H}HuHHUHEHB H]UHHd$H}HuHHUHEHB(H]UHHd$H}HuHUHH]UHHd$H]H}HsHEHcX4HqHH-HH9vcHEX4H]H]UHHd$H]H}HHEHcX4Hq`HH-HH9vHEX4HEx4| H=@|pHEx4tHE@0u H}H]H]UHHd$H]LeLmH}HuHUHXcHEHx8HuHEH}uLeLmMt.I]HLELeLmMtI]HLELeLmMtI]HzLELeLmMtI]HNLEEEЋEĉEԋEȉE؋ẺEHUHEHHEHB/EEEEHUHEHHEHBH]LeLmH]UHHd$H}HuHUH HEHEH]UHHd$H}HuUHMH H]UHHd$H}HuHH]UHHd$H}HuHUH_H]UHHd$H}HuHUHMLEH('H]UHHd$H]LeLmLuH}HuHUMLEHpH}tZHEH@8HEHEL` HELh MtI]H[LHEHUHEHEHEHEHEHx8HuHEH}t HEH@8HELeLmMtGI]HLELeLmMtI]HLELeLmMtI]HLELeLmMtI]HgLEEEEEċEEȋEEHEH@8HxucEWttM6Hc]HH?HHHH-HH9vD]Hc]HH?HHHH-HH9v]HcEHc]Hq9HH-HH9v]Hc]HH?HHHH-HH9v]eHc]HH?HHHH-HH9vs]HcEHc]HqHH-HH9vA]HELp H]HEL` Mt M,$LHLAHEHcEHc]Hq-HH-HH9v ]HcEHc]Hq HH-HH9v ]HUHEHHEHBH]LeLmLuH]UHHd$H}HuH3H]UHHd$H}HuHH]UHHd$H}HuHH]UHHd$H}@uHH]UHHd$H}HwHEx4 HEH0HE`0H]UHH$HLLH}HuHUHH}t)LmLeMt LHLShHEH}tJHUHu"HJHcHUHEHEHx(tHUH#HB(HuH}ZHUH}HuHE@HEHx(HMHUHHUHB8HEH}uH}uH}HEHHEHpHhH(BHjHcH u%H}uHuH}HEHP`<2H HtHEHLLH]UHHd$H]LeLmH}HuH(7 H})LeLmMt I]HLHEHp8H}4H}HH}uH}uH}HEHPpH]LeLmH]UHHd$H}HuH H]UHHd$H}HuH}GHZ H}AGH]UHHd$H}H' 肭HEHEH]UHHd$H}HuH H}t% H}H]UHHd$H]LeLmLuH}H0 LuH<L H2L(MtI]H'LLtHH!HH!HEHEH]LeLmLuH]UHHd$H]LeLmLuL}H}HuH8 D}DuHHHvL MtI$ILhHDDAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HHS HExtuHEH@HEHњHHEAAhHL MtM,$LDEH}HMAt HE@HE@EEH]LeLmLuL}H]UHHd$H}HHP H@`EEH]UHHd$H}HGH H@dEEH]UHHd$H}@uHH HUP`H]UHHd$H}uHH HUPdH]UHHd$H]LeLmH}H({HD L(H: L Mt[I$HLEEH]LeLmH]UHH$HLLLH}HuHUHH}t)LmLeMtLHeLShHEH}tZHUHuHHcHUHEHUH}H"LuA LmMt>I]HDLHH}d(^H}dbH}@NH}d0HEH}uH}uH}HEHPHEHpHhH(H#HcH u%H}uHuH}HEHP`H HtHEHLLLH]UHHd$H]LeLmLuL}H}HuHUHMLEDMHXH=tSHeL8IHHHIMtML7HLLAH@HuHUH=1L}tH=X}t H=H]LeLmLuL}H]UHH$HLLH}HuHUHH}t)LmLeMtLH\LShHEH}tHUHuH HcHUu?HEHUHEHBHEH}uH}uH}HEHHEHpHhH(fH莭HcH u%H}uHuH}HEHP``VH Ht5HEHLLH]UHH$HLLLLH}HuHUHFH}t)LmLeMt)LHοLShHEH}t)HUHuTH|HcHU~HEL}LuHLeMtM,$LZHLLAHE@1HE@0HEH}uH}uH}HEHHEHpHhH(H轫HcH u%H}uHuH}HEHP`H Htd?HEHLLLLH]UHHd$H]LeLmLuL}H}HuUMHPyHEHxuLHEHPHUD}DuLmHEHXHt@L#LLDDH}A$HH]LeLmLuL}H]UHHd$H}HHEHEH]UHHd$H}@uUMH(}ufEfEEH]UHHd$H]LeLmH}H [LeLmMtGI]HLHu4LeLmMtI]H軼LHHH]LeLmH]UHHd$H]LeLmH}H LeLmMtI]HKLHu4LeLmMtwI]HLHHWH]LeLmH]UHH$HLLH}HuHUHH}t)LmLeMtLH茻LShHEH}tHUHuH:HcHUuOHEHUH}HsHE@0HEH}uH}uH}HEHHEHpHhH(H讧HcH u%H}uHuH}HEHP` vH HtU0HEHLLH]UHHd$H}@uUMH(}uHEH@f`fEfEEH]UHHd$H]LeLmH}H(;HELhHEL`MtI$HùLHEHEH]LeLmH]UHH$HLLH}HuHUHH}t)LmLeMtLHHfHcHUu6&L$HEHEHEHEuVL[$u ILMMtwM,$LHLAU`HEHtHtmHEHEHEH`LhLpLxL}H]UHHd$H}HHEH}HHEHEH]UHHd$H}uHEH}%HEHEH]UHHd$H}HwHHEHEH]UHHd$H}HGHEHHEH}u H}e H]UHHd$H}uUMH@EHEHHEH}uHE;Eu'HE;EuHE;EuHEUEHcHH!HH!H EHcH HH!HH!H HEHHEHHEHEHHEH}M̋UHuH}EH]UHHd$H}HHEHHEH}u H}H]UHH$HLLH}HuHUHH}t)LmLeMtgLH LShHEH}t)HUHu蒳H躑HcHU~HEHUH}HHH!HH!HEHHUHOHHEH}uH}uH}HEH(HEHpHhH(ӲHHcH u%H}uHuH}HEHP`͵XõH Ht袸}HEHLLH]UHHd$H]LeLmLuL}H}HuUMHhHEHHUHEHUHEHUHELx`LuH]HEL``MtcLILHLLEAEAEЉAEHUE܈}u2MUHuH}IH}HFH8JEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuUMHhH}HHE܀}tMUHuH}gEHEHH;EuHEHH;u H}HUHEHHEHP`HUЋEHEȋEHELuLmHEL``MtMLxALLEEAH}A(E܀}uUUHcHH!HH!H ыEHcH HH!HH!H HEHEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUHPHE耸uXHEHP`HUD}DuLmHEHX`HtILWLDDH}A$uEE}uUUHcHH!HH!H ыEHcH HH!HH!H HEHEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H8HEuHUHHEHELx`LuAHEHX`HtIL4DLLHUA$ HEHHHH!HH!HEHH]LeLmLuL}H]UHHd$H]LeLmLuH}H0HEE}tkH}HELh`LeHEHX`HtILLLLAHEƀH}{H}AH8EEH]LeLmLuH]UHHd$H}H'HEHHEHEH]UHHd$H}HHEHHEHEH]UHHd$H]LeLmLuL}H}H8HEuNHEHP`HUL}AIHEHX`HtVILLDLH}A$ H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HHHEutHEHUHEHUHEHP`HULuAHHEL``MtML/HELH}EEAA(H]LeLmLuL}H]UHHd$H}H'HEH$v H]UHHd$H}HuUMDEDMH`ED$HEHx$H}聎DMDEЋM؋UHuH}V%H]UHHd$H}HuUMDEDMH`uED$HEHx$H}DMDEЋM؋UHuH}V%H]UHHd$H}HuUHMH0 HEHHEHxHuUH} %H]UHHd$H]LeLmLuH}uH0HE@;Et9HUEBLuLeMttM,$L@LAH]LeLmLuH]UHHd$H}H'HEHxPtHExEHEH@PHU@;BEEH]UHHd$H}HHEHxPtHExEHEH@PHU@ ;BEEH]UHHd$H]LeLmH}H([HEHx(u6HEL`(HELh(Mt2I]H֘L@EEEH]LeLmH]UHHd$H}HHEHxPtHEx4EHEH@PHU;B4EEH]UHHd$H}HHEHxPtHExHEHEH@PHU@;BHEEH]UHHd$H}H'HEHxPtHExLEHEH@PHU@;BLEEH]UHHd$H]LeLmLuH}uH0HE@;Et9HUEBLuLeMtM,$L(@LAH]LeLmLuH]UHHd$H]LeLmLuH}uH0$HE@ ;Et9HUEB LuLeMtM,$L蘖@LAH]LeLmLuH]UHHd$H]LeLmLuH}uH0HE@$;Et9HUEB$LuLeMtdM,$L@LAH]LeLmLuH]UHHd$H]LeLmLuH}uH0HE@0;EtwHUEB0HEHx(u1HEL`(HELh(MtI]HbLLuLeMtM,$L7@LAH]LeLmLuH]UHHd$H]LeLmLuH}uH04HE@4;Et9HUEB4LuLeMtM,$L訔@LAH]LeLmLuH]UHHd$H]LeLmLuH}uH0HE@H;Et9HUEBHLuLeMttM,$L@LAH]LeLmLuH]UHHd$H}uUH!Ett t1t8uH}*uH}/uH}uH}H]UHHd$H]LeLmLuH}uH0HE@L;Et9HUEBLLuLeMtdM,$L@LAH]LeLmLuH]UHH$HLLH}HuHUHMHH}t)LmLeMtLHxLShHEH}tpHUHuH&HcHxHEHUHEHB(HEHUHPPH}uEHUHEB4HUHE@BHHUHE@BLHUHE@ BHUHE@BHE@ HE@$H}HHEH}uH}uH}HEHPHxHpH`H H ~HcHu%H}uHuH}HEHP`}HHtǥ袥HEHLLH]UHHd$H]LeLmLuH}HuH8HEH=@H调uHEHEHuH}BuHUHE@BHUHE@BHUHE@4B4HUHE@HBHHUHE@LBLHUHE@0B0HUHE@ B HUHE@$B$LuALmMt0I]HԏDL HuH}9H]LeLmLuH]UHHd$H]LeLmLuH}HuH0LuH]LeMtM,$LOHLAH]LeLmLuH]UHHd$H]LeLmLuH}EMHP=EEHEHpHUEHHEHp0HUEHHEHp4HUEHHEHpLHUEHHEHpHHUEHHEHpHUEH}u }unHEHx(u1HEL`(HELh(MtcI]HLDuLeLmMt6I]HڍLDH]LeLmLuH]UHHd$H]H}HuEHUH8HE8uH}tEIHEH@(HtE/HEH@(HH;EtHE@;EtEEEH]UHHd$H]LeLmLuH}H(gHEx0tHEHx uHEHP(HE@B|rHEH@(@xttu:HELp(AHELh(MtI]H\DLHE@H HEH@(Ӌ@|!؉HELp(HELh(Mt臜MeL+\LA$H]LeLmLuH]UHH$ H(L0L8L@H}HuHHEHEHUHhLjHtHHcH`vLeLmMt辛I]Hb[LHEHuH=LeNu0HEHEHEHH}E@E܉E/Hc]Hq詛HH-HH9vL]HcEHUHtHRH9~8LeHcEHH9vHc]HH}A|;uE;E#HcMHcEH)qHcUHuH}WE܉E6Hc]HqHH-HH9v茚]ċE;E|8LeHcEHH9vcHc]HH}A|.uE;EtDHEH@ HHH{HPHEHXHHH}йHLuLeLmMt这I]HcYLLPHc]HqHH-HH9v蛙]HcEHUHtHRH9jH}>H}5H`HtTlH(L0L8L@H]UHH$HLLH}HuHUHԚH}t)LmLeMt跘LH\XLShHEH}tHUHufH EHcHUuZHEHUH}H3HE@`HE@dHEH}uH}uH}HEHiHEHpHhH(KfHsDHcH u%H}uHuH}HEHP`Eij;iH HtlkHEHLLH]UHHd$H]LeLmLuL}H}HuHH?HExPtHEHxXu}HELp HELhXHEHXXHtL#LVLLA$IHELhXHEL`XMtĖI$HhVLLHUBPDHELp(HELhHEHXHtL#L$VLLA$HUBPHUHB@HEHEPPHUHELxXHEHXLuLeMt$I$ILULHLELEAHH]LeLmLuL}H]UHHd$H}HuH×H]UHHd$H}H藗EEH]UHH$HLLH}HuHUHDH}t)LmLeMt'LHTLShHEH}tHUHuRcHzAHcHUuCHEH}HMHEH}uH}uH}HEH'fHEHpHhH(bH@HcH u%H}uHuH}HEHP`eWgeH Hth|hHEHLLH]UHHd$H}HוH]UHHd$H}H跕H]UHHd$H}HuH蓕EEH]UHHd$H]LeLmLuL}H}HuH@OHEHPXHUHEDxPHELpLmH]HtHILRLLDHMA$ H]LeLmLuL}H]UHHd$H}HuHÔH]UHHd$H}HuHUH菔H]UHHd$H}HgEEH]UHHd$H}HuH3EHEH=,7HDu;HuH=7EHuHuH=6DHH;EEEH]UHHd$H}HuUH谓ˡH]UHHd$H}HuUH耓蛡H]UHHd$H}HuHSnH]UHHd$H}uUMH 9H]UHHd$H}؉uUMDEH(H]UHHd$H}؉uUMDEH(躒ՠH]UHHd$H}H藒負H]UHHd$H}HuHc~H]UHHd$H}HuUH0KH]UHHd$H}HuUMDEH(H]UHHd$H}HuHÑޟH]UHHd$H}@uH蓑讟H]UHHd$H}HuUMDEH0YtH]UHHd$H}HuHUH:H]UHHd$H}HuUHMH H]UHHd$H}HuHÐޞH]UHHd$H}HuHUMLEH(舐裞H]UHHd$H}HuHSnH]UHHd$H}@uH#>H]UHHd$H}HuHH]UHHd$H}HuHÏޝH]UHHd$H}HuH蓏讝H]UHHd$H}HuHc~H]UHHd$H}@uH3NH]UHHd$H}HuUHH]UHHd$H]LeLmLuL}H(ǎHH=~HEHjHHh{H9HIIHQHL%GMtkLIL LHLLAHHH=HH5NiH]LeLmLuL}H]UHHHɐHH=H5H=ҀH]UHHd$H]Hh觍HHq"HUHuYH8HcHUuM=t  HcHq詋HH-HH9vL֍\H=*q"HEHt'^H]H]UHHd$H}uH(ԌHEHH!EuH5b|HEuH5b|H}EuH5b|HcEuH5 c|HIH"c|HEHEHHEH,c|HEHuH}H?H]UHHd$H}HuHHEH@H8u$HEH@H0HEHxHb|OHEH@H0HEHxHU.H]UHH$HLLL H}H}HLHUHuWH5HcHUIHEuL%>uMtMLHHLAxHEHpH0.WHV5HcH(u=LuLeLmMt蠈I]HDHLLH}迳HEZH}BH(Ht|[YH}>HEHt`[HEHLLL H]UHH$HLLLLH}HuHʉHDžHUHu VH54HcHU1IHp1L%i1MtuMLGHLAxHEHhH(UH3HcH H}wRHuHLL}H]LeMtM,$LFHLLA8LuL}H]LeMt譆M,$LQFHLLAH}hHEXH}AH HtYWHDHEHtfYHEHLLLLH]UHH$HLLLLH}HuHʇHDžHUHu TH52HcHU1IHqL%qMtuMLEHLAxHEHhH(SH1HcH H}wRHuHLL}H]LeMtM,$LDHLLA8LuL}H]LeMt譄M,$LQDHLLAH}ȯHEVH}?H HtWUHDHEHtfWHEHLLLLH]UHH$HLLLLH}HuHʅHDžHUHu RH50HcHU1IH 4L%4MtuMLCHLAxHEHhH(QH/HcH H}wRHuHLL}H]LeMtM,$LBHLLA8LuL}H]LeMt譂M,$LQBHLLAH}rHETH}=H HtUSHDHEHtfUHEHLLLLH]UHH$HLLLH}HuHуHEH}t;HEH@ HxTHEH}tHuH}@tLmIH]HteIL ALLAxHEHUHuOH-HcHUu0LuLeLmMt I]H@LLRHEHtfHhH(.OHV-HcH uH}?;HE2RS(RH HtUTHEHLLLH]UHHd$H}H7HEH5&HHEHEH]UHHd$H}HuHHEHHH=ǎHHEHUHuNHA,HcHUuHuH}HE QH}:HEHtRHEH]UHHd$H}HWHEH5&HHEHEH]UHHd$H}HuHHEHH=HHEHUHu@MHh+HcHUuHuH}HEGPH}>9HEHtQHEH]UHHd$H]LeLmLuH}H8gHEH5%H$HEHuH=-(1u HEHEwIH(L%(Mt ~ML=HLAxHELuH]LeMt}M,$L|=HLAH}F8HEH]LeLmLuH]UHHd$H]LeLmLuH}H8gHEH5$HDHEHuH=-'0u HEHEwIH'L%'Mt }MLgHUH} HH]HH=vf]EHcUHqfHUH} HH]HH=vf]EHcUHqfHUH} HH]HH=v>f]Uu}EEH]H]UHHd$}HgE%EEH]UHHd$H]LeLmH}HuH(gLmLeMteI$H'%LH]LeLmH]UHHd$H}H7gHEHxuHEHx HuHEPH]UHHd$H}HfHEHx(uHEHx0HuHEP(H]UHHd$H}HfH]UHHd$H}HfH]UHH$HLL H}HuHXfH}t)LmLeMt;dLH#LShHEH}tHUHuf2HHcHUuCHEH}HHEH}uH}uH}HEH;5HEHpHpH01HHcH(u%H}uHuH}HEHP`4k64H(Ht77HEHLL H]UHHd$H}HdH]UHHd$H]LeLmLuL}H}HuHhdHH$HUHHpHUHEHUHHHHUILuH;|HLeMthbI$IL "HLLHMLELMAH]LeLmLuL}H]UHHd$H]LeLmLuH}H0cHEH@HxufHEH@HpH={/uHHEH@LpHEL`HELhMtaI]HD!LLE7HEL`HELhMtdaI]H!LEEH]LeLmLuH]UHHd$H}HcHEHEH]UHHd$H}HbHE HEH]UHHd$H]LeLmH}HuH(bH}t+LeLmMt`I]H. L HuH}IH]LeLmH]UHHd$H}HuH3bHE@HEHx uHEHx(HuHEP H]UHHd$H}HuU؈MDELMHhaHE HEHx0u~HcHq.8HH-HH9v7}EE؃E؋uH}HEHEH8HuurHEHxubLeЃ}u8HEH0H}HC|vHEH0H}H|vUHuH} HEHH0HDž( IT$I4$H |H H@HDž8 HEHPHDžH HEH`HDžX H(H}HH5|OHEHHPHDžH HEH`HDžX HHH}HH5||OLcmIq}6LH-HH9v 6Dm;]~R}mHӾH@H@HDž8 HEHHPHDžH HEHH`HDžX H8H}HH5|NH \sH}SsHhHtrHLLH]UHHd$H}uH7EH}yHEHEH]UHH$HLL H}HuH6H}t)LmLeMt4LH@LShHEH}tfHUHuHHcHUHEH}H{ͯHH}Hޑ*谯HH}HB H=|1RHH}HH=|RHH}HHEH}uH}uH}HEHHEHpHpH0HHcH(u%H}uHuH}HEHP`OH(HttHEHLL H]UHHd$H]H}H 4H}*yHcHq3HH-HH9v2}7EEEuH}CHEH}G;]~H}}H]H]UHHd$H}uH$4EH}HEH}GuH}}H]UHHd$H}HuHUH 3H}t0H(GHEHEHUHHUHPHuH}d|H]UHHd$H]H}HuH0_3H}wHcHq1HH-HH9vI1}P]EEfDEEuH}HEHEH@H;Et HEHHE}~HEHEH]H]UHHd$H]H}HuH 2H}vHcHq0HH-HH9vy0}P]EEfDEEuH}HHuHlu uH}}~H]H]UHHd$H1H=6t(=2tHH=>+H>H5H5HEHEH]UHHd$H{1H=5t(=(2tHH=+H^Hg5H`5HEHEH]UHHd$H]H}HuH 1HEHUHuRHzHcHUu,H}H/mHHUHMHuH#>H}lHEHtH]H]UHH$HLH}HuH0O0ZHEH}tHcHq.HH-HH9v0.}{]EEfEEH}HHuH}L HLHH{tHuUH}}~H}HkHLH]UHHd$H]H}HuHLLHMHUHHHA HQ(HMHUHHHA0HQ8HEHxHEHUHPLuLeLmMt#I]HLLE}t H}{HEHtHPLXL`LhLpH]UHH$ H}HuH$HEHUHuHHcHUHuH}/uH}HHyHU HH=IEHEHhH(`HHcH u)H}uHUHuH} HuH}LH}CH Ht-H}_HEHtH]UHHd$H]LeLmLuH}HuHUH@O#HEH}HߊHEHEHxHEHUHPHEHHHUHHHA HQ(LuH]LeMt M,$LHLAH]LeLmLuH]UHH$@HHLPLXL`LhH}HuHUHMHb"LmIH]HtG ILLLAxHEEHUHxrHHcHpuVHUHMHHHB0HJ8LuH]L}LeMtM,$LjLHLAE1}t H} HpHtHEHxHUHEHBHEHHHUHHHA HQ(LuH]LeMt0M,$LHLAHHLPLXL`LhH]UHHd$H}HuHx HEHHH=-HyHEHUHuHHcHUuHEH@ HPHuH}@H}HEHtdH]UHHd$H]H}HuH  HHuHHEH}t0HWHPHH= HH5HHUHuH}}H]H]UHH$HH}HuHUHrHEHDžhHUHuHHcHx H}uHuH}H !P@3HuHhoHhHpH}HpH P@H}u2H]HH}vk;.tH}HHtHUHH=? HEHPHHHcHpuHUHuH}H}HpHtJHh ZH}ZHxHtHH]UHHd$H]LeLmLuH}HuH0HEHxu8HELpLeHELhMtI]H:LLH]LeLmLuH]UHH$HLLLLH}HuHUH(HDžHUHpVH~HcHhlHEHxtZH}u.LeMtI$HUHHu HEH}tHEHpH}Iu=HELpLeHELhMtSI]HLLHEHpH=?uH}H5&YuHEH@HEHEAHH=9 HEHPH H5HcH8LmLeMtLH$LIILMMtOMLHLAHELeLmMtI]HL@IH]ALeMtM,$LDHLAhLuH]L}LeMtM,$L\LHLA HUHuH}軓LuLeLmMtsI]HLL0H}H}HHtSHEL`MtI$HLHELhMtMeLLHA$HHPHDžH HEH`HDžX HHIH}{HH=ԉ"HH5JHHOUHhHtnHLLLLH]UHHd$H]LeH}HuHUH(LeMtI$HHHu=HHuH}H]LeH]UHHd$H}HuHHEH}HH]UHH$HLLLLH}uHUH('HDžXHUHxgHHcHpHuH=]HEH}tgHuHX01HXHhHDž` H`HHPIHH=HH5HLuILeMtNLHLLxHEEH@HwHHcHhuTHMHUHHHA0HQ8Lu]L}LeMtM,$LpLLAE8}t H}'HhHtHEHx HEHUHPHEHHHUHHHA HQ(LuLeLmMt7I]HLLHXQHpHtHLLLLH]UHHd$H]LeLmLuH}HuH0HEHxu8HELpLeHELhMtvI]HLLH]LeLmLuH]UHHd$H]H}HuH HHuHHEEH]H]UHHd$H]LeLmLuL}H}HuH8H}tHEHHHuH=s^uHEHpH}HuH=2uHuH}`HuH= u=H}IL}LMMtM,$LHLA HuH}H]LeLmLuL}H]UHHd$H]H}HuHUHMH(HHMHUHuHH]H]UHHd$H]H}HuHUH [HHUHuHSH]H]UHHd$H}HuHH=;uHEH=,HH= uHuH=(H]UHHd$H}HHEHHH]UHH$PHXH}HuUHcHEHDžpHUHuHƼHcHxHuH}wNH}uOH]HH}^;.t4HMHtHIHuHHp`HpH}NHHuHkHEH}t\}uTHEHhHDž` H`H–HPIHH=YHH5HHp!MH}MHxHt7HEHXH]UHHd$H}HuHHEHx uHEHx(HuHEP H]UHHd$H}HuU؈MDELMHhHE HEHx0uL}IIH]HtXL#LLLLA$HUHE@TBTHUHE@PBPHUHE@]B]HEHUH@`H;B`uWH}HEHx`%H]HtL+LzH]HtL#L_LA$PILmLeMtI$H1LLusHUHEH@`HB`HEHx`/HExXHExX9LuAH]Ht L#LŷDLA$H}n&UH]HtL+L获H]HtL#LsLA$PIIMLHtILALLA$HUHB`HEHx`NLmH]HtZL#LLA$@HELmLeMt,I$HжL@HEH}ufH}u]LeAD$=v A\$AD$=vAT$L#LDHLLA$`LmL}LuH]HtL#L褳LLLA$nH}eHEHtHExXt1LuLmH]HtL#LHLLA$ HuH}諒HLLLLH]UHH$0H8L@LHLPLXH}HuH HEHuHxHHLtbHDžpHDžhHpHhHxHxHh观HEL`HELhMt{I]HLu{HEL`HELhMtAI]HL IHELpHpHEL`MtM,$L誱HLLAdLHELpHpIHEL`MtM,$L\LHLAddt Hp菁H8L@LHLPLXH]UHHd$H]LeLmLuH}@uH0#HExXt;LuALmMtI]H褰DLHUEB\DHEx\u8}t0Hq{HPHH=ÑHH5HHEHcXXHqHH-HH9vHEXXH]LeLmLuH]UHHd$H]LeLmLuL}H}H0LeLmMtI]H裯LuH}FL}ALeMtI$ILXDLAHExXt0LuLeLmMtuI]HLLH]LeLmLuL}H]UHH$`H`LhLpLxL}H}HLeLmMtI]H葮LuLmLeMtI$H]L@HEH}t_HELeLmMtvI]HLu HExTtH}@3~tEEH}MHUHuqtHH5W{HoLeLmMtI]H菭L0E}|ELeLmMtI]HTLE}|EHEx t EEHEx'uMHEx)uMMUuH}LuLeLmMt#I]HǬLLHE}uLeLmMtI]H茬LubLeLmMtI]H]L0IH]L}LeMtM,$L-LHLA8L}LuH]LeMtOM,$LHLLAH`LhLpLxL}H]UHHd$H]LeLmH}HuH0HH;EuQLeMtI$H\LmMtMeL@HA$PH;EtEEEH]LeLmH]UHH$ H`LhLpLxL}H}HuHUHMHLeLmMtI]H蕪L0t1LeLmMtI]HfLtLmLeMtI$H2LXLeLmMteI]H LtJLeLmMt1I]HթL(u/LeLmMtI]H覩L0HEHEH}AILMMtI$IL\HDAHELmLeMtI$H+LLuLeMtYM,$LLAHED$0D$(D$$HEHD$ H]=vD$8LmLeMtI$H腨LD$LmLeMtI$HXL0D$Hc]HcEH)qHH-HH9vLceHcEI)qLH-HH9v]DUuLMH}A/LmLeMtI$H货LH`LhLpLxL}H]UHHd$H]LeLmLuH}@uH0HExXt0H`rHPHH=fɪHH5HǷHEHcXXHqHH-HH9vWHEXXHExXHEx\tiH}LeLmMtI]H藦Lu1LeLmMtI]HhLxHv}t H}LuLeLmMt~I]H"LLH]LeLmLuH]UHH$HLLLL H}HuH H}t)LmLeMtLH蒥LShHEH}tHUHuH@HcHUHEH}HLeMtyI$HLmMt]MeLHA$PIILMMt*MLϤHLAHUHB`HEHx`HE@P HEH}uH}uH}HEHRHEHpHpH0H%HcH(u%H}uHuH}HEHP`肷H(Ht̸觸HEHLLLL H]UHHd$H]LeLmH}HuH(H})LeLmMtI]HnLH}lHEHx`HEH@`HEHxHH}H&H}uH}uH}HEHPpH]LeLmH]UHHd$H}H'HEHxHu HEHxHMVH]UHHd$H}HHEHxHt H}!HEH@HHEHEH]UHHd$H}HHEHxHudHUHH=ؑaPHUHBHHEH@HHMHfHHHEHPHHMHHHHH]UHHd$H]LeLmLuH}H(LuHLeMtM,$LpHLAH]LeLmLuH]UHH$HLLLLH}HuHUHMH0BHEHUHuHhH t,HҾ{HH=WHH5HUHDž`HDžXH@H'HOHcHHXH`Hht,H{HH=^HH5H述LXL`H]LeMt=M,$LHLLAHDž`HDžX薱Hh:xH`u H`oHXu HXoHHtٲHLLLLH]UHH$@HHLPLXL`LhH}HuHJHEHEHEHUHu耭H訋HcHxAHH=0#VHELuLmH]HtL#LlLLA$PHEHpL}LuAH]HtL#L-DLLHpA$`LuLmL}H]HtIL#LLLLA$HEHE訯H}蟘H}u H} nH}u H}mHxHtHHLPLXL`LhH]UHHd$H}uHEH}H]UHHd$H]LeLmLuH}uH0THE@P;EtHEUPP} t HE@T HE@TLeLmMtI]H褜LuH}H0LuLeLmMtI]H_LLH]LeLmLuH]UHHd$H}HuHcHExX&HEH@HH;Et H} HuH}{H]UHHd$H}HuHHEHEH]UHHd$H]LeLmLuH}HuH0HExX/LuLeMtM,$LC@LAH]LeLmLuH]UHHd$H]LeLmLuL}H}HuH8?LmLeMt+I$HϚLHLuLeMtM,$L裚LAH)q?HHH9vALuH]LeMtI$ILNHLDAH]LeLmLuL}H]UHH$@HHLPLXL`LhH}HuUH'HE@HLuLeMtM,$L覙@LALmLeMtI$HyL}tH}@$HEHUHxHHcHpHH="}HE]LuLmMtBMeLLHA$LeLmMtI]H踘LHE؋UHuH}LuILmMtI]HtLLE=vDuL}H]LeMtM,$L1HLDALeLmMt]I]HLHEЋEH;EpHEH]HqLuLmMtMeL贗LHA$LuLeLmMtI]H肗LLHEH@`HUHP HE9H}0HpHt诪H}@HHLPLXL`LhH]UHHd$H]LeLmH}HuH0'LmLeMtI$H跖L@HEH}t H}oH}HuHHH]LeLmH]UHH$pH}uHHpH}H;E=vuHp HEHEH]UHHd$H}HGHExP tH}"E HE@PEEH]UHHd$H]LeLmLuH}HuH8LeMtI$HwH]HEHH9iLeMtI$HAH]HUH‚H9t7LeMtkI$HH]HEH`H9tLeLmMt2I]H֔LHLpLeLmMtI]H袔LLPHLpLeLmMtI]HkLLP HuH}耂H]LeLmLuH]UHHd$H]LeLmH}H0[LeLmMtGI]HL(uEWLeLmMtI]H趓LHHEH}uHE8uHEx'wEEEH]LeLmH]UHHd$H]LeLmH}H0LmLeMtwI$HLHHEH}t HE8t EH]C=vNCEEH]LeLmH]UHHd$H}HHEH@`HxEEH]UHHd$H}HuHHEHH}ÁH]UHHd$H]LeLmLuL}H}HuHP_H]LeMtKM,$LHAEL}LmLuH]HtHIL賑LLLMA$`LmLuL}H]HtHILuLLLA$H]LeLmLuL}H]UHHd$H]LeLmLuH}H(gHEH@`Hx t@LuLeMt>M,$L@LAHEH@`Hx 脊H]LeLmLuH]UHHd$H]LeLmLuH}HuHUH@LeMtI$HSH]HEH|zH9iLeMtyI$HH]HEH}H9t7LeMtGI$HH]HUH<H9tfHzHpH}ntHzHpH}Tt2LuLeLmMtI]HzLLHUHuH}vH]LeLmLuH]UHH$`HhLpLxH}HuUHUHE@HHUHu蔝H{HcHULeLmMt I]H譎LHE8tLeLmMtI]HtL@HEHEHUH@HH;BHtHEH@HHEH@PHEHUH@XH;BXtHEH@XHEH@`HEHUH@hH;BhtHEH@hHEH@pH}jfH}HuHH}ueHUHEH@PHBPHUHEH@HHBHHUHEH@`HB`HUHEH@XHBXHUHEH@pHBpHUHEH@hHBhqHUHEH@PHBPHEHxPwRHEHpPHEHxHhHEHXHHEL`HLmIEPHH9vlIUPLH}p HEH@HHUHEH@`HB`HEHx`wRHEHp`HEHxXHEHXXHEL`XLmIU`HH9vIU`LHp HEH@XHUHEH@pHBpHEHxpwRHEHppHEHxhrHEHXhHEL`hLmIEpHH9vvIUpLHo HEH@hĝH}@XHEHtHt4HEHhLpLxH]UHHd$H]LeLmLuH}HuH@HEHHEH@`Hx tHNHEH@`Lp HHEH@`L` MtsM,$LHLAHEH@`Lh HEH@`L` Mt6I$HڊLHEHuH=}ueLeLmMtI]H藊LHH]q0LuLmMtMeL`LHA$HEH@`Hp HUH}蹓HEHEH;EuH!H]LeLmLuH]UHHd$H}H7HSH@HH=NHfHH5HdH]UHHd$H]LeLmLuL}H}HuH8LeLmMtI]HOLubLeLmMt|I]H L0IL}H]LeMtLM,$LHLLA;LuH]ILeMtM,$L賈LHLAH]LeLmLuL}H]UHHd$H]LeLmLuH}HuH0HEH@`H@H;EtH}ALuLeMtkM,$L@LAHEHP`HEHBHExXt0LuLeLmMtI]H‡LLH]LeLmLuH]UHHd$H]LeLmLuL}H}HuH8LeLmMtI]HOLubLeLmMt|I]H L IL}H]LeMtLM,$LHLLA;LuH]ILeMtM,$L賆LHLAH]LeLmLuL}H]UHHd$H]LeLmLuH}@uH0LeLmMtI]H3L(:Et;HUEB]LuH]LeMtOM,$LHLAH]LeLmLuH]UHHd$H}uHHE@T;Et6HEUPT}tH} TH}9H}>H]UHHd$H]LeLmLuH}@uH8LmLeMtoI$HL(EE:Et1DuH]LeMt3M,$LׄHDAH]LeLmLuH]UHHd$H]LeLmH}H(LmLeMtI$HkLXH}iLmLeMtI$H9LxHEHEH]LeLmH]UHHd$H]LeLmH}H(;LmLeMt'I$H˃LhH}LmLeMtI$H虃LHEHEH]LeLmH]UHHd$H]LeLmH}H(LmLeMtI$H+LpH})LmLeMtUI$HLHEHEH]LeLmH]UHH$pHpLxLmLuH}HHExX0HMHPHH=HH5HHEH@`Hx uHH=K{HEHUHuАHnHcHUuHLuLeLmMtEI]HLLHEH@`HUHP HE蠓H}|HEHtHpLxLmLuH]UHHd$H]LeLmLuL}H}HHHH=A8HEH]LeMtfM,$L HA0HEH]LeMt8M,$L܀HA IL}HELeMtI$IL螀ًEALLHUAXHEH]LeLmLuL}H]UHH$0H0L8L@LHLPH}uHkH]LeMtWM,$LHA0gH]LeMt#M,$LHAt7}t,HExTtHExPt } tH}H AHH=ޣ6HEHUHxH lHcHpH]LeMtSM,$L~HA HEH]LeMt%M,$L~HAu3LmH]HtL#L~LA$0HEuLeLmMt¾I]Hf~LALmH]Ht薾L#L;~LA$0IDAHEHEHhHEH`LuALeMt,M,$L}ELH`HhAXH]LeMtM,$L}HAt H}MHE} t{HExTt(HExP uHExPJTHEEHEHcX8HqͽHHHH9voH}/LHE}1JzTHEHuH}?LuLmL}ƅXH]HtL#L|XLLLA$`HuH}H}LGH}>wHpHt轏H0L8L@LHLPH]UHHd$H]LeLmH}H(KHELh`HEL``Mt/I$H{LEEH]LeLmH]UHHd$H]LeLmH}H(۽LmLeMtǻI$Hk{L`HEH@`H@HEHEH]LeLmH]UHHd$H]LeLmH}H0[LmLeMtGI$HzLHHEH}t HE8t EH]C=vCEEH]LeLmH]UHHd$H}HǼHE@]EEH]UHHd$H}H藼HhHEHEH]UHHd$H]LeLmH}HuHUH8SLmLeMt?I$HyLHHEH}t HE8tHEHE8H]C=v HUCH]C=vHUCH]LeLmH]UHH$@HHLPLXL`LhH}HuHjL}LuLeMtMI$ILxLLAEEԋEԉE}}HHEHEH}t8LeMtI$HxH]H]HuHxuLE=v׸D}LuH]LeMt蛸M,$L?xHLDALmIH]Ht_ILxLLAxHE؋E=vTD}LuH]LeMtI$ILwHLDAHUHpDHldHcHUȅu0LuLeLmMt蹷I]H]wLL,H}#rHEHt襊HHLPLXL`LhH]UHHd$H]LeLmLuL}H}HX#HELhHEL`MtI$HvLHEHELxLuHEL`MtɶI$ILjvLLAHELpH]HEL`Mt苶M,$L/vHLA}Bt}MtHC`HEH$HEHEHEHEH;EtHHuH} _HÄuHiHEH8HEHEHEHEH;EtHHuH}^HÄuHMfHExHHEHEHEHEH;EtHHuH}e^HÄu HHE(HEHxo*u HbHEHEHEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@߶HEHHEH@`Hx tHHEH@`Lh HEH@`L` Mt薴I$H:tLEEEL}LuLeMt[I$ILsLLALuH]LeMt%M,$LsHLAH]LeLmLuL}H]UHHd$H}H׵H=H@HH=HwHH5HH]UHH$PHPLXL`LhLpH}HNH]LeMt:M,$LrHAu EH]LeMtM,$LrHA@HEH}uHUHH= ң_,HEHUHu H1_HcHUsH]LmMt~MeL"rHA$HcHq跲HH-HH9vZH}AH2HE誃H}lHEHt#H}HxH]LmMtڱMeL~qHA$HcHqHH-HH9v趱AALxHxHtsL#LqLDDA$XEEHPLXL`LhLpH]UHHd$H]LeLmLuL}H}uH8LmLeMtܰI$HpLADuH]LeMt謰I$ILMpHDDAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uH8@LmLeMt,I$HoL0ADuH]LeMtI$ILoHDDAH]LeLmLuL}H]UHHd$H}H觱HEH@`HxEEH]UHHd$H}HuHcHTH;EuHuH}GuEEEH]UHHd$H}HuHHEH@HH;EtHEH@`Hx0"GHuH}UH]UHHd$H}H跰HE@hH}cH]UHHd$H}HwHEH[HEHx`莰H]UHH$HLL H}HuHH}t)LmLeMtLHmLShHEH}tHUHu&|HNZHcHUuNHEH}HKHE@hHEH}uH}uH}HEH~HEHpHpH0{HYHcH(u%H}uHuH}HEHP`~ ~H(HtjEHEHLL H]UHHd$H]LeLmH}HuH(藮H})LeLmMtzI]HlLH}H}HLpH]ILeMt蔦M,$L8fLHLAH} HLLLLH]UHHd$H}H'HEH@`HEEH]UHHd$H}HH]UHH$@HHLPLXL`LhH}@uH蚧HEH@`H@0HEHE؃8uN}uHEHxHuHEHxPwHE؃xtHE؃xtHEH@`Hx ujHEH@`Lp IHEH@`Lh MtI]HdLLHEHP HUH@(HEHUHxsH9QHcHpHMHHHA HQ(HEH@`L` HEH@`Lh MtYI]HcLHHH-HH9vDAHEH@`Lp H]LeMtM,$LcHLDAHE@lhuHUHEHB HEHB(HpHtvHEH@`Hxul}u,HEH@`HpHEHPpH}Ht2HEH@`HpH}H}HuHHHE@lHE؃8tHE@hr1tr'vtEE2EEH]؋C=v[LeAD$=v٢AT$uH}趌H}HuHHHE@l}u*HEHxHuHEHxPw H}@W@HHLPLXL`LhH]UHHd$H]LeLmH}H(LmLeMtI$HaL`HELh`HEL``Mt趡I$HZaLHEHEH]LeLmH]UHHd$H}HuHcHEH}HcH]UHH$pHxH}HuHHEHUHu\oHMHcHUHEHtH@H| EHuH}JH]HH}VHcHUuRHEH}HHUHEH8HEH}uH}uH}HEHbHEHpHhH(S_H{=HcH u%H}uHuH}HEHP`MbcCbH Ht"edHEHLLH]UHHd$H]LeLmLuH}H0GLeLmMt3I]HOLuHEH8tkHEL8HEL8Mt܏I$HOLXHEL8HEL8Mt襏I$HIOLpHEH8H@`Hxu*HEH8H@`HpH=YBHHHEH8H@`HUHPHHEHEL8HEL8MtI]HNLuPHEL8HEL8MtȎI]HlNL HH}zHUH@HEHǀ@HEL8HEL8MtiI]H NLu[HEL8HEL8Mt,I]HML HH}zHUHHH}fHEHǀHHEHH}HS3^LuH]LeMt謍M,$LPMHLAH]LeLmLuH]UHHd$H]LeLmH}HuH(GH})LeLmMt*I]HLLH}LH}HH}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuH}H0藎LeLmMt背I]H'LLtHEH8t8LuILmMt8I]HKLLHEHHELuHLeMtM,$LKHLAHEH8H@`H@HEH@u#HEH@H}wHEHǀ@HEHHu%HEHHH}wHEHǀHH}H]LeLmLuH]UHHd$H]H}HuH8HEH@0HEHEHEHEH;EtH HuH}3É]}u!HEH@PHtH@HHEHEH@ HtH@HHEذHUH;UtHUH;U|E}uHEH@ HtH@HHHEHX HtH[HHkq}HHH9v&H]HEHXPHHxP'H]HEHX HHx 'H]HEH;EtHUHuH}2É]EH]H]UHHd$H}HuHsHEHxvHuH} H]UHH$HLL H}HuHH}t)LmLeMtLHHLShHEH}tHUHu&WHN5HcHUuRHEH}Hk"HUHNHB HEH}uH}uH}HEHYHEHpHpH0VH4HcH(u%H}uHuH}HEHP`Y[YH(Htf\A\HEHLL H]UHHd$H]H}HuHUHMHH藉HEH@0HEHEH@0HEHEH;EtH HuH}H0É]܃}u!HEH@PHtH@HHEHEH@PHtH@HHEȰHUH;UtHUH;U|E܃}uHEH@PHtH@HHHEHXPHtH[HHkqHHH9v誆H]HEHXPHHxP^$H]HEHXPHHxPB$H]HEH;EtHUHuH}/É]܋EH]H]UHHd$H}HuH HEHxHtHukHEH}uHEH@(HEHEHEH]UHH$PH}HuHUHyHZHH}yHUHXSH1HcHPuaHuH}HHHJHuH}$HEHxHHuHEH}uHEH@(HEHEeVH5H}yHPHtWHEH]UHHd$H}HuHUHMH@{HEHHUH}Hu H=ic{HuH}7HEH}t0HMHUHH=,HEHEHxHu HMHUHH=DJHEHEHuHx0HHHHEHxPHu-#HEHxHu謧HuHUH}Ht3HEHEHEHuHH=b{}DHHEH]UHHd$H]LeLmLuL}H}uH8 HE@p;Eu?}ZIDuH]LeMtM,$LBHDLApH]LeLmLuL}H]UHHd$H]LeLmH}uH(舄HE@X;Eu>H}uH}uLeLmMtQI]HAL0H]LeLmH]UHHd$H]LeLmH}uH(HE@`;Eu>H}1uH}LeLmMtI]HeAL0H]LeLmH]UHHd$H]LeLmH}uH(hHE@\;Eu>H}uH}5LeLmMt1I]H@L0H]LeLmH]UHH$HLL H}HuHȂH}t)LmLeMt諀LHP@LShHEH}teHUHuNH,HcHUHEH}HWHE@HE@tH}YH}[H}H}H}HH0H}H}HEH}uH}uH}HEH0QHEHpHpH0MH,HcH(u%H}uHuH}HEHP`P`RPH(HtSSHEHLL H]UHHd$H]LeLmH}HuH(׀H})LeLmMt~I]H^>LH} H}HH}uH}uH}HEHPpH]LeLmH]UHH$`H`LhLpLxL}H}HuH HEHUHuSLH{*HcHUHuH=!F0uqHEDp\LeLmMt}I]HK=LDHHELxHEDppH]LeMtk}M,$L=HDLApHEDpXLeLmMt3}I]HH}uH}LeLmMtaxI]H8L0H]LeLmH]UHHd$H}HzHEHuHHEHEHEH]UHHd$H}HuHyHEHHEHUHHH]UHH$0H8L@H}HyHEHH8„uuHEx\HExttEEH}ȺH HE@XMH}}H} ЉEȀ}u*HEPhH}E HURlH } EȀ}uH]C\=vvC\E%Eȃ;Et}u EEEHE@pEHiH81HUHPDH"HcHH,HExXt!HEHPxHuHH8{HEHuHH8H[HEH}u)HEHxHUHEH@H@HEȃ;EtQ}uIEȉEE=vu}̾NHEEԉEH}HuHUHEЉEEԉEHUHH9vcuHEHEHExXtHEH@xHtH@HHjHEHXxHtH[HHHH9vuHEL`xHHxxMű}HUHMAHUH+ű}HUHMIAHUHHExXt(HEHHEHHxHUH@H8%HEHHUH H8HHEƀEHH8HHHtGH8L@H]UHHd$H]LeLmH}@uH(uHE@t:EuH}QuH}%LeLmMtrI]H2L0H]LeLmH]UHHd$H]LeLmH}HtHEHH:tLmLeMtWrI$H1L(HEuHH8HUHuo@HHcHUu0HEHHH8HHHEƀWCHH8HEHtDHEHHEHǀH]LeLmH]UHHd$H}HWsHEHH}HuNH]UHHd$H}HsHEH[H}H]UHHd$H]LeLmLuH}HuH0rHEH=9H#uH}HuH}HUHE@tBtHEDphLeLmMtgpI]H 0LD`HEDplLeLmMt3pI]H/LDhLeLmMtpI]H/L0 HuH}3H]LeLmLuH]UHHd$H]LeLmH}uHUH0qHE@p;EtHEHpH}EuIH}HUEBpHuH}LmLeMt9oI$H.L0H]LeLmH]UHHd$H]LeLmLuL}H}HuH8pHEHxHu.Et@H}ALuH]LeMtnM,$LH.HLDApH]LeLmLuL}H]UHHd$H}HuHCpHEHxFHuH}H]UHH$HLL H}HuHoH}t)LmLeMtmLHp-LShHEH}tHUHu;HHcHUuHHEH}HHEH}uH}uH}HEH>HEHpHpH0q;HHcH(u%H}uHuH}HEHP`k>?a>H(Ht@AAHEHLL H]UHHd$H]LeLmLuL}H}uH8`nEIDuH]LeMt;lI$IL+HDLAPH]LeLmLuL}H]UHHd$H]LeLmH}uH(mHE@X;EuMH}AHEHǀuH}LeLmMtkI]H6+L0H]LeLmH]UHHd$H]LeLmH}HuH(7mHEHH;EuxH}HEHUHH}HEǀHE.HH}LeLmMtjI]Hb*L0H]LeLmH]UHH$HLL H}HuHXlH}t)LmLeMt;jLH)LShHEH}tJHUHuf8HHcHUHEH}HHEHǀHEǀHEHH}OHE@HEǀH}{HEH}uH}uH}HEH:HEHpHpH07HHcH(u%H}uHuH}HEHP`: u2HEHU@X;BXt HEHUHH;tEEEH]UHHd$H]LeLmH}HuH(7iHEH=$2HuHuH}t}H}|HUHEHEHpH}HEpXH}HUHEHHLeLmMtfI]HA&L0 HuH}OH]LeLmH]UHHd$H]LeLmH}HuH(7hHEHH;EtQH}HUHEHHEhLmLeMteI$H%L0H]LeLmH]UHHd$H}HgHEHuHwHEHEHEH]UHH$pHxLeLmH}HRgHEHH:tLmLeMt!eI$H$L(HEuHH8HUHu93HaHcHUuGHEHHH8HEH}uHEx  H}zHEƀ 6HsH8[HEHt}7HEH[HEHǀHxLeLmH]UHHd$H}HuHfHE;fu H}fH}HEHUHHH]UHHd$H]LeLmLuH}H0eHEE} tWHEHp(H=;u=HELp(AHELh(MtCcI]H"DLPEEH]LeLmLuH]UHH$`HhLpLxH}HdHEHH8„uH}HHEHuDEHELHELMtqbI]H"L HEaHEHE@Xtt E>E5EHEHcXXHqpbHHH9vbH]H},EHH8HUHu(0HPHcHUHuHH8HEH}u)HEHxHUHEH@H@H}uL}t*}`u}HUHH}HuHUHH}kHUHHEHHUHH8HEƀb2HH8HEHt3HU[cHhLpLxH]UHHd$H]LeLmH}HuH(WbLmLeMtC`I$HL0H]LeLmH]UHHd$H}HaHEH[H}HuH]UHHd$H}HaHEH+H}"H]UHHd$H]LeLmH}HuH(gaHEH=T*H$uAH}HuH}XLeLmMt$_I]HL0 HuH} H]LeLmH]UHHd$H]LeLmH}uHUH0`HE苀;Et(HEHpH}4uHExXuuH}HEHǀHEUHuH}HExXtH}/LmLeMt^I$HL0H]LeLmH]UHHd$H]LeLmLuL}H}HuH8_HEHxHu4t@H}ALuH]LeMt]M,$L(HLDAPH]LeLmLuL}H]UHH$HLL H}HuH_H}t)LmLeMt\LHLShHEH}tHUHu+H> HcHUuCHEH}HHEH}uH}uH}HEH-HEHpHpH0*HHcH(u%H}uHuH}HEHP`-/-H(Hte0@0HEHLL H]UHHd$H]LeLmH}HuH(]H})LeLmMtz[I]HLH}H}HAH}uH}uH}HEHPpH]LeLmH]UHHd$H}HuH\HEH=p'H u HuH}CH]UHHd$H}؉uUMDEH0\HEH^MUu}HEHEHp8HEHx8HUйH}bH]UHHd$H]LeLmH}HuH(\HEH@8H;Et>H}HUHEHB8LmLeMtYI$HLH]LeLmH]UHHd$H}H[HEHuHHEHEHEH]UHHd$H}HuHS[HEHHEHUH@8HH]UHHd$H}H[HEH@8H8„u!GHUHB8H]UHHd$H}HZH]UHHd$H}HZH]UHHd$H}HuHsZH]UHHd$H}HGZHEHP8H:tHEHx83HEH@8H]UHHd$H}HuHUHYH]UHHd$H}H(Y謝HEHUHEHEHEHEHEHUH]UHHd$H]H}HuH0_YHEHppHEHx@:AE}t@HEH@0HEHEHEHEH;EtHHuH}É]}t?HEHpLHEHxH ;HHH-HH9vV]EH]H]UHHd$H}HuHXHEHxHuH})H]UHH$HLL H}HuH(XH}t)LmLeMt VLHLShHEH}tHUHu6$H^HcHUuRHEH}H{HUH`HB HEH}uH}uH}HEH&HEHpHpH0#HHcH(u%H}uHuH}HEHP`&,(&H(Htv)Q)HEHLL H]UHHd$H]H}HuHUHMH@VHEHppHEHxp>E܃}tDHEH@0HEHEH@0HEHEH;EtHHuH}8É]܃}t?HEHpLHEHxLH HHH-HH9vT]܋EH]H]UHHd$H}HuH UHEHxHTHuKHEH}uHEH@(HEHEHEH]UHH$0H}HuHUHYUHHH}fGHxH8!HHcH0u[HuH}HHHuH}XHEHxHiHupHEH}uHEH@(HEHEH$H5鍑H}GH0Ht%HEH]UHHd$H}HuHUHMHP[THEHHUH}Hu H=1{tHuH}7HEH}t0HMHUHH= _HEHEHxHuuHMHUHH=HEHEHxpHuHEHuHx0HHHEHxHuuHuHUH}HtGHEHEHEHEH@pHEHE HuHH=1{OHsHEH]UHHd$H}HuHSE@EEEvQEHHTRHtH}U}}H]UHHd$}HuHEHHRHuHQ}HoEEH]UHHd$H}HuHCRHEHHQH}H蕚EEH]UHHd$H}HuHpQHEH5PHHHH}uHUH}<uHEUP}ļ}HEH}wHEH}wHEH}wHEHHEUˈPHUAHHH}HUHEHxHfEf%f=|(f-tf-tHE@ HE@  HE@ HEUPH}H5({w9t HE@H}H5({W9tHE@HQH}#IEHcMHgfffffffHHH?HHHH-HH9vGHEXHHH}_HhHt~HPLXL`H]UHHd$H}HuH#IE@EEEvGEHHMH|HuC8t'EvFEHHoMDE}}EEH]UHHd$H]LeLmH}H kHHEHcXHqFHH-HH9v[FHEXHUHE@B;@HEHcXHqmFHH-HH9vFHEXHEHcPHEH@HtH@H9~ELeMl$H]HcCHH9vEHc[HI|$CA|-udHEHcHHEHc@H)qEHEHcPHEHpHEHxH]LeLmH]UHH$@HHLPH}HuUHFHDžXHDž`HUHu4H\HcHU\HMHUuH}u2HcUHcEH)qDHu8LeHcUHH9vDHc]HH} A|*uHc]HqDHH-HH9v=DHuH`苤H`HhH${HpH]HtH[HcEH)q4DHq)DHH-HH9vCHuHX:HXHxHhH}H萅 H}HuHX@H`4HEHtVHHLPH]UHHd$H}HuHxEHEHUHuIHqHcHUH}HuHEH0H}{HuH}HEH0 H}YHuH}܀HEH0 H}7HuH}躀HEH0 H}HuH}蘀H}HEHt<H]UHHd$H}HuHCHEHHu H]UHHd$H}HuHCHEHEHUHuHHcHUu6HuH}9HuH}'HuH}H}'H}HEHt@H]UHHd$H}HxBHEHUHu=HeHcHUvHuH}H}uSHuH}H}u8Hu H}H}uHu H}H}uEEH}2~HEHtTEH]UHHd$H]LeLmH}H0AEH]HtH[HH-HH9v?}~EEELmHcEHH9v?LceLH}3C|%-t0LceIq?LH-HH9vm?De;]~늃}EEH]LeLmH]UHH$`H`H}HuHUHMLEHEHHEHH@HDžhHUHx HHhH>HhH^Hh=>HUHcMH}HuHZHhzHpHtH`H]UHH$PHXL`LhLpH}HuHa>HDžxHUHu HHcHU,H}H}zEEHEHXHtH[HH-HH9voHEHt`H@LHLPLXL`H]UHH$HLLLH}HuH2HDž HUHuHHLDMDEAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUHPHEH(HUEHEDuLmLeMtI$IL腟ALDE؉‹EAH]LeLmLuL}H]UHHd$H]LeLmLuH}uUH8qLuLeMtXM,$LLAHEHUuHSuM,$LLAHEHMUHuLmLeMtI$H蜀LH]LeLmLuH]UHHd$H]H}HuHUH HEHHqHH-HH9vAHuHUH}ApH]H]UHHd$H]LeLmLuL}H}HuHUMDEHX}|?HcEH]H)qJHq?HH-HH9v]EEԃ}~ZHc]HEH@H9v赿HEHIDuH]LeMtrI$ILHDLAH]LeLmLuL}H]UHHd$H]LeLmLuH}HuUH8LmLeMtI$H~LLuLeMt达M,$Lb~LAHEHUHu/LmLeMt{I$H~LH]LeLmLuH]UHHd$H]H}HuHUH +HEHHqyHH-HH9vAHuHUH}H]H]UHHd$H]LeLmLuH}؉uUMDEHH蚿LmLeMt膽I$H*}LLuػ LeMtXM,$L|LAHEHDEMUu3SLmLeMtI$H|LH]LeLmLuH]UHHd$H]LeLmLuL}H}HuHUHP諾EHEEHEDuDmH]LeMt聼I$IL"|HDDE؉EAApH]LeLmLuL}H]UHHd$H]LeLmLuH}HuHUH@LmLeMtI$H{LLu LeMt轻M,$La{LAHEH(HuqWHMHEHHuHU[LmLeMtaI$H{LH]LeLmLuH]UHHd$H]LeLmLuL}H}؉uUMDEH`EUu}HEHUL}LuH]LeMt迺I$IL`zHLLAxH]LeLmLuL}H]UHHd$H]LeLmLuH}؉uUMDEHPJLmLeMt6I$HyLLuػ LeMtM,$LyLAHEH(HuULMHEHDEMUuZLmLeMt觹I$HKyLH]LeLmLuH]UHHd$H]LeLmLuH}HuUMH@=LmLeMt)I$HxLLu LeMtM,$LxLAHEHHuMULmLeMt赸I$HYxLH]LeLmLuH]UHHd$H]LeLmH}HuUMDEHHMHEHcH HEHc@H)q蓸HEHcPHEHcH)qzH9FHEHcXHEHcH)qZHqOHH-HH9v]EHEHcX HEHc@H)qHqHH-HH9v諷]ԋE;E1Hc]HqϷHH-HH9vr]EEԋ]ԃ}mEEЃEHEHu3HELc` IqaLH-HH9vDHE0H}BEHEPHE0H}EHELc`Iq LH-HH9v謶DHEPH}IEHEHu3HELc` Iq賶LH-HH9vVHELchIq胶LH-HH9v&DH}DDHELc` IqDLH-HH9vDHE0H}DHELc IqLH-HH9v覵HED HELc`Iq̵LH-HH9voHED`HELc`Iq蔵LH-HH9v7HED`HELc` Iq\LH-HH9vHED` ;]~H]LeLmH]UHHd$H]LeLmLuH}HuHUH@LmLeMtkI$HtLLuLeMt=M,$LsLAHEH(@XEHEL(HEL(MtM,$LsLA@HuHUH}HEL(]HEL(Mt蟳M,$LCsLA@LmLeMtsI$HsLH]LeLmLuH]UHHd$H]LeLmLuL}H}؉uUMDEH`EUu}HEHUL}LuH]LeMtϲI$ILprHLLAH]LeLmLuL}H]UHHd$H]LeLmLuH}HuHUH8_LmLeMtKI$HqLLu LeMtM,$LqLAHEH(5LHHEHHuHUSLmLeMtƱI$HjqLH]LeLmLuH]UHHd$H]LeLmLuL}H}؉uUMDEH`VEUu}CHEHUL}LuH]LeMtI$ILpHLLAH]LeLmLuL}H]UHHd$H]LeLmLuH}HuHp賲LuLeMt蚰M,$L>pLAH}H VHEHHukE}uHEUHEUPHEUPEH]LeLmLuH]UHHd$H]LeLmLuH}؉uUMDEHHڱLmLeMtƯI$HjoLLuػ LeMt蘯M,$L]H0qsHH-HH9vsrrEEEDLuH]LeMt)sM,$L2HLAHxHtFEHPLXL`LhLpH]UHHd$H}HtH0nHEHEH]UHH$HLL H}HuHhtH}t)LmLeMtKrLH1LShHEH}tHUHuv@HHcHUoHEH}HHEǀHEƀHE@xHEƀKHEH}uH}uH}HEHCHEHpHpH0?HHcH(u%H}uHuH}HEHP`BKDBH(HtEpEHEHLL H]UHH$pHpLxLmLuH}HrHH=mH)HEHUHu>HHcHUH}ߞLuLeLmMtWpI]H/LLLuILmMt$pI]H/LLLuLeLmMtoI]H/LLgAH}^*HEHtBHpLxLmLuH]UHH$PHPLXL`LhLpH}HuHZqLmLeMtFoI$H.LHEHUHu{=HHcHxuDL}LuLeMtnM,$L.LLAff;EEL@LuH]LeMtnM,$LH.HLAHxHtAEHPLXL`LhLpH]UHHd$H}HuH#pHUHE@EHUHE@DBxHuH}H]UHHd$H}HuHoHEHH5Qz H]UHHd$H}HoHoHEHEH]UHHd$H}HgoH\HEHEH]UHHd$H}H7oHHsHEHEH]UHHd$H}HuHUHnHEHuH}H HUHE@|B4HUHE苀B8HE苰H}Y?HUHE苀`HE@H}!?H]UHHd$H}HuHUH_nHEHuH}H諡HuH=Xr t6HUHE芀HUHE芀HUHE@xB(H]UHHd$H}@uHmHE:EtHEUH}H]UHHd$H}@uHmHE@x:EtHEUPxH}ЙH]UHHd$H}@uH3mHE:EtHEUH}zH]UHHd$H]H}HuH(lHE@EHE@EU;Ut U;U|E}tkHE@ EHE@ EE;Et E;E|HHHH9ujHH-HH9vTj]EH]H]UHHd$H]LeLmLuL}H}HXkLmLeMtiI$H)LHEL}LuLeMtiI$ILJ)LLAEHcEHtIHqHEHEHEHEH;EtHHuH}5HÄuEELuH]LeMtiM,$L(HLAEH]LeLmLuL}H]UHHd$H}HjHEHxtHEHxkHEH@H]UHHd$H]LeLmLuL}H}HuH`_jH]LeMtKhM,$L'HAHUHEHBHELxHEIHL(HHHtgL#L'LLLA$uH]HtgL+Lj'H]HtgL#LO'LA$HELuIL}H]HtqgIL'LLLA$HH}H]LeLmLuL}H]UHHd$H}HiHEH;fuH}LtEEEH]UHHd$H}HhHEHx(H5ӡH]UHHd$H}uHhHEHx(u4HEHEH]UHHd$H}HGhH8EHEHEH]UHHd$H}HuHhHEHx(HuH]UHH$HLL H}HuHgH}t)LmLeMteLH@%LShHEH}tHUHu3HHcHUu^HEH}HKaHH=oHHUHB(HEH}uH}uH}HEH6HEHpHpH0+3HSHcH(u%H}uHuH}HEHP`%676H(Ht88HEHLL H]UHHd$H}uH4fHEHx(uHEHEHx(u萙H}H]UHHd$H]LeLmH}HuH(eH})LeLmMtcI]H^#LH}\HEHx(H}HaH}uH}uH}HEHPpH]LeLmH]UHHd$H]LeH}H eHEH@(HcXHqhcHH-HH9v c}7EDEEHEHx(uILD;]~HEHx(H]LeH]UHHd$H]H}ufUfMH8hdHEH@(HcXHqbHH-HH9vTb}dEE܃EHEHx(uǔHEHEЋ@ ;Eu&HEf@f;EuHEf@f;Eu;]~EEH]H]UHHd$H}HcHEH@(@EEH]UHH$HLLH}HuUfMfDEH,tG,tP[HE@ YHE@ LHE@ ?HE@ 2HE@ %HE@ HE@  HE@ H]H]UHHd$H}HYHEHHEHEHǀHEH]UHHd$H}HYHEHHEHEHǀHEH]UHHd$H}HWYHEH{HEHEHǀHEH]UHHd$H}HuHUH XEHEHH;Eu3HEHuHEHHUHEHEHEHH;Eu3HEHuHEHHEHUHEEH]UHHd$H]LeLmLuH}ufUfMH@,XEUuH}Fu0HߏHPHH=(AHH5H?&LuALmMtUI]HlDLHEL``MtUI$H@HELh`Mt|UMeL HA$HDEMUHHHHEH@`Hx(CtHE@hH}2H]LeLmLuH]UHHd$H]LeLmLuL}H}HuH8VHE@HpcHuH=5uHE@h8HuH=ZuLeLmMtmTI]HLLeLmMtDTI]HL0É=v?TDLmLeMtTI$HLÉ=vTDH]LeMtSM,$LnHA8H}DDCLuLeLmMtSI]H/LL(H}@kHuH}XHuH=Z4uHUHE@hBhLeMtSI$HLmMtSMeLHA$PHLmMtRMeL|LuMtRM.LaLAPH9u/LuALmMtRI]H-DLH}@jH]LeLmLuL}H]UHH$HLLLH}HuH THExht0H܏HPHH=$'HH5H%"H}t0HۏHPHH=$HH5H!HEH@`Hx(HEph4HEHEDpLeLmMtSQI]HL0HcI9u>HEDpLeLmMtQI]HLHcI9u0HۏHPHH=#*HH5H(!LuLeLmMtPI]HTL8A;F u0HڏHPHH=b#HH5H LuALmMtLPI]HDLH}lLeLmMtPI]HL@HEHEL``MtOI$HHELh`MtOMeLnHA$HHED@HEHHEP HH HEHHHHHcH{HEHuHxHHHUHEH@PHBhHEHxhwOHEHxhcHUHB`HEHX`LeIT$hHH9vOIT$hHEHxHHLeLmMtNI]H`LuLeLmMtNI]H.L0HLuLmMt^NMeLLA$0HH`HHvu6HEHUHPxHUHEHBpHEHEH`4lHUHEH@`HBxHEHxxwOHEHxxbHUHBpHEHXpLeID$xHH9vMIT$xHEHxXHHUHEH@pHHEHw^HEH3bHUHHEHLeI$HH9v=MI$HEHxhHEHEH@`Hx(HEphHUHEH}hcH}ZHHtLuLeLmMtLI]HE LLHLLLH]UHHd$H]LeLmLuL}H}H03NLeLmMtLI]H LtH}hzHEHx`+GLeMtKI$H LmMtKMeLc HA$PIILMMtKML1 HLAHUHB`HEHx`?FHE@hLuLeLmMtI]HLHEH}tHuHuH5CHUH}HEH}tcHEHhHDž` H`HH5"zHpSUHpHH=>9HH5HL}LuH]LeMt >M,$LHLLA0zHp{HxHtH8L@LHLPLXH]UHH$0H8L@LHLPLXH}HuHUHV?HDžpHUHu HHcHxLeLmMt =I]HLHEH}tHUHuH}HEH}tcHEHhHDž`H`HH5s!zHpSHpHH=z7HH5H L}LuH]LeMtGLuALmMt"I]HDLH}nPHEHx`豾LuLeLmMt!I]H}LL u\HEHx` HE@h HE@hLuLeLmMtw!I]HLLH]LeLmLuH]UHHd$H]LeLmLuH}HuH8#HEH@`H@H;EE}u8HELp`LeHELh`Mt I]H{LLEH]LeLmLuH]UHHd$H}HuHUH("HExhtE0HEH@`Hx(HEphSHEHUHuH} EEH]UHH$HLLLLH}HuH(!HEHH*HRHcHX HEHx`É=vf]H]LeMt{M,$LHAHEfEH]HtKL+LH]Ht0L#LLA$fffEfEfEL}LuAH]HtL#LDLLA$f}t_ EHH5NHH}H.]HkqLeHH}[LH]HkqHHHH9vNAH]HH}ILmH]HtL#LLLDA$HEHEHEHEHHP H4HcHB ]HqHH-HH9vH}EfDEԃEHEH@`Hx(uOHEHEHHpHHH]LmMtMeLHA$H+Eq0DD=vH]HcEHH9vLcmLH}xIFd+ H}t"HHH=;HE:LLuAH]Ht6L#LDLLA$hH}tHH=AHE4LuIH]HtL#LLLA$HEfxsHEfxseH}tTIHnIHnHHtuILLLA$HEHE@+HE@*HE@-HE?@,HUHuH}9f8ffLeHcEHH9vLcmLH}ǸIfC\,LmH]HtL#L^LA$DD=vH]HcUHH9vLcmLH}KIFd+HuH}UH]HcEHH9vDLceLH}ILmAE=vAEBD#H]HcEHH9vLceLH}趷ILmAE=vAEB#H}tLIHdIHdHHtuILLLA$HEHE@1HEȋ@ tt/?H 3,H}3-8H}!HEȋ@ H4H}HUHuH}HEH@HHEHE@HcHkqHHHHHH-HH9vHEXHEXHqHHHE@HqHHH9vK]H]LmMtMeLHA$ILmH]HtL#LLA$UHq#I9|wH]LeMtM,$LIHAUHqILuH]HtkL#LLLA$HEH@HHELuLmH]Ht*L#LLA$IFHEEIL}AH]HtL#LDLLA$HptHxtuH}DEHMHUHHH]LmMtvMeLHA$HHqHH-HH9vTHuH}LeLmMtI]HLHqQDD=vH]HcEHH9vLcmLH}虳IFd+HEf@0ffLeHcUHH9vLcmLH}MIfC\,HuH=uHEfffLeHcEHH9v%LcmLH}IfC\,HEfffLeHcUHH9vLcmLH}薲IfC\,:H]HcEHH9vLceLH}^IffBD#;E~H}H}H}H}HHt6HEHqgIL}AH]HtL#LDLLA$]HkqHH-HH9vAH]HH}{ILuH]HttL#LLLDA$H5CH}CHHtRHLLLLH]UHH$HLLLLH}HuHUHMDEHEHXHHHH0ƅHEHt-HEHH`HH:tUH`HXH%H`HHHHHEHHEƅHêHEH0EH8DžHE@HE@ƅDžDžDžDžƅƅ ƅ HH`1u:HHHH9vYHHuHfH`HH=R0襊HHHH=/0肊HHHHHAAHLMtI$IL3‰EEHHAHHu H`oHLLLLH]UHHd$H}HHEHSHEHEH]UHHd$H}HfEEH]UHHd$H]LeLmH}H(kLmLeMtWI$HL`HELh`HEL``Mt&I$HLHEHEH]LeLmH]UHHd$H}HHEHEH]UHHd$H]LeLmLuH}HuH0LuH]LeMt{M,$LHLAH]LeLmLuH]UHHd$H}H'QEEH]UHHd$H]LeLmLuH}HHHEH@`HxuELmLeMt I$HZL HELmLeMt I$H-L0HEH]HL0HL MtL M,$LLHAhHUHR`HBH]LeLmLuH]UHH$HLLLLH}HuHUHPHEH}HHEH}t H} HEH}tHH=;2HEHUHPHHcHH{HEILuAH]Ht" L#LDLLA$H]LeMt M,$LHAHUfRfDfDHkq Hq HH-HH9v ]HEHHEHEf@fDfDHq HHHH9v` H}EEEH}HuHCEE̋EȉDDHcHc]Hq= HH-HH9v ]LuLmLeMt M<$LDLLAHE;E~PHEHHEHEf@fDfDDEIq LHHH9v@ A}EfDEEHEf@ fDfDHUIHH=4HEH(H H4HcHu:LmH]Ht L#L'LA$HHuH}H}HHt]HED;u~%LuIH]Ht L#LLLA$LmLuH]HtL#LLLA$HSH}JH}AH}XHHHtHLLLLH]UHHd$H}uHD EH}MHEHEH]UHHd$H}uHUH HEuH}HLH]UHHd$H}HuUH }t HEH<UHuH}\MH]UHH$`H}uHUHEH`HHHHR HHEHU؋EHEHxH`HHHuH}QEEH]UHH$`HhH}uHUHEHpHHHHE rrHHHpuHH%HHpuHHhH]UHHd$H}HGHEH@HxxtHH=LHUHRHBxHEH@H@xHEHEH]UHHd$H}HHEH@Ht"HH=%LHUHRHHEH@HHEHEH]UHHd$H]LeLmLuL}H}HHSHEHuzHEHKHcHqHH-HH9v#}#EfEEHEHutIA$ vA$HkD̉EHEHxxKAMcIqLH-HH9vA}lE@EEHEHxxuEr6HEHuLhHEHxxuHpHLD;e~HEHuL`L ;]~HEH6HEHxxJHcHq HH-HH9vAA}EEEHEHxxurr!HEHxxuHXHm~HELp`MMtI$HMMtM,$LHAHHEHxxumHPHHHEHuLzD;}~/HEHxxH}HEHplH}HHUBhH]LeLmLuL}H]UHHd$H]LeLmH}HuHUHP#HEx tHUHE@0B0HUHE@,B,HUHE@)B)HUHE@*B*HUHEH@`HB`HEHp`HEHxXHUHBXHEHXXHEL`XLmIE`HH9vIU`LH贤7HUHH= zHEHUHH= zHEHEHcX8HqHH-HH9v%}E@EЃEHELc`H82HxHt豸HHfxs)?vHH= eHË?vRHHHfxt(?v#H˶?vHH@?vLI?vHHtrL#LLLA$HcHqHH-HH9vJHHXHHD`?vHD}HH= HË?vH?vHH@HcHqHH-HH9vxݴH@ѝHHtPp;~tDžHcHqQHH-HH9vAA}Dž@D?vL?vHHtZL#LLA$HHqLqHHH9v5D;~IHynjÉ=vLLuAH]HtHILRDLLA$HcHqHHHH9vHhh}DžfD?v9?vH?vLMtMeLbHA$HqxxkÉ=vLLuLeMtUM<$LLLA?vJH?v,LMtM,$L薟HAHË?vHH}Hߨh;~dHcHqHHHH9v}IDž?vYH趙;~H(L0L8L@LHH]UHHd$H}HuHHEHH5y H]UHHd$H}HuHHEHUHu֬HHcHUu$HuH}H}H5y&,HEʯH}!HEHtCEH]UHHd$H]LeLmLuL}H}HXLmLeMtI$HsLHEL}LuLeMtI$IL:LLAEHcEHtIHHEHEHEHEH;EtHHuH}%HÄuEELuH]LeMtM,$L諜HLAEH]LeLmLuL}H]UHHd$H}HHEHxtHEHxmHEH@H]UHHd$H}HgHǏHEHEH]UHHd$H}HuH3HEHH5}yH]UHHd$H}HHE HEH]UHH$HLLLLH}HuHUH`HEH}H趙HEH}tH}ۙHEH}tHH= fHEHUH@荩H赇HcH8lHEILuAH]HtL#L藚DLLA$HH=.ߘHEH HH-HcH`LeLmMtwI]HLHUfRffHkqHqHH-HH9v7]HEHHEHEf@ffHqDHHHH9vH}EfDEEHEf@ ffHUIHH=pHEHuH}_LuLmLeMt2M<$L֘LLAHEЊEHEXHH?HHHH=v ]EEfEfEfEfEƋEEHEЋXHqHH-HH9v]HEȋHcHc]HqHHHH9v]LmH]ALuMt@M>LDHLAHE;E~pH}gHcHqWHHHH9vAA}E@EEuH}蛇HELmH]HtL#L8LA$ILmH]HtfL#L LA$I)qLHuH}fD;}~k趨H}譑HHt,LuIH]HtL#L薖LLA$LmLuH]HtL#LeLLA$H2H})H} H}7H8Ht薩HLLLLH]UHHd$H}H'H(HEHEH]UHHd$H}HfEEH]UHH$pHxH}HuHHEHUHuH$HcHUHEHtH@H| EwHuH}H]HH}#uHuH}HEHPqH}(}HEHtHxH]UHH$@HHLPLXL`H}HuHqHEHEHUHp謗HuHcHhEH}tLuLmLeMtLH譈LLH}tHuH}6H]HH}r;.t%H}HH H}tfE>fLeHcUHH9vHc]HH} AD t;tuE܉E4DHc]HqHH-HH9v,]HcEHUHtHRH9~8LeHcUHH9vHc]HH}uA|;uHcUHcEH)qHEHtH@H9t E4DHc]HqHH-HH9vt]HcUHEHtH@H9~LeHcEHc]HqHquHHH9vHH}A|跽LmHcUHH9vLceLH}iC|%~8t#HcEHUHtHRH9ESE؉E/Hc]HqHH-HH9vo]HcUHEHtH@H9軗H}H} HhHt(EHHLPLXL`H]UHHd$H]LeH}HuH(LeMtI$HOHHuEEH]LeH]UHH$HLLLLH}HuUHh7HEHUHpzHqHcHhHEHEHPH8H`qHcHoLeMtI$HRLmMtMeL6HA$IILMMt_MLHLAHEHMHEHP0HQH@8HAAHH=UH;HELuL}H]LeMtM,$L范HLLAH]HwHHfyH0H\yHPH}}uH}@HEHP PHHiLLeLmMtNI]HLL8HUHuH}uhLuLeLmMt I]H豂LL(HEH@`HEHEHx0[HELp0H]ALeMtM,$LaDHLApLeLmMtI]H1LHUHEtHE@YHE@lړH}HuH}|H}|HHt7袓H}YuHhHtHLLLLH]UHH$PHPLXL`LhLpH}HuHHELmLeMtnI$HL@HEHEHxPwAHH=ob8HEHUHulHmHcHx.LeMtI$H膀LmMtMeLjHA$IILMMtML8HLAHEHEIH]ALeMtYM,$LDHLAhLuH]L}LeMt!M,$LLHLA HUHuH}$;LuLeLmMtܿI]HLL0OH}FzH}=zHxHt輒HPLXL`LhLpH]UHHd$H]LeLmLuL}H}HHCLmLeMt/I$H~LHEL}LuLeMtI$IL~LLAE}t}Bt}MtEELuH]LeMt螾M,$LB~HLAEH]LeLmLuL}H]UHH$HLLH}HuHUHMDEHH}t)LmLeMtLH}LShHEH}tJHUHx'HOjHcHpHEH}HvHUHEHBLeLmMtuI]H}LHUHBHEHUHP HE؋UP(HEH}uH}uH}HEH袎HpHpHXHJHriHcHu%H}uHuH}HEHP`DϏ:HHtHEHLLH]UHHd$H]LeLmLuL}H}HuUH`<}~ EHEHU@;B(|HcEHEHEHcP(HEHc@H)qQHUHEH;E|H]H]HH-HH9vڻ]HEHP HEHc@H<HcUHu^Hc]HcEH)qHH-HH9v臻]HEHc@Hc]Hq讻HH-HH9vQHEX}t EEHEHEHcEHEEHEHEHELxHEIƋ]HEL`MtкI$ILqzLLAHcHc]HqHH-HH9v褺]EH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuUHH,Ett}HEHEHEHc@HEqRHEHEHU@;B(t@HEL`HELhMtI]HdyLHEqHEcHELcp(HEL`HELhMtvI]HyLLq跹HUH+Bq訹HEq蝹HEHEHc@(H;ErH]HUHHH9v$ECHELxHELpHEL`MtոM,$LyxLLAuHUHE@(BHEHPHEHqHUHcR(H)q߸IHELpHEL`Mt[M,$LwLLAHEH]LeLmLuL}H]UHHd$H}HuHHEHH5ݞyPH]UHHd$H}HǹHEHEH]UHH$`HhH}HuUH胹HEH=H@ju H}uUHuH}H}кH~]fEBM]HqzHHH9v#]HMHUAHH=HEHUHx&HNcHcHpu4]HqHHH9v諶HuH} H}pHpHt}UHuH}HhH]UHHd$H}HHHEHEH]UHHd$H}HHXHEHEH]UHHd$H}H跷HHEHEH]UHHd$H}HuHUHHEHuH}HHuH=hߡ+htmHExTtH}= t HE@8BH}=t HE@8#HE@8H};LHUHB詀HPH}HXHtH0L8H]UHHd$H}HuHðHEHH5 yH]UHHd$H}H臰HߡHEHEH]UHHd$H}HWHHEHEH]UHHd$H}H'HHEHEH]UHHd$H}HuHUHHEHuH}HH]UHH$pH}HuHUH詯HEHUHu{HZHcHUHUHuH}HEHxxtH}H5ϔy;HEHPxH}H5y5HEHtH}H5y:HEHH}H5y5HEHyf/ztH}H5y:5HEH5yH}SHUH}H5dy?5HEHtH}H5y?:HEHH}H5y5HEHtH}H5y:HEHH}H5ry4HE苀r\t t t4KH}HryH5y4BH}HyH5ryu4)H}HyH5Yy\4H}H5Gyj9HE胸t!HE胸tH}H5y<9(HEHH}6/HUH}H5_y3HE胸t!HE胸tH}H5Yy8(HEHH}.HUH}H5/y3HEHtH}H57y8HEHH}H5y]3HEHtH}H5*y]8HEHH}H5 y 3HEHtH}H5y 8HEHH}H5y2HEHtH}H5y7HEHH}H5y2{H}HEHt|H]UHH$HLL H}HuH蘫H}t)LmLeMt{LH iLShHEH}tHUHuwHUHcHUuCHEH}HHEH}uH}uH}HEH{zHEHpHpH0&wHNUHcH(u%H}uHuH}HEHP` z{zH(Ht||HEHLL H]UHH$HLLLLH}HuH HDžHUHuMvHuTHcHxYLeLmMt迧I]HcgLHEH`H uHTHcHL}LuLeMtWM,$LfLLAHuAHHHH5yHt;HuAHHHH5yHtEEKxLuLeLmMt裦I]HGfLLHHtyxHYHxHtxyEHLLLLH]UHHd$H}HuHHEH}HHUHE@NBxHUHE@pByHUHE@qBzH]UHHd$H}HuH裧HEHH5yH]UHHd$H}HgHHEHEH]UHHd$H}H7H`HEHEH]UHHd$H}HuHUHHEHuH}H H]UHHd$}uHŦE;Et EE;E| EEEH]UHHd$Љ}uH(uHEH=3t[EuH=r3 HEH}t-MUHH=*5HEHuH=63H}HHEHEH]UHH$HLLLLH}HuUMH@褥H}t+LmH]Ht臣IL,cLAT$hHEH}tHUHxqHOHcHpHEHUE%BHUE%BIL5LL-LMtLHbLLxHUHBHELpAHEHXHt諢L#LPbDLA$hHELpAHEHXHtpL#LbDLA$PHEHxJL(AMLHt+L#LaLDA$@HEHxH(HEpH_5HEHxIǸHHHALMMt裡M4$LGaHD‹AAEfE؃EEE܃E܋E܃tE؃tE܃uE؃u0ЄukHEHxHHEDh]DuLLMtΠIHHh`LDDH}}=}}"HEH}uH}uH}HEHqHpHpHXHnHLHcHu%H}uHuH}HEHP`qsqHHtatL%=MtMLSHLAxHELuL}H]LeMtΓM,$LrSHLLAXHuHuH5H}H }QHEH}u HMHUI HH=HEHUHxaH?HcHp3cHHuHXHEH}u~H}H59DRuhLuILeMtӒLHxRLLxHELuLeLmMt蠒I]HDRLLHE dH}MHpHteHEHEHHLPLXL`LhH]UHHd$H oGHEHEH]UHHHH=UHj;H HHH=X]H HHH=}[p#H HHH=`H H]UHHPHi HJH= JH= JH=" JH]UHH$HLLH}HuHUHԒH}t)LmLeMt跐LH\PLShHEH}t6HUHu^H =HcHUHEHUH}H/2LeH]C=vXCA$LeH]C=v6CA$HEH}uH}uH}HEHkaHEHpHhH(^H>H]UHHd$H}HH]UHHd$H}HǍH]UHHd$H}H藍貛H]UHHd$H}HuHUH_zH]UHHd$H}HuHUHMH +FH]UHHd$H}H"H]UHHd$H}H׌H]UHHd$H}H觌šH]UHHd$H}Hw蒚H]UHHd$H}uHD_H]UHHd$H}@uH.H]UHHd$H}uHH]UHHd$H}HuH賋ΙH]UHHd$H}HuH胋螙H]UHHd$H}HWrH]UHHd$H}H'BH]UHHd$H}uUMH H]UHHd$H}HNJH]UHHd$H}H藊貘H]UHHpHH=HZoHcH,HHH+HHHHHH HHH=HH55H=6H77H57H=H=hӍH]UHH蠉YHˆH=@H=@H=AH5侏H= X|H5H=ʈE|H5H=2|H]UHHd$H]LeLmLuL}H}HuHPHEHaH}zAHH}AHE@FH}QHEHpxH}YmHE@GH}EnHE@HH}AoHE@IH}]oH}FHH}(pHE@H}tyHEH}qHUHEHEHHEHbHEH}_wHE@AH}rHE@BH}gtHE<H}yHE>H}yHE@CH}tHEH0H}uHE8H}vHE@DH}yHMHUHHHHHMHUHHHHHMHUHHHHHUHEH@(HB(H}DHcHqHHHH9v轄HE؋E؃}EEEHELxIHÏIHwÏHHtHILCLLLA$HEuH}HLLAHEHEH-HH9v~DeA}CEfEăEHc]HEH@H9v~HEH4H}"D;e~HuH}dHUȋELuH]LeMt~M,$L=HLA0@uH}fHEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}fuUMLELMH`IIHHL%Mtf}LIL=HLLAHEHuH}cuH} qHUHEHHEHHUȋE@uH}d@uH}eLuH]LeMt|M,$Lu&HUHBxHEHHxHEHIHQHAHE@pHEƀHuH}HUH}HJ}HEH}uH}uH}HEH>HEHpHhH(u;HHcH u%H}uHuH}HEHP`o>?e>H HtDAAHEHLLLLH]UHHd$H}HuHsnHEHu,HEHpxHEH!HEHHuwHUHEHHEHu,HEHHuHEHpxHEH !HEH@IcH]UHHd$H}uHmHE;Et HUEHEH@bH]UHHd$H]LeLmH}uH(HmHE@p;EtMHEUPpHEƀHE@Pt)LeLmMtkI]H*LH]LeLmH]UHHd$H}@uHlHE:Et%HUEHE@Pt H}+H]UHHd$H}HWlHEHK"H]UHHd$H}HuH#lHEHH]UHHd$H}HuHkHEH@PaH]UHHd$H]LeLmLuL}H}H8kHEHW uLmLeMtziI$H)LEH]LmMtNiMeL(HA$AHELp`LmHEHX`HtiIL(LLDMA$H]LeLmLuL}H]UHHd$H}HuHjHEuLH}uCHuH=_[u-HE@PtHEH}HEƀH]UHHd$H}H7jHEHpH}VH]UHHd$H]LeLmH}HuH(iHEHH;EtnHUHEHHEHtOHEHu?HEH4u)LeLmMtgI]H*'LH]LeLmH]UHHd$H}HuHCiHEHH;Et H}H]UHHd$H]LeLmLuH}H(hHELh`LeHEHX`HtfIL|&LLAHUHHHEHH]LeLmLuH]UHHd$H]LeLmH}H [hHELHELMt9fI$H%LH]LeLmH]UHHd$H}HuUHgHEHu HEHMHUHuHEH]UHHd$H]LeLmH}HuH(gH})LeLmMtjeI]H%LHEHHEHxxH}H(H}uH}uH}HEHPpH]LeLmH]UHHd$H}HuUH fHEHH HEHEH]UHHd$H]H}HuH(fHEH}tHExtHEJHEH;PtPHExtHEHUHH;Bt)HExtHE<HUH;Bt HEHEH}#HcHqBdHH-HH9vc}EEEEuH}%HH}HEH}u;]~HEH]H]UHHd$H}HuUH(@eEEH~HuH}.HEH}u HE؋EEH]UHHd$H}HuH(dHEHx&BEHExuvfEuH}HEHE@PtH}uEE}u$HEƀHuHHEEEH]UHHd$H]LeLmH}HuH(dH}t}HEH&HH}HEH@uCHEIu4H}VLeLmMtaI]HV!L8HEH@ƀH]LeLmH]UHHd$H}HWcHEHKHEH"HEHEH]UHHd$H]H}HuHUHMH0bHEH HcHq7aHH-HH9v`}8E@E܃EHEHu"HH}U;]~H]H]UHHd$H]LeLmLuL}H}HuHUMHH8bHE@P t8D}LuH]LeMt `M,$LHLDAH]LeLmLuL}H]UHHd$H}HuHaHEH=pHpuHuH=WHH} HuH}EH]UHHd$H}HuUH@aEHuH}j}tdHEHH;EtH}Hs?HEHH;Et,HHH=)$"HH5H"/H]UHHd$H]H}HuUH `HuH=|HËuHIH]H]UHHd$H}HG`H]UHHd$H}H'`HEHW+EEH]UHHd$H]LeLmH}H _HEHt)LeLmMt]I]HYLH]LeLmH]UHHd$H]LeLmH}fuH8W_EEHH}NHEH}u-LeLmMt]I]HL8EEH]LeLmH]UHHd$H}H^HEEEH]UHHd$H}H^HExpEEH]UHHd$H}Hw^HExpEEH]UHHd$H}HG^HExpEEH]UHHd$H}HuH^HEHHUH}1H]UHHd$H]LeH}HuHUH0]HEH-HH9v[DeA}GEfDEEHc]HEH@H9v[HEH4H}.D;e~H]LeH]UHHd$H]LeLmLuL}H}H8]L}IH!HL%MtZLILHLLAHEH}H5FyiAHuH}|H]LeLmLuL}H]UHHd$H]LeLmLuH}H0g\HEItoH|H8uHmHxHuH^HEFuHEHxpu7HEL`pHELhpMtYI]HLuEHE@Pt6HEAuHEGuHEG@H}=AHEHxpuHE@PtEEHEHu3}uHuHEHHuHE}u8HELppLeHELhpMtXI]HLLH]LeLmLuH]UHHd$H}H0ZEHEHx6HtHEHxHxxtoHEH@HtYHEHxHPxHUHHEHEHPHHEHHEHEH;EHEH;E ЈEEH]UHH$HLLH}HuHUHYH}t)LmLeMtWLH<LShHEH}t.HUHu%HHcHUHEHUH}HgHEǀLHEHǀHEHǀHEHǀHEHǀHEfǀ<HEƀGHEƀDHEƀIHELh`HEL``MtVLH@LÉ=vVHEfJHEǀHEƀEHEƀBHEƀCHEǀHH=Y&<HUHHEHHMHOHPHHHEH}uH}uH}HEHS'HEHpHhH(#H&HcH u%H}uHuH}HEHP`&(&H Ht))HEHLLH]UHHd$H]LeLmLuH}H(VHEDt HHELh`LeHEHX`HtTILaLLAHUHH} H}wHuH}dHIIMt_TMuLLA@H}0HHu!u7HELp`LmHEL``MtTLHLLH}/!uHEf<u H}MH]LeLmLuH]UHHd$H]LeLmH}uH0U}|"HEHtH}7;E~0HՎHPHH=HH5H#HEHuHEH}t0HՎHPHH=BHH5H@#LeLmMtRI]HpLHEHutHEHǀHUHHHHH}<@H}]+H]LeLmH]UHHd$H]LeLmLuH}HuH8TH})LeLmMtQI]HLHEH(Hu NHEHuHEH LmLeMtQI$H=LHEHuHEHHcHqQHH-HH9vTQ]THEHuHH Hc]Hq[QHH-HH9vP]}}HEHuH}H0HEH HEHxp HEH EEEHUEH( }sHEHuHEHHHuȝHEfJu?HEJHELp`HELh`MtOMLLA$HEH 8 H}H踳H}uH}uH}HEHPpH]LeLmLuH]UHHd$H]LeLmLuH}HuH@SQHELuH]LeMt3OM,$LHLA0E}uuH}#HEHEH]LeLmLuH]UHHd$H}HPHEHH=EHcHEHEH]UHHd$H]LeLmH}HuHUH@sPHEHH}HEH}HEH}uHEH0tH}u$HEHUH0HHEHU8XLeLmMtMI]H LHEH}u"HEHUHHHEHUH]LeLmH]UHHd$H]LeLmLuL}H}H@cOL}LuH]LeMtGMI$IL HLLAHEH]LeLmLuL}H]UHHd$H}HNHEHu/HEHHuHEHHHEHEHHEHEH]UHHd$H]LeLmH}HuH(gNHE@Pt4H}LeLmMt;LI]H L8'H-H8uHHxHuHH]LeLmH]UHHd$H]LeLmH}HuHUHMDEHPMEHEHu/HEHDMHMLEHUHuHEEjLeLmMtTKI]H LHEHEHu-HEHDMHMLEHUHuHEEEH]LeLmH]UHHd$H]LeLmH}HuHUHMHHLEHEHu+HEHLEHMHUHuHEEfLeLmMt\JI]H LHEHEHu)HEHLEHMHUHuHEEEH]LeLmH]UHHd$H]LeLmLuL}H}HHKHEHtHuHHEH} HEH}hHcHqIHH-HH9v{IAA}rEfDEEuH}KHH`u7uH}.ILMMtHM,$LHAD;}~H}2HcHq"IHH-HH9vHAA}EEEuH}HHuVuH}HHH;Eu7uH}ILMMt*HM,$LHAuH}HIIMtGMuLLA@D;}~BH]LeLmLuL}H]UHHd$H}HuHIHEHEHu>HEHHuHEHHHEHEHHE,HEHuHEHHEH} HEH}tzHEH]UHHd$H}HpHHEHUHuHEHcHUu'HEHH}2HuHH8 H}eHEHtH]UHHd$H}HGHHEH H]UHHd$H]H}HuHUHMH0HHEHtHEHBHcHq2FHH-HH9vE};EE܃EHEHuTHH}U;]~H]H]UHHd$H}HGGHEHxpuHEH@pH@HEHEHEH]UHHd$H]LeLmLuL}H}HuH@FH}tHEHxpYHEH@p(HEHxptrH]LmMtDMeL8HA$HEL}ILmH]HtZDILLLLA$HUHBpHELhpLuHEHXpHtDL#LLLA$HEHHpHUHj@HAHQHE@PALuL}H]HtCL#L^LLDA$HuH}`WH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H8CEH} HcHqCHH-HH9v-CAA}REEEuH}ILMMtBM,$LrHA D;}~H]LeLmLuL}H]UHHd$H]H}HuUH(lDHEH=H)uHEHE}tHE耸FtHE@H}M }tHEHxxtHEHH}(}tHE耸GtHE@H}y)}tHE耸IuHE@H}*}tHE胸tHUHE}tHEHtHEHHEHHE耸AuA}tHE耸@t&H]=v AH} 4}tHE胸tHEH}62}tHEf<tHEH}y4}tHE耸DuHE@H}4H]H]UHHd$H}HGBHHEHEH]UHHd$H}HBHEHt EHEHNEEH]UHHd$H]LeLmLuL}H}HpAHEHt IHzL%sMt?ML$HLAxHUHHE}LuL}H]LeMt.?M,$LHLLAH}uXH]H}l!;AH*yUH}`Huo!H]HEHHEHa!HEHHEH+=HQ HA(HEHHEHEH]LeLmLuL}H]UHHd$H]LeLmH}H(;@LmLeMt'>I$HL@HEHHEHEH]LeLmH]UHH$HLH}uHX?HEHtLeMt=I$H1HHHHEHEEEHEEHEHMHgĎHPIHH=~HH5rHg HEHuāHEHEHLH]UHHd$H}H>EHEHuHEHHuEEH]UHHd$H}Hg>HEH t"HUHH=ŁHUH HEH HEHEH]UHHd$H}H=HEHHEH}uHEHuHEHHEHEH]UHHd$H}H=HEHEDH}oHEH}bHuHEHHEHEH]UHHd$H}H7=HEHHEHEH]UHHd$H]LeLmH}H0H]H]UHHd$H}HuH'HEH}HE}|0HAHPHH=g HH5HuH}H]UHHd$H}Hw'HEH[HEH}u3HEHu#HEHH=luEEEH]UHHd$H]H}H&H}HcHq:%HH-HH9v$}6]EEfEEuH}HH}~H]H]UHHd$H}HW&HEHEEH]UHHd$H]LeLmLuL}H}HuUH`%HEHH4LeLmMt#I]HtLuL}LuH]LeMt#M,$L:HLLAH}ueHE胸}VH]H}Q!;~}tH}XEUuH}U!HE̋ẺEEЉEnH}#HIIMt"MuLLA0EH}HIIMt"MuL[LAEHEH]LeLmLuL}H]UHHd$H}HuHc$HEH}HE@EEHUEH(Hu}sH]UHHd$H}HuHUMH #}HUHMH}ALH]UHHd$H}HuHUH#HEHMH}HH]UHHd$H}؉uHUHMDEH(X#HU؋EH(t"HH=eQHU؋MH(HE؋UH(}HuHU/H]UHHd$H}uHUHMH "HUEH(HuHUH]UHHd$H]H}H"EHEH Ht EH}HHuHxEEH]H]UHHd$H]LeLmLuL}H}HuH@!H}uHE@PuHEHH;Et'HEHuHEH|HcHqHH-HH9vAA}[EDEEHEHulILMMt7M,$LHAD;}~HEHHǀHUHEHHEHu*HEHHUHHEHHu2H}QH}H]LeLmLuL}H]UHH$`HLH}HuHO HEHDžHDžHDžHDžH`H cHHcHH}H9\HEDuHuH}H yA]HEIuHuH}H y]HEAuHuH}H y\HEGuHuH}H y\H}puHuH}H y\HEHpxHHHHEH@ HHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$H^ yH$HEHD$HuLLg yHH yH>H}HuH}HHHHHH}HHH HHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$ILH yHH5yH= HHH?H}HcHqZHH-HH9v}pDž|@|||H}IHXHuH+yHZHL;|~HEXH9XH-XH!XH}XHHt7HLH]UHHd$H}HHEGu/HEAu HEFuHECuEEEH]UHHd$H}HwHEHxxH58yCgHEEH]UHHd$H]LeLmLuL}H}HuH8HEHxxHufHtHEHxxHuQWH}(ucH}HuHEHt?HELx`LuH]HEL``MtMLH]UHHd$H}@uHHE@:EunHUE@HEGuHEAu H}H}u+HE@PtH}HHE@LH]UHHd$H}fuHHEf<f;EuHEfUf<H}H]UHHd$H}fuH HEf>f;EuHEfUf>H}H]UHHd$H]LeLmLuL}H}@uH8O HED:EtHE@Pu}uHUEDH}HuH}HHHE@PtSH}HuCH}pHHu)LeLmMt I]H?L@H}uHUHED<HELp`LmHEHX`HtfIL LLDEA$H]LeLmLuL}H]UHHd$H]H}HuHUMH(}uHEH$uH}Hu H}uHHUHuH'HEHpH=Lju HEHx7H]H]UHHd$H]H}H SHEHuHEHHcHqHH-HH9v#}nEfEEHEHuHEHEH;Eu2HE耸Au#HEHU@:@t HEƀG;]~H]H]UHHd$H]LeLmLuL}H}HuH8OHEHH;Et5L}LuLeMt!M,$LLLAH]LeLmLuL}H]UHHd$H}HHEHeV"H]UHHd$H]LeLmLuH}HuH0HEH=H@uHEHpxH}b HE@IH}f HEDLeLmMt#I]HLDHEHH}7m HEH}tn HE@DH}p AHuH=@莴uHuH=@訴HH}|z HuH}H]LeLmLuH]UHHd$H}HuHSHE@HH]UHHd$H]LeLmH}HuH(HUHEHH}询ugLeLmMtI]HyLHHEHLeLmMtI]H=LHEHH[H]LeLmH]UHHd$H]LeLmLuL}H}H8#HEHEAIIH]HtHIL蜿LLDH}A$H]LeLmLuL}H]UHHd$H}HHEH}"HHxH5xH=FH]UHHd$H}HuHUMH <HEHu#HEHHHMHUHuH}腞H]UHHd$H}HuHH}uHEHHEHHEHHfH]UHHd$H}HuHsH}u8HEHHUHH;tHEHHH]UHH$HLLH}HuHUHH}t)LmLeMtLHlLShHEH}t HUHuHHcHUudHEHEǀHEHǀHUH}H&HEH}uH}uH}HEHHEHpHhH(QHyHcH u%H}uHuH}HEHP`KAH Ht HEHLLH]UHHd$H}HW[EEH]UHHd$H}H'HEHEEH]UHHd$H}uHHEHUH]UHHd$H}HHEH+y"H]UHHd$H}HuHsHEHuHEHHuHEH]UHH$HLLH}HuHUHH}t)LmLeMtLH茺LShHEH}tHUHuH:HcHUu`HEHUH}HcHEǀ/HEƀHEH}uH}uH}HEHHEHpHhH(uH蝦HcH u%H}uHuH}HEHP`oeH HtDHEHLLH]UHHd$H]LeLmH}HuH(gH})LeLmMtJI]HLLmLeMt!I$HŸLH}H}HCH}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuL}H}H8HEHgD}DuH]LeMtkI$IL HDDA H]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUHHHDH8uHDH8ou}=HUHLmLeH]HtL3LQLLAHEHTtHCHUHHEHH]LeMtGM,$LHAH]LeMtM,$LHAH0CH8uH!CHxHuHCHELx`EHEDmLuHEHX`HtHILWLDELA$H]LeLmLuL}H]UHHd$H]LeLmH}H KHdBHH;Et7LeLmMt%I]HɵLH)BHH]LeLmH]UHHd$H}HHEHuHEHHuHEH]UHHd$H}HuHHEH=4HpHUHB H]UHHd$H}HGHEHpH=Д3HUHR :FEEH]UHHd$H}HHEHG u8HEHpH=nѧHHEH@ HxxtEEEH]UHHd$H}HHEHG u2HEHpH=aHUHR :GtEEEH]UHHd$H}HHEHkG u2HEHpH=HUHR :ItEEEH]UHHd$H}HHEH{G u2HEHpH=聦HUHR ;tEEEH]UHHd$H}H7HEHG u衤HUHR ff;<tEEEH]UHHd$H}HWHEHkF u2HEHpH=ΐ1HUHR :DtEEEH]UHHd$H}HHEHK EEH]UHHd$H]LeLmH}@uH(LeLmMtI]H7LuHEHx @u藻H]LeLmH]UHHd$H]LeLmH}HuH('LeLmMtI]H路LhuHEHx HuH]LeLmH]UHHd$H]LeLmH}@uH(LeLmMtI]H7LpuHEHx @uH]LeLmH]UHHd$H]LeLmH}@uH('LeLmMtI]H跮LxuHEHx @uH]LeLmH]UHHd$H]LeLmH}uH(LeLmMtI]H8LuHEH@ UH]LeLmH]UHHd$H]LeLmH}HuH('LeLmMtI]H跭LuHEH@ HHu@,H]LeLmH]UHHd$H]LeLmH}uH(LeLmMtI]H(LuHEHx uH]LeLmH]UHHd$H]LeLmH}fuH(LeLmMtI]H觬LuHEHx uH]LeLmH]UHHd$H]LeLmH}@uH(LeLmMtI]H'LuHEHx @uH]LeLmH]UHHd$H}HuHUHH]UHHd$f}uHE}&HfEEH]UHHd$f}HuHUHHUfEf%fHEE% uHEfEf%fuHEE%@uHEE%u HEH]UHHd$H}HHEpHEHx#HEHEH]UHH$HLLH}HuHUHH}t)LmLeMtLHEE.EEEEEEHc]HcEH)qHqHH-HH9v~]HEUH]H]UHHd$H]H}uH( EErtEEEEHc]HcEH)q:Hq/HH-HH9v]HEUH]H]UHHd$H]H}uH(pEErvEEEEHc]HcEH)qHq|HH-HH9v]HEUH]H]UHHd$H]H}uH(EEr/vt EEEE EEHc]HcEH)qHqHH-HH9vZ]HEUH]H]UHHd$H]H}uH(EEg%EEEEEE EEEEEEnEE^EENE E>E E.E EE E EEHc]HcEH)qHqHH-HH9v^]HEUH]H]UHHd$H]H}uH(EEbvv"v*v2@EE>EE.EEEE EEHc]HcEH)qHqHH-HH9vc]HEUH]H]UHHd$H]H}uH(EEnvt!t,t7tBPEENEE>EE.EE EE EEHc]HcEH)qHqHH-HH9vg]HEUH]H]UHHd$H]H}uH(EE\ *45<FGQOSW[_jEEeEEREE?EE,EEEE EE EE E EE EE EE EE EEEnEE ^EE!NEE#>EE%.EE'EE)EEHc]HcEH)qHqHH-HH9vy]HEUH]H]UHHd$H]H}uH( EEbvv"v*v2@EE>EE.EE EEEEHc]HcEH)qHqHH-HH9v]HEUH]H]UHHd$H]H}uH(0E ErVttt't2@EE>EE.EEEEEEHc]HcEH)q HqHH-HH9v]HEUH]H]UHHd$H]H}uH(PE Ezt%t0gv2v:vBPEENEE>EE.EE EEEEHc]HcEH)qHqHH-HH9v]HEUH]H]UHHd$H]H}uH(@E E!vmvxEEEEEEEEnEE^EE"NEE&>EE*.E E.E E2EEHc]HcEH)qLHqAHH-HH9v]HEUH]H]UHHd$H]H}uH(E Ebvv"v*v2@EE>EE.EE EEEEHc]HcEH)q[HqPHH-HH9v]HEUH]H]UHHd$H]H}uH(E E-titwv|EEEEEEEEEEnEE ^EE NEE >E E .E EE EEEHc]HcEH)qHqHH-HH9v8]HEUH]H]UHHd$H]H}uH(EErAt tt"0EE.EEEEEEHc]HcEH)qHqHH-HH9vh]HEUH]H]UHHd$H]H}uH(EEvcvnvyEEEEEE EEnEE^EENEE >EE%.E E*E E+EEHc]HcEH)q&HqHH-HH9v]HEUH]H]UHHd$H]H}uH(`EErAt tt"0EE.EEEEEEHc]HcEH)qPHqEHH-HH9v]HEUH]H]UHHd$H]H}uH(EErtEEEEHc]HcEH)qHqHH-HH9vB]HEUH]H]UHHd$H]H}uH(EEv*v2v:vBvJvR`EE^EENEE>EE.EEEE EEHc]HcEH)q{HqpHH-HH9v]HEUH]H]UHHd$H]H}uH(EEzv"v*v2v:vBPEENEE>EE.EEEE EEHc]HcEH)qsHqhHH-HH9v ]HEUH]H]UHHd$H]H}uH(EEtfttvyEEEEEEEE nEE^EENEE>EE.E E"E E#EEHc]HcEH)qHqHH-HH9v^]HEUH]H]UHHd$H]H}uH(EEr,tt EEEEEEHc]HcEH)qHqHH-HH9v]HEUH]H]UHHd$H]H}uH(@EEavv!t,rGv2@EE>EE.EE EE EEHc]HcEH)q HqHH-HH9v]HEUH]H]UHHd$H]H}uH(PEES &-4;BIPWakuEEEEEEEE oEE\EEIEE6EE#E EE EE EE EE E EE%EE*EE/EE4xEE9eEE>REEC?EEH,EEMEEREEWEE\EE`EEdEEhEElEEmEEnnE Eo^E!EpNE"Eq>E#Er.E$EsE%EtEEHc]HcEH)q*HqHH-HH9v]HEUH]H]UHHd$H]LeLmLuL}H}HuUHPLHŎHUL}DuLmH]Ht#HILŃLLDE؉A$HEHEH]LeLmLuL}H]UHHd$H}HuUMH(HH HH HU؋Et2Err1HH!H HH!H H HU7}t/HH!HKHH!HH HU}t E}tEEtttE Ettt/HH!H HH!H H HUEttr ttr/HH!H HH!H H HU=Ett/HH!HHH!HH HU}}؋u`E؃}}܋u`EHEH]UHHd$H]LeLmLuL}H}HuUHMHX8HŽHUL}DuLmH]HtHIL豀LLDEЉA$HEHEH]LeLmLuL}H]UHHd$H}HuHUMLELMH8HEHEH]UHHd$H}uHUHMH(\EEH]UHHd$H}ЉuUMLELMH8&EEH]UHHd$H}uHEt ttEEEEEH]UHHd$H]LeH}HuHUMLEDMH`|H}uHEHHUH@HE,EEEEHEHEHEHEȋ]HHHH9v1LeMtMd$LH-HH9vDHuHuH5HMH}ASSHEHUH]LeH]UHHd$H]LeLmLuL}H}uHUHPlE%tE=voEEpH}t}3KÉ=vC]JHUHHEDzDuLmH]HtL#L}LDHuDA$EEH]LeLmLuL}H]UHHd$H}HuHUMLELMH@脿HEHEHEHEȋEtttH}@H}+HEHUH]UHHd$H]LeLmLuL}H}HuHUMLELMHxHEHEHEHEȋEHEEHEL}LuHSPHHIPL Mt蚼I$IL;|HLLEEAAE% uH} uHU HEHHEHBH]LeLmLuL}H]UHH$0H8L@LHLPLXH}HuHUMLELMH˽HEHEHEHEEt; 4  EE|=tt 1E(HuUH}u EEHuUH}u)]HHHH9v]vHuUH}u&]HHHH9v׺]:HuUH}2u$]HHHH9v蛺]HuUH}uHuUH}u$]HHHH9vK]̋EHEHEHhHEH`L}HML0HML MtM,$LyALLHhH`EAA<}t}@HU&EHuUH}u)]HHHH9vr]vHuUH}:u&]HHHH9v3]:HuUH}u$]HHHH9v]̋EHEHEHEHEHEL}HRLL0HCLL Mt蔸M,$L8xALLHUHMEAAE~ HuUH}!uHuUH};u E&HuUH}|u EEMHuH}HuUH}uDHuUH}+t.H}rHuHUAHg HuUH}RuHuUH}lu E&HuUH}u EEMHuH}HEHEHEHEH}迾HuHUH? $HuHUH HuHUH #EV~!t%|D~$~%~&-E+E"EEEEEt ttt$]H@HHH9v]HuUH}Qu)]HHHH9vڵ]vHuUH}u&]HHHH9v蛵]:HuUH}u$]HHHH9v_]̋EHEHEHxHEHpL}HHHAHHL MtM,$LtEHLHxHpEAAOE rrHuHUHl&EtttHcUHcEH)qѴHUEt/Hc]Hq貴HH-HH9vU]HcUHcEH)q耴HUEt/Hc]HqaHH-HH9v]DEċMUuH}HcUHcEHqHEHc]HqHHHH9v観ދUH}H衄Hc]Hq³HHHH9vdދUH}6|}tHcEHc]HqyHHH-HH9v]Hc]HqGHHHH9vڋuH}HHc]HqHHHH9v觲ڋuH}y{}tEt"t7tIt[tm{HuHUHsHuHUH\HuHU HEHuHUH.HuHUHHuHU H{6}t,HuHUHZHuH}CEH8L@LHLPLXH]UHHd$H]H}@uHP}uHE@؉EHE@܉EHEHc@HqMHUHcRH)q;HH?HHHUHcZHqHH-HH9v述]HEHcXHqHH-HH9v茰]HEHcXHq趰HH-HH9vY]HE@܉EcHEHcXHqtHH-HH9v]HEHcXHqAHH-HH9v]HEHc@HqHUHcRH)qHH?HHHUHcZHqݯHH-HH9v耯]HEHcXHq誯HH-HH9vM]HEHcXHqwHH-HH9v]HEHcXHqDHH-HH9v]PHEHEHxHu苚HEHEHxH跲HEHEHxHuRHEHuHEHx&HEHxHu%H=>HEHxHu H$>H]H]UHHd$H}HuHUMDEH0دHEHxЋuH!HEHx貐EHEHxЋuHHEHx虞EHEHxYHHEHxHuHUMHEHxuQHEHxuQH]UHHd$H}HuHUMH( HEHxЋuHU.HEHEHxHMHuHUqLH}H]H]UHHd$H]H}HuHUHh[HEHEHEHEHcEHc]Hq虪H q莪Hq胪HH?HHHH-HH9v]Hc]H qGHH-HH9v]Hc]HqHH-HH9v軩]HcEHEHcEHqHEHEH;EH]H]HH-HH9vj]HcUHcEHq蕩Hc]Hq臩HcEH)qyHH?HHHH-HH9v]HcEHcUH)q:HEH} HHEHc]HqHH-HH9v赨]HEHU؋ HcHH!HH!H ϋHcH HH!HH!H H}EEHcEHc]Hq膨HH?HHHH-HH9v]EHcHH!HH!H EHcH HH!HH!H HMȋE܉EEEEHcHH!HH!H EHcH HH!HH!H HMп臫HEHEHxHu"HEHuHEHx|HEHxHuH 7H]H]UHHd$H}HuHUMLELMH0ĨH]UHHd$H}HuHU؉MLELMHX脨HH8tHu؋UH}u EEHu؋UH}Au E&Hu؋UH}u EEHE HD$E$MԋUDMDEHuH}H0H]UHHd$H]LeLmLuL}H}HuHUHMDELMHh菧}uIH}u@HEL8DpLmH]Ht_L#LeLLDA$xEE}uDL}LuLmHEHEH]HtL#LdH}LLLA$H]LeLmLuL}H]UHHd$H}HuHUMLEDMH0褦H]UHHd$H}HuUH pEEtrtr2} t }}}t} } }~HcEHHHHEEH]UHHd$H}HuUH EU%r2} t }}}t} } }~Et t tEEH]UHHd$H}HuUH PEU%r2} t }}}t} } }~Et t tE}t }tEEH]UHHd$H}HuUH 谤EEtt}} |EEEtt}EEH]UHHd$H}HuUH @EEtt}EEH]UHHd$H}HEEH]UHHd$H}HףH]UHHd$H}H跣EEH]UHHd$H}H臣EEH]UHHd$H]H}HuUMH0IE?.É=vO]܋EH]H]UHHd$H}HuHUHMH H]UHH$@HXL`LhLpLxH}HuHUMLEDMH蛢HUHHEHHEEEE%EE%EEЃ EEЃu EEЃu EEEЃu EEЃu EEE%EHEH L->MtДLHuTLLxHEHuH}(H}u HuH}}dHEHEH]LeLmLuL}H]UHHd$H]@}HC2 HEHHtH!EEH]H]UHHd$@}uHEHMHHEEH]UHH$pH}uH讕HEHHHuHxv H5?H=DEHxHqHx H]UHHd$H+HaHEHItHEHuHH=xH]UHH$HLLLH}HuHUH譔H}t)LmLeMt萒LH5RLShHEH}tHUHu`H>HcHUnHEHUH}HHEƀ,HEƀHEǀHEǀHEǀHEǀHH=\U'HUHHEH0HEHHMHA HPhHHpHEHHUBP@HH=a|JHUHHEHHUH HHHPLuALmMtI]HPDLHEH}uH}uH}HEHabHEHpHhH( _H4=HcH u%H}uHuH}HEHP`bcaH HtddHEHLLLH]UHHd$H]LeLmH}HuH(H})LeLmMtڏI]H~OLHEHHEHIH}HpH}uH}uH}HEHPpH]LeLmH]UHHd$H}HGHEtUH}_sHEH}u?HEt'HE tHEt H}UV H}ZH]UHHd$H}HuHUH诐HEHHUHuH]UHHd$H}HuHsHEHHuoH]UHHd$H}@uH3HEHuH]UHHd$H}uHHEHuH]UHHd$H}HuUH谏EHuH}螵}t7HEHu'HEHH@0H;EtH}H/H]UHHd$H}@uH3HEH/E}u(}uHEH.uEEEH]UHHd$H}HǎHEHH@XHEHEH]UHHd$H}H臎HEH@ EEH]UHHd$H}uHDHEHED8EEH]UHHd$H}HHEHH@0HEHEH]UHHd$H}HǍHEH@LEEH]UHHd$H}H臍HEH@`EEH]UHHd$H]LeLmH}H0;LeLmMt'I]HJLHuELeLmMtI]HJLHEHEHuOHEHHu8HE胸})H]HEHH6 ;EHEtHEHHxXuHEHL`XHEHLhXMt I]HILtHEHL`XHEHLhXMt؉I]H|IL0LHEHL`XHEHLhXMt蒉I]H6ILEEEH]LeLmH]UHHd$H]LeLmH}HuH('HEHHuSLmLeMtI$HHLLmLeMtֈI$HzHLxH]LeLmH]UHHd$H}uH蔊HEHuaH]UHHd$H}uUHQHEHUu$H]UHHd$H]LeLmH}HuH(HEHHx0u7HEHHx0HEH HEHHx0HuHEHHu$HEHHx0u7HEHHx0HuLHEHHx0HEH} LmLeMtII$HFLLmLeMt I$HFLxH]LeLmH]UHHd$H]LeLmH}uH(ȈHEHu$LmLeMt衆I$HEFLLmLeMtxI$HFLxH]LeLmH]UHHd$H]LeLmLuL}H}HuH8HEH裉uFHELHELp`H]HEL``MtMLEHLLALmLeMt賅I$HWELLmLeMt芅I$H.ELxH]LeLmLuL}H]UHHd$H}HuH3HEHH;Et HuH}H]UHHd$H]H}HuUH0܆EHuH}zWHuH=W$7uHEHEHEHtHE|]HEHHHEH}tH]H} ;~%HuH}HEH}H]H]UHHd$H}uHHE;Et\HUEHEuHE@Pt H}@jHE@PtHEHUH]UHHd$H]LeLmLuL}H}uH8`HE;EtHUEH}ĆuoHEDHELp`H]HEL``MtMLBHLDALeLmMtԂI]HxBLLmLeMt諂I$HOBLxH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uH8@HE;EtHEUH}褅uFHEDHELp`H]HEL``MtMLAHLDALmLeMt贁I$HXALxHE@Pu)LeLmMt|I]H AL@H]LeLmLuL}H]UHHd$H]LeLmH}uH(}|E}EHc]HEHH9u=HEHu8LeLmMt贀I]HX@L@H]LeLmH]UHHd$H]LeLmLuL}H}uH8PHE;Et }|HEUH}謃uFHEDHELp`H]HEL``MtML?HLDALmLeMtI$H`?LxHE@Pu)LeLmMtI]H(?L@H]LeLmLuL}H]UHH$ H(L0L8L@LHH}@uH HDž`HUHpJMHr+HcHhHEuEHjH8uoEHEHuHbjHE}uHH}IL}MLHtb~L#L>LLA$H}8E}t|HXHEH4j HPLmLuHXLXMt}M<$L=HLL鋅PA u4H}HHuH&H}HHuH螵E}t}uH}NHtHEHsiẼ}}`} ~XẼ vM}UHiH|u4HEHẼ v}UHTiHtHH}bE}uHEH}H`H`H} HEHhh4H}輹HEtt@H}HEtt@H}:MH`HhHt8OH(L0L8L@LHH]UHHd$H}@uHx}HEHUHuJHA(HcHUmHE:EtZHUEHEu>HEu/HEH}Hu=HuH}@ HEƀLH}HEHt9NH]UHHd$H}HuUH|UHg4H}*HEH8H5DkxHtH}HH]UHHd$H}H|HEHK"H]UHHd$H]LeLmLuL}H}H0C|HEHgHELHELp`H]HEL``Mt zLIL9HLLAHEDHELp`H]HEL``MtyLILe9HLDAHEDHELp`H]HEL``MtzyLIL9HLDAHEDHELp`H]HEL``Mt1yLIL8HLDAH]LeLmLuL}H]UHHd$H}HzHEH[-uHEtEEEH]UHHd$H}HpzHEHUHuFH$HcHUH}-HEu H}@HEuTHEuEH}HuץH}t/HEH}HuHuH}HEƀZIH}豵HEHtJH]UHHd$H]LeLmH}H {yHEH_LmLeMt[wI$H6LxHEƀH]LeLmH]UHHd$H}HyEKEHEH]UHHd$H}HuHxHEH'tHEHH]UHHd$H}HuHxHEH}HcHEHxxt1HEH@xtHEH@x@H}胰H]UHH$HLLH}HuHUHwH}t)LmLeMtuLHl5LShHEH}tHUHuCH"HcHUu[HEHEHUHPxH}H H}@蟯HEH}uH}uH}HEHFHEHpHhH(ZCH!HcH u%H}uHuH}HEHP`TFGJFH Ht)IIHEHLLH]UHHd$H}@uHcvHEHxxtHEH@xt@uH}fHEH@x@H}HH]UHHd$H}@uHuHEHxxtHEH@xt@uH}HEH@x@H}H]UHH$HLL H}HuHhuH}t)LmLeMtKsLH2LShHEH}tHHUHuvAHHcHUHEHEH@xHE@HE@ HUHH=.[HUHBXHEHPXHEH  HJ HB(HE@`H}HEH}uH}uH}HEHCHEHpHpH0@HHcH(u%H}uHuH}HEHP`CECH(HtgFBFHEHLL H]UHHd$H]LeLmH}HuH(sH})LeLmMtzqI]H1LHEHxxu)HEHxxHuHtHƐ;"HEH@xHEHxX+HEH@XH}HV+H}uH}uH}HEHPpH]LeLmH]UHHd$H}HrHEHxhuHEHxpHuHEPhH]UHH$`HhLpLxLuL}H}ȉuUEHMLELMH=r與AILMMtpI$IL/HDA0EHEHx0uH}uHEH@0HEHEȋUHM؋D8}uHE؃8t HEHU؋@8}HkMHuHc\HHEȋPLEMH}Hu~ HUHEHHEHBHEHBHEHxPuH}5u HE HHEHpPH HU؉}HkMHuH[HEMH}Hu֟ HUHEHHEHBHEHBlHEH@(HEH}u?H"_xH}`Hu HUHEHHEHBHEHB6H^xHH} HUHEHHEHBHEHBEHEEtt=_mH}<wEE HEmH}<wEE} HEBH}t<wEE+H}]<wEE} HEHUȋEHM؋DHhLpLxLuL}H]UHHd$H}HnHEHx0uE HE@`EEH]UHHd$H]LeLmLuH}HuH8nHEH@XH;EtsHEHxXt!HUHH=T:HUHBXHEH@0H}HEHPXHHHJ HB(HELpXH]HEL`XMtkM,$L+HLAHEHHXHUH1HA HQ(HE@`HEL`XHELhXMtkI]HI+Lt H}a HEL`XHELhXMtekI]H +L2HEL`XHELhXMt*kI]H*L0HcHELpXHELhXMtjMeL*LA$HcHHHHtHEL`XHELhXMtjI]HN*L0HcHELpXHELhXMttjMeL*LA$HcHHHHHH-HH9vPj]}EHEUP`H}KH]LeLmLuH]UHHd$H]LeLmH}HuH(kHEHxPHu薷HtpHEHxPHuHEHxPu)H} HEH@0H}HE@LLmLeMtOiI$H(LH]LeLmH]UHHd$H}uHkHE@ ;EtHUEB HExt H}H]UHHd$H}HjHEHx(uHEH@(EEEH]UHHd$H}HgjHEHx(uHEH@(EEEH]UHHd$H]LeLmLuL}H0jRIALMMtgM,$L'HDA0EEH]LeLmLuL}H]UHHd$H]LeLmH}HuH(wiHEHxxu2HEHxxHuHtHƐM!HEH@xH}H}?uHEL`XHELhXMt gI]H&L0HEL`XHELhXMtfI]Hs&Lr!HUHBxHEHxxHuHtHƐ!H}HEHPXHEHxxHuHtHƐ&!HEH@0H}!HEH@XH;Et)LeLmMtfI]H%LH]LeLmH]UHH$pHxLeH}HuHUHMLEDMEHgHEHEHEHEHEHxXtE;E} E;E}LMLEHMEЋU uH}H}t }|xHcEHc]HqeHH-HH9v-eHcELceIq[eLH-HH9vdDDMDEHuH} HEHUHxLeH]UHH$`H}HuHUHMLEDMHmfD$`ED$E$HTxDMLEHUHMHuH}@HEHUHEHEHEHEHEHUH]UHHd$H}uHeHUED8EEH]UHHd$H}HeHEHpXH}H]UHHd$H}HweHEHx8H H]UHHd$H]LeLmH}uUH0%eHUED8;EtPHUMED8HUE|8} H}LmLeMtbI$Hz"LH]LeLmH]UHHd$H]LeLmH}HuH(dHEH@0H;EtKHEHUHP0HEHx0u H}3LmLeMt?bI$H!LH]LeLmH]UHHd$H]LeLmH}uH(cHE@L;Et3HUEBLLmLeMtaI$H^!LH]LeLmH]UHHd$H}@uHscHE@`:EuHEUP`H}H]UHHd$H]LeLmLuH}uH0cHE;EtaHUEHEtCHEHELpXHEL`XMt`M,$L] L@A`H]LeLmLuH]UHHd$H}HgbHEH@(E@EEHEUD}sH]UHHd$H}HbHEHxPHSH]UHHd$H}HuHUH aHEHHEH0HPH}#u EE@EH]UHHd$H}HgaEEH]UHHd$H}H7aEEH]UHHd$H}HuHaHUHEHB(H]UHHd$H]LeLmLuL}H}H8`EHExuHE@ ttt EEHrH\t t tPEJEDuIALMMt-^M,$LHDA0EDRuIALMMt]M,$LHDA0EEH]LeLmLuL}H]UHHd$H}H_HEHx(u HEx}5HEHxPu(HEHx0uH}FEEEH]UHHd$H}uUH_}}}~HMEUTH]UHH$HLLLLH}HuHUH ^H}t)LeLmMti\LHLShHEH}t*HUHu*HHcHUHEHUH}H!HH=NHUH(HEH(HUBP@HEH(HEH(_HEH(HMHHHBhHJpHH=+HUH8HEH8HUH HHHPH]Ht2[L+LH]Ht[L#LLA$HxHxIHEHAGHAHALeMtZM4$LYDꋅAHAHUHE苀XXHEǀLHEƀ\HEƀaHEƀ_HEƀZHEǀTHEǀPLmAH]HtYL#LDLA$HHEƀ[HEǀdHEH}uH}uH}HEH)+HEHpH`H 'HHcHxu%H}uHuH}HEHP`*Y,*HxHt-~-HEHLLLLH]UHHd$H]LeLmH}HuH(ZH})LeLmMtXI]HNLHEH(HEH8H}HH}uH}uH}HEHPpH]LeLmH]UHHd$H}HZHE]uHE0t HEHEH}@HHHEHEH]UHHd$H]H}HuH8YH}t HEH} 2HcHqWHH-HH9vsW}EfEEuH}1HEHuH=0 u=HEHEHEH@HUЋ0;0tHEЀ]u HEHEDHuH= uHuH}HEH}u;]~XHEHEH]H]UHHd$H}HgXHEH[WH]UHHd$H]LeLmH}uH((XHEd;Eu6HEUdLeLmMtUI]HL@H]LeLmH]UHHd$H}@uHWHE\:EuHEU\H}H]UHHd$H]LeLmH}@uH0WWHE@PuHEU^ HE0tEHE]:EuHE]uHE\tHE]EHUE]HEhEHE]uHEǀhHEaHMHAhHE]:EuHEh;Eu)LeLmMtLTI]HL@}u H} H]LeLmH]UHHd$H]LeLmH}@uH(UHE`:Eu6HEU`LeLmMtSI]HYL@H]LeLmH]UHHd$H]LeLmH}HuH(WUHEH(HuLmLeMt/SI$HL@H]LeLmH]UHHd$H}uHTHE0;EuHEU0H}M H]UHHd$H}uUHTHEH(Uu+H]UHHd$H]LeLmH}HuH(GTHEH(Hx0u7HEH(Hx0HEH8 HEH(Hx0Hu]L}Lu؊EHLmH]Ht>L#L8L@HLLA$HEEEEE}u}u ƅ<ƅ<H]LeMt,>M,$LHA@HEL4HE[uH}HkHu~HEH@HEHHHEPHELcPIHI9u=LHHH9v=HEHcPHHH9u=HH-HH9vF=H@DE<u$HET}4rrAHEHcTHcHH)q*=HH-HH9vHEHEL@DHLmH]Ht&L#LLLDA$xujHEHH(HE苰HELHEL0LhHEHHt|&L#L!LLLA$x=HH$HEH耎HEHUH@HEȋHHEHUHHELzILMMt%I$ILHLEMHUȋEHuAP=HHEHHEHUH@HEHHEHEHHULxILMMty%I$ILHLEMHUEHuA@HEHUHUHEHHEHBHhLpLxLuL}H]UHHd$H]LeLmH}؉uUMDEH@&EMUuH}AHE@Pu}tH}.uHE؀]tHEǀhLeLmMtQ$I]HLHH=âu7LeLmMt$I]HLH@H谅LeLmMt#I]HL@HEƀ_H]LeLmH]UHHd$H]LeLmH}uUMH@r%EUuH}HE@PuHE_uHE]u ES}}3HE;E"}}HE;E EHEaHEHEh;Eu6HEU܉hLeLmMt"I]H?L@H]LeLmH]UHHd$H}؉uUMDEH(J$EMUuH}A肎H]UHHd$H}HuUH$EHuH}I}t7HEH(u'HEH(H@0H;EtH}H?H]UHHd$H}HuH#HEHH} HEH]UHHd$H]LeLmH}HuH(7#HEHH}HE]u+LeLmMt!I]HL)LeLmMt I]H}LH]LeLmH]UHHd$H}H"HEHF2"H]UHHd$H]LeLmLuL}H}HuHhO"HEXuHEu H}@DEHE@PtHE_uHEhEHEƀ_HE0t^HEaHMH hHEh;Eu)LeLmMtI]H0L@dHEfx}VHEPHE;|@HEfx}2HEPHE;|HE]@H}EHEILuLeMtI$ILLLAHEuHEHExD3HELeLmMtI]H0LHEHUHEHEHEHE؋E;E}"E;E|E;E}E;E|u-ELeLmMtI]HL}u)LeLmMtI]HLH]LeLmLuL}H]UHHd$H]LeLmH}uH(HEL;Eu6HEULLeLmMtVI]HL@H]LeLmH]UHHd$H]LeLmH}@uH(HEH;:Et}uHUHEX࿉XHUHEX@XHEH(UH 4YLmLeMtI$H)L@H]LeLmH]UHHd$H]LeLmH}HuH0'HE@PuHEHc0HEH;PtHEH@HEHEH;EuHE耸]ubHE]uSHEƀ]HEaHMHhLeLmMtI]H&L@HUHE芀\\H]LeLmH]UHHd$H}H'HEHWH}HE^uHE@^H}oH]UHHd$H}HuHUHHEH(HUHuH]UHHd$H}HuHHEH(HuH]UHHd$H]LeLmH}@uHUHMHp/HEH(L`XHEH(LhXMtI]HLuPH}HtH}t'HEH(HuEEGH}QHEHxHEH(LMLEHMϨEЉE؋EԉEHEH]LeLmH]UHHd$H}uHHEH(ED8EEH]UHHd$H}HHEH(H@0HEHEH]UHHd$H}HHEH(@LEEH]UHH$HH}@uHUHMH >HEHDžPHUH`vHHcHXHE[uH}HPEHPuHuH}EEHEHt(]HqHHH9v]HEH H1HEH8HHHcHHEHxH HH}HEH]HtH[HH-HH9vHuHuH5DEHMH}CHuH}1HEH1HHu5HHtHc]HcEH)qHH-HH9ve]Hc]HcEH)qHH-HH9v3]EEHPSH}SHXHtHEHH]UHHd$H]LeLmH}H(HEH(tDHEH(L`XHEH(LhXMt[I]HL(EHEH(EEH]LeLmH]UHH$`H}HuHUHMLEDMHHEH(uiED$E$HEHxD$H}bHEH(DMLEHUHMHu莮HEHUHEHEHEHE1KZHEHUHEHEHEHEHEHUH]UHHd$H]LeLmLuH}HuH0LuLeMtM,$L@LAH]LeLmLuH]UHHd$H]LeLmLuH}H(wHE@PumHEat^H}uO蠷HtCHEƀaLuALmMtI]HDLH}H]LeLmLuH]UHHd$H]LeLmLuH}H(HE@PuHEauHEƀaH}uHE_u:LeLmMtQI]HLt HEƀ_LuALmMtI]HDLH}H]LeLmLuH]UHHd$H}HuHHEH}H]HuH=0HUHB H]UHHd$H}HgHEH@ HEH}rduLHE胸0u=HE耸\u.HEHpH=HU芀:]tEEEH]UHHd$H}HHEH@ HEHuH=Xu.HEHpH=>HU苀;0tEEEH]UHHd$H]H}HSHEHdu8HEHx HEHpH=;tEEEH]H]UHHd$H]LeLmH}uH(LeLmMtI]HXLuHEHx u艼H]LeLmH]UHHd$H]LeLmH}@uH(GLeLmMt3I]HLpuHEHx @u臹H]LeLmH]UHHd$H]LeLmH}uH(LeLmMtI]HXLuHEHx UԻH]LeLmH]H鄮HԮHHHUHH]UHHHH=[H]UHHd$HXHHEHHEHHEHHEH׏HEH=ΏHEHHEH_HEHKHEH%HEH7HEHuH H=8w>HHEHuHH=>w=H]UHHd$H]LeLmLuH}HuHUHMLEHxHEH(@XEHEL(HEL(Mt M,$LSLA@HUHHEHHEȊEHEHEHEHEEЈEELmLeMtC I$HLELeLmMt I]HLu8EHc]HqF HH-HH9v ]6EHc]Hq HH-HH9v ]HUHEHHEHEDEMLMHuHUH}^HEL(]HEL(Mt* M,$LLA@HUHEHHEHEЈH]LeLmLuH]UHH$HLL L(H}H IHOύL%HύMtt MLHLA8HEHUHuHζHcHUuEHELxLeLmMt I]HLLH}yHEHt^HxH8(HPHcH0uH}4*H0Ht HEHLL L(H]UHHd$H}H7 HEH[&"H]UHHd$H}H EEiHEH]UHHd$H]LeLmLuH}@uH0 EH}@m}uHEuPHEHu@HEHDLeLmMtdI]HLDH2LuA LmMt0I]HDLHH}H]LeLmLuH]UHHd$H}H HEH諯uHUHEX࿉XHUHEX@XH]UHHd$H]H}HuHo HEHH}HEXHHHH9v]HEXH]H]UHHd$H]LeLmLuH}uH0EH}膄HE tYHEHuHEH;Et/LuLeMtM,$L6@LAhH]LeLmLuH]UHH$HLLLLH}HuHUH H}t)LeLmMtLHLShHEH}tHUHu$HLHcHU(HEHUH}HqHEƀHUHE苀X  XH]Ht]L+LH]HtBL#LLA$HxHxIHEHAGHAHALeMtM4$LDꋅAHAHEH}uH}uH}HEHHEHpH`H HHcHxu%H}uHuH}HEHP`@HxHteHEHLLLLH]UHHd$H}HuHHEHH}3HE@Pu H}H]UHHd$H]LeLmLuL}H}H@SHEHwHELh`LeHEHX`Ht'ILLLA`HEHEHH;EuHEHuqHELLeLmMtI]HgLLHuH=kuHE@lH}qHEHHEHUHHELuHELHELMt*I]HLA;FHEDHELp`H]HEL``MtMLHLDA8HEDpHELp`H]HEL``MtLIL;HLDAHHEDHELp`H]HEL``MtPLILHLDAHED`HELp`H]HEL``MtLILHLDAPHEDHELp`H]HEL``MtLIL`HLDA@HEDHELp`H]HEL``MtuLILHLDAHL0AHL(Mt1I]HտDLHtHHELxHELp`H]HEL``MtML苿HLLAX H}MHEduzHEhEHEdEDuLeLmMt|I]H LD DuLeLmMtLI]HLD H]LeLmLuL}H]UHHd$H]LeLmLuH}H0HEHkt H [HELh`LeHEHX`HtILNLLAHUHH=HEHEHuuHELLeLmMt>I]HLLHELHELh`HEL``MtLH褽LLhHEHUHHE@lHEH讳H}eH]LeLmLuH]UHHd$H]LeLmLuH}uEMHPjEf)EEH} ErrHEHplPuHELeLmMtI]H衼Lh *YEH-HH-HH9vLuLmMtMeLMLA$ H]LeLmLuH]UHH$@HHLPLXL`LhH}؉uHUHMDEHHDžpHUHubH芨HcHxHEHu-HEHDMHMLEUHuHEE tFHELLuH]HELMtvM,$LLHLAxHEL]LpHELMt.M,$LҺLLALpHEHHUHMH}{Hp8HxHtHHLPLXL`LhH]UHHd$H}HEdEHEH]UHH$`H`LhLpLxL}H}H1HEHEHUHuoH藦HcHUH}HEHpLtHEu{HEtiH}H}Huj'L}LuH]LeMt~M,$L"HLA H}L9GHt HEƀH})7H} 7HEHtBH`LhLpLxL}H]UHHd$H}HHEƀH}H]UHHd$H]LeLmH}H LmLeMtwI$HL8 H]LeLmH]UHHd$H}@uH3HEl:EuHEUlH}HH]UHHd$H]LeLmLuL}H}uH8}|ELeLmMtI]HQL ;Eu[HUEH} u?HELx`DuH]HEL``MtQMLHDLA@H]LeLmLuL}H]UHHd$H]LeLmLuH}H0HEHkuAHELp`LmHEL``MtLHZLLHUHEEEH]LeLmLuH]UHHd$H]LeLmH}HuH(7LmLeMt#I$HǵL0 H]LeLmH]UHHd$H}HHEH+oHEHuHEHHuHEH]UHHd$H]LeLmH}H kHEHPuILeLmMtGI]HL }HEHXHuHEPH]LeLmH]UHHd$H}HHEH uHEH(HuHE H]UHHd$H}HHEH0uHEH8HuHE0H]UHH$`H`LhLpLxL}H}H!HEHEHUHu_H臠HcHUHE@PuHEHpFu4LeLmMtI]HMLHEƀHEHuHEHHuHEHEuiH}( H}Hu !L}LuH]LeMtM,$LòHLA H}L@Ht HEƀsH}0H}0HEHtH`LhLpLxL}H]UHHd$H]LeLmLuH}H8gHEHtHELHELMt.I$HұLEHE;E| HEE}|EH}'ELcuH]LeMtM,$LiHAh HcLqLH-HH9vDuH}HNjMUu&6H]LeLmLuH]UHHd$H]LeLmH}H +LmLeMtI$H軰LH H]LeLmH]UHH$`HhLpLxLuH}HuHHEHUHuH"HcHUHEHpsCuLeLmMtVI]HLp HcLuLmMt(MeL̯LA$x AMcIq`H}HuHuH}LHИ H}H..YH}-HEHtHhLpLxLuH]UHH$0H0L8L@LHH}HuHQHEHEHDžPHDžXHUHuyH衛HcHxHEHpAuHuH}LeLmMtI]HiLx EHcMHuHHX肗 HXH`HEHhLcuLeLmMtaI]HLp HcLqHqHuHHP HPHpH`H}H0HuH}|DuLeLmMtI]HmLD HuHtHvH}HuH=O HHH-HH9vLuLmMt[MeLLA$ ;HP!+HX+H} +H}+HxHt"H0L8L@LHH]UHHd$H]LeLmLuH}H0HEH;uAHELp`LmHEL``MtLH*LLHUhHEhEEH]LeLmLuH]UHHd$H]LeLmLuL}H}uH8HUEhH}zu?HELx`DuH]HEL``MtMLeHDLA(H]LeLmLuL}H]UHHd$H]LeLmLuH}H0WHEHuAHELp`LmHEL``Mt%LHʪLLHUdHEdEEH]LeLmLuH]UHHd$H]LeLmLuL}H}uH8HUEdH}u?HELx`DuH]HEL``Mt`MLHDLA0H]LeLmLuL}H]UHH$pHpLxLmLuH}HHEHUHu1HYHcHUHEHp<uHuH}dH}uLuALmMtnI]HDL HuHtHvH}HuH=Iz HHH-HH9v4LuLmMtMeL褨LA$ rH}&HEHtHpLxLmLuH]UHHd$H]LeLmLuL}H}uH8HEp;EukHUEpH}uOHE@P t?HELx`DuH]HEL``MtMLHDLAHH]LeLmLuL}H]UHHd$H}HuHHEtH}H& HuH}uH]UHH$PHXL`LhLpLxH}HuHJHEHUHu萵H踓HcHU:LeLmMtI]H試L E}HELHELMtI]HcL;E~\HELDuH]HELMtyM,$LHDLAH}Hu04HuKHE@PtHEHt`EH]UHHd$H]LeLmLuL}H}@uH8HE:EukHUEH}euOHE@P t?HELx`DuH]HEL``MtML@HDLAH]LeLmLuL}H]UHHd$H}HuHCHE@Ar rrHEH@ HuH} H]UHHd$H}HuHHEHH}#H}-H]UHHd$H}HuHHEH'/HuH}H]UHHd$H}uHaHEHEHUHu蟭HNjHcHUHE;EuHUEHEltt2`H}Hu HuHH}Dz HuH}m0H}Hu{ HuHH}W HuH}mH}jH}aHEHt胱H]UHHd$H}H7HEH[V!HHPwH5wH=zuHH/wH5wH=YTHHwH5wH=83HHwH5wH=H]UHH$`HhLpLxLuH}HXHEHUHu螫HƉHcHUH}uHpL0AHpL(MtI]H蓜DLHtkHE@Pt[HEHxuKH}Hup H}t5LeLmMtI]H'LtEEH}@HEHtbEHhLpLxLuH]UHHd$H]H}HuHHEHH}OHEXH@ HEpH0ɏH HHH9vHEXHElu,HEXHHHH9vHEXH]H]UHHd$H]LeLmLuH}HuUHH0HUHEf8 EEtHEf8(tEEHE胸ptHE ttEHE t ttE܀}u/LuALmMtI]H9DL HE耸u=}u-Eu"HEv H2wrEEHE耸u}uHE耸au}u(HE耸auH}@HEƀaeHE耸tH}@HEƀaELuALmMtI]H;DL }uE}u HEfHuUH}`H]LeLmLuH]UHH$HL L(L0L8H}HuUHHEHEHEHDž@HDžPHDžXHUHhH!HcH`HuUH}_HEf8 tH}6 uHEHp@+u H}HE耸uuH}H}HXLXLuHPLeMtM,$L舗HLA HPL%Ht HEƀH}| uHEHp*uHE8uLeLmMtQI]HLx EH}HPHPHHHHHtHvHHHuH=h HHH-HH9v]ċE;E|HEuH}H@oH@HcMH}Ht HEHEAH}H@!H@HELUH}DA=H}HXHXH}#Hu }tjHuH}NHEu:HEu(HcUH}H膀 HuH}H2 }tH}HdHuH}}dDuLeLmMteI]H LD H}H@ H@HHHHHtHvHHHuH=f HHH-HH9vLuLmMtMeLwLA$ LeLmMtI]HJL H@pHPdHXXH}OH}FH}=H`Ht\HL L(L0L8H]UHHd$H}HuHHEHEHUHu.HVHcHUHuH}JHEtFtxHuH}HuHH}" HUH}H.}tHE؀uHE؀tuH}H}HpLpLuHhLeMtM,$LsHLA HhLHt HEƀ HhtHphHxHt臤H@LHLPLXL`H]UHH$PHPLXL`LhLpH}HuHHDžxHUHu-HU}HcHUiHELLeHELMtI]H4LLE}}ELeLmMtRI]HL ;EEDuLeLmMtI]HLD HELDuHxHELMtM,$L}HDLAHxH}^}uRLeLmMtI]H5LLeLmMthI]H L8 EؠHx, HEHtNEHPLXL`LhLpH]UHHd$H}HuHUHHEHEHU耺H]UHHd$H]LeLmH}H(HELHELMtyI$HLEEH]LeLmH]UHHd$H]LeLmLuH}H0HEHpG!uHEH}ytHEEVHELp`LmHEL``MtLHYLLxEHEt HEUEH]LeLmLuH]UHHd$H]LeLmLuL}H}uH80HE;Et[HUEH}u?HELx`DuH]HEL``MtML肌HDLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uH8pHE;EtzHEUH}t\HEHpluFHEDHELp`H]HEL``MtML蠋HLDAH]LeLmLuL}H]UHHd$H]LeLmLuH}H0HEHuHELLeHELMtzI]HLLH]LeLmLuH]UHH$HLLLLH}HuHUH H}t)LeLmMtLH~LShHEH}tHUHuH,tHcHUHEHUH}HQHEƀH]HtVL+LH]Ht;L#LLA$HxHxIHEHAGHAHALeMtM4$L}DꋅAHAHH= HUHHEǀHEǀHEǀHEǀHH=m(HUHHEHHu&H}@H}@$H}@+HEǀHEƀHEƀHEǀLmAH]HtL#LYDLA$HEH}uH}uH}HEHHEHpH`H 覓HqHcHxu%H}uHuH}HEHP`蠖+薖HxHtuPHEHLLLLH]UHHd$H]LeLmH}HuH(H})LeLmMtzI]HLH}u)LeLmMtBI]HL(HEH~HEHǀHEH~HEHǀH}HH}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuL}H}HuHUH@kHELLuH]HELMtAI$ILHLLAXH]LeLmLuL}H]UHHd$H}HuUMDEH(EDEMHuH}HAH]UHH$0H8L@LHLPLXH}HuHUMDEDMH[HDž`HUHp蛐HnHcHhHELHELMtI]H裁L}tfHELAH`HELMtM,$LMHDLAH`Huݲup}udHELAH`HELMt9M,$L݀HDLAH`HuHuHEHHMHUbHELHELMtI]HgLHcHqHH-HH9v}4]̋ẼEẼÈ}taHEL]L`HELMt+M,$LLLAH`Hu`l}u`HEL]L`HELMt¿M,$LfLLAH`Huw Ht>HELDeHELMtfI]H DL}~fDHELHELMtI]H~LHcHqQHH-HH9vHELHELMt貾MeLV~LA$HELHELMtwI]H~L;E!}u HuH}BM͏H`!HhHt@H8L@LHLPLXH]UHHd$H]LeLmH}H ˿HELHELMt詽I$HM}LH}HLH]LeLmH]UHHd$H]LeLmLuH}H(GLuLeMt.M,$L|LA H]LeLmLuH]UHHd$H}uHUHHEH@u HEHHHMUHuHE@H]UHHd$H]LeLmLuH}H0wHEtPH}uAHELp`LmHEL``Mt6LH{LLHUHEEEH]LeLmLuH]UHH$`H`LhLpLxL}H}uH讽HEHUHuHhHcHU}|vLeLmMt\I]H{L ;EtAHELHELMtI]HzL;E~HE@PtHEUHE@PuH}OuKHEDHELp`H]HEL``Mt莺ML3zHLDA8t}tH}HVIZHEDHELH]HELMt#M,$LyHLDAHuH}H腋H}HEHtH`LhLpLxL}H]UHHd$H]LeLmLuL}H}HuHPHEH@HULIMoHEHHtNHILxLLA$HEHxuCHEHxHEHHEHxHEHH H}覒HuH}薒HHEHA?uDAG u8HEHH( KHEHH 蔘HEHELDx LpHP HUHEHU=vSHELeMtI$ILwLHMEH}A HE@ uHELIHEHHt迷HILawLLA$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHHOHEH@HEHEuHEEHUB=v2HUBEHEHpx uHEL``H]HELp`MtMLdHLA HEHEHH=WHEH}@ZHELLeH]Ht茤L3L1dLLAHEHUHHEƀL}HELp`LmHEHX`Ht6ILcLLA$A;u H}yH]LeMtM,$LcHAHcHq/HH-HH9vңHEЋEЃ}`EEEuH}蓏!IDmH]LeMthM<$L cHDLA E;E~H}]HUEHELHELh`LuHEHX`HtHILbLLLMA$xHEDHELh`LuHEHX`Ht财HILVbLLDA$`H}<&H]LeLmLuL}H]UHHd$H]LeLmH}H KHEHHEHu7HELHELMt I]HaLH]LeLmH]UHHd$H]LeLmLuL}H}HH賣HEH$HE@P t*H]LeMt胡M,$L'aHA( HEHuH]LeMtFM,$L`HA0 HH=8!HEHELLmH]HtL#L`LLA$HELHELMt轠I]Ha`LHcHqHH-HH9v蛠HEE}aE@EEuH}[!IDuLmH]Ht0L#L_LDLA$ E;E~HELHELh`HEHX`HtIL_LLA$(HE@H}UHUHEHHEƀH}裶H}:#H]LeLmLuL}H]UHHd$H}HWEdEPHEH]UHHd$H]LeLmLuL}H}H8HEH藢tlH}6"HEUHEDHELp`LmHEHX`Ht辞HIL`^LLDMA$hH}C"H]LeLmLuL}H]UHHd$H]LeLmLuH}H0GHEHˡuAHELp`LmHEL``MtLH]LL0HU HE EEH]LeLmLuH]UHH$HLLH}uH`艟LeMtyI$H]HHn\HHEHEEEHEHELHELMtI]H\LHcHqXHHHEHEHMH$HPIHH= ZUaHH5"HmHLLH]UHHd$H]LeLmLuL}H}uH8PHE;Et }|bHUEH}诟uFHEDHELp`H]HEL``MtML[HLDAPH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uH8耝HUEH}uFHEDHELp`H]HEL``Mt9MLZHLDA`H]LeLmLuL}H]UHHd$H]LeLmH}H(ۜHELHELMt蹚I$H]ZLEEH]LeLmH]UHHd$H]LeLmLuH}H0WHEE}HE@PuIH}踝u:HELp`LmHEL``MtLHYLLEEH]LeLmLuH]UHHd$H]LeLmLuL}H}uH8蠛HUE H}uOHE@P t?HELx`DuH]HEL``MtPMLXHDLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H8HEHgukH}HEUHELHELp`LmHEHX`Ht萘IL5XLLLMA$xH}HE@HEH;NH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHPHEH@HULIMoHEHHtΗHILpWLLA$HEHxuCHEHxHEHgHEHxHEHH orH}&qHuH}qHHEHCA?uFAG u:HEHH( p*HEHH w>H}CHEHH(0*HEHH vHEHELDz LrHB HEHUHU=v蓖HELeMt]I$ILULHMEH}Ah HE@ u/HEuHEHpHEHP HEHx)HELIHEHHtЕHILrULLA$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHH_HEH@HEHEuHEE.H]LmMt!MeLTHA$ EHEt}}6HUEH}ՐtHE@Pu H}5H]UHHd$H}@uHHE:EuHEUH}H]UHHd$H]LeLmLuH}uH0褎HE;EuSHUEH} u7HELp`LmHEL``MtWLHKLLpH]LeLmLuH]UHH$@HHLPLXL`LhH}؉uHUHMDEHύHDžpHUHuZH:8HcHxAHEHu-HEHDMHMLEUHuHEE tFHELLuH]HELMt&M,$LJLHLAx}}HELHELMt݊I]HJL;EjHEL]LpHELMt蕊M,$L9JLLALpHEHHUHMH}7}[Hp6HxHtU]HHLPLXL`LhH]UHHd$H]H}uEMH8֋Ef)EEH}ZErrNHE?H}3*YEH-HH-HH9v舉H}H]H]UHHd$H]LeLmH}@uH('HEHuHEHUHuHE}uCHEu4LeLmMtЈI]HtHLHEƀH]LeLmH]UHHd$H]LeLmLuL}H}H0cHEDHELp`H]HEL``Mt8LILGHLDAXH]LeLmLuL}H]UHHd$H]LeLmLuH}HuH0ӉHEHLuLeMt踇M,$L\GLHAHEH@HHUHBH]LeLmLuH]UHHd$H}uHTHEt,HywHH={JHH5HyWHEHus!HEHEH]UHHd$H}H׈EEH]UHHd$H]LeLmLuH}HuH0蓈HEHH;EuPH} HELLeHELMtQI]HELLH} H]LeLmLuH]UHH$HLLLLH}HuHUH ƇH}t*H]LeMt詅MLNEHAUhHEH}tHUHuSH1HcHUHEHUH}H bHEƀ$LuAH]HtL#LDDLA$XLeLmMtI]HDL0 HH=ߢw!HUHHEƀHEƀHEǀHEƀHEǀHH=>)HUHHEHHuH}@H}@H]Ht"L+LCH]HtL#LCLA$HxHxIL}AFHAHHLeMt覃M,$LJCƉڋALAHEH}uH}uH}HEHTHEHpH`H QH/HcHxu%H}uHuH}HEHP`zTVpTHxHtOW*WHEHLLLLH]UHHd$H]LeLmH}HuH(gH})LeLmMtJI]HALHEH;HEH;H}HEcH}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuL}H}HuHUH@蛃HELLuH]HELMtqI$ILAHLLAXH]LeLmLuL}H]UHHd$H]LeLmLuH}H0HEH苄uhHELp`LmHEL``MtҀLHw@LLE}|H};E~EHUE HEEEH]LeLmLuH]UHHd$H]LeLmLuH}uH04LeLmMt I]H?L( ;EtHELHELMtI]H?L;E~ uH}}|EHEUH} uHE@P t H}-H}HE}HEH}LuLeMt,M,$L>@LAp H]LeLmLuH]UHHd$H]LeLmH}uH(Ȁ}|@HELHELMt~I]HB>L;E~ uH}H]LeLmH]UHHd$H]LeLmH}H ;HELHELMt~I$H=LHEǀH]LeLmH]UHHd$H]LeLmLuH}H0HEuHELHELMt}I]H'=LHcHq}HH-HH9va}}(EEEuH};]~2LuALmMt|I]HHELDeHELMtwI]H7DL}wLeLmMtwI]HP7L( }fLeLmMt|wI]H 7L( HELHELMtCwMeL6LA$H]LeLmLuH]UHHd$H]LeLmLuL}H}uUHPxEHEHZztRHUHB`HED}DuLmHEHX`HtvHIL86LDDH}A$EEH]LeLmLuL}H]UHHd$H}uH4xEH}EEH]UHH$0H8L@LHLPLXH}HuHwHDžhHUHu DH5"HcHUH}HH]LmMtruMeL5HA$( |HELHEHHt-uL+L4LAHcHqhuHH-HH9v uH``}EEEuH}uHEH8tNHELHEIDmHEHHtqtL#L4DLLA$HEHHpHfwHxHELDmLhHEHHttL#L3LDLA$HhHEHpH}H`;E~?EHh蓱HEHtFH8L@LHLPLXH]UHHd$H]LeLmH}HuUHX4uEuH}E}uJHELHELMtrI]H2L;E~E}|HELHELMtrI]HE2L;E|LeLmMtnrI]H2LHEHUHEHEHEHE܋E;E}"E;E|E;E}E;E|u:HELHELMtqI]H1LEEH]LeLmH]UHHd$H]LeLmLuL}H}uHXsHEHHH}tt}}HELHELMt'qI]H0L;EQHEHP`HUL}DuLmHEHX`HtpIL0LDLH}A$HELHELMtpI]H<0L;Et}Hc]HqpHH-HH9vbpHEHELx`LmLuHEHX`HtpIL/LLLE؉A$Hc]HcEH)qEpHH-HH9voH}HEHUH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uHX`qE}|AHEHHELMt2oM,$L.HA;E~rHUHB`HEL}DuLmHEHX`HtnIL.LDLH}A$t}|H};9;E|EEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uHXPpE}|AHEHHELMt"nM,$L-HA;E~rHUHB`HEL}DuLmHEHX`HtmILy-LDLH}A$t}|H}+8;E|EEH]LeLmLuL}H]UHHd$H]LeLmH}H(KoLmLeMt7mI$H,L( E}|@HELHELMtlI]H,L;E~HuH}Ku4LmLeMtlI$HS,L( H}H]LeLmH]UHH$HLLLH}HuHUH-nH}t)LmLeMtlLH+LShHEH}tHUHu;:HcHcHUHEHUH}HHEƀ HEƀ(HEƀ)HEƀ*HH=Y%!HUHHUHH=юnHUH HUHH=юknHUHHEƀLuALmMtjI]H*DLHEH}uH}uH}HEH6>HEHLLLH]UHHd$H]LeLmH}HuH(kH})LeLmMtiI]H^)LHEHHEH uHEHeH}H H}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuH}HuH0kHELH]HELMthM,$L(HLAPH]LeLmLuH]UHHd$H}uUHjEuH}`1H]UHHd$H]LeLmLuL}H}HuH8/jHELx`LuH]HEL``Mt hLIL'HLLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}@uH8iHE(:Et[HUE(H}ku?HELx`DuH]HEL``MtLgML&HDLAH]LeLmLuL}H]UHHd$H}HhHEH;&t!H]UHHd$H}HhEEH]UHHd$H]H}HuHhHEHH} HEXHH@HHHHH9vkfHEXHEdtt+t;t tt,DHE@ HUB/HE@ HUBHE@  HUBHE*u.HEXHHHH9veHEXHE@ HUBH]H]UHHd$H]LeLmLuH}H0GgHELh`LeHEHX`Ht'eIL$LLAHEHELH]LeMtdM,$L$HLAHEHSHUHEHH}; H]LeLmLuH]UHHd$H]LeLmLuH}H0gfHEHuHH=v1!HEHELLeLmMtdI]H#LLHELHELh`HEL``MtcLH#LLHUHEHH}zH]LeLmLuH]UHHd$H]LeLmLuH}HuH0ceHELH]HELMt=cM.L"HLAH]LeLmLuH]UHHd$H]LeLmLuH}HuH0dHEƀHELH]HELMtbM,$LV"HLA8HEƀH]LeLmLuH]UHHd$H}HuHSdEEH]UHHd$H]LeLmLuH}H0dHELh`LeHEHX`HtaIL!LLAHEHEH]LeLmLuH]UHHd$H}HuUHcHEf8 tHE耸(u HEfHuUH}&H]UHHd$H]LeLmLuH}HuH03cH}u>HELLeHELMtaI]H LLH]LeLmLuH]UHHd$H]LeLmLuL}H}uH8bHE;EujHEUH}duNHE@Pt?HELx`DuH]HEL``Mt=`MLHDLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H0aHEHwzH}NcuHEDHELp`H]HEL``Mt_ML/HLDAHED*HELp`H]HEL``MtD_MLHLDAH]LeLmLuL}H]UHHd$H}HuH`HEf@f= rHf- t%f-t:HE(u HEH@*HE)u HEH@ HuH}'H]UHHd$H]LeLmLuH}HuH0S`HEHLuLeMt8^M,$LLHAHEf@f= f- tf-tJf-{HE)uHEH@HHUHBHEH@HHUHBQHE(uHEH@HHUHBHEH@HHUHBHEH@HHUHBH]LeLmLuH]UHHd$H}H7_EEZHEH]UHHd$H}HuH_HEHH}HE(tH}H5Ow!tHEH]UHHd$H]LeLmLuL}H}@uH8^HE):Et[HUE)H}_u?HELx`DuH]HEL``Mt<\MLHDLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}@uH8]HE*:EujHEU*H}5_uNHE@Pt?HELx`DuH]HEL``Mtl[MLHDLAH]LeLmLuL}H]UHHd$H}HuHUMH ]HEHHuMH}UHEH]UHHd$H]LeLmH}HuH(\HEHH}HE@ HUHH HUBLeLmMtlZI]HL0 u,HEXHHHH9vLZHEXLeLmMtZI]HL( u,HEXH HHH9vYHEXHEt,HEXHHHH9vYHEXH]LeLmH]UHHd$H]LeLmLuL}H}H0C[HEHglHEDHELp`H]HEL``Mt YLILHLDAHEDHELp`H]HEL``MtXLILeHLDA HEDHELp`H]HEL``MtzXLILHLDA0HEDHELp`H]HEL``Mt0XLILHLDA@HEDHELp`H]HEL``MtWLILHLDAHHEDHELp`H]HEL``MtWLIL@HLDAHELHELp`H]HEL``MtUWLILHLLAHEDHELp`H]HEL``Mt WLILHLDAPHEDHELp`H]HEL``MtVLILeHLDAXH>L0AH.L(MtVI]H#DLHtHHELHELp`H]HEL``Mt4VMLHLLAh H}+H]LeLmLuL}H]UHH$HLLLLH}HuHUH WH}t)LeLmMtULH.LShHEH}tHUHu#HHcHUHEHUH}H2HUHE苀X XHEƀHEǀHEƀH}@舺H}@茳H]HtTL+LaH]HtTL#LFLA$HxHxIHEHAGHAHALeMt?TM4$LDꋅAHAHEǀLmAH]HtSL#LDLA$XHEƀHEƀHEƀHEƀLmAH]HtSL#L0DLA$H}HEHH譑HEH}uH}uH}HEH$HEHpH`H X!HHcHxu%H}uHuH}HEHP`R$%H$HxHt'''HEHLLLLH]UHHd$H}HuHUMH LTHEHtHH=I HUHHEH}HuHU/KH]UHHd$H}HSHEHHH]UHH$`HhLpLxLuH}HuHtSHEHUHuHHcHULeLmMt/QI]HL8 HcLuLmMtQMeLLA$@ AMcIq9QH}Hu~HuH}LH D"H}蛎HEHt#HhLpLxLuH]UHHd$H}HuHSRHEHH}蟎H]UHHd$H]LeLmLuL}H}HuH8QHUHEHH}wSu?HELx`LuH]HEL``MtOMLbHLLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH8OQHEHRu?HELx`LuH]HEL``MtOMLHLLA`H]LeLmLuL}H]UHHd$H]LeLmLuH}H0PHEH;RuAHELp`LmHEL``MtNLH*LLHUHEEEH]LeLmLuH]UHHd$H]LeLmLuL}H}uH8PHUEH}zQu?HELx`DuH]HEL``MtMMLe HDLAPH]LeLmLuL}H]UHHd$H]LeLmLuH}H0WOHEHPuAHELp`LmHEL``Mt%MLH LLHUHEEEH]LeLmLuH]UHHd$H]LeLmLuL}H}uH8N}|EHUEH} Pu?HELx`DuH]HEL``MtQLML HDLAXH]LeLmLuL}H]UHH$`H`LhLpLxH}HMHEHEHUHuH;HcHUH}Hu_yH}uLuALmMtiKI]H DL H}HuyHEHEHuHtHvH}HuH=/P HHH-HH9vKLuLmMtJMeL LA$ XH}诈H}覈HEHtH`LhLpLxH]UHHd$H]LeLmLuH}H(WLLeLmMtCJI]H L8 3LuILmMt JI]H LL H]LeLmLuH]UHHd$H]LeLmLuH}H(KHEH+Mu7HELp`LmHEL``MtuILH LLxH]LeLmLuH]UHHd$H]LeLmLuH}H(KHEHLu7HELp`LmHEL``MtHLHLLpH]LeLmLuH]UHHd$H]LeLmH}HuH(JH})LeLmMtjHI]HLHEHH}Hu)H}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuH}H(IHEH[Ku7HELp`LmHEL``MtGLHJLLH]LeLmLuH]UHHd$H]LeLmLuH}H(GIHEHJu7HELp`LmHEL``MtGLHLLH]LeLmLuH]UHHd$H}HHHEEEH]UHHd$H]LeLmLuH}H0HHEH JuHELp`]L}HEL``Mt@MLLLA@H]LeLmLuL}H]UHHd$H}HBHEHN!HH1wH51wH=#HH1wH51wH=y#HHn1wH51wH=X#HHM1wH52wH=7r#HH2wH553wH=Q#HH2wH5D3wH=0#H]UHH$`HhLpLxLuH}HxAHEHUHu HHcHUH}BuHғL0AHғL(Mt?I]HDLHtkHE@Pt[HEHuKH}HulH}t5LeLmMt>I]HGLtEE H}`|HEHtEHhLpLxLuH]UHHd$H]LeLmLuL}H}uH8@HE;EtHUEHEt tEtNH}>HEtHE tH}*gH} WH} Au?HELx`DuH]HEL``MtR=MLHDLA H]LeLmLuL}H]UHHd$H]LeLmLuL}H}@uH8>HE:Eu[HUEH}H@u?HELx`DuH]HEL``MtHE:Eu[HUEH}?u?HELx`DuH]HEL``Mt;MLsHDLAHH]LeLmLuL}H]UHHd$H]LeLmLuH}HuH8c=EHΓL0A HΓL(Mt9;I]HDLHtEEH]LeLmLuH]UHHd$H}H1I]HL@ ELeLmMt1I]HL8 EHEƀH`H 7H_HcHu HuH}贿?HEƀHHtDuLeLmMt{0I]HLD DuLeLmMtK0I]HLD LuLeLmMt0I]HLLX HE@tTHE@P tDHEt H}@fLeLmMt/I]HVL (H}mH}vmHxHtHLLLH]UHHd$H}H71HEH苨HEHuHEHHuHEHEHuHEHHu+H]UHH$`H`LhLpLxL}H}H0HEHEHUHuHHcHUHEuHEtLeLmMt.I]HL H}Hu[L}LuH]LeMt-M,$LHLAH H}L{Ht HEƀH}*H}kH}xkHEHtH`LhLpLxL}H]UHHd$H}H7/HEƀH}cH]UHHd$H]LeLmH}H .LeLmMt,I]H{L0 t H}SH]LeLmH]UHHd$H}HuHx.HEtHuH}'[H}!HEHUHuHHcHUu HuH}H}HEHt*H]UHHd$H]LeLmLuH}H0-HEH[/uBHELp`LmHEL``Mt+LHJLLHUHHEHHEHEH]LeLmLuH]UHHd$H]LeLmLuL}H}HuH8-HEHHuxHtHEHHuKiHL0AHtL(Mt*I]HiDLHtNH},.u?HELp`H]L}HEL``Mtr*MLLHLAhHEHt H} H}#H]LeLmLuL}H]UHHd$H]LeLmH}H +LeLmMt)I]H{L u H}H]LeLmH]UHH$HLLLL H}H^+HDž(HUHuHHcHUiHEǀH}CHEHxH8WHHcH0u?HELx`LuH]HEL``Mt(MLbHLLAh-H}$H0HtLuL(LmMth(I]H LLP L(HELp`H]HEL``Mt)(MLHLLAHELx`LuHEL``Mt'MLLLA@HEǀLH(eHEHtHLLLL H]UHHd$H]LeLmLuL}H}H0C)HEuHELxHELp`H]HEL``Mt'LILHLLAhHEDHELp`H]HEL``Mt&LIL\HLDA@HELp`H]IHEL``Mtu&LILLHLAHEǀH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uH8(HE;EtbHUEH}g)uFHEDHELp`H]HEL``Mt%MLKHLDAH]LeLmLuL}H]UHHd$H]H}HuHUMHpH'HEHtHEH(tHH}WuHE:uHEEE'HEHuEEHMHUuH}HEHxouHEHxV*Hw^EEHw(]HE0HE8EW HEHUHEHEHEHEHc]HcEH)q$HH-HH9v0$HEHc]HcEH)qX$HH-HH9v#HEH]H]UHH$HLLLLH}uHUHMHPs%HEHUHPHHcHH_LuLeLmMt$#I]HLLH}tHEHE HHEH0H"HJHcHHEH؊HEHELLeHELMtn"I]HLLDžDžEDž'HHEHHEHEHxHrHH} HEE@HE:u#]HHHH9v!]0H}t!]H HHH9v!]HE9t$]HHHH9vu!]LeLmMt>!I]HLu$]HHHH9v"!]E=v!D}LuH]LeMt M,$LxHLDAHuH} Hc]HcEH)q HH-HH9v HEHc]HcEH)q HH-HH9vg HEHELLeHELMt I]HLLHuHHHthH}]HHHtHLLLLH]UHHd$H}HuHs!HEH}HH}H]UHHd$H}H7!EAEHEH]UHH$`HhLpLxLuH}H HEHUHu.HVHcHUtLuLeLmMtI]HCLLHuH "qHHuH qHEEH}%\HEHtGEHhLpLxLuH]UHHd$H}HHEH$H]UHH$@HHLPLXL`H}HuUHHEHUHpHHcHh LuLeLmMt?I]HLLHEHH EH}裺tE%t44HHi7u!HEHH HEHH HUHHEHBHEH}̺CHEH蠄HLeMtMd$LH-HH9vRLmMuL-2!E=v3DEHMLDH荰HEHH HEHHLeMtMd$LH-HH9vDmAD=vEHMHuHuH5 DHHEHH u}H}/YHhHtNHHLPLXL`H]UHHd$H]LeLmH}uH(HE(;Eu6HEU(LeLmMtI]HJL@H]LeLmH]UHHd$H}HuUH`EHuH}NBHEH0H;Et}tHEHǀ0H]UHHd$H}HuHHEH0H;EuIHEH0uHEH0Hu-HEHUH0H}u HuH}g-H]UHHd$H]LeLmH}HuH(gHEH0utHEL0HEL0Mt2I]HLu7HEL0HEL0MtI]HLH]LeLmH]UHHd$H}HuHHEHH}cFH]UHHd$H]LeLmH}@uH(WHE9:Eu?HEU9LeLmMt%I]HL@H}7 H]LeLmH]UHH$pHxLeLmH}HHEHUHuH0HcHUuLLeLmMtI]H%L@H}H}Hu&EHuH}YH}+UHEHtMHxLeLmH]UHHd$H]LeLmH}؉uUMDEHHHE؋;EEDEMUuH}ǞHE؀8uHE؀t H} }uaHE؀:uRLeLmMteI]H LLeLmMt<I]HLxH]LeLmH]UHHd$H}HEEH]UHH$HLLLLH}HuHUH H}t)LmLeMtyLHLShHEH}tHUHuHHcHUfHEHUH}HHEǀX H]HtL+LH]HtL#L}LA$HxHxIHEHAGHAHALeMtvM4$LDꋅAHAHEƀ9HEƀ@LmAH]HtL#LDLA$H}HEH}uH}uH}HEHRHEHpH`H H%HcHxu%H}uHuH}HEHP`HxHtHEHLLLLH]UHHd$H}HHEX@EEH]UHHd$H]LeLmH}uH(HE<;Eu6HEU<LeLmMtvI]HL@H]LeLmH]UHHd$H]LeLmH}@uH('HEH :Eta}uHUHEX࿉XHUHEX@XLmLeMtI$HjL@H]LeLmH]UHHd$H]LeLmH}@uH(wHE::Eu?HEU:LeLmMtEI]HL@H}WH]LeLmH]UHH$`H`LhLpLxH}HuHHEHUHuH?HcHUEHE9tHEH0tHEHxuLuLeLmMt?I]HLLHuHExuzHEL0HEL0MtI]HLu=EHEL0HEL0MtI]HNLHuH}EH}eMHEHtEH`LhLpLxH]UHHd$H]LeLmH}H HEHKLmLeMtI$HLxH]LeLmH]UHHd$H]LeLmH}H LmLeMtI$H;LHE8uHEt H}{LmLeMtGI$HLxH]LeLmH]UHH$HLLLH}HuUMLELMH`EHELeLmMt I]HULuH}t}| }|jIH2ҌL%+ҌMtW MLHLA8HEHpH0H諹HcH(HELxLeLmMt I]HLLEHc]Hkq HH-HH9v ]HcEHc]Hq HH?HHHH-HH9v ]E@ HEЀ:u!]HHHH9vI ]EEHEHHеHEHHDHlHcHkADuH}H}HHH}HEEEċEEH]HtH[HH-HH9vz HuHuH5XDEHMH}ǟHuH}Hc]HcEH)qx HH-HH9v HE؉Hc]HcEH)qC HH-HH9v HEHE؃8HE؋;E~HE8HE;E~}tH]H}O;H}@HUEEEHcEHc]Hq Hq HH?HHHH-HH9v) ]E;EtnHc]HqC HH-HH9v ]HcEHc]Hq HH?HHHH-HH9v ]E;E~E;E}E;E~HEHHHuHHtMH}H(Ht.EHLLLH]UHH$@HPLXL`LhH}H HDžpHUHuHHcHxEHEH$LuLpLmMtGI]HLLHpHEHELMLEH}tVHEHx;Et=HEHxEHEHxuHEHx;EE0HpEHxHtEHPLXL`LhH]UHH$pHpLxLmLuL}H}H HEEHEEEEEEEEHEHEHEHEHEHH(HE"H}tHEHL(AHEHL(MtjI]HDL@HELLuH]HELMt(M,$LLHLAxHEHL(HEHL(MtM,$L{LA@HEHxHEHE@HE:u ẼEH}Zt Ẽ EHE9t E ELeLmMt=I]HLu E EHEHEHEHEHEHxtLeLmMtI]H~L@HE(%MH ȉE̋E AL}H]LeMtyM,$LHLDAHE<uHE<tttf]E)HcۋEU)HcH)qiHH?HHHH-HH9vH}/+O]E)HcۋEU)HcH)q HH-HH9vH}*uE)H}$Ẽ E̋E AH]L}LeMt<M,$LLHDAHEHxEEHv(Hv(]uE)Ƌ}E)E HEHUHEHEHEHEHEHEHEHEHE(ttRHc]HHH9uHH-HH9vrH})EU)HcHUHcH)q}HH?HHHcEH)qbHH-HH9vH}5)HHEHcHcEH)qHH-HH9vH}(HE<tt[Hc]HHH9uHH-HH9vRH}(EU)HcHUHcH)q]HH?HHHcEH)qBHH-HH9vH}(HHEHcHcEH)qHH-HH9vH}'Hc]HHH9uHqHH-HH9vHLceIHI9umIqbLH-HH9vDH}7'D}LuH]LeMtI$IL\HLDAHpLxLmLuL}H]UHHd$H]LeLmH}؉uUMDEH@>HE؋;Et8HE؋;Et'HE؋;EtHE؋;EtlHE؀@tGHE؀u8HE؀:u)LeLmMtI]HXLDEMUuH}EH]LeLmH]UHHd$H]LeLmLuH}@uH0CHE8:EtHUE8HE8u>HEu/LuALmMtI]H菽DLHE8u H}LmLeMtI$HKL@H]LeLmLuH]UHHd$H}HWHEH[ !HHpvH5 vH=ڎH]UHHd$H]LeLmH}uH8LmLeMtI$H舼LHE}u;HEt,HuH=Atu}@H}M^EHE;Eu1HEEHEULeLmMtFI]HL8 H}(HUHE;EuHuH=ʮuCHEt4HEHEHEH MHEƀLeLmMtI]HAL( HuH=Hu/HEtHEHuL HEƀH]LeLmH]UHHd$H}HHEEEH]UHHd$H]LeLmLuL}H}uH8HEH;EtqHEUH}2uUHE@PtFHEDHELp`H]HEL``MtbMLHLDAH]LeLmLuL}H]UHHd$H}HHEHHUHEEEH]UHHd$H]LeLmH}HuH(HEHHULmLeMt}I$H!L( H]LeLmH]UHHd$H}H7HEH[*&!H]UHHd$H}HH]UHHd$H]LeLmLuH}H0HEEH}QuJHE@P t:HELp`LmHEL``MtLH0LLEEH]LeLmLuH]UHH$HLLLLH}HuHUH H}t*H]LeMtML获HAUhHEH}tHUHuH;HcHUHEHUH}H*HEǀH]HtbL+LH]HtGL#LLA$HxHxIHEHAGHAHALeMtM4$L艶DꋅAHAHEH}uH}uH}HEHHEHpH`H HHcHxu%H}uHuH}HEHP`EHxHtjHEHLLLLH]UHHd$H]LeLmH}H HEHLmLeMtI$H/L8 H]LeLmH]UHHd$H}HGHEHEEH]UHHd$H}@uH}uHEHH}H]UHHd$H}HuHxHEHUHuH!HcHUu0H}HuI"HuH}LBHt HuH}V-H}82HEHtZH]UHHd$H]LeLmLuH}H(LmLeMtI$H藳L LuLeMtM,$LiL@A H]LeLmLuH]UHHd$H]LeLmLuL}H}H0cHEHuUHE@PtFHEDHELp`H]HEL``MtML輲HLDAH]LeLmLuL}H]UHHd$H}HEZEHEH]UHHd$H]LeLmLuL}H}H0HEHuFHEDHELp`H]HEL``MtFMLHLDAH} H]LeLmLuL}H]UHH$PHPLXL`LhLpH}HuHHEHUHuH(HcHU H}tHE@PtHuH}/H}E}LeHcEHH9vCHc]HH}?A|IfHUfHEHxHEDHELp`LmHEHX`HtILTLLDxA$HuH}N H}`.HEHtHPLXL`LhLpH]UHHd$H]LeLmH}H LmLeMtI$H蛯LHEHuMHEHu7HELHELMtI]H>LxLmLeMtqI$HLxH}}H]LeLmH]UHHd$H]H}HuHHEHH}oHEXHHHH9v HEXHEt)HEXH HHH9vHEXH]H]UHHd$H]LeLmH}H {HEHgHEt H} )LeLmMtAI]HL H]LeLmH]UHH$`HhLpLxH}HuHHEHUHuHFHcHUH}HujHuHExuLeLmMtlI]HLuLeLmMt:I]HެLLeLmMtI]H赬Lu)LeLmMtI]H膬L0 EHuH}JEBH}*HEHt軿EHhLpLxH]UHH$HLLLLH}HuHUH &H}t+H]LmMt ML讫HAT$hHEH}t6HUHu2HZHcHUHEHUH}HHEƀ H]HtL+L)H]HtiL#LLA$HxHxIHEHAGHAHALeMtM4$L諪DꋅAHAH}@IHUHE苀X %\XHEǀHEǀHEǀHEǀdHEfǀHEfǀHEH}uH}uH}HEH軻HEHpH`H fH莖HcHxu%H}uHuH}HEHP``VHxHt5HEHLLLLH]UHHd$H}HuHcHEHH}賬HEHMH^׎A HUBHEǀH]UHHd$H]LeH}HxHEH3H}jt H=vEEHE؋EHE؋EH]؋=vEEHHuHHH}HDzH}u$H}HHE؋[H}HHELcHEHcI)qXLH-HH9vDHH]LeH]UHHd$H}HEEH]UHHd$H]LeLmLuL}H}uHPPHE;Et/HUEHEEHEEHEHHELMtM,$L蕦HA HE@PuH}NuMHEAHELh`LuHEHX`HtIL,LLDA$HUHEHEDDuD}HEHELeMt2I$HHӥH}DEDEH]LeLmLuL}H]UHH$PHxLeLmLuH}u؉UЉMDEHE;E|0HiHPHH=٨HH5H׵E;E|EЉE؋E;EEȉE؃}|EHE;Eu'HE;EuHE;EuHEUЉHUEȉHEUH}ru`EEЉEEȉEE=vEEHHuHHH}9HHE;E¾HE;EuHUE؉H}uH}u$H}ѿHHE[H}譿HHELcHEHcI)qJLH-HH9vDHLeLmMtI]HKL H}u7HELp`LmHEL``MtcLHLLHxLeLmLuH]UHHd$H}uUMH HEDMUuH}H]UHHd$H}HuHUMH HEHHuMH}HEtHE8t葙HUHEtHE8tgHUH]UHHd$H}uH$HEDHEHEuH} H]UHHd$H}uHHEHEHEDEH}H]UHHd$H}uHHEDHEHEUH}iH]UHHd$H}uH4HEDHEHEMH}H]UHHd$H}HHEH;ZHEHuHEHHuHEH]UHHd$H}uHUHHEHu HEHHMUHuHEH]UHHd$H]LeLmLuL}H}HuHHHEEHEf@fsftUf-f-f-Hf-Ff-f-f- f-EHEHEHcHqHc]H)qHH-HH9vd]EHEHEHcHqtHc]HqfHH-HH9v ]hEHEHEHcHqHc]H)q HH-HH9v] EHEHEHcHqHc]HqHH-HH9vS]HEfxt EEH}Tu HE@ E=HEHcHEHc@ H)q5HH-HH9v]:EHEE$EHEEEHEHcHUHcH)qHqHcUHqH9|KHEHcHEHcH)qxHqmHH-HH9v]HE;E HEEEEL}DuH]LeMtI$ILNHDLA uH}BH]LeLmLuL}H]UHHd$H}HuHCHEHH}H]UHHd$H}HuHHEHH}H]UHHd$H}HuHH]UHHd$H]LeLmLuH}HuH0HEHLuLeMthM,$L LHAH]LeLmLuH]UHHd$H}HHEH; H]UHHd$H}HEyEHEH]UHHd$H}HHEH@PHHEHEH]UHHd$H}HgHEH@PH HEHEH]UHH$PHPLXL`LhLpH}HuUHHDžxHUHu:HbHcHUHEHxPu}}HH= hHEHEHxPHxMLxLeLmMtbI]HLL8LeLmMt6I]HژL;E;HEIƋ]L}LeMtM,$L蠘LLAH}H/H}VH}H?HxHEHt赫HPLXL`LhLpH]UHH$`H`LhLpLxH}H%HEHUHukH蓄HcHUHEHxPuHH=FQfHEHEHxPHuLuLeLmMtI]HHLL8LeLmMtxI]HLEH}E٨H}0HEHtREH`LhLpLxH]UHH$HLLH}HuHUHH}t)LmLeMtLHLLShHEH}tHUHuҤHHcHUuOHEH}HdHUHEHBPHEH}uH}uH}HEH蛧HEHpHhH(FHnHcH u%H}uHuH}HEHP`@˨6H HtHEHLLH]UHHd$H}HWHEHxPHCdH]UHH$PHXL`LhLpH}uHHDžxHEHUHu-HUHcHU&HEHxPu}} HH=cHEHEHxPHuCLuLeLmMt[I]HLL8LeLmMt/I]HӓL;EwDuLeLmMtI]H蜓LDLuLxLmMtI]HiLLHxHEHxPbH} HxoH}fHEHt舦HXL`LhLpH]UHH$0H8L@LHLPLXH}uHUHHEHEHDž`HUHp'HOHcHhHEHxPu}}HH=`HEHEHxPHu:LuLeLmMtRI]HLL8LeLmMt&I]HʑLE܋E;Et{HEHxPuHEH@P@PtHuH}йHqvLH}uaLeH]HtH[HHH9vHH}/ AD t tuHUH}йH5vHELxPHELpXH]HEL`XMt*MLϐHLLAL}DuH]LeMtM,$L蒐HDLALuL`LmMtI]H[LLH`HEHxP_E;E|L}DuH]LeMt]M,$LHDLALuL`LmMt&I]HʏLLH`HEHxP^H}聊|H` H} H} HhHtݢH8L@LHLPLXH]UHHd$H}HwEEH]UHHd$H]LeLmH}HuH(7HEXuHEu+LeLmMtI]H裎LH]LeLmH]UHHd$H}HHEHۜ& H]UHHd$H}HHpHEHEH]UHHd$H}HWEEH]UHHd$H}@uH#H]UHHd$H]LeLmH}H HE@PuRLmLeMtI$HiLHEHuHEHHuHEH]LeLmH]UHHd$H]LeLmH}H KLmLeMt7I$HیL H}H]LeLmH]UHH$HLLH}HuHUHH}t)LmLeMtLHLLShHEH}tHUHuҚHxHcHUqHEHUH}HHUHE苀X%XH}襒HEH}uH}uH}HEHuHEHpHhH( HHxHcH u%H}uHuH}HEHP`襞H HtʟHEHLLH]UHHd$H}HuH#HEH}HHuH=d~HUHB(H]UHHd$H]LeLmH}H(HEHu`HEL`(HELh(MtI]H>L HUHR:tHEH@uEEEH]LeLmH]UHH$pHpLxLmLuH}@uHLeLmMtI]H臉LpuHEH@(ƀHUHuH,vHcHUu8HELp(DeHELh(MtqI]HDL HEH@(ƀHEHtWHpLxLmLuH]UHH$HLLLLH}HuHUH H}t+H]LmMtMLNHAT$hHEH}t_HUHuҖHtHcHUHEHUH}H?HEƀHEƀHUHE苀X XLuA H]HtL#L蘇DLA$HH}@~-H}@&LmAH]HtL#LMDLA$H]HtL+L$H]HtdL#L LA$HxHxILuE}AEHHHLeMtI$H覆Ƌ‹ELHEH}uH}uH}HEH2HEHpH`H ݔHsHcHxu%H}uHuH}HEHP`חb͗HxHt謚臚HEHLLLLH]UHHd$H}HHEHH} H]UHHd$H]H}HuHHEHH}߈HEu+HEXHHHH9vnHEX%HEXHHH9vGHEXH]H]UHHd$H}HuUHHEHƋUH}蝇H]UHHd$H}HuUHHEHƋUH}譇H]UHHd$H}HwHEuSH}@ZHEH}t8HuH}EE@H}E@H}H]UHHd$H}@uHHE:EtMHEUH}@跥HEH}u'}uHuH}H}HH]UHHd$H}@uHSHE:EtiHEUH}@$HEH}u:}uHuH}#HEHH;EtH}H]H} H]UHHd$H}uHHE;Et HEUH]UHHd$H]LeLmH}H KHEuHEu)LeLmMtI]H轁LH]LeLmH]UHHd$H]LeLmH}H HEu)LeLmMtI]HLLH]LeLmH]UHHd$H}HgHEu,H}@LHEH}uHEH},iH}H]UHH$`HhLpLxH}HuHHEHUHuHFmHcHUH}HujHuHExu^LeLmMtoI]HLu/LeLmMt@I]HLEHuH}xE蠑H}HEHtEHhLpLxH]UHHd$H}HuH HEEH}@蚡HEHEH;Et#HEƀH}u HuH}sMH}u HEƀ7HUHEHEHH;EtH}HZsHE:Eu H}H]UHHd$H}HuHHE@HH]UHHd$H}HuHHEHH}裨H}@gH]UHHd$H]H}HuHOHEHH}菨H]H}ҙH;Cu H}@H]H]UHHd$H]LeLmLuH}@uH8HE@HԟHEH}tt}u9HELLeLmMt蛽I]H?}LL`3LuILmMtfI]H }LL`H]LeLmLuH]UHHd$H}H=@u HEH+ HH vH59vH=*aEHHvH5HvH= a$HHޭvH5OvH=`HHvH5VvH=`HHvH5]vH=`HH{vH5lvH=`蠟HHZvH5svH=d`HH9vH5vH=C`^H]UHHd$H]LeLmLuH}HuH8賽EHHOL0A H8OL(Mt艻I]H-{DLHtEEH]LeLmLuH]UHHd$H}H'EKEHEH]UHHd$H}HEEH]UHH$PHPLXL`LhLpH}HuH蚼HEHUHuHgHcHU H}tHE@PtHuH}H}荣E}LeHcEHH9v#Hc]HH}A|fHUfHEHxHEDHELp`LmHEHX`Ht菹IL4yLLDxA$HuH}.[H}@HEHtbHPLXL`LhLpH]UHHd$H]LeLmH}H LmLeMt׸I$H{xLHEHuMHEHu7HELHELMtzI]HxLxLmLeMtQI$HwLxH}FH]LeLmH]UHHd$H}HHEHH}H]UHHd$H}HpǹHE@H踙HEH}uHEƀHUHuHdHcHUu8HEu HuH}HEu HuH}ˈHEƀHEHtBH} H]UHHd$H]LeLmLuL}H}H0HEHguFHEDHELp`H]HEL``Mt覶MLKvHLDAH]LeLmLuL}H]UHH$HLLLH}HuHUH-H}t)LmLeMtLHuLShHEH}t8HUHu;HcbHcHUHEHUH}HXHEƀH}@QLuALmMtzI]HuDLHEH}uH}uH}HEH†HEHpHhH(mHaHcH u%H}uHuH}HEHP`g]H Ht<HEHLLLH]UHH$HLLLH}HuHUHMH}t)LmLeMt0LHsLShHEH}t,HUHu[H`HcHUHEHUH}HxHEƀLuALmMt観I]HJsDLHEH}uH}uH}HEHHEHpHhH(虁H_HcH u%H}uHuH}HEHP`蓄艄H HthCHEHLLLH]UHH$pHpLxLmH}HuH{HEHUHuH^HcHUH}Hu H}HuHt_HuH}JLeLmMtI]HqLLeLmMtݱI]HqLxSH}HEHt̄HpLxLmH]UHHd$H]LeLmH}H kHE@H}HEt H})LeLmMt%I]HpL H]LeLmH]UHHd$H]H}HuHϲHEHH}HEXHHHHH9v蹰HEXH]H]UHHd$H}HgHEH H]UHHd$H]LeLmLuL}H}H@#HEH臼H}螳tHEtHEHuHE@PtHEH^HcHqHH-HH9v豯AA}E@EEHEHu載HEHuH=bu;HEH;Eu/LuLeMt M,$Ln@LA D;}~H]LeLmLuL}H]UHH$`HhLpLxH}HuH訰HEHUHu|H[HcHUH}Hu:HuHExu^LeLmMt?I]HmLu/LeLmMtI]HmLEHuH}ؿEpH}HEHtEHhLpLxH]UHHd$H}H臯HEH+ H]UHHd$H]LeLmH}H(KH[HL%[Mt.MLlHAHEHEH]LeLmH]UHHd$H]H}HuH߮HEHH}菽HEXHHHHHH9v¬HEXH]H]UHH$HLLH}HuHUHTH}t)LmLeMt7LHkLShHEH}tHUHubzHXHcHUujHEHUH}H胳HEƀH}@| H}@`HEH}uH}uH}HEH}HEHpHhH(yHWHcH u%H}uHuH}HEHP`|@~|H HteHEHLLH]UHH$HLLLLH}HuHUH 薬H}t)LmLeMtyLHjLShHEH}tHUHuxHVHcHU[HEHUH}HHEƀHEǀHEƀHEǀHUHE苀X XH}@ H]Ht誩L+LOiH]Ht菩L#L4iLA$HxHxIHEHAGHAHALeMt-M4$LhDꋅAHAHEH}uH}uH}HEH]zHEHpH`H wH0UHcHxu%H}uHuH}HEHP`z{yHxHt||HEHLLLLH]UHHd$H}HuHHEHH}H]UHH$pHpLxLmH}HuH諩HEHUHuuHTHcHUH}Hu=H}Hu@Ht_HuH}JLeLmMt6I]HfLLeLmMt I]HfLxxH}HEHtyHpLxLmH]UHHd$H}HuUH蠨EHuH}HEHH;Et}tHEHǀH]UHHd$H]LeLmLuL}H}uH8 HE;Eu[HUEH}艩u?HELx`DuH]HEL``MtϥMLteHDLAH]LeLmLuL}H]UHHd$H}HwHEX@EEH]UHHd$H}HuH3HEHH;EuIHEHuHEHHuHEHc4HEPuH}H]UHHd$H]LeLmH}؉uHUHMDEH@EH}؉ tLeLmMtI]He]LuvHLeMtKI$ILHHLLHMLELMAH]LeLmLuL}H]UHH$`H`LhLpH}HuHȊHEHUHuWH65HcHxH}YE}HcuH}[H}HHHHދUH}PHc]Hq蒈HH-HH9v5}fEE܃ELmLceIqDLHH9vLH}qCT%uH};]~3YH}HxHtZH`LhLpH]UHH$PHXL`LhLpH}HuH!HEHUHugUH3HcHx<HELHELMtˆI]HoFLEuH}m}HcuH}zHc]HqۆHH-HH9v~}|EDE܃EH}ILcmIq脆LHH9v-LLuH}VAD=vGt,;]~DeH]HH}pHH}D1N?L HEHc<HELLeHELMtMI]H>LL8 HEHYH]LeLmLuH]UHHd$H}HHEHMfH]UHHd$H]LeLmLuH}HuH8賀HEHH=iFl1ulHEHHEHE胸 }LHED LeLmMtV~I]H=LDx H;Et HuH}i HuH} iH]LeLmLuH]UHHd$H]LeLmLuL}H}HuHPHEHH;EtHEuLuH]LeMt}M,$L1=HLAHHEHHEHEH;EuHuH=E0uHEtlHEHELeLmMt }I]HLeLmMtkuI]H5L HUH; EEH]LeLmH]UHHd$H]LeLmH}H(vHEHE}u[HEHH=<'u>LeLmMttI]HW4L HUH; EEH]LeLmH]UHHd$H]LeLmLuH}H@GvHEHH=;'ukEHEHHEEfLeLmMtsI]H3L ;Et EDuLeLmMtsI]HX3LDx H;EtHE@PucDuLeLmMthsI]H 3LDx HIIMt;sMuL2LA u/Hc]HqpsHH-HH9vs]Hc]HqAsHH-HH9vr]EEH]LeLmLuH]UHH$HLH}HuH@_tH}uHEH=:H%tLeMt'rI$H1HH1HHEHELeMtqI$H1HH0HHEHEHMH`HPIHH=r26HH5QHAHuH}wHLH]UHHd$H}HGsEEH]UHHd$H]LeH}uH@ sHEHHYDe؃ArD]HEHHEЋUH=HHEHgvHEHuH}H轲sHEHHtH@H HEH0HtHvH}HHgvHEHEHHEHgvHEHuH}HDH]LeH]UHH$HLLH}HuHUHqH}t)LmLeMtoLH\/LShHEH}t4HUHu=H HcHUHEHUH}HHH= HUHBPHEHPPHMHHB HJ(HUHEHBXHEH}uH}uH}HEHm@HEHpHhH(=H@HcH u%H}uHuH}HEHP`@A@H HtBBHEHLLH]UHHd$H]LeLmH}HuH(pH})LeLmMtmI]H-LH}HHEHxP8'H}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuH}HuUH@`o}t]HEH=u+HE HEHEt4HELpXLeLmMtmI]H,LL`H]LeLmLuH]UHHd$H]H}HuUH nHEHxPu|HHuHmH]H]UHHd$H}HwnHEHxPʲEEH]UHHd$H}uH4nHEHxPuHEHEH]UHHd$H]H}uHUH mHEHxPu謰HHuHH]H]UHHd$H}HuHmHEHxPHu蒸EEH]UHHd$H}uHUH`mHEHxPHUulH]UHHd$H}uH$mHEHxPuH]UHHd$H]LeLmLuH}uH8lDuH]LeMtjM,$L`*HDAHEHEH]LeLmLuH]UHHd$H]LeLmLuH}H0WlHELhXHEL`XMt;jI$H)L HcHqvjHH-HH9vj}h]EEfDEEHEH@X ;Eu0DuLeLmMtiI]HN)LD}~HEL`XHELhXMtniI]H)L 2LuALmMt8iI]H(DLH]LeLmLuH]UHHd$H]LeLmLuH}uH8j}}nHEHxP;EZHEHxPuxHELuILmMthI]H-(LL`HuHfH8`H]LeLmLuH]UHHd$H]LeLmLuL}H}uHUHX jHEH@XH@HEH}t HEH@XHEHEHXXHEL`XMtgM,$Lo'HA HUHUIIMLHtgHIL3'LLHUA$HEHuH}`HELpXDmL}HEHXXHtLHEHHELHELMtS\I$HLHEHHuH#H8+OH}HK=H}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuL}H}uHX]HEH$_uYHELx`DuH]HEL``Mtj[MLHDLAHEHUHEHEHEHE1HEHUHEHEHEHEHEHUH]LeLmLuL}H]UHHd$H]LeLmLuH}uH@\DuH]LeMtZM,$L@HDAx HEH}uHEEEHEHu HEHHMUHuHEEH]LeLmLuH]UHHd$H]LeLmLuH}HuH8[HELH]HELMtYM,$LaHLA(EEH]LeLmLuH]UHHd$H]LeLmLuH}uH8T[DuH]LeMtL#LpLA$8 AHELh`LuHEHX`Ht>IL7LLDA$H}Au*H]LeMtS>M,$LHA(HEH}THEHtHt0HEH`LhLpLxL}H]UHHd$H]LeLmLuH}uH8?}}|LeLmMt=I]H9L ;EIDuLeLmMt^=I]HLDx HEHEƀH}@u0LuLeLmMt=I]HLL8 uH}HELDeHELMt,MeLLHA$EEH]LeLmLuH]UHHd$H]H}uEMH8-Ef)EEH}Z9ErrHEHu HuH} H}Bu>HE0*YEH-HH-H=vm+fH}^H}%u>HE8*YEH-HH-H=v +fH}AH]H]UHHd$H}uH,HUE H}H}uH]UHHd$H]LeLmLuH}HuH8s,HEH@@='=txHEtHEtHE EHEHXHSHHH9v*HUC LuLeLmMt)I]HuL A; ~HEǀ H}HE@P tRHE ;EuAHE@Pu H},LeLmMtM)I]HLH ]LeLmMt")I]HL u HEtHEH@ HEH@H]LeLmLuH]UHHd$H]LeLmH}H0*EHE@H HEH}t1LeLmMtg(I]H LtxH}HcHq(HH-HH9v1(};EEEuH}KHUH;tE;]~ϊEH]LeLmH]UHHd$H]LeLmLuL}H}H8)HEHE |:LuLeLmMtT'I]HL A; ~HED H]LeMt'M,$LHDAx HELuLeMt&M,$L@LAHE$|RLuLeLmMt&I]HAL A;$~HEHU$; t LeLmMtL&I]HLunHED$LeLmMt&I]HLDx H/u)LeLmMt%I]HyLHED$H]LeMt%M,$LEHDAx AILMMtp%I$ILHDAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H0'HEH(tHE@PufH}'HUHE $HED HELp`H]HEL``Mt$LIL:HLDA8H]LeLmLuL}H]UHHd$H]LeLmLuL}H}H03&HEH'tHE@PuIHED*HELp`H]HEL``Mt#LILHLDAPH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H0s%HEH&tHE@PuIHED4HELp`H]HEL``Mt%#LILHLDAHH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H8$HEH7&tHE@PuHE0HUHE8AHELp`LmHEHX`HtN"HILLLDEA$(H}H]LeMt "M,$LHA@H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH`#HEH#%uHEHu{HEHxHEHEHHvHu]RL}HELp`H]HEL``Mt!MLHLLA0BHELp`H]IHEL``Mt MLzLHLA0H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuUHMHHh"HELx`LuHHEL``MtA LILHLLA0HUH5HH8HH]LeLmLuL}H]UHH$HLLLH}HuHUH!H}t)LmLeMtLH%LShHEH}t0HUHuHHcHUHEHUH}HHEƀHEƀHH=ي诀HUHHEHHuPHEǀXHEƀHEƀHEƀLeLmMtI]H1L HUHLuA LmMtSI]HDLHLuALmMt!I]HDLLuALmMtI]HDLHEH}uH}uH}HEH:HEHpHhH(H HcH u%H}uHuH}HEHP`jH HtHEHLLLH]UHHd$H]LeLmLuL}H}HuH8HEHHujHuqHEHHuZH}$ uNHEu?HELx`LuHEL``MtZMLLLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}@uH8HE:EuGHEUL}ALeMtM,$LVDLA H]LeLmLuL}H]UHHd$H]LeLmLuL}H}@uH8?HE:Et[HUEH}u?HELx`DuH]HEL``MtMLHDLAH]LeLmLuL}H]UHHd$H}HHEH膂 H]UHH$pHpLxLmH}HuH}XHBHUHuHHcHULeLmMtI]HL8 E}u]HEuHuH};HEH<$HEHHHuHEH}hWHEHtEHpLxLmH]UHHd$H}H7HEHE}uHEHHuHEEH]UHHd$H}HuHUHMH HEHu%HEHHMLEHUHuHEH]UHHd$H]LeLmLuL}H}HuHP_HELpHELHEHHt5L#LLA$uHEHIHEHEHELMn HEHHtHILwLLA$HELLC=vsLIHEHEH]HELp(HEHX0LeMtbI$ILLHH}LA@ HELLmHEHHtHILLLA$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}H0HEHGH}.uFHEDHELp`H]HEL``MtmMLHLDAH]LeLmLuL}H]UHHd$H]LeLmLuH}HuH0HELH]HELMtM,$LHLAH]LeLmLuH]UHHd$H]LeLmH}HuH(wH})LeLmMtZI]HLHEH%} HEH} H}HUH}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuL}H}H0HEHHEu?HEDLuLeMttM,$LLDA H]LeLmLuL}H]UHHd$H]LeLmH}H HEH3HEHu7HELHELMtI]HLHEǀHEƀH]LeLmH]UHH$PHPLXL`H}uEMHOEf)EEH} ErrH}HUHufH莿HcHxHEH5HcHq,HH-HH9v}}EfDE܃EHEHuIHEHu*@8YEL-LH-HH9vZDL;]~H}HxHt)HPLXL`H]UHHd$H]LeLmLuL}H}H0HEHW,HEu?HEDLuLeMttM,$LLDA H]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUH@ HEHt,HE@Pu}HE耸uRHE@PuHE胸\HE耸u0HE胸}HE苀;EuHEǀHEƀHUEHE苀;EL}}DHELx`DuH]HEL``MtMLHDLApHELp`LmHEL``MtLHzLLHE耸uHEǀHEH2HU艂HEƀH]LeLmLuL}H]UHHd$H}HuHUMH <HEHHuMH}AHEHE8~ HEH]UHHd$H]LeLmLuL}H}uH@HE;Et]LmLeMtI$HJLEuH}rLeLmMtnI]HL:EuHEH/1HEH1HcHquHH-HH9v}WEfEEHEHu IHEHux<@L;]~LuALeMt{ I$ILDLA H]LeLmLuL}H]UHHd$H]LeLmH}H HEHcHqe HH-HH9v HEHEt7HELHELMt I]HQL(H]LeLmH]UHHd$H]LeLmLuL}H}H0SHE~ H=vxh HEt7HELHELMt I]HL0HEHcHq< HH-HH9v HEHEtNHEu?HEDLuLeMts M,$LLDA H]LeLmLuL}H]UHHd$H]LeLmLuH}HuH8 HEuRHuH= 贽uHAUhHEH}tHUHuÜHzHcHUHEHUH}HH]LeMtM,$LHAHIILHHtIL|LLLA$HUHBxHEHPxHEH@xX XHELphHELhxHEHXxHtnL#LLLA$`HEHPxHMHHHHHEHPxHMHHHHHEHPxHMHHHHHEHHxHEHvHHHPLeLmMtI]HXLHEH}uH}uH}HEHHEHpHhH(誚HxHcH u%H}uHuH}HEHP`褝/蚝H HtyTHEHLLLLH]UHHd$H]LeLmH}HuH(H})LeLmMtzI]HLHEHxxH3 H}HWH}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmH}H HEH@xLHEH@xLMtI$HeLH]LeLmH]UHHd$H]LeLmLuH}uH0dHEH@xL]HEH@xLMt7M,$LۉLAH]LeLmLuH]UHHd$H]LeLmLuL}H}uHUH@HEH@xLLu]HEH@xLMtI$ILEMUuH}AvHEH`u7HEL`HEL`MtI]HpLH]LeLmH]UHHd$H}H觲EEHEH]UHH$`HhLpLxLuH}HuHTHELhHELhMt2I]HoLtHEHhGH;EuEE}u>HELhLeHELhMtǯI]HkoLLHUHu}H%\HcHUu)LeLmMtvI]HoL }uAHELhIHELhMt+I]HnLLHEHt%HhLpLxLuH]UHH$HLLLLH}HP螰HDž(HDž0HUHP|HZHcHHHEHhHEH]LmMt6MeLmHA$H8H@H8HEH@HELuLmH]HtL#LmLLA$ Hþ*HHMHDLAH}uH}uH}HEHPpH]LeLmLuL}H]UHH$HL L(L0L8H}HHEH@H@8HEHEH@`HEH}YHXL}LuLmH]Ht贌HILVLLLLXA$H}HUHEP(HUL}LuH]LeMtWLILKHLLEAEAH}襨HUHEP,UL}LuH]LeMtLILKHLLDEE؉AH}IHUHEHP0HUL}LuH]LeMt蛋LIL=KHLLLEEЉAH}HUHEDxILHHMEEA H}HUHEDp@LmL}HEHEH]Ht>ILHHHH}LLEE@HExXugH}耥HpHEDxXHEH@LmH]LeMẗMLqHHLH@EpAHHL L(L0L8H]UHHd$H]LeLmLuL}H}H8CHEH@H@8HEH}誤AHELp`H]HEL``MtLILGHLDAH]LeLmLuL}H]UHHd$H}H跉HEHxu\HEH@Hx8uKHEH@Hx8u4HEH@H@8@PtHEH@H@8@PtEEEH]UHHd$H}H'HEHxu`HEH@Hx8uOHEH@Hx8腊u8HEH@H@8@Pt HEH@H@8tEEEH]UHHd$H]LeLmLuL}H}HPsHEH'uHEH@H@8HEH}ŢHUHELx`LuLmHEHX`HtILELLLE؉A$E}}H]E=vECDHE@DEEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uHP耇HE@X;EtHEUPXH}@GH}~twHEH@H@8HEH}誡HUHEPXHUHELx`LuH]HEL``MtLILDHLLEAEAHH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uHP耆HE@(;EtHEUP(H}@GH}~twHEH@H@8HEH}誠HUHEP(HUHELx`LuH]HEL``MtLILCHLLEAEAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH`HEHp0H}NHtHEHx0HuH}@5H}ltHEH@H@8HEH}蘟HUHEHP0HUHELx`LuH]HEL``MtLILBHLLLE؋EAHEx,uaH}&HUHEP,UHEHX`L}LuHEL``MtrMLBLLHDEȋEЉAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uHXEEHEx8wHE@8;Ew HE@8E$HEx<wHE@<;Er HE@HLLEAEA0H]LeLmLuL}H]UHHd$H]LeLmLuL}H}@uHP菀HE@,:EtHEUP,H}@VH}ttHEH@H@8HEH}輚HUHEP,UHELx`LuH]HEL``Mt~LIL=HLLDE؋EAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uHPHE@H;EtHEUPHH}@WH}twHEH@H@8HEH}躙HUHEPHHUHELx`LuH]HEL``Mt}LILHEHpHhH(7;H_HcH u%H}uHuH}HEHP`1>?'>H HtA@HEHLLH]UHHd$H]LeLmH}HuH(7nH})LeLmMtlI]H+LLmLeMtkI$H+LH}H,%H}uH}uH}HEHPpH]LeLmH]UHH$pHxLeLmH}uH_mLeLmMtKkI]H*L;EtHEUHEǀHEǀHUHuR9HzHcHUu uH}!H[uH}?%JI]HLHExP}H}H}H]LeLmH]UHHd$H}HuH?HEHUHPHE@ HE@HHE@@HEHx( H]UHHd$H}Hw?HExTt H}"H}iHEHEH]UHHd$H]LeLmLuH}H(?HE@THEH@LpH]HEH@L`MtHEHxuHEHx=uEEEH]UHH$HLLH}HuHUH$>H}t)LmLeMt}t2LeLmMt!I]H;LtGEE}uEEfHc]Hq!HH-HH9vN!]LeLmMt!I]HL;E~E}u}E@}u}uDuLeLmMt I]HVLDILPLMMt~ M,$L"HLAHPH}H>rHEDuLeLmMt) I]HLDIHPMMMtM,$LLHAHPH}HqHE|DuLeLmMtI]HELDIHHMMMtmM}LLHAHHH}$mHE}tHc]HqHH-HH9v&]Ā}uILeLmMtI]HL;Et EE;EtE4LeLmMtI]HBL;EtE}u }u}u4DuLeLmMtGI]HLDHEHH \HP[H}[HXHtHEH L(L0L8L@H]UHHd$H]H}HuH(HEx,u2HEHx0u%HEH@0H@8H;EtHEH@0HEHEH@ HcXHqHH-HH9vM}ZEEEHEHx uOHEHEH@8H;EtHEUP,HEHUHP0;]~HEHEH]H]UHHd$H]LeLmLuL}H}؉uHUMDEHhuHE}u1Hc]HqHH-HH9vY؉ELceIqLH-HH9v(LuH]HtL+LLAHcHq/HH-HH9vAE9}yDeċEăEċEăEDuH]LeMtwM,$LHDAHEH}uHEH@8H;Et HEHED;}~딀}u}u/Hc]HqjHH-HH9v ]Hc]Hq;HH-HH9vAA}qEEăEDuH]LeMtM,$L+HDAHEH}uHEH@8H;Et HEHED;}~HEH]LeLmLuL}H]UHHd$H}HHEHH=e0HJHEHEH]UHHd$H]LeLmLuL}H}HuHHEH}H,$HUH-HUHEHHHUILuHuHLeMtRI$ILHLMLMHUHMAH$HUHQHUHEHUHHUIL}HTuHLeMtI$ILzHLLHMLELMAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HHcHEH@H@HEH}t=HEL`HEHXHt.L+LLAEH]LeMtM,$LHAAHELhHEHXHtL#LiLA$A9u EEHEHXHELhMt~MeL"HA$HcHqHH-HH9vZHEE}EEEHELhDuHEHXHtL#LDLA$IDuLmH]HtL#LhLDA$HL/E}u E;E~bEH]LeLmLuL}H]UHH$HLLLLH}HuH`HDžHUHXZHHcHPLmH]HtL#LqLA$LeLmMtI]HFLHEH}LLEH}LLEHEHx\rH0HHHcHHc]HqkHHHH9v H}EDEEHuH}}H}HEHHLH]LeMtvM4$LHLA EԉLLAH]LeMt7M4$LHDAHcEHHH}ELLEHc]HqBHHHH9vH}E@EELeLmMtI]H'LIHHLLMMtCM4$LHLAP;E~z;E~BH]LeMtM,$LHAHcUHUq1H9|H]LeMtM,$LWHAHcHqHH-HH9vAA}&EEEDuLmH]Ht7L#LLDA$HEHEHx(tLmH]HtL#LLA$IMLHtL#LnLA$HcHqHH-HH9v}8EEEH}LLuH};]~D;}~HEHxoHHt9HNHPHtHLLLLH]UHHd$H]H}HuH HEHxEuH}m_H}`HHH_HUHEHxH]H]UHH$HLLLLH}HuHPHDžHUH`:HbHcHXH]LmMtMeLPHA$LmH]HtL#L&LA$HEH}TTEH}TTEHEHx:lH8HrH蚻HcHHc]HqIHH-HH9vH}E@EEHuH}]H}tHEH}H@LH]LeMtUM4$LHLA E؉TTAH]LeMtM4$LHDAE䉅TTEHc]Hq<HH-HH9v H}EEEH]LmMt{ MeLHA$IH}H!LLMMt8 M4$LHLAP;E~w;E~WH]LeMt M,$LHAHcUHUq& H9|H]LeMt M,$LLHAHcHq HH-HH9v AA}#EEEDuLmH]Ht/ L#LLDA$HEHEHx(tLmH]Ht L#LLA$IMLHt L#LfLA$HcHq HH-HH9v }8EEEH}TTuH};]~D;}~HEHxiHHt1HHHXHtHLLLLH]UHH$HLLLLH}HuHz HDžXHUHhHHcH`zEH]LmMt% MeLHA$HcHq^ HH-HH9v HHH}EEEDmH]LeMt M4$LCHDAILXLMMtj M<$LHLAHXHtH[Hq HH-HH9v9 ]DmH]LeMtM4$LHDAIMLHtL#LuLA$IMLHtL#LJLA$HcHqHH-HH9vH88}NEfEEHcEH0DmH]LeMtM4$LHDAILMMtM,$LHAIDmHXMMMtIH H JLHDH HXHtH[HqH0qHHHH9v]]Hc]HqHH-HH9v.]8;E~HcEHqLHc]Hq>HHHH9v]䋅H;E~EEH]LeMtM,$L7HATTEHuH}LeH]HtHL+LLAHcHqHH-HH9v&H@@}EfDEEDmH]LeMtM4$LcHDAHEH]LeMtM,$L2HATTEȸE̸EHEHx(t EdH]LeMt/M,$LHAIMLHtL#LLA$TTEHuH}MLmHXLeMtM4$LVHLALXH]LeMt~M4$L"HLA Hc]HqHHHH9vXH((}EEELmLeMtI$HLIDmHXMMMtIHH`LHDHLXH]LeMtM4$L#HLA (;E~>@;E~fH]LeMt2M,$LHAHcHqlHHHH9vAA}EEEDmH]LeMtM4$L[HDAHEHEHx(tLmH]HttL#LLA$IMLHtIL#LLA$HcHqHH-HH9v&}.EEEuH}sH};]~D;}~QHX?H`HtHLLLLH]UHHd$H}HWHE@8EEH]UHHd$H]LeLmH}uH(}|HE@8;EtHEUP8H}uHEp8H}HEH@LHEH@LMtI]HNLHU;B8}HEH@HHEHx H]LeLmH]UHHd$H}uH4HE@8;E~ HE*HEH@HuUHEH@HHEHEH]UHHd$H]LeLmLuH}H0HEH@ HcXHqHH-HH9v}NEDEEHEHx u2ILܹHEHx uH%2;]~LuLeMtM,$L蹾LAHE@8H]LeLmLuH]UHHd$H]LeLmLuL}H}uH8HE@ ;EulHUEB HEHx uOHEH@Lx`HEDp HEHXHEH@L``MtAMLHDLApH]LeLmLuL}H]UHHd$H}HHEHxkEEH]UHHd$H}HHEHxukEEH]UHHd$H}@uHcHEHxU辅H]UHHd$H}@uH#HEHxU~H]UHHd$H}HuHHEH=XH蠯u ;Eu>HEHuTYxXu#HEHu9YIľLf;]~H}H}4H}4HEuH}fYHEXtH}4H}4HEuHEXH44H}(fH]LeLmH]UHHd$H]LeLmLuL}H}HuHXHEH@HELuHELHELMt]I]HLA;F~+HEuHEH@(uCHEH@@t HEDpHELHELMtI]HJLDHEHEHH;Et H} H}tHE` HE@ t H}蠈lH} HELHELMtI]H贩LHcHqKHH-HH9v}]܋E܃E܋E܃EHELDeHELMtI]H-DLHEHE` HE@ t H}譇}~qHEpHEHUHLuLmMtMeL趨LHA$0 $HEx| HEFHEDpHELHELMtI]HMLDHEH}uaHEtRHE@ uCHEHH;EtHEHǀHEHH;Et H}RHEx(tH}Uu HuH}#H}jUuHEupHExtdHEuUHEDHELp`H]HEL``MtML.HLDAu H}HE@$HUR 9uCHE@ t$HEHH;EtHEHǀHUHEHHE@$HUR 9u+HEPtHE@ uHEHHEH}Tu+HEuHE@ HuH}tHE@ tuHEtHEHH;Et H}FHEx|HEHU@;tH}St H}cHEHE:HEHUHHEPHEuHUHE@H]C(=vDs(L}H]LeMtM,$L$HLDA( HE@ AH]L}LeMt:M,$LޤLHDAX KH]C(=v)Ds(H]L}LeMtM,$L葤LHDA( H]LeLmLuL}H]UHH$@H@LHLPLXL`H}HuHUHMDEH^HDžpHUHu衲HɐHcHx?HEHu.HEHDMHMLEHUHuHEHELLuLmHEHHtL#LdLLLA$xLuLpH]HtL#L-LLA$HpHhHc]HqHHHH9vTAHELDuHEHHt L#L谢DLDHhA$sHp HxHtH@LHLPLXL`H]UHH$PHXL`LhLpLxH}HuHJHEHu}HEH@HEHEP UHEHxEHELHELMtI]H蓡LHUHu(HPHcHUOHELHELhHEHHtL#L,LLA$HEHxHEH3H}HHEHGHE8tSHELHELpHELh HEHHtL#L蜠LLLA$xtHELHU=vHED(HEHHtL#L@DLA$HDEH}HEHPHEHH HELIHEHHt4L#LٟLLA$HELHELMtI]H蝟LuHEHx贾HEHtHEH@HXL`LhLpLxH]UHHd$H}HwHEHǀHEǀHEPH]UHH$PHXL`LhLpLxH}HHEHUHuDHlHcHUHEHHu HEHHuH}qLuHEuHEDHELHEHHtIL#LLDA$IL}LuH]HtL#L躝LLLA$` FHEHLLmL}H]HtL#LrLLLA$` HEHHǀHELAHEHHtvL#LDLA$HELAHEAHEHELMtI$HEDEEL胮H}HEHtHXL`LhLpLxH]UHH$ H L(L0L8L@H}HnHEHDžXHUHx親HΈHcHpH}A}H}AAHELHEHHtL#L萛LA$A9|MH}AAHELHEHHtL#LELDA$HEHEH}0H}t-LuLmH]HtJL#LLLA$ tH}zH`HhH`HEHhHEH}HuuLuLmH]HtL#LiLLA$H}tH}H5tHELLuHEHHtlL#LLLA$EHcUHcEH)qHcEH9~MHcUHcEH)qHc]H)qsHqhHH-HH9v ]EHcUHcEH)q-Hc]HqHH-HH9vHPHc]HcEH)qHH-HH9vHHHEL]DuHELMt8M<$LܘDLHPAAHEHHUHLmLXH]HtL#L耘LLA$HXHEHgHELAHEHHtL#L+DLA$HEHHELMtKM,$LHAHXH} HpHt*H L(L0L8L@H]UHHd$H]LeLmH}HuH(HEH+EuqHELHELMtI]H$Lu+LeLmMtQI]HL H}H]LeLmH]UHHd$H]LeLmH}HuH(HEHkDuqHELHELMtI]HdLu+LeLmMtI]H5L H}1H]LeLmH]UHHd$H}uUH AEttJmzHEHu"HEHuHEHuEE>HEHuHEHuEEHEHE}u}uEttJmzHEHXu"HEHhuHEHxuEE>HEHhuHEHxuEEHEHxEEH]UHH$PHPLXL`LhLpH}HHEHHEH@`HEHED\LuLmH]HtsHILLLDA$HEH4AEDEEHUEHuHEHxHUE싔(HuEHHCtHuLmDuH]LeL}MtL}H}YLHDLH]x}sPHEDxLuLmH]HteHILLLDA$HEL|LuLmH]Ht#HILŒLLLA$HEDLuLmH]HtHIL胒LLDA$HUXHEHUdHEHED`LuH]LeMtLIL%HLDEEAAHEtTHEHHEDL}LuH]HtIL轑LLDA$PL}LuAH]HtIL聑DLLA$HELHEHHtL+LCLAAL}LuH]HtnILLLDA$HEDLuL}H]Ht/HILѐLLDA$XHEDLuL}H]HtHIL菐LLDA$`HEDLuL}H]HtHILMLLDA$hHEHuHELHEHHtWL+LLAHUHELHEHEHEHEALeMt ML讏AEH}HuLEAHEHuHELHELMtI]HPLHUHELLuL}EHELeMtaLHEADMLLLEHPLXL`LhLpH]UHHd$H]LeLmLuH}HuH0HEHH8 H~H9u2LuLeLmMtI]HSLL8 -HEHuHEH HUHuHEH]LeLmLuH]UHHd$H}HuH3HE@ t H}{l-HEHuHEH HUHuHEH]UHHd$H]LeLmLuH}HuH0HEHHP H~H9u2LuLeLmMtI]H#LLP -HEH(uHEH0HUHuHE(H]LeLmLuH]UHHd$H}HuHHEH(uHEH0HUHuHE(H]UHHd$H]LeLmLuL}H}HuHHHEH#tHE@PuH]LeMteM,$L HAHUHELx`LmLuHEHX`Ht%HILNjLLLEA$pEH}E{:Eu:@uH}aHEH8uHEH@HUHuHE8H]LeLmLuL}H]UHHd$H}HuUHpH}uEH}$HEHHu3HE苀Pt HEHPMHUHuHEHH]UHHd$H]H}uEMHPEf)EEH}ZErr-H}-HcHqHH-HH9v}]܋E܃E@E܃E܋uH}s-HEHE*@<YEH-HH=vHEPH}uEEH]UHHd$H]LeLmH}H 諦HEHu7HELHELMtyI]HdLH} H]LeLmH]UHHd$H}H'HE@HH]UHHd$H]LeLmLuL}H}H@ӥHdHEHEHuHEHHUHuHEHELLuHLeMtuLILcHLLA8HEHEH]LeLmLuL}H]UHHd$H}HHEHH=-HfHEHEH]UHHd$H]LeLmLuH}H(ǤHEHcHqHH-HH9v财HEHEPHEtFH}u7HELp`LmHEL``MtALHaLLH]LeLmLuH]UHHd$H}HuHEHEHu!HEHHMHUHuHEEH]UHHd$H]LeLmH}H 苣HELHELMtiI$H aLH]LeLmH]UHHd$H]LeLmLuH}H(HE~ H=Yt< HEHcHqFHH-HH9vHEHEt HEPHEtFH}u7HELp`LmHEL``MtgLH `LLH]LeLmLuH]UHHd$H}HHEuHEHCaH} fH]UHHd$H]LeLmLuH}H(跡HEƀTHELh`LeHEHX`Ht茟IL1_LLA0HUH|HEtHEHqHEH H}AH]LeLmLuH]UHH$PH}ȉuHUMDEDMH}H֠HUHh!mHIKHcH`u,E$HEHDMDE؊MHUu{HE pH}aH`HtqHEH]UHHd$H}؉uHUMDEH0)HEHDEMHUu[HEHEH]UHHd$H]LeLmLuH}HHǟHEHKt3HEHUHEHEHEHEOHELp`LmHEL``MtbLH]LLHEHUHEHEHEHEHEHUH]LeLmLuH]UHHd$H}HHEH׿EEH]UHHd$H}uH贞HEHuQ HEHEH]UHHd$H]LeLmLuH}H8gHEHt E:HELp`LmHEL``Mt,LH[LLE}t HEBHELDeHELMtڛI]H~[DLHEHEH]LeLmLuH]UHHd$H}H臝HEHHEHEH]UHHd$H}uHDHUEHHEHEH]UHHd$H}uHHUE(EEH]UHHd$H]LeLmLuH}H0跜HEH;uuLHEHDeHELMtMuLLDHAHUH D;}~MHEPHEHHEHEH]LeLmLuL}H]UHHd$H]LeLmLuH}H8gHE\rr E:HELp`LmHEL``Mt+LHKLL(E}t HEBHELDeHELMtًI]H}KDLHEHEH]LeLmLuH]UHHd$H]LeLmLuH}H0wHEHu=HELp`LmHEL``MtELHJLL0HEHEH|HEHEH]LeLmLuH]UHHd$H]LeLmLuH}H0׌HE\rr]EEDEEuH}x@uEE}~Ӄ}}H}SHcHEHkqH)qHH-HH9v薈]EHc]Hq轈HH-HH9v`}EEEuH}Cx@uPLceuH}+ILPAAMqLDLH}A$xH]LeLmLuL}H]UHHd$H]LeLmLuH}uH@脀}|@HELHELMtZ~I]H=L;E~IEEHEHMH HPIHH=\;BHH5HUN}tH}HHEuH}uH}HHUEHELDeHELMto}I]H=DLHòH:JHELDeHELMt}I]HHUHuH}HEHxHUEHED}Du]HELxMt%aI$IL DDEAH}AHEHpuyHEHpMĦHEHUHEHxHEHHEHHEHxHHHHH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUMHPbEUuH}fHH-HH9vt>}EEEHEHuHEHuH=uHEH;EuvHEHH;EtcHEH@ HEHE HEH@ HEHE HMHljHPIHH=7HH5H ;]~;HEHuMHELLeHELMtE=I]HLLHEHǀH}uHEHUHH;tHuH=z~tHuH=̍tHuH=EtHEHUHH}H}IHUH5^HEHHUH5HEH/HUH5HEHRHUH5gHEHHUH5HEHH]LeLmLuH]UHHd$H]LeLmH}@uH0=HE`u}uDH}T HHUHcHq;HH-HH9v~;]EH} fHHEHcH)q;HH-HH9v7;]HE;EHEE HE;E|HEEE-=v:uH}x}u9HELHELMt:I]H&L7HELHELMtI:I]HLH]LeLmH]UHHd$H}HuHUMH(;EHEuEtHEXtKtHEff=&r2f-&tf-t$H}@EH}@EAHEff=%r2f-%tf-t$H}@zEH}@hE}u HEfH]UHHd$H}HuUMLELMH0:}HE@HHE}|H}@HEH]UHHd$H}HuH:HEHGH]UHHd$H]LeLmLuH}HuH0S:HEHugHELHELMt!8I]HLLuLmMt7MeLL@A$PH]LeLmLuH]UHHd$H]LeLmLuH}HuH09HEHu>HEHDLeLmMt]7I]HLDH]LeLmLuH]UHHd$H]LeLmH}uHUH89HEuH}HaE}tFHE耸`t7HELHELMt6I]HYLEH]LeLmH]UHHd$H]LeLmH}uHUH8T8HEuH}HE}tFHE耸`t7HELHELMt6I]HLEH]LeLmH]UHHd$H]LeLmH}uHUH87HEuH}HE}tUHE胸XtFHE耸`t7HELHELMtF5I]HLEH]LeLmH]UHHd$H]LeLmH}uHUH86HEuH}HaE}tUHE胸XtFHE耸`t7HELHELMt4I]H*LEH]LeLmH]UHHd$H}H76HEHuH}ܠHEƀ H]UHHd$H}H5HEHuH}ܠHEƀ H]UHHd$H}؉uUMDEH(5EMUuH}AzH}H]UHHd$H]LeLmLuH}@uH035HE`t|HELDeHELMt2I]HDLPHELDeHELMt2I]HaDLP@uH}VH]LeLmLuH]UHHd$H}Hg4EEHEH]UHHd$H}HuHUMH ,4HEXtt,HEHEHEHEH]UHHd$H}HuUH3EHuH}Y}t#HEHH;EtH}HH]UHHd$H}HW3HE EEH]UHHd$H]LeLmLuH}H`3HEHLuH]LeMt0M,$LHLAHEHEHELeLmMt0I]H^LHEHUHEHEHEHE܋E;E}"E;E|E;E}E;E|EEH]LeLmLuH]UHH$`H}H!2HEHDžhHDžpHUHuQHyHcHx!HEHuHEHHp}]HpH}}"H+pHh!xHhHuAHHp轑HpH}mHuH}P-tHEf\fEpHE;E|HEEHE;EHEEE-=v.uH}HEf\fEAHhlHplH}lHxHtEH]UHHd$H}HW0HE`uE6HEHu"HEHH=P`EEEH]UHHd$H]LeLmLuH}fuHH/HEff;EuHUfEfHEHUf\f;|HEH}HE`uPHE*EHELp`LmHEL``Mt=-LHLLEH]LeLmLuH]UHHd$H}@uH.HE:Et'HEUHEr HEƀH]UHHd$H]LeLmLuH}fuHHs.HEff;EuHUfEfHEHUf\f;HEH}@HE`uPHE*EHELp`LmHEL``Mt+LHLLEH]LeLmLuH]UHHd$H]LeLmLuH}uHHt-HE;EuiHUEHE`uMHE*EHELp`LmHEL``Mt+LHLLEH]LeLmLuH]UHHd$H]LeLmLuH}fuHH,HEf\f;EtwHEfUf\HE`uPHE\*EHELp`LmHEL``MtI*LHLLEH}tH]LeLmLuH]UHHd$H]LeLmLuL}H}uH8+HEX;EtkHEUXHE`uFHEDXHELp`H]HEL``Mtv)MLHLDAH}H]LeLmLuL}H]UHHd$H}uH+HE;EtHEUH}H]UHHd$H]LeLmLuL}H}@uH8*HE:Eu[HEUHE`u?HELx`DuH]HEL``Mt^(MLHDLAH]LeLmLuL}H]UHHd$H}@uH*HE^:Eu HEU^H]UHHd$H]H}@uH)HE`u^H}5:EtLHEHH=H@uHfHEHH=_H@uH@H]H]UHHd$H]LeLmLuL}H}@uH8)HE_:Eu HEU_HE`uFHED_HELp`H]HEL``Mt&ML\HLDAH]LeLmLuL}H]UHHd$H}HuHc(HEH}HqHuH=؅CHUHB H]UHHd$H}H(HEH+yu2HEHpH=ŞHUHR :)tEEEH]UHHd$H}H'HEH;zu2HEHpH=ŞHUHR ;<tEEEH]UHHd$H]LeLmH}@uH(''LeLmMt%I]HLpuHEHx @u+H]LeLmH]UHHd$H]LeLmH}uH(&LeLmMt$I]H8LuHEHx uY/H]LeLmH]UHH$HLLLLH}HuHUH &H}t)LeLmMt#LHLShHEH}tHUHuHu]HEHE}tHE耸)tHE@H}E}tHE胸<|HEH}H]UHHd$H}HHEHXuHEH`HuHEXH]UHHd$H}HHQHEHEH]UHHd$H]LeLmLuH}HuH0SH}tkLmLeMt1I$HռLH}賷HLuLeMtM,$L蠼LHA@HEHpxH}ҋHE@GH}HEDIH]LeMtM,$LCHDAPHELH]LeMtgM,$L HLAXHEH}+HEDDH]LeMtM,$LHDALmLeMtI$H蓻LH]LeLmLuH]UHHd$H}HuHHElrsHEdtHEH@ HEH@H]UHHd$H}H7HEH;eH]UHHd$H}HHEHgH}@ H]UHHd$H]LeLmH}H HEHgHEptoLeLmMtI]H*Lt4HEpu!HEpHEpHEpH}@ H]LeLmH]UHHd$H]LeLmH}uUMH@EUuH}dLeLmMtI]H^LtHEltHEHusHEpE܋UuH}uMeHEp;Eu6HUE܉pLeLmMtI]H轸L@H]LeLmH]UHHd$H]LeLmLuH}@uHHHE):Et%HE@PuHUE)}u HEluH}u6HEU)LeLmMtEI]HL@HUHuH}? u];]}EEEEHEHu9HEHE؀)uBHEH;Eu6HEƀ)LuLmMtMeLJLA$@;]~H]LeLmLuH]UHHd$H}HuHSHEH0H;Et%HEHUH0H}u HuH} H]UHHd$H]LeLmLuL}H}@uHPHE8:EtHEU8HE@PuwHUHuH} u]Hc]HqHHHH9vHE؋E;E}EEDEEHEHu7)uHc]HqgHHHH9v D}A9}]EEEEHEHuL7)uXHEHu.7ƀ)HEHu7IMLHt_L#LLA$@D;}~vE;E~H]LeLmLuL}H]UHHd$H]LeLmH}uH(HE<;EtuHEU<LeLmMtI]HUL(u9HEHu)LeLmMtrI]HL@H]LeLmH]UHHd$H]LeLmH}@uH(HEA:EtFHUEAHEHu)LeLmMtI]HwL@H]LeLmH]UHHd$H]LeLmH}@uH(wHE@:EtZ}u H}@`HUE@HEHu)LeLmMtI]HòL@H]LeLmH]UHHd$H}HuHHEHHH;EtXH}uHE@Pt HuH}HEHUHHHEHHuHEHHHu6H]UHHd$H]LeLmH}@uH(7HEh:EtnHEUhLeLmMtI]H褱L(u2LeLmMtI]HuLH}H]LeLmH]UHHd$H]LeLmH}uH(xHEl;EtHEUlErHtt ;<HEHHUHPH} HELeLmMt>I]HLtaHEHH u@H]HEHH ;<HEHHUH H HEH]LeLmLuL}H]UHHd$H]LeLmH}H({HEHxpt9HEL`pHELhpMtRI]HLptEEEH]LeLmH]UHHd$H]LeLmH}H(HElrEHEHuO}uCHELHELMtI]H?L( tEEEH]LeLmH]UHHd$H]LeLmH}H(;HEHxpt9HEL`pHELhpMtI]H趠LtEEEH]LeLmH]UHHd$H}HuHHEH}H$HuH=0cu'HE@)H}9BHE<H}LH]UHHd$H]LeLmH}H@;HElt ElHElrrOHELHELMtI]H茟L( u E EELeLmMtI]HDLt$]HqHH%v]HE)uHEpu0HEPu!]HqHH%v2]OHEPu!]HqPHH%v]]Hq/HH%v]pHEpu0HEPu!]HqHH%v].HEPu]HqHH%vl]HËuH6HE܉UHEHEEEHEUH]LeLmH]UHHd$H]LeLmLuL}H}HuHXLmLeH]HtL3L\LLAHHEHH;EtHEHuHEHHuHEHǀHuH=Y3uH]LeMt'M,$L˜HA( tCHElrtrH}H,E HEEH}+EAHElrtrH}+E HEEH}+EHUHEHEDDuDmHEHELeMtNI$HH}DEDE؉HuH}>HEHH=2֎uGHUHEHHH}qE}|HEHHuH}H]LeLmLuL}H]UHHd$H}HHEHH=1@uHEH:%H]UHHd$H]H}H 3HEHuH}H?tEM];]}=EEEEHEHu(uE ;]~EEH]H]UHH$`HhLpLxH}HuHxHEHUHu辨HHcHUyH}Hu HuHEx蹿uEHEHtu/LeLmMtI]H蝙LEHuH}EYH}HEHtҬEHhLpLxH]UHH$HLLLL H}HuHUMHCHDž@HUHP胧H諅HcHHHEHuHEHEEEHElrtrHEHtuHEHluHEhuHEHltH}H@H@u#HEHu H}HEHEHhEHcEHc]HqSHHHH9v]HcEHc]Hq HHHH9v]HH!HH!HEHElrtrHEH(L}LuLmH]Ht=L#LLLLH(A$H}uEHEHHxHEHH}HE؃}~E}HEȾjHE}}HEHlu[HEHufEHcUHcEHqHc]HqHHHH9vD]YHEHfEHcEHcUHqUHc]HqGHHHH9v]}HcUHcEHqH8HcUHcEHqH0H0H;8 H0H8HHHH9vhHEHcUHcEHqH8HcUHcEHqwH0H0H;8 H0H8HH-HH9vHEHElrtrHEHcHqHH-HH9vHEHEHcHqHHHH9viHEHEH#M,$LgHA H(HpvHTHcH }uDžHE:DžHH]LeMtM,$LdgHAEH};HcHqHHHH9v荧AA}DžLDLLLH}蒁HEHExxtLuAH]HtL#LfDLA$H}^~HHHH}>~HHHHuHp2HuH}HHuH u HuH}xD;L~ }uH5Hp_H5vHpJLeLmMtI]HeLHHHH`HHh}uPHEHcHcUH)qHclHqHHHH9v觥lMHEHcHcUH)qƥHchHq赥HH-HH9vXhH`HEHhHELmLuH]HtL#LdLLA$Hc]Hc`H)q6HHHH9vؤPHc]HcdH)qHHHH9v蟤THchHcEH)qĤHHHH9vfXHclHcEH)q苤HH-HH9v.\}u }uEĉEẺEEȉEEEEEHpHcXHq"HH-HH9vţH}DžLfLLLHpHELeH]HtGL+LbLA(t H_HEuHEEHEE EEEEHEHuEHEHuEHuH=A|UuHElrr ƅDƅDDuL}t#HE;EDHEE!HE;EDHEEHE؊:EuPHuH=Tu:HElrr$}tHEE HEEHE;Eu8HE;Eu'HE;EuHE;Eu}tDu]D}DuEHDmHEHLeMt:I$H`HDDE]EHEHDmDuH]LeMtޠM<$L`HDDꋅAA}u }uHcEHcUHqHcXHq۠HHEHcHHH; HHHHHH9vFHEHcMHcEH)qiHcUHq[HcXHqJHHEHcHHH; HHHH-HH9v趟HEHcEHcUHqޟHc\Hq͟HHEHcHHH; HHHH-HH9v9HE}uHcEHc]HqVHHHH9v]HE؀tHuH=HQuHExuEEHcEHc|HqݞHH-HH9v耞]}t=HEHcpHq蟞HH-HH9vBHE؉p}u3HcEHc]HqYHHHH9v]HE؀tHuH=KPuHExuEEHcEHcxHqHH-HH9v胝]}t=HEHcpHq袝HH-HH9vEHE؉p;L~nH}WHp~WH}uWH]LeMtќM,$Lu\HA H}HU؊EHHtoEHLLLLH]UHHd$H]H}HuUH8 HE@pDH} HEpHH}M HE@pLH}HUHE@MBMHE@pTH}HEpXH}-HEp\H}mHEp`H}HE@pdH}HE@peH}+HEHppH}jH}! @H}HEHEHx0u0HEH@0Hp HEH@(Hx蓛HH=A-4;HEHuH} HuH}DqH]UHHd$H]LeLmLuL}H}HPӉHEHx0uHEH@0uHUHB0HEHEHEL}AHEL`0Mt|M,$L GELHUH}AHEH@(uEEHc]H}HcHUHR(HcHqwHSL IqbIqXLH-HH9vDeEEHE@`EE;EuuH}H]LeLmLuL}H]UHHd$H]H}H sHEH@(HcHMSHHq识HUHR(HcHq薆HH-HH9v9]EEHEHxpueHEH@(uRHEH@(HcHEHcHq,Hc]HqHH-HH9v]HEH@(HuHEH@(tHEH8t@LeMt~I$Hf>HH=HH}HLH]UHHd$H]H}HSHEHcHEHcX|Hq~HH-HH9v9~]EH]H]UHHd$H}HHExdEEH]UHHd$H}HHExeEEH]UHHd$H}HuHHE@HdH]UHHd$H}HGHExxu)HEH@(u HExTuEEEH]UHHd$H]LeLmLuH}HuH0~HE@dHELp8H]HEL`8Mt|M,$LOYHc]HI$HIDHc@|Hc]HqSYHH-HH9vX]܀}u%E;E|UuH}2uEE}uHcUHh%HHqXHc]HqXHH-HH9voX]؋];]}]EԃE쐋EELeM$HHcUHH9v+XLcuLI$HKTEBP;]~EHc]Hq/XHH-HH9vW]D;}~\HEtHE*EIHEAtHE(E*HE,EHEt HEEEHED}A}EEE}uGLeM$HHcEHH9vVHc]HI$HIDxDuEEHEAtHEuKLeM$HHcUHH9vVHc]HI$HNIDU܉LeM$HHcEHH9vGVHc]HI$HIDHcP|HEHcHcEH)qQVH)qGVHH-HH9vUAH]LHHcEHH9vULcmLHHKDLeM$HHcEHH9vUHc]HI$H>I\LeM$HHcUHH9vEULcuLI$HKDChHEtHEAtKLeM$HHcUHH9vTHc]HI$HITEЉLeM$HHcUHH9vTHc]HI$HRIDHcPPHEHcHcEH)qTH)qTHH-HH9v9TLeM$HHcEHH9vTLcuLI$HKDLeM$HHcUHH9vSHc]HI$HIDHx0ue LeM$HHcUHH9vSHc]HI$HEI|ELeM$HHcEHH9vDSHc]HI$HIDHcX|HcEH)qYSHEHcH)qDSHHH)q/SHH-HH9vR]HEAtNHcEHc]HqRHH-HH9vR]HEtKLeM$HHcUHH9vXRHc]HI$HIDHx0uéILeM$HHcEHH9v RHc]HI$HIDHx0u訪LeM$HHcUHH9vQHc]HI$HMdHc]HcEH)qQHH-HH9v|QA$HEtLeM$HHcEHH9v9QHc]HI$HIDHcHHHqDQHUHcHq/QHH-HH9vP]LeM$HHcEHH9vPHc]HI$HgIDHx0uHEHcHcEH)qPHEHuH@0HcH)qPHcEH)qwPHH-HH9vPLeM$HHcEHH9vOLcuLI$HKDHcEHc]HqPHH-HH9vO]LeM$HHcEHH9v|OHc]HI$H8IDHx0uLeM$HHcUHH9v3OHc]HI$HMdHc]HcEH)qHOHH-HH9vNA$HEtULeM$HHcEHH9vNHc]HI$HiIDH@0HcLeM$HHcUHH9veNLcuLI$H!KDHc@PH)q~NHH?HHHc]HqcNHH-HH9vN]HEH*Hc]H)q)NHH-HH9vMLeM$HHcUHH9vMLcuLI$HdKDLeM$HHcEHH9veMHc]HI$H!IDHcHEH*HqoMHH-HH9vMLeM$HHcUHH9vLLcuLI$HKDHx0芥LeM$HHcUHH9vLHc]HI$HbIDHx0uq4LeM$HHcEHH9vXLHc]HI$HIDH@0HcLeM$HHcEHH9vLLcuLI$HKDHc@PH)q)LHH?HHHc]HqLHH-HH9vK]HEAtLeM$HHcUHH9vxKHc]HI$H4IDHx0uHEH(Hc]H)qyKHH-HH9vKLeM$HHcEHH9vJLcuLI$HKDCLeM$HHcEHH9vJHc]HI$HlIDH@0HcHc]HcEH)qJH)qJHH-HH9vSJLeM$HHcUHH9v/JLcuLI$HKDHx0蛡HEH,Hc]H)q1JHH-HH9vILeM$HHcUHH9vILcuLI$HlKDLeM$HHcEHH9vmIHc]HI$H)IDHx0u訧LeM$HHcEHH9v$IHc]HI$HID@|EHcEHc]Hq3IHH-HH9vH]܋UuH}DE}uE;EtHEtHEHcHc]HqHHcEH)qHHEH,H)qHHH-HH9v@HLeM$HHcEHH9vHLcuLI$HKDXlHEAuKLeM$HHcEHH9vGHc]HI$HITHE(BhHEHcHc]HqGHcEH)qGHEH.H)qGHH-HH9vGGLeM$HHcUHH9v#GLcuLI$HKDXlCLeM$HHcEHH9vFHc]HI$HIDUPl}uLeM$HHcUHH9vFHc]HI$HOIDHcPPH/HHqFHc]HqFHH-HH9v6F]D;}~HEu)}} H}uHEHcHq/FHH-HH9vEHEHUH`HHcHUuRLeLmMtlEI]HLLeLmMtCEI]HLx}} H}HHEHcHqbEHH-HH9vEHEHEHtHEH8L@LHLPLXH]UHHd$H]LeLmLuL}H}HuHUMHXXFHEHHHtH[HHqDHH-HH9v8D]HEt&}}LeM$HHcEHH9vCHc]HI$HIDLcLmMHHcEHH9vCHc]HIHnIHc@PLqCHUH.HqCHH-HH9vYCHEEHEH*HEH.HqoCHH-HH9vCHEHEHE}})HEAtLeM$HHcUHH9vBHc]HI$HnIDLcLmMHHcEHH9voBHc]HIH,IHc@PLqBHUH,HqtBHH-HH9vBHEKHEHHHHHHHcHEH(HqBHELHHHHI$Lc`PIqALmMHHcUHH9v{AHc]HIH8IHcI)qAHEH,Lq}AHH-HH9v AHELeM$HHcUHH9v@Hc]HI$HIDHcHEH(H)qAHH-HH9v@]D}A}EfE܃ELeM$HHcUHH9v[@Hc]HI$HIDHcHcEH)qm@HH-HH9v@AH]LHHcEHH9v?LcmLHHKDD;}~9EHEH(HEH,Hq?HH-HH9v?HEH]LeLmLuL}H]UHHd$H]LeH}uH0AEEHEHaHcHqN?HH-HH9v>}EEEHEHuDIL9t2LceIq>LH-HH9v>De0LceIq>LH-HH9vU>DeE;E ;]~[HcEHc]Hqi>HH-HH9v >]EH]LeH]UHHd$H]LeLmLuH}@uUH8?HEƀ@}u}t7LuALmMth=I]H DLuHE耸t4LuALmMt"=I]HDL2LuALmMtHEHH}#H}HUAH}gH]UHHd$H]LeLmH}H =HEH?@LmLeMt;I$HLHUf2H}"H}H]LeLmH]UHHd$H]LeLmLuH}H0g=HELHELMtE;I]HLtHELHk6sHELMt:M.LHLAHUDHEH]HcHq;HH-HH9v:}HcUHьHHq HH-HH9v]H]LHHcEHH9vLcmLHHBKHc@|Hc]HqHEHcH)qHьHH)qrHHHH9v]HEtH]LHHcEHH9vLcmLHH虡KHc@PLcmIqIqLH-HH9vHEHcLceIqIqLHHH9vIHc]HqzHHHH9vދ}DDHHhHpHhHpHH]LHHcUHH9vLcmLHH}KHc@PLcmIqIqLH-HH9voHEHcLceIqIqLH-HH9v.Hc]Hq_HH-HH9vߋuDDGHhHpHhHpHHEAtHEuPHEHcHcUHqHEHcHqHH-HH9ve]:HEHcHc]H)qHHHH9v)]HEHu'H]LHHcUHH9vLcmLHH譞KxX}HEAuDHEt5HcxHc]H)qHH-HH9v~]HEtoHPHD$D$H]LHHcEHH9v)LcmLHHK@X$H]LHHcEHH9vLcmLHH覝KHcPPHc|H)qHH?HHHc]HqHH-HH9vދ}EH@HUHHHUHHL}]LPLPMtM,$L賾LLHLL@A`j%HXHD$D$H]LHHcEHH9vLcmLHHwK@X$H]LHHcUHH9vzLcmLHH7KHcPPHcxH)qHH?HHHc]HqsHH-HH9vߋuCH8HUHH HELL}]HXHLXMtM,$LDHLLL L8A`HEAtHEuLHEHcHcxHqHc]HqHH-HH9v+]:HEHcHc]H)qMHHHH9v]HEuH]LHHcEHH9vLcmLHHtKHcPPHEHcDH)qHH?HHHc]HqHH-HH9vO]HEtHEAuoH]LHHcUHH9vLcmLHHřKHcHc]H)qHH-HH9v]HEHL AHEHH HtfL#L DLA$PH]LHHcEHH9vJLcmLHHKHcLceIq^LHHH9vHEHcDHc]Hq'HHHH9vًu}D@HhHpHhHEHpHEHEHL AHEHH Ht:L#L߹DLA$PH]LHHcUHH9vLcmLHHۗKHcHkq5Hc]Hq'HHHH9vAH]LHHcUHH9vLcmLHH`KHcHc]HqHH-HH9vZLuMHHcEHH9v7LcmLIHKHcLceIqKLH-HH9vD}D>HhHpHhHEHpHEHEHL(AHEHH(HtdL#L DLA$@H]LHHcEHH9vHLcmLHHKHPpHHELDu]HELMtM,$L職DLHAHEAtHEuU܋uH}.EGHEHcHcEH)qHH-HH9vsދUH}EHEtEEH]LHHcUHH9v'LcmLHHKHc@|Hc]Hq>HH-HH9v]}u"E;EtHEtHEtHEAtuH]LHHcUHH9vrLcmLHH/KHc@PHc]HqHH-HH9v,H"@Hc]HŒHH)qGHH-HH9vH}tE;E|HEAtHEu:Hc]H_ŒHH)qHHHH9vs]HEHH}HŒ4qHEt#H]LHHcEHH9vLcmLHH͒KHc@PHc]Hq'HqHH-HH9vAHc]HqHHHH9vAHc]HqHHHH9v_HcEIIqLH-HH9v0DHEHDEuH]LHHcUHH9vLcmLHH誑KHc@PHc]HqHqHHHH9vAHc]HqHH-HH9vlAHc]HqHH-HH9v=HcEIIqkLHHH9v DHEHEDRHEHHEH4]oHEtH]LHHcUHH9vLcmLHHUKHc@PLceIqIqLHHH9vFHc]HqwHH-HH9vHEHMuE_H]LHHcUHH9vLcmLHH蔏KHc@PLceIqIqLH-HH9vHc]HqHH-HH9vZHEHDEUD螀`;E~HLLLLH]UHHd$H]H}uHHEH@txHEH@HHHEPH彌4-mHEH@HcHEH@H,H)qHH-HH9vWHEH@(HEH@HDEUHc]Hq\HH-HH9v]HEH@HHHExH4YlHEH@HcHEH@H,H)qHH-HH9vHEH@(HEH@HDEU~sHEH@HHHEPHm4kHEH@HcHEH@H.H)qAHEH@HMUu~zHc]HEH)qKHH-HH9vHEH@HDEMU.zLcmHEI)qLH-HH9vLceHEI)qLH-HH9vnHc]HqHHHH9vAAHEH@HUDDyHcEH]HqIHH-HH9vAHEH@HMUu,yHc]HqHHHH9vHEH@HDEUuxHc]HEH)qHHHH9vNLceHEI)q{LH-HH9vDHEH@HMuA^xHc]HEH)q+HHHH9vLceIqLH-HH9vEHEH@HMuwHEH@HHdHEH@tHcEH]HqyHH-HH9vHEH@HDEUu\wHcELmIq)LH-HH9vHcELeIqLHHH9vHc]HqHHHH9vnAHEH@HUDDvHc]HEH)q{HH-HH9vHEH@HDEMU^vHc]Hq/HH-HH9vAHEH@HMUuvyHcELeIqLH-HH9v}HcEH]HqHH-HH9vMHEH@HMuEuHcEH]Hq[HqPHHHH9vAHEH@HMUu2uHEH@HDEMUuuHc]HEH)qHHHH9vLceIqLHHH9vSEHEH@HMutHcMHcEH)q]HqRHVUUUUUUUHH?HHHH-H=vf]Hc]HqHHHH9v]HEH@HH!aLmIqLH-H=vkfA}fEfEffEHEHkq|LceIqnLH-HH9vHEHkqAHc]Hq3HH-HH9vHEH@HMuEsfD;m~SHEH@HH`Hc]HqHH-HH9v_]LmIqLH-H=v6fA}fEfEffEHEHkqDLceIq6LH-HH9vHEHkq Hc]HqHH-HH9vHEH@HMuEqfD;m~SHcMHcEH)qHqHVUUUUUUUHH?HHHH-H=v$f]Hc]HqQHHHH9v]HEH@HH`^LuIqLH-H=vfA}fEfEffEHEHkqLcmIqLHHH9vHHEHkqxLceIqjLH-HH9v Hc]Hq>HHHH9vAHEH@HUDD pfD;u~$HEH@HH$]Hc]HqHHHH9vg]LuIqLH-H=v>fA}fEfEffEHEHkqLLcmIq>LH-HH9vHEHkqLceIqLHHH9vHc]HqHHHH9vxAHEH@HUDDnfD;u~$Hc]HqxHHHH9v]Hc]HqHHH-HH9v]HEH@LLmL}HEH@HHtL#L;LLLA$pHEH@LAHEH@HHtML#LDLA$HEH$HEH@HOFHEHEHPHUDxHEHEH]LuLeMtM,$LLLEIHUDHuAPHEH@LAHEH@HHtL#L+DLA$Hc]HqHHHH9v[]Hc]HqHH-HH9v,]THEH$HEH@H$EHEHUHBHEBHELuLmH]LeMtM<$LUHMMHUEHuAPHpLxLmLuL}H]UHHd$H]LeLmH}H8;HEH@HxE} tE} iÉ=v]]=v]]=v]]=v]MHVUUUUUUUHH?HHuHVUUUUUUUHH?HHHqMHVUUUUUUUHH?HHHqHH-HH9v@HEXHEHxܴhÉ=v]]=v]]=v]]=v]MHVUUUUUUUHH?HHuHVUUUUUUUHH?HHHqMHVUUUUUUUHH?HHqHEHcXHqHH?HHHH-HH9vHEXH]C=vDcH]C=v[LmAE=vA}܉DsnEEH]LeLmH]UHHd$H]LeLmH}HuH0WHEH}HHEHHu3eE}HEHufHHH]HEǀ4HEǀ8HEHuQH}yLeLmMtI]HXL@H]LeLmH]UHHd$H]LeLmH}uUH8UHE耸tHE苀E HE苀ELmMHHc]HqpHHH9vHIHuI܀xDxLmMHHc]Hq HHH9vHIHuIHcP|HcEHqH]HH)qHcUH9}EEEH]LeLmH]UHHd$H]LeLmH}HuH(HEHH}H}>wLmLeMtI$H莖L@H]LeLmH]UHH$HLLLLH}HuHUH vH}t)LmLeMtYLHLShHEH}tHUHu脤H謂HcHUHEHUH}HѲHEƀ'HUHE苀XXHEǀHEǀ HEǀHEǀHEǀHEǀHEǀHEǀHEǀHEǀHEǀHEǀHEǀHEƀHEƀH}@3H]HtL+L茔H]HtL#LqLA$HxHxIHEHAGHAHALeMtjM4$LDꋅAHAHEH}uH}uH}HEH蚥HEHpH`H EHmHcHxu%H}uHuH}HEHP`?ʦ5HxHtHEHLLLLH]UHHd$H}HGHEHkH}H]UHHd$H}HHEHH}RH]UHHd$H}HuHUHHE胸tHEHUHE耸HEHU耺HEH]UHHd$H]LeLmLuL}H}uH8@HEHu?HELx`DuH]HEL``Mt ML译HDLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uHPHE;Eu&HUEHE@PtHEEHEEHEHHELMt1MeLՐHA$ HUHEHEHUDuDmH]LeMtM<$L膐HDEE؉ƋEAH}CuGHEDHELh`LuHEHX`HtIL'LLDA$H]LeLmLuL}H]UHHd$H}uUMH HE@PtHMHUHuH}:HE;Et$HE;EtHE;Et0HEUHEU艐HEUH}H]UHHd$H]LeLmLuL}H}uH8`HEHHEHHuH}}HE;EuHUEH}uFHEDHELp`H]HEL``MtML臎HLDAHE@Pt)LeLmMtI]HHL H]LeLmLuL}H]UHHd$H}@uHSHE:EuHEUH}H]UHHd$H}uHHE;Eu HEHEUH}H]UHHd$H}uHHE;Eu HEHEMH}3H]UHHd$H}uHDHE;EuHEUH}}H]UHHd$H]LeLmLuL}H}uH8HE;EuHUEH}HELHELMtI]H8L LeLmMtkI]HLH}uFHEDHELp`H]HEL``MtMLHLDAH]LeLmLuL}H]UHHd$H}uHHE;EuHEUH}H]UHHd$H}uHtHE;EuHEUH}H]UHHd$H}uH$HE;EuHEUH}]H]UHHd$H}HH]UHHd$H}HHEHۘ4H]UHHd$H]LeLmLuH}H(wHEHuFHE@Pt7HELp`LmHEL``Mt6LHۉLLH]LeLmLuH]UHHd$H}HHEHuHEHHuHEH]UHHd$H]LeLmLuH}HuH0HELh`LeHEHX`HtcILLLAHUHE@PuRLmLeMtI$H迈LLmLeMtI$H薈L H]LeLmLuH]UHHd$H}HuHUHMH HEHU; HUHEHEHU;| HUHEHEHU; HUHEH]UHHd$H}H'EdEHEH]UHHd$H}uHHE;EuHEUH}-H]UHHd$H}uHHE;EuHEUH}H]UHHd$H}uHTHE;EuHEUH}H]UHHd$H}@uHHE:EuHEUH}EBE;EEa}u H}pHhHtHtɓHDžhƋEHXL`H]UHHd$H]H}uHUHMDEH@T}qHc]HkqHHH9vCHHEHc]HqhHH-HH9v ھHH}HEHH@hHUHcEHqHH@H}uHEH@<Hc]HqHH-HH9v胿}EfẼEHEHcUH HUHcEHq舿HHAhHEHcUHqmH HUHcEHHAH}uHEHcUHЋỦP<;]~H]H]UHHd$H]H}uUH(E;E}wHcEHq߾HcUH9tHEH@HcUHHEHHHcEH4HEHxHEPE}`HEHHHcuHEHPHcEHHHEHpHcMHEH@HcUHHHEHHHcuHEHPHcEHHHcEHc]Hq HHH-HH9v]UuH}Hc]Hq߽HH-HH9v肽ދUH}Hc]Hq襽HH-HH9vHڋMuH}H]H]UHHd$H]H}uUMH@ھE;E} E;EqHc]HqHH-HH9v赼]܋EE؋EE HEH@HcUHHEH@HcMH4HEHxHEPEЃ}QHEHpHcMHEH@HcUHHHc]HqwHH-HH9v]OHEHHHcuHEHPHcEHHHc]Hq&HH-HH9vɻ]Hc]HqHH-HH9v蚻]ԋE;E}E;E}HEHHHcuHEHPHcEHHHc]Hq聻HH-HH9v$]Hc]HqRHH-HH9v]ԋE;EvHc]HqHH-HH9v踺}9}?]̋ẼEẼEHEHHHcuHEHPHcEHH;}~H]H]UHHd$H}HuHUHHEHH}kH]UHH$HLLH}HuHUHMLEH輻H}t)LmLeMt蟹LHDyLShHEH}t*HUHxLJHeHcHpvHEH}uHUHEHBHEHBHEHMHHPHHHuH}HEH}uH}uH}HEHbHpHpHXH H2eHcHu%H}uHuH}HEHP`菋HHtٌ贌HEHLLH]UHH$HLLH}HuHUHMLEHH}t)LmLeMtϷLHtwLShHEH}t9HUHxHdHcHpHEH}uHUHEHBHEHBHUHEH HJHBHEHHH}HEH}uH}uH}HEH胈HpHpHXH+HScHcHu%H}uHuH}HEHP`%谉HHtՊHEHLLH]UHHd$H]LeLmH}HuH('H})LeLmMt I]HuLH}LH}H,pH}uH}uH}HEHPpH]LeLmH]UHHd$H}H臷HEHx uHEHx HEHx P H]UHH$pH}HuH-HDžxHUHupHaHcHURH}PH}t;HEHx`u4HEHxHEHP`HxHEPHxHEHxHEHxHHEHEH}uHEHx t"HHH=쓚HUHB H}+HHEL@HHHH=)^HEH}g+Ht.HEHxHUHxHEPHxHEHx2HEHx HuH}8%HEH})2HxHEHt訆H]UHH$H}HuUHZHEHDžHUHx蒁H_HcHpnHEHx t\HEHEBHEHxHUHuHEPHEHx HRHuHuH5ҷMHEH}tHrH(HDž H}Ht7HH8HDž0 HrHHHDž@ HEHXHDžP Džh"HDž`H HTr H}uH}@}u H}@H}uH}7)HHEHx(UDH};#HEH}5HH}HpHt蟄H]UHHd$H}HuUHPHEH|HƊUH}H]UHHd$H}HuHUH0HEH3Hu\H}#HuGEH}HHUHHEH}HLEHMHUH}UHEHHEHeEEH]UHH$HLLH}HuHUH$H}t)LmLeMtLHoLShHEH}tXHUHu2~HZ\HcHUHEH}HhHE@4HE@8HE@XHE@xHE@|HEǀHUHEHBHEǀHE@Ɂ4H HtHEHLLH]UHHd$H]LeLmLuH}HuH@3H})LeLmMtI]HmLHEHEHxuuHEH@HxXudHEH@LpXLeHEH@LhXMt読I]HNmLL HEH@H@XHEH@HxXNHEHxuXHEH@HxXuGHEH@HxXuHEH}u)HuH}HEH}uHuH}iH}@H}T3HEHxu(HEuHEH@Hx HuH}HHEHx@uHEHx@EHEH@@H}H)H}uH}uH}HEHPpH]LeLmLuH]UHHd$H]H}H#HEHWHuH}GHH蜇HEHEHEH]H]UHHd$H]H}uH(HEHCEE;E }| HEaHEHEHc]HqޫHH-HH9v聫;]}&EE䐋EEHEH@`HE;]~HEH]H]UHHd$H}HHEHpH=E]uHEH@HEHEHEH]UHHd$H}H觬HEHxuHEH@H@XHEHEHEH]UHHd$H]H}HSHEHHuH}wHH<HEEEH]H]UHHd$H}HHEEEH]UHHd$H}H跫HEEEH]UHHd$H}uHtHE#E;EEEH]UHHd$H}HuH3H}u?HEHx`tE*HEH@`H;EtEHEHx`HuEEEH]UHHd$H]LeH}HuH(諪HEHH}wHtHEHHuH}HtH}H}hrrBHEu0HEHx`uHEHx`{KH}@HHUH}lAH}^XH}HHJpIHuL HEH}u HuH}qH]LeH]UHHd$H]H}HuHoHEH@(H;EtHEHUHP(H}HuH}rhtttfH}RHuQH}#tBHEu0HEHx`uHEHx`;JH}HHH}'WH]H]UHHd$H}uHtHUEEEH]UHHd$H]H}uH0}|EHE@0;EtUHEUP0H}>Hu$H}.HH}"H}J?H}H}UH]UHHd$H}uH4HE@8;Et!HEUP8H}>H}UH]UHHd$H]LeLmLuL}H}uH@HEH"EE;Et^HEHx`t3HEHxtH]}tIHEHx(oILuLeMtLM,$LcLLAE;E|tHc]HqpHH-HH9vHEHx4ILuLeMtȣM,$LlcLLAGHEHxuILuLeMtM,$L#cLLA}tIHEHx`IL}LeMt.M,$LbLLAE;E|tHc]HqRHH-HH9vHEHx`!ILuLeMt誢M,$LNbLLAIHEHx`u!IH]ALeMt`M,$LbDHLAH]LeLmLuL}H]UHHd$H}HHrH(H]UHHd$H}uHԣHE@x;Et!HEUPxH}1;H} #RH]UHHd$H]H}@uHoHEHS:Et}uHEHEH}@ H}@"H}PHu$H}@HH}4?H}\:H}NQH]H]UHHd$H}@uH裢HEH:EtU}uHEHEH}@ H}@"H}9H}PH]UHHd$H}uHHE@X;Et!HEUPXH}q9H}cPH]UHHd$H}uH贡HE@|;Et!HEUP|H}9H} PH]UHHd$H}@uH(S}u E E HEH@`HE0DHE#E;EtEHEH@`HEH}uEEH]UHHd$H]H}H àHEHHEH}tHEH@0HEHEH@pHEH@PH}tHEHUHP0HUHEHB(HEHx8HcHq螞H}HcH9t6HEH@8HxPt%HEH@8HUHPPHUHEH@8HBpBHEHx8HcH}HcHq,H9tBHEH@8Hxpt1HEH@8HUHPpHUHEH@8HBPHEHUHP0H}'HEH}HuH}*H}9|H} H}9|HEHUHPPHEHUHPpEHUHEH@pHBpHEHUHPPHEHxpuHEH@pHUHPPHEHUHPpHEHxpt HEHUHP0HEHUHP8H]H]UHHd$H}uHtHEH";EEEH]UHHd$H]LeLmLuL}H}@uH@EHEHOHuH}, u}u@H}"ILuLMMtɛM,$Lm[HLAP E>H}ILuLMMt艛M,$L-[HLA@ EEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}@uH8HEHC u.H}:Eu}u HE FHEHEH@x@t+DH}HHHE苀#E;Et%@uH}|HEHEH;EtHEHEH]UHHd$H}H跇HEHHEH}uH}HEH}uHEHEHEH]UHHd$H}HWHEHHEH}t H}HEHEH]UHHd$H}HHEHEDHEH@`HEH}uHEHxHtH}u HEH@HHEHEH]UHHd$H}H藆HEH;HEH}u.HEHEfDHEHEH}HEH}t HEH@`HEHEH]UHHd$H]H}H EHEHE@Hc]HqQHH-HH9v]LHEH@hHEHEHcHc]HqHH-HH9v覃]HEHxhuHEH@`HEH}t^EH]H]UHHd$H}H7HEEEH]UHHd$H}HHEx0~-H}"HuH}EE HE@0EEH]UHHd$H]H}H 胄H}t EuHEx<}HE@HH>>HHEHEEEHEH}HcHqVHHHEHEHuHHxH葹uH}L}ILMMt~I$IL=>HLAHLLLLH]UHHd$H]H}@uH/HEH:Et}urH}CHuH}3tHEHxuHEHxHuAHEH}Hu H}DHEHxuHEHxHu@HEH}FHu H}6H}HuH}}HHWH}H]H]UHHd$H}HuHH}tHEH@`H;Eu E H}8EEH]UHHd$H]H}HuH ~HEH3HcHq|HH-HH9v|]YHEH@@HcUHHHu Ht7Hc]Hq|HH-HH9v+|]}}EH]H]UHHd$H}HuH }HEH'HEHEH@H@XuLH}HEH}u)HEHHEHuH}>ft:H}HEH}uHEHHuHuHEH]UHHd$H}HuH|HEHH@HEHEffDHEH8u(HEH@H@XH HEHH},HEHHEHH} HEH@`HEH}uH]UHHd$H}HG|HE@$EEH]UHHd$H]LeLmLuH}@uH8|HEH7HEH}t1DuH]LeMtyM,$Lt9HDA H]LeLmLuH]UHH$pHpLxH}Hs{HEtHEHEHxu:HEH@HXLc#IqyLH-HH9v*yD#H}@HEHEHxuHEHxgHEHx`t)HEHxHuXVHEHxHMVHEH@H@XHEH}u[HUHE6HEH8H;EtHEHǀ8HEH(H;EtHEHǀ(H}HEHxhuHEHPhHEH@HHBHHEHxHuHEHPHHEH@hHBhHEH@hHEH@HHEHx`u{HEH@`HEVHEHcHEHcH)qwHH-HH9vwHE艘HEH@`HEH}uHE@H}HuH}HH蚃HpHt?H`LhH]UHH$`H}HuUHjnH}tErs H=hrɦ}t-H}Ht EEH}HEH}tHuH}tzH},HHUHHEH} HHUHHEH}HHHHH}HHHHHUHh9HHcH`oH}uErr HEH@`HEEr#t tt EEEHEH;EuUHuH}?ZHHHDžHEHHDžHHH=Dr H},HEHH9 HHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$IIHHH5DrHn }uHEHcX$HqeGHH-HH9vG}uDž||||H}IH蓄HuHCrHHL;|~HKHHtjHLH]UHH$HLLH}HuHUHGH}t)LmLeMtELH|LShHEH}tHUHuH*HcHUujHEH}HHH=OHUHB HUHEHBXHEH}uH}uH}HEHHEHpHhH([HHcH u%H}uHuH}HEHP`UKH Ht*HEHLLH]UHHd$H]LeLmH}HuH(WFH})LeLmMt:DI]HLH}HEHx H}H*H}uH}uH}HEHPpH]LeLmH]UHHd$H}HEHE@EEH]UHHd$H}HwEHEH@XHEHEH]UHHd$H}HGEHEHxXuHEHxXHEHEHEH]UHHd$H]LeLmH}HuH(DHEH;HExpt>HEHxXu1HEL`XHELhXMtBI]HJL@H]LeLmH]UHHd$H]H}HcDHEHH}0H}HEH}u'fDH}H}HEH}uHEHx TwHEHxXuHEHxXj HHH}H]H]UHHd$H}@uHCHEHxXu HEHxX-HUHuHHcHUuWHEH@0HE$HEHEH}HEH}@H}u}uHEHxXHZHEHxXu HEHxXk-HEHtH]UHHd$H}HuHpBHEHxXu HEHxX,HUHuHHcHUuH}@H}@HEHxXu HEHxX,HEHtOH]UHHd$H}HBHEHx0uHEHx0蝶HuEEEH]UHHd$H}HuHUH AHEHuH}HHHEHEH]UHHd$H}HuHUHMH([AHEHUHuH}AHmHEHEH]UHHd$H}HuHUH AHEHuH}HHHEHEH]UHHd$H}HuHUHMH(@HEHUHuH}AHHEHEH]UHHd$H}HuHUH o@HEHuH}HHHEHEH]UHHd$H}HuHUHMH0@H}uHEH@`HEHEHMHUHuH}AHEHEH]UHHd$H}HuHUHMLEDMH@?H}tE؃rs H=:rx}t-H}Ht EEH}ѮHEH}uE؃rr HEH@`HEE؃r#t tt EEEHEHUHPxDEHMHUHuH}HEHEH]UHHd$H}HuUH>H}u,}uHEHx HuqHEHx HuuH]UHHd$H}uHD>}|$HEH@ HcPHqHEH@Xu H}@–HuH}HEH}t E9~,gH5Hx4H}jH}jHEHtHEHPLXL`LhLpH]UHHd$H}HuHS.HEHHEH}ǦHEH}uHEH@(H;EuHEH]UHHd$H]H}uH(-}|HE@;E~HHEHxHulHEHc@PHcUH)q+HHHIH~DHEHXHE;Ct HHE$E;C|H;警HE H;ߥHEHc]H}yHcHq+H9H}HEH}KHcHq[+HH-HH9v*]=H}HEHc]Hq+HH-HH9v*]E;E|H}DHEE@HEHcHc]Hq*HH-HH9vZ*]E;EtH5E;E~H}蒛HEEEH}uWE;EMH}FHEH}tHHc]Hq"*HH-HH9v)]H}uE;EH}tH'HEHUHPHHEUPPHEH]H]UHHd$H}H7+HH'rHcH]UHHd$H}H+Hp'rHxcH]UHHd$H}H*H'rHHcH]UHH$pH}H*HEHUHuHHcHUuUHE@xHDžpHEH@@EHEHpHH5Y'rH}(?H}bH}fHEHt#H]UHHd$H}H)HEH@ @EEH]UHHd$H]LeLmLuL}H}uHUH@)uH}L}ILMMtg'I$ILHLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uHUH@(uH}@L}ILMMt&I$ILxHLAH]LeLmLuL}H]UHHd$H]H}H(HEHcXpHq&HH-HH9vs&HEXpH]H]UHHd$H]LeLmH}H (HEHcXpHqh&HH-HH9v &HEXpHExptMHEH@XHEHxXoHEL`XHELhXMt%I]HDL@H]LeLmH]UHHd$H]LeH}H O'HEHHEHcXdHq%HH-HH9v3%}3EDEEuH};ILp;]~H}H]LeH]UHHd$H}H&HEHH=UËHRHEHEH]UHHd$H]H}Hc&HEHxhuLHE@`HUB`HEHcX`Hkq$HHH9v<$HHEHxh<9EHE@` HEHcX`HkqL$HHH9v#HHEHxh7H]H]UHHd$H}uH%HEHPhHcEHHEHEH]UHHd$H]H}HS%HEHxhuHE@`EHE@`HUB`HEHU@`;Bd|HUHE@dB`HEx` |$HExd HE@` HE@`HE@`;EtTHEHcX`Hkq#HHH9v"HHEHxh7HEx` H=!r\H]H]UHHd$H}HuHC$H}uHEH@H;Et HE@HEHUHu2HZHcHUuOHuH}LuILmMtI]H9LLHuH}`H}HEHtt HuH}uH`LhLpLxH]UHHd$H]LeLmLuL}H}HuHhHEH}HoH$HUHYHUHEHUHHUILuHrHLeMtI$IL2HLLHMLELMAH]LeLmLuL}H]UHHd$H]LeH}H(HEH@H@HEH}tHEHx9EH}$HEHx9u EEHEHxHcHqHH-HH9v}SEfEEHEHxu_IċuH}PHLeE}u;]~붊EH]LeH]UHH$HLH}HuHHHEHSHuH}}tHH}qHuH}_Hc]HqHH-HH9v}IEDEEH}HHIHuL誻;]~EEHc]HqYHH-HH9v}JEfDEEH}HHIHHuL蒾;]~HLH]UHHd$H}HuHSHEH}HH]UHHd$H}HuUH(EHEH}Ht}u fUfE fXfEHuH}BHEHpdH},H}cHE#DUHuH}wH}HEH}uH]UHHd$H]LeLmLuH}HuHH3LeLmMtI]HLHLuLmMtMeLLA$H9|HuH}EH}lHEafDHuH}^@uH}A|Hc]HqHH-HH9vu]H}ٌHEE;E| H}uH]LeLmLuH]UHHd$H]H}HuH0HEH#HcHH-HH9v]HuH},H}cHE0DH}{EHuH}H}HEH}uH]H]UHHd$H}H7HEH@HH]UHHd$H]H}HHExp| H=r(m EH}HEPfH}HEHcHc]HqHH-HH9v]HEH@HHEH}uHE@;Eu H=,rl HEx`~HEHxhu Hzl HEx`HEHxht HUl HEHU@`;Bd| H7l HExd| Hl HEHcXdHq,HH-HH9v}EfDEEHEHPhHcEHHE}tHEHxhu Hk }3HEH@hHcUHqHMHH;Ahu H_k HEHcPdHqlHcEH9HEHPhHcEHqGHMHH;AHuEEHEHE@dEHEHEHEHEHEH@HHEHEHEHPhHcEHqHHEHEHuHH=OrbHj HEHcPdHqHcEH9tHEHxHu HOj HE@<;Eu H5j ;]~SHEHxHu=HEHPHHUH@PHEH}quH}H;Eu Hi H]H]UHH$0H8L@H}HuUH\HDžHHUHuHǹHcHUHEHXHDžP LeMt I$HHHPHPHhHDž`HEHxHDžpHPHH=S rH}uPHHH0 }ufH}-HENHHDJHuHL rHHKHHH}FH}}HEH}uHHIHEHtH8L@H]UHH$HLLH}HuHUH H}t)LmLeMtw LHLShHEH}tHUHuHʷHcHUuOHEH}H藙HUHEHBPHEH}uH}uH}HEHkHEHpHhH(H>HcH u%H}uHuH}HEHP`H HtHEHLLH]UHHd$H]H}HuUH0 HEHHiHHEHxPuHEH}輡EHc]Hq: HH-HH9v }:EEEHEH0H}H rI;]~HEHHEH0H}HH]H]UHHd$H]H}HuHUH(+ HEAHEHEHcHqa HH-HH9v HEHE t ttHEHEHEH]H]UHHd$H}uH HEHxPuH@(HEHEH]UHHd$H]H}uHUH L HEHxPu;]}iHEHxPHUHuHhBH}AHpHtEH0L8L@H]UHHd$H]H}uHUH HEHXPuHHHUHH]H]UHH$HLLLLH}HuHX:HEHDžHDžHUHpgH華HcHh3HH=OZHEHEHxP)HPHH9HcHH]LeMtM,$L'HALuLmH]HtUL#LLLA$HELeLmMt I]HLHcHq[HH-HH9vH}EfDEЃEDuLmHLeMtM<$L4HLDAHHuH5qHUH}HH}ȺCJH}t!HEHxPHUHHE#H};Et"HEHp`HEHxPHUHEH}讘HcHcUHq,H9tHEHxPHUHuHEH}n;EJHEH@`HE HEH@`HEH}C;EHEHp`HEHxPHU#HEWEԉHDžHEHHDž HHH5VrHH&:;E~.qHEHxPH}[HHtEH=H=H}=HhHtHLLLLH]UHH$0H8L@LHLPLXH}HuH HEHUHuPHxHcHxLeLmMtI]HfLaHEHxPHE9H}HHE*YEH-HH-HH9vH} JH}Ǣu=HE*YEH-HH-HH9vHEH};u=HE*YEH-HH-HH9vHEH}zHEHt\HhH]UHHd$H}HuHHEHuHEH HUHuHEH]UHHd$H}HHE@Hs\H]UHHd$H]LeLmLuL}H}HuH`oHEu H}tLuLeLmMt7I]H۬LLH tH}CtHEHu/LuALmMtI]H肬DL HEHUHHuH}ʝHEHEHtL}IH^HH^IMt^MLHLLAHUHHEHHUHH HPHXHEHHMHH( HHH}Q[HcHEHc@H)q'HH-HH9vH}衶AMcHEI)qLH-HH9vH}@AMcHEHc@I)qLH-HH9vIH}0EHEE؋E;E}}DD0HEHUHEHEHEHEHEHHuHUHEHUHMeHEHEHHMBHELHELMt^M,$L@LAHELH]HELMtM,$LéHLA`HEHHEHxHELHELMtI$HmL HELHELMtI$H6LH]LeLmLuL}H]UHHd$H}HGHEHH}>H]UHHd$H}HHEH{HEHxp~ H= qE HEHHEHxpt H}2H]UHHd$H}HHHHH} EEH]UHHd$H}HuHUH(?EHEHkH}H}tHEHHUHEHEHHUHuįHEH蔲HE4fDH}_HuHUHuH}WH}.bHEH}uHEH1HUHE苀5H}AEH]UHHd$H}H7HEEEH]UHHd$H]H}HuHUH8HEHu6EH} HcHUH)qH9|HEHc@HEH)qHc]HqHH-HH9vc]HEHpdHEHHxhUE}}pHEHHPhHcEHHE6HEp$HEHx@UE}}uH}GHEHE苀% = uHEH]H]UHHd$H]H}HsHEHgHcHEHkqH)qHH-HH9vF]EH]H]UHHd$H]H}HHEHwHcHEHkq-H)q#HH-HH9v]EH]H]UHHd$H]H}uUH0mEH}OHEH}tHEuLHE苀HcUH9-Hc]H}HcHU苒H)qbH9}EE*H}g;EH}&i;E~EE}uHEHEH]H]UHHd$H]H}uUH0}EH}_HEH}tHEuLHE苀HcUH9-Hc]H})HcHU苒H)qrH9}EE*H}vb;EH}6h;E~EE}uHEHEH]H]UHHd$H]H}؉uUHMLEH`HEHHE}|EH};E~9H}؏HcHqHH-HH9v;]uH}HEH}uH}@_HEHUHEHEHEHEHcEHcUH)q&HH?HHHc]Hq HH-HH9v]HEHUHHEH8c;E|"E;E} HE HEJE;E}6H}-uH}Y2u HE HE HEhHEHHEH}u6HEHUHHEH8b;E| HE HEHEHHEHE8tHEH8uHEH85HuYHEH8 5HH,t:HEH84HH[uHEH84HUHHEBHEHHx`u2HEHHx`[uHEHHUH@`HHEH]H]UHHd$H}HuUHHEH}HuH}H]UHHd$H}uUH(QHEHMUuH}IUHuH}gH]UHHd$H}uUH(E}}HEH;E}}H}U;EuH}HEH}u{MH}^;E M@\H}Yb;EMFH}3a;E M-H}Zb;EM H}c;EMMEH]UHHd$H]LeLmH}uH(HE;Eu6HEULeLmMtI]HZL@H]LeLmH]UHHd$H]LeLmLuH}HuH0cHELH]HELMt=M,$LHLAH]LeLmLuH]UHHd$H]LeLmH}uH(HEH;Eu6HUELeLmMt褿I]HHL@H]LeLmH]UHHd$H}HpWHEHHUHu虍HkHcHUu8HEH։HEH}@'H}{0HEH}uyH}HEHtH]UHHd$H}HpHEH;HUHuHkHcHUu8HEH&HEH}@'H}/HEH}uɏH}HEHtBH]UHHd$H]LeH}HuH(H}u*HEHuH}@TuEE}uHELc@H}%HcH}w:HcHqڽI9}WHELc@H}HcLq谽HEHkq蛽H)q葽H}HcH9|EEH]LeH]UHHd$H]LeH}HuH(۾H}uHE@HSuEE}uH]H}+;@pHELc@H} HcLqʼHEHkq赼H)q諼H}AMcH}#9HcLq膼H9|EEH]LeH]UHHd$H]LeLmLuH}HuUH8нHEHƋUH}lHEf8qt[EtRH}tCH}HLuLmMtxMeL{LHA$0 HEfEuEuHEff=!f-!f- f-f-f-f-tOf-&f-tf-C9f-RpuH}ϖ@H}cHEfJuH}詖@H}ݭHEf$uH}胖@H}7zHEfuH}]@H}yHEfuH}7@H}{HEfuH}@H}zHEfuH}@H}|HEfiuH}ȕ@H},}HEfFuH}襕@H}}HEf#uH}肕@H}&~HEfH]LeLmLuH]UHHd$H]LeLmH}H HEHHE@Pu H}LmLeMtI$HxL H]LeLmH]UHHd$H}H藺HEHuH}lHEHHEHEHHEHEH]UHHd$H}HuH3HFHHQH)H;EuHEH衇H]UHHd$H}H׹HEEEH]UHHd$H}HuH蓹HEHu(H}uH}NH} H}+HUHEHH]UHH$pHpLxLmLuH}HuHHELHELMtM,$Lv@LAHEƀHUHu H5cHcHUu7HELXLeLmMt{I]HvLL HEƀHEHteHpLxLmLuH]UHH$pH]H}HHEtH}mtHEHxpH}EH}EHE؋<;E uH}*HE؋@;E uH}=HE؃HE؋8trtrH}Hw[EEEEH}HcHU؋HkqJH)q@HEH}| HH]HHH9vϴ]HcUHcEHqHEH}| HH]HH-HH9v胴]HE؋<E}EEHEH@HEHEHEHEH;EtHHuH}\HÄtHE؋8ttt*E;Es HEǀ@H}زTHEH@HuHHH}زHHuHHH} HDz辡HEǀ@H}ز~HE؋8rrrEEEEH}}HcHUHcH)q@HEH}| HH]HHH9vϲ]HcUHcEHqHEH}| HH]HH-HH9v胲]EHE؋@E}|EEHEH\HEHEHEHEH;EtHHuH}ZHÄtHE؋8rr[E;EsQEHHuHHH}KHDzHEǀ\H}زTHEH\HuHHH}زHHuHHH}׌HDz舟HEǀ\H}زHH]H]UHH$0H0L8L@LHLPH}uUH訲HE@tHEHtvL}IHgzIH]zHHtVILoLLLA$HUHHEHHMHHHUuH}lHEH}tHEHH}aHcH},AMcIqLHHH9v赯H}QH}AH}PDDfHEHUHEHEHEHEHEHc@HHH9u茯HH-HH9v/H}_u}HEHEHxHEHEE;x}%E;E|E;|}E;E|H]LeMt苮M,$L/nHAHxHUHxHEHEHEHEHhHEHpH}HMLEHhHpuHUHMH}Hu藲uHEH}H}@܏HHqHEH}tHhHpHhHEHpHEHc]HcEH)qHHHH9v萭H`HELHELIHEHHt3HILlLLL`A$H HhHpHhHEHpHEH@L0AHq@HHt¬L#LglDLA$HtnHEHtHEHLxHELxHEHHxHtJL#LkLLA$H:{L H0{HHtL+LkLAHEHHxHcUHq0HEDIqLH-HH9v辫Hc]HqHH-HH9v蒫D(ILmLeMtQI$HjLLHEH}'vAHcUHquHE苘HqaHHHH9vDILmLeMtªI$HfjLLHEHcEHc]HqH}HhHpHcpH9H]LeMtXM,$LiHAHhHpDlLmH]HtL#LiLA$HEHU}DILmLeMt٩I$H}iLLHEЋE;E}2Hc]HcEH)qHH-HH9v褩]؋U܋uH}HEHHXHELL}LuHEHHt6HILhLLLHXA$8 H0L8L@LHLPH]UHHd$H}HǪHEHu!HEH(uHEH(HEHEHXHEHEH]UHHd$H}HWHEHWEEH]UHHd$H]H}uH }}9Hc]HEH%H9|HEHuukHEHEHEH]H]UHHd$H]LeLmLuH}HuH8胩HEHXH;EtLuLeLmMtSI]HfLL8 tLuLeMtM,$Lf@LA HEHXHEHEHUHXH}u H}@^H}uH}@IH} >H}GH]LeLmLuH]UHHd$H}HwHEEEH]UHHd$H}H7HEEEH]UHHd$H}HHEEEH]UHHd$H}H跧HE EEH]UHHd$H}HwHE@EEH]UHHd$H]LeLmH}uH((HE;Eu6HEULeLmMtI]HdL@H]LeLmH]UHHd$H]LeLmH}uH(訦HEuHE@Ptc}~EHE;EtAHEUHELmLeMt7I$HcL@H]LeLmH]UHHd$H}HHEEEH]UHHd$H}H跥HEEEH]UHHd$H}H臥HEH uH}HEHHEHEHEH]UHHd$H}H'HEH諦uHEH8HEHEHEH]UHHd$H}HפHEEEH]UHHd$H}H藤HE EEH]UHHd$H}HWHE@EEH]UHHd$H}HHEEEH]UHHd$H}HףHEEEH]UHHd$H}H藣HE}HEE8HEtHEH}2EH} T1EEH]UHHd$H}HHE|H} 1E HEEEH]UHHd$H}HǢHEEEH]UHHd$H}H臢HEEEH]UHHd$H}HuHCHEHǣuH}u H}@ H]UHHd$H]LeLmH}uH(HE;Et6HUELmLeMt负I$HX_L@H]LeLmH]UHHd$H]LeLmH}uH(XHE;Et6HUELmLeMt$I$H^L@H]LeLmH]UHHd$H}HנHEEEH]UHHd$H}H藠HEHu(HEH'HEHHEHEHEH]UHHd$H}H'HH!HH!HEHEH]UHHd$H]LeLmH}H(۟HEHu1HEHxHE HEHHE-LeLmMt膝I]H*]Lx HEHEH]LeLmH]UHHd$H]LeLmLuL}H}uUH@HEuIHE@Pt:D}DuH]LeMtM,$L\HDDA H}HH]LeLmLuL}H]UHHd$H}HtHEHUHujHHHcHUH}dHEH}MHEH}tH}HpHEHH}ZHuH}HEHuHEHHuHEOmH}HEHtnH]UHHd$H}H臝HE0u,HEH(uHEH(3uEEEH]UHHd$H]LeLmLuH}HuH@HEHH}sPHEHǀ8HEHtZH}BLuLeLmMtÚI]HgZLLHEH]H}S3HUHH}HUH}@{HELHELMtGM,$LY@LAH]LeLmLuH]UHHd$H]LeLmLuH}HuUMH@ݛEUHuH}OHEHǀ8HELHELMt蕙M,$L9Y@LAHE@H}xH]LeLmLuH]UHHd$H]H}uUHMH0)HEUuH}H~E܀}tHc]H'H8rHcHqDHEHcHq.HHHHH?HHHH-HH9v賘]HEHc@HcEH)qטHH-HH9vzH}EH}"UuH}CEH]H]UHHd$H]H}uUHMH0HEUuH}H~E܀}tHcMHk2q&HHHHH?HHHH-HH9v諗]HEHc<Hc]HqϗHH-HH9vrH}EUuH}DEH]H]UHHd$H]LeLmH}ЉuHUHMLEDMHPELEHMHUuH}AjHEȋEt}LeLmMt蓖I]H7VLH}5HUH8H}HLeLmMtFI]HULHEHǀ8HEH]LeLmH]UHHd$H}HuUMDELMH8՗HEIDEMUHuH}YUuH}HEH}uCH}RH;EuHEH8H;EtHEHǀ8H}@H]UHH$HLLL L(H}HHE%u HEHUH`1cHYAHcHXLmH]Ht裔L#LHTLA$uHE HEHEu*LmH]HtCL#LSLA$ HUHH@L}AAH]HtL#LSDDLA$ uH]LeMt“M,$LfSHAHHHPHHHEHPHEHEH0L}LuLeMt`M,$LSLH0LAh tFH}zHET@H}u1LmH]LeMtM4$LRHLA H}@HEH}uH}N]AMcHEI)qLH-HH9v角H}~]HcHEH)qŒHH-HH9vhHEHED*HHHPHHHEHPHEHE0tHEH$NtHEH@HnHEHH@H(%HEHEHEHEHc]HqHHHH9v脑]HuHUH@-EĉEH}HEH}umH}HcH} HcHqmHUHc@H)qXHUHqDHH-HH9v]HEueE;E|[HEH@H(#L}LuL@H@HtiL#LPLLLA$xHE=vS]𾀀H@H HEHqcHHHH9v}E@EEE;EtH@HU H},ZAMcIqHcEI)qݏLH-HH9v耏DuH@UuH@ H}3ZAMcIq肏HcEI)qtLHHH9vDUH@;]~ H@Hr HEDIq LHHH9v讎A}E@EEE;EtH@H H}DYHcHq蔎HcEH)q膎HHHH9v(ދUH@gH}~XAMcIq=HcEI)q/LH-HH9vҍH}XHcHqHcEH)qHHHH9v荍H@D,H}WHcHq裍HcEH)q蕍HH-HH9v8ڋuH@D;m~LuAAH]Ht܌L#LLDDLA$ uLmH]Ht裌L#LHLLA$HHHPHHHEHPHEL}LuHEH8LeMtAM,$LKH8LLAh t*]HEHXHtHt _HDžXHLLL L(H]UHHd$}H蘍} ubEE%EE%EE%EHcUHcEHq譋HcUHq蟋HEEEH]UHH$HLLLLH}HuH8ʌHEHu;H}q=HEHxHE苐 HEHHp蟻HEHxu;H}&=HEHxHE苐HEHxHXTH}{EH}EH}@$HHHPHHHEHPHE}|H}kT;E~ H}uH}"uEEHEHxHEHH iHEHH(HE苰EL}AAH]Ht:L#LHDDLA$ uE}uMH}yuMH}F!uMHEH(EH LuLmLeMt览M<$LKHLL L(Ap t HcUHcEH)qHH?HHHc]Hq襈HHHH9vG]H}u8H}DDLA$ uEH}uMH}uMH}uML}DuLmHEHHLeMt~I$H=HLDMp tHLLLLH]UHH$HLLLLH}@uHUHMLEH}脻HPEHUHPKH)HcHH}uKHEH@ u8@HþH耲HHEHc@Hc]HqxYHH-HH9vY]HEH@苘HEH@Hc<H)q,YHH-HH9vX]H}u;HE@HcHc]HqXHH-HH9vX]EH]LeH]UHHd$H]LeLmLuL}H}uUMHPZE;EHEH@胸tHEH@苐HUHEH@LDuDmHEH@HHtWL#LQDDLE؉A$Hc]HqWHHHH9v~W]E;E_4HEH@HUuHEH@HUuH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUMHPXE;E,HEH@胸tHEHc@Hc]HqVHHHH9vV]HEH@苐HUHEH@LDuDmHEH@HHtVL#LDDLE؉A$Hc]HqDVHHHH9vU]E;E_4HEH@HUu HEH@HUuOH]LeLmLuL}H]UHHd$H}HuHUHMH(;WHH!HH!HEHEH]UHHd$H}HuHVHEHuHEHHUHuHEH]UHHd$H}HuHVHEHuHEHHUHuHEH]UHHd$H}HuHSVEH}u1HEHu!HEHHMHUHuHEEH]UHHd$H}HuHUHEHuHEHHUHuHEH]UHHd$H}HuHUHEHhuHEHpHUHuHEhH]UHHd$H}HGUHEEEH]UHHd$H}HuHUHEHHEHuHEHHUHuHEH]UHHd$H}HuHTEHEHu!HEHHMHUHuHEEH]UHHd$H}HuHSTHE@Pu6H}HEHuHEHHUHuHEH]UHHd$H}HuHSEHE@Pu1HEHu!HEHHMHUHuHEEH]UHHd$H}HuHsSEHEHxu!HEHHMHUHuHExEH]UHH$PHXL`LhLpH}@uHRHEHDžxHUHu,HTHcHUHEtnHEHEHuH}H͎}t'HEHHx~HxH}螎HELIHELMtPI]HLL`}tVHEHHEH}u>HEHu!HEHHMHUHuHEHuH}ϦHEHu'HEHHEHMHuHEHEHǀLeLmMtEOI]HL@ HxH}HEHt("HXL`LhLpH]UHHd$H]LeH}HuH(PH}tHEHH}(HU;@|H}H}Fk{H}HcH}JAMcIqNH}1HcI)qNLH-HH9v7NDeHE@;E| uH}jH]LeH]UHHd$H]LeLmLuL}H}H@OHEHEH(uHEH0HUHuHE(H}tH3HELuLeLmMtOMI]H LL HELH]ILeMtMML LHLAHEHEH]LeLmLuL}H]UHHd$H}HNHEHH=UHmHEHEH]UHHd$H]LeLmH}HuH(gNLmLeMtSLI$H L@H]LeLmH]UHHd$H}HNHEEEH]UHHd$H}HuHMH}uAHEH޵u'HEuH}uEEEH]UHH$@HHLPLXL`H}؉uUMDEH(ME}ېHUHHUHE؋%UuH}XHEH}uH}tHuH}E̋EEȃ}tH}轩u@#EtuH}7&tH}uHEtcHEuQH};E~AH}r;E|1LuALmMtJI]H DL =HEtHuH}}tHEHHua}tYH}跨uJH}tAHEu/LuALmMt_II]H DL LeLmMt3II]HLtXLeLmMtII]HLu)LeLmMtHI]HyLDEMUuH} UuH}HEHuH}EH]H}uGH}衶u8H}ҡu)H};E~H}c;E ƃƃ}t1@#Et H}uHE؀uH}l@H}蝱H};E~HEu}H}ʞH;EtH};E~HE؁HEtHuH}赟(uH}d#uHE؁H}D3HUHpHHcHhu%uH}"HEHHu)oH}V3HhHtuH}t"uJHE؁H}@H}8H}uHEHHUHP(,}tHEHHuxHE؁AHEu/LuALmMt FI]HDL HEt9E@u.}t&H}uH}9@H}j|}tqH}teHEuSuH}!tAuH}!t/LuALmMtAEI]HDL HHLPLXL`H]UHHd$H]LeLmLuL}H}uUMHHFEUuH}vHEu8D}DuH]LeMtDM,$L,HDDA UuH}mUuH}H]LeLmLuL}H]UHHd$H]LeLmLuH}uUH8FHEHǀLeLmMtCI]HLf=t2LuALmMtCI]HKDLHE tUuH}{HUHHEHu2LuALmMt4CI]HDLLmLeMtCI$HL@H]LeLmLuH]UHHd$H]LeLmLuH}؉uUMDEHXDHEHu&HEHuHEHDEMUuH}螮}t?Et5LeLmMt(BI]HLHui}tEH}@fHE؋%t!HE؋HE؋H}+zHEЋUuH}zHEHEHcHcUH)qAHHHIHUHcHcMH)qAHHHIHqAH |HEH;EtHEuKH}/t]}H}uUHuH}H]H]UHHd$H]H}@uH0o@HEuHEHH@8HE H}_HEH}tHEH HEH}uH}HcHUHcHHHHqH>HH-HH9v=]ZfDH}@贲HEH}u9HEHEHc]Hq=HH-HH9v=]}H}uUHuH}H]H]UHHd$H}@uH#?HEu}uHEHH@8HE H} HEH}u6H}UuH}@胦HEHx`u HEH@`HEH}uUHuH}H]UHHd$H}@uHc>HEu}uHEHH@8HE H}KHEH}u-H}蕥uH}@HE H}@豥H}uUHuH}(H]UHHd$H}@uH=HEu}uHEHH@8HE H}蛒HEH}uH}@"UHuH}H]UHHd$H}@uH#=HEu}uHEHH@8HE H} HEH}uH}@蒤UHuH}H]UHHd$H}HuUHHEHc@H qHH-HH9vDH};H]LeLmLuH]UHHd$H}@uH HEuHEH}@}tH}HvH]UHHd$H}uUH q }t}t/HEHHuHEHuEEX}tLHEH8u2HEHu"HEHHuHEHuEEER}tHEHE8}t,HEHuHEHuEEEEH]UHHd$H}HuHUMH(LE}t5HEH8u%HEH@LEHUHMHuHE8HEHu)HEHLMDEHUHMHuHEEH]UHHd$H}HuUMLEHHEHE}t4HEHHu$HEHPLE̋MHUHuHEHHEHu0HEH$HEHLMDEMHUHuHEEH]UHH$HH}HHDžHDžHDž@HDžHHDžPHDž`HDžhHUHuHHcHxaHEHt H=qwHE|HhYHE\H`HXHڹHHc\qH`H5qHh^ZHhHpHpvHE|H`XHE\HPHgXHڹHHc\lqHPH5AqH`YH`HpHpcvHE||HPWHE|\HHHWHڹHHc\pHHH5qHPHEHHHm;EuH@+VHqH uHHH(HqH0HEHHHwmHHH8H HH@YH@HpHpsHEt>HE|EHEH}@HE|;Eu H=?qsHEt>HExEHEH}>HEx;Eu H=q2sHEuHEHXt HsHEHXu"HEHXDt H=qrHEt7HEHHEH}XAHEHH;Eu H=qrHE t7HEHHEH}oAHEHH;Eu H=q@rHSHSH@SHHSHPSH`SHhSHxHtHH]UHH$@H@LHH}HuUHLHDžPHUHuHHcHUHEH`HDžX LeMtI$HHHXHXHpHDžhHEHEHDžxHXHH=FqH}CHHH8}uAHPMRHuHUqHPSHPHEHHPRHEHt)H@LHH]UHHd$H]H}HHEHc`HqHH-HH9vHE`H]H]UHHd$H]H}HcHEHc`HqHH-HH9vPHE`HE`| H=qKoHE`tHEu H}H]H]UHHd$H}HHEHH@0HEHEH]UHHd$H}HwHEHH@8HEHEH]UHHd$H]LeLmLuH}HuUH8 HEu uH}uH}@|ZLuALmMtI]H{DL HuH}jHEu H}@$|H]LeLmLuH]UHHd$H]LeLmLuH}HuHUH@?LuLeMt)M,$L@LA HEHqaHHEH@HvHEH0H}!iHEupHEH-HH9vDeA}FEEEHc]HEH@H9vHEH@HzD;e~H]LeLmLuH]UHHd$H]LeLmLuH}HuH8LuLeMtM,$L@LA H}+VH}THH}gHEutH}UHcHqHH-HH9v|}7EfDEEuH}TI@Ly;]~H]LeLmLuH]UHHd$H}HHEH HEH}uGH}uHu7&@H}OuETH}JHEH}uE8H}t H}eHEH}uH}ouEEEH]UHHd$H}H'HEHu7H}:HEH}t H}eHEH}t H}LH]UHHd$H}HHEuHEH@1H}dHEH}uH}act H}@wH]UHHd$H}@uH3HEuHEHH@8HE H}#dHEH}uH}@~HEHEHHEH}uUHuH}H]UHHd$H}@uHHEuHEHH@8HE H}cHEH}uH}@HEHEHHEH}uUHuH}gH]UHHd$H]LeLmLuL}H}H@ HH=E(~HMHEH}bHEOfHELH]ALmMt M}L7DHLAHEH@`HEH}uHEH]LeLmLuL}H]UHH$PHPLXL`LhLpH}HuUH HEHUHu=HeHcHxHHEfDLuH]ALmMt M}L6DHLAH}tHEHHE H}讁HE H}{HEH}uHEHHuWHuH}tfLuALmMt I]HDLLeLmMt I]HfLH}u HuH}a}u H} H}]GHxHt|HPLXL`LhLpH]UHHd$H}HuH HEHH;EtWHEHuHEHHuHEHUHHEHuHEHHuwH]UHHd$H}uH HE;Et HEUH]UHHd$H]H}uH(0 HEHEH+HcHqhHH-HH9v }REDEEHEHu<'@P;EtHEHu'HE;]~HEH]H]UHHd$H}HuHc HUHEHH]UHHd$H]LeLmH}uH( LmLeMtI$HL8H]LeLmH]UHHd$H]LeLmH}H LmLeMtI$H;L8H]LeLmH]UHHd$H]LeLmLuL}H}H@CH̺HEHEHhuHEHpHUHuHEhHELLuHLeMtLILHLLAHEHEH]LeLmLuL}H]UHHd$H}HHEHH=EH%HEHEH]UHHd$H]LeLmH}H ;HEHLmLeMtI$HLHUfH]LeLmH]UHH$HLLLLH}HuHUH H}t+LmH]HtyILLAT$hHEH}tHUHuHʰHcHUUHEHUH}HoH]LeMtM,$LHA HUHHUHE苀X J߉XH]HtL+LSH]HtL#L8LA$HxHxIHEHAGHAHALeMt1M4$LDꋅAHAHEH}uH}uH}HEHaHEHpH`H  H4HcHxu%H}uHuH}HEHP`HxHtHEHLLLLH]UHHd$H]LeLmH}HuH(H})LeLmMtI]H~LHEHEH}HH}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuH}H0GHEuHEtH}HӏH8;HLuLmMtMeLLHA$HH}E}uDHEHu0 HLuLmMtMeL=LHA$( H]LeLmLuH]UHHd$H]LeLmLuH}H(7HEH HEuKHEHEHHLuLmMtMeL菿LHA$@ H]LeLmLuH]UHHd$H]LeH}HuH(EHEHd"HcHqHH-HH9vg}EfDEEHEHuxHuRHEHuyIL%;E~-HEHuTIL%;E}EE;]~냋EH]LeH]UHHd$H}HuUHEHuH}n&}t#HEHH;EtH}HH]UHHd$H}HuHHEHuHEHHUHuHEH]UHHd$H}HuHHEHuHEH HUHuHEH]UHHd$H}HuUHpHEH(u(HEH0HEHLDEHUHuHE(H]UHHd$H}HuHHEH8uHEH@HUHuHE8H]UHHd$H}HHEHXuHEH`HuHEXH]UHHd$H}HuHUH oHE芀E}u5HEHHu%HEHPLEHMHUHuHEHEH]UHHd$H]LeLmH}H HEHhHE@PtHLeLmMtI]H`LHUfHEƀH} H]LeLmH]UHHd$H]LeLmLuH}H(GHEHKhHE@PtfHEƀHEƀHEt8HEDLeLmMtI]H苺LDH} H]LeLmLuH]UHHd$H]LeLmLuL}H}؉uUMDEHPvEMUuH}AbHE@PtHEƀu}?HUH}t}Hc]HqfHH-HH9v ߋu?HH}#LceIq"LH-HH9vDuZ?HH}9uHEƀHc]HqHH-HH9vnߋu?HH}HU؉HE؃t HEƀ2LuALmMtI]H蜸DLHE؀u\HEƀHE؋HEH,ILuػLeMtM,$L4LLA8 !u}(>HH}HU؉H}yH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUMHPEUuH}bHE@PtZHEuEuHEHEHHH;E~HEHEHHLceHEHEHIL_HcI)qLH-HH9v5DH HEHEHpIH]ALeMtM,$LwDHLA8 HEubEuTu}Gu}9HH} HEHH}9u HEƀEt}Hc]HqHH-HH9vpߋu9HH}LceIqLH-HH9v,Du8HH}E9u4LuALmMtI]HyDL8HEDLeLmMtI]H?LDH}H]LeLmLuL}H]UHHd$H]LeLmLuL}H}؉uUMDEHP&EMUuH}A^^HE؀uHE؋HEHbILuػLeMtM,$LjLLA8 HE؋HEHHLuLmMtzMeLLHA$0 HE؀u/HEHU؋;|HE؋HEHIHEHcHq`HH-HH9vALMMtM,$LrHDAkHEHU؋;SHE؋HEHIHEDLMMtaM,$LHDALeLmMt4I]HدLH HEƀHEƀHEƀH}%H]LeLmLuL}H]UHHd$H]LeLmLuH}H@EELeLmMtI]H)LuHEuEHEEjHEu[EH}H8MHLuLmMtMeL誮LHA$HEHuH}+EHEHHcHqHH-HH9v}lEDEEE;Eu%HEHu IľL2!HEHu IċuL;]~H]LeLmLuH]UHHd$H}HEEHEH]UHH$pH]LeLmLuL}H}HHEHHEHE~3HEHUHUHEHHEHHEH<HcHqHHHH9v>AA}ME@EEDmH]LeMtM4$L苬HDAX D;}~HEHeHEHHcHqHHHH9vHEH HHdHUHEHU;|zHþH HEЉUHEHEE؉EPHEH$HEH$THEHUHHELLu]HEHELeMtM,$LOH}LLEMHuAPHEueHEHLAHEHHHtHEHEHO HHHEHyrHEH HcHqHHHH9vHEH HH`HEHxH}HEHHEHxH]LeLmLuL}H]UHH$HLLLLH}؉uHPHEHu HEHExHtHUHHEHHEHEHcH}uAMcIqLH-HH9vHDeHEHcH} AMcIq`LHHH9vDeЋE;E~hHHEP8Hi4H HEUHEHEEEHH$HEHPHPHEHHHEH@HEH8D}IIMt;I$ILܧLH8DLHL@HPAPNHHEH+PH0HEH(HEH HEHD}IIMtI$ILNLHDL(L H0A@H|HUH|HEHEHEHEHEHEHEHEH;EtHHuH}HÄuH}HEHuHEx,uHc]Hq3HHHH9v]HEHxHE؋HEHwHEHpHD$D$HE@,$HcEHc]HqHcEH)qHH?HHHHHH9v1ދ}+H`HUHHHELLuEHHpLpMtM,$L_HLLLL`A`HcEHqHc]HqHHHH9vn]HEHx@uHhD$HEH$HEHD$HEP(HHH HHH9vHXHEHP@HHELLmEHHhLhMtM4$L?HLꋅLLXAApHLLLLH]UHH$@HHLPLXH}uEMHEf)EEH}sErrmHELHELMtI]HCL(HUHxձHHcHpHEH;HcHqHH-HH9v>}sEDE܃EHEHulHEH}*YEL-LH-HH9vDH} ;]~,HELHELMtzI]HL0HpHttHHLPLXH]UHH$`H`LhLpH}uUHEuH}kHELHELMtI$HgL(HUHuH$HcHxHEHbHcHqHH-HH9ve}VEEEHEHuHEH}NjUu*HEHLLH]UHHd$H}HuHsHEH=H0uAHUHE@,B,HEHp@HEHx@H}HUBLH}@ HuH}HEHHEH,HEHHEHHEHuH H=p{H4)HEH鬉HEH}HH]UHHp=)u N(H]UHH@= u,N(tHH5ӜH=ېזH]UHHd$H}HuHH]UHHd$H}uHUHH]UHHd$H}uHH]UHHd$H}uHToH]UHHd$H}H'BH]UHHd$H}uHH]UHHd$H}HH]UHH]UHHHH=膼H]UHHd$H}HEpHEHx_HHEHEH]UHH$HLLH}HuHUH}t)LmLeMtLH蛆LShHEH}tHUHu!HIsHcHUuZHEH}HHEHUHPHE@HEH}uH}uH}HEHߗHEHpHhH(芔HrHcH u%H}uHuH}HEHP`脗zH HtY4HEHLLH]UHHd$H}HE@HEH@HU@;BEEH]UHHd$H}HuHUHUHEHHH]UHHd$H}HuHEx(u HEH8H]UHHd$H}uEH}HHEHEH]UHHd$H}HEH@HEHEH]UHHd$H}HuHUHEH0HEH8HEP EEH]UHHd$H}uHUHEH‹uH}yH]UHHd$H}HEHǽHHEHEH]UHHd$H}HuHEHH}追H]UHHd$H}HEH׻HHEHEH]UHHd$H}HuHEHH}读H]UHH$HLLH}HuUH}t)LmLeMt7LH܂LShHEH}tHUHubHoHcHUuRHEH}HBHUEB(HEH}uH}uH}HEH(HEHpHhH(ӐHnHcH u%H}uHuH}HEHP`͓XÓH Ht袖}HEHLLH]UHHd$H}HuHEHH}EEH]UHHd$H}HuHEHHuH}˶HEH]UHHd$H}HEHH=vH)HEHEH]UHHd$H}HuE fDEHE@;EHEHPHcEHH;EuHE@;EtEEH]UHHd$H}uHUEH}nHUHH]UHHd$H]H}HuHE@gX}2EfEg@EuH}ZHH}n;]~H]H]UHHd$H}HuHEH#HuH}fH]UHHd$H}HuHEH}HE}} uH}EH]UHHd$H}HuHEHUHP HUH5H}H]UHHd$H}HuUMDEH(iHEHDE؋MUH}H]UHHd$Hh+H,HEH!HEHOHEHuHH=`pHHEHϋHEHHEHkHEHHEH;HEHߋHEHpHEHHEHIXHEHuH H=p>HȋHEH̋HEHuHH=pHʳHEH}HH]UHHd$H]LeLmLuL}H}HuHPHEHH;EtHEHHEHuH} HEHH=qtpuHEHHEHELLeHELMtfI]H }LLE܃}|JHELx HELH]HELMtM,$L|HLLAXHuH=ouHE@PtHEHEHELLeHELMt蠼I]HD|LLEHELDeHELMt_I]H|DLH]LeLmLuL}H]UHH$HLLLH}HuHUHݽH}t)LmLeMtLHe{LShHEH}t|HUHuHhHcHUHEHUH}H踈HUHE苀X XLuALmMt%I]HzDLH}HILuALmMtI]HzDLHEH}uH}uH}HEH.HEHpHhH(وHgHcH u%H}uHuH}HEHP`Ӌ^ɋH Ht討胎HEHLLLH]UHHd$H]LeLmLuH}HuH8ûH})LeLmMt覹I]HJyLHEHH=GJluHEH@PtHEHLLeHEHLMt$I]HxLLEHEHLDeHEHLMtոI]HyxDLH}H͇H}uH}uH}HEHPpH]LeLmLuH]UHHd$H}HWHEHH= kuHEHHuEEEH]UHHd$H}HHEHHHpH5pH=_:HHpH5 pH=>H]UHH$HLLH}HuHUHdH}t)LmLeMtGLHvLShHEH}tHUHurHcHcHUulHEH}HgEHH=?c HUHBPHUHEHBXHEH}uH}uH}HEHHEHpHhH(ɄHbHcH u%H}uHuH}HEHP`ÇN蹇H Ht蘊sHEHLLH]UHHd$H]LeLmH}HuH(ǷH})LeLmMt誵I]HNuLHEHxPpH}H8AH}uH}uH}HEHPpH]LeLmH]UHHd$H}H'HEH@XH@HEH}t HEH@XHEHEH]UHHd$H}HuUHж}|HEHxP;E~ H=-pHEHxPud Hp H}H]UHHd$H}HgHEHxPEEH]UHHd$H}uH$}|HEHxPo;E~ H=p<HEHxPuc HEHEH]UHHd$H]LeLmLuL}H}uHUH@蜵}|HEHxP;E~ H=ypHEHxPuTc L}ILMMtKI$ILrHLA0H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@ߴHEHIIHRHL%HMt謲LILNrHLLAIH]L}LeMtsI$ILrLHLAXEEH]LeLmLuL}H]UHHd$H]LeLmLuH}HuHUHHHEHxPHua EHEHEH}@%u0LuLeLmMt跱I]H[qLL0HuH}@HELpXH]LeMtvM,$LqHLA`LuػLeMtDM,$LpLALuسLeMtM,$Lp@LAHUHE؋X XHEHxXgtHEHxXu EH]LeLmLuH]UHHd$H]LeLmLuH}H(wifHEHxPHcHq賰HH-HH9vVLuLmMt"MeLoLA$HEHxP\H]LeLmLuH]UHHd$H]H}uH(}|HEHxP ;E~HEHxPu_ HEHEHxPuKHEHUHH;BXt"HuHYzH8HJzH83HEH@XEE;E|}HEHxX";Et/Hc]Hq\HH-HH9v]HEH@XǀHEHxXu H]H]UHHd$H]H}HuH 菰EHEHxPHcHqˮHH-HH9vn}7EEEHEHxPu^ H;EtEE;]~ЋEH]H]UHHd$H]LeLmLuL}H}uHUHH̯}|HEHxP;E~ H=p H}[IIHHL%MttLILmHLLAHEHEHxPHUu>^ H}@耥u0LuLeLmMtI]HlLL0HuH};HELpXH]LeMtѬM,$LulHLA`LuLeMt蟬M,$LClLALuLeMtqM,$Ll@LAHUHEX XHEHxX;E}IHEHxXHcHqnHH-HH9vHEHxX2H]LeLmLuL}H]UHHd$H]LeLmLuH}uUH@葭HEH@XHEHxXHEHEHxPUuLuH]LeMtGM,$LjHLAHEHxXoH]LeLmLuH]UHHd$H}HuHHEHgH}\Hp H}H]UHHd$H}H藬HEHH}HEHEH]UHH$PHPLXL`LhH}uH2HEHUHuxxHVHcHU}|@HELHELMtשI]H{iL;E~;ExHDžpHpHH5pH}H}HELDeHELMtZI]HhDLHEzH} HEHtB|HEHPLXL`LhH]UHHd$H]LeLmH}H(˪HELHELMt詨I$HMhLEEH]LeLmH]UHHd$H}HWHEEEH]UHHd$H]LeLmLuH}HuH8HELH]HELMtM,$LgHLAEEH]LeLmLuH]UHHd$H]LeLmLuH}uH8脩}|@HELHELMtZI]HfL;E~HE;EtHE}LuHELHELMtI]HfLA;_HEH}HHEHUHE苀X XLuALmMt脦I]H(fDLHUEHEtHEH}HEHEHu'HEHHEHUHuHELuLeMtM,$Le@LAHUHE苀X%XLuLeMt蜥M,$L@eLAH]LeLmLuH]UHH$HLLLLH}HuH0HDžHDžhHUHxOsHwQHcHpHE@PunE/Hc]Hq HH-HH9v謤]H]LmMtuMeLdHA$;EaHELHELMt2I]HcL;E DmH]LeMtM4$LcHDAIHELDmHEHHt蹣L#L^cDLA$I9tHELDmHEHHtpL#LcDLA$HP HDmH]LhLuMt-M>LbLHDAHhHHt;HELHEHHtϢL+LtbLA;Et6H]LeMt蟢M,$LCbHA;Et*HH=զO HEHPHpHNHcHHELHEHHtL+LaLAHcHqKHHHH9vD}A9~]EEEEHELDmHEHHt聡L#L&aDLA$HELmHLeMtIM4$L`HLA`HuH}3Q D;}}hE@LmLeMtI$H`LEDmH]LeMtĠM4$Lh`HDAHuDuLmHhLeMt肠M<$L&`HLDAHhHgDmH]LeMt?M4$L_HDAHEDuLmHhLeMtM<$L_HLDAHh@&uoD}LuLhH]Ht豟L#LV_LLDA$LhLuH]HtzL#L_LLA$0DmH]LLuMtBM>L^LHDAHH}.LmH]LeMtM4$L^HLA`HuH}O E}} uH}DmH]LhLuMt螞M>LC^LHDAHhHDuLmHhLeMtUM<$L]HLDALhHELHEHHtL#L]LLA$PLc}LcuLmH]Ht۝L#L]LA$HcI)qHL)qLqHH-HH9v蠝]LmLeMtiI$H ]L;ECH}HcHq萝HHHH9v2}]EE@EEuH}L HEЋuH}LmHLeMt踜M4$L\\HLA`HuHyH8ij4iHHtlkHEHLLLLH]UHHd$H]LeLmH}HuH(7H})LeLmMtI]HVLHEHePH}HfH}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuH}HuH8胘HEHH;EtcHELH]HELMtGM,$LUHLAE}} uH}gHuH}H]LeLmLuH]UHHd$H}@uHӗHE:EtHEUH}H]UHHd$H]LeLmLuH}HuHUH8oHE耸u;LeLmMtLI]HTLHUHE耸HE耸t|HE胸t/LuALmMtI]HTDLHE胸t/LuALmMt譔I]HQTDLH]LeLmLuH]UHHd$H]LeLmLuH}HuH0SHEt|HEt/LuALmMtI]HSDLHEt/LuALmMtۓI]HSDLH]LeLmLuH]UHHd$H]LeLmLuH}HuUH8pHEƀHE耸t|HE胸t/LuALmMt+I]HRDLHE胸t/LuALmMtI]HRDLH]LeLmLuH]UHHd$H}H觔HEHH}H]UHH$HLLH}HuHUHDH}t)LmLeMt'LHQLShHEH}tHUHuR`Hz>HcHUunHEHUH}HcHEƀHEǀHEǀHEH}uH}uH}HEHbHEHpHhH(_H=HcH u%H}uHuH}HEHP`b,dbH HtveQeHEHLLH]UHHd$H]LeLmLuH}HuH0裒H})LeLmMt膐I]H*PLLuLeMt[M,$LO@LAH}HH}uH}uH}HEHPpH]LeLmLuH]UHHd$H}HבHEuHE@PtHEuHyH8tHUHHHzyH8dHUHHH[yH81eHUHHHLH-HH9vDeЋhEHELcHchI)qIqLH-HH9v萃De؋EĉE܋EȉEHuHH HELcIq蒃LH?IILH-HH9v(DeHELcHchI)qHIq=LH-HH9vDeHELcHchI)qIqLH-HH9v蘂De̋hEЋhEԋhE؋EĉE܋EȉEHuHHz hEHELcLH?IILH-HH9vDeHELcHchI)q7Iq,LH-HH9vρDe̋hEHELcHchI)qIqہLH-HH9v~DeHELcHchI)q螁Iq蓁LH-HH9v6De؋EĉE܋EȉEHuHH3HELcHchI)q2Iq'LH-HH9vʀDeHELcLH?IILH-HH9v葀DeȋhE̋hEЋhEHELcHchI)q薀Iq苀LH-HH9v.De؋EĉE܋EȉEHuHH+ٽ,ٽ(f,Hp(HEH(HcP\HEHcH)qH@߭@٭,߽@٭(H@H-HH9vw@`ٽ,ٽ(f,Hp(Hp(Hp(HEH(HcP\HEHcH)qMH@߭@٭,߽@٭(H@H-HH9v~@\`;\~HE8 t>Hc`LcdIq~LH-HH9vg~DPQHELcHc`I)q~HcdI)qq~LH-HH9v~DPH\`HELcLH?IILH-HH9v}DPHELcLH?IILH-HH9v}DLHc`Hk9q}H:m:mHHH?HILH-HH9v=}DXDžT@TTLcLTv}THE8 H*`H LH YL-Mq}LH-HH9v|LcTMkq|LH v|FlLcPTvd|THE8 H*`H *LH YH-I)qb|LH-HH9v|LcTMkq3|LH v{FpLcLTv{THE8 H*XH KH YL-Mq{LH-HH9vg{LcTMkq{Iq{LH v<{FlLcPTv{THE8 H*XH CKH YH-I)q{LH-HH9vzLcTMkqzIqzLH vzFpT}UDžTTTLcTMkqzIqzLH v6zNcpLcTMkq\zLH vzJcpL)qHEL0LeHEL0MtvI]H6LLH]LeLmLuH]UHHd$H]LeLmLuH}HuH0xHEH(H;Eu>HEL(LeHEL(MtZvI]H5LLH]LeLmLuH]UHHd$H}uHxHE8;EuHEU8HuH}H]UHHd$H}HwHEH?vH]UHHd$H}HwEAEAHEH]UHHd$H]H}HhSwHEHEHOE}H}>HEHUHEHEHEHEHE@xt )dHEHEHc]Hq uHH-HH9vt]Hc]HqtHH-HH9vt]E2HEHEHc]HqtHH-HH9vQt]E,HEHEHc]HqktHH-HH9vt]Hc]HqLceHuHUHcI)q(gLH-HH9vfDeH}>H@ H;EtH}=H@ H;Et<}}E;E|EEE}}E;E|EEE:}}E;E|EEE}}E;E|EEE;]~Hc]HHH9u8fH]EEE;E|EEHcHEHEH;EH]H]HH-HH9ve]LuLeLmMtgeI]H %LL uHEtHEtHErrCHEHcHc]HqVeHH-HH9vdH}~AHEHcHc]HqeHH-HH9vdH}kH}=.HEHUHEHEHEHEHELLeHELMt?dI]H#LLHEHELLeHELMtcI]H#LLHEHErruH}UH}HEH HuHU蟩HhLpLxLuH]UHHd$H}HWeHEH@rrHEH@H).EHEH@H-EEH]UHHd$H]H}HdHEH@rrHEH@tcHEH@HcHEH@HcHqbHEH@HcH)qbHH-HH9vub]kHEH@H<-HcHEH@HcH)q~bHEH@HcH)qebHH-HH9vb]HEH@tcHEH@HcHEH@HcHqbHEH@HcH)qaHH-HH9va]kHEH@H+HcHEH@HcH)qaHEH@HcH)qaHH-HH9v"a]EH]H]UHHd$H}HuH bHEHEHEHEH}GHEH}uHEHEHEH]UHHd$H]H}H(sbHEHEH@H:HcHq`HH-HH9vJ`}]EE@EEHEH@HuP:HEHEH@H;EuHHExxt0HEH@@xrrHE@xrr HEHE }~yHEH]H]UHHd$H}HuH(SaHEH@t9t tt9PHEEAH}(HEHUEE(HEEH}(HEHUEEEH]UHHd$H]H}uUMH0`HEHpH}EHEH@v v9hHcEHc]Hq^HH-HH9vg^]4Hc]HcEH)q^HH-HH9v3^]E;EEE؋E;E|EEHEH@uHEH@;EEE؋E؉E܋EH]H]UHHd$H]LeLmLuH}uHXt_HEHx''HEHUHEHEHEHEHEH@LH]HEH@LMt!]M,$LHLAHEHEH@LH]HEH@LMt\M,$LzHLAHEHEHpH}EHEH@ttR Hc]HcEH)q\HH-HH9vh\H}蘃Hc]HcEH)q\HH-HH9v$\H}THc]HcEH)q=\HH-HH9v[H}AHc]HcEH)q[HH-HH9v[H}ςHEH@H HuHUaH]LeLmLuH]UHHd$H]H}uH8]HEHx$HEHUHEHEHEHEHEH@ttEHcEHc]Hq [HH-HH9vZ]Hc]HcEH)qZHH-HH9vwZ]hHcEHc]HqZHH-HH9v@Z]4Hc]HcEH)qiZHH-HH9v Z]HEHxHuHUvH]H]UHHd$H]LeLmH}HuH0[HEH@tTv tAxHELHELMtKYI]HL@Evt2HEH@H!EHEH@H EEH]UHHd$H]LeLmLuH}uH0$XHc]H}wHcH)qjVHH-HH9v VLuLeMtUM,$L}LA@ H]LeLmLuH]UHHd$H}HWHErrHEE HEEEH]UHHd$H]LeLmH}@uH(WHE:Et6HUELmLeMtTI$HL@H]LeLmH]UHHd$H}uHVHE;Et }| HEUH]UHHd$H]LeLmLuH}uH04VHE;EtHEULmLeMtSI$HL8 HE@Pt[LuALmMtSI]HcDLLeLmMtSI]H7L@H]LeLmLuH]UHHd$H]H}HuH?UHE@xrrEH}u7HE@x't_tHEHcHq6SHH-HH9vRH}^HEHcHqRHH-HH9vRH}KHEHcHqRHH-HH9vSRH}ة@HEHcHqpRHH-HH9vRH}Ȫ"HEH}Q)HHuHH]H]UHHd$H]LeLmLuH}HuHXSHEuMHEƀHEHUH HEHEHUHHEtttH}HEHUHEHEHEHEHELLeHELMtPI]HsLLHEHELLeHELMtPI]H1LLHEHEtHEgHH"kHEHUH}Hu=rHUH H]LeLmLuH]UHHd$H]LeLmLuH}HuH8QHEuHEvmHEHcHEHcH)qOHEHc Hc]H)qOH)qOHH-HH9vSO]lHEHcHEHcH)qkOHEHcHc]H)qROH)qHOHH-HH9vN]EHEƀ}u0DuLeLmMtNI]H8LD@ HEHuHEHHuHEHEtttHEH kqHEHǀ H]LeLmLuH]UHHd$H]LeLmLuH}H(OLeLmMtMI]Hg Lu~HErr4LuALmMtuMI]H DL2LuALmMtAMI]H DL2LuALmMt MI]H DLH]LeLmLuH]UHHd$H}؉uUMDEH0NEMUuH}A}tH}qHuH}H]UHHd$H]LeLmLuH}uUMHP>NEUuH}EuhHEHuUHEuCH}HEvmHEHcHEHcH)qLHEHc Hc]H)qKH)qKHH-HH9vK]lHEHcHEHcH)qKHEHcHc]H)qKH)quKHH-HH9vK]E}u0DuLeLmMtJI]Hp LD@ H]LeLmLuH]UHHd$H}؉uUMDEH0jLEMUuH}A袶H})HuH}I$HL8 H]LeLmH]UHHd$H]LeLmH}H0@HEHoHEHtALeLmMt=I]HLHEHUHuHUHH]LeLmH]UHH$HLLLLH}HuHUH(V?THHEH@rH 4HdHEUHEHEEEHEL`HELhMtAH0AHErHE苀r8tkHE苐HpHEDDuDmHEHhLeMt2I$H+HhDEDp0HE苀rruH}I uH}諐H}MHxHt,H@LHLPLXL`H]UHHd$H]LeLmLuH}؉uUMDEHH3Uс HUHRЋR|!‰лUс Uс Uс HELpHEL`Mt!1M,$LLAHEHxuyHHH7xHEHHHEHxuHEHHHEHxumHEHHHEHxuPH]LeLmLuH]UHH$HLLLLH}HuHUH &2H}t)LmLeMt 0LHLShHEH}tHUHu4H\HcHUHEHUH}H1HUHE苀X XH]Htx/L+LH]Ht]/L#LLA$HxHxIHEHAGHAHALeMt.M4$LDꋅAHAHEH}uH}uH}HEH+HEHpH`H HHcHxu%H}uHuH}HEHP`[HxHtHEHLLLLH]UHHd$H}H/HEHdH]UHHd$H]LeLmLuL}H}HH/HE@PuHEHHUAHELHEHHtJ-L#LLDA$PHEH̩HEHEH(rAHEL(HEH(Ht,L#LLDA$@HUHEHEAAHEHELeMt,M,$L)H}DDًEAAHEDHEH}踻HEHcHq,HH-HH9v%,HELcIqO,LHHH9v+DAH}8UHEHuEHEHxHEHk7HEHH(HEھH}H]LeLmLuL}H]UHHd$H}H'-EiEiHEH]UHHd$H}H,HEH HEx4tHEHHEH}H]UHH$HLLH}HuHUHt,H}t)LmLeMtW*LHLShHEH}tHUHuHHcHUuRHEH}HwHUHEHHEH}uH}uH}HEHHHEHpHhH(HHcH u%H}uHuH}HEHP`xH HtHEHLLH]UHH$PHPLXL`LhLpH}uH*HEHUHuH9HcHUHEHHnHEHLHEHLMtQ(MeLLA$9|uH}OH]H5~HHH}uH}xDeH};HHq=(HH-HH9v'AE9}DeEEfDEELuHcEHHq'HHH9v'HH}NLeHcUHH9vb'LcmLH}"AC,D;}~HEHtH@HHqf'HxH5~HxH}HHuH}_H5p~H}HEHtHPLXL`LhLpH]UHH$@H@LHLPLXL`H}uHUHMH3(HEHUHxvHHcHpHEH@PuHMHUuH}H]H5j~HHH}NHMHUuH}HEHtH@HHq%HhH5~HhH}HH}ILH-HH9vP%Hc]Hq%HH-HH9v$%AE9~De܋E܃EfE܃ELuHc]Hq,%HHH9v$HH}LeHcUHH9v$LcmLH}mAC,D;}}LeHcUHH9vq$Hc]HH}1AHuH}OH5ˠ~H}HpHt)H@LHLPLXL`H]UHHd$H]LeLmH}HuH0%HEHLHEHLMt#I$H+LHcHq#HH-HH9ve#}E@EELmHcEHH9v+#LceLH}fCD%f%fHEHuGLmHcEHH9v"LceLH}fCD%f%fHEHu;]~MH]LeLmH]UHHd$H]LeLmLuH}HuHEHH@($HEHLHEHLMt!I$HLHcHEH5}~HMH}HaHEHLHEHLMt!I$H5LHcHq!HH-HH9vo!}7EfDEELmMuHcEHH9v/!LceLI}C&HEHuwuXLmMuHcEHH9v LceLI}衾O$&E,$Is LH=v E,$HEHuuXLmMuHcEHH9vp LceLI}0O$&E,$Iq LH=v< E,$;]~H]LeLmLuH]UHH$HLLH}HuHUH!H}t)LmLeMtLHHELHEHHELMtM,$L虻HLA`HEDHEHHELMtM,$LSHDAHEtt` HEHHMHEHEHHMA踡HEHHMŜHEHEHHMAoxHEHEHHMADHEHHuHEHx0tEE}t7}tPHc]Hq8HHHH9vHEH8@0rs]HEHoAMcIqLH-HH9vqA9}]؋E؃EE؃EHEHu@0rrEHE苀v%vHc]LceIq#LH-HH9vDHEH#H@(LLLcIqLH-HH9vvDeHc]LceIqLH-HH9v=DHEHH@(LL LcIqJLH-HH9vDe D;m~HE苀t@=t2/spa^}HE耸u}t}u#HcEHcUHqHEHc@H9}Hc]HqcHH-HH9vڋMDEԋuHR HE苐HHcHcEHqHc]HqHHHH9v]EE܉EHEEHc]HcEH)qHH-HH9vU]ă} HE耸u}t}u }~Hc]HqDHH-HH9vڋMDEԋuH3 HE苐HHcHcEHqHc]HqHHHH9v]EE܉EHEHcXHcEH)qHHHH9v?]N}HE耸u}t}u#HcEHcUHq5HEHc@ H9}Hc]HqHH-HH9vڋMDEЋuHHE苀H.HcHcEHqHc]HqHH-HH9vP]EE܉EHE@EHHc]HcEH)q_HH-HH9v]ȃ} HE耸u}t}u }~Hc]HqHH-HH9vڋMDEЋuHHE苀HHcHcEHqHc]HqHH-HH9v1]EE܉EHEHcX HcEH)qKHH-HH9v]E;EEEԋE;EEEHE苐HHc HcEHqHEHc@LHcUHqHEHcXHqHqHH-HH9vVAHE苐HBHc HcEHqoHEHc@4HcUHqYHEHcXHqGHq=HH-HH9vAHEHcHHkq HEHcPLHEHc@HqHqHc]H)qHH-HH9v{HEHcHHkqHEHcP4HEHc@HHqHqLceI)qvLH-HH9vDDDHHH]HcEHH9vLceLH}iIHJ#HJD#HE苀tttXHE苀H+HcHcEHqHc]HqHHHH9vL]iHE苀tttQHE苀HۛHcHcUHqIHc]Hq;HH-HH9v]D;}~HE苀rrSHEH}HcHqHH-HH9vڋMDEԋuHQHEH*HcHqHH-HH9v-ڋMDEЋuHyHEHHcHq9HH-HH9vH}E@E܃EHEHu H@(HEH}tZHEHHEHEtHE@Pt(H]HcUHH9v8LceLH}fIBD# HH]HcEHH9vLceLH}fIBD#HH]HcEHH9vLceLH}fLHD|H]HcUHH9vLceLH}HfLHD,H]LeMt9M4$L݇HDDAA;E~d臙H}HHthH51(H}ȼH8HtךHLLLLH]UHHd$H]LeLmLuH}؉uUMDEH`JHEH@胸tE;E~EE@EԃEHEH@HuH@(HEH}tWHEȀtHEH@@Pt0HEHHEHEH@苀rrHEH@苀jtWLceHc]H}'HcH)qHH?HHLqHEHc@LHqHUHcZHqoHH-HH9vLuMnHcEHH9vLceLI~cIC\%HcEHc]HqHEHcH)qHEHc@H)qHEHc@H)qHH-HH9vlLuMnHcUHH9vLLceLI~ cIC\%HEH@苀jtWLceHc]H}QHcH)q$HH?HHLq HEHc@4HqHUHcZHqHH-HH9vLuMnHcUHH9vlLceLI~,bIC\%HcEHc]Hq|HEHcH)qgHEHc@HH)qUHEHc@H)qCHH-HH9vLuMnHcEHH9vLceLI~aIC\%E;E}fH]LeLmLuH]UHH$pHpLxLmLuH}HuHUMH HEHHuMH}iHEHddHEHUHEHEHEHEHEHEHEHELuLeLmMtI]H:LLH}HcHqHH-HH9vh}EEEHEHuH@(HEHE؀tHErr^H}虋HEHUHcUHEHHc@HqHUHHcRHqHcEHqHcUH)qHcUH)qHcUHqHUHEHcHEHEH;ELeLeLH-HH9vAHED HELcHEHAMcMqOHEHHcLq2HEHEHcHEHEH;ELeLeLH-HH9vHED YH};HEHUHcUHEHHc@HqHUHHcRHHqHcEHqHcUH)qHcUH)qsHcUHqeHUHEHcHEHEH;ELeLeLH-HH9vHED HELcHEHQAMcMqHEHHcLqԿHEHEHcHEHEH;ELeLeLH-HH9vRHED ;]~HpLxLmLuH]UHH$pHpLxLmLuH}HuHHE@Pu8HEHxuHEH@HH;EHHuH}HUHuŒHjHcHUHELpAHELhMt)I]H}DLHELpAHELhMtI]H}DLHEHpHEHzH}AjLDA$AX AXLuHELHEHHtGL#LiLA$A;~}HE@PtnHELHEHHtL+LiLAHcHq-HH-HH9vЩHEHELHEHHt脩L+L)iLAUHELHEHHtCL+LhLAHcHq~HHHH9v H}EEEHEHuHEHELDuL HEHHt蓨L#L8hLDLA$H H}g7LuLmH]HtOL#LgLLA$`;E~FHELLuHEHHtL#LgLLA$`HELHEHHtŧL+LjgLAHcHqHH-HH9v裧AA}EfDEEHEHu HEHE;EALmH]Ht!L#LfLDA$ LmAH]HtL#LfDLA$D;}~eHELLmH]Ht讦L#LSfLLA$HEHH}vH}uHEH2HEAHELHELMt1I$HeLD H}wHEƀ)H(HtyzwH HEHtxHLLLLH]UHHd$H}H臧HEH`x0t$HEE}|EE!H}GE}|EEHEH`uH]UHHd$H]LeLmLuL}H}HuHUMHHئEt{HEff=%jf-%tf-t6f-tf-t>PH<H(HwHcHEf8u;HEIDuH]LeMt%M,$LcHDLAH]LeLmLuL}H]UHHd$H]LeLmLuH}uUHPHEH@H@EHEH@tHEH@HcHEHxzHcHq̣HqHH-HH9vd]HEH@HcHcEHq胣Hc]HquHH-HH9v]EEHEH@HcHq0HEHxHcHqHH-HH9v踢]Hc]HEHxHcHq֢LceIqȢLH-HH9vkDeEEHEHx4 EؐHcEHc]Hq~HH-HH9v!]؋E;E} }|HcEHcUHq7HcEHq)HcMHHHHH-HH9v]AHcUHcEHqHcMHHHHH-HH9v}]؋E;E}HEHxC;EtJHEH@HuHIIMtMuL`LAuHEHxu]HEHxHEH@HzHIIMt襠MuLI`LAHEH@fH]LeLmLuH]UHHd$H]LeLmLuL}H}HuHUMHH(HEf8u;HEIDuH]LeMtM,$L_HDLAH]LeLmLuL}H]UHHd$H]LeLmLuH}HuHUH8菡HE8u2H]LuLmMtlMeL_LHA$H]LeLmLuH]UHHd$H]LeLmLuH}HuHUH8HEHLuLeMtM,$L^LHAH]LeLmLuH]UHHd$H}uH蔠HE;EuJ}|,HoHH=[}aHH5HnHEUH}H]UHHd$H]LeLmLuH}HuH0HEHH;EuPHELLeHELMtʝI]Hn]LLH}H}H]LeLmLuH]UHH$HLLLLH}uHx;HE;EtHEEHE(uHUE}|CHELHELMt͜I]Hq\L;E~LeMt螜I$HB\HH[HHEHEEEHEHELHELMt@I]H[LHcHq}HHHEHEHMH(#HPIHH=/Y}z`HH5"H(lH}OuHEUHEEHEƀHUHuiHHHcHU@HEuMHEHEHIALMMt'M,$LZHDA =HELAHELMtI]HZDL }ub}}XHEH@;ECHEHuWIƳMMMt耚M,$L$ZL@A =HELAHELMt@I]HYDL kHUE舂HEHt(mLeLmMtI]HYL H}H}-HUEHEǀE;EuuHEtfHEHuHEHHuHEHEHuHEH HuHEHUHEHLLLLH]UHHd$H}HHEEEH]UHHd$H]LeLmH}H 諚HEuHE)uHE@P uLmLeMt_I$HXL HE@PuHEHU;tHUHELmLeMtI$HWLHEHuHEHHuHEHEHuHEH HuHEH]LeLmH]UHHd$H]LeLmLuH}HuUH@@EHuH}.}tHEHuHEHHu|E}uHELHELMt̖I]HpVL;EQHEHuHELDeHELMtwI]HVDLH]LeLmLuH]UHHd$H}H'EEH]UHHd$H]LeLmLuH}HuH0HEƀ(HuH}HEƀ(HE|HLuHELHELMt苕I]H/ULA;~HEǀHUHEH]LeLmLuH]UHHd$H]LeLmH}HuH(HEu)LmLeMtI$HTL H]LeLmH]UHHd$H]LeLmH}HuH(臖LmLeMtsI$HTL H]LeLmH]UHHd$H]LeLmLuH}H8HEHHcXHq]HH-HH9v}gEfEEHEHutHELuLmMt蜓MeL@SLA$ @H}9;]~H]LeLmLuH]UHHd$H}H7HEHۉH]UHHd$H}HHEHH]UHHd$H}HהHEHH}"H}H]UHHd$H}@uHp蓔HE:EtHUEH}HUHu`H>HcHUueHEu,HEH`^HEH`I*HEH`2HEH`hcH}HEHtdH]UHHd$H}uH蔓HE;EtQHUEHEtHEH`HEH`yH}H]UHHd$H}@uHH]UHHd$H]LeLmLuL}H}H8ÒHEǀHELHELMt蓐I$H7PL HEHHcXHqĐHH-HH9vgAA}kEfEEHEHuILMMtM,$LOHA u HEUD;}~H}H]LeLmLuL}H]UHH$HLLLLH}HuHUH VH}t*H]LeMt9MLNHAUhHEH}tHUHuc]H;HcHU7HEHUH}H`THUHE苀XXHEǀ(HEǀ,H]Ht荎L+L2NH]HtrL#LNLA$HxHxIHEHAGHAHALeMtM4$LMDꋅAHAHEH}uH}uH}HEH@_HEHpH`H [H:HcHxu%H}uHuH}HEHP`^p`^HxHtaaHEHLLLLH]UHHd$H]LeLmH}HuH(׎H})LeLmMt躌I]H^LLH}HSH}uH}uH}HEHPpH]LeLmH]UHHd$H}HuHCHEH=ˊH?u*HUHE,,HUHE(( HuH}#uH]UHHd$H]LeLmH}uH(踍HE(;Eu6HEU(LeLmMt膋I]H*KL@H]LeLmH]UHHd$H]LeLmH}uH(8HE,;Eu6HEU,LeLmMtI]HJL@H]LeLmH]UHHd$H}HnjHEHHoH5NoHnH}T(H]UHHd$H}HwE2E2HEH]UHHd$H]LeLmLuH}H@7HE(tt EEEEHEHLHEHLMt͉M,$LqILAHEEHEEHEEHE,t;Js* S  HELuI$HcEHc]HqwHqlHH-HH9vڋuLRUuLHcEHc]Hq"HqHH-HH9v躈ދUL]uI$-HcEHc]HqˈHqHH-HH9vcHcELcmIq葈Iq膈LH-HH9v)DLHcEHc]HqJHq?HH-HH9vڋuLe HELuI$EHcEHc]HqHq؇HH-HH9v{ڋuLUuLHcEHc]Hq莇Hq胇HH-HH9v&ދULHcEHc]HqGHqHq3HH-HH9vփHcELcmIqIqLH-HH9v蜃DL?HcEHc]Hq轃Hq貃HH-HH9vUڋuLHEHuHUuHkHcELceIqIIq>LH-HH9vDUHuHTLceIqLH-HH9v蘂DuHHcELceIq踂Iq譂LH-HH9vPLcmIq聂LH-HH9v$DHDHELuI$HcEHc]Hq$HqHH-HH9v輁ڋuLHcEHc]Hq݁HqҁHH-HH9vuHcELcmIq裁Iq蘁LH-HH9v;DLuI$HcEHc]HqLHqAHH-HH9vڋuL'HcEHc]HqHqHH-HH9v蝀HcELcmIqˀIqLH-HH9vcDLHEHuHUuHyHcELceIqWIqLLH-HH9vDuHuHbLceIqLH-HH9vDUH HcELceIqIqLH-HH9v^LcmIqLH-HH9v2DHD HELuI$HcEHc]Hq2Hq'HH-HH9v~ދUL HcEHc]Hq~Hq~HH-HH9v~HcELcmIq~Iq~LH-HH9vI~DL uI$HcEHc]HqZ~HqO~HH-HH9v}ދUL5 HcEHc]Hq~Hq~HH-HH9v}HcELcmIq}LH-HH9v|}DL H}bHH]LeLmLuH]UHH$HLLLLH}HuHUH ~H}t*H]LeMt|ML^!!*uHEH`Hx7HEHEHHEHEHhLpLxLuH]UHHd$H]LeLmLuH}uH0xHE(;Et>HUE(LuH]LeMtvM,$L@6HLAH]LeLmLuH]UHHd$H]LeLmLuH}@uH03xHEi:Et>HUEiLuH]LeMtuM,$L5HLAH]LeLmLuH]UHHd$H]LeLmLuH}@uH0wHEj:Et>HUEjLuH]LeMt[uM,$L4HLAH]LeLmLuH]UHHd$H]LeLmLuH}HuH0vHEH`H;Et?HEL`H]HEL`MttM,$L\4HLAH]LeLmLuH]UHHd$H]LeLmLuH}@uH0SvHEm:Et>HUEmLuH]LeMttM,$L3HLAH]LeLmLuH]UHHd$H]LeLmLuH}@uH0uHEo:Et>HUEoLuH]LeMt{sM,$L3HLAH]LeLmLuH]UHHd$H]LeLmLuH}@uH0uHEn:Et>HUEnLuH]LeMtrM,$L2HLAH]LeLmLuH]UHHd$H]LeLmLuH}@uH0stHEl:EtHEUlHEH`HxuHEH`L`HEH`LhMtrI]H1L(HU:luOHEH`LpHEDlHEH`LhMtqI]H[1DL`0LuLeLmMtqI]H)1LLH]LeLmLuH]UHHd$H}H7sHEH;;膨H]UHHd$H]LeLmLuH}@uH0rHEh:Et>HUEhLuH]LeMtpM,$L_0HLAH]LeLmLuH]UHHd$H]LeLmLuH}uH0TrHE,;Et>HUE,LuH]LeMtpM,$L/HLAH]LeLmLuH]UHHd$H]LeLmLuH}HuH0qHEH0H;Et@HUHEH0LuH]LeMtwoM,$L/HLAH]LeLmLuH]UHHd$H]LeLmLuH}uH0qHE8;Et>HUE8LuH]LeMtnM,$L.HLAH]LeLmLuH]UHHd$H]LeLmLuH}@uH0spHEk:Et>HUEkLuH]LeMt;nM,$L-HLAH]LeLmLuH]UHHd$H]LeLmLuH}HuH0oHEHGuHEuRLeLmMtmI]H?-LLeLmMtrmI]H-LxHEH`HxuMHEH`LpHEDlHEH`LhMtmI]H,DL`LmLeMtlI$H,L@HEH@uHEHHHuHE@H]LeLmLuH]UHHd$H]H}HhsnHEH`Hxu HLLAHUHBxHELpxAHELhxMtW`I]HDLHUH4IIHEHXxHEL`xMt`M,$LHLLALuIHHHIMt_MLpHLLAHUHHUH5zHEHJL}IHiHHiIMt__MLHLLAHUHHELAHELMt_I]HDLHEHaIIHEHHELMt^M,$LmHLLAHEH}uH}uH}HEH 0HEHpHhH(,H HcH u%H}uHuH}HEHP`/=1/H Ht2b2HEHLLLLH]UHHd$H]LeLmH}HuH(_H})LeLmMt]I]H.LH}|HEHHEHHEHH}H,H}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuH}H0^HEt EHEƀHE@PtHE@PE}u:HELp`LmHEL``Mt[\LHLLEHE}HELpxAHELhxMt\I]HDLEEH]LeLmLuH]UHHd$H]LeLmLuH}H0]HEHUBP@pHExpu EHELh`LeHEHX`Ht_[ILLLAEHEUHEDpqHEHXxHEL`xMt[M,$LHDAEH]LeLmLuH]UHHd$H}H\HEuE,HEƀHE@PtH}EEEH]UHHd$H}@uHS\}uHEH_ H}DH]UHHd$H]LeLmLuH}HuHUH8[HELHELMtYM,$Lo@LAH]LeLmLuH]UHHd$H]LeLmLuH}HuH0c[HELHELMt?YM,$L@LAHEHVH]LeLmLuH]UHH$`HhLpLxLuH}HuHZIHL%MtXMLHHLAxHEHUHu&HHcHUHEHEHHUHELLeHELMtXI]HLLH}HEHcHqCXHH-HH9vWHEH]HEHX;~HEǀ)H}HEHt*HhLpLxLuH]UHHd$H]LeLmLuH}HuH0#YHEH8u7HELp`LmHEL``MtVLHLLH]LeLmLuH]UHHd$H}HXHEH蛹H]UHHd$H}HuUHpXEHuH}a}t#HEHH;EtH}HH]UHHd$H}HXHEHkaHExpu H}H]UHHd$H]LeLmLuH}H(WHE@Pt7HELp`LmHEL``MtULH-LLH]LeLmLuH]UHHd$H]LeLmLuH}H8'WHELp`LmHEL``MtULHLLE}uH}HEHEHHEHHEHHEHHEHUu&H]=vTDHELHELMtGTI]HLDHELAHELMt TI]HDLH]LeLmLuH]UHHd$H]LeLmLuH}H0UHELh`LeHEHX`HtSIL,LLAHEHEH]LeLmLuH]UHHd$H]LeLmLuH}H0'UHELh`LeHEHX`HtSILLLAHEHEH]LeLmLuH]UHHd$H}HTHEH@x@`EEH]UHHd$H]LeLmLuH}@uH0sTHE@q:EtHEUPqHEuA}u9HELpxAHELhxMt RI]HDL7HELpxAHELhxMtQI]HDLH]LeLmLuH]UHHd$H]LeLmLuH}uH0SHEH@x@`;Et7HELpx]HEL`xMtQQM,$LLAH]LeLmLuH]UHHd$H}HuHSHEHHuOHEu H}H]UHHd$H]LeLmLuH}HuH0RHEHH;EtWHELH]HELMthPM,$L HLAHEu H}WH]LeLmLuH]UHHd$H]LeLmLuH}HuH0QHEHH;EteHELH]HELMtOM,$L\HLAHEu H}HEǀH]LeLmLuH]UHHd$H}HuHCQHEHH;EtWHEHuHEHHuJcHEHUHHEHuHEHHubH]UHHd$H]H}H PHE@0EHE@4EHEHc@H}H.HEHH}H}HHH-HH9vi@}tADALmIcHH9v4@McLH}KDHEH}|E;|E|ED9~VH5gH}&HEHtEHXL`LhLpH]UHHd$H]LeH}HuHUMH0TAHEHHEH}%HUHE8BHELc H}HcLqe?HH-HH9v?HEH]LeH]UHHd$H]LeLmLuH}uH0@HEƀtEttHsHEDvLeLmMt_>I]HLDhLuALmMt+>I]HDL4LuALmMt=I]HDLHEƀtH]LeLmLuH]UHH$HLLLLH}Hn?HDž HUHu HHcHUHEpuHEtHEHhHEHUHH=EuIMuHhH(+ HSHcHUk[fL(uHEHEH@EHE@:Eu.}uHuH}~HEUPH}TLvu ILMMt+H}EHE;EuHEHHc]H)q:7HH-HH9v6]HEHhHcXHq7HH-HH9v6}vEfEEHEHhuDqIHEHhu.qHc@4LcmIq6LH-HH9v/6El$4;]~H}zu;Hc]HHH9u96HH-HH9v5]HEHhHcXHq5HH-HH9v5}uEEEHEHhuDpIHEHhu.pHc@0LcmIq5LH-HH9v/5El$0;]~H]E-=v 5fEfH}'H]LeLmH]UHHd$H]LeLmH}H 6HEH8LmLeMt{4I$HLHUfvHUHEH]LeLmH]UHHd$H}HuHUH6HEH(u!HEH0HMHUHuHE(H]UHHd$H}HuHUHMLEH(5HEH8u)HEH@LMLEHMHUHuHE8H]UHHd$H]LeLmLuL}H}HuUMDEHh%5EH}u1HEHu!HEHHMHUHuHE}uZHEHEH7HHEAAH7L Mt2M,$LLDEH}HuAEH]LeLmLuL}H]UHHd$H]H}HuUMDELMH814HEIDEMUHuH}CH]HE؀8u,HuH=aHHEHh|H]H]UHHd$H]LeLmH}H 3HEHHq1HH-H=v1HEfHEft)LeLmMt>1I]HL@H]LeLmH]UHHd$H}@uH2H]UHHd$H}HuHUHMLEH(2HEHu)HEH LMLEHMHUHuHEH]UHHd$H]LeLmLuL}H}uUHx=2HEE}uHEHEHHtH[HHqa0HH-HH9v0AA}UEE܃ELeM$HcUHH9v/Hc]HI$wIDLpH]LHcEHH9v{/LcmLH8KL`Mt4/I$HLHEHUHEHEHEHE̋E;E}"E;E|E;E}E;E|uGLeM$HcEHH9v.Hc]HI$IDH@HE D;}~HEH]LeLmLuL}H]UHHd$H]HG0HHHkq.HHHq|.HH-H=v&.H/fH]H]UHH$pHpLxLmLuL}H}HuUH/HEEHEHHtH[HHH-HH9v-]H}EH}EE}DHcEHcUH)q-HU苊HHHHH-HH9v)-]HEH@HcH HHqB-HHHq--HH-HH9v,HEX<}tHcEHEHEH@HcHHH)q,HUHEH;EH]H]HH-HH9v[,]H}/HcHcUH)q~,HGHH)qi,HEHcEHEHEH;E|H]H]HH-HH9v+]HEH@HcHcUH)q,HEH}HcHcUH)q+HUHcRYH]LeLmLuL}H]UHHd$H}HuHUHMLEH0E;E~&E;E~E;E~E;E~EEEH]UHHd$H]LeLmH}H0{HEH?5H}tHE HEH}HcHqHH-HH9v.}EDEEHH=A͊HEuH},HUHBHEHpH}#HUB$HըL uH}HcLqH-L"IqLH-HH9vrHED` Hc]HIIHcXDžpppHcUHcpHq諦Hc]Hq蝦HH-HH9v@tHE@;t~HE@ ;t}DpLhL@HhHtʥL#LoeLLDA$H@HPHtHPL DžLHtt|xHcUHc|H)q肥HH?HHHc|HqdHPHuHH H HcHH?HHH)q/HH-HH9vҤxRHc]HPHuH3H H HcH)qޤHHHH9v耤xHPHtH[HHHH9vJH0HPHuHH(tH DxH]LuLeMtۣM<$LcLHDꋅ L(0AALIHcxDLHPHuH3AMcIqãLH-HH9vfDHHcHLcLIq膣LH-HH9v)ELHPHuHAMcIq=LH-HH9vDDHcEHctHqHcEH)qHqHH-HH9v莢@HID@DHHEHHEHLeMt*I$HaHHDDM@HDDH]LuLeMtաM<$LyaLHDꋅApDDLmHEHHDžLeMtyI$HaLHLDD8;p~L8L}LmH]HtL#L`LLLA$L0L}LuH]HtL#L`LLLA$ILmLeMt谠I$HT`LLHh[H`H=v蘠D`L}LuH]HtYL#L_LLDA$XqH@HXHPHHt#sEHLLLLH]UHH$PHPLXL`LhLpH}H莡HEHUHumHKHcHULHEHPHMHH|HBHAHEHcXHEHxgHqHH-HH9v"]HE@EHELhHEHhHtӞL+Lx^LAtHELhALmHEHhHt舞L#L-^LDLA$HuHEHPH}_tHEHP虇HE@EHEHPHtH[HqpHHHH9vAHEHPHEHpH} E[LcuHELhHEHhHt蠝L#LE]LA$HcLqܝLH-HH9vDuEHELhHEHhHt2L+L\LAHcHqmHHHH9vHxx}kEEEHELhDuLmHEHhHt蕜L#L:\LDLA$HuHEHPH}ltHEHP覅HEHPHtH[Hq臜HH-HH9v*AHEHPHEHpH} ;EdHEHPHtH[Hq HHHH9v›AHEHPHEHpH}> Ex;E~HEHc|Hc]Hq貛HH-HH9vUHEXH}tH}t tfHEH@HcXHEHc@H)q=HH?HHHH-HH9vӚHEH|THEH@HcXHEHc@H)qܚHH-HH9vHEH|HEHc@Hc]Hq萚HH-HH9v3HEXH}tH}uH}/t tgHEH@HcX HEHc@H)q HH?HHHHHH9v螙HEH|THEH@HcX HEHc@H)q觙HH-HH9vJHEH|sjH}HEHtlHPLXL`LhLpH]UHH$@H@LHLPLXH}HuH聚HEHEHDž`HUHpfHDHcHhbHH={&HEH}'t,HuH}aHuH HHH-HH9v]@HcMHuH}HXLeHcUHH9v謗Hc]HH},AD< r , t,tHcuH}HHcEHq褗HjLeHc]Hq膗HHH9v/HH}AD< r+, t,t!HcuHqAH}HAH} usHMHtHIHuHH`IH`H}HELuLeLmMtmI]HVLL`H}P4HMHtHIHuHH`H`H}v)HcUH}HrHuH HHH-HH9v]H}ȺH}H}uH}d usHMHtHIHuHH`H`H}HELuLeLmMt;I]HTLL`H}O4HMHtHIHuHH`H`H}D( HuH}5(`fH`H}H}HhHtgHEH@LHLPLXH]UHH$`H`H}HuHFHDžhHUHxbH@HcHpHH=n{y"HEHuH}(HEHEЃx~HuH}+'H}RN]EEEUHuH}XuUHuH}ou(UHuH}UHcHcEH)q貓Hq觓HcUHEHXHuH}6tHEHXp|HEHXHEHpH}HU;~EEHcMHcEH)q+Hq HcUHuHh\HhH}%Hc]HqHH-HH9v萒]EEUHuH}EE|EEHcMHcEH)q蕒Hq芒HcUHuHhHhH}f%Hc]HqWHH-HH9v]EE/Hc]Hq HH-HH9vÑ]HcUHEHtH@H9HEHXHYH}KbHh?HpHt^dHEH`H]UHH$`H}HuHUMDEHHEHUHp5_H]=HcHhuPHcMHcEH)q HcUHuH}LHUHuH}+H EH}ȺH_aH}QHhHtpcEH]UHH$`H}HuHUMDEHHEHUHpU^H}EEEHEHEEUH)qiHcUHqiHcMHHDeIqiLH=vviEI0HI!HI!M EUH)qiHcUHqpiHcMHHDeIqXiLH=viEIIM EUH)q!iHcUHqiHcMHHDeIqhLH=vhEIHI!HI!M EUH)qhHcUHqhHcMHHDeIqhLH=vLLLA$IHEL`HEHXHt^RL+LLLAH}u9HELhLuHEHXHtRL#LLLA$HEL`LmHEHXHtQL3LLLAHHLPLXL`LhH]UHHd$H]LeLmLuH}uUMHHnSEUALHH=p HE؀}uJX' HLuLmMtQMeLLHA$xHEH]LeLmLuH]UHHd$H}HRHE@EEH]UHHd$H}HwRHE@EEH]UHHd$H}HuH3REEH]UHHd$H}HuUH REEH]UHHd$H}fuUH QEtf}ptEEEH]UHHd$H]H}HuHQ:AHH5_nHsH]H]UHH$PHXL`LhLpLxH}HuUMDEDMHPE؋Uu}HEHUHEHEHEHEHEHEL}LuAH]HtNHILMDLLHUA$EHEEHEDuDmH]LeMt^NI$IL HDDEEAAHELuLmH]HtNL#L LLA$Pt=LmLuL}H]HtML#L LLLA$EIL}LuHEHEAH]HtML#L; DH}LLA$XELmLeH]Ht[ML3L LLAEHXL`LhLpLxH]UHHd$H}HuHUMH(NEEH]UHHd$H}HuHUMH(NEEH]UHHd$H}@uHNEEH]UHHd$H}HuHcNEEH]UHHd$H}HuH3NEEH]UHHd$H}HuHNEEH]UHHd$H}HuHMEEH]UHHd$H}HuHMEEH]UHHd$H]H}HuHoM*=HH5\nHoH]H]UHHd$H}HuUMH(MEEH]UHHd$H}HuHUH LHEH}HPފHHEHEH]UHHd$H}HuHUH LHEH}HފHHEHEH]UHHd$H}HuHUH OLHEH}H݊HHEHEH]UHHd$H}HuHUMH(KEEH]UHHd$H}HuHUHMDEH0KEEH]UHHd$H}HuUH KHEHEH]UHHd$H}HuUH @KHEHEH]UHHd$H}HuUH KHEHEH]UHH$H@LHLPLXL`H}HuUMDEDMHJE@D$@E8D$8E0D$0HE(HD$(ED$ ED$E D$ED$HEH$EHxEHpEHhDuLmH]LeMtHI$ILHLDhpAxAA EEH@LHLPLXL`H]UHH$HPLXL`LhLpH}HuUMDEDMHLID$0 E8D$(E0D$ HE(HD$E D$ED$HEH$EHEEHEEHxDuLmH]LeMtFI$ILHLDxEAEAAEEHPLXL`LhLpH]UHHd$H}HuUMLEH0YHEEH]UHHd$H}HuUMH(HEEH]UHHd$H}HuHUH GEEH]UHHd$H}HuHUMDEDMH8GEEH]UHH$HL L(L0L8H}Hu؉UЉMDEDMHL#LVLLA$HHtLmLeH]Htj>L3LLLAHhHtaEHLLLLH]UHH$PHXL`LhLpLxH}HuHUHMH?EE;E}CE;E}9LuLmH]Ht=L#L7LLA$PtDH]LeMtZ=M,$LHA(HEL}LuLmH]Ht$=L#LLLLA$HEHEHEHEHEHEL}LuAH]HtHEfUfP4HEUֈP6HEU׈P7HEU؉P8HEU܉PD$E(D$E D$E$DMDEHMUHuH}HEEEH]UHH$HL L(L0L8H}Hu؉UЉMDEDMHHEHD$HEHD$E(D$E $Hc]HcEH)qHH-HH9vLceHcEI)qLHHH9vDDMDEuȋ}ЉHEH`fEfhۭ`߽XX||t Dž||D$HEH`fEfhۭ`߽XX$EHPDmDuD}HEH@HEHHLeMtI$HHAHHH@DDE苅PAEEHL L(L0L8H]UHH$HL L(L0L8H}Hu؉UЉMDEDMHHEHD$HEHD$E(D$E $Hc]HcEH)q HH-HH9vLceHcEI)qLHHH9v~DDMDEuȋ}ЉvHEH`fEfhۭ`߽XX||t Dž||D$HEH`fEfhۭ`߽XX$EHPDmDuD}HEH@HEHHLeMtI$HH1HHH@DDE苅PAEEHL L(L0L8H]UHH$H@LHLPLXL`H}HuȉUMDEDMHEHEE|$ E|$E<$Hc]HcEH)qHHHH9vAHc]HcEH)qHHHH9vcLMLEu}DHc]Hq|HH-HH9v]Hc]HkqMHHH9vHH}MUu}BH|HUH|HuN$HMHcUHqHHUHcMHqHEHHʋEHpLmLuL}ƅhLeMt@HuH}軲u6HEHxu HEH@HHHEH}uHEHEH]UHH$HhLpLxLLH}HuHUHHDž(HDžHDžHDžHDžHDžHHHHcHoH}tH H8 HEH8Dž$HEH@H`Hh<Hc$HqfHH-HH9v $Hh$=v$H<uHc$Hkq H`qHqHH-HH9v HEHxt1Hc HH9vhHc HUHBUHEH@H@HH0H0u6H0H;Eu'H8H0AuH0H8HEHpHEHxHc H}HxHxtHEHPH8HBHH>H;8t)HxHxtHxHxH^HHf8HHHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$IIHHH5nHHEH@H*HPHHEHPHxH@H@HHBHHEH@H8HPHHxHpHEHxdHpHEH@H`HhHxH@H`HXHc$HH5OHH(He HpH@(HPHPuHpH`H`HPHqHH-HH9v|AA}mDžD@DDHPD=v8DHHD HHHc$HqPHH-HH9vAA}Dž@@@H`@=v@HH;Ht/L(Hc@HH9vvHc@HH(0A<uCL(Hc@HH9v0Hc@HH(AHh@=v@HH;HtvHX@=v@HH;HuHHh@=vD@LX@=v}@IDJZHc$HqHc@H9t)HpH#HH+4HHHPD=vDHHtH3HHaHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$L kmLH }mHH5mHD;@~7D;D~HpHxuHpH@HHHpHpH(HEHxH蓩HH2HH5 mH)HHEHxH2HEHPHEH@HBHEHPHxH@HBHEH@H@(~H'H'H'H'H'H5H(HHt讼HhLpLxLLH]UHH$H}HuUMH7HDžHDž HpH0iH葕HcH(|H}tH}H5C&t HEPHUHuH=Dt }u H}u ƅƅuH8HE HHEHUHEHHEH@HEH@HE@HU؊E舂HEHǀ(HEHxu HEH@H8HHuHEHEHUH }u,HUHEH@HBHUHEH@HBHEHPHEH@H@HHBH}uwH k%HEHxHwHH/HH5,mH &H HEHxH.uH$HEHxHHH /H H5mHI&HHEHxH{.H}tHEHǀ0}uqH\$H}HlHH t.H H5amH%HHEHxH-Au'HUHEH(H0HUHEH(HEHǀ0u)HUHuH=:HU؋uH='bHEuH= 7HEHR#H F#H(HteHEH]UHHd$H}HuHUH(H=tHEH}HHEH}trH}uHEH@H;EtWHEHUHPHEHxt HEHEH@H@HHEHuH}HVHUHuHH]UHHd$H}HuHUH ?HEH(HEWfDHEHxu$HEtHEHpHUH}HUHuH}HEH0HEH}uH]UHHd$H}HHEHH0HEH}uHEH@HEHEHEH]UHHd$HKHrHEHEH]UHHd$H}HHEHLrH]UHHd$HH4rHEHEH]UHHd$H}HHEHqH]UHHd$H}HH=tVHEH=HHEHEH]UHH$HLL H}HuHH}t)LmLeMtLH蠡LShHEH}tHUHu&HNHcHUu?HEHEH@ HEH}uH}uH}HEHHEHpHpH0誯HҍHcH(u%H}uHuH}HEHP`褲/蚲H(HtyTHEHLL H]UHHd$H}HuH HEHuH}HuuH}H@HEHEHEH]UHHd$H}uHTEH}HEHEH]UHHd$H}uHUHHEuH}HUHuH}-H]UHHd$H]LeH}HuHUH@HEH@ H;EtHEHU@EEHEHcXHqHH-HH9vz]HE}| ElHcEHc]Hq~HH?HHHH-HH9vHEHEL`H]=vIHH;Es HEE2HEHcHqHH-HH9v]E;EDHEUHEL`H]=voIHHEHEH;EtHEHuH}cEMHEH;Er HEU2Hc]HqWHH-HH9vHEEEH]LeH]UHHd$H}HuUHHUHEHB HEUPH]UHHd$H}HgHEH@HHEHEH]UHHd$H}HuH3H]UHHHH=HHH]UHHd$H]HHPHcXHqHH-HH9v}bEfDEEuH=(HEHEHxuHEt HEHxH};]~H=菕H]H]UHHH]UHHd$H}HuHHEHEH]UHHd$H}HuHH]UHHd$H}HuHUHoH]UHHd$H}HuHUH?H]UHHd$H}HuHUHH]UHHd$H}HuUHH]UHHd$H}HuHUHH]UHHd$H}HuHUHH]UHHd$H}HuHSH]UHHd$H]LeLmLuH}HuHUH@LuHmHHmL MtM,$L菙HLAEEH]LeLmLuH]UHHd$H}HuUH E EH]UHHd$H}HuHUHMH [H]UHHd$H}HuHUHMH +H]UHHd$H}HuH(H4mHHEEH]UHHd$H}HuHUHMLELMH0H]UHHd$H}HuHH]UHHd$H}HuHUH OHEHEH]UHHd$H}HuHH]UHHd$H]LeLmLuL}H}HuHUH@HEILuHYkHHOkL MtI$ILAHLLAH]LeLmLuL}H]UHHd$H}HuHCEEH]UHHd$H]LeLmLuL}H}HuHUHHHEH菲IHEIH~jHHtjL MtI$ILfHLLAEEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHUHHKHEH߱IHEIHiHHiL MtI$IL趕HLLAEEH]LeLmLuL}H]UHHd$H}HuHUH EEH]UHH$PHPLXL`LhLpH}HuHUHVHEHUHu蜣HāHcHxrL}LuH]LeMtML諔HLLA0E}u0H]HtH[HH-HH9vHE;H}HxHt豧EHPLXL`LhLpH]UHHd$H}HuUMDEH(9H]UHHd$H}HuHUHMDEH(HEHEH]UHHd$H}HuUMDEDMH8EEH]UHHd$H}HuHUH EEH]UHHd$H}HuHSHEEEH]UHHd$H}HuHH]UHHd$H}HuHUMDEH(H]UHHd$H]LeLmH}HuH(LmLeMtI$H7L@LmLeMtjI$HLH]LeLmH]UHHd$H}HuUMDEDMH0H]UHHd$H}HuUHH]UHHd$H}HuHUMDELMH0H]UHHd$H}HuHH]UHHd$H}HuHUHOH]UHHd$H}HuHUHH]UHHd$H}HuHUHH]UHHd$H}HuUMH H]UHHd$H}HuUMH H]UHHd$H}HuHUH_H]UHHd$H}HuH3H]UHHd$H]LeLmH}HuUMH8LmLeMtI$H聏L@H]LeLmH]UHHd$H}HuHUMDEDMH8EEH]UHHd$H}HuUMH(MEEH]UHHd$H}HuH#H]UHHd$H}HuHUMH(EEH]UHHd$H}HuHUMDEDMH8EEH]UHH=u,'tHH5yH=.H]UHH@=yu't H=zUH]UHH=Iu,'tHH5{H=;~H]UHH= u,^'tHH5R}H=rNׇH]UHH`=ɇu >'H]UHH0=u 'H]UHHd$H}HuHUHUHEHH}HEHH=qtH}gHUHHHEH85EHE}tHuHEH8H]UHHd$H}uHEHtHEHuOG uH}a)H]UHHd$H]UHHd$H=?u3H=VmH*HuHH5&)H HH]UHHd$H}H}HEHEHEHEz)H`HZ$/YHD$%YHD$H}HHEH8H+MLuAH=m1%'EHEHǀ8HEЋUĉHHHHHHHeHXH'HHiHHHH]UHHd$H]H}HuHHEH藬H} 艬H} 苬HEHXxCCH} CH}!CH}uCH#u8uHu8r{u {~CCCC HC HC(C0C4H}bH]H]UHHd$rH !H]UHHd$H}>&EHEHE胸t7HUHE耸H}@HE胸tBEEH]UHHd$H}HHIXHH}8H}1'HEHxPƃ HEHxP4H}舻HEHt HE@Pu1HEHxP11NHEHxXtHEH@XHxP11NH]UHHd$H]H}HHXx{0t{05C0H}HHWH]H]UHHd$H}HuHH}HWHH]UHHd$H}HuH}tH}^$H]UHHd$H}HuH7$H]UHHd$H}HuHEH^H}@0H} #H]UHHd$H}HuHEHH}@0H}I #H]UHHd$H]H}HuH}u HEHHH5mH'HEHUHEƀH}@0 H]H]UHHd$H}\HEHUH}1H5m1BEH]UHHd$H}n\HEEHu8u$Hu8 vHUH}1H5m1EH]UHHd$H}\HEEHu8u$H u8 vHUH}1H5bm1EH]UHH$HPLXH}@uHDž`HDžhHDžpHDžxHDžHDžHDžHDžHDžHXHH+qHcHQH}u=HH5mH.H}H}AHxH}ypHEHXxH}R tptC5{{t{{~ptcH{(tOH}tHHxt>C D$CD$C$HEHxPHxHHD E11HS([CC5H}aC{tu {4t{j{t {ZHEHxPKHx=p'H{(u3HEHxPt({~"{ ~HEHxPS s1\HC(H{(t^H}tWHxtM{~G{ ~AC D$CD$$HEHPPCgD@HxHHE1ɋ H{(xZHxt5HEHxPt*{~${ ~DK DCKHs H?HxHfHHHEHpPHH=HHH{ @HHHHH?mH3HTHHH/mHsHx#HxHHmHsHpHpHH mHs HhHhHH1ɺHHHHuH`H`HhIHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HHD$HQmHD$HHD$H9mH$LLGmHHH5RmLzCC5 H}{{{4t ts{0~{t3HcKHHVUUUUUUUHH?HHH5HU*C0EHcKHVUUUUUUUHH?HHH5HU*C0{0t{0_,C0ÐH`Hh HpHxHHHHHHHt֑HPLXH]UHH$PH}HuUMDEDMHEHxH}%H}H H},HUHh葌HjHcH`u/EЉ$HEH@HxPEgD@DM؋MHu\GwH}1+H`HtH]UHHd$H]H}HueHH5#mHHEƀH}@0:H]H]UHHd$H]H}uUHMH}u HH5mHrHEHXxCE܄t HuH}cC;EuC ;Et$H{(t H{(cZHC(ECEC HEHC CC5}t H}H]H]UHHd$H]H}HuUHH5mHTHEHXx{tCHuH}{0t{0t)C0H{(tH{(YHC(HC H]H]UHHd$H]H}HHXx{5uCgPH}DC K3)&C5H]H]UHHd$H}ήHEHtHExX~EEEH]UHHd$H]H}uUH}u-HH5mHeHEHXx;EuC;EtNCEt HuH}{EECCC5{0t{0*(C0}t H}4H]H]UHHd$H]H}HuHUH}u{HH5mHHEHU@xHEHU@|H]H]UHHd$H]H}@uH}uHH5mH HUEH]H]UHHd$H]H}HuH}uϫHH5mHmHEHUH]H]UHHd$H]H}HuH}DHE)THH} HH貔t:HEH莙tHEHHEHEHEHuH}(2EH]H]UHHd$H}Hu2H]UHHd$H}H}HH5HHEHHH]UHHd$H}HuHH}H}H]UHHd$H`H8uAH=m莓HGHH=H8u*HH5x#HHHHH]UHHd$H116HEHEH1*HUHHEHH}H5mY HEHHUH5m> HEH'HEHH}QHEH]UHHd$H]H}uUHMH}uIHH5mHHEHHMUuH]H]UHHd$H]H}HuHH5mHHEHaH]H]UHHd$H]H}Hu襨HH5mHCHEHH]H]UHHd$H]H}HuH}uOHH5mHHEHHuH]H]UHHd$H]H}HuHH5mHHEHQH]H]UHHd$H]H}uUH}u蝧HH5{mH;HEHUu#H]H]UHHd$H]H}HuHUH}u;HH5imHHEHHUHuoH]H]UHHd$H]H}@uH}uߦHH5]mH}HEH@uwH]H]UHHd$H]H}HuH}uHH5UmHHEHHugH]H]UHHCH]UHHd$EEMHEED }rH F_HE@_HEHHwCH}CHSDHH]UHHxH8t HxH8HxH814HxHHxHxH=x1H=x1H]UHHd$@}HuHUMDEDMHUH}sHUH}s$HEȊUHEHxHUssHEHxHU]sHEȊUP!HEȊU؈P"HEȊUЈP#HuHDH8|H]UHHd$H]H|DH8Ã|m1E0E0H`mH5YmE0E0HHmH59mE0E0H8mH5mME0AHmH5mwE0E0HmH5mWE0E0HmH5m7E0E0HmH5mE0AHhmH5mE0AHHmH5mE0E0HmH59mE0E0HxmH5mE0E0H`mH5mwE0E0HHmH5mWE0E0H0mH5m7E0E0HmH5mE0E0HmH5AmE0E0HmH5YmE0E0HmH5mE0E0HmH5mE0E0HmH5mwE0E0HmH5mWE0E0HpmH5m7E0E0HXmH5mE0E0H@mH5AmE0E0H`mH5!mE0E0HmH59mE0E0HmH5mE0AHmH5mwE0E0HmH5mWE0E0HmH5m7E0E0HmH5mE0E0HhmH5ymE0AH`mH5amE0E0HmH5ImE0E0HmH5mE0E0HmH5mwE0E0HmH5mWE0E0HhmH5m7E0E0H`mH5am E0E0HmH5Am E0E0HmH5!m E0E0HmH5m E0E0HmH5m E0E0H mH5mwE0E0HmH5mWH]UHH$H}HuHUHMH}uHEHUHRhHEH}6HUHuyHWHcHxHEHEHtH@HxHUHBHEHxHu}HEHtH@HxHUHBHEHxHuNHEH}tH}tH}HEHB|HxHtlH`H xHWHcHu#H}tHuH}HEHP`{u}{HHt~~HEH]UHHd$H}HuH~HEHUHHHEHxHEH@HEHxHEH@H}1dH}tH}tH}HEHPpH]UH7H]UHH=npH=ndH=nXH5vH=oUH]UHHd$HEHUHuwHUHcHUug=}SHuH-H8xH}H5mHtH}H5mHu : .='E>zH}HEHt{EH]UHH$ H}HuHUH}uHEHUHRhHEH}EHUHuvHTHcHUHEHE@H}_HUB HUHEH@HBHUHE@BHUHE@BHUHE@B HUHE@B$HUHEf@0fB(HEH}tH}tH}HEHyHEHtlHhH(uHSHcH u#H}tHuH}HEHP`x:zxH Ht{_{HEH]UHHd$H}HuH7HU;B uHHEHUH@H;Bu6HEHU@:Bu&HEHU@;BuHEHU@$;BuEEEH]UHHd$H}H@H]UHHd$H}HhHExu H}`H]UHH$`H}HuHEHUHuRtHzRHcHUH}HuH=zXHEHEfDHEH@HEH}t HEHx uH}tHUHxwH;HEHEHp H}[HEH@HEHtJHEHx t?HEH@ HhH>mHpHEHxHhH}1ɺH}uH}݆xvH}HEHtwH]UHHd$H~1ҾH\~~~IKH=x7JH=b:1ҾDJ_eH*H/EEEH86H}rH]UHH]UHHd$H}HtHEEEEH]UHHd$H}HtHEEEEH]UHHd$H} HH]UHHd$H} HH]UHHd$H}Gh%H]UHHd$H}HuHEHUH@(HH]UHHd$H}HuHEH@(HEHtH}tHUHEHEH]UHHd$H}H]UHHd$H]H}@uHE}t HV}HE HY}HEH}tLHE؋@gX|5EEEH}HEHuH}u ;]HEHEH]H]UHHd$H]H}@u@H}@H}Ⱦ,UHuH}H}tHuH}1H}uH}uH}u H}HUH}1 8H}t+H}HuhHcHH?HHH HUH}t+H}HugHcHH?HHH HU؉H}t+H}HugHcHH?HHH HUH}t+H}HuqgHcHH?HHH HUH]UHx=xu xH]UHH$HEHEHUHukHIHcHU-Tx==xu H=LmO=8xEx}tkH}HcEHEHHH}Ж1HH}01H}aHU1H5mH}H} nH}dH}[HEHt}oH]UHH$0H}HuHDž0HDž8HDž@HDžHHUHu^jHHHcHUH}uH}H5m0HĿmHPHE0HHksHHHXHmH`HEpH@HEH@HDž8HuH0H0HPHDžH HuH(H(H`HDžX H8H}H5m輫H}HEH`HDžXHX1H5mH(聫H(HEH0H}1H}[HuH=DGHEHH@HmHHHEH@ HPHmHXHEH8H SH 1H H H`H@H}1ɺiHEHHHmHHEH8H RH 1H H HHH}1ɺtHuH=Q8F:H}H}迖 H}nHEH;EuHEH0H}1HmwHEHPHDžHHuH0CH0H`HDžX HHH5_mH(蛩H(HEH0H}1H}y{HEH;EuHEH0H}1HCmH}]HEHtBHEH@H;Eu4HEH0H}1H:mHEH0H}1HGmcH H(H0HhHtdH]UHH$HH}HuHEHDž HDž(HUHp_H=HcHhH}HunH}H}5E܅tt+t8tEtRt_lH}H5wmbjH}H5mPXH}H5m>FH}H5m,4H}H5m"H}H5mH}H5˷mHEHHPHѷmHXHEH`HPH}1ɺxHHEH0H豴E܃HEHuH}HH}tiHEHEHEHH0H^mH8HuH(H(H@HZmHHH0H}1ɺ_HEHH0HEmH8HuH(lH(H@HmHHH0H}1ɺcHUHuH}3HEHH@HmHHE؉<H(HHc<1H(H( 01H(H(HPHmHXEԉ<H(HHc<蕈1H(H 01H H H`H@H}1ɺ[_H H(H}HhHt$aHH]UHH$`H}HuHDžhHUHu\HG:HcHUH}H5mH}uHEH0H}1H]mHEHHpHmHxHEHpHhs HhHEHmHEHpH}1ɺ6HEHHpHmHxHEHpTHh HhHEH4mHEHpH}1ɺHEHHpHDmHxHEHHhHhHEHԴmHEHpH}1ɺyHEHHpH mHxHEHpHhfiHhHEHtmHEHpH}1ɺHEHHxHԴmHEHEHHhiHhHEHxH}1ɺHEH0H}1Hm]HhmHEHt^H]UHH$`H}HuHDžhHUHuYH7HcHUiH}H5-mhH}uHEH0H}1HͮmxHEHHpHmHxHEHp1HhHhHEHmHEHpH}1ɺHEHHpHmHxHEHpHHhHhHEHmHEHpH}1ɺGHEHHpHҳmHxHEHp 1HhHhHEH;mHEHpH}1ɺHEH0H}1H̲m?:[HhHEHt\H]UHH$`H}HuHDžhHEHUHuWH5HcHUH}uH}H5myH} H1H}HUH}1H5ܲmwHEHHpHmHxH}rdHdHHcd譂1HdHh01Hh8HhHEHpH}1ɺvHEHHpHqmHxH}dHhHHcd1HhHh'01HhHhHEHpH}1ɺHEHHpHmHxH}dHhHHcd苁1HhHh01HhHhHEHpH}1ɺTHEHHpHmHxH}_dHhHHcd1HhHh01HhHhHEHpH}1ɺHEHHpH.mHxH}ndHhHHcdi1HhHht01HhHhHEHpH}1ɺ2WHhH}HEHt YH]UHHd$H}HuH}H5mH}uHEH0H}1Hm/H}dtHEH0H}1HAmH}dtHEH0H}1H;mH}dtHEH0H}1H5mH}dtHEH0H}1H/mH}dtHEH0H}1H)mlH}setHEH0H}1H#mFH}]dtHEH0H}1Hm H}gctHEH0H}1HmH}!etHEH0H}1HmH}etHEH0H}1H mH}5etHEH0H}1HmHEH0H}1HmoH]UHH$H}HuHuH}H5mHmHHEpHK{HHH~mHHEpH{HHHQmHHEpHzHHHHDHH}1H]UHH$PH}HuHDžXHDž`HUHuPH /HcHU%H}1H}H}HEHuH}H5mHEHHhH[mHpHE苰H`YH`HxHhH}1ɺHEHHEHuHEH0H}1HmH} +rH}bH} RH}BH}2H}"H}1hHH5̣mHdH]H]UHH$pH}Hu؉UЉMDEDMH}eHE(HH}Uu1HU(HHE(H8HEH1H}1EHuH}(E$EgDHHE(H8HuE11ɺHEHxHEH@Hx(ME}HcEH؉EHcEH؉EHcH!HH!H EHcH HH!кH!H HMHEH@Hx(UuHEH@Hp(H}HcUHHcuHHEH@Hx(D$D$$HE(H8DE MHUHuE1 H}ZHE(H0H}UȋuH}vH]UHH$pH]H}u؉UЉMDELMHEH}CHUHuH}HcEHcUHHcUH9~H5mHHcEHcUHHcUH9~H5mH$ED$EȉD$H}DEЋMHuH}E1荍HEHuH5mH5H}H},U9t"H5mHH}HE[$ED$EȉD$DEЋMH}E1ɲ1HEHHH}HHHH}EHEH]H]UHHd$H}HuHUHEHUHB|CE@EHUzuHUzuHU:uHUBHEHE;EH]UHH$pHxLeH}HuHEHUHu@HHcHUu6H}kHU1H5fmH}H]dIH3L辖CH}0HEHtREHxLeH]UHHd$H}uHUMDEDMEHEHHHEPHHE H$LMDEMȋUЋuH}HEMU0u(H}HEH}H}uH5ğmH}8t7H}H}OHEH}BH}uH5mHl]}@t4H}H}1HEH}H}uH5JmH2#HUPHuHH}ZH}EEH]UHH$pHxLeH}HuHEHUHu?H/HcHUu6H}{HU1H5vmH}H],bIH3LΔAH}@HEHtbCHxLeH]UHH$H@}ЉuȈUHMDEDM}H}u;EH}{E EE$EH=HxHEMHUuH}}5}+HE@HEHE@LEHH!¸H!HUH}[XHxHttHx#NtdHx@DdHx@@`HcH!HH!H dHcH HH!кH!H HM}t-HcEHcUH)HH?HHHUHcJ@HcUH)HȉE(}t-HcEHcUH)HH?HHHUHcJDHcUH)HȉE0H}<HE}EdE`E0LE(HPLT`Xd\HPHhHXHpHhH}p D$ D$$ED$ED$H}蠊HHIDEMU0u(H}\fHuH}JH}'H@H]UHHd$}HuD$ D$HEH$HEHD$HE HD$HMȋ}AA01H]UHHd$H}G6EHE@4;EveEH]UHHd$H}HuHEH}u H}H}uH}H} H}uH}H} HUHuH}Uȋu̹1HEHHED$D$$HUHuH}E1E11H}D$D$$HUHuH}E1E11H}yHEH]UHHd$H]H}HuHEH}u H}H}u/HEx@u HEH@PHEH}H}HE؃x@t\HH5mH蚏\H}tHEx@uHEHxPHEHxHHUHuPUȋu̹1.HEHbHEHǾ D$D$$HEHPHHuH}E1E11H}DHEHxPHUHuUȋu̹1HEHHED$D$$HEHPPHuH}E1E11H}D$D$$HEHPHHuH}E1E11H}HEH]H]UHH$PHH}HuHUHDžH0H7HHcH(HDžxH}DžDžDžDžHHhHHpHtHpH}C HhHHpHHuHUHXHLU`X)ЉTd\)ЉPHXH`HsAHHZHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$M1M11HH5smH;TP|yPT1HxHHHPD$TD$\$DXLEHHHx11( HH8H HHt*:HxHH]UHHd$H}HuUH}H}HEЃx HEHEEHcUH9~EEE)EjHEEEU ЈEE3U ЈEEUU HUmHE}wEEmb@HEE%U ЉE%3333U ЉE%UUUUU⪪ HUmHE}ifHEEEU ЈEE3U ЈEEUU HUmHE}wH]UHHd$}%U fEE%U fEE%U fEHHu1HEUH]UHHd$H}Hu EZH}|t EDHuH}rH}9HEHuH}t EEH}EH]UHH$H}HuHDžHDžHDžHDžHDžHUHu32H[HcHUxH}Hu@ HuH}(HEHHHkmH E H HHc d]1H Ho01HHH(H:mH0E䉅 HHHc \1HH01H膿HH8HmH@E艅 HHHc \1HH蝪01HHHHHmHPE쉅 HHHc )\1HH401H贾HHXH?mH`HِmHhH} HHHc [1HH跩01H7HHpHmHxHH}1ɺ d2H#HH HHHEHt4H]UHHd$H}HuEE؋EE܋EU)ЉEEU)ЉEH}H]UHHd$H}H@t7HEHxt$HEHpHEHxHE`H]UHHd$H}uHE;EtH}|HEUH]UHHd$H]LeH}HuH@HE8EHEHXDeAD=v_AAfDcDeAAD=v_AAfDcDeAAD=vk_AAfDcHUHBHEHpHEHx)HEHH]LeH]UHHd$H}HHxpHUHEHH]UHHd$H}uUMH}HEHEErZttt't5DHEH`HE4HEH@HE$H}H0HEH};H0HEH}HEЁ8u }t H>HHEЋ==\=u=`= t?=tR=t1=|N=~==t6=t/=t(=t=u$}t HHHHH]UHHd$H}HHpHEHx/HExtHEH@HpHEHx(HEHx1苫HEH@HpHEHx°H]UHH$ H}HHxHEH@HHEH@Ћ0H H}H H}E}t/9HHusuHuUH}uHEHx迪HExtHuHEHxHuHEHxE~tpv/iH}tbUЋuHEHxHuHEHxHEHx@Hu`uH}TEuHEHxHHuH}kEH]UHHd$H}uH}3HEHE}u?HEHxHHuHEpH}tHEHx@Hu蜥H}3kEH]UHHd$H}uH}HEHu E HE@EEH]UHHd$H}uH}HEHu E HEEEH]UHHd$H]H}HuUgXEEEH}t uH}HUHcEHPU܊PU؊UUM M ʉUH}{uUuH};]H]H]UHH$@HHLPH}HuHUMDELMHDžpHDž`HHA"HiHcHEE@uH}/H@Ht@HEH@XHEHH}苼u HEHxXuHEH8HEH0HDžHHDžXHDžPHH}4tHEHHXHt]HX>HPHH=t7HPHHHXH;EtHXH8HHH0@uH}軰H@HHHp HHcHhH8H}1Ҿ HuH}HWDždƅlHEx:/EHEf@0fEftf}wEH@H<uDžh[EH@Hf fMDEfEf%@t EE0tEEEEfEf%t DždEtEl#ElluLfEf%uEl2E%=lHPH=1tƅllu Et d Eh}fEfElMHHV/HЋEd hHcHEH u9uH0)HUH0HtfEf;EtH}}H fEfElMHH.HЋEd @d hHcHEHEuH0(HUH0HtfEf;EtH}}ƅ(}HsH8tEHfH0H` H`H}H=11Z%H,tE,EEHu1H`H`H89HPHH=aHUHxlHuHPHPH%E̅uHu1H`[H`u H NHxH}6Hu1H`H`HXLpHXHtH[HHH9vMHHXHuH5RL{HpHtH@HHp8HHUBHE@%=uiHEHH HEHPHpf0H HEx uHpff%HUHE@HEHuH}HE@ H E}(H u (?ƅ,HEx uHE,'HK ,(t,uƅ,?,H}1Ҿ d hHcHElMHH*HЋEHEf,fEHUH0H@ uf,f;Etgf}tf}r H MHEHH HEHPuHHEx uHEUHE@HEHuH}sH+H@HhHtHt"SHDžhˊE%EH`Hp HHtEHHLPH]UHHd$H}HxwHEH8HH;t<躖HEHH8HHEH8%<HH[H8SH}*uHEHpH7H8H]UHH$`H}HEHEHUHu^HHcHUH=ymHH}1͒H}贇H5ymHhHEHpHymHxHhH}裋H}H5ym^HEH}IH}@HEHtbEH]UHHd$H}HxHExSHHEH8-HEHx; HEx tHExHEHx1Ҿ HUHEf@fBHElt HE@ HE@HEdHU hHcHUHBHEpHEH0!HEHPHEH0H}xHElt HE@ HE@HEpHEH0,!HEHPHEH0H} 5f>HHEH8賰HEHx HEx HEHx1Ҿ HUHEf@fBHElt HE@ HE@HEdHU hHcHUHBHEH8HEH8H53wmFHEpHEH0 HEHPHEH0H}(_HHEH8覯u=Srw=RD a=T|=U) =arw&=W =` x=b=c =rwUs=krw&}=i T=j P=~ W= =r =w&=^ =M = =2 =r [H=r =rw>M=rw= == =rw&= J= M= '=w #=rwZG=rw&X=K =: =?= = z=rw&= = == =r =rwDI=rw= =| _=k =rw&5=M =< ==! =)rwO=&rw&<= = ='#=( &=0rw&Q=. -=/ =2 2=3y 5EE< f , u,,,,,,,& , v9,, ,,,|,,vHUËẼaAHUHEHEHEHEHEHE~HErHEfHEZHENHEBHE 6HE *HEHE-HEHE.HEHE$HEHE%HEHE&HEHE'HEHE(HEHE!HEHE"HEHE#lHEHE YHE HEFHE-HE3HE$HE HE%HE HE&HEHE'HEHE(HEHE!HEHE"HEHE#HEHEHEHEE-!HUnHEHE [HEjOHEkCHElHE0HEm$HEnHEHE.HEHEHEoE-PHUHEHEHE HEHEHE,HEHE}HE)qHE*eHE+YHEMHE/AHE5HE)HEHEHEHEHEHEHEHEHEHEHE[HE\HEHE]E-NHUHEHE_oHEHE\HEHEIHEHE6HEHE#HEHEHEHEHEHEHEHEHEHEHEHEHEHEHEHEHEHExHEHEeHEHERHEHE?HEHE,HEHEE-)!HHcHHEXHECHEZHEHHEFHEMHEJHEEHEHEPyHEOmHEaHEUHEVIHE=HES1HEA%HEWHEQ HEHEHEUHEYHETHERHEHEGHELHEKHEIHE}HENqHEDeE=W-LHMUH{@0E-!HHcHHEAHEBHEGHEDHEEHEZHEHHEUHEIHEKHELHEM}HENqHEJeHEO\HEPSHERJHESAHEW8HET/HEY&HEFHEXHEC HEVH]UHHd$H]LeH=2t^H)@Å|4EfDEEH=VIL};]H=mHH=t^H@gX|5EEEH=QVIL6};]H=HzH]LeH]UHHH8t'HH0HH8趻HHH]UHHd$H}@uHEUHkDH HH4HH]UHHd$}HEEfEEHk H<tmEHk H|t9EHk HE!!UHk HkHcT H9u(EEEHk HJE!tEE}oEH]UHHd$H}EHRmH}HƹHHuH;:uH8zH=|OE@EH HcUH Hcu@|ԊT@ tHuHcMЋTU;EEH]UHHd$H}HtWHEHxxtLHEH@xHExH~HEpHH}HEHHExL~HEpLH}HEHH]UHHd$H]H}H2H}!HEHxxH}1"H}1臡HuH=dgH}&HEHH5Qm#HEHt H}1H}H5QmHEHtlHE@gX|BEfE܃E܉H}RHEH8OHEHH}5;]H}~H}1H5QmH}0XHEHtRHxH]UHHd$H}HuHUHEHUHuHHPHEHpH}BH]UHHd$H}HuH8t HE8cuHHEHHuH}HEH婾HHEH]UHHd$H}HEH}HEH=MH t#H}H}HEHuH=+XtH}9tfH}HEWHuH=Ut#H}艺t6HEHUHE HuH= ot HEH@xHEHEHEH}HEH]UHHd$H}Hu*HWJmH=˧HH5HH}H5IJm~HEHuHEHEHEH]UHHd$H}HuH}u*H!JmH=U HH5HH}u*H(JmH=$HH5HHEH;Eu*H,JmH=HH5HHEH@XH;Eu*H4JmH=HH5HHUH}H52ImmhH]UHHd$H}Hu*HJmH=[&HH5H$H} HEHtHEH@HEHEH}u!H}H5Im5}HEHuHEHEHEH]UHHd$H}HuH}u*HImH=HH5H~H}% HEHHEHBHUH}H5OImRgH]UHHd$H}HuH}u*HqImH=5HH5HH}u*HpImH=HH5HH}HEHHEHH]UHHd$H}Hu*HOImH=vHH5HtH}HEHt HEHHEHEHEH]UHHd$H}H}wHEHuHEH@XHEH}uHEHEH]UHHd$@}nHE}tH}HEH]UHHd$H]H}HuUM HH}4}tMUHuH}譍CqHH} }tMUHuH}yHH5HmH88H]H]UHHd$H}HuUMqHH}|tMUHuH}_2XHH}l|tMUHuH}kH H]UHH$HH}HDžHDž HxH8KHsHcH0HEHpH H H(HEHpHHHHHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$L(LFmHHFmH5FmHf9qHOH OH0HtHH]UHHd$H}HEH}HEHH=|?tHEHHEHEH]UHHd$H}HEHt H},HEHEH]UHHd$H}HuHEH@pHE'HEH8tHEHHH;EtHEH@HEH}uHEH]UHHd$H}HHxpbH]UHHd$H}HHH]UHHd$H}HuHUHEH;EHEH@H;EHuH}u} H=SEm^lH}tHuH}u} H=oEm:lHEHHEHuH}被H}tHuH}uEEUHuH}H]UHHd$H}uUE;E(HEHEEHEH@HEEE;E|HEHxtHEHPHEH@HBHEHxtHEHPHEH@HBHEH@HEH@}uHEHUHPHUHEHBEHEHE!fDHEHxt!HEH@HE؃EHcEHHcUH9HUHEHBHUHEH@HBHEHUHPHEHxtHEH@HUHPH]UHHd$H}HtU)HH}=wtHEHHE HEH@PHEH}u(H}tH}rHE H=CmjHEH]UHHd$H}Hu HE1#HEH1ҾHUH}H5XCm^HEH]UHHd$H}HuHUH}HEHtLHUHEHHEƀHEHUHPHUHE@B,HUHE@ B0HEHU@8B(HEH]UHHd$H}Hu HE H}[HEHH5BmhsHEHEH]UHHd$H}Hu HE=H} HEHH5=BmsHEHuH}HEHHEHBHEH]UHHd$H}HHEH5AmHrHEHteHEHx8t HEHx8VHEHx`tHEx\t HEHx`t H}1H5Am]H}1ҾH})!H]UHHd$H}HEHtjHEH0H=o2tJHEH8H}t6H}H;Eu'H}1Ҿ {EHEH8HuDH}H}hH]UHHd$H}HuE>H}HEHt HEHxuEHEHxH5@mQqHEEH]UHHd$H}tH}HE1HuH}H]UHHd$H}EH}t,HEH@xHEEHEH@HEH}uEH]UHHd$H}HuHuHEHEH}H}_  H}uHEHHEHH}?HEH}2HEHH}HEHt>H}H5^?mpHEH}H5Z?mpHEH}H5V?moHEHEHEHEHuH}v`HEHt*H}H5>moHEH}H5?moHEHEHEHkHH H]UHHd$H}HG8HEHxcHUHBHEHx聜HEHx1mHEHxoHEǀTHEǀXHEHxHuؑHEHPHEHxH5>m\YH= >mnHUHBHEHPHEHxH5 >m'YHEHxwHEHpHEHxHEHxwHEHHHHEHxH5=mHEHpHEHxE111 }:HEHxt/HEHx1H5K=mXHEHxHEH@H]UHHd$H}HEHUHuIHqHcHUuRHEHxHu4HEHpHUHH8]HEHxtHEHpHUH\H8\H}fDHEHtH]UHHd$H}EHH!¸H!HUHEHxHEH@H HEHxHEH@H EHEH@Hp}|jHEH@H3;E~QHEH@HxHEH@苰HEH@H7HE}~ }~EE}HEHxtUuHEHx!H=5m谕HUHBHEHHHyHEHxH5z;mUHEHPHEHxH5:mYVUuHEHxHEHx uHEHpHEHxHEHpHEHx1mHEHxtUuHEHx_H=4mHUHBHEHHHHEHxH5:mUuHEHxHEHPHEHxH5:mUHEHxGtHEHpHEHx2HEHpHEHx1諌tHEHxt/HEHxAHEHx1H59mUHEH@HEHxt/HEHxHEHx1H5v9mTHEH@H]UHHd$H}HuHEHHEH}HEHH}{HEHtH}H59miHEHEHUHuḢH8[HEHuHH8A Ã{EfEEHQvH8>HEH;EtIH}tHE@HE@HE@H]UHHd$H]H}Hu H=!mFH}HEHt4HExt*HEHxtHH5!mHHE@H]H]UHHd$H}nH}HHuH]UHHd$H}HuUMLEH}tH}tH}u H=!mEH}HEHt6HEЋ;Eu"HEЋ@;EuHEHxHu:7Ht,H}fUfHuH}HH]UHHd$H}HuHE>HE<HuH} H]UHHd$H}HufUfMHEH5mHBHEHHEHxxH5m)H1sHEH%HF4H}DHUH}H5Km-HNHHH}蕿HHuuH}KnHEHxxH5m:)HuH}H}1H5m,8H%H4H}DHUHuHHHH]UHHd$H}H=mGkHEH+HH1l(HlrHEHxHUH5gm+HEHx蕾HHutHEHPHEHpH}H}JH]UHHd$H}HHxHEH@HzHEHxHUHRfHH8uHEHxcHHHHEHxEHHHEH@HEHEHEHxHUH5nm*H]UHH$0H0L8H}HEHDžPHUHx蚧H…HcHpHExHUHu;HExHUHu&f}tcHEHx葝HtKHEHxHHt/;HHEHx[IL@HHAuEEHEHxH5hm#?HE}6uUH}5 f}tQHEHXH[mH`uUHP HPHhHXH}1ɺH}uIH}\hHEHEHxHUH5m0)HEHxӻHHuqH}G HuH}_H}@H}Ht,H}۹HHl(HloOH}诹HHlHlqo&H}tH}4HEHx1H5mi(蔨HPH}HpHtH0L8H]UHHd$H}HuHUHtZH}tSHEH5dmH<=HEHEHPxHuHE[H8,H}$%Hص4H}L?H]UHHd$H}HHxHEH@HH]UHHd$H}uk\HEHFHEH]UHHd$H}HuHEH=H輈HEHEHEJHH}>u11HEHxpGXEHE耸uHEHW} ElHEH9EW@uH}$HEHcUHHcEH9EEEHuH}E1JEE;E|JHEHxpEgp&H8H}1H5 m&HfHxHuвHfmE;EHEHxpDWE;Et10HE耸tH}tEEHEH@pHEEHEHHHEHEHxEEEHuH}E1E1nbHUЋuH}.EHEH@HEHu }t1H}CH}nH]UHH$H}HuHUEHEx0HE@PHE耸H}H5n m9lwHEH;l[HEHl?xH;H}1Ҿ 赊Hx1ҾH袊Hp1Ҿ菊@%HpHEHMPLADЉXHEHMPHA@ЉTHE@DPHE@@L\P`TdXhHpH\HB(HdHB0HpHcP,HHpHcp(HHpHx(UHpH(HUHR0HUHR0PPHUHR0)HHUHR0)H HplBHpHB(HEHB0HEHxH}-PHpHB H}HEHpHEE+H0H苟H}HcHuHuH}8E茢HpH@ HxHHxiHp[HHtڣEH]UHH$0H}uHUHEHUHPܞH}HcHHHuH=ORHEHEHEu,HEH;E~HEHuQHEHEHHEHEHHEHEtHEHH}.%H}tHEHp0H} H}1H}tHE؃xHu H}1 H}H5mEH}t!HUHuHqԽuH}UREuH}H m=RE}vEgPuH}H}>HE؋P H}BHEHu`HP H}H59mlHEHu9xHuHLHMH}H5%m8cH} HHHt٠H]UHHd$H}H]UHHd$H}HH^H:H!uHuH^H8gH]UHHd$H}HH^H:H!uHuHo^H8'H]UHHd$H]H}H=syH HEHEx/HEHcpHH}HEH@ HEEEDHMHcEHHUHHHUHcEHH<$HEHtHuH=|+u H=m(HuHEHMHcEHU؉TE;E}E؉EԃEHEH@HEH}`EHcuHH}HcuHH}1(rHE@|,EEHuHMHcUHHcT;EދEԃ|+E@EHMHcUH}Hcu܋T;EHEpH}HE@gX|$EfE܃E܉H}1;]HE@gX|ZEEHUHcEHDEHEHcU؃,HUHcEHHHMHcE؋4H};]H}cH}ZHEH]H]UHHd$H}HuEfDEHEHHEH}uEH]UHHd$H}HuHUMH}迥HEHǺPHuH} 5HUEЉHEUԉ%HH}2tUH}l~HH}迲HEHt6HEȋ@8E}1EHU)HEȋ@HHEHxXt3HEHxXMt"HEH@XHU@@)HEH@XHU@D)貛HH}F|H}եHEHt2H}3t%HUHuH}~AHEUԉHEUЉ8H}葞HH=XfHEHUHEHU苀H]UHHd$H}HHDH:HnH]UHHd$H}>t*HuHDH8uHuHDH8@H]UHHd$H}HuEQsHH}u2HHEHxXu5HHEHxXtEEEH]UHH$`HhLpH}HEHUHuȀH^HcHU> HH5lHHH5lHޣHH5lH|ǣHH5lHeH}HlHxHEHEH'lHEHx1ɺH}H]kIH3L XHH5lHAHH5GlH*HH5lHHH5lHHH5lHHH5lH螂H}HEHtHhLpH]UHHd$H}u%UEH]UHHd$}}HE1Ҿ HVQEE%ifEE%ifEE%ifEHEHEEEHEUH]UHHd$H]H}uH}U;H}ǑH}>-HEHH]Ext?1O 4H{HtB(H_HtB,H,4CHtBH'HtBHE@hEHLvH8/H,u HExtHEH51ҿKEHUHuVyH~WHcHUvH vH8 /Hu HExt HE^謸觘M\HufTH|lYH lf/zv{}|HEHtHt&h}HEHH5OlHEHpH]UHHd$H}HGHxEEH]UHH$@H}HuUHMH}1Ҿ8PH}H}UH:H<H#:Hx~j腗E2fDHa vH8-d\EHlf/zHH9H@gpH9H8Hdt@vHEH1Ҿ@COHEHEȋUԉHuHo9H8HUH`wH:UHcHXrUH9HHEMHUHuH}btHH}t;H}hHHulHEHt H}H}HEHpHyHuH8H8nH}蕽HXHt{H]UHHd$H]}H8H<t[EH8gX|3E@EUH8HHcEHH<m;]؋UH~8H<H]H]UHHd$H}HuH)HEH}Hu1$H}t H}dH]UHHd$H}HuHU11(HEHEH8u HUHEH11HEHH}E1/H}11oHEHH}@HEH8HUH5-lH}HEH8HuHEH8Hu?H}HEHxxbHEHMH}غH}:HEHtHEHH}H5:l-H}$HEHtHEHPxH}H5lH}$Ht8H1t8HEHxxH)HMH5lgHEHHHMH5lwgHEHxxHHMH5lXgHEHHvHMH5l6gHEHxxH7HMH5tlgHEHxxHHHMH5mlfHEHHHMH53lfHEHHHMH5)lfHEH]UHHd$}HH<H]UHHd$H]H}HEHUHuerHPHcHUH4H8oH4H8H3HHÃ|IEEEH3H8HuH3HHHuH}Gt ;]EtH}IHEHtkvEH]H]UHHd$0荸HEH1Ҿ0ZIHEH]UHHd$H}HH8HEHHxt6HEHHx舁tHEHHxHEHHxb:HEHH8t"HEHH~HEHH84HEH8HEHH]UHHd$Hp2H8HgH8tHgH89HgHH52H8H+2HH|KEEEEH1H8H1HHHEH}}H1H8H1HHEEEH3H}rH]UHHd$}Hm1H8tmEtu1fUHL3HHEHtE}EH+1H8H!1HHUH 3HH}H]UHH$ H H}H0H8H}_E uH0H8H0HHHHUHunHLHcHUu-uH\0H8HR0HHHEH} qHEHt`HpH0CnHkLHcH(u舑HH5lH&AqH(Ht tsuH/H8H/HHH H]UHHd$}H}/H8u HEPEtu1lEHR1H<tEHA1HHHEEHZHH2HH}蒀uDžp11HUHBYHH0H}^u+DžpƅdHEH@HHUHH}Vƅd1ptpHb'H<t1dHEHxHEHxuHUHEH@HB`t:HzpH8uHEHxHEHx'HEHxHIpdHEHx-XHHEHxHHEHx{tGHXHH5lH@HEHpH@E111 HHEHxtMHHEHp\ptSp tJHXHH5liHHHtHEHpHH  HEHxHhHuH5?HEHx"HP1Ҿ9HEHxHPKHEHxHUHH}H5l}uHEHHpdb-HHEHxuUHEHxpu?*HHEHx&*HHEHx&*HHEHx&+H8H(H81HEHp40HHEH8t*HH0H}|tHEH8HUHHEH8HUHuH+"H8H!"HHXptpH #HUHHEHHEHEHxpp HEHxH}<HHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$HUM1M1H lH5-lHeHxt Hx_%ZbHhHHtcHEHH]UHHd$H}HuUMEEEE؋EEHuH}HEH@@H]UHHd$H}HEHE@0{HEHBH=klv HEH*H=Sl^ HEHHMHUHuH}mH} HEH]UHHd$}tu1EH!H<tEH!HH@HEEHH<HEHEH]UHHd$H}HEH}H}E|(uH8H8H.HHH@HEHEH]UHHd$H1HEHt H}QHEH]UHHd$HEH=lHE[H}u 1HEH}tHEHHEH}uH=lHEH}uH=lHEHEH]UHHd$H}1\HEHu 1HEH}t2H}t+HEHHEHtH}HH}1H]UHHd$H}HuH}u SHEHE8uDHEfxuHEfxu HEfxt LMHuH}A1ɺHE0HUH}_H]UHHd$H}HuH}tHEHHuD Hu17H]UHHd$H}uHUH}1Ҿh2HEHEHEHE@$}HMHUHu!fE%UHUfBfE%UHUfBfE%UHUfBE%Ẽ%!H^HcHHEHuzHEH}HEHpHEHtHE@$HUHEHB(HEHHHEHu%HE@$HMHEHPlH@tA~HuH}l HEHuHEH}MHEHpHEHtHE@$HEHUHP(HEHHHEHu%HE@$HMHUHBTHB\AHuH} ?HEHu,HEH}HEH HEHu%HE@$HMHEHPH@ A`HuH}NE̅|Qt?t* tu>HE.HEHE ~HEH}HEHpHEHtHE@$HUHEHB(HEHHHEHu%HE@$HMHUHBTHB\AHuH}pHEHfHEHHEHu+HE@$HMHEHHAHuH}QHEHHEHHEHu+HE@$HMHUHDHLAHuH}Ẽ|(t uHE HEH}rHEH HEHu%HE@$HMHUHBHB A,HuH}cHEHHEHHEHu+HE@$HMHEHDHLAHuH},HEHHEHpHEHu+HE@$HMHEHHA\HuH}J HEH@HEHHEHuXHE@$HEHMHUHHAHMHUHHA AHuH}/HEHHEH`HEHu%HE@$HMHEHPxHAeHuH}VHEHtPHEHHEHu"HE@$HMHUHBlHBtA HuH}DHuH}H]UHHd$H}HuHuHt'HEHxPtHEHxPHuz HEHEHHEH]UHHd$}HuHEHEHEE===]=tf====t>== HEHHEHHEleHEHHEHHEB;HEHXHEHtHEE=t=uHE HEH} HEHHEHEHHEHDHEHEHHEHHE|HhlHEHE H}1DWHEHtHEH\HEHelHEHE H}%EHEH}CH}uHEHEH}tHEH;Et HuH}&HEH]UHHd$H]LeUH.HHEx[EEEEHEHxHu,HEH@HEH]LeH}tLH8E؉E}1EE=~EEE܉E}1EE=~EEHcEغH)HcEH)HUHcUH)HEH;E}HEHEHEH}1HEEHcEغH)HcEH)HUHcEĺH)HUHH;E}HEHEHEH}1HEEHUHEHBHEHB$HE@HEHPHUH@$HEHEHUH]LeH]UHHd$HvHHExXEEEEHEHxHutHEHx1HEHHB@HEHBHHEE؉E}1EE=~EEȋE܉E}1EE=~EEHcEغH)HcEH)HUHcUȸH)HEH;E}HEHEHEH}1HEEHcEغH)HcEH)HUHcE̺H)HUHH;E}HEHEHEH}1HEEHUHEHBHEHB$HE@HEHPHUH@$HEHEHUH]UHHd$@}HH@ HEx]EEEؐEܐHEHxHuHEHxH5lHEHHB@HEHBHHE؋EЉE}1EE=~EEEԉE}1EE=~EEHcEкH)HcEH)HUHcEH)HUHH;E}HEHEHEH}1HEEHcEкH)HcEH)HUHcUĸH)HEH;E}HEHEHEH}1HEEHUHEHBHEHB$HE@}tHEHxH5VlHEHEHxH5DlHEHEHPHB@HEHBHHEHEHP@HUH@HHEHE8}1UHE;U}UUEE}1EEEE;E}EEEHcUHcEH)HcEH)HUHcEHcUH)HEH;E}HEHEHEH}1HEEHcUHcEH)HcEH)HUHcUHcEH)HUHH;E}HEHEHEH}1HEEHEHUH]UHH$PH}HuȉUMDEDMHEEEE=t=t5=t^HEHEH@lHEW HE zHEEHlHE'HEJHEHlHEH}tAED$ ED$ED$ED$HEH$LMLEMUHuH}#E$DMDEMHuH}кH]UHH$`H}~H}VHEH>dHEHtHEH;Et HEHEHEHEHEEHUHxXIH'HcHpHEu%H}tgHEHxPt\HEHxP11;IH} ouE,E,E>HEHx<vQHEHHEHB<;A,u3HEHx0v"HEHHEHA0;B umHE@Pu(HEueHEueEH]UHHd$EH]UHH$0H}HuHUHMEHtH8H}HEH^HEH$HhHD$(HpHD$ HxHD$HEHD$HEHD$H}0H5ϰl:?HHuH}E0A1O>dH}uZ} uTHxvJdEHhHUȋHhHU@HhHU@HhHU@(HEHEHEHEHht Hh:EH]UHHd$H}H}HH}^tHEHHEH}=bHEHHEH@HEHHEHE.HH}H}QrDHEHt6HEHHEHEHxxHuHtHEHHENHEH@xHEHtHEH8t HEHHE&HEH@pHEHtHEH8t HEHHEHEH]UHHd$H}HuHEH=NH E܄t.HE HEHPH}1ɾ2%HEHuH}SHE}tJH}WIH`HEHt0EEEEHUHEHBHEHB HEH]UHHd$H}HuH8cu!HuH}H}HuHHuH}ȹHHuH}HEEH}EH]UHHd$H}HuHEH=Ht6H}OHHHEHHHEHPHE0C%E9HE8ctHuH}RHEEHuH}EEH]UHHd$H}HuHUMDEHEH=IcuHtH}_HEƀ}t"HuH=Lt.E HuH=Lu E}u HEx| HEx } EEcH=,$HEHHEHBHE@HE@ EHE@EHE@EHEEEEEEEEEEEHUHEHBHEHB HUEBHuH}EԋEH]UHHd$H]UHHd$H}HuEH}u'HEHEHHuHEHH EH]UHHd$H}HuHU1H]UHHd$H}HuEH}HEH=RauHtSHEHEHuAH}H@PHEH}EH}EuH}_uH}HE@Pu HuH}Y~EH]UHHd$H]H}HuEH}H}QHEHH58lHEH}THEH[HuH=F t HEHEHEH}*H}ZHEHHU B4EH}uH}rH}QHEH}ZHEH}t@H}t9HEH;Et/H}舴HU B4EHEЋp4H}uH}H}) HEHx`HHuHHuH}sHuH=l&t&HEHH=Tu Hu1^HuH=:_utHEH}EH]H]UHHd$H}HuEHE1Ҿ HEEHuH}MHEEEH]UHHd$H}HuEHE1Ҿ H EEHuH}jMHEEEH]UHHd$H}HuE#HE1HmH}1Ҿ EfEfE9HH}tHEHHEHEHEHuH}LEEH]UHHd$H}HuEHEHEHwH}HEHPtbH} HE:GtHHEFu;H}HEG@ƁH}螱H}EH]UHHd$H}HuEH}u3H}1@$H}1Ҿ EHuH}KEH]UHHd$H}HEE}t+H}vH}=XHEHtHEH0H}dEH]UHHd$H}EH}1H5~l9H}WH0H}EH]UHHd$H}uUHME;EuH}H5Fl豻BH}H5lHEHu)H=_Hu!HEHH}H5l蝵H]UHH$PH}HuUHMLEHDžXHUHhQ2HyHcH`H}HEHEHEH}thHuH=࿃{tTH}HEH( t?Hu1HX耬HXtuHuH}cH}H5(l胺H}H5lHEHt}H}1H5ţl耴H}1~H}HH5ߣlZH}1H5ˣlFq4HXŠH`Ht5H]UHH$@H}HuHDžHHUH`0HHcHXgEH}H50lHtH}1H5l蔳4H}H5ĢlHH}1H}j{HUHuH}1H}HEE;EHu1HH趪HHHPHtHvHPHuH=fGHURjH9|[H}H5glHt H}1H5Pl賲uH}7&HUH}H5.l葲H=Hu$H}1Ҿ EHuH}+G2HHڞHXHt3EH]UHHd$H}uUHM1H]UHH$pH}HuHEHUHx.H HcHpEHEHEH}HuH=p ~H}HEH( tiH}1sHHEHt$H}tH}wHH}1٨H}tH}uH}H5Ҡl@1H}藝HpHt2EH]UHHd$H}HuEHE1H +HuH=lfEDHuH}REEH]UHHd$H}HuEHE1H HH}t`HuH=tLH}t@0H_0HE%tH}t 0@H-EHEHuH}DEH]UHHd$H}@uUHEHxE@ƁHEHx.E@ƁHEHxBHEHxH]UHHd$H}HuHUEHEx0H=l蘥HxHHhHD$HXHD$H\HD$HpH$HEHxPHxE1A1ɺ%H=IlHxH`HD$HXHD$H\HD$HpH$qHHxE1A1ɺtIH`Hh:tH`莞Hh肞|H`qHheHE.HEЋ@~HEЋ@>HEHEHEHfHtHt"Ht0Ht>MHEu@9HEu,%HEuHEHEEHEfEfEfEfEHuH}f7HGit8u*Hht8wHEuH},H耪HuHHH;Eu8HEЋ@t,HEЋ@tHʳuH84HuH8a4EH]UHHd$H}HuEH}迟uH}CHEHH}uHEHH;EuhHuH=J t'H}Su H}CHuH}T5HEEEH]UHHd$H}Hu1H]UHHd$H}HuEHE1Ҿ HEBHuH}1H]UHHd$H}HuHUHEH}HQH}H}H})HHE@ }}}fMmm}mEEHE@}}}fMmm}mEEHcH!HH!H ƋEHcH HH!ȹH!H HEHxOHEH}@)HHu4PHEHEx0*EEfEfEfEfEڋ},HEHEuH}&HuH}m3H}(H茋t[HQH8HQHHt:H}(HH5l蟳HuH}(HǺH5rl-H]UHHd$H}?HEH@HEH@pHExDtHE@DH}H]UHHd$H}@uHUE}SH}HE@PHuH=fqHE\H} ڹttHEx0)EH}s'HEH藕H}VHEHH}yHUH;BEH}}HE@PlHuH=c&tXHE uKHE\sHEH}HHu?HEHE@4slE HEx4%HffEfEfEfEfEEEHEHEfEuH}JHuH}"HEHE@4slEHEx4%HffEfEfEfEfEEEHEHEfEuH}HuH}!HEHEHE@4tt<tXtpHHjcHuMyF Hu0\)@H~u? E1fEfEfEfEҋ}H EHEHE}t(}t}t}t } YH}HEH@H}HEH'HE@PHuH=Hh1%xpHȌHpH)H;pu HDžpHpt-Hp蟈tHpHHh1^H}H&HpjHhHtHRHhHuH5,>Hp耋9HuH=u%HuH=uH}}H&uH}HuH}HEHu]HEx4uSH}@Hvt>H]=H8HS=HHtH} HǺH5yl趉 Hh5vHHtT HEH]UHHd$H}uUEHEHx\| OHǽx%t2HEHx3)HUHǽH@H;BHǽx%t'HEHxuHEH@@PDEHEH|HEHpHEHxHCǽAK=HUBHEHcUH PHEHPȋE t@tuHUE HcH BHUHBHƽ@ |Wt tt2FHEH@H HUHB.HEH@H HUHBHEH@H HUHBEEH]UHHd$H}@uEHEHEH}ǟHHMHUM11rHEDH}G)HEHthHEHH;Et[HEHHEH}1Ҿ E{HEHEfEfEfEfEHuH} HEE}u;HEH;Eu}tH}HxuH}:HEH}KEH]UHHd$H}HuHUEHEH5rlH|HE@Pu&HUHuH}uHUHuH}EH]UHHd$H}H]UHH$pH}HuHUEHEH}H8H}H}HE@ }}}fMmm}mEEHE@}}}fMmm߽xmxEEEEH}HHEHxHu@6HEH}HHu6HEHEx07EHE@4tt<tXtpHHjcHuMFHu0s)HquV EHfEfEfEfEHE@4r!t t te ee}uHEH½@ |-t ttHMȀHMHM}HE@4sHE@4HHH EHEHEuH} HuH}H}5uE_H}tXH}pt7H} HH5slŘHtH} HH5slؗH}H5olEEH]UHHd$H}uUEHUHJHUHrHUHzHE0A7HUBHUEBH]UHHd$H}HuHUEo}HE@PnH}9EHuH=9t*HE苀\sH}ܞt H}/}u H}u75+HuH=uH}H5anl܇EHUHuH}lW5HP5H8HF5HHu EBH}T't5H}@DHEHt HEtH}4HE@PtHEx4uH}@0hEEH]UHHd$H}HuHUEHEH5imlH{HE@PuH}uHUHuH}EH]UHH$PH}HuHUEHEHEHuH}|2H}H}HE@ ۽pٽhٽlfhۭp٭h߽`٭l`EHE@۽`ٽtٽxftۭ`٭t߽X٭xX|HcH!HH!H EHcH HH!кH!H HMHEx(~ EH} HHEHxHu>0HEH} HHu0HEH}1Ҿ0QHE@,ttt(t2E fEx/E fE EfEEfExIfEfEfEfEẺEHEHEfEuH}HuH}HtEEH]UHHd$H}HuEHEH=]olHEH}1ʬEHuH}2EH]UHHd$H}HuEHE@PtH}H5nlELHuH}EH]UHHd$H}HuEHE@PtH}H5nl苃EMHuH}wEH]UHH$pHH}HuHUHDžHDžHDžH`H 8H`HcH;Dž|HuH= nlHuH=܀dHuHHHHuHHH HHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$M1LH #SlHH5=mlH-RH}HEH8HH1HrHH'HHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$M1M11HH5llHRQ1 FH}t0g%tHH}hbH( H}SbHbgHVgHJgHHti|HH]UHH$HH}HuHUHDžHPHNHvHcH)Dž|HuH=̀tQH}=,H}<HpHHhH~Hh[HuHHHHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$M1M11HH5jlH-O6HeHHt|HH]UHHd$H}HuHUHE1ҾHHE@EHE@EHE@EHE@ EHuHUH}H]UHHd$H}HuUHMLEEHEH=H}uHE8 uHE HEHEȃH}ΌEHcUHcEHHEHcH9EEHU+EHcUHcEH)H~UE)HMHuH}H}H5milP}HuH=Et}uHE8 uH}H5:il}EH]UHHd$H}HuHH=5ilHݺEHuH} HEEEH]UHHd$H}HuHH= ilH荺EHuH} HEEEH]UHHd$H}HuHH=hlH=EHuH}9 HEEEH]UHHd$H}HuHH=hlHEHuH} HEEEH]UHHd$H}HuHH=hlH蝹EHuH} HEEEH]UHHd$H}HuHH=mhlHMEHuH}I HEEEH]UHHd$H}HuHH=EhlHEHuH} HEEEH]UHHd$H}HuHH=hlH譸EHuH} HEEEH]UHHd$H}HuHH=glH]EHuH}Y HEEEH]UHHd$H}HuHH=glH EHuH} HEEEH]UHHd$H}HuHH=glH轷EHuH}HEEEH]UHHd$H}HuEHEH=uglHeEHuH}aEH]UHHd$H}1H=ZglH"EHEHEH,H8tHuHH8SY} E*HEHxtHEHxHEPEE}tHuH˱H8Y}E}u@HH8t3HuHH8X|HuHH8ZH}6EH]UHHd$H}HuHUEHE@PtH}H5DflxE HuH}EH]UHHd$H}HuHUEHE@PtH}H5elwE<HuH}EH]UHHd$H}Hd8t8u-H7t8s!HEHtHEH@EEEH]UHHd$@}uUE !HHcH}t EE}t EE}t EE}t EEEEEyEmEaEXEOEF}t E7E.}t EE}u EEEH]UHHd$H}HuEHEH5[lH%HEHtjEHE@0H-E=} fEfEfEHEHEH}EH}‹u@0fEHuH}2EH]UHHd$H}HuEHEH55[lHuHEHtjEHE@0H-E=} fEfEfEHEHEH}EH}@‹u@cfEHuH}EH]UHHd$H]H}uEHUEHEHEH}H蓦H9u EEHEH@`@HHVlf/z#v!HEHP`HEH@`B(\@HEHEH@`H@(HEEf/Ez v HEHE&HEH@`@ f/EzvHEH@`H@ HEEH-E=} fEfEfEHEHE}fEHEH8HuKf}u8HEx"u6fEHEH8Hu#fEHEH8Hu HE@"HEH0H=M utf}tf}uEEH]H]UHHd$H]H}HuHEHEH}ZHH9u EEH}ԇEHEH@`@HHTlf/z#v!HEHP`HEH@`B(\@HEHEH@`H@(HEEf/Ez v HEHE&HEH@`@ f/EzvHEH@`H@ HEEH-E=} fEfEfEHEHEfE}u.HEHHHEHHH;E}u*HEHHHEHHH;EtXHEH8Hu8f}u8HEx"u6fEHEH8HufEHEH8HuHE@"H]H]UHHd$H}HuHUHE@"1H]UHHd$H}HuHUHEH@`H@0HEH}b HEHuHEHxXL HEH}tHEx"uHUEH}1HE@"1H]UHHd$H}HuEHEHEH}H5=VlHEHH}1Ҿ(HExtu EEHE@0H-E=} fEfEfEH}H5]lHEHcEH;EtYHcUH}H5]liHEHEH}EH}‹u@fEHEH8Hu1EEH]UHH$PH}HuHUHEЋ@,vv EEE=r3-tu'HEHAHEHEHxxAHEH]lHHT$f@fD$HEH@`@H<$ ]HEЃx,t HEЃx,uEH\lfWEH}褃XEEHEH@`H@ HEEf/Ez vEEEHEHP`HEH@`B(\@HEEf/Ez sEEEH-E=} fEfEfEHEHEfEHEH8HuHEEċEH]UHHd$H}HuHUEH}{st t E EHEf@0fEf=vY}EEHEHE@EHEHEH@(HEHEHuH=Q[lEH@H ffE܊DEހ}uJ}XHE@EHEHEH@(HEHEHuH=K[l.H} HEx2EfEf%@t EE0tE݈EE܈Eu؊UH}t uHHE@=-tt(t5tBtOt\jUԾHzXUԾHhFUԾHV4UԾHD"UԾH2UԾH EẼEH@H:EEH@HD:EEH@HD:EtnEHEEЋEH@H4UHEH@HftUHvEH@HHtUHX}6}t7fEf%@t-0ҾH/0ҾH 0ҾHEH]UHHd$H}uU}tB}t+HcEHHEHx=J}$HcuHEHxGHcuHEHxKH]UHHd$H}uHcHEHxK}uHcHEHx]GH]UHHd$H}HuEHEH=XlH5ECHuH}!EH]UHH$HLH}HuUMLEDMHEHEHEH5bHHHDž H0HHHcHEHEHx ~HHH赽HcHHDžH5HH}茰H=P-y[HEHhH(HGHcHUHEHp 1H YH H}HEH8H}HEHà EfEăEĉHuH}HEHH}HuHH3H`H5Vlt H`u@HHH5Vlu)LeLMLH}t HuH}NH}tRHEHtH@HHHH5HH}LeH}趭IWH}YH]UHHd$H}HuHHUHHEHcuH}\HuUH}HEHHEHpDEHMH}VH}H]UHH$`H`H}HuUMLEHEHxEEDEHEMHHKH;EHHcH<H=\0yHEHUHpHHcHhHEX]оH=Ql\H9uEHH|]оH=Plw\H9uEHH䚽|u\]оH=PlI\H9uEHH| u.]оH=Pl\H9u)EHH| tH=Pl[EЋEHH/H|uHUȋEHH H}HEHHH}1HEH]оH=&Pl[H9u*H]H=Olg[H;CuHuH} HuH}EpH}gHhHtHtHDžh }H`H]UHHd$H]H}HuHUEEHEMHPHژH;HH8UHHH=.H]UHHd$H}HH= HQH]UHHd$H}HGHEHUHEH@HBH}HEH@(H]UHHd$H}HuH8t1]HEHU@;B|&HE@HcHUHcRHHUHcRH9~&HUHEH@HBHUHEHBHE@H}kHEH@(HEhH]UHHd$H}HHxt&HEH@HEHUHEH@HBHEhpHEHEH@ H}1Ҿp謦HE@HEH]UHHd$H}HGHEHUHEHHBH}蟺HEH@(H]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuH:HcHUuFHEH}16HUHEHB0HEH}tH}tH}HEHHEHtlHhH(H軫HcH u#H}tHuH}HEHP`H Htd?HEH]UHHd$H}HuHEHU@;B|&HE@HcHUHcRHHUHcRH9~)HUHEH@HHUHEHBHE@H}HEH@(HEhH]UHHd$H}HHxt2HEH@HEHUHEHHBHEhH}(HEHx0HEH@0HEHEH@ HE@HEH]U]UHH= HH]UHH$pH}uHDžpHUHuHةHcHUEtt.t>tNt[thuH}H5Hld;H}H5HlO;H}H5Hl:;H}H5Il%;nH}H5Il;\H}H5&Il;JH@IlHxuHpBHpHEHHIlHEHxH}1ɺu>Hp4:HEHtVH]UHHd$H}HuHUEUu}8BHEHUHuHUH}H]UHHd$H}HuHuH}H5Hl:HEH0HPH}tH]UHHd$H}HuHEHpHUH}H]UHHd$H}utt2tt6tMt:RHEH@HEDHEH@ HE6HEH@HE(HEH@0HEHEH@(HE HEH@HEHEH]UHHd$H}HHxHEu'HEuHEu HEt!HEHH`HEHU[HEHHUHu訞MU119@HEHUH}Hud`HEHUHEH@Hx(HuHEHUH]UHHd$H}11?HEHEHCHEHHEHEH~tKH}qt>@HHEHbu"HEH@@EHEH@DEHEHCtHEH;uHEHrHEHortHEHHEHEHzHEH}=r%tBH}t5H}1IqHELMLEHMHUHuH}8dEă)EHEH]UHHd$H}uHUEHH]UHHd$H}HuHEHpHUH}JH]UHHd$H}HuHEHpHUH}HEuHEǀH]UHHd$H}HuHEHp HUH}HEtH}HEHH]UHHd$H}HuHEHp(HUH}zH]UHHd$H}HuHEHp0HUH}JHEuHEǀHEtH}HEHH]UHHd$H}HuHUHEHH;EHEH8t:HEHhHEHx}1RHEH0HѽHxHѽHUHEHHEH8t&HEH@HEH0HѽHxHѽH]UHHd$H}uHUEt"tKt/tX}taHEHpHUH}qHEHp HUH}ZHEHpHUH}CHEHp0HUH},HEHp(HUH}HEHpHUH}H]UHHd$H}uHE;EEtNtht%:HUH$ v:HUH$dW:HUH$s;:HUH$W`:HUH$;E9HUH$9HUHHUEHUHEu4HEu'HE uHE,u HE0t ƂƂHEtr`HuHbxH8XHSxHHHUHuH2xH8ZH#xHHHUH}HEHH}HEHH]UHHd$H}uHUHEUHH;EteHUEHtHEUHH@HMUHEHHEUHtHEUHHEHBH]UHHd$H}u!H߈HcHEEyEmEaEXEOEFE=E4E +E "E E EEH}HNju[_H}HHEHp@zH]UHHd$H}HuHE;Eu)HE;E"HE HEHE*$HE*(^ZE*EYE*M/z6s4*E^EEE}m}u}t6HUHj*EYE*M/z6v4*EYEEE}m}Л}Ћu*6HUH HEHUHHEHUHH}HEHH}HEHH]UHHd$H}HuHE;EuHE ;EtHUHEHHEƀH]UHHd$H}HuHE$;Eu!HE(;EtPHEs>HUHEH$HEu"H}HEHH}HEHH]UHHd$H}HuHE,;EuHE0;EtHUHEH,HEƀH]UHHd$H}uHE;EdHEUHErHt tt(7H}HEH($H}HEHH}HEH H]UHHd$H}@u@t HE HEH]UHHd$H}HHtHEHNHEHǀH]UHHd$H}HuHUHUHE,g<HE+HE苐HE苰$HHUHEHM0g<HE+ HE苐HE苰(wHHUH]UHHd$H}HuHE,Ug<HE+HEHE$HEHE0Ug<HE+ HEHE(GEHEH]UHHd$H}HuHUHMLEHUHE,g<HE+HE؋HE؋$|GHUHEHM0g<HE+ HE؋HE؋(?GHUHEHM苐,g<HE+HE؋HE؋$GHUHEHM0g<HE+ HE؋HE؋(FHUH]UHHd$H}HuHUHE苀,Ug<HE+HE苐HE苰$gFEHE苀0Ug<HE+ HE苐HE苰(0FEHE苀,Ug<HE+HE苐HE苰$EEHE苀0Ug<HE+ HE苐HE苰(EEHEHUH]UHHd$H}HuHUHE苐HE苰$HE8|EHUHE苐HE苰(HE8WEHUH]UHHd$H}HuHEHE$}EEHEHE(}DEHEH]UHHd$H}HuHUHEHc$HEHcHH}&HE@ )HUHE@ )HUHEHc(HEHcHH}&HE)HUHE)HUH]UHHd$H}HuHUHEHU;~HEEHUHEHUEH]UHHd$H}HuHUHE苐$HE苰HE8CHUHU+,HUHE苐(HE苰HE8sCHU HU+0HUH]UHHd$H}HuHE$HE}#CHUHU+,EHE(HE}BHU HU+0EHEH]UHHd$H}HuHUHMLEHE؋$HE؋HE8BHUHU+,HUHE؋(HE؋HE8[BHU HU+0HUHE؋$HE؋HE8"BHUHU+,HUHE؋(HE؋HE8AHU HU+0HUH]UHHd$H}HuHUHE苐$HE苰}AHUHU+,EHE苐(HE苰}\AHU HU+0EHE苐$HE苰})AHUHU+,EHE苐(HE苰}@HU HU+0EHEHUH]UHHd$H}HuHUHE苐$HE苰HE8@HUHE苐(HE苰HE8w@HUH]UHHd$H}HuHE$HE}3@EHE(HE}@EHEH]UHHd$H}HHx HEH@ Hx(nHEH@ xL\HEH@ xluHEHP HEH@ @0BlEHEH@ @lEHUHuH}HEH@ xl~UIЉUUIHcHډU}u5HEH@ x0~ EHEH@ x0} EEHEH@ @0;EHEH@ Hp(H$H8<0HEHP EB0HEH@ Hp0H[hH8HQhHHXHEHEHP HEH@(HB(HEH@(HEHuH hH8H]UHHd$H}HHx0HEH@0xduHEHP0HEH@0@PBdHEH@0@dEHEH@0@dEHUHuH}UIЉUUIЉUE;E~EE}EHEH@0@P;Et*HEH@0UPPHEH}HEH(H]UHHd$H}HuHUMLEHEHtHHU؊E舂HEHUHHEHǀH}u7{H7HUHH}t.HE؃HUHEHHEHUHHE؃H}H}kHEHuHJH}HEHu[H}FHEH}2lHEH}t#H}tH}qu H}4\H}HEHEHEHEHUHHEHu%H}uzH6HUHvDHHEHH]HEH@蓁NDHHEHh uHEH`kH]UHHd$H}H=T-lw<H]UHHd$H}H=-lW<H]UHH$pH}HDžpHEHUHu;HcHcHUuaH}Hp-lHxHEHpHpݼHpHEH-lHEHx1ɺH}!H};HpFH}=HEHt_H]UHHd$H}HHtHEH?HEHǀHEHǀHEHǀHEH@8HEHx@1Ҿh j$HUH11V$HUH<$HUH$11($HUH,HEǀHEt-HEƀH}HEHH}HEH11#HUH4H}1H}1+H}1H}1H}1ZH}1/HEH@1Ҿ HEH`1Ҿ HEH1ҾʃH}1HEHǀHEǀEEEH}HtH}rH]UHH$@H}HDž@HUHuCHkHcHUH*lHPHDžH HEHpH@H@H`HDžX H*lHpHDžh HE@EHDžxH*lHEHE HHt迭H@HEHt5H]UHHd$H}HuUMDEH}t H}tEE}7}t"HEHUHH;t6H=,HEHtHHUHEHHHUHEHUHEHHHEHtHEHqHEHtHEH;HUHEHHHUHEHHHEHx8t$HEHx8NHEH@8HE؃HEHx8tSHEHtEHEHp@HEHx8cHEHp@HEH#bHUHB8HE؃HEt,HE؃HEHUHHH HE؃EfEЃEЉH}H‹uH}}tuH}1}tXuH}WHtuH}FHiuH}2HEHtuH}1{HUȋuH}k}aHEH@HEH@HEH`HEH`H}1PHUHEH4H4HUHE<<HE؀HEƀHEǀHUH11yHUH_HUH$11KHUH,H}HEHH}HEHHUHEHE؀HUHEHUHEHHHUHEHHHUHEH$H$HUHEH,H,H}HEHH}HEHHEHǀEH]UHHd$H}H=$&l3H]UHHd$H}H=T&l3H]UHH$`HxH}HuHUHMDEEH}LHEȀtKHuHUH}fHEHUHEHEHEHEHUHuH}HUHuH}EU)ЉEEU)ЉEH}]HEHH} ~uEHuH}hH}1H}HEH}tH}H1DH}JHEH}]HEHUH} HEH@xPueHEH@x0|tQE$HEHD$H}"HƋEUgDEUg HEH@P0HEHDMX@E$H}HƋEUgDEUg HEHDM^}tH} H}HljC}tH}1THuH}EHxH]UHHd$H}HHxu1HYH8 HH}HEHPH}H]UHHd$H}HHx HEHHEH能HEHHYH8{HE@lHuH}H}18EHUHR HB(HEH@ Hp(HH8HEH@ Hx(HXH8HH}3HEHP H}H]UHHd$H}HHyHEHxvhHEtEHEHx@1ҾhyHEǀHEHp@HEH[HE/HEHLHElHL)HLHEH}tH}1@HEHp@H}]\HEH]UHHd$H}HHxu.HWH8zHH}~HEHPH}1H]UHHd$H}utJttt(LH}HEHEH}HEH2H}HEHH}HEH H=n!la.H]UHHd$H}HHx0u1HVH8HH}HEHP0H}H]UHHd$H}HHx8uH}HEHHUHB8HEH@8H]UHHd$H}HHx uH}HEHHEH@ H]UHHd$H}HHxuH}HEHHEH@H]UHHd$H}HHx0uH}HEHHEH@0H]UHHd$H}^ !HuHcHE EyEmEaE XEOEFE =E4E +E"EEEE EH]UHHd$H}HHx8EEH]UHHd$H}HHxtHEH@x(tEEEH]UHHd$H}HHx0tHEH@0x(tEEEH]UHHd$H}HHx8t)HEHx81J'HEHx811).H} H]UHHd$H]H}HuH}R HEHEH@H;ELHEHuH}wHEHXC@tt tHCHHEHCHHEHEHEHCHHEHUHuعH{HC@HEHCHHEHCPH{0t H{0pH}rHC0Hp$HEHEHEHu1H=~loH}thHEHx8t HEHx8AHEHUHHUHEHHEH2GHUHB8HEHx81K;H}1HEH]H]UHHd$H}H} H}{nHEH@xPH}0ɾ\nHEH@xPHEH@HxXHEH@xPuYH}0ҾnH}nH}HHEH@HpX[H}HǾ"3H}HHEH@HpXH}HǾH}HHEHp@UH]UHHd$H}HuF tt6HuH}HEHHEDHuH}HEHHE)HUHuHPH8HPHHHEHEH]UHHd$H}HuH}HEHEH@0H;Et?HuH}'HEHEHx8tH}HEH(H}1UHEH]UHH$ H}HuHuHEHUHRhHEH}HUHu7H_wHcHUuFHEH}HEǀ<HEH}tH}tH}HEH HEHtlHpH0踘HvHcH(u#H}tHuH}HEHP`贛?誛H(Ht艞dHEH]UHHd$H}HuH~HEHUHHHEHtHEH*H}1H}tH}tH}HEHPpH]UHHd$H}HHjH}00Ҿ}jHEHEH}UHH}HEH@0@TEHEH@0@)EHEH@0@PE܀}tHEH@0@T%=E}E}uEHEH@0}@(}}xHEH@0@T%t-t-tEEEHEH@0@T%t-t-t8E/E&EE}t EE}u}tHEH@0x`uE}t}u EEH}HDEMUu\3Ett6tOtmEEHuغHEEHuغHxEEEEHuغHUEEEEEEHuкHV*H} HHEH@0H`HEH@0HPX1WH}HHEHp@OHEH]UHH$`HhLpLxH}HuHUHEHULbHLILLHkiLmHUHuuHrHcHUrHE@܉EuEu|0EEHEHcUUHUHcM ;uHEHxHHEHHHUVH}HEHt萘HhLpLxH]UHHd$H}~HEHx81@HEHx81VHEHxt1HEH@Hx(T`EtHEH@Hp(HEHx8d@H]UHHd$H}HHeH}00ҾeH]UHHd$H}HHxuH}HEHHEH@H]UHHd$H}G`H]UHHd$H}HuHUH}2"HEH膌H;EuHUHuH}OHtUHuH}6H]UHH$@H}HuUMDELMH}%HpHx(HcUHu]HpHx( HEuH}|H}CHpx8HEHtHEHSHEVHEz\H2VHEH}HEHH}Q.H}(HH};HhH}HU1H}HUоH}HUоH}HUH}76HEHDlHHEH>lHHEH0lHHEHlHHEHlHHEHlHHE*M*EH}LBHp*@8Hl^H}=HuH}OGHpHx(THpHp(M؋UH}CHuH}GHpHx(XTHhH}11H}1ҾH}1ҾH}1ҾH}1,H}1:9HEH$H}{HHpL@(HEHLMЋM؋Uc2H]UHHd$H}HuHUHEHxHU1(HEHxHUHEHxHUHEHxHUH]UHH]UHH5ŶH=αiH]UHH$ H}HuHDž HDž(HDž0HDž8HDž@HDžHHDžPHDžXHDž`HDžhHDžpHDžxHDžHDžHDžHUHuHlHcHULHolHHEHpA1ɺHHHH]lHHolHHEpHdHHHglHHEpH4HHH_lHHEpHxuHxHHXlHHE0HpGHpHHRlHHEpHh觕HhHHJlHHEp H`H`HHClHHEpHXHHXHH;lH HEpHPHPH(H;lH0HEpHHHHH8H3lH@HEpH@踔H@HHH+lHPHEpH8舔H8HXH#lH`HEpH0ɔH0HhHlHpHEpH(蚔H(HxH lHEHH}1ɺEEHEHcU4H OH 1H H HEH0H}1};|HEH0H}1Hl轍H H(H0H8H@HHHPHXH`HhHpHxHHuHiHEHt苎H]UHHd$H};H]UHHd$H}RH]UHHd$H}HuHF@HEH9EvHUH;Us1H]UHHd$H]H}HuHHppHEHx@觤Eu5HEH0HEHEHEH;Eu1<HuH}pcÉ]EH]H]UHHd$H}HuHHx@HuH}PH]UHH$ H}HuHuHEHUHRhHEH}HUHuGHofHcHUuXHEH}1SHUHvˆHB(HUHwHB HEH}tH}tH}HEHHEHtlHpH0趇HeHcH(u#H}tHuH}HEHP`貊=訊H(Ht臍bHEH]UHHd$H}HuHUHMHA@HEHEH@@HEH;EvHUH;Us1H]UHHd$H]H}HuHUHMHEHEHEHEHppHEHxpBE܅u9HEH0HEHEH0HEH;Eu1<HuH}aÉ]܋EH]H]UHHd$H}HuHEHxHHugHEHtHEH@(HEHEHEH]UHH$0H}HuHUH59ĈH}蘫HxH8HcHcH0uUHuH}HHuH}HEHxH=HuHEHtHEH@(HEHE耈H5ÈH}H0HtHEH]UHHd$H}HuHH}HHEHu HE HEH@ HEHEH]UHH$0H}HuHUHMHDž8HUHx蔄HbHcHpzH}u H=tlGHuHUH}VHt H=l%HuH}HEHu@HU1ɾH=}@HEHHEHB@H}@HEHxHuHMHUH=K&HHEHxpHuHEHuHx0HHEHxHu?HuHUH}HHEHHHDž@HEH@pHXHDžP HEHp0H8H8HhHDž` H@H=luH}1+H8HpHt螇HEH]UHH$@H}HuHEHUHH蟂H`HcH@u6H}1Ҿ<iZHuH}HMHUHuH}HE~H}H@HtHEH]UHHd$H}HuHH}HHEHu H}. H}@H]UHHd$H}HuHH}HPHEHu H} H}#AH]UHH$0H}HDž8HUHuSH{_HcHUHEHxHEEHEH@(HEE䉅HHDž@HEHXHDžPHEH@pHhHDž` HEHp0H8H8HxHDžp H@H=`l3sHEH@HxH}t H} 1HEEH}5xH8HEHtH]UHH$PHPH}HDžXHEHEHUHuH^HcHUH},BH}CHEHp@H}肎HU1H5lH}HEHEߢHHuHHEHx H}HlH`HEH@ H@pHhHlHpHEH@ Hp0HXQHXHxH`1ɺH}HEHE?HHuHHXOH}FH}=HEHt_HPH]UHHd$H}HuH~HEHUHHHEHxxtHEHxx>3HEH@xH}1WDH}tH}tH}HEHPpH]UHH=XHhHHH]UHH劽H8iH֊HH]UHHd$H]UHHd$H}HH}BH]UHHd$H}HH}BH]UHHd$H}nHH}"H]UHHd$H}HE1ҾHpf+HH}HUH}H5lkH}H]UHHd$]DRIHH|H}HHH=퉽H5.lHZHH=ЉH5AlHHH=H5\lwH`HH=H5wlZHcHH=yH5l=HVH =,zfriHBH|H}$H-HtH=!H5ZlHH ="H=ilHHt:H=H5zlH^HH=ԈH5lxHQHH]UHH=t H={H=~t H=upH=xt H=oZH5cH=L7H]UHHd$H}HHxt+HEH@xtHEH@xcuE EEEH]UHH$ H}HuHuHEHUHRhHEH}HUHuyHXHcHUuFHEH}1dHEH@HEH}tH}tH}HEH|HEHtlHpH0xyHWHcH(u#H}tHuH}HEHP`t|}j|H(HtI$HEH]UHHd$H}uUEsHEH@xcu HEHx41}t HEHxHEH@H]UHH$ H}HuHuHEHUHRhHEH}:HUHugxHVHcHUHEH}1=H=,HUHB0HUH5DHEHx0'HEHx8HUHB`HEHx`-HEH}tH}tH}HEHzHEHtlHpH0wHUHcH(u#H}tHuH}HEHP`z|zH(Htd}?}HEH]UHHd$H}HuH~HEHUHHH}HUHuvHUHcHUu?H}?HE)HEH@HEHuH}HEHEH}uyH}HEHt={H}1HEHx0HEH@0HP`HEHx`CHEH@`HEHx8QH}tH}tH}HEHPpH]UHHd$H}HG-H;ufHEHx` t HEHx8H]UHHd$H}NH,H;uHEHx`u. HEHx8H]UHHd$H}HuHH}HEHEHx0uHEHtaHEHHEH@HH;EtQHEH@HE*fDHEHHEH@HH;Et%HEH@HEH}t HE؀xuHEHEH]UHHd$H}HuHFH0H}H]UHHd$H}HuEE} HcEH؉EHcEHiQHHHcEHHHHUHR0HcJHHUH]UHHd$H}H=7HHEHHEHHEH]UHHd$H}HuH}vHEHHEHBHuH}zH}!tHEHx0HuLH]UHHd$H}nHUHulsHQHcHUu HEH@HExvH}HEHtwHEH]UHHd$H}HEH}HUHurHQHcHUuH}DHtH}6H@HEuH}HEHtbwHEH]UHHd$H}nHUHulrHPHcHUu HEH@ HExuH}HEHtvHEH]UHHd$H}HUHuqH$PHcHUu'HEH}HHtH}:H@HEtH}HEHtfvHEH]UHHd$H}HuUMH}`HUHu^qHOHcHUu:H}tHEHx0HuUuH}HuH}]Hc]HcEH)qiHH-H9v]ă}}Hc]EHq'HqHHH-H9v]E(Hû#EEtPU(HHq̟HcUH)q辟Hc]Hq谟HH-H9vX]}}E;EE;EE;E E;E}Hc]HcEHq>HHH9vHE8HHE8H0H}0蠲HE0HLe8I$HH9v譞I$H}HAEHcEHcUH)qžHcEH9}/HcEHc]H)q觞HH-H9vO]EĉEHc]HcEHqqHHH9vHE8HHE8H0H}0ӱE;EeE;E YE;EMHc]HcEHq HH-H9v贝]H]8HcUHH9v蕝HcEHH)sĝHH=vt]}uTHcEHcUHq蘝HEHE0H0HcUH}`@}HE0HHcUH<Hcu1LC|}~HE0H8Hcu1/CHcEHc]H)q-HH-H9v՜]~HcEHcUHqHEHE0HHcEH4HcUH}?EE;E~HcEHc]H)q贜EHq襜Hq蚜HHH-H9v>]HE0HLe8I$HH9vI4$1HSLE;E}EEEE;Et1HE0HLe8I$HH9vʛI4$1HSHE0HHE}uHcEHcUHq؛HExHcEHc]H)q轛HH-H9ve]|HcEHcUHq苛HE.Hc]HHH9ujHcEHq[H]E;E uEEXHc]HHH9u,HH-H9vԚ]HcEHqHcUHqHEHcEUHqܚHHEHc]EHqHHH=vm]u`O@HcUHuH}o=HcEHEHcEHEHc]HqpHH-H9v]}EEH)q3HH=v]HEHEHc]HqHH-H9v詙|WEfDEHUHcEHqEHEHcM4E@HEHE;]HcEHEHcEHEHc]HqoHH-H9v]}2EEH]LeH]UHHd$H}u趚H}1 EtHEH0H}1HkEtHEH0H}1HkEtHEH0H}1HkEtHEH0H}1HkEtHEH0H}1HkE tHEH0H}1HkoE@tHEH0H}1HkMH]UHHd$}@uU 蓙Eu}"HsחHH]UHHd$}@uU CUEHs蒗HEEt"t6tJt^n{HEHsMHHEbHEHs4HHEIHEHsHHE0HEH?sHHEHEHsHHEHEH]UHHd$H]LeH}HuHUMDEDMпP>Eػ!Hq脖HH=v4f]H]HUHH9vHEHHEȊE<M,v!,t,,,(}uXHED E]HsHHH9v裕AEA!D=v舕HEfD HEEHq襕UH)q蘕E!É=v@HEfHEEЉE!É=vHEf`HEEЉE!É=vHEf4HUEЋE!É=v躔HEf HEf}HEUظH)qĔ=vrHEfE؃v]]HHED A Dv01HHHHHHkHHE@H@HXHH@Uz1HXH@01H@PH@HHkHHEPH8H H8HHkHHEPH0H H0HHwkHHEPH(H H(HHmkHHEPH H H HHckHHE@ THHHHcTx1HHH01HHH HkH(HEPHEp HExsH@HXHH@x1HXH01HHH0HkH8HE@!THHHHcTw1HHH01H*HH@H}kHHHE@"THHHHcT1w1HHH<01HHHPH7kHXHE@#THHHHcTv1HHH01HNHH`HkHhHE@$THHHHcTUv1HHH`01HHHpHkHxHE@%THHHHcTu1HHH01HrHHHekHHE@&THHHHcTyu1HHH01HHHHkHHE@'THHHHcT u1HHH01HHHHkHHE@(THHHHcTt1HHH01H(HHHkHHkHHE@)THHHHcT!t1HHH,01HHHHokHHE@*THHHHcTs1HHH01H>HHH)kHHEP,HH\HHHkHHEP0HHHHHkHHEP,HEp)HEx3H@HXHH@]s1HXH01HXHHHkHHkHHE@4THHHHcTQr1HHH\01HHH HkH(HE@6THHHHcTq1HHH01HnHH0HakH8HE@7THHHHcTuq1HHH耿01HHH@HkHHHEP8HHHHPHkHXHEPt+HEHD$HE@$HEDH"HED@!HEH HEHxHHuHUaHEHD$HE@$HEDH$HED@#HEH HEHxHHuHUHEHD$HE@$HEDH&HED@%HEH HEHxHHuHUHEHD$HE@$HEDH"HED@!HEH HEHxHHuHUHUHEffHUHEff&HEfHEfHEfHEfWHEx'vDHEHD$HE@$HEDH(HED@'HEH HEHxHHuHU HEfH]UHHd$H}HuHUHMؿH=jHEЀx)vYHEHxXtNHEHD$HEЋ@0$HEDH*HEH)HEHxXHuHUAyHEf}HEH]UHHd$H}iHEHxHL|HEH@HHEH@PHEHxX'|HEH@XHEH@`HEHxh|HEH@hHEH@pH]UHHd$H}iH}pHEH@HHEH@PHEH@XHEH@`HEH@hHEH@pH]UHH$PHXH}HuHHpHƹHhH}HpFt0HEH@PH;Eu"HEH@`H;EuHEH@pH;EuEE}tSHEH@PHEHEHhHEH@HH`H;huHUHhH`HÈ]}tSHEH@`HEHEHhHEH@XH`H;huHUHhH`HÈ]}tSHEH@pHEHEHhHEH@hH`H;huHUHhH`,HÈ]EHXH]UHHd$H} gHEH@HHEH@PHEH@XHEH@`HEH@hHEH@pH]UHHd$H}HuHUMDEfDMȿPffEfD$HE@$HEH HEHxHDMDEHuHUkH]UHHd$H}HuHUfMfDEfDMȿPfHEmtZfEfD$HE@$HEDH"HED@!HEH HEHxHHuHUfEfD$HE@$HEDH$HED@#HEH HEHxHHuHUfEfD$HE@$HEDH&HED@%HEH HEHxHHuHUKFfEfD$HE@$HEDH"HED@!HEH HEHxHHuHULHEx'tBfEfD$HE@$HEDH(HED@'HEH HEHxHHuHUH]UHHd$H}HuHUMؿ@ndHEHxXtTHEЀx)tJUH~fPfD$HEЋ@0$HEDH*HEH)HEHxXHuHUA/H]UHHd$H]LeH}@u(cHExbHExTH]Ss {NHEHEPHEHsaHHEHsHUHEHBP HEH@PHEHpPHEHxHv}t4HEHXHLeIT$PHH9vMaIt$P1HnHEx)H]S,s){HEHEPHEHsDaHHEHsHEHUHP` HEH@`HEHp`HEHxXu}t4HEHXXLeIT$`HH9v`It$`1HH]LeH]UHHd$H]H}HuHUHMؿp9bHEHuHǹHH}H]ЋC=v)`CEH]ЋC=v`CEEEEEEEHuHUHMLEH}gHc]HcEH)q`HغH9v_HE؉XHc]HcEH)q_HغH9v_HE؉XHE؃xv HE؃xwHE@HE@HEHxHHEHxPH}@0HEH@PHD$HEH@HH$HEDHHED@HEH HEHPPHEHpHHHEЀx)t_HEHxXtTHEHx`tIHEH@`HD$HEH@XH$HEDH,HED@0HEH)HEHP`HEHpXHH]H]UHH$HLLLH}HuHUMDEDMؿh_H5xH}RH5hHpQHH,HD HcHHEHXЋC=v]CEHEHX؋C=v]CEHEH@Ћ@EE;EHEЃx}u4H]LeHUHH9v:]HULHKBLeH]HEH)sP]HHH9v\IH]HUHH9v\HUHLHEHXЋC=v\CEHEHX؋C=v\CE}u]HEHc@Hc]Hq\HغH9v^\DuDeDmE=vB\uH}DEE [HEHc@Hc]H)qS\HغH9v\DuDeDmE=v[uH}DEE Du]DeE=v[DmE=v[uHpDDAEU HEHc@Hc]Hq[HH-H9vW[]Hc]Hq[HH-H9v-[AEfDEHEHc@LceIq>[LH9vZLmAE=vZAuH}D H`HhHEHc@LceIqZLH9vZE=vZuH}DD HPHXE=vWZUHp1 H@HHhHHPH`H)sFZHXvHHs$ZHLeH@HH9vYH@M,LeH`HH9vYH`IHHH9voYHLL}kHELceELqxYIqmYILHH9vYLLeH`HH9vXH`LH(LeH@HH9vXH@LH h=vXh<HEH@x%u0HEH@x&u"HEH@x'uHEH@x(uEEEH]UHHd$H]LeH}uU@PHExu4HEXEH)q-OHq"OHغH9vN]HEL`]HHxHIHEIDHEHEPEHsN]HsNHغH9vmN]ԉ؃EE!HEsNHEHUH]LeH]UHHd$H]LeLmH}ЉuUMDEDMؿxOHEЋUHEЋUPHEЊUPHEЋUP HEЋU؉PUEHsMHúH9vM]̅Uu}HúH9v}M]ȉE]ȃ=v^M]EHEH5uHMHEHxHEHX1HxHHEHX1HxCEHE]Hq)MHغH9vLEEEDeIsLLH=vLDeUHUsLE!HsLHEfDefAA=vULDeHELhDeLHx IHEK,HELhDeLHxIECD%;]?H]LeLmH]UHHd$H]Le(MEfDEfEfDfEEvK]HEvKUH'HfP}}|EfEfE3EE]HcUH)qnK=vKf]HcEH)qEKHH-H9vJ]ODE;E]HcEHcUH)qJEvJDeIEvJUH&LP ËEvvJDeIEv`JUHu&LfP]HcEHcUH)qsJEv"JDeIEv JUH!&LP ËEvIDeIEvIUH%LfPHc]HcEH)qIHH-H9vI]}f}}H]LeH]UH15KpH]UHHd$H}HuHUKHEHU*(HE8HEHUjhHExH]UHHd$H}HuJHEm(HE8HEmhHExH]UHHd$H}HueJHEm(HE8HEmhHExHEH]UHHd$H}HuHUJHEE(HE8HEEhHExH]UHHd$H}HuHUIHEE(HE8HEEhHExHEH]UHHd$H}HuHUqIHEHU*(HE8HEHUjhHExH]UHHd$H}Hu%IHEm(HE8HEmhHExH]UHHd$H}HuHUHHEE(HE8HEEhHExH]UHHd$H}HuHUHEHE(HE8EHEhHExH]UHHd$H}HuHU1HHEHU*(HE8HEHUjhHExH]UHHd$H}HuGHEm(HE8HEmhHExH]UHHd$H}HuGHEm(HE8HEmhHExHEH]UHHd$H}HuHUAGHEE(HE8HEEhHExH]UHHd$H}HuHUFHEE(HE8HEEhHExHEH]UHHd$H}HuHUFHEHU*(HE8HEHUjhHExH]UHHd$H}HuUFHEm(HE8HEmhHExH]UHHd$H}HuHUFHEE(HE8HEEhHExH]UHHd$H}HuHUEEHE(HE8EHEhHExH]UHHd$H}HueEE;EuE;EuEEEH]UHHd$H}Hu%EHUHE(*zuHEHUjhzuEEEH]UHHd$H}@D}}fMHUHH$fBfD$1m}mܛHUHH9vBEЉE}}fMHEHPH$f@fD$1`m}mܛHEH-H9vMBEЉEHEH]UHHd$H}HuCEHE8EHExH]UHHd$H}HuHUHM(CE;EuE;EuE;EuE;EuEEEH]UHH$pH]Le}uU؉MLELM>CHcEHc]HqAHH-H9v4AHcELceIqbALH-H9v ADu}چHEHUHEHEHEHEHEH$fEfD$H}Hu(HEmm Hѝk(zsmm Hk(} mm } HE H$fE(fD$H}Hu'HEHEȋUHEUHE0UHE8UH]LeH]UHH$H}uUMLEHAm H'k(z,m zEHk(۽EHk(۽ۭۭzۭzۭz|ۭۭz6v4EE۽`۽PHHffD۽`EE۽PHHff۽`۽PmH*k(۽0H'k(ۭ0۽@H@HEfHfEm Hk(۽0Hk(ۭ0۽@H@HE fHfE(m0Hk(۽0Hk(ۭ0۽@ۭ@}0m HVk(<$HH<ۭH[k(ۭ}*M*EHKkYX8݅8۽p*M*EHkYX8݅8۽HEH$fEfD$HHۭۭ۽ۭۭ۽ۭmۭۭ۽ ۭmۭۭ۽0m m<$HHۭۭ۽`ۭۭ۽pۭmۭۭ`۽@ۭmۭۭp۽PDžfHPHD$0fXfD$8H`HD$ fhfD$(vH]vZ;HH<H HH]v);HHۭp(۽ ۭh۽0H]v:HH<H H]HH]UHH$pH}Huؿr1HE9HEЋUHc]HcEH)q[1HH-H9v1HEH]H]UHHd$H]Le}uUMDEDMпp2HcEHc]Hq0HH-H9v0HcELceIq0LH-H9vm0Du}=vHEHUHEHEHEHEȋuЋ}uHEu}uHEHuHUH}vHE 8HuHUH}_HE(8HU(HE (*z#s!HU HE((*Hk(HE(8HE(HU *(HE(8H]LeH]UHHd$H}Hu(e1HcEHcUH)q/HEHHEHHcUHcMH)q/HUHHUHHqy/HUm}mH]UHH$ H}HuHU0HEH|$ HƹHHuHHH}۽pHuH|$ HHuHHHN۽`HEm(HEۭphۭ`mۭp}mH]UHH$`H}0H|$ Hu0HHHuHH}mm }mH]UHHd$H} /mm0ztm m@mm0}}mH]UHH$`H}HuHU࿠^/HEHuHTHEHH}EHkHHEfBfEEHcUHcEH)q^-HUHHHcUHcMH)qA-HUHHUHHq(-HUm}mz`v^HcEHcUH)q,HHHIHEmm<$O۽pHk(ۭp}HEHEfEfEEtAtWt_tpzHʉkHHEfBfEHEfEmHOk(}smH9k(}`mHk(}MHkHHEfBfE5}.HwkHHUf@fEH߈kHHEfBfEmHVk(}mH]UHH$@H}Hu-HcEHcUH)q`+HH?HHHx߭x}HcEHcUH)q1+HH?HHHx߭x}mm}mztsmHk(۽PHk(ۭP۽`H`H$fhfD$HuH}襷mmmmm}ٽpٽtfpm٭p߽h٭thH]UHHd$H}+HUHEHfEfBHUHE HBfE(fBH]UHHd$H]H}xu+mHk(zk(}mzsmHNk(}mHmk(}Hmk(m}HEH$fEfD$HuH}#Hc]mm }H+]q)HH-H9v(]Hc]mm }H]q(HH-H9vz(]HEH]H]UHHd$H}Hu%*HEHU;~HEEHUHEHUEH]UHHd$H]H}uU )HEHcHcUH)q(HEHcXHq(HH-H9v'HEXHEHc@HcUH)q'HEHcX Hq'HH-H9vi'HEX HEUHEUPH]H]UHHd$H]H}HuHU0(HE;EkHcEHEHEHcPHcEHq0'HUHcH)q'HEH;E}H]H]HH-H9v&HEXHEUHE@;EmHcEHEHEHcP HcEHq&HUHcRH)q&HEH;E}H]H]HH-H9v7&HEX HEUPHE@;EkHcEHEHEHcHEHc@H)q5&HcEHq'&HEH;E~H]H]HH-H9v%HEHEUPHE@ ;EmHcEHEHEHcPHEHc@ H)q%HcEHq%HEH;E~H]H]HH-H9v?%HEXHEUP H]H]UHH$HLLH}HuHUHMHELeIMiHL!:ILLHLm&HUHuHHcHxH}HEHEH8tZH`H HHcHu H}1>9HEHHHt H]Hq>$HH-H9v#|BEELceHEHL9w#HEIJ< HUHuE;] H}9HxHtHLLH]UHH$`H`LhLpH}HuHUHMDEHELeIMkHL`8ILLHLm$HUHuHGHcHxuTHEHHw"H]LeIq"LH-H9v"DHMHUDEHEH}7HxHtVH`LhLpH]UHH$HH}uHUHMDEؿ#}LHEHEH8tWHUHx H5HcHpu H}16HEHHpHt}EEHc]HH?HHHHH-H9vM!]Hc]Hq{!HH-H9v#!qE@EHUHcEHkq9!Hq.!HHMHcUHkq!Hq !HHuHcMHkq Hq LHuHcMHkq L AA}A}HMHMfMfMHMHMfMfMHHuHA@}A}HMHMfMfMHMHMfMfMHHuHB}}HMHMfMfMHMHMfMfMH0HuH@}}HMHMfMfMHMHMfMfMHPHuHHHUHu;]fHc]HqHH-H9vJ]HcMHVUUUUUUUHH?HHHH-H9v]Hc]HqBHH-H9v8EEHUHcEHkqHqHHMHcUHkqHqHHuHcMHkqHqLHuHcMHqHkqHqL AA۽ A۽HH0ff8H H@f(fHHPH0HA@۽ A۽HH0ff8H H@f(fHHpH0HB۽ ۽HH0ff8H H@f(fHH}H0H@۽ ۽HH0ff8H H@f(fHH}H0HHPHUHuS;]HH]UHH$H}ȉuUMLELM ?m Hsyk(zsHbykHHE fBfE(}m0HByk(zHEHuH}}BHuH}pBHuH}XHuH}WttXHUHtHRH}B[HUHtHRH}'[ DHuHtHvH}[HEHtH@HjLeH]HtH[HHH9vwHH}QATH^ss$HuHtHvH}ZHEHtH@H~FLeH]HtH[HHH9vHH}QADHb^srH]HtH[HH-H9v]H]HtH[HH-H9v]HxH5-HWHHuHEHH5-H/HHuHEEEfE=vEHxE=vEHpHUHuhHc]HqHH-H9v]Hc]HqHH-H9v]E;E E;ES}utt}t}t }bHc]HcEH)qHH-H9v,]Hc]HcEH)qWHH-H9v]}CH}1'?]|)EEHEHH}1H5X_k+@;]ރ}EEmHEH8tfLeM,$HEHHtH[HHH9vcHI<$NATH[srHEH0H}1H^k?Hc]Hq]HcEH)qOHHH=vHpHEH0H}1Q?}7HEH0HSHH}=H}1=}EEmHEH8tHEH0H}1H&^k>Hc]HqHcEH)qHHH=v8HpHEH0H}1>}}tHEH8uH}H5U]k8=E_Ht H}Hu9HH}8HpHtHhH]UHHd$H}yH}`H]UHHd$H]H}uB}uH}H5aYk8H}H5tYkw8E~H}JHþHHCDE ~H}aJHþHHCAE~H}H})HEHt跾EH]UHHd$H}xiHEHUHu诹HחHcHUuHuH}wH}ZE讼H})HEHt'EH]UHHd$H}xHEHUHuHGHcHUu$HuH}?wH}Et1[H}j(HEHt茽EH]UHH$pHpH}Hu;HDžxHEHUHuvH螖HcHUu>HuH}vH]HuHxvHxHEt1UZPHx'H}'HEHt轼EHpH]UHHd$H}xiHEHUHu请HוHcHUuHuH}uH}WE论H}'HEHt'EH]UHH$`HhLpH}uHUHH5HyHHDžxHUHuHHcHUucH]H54HyHlIHuHxtHxuLkEHEHpHxuHxHEHx|&觹Hx%HEHtEHhLpH]UHHd$H}xHEHUHuH7HcHUuPHEHpH}+tHuHEHx%H}qkEHEHpH}-tHuHEHx%׸H}.%HEHtPEH]UHH$PHPH}HuHUH)%HEHEHEHDžXHDž`HUHp H4HcHhHuH}$H}8H}EH}HEHtH@H~/H]ȾH}4;~uH]ȾH}4{/tH}H5:Gk3H{H}H5AGk$tH};u"Hu1H`H`H}%$HMHtHIHuȺH`S6H`HuH}1%E}tH}HuVH}u(HuHXPHXHUH}1$&HuHXbPHXHUH}1$HuH`H`H}\#H}Cu"Hu1H`H`H}-#H}Hu #KHX"H`"H}"H}"H}x"H}o"HhHt获HPH]UHHd$H}pIHEHUHu菲H跐HcHUuH}HuH}p葵H}!HEHt H]UHH$H}HDžHHHH+HcHHm!HuH}~H`HHuH=c>tdx=vWxLtCH !HuH~HHuH=uEElH HHtߵEH]UHH$PH}HEHDžpHEHUHuɰHHcHUH})uWHEHEHDžx HxH4KHp1H}HUH=UxPHH5HNH}tWHEHEHDžx HxHJHp1H}HUH=xHH5HHpnHuHp~|HpHuH=f聓H@kHXHEH`H@kHhHXH}1ɺ+#fHtg tHEHEHDžx HxHJHp1H}HuH}HEHEHDžx HxH JHp1H}aHuH}HEHEHDžx HxHIHp1H}HuH}rHIHpH}Y|HEHEHDžx HxHIHp1H}HuH}=HEHEHDžx HxHIHp1H}HuH}HUH=x賢HH5H豯ܰHp0H}'H}HEHt@H]UHHd$H}xHEHUHu?HgHcHUuHuH}/H}EAH}HEHt躱EH]UHH$PH}vHEHDžpHEHUHu詬HъHcHUzH} uWHEHEHDžx HxHGHp1H}HUH=5x0HH5H.HuHp.HpH)=kHXHEH`H=kHhHXH}1ɺ͊Htg tHEHEHDžx HxHiFHp1H} HuH}]HEHEHDžx HxHGFHp1H}HuH}HEHEHDžx HxH%FHp1H}HuH}H]FHpH}|HEHEHDžx HxHJFHp1H}+HuH}~=HEHEHDžx HxH+FHp1H}HuH}?HUH=xHH5HCHpH}H}HEHt觮H]UHH$`H}fEHE1HEt'H`}u HpE}EH]UHHd$H}xHEHUHu?HgHcHUu6H}HuH}uH}HuH=߻̌E!H}xHEHt蚭EH]UHHd$H}xYHEHUHu蟨HdžHcHUu6H}HuH}&uH}HuH=߻,E聫H}HEHtEH]UHHd$H}0H]UHHd$H}HuH}1H]UHH$H}HuHbHDžHDžH@H蔧H輅HcH#H}1oHHuHtH`HHuH=ݻćx=vx\%=uHEH0H}1H9k\%@=@uHEH0H}1H9ks\%`=`uHEH0H}1H9kF\% = uHEH0H}1H9kHEH0H}1H9kq\%=uHEH0H}1H9kFHEH0H}1H9k+\%=uHEH0H}1H9kHEH0H}1HB9k\@@uHEH0H}1H{9kHEH0H}1H9k\ uHEH0H}1H8k|HEH0H}1H8ka\uHEH0H}1H8k:HEH0H}1H|8k\uHEH0H}1H8kHEH0H}1H:8k\uHEH0H}1H38kHEH0H}1H7k\uHEH0H}1H8ktHEH0H}1H7kY\uHEH0H}1H7k2HEH0H}1Ht7kHEHHHb>H@HHEHHHHM1HHX01H1HHHH}1ɺHEH0H}H=HP1fHHHFHcHu>H}x1H56kH3HHEH0H}1HHtbHH衢HɀHcHuHEH0H}1H6k蝥HHt|W肥HHHHtH]UHH$pH}@uUHEHUHuH HcHU@uH}AHuH}$`HEH8ts}tmHEH8@u]HEHHxHDžp HpH}=Hp1H}HUH=6x9HH5H7bH}HEHtۥH]UHH$`H}@uUM迠HEHDžpHUHuǠH~HcHxU@uHpzHpH}^}HEH0H}0"H}tmH}`?u`HEHhHDž` H`HH<Hp1HpHpH=xHH5H'Hp{H}rHxHt葤H]UHHd$H}HuEH}HuH]UH1%H]UH1H]UHHd$H}HuHEH}HպH]UHHd$H}HuHEH}HH]UHH$pHpH}HuHDžxHUHuΞH|HcHUH]HtH[HH-H9vR]H]HtH[HH-H9v*]E;EuHuH}EE;E~.HcMHuHxy HxHuE,HcMHuHxK HxH}{E}uE;E} EEHxI HEHtkEHpH]UHHd$H]H}uHUM0 }t}u2Hc]HcEH)qMHH-H9v]EEifHUHcEHUHcEH)qHH-H9v]Hc]HqHH-H9vt]؃}uE;E}E;E|}u-Hc]HcEH)qHH-H9v+]܋EH]H]UHHd$H]H}HuU(H}t HE8u(H}t HE8u EEH}t HE8u E}t6HuH}gHH-H9vo]VfHEHEHEHU:u HE8uHEHEH)qoHH-H9v]EH]H]UHH$`H`LhH}HuUH} HEHUHxHyHcHpQH]HtH[HH-H9vl]1Hc]HqHH-H9v9]ԃ}|4LeHcUHH9vHc]HH}A|.u}} EHcUHqHMHtHIHuH}QHEHtH@H~*H]H},;.uH}"}tHuH}AEHuH}E}} E }~E諜H} H}HpHtEH`LhH]UHHd$H}HuHEH}HH]UHHd$H]H}HuUP~HEHuH~ϻHEHEHtH@HEHHEHEHmHEH;Er HE8.uHEH;Es EHEH]HH+]HH-H9v]H]HtH[HH-H9v]HEHuHλHE8.u/HEHc]HqHH-H9v]܋E;EtE8}tHcUHuH}HEHcUHuH}HEEH]H]UHH$0H8L@LHH}HuHUMHELeIMkHLEILLHlLmLHUHH59sHUHXHuHcHPHEHuHpͻHEHEHtH@HEHHEHE DHmHEH;Er HE8.uHEH;Es EYHEH]HH+]HH-H9v]HEH-H9vDeEE@EHc]HEHH9wHEHHtH[HH-H9v]Hc]HEHH9wtHEHHuHP̻HE8.u/HEHc]HqHH-H9v+]ԋE;Eu>}tHcUHuH}IHEHcUHuH}HE܀}uD;eE?H}HUHH57sH}HPHt蝙EH8L@LHH]UHHd$H]LeH}Hu(=HEHtH@HHqHH-H9v*]/DHc]HqQHH-H9v]}~HLeHc]HqHHH9vHH}JATH-!ssH]HtH[HH-H9v]0fDHc]HqHH-H9vQ]E;E|4LeHcUHH9v*Hc]HH}A|.uE;E}3H]HtH[Hq2HH-H9v]HcMHcEH)qHcUH}HuDH]LeH]UHH$`HhLpLxH}HuMHEHUHu蓒HpHcHUH}HuoHEHHtH[HH-H9v]LeM,$HcEHH9vHc]HI<$XAD<.r=,.t,u5gHcMHqHEH0H}!HuH}4Hc]HqHH-H9v[]}V蹔H}HEHt2HhLpLxH]UHHd$H}xHEHUHuHBoHcHUuHuH}H}EH}pH}gHEHt艕EH]UHH$`H`LhH}8HEHEHDžpHUHukHnHcHxEH}HuHpHpH}Hr$kxH}躶E܃zH}H5c$kH]HtH[HH-H9vLeH}L}܉蒮~E}H}9u H}1角HpH}H}HxHtEH`LhH]UHH$pHpLxH}HEHEHUHuH mHcHUzHuH}HuH}E6@LeHcUHH9vDHc]HH}ADHs!@HcuHqIH}KHcUHEHtH@H9}HLeHc]HqHHH9v軿HH}?ADH"srHcMHqοHuH} H}tH}\uH}/EtHHc]Hq艿HH-H9v1]HcUHEHtH@H9E{H}H}H}HEHtEHpLxH]UHHd$H}HEH}HE}EH]UHH$HLH}Hu4HEHUHpwHjHcHhEHEH}@EȃHPH HHjHcHEHcuHqH}1u H} HþH HދU܋}^E܅,H} HLceIq蘽LHH9vALH BD#HEHuH»HEEHEЀ8uHEЀxuHEЀxuHE yH}HEHtH]UHH$pH}HuHU螷HDžxHEHUHuكHbHcHUuXHuH}HuH}L HEH8t4HEH0HUHx HxH}HuH}n虆HxH}HEHtH]UHH$pH}HuHU辶HDžpHDžxHEHUHuHaHcHUu^H}Hu.HEH8tGHEH0HUHp-HpHxHxH}HuH}}訅HpHxH}HEHt H]UHH$PHXL`H}Hu贵HEHEHDžhHUHxH `HcHpH}u EHuH}-HuHhHhH}}H]HtH[HH-H9v(]ԅwHEHtH@HcUH9~aLeHcUHH9vHc]HH}kA|/u-UHuHh HhH}uEE HhaH}XH}OHpHtnEHXL`H]UHH$PHXL`H}HuHEHEHDžhHUHx4H\^HcHpH}u EHuHhzHhH}HuHhZHhH}H]HtH[HH-H9ve]ԅwHEHtH@HcUH9|aLeHcUHH9v(Hc]HH}A|/u-UHuHh]HhH}uEEJHhH}H}HpHt諃EHXL`H]UHH$@H@LHH}HuUAHDžPHDžXHUHuy~H\HcHxHEHtH@HcUH9EEfLeHcUHH9vԯHc]HH}TATH7 ss/Hc]HqHH-H9v苯]܃t_Hc]Hq贯HH-H9v\]HcEHH?HHHUHtHRH)qqHcEH94Hc]HcEH)qRHqGHH-H9v]HcMHuHXcHXH`HkHhHUHtHRHcEH)qܮHqѮHcMHuHP HPHpH`H}1ɺX H}HuHPHXHxHtH@LHH]UHHd$H]LeLmLuH}0蹯HEHHtH[HH-H9v豭EELmMuHcEHH9v|LceLI}C|&\u9H}IHcEHH9v@LcmLLCD,/;]H]LeLmLuH]UHHd$H}HuծH}Hu(H}H]UHHd$H]LeH}Hu 荮H}t^LeH]HtH[HHH9v~HH}ATHsrH}Hu1H k H}Hu{H]LeH]UHHd$H]LeLmH}Hu0٭H}Hu,H}HEHHtH[HH-H9v蹫]HEHH82Hss E4E+Hc]Hq豫HH-H9vY]E;E~BLeM,$HcUHH9v.Hc]HI<$ADHsrHEHHtH@HcUH9~HcuH}1H]LeLmH]UHHd$H]LeLmLuH}HuU@肬H}HuEtttE/E/ E\HEHHtH[HH-H9v6EfDELmMuHcEHH9vLceLI}|CD&/t\tu;H}1IHcUHH9v趩LcmLL7ECD,;]vH]LeLmLuH]UHHd$H}HuUB}tH}Huz H}Hu{H]UHHd$H]H}Hu H]H}H5kHHE8tEH}H5kHu E.H}H5 kHu EEEEH]H]UHHd$}ZEr}uEEEH]UHH$HL L(H}HuHUHEHEHEHDž0HDž8HUH`vH>THcHXH}HuH}H}HuH}HEHHtH[HH-H9vd]EDEE5Hc]HqyHH-H9v!]܉;EQLeM,$HcEHH9vHc]HI<$sA|;tE܉E-Hc]HqHH-H9v試]E;E8LeM,$HcUHH9v~Hc]HI<$A|;uHcMHcEH)q蔦HcUHEH0H}H}[HUHuH}1HuH}H2H]HtH[HEHtH@H)q"HH-H9vʥ]HcMHqHEH0H80H8H@HEHHHcMHcEH)q赥Hq誥HcUHEH0H0H0HPH@H}1ɺ.HcEHc]Hq\HH-H9v]HcEHc]Hq/HH-H9vפ]EE܋E;Er-vH0H8uH}lH}cH}ZHXHtywHL L(H]UHH$ H L(L0H}HuHUHEHEHDž8HDž@HUHhrHFPHcH`H}HuH}H}HEHHtH[HH-H9vy]EfEE5Hc]Hq董HH-H9v9]܉;E}LeM,$HcEHH9v Hc]HI<$A|;tE܉E-Hc]HqHH-H9v]E;E8LeM,$HcUHH9v薢Hc]HI<$A|;uHcMHcEH)q謢HcUHEH0H}H}/HUHuH}A0豦HuH}HtH}uH}H5ekHHuH}H2H]HtH[HEHtH@H)qHH-H9v趡]HcMHqHEH0H@H@HHHEHPHcMHcEH)q衡Hq薡HcUHEH0H8H8HXHHH}1ɺHcEHc]HqHHH-H9v]HcEHc]HqHH-H9và]EE܋E;EFrH8mH@aH}XH}OH`HtnsH L(L0H]UHH$ H(L0L8L@H}HuHEHDžHHDžPHDžpHDžxHUHunH8LHcHU6H}HuEEE*Hc]HqɟHH-H9vq]HEHHtHRHcEH9|8LeM,$HcUHH9v5Hc]HI<$A|;uE;ELeM,$Hc]Hq:HHH9vHI<$gATHJrrnHc]HcEH)qHH-H9v蛞LmMuHcEHH9v{LceLI}K|&HcMHcEH)q腞HcUHEH0HpHpHxHxH}HcMHqHc]Hq膜HH-H9v.]HcuH}gHEHHtHRHcEH9ZHEH8iLeM,$HEHHtH[HHH9v轛HI<$AA|;u&HEH0HtHvHqΛH}1SlHHBHP6Hp*HxH}HEHt7nH(L0L8L@H]UHH$@HHH}uHUM࿸ŜHEHEHUHXiH(GHcHPHEH}H}}u4-Hc]Hq詚HH-H9vQ]}~#HEHcUHquHrrE}u8HcuH}1H}cHþHHHcUH}=E+EԉE*Hc]HqHH-H9v衙]HEHcÙ<;tE;E|ẺE*Hc]Hq豙HH-H9vY]HcEHq臙HcUH9}#HEHcUHqkHrr}HcUHcEH)q?HcEH9EQHuHcUHcEHqHUHcMȊ: u2Hc]HqHH-H9v蛘]ȋE;E|E;EHUHcEHHEE;EH}1HcuHcEH)q肘H}1H}HþHHHcUHcEH)qIHEHcMH<;HuH}uHEHcUHHE6Hc]HqHH-H9v诗]ԋE;E iH}bH}YHPHtxjHEHHH]UHHd$H]LeH}Hu8HEHuHHEH]HtH[HH-H9vLeMtMd$LH-H9vޖDH}HuH=HU؉HEHu E1H]HEH)HqؖHH-H9v耖]EH]LeH]UHH$`H`H}HuHUM迠HEHDžhHUHxLdHtBHcHp3H}Hu%HuH}}t"HEH8tHEH8|@H}Huк:"HH-H9vz]܅t5HcMHq褕H}HuкHcUH}оH}HuqH}1fHEH8t)HEH0Hh9HhH}HU1cHEH85HEH8號!H}1*fHh~H}uHpHtgH`H]UHHd$H}IH}EEH]UHH$PHPH}HuHUHEHUHuMbHu@HcHxH,H8tH}HUHuHH}u H}LJ HuH}H}uHuH}1HjHUHuH}1E@HEH`HDžX E䉅pHDžhHXH}H5oj Hc]Hq[HH-H9v]HEH8贝|WdH}HxHteHPH]UHH$pH}膔HEHDžxHUHu`H>HcHUEHuH}H}tEHxHu1HjHxHxquHuHtcH}u:HyHPH=YxUHE@H5HH} bHuHxHxHEcHxiH}`HEHtdEH]UHHd$H]H}Hu 1HEHtH@H~IH]H}Hrs(H]H}CHrsEEEH]H]UHH$pH}Hu袒HEHEHUHu^H=HcHxlEHuH}H}tTH}赛uGHuH}THuH}HuEHuH}OE}t H}EaH}H}HxHtbEH]UHHd$H}Hu襑H}Hu0vHEH8u H}HuH]UHHd$H}YH2H8t H}H!H]UHH$PHPLXL`LhH}HuU述HEHDžpHUHu.]HV;HcHx8E0fDHc]HqHH-H9v虎]HcEHUHtHRH9MLeHcEHH9vdHc]HH}AD r ttsHcUHEHtH@H9}LeHcUHH9vHc]HH}}A|EH}1EfLeHcEHH9v謍Hc]HH},AD,  ,r,j,b,,l,5t mHc]Hq肍HH-H9v*]}HcEHUHtHRH9LeHcEHH9vHc]HH}gA|LeHcEHH9v诌Hc]HH}/A|LeHcEHH9vwHc]HH}At1HpHpHuH}1Hc]HqnHH-H9v]HuH}1HjhHc]Hq$HH-H9v̋]EtttEEHuH}1HjHc]Hq豋HH-H9vY]Ettt,BE6HuH}1HjE}LeHcUHH9vHc]HH}gAt1HpCHpHuH}1Hc]HqފHH-H9v膊]LeHcEHH9vbHc]HH}At1HpHpHuH}1Hc]HqYHH-H9v]HcEHUHtHRH9LuLeLmMu讉I]HRILLPHcEHUHtHRH9[Hp[H}RHxHtq\HPLXL`LhH]UHHd$H]H}HuHH}HudHEH8uH}H5jJHEHHuH⍻HEE fHEt5, ,,,$,,M, eHEHHuHH]H)HH-H9vw]HEHHtH@HcUH9~(HEHHtHRHcuHq|H}E<","td,tB,HyjHEHEHHEHcjHEHuH}1ɺHEH0H}1H2j5HEH0H}1H jh} uE*HEE< , t,,,E"HEHHuH@H]H)HH-H9v1]HuH=~jHEHHuHHcEHHHE HEHEHHuHŋH]H)HqHH-H9v諆]HcUHuH=AjHEHHuHqHcEHHHEE"E< v, t,,},ZE'HEHHuHH]H)HH-H9v ]HuH=ajHEHHuHъHcEHHHEHEHEHHuHH]H)HqޅHH-H9v膅]HcUHuH=HU1H5ajH}HUH=$x*HH5|H78H}#H}HEHt<:H]UHHd$}HuhHE}HwH]UHHd$H}u h}uH}H5j.Hu}2EvfEDHuH}PH]UHHd$}HuVhEv-v,-vT-EHEUEE HUE? HUBEE HUE? HUBE? HUBTEE HUE ? HUBE? HUBE? HUBEEH]UHHd$H]H}Hu 1gHuHtHvH}HuH=$jHH-H9ve]HcuHkqEeH}1ʳ}t)HEHHuHtHvH}HuH=i H]H]UHHd$H}HuHU@fHEHEHEHEHEnHuH}#E%HUȈHEE%HUȈHEHcEHEHcEHUH)qpdHUHEHq]dHEH}HEH]UHHd$H}HuHU(eEHEH}HEH8HEHH;EHEHHEHEH8rHUHE8~ EHEHH;EHEH(HEH85HUHE8~ EwHEHH;Ev_HEH(HEH8HUHE8~EAHEHH;Ev)HEH(HEH8HUHE8uE HEHUHEH]UHHd$H]LeH}HuHU@idLeH]HcHH9vjbHcHH}IDHEHEHUH}HuH=*gHu1EHEHcHEHUH)H)qRbHH-H9vaHEEH]LeH]UHHd$H}HuHU0cHEHqaH;E}HEHqaHEHUHEHHEHUHuH}yHEHUH)H]UHHd$H]H}HuHU0cHEHEH\fH}u1HE8s H}dÉ]HcUHEH)q-aHEHEHqaHEHcEHEH}~H}H}uH}}HEHEH]H]UHHd$H}HuHU QbHEHuH}HH]UHHd$H}HuHU(bHEHuH}HHEHu HEHEHUH)HEHEH]UHHd$H}HuHU aHEHuH}HmH]UHHd$H]H}uaH}HEEWHuHtHvH}HuH=[|HEHuH}1HUHuH[HEHtH@HH+EHEHUHuH}*HEHtHEHUH)HEHEHuHR[HUH)HqVH}HMHuϦH]UHHd$H}HuHU迀WHEHUHu7$H_HcHUudHEH0H}H}0ҾdH}1HUHuH}XH}HuۓH}1ГH}0Ҿ &H}BHEHtd(H]UHHd$H}HuHU0WHEH0HtHvHEH8HuH=YHUHq?UHEHHEHHuHYHEHHtH@HH+EHEHUHuH}NHEHu4HEHHuHYHuH)HqTH}HUë9HEHHuHNYHuH)HqTHUHEH)H}舫H]UHHd$H}HuHU UHEH0HtHvHEH8HuH=XHUHqTzHEHt2HEHHuHXHUH)HqSHuH}蟫H]UHHd$H}HuHU QUHEH0HtHvHEH8HuH=>XHUHqSHEHt2HEHHuHXHUH)HqLSHuH}H]UHHd$H}HuHUHMDELMпPTHEH$H}LMDEHMHUHuH]UHH$HL L(H}HuHUHMDELMؿ-THEHEHDž0HUH@] HHcH8HuH}6HuH})HEH]HtH[HH-H9vQ]uH}HuEtHHUHuH0$ H0H}贏HUHuH0 H0H}萏H]HtH[HH-H9v+Q]HEHtH@HcUH9H}HuAEfHcUHuH}跢HH-H9vP]HEHcHqPHH-H9vPHE؉H}HHcEHH9vpPLceLHNl#Hc]LeH}֞LHLXE/HcEHc]HqYPHH-H9vP]}EHcUHuH}觡HH-H9vO]~fHcEHc]HqOHH-H9vO]HEHcHqOHH-H9vaOHE؉Et }`HE؃8uH}Hur1H]HtH[HH-H9vO]HcUHcEH)q3OHEHcHq!OHuHtHvHq OH}1菝EEHEHHuHSHEHEHuHzSHEfDHcUHuH}?HH-H9vWN]Hc]HcEH)qzNHqoNHH-H9vN]~!HcUHuH}HcEHEHcEHE}~0Hc]LeLmH}_LLHHcEHEHcEHc]HqMHH-H9vM]HcEHEHc]HqMHH-H9v]M]Et }H]HtH[HcEH)qlMHH-H9vM]~HcUHuH}gH0車H}貊H}詊H8HtHL L(H]UHH$@HHLPLXL`LhH}HuHU;NHEHEHUHxvHHcHp"H}uH}1J HUHuH}HUHuH}HUHtHRHEHtH@H9uHEHtH@HUHtHRH9tH}Hu؉HuHtHvH}1KH]HtH[HH-H9vVKAAOEfELuHcEHH9v KHc]HH}蠙LeHcUHH9vJLcmLH}tADC:D,tkH}/HHcEHH9vJLceLH5LmHcUHH9vJLcuLH} CD5BD#iH}ĚHHcEHH9vIJLceLHʘLmHcEHH9vJLcuLH}螘CD5BD#D;}eH}輇H}資HpHtHHLPLXL`LhH]UHH$@HHLPLXH}HuHUIKHEHDž`HUHpHHcHh|Hu1H`H`H}EH}\HEHHuHMHEHEHHtH@HEHE fDHEHEH;EsHEHUrHEH;EH}u1HE8s H}É]HcuH}1+H}貘HþHҖHHcUH}RHu1H`H`H}PHc]LeLmȾH}膖LLHHcEHE fDHEHEH;EsHEHUsHEH;EH`jH}aHhHtHHLPLXH]UHHd$H]H}HuHUhIH}HupHEHuHLHEHEHtH@HEHEfHE؊EO:EHHHu&7"3}uHE@-sHEHEH;EFHEH;EH}H5]jHtH}H5hjӒHuEEH}[HEHuHIHUH)HEHHuHIHHEHE0DHE؊E]EEEEEEE<,vQ,,,,,v-,,$,),`,SfEf%HHHHu']Hqy>HH=v)>]fEf%HHHH]Hq2>HH=v=]EHHH]Hq=HH=v=]EHHHs]Hq=HH=ve=]LEE?EE2E-4s5EHHHu"]HqS=HH=v=]E<,t!,t*,t1,,,tEEEEHEHHuHAHEH)HEHEH0HtHvHq.HH=v-]I}uCE-$s5EHHHu"]Hq-HH=v-]H}tHEȊUHEȊUPHEȊUP5E:Et HUȊEE:Et HEȊUPE:Et HUȊEBHEHEHE؊@EHE؊@E}uEE-s7HEȊUHE@]H q.-HH=v,HEȈXH}tHUȊEHUȊEBHUȊEBHEHEH}t HUȊEHEHEHEH;EHEHHuH\1HuH)H}1*{H]H]UHHd$H}Hu.H}Hu1H]UHHd$H]LeLmLuL}H}HuHU-H}Hu jH}7|HEHHuH0HEH}H5jpyHtH}H5j[yHuEEHEHELeHEHH9vT+H]HH}yA|zLeHUHH9v+H]HH}yA|aL}LeHEHH9v*H]HH}ZyA|iHEH0HtHvHq*H}1hyHEHHuHu/HEHUHUHEHq*HEHq*HEHEHq*HELeHUHH9v*H]HH}xA\H q:*HH=v)HEHUЈHEHq*HEHEHq)HELeHEHH9v)H]HH}xIDHEHu1HE8s H}轸É]EEĉE}LeHEHH9v()H]HH}wA\LmLeIq<)LHH9v(LH}iwCD% É=v(f]fEfEf=r f9 f=r U f=r :f=rwXf=r f=w$Ef=*f=&f=Df=f=6f=rw2f=jf=qf=Vf=Lf=r f=wf=,f="f=f= f=rwZf=rw.f=Of=f=Af=|f=xf=rw$f=qf={mf=rwf=_f=U]f=Ff=rf=f=r f=w^f=rw(f=f=hf=f=f=f=f=rw(f=f=f=f=rwf={{f=lf=rwff=r f=w(f=?f=f=+f=f=f=f=)f=rw$ f=Wf=f=rw> f=f=| f=r nz f=r 8 f=rwJ< f=rw$ f=\ f=L f= f=3 f=rw$ f= f= f=rwF f= , f= 3 f=rwPf f=rw$ f= p f= f=  f=  f=rw$/ f=h  f=X  f=rw f=< f=-  f=r  f=rw^r f=rw$ f=  f= f= f= f= f= f=rw(" f= f= f= f=rw f=j f=[ f=rw` f=r f=w$ f=.  f= f=rwW f=  f= D f=rw$c f= = f= 9 f=r f=wc f= f= % f= c fESS~ ]H qP"HH=v"f]V fEK EHHH3 ]Hq"HH=v!f] HEHUIEE EHHH ]Hq!HH=vY!f] EHHH ]Hqj!HH=v!f]p fEe EHHHN ]Hq !HH=v f]& EHHH ]Hq HH=v f] EHHH ]Hq HH=vQ f] HUHESEE fE EHHHh ]Hq: HH=vf]@ fE5 fE* fE fE fE fEfEEHHH]HqHH=v]f]fEfEfEEHHH{]HqMHH=vf]SfEHfE=fE2fE'fEfEfEfEEHHH]HqHH=vff]fEfEEHHH]Hq`HH=vf]ffE[fEPEHHH8]Hq HH=vf]EHHH]HqHH=vzf]EHHH]HqHH=v:f]fEHHEHUHUHEHq5HUHEHqEE)HhHEHUHUHEHqHUHEHqEEfEEHHH]Hq|HH=v,f]HHEHUHUHEHq2HUHEHqEE&HeHUHEHUHEHqHUHEHqEEH HUHEHUHEHqzHUHEHqcEEnfEcfEXfEMfEBfE7fE,fE!fEHUHUHEHUHEHqHUHEHqEEfEfEHHUHEHUHEHqTHUHEHq=EEHfE=H|HUHEHUHEHqHUHEHqEEfEfEH HEHUHUHEHq{HUHEHqdEEofEdfEYfENfECfE8fE-fE"fEfE fEfEfE]H qHH=vmf]]HqHH=vBf]fEfEfEwfElfEafEVfEKfE@fE5EHHH]HqHH=vf]EHHH]HqHH=v_f]fEfEfEfEfE~fEs]H qEHH=vf]N]HqHH=vf]&]HqHH=vf]f}t/EHMHUЈHMHEHqUEHEHqH;E}HcEHqxIMoHE@HELuHUH]HqELeHULmIq/LHH9vLH}\dCD,AL;}HcEHEqHEHcEHEqHEHEHtH@H;EH}Hu1AdH]LeLmLuL}H]UHHd$H}uUE;E}}E;E{HEH@Hq4HUH;B^HEH@HHtH@HcuHqHcEH)qHEHx1{cHEH@HHuHHEHPH]UHHd$H}HuEH}Hu16H]UHHd$H}HuU(H}HEfHEECHHtH@HEH}t^HHcUHH9v LceLHz\Nd#Ev UHBHоHBHLeHc]H]qU HHH9v HH}ZA|wH}A\HHcEHH9v LceLHGZNd#LmHcEHH9v Hc]HH}ZI|HUL蕮HcEH]Hq Hq HH-H9v@ ]Hc]H]qn HH-H9v ]HcEH;E-HcuH}1YaH}HHhHtHPLXL`H]UHH$PHPLXL`H}HuUH}HQ HUHpHĶHcHh H}1wH} HuHtHvH}HuH=諛HH]HtH[HH-H9v ]؃ttF7yHc]LeLmH}#XAuLHCc\HcuHkq H}14XH}YHþHWHHEHcuHcuHkqd H}1WH]H}WEH]H}WCEH]H}hWCEHEHHuH HEȋMEEHUȊE܈HUȊE؈BHUȊEԈBHE;MYHcuHkqH}11WH}XHþHVHHEHcuHcUH}?aH}EHhHtHPLXL`H]UHH$`HhH}HuHUMH}E HDžpHUHuHHcHxH}HuEHuHtHvH}HuH=: HHEH0HtHvHEH8HuH= 賘HH-H9v]܉;E}UHc]HcEH)qHH-H9vHuHpHpHEHH}1 FHp[DH}RDHxHtqHhH]UHH$`HhH}HuHUMH}ED HDžpHUHuNHvHcHxH}Hu'DHuHtHvH}HuH= eHHEH0HtHvHEH8HuH= 3HH-H9v{]܉;E}UHc]HcEH)qHH-H9vGHuHpHpHEH0H}1DHpBH}BHxHtHhH]UHHd$H}HuUHM H}MHUHuH]UHHd$H}HuUHM ^H}MHUHu H]UHH$`HhH}HuUHM还HDžpHUHuWHHcHx(HuHtHvH}HuH={HEHcEH;EHc]HH?HHHUHH?HHH)qHH-H9vHuHpHpH}HU1BHc]HEH0HtHvHEH8HuH=&єH)qgHH-H9vHuHpMHpHEH0H}1TB H}HuA@Hp@HxHtHhH]UHHd$H}HuUbHcEHH}Hu9H]UHHd$H]H}HuU(HuHtHvH}HuH=輓HH-H9v]EE;E~EEHcUHcEH)qHqHcMH}Hu蒪H]H]UHH$0H8L@LHH}HuHUYHDžPHDžXHUHhH趭HcH` H}Hug?HEHuHHEHEH]H}OEHEHuHHEHEHtH@HEHE؀8u-HEHuHHUH)HEHtH@H9HE؊:EHEH;EuA6H]LeHUHH9v\HULHHAEHEHEHX=HEHuH HUH)HqGHMHEH)HuHP|PHPHU1HXC?HXHEH0H}1*?HEHEHEHPg=HEHuHwHUH)HqHMHEH)HuHXOHXHU1HP>HPHEH0H}1>HPH`-HhHt2HHLPLXH]UHHd$H}HuHEHtH@HHuHtHvHUH}kH]UHHd$H]H}Hu H}HH}HHUH}HHEH]H]UHH$0H0H}HuHUHMHEHEHUH@NHvHcH8HEHEHEHEHEHEH;E~ HEHEHEHEEH}~WKHEEHEE8Eu>HEHEHc]HqHH-H9vh]HcEH;E|HcEH;EUEH)q{HUH} HEHEHUHuH}HUHuH}HcEHH9vHcUHuH}HcUHH9vHcUHuH}HuH}1H[P HEHEHUH)qHEH}~ HEH}}HE跽H}.LH}%LH8Ht$HEH0H]UHH$`H}HuHDžhHDžxHUHu H2HcHUuWHuHx7HxHEHuHhHhHpHuHpH7P HE˼Hh?KHx3KHEHt5HEH]UHH$`H`H}HuHDžhHDžxHUHuH;HcHUH}HHH9vHHuHxHxHEH}ղHHH9v^HHuHhKHhHpHuHpHP HE芻HhIHxIHEHtHEH`H]UHHd$H}HuH}'H}'xHUHuH HcHUuHuH}qHEH}?'H}6'HEHtXHEH]UHHd$H}HuHMHtHIHuHtHvHUH}H]UHH$@H@LHLPLXL`H}uUHDžpHDžxHUHuŶHHcHUD}LuLxH]Hu1L#L֧LLDA$HxHhDuLmLpH]HuL#L菧LLDA$HpHhHHHH9v]'Hp{%Hxo%HEHt葺EH@LHLPLXL`H]UHHd$H]LeH}HuHUHMDELMп HEHH}u E H}u E HEHE H]HEHH9vHEEHEHsHE}sAH]HEHH9vHEfUfCHEHsHE|HEH;ErHN zEH]HEHH9vHEEHEHsEHEE$<aE$H]HUHH9v]HUEHEHsHEVf}]HcHLeHUHH9vHEAHEHs&HEH;E ]?HcHˀLeHUHH9vHEAHEHsHEf] LeHEHH9v]HEAHEHsHEH;Ek]HcHˀLeHEHH9vHEAHEHs/HEH;E]?HcHˀLeHUHH9vHEAHEHsHEHEH;ErHcE H]HUHH9vSHEfCfEHEHsxHEfEf%f=rfEf%f=EH-q?H ]Hq)HqHqHغH9v]LeHEHH9vHEAHEHsHEH;E] ˀLeHEHH9vDHEAHEHsmHEH;ER]ˀLeHUHH9vHEAHEHsHEH;E]?ˀLeHEHH9vHEAHEHsHEHmEEt7H]HUHH9vNHE?HEHswHEHEHsdHEH]HUHH9vHEfCf%f=uHEHs#HE0Et EEOHmEEt7H]HEHH9vzHE?HEHsHEHEHsHEH]HEHH9v0HEfCf%f=uHEHsOHE0Et Et EHEH;EsHEH;EHEH;ErHEHsHEEEH]HEHH9vHEHUHEHsHEH]LeH]UHHd$H]LeH}Hu( HE@HE@tIHEHXLeIT$HH9vID$?HEH@HsHUHBHEH@HUH)sHUHBHEHXLeIT$HH9vID$fCf%f=uHEH@HsHUHBEHE@tHE@EEH]LeH]UHHd$H]LeH} HE@tOHEHXLeIT$HH9vID$?HEH@HsHUHBE"HE@tHE@EEEH]LeH]UHHd$H]H}Hu1H]HtH[HHH9v-HHuHuH5 ׺H}H]H]UHHd$H]H}HuHU(H}uH}1[6H]HUHH9vHuH^DHEHHtH[HqHHH9vlHHEH8HuH=FֺLMHMHUAu4H]HslHHH9vHH}C H}15H]H]UHHd$H]H}HuH]HtH[HHH9vHHuHuH5պH}H]H]UHHd$H]H}HuHU(=H}uH}1HesvHHH9vHH}1HEHHtH[Hq6HHH9vHHEH8HuH=ԺLMHMHUAbu6H]HsHHH9vHH}1J H}1 H]H]UHH$pH}Hu"H5#H}2HUHu`H{HcHxu#H}ANH}Hu4 H}Hu' RH5"H}HxHtH]UHHd$H}yH5r"H}HUHu跜HzHcHUuH}MH}Hu 蹟H5""H}HEHt+H]UHHd$EE}MH }rH]UHH$HLL H}HuH}u'LmLeMutLHLShHEH}HUHu袛HyHcHUuFHEH}1[H}@0LHEH}tH}tH}HEHtHEHtlHpH0#HKyHcH(u#H}tHuH}HEHP`誟H(HtϠHEHLL H]UHHd$H]LeLmH}uHUHM8"H}Iu@H}@JH}}t'LeLmMuI]H莋LXHMHUuH}H]LeLmH]UH1KVH]UH1@VH5H=mH5H=ZH5H=|GH5 H=i4H5=H=V!H]UHHd$HH8uH=, ,H HH HH]UHHd$H}HEHxtHEHxAHEH@H]UHHd$H]H}ubHE@;Eo}~8Hc]HkqHHH9vFHHEHxF H}KHUEBHEHU@ ;B~HUHE@B H]H]UHH$HLLH}HuUH}u'LmLeMuLH&LShHEH}HUHu诗HuHcHUuWHEH}1I}} HE@uH}HEH}tH}tH}HEHpHEHtlHhH(HGuHcH u#H}tHuH}HEHP`覛H Ht˜HEHLLH]UHHd$H]LeLmH}Hu(H}~'LeLmMuI]H複LH}"H}1'H}tH}tH}HEHPpH]LeLmH]UHHd$H}HuHEH}HEEH]UHHd$H]H}HuAHEHU@ ;BuGHEx kHEHcP HqpHkqeHEHpHEH@Hx,j2HEHcX Hq7HH-H9vHEX HEHHHEHc@ HqHUHH]H]UHHd$H]H}Hu aHEH}HEHEHc@ HqHcUH9~\HEHcP HcEH)qtHqiHkq^HEHHHcEHqGHE|cHEH@HcUHHEHt\)@HEH@HEHtEHExu HE1HEHH;Eu΋UHuH}HEHEHEH]UHHd$H}Hu HEHxHuH}EHEHPHcEHHEHHEHxHHEH8HEPHH;EwHEH@HE<@HEH8HEPHH;EuHUEB0HUHEHB(9HEH@HEH}t HExuHEHEHEHEH]UHHd$H}Hu(HEHEHxHuH}EHEHPHcEHHEHHEHxHvHEH8HEPHH;EtbHEH@HECHEH8HEPHH;Eu#HUEB0HUHEHB(HEHHEHEH@HEH}t HE؀xuHEH]UHHd$H}uHEHPHcEHH]UHHd$H]H}u 販HE@;E~ HE@EHE@;E} HE@EHE@;EHEHxHUEBHEHcXHkq謧HH-H9vT]HEHXHcEHH9v1HcuHH}H}H]H]UHHd$H}HuŨHEH@@H;Et'HEHUHP@HE1H@XHP`H}pH]UHHd$H}HuHUaHEH@XH;Et)HEH@@HUHEHBXHEHB`H} H]UHHd$H} HEHcpHkqVHEHx17LH}HEH@ HEHEH@ HEH@HEHEH0H}DE} HEHEHE@HEH@HEH@HcUH<uHUHEH@ HB8HEH@HcUHMHHAHEH@HUH@HBHEH@@HEHUH@H;B u HEHUHP HEHPHcMHEHHEHxt+HEHPHEHBHEHxtHEH@HUHPHEHEH}H]UHHd$H}HuUrHEHxHtH}HEPHHEHEHUHP(HUEB0H]UHH$HLL H}HuH}u'LmLeMuLHcLShHEH}HUHurH:PHcHUu?HEH} 1HEH}tH}tH}HEHtHEHtlHpH0qHOHcH(u#H}tHuH}HEHP`t!vtH(HtkwFwHEHLL H]UHHd$H}Hu襤HEH@HH;EtHEHUHPHH}bH]UHHd$H}uVHE@P;EtlHUEBPHE@PHEHxh0tDHEHxhu H=61HUHBhHEHxhz\HEH@hH]UHHd$H}u趣}}EHE@;Et HEUPH]UHHd$H}uf}}EHE@;Et HEUPH]UHHd$H]H}HEHxrHEH@HEHUHEH@HBHEHxtHEH@H@H}VHEHcXHqHH-H9v軠HEXH]H]UHHd$H]H}HuaH}HEHxtHEHPHEH@HBHEHxtHEHPHEH@HBHUHEH@HBHEHUHPHEHxtHEHPHEHBHEH@HEHcXHq"HH-H9vʟHEXHEHc@HqHUHcRHqݟHHUHcRH9}HEx ~H})H} H]H]UHHd$H]H}%HEHxoHEH@HEHEH@HUH@HBHEHxtHEH@H@HEHcXHq(HH-H9vОHEX HEHEHH@H@@HEH]H]UHHd$H}IH}HExH]UHH$HLL H}HuH}u'LmLeMuԝLHy]LShHEH}HUHulH*JHcHUurHEH}1VHEH@HE@HE@HE@dHE@HEH}tH}tH}HEHnHEHtlHpH0WkHIHcH(u#H}tHuH}HEHP`SnoInH(Ht(qqHEHLL H]UHHd$H]LeLmH}Hu(YH}~'LeLmMu@I]H[LH}H}1gVH}tH}tH}HEHPpH]LeLmH]UHHd$H]H} ŝEHEH@HEDHc]HqHH-H9v衛]HEHxtHEH@H@H;Et EYHEHxtHEH@H@H;Et E3HEH@HEH}sHE@;Et EEEH]H]UHH$HH}hϜHDžHDž HxH8iH)GHcH0HEpH 4rH H(H}}HrHHHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$L(LjHHjH5jH%kHyH mH0HtlHH]UH1UH=n܆RH]UHHd$H}Hu%H}t HEHxu H}1hHEHxHuH]UHH$HLL H}Hu轚H}u'LmLeMu褘LHIXLShHEH}HUHufHDHcHUuAHEH}Hj1[HEH}tH}tH}HEHiHEHtlHpH0XfHDHcH(u#H}tHuH}HEHP`TijJiH(Ht)llHEHLL H]UHHd$H]LeH} aHEx@~#H=߆VHH5HgHEH@Hp@H}HEHxRHEH@(HEH@0HEHx8tcHEHx8BHcHq4HH-H9vܖ|,EEHEHx8ulIL;]H]LeH]UHHd$H}YHEH@H@H]UHH$HLLH}HuUMH}u'LmLeMuLHULShHEH}HUHudHDBHcHxurHEH}1NHEUP HEUP$HMH H=uCHUHBHEH}tH}tH}HEHfHxHtlH`H kcHAHcHu#H}tHuH}HEHP`gfg]fHHtHH5HKH]UHHd$H}i}HEHxu*HiH=|v>HH5HKH]UHHd$H}HuHU}HUHuH}H]UHHd$H}HuHU |HuH}tHHUH}DH]UHHd$H}Huu|HuH}(HH}lH]UHHd$H}Hu5|HuH}8HEEH]UHHd$H}HuHU {HuH}HHUH}H]UHHd$H}HuHU{HUHuH}HEHpHH}oH]UHH$HLLH}HuUHM6{H}u'LmLeMuyLH8LShHEH}HUHpHGHp%HcHhHEH}HEHE,<M%HHcHE3HEЊ,v ,v,v$EEEEEEEEEHEЊt,t,t",t*,t29EEE sEgE^EUHEEIHEHcHEHc@HqwHH-H9vw]HEЋEE}u*H iH=xv:HH5HGHUHEHBHE=v*wM܋UH}1HEH}tH}tH}HEH]HHhHtlHPH EH1#HcHu#H}tHuH}HEHP`HIGHHtJJHEHLLH]UHHd$H]LeLmH}Hu( xH}~'LeLmMuuI]H5LH}10H}tH}tH}HEHPpH]LeLmH]UHHd$H}HuHU wHuH}4HHUH}EtHEHpHH}LkEH]UHHd$H}Hu%wHuH}HH}H]UHHd$H}HuvHuH}HEEH]UHHd$H}HuHU(vHEp$H}聈HUHuH} HUHuH}?Et+HEHpHH}WjHEHpHH}oH}EH]UHHd$H}HuvHEHpHH}doH]UHHd$H}HuHU(uHuH}HEHE}tHUHuH}EH]UHH$HLLH}HuHUYuH}u'LmLeMu@sLH2LShHEH}HUHunAHHcHUu>HfHcHUuHEHtlHhH(:HHcH u#H}tHuH}HEHP`=u?=H Ht@@HEHLLH]UHHd$H}H@HEH@HU@;BEEH]UHHd$H}HuHUHEH]UHHd$H}HuH5qH}`H]UHHd$H}uH}SZEEH]UHHd$H}HHH]UHHd$H}HuHUH0HE8HEP H]UHHd$H}uUHUuH}YH]UHHd$H}HxtH}AdEEEH]UHHd$H}@uHuH}2dH]UHHd$H}HxtH}AbEEEH]UHHd$H}@uHuH}bH]UHH$HLL H}HuHu'LmLeMuiLHD)LShHEH}HUHu7HHcHUu?HEH}1UHEH}tH}tH}HEH:HEHtlHpH0U7H}HcH(u#H}tHuH}HEHP`Q:;G:H(Ht&==HEHLL H]UHHd$H}0H]UHHd$H}@uHuH}YH]UHHd$H}@uHUHuH}>]EH]UHHd$H}HH=HLH]UHHd$H}@uE fDEHE@;E~HEHPHcE:EuHE@;EuEEH]UHHd$H}uUEH}_UH]UHHd$H}HuHEH8HEHtH}YHuH}! HuH}fH]UHHd$H]H}HuHEH8HEHtZHEHUHBg4H}VHE@gX|=EfEEH}H};] HuH} eH]H]UHHd$H}@uEH}PE| uH}=XEH]UHHd$H}HuHEHUHP HUH5H}OdH]UHHd$H}HpHEHxTffEEH]UHH$HLLH}HuHUH}u'LmLeMuJeLH$LShHEH}HUHux3HHcHUuQHEH}1HEHUHPHE@HEH}tH}tH}HEH?6HEHtlHhH(2HHcH u#H}tHuH}HEHP`5u75H Ht88HEHLLH]UHHd$H}H@HEH@HU@;BEEH]UHHd$H}HuHUHEffH]UHHd$H}HuH58qH}XH]UHHd$H}uH}SRffEEH]UHHd$H}HHH]UHHd$H}HuHUH0HE8HEP H]UHHd$H}ufUHUuH}QH]UHHd$H}HxtH}A\ffEfEEH]UHHd$H}fuHuH}2\H]UHHd$H}HxtH}AZffEfEEH]UHHd$H}fuHuH}ZH]UHH$HLL H}HuHu'LmLeMuaLHD!LShHEH}HUHu/H HcHUu?HEH}1MHEH}tH}tH}HEH2HEHtlHpH0U/H} HcH(u#H}tHuH}HEHP`Q23G2H(Ht&55HEHLL H]UHHd$H}0H]UHHd$H}fuHuH}QH]UHHd$H}fuHUHuH}>UEH]UHHd$H}HH=HLH]UHHd$H}fuE fDEHE@;E~HEHPHcEfBf;EuHE@;EuEEH]UHHd$H}ufUEH}WfUfH]UHHd$H}HuHEH8HEHtH}PHuH}! HuH}^H]UHHd$H]H}HuHEH8HEHtZHEHUHBg4H}NHE@gX|=EfEEH}H};] HuH}\H]H]UHHd$H}fuEH}@E| uH}-PEH]UHHd$H}HuHEHUHP HUH5H}?\H]UHHd$H}HpHEHxLH]UHH$HLLH}HuHUH}u'LmLeMu:]LHLShHEH}HUHuh+H HcHUuQHEH}1HEHUHPHE@HEH}tH}tH}HEH/.HEHtlHhH(*H HcH u#H}tHuH}HEHP`-e/-H Ht00HEHLLH]UHHd$H}H@HEH@HU@;BEEH]UHHd$H}HuHUHEH]UHHd$H}HuH5`qH}oPH]UHHd$H}uH}CJH]UHHd$H}HHH]UHHd$H}HuHUHЋ0HE8HEP H]UHHd$H}uUHUuH}IH]UHHd$H}HxtH}1TEEEH]UHHd$H}uHuH}#TH]UHHd$H}HxtH}1REEEH]UHHd$H}uHuH}RH]UHH$HLL H}HuHu'LmLeMuYLH4LShHEH}HUHu'HHcHUu?HEH}1EHEH}tH}tH}HEH*HEHtlHpH0E'HmHcH(u#H}tHuH}HEHP`A*+7*H(Ht-,HEHLL H]UHHd$H}0H]UHHd$H}uHuH}IH]UHHd$H}uHUHuH}/MEH]UHHd$H}HH=HLH]UHHd$H}uE EHE@;E~HEHPHcE;EuHE@;EuEEH]UHHd$H}uUEH}OUH]UHHd$H}HuHEH8HEHtH}HHuH}! HuH}VH]UHHd$H]H}HuHEH8HEHtYHEHUHBg4H}FHE@gX|HE@gX|.HHuHfH]H]UHH$pHxLeLmH}HuHELeIMkHLQILLHLmS>HUHu HHcHUu-HHuHUHf H}QHEHtHxLeLmH]UHH$pHpLxLmH}HuHUHELeIMkHL QILLHLmH}ys=HUHu HHcHUu -HHUHMHuH2g H}yH}PHEHt-HpLxLmH]UHH$H`H}HuHUHxLpLhLmLceIq LHH9v LH}ZC|%=u+LceIq LH-H9v[ De;]6Hx IH}IHEHt&EH`LhLpH]UHH$PHXL`LhH}HuU HEHDžpHUHuH HcHxH}1HH]HtH[HH-H9v[ ]ÃkEEuH}0HcMHuغHpZHpHuWHHUHtHRHcEH9tBLmLceIq LHH9v LH}BXC|%=LceIq LH-H9v DeELceIq LH-H9vK DeuHp8LpMtMd$HcEI)qY uHp HpHcUHq4 H}LxY ;]HHpFH}FHxHtHXL`LhH]UHH$PHXL`LhLpH}Hu6 HEHUHu|H褴HcHxH}HuUFELeM,$HcUHH9vHc]HI<$hVAD< r3,~w/Hc]HqHH-H9v]+LeM,$HcUHH9v|Hc]HI<$UAtHxHxHiHx&HxH}14OHEHHtH[HcEH)qFHH-H9v]HEHHtH@HqHuHtHvHqH}1~U}H}VHHcELeMtMd$IqLHH9veLHTNt#H]L#LcmIqLHH9v(LH;TK|,HcUL,H}cVHHcEHH9vLceLHiTNl#H]HtH[LeH}ETLHLǨHcEH]HtH[HqHH-H9vt]HEHHtH@HcUH9LH}CHxHt5HXL`LhLpH]UHH$pH}HuHUHM迈HDžxHUHu H5HcHUu(HMHUHuHx2UHxH}HxQBHEHtsH]UHHd$H]H}HuHUHH}tHE8tH}H}1[BeHEHEHEHE]@HEHq)HEHE _sHEHqHEHEHqHEHEH;E}HEHEЀ8uH}Hu1WRHEHEHEHHuH\HEHEHqHEHEЊEEă _sHUȊEĈHEgHE#HE]؃v !HUH ~HEf]fÃvHUH}HEHEH}QH]H]UHH$PHXL`H}HuTHEHDžhHDžpHUHuH謮HcHxrHuHtHvH}1PEE-LeHcUHH9vHc]HH}LtAD\E܃ ~H}RHHcUHH9vLceLHPE=voEBD#Hc]HqHH-H9v@]Hc]HqnHH-H9v]<uܺHxHxH\iHxHxH}1HHc]HqHH-H9v]HcMHqHEH0HpQHpH`HEHhHEHHtHIHcUHqHEH0HhPHhHpH`H}1ɺBHcEH]HtH[Hq-HH-H9v]HcEHUHtHRH9#Hhw=Hpk=H}b=HxHtHXL`H]UH151H]UHHd$H]LeH}>L%){H}1FHHLH`HEHx1A4HEH@xH]LeH]UHHd$H}uHEHxu61H]UHH$pHpH}HuUHHDžxHUHuH質HcHUu`~HH5EEHcUHH9vHc]HEHH9wHEHHHH!aHcHHcEHH9vHc]HEHH9wHEHtH`H`HEH0H}1-pHcEHH9vILLHdLmHDžhHUHxHnHcHpuW}tQHUHMHuHh[LhLuH]LeMu>M,$LHLLA(譒HhH}HpHtH@LHLPLXL`H]UHH$HLLLLH}HuHUHMLELMؿPoHDžhHUHx诎HlHcHp2}(HhHEHHEHHEHHEHHEHHE HHE(HHE0HHE8HHE@H HEHH(HEPH0HEXH8HE`H@HEhHHHEpHPHExHXHH`H1ɺHh\LhLuH]LeMuM,$L~HLLA(莐HhHpHtHLLLLH]UHHd$H]LeLmLuL}H}HuHU@}L}LuH]LeMucM,$L~HLLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHUHMH}t6L}LuH]LeMuɽM,$Lm}HLLA(L}LuH]LeMu蓽M,$L7}HLLAH]LeLmLuL}H]UHH$@HHLPLXL`LhH}HuHUHMLEHELeIMkHLbILLH!`Lm迸ӾHDžpHUHuH>iHcHx}tQHUHMH}HpLpLuH]LeMuaM,$L|HLLA(LuH]L}LeMu+M,$L{LLHA蚍HpH}HxHtHHLPLXL`LhH]UHH$@H@LHLPLXL`H}HuHUHMLELMHELeIMkHLILLH}^LmH}`&HDžhHUHxfHgHcHp}tQHUHMHuHhLhLuH]LeMu豺M,$LUzHLLA(LuH]L}LeMu{M,$LzLLHAHh>H}5H}HpHtKH@LHLPLXL`H]UHH$HLLLLH}HuHUHMLELMؿP读HDžhHUHxHfHcHph}(HhOHEHHEHHEHHEHHEHHE HHE(HHE0HHE8HHE@H HEHH(HEPH0HEXH8HE`H@HEhHHHEpHPHExHXHH`H1ɺHhLhLuH]LeMu_M,$LxHLLA(LuH]L}LeMu)M,$LwLLHA蘉HhHpHt HLLLLH]UHHd$H]LeLmLuL}H}HuHU@荹L}LuH]LeMusM,$LwHLLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHUHMHL}LuH]LeMu߶M,$LvHLLA}t6LuH]L}LeMu裶M,$LGvLHLA(H]LeLmLuL}H]UHH$@HHLPLXL`LhH}HuHUHMLEHELeIMkHLrILLH1YLm迸HDžpHUHu&HNbHcHxL}LuH]LeMu蒵M,$L6uHLLA}tQHUHMH}HphLpH]L}LeMu;M,$LtLHLA(誆HpH}HxHtHHLPLXL`LhH]UHH$@H@LHLPLXL`H}HuHUHMLELMHELeIMkHLILLHWLmH}p6HDžhHUHxvH`HcHpL}LuH]LeMuM,$LsHLLA}tQHUHMHuHhLhH]L}LeMu苳M,$L/sLHLA(HhNH}EH}HpHt[H@LHLPLXL`H]UHH$HLLLLH}HuHUHMLELMؿP迴HDžhHUHxH'_HcHphL}LuH]LeMukM,$LrHLLA}(Hh)HEHHEHHEHHEHHEHHE HHE(HHE0HHE8HHE@H HEHH(HEPH0HEXH8HE`H@HEhHHHEpHPHExHXHH`H1ɺHhvLhH]L}LeMu9M,$LpLHLA(訂HhHpHtHLLLLH]UHHd$H]LeH}HuH襲HUHu~H]HcHUH}tWLeH]HtH[HHH9vmHH}A|=uHuHtHvH}HEHxhHuHtHEHxhHuWH}.yH}HEHtH]LeH]UHH$0H0L8L@LHLPH}胱HEHUHp}H[HcHhHEHxh菢EHE@aHE@`H=u=HEHc]HqhHHH9vH``EEHEHphUH}أH}H5 /iHHE@aH}~HHCLcIqծLH-H9v}E|-EEH}3HËuH蕯@D;eHE@`HuH}1,H]LeMuM,$LmHAHcHq;HH-H9vHXXSEDEDmH]LeLuMu肭M>L'mLHDAH}H5-i7HH}H]оH};-uEEH]оH}+t-tuH}к^H}{}tHE@aH}輶HHuHHEHtHE؊ÜPHUHE؋@ B /H}~HÊUHuHHEHHE؋@ B X;E`;EzH}fHExbH}HHߵLcIqqLHH9vE|VE@EH}˵HËuH-@ t!H}諵HËuH HURaPD;eHE@b }H}wHhHt~H0L8L@LHLPH]UHH$HLL H}Hu H}u'LmLeMuLHjLShHEH}HUHu"yHJWHcHUuJHEH}1LHE@aHE@`HEH}tH}tH}HEH{HEHtlHpH0xHVHcH(u#H}tHuH}HEHP`{&}{H(Htp~K~HEHLL H]UHHd$H]LeLmLuL}H}Hu@葫HEH}HHuH=A\tHE@bHEHphHEHxhH}LeLmMu3I]HhLxHcHqpHH-H9vAEsEDEDuH]LeMuƨM,$LjhHDAHLeLmMu蘨MuLHÊUHuH輫HEwHxHEHt9yHEHpH]UHHd$H]LeLmLuH}Hu8էH}輯HHuHHEHu4LuLeLmMu螥I]HBeLLPHEHUHE@ B HEH]LeLmLuH]UHHd$H]LeLmLuL}H}HuUHH}HHuHfHEHu}DEHHtHEHELeH}tHEL`LmMuHcEHH9v-Hc]HI};M$Hc]HqJHH-H9v]HEHEHEH}tHUHHEH;E|HHHtH1:H H!HH汹HHtH8I L%II$HH9v[HI$HH;EsHEH}H]LeLmLuH]UHH$@HHLPLXH}HuUʞHEHUHukH8IHcHxH}1H]HtH[HHqϜHH-H9vwEELmHcUHH9vHLceLH}:KtUH}7HEHH`HEHhHiHpH`H}1ɺ;]xKmH}HxHtnHHLPLXH]UHHd$H}Hu(eHEHHEHEHHEH;EvHUH;Us1H]UHHd$H}Hu HEHHEH9EvHUH;Us1H]UHH$HH}HuU0訜}H=$uH H=!zH#HNHuH=#HEHuvHuHHpHH}1_蕯HH5#H3H]HHEHHEH0HEHxQHuH=V#=HEH@(HpH}*&HuHHpHH}1HH]UHHd$}H="rH="HEBDHEH@(HEH5 #H}HX2H`&HEHtHVH0L8L@H]UHHd$H}HuUM(߄H}14HUHuHTEHcUHEHtH@H9uH}HuHcuH}1}HUHuH H]UHH$PHLLLLH}HuHU+HDžHHHhPH.HcH7H]HtH[HH-H9vxDžtDž`Džpt%tH=YHH*sHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$M1M11HH55iHULeHctHH9vրHctHH}SAD< w, t,j,b^HcpHqˀHUHcJHHHEHcXH)q謀HH-H9vTlDžhhHEH8t?H}~IHc`HH9vLc`LL~CD, Lc`IqLH-H9vD`;hsHcpHclHqHH-H9v{pHctHqHH-H9vKt'HEH8uH}HHc`HH9v Lc`LHLuHctHH9v~LctLH}WCD.BD#HctHq~HH-H9v~tHc`Hq~HH-H9vc~`t;xLeMl$HctHH9v'~HctHI|$AD t tH]L{LctIq#~LHH9v}LH{PH]LcHctHH9v}LctLH{CD7C:D,t0HctHq}HH-H9vT}tDžp&HEH8uH}HHc`HH9v }Lc`LHLuHctHH9v|LctLH}VCD.BD#HcpHq|HH-H9v|pHExtJLeMl$HctHH9v^|HctHI|$I| d DždDdADžhhHEH8uH}RIHc`HH9v{Hc`HLRLeHctHH9v{LctLH} CD,ADHc`Hq{HH-H9v\{`HctHq{HH-H9v,{tD;h t;xGHc`Hq5{HH-H9vz|BLH薸HHtM|HLLLLH]UHHd$H}HuUB|H}Hu蕸}}uEEt&tCt[tuH hhHhH5hH1HhH5hHuH hHhH5hHkVH hHhH5hHL71H hH5hH2H hHhH5#hHH]UHH$HLLLL H}HuHUHMzHDž(HDž8HDž`HUHpGH)%HcHhV HMHUHuH} HcUHqxHEHtH@HqxHcEH]HtH[HqxHqxHH-H9v.x]؀}t8Hc]HEHtH@H)qJxHH-H9vw]3HHc]HqxHH-H9vw]H}tJHHEHtH@HqwHc]HqwHH-H9vlw]HEHxHcu1&EEH}HEHxHHcEHH9vwLceLHNl#H]HtH[LeH}rLHLHcEH]HtH[HqvHH-H9vv])LeMl$HcUHH9vwvHc]HI|$AD  HEHxIHcUHH9v vLcuLLH]LcHcUHH9vuLcmLH{qCD,CD7Hc]HqvHH-H9vu]Hc]HquHH-H9vu]HEHxIHcEHH9vVuLcuLLH]LcHcEHH9v'uLcmLH{CD,CD7Hc]Hq>uHH-H9vt]Hc]HquHH-H9vt]̋E;ELeMl$HcUHH9vtHc]HI|$ AD t t?H]L{LcuIqtLHH9v7tLH{H]LcHcUHH9v tLcmLH{CD7C:D,HEHx>IHcEHH9vsLcuLLDH]LcHcEHH9vsLcmLH{CD,CD7Hc]HqsHH-H9vSs]Hc]HqsHH-H9v)s]H}E;EHEHxbHHcUHH9vrLceLHhNl#H]HtH[LeH}DLHLHcEH]HtH[HqrHH-H9vsr]̋E;E}HEHxHHcUHH9v2rLceLHJt#H7H=-H$HHc]Hq,rHH-H9vq]H}(HEHxHHcEHH9vqLceLHNl#H]HtH[LeH}LHL}HcEH]HtH[HqqHH-H9v*q]HEHxzHHcUHH9vpLceLH耿Jt#HH=HHHc]HqpHH-H9vp]HcEHqpHcUH91H`FHWhH@HcEHqpH0H0HH0#j1H0H8.01H8H8HHHhHPHcEH0H0HH0i1H0H(÷01H(CH(HXH@1ɺH`{H`H=,v2HH5H?@H(H8H`HhHtBHLLLL H]UHHd$H]LeLmLuL}H}HuHUHMPpHEHXHtH[HH-H9vnHEHEE@LeMl$HcUHH9v?nHc]HI|$込AD t6 t1t/Hc]HqMnHH-H9vm]QHc]HqnHH-H9vm]HEHcHqmHH-H9vmHEHE;ELeMl$HcEHH9vcmHc]HI|$AD t tH]L{LcuIqemLHH9vmLH{蒻H]LcHcEHH9vlLcmLH{bCD7C:D,t*Hc]HqlHH-H9vl]HE;E-LeHE8tDLmMuH]HcHH9v]lHcHI}޺AD t tuA$A$H]LeLmLuL}H]UHHd$H]LeLmLuH}HuHmH}HuH]HtH[HH-H9vk]EHc]HqkHH-H9vk]fLeHcEHH9v\kHc]HH}ܹADE<*b,+v4,t0,.uVHc]HqakHH-H9v k]*Hc]Hq5kHH-H9vj]Hc]Hq kHH-H9vj]E;E,HcuH}1eEH}HþH^H}ɺHþHC(ELeHcEHH9v,jHc]HH}謸ADE<*,*$,O,G,?, 7,,H}+HHcEHH9viLceLH1EBD#Hc]HqiHH-H9vri]Hc]HqiHH-H9vHi]H}蜹HHcUHH9v!iLceLH袷LuHcEHH9vhLcmLH}vCD.BD#Hc]Hq iHH-H9vh]H}HHcEHH9vhLceLH BD#\Hc]HqhHH-H9vMh]H}衸HHcEHH9v&hLceLH觶EBD#Hc]Hq@hHH-H9vg].H}7HHcEHH9vgLceLH=BD#.Hc]HqgHH-H9vg]H}ԷHHcEHH9vYgLceLHڵBD#*Hc]HqugHH-H9vg]cH}lHHcEHH9vfLceLHrBD#.Hc]Hq gHH-H9vf]H}HHcEHH9vfLceLH BD#|Hc]HqfHH-H9vMf]H}蜶HHcEHH9v!fLceLH袴LuHcEHH9veLcmLH}vCD.BD#Hc]Hq fHH-H9ve]Hc]HqeHH-H9ve]E;E4H}ӵHHcUHH9vXeLceLHٳBD#)Hc]HqteHH-H9ve]H}pHHcEHH9vdLceLHvBD#$H]LeLmLuH]UHH$HL L(L0H}HuffHDž8HDžHHDžpHUHu2HHcHxoH]HtH[HH-H9vd]]DeA4EELmHcEHH9vcHc]HH}XA| Hc]HqcHH-H9vc]LmHcEHH9vvcHc]HH}A| v*Hc]HqcHH-H9v7c]LmHcUHH9vcHc]HH}蘱A|cv*Hc]Hq1cHH-H9vb]D;eE;EuH}HuHcuH}1sEELeHcUHH9vtbHc]HH}A| rnH}賲HHcEHH9v8bLceLH蹰LuHcEHH9v bLcmLH}荰CD.BD#H}EHHcEHH9vaLceLHKBD##Hc]HqaHH-H9va]LeHcEHH9voaHc]HH}ADEcH}褱HHcUHH9v)aLceLH誯HcMH ףp= ףHHHH?HII0q-aLH=v`Fl#Hc]Hq aHH-H9v`]HcEHdHHHH-H9v`]} H}ϰHHcEHH9vT`LceLHծHcMHgfffffffHHH?HII0q[`LH=v `Fl#Hc]Hq7`HH-H9v_]HcEH HHHH-H9v_]H}HHcEHH9v_LceLH LcmI0q_LH=v^_Fl#Hc]Hq_HH-H9v2_]Hc]Hq`_HH-H9v_]E;EiHcEHq*_HcUH9Hp衜H hHPHcEH@H@HH@X1H@HH蔦01HHHHHXHhH`HcEHq^H@H@HH@X1H@H801H8螺H8HhHP1ɺHp֟Hp5/H8艛HH}HpqHxHt0HL L(L0H]UHH$PHXL`LhLpH}HuU_HDžxHUHuF+Hn HcHUH}Hu"HEH8HEHHtH[HH-H9v\]Y@LeM,$HcUHH9v\Hc]HI<$AD t tH}豬HHcEHH9v6\LceLH跪BD# EE+Hc]HqI\HH-H9v[]}~LLeM,$Hc]Hq\HHH9v[HI<$>AD t ttE;E~HcUHcEH)q[HcuH}ŲHc]Hq[HH-H9vN[]}HEHHtH[HH-H9v[EELmMuHcEHH9vZLceLI}dCD& rts9H}IHcUHH9vZLcmLLCD, ;]vHEH8t4}t H}HEH01HxpeHxH}耘+HxHEHt!-HXL`LhLpH]UHHd$H}Hux[HEHUHu (H3HcHUupH}HuGHEH0HtHvHEH8HuH=s^HP~0HEH0PH}.HuH}1Hh踘*H} HEHt,,H]UHH$H}HuHUMDEZHDžHDž HDž0HUHu'H,HcHx2HEH8H0hH@HcEH(H(HH(WR1H(H0b01H0H0HHHhHPHcEH(H0HH(Q1H0H 01H wH HXHhH`HhHhHuHHHpH8H}1ɺx(H7H +H0HxHt>*H]UHH$ H L(L0L8H}HuUMXHEHDž@HDž`HUHp$H%HcHhH}1ؔHuH}˔EEHcUHqVHcEH9}*Hc]HqVHH-H9vFV]}}EfDH]HtH[HH-H9v V]܉;EHEH0H}HU1[EEsLeHcEHH9vUHc]HH}4AD t tuE؉E2Hc]HqUHH-H9vcU]؋E;E~}EȉELeHc]HqmUHHH9vUHH}蚣AD t tuFLeHcUHH9vTHc]HH}\AD t t tE؉E4Hc]HqTHH-H9vT]؃}>}EȉELeHcEHH9vLTHc]HH}̢ADAr sTLeHc]HqSTHHH9vSHH}耢ADAr rE؉E4Hc]HqTHH-H9vS]؃}6}uEȉE̋E;ELeHcUHH9vjSHc]HH}AD t tNHc]HquSHH-H9vS]̉;ELeHcUHH9vRHc]HH}sAD t tLmHc]HqRHHH9vRHH}'LuHcUHH9v{RLceLH}ADC:D&t*Hc]HqRHH-H9v8R]HcMHqfRHuкH`衢H`HEH0H}1heHEHHHHcMHqRHuкH@TH@HPHhHXHHH}1ɺ葓}~.HcU H`6H`HEH0H}1͐Hc]HcEH)qQHH-H9v3Q]HMHtHIHcEH)qUQHqJQHcUHuH`膡H`H}&L"H@蠎H`蔎H}苎HhHt#H L(L0L8H]UHHd$H}@uERH=luHHEHuH}0 HEH]UHH$@HHLPLXL`H}@uHUM࿸QHDžhHUHxH7HcHp}t'LeLmMu}OI]H!LH]HtH[HH-H9vcO]EEfE;EbLeHcUHH9v,OHc]HH}謝AD:Et,Hc]HqCOHH-H9vN]떋E;E~WHcMHcEH)q OHcUHuHhHLhLeLmMuNI]H#LLPHc]HqNHH-H9v`N]؉;E/Hc]HqNHH-H9v/N]HhHpHt!HHLPLXL`H]UHHd$H]LeLmH}HuHUM8OH}u H}1fLeLmMulMI]H LHcHqMHH-H9vQMH}DMLEHu1H]LeLmH]UHH$ H L(L0L8L@H}HuUMLEDMؿNHEHUH`HHcHXH}t5E;E-H]LeMuYLM,$L HA;EH}1蓊n}}ELmH]HuLL#L LA$;EQLmH]HuKL#L LA$HcHqLHH-H9vK]EEHHH;EEEfEDuLmH]LeMuZKM<$L HLDA}t H}r}~6HcEH]HtH[HqlKHH-H9vK]HcEH]HtH[Hq6KHH-H9vJ]H;E4HcuH}1荙EEHPP;EEE@EDmH]LuLeMuRJM<$L LHDA}t H}V}H}H}臚IHcEHH9v JHc]HL荘MdH]HtH[LmH}iLHLHcEH]HtH[HqIHH-H9vI]H}H}IHcEHH9vfIHc]HLMdH]HtH[LmH}×LHLEHcEH]HtH[HqJIHH-H9vH]P;EPKH}袆HXHtH L(L0L8L@H]UHH$HL L(L0L8H}HuUMDE%JHEHUHXhHHcHPH}t4E;E,LeLmMuGI]HqL;EH}1}}EH]LeMuGM,$L(HA;EQH]LeMuWGM,$LHAHcHqGHH-H9v;G]HEHcEHcUH@H9[HEHHE@HEHUHH9vFDuLmH]LeMuFM<$LSHLDA}t H}H}~HEHqFHEHEHtH@HEqFHEHu HHEHqFHEH]HtH[H|\HEfHELeHEHH9vELmLH}C|,'uHEHqFHEH;]H@H;EH}Hu1~HEHcEHcUHHH9NHEHHEfHEHEH-H9vbEDuLmH]LeMu(EM<$LHLDA}t H}H}~LH}kIHEHH9vDH]HLqAD HEHq EHEHu EHH}OH}IHEHH9v|DH]HLMdH]HtH[LmH}ْLHL[HEHtH@HEqcDHEH}qIHEHH9vCH]HLwAD'HEHqDHEHEHtH@IIHE@HEH]HEHH9vCLeLH}B|#'uLH}ƓHHUHH9vKCLeLH̑BD#'HEHqgCHEH}zIHUHH9vBH]HL耑LeHUHH9vBLmLH}TCD,ADHEHqBHEL;}H}IHEHH9vyBH]HLAD'HEHqBHEHHH;EHEHqqBH;Et H=I]HLLPHEHtH@H;ELeHEHH9vK>H]HH}ˌA| HEHq`>HEHEHEDHEHq9>HEHEHtH@H;E|4LeHEHH9v=H]HH}FA| uHMHEH)q=HUHuH`L`LeLmMuO=I]HLLPHEHtH@H;E|^HEHqu=HEHEHtH@H;ELuM1LmMuHEE3HEHcHqHcMHq3H}Hu,HcUHq3H}ϊ}t H}HuqH}.qH}%qHHHtDH8L@H]UHH$`HhLpH}Hu4HEHUHu*HRHcHxHuH}%EEE^LeHcUHH9v2Hc]HH} AD t t tuG}uEEEHc]Hq~2HH-H9v&2]}H}kHHcEHH9v1LceLHqBD# HcUHq 2HcuHq1H}HcEHq1Hc]H)q1HH-H9v1]EHc]Hq1HH-H9vN1]HUHtHRHqs1HcEH9~H}HuYoH}nHxHtHhLpH]UHHd$H]H}Hu(2H}HunHEH8H}HEHHEHEHHtH[HH-H9vj0gEfEHEasHEH qs0HU'HEAsHEH qJ0HUHE;]H]H]UHHd$H]H}HuHUHMP1HEHHtH@HEH9E~HEH0H}HU1 oH}}HEH}}HEHEHUH)q/Hq/HEH9E~HEHEHEHtH@HEH}u H}HEH;EuPHEHH]HHHUHH9v.HUHuHp5H}/HEHUH)q.H+Eq.Hq.HEHEH;E}kH}~:H}~HEHHEHHHEHuHHEH}HHUsHuHEH)q.Huqv.H}1|`HuHEH)qW.HuqL.H}1|H}~1HEHHEHHHEHuHHEH}HHUH}~HEHHEHHpH}HUH]H]UHHd$H}HuHU Q/HuHUH}E00 H]UHH$PHXL`H}HuHU؈MDE࿨.HEHUHpHAAILMtH@HHD$hHtH@HLH|$hRIHH5>HAAILMtHIHT$hHtHRLH|$hH$HtH@HHAHH$HT$hHtHRH)HH$H4H|$p1>AALkMHHH$HHL)IM~'H|$pK?Jt0HD$hJ|8LMMH$~)H|$p?Jt0H$H|$x‘L$L$I9yHT$pHHtH@L9|6H|$p>Jt0HD$pHHtHRL)HHD$hJ|8]訿H5=H HD$`HtH$A_A^A]A\[Hd$HD $HLL$Hd$UHHd$H]LeLmLuL}IHuIIELˋEt t!t6LILELLHuO2ILELLHukILELLHuaH]LeLmLuL}H]SATAUAVAWHd$IIIIDHD$xHD$pHD$hHD$`HHt$HEHcHT$Xu\L1H|$h:NLl$hL1H|$p&NLt$pL1H|$xNHt$xAH|$`LLNHt$`L]NؽH|$x.*H|$p$*H|$h*H|$`*HD$XHt1H$A_A^A]A\[SATAUAVAWHd$IIIIDHD$xHD$pHD$hHD$`HHt$H%HcHT$Xu\L1H|$hMLl$hL1H|$pMLt$pL1H|$xLHt$xAH|$`LLMHt$`L=M踼H|$x)H|$p)H|$h(H|$`(HD$XHtH$A_A^A]A\[SATAUAVAWIHIAILH59ILMHHtHILMtHRHHuH5LMuH=vEIHtHRHHH|HfDHI7HH9A_A^A]A\[SATAUAVAWIHIAILH58ILMHHtHILMtHRHHuH5LMuH=E>IHtHRHHH|HfDHI7HH9A_A^A]A\[SHd$HH$HT$Ht$ 苷H賕HcHT$`uCH޺$;HuHH1H5ph|( HH?'H<$_H&HD$`HtػHd$p[SHd$HH$HT$Ht$ ۶HHcHT$`uDH޺$;HuHH1H5Iph' HH&H<$H讹H&HD$`Ht'HHd$p[Hd$H.H8t H.0Hd$SATHd$HHD$H$HHHP8L$$HH|$HqP8H|$LHH|$Q%HI%Hd$A\[SHd$HHD$Ht/HHtHRH|$sHD$H$HH<$^u0H|$$Hd$[SHd$HHD$Ht/HHtHRH|$3HD$H$HH<$u0H|$z$Hd$[Hd$6Hd$Hd$Hd$Hd$HD-H8t H7-0Hd$Hd$fHd$UHgH]UHwH]Hd$Hd$UHH]UHH]Hd$E1AHd$UHH]UHHd$H]LeLmLuHIIE|(AAIcIHH8t E9ADH]LeLmLuH]Hd$HHH] HHd$SHd$HH$Ht%HHtHRH6 H<$H2Hu0H"Hd$[SHd$HH$Ht%HHtHRH H<$HJ2Hu0HG"Hd$[SHHHtH@HHtHRH9|9Ht4HHtHRHuH5HHuH=NHH[Hd$HHtH@HHtHRH9|OHHuHHtHvHHHtH@H)HHtHRHuH=|H0Hd$Hd$E1A]Hd$UHH]UHHd$H]LeLmLuL}HIAHt;H2AE|*AfAIcIHD$ЈIIM9r A}tuA}t0ۊD$ tINLLH|$ ÄuIu M9nuM1HLHd$ A_A^A]A\[SATAUAVAWHd$H|$(HHT$H $LD$ DL$H<$IE0H$HD$HHtHRLl fDIL9|$(wAuA?HD$ ЄtLMA fDA4$;HD$ AHIH9\$(wH$L9wEuH$L9wE0D$D tHSLHt$H|$(AEtL{IEu L9|$(XEuM1HLHd$0A_A^A]A\[SATAUAVAWHd$H|$IIIL$DH<$MH<$t M9|M}M1t L5 L5t6AIT$HD$HHD$J4(MH $H|$7I4AIT$HD$HHD$J4(MH $H|$IHLHd$A_A^A]A\[SATAUAVHd$HIIIL$LL$LLLHAHH6HHd$A^A]A\[SATAUAVAWHd$H|$Ht$HT$H$HD$HtH@IMH|$ HD$HtH@!H;D$HD$HtH@L)IHD$D(HD$HtH@H+D$HpHD$HT$H|AxHHD$H HT$Ld LLH|$=zHuHT$HH$_HT$HHHD$HD$HtH@H+D$HpHT$HD$H|AhxHH|HD$HHL9jH$Hd$ A_A^A]A\[SATHd$@HHHHtHRHrHHtHRH9sM1.HHtHRH)HrH|wH}M1L$LHd$A\[Hd$Hd$SATAUAVAWHd$H|$Ht$HT$H$HD$HtH@IMH|$ HD$HtH@!H;D$HD$HtH@L)IHD$fD(HD$HtH@H+D$HpHD$HT$H|PA^wHfDHD$H HT$LdJLLH|$mHuHT$HH$_HT$HHHD$HD$HtH@H+D$HpHT$HD$H|BAvHH|HD$HHL9jH$Hd$ A_A^A]A\[SATHd$fHHHHtHRHrHHtHRH9sM1.HHtHRH)HrH|YGvH}M1L$LHd$A\[Hd$Hd$UHH$`HhLpLxLuL}H}IHUHMLELMDuHUHELhIHL!ILLHpLeHUHEHXHIHIHLLpLmH}HEHPH5>p4H}HEHPH5>pHEHEHEHEHIHEHL9t.HHPH=Eu@HH5H>IAtbLH}HиP8D|VHEHEHUHcEL$I4$H}HиP8HuHUHcEH< E9 LH} H}1 HEHEL}LMtH@HUHHEPEDHEHEHUHcEHHUHtHRHHuHE:HEH+EH9HEHcUHHtHRHEHcMHALMtH@ImCD/H\Aֹ HH=Qh藘$r(1H|$ HT$ HD$(H0H|$(1itAIM9|HD$(HHtHID$0H9wHD$(HHtHIT$0H9~/T$0H)ʾ0H|$ "HT$ HD$(H0H|$(1>H|$ Hd$@A_A^A]A\[Hd$Hd$SATHd$@H$AHHIH$HtH@H~eH$AAĀvCAkH$@0gD$H|&HAkH $L0gD$H9gCgD$HDHd$A\[Hd$1Hd$SATAUAVHd$HAH$H1IcH HIMcHrqqII?LIA|egEuAIcHHHr01HH4$HH1IcH%I$I$IHHH?HAAA~PIcHHHr01HPH4$HH1/IcHNNNHHH?HAgAt$A1H H4$HH1HBHd$A^A]A\[SHd$HH$H"H$A%kH$RЃ0%kH$RЃ0%kH$Rg0HHd$[SATH$HfAH$A̸%I$k)gp0H1A%I$ADAA̸%I$k)gp01H H4$HH1A%I$ADAAHHH׹HT$H1Ht$H 01H!H4$HH1DAONAgrA1H( H4$HH1H_H$A\[SATAUHd$HAHD$H$DH4L,$DHH|$ H|$LHH|$HHd$A]A\[SATHd$HHD$H$HL$$H޺H|$H|$LtHH|$tHlHd$A\[SATAUHd$HAHD$H$DHDL,$DHH|$0H|$LCH|$HHd$A]A\[SATHd$HHD$H$HL$$H޺H|$H|$LԳH|$HHd$A\[SATHd$HHD$H$HgL$$H޺H|$QH|$L$HH|$$HHd$A\[HHtHRDDDHtH9}Hd$ Hd$SATAUAVHd$HAHL+MtCMm=HF:d(u/MuIM~ HF:d0tLL)IvHMnIMHd$A^A]A\[SATHd$II$HtH@H|AHHfDHI$| uI$HS| uLH޺RHHd$A\[SATAUHd$HAH$AH PHB|( tI?HBD( Av$AH HNH<$HLAIHHtH@L9}H/Hd$A]A\[SATAUAVAWHd$IH4$AH<$?HD$A|WM1AH4$LHIH~HH4IIcL9|HuH~Lt$HHD$Hd$A_A^A]A\[SATAUHd$HAHAH$HHHtH@IcH9~#IcH)AHH4$HH1H Hd$A]A\[SATAUHd$HAHAH$HJHHtH@IcH9~#IcH)AHH$H3H1CHHd$A]A\[Hd$HHH vHd$Hd$HHH Hd$SATHd$HI@LHuLMtHRHHHHHLHd$A\[SATAUHI@I4$IHuI4$H*L1 %IMI4$HߺYLL A]A\[Hd$ !Hd$Hd$ aHd$SATAUHIHH+P@L+HHtH@J(P fDIL9v AEA$rL9vA}ijAE fDIL9v AEA$sL9wA]A\[1HHtHH =@ fDHH9v:>rH9vH@HH9v:>sH9w1E1HHtHvHIY fDIL9v ED rL9vAD9t DIL9vED rMI)ILL9vD9uHd$IHd$SATAUAVAWHd$IHILM1LH$H2II~L1uD+Mt3MH$HtHR IL9|H$BL8A $sLL)L1 LL)H~L HLL)H$J|(<^Hd$A_A^A]A\[SATAUAVAWHd$IHILM1LH$HRIL+Mt1MH$HtHR DIL9|H$BL8A $sLL)L1V LL)H~L HLL)H$J|(|]Hd$A_A^A]A\[SATAUAVAWHd$H<$AIHL$M1AHD$LMtH@HH<$11VCD'HT$sI9IcHL9u-HD$H<$Ht$1H<$ CL'HT$LIL9|IcL9uHd$ A_A^A]A\[SATAUAVAWIIIHHtH@I DHI9| DAsIHH)II fDHI9| ADArIA_A^A]A\[SATAUAVAWIIIcHHHtH@IfHI9| DAsIcHH)IcI@ fDHI9| ADArH~ AAA_A^A]A\[SATAUAVAWHd$H|$HIH$E0LIL^IĻ2@LLLD$HH<$Ht$HAHEuI9}HDHd$ A_A^A]A\[SATAUHIHtMd$HE1QfDHHtHRIcH)HBIcH)HHHuAtIcHH=?heAAEA]A\[SATAUHd$HIIH$LMtH@L9|LMtH@HH?HHLHH?HHH)¾ HH4$HL1FHHtH@LH)¾ HwH$H3H1 HLHaHd$A]A\[SATAUAVAWHd$IAAֈH$EuLH5>haL1PDIcHHAA ~A7A0A1HH4$IL1kIcHHAEI?t AI0H.H4$LHHd$A_A^A]A\[SATAUHd$H<$@H<$HD$L$$MtMd$E1H4$H|$ΝHt$HTfH$B| @vH$BL H7HIcHAH$BL H0HIcHAIHHI}H|$HDHd$A]A\[SATAUAVAWHd$H|$1H$M1HD$HtH@H~HD$8-uAE0EtIHD$HtH@IIHD$B|8 Crt r t tIGL9IGHT$|ªAE0AăCrt r t tsSHAfPzf;Hzs3AHBzH$HPzH)$I HtBzH$1H$M9Et Hc$H؉H$$Hd$A_A^A]A\[SATAUAVHd$H<$HAH<$1HD$E0H4$H|$wHt$H:L4$MtMvAu#H<$u MAAMuA0 fHI9|EuH} H$|MtI9|H$|Du HHHBL9?H$|Cu4H$Hr|0Mu HH$Hr|0Du HI9|\H$|CuQHdI9|H$|CuHdI9|H$|CuHdEtI9|H$|CuHdHBL99H$|Xu.H4$HB|Cu HZH4$HB|LuH(I9|H$|LuH2I9|\H$|XuQH I9|H$|XuH I9|H$|XuH EtI9|H$|XuH HBL9=H$|Iu2H4$HB|Xu H H4$HB|Vu HuI9|H$|VuHgI9^H$|IuSHI9|H$|IuHI9|H$|IuHEtI9|H$|IuHI9AH|$HDHd$A^A]A\[UHHd$H]LeHADHuHuAH]HE HMHHPM1H=́u'tHH5HEH]LeH]SHd$HHH*u$$Hd$[SATAUHAH1{ADA/fDH>TA)DHmHTH3H1kDHD;d}AA]A\[SATAUAVHd$IAA։L1A ~A uLDDq_McIFHcHHIIcL1@I$McJD0I$'@u HD0@0AHH9vHd$A^A]A\[SATAUHAAH1HE~eIcH1HMcJD(HfDD0AHH9wDwH)L`E~HHIc0NeA]A\[SATAUHIAH1E~cIcH16HMcJD(HfDD0IHH9wMwH)L`E~HHIc0dA]A\[SATAUAVHd$HIM1H޺?iIHuLHߺILMtH@HHtHRH)H`IfDIHHtHRH|81HI<@t A:tAH|$(!H|$H|$ DHd$8A^A]A\[SATAUHIIH߾ehA<$vIAMH|>1H@DHFE $HIHB%AB/0BH9A]A\[SATAUAVAWHd$IIHT$HD$H$L1HD$HtH@AA1LMtH@H~5HcHLMtHIHHHBHcAtHT$D @0A HcHT$DdAH|$_Ht$Ht$HHP@H$I6L1'A9fH|$tHlHd$ A_A^A]A\[SATAUAVAWHd$IIHT$HD$H$L1HD$HtH@HH?HHHAE@HHcHHPHt$H|$HT$1H5-hHIH<$ ALMtH@H~ HcLMtHIHHHBADA0A1H|$HT$I6L1A9TH|$2H*Hd$ A_A^A]A\[SATAUHd$HIHH|$HH$HD$0AH1?fDH=xH|$ H5-huu\H$HD$(D$sbHD$(HtH@H~NH $HtHIHH4$H|$0H|$0L軕uAcD9| HDwAH;ucD9NH|$0 HHd$@A]A\[HHtH@Ht-H9w&!HD HH9r@:8uH)H1HHtH@HtHTHH9r@::uH)HHSATAUAVAWHd$IHt$H$LMtH@IHD$HtH@MHyL9pHT$LlIFHT$H\Gd7LE:eu?LL)HpLMtHRL[HuLL)HPHD$H)HBH$ IL9vH$Hd$A_A^A]A\[SATAUAVAWHd$IHt$H$LMtH@IHD$HtH@H9}!HMH}L9tHT$LlIFHT$H\Gd7PE:eu?LL)HpLMtHRLZHuLL)HPHD$H)HBH$ IL9vH$Hd$A_A^A]A\[HHtH@Ht:H9w3!HDV HH9rf;8uH)HH?HHH1HHtH@Ht,HTFHH9rf;:uH)HH?HHHHSATAUAVAWHd$IHt$H$LMtH@IHD$HtH@MHL9HT$LlBIFHT$H\BfGdweffE;euXLHLH)HrLMtHRL[Hu/LHLH)HHD$H)HH?HHHBH$ IL9vH$Hd$A_A^A]A\[SATAUAVAWHd$IHt$H$LMtH@IHL$HtHIH9}!HMHL9HT$LlJIFHT$H\BfGdwifDfE;euXLHLH)HrLMtHRLZHu/LHLH)HHD$H)HH?HHHBH$ IL9vH$Hd$A_A^A]A\[gB|TLHc !HALLHcf fHHALNH9gB|XLHc !HfALHfLfHcf fHHfALHfNH9SATgA@AfAHLcMcMIML% LcMF AE!IGL F HLcMcMIML%LcMfF fAMIGL FLD9A\[Hd$Hd$Hd$Hd$Hd$HH8`Hd$Hd$HH8Hd$Ar s A0 smffAHAr s A0 s/ffADgF HDHg)HuM1:HHtHIHcIL9} 1fIL9| BTsL9}M1LHd$Hd$Hd$HIH5$hHHHHtHIH~,HHtHIH|1fDH|0<$H9LH+Hd$(Hd$HHH5V$hHHHHtHIH~,HHtHIH|1fDH|0<$H9HHHd$(Hd$HHtH@~9@9|LHcALr~HcHRHd$SATHd$HIHLHHd$A\[Hd$HHHtHR~.@~LHcALr9t Hc1JHd$SATHd$HIHLHHd$A\[SATAUAVAWIIIHtH@ÅA fDAE~IIcDArEuL1'xAfAD9|IIcDArA~ALHIcIcH)HPIIcH|,t:,t6,t2, ,v&,,v,t,t,t,t ~EHcMHcEH)q#HcUHqHuHhTHhHEH0H}1Hc]Hq܆HH-H9v脆]EHc]Hq謆HH-H9vT]HcUHEHtH@H9 }y}t-Hc]Hq\HH-H9vHEHEH0HhnHhH}FWHhH}HpHtXHHLPLXL`H]UHH$pH}HuH}sH}j0HEHEHUHxkSH1HcHpkEHuH}HtUHUHuH}z}uH}t7HUHuH}\}u }tEHuH}͚HEVH}hH}_H}VH}MHpHtlWEH]UHHd$H} )HEHxu(HEHxH5O hjHEHxH5[ hVHEHpH}EHEHxt6HEHHEHH hHEHEH@HEHuH}1ɺH]UHH$0H0L8H}HuH\HEHDž@HUHXQH/HcHP,HEHH1ҾHHL)HօHuH}|HEHEH}H5m h(ELeHUHH9v輂H]HH}LH(-H0!H}H}H5uH}pH}H}H8Ht NHEHLLL H]UHH$HLLLLH}HuX|HDžHUHpHH&HcHhiEH}HEHPH|HH&HcHLeLmMuyI]H9LHcHq-zHH-H9vyHEEDuLmHLeMuoyM<$L9HLDAHH=f˅IHEHH}GH%HcHHE@DH}uHUH=˅HEEHuH}mHHH GH5%HcH@uIDmH]LLeMuzxM<$L8LHDAHH}aIH@HH=5uKHH8H HeFH$HcHH8HPH=ʅ;HEDmLuHLeMuwM<$LR7HLDAHHEHx޵HEHx Hu͵H5HH}GHHHtKKXJHH}1HHt9J;EzH}t H}1H}}1HHtIgHH軴HhHtIHLLLLH]UHH$HLLLL H}HuOxHEHUH`DH"HcHXEH}t,H]LeMuuM,$L5HAu!H}踀H}1H=$t/HEH@HCH"HcH0H}PtHUH=DžeHEH=iDžlHEHE@DH}4jH]LeMuuM,$L4HAHcHqNuHH-H9vtH((GEEDuLmH]LeMutM<$L>4HLDAH}0H5g̩Eu0H}0H5 g賩uH}0H5*g蝩HH}BH HcHH]LeMusM,$L3HALmLuH]HusL#Lj3LLA$}tHuH}1>HuH}к>DHHH=0uFHHHxH8pAHHcH0uQHHPH=Ņ.6HEHxHu-HEHx HuH5HH} C4DH0HtGFE(;EH}1][HuH}\HEЊ@HEHuH}CH},H},HHtAECH}HXHt"EEHLLLL H]UHH$`H}HuHUMLEH}دH}ϯsHDžhHUHx?HHcHpukHEHEHuHMHUH}"%HEH8tDH!Ņ8tHEH0HhyHEH0HhHhH}TBHhӮH}ʮH}HpHtCH]UHHd$H}HurH}H}H}V{wEHEHUHu>HHcHUu*HU0ɾH=S…6 HEHH}6EAH}*HEHtCEH]UHH$HH}HuXqEHhH(=H'HcH u0HUH TH H5HU}EE@H HCH=,uBH)HHHp=HHcHHEH`HHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$M1M11HH5agHѕHH@H_HHH蘒3]?HHtBhB!AEHH]UHH$`H}HuHUHM࿠oHDžpHUHu EHH]UHHd$H}xlH}H}utsEHEHUHu9H+HcHUu&HU0ɾH=HEHME;H}$HEHtn=EH]UHH$pH}HuHU运lHEHUHud8HHcHUH}xH}t5HEHxHDžp HpHu1H}诀H}H}t5HEHxHDžp HpHu1H}sH}z:H}LHEHtnHE؀x u4HEHHH}HUHH)Hƅ||gH}tHuH}1HgHE؀x t HE؀x.uHHEHHHUHH)HHaHHuH}1蛚0HEHHHUHH)HHƅ|HE؀xsHE؀xgHE؊@gH`yL`LeLmMui9I]H LLPH`5wHEH@8HP01H5gH`xL`LeLmMu 9I]HLLPLuM1LmMu8I]HLLPE;E~EE̋EEẺEHc]H}_HcHq8H9~2H}CHcHq8HH-H9v}8]}}EEHHDž@E艅XHDžPH@H5gH`OL`LeLmMu7I]HLLPLmHgLuMu7M&LaHLA$PD}D;}+EE@EẺXHDžPHP1H50gH`TNL`H]LeMu;7M,$LHLAPHEHxuiHEH`tHEHP 1H5ygH`uvH`LeLmMu6MuLpLHAPH`tHEHP(1H5FgH`vH`LeLmMuq6MuLLHAPH`t豰HUHBPHEHp8HHEHxH5z%]HEH@HcXHqN"HH-H9v!|.EEHEHxutTHH;]H]H]UHH$`H`LhLpLxH}HuV#HEHEHUHuHHcHUHEHxtHEHPH5gH}HEHx tYH}^HEHP 1H5gH}\`LuHEL`HELhMu I]HRLLPHEHp8H}eH}tfH}e^HEHp8H}DHU1H5OgH}_LuHEL`HELhMu0 I]HLLPHEHx@t%HEHp@H}\HUH5 gH}HEHxHtHEHPHH5gH}HEHp(H}HUH5 gH}HEHp0H}HUH5gH}{HELpM1HELhMu^I]HLLPH}(]H}]HEHtAH`LhLpLxH]UHH$HLLL L(H}HuHU HEHDž8HDž`HDžhHUHxHHcHpH}u H}H}tIH]LeMtMd$LHH9vALH}lBD# t EEHEH@LpPLmHEH@HXPHuL#L|LLA$8HEH@HXPHEH@LhPMuMeL@HA$%H}HEH@LxPE1LhHEH@HXPHuEL#LLDLA$LhHELhHEHXHuL#LLLA$PfH}H5gjHHhZHEH@LxPE1L`HEH@HXPHuL#L>LDLA$H`Hu1Hh[LhHELhHEHXHuCL#LLLA$P}H`YHEH@HgHHHEH@LxPE1L8HEH@HXPHuL#LoLDLA$H8HPHYgHXH@1ɺH`]L`HELhHEHXHuWL#LLLA$PH`YHEH@HgHHHEH@LxPE1L8HEH@HXPHuL#LLDLA$H8HPHgHXH@1ɺH`\L`HELhHEHXHuuL#LLLA$PH}ttH}H5g hHt_H`XHu1H"gH`YL`HELhHEHXHuL#LLLA$PHEH@HXPHEH@L`PMuM,$L^HAHcHqHH-H9vH00EEHEH@LxPDuLmHEH@HXPHu2L#LLDLA$H}H}H5gfHLcuHEH@LhPHEH@HXPHuL#LqLA$HcHqI9|}t@HvgHHHEHPH=gHXHHH}1ɺZ>H6gHHHEHPHgHXHHH}1ɺ?ZH}H5,geHu@HUH}1H5gW(H}H5geHuHUHuH}1ZWHELhLuHEHXHuL#LQLLA$P0;E$H8cUH`WUHhKUH}BUHpHtaHLLL L(H]UHHd$H]H}u(HEH@HcXHq;HH-H9v|R]؃E@mHEHxu\IHE@ ;EuHE@HuH}H}}H]H]UHH$`HhLpLxLuH}Hu)H=2tH蕤HEHUHu_HHcHUu;HuH}_LuLeLmMuI]HmLLHEHH8HEHP(HEHp H}A;]H}1H}H]H]UHHd$H]H} HEH@HcXHq HH-H9v |.EEHEHxuD=HE@ ;]H]H]UHHd$H}I HE@H]UHHd$H}Hu HEHUHu[H胶HcHUu"HuH}HuHEHx HEQH}GHEHtHEH]UHHd$H}Hu HEHx(HudH]UHH$HLLH}HuHUHMLE! H}u'LmLeMu LHLShHEH}&HUHx3H[HcHpzHEHE@HE@ HE@PHEHx HuFHEHx(HuFHEHx0HuFHEH}tH}tH}HEHHpHtlHXHvH螴HcHu#H}tHuH}HEHP`rhHHtG"HEHLLH]UHH$HLLLLH}HuU0\ HDžHUHpHijHcHhEH=#t荕HEؾH=m#txHEHPHgHWgHgHHEHx8CH}H}HHtHtiHDžHCHhHt:EHLLLLH]UHHd$H]LeLmLuH}Hu8H}HELpLeHELhMuI]H0LLE}JHExt@HELpLeHELhMuEI]HLLPHE@N}|HHExu>HELpDeHELhMuI]HDLHE@H]LeLmLuH]H$H|$Ht$H$L$H|$uHD$HT$HRhHD$H|$HT$0Ht$HHHcH$udHD$(D$ |$tL$ d$ L$ H$H|$1HD$(H|$tH|$tH|$HD$HyH$HtH$H$HFHcH$u'H|$tHt$(H|$HD$HP` H$HtHD$H$SH$H|$Ht$H$L$HD$ H|$uHD$HT$HRhHD$H|$HT$0Ht$HOHwHcH$,HD$(H$H$H9HcH$D$ tHH|$ 1?H<$H$HHH<$H$HH)HH|$ 11PHD$ HtH@H~$H|$ QHHT$ HtHRH<$L$HT$ H|$1H|$ >H$HtHD$(H|$tH|$tH|$HD$H3H$HtH$H$HHcH$u'H|$tHt$(H|$HD$HP`ZH$Ht~HD$H$[SHd$H<$HH8H$HHHH|$1ҾH$H8Ht$H$HHuHD$8u xuxtHcH$H8H$HHHd$[H$H|$Ht$H$L$H|$uHD$HT$HRhHD$H|$HT$0Ht$HiH葫HcH$udHD$(D$ |$tL$ d$ L$ H$H|$1HD$(H|$tH|$tH|$HD$HH$HtH$H$HHcH$u'H|$tHt$(H|$HD$HP`@H$HtdHD$H$H$H|$Ht$H$L$H|$uHD$HT$HRhHD$H|$=HT$(Ht$@H!HcH$HD$ HD$HxH4$;HT$HBHuH^HBHD$Hxt HD$@HT$D$B@HD$ H|$tH|$tH|$HD$HH$HtH$H$*HRHcH$u'H|$tHt$ H|$HD$HP`!H$HtHD$H$HG0HW(H)UHHd$H]LeHILH=VuHH5HsH]LeH]UHHd$H]LeLmLuHIIILMLH=VaHH5HH]LeLmLuH]SATAUAVAWH$H<$HD$HDŽ$HDŽ$HDŽ$HDŽ$HDŽ$HT$ Ht$8H誧HcHT$xH$HP0HtH;P8u)Hu1H$H$$BH$Hx 19H$H@0, ,,,, ,,,,,",, ,,,,,,,Z,,^,q=HH$H$H$HB0H;B8u!HuH$$Bq H$H@0H$H@0 t tt<H$H@0D8A'H$@@t{H$@$HDŽ$H$HP0H@(H)‰$HDŽ$H$H@0$HDŽ$H$HA[HpH<$H$H@0H$HB0H$D$H$Hx 17D$ fH$H@08\H$HP0H+$H$H$H@0H$H@0,"t1,t9,,-q,t=,t],tA,tI,t!,tqfD$"efD$'YfD$ MfD$AfD$ 5fD$ )fD$ fD$\fD$/E1E1AH$H@0H$H@0D(D<0r^,9v,rV,v!,rN,v3HDAЃ0ADAЃA ADAЃa A{H$@$HDŽ$H$HP0H@(H)‰$HDŽ$H$H@0$HDŽ$H$HYHpH<$A|$ +H$@@uH?f8H$VAH$V`H$t$ H$<`H$H$H$[H$H$过H$H|$=~H$VAH$_H$t$ H$_H$H$HZH$1H$KHpH<$H$HB0H$H$HB0H;B8H$H@08*AH$H@0EtH$H@08/u0ۄtH$H@0H+$HH$H|$1&H\$H&HHc$H$1-BH$Hp H$Hx HT$1'H$H@0{H$@$HDŽ$H$HP0H@(H)‰$HDŽ$H$H@0$HDŽ$H$HIHpH<$kH$H$D`H$HP0H@(H)‰H$HP0H$ H$H$H$HxHL$yH$@H$H@(H$H@ HT$Ht$0VH~HcHT$uH<$H$H@(HD$WHD$HH=t=HHD$pHT$xH$HHcH$uOH$Hx(ԒH$@HDŽ$H5F=H$HxH$x跪B譪H$Ht苭fHD$H$Hd$6Hu H=j0Hu H=Hd$Hd$H/H9u1HH9u1Hd$Hd$vHd$Hd$Hd$SATH$IHu]HdzgHD$H$ HVHEt)H$H0H$HwgH$H0H$HwgdH$H0H$Hwg;H$H0H$HwgH$H0H$HwglH$H0H$HwgCH$H0H$HwgH$H0H$HwgqH$HHD$hHwgHD$pH$H$1H$GH$HD$xHt$hH$gEuAE9TIcHIcH$H|$`p$HT$`H$H0H$.)H$|H|$`rHD$XHt蓦H$A_A^A]A\[UHH$ H(L0L8L@LHH}IHEHDžXHDž`HDžhHDžpHDžxHEHUHu1HYHcHU AALMtH@AH}1EIcA|\wIcIcH)IcLH}#HUHEH0H}E95AH}1IcAD<","t1, t-,-t),t>,u,t\,~,t;,IcAtH}1wH}H5Wug"yH}H5bug dH}H5mugOH}H5xug:H}H5ug%IcHItH5HPPHp!IcHPLH}!HUH59ugHpHp1HxHxH=%K HH5HA}tgHh0PH`:H`uHXn:HXHhHX5HhH}a1HP PEH}t3HHuH}HUHEH0H}gEt$HAE9eHIcIcH)HHIcLH}y HUHEH0H}@;HX/H`/Hh/Hpk Hx_ H}V H}M HEHtoH(L0L8L@LHH]H$xH<$HD$HD$xHD$pHT$Ht$(EHm{HcHT$hulH$xtbH$pH|$p8Ht$pH|$F`Ht$H|$x2HT$xH$H@H0H$HxH$@H|$xF H|$p\.H|$2 HD$hHtSH$Hd$H<$11@>@0rA9vr7v%r-v&@σ0A!@HWA@H7AHgB|Hd$Hd$HH5LHHd$Hd$H=HcHT$hHpH0H10H|$xH5d7gLIxAEAfDADLI`IHtHt$LIE8H|$H56gxHD$xH0H|$xHT$IcLIxHcHH9}/H4$H|$pnHT$pHD$xH0H|$xBE9QHD$xH0H|$xH6gbH|$plHdH|$ZHD$hHt{cH$A_A^A]A\[SATAUHd$HAAHD$`HHt$r^HHd$SATAUHAIH{Y4D9uH{L5H{LD4A]A\[H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$04YH\7HcHT$puPHD$H=)D0HT$HBHD$H|$tH<$tH|$HD$H[HD$pHtpHT$xH$XH6HcH$u&H<$tHt$H|$HD$HP`[-][H$Htv^Q^HD$H$SATAUAVH$HHIIHD$xHD$pHD$`HHt$WH#6HcHT$XM1HH#HHcHL+IYLIILH|$`H|$`qIL(\$hD$h5ILH|$`H|$`1ILH|$x蜶Ht$xH|$p]H|$p#ILILILH|$xNHt$xH|$` H|$`谻I^Mt:L$HDŽ$ H$HHp1H=蔺ILHJ.g*(\$hD$hILH8ʺILH=8:tMI<$H$FH$H$HDŽ$L$HDŽ$ H$HHpH="VL$HDŽ$ H\$hHD$hH$HDŽ$H$HoHpH=oXH|$xH|$pH|$`HD$XHtYLH$A^A]A\[UHH$HH}HuHUHMH}uHEHUHRhHEH}/HUHpTH2HcHhHEH}1]|BEEHUHcEHH<HtH`,gHEHH}3;]HEH}tH}tH}HEHBWHhHtlHPHSH2HcHu#H}tHuH}HEHP`VuXVHHtYYHEHH]SATHd$HIM~ HHH{h>H1>?HtMt HHPpHd$A\[SH$ H<$HH8HD$HT$ Ht$8RH1HcHT$xumH<$H$HxÃ|ID$@D$D$H<$H$H`HHHH|$i;\$HD$HD$UHD$xHtaH$H$@RHh0HcH$uH|$O>JUV@UH$HtXWHD$H$[SATAUAVAWHd$IIHIE1$)DDLI`HHHLLAI~;,D9~<$uHd$A_A^A]A\[Hd$H-Hd$Hd$HH=WHd$Hd$HHx*Hd$Hd$Hr,Hd$SHUHH[Hd$@S1Hd$Hd$@31Hd$SHHH@0H[SHHH@0H[SHHԴHH)Hc[SHHԴHH Hc[SHHHH[SATHd$HAHjHH{D-Hd$A\[SATHd$HAHZHH{D,Hd$A\[SATHd$HAH芴HH{D,Hd$A\[SATHd$HIHD$`HHt$7OH_-HcHT$Xu)LH|$`QH|$`HH%RH|$`{HD$XHtSHd$hA\[SHHH[SHwHH[SH@ԲHHi[SATHd$HIHtH;H HpbLH'Hd$A\[SATHd$HIHtH;HHpLHHd$A\[Hd$HHxO)Hd$Hd$HHxo)Hd$Hd$H)Hd$SHH{C(HH{g)[SATHd$HA]HDHHd$A\[Hd$HHx_*Hd$SATHd$HA[HH{D,*Hd$A\[SATAUHd$HAIHD$`HHt$LH*HcHT$Xu+LH|$`H|$`bHH{D)OH|$`HD$XHtQHd$pA]A\[SATHd$HAHH{D^)Hd$A\[SATHd$HA@:HH{D+)Hd$A\[SATAUHAILHGtH;HhHpH{LD(A]A\[SATAUHAILHtH;H8HpoH{LD(A]A\[Hd$HHx(Hd$Hd$HHx/'Hd$Hd$HHx(Hd$Hd$6HH=W/Hd$Hd$HHHd$SATH$HH4$HH|$Ht$H{^LIHu,H$HD$HD$ HT$H;HHp1LH$A\[Hd$vHHHd$Hd$VHHHd$Hd$6HHHd$SHd$HH4$HkHT$Ht$ IH'HcHT$`uH4$HHHHLH۸HD$`HtMHHd$p[SHHHHHHH[SATHd$HIHzHLHHd$A\[SATHd$HH4$IH<$腸HT$Ht$ HH&HcHT$`uL5HH4$HvKHHD$`HtMHd$hA\[SATHd$HIHJHLH,Hd$A\[Hd$HHHd$SH$HHHxHHHHߺH$[Hd$&HH= G,Hd$SHHHHHHH@[Hd$H8HHd$HWHd$6Hd$SATHd$HI@jHLH Hd$A\[SATAUH$HH4$IH$H|$VHt$H{HAAu&H$H|$,Ht$H{L+GH{LDFH$A]A\[SATHd$HI-HLHOHd$A\[SATHd$HI蛪HLHHd$A\[SATHd$HIuH;H Hp HLHHd$A\[Hd$Hd$SATHd$HIH芪HLHHd$A\[Hd$HUHzH4H=UZHcUHiH4H=U9HBU8t#HfUHH4H=U !HCUHH4H=^UH"UHH4H=MUȴHd$Hd$@HT:tHTH=Hd$SATAUAVAWHd$HIIIH$HD$pHD$hHT$Ht$ DDHl"HcHT$`:Mu H\$x+LHH$HtH@AĺA9~H $Hc€|.tA DAE9|H $IcD.t[tuIcHcH)HcLHH<$u H\$xH4$1H|$h迻Ht$hHHD$xHu1IcIcH)IcLH|$pHT$pLH4$iEIcIcH)HJIcLHlLH衲HH4$H|$xHD$xHHD$xFH|$psH|$hiHaHD$`HtGHD$xH$A_A^A]A\[SH@tH;HHp褺H;HHp菺[Hd$@0Hd$Hd$@H$gHd$Hd$@s1Hd$SH@H@0N[Hd$H$H@0(Hg$f/zHd$SHH@0[SATAUHd$HIH$HdHD$hHT$Ht$ WAHHcHT$`u2H<$JILH|$heHt$hH߱L]@>H$HtAAHD$H$UHH$HH}HuHUHMHEHDžHDžHDžH}uHEHUHRhHEH},HUHh:HHcH`HEHHH:HHcHH}1HEHHHuHEH8HHp育EfDHUHcEHHHHHtHt HtNHt&hH}s H}HsHsHUHH}jHsH3HH}cHHcEHHHHHDžHHEH8HHp1ٱH}uHHcEHHHHHDžHHEH8HHp1花EHUHcEHH<HtHBgHEHuH!HHUH} EHcEH;Ek;H:H.H"H}9HHt8=HEH}tH}tH}HEH|;H`HtlHH (8HPHcHu#H}tHuH}HEHP`$;<;HHt==HEHH]SATHd$HIM~ HHH{"H1~#HtMt HHPpHd$A\[SATH$H<$HDŽ$HT$ Ht$817HYHcHT$xKH$H8XHD$H$H$6HHcH$H<$H$HxÃ|iD$@D$D$H<$H$H`HHIċT$H<$H$fH$H|$L ;\$HD$HD$l9H$HtaH$H$6H=HcH$@uH|$!9:9H$@Ht;;8H$LHD$xHtm:HD$H$HA\[Hd$HH=DgHd$SATAUAVAWH$H$H$H$H$DH$H$HD$HD$HD$HD$ HDŽ$HDŽ$HT$(Ht$@4HHcH$yH$1认$AƋ$ANj$$$ Ë$$H$$$H$H$H|$1f$t*tH|$H5s g$H|$H5 gH|$H5 gEtHT$H|$1H5 g/$tH|$H5 g襣H|$H5 g蒣H$H$HxAED~>Ht$H$肫H$H$H0H$MAEtA9H$H8 EH[ gH$H$HH$HgH$$$)‹$H$eH$H$H gH$H$H$臤~$HHH$H$HH$$HHH$H$H$H$H5qgDo3H$ŸH$赟H譟H|$裟H|$號H|$菟H|$ 腟H$Ht4H$A_A^A]A\[SATAUAVAWHd$IHt$pIIHD$hHT$Ht$ /H HcHT$`u^E1$AfDLIE`HDLHt$hUHt$hLILHD$pHAI}/D9~<$uP2H|$h覞HD$`Ht3H$A_A^A]A\[Hd$H0Hd$SATAUH$IH4$AHDŽ$xHDŽ$pHDŽ$hHT$Ht$ .H HcHT$`H$H|$h֧Ht$hI|$g0Å|EsLI$x|XH4$1H$hFL$hLH$xH$x1H$pH$pL5Ju0H$x?H$p2H$h%HD$`HtF2H$A]A\[Hd$HHx,Hd$SATH$HH4$HT$AH4$H0Xt;Et H|$$H$HD$HD$ HT$H;HHp1XH$H|$ UHt$ H{HT$R-H$(A\[Hd$0THd$SATHd$HI@ʐHLH߱Hd$A\[SATHd$HIHLH߱Hd$A\[SATHd$HIH HLH߱Hd$A\[SATHd$HI[HLH߱Hd$A\[SATHd$HIݏHLH߱]Hd$A\[Hd$0DHd$Hd$HHx,Hd$SATHd$HIHD$`HHt$7+H_ HcHT$Xu0LH|$`QHt$`H02t Hs.H|$`tHD$XHt/Hd$hA\[Hd$HHx?,Hd$SATHd$HH`IH{L+LHd$A\[SATHd$HIHD$`HHt$G*HoHcHT$Xu7LH|$`aHt$`H0Bƃt HcH1'-H|$`}HD$XHt.HHd$hA\[SATAUHd$HIIHD$`HHt$)HHcHT$XuMLH|$`輡Ht$`H0tHH`LHHPLl,H|$`˜HD$XHt-Hd$pA]A\[Hd$$HtHH$Hd$SӺHtHH[SHӺHtHHH[SHӺHtHHH[SӺSHtHH[SATAUHd$HIIH $HHT$Ht$ 'HHcHT$`u2LHߺHtLHH@ LH4$藗*HHD$`Ht;,Hd$pA]A\[SATAUHd$HIIH $HAHT$Ht$ ='HeHcHT$`u2LHߺ9HtLHH LH4$G"*H蚸HD$`Ht+Hd$pA]A\[SHӺHHD[SHӺHHD[SATHd$HIHD$`HHt$g&HHcHT$Xu;LH|$`聞Ht$`H0bƃtHH`H1C)H|$`處HD$XHt*HHd$hA\[SATHd$AIHtI<$I$9tM1LHd$A\[SATAUHd$HIIHD$`HHt$r%HHcHT$Xu&L1H|$`菝Ht$`HIEHc(H|$`蹔HD$XHt)Hd$pA]A\[SATAUHd$HIIHD$`HHt$$HHcHT$XuFL1H|$`Ht$`HHHtH;HuAE0EtI]'H|$`HD$XHt)DHd$pA]A\[SATAUHd$HIIHD$`HHt$$H:HcHT$XuFL1H|$`/Ht$`HRHHtH;HuAE0EtI]&H|$`9HD$XHtZ(DHd$pA]A\[SATAUHd$HIIHD$`HHt$R#HzHcHT$XuFL1H|$`oHt$`HHHtH;HuAE0EtI]#&H|$`yHD$XHt'DHd$pA]A\[SATAUHd$HIIHD$`HHt$"HHcHT$XuFL1H|$`诚Ht$`HHHtH;HuAE0EtI]c%H|$`蹑HD$XHt&DHd$pA]A\[SATAUHd$HIIHD$`HHt$!HHcHT$XuFL1H|$`Ht$`HHHtH;HuAE0EtI]$H|$`HD$XHt&DHd$pA]A\[Hd$bHd$Hd$HbHd$Hd$bHd$Hd$bHd$Hd$bHd$Hd$HbHd$Hd$HsbHd$Hd$HSbHd$Hd$H3bHd$Hd$HbHd$Hd$HaHd$Hd$HaHd$Hd$HaHd$Hd$HaHd$Hd$HsaHd$Hd$HSaHd$Hd$6aHd$Hd$H#aHd$Hd$aHd$Hd$`Hd$Hd$H=4ϖH=xDŽHd$Hd$H5ԄH=΄EH=/lH5ۄH=΄iEH5܄H=΄VEH5܄H=΄CEH5<܄H=΄0EH5Y܄H=΄EH=.H=.H=.H=.ݍHd$UHHd$H}HuQH}Hu舮H]UHHd$H}QH}\H]UHH$pH}HubQHEHEHUHuHHcHxu4HuH}`HuH}غv`HuH}}E H}،H}όHxHt!EH]UHH$PHPH}uHUMDEؿPHEHEHUH`HHcHX}t}u2Hc]HcEH)qNHH-H9vHEHEHDž0HDž8HUHHHHcH@#EHuH}ΓH]H5өtH ?IH8H0H0Hu1H8gH8L`H}H5uf舗HbH}H5|foHtMH}tFHUHuH}1E~E%uH}@0u@ H}Q^t1H}TatH}}u H}]tEH0H8߆H5tH}=H}ƆH}轆H@HtEH L(H]UHH$pH}JHDžxHEHEHUHuHHcHUH}1WHEH0H}GH}uKEH5fHx6HxHEH0DMLf1H}bHuH}5HEH0Hx-YHxH} HEH0H}轗Hu1Hxk`HxH}ۅHxZH}QH}HHEHtjH]UHH$pH}&IHEHEHEHUHu\HHcHUH}Hh蒂H}艂H}耂HpHtEHPLXH]UHH$@HHLPH}Hu4FHEHEHDž`HUHpdHHcHh5HuH}HuH}耍H]HtH[HH-H9vC]H]HtH[HH-H9vC]ЋEԉE*Hc]HqCHH-H9vqC]̃}~>LeHcEHH9vLCHc]HH}̑ADHnsE;EuIE;E}AHcEHXHuHXH`胓H`H}quEE@H`蔀H}苀H}肀HhHtEHHLPH]UHH$HH}HuUMx5DHDž`HHprHHcHh EEuH}LEtDHuH`H`%Mu$HuH`H`Dž_H} HE؃uH}KE},HXHtHtHDžXcH`|HhHtEHH]UHHd$H}HuUM(@}t EEEUHuH}H]UHHd$H]H}%@HEHEHUHuc HHcHUH}Hu?HuHEHHEHH}E1E1OH}Hu H}HEHu00u8HEHcHq=HH-H9v~=HEH}6{H}-{HEHtOH]H]UHH$HH}HuU>HDžHDžHUHu0 HXHcHxzEH=FՄHEH`H  H HcHHE؋UHEǀHuH}HHHHEHszHuHCHH谂HHEH9zHEHHHHEHHHHVuHHuH}E01= HE؃E H}HHtHtiHDž HyHyHxHt.EHH]UHHd$H}t/H}BtH}HuȀH}1uHuH}6EuiHHauHUHu1HHvHH/Bt7HH/uHUHu1HHvHHH}93EH]HtH[HH-H9v7]EȉEhDLeHcUHH9v6Hc]HH}TA|"EẺEDHc]Hq6HH-H9vy6]̉;E4LeHcUHH9vS6Hc]HH}ӄA|"uE;ExHcuH}mHcuH}[Hc]Hq<6HH-H9v5]Hc]Hq6HH-H9v5]Hc]Hq5HH-H9v5]̋E;EJLeHcUHH9vi5Hc]HH}A|HuՇHKHcMHcEH)qi5HcUHuH}訅HuHH{HHH}8sHc]Hq)5HH-H9v4]H}H};uHUHuH}1tHHgrHuH@跇H@HU1HHsHHH}^}HEH8?t6EtHEH8?uEt+HEH8 PuE;E H}1ArlH@qHHqH}qH}qH}qHPHtH0L8H]UHH$ H(L0H}HuHUHMDEؿH5HEHEHDž8HDž@HDžHHUHXbHHcHPBHEH}/H}9t$HuHH{HHHiHuH}G|EuDH@rpHUHu1H@qH@HHy{HHH EH]HtH[HH-H9v>2]dfDEȉE*Hc]HqY2HH-H9v2]̋E;EFLeHcUHH9v1Hc]HH}ZA|HuFH|HcMHcEH)q1HcUHuH@H@H}xH}twH}J8uHUHuH}1pHHoHuH8gH8HU1HHpHHH@ zH@HHc]Hq-1HH-H9v0]ȋE;E1H8nH@ynHHmnH}dnH}[nHPHtzHEH(L0H]UHH$PHPLXL`LhLpH}HuH1n1HEHUHu=HeHcHUHuH}yvHuH} nHEHxHEHXHEL`Mu/M,$L'HAHcHq/HH-H9vg/Hxx|nEDEHELxDuLmHEHXHu/L#LLDLA$H}Hu]x;EH}9HE@tH}:uHE@t H}Jt[HEHxuH=JsHUHBHELhLuHEHXHu;.L#LLLA$PH}lH}kHEHtHPLXL`LhLpH]UHH$HLLH}Hu/H5VtH}!HEHEHEHDžHDž HDž(HxH8HHcH0H}HuukH}7sHEH0H(H(H}AkEf0fDHc]Hq!-HH-H9v,]HEHHtH@HcUH9|FLeM,$HcUHH9v,Hc]HI<$ {ADHnwEE1Hc]Hq,HH-H9v1,]HEHHtHRHcEH9|FLeM,$HcEHH9v+Hc]HI<$uzATHXnwE;EHcMHq+HEH0H}/|HcMHcEH)q+HcUHEH0H} |H}1iEH]H5tH7 IH(iH5AfH uiH Hu1H(jH(LAH}H5fxHfH}H5fxHtQH}tJHuH}Yu9HuH}mxHu H}1h+H}uHuH}hEH}xBpH}7H}th}ubHEHHEHHEHHtHIHcUHEH0HzHHHH}1ɺkHc]Hq)*HH-H9v)]HEHHtH@HcUH9HpgH dgH(XgH5!tH}XH}?gH}6gH}-gH0HtLHLLH]UHH$ H L(H}Hu*H5tH}HEHEHDž0HDž8HDž@HUHPHHcHH:H}1fHuH@9H@H}ixH]H5tH6IH8fH5@fH0tfH0Hu1H8gH8L>HuH}2zfH}H5fuHtgH}H5fuHtRH}tKHuH}Vu:HuH}auHuH}HUHu1f$H}HUHu1fH}k?sH}*H0eH8 eH@eH5ʆtH}H}dH}dHHHtH L(H]UHHd$H}HuHU(HEHUHuHHcHUuH}g-t!H}HudHEH8*1t@IsHҰHEEȈ$DMDE؊MHUHuH}HEH]UHH$HLLH}HuHU#H}u'LmLeMu!LHuLShHEH}HUHuH&HcHUuIHEH}1HUHEHHEH}tH}tH}HEHHEHtlHhH(|HHcH u#H}tHuH}HEHP`xnH HtM(HEHLLH]UHH$pHpLxLmLuH}p"HEHUHuHHcHUuRH}HuLuHELHELMu I]HLLPH}|H}]HEHtHpLxLmLuH]UHHd$H}@uU !H=;sHHEMUHuH}HEH]UHH$pH}HuUM࿈,!HEH=HHE؊UPYHUHuXHHcHxuMHuH}E0HfSH}JHxHtH]UHHd$H}Hu HEHP0HEHpH}1]H]UHHd$H}I HE@PH]UHHd$H} HE@(EEH]UHHd$H}H"fH=&s!HH5HH]UHHd$H}HEHtHEHHuHEH]UHHd$H}IHEHxptHEHxxHuHEPpH]UHHd$H} HEHx`tHEHxhHuHEP`H]UHH$HLL H}HuH}u'LmLeMuLH9LShHEH}HUHuHHcHUutHEH}1\HE@X;HE@Y;HE@ZHEfǀHEfǀHE@PHEH}tH}tH}HEHfHEHtlHpH0H=HcH(u#H}tHuH}HEHP`H(HtHEHLL H]UHH$HLLLLH}HuHUMDExHEHEHDžHDžHUHHHAHcH@HE؀xPt H}HUBXHEHEHA=AHNsL%GsMuEMLHLEHDAHEH u H}mHE@PH=Y6sdHEH(H(HPHcHbHE%HEXYHEHH9vHUHuHHEH}HEHtH@HqHEHMHEH)qHUHuHiHH}HEHqfHEH}{HuHlHH}7WH]LmMuMeLiHA$HcHqHH-H9v]؃EDmDmH]LeLuMuRM>LLHDAHuH}Gt}tHuH}t H}1dVP}t@HuH}t/DmH]LeMuM4$LyHDA}BH}t/LmH]LeMuM4$L9HLAPHEHtH@H;EH]LeMuSM,$LHAu11H}LmH]HuL#LLA$HcHqRHHH9vHvEEDuLmLH]HuL#LtJ HfH=sHH5HHE?HEH}1tAOHEHH]H)sXHHH9vHH}1QH}0Ҿ_H]H]UHHd$H}Hu($H}LlH<HuAVVXH]UHHd$H}Hu(E$H}LH,HuA55H]UHHd$H}Hu($H}LcʊHQHuACCH]UHHd$H}Hu($H}LH,%HuA++hH]UHHd$H}fuUHMHH DH}Hu?H}u]}u H}01]H]UHHd$H}HuUH}HuE?H}]}u H}01]H]UHHd$H}HuUH}Hu>H}5]}u H}01"]H]UHHd$H}HuU2H}Hu>H}\}u H}01\H]UHHd$H}HuUH}Hu%>H}u\}u H}01b\H]UHHd$H]H}HuHUHmH}uH}1=H]HtH[HH-H9vQ]HcuH}1NHEHuHHEHEHHuHHE@HEЊEtJHʨfH=s)HH5H'HE?HEH}1H}0ҾLH]H]UHHd$H]LeH}HuHHEHtH@HH?HHHH-H9v]uH}1-dHEHEf8u/HEHc]HqHH-H9vY]HcuHkqH}1 >HEHHuHHE؋]|hEfDEHEffEfEHEf}Ѐs"LeE=vEA$HE}Hu葇HcHE;]HEHH]H)sHH=v]HEHHtH@HcUH9}%1ҾH=s葱HH5H菾HcuH}1=H}0ҾJH]LeH]UHHd$H]LeH}HuHHEHtH@HH?HHHH-H9v]uH}1+yHEHEf8u/HEHc]HqHH-H9vy]HcuHkqH}1,=rws= W=d== r =#w=z=$=%=/r z3=*rw3=(rw='k=)[=,rw=+==-=."=6rw>6=2rw=0=3=5=8r =?w=7=C=D9=%r =Nr z=Irw3C=Grw=FM=H= =Krw=J=L=M =H"rwDF=Qrw=O="="=e"rw=d"= #=!#x=<%r j=%rwD = %rw=%:=%*=%=$%rw=%=,%=4%=%rwCu=S%r =a%w=P%=l%=%.=%rw;=%p"=%`=%=%J<E=vEE2E&EEEEEE]H/qHH-H9v]EE]H0qHH-H9vC]dEXEL]H/qRHH-H9v]]H.q!HH-H9v]EEEEEEEEE~ErEfEZ]Hoq`HH-H9v])EE]HpqHH-H9v]EE]HoqHH-H9vv]]HnqHH-H9vE]fEZENEBE6E*EEEEEEEEEEEEEEEvEjE^EREFE:E.E"EE EE]H$qHH-H9v]]H$qHH-H9vo]]H$qHH-H9v>]bEYEPEGE>]H%qDHH-H9v]EEEH]H]UHHd$H]}E=-t8v6Mt_vZ9E]HPq|HH-H9v$]TEK]HqEHH-H9v]EE }EEH]H]UHHd$}zE=-tAtHtL tP-StRPtV-tXt\t`-tb bfEeE\ESEJEAE8E/E&EEE }EEH]UHHd$H]}E=:r  =r F=r D=rwU=rw&x }=d m=T \=C L=r =w&k= B= >=r =w k= = 6= = O=r =wZ=rw+z= =>= H=o O=^ K=rw6=@ =M=* = L=rw ~= = I= = T=r 0=r =we=rw&_= 6= 2=w =4=a =V 3=rw1=8 H=' = 9=rw]= A= I=rwO= rw&]= 4=  0=== 9=rw&[=x 2=g .=rwD=I (=99 0=or b=Xr =DrwOR=Arw& ===>=B=C=Prw&=G=H=Trw=Qp=U`=`rwU9=[rw&=Y4=Z#=^=_=crw&=a=b=erw=d=n=r j=|rwO=yrw&=pg=qV=z={;=rw&=}=~ =rw===" r }= rw6= = = = = rw= o= _=! T=9 rw&=& 6=0 %= rw=: ="!E=vEEEEE=vEEE=vhEEE=vNEEyE=v4EE_ESE=vEE9E-E!EE E=vEEE=vEEE=vEEEE=vjEEEE=vDEEoEcEWEKE?E=vEE%E=vEE E=vEEEE=vEEEEEEEEEwEkE_ESEGE;E/E#EE EEEEEEEEEEEE{EoEcEWEKE?E3E'EEEEEEEEEEEEEEEsEgE[EOECE7E+E]H}qHH-H9v]]HqHH-H9v]E]HqHH-H9vR]Et]HqmHH-H9v]FE=E4E+E"EEEEEH]H]UHHd$H]}vE@7HKEVPtXb`q-Fr<l?1-#@:b\  rj E=v;EErEfEZE=v EE@E4E=vEEE=vEEE=vEEEE]HqHH-H9vc]EEEyEmEaEUEIE=E1E%E]HPqHH-H9v]EEEEEEEEE|EpEdEXELE@E4E(]H}qHH-H9v]]HqHH-H9v]E]HqHH-H9vO]E}]HqjHH-H9v]OEFE=E4E+E"EEEEEH]H]UHHd$H]}vE;2 ) _S'* -0369<-4=@-7Y8GW,y  rvE=v@EEE=v&EEEEEsEgE[EOECE7E+E]H}qHH-H9vz]]HqHH-H9vI]E]HqdHH-H9v ]Et]Hq'HH-H9v]FE=E4E+E"EEEEEH]H]UHHd$H]}6E|j{uFt|--`N3A-D<6^X}} } }}r}v}E=vEEnEbE=vZEEHE=v@EE.E=v&EEE=v EEEEEE]HqHH-H9v]]HqHH-H9vw]hE\]HqHH-H9v:]+]H}qaHH-H9v ]E]Hq$HH-H9v]E]HqHH-H9v]Et]HqHH-H9vR]FE=E4E+E"EEEEEH]H]UHHd$H]}E  q/y  ! -4-7 +%JJ J JJrJvJNE=vEE;E=vEE!E=vEEE=vEEE=vEEEEEEEEEEsEgE[EOECE7E+E]H}q%HH-H9v]]HqHH-H9v]E]HqHH-H9v_]Et]HqzHH-H9v"]FE=E4E+E"EEEEEH]H]UHHd$H]}E 6~ u}  --4- s-_M#;Bj d  pvE=vEEE=vϾEEE=v赾EEhE=v蛾EENE=v聾EE4E(EEEE]HqiHH-H9v]]Hq8HH-H9v]E]HqHH-H9v製]Y]HqʽHH-H9vr](]H}q虽HH-H9vA]]HqhHH-H9v]E]Hq+HH-H9vӼ]E}]HqHH-H9v薼]OEFE=E4E+E"EEEEEH]H]UHHd$H]}E="r /=r==r =rwUS=rw&! =q =a =P =rw&=2 =! = = = =rwZT=rw1= = = == =rw61=t ==^ =S =C =2 =r =rwZG=rw&= = = == =rw1= = = =s =b = rwO'=rw&=6 =% ==  =rw&===rw===kr =Cr @=6rwU=+rw&=#]=*L=.<=/+=<rw&=7 =;=A=B=VrwU=Frw&=Dq=Em=Lt=M}p=[rw&=W_i=ZNe=arw{=`0_=j g= r= =|rwO=yrw&d=r;=s7=zD={@=rw&b=}9=~5=r<=a8=" rwd= r = w+= 0= >= _= = =! =9 rw&=& =0 = rw=: ="!E=v貵EEEsEgE[EOECE7E+EEE=v,EEEEE=vEEEE=vԴEEEEE=v袴EEoE=v舴EEUEIE=E1E=vJEEE EEE=v EEEEEE=vγEEEEEwEkE_ESEGE;E/E#EE EEEEEEEEEEEE{EoEcEWEKE?E3E'EEEEEEEEEEEEEEEsEgE[EOECE7E+E]H}qvHH-H9v]]HqEHH-H9v]E]HqHH-H9v谰]Et]Hq˰HH-H9vs]FE=E4E+E"EEEEEH]H]UHHd$H]}ֱEdu xr }"|jXF4 A%-  $-=+2ZT|v  qvE=vwEEEEtE=vEEEZENE=vEE4E=vEEE=vEEE=vѬEEEE=v諬EEE=v葬EEE=vwEEE=v]EErE=vCEEXELE=vEE2E=vEEE EEEEEEEEEEEE|EpEdEXELE@E4E(]H}q7HH-H9vߪ]]HqHH-H9v讪]E]HqɪHH-H9vq]E}]Hq茪HH-H9v4]OEFE=E4E+E"EEEEEH]H]UHHd$H]}薫Ewe S;A/- 9 '-Dc-E=vEEE=v觨EEyE=v荨EE_E=vsEEEE=vYEE+E=v?EE]H` qcHH-H9v ]]H` q2HH-H9vڧ]]H}qHH-H9v詧]~]HqЧHH-H9vx]P]Hq袧HH-H9vJ]"EEEEEH]H]UHH$pH}fuUHMLELH轨HDžpHUHuuH(SHcHxqH}u1H}HuH}u#}uHH}019HUHuHp*HpH}}tH}u0wHpHxHtyH]UHHd$H}HuU§H}HuH}oe}u H}01RH]UHHd$H}HuUbH}HuH}o}u H}01H]UHHd$H}HuUH}HuUH}o}u H}01H]UHHd$H}HuU袦H}HuH}oE}u H}012H]UHHd$H}HuUBH}HuH}o}u H}01H]UHHd$H}HuUH}Hu5H}o}u H}01rH]UHHd$H}HuU肥H}HuH}o%}u H}01H]UHHd$H}HuU"H}HuuH}o}u H}01H]UHHd$H}HuU¤H}HuH}oe}u H}01RH]UHHd$H}HuUbH}HuH}o}u H}01H]UHHd$H}HuUH}HuUH}o}u H}01H]UHHd$H}HuU袣H}HuH}oE}u H}012H]UHH$pH}HuU?HDžxHUHuoHMHcHU|HdHEHu2H}HuNH}}uIH}01:HuHUHx HxH}}tH}0ҾOrHxnHEHtsH]UHH$pH}HuU?HDžxHUHunHLHcHU|HtHEHu2H}HuNH}}uIH}01:HuHUHx HxH}}tH}0ҾOqHxnHEHtrH]UHH$pH}HuU?HDžxHUHumHKHcHU|HtHEHu2H}HuNH}}uIH}01:HuHUHx HxH}}tH}0ҾOpHxnHEHtqH]UHH$pH}HuU?HDžxHUHulHJHcHU|HHEHu2H}HuNH}}uIH}01:HuHUHx HxH}}tH}0ҾOoHxnHEHtpH]UHH$pH}HuU?HDžxHUHukHIHcHU|H4HEHu2H}HuNH}}uIH}01:HuHUHxHxH}}tH}0ҾOnHxnHEHtoH]UHH$pH}HuU?HDžxHUHujHHHcHU|HdHEHu2H}HuNH}}uIH}01:HuHUHxHxH}}tH}0ҾOmHxnHEHtnH]UHHd$H}HuUBH}HuH}}u H}01H]UHH$pH}HuUߜHDžxHUHu"iHJGHcHU|HHEHu2H}HuH}>}uIH}01+:HuHUHxEHxH}}tH}0ҾkHxHEHt0mH]UHH$pH}HuUߛHDžxHUHu"hHJFHcHU|HHEHu2H}HuH}>}uIH}01+:HuHUHxEHxH}}tH}0ҾjHxHEHt0lH]UHHd$H}HuUH}Hu5H}}u H}01rH]UHHd$H}HuU肚H}HuH}R%}u H}01H]UHHd$H}HuU"H}HuuH}T}u H}01H]UHHd$H}HuU™H}HuH}ae}u H}01RH]UHHd$H}HuUbH}HuH}b}u H}01H]UHH$pH}HuUHDžxHUHuBeHjCHcHU|HHEHu2H}HuH}j^}uIH}01K:HuHUHxeHxH}}tH}0ҾjgHx.HEHtPiH]UHHd$H}HuUH}HuUH}Q}u H}01H]UHHd$H}HuU袗H}HuH}jUE}u H}012H]UHH$pH}HuU?HDžxHUHucHAHcHUvHtHEHu/H}HuNH}1}uFH}017HuHUHxHxH}}t H}01U fHxtHEHtgH]UHHd$H}HuURH}HuH}'}u H}01H]UHHd$H]H}HuHUHH}uH}1;H]HtH[HH-H9vѓ]HcuH}1HEHuHHEHEHHuHHE1HEЊEIGH>fH=dsUHH5HbHE?HE H}1/}HEHHuH1HuH)H}1H]H]UHHd$H]H}Hu@H}uH}1/H]HtH[HH-H9vő]HcuHkqH}1xHEHuHHEHEHHE@HEEHEHH]H)sHH=v虐]HEHHtHRHcEH9}%1ҾH=MsSHH5H`HcuH}1H]H]UHHd$H]H}Hu@H}uH}1OH]HtH[HH-H9v]HcuHkqH}1HEHuHHEHEHHE@HEEHuH}؊UHuIH}H5i+fHuH}؊UHuH}H5_+fHuH}؊UHuH}H5U+fHuH}؊UHu+H}H5K+fHuH}؊UHuasH}H5A+flHuH}؊UHuIH}H57+fBHuH}؊UHuH}H5-+fHuH}؊UHuH}H5C+fHuH}؊UHuI|H}H5Y+fHuH}؊UHu|H}H5+fHuH}؊UHuU|wH}H5*fpHuH}؊UHuk{MH}H50fFHuH}؊UHu1#H}H50fHuH}؊UHugH}H50fHuH}؊UHuH}H5/fHuH}؊UHucH}H5#-fHHh}twH`茹H/fHHHEHPH 0fHXHH1ɺH`{H`H=8s>HH5HKH}Hu$H}H5,fHHh}twH`ݸH/fHHHEHPH]/fHXHH1ɺH`̼H`H=7s=HH5HJH}HuUJH`~H`H}7Hu"HH8tH}Hu0HHEKH`H}HpHtMH]UHH$pH}{HEHUHuHHD&HcHUuvHExtlH}膷H-fHxHEH@HEH.fHEHx1ɺH}zHUH=6s@HfHcHXHuH}vHuH}vH}uH}H5fqHuHuH}߯H}uH}H5#fƯH}H5{f6HuHuH}褯H}uH}H5"f苯HuH}HuH}HulH}u;=HHt@?HEHLLH]UHHd$H}HuHUQmHUHEH}H͘H]UHHd$H}mHUHB0HEHR8HUHEH]UHHd$H}HulHExHt H}tHEHx(G%HEH@(HuH}^H]UHHd$H}HuulHExHtHuH}^ HuH}߸H]UHHd$H})lHEH@H@(H]UHH$HLLH}HuHUkH}u'LmLeMuiLHe)LShHEH}HUHu7HHcHUu;HEHUHEHBHEH}tH}tH}HEH:HEHtlHhH(z7HHcH u#H}tHuH}HEHP`v:HcHUWH}趓HEH}IH1HhH(HHcH fIGHEHxtHEHx蔦HEHEHEH@0H;Et^HEH0HHDžHEHHDžHH5=eH]HHHUHH9vFuH}H;EtZHEHHDžHEHHDžHH5eH3]HH$HEH@XHEH-H9vFuH}#H;EtZHEHHDžHEHHDžHH5VeH\HHHuH}FH;EtZHEHHDžHEHHDžHH5eH5\HH&HEH@XHuH}H;EtZHEHHDžHEHHDžHH5eH[HHHEHqDHELgJALMMuoDM,$LHLAU`H HthH'HEHtIHLLLLH]UHHd$H}HuHxEHEHUHu#HKHcHUuFH}藁HU1H5eH}!HUH=sHH5HH}LH}CHEHteH]UHH$PH}HuHUEHDž`HDžhHUHuVH~HcHUHUH}Hh;HhHpHeHxHEH@0HXHXHHX<1HXH`蜊01H`H`HEHpH}1ɺZH`Hh HEHt/H]UHHd$H}CHEH@H@H]UHHd$H}Hu CHEH}HHEHtHEH@(H@HEHEHEH]UHHd$H}HuHU(QCHEH}HaHEHtHEH@(HUHP2VHEHUHHEHUHPHEHxHudH]UHHd$H}HuBHEHxHHu=H]UHHd$H}HuHUHM0}BH}t+HEH@(HEHUHHHEHUH@HEHEHHEHEEH]UHH$HLL H}HuAH}u'LmLeMu?LHyLShHEH}HUHuH*HcHUuOHEH`H=vHUHBHEH}tH}tH}HEHHEHtlHpH0z HHcH(u#H}tHuH}HEHP`vlH(HtK&HEHLL H]UHHd$H]LeLmH}Hu(y@H}~'LeLmMu`>I]HLH}RHEHxH}1zH}tH}tH}HEHPpH]LeLmH]UHHd$H}?HEHx|fHE$fDHEHx(H}?SH}薝HEH}uHEHxsH]UHHd$H}i?HEHx fHE1fDHEH@(HEHxH}RH}HEH}uHEHxQsH]UHHd$H}Hu>HEH=HtHuH}!EHuH}EEH]UHHd$H}Hu8>HEH;Eu EEH}HEH@HPHEH@H@H9HEHPHEHHHB(H;A(HEHPHEHHHB0H;A0HEHPHEHHHBH;AHEHxdHEHEHxzdHE_@H}tfHEH@(HEHEH@(HEHEHUHH;u>HEHUH@H;Bu,H}fHEH}YHEH}uH}uEEH]UHHd$H]LeLmLuH}HuH=H}u*HweH=KrFHH5HD HuH}7HELpHEL`HELhMu:I]HQLLHEHx8cHEJfHEH@(HEOHEHHUHHHBHAHEHUHP(H},HEH}uH]LeLmLuH]UHHd$H}Hu ;HEH}HHEHt&HEH@(HEHEHxHuuH}FOH]UHHd$H}Hu;HEH}HHEEH]UHHd$H}HuHU Q;HEHxaHHMHUH}H]UHHd$H}HuHU ;HEHxaHHMHUH}@H]UHHd$H}HuHUHM0:HEH}HHEHt H}{HEHMHUHuH}H]UHHd$H}HuHUHM0=:HEH}HMHEHt H}諘HEHMHUHuH}bH]UHHd$H}Hu09HEHxx`HEIfHEH@(HEH@H;Eu HEHHE3HEH@HEH}t H}q1HEH}uHEHEH]UHHd$H}I9HEHPH= H]UHHd$H} 9HEHPH=HE@HEH]UHH$HLLH}HuHU8H}u'LmLeMu6LH%LShHEH}HUHuHHcHUu;HEHUHEHBHEH}tH}tH}HEHHEHtlHhH(:HbHcH u#H}tHuH}HEHP`6,H Ht HEHLLH]UHHd$H}I7HEHxuHEHx]HUHBHEHx HUHBHEHxEEH]UHHd$H}6HEH@H@(H]UHHd$H}Hu6HEHPHEHxHuuH]UHHd$H}Hue6H5H}U)H}IH]UHHd$H}HuHU !6HEH0HEH8HEEH]UHHd$H]H}Hu 57IHH5}H'H]HEH0H}rHEH]H]UHH$HLLH}HuUZ5H}u'LmLeMuA3LHLShHEH}HUHuoHHcHUoHE}tH H,H}A1H HNH}E01HEH}tH}tH}HEHHEHtlHhH(HHcH u#H}tHuH}HEHP`JH HtoHEHLLH]UHH$HLLH}HuHUHMDE3H}u'LmLeMu1LH=LShHEH}HUHxHHcHpusHEHU؊EBHUHEHBHUH=jhHUHBHEHx01!HEH}tH}tH}HEHeHpHtlHXHH9HcHu#H}tHuH}HEHP` HHtHEHLLH]UHHd$H]LeLmH}Hu( 2H}~'LeLmMu/I]HLLmLeMu/I$HmLHEHx7HEH@H}1H}tH}tH}HEHPpH]LeLmH]UHHd$H]LeLmLuH}091HEHxWHEEfDHELp(LeLmMu/I]HLLH}ՎHEH}uHEHx eH]LeLmLuH]UHHd$H}Hu0HEH}HHEEH]UHHd$H]LeLmLuH}Hu@E0HEHxVHEHfHEH@(HEL0LeLmMu.I]HLLPH}ލHEH}uH]LeLmLuH]UHHd$H}Hu /HEH}HHEHt6HEH@(HEHEHxHuoiH5(H}_"H}BH]UHHd$H}9/HEH@H@H]UHHd$H]LeLmLuL}H}Huh.EH}LeMu,I$HxH]ILmMu,I]HWH]HI9HEHHHEHPHAH;BHEHxUHEHEHx UHEufH}zHEH@(HEHELp(LuH]LeLmMu,M}LLHLAt,H}ދHEH}ыHEH}uH}uEEH]LeLmLuL}H]UHHd$H]LeLmLuH}HuHu-H}tGLeMu`+I$HH]ILmMu?+I]HH]HI9t*HeH=dr_HH5H]LeLmMu*I]HLHEHxySHEVHELp(LuLeLmMu*I]HFLLHHEHxzNH}aHEH}uH]LeLmLuH]UHHd$H]LeLmH}@-,LeMu*I$HH]HL(HEL`Mu)I$HH]HHLs7*HHH9v)HEL`IT$HH9v)Md$Mkq)Iq)LHH9v)LeHEHx RHE@HEH@(HEHEHH9vL)HEH8 HHH9v))Hq^)H]qS)HHH9v(H]HEH@HEH}t H}謈1HEH}YHEH]LeLmH]UHHd$H}HuHUq*HUHEHBHEHxHuH]UHHd$H}Hu%*HEH}1HH]UHHd$H]H}HuHUH)C=HH5HH]HuH}@ EHU؋EȉHEHxHueHEHUHPHEx7EHEHcXHq'HH-H9vg']EHcEHc]Hq'HHH-H9v+']HEH@HcUHЋuH}0Hc]Hq7'HH-H9v&]E.Hc]Hq'HH-H9v&]EE;ED}t,Hc]Hq&HH-H9vo&]ẺEEHU؋uH} EH]H]UHHd$H]H}u('EEHEHcXHq1&HH-H9v%]HcEHc]Hq%HH?HHHH-H9v%]HEHPHcEH‹uH}t=t1u^Hc]Hq%HH-H9vC%]2EE6Hc]Hqg%HH-H9v%]E;E0EH]H]UHHd$H]H}&HEHcXHq%HH-H9v$|HEEH5HEH@HcUHHEHLLH]UHHd$H}HuHEH}HE~=H5ۃHEHPHcEH#LI$@LI$L6tUHf8tGLHt$pTHt$pH|$h襥Ht$hH|$`tHt$`LI$LHt$` Ht$`LI$pLfHUHpLiQLoGH6HpLJ2Lp(HHpL+HHpLH|$p'PH|$h=rH|$`PHD$XHt4H$A]A\[SATH$hHHD$HD$xHT$Ht$0,HTHcHT$pbHt$HHt$H|$x3XHt$xHHE1Ht$H|$thHD$HH9vHt$HHH|$vHt$H4$HHDd$DHHHH|$Wt>H$H=H=}H4$HHxD$$DHHcE1H|$H$cݜ$$$D$EtHHpH7$HHH|$x3NH|$)NHD$pHtJH$A\[S[HG@@Ht1AAD HP z@z@1ҿ HH!Q@HGp@SATAUHd$IH$HT$Ht$ HHcHT$`E0LI$Lt tHHpLHLXH4$LI$LÃtH߃HpLL0@0xL`Ãt ttH߃HpLuL2à AŃ PEt1ID$@@uID$@@uH߃HpL*LI$(H0LHD$`HtQHd$pA]A\[SATAUHHE0@HAA t?H0@HrAăt ttHރHpHAAA uHC@@Et!uuHAރHpHUHH A]A\[SATHd$HDH{AătttDHd$A\[UHH$@HHLPHIHEHDžxHEHUHuCHkHcHUHHuHEHEHE HULH}1#HC@`HDžXHKHA0HQ(H)ЉpHDžhHXH݃HpHxC#HxHUH}1KHUH=5փhHH5HfHxIH}IH}IHEHtHHLPH]H$H|$Ht$H$L$H|$uHD$HT$HRhHD$H|$=HT$(Ht$@HHcH$HD$ H|$1YH$H=fHT$HB|$tH|$HD$H@p@FHD$ H|$tH|$tH|$HD$HUH$HtH$H$H"HcH$u'H|$tHt$ H|$HD$HP`|H$HtHD$H$H$H|$Ht$H$L$H|$uHD$HT$HRhHD$H|$=HT$(Ht$@9HaHcH$HD$ H|$1H$H=u?ILhMgI|.1HIL;huI?Lt II9$$Hd$A_A^A]A\[Hd$ZHd$SATHd$HAHf Ef%ffCHd$A\[UHH$pHxHEHUHuHHcHUuT]HEHUHHp1H})HEHEHUH=ٹr\HH5HZ腾H}*HEHtHxH]SATAUHAAHH3׃8qDtt!t(t.t4t;DfDcLffDc@fDc5fDc*ffDcfDcD fDcA]A\[SATHd$HIH fLcHd$A\[SATHd$HIHfLcHd$A\[UHHd$H]Hfm[H]H]SHd$H$Hzf$CHd$[SHd$H$HJf$CHd$[SHd$HH4$HfH$HCHd$[SHd$H$Hf$CHd$[SATHd$HIHD$`HHt$H/HcHT$Xu2HfHCL1H|$`2Ht$`H{(H|$`B(HD$XHtcHd$hA\[SATHd$HIHfHCH{La(Hd$A\[SATHd$HIHfHCH{LqNHd$A\[SATHd$HIHHCH{Lf Hd$A\[SATHd$HIHZHCH{L֜f Hd$A\[ff-vf-tf-tH\ԃø øø9u 9u0Hd$6?r0Hd$9~ 9}0f/zu0rf/zvH9~ H9}0SATAUAVHd$AADsfHZ҃ttt#tDHՃDtuA9A0%HkDH ՃHDtIH҃t tt0s)E!HՃFt( uA u0AAHd$A^A]A\[Hd$H<$Ht$l$,$zsl$,$zv0Hd$Ss!HHtH@HHtHRH9t1HP HH?HH?H ˆ[SATAUHd$HIAHD$hHD$`HHt$H!HcHT$Xu1LH|$`X$Ld$`HH|$hF$H|$hDL6߷H|$hUFH|$`KFHD$XHtLHd$pA]A\[Ss!HHtH@HHtHRH9tHcH ˆ[SATAUHd$HIAHD$hHD$`HHt$HHcHT$Xu1LH|$`,Ld$`HH|$h,H|$hDL6϶H|$h%#H|$`#HD$XHt<Hd$pA]A\[SATAUAVAWHd$HIAf;tfA>uWDs%ffA;A0tE0Af;ufA>uE0AA;H8WtLHDH<$H$H0A>A>H WtLHDH<$H$H0AA6;DmDUtt rFv%v/:EtE00A+EtA!E0EtAA EtAAAHd$A_A^A]A\[SATAUAVAWHd$H|$ IHD$H|$ 9AAL9.ADHk0DH΃HЋt_r zEu Eu0ArLH|$ T$AYLH|$ 9~ 9}0A+LFD$H|$ 6|$L$AL' %H|$  %9~ 9}0ALHH|$ HHAT$DDAHD$ f8ifA?uaIwHD$ HxT$s!HHtH@HHtHRH9t1HmP HH?HH?H ˆA LH|$ T$~ALD$H|$ |$L$AL<$H$H|$ <$H<$HAHD$ f8u^fA?uVIwHD$ HxT$s!HHtHRHHtH@H9tHcH ˆA*LH|$ T$ALH|$ T$VAAHd$0A_A^A]A\[SrJtttt!t#t%*(! di[SATAUHd$HIAHD$`LDEtt)t9tItVL$`XL$`L$`\L$`L$`YL$`L$`^L$`xD$@D$@|$0D$`D$@D$@|$PHD$0HD$fD$8fD$HD$PH$fD$XfD$x|$ l$ \$PD$PD$`A4$;Dhff%tHfD$`CHd$pA]A\[Hd$H68MhHd$SATAUAVHd$IIALSLIDst t*t4t<tDtGtJNHcHcHHQHcHcHHBHcƉډ5HcƉډ(!؉ ؉1މAuA<$DgfA$f%tLfA$A\$Hd$A^A]A\[H$H|$Ht$T$ H|$0HD$(H|$!HD$0D$8D$ vH #.9D OHT$@Ht$XRHzHcH$D$ tt*t@tWwHT$(HD$0HqHD$(\HD$(HT$0H)qHD$(AHT$(HD$0HqHD$(%l$(<$|$0v߼$H$HD$(ϭH$HH=r貯Ht_H$H$H$[H胈HcH$uD$8jH$HtH#rH=rBHt\H$H$H$HHcH$uD$8H$Htد賯lHD$(HH|$0HD$(HD$(HH|$0HT$(}HD$(HL$0HHD$(iHD$(HL$0HHD$(UHT$(HD$0H!HD$(AHT$(HD$0H HD$(-HT$(HD$0H1HD$(HD$0HD$8T$ ^d|$8tHt$H|$T$ 0HD$ff%t H|$HD$fHT$HD$(HBH$SHHf8uH@H=|H=Cf[SATAUAVHd$HIAHALDr-t ttD A"DAD0AA4$;DScff%tHf Ef%ffCHd$A^A]A\[SATAUHIAAt A f;u[fA<$Au$LLHH+4mLLHH4mfA<$uRAu(Hdff%tHfLHqu@ff%tHf(A4$;D%bff%tHfA]A\[SATHd$HIH$HD$pHD$hHT$Ht$ dH茄HcHT$`uULH|$hLd$hHH|$pHt$pHLvv$ t-LHU?LHD/LHDUA6;DDWLHDA_A^A]A\[Hd$H8 [XHd$Hd$H8 ;XHd$SH$pHH|$x*HT$Ht$(VH~yHcHT$hcff=%HuHcHfCf1,f[#HcCH؉CCHeWCCHnefWCk{CHKefWCHH2efWD$pD$p<$H=}fCf %H"fBfCfU[MCHfCf8CH؉Cf$C%tCHHCf[fH[HCHH!t9ZH[fHsH|$x-Ht$xHff=rLf-tf-t3>HHefWD$pD$p<$HXHkKH%H=@.%!HHcHHCHHfCfHCHcH؉CfHCHueWCfHCHXefWCfHC({fHCH%efWCf[HHefWD$pD$p<$H*HCff %H̹fBfCfHCHH؈CfHCHfCfHCH؉CfHC%tHCHHCfHCH؉Cf~HCHHHCfiHCHHH!tWHCHHHCf/HsH|$x蜬Ht$xH/HEH;H|$x謝HD$hHt}H$[Hd$H8 KSHd$SHH=|H=~HHHSf ЉCf[SATAUHd$IIHD$pHT$Ht$ #HKtHcHT$`LHT$hyMHfD$hfuKfA$f%tLH| H~HHID$fA$oAD$fA$]L1H|$p(H|$pHuA<$ "RfA$f%tL_<$f%ffAD$fA$ oH|$pHD$`HtH$A]A\[SATAUHd$HIHT$IfD$fuBff%tHI| I~LHHCfRADkfDHLu ; 6Qff%tHu<$f%ffCf Hd$A]A\[Hd$H8 PHd$SHd$HH|$`ݚHHt$ H3rHcHT$Xkff=%HҗHcHH|$`"Ht$`H(#fSSHHsH1f{f%ffCSSfSSHSHSHsH|$`Ht$`HUff=r,f-tf-tHsH`H0SH%H=@6%!HHcHHCfffCfHCЉCfHHCH0HHCf8f%ffCf HCЈCfHCЈCfHCfffCfkHCЉCfYHCHHHCfDHCHHHCf/HsH|$`yHt$`HܘHBH8賔H|$`YHD$XHt*H$[SHd$H<$% (H$%@ftH$H@HHD$ H$H@HD$Ht$H|$?VHT$ Ht$8HoHcHT$xD$HD$D$fD$HT$L$LT$щT$;D$w݋\$rID$@D$HD$ff%t H|$c HD$fHD$Hc@HD$;\$wnH|$$?UHD$xHtޔH<$#H$[SHd$Hf;sH#aUf;uH{1fsf;uH{1%fZf;uHHvE% t H!2;H3tHH<$H$H H#fHd$[SATH$8H<$Ht$HT$HD$% u WTHD$%  HD$%@tHD$H@HHD$HD$H@HD$HD$$XgXDŽ$`D$`$`Ld8$`gpH|$IT$P<S$`gpH$\H|$|<S$\AT$)ЃA$;$`HT$8$X A/HD$(HuRH$ff%t H<$H$f H$HD$(HBHL$8Hc$XH$8H5JUH$hH$蛍HkHcH$uoH$8Wu^H$@HT$ H|$?RH$@HT$0H|$(?RHt$ H|$0T$H$89u@H$81!H$Ht译Ht$H<$_!XRH$A\[SATHd$HIff%tHfA<$sLH !R*fA<$u fHCIt$H{]fA<$u fHCIt$H{"fA<$u*I$HID$HCID$HCHHA$% tHLHfA$%@t7H@HtHuI$HID$HCID$HC>A<$H/tLHH<$0H$HLHPHd$A\[SATHd$HIHLH9tBfA$f%u,ff%tH I$HID$HCID$HC LH%Hd$A\[Hd$Hd$Hd$HHH$HPHT$HPHT$fHHOHd$Hd$Hd$SATHd$HIHD$`HHt$GHohHcHT$XuLH|$`Ht$`HDH|$`HD$XHt軎Hd$hA\[SATHd$HIHD$`HHt$ljHgHcHT$XuLH|$`Ht$`H ČH|$`HD$XHt;Hd$hA\[SATHd$HIH$HT$Ht$ FHngHcHT$`uLHwHH4$KFHmHD$`Ht迍Hd$hA\[SATHd$HIH$HT$Ht$ ƈHfHcHT$`uLHHH4$ƋH~mHD$`Ht?Hd$hA\[Hd$HH8uAHd$SATAUHIAA$%|8LHߺEHH1ɺ>A4$AMCD%}(ELH1ɺ A4$AYMA<$A@A]A\[SATAUHd$HIAfA<$uLHDeA<$H+tALHH<$H$H7AH+tLHH<$H$HLHDHd$A]A\[SATAUHd$HIAA$IcH9uLHGA<$H#+t ALHH<$H$HfA<$uH8tA?D!HHcHff%tHMfD+L\HߺL诺HߺLH mL^H&XL |$Ht$H8:LHS%LH3L@H[LnHߺ>L!Hߺ!LԹHߺLxHߺLlHHsL$HH^LHlQLHDD=|,-ttLHA<$=LHDHd$A]A\[Hd$fHd$SHH t&=[SATHd$HIHD$`HHt$H?bHcHT$XuLH|$`Ht$`HH|$`HD$XHt苈Hd$hA\[SATHd$HIHD$`HHt$藃HaHcHT$XuLH|$`&Ht$`H蔆H|$` HD$XHt Hd$hA\[Hd$H>p=Hd$SATHd$HIfA<$ @uIt$HfA$f=f-v3f-tBf-f-f-Ef-P[LHߺAD$%uLHߺ~H8tLHߺ]tLHߺH_ID$H=|H=~6HW8tLHߺ)LHߺLHߺI|$vJH8uID$HH!tLHߺLHߺLHߺ~LHߺiLHpA$% tH"LHQA$%=} LH4A<$Hk%tLHH<$H$H A<$$;Hd$A\[Hd$Hd$SATAUHIAHJAtAt LcfLcf DcfA]A\[SATAUHd$HIAfA<$ @uIt$HD^At AuA<$AB9t Hs HLHd$A\[Hd$1Hd$SATHd$HIf>t H3 HL Hd$A\[Hd$1Hd$SATAUHd$HIIHD$`HHt$BtHjRHcHT$Xu0fA<$tLH|$`蘅Ht$`H[ HLN )wH|$`HD$XHtxHd$pA]A\[Hd$Hd$SHd$H$Hf$CHd$[SATHd$HIH蚉tLH諉t0Hd$A\[SATAUAVHd$HIIILL-t LH^z'LLt LHBz LH5zHd$A^A]A\[SATAUHd$HIH:HH$HPHT$H@HD$L:HHT$HPHT$ H@HD$($sf$f;D$AD$sE0LHADHd$0A]A\[SATAUHd$HIAHR:HH$HPHT$H@HD$L1:HHT$HPHT$ H@HD$(f$ƒs f;T$uE1DD$r:$r1LHqtE1LH蝇tAADHd$0A]A\[f? u u0SHf C[f? uWf? Hf pSATAUHd$HH4$HT$Iff= 1f- f-f-tf-?f-f-t3H{tH{LHHCHuAE0HCHt+H8t%HCH8LHHCHHuAE0H{tH{LHHCHuAkE0cHCHt(H8t"HCH8LHHCHHuA2E0-H{tH{LH4$HT$tAE0E0DHd$A]A\[SATAUAVHd$HIIH$HT$Ht$ _oHMHcHT$`u,IL0TLHLd$hLl$pHt$hHT$p!JrHTHD$`HtsHd$xA^A]A\[Hd$HH=_eܡHd$UHH$`H}HuHUfMEtHEHt2HEHHH?HHHEHUHhcnHLHcH`HuHH}ȳHEHH|XHEHEHuHMHHH}؋։THuHMHHH}HtHH)HVHu؉H;EH}HU؋u}HEHu1E HUfHEHUHPpH}ҳH`Ht1rH]SATAUAVHd$HIIfAu61H~LDAOIHu1AA fD3LcHd$A^A]A\[UHHd$H]LeLmLuHIIHELmHuH߹ M|-IIDuIkI4HUH߹uM9H]LeLmLuH]SHd$HH$HGHD$HGHD$%HT$HH$HBHD$HBHD$f<$ @tڋ$% = u$%@t HD$HH\$ WN1HHd$ [Hd$HH$HGHD$HGHD$HT$HH$HBHD$HBHD$f<$ @tڋ$% t HD$1Hd$SHd$HHHH0$Hd$[SHd$HHHH i0$Hd$[Hd$vHHk40H$Hd$Hd$FH~0Hd$SATHd$HIA$% u A<$]-A$ @fA$%@u ID$HC ID$HCHd$A\[Hd$HH$HGHD$HGHD$@t+!HT$HH$HBHD$HBHD$f<$ @tڋ$% = Hd$Hd$@Hd$ rHd$%rrH t0Hd$SATAUHAWHGL,IUHu1H8uIEHu1H8HIIcEIHLA]A\[H$H<$Ht$HT$H5ۜH|$XiH$\oHDŽ$H$xCoH$H$ihHFHcH$:H<$ŚHD$ Ht$ H|$D$,D$(H|$ ~Ht$H|$.HD$ H$H5H$H$9Ht$ HH|$0UH$ H$8gHEHcH$[HD$H$HD$ HHHD$HD$HT$0HL$DHt$0HL$H$HtHRHH$HL$H$HtHRHHH$HT$H<~H$HH$H;D$nL$(HT$ Ht$0H$xZH$xH<$mH<$H$H$fHDHcH$HL$0HT$ H|$8H5偃L$LD$ HL$HT$H|$XH5偃xH|$8fDD$(K!HjHcHH$0H$xpH$xH$mH$0H$xpH$xH$lH$H$xBsH$xH$lH$H$x?sH$xH$jl}H$H$x sH$xH$7lJH$H0H$xsH$xH$lH$H0H$xXqH$xH$kH$H0H$fnH$0H$xZsH$xH$kH$@0H$xxoH$xH$SkfH$H$9kLH$H0H$m/H$0H$xnH$xH$jH$0H$xmH$xH$jH$0H$xmH$xH$jH$0H$xmH$xH$UjkH$H0H$x+nH$xH$&jHcH$ HD$ HXHHDŽ$H$HH$HpH|$H$H$DH$HpH|$H$H$+DH$H$H$H$H$HcHH;$\H<$H$HT$ Ht$aAH|$H$xH$M_Hu=HcH$H$HT$ H|$(H5z贒H$HL$LD$ HL$H|$HH5z:H|$(ZHT$0HD$ HHHt$H$u$!HcHcHH$nHT$pfH$,nHT$pH$spHD$pH$xpHD$pH$]pHD$puH$pHD$p8\H$H$aoH$H|$p0H$H$gH$H|$pBH$pHT$pH$mHT$pH|$pH$dH$H$fH$H|$p^BH$\lHT$pvH$#lHT$p`H$MlHT$pfIH$vlHT$p3H$lHT$pHH$lHT$pHzH|$HH|$(覑_H|$(1荒H|$H1H|$H$Htap_H$胢H$Ht`L_H$@H$@H$H5H|$H脂H$bH5pH$cH$Htq`H$[SHd$f<$Ht$f<$D$|$H=m诽HT$Ht$0[[H9HcHT$puf$HH=Um +H9D$|$t@H:m$HL$HHHD$HHtHmH;tD$D$ ^H=mPHD$pHt_D$H$[SH$H<$Ht$H$H|$ HD$H=l跼H$ H$8]ZH8HcH$xH=[l&*HÅtD$D$H4lHcD$HHD$Ht)H lH;tHD$H8Ht$ JtD$D$|$tHD$HT$H/;\$\H=k&H$xHtHtN^HDŽ$xɊD$H$[SH跔f[SH觔f[UHHUsH@H=kHNHH5H]Hd$HHH0HPNt1@Hd$Hd$Hd$Hd$HH=Ie蜋Hd$Hd$HHd$Hd$HCHd$Hd$HHd$Hd$H=IeHd$Hd$H=IeHd$Hd$H=IeߊHd$Hd$vHd$Hd$HH1Ҿ/Hd$Hd$HHH>lHd$Hd$HHH-Hd$Hd$HHH Hd$Hd$HHHP)Hd$Hd$HHH Hd$Hd$HHHHd$Hd$HHHǹHd$Hd$HHHHd$Hd$HHH=Hd$Hd$HHH荔Hd$f> u ~u0%@=@Ë% = Ë%r t%r t%r t t%t=u0UHH$0H}fuUH=g護HUHu[UH3HcHUH]gHtH@HE}uyg=og|.H֢sHPH=^SrIHH5HVHcUHc4gH-H9~HfH<ufgfEufEf=rf=veDžh$HDž`ExHDžpH`H֡sHPAH=RrJHH5H9VE-E;E|.HcEHHxH5HxH=$f:%HfHcEH<!HeHcUHHeH;ujDžh$HDž`ExHDžpH`HsHPAH=QrIHH5HdUDž8$HDž0EHHDž@HNeHcEHH8H0CH0HXHDžPH0HsHPAH=BQrIHH5lHTHdHcMHEHHUfEfBUH=dHEHtEWH]H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$04RH\0HcHT$puBHD$H|$1yHD$H|$tH<$tH|$HD$H UHD$pHtpHT$xH$QH/HcH$u&H<$tHt$H|$HD$HP`T;VTH$HtW_WHD$H$H$H|$Ht$f$H|$uHD$HT$HRhHD$H|$HT$ Ht$8PH%/HcHT$xuEHD$4$H|$0@HD$H|$tH|$tH|$HD$HSHD$xHtH$H$wPH.HcH$u'H|$tHt$H|$HD$HP`nSTdSH$HtBVVHD$H$Hd$H|$H4$H~HD$HT$HHH=b HT$Ht$(OH-HcHT$hu/HD$fxt"H aHD$PHaHHRH=aHD$hHtTH|$18;H|$tH<$tH|$HD$HPpHd$x0Hd$HHHPHd$Hd$HHHHd$Hd$HH=@e輁Hd$Hd$Hd$Hd$Hd$Hd$H=@eHd$Hd$HH=@e\Hd$H$H|$ H4$HT$HL$LD$HD$(HD$8H$TH$H$MH,HcH$>HD$@D$0HD$T$0HtH|$(1UD$0H$H59~H$H|$8|$0WHD$HD$PD$0D$@D$@HT$L$@fT fT$DHL$T$@TD$HHt$8L$0T$@H)HkHTHT$XT$DHr"HtuHT$XfHT$XfHL$XfT$Df|$Ht&HL$Xf @HL$XHT$PHHQHD$P}D$xT$DM)t<tDvCHT$XBD$xHT$PH Ht$XHHHQHVHQHVHL$XHT$PHHQHD$PD$xHL$XHT$PQ}HL$XHT$PffQjHL$XHT$PQYHL$XHT$PffQFHL$XHT$PQ5HL$XHT$PQ$HL$XHT$PffQHL$XHT$PHHQ|$xuHD$P:D$@H<$D$L|$LtH$H$H<$9RHD$<B,t,,)|$L|$0ufHT$H4$HL$(H|$ HD$ HPHT$H4$LD$8HL$(H|$ HD$ H@H|$ HT$H4$LD$8HL$(H|$ HD$ H@H|$ ~Ht$HL$8HT$(H|$ HD$ HHTH$H$IH(HcH$u?H}HEHtAH]H]UHH%sH@H=MH 1HH5H >H]UHHsH@H=JH0HH5H=H]UHHd$H]ȉ=@==t:=t==t@= tC= tF= tI= tL=tY=WtYeC)oUMwpibE$HE]HEHEHE HMHsHPAH=9r0HH5H9HfHcHT$`D%|+&D%HHd\H4H1ƲD%=|3-tt%HH5+eŨ|HH5+e豨kDHt"H$H8Ht$h9)Ht$hH1J4DH$hdH$hH1H5y+etD% tHH1H5{+eVA@tHH1H5+e94;H$h臧HD$`HtVfAE*f%f=u IEH$I$IEHH$Ld$AE*u HH|$$AU HH|$$Hd$A]A\[SATAUHd$HIIAD$*txvnID$H<L=[AD$*u ID$H$HID$HH$H\$AD$*u LH|$$At$ LH|$$Hd$A]A\[SATHd$HIHL跢HHLiHd$A\[SATHd$HIHH臢HLHHd$A\[Hd$$Hd$UHH$ H0L8L@LHLPHIIAHDžhHDžpHx#HPHcPHLjL@<$HLLHx۸HxHLLHpHpHL購LHhOHhHLlLHLYL=ILL;x|L;x ~.HD?sHPH= ro"HH5Hm/LHL?L2=H@LH@H;Br H@H;B v.H>sHPH=r"HH5H/H@HLΧHEHHu1HLH}HUHLgYHHu1HHH`HDžXHXM1HO eH=3r"HH5H\./HhHpHxÛH}躛HEHt0HL L(L0L8H]HHHHHHHHHH@HHHHHPHHXH HH WH WH H`Hd$HlHd$Hd$HlHd$Hd$lHd$Hd$H=<诌=H=I<DH ]H6lHHH5lHH+H4lHHHCrHHYHBrHHHrHHgHrHH&<HH$H5p]HH=<,Hd$SHd$H=<HHt$)HHcHT$XudH=;HÅ|Qk=a=H;HcS=HHx;H;tH|;Hc5=H<|;&=o,H=h;賋HD$XHt-述H=H;3H=:/H=E苘H54\H=-EOH5Q\H=:uOHd$`[H$H|$Ht$$H|$uHD$HT$HRhHD$H|$HT$ Ht$8n(HHcHT$xuLHD$H|$1HT$$BHD$H|$tH|$tH|$HD$H9+HD$xHtH$H$'H HcH$u'H|$tHt$H|$HD$HP`*c,*H$Ht--HD$H$SATHd$HIM~ HHH{tHBH{HCHP`H1HtMt HHPpHd$A\[SATHd$IA|$t0ID$@|!ÃI|$)HI|$裍Hd$A\[H$(H|$H4$HuHD$HT$HRhHD$H|$ HT$Ht$0T&H|HcHT$pucHD$H|$1H=?bqHT$HBHD$@HD$H|$tH<$tH|$HD$H)HD$pHtpHT$xH$%HHcH$u&H<$tHt$H|$HD$HP`(:*(H$Ht+^+HD$H$HG@Hd$HHP;rt Hx膊Hd$Hd$HrHd$SATAUHAIՀ{tH{D@HH{LDYA]A\[Hd$HHx诉Hd$HG@Hd$H2Hd$SATHd$HA{tH{D谈HxH{D\Hd$A\[Hd$HHxHd$SHH{cH[Hd$H袈Hd$SATHd$H@AAt&{tH{DHH{D豊DHd$A\[Hd$H蒌Hd$SATAUAVHd$HIAA`DH HL9uEAHD9~EAu?DHLH8tEAHD9~AtDHd$A^A]A\[Hd$HHx?Hd$Hd$HHxόHd$SATAUAVHd$HIHVLAAE|)A@ADL HHE9Hd$A^A]A\[Hd$HHxHd$Hd$HHx菎Hd$Hd$H蒊Hd$Hd$H‹Hd$Hd$HHx_Hd$Hd$HHx诎Hd$H$H|$Ht$$H|$uHD$HT$HRhHD$H|$HT$ Ht$8 HHcHT$xuLHD$H|$15HT$$B HD$H|$tH|$tH|$HD$H#HD$xHtH$H$a HHcH$u'H|$tHt$H|$HD$HP`X#$N#H$Ht,&&HD$H$H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0HHcHT$puIHD$H|$1HD$@ HD$H|$tH<$tH|$HD$Hr"HD$pHtpHT$xH$!HIHcH$u&H<$tHt$H|$HD$HP`"#"H$Ht$$HD$H$SATAUHIAՀ{ tAuL DLHA]A\[Hd$֔Hd$Hd$Hd$Hd$趚Hd$Hd$FHd$Hd$fHd$Hd$趜Hd$SATAUAVHd$HIAA`DHmHL9uEAHĕD9~EAu?DH5LH8tEAH腕D9~AtDHd$A^A]A\[Hd$Hd$Hd$覛Hd$Hd$6Hd$SATAUHIAAuH{`LHDLH/ZA]A\[Hd$Hd$SATHd$HIM~ HHH1wH{(HtMt HHPpHd$A\[Hd$FHd$Hd$&Hd$Hd$Hd$Hd$HHHHd$Hd$Hd$Hd$Hd$Hd$Hd$SATAUHIAH{(u#1ҾH=kHkHC(HX`Mt.DEt r!vHs(L#a Hs(LaDLHA]A\[Hd$VHd$Hd$Hd$Hd$֗Hd$Hd$fHd$Hd$覙Hd$Hd$覑Hd$Hd$ƙHd$Hd$֙Hd$Hd$Hd$Hd$6Hd$Hd$膑Hd$SHԒ9[Hd$H貒Hd$H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0TH|HcHT$puNHD$H=Xq薒HT$HBHD$H|$tH<$tH|$HD$HHD$pHtpHT$xH$HHcH$u&H<$tHt$H|$HD$HP`OH$HtsHD$H$SATHd$HIM~ HHH{hHtMt HHPpHd$A\[SH"tHH1[SH_HӐƃH6[SHtHH1[SATHd$LgL|~/LpƃLӎHLXƃL軕1HHd$A\[SHHHHH[Hd$HHxoHd$Hd$Hd$Hd$Hd$Hd$Hd$Hd$HHHx1jHd$Hd$Hd$Hd$Hd$Hd$FHd$1HWH):1HH9w1HcH>D)71HH9wHd$HH8HcHy!sHpHd$SATHd$HAE|D;c| DHHSE!IkHDHd$A\[SATAUHAIE|D;c| DHlHCE!IkLlA]A\[SATAUHIAE|D;k| DH,HSE!IkHЃx|LHS(Hc@H¾ A$A]A\[SATHd$HAE|D;c| DHHSE!IkHd$A\[~;w}HO!HkDSATAUHIM1LH'ƅ| MHVLA]A\[SATHd$HAD;c| A~H;IcHvsHpD;ctHIcHkH{[DcHcC HkHcSH9}#HcKHVUUUUUUUHH?HHHHd$A\[SATHd$HAE| A~H;IcHsHpND;c~RD;c~ DH'D;c~;HcCIcH)H*HHH?HHHSCHkH<1&DcHd$A\[SATHd$HAD;c0}H;IcHOsHpD;c4tH{(IcZDc4Hd$A\[SATHd$HAA}H;IcHsHpfD;c tDc Hcs HH{[ZHHd$A\[SATAUHHcs H{vCgD`E|AADHE9A]A\[H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0HHcHT$puCHD$H|$HD$H|$tH<$tH|$HD$HHD$pHtpHT$xH$WHHcH$u&H<$tHt$H|$HD$HP`OEH$Ht#HD$H$SATHd$HIM~ HHHYH{t H{ XH1HtMt HHPpHd$A\[SATAUHIA$gDhHcS0IcHHcS4H9| DHHC(HcS0H4IcL&C0Dk0A]A\[HWHkH Hyt1w LGAAHG!҉4SATAUAVHd$HIIՋC;CuHHSCHkL$LDA$Ml$LHAD$sH`CCHd$A^A]A\[SHH{tCH1HCH߾oHCH{(tC0H1HC([SATHd$HAE|D;c|H;IcHzsHpkHcSIcH)HkHKIcHkH|HKE!IkH4H3C=~;C~kHcsHkH{MVHd$A\[SATHd$HAAt DHHcH$u'H|$tHt$ H|$HD$HP` H$HtHD$H$SATHd$HIM~ HHH{H1^HtMt HHPpHd$A\[SH‹C)[SHS)‹C)[SATHd$H;stN1@H H;4vr!HHD${uDcH#DHHHd$A\[SATAUH{v&CgD`A@AH{1E9wCA]A\[SATAUAVAWHd$HHCH$DcsH=B+]HCH\$HlEAEAfDADH<$Ht\DH<$HwA@ADH<$HD}ILH|$HD$HD9wE9wH<$Hd$A_A^A]A\[UHHd$H]LeHIHtLc.H]HPH=q HH5H H]LeH]SATAUAVAWHHsILSHkIHtXLk~LL_A@ADLqHxLtHuDLUID9wM1LA_A^A]A\[UHHd$H]LeLmLuL}HHsILSADILIHLLøHEfDHEuLHxLHH5HvE9w0H=(HI}DKDLIAELH]LeLmLuL}H]SATAUAVAWHHsILSILHHtWH~KH|AAADHHxL%rHuDH%AnE9wA_A^A]A\[Hd$H2Hd$SATAUAVHd$HE1{v-CgD`AfADHHuAE9wDHd$A^A]A\[HPH*‹@H*^SHd$HPH*$XH_!H)H*$^Hd$[SATAUAVHd$HE1{v?CgD`AfADHHD9vDHHAE9wDHd$A^A]A\[SATAUAVAWHd$HHsH$HSADIL~HD$HteH|$zH|$hAĻDH|$yHxH4$ pHuH|$[IaA9w2H=%HIDMDLHD$AGH4$LHHILH|$LHd$A_A^A]A\[SATHd$HAHHtDHzH1Hd$A\[SATAUH{v>CgD`A@ADH1HtDH!HyE9wCA]A\[SATAUAVHd$HIILHILHHHLnLHd$A^A]A\[Hd$HtH@1Hd$SHHHHHX[Hd$HH=1Hd$Hd$HHtH@1Hd$Hd$HHHHP Hd$Hd$HHp H5HHH Hd$SATAUAVAWHd$H|$ Ht$HT$HD$$HD$ xHT$ BAAADH|$ oHDH|$ YHaDH|$ IWIcHH|H蒭HD$HPIcHÅ|DAAHD$HPIcHHTIcHHDLHHHID9E9IHd$A_A^A]A\[Hd$HHL$HHHHd$SATHd$HIHL$HHHt#HKHc$HHLHcT$HHTI$Hd$A\[SATAUAVAWHd$H|$xIIH5=H|$HT$Ht$0H*HcHT$pE1$H|$xiAh@1H=HD$xHHIcHH<Ht$+HT$HcHHHLHPH0LЃ<$t;\$|A<$tE9H5-=H|$HD$pHt$H$A_A^A]A\[SATAUAVAWHd$H|$xIIH5<H|$HT$Ht$0H HcHT$pE1$H|$xIAh@1H<HD$xHHIcHH<Ht$+HT$HcHHLHHPH0LЃ<$t;\$|A<$tE9lH5 <H|$HD$pHt$H$A_A^A]A\[SATHd$HHL$HHHt4HSHc$HHTHcD$HLdT$4$HHM1LHd$A\[GH!H$H|$Ht$$H|$uHD$HT$HRhHD$H|$&HT$(Ht$@.HVHcH$uqHD$ H|$1Hc$HT$H|$HT$D$BHD$ H|$tH|$tH|$HD$HH$HtH$H$vH螵HcH$u'H|$tHt$ H|$HD$HP`mcH$HtAHD$H$Hd$FHd$Hd$Hd$Hd$FHd$Hd$Hd$Hd$HsHd$Hd$VHd$Hd$HCHd$Hd$&Hd$UHH=qHH5H2H]UHHd$H]LeffAH=_qHH5HH]LeH]Hd$HH=Yq,t Hd$SHd$HH Hf$ftOHd$[SHd$HH*[Hf$ftHd$[SHd$HH芌Hf$ftHd$[SATHd$HH%HtH-@fff-f-f-f-f-f-f-7f-f-f-t^f-f-f-f-f-f-f-fE1fDc fCfAfDcCH-fACH-fACH-fAHd(k<$fD$$fDcH{fAfCfArfDchfDc^fDcTfDcJH{~fA8H{fA&H{fA;H{%GtS-  HCfD >HCffA-HCfD HCH-fA HCH-fAHCH-fAHSH@d(*<$fD$$HCfD H{fAHCffAHCfD HCfD uHCfD kHCfD aHCH8fAOHCH8fA=HCH8fA+;; ;AHd$A\[SHd$HH:Hf$ftHd$[SHd$HHZVHf$ft?Hd$[SHd$HH躇Hf$ftHd$[SATHd$HH%HtH-@fff-f-f-f-f-f-f- f-f-f-t\f-f-f-f-f-f-f-E0DcDcDcCH-ACH-ACH-AHYd(k<$D$$uDclH{A[DcRDcIDc@Dc7Dc.H{AH{A H{A;H{%1tR-HCD &HCD HCD HCH-AHCH-AHCH-AHSHd(*<$D$$HCD H{AHCD HCD |HCD pHCD gHCD ^HCH8AMHCH8A;/ ; AHd$A\[SHd$HH蚃Hf$ftHd$[SHd$HHQHf$ftHd$[SHd$HHHf$ft_Hd$[SATHd$HH%HtH-@fff-f-f-f-f-f-f-/f-f-f-t_f-f-f-f-f-f-f-E1CACADcCH-ACH-ACH-AHd(k<$D$$CAH{ApCAdCAXDcODcFDc=H{A,H{AH{A ;_H{%@tU- HCA2HCA#HCD HCH-AHCH-AHCH-AHSH߾d(*<$D$$HCAH{AHCAHCA|HCD pHCD gHCD ^HCH8AMHCH8Afff-f-f-f-f-f-f-f-f-f-ttf-f-f-f- f-'f-Wf-apHdD$C*D$C*D$*CD$CD$ZCD$sHd(k$$D$RZCD$BC*D$/H{bD$C*D$C*D$CH*D$H*CD$HCH?H*s HdXD$H{D$H{D$H{D$o;]H{6%t\*5-al{HC*D$HC*D$zHC*D$gHCD$THCZD$AHSHRd(*$$D$HCZD$ HC*D$H{'D$HC*D$HC*D$HCH*D$HCH*D$HC`H*s HdXD$gHCH8D$SHCH8CD$?HCH8D$+;;{ ;lD$Hd$[SH$HHHtH@H=~!HHQMHyHH$ݜ$$$f$ft$H$ [SH$HHHtH@H=~HH4HHH$ ݜ$$$f$ft$$H$ [SH$HHHtH@H=~HHLH9HH$iݜ$$$f$ft$H$ [SHd$HH%HtH-@>fff-f-f-f-f-f-f-f-f-f-ttf-f-f-f- f-'f-Wf-apHTdD$C*D$C*D$*CD$ZCD$CD$sHȮd(k$$D$RCD$BC*D$/H{bD$C*D$C*D$CH*D$H*CD$HCH?H*s H>dXD$H{D$H{D$H{D$o;]H{6%t\*5-al{HC*D$HC*D$zHC*D$gHCZD$THCD$AHSHd(*$$D$HCD$ HC*D$H{'D$HC*D$HC*D$HCH*D$HCH*D$HC`H*s HdXD$gHCH8D$SHCH8CD$?HCH8D$+;; ;D$Hd$[SH$HHHtH@H=~aHH|$FH|$H|$H$Hd(<$f$ft ,$H$[SH$HHHtH@H=~HH|$O-H|$H|$H$CH|d(<$f$fti,$H$[SH$HHHtH@H=~!HH|$OEH|$uH|$H$Hܩd(<$f$ft,$H$[SHd$HH%qHtH-@[fff-f-f-f-Vf-6f-f-f-%f-:f-ttf-;f-Pf-ef-f-f-f-<$CD$D$H^d(<$CD$D$H?d(<$iCH)d(<$SCHadYD$D$Hq(zrD$D$Hq(zv ;CHdYD$D$<$CHdYD$D$Hq(zrD$D$H\q(zv ;CHdYD$D$<$iCHdYD$D$Hq(zrD$D$Hq(zv ;0CH,dYD$D$<$HCH$CD$D$Hd(<$H{)<$CD$D$Hnd(<$CD$D$HOd(<$yCD$D$ l$H)d(<$SkHd(<$=c ks HVdHd(<$H{<$H{'<$H{<$;H{%P=2KthNg-HCD$D$HϤd(<$HCD$D$Hd(<$HCHd(<$HCHɤdYD$D$Hdq(zrD$D$H9q(zv ;HCHsdYD$D$<$CHCHVdYD$D$Hq(zrD$D$Hq(zv ;HCHdYD$D$<$HCHۣdYD$D$Hnq(zrD$D$HCq(zv ;HCHdYD$D$<$MHCHH$=HCD$D$Hd(<$H{|<$ HCD$D$Hd(<$HCD$D$Hd(<$HCD$D$l$Hsd(<$HC(HZd(<$HC`(s HdH1d(<$^HCH8<$MHCH8k<$fff-f-f-f-f-f-f-f-f-f-ttf-f-f-f- f-'f-Wf-apHğdD$C*D$C*D$*CD$ZCD$CD$sH8d(k$$D$RCD$BC*D$/H{bD$C*D$C*D$CH*D$H*CD$HCH?H*s HdXD$H{D$H{D$H{D$o;~]H{6%t\*5-al{HC*D$HC*D$zHC*D$gHCZD$THCD$AHSHd(*$$D$HCD$ HC*D$H{'D$HC*D$HC*D$HCH*D$HCH*D$HC`H*s HdXD$gHCH8gD$SHCH8D$?HCH8D$+;:;+ ;HqD$f/zrHqD$f/zv ;D$Hd$[SHd$HHD$hHT$Ht$ ʤHHcHT$`u/H1H|$h7H|$hH u g貧H|$hHD$`Ht)$Hd$p[Hd$HHHu  $Hd$SHd$HHD$hHT$Ht$ H"HcHT$`u/H1H|$h7H|$hH:u H|$h8HD$`HtY$Hd$p[SATHd$HH%@HtH-@*fff-f-f-f-f-f-f-rf-f-f-tbf- f- f-f-f-f--f-4@E0xf{Ai{A\{AOCHd/AA1CHdf/AAkAACHdf/AAfCf AH{YA{Af{A{AH{AH{AsH{AbH{"AQH{AA@; ,.H{%tX").-BJVHCf8AeHC8AUHC8AEHCHd/AA$HCHޖdf/AAHC(AAHCHdf/AAHCf8AH{CAHC8AHCf8AHC8ApHCH8AbHCH8ATHCH8qACHCH8A2HCH8A!; E0 ; DHd$A\[SHd$HUHf$ftHd$[SHd$H2$Hf$ftwHd$[SHd$HrUHf$ft7Hd$[SATHd$HH%HtH-@fff-f-f-f-f-f-f- f-f-f-t\f-f-f-f-f-f-f-E0DcDcDcCH-ACH-AHd(k<$D$$CH-AuDclH{A[DcRDcIDc@Dc7Dc.H{AH{A H{A;>H{%1tR-HCD &HCD HCD HCH-AHCH-AHCHّd*(<$D$$HCH-AHCD H{AHCD HCD |HCD pHCD gHCD ^HCH8AMHCH8A01H|$`Ht$`HID$H8HT$hH1Ht$hH|$`01H|$`qHt$`HID$H8HT$hH!1Ht$hH|$`01H|$`"Ht$`HegID$H0HUID$H0HACID$H0H1A<$N A<$=A<$,wH|$`HD$XHtH$hA\[SATH$HIHDŽ$`HHt$HeHcHT$X A$H% HtH-@ fA$ff-f-Bf-f-f-f-f-f-f-'f-f-:f-f-f-#f-nf-f-H1A|$HT$`HHcwH1Ht$`H01 A|$HT$`HHc81Ht$`H$`D01H$`H$`HSIID$Hc8HT$`H1Ht$`H$`01H$`kH$`HAD$H$`2H$`HAD$H$`H$`HIt$H$`H$`HxAD$H$`H$`HYOfAD$f @ƲH$`H$`H(It$H$`H$`HA|$HT$`HHc药1Ht$`H$`01H$`H$`HA|$HT$`HHc41Ht$`H$`@01H$`H$`HOEA|$HT$`Ho1Ht$`H$`01H$`jH$`HI|$HT$`H芮1Ht$`H$`01H$`H$`HI|$HT$`HŮ1Ht$`H$`A01H$`H$`HPFIt$H1|2It$H* It$H1V A<$I|$A$%D0=RD- ID$8HT$`HHcά1Ht$`H$`01H$`YH$`HID$8HT$`HHcs1Ht$`H$`01H$`H$`HID$8HT$`HHc1Ht$`H$`%01H$`H$`H4*ID$H$`iH$`H ID$H$`H$`HID$H0H$`DH$`HID$H$`H$`HID$ff @ƲH$`H$`HVLIt$H$`H$`H/%ID$8HT$`HHc蹪1Ht$`H$`01H$`D H$`HID$8HT$`HHc^1Ht$`H$`j01H$` H$`HyoID$8HT$`H藪1Ht$`H$`01H$` H$`H"ID$H8HT$`H诩1Ht$`H$`01H$`: H$`HID$H8HT$`H1Ht$`H$`c01H$` H$`HrkID$H0H1WID$H0HLEID$H0H1x1A<$ A<$A<$0H$`HD$XHt褁H$hA\[SATHd$HIHD$`HHt$|HZHcHT$XuLH|$`fHT$`H߾H|$`HD$XHtHd$hA\[SHHE´HHtHV:H H=FHHH5sd3[SATHd$HIHHHtH :H H=HLHHd$A\[Hd$HHHH5rdHd$Hd$Hd$SHHHHtH:H H=HHH5Xrds[SATHd$HIH;HHtHL:H H=<HLH-Hd$A\[Hd$HHHH5qdHd$SATAUAVAWH$IIHHDŽ$pHT$Ht$(zHXHcHT$h LHqd1= ȬLL1+ 趬LHlqd1 蠬HH|$p胥HT$pL1 LH=qd1 iL \%@=@u#LH$qd1 8L +% = u#LHqd1| L H%tOLHpd1N ٫3H$p褥H$pL1譫LE 蠫%sLLHpd1 ~%HHHL1 ZLM%=u(LHpd1 $L%=u%LHzpd1c LTLH}pd1> ɪ3H$p菤H$pL1蘪L0苪IHDpdL1mL`AfAOIDtH$pH$pL10 L1 LA |H% = LHod1/躩LL1訩LH^nd1蒩HH|$puHT$pL1qLHGod1[LNLAs f;LHod1L@@t% H{LHnd1ĄLd迨LHnd1詨LL1 藨LHMmd1聨HH|$pdHT$pL1`LH6nd1JL=L0bff=f-cf-f-f-f-f- f-,f-Vf-qf-f-f-f-2f-Mf-hf-f-f-f-?f-f-f-.f-Xf-f-f-f-f--f-f-Gf-ff-f-f-f-f-LHld1蛦L莦HSL1 uLhHcSL1 PLCC<$L1LC<$LLcޥ`HKLS辥L6豥3C<$LO芥L}HSL1J eLXsH$p>H$pL1< 'LfCf L1LtqIHjdL1A̤Ld迤LH jdH|$pdHt$pHSLeHSL1 |LoSL1\ WLJSL17 2L%SL1 LHSL1n Laܣ^HSL1 ģL<跣9HSL1蟣L蒣LHid1wLjHCHL1 NLAHCHcL1 &LHC<$L1 LjgHC<$L 転L3订0HCHL 苢L~HC<$L TLGHCHL1,LHC0H$pH$pL1Lcޡ`HCff L1轡L5谡2HCHL1 蔡L 臡 HCL1q lL_HCL1I DL7HCL1" LHCHL1zLmmHCHL1РLHàHHCHL1諠L#螠#LHfd1膠LyL]1jeLXLH&fd1BLL10LHdd1HH|$pHT$pL1nLHed1XL{֟LnɟpH$pHD$hHtrH$A_A^A]A\[SATHd$HAu HFAH9Hd$A\[SHd$HH4$HHT$Ht$ lHJHcHT$`uH$HuHcHoHSHD$`HtTqHd$p[Hd$Hd$SHH{1ҾLDf[SATHd$IA$% = uI|${Å}sA$%@dfA$f-Uf-t,f-t4f-rHT$0Ht$HXH6HcH$nH$PD$)ЉD$H$|.D$@D$H $T$LT$щT$;D$ރ|$H<$zD$$|$H<$D$D$$L$$T$g9dD$ D$ l$ Hct$ H<$EHD$(|$uH|$(1 =&|$uH|$(1|$u H|$(e;\$ |HcT$$HcD$H4H$Hc@HH$HxX|$~-H$Hc|$$HcPHHxH$HcpHcD$H1D/H$D$BH$D$ BiZH$H~H=FqL\HthH$H$H$VH5HcH$uH$D$YH$Ht\\j[t$H<$mD$H$[H$H<$Ht$H<$D$!H<$QD$ HT$Ht$01VHY4HcHT$pAH$8Ht$8D$HT$xH$UH 4HcH$HD$HH$fRfPH$RP@H$ff|@D$L$L$!H<$!ttt$H<$!tt;T$HD$H8tD$uVHD$H0H<$D$RX|$tHD$H8HD$HH$HtHYHDŽ$XHD$pHH=CqYHtbHD$xH$H$TH2HcH$uH|$x~D$WH$HtyZTZ YxW t$H<$ D$H$H$(H<$Ht$H<$FD$H|$0D$H|$D$HT$Ht$0SH1HcHT$p3H<$D$FHT$xH$vSH1HcH$HD$H$Hfrf;qur;quff;t D$WH$|LD$fD$H $H|$L@AtC;tu ! A; t D$WW;T$H|$@aD$uHT$(Ht$@BPHj.HcH$nH<$~tt%t4tCPH$HcPHt$H|$ $7HD$ H0H|$5#HD$ H0H|$JHt$ H|$9RH$H~H=>qTHthH$H$H$pOH-HcH$uH$|yD$sRH$HtQU,USt$H<$D$H$H$H<$Ht$HT$HD$ Ht$H<$H2D$8HT$(Ht$@NH,HcH$hH<$tt%t1t=JH$HcPHt$ H|$B#1H|$ Ht$3 H|$ Ht$Ht$H|$ ZQH$H~H==q=SHthH$H$H$MH,HcH$uH$wD$PH$HtSS[Rt$H<$^D$H$Hd$0Hd$SHt1C[UHH$HLLH}u讀HEHUHuLH+HcHU6H}H5EdͼDe@A]Hu1H. H5ۂH=ڂDEH1.~HM~HEHHHEHH(EdHHH}1ɺaLeM,$HEHHtH[HHH9v}HI<$6A|,uHEH0HtHvH}HEH0H}1HDd׼NH})HEHtKPHLLH]UHH$HLLH}u~HEHUHu$KHL)HcHU6H}H5CdDe@A]Hu1H^ H5oۂH=ڂDEH1^ }H}|HEHHHEHHXCdHHH}1ɺaLeM,$HEHHtH[HHH9v{HI<$fA|,uHEH0HtHvH}HEH0H}1HBdMH}YHEHt{NHLLH]UHHd$}*}Et EeE=EH]UHH$0H8L@LHLPLXH}HuUM|EHhE舅`L}AH͂L%͂MuzML):HLL`DhAHEHUHxHH&HcHpu2LuLmH]HuzL#L9LLA$EKH}}4HpHtLEH8L@LHLPLXH]UHHd$H}HuU {}JEHuH}qH]UHH$@HHLPLXL`H}HuUMDEؿ{EDEMHUH=B΂APHEHUHpAGHi%HcHhu1LuLeLmMuxI]HY8LLE%JH}3HhHtKEHHLPLXL`H]UHHd$H}HuU 2z}EHuH}A)H]UHH$ H(L0L8L@LHH}HuUMDEؿyEH`EXEHPL}AH~ЂL%wЂMuuwML7HLLPDXD`AHEHUHpEH#HcHhuHuH}JgEHH}1HhHtJEH(L0L8L@LHH]UHHd$H}HuUM(x}GAEUHuH}iH]UHH$@H}HuUMDEDMȿ4xEȉ$DMDEMHUH=Ђ=HEHUH`TDH|"HcHXuHuH}fEYGH}P0HXHtHEH]UHHd$H}HuUM(w}7AEUHuH}A)H]UHHd$H]LeH}u(wHE@0;EHEUP0HEHxWHcHqIuHH-H9vt|ZEfDEHEHxu$IHEp0L*HHEHxuz$IHEp,Lh ;]H]LeH]UHHd$H}IvHɂH]UHHd$H]H}HuUMDE8vEMUHuH}AmaHE؋@0)tdHEHx4HcHq&tHH-H9vs|-EEHEHxu|#HU؋R0Pp;]H]H]UHH$HLLH}HuHUMDEDMؿ(.uH}u'LmLeMusLH2LShHEH}HUHh@AHhHcH`uQHE$)DMDEMHUH}1HEH}tH}tH}HEHDH`HtlHHH@HHcHu#H}tHuH}HEHP`C7ECHHtF\FHEHLLH]UHH$HLLH}HuHUMDEDMsH}u'LmLeMuuqLH1LShHEH}HUHp?HHcHhuTHEHEЋUP0DMDEMHUH}1=UHEH}tH}tH}HEHaBHhHtlHPH ?H5HcHu#H}tHuH}HEHP` BCAHHtDDHEHLLH]UHH$HLLH}HuHUMDE qH}u'LmLeMuoLH~/LShHEH}HUHp>H,HcHhuZHE$)EAMHUH}A=1HEH}tH}tH}HEH@HhHtlHPHk=HHcHu#H}tHuH}HEHP`g@A]@HHtc@>HpHtAAHEHLLH]UHH$HLLH}HuHUHMLEDMHELeIMkHLILLHLmnH}u'LmLeMutlLH,LShHEH}IHUHp:HHcHhHEHPHe:HHcHu!HUЋEBHMLEHUH}1n0Y=H}PHHt>HEH}tH}tH}HEH=HhHtlHPH9HHcHu#H}tHuH}HEHP`#HH"HHEHEHMHqςHPE1M1H=[FHH5H3HLH]UHH$HLLH}HuUMdH}u'LmLeMubLHs"LShHEH}HUHu0H$HcHxuSHEHUEBHUEB@HE@ HE@D\HEH}tH}tH}HEH3HxHtlH`H j0HHcHu#H}tHuH}HEHP`f34\3HHt;66HEHLLH]UHH$HLLH}HuUZcH}u'LmLeMuAaLH LShHEH}HUHuo/H HcHUuNHE}EH}1HEH}tH}tH}HEH92HEHtlHhH(.H HcH u#H}tHuH}HEHP`1o31H Ht44HEHLLH]UHHd$H}aHEHHEH@0Hq5`HUHB0HEHP8HH9}HEH@8Hq`HUHB8HE@XH]UHHd$H]LeLmH} ]aHE1HOLeMl$`H]HcSPHH9vJ_Hc[PHI|$`ɭITHEpTH}4HEHcPTHEHP0qM_HEHP0HEH@8HH9}HEHcPTHEHP8q_HEHP8HE@XH]LeLmH]UHHd$H]LeLmH}uU0g`LeMl$`HcEHH9vf^Hc]HI|$`I|+HUBTLeMl$`HcEHH9v#^Hc]HI|$`袬ITHEpTH} LeMl$`HcEHH9v]Hc]HI|$`[I|HUBTLeMl$`HcUHH9v]Hc]HI|$`ITHEpTH}HEUPPH]LeLmH]UHHd$H]LeLmLuH}uU8_LeMl$`HcEHH9v]Hc]HI|$`聫I|HUBTLeMl$`HcUHH9v\Hc]HI|$`>ITHEpTH}LeMl$`HcUHH9vx\Hc]HI|$`I|=LmMu`HcEHH9v;\LceLI}`軪KT&H}+HEUPPH]LeLmLuH]UHHd$H}HuHp]HUHu)H#HcHUu/HEHxhHuWHtHEHxhHuHE@ ,H};HEHt].H]UHHd$H}@u]0H]UHHd$H}\H]UHH$`H`LhLpLxH}\HEHUHu(HHcHU^HE@@tcHE@@tkHEHU@P;B$}[LmMe`HEHcXPHqZHHH9v;ZHI}`迨A|?uH}? HE@X H} HEH@0Hq&ZHUHB0HEH@8HH9}HEH@8HqYHUHB8HE@EH}17HEHcXPHqYHH-H9vlYHEXPHEHU@P;B$LeMl$`H]HcCPHH9v,YHc[PHI|$`諧A|!HE@@ H}HEHcXPHqYHH-H9vXHEXPHE@X<fDLeMl$`H]HcCPHH9vXHc[PHI|$`I|HHUBTHE@@HEpPHMHUHIH}HEx xLeMl$`HcEHH9vWHc]HI|$`sI\LmMu`HcEHH9vWLceLI}`>K|&H}UuH}UuH}-HE@XLeMl$`H]HcCPHH9vHWHc[PHI|$`ǥA|]HExX t HExXuWLeMl$`H]HcSPHH9vVHc[PHI|$`qAt1H}PH}HEpPLeMl$HcEHH9vVHc]HI|$^J+HE@H} SHE@X LmMe`H]HcSPHH9v?VHc[PHI}`迤HUAD:BDHE@@@HEHcPPHEHcXTHq2VHH-H9vUHEXPHEHU@P;B$ILeMl$`H]HcCPHH9vUHc[PHI|$`I|cHUBTHE@@tfH}:LeMl$`H]HcCPHH9v5UHc[PHI|$`责ITHEpTH}HE@XWLeMl$`H]HcSPHH9vTHc[PHI|$`\At1H};H}HEpPkHEHcPPHEHcXTHqTHH-H9vyTHEXPHEHU@P;B$HEHU@P;B$~HEp$H=d%H}HEHt'H`LhLpLxH]UHHd$H]LeLmH}uHUHM@UEHEHEHEH@@@@HELhMe`HcEHH9vqSHc]HI}`HEHPAD:BDHEL`Ml$`HcUHH9v&SHc]HI|$`襡I|EHcUHcEHq6SHUHRHcR$H9HcEHc]HqSHH-H9vR]HUE HEUHEL`Ml$`HcEHH9v{RHc]HI|$`I|@EHcEHc]HqRHH-H9v3R]HcUHcEHq^RHUHRHcR$H9HEL`Ml$`HcEHH9vQHc]HI|$`cA|-zHEL`Ml$`HcEHH9vQHc]HI|$`!I|gEHcEHc]HqQHH-H9vZQ]HEH@@@@HELhMe`HcEHH9vQHc]HI}`螟HEHPAD:BDHEL`Ml$`HcEHH9vPHc]HI|$`RI|EHcUHcEHqPHUHRHcR$H9EHcEHc]HqPHH-H9vhP]HEU HEUEEH]LeLmH]UHHd$H}HuQHEHphH}DH]UHHd$H]LeLmH} QHEHcPPHEHcXTHqOHH-H9vOHEXPHEHU@P;B$LeMl$`H]HcCPHH9v[OHc[PHI|$`ڝI| HUBTH}HEHcPPHEHcXTHqVOHH-H9vNHEXPPH]LeLmH]UHHd$H]LeLmH} PLeMl$`H]HcCPHH9vNHc[PHI|$`AD<*,*t,tf,HE@@t>HExXH} HE@XHE@8@<zH}alHE@@t H}TH};IHE@@t H}2H}'LeLmMuMI]H) LH]LeLmH]UHH$`H`LhLpH}@uUOHDžxHUHu]HHcHUX}HEHcXPHq)MHH-H9vLHEXPLeMl$`H]HcCPHH9vLHc[PHI|$`$AD:Et]LeMl$`H]HcSPHH9veLHc[PHI|$`At1HxHxHEpPE.@Hc]HqQLHH-H9vK]HEHcPPHcEHq LHUHcR$H9OLmMe`HEHc@PHc]HqKHHH9vKHI}`"AD:Ed}jHEHcPPHcEHqKHUHcR$H9~GHEHc@PHc]HqKHqvKHH-H9vKH=Ud}LmMe`HEHc@PHc]Hq(KHHH9vJHI}`UA|]LmMe`HEHc@PHc]HqJHHH9vJHI}`At1HxLxHEHc@PHc]HqJHH-H9v/JLH} HE@EH}1H}H}}~7Hc]HqJHH-H9vIH}LeMl$HcEHH9vIHc]HI|$GJ+HE@H} Hc]HI|$HdI\LmMuHcUHH9v>LceLI}oK<&H}t E.Hc]Hq>HH-H9vR>]LceLmMuHHcEHH9v+>Hc]HI}H諌I|HcLqD>HH-H9v=]LLceLmMuHcEHH9v=Hc]HI}I<HcLq=HH-H9v=]HE@(;E} EHc]Hq=HH-H9v;=]LeMl$HcEHH9v=Hc]HI|$J+HELceH}HcLq$=HH-H9v<]LeMl$HcUHH9vHcMHq*H}Hu{HcUH}HuH{6Hc]Hq*HH-H9vG*]܋E;EXH]LeH]UHH$HLLH}HuHUMDE+H}u'LmLeMu)LHNLShHEH}HUHxHHcHpuKHEDEMHUH}A)1HEH}tH}tH}HEHHpHtlHXHJHrHcHu#H}tHuH}HEHP`FHAHUHBEHE舅DuLmH]LeMuNM<$LHLDDAHEH}tH}tH}HEHHhHtlHPH5H]HcHu#H}tHuH}HEHP`1'HHtHEHLLLLH]UHH$HLLLLH}HuHUMDE8H}u(H]LeMuMLHAUhHEH}eHUHpH=HcHhHEEEEt EeE=EHEԈEHLuLm1LeMu9M<$LHLLDDAHEH}tH}tH}HEHmHhHtlHPHHAHcHu#H}tHuH}HEHP` HHtHEHLLLLH]UHHd$H]LeLmH}Hu( H}~'LeLmMuI]HLHEHx^H}1H}tH}tH}HEHPpH]LeLmH]UHHd$H}uvHEHxuVH]UHHd$H]LeH}@u(=HE@:EyHEUPHEHxv\HcHqhHH-H9v|8EDEHEHxuIHE@pL٪;]H]LeH]UHHd$H]LeH}@u(}HE@):EyHEUP)HEHx[HcHqHH-H9vP|8EDEHEHxuIHE@p)LY;]H]LeH]UHH$PHXL`LhLpLxH}HuHRHUHuH HcHUHEHx Hu=bHHEHx HuRHEHXHELhMu)MeLHA$HUB,HEHEP)UHEDx(HELh H]LeMuM4$L~HLDMDEABH}QHEHtHXL`LhLpLxH]UHHd$H]LeH}u(NHE@,;EyHEUP,HEHxYHcHqyHH-H9v!|8EfDEHEHxuIHEp,L躨;]H]LeH]UHHd$H}HeH]UHH$HLLLLH}HuUMDE@5HDž`HUHpuH蝾HcHhu1H`ZH`HUH=2hmHEHHHH9HcH0H]LeMuM,$L)HAHcHqHH-H9viHEEDuLmH`LeMuM<$LHLDAH`HHUHBHD}DuHEL`MuMLTHDEHHAHHEHx;E?H}HHthH`'NHhHtFHLLLLH]UHHd$H}HEHx,VH]UHHd$H]LeLmLuL}H}HuHEHEHxUHcHqHHH9vyHEEnEEHEHxuHHEHxILmLMMuM4$LHLAtEE;EEH]LeLmLuL}H]UHH$`H}Hu$)HEDH,HED@)HEH(HEHP H=gh芜HEHUHuH̺HcHxuHuH}aEH}HxHtEH]|)1fD H5oiks/9SH'|,fDHc H5'iksHc /9[SH!HHt =H8~f*H!HHt =H%f[H@HW@=I@H@fDGGGWW HH?HHHcH%ƒfV ƒ?fVƒfVƒfVƒfVfSATAUAVAWH$HIIHHH$A DAE~*AĊfw>s0SATAU@IHHHt H 8 H HfD(HHHt H 8 H HfL^HgHHt Hx 8 Hk HfD(A]A\[SATAUAVH$HIHek8tLH$ LH$hD$A|:E1fDAAH5dkt AƄ/E9ϊ$<$~$/t<H5cH$L"H$HW$t<u2$v(|$/u!H$?$</uE$HH$H$H$HH$]G$H$H$QH$HH$$vV$H5cFt>$HHf$$uH$D$<r $/u<H1 <$u"H$HH$j$u8HH$H$H$H c%FH$HcH$H$H$H$H$$HH$H$H$H=ScNIufDgEuA$IcH9~gAF%/tIcIcH)gAUHcH$H$H=cAEuH$H=cIHS HHt =5۴H2۴A<$u1H& HHt Hڴ: HڴHfgÅH$LH|$1@A}t_L1H$}@H$H|$xKHt$xH|$6H|$ *H$HHD$HuHH1H H$HD$HuHHH$H@Ht$HuH51H$@H$H4$^Ĩ6u1H HHt Hٴ: HٴHfUH HHt =ٴHٴH HHt =|ٴHyٴ|3t.Ho HHt H@ٴ: H3ٴHf,HA HHt Hٴ8 HٴHf7H$4H|$x4H|$v4H|$l4HD$pHtH$A]A\[SH5eHشH|teHشH| HpeHشH| HdHnشH|dd=dvd%[SHd$@s,HxdH<tHHddHuH@ > 8H<>tH98SATAUAVAWII1A<eAA<XA+Et(Et#HA<8AA<+AE8tAAH)A_A^A]A\[IHu1ÐB FtEtIA8uL9AL)HSATAUAVAWHd$IIIHMu H$KA<vAA<iD$EtD$tHD8d$uI9AD$H)H$H$Hd$A_A^A]A\[0ɀ>uHDAr!0DFDDA8wHSATHd$HIHJHL_HHd$A\[SATAUHIIHHH)I)M~ LLHA]A\[SHHHH[SATAUAVHd$HIHtTHtO3IHt?H踨I-LHLHuMI3LIIMuLHd$A^A]A\[SATAUAVHd$HIHtTHtO3XIHt?H8I-LHLHuMI3LIMuLHd$A^A]A\[Hd$HHHǾXHd$Hd$HH$HH%H$Hd$SATHd$HH$Ht2;t-H{L`LHH<$tH4$HLH$Hd$A\[Hd$HHtH[Hd$UHHd$H}HuHEH;Ev EHEH;Es EEEH]UHH$HLLH}HuHUMH}u'LmLeMuLH袝LShHEH}HUHu+HSHcHxuEHEHUHEHBHUEBHEH}tH}tH}HEHHxHtlH`H 觫HωHcHu#H}tHuH}HEHP`裮.虮HHtxSHEHLLH]UHHd$H}HEH]UHHd$H}HExt9HEHxtHEHxg<HUHBNHEHxHUHB7HEHxtHEHx<HUHBHEHx'HUHBHEHxEEH]UHHd$H]LeLmH}Hu0LmLeMuI$HkLHEHUHP(HuH}HEH]LeLmH]UHHd$H]LeLmLuH}HuHUHMPMLmLeMu;I$HߚLHEHUHP(H}HEHp(HUH}J-HEH8t HEHHP(HuH} -HEH@HqHUHBHEHxuHEHUHPHEHUHP?HEH@HEfHEH@HEHEHxuHEHUHPHEHUHPLuLeLmMu3I]HיLLHuH} HuH}OH}9HUHHEH]LeLmLuH]UHHd$H]LeLmH}(HEHxt5HEL`HELhMuI]H,LHEHEHx{HEHEH]LeLmH]UHHd$H]LeLmLuH}Hu0HEHxt8HELpLeHELhMuI]H萘LL H}YH]LeLmLuH]UHHd$H]LeLmLuH}Hu@HEH@HEH@HEH@HqHUHBHEHx@HEHp(H}HEHP(HEHp(H}i*EHUHEHB}}HEHUHP HEHUHPLuLeLmMuI]HxLLHuH} FHEHUHP@HEH@LuLeLmMuI]H#LLH]LeLmLuH]UHHd$H}9HEH@@HEHtfDHEH@HEHEHxuHEH]UHHd$H}HEH@@HEHtfDHEH@HEHEHxuHEH]UHHd$H]LeLmLuH}HuXHEx HEx HEH@HEHEx H}HEH@H;Eu4HEHcX Hq~HH-H9v&HEX 2HEHcX HqJHH-H9vHEX HEHEHEx }HEH@HEx LuLeLmMuI]H(LLHEHc@ H)qHH-H9v]HEX HEHcX HqHH-H9v+HEX HEHE>HEH@HELuLeLmMuI]HyLLLuLeLmMuI]HKLLHE؃x  HE@ HE@ HE؃x | HE@ HE@ HE@ HEHEzHEH@HEЃx LuLeLmMuI]H諓LLHEHc@ HH)q6HH-H9vHEX HEHcX HqHH-H9vHEЉX HEHEHEH@HELuLeLmMuVI]HLLLuLeLmMu(I]H̒LLHEȃx | HE@ HE@ HEȃx  HE@ HE@ HE@ HEHEH}.H]LeLmLuH]UHHd$H}HuuH]UHHd$H}HuHUQH}uHEHp(11H}%HMHUH}1H]UHH$`H`H}HuHUHMHEH@(H;EuHEH@0H;EHEHx%HUHEHB(HUHEHB0HEHB8H]HSHH9vCEHc]HkqHHH9viHH}-HUHp舟H}HcHhH}HEEKHUHcMHEH@(HHc]Hq5HH-H9v]H}0HEH}uH}HUHEHB(HUHEHB0HEHB8Hc]HqHH-H9vv|(EEHUHcEH4H}/;]赡H}HhHt+H`H]UHH$ H L(H}HuHDž0HDž8HDž@HDžHHEHUHuޝH|HcHUHEH@H;EHEHxH}- LeMu/I$HӎHHH$HH1HH/HHHPH dHXHEH@H@H@HH@1H@H@01H@P+H@H`H dHhHEL`MubI$HHH@WH@1H8bH8HpHm dHxH}H@H@1H0!H0HEHP1ɺH}HUH=p HH5jHHUHEHBHEH@HͱH;u HEH@H0[ H8O H@C HH7 H}. HEHtPH L(H]UHHd$H]LeLmLuH}HuHHEH@HE@HEH@H;EnHEHcX Hq HH-H9vHEX HEx HEx uHEHEH@HEzHEx uILuLeLmMu?I]HLLHE@ HE@ 2HEH@HELuLeLmMuI]H莋LLLuLeLmMuI]H`LLHEx  HE@ HE@ HEx u HE@  HE@ HE@ vHEHcX HqHH-H9vEHEX HEx 6HEx uHEHEH@HE HEx uILuLeLmMuI]HuLLHE@ HE@ HEH@HELuLeLmMu|I]H LLLuLeLmMuNI]HLLHE؃x | HE@ HE@ HE؃x u HE@ HE@ HE@ H} H]LeLmLuH]UHHd$H}HEHp@H)HEH@@HEH@H]UHHd$H]LeLmLuH}Hu0EH}t8HEHxtHEHpH}HEHxtHEHpH}HELpH]HEL`MuM,$L茈HLAH]LeLmLuH]UHH$HLLH}HuHUyH}u'LmLeMu`LHLShHEH}HUHu莖HtHcHUubHEHEHUHP(LeLmMuI]H虇LHEH}tH}tH}HEHDHEHtlHhH(HtHcH u#H}tHuH}HEHP`zH Htě蟛HEHLLH]UHH$HLLH}HuHUHMH}u'LmLeMuLHqLShHEH}HUHuH"sHcHxujHEHUHEHB0HEHB8LeLmMuVI]HLHEH}tH}tH}HEH襗HxHtlH`H QHyrHcHu#H}tHuH}HEHP`MؘCHHt"HEHLLH]UHH$HLL H}Hu=H}u'LmLeMu$LHɄLShHEH}HUHuRHzqHcHUuAHEH0H}1HEH}tH}tH}HEH)HEHtlHpH0ؒHqHcH(u#H}tHuH}HEHP`ԕ_ʕH(Ht詘脘HEHLL H]UHHd$H]LeLmLuL}H}HuHHEHxtIHEHxt>H}#ILuH]LeMuM,$L=HLLALuH]LeMugM,$L HLAHEH@HEHEH@HEHxtHEH@HE HEH@HEH}t HUHEHBH}HEH@H;Eu@HUHEHBHEHcX Hq&HH-H9vHEX >HEHUHPHEHcX HqHH-H9vHEX HuH} HUHEHB@HEH@HqHUHBLuH]LeMuM,$L迁HLAH]LeLmLuL}H]UHHd$H}Hu HEH}HHEHtHuH}EEEH]UHHd$H}Hu eHEH}HHEHtHuH}?EEEH]UHHd$H]LeLmH}Hu(H}~'LeLmMuI]H脀LH}HEx t HEHxzH}1zH}tH}tH}HEHPpH]LeLmH]UHHd$H}YHEH=HH]UHHd$H}HE0ɾH=ߢHH]UHHd$H}Hu HEH@@HECHEHP(HuH}Et'}}HEH@HE HEH@HEH}uHEH]UHHd$H}HuHU(QHEH@@HE9HEHp(H}UE܅t'}}HEH@HE HEH@HEH}uHEH]UHHd$H}HuHU(HEH@@HEOHEHp(H}UE܅t=}}HEHxt,HEH@HEHEHxtHEH@HEH}uHEH]UHHd$H}HuHU(AHEHuH}HHEHt3@H}HEHtHEHp(H}Uu HEHEHEH]UHHd$H}HuHU(HEHuH}H=HEHt3@H}HEHtHEHp(H}Uu HEHEHEH]UHHd$H}Hu(EH}tKHEH@(HEHEHEfH}HEHt+HEHP(HuH}QuHEHEHEHEH]UHHd$H}Hu(žH}tKHEH@(HEHEHEfH}HEHt+HEHP(HuH}uHEHEHEHEH]UHHd$H}Hu EHEH@@HEYHEHP(HuH}kEt=}}HEHxt,HEH@HEHEHxtHEH@HEH}uHEH]UHHd$H}Hu襽HEH}HeHEJHEH@(H;Et~H5;cHHELpLeHELhMu轣I]HacLLHEHxt!HEHxMHcHqߣHEHEHEHxt!HEHxHcHq諣HEHEHEHcP HEHMH)q胣H9jHxHcH@HE@ 4H4HHc41H4H801H8oH8HHHRcHPH}H8H臜1H8H(01H(H(HXHcH`H}H8H*1H8H 501H H HhHcHpH@1ɺHxHxHp;sH H(H8wHxkHEHttHLLLH]UHHd$H}Hux%HEHUHukoHMHcHUuFH}HU1H5 cH}iHUH=^pdHH5Hq=rH}HEHtsH]UHHd$H}yHEHEHxtHEHxHEq讠HEHEHxtHEHxHEq臠HEHEH]UHHd$H}HEH@HEHt!fDHEH@HEHEHxuDHEHEDHEH@HEHEHxtHEH@H@H;EtHEH@HEHEH]UHHd$H}YHEH@HEHt!fDHEH@HEHEHxuDHEHEDHEH@HEHEHxtHEH@H@H;EtHEH@HEHEH]UHHd$H}蹠HEH@HEH@HEH@HE@ HEH@(H]UHH$HLL H}Hu=H}u'LmLeMu$LH]LShHEH}HUHuRlHzJHcHUvHEH}1VHEH@HEH@HEH@HEH@ dHEH@(HEH}tH}tH}HEHnHEHtlHpH0kHIHcH(u#H}tHuH}HEHP`n&pnH(HtpqKqHEHLL H]UHHd$H]LeLmH}Hu(虞H}~'LeLmMu耜I]H$\LH}H}1VH}tH}tH}HEHPpH]LeLmH]UHH$HLH}HupH}HEHxLeMưI$Hp[HHZHHEHEHEHHEHEHEHHEHEHEH HEHEHEH(HEHEHMAHcH=Xp_HH5HHzkHEHUH@H;B |-HEH@HHUHR(HqIHUH;BH}HUHEH@HBHEHUHPHEH@HqHUHBHEH@(HqHUHRHq՚HHUH;B}H}H} H}THEH@Hq藚HUHBHLH]UHHd$H}HEHxtIHEH@HEHEH@HUH@HBHEH@HEH@HqHUHBH=zRHEHEH@HqݙHUHBHEH]UHHd$H}I<HEH@HEHEH@HUH@HBHEH@H}SHEHxuHEH@H]UHHd$H}HuŚH}}HEHEH@(H;Et HEHUHP(H]UHHd$H}HuuH}}HEHEH@ H;Et HEHUHP H]UHHd$H})HEHxtPHEH@HEHEH@HUH@HBHEH@HqKHUHBHEH@H}^RH]UHHd$H}Hu襙H]UHHd$H}y蔧H]UH1UH={HHz{HH]UH1%H^{H8QHO{HH]UHHd$H]H}H]HtH[HHH9vH]H}tHEH sHEHEH]H]UHHd$H]LeH}(qH}u HELeMuOI$HUH]HHHHH9vBHELc`LHH9v#MkqXIqNLHH9vLeHEH]LeH]UHHd$H}詗H}u HE HEH@HEHEH]UHHd$H]iS#HH-H9vg]H]H]UHHd$H}HuHGx HEHUHuScH{AHcHUH}HuHEH8ÛuYHEH0/YH~HEH0H}HuH}HEH01H}mHuH}HEH8tHEH80u H}1eH}#H}HEHtHcHp HEƀH}藹Hu H~>HcHHEHHcHHH}1ɺHuH}H}taHxHEHHHcHHEHH1ɺHxHxH}|LeLmMuJI]HPLbH}KHpHt6dbHxH}HEHtdHLLLLH]UHHd$譒HvyHEHu1H=c`H]UHH$HLLLLH}HuUHD$xHt>WH$H$H|$H4$HD$(HT$0Ht$HBRHj0HcH$H|$(1H$H$RH)0HcH$HD$H8H4$HD$HD$|$H|$HD$HD$ H$H$QH/HcH$HuHT$ H4$H|$OTH|$ =H$HHtUiTH$HH=@pLVHtmH$H$H$PH/HcH$PuH$HpH|$(SH$PHtVVeUH|$(t-HD$(H$HDŽ$ H$1ҿSH|$(H$HtUD$H$XH$H|$H4$HD$(HT$@Ht$XPH:.HcH$H|$(1H<$H$HHD$8H$H$OH-HcH$;HeH8!D$Dt$HeeH8!HD$0HtHD$0H@ HD$ HD$H|$H|$HD$HD$ H$H$ OH2-HcH$X/H4$H|$ Q'H$`H$xNH,HcH$uHHT$ H$HBHD$ HT$HP HT$H4$H|$ HD$ HH|$(1eQH$HH=3=pnSHtmH$H$H$NH?,HcH$ uH$HpH|$(QH$ HtSS RP=PH|$ 9Ht$8H<$H$HH$XHtHt#CRHDŽ$X뵃l$|$PH$HH=8=H$Ht??HD$H$SATHd$HIM~ HHH{@t H{@H1HtMt HHPpHd$A\[SATAUHd$HAAH{0tDDHHH$HS@HcCAfDAH$HcP,t"A|$@AD$DH H DDkH6L$H fD$<$D$H H DD3HHHd$A^A]A\[SATAUHd$HAAHH=s=tC@$fCDfD$+H߾LD$H fD$ D$$fD$ fD$D$DD<$D$H H Hd$A]A\[SATAUAVAWHd$H|$0fD$8D$@fD$HD$$fD$Ht$0H=<t;HT$0B@D$fBDfD$f|$wD$H|$tD$8|$uD$@D$8uD$@u D$HúfT$PfAfD$P%fD$D$ D$HT$0B8AEVAAHT$0B<Å'AADDH|$0HD$D$@t1fT$"fD$Pf!fD9tD$@D$D$8u D$HD$8tfD$fL$Pf!fT$fD$Pf!f9ufD$fL$Pf!fT$ fD$Pf!f9tD$8$D$@u D$HkD$HVfL$Hd$(fD$f!Hz t uB B Hzt8uBBfL$Hd$(fD$f!Hz t uB B Hzt8uBBfL$ Hd$(fD$f!Hz t uB B Hzt8uBBfL$"Hd$(fD$f!Hz t uB B Hzt8uBB|$ u#|$uD$HfD$D$@uD$8t D9E9$T$H H Hd$`A_A^A]A\[Hd$H<$fGf!@H$z t uB B H$zt@8uBBHd$SATAUAVAWHd$@t$H|$D$H fD$ |$D$ H H HT$H H9u L|$HD$P8HD$p<|$D$ H H BIHT$B8AE|[AfDAHT$B<Å|5ADADDH|$HDDLKD9E9D$t H|$LHd$ A_A^A]A\[Hycf/zvfHtcf/zsf1H-f%Hd$HHHHHc@HT$(Ht$@zHHcH$HD$ @G$H f$HT$$B@f$fBDL$$H|$1ƸHD$ H|$tH|$tH|$HD$HH$HtH$H$HHcH$u'H|$tHt$ H|$HD$HP`,H$HtuPHD$H$SATHd$HIM~ HHH{H1TH1|HtMt HHPpHd$A\[SATAUHAAD;cHT$(Ht$@j HHcH$HD$ @7$H f$HT$$B@f$fBDL$$H|$1趵HD$ H|$tH|$tH|$HD$HH$HtH$H$ HHcH$u'H|$tHt$ H|$HD$HP`H$Hte@HD$H$SATHd$HIM~ HHH{H1QH1lHtMt HHPpHd$A\[SATAUHAAD;cHT$(Ht$@ HHcH$HD$ 0Ҿ@w$H f$HT$$B@f$fBDL$$H|$1HD$ H|$tH|$tH|$HD$H5 H$HtH$H$HHcH$u'H|$tHt$ H|$HD$HP` \ H$HtHD$H$SATHd$HIM~ HHH{H1OH1謳HtMt HHPpHd$A\[SATAUHAAD;cHT$(Ht$@HHcH$HD$ 0Ҿ@$H f$HT$$B@f$fBDL$$H|$1HD$ H|$tH|$tH|$HD$HU H$HtH$H$H"HcH$u'H|$tHt$ H|$HD$HP`| H$Ht HD$H$SATHd$HIM~ HHH{H16LH1̰HtMt HHPpHd$A\[SATAUHAAD;cHT$(Ht$@ZHHcH$HD$ @0'$H f$HT$$B@f$fBDL$$H|$1覬HD$ H|$tH|$tH|$HD$HH$HtH$H$HHcH$u'H|$tHt$ H|$HD$HP` wH$HtU0HD$H$SATHd$HIM~ HHH{H1HH1\HtMt HHPpHd$A\[SATAUHAAD;cHT$(Ht$@H"HcH$HD$ 0Ҿ@0$H f$HT$$B@f$fBDL$$H|$1FHD$ H|$tH|$tH|$HD$HH$HtH$H$*HRHcH$u'H|$tHt$ H|$HD$HP`!H$HtHD$H$SATHd$HIM~ HHH{H1fEH1HtMt HHPpHd$A\[SATAUHAAD;cHT$(Ht$@HHcH$HD$ 0Ҿ@0$H f$HT$$B@f$fBDL$$H|$1&HD$ H|$tH|$tH|$HD$HeH$HtH$H$ H2HcH$u'H|$tHt$ H|$HD$HP`H$HtHD$H$SATHd$HIM~ HHH{H1FBH1ܦHtMt HHPpHd$A\[SATAUHAAD;cHT$(Ht$@:HbHcH$HD$ @0$H f$HT$$B@f$fBDL$$H|$1膣HD$ H|$tH|$tH|$HD$HH$HtH$H$jHHcH$u'H|$tHt$ H|$HD$HP`aWH$Ht5HD$H$SATHd$HIM~ HHH{H1?H1HH H%HH Hf9uH0HH0Hf9u0Hd$H<$H$Hd$Hd$H<$H$HD$Hd$SATHd$HHHIHI LH$Hd$A\[SATHd$HHHjIH_I!LtH$Hd$A\[SATHd$HHH*IHI1L4H$Hd$A\[SATAUHd$HIHD$hHD$`HHt$\HHcHT$XPAH|$`eHH|$hHt$hH|$`fH5mcH|$`uHu A$H5mcH|$`guHu A$H5mcH|$`DuHu A$H5mcH|$`!uHu A$H5mcH|$`tHu A$xH5mcH|$`tHu A$UH5mcH|$`tHu A$2H5mcH|$`tHu A$H5mcH|$`rtHu A$H5mcH|$`OtHu A$ H5mcH|$`,tHu A$ H5mcH|$` tHu A$ H5mcH|$`sHu A$ cH5mcH|$`sHu A$ CH5mcH|$`sHu A$#H5mcH|$`sHu A$E0H|$hucH|$`kcHD$XHtDHd$pA]A\[SATAUH$HIHD$hHT$Ht$ HHcHT$`BE0fA$fAD$fAD$fAD$HHtH@H ;#HHtH@H\CHHf$pH$pCHHf$pH$pH|$p{Ht$p1H|$hlHt$hLHCHHf$pH$pCHHf$pH$pH|$p Ht$p1H|$hlHt$hIT$HHtvCHHf$pH$pCHHf$pH$pH|$pHt$p1H|$hkHt$hIT$HtAE0HHtH@HzCHHf$pH$pCHHf$pH$pH|$p Ht$p1H|$hkHt$hLHHCHHf$pH$pCHHf$pH$pH|$pHt$p1H|$hjHt$hIT$HtsCHHf$pH$pCHHf$pH$pH|$p+Ht$p1H|$h:jHt$hIT$HhtA)E0$HHAńt$H&HI$QH|$h_HD$`HtDH$pA]A\[SATHd$H<$HIHD$pHT$Ht$ HHcHT$`u\H|$p3_HڹH5ticH|$p`H|$pHt$htfA$D$huA$ fA$fA$|H|$p^HD$`HtHd$xA\[SHd$HHHHYuH$H$Hd$[UHHd$H]HHuH$uDH]HE HMHi"HM1H=oHH5HHEH]H]Hd$H#0Hd$Hd$0Hd$Hd$H/Hd$Hd$H/Hd$Hd$/Hd$Hd$H=/HHHH#H HH@AHd$Hd$HH8H53H=.!Hd$UHHd$H]LeLmLuL}H}HuUHH HEH=DoHu1HuH=AouHuH= GomuLeLmMtI]H$LHLuLmMtTMeLLA$H)qHH}mHEH8u~H}nHHHlIHEHHtH[HH-HH9vAH]LeMtM,$LUHDLAj}tEHcuH}_lEH}mHLceIqLHH9vVLHkN|#HEHHtH[HcEH)qhHH-HH9v AH]LeMtM,$LxHDLAEHcEHc]HqHH-HH9v]HEHHtH@HcUH9.HEH0HtHvHkqH}-kHcuH}kH]LeLmLuL}H]UHH$PHPLXL`LhLpH}HuUHHEHUHuH%HcHx=HuH=8AoCu1HuH=>o-uHuH=CouVHuH=@ouLeLmMtI]HLILmLeMtI$HLIH]LeMtM,$L]HAI)qLLqLuLmMtxMeLLHA$LeLmMtJI]HLHLuLmMtMeLLA$H)q]HHuH}}~EHcuH}غhEH}7jHLceIqLHH9vLH3hN|#H]HtH[HcEH)qHH-HH9vfAH]LeMt/M,$LHDLAEHcEHc]Hq^HH-HH9v]HcUHEHtH@H9|+HuHtHvHkq H}غg}KD}H]HH})gIH]LeMtbM,$LHLDAH}(VHxHtGHPLXL`LhLpH]UHH$0H}HuHHDž0HDž8HDž@HDžHHUHuHHcHU:H`cHPuHH%HHHHm_HHHXHp`cH`uHHHHH@$_H@HhHG`cHpuHHHHH8^H8HxH`cHEuHHMHHH0^H0HEHPH}H^XH0TH8TH@THHSHEHtH]UHHd$H}uUMH eHEHH}MUu H]UHHd$H]H}uUMH(zHEHƋ}K?uD}uH]E=vjEC}uH]E=vIECE@t H}mH]H]UHHd$H]H}HuUMH(HEH-HuH}HHHEHHHEHPH):HHHEHHHEHPHHHHEHHHEHPHJ<HHHEHHHEHPHHHHEHHHEHPH+;HHtHEHHHEHPHQHHHEHHHEHPH|<HH%HEHHHEHPHHHHEHHHEH@H9HHHEHHHEH@HHHHEHHHEH@H<HHHEHHHEH@Hd#HHHEHHHEH@Ho@HH8HEHHHEH@H HHHEHHHEH@H=HHHEHHHEH@H HHHEHHHEH@H1>HHHEHHHEH@HwHHHEHHHEH@HB<HHNHEHHHEH@H+!HHHEHHHEH@Hf>HHEEH]LeH]UHHd$H]LeH}H _EHEH@HX@{ u*{ u{u{'u{!u{#u{%ufC(f%fufC"f%fufC$f%fufC&f%fuDc(AAAC"A C$A C&A AD=vlDe{tEЈEE<,t],, ,, *,,V,, ,+, ,HEHHHEHPHHHHEHHHEHPHp*HHaHEHHHEHPHHHHEHHHEHPH*HHHEHHHEHPHw HHHEHHHEHPH-HHHEHHHEHPH( HHHEHHHEHPH+HHtHEHHHEHPH HHHEHHHEHPHD-HH%HEHHHEHPHHHHEHHHEH@H*HHHEHHHEH@H; HHHEHHHEH@Hv-HHHEHHHEH@HHHHEHHHEH@H71HH8HEHHHEH@HHHHEHHHEH@Hx.HHHEHHHEH@HNHHHEHHHEH@H.HHHEHHHEH@H HHHEHHHEH@H -HHNHEHHHEH@HHHHEHHHEH@H./HHEEH]LeH]UHHd$H}؉uUHMHHHEȋUuH}H7[HEfxtt7HEH@H$HELHHEL@HMHEHx@HuHU$g'HEfHEf@HEf@HEf@H]UHHd$H}uUHMH0-HExit HE,HMЋUuH}ZHEHx@HMHuHUhH]UHHd$H}؉uUHMHHHEȋUuH}HZHEfxtt-fEf$HEHx@DMDEMHuHU.lH]UHHd$H}uUMH0>HExit+HMЋUuH} ZHEHx@MHuHUumH]UHHd$H]H}uUHMH8HEЋUuH}H3YHEHX@HEHLMHuHUDC"K!HEHEHHELHHuHUDC$K#HEHEHHELHHuHUDC&K%HEHEHHELHHuHUDC(K'HEH]H]UHHd$H]H}uUHMH8HEЋUuH}H#XHEHX@HEHLMHuHUDC"K!HEHEHHELHHuHUDC$K#HEHEHHELHHuHUDC&K%HEHEf@H]H]UHHd$H]H}uUHMH8HEЋUuH}HCWHEHX@HEHLMHuHUDC"K!HEHUHEffBHUHEffBHEf@H]H]UHHd$H]H}uUHMH8IHEЋUuH}HVHEHX@HEHLMHuHUDC"K!HEHEHHELHHuHUDC(K'HEHUHEffBHUHEffBH]H]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*jHIHH9v>HEIHHЋUHcHHE HHE HHEJHHEJHHEJHHEJHEJHHEJHH]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*iHIHH9v>HEIHHЋUHcHHE HHE HHEJHHEJHHEJHHEJHEJHHEJHH]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*hHIHH9v>HEIHHЋUHcHHE HHE HHEJHHEJHHEJHHEJHHEJHHEJH]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*gHIHH9v>HEIHHЋUHcHHE HHE HHEJHHEJHHEJHHEJHEJHHEJHH]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*fHIHH9v>HEIHHЋUHcHHE HHE HHEJHHEJHEJHHEJHHEJHHEJHH]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*eHIHH9v>HEIHHЋUHcHHE HHE HHEJHHEJHEJHHEJHHEJHHEJHH]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*dHIHH9v>HEIHHЋUHcHHE HHE HHEJHHEJHHEJHHEJHEJHHEJHH]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*cHIHH9v>HEIHHЋUHcHHE HHE HHEJHHEJHEJHHEJHHEJHHEJHH]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*bHIHH9v>HEIHHЋUHcHHE HHE HHEJHHEJHHEJHHEJHEJHHEJHH]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*aHIHH9v>HEIHHЋUHcHHE HHE HHEJHHEJHEJHHEJHHEJHHEJHH]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*`HIHH9v>HEIHHЋUHcHHE HHE HEJHHEJHHEJHHEJHHEJHHEJHH]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*_HIHH9v>HEIHHЋUHcHHE HHE HEJHHEJHHEJHHEJHHEJHHEJHH]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*^HIHH9v>HEIHHЋUHcHHEJHHEJHHMBAHEJHMBAHMBAHEf@H]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*]HIHH9v>HEIHHЋUHcHHEJHHEJHHMBAHEJHMBAHMBAHEf@H]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*\HIHH9v>HEIHHЋUHcHHEJHHEJHHMBAHEJHHMBAHMBHEf@H]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*[HIHH9v>HEIHHЋUHcHHEJHHEJHHMBAHEJHMBAHMBAHEf@H]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*ZHIHH9v>HEIHHЋUHcHHEJHHEJHMBAHEJHHMBAHMBAHEf@H]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*YHIHH9v>HEIHHЋUHcHHEJHHEJHMBAHEJHHMBAHMBAHEf@H]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*XHIHH9v>HEIHHЋUHcHHE HHE HHMBAHEJHHMBAHMBHEf@H]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*WHIHH9v>HEIHHЋUHcHHE HHE HHMBAHEJHMBAHMBAHEf@H]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*VHIHH9v>HEIHHЋUHcHHE HHE HHMBAHEJHHMBAHMBHEf@H]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*UHIHH9v>HEIHHЋUHcHHE HHE HHMBAHEJHMBAHMBAHEf@H]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*THIHH9v>HEIHHЋUHcHHE HHE HMBAHEJHHMBAHMBAHEf@H]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*SHIHH9v>HEIHHЋUHcHHE HHE HMBAHEJHHMBAHMBAHEf@H]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*RHIHH9v>HEIHHHcUHkq]HHE HHE HHMBAHEJHHMBAHMBHEf@H]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*QHIHH9v>HEIHHHcUHkq]HHE HHE HHMBAHEJHMBAHMBAHEf@H]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*PHIHH9v>HEIHHHcUHkq]HHE HHE HHMBAHEJHHMBAHMBHEf@H]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*OHIHH9v>HEIHHHcUHkq]HHE HHE HHMBAHEJHMBAHMBAHEf@H]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*NHIHH9v>HEIHHHcUHkq]HHE HHE HMBAHEJHHMBAHMBAHEf@H]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*MHIHH9v>HEIHHHcUHkq]HHE HHE HMBAHEJHHMBAHMBAHEf@H]LeLmH]UHHd$H}uUHMH }HEfHEf@HEf@HEf@H]UHHd$H]H}uUHMH8)HEЋUuH}H7HEHX@HEHDMHuHUDC"K!HEHEHDMHuHUDC$K#HEHEHDMHuHUDC&K%HEHEHDMHuHUDC(K'HEH]H]UHHd$H]H}uUHMH8)HEЋUuH}H6HEHX@HEHDMHuHUDC"K!HEHEHDMHuHUDC$K#HEHEHDMHuHUDC&K%HEH]H]UHHd$H]H}uUHMH8YHEЋUuH}H5HEHX@HEHDMHuHUDC"K!HEH]H]UHHd$H]H}uUHMH8٭HEЋUuH}H35HEHX@HEHDMHuHUDC"K!HEHEHDMHuHUDC(K'HEH]H]UHHd$H}uUHMH -H]UHHd$H]LeLmH}uUHMH8HELMeHcEHH9vHc]HI}HHIHH9v辪HEIHHЋUHcHŠEEBEBEBH]LeLmH]UHHd$H]LeLmH}uUHMH8!HELMeHcEHH9vHc]HI}GHIHH9vHEIHHЋUHcHŠEEBEBEBH]LeLmH]UHHd$H]LeLmH}uUHMH8QHELMeHcEHH9vJHc]HI} GHIHH9vHEIHHЋUHcHŠEEBEBEBH]LeLmH]UHHd$H]LeLmH}uUHMH8聪HELMeHcEHH9vzHc]HI}:FHIHH9vNHEIHHЋUHcHŠEEBEBEBH]LeLmH]UHHd$H]LeLmH}uUHMH8豩HELMeHcEHH9v誧Hc]HI}jEHIHH9v~HEIHHЋUHcHŠEEBEBEBH]LeLmH]UHHd$H]LeLmH}uUHMH8HELMeHcEHH9vڦHc]HI}DHIHH9v讦HEIHHЋUHcHŠEEBEBEBH]LeLmH]UHHd$H]LeLmH}uUHMH8HELMeHcEHH9v Hc]HI}CHIHH9vޥHEIHHЋUHcHŠEEBEBEBH]LeLmH]UHHd$H]LeLmH}uUHMH8AHELMeHcEHH9v:Hc]HI}BHIHH9vHEIHHЋUHcHŠEEBEBEBH]LeLmH]UHHd$H]LeLmH}uUHMH8qHELMeHcEHH9vjHc]HI}*BHIHH9v>HEIHHЋUHcHŠEEBEBEBH]LeLmH]UHHd$H]LeLmH}uUHMH8补HELMeHcEHH9v蚣Hc]HI}ZAHIHH9vnHEIHHЋUHcHŠEEBEBEBH]LeLmH]UHHd$H]LeLmH}uUHMH8ѤHELMeHcEHH9vʢHc]HI}@HIHH9v螢HEIHHЋUHcHŠEEBEBEBH]LeLmH]UHHd$H]LeLmH}uUHMH8HELMeHcEHH9vHc]HI}?HIHH9vΡHEIHHЋUHcHŠEEBEBEBH]LeLmH]UHHd$H]LeLmH}uUHMH81HELMeHcUHH9v*Hc]HI}>HIHH9vHEIHHЋUHcHŠEBEBEBH]LeLmH]UHHd$H]LeLmH}uUHMH8aHELMeHcUHH9vZHc]HI}>HIHH9v.HEIHHЋUHcHŠEBEBEBH]LeLmH]UHHd$H]LeLmH}uUHMH8葡HELMeHcUHH9v芟Hc]HI}J=HIHH9v^HEIHHЋUHcHŠEBEBEBH]LeLmH]UHHd$H]LeLmH}uUHMH8HELMeHcUHH9v躞Hc]HI}zHEIHHHcUHkq]HŠEEBEBH]LeLmH]UHHd$H]LeLmH}uUHMH8衘HELMeHcUHH9v蚖Hc]HI}Z4HIHH9vnHEIHHHcUHkq荖HŠEEBEBH]LeLmH]UHHd$H]LeLmH}uUHMH8їHELMeHcUHH9vʕHc]HI}3HIHH9v螕HEIHHHcUHkq轕HŠEEBEBH]LeLmH]UHHd$H]LeLmH}uUHMH8HELMeHcUHH9vHc]HI}2HIHH9vΔHEIHHHcUHkqHŠEEBEBH]LeLmH]UHHd$H]LeLmH}uUHMH81HELMeHcUHH9v*Hc]HI}1HIHH9vHEIHHHcUHkqHŠEEBEBH]LeLmH]UHHd$H]LeLmH}uUHMH8aHELMeHcUHH9vZHc]HI}1HIHH9v.HEIHHHcUHkqMHŠEEBEBH]LeLmH]UHHd$H}uUH 衔EuH}!H(EEH]UHHd$H}uUMH NE)HUuH} H]UHHd$H}@uHEH}@!H]UHHd$H}uUHMH 轓HEHHMUuHEH]UHHd$H}uUH qHEHHMUuHEHEH]UHHd$H]LeLmLuL}H}uUMHP HEHx0t`HEfxttRHEHx0u}>HED}DuLmH]Ht轐L#LbPLDDHMA$H]LeLmLuL}H]UHHd$H}uUMH ^EUuH}HUHEu }u ƂƂH]UHHd$H]LeLmLuL}H}uUHHݑHEHx0t EHEfxttvD}DuH]LeMt藏M,$L;OHDDAHHELp0HELh0Mt\MeLOLHA$EEEH]LeLmLuL}H]UHHd$H}uUH HEUuH}H苽EH]UHHd$H}H跐HEuHEHHHEHǀHEHǀHEHu'H5~HEHJHEHʣHEHǀHEu)HEHuHEHH%HEHǀHEHǀHEHu'H5F~HEH讂HEH.HEHǀHEƀHEu)HEHuHEHH~HEHǀHEHǀHEƀH]UHHd$H]LeLmLuL}H}H@HEHEƀ}HEƀH]LeMt襌M,$LILHA0H HH5~H葀HEHHUBXHEHEDx\HEDh`HEHHLeAD$8=vGEd$8LuAF<=v.AvHHcHULeH]HtepL+L 0LA0HEHuHx@HHHEUH]C=v:pD{H]C=v#pDsLmH]HtoL#L/LDDA$(HEƀH (HH56~HcHEHHEHHEHEDxHEDhHEX LeAD$8=voEd$8LuAF<=vfoAvk},EEEHEHHcUM܉ ;]~HEHcX8Hq3kHH-HH9vjHEȋEȃ}E@E؃EHEHcXHUHR؉B@HEH@؃x@HuH}HUHR؉BDH]UHHd$H]LeLmLuH}HuUH@ F;fDHEHcHqfDHH-HH9v DHELeMl$H]HcHH9vCHcHI|$_ADH(<uELeMl$H]HcHH9vCHcHI|$ADH(<uLceMk qCLmMuH]HcHH9v.CHcHI}译A\LqOCH0qDCHH-HH9vB]HEHcHqCHH-HH9vBHELeMl$H]HcHH9vBHcHI|$ ADH'<}uHEH5cbH}REH]LeLmLuH]UHHd$H]LeLmLuL}H}HuUHHCLeMl$H]HcSHH9vAHc[HI|$:AD< , t,t,|, HEHcXHqAHH-HH9vPAHEXHEHcXHqvAHH-HH9vAHEXHEHU@;B~LeMl$H]HcSHH9v@Hc[HI|$WAD t ttLeM|$HEHcXHq@HHH9v}@HI|$LeMl$LuIcVHH9vK@McvLI|$ʎADC:D5u7HEHcXHqY@HH-HH9v?HEXHUHE@ԉB{HEHU@;B|LmMeHEHcXHq?HHH9v?HI}A|*tUHEHcXHq?HH-HH9vR?HEXfDLeMl$H]HcCHH9v?Hc[HI|$蚍A|*tLmMeHEHcXHq"?HHH9v>HI}OA|/t9HEHcXHq>HH-HH9v>HEXMHEHcXHq>HH-HH9vL>HEXHEHU@;BHEPH5_bH}&HEHcXHq>>HH-HH9v=HEXHUHE@ԉLeMl$H]HcCHH9v=Hc[HI|$"A|"tLeMl$HEHcXHq=HHH9vR=HI|$ՋA|\uNHUHE@ԉBHEHcXHqZ=HH-HH9vHEH@HHHEH@HcP HEHc@H)q HHEH@H]UHHd$H]H}uH(P HH=,HjHEHUEBHEHUHPHEHc@ Hc]H)qj HH-HH9v ]HEH@HcUHMH H]H]UHHd$H]H}uUH0 HEHEHc@ Hc]H)qHH-HH9v]܃}|HE@$;E~O}tuH}HEHc@ Hc]H)qzHH-HH9v]HEHPHcEHHEH}t(}u uH}YHEHPHcEHHEHEH]H]UHHd$H]H}uH@ HEHxtEEEtHEHc@ Hc]H)qHH-HH9vN]}}HE@$;E%HE@ EHE@$EЋE;EKHcUHcEH)q@Hc]Hq2HH-HH9v]ЋEEkHc]HcEH)qHH-HH9v]E;E}/Hc]HqHH-HH9v_]EDE؃EHcEغ;U}HcEغU}}Hc]Hkq>HH-HH9v]HcEHH9vHcuH}HcuH}׫HEHxuoHEHcX$HkqHH-HH9vj]HMHEHc@ HcUH)qH4HEHxHcUXHEHxHEHUHPHUEԉB HEUЉP$H]H]UHHd$H]H}H HEHEHxtHEH@HcP HEHcXH)qHqHH-HH9v]hfDHEH@HPHcEH<uHEH@HPHcEHHE7Hc]HqvHH-HH9v]}}HEH]H]UHHd$H]H}H HEHEHxtHEH@HcP HEHcXH)qHqHH-HH9v]hfDHEH@HPHcEH<uHEH@HPHcEHHEAHc]HqvHH-HH9v]HEH@@$;EHEH]H]UHHd$H}HHEHHEH}u9HEHE&fH}HEH}uHEH@HEH}uHEH]UHHd$H}H7HEHKHEH}tHEH@HE H}HEHEH]UHHd$H]H}H HEHEx$trE[HEHPHcEH<uHEHPHcEHHE=Hc]HqHH-HH9vy]HE@$;EHEH]H]UHHd$H]H}H HEHEx$tHEHcX$HqGHH-HH9v]_DHEH@HcUH<uHEHPHcEHHE7Hc]HqHH-HH9v]}}HEH]H]UHHd$H}H7HEHEDHEHEH}HEH}uHEH]UHHd$H}HHEHxt HEHEHxHEHEH]UHHd$H}HHEHxt HEHEHxCHEHEH]UHHd$H]H}H CHEHxuHEx$~H5SbHHEHcX$HqeHH-HH9v}EEEHEH@HcUHHEH}u\HEHcP HcEHqHUHcRH9uH5^SbHfHEH@H;EuH5gSbHGH};]~tHEx$uH5_SbHH]H]UHHd$H}HuHHEH'ZH]UHHd$H]H}HuUH0HEH@HEEPHEHcU܋4H}HEHc]HqHH-HH9vz]H}u E;E|HEH]H]UHHd$H}HuUH(EHuH}HEH}uHEH@(HEHEHEH]UHHd$H]H}HuUHMH8HEHxtHH=E HUHBHEH@HEHc]HqHH-HH9vh}3EfEԃEHUHcEԋ4H}زYHE;]~HUHEHB(HEH]H]UHHd$H}HuHH}t%HEH@H;Et HEH@H}3H]UHHd$H}HwHEHpH}vH]UHH$HLL H}HuH(H}t)LmLeMt LH谺LShHEH}tHUHu6H^HcHUu3HEHEH}uH}uH}HEHHEHpHpH0HHcH(u%H}uHuH}HEHP`KH(HtpHEHLL H]UHHd$H]LeLmH}HuH(H})LeLmMtI]HNLH}H}H̳H}uH}uH}HEHPpH]LeLmH]UHHd$H}H'HEHxu HEHxH]UHHd$H]LeLmLuL}H}HuHPL}LuLeMtI$ILSLLAfBMHUH9E}u`}uXEELeLmMtWI]HLU؁HqHqHEHEH]LeLmLuL}H]UHHd$H]LeLmLuH}H(HEH%HEHu?HELHEL`HELhMtI]H(LLH]LeLmLuH]UHHd$H}H7H]UHHd$H}HuHHEpLH}"H]UHHd$H}HuHUH HEHHEH0HPH}u EE@EH]UHHd$H}HwEEH]UHHd$H}HGEEH]UHHd$H]H}HHEHHExTrHHEPTHE@LHsBHHs4HHHH=vHEXHOHEPTHE@LHsHHsHHHH=vHEXHHEHcXHHqHHH9vZHHEH H]H]UHHd$H}HHEH HEHǀH]UHHd$H}HHEEEH]UHHd$H]LeLmLuL}H}uH8pHExXt+HE@T<r,t,t HW HmNHEHIHEDpHHEHXHEL`MtM,$L諳HDLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HHHEH@HHEuHEH@LxLuHEH@L`Mt[M,$LLLAEE}wEEuH}UkEEE,v,t ;HJHbHH=/HH5H-HEH@LxEAHEHHEH@L`MtM,$L:HDLAfEf%f=tKHEH@LpIHEH@L`Mt9M,$LݱLLAEHEH]LeLmLuL}H]UHH$ H(L0L8L@LHH}HHEH@HHEEfHEH@LxLuHEH@L`MtcM,$LLLAEE}w}u|]E É=v.]HEЊfEf%HH HH=vHEЈHE]Hq%HH=v]EE]HqHH?HHHH=v]uH}U躖fEf%f=EEHEЀ}uHmoEEE,v,t ;\RHsEbHH==XHH5HV!]HqBHH?HHHH=v]}uHEH@LxEAHPHEH@L`MtM,$L)HDLAHPHEfDHEЊHE É=vRHEЈHE]HqxHH=v(]}tEPHE=vHEЈHE]Hq%HH=v]}tOtHEH@LxEAHEHHEH@L`MtpM,$LHDLAfEf%f=EEHEЀ}uHmfEf%f=tMHEH@LxAHHEH@L`MtM,$L萭HDLA;H(L0L8L@LHH]UHHd$H]H}uH(HE@`]!HEPpH H)qHURtH)q=vNf]fEfEf]HE@t=vf]fUfEf fEf}tHE@d]!HEPqH H)qHURuH)q=vf]fEfE]HE@u=v|f]fUfEf fEf}tHE@h]!HEPrH H)qzHURvH)qh=v f]fEfE]HE@v=vf]fUfEf fEf}tHExwt fEHE@l]!HEPsH H)qHURwH)q=vVf]fEfEf]HE@w=v$f]fUfEf fEf}tHEH]H]UHHd$H}fu@uHEEEEEEEEEEEEfEHEH]UHHd$H}uHTEEEEEEEEEEEEHExwtfE EEEEHEH]UHHd$H}fuH E%EEEEEUE ЉEEEUE ЉEEEUE fEE%EEEEEUE ЉEEEUE ЉEEEUE fEE %EEEEEUE ЉEEEUE ЉEEEUE fEfEHEH]UHHd$H}@uHHUEH]UHHd$H]LeLmLuH}uH@tHEx8tHE@T<,t,,HEH@ HcX*HEH@ HcXLLAHEHHwHEHPsHEplHSHExT t,HE@lHEHHwHEHPsHEplHhHE@lHE@sHE@wHExXt:}lrHELx`HELp HEL`MtM,$LlLLAHEHUH`Bd HU BhHU#BluHE@lHE@sHE@wHEHHtHEHPpHEp`HHEHHuHEHPqHEpdHpHEHHvHEHPrHEphHQEHEqcIHELpHEL`MtM,$L胋LLA]EHEqIHELpHEL`MtM,$L4LLA} @HEHExwu HEHx 茹HXL`LhLpLxH]UHHd$H]LeLmLuL}H}@uH`HEH HHEH@HxxHMHajHEH@fx\t}uEEHEH@xTwHEH@P\EHsHHHH9vqIHEH@LpAHEH@HXHt$L#LɉDLLA$HEH@@TUHEH@P\HcEH9~E܉EHEH@@\EHcEHEH5 HEH@HxxHMH,iHEH@X\HqHH-HH9vxHEȋEȃ}EfDEEHEH@LxEALuHEH@HXHtL#L襈LDLA$EHEHxu`HHEL`Ml$xHcEHH9vLcuLI|$xfK\E;E~MHEH@X\LcuIqLHHH9vlA9}`]EE䐋EEHELhI]xHcUHH9v+LceLI}xeHʈHJD;u~H]LeLmLuL}H]UHHd$H]H}uHUHMH(HEEu;EEHEHsHH=vxHEHE8 sHEEtPEEHEHsxHH=v(HEHEHEHsJH sH]H]UHHd$H}H HEH@@T<,t,t7,t3,tH,tb,pHEH@@XttEHEH@@XrEHEH@@XttEHEH@@XrEiHEH@@XttENHEH@@TEHEHMIHLbHH=aHH5HEH]UHHd$H}HuHUH HEHHEH0HPH}蔉u EE@EH]UHH$HLLLL H}HH]CP=v D{PH]CL=vDsLHELh HEHX HtHILVLDDA$(HExPt HExLtH}:HUHu踒HpHcHUHE耸tHEXPHq{HHH9v$]E=vDuLmH]HtL#LLDA$H9HEx^u3DuLmH]HtL#L:LDA$dHEDpPIqEI)qLHH9vcLmH]Ht/L#LԂLDA$HxHbH$HEHHD$HEH@ HcX8Hq=E=vHcEH)q HH-HH9vHEH@ Lc`mLL8H}tH]LeLmLuH]UHHd$H}HGHEYEEH]UHHd$H}HHEHfHUHEx9XH]UHHd$H}HuHUHϮHEƀXHUHuH}c~H]UHHd$H}HuHUH HEHHEH0HPH}pu EE@EH]UHHd$H}@uH#HUEYH]UHHd$H}HEEH]UHHd$H}HǭEEH]UHHd$H}H藭H]UHHd$H}HuHsHUHExgB,HEHUz@@-HEHUzL@+HUHExawHExcwHExewB*B*H]UHHd$H}HuHUH ߬HEHHEH0HPH}nu EE@EH]UHHd$H}H臬EEH]UHHd$H}HWEEH]UHHd$H]LeLmLuH}HuHHEH}HHExxtgHEHp H=(Ɉ\tHHErEHEfE}u=H]Cp=v豩[pLeAD$x=v虩At$xH} ";H]Cp=vt[pLeAD$x=v\At$xH}|}uEHEtHHEt4}uH]=vEE}uuHEHEHsHH=v諨]H]=v葨EH]=vqE@H]=vOEH]=v/E@HEHEHsAHUHs,HEHsHH=vǧ]} w]HkqHH=v蚧]E]HkqħHH=vt]E]Hkq螧HH=vN]E]HkqxHH=v(]]HkqVHH=v]]Hkq4HH=v]HELp H]HEL` Mt衦M,$LEfHLA8H]LeLmLuH]UHHd$H}HWHE@xEEH]UHHd$H}HuHUHHEHuH}H H]UHHd$H}HuHUH ߧHEHHEH0HPH}iu EE@EH]UHHd$H}@uH胧HUEBxH]UHHd$H}HWEEH]UHHd$H}H'EEH]UHHd$H}HH]UHHd$H}HuHӦHEHaH5aHi-H]UHHd$H}HuHUH茦HEHUHurHPHcHUHuH} HuH}Ha -H}uHUH}<HuH}Ha,H}uHUH}HuH}Ha,H}uHUH}HuH}Ha},H}uHUH}1HuH}uH}gHEHtvH]UHHd$H}HuHUH ?HEHHEH0HPH}Tgu EE@EH]UHHd$H}HEEH]UHHd$H}H跤EEH]UHHd$H}HuH胤EEH]UHH$HLLL L(H}HuHUH&HEHp H=_UHUHB@L}LuLeMtI$ILaLLAEE}LEH}U<HUBXHE@XHk HuHxH HF\D FdHE@X rEH}mu}uZHExdt0H]Cd=v]SdHEp`HEx\HM肐HEp`HEx\HM d.H]Cd=vSdHEp`HEx\HM4} tEHELp@LeHELh@Mt訠I]HL`LL8HEH@@H}Hp@HHHEHdHEP`HEp\DEH}Hc]Hq袠HH-HH9vEHEXTH]HcCTHH9v"HcsTHEHxHHxH89nHaLHcH0HEH@HIHEDpTH]LeMt蘟M,$L<_HDLAHE@Xrr H}p F}u H}} 3HE@Xtt rr H}c H}pHEHxH足HEH@HH0Ht rHLLL L(H]UHHd$H}HuHUH 蟠HEHHEH0HPH}bu EE@EH]UHHd$H}HGEEH]UHHd$H}HEEH]UHHd$H}HHE@0EEH]UHHd$H}@uH賟HUEB0H]UHHd$H]LeLmLuL}H}؉uUMDEHPfHEHxHu HEHxHHEHx8V}t6E|.tt"NHUHB8H} HUHB8Hc]HcEHqNHcEHq?HHH-HH9vޜHE؉XPHELx Du]HEL` Mt蔜I$IL5\DLA(H]LeLmLuL}H]UHHd$H]LeLmH}H8+HE@dGtS4HEH@HHEEHEHcX`HqEHH-HH9v}EEEHELc`\IqLH-HH9v藛A}EDEEHEUс%HHHILH-HH9v1DHEHx8HHHEHx@Uu)}t EHEED;e~i;]~HEH@HHEHEHcX`HqHH-HH9v螚}EDEEHELc`\Iq謚LH-HH9vOA}GEEEHE0HEHx8GHHEHx@Uu(HED;e~;]~nH]LeLmH]UHHd$H]LeLmLuL}H}Hh蓛H]HcSPHH9v藙Hc{P~HEHEHEHExX tHEH@HH@HE HEH@HHEHEHcX`HEHc@\Hq}HH-HH9v ]EEEHEHEEHH)q3Hkq(HH=vؘ]HEEHEE%tSuԃ}DEfE؃EHEEHE HEHEHE;u~Hc]H~q葘HH-HH9v4]HEEUHEMԃ}0EE؃EHEE HUHE;M~HEHUH)HH?HHHHcUH9}sHEHEHEHcX`HqȗHH-HH9vkAA}%EfDEԃEHEHcX\HqtHH-HH9vAA}EfE؃EHEHE É=v֖HED`AHE@A D=v謖EHE@AAHE@A D=vfDDylHHEHx@Uԋu$HED;u~CD;}~H}迪H]LeLmLuL}H]UHHd$H}HחH]UHHd$H]LeLmH}H8諗HE@dtpEHEH@HHEHEHcX`HqŕHH-HH9vh}EEEHELc`\IqtLH-HH9vA}EDEEjHHEHx@UuM#HEUс%HHHHHEHx@Uu}t EHE$DmIq諔LH=v[DmD;e~L;]~HEH@HHEHEHcX`Hq^HH-HH9v}EEEHELc`\IqLH-HH9v跓A}xEDEEHED(AHEA D=vrfDɺgiHHEHx@Uu!HED;e~;]~:H]LeLmH]UHHd$H]LeLmLuL}H}HHÔHH=Ѓ;HEEEDEEE@EEE@EEEv肒EHLjD$BEvdEHLjBEvGUHLjeIEAH]LeMt M,$LNHDLA]HsUHH=v]}s/dIEAH]LeMt襎I$ILFNHDLAHEH]LeLmLuL}H]UHH$HLL H}HuH(H}t)LmLeMt LHMLShHEH}tHUHu6\H^:HcHUqHEH}H1HEH@HHEH@8HE@PHE@XHEH}uH}uH}HEH^HEHpHpH0[H9HcH(u%H}uHuH}HEHP`~^ `t^H(HtSa.aHEHLL H]UHHd$H]LeLmH}HuH(wH})LeLmMtZI]HKLHEHx8FHEHxH۠H}HkFH}uH}uH}HEHPpH]LeLmH]UHHd$HˍEEEUE r ttHpUE0 rHpUE0 rr rHq}sH]HXQHX'RHXGRHXwVHXQH4H鄴H餴HԕHġHx闓HxHxHx'HxH`H`H`4H`H`HH4HTH$HHHH4HHHPHP7HPWHP'HPHh7HhHhHhHhUHH蠊H]UHHd$H}yHoH8tH}Ho H}1H]Hd$ f $ fL$ fL$%)fT$D$ fT$H$Hd$Hd$f<$@|$D$fD$D$fD$ $fD$ fD$HD$Hd$H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0tUH3HcHT$pu@HD$H|$1*HD$H|$tH<$tH|$HD$HKXHD$pHtpHT$xH$TH"3HcH$u&H<$tHt$H|$HD$HP`W}YWH$HtZZHD$H$SATHd$HIM~ HHH)H1O@HtMt HHPpHd$A\[SHHtHvHǃHtHUHǃ[@0@HAIHt@@|@SATHd$Au0; AHHHtE)A)DHd$A\[Hd$苗!Ћ!ʋ!΀}LIADADL$ LDD$ }HHAЉADD$ HT$ }HH؉T$H@t$|$D$  rH$Hd$SATAUAVAWHd$IAAHH$HT$Ht$ JRHr0HcHT$`IGXxuFfxu>ALJ|AƇALJAƇALJAƇIGXx@t tIHߺHIHߺHIHߺHALAALAAL}AEIcHI襖IcHD$hH5ˈHL$hH4"Ax~AWxH4$HHDH4$HHH<$ AE|`AAH$IcŋA@AI|$0D/HHKhIc։HShIcDE9H]LeLmLuL}H]SHd$HCPHD$H5H{hHL$D$D$D$$HCh$D$$HCh$PD$$HSh$BHd$[Hd$HcfD$D$T$D$%L$f f %Hd$Hd$HfD$D$T$D$%L$f f %Hd$SATAUAVAWHIA7ADHHmAHcCDADA%A_A^A]A\[SATAUAVAWHIAE0A6fDA6DHtIźAAAACAD$Ht$H|$HD$HD)D$Ht$H|$HD$HD)IcI4H|$HL$HD$HHHD$Ht$H|$HD$HDHD$yHcHcD$HHH9~L: u D$HD$D$Ht$H|$HD$HHcD$I4H|$HD$HHD$D$9AE9rD$Ht$H\$HߺHD$uD$Ht$HߺHHd$0A_A^A]A\[H$8H|$ H4$T$L$LD$D$XHcD$HH|$P tHT$`Ht$xg.H HcH$ HcD$HHH?HHHHHD$0D$(FHt$PHcD$(HHH $Ht$PHcD$(HHH $ff%DD$(D$(;D$0|D$(fDD$4D$8D$HH$HHHH$HƀyuH$HƀH$Hƀyu/H$HHHHH$HƀH$HHHHH$Hƀ\yu,H$HHHHH$Hƀ*H$HHHHH$HƀA<,t,tS,,H$HƀH$HƀH$HHH5kHH$HƀH$HƀH$HHH5MHhH$HƀH$HƀH$HHH52H-H$HƀH$HƀH$HǀHd$UHHd$H]H0tt=tYtAtF[HqaH=HH5H7HH)H.ƃ9HHH H]H]UHH$pHpHHDžxHEHUHuHHcHU$AH}lHÊaHEH$A1ɺHxzxHxHEHaHEHu1ɺH}pHUH=HH5HHxhlH}_lHEHtHpH]H$(H|$H4$HT$HD$H0H|$P0HD$H(H=Sm(HT$HB@HT$Ht$0KHsHcHT$pHD$ƀ9"DH|$H|$HD$HHD$9tHD$Hx@1HD$H@@HHD$HP@0ɾH= HT$HBHHT$xH$HHcH$uH|$HD$HHD$HxHH$Ht xHD$Hx@jH|$耼u HD$HtHD$HHD$pHtH$SATHd$H$D$HHIHt$HߺH@‰TH5:|Hߺ HHcIT$H9Ht$HߺHumHߺHHcIT$H9uJHt$HߺHu/|$^fD$|$OfD$D$$D$D$H$Hd$A\[SATHd$HHAHHHǺHHcH‰@4Hޘ@:4 ub|H[H(Hs0&H0;{C;v {v{ u{ uC sAE0DHd$A\[Hd$HHH zHaH5aHHd$H$(H|$H4$HuHD$HT$HRhHD$H|$@HT$Ht$0dHHcHT$pHD$H|$1HD$@0HD$H@@HD$@-HD$@+HD$@)HD$@*HD$@,HD$ǀHD$H|$tH<$tH|$HD$HHD$pHtpHT$xH$HHcH$u&H<$tHt$H|$HD$HP`H$Ht]8HD$H$SATHd$HIM~ HHt HHC08v Hx*=H1HtMt HHPpHd$A\[UHH$pHpLxLmLuHHEHUHuqHHcHULk0A}EA1ɺIu H}sqH}uFA}tAEHE3HaH=HH5HAE EHX8Iu hADAUIuUAH+8D1AAELsHuLIIuAULIIuLIH}dHEHtHpLxLmLuH]SHHX0s;3v;v H{S;sH{:C[HH0p!HmP SATH$H$HX0$C CfC{s[ACHHH|$Ld$HAH$gH$LuH$A\[H!0G.9v0HW.!H)֊1%H!0G.9v0HW.!H)֊1%SHd$H|$$@t@t@t@t#@t'-D$&HHxHH4:\$sT$)T$)ӈ%Hd$ [SATHd$H<$H0H$HxH$0H$Hx AH$0H$HxA)HcH)HHHIHcAH)HHHIHcH)HHHIf9rf9r H$Zf9r H$BH$D`Hd$A\[SHd$H<$H0H$HxfH$0H$Hx-f%%H$BHd$[Hd$H<$H0H$HxH$BHd$Hd$H<$H0H$HxH$BHd$UHHd$H]LeH}HuHEH@ x<HUHEH@ x8HUBHEx,t HH1HEx+ HEtHEHLeHEHx FA$HEtJH=HUHHEHp HEHHEHHHUHB H@0HHEH=~*H~aH=׎BHH5H@HE@ HE@(HE@HE@.XuHE@ HE@(HEx-uHE@ HUB HEx*t HE@HE@H3HE@ HE@ HE@ H]LeH]Hd$H<$HG@ t,ts,,mH$H@x*t(H$H@H6HPXH@`H$H@@.7H$H@HHPXH@`H$H@@.H$H@x*t(H$HPHHBXHR`H$H@@.H$H@H0HPXH@`H$H@@.H$H@x*t(H$H@HHPXH@`H$H@@.{H$HPHrHBXHR`H$H@@.VH$H@x*t%H$H@HHPXH@`H$H@@.#H$H@HHPXH@`H$H@@.Hd$Hd$H<$HG@pH$H@x*t fD$fD$D$ D$H$H@Hx t HH@|$ t(|$tH$HRzpt Hd$SATAUAVHd$H<$HH@Lh AEAfAH@fDH@v)AtxH}[CH08H`H1H`HPeM01HPaHP1H5daH}DHuHH H8HfH@fA~AtxHPBH08H`H?1H`H}L01H}@aHU1H5;daHPCHPHHdH8HfH@fH8HfPH@fH8HfBH@fAH8tHHH5daHHH8HHHcfQH@fQAtxHPtAH08H`H1H`H}K01H}`HU1H5caHPBHPHH(H@x0vyH@p0H H(HH7H8HHcHkH H9sH(1HHH5LcaMHHH5dca5AtxHPX@H08H`H1H`H}eJ01H}^HU1H5+caHPAHPHH HHH5NcaAtxHP?H08H`HQ1H`H}I01H}R^HU1H5caHP AHPHHvH8HfH@fH8Hf@H@fH8Hf@H@fH8HfPH@fHP>HbaHHH@HPHS1HPHXH01HXN]HXHPHa^aHXHH1ɺHPxBHPHHUHP$>HX>H` >H}>HEHt%HLLLLH]SATH$HHIHD$`HHt$H)HcHT$XHA$HT$hH1Ht$hH|$`G01H|$`\HT$`HH5]aaI|$tIT$HH5yaaćI|$@tIT$@HH5aa訇I|$PtIT$PHH5aa茇I|$HtIT$HHH5aapI|$`tIT$`HH5aaTI|$htIT$hHH5aa8I$tI$HH5aaI$tI$HH5aaI$tI$HH5aa҆A$r ADŽ$A$HT$hH1Ht$hH|$`F01H|$`ZHT$`HH5aaeA$tQA$HT$hH,1Ht$hH|$`E01H|$`-ZHT$`HH5~aa A$u A$t&I$H|$`HT$`HH5raaͅA$u A$t&I$H|$`ՀHT$`HH5^aa葅A$HT$hHHc1Ht$hH|$`D01H|$``YHT$`HH51aa1HD$pHt_H$A_A^A]A\[SHC4HshHHChHHC`HS4H@0[SATAUAVAWHd$IEu4E1gA_|!AADLD;ptdD9L.D9u$H=RHH$I}pH4$w'DLJH$H$DLAAEwHd$A_A^A]A\[S1HGpHtxtHp1$HH[SATAUAVAWHd$H$HD$IiAE|<LIAD$xAT$pHIL9l$ Ll$L$$A9H$Hd$A_A^A]A\[HGp@SATAUAVAWH$I@IH$HD$pHD$hHT$Ht$ hH萝HcHT$`E0HH5Wa>/HVAHI|$hID$hHH<$H5Wa>HuE01H<$H5Waq>HuALH5WaEt$XL# fAfA*touyH|$h9.AHT$xHHc<1Ht$xH|$pK801H|$pLHT$p1H5_WaH|$h/Ht$hLLAAeH|$p-H|$h-H-HD$`HtDH$A_A^A]A\[SATAUAVAWHd$HAI1DH\EgILfAf$I~hIFhHHAA|9E1ALHLH I~hHIFhHE9Av\Au#AtAAALJAu:At0AAALJAu AGpALvAG Hd$A_A^A]A\[H$H|$H4$HT$HDŽ$HDŽ$HDŽ$HDŽ$HT$@Ht$XfH莚HcH$H|$fD$$H$ff;D$$EHD$@0,H$+H]UaH$H$8H$HHc1H$H$501H$ JH$H$H3UaH$|$$H$HHc1H$H$#501H$IH$H$H$1ɺH$.H$H|$f|$$0u H$u*H>TaH$H$8H$HHcc1H$H$l401H$HH$H$HTaH$|$$H$HHc1H$H$401H$HH$H$H$1ɺH$-H$H|$H$fD$$fH$ff=Rf-5f-nf-Sf-`f-mf-Wf-f-8f-f- f--f-f-f-Af-gf-f-f- f- f-~ f-f-f- f- f- f-r f-f-zf-pf-ff- f-q f- f-f- @f-cf-f-Wf-bf-f-f-f- *f- f-f-f-f-f-f-f-f-f-f- vf-lf-f-XH|$D$(HT$D$(BvHT$D$(BuHT$D$(BtH|$D$(HD$@vHD$@uHD$@tD$(r6t t!HD$@vHD$@uH$a&|$(H$H1H$H$m001H$DH$1H5;PaH$'H$H|$ !H|$HT$Bx H|$HT$BpHAHT$BHD$pHL$8HT$0H|$H$H$H HcH$uoD$8H$H5IHD$Hx H$ކD$8|6D$<D$<HT$Hz L$aH|$hHt$hLyLaÉHL1? v=LB$L%L!HI|$hڃID$hHpI}t+L~!HIUHtHRI|$hID$hHIEHtH@H}+IEHtH@H)I|$hHID$hH(H|$p~H|$htHD$`Ht蕣H$A]A\[Hd$Hh袠%Hd$SHH{h裠{Xtf f%[SHH{h胠{Xt. ʉ ʉ ʉ[SATAUAVAWH$H$pAIHMMHD$hHD$`HHt$ĝH{HcHT$XIIfAEDH$pH$pH$pfAEH$pxfAEf=f-tHf-tLf-tPf-tWf-t_f-|f-v f-t.f-t5f-t=f-tEf-tMVIIHIHIHIHI|HIqH|$` A}HT$pHHc 1Ht$pH|$h/01H|$h*HT$h1H5;aH|$`i Ht$`H$pI>vH$pH$pI6LAI7H$pHxhH$pHHhHH|$hT H|$`J HD$XHtkH$A_A^A]A\[H$hH|$4$HT$HL$HD$HHD$HD$ HT$8Ht$PBHjyHcH$tHL$LL$(LD$ HT$04$H|$HD$8tf|$0HD$0HH|$fHD$D$4@D$4HT$ L$4fJHL$yXtfс fʁHL$H t$4;D$4wf|$0HD$HT$ HHD$ HD$xXHD$D$4D$4HT$HL$4HL$yXt.сց ց  HL$H t$4;D$4wH|$H58acޜH|$ t H|$ H$HtHtDHDŽ$H$H$H|$4$HT$HL$HDŽ$HDŽ$HT$8Ht$PHBwHcH$HD$HHD$HD$ H$H$ŘHvHcH$UHL$LL$(LD$ HT$04$H|$yHD$8Uf|$0HT$HD$ HHD$ HD$xXHD$D$4D$4HT$H T$4HQf HT$zXtfʁ fHT$H2T$4f V;D$4wH$^|$0H$HHc]1H$H$f01H$%H$1H56aH$H$H|$耚H|$ t H|$ H$HtHtHDŽ$CH$H$H$Ht觛H$SHWHH [SATAUH$H|$ Ht$HD$8HD$@HDŽ$8HDŽ$0HDŽ$(HDŽ$HDŽ$H$H$1HYtHcH$X}HD$xxnxpdHD$uH|$ H5@5a苺HD$xuH|$ H5d5aoHD$vnDŽ$HD$uH|$ H5\5a7HD$uH|$ H5m5aHD${H|$ H5z5ahDŽ$HD$uH|$ H5~5aɹHD$uH|$ H55a誹HD$uH|$ H55a苹HD$vH|$ H55alHD$`HD$hHD$pHD$0H$`H$x~HrHcH$c$HD$PxH H1H$HD$PpH H1H$$$‰D$xHD$H$HT$`H|$ J$;D$xsH|$ H54alHD$H$HT$hH|$ $;D$xH|$ H54a(HT$BpHHHHD$xHD$H$HT$`H|$ $;D$xsH|$ H54aķHD$H$HT$hH|$ b$;D$xsH|$ H54a脷HD$PHD$HD$HHD$H$H$LL$0LD$(HL$\HT$XHt$H|$ AT$HT$LHt$H|$ HD$ HHD$HH$H HT$H$H|$ HD$vv-THD$PpHD$pxH$H$H()HD$PxHD$ppH$H$H(D$xgXD$|D$|HT$`D$|$HD$hT$|H$Hy H$H|$pA$H|$ HD$ Hxh$Ht$pHD$ H@hH$u2$HL$HHHHH$-$HL$QxHHHHH$HD$@4t6tM-t-t?aH$Ht$pH|$ 0H$Ht$pH|$ dH$H$Ht$pH|$ H$HG2aH$HD$p4H$KH$H$H:2aH$H$1ɺH$H$H|$ lH$ $D$|1$HD$Љ$D$|1$HT$‰$HD$@x$H)HT$H9HNЉ$HD$@p$H)HT$H9HNЉ$$$ƒ$$HH$H9$H$IH*1aH$H$H$(H91H$(H$B01H$H$H$H1aH$$H$(Hb1H$(H$(01H$(ZH$(H$H0aH$$H$(H1H$(H$0t01H$0H$0H$H0aH$H$H$(H1H$(H$8 01H$8H$8H$ H$1ɺH$H$H|$ 蝱H$H;$HD$$ƒ$vDŽ$HD$D$|‰$HD$@x$HD$@p$H)HT$H9HNЉ$$$ƒ$$HH$H9$H$HB/aH$H$H$(H職1H$(H$801H$8 H$8H$Hb.aH$$H$(H誷1H$(H$0#01H$0H$0H$H#.aH$$H$(HC1H$(H$(01H$(;H$(H$H-aH$H$H$(HK1H$(H$T01H$H$H$ H$1ɺH$H$H|$ Ƅ$H$H$HD$HD$Px$11H$H$L$L$H|$ 01ҾHD$ H$HD$;$$$$DŽ$DŽ$HD$(tt.t_ DŽ$DŽ$HD$@x$)Ѓ$DŽ$DŽ$HD$@x$)Ѓ$DŽ$HD$@p$)Ѓ$DŽ$iDŽ$HD$@p$)Ѓ$DŽ$3$$$$DŽ$DŽ$HD$tt.t_DŽ$DŽ$DŽ$HD$@x$)Ѓ$DŽ$HD$@p$)Ѓ$DŽ$HD$@p$)Ѓ$DŽ$1HD$@p$)Ѓ$DŽ$DŽ$$$$gD`EDŽ$$$Hc$HHD$pH$Ƅ$H$$$gDhE|uDŽ$fD$H$H$HhH$$H$F$$$$D;$$$$$D;$ ;\$|H+H|$01H|$`1H|$h1H|$p1H|$P1H$HtHtgHDŽ$ĈH$8H$0 H$(H$H$H5H|$8H5{H|$@ѫH$XHt߉H$@A]A\[SATAUAVH$XH|$HIHDŽ$HDŽ$HT$ Ht$8ʄHbHcHT$xuHD$@(gDhAAHD$HP8DHBHD$HD$HP@DHBH$HD$HP0D4BHD$H@DH8HD$H@D@\LHHD$Hx H$HtD$H$Hd$HHHx8t Hx@HP8Hd$H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0d{HYHcHT$puNHD$H=[leHT$HBpHD$H|$tH<$tH|$HD$H-~HD$pHtpHT$xH$zHYHcH$u&H<$tHt$H|$HD$HP`}_}H$Ht言胀HD$H$SATHd$HIM~ HHH9H{pPeH1&fHtMt HHPpHd$A\[SATAUIC|4ÃLsII|$pLeAD$XI|$PdA]A\[SATAUAVAWHd$IH $HHI$HAHHH2HD$RD:D<|=<~ <5IHH $HIHHIǹH)H$HHHH9T$wH$H8H$H0L艾IM$$DE>D<<~<<AǃAHcH$HIIcLLMIcIIcIPAǺ)AHcH$HIE>gAE|DHcE<9IcIIIL9t$WHd$A_A^A]A\[H$hH<$Ht$HT$HL$HD$HHD$HH|$HD$HHD$ H|$Ht$ 襾H$8uƄ$(Ƅ$,Ƅ$(Ƅ$,HD$(D$8 D$4D$0DŽ$ fDŽ$$H$0H$H`wHUHcH$1DHfD$uAA6LAD$ IHD$@|$ uoA>s A6A>v*H$PHH$PH5~aA&A6LֵIHD$(HHD$AH+D$(D$ H1谢AAt1EkH$PHtdH$PH5_aNCt$(A6LdH t#H$PHtH$PH5IadƄ$H$HH$`A_A^A]A\[Hd$H$HH5:aHAHu$HH8H HMaH5a-HD$H$HH$`dH"CHcH$H=lOH$HD$Hx8H$`Ht$H|$)HD$x(tHD$uHD$ǀHD$H$H aH$H|$H aH$H$H$H! aH$H$1ɺH$H$H|$fD$ fD$$fD$(fD$,fD$0HD$v tGH|$H aH$H$kfD$ fD$@D$HH|$H aH$H$)fD$$H|$H aH$H$fD$(H|$H aH$[H$ɕfD$,fD$$fD$@fD$(fD$BfD$,fD$DD$HH|$Hr aH$H$sfD$0fvD$HfT$0fTD@D$HHD$@HD$H|$B HD$H|$C D$`e|$TuHD$ǀ 1t$\HT$HD$sHD$ǀHD$H|$ T$`H=AHD$hHH|$B HD$hHp(H|$/ |$X|$T|$`u]T$THD$H H1H$T$XHD$H H1H$$$‰D$d T$XHD$H H1HD$dt$dH|$h'D$dgXD$pD$p|$`D$p1$HD$Љ$D$p1$HT$‰$D$T$H)HT$H9HNЉ$D$X$H)HT$H9HNЉ$HD$D$Lƒ$HD$$‰D$toDŽ$HD$D$p‰$D$T$D$X$H)HT$H9HNЉ$T$\$$‰D$tt$tH|$xǠt$tH|$x1DHD$$$$$HD$tt.t[DŽ$DŽ$D$T$)Ѓ$DŽ$DŽ$D$T$)Ѓ$DŽ$D$X$)Ѓ$DŽ$<DŽ$D$X$)Ѓ$DŽ$ $$$$HD$tt.tXDŽ$DŽ$DŽ$D$T$)Ѓ$DŽ$sD$X$)Ѓ$DŽ$D$T$)Ѓ$DŽ$-D$X$)Ѓ$DŽ$DŽ$$$$gD`DŽ$@$$$$$HHD$xH$$gDhDŽ$@$$$H|$H$HD$v.$$$¸ꉔ$HD$u$)Љ$f|$ u$H$H$%f|$ uH$f$fH$f|$0u#$H$H$ff|$0YH$f$fH$8f|$$u $H$H$%f|$$uH$f$fH$f|$(u $H$H$%f|$(uH$f$fH$f|$,u $H$H$%f|$,uH$f$fH$f|$0u $H$H$%f|$0uH$f$fH$$$D;$p$$D;$fD$A!AAL^AE3 DH9Hd$HHd$Hd$6Hd$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$ HT$ Ht$8'HHcHT$xu[HD$H$H|$1RHD$H`@lHD$H|$tH|$tH|$HD$HI*HD$xHtH$H$&HHcH$u'H|$tHt$H|$HD$HP`)s+)H$Ht,,HD$H$Hd$HHht HphHd$SATHd$HIM~ HHH`ulH1RHtMt HHPpHd$A\[UHH$H}HuUHMDEHDžH}uHEHUHRhHEH}*HUHp%HHcHh~HEHPHS%H{HcHHUH}1JHEH`HP0HE@8@EttttfEfEfEfE }t*HEHxuE1Ap=fEHEHxu=fEf}tOuHH1H8HH=}ч@HH5H>&i'H轓HHt(HEH}tH}tH}HEH 'HhHtlHH(#HHcHu#H}tHuH}HEHP`&S(&HHt)x)HEH]UHH$`HhLpLxLLHIAHEHUHu#H6HcHUL{Ds E{8uHS IcH)HxDk H{1#@fAftIAH H1H}XHUH=χcHH5Ha${ wS IcH)HxDHh%H}近HEHt&HhLpLxLLH]HHHkdH*H*x^ZSHC8@)H`H{S8@H)HHHH`HC0C8@[UHH$HLHHEHUHu9!HaHcHUf{8uHRH{t>fAfAtQfEtAHR H1H}蠚HUH=͇HH5H"뇁{8@sH#H}HEHt:%HLH]Hd$H|$H4$H~HD$HT$HHHT$Ht$(# HKHcHT$hu H|$0#HD$Hx@H|$1HD$hHt$H|$tH<$tH|$HD$HPpHd$xUHH$H}HuHUMHDžH}uHEHUHRhHEH}HUHxQHyHcHp%HEHXHH?HcHHUH}1HEU}tHEHx RfEHEHx&RfEf}tOuH H1HUHH=̇]HH5H[ !HڍHHt"HEH}tH}tH}HEH=!HpHtlHXHHHcHu#H}tHuH}HEHP` p" HHt##HEH]UHH$`HhLpLxLLHIAHEHUHu.HVHcHUL{0Ds8E{ uQH`HCH`H{@HCHC HC8IcH)HxDk8HH)H{1nPfAfAtYfEtIAHH1H}:HUH=rʇEHH5HC{89fAu C H)S8IcH)HxC8D)‰H1H}舋HEHt HhLpLxLLH]UHH$HLHHEHUHuyHHcHUHHH{HCHHǃxHǃH{LtH{LNfA H{mNfAfEtIAHSH1H}衔HUH=ȇHH5HH},HEHtNHLH]HxUHHd$H]LeLmLuL}IAILAu IxHAtH}.H·HPH=ȇHH5HH]I;x} L)nIxH)bII@~A@I`DLIEHcL9t.HP·HPH=LJkHH5HiL)HHEH]LeLmLuL}H]HHHkdH*H*x^ZSATHd$HIM~ HHH{hJH1HtMt HHPpHd$A\[UHH$H}HuHUMH}lH}uHEHUHRhHEH}HUHufHHcHxKHEH`H ,HTHcH}u2HUHwHH5`THUHB0HUHEHH5`"HUHBHUEBHEHxuNHEHHDž HHˇHPM1H=Ç HH5HGrH}ɆHHtHEH}tH}tH}HEH,HxHtlH`H HHcHu#H}tHuH}HEHP`_HHtHEH]UHHd$H]LeLmLuHIAՃ{u.HʇHPH=q‡ HH5HLH{DH]LeLmLuH]UHHd$H]LeLmLuHIAՃ{u.HaʇHPH= HH5HLH{D[H]LeLmLuH]UHHd$H]LeLmLuHAfAH{AIc]IAu.HɇHPH=] HH5HDH]LeLmLuH]SATHd$HIM~ HHH{H1HtMt HHPpHd$A\[SATHd$HfAfDf=tLf=tcf=tzf=f=f=ff=f=HHAڇHP蓍HHڇHPvHHهHPYHHهHP<HHMهHPHHهHPhcHH؇HPIHH؇HPɌ/HIH>HHH2`Hd$A\[Hd$HLJ Hd$SH$HHHXHHtH9:H H59HH1cDHXHHtH98H H=9H_D赟HHs`H1DHDJHb}DJH$[SH$@HHuHH$[SH$HHHHH1bCH腡CH$[SH$HHwH@Ƈ8~'覞HHH1CH)CH$[SH$HHHŇ8~'FHHH1覡1CHɠ$CH$[SH$HHHŇ8~'HHH1FBHiBH$[SH$@HHTHŇ8~+t'HHH1ߠjBH]BH$[SH$@HHHć8~+t'HHH1 BH袟AH$[SATAUAVH$XHHH$HھH$t$t $u1fH羀TH<$u1KAE1H$HH$H@H$@H$@ H$ǀHH$ƀLH$HǀH$Hǀ111FH$H$ƀH$ƀtH$H$H$OH$ƀu$1ʊ 0h9vB(t0tKtN ttHH $Ɓur;H $Ɓuw.H $Ɓua! 0AAA9zH$uuH1H$uuH$HuH,1H$@ @H$HPH$Ht$H$7E0H$uftHf1Et0H$HPzI2>LH$HP>H$uau H$ƀuwEч$ч$Ƅ$Ƅ$Ƅ$Ƅ$Ƅ$Ƅ$Ƅ$Ƅ$H$HPH$ 2}=H$ǀx 6H<$H$HPIL=H$@I)H$DxH$HH$A^A]A\[SATAUAVHd$HAAHt uwtAa{ uEHHCHHPH@<<$@t ǃHC @AAH%ADHd$A^A]A\[SATHd$HLtAf{uOHHKHP@{u#ƃLH011m,fAu(HHPX@dfDBCdgp!HH{X1蝷LA~ u fC0fE1cfAtfE1Uf{,tfAFA<H#A<HLFfC,{(tfE1fAAH$A_A^A]A\[SATAUAVHd$HH0u fAzL0fEt$fA*tfAqtfAtfANI|$%I|$X$I|$P$I|$@$L$Hǃ0fAqufAfE1AHd$A^A]A\[SATAUHd$HHtHt H0u fAL0H߹)HH羈#H<$u fAH$H0H<$LQHH$HH$p4HH$Hx@]#H$p4HH$HxPF#H$pdHH$HxX/#H$XHH|$#H$HT$HPH$Hx@tHxPtHxXtHxuHBfAH$P4HH$Hp@I}@ H$P4HH$HpPI}PH$PdHH$HpXI}XױH$PH$HpI}迱H$HpIU IMH)HHP Ht$H$XHH?HHHVH`H$HHJXHkHHPH$HH( H$H H@ H$H HX fE1AHd$A]A\[SATAUHIDkD9DBD)kEtAH0fx,uH3<D/<H;DL轰DHDHCDA]A\[SHC4CHHHPX@dfDBCdgp!HH{X1|HHDHHmHHQfDfHH3DǃCtǃǃCxƃC`[SATAUAVAWHd$IELHP@LfAfAAV4A;sA)ωHL$1HL$I~PANL@0Ix &E1KfA@LZIx ufAuAE1fAuAADA_A^A]A\[SATAUAVHd$HfA$fDs/HsfEuE1yrHH$t6H؋H4H!H)H9|ftHߋ4$Cx{xH؋)ƋCxgPH4&AŋCx)H؋Px;w=r4kxDHHkx{xuރvCxCxHHP@C`HHH@|Ppp`1#xl{`,HHP@H1x%AŃEnH@0SHx VE1KLfA@H*Hx ufAuAE1fAuAADHd$A^A]A\[SATAUAVAWHd$If$DAs0LAs fuE1A5ArALHwAFxAAAF|AFx$L;pH4H!H)H9|VfAtL4$XAFxLPxw0ftu H)H~AFxL;PxLЃALgr+p|AgPLd#AAA)AAE;rALH5AAuAƆAFxAE2L@0Ix E1 AtXLHP@TL1"AĄt L@0AAIx E1AƆAAAt$LHP@TL1("AƆf@LIx ufuAE1fuAADHd$A_A^A]A\[SHH0ufRHF(HFF0H0x tH0 H0H0Hx1"f1[SATHd$HH0ufAt1 й)HtrH HH)HCH3{H0PtfA/DsDk(HE!LsE!Lk(H0fE1AHd$A^A]A\[SH0HtHxufH0Hx/f[HL|HʿH)I9HDzL|DA fDzHfzfLAI(A<@(HzLAI(A<@(H|AI)Dfzʃf|HDzH|A fDzf|1fD ‰ffUHHd$H]LeLmLuHfAf1f1ffH|BHHfftEf|fE|JfA@fAIfDlfEt%A|EAHIfAfDEfE9H]LeLmLuH]f@ffDŽf|fffDŽ f|fffDŽ f|fLJLJlLJhLJtLJ\Hd$HǀpHH( H鯇H8 H H@ HHP H HX HHh fǀzfǀ|fǀxHHd$SATfDG Hf; }]IL LfC\YLfG$DfGYMfGfE9w$fE9u"HADF:wfHMfBIDfGH MfB f9wMf9uIEAFF:v,DfFG fDO fff;  fDW A\[SATAUAVAWHd$L>fFf$HFHHFHPHFf@HvfDFf1fAfAEfBDŽOp fA|IE OQ fCDD AfA<fDfAfDːfDfFo MMGlGlAfEfE9} fEfMfGdfD9 $|qEfBop fE1fD9MLM)fFjMfGEEEEEDhHt MFlEEEEDlf<7ffDAfA fAAfGp tAfGp IfGr AfGp fff=fAfDffAԐfAAfDOp [f-fO f9$|CHAtA9t+AMLCL)C hHfEdfAfEufAHd$A_A^A]A\[SATAUAVAWHd$H|$IIH$IGHIGfXfHD$fǀ HD$fǀ =ffAfAIH$f<t?fDHD$f HD$ HD$fDx AHD$Ƅ8IH$fDfD9HD$f f}#fHD$ HD$fx fHD$ HD$fDŽx f1HH$fHD$Ƅ8HD$hHtH|HD$)lHD$f SfAfEoHD$H HH?HHf|1fAfAfAH|$AH4$fAHD$fD HD$ fP HD$f HD$f H|$H4$*HD$fD HD$f HD$ HD$fDP HD$f HD$ HD$fDP H $IIHfHD$HAÅ: r%AHT$HT$ #AHT$HT$ IfH$fTIfH $fTHD$f fH|$H4$HD$f {HD$f HD$ f HT$fJ LH|$HD$Hp AH<$Hd$A_A^A]A\[UHHd$H]LeLmfAfDNfE1fAffEu fAfHfDffDffEHfDLfAfE9~ fE9fD9~fDEfB AfEtfE9tAf f fA  f  f fE1fEfEu fAffE9u fAf fAff9AH]LeLmH]UHHd$H]LeLmLuL}H}HufEHEfDxfE1fEfEfEu fE؊fEfAfEfAfAfDIHUfD|fAfD9u~ fA9efD9u~6fHM HM H}afAuftof9]t-HM HM H}"fAHE HE H}AH}xfA 9HE HE H}AH}7HE HE H}A H}hfE1f]fEufE؊fE fA9ufEfE fEfEfE9bH]LeLmLuL}H]SH0 HHߺ<H H Hߺ<fHX Hff-H "f uf=Ѓkh[SATAUAVAWIfAffAAL/LALEAfE|=fAfAAHWA LfE9A΃IL<i˃I L<LA_A^A]A\[Hf|~:HfzfHrR( @(HzHrR( @("f|~HHJr(z1@(fǀzfǀ|SATAUAVHd$HIfAAH_fǃxEtmfDf%HHJR(C(AHHJR(C(fDff%HHJR(C(fDf%HHJR(C(HHP@(H4ALjADk(Hd$A^A]A\[SATAUHIAHߺppIcHHpDHLA]A\[Hf|uKHfzfHrR( @(HzHrR( @(fǀzfǀ|f||(HHJr(z1@(fzf|SH X5OHp H8HHxHH H|H)H }7Hߺ5Hp Hfǃx[f111ff|Dff|Dff|9sG.G.UHHd$H]LeLmLuL}H}HuHME1HE\pHEH`DBHEHPDffAAu'IHMTIHE4H}kAHA!HHMTDHHEtH}'DH흇fD,PfEt#DHXfBfA)H}AAsH+A!HADHMTDHE4H}DHfD,BfEt DH P)H}AdHED;\HEHEH}4HEfHEfxH]LeLmLuL}H]SATAUAVAWHd$H<$IAՈL$fE1H$fH$x.u H<$:H$H( H<$vH$H@ H<$bH<$fAH$HchHBHHAH$HclHBHHA9| AgA]AIcHIcH9MtH<$L$DLA9uXD$gpH<$H<$H H53AH$lH$pD$gpH<$H$H gPH$0 gqAgHH<$H$H H$HH<$A<<;H$hH$pH<$ D$tH<$H$pH$pHd$A_A^A]A\[fHL`\fAHHLP\A\ufgtsH Ζf!H f1f!H Hf%f XH\H9AAHAofsfAfAA)DADHfAfEEøqAiA)EAqAiA)D߅wD ADSATHd$HIHtChtuH{HC;u H{L)C,C0HC@HCXHC@HCPH{`t111S`ChA$<Hd$A\[SATAUAVAWHIAԿpHuIII}8-vI}8u LM1\I}@DVI}@uI}8LM13LHP@HPHDIIT$HMt$`A$HL1MLA_A^A]A\[SATAUAVAWH$`IH$f$H$L8H$DhEf0A^,IFXHD$xI;FPsIFPH+D$xHHT$XIFHH+D$xHT$XA 8 !.:fEt fDŽ$jEf0A^,H$DhH$HLH)HH$HPH$L8HD$xIFXH$L$fD$@AAމЉD AI_DHT$HD$HAF(T$HttJAڃHD$HD$HDAԋD$H)AL$HL$8HT$0Ht$,H|$(1L$HL$8HT$0t$,|$(IFHuqfDŽ$Ef0A^,H$DhH$HLH)H$HBH$L8HD$xIFXH$L$PfD$@HAAAAAA H$Hx0HG^`腙fDŽ$Ef0A^,H$DhH$HLH)HH$HPH$L8HD$xIFXH$L$fD$@Et fDŽ$gEf0A^,H$DhH$HLH)H$HBH$L8HD$xIFXH$L$fD$@AAމЉD AI bD%D9A H$Hx0H\` fDŽ$Ef0A^,H$DhH$HLH)H$HBH$L8HD$xIFXH$L$)fD$@!D%AF1E1A~t AA~(t ApAdEugEf0A^,H$DhH$HLH)H$HBH$L8HD$xIFXH$L$zfD$@rD$XsLHD$xH;BHu?HBPH;B@t5IF@HD$xI;FPsIVPH+T$xHHD$XIFHH+D$xHT$XD$XHD$xIFXH$L$f$IFXHD$xI;FPsIFPH+D$xHHT$XIVHH+T$xHD$XLHD$xH;BHu?HBPH;B@t5IF@HD$xI;FPsIVPH+T$xHHD$XIVHH+T$xHD$XD$XugEf0A^,H$DhH$HLH)H$HBH$L8HD$xIFXH$L$fD$@ fDŽ$AFHD$HD$HA9sDHD$HD$HT$X9s D$XHD$HD$HHHt$xLwT$HI׋D$HA)ŋT$HHT$xD$HH)D$XD$HA)FA~A~(t AADEt fDŽ$jEf0A^,H$DhH$HLH)HH$HPH$L8HD$xIFXH$L$ fD$@ AAމЉD AI_D%?HT$HD$HAFT$HwD$HA H$Hx0HX`ݓfDŽ$Ef0A^,H$DhH$HLH)H$HBH$L8HD$xIFXH$L$ fD$@ T$HgT$HgHD$HD$HHHI~I~utfDŽ$Ef0A^,H$DhH$HLH)HH$HPH$L8HD$xIFXH$L$6 fD$@. AAF AEt fDŽ$jEf0A^,H$DhH$HLH)HH$HPH$L8HD$xIFXH$L$ fD$@ AAމЉD AI_DIFHHPHP4AF AIN !HPAH9%IFHHPHPAF A~ rAFH$H$MF8I~IN IVAc$HT$HD$HI~dIFfD$Hf$f=uA Ef0A^,H$DhH$HLH)H$HBH$L8HD$xIFXH$L$% fD$@ AF A@AFHD$HT$HHT$HHAF H9AFHD$HEt fDŽ$jEf0A^,H$DhH$HLH)HH$HPH$L8HD$xIFXH$L$W fD$@OAAމЉD AID$H9\IF HD$`T$HHD!!HHD$`HD$`PHD$HHD$`@HD$hD$hs0T$HDAċD$H)IFHHPD$hAF D$huH$ HD$pT$hH$HD$pfEt fDŽ$jEf0A^,H$DhH$HLH)HH$HPH$L8HD$xIFXH$L$fD$@AAމЉD AIL$H$HH9ND$HDAԋD$H)Ë$HlD!‰HD$p$DAċ$)AF H$AFHD$HD$HHT$HH4$T$pHH9|D$h$I~IFA H$Hx0H~R`\fDŽ$Ef0A^,H$DhH$HLH)H$HBH$L8HD$xIFXH$L$efD$@]D$huIV$DHD$h1HD$hDIV$D$hH$Hl$pD$pu׋$AF IF D$( D$,AFHD$HHD$HD$8HD$HD$0H$H$HD$ IF8HD$IVL$HgqL$HgLL$,LD$(p HT$HI~IFD$HD$H=uA fD$Hf$Ef0A^,H$DhH$HLH)HH$HPH$L8HD$xIFXH$L$fD$@L$HL$8HT$0t$,|$(HD$PHuqfDŽ$Ef0A^,H$DhH$HLH)H$HBH$L8HD$xIFXH$L$0fD$@(HD$PIFAEf0A^,H$DhH$HLH)H$HBH$L8HD$xIFXH$L$Yf$f=t"H$L$fD$@fDŽ$I~H$H$L8H$DhEf0A^,IFXHD$xI;FPsIFPH+D$xHHT$XIVHH+T$xHD$XA~(u AAHD$xIFXH$L$f$IFXHD$xLHPPH;PXtgEf0A^,H$DhH$HLH)H$HBH$L8HD$xIFXH$L$dfD$@\AfDŽ$Ef0A^,H$DhH$HLH)H$HBH$L8HD$xIFXH$L$fD$@fDŽ$Ef0A^,H$DhH$HLH)HH$HPH$L8HD$xIFXH$L$xfD$@sfDŽ$Ef0A^,H$DhH$HLH)H$HBH$L8HD$xIFXH$L$ fD$@D$@H$A_A^A]A\[SHH;1HHx@HHx8zH;RHf1[UHHd$H]LeHHAHs@DiHC@HCXE!LcXHCXHCPH]LeH]?f%fffSATAUAVAWHd$IIf$I^MgPM;gXw IGXL)A IGHL)AE;n vEn Etf<$uf$E)n DIF(I`tAhDLAW`AGhA<DHLhDHDIM;gHMg@LHPXH;PHuIG@IGXIGXL)AE;n vEn Etf<$uf$E)n DIF(I`tAhDLAW`AGhA<DHL/hDHDII^MgPf$Hd$A_A^A]A\[SATAUAVHd$AIIο0HtXD`Lh Lp(Hd$A^A]A\[SATAUAVAWHd$H|$@Ht$0fT$HD$@H@H$HD$0HHD$ HD$0@HD$(HD$@@0HD$HD$@@,HD$8HD$@H@XHD$HT$@HD$H;BPsHD$@HPPH+T$HHD$HHD$@HPHH+T$HD$H@H$tVp= > [ED$H=SD$( FD$HT$@B0D$8HT$@B,D$(HT$0BHD$0HHD$ H)HHD$0HPHD$ HT$0HHT$HD$@HPXH$PH$PH$HH(H$HP LL$0LD$@fD$HD$0HHD$ HD$0@HD$(HD$@@0HD$HD$@@,HD$8HD$@H@XHD$HT$@HD$H;BPsHD$@HPPH+T$HHD$HHD$@HPHH+T$HD$HfD$ft'f|$uH$MH$ >H$PH$PH$HP H$HPH$H$X@D$(t fD$D$HT$@B0T$8HD$@P,D$(HT$0BHD$0HHD$ H)HT$0HBHD$ HT$0HHD$HT$@HBXHt$0H|$@T$0fAHD$@x( H$LpH숇L$!щHIAFT$89\ fAf% N BG Hl$(HD$ D$8ʉD$ ‰HD$HD$ HD$8D$89H$LpHfT$!‰HIAF‹t$HD$AFH)D$8AADžuAFH$BH$Dt'DH$PAFH$BH$PD@uH$DxAFIH$HB+D tH$H$ HD$0Hx0HrE`0fD$D$HT$@B0T$8HD$@P,D$(HT$0BHD$0HHD$ H)HT$0HBHD$ HT$0HHT$HD$@HPXHt$0H|$@T$-fA H$XD$(t fD$xD$HT$@B0D$8HT$@B,D$(HT$0BHD$0HHD$ H)HHD$0HPHD$ HT$0HHD$HT$@HBXHt$0H|$@T$fA Hl$(HD$ D$8ʉD$ ‰HD$HD$ HD$8D$89:H)D$!ЉH$Pڋt$HD$H)\$8H$PH$PH$HP(H$HPH$CH$XD$(t fD$xD$HT$@B0T$8HD$@P,T$(HD$0PHD$0HHD$ H)HHD$0HPHD$ HT$0HHD$HT$@HBXHt$0H|$@T$`fA Hl$(HD$ D$8ʉD$ ‰HD$HD$ HD$8D$89:H$HpH鄇L$!L4AF‹t$HD$AVH)T$8AAǃt'DH$PAVH$P H$D@uH$DxAFIH$HBH$ HD$0Hx0HPB`|fD$T$HD$@P0D$8HT$@B,D$(HT$0BHD$0HHD$ H)HHD$0HPHD$ HT$0HHD$HT$@HBXHt$0H|$@T$fARH$XD$(t fD$uD$HT$@B0T$8HD$@P,D$(HT$0BHD$0HHD$ H)HT$0HBHT$ HD$0HHD$HT$@HBXHt$0H|$@T$SfAHl$(HD$ D$8ʉD$ ‰HD$HD$ HD$8D$89=H䂇L$!H$P ڋt$HD$H)\$8H$Ll$H$P I)HD$@HP@HD$H)ЉH$;P NHD$@LhHHD$@HP@HD$H)!H $Q H)HI)DD$HHT$@HD$H;BHuXHBPH;B@tNHD$@H@@HD$HT$@HD$H;BPsHD$@HPPH+T$HHD$HHD$@HPHH+T$HD$HD$HZHD$HT$@HBXHt$0H|$@T$fD$HD$@H@XHD$HD$@HT$H;PPsHD$@HPPH+T$HHD$HHD$@HPHH+T$HD$HHT$@HD$H;BHuXHBPH;B@tNHD$@H@@HD$HD$@HT$H;PPsHD$@HPPH+T$HHD$HHD$@HPHH+T$HD$HD$HuuD$HT$@B0T$8HD$@P,D$(HT$0BHD$0HHD$ H)HT$0HBHD$ HT$0HHT$HD$@HPXHt$0H|$@T$fAfD$AEHT$HD$IHl$HHD$@L;hHu HD$@Lh@H$hH$xH$D$HHT$@HD$H;BHuXHBPH;B@tNHD$@H@@HD$HT$@HD$H;BPsHD$@HPPH+T$HHD$HHD$@HPHH+T$HD$HD$HZHT$HD$@HPXHt$0H|$@T$fD$HD$@H@XHD$HT$@HD$H;BPsHD$@HPPH+T$HHD$HHD$@HPHH+T$HD$HHT$@HD$H;BHuXHBPH;B@tNHD$@H@@HD$HD$@HT$H;PPsHD$@HPPH+T$HHD$HHD$@HPHH+T$HD$HD$HuuD$HT$@B0T$8HD$@P,D$(HT$0BHD$0HHD$ H)HT$0HBHT$ HD$0HHD$HT$@HBXHt$0H|$@T$bfAfD$H$PHD$HD$Hl$HH$yD$8vHl$8HD$(Hl$ HD$HT$@HBXHt$0H|$@T$fD$HD$@H@XHD$HD$@HT$H;PPsHD$@HPPH+T$HHD$HHD$@HPHH+T$HD$HHT$@HBPH;BXtxT$HD$@P0D$8HT$@B,T$(HD$0PHD$0HHD$ H)HHD$0HPHD$ HT$0HHT$HD$@HPXHt$0H|$@T$fAH$SfD$D$HT$@B0T$8HD$@P,D$(HT$0BHD$0HHD$ H)HT$0HBHD$ HT$0HHT$HD$@HPXHt$0H|$@T$fAfD$D$HT$@B0T$8HD$@P,D$(HT$0BHD$0HHD$ H)HT$0HBHD$ HT$0HHT$HD$@HPXHt$0H|$@T$fA~fD$D$HT$@B0T$8HD$@P,T$(HD$0PHD$0HHD$ H)HT$0HBHD$ HT$0HHT$HD$@HPXHt$0H|$@T$fAAHd$PA_A^A]A\[SHH;H[UHH$pHpLxLLLIAԉHLHEHHE HH](HE0HHE@HHEHHHEPH}1Ҿ@YDADD9wD;eu"HHfDžff1|urf9sfЃ|uwf9vfljȉf6DfDf)f}fDž&fѥ9wˉfDf)f}fDžDDž1HHuL!@HAHIwDƹfATHt%H 9wD1DžLfAHHfHDž@11DLAfAfDD)9s DD)ALDADADDHAL9}LgAI)L|9v/HIA;7vA)H9wDADADHD)LHvfDžLAMLIDAH@HfEAʉMMHLL)AADADHIL8HL)HDL)MIL8DHMKL HHLHLLL9'DA)DmEHN,M9wElA; vA;sEE`A MIBA DL)LAL@MA DL)LALMILHI)ADADHAADADHfDDHMJ H9wLIADAEL @1ىˋAL!uڋ1ىLEADAAE+ffAf+LEADAAED!EB;uEcfff;.fftft fDž fDžHpLxLLLH]UHH$HhLpLxLuL}IIHUILMHEHEEH}LH}u fEHD$@HD$HEHD$0Ld$(H~tH$HEHD$8H\$ HEHD$Ll$LLsLAADAHED HEHUH5`HED9E;EJHcEHcMHHHHH}HH:E**M^EEÅAAA*YEEEE<$e-AHED0HEA*M\Hy`\E^EHEZHEHEЋgP|1E1@AH5`^EHEZHED9HEHcHH*E\E\^EHEZHED9EuUHEgHAfAHEHEHUH`HED9RHHcEHH**M^EEÅAAA*YEMH&`YXMEEE<$+AHED0HEA*M\H`\ELIf)E^LIH`f/zs H`f)H`f/zv Hp`f)EHEZEHEHH`\EHEZHED9HEHcHcEHHEHH;Ut*H2`H=KlQHH5H^HhLpLxLuL}H]Hd$H<$H$HRЉH$HPЋgH@؉H$HPHc2Hc@HH$HxӡH$HPHHPHd$SATAUAVH$H|$ 4$T$L$DD$|$|$HD$ H@x<x8HD$8HD$HHD$0H$H$[H9HcH$%HD$ H@pf)Yf)H`YH` \YH`X f)H)`f/z9s7f)Yf)H`YHc`XYH`Xf)XHc`f/z@s>f)HX`YHE`XYH.`XYH`Xf) H `f)H`H$(H|$H4$HuHD$HT$HRhHD$H|$PHT$Ht$0TH,2HcHT$pHD$H|$1>HD$@HD$@H=k$HT$HB H|$HT$HBPH|$^HT$HBpH|$HT$HB`HD$H|$tH<$tH|$HD$HrVHD$pHtpHT$xH$!SHI1HcH$u&H<$tHt$H|$HD$HP`VWVH$HtXXHD$H$SATHd$HIM~ HHH=CHH{P>H{`>H{p>H{ >CH1jHtMt HHPpHd$A\[SATHd$HIL;cxu HCxL;cXu HCXL;chuHCh{u:L;cPuHHCP&L;cpuHHCpL;c`u HHC`H{ LHd$A\[SATAUII|$ n|<ÃfI|$ IM;e(uA}#t LIE(I|$ ID$ HA]A\[SATHd$HIH{ L} H{ LVHd$A\[UHHd$H]LeHHIHuFH `HEHE HMM1Hj `H=NLFHH5HgRHLH{ LLH]LeH]UHHd$H]LeHHIHuFH `HEHE HMM1H `H=KFHH5HQHLH{ LLH]LeH]UHHd$H]LeHHIHuFH `HEHE HMM1H* `H=KyEHH5H'QHLXH{ L|LH]LeH]GHd$HHu!$D$D$D$ 4HHHHD$HT$HD$H$HD$HD$H$HT$Hd$(Hd$HHd$Hd$HHd$Hd$HHd$SATAUHIH=\Y2tALHH ADA]A\[SATHd$HIL;cXtGLHt8{tH{XLHCXHHLLcXLHUHd$A\[HXtHGXHGP0SATAUHIH=by1tALHH0ADA]A\[SATHd$HIL;chtGLHt8{tH{hLHChHHLLchLHuHd$A\[HhtHGhHG`0SATAUHIH=v^0tALHH(ADA]A\[SATHd$HIL;cxtGLHt8{tH{xLHCxHHLLcxLHHd$A\[HxtHGxHGpH@pSATHd$HH4$HT$H=HY5IH$ID$HD$ID$Ht H?7LHd$A\[HH0HHSH{(u HHC([UHHd$H]H{(~k({(u8HH*H`H=F:?HH5H8LH]H](SATAUHd$HAAH $HHT$Ht$ IH(HcHT$`uMHqHH=X".tHVHH $DDH $DDHHLHHD$`Ht NHd$pA]A\[SATAUHd$HH4$IIH<$HT$Ht$ IHD'HcHT$`uMHHH=Wa-tHHLLH4$LLH4$HHKH>HD$`Ht_MHd$pA]A\[SHd$HH4$HKHT$Ht$ gHH&HcHT$`uH4$HHlKHķHD$`HtLHd$p[SHd$HH4$H˷HT$Ht$ GH&HcHT$`uH4$HHJHDHD$`HteLHd$p[SATHd$HIH|$1ҾaHD$H$HL$HLHH$Hd$A\[SATAUIILHH=#V+tLHLGLLI$ÉA]A\[SATAUIIL}HH=U.+tLbHLgLLI$ÉA]A\[SATAUHd$HAAH $HQHT$Ht$ MFHu$HcHT$`uMHHH='U*tHHH $DDDH $DDHHIHHD$`HtJHd$pA]A\[SATAUHd$HH4$IIH<$HT$Ht$ EH#HcHT$`uMH HH=fT)tHHLLH4$LLH4$HHVHHHD$`HtIHd$pA]A\[SHd$HH4$HHT$Ht$ DH"HcHT$`uH4$HHGHTHD$`HtUIHd$p[SHd$HH4$H[HT$Ht$ WDH"HcHT$`uH4$HH\GHHD$`HtHHd$p[SATHd$HIH|$1ҾHD$H$HL$HLHH$Hd$A\[SATAUIILMHH=R'tL2HLLLI$ÉA]A\[SATAUIILHH=3R'tLHLLLI$ÉA]A\[SATAUHd$HAAH $HHD$hHT$Ht$ BH HcHT$`u'H4$1H|$hHL$hDDHHEH|$hHHD$`HtGHd$pA]A\[SATAUHd$HH4$IIH<$HD$hHT$Ht$ BH+ HcHT$`u'H4$1H|$hHt$hLLHHDH|$hIHaHD$`HtbFHd$pA]A\[SHd$HH4$HkHD$hHT$Ht$ ^AHHcHT$`u#H4$1H|$hzHt$hHHRDH|$h訰HHD$`HtEHd$p[SHd$HH4$HHD$hHT$Ht$ @HHcHT$`u#H4$1H|$hHt$hHHCH|$hH HD$`Ht!EHd$p[UHHEH]UHHE H]HHd$HAЋHHHHd$Hd$HHH8Hd$Hd$HHHH HH8Hd$SATAUHAAHxXtQHHH=Q#t$HHNjEDWDDHH@DDA]A\[Hd$HHH HYHd$SATAUAVAWIAAEL1xXtOL#HH=P#tLHEDDEDDLIHEEA_A^A]A\[Hd$HHII HH HOHd$Hd$HH4$HT$DD$ L$T$4$HHd$UHHd$H]LeLmHIIH:xXtGH,HH=O"tHHLL0 LLHH(KHH]LeLmH]UHHd$H}<$HH`H]UHHEH]HHd$HhHd$UHHH~ HHhH]SATAUHd$HNxXHD$f$LH$<$t'$% r ttsH1H|$hMH|$hSN!H|$hHD$`Ht#Hd$xA\[UHHd$H]LeLmHIC<;C@HCHHtH@HHu!HEH5dJH{HHM"HSHHtHRHHsHLI$C@u*H:_H=EkHH5HC<HSHHcCfA$ID$9HD$Hp`HD$PXH<$Hd$ A_A^A]A\[Hd$H|$4$HT$fD$HD$@PHPHHHD$(HD$@0tt#t(t-t2tLdHCZHPHFH%H>HDk0H4$H|$pHt$pH|$ ,H|$H5,_HtH|$ukLH7C,H|$xS,HH$'H$H5_H|$xYHT$xH4$H|$p6Ht$pH Ht$HC,HH4$LؽH H$^H|$xTH|$pJHBH|$8HD$hHtYH$A]A\[H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$04H\HcHT$puLHD$H|$1KHD$@,HD$H|$tH<$tH|$HD$HHD$pHtpHT$xH$HHcH$u&H<$tHt$H|$HD$HP`1H$HtzUHD$H$H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0HHcHT$puLHD$H|$1 HD$@,HD$H|$tH<$tH|$HD$HHD$pHtpHT$xH$nHHcH$u&H<$tHt$H|$HD$HP`f\H$Ht:HD$H$H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0 HHcHT$puLHD$H|$1HD$@,HD$H|$tH<$tH|$HD$HHD$pHtpHT$xH$. HVHcH$u&H<$tHt$H|$HD$HP`&H$HtHD$H$H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0t HHcHT$puUHD$H|$1HD$@,HD$@0HD$H|$tH<$tH|$HD$H6HD$pHtpHT$xH$ H HcH$u&H<$tHt$H|$HD$HP`hH$HtHD$H$H@:p(t @p(@t@0UHH$pHxLeLmLuL}H}HuHUE HEx,uHuH} HU HEP,HUEr*t ttEEEHEx0tEHEx(t0x0u*H_H=`,{HH5Hy HuHEt"t1t>tOtbwHE@KH$H$QHyHcH$uJHT$HNHHD$HHD$HH0H HX H`HD$H H$HtHD$HtH;$t H|$HD$xHtZH$H$8H|$ D$H$HD$HD$1111pHD$XHT$`LD$XLL$`HD$Hx011HD$H@H|$YHD$H@H HD$H@HD$H@HD$HxHD$H@H(H|$ M>HD$H@H p`Hc@lHH|$()>HT$ HD$(HHT$hH$uHHcHT$XHD$H@xEfD$THD$H@H ;D$HtuD$PHD$H@uZHD$H@D$LHD$H@u|$L~ |$Htl$LHD$H@H t$LuD$T|$THD$H@uHD$H@ǀH|$Pu*HD$H@uHD$H@ǀD$T|$THD$H@H ;PdnHD$H@H uD$T|$TuIHD$H@H tHD$H@H ;tYHD$H@ǀ|$TW9PD$PHHD$H@ptHD$H@H H|$($H$H$*HRHcH$XuH{H3.H|$H$XHtHD$H$`[Hd$H<$HHx@HH$H$@HBH$H$@LBHd$Hd$H<$HH$HxwHd$SATAUHd$Hf< f$HuE0MHHIHHߺHuH8u xuAE0LHHDHd$A]A\[H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0HHcHT$pu^HD$HD$ǀ`HD$ǀdH|$1 HD$H|$tH<$tH|$HD$H]HD$pHtpHT$xH$ H4HcH$u&H<$tHt$H|$HD$HP`H$HtHD$H$SATHd$HIM~ HHH1gHtMt HHPpHd$A\[Hd$HHHHHHH HH HHH8H H_H5>_Hd$UHHd$H]HHtBH@(EHEHMM1H_H=kHH5HyH]H]HtHHHHtHǂH@(HH$xH|$H4$HT$D$ HD$HT$(Ht$@HHcH$udHHHHHD$H;$t9H|$1HD$HH|$HD$HHHt$H<$-H0HD$H;$t H|$kH$HtH$Hd$H<$HGHx0JHd$SH$PH|$H$HD$H HD$1111o^HD$@HT$HLD$@LL$HHD$Hx011HD$H@HHD$x |HD$H@Hx0@6H|$ +HD$H@H0p0Hc@8HH|$(+HD$ HT$(HHT$PHt$h$HLHcHT$@eD$<<HD$H@x(tcHD$H@@`gXD$8D$8HD$HxT$HfHcH$u&H<$tHt$H|$HD$HP`6,H$Ht HD$H$SATHd$HIM~ HHH1HtMt HHPpHd$A\[Hd$HHHHHHHH{HHuHH8H HŞ_H5_AHd$SATAUAVHd$HIAH{`1HC`HAE|tAAHLI$$ fT$D$ fT$D$ fT$fD$ H{`Ht$HC`HE9Hd$A^A]A\[UHH$pHxLeLmHHEHUHuH0HcHUE0Lk0A1ɺLH}ZH}H5_D^HuXA1ɺIuH}YH}H5_^HtVA1ɺIuH}YH}H5_]Ht*H_H=Dk?HH5H=fAE f%pCsfAE f%CqAE CrHC>PShPSlfPf@f@Cp{rCN{OtfCIf%CN{NtCLCrClSh‰CXHcsXH{P9#{Nt0srH{`ּHEfEsrH{`HUHC`HAH}LHEHtDHxLeLmH]SATH$HH|$ Ht$HT$HD$ H@`HD$ H@PHT$8Ht$PHHcH$8D$0H$HD$0HD$1111ITH$H$L$L$H|$ 011HD$ H|$0 1ҾH=BHT$ HB`H|$1HD$HHD$ Hp0H|$ HD$HH$HD$0HD$1111SH$H$L$H$H|$HD$HH*$H|$HD$HH*$^H_YH,ЁH|$ 0ɾHD$ HMI|$0HD$ @:$t4HD$ f@:f%D$,HcD$,Ht$H|$ DHt$H|$ )D$(<,t2<;t.H|$HD$HHH|$HD$HH9|H|$HD$HHH|$HD$HH93HD$ Hp>H|$ HD$HHD$ @F$t4HD$ f@Ff%D$,HcD$,Ht$H|$ ,H|$ HD$ HxxtHD$ HHT$Ht$ HD$ PxHD$ PlHD$ phH|$HD$H(Ht$H|$ HD$ HtWHt$H|$ HD$ Ht;HD$ Hx`HD$ HxP1B H$HtHtqHDŽ$H$HD$0HD$HD$ HlHD$ Ph11PHD$8HT$@LD$8LL$@H|$ 0ɺdHD$ HH$A\[SATH$H|$Ht$HDŽ$h`Ƅ$`H$`H$`HŶHcH$`H$|`H|$HD$HH|$HD$HD$$D$,H$x`H|$HD$H$x`v@$x`D$,$x`H|$HD$HD$LT$P$x`t2H|$HD$HHH|$HD$HH9ZH$H$`HD$1111OH$`H$`L$`H$`H|$HD$HH*$aH|$HD$HH*$a^H_YH,ЁH|$0ɾHD$HMI$`u D$ Hct$,H$h`FH$h`HD$@Hct$$H|$HD$HH$x`H|$HD$H$x`v$$x`Ht$@H|$$x`HD$@$x`t2H|$HD$HHH|$HD$HH9vH$H$`HD$1111MH$`H$`L$`H$`H|$HD$HH*$aH|$HD$HH*$a^H_YH,сH|$0ɾHD$HMI$`u D$ pH$h`HD$@HD$H@PH$p`$|`D$L$|`f$`$`f$`$`D$TD$XD$LT$PHD$Ph@l‰D$($`|5D$0T$0T$0D\L$0ʈ\@;D$0H$\PH$``Ƅ$`D$4D$8SDHD$@L$8T$4D$8@T$4D$P!ЉD$D$<\@$`H$p`$`H$p`l$(D$D$Hc]HqHH-HH9vt]}}EHp!6H}6HxHt7EHhH]UHH$PHXH}HuHUHMLEHHDž`HUHp H2HcHhHUHuH}Eԃ}tH HH5)HsH]HEHUHHuH`$H`HEHx5HEHxHuo5HEHxHu^5HuH}AEyH`4HhHtEHXH]UHH$pH}HuHUHMHHDžxHUHuHHcHUu>H]&HEH0Hx_HxH}4H-uHx3HEHtH]UHHd$H]H}H0EHEH@H8tHEH@H@HEH}tH}3HcHqHH-HH9v}]EEEuH}3HEHEH@H;Et$HEH@H0HEHx tE;]~몊EH]H]UHHd$H]LeLmH}H(HEH@HHtH[HH-HH9v}]EE@EEHEL`M,$HcUHH9vsHc]HI<$BAD0 rrt rsHEHxHcuHsK}~xHEH@H8uMHEH@HHH8~B0 rr$HEH@HHEHxH5_+3H]LeLmH]UHH$HLLH}HuHUHMH@H}t)LmLeMt#LHȲLShHEH}tHUHuNHvHcHxuKHEHUHEHBHUHEHBHEH}uH}uH}HEHHxHpH`H HHcHu%H}uHuH}HEHP`EHHtjHEHLLH]UHHd$H}HuHHEH7H}~HUHRH}kHUHRBH}WHUHRBH}CHUHRB H}H]UHHd$H}HuH3HEHWHEH@0H}HEH@pH}HEH@pH}HEH@p H}xH}H]UHHd$H}HHEHxurHEHHHEHP;uPHEHPHEHHB;Au6HEHHHEHPA;BuHEHPHEHHB ;A uEEIHEH@8u2HEH@xu"HEH@xuHEH@x uEEEH]UHHd$H}HuHHEH}H胲EEH]UHHd$H}H}-HpnHUHu輽HHcHUu(贬HHuHuH5AH HEH}-HEHt%HEH]UHH$ H0L8L@LHLPH}HuHUHMHHEHUHH=$ HHEHUHx˼HHcHpH}$HEHHhH`HEHAHXILuH]LeMtM,$L裭HLLHXL`LhAYH}PHpHtH0L8L@LHLPH]UHH$HxeHEHUHu諻HәHcHU= uEEEEEHHHHc}HH} 5H}IHUEHH H<H4}sz# H}u*HEHt藿H]UHH$HLLLLH}HuHUHP&HELmLeMt I$H诫LHEH {_EL}LuLeMtI$ILjLLAHUAHHHHHFkAHHHɲHHu0ELuH]ALeMtI$IL辪DHLAE$I]HLLHH=k3HEHuH}VLeLmMtI]H蒜LHH}к+LuILmMtI]HQLLH}u{H}-HHH+IH]HtH[HH-HH9vaAH]LeMt*M,$LΛHDLAHUHuH}HVt聭H}xH}oHHtYH}HpHtϮHLLLLH]UHH$HLLLLH}HuHUHMLELMH(*HEHUHhmH蕇HcH`XHUHuH}HhHEHHHHCHcHHH=Sk讓HEH}utH]HtH[HH-HH9vtAH]HH}(IH]LeMt&M,$LʙHLDALuILmMtI]H蓙LLHuLMLEHMHUH}*EH}]EEfDEEuH}H‹uH}4D;e~H]LeH]UHHd$H}HuHUHMH(HEHEHMHUHuH}IH]UHHd$H}H}Hh螬HUHuxHWHcHUu)HUHH=ߠjmHH5Hz{H}2HEHtT}H]UHHH-sH@H=H]UHHd$H]LeLmLuH}uH0īHELhHEL`Mt訩I$HLiLHc]HqHELpHEL`MtiM,$L iLHAH]LeLmLuH]UHHd$H}HpHEHUHu]wHUHcHUuH}Hu[H}u]zH}HEHt{H]UHHd$H}Hp藪HEHUHuvHUHcHUuH}HuH}DH}+yH}-HEHtO{H]UHH$HLLH}HuHUHH}t)LmLeMtǧLHlgLShHEH}tHUHuuHTHcHUu?HEHUHEHBHEH}uH}uH}HEHxHEHpHhH(vuHSHcH u%H}uHuH}HEHP`pxyfxH HtE{ {HEHLLH]UHH$HH}HzH5_EHuH}HUAHHHmHHjkAHHHzmHHjuH)sHx%HH]UHHd$H]LeLmLuL}H}HuUH@蜧HELxHEIƋ]HEL`MtvI$ILeLLAH]LeLmLuL}H]UHHd$H}HHEH{r[t t"t8JHuH}EE;HuH}EE HuH} EEH]UHHd$H}HwHEH}HEEEH]UHHd$H]LeLmLuH}H0'HEHEHELhHEL`MtI$HcLHHq9HELpHEL`Mt轣M,$LacLHAEH]LeLmLuH]UHHd$H]H}HuH _HEH}HzuH}(}w+H}HHHHUH}5H]H]UHHd$H]LeLmLuH}H0ǤHEH+EHELhHEL`Mt虢I$H=bLHHq֢HELpHEL`MtZM,$LaLHAEH]LeLmLuH]UHHd$H}HpHEHUHuMpHuNHcHUH}= HnH} H}H}H} H}Hu0H}HpH}RwHPhH^H}fNH}V>H}F.HH}'HqH}HEHt sH]UHHd$H}HǡofHEHxcrr HEHxzHEHxfDHEHxHEHxvuHEHxHEHxVu}HEHxH]UHHd$H]H}uH HEHxHuHc]HcEHq7HH-HH9vڞHEHxH]H]UHHd$H}H臠DHEHxSHEHxvuHEHxH]UHHd$H]LeLmLuH}uH0HEHx;EuHEL`HELhMtI]H]LHHqHELpHELhMt裝MeLG]LHA$H}`[H]LeLmLuH]UHHd$H}HGHEHH]UHHd$H}HuHUH HEH}$HELpHELhMt›MeLf[LHA$H}oEE}mH]LeLmLuH]UHHd$H]LeLmLuH}H@GHEHtHuH}RHEL`HELhMtI]HZLHHq>HELpHELhMtšMeLfZLHA$H}o*EEH]LeLmLuH]UHHd$H]LeLmLuH}H8GHEHtHuH}RHEL`HELhMtI]HYLHHq>HELpHELhMt™MeLfYLHA$H}oEEHj+_(}mH]LeLmLuH]UHHd$H]LeLmLuH}H@GHEHtHuH}RHEL`HELhMtI]HXLHHq>HELpHELhMt˜MeLfXLHA$H}o*EEH]LeLmLuH]UHHd$H}HuHSHEHHH}tttH=*_]sEH}xr4tt(HuH}HuH}HcuH}HEH0UH}H]UHHd$H}H臙HEH+tH}HuH}H}HcHEHEH]UHHd$H]H}HuH HEHsttdtqzHuH}uH}H}1HHHOHUH}]H}H5(_KH}H5(_9H}H5(_'H}H5 )_H}HH]H]UHHd$H}uHEEH]UHH$HLLH}HuHUH贗H}t)LmLeMt藕LHVHkEBHkUPHHtWHXL`LhLpLxH]UHH$HL L(L0L8H}HuH HEHEHDžHHDžhHUHx/RHW0HcHpnEHEHxSEE$DLAH}HEHhH`H}H`HpH_HxHhHH}HuH} HEHxNE}uuHUHHH}HEHxNOH`+H}"HEHtDQH8L@LHLPLXH]UHH$HLLLLH}؉uHUH8HEHEHDžHDžHDž(HxH8KH)HcH0" E @(L\lp BR}  H5_H}HEfHEH@HxLE}t}uHH}HEH(HuH _H(脻H(H}HH(ĹHuHT _H(HH(uH}@H(脹HuH_H(H(H}H=HEH@HxK$HH$HHc$1uH$H(9H(H(H}HrHEH@HxJ$HH(HHc$tH(H(H(4H(H}H9HEH@HxzK$HH(HHc$0tH(H(8H(H(H}HqHEH@HxLH HH$HH sH$H(H(5H(H}H:HEH@HxkM}HEH$fEfD$H(苴H(H}HH(H}H.H(H}HjHH}HfH(H}HH(H}H9H5 _H}H iH5 _H}HPHCH5 _H}HEkH(H}HdH(H}脶HEHtH@Ht3}tH5w _H}H"EHuH}H H5 _H}HWH(H}HH(H}HHH}H_H5 _H}HFH5 _H}HHuH}HHEH@LxAHEH@L`MtwM,$L6DLAH(ѴHuH _H(UH(H}HHEH@HxFE}uH(sH4 _HuH}H$HHHHc$KpHHSHHHH _H HHH(H(H}HHH}H=H(葳HuHi _H(H(H}HH(UHuHM _H(ٴH(H}HeHEH@HxtEH5+ _H}HHEH@HxGEH(ϲEH~HH _H(?H(H}H+tHEH@HxHEHdEH(賰H(H _HԳHH}H HEH@HxH}HmH_(߽ H H(įH(HI _HUHH}HAHEH@HpH}HHuH}HvHH}HN}t>HH}H HH}HHH}HHDHHH(H}H}H0HtEHLLLLH]UHH$0H0L8L@LHLPH}H^tHEHUH`@HHcHXHEH@H@HxCÉ=v"r]H5_H}HHw7fEE} E Hc]HcEH)qrHH-HH9vq]HEHpH}H_ H]HtH[HH-HH9vrq]HEH@H@LxDuH]HEH@H@L`MtqM,$L0HDLAHcEHkqPqHcuHqBqH}ĿLeHcEHH9vpHc]HH}XIDHEHc]HqpHH-HH9vp}EfEEHEEvepEDdAADvGpAHUHB HEEvpEfDdfAAăvoEHUHpB ;]~`HuH}HH;}HEHpH}HHH57_H}HH@H}PHXHtoBH0L8L@LHLPH]UHH$HLLLLH}HpHEHEHDžxHUHu=H9HcHUHEPHxH}HxH}ӬH}uHUH}H5._HEH@H@L`HEH@H@LhMt%nI]H-LHEH}2HE2HuH}ټH}uH`H %HLLLLH]UHHd$H}HuUH}mHEHUHu9HHcHUE+7CO[gsH}H5{_ƨH}H5_豨H}H5_蜨H}H5_臨H}H5_rH}H5_]{H}H5_HfH}H5_3QH}H5_<H}H5_ 'H}H5_H}H5 _ߧH}H5_ʧH}H5*_赧H}H55_蠧H}H5H_苧H}H5[_vH}H5n_aH}H5y_LmH}H5_:[H}H5_(IH}H5_7H}H5_%uH}V@HUH}H5_ :H}_HEHt;H]UHHd$H]H}HuH,jHEHUHur6HHcHUu.H}HUH5V_H}mH]H;\9H}賥HEHt:H]H]UHHd$H]LeLmLuL}H}HuH@oiHEHx8EHcuH}=}XH}輷HHHڵIHELp]HEL`MtgM,$L&LLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@hHEHx6EuH}m}w]H}HHH IEAHEHXHEL`Mt4fM,$L%HDLAH]LeLmLuL}H]UHHd$H}HgHEHx6@@H}EEH]UHHd$H}uHgErRt tt1AHEHx5E3HEHxY5fEEEHEHx_6EEEH]UHH$@HHLPLXH}HuHfHEHEHDžhHUHx3H0HcHpH}HޢH}uEH]HtH[HH-HH9vdd})EE܃E܊E؈ELmHcEHH9v%dLceLH}fC|e r=LmHcEHH9vcLceLH}]fC|esELmHcEHH9vcLceLH}CDedHHdHHcd^]HdHhfHhHhH}H5^藢LmHcEHH9vcLceLH}vfC|e't,}uH}H5g^H}H5e^DELmHcEHH9vbLceLH}CteH}E:EuHUH}H5^ǡEԈEHUHuH}諡;]~}uHuH}H^耡H}H5^>HuH}\3Hh谟H}觟H}螟HpHt4HHLPLXH]UHH$@HHLPLXH}HuHHcHEHEHDžhHUHxx/H HcHp;H}uH}HBEH]HtH[HH-HH9v`}EE܃E܊E؈ELmHcEHH9v`LceLH}CD%,v ,ELmHcEHH9vO`LceLH}ϮCD%dHHdHHcdYHdHhHh脼HhH}H5M^8ZEH}H5G^DELmHcUHH9v_LceLH}Ct%H}E:EuHUH}H5^蹞EԈEHUHuH}蝞;]~c}uHuH}H^rH}H5^0HuH}N0Hh袜H}虜H}萜HpHt1HHLPLXH]UHHd$H}HuHxS`HEHUHu,H HcHUu/H} HuH ^H}蔝HuH}'/H}ٛHEHt0H]UHHd$H]LeLmLuL}H}HuH8_HEHtH@HyH]HtH[HH-HH9v}]AHELpH]HH}HEL`Mt*]M,$LHLDAH]LeLmLuL}H]UHH$HLLLLH}HH^LmLeMt\I$H>LHEEL}LuLeMt`\I$ILLLALuH]LeMt*\M,$LHLA}tiHUAHHHU#HHjAHHH'#HHx t E"EH^r EEEHLLLLH]UHH$HLLLLH}HuHUHMLEHE؋EH`\LmLeMtZI$HuLHEЋEȉEEL}LuLeMtZI$IL2LLALuH]LeMt[ZM,$LHLAHUAHHH!HHUAHHHc!HHtHE8tSHuH=j uLeLmMtYI]HDLILmLeMttYI$HLIH]LeMtHYM,$LHAI)qYLLq{YLuLmMtYMeLLHA$LeLmMtXI]H}LHLuLmMtXMeLQLA$H)qXHHuH}! HE8t HEHuH}UHE8tHuH}UHE8t.UH,^r HEHuH}U_HE8tQHuH=}j uLeLmMtWI]HjLILmLeMtWI$H>LIH]LeMtnWM,$LHAI)qWLLqWLuLmMt-WMeLLHA$LeLmMtVI]HLHLuLmMtVMeLwLA$H)qWHHuH}HLLLLH]UHH$HLLLLH}HuHUH &XHDžHUHxf$HHcHp~H}u H}@7HUHH=jgHEHQk@EHQk@.HQk@EHQk@,HXH#HHcHEL5jH]ALmMt/UM}LDHLAHHc]Hq\UHH-HH9vT]H}H pHtm}H}'&2&H})HPkE܈BHuPkE؈BHHt'%HMHpHtl'HLLLLH]UHH$pHxH}HUHEHEHUHu8"H`HcHUHEHxH5^ouE8HEHxH5^ouEHEHxH5^hEH}HEHxgHEHxH5^ou=H}HHEHxHuNnH} EHEH@x,:tH} HEHxgHuH}#HEHxHumH}I HEH@x,[txH}- HEHxmHHH-HH9vR]H} HEHx]fH} ]HHH=vAR]}u5@u@@HEHx}#fEf%fu uH}1HuH}$HuH}DH}HEHxH5P^muPHEHxH5^mu6HEHxH5^muHEHxH5^muHEHx"H}HEHxH5^cmuH} HEHxr"}"H}ԎH}ˎHEHt#HxH]UHH$pH}HRHEHDžpHUHuHHcHUHEHxdHEHxHukDH} HEH@x,.uqH} HEHxBdHEHxH^HEHEHxHpkHpHEHxH}HёtHuH}HEHx=cH}$ H};!HpZH}QHEHts"H]UHH$HLLLLH}HhPHEHDž8HDžPHUH`+HSHcHXHEHxH5J^juHEHxH5^juHHEH@@,<,5,,t1,t_,b,#,6,, <HEHxHPDiHPH}d H}HEHxyh}HEH@@$,tHEHxmٝLLHEHx5HEHxmݝ@@HEHx96wHEHxmH^(H^(߽@H@HEHx70HEHxnHEH$fEfD$HEHxP6H}gHEHxHugiH}?HEH@@,ttuHEHx`HEHxHPgHPHuH}֋H}<+tHEHtH@H=|!HEHxHuH}Q HEHx mHuH} HEHxHu gbH}_HEH@@,ttuHEHx_HEHxHPfHPHuH}H}<+tHEHxHuH8H8H}5XHEHxHPLfHPH5~^5tHEHx aHEHxHPfHPH5^5tHEHxwHEHxHPeHPH5^A5tHEHx 6HEHxHEHxHPcHPH}q H}KH}HEHx xHEH@x,]uslHEHx^HEHxHPdHPH}H}AHEH@x,]tHEHx,]H}HEHxH}HEHxH}DH}HEH@x,)uHEHxH}/H}HEHx\}HEHxH5^]H}SHEHx!H}HEHxH5x^duH} HEHxHEH@x,>xHEHxH}^HEHx HH=mj!HEH HEHmHcH@HEHxHu_LeLmMtGI]HJLEHEHxu.HEH@IHELp]HEL`MtTGM,$LLLALuILmMtGI]HLLH}H@HtH}~HEHxH5^\SH8ǦHP蛄H}蒄HXHtHLLLLH]UHH$pH}HAHHDžpHEHUHu|HHcHUuvH}HA^HxHEH@HxHpaHpHEH@^HEHxHH}ȇHuHEH@HxS[HprH}iHEHtH]UHHd$H]LeLmH}H(;GHEHx^HUBHEHx]EHEHxuaHEL`HELhMtDI]HLHHEHx9^HcHEHcpHEHxAHiEH]LeLmH]UHHd$H}HuHsFHEHtH@HH}%CHH})H}~BH}H]UHHd$H}HuHFH}}H}~EH}-#HEHxIHEHxHu-H]UHHd$H}uHE}}-}~%HEHxuHEHx]}}0}~%HEHxuHEHx)"HEHxHEHxuB*H]UHHd$H]LeLmLuL}H}HuH8DH]HtH[HH-HH9vBHEHx)HEHtH@HH]HtH[HkqBHH-HH9vYBAHELpH]HH}躴HEL`MtBM,$LHLDAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH8CH]HtH[HH-HH9vAHEHx(HEHtH@HyH]HtH[HH-HH9vDAAHELpH]HH}赏HEL`Mt@M,$LHLDAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@BH]HtH[HH-HH9vu@؉E}EuHEHx}PHELxDuH]HH}赎HEL`Mt?M,$LHDLAH]LeLmLuL}H]UHHd$H}HuHUHAHHHHULjHuH}-H]UHHd$H}HuHUH ?AH^HH}H%LEH HUHuH}H]UHHd$H}HuH@HEH HuH}芸H]UHHd$H]LeLmLuH}HuUH8@}tHEHEEt tHuH}QHuH=dj uLeLmMt>I]HLHLuLmMt=MeLLA$IIq/>LuLmMt=I]H_LLLeLmMt=I]H3LHHuH}0HqrHPHH=jHH5H H]LeLmLuH]UHH$pHpLxH}HuH>HE@P%u4LeMtjHHEH6H8u&HMH6HHHHH HMHWHH=HHHEHEL`(Mt)8I$HH]HUH~WH;tHEH@(HUHP8HEHEHSWL8AIHH]LeH]UHHd$H]H}HuH3HE@%=t HEf@HHEXHcHq1H?q1HH=v1HEfXHUHEf@f%f BHUfBHUHEHH HHE@ HUBH]H]UHHd$H]LeLmLuL}H}H82EL}LuLeMt0I$ILcLLAEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H8S2EL}LuLeMt20I$ILLLAEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H81fEL}LuLeMt/I$ILALLAEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H831fEL}LuLeMt/I$ILLLAEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H80EL}LuLeMt.I$IL LLAEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H80EL}LuLeMt-I$ILLLAEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H8/HEL}LuLeMt^-I$ILLLAHEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HH.H|^EL}LuLeMt,I$ILkLLAEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HHS.H^HHEL}LuLeMt(,I$ILLLAEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HH-}L}Lu LeMt+I$IL2LLAmH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H8#-}L}LuLeMt+I$ILLLAmH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@,HEHEHcuH}S}}H}ϤHHHIHc]Hkq*HH-HH9v>*AH]LeMt*M,$LHDLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HX+L}Lu LeMt)I$IL'LLAH}OEEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H8+L}LuLeMt(I$ILLLAEEEH]LeLmLuL}H]UHHd$H}H*HEHKEEr]ttt-t:GH}AHHE`H}HHEMH}[HcHE;H}iHE,H^HH=FjIHH5HGHEH]UHHd$H]LeLmLuL}H}fuH8)fEffE É=v'f]L}LuLeMtU'I$ILLLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@(EEEH]HcEII)q'Ev&UB#D}}L}LuLeMty&I$ILLLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHH(EEEH]HcEII)qF&Ev%UB#D}}L}LuLeMt%I$ILJLLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHH?'EEEH]HcEI I)qv%E v)%UB#D} }L}Lu LeMt$I$ILzLLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuUHPl&Hc]Hq$HHHH9v_$HE؋E؃}EDEEHUHcEfBfEf]fE É=v$f]LuLmLeMt#M<$LdLLAE;E~xH]LeLmLuL}H]UHHd$H]LeLmH}؉uUH`E%HEHHa}t }EmH߾^(zwmzwEE}uEEH]H`HEH$fEfD$HHcuHc}AHHwHEH0H.0uHHH-HH9v"]HcEHq"HcUH9|!HEH0HEtHuEE}u }u?H]H_HEH$fEfD$HHc}Hq8"AHHovEz}u!HcuHq!H}HxHcuHq!H}HxHc]Hq!HH-HH9v\!]ԃ}SE;E|ILmMeHc]Hqp!HHH9v!HI}oA|0t.HEHHH8vo; tH}HHxHEH0HE@sHHq HH-HH9v ]ԃ}}LmMeHc]Hq HHH9vI HI}nA|+tHcuHqd H}HdwEԉE3@Hc]Hq9 HH-HH9v]ȃ}LuLXLmMtI]H覿LL`HXH}:>HE؃x0tHEH0H}>HE7HEH0H}>HEHx8uHEH@8H@HEHEHMHUH}AHX@=H}7=H`HtVH8L@LHLPH]UHHd$H]LeLmLuH}HuH0HEHwH]LuLeMtM,$LcLHA`HEHH}AHH]LeLmLuH]UHHd$H}HGHEx01HEHP(HEHc@0HqH|t H}H]UHH$PHXL`LhH}HuHHEHDžpHUHuH+HcHxH}H;HEHcX0HqHH-HH9vi}EEEHEHP(HcEHHHEHEHx8uxHE؃xtiHEH@8HUH@H;BtQHEHxuDHELhMtMeLcLHx贻HxH}DHEH0H}:H}uAHEH8uHEH0H}H^;HEH0H}HU;HE؃x}HEHHXHɏ^H`HE؋@xHHpHHcxHpHpCHpnXHpHhHq^HpHXH}H=;]~4HpK9H}B9HxHtaHXL`LhH]UHHd$H]LeLmLuL}H}HuH@HEHSEHc]LuLeMtM,$LlLHAHEH@IƋ]L}LeMtI$IL.LLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HH#}L}Lu LeMtI$IL袹LLAmH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HHH^EL}LuLeMtjI$IL LLAEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H8}L}LuLeMtI$ILrLLAmH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HHcH^HHEL}LuLeMt8I$ILٷLLAEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuUHHEt L}LuLeMtoM,$LLLAuH}2F}wUH}GHHHEIEAH]LeMtM,$L襶HDLAdH}H5x^35RH}H5&^!5@H}H54^5.H}H5b^4H}H4HRH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H83EL}LuLeMtI$IL賵LLAEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H8fEL}LuLeMtI$IL!LLAEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H8EL}LuLeMtI$IL萴LLAEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H8HEL}LuLeMt^I$ILLLAHEH]LeLmLuL}H]UHH$HLLLH}HuHhHEHUHu'HOHcHx)H`H HHcHEzLuLeLmMtPI]HLL`HEHtH@Ht/HuH}#E܃}}E܃vEE~HHt^HH*HRHcHuH}6,HHt H}f0HxHtEHLLLH]UHHd$H}H'H]UHHd$H]LeLmLuL}H}HuH@L}LuLeMtI$ILsLLAuH}@}wUH}BHHH/@IEAH]LeMtaM,$LHDLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuUHHEr[ttCOL}LuLeMtM,$L_LLAEE:H}E,H:^HH=ĭj迳HH5HHcuH};?}KHEHHH8>Iދ]L}LeMtM,$L路LLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@HEHEHcuH}cb}xHc]HkqHH-HH9vlAHEHHH8aIH]LeMtM,$LHLDAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH@HEHEHcuH}sa}xHc]HkqHH-HH9v|AHEHHH8`IH]LeMt,M,$LЭHLDAH]LeLmLuL}H]UHH$@H@LHLPLXL`H}@uHHEHEHUHuHHcHxW}u\HEHpHEHhL}LuH]LeMt4M,$LجHLLHhLpA H}?LmH]HtL#L萬LA$uLeH]HtL+L`LA3@LmLeMtM4$L.@LALmH]Ht]L#LLA$uLmH]Ht-L#LҫLA$袽H})H})HxHtH@LHLPLXL`H]UHH$`HhLpLxLuH}HHEHUHuιHHcHULeLmMtCI]HL*3<EsEvdr`tDJ8-@LeLmMt\I]HLLeLmMt3I]HשLuLeLmMtI]H訩LyHgHUHC Hw1LuLeLmMtI]H.LL`H}Y'H}EuHH}EHc]HkqHH-HH9v0HH}8fDLeLmMtI]HxLrr)LeLmMtI]HCLHM H}LeLmMt[I]HLuLeLmMt,I]HЧLLeLmMtI]H觧LLeLmMtI]HtLHH|9Hm*H^HO H=v^CH}S%HEHtuHhLpLxLuH]UHH$HLLLLH}uH@fD} Dž EHELxDHHEL`MtM,$L:HDLAHc]HcH)qHH-HH9vh]}[HLLLLH]UHHd$H]H}ЉuHUHMDEDMH8HEHUЋ@0;B4tHEHcX4HkqH q HH-HH9vHEЉX4HEHcX4Hk@qHHH9vHHEHx(HEHcp4HEHc@0H)qHk@qHEHP(HEHc@0HH<HEHP(HEHc@0HH<HuG#HEHH(HEHc@0HUTHEHH(HEHc@0HHUHTHEHH(HEHc@0HUTHEHP(HEHc@0HDHEHH(HEHc@0HU؈T HEHP(HEHc@0HHD0}uHEHP(HEHc@0HD$%H}HEHP(HEHc@0HD$HEHcX0HqBHH-HH9vHEЉX0H]H]UHHd$H}HHEHP(HEHc@0HqHHHEHEx$t HE@$H]UHHd$H]H}@uH /HEx0t,Hd^HH=^jYHH5HWHEHP(HEHc@0Hq%HpHhHA\^HpHXH}Hf ;]~4ǙHpH}HxHt1HXL`LhH]UHHd$H]LeLmLuL}H}HuUH@HE HkuH}HEIDuH]LeMtI$IL!HDLAH]LeLmLuL}H]UHHd$H}@uH#}uHE HH}H]UHHd$H}H(HEHHEH$fEfD$H}H]UHHd$H}EH HEH1EH}H]UHHd$H}HuH3HEHHuH}H]UHHd$H}EH HEHEH}H]UHHd$H}HuHxHEHUHuHrHcHUHuH}H}H5b^5HtH} HuH}辭H}H5b^HtH}HuH}臭H}H5b^HtH} OHuH}SH}H5b^HtH}^H}NHuH} H}cHEHt腗H]UHHd$H]LeLmLuL}H}HuHH/H}}]H}~THEHEEL}LuLeMtM,$L荃LLAH}}1H}~%H}cfEfEuH}UH}}.H}~"H}&EEuH}H}HuH}H]LeLmLuL}H]UHHd$H}HuHHEHtH@HH}HuH}H} sH]UHH$pH}uHUHzHDžxHUHu轐HnHcHUmH} EEEEvEr#UHuHxAHxH}A}}H}H)dHxHEHtڔH]UHHd$H]LeLmLuL}H}HuH@H]HtH[HH-HH9vu؉E}~NH}EEL}LuLeMtM,$L踀LLAH} uH}M}KD}H]HH}mIH]LeMtM,$LJHLDAH]LeLmLuL}H]UHHd$H]H}HuH OHEHH]HtH[HH-HH9v4]uH}uHuH}XH]H]UHHd$H]H}HuH HEHnH]HtH[HH-HH9v褿]uH}HuH}H]H]UHH$ H0L8L@LHH}HuHHDžpHUHuTH|kHcHUHEff=df-yf-Pf-xf-f-f-af-f-f-f-f-v,f-f-v"f-fH}H}荜HLuLmMtMeL}LHA$HH}nlLeLmMtҽI]Hv}Ll(VH}g<$LeLmMt落I]H4}L H}譞`LeLmMtQI]H|L`0H}F߽xLxLeLmMtI]H|LL8HuHp蘜LpLeLmMt轼I]Ha|LLpIH}LuLmMt脼MeL(|L@A$H} Hp9HEHt[H0L8L@LHH]UHHd$H}uHHEHxuHHEHEH]UHHd$H}uH贽HEHxudH@HEHEH]UHHd$H}uHtHEHxu$H@HEHEH]UHHd$H]LeH}uH0,HE@;Et*HEHcXHqfHH-HH9v ;]}7EE쐋EEHEHxuHEH}B;]~HEHxu[HED`Hc]HqHH-HH9v臺D9}gDeEEEEHHEHEHHEH@HEH@HEHxHUu;]~HUEBH]LeH]UHHd$H}uHUHHEHxupHUHPH]UHHd$H}uHUH耻HEHxu0HUHH]UHHd$H}uHUH@HEHxuHUHPH]UHH$HLL H}HuHH}t)LmLeMt˸LHpxLShHEH}tHUHuHeHcHUuNHEHH=iqHUHBHEH}uH}uH}HEHHEHpHpH0kHdHcH(u%H}uHuH}HEHP`e[H(Ht:HEHLL H]UHHd$H]LeLmH}HuH(gH})LeLmMtJI]HvLH}HEHxqH}HZqH}uH}uH}HEHPpH]LeLmH]UHHd$H}H跸HEHVH]UHHd$H}@uH胸}uHEHxH5HEHxH5VqH]UHHd$H]H}HuUH8EHEHcXHqbHH-HH9v]DHcEHc]Hq&HHH-HH9vƵ]؀}uHEHxuKHHEHEHxu2H@HEHEH;E1Hc]Hq诵HH-HH9vR]EHEH;E|1Hc]HqrHH-HH9v]E؉EE;EEEH]H]UHHd$H]H}HuHUMHH蘶EHEHcXHq޴HH-HH9v聴]HcEHc]Hq覴HHH-HH9vF]HEHxuHE}u HEHHE HEH@HEHEH;E}1Hc]Hq3HH-HH9vֳ]EHEH;E|1Hc]HqHH-HH9v虳]EЉEE;EEEH]H]UHHd$H}HuHUHMDEH0EHUHuH}؈AEԃ}}9}uHEHxuHUHPHEHxuHUHH]UHHd$H]H}HuHUHMH0致HEHcXHqԲHH-HH9vwH}HEHcXHq虲HH-HH9vLHN|#HUHHH9vDuH]LeMtצM,$L{fHDLAFxH}=aHpHtyHHLPLXL`LhH]UHH$`H`H}HuHUHBHDžxHEHUHu}tHRHcHU!H}uNHuH}H]HuHxHxHH8HHUHB 3HuHxHxḤH8THUHB HEHx tTHEHpHDžhHhH{kHPIHH=2iiHH5H{uHEH@ HPHtHRHEH@ HpHuH5H}~pvHxH}HEHtwH`H]UHH$HLLH}HuHUHMHpH}t)LmLeMtSLHcLShHEH}t HUHu~rHPHcHxu`HEH}H]HuHuH5HUH}cHEH}uH}uH}HEH3uHxHpH`H qHPHcHu%H}uHuH}HEHP`t`vtHHtwwHEHLLH]UHH$HLLH}HuUHMHH}t)LmLeMt褢LHIbLShHEH}tHUHupHNHcHxuTHEH}Ha[HcuHUH}HEH}uH}uH}HEHsHxHpH`H 8pH`NHcHu%H}uHuH}HEHP`2st(sHHtvuHEHLLH]UHH$HLLH}HuHUH$H}t)LmLeMtLH`LShHEH}t0HUHu2oHZMHcHUHEH}HYHUHEHB HEH@ HPHtHRHEH@ HpHuH5zH}yHEH}uH}uH}HEHqHEHpHhH(lnHLHcH u%H}uHuH}HEHP`fqr\qH Ht;ttHEHLLH]UHH$HLLH}HuHUHMHPH}t)LmLeMt3LH^LShHEH}t7HUHu^mHKHcHxHEHuH}\HUHB(HEHx(u1HuH}\ÁHEHx(]HH}HwHEH}uH}uH}HEHoHxHpH`H lHJHcHu%H}uHuH}HEHP`oqoHHt`r;rHEHLLH]UHHd$H]LeLmH}HuH(臟H})LeLmMtjI]H]LHEHx(uHEHx([HEHx([H}HnWH}uH}uH}HEHPpH]LeLmH]UHHd$H}HuUH EHdkH@HH=xiH_HH5HlEH]UHHd$H}HuUHP}v(EvZEH߼H4H}H}uH]UHHd$H]LeLmLuL}H}H8ӝHEH@IHELpHEL`Mt觛I$ILH[LLAEHEHPHcEHEHcX HEHc@H)q輛HH-HH9v_HEX HE@HUEBHE}@-H]LeLmLuL}H]UHHd$H]H}HӜHEHPHEHc@<uHEHU@;B|dHEHcXHqHH-HH9v萚HEXHEHPHEHc@<uHEHU@;BtH}4H]H]UHHd$H]H}HxHEHUHuIhHqFHcHUHEHPHEHc@4H}PHUHEHp0HEHx0"HEHcXHqߙHH-HH9v肙HEXH}bjH}4HEHtVlH]H]UHHd$H}HHEHPHEHc@0 rEEH]UHHd$H}H跚HEHPHEHc@0 rr rEEH]UHHd$H}HWHEHPHEHc@Art rEEH]UHHd$H}HHEHuH}uEEEH]UHHd$H]H}@uH 诙E<0,0, v,,v5,u,vMl]H0qҗHH=v肗]H]H7q讗HH=v^]$]HWq芗HH=v:]EH]H]UHH$pHpH}HuH֘HDžxHUHueHACHcHUH})tGH}HxHxHEHE HUHP,rHpH}H,H}HHEHPHEHc@4HxHxHEH0H}HEHcXHqHcHUHEHx0H'DH}H}uHE@,HEHPHEHc@.t EtettHE@,EGfHEHPHEHc@<.!,.t ,t$, t Eue:EuEH}HEHPHEHc@+t-tt H}HEHPHEHc@0 rsHxHEHPHEHc@4HpHpHEHp0HxHxHEHE HUH&rHpH}H BH}HEHPHEHc@.t0 r t5tHEHPHEHc@Crt rtrdHEHHHEHc@HUB$HEHcXHqHH-HH9v腏HEXH}eHE@,HE@$`Hp"HxHEHt8bHhH]UHHd$H]H}H(HEHx0H5T-^/HEHcXHqHH-HH9v迎HEXH}EEH}[H}u}t3HEH@0HEHE HUHU$rHpH}H HE@,H]H]UHHd$H]H}HuHHEHUHuB\Hj:HcHUH}HHEHcXHqHH-HH9v諍HEXH}7fDHEHPHEHc@t, t&,t",t4H#rHpH} uH#rHpH} _HEHcXHqfHH-HH9v HEXH}HEHPHEHc@<'uHEHPHEHc@4H}8HUHEH0H}HEHcXHq̌HH-HH9voHEXH}O]H}HEHt>_H]H]UHH$pHxH}HuHHEHUHu,ZHT8HcHUH}HHEHcXHqHH-HH9v蕋HEXH}u{HEHPHEHc@4H}HUHEH0H}HEHcXHqrHH-HH9vHEXH}H}tHEH8Hu҈tEH]E=vŠuH#"\H}yHEHt]HxH]UHHd$H}HxGHEHUHuXH6HcHUHEHx0HbEHEHPHEHc@<#rh,#t3,t^H}HuHUHEHp0HEHx0<3H}HuHUHEHp0HEHx0Ez}u HE@,HE@,ZH}:HEHt\\H]UHHd$H]H}HxHEHUHuYWH5HcHUHEHcXHq/HH-HH9v҈HEXH}H}yu,H}JHEHP0HEHx0H5'^/HE@,-HEp,H}HuHEHx0YH}HEHt<[H]H]UHHd$H]H}HxHEHUHu9VHa4HcHUHEHHHEHc@HUB,HEp,H}2HuHEHx0HEHcXHq·HH-HH9vqHEXH}QXH}#HEHtEZH]H]UHH$HLLH}HuHUHԈH}t)LmLeMt跆LH\FLShHEH}tkHUHuTH 3HcHUHEHUHEHBH(HUHBHE@HE@HE@ HE@(HE@-HEHx0HXHE@$HE@,H}H}vHEH}uH}uH}HEH6WHEHpHhH(SH 2HcH u%H}uHuH}HEHP`VfXVH HtYYHEHLLH]UHHd$H]LeLmLuH}HuH0ӆH})LeLmMt趄I]HZDLH}(HcHELpHEL`MtwM,$LDLHAHEHxH}uH}uH}HEHPpH]LeLmLuH]UHH$`H}@uHHDž`HDžhHUHu%RHM0HcHUHE@,:EuzUH}HhHhHxHDžp HEP,H}H`H`HEHE HpHjrHpH}HTH`HhHEHtVH]UHHd$H}HuH0ӄHEHHEHx0HumuCHEHEHE HEH@0HEHE HUHrHpH}HHH]UHHd$H}HuHCHEH}HH]UHH$pH}HuHUHMHHDžxHUHu8PH`.HcHUu(HUHMHuHx識HxH}-(SHx|HEHtTH]UHH$ H H}HuHFHDž(HUHuOH-HcHUOH^H8HDž0 HEHHHDž@ H^HXHDžP HE@(hHDž`H^HxHDžp H}0EHEH0H@HE@(hHDž`H}xHDžpH}EHEH`H( HrHPHuH(艿H(IHH=miHuDHH5YH#PNQH(袽HEHtRH H]UHH$HH}HuH fDžHEHHEHPHEHc@4H}[=v5HEHcXHq\HH-HH9v~HEXH}H}tHrHpH}LHEHPHEHc@4H} HEHcXHq~HH-HH9vs~HEXH}S=vQ~HcHql~HH-HH9v~} HH}EFDžH}2H}YHH}EH}HH]UHHd$H}HGHEHHEx-uH}HEHPHEHc@<#m,#Z,t5,N,t4,rQ, v7,rI,v,t ,r=,v7H}5H}*H}H}fH}; H}HE@,EEH]UHHd$H]LeLmH}H(K~HELhHEL`Mt/|I$H;LHUHcRH)qh|HUHcZHqV|HH-HH9v{]EH]LeLmH]UHH$pH}HuH}HDžxHUHuIH(HcHUHEx,uGH}HxHxHEHE HUHrHpH}HH}=H}H}HxHxHEHp0HEHx0^HEHPHEHc@<.tHEHp0H}0LHx脸HEHtMH]UHHd$H}H@g|HEHx0HuV}fEfEf}u3HEH@0HEHE HUHrrHpH}HmH]UHHd$H}H{HEHx0Hu6ytHEHx0SyHEHEH]UHHd$H}HuHx{HEHUHuGH&HcHUsHE@,<rW,tQHEx$u2HEp$H}HUHEHp0H}襸HEHp0H}bHEHp0H}OzJH}ѶHEHtKH]UHHd$H}HuHzHEx,tHEHx0HuVctEEEH]UHHd$H]H}HCzHEHcXHEHc@ H)qxHq~xHH-HH9v!x]EH]H]UHHyHH=څHjHvHH5H=iHH=jHHH]UHHd$H}HuHUHMLEH(WyrH]UHH0y;H]UHHyHIuHq0H=Ze0H5ƭH=kH]UHHd$H}HuHxHEH;Ew EHEH;Er EEEH]UHHd$H}HuHSxHEHpHEH8oEEH]UHHd$H]H}HuH0xHEHXHcSXHH9vvHcCXHEHEH@0HEHEH;EtH}HUHuÉ]EH]H]UHH$HLLH}HuHUHMH`wH}t)LmLeMtCuLH4LShHEH}tHUHunCH!HcHxuKHEHUHEHBHUHEHBHEH}uH}uH}HEH8FHxHpH`H BH!HcHu%H}uHuH}HEHP`EeGEHHtHHHEHLLH]UHHd$H]LeLmLuH}HuH0uH})LeLmMtsI]HZ3LHExu HHE@HELpH]HEL`MtasM,$L3HLAHEH@H}H|-H}uH}uH}HEHPpH]LeLmLuH]UHHd$H]LeLmH}H tHEHcX HqsHH-HH9vrHEX HEx tHEHxHuW HEx tHEx 't)LeLmMtErI]H1LH]LeLmH]UHHd$H]H}HsHEx tH_HEHcX Hq,rHH-HH9vqHEX HEx tHEHxHu H]H]UHH$pHxLH}HSsHEHEHUHu?HHcHUuoH}HEL`MtqI$H0HH/HH}HUH5^H}HH}:BH}葮H}舮HEHtCHxLH]UHHd$H}HuHUHOrHEH@0HUHEHHB8HUHEHHEH8t HEHUHHEHx8uHEH@8HUHP0H]UHHd$H}HuHUHqHEHH;EtHEHUH@0HHEHH;EtHEHUH@8HHEHx0uHEHP0HEH@8HB8HEHx8uHEHP8HEH@0HB0HEH@0HEH@8H]UHH$HLH}HhqHDžHDž HxH85=H]HcH0HEL`MtnI$HK.HH -H H 褶H H(HEp HFHH`HHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$IL(H , ^HH5> ^H)?H}H qH0Ht@HLH]UHH$HLLH}HuHUHMHoH}t)LmLeMtlLH,LShHEH}t*HUHu;HFHcHxyHEHEHUHPHEHUHPHEHxHEH@HP(HEH@Hp H}HEH}uH}uH}HEH=HxHpH`H ^:HHcHu%H}uHuH}HEHP`X=>N=HHt-@@HEHLLH]UHHd$H]LeLmLuH}HuH0SmH})LeLmMt6kI]H*LHExu HIHE@HELpH]HEL`MtjM,$L*HLAH}H%H}uH}uH}HEHPpH]LeLmLuH]UHHd$H}HuHUH_lHEH@ HUHEHHB(HUHEHHEH8t HEHUHHEHx(uHEH@(HUHP H]UHHd$H}HuHUHkHEHH;EtHEHUH@ HHEHH;EtHEHUH@(HHEHx uHEHP HEH@(HB(HEHx(uHEHP(HEH@ HB HEH@ HEH@(H]UHHd$H}HuH#kHExtN.DHEH@ xu H=^4HEHx w#HEHx uHEHxHuH]UHHd$H}HuHjHExtjHEH@HEH}uHEHP(HEHp H}fHEHxHuuH}u"HEHx tHExt H}"H]UHHd$H]H}HuHiHEH}H_tPHEHP@HEHp8H}HEHcXHHqhHH-HH9vgHEXHH]H]UHHd$H]H}HuH oiHEH}Ht,Hj^HH=$j*HH5H7HEHP@HEHp8H}HEHcXHHqagHH-HH9vgHEXHHEHU@H;B0.HEH@8HEHEHP@HEHp8H}H}-!H]H]UHHd$H}HuHshHEH@8H;Eu HEHx0tHEHx8tEEEH]UHH$HLL H}HuHgH}t)LmLeMteLH%LShHEH}ttHUHu4H.HcHUHEHE@0dHMHHHH=E;HUHBHMHHHH=DHUHBHEH'HP(HEH HP HH=6iKHUHBPHEH}uH}uH}HEHQ6HEHpHpH02H$HcH(u%H}uHuH}HEHP`575H(Ht88HEHLL H]UHHd$H}Hf"DHEHP@HEHp8HEHx8HEHx8uHEHxYHEHxLH]UHHd$H]LeLmH}HuH(eH})LeLmMtjcI]H#LHE@H}$HEHxHEH@HEHxHEH@HEHxPH}HEH}uH}uH}HEHPpH]LeLmH]UHHd$H}HuHUHMH(dHEHpHEHxE܋EH]UHHd$H]LeLmH}HHKdHEHx8HEHx@0Єu H_HELhHEL`MtbI$H!LHEHx葊HEsHEH@(HEHEHx t HHEHx(t HڽHEH@ Hx(u H载HEH@(Hx u H蠽HEH@ HEHEH@H;Eu HlHEHx u HEH@ H@(H;Eu H?HEHx(u HEH@(H@ H;Eu HHEHx tHEH@(H;Eu HHEH@ HEH}JHEH@HEH}u H}bHHEH}HELhHEL`Mt<`I$HLHEHxʈHEHEH@(HEHEH@HEH}t H#HEH@ HEDHEH@ HEH}uHEH;EuHEH;Eu HӻHEH@HEH}u H}eHHEH}MH]LeLmH]UHHd$H}H'aHEHxPzEH]UHHd$H}H`HEHxPjEH]UHHd$H}HuH `HEHxHDHu;HEH}uHEH@(HEHEHEH]UHH$HLLH}HuUH5`H}t)LmLeMt^LHLShHEH}tHUHuC,Hk HcHUukHEH}HHUEBXHUHHB HUHdHB`HEH}uH}uH}HEH.HEHpHhH(+H HcH u%H}uHuH}HEHP`. 0.H Htj1E1HEHLLH]UHHd$H}HuH ^HEHP`HEHxHuHEH}uHEH@(HEHEHEH]UHHd$H]H}HuHUH0+^HEH}H[HEH}uHHuH}HEH}t1HEHx(HMHUH0HEHEHxHuHEHx HMHUHOHEH]HcSXHH9v[HcsXHEHx0pHEHcPXHEHp0H}HEHxHuDHEH]H]UHH$pHxH}H ]HEHEHUHuH)HpHcHUH}H5]!HEH@HcXXHq [HH-HH9vZ}jEEEHEH@HcU4HRHH}iHUHuH}賙;]~HUHH=ZjUHH5HS*~+H}՗H}̗HEHt,HxH]UHHd$H]H}HuHUHMHH[H]HcSXHH9vYHcCXHEHEH@0HEHEH@0HEHEH;EtHUHuH}'É]܋EH]H]UHHd$H]LeLmH}HuH(ZH})LeLmMtXI]H~LH}H5HEHx0HmH}uH}uH}HEHPpH]LeLmH]UHHd$H}HuHUHMH(KZfhH]UHHd$H}H'ZHEHH]UHHd$H}HuHYHUHEHH]UHHd$H}HuHYHUHEHH]UHHd$H}HYHEH8EEH]Hd$HHH HPHpHHd$;~ DD;~ DDSATHd$AH$HL$HH;|;XD;` | D;`0Hd$A\[Hd$H<$Ht$LL$ LD$HL$HH<$Ht$Hd$SHd$H<$Ht$HT$HL$LD$ LL$(HHL$(HT$ Ht$H|$HD$;$} HD$$HD$ ;D$~ HD$ T$HD$;D$} HD$T$HD$(;D$ ~ HD$(T$ HD$HT$ ;HD$HT$(;~ H0ۈHd$0[Hd$H<$HGH$H@ H$H@H$H@(Hd$SHd$H<$Ht$HT$HL$LD$ LL$(D$8HHD$HT$ )ЉD$<pHD$;D$ ~ HT$D$ HD$;D$} HT$D$HD$(;D$ ~HT$(D$ HD$(;D$HT$(D$HD$HcHD$(HcH)ulHD$;$} HT$$HD$;D$~ HT$D$HD$ ;$}HT$ $SHD$ ;D$BHD$ T$2HD$0HH9~ HT$(; 6H 9} HT$(; |&HT$2P9} HL$ ;|9~HD$ ;~ HHD$T$; HD$(;~`H*D$\D$4^D$0H-H;|8;X3HD$;D$}HD$HD$T$HD$ HD$(T$HD$T$ ;| HD$(;}`H*D$ \D$4^D$0H-H;|8;X3HD$;D$ ~HD$HD$T$ HD$ HD$(T$ HD$$; HD$ ;~]H-*$YD$0XD$4H-H;X 5;X|0HD$;$}HD$$HD$HD$ $HD$(HD$T$;| HD$ ;}aH*D$YD$0XD$4H-H;X 8;X|3HD$;D$~HD$T$HD$HT$ D$HD$(Hd$@[Hd$H<$HGH$H@H$H@ H$H@(Hd$Hd$H<$Hx8H$HPHH  )ʉP Hd$SATAUHAHC>tHߺ> T IcH=@tDHߺ@4 L#LkH߾@ L#LkC H$HCHC(HDŽӠ|DHDŽHDŽ|HǃXH!GHOC$A]A\[Hd$FPHd$Hd$OHd$SHC8ttC<C=Ht C<PtEK[Hd$HHr(HHHd$Hd$HHq(HQ,HHHd$Hd$HH8w(H0V,HJ0HHHd$Hd$HH8w(H0V,HJ0HDB4HHHd$Hd$HH8w(H0V,HJ0HDB4HDJ8HHHd$SATHd$HAH$H要HT$Ht$ HHcHT$`u+HAD`(HHx,H$P HHHHD$`Ht'Hd$hA\[Hd$HHr(HǾHPHd$Hd$HHq(HQ,HǾHPHd$Hd$HH8w(H0V,HJ0HǾHPHd$Hd$HHQ(HHPHd$Hd$HH8W(HJ,HHPHd$Hd$HH8W(HJ,HDB0HHPHd$Hd$HA $DD$DL$HHy,HHHQ(DHHPHd$(UHHd$HAuMDEDMuHHy,HuHHQ(DHHPH]UHHDUD]H8H,DGDODW D_HQ(HHPH]UHHd$H]LeHAD]]} De(u0MDEDMD]]}DeuHHy,HuHHQ(DHHPH]LeH]SATAUHd$HAAH $Ha~HT$Ht$ }HHcHT$`u/HADh(HHx,H$PƇDHHPeH}HD$`HtHd$pA]A\[SHd$HH$HT$Ht$  HHcHT$`zHHHPHSHHtH48H H54HH$1?HSHHtH4:H H=4H^?H|HD$`HtHd$p[SATAUHAL+E}&L胸t |HAUAE;HAUA]A\[SATAUH$HIH$HD$hHT$Ht$  HHcHT$`L+A](H1|v'A:wIHkQH4H1&KLHt>:r6:w.LH)HkQH4H1مH<$uA],IH1跅H4$H=']bH~(Iu,1H|$h荅HT$hLH4$1|AE,D$xHD$pAE0$HDŽ$AE4$HDŽ$AE8$HDŽ$AE<$HDŽ$AE@$HDŽ$AED$HDŽ$AEH$HDŽ$HT$pH4$H|$h{SHt$hLz H|$hOzHGzHD$`HthH$A]A\[HHǂH@(HHFHH,HPHAHPHfHPHHP ǀǀ@(HUԅHH7ԅHǀƀƀHd$HHǾ7Hd$SATAUAVAWHd$HD$H$H|$HHX$=ɚ;~H|$Hc$HH~ )H $D$| D$|T$H|$oM1IދT$Ml`fD$A;E ~ MMmMuM$gD`MuT$HT$Hʚ;D)9} ʚ;D)ÐgA4H|$<IHu(HcHH?HHÃ2}H|$gAAIEAE$gAE Mu T$Ml`M/LHHHcQHЋ$Q$)Q Hd$ A_A^A]A\[SATAUAVAWIAAI\$Aɚ;~ LIcHH~ )AE|A|DLgAvL;IHu LgAFHLDHTpHDp@ DHDpHA_A^A]A\[SATAUAVAWHd$AHD$H$II]L$Hcɸɚ;HHAE LG$D9~D$HىHD$D$$DHD$t$MLIE1e@ $DH)D$H9}$D)‰HD$T$L$ыt$L`IŋT$gZfDM,AD$IŅw$D9wLHd$ A_A^A]A\[SATAUAVAWHd$AHD$H$II]L$HcHɚ;HHAE LG$D9~D$HىHD$D$$DHD$t$MLIE1sD $DH)T$H9}$D)‰HD$T$L$t$L5IŋD$r'T$gZDM,AD$HIŃw$D9wLHd$ A_A^A]A\[SATAUAVAWHd$T$AEEIID$H$tLL纐HDhDp DxT$P$@&H$HHH(H$HHd$A_A^A]A\[SATAUAVAWHd$T$AEEIID$H$tLSL纐THDhDp DxT$P$@&H$HHH(H$HHd$A_A^A]A\[SATAUAVAWHG1E1H0DH9u!HDBR AHDBR AAHI(HuH8H9u'HDBR AHDBR AAHI(HuʅHËDAI{7A9Aʚ;HcIcHHAEALI>LHcBHJHHHAE9| AFAF+AVDAFLHP Iv0L6AF&ANAV LIAFAFAF AF%Mv(M^LfI>LHcBHJHHHAE9| AFAF.AVDAFLHP Iv0LL6AF&ANAV LIAFAFAF AF%Mv(M[A_A^A]A\[SATAUAVAWHd$H<$T$F HD$Ht$HHT$щHD$ E1HD$XHD$PD)9} HT$BD)HT$BgF, HD$HcP IcH)HcH9} HD$P D)HD$HcPIcH)HcH9} HT$BD)ÅD$ANJD$t.HD$HDHHD$Hp0EL$ H<$Lt$AV8,HD$HDHHD$Hp0EL$ H<$Lt$AV0L|$ HT$BAHD$D;`Hd$0A_A^A]A\[SATAUAVAWHd$H<$T$V HD$Ht$HHT$щHD$ E1@HD$XHT$BD)9} HT$BD)HD$PgF,"HT$B D)9} HT$B D)HD$PD)9} HT$BD)ÅD$ANJD$t.HD$HDHHD$Hp0EL$ H<$Lt$AV8,HD$HDHHD$Hp0EL$ H<$Lt$AV0L|$ HT$BAHD$D;`Hd$0A_A^A]A\[SATAUAVAWHd$IIH$DD$$gD,LD;hw ;HwH8u LhLJ$9wD!ɋBHH9v]A&u LF7A%tLLAG%$A;Gv $AGDA+G}1AGLL0~E;o $A;G vD$t L$A_ D$tEo A$t5IcG AAG)AGA)@IHDHډƄ Ƅ "Ƅ 2|ǃDC<ƃRƃHƃIƃJƃKfǃLfǃNƃPƃQH@[SATAUAVAWHd$HG(HHD$@H$@IA$$u.LLl$AUu D$.HD$HHD$@H$H,$AH$u.LLt$AVu D$HD$HHD$@H$H,$AH$u.LLt$AVu D$HD$HHD$@H$H,$A$H$u.LLt$AVu D$ZHD$HHD$@H$H,$AD$4H$u.LLt$AVu D$HD$HHD$@H$H,$AD$4H$u.LLt$AVu D$HD$HHD$@H$H,$AD$0H$u.LLt$AVu D$HD$HHD$@H$H,$H\$HLS0HD$$u4HLd$AT$u D$0HD$HHD$HD$@H$H,$HD$S8HD$AHxt H߾;QH؃x4v x0vx8 H߾!/HcS8HkIcH9t H߾ HuC8k`H߾HCHHHHT$ IAG8AE7HD$ X$u3LLt$AVu D$&HD$HHD$HD$@H$H,$HD$HD$ HD$$u3LLt$AVu D$HD$HHD$HD$@H$H,$HT$AHD$DHT$ BDHD$ P $u0LLt$AVuD$fHD$HHD$HD$@H$H,$HD$HD$ PHD$HD$ `A9I@HT$HD$H $JD$D$Hd$0A_A^A]A\[SATAUAVAWHd$IID$(HHD$0@HD$8I$xu L?D$8u.LLl$0AUu $|HD$0HHD$0@HD$8Hl$8HT$@HD$8u.LLl$0AUu $/HD$0HHD$0@HD$8Hl$8HT$@HD$8u.LLl$0AUu $HD$0HHD$0@HD$8Hl$8IAIHcHHPHcD$@H9u |~ L MAExgA\$;HD$HD$D$8u.LLt$0AVu $GHD$0L8HD$0@HD$8Hl$8AHT$ ID$8u.LLt$0AVu $HD$0L8HD$0@HD$8Hl$8AHT$IIHD$(AE8|,HD$HD$HD$(T$ ;tHD$(`D$9ߋT$ LT$HD$(IՀT$HD$(PT$HD$(PD$9D$8u-LH\$0Su $HD$0L8HD$0@HD$8Hl$8AHD$ID$AD$8u-LH\$0Su $HD$0L8HD$0@HD$8Hl$8AHT$ID$AD$8u*LH\$0Su$wHD$0L8HD$0@HD$8Hl$8AHT$IT$AT$AI@AHD$0L8T$8HD$0P$$Hd$PA_A^A]A\[SATAUAVAWHd$H<$HHP(HIEuEuH<$AUuE0pI]EuAAHEuH<$AUuE0AI]EuAHAHALH DrE~DH<$H$HP(R ADHd$A_A^A]A\[Hd$6Hd$SATAUAVAWH$H$(HHP(HH$0BH$$uDH$(L$0AT$u Ƅ$ H$0HH$0@H$H$H$8H$uDH$(L$0AT$u Ƅ$ MH$0HH$0@H$H$H$@HH$8H$@H$8$uJH$(H$0Su Ƅ$ H$0HH$@H$0@H$H$H$@AH$@$E1E1A$uJH$(H$0Su Ƅ$ EH$0HH$@H$0@H$H$DH$@ H$@DAAqH$8A $8D9}H$()gA]AfDA$uKH$(L$0AVu Ƅ$ lH$0HH$@H$0@H$H$DH$@ LH$@D9zL)$8Dt!ADH$(HH$HDH$(HH$HE|A|DH$(NH$HH8uH$(H$HHH$HH8H`H$HHHxHt$B$8J$8tH$( H$0H$@H$QƄ$ $ H$PA_A^A]A\[SATAUAVAWHd$H|$HHP(HHT$BH$$u1H|$Ld$AT$u D$HD$HHD$@H$H,$HT$ H$u1H|$Ld$AT$u D$HD$HHD$@H$H,$H\$(HHT$ HD$(Hl$ $$u5H|$Lt$AVu D$9HD$HHD$(HD$@H$H,$HD$(HD$0HD$(T$0AՋT$0HD$0D$0|T$0H|$ T$0HD$HРuH|$0L$0HT$HʠT$0HD$LРE$u5H|$Lt$AVu D$]HD$HHD$(HD$@H$H,$HT$(AHD$($u5H|$Lt$AVu D$HD$HHD$(HD$@H$H,$HD$(AHD$(R$u5H|$Lt$AVu D$HD$HHD$(HD$@H$H,$HD$(AHD$(H8fE$W?HT$H|1f?|Hl$ AEtHl$ @D$ D$ tH|$ 4HT$HD$(H $JD$D$Hd$@A_A^A]A\[SATAUAVAWHd$IIF(HIAEH$$uLAUuE0I]AEH$H,$IA$I$uLAUuE0MeAEH$H,$A$It L Y$uLAUuE0kMeAEH$H,$A$I$uLAUuE05MeAEH$H,$LHLDLH1$QADHd$A_A^A]A\[UHHd$H]LeHHAA;J{F{I{Fv{upƀHSISJSKSK fLS K fNIt>JIHǾx!Ar;Ju{Fu{Xu {Xu{H]LeH]UH r.>Au)~du#~ou~bu~euF ƇPQH]SATAUAVAWHd$H|$HHP(HHT$(BHD$ D$ u2H|$Ld$(AT$u D$HD$(HHD$(@HD$ Hl$ HD$0HD$ u2H|$Ld$(AT$u D$fHD$(HHD$(@HD$ Hl$ IAHD$0IHl$0D$0|AD$0~Dl$0E1EvbDAĻD$ u1H|$Lt$(AVu D$HD$(L8HD$(@HD$ Hl$ AIA9wDH)T$0HT$=|F-tt8DD$0DHH|$ 36DD$0DHH|$ HD$H|$EHL$(L9T$ QD$0~t$0H|$HD$HP(R D$D$Hd$@A_A^A]A\[SATAUAVAWHd$HW(HHD$HT$(BHD$H<$HHHD$0L1HD$M~D$u4H<$H\$(Su D$ HD$(HHD$HD$(@HD$Hl$HD$HD$HD$D$u4H<$H\$(Su D$ HD$(HHD$HD$(@HD$Hl$HD$HT$HD$Hl$D$H$uHD$0DH$HcHD$0D4D$D9sDl$gAU H<$H$HHQIIH$AWD$AG EoMIG MgHD$0LHD$0ǀ1E11M1HD$0EoMgHiIDHT$HD$(HD$HT$(BHD$0D$uZH<$Lt$(AVu D$ BHD$(HHD$HD$(@HD$#DHD$A$IHD$Hl$A9vD$A9dMtOH$HXu H$LX H$HX HH:uL:MgDAW )‰HD$HD$0HǀH$|Ctt4LDD$DH<$~LDD$DH<$SHL$(HD$HT$QD$~t$H<$H$HP(R D$ D$ Hd$@A_A^A]A\[SATAUAVAWHd$IIE(L8IEt$EuLAT$u $M<$Et$AAIJDI@ M<$Et$EuLAT$u $M<$Et$AAIuEuLAT$u $M<$Et$AAItDžuI@ M<$Et$"Ix t'IP LuI@ LꉚLL:Dr$$Hd$A_A^A]A\[SATAUAVAWHd$IIG(HIAFH$$u LAVu D$IAFH$H,$AH$uLAVuD$[IAFH$H,$IA$IAutDL6LLL!$QD$D$Hd$A_A^A]A\[SATHd$HDu7HxuHuE1 H|uE1-Qf6h0MtM*gr}HE1H0@0<E1H0@E1H߲@0E1xH߲@cE1jVH߾=>HAuE19ǃA$ǃAHE1HE1HE1HE1HHHHc0iE1p\HHP(uKE1UDBH5u6E1@/Hs H8tHHc A HuE1ǃDHd$A\[SATHd$HuHTuE0_HHcHHc@HH9u ǃHpHHC(P(uE0HPPADHd$A\[SATAUAVAWAADÉIz@} A|~ ApIcHPHHHcH9tHHHH9uA;IcHPHHHcH9tHHHH9uAADVttt4BADŽ$A(LuE0A$A DA_A^A]A\[HHLJLJLJ@@@ HǀSH1HCHHHHHdHPHHPH~HP(ǀH5\Ht0DŽ|HHP0HH[Hd$LHG@\ 9OЅt/Hu s2u* s% HtuHu I@(A4| HcI0HcA4 EHd$Hd$HuHQ()| HcH0 EHd$SATAUAVHd$HH؁x4 x0~Hߺ*jtH߾N{8 ~S8H߹ cǃ`ǃdLC8gD`EhAALP~ @ ~~ H߾`A;E} AE`dA;E } AE dI`E9ǃhLC8gDhEAAAD$$C0A|$`AD$C4A|$ dAD$ C0A|$`AD$(C4A|$ dAD$,AD$0ID$PI`E9ed{4TlH؋x;P8| t H@  H@ Hd$A^A]A\[SATAUAVAWHd$IAxIH$BAH$B AH$@4H$@8H$@<H$P$H$P@H$@DH$B HcJ HHAօuH$Dp H$DpHALJALJAx~~AxLɿA`A0AAdA4AALJAxAEAfDADIǀH$PH$P4H$P H$P8H$H4P8H$PAADHHCPHA{ tC$HǃXC$dHd$A\[SHH{t HHCPPHH@@$[Hd$H1H@ƀHd$Hd$H1H@ƀHd$HcHcH7HHHgFHcHcHHHHH)Hd$HHcH1ۤHd$Hd$HHHcH誡Hd$SATAUAVAWHd$H<$IE!EHcHH4$HcHIgA@|1AAAH$L H$IIDLH{EHd$A_A^A]A\[Hd$HH!HHGHd$Hd$Hd$Hd$HcHH$Hd$Hd$HHHcHd$Hd$HcHPH$Hd$Hd$HHHc]Hd$Hd$2qHd$HHHxSu Rt0Hz<uz8u z=uzht0HHփ~u+LB`Axu Hzu~  Ax uz t0Ëh;Q$u;u;t0ðSATAUAVHd$H{$tS$H߾訷H؋P@H@DH9/{0C`{4 CdǃhH؋P@H@DH9,{0C`{4CdǃhSH؋P@H@DH9,{0C`{4CdǃhC0C`C4CdǃhHC8rAAh@}FHLcBHcLIIMc`MchMM9HcR HHIcdIH9~N$H`D9LC8gDpE|`ADALPx$C0`AE(LP x$C4dxAE,I`E9C=<r-,t,r%,v,vChChChC8Ch{Ut ClChClHt dCpCpHd$A^A]A\[SATHd$HHCILeLpHcA=|IĀA=|I$ HpHI$ Hd$A\[SATHd$HLHH.H؋P`@h‰9t H߾G?AD$HAD$ID$ ID$(H؀xUtxPu C\C]C^{U{Qt H߾0߳{htC\C]C^HCxH{xtC]{WtC^C\{\tHvH8ID$ H؀x^ux]tHUH8ID$({Qu.A|$t H#H H@s^HHtH߾t H1H:BHHz uxPt@@0H4Z{Qu H@0#dHHCP0HHPHHx|xPrHx tet C8g@C8HSBHڋlHRB HC@{^t HC@ HC@AD$Hd$A\[SATHd$HLA|$t{$ A9H$0A_A^A]A\[SATAUAVAWHd$IAA։HD$MeA]IEHD$u6H|$HD$HP(Ru $?HD$HP(L"HT$HB(XA$HT$ID$=}@u2I}IEH@(Pu $IEH@(L IEH@(XA$HT$ID$=tD$u HD$D$HT$DD$ AAA UD$A9}LHT$HxuH|$vf{HT$H@IcƺH)DAAMeA]E} Eu$$Hd$ A_A^A]A\[SATAUAVAWHd$IAAIDHD$D$D9~,LL$DDuH$Ef EnD$A)IcDHcD$gB!ƉMA}*LDDu H$uEf EnAIcD ډHD$T$A;Ef EnD$~I~wz1H$!LHt$DH!DH$$Hd$A_A^A]A\[SATHd$HLIcD$HH?HHHHB AD$HHPu0Ex|DAD 9DAT$0uAD$Hd$A\[UHH$@H@LHLPLXL`HuHUIMADtA|$0uLu E%A|$LmIE(HHEIE(@EAD$HpE|$ID$ HEID$(HEAÅHEHEHcUHEHHEUIԈHEUIHEA}CDpH}1Cu EcEHpD}A}HhgIcH‹pHEUHEHhhthA)NjMHU AH HhDhHMDpH}PAE} EEHpD}EE9~0DDpH}Nu EnEHpD}E)Iclj‹pIcƺljЉ!ƉHEDH<M; }DHjEADuEA(t(UAHEUDAƋEDtHED0UA2HxfA}CDpH}1fu EEHpD}A}HhgIcH‹pHEUHEHhhthA)NjMHU AH HhDhHMDpH}sAE} EEHpD}DHUAUHxE9~0DDpH}Zu EzEHpD}E)Iclj‹pIcƺljЉ!ƉHEDHHM; }DHvEADuxHHED4EHxHxx@"~Hx^@A}CDpH}1nu EEHpD}A}HhgIcH‹pHEUHEHhhthA)NjMHU AH HhDhHMDpH}{AE} EEHpD}DHUAtDEHxE9~0DDpH}fu EEHpD}E)EuHxHxx@E9IE(HUHIU(EBpAD$E|$HEID$ HEID$(Al$0EEH@LHLPLXL`H]SH@HCHHHHHPHD8HD`|[Hx~ B04HlHH9~H@ B0 H@HB0B(B,Hd$LJHd$SATHd$HLI|$ t,{TtH( tH] ID$ HID$ǃHd$A\[SATAUAVAWH$pH4$HHD$H|$HlHT$ q,HL$(HʋB0HT$0D$09HD$8Hl$8DHD$8HD$(P(Dt$A9WHD$@Hl$@HD$@HT$HD$(Hx8蔵HD$(Hp8H|$ HD$HQu$D$8HT$(B,D$@HT$(B(1HD$@1HD$pHT$xAEHD$HHD$HT$HHD$LЀA0uAGHD$@Hp8H|$ HD$ HQu!D$PHT$@B,T$XHD$@P(1HD$8pD$X9HD$@@(T$PD$H9gH\$ H؋;lsHHD$8HHPHD$8D$8Hd$pA_A^A]A\[SATAUAVAWHd$H4$HHD$HlHD$#HHu 1HD$ H؋99uHcH9~HHHT$ HD$(H‹B8HT$0D$0HD$@HD$@HD$ x0cHD$(HD$ P HD$ H t$@HD$HH|$(E0LL$(IAP@HD$HHD$(HcT$H9}HD$ @ HD$8-HT$ B HcJ HHHD$8D$8u HD$ @ HD$8HD$(H T$@HDHD$XT$@H$HHD$`D$8gD`EHD$PHD$PT$PHD$HLLI$u1H$ L; Hx!tLHH$ H$(B8H$0$0R H$HDH$HH$ x0 H$(Hc$H9}0H$ @ H$P$PH$8Ƅ$`SH$ B HcJ HHH$P$PuH$ @ H$P$PH$8Ƅ$`H$(H$ P H$8H$(H$ Q ‰‹$HH$HȈ$8H$(E0L$(IAP@H$hH$ HcP HH$hƄ$XJ$HH$HЈ$8H$(E01L$(IAP@H$hƄ$XH$HH$0Hc$HHkH$0H$ H@PH$@H$ H$@PH$H$@PH$H$@P H$H$@PH$H$@PH$H$(H $HHDH$x$HH$HH$$PgD`EfH$pH$p$pH$hHH$$Xt$puH$H$Hc$pH$hHDH$$`t+Hc$PHHc$pH9uH$H$Hc$pH$hHDH$H$H$$H$$H$H$H$$H$$H$H$H$$H$$H$1H$H$ PH$$H$(H$(HH$蚦$($9vBH$H$H$H$H$H$H$0DhE|$$ k$$$)AE|b$HcIcHЋ$HcHHAEIcźƉЉD9yIcźƉЉAa$HcIcH)Ћ$HcHHAE~+IcźƉЉD9IcźƉЉAIcHADt$H$0DhE|$ $ k$$$)AE|b$HcIcHЋ$HcHHAEIcźƉЉD9yIcźƉЉAa$HcIcH)Ћ$HcHHAE~+IcźƉЉD9IcźƉЉAIcHADt$ H$0Dh E|$@$ g4$$g $)AE|b$HcIcHЋ$HcHHAEIcźƉЉD9yIcźƉЉAa$HcIcH)Ћ$HcHHAE~+IcźƉЉD9IcźƉЉAIcHADt$@H$0DhE |$$$ g4$$)$)$gAE|b$HcIcHЋ$HcHHAEIcźƉЉD9yIcźƉЉAa$HcIcH)Ћ$HcHHAE~+IcźƉЉD9IcźƉЉAIcHADt$$H$0DhE|$$ g4$$g $)AE|b$HcIcHЋ$HcHHAEIcźƉЉD9yIcźƉЉAa$HcIcH)Ћ$HcHHAE~+IcźƉЉD9IcźƉЉAIcHADt$HD$H$H$ H$(H$xЋ$H$$H$$H$$H$$H$$H$H$H$H$H$ P$H$$(9OH$ HcB$HH$$pA9H$ `$H$09H$(HclH9}H$ H$$H$@A_A^A]A\[SATAUAVAWHd$I@LID$Ld$LHHbHHxHPH$HǀHD$LHT$B8AE{A@AEo HD$tgGlmAw A ǝAwA踝EH|$HL$LQAAR(DH$HʈI`E9HH$HBHiH$HPH$HH$HP gH|$ HD$HHQ@H$HD8H |HH$HPHH$HPH$H@ Hd$A_A^A]A\[SATAUAVAWHd$II$A$hH$AT$8LID$HChHAD$8HH\$HHPpI$HD$MAG8AEfDHT$HcB HcR$HIchHHAŋ$gPALIGIIcHIHD$HPhL$Hc$HPIcHHIHD$HPpL$HD$`A9oHd$ A_A^A]A\[SATAUAVAWHd$HHD$hHD$HH$IAG8AEPA@AH$HcB HcR$HIchHHAHD$HPhDLHD$HPpDHA<8AIA>A<9AIA>A<:AIE+IEw9A^A]A\[SATAUAVAWHd$H4$HT$H8HD$GhHD$ G`HD$H8x8t HD$(1HD$(gAHD$0D$0HHD$@fDHD$@t$T$@HD$H<|HD$@LHD$8D$ HT$HfDHD$HL$@H$H4ʋT$HL4L$@HT$L,HT$Hr0T$HLD$8gPHD$8D$8HT$BLD$@T$09Hd$`A_A^A]A\[SATAUAVAWHd$H4$HT$H8HV0HHD$HV0HBHD$Ht$ HHP0HBHD$0G`HD$(H8x8tAE1IcH)D$IcH)D$IcH)D$0gDiE*Ld$ E\$LAL4$KALt$KtqHHcPHcHHH?HHHT$0D$0CT$0gBA$nHHcP Hc@HHH?HHHT$0D$0C T$0gBAD$6HHcPHc@HHH?HHHT$0D$0CD$0gPAT$HH|$ LH|$ AD$D9DHd$@A_A^A]A\[SATAUAVAWHd$H$H|$ HH8Lz01HD$1HD$(1HD$1HD$VDfF HD$0D^DVAA9gA@DD$0E9gAT$IAIELJ sDD9|`gAsD)DHtDH|$AgF,DLl$(AAgEuDLt$AgF,DLl$9A9uA9TT$HcHcD$(HHcL$HHHL$ HQxH:4$7T$HcHcD$HHct$HHHQxHz4$7T$HcHcD$HHct$HHHQxHr $Hd$@A_A^A]A\[SATAUAVAWIADLID$A@@@ ?@@HHLoDDILMLgDcE|+AfDADHI4DLE9LZtA_A^A]A\[UHH$HLLLLHHHLHGtHHcHHHcHcHHAHcHAHcIcHHAHcHAHcIcHHAgxvA@ALMnxMmEG,.DDA9~9ADE)ADDDADE)ADDDDA9}6ADE)ADDDADE)ADDD=1A9|ADE)ADDDADE)ADDDLMnxMmEG,.DDA9~1ADE)EkDDDAE)EkDDDlA9}1AE)EkDDDADE)EkDDD6A9|AE)EkDDDADE)EkDDDLMnxMmEG,.DDA9~)ADE)DDDAE)DDD_A9})AE)DDDADE)DDD1A9|AE)DDDADE)DADDEB9OD91gz|4AfDAD;|HcDH 2D9HLLLLH]UHH$pHxLLLLHHHHLHEHHE HDHDŽgA@HHHLcLG,,ELMexM$$EG4,DE)AELDDEELLMexMd$EG$,DE)EkELDDELLMexMd$EG$,DE)DADLLcIIELLcMkIĐELLcII@DHHDLA@ADDAAD؉޺f;}DƀHHEA EDLHEDDE9$HxLLLLH]SATAUAVAWH$PL8I@0H$H$H$Aϋ$gr$DLD$ADAԉIAHD$H$H$HT$LL$DDLAt$D$AEAL$AAHcIcHH$LIcHcHHDLH4P@AfHI||A|H$A_A^A]A\[SATAUAVAWHd$H4$HT$H8HB0HD$H|$ G`HD$gAHD$(D$(HD$0DHD$0T$0H$HЋT$0HD$HHD$8D$gD`AAHT$@CACAHT$@HD$H DHDHL,PfA}uDDt$@H|$ AEHT$8HD$8EwT$0D$(9:Hd$PA_A^A]A\[SATAUAVAWH$@Ht$(HT$0H8HB0HD$@G`HD$8HpHD$HHT$PHBPHD$XHWxHHD$`HWxHBHD$hH|$pHHPxHBHD$xgQH$$H$DH$$HD$(L<Ћ$HD$0HH$HD$PLh@HD$PxHtFT$8HHkI׋T$8HH$H$T$8HBHk IHD$P@HH$HD$P@H$D$D$D$ D$D$D$D$D$ D$8H$H$H$L$Hc$Hk IIcEHc$HHHH?HHH$IcEHcT$HHHH?HHHD$IcEHcT$HHHH?HHHD$Hc$HT$X$HcD$HT$XD$HcD$HT$XD$A$AGD$AGD$Hc$HT$H$HcD$HT$HD$HcD$HT$HD$H!HL$@HJ!HR!HHPH$f8u$D$D$‹$H|$p1H$ADH$DHT$`)$DHT$h)D$DHT$x)D$D$$$$T$$H$$D$ $D$Dd$ $Dd$D$\$D$D$H$B\$D$D$D$Dd$\$Dd$D$\$T$ D$H$B\$D$D$D$ Dd$\$Hc$HkIHc$H$$MD$AED$AED$ AE$$9H$A_A^A]A\[SHH8HǺH@HCP1HcʉHcHHcHމ|ع-HcщHcHHcHމʃt0|Ϲ0 HcщHcHHcHމ~[SH8HC HGxs(xC8[HSATAUAVAWIM8I_0A~VtAFV@t HIGHIGAG8A~Vu H IG HIGHIGEftA}L9!A~L: A~VuLAF`HHk AI@uDLIFPIG@I@DhgIPuL AGHA8t-AADH<þ+gA|AG8A_A^A]A\[H8@8SATAUHXHCIL8HI$HID$ID$@ID$P{ht H߾0HߺHCID$0A@AHߺHCPIL$0DHA|AD$8{^tZDkXA}Hߺ9~A~Hߺ:cDH߹HCPID$ El$( ID$ {VtCV{Vu'C`HPHk H߾HCPID$@H`A]A\[SATHd$HL(HߺHCID$ HߺHCID$(HߺHCID$0HߺHCID$8@ifх}MD$ ‰A4MD$ ‰A4iעх}MD$(‰A4MD$(‰A4i.IMD$0AigDIt$8D=MHd$A\[H(@HWdPPUHHd$H]LeLmLuL}HuHUMLM]IM(AHt/HUITI@EOLA11>cAAGHgAE;gPvEgPHU)D9DBHUIDHEAvHUIDHE IG@HEAGHHMHEHuLAWHED LD)`PxHuHEH]LeLmLuL}H]UHHd$H]LeHM̋EH(A$I ЋPA$H]LeH]SATAUAVAWHd$L(HpH$I@ HD$(I@(HD$I@0HD$I@8HD$0LAKHD$HFAN HF!HHHT$ W`AfAAIHLd$(EALl$0A\Ll$C\څ}AAډLd$E$$C@$$$$@$$IIHAEA>Q$8AA~@6$@AA$HAA$P$8X$H$p$8\$H$h$@X$P$0$@\$P$݄$HG\($0$݄$ݜ$$$`$pX$0$8$p\$0$P$hX$`$@$h\$`$HAE@A~ $XAA~`$A@A$xAAm$$xX$$($x\$$$XX$$$X\$$ $X$($$\$($݄$H\(ݜ$$$h$X$ $݄$HN\(ݜ$$$$ $݄$H!\($$݄$ݜ$$$p$$݄$H\($$݄$ݜ$$$`\$$x$h\$x$$pX$$X$8X$$8\$$@X$xC@$@\$x$HX$$H\$@$PX$X$P\$XIIHE#HAfADH$H ‹$L$HX@ $pH\@ $hH@X@0$0H@\@0$݄$H\($0$݄$ݜ$$$`$pX$0$8$p\$0$P$hX$`$@$h\$`$HH@(X@$(H@(\@$H@X@8$H@\@8$ $X$($$\$($݄$H~\(ݜ$$$h$X$ $݄$HH\(ݜ$$$$ $݄$H\($$݄$ݜ$$$p$$݄$H\($$݄$ݜ$$$`\$$x$h\$x$$pX$$X$8X$H-B%AA$$8\$H-%AAD$$@X$xH-%AAD$$@\$xH-%AAD$$HX$H-%AAD$$H\$H-X%AAD$$PX$XH-)%AAD$$P\$XH-%AAD$H@A^H$A_A^A]A\[HcH}&HcADHc H)HHH HcSATAUAVAWH$ H$DH$HpHH$H$L~XIA fAAuH$IIH$x lx@ufx`u`uWuNuEH$HcIcHHHAE4$Et$ Et$@Et$`H$IIH$AщH$$H$H$H@AW@щH$H$AщH$$!;%Ë$gH$$$H$$$)‰H$H$AщH$H$AщH$H$H`AW`щH$H$H AW щH$$>GË$u.4Ë$y!Ë$!H$$Ë$Ë$Ë$RgH$$$g< A$$$)‰׾ AD$`$$g< qAD$ $$)‰׾ PAD$@H$IIAIAADH$H ‹$L,LxuVxuPx uJxuDxu>xu8A<$%H$D<E}E}E}E}I A$H$A|$!;cA|$RgH$$$H$$$)‰H$AD$H$AD$H$AD$ H$AD$H$$>Ë$u.Ë$yË$!gH$$yË$fË$SË$R@gH$$$g< 8%H$AE$$)‰׾%H$AE$$g< %H$AE$$)‰׾%H$AEI AfH$A_A^A]A\[SATAUAVAWHd$HL$@DHD$HHpHHD$PHT$hL~XIA AAt AtAuHD$hIICHD$hx uIx`uCu:u1HD$hHcIcHHAEuEu HD$hIIHD$hA‰HT$XHD$hA‰É߾WHT$`HD$hA‰É߾7-HD$`HD$hP`AG`‰É߾F HD$`HD$hP AG ‰É߾sHD$`T$XD$`g< AE|$XD$`)Ǿ AE HD$hIIAIAADHT$@H ‹T$HL4Lxu>x u8xu2xu,A<$o%HT$PD<E>E~I A$HT$XA|$A|$7A|$ FA|$sgHT$`D$XT$`g<%HT$PA|$XD$`)Ǿ%HT$PAFI AHd$pA_A^A]A\[SATAUIDHpLHFX8bI$!%B(A]A\[SATHd$HA{$dtS$H߾LEt H@0lHHP HHC(PHHHǃ t C$fC$eHd$A\[SATAUHd$HIAՃ{$etS$H߾H؋ ;P4r H߾|H{t&HHP BHHP@4B HHCHxt HHPH؋P4 )D9DB$DHLHHP$ $Hd$A]A\[SATAUAVAWIIAA|$$ftAT$$LL ;P4rL|91I|$t'LHP BLHP@4B LID$I$xtLI$PA$,AE9v LLLI$Pu1 LD DA_A^A]A\[Hd$> Hd$SATHd$HAHC>tHߺ> IcH=tDHߺL#HCH߾L#C H^HCHC(HCXHD`|HDŽӀHDŽӠ|HǃH\HHC@C$dHd$A\[Hd$'Hd$Hd$v'Hd$øHL`Ht@|H׀Ht@HנHt@|SATAUHC$etfu-H؋ ;P4s H߾DHHP{$gS$H߾HH0gD`AAH{t!HSDjHHP0B HHCH1HPu H߾lE9wHHPHxqHHPHHC(P H%A]A\[SATAUAVHd$HAIAH؃ u@$etftgtS$H߾ DDHHP(HLp0fAAuHLIEuHd$A^A]A\[SATAUHAAH؃ u@$etftgtS$H߾DDHHHP(A]A\[Hd$HP0Hd$SH{$dtS$H߾&HHP HHC(PHHHP HHC(P [SHHX(HǺH@HC0HC[SATHd$HLc(It$0I|$(-=t H߾&YID$0I$AD$Hd$A\[SATHd$HHC(PAA)E~"Hp0Hx(DD9t H߾&$ft H߾&Hd$A\[SATHd$HIH{(uHߺ81HCHC(HC(HHPHHPHFHP L`(Hd$A\[UHHd$H]LeLmLuL}IIEEA~$dtAV$LM||L 5LH\`H;uP#HHcADHcHp2H ףp= ףHHHH?Hׅ~Et ~H3fHd$A\[UHHd$H]LeLmLuL}IIHMI?u L!II?H޺E11HcAՃ|A| A~ LIHxIcLpIƀH]LeLmLuL}H]SHHL~HWHA HLHHAHL^H7HA HHL3H A[SH{$dtS$H߾&H{XuHߺ1HCHCXCHH߲KHƄƄƄ|HHLJLJƇƇƇH~ƇƇLJƇLJ LJƇƇƇfLJfLJ[SHC<a,t,t,t(,t3,t>WH߾^UH߾OFH߾@7H߾1(H߾"H1 H߾ g[SATHd$H|$@HD$x$dtHD$P$H|$^HD$XPHD$ƀHD$ƀyt%tixHD$ƀHD$@LD$$E1A1HHD$ƀHD$@LD$$E1AR1HoD$$E1AGH@D$$E1ABHHD$ƀHD$@LD$$E1A1HD$$AAHD$$AAHdLHD$ƀHD$@LD$$E1AC1HD$$E1AMHD$$E1AYHD$$E1AKHvHD$ƀHD$@LD$$E1A1HED$$AAHD$$AAHD$$E1AHHT$B8BLHD$@L| ~HD$PLH|$ HD$@LgX|QAfDAD$$DDE1AH)D9H|$ Hd$A\[UHHd$H}u}LUMRMRX!Hk`LЉHD@ DHpxH]HpPHD@DH H$H|(xPHD@DH H$9SHAAɃ:3gF|fщT9CCDCDK H$H11kHH[SATAUAVHd$HDcL{$dtS$H߾Au{PuA A~ AkADgAHHt D;~4A ~ D ǃ k$H1HCHLLDAH{P>DL1ILAE11AILAE1?ILAE1?ILAE1?1ILAA?1IDL1ɺILE1A?ILE1A?]ILE1A?1=IDL1IDLAE1"IDLAE1?IDLAA?IDL1ɺIDLE1A?IHd$A^A]A\[SH@0d=uH#DH;QH@0 ZHctH߾$t HHE-H؃ t@@0HnH@0pHM HHCP0HH[SHHC(H@2HhxuHPu H߾ [SATHd$HfAHH߾AHHd$A\[SATHd$HAHH^DHMHd$A\[SATAUAVAWAIDI\`HuDL5E1AADfHxhu& HPhH@lH`lHhhHLLLLH]SATHd$HLHC(HID$ HC(@AD$(LLHC(IT$ HHS(AD$(BHd$A\[SATAUAVAWHd$HHH|$nD$HEH\$Hڋ4AEHT$L8D$tHD$tEeEeD<uaD$tDHT$L€DHT$L I>u H|$IDHL$HI6H|$'DA9WHd$ A_A^A]A\[SHHCHH>HfDHDpHDŽȐ|H@`[SATAUAVAWHd$@4$HHD$$t"H4 HD$HPHHD$HP HHD$HPHr HD$HPH|$H4AEdHT$L8EnEf$E|A|DH|$3E|A|DH|$3DHD$H|xu'H|$HD$HHDHT$HDxDHT$H|xòDHT$H˜u*H|$HD$HHDHT$HʘDHT$H˜l:DHT$HL8DH|$@mDHT$HLXDH|$@0PHT$D A9HT$BBHD$ J0B4Hd$ A_A^A]A\[SATAUAVAWH$H$@$ I̅||H$3m$ tH$HЀH$H$HРH$H$HuH$3 I<$u$H$H$HHI$M4$E11H$ H$$}=IcHc$HH=~'H$RDAH$$|DEE1$E1VDfDDDAAD9tHcúD9H$ŰAD<uI$ tAAgA]AADH$TH$$|$A9|$AtH$$DA$DAD9tH$0A_A^A]A\[SATHd$HHC(L`(H{(AT$u0I$HAT$SHd$A\[SATAUAVAWIAEwEuI()hIcĺgB!EIc־H)։AW Љr%AID"IAoAuL5uE0HAu'IIAoAuLuE0AA}A_ EwADA_A^A]A\[SHu0C C[SATAUAVAWHd$H<$Ht$HLD$HD$)щHD$D$HD$ D$ }HcD$ H؉HT$ Hl$E1fDAT$ HD$ D$ uA ~H$Hx(߭DD4H<$5uE0rEtH<$Dt$uE0Q1E1ADH"ՄHD$HD$ D$ u9fHD$HD$H<$uE0̋D$ HD$D$ }HcT$ HډHD$ Hl$E1AT$ HD$ D$ uA ~H$Hx(ϬgF,8DHL$DHD$4H<$uE0QH<$Dt$uE081A?~%HD$HD$0H<$uE0ADHd$0A_A^A]A\[SATAUHAH}uE0}HHk{uH%uE0XHgA$Hk{uHuE0+HC(4|D9ADA]A\[UHHd$H]LeLmLuL}HHuHHC(HHEHC(@EHUHHPHUHEHP HUHEHP(HUH] t'HEx0uHEp4H}u EIA`AEEdDM8AEHULDXAEHUHL8HcHEH4DTH}u ExHcHUHDDA9LHA(HUHHA(U؉PHuHEHFHEHF HEHF( t~0u F0F4H`4n0EEH]LeLmLuL}H]SATHd$HLHC(HH$HC(@D$ID$HD$ ID$ HD$ID$(HD$H\$(Hu H߾lHS(H$HHC(T$PHD$ ID$HD$ID$ HD$ID$(Hd$8A\[SATAUAVAWIILA)AE} IcHAE1 AAEuA ~ ԨLD11fDH5TЄE$Eu@E} IcHAE1AAuHcIcH1Ƀ?|~A_A^A]A\[UHHd$H]LeLmLuL}HuHHE tPHEx0u>4gP|#ADADHED D9苗 HEP0HEh0IA`AE|DEdDM8AD$HUL˜AD$HUHLxHcHEH4DHET L#HcHUHDHET A9H]LeLmLuL}H]SATAUH$IHIH!=H|$$.DŽ(=|ADžfDʚ;ATt 9| A|=|޾ʚ;ATt9| 9t A|=|څ{AATCTADʃD$ʋ(ʃD$ʃ(}ʉ(D$f򋴔(D$򃼔(}AAD|$t"D|$ ~ L(胥DD$A|Ǹ!f5gD`AD<t€,HcЀDIcԀDD,€<wƃfЀ<t!Ҁ,HHw11AAD;D$u DdA| |ƃH$0A]A\[SATAUAVAWHd$HHHD$H֣H|$ǣH\$Hڋ4HT$D$fDHT$L8EwEgD<uGDHT$L€I}uH|$IEDHL$HTxIuH|$DD|uKDHT$L I}uH|$3IEDHL$HIuH|$DDD$95Hd$ A_A^A]A\[SHHCHHHfDHDXHD8HDŽȘHDx|[SATAUAVHd$HH؃x4vx0v xL~x8 H߾!詢H؁x4 x0~Hߺ*貢H؋P0@8‰9t H߾Gc{HtSHH߾}{L ~SLH߹ 蒢ǃ(ǃ,LkXCLgD`EzAALP~ @ ~~ H߾ԡ(A;E~( AE(,A;E ~, AE ,I`E9LcXCLgDhEA@AEt$AD$$C0A|$(AD$C4A|$ ,AD$ C0A|$(AD$(C4A|$ ,AD$,AD$0I`E9i,{40Hd$A^A]A\[SATAUAVAWH$HH1Ҿ贠HH$ xu x?qƃ$HT$ CLgHH$ DH$ H$( fH$( H$( ?|ዄ$ 9Cƃ$CLgH|1H$ DH$ $ $ 9H$ H$0 $0 E1AH$ H$8 $8 ~ $8 ~$8 H$ 蝟$8 gXH$ DH$ $ H$ DH$X $X |H$ $X ;PL|DH$ $ ~1Hc$ H$ $X ;DH$ 贞$ 9]H$ @H$H H$ @H$@ H$ DxH$ @ H$P H$ $e$H |L$H @}@$@ $H 9.$@ @}"E|A $P | $P ~DH$ ߝ$H |L$H @}@$@ $H 9.$@ @}"E|A $P | $P ~DH$ s$H u"$@ t8DH$ H!$8 tDH$ %$8 gD`EH$ H$ $ H$ DHLl $H tA}}DH$ 贜$@ $H 9$H H$( @H$( $( A|}EtNDH$ V7$( E;|uIcHHc$P H9tDH$ $( $P AD$( 9s$ A9$H u$@ ?uEu $P tDH$ 誛$8 gX|oH$ fDH$ $ H$ DH$X $X <tDH$ B$X $ 9H$ $$0 D9[H$ $tdH$ PLgZH$ fDH$ $ H| }H$ .{$ 9YH$ PLgZ|FH$ fDH$ $ <uH$ . $ 9H$` A_A^A]A\[SATAUHHHHHc@,Hk$H4LcX|/AfDADTHk`I4DH8D9݋AAAA {L~SLH߹詙CL4LcXCL|)A@ADHk`I DH8D9ǃǃ?ǃǃA]A\[SATAUAVAWHd$H<$H4H$L8AWH$XAW H$\AG4AG8AG<AG@AGDLB HcJ HHAօuEw EwHH$ǀ`H$ǀdH$4~~H$4H<$PH$(H$x0H$XH$,H$x4tH$\H$ǀ`H$4AEADADH$L8AGAG4AG AG8LP4@8AGLsXIAELAETLLH;(u@@ ;,u5AtH&ITAGHITLHcPHLHc(H9u"@ ;,u$HITLHcPHLHc(H9uBHcP HHc,H9u/AtHITAGaHITQLHc(LHcwHHHu)Hc,HcO HHHu$H!IT L'}I`A9At$uLd1Hd$A_A^A]A\[SATHd$HL@t H߾|}C4AD$`AD$dAD$h,AD$lHd$A\[SATAUAVAWIAgDaA9|)gDkAgsEDLLAAE9A_A^A]A\[UHHd$H]LeLmLuL}HuHUHELELMЋEHEIMUHE+HEA,AEd)‰HEUE9vEHEHEHUHHEAMdIUDEHuLIPUHEEAEdEA)E`Lx`uVA,;Pd~JAFLÅ|2AAA,AUdAv0DI|D9A,AEdAEdA;,u-IuHEDHML1IPAEdHEЃA}`mHEЋU;vbM~XAFLÅ|FAAAO HUЋ‹MAG AGDHEHH?HЋHHHHAADHHDDE}AIcHAŋAŋD9IcHcHHAE1IcHA-AŋD9IcHcHHAE1DHD,A?RH9HLLLLH]UHH$HLLLLHHDHEHHW8HNHT@HE!ILHHHHAADHH ‹L$A$HcH-H*HIA$HcH-H*HIA$HcH-H*HIA$HcH-H*HIA$HcH-H*HIA$HcH-H*HIA$HcH-H*HIA$HcH-H*HAH?HЋHHL< AfDADDHYDH_S\XH,-@AA?|H9+HLLLLH]SATHd$H`HCIHLHQI$t ,t ,t6NHbID$HVID$>HHID$HLID$$HID$HbID$8 1l@IDID@|Hd$A\[H4~ @.0HHH9~H8R P H8RHP@@SATAUHALAEH~EtAtJAt#cI}pt H߾kH`IEOI}pu H߾kHIE.I}pu H߾kHIE H߾kkA]A\[SATAUAVAWHd$Ht$HXHD$H|$H0HD$ qHL$(HʋBHT$8D$89HD$@Hl$@HD$@HD$(PDl$A9HD$HHl$HHD$HE1HD$4gDbE(HD$P@HD$PT$PHD$H8HD$xT$HD$9vHD$x@4HD$h HD$x@DHD$hL$HHT$xB@ȉHD$XT$@HD$`HT$xB8ÅHD$pHD$pHT$(D$ ;BwHcD$@HcT$pHHL$xHcQHH9D$h$HD$xPHD$HDHt$(HL DL$XDD$`Ht$xH|$LT$IPHT$xD$h;B4IcHcD$hHHT$(H| HD$xp4D$h)(HD$xP4gJD$h9D$hgDpAHT$(Hz IcIcHHtHNjD9^HT$xB4DHT$(H| 路HT$xB4|.AAHT$(Hr IcIcHHHD$8Hp H|$ HD$ HQuT$PHD$8PT$XHD$8PD$@@D$X9HD$8@T$PD$H9iHD$8@H|$ ~D$@D$@Hd$pA_A^A]A\[SATAUAVAWHd$I@LID$MIH$HH$HtrMwXAGLAEAAAv A~ 7AvA~(EN L0ҾMWAAR(DH$HDpI`E9GL IGPDHH4H$Ht |H$H@pHd$A_A^A]A\[Hd$Hu2@@@@p@u HHP y`Hd$SATAUAVAWHd$II։IM$zfA}s%$MMME LLLI$PA}uWIu LI$PuA}u:A.AE/A}t AAEAEAEAEA;$0vHd$A_A^A]A\[SATAUAVAWHAHߺpHCIIIHIAu]EtLK_II_XAGLAE|6AAK SLIGPDID H`E9A_A^A]A\[HcH}&HcADHc H)HHH HcUHH$`H`LhLpLxL}ILAAH؋PHUH؋@)‰HEH؋PPHUH؋P@)‰HEH؋PPHUH؋P@)‰HEH؋P PHUH؋P @)‰HEEEHE؋UE)‰HEUEHEЋUE)‰HEHcUHcEHHHcEHcUH)HCMȋUg<QAƋ}~ugA< vC}ȾVgA< WCUMgD4 UEHEEEHEUMgD< EgB<8%HU} HU}AHU}TbHU} 0HUD3AƋ}HU};HUDqANjEHEEANjEgB 0Ug< XCUMg gB<8 ]H}_H8˾H`˾H}˾HhHt`H L(H]UHH$HLLL H}EHu聏HEHDž8HUHP[H9HcHHH}Hu˾EEH]HtH[HH-H9v%rEDELmHcUHH9vLceLH}p۾CD%xEfLeHcEHH9vDHc]HH}ھADHHcHUuPHUH}HxxLxDuH]LeMuKpM,$L/HDLAEAHx HEHt-CEHPLXL`LhLpH]UHH$PHPLXL`LhLpH}HuUqHDžxHUHu=HHcHUuPHUH}HxhLxDuH]LeMu;oM,$L.HDLAE@HxHEHtBEHPLXL`LhLpH]UHH$pH}HuHUHMLE运pHDžpHUHuHpSHxHtr@H]UHH$pH}HuHUHM迈oHDžxHUHu];HHcHU}HxʪHu1H\HxQHxUH}HUHx茪Hu1H\HxHxUH}HUB=HxHHEHtj?H]UHH$HLL L(L0H}HuHUmHEHDžHHDžpHUHu+:HSHcHxHp蕩Hu1H \HpHpH}1EHc]HqkHHH9vokH88EEHpHEHPH \HXHcEHqXkH@H@HH@d1H@HH01HHmǾHHH`H \HhHP1ɺHp藬HpHuH}1QLmLeMuOjI$H)L;E~8L}DuLmH]HujL#L)LDLA$ /LuLmH]HuiL#L)LLA$P8;E|fH]LeMuiM,$LJ)HALcIqiLHH9viH]LeMuWiM,$L(HDAH]LeMu,iM,$L(HA;EU:HH즾HpাH}צHxHt;HLL L(L0H]UHH$PHXL`LhLpLxH}HuHU[jHEHUHu6HHcHUuGHUH}Hu-L}LuH]LeMuhM,$L'HLLAr9H}ɥHEHt:HXL`LhLpLxH]UHH$@HHLPLXL`LhH}HuHUHM迸WiHDžxHUHu5HHcHUu_HUH}Hx#HxHpL}LuLmH]HufL#L&LLLHpA$S8Hx觤HEHt9HHLPLXL`LhH]UHH$PHXL`LhLpLxH}HuULLHDAH@H}1H08;E,H@HP옾HxHEHt.HLLL L(H]UHH$`HhLpLxLuH}Huy\HEHUHu(HHcHUu?HUH}HuKLuLeLmMu%ZI]HLL+H}HEHt-HhLpLxLuH]UHH$`HhLpLxLuH}Hu[HEHUHu'HHcHUu?HUH}HukLuLeLmMuEYI]HLL*H}HEHt1,HhLpLxLuH]UHHd$H}HuHUZHEHpH}HU1JH]UHHd$H]LeLmLuH}Hu0ZHEHxuH=tgHUHBHELpHEHXHEL`Mu?XM,$LHLAPHEHpHEHxHU1蛗HEHxtdLeMl$HEHXHtH[HHH9vWHI|$rA|/tHEHpHEHx1HY[,H]LeLmLuH]UHH$`HhLpLxLuL}H}IYHEHUHu%HHcHUHEHxt3HEL`HELhMuVI]HLu*HK[H=hHH5H'HEL`HELhMuVI]H:LHcHqVHH-H9v{VAHELpH]HEL`Mu:VM,$LHLDAHuHEHxmHEL`HELhMuUI]HLHcHq0VHH-H9vUHELpHELhMuUMeLBLA$'H}gHEHt(HhLpLxLuL}H]UHH$HLH}HuHUHMLEH}9H}0VHUHpA#HiHcHhHuH}:EԅHPH"HHcHqHc]HqTHH-H9vvT|FEELeȋE=vQTEI LMLEHUHuH};]%H}hHHt 'x%H}ϑH}ƑHhHt&HLH]UHH$HLH}HuHUHMLEH}詑H}蠑fUHUHp!HHcHhHuH}誔EԅHPHg!HHcHqHc]Hq>SHH-H9vR|FEELeȋE=vREI LMLEHUHuH};]$H}gHHt}%#H}?H}6HhHtU%HLH]UHHd$H} T11ҾH=IHHUHBH]UHHd$H}HuSHH=R1HUHB H]UHH$@HHH}HuUHM迸tSHEHUHXHHcHPHEHuH=VHEHuIHEHxEsHEH@Hx1W}YHEHx0GHEHxuE-H}HEH@HE@HEHE fDHEHEt/tuHEHx uEHuH}zHEHx HHuҐHEHEH}1{HuHEH)H}1H}t0H}uHþH蕞HHUHEH)H}HMHUؾH=zGeHEHEHx Hus HEH@(HEHEHEHEЀ8/u HEHEЀ8/tEtt,v4HEHxHEH0蒍HEHpH}|HEHx1h}uIH}I>HEHEHEH@HEHEH@H;Eu HEH@H}I H}tHEHx tHEH@ Hxu H}vHPHt!HHH]UHHd$H}HuxEPHEHUHuHHcHUu!H}1mHMHuH}WH}ًHEHt H]UHHd$H}HuxOHEHUHuH#HcHUu!H}1݋HMHuH}H}IHEHtk H]UHHd$H}HuHUHM OH}HupHMHuH}ZH]UHH$@H@LHLPLXL`H}HuUNHEHDžpHUHuHHcHx}tH}H5[跊H}H5"[襊HEHhL}LuLpH]HuLL#L LLLHhA$HpH}JH}H5[6uE H}H5[6uEEE;Hp菉H}膉HxHtEH@LHLPLXL`H]UHH$0H8L@LHLPLXH}HuU MHDžpHDžxHUHuDHlHcHUHcEHhHhHHhD1HhHp辒01Hp>HpH`L}LuLxH]HuSJL#L LLLH`A$HxuqKEHpHxHEHtEH8L@LHLPLXH]UHHd$H]LeLmLuL}H}HuHUHMHKHEH}HYHu0LuLeLmMu^II]H LL6LuH]L}LeMu*IM,$LLHLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuUMHJE:Eu0LuLeLmMuHI]HALL6DuH]L}LeMuiHM,$L LHDAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuUMHIE;Eu0LuLeLmMuGI]HLL6DuH]L}LeMuGM,$LMLHDAH]LeLmLuL}H]UHHd$H}HuHUQIHEHUHuHHcHUu HuH}wHMHuH}1dH}愾HEHtH]UHHd$H]LeLmLuL}H}HuU@H}t;L}LuHQ[LeMuFM,$L/HLLA9LuL}H6[LeMuPFM,$LHLLAH]LeLmLuL}H]UHH$PHPLXL`LhLpH}HuUGHEHUHuH:HcHUHcEHxHxHHx?1HxH}菍01H}L}LuH]LeMu8EM,$LHLLAH}HEHt HPLXL`LhLpH]UHHd$H}HuFH}1 H]UHHd$H}FH[H=hHH5HH]UHHd$H]LeLmH}Hu()FH}~'LeLmMuDI]HLHEHx^H}13H}tH}tH}HEHPpH]LeLmH]UHHd$H}EHEHxH]UHHd$H}HuHUaEHEHUHuHHcHUunHEHpHUHHEHxtOHEH@HxuHEH@Hx t1H}ހHu1Ha[H}hHuH}FQH}言HEHtH]UHH$@H}HuHUH谀vDHEHDžHHUHxHHcHpH}HEH@H@H;EtMHEHPH[HXHEH@H`H[HhHPH}1ɺꃾHHHu1H[HH5HHHEHPHEHx1H}1HEHx HEHx jHEHEH@(HEH}tHuH}1H[跀HEHPHuH}1蠀HUHuH}_HEH@ HhH}t H}Р1HEH}uHH~Hu1Hx[HHfDHEHx3HEH@HcUHHEȋEHE؋@;Eu1HEHc@4Hc]H)qv,HH-H9v,]EEHE؋@;Eu1HEHc@0Hc]H)q3,HH-H9v+]ă}HE;E~EEHEHHEHE؋@;Eu HEHc@0HEH}t!HEHcUH4HcUH}νEĉE7Lu]LeLmMu7+M}LLLAE}HcEHc]Hq]+HH-H9v+]Hc]HcEH)q0+HH-H9v*]}0HEHcUHH(H)q*HEHH(HEHx(}HzHE؋@;EHEHc@0Hc]Hq*HH-H9v\*HE؉X0HE؋@0;EH}>HEHPHEHc@HHEHU؋@;Bu!HEHx(tHH}HE@0HEHcXHq*HH-H9v)HE؉XHEHU؋@;Bu HE@}tWE;E|OE;Eu=Hc]Hq)HH-H9v^)]HE؋@;EuE}EH]LeLmLuL}H]UHHd$H}*H[H=&g!HH5HH]UHHd$H}*H[H=gHH5HH]UHHd$H}I*H[H=gHH5HH]UHHd$H}u)HE@;Et(HEUPHEHU@;B }HUHE@ BH]UHH$HLL H}Hu})H}u'LmLeMud'LH LShHEH}HUHuHӽHcHUuEHEHE@ HE@HEH}tH}tH}HEHeHEHtlHpH0H<ӽHcH(u#H}tHuH}HEHP`H(HtHEHLL H]UHHd$H]LeLmH}Hu((H}~'LeLmMu&I]HLH}H}1'H}tH}tH}HEHPpH]LeLmH]UHHd$H}HuU 'HuMH}1pH]UHHd$H}HuU B'EHUH}1.H]UHHd$H}HuU 'HuMH}E01-H]UHHd$H}HuU &EHUH}E01H]UHHd$H}HuU &HuMH}A1H]UHHd$H}HuU B&EHUH}A1kH]UHHd$H]H}&iHEHPHEHc@H<8HEHcXHq4$HH-H9v#HEXHEHU@;Bu HE@HEHU@;BuHE@HE@HEH@(HEHx 8HEH@HE@HE@0HE@4H]H]UHHd$H]H}(%HEHx(} 1HHEHU@ ;B~ 1HHEx } 1HHEHxuHEHx(h1HnYHEx 1HUHEHx(u 1H@HEx} 1H,HEx} 1HHEHU@;B| 1HHEHU@;B| 1HHEHE@EfHEHPHcEH<u 1HHEH@HcUHЃ8 1HHEHPHcEH‹EHE@;Eu1HEHc@0Hc]H)q!HH-H9v!]HE@;Eu1HEHc@4Hc]H)q!HH-H9vX!]HcEHEq!HEHE@;EtFHc]Hqg!HH-H9v!]HE@;EEHEH@(H;Et 1HHc]Hq !HH-H9v ]HE@;EhE_DHEHPHcEH<t 1H#Hc]Hq HH-H9vL ]HE@;EuEHE@;EuHEx4} 1HHEHPHEHc@HHU;B4 1HHEx0} 1HHEHPHEHc@HHU;B0 1H`HEHU@;Bu@HEHPHEHc@HHcHEHc@4H)qHEHc@0H9 1HH]H]UHHd$H}Hux!HEHUHu[H˽HcHUuFH}\HU1H5[H}Y^HUH= gHH5H-H}\HEHtH]UHH$pHpH}@u[ HDžxHUHuHʽHcHU5H@[HHDž HE@HDžH_[HHDž HE@HDžHV[HHDž HE@0HDžHM[HHDž HE@HDžHD[HHDž HE@4HDžHC[H(HDž HEH(H8HDž0H0[HHHDž@ HE@ XHDžPH/[HhHDž` HE@xHDžpHHEHxHE@EHEH@HcUHЋEEHE@;EubHEHc@0Hc]H)qHH-H9v:]HEHc@0Hc]HqaHH-H9v ]HE@;Eu1HEHc@4Hc]H)q$HH-H9v]E쉅HDžH&[HHDž HEHPHcEH4ºHHHHDžHS[H(HDž HEH@HcUHЋ8HDž0H[HHHDž@ E䉅XHDžPH[HhHDž` E艅xHDžpH}tQHEHPHcEHHHcuHƋU1HxYHxHx HHxH>HE@;EtFHc]HqHH-H9v1]HE@;EE}HxWHEHtHpH]HHHd$HHd$Hd$HHd$Hd$HJHd$Hd$HHxIHd$Hd$HHxIHd$H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0H<ŽHcHT$puNHD$H|$1ѾHD$HxHHD$H|$tH<$tH|$HD$HHD$pHtpHT$xH$HĽHcH$u&H<$tHt$H|$HD$HP`zH$HtX3HD$H$SATHd$HIM~ HHH{HHtMt HHPpHd$A\[SATHd$HIM~ HHHtMt HHPpHd$A\[UHH$H}HuHUMDELMH}uHEHUHRhHEH}ZHUHp4H\ýHcHhHEHMU@uH}>HHUHBHEHxuNHEH`HDžX HXHG#HPM1H=HH5HHUЊEBHEH}tH}tH}HEHHhHtlH@HCHk½HcH`u#H}tHuH}HEHP`?5H`HtHEH]SATHd$HIM~ HHH{GHtMt HHPpHd$A\[Hd$HHxFHd$Hd$HHxFHd$SHHsGuC[H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0H HcHT$puJHD$H|$M1E011!HD$H|$tH<$tH|$HD$HHD$pHtpHT$xH$`HHcH$u&H<$tHt$H|$HD$HP`XNH$Ht,HD$H$H$H|$Ht$$H|$uHD$HT$HRhHD$H|$HT$ Ht$8HƿHcHT$xuLHD$H|$15̾HT$$BHD$H|$tH|$tH|$HD$HiHD$xHtH$H$H9HcH$u'H|$tHt$H|$HD$HP`H$HtHD$H$SATHd$HIM~ HHHH{&H1V̾HtMt HHPpHd$A\[Hd$HHHHcP Hd$Hd$HHHHcPHcHⴽHd$SATH$HAHhhHPHGYHH;Ic H$A\[HcGHcHHGHd$HHHcPHcHHPHHHd$SATHd$HAHHcCMcIHCHd$A\[SATAUHAIDHWHcsIcHHst HHLDH\A]A\[SATH$HAD;c| A~&H hHPH(XHH;IcD;ctNHcsIcHHH{L%HcSIcHpH)HcCH{HHcHcPHHx1ǽDcH$A\[HSATAUHLccHcLLcLckHcLLkfLHHM9t HcCIA]A\[SATH$HAE| A~&HhHPHWHH;IcD;c~ DHD;c~-CHc{HcHH{HcCIcH)HcCH1ƽD;c}CgPDHDcH$A\[SATHd$HIC;CuHRCHcSHcHHSLHHCCHd$A\[SATH$HAE|D;c|&H-hHPH VHH;IcH$A\[0SHH{tH1{H1a[SATAUH$HAIE|E;e|'HhHPHwUHIcI}8kHMcHcPLLhLHHHcSIcH)HcCHgA|$HHcHcHHHxLqC=~$;C~kHcCHpHcCHH{3"HcCHpHcCH)HcCH{HcHcCHH{1ĽH$A]A\[SATAUAVAWH$IH$ALE|D;c|&HzhHPHYTHIcH;L$L닄$| $;C|+H2hHPHTHHc$H;H$DxD⋄$)ƒH$)PEE$A9|L$gXH$HcHcQHHAILH$H$HA9IcIcH)HH$HcHHgA~H$HHcHcAHHyHHc$HcHHHp肮C=~$;C~kHcCHpHcCHH{D HcCHpHcCH)HcCH{HcHcCHH{1½H$A_A^A]A\[SATAUAVHd$HIHAE|9LcsIcLLsHcSLLЭHcsL1r½DHHcsL1W½Hd$A^A]A\[UHH$pHpLxHHIHEHUHusؾH蛶HcHUuaLeHEHEHELeH1H} RHUM1H=L_HHHtHUHHtHuپ*۾H}GHEHtܾHpLxH]SATAUH$HAAE|D;c|&H8hHPHQHH;IcE|D;k|&HhHPHPHH;IcDDHH$A]A\[SATAUHAAՋCHcsHcHHsHc{IcHH{HcSثHcsMcIHsHc{IcHH{HcS豫CHc{HcHH{HcsMcIHsHcS臫A]A\[SHC;C|7{~{~{~SЋSg4HH[u1HGHd$HHH1Hd$SATAUAVHd$HIE1HIfDAHcCID;k}HcSLLhHuD;kuADHd$A^A]A\[SATAUH$HAE|D;c~&HhHPHNHH;IcC;CuHLckIcLLkD;c}0HcSMcL)HcCHHcCJ4(LHcsL1觾CLH$A]A\[SATHd$HIHH7HLHHHd$A\[u1ËWHcOHcHHOHHd$HHHgqHFHd$SATAUAVAWH$H$AAE|H$D;p|.HhHPHMHH$H8Ic`E|H$D;x|.HhHPHeMHH$H8IcE9H$HcHIcHH$HHH$HcPIcHH$HPIH$PH$HcpHcHH$HpH$HcPIHH!E9}/gAVH$HcxHcHH$HxHDD)2LgEGH$HcBMcIH$HBHDD)H$HcPHcH裧H$HcPLL茧H$A_A^A]A\[SATHd$H`AAt DHhHPHGHH;1HLHH$A\[H$H|$Ht$$L$H|$uHD$HT$HRhHD$H|$)HT$(Ht$@;H"HcH$utHD$ $T$H|$1HT$$B HT$D$B$H|$HD$HHD$ H|$tH|$tH|$HD$HоH$HtH$H$?;HgHcH$u'H|$tHt$ H|$HD$HP`6оѾ,оH$Ht ӾҾHD$H$Hd$HHHHcP 虡Hd$Hd$HHHHcP$yHd$Hd$&Hd$SHHcS H[SATAUH$IIL|IcT$HcHIT$IcD$ H'HhHPHEHI<$LNHH$A]A\[Hd$HHHHcP YHd$Hd$HHHHcP$9Hd$HHt Hp0HP8HHP0H@8HHt Hp@HPHHHP@H@HSH11HH11H[SATAUH$HAIՀ{,t%H]hHPH\DHH;1DHdHLHHH$A]A\[SATHd$HIHH'HcS HLHHHd$A\[SATAUHIILHƅ| LHLLHA]A\[Hd$H@:p,t@p,@tHqHd$SATH$HI{,tMHLHtAC(tWt3NHhHPH|$CHt$H;1C$4$HHLHH$H$A\[SATAUHIHMALDHDA]A\[UHHd$H]LeLmLuL}HHuHUEHE{,u.HMhHPH=m踽HH5HʾE1CA\IcIcH)HH?HHHADH!HH{8HUS0AE}gEt$gE|$Eu E{(EEE9}HED0EH]LeLmLuL}H]SATAUAVHd$HIE1HIfDAHcCID;k}H{8LLS0uD;kuADHd$A^A]A\[SATHd$HI{,tHLHnu$LHV$$Hd$A\[SATAUAVHd$HIE1HHcS L4 AHcCID;k}H{HLLS@uD;kuADHd$A^A]A\[SATH$HA{,t%HBhHPHA@HH;1DHH$A\[SATAUHIIHHI$HcC I$IEA]A\[SATHd$HIHHWHLHHHd$A\[SATAUAVHd$HIIHILLHHHcC J0LHHHd$A^A]A\[SATHd$HAE| DHmDHd$A\[Hd$HHP8Hp0HHd$HSHuHt I1[SATHd$HDH0詨AAu tD;0t ǃHd$A\[SATAUHd$IHD$HT$Ht$(ľH΢HcHT$hLI$HcHH L,$LI$!IDLI$AAE|EHt$LI$H|$HuH=#H $HcHA9ǾH|$t3HD$hHtȾH$Hd$pA]A\[SATHd$HE1IcH<4$AIcH<uH Hd$A\[UHHd$H]HHEHEHUHuNþHvHcHUH@H8@HHHtH@HH~$HH8뒾HHH0HvHH8H5n[H}HuH}HHuH=p[3FHtH5[H?H}H5[AHuH5[H]H}H5[AHu$H5[Hu5H5͡[H$H}H5ء[AHuH5[HHH8uH5HvHHH01H;u.HHPH=袶HH5HþľH}"1H}1HEHt;ƾH]H]UHH$pHpLxLmH}HuHUH]HEL`IL>ILLHLmLHEHPH5cbHUHuHHcHUu51E0 fDHUHcH4H}lAăEu HcH;E~þH}HEHPH5pcbH}HEHt4žDHpLxLmH]SHd$H|$H4$H 0HD$xHD$pHT$Ht$(H;HcHT$huAH5[H|$x>HT$xH4$0H|$pyrH|$ptH4$H=/¾H|$x?/H|$p5/H-/HD$hHtNľH$[UHH$H}HEHEHDžHUHuCHkHcHxHEHuBHu8Hu.HHPH=H۳HH5HH= g~HEH`H 謾HԜHcH]HEHuFHuDHE@pt7BH=[Eĉ1}ľ}ľHEHtHEHHuHEHE@ptOǾsH}t>H(#HuH(HUHuH(HuH=BH(#HuH(€HHHuH(HuH=貖 H}H0Ht胸H}t H}HHt]ȶHE@ptL}HE@pu}HE@pu}MUuH}HEHHHtHEƀHE@Pu@ptu H}<'H({"H}r"H}i"HPHt舷H]SHt0Hƃ[SATAUAVHd$HAE0Ht$ HDHS㥛 HHH?HH$DHHHiHT$H0迕AXfHt$ H|$艗HD$H$H9|^H9u HD$H;D$MAH0eAEtD;0At ǃƃDHd$(A^A]A\[Hd$0ktHd$Hd$0;t1Hd$SATHd$H00Au"HSt0 AEtH DHd$A\[HSHd$H<$HH<$j HD$HD$pHT$Ht$(tH蜎HcHT$huO;fDHt$pH{Ht$pH|$< H|$tHt$HHPH$HtH@HھH=IDH=MIAFpuDH=(ۭI Hd$A^A]A\[Hd$HHH?tڔHd$SHCPtHtHL[Hd$HHHHd$Hd$HHHyHd$Hd$HH HYHd$HtHxHtHxHtHxHtHxHtHxHd$H$ʉT$T$ЉD$ H$HT$Hd$SATHd$HIHL'Ht HLCPuHHd$A\[Hd$HHHHHd$Hd$HH4$HT$HxHx$HJ)щT$HJ R)щHd$HtHxSATHd$HIHL#CPtHuHLHd$A\[Hpp t`p@pt`pSATHd$HAHD8t!EtHHH1HHd$A\[Hd$HHHHHd$SHd$HHD$`HHt$,HTHcHT$XHHHHH:HHH~HH1Ht$`HHHt$`HH1HH貨H|$`HD$XHt)Hd$p[SATAUAVAWHd$IHL$L$DHD$ILsÅAIcHcH HT$HcH9~.}AHD$HD$Hc0H<$1c%H<$&IcHHtLIAE~E'L Hl$~ D$mDHd$ A_A^A]A\[SATAUAVAWH$H$H$AIL ÅAvzo@~H$HHH$HHADHH$H$HL A~EDH$A_A^A]A\[Hd$Huxt,Hd$H$H|$H4$HT$HL$H$HHD$HD$ HT$@Ht$X"HJHcH$H|$HD$ppD$$D$(D$0D$,H|$HD$HfHD$HL$HL$(HT$$H|$AHD$HD$4D$8HD$H t8HD$H LD$HL$,HT$0H|$AHD$HD$8HD$@pt2|$4u+|$8u$Hx`tHD$HxhHt$M111HD$P`H|$K+HD$HL$HL$(HT$$H|$AHD$HHct$$H<$10"HD$H t4HD$H LD$HL$,HT$0H|$AHD$HHct$0H|$1!H|$HT$D$ HD$Hx`t HD$HxhHt$M11HD$P`2H$HH=ڏgHH$H$H$躠H~HcH$u^D$ Hct$$H<$1!Hct$0H|$1 !HD$Hx`t)HD$HxhH$L@Ht$1HD$P`pH$HtN)⤾D$ H$UHH$HLH}HuHUHMLELMHEHHEHUHX趟H}HcHPCHH81ҾHHHEEtH}uquH}HEHHuAH}tHEHHu&H}|C]Ѕ|H81ҾH-HHD$ Ht$H|$ PH<$tHD$ HH4$t H$H$ZH{HcH$u?H\$H Ld$0L LHHL$(H|$ HD$ HD$/H|$ %H$Ht裡|$(tD$H|$0X H$HtvD$H$A\[UHH$HLH}HuHUHMLEDMHEHHEHUHXFHnzHcHPPHH81ҾHHHEE؅tH}u؃uH}%HEHHu H}tHEHHu H}|C]Ѕ|EfEEuH}HH=]qdltuH}ݓILmH]AAL}L}HEHtTHEHHEH}xH}DEHLH]HE@xrruH}gHËuH HE@xrruH}:HËuHLHE;E| HEUHE;E| HEU쉐E;E~HpLxLmLuL}H]UHHd$H]LeLmLuH}H87EEEHEUHHEH}tYLuALmMt﷾I]HwDLH]Ev淾$;E@H}@}suH]LeLmLuH]UHHd$H]LeLmH}HuH0gLeLmMtSI]HvL(t EHuH=,it EEEEHEUHurHEULHEULMt辶I]HbvL(u-HUEHOfH}Cf9E}scEEH]LeLmH]UHHd$H]LeLmH}H(+E@EELeHE HEvUHHItoLeHE HEvٵUHHMHcEHH)q뵾HHH=v藵fL}}>LmLeMtJI$HtLxH]LeLmH]UHH$HLL L(L0H}H޶HEHrHEH}t HþH[HEĉUHEHEẺEHUHxH@HUH8D}IMLHtUHILsLH8D@A$HEH}oHUHhhH`HcHUȅHEHHHHHADAD%HHHEH}tHcHXuHEuHEHҴo}É=vhAHELHEHHt#L#LrLDA$HEHioP}É=vAHELHEHHt蹲L#L^rLDA$HELE=v衲DmHEHHtfL#L rDLA$HELE=vSDmHEHHtL#LqDLA$As,H}nHEHtHLL L(L0H]UHHd$H}uHp蔳HEHmHUHuH]HcHUu'uH}H}H}%H}<ǂH}^mHEHt@H]UHHd$H]H}HuHﲾH]=v3H}QH]H]UHHd$H}HuH裲HEHH}H}jH]UHHd$H}uHdHE ;EtHEU H}H]UHHd$H]H}HE@EEHUEHt2H]Ev$;E@HUEHG}sH]H]UHHd$H}uH脱HE$;EtHEU$H}+H]UHH$`HhLpLxLuL}H}@uHHE:EtYHUEHEtHEH>h(H}PjHUHu}H6[HcHUL}IH=tHH3tIMtlMLnHLLAHUHHELLeHELMt I]HmLL`HELH^[HELMt߭M&LmHLA$0H}HH}iHEHtHhLpLxLuL}H]UHHd$H}HuUH P}tSEEEHUEHH;Eu!HEUHDŽHEU}s뵋UHuH}HuH=܃_u H}H]UHH$HLLLH}HuHUH}H}t)LmLeMt`LHlLShHEH}t HUHuzHXHcHU_HEHUH}H舷HUHE苀X XLuALmMtūI]HikDLH}H}aH}H:HUHE苀X߉XLuALmMtSI]HjDLHEǀ(H}@HEǀ$HEǀ HEǀHEǀH}HEH}uH}uH}HEH@|HEHpHhH(xHWHcH u%H}uHuH}HEHP`{p}{H Ht~~HEHLLLH]UHHd$H]LeLmLuL}H}uH8ЫHEUHuL}IHكHL%كMt菩LIL1iHLLAHUMHHEUHUH L4ILMMt0I$ILhHLA0UH4LH$AILMMt䨾I$ILhHDAE=v֨uLHAILMMt茨I$IL-hHDAHEUrL LH]$vN$;E@LHL}ILMMtI$ILgHLA`H]LeLmLuL}H]UHHd$H}H觩HHHUHH=wnVHEHEH]UHHd$H]H}HuHUH(KHEHH;Et EHEHH;Et EHEHH;Et EHEHH;Et EHuH=փYtHuH=փYuEP2HuH=փgYuHuH=փQYtEH},fH} f9EEH]H]UHH$`H]LeLmH}HuHUHMLELMHHEHD$HE HD$HE(HD$HEH$LMLEHMHUHuH}HEHuLHELHELMt菥I]H3eL(uHE(EEHE@xrrHEHUЋHEHcXHEHcH)q胥HcEH)quHH-HH9vHEHHUHExxt8HEHcHc]HqHH-HH9v¤HEЉHEHH;EttHEHUȋ@HEHcHEHcHqHEHEHc@ HEHEH;E|H]H]HH-HH9v>HEXHEHcX HEHcH)qYHH-HH9vHEȉHuH}9t?HEHc(HEHcH)qHH-HH9v誣HEȉHEȋEHE@EE;EEEHUB HEHUȋ@HEHcX HEHcH)q荣HcEH)qHH-HH9v"HEHHUHExxt8HEHcHc]Hq)HH-HH9v̢HEȉHEHH;EtrHEHUЋHEHcHEHcHq̢HEHEHc@HEHEH;E|H]H]HH-HH9vIHEHEHcXHEHcH)qeHH-HH9vHEЉHuH}Et?HEHc(HEHcH)qHH-HH9v趡HEЉHEЋEHEEE;EUUHEPH]LeLmH]UHH$pHxLeLmLuL}H}HuHUMHEEH}{HcHqHHHHH9v꠾HEE}.EE܃E܋uH}zHEHEЃxxu1LmLeMtwI$H`L(tHEHH;EtEEL}LmH]EALuMtIHEH}_DDEHLLH]HE@xrrHcEHc]HqHH-HH9v迟]HuH}t9HEHc(Hc]HqПHH-HH9vs]ȋEĉEE;EEEEHcEHc]Hq~HH-HH9v!]HuH}at:HEHc(Hc]Hq2HHHH9vԞ]̋EEE;EEEEȋE;E~HEHuHELHEHHtTL+L]LA(uHE@xrrWHEHHcHEHc(Hq\Hc]HqNHH-HH9v]VHEHHcHEHc(HqHc]HqHHHH9v虝]HUẺHUEȉHxLeLmLuL}H]UHHd$H+HH5AvH=H޷EEH]UHHd$H}H瞾=u H]UHHd$H]LeLmH}HuH0藞=t9H}HL%sMtoML\HAsLmH]Ht?IL[LA$H}`HEHEH]LeLmH]UHH$@H@LHLPH}HuHȝHDžXHDžxH})LeLmMt蕛I]H9[LHUHuiHGHcHUHExhHx,ٽHK[H`LeMtI$HZHHXZHXHXHXHhHK[HpH`HHxܽHxHEHE H}HZH}H轫lHX\ؽHxPؽHEHtrmH}uH}uH}HEHPpH@LHLPH]UHHd$H]LeLmLuH}H0盾HEHUHEH}.HUHB`HEHx`u8LmLeH]Ht蟙ILDYLLAHUHB`HEH]LeLmLuH]UHHd$H}HuHCH]UHHd$H]H}HHEHcXhHq`HH-HH9vHEXhH]H]UHHd$H]H}H賚HEHcXhHqHH-HH9v裘HEXhHExh~'H閬H8uHږHxHuH˖H]H]UHHd$H}HuH#H]UHHd$H]LeLmH}HuH(百H})LeLmMtʗI]HnWLH}LH}HH}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmH}H ;HEHukLeLmMtI]HVLLeLmMt얾I]HVLHEHxp>HEH@pH]LeLmH]UHHd$H]LeLmH}H({HEHLmLeMt[I$HULHEHEH]LeLmH]UHHd$H}HHEHxpuHEH@pH8„uEEEH]UHHd$H}H跗H]UHHd$H}H藗H]UHH$@HLLL H@HRH@H#u~H@xxuHH5bF[H肹SLH@L@Mt씾M,$LTHLAH@@xHpH0cH8AHcH(yHHHHL@L@MthI]H TLH@HBpH@tHH5E[H菸'eH@@xH(HtHtAgHDž(L@L@MtϓI$HsSLHLLL H]UHHd$H}HwHEHEH]UHHd$H]LeLmLuH}H(7HELh`LeHEHX`HtILRLLAH]LeLmLuH]UHHd$H}Hǔ⢾H]UHH$HLLH}HuHUHMHpHDžH}t)LmLeMtHLHQLShHEH}tHUHus`H>HcHxDHEH`H 9`Ha>HcHHE@ HE@$HuH)zHHEHxH5^C[ ѽHuHyHHEHxH5NC[нHUHH=︄HUHBHEHPHMHHBHJHEHxbHνHHtdHEH}uH}uH}HEH@bHxHpH`H ^H=HcHu%H}uHuH}HEHP`amcaHHtddHEHLLH]UHHd$H]LeLmH}HuH(瑾H})LeLmMtʏI]HnOLHEHx8JH}HIH}uH}uH}HEHPpH]LeLmH]UHH$pHpH}HuHUH}hͽH}_ͽH HDžxHEHUHu[]H;HcHUH}̽HEHpH@[H}NνHuH}ܽHtMHx̽HEHpH@[HxνHxHuHWHtFHEHx"HcHq袎HH-HH9vEHEX H}̽HEHpH@[H}ͽHuH}۽HtMHx˽HEHpH?[HxCͽHxHuH߽HtXHEHxWHcHEHtH@H)qˍHqHH-HH9vcHEX$^Hx˽H}˽H} ˽H}˽HEHt"`HpH]UHH$`H}HuH͎HEHH ?[HH=HEHUHpZH9HcHhu$HE@ EHE@$Eȃ}E܃}E]H}FHhHtZ_HEHH >[HH=iHEHUHp`ZH8HcHhu$HE@ EHE@$EЃ}E}EQ]H}HFHhHt^HE}u}u}t }t-}u}u}t }tHE8t}t}uKHcUHq}HuH==[-HcUHq^HqSHuH==[:Hz=[HEHEHHEH=[HEHuH}H̽}t:Hx=[HEHEHHEH=[HEHuH}H̽H]UHH$HLLH}HuH}^ȽHHDžpHUHubXH6HcHxHuHpsнHpH %<[HH=HEHXHWH6HcHu&HE@ EHE@$E}t }t)ZH}CHHtH%Q\HDžHcMHcEH)qrHcUHqcH}Huٽ@H}HHIHEH8u.HEHHH8g׽ t t tt#HEH0HtHvH}H߽HEH8uYLeM,$HEHHtH[HHH9v]HI<$ֽAD t t tt{YHpŽH}ŽHxHt[HLLH]UHHd$H]LeLmLuL}H}H8蓉ELuHLeMtqM,$LGHLALeLmMtDI]HFLHBL5H]ALeMtM,$LFDHLAnLeLmMtцI]HuFLH=L5}H]ALeMt蓆M,$L7FDHLA=@t=6t EG=!t=t E(=t=t=tEEH]LeLmLuL}H]UHHd$HۇH=tH8[HFHHHEHEH]UHH$HLL H}HuHhH}t)LmLeMtKLHDLShHEH}tHUHuvSH1HcHUuHHEH}HHEH}uH}uH}HEHFVHEHpHpH0RH1HcH(u%H}uHuH}HEHP`UvWUH(HtXXHEHLL H]UHH$HLLH}HuUHՅH}t)LmLeMt踃LH]CLShHEH}tHUHuQH 0HcHUuMHEH}HxgDHH5HQHEHcX HqHH-HH9v蒀]4DHc]Hq蹀HH-HH9v\]}}HEHP(HcEHHH;EuE}| }uHEHcX HqDHH-HH9vHEX HEHcX Hkq HH-HH9v]HEHX(HcEHH9vHcuH葔HEHcX HqHH-HH9vQ]HEHH(HcEHHUHHH=Ȥf#8HUHJ(HcUHHDHE@0EH} t }uH},t}uyHEHP(HcEHH|9HEHcX Hkq~HH-HH9v~~]HEHX(HcUHH9v[~HcuH_EHp HE@H(mH¹H51[Hp肽HpHH=-;g(AHH5H&NQOHp襻HxHtPEHhH]UHH$PHPLXL`LhH}HuHUHMEHEH]HUHxKH)HcHpHuH}Eԃ}|HEHP(HcEHHDH;EuH}u}LeLmMt|I]HSnAH]LeMtnM,$L-HDLAHuH}i?H}`(H}GEHHt@>?H}蕫HxHt@EHLLLLH]UHHd$H}HuHUH ?oHEHEHH@LHLPLXH]UHH$HLLLLH}HuHUHMLELMH(ZmHEHUHh9HHcH`MHEHHHc9HHcHHH=f#HEHuH}EH}utH]HtH[HH-HH9vjAH]HH}(IH]LeMtajM,$L*HLDALuILmMt*jI]H)LLHuLMLEHMHUH}e;H}w$HHt8EHPLXL`LhLpH]UHH$pHxH}HuHfHEHUHu 3H4HcHUHEHx8uH}uHuH}͢H}H5p[転H}H]HtH[HH-HH9vHd]u/Hc]HqfdHH-HH9v d]H}]HHH{aHƋMH}H/:5H}葡HEHt6HxH]UHH$PHXL`LhLpLxH}HuH:eHEHH臡HH=وf4HEHUHu^1HHcHUJ}HHUH}Mu'LeLmMtbI]HT"LHEH}2HEHPHEHqb<tHEHqbHELuILmMtAbI]H!LLH}HuH}qH}腲HHH裰IHUHHH9vaDuH]LeMtaM,$L]!HDLA(3H}HEHt4HXL`LhLpLxH]UHH$PHPLXL`LhLpH}HuH cHDžxHUHuM/Hu HcHULeLmMt`I]Hf LH}duHEHcX Hq`HH-HH9v`AA}rEfDEEHEHP(HcEHH4Hx{LxH]LeMt `M,$LHLAPD;}~HEHExHUHu|uHc]Hq`HH-HH9v_AA}gEEEHEHcUH4HxzLxH]LeMtD_M,$LHLAPD;}~H}u H}s0HxHEHt2HPLXL`LhLpH]UHHd$H]H}HuHUH(`HEHEHH}=uHEx HEHcX Hkq^HHH9v[^HH}rHEHcX Hq|^HH-HH9v^};EEEHEHp(HcEHHUHHcMHH;]~HEHU@ HExHUHuZzH]H]UHH$pHxH}uHUHc_HEHwHUHu+H HcHUH}HEUP HEHcX Hkqh]HHH9v]HHEHx(pHEHcX Hq.]HH-HH9v\}bEEEHEHp(HcEHHMHcUHHHH=)fHUHJ(HcUHHD;]~HE@0-H}EHEHtA/EHxH]UHH$pHxH}H]HEHEEHUHu!*HIHcHU;H}atHExHUHuDxt5Hc]Hq[HH-HH9vm[}IEEEHEHcUHHEHuH=*oGu;]~HEHcX HqE[HH-HH9vZ}R]EEDEEHEHP(HcEHHHEHuH=d*o?Gu3}~+H}u H}oHEHtHtd-HEHEHEHxH]UHH$HH}HuH[HDžHUHu9(HaHcHxHEHEEH`H 'HHcHWH}-tHExHUHuvtTHc]HqYHH-HH9v9Y}UEE؃EHEHcUHHEHuHOtHHuCt;]~HEHcX HqYHH-HH9vX}b]؋E؃EDE؃EHEHP(HcEHHHEHuHsHHuBt6}~)H}u H}lHHtHt+HDžHEg)H軕HxHt*HEHH]UHHd$H}HYHEHkHEEH]UHHd$H]H}HuH0?YH}uHEHuHuH}EHExHUHust EE1fHc]Hq)WHH-HH9vV]؋E;E|HEHcUHH;EuE;EEH}u H}k}t+H;EtH}uEEEEH]H]UHHd$H}HuHXHEH}HHEEH]UHHd$H}HuHWHEHHEH}tHEpHUH}$?H]UHHd$H}HuHcWHEHpH}H]UHH$HLLLLH}HuH(VHDžHUHx:#HbHcHpEHH=qf)HEHXH"HHcH3LuLmH]Ht[TL#LLLA$LmH]Ht.TL#LLA$HcHqhTHHHH9v TH}EfE܃EDuLmHLeMtSM<$LDHLDAHH}THEH}uHUHuH}E5;E~x$H} HHtHt;&HDž$H퐽HpHt &EHLLLLH]UHH$HLLLLH}HuHUHvTHDžHUHu HHcHx+EH}tHH=wf: HEH`H ^ HHcHHUHuH}StLuILmMtQI]HQLLHuHlLH]L}LeMtfQM,$L LHLA"H} HHtHtE$HDžE"HHxHt$EHLLLLH]UHH$`H`LhLpLxH}HuHRHEHUHuHHcHUuWLuLeLmMtoHEHEH]UHHd$H>?HEHEH]UHHd$H{>E@EEUH:H<}sH]UHHd$H]H}uHUH >}dHHUHuHAH]H]UHHd$H]H}uHUH =}HHUHuHH]H]UHHd$H=HDH.L#LDLA$LmAH]Ht .L#LDLA$XH}@}0t3LuAH]Ht-L#LgDLA$HHEHE}0u E EUH<uHELIH ftIHftHHtA-ILLLLA$HELuLmH]Ht -L#LLLA$`2HH}2I]H윃-v,HӜ4L5H}D}EH@LuA H8LeMth,I$H 8EL@DH}@豷H}@H}@yH}@HcUHkq^,HEHcHqI,HH-HH9v+]HEE}0u/Hc]Hq,HH-HH9v+]YHE}0t=HEHxu0Hc]Hkq+HHHH9vY+]EEEEHEHpH$HUHHHEHpH$HUHHHEHx(u$HEHp(H$HUHHHEHx uDždHH=FfHHHHH@HּHcH8HEHp H HLLMt*M,$LLHA8LLMt)I]HyLHcH0H5?H0HhH5ɽLHHt{)L+L LAHcHq)HH-HH9vY)H}EEEHELIHfpHH\pIMt(MLHLLAHLhHcEHH9v(LcmLHh}ƽKHhHcUHH9v(LceLHhGƽJHH]LLMt.(M,$LLHA`LLMt'M,$LL@AHcEHH)q+(HcdHHq(HHHH9v'ډHHc]H q'HcEH)q'HHHH9vs'ډHHcEHHq'HHHH9v8'ADmHLMt&M<$LHDDAAD}LHLMt&M,$LGHLDAHH(HQ$H(H^H}uF@HfH]LLMt(&M,$LLHAXHcdHHcHqP&HcEHHq?&HH-HH9v%؉EE@tK}t E;Et5LLMt%M,$L$L@A ;E~?Hc]Hq%HHHH9vJ%]H߽H8Ht%EulHEHxu\HH=IAfTHHHHH@H/ѼHcH8Hc]Hq$HH-HH9v$]HEHpH*HLLMt)$M,$LLHA8LHHt#L#LLA$HcHq0$HH-HH9v#H}EEEHELIHoHHoIMtU#MLHLLAHpLuHpLpMt#M,$LHLA`Hc]HqM#HHHH9v"HpHx}0uHc]H q#HcEH)q"HHHH9v"AߋEHEHLp(LpMt>"M4$LALƋDAHc]Hq^"HcEH)qP"HH-HH9v!HEHDuLp(LpMt!M<$LAALD‹A]LLLMtM!M,$LLLAHH(HH(Hp H}uFHp@LuHpLpMt M,$LwHLAXHpHcHq!Hc]Hq HHHH9v ]Hc]Hdq HHHH9ve Hpw]HEHH#HpHHHp;EtHEHHpͿ}0uYHc]Hq. HH-HH9vHpHx|HpHx}0u$HpHpڞ"HpלHp 趞E t>HHpHH5ZH谓Hp};E~MHc]Hq.HHHH9v]8H,ٽH8HtHEHxPuHH=OvPHEHH@HʼHcH8}HELIHA\pIH7\pHHtILݼLLLA$HUHHHEHHHLuLHHtL#L@ݼLLA$`Hc]H qHcEH)qHH-HH9vhHhEH`DuAHLMtM<$LܼHED`‹hAEu;ALHHtL#L_ܼLDA$ 9ALHHtL#L$ܼLDA$ HEHpPH2LLmH]Ht7L#LۼLLA$8LmHLHHHtL#LۼLLA$HELhXLuH]HtL#LbۼLLA$ALHHtL#L,ۼLDA$ LLMtTI]HڼL t&HptHEHpXHEu"HEHHHEHȿHc]H*q6HHHH9v]@H}7սH8HtEuHELIHʌpIHpHHtQILټLLLA$HUHHHEHHHLmLHHtL#LټLLA$`Hc]Hq$HcEH)qHH-HH9vADuDmHpHHxLMtaI$HټHxpADDDHEHpXH"Eu*HEu"HEHHHEHƿHc]H*q*HHHH9v]uH}wHEHHE}u.HEHxHu!HEHxu Et5H}AfEHc]HqHHHH9v@]EEEtHH=k4fvHHHHH@)HQļHcH8\HEHpH{ HLLMtzM,$L׼LHA8HLMtGM,$LּHAHcHqHH-HH9v$}]EEfDEE]LLLMtM,$L_ּLLAHLceIdqLHHH9vDHH }~kHнH8HtQƅ|f|,||UrN|lHH mH HH|HŅHj |vHEHxHuIHELIH&pIHpHHtmILռLLLA$HUHHHEHHHLuLHHtL#LԼLLA$`HcEIIq=HEHLHELhHHEHHHtL#LJԼLLA$HcLqHcUH95Hc]H qHH-HH9vh]EEHc]HcEH)qHHHH9v/HD}EHAHLMtM4$L|ӼHE苅DAHEHpHH蘢HEЋ@h ALHHtoL#LӼLDA$ Hc]H$qHH-HH9vJ]EHEHx@u1}u H 0Hc]HqMHHHH9v]UH<uHELIHMKtIHCKtHHtIL)ҼLLLA$HELmLuH]HtLL#LѼLLA$`HH}BH}ԢI]HA-vH(4LH}QH}@EH}@yH}@ H}@聠DuL}HHHPLeMtlM,$LѼPƉًHALDAHEHcH(qHH-HH9v-]EHEHp@H HUHHHEHuJ/H} uHsbH8/[AMcIqLH-HH9vA}fEfEEuHmsbH8U[HHH;E t'uHHsbH80[HHEHdD;e~HEHHptHsbHHpxHEHdHEHHpuHEHrcHELHEHHtL+L5ϼLA EHEHHuHEHHHEHLMt.M,$LμHA HUЉBdHEHHH HEHtӽHpH]UHH$`HhH}HuHUHHEHDžpHUHuνHHcHxHEH8tH}HdHEHHE DHEHE8 sH]H>HHEHHUH)HEH0ZHuHpRHpH}HEHE8u HE8 rHE8u HEHUH HEHѽHpm=H}d=HxHtҽHhH]UHHd$H]H}@uHUH +E,v,v,HE耸uXHEHEvEHu.HEHEvEHHu訍XHE耸uHEHHHu|,HE耸uHEHHHuPH]H]UHH$HLLH}HuHUMHH}t)LmLeMtLH艽LShHEH}tHUHu̽H7HcHxuUHEMHUH}H꽿HEƀHEH}uH}uH}HEHνHxHpH`H w˽H蟩HcHu%H}uHuH}HEHP`qνϽgνHHtFѽ!ѽHEHLLH]UHHd$H}HuHHEHudHEHHxpuPEHEHHxxHEHEHHMHEHPp}tH}H]UHHd$H}HuUHHEuHEf8t H}(ÿ!HEf8stEu HEfHuUH}蕬H]UHHd$H}HgH(xHHuH=jH]UHH$pH}HuHHEHD$HEHHT$0HHD$(HED$ HED$HED$HE$HEDHEDHEHEHEH}qEEH]UHH]UHHPH HѴH5wH=si.H]UHHd$H]LeLmLuL}H0H=tPIIHxHHxIMtMLbHLLAHkHdHEHEH]LeLmLuL}H]UHH$HLLLLH}HuHUH &H}t)LmLeMt LH许LShHEH}tHUHu4ǽH\HcHxHEHUH}HjEEEH]E-vEDŽ8}}H} *gH} HfHcHT$`L1%AEtYDHHHH4$=89uH$HtHRHcH=LH4$$~HHD9~m1H|$h.Lt$hgAUHHt$xHHt$xH|$p6H|$pL3HtgAULHHaH|$x#H|$p#H|$h#H#HD$`Ht輸H$A^A]A\[Hd$HHHǺHd$SATAUAVHd$IIIHD$hHT$Ht$ 茳H贑HcHT$`u_L1n#1H|$h-Ht$hHLÃuHLLÃtL $LDH|$h"HD$`Ht軷Hd$xA^A]A\[SATAUAVAWHd$IHt$xIHD$pHT$Ht$ 訲HАHcHT$`LIHcHD$hH5EtHL$hH|$x衃E1A1H|$p,Ht$pDHLAAtAAAuDHLLgAAtAAAuIcHD$hH5sHL$hH|$x E1A@1H|$p+Ht$pDHLAAt3DL0Ht$pHt$pHD$xHIcHDH$A\[UHH$@HPH}HuHUHMLELMH=9eHAcHEHUH`H0HcHXu[]؅|1E@EHUHcEH4H}HEHP;]ڊE$HuLMLEHMHUH}¥H}蹎HXHt8HPH]UHH$PHXH}HuHUHMLEDMH=9eHAbHEHUHhH0HcH`uQ]|1E@EHEHcUH4H}HEHP;]HuDEHMHUH}̤H}ÍH`HtBHXH]H$H|$Ht$ H$HL$DD$HDŽ$HT$@Ht$X0HXHcH$nH=e$aHD$(H$H$堽H HcH$D$4HD$HtH@D$0 fDD$4HcT$4Ht$H="Z8uD$4D$8 D$8D$8;D$0HcT$8Ht$H=ZK8t׋D$4;D$8?HcL$8HcD$4H)HcT$4Ht$H$i"H$H|$(HD$(HPD$8D$4D$4;D$0JHt$ DD$HL$(H$H|$(H|$(鋽H$HtgҢH$%H$HtCH$UHH$HH}HuHUHMLEHDžHUHp)HQ}HcHh!H=e_HEHPH➽H }HcHHULEHMHuH}H}HEHHcHH5]`HH}غoH}HEHÃ|QEẼẺH}HHEHHHEHHcUH<;]8H}/HHt订Hm HhHt茢HH]UHH$PH`LhLpLxL}IIHIMHEHUHukH{HcHUuOD$L,$HMLHuLM1H}t'HUH=e HH5H 4H} HEHt譡H`LhLpLxL}H]UHH$HLLH}HuHUH$нH}t)LmLeMtνLH謍LShHEH}tHUHu2HZzHcHUulHEHUH}HHE@`HEHǀHEƀHEH}uH}uH}HEHޞHEHpHhH(艛HyHcH u%H}uHuH}HEHP`胞yH HtX3HEHLLH]UHHd$H]LeLmH}HuH(νH})LeLmMtj̽I]HLHMHHHHHEƀLmLeMt̽I$H躋LH}H1H}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuH}H(ͽHEHuuHELH_uL H_uL(MtY˽I]HLLHEHǀHEHxxuHEHHuHEPxH]LeLmLuH]UHHd$H]LeLmH}H ̽HEH/LmLeMtʽI$HOLH]LeLmH]UHHd$H]LeLmLuL}H}H8S̽H]LeMt?ʽM,$L㉼HAHEuHEx`w HE@P tHEHuHUHHUIH]C`=vɽDs`HR]uL(HH]uHHtɽL#L>LDLHMA$HUHHEHt?HEHǀHLnHPHH=e职HH5HHEHxhuHEHxpHuHEPhH]LeLmLuL}H]UHH$HL L(L0H}HʽHEuHEx`wHUHuҖHtHcHUu)LeLmMtKȽI]HLHEHHUH@oHtHcH8u?HXL0IHXL(MtǽI]HvLLEH8Ht$HL L(L0H]UHHd$H]LeLmH}HuHUH0CɽHEHH}HpHtCHUHEHHEHLmLeMtƽI$H蕆LH]LeLmH]UHHd$H}HȽHEHuHEHHuHEH]UHHd$H]LeLmH}@uH(GȽHE:Eu6HEULeLmMtƽI]H蹅LH]LeLmH]UHHd$H]LeLmH}uH(ǽHE@`;Eu3HEUP`LeLmMtŽI]H0LH]LeLmH]UHHd$H}HuHUHMH ;ǽHkH8uHuHMHUH}Hj0HFnHPHH=HfCHH5HAH]UHHd$H}HuHƽHjH8uH}HuHuj0HFnHPHH=ȁfÇHH5HH]UHHd$H}HuHUH/ƽHjH8uHUHuH}Hi0H2FnHPHH=@f;HH5H9H]UHHd$H}HuHŽHiH8uHuH}HiHE0HEnHPHH=Āf迆HH5H轓HEH]UHHd$H]LeLmLuH}HuH0#ŽH})LeLmMtýI]H誂LHEHu>HELLeHELMt½I]H_LLH}HH}uH}uH}HEHPpH]LeLmLuH]UHHd$H}H7ĽHEHuHEHHxpHuEEEH]UHHd$H}HýHEHuHEHHE H}MHEHEH]UHHd$H}HýHEHuE H}EEH]UHHd$H}HuH3ýHEH}HSHEHp8H=VsuHEHp8H}H]UHHd$H]H}uH ½HEHtE}}HEHH@p@E}|EE;E}/Hc]HqHH-HH9v|]E;EuHEHHxpUuH]H]UHHd$H]LeLmH}HuH(HEHH} Hu[HEHHu(HEHu7HELHELMt薿I]H:LH]LeLmH]UHHd$H]LeLmLuH}HuH0CHEHH;EuHEHu>HELLeHELMtI]H~LLH}u0LuLeLmMt达I]Hb~LLH]LeLmLuH]UHHd$H}HuHsHE@Pt#HuH=1T$qu HuH}H]UHHd$H]LeLmLuH}H0HEHuHHELLeHELMtѽI]Hu}LLHcH8uDLuHcL HcL(Mt|I]H }LLu-H}uHUH@6tEEEH]LeLmLuH]UHHd$H]LeLmLuH}H0׾HEHuHHELLeHELMt衼I]HE|LLHbH8uDLuHubL HkbL(MtLI]H{LLu-H}uHUH?tEEEH]LeLmLuH]UHH$HLLH}HuHUH蔽H}t)LmLeMtwLH{LShHEH}tQHUHu袉HgHcHUHEHUH}HHH=etHUHBpHH=tHUHBxHEHPxHEH HJHBHEǀHEH}uH}uH}HEHHEHpHhH(軈HfHcH u%H}uHuH}HEHP`赋@請H Ht芎eHEHLLH]UHHd$H]LeLmH}HuH(跻H})LeLmMt蚹I]H>yLHEHxxrfDHEHxpHHsHEH@pxHEHxprH}H+H}uH}uH}HEHPpH]LeLmH]UHHd$H]H}HuHUHMH8ǺHEH@pHcXHqHH-HH9v賸}KEDE܃EHEHxpu'HEHEH@H;Et H}HuU;]~H]H]UHHd$H}HuUH HEHxpHuE}}E;Eu uH}H]UHHd$H}uH费HEHxpudHEHEH]UHHd$H}HwHEH@p@EEH]UHHd$H]LeLmLuL}H}uHUH@,HEHxpuH;EtEHEHxpuL}ILMMt鶽I$ILvHLAH]LeLmLuL}H]UHHd$H}HuH蓸HEHH;EtHEHu,HEHpxHEH#&HEHHuHEHUHHEHu,HEHpxHEH(HEHHuH]UHHd$H]LeLmH}HuH(跷HEHH;Et)LeLmMt萵I]H4uLH]LeLmH]UHHd$H]LeLmLuH}HuUH80EHuH}}tHEHH;Et5LuILmMt崽I]HtLLFHuH=Lgu0LuLeLmMt蝴I]HAtLLH]LeLmLuH]UHHd$H}HuHSHEHH;Et,HQmZHH={qfvwHH5HtHEHxpHuHEHUHHuH}H]UHHd$H}HuHõHEHH;Eu-HEHǀHEHxpHuHuH}H]UHHd$H]LeLmLuL}H}H8CHEHuHEHHuHEHEH@pHcXHqcHH-HH9vAA}WE@EEHEHxpuwILMMt袲M,$LFrHAD;}~H}۵H]LeLmLuL}H]UHHd$H]LeLmLuH}HuHH3HEHxv.EHExuSfEf}uHEH@pHcXHqKHH-HH9v}EDEEHEHxpu_HEHuH=(Q[duzHEff;Et5HEHu!H}#IuL }0LuLmMt$MeLpLA$E;]~FEEH]LeLmLuH]UHHd$H}HuHòEHEHuHEHHUHuHEEH]UHHd$H}HgHEHH=]JH&HEHEH]UHHd$H}HuH#EHEHuHEHHUHuHEEH]UHHd$H]H}HuH 迱HEH@pHcXHqHH-HH9v諯]5fDHc]HqѯHH-HH9vt]}}%HEHxpuHx HuuEH]H]UHHd$H}HuH HEH}HE}}uH}HEHEHEH]UHHd$H]LeLmLuH}uH@脰HE;Et1HEUHEtHEH@pHcXHq薮HH-HH9v9}EEEHEHxpuHEHuH=xM`uEt tUzHEtHE@H}.LuLmMt芭MeL.mLA$*}t HUHEH}@;]~5H]LeLmLuH]UHHd$H}HHEHpH=L_EEH]UHHd$H}HǮHEHpH=PL_EEH]UHHd$H}H臮HEHpH=LC_EEH]UHHd$H}HGHEHpH=K_EEH]UHHd$H}HHEHpH=K^EEH]UHHd$H}HǭHEHpH=PK^EEH]UHHd$H}H臭HEHpH=KC^EEH]UHHd$H}HGHEHpH=J^EEH]UHHd$H}HHEHpH=J]EEH]UHHd$H}HǬHEHpH=PJ]EEH]UHHd$H}@uH胬H]UHHd$H}HuHSH]UHHd$H}@uH#H]UHHd$H}@uHH]UHHd$H}uHīH]UHHd$H}uH蔫H]UHHd$H}HuHcH]UHHd$H}uH4H]UHHd$H}HuHH]UHHd$H}uHԪH]UHHd$H}fuH裪H]UHHd$H}@uHsH]UHHd$H]LeLmLuL}H}HuH@/HEH}HaEH}裥fEEIDuH]LeMtI$ILgHDLA(EH]LeLmLuL}H]UHHd$H]LeLmLuH}uH8脩DuH]LeMtlM,$LgHDAfEEH]LeLmLuH]UHHd$H]LeLmLuL}H}fuH@ELmLeMt䦽I$HfLHcHqHH-HH9v¦AA}YEEEDuH]LeMtoM,$LfHDAf;EtEED;}~뮋EH]LeLmLuL}H]UHH$HLLH}HuHUH䧽H}t)LmLeMtǥLHleLShHEH}t3HUHusHRHcHUHEHUH}HHEƀHEǀHEƀHEHǀHEǀHEH}uH}uH}HEH~vHEHpHhH()sHQQHcH u%H}uHuH}HEHP`#vwvH HtxxHEHLLH]UHHd$H]LeLmH}HuH('H})LeLmMt I]HcLHEHU]HEH E]HEHuHEH%]H}HUH}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuL}H}HuH@?HEH;Et;HuH=BUuHEHEHE@H})HEHH}UHEHH}HE@H}}HE@H}9HEH}HEDLeLmMtwI]HbLDHELLeLmMt@I]HaLLHEH} HEHH}A HEH}~H}5HH}HEH}HUHEH@(HB(HE@H}HELLpxH]LeMt~M,$L"aHLLAHMHUHHHHHMHUHBhHAhHBpHApHMHUHHHH HuH}cH]LeLmLuL}H]UHHd$H]LeLmLuL}H}@uHH蟢HE:EtHEHHcXHqϠHH-HH9vrHEE}bEEEHEHuIDuLMMtM<$L_HDAE;E~HUEH]LeMt迟M,$Lc_HAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHH_HEHH}+HtHEHHcXHq腟HHHH9v'HEE}_EEEHEHuILuLMMt軞M<$L_^HLAE;E~HEHHuܼH]LeMtpM,$L^HAH]LeLmLuL}H]UHH$PHPLXL`LhLpH}@uHHEuBHE:EtHEtHEƀHUHulH,JHcHUHEHHcXHqӝHHHH9vuHxx}bEEEHEHuIDuLMMtM<$L\HDAx;E~HUEHEHEuHEH HcHq윽HH-HH9v菜}zEfDEEHEHulHEHEH;Eu:HuH=;Nu$HEHU;t H}@;]~LeLmMtכI]H{[LMmHEƀHEHtnHPLXL`LhLpH]UHHd$H]LeLmLuL}H}@uHH?HE:Et0HEHuBHEHtHUEHEHtEHEHHcXHqHH-HH9vHEE}`EEEHEHu,IDuLMMtSM<$LYHDA E;E~HUEH]LeMtM,$LYHAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uHH谛HE;EtHEUHEHHcXHqәHH-HH9vvHEE}fEEEHEHuIDuLMMtM<$LXHDA(E;E~H]LeMt̘M,$LpXHAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uHH`HE;EtHEHHcXHq萘HH-HH9v3HEE}cE@EEHEHuIDuLMMt×M<$LgWHDA@E;E~HUEH]LeMtM,$L#WHAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHHHEHH}HtHEHHcXHqEHHHH9v疽HEE}_EEEHEHuTILuLMMt{M<$LVHLA8E;E~HEHHuԼH]LeMt0M,$LUHAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uHHЗHE;EtHEHHcXHqHH-HH9v裕HEE}cE@EEHEHu IDuLMMt3M<$LTHDA0E;E~HUEH]LeMtM,$LTHAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHH菖HEHH}[HtHEHHcXHq赔HHHH9vWHEE}_EEEHEHuILuLMMt듽M<$LSHLAHE;E~HEHHuҼH]LeMt蠓M,$LDSHAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uHH@HE;EtHEHHcXHqpHH-HH9vHEE}cE@EEHEHu|IDuLMMt裒M<$LGRHDAPE;E~HUEH]LeMt_M,$LRHAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}fuHHHEff;EtHEHHcXHq-HH-HH9vБHEE}aEEEHEHuH8tH}H5":ZErHMHUHH=5HxHEIH=L0AH=HHt@L#L?DLLHxA$EQH}HEHtSEHPLXL`LhLpH]UHHd$H}HuH賁HEHHuHlEEH]UHH$PHPLXL`LhLpH}HuHUH}|H=HUHuMH+HcHUurHMHUHH=5 HxHEIHh<L0AH[<HHt~L#Lq>DLLHxA$E1PH}舼HEHtQEHPLXL`LhLpH]UHHd$H}HuH3HEHHuHEEH]UHHd$H]LeLmLuL}H}HuHUHMHXHELEHMHHH=6IHEHEIH;L0AH;HHt}HIL"=DLLHuA$E܋EH]LeLmLuL}H]UHH$PHPLXL`LhLpH}HuH~HEHUHu0KHX)HcHUH}H LEHMHHH=<4 HxL}H9L0AH9HHtY|L#L;DLLHxA$EL}DuH9L(H9HHt |L#L;LDLA$zMH}ѹHEHtNEHPLXL`LhLpH]UHHd$H]LeLmLuL}H}HuHUHPk}HEHMHHH=N5IHEHEIH8L0AH8HHt{HIL:DLLHuA$EEH]LeLmLuL}H]UHH$PHXL`LhLpLxH}HuH|HEHUHuHH&HcHUuhH}H譸HUHuH}EL}DuH7HH7L MtzM,$L9HDLAKH}׷HEHtLEHXL`LhLpLxH]UHHd$H]LeLmLuL}H}HuHUHMH`g{HEHEHEHEL}LuH6HH6L Mt/yI$IL8HLLHMLEAE܋EH]LeLmLuL}H]UHH$PHPLXL`LhLpH}HuHUHzHEHUHuFH%HcHxulH}H趶HMHUHuH}EL}DuH5HH5L MtxM,$L7HDLAIH}ܵHxHtJEHPLXL`LhLpH]UHHd$H]LeLmLuL}H}HuHUHMH`wyHEHEHEHEL}LuH4HH4L Mt?wI$IL6HLLHMLEA E܋EH]LeLmLuL}H]UHH$PHPLXL`LhLpH}HuHUHxHEHUHuDH#HcHxulH}HƴHMHUHuH}EL}DuH3HH3L Mt&vM,$L5HDLAGH}쳼HxHt IEHPLXL`LhLpH]UHHd$H}uHwEHH&3H4H}贽H]UHH$HLLH}HuHUHMH0wH}t)LmLeMtuLH4LShHEH}tHUHu>CHf!HcHxuXHEHUH}HHEHx HuHEH}uH}uH}HEHEHxHpH`H BH HcHu%H}uHuH}HEHP`E(GEHHtrHMHHEHLLH]UHH$HLLH}HuHUHuH}t)LmLeMtgsLH 3LShHEH}tHUHuAHHcHUuDHEHEHxHufHEH}uH}uH}HEHfDHEHpHhH(AH9HcH u%H}uHuH}HEHP` DEDH HtFFHEHLLH]UHH$HLLH}HuHUMHsH}t)LmLeMtqLHy1LShHEH}tHUHu?H'HcHxuQHEHUH}HHUEB HEH}uH}uH}HEHBHxHpH`H k?HHcHu%H}uHuH}HEHP`eBC[BHHt:EEHEHLLH]UHH$HLLH}HuHUHMHPrH}t)LmLeMt3pLH/LShHEH}tHUHu^>HHcHxuXHEHUH}H HEHx HuHEH}uH}uH}HEHAHxHpH`H =HHcHu%H}uHuH}HEHP`@HB@HHtCmCHEHLLH]UHH$HLLH}HuHUHMLEHpH}t)LmLeMtnLH$.LShHEH}tHUHx@>HHtAAHEHLLH]UHH$HLLH}HuHUHMLELMHnH}t)LmLeMtlLH`,LShHEH}t HUHp:H HcHhu[HELEHMHUH}HiHUHEHB0HEH}uH}uH}HEH=HhHpHPHE:HmHcHu%H}uHuH}HEHP`?=>5=HHt@?HEHLLH]UHH$HLLH}HuHUHMLEHmH}t)LmLeMtjLH*LShHEH}tHUHx'9HOHcHpudHEHUH}HHEHx(Hu䨼HUHEHB HEH}uH}uH}HEH;HpHpHXH8HHcHu%H}uHuH}HEHP`z;=p;HHtO>*>HEHLLH]UHHd$H]LeLmH}HuH(wkH})LeLmMtZiI]H(LHEHx #H}HOH}uH}uH}HEHPpH]LeLmH]UHH$HLLH}HuHUHMHjH}t)LmLeMthLH8(LShHEH}tHUHu6HHcHxuSHEHUH}HlHUHEHB HEH}uH}uH}HEH9HxHpH`H (6HPHcHu%H}uHuH}HEHP`"9:9HHt;;HEHLLH]UHHd$H}HuH3iEHEHH5 ZyEH]UHHd$H]LeH}HuH(hLeMtfI$H&HHusEEH]LeH]UHHd$H]LeH}HuUHMH8hLeMttfI$H&HHu E܋EH]LeH]UHHd$H]LeH}HuHUH0hLeMtfI$H%HHuEEH]LeH]UHHd$H]LeH}HuHUH0gLeMteI$H;%HHu/EEH]LeH]UHHd$H]LeH}HuHUH07gLeMt'eI$H$HHuEEH]LeH]UHHd$H]LeH}HuHUH0fLeMtdI$H[$HHuOEEH]LeH]UHHd$H]LeH}HuHUH0WfLeMtGdI$H#HHuEEH]LeH]UHHd$H]LeH}HuHUH0eLeMtcI$H{#HHuoEEH]LeH]UHHd$H]LeH}HuHUH0weLeMtgcI$H #HHuEEH]LeH]UHHd$H]LeH}HuHUHMLEH@dLeMtbI$H"HHuEԋEH]LeH]UHHd$H]LeH}HuHUHMLEH@dLeMtbI$H#"HHuEԋEH]LeH]UHHd$H}uHUH0dKrH]UHHd$H]LeLmLuL}H@cH==tIIH#8HH8IMtaML_!HLLAH=EEE LuHx=IL%j=Mt^aM,$L!LHLAH;=HEHEH]LeLmLuL}H]UHH$ H L(L0L8L@H}uUH}HbHDžXHUHu/H* HcHx}duHEH`HCZHhHcEHPHHPHHPEZHPHXMHXʼHXHpH`H}HKHHu/HEH}t-HuH]H8HEH}u H})HEHuH=r nUuH]LeMth_M,$L HA(tULeH]Ht5_L+LLA0"LeLmMt_I]HLLuAH]Ht^L#LqDLA$`H}腘H}{HHH]LeMt^M,$L%HAHcHq^HH-HH9v^^AALHHHHt^L#LLDDA$XH}tH}t\}tTHEHpHDžh HhH>gHPIHH=XeA"HH5H-/HXnH}eHxHt0HEH L(L0L8L@H]UHHd$H]LeLmLuL}H}HuHUHMLELMHp^HEHEHEHEHEHEL}LuH]LeMt\I$IL\HLLHMLELMAPH]LeLmLuL}H]UHHd$H]H}HuEHPJ^HEHEȺHH}}HUHEHHEHBHEHBHEHUHHEHUHPH}uvHE*^EH-HH-HH9v[HEXHE*^EH-HH-HH9v[HEXHE@HE@H]H]UHHd$H}HuUMDEDMH0%]UH 7D H}DEMUHuH]UHHd$H}HuUMDEDMHP\EȉD$HEHH$HEHHDHpH}DEЋM؋UHu~H]UHHd$H}HuUMDEDMHPE\E$EH$6D$H}DMDEЋM؋UHuH]UHH$@HXL`LhLpLxH}HuUMDEDMH[HEZ@EHwZHtZEuvED$E$HEHHUEHEEHEDuDmH]HEL Mt3YM<$LHDDEAEAH}AHEHc@LceIqLYLH-HH9vXHEHc@Hc]HqYHH-HH9vXڋu؋}D茞HEHUHMLEHEH8}AUHuDHXL`LhLpLxH]UHHd$H}HuUHMLEDMH0ZHEH8DMHMLEUHu%DH]UHHd$H}HuUMDEDMHHYEH3$H}DMDE؋MUHuH]UHHd$H}HuU؉MDEDMHhUYED$HEHHD$HEHH@p$H}DMDEȋMЋUHu6H]UHHd$H}uHUHXHEHHUuH]UHHd$H}uHUMH XHEH8MHUuwH]UHHd$H}HgXHEHEEH]UHHd$H}H'XHE@EHE@EHEH]UHHd$H}HWHEH8EEH]UHH$0H@LHLPLXL`H}HuUMDEDMH|WHEHHUȋEHEZ@EH+ZH(ZEu E D$E$HEHHUEHEEHxDuDmH]HEL MtTM<$LHDDxAEAH}A}}HEH;EqE D$E$HEHHUEHEEHEDuDmH]HEL MtNTM<$LHDDEAEAH}AeHEHc@LceIqgTLH-HH9v THEHc@Hc]Hq4THHHH9vSڋu؋}D覙HEHUHMLEHEH8} AUHu?}}HEH;EHEHc@LceIqSLH-HH9vFSHEHc@Hc]HqpSHH-HH9vSڋu؋}DHEHUHMLEHEH8} AUHu>H@LHLPLXL`H]UHH$HLLH}HuHUMHQTH}t)LmLeMt4RLHLShHEH}t7HUHu_ HHcHxHEH}H HEHUHPHUEB}uHEH@HxxLHUB HE@HEH}uH}uH}HEH"HxHpH`H HHcHu%H}uHuH}HEHP`"$"HHta%<%HEHLLH]UHHd$H}HRHEH@HxxHEpMHEHEH]UHHd$H}HWRHEHEHEH]UHHd$H]H}H#RHExuEHEHcXHqdPHH-HH9vPHEXHExESHEHcXHqPHH-HH9vOHEXH]HEH@HxxJ;CEEH]H]UHH$pHpH}HuHUHBQHEHUHuHHcHxuoH}t E]HE苀EHEDHE苈LMHUHuH=֑H]HH}HڋuH}. H5'lH}CHxHt!EHpH]UHH$HLLLLH}HuH0PHEHUHp]HHcHhCH}tHEH;EtHEtHEHU;tHEHU;tHEHcHEHcHqMHHHH9vfMH}HEHcHEHcHqzMHkqoMHH-HH9vM]HELcHcELq5MH]LLuIcHH9vLMcLHKHELHHcLHLHEEHEHcHEHcHqLHHHH9v:LHEH}uH]LHcEHH9vKLcmLHKHEHEHcHq LHH-HH9vKH;E}zE؃EEEHELx`LmDuHEHHEL``Mt0KLH HDLLHcEHE;E~UHEHcHq?KHH-HH9vJAA}EDEEIHymIHomHHtxJIL LLA$xHEHPHHHcHucHUЋuH} HEDHELMHuHH=H]HH}HڋuH} UH}LHHtD;}~+H5$lH}>HhHtHLLLLH]UHHd$H]H}uH(0KHE;E}HcEHUHHcHHHHH-HH9vH]}uNHEHHcHcEH)qIHc]HqIHH-HH9vH]HEHcHcEHqHHEHcHqHHUH5$HEHHMHHUEH]H]UHHd$H}uUHI}uHE苀;E|H HE苀;E~HH]UHHd$H}HIHmH@HH=HeH HH5HH]UHHd$H]LeLmLuH}H0'IHEt~H}u7HELp`LmHEL``MtFLHLLHEH5#HEHHMHCHEǀH]LeLmLuH]UHHd$H]LeLmLuL}H}uH8PH}tHEHuH}HEHcHqsFHcEH9LHEHcHqRFHHH9vEE=vEuH}HEHcHqFHH-HH9vEHEH}Vu?HELx`DuH]HEL``MtLEMLHDLAH]LeLmLuL}H]UHHd$H]LeLmH}HuH(FH})LeLmMtDI]HnLH}H蕬H}uH}uH}HEHPpH]LeLmH]UHHd$H}HuUMDEDMH0EFUH* D DEMUHuH}_H]UHH$pH]LeLmLuL}H}HuUMDEDMHEE$EHD$EHEEHEEHEDuLmH]LeMtCI$IL#HLDEEAEAAH]LeLmLuL}H]UHH$ HXL`LhLpLxH}HuЉUȉMDEDMHD}|HE;E~H}%ED$ ED$ED$HEHD$HEH$HEHEu}XHEHUHEHEHEHEHEHP`HUL}DuH]HEL``MtBLILHDLH}LELMAHXL`LhLpLxH]UHH$pH]LeLmLuL}H}HuUMDEDMH{CEȉD$HEH$HEHBpHEEHEEHEDuLmH]LeMt$AI$ILHLDEEAEAAH]LeLmLuL}H]UHHd$H}HuUMDEDMHHBEH$DMDE؋MUHuH}H]UHH$H8L@LHLPLXH}HuЉUȉMDEDMHB}|HE;E~H}eED$ ED$E D$HEHD$HEH$HEHEu}蘅HEHUHEHEHEHEHUHB`HhL}DuH]HEL``MtQ?LILHDLHhLELMAHEHUE}|HE;E~$ED$ ED$E D$HEHD$HEHEu}蝄HEHUHEHxHEHpHELx`LuЋEH`H]HEL``MtQ>LILHދ`LLLxLpAH8L@LHLPLXH]UHHd$H}HuU؉MDEDMHh?ED$HEHD$HEH@p$DMDEȋMЋUHuH} H]UHHd$H]LeH}HuH K?HEH蟫HEHEf@4HE@)HE@ LeH]=v!=AD$LeH]=v<AD$HE@HE@HE@HE@ HE@HE@!HE@"HE@#HE@$HE@%HE@&HE@'HE@(H]LeH]UHHd$H}uHUH0>HEuH}HH]UHH$HLLLLH}uHUMH@=}|HE;E~ H}t@HhuH} uHhwHDžHHHHPHhtHhHH=xZ˴H`AHH=NZAHXHEHEHH%LLXHXHt:L#LWLLA$8H`HHXHHAALXMtP:M<$LDEAHHALhLXAHXHt9L#LDLLA$pHHHPHh"`HXFH`:LHLPLmH]Ht9HIL*LLLA$HhHLLLLH]UHH$HLLLLH}HuUH8:HE胸t H}tsHpH}uHpHDžPHPHXHptHpHH=WHhAHH=~WqH`HEHcHEHcHqi8HH-HH9v 8HE苐HH "L L`H`Ht7L#LQLLA$8HhHH`HHAAL`MtJ7M<$LDEAHHALpL`AH`Ht6L#LDLLA$pHPHXHp]H`@Hh4LPLXLmH]Ht6HIL$LLLA$HpHLLLLH]UHHd$H]H}HuH7HEHHEtHuH}bHEHcHEHcHq6HHH9v5HEXHEHcHEHcHq5HEHcHq5Hkq5HHH9vZ5HEHXPHUHEHHBHH]H]UHHd$H}H6zHEHEH]UHHd$H}uHUH6HEuH}HH]UHH$HLLLLH}uHUMHPD6HEt H}t^HhuH}tuHhH8H 9ڻDž8HHHPHh3tHhHH=R>H`AHH=R贪HXHEHEHHFLLXHXHt%3L#LLLA$8H`HHXHHAALXMt2M<$LgDEAHHALhLXAHXHtm2L#LDLLA$pHHHPHhXHXH`H8QHH}E#HPu HPHHu HHHh HLLLLH]UHHd$H]LeLmH}uHUH0t3HEH8HE胸tuH}6HuH}}}HEHcHEHcHqm1Hkqb1HHH9v 1HEHXPLeM$HEHcHcEHq1HEHcHq1HHH9v0HI$pμITHEHPHH]LeLmH]UHHd$H}HuHC2HEHH:t H}蒚HEHUHHH]UHHd$H}H1HEHHEHEH]UHH$ H(L0L8L@LHH}uHUHw1EH}W}|EHEHcHq/HH-HH9vE/HE艘HE苰H}HEHcHqR/HcEH9LHEHcHq1/HHH9v.E=v.UH}HUuH}HXH}[uUHEHP`HPLXDuLmHEHX`HtC.ILLDLHPA$H(L0L8L@LHH]UHHd$H]LeLmLuH}uUMHP/HEHcHEHcHq-HHH9v-]܋]Hkq-HHH9v~-]؀}tI}+BHEHMLUEHs-HHH ˼IHDžpHUHuHƻHcHxHEHxEHEHxÉ=vHEH@HEHxÉ=vHEH@HEH@HHEH@HEH@HHEH@]HqHHH9vVHhEfDEEHEHxEHE}wkHELxLuAHEHXHtL#LsػDLLA$HuAHHp3bHpH5Y`fHtIIHSmIHImHHtRIL׻LLA$xHE1HuAHHpaHpH5#YeHtIIH)mIHmHHtILu׻LLA$xHEHuAHHp/aHpH5Y\eHtFIHWmIHMmHHtNILֻLLA$xHE0HmHPHH=maHH5H_HEHXHELhMtMeLֻHA$Hq!IHELhHEHXHtL#LGֻLLA$HELh]LeLuMtjM>LֻLLAHEHxHuHH}мh;EvHpSHxHtH@LHLPLXL`H]UHHd$H]LeLmLuL}H}HPHEHxEHc]HqHHHH9vHE؋E؃} EEEIHmIHmHHtILԻLLA$xHEHEHxEHELxE=vDmH]LeMtM4$L`ԻHDLALmLeMtM4$L.Ի@LA`HEHxHuHH}μE;E~H]LeLmLuL}H]UHHd$H}HHEHK~H}HuHUHEHEH`:H]UHH$0H8L@LHLPLXH}HuUHMLEDMHkHcUHcEH)qHEHcH9tDHcUHcEH)qHEHcH9t MUDMDEHuH}IL5ݼmL-ּmMtLHһLLxHEHUHpH:HcHhuhEH HUȋuH}nL}LuHEH`LmH]HtWL#LѻLLH`LA$hH}̼HhHt5H8L@LHLPLXH]UHHd$H]LeLmLuL}H}HuUHH}toHYffEL}LuLeMtvM,$LѻLLAHuHHE胸 HuHoH{YffELuH]ALeMtM,$LлDHLAHuHHE胸 HuH#H]LeLmLuL}H]UHH$PHXL`LhLpH}HuHaHHEHwHEHdHEHUHu޼H趼HcHx|HH=5e!ɼHEHH=5e ɼHEHuH}LuILmMtI]HbϻLLHMAHH=\HELeLmMtoI]HϻLHHuH}zH}LuILmMt&I]HλLLLeLmMtI]HλLHHEHxLeLmMtI]HeλLHHEHxHu#H}ɼH}ɼH}ɼHxHtHXL`LhLpH]UHHd$H]LeLmLuL}H}HuH8HEH@HcHEH@HcHqFHEH@HcHq,Hkq!HH-HH9v AHEH@HHHoIH]LeMth I$IL ͻHLDAH]LeLmLuL}H]UHHd$H}HuHHEH@苰H}HhHtMͼEHLLLLH]UHHd$H]LeLmLuH}uH8HEHx}HDHHHIHEH@H@L9vHEH@JHELuLmMtoMeLLA$0;E}AHEH;X}HEH@HPHEH;PvFHEHPHEH@HHEHEH]LeLmLuH]UHH$HLLLLH}HuHUHEH]HHkIH IHLLɛLmH`vHEHUHXƼH᤻HcHPH}%EH}Z0H}GHH覧HHHuXH8HFƼHnHcHHHEHEȋH^HELmH]HtL#L+LA$(u0H]LeMtVM,$LHA0HEHEHEHD$HEȋ$H]LeMtM,$L謶HAALmH]HtL#L耶LA$0¾DHUHMHuH}YEEH]LeLmLuH]UHH$HLLLLH}HuUMHTHEHxH8蔼H輚HcH07H}t E"H]LeMtM,$L蕭HA0HcHcMHHHHH-HH9v]LmH]HtL#L=LA$HcHcMHHHHHHH9vu]H}EH}EH}a%Hc]HqHH-HH9v%H} EDEEHc]Hq(HHHH9vH}EfEEHc]HqHcEHqHH-HH9vdAHc]HqHcEHqHHHH9v%AHc]HcEHqOHH-HH9v؉LcuHcELqLH-HH9vDDD1H H(H HEH(HEH}:HHIMuHH葹H蹗HcH(fLXHEHEHD$HE$H]HtL#L胪LHEDHMLEHuHAH]HH}艈HڋuH}ʺLBjILMMtZM4$LHLAV`H(HtSHc]HqHHHH9v&];E~k;E~nH5gkH}޼H0HtݼEHLLLLH]UHH$HLLLLH}HuHJHEH;EtHuH=&u|HEHEH}OHUHxZH肕HcHpHE苐HE苰H}H}H}18HH6IMuHXHᶼH HcH]FfL託HEHEHEHEHxxHEHUHEHUHEHUHEHE؋H}莞HE؃HEHcHEHcHq HkqHH-HH9v]HEHcHcEHqHELHH8HELHHLLH\LԖ蕸ILMMtM,$L萦HLAU`HHt幼PH}HpHtƹ HuH}HLLLLH]UHHd$H]LeLmLuH}HuH03HEH= Hu2LuLeLmMtI]H覥LL HuH}KH]LeLmLuH]UHHd$H]LeLmH}H HEHcHqHH-HH9vHEHEt)LeLmMt;I]HߤLH]LeLmH]UHHd$H}HHEtHE=H}*HEHuHEHHuHEHEƀH]UHHd$H}uUHq}uHEH ;E|H.H};E~HH]UHHd$H}HHfmH@HH=NdH6HH5H4H]UHHd$H}HHEHxx*H}HEƀH}mH]UHH$HLLH}HuHUH4H}t)LmLeMtLH輢LShHEH}t7HUHuBHjHcHUHEHUH}HHEǀHEǀLeLmMtI]H#LHEH}uH}uH}HEHʳHEHpHhH(uH蝎HcH u%H}uHuH}HEHP`oeH HtDHEHLLH]UHH$HLLH}HuUMHRH}t)LmLeMt5LHڠLShHEH}t>HUHu`H舍HcHxHEH}HHHEUHEULeLmMtI]H=LHEH}uH}uH}HEH䱼HxHpH`H 茮H贌HcHu%H}uHuH}HEHP`膱|HHt[6HEHLLH]UHH$pH]LeLmLuL}H}HuHyHEH}HHEE$HUHHHUHEHUHHHUILuHʚYHLeMt߼I$IL谞HLLHMLELMA}uHu$HUHHHUHEHUHHHUIL}HWYHLeMt|޼I$ILHLLHMLELMAH]LeLmLuL}H]UHH$`H`LhLpLxL}H}H߼HEHxd-HHiIMuHUHuHBHcHUuRBDLHEHE耸t"HEH@HU苀;uEVLu஼ILMMt7ݼM,$LۜHLAU`HEHtHt-HEEEH`LhLpLxL}H]UHHd$H]LeLmLuH}H0޼HEH@HxufHEH@HpH={NuHHEH@LpHEL`HELhMtPܼI]HLLEHEHx EEH]LeLmLuH]UHH$`H`LhLpLxL}H}uHݼH}5+HH:IMuHUHu멼HHcHUu.fDL踊HEuH}ؔLuլILMMt,ۼM,$LКHLAU`HEHt(HEƀH}H`LhLpLxL}H]UHHd$H}uHܼHEHxxHUuuHEHxxuzH]UHHd$H]LeLmH}HuH(GܼH})LeLmMt*ڼI]HΙLHEHxx蘔H}H='fDHEHHH}IHEH HEHAH}uH}uH}HEHPpH]LeLmH]UHHd$H]LeH}uHUH0HۼHEHtHEHHcHqsټHH-HH9vټ}[EEEHEHuH@H;Et%HEHu}IHUuLI;]~H]LeH]UHHd$H}HuUMDEDMH0UڼUH:D DEMUHuH}H]UHHd$H}HuUMDEDMHPټEȉD$HE$HEDHpDEЋM؋UHuH}H]UHHd$H}HuUMDEDMHPټE$EHdD$DMDEЋM؋UHuH}H]UHH$`HxLeLmLuL}H}HuUMDEDMHؼHEH} UT$U$UHUUHUUHUUHUH]IMMMtּI$ILDLHދE‹EEAEAAHxLeLmLuL}H]UHHd$H}HuUMDEDMEHh ؼE$EHD$EDMDEЋM؋UHuH}H]UHHd$H}HuUMDEDMEH`׼EЋEUHuH}ȉDMDEMUHuH}zH]UHHd$H}HuUMDEDMHHE׼EH*$DMDE؋MUHuH}H]UHHd$H}HuU؉MDEDMHhּED$HED$HE@p$DMDEȋMЋUHuH} H]UHHd$H]H}HuU؉MDEDMHpqּHEH}~HËE D$ED$E$DMDEȋMЋUHuH輓H]H]UHHd$H]LeLmH}H ռHE~ H 0HEt)LeLmMtӼI]HaLHEHcHqӼHH-HH9vӼHEH}RH]LeLmH]UHHd$H}uHUH0ռHEuH}HhH]UHHd$H]H}HuUH ԼHE苰H}HËUHuH藙H]H]UHHd$H]H}uHUMH(ԼHEH}HËMHUuHQH]H]UHHd$H}H7ԼHEHxx:t EHEH}(EEH]UHHd$H]H}HuHӼHEH}HHuH荛H]H]UHHd$H}uUH ӼEuH}EHEHxxHUuIuHEHxxuEuH} EEH]UHHd$H]H}uH ӼHEuOHEHcHcUHq7ѼHUHcHHHHH-HH9vм]EEH]H]UHHd$H]H}uHUMH(YҼHEH}fHËMHUuH衛H]H]UHHd$H}uHUHҼHEuH}HhH]UHHd$H]H}uHUH ѼHE苰H}HHUuHH]H]UHHd$H]H}HuUH \ѼuH}pHHuHH]H]UHHd$H}HuUMH ѼEuH}\HuH}mH]UHHd$H]H}Hu؉UMEH@мHEuX*EYEH-HH-HH9vμڋuH}H}HH}Eq1UuH}H}SHH}HYqH]H]UHHd$H}uUH(ϼEuH}@H}HEHE؋EHE؋EHEH]UHHd$H]H}uUH@}ϼ}~ HE苀EHE耸t EE!HcMHcEHqͼH*HHH?HHHH-HH9v#ͼ]HEHxxHU܋ut}x~ EdT}~ E@*EHY^H-Hkdq̼HH-HH9v̼]HcMHcEHq̼H ףp= ףHHHH?HHHH-HH9vP̼]HEHu#HEHLEMUHuHEEH]H]UHHd$H}uHͼ}~ HEEHEHxxuHEHEH]UHHd$H}uHtͼHEHxxuHEHEH]UHHd$H}H7ͼHXHEHEH]UHHd$H}HͼHEHxx EEH]UHHd$H]LeLmLuH}H0̼HEH}HIIMtʼMuL3LAHEHEH]LeLmLuH]UHHd$H]LeLmH}H +̼LmLeMtʼI$H軉LHHUHH=U訾HUHBxHH="dHUHHEǀHEǀHEǀHE@pH}HE|#HEHE|0H]LmHPHH=d膌HH5H脙H]LeLmH]UHHd$H}uUHʼHE苀;EtHE苀;Et#HEUHEUH}H]UHHd$H}HʼEEEHUEDŽ}sHEƀH]UHHd$H}H'ʼHEƀH]UHHd$H}HɼH]UHHd$H}HɼH]UHHd$H}HɼHEHtHEH}H]UHH$HLLLLH}uHUHMH3ɼHEHUHxvHsHcHp?H}t1H}H}\HHavIMuHXH H4sHcHyDLuHELeMtlƼI$HHHEDHE؋LMHUHuG H]HH}dHڋuH}TLu|荗ILMMtżM,$L舅HLAU`HHtݘHH5AkH}診HpHt跘HLLLLH]UHH$@HXL`LhLpLxH}؉uHUHǼHEHUH`ZHqHcHXlH}t^H}IL5SumL-LumMtļLHMLLxHEH@HՒHpHcHLmLuH]HtCļL#L胻LLA$H}衛H}HHsHHHubHH=HepHcHfDHrHEHEЋHuH}H}視LeLmMtrüI]HL(u0H]LeMtCüM,$L炻HA0HEHEHEHD$HEЋ$H]LeMt¼M,$L虂HAALmH]Ht¼L#LmLA$0¾DHHLLLmH]Htn¼L#LLA$ HLeMtE¼M,$L遻LHEDHUHLM9H]HH}_HڋuH}6Hq*kILHHtL#L_LLAT$`HHt賔H}|HHt蔔H5kH}_HXHtnHXL`LhLpLxH]UHH$@HPLXL`LhLpH}ЉuHUMH¼HEHUH`H?mHcHXWH}tIIL5ijmL-bjmMtnLHLLxHEH@H蛎HlHcHLuLmH]Ht L#LLLA$uH}dH}ȾLmAH]Ht迿L#LdDLA$`H}H}HHoHHHu HH蹍HkHcHrfH|nHEHEHD$HE$H]LeMtM,$L~HAALmH]HtѾL#Lv~LA$0¾DHHLHHxLmH]HtpL#L~LA$0ILmH]HtCL#L}LA$ HLeMtM,$L}LHEDHLLLx H]HH}[HڋuH}H|m|=ILHHt茽L#L1}LLAT$`HHt腐H}wHHtfюH5ʆkH}1HXHt@HPLXL`LhLpH]UHHd$H]LeLmLuH}HuHUMDELMH豾EЉ$HEHD$LmLeMt莼I$H2|LLuLeMtcM,$L|LA0¾:HEHUHMLEDMHUHuH}%H]LeLmLuH]UHH$@HHLPLXL`LhH}uUH踽E;EtuH} uH}}|E}|EH} HHjHxHxHu4HUHu葉HgHcHUDHxTjHEE=v]E=vuH}ߌH}$uQHUHB`HpD}DuH]HEL``Mt葺ML6zHDDHpAHx#jK䋼ILxHxHt3L#LyLLAT$`HEHt/HEƀH}HHLPLXL`LhH]UHHd$H]LeLmLuL}H}H@裻HEHuHEHHUH}HcHqȹHHHH9vjAA}OEEEuH}IMLHtL#LxLA$D;}~H]LeLmLuL}H]UHHd$H]H}HuH诺HEH}HHuH諦H]H]UHH$HLLLLH}HuH :HEHUHx}HdHcHpHDsYffEL}LuLeMtطM,$L|wLLAHDžhH5HhH}H4WH} HHgIMuGHPH軅HcHcHh@LfHEHEHU;uHEt|HEHtH@HHqCHH5HH}H^VLeH}UHHHH9v跶HH}{THEIL;f;ILMMtSM,$LuHLAU`HhHtLH]HtH[HHH-HH9vH}3H}:THHH-HH9v굼}]ADDALmIcHH9v贵McLH}uSKDHEHuH}荣D9~H5:H}QHpHt`HLLLLH]UHHd$H]H}HuHxﶼHEH#HUHu1HYaHcHUu"HEH}HHuH謋'H}nHEHt蠇HEƀH}\H]H]UHH$HLLLLH}HuH8HDžHUHhZH`HcH`H}HHHHG`HcHL}LuAH]Ht至L#L,sDLLA$HuAHHHH5fmYHu,H+oYHH=mpehvHH5HfH}-EHc]HqKHHHH9vH}EDEEH]LmMt苲MeL/rHA$HELmH]ALuMtRM>LqDHLAHuAHHHH52lYHueHuAHHHH5kYHu,HmYHH=oetHH5HH}PEH}DEH}8EHEHXxE=v~uбHHELmH]LeMt3M4$LpHLAHuH};E~U舂H}HHtHEƀH}UHH`HtȃHLLLLH]UHHd$H}HgHEHH=H]HEHEH]UHHd$H}HHEHH=cHk]HEHEH]UHH$HLLLLH}HuHUHMLEDMH8花Hc]HcEHqׯHHHH9vy؉EHcEHEH5xkHMH}HNHc]Hkq肯HEL HH8LLHLUHEHEHEH AIH IHHHt諮HILMnLLD A$ HEHpH0|HZHcHUHEHL}LuHLeMtM,$LmALLHAXHc]HcEH)q@HHHH9v⭼H(Hc]HcEH)qHH-HH9v読AIH IHHHt`ILmLLD(A$ HE]LcuIq膭LH-HH9v)A9}q]ȋEȃEEȃEȋ]LcmIq5LH-HH9vجA9}]ċEăEfEăEă}}iHE@<;E[}}SHE@8;EEHEHHMUċuHEH}uUċuH}!ufEHܮHHEHcELceI)qcLH-HH9vHcEHc]H)q4HHHH9v֫HMH}DD:D;m~D;u~HcUHcEH)qܫHcEH9t*HcUHcEH)q迫HcEH9t HEHEDuD}HDžHIHHHtILjLHDDA$ HEHUHH=C&.HEHEHEHEHLuALeMt蔪M<$L8jDLALA8HEHHH8;HH]Hc]Hq蘪HH-HH9v;}EfEăELceIqPLHHH9vA}ZEEȃEȋUċuH}8HEHEUPHEUPHEUHEUPHED;e~;]~^zH}cH}cHEH;EuH}cH}cHEHtC|HLLLLH]UHHd$H]LeLmH}HuHUHMLEDMHp跪H}u2LeLmMt蚨I]H>hL HEfLeLmMthI]H hL(u/LeLmMt9I]HgL0HEHEE$HEHD$LmLeMtI$HgL HDMHMLEHUH}H]LeLmH]UHH$PHPLXL`LhH}HuHqHEH=^uH.ZuHEHEEH}H}9uH}t EgHH=d`HEHH=d`HEHUHx/uHWSHcHpLuLeLmMt蝦I]HAfLLLuLeLmMtmI]HfLLLuLeLmMt=I]HeLLLuLeLmMt I]HeLLHuH}EpwH}g`H}^`HpHtxHuH}~oEEHPLXL`LhH]UHHd$H}uHUH `HEHxxHUuHEH}uHEH@(@EEEHEH((HHH-HH9vp}w]̋ẼEfẼELeM$(HcEHH9v+Hc]HI$('ItHE}}ẺE}~뗃}}}}Hc]Hq HH-HH9v證}g]̋ẼEfẼELeM$(HcEHH9vkHc]HI$(''ITuH}~gHErrTHEH`HDžX HXHjfHPIHH=̓dhMHH5HYHH=^AHEHEHxHuƻHEЋUPHEH HupYH5lH}[}HhHtj[EH@LHLPH]UHHd$H}uHUHHEH@r‹uHEHx&HEH}u[HUHuVH=4HcHUuUHEHxHMuA8YH} BHEHtZH]UHH$@H@LHLPLXH}HuH!EHUHz%HEH}t EHUHx?UHg3HcHpAuHEHx蕵UH`HhH`HEHhHELeLmMtiI]H FLHcHcEH)q衆HH?HHHH-HH9v7LuLmMtMeLELA$0AMcHcEI)q8LH?IILH-HH9v΅DH}ЉHEHxHUHMHuEWH}@HpHtXEH@LHLPLXH]UHHd$H]LeLmLuL}H}HuHUHMLEH`HEILuLmH]Ht䄼HILDLLLA$HEH(#HHHHH9v贄HEȋEȃ}|EfEԃEHcEIHEH@L9vtH]LeM$(HcEHH9vLLcuLI$("BCDE;E~H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHUHX諅HEHHUH}'HEHq胼HEH5=iHEH(HMH#EHEH(!HHHHH9vJHEЋEЃ}~EEEHc]HEH@H9vHE;E~,H?YHH=@eFHH5HSHc]HEH@H9v轂HEEHcEIHEH@L9v蘂H]LeM$(HcUHH9vpLcuLI$(, BCDH]L(HcEHH9v0LcmLH(CHD$(Hx9H@H$HD$(DHHD$(HxDD$ L$T$t$YHd$HHd$H|$ 4$T$L$DD$HD$ HxHD$ H@HxtFHD$ HxHD$ H@HhHD$(HT$0H|$(Ht$0LL$LD$HL$HQ<$|0HD$ HxmLHHD$ HxDD$L$T$4$;Hd$8UHHd$H]HHuHUHEHEHEHEH}HHxt%HHhHEHUH}HuHU:H@XtE&MtJtDEMUuH HLHhDEMUuH^H^Hx`tUt&HFLH`DEMUuH} H LH`DEMUuHHsHH=DoG2HH5HE?HuHUHHuHUHHuHUHHuHUHz`HuHUH!HuHUHj0HuHUHqHuHUHH]H]UHHd$H]LeHHuHUH@XtE/Eat[t&HxHHHuHUHDEHWL`HKHHhHuHUHMDFnH'Hx`tKt!HHH`HuHUHkP5HHH`HuHUHNHqHH=m0HH5H=HL@HuHUH`HHsL@HuHUHIHKL@HuHUHLmH&L@HuHUHJHHL@HuHUH&E#HL@HuHUHQFH]LeH]SATHd$HH4$HT$HHqIAD$XtvjtHHEx\~H4$HT$HMD$AL$\=[H4$HT$HIL$;CH4$HT$HMD$AL$d?&H4$HT$HMD$AD$XH oLw?Hd$A\[UHHH]UHHd$H]LeLmHAAH@XtER`t<tBDDH@&/H3HHhDDH!(HHx`tGtHHH`DDH.HHH`DDH{-HnHH=j -HH5H :DDH?+qDDH+ZDDHa,CDDH+,DDH*DDH\*H]LeLmH]UHHd$H]LeLmLuL}II1HcIHEgCAA9|AAADAIcEDIcA ƋUuLIHIcIHEE9HcEDHcA ƋUuLHHHH]LeLmLuL}H]UHHd$H]LeLmLuHII1HcIHEgDrE9|H|$ HD$ HhHD$(HT$0H|$(Ht$0LL$LD$HL$HH|$ @XtvtGH|$ LHDD$L$T$4$H|$ H|$ x\~gHq]H|$ DHdDD$L$T$4$H|$ g 3H|$ k@XHAkDLDD$L$T$4$H|$ 2 Hd$8SATAUAVHd$H<$HHx Lc`\LH?IIDIcHcL,H$Hx Hc@\I9uAH$HcPHcH)HHHIHcHHc@H)HHHIH9EA|9E1fAH$HD)H$0D)H$D@H$PH<$E9AAE1@AH$@gB (H$gB4(H$D@H$PH<$E9A|9E1fAH$D@E)H$PD)H$HH$0H<$YE9̃|>E1@AH$@gF(H$@gB(H$HH$0H<$D9Hd$A^A]A\[Hd$H|$ 4$T$L$DD$HD$ Hx HD$ H@ HxtFHD$ Hx HD$ H@ HhHD$(HT$0H|$(Ht$0LL$LD$HL$HHD$ Hx LHHD$ Hx DD$L$T$4$Hd$8Hd$Hd$Hd$H=h迡H=h賡Hd$SATAUAVAWHAAADIL}LHADDDLA_A^A]A\[SATAUAVAWHd$H|$ 4$T$L$DD$MHL$HT$Ht$H Dt$D;4$|I$AA\$;\$|&D$AALDDH|$ 9D9E9Hd$0A_A^A]A\[Hd$Hd$SATAUAVHd$HAIDILI@HL :HDLI8Hd$A^A]A\[SATAUAVHd$HAIDILI@HL*9HDLI8Hd$A^A]A\[SATAUAVHd$HAIDILI@HL 9HDLI8Hd$A^A]A\[SATAUAVAWHAAADIL=LHADDDLA_A^A]A\[Hd$H<$t$T$L$DD$ LL$(H<$@` r; t tt*HHD$0(HHD$0H,HD$0 HHD$0D$;D$u6D$;D$ }L$ T$t$H^L$T$ t$H{HD$;D$ u6D$;D$}L$T$t$HL$T$t$HHHd$8SATAUAVHd$H<$HH$DpH$XDd$A|_E1AH$HH(H$H8DH$P0|$$}T$$D$(ЉD$$Dt$ \$D$$D$,D$$Dt$\$E9Hd$8A^A]A\[Hd$H<$HHcPHc@H)HHHIH$PH$HHcP Hc@H)HHHIH$P H$P;P ~gH$PPH$P +PP$H$P P(H$P H)P,H$@ H$@H$@H$@eH$P PH$P+P P$H$PP(H$PH )P,H$@ H$@H$@H$@H$HP;P~H$HcP HډP H$HcPHډPH$HP;P ~H$HcPHډPH$HcPHډPHd$SATAUHd$H<$AAA9|*gZH$HH(H$H8DH$P0A9Hd$A]A\[SATAUHd$H<$AAA9|*g^H$HH(H$H8DH$P0A9Hd$A]A\[A DD!AA!SATAUAVAWHd$HAAADEHD$HH@H$EADDDH|$Hd$A_A^A]A\[UHHd$H}uUMDEDHuHH}@` r8 ttt'HHE%H2HEHHE HHEE;Eu.E;E}M؋UuHQMU؋uH>E;Eu.E;E}MUuHMUuHHH]SATAUAVHd$H<$HH$DpH$XDd$AzE1AH4$IcH H|tH$HHH$HxDH$P|$$}D$$D$(D$$Dt$ \$D$$D$,D$$Dt$\$E9Hd$8A^A]A\[Hd$H<$HHcPHc@H)HHHIH$PH$HHcPHc@H)HHHIH$P H$P;P ~gH$PPH$P +PP$H$P P(H$P H)P,H$@ H$@H$@H$@eH$P PH$P+P P$H$PP(H$PH )P,H$@ H$@H$@H$@H$HP;P~H$HcP HډP H$HcPHډPH$HP;P~H$HcPHډPH$HcPHډPHd$SATAUHd$H<$AAA9|CgZH4$HcH H|tH$HHH$HxDH$PA9Hd$A]A\[SATAUHd$H<$AAA9|Cg^H4$HcH H|tH$HHH$HxDH$PA9Hd$A]A\[SATHd$HH4$HT$AHHL@DH4$HT$HHd$A\[SATAUHd$HH4$HT$MDl$$A)Dl$)DL$4$MEDHD$$)AD;l$ ~Hd$A]A\[SATHd$HH4$HT$AHHL@DH4$HT$HHd$A\[SATAUHd$HH4$HT$MDl$$A)D,$,fDDD$ T$MDDH&D$$)AD;l$~Hd$A]A\[SATHd$HH4$HT$AHHL@DH4$HT$HHd$A\[SATAUAVAWHd$IH4$HT$MƋD$$)D$ËD$$)$A2DD$4$MDLXD$$)AċD$$)HD;`};X |D;d$;\$ |2L$T$DHOAŋ $T$ H;ADL$T$DHA.L$4$MELD$$)AŋD$$);\$ |̋ $T$ HAD;\$  $T$ HA2DD$T$ MDDLND$$)AŋD$$)AD;d$~NjL$T$DH\E5DL$T$ MADLD$$)AċD$$)D;d$|Hd$A_A^A]A\[Hd$H<$9}g1)Hd$SATHd$HH4$HT$AHHL@DH4$HT$HHd$A\[SATAUAVAWHd$IH4$HT$MƋT$$)‹D$ )ЉËD$$)$A0DD$ 4$MDLD$$)AċD$$))HD;`};XD;d$;\$2L$ T$DHOAŋ $T$H[ADL$ T$DHA.L$4$MELaD$$)A)ŋD$$));\$̋ $T$HAD;\$ $T$HA2DD$ T$MDDLD$$)AŋD$$)AD;d$|NjL$ T$DH\E5DL$T$MADLD$$)AċD$$))D;d$|Hd$A_A^A]A\[Hd$H<$9})Hd$Hd$H<$9~)Hd$SATAUAVAWHd$HAAADMHD$H#H@H$MADDDH|$Hd$A_A^A]A\[UHHd$H]LeLmLuL}H}HEAMLmEA9|8gZL,$HcH HE ADڋuH}A9H]LeLmLuL}H]SATAUAVAWHd$H|$HD$DH$MAA9|mgDnA$D$9|MT$gDbAIcIcO8HHHIcIcwHvHd$SATAUAVHd$HAAILL@DDLHd$A^A]A\[Hd$HMLHHd$SATAUAVHd$HAAILL@DDLHd$A^A]A\[Hd$HMLHHd$SATAUAVHd$HAAIL访L@DDLHd$A^A]A\[Hd$HMLH&Hd$SATAUAVHd$HAAIL>L@DDLHd$A^A]A\[Hd$HML.HHd$SATAUAVHd$HAAILξL@DDLHd$A^A]A\[SATAUHAAHyIcHcO8HHHIcHcwsÃD$8D$8HD$(Hx(t$8qIHT$@H|$0A4$kHD$@DhE;l$|4AD$D$<D$<HL$ T$El$ E;l$|2AD$D$<DD$<HL$ T$H|$04H$HtH$A]A\[SATAUH$ H<$Ht$HT$L$LD$ HD$`H<$@` r; ttt*HHD$X(H׺LLxHEH0H8HPҚtHPHH=6ݐHHAHH=`6SH@HEH@ HEH@ HHLL@H@HtL#LaֺLLA$8HHHH@HHAAL@MtZM<$LպDEAHHALPL@AH@HtL#LպDLLA$pH0H8HP,gtHH5H=ށ(H]UHHd$H}HuHHEHgwE}uHEH]UHH$HLH}HH3HEH@HEHE HEH@H@ HEHE HEL`Mt I$H̺HH˻HHEHEHuHH=X./HLH]UHHd$H}HuHsHEHE}uHEH]UHH$HLH}HHHEH@HEHE HEH@H@ HEHE HEL`Mt I$Hw˺HHʻHHEHEHuHH=X.HLH]UHHd$H}HuHS HEHE}uHEH]UHH$HLH}HH HEH@HEHE HEH@H@ HEHE HEL`Mt I$HWʺHHɻHHEHEHuHH=X,HLH]UHH$@H@LHLPLXL`H}HuHUH HDžhHDžxHUHu>ػHfHcHUH}HHH]HtH[HH-HH9v AA}QEEEHEHtH@HLuHcEHq HMHtHIHHHHq HHH9v- HH}WLeHcEHH9v LcmLH}WATCD,0ЈE4LeHcUHH9vHc]HH}HWADEuHhHhHpHpHxHH P@HxHEH0H}GD;}~ٻHh FHxFHEHt#ۻH@LHLPLXL`H]UHH$PHXL`LhH}HuHUH HDžpHDžxHUHuջHHcHUH}HEH]HtH[HH?HHHqHH-HH9v#}=EfEEHxDHcUHkq,Hq!HuHHpZWHpH5XHxFHx AD=vDeHEHtH@HXLeHcEHMHtHIHHIIqLHH9v0LH}TCT,E0ЈEuHpNHpHEH0H}VE;]~G׻HpCHxCHEHtػHXL`LhH]UHHd$H]LeLmH}HuH(GH})LeLmMt*I]HĺLHUHHHJ HB(HEHHHH0HP8H}HH}HqH}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuH}HuH0cHEHxu;HELhH]HELpMt6M&LúHLA$H}HkBHEH8uHEH0H}HXsCH]LeLmLuH]UHHd$H}HuHHEH@H;Eu4HEHxuHEHxHuH}u HuH}?H]UHHd$H}H7HEHx uHEHx(HuHEP H]UHHd$H}HHEHx0uHEHx8HuHEP0H]UHH$HLLH}HuHUHH}t)LmLeMtwLHºLShHEH}tHUHuлHʮHcHUu[HEHUH}H!HEHx0H_@HEH}uH}uH}HEH_ӻHEHpHhH( лH2HcH u%H}uHuH}HEHP`ӻԻһH HtջջHEHLLH]UHHd$H]LeLmLuH}HuH0HEH=HugH}u^HEHp0HEHx0,?HELp(LeLmMtI]HTLLHEHp8HEHx8>H]LeLmLuH]UHHd$H}HuHCHEHx(tHuH}HEHp(H}v>H]UHHd$H}HuHH}uyHEHp(H}6ubHEHpH=茲uHHEHxHu}0HeHPHH=ռdHH5HϻHEHx(Hu=HuH}H]UHHd$H}H'HEHpH=@㱻uHEH@HEHEHEH]UHHd$H}HHEHx0H=H]UHHd$H}HHEHx0EEH]UHH$pHxH}HJHEHEHEHUHu̻H訪HcHUHEHp0H}XuH}$IL}LMMt+M,$LϵHLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H8H}HcHq HH-HH9vAA}REEEuH}CILMMtNM,$LHAD;}~H]LeLmLuL}H]UHHd$H]LeLmLuL}H}H8H}HcHq*HH-HH9vAA}REEEuH}cILMMtnM,$LHA D;}~H]LeLmLuL}H]UHH$HLLH}HuHUHH}t)LmLeMtLH|LShHEH}tPHUHu»H*HcHUHEHUH}HOHEƀHH=c!:HUHHUHH=\HUHHEHHEHB@HEH}uH}uH}HEHqĻHEHpHhH(HDHcH u%H}uHuH}HEHP`ĻŻ ĻH HtƻƻHEHLLH]UHHd$H]LeLmH}HuH(H})LeLmMtI]H螱LLmLeMtI$HuL HEH<fHEH>HH}HEH7HEHժH}HH}uH}uH}HEHPpH]LeLmH]UHHd$H}HuHHEHHu;HEHUHPH]UHHd$H]LeLmLuL}H}uHHHEH6HcHqHHHH9vHEE}EEEHEHu4IMEtt,TMLHtL#L諯LA$*LMMtM,$L耯HAE;E~oH]LeLmLuL}H]UHHd$H}HuHsHEH@HEHHuEHc]Hq<ѻHH-HH9vлAA}&EfEЃEHhHEHH XHHcEHqлHHHHHPʺHHXH,HHHHHhHhH}HH`L`H]LeMtϻM,$LSHLAPD;}~LuLeLmMtsϻI]HLL栻H}݉HHt\ǠH H` Hh HpHt"HLLLLH]UHH$HLLLLH}HuUHлHDž HUHuʜHzHcHU#LuAH]Ht<λL#L፺DLA$HpH0kHzHcH(LmL H]HtͻL#L{LLA$L EHLmH]LeMtͻM4$L8HLꋅLAH]LeMtWͻM,$LHA H(HtP軞H  HEHt1HLLLLH]UHHd$H}HuUHλEHuH}H]UHH$pH}HuHUHMHuλHDžxHUHu踚HxHcHUHx% HuH XHx HxUH}6Hx HuHXHxn HxUH}Hx HuH׊XHx3 HxUH}Hxt HuHXHx HxUH}Hx4 HEHtVH]UHH$HLL L(L0H}HuHUH̻HDžHHDžXHDžxHUHuH;wHcHULmH]HtʻL#L-LA$HxTHuHXHx HxH}fLmH]Ht"ʻL#LljLA$HcHq\ʻHHHH9vɻH@@}<EfDEEHxHEH`HXHhHcEHqɻHPHHPHHP`úHPHXhHX%HXHpH`HHx HxH8DmH]LHLuMtȻM>LpLHDAHHH}H8@;E~HHhHX\HxPHEHtrHLL L(L0H]UHH$HLL L(H}HɻHDž0HUHu(HPtHcHULuALmMtǻI]H>DLHUH@͕HsHcH8ufLuL0LmMt<ǻI]HLLL0LeLmMt ǻI]H譆LL|LeLmMtƻI]H|L H8Htҙ=H0HEHt賙HLL L(H]UHHd$H]LeLmLuH}HuH0CȻHELH]HELMtƻM,$LHLAH]LeLmLuH]UHHd$H}HuHUHǻHEHHuHUH]UHHd$H}HuHUH}HxvǻHUHuēHqHcHUuHEHHUHu ĖH}HEHt=H]UHHd$H}HuHƻջH]UHHd$H}HuHUHMLEH(ƻԻH]UHHd$H}HuHUHMH {ƻԻH]UHHd$H}HuHSƻnԻH]HHu1HH$H|$ Ht$H$L$DD$H|$uHD$ HT$ HRhHD$ H|$ HT$0Ht$H4H\pHcH$HD$(H<$trH$H8蝂HNJL$t$1KHT$ BHT$ BBHD$ HcpHD$ HxN׻H$H8RHHD$ HPL$t$HD$ @HD$ H@HD$(H|$ tH|$tH|$ HD$ H}H$HtH$H$"HJoHcH$u'H|$tHt$(H|$ HD$ HP`褕H$Ht햻ȖHD$ H$SATHd$HIM~ HHH{t HcsH{=ֻHtMt HHPpHd$A\[SATAUAVAWHd$H|$pHt$xHD$hHD$`HHt$$HLnHcHT$XHT$pBAEAAHD$pHPDL$I$Hu1HHD$xHHu1HH9uAHD$xHp+1H|$`f H\$`1It$+H|$hP H|$hHuA E9yE0艒H|$hH|$`HD$XHtDH$A_A^A]A\[SATAUAVAWHd$IIHD$`HHt$HmHcHT$XuZAFÅ|JAfAIVDH1Hp+H|$`yH|$`L u IVDL,D9M1讑H|$`HD$XHt%LHd$pA_A^A]A\[Hd$Hh;p})HcPHcH)HHxHcH|H@!H4bHd$HG!HSATAUIIAD$|1Ã@IT$H4Lju LlA]A\[SATAUHd$HIIH1Mt,Mt'L$$H~XHD$Ll$HH1ɺ"Hd$ A]A\[SATAUAVAWHd$HIIHD$hHD$`HHt$H=kHcHT$XE0HHtH@HH޺.#AEIcHH޺H|$hHt$hH|$`Ht$`LIcHPH޹H|$`Ht$`H|$hHt$hL]IHtH@H~IHtH@H~AE0^H|$hH|$`HD$XHtːDHd$pA_A^A]A\[SATAUHd$HIIH$HD$HT$Ht$(踋HiHcHT$hu.H1HT$HL:tHHT$L衎HH|$HD$hHtHd$pA]A\[SATAUAVAWHd$IIH$HD$HD$xHD$pHT$Ht$(HiHcHT$h%MMLIAAADLHt$pIH|$pHT$H.t?H4$LVIHuDLILDLI(tDLIIHt=DLHt$xIHt$xIU H|$pHT$pDLI  DLIDLIEጻH|$x7H|$p-H%H|$HD$hHtH|$`LuHD$hHxHcLIA9]tH|$`HD$XHtuHd$pA_A^A]A\[SATAUHd$HIIHD$xHD$pHT$Ht$(pHNHcHT$huRHuH{L1L.IE~PIcHLH|$pHt$pHMcIVLH|$pHt$pH|$ύH1CٺLH|$趍H<$t H<$HCHtHt$HHH{L*lH|$pغHxغH|$nغHD$hHtmHd$xA^A]A\[SATAUH$H|$H4$HT$HDŽ$0HDŽ$(HDŽ$HDŽ$HT$8Ht$PahHFHcH$HD$HxHt$HD$0H Ht$0H=cLtHT$H4$H|$Ht$0H=|cWLH|$HD$HHD$H$H$gHEHcH$=H|$0D$$H$(׺HD$Hp+1H$0/H$0HD$Hp1H$(oغH$(H$HDŽ$ H$YXH$ HDŽ$ H$H5XXH$臯H$Hc|$$H$8Hq1H$8H$0z01H$0L$0HD$HP H|$H$HD$HHH$t$$ID$$H|$0ۺ;D$$D$(H|$0HD$0H(H$8H$PfH=DHcH${|$(t H|$0D$$gXZD$ D$ |$(t H|$0JH$0=պD$ $HDŽ$H$1H5WXH$(H$(HH1H$0ֺL$0HD$H@ H$HDŽ$ H$ԺHD$Hp+1H$޺H$HD$Hp1H$ֺH$H$HDŽ$ H$H5VXH$(PL$(t$ H|$0ZHHLL;\$ gH|$0HD$0H0H$HtigH|$vPH$Hth-Ht$0H=cHtHT$H4$H|$H|$HD$HHD$H$8H$PcHAHcH$ucH$0?ӺHD$Hp+1H$(gݺH$(HD$Hp1H$0ԺH$0HD$HH Ht$0HfH|$zOH$HtgcfH$0ҺH$(ҺH$ҺH$ҺH$HtgH$@A]A\[SATH$hH|$H4$HT$HL$HD$HXH$HCHt$H{ҺHt$H{ ҺHD$HPHB0HC0HB8HC8A?HSH=HD$(HT$0Ht$H6bH^@HcH$uHHD$(@gD`E|6D$ DD$ D$ H|$(HHD;d$ eH|$(MH$HtvfH$A\[SH$H|$H4$HDŽ$HT$ Ht$8naH?HcHT$xHD$HPA?H=髁HD$H$H$aH=?HcH$uqH<$H$HÃ|WD$@D$D$H<$H$H$HH$H|$HH|$3;\$cH|$LH$Ht,ecH$ϺHD$xHt eH$[SH$H|$H4$HDŽ$HT$ Ht$8`H6>HcHT$xHD$HPA?H=DHD$H$H$_H=HcH$uqH<$H$HÃ|WD$@D$D$H<$H$H$HH$H|$ HH|$#;\$XbH|$NKH$Htc7bH$κHD$xHtcH$[SH$H|$H4$HT$HH<$0HxH=cHD$HT$8Ht$P^HHL2HHd$A\[SH$H|$H4$HT$HD$0HD$8HDŽ$HT$@Ht$X[H9HcH$HT$H4$H|$HD$HH$H$Q[Hy9HcH$lHT$H$HBH|$HD$HÃ?D$ D$ D$ H|$H$HD$HH$HT$8Ht$0qt$ H|$HD$HHT$HBHD$H@Hp HD$Hx~ʺHD$HpH|$HD$HD$$H$ɺHD$HpH馁H1H$W˺H$HD$Hxʺt$$H|$HD$HHD$(HtHt$8H|$(HH|$;\$ \HD$H@Ht$H|$YH$HtW^\H$ɺH|$0 ɺH|$8ɺH$Ht^H$[SH$H|$H4$HT$HD$0HD$8HDŽ$HT$@Ht$XYH/7HcH$HT$H4$H|$HD$HH$H$XH6HcH$lHT$H$HBH|$HD$HÃ?D$ D$ D$ H|$H$HD$HH$HT$8Ht$0t$ H|$HD$HHT$HBHD$H@Hp HD$HxǺHD$HpH|$HD$HD$$H$9ǺHD$HpHIH1H$ȺH$HD$HxqǺt$$H|$HD$HHD$(HtHt$8H|$(!HH|$;\$ UZHD$H@Ht$H|$H$Ht["ZH$uƺH|$0kƺH|$8aƺH$Ht[H$[Hd$H=7ZAHd$SHHHx0t Hx8HP0 H1lƺ[Hd$HHx@tHxHP@Hd$Hd$HHxPtHxXPPHd$Hd$Hd$Hd$H=źHd$UHHd$H]LeLmLuL}H0gH=tOAIHcHHcIMt.MLFHLDAHLH=E?EuH=3>EH]LeLmLuL}H]UHHd$H}H跈"EEH]UHHd$H}uH脈EH=>H]UHHd$H}HuHCH]UHHd$H}HuHHEHEH]UHHd$H}HuHㇻH]UHHd$H}HuHUH诇H]UHHd$H}HufUfMH {H]UHHd$H}HuUHPH]UHHd$H}HuUH EEH]UHHd$H}HuUH EEH]UHHd$H}HuUH EEH]UHHd$H}HuUH 萆EEH]UHHd$H]LeLmH}HuUHMH8PLmLeMttuH$xLH+$HH$H$Lh8$H$H|$`H\$`$H$H$H$H$bH$H$HxHH$SIAE9~H$x{KH$ηH$H|$`跷HD$XHtLH$A_A^A]A\[UHHd$H}HuUH {UHEEH]UHHd$H}HuHC{H]UHHd$H}HuUH{H]UHHd$H}HuUHzH]UHHd$H}HuUHzH]UHHd$H}HuUMH }zH]UHHd$H}HuHUHMH KzH]UHHd$H}HuUH zH]UHHd$H}HuUHyH]UHHd$H}HuUH yUH涁EEH]UHHd$H}HyEEH]UHHd$H}HuHSyH]UHHd$H}HuUH yH]UHHd$H}HuHUHxH]UHHd$H}HuUMH xH]UHHd$H}HuHxHEHEH]UHHd$H}HuHcxEEH]UHHd$H}HuH3xHEHEH]UHHd$H}HuUH xHEHEH]UHHd$H}HuHwEEH]UHHd$H}HuHwEEH]UHHd$H}HuHcwEEH]UHHd$H}HuH3wEEH]UHHd$H}HuHwEEH]UHHv=u nH]UHHv=u n糁H]UHHv=ٳu NdzH]UHHPv=u .H]UHH v=u .H]UHHd$HuH=tHH=HHҹH˹HEHEH]UHHd$H}HuHEx }Ht_Ht H}- H]UHHd$H]LeLmLuL}H}uUHPuHEHxpHcHq`sHH-HH9vs}lEfE܃EHEHxu臷;Et6HEHxuj;EtHEHxuMHE;]~IIHP@HL%F@MtBrLIL1HLLAHEHEHxHu߼uH}uH}HEƀHEH]LeLmLuL}H]UHHd$H]H}HuH}%HsHUHu?H HcHUHEHxHuHEH}u_HEHxH$HEHcP HEHXHtH[HHqqqHH-HH9vqHEX H}DoBH}&$HEHtCH]H]UHH$HLL H}HuHxrH}t)LmLeMt[pLH0LShHEH}t:HUHu>HHcHUHEHE@ HH=蹶HUHBHH=#|c螶HUHBHH=pc胥HUHBHEH}uH}uH}HEH AHEHpHpH0=HHcH(u%H}uHuH}HEHP`@;B@H(HtC`CHEHLL H]UHHd$H]LeLmH}HuH0pH})LeLmMtnI]H>.LHEHx)HEHx˴HcHqnHH-HH9v^n}2EEEHEHxuIL(;]~HEHx(HEHx{(H}H+(H}uH}uH}HEHPpH]LeLmH]UHHd$H}HuH} HxzoHUHu;HHcHUu0HEHxHu褫E}tHEHxHuE>H}g HEHt)@EH]UHHd$H}HuH}V HxnHUHu(;HPHcHUuaHEHxHuE}uHuH}HEHxHu˭HEHx^tHmH}&=H}HEHtX?H]UHH$HLLLH}HuHUMH}`H0mHUH`,:HTHcHX:HUHB HEHB(HEHEHHHH HP(H@H9HHcHHuH}HEHxHut HEH}tHEHx HELeLmMtjI]H*LLuLmMtjMeLx*LA$0HcHcMHHILH-HH9vjDH}3HUHHEHxHuHEH8UHu{EHEH0H}HEHPHEHXHtH[HHH-HH9v)j]Hc]HEH8覗HcHqIjHcUH)q;jHH5=HHEHxHR DeHEH8RHcHqiHH-HH9viD9}De܋E܃EfDE܃ELuMfHcELcmIqiHcEI)qiLHH9v0iLI~ECHcELceIqKiHcEI)q=iLH-HH9vhDUH}HEHP ;]~J-:HUHEHB HEHB(HHt;:H}HXHty;HLLLH]UHH$HLL L(L0H}HiHEHEHUHh)6HQHcH`VHEHxHcHqgHH-HH9vgHPP}EDEEHEHxuHHܔED}IHvcIHuvcHHtfIL&LLDA$HEEHH=sc藭HEHEHxHcHqgHH-HH9vf}f]EEEEHEHxuWHHEHxuH;tHEHxu*HxqHHH-HH9v!fAA}E@EEHEHxuHxHEHxuIMfHcEHH9veLcmLI~vC4H}؈D;}~HEHxu_HxtHEHxuEHEHxu0HH}}~}u_HcEHXH5 HXH}HH},HHHHH9vd}]EEDEEH]HcUHH9vdLceLH}[EBuH}uHEHxuHËuH4}~H}sHHHHH9v"dAA}DEDEEuH}uLceIqdLH-HH9vcH}HHH-HH9vcD9}DeEEfDEELeHcEHH9vScLcmLH}Oc$IqtcLHHH9vcLmHcEHH9vbLcuLH}Gd;]~cD;}~H}HcHqbHH-HH9vbHHH}EfEEuH}HpH}uH}HxqHHH-HH9v!bH@@})EEEuH}蛦HHCH8HcUHH9vaLc}LH{H]ȋuH}UIMfHcEHH9vaLcmLI~FKcHH9v^aOc$LH}BH8BuH}HLcHcEHH9vaLcmLH{CuH}HEHP @;E~H;E~WH}6H}-HDžXH5HXH}HP;E~HE@ 1H}H5TH};UH`HtJ3HLL L(L0H]UHHd$H}uHaEH}覤HEHEH]UHHd$H}uHUHaHEuH}H荤H]UHHd$H}HuUH`a}t%H}uHHH}LeHcEHH9vKHc]HH}蔙AD t tu}~HE@pH]LeLmLuH]UHHd$H]LeLmH}uHU0vLHExpu'LeLmMuZJI]H L8}| HE@t;EUHuHpH}HEHHcEHkHUHTH]LeLmH]UHHd$H]H}uU(KEuH}NHcHEHHcEHkHcDH)qIHH-H9vI]H]H]UHHd$H]LeLmH}uU87KHExpu'LeLmMuII]HL8}uHEHHcEHkDE}HEHcPtHq.IHcEH9uHkq>HEHHcEHq>HkH4HEHHcEHkH<HEHHcEHkH<1ҾHc]Hqv>HH-H9v>HED`tA9]؉؃EfEHEHHcEHkH\HcELc+Iq>LH-H9v=D+HEHHcEHkH\HcELc+Iq=LH-H9vw=D+D;ejHEHcXtHq=HH-H9v?=HEXtHEHHcEHkHHEHHuR{HUȋEBHcEHc]Hq6=HcEH)q(=HH-H9vHDžXHDžhHEHUHuo HHcHU$H}yHWHpHEHXHcH`H`HH`51H`Hh˃01HhKHhHxHNWHEHEH@@tdH`HHcdR51H`HX]01HXݗHXHEHp1ɺH}}HUH=6c6HH5H4 _ HXxHhxH}xHEHt HPH]UHHd$H]LeLmH}u8jHHcELceIq 2LHH9v1LH7Jt#HcUH}ԹHEHHHcELceIq1LHH9vT1LHNd#LmMHcEHH9v!1Hc]HII|HcULԹHEHMHHcUHH9v0LceLHSJt#HcUH}ӹ}HEHc@Hc]Hq0HH-H9vy0HEXHEHc@Hc]Hq0HH-H9vD0HEXHEHc@Hc]Hqg0HH-H9v0HEXHc]Hq90HH-H9v/LceIq0LH-H9v/A9]؃EfDEHEHHcEHkH\HcELc+Iq/LH-H9v[/D+HEHHcEHkH\HcELc+Iqo/LH-H9v/D+D;ejHEH@HEHUHEH@HBHUHEHBH}iCHxLeLmLuH]UHH$ H(L0L8L@LHH}uU]0HEHUHXHڹHcHP% E;E }}UHuHpH}蝰}}UHݘuHpH}耰HExpu'LeLmMu-I]HhL8HE@t;EUHuHpH},HE@t;EUHfuHpH} H}E;EEHEHc@tHq-HcUH9uUHEHHcEHkHcTHEHHtH@H9~$HEHHEH1HxWslHEHHcEHkDEHEHHcEHq-HkDEuH}6EHc]HcEH)q,HH-H9v,]̋uH}0HcHEHHcEHkHcDH)q,HH-H9v;,]HEHHcMHcUH}|HEHHcEHkHDHEHEHP|HHcEHH9v+LceLHVzN|#HcEHcUH)q+IH]LHcUHH9v+LcmLHzK|,LLιHc]Hq+HH-H9v?+DeA9]ȉ؃EEHEHHcEHkH\HcELc+I)q3+LH-H9v*D+HEHHcEHkH\HcELc+I)q*LH-H9v*D+D;ejHcUHcEH)q*Hkq*HEHHcEHq*HkH<HEHHcEHkH4O͹Hc]HcEH)q]*HH-H9v*]HEHRzHHcUHH9v)LceLHXxNl#Hc]LeоH}=xLHL̹HEHHcEHkHHEH‹EȉBHcEHc]Hq)HH-H9vR)HEXHEHHEHUHPHEHcPtHq\)HcEH9uUHEHHcEHkHcTHEHHtH@H9~$HEHHEH1H3W.hHEHHcEHkDEHEHHcEHkDEuH}EHc]HcEH)q(HH-H9vO(]̋uH}0HcHEHHcEHkHcDH)qY(HH-H9v(]HEHHcMHcUH}rxHEHHcEHkHDHEHEHxHHcELceIq'LHH9v'LHvN|#HcEHcUH)q'IH]LHcEHH9vB'LcmLHuK|,LL?ʹHc]HqP'HH-H9v&DeA9]ȉ؃EȃmHEHHcEHkH\HcELc+Iq&LH-H9v&D+HEHHcEHkH\HcELc+Iq&LH-H9vW&D+D;ejHcUHcEH)qx&Hkqm&HEHHcEHqS&HkH4HEHHcEHkH<ɹHEH?vHHcEHH9v%LceLHEtNl#Hc]LeоH}*tLHLȹHEHHcEHkHHEH‹EBHcEHc]Hq%HH-H9v?%HEXHEHHEHUHPH}bHPHtH(L0L8L@LHH]UHHd$H}&HEH uH]UHHd$H]H}e&HEHcHq$HH-H9vW$HEH]H]UHHd$H]LeLmH} %HEHHEHcHq2$HH-H9v#HEHEu4HEt'LeLmMu#I]H(L@H]LeLmH]UHHd$H}9%H2WH=vcqHH5HoH]UHHd$H}$HEHHuH'H]UHHd$H}Hu$HEH}HH]UHHd$H]LeLmLuL}H}Hu@a$L}Lu1LeMuI"M,$LHLLAXEH]LeLmLuL}H]UHH$ H L(L0L8L@H}HuHU#HEHUHpH6ιHcHhgLeLmMu!I]H&LEHEHkLeM$HEHHtH[HHH9vA!HI$oAD t ttH}H5WO_ H}1B_HEHHtH[HH-H9v ]HEHHHHEHPHEHXHWH`HHHEH1ɺbH}t'LeLmMuF I]H߹L8HExpHELc`tHuH}HcLqa HqV HH-H9v]HE@x;EHEHcXxHkq H q HH-H9vHEXxHE@x;E} HUEԉBxHEHcXxHkqHHH9vnHHEHk4HEHcpxHEHc@tH)qHkqvHEHHEHc@tHkH<1ֹHEHHEHc@tHkHUHTHcEH]HtH[HqHqHH-H9v]HEHHtH[HH-H9v]"HEHHEHc@tHkỦT*Hc]HqHH-H9v1]̋E;EJLeM$HcEHH9vHc]HI$~lAD t tuHEHHEHc@tHkẺDHc]HqHH-H9v]̉;ELeM$HcEHH9veHc]HI$kAD t tH]LLcuIqaLHH9v LHkH]LHcEHH9vLcmLHUkCD7C:D,t*Hc]HqHH-H9v]HEHcXtHqHH-H9vdHEXtHE@t;EH}ZHhHt.EH L(L0L8L@H]UHH$HLLL L(H}HuHEHDž@HDž`HUHpHǹHcHhH]LeMu@M,$LڹHAHExtPHuH=9fͺ8HEHEHHEH=YH}HE؀xpLeLmMuI]HXڹLHUBtHUHE@tBxHEHcXtHkqHHH9vHh/HUHHEHHEHEHHEHEHcXtHq|HH-H9v$|/EEHgHuH}HEHE;]HE@pEHExpt`HEHcXtHqHH-H9v|1EEHEHHcEHkH|tE;]ր}LmLeMu:I$HعLHcHqwHHH9vAE|REEDuLmH]HuL#LsعLDA$HtED;}}2LmH]HuL#L-عLA$HcHqHHH9vkH88EDEDmLuH]HuL#L׹LDA$H0D}LuH`LeMuM,$Lu׹HLDAH`LuLeMuM,$L@׹LHH0AX8;EE1HEHiH]LHELMtMmLHH9v@LHeCD, t ttH}H5WOU H}1BUHE@pHEHHHHEHPLuL@H]HuL#LIֹLLA$H@HXHHHEH1ɺXH]LeMuMM,$LչHA8H@TH` TH}THhHt HLLL L(H]UHH$`HhLpLxLuH}HuHE H=8cHHEHUHuHHcHUu.LuLeLmMu=I]HԹLLH}ϺHEHt)HhLpLxLuH]UHH$`HhLpLxLuH}HuHEH=7cH HEHUHuHHcHUu.LuLeLmMuMI]HӹLLH}κHEHt9HhLpLxLuH]UHHd$H]LeLmLuH}u8EH}u.DuLeLmMuI]HBӹLDpuH}ZHEH]LeLmLuH]UHHd$H}uFHE;Et HEUH]UHHd$H]LeLmLuH}uHU8DuH]LeMuM,$LҹHDAxHUuH}3H]LeLmLuH]UHHd$H]LeLmH}u0jHE;ELmLeMuEI$HѹLHcHqHH-H9v*|0EEHEMuH}+;]HEUH]LeLmH]UHHd$H]LeLmLuL}H}uUM`|EH}NHEHt[EHEЋEHEDuLmH]LeMu=M<$LйHLDMDEAhHU؋uH}H]LeLmLuL}H]UHHd$H]H}u H]HcHH9vHcH}$HEtHEHcH}1ͶHUuH}H]H]UHHd$H]LeLmLuH}u@6EH}HEHtgHEt@DuLeLmMuI]HϹLDHEHt H}_ʺH}v$uH}18H]LeLmLuH]UHHd$H]LeLmLuL}H}8uLmLeMucI$HϹLHcHqHH-H9vHAE|AEEDuH]LeMuM,$LιHDAxD;}H]LeLmLuL}H]UHHd$H}uEH}xHEEH]UHHd$H}HuUMDE([HcUHH9vcHcuH}f#H]UHHd$H}u EH}HEHt HEHHEHEHEH]UHHd$H]LeLmLuH}uHU@EH}HEHu>DuLeLmMu I]H)͹LDpuH}qHEHUHEHH]LeLmLuH]UHH$HLLH}HuUH}u'LmLeMu LH̹LShHEH}HUHuۺH7HcHUuUHEH}1 HEǀHUEHEH}tH}tH}HEHݺHEHtlHhH(ںH詸HcH u#H}tHuH}HEHP`}ݺߺsݺH HtR-HEHLLH]UHHd$H]LeLmH}Hu(y H}~'LeLmMu` I]H˹LLmLeMu9 I$HʹLH}1yH}tH}tH}HEHPpH]LeLmH]UHHd$H]LeLmH} LmLeMu I$HOʹLH}H]LeLmH]UHHd$H]LeLmLuH}u0F DuH]LeMu0 M,$LɹHDAxuH}H]LeLmLuH]UHHd$H}HuUH UHrEEH]UHHd$H}HuH H]UHHd$H}HuUH` HEHd H]UHHd$H}HuH# H]UHHd$H}HuUMH( EEH]UHHd$H}HuH EEH]UHHd$H}HuUHMH(| HEHǺH贮EEH]UHHd$H}HuH3 EEH]UHHd$H}HuH EEH]UHHd$H}HuUH EEH]UHHd$H}HuH HEHEH]UHHd$H}HuHs HEH8HEHH]UHHd$H}HuH3 EEH]UHHd$H}HuUMH H]UHH$0H8L@LHLPLXH}HuUMDEHHEH$hEHEHHUHxԺHHcHpEHhh;E}rEEEЃED}DmH]LeLuMtL`H`ŹLHDDH`8h;E~랋uH}kE׺HEHEHpHtغH8L@LHLPLXH]UHHd$H}HuHCH]UHHd$H}HuUHH]UHHd$H}HuUHH]UHHd$H}HuUHH]UHHd$H}HuUMH }H]UHHd$H}HuHSH]UHHd$H}HuHUMH H]UHHd$H}HuUHH]UHHd$H}HuHEEH]UHHd$H}HuHEEH]UHHd$H}HuHcEEH]UHHd$H}HuH3EEH]UHHd$H}HuHEEH]UHHd$H}HuUHH]UHHd$H}HuUHH]UHHd$H}HuUHpH]UHHd$H}HuUH@H]UHHd$H}HuUHH]UHHd$H}HuUHH]UHHd$H}HuUHH]UHHd$H}HuUHH]UHHd$H}HuUHPH]UHHd$H}HuHUHH]UHHd$H}HuHHEHEH]UHHd$H}HuHHEH8GHEHH]UHHd$H}HuHUMH |H]UHHd$H}HuHSEEH]UHHd$H}HuUH H]UHHd$H}HuHEEH]UHHd$H}HuHrEHEHEH]UHHd$H}HuHEEH]UHHd$H}HuHSEEH]UHHd$H}HuUH H]UHHd$H}HuHUHH]UHHd$H}HuUHH]UHHd$H}HuUHH]UHHd$H}HuUH`H]UHHd$H}HuUH0H]UHHd$H}HuUHH]UHHd$H}HuUHH]UHHd$H}HuUHH]UHHd$H}HuUHpH]UHHd$H}HuHUH?H]UHHd$H}HuUHH]UHH$ H(L0L8L@H}HuHUHHEHEHDžHHDžPHUHxʺH HcHpLeLmMtTI]HL@ EHuH})HcMHuHHPHPHXHEH`LcuLeLmMtI]H臻L8 HcLqHqHuHHH芤HHHhHXH}عH=HuH}cHc]HuHtHvH}HuH=RIIqLH-HH9v3LuLmMtI]H裺LD r̺HH8HP8H}8H}8HpHtͺH(L0L8L@H]UHHd$H]LeLmH}HuH(WLmLeMtCI$H繹L LmLeMtI$H边L H]LeLmH]UHH$`H`LhLpLxL}H}HuHHEHUHuǺHHcHUHEtuLeLmMtVI]HL8 E赹ILuH]LeMtM,$L辸HLAH HuLʺH}6HEHt˺H`LhLpLxL}H]UHH$`HhLpLxLuH}HuHtHEHUHuƺH⤹HcHUub¸H芺HHϠuD褸HHuH蕔LuLeLmMtI]H衷LL pɺH}5HEHtʺHhLpLxLuH]UHHd$H}HuHH]UHHd$H}HuHUHOH]UHHd$H}HuH#HEHHEHEH]UHHd$H}HuHHEH8gHEHH]UHHd$H}HuUHH]UHH$`H`LhLpLxL}H}HuHUHIHEH蹏HUHuĺH询HcHUuCL}LuHkHHkIMtML葵HLLA`\ǺHEH\HEHtȺH`LhLpLxL}H]UHHd$H}HuUH`H]UHHd$H}HuUH0H]UHHd$H}HuUHH]UHHd$H}HuUHH]UHHd$H}HuUHH]UHHd$H}HuUH pUHrEEH]UHHd$H}HuUH0H]UHHd$H}HufUfMH H]UHHd$H}HuHEEH]UHHd$H}HufUfMH H]UHHd$H}HuUHpH]UHHd$H}HuUH@H]UHH =u O牁H]UHH=ىu OljH]UHH=u OH]UHH=u OH]UHH`=yu OgH]UHH0=YuOHH=WH5nWH=?ZmjHHWH5uWH=ZmIHHWH5|WH=Ym(HHڳWH5WH=YmH]UHHp=u-.OHHPWH5WH=BmvH]UHH =iu NWH]UHH=IuNNHHWH5YWH=m-HH߲WH5`WH=m H]UHH=釁u NׇH]UHHP=ɇuNNHHWH5iWH=mHHoWH5ȴWH=qmluH]UHH=iu ~NWH]UHH=Iu ~N7H]UHHd$H}HuUH pUHrEEH]UHHd$H}HuHUH/H]UHHd$H}HuUHH]UHHd$H}HuUHH]UHHd$H}HuUHH]UHH=u-OHHHWH5yWH=l擁H]UHH0=ٓu ~OǓH]UHHd$HHHEHuHH=WH]UHHd$H]LeLmH}HuUMDEDMHH}t4HEƀLeLmMtrI]HL@H]LeLmH]UHHd$H]LeLmH}HuUMDEDMHH HEƀLmLeMtI$H莬L@H]LeLmH]UHH$HLLH}HuHUHH}t)LmLeMtgLH LShHEH}t7HUHu蒺H躘HcHUHEHUH}H_HEƀHUHMHHHHEHMHHHHEH}uH}uH}HEHHEHpHhH(ŹH헹HcH u%H}uHuH}HEHP`迼J赼H Ht蔿oHEHLLH]UHHd$H]LeLmH}HuH(H})LeLmMtI]H>LH}H蕹H}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuL}H}HhHEHHfHEHLAHEHHHtL3LfDLAHHEHH(HE|HEDHEHEH).HEtHEHH(|8HEHH( |HEHHeH}VwEE$HEHUHEHUHELDuHEHELMtI$IL.EЉƉELE؉EAAHEHLAHEHHHt)L3LΧDLA`HEHLAHEHHHtL3L耧DLAHH}%vEHEHUu vHEHcHcEH)qHH-HH9vHELcHcEI)qLH-HH9vPDHEHuHEHcHcEH)qbHH-HH9vHEHU@uHEHcHcEH)qHH-HH9vHEHuUuH}ܶH]LeLmLuL}H]UHH$HLLLLH}HuHUHH}t)LmLeMtLH螥LShHEH}tdHUHu$HLHcHxHEHUH}HH}H}EsH}w?H}nsH}CH} sEHFH_H85HcHcUH)q}HUHcH9|JHH_H85HcHcEH)qIHH-HH9vH}>HH=kNHUHL}IHmHHmIMtxMLHLLAHUHHELLeHELMt,I]HУLL`HELAHELMtI]H蓣DLHEH@tHEHLxHWHEHLxMtM&L2HLA$@HEHLxAHEHLxMt>I]H⢹DLHHEHHx :HEHHxHEHH5dWqHEH@$HEH@aHHEHHEHHHLuIH{mHHqmIMtbMLHLLAHUHHELLeHELMtI]H躡LL`HELAHELMtI]H}DLHEH@^HEHLxHWHEHLxMtwM&LHLA$@HEHLxAHEHLxMt(I]H̠DLHHEHHx $HEHH5WoHEH@*HEH@gFHEHHUH HHLuIHiHH_IMthML HLLAHUHHELLeHELMtI]HLL`HEDHELHELMtߺI]H{LDHHEHHMHHHHuH}LuALmMttߺI]HDLHHEHMHMHHHEHUH HXH`HEH}uH}uH}HEH肰HxHpH`H *HRHcHu%H}uHuH}HEHP`$诱HHtԲHEHLLLLH]UHHd$H]LeLmH}HuH(H})LeLmMtݺI]H螝LHEHeHEHUHEHEHEH5H}HH}uH}uH}HEHPpH]LeLmH]UHHd$H}HGߺHEH HEHHx tHEHHx/HEHHx tHEHHxH]UHHd$H]LeLmLuL}H}HH޺HEHL(AHEHH(HtMܺL3LDLA@HEHH(HEoHEHE!HEHUL}LuHELHEHHtۺHILaLLLA$xHEH耳HubHEHiHEHELAAHEHHtGۺL#L욹DDLHMA$XH]LeLmLuL}H]UHHd$H}HuHܺHEHuHEHHUHuHEH}MH]UHHd$H]LeLmLuL}H}HuHHoܺHEHhEH}hEHEH*HupLc}HEH ILMMtںM,$L諙HA0HcLqBںHH-HH9vٺ]EHEHuHELcHc]H}gHcHqٺI)qٺLH-HH9vuٺDHEH0HEHu2HEHu,3HEHu7HEHuxHcEHc]HqDٺHH-HH9vغHEHe0HEHu1HELAHELMt}غI]H!DLHEHHcHcEHqغHcUHqغHcEHqغHUHcH)qtغHH=v$غHEHLHEHLMt׺MeLxLA$HELAHELMt׺I]H:DLHEHuLceH}eHcLq׺HH-HH9vM׺HEH.HEHHcHEHHcHqM׺Hc]Hq?׺HH-HH9vֺHEH/HEHHcHcEHqֺHUHcH)qֺHH-HH9v~ֺHEH\0HEHHcHcEHqֺHUHcH)qwֺHH-HH9vֺHEHh4H]LeLmLuL}H]UHHd$H}HuH׺HEH@`HHu[H]UHHd$H}HuHc׺HEH@`HHuKdH]UHHd$H}HuHUH׺HEHP`HEHHEHH]UHHd$H}HֺHEHP`HHEHHEHUHEH]UHHd$H}HֺHEH@`EEH]UHHd$H]LeLmLuH}@uH03ֺHELp`]HEL``MtԺM,$L踓@LAH]LeLmLuH]UHHd$H}HuHպHEH@`HHu{H]UHHd$H}HuHպHEH@`HHukbH]UHHd$H}HGպHEH@`HHEHEH]UHHd$H]LeLmLuH}HuH0ԺHEH@`LH]HEH@`LMtҺM,$LiHLAH]LeLmLuH]UHHd$H}HwԺHEH@`EEH]UHHd$H]LeLmLuH}uH0$ԺHELp`]HEL``MtҺM,$L詑LAHH]LeLmLuH]UHHd$H}HӺHEH@`HHxHEHEH]UHHd$H]LeLmLuH}HuH0cӺHEH@`HLxH]HEH@`HLxMt'ѺM,$LːHLAH]LeLmLuH]UHHd$H}HҺHEH@`HHxHEHEH]UHHd$H]LeLmLuH}HuH0ҺHEH@`HLxH]HEH@`HLxMtGкM,$L돹HLAH]LeLmLuH]UHH$HLLLLH}HuHUHѺH}t)LmLeMtϺLHNLShHEH}tHUHuԝH{HcHU#HEHUH}H!IIH\HHRIMtϺML踎HLLAHUHB`H1_H8uEH1_HD$HEL``HELh`MtκI]HXLDHELp`AHELh`Mt}κI]H!DLHEH}uH}uH}HEHşHEHpHhH(pHzHcH u%H}uHuH}HEHP`j`H Ht?HEHLLLLH]UHHd$H]LeLmH}HuH(WϺH})LeLmMt:ͺI]HތLHEHx`踜HEHx`蛇H}H;H}uH}uH}HEHPpH]LeLmH]UHHd$H}HκHEHx`:H]UHHd$H}HwκHEHx`zH]UHHd$H]H}uUH =κHEH@`HcHc]Hq̺H)/_H8HcH9pHEH@`HcHc]H)qG̺HH-HH9v˺HEHx`k#HEH@`|HEHx`F#HEHx`u4#HEH@`HcHc]Hq˺Hp._H8(HcH9pHEH@`HcHc]H)q˺HH-HH9v1˺HEHx`#HEH@`|HEHx`#HEHx`u#HEHx`ΚH]H]UHHd$H}HuUH ̺UHrEEH]UHHd$H}HuHS̺EEH]UHHd$H}HuH#̺EEH]UHHd$H}HuH˺H]UHHd$H}HuH˺EEH]UHHd$H}HuH˺BHEHEH]UHHd$H}HuHS˺HEHCHEHEH]UHH ˺=٪u ^(ǪH]UHHʺ=u >(H]UHHʺ=u (H]UHHʺ=yu 'gH]UHH`ʺ=Yu 'GH]UHH0ʺ=9u ''H]UHHʺ=u 'H]UHHɺ=u ~'穁H]UHHɺ=٩u['HHEWH5vWH=NqڪHH$WH5WH=~Nq蹪HHWH5WH=]Nq蘪HHWH5WH=H]UHHd$H}HuUH @ȺUHVrEEH]UHHd$H}HuHȺHEHEH]UHHd$H}HuHǺH]UHHd$H}HuHǺEEH]UHHd$H}HuHsǺH]UHHd$H]LeLmLuH}HuH83ǺHĨH8tH=-i(HĨHHèH8uALuHèL(HèL MtĺLH耄LLHEHuH}HEHEH]LeLmLuH]UHHd$H]LeLmLuH}HuH0cƺHLèH8tH=]iXH1èHH'èH8u=LuHèL(H èL Mt ĺLH调LL HuH}UH]LeLmLuH]UHHd$H]LeLmLuH}HuH0źH¨H8tH=iHq¨HHg¨H8u=LuHT¨L(HJ¨L MtKúLHLL HuH}5H]LeLmLuH]UHHd$H]LeLmLuH}HuH8ĺHH8tH=ݵiHHHH8u@LuHL(HL MtºLH0LLEHuH}EEH]LeLmLuH]UHH0ĺ=iuMtHH5H=iHHWH5!WH=iMH]UHHú= u ^H]UHHú=鵁u ^׵H]UHH`ú=ɵu ^H]UHH0ú=u >H]UHHú=u wH]UHHº=iu WH]UHHº=Iu 7H]UHHd$H}HuHcºEEH]UHHd$H}HuUH 0ºEEH]UHHd$H}HuUH ºEEH]UHHd$H}HuUH EEH]UHHd$H}HuUMH H]UHHd$H}HuUMH mH]UHHd$H}HuUMH =H]UHH =yu ~ gH]UHH$HLLH}HuHUHH}t)LmLeMt觾LHL~LShHEH}tHUHuҌHjHcHUqHEHUH}H蟋HEǀHEǀHEǀHEH}uH}uH}HEHuHEHpHhH( HHjHcH u%H}uHuH}HEHP`襐H HtʑHEHLLH]UHHd$H]H}HuH EHEu/Hc]HqZHH-HH9v]HEu/Hc]HqHH-HH9v迼]HEu8HEHcHc]HqռHH-HH9vxHEHEu:HEHc@Hc]Hq芼HH-HH9v-HEXHEu:HEHcXHcEH)q>HH-HH9vỺHEXHEu:HEHcX HcEH)qHH-HH9v蕻HEX H]H]UHHd$H]LeLmH}uH(8HE;Eu6HEULeLmMtI]HzL@H]LeLmH]UHHd$H]LeLmH}uH(踼HE;Eu6HEULeLmMt膺I]H*zL@H]LeLmH]UHHd$H]LeLmH}uH(8HE;Eu6HEULeLmMtI]HyL@H]LeLmH]UHHd$H]LeLmH}HH軻EHEu!]HHHH9v褹]HEu!]HHHH9vq]HEu!]HHHH9v>]HEu!]HHHH9v ]LmLeMtԸI$HxxLHEHUHEHEHEHEHEH HHEHEH龁HチD$A D=vyDMHuHLH}螈H]LeLmH]UHHd$H]H}HHEHcHqMHH-HH9vHEH]H]UHHd$H]H}H蓹HEHcHqݷHH-HH9v耷HEH]H]UHHd$H}HuUH H]UHHd$H}HuEH(H]UHHd$H}HuEH(辸H]UHHd$H}HuEH(莸H]UHHd$H}HuEH(^H]UHHd$H}HuUH0H]UHHd$H}HuUHH]UHHd$H}HuUH зUHorEEH]UHHd$H}HuH蓷H]UHHd$H}HuHUMH \H]UHHd$H}HuHUMH ,H]UHHd$H}HuUHH]UHHd$H}HuHӶEEH]UHHd$H}HuH裶E<EH]UHHd$H}HuHUH oEEH]UHHd$H}HuUH8@%HEHUHEHEHEHEHEHUH]UHHd$H}H絺EEH]UHHd$H}HuUMH 譵H]UHHd$H}HuHUHH]UHHd$H}HuUHPH]UHHd$H}HuHUHMH H]UHHd$H}HuUHH]UHHd$H}HuUHH]UHHd$H}HuH蓴H]UHHd$H}HuUH`H]UHHd$H}HuUH0H]UHHd$H}HuUHH]UHHd$H}HuHӳH]UHHd$H}HuUH 蠳UHkrEEH]UHHd$H}HuUH`H]UHHd$H}HuUHMH(,EEH]UHHd$H}HuUHMH 첺H]UHHd$H}HuUMLEH(蹲H]UHHd$H}HuUHMDEH(舲H]UHHd$H}HuUHMDEH(XH]UHHd$H}HuUHMLEH((H]UHHd$H}HuUHMDEH(H]UHHd$H}HuUHMDEH(ȱH]UHHd$H}HuUHMDEH(蘱H]UHHd$H}HuUHMDEH(hH]UHHd$H}HuUHMDEH(8H]UHHd$H}HuUHMDEH(H]UHHd$H}HuUH఺H]UHHd$H}HuUMDEHH詰HEHUHEHEHEHEHEHUH]UHHd$H}HuHUMDEH(8H]UHHd$H}HuHUMDEH(H]UHHd$H}HuUHMH(ܯEEH]UHHd$H}HuUH 谯_HEHEH]UHHd$H}HuUHMDELMH8dEHEEH]UHHd$H}HuUHMH(,EEH]UHHd$H}HuUHMH H]UHHd$H}HuUHMDEH(ȮH]UHHd$H}HuUHMDEDMH0蔮H]UHHd$H}HuUHMH(\EEH]UHHd$H}HuUHMDEDMH0$H]UHHd$H}HuUHMDEDMH0䭺H]UHHd$H}HuUHMDELMH0褭H]UHHd$H}HuUHMDEH(hH]UHHd$H}HuUHMH HH_WH5q_WH="pn=zFہH]UHH谘=9ہu-HH]WH5I_WH="nyہH]UHH`=ځu ځH]UHH0=ځu ځH]UHH=ځu ځH]UHHЗ=ځu ځH]UHH蠗=yځu-HH\WH5a^WH=oxFځH]UHHP=9ځuN~HH\WH59^WH=%oxHHg\WH5@^WH=$olxفH]H铨HH듨HH퓨HHHHHHHHHHHHHHHHHHHH!HH#HH%HH'HH)HH+HH-HH/HH1HH3HH5HHd$H=H5H]WSͺH|HH=┨H5c]W6ͺHoHH=ŔH5v]WͺHbHH=H5]W̺HUHH=H5]W̺HHHH=nH5]W̺H;HH=QH5]W̺H.HH=4H5^W̺H!HH=H5 ^Wk̺HHH=H5;^WN̺HHH=ݓH5^^W1̺HHH=H5^W̺H푨HH=H5^W˺HHH=H5^W˺HӑHH=iH5^W˺HƑHH=LH5^W˺HHH=/H5_W˺HHH=H5#_Wf˺HHH=H5>_WI˺HHH=ؒH5Y_W,˺HHH=H5t_W˺HxHH=H5_WʺHkHH=H5_WʺH^HH=dH5_WʺHQHH=GH5_WʺHDHHd$Hd$HHd$SHHHHM[SHHeHHN[SHHEHHM[SHH%HHM[SHHHHhM[HH8HُH8Hd$HTHd$SHH5HHL[SHHHH(M[SHHHHL[SHHՏHHL[SHHHHL[HH8HHHHHHHHHHHHHHHd$H=H5]WCȺHHH=ҏH5]W&ȺHHH=H5]W ȺH⎨HH=H5 ^WǺHՎHH={H5$^WǺHȎHH=^H5?^WǺHHH=AH5Z^WǺHHHd$HHHHHd$H=H5@^WCǺHlHH=ҎH5[^W&ǺH_HHd$Hd$H4Hd$SHHHHHJ[SHHHHJ[SHHՍHHJ[SHHHHhJ[SHHHHI[HH8HHHd$H=H5x]WƺH\HHd$HIH8HIHHKHHMHHOHHd$H=?H5(]WźH쌨HH="H5K]WvźHߌHH=H5n]WYźHҌHH=茨H5]W<źHŌHHd$HyH8Hd$HہH|H<$ ĺHsHtYd_ =\Hd$Hd$ GH=tH=ĺH5CہH=,ہHd$SATAUAVAWHd$IIILMtH@LMtH@|%E1AIcATArD9HcLMtHRH9uLLfȹHcL1عILMtH@AA|`E1AIcADAr6%HIcADD$H$HH1H5[WH IcADHE9Hd$A_A^A]A\[SATH$xHIHDŽ$HD$`HHt$WH5HcHT$XH11׹I$HtH@H~$I4$H|$`qHt$`H1H;[W^ȹA|$HH3H1H;[W>ȹID$HtH@H~kIT$H3H1ȹID$HtH@H~2HHD$hHZWHD$pID$HD$xHt$hH1ɺdʹH3H1HZWǹIT$H3H1ǹfA|$ HHD$hHiZWHD$pA|$ H$HHcꁹ1H$H$Ϲ01H$rH$HD$xHt$hH1ɺɹIt$(H5ZWH|$`HT$`H3H1ƹID$0HtH@HjID$(HtH@H~/HHtH@Ht H|/tH3H1HYWƹIt$0HYWH|$`zHT$`H3H1xƹID$8HtH@H~NHHD$hHYWHD$pIt$8HeYWH$(H$HD$xHt$hH1ɺȹID$@HtH@H~NHHD$hHYWHD$pIt$@HYWH$H$HD$xHt$hH1ɺFȹWH$ĹH|$`ùHD$XHtYH$A\[Hd$HAH11)Hd$@<0r6,9v,r.,v,r&,v @ǃ0@H7ÁHW1SATAUAVAWHd$H<$IHtHvH<$1GԹAH$HHuHNI1fIcA|%u>IcHA|SAAIcHA|:A DHcB*AHcIcADB*AIcLMtH@H9~HcH<$1ӹHd$A_A^A]A\[SATAUAVAWH$ IIHfAEH$HD$HDŽ$HT$`Ht$xRH0HcH$H|$1ҾPr*HԁLH|$}HH$lH$LN¹fEg LH>¹L$$MtMd$A1@H$HcÀ|:u\HcHH4$H$BԹH$LHcHPH4$H$ԹH$H\uH$HcDAr r2H$HcD+t-r rr s A97H4$H=VWÅHcHPH4$H$pӹH$I@Et"Iw@H$H$I@HcHH4$H$ӹH$HH4$H=XUW+ÅHcHPH4$H$ҹH$I8sEt"Iw8H$}H$I8LHcHH4$H$ҹH$HH$H$HtH@HH$8/H$x/ fDHcH$H$HtHRH9H$HcÀ|/uHcHH4$H|$ѹHcH4$H$ѹH$H[AGHAGHH|$1CH$HtH@xÃH$HcÀ|/HcHPH $HtHIH4$H$>ѹH$I0ݾEt"Iw0H$H$I0趾I0H5SW&ιHtCI0H5SWιHt.HcH4$H$йH$HcI01SH$HcÀ|:uI0H4$&Et"Iw0H$0H$I0I0H5RWo͹Ht!I0H5RWZ͹Ht H1˽ I01辽I(H4$訽Et"Iw(H$H$I(聽Ht$H=RWÅHcHT$H$HtHRH9H$HcÀ|:@gCHT$HtHR9|&fH|$HcL0 r@09@t`HcHPHt$H$ϹH$|fAG HcHHt$H$ιH$H|$芼Ht$@йÅHcHPHt$H$ιH$I=HcH|$;չHD$HtH@HHt$:PйÅuIHt$컹nHcHHt$H$ιH$I軻HcHPHt$H$͹H$I茻IHt$|NH$HH|$躹H$HtPH$A_A^A]A\[SATAUHd$HH3/aϹIgEl$AIcHH$HtHRH9H$Icŀ|/uIcIcH)Hu'H HB|.uIcHpHߺӹzIcIcH)HdH HL$HB|.uQHL$HB|.uAAA~HIcH|/uA~AIcIcH)IcHpH;ӹEE~HHtHRIcH9Hd$A]A\[SATAUH$HIIIEH5ḰHoH5<́H|$ProHDŽ$PH5́H$RoH$H$xIH'HcH$HHHˁLH$H$Ht$PHtH<$uH|$Pt0ۄRHD$PHx(mHx0ufHD$PH8u[HxuTH$tH$H|$8迸H$H|$@譸HH$PH$PL荸H|$PtLLuH4$H|$PbH|$hHt$H|$hGfD$ fD$pHt$H|$X.Ht$H|$`D$H$HD$xH$XHt H$X8/tHT$xHt$(H|$x1H|$xHt$PH$PH$PL賷JH$P1H5ʁH$-nH5ʁHnH5ɁH|$P nH$HtLH$`A]A\[SATAUAVH$xHIIIEH$HD$xHD$pHD$hHT$Ht$ FH%HcHT$`u[ILZLH|$h Ld$hHH|$p H|$pLLÄtH4$H|$x Ht$xLܹIH|$xعH|$pH|$h絹HߵHD$`HtKH$A^A]A\[SATAUH$@HII$H5~ȁHkHT$PHt$hEH $HcH$E0HHwH<$H5JWbuHD$(H$HtH@H~4H$8/u'H$x:uLHt$(ǹ LHt$(BI4$LHT$01_AH<$uLHT$0Ht$(1?A7HH5ǁHkH$HtIDH$A]A\[SATAUAVHd$HIAH$HD$hHT$Ht$ DH"HcHT$`MtA<$/t/LMtH@H~"A$Ar s A|$:uAE0HH5IW,Et1A<$/tH3H1HIW<H3H1H#HW&LH볹Et"H4$H+HWH|$hHt$hHijH3HH$1㴹FH|$h4H,HD$`HtMHHd$xA^A]A\[ðHHtHRe1Hc|7:tQuHct7Ar r.Hct7+t-r rr s90UHHd$H vHӁHEHQցHEHށHEH{ہHEHuHH=UHWH]UHHd$H}H'vHEHKB&H]UHHd$H}HuHuHEHH;EtHEHUHH]UHHd$H]H}HuHuHEHH}6HEHx t,HEXHHHH9v}sHEXH]H]UHHd$H}H'uEEHEH]UHH$HLLLLH}HuHUHtH}t)LmLeMtrLHN2LShHEH}tHUHu@HHcHU4HEHUH}H!OHEƀ;H]Ht&rL+L1H]Ht rL#L1LA$H HH]HtqL+L}1LeMtqI$Ha1LALuHLeMtqM,$L$1ދLDAAHEH}uH}uH}HEHBHEHpHhH(_?HHcH u%H}uHuH}HEHP`YBCOBH Ht.E EHEHLLLLH]UHHd$H]LeLmH}H(KrHEHt)LeLmMt'pI]H/LxHEHHEHEH]LeLmH]UHHd$H}HqHEHH]UHHd$H]LeLmLuL}H}H0qHEHuL}IH$ŁHL%ŁMtFoLIL.HLLAHUHHEHHuLmLeMtnI$H.LH]LeLmLuL}H]UHHd$H]LeLmLuH}H(pHELHBWHELMtnnM.L.HLA0H]LeLmLuH]UHHd$H]LeLmH}H(pLmLeMtnI$H-LxH}EEH]LeLmH]UHH$HLLH}HuHUHoH}t)LmLeMtwmLH-LShHEH}tHUHu;HHcHUuUHEHUH}H3HEǀ<HEH}uH}uH}HEHe>HEHpHhH(;H8HcH u%H}uHuH}HEHP` >?>H Ht@@HEHLLH]UHHd$H}HnHEH+vH]UHHd$H}HmHEHHEH謹HEEH]UHHd$H]LeLmH}H mLmLeMtwkI$H+LH} H]LeLmH]UHHd$H]LeLmH}H mLmLeMtkI$H*LH}iH]LeLmH]UHHd$H]LeLmH}H lLmLeMtjI$H;*LH}IH]LeLmH]UHHd$H]LeLmLuH}H(7lHEHkH}HHELHELMtiM,$L)LHA`H]LeLmLuH]UHHd$H}HkHEHH5=WHEHHYH]UHH$HLLH}HX8WILMMt!cM,$L"HLA0HEHMMMtbMuL"LHA`MMMtbMuL_"LA@Lx@L4HlH`HTHHH Htg5HEH}uH}uH}HEH3HEHpHH@R0HzHcH8u%H}uHuH}HEHP`L34B3H8Ht!65HEHLLLLH]UHH$HLLLLH}HuHcHDžHUHu]/H HcHUH}H6HEHH \5WHH=tQAHEHpH0.H HcH(LeLmMtg`I]H L ALeLmMt4`I]HL HcHkqo`LuLmMt_MeLLA$HcH9~LeLmMt_I]HgL HcHkq_Hq_HH-HH9v_AH]LLeMtX_M,$LLHDAHH H}H H cP@HEHEH8u4HEHHH8裭;*tH}HHEHEH8u4HEHHH8c;.tH}HHHEH8u4HEHHH8#;*tH}HHŵHEH0H;H.HEH0H;ͰHH}HwHEH8tHEHH}Gr/H}iH(Ht0S/H觛HEHt0HLLLLH]UHHd$H}Hg_HEH+H]UHHd$H}HuH3_HEHHjHp|H]UHH$HLLH}HuHUH^H}t)LmLeMt\LH\LShHEH}tHUHu*H HcHUuUHEHUH}HHEǀ9HEH}uH}uH}HEH-HEHpHhH(P*HxHcH u%H}uHuH}HEHP`J-.@-H Ht0/HEHLLH]UHHd$H]LeLmLuH}uH0D]HEHc;LeHX0WLuMt[M.LHLA@LuLeMtZM,$LLAHH}8H]LeLmLuH]UHHd$H}H\HEHuHEHHUHEEEH]UHHd$H}H'\HEHuHEHE H}EEH]UHHd$H}H[HEHuHEHHUHEEEH]UHHd$H}Hg[HEHuHEHE H}EEH]UHHd$H}uH[HEHuHEHu葰HEUH]UHHd$H}uHZHEHuHEHuaHEUH]UHH$HLLH}HuHUH$ZH}t)LmLeMtXLHLShHEH}tHUHu2&HZHcHUuUHEHUH}HsHEǀHEH}uH}uH}HEH(HEHpHhH(%HHcH u%H}uHuH}HEHP`(%*(H Hto+J+HEHLLH]UHHd$H]LeLmH}HuH(XH})LeLmMtzVI]HLH}HUH}uH}uH}HEHPpH]LeLmH]UHH$HLLH}HuHUHWH}t)LmLeMtULHlLShHEH}tHUHu#HHcHUHEHUH}HHEƀ HEƀ!HEǀXdHEǀHUH\HUH`HUHdHUHhHUHlHUHcpHUHtHUHxHEH}uH}uH}HEH%HEHpHhH("HHcH u%H}uHuH}HEHP`%%'%H Hto(J(HEHLLH]UHHd$H]LeLmH}HuH(UH})LeLmMtzSI]HLHUHHH(H0HEHHHHHPH}HUH}uH}uH}HEHPpH]LeLmH]UHHd$H}HTHEH+膈H]UHHd$H]LeLmH}HuHUH0TLmLeMtoRI$HLH]LeLmH]UHHd$H]LeLmH}HuH(TLmLeMtRI$HLH]LeLmH]UHHd$H]LeLmLuH}HuHUH8SHEHHU苀H]LuLeMtlQM,$LLHAH]LeLmLuH]UHHd$H}H SHEHuHEHHdEHEHHEEH]UHHd$H}uHRHEX;Et4}EE}P|PEHUXH]UHHd$H}HuHCRHEH8uHEH@HUHuHE8H]UHHd$H}HuHQHEHHjHpH}^HELeLmMtII]H L@YHEHIHEHǀHEHtEHXL`LhLpH]UHH$HLLH}HuHUH4KH}t)LmLeMtILHLShHEH}tQHUHuBHjHcHUHEHUH}HOHEǀ 6H,H*HEHEHXHjHpˆHEH`H jHp谆HEH}uH}uH}HEHHEHpHhH([HHcH u%H}uHuH}HEHP`UKH Ht*HEHLLH]UHHd$H}HuH cIHEHh#?HEH]UHHd$H]LeLmLuH}HuHHIHզHH1>HHELhHELhMtFM,$LLHAHEHEHhHu7E܃}t=HEHh8t'HuH}HEH@HEH}cH]LeLmLuH]UHHd$H}HuH#HHEHHjHplH]UHHd$H]LeLmH}HuHUH0GLmLeMtEI$HcLH]LeLmH]UHHd$H]LeLmLuH}HuHUH8_GHEHtHEǀHEǀH]LuLeMtEM,$LLHAH]LeLmLuH]UHHd$H]LeLmLuH}HuHPFHLqL HBqL(MtDI]H7Lx tHEHEHEHpLAHEHpLMt6DI]HDLHEHpLAHEHpLMtCI]HDLHEHxLAHEHxLMtCI]H>DLHEHxLAHEHxLMtLCI]HDLHELpAHELpMtCI]HDLHELxAHELxMtBI]HvDLHELhAHELhMtBI]H9DLHEHxEHEHpEԋE;EEE؉EHEHhEHc]Hkq}BHqrBHH-HH9vB]E;EEEELuALmMtAI]HjDLHELpAHELpMtAI]H-DLHELxAHELxMtLAI]HDLuH}aHELAHELMtAI]HDLHELhAHELhMt@I]HdDLHc]HcEH)q@HH?HHHH-HH9v@HEHh HEHpuWHEHxuDHEHxϗH} HcHEHpHcH)qU@HH-HH9v?HEHpvLmLeMt?I$HVLH]LeLmLuH]UHHd$H}HuHcAHEH}HHEHuHEHHuHEH]UHHd$H}HuHAHEH}HsHEH(uHEH0HuHE(H]UHHd$H}HuH@HEH}HHEH8uHEH@HuHE8H]UHHd$H}HuHC@HEHHuHEHPHuHEHH]UHHd$H}H?HEH[VtH]UHH$PHPLXL`LhLpH}H?H^HHUAIH m^IHm^HHtc=HILLLDHUA$ HUHHUHu HHcHU H}HEHcHEHHEHHE@PuHEHHEHEHHEHxt6HEHEHHEHEH.6HEHHUHEHHUHEHHELAHEHHt;L#LDLA$0 HELAHEHHt;L#LCDLA$HEHHUH HXH`HEHHMHKHHHEHHEH HHHELIHāIHāHHt:ILLLLA$HUHhHELhHELMLHt:L#L=LLA$`AMLHtg:L#L LDA$HEL2@LHE L.HUHIIHUHIIHUH IIHUHgIIHEHnI I(HELIHpIHpHHtn9ILLLLA$HUHHELHELMLHt9L#LLLA$`HL LjHEHhALZLKHELIH|lIHrlHHt8IL0LLLA$HUHpHELpHELMLHt<8L#LLLA$`HEHXLAKMIHt7L#LLDA$HEHhHcHH?HHHq 8HH=v7AMIHt7L#L%LDA$HEHLHELXHEHHHt,7L#LLLA$HcHqc7HHHH9v7LLtHEHCIIAMLHt6L#LBLDA$IaL HþHfL HHEHH}HEHLp@LrHELIHlIHlHHt5ILLLLA$HUHxHELxHELMLHt5L#L9LLA$`HEH`LhAKMIHtH5L#LLDA$HEHhHcHH?HHHH=v 5AMIHt4L#LLDA$HEHLHEL`HEHHHt4L#L4LLA$HcHq4HHHH9vh4LNLqqI^AMLHt4L#LLDA$Lb HþH~LE HHEHHzHEHL@LoHEHhHEH THEHHcHEHHcHq3HH-HH9vE3HEHQHEH#|HELHEHHt2L+LLA EHEHHUHEHHUHEHDLuH]Hti2L#LLDA$HEHDLuH]Ht*2L#LLDA$HEHHEHǀHEHtEHPLXL`LhLpH]UHH$HLLLH}HuH`q3H}t##HH5WHUEHUHuHݸHcHUWHhH(lHݸHcH HuH=ߋu H}裗EHuH=,iuHEHHuHE2H]LuLmMt0MeL*LHA$H HHHHܸHcHu?H"^L0IH^L(Mt0I]HLLuHHtT/X}u H}HEHtHEH@HEHEHLLLH]UHHd$H}uH8T1HEȺH HոEEHuH}yHEHEH]UHHd$H}fuUHMHH0HEH H$ոEfEfEEfffEHEHEHuH}HEHEH]UHHd$H}Hw0HEHHEHEH]UHHd$H}H70HEHHEHEH]UHHd$H}@uHUH@/HEH H'ԸEE؉EHEHEHuH}HEHEH]UHHd$H}fufUMDEHPh/HEH HӸEfEfEfEfEHcEHE}uHEH HEHuH}^HEHEH]UHHd$H}fufUHMDEHP.HEH HӸEfEfEfEfEHEHE}uHEH HEHuH}HEHEH]UHHd$H]H}fufUMHPH.HEH HҸEfEfEfEfEʋ} HHHH9v,H]HuH}6HEHEH]H]UHHd$H]H}fufUMDEHX-HEH HѸEtt#tt"t&-E$EEE  E fEfEfEfE‹} HHHH9v0+H]HuH}OHEHEH]H]UHHd$H]H}fufUMDEHX,HEH HиEtt#tt"t&-E$EEE  E fEfEfEfE‹} HHHH9v@*H]HuH}_HEHEH]H]UHHd$H}fufUfMDEH`+HEH0HϸE fEfEfEfEfEfEE؉EHuH}HEHEH]UHHd$H}HW+HEHHEHEH]UHHd$H}H+HE4HHEHEH]UHHd$H}H*HEHVHEHEH]UHHd$H}HuH8*HEȺH HθEHEHEHuH}HEHEH]UHHd$H}H7*HEHHEHEH]UHHd$H}H)HEHvHEHEH]UHHd$H}H)HEH6HEHEH]UHHd$H}Hw)HEHHEHEH]UHHd$H}H7)HEHHEHEH]UHHd$H}H(HEHvHEHEH]UHHd$H}H(HEH6HEHEH]UHHd$H}Hw(HEHHEHEH]UHHd$H}H7(HEHHEHEH]UHHd$H}H'HEHvHEHEH]UHHd$H}H'HEH6HEHEH]UHHd$H}Hw'HEHHEHEH]UHHd$H}H7'HEHHEHEH]UHHd$H}H&HEHvHEHEH]UHHd$H}H&HEH6HEHEH]UHHd$H}HuHUH@o&HEH HʸEHEHEHEHEHuH}HEHEH]UHHd$H}HuH8&HEȺH H;ʸEHEHEHE HuH}HEHEHEH]UHHd$H}HuHUMDEHPx%HEH Hɸ}u}u EE}u EEHEffEHEHEHuH}VHEHEfUfHEH]UHHd$H}HuHUMDEHP$HEH Hȸ}u}u EE}u EEHEffEHEHEHuH}HEHEfUfHEH]UHHd$H}HuHUMDEDMHX#HEH H,ȸ}u}u EE}u EEHEffEHEHEHuH}HEHEfUf}u uH}HEH]UHHd$H]LeLmLuL}H}HuUHEHHH}HX#EEL}LuAH]Ht HILDLLMA$HEHEH]LeLmLuL}H]UHHd$H}HuHUH@o"HEH HƸEHEHEHEHEHuH}HEHEH]UHHd$H}H"HE<HHEHEH]UHHd$H}H!HE>HFHEHEH]UHHd$H}H!HE?HHEHEH]UHHd$H}HG!HEBHHEHEH]UHHd$H}H!HECHHEHEH]UHHd$H}H HEDHFHEHEH]UHHd$H]H}fufUMDEDMH`p HEH HĸEE<,t,\,Ett#tt"t&-E$E EE  E Ett#tt"t&-EF$EHEJEN ENLEtt#tt"t&-EG$EIEKEO EOfEfEfEfE}HHHH9v4H]HuH}SHEHEH]H]UHHd$H}HuH8HEȺH H øEQHEHEHuH}HEHEH]UHHd$H}H0wHEкH H¸EfEHuH}HEHEH]UHHd$H}H0HEкH HO¸EfEHuH}5HEHEH]UHHd$H}HuFtt)t>tSfHEHxt[HEHxLHEHxtAHEHx2HEHxt'HEHx8|HEHxt HEHxnH}0H]UHH$PH}HuHUHEHxP蛔HEHE@t {HEHxu EEHuH}nHE@$HEDHEHxPHuE11ɺHEHx[HEHpH}rEHuH}4nHE@$HEDHEHxPHuE11ɺ蘣HEHx$HE@D$HED$HEHPHEHxPHuE1E11ױHEHxD$0D$(D$ D$D$HE@D$HE$HEHpPHEHxE1E111HHEHxt=$HE@D$HED$HEHPHEHxPHuE1E11nH}eH]UHHd$H}Hu1(HEHuHuH5H}ˎHEPHE0H}ŇxHEHEPHE0H}HuH}ٲHbHMH}H5VdHHMH}H5VdH}ꙸH]UHH$ H}HuUMH}]VHDž`HUHpmHĸHcHhGY-HEH}uEEEHUHuH}膅H}Ẽ}uEЉE}uEԉEHU؋EHE؋UP}uHE@HEHUHPHE@HUHEHBH}萴HEH(HDž EЉ8HDž0EԉHHDž@ẺXHDžPH H5VH`-H`HuH}1IVHuH}7H`TH}THhHtH]UHH$ H}HuUMH}}THDž`HUHpH¸HcHhGy+HEH}uEEEHUHuH}覃H}Ẽ}uEЉE}uEԉEHU؋EHE؋UP}uHE@HEHUHPHE@HUHEHBH}谲HEH(HDž EЉ8HDž0EԉHHDž@ẺXHDžPH H5VH`+H`HuH}1iTHuH}WH`RH}RHhHtH]UHH$ H}HuUMH}RHDž`HUHpHHcHh)HEH}|^EH}`EH}gEԃ}uEЉE}uEԉEHU؋EHE؋UPHE@HEHUHPH}VHEH(HDž EЉ8HDž0EԉHHDž@ẺXHDžPH H5qVH`E*H`HuH}1RHuH}H`QH}PHhHtH]UHH$pH}HuUMH}PHUHuHCHcHxun (HE؃}u HE@,E}u HE@0EHU؋EHE؋UPHE@HEHUHPH}DHuH}'H}PHxHt8H]UHHd$HHHEHuHH=6VBH]UHH$HLLLLH}HuHUH8H}t)LmLeMtiLHѸLShHEH}t`HUHx߹H蹽HcHpHEHUH}HHEƀ1H]HtL+LиH]HtL#LjиLA$H HH]HtL+L7иLeMtwI$HиLALuHLeMt:M,$LϸދLDAAHEǀHEǀHUHE苀X%XHUH.VHHHUHVHHHEƀH}FHEH}uH}uH}HEHHpHpHXHݹHƻHcHu%H}uHuH}HEHP`#HHtmHHEHLLLLH]UHHd$H]LeLmLuL}H}HuH@HEHuDHELx`LuH]HEL``MtIML͸HLLAEEEH]LeLmLuL}H]UHHd$H]LeLmLuH}H0HEH[uHEHxH0HEHxH0jHEHxH0}OHEHxHٲ0b4HEHxH0GHEHxHӲ0,ǹHHt^HH3ĹH[HcHuH}D?ǹȹ5ǹHHtʹɹǹHl3HpHtȹHEHLLLH]UHH$HLLLLH}HuHUMHPH}t*H]LeMtML{HAUhHEH}tHUHp¹H%HcHhHEHUH}HH}@ ZLuAH]HtAL#L泸DLA$HUHn4H}RUHXtH} NHEHxuH}@ ZH}H}0H}@dYEDE܃E܋EHiMHH<HMH!DEuH}IL}tHprrr 2H,f,^,V,, >,>,,,t,, HErrXHEǀH}HVf/zt H}?%H}f)HV^H}uHErrIHEǀH}YHjVf/zr H}H}4QH}7HErr$HEǀH}YH}H}HEHH5ۿV4HtH}HHEHHEC9HtHELMtMd$H} HcHEHH-8HqI9|VHX$uH`.H`HEHHX%HXH} H}7H}HEHHtH@HtGHEHHtH@Ht'HEHHH#4;-tH}H5mVhMHEHHtHIHqHEHHHX5HXH}H}H\VfWH}HEt9HEǀH}E}%tZHE<*rL,*t1,t ,t,t%:HEYEHV^EEHɽV^EHE<*,*tL,t ,t(,t\HEXEH}uHE\EH}YHEYEH}=HVf/Ezt H}AHE^EH}HEUH}}HEE t %t=tt)HEHHuHEHPHuHEH!H}VH}k H}虴HX H` HEHtH8L@H]UHHd$H}HHEǀHVH}HEƀ=H]UHHd$H]LeLmH}HuHUH8SHE0H}cHEH}u+LeLmMt"I]HơLHE0H}H]LeLmH]UHHd$H]H}@uHHHb@HH HuH=ߺVڰEErE.} tE= }tECHE}-ظ@@HH5غV3HHqHH-HH9v8]}}E~fDuH}LHH=zk譓u(Hc]uH}'H;X(tuH}HEHc]HqHH-HH9v]H}tH};EjHEH]H]UHHd$H]H}HuH(/HEp[ ",6@JT+yHEHp(H0q߹@H}0zH}_gHbpH}NH}/;H}*(H}-H}+H}QH}SH}%H}RlH}=YH}FH}C3}HErr8HEǀH]H}XHEH}-HErr,HEǀH}HEH}HErr,HEǀH}PHEH}{HUHsVHHH}hHEu=H}+H}2HEH(uHEH0HuHE( H}N+HEH8uHEH@HuHE8H]H]UHHd$H]H}H޹HHEHHwH]H]UHH$@HPH}H:޹HEHDžpHDžxHUHujH蒈HcHUnH6HH{uMHHuH>xHbHPHuAHHp=HpHxcHxH}<$H}ݝhhH}^٬Hp-Hx!H}HEHt:HPH]UHH$HLLLH}HuHUMHܹH}t)LmLeMtڹLHBLShHEH}t?HUHuȨHHcHxHEH}ŻHUH}H蔚DuLeLmMt ڹI]H谙LD H}{UHEH}uH}uH}HEHKHxHpH`H HHcHu%H}uHuH}HEHP`x㪹HHt­蝭HEHLLLH]UHHd$H]LeLmLuL}H}uHHڹHEHOHxdjHpH}gUH4H}%UH˕4H}?HEHxuHEƀHEǀ`H}襑HMHUHHHL}IHhpHL%hpMtعMLIL诗HLLA$HUHHEHAIMLHt׹HIL_LDA$L}MLHt׹HIL-LLA$`LH/@H=L}IHgpHL%gpMt,׹MLIL˖HLLA$HUHHEHHg5AH]LmH]HtֹHILkLDA$HEHHELL}MLHtwֹHILLLA$`LHH4D0IMLHt,ֹHILΕLDA$HHEHxLHL}IHlHL%޹lMtչMLILqHLLA$HUHHEHAIMLHtչHIL$LDA$LHVAIMLHt;չHILݔLDA$I>HELMLHtԹHIL蓔LLA$`H5ޭVLHcH0Hx޴MHUHH=IvTHUHHEHAIMLHtcԹHILLDA$LH-AIMLHtԹHIL输LDA$HELMLHtӹHIL腓LLA$`HEHI(I0HEHI8I@HEHIhIpHEH!IxIHEHILuIHkHL%kMt)ӹMLILȒHLLA$HUHHEHHEH:L}IHkHL%kMtҹMLILXHLLA$HEH^jHpH}/HMHUH HHHEHHHuvLuIHUkHL%KkMtҹMLIL辑HLLA$HEHb^jHpH}蕸HUHMHHHHEHHHu}uH]LeLmLuL}H]UHHd$H}HuHUHoӹHEHHUHuH]UHHd$H}HuH3ӹHEHsH]UHHd$H}H ҹHEHEEH]UHHd$H}HuHҹHEHCH]UHHd$H}EH rҹHEHEmH]UHHd$H}H7ҹHEH ջ&H]UHHd$H}HuHҹHEHwH]UHHd$H}HuHѹHEHwH]UHHd$H}HuHUHѹHEHuHEHHuHEH]UHHd$H}HuH3ѹHEHuHEHHEH]UHH$HLLH}HuHUMHйH}t)LmLeMtιLHILShHEH}tGHUHuϜHzHcHxHEHUH}HiqHEUpHEprr HEHcpHq`ιHUHB( HEH@(HEH}uH}uH}HEHJHxHpH`H HzHcHu%H}uHuH}HEHP`잹w➹HHt蜡HEHLLH]UHH]UHHH H5FH=OH]UHHd$H}HuH(ιHTVHHEEH]UHHd$H}HuHUH oιEEH]UHHd$H}HuHCιEEH]UHHd$H}HuEH(ιH]UHHd$H}HuUH͹H]UHHd$H}HuUH͹H]UHHd$H}HuEMH0y͹H]UHHd$H}HuHS͹H]UHH0͹=)u-n&HHؤVH5VH=TmH]UHH̹=yu n+gH]UHH̹=Yu n+GH]UHH̹=9u N+'H]UHHP̹=u .+H]UHH ̹=u +硁H]UHH˹=١u *ǡH]UHHd$H˹E=u EEH]UHH˹=u *wH]UHHd$H]LeLmH}H ;˹ELeLmMt$ɹI]HȈLHEH@(Hq\ɹHUHB(HEHxuHE@H]LeLmH]UHH$HLL H}HuHʹH}t)LmLeMtkȹLHLShHEH}t>HUHu薖HtHcHUHEH}H'HEH@HE@HE@HEH@ HEH@(HE@HE@HEH}uH}uH}HEHHEHpHpH0•HsHcH(u%H}uHuH}HEHP`輘G貘H(Ht葛lHEHLL H]UHHd$H]LeLmH}HuH(ȹH})LeLmMtƹI]H>LH}H}H輀H}uH}uH}HEHPpH]LeLmH]UHHd$H]H}HuHȹH}uHEHU@;B|1HE@HcHUHcRHq1ƹHUHcRH99HEHcXHqƹHH-HH9vŹHEXHEH@(HqŹHUHB(HEHcXHqŹHH-HH9v^ŹHEXH]H]UHHd$H]H}HǹHEHxucHEH@HEHEH@HUHHBHEHHEHcXHqŹHH-HH9vĹHEX+HٹHEHEH@ HqĹHUHB HEHcXHqĹHH-HH9vXĹHEXHEH]H]UHHd$H}uHƹ}|EHE@;Et HEUPH]UHHd$H}uHŹ}|EHE@;Et HEUPH]UHHd$H}HgŹHEH@HEHEH@HUHHBH}عH]UHHd$H]H}H ŹHEHxuHEH@HcXHqLùHH-HH9v¹}5EEEHEHxugHEH}J׹;]~HEHx}HEH@HEH@HEH@ HEH@Hkq¹HUHB(H]H]UHH$HLLH}HuUHùH}t)LmLeMtLH}LShHEH}tHUHuH+nHcHUujHEHEHcUHPHEH@HkqHUHB0HUHEH@0HB(HEH}uH}uH}HEH豒HEHpHhH(\HmHcH u%H}uHuH}HEHP`VᓹLH Ht+HEHLLH]UHHd$H]LeLmH}HuH(W¹H})LeLmMt:I]HLH}H}H\zH}uH}uH}HEHPpH]LeLmH]UHHd$H]H}HHEHUH@H;B t)HEHUHH(HB(Hq⿹HUHB(HEHx8JHEHUHH8HBHq貿HUH;B(|#HEHUHH8HBHq苿HUHB(H]HC(HH9v'Hs(HEHxҹHEx@uHEHxHEHp( eHEHxtHH=5awHUHBHEHpHEHxHUHEH@HB HEHUH@(HB HEH@HEHEHUH@HBHEH]H]UHHd$H]LeH}HuHUHHHEHxu,HEH@@EH]HS0HHH9vC0EHc]Hq!HH-HH9vĽ}EEEHcELceIqսLH-HH9vxDeHEHxuHEHEHEHcEHEHcEHq聽HcUH9t HEH@ HEH}HuUHEH@HEHEH;Eu;]~KH]LeH]UHHd$H}HuH(裾HEHUH@ H;|UHEHP HH?HHHHEHP qǼHUHEHHEHEH;EHUHUHEHHuH}>HEHEH]UHHd$H}HuHHxH}HEH裭HEHt9HEHXuHEHpHH}ر0HuH}زA H]UHHd$H}HuUHEH5VHtOH} HtHEHt5HEHxPt*EttHEHxP! HEHxPH]UHHd$H}HuHFHEHHEHtHEHpHH}0H]UHHd$H}HuHFHEHt3H}話t&HEH@xHEHtHEHpHH}0_H]UHHd$H}HuHFHEHtmH}y"t`H}H7$HH}x tHEH@pHE'(HH}U t HEHEHEH}EtzHEHxxt&HEH@xHxPZtHEH@xHxP.HEHHEHHxPYHEHHxPkHEHxxt&HEH@xHxPYtHEH@xHxPHEHt,HEHHxPgYtHEHHxPH]UHHd$H}HuUHEHuH}9H}tH}t H}HEHoH8u H}}t2H}H5ݏVH}H5ݏVxHuH}JH}HH8tH}HHE HEH@HHE}uH}H5nVHu)H}H5TVHUH}H5PVkHuH}I5H}H5!VHt H}H5VHEHH}IH]UHH$pH}HuUH}PHEHHEHEHUHHUHuЂH`HcHxuUHuH}*ՅHEHUHHxHtEH]UHHd$H}HuUMHEHE<9HtH\8uH\8rEE}tHuH3(}tUHuH}UHuH}yH]UHHd$H}HuHExtHEPHEHpH}HEPHEHpH}#H}j+HEHEHEH0H}HEH@HEH}uH}-H]UHHd$H}H},DH}oHEHu HE HEHHEH}t*H}聑tXEHH}%uHEH]UHHd$H}HuUH}tHEH@HHEHuH H]UHHd$H}HuHEHpH}5HEHxtPHEHxt?HEHxHUHBHEHUH@H;BuHEPHEHpH}H})HEHEHEH0H}`HEH@HEH}uH},H]UHHd$H}HEHE;@HEH8t HEH8HȌH8Hu0H}[HEH}uH}t H}+H]UHHd$H}ɲHEH@HEH@H]UHH$HLL H}HumH}u'LmLeMuTLHoLShHEH}HUHu~H\HcHUu:HEH}1iHEH}tH}tH}HEH`HEHtlHpH0~H7\HcH(u#H}tHuH}HEHP` 薂H(Ht軃HEHLL H]UHHd$H]LeLmLuH}Hu8H}~'LeLmMu쮹I]HnLH}~M@HEH@HEHUHEH@HBLuALmMu蔮I]H8nLLS`HEHxuH}1hH}tH}tH}HEHPpH]LeLmLuH]UHHd$H]LeLmLuH}Hu0H}t=HEH}HLuLeMu׭M,$L{mHLAU`H]LeLmLuH]UHHd$H}Hu腯H}tHEH}HHuH}H]UHHd$H}9HEHpH}HEHxuH]UHHd$H]LeLmH}(ݮHEHxoHEH@HEHEH@HUH@HBHEHxtHEH@H@HEHcXHqହHH-H9v般HEX+LeLmMuMI]HkLHEHEH@HEH@HEH]LeLmH]UHHd$H]LeLmLuH}Hu8խHEHcP(Hkq"HEHc@H9LeLmMu蟫I]HCkLHUHEH@HBHUHEHBHEHxtHEHPHEHBHEHcXHq蠫HH-H9vHHEXLuALmMuI]HjLLS`HEHcPHkqH=hiH?H]UHHd$0H]UHHd$0H]UHHd$H舁H5H=*KiH]UHHd$0H]UHHd$0H]UHHd$1H5H=WmHH]UHHd$0H]UHHd$0H]UHHd$1H5FH=mHOH]UHHd$1H5VH=omHH]UHHd$0H]UHHd$0H]UHHd$1H5VH=mHϿH]UHHd$1H5^H=7"nH蟿H]UHHd$0H]UHHd$1H5fH=$H_H]UHHd$1H5ۃH=whH/H]UHHd$1H5F݃H=hHH]UHHd$1H5VރH=ϛhHϾH]UHHd$0H]UHHd$0H]UHHd$1H5H=ghHH]UHHd$0H]UHHd$1H5nH=hH?H]UHHd$1H5H=OkHH]UHHd$1H5H=kH߽H]UHHd$1H5H=WkH诽H]UHHd$HH5ɸH=k}H]UHHd$1H5H=kHOH]UHHd$HH5ŁH= l1H5ŁH=} lH]UHHd$0H]UHHd$HH5ҁH=RFlͼ1H5ҁH==Fl踼H]UHHd$1H5ՁH=XlH菼H]UHHd$1H5ځH=klH_H]UHHd$1H5܁H=tlH/H]UHHd$1H5&߁H=w'lHH]UHHd$0H]UHHd$1H5֑H=_mH迻H]UHHd$HH5H=hm荻H]UHHd$0H]UHHd$0H]UHHd$0H]UHHd$0H]UHHd$0H]UHHd$0H]UHHd$0H]UHHd$0H]UHHd$1H5H=G'pHߺ0H]UHHd$EHLWtC,te,rt1H5TH=AOp茺R1H5YH=*Opu;t1H5aTH= OpUE1H5H=Np8EH]UHHd$1H5H=HH]UHHd$0H]UHHd$0H]UHHd$0H]UHHd$0H]UHHd$0H]UHHd$0H]UHHd$HpH5{H=ck}H]UHHd$0H]UHHd$1H5H=W-mH?H]UHHd$HH5Q"H=ʋ] H]UHHd$0H]UHHd$0H]UHHd$1H5*H=']H迸H]UHHd$1H51H=]H菸H]UHHd$1H5:H=O[H_H]UHHd$1H5?H=jH/H]UHHd$1H56BH=jHH]UHHd$0H]UHHd$1H5.DH=jH迷H]UHHd$1H5LH=\H菷H]UHHd$1H5MH=RH_H]UHHd$1H5GH=H/H]UHHd$0H]UHHd$0H]UHHd$0H]UHHd$0H]UHHd$H}!HH}tH}赂H@pHEHEHEH]UHHd$H}HuH+@$H+@ H+@%11BHk+HBH`+H@HQ+H@H]UHHd$H}HuHUEH=muHH}1H5huVS]EH]UHHd$H}EHE@`HExpu(HEHxXHEHEHxXHuHU:HEPpHEHxXHuHEHxXHue HEHxXHEHEHxPHtVf)HtVHtVHu!HE@pEH]UHH$@H}EHE@dHEHxX@HEHEHxXHuHU7H}DHEPtDHEHxXHHHEHxXHHHu/HE@tEH]UHH$@H}HuH1׸HEHxXHuAHEHxXHP=HPH}M,HHH}HHHHt HH@H]UHHd$H}HEHUHugHAEHcHUu4HEHxX%EgPH}HuHEHH}umiH}TָHEHtvkEH]UHH$0H8H}HuUHEHxXHuU2HEHxX%;EuHEHxXHH#HEHxXHHU2HH#%H} HH 9u5HHH}*H@H}H@QH@ H}1ոH8H]UHH$H}HuHUHMH}uHEHUHRhHEH}bHUHu^eHCHcHxHEH}1Q%H}u H=KqVHUHEHBPHEHxPHUHBXH}u H=_qVHUHEHBhHE@pHE@tHE@`HE@dHEH}tH}tH}HEHgHxHtlH`H bdHBHcHu#H}tHuH}HEHP`^ghTgHHt3jjHEH]UHHd$H}HuH~HEHUHHHExdt HExdHEx`t HEx`jH}1 H}tH}tH}HEHPpH]UHHd$H}HuHEHUHuEcHmAHcHUHuH=aGH}}H}AH}H}H}H}WH}H}H}HuHEHHuH}HEH8 HuH}:,eH} ҸHEHt.gH]UHH$pHpH}HuHDžxHEHEHUHubH@@HcHUudH}ѸH}HuHEHH]H}HxHEHHx1H}HҸHuH}HEH8dHx ѸH}ѸH}ѸHEHt0fHpH]UHHd$H}HH5mVHUHH H]UHH$@HHH}uHEHxXHuU-Hc]H}HEHHcHH9uHEHxXHP}HEHxXEgPHP0-HEHxXHPHuxHHH]UHH$HH}uHUHDž@H H?`Hg>HcHYHEHxX;E~2HuH@1HlV*ѸHEHxXHuUf,HEHxXHuHEHxXcH}HEH9uCHelVHHEHHLlVHHH@1ɺ+ӸHuH@1HlVиHExpuQHEHxX)H8HEHxXHHH8HHH}G+tH}uHEHxXH@HuHHu,aH@KθHHtjcHH]UHHd$H}HuHEHUHue^HHhHuH5~H}2H}DԷ}t/HuH}HEXHEHxHuH}HEhJH`>Hh2HpHtQLH]UHHd$H}HuHHUHHt?HEHxHuH}HEhH}HEHH}HEHxHuH=΁H΁H]UHHd$H}HuHH0H=JVV HExT~ HEhTEHEH8Hur^H]UHHd$H}HuHH0H=VV- H}EHEH8Hu!^H]UHHd$H}HuHH0H=UV H}EHEH8Hu]H]UHHd$H}HuHH0H=UV H}EHEH8Hu]H}HH5UVȷH]UHH$ H}HuHUMLELHxH5UVݷHtgHEHx1H5pUVCȷH8HuH}H8HuH}HuMHUH}gH}H5DUVͷHEH0H=kO)HEHH0H}׷,Hc,HcUHH0HcH9~[,EH0+(HcUHc(H)H~M()HUHuH}H}H5~TVͷH]UHHd$H}HuHUHHxHEHEHHuH=aˁdiHHMH}H5RV{H2HMH}H5SV{HEHxHHMH5SVo{HEHxH@HMH5SVP{HEHxHqHMH5SV1{H=OHHEHxHMH5SV*7H]UHH$PHPH}HuHUHDžXHUHhBH !HcH`11ȷHEHEHHUHuH}fHEHEHH}cHEHxxQVHEH#HEuH}H}1SH]UHHd$H}HuUHEH5)OVHYct'HEHH="HEuH}H]UHHd$H}HuUHEH5NVHbt1H}KHbH@HEE@ƁH}ַH]UHHd$H}H]UHHd$H}H]UHHd$H}HuUHEH5iNVHIbt:H}lJHaH@HE}tH} H}1H]UHHd$H}H]UHHd$H}HuUHEH5NVHat(}HEH}IHE؋UuH}H]UHHd$H}HuUH}IHE HH}tH}HuַH]UHHd$H}HuUHEH5yMVH at5H},IH`H@HEHt}@ƁH}ܷH]UHH$ H H}HuHUHEH5&MVH`FHEHH=LHEH}HHJ`HH{HEHuH}HEEHuH}HEEHxUH} }~8UUH(H}H}1H(HxH}طHuHtHvH}HuH=RqE̋EẺEHE~#H}kͷEHU+Eȅ~E)EԋuH}HUHuHpHxH}عַH H]UHHd$H}HuHUHEH5XIVH_tVH}+GH^Hx蚷HEHuHuH5vpH}XHuH}KȷHuH}޷H]UHHd$H}HuHUHMDEHUHuMH}迠H]UHH$H}HuEHEH5JVH2^HEHH=HE@pEH}'FH]HxH}蒶HEHHEHxHUH}̷HxrӷEHuH}HEtXHH(H}t=H(2ӷH ӷ9}EEH]UHH$ H(H}HuEHEH5IVH\HEHH=lHE@tEulEH}DHU\HxH}XHEH0HuH}t+H0@ҷHcH}4ҷHcH)HHHI؉]EH(H]UHH$pHxH}Hu11zHEH}H5#IV\tuH}9DH[HxH}褴HEHuH}HEHuH}HE؉EHuUH}赶H}EH}0ڷEHEHxH]UHHd$H}HuHUHEH5HVHX[H}wCHZHxH}⳷HE؃}|[}|UH};E~GUHuH}tH}Ϸ;E~)uH}誺H}зHuH}HEPH]UHHd$H}HuHUHHHuH=[HEHHUHpH8?HEHHUHpH8>HEHHUHupH8>HEHHUHVpH8>HEHHUH7pH8>H=3NAHHMH}H5TEV(H]UHHd$H}HuHUHMDEHUHuMH}H]UHHd$H}HuHH5AVHmYt5H}AHEHEHuHH8A4H]UHH$`H}HuHUHEH5ECVHXH}HEH( tH}_H}@HEHǾHUHh3HHcH`uAH}詶tH}HuHuH5jHuHuH5iH}\6H}nH`Ht7HuH}1HEPH}1Ҿ yEHuH}JH]UHH$HH}HuHUHEHDž HDž(HUHP~2HHcHHH}H5CVdWH}HEH( tH}H}]?HEHQt HEHEHEHEH}bHH}1脬HuH}HEEHcMHuкH(F H(H0HEH8Hc]HuH}HEHcHHPHuйH H H@H0H}1ɺHc]HuHtHvH}HuH=g}H؉EH}YH0H0HHcHuHuHuH5{gH}b3H}HHt^5UHuH}HEPH}1Ҿ EHuH}5H3H 䟸H(؟H}ϟHHHt4HH]UHHd$H}H]UHHd$H}HuUH}#=HEzHH}~tH}zHuʷH]UHHd$H}HuHUHExRt HExTu EEEH]UHHd$H}HuHUHEH}HEH0 @ƁH}HE@%u H}Eշ H}зHEHEHHUHuH}SHEHuH}GHUHuH}HEH}tdH}YHEHHMH}H5@Vb"H}9@ƁH}4H}{H11H5@V1ѷHEH]UHHd$H}Hu11tHEH}H5@VStjH}3;HEH?t,HEEHEE;E~EEԉE%H}^RHEHtHEHU؋H@BDȉEHEH]UHHd$H}HuEHEH5%?VHeRtaH}:HEH>t,HEEHEE;E}EEԉEH}QHEHt HE؋@@EEH]UHHd$H}HuEHEH5>VHQt]H}9HEH\>t(HEHcHUHcH)HHHI‰EH}QHEHt HE؋@DEEH]UHHd$H}HuHUHEH5`>VH(QHuH}1HEXH}39HEfxlv"HE@lEHE;U}ỦU!HE@jE̋EE;E}EẺEH}KPHEH‹EB@uH}H]UHHd$H}HuUHEH5=VHYPtPH}|8HEEs*H}1RHEHuH}HE@H}%H]UHHd$H}HuUHEH5=VHOtQH}7HEHEu E"HEE=|}*uE%uH}H]UHHd$H}HuUH}7HEHot}@ƁH}H]UHHd$H}HuUHEH5:VHNHuH}1HEXH}7HEfxlvHE@lE9E}EẺEHE@jE9E}EẺEH}'NHEЋUP@uH}H]UHHd$H}HuUHEH5 :VH9Nt_H}\6HEHuH}HEEH}MHEЃx@u HEЋU܉P@HEЋUPDE܋Ug4UH}6ܷH]UHHd$H}HuUH}5HEEt tt(H6VEHG;VE HA;VEEH}ƴH]UHHd$H]H}HuHH5);VH9MHE H}G5HLHxHEH誥HEHtiHE1HUHuH}VtJH}HEH0 Á1HIHH}H}4HH]H]UHHd$H}HuHH5]:VHMLHE uiH}_4HKHxHEH¤HEHtKHE1HUHuH}nt,eH}HH}豯H}3H莻H]UHHd$H]H}HuHH59VHKHE ujH}3HKHxڿHEHHEHtLH}HEH0 ÁH輪HH}1҉ϷH}13H ķH]H]UHHd$H}HuHH59VHJH]UHHd$H}HuUHMH}2HEHEHxH}ꦷHEH^HַHEHH=H}u 1̷HEH^HuH}HUHuHH8z H}yHEHtH]UHHd$H}HuHuHFpH]UHH$@H}HuHUHDž@HUHP HHcHH1觼HEHEH01H@NH@HuH}HUHuH}-HEHEH1⇷@0z&HEH} HHu1շH}HHuշH}HUHEHBHEHUHPHUH}H5tVHUH}H5`V^HEHǾMH}HHuԷHUH}H5!V贋H}{H}rH}HEHt H}THEHEHE@EHE@EHE@EHE@EHuH}WHuH}躓HUHuH}HEO H@wHHHt HEH]UHHd$H}HuHH5VH,t5H}HEHEHuHH8AH]UHHd$H}HuUMDEDMEH}H8H]UHHd$H}HuUMH}.H}HgUHEHYH}ZtEEEEH}߽HEHt]H}EHUHEB(\@HE*ME\f/Ezw*EM\MEH}ɝH}HEH}ؾ* H]UHH$0H0L8H}HuHUHDž@HUHPzHַHcHHHEHEHHEHvÃ~EfEHEHu HH=kjܸtFHEHuIL-t$HEHuILHE;]H}tHEHH52VMHEH5 V19HEH}謾HEHEH01H@qH@HuHH8IHEHEHUHuH}PHEHE@EHE@EHE@EHE@EHuH}HuH}ZHUHuH=C\H<\H@=fHHHt\HEH0L8H]UHHd$H}HuHUHH8аHEHEHUHuH}wHEHE@EHE@EHE@EHE@EHuH}HuH}聁HUHuH=j[Hc[HEH]UHHd$H}HuHH}HH@pH]UHHd$H}HuHFpH]UHH$@H}HuHUHDžHHUHXHHpӷHcHP<HuH=kٸHE1HEHHE؋H5l4H}艡THEH}HH@THHHuH=m+ȶHEHH}HE؋H}襪H}\H}SHuH}VHUHuH}HEHUHPHUH}H5VEwHE@EHE@EHE@EHE@EHuH} HuH}HUHuH}HHqcHPHtHEH]UHHd$H}HuUHEH59 VHt%H}HH}HEuH}耩H]UHHd$H}HuHUHMDEHUHuMH}ZH]UHHd$H}HuHU0H]UHHd$H}HuHUHEH58VHnH}HEHH}HEHEt H}tHUHuHH8z$HuHuH5&)H}-H}1bH]UHHd$H}HuUHEH5VH9tH}\HNjUHOi4觞H]UHHd$H}HuHUHHHuH=RyUHNHMH}H5V)H]UHHd$H}HuHH5UHttH}1mHEHEHEH]UHHd$H}nbHH}tH}赭HE,HH}΁tH}!|HEHEHEH]UHHd$H}HuHUMDEDMظH=LiHEiHxHEH‹uH}H}HEH Ht*H}HEH0tH}HEHu EH}HEH HEHEHEHE@@t t"tIqHEHxHH}軴HEVHEH@HHEHEH@PHEH}дH}致*HEHEHEHxHHUHufHEHHUHuHH89ĒtU؋uH囥H8H}tH}+H}ѸEH]UHHd$H}HuUMȋuHH:SH]UHHd$H}HuHXH8H]UHHd$H}HuHUMH!H@0HH]UHHd$H}HuHUMDEDM؋EuHӚH:tHH8@#tEEEH]UHHd$H}HuHUEHE  HEfxuRH}7HEHUHEHEHEHE܋EԉEċE؉EȋE܋U)ЉE̋EU)ЉEHuH}tVH}zHEHtDH}3t7H}VEuH}w H}1wuH}wEH]UHHd$H}HuHHEHH}BHEHHEHE耸 ulHEu_H}HEH}HEH}غP[HuH}辙H=wHHMH}H5HU[AHEH;Et7H}HEHEHEHuH}1H})H]UHHd$H}HuHGt7H}JHEH.HEHtH}tE EEEH]UHHd$H}HuHgJH]UHHd$H}HuHHH:HH]UHHd$H}HuHH5MUHmtH}HhlH]UHHd$H}HuHHUHHHuHH8GH}^HEHUHuHUH}腒H]UHHd$H}HuUMH}H}H[HEH \H}bHEHt]H}8yEHUHEB(\@HE*EM\f/Mzw*EM\MEH}H}蛦HEHt]H}xEHEHU@(\BHE*EM\f/Mzw*EM\MEH}蕄H}HEH@H]UHH$H}HuUMDEDMHDžH`H K߸HsHcHH}H56U1pH}RM؋Uu}VHHHHH}zHE HuH=])øHEHHEHpHEHE@PH}HEHH}HHPhHxH@pHEHEȋtEH}1Ҿ8}u$HEHx<vHEH@H}HEEEEEHE@HEHE@LEHuH}thH]UHHd$H}HuUMHEH5fUH6t8H}YHE؋@@EHE؋@DEEEEEHuH}gH]UHHd$H]H}HuHH5UHHE uHEX@t kOHH}HH$quEH}HHEHxHEHH8ADH}[H]H]UHH$HH}HuHUHDžHPHոHHcHH}H59UH}HxHEHuH< HhHE,<9%HXHcHHEH8HŸH1HOHHHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$M1M11HH54UH-蒠HHx#oHhHx{Hh藌HpHH(ԸHPHcHu6HxFHHp跍Hx+HHp쁷׸Hp[4HHtzظHxHhHx1HxЄHx躄HhHxHxaHx芄yHx,HxHx\Hx1HxjHxLhHxA111mHxdH/ոH>BHHt]׸HH]UHHd$H}HGHt#HEH@HH=lʶHEH@H~HEHEHxmHEHH}M|HEHtH}H5UTjHEHEHuH}ZHEHtH}H5U jHEHEHEH@HuH^HEH}t HuH}VH}t HuH}BH]UHHd$H}HuHUHEH5`UHXH}wHEHHEH}t1HuHH81KtHEH@HHEHEHEHuH}11fhHEH;EtHuH}11KhH]UHHd$H}HuHUMDEHEH5UHtH}H HHH]UHHd$H}HuHEH@uHEHpPH}H}bHEHt HuH} H]UHHd$H}HuHUHuH}Υ$ED$ED$HuE1E1111贖HED$(D$ D$D$D$HE@$HEHxA/HHEH@HHEDHH}E11YPH}aH]UHH$`H}HuEHEHEH@HHEH@HHEH@HHHEH$=%H}{HE@LE$HE@LD$HE@HD$HEHpPE1E1111cHED$(D$ D$HE@LD$HE@HD$HEPEЉ$HEHx-HHEH@HHEDHH}E11NH}T`HUHuH}ã$ED$ED$HuE1E1111詔HE}UE)‹uH}1HED$(D$ D$D$D$HUEB$HEHx -HHEH@HHEDHH}E11%NH}trH}u_gD$(D$ D$D$D$HE@$HEHx,HHEH@HHEDHH}E11MH}_H]UHHd$H}HuHH5UH]tH}HXWH]UHHd$H}HuHE1Ҿ HE4HEH8HuH]UHHd$H}HuHUHHuH=]H ~]HHEHxWHEHuHMH}H5UqH]UHHd$H}HuEHExTHEH@`HEHE@0H-EHE@(H-EHE@ H-EHE@8H-EHE@@H-EHEEHEUEHEHxt!HEHxHHMHUHuKE}tt fEE;E fEE;E| fEvHcUHcEH)HcEH9ufEZHcUHcEH)HcEH9ufE>HcUHcEH)HcEH9ufE"HcUHcEH)HcEH9ufEfEEE؁}} fEfEfEHEH@HEHEH8HuH%EEH]UHHd$H}HuEHExTHEH@`HEHE@0H-EHE@(H-EHE@ H-EHE@8H-EHE@@H-EHE@EHEUPEHEHxt!HEHx6HHMHUHuIE}t fEE;E fEE;E| fEvHcUHcEH)HcEH9ufEZHcUHcEH)HcEH9ufE>HcUHcEH)HcEH9ufE"HcUHcEH)HcEH9ufEfEEE؁}} fEfEfEHEH@HEHEH8HuH%EEH]UHHd$H}HuHU11H_MHEHEHH}EiHUHuH}HEп fHEHE@HUHEH@xHBHUHEHHBHUHEHB`HE@\HE@EHE@EHE@EHE@EHuH}WHuH}HRHEH]UHHd$H}HuHUHHHuH=NH}HHHMH5_UBH}HHHMH5H}eHǾzH}OlH1[H}HHu@H}'cHuH}H}AHUHPH}0MHEHEtH}QqH}AqH=HHMH}H5U޴HuH}QLH}HEHuHE@Pu H}fHUHuH}HEHEH]UHHd$H}HuUEH}HHEHxH}iHEHuMH}1`]H:1HtH}HEHH]UHHd$H}HuHUHH!>]H:H!H}HEHH]UHHd$H}utKHEH6qHEEHUH}1H5ZU1,E܉EH}H5ZU-AHHHMH}H5VU虜ẺH}H5!U+ JHEHpHEEHUH}1H5%U16,E܉EH}H5U@HuAHHMH}H5UẺH}H5U+uH}EEH]UHH$0HpH}HuHUMLELMH5oUH͸HH諧HӅHcH H}Hu HuUH}HEHà DžDAHMDEHUHH}H] HEH}tHEHHH@HHEHHEHHuHUH}HxHHxHHHHHH}HHH}HH'>HEHUH}Hu>HEHUH}HpHx(E,E ueH`Ex8tE;`}EmEx`x8tE;`}EmXt2E;X~'HcEHcXH)HH?HHEXE !HCLHcHHEH$LELMHUMHuH}Z }uTED$ED$ED$E$LHpH HL U>EtED$ ED$ED$ED$H8HuHۤH$LLp40H H*H}Hu;HxHHxHHH}~!HcEHH?HHHcH)‰EE} DžHcHgfffffffHHH?HHcEHЉ$HcHgfffffffHHH?HHcMHcEHH)ЉD$HcHH?HHHHH~HHcH)HBD$LHp0H HL U/Et H}HuU:HxHHxHHHHcHH?HHHHH~HHcH)HHcHcH)H}#HcEHH?HHHHcUHЉD$D$H8HuHؤH$HcHcH)HH?HHHHcHЉD$HcHcH)HH?HHHcHHD$ HcHcH)HH~HD$0HcHcH)HH~HD$(LLp40H He?D$D$H8HuHפH$HcHcH)HH?HHHHcHЉD$HcHcH)HH?HHHcHHD$ HcHcH)HH~HD$0HcHcH)HH~HD$(LLp40H HP>,ED$ ED$ED$ED$H8HuH\֤H$LLp40H H%TD$8PD$0LD$(ED$ ED$ED$ED$H8HuHդH$LLp40H HXXDED$E$EED$L8MuL yդLHp0H H,ED$E$EED$L8MuL #դLHp0H H|*ED$ ED$ED$ED$H8HuHԤH$LLp40H Hi3ED$ ED$ED$ED$H8HuHcԤH$LLp40H HXED$ ED$ED$ED$H8HuHӤH$LLp40H HQiED$ ED$ED$ED$H8HuHӤH$LLp40H H+ED$ ED$ED$ED$H8HuH4ӤH$LLp40H H^@D$(ED$ ED$ED$ED$H8HuHҤH$LLp40H HE0@D$(ED$ ED$ED$ED$H8HuHVҤH$LLp40H H9\D$EED$EE$L8MuL ѤLHp0H H`aED$ ED$ED$ED$d$L8MuL ѤLHp0H H3ED$ED$ED$E$L8MuL .ѤLHp0H H4ED$0ED$(ED$ ED$DD$H8HuHФH$H%D$LLp40H HD8#HUH8HuH}HEH;[ΜH57GH+HHt:HpH]UHHd$H}HuHUMLELM؃}u[}uU}uO;HEHǾHEH$LELMHUMHuH}H}$HEH$LELMHUMHuH}H]UHHd$H}HuHUЉMLEDMH}tFE D$HEH$HEHD$H}B2HDMLEHUЋMH}HEHh4E D$HEH$HEHD$DMLEHUЋMHuH}(H]UHH$H}HuHUMLEDMH5vEHh芽H8H貗HuHcHHMDEHUHhH}E1HhtmHEHuHΤH`HEHPHEHXHMHtHIDMLPH`HuHMH8H~MHH-H5DHh芽HHt虛H]UHH$H}HuHUMLELMH5FDHXZH@H肖HtHcHudHEHEHEHEHMDEHUHXH}E1HXt+HXHcHHXHcHH}3H5CHX萼HHt蟚HEHUH]UHHd$H}HuUH]UHHd$H;ɸHLdHEHOHEHuHH={UH]UHHd$H]LeLmLuH}H@ȸHE0ELmLeMtƸI$HVLE HE0H}tjHE@P u HEƀ9MHELp`LmHEL``Mt>ƸLHㅷLLHEƀ:HEƀ9H]LeLmLuH]UHHd$H}HǸHEHFH]UHHd$H}HǸHE(uH}@,HEƀ(H}(H]UHHd$H}HWǸHEHKH}2H]UHHd$H]LeLmLuH}HuHHǸHEHuHuH}褏HHE0EH]LuLmMtĸMeL]LHEA$ H]LeLmLuH]UHHd$H]LeLmH}HuHHWƸHEH}Hu:EELeLmMt#ĸI]HǃLE HuH} H]LeLmH]UHHd$H}H ŸHEH0HEHEƀ:H}f/Ezu HEƀ8H}H]UHHd$H}EH bŸHEf/EztHEHUHH}1H]UHHd$H}EH ŸHE f/EztHEHUH H}H]UHHd$H}@uHĸHE8:EtHEU8H}zH]UHHd$H}EH RĸHEf/EztHEHUHH}!H]UHHd$H}HøHEH{hH}H]UHHd$H}HøHEH[HE9u H}H]UHHd$H}H(gøHEHHEHUf)HUE}EEH]UHHd$H]H}HuH8¸HEHH}?sHE,t.ttHUHa@H]HaPH HuH=!U䏷EsHEHEHua:PtHEtHEH]H]UHHd$H}H7¸E2EHEH]UHH$@H@LHLPH}EHHDžpHUHu*HRlHcHUHEH0HxH Uf)Mx{urH}Hp7HpHuuEHEH0HxHEHhHUxh{uHEH0HEHUHEH0HEƀ:HEƀ9HE@Pt HEƀ(H}H}5tnHE@P t^HEH0HhHUEhzt)LeLmMtCI]H}L 蹏Hp HEHt/H@LHLPH]UHHd$H]LeLmLuH}H@ǿHEHKuoHE:u`HE@tNHELp`LmHEL``MtqLH}LLHE0HEƀ:HEH0HEEH]LeLmLuH]UHHd$H]LeLmLuL}H}@uH8߾HE:Eu[HUEH}Hu?HELx`DuH]HEL``Mt莼ML3|HDLAH]LeLmLuL}H]UHHd$H}H(7HEHHEHUf)HUEtxEEH]UHHd$H}uHԽHE;EtHEUH}H]UHH$HLLLLH}HuHUH VH}t)LeLmMt9LHzLShHEH}tHUHudHgHcHUsHEHUH}HdHEƀHEƀ(HUHHUHHHEǀHUHUHHHEƀ9HEƀ:HEƀH]HtRL+LyH]Ht7L#LyLA$HxHxIHEHAGHAHALeMtչM4$LyyDꋅAHAHEH}uH}uH}HEHHEHpH`H 谇HeHcHxu%H}uHuH}HEHP`誊5蠊HxHtZHEHLLLLH]UHHd$H}EH(袺HEHEHEHUf/ zwLHE f/EzwHEH HEHEf/EzrHEHHEEH]UHHd$H]LeLmH}HuEHHEELmLeMtԷI$HxwLE HEH}H]LeLmH]UHH$HLLH}HuH(HHUHu薅HcHcHxubHE݀0<$H}ZݝppLeLmMtමI]HvL EIHxHtZHXHHcHcHpuHEH0HEHpHtڊ赊EHLLH]UHHd$H}HHEHH}H]UHHd$H]H}H(ӷHEH-HH-HH9vŵ]EH]H]UHHd$H]H}H(sHEH-HH-HH9ve]EH]H]UHHd$H]H}H(HE H-HH-HH9v]EH]H]UHHd$H]H}H(賶HEHH-HH-HH9v襴]EH]H]UHHd$H}uH THEHX;Et*EH}H]UHHd$H}uH HEHh;Et*EH}aH]UHHd$H}uH 贵HEHx;Et*EH}qH]UHHd$H}uH dHEH;Et*EH}!H]UHH$HLLH}HuHUHH}t)LmLeMtײLH|rLShHEH}tHUHuH*_HcHUuUHEHUH}HHEǀHEH}uH}uH}HEHŃHEHpHhH(pH^HcH u%H}uHuH}HEHP`j`H Ht?HEHLLH]UHHd$H}EH(rEHEHEHUf/EzrHߠUHHEH٠Uf/EzwHàUHHEEH]UHHd$H]؉}uUH(޲}uAHc]HcEH)q$HqHH-HH9v輰؉EEEEH]H]UHHd$Љ}HuHUMH(]EU}ME܋EH]UHHd$H}HuHUMH(HEHE؋}܊MHuHUEHEH]UHHd$H}HuH(ӱHEHU ;| MEE܋EE؋E;E|EE܉EEE܋EE؋E;EEE܉EEE܋EE؋E;EEE܉EHEHUH]UHHd$H}HuH#HEEHUHEHUEH]UHHd$H}uH䰸EtLt#t0ttJZH}H5UXH}H5UFH}H5U4H}H5ƞU"H}H5ܞUH}H5UH]UHHd$H}uH(4HEHHEuHH=ԝUEuHH=UEuHH=UsEuHH=UYEuHH= U?HPUHEHEHHEHZUHEHuH}HH]UHHd$H}HuH(CHEH@H8uAHEH@HHEHUHEHEHEHuHEHxHHEHxHuAH]UHH$`HhH}HuHUH} H虮HDžpHDžxHEHUHuzHXHcHU|H}HuōH]HpE HuHBUHpHpHx HxH}H賻H}:HcHp HuHUHpHpHxJ HxH}HHE苰Hx8HxHp~ HuHۜUHpGHpH} HuH}HH}iHcHp( HuHUHpHpHx HxH}H6a|Hp HxH}H} HEHt}HhH]UHH$PHPLXL`LhH}HuHUH} H4HDžpHDžxHEHUHudxHVHcHUHp HuHUHpHpHxR HxH}H UHuLuLeLmMtI]H#iLL@Hpk HuHUHp4HpHx HxH}LuLmMtMeLhLA$HHpHuHIUHp HpH}P HUH}H UHxHxHHpXHp6H}葈HpeHuHUHp. HpHx HxH}H}6yHpHxH}H}HEHtzHPLXL`LhH]UHHd$H]LeH}HuHUMDEH8pfEf%f=tpHHtsrHEHLLLLH]UHHd$H]LeLmH}HuH(7H})LeLmMtI]H]LHEHxhWH}H8XH}uH}uH}HEHPpH]LeLmH]UHHd$H}HuH蓟HEHxuHEHx HEHpHEPH]UHHd$H]LeLmLuH}HuH03HUHEHBHELpHEL`Mt M,$L\@LAH]LeLmLuH]UHHd$H}uH贞EH}uHEH`u-IEE}| H} EEH]UHHd$H}HGHExEEH]UHHd$H]LeH}H HEHLccHELLeHELMtrzI]H:LL`E-HEHEEHELLeHELMtzI]H9LLHc]HqWzHH-HH9vyHEuH}TOKH5܁H}nH@HtLH L(L0L8H]UHHd$H]LeLmLuL}H}uH@@{HE;Et0H}趾uHE, u HUE4 8H}fH}HEDMH}HEu H}@HUEHEUtH}HHWTuFHUEH}kHE@Pt H}@'H}HtHE@Pt H}@'HUHEHEDLmLeMtwM<$L7@LDEAx H}H]LeLmLuL}H]UHHd$H]LeLmLuL}H}uH@pyHE;Et0H}uHE, u HEU0 H}H}KHEDEH}0HEu H}@HUEHUExHE@Pt H}@ &HEHUHEDLuAH]HtvHIL"6DLDEA$x H}SH]LeLmLuL}H]UHHd$H]LeLmH}uH(xHE8;Et6HUE8LmLeMtuI$Hx5L@H]LeLmH]UHHd$H]LeLmH}uH(xwHE<;Et6HUE<LmLeMtDuI$H4L@H]LeLmH]UHHd$H}uHvHExuH}A詪H]UHHd$H]LeLmLuH}uH0vHEx;EtHUExH}xHExu)LeLmMtRtI]H3L HEx@u1LuALmMttI]H3DLh )LeLmMtsI]H3LX HEx@u HEƀx LmLeMtsI$HD3L@ H]LeLmLuH]UHHd$H]LeLmH}uH(HuHE|;Et6HUE|LmLeMtsI$H2L@ H]LeLmH]UHHd$H]LeLmH}uH(tHEl;Et6HUElLmLeMtrI$H(2L@ H]LeLmH]UHHd$H}uH4tHEtUH}AH]UHHd$H]LeLmLuH}uUHPsEHEH` HE苀0E}|*HE耸B tHE胸P tEEH}LKLC @HE苀EԋCEЋE;E|EEHcHUHc8H)qqHUHc8HcSH)qqH9|#HE苀8;E| EE!HE苀8;E| EELuLmMtpMeLe0LA$uBE؃|:tttt$EEE EE؃Jt t )$ErfDLceIqqpLH-HH9vpDeH}WILKtuH}ILo*uE܉LceH}HcHqoI9|CLceIqoLH-HH9voDH}Jt/<Lc#IqoLH-HH9v=oD#kDH}wILJtH}3IL)u>Lc#Iq*oLH-HH9vnD#HE苀;|Lc#IqnLH-HH9vnD#GDH}3E>Lc#IqnLH-HH9vAnD#HE苀;|E;uH}LKLC @kC HExu ;EHE苀;EEH]LeLmLuH]UHHd$H]LeLmLuH}fuUH8poHE胸L t}u4LeLmMtBmI]H,LHUfX HEHcL HqlmHH-HH9vmHE艘L DuLeLmMtlI]Hp,LDHEHcL HqlHH-HH9vlHE艘L H]LeLmLuH]UHHd$H]LeLmLuH}H(7nHEDX H]LeMtlM,$L+HDAHEǀP H]LeLmLuH]UHHd$H]LeLmH}uUH`mEE}|EH}7EHEH`uEE;Eu}| H}EE;EEHEH`UuMHE@PtXH}nuFHE胸tH}UH}(HEHUHEHEHEHELeLmMtjI]HU*LuHELcH}HcLqjHH-HH9vsjH}WEHc]HqjHH-HH9v9j]NHELcH}HcLqQjHqFjHH-HH9vi]؀}uPHELcH}HcLqiHqiHH-HH9vi] HE苀EHE苀x;Et HE苀EH}DHHuвl,HEHu0HEHuHE苀;E} H}LeLmMthI]H|(L H]LeLmH]UHHd$H]LeLmLuL}H}uUHP}jH}HH9DtHE苀;EUuH}uH}HEH}uwH}Y#E܋uH}J4UuH}kH}2#;Eu@H}"#ADuH]LeMtgM,$Lk'HDDAx H]LeLmLuL}H]UHHd$H}uUHXqiHEHX@;EHEHXUuf]HmYUHEHE EEHEHYUHEHE HEHX@EHEH}H''H]UHHd$H]LeLmLuL}H}@uUMHXh}uHEHXuHXHEHuWH}E܃}t}}HUHEtH}tHE, u8HE8 EHE0 EԋE;E|UUHEEHUHExHEH`uHHEHu2VH}D}DuH]LeMt}eM,$L!%HDDA Hc]HqeHH-HH9vUe]HE;E HEEUH}@HEH`uHHEHugUH}E܃}t}}HUHExHEHXxtHE, u8HE< EHE4 EԋE;E|EEHUEHEǀHUHEtHEHXuHHEHuTH}9Du]L}LeMtcM,$Lr#LDA Hc]HqdHH-HH9vc]HE;E HEEUH}@gH]LeLmLuL}H]UHHd$H}uHUHefDHEHHE@;E|uH}mSH]UHHd$H}uUHdEuH}.RHE耸u H}趩H]UHHd$H}uUHadHEHuHEHMUHuHEH]UHHd$H]LeLmLuL}H}HuH@cHEH=HuHEHEH}貒LuALmMtaI]HL!DL LuALmMtvaI]H!DL H}HH=uEH}IH}ILMMtaM,$L HLA8H}&LuLmMt`MeL LA$ H}.H}3HEDLeLmMt`I]H8 LD HEDLeLmMt]`I]H LD H}|6uH}H}H}H}6uH}*H}OH}?H}FHH;tHEHXHEHXzHEH`HEH`_HExH}HEDLeLmMt]_I]HLDHLeLmMt1_I]HL LuLmMt_MeLLA$ HEH}HEHxH}ƁHEHH}H}IH}NH}UH}zHEH}HEH}HMHUHHHHH}@脑 HuH}UH]LeLmLuL}H]UHHd$H]H}uH_H}GHH9u,HgPUHH= HH5H-uH}H]H]UHHd$H]H}uH(`_HEH`@EE;Eu}}~HEuHE;E} H}@H}2E}tHE, uHE< EHE4 EE;E|EEHUHE0 EE;E|UUHEHUHEtHUHExHUE8 H}HH 8u2H}HtHEƀ, HEH`@;EtRHEDHEUuH}UuH}=MUH}@ H}p1H]H]UHHd$H]LeLmLuL}H}uHHp]HE;Et HUEHEǀHEu HELMLEH}@LmLeMtZI$HL HEuHELMLEH}@5E;Eu E;EuQHEH}~AHEDH]LeMtlZM,$LHDDAx H]LeLmLuL}H]UHHd$H]LeLmH}uH@\HE;EuHE@Pu2HEUHEǀHEu HELMLEH}@H}HcHqYHH-HH9vY}6EEEHEH`uO;]~LeLmMtYI]HL@ HEu=HELMLEH}@PE;Eu E;Eu H}H]LeLmH]UHHd$H]LeLmH}uH(xZHE;EtjHEB tHEuH}pHEUH}A@dcLmLeMtXI$HLH]LeLmH]UHHd$H}uHYHE0;EtHEU0H}KH]UHHd$H]LeLmH}uH(hYHE;EtjHEB tHEUH}`HEMH}A@TbLmLeMtWI$HLH]LeLmH]UHHd$H}@uUMDEH(XHEH HU;[U@uH}ϲ}@ƋUH}軲}@ƋUH}觲H}>u}H H}@脉H]UHH$PHPLXL`LhLp}uHUHWEEEEHcEHc]HqVHH?HHHHHH9vU]@HExuG6Hc]HqUHH-HH9vdU]HEPHUHEPHUHELpDm]HEL`MtUM<$LELEƋEA j5fDHc]Hq!UHH-HH9vT]HEPHUHUBHEHELh؋]DuHEL`MthTM<$L DALEƋEA iA0Hc]HqTHHHH9v#T]HEPHUHEPHUHELpDm]HEL`MtSM<$LkDLE‹EAA h3@Hc]HqSHH-HH9vS]HEPHUHEPHxHELpDm]HEL`Mt%SM<$LDLx‹EAA cE;E~E;Eu#HEH@؀@ HExujHEPHUHEPHUHELh؋]DuHEL`Mt{RM<$LDALEƋEЉA uwHExtgHEPHUHUBHEHELh؋]DuHEL`MtRM<$LDLE‹EAA uHEx@HEHx؋MUE;EtEEE;EtEEHc]HqQHH-HH9vQ]Hc]HqQHHHH9vVQ]E;EE;E|u}HUEEE;E}"HPLXL`LhLpH]UHHd$H}HRHEǀdH}PH]UHHd$H]LeLmH}@uH(gRLmLeMtSPI$HL LmLeMt*PI$HL@ H]LeLmH]UHHd$H]LeLmLuH}uH8QHEHH@`EHEHH@pEHEHH8HEHLHEHLMtSOM,$LLA@HEHuHEHEHuHEHL]HEHLMtNM,$LwLA@HEHHuQH]LeLmLuH]UHHd$H]LeLmLuH}uH8TPHEHH@`EHEHH@pEHEHHHEHLHEHLMtMM,$Lw LA@LeLmMtMI]HK LutHEH}6:HcHqMHH-HH9viMHEHUHEHEHU5HEHUmHEHEHUHEHL]HEHLMtLM,$LQ LA@HEHHu+H]LeLmLuH]UHHd$H]LeLmH}H ;NHEu2H}LmLeMt LI$H L@H]LeLmH]UHHd$H]LeLmLuH}H(MHEHXt!HE@P uH}OtJH}͍HELH]LeMt^KM,$L HLA H}lH]LeLmLuH]UHHd$H}HuHMHEHH}SHE@0HUB0HE@  HUBH]UHHd$H}HLHEA t H}KH]UHH$`H]LeLmH}u؉UЉMDEHHLHEHMutH}HnEE HE( t!]HHHH9vJ]]HHHH9vI]HExu E E EEЉEEE}|EE=vIEȉE}tnLeLmMtAII]HLu?Hc]EH)quIHcEH)qgIHH-HH9v I]HHuHHH}l$HNjuز7H]LeLmH]UHH$pH]LeLmH}ȉu؉UHoJHEHKuuH}EH}HE}t}uLeLmMtHI]HLu`EH}z#HHUHc]EH)qHHcEH)q HHH-HH9vG]EEЉEHHuHHH}#HNJUu5H]LeLmH]UHHd$H}uH$IEHEHJub}tHEEI}tHEE0}t(HEtHEtEEEH]UHHd$H}ȉu؉UHxHHEHJuKEEE=vrFEЉEHHuHHH}!HNjuز4H]UHHd$H]H}uUHGHEHnIuHE聈( HUHuH=HcHUuH}9!HNJUu=HE聠( HEHtEtttH]EvgEEEtttH]Ev;EEH]H]UHHd$H]LeLmH}؉uUHxF}t }t=E}u,LeLmMtDI]H>LHEHUHEHEHEHEHE؀uH}Ⱥ;LHE؃u;HEHcHc]HqDHH-HH9v&D]9HEHcHc]H)qHDHH-HH9vC]H$E=vCEĉD$H}AHLEHMȋuI2$}uLeLmMtcCI]HLHEHUHEHEHEHEHE؀uH}ȺKHEHcHc]Hq[CHH-HH9vB]H$E=vBEĉD$H}THLEHMȋUIE#H}輼H}cbH]LeLmH]UHHd$H}uHTDE}t }tB}t EE@Uс HUlEEH]UHHd$H]LeLmLuL}H}uUHpCHELE؋MH}@I!EԀ}uzLMLE܋MH}@EԀ}uVHExuDHEHED}DuLmH]Ht9AL#LLDDHMA$@ }t,EEEEHEHEHEHEHEHUH]LeLmLuL}H]UHHd$H]LeLmLuH}H@BHEt| HEx|HE@PuFEEEEHH!HH!HEHHEHtHEHEHEH}4HU;ruH}HcHUHcHq/@HH-HH9v?]LuALmMt?I]H9DL u9HEHcHc]H)q?HH-HH9va?]oHc]Hq?HH-HH9v,?]LceuH}HcLqJ?HH-HH9v>]Hc]H}HcHq?H9|HE;EZHEU䉐CHUHEHc]Hq>HH-HH9va>]H}西HU;suH}HHcHUHcHq`>HH-HH9v>]LuALmMt=I]HjDL u9HEHc Hc]H)q=HH-HH9v=]pfHc]Hq=HH-HH9v\=]LceuH}YHcLqz=HH-HH9v=]Hc]H}]HcHq?=H9|HE;EZHUECHUHEHc]HqHEHtHEEEHELcH}HcLq+HEHcHc]H)q0HH-HH9v0]wHcEHc]Hq0H}膱HcHq0H9GH}hHcHq0HcEH)qz0HH-HH9v0]}uHcUHcEHq=0HUHcH9|>HEHcHc]H)q0HH-HH9v/]wHcEHc]Hq/H}HcHq/H9GH}İHcHq/HcEH)q/HH-HH9v9/]HcEHc]Hqd/HH-HH9v/]HcEHc]Hq2/HH-HH9v.]HEEHE؋;U|UЉUHEEЋE;EEEԉEHEEЋE܉E̋E;E|EEЉEHEEЋE;EEEԉEHEH]H]UHHd$H}H/HEHu(HE@PtHEHHuHEH]UHHd$H]LeLmLuL}H}@uUHX|/}uHE耸C uHE苀d;Et7HE苀`tt HEǀ`HEǀ`HEǀ`HEUdH}cHcHqC-HHHH9v,HEHE苐HUDuLmLeMt,M<$L;@LDEЉEAA H]LeLmLuL}H]UHHd$H}@uUH0.H]UHHd$H}@uUMH -H]UHHd$H}@uUMH -H]UHHd$H}@uUH-H]UHHd$H}؉uUHMLEH(i-H]UHHd$H}uHD-H]UHHd$H}uUH-H]UHHd$H}@uUH,H]UHHd$H]LeLmLuH}H0,HEDLeLmMt*I]H,LD` uDHE@Pt5LeLmMtG*I]HLuEEEH]LeLmLuH]UHHd$H]LeLmH}H +HE( %u0H}HU;uH}6HU;u[HUHE( ( LeLmMtk)I]HL HUHE( %( H}HEtDH}l6LeLmMt)I]HL H}H}aH]LeLmH]UHHd$H}HuH*HEHuHEHHuHEH]UHH$pHpLxLmLuL}H}uUMH>*EuHEuiHEHLAHEHHHt'L#LDLA$@LuD}LmH]Ht'L#L[LDLA$ }uEHEuHE;Et{HEHUHH; tHEH tHEHUHH; t-HEHHEHH(\pHEuQHE;Et@HEHUHH; t&HuHEHH(HETuH]LeMta&M,$LHAtHE3Eܿ&E؋u؋}HHUf/zs%HEHH(XE#HEHH(3ECH]LeMt%M,$LJHA HEHH(uH}YHH}UHcHH!HH!H ֋EHcH HH!HH!H H}JtHEHH uHEHǀ[HHEHH((EuHE;EuH}zHH}H]LeMtj$M,$LHAt3HEPu!HEHH HEPKHUHHEHHEȊEH]LeMt#M,$LHAE‹uH}@EE‹uH}#EEu)HE;EuH}8uEELeLmMtD#I]HLEHEx EЋuH}HEH}tHEH@0x\tEEHEHHEHHEHEЈHUHHEHHEȊEH]LeMt"M,$L%HA@Ƌ}EH]LeMtI"M,$LHAEHEHHEHHEHEЈHEHH(ZHEHH D}DuDmHEHEH]Ht!HILLH}DDDA$ HpLxLmLuL}H]UHHd$H]LeLm}uHUHh5#LmLeH]܋E=v:!}HLL9LmLeH]ЋE=v!}HLL EHcUH)q(!HEHUHEHUHcMH)q!HUHMHUHHq EHcMH)q HEHMHEHHq HEm]EH]LeLmH]UHHd$H}H"HE@HEpHEHxEHE@u HE@uHEH@DEHE@tHEH@;EuHEH@;EtHEH@u1HEH@HcHEHc@H)qHEEu,HEH@tHEH@uHEH@EHE@ uHE@t}ܫ5EEH]UHHd$H}uUH H]UHHd$H]LeLmH}H(k HEtH}耟HcHqHH-HH9vC}4EDEEHEHXu;]~LeLmMtI]HxݶL@ H]LeLmH]UHHd$H}HH]UHHd$H]LeLmLuH}H(WHE@HUH}|u/LuALmMt"I]HܶDLh H]LeLmLuH]UHHd$H}HHH HH HEHH]UHHd$H]H}HHEHu3H}sxu!H}s|OuH}S|sxQHH HH HSxƃǃH]H]UHHd$H]H}@uHHEHuH}Q}u!HH HH HƃH]H]UHHd$H]LeLmH}@uUH8D}uHE胸E}uHEǀ}uHE胸 E}uHEǀ }u }uEE}u2H}LeLmMtI]HOڶL@ EH]LeLmH]UHHd$H}uUHa}|EEuH}葱H]UHHd$H}uUH}|EEuH}!H]UHHd$H}@uUMH H]UHH$HLLLLH}HuHHjHEHEHEHEHDžHUHhHŶHcH`HEtHuH}HE}t }tH}H&WH}HWH}HWH}HVD}DuLmH]HtzL#LضLDDA$ HHHHĶHcHHExuYHE uJEHDuLmH]LeMtM<$L׶HLDA HExuJEHDuLmH]LeMtM<$L*׶HLDA( UuH}蓔ED}DuDmHEHH]Ht)L#LֶHDDDA$ HELLmHEHHtL#LֶLLA$HcH]HkqHqHH-HH9v]ċuH}i;EH}HTLeLmMtII]HնL HHtCHE t [HEH HHH}HDHuHtHH}H!HuH}HHEH HHH}HHuHHH}HHuHHH}HHuH}HHuH\HH}HiTHuH}HWHuH}:SHuH|ugHtHuH}ȹHU5THEt}HE@PtnLuLmH]HtjL#LԶLLA$XHuHHH3w\H8ںHuH w\H8 H} HQH}QH}QH}QH}QH`HtHLLLLH]UHHd$H}HuHUH0oH}tRHEH8tH}HuQ7HEHHEHOUHEHEHEHuH}H2UH]UHHd$H]LeLmLuH}H(HEL H]LeMtM,$L\ҶHLAXHu\H8кH]LeLmLuH]UHHd$H}HWHEǀ H} sH]UHHd$H}HHEEEH]UHHd$H}uUH EH}ÔuH}tEEEH]UHHd$H]LeLmLuH}HuH0sHEHH;EuTHEHL LeHEHL Mt,I]HжLL`t#HEHHuHEHUHH]LeLmLuH]UHHd$H}uHHEHU;t HEUuH}H]UHHd$H]LeLmH}uUMH8B}uBEUH}A@cLeLmMtI]H϶L#HEUHUEH}eH]LeLmH]UHHd$H}fuHEH}1uH}H]UHHd$H]LeLmLuH}H@WHEH uH}HcHqHH-HH9v,]H}HcHqPHH-HH9v]EEEEEEHEHcHqHH-HH9vHEHHHEHHHEHEHLAHEHLMtI]HͶDLHHEHQHEHU虜HEHUu胜HEHukHEHQH]LeLmLuH]UHHd$H]LeLmLuH}H(7HE tHE}HEHLAHEHLMt I]H̶DLHHEHHHET THEHEHHEHEHEH1HEHLAHEHLMt+ I]H˶DLHHE tHE}HEHLAHEHLMt I]HX˶DLHHEHHHET +LeLmMtg I]H ˶LuUHEHEHEH蘙HEH}HEHEHəCHEHEHHHEHEHEH脙HEHLAHEHLMt~ I]H"ʶDLHH]LeLmLuH]UHH$H L(L0L8L@H}ȉuUHMLEDMH HDž`HUHp<طHdHcHhUHuH}UH}H`zH`H$EHXHEHPHEHHDuDmH]LeMtX M<$LȶHDDHPLHXAA ڷH`GHhHt#ܷH L(L0L8L@H]UHH$HLLLLH}HuUH( HEd;EtLpLEHMHUuH}rpuHE`t tC|yHþ H(HdlHdHtl|>;Hþ H(HdlHdHtl|H LtD|L H Ht~L#L#ǶLLDA$HEHH HH HE}uH}7E܋uH}(EH}u|HEHcHqQHHHH9v]HEHcHc]HqHqHHHH9vHEzHEHcXHcEHqH)qHHHH9vhHEXHEHcXHqHHHH9v0]HcEHc]Hq[HHHH9v]HEHcP HEHc@H)q HcEH)qHH?HHHEHcXHqHH-HH9v]HcEHc]HqHH-HH9vd]H@H$HEH]mH8L}LuHt|H(H@H0L@MtM,$L}ĶH0Hڋ(MMH8APH}YHEHxUHuH}5EE܋EEH}u|HEHcHqHHHH9vJ]HEHcHc]HqqHqgHHHH9v HEyHEHcXHcEHq'H)qHH-HH9vHEXHEHcXHqHHHH9v]HEHcP HEHc@H)qHcEH)qHH?HHHEHcXHq~HH-HH9v!]HEHMċUDEH}A荧HEHxuHMHŰuH}l}}H}bHEHxHEHEHxHH3HHHEHPHEHXHEEE܋EEHEHcXHEHcH)qHqHH-HH9v"]HEHcX HEHc@H)qEHq:HHHH9v]ЋEv vcHcUHcEH)qHH?HHHEHcXHqHqHH-HH9vk]]HcUHcEH)qHH?HHHEHcHqvHqkHH-HH9v]Et}HEHcXHcEHq H)qHHHH9vHEXHEHcXHqHH-HH9vl]uHEHcHqHHHH9v4]HEHcHc]Hq[HqQHH-HH9vHEHEHcXHqHHHH9v]HEHc@Hc]HqHqHHHH9vvHEX{HEHcX HcEHqH)qHH-HH9v,HEX HEHcX HqRHHHH9v]HEHMċUDEH}A^HLLLLH]UHHd$H]LeLmLuL}H}ЉuUHMLEDMHxAEHED}DuLmH]HtHILLDDEA$ HEHHUHMH}EHEHEHEHEHEDu]L}LeMtI$ILMLDHMLEEAA H]LeLmLuL}H]UHHd$H]LeLmLuL}H}H@3HEHHEHEDx HED;x}RHUBEEEDmH]LeMtM4$L胼HDA( D;}~HEHcHqHHHH9vAA}IEEEDmH]LeMtWM4$LHDA( D;}~H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHUHMHHLeLmMtI]HgLuH} L}LuH]LeMtyI$ILHLLAxH]LeLmLuL}H]UHHd$H}HuHUHMH(E;E|E;EEEEH]UHHd$H}HuHUHMH(E;E|E;EEEEH]UHH$`H`LhLpLxL}H}uH^HELEȋMH}@I›EȉEEЉEHEHHELMtM,$L踹HAhHEHUHEHEHEHEE;E}HUHMH}Hut_HExEHEHHEHUEDLMLEċMH}@E;E|nHUHMH}Hu]uS}uLEHMċUuH}UuH}YvEH}uEEEEȋE܉EHc]HqEHHHH9v]EHU;B,HEx EHEUuGHE;Et3}uEHU;B}UHE;P ~HEUH}uHEu}uHuH}8FHELMLEH}@f}uHELEHMċUH}pHUHMH}Huu^HUHEHEDH]LuHEHELeMtlM,$LH}HMDEA EELMLEċMH}@蘘E;E|\HUHMH}Hu uA}uLEHMċUuH}H}uEEEEȋE܉EHc]HqHHHH9v]HEHcHqHcEH9'H`LhLpLxL}H]UHH$PHXL`LhLpLxH}HHEH@HHE@;Cxt0HE@;C|t"HEHxVrtHEHƃu*HE@;tHE@;tHEHHEH@HHEH@LMtBM,$L洶HAHUHuz÷H袡HcHUHEH@H/]HHED@HEHHEPHEp:HUBHEHUHBHEHBHEHEDxHEDpHEHXHEL`MtM,$L#HDDHMLEEAA ŷHEH@HHEH@LMt&M,$LʳHAHEHt"ǷHXL`LhLpLxH]UHHd$H]LeLmLuL}H}HuH8HEHuHEHuHEH H;EtVHEH DHEH DH]LeMt1M,$LղHDDA FHEDHEDH]LeMtM,$L荲HDDA H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HPHEHHEHEEHEEEEE؉EE܉EE;E|!LeLmMtI]HñLu4Hc]HcEH)qRHH-HH9v]EEHEHH(HEHELLuH]HELMtM,$L#LHLAxLeLmMtOI]HLuEEHEE EEEE;E|mEEHEHH(HEQHELH]L}HELMtM,$L[HLLAxH]LeLmLuL}H]UHHd$H]LeLmLuL}H}ЉuUHMLEDMHhAEHELEuHExEHExEAIMMtM,$L脯HDAPHEЃ9MMMtMuL=LAH7MMMt`MuLLAHHEЀtHEЃt qHEЃ_EuIkIkLmLeMtI$HlLuUuL }Hc]HqHH-HH9vދUL3}Hc]HqHH-HH9vWދUL|UHc]HqyHH-HH9vދUL_|UuL|UuL|HEЃtEuIUjIBjLmLeMt~I$H"LuHc]HqHH-HH9vTLceIqLH-HH9v(DLk{Hc]HqLHH-HH9vڋuL{UuL{Hc]HqHH-HH9vLceIqLH-HH9vwDLzHc]HqHH-HH9v>LceIqoLH-HH9vDLzHc]Hq6HH-HH9vދUL|zIKhHEЋ<I3hHExEHExEEI@tE@IjwHEЋMMMtMuL躪LAPHEЋ8IgHEЋMMMtMuLhLAHHEЃJ}urHc]HqHH-HH9vڋuLxHc]HqHH-HH9vJڋuLx}uLmLeMtI$H袩Lu!UuLExUuLxrHc]HqHH-HH9vދULwHc]HqHH-HH9v}ދUL x}u@uIhuH]LeLmLuL}H]UHHd$H}ЉuUHMLEDMH0H]UHH$PHhLpLxLuL}H}ȉuUHMLEDMHEu,HþHR HEUHEHEEEaEu,HþH HEUHEHEEE*oHþHHEUHEHEEEEHH$HEHPHEHEHEHEHEHEHED}IIMtI$ILILHUDLELMHuAPHhLpLxLuL}H]UHH$HLLLLH}ȉuUHMLEDMH}2%H`H`H ;HcHcHHEHHH|HHEEHEHH =t^Hc]H H)qHHHH9v^]HEHt t?lHcUHHqdHH-HH9v]2Hc]Hq3HHHH9v]HEHt t@vHcUH&HqHHHH9v{];Hc]HH)qHHHH9v@]:HEHH ۅHT(]HH!HH!HEHELLmHEHHtL#LBLLA$HEuċE)Ƌ}E)EfHH HHEH HEHEHEHEHEHEHttg)LceIHI9uOHLq;HHHH9vH}]E)HcۋEU)HcH)qHH?HHHcEH)qHHHH9voH}o\]E)HcHcEH)qHH)qpHH-HH9vH}HEHttp)LceIHI9uH7LqHHHH9vH}]E)HcۋEU)HcH)qHH?HHHcEH)q|HHHH9vH}\]E)HcHcEH)q3HlH)qHH-HH9vH}LceIHI9uLHHH9vwHc]HHH9uHHHH9v>H}D@U܋uH}1HEHEHEHEEEDž|E;E|E؉EE;EEE؋E;E|E܉EE;EEE܋E;EuE;EuH|H$HELD}܋EHHEHHEHH]HELMt-M,$LџHHLELA膱H}HHtHLLLLH]UHH$HLLLLH}ȉuUHMLEDMHH\H}NHHu$uH}ȲLEuH}ȲNEEHEHEEHEHTH`HfDž|HEHEH$H|H HEHEHD}DuH]LeMt}޷I$ILHDDLL A H}uH]LeMt(޷M,$L̝HA\LeLmMtݷI]H蜝L0XXHcHH!HH!H ы\HcH HH!HH!H HMAH}uT|}IH}'HEHxHEH`H}\H`HErHËUH5 4HHLTHLHETE4HL}DuLHHtܷL#L`LLDA$HEHEHxH?\HX}7EHEHxHg?\HX}v7EEtetHcEHc]HqwܷHcEH)qiܷHH?HHHH-HH9v۷]HcUHlݥHqܷHH-HH9v۷]THc]HcEH)q۷H$ݥH)q۷Hq۷HHHH9vn۷]EttKHcUHܥHqw۷HH-HH9v۷]HcEHc]Hq@۷HcEH)q2۷HH?HHHHHH9vڷ]THc]H7ܥH)qڷHcEH)qڷHqڷHHHH9vsڷ]HMLEH}HuPTAgXg\HPHEHXHE}};H@H$HEH BH8HEH0HEH(L}]L@L@MtٷM,$L2LLL0L(H8APH}uZHUHHLuLmL}HEHHtٷL#LLLLHA$h4H`u(HEHHMLE|H`A蒀HLLLLH]UHH$PHhLpLxLuL}H}ȉuUHMLEDMHBڷHc]HqطHHHH9v5ط؉EHc]HqaطHH-HH9vط]Eu,!HþHqHEUHEHEEEaEu,HþH:HEUHEHEEE*HþHHEUHEHEEEHH$HEHi?HEHEHEHEHEHEHED}IIMtַI$IL蘖LHUDLELMHuAPHhLpLxLuL}H]UHHd$H]LeLmH}HuH(wطHEƀHEH,u"HEH膳H}H})LeLmMt ַI]HĕL@ H]LeLmH]UHHd$H]H}HuH׷H}6EHH;H}ҰH}EHH}݅H]H]UHHd$H]H}HuH o׷HEHH}VHcHqշHH-HH9vMշ}5EEEH}֑‹uH}Hl;]~H}舓H]H]UHHd$H]H}HuH ַHEH#H} VHcHqԷHH-HH9vԷ}5EEEH}‹uH}hh;]~H}ȒH]H]UHHd$H}HuHշHEH@H]UHHd$H}HuHշHEH@HExuHEH@HHUHBH]UHHd$H]H}HuH _շHEHCRHEHEf@fff-cf-f-xf-f-~HEfxtHExuHEtZHEHcHEHc@ H)qӷHcEH)qӷHH-HH9vҷH}X CHEHcX HcEH)qҷHH-HH9vcҷH} HEH@H}HcHEHcH)q_ҷHHH9uHҷH}?WHcHq1ҷHH-HH9vѷH} +H}薜HcHEHcH)qѷH}VHcHqѷHH-HH9vhѷH} H}Z7HcHHH9unѷH}eVHcHqWѷHH-HH9vзH} TH}6HcH}VHcHqѷHH-HH9vзH}V HEu H}H]H]UHHd$H]H}HuH /ҷHEHOHEHEf@ffef-f-f-f-f-~HEfxtHExuCHEHcX HcEH)qϷHH-HH9vϷH}OHEH@-H}HcHEHcH)qϷHHH9uϷHH-HH9v'ϷH}H}yHcHEHcH)q/ϷHH-HH9vηH}oH}G5HcHHH9uηHH-HH9v~ηH}.H}4H}HEu H}IH]H]UHHd$H}HuHϷHE@PuHuH}%H}|H]UHHd$H}HuHϷHEHH}賷H}:H]UHHd$H}HuHcϷHE( u HuH}ҿH]UHHd$H}HϷHEH qH]UHHd$H]LeLmH}H0ηHExuHE0tHEH8HtH[HHH-HH9v̷]HcEHq̷HEH5B'HEH8HMHkLmM8HcUHH9vD̷Hc]HI8jHHEHIHIDH]LeLmH]UHHd$H}HuHͷHEHH}CHE( H]UHHd$H}HuHͷHE=r-vHE@Pu5HuH}iHE rsHEH 蔄H]UHHd$H]LeLmH}H ̷HEH/H}vHǾ ÃvʷHEH}GHǾÃvʷHEH}xLmLeMtdʷI$HL@ H]LeLmH]UHHd$H]LeLmLuL}H}؉uUMDEHp˷EUH}@bHEHEHtH}EĀ}UHcHH!HH!H ֋UHcH HH!HH!H H}(uHExu;}uHE؃u }uHE؃ uHEHctHcUH)qZɷHEHcHqEɷHH-HH9vȷ]HEHcxHcUH)q ɷHEHcHqȷHH-HH9vȷ]HUHEHt}uHEǀ}uHEǀ E;E|&HExuHEHU؋E;E|&HExuHEHU؋ }uH}@8w*H]LeMtǷM,$LVHA@ HEx uBEHEDuLmسLeMtiǷM<$L @LDEAx H]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUHxȷ}t}t ErHEHtHEH}EHEHE苀 EHE苀EUHcHH!HH!H ыEHcH HH!HH!H HMHELHcEIc$HqƷHH-HH9v6ƷA$HEL HcEIc$HqUƷHHHH9vŷA$fDHELIc$HE苰tH}HHcH)qŷHHHH9vŷA$HELtIc$HqŷHHHH9v_ŷA$HEHU苀;t&H]HE苰tH}G;~5fDHELtIc$Hq6ŷHHHH9vķA$HELIc]HE苰tH}GAMcIqķLHHH9vķEeHEHU苀t;HE胸|DDHEL Ic$HE苰xH}6'HcH)qYķHHHH9v÷A$HELxIc$HqķHHHH9v÷A$HEHU苀;x&H]HE苰xH}&; ~5fDHELxIc$Hq÷HHHH9v8÷A$HEL Ic]HE苰xH}"&AMcIqB÷LHHH9v·EeHEHU苀x;HE胸 |DHE苀E}|UHE艐HE苀 E}|UHE艐 HEHU苀;tt6HE苀EHE苀EE;E|UUHE艐HEHU苀;xt6HE苀 EHE苀EE;E|EEHU艂 LmAH]HtL#L/DLA$ tHEǀLmAH]HtCL#L耶DLA$ tHEǀ HEHtH}uLmLeMtI$H艀L HEx uHEHcxHcEH)qHEHcHqHH-HH9vHEHEHctHcEH)qHEHcHqHH-HH9v?ALuLeMtM<$L@LDEAx H}>HEHc]HcEH)q&H}EHcHqHH-HH9v貿AHc]HcEH)qݿHHHH9vALuH]HtHHIL~LDDA$HuH}}t }|HEHU苀;tt%HEHU苀;t }R}t }|>HEHU苀;xt"HEHU苀; t }EEEH]LeLmLuL}H]UHHd$H]LeLmH}uH(HE;Et6HUELmLeMt佷I$H}L@H]LeLmH]UHHd$H]LeLmH}H8苿HEu H}c$HEǀHEǀH}~>HcHq螽HH-HH9vA}EEEHEHEHu jHELcuH}?AMcMq#LH-HH9vƼHEDHE;EHUHE;]~\HEǀHEǀH}=HcHq藼HH-HH9v:}EEEHEHEHuiHELcuH}AMcMqLH-HH9v辻HEDHE;EHUHE;]~\LmLeMtPI$HzLHEHUHUHEHHEHH}HUH}荅HUHEHcHEHcH)q3HH-HH9vֺHEHEHcHEHcH)q캷HH-HH9v菺HEH}LEHEHU;x|.HEHUxHEHU E0HEHUx;|HUHExEHEHU;t|.HEHUtHEHUE0HEHUt;|HUHEtEH}HU;t8HEEHE EE;E|EEHU @H}H}9EHE EE;E|UUHE H}7HU;t8HEEHEEE;E|EEHU@H}E7H}j;EHEEE;E|UUHE}u)LeLmMt2I]HwL H]LeLmH]UHHd$H]LeLmLuH}HuHUHXϹLuLeMt趷M,$LZwLA ELuLeMt肷M,$L&wLA EH}^EH}EؿUnHcۿxFnAMcIq膷LH-HH9v)DeH}ou2HcEHc]Hq?HH-HH9v⶷]ܿmHcۿxmAMcIqLH-HH9v虶DeH}'ou2HcEHc]Hq诶HH-HH9vR]EHE|uLceH}HcHEHcH)qLLqBHH-HH9v嵷]H}6HU;sLceH}6HcHq뵷HH-HH9v莵H}S8HcI)q趵LH-HH9vYDeEHE|uLceH}HcHEHcH)qRLqHHH-HH9v봷]H}/6HU;sLceH}6HcHqHH-HH9v蔴H}HcI)q輴LH-HH9v_DeHMHE苀lttt2}u&HEHcHcEHq^HcUH9HMHE苀lrr2}u&HEHcHcEHq HcUH9}2Hc]HcEH)q۳HH-HH9v~]HE8tH}u@HE8u5HuHEHcHcEHq耳HcUHcMH)qnH9}2Hc]HcEH)qNHH-HH9v]HE8tH}u@HE8u5HuHEHcHcEHqHcMHcUH)qᲷH9}u&HUHE8uHE耸tHE8u9Hc]HcEH)q萲HH-HH9v3HE艘HE8u9Hc]HcEH)qLHH-HH9vﱷHE艘H]LeLmLuH]UHHd$H]LeLmLuH}@uUHMLELMHPtHEHE}uLuALmMt;I]HpDL tHEЋH}2uqHEЋHEH]HcH}{AMcIq)HEHcI)qLH-HH9v跰HED CHEHcH}HcH)qʰHH-HH9vmHEHE|uHELc H}"{HcHEHcH)qhLq^HH-HH9vHEH}1HU;yHELc H}0HcHqHH-HH9v褯H}i2HcI)q̯LH-HH9voHED HEЋtH}0ujHEЋtHEH[HcHUHcHq]HEHcH)qHHH-HH9v뮷HEHEHE }uLuALmMt茮I]H0nDL tHEЋH}X0uqHEЋHEHZHcH}xAMcIqzHEHcI)qeLH-HH9vHED CHEHcH}HcH)qHH-HH9v辭HEHE|uHELc H}xHcHEHcH)q蹭Lq语HH-HH9vRHEH}.HU;yHELc H}r.HcHqRHH-HH9vH}HcI)qLH-HH9vHED HEЋxH}.ujHEЋxHEHYHcHUHc Hq讬HEHcH)q虬HH-HH9v}t6LeLmMtI]H]L ;E~EEEH]LeLmH]UHHd$H]LeLmLuH}uUH@葟HE苀;E~9HE苀;E}(HE苀;E~HE苀;E}EE}tHExuHE胸0txHEH8Q;HHH-HH9v}>EEELuM8HcUHH9vĜLceLI8:ICD%;E~LuM8HcUHH9v{LceLI88:ICD%;E}LuM8HcEHH9v2LceLI89ICD%;E~LLuM8HcEHH9v웷LceLI89ICD% ;E}E ;]~EH]LeLmLuH]UHH$@HHLPLXL`LhH}uH;HEHUHuiHGHcHUEHEH}#AMcIqBLHHH9v䚷DHxx9}]EEEEDm]LuL}LeMtpI$HpHp ZLLDHp H}ux;E~EkH}ضHEHt)mEHHLPLXL`LhH]UHHd$H}H跛HE|6HE~H}@)HUHEE HEEEH]UHHd$H]LeLmH}H(+HE|QHE~3LeLmMtI]HXL HUHEE HEEEH]LeLmH]UHHd$H}H臚HEH}T?HEHEH]UHHd$H}HGHEHU;EEH]UHHd$H]LeLmH}uH(HE;Et6HUELmLeMtėI$HhWL@H]LeLmH]UHHd$H}HwEHEHUHH; tHEHUHH; tHEH pE-HEHUHH; tHEH pEEH]UHHd$H}HטHEHu EEEH]UHHd$H}uHUHMH@|EH}N=HEH}uHEHxuwHEHxHcHq荖HEHEH@0Hc@@HEH}}HEH;E~u$HEH@0HU@@HEH@0HU@DHEHEH}7Zu,HE8t HEHE8t HEH]UHH$0H0L8L@LHLPH}ЉuHUHMLELMH+HEHUHpncHAHcHhHEHEHEHHEHEЋd;EuNHEHxuUHEЃ`tFHEЃ}7HEHUHxHHEHUHEHU苀HEHxuUHEЃ`tFHEЃ}7HEHUHxHHEHUHEHU苀HEHhtL}IHj}HHj}IMt谓MLUSHLLAHUHhHEHhUHEHh`Dž\Dž` DždL\HELhHHELhMtM,$LRHLLAHEHhaHEHUHhHHEЋ`tt$H}H5OT ѶH}H5]TжHEHhHu2HUHUHEЃcH}LжHhHtkeH0L8L@LHLPH]UHHd$H}ȉuUMLELMHHHEH@u'HEHHLMDEMUHuHE@HEH8t?HEHPu/HEH$HEHXLMDEMUHuHEPH]UHHd$H]H}HuH?HEHExu7HEHcX HqhHH-HH9v HEX HExu7HEHcXHqHH-HH9vHEXH]H]UHHd$H}HwHEHHEHEH]UHHd$H}H7HEH 4[HH=·HsHEHEH]UHHd$H}HuH㑷H]UHHd$H]LeLmH}@uH(觑HUEHEu~LeLmMttI]HOL@ HEHUt;u=HUHEtLeLmMtI]HNL H]LeLmH]UHHd$H]LeLmH}uH(ȐHE;EtEHUEHE$ u)LeLmMt腎I]H)NL@H]LeLmH]UHHd$H}@uH3HEC :Et HEUC H]UHHd$H]LeLmLuH}HuH0ӏHELH]HELMt譍M,$LQMHLAH]LeLmLuH]UHHd$H}uHTHE;EuHEHtHUEHEt$HEHHEHHHHEtHHEHHUHLHHHEHHUH HXH`HEt$HEHHUH HH H]UHHd$H]LeLmLuH}uH0HEH e;EupHEL DeHEL MtԋI]HxKDLXHEHUHH; tHEu H}HEH e;EupHEL DeHEL MtJI]HJDLXHEHUHH; tHEu H}0H]LeLmLuH]UHHd$H]LeLmH}@uH(跌HE:EtEHEUH}.u)LeLmMttI]HJL@H]LeLmH]UHHd$H]LeLmH}@uH(HE:EtPHUEHE$ t H})LeLmMtɉI]HmIL@H]LeLmH]UHHd$H]LeLmH}@uH(wHEU:Eu6HEUULeLmMtEI]HHL@H]LeLmH]UHHd$H]LeLmLuH}HuH0㊷HELH]HELMt轈M,$LaHHLALmLeMt萈I$H4HL@ H]LeLmLuH]UHHd$H]LeLmH}HuH(7HEHxH;Et8HUHEHxLmLeMtI$HGL@ H]LeLmH]UHHd$H]LeLmH}uH(訉HE;Et6HUELmLeMttI$HGL@ H]LeLmH]UHHd$H]LeLmH}uH(HE;Et6HUELmLeMt䆷I$HFL@H]LeLmH]UHHd$H]LeLmH}@uH(臈HE:Et6HUELmLeMtSI$HEL@H]LeLmH]UHHd$H}uHHE$ ;EuHEU$ H}H]UHHd$H]LeLmLuL}H}HP裇HEHH}DHEHUHEHC4HEHCAH]ALmMtMuLCDHA udAd[IcHEIcHqHEHEH;E|H]H]HH-HH9v衃AH}AAsAHEHUHEHEHEHELceIc_H}JHcHq荃I9[IcHEIcHqiHEHEH;EH]H]HH-HH9vALceIc_H}HcHq I9[IcHEIcHq邷HEHEH;EH]H]HH-HH9vrAH]LeLmLuL}H]UHHd$H]H}H0HEHcHEHcH)qSHCHEHcHEHcH)q+HHEx t*HEHHH}?HEx uHEEH}HcHq贁HH-HH9vW]HEEHEE؋E؉EE܉EEEEEHUHEHHEHfHEEHEEHEEHEEEEEEE܉EE؉EHUHEHHEHH}@H]H]UHHd$H]LeLmH}uH88HEH8HtHRHHcEH9~HUHHEHHEKLmM8HcEHH9vHc]HI8HIHEIDHEHEHUH]LeLmH]UHHd$H]H}HsHEH8HtH[HHqHH-HH9vS]EH]H]UHHd$H}HHUHHEHHEHEHUH]UHHd$H]H}uH H]Ev~EfCX fEEH]H]UHHd$H}uHtHExEEH]UHHd$H}uH4HET ;Et%HUET HE t H}pH]UHHd$H]LeLmH}@uH(HE:Et6HUELmLeMt}I$H7=L@H]LeLmH]UHHd$H}uHDHEH;Et*HUEHHEHEH}WH]UHHd$H]LeLmH}uH(~HE;Et6HUELmLeMt|I$HHpHH-HH9voAHED0LeMtoM,$LI/@DDH}AH EHE胸 tH}HU;fuH}[HU;|/HE耸! uuH}[HU;|HE苀;E|HEHcHq3oHcUH9|?H}/HcHqoHHHH9vnHE؉MH}HELHLEز@ H}HELHHEL@HE؋@HE苀HU;B|HE苀EHcUHEHcpH)qknHcUHMHcAH)qUnH9| HE؋PUdHU؋BEHEHcHq&nHHHH9vmHE؉H}HELHHEL@HE؋@HE苐HE;~HcUHcEH)qmHHHIHnH9~UHE胸P u@H}=fH}lHEǀP HE@HE@EHE胸P t H}mEH]LeLmLuL}H]UHHd$H]LeH}HuH(nHEHtHE}|HEHUt;A}5HEHc\HEHcHqlH}[HcH9|%LA$@HE苀;E|.LceHEHcH}jHcHqeI92HH!HH!HH H}6YHE苀;E%HH!HH H}#HH!HH!H}H]LeLmLuH]UHHd$H]LeLmLuL}H}@uUMLELMH`afHEHEE}u>LeLmMt-dI]H#LuuH}PEHc]H}HcH)qIdHH-HH9vc]}|HEHIǀ}u}uHcEIcHqcH9mHEHUtHE0H} uHc]IcH)qcHE0IPAMcIqcLH-HH9v'cDeLuлLeMtbM,$L"LA u2HcEIc_`HqcHH-HH9vb]HE0H};tHcEIcWHqbH9\HEЀB u>H}HcHqbHH-HH9vFbHE HEffHEHcHqVbHH-HH9vaHEHE0H}tt\HEЀB u>H}HcHqaHH-HH9vaHE HEHc]HE0IP AMcHE0H}*HcLqaHqaH9HE؋UHE8uCHc]HE0IP HcH)qCaHH-HH9v`HE؉}u)HcUIcGHq`H9 HEHUxHE0H}tu\Hc]IcGH)q`HE0IX HcHq`Ic_dHq`HH-HH9v5`]HE0H}tHcUIcG HqJ`H9\HEЀB u>H};HcHq`HH-HH9v_HE HE:DHEHcHq_HH-HH9vq_HEHc]HE0IX AMcHE0H}SHcLqv_Hqk_H9HE؋UHE8uCHc]HE0IX} HcH)q0_HH-HH9v^HE؉EEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}@uUMLELMH`A`EHEHIǀ}u:uH}tuIP HUuH}E8uH}tluIXj HUuH}EHELc H}HcLq]HH-HH9v]HE}t=HEHcHc]Hq]HH-HH9vY]HE؉}uuH}guHEHcHEЋtIP HcH)qG]Mc'Iq:]LH-HH9v\HED LuлLeMt\M,$LALA u:LeHEHcIcG`H)q\HH-HH9vi\A$uH}uHEHcHEЋxIXHcH)qd\McgIqV\LH-HH9v[HED H]ALmMt[MuL\DHA u:LeHEHcIcGdH)q[HH-HH9v[A$}uLmLeMt@[I$HLu|HE0H}GHcHqc[HH-HH9v[HE؉HEHcHcEH)q+[HH-HH9vZHE8HEHcHc]HqZHH-HH9vZHE؉EEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uH@\H}wHH5uLeLmMtYI]HL ;E~tH}'ILcuH]LeMtYM,$L@HA HcI)qYLH-HH9v|YDL@EEEH]LeLmLuL}H]UHHd$H]H}uH([EH}E}}H}NHËuH`4HEHEHEH]H]UHHd$H]LeLmLuH}HuH8ZHE@PuH}tuH}HH4uLeLmMt2XI]HL HcH}IL4AMcIqTXH}HcI9u}LeLmMtWI]HnL HcH}IL<4AMcIqWLH-HH9vWDH}s)LeLmMtMWI]HL@ FHE@Pt7HEDLeLmMtWI]HLD LH}UHHuH>E}})LeLmMtVI]H[L@ H]LeLmLuH]UHHd$H}uUH(aXHEHeEuH}CHcHUHcHcUHqVH9|zHEHcHcEHqgVHcUH9 EHLMLE؋MH}@:}|H}9HU;~ EEHEHcHcEHqUHcUH9uH}3BHcHUHcHcUHqUH9| EHLMLE܋MH}@}|H}MHU;~ EEOH}脚t9LEHM܋UuH}Y}| }| EEEEH]UHHd$H}uUH V}| }| EoHE苀;E#HE苀;E EE;HE苀;E#HE苀;E EEEEH]UHHd$H]LeLmLuL}H}@uUMH`U}uH}HHZ/u|H}HËuH})AċuH}HD}3EHEDm]LuLeMt+SM<$LL@DEȉAh }uHEHXUuwIHEH`Uu_IEHED}DuLmH]HtRHILNLDDEЉA$h H]LeMttRM,$LHA@ }uHEE HEE܋Uu}̰uE;EtEEE;EtEE܀}uAHEDDmL}H]HtQL#L{LDDA$ ?HEDDuL}H]HtQL#L:LDDA$ }uhHEd}YHEdUuu>HEd;EtHUE艂dHEd;Et HUEdH]LeLmLuL}H]UHHd$H]LeLmLuL}H}@uUHHR}uBHEHt0H{gHPHH=I HH5H }tH}辿HH,uH}褿HHst/H}芿HH+tH}0t0HgHPHH= (HH5H& }|EHE苀EHE苀E}uWHc]H}HcHqOH99H}HcHqOHH-HH9vZO]HE苀;E=HEHcHqpOHH-HH9vOHE艘H}PHH*u_H}6HËuH}wHm1D}LuLeMtNM,$L7@LDAp ^0HEHXuHEHu~HEH`uHEHuHE苀;E=HEHcHqDNHH-HH9vMHE艘D}DuH]LeMtMM,$LE HDDAp LeLmMtqMI]H L@ }u[HE苀;EHE苀E9E;E~/Hc]Hq{MHH-HH9vM]YHE苀;EHE苀E9E;E~/Hc]Hq MHH-HH9vL]Du]L}LeMtLM,$L) LDA }uNHE苀d;E}=HEHcdHqLHH-HH9v>LHE艘dH]LeLmLuL}H]UHHd$H]LeLmLuL}H}@uUMH`ME;Et.LeLmMtKI]H? L@ U@uH}U@uH}豧}uH}轺HH'urHE( t`H}莺HEЋuH}ANjuH}ALmH]HtJL#L LDDA$8}uHEHXUuDHEH`UuDEHED}DuLmH]HtnJHIL LDDEȉA$x }tH}詹HH%t*H]LeMtJM,$L HA@ }uHEE HEE܋Uu}luE;Et EEkE;E|1Hc]HqIHH-HH9vI]0Hc]HqIHHHH9vfI]܀}uAHEDDuLmH]HtIL#LLDDA$ ?HEDDuL}H]HtHL#L|LDDA$ }uHEd}HEdUu)uHEd;EtHEU艐dHEd;E@HEHcdHqHHHHH9v8HHEd=HEHcdHqVHHH-HH9vGHEdH]LeLmLuL}H]UHHd$H]H}@uUH IE@uH}ʣ}uyHGHE苀d;EtHEǀdNHE苀d;E=HEHcdHqGHH-HH9v"GHE艘dHH]H]UHHd$H]LeLmLuL}H}H0HHEHxHcHqFHH-HH9vFHEHxHEH@DHEH@苈HEHxnHEHxHcHqFHH-HH9v$FHEHx'HEHxTHEH@耸u)HEH@HU;BtHEHx@蘯HEH@HU;BYHEH@HLc#IqELH-HH9vuED#HEHPHEH@苀xHEH@H`HEpK7HEH@HHEp07HEDxHELpHEL`MtDI$IL{@LDA` HEPHEHx@贤HEH@耸x uRHELc`HEH@HcHEHxHcHqDHqDI9tHEH@ƀx H]LeLmLuL}H]UHHd$H]LeLmLuL}H}H8EHEHxVHEHxAMcIq&DLH-HH9vCDHEH@DHEH@苈HEHx誜HEHxHEHxAMcIqCLH-HH9vPCDHEHx茝HEH@耸u)HEH@HU;BtHEHx@ЬHEHxCHHuHEpHEHxnEHEH@HU;BYHEH@HLc#IqBLH-HH9vxBD#HEHPHEH@苀tHEH@HXHEpN4HEH@HHEp34HEDxHELpHEL`MtAI$IL~@LDA` HEHx!HHvuHEHxHËuH5 HEPHEHx@~H]LeLmLuL}H]UHHd$H}uH4CEtDt t)tDHEH HE;HEH HE*HEH HEHEH HEHEHEH]UHH$PHXL`LhLpH}؉uUMDEHxBEMUuH}AHE@Pu8DuLeLmMt9@I]HLDp tHEƀA LeLmMt?I]HLtHEXtLeLmMt?I]HTLu)LeLmMt?I]H%LLeLmMtX?I]HLt#UuH}yqHE؋,:tHExu1HExuHE؃P tHEǀ BHEǀ HExu"HEHU؋,H r H}V\HExu5HE؃P t&HEǀ HUHEHHlZHE؃ uHEǀ H}!HExu"HEHU؋,H r H}谞HEx@uHE؃P tHEǀ KHEǀ H} HExu"HEHU؋,H r H}/5H}HEƀA H}TUuH}n*uH}*HE؀ u4HE؃P t%HExuHEǀ H}ItHEǀ HEDLeLmMtEHEDmЋ]LuLeMt1M<$LpLDEAX HE؀puMԋUH}A@<LHEHEDuDmH]LeMtV1M<$LHDDEAX H}HEH HE؃}"HE؋0HE؋H}@OHE؋0;Et>HED0LuAH]Ht0L#LXDLDA$8 H})HE؃}"HE؋4HE؋H}@jOHE؋4;Et>HED4LuAH]Ht%0L#LDLDA$8 bHE( uvHEH` HEHE؀u/HExuH}HEpHE@HE@H]LeMt/M,$L2HAu\H]HcUHEHcHH)q/HELc` Iq/LH-HH9vI/DHE0HZH]HcMHUHcBH)q\/HELc` IqJ/LH-HH9v.DHE0H<H}L}HED0AH]Ht.L#L:DDLA$@ HEH` HEHE؀u/HExuH}HEpHE@HE@H]LceHEHcPI)qm.LHHH9v.DHE0HL}HED0AH]Ht-L#LeDDLA$@ HUHE؋( %}( H} u H}@nHE؃}HE؃}HLmLeMt<-I$HL@HE؋ rs H}HH HH HEH0HEǀ H]LeLmLuL}H]UHHd$H]LeLmLuH}H(.HEH@( uhHEL`HELhMtU,I]HL HELpAHELhMt!,I]HDLh H]LeLmLuH]UHHd$H}H-HEH@HU0;Bt+HEH@HU4;BtHExuEEEH]UHHd$H]LeLmLuL}H}H8S-HE@HԮHEǀ HExuHEP tHExuHE` H}׭EHED` LeLmMt*I]HiLD( HE` H}芭;EuGH}*HED` H]ALeMth*M,$L DHDA@ >HExu#HEx@uHEP t H}H]LeLmLuL}H]UHHd$H}H+HEEEH]UHHd$H}H+HEEEH]UHHd$H]LeLmLuL}H}HuH\+HEH}HLmH$HUHHUHEHUHSHUILuHTHLeMt(I$ILHLLHMLELMAH$HUH-HUHEHUHSHUIL}HTHLeMt(I$IL&HLLHMLELMAH]LeLmLuL}H]UHHd$H}H'*HEH@HpH=ڶuHEH@HxhHEHEHxUHEH}uH}_EEEH]UHHd$H}H)HEH@HpH=<OڶuHEH@HxHuE!HEH@H`HU@EEH]UHHd$H}H)HEH@HpH=ٶuHEH@HxHu$E!HEH@HXHU@EEH]UHHd$H]@}HuHUH0(E}uHEHx袌EHEHxEHEHcXHq&HH-HH9vM&}XEEEuH};EtuH}|EE}t;]~붊EH]H]UHHd$H]LeH}HuH('HEH迦HEHx谦9E}uHEHx蒦HcHq%HH-HH9vU%}JEEEuH}AHEHxuA9uE;]~ĊEH]LeH]UHHd$H]LeH}HuH(&HEHHEHx9E}uHEHxHcHq$HH-HH9ve$}JEEEuH}KAHEHxu8A9uE;]~ĊEH]LeH]UHHd$H}H%HEHKH}@O\H]UHH$PHPLXL`LhLpH}HuHZ%HEHUHuHϵHcHUiH}萒ILFHcHqe#HHHH9v#Hxx}EEEH}HËuH0ILEuH}HËuHH@0xXuH}͑HËuHHX0HuHHuHExuHEuH}HALuAH]Ht!L#LDLDA$8 x;E~HuH}SEKH}_HEHtEHPLXL`LhLpH]UHHd$H}ЉuUMDEHHJ#EHEHu/HEH$HEHDMDEMUHuHEEH]UHHd$H}H"H]UHHd$H}H"H]UHHd$H}uUH"HE苀EHE苀EHUHuH̵HcHUrHUEHUEHEHuHEHHuHEHEHuHEHMUHuHEdHE苀;Et+HE苀;EtHEU䉐HUEHEHtH]UHHd$H]LeLmLuH}H0W!HE( @uLH}@9HELeLmMt!I]H޵Lu HuH}̸HELHELMtM,$Ly޵@LAH]LeLmLuH]UHHd$H]LeLmLuH}H8w HEHEH}HEHHH;EE}uAHELIHELMt I]HݵLL`H}Y}u>HELLeHELMtI]HbݵLL`HEHUHH; tHEHUHH; tRHEH}?HEH}uH}HEH HEH HE|@HEH讂HE|@HEH HEHH=Z϶uZHEHHHE|@HBHEHHHE|@H蕂HELHELMtAM,$L۵@LALeLmMtI]H۵LutHELHELMtI]Hx۵Lu7HELHELMtI]H;۵LHEHEH}cQH]LeLmLuH]UHH$PHPLXH}uEMHEf)EEH}(Err H}KHUHxHBǵHcHpH}HH|=AMcIqLH-HH9v~A}De܋E܃EfDE܃EH}螉HËuHHEH}*YEH-HH-HH9vH}}H}$*YEH-HH-HH9vH}.H}%u?H}*YEH-HH-HH9v{H}}~HEH`HcXHqHH-HH9v.}]܋E܃E܋E܃EHEH`u|}SHEH`ub*YEH-HH-HH9vHEH`u}~HEHXHcXHqHH-HH9vc}]܋E܃EDE܃EHEHXu}SHEHXu*YEH-HH-HH9vHEHXu}~H}uAH}}*YEH-HH-HH9vH}輻HEǀH}uAH}}*YEH-HH-HH9v)H}μHEǀyH}@-JHpHtHPLXH]UHHd$H}HH]UHHd$H}uUMH nHEHu#HEHDEMUHuHEH]UHHd$H]LeLmLuH}H(HEHKHEt7HELp`LmHEL``MtLHqյLLH]LeLmLuH]UHHd$H}؉uUMDEH(zHEHnHU؉DEMUuH}\H]UHHd$H]LeLmLuH}HuH8HEHH}EHEDLeLmMtI]HԵLD` u+}t#HE8wHuH}|HEEEH]LeLmLuH]UHHd$H]LeLmH}HuHUHPSLmLeMt?I$HӵLAHEHHH}Hu8 HEHUHEHEHEHEHEHUH]LeLmH]UHHd$H]LeLmH}HuH0LmLeMtI$H7ӵLHEHHH}!cHEHEH]LeLmH]UHHd$H]LeLmH}uH0LmLeMtI$HҵLHEHH}SbEEH]LeLmH]UHHd$H}uUH(HE芀B EHEƀB EHcHH!HH!H ƋEHcH HH!HH!H H}HEHEUB HuH}HsEEH]UHHd$H}HHE@PtiHEuXH} qt H}LH}HE t(HEpu HEƀpHEǀ H}H]UHHd$H]LeLmLuH}H(HEHH}NuH}NpuHEHEH}(ujLeLmMtI]HOеL HEHu/LuALmMtoI]HеDLh H}H]LeLmLuH]UHH$PH}HuHUMLEDMH}4NHHUHp@޶HhHcHhu@HEHu0HEH$HEHDMLE؋MHUHuHEH}lMHhHtH]UHH$PH}HuHUMLEDMH}dMH%HUHppݶH蘻HcHhu@HEH u0HEH$HEH(DMLE؋MHUHuHE EH}LHhHtH]UHHd$H}uUHMH(mHE| t HEƀpHMUuH}0E܊EH]UHHd$H]LeLmLuL}H}uHUHHHEuH}HYE}tL}ALeMt_ M,$L̵DLA0 EEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uHUHH HEuH}HiE}t>L}ALeMt M,$LS˵DLA0 EEH]LeLmLuL}H]UHHd$H]LeLmH}H0K HEHHEtHEHtHEHEEHE EH}`HEt;Eu5HEx;Eu$HE;EuHE ;Eu)LeLmMt I]HGʵL@H]LeLmH]UHHd$H]LeLmLuL}H}HuUHx< HEHƋUH}9HErKrEHED8DuLmH]Ht L#LɵLDDA$P t HEfEEHEx tHExuEEHEff= f-Zf-f- f-f-f-f-;f- f-2f-f-8f--f-Mf-f-f-f- HExuHU苂pHEHEHELuDmH]LeMtM<$L'ȵHDLHMEAA u'EUċuH@" EHEfHExuZ}tREHEx@uHE苰H}mltUċuH@ HEfEHE胸prHE胸ptH]H};~H}uH]H}҉;}%}tH]H};~ H HEfH6HE耸t}uLmH]HtL#LƵLA$HIHcHHH9uHHHH9vH@cH@L~HE耸tf}uIH]LeMt<M,$LŵHAHLI4H@H@H@H@HEHTHUH\HEHc]HcEH)qHHHH9vH@=oHUHTHEH\HEHc]HcEH)qHH-HH9v/H@HE耸ttEu!HE苐HE苰H@H}u!HE苐HE苰H@sHE苐HE苰H@RHE耸tEuSH}跅HcHqHHHH9v9HE苰H@}uPH}HcHq<HHHH9vHE苐H@NH} HcHqHHHH9vHE苰H@7iHE耸tnHEDLuH]Ht!L#LµLDA$` u0LuAH]HtL#LµDLA$h HE耸tHEDLmH]HtL#LAµLDA$` ucH]LeMtiM,$L µHA LmAH]Ht<L#LDLA$h HEf,HE耸tWHEDLmH]HtL#LLDA$` uH}H5SjHEfHE耸t3Et)LeH]Ht}L+L"LA zHE耸t4Et*H]LeMt6M,$LHA 2HE耸t3Et)LmLeMtI$HL HE耸tLHEDLuH]HtL#LHLDA$` u HE@PtHEHt*H]LeMtKM,$L￵HA HEHH=S\iuLmAH]HtL#L裿DLA$h HEHHΎHE苐HE苰H}5LmAH]HtL#L=DLA$h HEfHEHusHEHu]H]LeMt4M,$LؾHA8 H]LeMt M,$L设HAX HEfHE耸u}t HEƀx H]LeLmLuL}H]UHHd$H}HHEH@耸uLHExu!HEHPHEH@苀( ( HEHPHEH@苀( ( H]UHHd$H]LeLmLuL}@}uUHMHPHE@pHEHxdHEH@胈( @HEHPHUD}DuDmHEHXHtL#L>DDDH}A$x u2HEHXHEL`MtWM,$LHAHEH@胠( HEH@fH]LeLmLuL}H]UHHd$H}HuUHHEHƋUH}软H]UHH$HLLLH}HuH0HEHH}HEtHEtHEDLeLmMt.I]HһLD` uHE8 taLeLmMtI]H蒻L LuALmMtI]HfDLh HEHHEt =rr-HEHHfHH}cHEHLLLH]UHHd$H}HuHHEHMUuH}I HEH]UHHd$H}؉uUHMLEH0HEILMԋMH}ز@ HE8| HE.LELMԋMH}ز@ݕHE8| HEH]UHHd$H]H}HuH(?EuH}讣EHuH}HE}u}t }tTHEHctHqIHH-HH9v]HE;E HEE}t }tTHEHcxHqHH-HH9v]HE;E HEEHEH]H]UHHd$H}uUH UHcHH!HH!H ЋUHcH HH!HH!H HH}HEHEH]UHHd$H}uUH HEH;U~$U;P~P;U~U;P ~EEEH]UHHd$H}uUH HEHHU苒;U-HU苒;UU;P} U;P ~CHU苒;U.HU苒;UU;} U;P~EEEH]UHHd$H}uH0THEHtYHExuH}:HEHUHEHEHEHEEHEEH}HHu'H]UHHd$H}uH0HEHHt[HExuH}誴HEHUHEHEHEHEEHEHHEH}HHu蕹H]UHHd$H]LeLmH}uHH(HEHtHEtUH} HEHUHEHEHEHELeLmMtI]HsLu%HEH}aEHEEEHEEH}HHu褸H]LeLmH]UHHd$H}H7HEuVHEx uHExuHEH}HEHEH}"*H]UHH$pHpLxLmLuL}H}@uUMDEHyHEHU@uH}H EԀ}tH}@,EԀ}tD}DuH]LeMtI$IL躳HDDA0 HUHHEHHEHE؋EHE؋EHEx uEEH}tHcHqHH-HH9v]EEHE؋EEEEEEEEEHUHEHHEHJEEEEEEEEEEEEEEEEHUHEHHEHHE؀puHExuHEx u`EEHE؋EE;E|EEHU؉EEHE؋EE;EEEHU؉mEEEEHE؋EHE؋|EEEEEEEEEH}Hu BHEHUHUHEHHEHMUuH}ytHMLE̋UuH},hHU؋EHU؋E艂LmLeMt~I$H"L LmLeMtUI$HL HEHuH}PunHEHu)LeLmMtI]H蕰LX LuALmMtI]HiDLh DuD}H]LeMtI$IL2HDDA EHpLxLmLuL}H]UHHd$H]LeLmLuL}H}@uH`HEHUHEHEL}DuH]LeMtI$IL莯HDLHMЋEAA E}u@DmD}LuEH]HtL#L>@uLDDA$x EH]LeLmLuL}H]UHHd$H]LeLmLuH}@uUMHX}tEEЋEEHEHcHc]H)qMHH-HH9v]HEHcHc]H)qHH-HH9v]HEHcHc]HqHH-HH9vy]HEHcHc]HqHH-HH9v@]HExuXHExuC}tH}Oo;E~HEx tHEx@uHEH}Rt^H}nHcHqHH-HH9vH}׏HEx@t HEƀx HEx us}tkH}nHcHqbHH-HH9vH}ZHEƀx HEHEH}`HUHuH}}| E} EE}| E} EEE@HcEHc]HqHH-HH9v1H}nu@HcEHc]HqNHH-HH9vH}nuDHcEHc]Hq HH-HH9v]HcEHc]HqHH-HH9vz]̋uH};nt}u uH}aNt }uM̋UH}A@CEHEtwH}EJuhLeLmMtI]HoL HEHu/LuALmMtI]H3DLh EH]LeLmLuH]UHHd$H]LeLmLuL}H}@uHUHMHPEHEH/uC}u~HEHcHEHcHq5HH-HH9vHEHEHcHEHcHqHH-HH9vHEHUHuH}RHEHU;tTHEHU苀;t@HED8HED0H]LeMtM,$L輨HDDA AHED8HED0H]LeMtM,$L|HDDA E܊EH]LeLmLuL}H]UHHd$H]H}HsHE?HEHcHqHH-HH9vQHEHH5^SH~ H]H]UHHd$H}@uUMDEH0HEHUH9EԀ}uUH}ؾ虡}u }uDEMUH}ؾH]UHHd$H}@uUMDEH(IHEHUH9uUH}ؾ}uDEMUH}ؾ聜H]UHHd$H]LeLmH}H(HEtHE$ t EEuH}?H}uHE@P tzLeLmMtXI]HL@ HEHEH}ACu)LeLmMtI]H諥L@ H]LeLmH]UHH$HLLLH}؉uUHMLEHEHEH(u3HUHx˳HHcHpu'HEH0LMLEMUHuHE(蹶HpHH=b_蝸HHhHPHEHmHcHu`EHE؃ tHEǀ LhHG[L HG[L(MtI]H+LLHHtٸ贸mEHLLLH]UHHd$H}uUHHEHuHEHMUHuHEH]UHHd$H}HHExuHEP t8HEx@uHEP tH}@RH]UHHd$H}؉uHUHMLEH(HEH]UHHd$H}uUHMH H]UHHd$H]LeLmH}HuUH@HEx uLeLmMt{I]HLuHEHcHEHcH)qHH-HH9v@HEHEHcHEHcH)qZHH-HH9vHEX!HEHUHEHUBHEH0HPH}}taHExuYHEHcHH?HHHqHUHcZ H)qHH-HH9vNHEX HExuLeLmMtI]H袠LuYHEHcHH?HHHq HUHcHqHH-HH9vHEYHEHcHH?HHHqHUHcZH)qHH-HH9vXHEXH]LeLmH]UHH$0HXL`LhLpLxH}HHEHHEL}LuLmH]Ht߶HILULLLA$ HEHD$HEHD$HEH$HEHEHEHEHEHEDu؊]L}LeMtG߶I$IL螵L@DHMLELMA D}DuDmЊE؈EHEHELeMt޶I$HH蓞H}@uDDE0 EHEDmDuD}HEHELeMt޶I$HHBH}DDDEA( HXL`LhLpLxH]UHHd$H}HuHUMH ,HEHEH]UHHd$H]LeLmLuL}H}HH߶H}J_HcHq*޶HH-HH9vݶ]H}^HcHqݶHH-HH9vݶ]EHcHH!HH!H EHcH HH!HH!H HEHHEǀHEǀEHE|tZH} ^HcHq+ݶHH-HH9vܶHEDA9~]EEDEEHc]uH}__AMcIqܶLH-HH9vbܶDeHE;E}HEULuLeMtܶM,$L覛LA uMHUEHEHcHc]H)qܶHH-HH9v۶HE D;}}EHE|t\H}\HcHq۶HH-HH9vX۶HEDA9~]EEEEHc]uH}'>AMcIqG۶LH-HH9vڶDeHE;E}HEULuLeMtڶM,$L.LA uMHUEHEHcHc]H)qڶHH-HH9vIڶHE D;}}HEEHEEE;EEEHUHEEHEEE;EEEHUH]LeLmLuL}H]UHHd$H}uUMH ^۶H]UHHd$H]LeLmLuL}H}؉uUHMLEHh۶HEHHUH@HEHUEHEHED}DuLmH]HtضHILwLDDHMA$@ RHEHcHqضHHHH9vضHELMLEHEH}ز@yHEHU;}HE@;EH]LeLmLuL}H]UHHd$H]H}HuHUH ٶHEHU;HEHUaHEHcH}XHcHqضH9L豐LDA uPD}DuLmLeMtжI$HpHpg@LDDHpx Cx;E~\E;E~ HUEHEHtHtyHEH L(L0L8L@H]UHHd$H}HҶHEHu-HEHHEHEHuHEH]UHHd$H]LeLmH}HuUH0ѶEHuH}}tKHEHxH;Et8HEHǀxLeLmMtD϶I]H莵L@H]LeLmH]UHHd$H]H}HжHEHcHq=϶HH-HH9vζHEH]H]UHHd$H}؉uUMDEHXzжE;E| HuH}#E;E| HuH} UuH}MHEHUHEHEHEHEЋUuH}&HEHUHEHEHUHHEHHEHEHEHEHEH}HMLEHuHUsHEHUH]UHHd$H}uUH ϶EHcHH!HH!H EHcH HH!HH!H HEH8HEH8H}HUH0HE胸,tOH}@HEH}u6HEu'HE苐4HE苰0H})xHU艂,H]UHHd$H]LeLmH}@uH(ζHEHcHq̶HH-HH9vt̶HEHEt1}u)LeLmMt̶I]HËL@ H]LeLmH]UHHd$H}HuHͶH]UHHd$H]LeLmH}H(ͶLeLmMt˶I]H+LuH}uwHH;EiHEHuUHEHu?HELHELMtʶI]H蝊LuEEEH]LeLmH]UHHd$H}uUH̶EuH}~H]UHHd$H}HW̶HExu5HE0t&HEH8HtH@HHEEEH]UHHd$H}uUMH@˶HEHbumUuH}uUuH}uu?UuH}蜇HEHUHEHEHEHEH} HHuЊU蜌H]UHHd$H]LeLmH}HuHUH`#˶HEHtUuH} HEHUHEHEHEHEUuH}HEHUHEHEHEHELeLmMtȶI]HNLuEȉEEЉEEԉEH}HHuز褋H]LeLmH]UHHd$H]LeLmH}H +ʶHEt)LeLmMtȶI]H謇L@H]LeLmH]UHHd$H}HɶHEt H}诌H]UHHd$H}HɶHEt H}AH]UHH$0H0L8L@LHLPH}@uHɶHEHEHUHuXHsHcHxQEHE@Pt:HEHu'HEHu}uHEHXHEDLmH]LeMt\ƶM<$LHLDXA HuH}HUHHpHEHhHEDH]LuLeMtŶM<$L艅LIDhHpA8 EHuH}HuHEH`HEDH]LuLeMtlŶM<$LLHD`A }u,H]LeMt,ŶM,$LЄHAX *LmH]HtŶL#L襄LA$@ [}uSLeLmMtĶI]HpL0 H]LeMtĶM,$LGHAX H}oH}fHxHt腗EH0L8L@LHLPH]UHHd$H]LeLmH}H ƶHE@Pt2H}# LeLmMtöI]H胃L@ H]LeLmH]UHH$pHxLeLmH}HŶHEHft=HEHu*HEHuHEƀHEǀ HEHHuHELHELMt¶I]H萂LEH}kHUHuHAoHcHUu)LeLmMt¶I]H6L }u)LeLmMt\¶I]HLH}HEHtPHxLeLmH]UHHd$H}HöHEEEH]UHHd$H]H}uH(öHExu/uH}RCuH}CHU;EE}uLH}0HH/u2uH}-hHEH}uH}ytEEEH]H]UHH$PHXL`LhLpLxH}@uH¶HEHUHuH8mHcHUHE@PqH]LeMtqM,$LHAtALmH]HtAL#LLA$ tH}tHEDLmH]HtL#LLDA$` uSH]LeMt輿M,$L`HAH u HEtHEHuHEHtH}FtHEƀHEHUHEDLmH]LeMtM<$L~HLDEA HuHEHI]HuLt(HE;EHE;E|rHc]HcEH)qDHH-HH9v絶 Hc]HcEH)qHH-HH9v貵HEHHcHHH9uõHdq踵HH-HH9v[HEHHcHHH9ulHdqaHH-HH9vg gHHEHHEHEHL HELxHEHL MtII]HsLLHEt4HEHHuH6HEHHuHUHEHUHH; t?HEHEHEHEHEH HuHHEH HuHUE.HEHEHEHEHEHEHEEHEEHELLeHELMt1I]HrLL褄H5EH}H HtHLLLH]UHHd$H]LeLmLuL}H}HuHUH`蛴HEH@H H;EtHEHxtHEH@HEHx!HUHEH@HHUHEH@Lx`HEL0HXHEH@L``MtMLqLHLHuȋEAAHEHUHUHEHHEHBHuHEHxS H]LeLmLuL}H]UHH$ H(L0L8L@H}HUHHH}bHUHPH]HcHHiHEHuYHEtEE/HELLeHELMt°I]HfpLL5H5H}蕥HHHt褃H(L0L8L@H]UHH$HLLL L(H}HHOHH}+HDž@HUHPK~Hs\HcHHIHEHu6HEHuE,HEHEHEEHEEHEH8HEDLmH@LeMtEM<$LnHLD8A H@H}qHELLuHEHHt뮶L#LnLLA$D}ԋEH0LmH]LeMt謮M4$LPnHL鋅0DA H@gH5H}gHHHtvHLLL L(H]UHH$HL L(L0L8H}HޯHHH}롶HUHP|H>ZHcHHHEHuHEHuE+HEHEHEEHEEHEHH}HELLmHEHHt L#LlLLA$D}DuLmHEH@H]HtͬL#LrlH@LDDA$ 5~H5H}蕡HHHtHL L(L0L8H]UHH$HLLL L(H}HH?HH}HDž@HUHP;zHcXHcHHHEHuE0HEHEHEEHEEHEH8HEDLmH@LeMtNM<$LjHLD8A H@H}zHELLmHEHHtL#LjLLA$E+HEHEHEEHEEHEH0HEDH]L@LeMt{M<$LjLHDꋅ0A H@H}HELLuHEHHt!L#LiLLA${H@H5( H}瞶HHHt|HLLL L(H]UHHd$H}HuH胫EEH]UHHd$H}HWHEH}EEH]UHHd$H]H}؉uHUHMLEH8HEHEHE؋;EHExH}7HH茄uTuH}OHEH}u/H}_HUH}E_HUH}V`HU HE HEH]H]UHHd$H}HuUMH HEHHjHEH u#HEH LEMUHuHE H]UHH$@HHLPLXL`LhH}HuUMH脩HDžxHUHuuHSHcHUEHpDuLmHxLeMt'M<$LfHLDpA HxH}SHEH u2HE胸 t#HEH LEMUHuHE tMuE;tE;tMEH]LeLmLuL}H]UHHd$H}uH0$HEH訄u.EEH}\HHUЋu5EEEEH]UHHd$H}uH贂HEEEH]UHHd$H}uHtHEEEH]UHHd$H}uH4EEH]UHHd$H}HuUHHEHHMH]UHHd$H}uUHMH 轁H]UHHd$H}fuUH 萁EEH]UHHd$H]LeLmH}uH(XHEL;Eu6HEULLeLmMt&I]H>L@H]LeLmH]UHHd$H]LeLmH}@uH(׀HET:EueHEUTLeLmMt~I]HI>Lt)LeLmMtv~I]H>L@H]LeLmH]UHHd$H]LeLmH}uH((HE@;Eu6HEU@LeLmMt}I]H=L@H]LeLmH]UHHd$H}HHE@EEH]UHHd$H]H}HHEE3@Hc]Hq}HH-HH9vd}]H}h;EuH}tEH]H]UHHd$H]H}H~HEE3@Hc]Hq!}HH-HH9v|]H};EuH}tEH]H]UHHd$H]H}HC~HEHgHcHq|HH-HH9v*|]4DHc]HqQ|HH-HH9v{]}}uH}tEH]H]UHHd$H]H}H}HEHHcHq{HH-HH9vj{]4DHc]Hq{HH-HH9v4{]}}uH}-tEH]H]UHHd$H}H|H]UHHd$H}H|H]UHHd$H}H|HEHEEH]UHH$HLLLLH}HuUH8|HEHEHDž HDž(HDž8HDžXHUHh&HHN&HcH`U H}H5AnSHX耷HuعHPnSHXHXH}rH}HH>AMcHX,HuعH$nSHX谸HXH}LmH}tILHcHqIyHHHH9vxH}[EẼEH}HËuHTHEHEH@HmSHHHcEH0HH0HH0LrH0H8TH8ԵH8HPH@H}йHH}^HcHX轵HuйHlSHXAHXH}HH}%6uIH}2HcHXeHuйHlSHX鶵HXH}H覉H} 4uIH}~.HcHX HuйHlSHX葶HXH}HNH}3uIH}-HcHX赴HuйHmlSHX9HXH}HH}2uIH}*HcHX]HuйH=lSHXᵵHXH}H螈H}2uIH}V,HcHXHuйHlSHX艵HXH}HFHXʳHuйHlSHXNHXHEHcP(H}H}1uYH}^*HXHXH(]HuйHkSH(ᴵH(H}HH}2uRH}H(.H(HXHuйHkSHX耴HXH}H蝄H}2uRH}H(.H(HX蛲HuйH[kSHXHXH}H<H]LeMthtM,$L 4HAhIMLHt=tL#L3LA$}LeLmMt tI]H3LhHH(HH(HX迱HuйHjSHXCHXH}H`H}1uIH}h+HcH(gHuйHjSH(벵H(H}H訅HExxtZH}(HH(HuйH\jSH(蘲H(H յH H}HHEHx0H(NH(HX諰HuйHjSHX/HXH}HLHEH@0xHt^HEHx0OHH(PHuйHiSH(ԱH(H AԵH H}HNHEHx0quMHEHx0.HcH(ݯHuйHiSH(aH(H}HHEHx0qu]HEHx0H(H(HXmHuйH]iSHXHXH}HHEHx0auMHEHx0>HcH( HuйH-iSH(葰H(H}HNHEH$D}LmH]LuHEHAHEHHHtpHHHH:0DHLHMEH ;E~AH VеH(*H8HXH} H}H`HtCHLLLLH]UHH$HLLL L(H}HuHqHEHDžPHDž`HUHp=HHcHhH}HH5{gS膁HEhH}H5gSHEhu3H}HcH}H5gS2H}9HcH}H5gSHEHcH}H5gSHEHcH}H5gSހH}HcH}H5gSH}gDH}H5gS袀H}HcH}H5hS脀H}[DH}H5hSfHE苰H``H`H}H5&hS}H}@HHIuHuH}MVEH}HcHqmHH-HH9vmHHH}EEEHEHXuE܃}}H}E;EuHc]Hq\mHHHH9vl]HcEHXHHXHHXfHXH`ĴH`AɵH`H}ȹH5fSHcUH}H5gS~H`5HuȹHgSH`蹫H`HcUH}u~H`HuȹHgSH`}H`HcUH}9~HEH$HEH@EH8LuLmHDž0LeMtkM<$L8+H0ALL8L@A H;E~ EH}AMcIqkLHHH9v3kA}EEEHEH`uE܃}}H}};EuHc]HqkHHHH9vj]HcUH}H5eS|H`cHeSHXHcEHXHHPHHXFdHPHPNHPƵHPH`HdSHhHXHH`H`HcUH}|H`蠧H eSHHHcEHHHHPHHHcHPHP英HPƵHPHPHdSHXHHHH`-H`HcUH}Y{D;e~LuLmH]HthL#L{(LLA$ HEhH}H5QdS}HEhu9HEHctH}H5YdSzHEHcxH}H5vdSzHEHcH}H5dSzHEHcH}H5dS{zHExuH}H@HHHc@H}H5dS8zH}H@HHHcDH}H5dS zH}H@HHHcHH}H5dSyH}SH@HHHcLH}H5dSy8HP-H`!H}HhHt7:HLLL L(H]UHH$pHxH}HuHhHEHEHUHu4HHcHU@H}H5 dSͤHExH}CHuH dSH}ʥHuH};{HExH}HuHcSH}舥HuH}zHExH}迣HuHcSH}FHuH}zHExH}}HuHcSH}HuH}uzHExH};HuHcSH}¤HuH}3zHEx H}HuHcSH}耤HuH}yHEx@H}跢HuHcSH}>HuH}yHExH}uHuHcSH}HuH}myHExH}3HuHcSH}躣HuH}+yHExH}HuHqcSH}xHuH}xHExH}诡HuH_cSH}6HuH}xHExH}mHuHEcSH}HuH}exHExH}+HuH3cSH}貢HuH}#xHEx H}頵HuHcSH}pHuH}wHEx@H}觠HuHcSH}.HuH}wHExH}eHuHbSH}졵HuH}]wHExH}#HuHbSH}誡HuH}wHExH}៵HuHbSH}hHuH}vHExH}蟟HuHbSH}&HuH}vHExH}]HuHbSH}䠵HuH}UvHEx@H}HuHbSH}袠HuH}vHExH}ٞHuHbSH}`HuH}uHE|H}藞HuHbSH}HuH}uHE|H}UHuHbSH}ܟHuH}Mu1H}H}HEHt83HxH]UHH$HLLLLH}HuUHHaHEHEHEHDžHDžHDž HDž0HDžPHUH`-H HcHXT H}H5SS艝HP HuйHTSHP葞HPH}aEHc]Hq:_HH-HH9v^}2EE܃EH}ILC;]~Hc]Hq^HHHH9vw^H}Y EE܃EH}HËuH9HEHEH8HSSH@HcEH(HH(HH(WH(H0ܥH0YH0HHH8H}ȹH菟HPSHuȹHRSHPלHPUH}`AH]LeMt]M4$LHDAHP蚵HuȹHPRSHPlHPHuH}HA]H}uH}@]H}(HP胚HuȹHRSHPHPH}B_H} HP;HuȹHQSHP进HPH}^H}HPHuȹHQSHPwHPHuH}HL\H}uH}]H}:HP莙HuȹHQSHPHPHuH}H[H}uH}\H}HP)HuȹHaQSHP譚HPHuH}H o]S[H}9YH}^HPҘHuȹH:QSHPVHPHuH}H+[H}u1HUHH0hH0H}aH UHuȹHPSH ٙH H}HHPZHPH}{H}u HuH}"HP闵HuȹHPSHPmHPH}HH ?ZH H}H}u HuH}#HP}HuȹHmPSHPHPH}HH YH H}裗H}u9H]LeMt&YM,$LHAhHHuH!HP喵HuȹHOSHPiHPH}HH ;YH H} H}uH}YH}HPmHuȹHZSHPHPH}HH XH H}蓖H}uZH} HH HuȹHJOSH 膗H HHH}HPH 贕HcEHHHH0HHHQH0HP譟HP*HPH5ZSH ۖH HP(HuȹHNSHP謖HPH}HHWLHELh0HEHX0HtVL#LLLA$HP誔HuȹHYSHP.HPH}HH WH H}ДH}u^HEHx0:HH ;HuȹHMSH 迕H H,HH}H艫HP퓵HuȹHMSHPqHPH}HH CVH H}H}uH}VHEHx0MHPqHuȹHaMSHPHPH}HH UH H}藓H}u5HUHH0H08HEHx0HPݒHuȹHWSHPaHPH}HH 3UH H}H}uH}UHEHx0HEH$EHLmLuH]LeAHEHHHt7THHHHDLHLM苅AH ;E~p%HđHسH 謑H0蠑HP蔑H}苑H}肑H}yHXHt&HLLLLH]UHH$HLLLLH}HuUHhUHEHEHDžHDžHUHh,!HTHcH` HEhu{ H}H5KSKXE܀}uH}(H}HH7LuAH]HtFRL#LDLA$ LmAH]HtRL#LDLA$ H}H5%USWuUHuH}DH}H5hJSTALmLeMtQI$HHLD H}H5TJSWTH}H}H5dJS7TALmLeMt@QI$HLD H}H5PJSSALmLeMtPI$HLD H}H5JSSEЃ}u"H}H5JSSH}tH}dH}H5$JS_SEЃ}u"H}H5IS?SH}H}HHHHHcHvH}H SSHHJSHtPHHH跗HALmLeMtOI$HXLDH'!HHt#H}HH@+tFH}H5CS跍H;HuȹH3DSH迎HH}QEЋEH}EfDE؃EHEHHHCSHPHcEH@HH@HH@HH@H跖H4HHXHHH}HjH.HuHISH貍HH}PEԋuH}uHًHuHHSH]HH}P‹uH}HEH$D}HEHEHLuHEHHLeMtcMM,$L HHLLEA ;E~1H}H5PSqHHuȹHPSHyHH}OEЋ]Ѓ}EDE؃EH蓊HEH@HPSHHHcEH8HHHH8kFHHsHHHPHGSHXH@HHHH}NEԋuH}uH謉HEH@HOSHHHcEH8HHHH8EHH茓H HHPHFSHXH@HH.HH}M‹uH};]~)DmL}LuH]HtJL#Lj LLDA$h H}H5LFSWPE܀}ugH}H5aFSTMEH}H5FSL#LDLA$ H}GLuAH]Ht>L#LRDLA$ LuAH]Htz>L#LDLA$ H}HAHEǀHEǀ$ H}t0H¸fHPHH=^HH5HIIHjHHjIMt2MLHLLAHEHpH0$HLߴHcH(uHuH}qHuH}tH}vH(HtH}WpHEHtyHLLLL H]UHH$`H`LhLpLxL}H}HuH3IIHiHL%viMt1LILdHLLAHEHUHuH޴HcHUuHuH}0HuH}AH}CHEHteH`LhLpLxL}H]UHH$HLLLL H}HuH}oH2HUHuHGݴHcHUH};u H}EIIH#hHHhIMtb0MLHLLAHEHpH0HܴHcH(uFHuH}XoLuLeLmMt/I]HLL H}.ZH}豗H(Ht;H}mHEHtHLLLL H]UHH$`H`LhLpLxL}H}HuH1IIHfHL%fMt.LILHLLAHEHUHuHF۴HcHUuFH}R,LuLeLmMt.I]H.LL HuH}.H}GHEHtiH`LhLpLxL}H]UHHd$H]LeLmLuL}H}uEHh/EEH}(HE芀EHEHEUH}OHEU䈐HEHPHcHq-HHHH9v-HEЋEЃ}pEfEEHEHuIEEDuLMMt -M<$LHDEAE;E~H]LeLmLuL}H]UHHd$H]LeLmH}H8.HEHu HELHELMtf,I]H LuHE( uHE( EHUHE( ( H}@ HEH}uoUHuH}AHEH}uMHEH;EuAHEHH;Eu.LeLmMt+I]HHUEBHEpHEHx HEP HEpHEHx H]UHHd$H}uH%HE@ ;Et>HUEB HEp HEHx A HEP HEpHEHx& H]UHHd$H]LeLmLuH}uHUH@@%HEHxu;HEH}u0LuLeLmMt#I]HLLHEHxHMu5H]LeLmLuH]UHHd$H}H$HEHx HEHxHEHxHE@HE@ H]UHHd$H}HuHC$HEH8u7HEHHxuHEHHxQHEH87HEHH]UHHd$H}HuH#HEH8uHEH8K7HEHH]UHHd$H}uH#}}HE@;EEEEH]UHHd$H}uH4#}}HE@ ;EEEEH]UHHd$H}H"HK6HEHEH@HEHHEH]UHHd$H}H"H5HEHEH@HEH@HEHEH]UHHd$H]LeLmLuH}HuUMLEHH"HEH8uHEH@H;EtHEH@ H;Et4H]LuLmMtMeLvߴLHA$2H]LuLmMtMeLBߴLHA$HEHH]LeLmLuH]UHHd$H}HuUMLEH(9!HEH@H;EtH}pHUH-HEH@ H;EtH}NHUH HEHH]UHH$HLL H}HuH H}t)LmLeMtLH0޴LShHEH}tHUHuHʴHcHURHEH}HG׵HH=R$HUHBHEHPHMHHBHJHEHPHMH~HB HJ(HH=RHUHBHEHPHEH XHJHBHEHPHEH -HJ HB(HH=/RHUHB HEH@ HUH HHHPHEH@ HUH HH HP(H}FH}HEH}uH}uH}HEHxHEHpHpH0#HKɴHcH(u%H}uHuH}HEHP`H(HtHEHLL H]UHHd$H]LeLmH}HuH(H})LeLmMtI]H۴LH}HEHx 迃HEHx貃HEHx襃H}HյH}uH}uH}HEHPpH]LeLmH]UHHd$H]H}@uUH LHEHxU@u}uLHEHxU@HEHcXHqjHH-HH9v HEXJHEHx U@HEHcX HqHH-HH9vHEX H]H]UHHd$H}@uUMH mHEHxMU@u}uHEHxMU@HEHx MU@H]UHHd$H}@uUMH HEHxMU@uV}uHEHxMU@8HEHx MU@ H]UHHd$H]H}@uUH l}uHEHcXHqHH-HH9vQH}HEHcXHqsHH-HH9vڋMH}@U|HEHcX Hq-HH-HH9vH}HEHcX HqHH-HH9vڋMH}@H]H]UHHd$H]LeLmH}HuH('HEHfuaHE=rT-t rHvAHELfHELfMtI]Hv״LP uHuH}H]LeLmH]UHH$`H`LhLpLxL}H}HQHEHUHuHôHcHUH}HEHfu|HEumH}HuDHEHEHED$fHED fHELfHEHfHtL#LMִLDDHMA$X H}jTHEHtH`LhLpLxL}H]UHHd$H]LeLmH}H HEHHEHfu7HELfHELfMtI]HմLH]LeLmH]UHH$PHXL`LhLpH}HuUHnHDžxHUHuHHcHUHuUH}HEff=jf-Jf-f- ef-Nf-Qf-:f-f-CtH HEf8uHuLuALmMtI]H)ԴDL H}Hx-BHxHtH[HH-HH9vPLuLmMtMeLӴLA$ 7H9u)LeLmMtI]HӴL H]HEf8uHH;Hu`HEf8%tHpt!HEf8'tHtEE}t HHH}qHHEf8uRHEHfHH}xHELfHELfMtI]HjҴLX H2HxPHEHtHXL`LhLpH]UHHd$H]LeLmH}H ;HEH@HftGHEH@LfHEH@LfMtI]HѴLP u HEH@fH]LeLmH]UHHd$H}HHEH@HfuHEH@HfEEEH]UHHd$H]LeLmLuL}H}H03HEH@HfuWHEH@LfHEH@IHEXHEH@LfMtM,$LдLLAH]LeLmLuL}H]UHHd$H}HHEH@Hfu+HEH@HfHEHPHEHHEHp(jH]UHH$`HhLpLxH}H HEHUHuR޵HzHcHUHEL`HELhMtI]HcϴL@ HcHqHEHxHuY=HEHEHuHtHvH}HuH=tH9H}uEEH}!MHEHtCEHhLpLxH]UHHd$H]LeLmH}H(HEL`HELhMtI]HcδL@ EEH]LeLmH]UHH$`HhLpLxH}H\HEHUHuܵHʺHcHUHEL`HELhMtI]HʹL8 ~HEL`HELhMt I]HxʹL8 HcHEHxHuy;HEHEHuHtHvH}HuH=?H9tEE޵H}PKHEHtrEHhLpLxH]UHHd$H}HuHHEHp0H}蒀H]UHH$`H`LhLpLxH}HuHHEHUHuڵHHcHUHEHp0H}oH}Hu2:HEHEHuHtHvH}HuH=MHHH-HH9v8 LuLmMt MeL˴LA$ vݵH}IHEHt޵H`LhLpLxH]UHHd$H}HuHx HEHUHuٵHHcHUu@HUHE fB(HUHE$fB,H}Hu8HuHEHx0vIܵH}HHEHt޵H]UHHd$H}HuH HUHEH@ HfHE@HH]UHHd$H]LeLmH}HuH( LmLeMts I$HʴL H]LeLmH]UHHd$H}HuH# HUHE@( fHUHE@,$fH]UHHd$H}HuH HUHEHfHB HE@H H]UHH$HLLLH}HuHUHm H}t)LmLeMtP LHȴLShHEH}t!HUHu{׵H裵HcHUvHEHUH}HtLuALmMtI]HuȴDLHEH}uH}uH}HEHڵHEHpHhH(ֵH촴HcH u%H}uHuH}HEHP`ٵI۵ٵH HtܵnܵHEHLLLH]UHHd$H}uHUHMH( HEx`u>}|HEHxX ;E~EHEHU@dHEUE<}|HEHxX荈;E~EHUEHEHU@dEEH]UHHd$H]LeLmLuL}H}HXHEx`uHEHxXGHcHq'HHHH9vHEE}EEEHUBdHEHELxXDuHHEL`XMtMM,$LŴHDLE؉A HEpdHEHxXUH6E;E~yHEHxXHcHq?HHHH9vHEE}EEEHUBdHEHEHXXD}IHEL`XMteM,$L ŴLDHߋEЉA HEPdHEHxXuH6E;E~yHE@PH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHPHEpPHMHUH}uHUHBXHEL}DuDmHEHXXHtrL#LĴDDLH}A$ HE@PEHEHcXPHqHH-HH9v8HEXPEEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuUHPHEHUuH}HuQHEHPXHUHEIDuDmHEHXXHt`L#LôDDLH}A$ H}HAH]LeLmLuL}H]UHHd$H}HHEx`uHEHxXNEHEHxXEEH]UHHd$H}uH HEHUuH}HuHEHxXUud.HEHEHEH]UHHd$H]LeLmLuL}H}uHUHPHEHUuH}H%uNHEHPXHUL}DuDmHEHXXHtL#LxDDLH}A$ HH]LeLmLuL}H]UHHd$H}HwHh SHHH=/~HH5HѵH]UHHd$H}uHUH HEHUuH}H)uHEHxXHMUu1HH]UHHd$H}HH SHHH=o~HH5HеH]UHH$HLLH}HuHUHMDEDMH8H}t)LmLeMtLHLShHEH}tIHUHpCεHkHcHhHEH}H1HEHUHPXHEЊUP`HEЋUPdHEHUHPhHEHxhuHEHpdHEHxhHU?HEH}uH}uH}HEHеHhHpHPHg͵H菫HcHu%H}uHuH}HEHP`aеѵWеHHt6ӵӵHEHLLH]UHHd$H]LeLmH}HuH(gH})LeLmMtJI]HLHEHxhuHEHpdHEHxhiH}HÉH}uH}uH}HEHPpH]LeLmH]UHH$HLLLLH}HuHHDž HUHu˵HHcHUSHuH=3^u-HpH0˵H譩HcH(H}肖H]LeMtM,$L蒼HAEH]LeMtM,$LeHA;E|,LeLmMtI]H4LEHc]HqHHHH9vkH}EEED}LuL H]HtL#L襻LLDA$L DuLmH]HtL#LjLDLA$ DuLmH]HtL#L6LDA$IDmLuH]Ht]L#LLDLA$(;E~ ̵H}ÔH(Ht2ε HuH}̵H 8HEHtεHLLLLH]UHHd$H}uHHSHHH=L~ǽHH5HʵH]UHHd$H}uHUH@HSHHH=~sHH5HqʵH]UHHd$H]H}uUH0EHE苀;E~IH}/iHHu/uH}肠HEH}uHE؃x(tEEEH]H]UHHd$H]LeLmLuL}H}؉uUHMLEHx5EHEHED}DuLmH]Ht HIL謸LDDHMA$ EHEHEHEHEHEDu]L}LeMtI$ILVLDHMLEEAA H]LeLmLuL}H]UHH$HLL L(H}HuUMH+H\[HH}8HxH8`ƵH舤HcH0HEHuHEHuvE,HEHEEEEEH}H5HELLeHELMtlI]HLLH}Hu5ȵH5sZH}2H0HtAʵHLL L(H]UHHd$H]LeLmH}uUMH8}t@EuH}u)LeLmMtI]HCL H]LeLmH]UHH$HLLLLH}ȉuUHMLEDMH HEHuHE@PtEH DuDmH]LeMtM<$LuHDD A HEȀu]EH@HEH8DuDmH]LeMtmM<$LHDDH8@AA EЉ$HEHLELMMUHuHE HEȊEHEƀHUHhBõHjHcH`uJD}ЋEHDmH]LeMtM4$LJHDDA ƵHEȊUĈH`HtǵD}LuDmEH(HEH0LeMt.I$HҳH0(DLE EHXHEHPHEHHDuD}H]LeMtI$ILiHDDHPLHXAA HLLLLH]UHHd$H]LeLmLuH}؉uUHMLEHX)HE؀uLeLmMtI]H觲LfH};RuSHEHt?HELHELMtI]HGLtAHuH}زHE؀uHELHELMt6I]HڱLHE؋HEHEǀHHEHH@`EHEHLAHEHLMtI]H\DL@EHEx uHEHU؋t;HE؃u]HHH=vh]HEHcH}arHcHqH9|]HHH=v$]HE؋HHEHDEHuHU:IHE؀uHEHLDeHEHLMtI]H8DL@HELHELMtZI]HLHU؋EԉHH]LeLmLuH]UHHd$H}HuUMH HEHƋMUH}IHE苀 ;Et$HE苀 ;EtHuMUH}BH]UHHd$H}uUHMH }HEH u#HEH LEMUHuHE H]UHHd$H]H}@uUMH(}tH}x^HHtHEH MU@uHEH u#HEH DEMUHuHE H]H]UHHd$H]H}@uUH |}tH}]HH0tHEH U@uDEMUH}@ H]H]UHHd$H}@uUHHEH U@uyDEMUH}@H]UHHd$H}@uUMH EU@uH}hHEH MU@uHEH u#HEH DEMUHuHE H]UHHd$H}@uUHE@uH}NHEH( uHEH0 MUHuHE( H]UHHd$H}@uUHE@uH}>HEH8 uHEH@ MUHuHE8 H]UHHd$H}@uUMH -EU@uH}8HEHH u#HEHP DEMUHuHEH H]UHHd$H]LeLmH}HuUH0HEHƋUH}1HEf8 tUHE苐HE苰H}wu2LeLmMt]I]HL HEfH]LeLmH]UHHd$H}HuUMH HEHHJ)HEH u#HEH LEMUHuHE H]UHHd$H}HuUMH HEHH(HEH u#HEH LEMUHuHE HEHHEH0(HUE HUE H]UHHd$H]H}uUH(HE胸| tUuH}U}uEE}uHc]H}OHcHqHH-HH9vH}A"tPHEHctHc]HqHH-HH9vEHE苐xH}AHc]H}OHcHqKHwH8\HcHq.HH-HH9vH}!tPHEHcxHc]HqHH-HH9vHE苰tH}AHE耸u H}c/H]H]UHHd$H}@uUMDEH(}u5HEH u#HEH DEMUHuHE 3HEH u#HEH DEMUHuHE H]UHHd$H}uUHMH ]HEHx u#HEH LEMUHuHEx HMUuH}7gH]UHHd$H]LeH}uUH(HEH h;EuH}gHEH hH}g;E|LH}gLceIqLH-HH9vEH}@>JH}gHcHqHH-HH9vFA؋MH}@H}yg;EuH}fgHEH H}Kg;E|LH};gLceIqLH-HH9vEH}@jJH}fHcHqHH-HH9vrA؋MH}@H]LeH]UHHd$H]LeLmLuL}H}HPHEDLmH]HtL#L艤LDA$` t7HEH}荋HEH}uH}$tEHEHUHEDLmH]LeMtSM<$LHLDEA }t EEHEHUHED]LuLeMtM<$L莣LDE؉A HEHu1HEHHEHEDEHuHEH]LeLmLuL}H]UHH$pH]LeLmLuL}H}ȉuUHMLELMH+HEH$HEHEHEHEEHED}LuȻLeMtI$IL萢ALDEHMLEA H]LeLmLuL}H]UHHd$H}uUH EuH}pEHEHX u#HEH` LEMUHuHEX EH]UHHd$H]LeLmH}uH(EH}*LmLeMtI$H芡L@H]LeLmH]UHHd$H}uUMH HEHh uAHEHp DEMUHuHEh HEuUuH}H]UHHd$H}H'HH=~H1HEHEH]UHH$HLLH}HuHUHH}t)LmLeMtLHLLShHEH}t&HUHuҮHHcHU{HELeLmMt?I]H㟴L HUH HUH}HHEH}uH}uH}HEHkHEHpHhH(H>HcH u%H}uHuH}HEHP`蛲H Ht峵HEHLLH]UHHd$H]LeLmH}HuH(H})LeLmMt޵I]H螞LHEH FH}HEH}uH}uH}HEHPpH]LeLmH]UHHd$H}@uUHpE@uH}讖H]UHHd$H}uH4EH}@H]UHHd$H}uHߵEH}@SH]UHHd$H}@uUMH ߵEU@uH}踉H]UHHd$H}@uUHpߵE@uH}~H]UHHd$H}@uUMH -ߵEU@uH}(H]UHHd$H]LeLmLuL}H}@uUH`޵}uH]H}4^;H}^H} ^HcHqܵHHHH9vܵHEHE苐HUDuDmH]LeMt=ܵM<$LᛴHDDEЉEAA H]H}4];H}]H} ]HcHq+ܵHH-HH9v۵HEHEDDuDmHEHELeMt}۵I$H!H}DDDEA H]LeLmLuL}H]UHHd$H]LeLmLuL}H}@uUMDEH`ܵEHEЋEHEDuDmH]LeMtڵI$ILlHDDEȉEAA H]LeLmLuL}H]UHH$HLLLLH}؉uUHMDEH0ܵHDžpHUHusH蛆HcHx\HE؃t+Eu HEHL@DMUuH}HEHHEHHHH}UuH}uHEHL@UuH}UHcHH!HH!H ֋UHcH HH!HH!H H}Y:u#HEHL@DMUuH}e4HExuHE؋;E~ }tHE؃HEHcHcUH)qصHqصHhHHhHHhkҴHhHps Hp4HpH`HUHHXHBH@D}DuH]LeMt׵M,$L著HDDHXL@L`A DmD}LuH]Ht׵L#LELDDA$P urHUHHPLzDuDmEH(HEH0LeMt?׵I$H㖴H0(DEHPM oHEHHHLxDuEH8]HEH LeMtֵM,$LrH ދ8EHHMA (Hp|HxHt蛩HLLLLH]UHHd$H}HuH 3صHEH8tpHEHHH="nxbHEH}S)HuH} dH}u H}iH}WHExuH}KH}"H]UHHd$H}@uUHMH(|׵HEH8t$HH= n?HUHHEH8HuZuHEH8HUHuBZ*HEHDMDEHUHH=~zHEHEH]UHHd$H}HuUMH(ֵHEHH HEH Uu脭HEH}uHEHpH}qH]UHHd$H}uHDֵHEH UH}@HEHEH]UHHd$H}uUH(յHEHEH UuìHEH}u HEH@HEHEH]UHHd$H}uHյHEH UH}@HEHEH]UHH$@H@LHLPLXL`H}HuHյHDžxHUHu]HHcHUH}]H}褏EEHpp}EEEH}nEH}bEH}HxoLxDm]LeLuMt]ҵIHhHhLDLHh p;E~oH}趐衣HxHEHtH@LHLPLXL`H]UHHd$H}uUHMH(ӵHEH UuwHEH}uOHEHxu HEHxPH}HuH=`֡kHUHBHHEƀ zH}uqHHEH}HuH=֡HUHBHEHHEH@HEH HM؋UuHHEƀ H]UHHd$H]LeLmH}H {ҵHEH@uyHEH@HU;Bt`HEH@HU;BtGHEH@( t1HEL`HELhMtеI]H襏L@ HEPHEpHEHx!H]LeLmH]UHHd$H]LeLmLuH}uHUH@ѵEHUAHHH=i~AHELuH]LeMtMϵM,$LHLAH}軉H]LeLmLuH]UHHd$H}uUHMH(еHEH UuǧHEH}uHEHUHP:HEH 謭HEHEHUHPHEH HM؋Uu¨H]UHHd$H]LeLmLuH}uHUH@@еEHUAHHH=~AHELuH]LeMt͵M,$L衍HLAH}kH]LeLmLuH]UHH$HL L(L0L8H}HuHzϵHDžxHUHu轛HyHcHUWH}mEH}]NHcHq}͵HHHH9v͵Hhh}%EEEH}6NHcHq͵HH-HH9v̵HXX}EEEDuDmH]LxL}MtL̵IHPHP拴LHDDHP Hxu0Hc]Hqb̵HHHH9v̵]䋅X;E~Yh;E~uH}UH}LHcHq˵HHHH9v˵Hpp}mEfDEEH}LHcHq˵HHHH9v8˵H``}EEEDm]LuLxL}MtʵIH@H@gLLDH@ HxuxuH}$uH}Dm]LeLxL}MtVʵIHHHHLLDHH HxH}`;E~p;E~H}?zHxHEHtHL L(L0L8H]UHH$HLLLLH}HuHUHHV˵HEHEHDžHDž@HDžHHUHppHuHcHhH}HFH}H5R6UEH9}oUԋEԃEfDEԃEHEHPHRHXHRH`HPH}عH| UEH9}UЋEЃE@EЃEH}7HHuH]LmMtǵMeL蚇HA$ ;E~uH}mEH}-7HËuH?ILTt}tHE胸H}6HËuHHX0H@HhH@HHH|HHHuH}HEHHyRH H}q6HËuH胢HX0H@H`hH@HHZHH(H=RH0HRH8HH}عHJD}DuLmHHLeMt\ƵI$HHHLDDH HHHH@VH@HuH}HEHHSRH D}DuLmH@LeMtŵI$HHZHLDDH H@HH HH(HRH0HRH8HH}عHUFDuDmH]LHL}Mt ŵIHH规LHDDH HHHH@H@HuH}?HEHHRH Dmԋ]LeL@L}MttĵIHHLLDH H@HHHH(HRH0HURH8HH}عH E;EuHuH}HtRW;E~HuH}HR.HEHPHTRHXHRH`HPH}عH{;E~HEHPHRHXHRH`HPH}عH(胃HHUHuH{HH@HHH}H}HhHtĕHLLLLH]UHH$`H`LhLpH}HuHUH}jH+ĵHEHUHuqHnHcHxH}HGH]HtH[HH-HH9v}E@EELmHcUHH9vLceLH}#CD%< , t>,t%,,,,H}H5>R}bLmLceIqiLHH9vLH}C|% tH}H,H}H5RH}H5RvH}H5RdH}H5RRH}H5R@LmHcUHH9vnLceLH}Ct%H}غHEH0H}HUع;]~_蒑H}H}HxHtH`LhLpH]UHH$PHPLXL`LhLpH}HuHUH}HmHUHu軍HkHcHUHUBHEHEPHxHELpLmHEL`MtM<$L~MLxƋEA HuH yH<HuH \HHuH ?HH}Hu"e H}HuH}HHEHtjHPLXL`LhLpH]UHH$0H8L@LHLPLXH}HuHڿHEHUHu HHjHcHUHuH=~~ipuH}wHuH}Z[H}>HcHqHHHH9vcHxx}/EEEH}~>HcHq^HH-HH9vHpp}EEEDuDmH]LeL}Mt藼IH`H`1|LHDDH` Lm]DuLeL}MtIIHhHh{LDLHh p;E~Kx;E~H}@? HuH}YkH}HEHt䎵H8L@LHLPLXH]UHH$HLLLLH}uHpKHEHUH@莉HgHcH8.uH}hHHuH~DLeuhHòHuH]HuH}L_yH}H}HEHtzHhLpLxLuH]UHHd$H}؉uUMLEH(jHEH u'HEH LMDEMUHuHE H]UHH$HL L(L0L8H}ȉuUHMLEDMH̨HDž`HUHp uH4SHcHhEH@DuLmH`LeMtiM<$L fHLD@A H`H$EHXHEHPHEHHDm]LuLeMtM<$LeLDHPLHXAA XwH`HhHtxHL L(L0L8H]UHH$0H8L@LHLPLXH}ЉuUHMLELMH,HDžhHUHxlsHQHcHptEH`DuLmHhLeMtɤM<$LmdHLD`A HhtLMHMLEUuH} vHh]HpHt|wH8L@LHLPLXH]UHH$HL L(L0L8H}ȉuUHMLEDMHܥHDž`HUHprHDPHcHhH} HH^u DMHMLEUuH}UHuH}舚EH@DuLmH`LeMt/M<$LbHLD@A H`H$EHXHEHPHEHHDm]LuLeMtŢM<$LibLDHPLHXAA tH`rHhHtuHL L(L0L8H]UHH$@H@LHLPLXL`H}uUHMHHEHDžpHUHu/pHWNHcHxHEH uHMUuH}EHhDuLmH]LeMtgM<$L aHLDhA uH}HHHpHZHpH}Ht HEKuH}GHHpHZHpH}Ht HE HEBrHp޴H}޴HxHtsH@LHLPLXL`H]UHH$@HHLPLXL`LhH}HuUMHHDžxHUHuWnHLHcHUEHpDuLmHxLeMt跟M<$L[_HLDpA HxH}ݴHEH u#HEH LEMUHuHE pHx/ݴHEHtQrHHLPLXL`LhH]UHH$ H L(L0H}HuHȠHDž8HDž@HDžPHDžpHUHulHKHcHx3HuH}.HEhH}H5RRHEhuEH}MHcHqmHH-HH9v}EEEH}6AMcIqLH-HH9v踝A}FEfDEEHEH UuQvHEH}uHEHpHp8HpuLcmIqzLH-HH9vDmHcUH}H5REHpڴHRHXHcEHHHHHHHH謖HHHPHP1HPH`H̨RHhHXHHpV޴HpHcUH}肮HpڴHORHXHcEHHHHPHHH镴HPHPHPnHPH`H)RHhHXHHpݴHpHcUH}迭HpCٴHRHXHcEHHHHPHHH&HPHP.HPHPH`HRHhHXHHpܴLpHEHpHPHPH8-H8H@H@H}LD;e~;]~ekH8tHE HEH;Er_HE8 uOHE8 uDHE8 u9}u1HE0H0JشH0HuH}й!ϴHEHEH;EE;EtE;EtHEHEHDmH]ALeMt/M<$LNDHDLA L}DuDmHEHH]HtݎL#LNHDDLA$ HuHUH}4`H0̴H}̴H}v̴H}m̴HHHtaHLLLLH]UHH$@HHH}HuHUH}H̴H HEHDžPHDžXHUHh6\H^:HcH`ndH}Hu̴H}tGH]HH}1ܴH]H}&?HEH}tH}H;HEH}tHMHEH)Hq胍HUHEH)HqmHuHXݴHXH}fE HuH}u~HUHEH)HqHuHEH)HqH} uHP|HPHXHXHUHEH)Hq輌Hus]HPMHX!ʴH}ʴH}/H`Ht._HHH]UHH$@H@LHLPLXL`H}uUMH赍HDžxHUHuYH 8HcHUHEHh uMUuH}蟩}tmuH}&2HHxHDHxHpD}DuLmH]Ht L#LJLDDHpA$ kuH}1HHxHDLxDuDmHEHhH]Ht蝊L#LBJHhDDLA$ \HxYȴHEHt{]H@LHLPLXL`H]UHH$HLLLL H}HuUH狵HDž0HDž8HDž@HDžPHDžpHUHuWH&6HcHxrUHuH}$6HEhuMH}H5"R E}u-H}H57R EfHpǴHMRHXHcEHHHHHHHH炴HHHPдHPlHPH`HRHhHXHHpʴHpH}<EHp=ƴHRHXHcEHHHHPHHH HPHP(дHPHPH`H`RHhHXHHpɴHpH}uE܋uH} u0uH}! uH@LŴHRHHH8H/ŴHHc}عH7޴H8HPH“RHXHHHH@ ɴH@H}HHPNHPHhHhH0H0Hp:HpH(D}DuLmH]HtpL#LFLDDH(A$ Hc]Hq螆HH-HH9vA]؃}WH0H8ôH@ôHPôHpôHxHtXHLLLL H]UHHd$H}HwHEHAHEƀ H]UHH$HLLLLH}uUHMH HDžHUHuGSHo1HcHUiLmLeMt輄I$H`DLP t$HUHE( ( HhH(RH0HcH EHDuLmHLeMt,M<$LCHLDA HHuѴHuJHEHD}DuLmH]HtʃL#LoCLDDHA$ 2UHUHE( ( H HtVHMUuH}THFHEHthVHLLLLH]UHH$HLLH}HuHUH䄵H}t)LmLeMtǂLHlBLShHEH}t'HUHuPH/HcHU|HEHUH}H_HEH@@ HEƀHEǀhHEH}uH}uH}HEHSHEHpHhH(5PH].HcH u%H}uHuH}HEHP`/ST%SH HtVUHEHLLH]UHHd$H]LeLmH}HuH('H})LeLmMt I]H@LHEH H}葪HEH H}}H}H}H}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuH}uH0TDuH]LeMt7LDLHP `;E~HH}HUHH5XqH}ӌHpHtRJH(L0L8L@LHH]UHH$0H0L8L@LHH}HuUMDEDMHx ~Eċ~Eȋ~EH}HUHhDH#HcH`<HyHPHXHPHXMH}AH HcHqrvHH-HH9vvH}jH}QHHQt5DuLeLmMtuI]H\5LD wZH}HH}ILhAMcIquLH-HH9vjuDH迢H}HH;EFH}@cH`Ht"HH0L8L@LHH]UHH$ H L(L0L8L@H}HuHvHDžpHDžxHUHuBH HcHUHEHcXHqtHHHH9vJtHEXHEHU@;B|cLmH]HtsL#L3LA$t.HExu~LeH]HtsL+LY3LAtNL}ALxH]HtwsL#L3LDLA$HxtLuLmH]Ht2sL#L2LA$A;F0LeLmMtsI]H2LHUBHEHxGHHNueaHEHx#IHEHxIL舕HcHqrHHHH9vrLHEHxHHNAMcHELhHEHXHt&rL#L1LA$ HcLqcrHUHcRH92fDHEHxKHHWHEHx3HHXNAMcHELhHEHXHtqL#L;1LA$ HcLqqHUHcRH9zUHEHxHU;B|=HEDpHELhHEHXHt"qL#L0LDA$ HExtHExu}H]LeMtpM,$L{0HAHcHqqHHHH9vpHhh}EEEHEHxHHLuHEL`HEHXHt*pL+L/LA ;E~HEHxЋuE}}HEHxPHËuHbKHP0HXDuL}HpLeMtoM,$LL/HLDALpHXLXMtkoM,$L/HLAD}LuLxH]Ht.oL#L.LLDA$HxHPHEHXDuAHEL`MtnM,$L.DDHHPA h;E~;HEHcXHqnHHHH9vnHEXHEHcXHqnHHHH9v]nHEXH}EHc]HEHxHcHqknH9;Hc]HqUnHH-HH9vmHEHxILeH]HtmL+LZ-LAHcHqmHH-HH9vmH``}EEEDmLuHxLeMt(mM<$L,HLDAHxHHHELxЋ]DuHEL`MtlM,$L,DLHHA `;E~Y4>Hp航Hx|HEHt?H L(L0L8L@H]UHHd$H]H}H 3nHExuHEH@HcHqjlHEH}| HHUHEHc@Hq=lHEH}H]HHqlHH-HH9vk]fHEHc@HqkHEH}HUHHEH@HcHqkHH-HH9vTk]EH]H]UHH$HLLLLH}HuUMDEDMH}H8lHUHp9H6HcHhHU HH=]>HEHPH8HHcHukE؈EHE舅DuLmH]LeMt jM<$L)HLDADA f;H}]$HHthHHHH9vgHxx}+EEԃEԋuH}kHEH}udH}%"u }tHHEHx0HLLmH]Ht8gL#L&LLA$P}tD}LuظH`HLeMtfM,$L&Hދ`LDA LLmH]HtfL#LJ&LLA$Px;E~uH}H}@H}HLLmH]Ht8fL#L%LLA$P7H} HHt 9HE؋EOHE؃9HEHcHq,fHHHH9ve]E HE؋E̋]H}AMcIqeLH-HH9vyeDH9}]ԋEԃE@EԃEH}HH@u}uHH=a]lHEHH03HXHcHH}HcHqdHH-HH9vdHpp}EEЃEЋuH}+ HEH}tH}uD}DuLmHLeMtdI$HhHh#HLDDHh LH]LeMtcM4$L]#HLAPp;E~0uH}H}@'H}HLLmH]HtLcL#L"LLA$P4H}HHt46uH}SH@HuH}9HuHjuH}HHHlLLmH]HtbL#LF"LLA$P;E~HLmLuH]Ht`bL#L"LLA$3H}HHtH53HHPHt&5H8L@LHLPLXH]UHH$H}HuUMDEH}ٟHcHUHx/H HcHpHUHH=|]5HEHXH/H HcHuDEMUHuH}2H}HHt4q2H}ȞHpHt3H]UHHd$HbH~HEHg~HEHuHH=SmRNH]UHH$pH}HuHMbHEHDžxHUHu.H HcHUHEx]tHEHp H}勤 H}Hx]HxH}-HEHxxu6H}H5lR`HEHEHLEHMHUHuHEPxHuH} y1Hx\H}SHEHtu2H]UHHd$H]LeLmH}HuH('aHE@HHELhHEL`Mt_I$HLpH]LeLmH]UHHd$H}H`HEHx0tH}a E HEH@0EEH]UHHd$H]LeLmLuH}HuH0S`HEHx t@HEx]u4H]LuLmMt"^MeLLHA$HEHp H}H]LeLmLuH]UHHd$H}H_HEHx(tH} E HEH@(EEH]UHHd$H]LeLmLuH}H0W_HEHx HEH}uAHELHEL`8HELh8Mt]I]HLLFHEHxHHELp8HELh8Mt\MeLtLHA$HE@HH]LeLmLuH]UHHd$H]H}uH p^HE@HEHEHxHH}-HƋUH_HEUPHH]H]UHHd$H}H^HEH@8HEHEH]UHHd$H}H]HEHxPtH}Q E HEH@PEEH]UHHd$H}H]HEHx0EEH]UHHd$H}HW]EEH]UHHd$H}H']HEHx(EEH]UHHd$H}H\HExHEEH]UHHd$H}H\HEHxPEEH]UHHd$H]H}uEH8\HE@HEHEHx4HH}HHEUH'HEUPHH]H]UHHd$H]LeLmH}uH(\HEHx0t(H};EtgH]oHUHB0HEH@0;Et>HEHP0EHELhHEL`MtYI$HKLpH]LeLmH]UHH$pHpLxLmH}HuHK[HEHUHu'HHcHUHEHx t*HEHp H}̆HuH}ϦHupHEHx u HEHx 軇H}HuH=]ֆHUHB HE@]HEL`HELhMtXI]H.Lp*H}WHEHty+HpLxLmH]UHHd$H]LeLmLuL}H}HuHhZHEH}H>$HUHHUHEHHHUILuHdRHLeMtWI$ILVHLLHMLELMAH]LeLmLuL}H]UHHd$H]LeLmH}uH(HYHEHx(t(H}";EtgHlHUHB(HEH@(;Et>HEHP(EHELhHEL`MtVI$H{LpH]LeLmH]UHHd$H]LeLmLuH}HuH0XHELp8LeHELh8MtcVI]HLL`t8HELp8LeHELh8Mt%VI]HLLH]LeLmLuH]UHHd$H]LeLmH}uH(WHE@@;Et;HUEB@HELhHEL`MtUI$H6LpH]LeLmH]UHHd$H]LeLmH}uH(8WHE@D;Et;HUEBDHELhHEL`MtUI$HLpH]LeLmH]UHHd$H]LeLmH}uH(VHEHxPt(H}";EtgHiHUHBPHEH@P;Et>HEHPPEHELhHEL`Mt7TI$HLpH]LeLmH]UHHd$H]LeLmH}@uH(UHE@\:Et;HUEB\HELhHEL`MtSI$HULpH]LeLmH]UHHd$H]LeLmH}uH(XUHE@X;Et;HUEBXHELhHEL`Mt"SI$HLpH]LeLmH]UHH$`HhLpLxLuH}HuHTHEHUHu H"HcHUHuH=H~CuH}H}H}]H}rH}HuLuLeLmMtRI]HLLH},H}H}HH},HEp@H} HuH}:H#H}蟏HEHt$HhLpLxLuH]UHHd$H}HuHcSHEHH5m^R谏H]UHHd$H}H'SEEH]UHHd$H]LeLmLuH}H0RHEHxHu=HEHxHIIMtPMuLULA EEEH]LeLmLuH]UHHd$H}HWREEH]UHHd$H}H'RHEH@HEHEH]UHH$HLLLH}HuHUHQH}t)LmLeMtOLHULShHEH}tHUHuHHcHUHEH}HlHEHUHPHE@HIHfL%fMtOMLHLA8HUHB8H}nHEHH8HUHHA8HQ@HE@@HE@DHE@]HEH}uH}uH}HEH HEHpHhH(HHcH u%H}uHuH}HEHP`E!H Ht"j"HEHLLLH]UHHd$H]LeLmH}HuH(OH})LeLmMtMI]H> LHEHx8u HEHx8HEHx0u HEHx0bHEHx(u HEHx(bHEHx u HEHx |HEHxPu HEHxPbH}H3H}uH}uH}HEHPpH]LeLmH]UHHd$H}HNHEHx0tQHEHx(tDHEHx t7HExHu+HEHxPtHEx@tHExDtEEEH]UHHd$H]LeLmH}HuH(NHE@xLmLeMtKI$H LpH]LeLmH]UHHd$H]LeLmH}H(MHEHx@t.LeLmMtzKI]H LE HEH@@EEH]LeLmH]UHHd$H]LeLmH}H( MHEHxHt.LeLmMtJI]H L E HEH@HEEH]LeLmH]UHHd$H}HLEEH]UHHd$H}HWLHEH@pHEHEH]UHHd$H}H'LHEHpH=A~uHEHpH=A~H@8HEHEHEH]UHHd$H]LeLmH}H(KHEHxPt.LeLmMtII]H. L(E HEH@PEEH]LeLmH]UHHd$H]LeLmH}H(KHEHt.LeLmMtHI]HL0EHEHEEH]LeLmH]UHHd$H]LeLmH}H(JHEHt.LeLmMtgHI]H L8EHEHEEH]LeLmH]UHHd$H}HJHEHt E.HEHtH}3EHEHEEH]UHHd$H}HIHEHHEHEH]UHHd$H]LeLmH}H(KIHEHx`t.LeLmMt*GI]HL@E HEH@`EEH]LeLmH]UHHd$H}HHHEHxht E HEH@hEEH]UHHd$H]LeLmLuH}HuH0cHHEHt4H]LuLmMt;FMeLLHA$PHEHH}H]LeLmLuH]UHHd$H]LeLmLuH}HuH0GHEHt4H]LuLmMtEMeL?LHA$XHEHH}fH]LeLmLuH]UHHd$H]LeLmH}H(+GHEHxXt.LeLmMt EI]HLHE HEH@XEEH]LeLmH]UHHd$H]LeLmH}H0FHEH?t ErHEHxht.LeLmMt\DI]HL`E HEH@hE}|"H}HEH}u H}>EEH]LeLmH]UHHd$H}HEHEHx@EEH]UHHd$H}HEHEHxHEEH]UHHd$H}HwEHExxEEH]UHHd$H}HGEHEHxPEEH]UHHd$H}HEHEHEEH]UHHd$H}HDHEHEEH]UHHd$H}HDHEHx`EEH]UHHd$H}HgDHEHEEH]UHHd$H}H'DHEHEEH]UHHd$H}HCHEHEEH]UHHd$H}HCHEHxXuHEH@X8tEEEH]UHHd$H}HWCHEHxhEEH]UHHd$H]LeLmLuH}uEHXCHE@xEH}HH}HEUH}HUEBxHELp0EE؋]HEL`0Mt@M,$LNELAH]LeLmLuH]UHHd$H]LeLmH}uH(HBHEHx@tHLeLmMt'@I]HL;Et_HmUHUHB@HEH@@;Et6HEH@@ULmLeMt?I$HcLpH]LeLmH]UHHd$H]LeLmH}uH(hAHE@(;Et3HUEB(LmLeMt:?I$HLpH]LeLmH]UHHd$H]LeLmH}uH(@HEHxHtHLeLmMt>I]HkL ;Et_H THUHBHHEH@H;Et6HEH@HULmLeMt_>I$HLpH]LeLmH]UHHd$H}@uH@H]UHHd$H]LeLmLuH}HuH0?HELppLeHELhpMt=I]HWLL`t8HELppLeHELhpMtu=I]HLLH]LeLmLuH]UHHd$H]LeLmH}uH(?HEHxPtHLeLmMtHEHtKLeLmMtHELLeHELMt9I]HLLH]LeLmLuH]UHHd$H]LeLmH}@uH(;HEHx`tHLeLmMtf9I]H L@:Et_HNHUHB`HEH@`:Et6HEH@`ULmLeMt8I$HLpH]LeLmH]UHHd$H]LeLmH}uH(:HEHt+H};EthHMHUHHEH;Et9HEHELmLeMt38I$HLpH]LeLmH]UHHd$H]LeLmLuH}HuH09HELp0H]HEL`0Mt7M,$LWHLAH]LeLmLuH]UHH$`HhLpLxLuH}HuHD9HEHUHuHHcHUHEHt1HEHH}HuH}!uHEHuHEHeELuLeLmMt6I]H>LLPHuH}E!t,H}HuH=m;xdHUHH}@1SH}#tHEHtE HhLpLxLuH]UHH$`HhLpLxLuH}HuH7HEHUHu H2HcHUHEHt1HEHH}j~HuH}- uHEHuHEH$dELuLeLmMt5I]HLLXHuH}t,H}HuH=9bHUHH}@QLH}rHEHtHhLpLxLuH]UHHd$H]LeLmH}@uH(W6HEHxXtHLeLmMt64I]HLH:Et?H|IHUHBXHEH@X:EtHEH@XUH}H]LeLmH]UHHd$H]LeLmH}uH(5}tHEH4t}}HHEHxhtHHHUHBhHEH@h;EtjHEHPhE*HEHxhuHEHxhHHEH@h1HE@8LmLeMt2I$HLpH]LeLmH]UHHd$H}H4EEH]UHHd$H}Hg4EEH]UHHd$H}H74EEH]UHHd$H}HuH4HEHH5-?RPpH]UHHd$H}HuH3HEHH54RpH]UHHd$H}H3HEH;HEH}uH}蕗EEEH]UHHd$H}H73EEH]UHHd$H}H3EEH]UHHd$H}H2HEHHEH}uHE苀EEEH]UHHd$H}H2EEH]UHH$pHxLeLmH}HuH>2HEH=;}HuHEL`HELhMt0I]HL(HUHu?HgܳHcHU/H}H}DHEp(H}H}kH}HUHE@,B,H} HH}mH}H}H}H}H}H}LeLmMt/I]HLhHH}|H}@H}7H}H}HEHp0H}H}H}H}U@H}$HEL`HELhMtx.I]HL0HEHtu HuH}vHxLeLmH]UHHd$H}HuHx0HEHUHuYHڳHcHUu=HEHx0HuUH}uHEHx0Hu;H}H5;R l4H}kHEHtH]UHHd$H}Hg/HE@(ttt EEEH]UHHd$H}H/HE@HIHE@8H]UHHd$H}H.HE@HIHE@8H]UHHd$H]LeLmLuL}H}H8.L}IH"~HL%"~Mt[,LILHLLAHEHEH]LeLmLuL}H]UHHd$H]H}uH(-HEHHEH}WH;EuH}uH}xHH},HHҖEH}VHËuH踖E}}H}}@HUHE苀( ( MUH}@\HUHE苀( ߉( uH})JH]H]UHH$HLLLH}HuHUH,H}t)LmLeMt*LHeLShHEH}tHUHuH׳HcHUHEHUH}HILeLmMtD*I]HLxHUHB0HE@xIHeL%eMt)MLHLA8HUHBpH}5HEHHpHEHHQ8HA@HH=F]'HUHHE@(HE@,HEH}uH}uH}HEHHEHpHhH(HճHcH u%H}uHuH}HEHP`H Ht`;HEHLLLH]UHHd$H]LeLmH}HuH(*H})LeLmMtj(I]HLHEHx@u HEHx@=HEHxHu HEHxH=HEHxXu HEHxX=HEHx`u HEHx`}=HEHxhu HEHxhc=HEHxPu HEHxPI=HEHuHEH)=HEHuHEH =HEHuHEHHxHtH[HH-HH9vLuLmMtMeLTгLA$ NH}DuWH{LuALmMtdI]HгDL HEf8uHHEfHHH}IDtHHuTHEf8%tHt!HEf8'tHtEE}tHKIHHELHELMtcI]HϳLX HHx#MHEHtEHXL`LhLpH]UHHd$H]LeLmH}H HEH@HtGHEH@LHEH@LMtI]HAγLP u HEH@fH]LeLmH]UHHd$H}HGHEH@HuHEH@HEEEH]UHHd$H]LeLmLuL}H}H0HEH@HuWHEH@LHEH@IHEXHEH@LMt M,$L'ͳLLAH]LeLmLuL}H]UHHd$H}H'HEH@Hu+HEH@HHEHPHEHHEHpfH]UHH$pHpLxLmH}HHEHUHuڴHHcHUHEL`HELhMtb I]H̳Lx HcHq HEHxHu9HEHtH@H9H}uEEݴH}IHEHtߴEHpLxLmH]UHHd$H]LeLmH}H( HEL`HELhMt I]H#˳Lx EEH]LeLmH]UHH$pHpLxLmH}H HEHUHueٴH荷HcHUHEL`HELhMt I]HvʳLp aHEL`HELhMt I]H>ʳLp HcHEHxHu?8HEHtH@H9tEE۴H}3HHEHtUݴEHpLxLmH]UHHd$H]LeLmH}H HEHHEHu7HELHELMt I]HQɳLH]LeLmH]UHHd$H}Hg HEH[H]UHHd$H}H7 HEHH]UHH$`H`LhLpLxL}H}H HEHUHu'״HOHcHUHEHuH}Hu`6HEHEHEDHEDHELHEHHtPL#LdzLDDHMA$X HEHHuLH}ٴH}EHEHt۴H`LhLpLxL}H]UHH$`H`LhLpLxL}H}H HEHUHuմHHcHUHEHumH}Hu5HEHEHEDHEDHELHEHHtL#LƳLDDHMA$X H}eشH}DHEHtٴH`LhLpLxL}H]UHHd$H}HuHxsHEHUHuԴHᲳHcHUu@HUHEB(HUHEB,H}Hu3HuHEHx0fD״H}CHEHt ٴH]UHHd$H}HuHHUHEH@ HHE@HH]UHH$`HhLpLxLuH}HuHdHEHUHuӴHұHcHUuHEHp0H}"H}Hu2H]HtH[HH-HH9v LuLmMtMeL{ijLA$ IִH}BHEHt״HhLpLxLuH]UHHd$H}HuHcHUHE@(HUHE@,H]UHHd$H}HuHHUHEHHB HE@H H]UHH$`H`LhLpLxL}H}H5f~H}HHUHuѴHHcHUgHEHHtH[HHqHHHH9vWHEE}EDEELeI$HcEHH9v LcmLI$ǠIJ<+uLeI$HcUHH9vLcmLI$IN<+LeLuIHcEHH9vLcmLI=LHHHt6L+LLLAE;E~ӴH5=e~H}HEHtմH`LhLpLxL}H]UHHd$H}HEHEHHEHuH=]gPu HE苀EEH]UHHd$H}uHDHEH8HEHuH=Y]gu uH}H]UHHd$H]LeLmLuH}H8HEHEHHtH[HHq HH-HH9v}EfDEELuMHcUHH9vlLceLI)IK|%uLuMHcUHH9v%LceLI❴IC|% uELuMHcEHH9vLceLI螝IKD%HE ;]~HEH]LeLmLuH]UHH$HLLLL H}HuH*HEHSb~HH}/HxH8WʹHHcH0HUHEB(HUHEB,HEHp0H} =HEHHtH[HHqHHHH9vH((}QEEELeI$HcEHH9v;LcmLI$IJ<+tH&a~H}HuLeI$HcUHH9vLcmLI$虛IN<+LeLuIHcEHH9vLcmLIWLHHHtPL+LLLAHuH}uHV`~HuH}(;E~δH}:H5"`~H}H0HtϴHLLLL H]UHH$HLLLLH}HuHHZH_~HH}gH5x_~HPTH0H|ʴH褨HcH8HUHEH@ HH _~H}HPHEHHtH[HHqHHHH9vH}DžL@LLLeI$HcLHH9vZLcLLI$IJ<+tHB^~H}HuLeI$HcLHH9vLcLLI$诘IN<+LeLuIHcLHH9vLcLLIgLHHHt`L+LLLAEu EEEu EEEu EEEu EE;L~qH]~HuHPU˴H5\~H}H5\~HPHHt̴HLLLLH]UHH$PH}HuH=HEHHH HH}0H]UHHd$H]LeLmLuL}H}HuHXHEHP8HUH@@HEHEHHuWgHc]HcEH)qHH-HH9vHEHc]HcEH)qHHHH9vrHEDm]LuLeMt1I$ILҷLDEЉEAAH]LeLmLuL}H]UHH$PH}HuHHEHHH HH}H]UHH$PH}HuHmHEHHH HH}`H]UHHd$H]LeLmLuH}HuH0HEHxuGHE@t:HELpAHELhMtI]H{DLH]LeLmLuH]UHH$PH}HuH}HUHE@(HUHE@,HuHH HH}QH]UHHd$H}HuHHUHEHHB HE@H H]UHH$HLLL L(H}HHX~HH}HUHHôHHcH@JH}sHEu}HEHHtH[HHqHH-HH9v1H00}EEELeI$HcUHH9vLcmLI$蟒IJ<+uLeI$HcUHH9vLcmLI$WIN<+HEALuIHcEHH9vKLcmLILHHHtL+L観DLA0;E~E2HEHHtH[HHq HHHH9vH88}QE@EELeI$HcUHH9v[LcmLI$IJ<+tLeI$HcUHH9vLcmLI$͐IN$+L}LuIHcUHH9vLcmLI苐LHHHtL+L)LLA`LeI$HcUHH9vhLcmLI$$IN$+ALuIHcUHH9v&LcmLI㏴LHHHtL+L聱DLALeI$HcEHH9vLcmLI$|IF|+LeI$HcUHH9vLcmLI$;LHL$LuIHcUHH9v=LcmLILHHHtL+L蘰LDALeI$HcEHH9vLcmLI$蓎IN$+L}LuIHcEHH9vLcmLIQLHHHtJL+LﯳLLA8;E~H5NS~H} H@HtôHLLL L(H]UHHd$H]LeLmLuH}H0HEupH}HEH}uZLuALmMthI]H DLLeLmMtLHEH5O~HEHHMHH}HkH}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmH}HuUMHHHEHHtH[HHH-HH9v]HcEHqHEH5N~HEHHMHLmMHcUHH9vqHc]HI.HHEILmMHcEHH9v/Hc]HI셴HEADLmMHcEHH9vHc]HI誅HEAD H]LeLmH]UHHd$H}Hw=*~uOHEHHQH5QHH}HHwQH5QH}*~H]UHHd$HH~HEHuHH=QH"~HEH}HNH]UHHd$H}HHEHH=~PuHEHHEHEHEH]UHHd$H}H7HEH[H]UHHd$H]LeLmLuH}HuH@LuH]LeMtM,$LHLAHH} HEH}u:HuH} HE@PuHEuEEEHuH}1H}t#H}HEH}u HuH}H]LeLmLuH]UHHd$H]LeLmH}HuH(HE@PuH}otRHEHuH}LmLeMtI$HLL HEH]LeLmH]UHHd$H]LeLmLuH}H0GHE@Pu5HH=OdEHEHuH}DHELAHELMtI]H荣DLPLeLmMtI]HaLPHcHqHH-HH9vLuLmMtgMeL LA$`AMcIqLH-HH9vBDH}A/H}萝H]LeLmLuH]UHH$HLLH}HuHUHH}t)LmLeMtLH,LShHEH}t"HUHu貰HڎHcHUwHEHUH}HHEƀ7HUHE苀XXHE聈HEH}uH}uH}HEHOHEHpHhH(H"HcH u%H}uHuH}HEHP`겴H Htɵ褵HEHLLH]UHHd$H]LeLmH}HuH(H})LeLmMtI]H~LH}HH}uH}uH}HEHPpH]LeLmH]UHHd$H]H}uH `}| }HAQHLHEƀH}H誶H}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuL}H}H@״HEH'H}>EEEH]EvԴEHðudH]EvԴUHӰHEHELx`DuLmHEHX`HtrԴILLDLHUA$}}gHEEHELx`LuLmHEHX`HtԴHIL踓LLLA$HEDLeH]HtӴL3L|LDAHE@Pt HEUH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H8SմHEHuSEHELx`LuH]HEL``MtӴML軒HLLAHEU􉐨H]LeLmLuL}H]UHHd$H]LeLmLuL}H}H@ԴHEu6HE@P u&HEHxuHEH@@PuE@EEH]EvVҴEHðt~HELxIH]~HHS~IMtѴML虑HLLAHELuLeLmMtѴI]HaLL`}}JH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H0SӴHEHH}nH}uFHELHELp`H]HEL``MtѴML詐HLLAH]LeLmLuL}H]UHHd$H}HuHҴHEH5~HuH}H5jڏuEEEH]UHHd$H}uHUHHEH}輮!Hú~DHEHHEHP`HuH=~<H]UHHd$H}HuHUHMLEHEHHEHtH}OHuH}H}deHEHt HuH}QHEHEH}t:1`HEHUHuHMTH8%HEHxHuH} H}H}HEsHE1fHEHE10PHEHEttuHuH}E1DHuH}E1XHEttuHuH}E1ADEHEHHEHHHEHUHUHEHHEHBEH]H]UHHd$H}HuH}膖HEHUH@`HH]UHHd$HhW8uHW8 sEEEH]UHHd$H}HuHEHUHH HEЋ@@ttaHEH@HHEHUHuH}$ED$EĉD$H}E1E1101HUHyHEH@HHEHthHUHuH}8H}HEH H16HEH$DEMH}M111N-HUHHEHxHHUHH]UHH$H}HuHUHDž0HUH@(pHPNHcH8IHEHHEHu1H0H0şEHEHuHEHHHEHH}P@H}YHEH8tAHEHuHEHHHHEH@HEH0HE8H}1Q@H H(H HEH(HEH}HuHEHUHEH$HEHpLMLEHMHUH} HEHxUuDEM qH0D޳H8HtcsH]UHH$H}HuHDžHXHYnHLHcHH}Ft)HEHDžxHxHuH}>H}1t)HEHDžpHpHuH}EHEH}H}ENH}1Ҿ<EHEH@HEEH}T*HEH1HHCEH}GEEEHEHEHEH8HuUpHܳHHtqH]UHH$H}HuHUHDžHhH(lHJHcH uxENH}1Ҿ<DHEH@HEEH}L)HEH1HH;EH}?HEHEHEH8HuboH۳H HtpH]UHHd$H}HuHUHMENHE1Ҿ<HCHEH@HEEH}AEHEHEHEH8HutH]UHHd$H}HuH]UHHd$H}HuH}F`HH5̯QHEENH}1Ҿ<CHEH@HEEEH})EHEHEHEH8Hu辂H]UHH$pHxH}HuUMENHE1Ҿ<HBHEHEEEEE}t EEEHEHEH}wHH5QHHuH}H} HHEHuHEHHH9u,EEEHEHEHuH}詁8H}N Hu*EEEHEHEHuH}oHxH]UHHd$H}uUHEHP@HtHRHHcEH9+HcEHHEH5~HMHEHx@t:HE@H;E HUEBHHEH@@HcUM H]UHHd$H]H}HuHE@HgX|@EDEHEH@@HcU<uHEHp HEH8U;]HE@HgX|AEfDEHEHP@HcE<uHEHp HEH8U0q;]HEH@@HtH@HH=~%HEH5~HMHEHx@J9HEHp@HtHvHHEHx@1vQHE@HH]H]UHHd$H]H}HuHF`HEH/HEH@8@P HEH@@HtH@HHH}H}14HEH;HEHxPHEHxPÃ|HEEHEHxPudHEHtH}r0uH}O;]HEHxP8HUHBPH}Ã|7EE܃E܉H}HHEHxP<;]H}Ã|KEfDE܃E܉H}HEHtH}0uH};]H}AHEHxPuHEHxPPÃ|EEEHEHxPu,HEHtH}:0uH};]HEHxPHUHBPHuH}{H]H]UHHd$H}HuHF`HEH}/HEHtOH}l.H8H}0uH}H}DHEH@8@P u HuH}H]UHHd$H}HuHUMLEEHEH@`HEH@8@P u?H}t8H}$Eă}tuH}ȺuH}ȺEH]UHHd$H}HuHUHMLEHMHuH}A11H}u]HEHtMHuH} HEHx0HEHHHEHHHHEH}H}tH}D@ƁH}+H]UHH$HLH}HuHUHMLEH`HX1ҾHX1;H`HxHhHEHpHE(lHHxH}WHHxH5QHx~HEH@`HEHMHuH}A11'H}WHH5$QHEHH}詰EHEHEH@XHEHEHtHEH81HEH}u H}uEH}u]HEHtMHuH}HEH0HEHHHEHHHHEH}H}}uH}HEHEGLceIH}HEHHHHHcHI9EgpH}GEH}}Hc]H}HcHH9H=|HEHx tcuHEHx0H5HU1ZHEHx0HHMH5pQKHEHx HHMH5YQ,OHEHx t>HEHx HHMH5?QHEHx H{HMH58QۍHEHx(H\HMH51Q輍HEHx(HHMH5"Q蝍HEHx(HHMH5Q~H]UHHd$H}HuUHEH5 QHyzt]H}bHHu`HEHx St7HEHx uoHEHtH}tHEHx Hu(H]UHHd$H}HuUHMEHEH5QHyt[H}bHHuHEHx t5HEHx uHEHtH}!E܅u H}BE܋EH]UHHd$H}HuUHMHEH5%QHEy+H}daHxHEH}OaHHuHEHx HEHǾgHE >HEHuH}17زHuH}к%زHHMHuH}M1 H=HMHuH}M1 H}VHHHUH5ؗQSֲHEHH8HH}H51QHEHx HNjUHuH}OHǾ2 H]UHHd$H}HuUMLEHEH5QHwxH}_HHuHEHx tRHEHx uHEHt9}u HEHEHx uHEHEHx HUHuݲH]UHHd$H}HuUHMDEHEH5IQHwH}0_HHuHEHx HEHx uHEHtjH}HEHAղHHEH}}EHE8EĉEH}]FHHUH5QEH}H]UHHd$H}HuUHMDEHEH5QH!vtlH}D^HHuHEHx tFHEHx uHEHt-H}HǾ8 EHM~4H} H]UHH$`H}HuUHMLEHDž`HUHpQPHy.HcHhH}H5ԖQ7utkH}Z]HHuHEHx tEHEHx u-HEHt,HuH` H`HuH5qH}(RH`7HhHtVTH]UHHd$H}HuUHMDEHEH5AQHqtH]UHHd$H}HuUHMDEHEH5)QH1ttYH}T\HHuHEHx t3HEHx u'HEHt}%u)H}вH]UHHd$H}HuUHMDEHEH5QHstYH}[HHuxHEHx kt3HEHx uHEHt}%u)H}H]UHHd$H}HuUHMDEHEH5IQHrtdH}[HHuHEHx t>HEHx uHEHt%HE@t}@ƁuH}H]UHHd$H]H}HuUHMDEHEH5͔QHMrH}lZHHu0HEHx #xH]ЋuH{ ;HEȀ}tH}AHǺH5yQϲH}AH1H5]QϲHE\uE@ƁH}SH]H]UHHd$H}HuUHMDEHEH5QHaqvH}YHHuDHEHx 7tPHEHx uSHEHt7}u H}1 $H}ȾEH~4H}SH]UHHd$H]H}HuUHEH5]QHpt&H}XHHuH]HcuH{(;@H]H]UHH$HH}HuUMDE1111HH HHEH HEH}H5QpH}'XHHuH]H{ n[h}1βHEHHJH(HcH H{ juH{ HEHMHUHuH{ H{ t?1H{ sHLpLtHxH|H`XpEE؃BH} b,HEHEHEHE1H{ HH8HHͲH@HH0H(H,H0ɲ,~ ,E(~ (EH8z}uHEHEHEHE,EEE,gP)UmXH{ GEEH{ EEH}HDž@HDžHH}HEHHHHHPHHXDž|Džx1111HHHHEHHEefDDž|LHH@x|H{ H@H@H}OHpH$LtLEHMHUHHHs pxg t|‹x| HHHHEHHEH}HuHEHUH@tFH@Kڲ8H@t H@3ڲ|HcXHHc|H9xH}Hu]tHc\HHcxH9IH}ٲH HtOKH}Hu"HHHHEHHEHEHUHH]UHHd$H}HuHUMDEHEH5)QH!kH}@SHHuHEHp H}sHHEHx mVHEHx tn}1ɲHEHEHx HMHu1޲H}ز}u<}1ɲHEHEHx HMHu1޲H}xزE}t HEHx LвH]UHHd$H}HuHUMDEHEH51QHjH} RHHuHEHp H}SHHEHx MUHEHx tn}1ȲHEHEHx HMHu1ݲH}ײ}u<}1ȲHEHEHx HMHu1ݲH}XײE}t HEHx ,ϲH]UHHd$H}HuUHMH$H]UHH$ H L(H}HuUHMDELMHDž8HUHHCH!HcH@EH}H5QahHEH}yPHHu=H]H}Hs HEtH{ t#HEHEHUHuH{ Q(H{ vtHUHuH{ HEH}tBH}WHELeHu1H8 H8Ar;EA$H}@HEH}nղEHcEH0H0HH0m1H0H8ƻ01H8FгH8HuH=xݲHEH{ tHuH{0ɲ HU؈.H{ ZtHuH{ 詿 HU؈HEH}ԲEDH8簳H@HtFEH L(H]UHHd$H]H}HuUHMHEH5QHft:H}4NHHuH]HEH@(t HcuH{(C5H]H]UHHd$H}HuUHMDEHEH59QHeH]UHH$HLH}HuUHMDEDMHEH5 QHHDžHH]UHHd$H]H}HuUHMDELMHEH5yQHY^zH}xFHHuHHu7H]H{ *t#HEHEHUHuH{ Ҳ0H{ tHEHUHuH{ =߲HEH}t*Hu1H`JH`~`EH}ò3H`HhHt05EHXH]UHHd$H}HuEHEH5zQHEUtH}h=HHu,HEEH]UHHd$H}HuUMEHEH5zQHTvH}=HHuҽHEHx HxW8r+HEHx ֲHHUHu²E)EE)EbHEH@ H@pH@@@0H-HcUHЉEHEHx Pt(HEH@ H@pHxXHUHuEU)ЉEHEHEH$HEHx LEHMUuM1uH}tnH}F˲EH}UHEHx itDHEȋPUHEȋMg4HEHx HEHtH}ʲEH}EH]UHHd$H]H}HuEHEH59yQH1StmH}T;HHuH]H{ t1H{0ڲHEH{ t)H{ HEH}tH}EH}ٲEH]H]UHH$@H@H}HuHDžHHUHXe-H HcHPEH}H5qxQDRH}c:HHu'H]H{ tHU1H{0̲BH{ t5H{ /HEHtH}HHEH}زHEHuH{(ҲHEH1HH1HHe\EH}詿/HHHPHt1EH@H]UHHd$H]H}HuEHEH5ywQH!QEH}<9HHuH]H{ tHEHx HUHuڨ E*H{ wtPHEHx HUHu.ײ E}t-H}ȲHEHt HEȋEH}蜾H}蓾EH]H]UHHd$H}HuHH5vQH=Pu11耢HE+H}Q8HHuHEpHE8SHEHEH]UHHd$H]H}HuEHEH5ivQHOEEH}7HHu虸H]H{ tHEHx HUHus E.H{ qHEHx HUHuղ E}tNH}ƲHEH}ƲHEH}tH}tHEHUȋ)ЃEH}H}EH]H]UHH$pHxH}HuUHEH5wuQHNH}6HHu肷HEH@8HP HUHuT)H|HcHUdH]H{ @t,}tH{ H:H{ H'H{ t}t H{ TѲ H{ ,HEH@8`PHEHtz-HxH]UHHd$H}HuUHEH5tQHMH]UHHd$H}HuHH5tQH]MtQH}5HEH4MH@HEHEHxHEHuHvޠH8AH]UHHd$H}HuUHEH5)tQHLH]UHHd$H}HuHUHEH5kQHLt\H}4HEHLH@HEHUHuHݠH8蠱HEHuHݠH8A HH]UHHd$H}HuUHEH5sQHLH]UHH$@HHH}HuUHMHEH5sQHK+H}3HHu辴HEHx }u HE\t}HE\HEHxXtZHEHxX[Ã|+EEHEHxXu褜H謸;]HEHxXHEH@XHH}kHEHxXuH=c\WHUHBXHE胸HEHx HEH9zH} usHEHx 1ϲHŲHEH H@HHEHE苀gPHE苀gpH}ԲH}cѲHEHx 1dϲHHE苀gXnEEHEH=heHaexHEHUHX$HHcHPHUЋuH}HuH}HEHx HEHxH} usHEHx 1uβHMIJHEHH@HHEHE苀gPHE苀gpH}ҲH}вHEHx 1βH豳HEHxXHu0&H}HPHta(;]HHH]UHHd$H]H}HuUHEH5=pQHeHtCH}0HHuLH]H{(Բ1H{ Hs(H{ H{(nH]H]UHHd$H}HuUMHEH5oQHGt-H} 0HHuͰDEMHUHuH}H]UHHd$H}HuUHEH5oQHGtHH}/HHupEE܃EEAMHUHuH}c}rH]UHHd$H}HuUHEH5YoQH Gt(H},/HE؋} HEUuH}MʲH]UHHd$H}HuUMDEHEH5oQHFtZH}.HHu良HEHp H}Ht/HEHx 1tHEHx Ut HEHx TH]UHHd$H}HuHUHEH5nQHFt[H}+.HHuHEHx r1t5HEHx tHEHx Uu*HEHx [H]UHHd$H]H}HuUHEH55nQHuE H}-HHuXHEHx H5iQ脸HtHEHx H5iQkHEHEH}tHEHPHcEH9tH}Q}HuHH]؋Ev tt7lHuH}[HuH}H{ cH17HuH}0hH} tH{ -HǾH]H]UHHd$H]H}HuUHEHx +HEHx ߲HEHZӲÃpEfDEԃEԉH},HEHtA}t#}t5H}HH5DfQﶲHtE@ƁH}Bв;]H}ʲH]H]UHHd$H}HuHxTEHEH8Hu5H]UHHd$H}HuHUHHHuH=r|uCHHMH}H5kQUH]UHHd$H}HuHUHE*HE*HE*HE*HE*H`kQ(HEHEuH}襡HE H}HEHE@ƁH}#H}1(ԲHEHEHUHuH}/AHEHuH}nHUHuH}HEHEH]UHHd$H}HuHH5jQHAH})HEH޲ HU:tHE@ƁH}PH}'xHHEHE*HE@ HEHU;}=HE*HE@(H}HEH@ƁH}娲(HEHcHH*HE@(H}1軨HE*HE@8HE*HE@@HE*HE@0H}yH1HEt;H}yHǾH}yHHEHy~4вH]UHHd$H}HuEHEH5 iQH?tH}(HEH츲H,EEH]UHHd$H}HuUHEH5hQH?t3H}'HEH?HE؃@T*EH}*ŲHE؃hTH]UHHd$H}HuHUHMDEH}J'HEHEu H}1讷H}кѲHuH}~HEu HUẺ'HEỦHE@ƁH}OH]UHH$PH}HuHEHUHuRHzHcHUHEH}`HDžXH}pHDžhH}EHDžxHXH}H5HgQcaH}%HHuHuH5WO2H}%HHE@ƁKH}HEHtH]UHHd$H}HH5fQH聰HEE}t H}۲EH]UHHd$H}}[H]UHHd$H}HuUHcEHH}H5ZfQ赚}u7H5XHUdʶH H}H56fQòH}۲H]UHHd$H}HuHUFѲHEHEHUHuH}m;HEHuH}謢H}ؾ*HEHuH}'HEHHuH=m|pHEHxpuEHEHu H==cQ谡HEHHU؋uH}t HuH}joH]UHHd$H}HuUHuH}HMH]UHHd$H}HuH HppH} oH]UHHd$H}HuHUHMDE HEHǺʲHuH}覯HUẺH]UHHd$H}HuUHEH5ybQH7tPH}H@pHEHxp;HHHEHEtH};t1H}H]UHHd$H}HuHUHHHuH=|7H]UHHd$H}HuHU11۲HE@/HEH}'HHuݲHEHEHUHuH}6HEH}蕳HuH},HuH}K+H}rHuH}HUHuH}HEHEH]UHH$@H@H}HEHEHEHDžXHDž`HDžhHUHx H3HcHpnHEHxxH}ղHH}1rHuHh€HhH}貀HEHH}螀HuH}HHuH}HEH(H}HEHpHEHPtLHuH`H`HuHXHXH螏HtH}HEHhHEHxxH5_QDHEHthH}bLtHuH}g3HEHPHDžH HHH{dHpH}1HEHHUHxkH8H W8uJHh W8w>HEHHUHAkH8HEHHUH"kH8uH=9HHEHHEHxH5Q苳H]UHHd$H}HuHt2H}HEHNtH}tE EEEH]UHHd$H}HuHUHEHEHE@%@u%HE@Pt EHEEEUHkEHE@PtEHE@%@:}{HEHǾt}u!HE(ttu H}1EHE@Pt EUH#kEH}dHNju@HEH0H}eHEHx tHEHp H}p1HE@Pu$HE(ttuH}оLHEr0tttH}aeH}F8 H}KMHH8u"HuHsH8 11HEHRXHHH;Eu>HQXH8H5Q u$HsH8AmHUHuH}6HEH‹EĉBxHEH1Ҿ RHEǀHUHuH}cGHEHH}蓈HE@Pt H}1K^H}b^HEHtFHEHԏt2HEHHEHHHH}E111cHE@%@uH}о2HE@Pu HEH@`HE@EHE@EHE@EHE@EHuH}LHEHEHuH}?GHUHuH}HEHEH]UHHd$H}EHEHxFH}VH}vHNju9HE؋UPxH]UHHd$H]H}HuUMHEH5J QHtIHE@PuHEHHUHrkH8HEHHUH|rkH8϶H]UHHd$H}HuHU11H2HEH}2!H٤k4H};HEHxxHEHH}غ#UHUH}H5DQ/HUHuH}HEH}rHEHtHEHH}H5BQM/H}D.HEHtHEHPxH}H5Q#/11/HEHH}wH}MHuH}4HuH}HEHEHuH}R7HUHuH}HEHmV8CHV83HEHxxHHMH5Q]HEHH˿HMH5`Q;HEHxxH\HMH5QQHEHH:HMH5/QHEHxxHHMH5 Q۞HEHxxH HMH5Q輞HEHHHMH5P蚞HEHHHMH5PxHuH=WtH-HMH}H5PIHEH]UHHd$H}HuHH5PHMtUHEE= uHuH}1HEEH}EHppMHg`H8AfH]UHHd$H}HuHUHHHuH="1|%HEHHu2HnkH8ձuHEHHUHnkH8H]UHHd$H}HuHUHEHEȿrHEHUHuH}DHEH}'H111?H}1=HUH}H5gP+@HEHH}tH}ؾ蔼H}{JHuH}HuH}1H}ȾSH}1蘃H}?UH}HEH}fH}~pH}gH}tH}a[HEHuH}о%rHEHEHuH}3HUHuH}HEHEH]UHHd$H}HuHH5=PHtfH}HEHEtH}شHǾ krUHuH]H8赻H}̢HEHUHuHUH}XH]UHHd$H}HuHUHMDEHEHEHEHEЃEmmH}H5PHEHEEt ttCZHr}ẺEHHcUHcEH)HcEH)HBHH?HHHcUHЉEH1}U)+UgBEċE;E}EĉE̋ŰEЉEHEHUH]UHHd$H}HuHHUHH@H]UHHd$H}HuHUEHE8uWH}2=HEHtEH}Pt8H}2Hu*H}uHEHHtH};#EEH]UHHd$H}HuE3#HE1HVzHEHEAt"HH}?t H}natGH}1Ҿ 芎EfEfEHEHEHuH}躼EEH]UHHd$H}HuEHE1HUHEHE@PXEH[HEH$H}` EHEGuH}H5P-H}H5P,HEG:EtHEG@ƁH}^!}tPH}tIHEH;Et?H}HEH}1Ҿ :EHEH8HuHEHHEH]UHHd$H}HuHHUHH(1H]UHHd$H]LeH}HuHUHHUHHHEHxxH5P"HHuHPhkH8HFhkHHHEHH}1HEH`EHUHuHhkH8HhkHHH}~&HUH}1H5P13UUHE)HELeH]H}HLH]LeH]UHHd$H]LeH}HuHULeH]H}HLHEHxxH5P!H}HuH.gkH8H$gkHHHEHH}1HEH`H EHUHuHfkH8HfkHHHHE@;E} HEUPH]LeH]UHHd$H}HuH5XH1H[1H]UHHd$H}HuHUHHHH}H5PHEHH`H}H5PHEHH2H}H5P袔HEHHTH}H5P脔HEHH&H}H5PfHEHH(H}H5PHH]UHHd$H]H}HuH胓HEHu H=P.H}uHHZHEHu H=P-H}lt%HEHEH}HuH}H}zt HEHEH}H5P7HEH}H}HEHHH=e탳tRH}HH赕Hu9H}HEHHHHHEHH}H5P)")`HEHH}H5P "HuH}OH}HuH}AHH}9t,HE@HuHckH8HckHH H]H]UHHd$H}HuHHxxH5YPHu%HEmHEAt"H}HEHu 1`HE>H}HEHPuH}HEHt 2HE )HEH}HEHHEHPHH}t8tYHEC@ƁH}[HEG@ƁH}HHMH}H5$PGHEI@ƁH}X*HEBt H}HuH}EHUHuH}H}>HEH]UHHd$H}HuHH%bkH:H H]UHHd$H}HuHUHEH5PHJ}H}׏HuH}H5hPHuH}HEHH@H}蚏HEHH}jH}聏HHEI@Ɓ3)H]UHHd$H}HufUfMHEH5PHJtH}HMUH}#H]UHHd$H}HuUHEH5PHIt9H}輎HEHP :Et}t H}'= H}AH]UHHd$H}HuUEHEH5PH5IH}DHEHEuH}r}tH}HEHǾH}оLE@ƁH}}tH}ؾH}оKEH}HEHHEEH]UHHd$H}HuUEHEH5PHEHt$H}XHNJE@Ɓ'EEH]UHHd$H}HuUHEHUHHHH]UHHd$H}HuUEHEH5mPHGt:H}ȌHE؊E@ƁH}XH}èH;EEH]UHHd$H}HuUHMHEH5PH5Gt}tH}HEHHH]UHHd$H}Hut(u4HcEHH?HHHUHcH)HEHEU)HUH]UHHd$H}EHEH=ieHyytkH},HV@$HzV@ HlV@%HH!¸H!HLVHPHAVH@H2VH@EH]UHHd$H}HuHEH;n~u Hn~H}tHEH0H="M7H]UHHd$H}HuHUH=菠HHMH}H5}PH]UHHd$H}HuUHEHEH}詷HEHUHHUHuH}HEHEH]UHH$H}HuUMH=m~EEЋEEHHEH}HEHHdm~HHEHHEHB`HE@\H=>m~tH=.m~H"m~=$LEHMH= m~E111HUHhÒHpHcH`uHWkH8HWkHH軕H`HHHHcHpHcHu@H&XHTt#HuH&XH8H&XHH B͖8HHtH&XHu!H=k~tHn&XH8@#IH]UHHd$H}H}HH]UHHd$H}辞HH]UHHd$H}HuHUHHuH={H {HH]UHHd$H}HuHH5PHu E3H}7HEEHEE;E}EE܉EEH]UHHd$H}HuEHEH5]PH襵t5H}HHUHuhtHcEHcUH)HHHI‰EEH]UHH$ H}HuHEHDžHHDžXHDžhHUHxH&nHcHp;H}H5PuHPHHEH}HHHH}H)\@E<.tcu1HX HXH`H$HuLTAH`H`PHhlnHhH},},tcu1HHT HHH`H$HuLTAH`HPHhnHhH}HuH}HEH EԑHH(HXHhH}HpHt&EH]UHHd$H}HuUHEH5PH9tH}HNjuEH]UHHd$H}HuUHEH5aPHt3H} HEHuH}HEE܋U‹uH}AH]UHH$`H}HuUHEH5PHvx}u!HuH==|qtHEuEEH}dHEHht}@ƁH}H}HH=HEHpHuH5H=^HEH@HHNPHH5xHHHHHEHx1ɺ>H=&uJHEHpHuH5HEHxHuH=H %HuH 黟1HڹH}QLHHHHt賉HEH}tH}tH}HEHHxHtlHH8裄HbHcHu#H}tHuH}HEHP`蟇*蕇HHttOHEH]UHHd$H}HuH~HEHUHHH=1H}1oH}tH}tH}HEHPpH]UHH$PH}HDžpHUHu裃HaHcHUHEH@HHEHuHXHHHEHEH; /HEHHEH@HxHPHEH5طHpgHpHEHxHEHx1ɺH=$H=@t H=膴HHPHEH@HXH:PH`HLPHhHPH=?1ɺ#H5,HuH5H= M11H P1:HEHpHuH5ҸH=˶嵡H=xHuIHEH@Ht7HEH@HHEH@HHHH=pzH=cHӄHp'HEHtIH]UHHd$H}HuHH8t'HEH8HEHEHǀ8H}kmH]UHHd$H}HuHH8u(HUH= i~HEHEHUH8H]UHHd$H}HuHH8tHEH8H}H]UHHd$H}Hu11H]UHH$pHpHEHDžxHEHUHu0HX^HcHUE=tE紡=t EH}H5P%H}H5PEHu7 HHPH1pHH}t+ HHPH19ıH\跱H=PHEHH}t+ HHPH1yHlH==PHEHu;H}t+K HH9PH12H%EH%H5PH0HH5PHH H5PHHH5PHHH5PH~H߱H5PH`HѱH5PHB|HñH5$PH$^HH56PH@HH5XPH"HH5zPHHH5PHH}H5PHHoH5PHpHaH5PHRHSH5PH4nHEH5PHtTH;H5,PHt:H1H5BPHt H'H5`PHtEEH}t_ HH}@uHxHxH5MPH}THUH1qH dE&HxzH}qH}hHEHt芀EHpH]UHHd$H]H}HuHUHEHXHuH;HUHHEH8EEH]H]UHHd$HEHH 1H3HPHEH5PH}hHEHEHPHEHuH=گ1ɺH}uH]UHH@Ht H=芬H=bt H=YDH=m(H=qH]UHHd$H}HuH(HPHHEEH]UHHd$H}HuHíH]UHHd$H}HuUH萭H]UHHp=)i~uPHHPH5PH=w)|H诎tHH5e~H=O)|h~H]SATAUAVHfE1E1HHtH@HHcLRHIfDHcMcL)HLAE1IcD,WLcMrMcMMVLTA)DAuD9˅~gED$7gAD$u-HcLRIcLIRTIFTD fA D9gAA^A]A\[SATHd$HHHtHv#f?#1fGf=xt f=XDHcfDGf=0f-9v%f-f-vHf-f-vHcDDGD08HcDDGHcHLHWHcDDGHcHLH7N9hA6HcfDGf=0r%f-9wDk HcDGD09}HcHHcH9AuCf >|)$Hȃ~HTHuH=ǭfff;ADHd$A\[0L ̂~A L a~~A;P!tH0pHEHtuH(H]UHH$PH}HuHEHHHHH0"HDžPHDžHHTpH|NHcHUH}H-EfDEEE=všEHk0H}HHH}tEHDžxHxHH5PHFHHEH0H}uHHHEH0H}}tiHEHHXHPH`HuĺHPHPHhHPHpHXH}HH}H H5PwqtVHEHHpHPHxHuHPEHPHHpH}H;HEH0H}HlP߲}}1|qHPݲHݲHEHtrH]UHH$PHPLXL`H}HuH}ݲHHDžhHUHumHKHcHUH}HݲH]HtH[HH-HH9v1}EEEHEHHpHjPHxLmHcEHH9vߞLceLH}_Ct%Hh8HhHEHpH}H;]~goHhFܲH}=ܲHEHt_qHPLXL`H]UHH$pH}HuHUHHEHUHxPHh育HhHH=ݡ~^HH5zHkHEH0HUH}"HuH}`t=H}HuHEHuغHH4HHHuHUG{lHHزHPزHhزHpزHEHtmH]UHH$HLLLLH}HuHUMHSHDžHUHuhHFHcHx IIHg~HH]~IMtMLYHLLAHEH`H hH?FHcHupHU؊E舂eHuH} H}u:HuHUH}JHEHH}H[HH}ײ H}HuײjH}SHHt2ljHֲHxHtlHLLLLH]UHH$`HhLpLxH}HuHUHMH}ֲHEHHlHUHufHDHcHUHUH~HEHEHtH@H}8LeH]HtH[HqYHHH9vHH}ATH~:tLeH]HtH[HqHHH9v讗HH}2ATHV~:tLeH]HtH[Hq豗HHH9vZHH}A|\uDHEHtH@HdHEHtH@HKLeH]HtH[Hq7HHH9vHH}dA|\uLeH]HtH[HHH9v藖HH}HUADLeLmH]HtH[Hq蠖HHH9vIHH}ATH~:A$HuHtHvHqRH}HRaHEHtH@H}ILeH]HtH[Hq HHH9v貕HH}6ADHZ~:tHEHtH@HdHEHtH@HKLeH]HtH[Hq臕HHH9v0HH}A|\usLeLmH]HtH[HHH9v㔳HH}gATH~:A$HuHtHvHq씳H}HH}HuҲeH}QҲHEHtsgHhLpLxH]UHH$HLLH}HuHUHHDžHDžH}t)LmLeMtLHfSLShHEH}tHUHuaH@HcHUHEHhH(aH?HcH dHEƀ 6HEƀeHEƀeHEHHcѲHEH5HEHH}HEHeHEH(6H}HEƀ5_HEƀ5HEƀ 6HEǀ5HUH}HHEHc5Hq2HH-HH9vՆHE艘5HEHU苀5;5~HE苰5H}uHE胸5aLuALmMtMI]HEDL` LuALmMtI]HEDLp HE苰5H}KH}bH}H PH HEH6#IJNWH òH}òH0HtXH@LHLPLXH]UHHd$H}HWHEH@H5HEH@HHEHx\HEHxJHEHxaH]UHHd$H]H}HuHUHMLELMH`φEHEH5PHHHHEHEEEE@HEHcHqބHH-HH9v聄HEHEHcHuH}'}u,HPHH=ˆ~uGHH5HsTEE}u7}tUuHUuHEE<EH]UHH$`H`H}@uH&HEHDžpHUHuaNH,HcHxHE5:EuHEE5EHUE5H}uH}HpSJHpH}㽲HEHhHhHtHvHhHuH=eHHH-HH9vP}EEEHcUHuHhHhHuCt@uH} t.HE5HHfhHhHcuH}HEH6HcUHhjHhHuJCtGuH}h t5HE5HHfpHpHEH6Hcu;]~ HuH}vH}=VOHp컲H}㻲HxHtQH`H]UHHd$H]LeLmH}H HE@PtHE6|HEǀ6eHEHc5Hq}HUHc6H9|=HEHc5Hq}HH-HH9v?}HE6HEHU6;54LeLmMt|I]HH]HE5H HXH=P?CXrEE HE8tHE@0 rrEE HE8t>H]HE5H HXH=^P>CXrEED HE8t>H]HE5H HXH=,P?>CXrEEHE8t"HE@Ar rrEEHE8t>H]HE5H HXH=P=CXrEEjHE8t>H]HE5H HXH=Pe=CXrEEHE8tHE@ArrEEHE8tHE@arrEEHE8t>H]HE5H HXH=P<CXrEEjHE8t*HE@0 rr rrEE,HE8t>H]HE5H HXH=P'<CXrEEHE8t>H]HE5H HXH=bP;CXrEEHE8t"HE@0 rrrEERHE8t"HE@0 r1rrEEEHE5HHfHHHH}0EHuH8賲H8HH@?H@HuH8貳H8HSHExHuH@肳H@HH8#H8HuH@LH@HHEHE5HHfxHxH}/ugHuH@첲H@HH8>H8HuH@趲H@HWHtEErHE5HHfxHxH}/ugHuH@LH@HH8"H8HuH@H@H跷HtEEHe\@HHfxHxH}g.EHue\@HHfxHxH}2.EhHE8t>H]HE5H HXH=Pc8CXrEEHE8t*HE@0 rr rrEEHE8t>H]HE5H HXH=P7CXrEEHE8t>H]HE5H HXH=nP7CXrEE4HE8t"HE@0 rrrEEHE8t"HE@0 r1rrEEHE8t>H]HE5H HXH=P6CXrEEvHE8tHE@0rrEEHHE8t7H]E=v6gEHk0HE@rEEHE5HHfxHxH}+tBHE8t3H]E=vfEHk0HE@rEE~HE8t1H]E=vlfEHk0HE@rEE6H]E=v/fEHk0HH}*EE܈Et7H8ȣH@輣HxHt8EH0H]UHH$ H}HuH}gHEHUHu3HHcHUH}Hu/HuH}HuHEƀeHEƀ 6HEH5Hu^HpH0F3HnHcH(u HuH}/N6HEƀ 6HEƀeH(Ht7"6H}yHEHt7H]UHHd$H}HuHSfHEHuHE"6tHEHeHEH(6H}=HEH(6HEHH/(HUHE5eHEH5HEHH}HEƀ"6H},)EEHuH}EH]UHHd$H}HWeHEHfuHEHfHuHEfH]UHH$`H`LhLpLxH}HuHdHEHUHu'1HOHcHU;HE"6uH}tHEƀ"6LuALmMtgbI]H "DL` HEH5HEHH}`HEHHEH(6H/KHUHEe5HEHeHEH(6H}HE5H}U'H}Hux,HuHEH6EEH}u H}2>HuH}u3H}WHEHty4EH`LhLpLxH]UHHd$H}HuHcHE@PuHEH6HuP+H}%tHuH}+ HuH}H]UHHd$H}HuHxbHEHUHu.H HcHUu=HuH}+H}u!HEHH}HuHuH}艞1H} HEHt-3H]UHH$ H}HuH}HaHEHUHu.HB HcHUH}uHpH0-H HcH(u=HEƀeH}t H};EHUHuH}HuH}0HEƀeH(HtHt!2HDž( HuH}Cn0H}ŜH}輜HEHt1H]UHHd$H}HuH`HEHH}C)H]UHH$`H`H}HuHF`HEHDžxHUHu,H HcHUH}AtHuH}(HEHc5HuHHxHxH}HEHpHpHtHvHpHuH=bDHHH-HH9v]}VEfDEEuH};u'UH}HpRHpHcuH};]~fHEHhHhHtHvHhHuH=aHHq]HH-HH9v\H}HpHpHx訤HxHuH}HEHpHpHtHvHpHuH=AaHUHc5H9HuH}i-Hx虲H}ߙHEHt/H`H]UHHd$H]H}HuUHP]EH}HuEtt8ttcHUH_W\@BaHUHIW\@BKH]E=v[[EHk0HH}HHEHU5BH]H]UHH$PHXL`H}HuHEHHH}7H\HEHDžpHUHx(HHcHU)HE6HUH}PuH}Hp$HpH}臘H}NuHUHuH}Hc]HqUZHH-HH9vYDeA9}E]EE䐋EEUH}HhHhHcuH}耼D;e~HEHc6HUH}`HuH}H}jH}u H}p*HpH}HEHt8,HXL`H]UHH$0H0H}uHUMHZHDž8HDž@HUHu'H0HcHx|EHE5;E|bUH}HHHE؃}t:} t2}t*}t"} t}t}t }tFHuH83H8HH@+H@H}H貟}t:} t2}t*}t"}t}t}t }tFHuH@譟H@HH8#H8H}H,E؅ N{i [J7mEHE8tHE@0 rrEEHE8t,HE@ t+t-t0 rrEEpHE8t"HE@Ar rrEE:HE8tHE@ArrEE HE8tHE@arrEEHE8t*HE@0 rr rrEEHE8t"HE@0 rrrEEjHE8t"HE@0 r1rrEE4E+HaP\@HHf8H8H}EH,P\@HHf8H8H}EHE8t*HE@0 rr rrEEHE8t"HE@0 rrrEEMHE8t"HE@0 r1rrEEHE8tHE@0rrEEHE8t7H]E=v5SEHk0HE@rEEHE8t1H]E=vREHk0HE@rEEVEPE0HDž(H(IHPHH=V~HH5H"}t3}u+H}H5PtEHPrE#H8H@史HxHt%EH0H]UHH$`H`LhH}HSHEHDžxHUHuHHcHUH}tHUHuH}RH}HxHxH}肏Hc]HqsQHH-HH9vQDeA9}K]EEEEUH}HpHpHcuH}蘳D;e~HuH}H}"HxiH}`HEHt#H`LhH]UHHd$H}@uH#R}u~HEHH]UHHd$H}H8I$HL H]LeLmLuH]UHHd$H]LeLmLuH}HuH09HEHt4H]LuLmMt7MeL]LHA$5HEH@LmLeMt}7I$H!L H]LeLmLuH]UHHd$H]LeLmLuH}HuH0#9HEHWt4H]LuLmMt6MeLLHA$HEH@H}H]LeLmLuH]UHHd$H}H8EEH]UHHd$H]LeLmH}H [8HEH菵u`LeLmMt56I]HL0 t1HEH6H}fHUHE56H}H]LeLmH]UHH$pHxLeLmH}H7HEHUHuHHcHUH}H}蟴uLeLmMtB5I]HL@ HcHq}5HH-HH9v 5HE6HE!6t#H}HuHuHEH6&s HEƀ!6H}@HEuHEtLeLmMtr4I]HL LeLmMtI4I]HL@ HcHq4HH-HH9v'4HE67HE6tH}u H}߷ H}OH}qHEHtHxLeLmH]UHH$HL L(H}H\5HEHUHuH߱HcHU`H}H}YuEH}HuHuHEH6πHuHxH8-HU߱HcH0uCHE!6t4LeLmMt2I]H8L HEƀ!6HE!6uLeLmMtI2I]HLuRLeLmMt2I]HLLeLmMt1I]HL H0HtVH}oHEHtHL L(H]UHH$`HhLpLxH}HuUHU3HEHUHuHݱHcHUHuUH}$H}KtzLeLmMt0I]HL@ HcHq'1HH-HH9v0HE艘6Eu9HEf8%t)HEf8'tHEf8$tHEf8#tHEf8thEt_H}HuH}HEH6~Hu7LeLmMt 0I]HL HEfaHEf8.tLeLmMt/I]HgL0 tmEt+LeLmMt/I]H+L *Et H}Et H}@HEfHEf8tLeLmMt/I]HL0 tmEt H}JEt+LeLmMt.I]HgL Et H}@WHEfHEf8-tEtZLeLmMt[.I]HL0 t)LeLmMt,.I]HL 3Et)LeLmMt-I]HL HEfNHEf8CtAEt7LeLmMt-I]HML HEfHEf8XtpEtfLeLmMtX-I]HL0 t7LeLmMt)-I]HL HEfHEf8VtpEtfLeLmMt,I]H|L0 t7LeLmMt,I]HML HEfHEf8%tH}HEfHEf8'tH}\HEfHEf8$tH}(HEfHEf8#tH}DHEfpHEf8&tHEf8(t HEfKHEf8At>Et4LeLmMt+I]HJL HEfH}hiHEHtHhLpLxH]UHHd$H]LeLmH}HuH('-HEH[t1LeLmMt+I]HL0 u^LmLeMt*I$HqL@ HcHq+HH-HH9v*HE6HEHU6;5~AHE6H}Vu(H}WH}H\(\HH rHE8tHE@ rH}H5݉PtH}H5Pt2HE6HUH}tHEpH}\ HuH}H}H'\HHcqH]LeLmH]UHHd$H}HuHS+HEHH}HEEEHuH}}tHEH]UHHd$H}HuH*HEHH}HE8w HuH}{H]UHHd$H]LeLmH}؉uUMDEH@*EMUuH}AfH}譧uxLeLmMtP(I]HL@ HcHq(HH-HH9v.(HE؉6H}+t H}H]LeLmH]UHHd$H}H)HEHu H}̩H]UHHd$H]LeLmH}H k)HEH蟦t H}2LmLeMt:'I$HL H}LH]LeLmH]UHH$`H`H}H(HEHEHDžpHUHu H5ӱHcHxH}ʥtH}{HHHuHHuHHuHtHvH}HuH=4+߷H{HE6EH}.H}HpHpH}>dEf5fDHc]Hq&HH-HH9v%]HE5;EuH}|uHcUHuHh>HhH}H}tEك rrfE \fHc]Hqy%HH-HH9v%]HcUHuHhņHhH}HNHc]HuHtHvH}HuH=)hH9|HU؋uH}t\HU؋uH}puqHcuHUH}FHc]Hq$HH-HH9vJ$]Hc]Hqx$HH-HH9v$]EHE5;E}2Hc]HuHtHvH}HuH=(}H9~HuH}H}ɥ$HpxaH}oaH}faHxHtH`H]UHH$pHxH}H*%HDžHHgHϱHcHH}$uƅHE5}^DžH}HHHHH;~HH}jHH}蝼HEǀ6H}V H}+H_HHtHxH]UHH$pHpLxLmLuH}H#HEHUHuHαHcHUH}豠uHuH}H}uLuALmMt5!I]HDL HuHtHvH}HuH=&軲HHH-HH9v LuLmMt MeLkLA$ H}.H}^HEHtHpLxLmLuH]UHHd$H}HpG"HEHUHuH̱HcHUH}MuHuH}HuH}:tfH} HEƀ!6HEftt4=HDcHPHH=R#~HH5H H} H}`]HEHtH]UHHd$H;!H0~HEHuHH=POH]UHH!KxH]UHHd$H]H}uU( HEHxuQHËuHqQHEH]H]UHHd$H]H}uUHM({ HEHxu+QHHUuHIQH]H]UHHd$H]H}HuU(. H}tgHEHcXHqtHH-H9v|/EEuH}PHUuH};]H}SH]H]UHHd$H]LeH} HEH@HcXHqHH-H9v|QEEHEHxuOHƋUH}HEHxuOILײ;]HEHxPRH]LeH]UHH$HLL H}HuH}u'LmLeMuLHIܱLShHEH}HUHuHȱHcHUuSHEH}1lղH=&[[ղHUHBHEH}tH}tH}HEHHEHtlHpH0FHnȱHcH(u#H}tHuH}HEHP`B8H(HtHEHLL H]UHHd$H]LeLmH}Hu(IH}~'LeLmMu0I]HڱLH}bHEHxղH}1JղH}tH}tH}HEHPpH]LeLmH]UHHd$H]H}uUHM8HE@EHEHc@Hc]H)qHH-H9v]HEHEHx tHEHx(LEЋM܋UHuHEP HuH}+OHc]HqlHH-H9v]Hc]HqBHH-H9v]܃}eH]H]UHHd$H}uUHM H}t(HEHxtHEHxLEMUHuHEPH]UHHd$H]LeH}uU8+HEH@@;EuHEH@HcXHq`HH-H9v;]|AEEfEHEHxuKHE؋UHuH}`H};]HEHxuRLHEH@HcXHqHH-H9vE@EHEHxuJHEHuH="[BѲHEHE؋@;ErHELc`Iq[LH-H9vD;e|5EE@EuH}JHUuH}D;e؋uH}\KHM؋UuH}HEHxHU؋ueJ;]H]LeH]UHHd$H]H}@uU0.}tKHEHxuIHEHUHuH}HEHxukLH}rѲHEH@HcXHq&HH-H9v|VEEHEHxuLIHEHt*uH}7IHUuH}uH}K;]H]H]UHHd$H]LeH}@uUM8}tHEHxUuNfHEH@HcXHqEHH-H9v|3EfEHEHxulHIċUuLKN;]H]LeH]UHHd$H]LeH}@uUM8W}tHEHxUuKfHEH@HcXHqHH-H9v-|3EfEHEHxuGIċUuL;K;]H]LeH]UHH$PHPLXL`LhLpH}HuHDžxHEHUHuHHcHUvLuLeLmMu-I]HӱLLL}LuHxLeMuM,$LӱHLAHxLEXHxQH}QHEHtEHPLXL`LhLpH]UHHd$H]LeLmLuL}H}@EHEL(HEL Mu-I$HұL0HULz ILMMuM,$LұHLAHEHEH8Hu蠸HEH@(HtH@HHqHEH5UN~HMHEHx(/LmMe(HEHx(ʰHHH9vHI}(GHEIHEH]LeLmLuL}H]UHHd$H]H}u(HEHHtH[HHH-H9v]E;E~h}} E*Hc]HkqHH-H9v]E;E~EEHcEHEH55M~HMH}H]H]UHH$0H8L@LHLPLXH}#HDžpHEHUHu^߲H膽HcHUEHEL HEHHuL+LmбLAHEfLmH]LeMuM4$L6бHLAH}Hc]HqHHH9vfHEHxLeI\$HcEHH9v6LcmLI|$HEJHc]HqNHHH9v]HEH@(HEH}HcEHxH5YK~HxHEHx0}~&HEHX1HxgHHHcuyHc]HqHHH9v\HhhEfDEH]LcLcmIq]LHH9vLH{ʬOHEHUHhͲH詫HcH`H}HuZ=H]HtH[HqBHH-H9v]/DHc]HqHH-H9v]ă}~>LeHc]HqHHH9vHH} MA|/uHcUHEHtH@H9Hc]HqHH-H9v1HuH}0,HEHHMHtHIHcUHuH}NLeLmMuI]HgLHHuHHEHt0H]LuLmMuMeL$LHA$βH}H;H`HtgвH@LHLPLXH]UHH$pH}HuUHDžxHUHuB˲HjHcHUu(HUH}1Hx9HxuE2βHx:HEHtϲEH]UHH$pH}HuHU^HDžxHUHuʲHɨHcHUu*HUH}1HxHxHuHEͲHx9HEHtϲHEH]UHH$pH}HuHUHMLE运HDžpHUHuɲHHcHxHpS9Hu1H.^PHp:HpUH}HUHp9Hu1H^PHp:HpUH}HUBHp8Hu1H]PHp]:HpUH}HUBHp8Hu1H]PHp:HpUH}[HUB ˲HpS8HxHtrͲH]UHH$pH}HuUHEHUHueȲH荦HcHxuMHUHuH}1\H}H5)]PuE H}H5/]PuEEE-˲H}7HxHt̲EH]UHH$pH}HuHUHMLE࿐FHDžpHUHuDzH豥HcHx3HUH}1HpyHpHMHUH}HE<,t1,,t%,, ,o,wH}1,v,v,v-,v7HUHEHUHEffvHUHEhHUHEHHXHUHEHHHHUHEHH8H};1HPHuH}:HUHEHUHEffgɲHp5HxHtʲH]UHH$`HhH}HuHUHMLE࿘HDžpHUHuŲH꣱HcHxuHUH}1HpHpHMHUH}?HE<1,t1,,t%,, ,,H}/,v,v4,vW,tH]HEHH=vEH]HEH-H=vfEfH]HUHH9vcEiHEHUH\HEHUHOHEHUHBHYPH=R[MHH5HKƲHEU HUfEf^DzHp3HxHtȲHhH]UHHd$H}HuHUHM }HMLEH0~HuH}H]UHH$PH}Hu迨2HDžhHUHxròH蚡HcHpu:HEH$fEfD$HUH}1HhUHhH}}MƲHh2HpHtDzmH]UHH$@HHLPLXH}HuHUM迸VHDž`HUHp²H辠HcHhW}t?H`1Hu1HWPH`3H`H}1EH]HtH[HH-H9vHuH}0Q"HEHH} HqHELmMHEHH9vyH]HI6Hk0I<HuLmMHUHH9v2H]HIHk0I\(HtH[HHH-H9v]EPIJH`0HhHtŲEHHLPLXH]UHH$PH}HuHUMDEDM࿨SHDžXHDžhHUHxH谞HcHp}}tuHcEHqOH`H`HH`1H`Hh901HhdNHhH}Hu11HcEH`H`HH`o1H`Hhz901HhMHhH}Hu10HEH`HTPHhHcEHqWH`HXHH`1HXHX801HXlMHXHpHTPHxH`H}1ɺ2²HXX.HhL.HpHtkòH]UHH$PHXL`H}HuHUHEHDžhHUHxHHpHcHpH]HtH[HqHH-H9v]+Hc]HqHH-H9v]ԃ}~>LeHc]HqHHH9v^HH}=A|/uHcUHEHtH@H9HEHu H}y1Hc]HqJHH-H9vHuH}qHEHuHMHtHIHcUHuH}F?HuH}Ht)HUH}HhHhHu@H}%HHSHH9v޲CEEEEH]H]UHH$PHXH}HuHUHMHDž`HUHpìH늱HcHhH}1HE<,t1,,t%,, ,,H}"HE؊,v,v,v",v+4HEHHE&HEHHEHEHcHE HEHHEHE<h,t ,WH}%HEHt.H]HEH-H9vxݲ}HUЄHEUsVH}ȹH`H*ױ1H`H`5%01H`9H`H}EH}ȹH`Hdױ1H`H`$01H`_9H`H}ZHEH-H9vܲUHuH` H`H}HEHHXH`HHX,ֱ1H`H`7$01H`8H`H}GHEHHXH`HHXUֱ1H`H`#01H`P8H`H}NHUHuH`H`H}&HE0H}1#HE0H}1`E軬H`HhHt.HXH]UHH$HLH}HuHUHMܲHEttuHEHtH@HE H}E܀}HE<,t1,,t%,, ,,H}sHEHE<,t ,k|HEUsHuH}EHuH}E܀}uCH}N#HEHtHuH}UȄtEEHuH}} EąEHUHh鱗HHcH`lHEЊ,v,v',vD,vKTH]Eă=vgٲEĈ7H]E-=vHٲfEfHUEĉ HEHcUH蔪H`HtMHHH@HhHcHuEQHHt0 HuH}EHuH}EHUHǦHHcHUuHUHuH}ΩHEHtDHUH@耦H訄HcHUuE蔩HEHtvQELeH]H}&A$'H]H}o&;?HUfEEHLH]UHHd$H}HuHUqٲH}(HEPhH}HuH]UHHd$H}HuHU!ٲHEPlHuH}BHuH~H8GH]UHHd$H}زH}HEH0H]UHH$`H`LhLpLxH}uwزHEHUHu轤H傱HcHUHEHHtHRHHcEH9LmMHcUHH9vֲHc]HIsHk0M$LuMHcEHH9vղHc]HIsHk0ItH}M1H}1LeH}iHEHt苨HEH`LhLpLxH]UHH$PHPLXL`LhH}uHUHMH1ֲHUHuEHmHcHx-HEHHtH[HHH-H9vԲ]܉;E}} E*Hc]HkqԲHH-H9vwԲ]؋E;E}EEHcEHpH5d~HEHHpsHc]HcEH)qfԲHk0q[ԲLuMHcUHH9vӲLceLIqIk0J<(1H裋zLmMHcEHH9vӲHc]HIhqHk0IH;EHc]HqӲHH-H9v_ӲH}H}u.LuLeLmMuӲI]H軒LLLmMHcUHH9vҲHc]HIpHk0IHEHHuH{ C1H{ )H}HxHt蟥HPLXL`LhH]UHHd$H]LeLmLuH}u8&ԲHEHHtH[HHqcҲHH-H9v Ҳ;]rEE쐃ELuMHcUHH9vѲLceLIoIk0N$(I<$tI$AD$1I|$ ;]H]LeLmLuH]UHH$0H0L8L@LHH}HuUMӲHEHEHDžPHUH`@Hh}HcHXEHPHEHHtH@HHcUH9LmMHcEHH9vвHc]HIHnHk0M$LuMHcUHH9vMвHc]HI nHk0ItHPeM11HPRLeMucHEHtUHELH2PHELMuϲM&LYHLA$xHEH‹uH}1F}EEĉE*Hc]HqϲHH-H9vaϲ]E;E4LeHcUHH9v:ϲHc]HH}A|/uHc]HcEH)qPϲHH-H9vβ]Hc]HqϲHH-H9vβ]HEHHtHRHHcEH9LmMHcUHH9v{βHc]HI8lHk0M$LuMHcUHH9v=βHc]HIkHk0ItH}X M1H}1H LeMHUHtHRHcEH9uiLeHcEHH9vͲHc]HH}II\HcEHH9vͲHcUH}HuH=xҞHukHcMHcUHuH}Hc]HqͲHH-H9v@ͲފMHUH}HEHtXHMHU؋uH}Hc]HqBͲHH-H9v̲]ĉ;EH}EHE8HP H} H}z HXHt號HEH0L8L@LHH]UHHd$H]LeLmH}Hu0)βH}@HEH=}~H~t/LeLmMu˲I]H苋LHEH@HEHuH}qH}hHEHEHEƀLeLmMu˲I]H'LHuHEHxtHEH@Hx;H]LeLmH]UHH$HLLL L(H}uHUM̲HEHDžHHDžPHUH`H>wHcHXHEHu[1HH-H9vʲ]HcEHqʲHUHtHRH9xLeH]HtH[HHH9v9ʲHH}A|]8HMHtHIHcEH)qFʲHq;ʲHcUHq,ʲHuHHlHHHP艼HPHuHcMHqɲHuHHHHH}=LeI$HcUHH9vYɲLcmLI$gIk0H<Hu褾}OHEH@HDž8 H8M1H-PH=+[vHH5H$LeI$HcEHH9vȲLcmLI$wfIk0HD(HtH@HHcUH9LeI$HcUHH9v`ȲLcmLI$fMk0Nl#(LcuIqtȲLHH9vȲLJ|#(eKDHE4}*LeI$HcEHH9vDzLcmLI$eIk0Ld(Mt Md$IIqDzLHH9vDz]D9|]DeDEԃELmMHcUHH9vIDzLcuLIeIk0I<虳HE;]Hc]HqQDzHH-H9vƲH}~LeI$HcEHH9vƲLcmLI$dIk0H<费ELeI$HcEHH9vyƲLcmLI$5dIk0H\HtH[HHqƲHHH9v+Ʋ]7HcEHc]HqNƲHHHH9vŲ]LeI$HcUHH9vŲLcmLI$cMk0Nl#HcEHH9vŲLcuLJ|#UcO|HHH0H]LHcUHH9vOŲLceLH cIk0MdHcEHH9vŲLcmLI|bO$MuIJI$H耄H0LHHH}蠮Eȅ}/Hc]HqIJHH-H9vIJ]}~0Hc]HqIJHHH9vlIJ]xLeI$HcUHH9v@IJLcmLI$aMk0Nl#HcEHH9v IJLcuLJ|#aKDHEE;E}HELLuHEHHuòL#L7LLA$HELeI$HcUHH9vqòLcmLI$-aIk0H<HuhLeI$HcEHH9v(òLcmLI$`Ik0DHc]Hq<òHHH9v²H}hHE9HHHPH}xHXHt藕HEHLLL L(H]UHH$HLLH}HuHU IJH}u'LmLeMuLH蕁LShHEH}HUHuHFnHcHUu]HEHE@hHE@lHUH}1^H}HEH}tH}tH}HEHْHEHtlHhH(舏HmHcH u#H}tHuH}HEHP`脒zH HtY4HEHLLH]UHH$`H`LhLpLxL}H}Hur²HEHx`HuAHHEHx`HuH}HE@PHEHt0H}LeLmMuI]HLHEHǀHEu5HEHx`%t$HEPhHEHp`HEH0HEHH=@ZxHEHUHuōHkHcHUHEHHtH[HH-H9vBAHEHH IH]LeMuM,$L~HLDALuM1LmMu轾I]Ha~LLHEPhHEHHuH} yHEHt莑H}H`LhLpLxL}H]UHH$pH}HuUM迈HDžxHUHu_HjHcHUuA}t;HxHu1H!PHxQHxHcUH}16HxHEHt謐H]UHHd$H]LeLmLuH}0YHEHuH=.~zHUHHELHPHELMuM.L|HLAxHEHuXHELHPHELMuM&Le|HLA$HEHEHHu_bH]LeLmLuH]UHHd$H}YH"[HEHppH=3[HE@s.HE@r,H]UHH$HLH}HuHUHMLEH}H}ֽHUHp!HIhHcHhHuH}EԅHPH׉HgHcHqHc]Hq讻HH-H9vV|FEELeȋE=v1EI LMLEHUHuH}a;]wH}ϲHHt퍲XH}H}HhHtōHLH]UHH$H}HuHUHMLELMH}H}@PHEHDžXHDžPHDžH(HoHfHcHHEHxHEHxHEHHHu1 HHHEHEHp+1HHHuH}1H}t/HEHp+1HHH}9H8HE<*,v@,,t4,,e,z,t,,,HuH}HEH}tHuH}yHEH}t HEH;EtH}u#HuH}uHuH}?HE<t,t5,,,, ,H,;HEHHHu1 HH8HEHt=HEH-H9v+}HuUtHUHuH}HUHuH}6HUHuH} HEH=vʷu1H8HHuH}DgHUHuH}QH}HP HHu1 HHHUH}1E@EEvEsFH}tHuH}1HcPUHuH#HHuH}1]}|HUHuH}vHUHH9v跶UHuHHHuH}0SHuH}۽pH}tHuH}۽`H}tۭpۭ`ztH}u#HuH}uHuH}HpH$fxfD$H6HHuH}HUHuHX H}tHUHuHP H}tHXHPTHtH}u#HuH}+uHuH}-HXHuH}HuH}HLH}tHuH}HHH}tL:HtH}u#HuH}uHuH}]LHuH}HuH}sH@HH=ZMgtTHuH}PH}H5.PaHu HEHEHuH}5HcHEH}tHUHuH}HUHuH}HuH}۽PHPH$fXfD$HPHHUHuH}XH`H}ht)H`H$fhfD$HuH}5HPH$fXfD$HuH} HUHuH@H@HUHHH}ìHHHuH}HuH}H88HuH}<HcH(u#H}tHuH}HEHP`Hcd>cH(HtfeHEHLL H]UHHd$H]LeLmH}Hu0IH}~'LeLmMu0I]HPLHEHxHEHxKHEH5}HEHx HM|0H}1!KH}tH}tH}HEHPpH]LeLmH]UHHd$H]H}腒HEHcXHqҐHH-H9vzHEXH]H]UHHd$H]H}%HExHCHEHcXHq`HH-H9vHEXH]H]UHHd$H}蹑HOH=L[RHH5H_H]UHHd$H}iHExEEH]UHHd$H]LeLmLuL}H}HuX!H}^H}u?HEHHHHH9}HHqDH2A#HuH}0HEHt HE@(HEHX HtH[HHq펲HH-H9v蕎HE؋E؅EDELeI\$ HcEHH9vSLcmLI|$ ,IN|+LuH]LeID$ HEHcEHH9v LcmLI|$ +LHHLLH]E;E`H]LeLmLuL}H]UHHd$H}Hu uEHEHMHuH}1Iu!HEHx&EHuH}1EH]UHHd$H}Hu EHEHMHuH}Iu$HEHxEHuH} EH]UHHd$H}Hu 蕎EHEHMHuH}I4u$HEHxEHuH}EH]UHHd$H}Hu %EHEHMHuH}Iu$HEHxEHuH},EH]UHHd$H}Hu 赍EHEHMHuH}ITu$HEHxsEHuH}EH]UHHd$H}Hu EEHEHMHuH}Iu$HEHx裰EHuH}LEH]UHHd$H}Hu ՌEHEHMHuH}Itu$HEHxEHuH}EH]UHHd$H}Hu(eEHEHMHuH}It HE@E%HEHxwxEHUEBHEH(EH]UHH$PHXH}HuHUMԋHDž`HDžhHUHx XH16HcHpELEHMHuH} 1tHEHp H}DZWHEHpH}fHEH8HEH8H5OױHtYHEH8H5OֱHtAHEH8H5OֱHt)HEHH}HhHhH}'DZHEH8}HEHpH`H`HEH0HhHhH}1HȱHEH00HhAHhH}ƱHEHpH}0HEHx HEH0ƱHE؁H(HEH8u}u H}Hu`ƱYH`űHhűHpHtZHXH]UHH$`H}HuU蟉HEHDžhHUHxUH3HcHpHuHh-vHhH}=HEHxHNHuHEHtHEH@(HE}vHEHHHUؾH=}HEHEHxHuϪHEHxHHuGHu/1ҾH=C[IHH5HVHEXHhbıH}YıHpHtxYHEH]UHHd$H}HuUHMLE0HEH}زHHHUHHEHHUH@0H;Bu)HEHEB(EHMHEHEB,HEH@(HEHHEH@HB0EHEEH]UHHd$H]LeLmH}HuHU8UHEH@ HtH@HHq蕅HEH5}HEHx HM$LmMe HEHX HtH[HHqLHHH9vHI} "HHEIHEIDH]LeLmH]UHHd$H]LeLmLuL}H}HuHUPmHEHX HtH[HHq譄HH-H9vU]؃EfmLmMe HcEHH9vHc]HI} !HIH;E2HEHP HtHRHHqHcEH9HEH@ HtH@HHcUH)qꃲHq߃HkqԃILmI] LceIq躃LHH9vcLI} '!IN4#H]Lc HcUHH9v/LcmLH{ LHI4LL)&HEH@ HtH@HHq)HEH5}HEHx HMغH"}~H]LeLmLuL}H]UHHd$H]LeH}0aLeMuSI$HAH]HHHHH9vFHEL` Mt Md$ILHH9vMkqNIqDLHH9v큲LeHEHxHEL`Mu訁I$HLAH]HHHEHPHkbuHHbsՁHsˁHEsHEHEHxHEAHEHx(HEs萁HEHEH@HEH}t H}1HEH}uHEH]LeH]UH1傲H~HjHH]UHHd$H]H}Hu 衂H}HuHEH8tbHU1HltPH]HEHH9v|Hu1H>ϱH}tHEH0HuH5DHUHH]H]UHHd$H]H}HuHUH큲EEHEH@HuHބHEfHEȊt%,",te,,tp,HEH@HuHHUH)HEH@HtH@H9THOHEEHOHEEHwOHEEHhOHEEvHYOHEEbHMOHEENH}tHUHEȊHE*Hc]HqHH-H9v~]HEE}jH}t6Mԃ|[EfDEHUHE؊HEHE;M-HcEHc]Hq~HH-H9v=~]HEHH]HcUHH9v~HcEHEH]H]UHHd$H}Hu HE&H_бH}H}HuLHuHtHvH}1o̱HEHuHHEHEHHuHhHE@HEt ,&t9HEHuH=HUH)HEHtH@H9HEHEHEHELHE&HE;HUHEHEHE HEHHuHmHuH)H}1;ʱH]UHHd$H]H}Hu !}H}HutHEH8tbHU1HltPH]HEHH9vzHu1HɱH}tHEH0HuH5HUHH]H]UHHd$H]H}HuHUHm|EEHEH@HuH^HEfHEȊt ,HHcHUuCHEHMH}1OHEH}tH}tH}HEHSAHEHtlHhH(>H*HcH u#H}tHuH}HEHP`@B@H HtCCHEHLLH]UHH$HLLH}HuHUpH}u'LmLeMunLH.LShHEH}HUHu=H6HcHUuCHEHMH}1HEH}tH}tH}HEH?HEHtlHhH(BHEHLLH]UHH$HLLH}HuHUoH}u'LmLeMupmLH-LShHEH}HUHu;HHcHUuCHEHMH}1oHEH}tH}tH}HEHs>HEHtlHhH(";HJHcH u#H}tHuH}HEHP`>?>H Ht@@HEHLLH]UHH$HLLH}HuHUnH}u'LmLeMulLH+LShHEH}HUHu.:HVHcHUuCHEHMH} 1HEH}tH}tH}HEH=HEHtlHhH(9HHcH u#H}tHuH}HEHP`<9>;<4;H Ht>=HEHLLH]UHH$HLLH}HuHU9kH}u'LmLeMu iLH(LShHEH}HUHuN7HvHcHUuCHEHMH} 1HEH}tH}tH}HEH#:HEHtlHhH(6HHcH u#H}tHuH}HEHP`9Y;9H Ht<~`I]HLLPH}1kH}tH}tH}HEHPpH]LeLmLuH]UHHd$H}aHEHxtH}!HEHxHu褥 H}IH]UHHd$H}HuuaH}1ʝH]UHHd$H}HuEaH]UHHd$H})aHEHx0Hux`H]UHHd$H}`1H]UHHd$H}`HEH=}HH]UHHd$H}`HEH=a}HH]UHHd$H]LeLmH}(M`LmLeMu;^I$HLHEHu H}$HEHEH]LeLmH]UHHd$H}_HEHEHEH@(HEHt HEHEHEH@HEHuHEHEH]UHHd$H}y_HEH@ HEHuHEH@HEH}!HEHtHEHEHEH]UHHd$H]LeLmH}0 _LmLeMu\I$HLHEHt?DLeLmMu\I]HjLHEHt HEHEHEH]LeLmH]UHHd$H}i^HEHEH@HE"HEHq\HEHEH@HEH}uHEH]UHHd$H} ^1H]UHHd$H}]1H]UHHd$H}]1H]UHHd$H}HuHU ]H} H1OH=%}HH5H+1H]UHHd$H}HuHU A]H}HOH=Ź}HH5Hn+1H]UHHd$H}Hu\HOH=R} HH5H+1H]UHHd$H]LeLmLuH}Hu8\LuH]LeMuoZM,$LHLAPHEH]LeLmLuH]UHHd$H]LeLmLuL}H}Hu@\L}Lu1LeMuYM,$LHLLA@HEH]LeLmLuL}H]UHHd$H}[0H]UHHd$H]LeLmLuL}H}@u@a[HELx0DuH]LeMuCYM,$LHDLApHEH]LeLmLuL}H]UHH$PHXL`H}@uHUZHDžxHUHu'H;HcHULeMuXI$H2HHhHhHpHDžhHh1H5zOHx>oHxH=}HH5Ht(HE)Hx땱HEHt +HEHXL`H]UHHd$H}HuY1H]UHHd$H}YHEH@0@XH]UHHd$H}HuHU QYHEH@0Hx`HUHuCH]UHHd$H}Y0H]UHHd$H]LeLmH}8XLmLeMuVI$HLHEHEDLeLmMuVI]HBLubHEH@(HEHEHx8t8H}tHEHp8H}>HE`HEHEHEH@(HENH}HEHE;LeLmMuVI]HLhHEH@(HEHEH},H]LeLmH]UHHd$H]LeLmLuH}Hu0WH]LuLeMuUM,$L#LHAH]LeLmLuH]UHHd$H]LeLmLuH}Hu0%WLuH]LeMuUM,$LHLAH]LeLmLuH]UHHd$H}HuVH}1H]UHHd$H}HuVH}1꒱H]UHHd$H}HueVH}1躒H]UHHd$H}Hu5VH]UHHd$H}VHEH@0H]UHHd$H]LeLmH}@u@U}t HEHHE`LmLeMuSI$HSLHE@@uH}HEH@(HEH}uLeLmMu^SI]HL`LeLmMu/SI]HLHEH(HqaSHH-H9v S|@EfDEE=vRuH}Y(I@uL;]H]LeLmH]UHHd$H}yTHE@t@HEH@0@ u/H ̹OH=}HH5H"H]UHHd$H]H}HuUM0SHc]HcEH)qIRHH-H9vQ]EifHEHcUHUHcEH)qQHH-H9vQ]Hc]HqQHH-H9v|Q]؋E;E}}tEH]H]UHH$`H`LhLpLxH}HuRHEHUHu<HdHcHULuLeLmMuPI]HSLLH]HtH[HH-H9vPLeMtMd$LH-H9vlPDHuHuH5IUH}HuH=9UE!H}HEHt##EH`LhLpLxH]UHHd$H]LeLmH}0QLeLmMuOI]H?L|'tuH}nIHEgHEH@`HEYHEH@HE@HEH@HEH}t,LeLmMu#OI]HLuHEHEHEH]LeLmH]UHH$@H@LHLPLXL`H}HuHUPHDžhHUHxHHcHpH}1趌H}LeLmMu9NI]H LjHE@{LuLhLmMuMI]H LL HhHu詛Hu5H]LuLmMuMMeLR LHA$LeLmMu}MI]H! L`LeLmMuNMI]H LHEH#HqMHH-H9v(MAEKEDEE=vLuH}q"HEIHhLeMuLM,$LY HLA HhH56OiHuGH]LhLmMukLMuL LHAHhHu"HtQH]LhLmMu$LMuL LHAHhH5OؙHu8H}u1H]LeLmMuKMuLz LHA&D;}H}HHuHUH HhtHpHtH@LHLPLXL`H]UHHd$H]LeLmH}HuHU0MH}1jH}tfH}t_LeLmMuJI]H LuHuHMHUH}KiH}HHuHUH]H]LeLmH]UHH$@H@LHLPLXL`H}Hu?LHDžhHUHxHHcHpEH}LeLmMuII]H LHEfxRuMLuLhLmMuII]HE LLHhH}YHEyLeLmMu[II]HL`/LeLmMu,II]HLHEHHq^IHH-H9vIAEEEE=vHuH}QHEIHhLeMuHM,$L9HLAHhH5OIHuKH]LhLmMuKHMuLLHAHhHuHE%D;}?H}6HHuHwEHhӅHpHtEH@LHLPLXL`H]UHHd$H]LeLmH}Hu(yILeLmMugGI]H L{tmHEHH}臅bHEHxtHEHxHuiDLeLmMuFI]HL0HH}0 H}1#H]LeLmH]UHHd$H}HHEH@8H]UHHd$H}iHHEH@@H]UHHd$H]LeLmH}Hu()HH}~'LeLmMuFI]HLH} HEHxHuH}1H}tH}tH}HEHPpH]LeLmH]UHHd$H]LeLmLuL}H}HuHUXmGHEHELmLeMuSEI$HLEH}HEHUH@0H;B0t;} u HEHx0t*HЬOH=}HH5HEH}t8HEH@H;Et*HOH==}HH5HEԃr~LeLmMu}DI]H!LHtRHEHEAHEH;Eu*H?OH=ۢ}HH5HHEH@HEH}uHEH;EHEH@0HXXLc#IqIDLH-H9vCD#} FLeLmMuCI]HVLHEH|LeLmMuvCI]HLLuLmMuMCMeLLA$Aă vFCE! v HĻ}B\r*HͪOH=}THH5HBHEH@(HEH}C;HELp8L}H]LeMuBM,$LNHLLA@HEHx8ujLeLmMulBI]HLà vhB!ۋEԃ v H}Dr*HOH=}uHH5HcHEHxt6HELpLeHELhMuAI]H~LLPHEHUHP(H}uGHEHx8t"HEH@@HUHP(HUHEH@@HB HEHUHP8HEHUHP@HHEH@8H;EuHUHEHB8 HEH@ HUHP(HUHEH@ HB HUHEHB HUHEHBHEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHUHBL}LuH]LeMu@M,$LGHLLA@H}t HuH}HEHEH]LeLmLuL}H]UHHd$H]LeH}Hu(-BH}HEH@H;Et*HGOH=}>HH5HLHEH@0HXXLc#Iq2@LH-H9v?D#HEH@8H;EuHEH@8HUH@(HB8HEHP HEH@(HB(HEH@@H;EuHEH@@HUH@ HB@HEHP(HEH@ HB HEH@ HEH@(HEH@HEHEH]LeH]UHHd$H}Hu@HEHx8t"HEH@@HUHP(HUHEH@@HB HEHUHP8HEHUHP@HUHEHBH]UHHd$H}i@HEHx8EEH]UHHd$H}9@HEHx8u HEbHEHxHtHEHxH, !HEBHEHEH@8HE%fDHEHq9>HEHEH@(HEH}uHEH]UHHd$H]LeLmLuH}Hu8?HEH@8HEELuLeLmMuZ=I]HLLtHEH@(HEH}uHEH]LeLmLuH]UHHd$H]LeLmLuL}H}HuHUH>LmLeMuHEH@8HEPHEH@(HEHEH@LuALmMu;I]H|LLS`HEHEH}uHEH@8HEH@@H]LeLmLuH]UHH$`H`LhLpLxH}HuF=HEHUHu HHcHUH}1jyHEH@8HELeLmMu:I]HL|@t|6q+HE@ubHEHP8HEH0H}1 zFDLuLeLmMuv:I]HLLHUHEH0H}1yHEH@(HEH}9 H}xHEHt5 H`LhLpLxH]UHHd$H]LeLmLuH}Hu0;H},4fHELp8LeLmMu9I]HBLLPHEHx8uH}tHEHx0Hu36HH}'H]LeLmLuH]UHH$HLLH}HuHU ;H}u'LmLeMu8LHLShHEH}8HUHuHFHcHUHEH}1HEHUHPH}HcHq8HH-H9vy8HEXH=BZaHUHBHEH}tH}tH}HEH HEHtlHhH(LHtHcH u#H}tHuH}HEHP`H > H Ht HEHLLH]UHHd$H]LeLmH}Hu(I9H}~'LeLmMu07I]HLHEHpH=ܠ}t$HEH@H@HH;EuHEH@H@HHEH@Hx0HuZ;HEHxMH}1H}tH}tH}HEHPpH]LeLmH]UHHd$H}Hue8H]UHHd$H]LeLmLuH}@)8HEHxlkHEHxoHUBHELhHEL`Mu5I$HLHELuLeLmMu5I]H^LLEsHEHxHujHEEttu+LeLmMu^5I]HLHEH}u1!@HEH@(HEHuHEH@HEHEH@H;EuHEHEH}*H]LeLmLuH]UHHd$H]LeLmH}(6H]HEHx ;Ct'LeLmMu4I]H9LHEHXC=v4CEH]LeLmH]UHHd$H]LeLmH}u0*6H]HEHxy;Ct'LeLmMu4I]HLHEH@@;Ev(HEH@HXE=v3EHHEHEHEH]LeLmH]UHH$HLLH}HuHUHMU5H}u'LmLeMu<3LHLShHEH}HUHujH߰HcHxunHEHUH}1HEHx Hu,qH]HEHx H5!O蔀HC:HEH}tH}tH}HEHHxHtlH`H HްHcHu#H}tHuH}HEHP`DHHtiHEHLLH]UHH$HLLH}HuHUHMLE3H}u'LmLeMu1LH-LShHEH}]HUHxHݰHcHpHEHUH}1HEHx0HuqoHE@8H]H}H5bO~HC9HE؀x9uHEHx0Hu09HU؉B(H]H}H5#O~HC:HEH}tH}tH}HEHHpHtlHXHHܰHcHu#H}tHuH}HEHP`FHHtkHEHLLH]UHH$PHXL`LhLpH}Hu1HDžxHUHuHܰHcHUELeLmMuY/I]HLHEx8,HEx9uHEHUf@Pf;B(gHE@REHEH@THHtH[HH-H9v.]HEx:HcUHcEH)q/HEH@0HtH@H9HELhTMeHc]Hq.HHH9v.HI} }I\HEL`0MtMd$LHH9vM.LHEHp0HuH5&3HtdE[HEx:tJLuLxLmMu-I]HLLHxHEHp {HuE1HxkHEHtEHXL`LhLpH]UHH$HLLH}HuHUM&/H}u'LmLeMu -LHLShHEH}HUHu;HcٰHcHxuPHEH}1HUHEHBHUEBHEH}tH}tH}HEHHxHtlH`H HذHcHu#H}tHuH}HEHP`3HHt}XHEHLLH]UHHd$H]LeLmH}Hu0-H}~'LeLmMu+I]H4LHEHxHEHx qHEH@ HcXHq+HH-H9vP+|1]؃E쐃mHEHx u]HH}HEHx ~H}13H}tH}tH}HEHPpH]LeLmH]UHHd$H]H}u ,HEH@HXE=v*EHHEH]H]UHHd$H]H}u B,HEH@ HXE=vG*EHHEH]H]UHHd$H]H}+HEHx tHEHX C=v)CEEEH]H]UHHd$H]LeLmLuH}HuHUP+EEHEHx JHEH@HcXHq)HH-H9vX)]HcEHc]Hq~)HHH-H9v#)]HEH@HXE=v)EL4LeHEH@HXE=v(EL,Mu(I]HRLLEԅ~,Hc]Hq(HH-H9v(]:Hc]Hq(HH-H9v\(]܃}u EE؉EE;EH]E=v*(EEH]LeLmLuH]UHHd$H]H}Hu()HEHuH}Ht(HEH@HXE=v'EHHEHEHEH]H]UHHd$H}HuHU A)1H]UHHd$H]LeLmH}Hu8 )EHEH@@t EHEH@HUH@0H;B0t EiLeLmMu&I]HULHU;Bt E0HExu&HEH@`HEHtHEH@H;EtE EH]LeLmH]UHH$PHPLXL`LhH}Hu(HDžpHUHuIHqҰHcHx:HuH}E܅t-UH 9OH=u}HH5HHExuZHUHEH@HB`LuLpLmMu[%I]HLLHpHUH}EHLuLpLmMu%I]HLLHpHUH}5E}HEH@HXE=v$EHHEH;EHExu HEH@`HEH@HXE=v$EHUHHEHx Hu[=vm$]HEH@ HXE=vO$UHEHHEHxuH=.Z#ݱHUHBHEL`H]E=v$uHL[HEHx uH=;.ZܱHUHB HEHx HuXHE HptaHxHtHEHPLXL`LhH]UHHd$H}Hu%%HEH}HH]UHHd$H]H}u $HEH@HXE=v"EHHEHEHXE=v"uH*XHEHx Hu[HExu HEH@`HEH]H]UHHd$H}Hu U$HExubHEH@HxTtSHEH@H@TH@HEHt:HuH}OHEHt$HE@tttuHEHxHuCH]UHHd$H}Hu #HEHEHuH}HtuH}HEHuH}HEH]UHHd$H}HuU#HEH@@t/H OH=}}臬HH5HuHuH}(HEHu*HOH=l}'HH5H5HEH]UHHd$H}HuHU "HOH=}ɲHH5H1H]UHHd$H]LeLmLuL}H}uHUHM`:"HEHxbHEH@HcXHqt HHH9v HEȋEȅ!EEHEH@HXE=vELHUuH}H]UHHd$H}i H]UHHd$H}Hu5H}H5:OTH]UHHd$H}@uHU H}xHE}tHUHuH}HEH]UHHd$H]LeLmH}uU@EH}@؆u EH]HtH[HH-H9v]Hu:gHH-H9vU]Hc]Hq{HH-H9v#LceIqTLH-H9vA9|Y]؃E@ELmHcEHH9vHc]HH}HcA|:u ED;e}tTE;EtLLeHc]HqHHH9vfHH}bI|U踅u E}v}u }_}t}uHuH={OeHu0҃}8u'}u(HuH=}OeHu }tEEH]LeLmH]UHH$pH}HuHU^HEHUHuH̿HcHxHuH}}QH}H5r}Ou1H}tZH}H5w}O`HtEH}H5}O`Ht0H}H5}Ou"H}tH}H5R}O`HuEE)H}PHxHtEH]UHHd$H]H}HuHUHM8IHE0ҾHfEԅ}_Hc]HHH9utHH-H9vH |OH=n}BHH5H01ҾH=f}}HEHx8Hu PHEHx@HuOHEHxHHuOHEH]H]UHH$HLLH}HuHUHM5H}tVLeLmMuI]HаL0Ht*H|OH=p}躡HH5H8H=}HEHUHP`HUHx߱H.HcHpuAH}tHUHEHB0HuH}@HUHuH}HEHH}HpHt\HXHޱH讼HcHuH}ʱHHtgBHEHLLH]UHH$HLL H}HuH}u'LmLeMutLHϰLShHEH}CHUHuݱHʻHcHUHEH}11֬HEHUHP0H[}HHqUHqJHHq;HH-H9vHEH]HcHH9vHc#HUHH=}+HUHBpHEH5}HEHxhHMޭHEHXhHxhH{H}H0uLHEHXhHxh﫱H{H}H0LLHUH=T\}藫HUHBx H=}wHUHHEH}tH}tH}HEH߱HEHtfHhH(۱H繰HcHUu#H}tHuH}HEHP`ޱIޱHEHtqHEHLL H]UHHd$H]LeLmH}Hu0H}~'LeLmMu I]HT̰LHEH HEHxPHEHDZHEHxxƱH}1HEHcHH?HHHHq HH-H9v> |9EEHELE=v EIHuHEfxPjLeMuwI$HH]HH-=}H9u!H}H5WO(>Hu HEfxPuHEH@TH8H5WO>Hu*H]OH=V}HH5HQHEHhH]OHpHEPRHq%HEH@TH0H`Y@H`HxHhH}1ɺ1HEH@0L`pH]HtH[HH-H9vsHuHuH5QLI|HUHBTLeH]HtH[HquHH=v%fA\$RH`,H},HEHtHPLXH]UHH$PHXL`LhLpLxH}HuHEHUHużH횰HcHULuLeLmMu8I]HܭLLH]HtH[HH-H9vALuH]LeMuM,$L膭HLAH]HuHLeMtMd$LH-H9vDH}HuH=HDUEH}T+HEHtvEHXL`LhLpLxH]UHHd$H]H}HuU HEHx0Hu=vHEfXPH]E=vfEfCRHEHH]H]UHHd$H}H]UHHd$H]LeLmH}Hu(IH}~'LeLmMu0I]HԫLHEHx`t"HEH@`@ uHEHx`HuH}1蓥H}tH}tH}HEHPpH]LeLmH]UHH$@HHLPLXL`LhH}@uHUkHDžpHDžxHUHu裹H˗HcHUHE@LuLxLmMuI]H親LLLxLuHpLeMuM,$LnHLAHpH}L~HEELuLpLmMuI]H#LLHpH}HEHUHE@hBhHUHuH}$迻Hp(Hx(HEHt)HEHHLPLXL`LhH]UHH$`HhLpLxLuH}HuHEHUHu߷HHcHUuNLuLeLmMuVI]HLLHuH}'HExht H}^`詺H}'HEHt"HhLpLxLuH]UHHd$H]LeLmLuH}Hu0LuH]LeMuM,$LCHLAHEHH]LeLmLuH]UHHd$H}IHE@EEH]UHHd$H}HExhEEH]UHHd$H}H]UHHd$H]LeLmH}Hu(H}~'LeLmMuI]H4LHEH HEH@0HxPtHEHx0HuHEHx`趠H}1H}tH}tH}HEHPpH]LeLmH]UHH$ H L(L0L8L@H}@uHUHDžXHDž`HUHpHHcHhiHEH@0H;EHE@LuL`H]Hu:L#LߥLLA$L`LuLXH]HuL#L覥LLA$HXH}LHEhLmLXH]HuL#L[LLA$LXLmH]HuL#L)LLA$HEHEHx`4HEHx`;HqHH-H9vFHPPEEHEHX`E=v uH肺HEHvtLL}LuAH]HuL#L^DLLA$pHH}!HHP;EoNHEHx0H52}HEHEHP0H}HHMHUHBPHAPBXAXHE@tHEHHEHx`HEHx`HqNHH-H9vHHHEEHEHX`E=vuH2HELmLuAH]HuuL#LDLLA$pHEH}uHEȃ`HuH}H;El}tHUHuH}蘴HX H` HhHtHEH L(L0L8L@H]UHHd$H}HEHx`tHEHx`quEEEH]UHHd$H]LeH}0AHEHxTHEH@TH@HEHHEHx`HEHx`HqPHH-H9v|WEDEHEL``E=vuLBHE@tttu HuH}R;]H]LeH]UHH$@H@LHLPLXL`H}HuHUHM'HDžhHUHxgH菍HcHppH}1BH}ZHE@LuLhLmMuI]HQLLHhHue.HulHEfxRv`H]LuLmMu^MeLLHA$ HEHH}HhMHhHu-HHEHx`hHEHx`HqKHH-H9v߱AE*EEHEHX`E=v߱uH:HEIHhLeMu~߱M,$L"HLA HhH5FO2-HH]LhLmMu0߱MuLԞLHAHhHu,Hu[H]LeLmMuޱMuL萞LHAHEHH}Hh܏HhHu,Ht*D;}H}ĎHHuHMHUH Hh\HpHt{H@LHLPLXL`H]UHH$@HHLPLXL`H}Hu߱HEHEHDžhHUHx&HNHcHpnH}@HELuLeLmMuݱI]H*LLHuغ: 0HH-H9vcݱ]HuغH=DO/Hu8HEHtH@Ht }UHU}H0H}}}u5HuغH= GO.HuHKU}H0H}HHcMHqܱHuغHh4-HhHuH}萍UHuH}@HE@tHEHHuH} ɭHhH}H} HpHt*HHLPLXL`H]UHHd$H]LeLmLuL}H}8ݱHEHx`HEHx`艱Hq۱HH-H9v۱AE|aEDEHEHX`E=ve۱uHڰILMMu'۱M,$L˚HAhD;}H}H]LeLmLuL}H]UHHd$H}ܱHEHx`u"HUH=1R}DHUHB`HEH@`H]UHHd$H]LeLmLuH}HuHU@QܱH}114)HEHx`tJHEHx`HuHHEHt0H]LuLmMu ڱMeL譙LHA$H]LeLmLuH]UHHd$H]LeLmLuL}H}HuHUHMP۱H}11|(HEHx`wHELx`LuH]HEL``Mu[ٱM,$LHLLAHEHt0H]LuLmMu ٱMeLĘLHA$H]LeLmLuL}H]UHHd$H]LeLmLuH}HuHUHڱH}LeLmMuرI]H:LHHUHuH辮tMLeLmMuXرI]HLHËuH腭HH=$}&HEHEHx0HuLHEHUHP`HEH@`HxuH=eYHUHR`HBHEH@`L`H]؋E=vױuHLHEH@`Hx uH= Y觐HUHR`HB HEH@`Hx Huv LuH]LeMuPױM,$LHLAH]LeLmLuH]UHHd$H]H}HuٱH}hHEHx`tHEHx`HuHHaH]H]UHHd$H]H}HuHU رH}HEHx`t HEHx`HUHuHHH]H]UHH$@H@LHLPLXH}HuHUHMرHDž`HUHp^H膂HcHhH}KHEHx0HuEHEH@0P\uH}޿Eȅ}_Hc]HHH9uձHH-H9vձH COH=/2}`HH5H訥LeLmMu6ձI]HڔLHHcUHqoձHuH`%H`HM܋uHtsHEHx`ulHEHEH@`H@HXE=vԱEH4HEH@`Hx HEH@`HXE=vԱuH PHEHx0H5*!}HEHEHP0H}HqHEHUHP`HEfUfPPHEЃHHEHx`HUHuTHEH@`HxuH=iYHUHR`HBHEH@`L`H]ЋE=vӱuHL HEH@`Hx uH=Y諌HUHR`HB HEH@`Hx HuzHEH@0L`pH]HtH[HH-H9vYӱHuHuH57؝L/`HUHBTHEfUfPRLuLeLmMuұI]H虒LLhH`HhHtۥH@LHLPLXH]UHHd$H}HuuԱHEHx`t&HEHx`HuyHH=}JHEHEHEH]UHHd$H]LeLmLuL}H}HuHUHӱHEHx`tSHELx`LuH]HEL``MuѱM,$LtHLLAHH=z}襄HEHEHEH]LeLmLuL}H]UHHd$H]LeLmH}Hu0IӱLmLeMu7ѱI$HېLHHuHӪHH=}HEH]LeLmH]UHHd$H]LeLmLuL}H}Hu@ұLmLeMuбI$HCLL}ILMMusбM,$LHLAHH= }KHEH]LeLmLuL}H]UHHd$H}HuұH}l}HEHEHEHx`oHEH@`Hxt`HEH@`HxHu! ~FHEH@`Hx Hu HEHxTtHEH@TH0HEHx`HEH@`*H=OH=/}aHH5H謟HEH]UHHd$H}Hu%ѱHEHx0HMHuE01H]UHHd$H}HuHU бHEHx0HMHUHuAH]UHHd$H}HuбHEHx`tHEHx`Hu試HtEEEH]UHHd$H]LeLmLuL}H}HuHUH=бHEHx`tIHELx`LuH]HEL``MuαM,$L贍HLLAHtEEEH]LeLmLuL}H]UHHd$H}ϱHEHx`tHEHx`聣vEEEH]UHHd$H}YϱH]UHHd$H}Hu%ϱH}H5;Ou H]UHHd$H}HuαHEH}HHE`H]UHHd$H}@uHU αHEHp8H}pH]UHH$PHXL`LhLpLxH}uPαHEHUHu薚HxHcHU!H}yH}};Es*H:OH=)}YHH5H>HEHP0H=}iHEH}(UHq̱HEHp8H}GHuHEHx8 HUHE@BHEHp8MH} HuHEHx8 HEHxtBHELx(HELpH]HEL`Mu˱M,$L辊HLLA@艜H}HEHtHEHXL`LhLpLxH]UHHd$H}̱HE@EEH]UHHd$H}i̱H]UHHd$H}Hu5̱H}H5 9OH]UHHd$H}@uHU ̱HEHp8H}H]UHHd$H}˱H]UHHd$H}Hu˱H}H58OH]UHHd$H]LeLmLuH}@uHU@Q˱HELp8H]LeMu7ɱM,$LۈHLAHEH]LeLmLuH]UHHd$H}ʱ H]UHHd$H}HuʱHEHp8H}H]UHHd$H]LeLmH}Hu(iʱH}~'LeLmMuPȱI]HLHEHxX辂HEHx`豂H}1VgH}tH}tH}HEHPpH]LeLmH]UHHd$H}ɱHEHxXu"HUH=}DHUHBXHEH@XH]UHHd$H}iɱHEHx`u"HU H=i}HUHB`HEH@`H]UHHd$H} ɱ H]UHHd$H}HuȱHEHp8H}$H]UHHd$H}@uHU ȱHEH5:}HHEHUH}H&dHEHp8HEHx8HEHp@HEHx@HEHpHHEHxHHEH]UHHd$H}DZH]UHHd$H}HuDZHEHpPH}H]UHHd$H}@uHU DZHEH5V;}H޹HEHUH}HcHEHpPHEHxPHEHp`HEHx`HEHpXHEHxXwHEHphHEHxhb}tHUHuH}ۇH}@pHEH]UHHd$H}ƱH]UHHd$H}HuƱHEHpPH}H]UHHd$H]LeLmLuH}@uHU@1ƱHELpPH]LeMuıM,$L軃HLAHEH]LeLmLuH]UHHd$H]LeLmLuL}H}@uHUHűHELx@HELp8H]LeMuñM,$L/HLLAHEH]LeLmLuL}H]UHHd$H}9űH]UHHd$H}HuűHEHp8H}TH]UHHd$H}HuıHEHp@H}H]UHHd$H}HuıH}oHEHx@HuH]UHHd$H}@uHU AıHE@uH}H}HE`HEH]UHHd$H]LeLmLuL}H}HuUXñEHEHHtH[HHH-H9v]Hc]HqHH-H9vAEEDELeM$HcUHH9v`Hc]HI$_I\HtH[HH-H9v&AH]LHcEHH9vLcmLH^K4HuH5ŝUH}DnD;}4HcEHqHEH5A}HEHHMк `LeM$HcUHH9veHc]HI$!^I\HHHcUHu12EEH]LeLmLuL}H]UHHd$H]LeLmLuH}Hu8EHEHHtH@HHHEHHtH[HHqݿHH-H9v腿|ZEfELmMHcEHH9vQLceLI]KtHfRHcHUuKHEH}1^HEHxHuHEH}tH}tH}HEH wHEHtlHhH(sHQHcH u#H}tHuH}HEHP`vAxvH HtyfyHEHLLH]UHH$HLL H}Hu警H}u'LmLeMu蔤LH9dLShHEH}HUHurHPHcHUuHHEH=7}V]HUHBHEH}tH}tH}HEHuHEHtlHpH0ArHiPHcH(u#H}tHuH}HEHP`=uv3uH(HtxwHEHLL H]UHHd$H]LeLmH}Hu(9H}~'LeLmMu I]HbLHEHx]H}1C]H}tH}tH}HEHPpH]LeLmH]UHH$pHpLxH}HuHU萤HUH=?}0HIHUHupHNHcHUuHUHuL0HuL4sHUI$HL\HEHt*uHpLxH]UHH$pHpLxH}HuHUHEHHUH=>} 0HIHUHuoHNHcHUuALEHu11LtHuL4H (F}HOL"rHUI$HL[HEHt*tHpLxH]UHH$HLLLLH}HuHUM8訢EsHEH@HEHEHE}uVLeH]HuoL+L`LA u*HOH=}3HH5HpH]LeMuM,$L_HAt1 t,t*HOH=|?/HH5H-pHUH=<}8.HHHUHhmHLHcH`THUHuHWH]LeMuUM,$L^HA0HH贛HEHHHxmHKHcHHUHuH2LmH]Hu؞L#L}^LA$HE؋Et%t2KHuH}TD9Lu1LeMukM,$L^HLAH]LeMu@M,$L]HAHL}LuLeMuM,$L]LLHAHH]LuL}LeMu֝M,$Lz]LLHA@rHELp(H]L}LeMu蚝M,$L>]LHLA@6LuL}H]LeMubM,$L]HLLAHnH}WHHtGpnHHWH`Ht"pHEHLLLLH]UHH$HLLH}HuHU虞H}u'LmLeMu耜LH%\LShHEH}YHUHujHHHcHUHEH}1DUHE@0HUHEHuHHBHEHUHtHRHPHEHPHEH@HHUHB8LeH]HtH[HغH9v͛A\$PHEH}tH}tH}HEH mHEHtlHhH(iHGHcH u#H}tHuH}HEHP`lBnlH HtogoHEHLLH]UHHd$H}ɜH]UHHd$H}Hu襜H]UHHd$H}HuuHEHxHtHEHpHH}ذ)HEHx tHEHx Hu H}1ذH]UHHd$H} 0H]UHHd$H]H}囱HEHcX0Hq2HH-H9vڙHEX0HUHEH@HB8H]H]UHHd$H]LeLmH}HuHUHMDEX]HEH@HEEDHEH@8 u'LeLmMu)I]HXLHEH@8sHEH@HUrAHEH@8 w"HEH@ r ttrEHEH@jHEH@EHEHPH}Hu@H}tHEHU:u}tEH]LeLmH]UHHd$H]LeLmH}Hu0)EHEHUHtHRHPHEH;Pv+LeLmMuI]HWLt>HEL`H]HtH[HHH9vϗHH}LPE}tNHEHtH@HUHBHEHUH@H;Br'LeLmMu^I]HWLEH]LeLmH]UHHd$H}H}YHUHBpHUHEH@pHBHUHEH@HBHEH@HHUHB8H]UHHd$H]LeLmH}Hu(虘H}~'LeLmMu耖I]H$VLHEHxpHEHtHEHxxHEH}1PH}tH}tH}HEHPpH]LeLmH]UHHd$H}闱H]UHHd$H]H}Hu@HEH@8 tBHEH@8 t5HEx@HEH@8tHEH@8Cf=( HEH@8 uEHEH@HHUH;Bv/HEH@x tHEx@tHEH@xu HEH@HUHEH@HB8HEHcX0HqTHH-H9vHEX0HEH@HEHUH@H;BHEHxHu1H]H]UHHd$H]LeLmH}@mHExXu HEHxQHEHUH@HRH)HEH~HEHppHEHxHUa7HEHUH@HRpH)HUH)B8HUHEH@pHBHEHPpHEHHUHBHEHUHXhHB`H)HغH9vӓ]sWLeLmMu虓I]H=SLHEHUHXhHB`H)HغH9v]XHEHcHEHXpHEH+XHغH9vG] HEHxxHEHHHEHp`LEHUHEEHEUHP`HEH;PhwHEMHPhH)HEHP`H}H5OHEHcHEHHpHUEHBH9r#HEHcHEHPpEH)HEHPH}H5qO|}tZ}}H}H5O`cHE@P]Hs臒HغH9v5HEXPHEHx$HEH@HEHUH@H;BEEH]LeLmH]UHHd$H]LeLmH}0蝓H}HE@0HEH@HU@ B@HUHlHHEǀLmLeMuEI$HPLHEH@8u0HEH@xu"HEH@xuHEƀHEH@HEH@HHUHB8H5}HEHEH@HEH;EuHuH}9HÄt1HEǀHEH@HEHx @HEHx1HHEǀH]LeLmH]UHHd$H}Hu05EH}ujH}1Ҿd6H}tHUHu1HxɰHxHEHE HUH}E11H5Nd_RHx賾HEHtSH]UHHd$H}HuU蒂EHUH}H]UHH$pH}HuHUHMDE运FHDžpHUHuNH,HcHxu0HUHMHuHpHpMH}ؾnQHp½HxHtRH]UHH$pH}HuHUHMDE运膁HDžpHUHuMH+HcHxuEHE@+HE؀t0HUHMHuHp&HpMH}ؾ.PHpHxHt RH]UHHd$H]H}uHUM0軀HEH}H}|CHc]HcEH)q~HH-H9v~]HMHUuH}$HEHH`HUuH} H]H]UHH$0H}uHUHMHEHUHx^LH*HcHp3HEHxHEH@HpHH} H}u+HEH@Hx(tHEH@H@(HH}HEH8HDž0 E艅HHDž@E쉅XHDžPHEHhHDž` H0AH>NH=}AHEHUH=}J@HEHU؋EBHEHx Hu;HU؋EB(HE؋UP,HuH}H}A7~H:auIxuHzmuHzpuE&XxcHzpuZHzouQHzsuHE'-xuHEHcXXHqOHHH9v\OH}H5NzH}Q}&HuH}e}uBH}&艣HEHcPXHEHPPHEHpPH}xH};ZH} H}@HEHHuH}q}*5HEP8HEHp0H}r[H}H5@N{H]UHH$PHPLXL`LhLpH}LHEHEHUHu!HIHcHUHEHx3HuH}H}HEHXP{}H8Xt H8xiHxMt HxmuWHxLt HxluEH}H5rN HtHEPXH}H5vNaHEPXH}H5NHHEH@H@8?t H}@kH5$|H}E01ɺ?1 H]H蝇HHEHcP8HEHp01賣HEu$HxH}AHH5ONHELLuH]HELMu:IM,$LHLLAHEHEHtHEHHu_HELxxHELH]HELMuHM,$LnHLLA@H}H5N"H}yH}pHEHtHPLXL`LhLpH]UHH$ H(L0L8L@H}@uJHEHUH`IHqHcHXH}@S}tHEH@H@8vH}H5NH}_ HuH}`E`HEH@HXEvwGUDHc]HqGHH-H9vGG]HEHxg0}}HEH@H@:Eu}u}1u}.u }0t}1tH}H5pNuH}0}1E}uUHELMuFI$H?HH5M|tFHEHEH|H4R%}tHEx uH}H5 N}uHEH@H@8?t H}@}uHEH@H@8egH}H5NH}HuH}E`HEH@HXEvEUDHc]HqEHH-H9vE]HEHx.}}HEH@H@:EfHEH@H@8sUHEH@H@Ar R}~,HEH@H@-r r/t uH}uUH}H5N H]H蠂HHcUHu1辞HELpLeHELhMuDI]H$LLu\HEHPHDžH LHHc]HqDHH-H9v@DAH}1H5NL}uOHELMuCI$HHH5|"tHEHHHuHEH@H@8?t}@H}!}HEH@H@8sH}H5NbH})HuH}*HEHxH5 Nt HE@h-HEHxH5 NĪuH}H5NKuH},H}@0rH}H5?N}u}t H}=HH}蟀HXHtH(L0L8L@H]UHHd$H}YDHEHHEd fDHEHEH@H@H;Ev HE8 uHEHHEHHU豗HE8 uHEHEHUHHEH@H@H;EwHEH@HUH@pHH]UHH$HL H}CHDž(HUHuHHcHUHEx$rH}1H5žNHEtH}1H5NiH}H5N H}@HEHH=|HUHBxHEƀHE@$HxH8 H3HcH0}H}H(H(HEH@xHx8~H}@0tEHEH@xHXHH5~HEH@xL`@L!~LHH}00EH}@0HEt HEƀHEHpxHEHHEHǀH0HtH}[HEH“HEH@@XHxH0 HHcHpu]HEH@HUH@HH}H}HEH@xHXPH}HHEHcHEH1HEHSHEH@@XHpHtH}](H}@09H}>k(HEH@xHxHHEHxH(H(HEH@xHP@HEH@xHpHLEH}ȺsHuH}#HxH0{ HHcHpuHE@XH}a|H}@HpHt2HUH}AHH5NHUHE@hHUHEHHH}JHEHxx@lH(K{HEHtmHL H]UHHd$H}?HEH@H@8=t H}@0HEH@H@8=tH}1H5NN)HEHx&H}@0PH]UHHd$H}u>}t HEtuH}1H N莽H]UHHd$H}uF>HEDEH}HH5 NHtH]UHHd$H}Hu=HEH@H@<*rB,*t,t,u6HE@ HE@ HE@  HEHx$H]UHHd$H}y=HE1HHEHHxpHEPXHEHpPXHEH@HEHu4HEHH=|HEHUHPTHEHUHPHEH]UHHd$H}Hu(-I]HLLHHuH}"4uiLuLLmMu,I]HLLHHHDž HH}A1H5N}t H}&!HHt\HHHدHcHuH}dHHtH}@0]HEH@H@8> HiHpHtHLLLH]UHH$HLH}X-HDžHUHuHدHcHUH}@蘰uH}1H5ϟN蒪EHEHxxQcHEH}%OtSH}REHEHu)HEHPxH=u|HUHHEHHEHEHH=1|lHEH@HhH(H ׯHcH HUHEH@xXBpHUEBuH}H=HHEHxPhH}`H}WHEHxHsHHEHLhHEHx@uHEHx@}HEHp@H}M10ɺ4tbHEHXxHgHHEHcPHHEHp@1覃H]CH=v)HUCHHUHEH@`HHEHX`H.gHEL`XLgLHH}0-.uH}1H5NW}HEH@H@8>t H}#HEHxH5NtaH}HEHp`H}豤H}HHHEHxhfHEHXHEHPPHEHH}H Ht\HHHԯHcHuH}8HHt]HEt%HEHpPH}HuHuH} H}RMHeHEHtHLH]UHHd$H]LeLmLuL}H}he)EEHE@(H}@0|HE@(HEH@H@8]uC}~=H}H5N Hc]Hq^'HHH9v']H}<HEH@H@(HEHEH@H@8?uH}KH}!]HEH@H@8-uH}H}[萰kHEH@xXuH}H5BN腥HE@(H}@0aEHEHxH5cN趍t E3HEHxH5bN蕍t EH}1H5cNH}@0HEH@H@(H;EtH}H}[\}uC}u HuH}sHc]Hq%HHH9vk%]}HuH},EDHE@8HEHP0HUHUHBHEE0M1HNHEL`Mu$M,$LHLEH}HuAEHEHxH5NSt0Hc]Hq$HHH9v$]sHEHxH5HN t-Hc]Hq$HHH9vO$].}tHEHxg HMH}HN輥}HUHEH@xXB(HE@*HEHxH5 NmtH}@{HEHxH5NGt H}XHEHxH5N$t H}5HEHxH5Nt H}H}1H5N耢H}@0dHE@(HEH@H@(H;EtH}LH}> HE@*HE@(}~HMH}H̨NzHEH@xXuHEH@H@8]t#HEH@H@8tH}1H5NȡH]LeLmLuL}H]UHHd$H}Hu5$H=|HaHUHHEHH=|躿HUHBxHEHpxHEHHuH}轟H}4H]UHH$`H`LhLpLxH}Huv#HEHEHUHuHͯHcHUH}u(H]H_HHEHcPXHEHpP10{;LuLeLmMu I]HLLHuH}3_HELLeHELMu I]HSLLHHEHTH}f^H}]^HEHtH`LhLpLxH]UHHd$H]LeLmH}HuHUHMDEX!EHEH@HE@HEH@Ev}sHEU4} EtQ,,,,tf,,,,,,pHEHUH@H;BHEHx1H5N肞E}tHEH@1HEH@@t tu!HEHPH}HutHEH@HELeLmMuI]HsޯLHEH@HEH@HEH@ t tt}tHEH@HEHPH}Hu tLeLmMuHI]HݯLHEH@HEHEH@ @HEH@HEH@ t tt HEH@}tHEH@HEHx1H5hN EHEH@} vEHEH@EEHEHPH}Hu!s}u/LeLmMuYI]HܯLDH}tHEHU:u}tEH]LeLmH]UHHd$H]LeLmLuL}H}hEHEHp`H}EHE@8HEHP0HUHEHPHUL}EHH|L40HEL`MumM,$LܯALLH}HuAE<<mHEH@H@HEH@H@HHUHRH;Bv/HEL`HEHXHuL+LۯLAHEH@H@8/ucHEP8HEHp0}H}T*HEH@HU@T;|H}1H5hNۚHEH@H@H} TH}肰t-HEP8HEHp0}H})H}VHEH@H@8!HEH@H@HEH@H@8[uvH}H5NHEx$tH}1H5N"HEHp`H}EHEHEP8HEHp0}H}-)lHEH@H@8-u-HEP8HEHp0}H}(H}.HEP8HEHp0}H}(H}rHEH@H@8?u-HEP8HEHp0}H}(H}H}f}}tH}H5NHEH@HU@T;}tH]LLmIcHH9vMcLHEIK,H@THHEHE HUH}E11H5ƠN豘H}@0EX }>HEHx0umHEHx+HEx8HEHP0HEHc@8Hq<]HEHP0HEHc@8Hq<]}tfHEL`8Ic$HqHHH9vmA$EHEHEP8HEHp0H}(H}H5ߟNR}&HEx$tH}1H5 N'HEu!HUH}AHH5ƟNHEHp0H}u H}t EH}@0袻HEHt HEu.HEP8HEHp0}H}%HuH}HuH}lHEHp`H} HE@8EGHEP8HEHp0}H}x%H]LeLmLuL}H]UHHd$H]LeLmH} HEH@HEHUH@H;Br'LeLmMu`I]H֯LH]LeLmH]UHHd$H}@uHEH@H@:EuHEHxE uH}膔H]UHHd$H]LeLmH}PHEx$vHEPXH}H5N+HEx$s!HEt H}!HE@$HEPXHEHpPHEH`HEHEHHuHEHsHغH9v1HEHEH@THEH@HEHt HExlu1HEHHEHE HUHED@XH}1H5XNHELmMH]HcHH9vHcHIRHI<Hu+u1HEHHEHE HUHED@XH}1H5NlEEfDH}@蔛HEH@H@8>tDHEH@H@8/t3HUHuH}QHEH@H@8>tHEH@H@8/uHEH@H@8/uEHEHxH}>OH}t HEHx`tHEHP`HuH} HUHuH}&HEt HuH}}u*HEHUHHEuH}@0菚 H}1H]LeLmH]UHHd$H]LeLmH}u@LmMH]HcHH9vHcHIjHIHEHUHEH@HHEHUHH;u HE@$HELmMH]HcHH9vHcHIׯHI<*t1HEH@THHEHE HUDEH}1H5ʚNHEtHEHhH}&H]LeLmH]UHHd$H]LeLmH}0=LmMH]HcHH9v3HcHIHIH@THEH}1HEHxPHpXHEHguHHEH@H@8>u=HEHcXXHqHH-H9v]HEHxjHEHp`H}_HEHXdHEHc@XLc#I)qLH-H9vJD#EH}@0褗H}>uH}H]LeLmH]UHHd$H}HEH@HHEHE HUHEH@D@XHEHx1H5NH]UHHd$H]LeLmH}HuHUhUHE1HgHEPXHEHpPHEHXHEH}HEH@TH0H}uH]LeLmH]UHH$`HhLpH} HEHUHu.װHVHcHUHEHHcXHqHH-H9vEfDEHEHL`E=vnEM$HEHI4$HuCI$HEHDžx Hx1H5ÒNH}HUH}IL$諉;]rHEHH}YٰH}EHEHtڰHhLpH]UHH$HL L(L0L8H}HuHUK HDž@HDžhHUHxհH訳HcHpH}HqPHH-H9vAEEDEE=vuH}AHH=`|蒹HEHU@x;bHE؋@tRt;HExhtHE؀xpt H}1H}@虬HEHH}4LuHhLeMuM,$LůHLAHhHuH}CH]LhLmMuMuLYůLHAHhHPHDžH H]L@LmMujMuLůLHAH@H`HDžX HHH}E1H5NiD;}OְH@BHhBHpHtذHL L(L0L8H]UHH$@H@LHLPLXH}HuHUMoHEHUHxҰHڰHcHpuLuLeLmMu"I]HïLLHEHUHuHEHx||H0H}QHHEHH;E8u-HEHH;EtHH||H0H}|QHHEHH;EtHEHH;Eu7HEHHhHDž` H`H}E11H5N̂2HEHhHDž` H`H}E11H5N蘂H}u&HEx uHEH8tH}1H5N+HEHHUHu3N԰H}@HpHtհH@LHLPLXH]UHH$pHxLeLmLuL}H}HuKHEH苠ELeLmMu"I]HL`LeLmMuI]HLHEHHUHHtHRH9v:H}!H qHEH5|HEHHMH}cHqHH-H9vn%EEE=vEuH}HEH@THEH0H=NRHHEHHtH@Hu+Hry|H0H}1HuH}11HEL H8JOA|$:dH'y|H0H}ȺVHEL MtMd$IqLH-H9vbHEL(H8NIUHuH}DjHEH0:RIH-H9vDeALuMHcEHH9vLceLI蓝IHEK,LuMHcUHH9vLceLIQIECD%LceIqLH-H9vNDe;]}HEHutHc]HqUHH-H9vAEEfELmMHcEHH9vHc]HI~HIH@THELmMHcEHH9v{Hc]HI8HIc\HqHH-H9vHEt1H}4!HUH}AHH5~Np}tHEu0HEHUHuqHEHEHHuH]UHHd$H}HuUHEHUHu0HHEH覕H]UHHd$H}HuU(HE胸u!HUH}AHH5~NoHE耸u=HEHt/HEHUHurHEHEHHu H]UHH$PHXL`LhLpH}HuUHEHUHu9HaHcHUHE胸u$HxH}AHH5V}NnHE耸uoH]Hh,HHcUHu1HHELLeHELMuBI]H歯LLHHEH,HEHUHu0,HHEH蹓tH}+HEHtHXL`LhLpH]UHHd$H]H}HuHUHM@yHEHxx%HHuH}HumHEHH=ya|HEHx8Hu+HEHx@Huz+HEHxHHui+HEHxx|%HHuH,HEHEHE HUH}A1H5{NmH]H]UHHd$H]LeLmH}HuHU8HEHcHqHH-H9vwHE艘HEHcHEHHtH@HH9|:HEHcHkqoHEH5ԛ|HEHHM苋LmMH]HcHH9vHcHI蛉HHEILmMH]HcHH9vHcHIOHHEIDLmMH]HcHH9vHHcHIHIDLmMH]HcHH9vHcHI赈HADH}H]LeLmH]UHHd$H]H}HE~8HEHcHqHH-H9vjHEH}H]H]UHHd$H]LeLmLuH}(HELmMH]HcHH9vHcHI蘇HI|LmMH]HcHH9vHcHIHHIDHU@lLeHExhtZLuMH]HcHH9v*HcHI䆰HIDxht AƄ$$AƄ$HEǀHEƀH]LeLmLuH]UHHd$H]H}Hu(EH})HEHxHEH@@ltHEH@H/HcHqqHH-H9v|;EfDEHEH@HuHUH;P(v;]EkEeHEHxuHEH@HHuHEHEHxHu1"HEH}E}tHEHUHPHE@EH]H]UHHd$H}HEHxtPHEH@xluBHExu8HEHxtHEHx1 EHEH@H#EEEH]UHHd$H}HEHxuH=X蝟HUHBH=|脟HEHHEHBHEHxHuTHUBHEH]UHHd$H]LeLmH}Hu0 H}~'LeLmMuI]H蔥LHEHxteHEH@HcXHqHH-H9v|2]؃EfmHEHxu<HH}HEHxH}1裟H}tH}tH}HEHPpH]LeLmH]UHHd$H}uHEHxuH]UHHd$H}HEHxtHEH@@EEEH]UHHd$H]LeH} HEx t HEx uEEHExl}tfH}VHcHqHH-H9v@|3EDEuH}ILUEu;]يEH]LeH]UHHd$H]LeH}u(EHExHc]HqHH-H9vH}|LcIqLH-H9vfA9|9]؃EfDEuH}HHuEu(D;eHEHxtHEpHEHxEEH]LeH]UHHd$H]LeLmH}Hu8HEHE@ H}HcHqHH-H9vpEEuH}IMHuLNHEHLi;]H}HcHq@HH-H9v|TEDEuH}IMHuLHEHu;]HEH@(H;EuHEHEHEH]LeLmH]UHHd$H]LeLmH}HuU@&HEHExHc]HqaHH-H9v H}LcIq2LH-H9vA9|J]܉؃EfEuH}xHIHuLHEHueLuYD;eHEx t HEx uHuH}zHEH}u'HEHxtHEPHEHxHuHEHEH]LeLmH]UHHd$H]LeLmH}Hu(H}~'LeLmMu߰I]HdLHEH+H}1H}tH}tH}HEHPpH]LeLmH]UHH$pH}HuU迈?HEHHUH=|UHEؾH=7||jHEHUHuTH|HcHxuuH}RjHuH}qPHEHUHHH}5HxHt贱H]UHH$pH}HuHUM࿐[HEHH=l{|jHEHUHx膬H變HcHpuAHU0ɾH=>~|PHEHxHHuHuH}\iHuH}pZHEHUHHH}?HpHt辰H]UHH$PHXL`LhLpH}HuU迨S߰HEHH}?xHݰHqݰH]H H=Y-HEHUHuWHHcHxLuLeLmMuܰI]HkLLHEHpHUHqܰH}OvJݰHEHPHEHqܰLuM1LmMuZܰI]HLLH}UHuB轭H}贖HxHt3HXL`LhLpH]UHHd$H}HuUݰH}MHuHkN;H]UHH$H}HuUݰHDžHUHuҩHHcHUHEHHU H=cX趯HEHhH(zH袇HcH u)HuHdHH}MHu[fH}]H HtܭGHHEHt轭H]UHH$pH}HuU迈oܰH=w|H+fHEHUHu襨H͆HcHxu6uH}eHUH=s{|PHEHUHuH}m脫H}{HxHtH]UHH$pH}HuHUM࿐۰H=v|HgeHEHUHxާHHcHpuEHU0ɾH=y|qKHEHxHHuuH}dHUHuH}#m讪H}襓HpHt$H]UHH$PHXL`LhLpH}HuU迨ڰH}sHbٰHqذH]HH==X蘑HEHUHu¦HꄯHcHxLuLeLmMu2ذI]H֗LLHEHpHUHqcذH}qذHEHPHEHq>ذLuM1LmMuװI]HiLLMHuH}HfN!H}HxHt藪HXL`LhLpH]UHHd$H}HuU2ٰEHuH}HpfNIH]UHH$H}HuUذHDžHUHu2HZHcHUHU H=X!HEHhH(夰H HcH u)HuH_HMHuH}vѧH}ȐH HtG貧HHEHt(H]UHHd$H}HuװHEHH=r|aHEHUHuH;HcHUu%HUH=v| LHEHH}+HEHUHHH}돰HEHtmH]UHH$pH}HuHU迈װHEHH=/r|`HEHUHuLHtHcHxu5HU0ɾH=u|FHEHxHHuHuH}Q,HEHUHHH}HxHt萧H]UHH$`H`LhLpLxH}Hu&ְHEHH}oH԰Hq_԰H]H H=XHEHUHu*HRHcHULuLeLmMuӰI]HALLHEHpHUHqӰH}%m ԰HEHPHEHqӰLuM1LmMu0ӰI]HԒLLH}HuHYbN菤H}膍HEHtH`LhLpLxH]UHHd$H}Hu԰H}HuHaNQH]UHH$ H}Hub԰HDž HUHu襠H~HcHUHEHHU H=6X艦HEHpH0MHu~HcH(u&HuH U[H H}HuquBH}H5DN;HEHcHqIHH-H9vHE=LeH]HcHH9vʲHcHH}KAtH}`LuHEx uHEHx@=pHpܯHxHtqHPLXL`LhH]UHHd$H}Hu蕠HE@ HV|H HEHp8H}H/NH]UHHd$H}HuEHExu H}"HEx t!HEHp8H YH}Hf/NIIH} H5o/NHEHp8H H}H`/NH}H5k/NH]UHH$`HhLpLxLuH}HuyHEHUHukHIHcHUuWH}&LuLeLmMu(I]H\LLHuH}CH};nH}گHEHtoHhLpLxLuH]UHHd$H}Hu蕞HExu H}rH}H5?.NHEHp8H}HEHx@t-H} HEHp@H H}HF-NiH}H5.NYH]UHHd$H}HuHExu H}H}H5-NHEHp8H .H}H,NH}H5-NH]UHHd$H]LeLmH}Hu0iHEH5v-NHHEHHtH@H~HEHH}iH}H5\-NWH}"H}H5^-N9H}H5,N)HEHHtH@H~iHEHp8H}H}H5D-NHEHH}H}H5P-NHEHH}H}H5T-NLmLeMuUI$HYLHEfHuH};HEH@(HEH}uHEHp8H}GH]LeLmH]UHHd$H]LeLmH}Hu8ɛH}HELmLeMu誙I$HNYLHE]LeLmMuvI]HYLsHuH}\H} HEH@(HEH}t HEH;EuH}{HuH}HEH@(HEYLeLmMu昰I]HXLsH} kHuH}HEH@(HEH}uH]LeLmH]UHH$`H`LhLpLxH}HuFHEHUHufHDHcHU8H} LuLeLmMuI]HWLLHuH} H}H5(NLeLmMu襗I]HIWLHELeLmMunI]HWL|RtuHHuH}9HE@`%HHN|HHEHp8H {H}BHEH@(HEH}kH}"hhH}ԯHEHtiH`LhLpLxH]UHH$`HhLpLxLuH}HuiHEHUHudHBHcHU7HEHp8H}gH}H5$)NWLuLeLmMuI]HULLHuH}H} ~HEHx@tBH}H5(NHEHp@H}2H} DHEHpHH},HEHxHt!H}H5(NHEHpHH}HEHxPt;H}[HEHpPH H}H:&N]H}]H}>fH}үHEHthHhLpLxLuH]UHHd$H]LeLmH}Hu0虖LmLeMu臔I$H+TLHE@HuH}kHEH@(HEH}uH]LeLmH]UHHd$H}HuU迀HEH=%XHuhHEHUHu?bHg@HcHUuUHuH}GeH}>NHEHtfH]UHH$pHxLeH}HuU迈dHUH=uHc Hq H0 H;(SM1LEMtHEHHEHE@EHcEHEHcEHEqiHq^HUHtHRH9~_HuHtHvH+uq4HcEH)q&HkqHH?HHHuqHq~H}1}ͯHEHUHDHEHcEH|+HEfHEHMHUHEHEH;EHcEHEq~HEWHUHq~HuHHHEHx\OHۻH}һH@HtPH]UHHd$H}HuHUHMDEHHEH8uHUHuH}HEHHEHEEHEHHq}HHEHEHU HcUH9uWHUȊR:UuKEHMȋU|u HUHU?HMHcUH}ȋu:T7uHcUHq9}UHE H;EHEHEH]UHHd$H]H}HuHU@~HEHXH3HtHvH;HuH=z%HUHHEHHk q|H}3HEHHk q|HEH814HEH@HuHHEHEH@HuHHEHEHHEHEEfEH}# HUЈHEHEHpH}HE؀8u1HEH@HuHHUH)HEH@HtH@H9})H} HUЈBHEPHEHpH}HE H} HcHEH} HcHE;]DH]H]UHHd$H}0|HEH@HHuHHEfDHEEu;HEH@HHuHHUH)HEH@HHtH@H9HEHp}ͯHEH}HEHEH@HtH@H;EHEHEHExuVHE@HEH@HHuHHEH)HEHEHxuʯHEH@HHuH~HEHEHEH@HUHMDHEHuH} H]UHHd$H}Hu@{HEHEHExuVHE@HEH@HHuHd~HEH)HEHEHxɯHEH@HHuH5~HEHEHEHEDHEEu;HEH@HHuH}HUH)HEH@HHtH@H9{HEHp}b˯HEH}HEUHEHEHEH@HtH@H;E|%HEH@HUHMDHEHEGHE=HEH@HHuHF}HUH)HUHEHxHu1ǯH]UHHd$H}HuyHExu\HE@HEH@HHuH|HEHH)HEHEHx1ȯHEH@HHuH|HEHUHH]UHHd$H}HueyHEHtH@|)E@EHUHcM| rE ;EEEH]UHHd$}HuU xEE/EiCBHE1‰UHEHcEHqwE}u΋EH]UHHd$H}HuU xHUHtHRHcEH9uHcUHuH} atEEEH]UHH$H}HuUMxH}uHEHUHRhHEH}-HUHxCDHk"HcHpHEH}1.HUEBEe܋E;E|HEU܉P Hc}Hkqu臊HUHBHEH}tH}tH}HEHFHpHtlHXHCH!HcHu#H}tHuH}HEHP`{FHqFHHtPI+IHEH]UHHd$H}HuvH}~HEHUHHH}AHEHx$H}1.H}tH}tH}HEHPpH]UHHd$H]H}(%vHEX HqstE@EHEHPEHHEKHEH@HEHExt HEHxM.H5;|H}hH}4HEHEH}uHEH@UH;]yH]H]UHHd$H}HuU(RuHE܋UHuH}E0HH]UHHd$H}HuUHM(uHMUHuH}AH]UHHd$H}HuU(tHE܋UHuH}AHhH]UHHd$H}HuU0tHEԋUHuH}E0H(HEHtHEH@HEHEHEH]UHHd$H]H}HuUHMDEH&tEHu1EHEHpEHU؋J HHHHEfHEHHHEHEH8t)HEH@;EuHEHH8UHutHEHUH:HE8u}uHEHHEHE؋@ HkqqHH?HHHHU؋RH9}nHUBE&HEHHHEHEH8u;]_EEH]H]UHHd$H]H}HuHU0moHEX Hqm|NEEHEHPEHHE"HuH}UtHEH@HEH}u;]H]H]UHHd$H}HunH}~HEHUHHHEHxmH}1'H}tH}tH}HEHPpH]UHHd$H}uvnHcEHkqlHUHcJHHwHE@ fDHEHc@HqlHUBHEHc@UuHEHc@HcHk qTlHEHxHE@ HEx u]HE@ HEHc@HcHql|/UЃE쐃mHEHHEHHUR }HE@ HqkHUB H]UHHd$H]H}HuHUMP*mHEHHtHRHEH0HuH5p1E̋UHu}EHEHc@HcHq,kUԉ#EHUHcRHqkU!!HE؋ŰE!ЉEEfDHEHPEHD;EHEHPEHHDH8HEH0!HuaHEHPEHD;EuIHcEHEHEHPEHHDHEH;EuHuHUH}HÄHcUEH9}5HEHc@HcEH)q jHcEHqiEHcEUH)qiEHEHPEHHM;A HEHPEHHHUR ỦPHUHPHUHPUPEEH]H]UHH$ H}HujH}uHEHUHRhHEH}\HUHu7HDHcHUHEH}1!0ɺH=$|:HUHB(H=rX!HUHBHDžxH55|HEHx HxHMH}HMH5MHEH}tH}tH}HEHw9HEHtlH`H &6HNHcHxu#H}tHuH}HEHP`"9:9HxHt;;HEH]UHHd$H}HuEiH}~HEHUHHHEH@Hc@Hqsg|1EEfDmHEH@H@UHH=EtHH=FXHEHEH}uHHuH=Est1HuH=EpHEHEH}HfnH}MfH]UHHd$H]LeH}HuH(=HEH-HH9v;DeA}?EfEEHc]HEH@H9vg;HEHLL`H]LeLmLuH]UHHd$H}HuHC3H}tIHEH@0H;Et9HEHx0u(HEH@0tHuH}=u H}:H]UHHd$H}Hh2HEtcHUHuH,ݮHcHUu HEHxhuHEHxpHuHEPhHEƀHEHtsH]UHHd$H]LeLmH}HuH02H}uHEHUH@0H;tHEHp@H=_uoHEH@@HELeLmMt/I]H\Lu4HEHLeLmMt~/I]H"LH]LeLmH]UHH$HLL H}HuH1H}t)LmLeMt.LHLShHEH}tHUHu&HNۮHcHUuKHEH}HvHE@%HEH}uH}uH}HEHHEHpHpH0HڮHcH(u%H}uHuH}HEHP`#H(HtmHHEHLL H]UHHd$H}H/HEt1H}zHu!H}zxrsEEHEtH}u H}|HEEHEt6HUHEu}u ƂƂHEƀEH]UHHd$H}H.HEƀH]UHHd$H}H.HEHxHuHEHxPHuHEPHHEƀH}H]UHHd$H}H7.HEHuHEHx0Huj H]UHHd$H]LeLmLuL}H}uHUHH-HEuH}HYw}tH}xHIIMt+MuLDLAEH}xxEHEx8HEH@0HxhuyHEH@0L`hHEH@0LhhMt-+I]HLAH}_H]UHHd$H}H"HEu HE HEH@xHEHEH]UHHd$H}HuHc"HEHHu^H]UHHd$H}HuH#"HEHHuo^H]UHHd$H}HuH!HEH@xH;EtHHEHxxuHEHxxHu3HEHUHPxHEHxxuHEHxxHuY3H]UHHd$H}@uHc!HUEH]UHHd$H]LeLmLuL}H}HuUHH!EH]HE8uE{f;tEHEHx`uHEHuHEH@`x uHEHx`kHHIHEHdHcHqHH-HH9vAA}XEfEEHEHu cILMMt'M,$LݮHA(D;}~LHEHxp*kHu4HEHxpkHHduHEHuEEHEfEH]LeLmLuL}H]UHHd$H}HuUHpEHuH}(}tHEH@xH;Et HEH@xH]UHHd$H]LeLmH}HuUMH@Hc]HqRHH-HH9vDeA9~{]܋E܃EE܃EHc]HEH@H9vHUHkL,Hc]HqHEH@H9vHUHkH<LD;e}H]LeLmH]UHH$HLLLLH}H0HEHDžHHUHuHEȮHcHU}HEHxhtkHEL`hHELhhMtxI]HۮLHEHxphHEH}uHEHu H};uXHEHu@HEHxh肴HhH(JHrǮHcH HELHEL`hHELhhMtI]HMڮLLPEHDžH5l|HEHHHHEHH7LLuMHcUHH9v=Hc]HIHkI|LE}HEHxh耳H HtLuLeLmMtI]HVٮLLLuALmMtI]H$ٮDLHEHxh۲HH@HŮHcH8nH}ЀH}|ELeLmMtI]HخLHcH0H5ƿ|HEHH0HXHEHuHELHEL`hHELhhMt~I]H"خLLPELeLmMtOI]H׮LHcHqH0H5|HEHH0H蠷HEHHLLuMHcUHH9vHc]HI蜵HkI|L;EHEHHALHEL`hHELhhMtNI]H֮LLPEHEL`hHELhhMtI]H֮L;EE;E|)HEH.HHEHMUHELH]LLmMtM}LC֮LHLALLuMHcEHH9vyHc]HI6HkI|LHc]HqHH-HH9v)]H}=HE耸ucHcEH0H5ɼ|HEHH0H[FHEHxhIHuH}|LuLeLmMtI]H(ծLLLuALmMtRI]HԮDLH8HtIHSHLH5SYH} HEHtHLLLLH]UHH$`H`LhLpLxL}H}HHELHELMt_I$HԮLHELHELMt(I$HӮLHEHǀHEƀHEƀHEHx`uHEHx`aHuHEHx``HHZuHEH@`Hx0uHUHEH@`H@0HUHEu HEH@`H@0u ƂƂHEu HEHtQLuIH^~HHT~IMtMLҮHLLAHUHHEH@`HH0HEHHH;B`u#HEH@`H@0HHEHoHEHHEHxp6aHEH@`H@0HHEHPHEH@`H@0HHEHP#HEH@`H@0HHEH[PHEHx`_HHEHHEHH]wHEtHEHpxHEHxpy`HEHHtH@HHEH@px uHEHxp^HEHH=X#XHEHUHu߯HŽHcHUHEHHuH}vHEHHEHH}vHEuHEH@`H@0HH}tHUHHEHu4HEHH}]|HEHH}]H}VH}$UHUHHEHV0H}Vt!HEHTHH}ZHE7H]H}AV; HEH}THUHH}yTHUH)H} ʯHEHtH}IH`LhLpLxL}H]UHHd$H]LeLmLuL}H}HuH@HEHx`uuHEH@`x ueHEHuUHEHx`\HEHELHEILmH]HtL#L]ήLLLA$ H}葃H]LeLmLuL}H]UHH$HLLLLH}uH+HEH?HH3HUHh^ܯH膺HcH`P}|%HEHHtH@HHcUH9~ LeI$HcEHH9v LcmLI$lIkH4H} HEumHEHxpZH0HEHH(L}AH0L0Mt M,$L̮HDLH(AHEHx`uKHEH@`x u8HEHx`YH HELLHL H Ht L#L1̮LLLA$HHH}guHEHP`HBHHEHBPHEHEH@`HHHHHHPPHEHx`2HEHx`EHEHP`HEHBHHEHBPHEH=RtLHEHPIL}MLHt L#LMˮLLA$HEHQHcHq HH-HH9vm H88}EDEEHEHuOINjE쉅DHH4HuHHDHHLHMLHt L#LbʮLLA$8;E~lܯHH߯H}߯H`HtݯHLLLLH]UHHd$H]LeLmH}HuUH0 }|%HEHHtH@HHcUH9~ H}~GLmMHcUHH9v Hc]HI蘧HkI4H}7߯H]LeLmH]UHH$@HHLPLXL`LhH}H> HxRޯHUHuׯH訵HcHUHEHx`uHEH@`x uHEHuqHEHx`UHpHELLxLpHpHtL#L;ȮLLLA$HxH}ZEEٯHxݯHEHt_ۯEHHLPLXL`LhH]UHHd$H]LeLmH}HuH0 ELmMHcUHH9vHc]HI蒥HkI4H}cu]Hc]HqHH-HH9v}]HEHHtH@HHcUH9]EEH]LeLmH]UHHd$H}HuHHEHUHu6կH^HcHU1HEHfH@0HEH}uHE ftHEHH} zHEp`H}=HE!fu2HEHfuH}Hu諸HuH}H}HuHuH}袡HE苀trtr"H}tHE苰|H}]=HE ftH}HtHEHftHEH]UHHd$H}HuUH EHuH}(}t1HEHfu!H}H;EtH}HH]UHHd$H}HHEHfEEH]UHHd$H}HuHsHE@Pt%HEHfx tH}H= HuH}肠H]UHHd$H}HHEHfH}H]UHHd$H}HHEHfH}.H]UHH$`H`LhLpLxH}HuHaHEHUHu̯HϪHcHUHE!ftHEƀ!fHgL0A HgL(MtI]H葽DLHE}u=HEHfu%HEHfHx0HuHuH}kHEHfHuH} ίH}N;HEHtpЯH`LhLpLxH]UHH$pHpLxLmH}HuHHEHUHu1˯HYHcHUHuH} HEƀ!fHE@PuHEHfuxHEHfKLeLmMtQI]HLt7HEHfHx0HuHuH}街HEHfƀHEHf=xͯH}9HEHtίHpLxLmH]UHHd$H}HuHHE=-tvHEHfunHEHfHHHJHHBPHEHfaHEHf1HEHfHUH HHHHPPHuH} HEH@ HuH}H]UHH$HLLH}HuHUHH}t)LmLeMtgLH LShHEH}t_HUHuȯH躦HcHUHEHUH}HeHH={HUHfHEHfHEHB@HEHfHUH HHHHPPHEHfHMH:HPhHHpHEH}uH}uH}HEHʯHEHpHhH(ǯHťHcH u%H}uHuH}HEHP`ʯ"̯ʯH HtlͯGͯHEHLLH]UHHd$H]LeLmLuH}HuH0H})LeLmMtvI]HLHELfHHELfMt8M,$LܷHLAU`H}HbH}uH}uH}HEHPpH]LeLmLuH]UHHd$H]LeLmLuH}HuH8HEH}H uZHEHfuFHELfLeHELfMtWI]HLLuEEEH]LeLmLuH]UHHd$H]LeLmLuH}HuH8HEH}H uZHEHfuFHELfLeHELfMtI]H;LLuEEEH]LeLmLuH]UHHd$H}HuHx3HEHUHuyįH衢HcHUmHEHHHx0u'HEHHHx0Hu覨HuH}Ʉ2HE@PuHEHp H}规H}H蕄 ǯH}w3HEHtȯH]UHHd$H}HuHSHEHHHp8H}3H]UHHd$H}HHEHHH@(HEHEH]UHHd$H}HHEHHH@0HEHEH]UHHd$H}HuHHEHHHu/H]UHHd$H}HuHSHEHHHUH}H]UHHd$H]LeH}HuH H]LeI$HHH9vI$HHCH]LeH]UHHd$H}HuUHEHuH}}t1HEHHu!H}=H;EtH}HH]UHHd$H}H7=p|u4HEHHH؉MH59MH={m6|H]UHHd$H}HHEHHE@PuHEHp H}諁H]UHH$HLLH}HuHUHdH}t)LmLeMtGLH챮LShHEH}tAHUHurH蚞HcHUHEHUH}HHH={|HUHHHEHHHEHB@HEHHHMHHHPHHHPHEH}uH}uH}HEH¯HEHpHhH(蛿HÝHcH u%H}uHuH}HEHP`¯ į¯H HtjůEůHEHLLH]UHHd$H]LeLmH}HuH(H})LeLmMtzI]HLHEHH媯H}H蕷H}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuH}HuH8HEH}HuZHEHHuFHELHLeHELHMtI]H;LLuEEEH]LeLmLuH]UHHd$H]LeLmLuH}HuH8#HEH}HCuZHEHHuFHELHLeHELHMtI]H{LLuEEEH]LeLmLuH]UHHd$H}HuHsHEH(Hp8H},H]UHHd$H}H7HEH(H@(HEHEH]UHHd$H}HHEH(H@0HEHEH]UHHd$H]LeLmLuH}HuH0HELH]HELMt}M,$L!HLALuH]LeMtLM,$LHLA H]LeLmLuH]UHHd$H}HHEH(@#EEH]UHHd$H}@uHHEH(@u;H]UHHd$H}HuHsHEH(HuH]UHHd$H}HuH3HEH(HUH}H]UHHd$H]LeH}HuH H]LeI$(HH9vI$(HCH]LeH]UHHd$H}HuUHHEHƋUH}}HEff=rAf-tf- t#f-t-HEH(茾HEfHEH(aH]UHHd$H}HuUHEHuH}}t1HEH(u!H}mH;EtH}HUH]UHH$HLLH}HuHUHdH}t)LmLeMtGLH쩮LShHEH}teHUHurH蚖HcHUHEHUH}HcHH={|HUH(HEH(HEHB@HEH(HMHH HBHHJPHEH(HUHH HAhHQpHEH}uH}uH}HEH̺HEHpHhH(wH蟕HcH u%H}uHuH}HEHP`qgH HtF!HEHLLH]UHHd$H]LeLmLuH}HuH0sH})LeLmMtVI]HLHEL(HHEL(MtM,$L輧HLAU`H}HbeH}uH}uH}HEHPpH]LeLmLuH]UHHd$H]LeLmLuH}HuH8HEH}HsuZHEH(uFHEL(LeHEL(Mt7I]HۦLLuEEEH]LeLmLuH]UHHd$H]LeLmLuH}HuH8HEH}HuZHEH(uFHEL(LeHEL(MtwI]HLLuEEEH]LeLmLuH]UHH$`H`LhLpLxH}HuHHEHUHu7H_HcHUHEH(H@0HEH}u|H}HuLuHELHELMtnI]HLLLuLmMt@MeL䤮LA$@ 2LuALmMt I]H诤DL@ ~H}"HEHtH`LhLpLxH]UHHd$H]LeLmLuH}@uH0}uHEH(ȮujHEH(HHHBHHJPHEH(quHEH(;HEH(HMHH HBHHJP0LuLeLmMtI]H脣LL @uH}kZH]LeLmLuH]UHH$`H`LhLpLxL}H}HuH]HEHUHu裱HˏHcHULeLmMtI]H輢L( }LeLmMtI]H艢L( AHELH]HELMtM,$LKHLDAHuHEH(Hx0蓔H}U HEHtwH`LhLpLxL}H]UHHd$H}HHEH(1H}[H]UHH$HLLLLH}HuHUHH}t)LmLeMtLH.LShHEH}tHUHu贯H܍HcHUHEHUH}HL}IH{HH{IMtML蛠HLLAHUH0H}H` H}HHEH(HMH:HPxHHEH}uH}uH}HEHﱯHEHpHhH(蚮HŒHcH u%H}uHuH}HEHP`蔱花H HtiDHEHLLLLH]UHHd$H]LeLmH}HuH(LeLmMts߯I]HL( |;LmLeMtA߯I$H垮L( HEH0H]LeLmH]UHHd$H}HxHEHUHu-HUHcHUu4HEH(Hx(tH}Hu H}tEEH}hHEHt花EH]UHHd$H}HuHCHEH(x u H} H]UHHd$H}HuHHEH0HH}HH]UHHd$H}HuH߯HEH0HH}H]UHHd$H]LeLmLuH}HuH0s߯HEH(x uAHEH0LuLmMt:ݯMeLޜLA$@ 2LuALmMtݯI]H詜DL@ H]LeLmLuH]UHHd$H}HޯHEH;:HEH0HEHHBhH]UHHd$H]LeLmLuH}@uH0Sޯ}uHEHH}5HEHtWHXL`LhLpH]UHHd$H}HȯHEH0wH}~@H]UHHd$H]LeLmLuH}HuH8ȯHEH}HuZHEH0uFHEL0LeHEL0MtWƯI]HLLuEEEH]LeLmLuH]UHHd$H]LeLmLuH}HuH8ǯHEH}HuZHEH0uFHEL0LeHEL0MtůI]H;LLuEEEH]LeLmLuH]UHH$HLLH}HuHUHǯH}t)LmLeMtįLH蜄LShHEH}t}HUHu"HJqHcHUHEHUH}H? HH=a{,HUH0HEH0HUHP@HEH0HEH XHJHHBPHEH0HUH HHhHPpHH=WRHUHPHEH}uH}uH}HEHdHEHpHhH(H7pHcH u%H}uHuH}HEHP` 蔖H Htޗ蹗HEHLLH]UHHd$H]LeLmH}HuH(ůH})LeLmMt¯I]H莂LHEH0U}HEHǀ0HEHP6}HEHǀPH}HH}uH}uH}HEHPpH]LeLmH]UHHd$H}HuH3įHEHHp8H}{H]UHHd$H}HïHEHH@(HEHEH]UHHd$H}HïHEHH@0HEHEH]UHHd$H}HwïHEH@#EEH]UHHd$H}HuH3ïHEHHuϋH]UHHd$H}HuH¯HEHH;Et:HEHx!uHE@PuHEHHUH}胅H]UHHd$H}@uHs¯HEH@uH]UHHd$H}HuH3¯HEHHu Ht!HEHHubHuH}H]UHHd$H}HuHHEHHu Ht!HEHHuHuH}H]UHHd$H]LeH}HuH8kHEH}HHDHHH-HH9vT]}E}uHcEH]HtH[HqcHH-HH9v]H]HtH[HH-HH9vپ]vLeHcEHH9v贾Hc]HH}4 ADE܀};tP} EHc]Hq軾HH-HH9v^]}uE;E|tHc]HqsHH-HH9v]{fDLeHcEHH9v콯Hc]HH}l ADE܀};tN} EHc]HqHH-HH9v薽]}u }vEH]LeH]UHH$PHXL`LhLpH}HHEHDžxHUHu@HhiHcHUlHEHH@0HEH}t EDLeLmMt荼I]H1|Lu E HEtDLeLmMtCI]H{Lu EELuLxLmMtI]H{LL(HxH}`HEHHxIHxH}u E=HEHHxHxH}u EE茯HxHHcH u%H}uHuH}HEHP`UABKAH Ht*DDHEHLLH]UHHd$H]LeLmLuH}HuH0SqH})LeLmMt6oI]H.LHELHHELMtnM,$L.HLAU`H}HPH}uH}uH}HEHPpH]LeLmLuH]UHHd$H]LeLmLuH}HuH8cpHEH}HSuZHEHuFHELLeHELMtnI]H-LLuEEEH]LeLmLuH]UHHd$H]LeLmLuH}HuH8oHEH}HÃuZHEHuFHELLeHELMtWmI]H,LLuEEEH]LeLmLuH]UHHd$H}HuHnHEHxHp8H};H]UHHd$H}HnHEHxH@(HEHEH]UHHd$H}HwnHEHxH@0HEHEH]UHHd$H}H7nHEHxG?H]UHHd$H}HnHEHx@#EEH]UHHd$H]LeLmH}@uH(mHE:EtEHUEHEu)LeLmMttkI]H+LH]LeLmH]UHHd$H}HuH#mHEHxHu5H]UHHd$H}HuHlHEHxx!uHE@PuHEHxHUH}/H]UHHd$H}@uHlHEHx@u诹H]UHHd$H]LeH}HuH ;lH]LeI$xHH9v7jI$xHCH]LeH]UHHd$H}HuUHkEHuH}辑}t1HEHxu!H}H;EtH}HH]UHHd$H]LeLmH}HuH(WkHEƀHEH`HDHEƀHEu)LeLmMtiI]H(LHEƀH]LeLmH]UHH$HLLLLH}HuH jHEHDžHUHu6HHcHxHEH`HxtIHEH`HXHEH`LhMt hMeL'HA$uFHEHxHX0HEHxLh0MtgMeLj'HA$(DHEH`HXHtgL+L4'LuHEH`L`MtegI$H 'LLHEHxmHHEHxLh0ALHHtgL#L&LDLA$pHEH`H /5HWHcH0HuH;PHHH-HH9vf]܃}6HcMHqfHuHHHH}蟤HEHu#HEHHMHUHuHE@HEu1LuLmH]HteL#L%LLA$ HEH`LpLmHEH`HXHteL#LC%LLA$7H} HHt86HEH}fHEHUHx2HHcHpHEtHEƀHEHxHx0tOHEHxLp0HEL`HEH`HtcL#LJ#LLA$HEHxHX0HtlcL+L#HEHxHX0HtFcL#L"LA$0uHEHxHp0H=I7~u9HEHxHX0HEHxL`0MtbM,$L}"HAuLLA$HEƀ1H}WHpHtv2HLLLLH]UHH$HLLLH}HP`HDž0HUHu(-HP HcHUHEL`HELhMt^I]H9LHUHBHUH@,H HcH8u(HEHxH0 /H0HEHx腜/H8HHHX,H HcHuPHELpHEL`HELhMt]I]HbLLHEHxH/HHt11H}HEHxtRIHEL`LMMtYM,$LVHLAH]LeLmLuL}H]UHHd$H}Hg[={u4HEHHHLH5QLH=:{<{H]UHHd$H]LeLmLuL}H}H0ZnHUL`ILMMtXI$ILoHLAH=LvHH `H$H]LeLmLuL}H]UHH$PHXL`LhLpH}HuHUH-ZHEH@H`HpH} t{HH=}WHELuILeMtWLH{LLxHEHUHu &H1HcHxHEH@H`LpLeLmMthWI]H LLLuLeLmMt8WI]HLLLuILmMtWI]HLLhHHMXHHUHuH5@HHU@(H}7H}.HxHt)HXL`LhLpH]UHH$HLLH}HuHUH$XH}t)LmLeMtVLHLShHEH}tHUHu2$HZHcHUHEHUH}HHUHE苀X XHEƀHEƀHEƀHH=7K{&HUHxHEHxHUHP@HEHxHMHHBHHJPHEHxHMHHHBhHJpHEƀHEH}uH}uH}HEHJ&HEHpHhH("HHcH u%H}uHuH}HEHP`%z'%H Ht((HEHLLH]UHHd$H]LeLmLuH}HuH0UH})LeLmMtSI]HjLHELxHHELxMtSM,$L,HLAU`H}HH}uH}uH}HEHPpH]LeLmLuH]UHHd$H]LeLmLuH}HuH8THEH}HeuZHEHxuFHELxLeHELxMtRI]HKLLuEEEH]LeLmLuH]UHHd$H]LeLmLuH}HuH83THEH}HShuZHEHxuFHELxLeHELxMtQI]HLLuEEEH]LeLmLuH]UHHd$H}HuHxSHEHUHuHHcHUu^HEHx u;HEHHx0u'HEHHx0HuHuH}H}H"H}ڎHEHt#H]UHHd$H}HuHxRHEHUHuH!HcHUu%H}HuI~HuHEHHx0!H}CHEHte#H]UHHd$H}HuH#RHEHHp8H}kH]UHHd$H}HQHEHH@(HEHEH]UHHd$H}HQHEHH@0HEHEH]UHHd$H}HgQHEH@#EEH]UHHd$H}@uH#QHEH@uOH]UHHd$H}HuHPHEH}HBHuH}&H]UHHd$H}HuHPHEHHu?H]UHHd$H}HuHcPHEHHUH}+H]UHHd$H}HuH#PH}tHEH}HAH]UHHd$H]LeH}HuH OH]LeI$HH9vMI$HCH]LeH]UHHd$H}HuUHpOEHuH}^u}t1HEHu!H}=H;EtH}HH]UHHd$H}HOHEH臜H}H]UHHd$H]LeLmLuH}HuH8NHEH}H_uZHEHuFHELLeHELMtgLI]H LLuEEEH]LeLmLuH]UHHd$H]LeLmLuH}HuH8MHEH}HbuZHEHuFHELLeHELMtKI]HK LLuEEEH]LeLmLuH]UHH$HLLH}HuHUH$MH}t)LmLeMtKLH LShHEH}t_HUHu2HZHcHUHEHUH}H8HH=q@{<HUHHEHHEHB@HEHHUH HHHHPPHEHHMHjHPhHHpHEH}uH}uH}HEHHEHpHhH(=HeHcH u%H}uHuH}HEHP`7-H Ht HEHLLH]UHHd$H]LeLmLuH}HuH03KH})LeLmMtII]HLHELHHELMtHM,$L|HLAU`H}H)H}uH}uH}HEHPpH]LeLmLuH]UHHd$H]LeLmH}HuH(GJH})LeLmMt*HI]HLH}HH}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmH}H IHEHx0u1HEL`0HELh0MtGI]H&L H]LeLmH]UHHd$H]LeLmH}H +IHEHx0u1HEL`0HELh0MtGI]HL H]LeLmH]UHHd$H]LeLmH}H HHEHx0u1HEL`0HELh0MtFI]H&L( H]LeLmH]UHH$HLLH}HuHUHHH}t)LmLeMtELHLShHEH}tHUHu"HJHcHUuWHEH}H臍HEHUHP0HE@%HEH}uH}uH}HEHHEHpHhH(HHcH u%H}uHuH}HEHP`~H Ht]8HEHLLH]UHH$HLLLH}HuHqFHDžxHUHuHHcHUHELLxHELMtDI]HLLHxHEH0őHteHEH HP`HUH@hHEHEH HHHP`HHhHEHHHHB`HJhH`H HHcHHELHEL HEL MtCI]HLLHELHELMtBI]HLLeLmMtBI]H^L8 0HEH HEHB`HEHBhHHtHxSHEHtuHLLLH]UHHd$H}HDHEHH@(HEHEH]UHHd$H]LeLmH}H(CHE@PtNHEL HEL MtAI]H<LtHEHHEHEH HEHEH]LeLmH]UHHd$H]LeLmH}HuH(CHEHH;EtPHEHHUH}HE@Pt)LeLmMt@I]HjL( H]LeLmH]UHHd$H]LeLmH}uH(xBHE;EtEHUEHE@Pt)LeLmMt5@I]HL0 H]LeLmH]UHHd$H}@uHAHE<:EtAHEU<E@EEHEUHP@u} sH]UHH$PHXL`LhLpLxH}HuH:AHEHEHUHux HHcHUHEHH;EtHELLeHELMt>I]HgLLL}LuH]LeMt>M,$L3HLAH}LJHt9HEL HEL MtA>I]HL>HEL LeHEL Mt>I]HLLwH}{H}{HEHtHXL`LhLpLxH]UHHd$H]LeLmH}HuH(g?HEH@H;EtHEH@uHEHHHEH@HEHUH@HEH@u/HEHHHEH@ HEH@HuPLmLeMtHE8;EtEHUE8HE@Pt)LeLmMt%HEH訃uHEH荃uHELxHELxMt&6M,$LL@APHEL]HELMt5M,$L@LAPHEL]HELMt5M,$LN@LAPHEL]HELMtl5M,$L@LAPHEL]HELMt.5M,$L@LAPHELxHELxMt4I$HLHELHELMt4M,$L^L@APH]LeLmLuH]UHHd$H]LeLmLuH}H0W6LeLmMtC4I]HLuZHEHx uGHEH5HIIMt3MuLLAuEEHELp]HELpMt3M,$LI@LAP}uHEHx"tHELHELMtI3M,$LL@AP}uHEHx"uHELHELMt2M,$LL@AP}uHEHx"uHELHELMt2M,$L5L@APHEL]HELMtS2M,$L@LAPHEL]HELMt2M,$L@LAP}uHEHx"tHELHELMt1M,$L]L@AP}uHEHx"uHELHELMt]1M,$LL@AP}uHEHx"uHELHELMt1M,$LL@APLmLeMt0I$HxLu*HEHx uHEHx"tHELHELMtk0M,$LL@APH]LeLmLuH]UHHd$H]LeLmLuH}H02LeLmMt/I]HLuHEHx EfEEHEULPAHUELPMt/I]H&DLPHUEL AHUEL Mt=/I]HDLP} sbRLeLmMt/I]HL LeLmMt.I]HL H]LeLmLuH]UHHd$H]LeLmH}H 0HEHOILmLeMtk.I$HL0 LmLeMtB.I$HL8 LmLeMt.I$HL( H]LeLmH]UHHd$H}HuUH/EHuH}U}tTHEHu!H}mH;EtH}HEHEH@H;EtH}HH]UHHd$H]LeLmLuL}H}HH#/HE(HEƀ>EH}koHEƀ>HEtHEH` kHEH`jEfDEEHUEHP{HEUHРg} sEEEHEUHPtL}IHΪ{HHĪ{IMt,MLHLLAHEEH{L4LeLmMt+I]HLL0HUEHMHPErrHUHE苀ttHEH@u>HEH@Y;E'HEH@H}UH}?HH}HËUH {H4H辟H}NLuLeLmMt*I]HLL`HUHMHHH HHHUHE苀X XHUEHPHEHE@<H}\HEUpHUELuLmMt:*MeLL@A$HE8tAHE耸u2LuLeLmMt)I]HLL`3LuILmMt)I]HVLL`} s'EEEHEUHРtL}IH&{HH{IMt=)MLHLLAHEHUEHMH ErrHUHEHEH@u>HEH@uV;E'HEH@H}zUH})?rHH}VaHËEHd{H4HH}H}@ LuLeLmMt4(I]HLL`HMHUHHH HHHUHEX XHEUHРHEHEUHEULuLmMt'MeL@L@A$HE8uAHEu2LuLeLmMtI'I]HLL`3LuILmMt'I]HLL`} siH}pLmLeMt&I$HxL( H]LeLmLuL}H]UHH$HLLL L(H}H^(Ha|HH}kHEHDž0HUH@HҭHcH8HELHELMt%I]HLtHEHHHHP`HHhHEEEHELELdŠHELMte%I]H LLP} sHELL0HELMt%I]HLLH0HEH0McHEHHUH'HA`HQhEEEHEL HEL Mt$I]HAL;EFHEL ]L}HEL MtX$M,$LLLAFHELD}H]HELMt$M,$LHDLAHEULPLeHEULPMt#I]HkLLXHUEHPHE@?谑HUEL LeHUEL Mtb#I]HLLXHEUHРHE@?K} sXH0`H5]|H}H}`H8HtHLLL L(H]UHHd$H}H$HEHxHX_Hp`HEHxH`_Hp`HEHxHh_Hp`HEHxHp_Hp`HEHxHx_Hp`HEHxH_Hpg`HEHxH_HpO`HEHxH_Hp7`HEHxH_Hp`HEHxH_Hp`H]UHHd$H]LeLmH}HuH(w#LmLeMtc!I$HL8 H]LeLmH]UHHd$H]LeLmLuH}HuH0#HEH={HӮu9HEDpLeLmMt I]HoLD` MHuH=v{qӮu7HEDLeLmMt| I]H LD` H]LeLmLuH]UHHd$H}H'"EEHEH]UHHd$H]H}H!HEHc(Hq= HH-HH9vHE(H]H]UHHd$H]LeLmH}H {!HEHc(HqHH-HH9vhHE(HE(| H=Lc{HE(t8HE>u)LeLmMtI]HޭL0 H]LeLmH]UHHd$H]LeLmH}@uH( LeLmMtI]H'ޭL:EuE@uH}JBHE@Pt)LeLmMt7I]HݭL0 H]LeLmH]UHH$HLLLLH}HuHUH H}t*H]LeMtMLNݭHAUhHEH}tHUHuHɭHcHUKHEH]LeMt@M,$LܭHAP HUH}H(HUHE苀Xރ@XHEǀHEH`[HEH`dYHEH`XHEH`[HEH`YHEH`0\HUHH={ HUHHEǀHH=8W譪HUH HEƀ?HEH HUHH@ HA`HQhHH=X8WcHUHHH=tԮHUHHHEHHHUH4HAHQH}^.H}-HEƀ=H]HteL+L ۭH]HtJL#LڭLA$HxHxIHEHAGHAHALeMtM4$LڭDꋅAHAH]LeMtM,$LHڭHA0 LeLmMtzI]HڭLX LeH]HtQL+L٭LA8 HEH}uH}uH}HEHHEHpH`H GHoƭHcHxu%H}uHuH}HEHP`A7HxHtHEHLLLLH]UHHd$H]LeLmLuH}HuH03H})LeLmMtI]HحLHELHHELMtM,$L|حHLAU`HEL HHEL MtM,$L=حHLAU`HELHHELMtZM,$L׭HLAU`HELHHHELHMtM,$L׭HLAU`H}HH}uH}uH}HEHPpH]LeLmLuH]UHHd$H]LeLmLuH}uH0HEHXHuH}ExtuHE@Pt,HEHuHEHUHuHEH}HX`EtXt9tAtVt^t]t\HeHH[zH^~H}H4xIIMt}MuL!֭LA`IIMtPMuLխLAiH݂_HE=t(Hŏ_Hx Zu(IIMtMuLխLAHE@Pt,HEHuHEHUHuHEH]LeLmLuH]UHHd$H]H}HSEEDEEHUEr/Hc]HqvHH-HH9v]} s뮋EH]H]UHHd$H}HuH$H]UHHd$H}HuH$H]UHHd$H}HuHc~$H]UHHd$H}HuH3N$H]UHHHHLH5ӬLH=}H\H]UHHHHQήH5:N|H={H]UHHd$H}QHUHuHHcHUuAHEHEHE HMM1HӬLH=WHH5HH} QHEHt,H]H,H*Hd$D$D$<$詾\$D$Hd$Hd$6Hd$Hd$f= Hd$SATHd$ffAftHf'sAà s6fEt0%HkHXHfD;dXw0Hd$A\[fufufu fu0ufsf<sf<s fs0UHHd$H]LeLmLuffEfEfDutAAAXt0H]LeLmLuH]Sfft-ft(f's!%HY|f;Bw0[Sfft.f's'sftrf9r0[ft4f's- sss0Hd$%Hd$SATHd$ffA4 f=tf=utfAAHd$A\[Hd$n%HX|BHd$Hd$@%HtX|BHd$Hd$HT$Ht$H<$%HkL$H XHDHHd$Sf%HkH XHDX[Hd$Hd$Hd$HϨL\Hd$Hd$HLXHd$Hd$$f)$Hd$H,H*\HcLf/zrHLLf/zs0SHd$D$ $D$f$f9u!D$f$f9u0Hd$[UHHd$H]LefǃrCÉEHEHMH YHPM1H=W`HH5HޮHV|fDdBAH]LeH]Hd$HD$Ht$HHf$Hd$Hd$HD$HH|$H6$Hd$Hd$%Hd$Hd$HHt$H|$H$Hd$Hd$HD$ HT$Ht$HH$Hd$Hd$HD$ HT$HH|$Hq$Hd$Hd$HD$ HHt$H|$HA$Hd$Hd$HHT$ Ht$H|$H$Hd$Hd$tHd$Hd$f$PA;A; Hd$Hd$Hd$Hd$ff$A;A; _Hd$Hd$HD$Ht$HH&t$<$Hd$Hd$HD$Ht$ H|$Hf$|$D%HkL$ HOXHTHt$ |$A;A;Hd$Hd$fHd$SATHd$ffAf$f%HkAHXHTBAA;A;Hd$A\[SH,%H)HCH*[Hd$$%*$\HxLXHd$Hd$ftHd$Hd$fHd$Hd$fOHd$Hd$f Hd$H,H*Hd$HD$Ht$ H|$Hf$T$t$ |$A;A;Hd$Hd$fHd$Sfff)*XHءL\[Hd$ft/Hd$SHd$ff,*X $HrL$\$;;X$Hd$[Hd$%Hd$Hd$HD$HH|$H$Hd$Hd$HT$H$Hd$Hd$$ $\HLXH,%Hd$SHd$HL$ HT$Ht$HD$$D$%k%Hd$ [SATHd$HL$ HT$Ht$HD$;\$D$$D$6%kDk<Hd$A\[SATHd$HL$ HT$Ht$HD$\$D$$D$%kDk<k<T$Hd$A\[SATHd$HL$ HT$Ht$HD${\$D$$D$v%HHkLHkH,H*H,H*f/z!rH,H*H,H*f/zr0H,H*H,H*f/z!vH,H*H,H*f/zv0f)f)\HULf/zsf/zvf)HFL\f)H>Lf/zvf/zsf)HLXf)SHd$D$L$@dHLf/D$zQwOf/D$zGwEHWf/D$z2r0f/D$z(r&HT$Ht$HL$D$ $9L$D$H)XRfTH~LXHSD|^H,ÉHd$ [SHd$D$L$@nH&Lf/D$z[wYf/D$zQwOHWf/D$zu!fAH-EH*LLHLLHEH]LeLmLuH]UHHd$H]LeLmLuL}ffEfEfDmL}L5t LEAAAIt0ۄtAMAH]LeLmLuL}H]SATAUHd$ffAfAHAuAAE$Hd$A]A\[Hd$fHd$SATAUAVHd$HIID$fD$D$fAEfufAE;L$\H,LhD$fAfAs AƃAAƺ)A)E$LHHD$HL\HtIcH%I$I$IHHH?HfA$IcHHHtfA$fA<$4v3;tfAfAvfAfAs ffA$Hd$(A^A]A\[SATAUAVAWIfAffAAńtVAHHkH*XAAA)f=v*AXADA_A^A]A\[Hd$UHd$SATHd$ffAHAu Ar$Hd$A\[SATHd$HIHHT$HD$;L$\H,HfA$Hd$A\[SATAUAVHd$ffAIfEt ,%H`1|fD;$BwAE0Et3 AA*XH3L\AMDHd$A^A]A\[SATAUAVHd$ffAfAfAIAAA~uAAA$Hd$A^A]A\[SATAUAVHd$HIIILHHD$D$fAA4$;#D$h $gD4f=vAE'LLHHD$H!L\hMcLHHHH%I$I$IIHI?LHfAEA4$;fAfAsHA4$;%$H)AL9}#fAEfA$fA<$ u fA$fHd$A^A]A\[SATAUAVAWHd$L$fAfAffAADŽtgAH$AՃkAgH$Ѓ)%s*H$XH$DHd$A_A^A]A\[f<sf<s fs0tQ!Hi6!Hi`H!HiHHH*HL^AUHHd$H]LeLmLuffAfAfALEAAA@usÉEHEAĉEHEAʼnEHEAƉEHEHMHXHPAH=W[HH5H EH]LeLmLuH]Hd$ff$AAHd$Hd$ff$AAHd$Hd$ff$AAHd$Hd$ff$AAOHd$Hd$ff$DAHd$Hd$ff$DAHd$Hd$f<$AAHd$Hd$ff$AAMHd$Hd$ffAfAf $AAȺHd$UHHd$H]LeLmLuL}Ef}fufAfAfEfEf]HEHD$f$EEAAu}ESu&f$EEEAAu}EH]LeLmLuL}H]UHH$pH]LeLmLuL}ffAfAfAfEfDMfEfEHEHEHEH$LMLEHMHUHuH}HuHAHuHAHuHAHuHAHuHtUHuHdUHuHTfEf$HEHD$DMDEMUu}H]LeLmLuL}H]Hd$H<$HftfHd$SHd$D$0L$8D$0St0uH,T$0H,D$8H9uLD$0D$D$<$譋|$ D$8D$D$<$菋l$ zvD$8f/D$0zsHd$@[Hd$$L$$t0D$f/$zvHd$SHd$D$0L$8D$0t0FD$0D$D$<$ӊ|$ D$8D$D$<$跊l$ zsHd$@[\HE;RfTH yLf/ H,H,H9Hd$\H:RfTD$D$<$HxL(Hd$HH%I$I$IHHH?HHB%Hd$%Hd$SATHd$HHIHHD$D$fA$<$ufHd$A\[SATAUAVHd$ffAfAfAIAAA.uAAA$Hd$A^A]A\[SATAUAVAWfAfALfAfAAԃkAgq)fA9sfHفAAA_A^A]A\[UHH$HLLLLf0fAfAfAfEfDfEf(EHEHDž8HDž@HDž`HUHpxH蠈HcHhPHEH$LMLEHMHUHuH}EM0LZvLH`HsH`H}HEHHHWp1H@$H@HPMALvLH8HH8HXHHH}1ɺNHEHHH Wp1H8#H8HPMALuLH@HH@HXHHH}1ɺHEHHHuLHPMALIuLH8HBH8HXHHH}1ɺ}HEHHH;Wp1H8"H8HPMALtLH@HH@HXHHH}1ɺHEHHHWp1H8d"H8HPML`tLH@HYH@HXHHH}1ɺHEHHHRWp1H8!H8HPM(L(tLH@HH@HXHHH}1ɺHEHXHDžP HPHhXHPM1H=W`HH5H9H8H@H`uH}lHhHt苫HLLLLH]SATH$hH|$HfAL$LMHT$Ht$(iH葄HcHT$hfAt`H$HtH@H$H$HD$xHD$pAĉ$HDŽ$HT$pH߹H5rLHD$@H@qLf/zuHH4$_H$HtH@H$H$HD$xHD$pAD$HDŽ$HT$pH߹H5 rL莨HHD$hHtH$A\[UHHd$ff}f<$H=}pLAAH]UHHd$H]LeLmffAfAÉEHEAĉEHEAʼnEHEHMH9XHPAH=SW讚HH5H\H]LeLmH]UHHd$H]LeffAÉEHEAĉEHEHMHXHPAH=ʧW%HH5HӥH]LeH]UHHd$H]LeLmLuffAfAfAÉEHEAĉEHEAʼnEHEAƉEHEHMHXHPAH=WwHH5H%H]LeLmLuH]UHHd$H]LeLmLuffAfAfAÉEHEAĉEHEAʼnEHEAƉEHEHMHXHPAH=lWǘHH5HuH]LeLmLuH]SATHd$HT$Ht$H|$D$(޽D$H)H*HHH?HD$g)k D$gD$AD$(D$ D$ <$SHcHHH?HHHMcMiIt$HgfffffffHHH?HD$HHimHH4HH ףp= ףHHHH?HH)H ףp= ףHHHH?HHH*HnL\D$ D$ \$ D$ Hd$8A\[UHHd$EHEEHquUEEE}HEHEHEHMH"XHPM1H=WHH5H訢EH]SATHd$D$HD$H:mLXH,HcHHpHbȼk9HHH?HHHcHi:HH?HHHHcH)HcHHpHhBmHHH H?HIIcHiHH?HHHHcH)HcHkHpH555HHH?HIIcHiHpHgfffffffHHH?HHcH)LQIcHHgfffffffHHH?HHk HqH)HcHkdMcJ HMcHgfffffffIHI?LH<HAҁ|AĄt)D$HpjL\D$D$<$R|DHd$(A\[Hd$fHkL\Hd$Hd$HtkLX{Hd$Hd$HTkLXHd$Hd$$@uLHc$$$1HkL.HiLYH-Hd$SHd$H@HHjLa$uHcH$$$Hd$[H%|Hd$D$f$E1E11ɺp3L$Hd$SHd$Hf$E1E11ɺpHHd$[HOڃHd$HD$ H$LL$LD$HL$HT$Ht$ H|$ODT$T$ T$T$L$L$HH?HHHcHʁHd$(Hd$AAAAA?Ǽf$AAHd$UHHd$H]HHھH=џWܐHH5HڝH]H]Hd$H4$HT$D$0D$D$D$ HgLHHD$(H$HtH@D$L$HHtHRH1HXD$(D$8|$~.|$~'|$ ~ T$ t$|$SXD$8D$8D$8Hd$HSATAUAVAWH$PH|$H4$T$L$HDŽ$HT$(Ht$@ΚHxHcH$ D$ @H$HcD$ <­AHD$x0AMHH AA~dHcD$HcT$ HHH$H$H$HDŽ$H$HdXHp1H$H$Lt$H *HfLYAXF(HD$@(D< , d,,,r, ,!,,,to,t5,,i,,},,Lt$H4 *HfLYAXF(HD$@(HXAŃ~!t6toH HT$B HD$HHc@HLHD$H@HEH HT$B lHD$HHc@HLHD$H@H8EH HT$B .HD$H@HpH;Dl$ HD$H@HpHDl$ Lt$H*HdLYAXF(HD$@(Lt$H*HdLYAXF(HD$@(Lt$H*HicLYAXF(HD$@(NHAŃ|H>HT$BDH)HT$BA貶%HT$HRp)AHcH ףp= ףHHHH?HHkdHD$PHD$HPfpD;xHD$@dHAŃs~t$tZ_HdHT$BEHD$HHc@HLHD$H@Hp@E HHT$B HD$HHc@HLHD$H@HE H[HT$BH&AŃt t$HD$H@Hp0HDl$ HD$H@Hp8HDl$ kH$HcT$ H H5|H, AŅtH/bLH$H@bLH$H$HD$HHc@HLHAŅ|)t-t$HD$@(H5`LX@(HH3|HtH@D$ HD$@HD$HHc@|⼭H|HtH@D$ HD$@HD$H@H@ H$HD$H@H@(H$H$HD$HHc@HLHAŅett"ZHD$H@H@ HtH@HT$BBHD$@(H^LX@(HD$H@H@(HtH@HT$BHTH |HtH@D$ 9H$HcT$ 4HHD$H@pHHD$H@pHAHD$D`0D$ HD$H@HPHtHRHD$H@HpD$ L$H|$HD$H@HP8HtHRHD$H@Hp8D$ L$H|$YD$ `D$ HD$@P HD$@HD$P;PHHcD tڃ tՃ tt΃D$ H$HcD$ 4HD0HD$D:`0uHD$@0D$ H$HcD$ 4H}HD$P;PD$ ;D$D$;D$ |H$HcD tk"tftdHcD$HcT$ HHH$H$H$HDŽ$H$HXHp1H$H$KH$H$Ht輕H$A_A^A]A\[Hd$H<$HHtHR~H$H HH<$HHd$Hd$H<$Hx H$@ H$H Hc@4fH$;B H Hc@:4t)Hd$SH$@H<$@HD$hHT$Ht$ #HKnHcHT$`H$H@P;PHHc:\H$H@HHc@DD$xHD$pÉ$HDŽ$H$HcP Hc@HHH$H$H$HDŽ$H$H@@$HDŽ$HT$pHXHpH|$hH|$h&H$@ H$H@@MH|$hHD$`HtēH$[SATH$hH<$HD$hHT$Ht$ ŽHlHcHT$`E1H$H@HH$HHc@ @4 H$@ H$P ;P}CHHc@:4u7fDAk H$H@HHc@D0AH$H@@~#H$H@P;PHHcD0 rH$H@;HuM@ƉD$xHD$p$HDŽ$HT$pH]XHpH|$hZH|$hېH|$h1HD$`HtRDH$A\[UHHd$H]LeLmH}HEHH}5AAu H}C'IcHHtH@HUHRBHED` ADH]LeLmH]H$hH<$HD$hHT$Ht$ ׌HjHcHT$`uqH$Hc@ HH$H$HD$xHD$pH$H@@$HDŽ$HT$pHXHpH|$hH|$hB}H|$hHD$`HtH$UHHd$H]LeLmLuL}H}IHUHEE1ILA@@IcIHtH@Å~"A9|IcI4HcL諯uDHEAIcH;EEtEH]LeLmLuL}H]Hd$HH߸WHwHd$Hd$$!HcH$Hd$SHd$$~VHcH<HHցHcHHHHH?HHׁ11艥X$D$x}iډIHcH<HHց؉IHcHHHHH?HHׁ11 $\L$ $D$D$Hd$[Hd$$HcH$Hd$SHd$$~WHcH<HHցHcHHHHH?HHׁ11i $\L$t}eډIHcH<HHց؉IHcHHHHH?HHׁ11X$D$ $D$D$Hd$[SATAUH$`I$AHD$`HHt$ɈHfHcHT$XL$1H5ULEuuI4$L1HVL%H|41H|$`HT$`I4$L1i؉IЉHcHHHHH?HH$H$HD$pHD$hHcH<HH$H$H$HD$xHT$hH5h|H|$`IHT$`I4$L1H|$`HD$XHt8H$A]A\[SATAUHd$HIHD$pHT$Ht$(3H[eHcHT$hHHtH@HcHtHNH޹H|$p) H|$pH|vH޹H|$pH|$pHt$NtLH޹H|$pH|$pHt$$t"LT$t$<$ʞtAE0H޹H|$pH|$pHҵsH޹H|$pSH|$pHt$褵tIH޹ H|$p)H|$pHt$ztLT$t$<$ tAE0E0EuHPLHI$跈H|$p HD$hHt.DH$A]A\[SATAUAVHd$HIHD$pHT$Ht$(!HIcHcHT$hAIHtMmE~Icŀ|Zu AuAIcHHD+t -tuIcHH޹H|$pH|$pHCt?IcH|:u1IcHH޹H|$pH|$pHt$ tAE0AAIcHHD+t-tudIcHH޹H|$pVH|$pH詳t1IcHH޹H|$p,H|$pHt$}tAE0ANA~HIcHHD+t-tu-IcHH޹H|$pH|$pH$AAEuHNLHI$AAt=AtlAATAAAmHH譲tM<$111臜tACE0;H޹H|$p H|$pH_tKH޹H|$pH|$pHt$5t!Mt$<$11 tAE0H޹H|$pH|$pHtQ{:uKH޹H|$pcH|$pHt$贱t!Mt$<$11苛tAGE0?H޹H|$pH|$pHcxH޹H|$pH|$pHt$5tNH޹H|$pH|$pHt$ t$MT$t$<$1ߚtAE0H޹H|$pdH|$pH跰{:~H޹H|$p.H|$pHt$tT{:uNH޹H|$pH|$pHt$Ot$MT$t$<$1#tAE0H޹H|$pH|$pHH޹H|$p|H|$pHt$ͯH޹H|$pNH|$pHt$蟯tW{.uQH޹H|$pH|$pHt$ ot'ML$ T$t$<$@tAE0H޹H|$pH|$pH{:H޹H|$pH|$pHt${:~H޹H|$pWH|$pHt$訮tT{.uNH޹ H|$p'H|$pHt$ xt$ML$ T$t$<$ItAE0E0EuHILHI$谁H|$pHD$hHt'DHd$xA^A]A\[SATAUHd$HIH$HD$HT$ Ht$8~HC\HcHT$xIHtMmA ~EC tTtu5HH HHtHIHH|$ OA ~EC tTtu5HHHHtHIHH|$ 0QHt$H<$tHt$H|$t0ۄtD$XD$A$H{HLHI$7HH|$HD$xHt要H$A]A\[SATAUHd$HIHD$hHT$Ht$ |HZHcHT$`HH5JLHtHuAE0Et A$X+t-ACHHtH@HHtHtCHH޹H|$hKH|$hH螫AD$H޹H|$hH|$hHjt/H޹H|$hH|$hHt$@tAdE0_H޹H|$hH|$hHt/H޹H|$hH|$hHt$tAE0E0Et$k<D$A$;+u Ic$HA$+~H|$hHD$`HtDHd$pA]A\[UHHd$H}HUHuzHXHcHUuRHuH}uAHEHEHE HMM1HHLH=>~WpHH5HG|r}H}HEHt~EH]SATAUAVH$xHIAH$HD$HD$xHT$Ht$0yHXHcHT$pHHH$HtH[uE0H$HcÀ|Zu=H|$H5GLHcHH4$H|$xHt$xHX-~bH$HcHD+t-tuFHcHH4$H|$hHcHH4$H|$xNHt$xH~_H$HcHD+t-tuCHcHH4$H|$HcHH4$H|$xHt$xHb~]H$HcHD+t-tuAHcHH4$H|$HcHH4$H|$xHt$xH&LH<$tHt$H|$7tAE0EtCHc|$A$趹A$Et1 ¾HcH؉HcA$茹A$AzH|$x4H,H|$"HD$pHtC|DH$A^A]A\[UHHd$H]LeHADHuH*uAH]HE HMH_XHPM1H=zWWmHH5HyEH]LeH]Hd$H@D$HHu D$$$Hd$Hd$HD$@HHtu D$$$Hd$Hd$Hd$Hd$H={H5{H={ܜHd$UHH$ H}HuH譩H}tHEHUHRhHEH}tHUHuuHSHcHUEHEH}Hc`HE@@HE@HEHx H|HEǀHE@XHEHx8HRHE@PHE@`HE@YHE@ZHE@T0uHE@dHE@hHE@lHE@pHE@tHE@xH}HEHHE@DHE@[HE@\HE@|HEƀHEH}uH}uH}HEHwHEHpHpH0LtHtRHcH(u%H}uHuH}HEHP`FwxHHcHUuK}t EEHEUP(HEP(HEH8HuHuHEHx0iAH}뭭HEHt CEH]UHH$`H}HqHEHUHu>H/HcHUHEx@uHEx(uHEP(HEH8HuHE@(pHDžhHEHEHDžx HhIH3 LHH=]{3HEHUHE@(BHEHx HuEH5HH}2?]@H}贬HEHtAH]UHHd$H}uHxpHEHUHuH]UHH$H}uHlHDžpHDžHDžHXH8H HcHGHcEHHHHHLdHpHTHpƭ&HpHpH5 LyHpHtH@H |HH8HAHcHH}HHEH8HHx4HEHtH@H&HE@HHfpHpHE@HHfpHpHHpvHpHp~Hp]EHE@HHfpHpHE@HHfpHpHHpHpHpHp]EEk<EHUHE؀8-tHEHcHHUEEH}H5o LRHtE H}H5q L4HtE H}H5s LHtE H}H5u LHtE H}H5w LڨHtE H}H5y L輨HtE H}H5{ L螨HtE H}H5} L耨HtEH}H5 LbHtEH}H5 LDHtEH}H5 L&HtEH}H5 LHtEH}H5 LꧭHtEH}H5 ĻHtEH}H5 L讧HtEH}H5 L萧HtEH}H5 LrHtEH}H5 LTHtEH}H5 L6HtEH}H5 LHtEH}H5 LHtEH}H5 LܦHtEH}H5 L辦HtEH}H5 L蠦HtEH}H5 L肦HtEH}H5 LdHtEH}H5 LFHtEH}H5 L(HtEH}H5 L HtEH}H5 L쥭HtEH}H5 LΥHtEH}H5 L谥HtEH}H5 L蒥HtEH}H5 LtHtEH}H5 LVHtEH}H5 L8HtEH}H5 LHtEH}H5 LHtEH}H5 LޤHtEH}H5 LHtEH}H5 L袤HtEH}H5 L脤HtEH}H5 LfHtEH}H5 LHHtEH}H5 L*HtEH}H5 L HtEH}H5 LHtEH}H5 LУHtEH}H5 L貣HtEH}H5 L蔣HtEH}H5 LvHtE}uEkHuH-HHxE0BHxğBHx^ BHHtXHH}HHt-H]UHH$H}HuH}HPBHDžH`H H9HcHHuHxGH}@+3u H}@HxAHHHHcHu>HuHHHxդ@HxT@zHx@HHtSH}H}}HHtH]UHHd$H}HuHsAHEHH}H}t[HEHtH@EE@EE;E~HEHcU| tHcUH}HuH誏H]UHHd$H}HuH@HEHH }H}tNHEHtH@Em}HUHcE| tHcMH}HuHH]UHHd$H}HuHxC@HEHUHu HHcHUu*H}HuyHEH0H} HuH}L|wH}{HEHtH]UHHd$H}HuHUH ?HEH}HHxE}|H}Hu{HcMHH}HuHH]UHHd$H}HuHUH ?HEH}HHE}HcUHEHtH@HHEHMHtHIHcEH)HcEHPH}HuhH]UHH$PHXH}HuHUH>HEHEHDž`HDžhHDžpHUHu HHcHxLH}HuzHuH}hzHuH KHKHpRHpH}.HuHhR$HhHuH`;$H`HH腍HtHUHtHRH}HݒHuHp=.HpH}yH}tiHE8=tQHuHKHpHpH}-HEH0"HpHpH}Hy H}d H`xHhxHpxH}xH}xHxHt HXH]UHH$pH}HuHUH}xH}xHGH@H5K{~HtH}H5KnHuH@EHuH/Eȃ}E;E| }|HuH}HK\HuHKH@H@H}UnHuH:萂Ẽ}PHuH"KH@H@H}nHuHKH@WH@H}m H}HumHuH/Ẽ}*HuH}HKHuH}HKHuH}mH}HqmHuH[謁HtHuHKH@H@H}*mH}HH#HuHKH@\H@H}lHuH:'Ht'HuHKH@H@H}l}HuH:ހẼ}PHuHpKH@LH@H}\lHuHIKH@H@H}5l H}Hu&lH}HUH5jK=mHuH?HẼ}\HuHzKH@H@H}H5KlHuHGKH@H@H} kH}HUH5KlHEH8tH}H5K\kH@jH}jH}jH}jH}jH}jHHHtH]UHH$pH}HuHUHMH}jH}jH}jHZ.HUHxHجHcHpsH}t H}tH}HuljOHEHtH@EHEHtH@EH}H7jHuH}H}EHEHHtH@EHcUHcEH4HH}wzHEHHcEH@HtHcUHH}άHEHHtH@EHcUHcEH4H}%zHEHHcEH@HtHcUH}TάHcUHHcEHH}HdHuH}H|E܃}HEH0H}HUHjCH}hH}hH}hHpHtH]UHH$pH}HuUHZ,HDžpHUHuH֬HcHxEHEHtH@E܋EU)g@}ZEEg@E@Eg@EHcMHcUHuHpvzHpHuwHtEE}~*Hp~gHxHtEH]UHHd$H}HuHS+HEHtH@HuH}EEH]UHHd$H}HuHUH*HEHUHuBHjլHcHUu^HEH0H}HUHEH0HUH}gHEH0H}wvHtH}Hf H}HufH}SfHEHtuH]UHHd$H}HuHUH,*HEHUHurHԬHcHUuKHuH}HUHEH0H}~HuH}1fHEH0H}aHuH}f?H}eHEHtH]UHH$pH}HuHUHMHe)HDžpHUHuHӬHcHxfH}H~eE1D}uvHEH0H}HxHtEHEH0HpjoHpHEH0H}>fH}HH~HEH0H}HkxHt"HUHtHRH}H}HEH0H}H*xHEHEH0HpnHpHEH0H}eH}HHT}HEHHtH@HSHpcHxHtH]UHHd$H}H'EHEHtH@}jEDUgRUHUHcMT r rr/HcUHMHtHIH9tHUHcM| tE;E~뢊EH]UHHd$H]H}HuH(&EHEHHcHEHtH@E]}EEg@EHEHcUD t ttEEHUHcEtH}lE;EuhHEHcUD< rX, t-,tNHUHcEH@| tH}H5@K[b'HUHcEH@| tH}H59K4b ;]~6EH]H]UHHd$H}Hx%HEHUHuHЬHcHUyH}HEH}^EEg@EfDEg@EUH}HuHEHH}tuH}HEH}~xH}`HEHtH]UHHd$H]H}HuUHH$EHEHtH@EHEHtH@E܃}t }t}|EcHcEHEHUHcEHDHEHEHEHEH;EtHUHuH}ʬHÄu EE!EHcEHcUHHHcUH9~EH]H]UHHd$H}uH#HcEHEHEHEH]UHH$@HHH}HuHUHMHN#HEHEHDžPHUH`~HͬHcHXHEHtH@EHEHtH@EHEHtH@EHP^HUHuHP?`HPH}nHtH}H^HcEHcUHHcUH9H}Hu^dHUHuH} HuH}nHtH}Hu^-HuH}HqE܃}tH}HuW^H}HB^EHEHtH@HcUH)H@E]}E@Eg@EHcMHcUHuH}9pHuH}\mHtm}~qHcMHcUHuH}pHuH}%mHtEHEHcUtHPgHPHEH0H}^;]~NHP\H}\H}\HXHtHHH]UHHd$H}@uH EHEHtH@}0EUgRUHMHcUT:UtE;E~؋EH]UHH$`H`H}HuUH HDžhHUHxSH{ʬHcHpH}H)\H}tEHHfhHhEHHfhHhHHhެHhHheHhH})kHt"EEH]HtH[}EEg@EHEHcUDEHcEHUHtHRH9uHUHcEH@DEEE:Etc}uES}tEEE:Et7uHheHhHEH0H}[EE1uغHhdHhHEH0H}[;]~ HhYHpHtH`H]UHH$@HHH}HuUHHDžPHDžXHDžxHUHuHȬHcHU3H}HYH]HtH[}EEg@EHEHcUtHxcHxHEH0H}ZHUHcED:Et1uHxlcHxHEH0H}@Z;]~nuHX1cHXH`HEHHhuHPcHPHpH`H}HV\HPXHX XHxWHEHtHHH]UHH$pHxH}HHEHUHuH8ƬHcHUH}HEHÃ}EfEg@EUHuH}HEHHuH:kE}THuH=kE} E;E|,H}{iHcUD=HUuH}HEH ;]~`[H}VHEHtHxH]UHHd$H]H}HHEHUHuHĬHcHUH}HEHÃ}zEEg@EUHuH}HEHHuH=jE}*H}]hHcUD:HUuH}HEH ;]~@H}UHEHtH]H]UHH$p}HrHEHUHuHìHcHxu[uH}HE@EHE@EHE@EHEEEUgUMg gErH}THxHtEH]UHHd$H}HuUH HcEHH}{eHEH0HuH5UH}HEHEHcuH}?eH]UHHd$H}HuH}VTHpHUHuhH¬HcHUu.HUHtHRHuHuH5H}HEHRH}SHEHtH]UHHd$H}HuHUHHEHHUHu;H]UHH$pH}HuUMH7HDžxHUHuzHHcHUoHEHtH@HcUH9}HcMH}HuHe=HcUHEHtH@H)uHxnHxH}Hu$THxsRHEHtH]UHH$pHpH}HuHUH}xRH}oRH0HDžxHUHusHHcHUHUHtHRHuHxzHxH}*RH}HRH]HtH[}lEEg@EHEHcUHuHcMD@t@0@Hx[HxHEH0H}R;]~HxQH}QH}QHEHt)HpH]UHH$@HHH}HuHUHHEHEHDžPHUHxHHcHpkHEHuH}HEHHEH}u0DHEHuH}HEHH}tH]HtH[}?E@Eg@EHEHcUԀ| tH}TbHcUD ;]~HE t"t :t=tuZHEHXHTKH`HuHPUHPHhHXH}HkSHEH}HEHHcHHUHcH9H}HuHPNH}NH}NHpHtHHH]UHHd$H}HuHUHMH HUHEHH HEHHEHH;ErHEHt t tuHEHUHHH)HUH]UHHd$H}HuHHEHH;ErHEH8 tHEHHEHH;ErHEH8 tHEHH]UHHd$H}HuH ;HEHHMHUHuH}HuK} HEHUHHEHH;ErH]UHH$`HhH}HuHUH"HEHUHxeݭH荻HcHpcH}HMHUHuH}Hu}tZH]HLHHcUHuhHuH}HEHPHEHH;ErHEH8u|߭H}DLHpHtcHhH]UHH$@HHH}HuHUHMHHEHEHUHX9ܭHaHcHPHUH}H5+K6MHEH}HMHUHuH}HuFHEH0HUH}HEH}uHUHuH}HEH}uHEHUHcNH}uHEHUHK6H]HJHHcUHuعgHuH}HEHPHEHH;E1RޭH}JH}JHPHt߭HHH]UHHd$H}HuHUH0oHEfHEH8HH5K7Ht!HEH8HUHuHEEQHEH8HH5Kd7Ht!HEH8HUHuiHEEHEEH}uHEHHEHEHUH HcEHUHHEHH;E.HEH]UHHd$H}HuHUH0_ HEHEHEHEHtH@EHEH@HcUHH;EwH}HH5Kk6HtHEHEH@HcUHH;EwH}HH5`K+6HunHEHcUHuHuH5H}5HuCHcEHEHEH@H;Ev#H}HH5K5HtHEHEHEHEH]UHHd$H}HuHUH( HEHEHuH}HHEH}t`H}HH5rK=5Hu@HEHEH@H;Ev#H}HH5EK5HtHEHEHEHEH]UHHd$H]H}HuHUH([ EH}u&H}uHEHUH)ЉE}|EH]H GHHcUHu$cH]H]UHH fDg@HWHt8HqH|FHzWHt8Hh`{H|F= }H]UHHc{HH= 6H5c{H=_{#H5,d{H=`{H]UHH$ H}HuH H}tHEHUHRhHEH}tHUHu֭H*HcHUuJHEH}HHHEH}uH}uH}HEHحHEHpHpH0{խH裳HcH(u%H}uHuH}HEHP`uحڭkحH(HtJۭ%ۭHEH]UHH$ H}HuHUH}DHH}tHEHUHRhHEH}tHUHuԭHͲHcHUHEHhH(nԭH薲HcH H}HHH=&VLHUHHEƀHEǀlHEHHCHEƀHEƀHEƀHEƀHEǀHEǀHEǀHEǀHEǀHEƀHEƀHEƀHEƀHEƀHEƀHEǀPHEǀTHEǀXHEƀ\HEǀ`:HEǀdHEǀhHEHǀխH}VBH Htu׭HEH}uH}uH}HEHխHEHpHhH `ҭH舰HcH`u%H}uHuH}HEHP`Zխ֭PխH`Ht/ح حHEH]UHHd$H}HuH sH}HEHUHHH}HEHHEHI}EEEg@EfDEg@EHEHuGHEH}~}~HEHfH}HH}uH}uH}HEHPpH]UHHd$H}@uHE<r,t,t EE EEH]UHHd$H}HuH83HE@tU,,,,7,,,6,,,&HE@ EHEHcH HS㥛 HHH?HʉUHEHEHElHMA ڄ/HEH@ HEHElHMA覄HEH@ HEHElHMArHUHE@ HEEHElHU!T薅HEHcH HS㥛 HHH?HHUHEHc@ HHHHiHUHElHMAȃHEHcH HS㥛 HHH?HHUHEHc@ HHHHiHUHElHMAZHE@ EHEHEHElHMAtHEH@ HEHEu%HElHMA)܂#HElHMA跂 HE@ EHEHEHElHMA|HEH@ HEHEu%HElHMA)9#HElHMA!lHE@ EHEHEHEu%HElHMA)́#HElHMA"訁H}͸H]UHHd$H}HuHHEltHEHHU K HuH}H]UHHd$H}HHEHD}CEEg@EEg@EHEHuCBHEHuH}}~HEHHEHHH]UHH$HLH}HuHUHMH}-;H}$;HHDž(HDž0HDžPHUH`˭H7HcHX&HPy:HEH8H/KH@HEHHH8HHPf>HPH}DH}(EHElt9HEt*H} uEH}uE HEEHE$H}HEHH}HEH AuH}H}HUHuEAHUpHPO9HuHHHH}H0-H0H8HKH@HuHHHH}6$HH$HHc$H$H(BH(qWH(HHH8HHPH}AH]H]UHHd$H}HHEHUHHH]UHHd$H}HHEluHEl{HEǀlHEH<}CEEg@E@Eg@EHEHu:HEH}覰}~HEHHEHHHUHEH}HV>H]UHH$H}HuHUH}3H}3HHDž@HUHPíHHcHHkH}$!HEȃluFHEȀt.H}H5SKBHtH}H5ܮKBHtHMHUHuH}HEȃpt{HEȃltHHuHHH}0HEȋlHu tH}HEHH}1HEHH2HEƀH}F!H@*2HEH(HKH0HEH8H(HH@6H@H}Ⱦr<mŭH@1H}1H}1HHHtƭH]UHH$H}HuHUH}1H}1HgHDž@HUHPHϟHcHHHMHUHuH}HEȃptBHEȃltHHuHHH}lHEȃhHEȊEH}@a4HEȋlHurH}HEHHEȃpstHEȃp t/HEȋhH}HEHtHEǀpn@uH}3&HEȋlHu rH}HEHHEȃpt H}1HEHH:0HEƀHEƀH}H@/HEH(HUKH0HEH8H(HH@3H@H}Ⱦ9­H@6/H}-/H}$/HHHtCĭH]UHHd$H}HHElSuH}HEHH}H}H}H99H]UHHd$H}HHEHptHEl@sEH}dH}H 8EH]UHHd$H}H'HEHpXHElppH]UHHd$H}HHEHptHElpH]UHHd$H}HHEH[H}H]UHHd$H}uHdHUEHEUH]UHH$@HHH}uUHMHHDžhHUHxPHxHcHpVHE\uB}7袥EHE;EwHEU)ЉE܃}wEH`HH`HH`H`Hhp6HhJHhH} 6}ܸMbi)hUܸMbӃ}6EEg@EHE\u Yh;]~蝤%*E*M^HӧKYH,HHU Hh_+HpHt~HHH]UHHd$H}H7HEH7HE\E}u"HEƀ\HEǀpgH}EH]UHH$PH}HuUHHDž`HUHpH"HcHhEH} uMHUH}@6EEEE؋U)ЉEHE苀X;E| HE苀XE܃}sHEHHE苐uH}uH}HEHE苸lUHuȹ@0mEԋuH}HEHHE胸p tcHE苰`H}HEHu4HE苸lUHuȹ@lEԋuH}HEHHEǀpnHE胸puEEEEHUETHcEHXHHXHHXHXH`2H`pGH`H} +3E;EKH} H`_(HhHt~EH]UHHd$H}@uH3HEHH}HEHH]UHHd$H}HuH}&(HxHUHu8H`HcHUu*HEHEHUHtHRHuH}HEH&H}}'HEHt蟼H]UHHd$H}uHTHEHEHuH}HEHH]UHH$pH}HuHHDžxHEHUHu8H`HcHUu[H}HtH#EH}&uHxhHxHUH}(HuH}HEH HxI&H}@&HEHtbH]UHH$PHPH}HuUMHHEHDžXHDž`HUHp-HUHcHhAEE}u>H}HEHHH}HEHH)É]܀}t }lEfHEHcXH}к76HEXHuH}HEHE؃}HcuH}к5}u]}uUEH`$uHX詟HXHUйH`M&H`H}HEH HuH}HEH HEpu }~HXQ$H`E$H}<$HhHt[HPH]UHHd$H}HuHHEH}HuLHAH]UHHd$H}HuHHEH}HuLHAH]UHHd$H}HuHHEH}HuLHAH]UHH$pH}HuUH:HDžxHUHu}H襑HcHU8EH}uHEHHE苐uH}HE苸lUHu@ofE}tHEǀphuH}HEHH}w}HEUPE䉅tHHtHHctBެHtHxJ,Hx@HxH} ,MHUH}@/.HUHuH},YHx!HEHt϶EH]UHH$`H}HuUMHwHEHUHh躱H⏬HcH`1H}E}EfDEċUHuH}HEHHEHtH@EHcEHcUHHcEH9 EU)ЉEȋuH}HHcUH}ꅬE̋UgEHEpuOE;E}CHEt/\Ƌ}蒙U)‰U}~HEǀpn%HcUH}H9HEHHuu ẺE蚳H}H`HtEH]UHHd$H}HuUMH(HEHH }fHcuH}0HEH0MUH}HEHXEHE胸ptHcuH}>0H}HH]UHHd$H}HuUH HEHH]H} HEHu0HEHH}0HEHHH}HEHE}OHcuH}v/HEH0UH}HEHPE}}HcuH}>/uH}HEHu~H}HEHE}tHEǀph}JHcuH}.HEH0UH}HEHPE}}HcuH}.HEǀpnHEuHEH8u~HEu%HEH8 tH}HH6HEu%HEH8 tH}HH6HEƀHEƀH} H]UHHd$H}uHHEHUHuH?HcHUEH}s HEHt,UH}HuHEHHuHEHHEpt>HEHu.HEHEHEHHHz5H} 茯H}HEHtEH]UHHd$H}uH߭HEHUHuHHcHUujEMHuH}HEH`HEpt7HE@HURgHURHM g gE襮H}HEHtEH]UHH$PH}HuUHMHޭHEHEHDžPHUH`HHcHX}H}SH}HHEHtH@Ẽ}tGẺEHE耸uH}H5K*HtEEH}H`EEUH}HPHEHHPHuH}йLHE胸puHEHEHtH@H}uvH}HHuH}qEHEHtH@EH}H5ÕK)Ht HEƀH}H5K(Ht HEƀHuH}H,E܋ẺEHE胸u/HEHcHUHtHRH9|HEǀpiM}CHE耸t/Ƌ}赑U)‰U}~HEǀpnh}vHEHE@HEUP HuH}˾H]UHH$ H(H}HuUHMH迾HcEHHHHiHHHcMHS㥛 HHH?HH@H@HP}t HDžPHXN;Dž4H}Ã}Dž8f8g@88H}HH={nu[8H}l;48H}l48H}slHX1:;8~dHX4gxLPHH9A<pKYHuH}HEH HEHuH}HEH`HEHtH@H|HE8uHE@EEZt t LIHEHHtH@HHfHHoKHH3jHH;HHHEHHHEHHtHv@HbHHHEHHHH}HHuH}HEH HEHuH}HEH`HEHtH@H|HHExu:6HEƀEyHEƀH HtHt{HDž lyHHH}HEHtzEH]UHH$HH}@uHUHMHnHEHDžHDžHUHxuHSHcHpHEƀHXH^uHSHcHqHEuHMHUH}HHEHHfHHlKHHgHHHH}йHHlKHEHHfHHHqlKHHHHHgHHHHMHUH}HHH}йH'HuH}HEH HEpEvHEƀHHtrxvH1H%H}HpHt;xEHH]UHH$HH}H ڦHEHEHDžHDžHDžHUHurHQHcHx-EHEƀH`H rHPHcHHEHHHEHHnHEǀHEu_HEHuH}HEH`HEpu\HE8uLHUHE@HEHuH}HEH`HEpuHE8uHE@<,t,t6,HEHuH}HEH`HEH}HEHhEHEpukHEUH}HHEH`HuܺH'HH}H+HEHuH}HEH`HEHHEHHEH}HHEH`HHHH}HHEpujHUHE@HEuHEZu8HuH}EsHEƀHHtHt}tHDžrH/߬H#߬H߬H}߬H}߬HxHt$tEHH]UHH$@H}HuHUHMH}ެH}ެH賢HDž`HUHpnHMHcHhQHE耸uHuH}*fH} XHE耸t$HUH}H`H`H}xެH}yu{HuH`i}H`HEH0H}m߬HEHHHHEHHPH6fKHXHHH}HH5'fKH`|H`HEH0H}ެHEHHHHEHHPHeKHXHHH}H5HEHHHHEHPHueKHXHHH}HHE耸t$HUH}H`jH`H}ܬH}wu1HuH`{H`H}H5$eKݬH}AyutHuH}NH}H5eKܬEEg@E̋EtкH`H`HEH0H}qݬ}}tHEHtH@HHfHHHHdKHHH^HHH`H`H}HUܬHuH}&fH`UH`HEH0H}ܬnH`۬H}ڬH}ڬHhHtpH]UHH$PHPH}HuH}ڬH譞HDž`HUHpjHIHcHhKHEHH59VKڬEHEuIHEHtH@H|EuH}FTfEE܉\HH\HHc\H\H`H`yH`HEHڬHE@(HDž HE@8HDž0HE@HHDž@HE@XHDžPH HH51bKH`H`HEHf٬E HEHtH@H|HE@EEE< ,t,,yHEHtH@H |iHE@(HDž HE@8HDž0HE@HHDž@HE@XHDžPH HH5 aKH` H`HEHUجE 7HE@EHcEH@H@HUHtHRH9EgX}^EEg@EHUHcEtH`H`HEHHEHج;]~몋Eg@g@EHEHtH@H|EfDEg@EHMHcEH@UDD̃}}HuH`GH`HEH ׬EuH}PfEE܉\HH`HHc\脒H`H`H` H`HEH֬Eg@EiH`֬H}լHhHtkEHPH]UHH$ H}HuHUH}լH}լH觙HDž`HUHpeHDHcHhHUHuH}LHEHHptHHH}͞HEHHլH` լHEHHHPKHPHEHXHHHH`جH`H}ȾRMhH`ԬH}ԬH}ԬHhHtiH]UHHd$H}HuUH `EHuH}HUH EEH]UHHd$H}HuUH EHuH}HUH EEH]UHHd$H}HuH×H}HEHUHHHEHuHEHPH}HH}uH}uH}HEHPpH]UHHd$H}@uH3HH=UzH=NHEHE@HEUP HuH}ʖH]UHH$pHpH}HʖHDžxHEHUHucH-AHcHUEHEƀHEHuEHEHtHH=z HUHHEHHEHHHEHHEHHEHHEHHEHHEHHHEHpuHEtH}HnMKH5MKʝHEHHHEHѬHEHHHEHѬHEH6E}uH}HEHEHHHHc}HH}۬H}H]H}HxHEHHxHEHHE}uHEHxE}tHEptHEǀpHEHHUHEHHHEHsЬHEHHHEHQЬ}uHEptEE[cHxϬH}ϬHEHtdEHpH]UHH$0H}HuUHjHEHEHDž@HDžHHUHp_H=HcHhEHEƀHEHu"H}tHEǀpHE耸uHuH}HEHH}HEHEHEHHEHH}gHcuH}ȺU߬HcUHuH}3H}WKHPHcEH8HH8HH8'H8H@/جH@H@HUH}HHHHHXHEH`HPH}ȹHѬHUHtHRHuH}2EHcEH`HH@HH``H@H@h׬H@H@HuH}UHuH}E`H@̬HH̬H}̬H}̬HhHtaEH]UHH$`H}HuUH芐HEHDžhHUHx\H:HcHpUHuH}EHE耸uHcuH}غݬHcUHuH}@1HuH}EԋEU)g@EHcMHcUHuHhyެHhH}̬HcUHuH}0HEHHEHH}y_HhhˬH}_ˬHpHt~`EH]UHH$`H}HuH}cˬH$HUHho[H9HcH`HEuzHuH}pEEg@EЋUЋEЊDDԃ}}EHElHMA)H}HEHSH}jtEHE@\EHElHMA#H}HEHH} ]H}ɬH`Ht_H]UHH$`H}HuH}ɬH贍HUHhYH'8HcH`HEuzHuH}voEEg@EЋUЋEЊDDԃ}}EHElHMA)nH}HEHSH}iYsEHE@\EHElHMA$H}HEHH}蝷(\H}ȬH`Ht]H]UHHd$H}uHTHH=vzH^CHEHE@ HEUP HuH}H]UHHd$H}HEHEu#HElHMLE)p !HElHMLE!M EH]UHHd$H}@uHsHH=zH}BHEHE@ HEUP HuH} H]UHHd$H}HEEH]UHHd$H}H犭EEH]UHH$ H}HuHUH詊H}tHEHUHRhHEH}tHUHuVH4HcHU HEH}HHUH}HHEHUHHEHHdƬHEHHMƬHEƀHEH H+ƬHEH(HƬHEH0HŬHEH8HŬHEǀ@0uHEH}uH}uH}HEHXHEHpHhH(UH3HcH u%H}uHuH}HEHP`}XZsXH HtR[-[HEH]UHH$ H}HuH蝈H}tHEHUHRhHEH}tHUHuTH2HcHUuMHEHzHH}H]HEH}uH}uH}HEHWHEHpHpH08TH`2HcH(u%H}uHuH}HEHP`2WX(WH(HtZYHEH]UHHd$H}HuHSH}HEHUHHH}H薁HEH?H}uH}uH}HEHPpH]UHHd$H}HuHӆHEHH}HEpt+HEHx$uHEHHp(H}¬H]UHHd$H}HgHEHx uHEHHEHHHElu,HEptHEl#H}*H}H]UHHd$H}HDžHEHuHEHHuHEH]UHHd$H}HwEHEHx u1HElu"HEHHEHH(E}t H}苲EEH]UHH$pH}HHEHEHUHu/QHW/HcHUHEHtH}菑HuH}HEHH}H5T@>H(HtAyAHEH]UHH$ H}HuHUHnH}tHEHUHRhHEH}tHUHu:H&HcHUHEH}H%HUHEHBHE@ HEHH褪HEHH荪HE@$HEHx(HnHEƀHE@0HEHx8HGHEHx@H3HEHxHHHEHxPH HEHHHEHxxH੬HEHHɩHEHH販HEHxXH螩HEHx`H芩HEHxhHvHEHxpHbHEHHKHEHH4HEHHHEǀHEHHHEH}uH}uH}HEH;HEHpHhH(8HHcH u%H}uHuH}HEHP`;(=;H Htr>M>HEH]UHHd$H}HuHkHEHHEHHEHHEHHUHEHUHE@0B0HEHp8HEHx8趧HEHp@HEHx@衧HEHpHHEHxH茧HEHpPHEHxPwHEHHEH\HEHpxHEHxxGHEHHEH,HEHHEHHEHpXHEHxXHEHp`HEHx`禬HEHphHEHxhҦHEHppHEHxp车HUHEHEHHEH莦H]UHHd$H}HjHE@$HEHx(H5%0KHH]UHHd$H}HuHiHEHHH]UHHd$H}HuHiHEHHХH]UHHd$H}HuH}vHx:iHUHu5HHcHUuE8H}HEHt:EH]UHHd$H}HhHEHEEH]UHHd$H}HhHEH[EEH]UHHd$H}HGhHEHEEH]UHHd$H}HhHEHEEH]UHHd$H}HuUH gHEHEEH]UHHd$H}HuHgHEHHuϣH]UHHd$H}HuUH @gHEHEEH]UHHd$H}HgHEHEEH]UHHd$H}HuHfHEHHH]UHHd$H}HuHfHEHHТH]UHHd$H}HGfEEH]UHHd$H}HuHfHEHH`H]UHHd$H}HeEEH]UHHd$H}HuHeHEHHH]UHHd$H}HuHceHEHH谡H]UHHd$H}HuH#eHEHHpH]UHHd$H}HuHdHEHH0H]UHHd$H}HdEEH]UHHd$H}HwdEEH]UHHd$H}HGdEEH]UHHd$H}HdHEHxuHEHxHuHEPEEEH]UHHd$H}HuHcHEHH5-*KH]UHHd$H}HuHcHEHH5*KПH]UHHPcHHt\H*KHH=nzq$HlHl@HlHx H5)KUH5HH=l?1H5k.H]UHHbH]UHH$ H}HuH}bH}tHEHUHRhHEH}tHUHu.H HcHUHEH}HSHH=z@HUHB8HEH@8HUHHEH@8HUH HHHP HE@ `HEHxH5(K HEHxXHHE@`HEHxhH5(K۝HEH}uH}uH}HEH0HEHpHpH0-H HcH(u%H}uHuH}HEHP`0 2v0H(HtU303HEH]UHHd$H}HuH`H}HEHUHHHEHx8 H}HH}uH}uH}HEHPpH]UHHd$H}H'`HEHx@HsHEHxPH_HE@HHEHx8HEH@8HHEH@8HH#HEHpHEHx8H&KgHEHPHEHpHEHx8HEH@8HHEH@8pEEH]UHHd$H}HuHUH?_HEP HEHx8HuHMHEH@8HH]UHHd$H}HuH^HEP HEHx8HuH I&KHEH@8HH]UHHd$H}HuH^HEHUHu*H HcHUu1HEP HEHx8HMHuHEH@8HH}E-H}$HEHtF/EH]UHHd$H}HuHUH]HEHUHu2*HZHcHUuBHEHH}Hu[HuH}HEHpPHEHxPHEH -H}_HEHt.H]UHH$0H0H}HuHUH"]HEHEHDž8HDžhHUHxG)HoHcHpH}HH]HtH[}EEEHUHcEDEH}HИHE@HtE,,,4,,`,,,"}t HE@H1uHh虢HhHEH0H}mOE<,o, q,t;,tA,tQ,tC,t~HE@HHEH0H}H#K`HE@HVHE@HLHE@HBHE@H8HE@H.HE@HHE@`HEHxXH舗HE@HE<r,tH}H5"K\H}H5"KJHE@HTH}H5"K-HE@H7E<r,tH}H5"KH}H5"KHE@HH}H5"KԖHE@HHUEB`HE@H}t HE@H 6uHhɠHhHEHpXHEHxX蘗zE<],tL,tPHE@HuHhnHhHEHpXHEHxX=H}HHE@`<rA,t;HEHxXu,HEH@X8tHEHPhH}йH5!KޖHh0H!KH@HEp`H8蹟H8HHHEHPH KHXH[!KH`H@HHh嘬HhHEHx8HEH@8H HE@HHE@HHE@HH}uHhaHKHPHEHXuH8㞬H8H`HPHHh6HhHEHx8HEH@8H ;]~Tw'H8˓Hh迓H}趓H}譓HpHt(H0H]UHHd$H}HuHxWHEHUHu#HHcHUu8HuH KHKH}(HuHEHx8HEH@8H &H}HEHt"(H]UHHd$H}HVEHEHtEEH]UHHd$H}HVEHEHGuyHEH@8H@0HEH@8HHHEHp(諒HEH@8HHHEHp0舒HEHx8HEH@8pEEH]UHHd$H}HUHEHx8HEH@8HH]UHHd$H}u|.HEH ;E~HEH uTHEHEHEH]UHHd$H}HuHH5KHǹHH]UHHd$H}H]UHHd$H]H}uHcEHHXHH-H9vR]H]H]UHHd$H}u1H]UHHd$H}HuHH5UKH]UHH$HLLH}HuHUH}u.LmLeMu*RH5zLHLShHEH}HUHuQ HyHcHUHEHUH}1GH=^U肘HUH H=]UfHUHH$JHH KH=z'HUHHEHH}iZHUH5[H}EcHEH1胏HEH}tH}tH}HEH"HEHtlHhH(6H^HcH u#H}tHuH}HEHP`2"#("H Ht%$HEHLLH]UHHd$H]LeLmH}HuH~.LmLeMu,PH5zI$H LH} HEH  H} HEHn H}1CHH}tH}tH}HEHPpH]LeLmH]UHHd$H}HEEH]UHHd$H}HcH]UHHd$H]LeLmLuH}HuHEHcHEHcH)HH-H9vO]HcuH}1ܝH}cHþH胝LmMLeIc$HH9vNMc$LIAK|&HcUHH]LeLmLuH]UHHd$H]LeLmH}HuHUHEHcHEHcH)HH-H9v.NHEHE8~PLeM$H]HcHH9vMHcHI$mITHEH HEHH]LeLmH]UHHd$H]LeLmH}IH]HufMH5zL#LD LA$EuHEHHE }}uH}HEHEHEH]LeLmH]UHHd$H}H]UHHd$H]H}HHcHHH-H9vL]H]H]UHHd$H]LeLmH}HHEHEHU;~HEǀHEHcHXHH-H9v$LHEHEH}'HEH)HEHU;H]LeA$=vKA$HUDLeH]=vKIcDHXHH-H9vqKHEHEHcHPHEHcH9}1HEHcHXHH-H9v!KHEHEHU;uoLmLeMuJH5(zI$H L?HEHcHXHH-H9vJHEHEǀH]LeLmH]UHHd$H}[H]UHHd$H]LeLmH}HuUHuH}[HEHHu[HEHHtH[HH-H9vIHE艘HEUHEǀHEǀHE苰H}HEHHEHc@HXHH-H9vxIHE艘HEHcHPHEHcH9}1HEHcHXHH-H9v(IHE艘HUHE@HEHU苀;uoLmLeMuHH5zI$HL?HEHcHXHH-H9vHHE艘HEǀH]LeLmH]UHHd$H}HuHH}H[H]UHHd$H}uH}CIH]UHHd$H}HuHH}HHH]UHHd$H]LeLmH}uUM}}HEH 1NHEH ΍;E~ًuH}HEEH}t(HEHcHXHH-H9vHG]EuH}HcHH9vGHcH}\HEH HU؋uԋHE؋UЉHc]HHH-H9vF])fDHc]HHH-H9vF]ԃ}~&LeHc]HHH=v{FAD;EHcEHHcUH9~ZHc]HcEH)HHLmHcEL`LH=v1FOdLm؋E=vFEI|LH&H]؋E=vEEHDUUPHuH}PH]LeLmH]UHHd$H}u|OHEH ܋;E~:HEH u4HEHtH}ZHEH u1=H]UHHd$H]LeLmH}HHhHcHHH-H9v E|4EfDEHEHu葉ILF;]HELHEHHuDH5PUL#LoLA$H]LeLmH]UHHd$H]LeLmH}HH 蘊HcHHH-H9v9D|&EfDEEH}T;]HEL HEH HuCH5PUL#LLA$H]LeLmH]UHH$ H(L0L8L@LHH}HuHUMDEHDžPHUH`HHcHXH}LmLeMuCH5p_UI$HL`H}UE@DuH]LPL}MuBH5_UM/LLHDALP]LeL}MumBH5zM/LKLLA LmLeMu.BH5zI$H LHEHH}RELuH]LeL}MuAH5~zM/LLHLAHcUHcEHHH-H9vA]Hc]HHH-H9vAڋMuH}LmLeMuYAH5zI$H6LLmLeMu+AH5zI$HLhHcEHXHH-H9vA]HcEHXHH-H9v@]ELmLeMu@H5]UI$HL;EHPb~HXHtH(L0L8L@LHH]UHHd$H}HuUMDEHE1ɾH=zH[HEȋuH} uH} uH}3 HuH}EH}JEH]UHHd$H]LeLmLuH}HuHEH߅HcHHH-H9v?]HEHuHEHEHU@$;B$uKHEHU@ ;B u;HEHU@4;B4u+Hc]HHHH-H9v?]Hc]HHH-H9v>]}a11ҾH=)z4HELmH]LeMu>H5zM4$LgHLAHEHHu&HEH覄HcHHH-H9vH>]EH]LeLmLuH]UHHd$H]H}u}ZHEH8HcHcUHH9|;Hc]HHHH-H9v=HEHdHEHEHEH]H]UHHd$H}@uHE:EtHEUH}Z H]UHHd$H}HHU@<;EEH]UHHd$H}HHU:EEH]UHHd$H}HHU:EEH]UHHd$H}HHU@@;EEH]UHHd$H}HHU:EEH]UHHd$H}HHU@D;EEH]UHHd$H}uHUEHuMDH;EEH]UHHd$H}@uHE:EtHEUH} H]UHHd$H}@uHE:EtHEUH}z H]UHHd$H]H}HuHH}H\.HuH=!ztXH]H3H= zHHEHUHE芀HUHE芀HUHE芀!HEƀHEƀHEƀH]H]UHHd$H}. HEƀHEƀHEƀH]UHHd$H}HUHE@<HUHE@@HUHE@DHUHEHUHEHUHEHMHUHBHHHBPHH]UHHd$H}HHx H]UHH$HLL H}HuHu.LmLeMu?9H5zLHLShHEH}HUHufHHcHUuSHEH}1H=$EUHUHB HEH}tH}tH}HEH+ HEHtlHpH0HHcH(u#H}tHuH}HEHP` a H(Ht HEHLL H]UHHd$H]LeLmH}HuH~.LmLeMu7H5zI$HLHEHx 3H}1H}tH}tH}HEHPpH]LeLmH]UHHd$H]H}HuEH}HcHHH-H9v<7|9EEEH}HHutEE;]ϋEH]H]UHH$PHPLXL`LhLpH}HuHtHEHUHuHHcHUEH}HcHHHH9vP6HxxyEfEEH}HL}IIHu5H5~zMLLLA$`H}Hu蘃HuEE x;E+H}sH}ysHEHtEHPLXL`LhLpH]UHHd$H}uHEHx uzH]UHHd$HAH]UHHd$H}H@Hx Hu߁}H@Hx HuH]UHHd$H}uHE@ ;EtHEUP H}H]UHHd$H}uHUEDHH]UHHd$H}uHE@<;EtHEUPHx`HEH`H JHhHEHpH`1ɺHxdHxH}RH`H HϫHcHxH}H5JkH}H5JT=vW"]H}H5JjLH}H5JLT=v"]H}H5JjHuH}H|JO[H}H5JjHuH}HpJ#[H}H5JSjHuH}HdJZH}H5|J'jHuH}H`JZH}H5JicHuH}HdJZHuHtHEHxؾ='Eԃv!UHz4HEHxHuHtHEHxؾ'E؃v UHz4HEHxiHEHx1HuHntHEHxHEH@؋p4HuHCtHEHxHEH@؋p4HuHtHEHxHEH@؋p4YEH}BHHtHt7HDžNH}EڬHHtHt*HDžHHtHxQ]H}H]H}?]H}6]H}-]H}$]H}]H}]H@Ht1EHH]UHHd$H}HuH]HUHu5H]˫HcHUu3H}H5'J tH}H53J~lHtEEH}q\HEHtEH]UHH$HH}uHUHMH}e\H}\\HEHEHEHEHEHEHDžHUHHHHHɫHcHHuH}lMHhH(lHɫHcH BHuH}e-HUH}HIVHH}[HUHHHH}ZHUHHHH}ZHUHHHH}ZHUHH]HH}ZHUHH:HH}jZH}H5JiHuHEHxؾ#.H}Ãv!Hz4HEHxH}H5XJiHuHEHxؾl.H}Ãv!Hlz4HEHxJ9iH}PH}H5CJiHxSHU1H5 JHxiUHxH}0wEEEHHxSH}SHEHtEH]UHH$0H8L@LHLPLXH}HuH=FeHuGHEHUHuHHcHUHELxxLuLmH]HuH5SXL#LԫLLLA$xLmH]HuH5&FeL#LԫLA$LmL5UJLeMuwH5EeI$HTԫLLtcHELxxHEH`AL-JH]Hu%H5WL#LԫLDH`LA$H}0LmL5JLeMuH5HEeI$HӫLLtcHELxxHEHpAL-JH]HuH5VL#LcӫLDHpLA$H}0LmL5eJLeMu7H5DeI$HӫLLt`HUHBxHhL}E1L-JH]HuH5QVL#LҫLDLHhA$H}cLmL5JLeMuH5 DeI$HwҫLLt`HEHPxHxLuE1L-JH]HuKH5UL#L)ҫLDLHxA$H}&EEH}̬HEHtEH8L@LHLPLXH]UHHd$H]LeLmLuL}H}HuHEP HUHELxxLuL-MJH]HuoH5TL#LMѫLLLMA$HEP$HUHELxxLuL-#JH]HuH5TL#LЫLLLMA$H}HUHELxxLuL-JH]HuH50TL#LЫLLLMA$H}HUHELpxL}L-JH]HuqH5SL#LOЫLLLMA$EH]LeLmLuL}H]UHHd$H]H}H@4t EEHE@4t#HcEHXHH-H9v]HE@4t#HcEHXHH-H9v]HE@4t#HcEHXHH-H9v]EH]H]UHHd$H}uu H}1H}~EtH}HEp4cEtH}HEp4HEtH}HEp4-H]UHHd$H]H}H@8t EEHE@8t#HcEHXHH-H9v]HE@8t#HcEHXHH-H9vV]HE@8t#HcEHXHH-H9v&]EH]H]UHHd$H}uu H}1nH}^EtH}HEp8CEtH}HEp8(EtH}HEp8 H]UHHd$H}Hx<EEH]UHHd$H}Hx@EEH]UHHd$H}HxDEEH]UHHd$H}uHUE|HEEH]UHHd$H]H}HuHH}HLHuH=!zlt]H]H3H= z腿HHHEHJH]H3H=ݴzXHHpxHEHxxJH}[H]H]UHHd$H}~HEHtHEHHuHEH]UHH$HLL H}HuHu.LmLeMu H5(zLH˫LShHEH}HUHu٬HHcHUuhHEH}1LmLeMu> H5zI$H˫L8HEH}tH}tH}HEHܬHEHtlHpH05٬H]HcH(u#H}tHuH}HEHP`1ܬݬ'ܬH(Ht߬ެHEHLL H]UHHd$H}uH}=H]UHHd$H}uHUHЋuH}HHe>HuH5T>ILɺLLDHA$HEHXHɬH-HcHELmH]HuuH5zL#LSLA$HcHHHH9vXAEmEDE}tM]LmLuMuH5zM&L߹LA$HHuHStEED;}JˬH}AHHt̬+ˬHp7H}v7HxHt̬EHLLLLH]UHH$HLLLLH}HuH17HDžpHUHuDǬHlHcHxHuHp7HpHE1AL- <H<HuH5;ILiLLDHA$HEHXHƬHͤHcHELmH]HuH5zL#LLA$HcHHHH9vAEmEDE}tM]LmLuMuH5:zM&LLA$HHuHtEED;}ȬH}ᱬHHt`ʬȬHp5H}5HxHt5ʬEHLLLLH]UHHd$H]LeLmLuL}H}HuHLxxHELp`H]HEL``MuH5(eM,$LsHLLAXH]LeLmLuL}H]UHHd$H}HuHUHHUH=zHHEHH}0HEH]UHHd$H}HuHUHHUH=XzH`HEHH}HEH]UHHd$H}HuHE~ HEƀHEHxhHuHEƀH]UHHd$H]LeLmH}HLh`HEHX`Hu.H5&eL#L LA$EH]LeLmH]UHHd$H]LeLmLuH}uHE}HELh`HEL``MuH5&eI$H聴L;E~RHELh`]HEL``MufH5%eM4$LCLAHHH=z5H]HEH]LeLmLuH]UHHd$H}H]UHHd$H}HuHEHH}+2H]UHHd$H}HuHH5JHǹHH]UHHd$H}1H]UHHd$H}HuHH}HƹHHEHHuйHH]UHHd$H}HuHH5Jp1H]UHHd$H}1H]UHHd$H}HuH1%1H]UHHd$H}HuHUHEHxhHuHU6H]UHHd$H}H]UHHd$H}Hu0H]UHHd$H]LeLmH}Hƀ1LmLeMuH5zI$HLLmLeMuH5zI$HűLhtHEƀH]LeLmH]UHH$`HhLpLxLuL}H}HEHUHu蹿HᝫHcHUHEHcHXHH-H9v;HEHEDHELH]HELMuH5}M,$L述HLDAL}HEDH]LeMuH57zM,$L{HDLA¬H}].HEHtìHhLpLxLuL}H]UHH$`H`LhLpLxL}H}uHEHUHuCHkHcHU2HUE}u0LmLeMuH5@zI$H脯LgHc]HHH-H9vHEHgHLmLeMuBH5ۜzM4$LLHAHELDuH]HELMuH5}M,$L׮HDLALuD}H]LeMuH5VzM,$L蚮HDLA%H}|,HEHtH`LhLpLxL}H]UHHd$H]UHHd$H}HuUHEHHux,HEƀHEUH]UHHd$H]LeLmLuH}HuHUHELh`HEHX`HuH5"eL#L菭LA$HcHHH-H9v]؃EfmHELh`]HEL``Mu?H5eM4$LLAHHH=zH]HtHHUHEHHEHLmLeMuH5RzI$H趬L8}SH]LeLmLuH]UHHd$H]UHHd$H}HuH*HUHu赺HݘHcHUuHEHHu*蹽H}*HEHt2H]UHHd$H}HuH*H})H]UHHd$H}H}HH]UHHd$H}HuH=zH H]UHHd$H]UHHd$H]UHHd$H}HuHUHEHxhHuHUvH]UHHd$H]LeLmH}uLmH]HuH5zL#LફLA$pHEHEHu H;EE}tHEHHUuEH]LeLmH]UHH$`H`LhLpLxL}H}H@$EaHEHHc@(HXHHH9v?]HEƀHUHu_H臖HcHUuIEHED}LuE0H]HuH5ezL#L誩DLDUA$PE.HEƀHEHt襼HEH EHEHHEH@;EZHEHDxHELE1HEHHuH5}L#LDLDA$8 }HcUHcEH)HZHH-H9vAHc]HHHH9vAHELHEHHu}H5>}L#L[LDDA$8nHc]HcEH)HHH9vTAHELDmHEHHu H5}L#L맫DLDA$8H`LhLpLxL}H]UHH$PHXL`LhLpLxH}EHEH@$EHEH@;EHEHHc@(HXHHH9vM]]HcEH HcEH9}'HcEH HHH9v]HEƀHUHu/HWHcHUuIEHED}LuAH]HuH55zL#LzDLDUA$PEHEƀHEHtuE;EHEHy EHEH HcUHcEH)HZHH-H9vAHc]HHHH9vAHELHEHHuH5y}L#L薥LDDA$8HEHup EEHXL`LhLpLxH]UHHd$H}Hx$EEH]UHHd$H]LeLmLuH}uUMEEHELHEHHuH5}L#L貤LA$E؅E;EDmH]LeMuH5#zM4$LgHDAH}QHcEHXHH-H9vX]܉;Etj}tE;E\H}wH}DmH]LeMuH5zM4$LգHDA xE;ElEH]LeLmLuH]UHHd$H}HH H}H]UHHd$H}@uHE:Et HEUH]UHHd$H]LeLmLuH}HuHEHH;EHEHUHHEHLmLeMuH5`zI$H褢LHLmLeMuH5W}M4$LsLHA(HHH=azdHEHHEHǀLmH]Hu6H5ϏzL#LLA$0H]LeLmLuH]UHHd$H]UHHd$H]LeLmLuL}H}HuLmH]HuH5RzL#L藡LA$HLmLeMuH5H}M4$LdLHA(HHH=RzUH]HtH}S HEHxxHu=LmH]LeMuH5zM4$LHLAHELmLeMuH5zzI$H辠LIL}H]LeMuH5m}M,$L艠HLLA0H}LmH]LeMujH5zM4$LGHLAHEHǀH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuLmH]Hu߬H5zL#LǟLA$HLmLeMu߬H5x}M4$L蔟LHA(HHH=z腒H]HH}LmH]LeMuY߬H5zM4$L6HLAHEx LmLeMu߬H5zI$HLIL}1LeMuެH5}M,$LÞHLLA0HEHH;EuHEHǀHEHǀH}HEHxxHuH]LeLmLuL}H]UHHd$H}uHE;Et HEUH]UHHd$H]LeLmLuL}H}uHEHxxuHLmLeMuݬH5pzM4$L贝LAIIMMuݬH5h}M,$L脝HLA(HHH=rzuH]HH]LeLmLuL}H]UHHd$H}uH)zH]UHHd$H}u1H]UHHd$H}1H]UHHd$H}uHEHc@HcUHHUHBHH]UHHd$H}G,E} HE@$EEH]UHHd$H}uHUHEHc@HcUHHUHBHUHH]UHHd$H]H}uUHEx$};HEUP$HcEHcUHHHH-H9vܬHEX(cHE@$;E~ HEUP$KHcEHcUHHHEHc@(H9~/HcUHcEHHHH-H9v۬HEX(H]H]UHHd$H]H}uUHEx$| HE@$;E~ HEUP$HEx(| HE@(;E}-HcEHcUHHH-H9v/۬HEX(/HEHcP(HcEHHH-H9vڬHEX(H]H]UHHd$H}uUHE@;E~@HEx$| HE@$;E~ HUEB$HEx(| HE@(;E} HEUP(H]UHHd$H}H@$HE@(HE@,H]UHHd$H}uHEx,}HUHE@$B,HUEB$H]UHHd$H]H}H@$HEHcXHHH-H9v٬HEX(H]H]UHH$HLL H}HuHu.LmLeMu?٬H50zLHLShHEH}HUHufH莅HcHUu\HEH}1, H}+ HE@ H}nHEH}tH}tH}HEH"HEHtlHpH0ѦHHcH(u#H}tHuH}HEHP`ͩXéH(Ht袬}HEHLL H]UHHd$H]H}HcG HXHH-H9v׬HEX H]H]UHHd$H]H}HHcX HHH-H9v׬HEX H]H]UHHd$H}GH]UHHd$H}G H]UHHd$H}uHE@;EtHEUPH}H]UHHd$H}uHE@ ;EtHEUP H}qH]UHHd$H}GH]UHHd$H}uHE@;EtHEUPH}H]UHHd$H}HHxtHEHx HuHEPH]UHH$HLL H}HuHu.LmLeMuլH5@zLH蝕LShHEH}HUHu棬HHcHUu[HEH}1耎HE@HE@ HE@ HEH}tH}tH}HEH裦HEHtlHpH0RHzHcH(u#H}tHuH}HEHP`N٧DH(Ht#HEHLL H]UHHd$H}HuHMHUHBHAHB HA HUHE@BH]UHHd$H}uKH]UHHd$H}.H]UHHd$H}Hu H]UHHd$H}HuHUH]UHHd$H}H]UHHd$H}H]UHHd$H}H]UHHd$H}nH]UHH=zH訙HߚH]UHH=ޚ萍HޚH]UHHd$H]H}HuH]H3H==zȅHHU@;Bu(H]H3H=z覅HHU@ ;B uEEEH]H]UHHd$H}HuHEHUHu赠H~HcHUu'HEHpH}ѭHUH}1H5J覣H}HEHtH]UHH$HLLH}HuHUH}u.LmLeMuѬH5zLH舑LShHEH}HUHuџH}HcHUu;HEHUHEHBHEH}tH}tH}HEH订HEHtlHhH(]H}HcH u#H}tHuH}HEHP`Y䣬OH Ht. HEHLLH]UHHd$H}H]UHHd$H]LeLmLuH}HuHH=ՍzHEH]H3H=zHHEHpH 舂L L MuϬH5}M4$L轏LAIHEHPH=zH0L* EH]LeLmLuH]UHH$HLLH}HuHUHMLEDMH}u.LmLeMu.ϬH5zLH LShHEH}HUHpRHz{HcHhu]HEHUHEHBHUHEHBHUHEHBHUЊEB HEH}tH}tH}HEH HhHtlHPH趜HzHcHu#H}tHuH}HEHP`貟=訟HHt臢bHEHLLH]UHHd$H]H}HuH]H3H==z踀HHU@;BH]H3H=z蒀HHU@ ;B H]H3H=zlHHU@;BH]H3H=˸zFHHU@;BulH]H3H=z$HHU@;BuJH]H3H=zHHU@;Bu(H]H3H=ezHHU@ :B uEEEH]H]UHH$0H}HuHDž0HDž8HDž@HDžHHUHu辚HxHcHUHJHPHEHpHHŧHHHXHJH`HEHpH@蕧H@HhHJHpHEHpH8eH8HxHJHEHEp H0XH0HEHPH}1ɺ H0U H8I H@= HH1 HEHtSH]UHHd$H}H]UHHd$H]LeLmLuH}HuHH=uzH}EH]H3H=Tz}HHED@ HEHHHEHPHEHpAHpCL L MuhʬH5I}M4$LELAIHEDH HEL@HEHHHEHPH=zH0L EH]LeLmLuH]UHH$HLLH}Hu؉UMDEDMH}u.LmLeMuɬH5)zLH~LShHEH}HUHpėHuHcHhuWHEHUЋEBHUЋEB HUЋEBHUЋEBHEH}tH}tH}HEH肚HhHtlHPH.HVuHcHu#H}tHuH}HEHP`*赛 HHtڜHEHLLH]UHHd$H}Hu0H]UHH$HLLH}HuUMLEL%H}u.LmLeMuǬH5uzLH躇LShHEH}MHUHxH(tHcHpHEHXHƕHsHcHu%HU؋EBHU؋EB HEHxHu趘H} HHt,HEH}tH}tH}HEHpHpHtlHXHHDsHcHPu#H}tHuH}HEHP`裙HPHt횬ȚHEHLLH]UHHd$H}Hu0H]UHHd$mz4r2mH@J(}}}fMmm}mܛEЉE0mHJ(}}}fMmm}mܛEЉEEH]UHHd$H}uD$(D$ D$fD$D$$HEAA0ҾHcD$(D$ D$fD$D$$H}AA0ҾbD$(D$ D$fD$D$$H}AA0ҾibD$(D$ D$fD$D$$H}AA0ҾbE@D$(D$ D$fD$D$$H}AA0ҾaD$(D$ D$fD$D$$H}AA0ҾxaH]UHHd$H}uH}EED$(D$ D$fD$D$$H}AE11ɲaD$(D$ D$fD$D$$H}AE11ɲ`ED$(D$ D$fD$D$$H}AE11ɲm`D$(D$ D$fD$D$$H}AE11ɲ'`E tCD$(D$ D$fD$D$$H}E1E110Ҿ _ED$(D$ D$fD$D$$H}AA1ɲ_D$(D$ D$fD$D$$H}AA1ɲ<_D$(D$ D$fD$D$$H}AA1ɲ^D$(D$ D$fD$D$$H}AA1ɲ^D$(D$ D$fD$D$$H}AA1ɲ\^D$(D$ D$fD$D$$UH}E1E1 ^D$(D$ D$fD$D$$H}AE1 ]H]UHHd$H}uH}'EtFD$(D$ D$fD$D$$H}AE110Ҿ X]H]UHH$HLLH}HuHUHMLEDMH}u.LmLeMu>H5_zLHLShHEH} HUHpbHkHcHhudHEH}1wHUHEHBHEHBHUHEHBHUЋEB HEH}tH}tH}HEHHhHtlHPH迌HjHcHu#H}tHuH}HEHP`軏F豏HHt萒kHEHLLH]UHHd$H}HuHUHEHHUH;uHUH;PuEEEH]UHH$pH}uH}1Hu1HxPJH5پzH=zDEHx1P)Hxo꽬H]UHH$`H}uHEHUHuSH{iHcHUH}11EfEEEsEHEH8tHEH0H}1HJ&uH}HUHEH0H}1}rHEH8tAHJHhHEHHpHJHxHhH}1ɺC讍H}HEHt'H]UHHd$H]LeLmLuL}HzH8HQH8H=ܯzH5}JHٯzHQH8TIHzL0LMMuwH5XTM,$LT{HLA}mH\QH8IL5*JLMMu*H5 TM,$L{HLA| H=zH5JSHz H]LeLmLuL}H]UHHd$H}uHE@;Et}15aEHEUPH]UHHd$H}uHE@;Et}d1`EHEUPH]UHHd$H}uHE@0;Et}1`EHEUP0H]UHHd$H}uHE@4;Et}1u`EHEUP4H]UHHd$H}uHE@8;Et}d15`EHEUP8H]UHHd$H]H}HuHH=zH)lH]H3H=z>lHHU@BH]H3H=یzlHHU@BH]H3H=zkHHU@0B0H]H3H=zkHHU@4B4H]H3H={zkHHU@8B8HEHx tHEHx(HuHEP H]H]UHH$HLL H}HuHu.LmLeMu?H5zLHxLShHEH}HUHufHdHcHUuhHEH}1qLmLeMuηH5zI$HwLHEH}tH}tH}HEHHEHtlHpH0ŅHcHcH(u#H}tHuH}HEHP`L跈H(Ht薋qHEHLL H]UHHd$H]UHHd$H}HE@HE@HE@0HE@4 HE@8H]UHHd$H}H@HE@HE@0 HE@4HE@8H]UHHd$H]H}  wHƱH@8H9TxHEH=i~dHEHUHu>HfbHcHUu4vHHUH"XvHHUH5OHG?"HEHt䉬H]H]UHHd$H]LeLmLuH}HH(H3H=?}:hHIIHu'H5 }MuLuLAhHEH]LeLmLuH]UHHd$H}HH@ u EHEH@ @0EEH]UHHd$H}HH@ u EHEH@ @4EEH]UHHd$H}H@]EEH]UHHd$H}HHH]UHHd$H}HuD$$HEHHuAA11" H]UHHd$H}HHH]UHHd$H}HH@ u EHEH@ EEH]UHHd$H}HH@ u EHEH@ @XEEH]UHHd$H}HH@ u EHEH@ @8EEH]UHHd$H]H}HH(H3H=}eHEH]H]UHHd$H}H0H@PH]UHHd$H}H8H@PH]UHHd$H}H@H@PH]UHHd$H]H}HH(H3H=+}&eHHHEH]H]UHHd$H}uHEH uH]UHHd$H}HH@ u EHEH@ EEH]UHHd$H}HH@ u EHEH@ EEH]UHHd$H}HuHUHMHEH01HEH0HuHEH0HuHEH0HuH]UHHd$H]LeLmLuH}HH@ u EHEH@ EHc]HHH-H9v薰HEL HEL MuVH57}M4$L3pLAhHcHXHH-H9v8]EH]LeLmLuH]UHHd$H}uHE;Et HEUH]UHHd$H]LeLmLuH}HuHEHpLhH]HEHpL`MucH5I~M4$L@oHLAH]LeLmLuH]UHHd$H}fuHEff;EtHEfUfH}5H]UHHd$H}fuHEff;EtHEfUfH}4H]UHHd$H}@uHEHu+H]UHHd$H]LeLmLuH}HuHEHLH]HEHLMuH5>H~M4$LmHLAH]LeLmLuH]UHHd$H]LeLmLuH}HuHEHLH]HEHLMu荭H5G~M4$LjmHLAH]LeLmLuH]UHHd$H]H}*nHH@8H9unH11H6H]H]UHHd$H]LeLmLuL}H}HuUHEH@ UHu葁HEHH HcL`LH-H9v跬McI HI!ĸH!L H]EALuH]LeMuQH5izM,$L.lHLDA HEH]LeLmLuL}H]UHHd$H]LeLmLuH}HuHH}HHLmLeMuƫH5_izM4$LkLHA HEH]LeLmLuH]UHHd$H]LeLmLuH}uUH}4HcHcUHHH-H9vQ]Hc]HHH-H9v.HEL HEL MuH5ϭ}M4$LjLAhEHcEHXHH-H9v̪]}LmLeMu荪H5&hzI$HjjL( HIIHu^H5?TMuL;jLA;EaLmLeMu*H5gzI$HjL( HIIHuH5TMuLiLAEEH]LeLmLuH]UHHd$H]LeLmLuH}uHc]HHH-H9v蠩HEL HEL Mu`H5A}M4$L=iLA`EHcEHXHH-H9v>HcH}HcH)HH-H9v]}ELcmH]LeMuϨH5hfzM4$LhHA HcHI9~PLmLeMu蔨H5-fzI$HqhL HcHXHH-H9vy]EH]LeLmLuH]UHHd$H]LeLmLuH}HuUHc]H}ELceILH-H9vMcLHH-H9vާ]HEL H]HEL Mu藧H5x}M4$LtgHLAHE}LmLeMuWH5dzI$H4gL( HIIHu(H5 TMuLgLA;E}aLmLeMuH5dzI$HfL( HIIHuŦH5TMuLfLAEHEH]LeLmLuH]UHHd$H]LeLmLuH}HuHEL H]HEL Mu;H5}M4$LfHLAHEHc]H}ELceILH-H9vMcL)HH-H9v饬]HEH]LeLmLuH]UHHd$H]H}HuHc]HHH-H9v若]HEH@ HutyHEH]H]UHHd$H]LeLmLuH}HuIH]LeMu H5bzM4$LdHLA HH}>HEH]LeLmLuH]UHHd$H}uUЋ}aHH}HHEH  WH]UHH$HLH}HuHUH}qH}hHUHurHPHcHxEHEHtH@HuEH}EHEH0 tBHEHIHEH8 LMHMHUHuHE0 }H}dHH)H=AW~ļHEH`H qHOHcHHuH}uH}贻}u\HEHtH@H~JH]HtH[HH-H9vLeH}uLH}R-cHH}q*tH}!]HHtu tH}bH}YHxHtxuHLH]UHH$@HXL`LhLpH}HEHDžxHUHuOpHwNHcHUH}sHE D$$HEH*HHEHII McILH-H9v聡HEHIHEHII McILH-H9v8DHEHHuDEA8 H}HxHsHxHUH}d_rHxޫH}ޫHEHtsHXL`LhLpH]UHH$@HXL`LhLpH}HEHDžxHUHunHLHcHU8H}q'HE D$$HEHjHHEHWII McILH-H9vHEHIHEHII McILH-H9vxDHEHHuDEAx H}HxqHxHUH}Lm1LeMuH5\zM4$L^HLAX kpHxܫH}ܫHEHtqHXL`LhLpH]UHHd$H]LeLmLuH}HuH]H3H=I}\QHUHH HEHX HEL HEH HuH5}L#L]LA$HHEHX HEL HEH HEL MuH5}M4$L]HLAHEL HEH(HEL(MuvH5}M4$LS]HLAHEL HEHHELMu+H5| }M4$L]HLAHEL HEH0HEL0MuH51 }M4$L\HLAHEL HEHXHELXMu蕜H5.T}M4$Lr\HLAHEH@ HEH HBxH]LeLmLuH]UHHd$H]LeLmLuH}HuHELH]HELMuH5ozM4$L[HLAH}1@H]LeLmLuH]UHHd$H]LeLmLuH}HuHELH]HELMukH5ozM4$LH[HLAH}1H]LeLmLuH]UHH$HLLLLH}HuHUHDžH}u0LmH]HuH5ZXzILZLAT$hHEH}HUHuhHGHcHU4HEHhH(hHFHcH HUH}1&iH}@zHUHE苀X XHEǀXHEǀDHEǀPHEǀLHEǀTH=?zjHUHH=zNHUH H=z2HUH L}AL-f5}H_5}HuEH5N5}IL#YLLLA$HUHHUHEHHH=}蠢 HUH(HEH(H3H=й}KHHuH H=}_HUH HEH HEH:HQhHApHUH5WHEH ]H=}6_HUH(HEH(HUH HHhHPpHEH}H8 LEH HEH(H=|zo HUHHEH H=b}e HUHHEHHEH0r H=}% HUHHEHHEH0|r H=z~K% HUHHEHHEH0Cr H=} HUHHEHHEH0 r HEH HUH=g}: HUHHMHHEH\ HEH(H3H=}IHLEH H=C}, HUH0HEL HEL HEH Hu@H5y}L#LVLLA$HEL HEL(HEH(HuH5.}L#LULLA$AL5Z]L-Z]Mu跕H5xZ]LHULL8HUHHEǀ<HEǀ@HEH HMH 1H"[ HMH'H [ HMHHZ HMHWH[ HMHφH[ HMHHZ HMH HZ HMH HZ HMH HZ HMH HZ HUH=}U HUHHEHHUH7HA8HQ@HEH(H3H='}"GL3MLMuH5}L#LSLA$HUHHEH(H3H=Ҵ}FL3MLMu躓H5}L#LSLA$HUHHEHHMH<HB@HJHHEH H=}6HUHHEH HEH0HEHHMHH HBHHJPHUH5HEHTXHEH 0ɾH=3}趆HUH0HEH0HMHH HBHHJPH=*~HUHH=bgzHUHHEHHEH HJ HB(H=XhzHUHHEHHEH HJ HB(H}0HELHAL-i~Hi~HuܑH5i~ILQLLLA$HUHH=+~觅HUHH=+~苅HUHHEHHL}LuE1H]HuEH5NzL#L#QDLLHA$ HUHpHUH55HEHpHUH5HEHpHEHpJHELHEHLmAH]Hu蜐H55NzL#LzPDLHLA$ HUHxHUH5HEHx HUH5HEHxqHEHxHUHE苀X `XH}辖zH}HEfǀHEfǀHEfǀHEDLmH]Hu觏H5@MzL#LOLDA$H=˛TFּHUH H=O]zzHHUHH=+^z^HHUHHUH=Y}f HUHhHEHHEHh8X HUH=pP} HUH`HUH=g}Sm HUHpHUH=8j}sz HUHxHUH=m}ӗ HUHHUH=Ho}Ӟ HUHHEHHUH=r}踧 HUHHUH=%u}x HUHHEHHxh2$aHUH=E}O HUHXHEHHEHX0 HEHHEHX0ʥ HEHhHEHX0譥 HEH`HEHX0营 HEHHEHX0s HEHpHEHX0V HEHxHEHX09 HEHHEHX0 HEL HELXHEHXHuH5ZD}L#LLLLA$HEL HELXHEHXHuvH5D}L#LTLLLA$HUHH IIHELXHEHXHu"H5C}L#LLLLLA$HELH zL(HEHHuՋH5P]L#LKLLA$@HEHHz0|gHEHHz0eHEHHz0*zHEH:HU艂ѽHUHнHUHHEǀHEHHUH=kV~.aHUH@ HEH@ ƀHEH@ 1YHEH@ 1-ZHEH@ HEHXHHEH@ HEH HBxHEH@ HǀHEH@ HUH zHH@HPHHUH=b~݃HUHH HEL@ HELH HEHH HuH5 ~L#LILLA$HEHpHEHH 6HUH=~WHUHP HEL@ HELP HEHP HuqH5~L#LOILLA$HEHxHEHP f6HUH=V~QHUHX HEL@ HELX HEHX Hu눬H5V~L#LHLLA$HEHH HEHX JHEHP HEHX LHEL HEH HuuH5V}L#LSHLA$HHEHX ULuAH]Hu-H5EzL#L HDLA$HHELHELxHEHxHu⇬H5L]L#LGLLA$HEHxHMHHHB8HJ@LmM1H]Hu茇H5%EzL#LjGLLA$H}@0H}@0H}@HEƀHEǀ8H}衶LuAH]Hu H5DzL#LFDLA$XHEǀHEǀHUH=e|HUH HEHǀ(HEHxt@HEH@@Pu/LmH]HupH5 DzL#LNFLA$( HUH=tz HUH0HUH=wzn HUH8HUH=3vzN HUH@H=|?HUHHH=c|>HUHPHEƀiHEǀHEǀtHEH H=;|nHUHHEǀ  HEǀHEǀHEǀHEH覥 H}H}DH}H}@0L}AL-6bH/bHǘH5bILDLLLA$HUH HEL E0HEH Hu|H5͎bL#LZDDLA$HEL AdHEH Hu6H5bL#LDDLA$HEHkbIIHEL HEH Hu僬H56bL#LCLLLA$H}DJH}HHH}IH}H5RJIUHcH HtVHEH}tH}tH}HEHTHEHtlHhH uQH/HcH`u#H}tHuH}HEHP`qTUgTH`HtFW!WHEHLLLLH]UHHd$H}H}HH]UHHd$H}HuHUHMHH;EuDHEHpHp H}UHEHxHx 蔓~HEHxHp H}UH]UHHd$H}HuH}FEH]UHHd$H]LeLmLuL}H}HlH}VHuXHuH}THEL(Lu HEL(MukH5d}M,$LHALLA(HEHcHHXHH-H9vBHEHHEHuHEH(Huw H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HlHEHuHEH(Hu HEHcHHHH-H9vwHEHH}H;EucHEHuVHEL(Lu HEL(MuH5}M,$L?LLA(H}1H]LeLmLuL}H]UHHd$H}HuHH;Et"HEH jHEH1H]UHHd$H}HuHH;Et HEHHEH jH]UHHd$H}@uHUHEH@tHEHHUHuHE@H]UHHd$H]H}HcPHXHH-H9v~HEPH]H]UHHd$H]LeLmLuH}HHcPHHH-H9vm~HEPHEPu3Lm1LeMu"~H5;zM4$L=LA H]LeLmLuH]UHHd$H]LeLmLuL}H}HuHElHEDL}LuLeMu}H5;zM,$L^=@LLA EýHEHUHUHEH\HEHdH}HUtHEH(H3H=}/L#LMMu|H5ܝ}MuL@zM,$LJ4HLA}H}.HEHsHEH|HcHHH-H9vt|0EfEHEHu詸IL^.;]HEH)-HUH5޸HEHp HUH53HEHp HUH5HEHxh HUH5HEHx HEH,HEH,HEHǀHEHǀ HEL 1HEL MurH5&|M4$L2HLAHEL(1HEL(MurH5|M4$L2HLAHUH5HEH``g HEHX +HEHH +HEHP +HEH@ +HEH+HEH+HEHXp+HEH `+HEHHP+HEHP@+HEH00+HEH8 +HEH@+HEHp+HEHx*HEH*HEH*HEH*HEH*H}GHEH*HEH0*HEHw*HEH0g*HEHW*HEHǀHEH(H3H=Ñ}#HHuH/ HEH(H3H=}#HH: uHEH()HEH )HEH()HEH)HEH)HEH )HEH )HEHǀHEHg)HEHW)HEHG)HEH7)HEH')HEH)HEH)HEH(HEH(H}1@H}tH}tH}HEHPpH]LeLmLuL}H]UHHd$H}HHdH]UHHd$H}HHtH]UHHd$H}Hp@`H]UHHd$H]H}HH HEHc]H}_HcH)HHH-H9v}n]HuH}EH]H]UHHd$H]H}HH `HEHc]H}HcH)HHH-H9v n]HuH}=H EH]H]UHHd$H]LeLmLuH}HuHEHxDHEHX HELX MummH5;~M4$LJ-HDA(HEHxfHUH}H]LeLmLuH]UHHd$H}H(H]UHHd$H}HH]UHHd$H}HuHEH Huk H]UHHd$H}HuHEHXHu[ H]UHHd$H}H`H@H]UHHd$H}HH]UHHd$H}HH@`H]UHHd$H}HH@PH]UHHd$H}HHpHHEHHUHEH]UHHd$H}HH@hH]UHHd$H]LeLmLuH}HuHEHLhhH]HEHL`hMuCkH5d~M4$L +HLAH]LeLmLuH]UHHd$H}HuHUHUHEH HEH HEHHEHBXHEHB`H]UHHd$H}HuHUHUHEH HEH HEHHEHBhHEHBpH]UHHd$H}HpH@H]UHHd$H}HH@H]UHHd$H}HH]UHHd$H}H H]UHHd$H}HH]UHHd$H}uHEHpuMJ H]UHHd$H}HuHUHEHpHEHHEHH]UHHd$H}@uHEH@u; H]UHHd$H]H}HuUHEH(UHuA HcHcEH)HH-H9vh]H]H]UHHd$H}HH tH]UHHd$H}H`H]UHHd$H}HuHEH SHEH Hu+H]UHHd$H}HuHEHH;Et.H}uHUHEHHHUHEHH]UHHd$H}uHEHuH H]UHHd$H]LeLmLuH}HuHEL(H]HEL(MuKgH5Dn}MuL('HLAH]LeLmLuH]UHHd$H]LeLmLuH}HuHEH(tFHEL(H]HEL(MufH5m}MuL&HLA H}1H]LeLmLuH]UHHd$H}HuHEHH;EtHEHHEHUHH]UHHd$H]LeLmLuL}H}IALeMueH5|#zM,$L%DLAx H]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUHEHE耸H}hw}ue}u_HUHX HEE1AAHEHX HueH52~L#L$DDDH}A$h}tE;E} HuH} EHE胸D~8HEHctH}uHcH)HHH-H9vd]Hc]HHHH9vpdHEHc]HHHH9vIdAHELX DuHEHX HudH51~L#L#DLDUA$hHEHH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUHEHE耸H}fw}ue}u_HUHX HEE1AAHEHX HucH50~L#L"DDDH}A$`}tE;E} HuH} EHE胸D~8HEHctH}HcH)HHH-H9vb]Hc]HHHH9vbHEHc]HHHH9vYbAHELX DuHEHX HubH5/~L#L!DLDUA$`HEHH]LeLmLuL}H]UHH$H L(L0L8L@H}HuUHEƀ( HEЀiu(HEf8 uE؃uHuUH}[HEHtHEHHUMHuMlHEf8HuUH}HEHtHEHu]c HErKrEtHEEHUH`.H! HcHXEEHEH(fEHEHD$HEH$HEH(HD$HEHHELMLEȋMHu h}ulHEH(H$HEH HE0LEHMȋUAOfE}tHUHEH H(f}u}tEE}uHEH(HEHǀ(}yHEHǀ(HEHD$HEH$HEH(HD$HEHHELMLEȋMHug}uHEH(tHEH(}u]HEH H$HEH HE0LEHMȋUE0,fE}tHUHEH H(f}HEH(tHEH(rHEHǀ(HEЃ HH} /HEfHEЁEHHfXHXHPHEHHD}LuE1H]Hu]H5yzL#LELDHHHPA$ -}tHEfHEЁHEЁ /H}t H}rHXHtz0H}qH}1H L(L0L8L@H]UHHd$H}HuUHEHtHEHHUMHuhHE苀XEHEff=_f-t&f-t-f-t4f-rGf-vf-vf-v3HE胠X&HE胠XHUHE苀X%XHEt =tuEHEf8tXHuUH}HEtHE聠HEHtHEHu`^ H}H]UHHd$H}nvH}@0蒚H]UHH$@HHLPLXL`LhH}HuHEHUHu)HHcHUOzEHu1H}PH}HEHtHEHHUHuOdHu1H}H}HE\HEHEHXtHEH`HUHuHEXHExs=HExt3HEHt%HEHHEHPHuHEEHEHxHEHpE1M1AH]HuZH5zL#LDLEHpHxA$ LmH]HuYH5jzL#LLA$P t}tZH}H5W)JjtH}H5K)J|2H}H5?)JBtHEHEHE*H}2HEHtT,HHLPLXL`LhH]UHH$HLLLLH}HuH8cHEHtHEHHUHugbHE80HEHEHEHtHEHHUHuHEHEHHfHHHEHE1M1AH]HuWH5zL#LDLEHHA$ LmH]HuWH5MzL#LLA$P u9HE8 t HE8 r'HE8tHEHEHEHLLLLH]UHH$HHLPLXL`LhH}HuHUHDž`H(H2%HZHcHVHEE;HuHHHuH}HEHu EHEHtKHEHH;EuHEƀEHEH@(EHEx,HE@(HE@(t!HEHMHi|;AtHE@(t HE?HE@ %?9uGHE@(tCHEHE:HH}iHUHH ;B t ƅDƅDDHE@(HHs#HHcHuiHEHUHHEƀD$$HHHD$HEDHHEDHEHEP HEpH}D&HEHǀHHt'HEDDtHE@( EHEf@LfEHE@$f} HEH萦HEHHEf@2f=f-tf-qvH]HEHIHEH8HLK4HEHIHEH8XHL|C$C$HE@$HE@$HEHPHUHuEuHEHpHUHuE}uHEHxHUHuE}tDHEx$uHExNtH.HEx0tHE@%HUHE@ XDEHE@$EEf}u$HE%=@ufEfEf}u$HE%=@ufEfEfEf=.%HJzHcHHEfǀRHEfx2@HEH蹣HEH =H1HEHHU@]PfEf=f-t%f-t/f-t9f-nf-_HEƀPOHEƀP?HEƀPHEfx2u H} #u#HEH  HHEH蹍HEHHEH@HEH@>HEfx2@HEH萢HUfEfRHEpHExYHH}舣HHEH8 HEH8H`&H`HtH@HXHHH9vYP|HEH8Hpp;||5Hc|HHH-H9vP޿#pHpHhHEfx2u$H}!tHEHVHph;|HEL HEH HumOH5NR}L#LKLA$AHclHXHHH9vIODƿӔHhUfEf=Gf-tf-f-(HEfx2u H} u1HEHpH`袈ƿpHEHhH`0Qh|hHEfx2u H} u[HEHpH`虀HEHpH`訂lj/ƿ#pHEHhH`0~{x} |xHEHhH`0}h} |hhxhHEfx2u H} u DžpHEL HEH HuMH5O}L#L LA$AHctHXHH-H9vLD5ƿyHhHEfx2u H}}uHEHHp"HEH@?HEH 8HEH HhHHEHHhHEHqHEfx2u)HEPHEHHE H}@pEHEHExNtH HEH8HH}蟻HExNtH HEH8\HHEfx2H}bHExNtH HEH8 HH}3H}t=HEHEfx2uHEH}@oEELmH]HuJH5czL#L LA$P H=q}cHEHHHHcHu`M HH}fHEHxt@H HEHuHEHڠHuH}0K`EEH}HHtHEHzHEHJ tfHEH tXHExNtH HE@H:|HEH HEDHHED@HEH HuHE VEMHExNt}uH HE@(HUHE@B,HUHE@B0LmH]HuHH5zL#LLA$HUHB8HExNtH HEDx2Lu1HpHDžxL-oJH]HuHH5"zL#LgLHxDpLDA$ WLmH]HuAHH5zL#LLA$ H |f}u(Hc|HHH-H9v H||LmH]HuGH5^zL#LLA$ HcHc|L4LH-H9vGLmLeMupGH5 zI$HMLD HE%@HUHE% 0EHEpHExnjHH}HHEH8wHEH@褘H,HEPHEH行LmH]HuFH53zL#LxLA$ Hc|f}u(Hc|HHH-H9vcF||4H}HcHc|HHH-H9v!FH}膳HE%HUHE% 0EHEpHExlHH}蛘HHEH8HEH@IHHEPHEHFUf}uHEHx>Iƒ|$f}u%HEHx=Iƒ2~ EDžxf}u DžxHE|HEHx=}JHEHx=HcHcxHHH-H9vDHEHxX HHEHxF=HcHcxH)HHH9v`DHEHx HE| HEHEHxE}t}uHExNtH>}tHEx0tHE@%}t H}@0thHEHx(t HEDuHEH@0S}tHUHE@ X}H`AHHt`EHHLPLXL`LhH]UHHd$H]LeH}uHEH@@EHEHPEHHEH@HcPHcL$LH-H9vBD#HEHPEH Lc#HCјH8:NjU HcHUHRHcRHILH-H9v^BD#HEH@UHcHHHHH?HHHH-H9vB]HEH@UHc HHHHH?HHHH-H9vA]HEH@UHHcEHkxLc#I)LH-H9vAD#HEHPEH HcEHkxLc#I)LH-H9vJAD#HEH@f@2ftf-t+f-f-UIЉUUIЉUHEH@x4~/HEH@HcX4HcEHHH-H9v@]E;EEE]IHcHcEHHH-H9vo@]E]IHcHcEHHHH-H9v9@]UIЉUJ}tDHEH@x4~HEH@p4}dEE;E~EE}}EEH]LeH]UHHd$H}HGH8HHEH@H HE@H]UHHd$H}H} tEE}tE}HHUH}u}uHU HEHH} GFH]UHHd$H]LeLmLuH}订HEHXtpLmLeMu>H5WyI$HL HELXHELXMu>H5|M4$L]L@A H}At H}躗H]LeLmLuH]UHHd$H]LeLmLuH}uH}HEDHEHX HELX Mu=H5 ~M4$LHDAH]LeLmLuH]UHHd$H]LeLmH}؉uUHMLEHEHEHEH@ HPHUH@HELmH]Hu8=H5yL#LLA$ HcHk HH?HHHHH-H9v =LceHcEI)LH?HIILH-H9v"H(H0H(H0 H`HEHEƀ( HEHt"HEHDMDEЋM؋UHu*=Hc]H}mHcH9}Hc]H}HcH9|mDEȋMЋU؋uH}蚚H#JH0HDž( H(H=>!H0H8H0H81H(uȋ}wHH}DŽHH}HUEЉHEUȉHUEHEU؉HUHE% HEEtEHE@GE@tEHE 'E@tEHEEH}H(H`8H`ݪHcH0H}@0v;E~+HEHEHpDEȋMЋU؋u LceH}uHcH}IwHcH)I9~+HEHEHxDEȋMЋU؋u D$$HEHD$EH|4DMDEȋMЋUH}H}H0HtHEH$HEHD$HEHD$H}UDEȋMЋU؋uH}H}6 HH}@0bnH}17tHJH(HDž HEH8(rH8H8HDž0 H H=!;H(H0H(H0H3~H8lH@lHHlHPlHXlH@HtHLL H]UHH$@H@LHLPLXH}uUMHEHUHhHڪHcH`. HEMUuH}跘HEtHEHpMUu> HEtHEHxMUu u}ZsHUHu}DsHH}sHH}7H}~HELmLeMu8-H5yI$HLNHEHcHcEH)HHHILmLeMu,H5yM4$LLA LcLH?IILH-H9v,D/HcH9HEHcHcEH)HHHILmLeMuU,H5yM4$L2LA LcLH?IILH-H9v0,DHcH9|0HUHE% HEHƀLmLeMu+H5MyI$HLHEHEHcHcEH)HHHIؿDfHcH9}2HEHcHcEH)HHHIؿE8HcH96 HUHE% HEHƀH}@蛙HE%=ELmLeMu*H5CyI$HLHEH@ @;EHEH@ @;EyHEH@ @ ;EbHEH@ @;EKHEH HEH(_u}oHH}|HHEH(pHER"u}~oHH}|HHEH(*HEH:cHHEH(WHH,1EHEH(HuHEHtH@HXHH-H9vI)]HEH(HEHEfRf=6f-tf-tcf- }t!HEHUHu0_EHEHUHuбbƿE}t^HEHUHu0/VEȃ}ẺEHEHUHu0hXE}ẺE}uEcHEHUHuбZHEHUHuб\lj-ƿ!E}tẺEE}}ẺEHEH(HuHEt-HEH HEH(luHE HEHƀHE@HEHyHEHEH(HHEH HEHEH@0x4HEH@ @;EHEH@ Hc@LcmI)H]LeMu&H59yM4$L}HA HcI)LeH]Huk&H5yL3LILA HcLHHHH-H9vL&߾HU HEH@ @;EHEH@ Hc@HcUH)LjH]LeMu%H5gyM4$LHA HcIH]LeMu%H52yM4$LvHA HcLHHHH-H9vy%߾HU HEǀ HEH@ @ ;EHEH@ Hc@ LcmI)H]LeMu$H5yM4$LHA HcI)LeH]Hu$H5XyL3LLA HcLHHHH-H9v$߾HU$ HEH@ @;EHEH@ HcPHcEH)LhH]LeMu"$H5yM4$LHA HcIH]LeMu#H5yM4$LHA HcLHHHH-H9v#߾HU$ HEǀ$ HEL dHEL Mub#H5-bM4$L?LAHE u HE$ t0HEL HEL Mu#H5T-bM4$LL@AHEt(HE u HE$ tHE HE HEPHEHlhLmLeMue"H5yI$HBLt_HE% uNH}@0FHEL 0HEL Mu"H5W,bM4$L@LAqH}_H`HtH@LHLPLXH]UHH$@HHLPLXL`LhH}HuHEL dHEL MuD!H5+bM4$L!LAHEtH} HuH}HUHuHHpͪHcHx|11fHEH}LmH]LeMu H5;yM4$LHLAHEHEH@ Hu18HpHH HcL`LH-H9v[ McI HI!ĸH!L H]Hc]H}tLctILH-H9v McLHH-H9v]HEH@ @;EHEH@ Hc@LcmI)H]LeMuH5yM4$L_ߪHA HcI)LeH]HuMH5yL3L+ߪLA HcLHHHH-H9v.߾rHU HEH@ @;EHEH@ Hc@HcUH)LjH]LeMuH5IyM4$LުHA HcIH]LeMu{H5yM4$LXުHA HcLHHHH-H9v[߾oHU HEǀ HEH@ @ ;EHEH@ Hc@ LcmI)H]LeMuH5oyM4$LݪHA HcI)LeH]HuH5:yL3LݪLA HcLHHHH-H9v߾HU$ HEH@ @;EHEH@ Hc@HcUH)LjH]LeMuH5yM4$LܪHA HcIH]LeMuH5hyM4$LܪHA HcLHHHH-H9v߾HU$ HEǀ$ HE u HE$ t0HEL HEL Mu)H5z&bM4$LܪL@AHE LmLeMuH5yI$H۪L HcHUHc HHH-H9vLmLeMuH5'yM4$Lk۪LA LmLeMu]H5yI$H:۪L EHE ~ULcmH]LeMuH5yM4$LڪHA HcJ(HH-H9v]܋u}`HHEH HEucLmLeMuH55yI$HyڪL HLmLeMukH5yM4$LHڪLHA@ HE$ fvH}LcHELc$ H]LeMuH5yM,$L٪HA HcLK7HH-H9vH}C>H}舉HcHUHc$ HHH-H9vH}HE$ ~^H}=HcLmLeMuHH5yM4$L%٪LA HcHHH-H9v-] H}߈E؃}}HEH FE؋}u^HHEH HEucLmLeMuH5ժL HH8H8HHDž HIH HDž HEH0WH0H0HDž( HXH= H H(H H( HHEHEƀ( HEEHE EHE@EHEHEHEHEHEHEL 0HEL MuH56bM4$LӪ@LADEȋMЋU؋uH}H}@0c8HEHE@t E9HE t E HEt EEHUHE%HE%=UȋuH};nLmLeMuH5yI$HҪL HLmLeMuH5QyM4$LҪLHA8 LmLeMuH5yI$HcҪL HLmLeMuUH5yM4$L2ҪLHA@ HEHc]H}HcH9Hc]H}HcH9uȋ}WHH}dHH}}N}D}:H}ƏH H߫HHcHHEt+HEHpDEȋMЋU؋ug HEHEt+HEHxDEȋMЋU؋u, HED$$HEHD$EHl||4DMDEȋMЋUH}rMH}HHtHEH$HEHD$HEHD$H} H}15UH0TNH8HNH@HEHuw; t&HEHuAE0<[ H]LeLmLuH]UHHd$H]LeLmLuH}uUHc]HHH-H9vHEL HEL MuH5 }M4$LǪLA`1ŭE}HcEHXHH-H9vxHEL HEL Mu8H5 }M4$LǪLAhEHcEHXHH-H9v]hHEL ]HEL MuH5 }M4$LƪLAhEHcEHXHH-H9v]EH]LeLmLuH]UHHd$H}HuUHMHȋMHUH=}I H]UHHd$H]LeLmH}HH(b LmH]HuH5yL#LŪLA$@H]LeLmH]UHHd$H]LeLmH}uUHEHUuKb LmH]HuyH5yL#LWŪLA$@H]LeLmH]UHHd$H}H]UHHd$H}H]UHH$HLLL L(H}uUHEHEHEHDž8HUHHҫHHcH@. LmH]HucH5yL#LAĪLA$ HEEEԋEEЃ}EE HEL HEH HuH5}L#LêLA$E9EE;E=HcEH0Hc]HHH-H9vAHEL L8HEH HutH5U}L#LRêLLDA$H8HtH@H90E܉EHc]HHH-H9v.AHEL L8HEH HuH5}L#LªLLDA$H8HtH@HXHHH9v]E Hc]HHHH9vAHEL LmHEH HuDH5%}L#L"ªLLDA$EH]HtH[HHH9v]ċE;EHEL D}LmHEH HuH5}L#LLDLA$H]HtH[HH-H9v]HcEHXHH-H9vu]EEEt2HEHMUHu.Eԅ*}u$HcEHXHHH9v]ԃ}c}YEMHEHUHu00Eԅ)HcEHXHHH9v~]HEHUHu0]0E̅#HcEHXHH-H9v6]HEHMUHu-Eԅ)}u#HcEHXHH-H9v]ԃ} }tE}VHcEHHcUH9AẺE6}}~HHELH]LcmILHH9vnLH}MBD+AD$(sKE;E_HEHLeHcUHH9v%LcmLH}MCD,C(sHEHUHu05Eԃ}~gE;E_HEHLeHcEHH9vLcmLH}8MCD,C(sHEHUHu0C5Eԃ}HcEHXHHH9vU]HEHUHu04Eԃ~dHELH]LcmILHH9vLH}LBD+AD$(sHEHUHu04Eԃ}HHcEHXHHH9v]HEHMUHu+E̅)}u#HcEHXHH-H9vN]̃} }tEHuH}1 Hc]HHH-H9v HEH Huc EԉEH]HtH[HH-H9v]E;E}}sLeHc]HHHH9vHH} KA|_uADC:D%uEE}|;LeHc]HHHH9vHH}̍A$(}EE܋E;EHcEHHffDE܉EEfDHc]HHH-H9v]}tjLmHcEHH9vcHc]HH}=LuHcUHH9v7LceLH}=ADC:D&uEE}|;LeHc]HHHH9vHH}謌A$(}E;EyLeHc]HHHH9vHH}=A|_uBE;E4LeHcUHH9v_Hc]HH}ӫH5SM4$LHLAH]LeLmLuH]UHHd$H}HXH]UHHd$H}H H]UHHd$H}HuHHUHuHHcHUuHEH Hu>H}PHEHtrH]UHH$pH}HuHDžxHEHUHugH~HcHUoHE@PuyM4$L肊LA 9}HEt3LmLeMubʫH5yI$H?L@HEHX HBHEHBHEHEH@ EHEH@ EHEH H3H=iy|L+HEHD$HEHD$HEH$HEHD$H]LeMuɫH5EyM4$L艉HA HcHcEHHH-H9vɫAHu11LyHEH$HEHD$LmLeMu6ɫH5φyI$HL HcHcEHHH-H9vɫHEHHMLE1;JD$H$LmLeMuȫH5RyI$H薈L HcHcEHHH-H9vȫH}HLEHMM11 GHE؁HE؃HEH$HEHD$LmLeMuȫH5yI$HL HcHcEHHH-H9vǫHEHHMLEA1IHEH H3H=#yzL+HEHD$HEHD$HEH$HEHD$H]LeMufǫH5yM4$LCHA HcHcEHHH-H9vFǫAHu1ɺL0WHEH$HEHD$LmLeMuƫH5yI$HņL HcHcEHHH-H9vƫHEHHMLEE01HHEH H3H=ypyL+HEHD$HEHD$HEH$HEHD$H]LeMu8ƫH5уyM4$LHA HcHcEHHH-H9vƫAHu1ɺLLmLeMuūH5iyI$H譅L@H}5HU؉t}tHEt H}"H]LeLmLuH]UHHd$H]LeLmLuL}H}#HELmH]Hu ūH5yL#LꄪLA$ HELmLeMuīH5ryI$H趄L ;E~6LmLeMuīH5?yI$H胄L ELc}LeH]HulīH5yL+LJLA LcH]LeMu;īH5ԁyM,$LHA HcIHEHHc@0H)I9LmLeMuëH5yI$HǃL HcLmLeMuëH5RyM4$L薃LA HcHHEHHc@0H)HH-H9vë]LmLeMuWëH5yI$H4L ;E~6LmLeMu$ëH5yI$HL ELmLeMu«H5yI$H˂L HcHHH-H9v«1hAH]ALeMu«H5+yM,$LoDHDA E9E~EELmLeMuO«H5yI$H,L HHuktHEH HutH]LeLmLuL}H]UHHd$H}HuHEH 菫HEH HuKtHEH 軫H]UHHd$H]LeLmLuH}HuIH]LeMujH5yM4$LGHLA HH}NH]LeLmLuH]UHHd$H]H}@uHEDt}t H}uHEHEHEt H}WHEH oHEHc]H}v0HcH)HHH-H9v]HuH}HHEHHH]H]UHH$pH]LeLmLuH}HXH}t HE؃DtHE؁ HE؁EEEEH}@EHE؋pt\tWtUHE؋pttuCLcmIH]LeMudH5|yM4$LAHA HcI9~0HE@0zHE@tHE؁HE؁@HE؋ t HE؃HE@H}^H1BH}@,HE@LmLeMu耾H5|yI$H]~L =vv]LmLeMuAH5{yI$H~L EHHuHH}詙HDz1]HE@uH}脙H01hHEL HEL Mu踽H5|I$H}LxHcHXHH-H9v蝽]HEtYLcmH]LeMuTH5zyM4$L1}HA HcHJ(HH-H9v4]HE؋prQHE؋psCLcmIH]LeMuӼH5lzyM4$L|HA HcI9~0HE0}HEtHE؁HE؁HE؋ t HE؃HEH}͗HǾ讳H}@)HELmLeMu컫H5yyI$H{L =v⻫]H}+EHHuHH}:HDzHEuH}H0ҾH]LeLmLuH]UHHd$H}HuHED~HE/HEH}ی t H} H} H]UHHd$H}HunHH}rH]UHHd$H}Hu.HH}2H]UHHd$H}HuHH@H]UHHd$H]LeLmLuH}HuHLmLeMu깫H5wyM4$LyLHAHEH@HEit#hf|HEH@HHUHBH]LeLmLuH]UHHd$H]LeLmLuH}HufFffEf-f-f-f-f-}f-t f-t@LmLeMu߸H5xvyM4$LxLA kH}@0LmLeMu蛸H54vyM4$LxxLA 'LmLeMueH5uyI$HBxL HcHXHH-H9vJLmLeMuH5uyM4$LwLA LmLeMuⷫH5{uyI$HwL HcHHH-H9vǷLmLeMu蕷H5.uyM4$LrwLA !LmLeMu_H5tyI$HjyL#LlLA$ HcHE%H)HH-H9vt޿RHcIHH-H9vIH}H}LcLmH]HuH5iyL#LkLA$ HcHE%H)HH-H9vʫ޿QHcI)LHH9v蟫DH}HEp H}HE@HH*PHDLHHuH5OL#LjLDA$HLAHHuͪH5OL#LjDLA$LmH]Hu蛪H54hyL#LyjLA$ `HDžXHX1H5|IHhQHhHH1HhTLhLM1HHHHuH5OL#LiHLLLA$H HXH`HXHH`HH}tHcHcH)HHH-H9v葩߾ %ILmLeMuPH5fyI$H-iLLHHE tOH7H8;HH HcHcHH?HHH)HHH9vHH1HhHhHHH߮LHHueH5VOL#LChLA$@LHHu0H5!OL#LhLA$HE@tuIHPIE0MLMuܧH5OL#LgLDA$1111HXH`HXH`1LޮyHhhHpHtzH L(L0L8L@H]UHHd$H]LeLmLuH}HuHHx u)HEitHEH@DHEH@6H]LmLeMuƦH5_dyM4$LfLHAH]LeLmLuH]UHHd$H]LeLmH}LmLeMuXH5cyI$H5fL tRLmLeMu&H5cyI$HfLuHEtHEt(HEHF*HEH@0S*LmLeMu謥H5EcyI$HeLtHEH@Y.HEHL`XMu[H5+|I$H8eH]HH*.|H9tHEHH5.|^%HEtHEH3H1H!HEH2HHtHEH@-H]LeLmH]UHHd$H]LeLmLuL}H}@uH}uMHUH5HlPH8zHEHHUH5H@PH80yHEH}HUHEHEDHEDHELXHEHXHuѣH5j[|L#LcLDDMA$xHEHEHEH H}^H}HEL(HELHEHHuCH5PyL+L!cLLA(HEH脸}tjHEHUHEDHEDHELXHEHXHuʢH5cZ|L#LbLDDMA$xH}{H} H]LeLmLuL}H]UHHd$H]LeLmLuH}HuHUHEH5HH6PH8wHEHHEL(HEHHELMuH5OyM4$LaHLA(HELHELMu象H5JOyI$HaLt#HUH5HPH80vHEH]LeLmLuH]UHHd$H]LeLmLuL}H}HuUMHEHƀHE;E HE} HUE}}HE;E}7HcEHcUHHHH-H9vɠHEHEHcHcEHHH-H9v菠HEQHEHcHcUHHH-H9vXHEHE;E} HUEHEDHE|HEHcHcEHH9~*HcEHXHH-H9vܟHEHEǀHEHcHcUHHH-H9v號HEbH}@HcEHXHH-H9v^ALuLeMu$H5\yM,$L_LDA HcEHXHH-H9vAH]ALeMuǞH5`\yM,$L^DHDAx HEL HEH(HEL(MuyH5r|M4$LV^HAA;E }NHEL(HEL(Mu6H5/|I$H^LHEH (QLmLeMuH5[yI$H]L HcHcUHH9LmLeMu贝H5M[yI$H]L HcHcUHHH-H9v蕝LmLeMucH5ZyM4$L@]LA H}H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuUMHEHƀHE;E HE} HEUHcEHcUHHHEHcH9~2HcEHcUHHHH-H9v蓜HEHEDHE|HEHcHcEHH9~*HcEHXHH-H9v3HEHEeHEHcHcEHH9IHcEHX}1 BHcHHH-H9v̛HE H}@HcEHcUHHH-H9v荛AHcEHXHH-H9vjAH]LeMu5H5XyM,$L[HDDA HcUHcEHHH-H9vAHcEHXHH-H9v뚫AH]LeMu趚H5OXyM,$LZHDDAx H}JH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuUMHcEHHcUHHH-H9v=AHcEHXHH-H9vAH]LeMu噫H5~WyM,$LYHDDA HcEHHcUHHH-H9v躙AHcEHXHH-H9v藙AH]LeMubH5VyM,$L?YHDDAx HcEHcUHHH-H9v;HEHuF HEH0 tHEH0 H}+H]LeLmLuL}H]UHHd$H]LeLmLuH}HuLmH]Hu荘H5&VyL#LkXLA$P LmH]Hu^H5UyL#LLeHcUHH9v賊Hc]HH}3٪AD t ttHEL HEL MuQH52|I$H.JL‹}0Ƌ}ϼHHEH*Hc]HHH-H9v]؋E;E~ALeHc]HHHH9v҉HH}VتAD t ttHEL HEL MutH5U|I$HQIL‹}/Ƌ}μHHEH HEH1 HEHHLmLeMuH5FyM4$LHLHA HuH} SZH}ƪHxHt[HPLXL`LhLpH]UHH$@HHLPLXL`LhH}HuHDžpHDžxHUHuVH4HcHUTHuH} HEL HEL Mu݇H5|I$HGL‹}R.EHEL HEL Mu菇H5p|I$HlGLHcEL`LH-H9vqD-EE)fDHc]HHH-H9v0]}Hc]HHH-H9vAHEL HpHEL Mu蹆H5|M,$LFHLDAHpHxcyHxt,D@HcEHXHH-H9vp]HEL HEL Mu-H5|I$H FL;EHc]HHH-H9vAHEL HxHEL Mu辅H5|M,$LEHLDAHxHphxHp HEL HEL MuZH5;|I$H7EL;EHc]HHH-H9v5]Hc]HHH-H9vAHEL HpHEL MuȄH5|M,$LDHLDAHpHtH@HXHH-H9v虄]u)ʼHHEHu} ʼHHEHHEH1HEHHLmLeMuH5AyM4$LCLHA HEtHEHuH}AUHpHxHEHtVHHLPLXL`LhH]UHHd$H}HH H]UHHd$H}HH H]UHHd$H]H}jCH2EHHw+u#NCHH=6}/ HHT+tEEEH]H]UHH$`HhLpLxLuH}HH8 HEHpH}bHEL HEL Mu H5|M4$LA@LAH} HEHH}1HEHHPHEf@fBHEH@ HUHuPH+.HcHUuHuH}H}: HEHuRH}1ѯHEHtsTHEL 0HEL Mu1H5|M4$LA@LAH};HEH蘽 tHEH$ H} HhLpLxLuH]UHH$HLLLLH}HuHDžHDžHUHxNH,HcHpH}~HXHqNH,HcHHEH iH]HuH5:j|L#L?LLHFlyH9LH]H3H=/ly2Hp JżHH]H3H=lyp2Hp żIH]H3H=kyJ2HpļILmH]Hu%H5LLHkyH9H]H3H=ky1HL`H]H3H=ky0HX LmIuH=ky0IEPH=mkyM蓵HHEH0> HEH. H]H3H=0ky0HH@HuHHEEH]H3H=jyZ0HXLeI4$H=jy@0I$P H9]؉؃EؐEHc]HHH-H9v}AHEL LHEH Hu|H5|L#LHEDH]LeMuIxH55yM4$L&8HDAH]LeLmLuH]UHH$`HhLpLxLuH}HH踱 HEHH}HEL HEL MuwH5z|M4$L}7@LAH}7 HEHHEHH}fHEHHPHEf@fBHEH軰 HUHuyEH#HcHUu%fDHuH}H} HEHulHHEHe HEH茲 HEHH}HEHtIHEL 0HEL MuxvH5Yy|M4$LU6@LAH}0HEH߲ tHEHk H}RHhLpLxLuH]UHH$HLLLLH}HuHEHDžHDžHUHpCH"HcHhoH}dHPHCH!HcHHEH ^H]Hu!uH5_|L#L4LLHayH9!H]H3H=way'HDhH]H3H=]ay'HD`H]H3H=Cay'HX LuI6H=*ay'IPH=ayEE膪HHEH0 HEH H]H3H=`y>'H@EH]H3H=`y"'H@EH]H3H=`y'HXLeI4$H=`y&I$B H9]܉؃EDEHc]HHH-H9vsAHEL LHEH HursH5Sv|L#LP3LLDA$HHuHLxHE}HEHcEHXHcEH)HHH9vsHHEL EHDuLHEH HurH5u|L#L2LDDLA$Hq}HEH HEHD}ALHEH Hu5rH5u|L#L2LDDDHA$H诪;E)HEH詭 H]HuqH5'\|L#L1LLHC_yH9H]H3H=,_y$HL`H]H3H=_ym$HX LmIuH=^yS$IEPH=^yMHHEH0象 HEH衪 H]H3H=^y#HH@HuHuHEH]H3H=y^y#HXLeI4$H=_^y#I$P H9]܉؃EEH}HH+]HH-H9vp]ԅAHc]HHH-H9vYpAHEL LHEH HupH5r|L#L/LLDA$HHuHtHEH-EHcuH}1諾H}2HþHRHHcUH}HcEHXHH-H9voHHEL LmD}HEH HuAoH5"r|L#L/DLLA$HcEHHE;EmHEH轪 LmLuH]HunH53Y|L#L.LLA$u`HEHHUHuxuDHEL LmHEH HunnH5Oq|L#LL.LLA$?HEHƀHEH 7XH}(HHt-A?H쫪H૪H}׫HhHt@HLLLLH]UHHd$H]H}HGHE DHEHE t ttHEH@H]H)HH-H9vam]H]H]UHHd$H]LeLmLuH}HuHEHxHEL HEHHELMulH5kyM4$L,HLA(HEHRtHEH0 HuꪪHEtHEH0 HuHEH蜎 D$H]HtH[HH-H9vBl$HEHLMMuL qA11` H}H}lHEH蜎 HEH0 1H]LeLmLuH]UHHd$H]LeLmLuH}HuHEHLH]HEHLMuMkH5n}M4$L*+HLAH]LeLmLuH]UHHd$H]LeLmLuH}HuHEH`LhH]HEH`L`MujH5}M4$L*HLAH]LeLmLuH]UHHd$H]LeLmLuH}HuHEHLh`H]HEHL``Mu3jH5T}M4$L*HLAH]LeLmLuH]UHHd$H]LeLmLuH}HuHEHLhPH]HEHL`PMuiH5}M4$L)HLAH]LeLmLuH]UHHd$H}HuHEH0HuH]UHHd$H]LeLmLuH}HuHEHLhH]HEHL`MuhH5}M4$L(HLAH]LeLmLuH]UHHd$H}HuHEH8HuH]UHHd$H}HuHEH@HuH]UHHd$H]H}HuHEH(H3H=|HHUHH]H]UHHd$H]LeLmLuH}uHE;EHEE!HEЋU!‰ ȉEHUEE H}AEHEu}uLHE}HEH(H3H=&|!HHƍ HEH`HEHEHǀ`H}HUH=n|]HEHU]-HEH@H@(H;EuHEHpHEH`MH}-auH}!HEH`LmLeMuYfH5#yM4$L6&LA H]LeLmLuH]UHHd$H]LeLmLuL}H}HuHEL(HEL(HEL(MueH5l|M,$L%LLA(H}HEHtHEH(HEHWHEH(H3H=b|]HHEHEHUH(HEH(H3H=2|-HHuH^ HEHH3H=IyHHEH(H8 LmH]HudH5Յ|L#L$LA$HUHLmH]HudH5|L#L$LA$HUHHEH0HEH(H3H=U|PHLEH rH=| HUH0H}HEHtHEH(HEHHuH}g HEL(LuHEL(MucH5j|M,$L#LLA(LuL}LeMucH5z|M,$L^#LLA(H} u H}H]LeLmLuL}H]UHHd$H]LeH}EHEH(H3H=|HH蟉 LcILH-H9vbDeHEH(H3H=|HuHh| ILH=+ yHUI$`H;`u#HcEHXHH-H9vqb]Hc]HHH-H9vNb]}| }[}EEH]LeH]UHHd$H]LeLmH}HEH(H3H=͂|HHm #HEHEH(H3H=|H1HI{ HEH;Eu.HEH(H3H=Z|UHH{ HEH]H3H=y.HHUH`H`HEH`H3H=FyHHuHrEEH]H3H=vyHE v`DmLeE v`UJIԘ} |cHEH HUH=FyQHHUH`EEH]E vc`EHDŽØ} |HUH5cHEH`?TH]LeLmH]UHHd$H]LeH}HH`HEH`H3H=EEyHHuHqHUH5֐HEH`vTH}MGHEH(H3H=`|[H1Hy HEH;Eu.HEH(H3H=/|*HHx HEHEH`H3H=DyHHQpHUH; uBHEH`H3H=_DyL#H]H3H=YyHH L"pHEH`H=# |vUHEH U#HEH@H@(H;EuHEHxHu5'H}XuH}HEHǀ`HEH`H]LeH]UHHd$H]H}HuHEDt H=o0I"HEH(H3H=~|H3H}H]H]UHHd$H]H}HDt H=0IǹHEH(H3H=r~|mHH tH=Q~|f HH} H]H]UHHd$H}HuH}֜H]UHHd$H}HuHUHMHE1HHUHu7+H_ HcHUuNHEH01bHEH0Hu>HEH0HujHEH0Hui.H}1֊HEHtx/H]UHHd$H}HuHUMLED$$EHMHUHuH}E1A H]UHH$PHXL`H}HuHUHMDEDMHE1HЉHUHp *H3HcHhE}uHEH tF}HEHխthHEHHHEH t E3HEH輚HHEH tE}uHEH EEtHEH1EtHEHʯEtHEH謯}u!HEHp\HEH0HEH0uHEH0Hu͖HEH0HuHEH0YHE}uHEH Hu }tE;Eu0HEH0p\HEH0HUHuH^E0t}u#HEH0?HHEH | EHEHHuHEH0p]HEH,HEH0ܒHHEHHEHx\usHEHHcXpHHH-H9vXHEHHc@dL`LH-H9vXDhHHEHu *}u%HEH*HHEH g )}u#HEHHHEH < EtHEHEtHEHڭEtHEH}uE؃sHEH 0CH}15HhHt*HXL`H]UHHd$H]LeLmLuH}uHE;E)HUEHEHuw HEtDHELX ]HELX MuWH5$}M4$LLAPAHELX 1HELX MuVH5$}M4$LLAPHEt.LmLeMuVH5/yI$HsL@LmLeMucVH5yM4$L@LA H]LeLmLuH]UHHd$H]H}uHEH(H3H=v|HuH$o u E#uHo u EEEH]H]UHHd$H]H}u s@H]E vUEHØt!H]E vuUEHØH]H]UHHd$H]LeLmLuH}u H]E vUEHØH]E vTEHØ1HEL(HEL(MuTH5[|M4$L|LA9H]E vTEHØLeE vfTEIĘx0HEHuH}@HEH ?HEH HuHuH}H]LeLmLuH]UHHd$H}uUME;EE܀}t1HEH t#HEH( LE܋MUHuHE EH]UHHd$H]LeLmLuH}uUME X}NHEL(HEL(MuSH5 Z|I$HLƿ,;EHUH=[{!HEЋu}HLmLeMuRH5CyM4$LLHA EDmH]LeMuqRH5{M4$LNHDADmH]LeMu;RH5{M4$LHDADmH]LeMuRH5{M4$LHDAHUЋEB@LmгLeMuQH5H{M4$L@LAHEHHx@H}EEH]E܃ vQEHØt2H]E܃ vlQEHØ;Eu uH}} |H]E v4QEHØt uH}ZHEH`Hu68H]LeLmLuH]UHHd$H}HuH8t7HE8t.HEtHEHtHEHHE8u'HEHxuHEH@H% t HE HuH}H]UHHd$H]H}HuUH}?HUHu]HHcHUu9HEH HHEH HLEMH}HaHEH@ @;E~+HEH@ @ ;EHEH@ @;E~LEHMċUuH}GEȄHEuDHEL HEL MuMH5WaM4$L LAHEL HEL MufMH5WaM4$LC @LAHEЁ>}u}t2UĉIЁ} UIЁ}HEЁHE؀8LmLeMuLH5r yI$H LP mH]H3H=G yHHw GHEH HEH(u})HH}кXHHEH(HEH(HHMHUH}HU؈HE؀8HEH1,HEЁHUHh9HaHcH`u#HEH(HHEH 0+HEH[HEЁH`Ht}tH}оnH}оmHEuBHEL 0HEL MuKH5gUaM4$L @LAH@LHLPLXH]UHH$HLLLLH}HuUMHEHEHpH0HHcH(HELmLeMu+JH5yI$H LP ^HuH=yFH]H3H=yHH  H}HHH0HcHM؋UHuH}+U؋uH}謤LmLeMuZIH5yI$H7 L HEHMHUHuH}SLmLeMu IH5yI$HL HELmLeMuHH5ryI$HL HEH}1vHHpHHcHhH]H3H=yiHHuH H]H3H=yGHHHEHE H]H3H=yHLD$$H}膕AH}zHH HcHHH-H9vGH} AH}H LcILH-H9vGDHuLDAE贅 HE@\E<uE}HEH;EtJH]H3H=y;L31MMMu&GH5yM,$LLHAX aHEH HEH(9HEH(1HEH1SHEH(2HEH(HEHEH S0HPHHHcHPHE@t>H}( t1$ED$HMHUHuH}AA/$ED$HMHUHuH}AAH}}H}@D$H]HtH[HH-H9vE$HEHHcXpHHH-H9vEHEHDhtLceILH-H9v\EDHEHLMMuL .JUE聍 HEH  /HHt vH}1KsHhHtUH}HHtM؋UHuH}F !H}xH}oH(HtHLLLLH]UHHd$H]LeLmLuH}uHEH@ ;EHELX ]HELX MuCH5}M4$LLA@HEH@ t.LmLeMuCH57yI$H{L@H]LeLmLuH]UHHd$H]LeLmLuH}uH}觑;E8HELX ]HELX Mu CH5}M4$LLA8H}sFHEH@ HcHXHH-H9vBHEH@ KEH} HcHH-H9vBHcEL`LH-H9vtBLcmILH-H9vTBD1D%HEHUHEHEHEHEH}HHu06H]LeLmLuH]UHHd$H}H@,H]UHHd$H}u~&HEHu| HEHu| H]UHHd$H]LeLmLuL}H}HuUHuH}Gi}oHEHH;EHEH(HEH`HEHǀHEHh1l HEHx1. HEH1v HELX 1HELX Mu@H5W}M4$LHLAXHE@Pu7H}LmLeMu^@H5xI$H;L@HEHtfHEHH@H;EuQHEH1-@ L}ALeMu?H5xM,$LDLAx H]LeLmLuL}H]UHHd$H}HHtJHUH5+HEHTHEH(HEH@_HEHHuSH]UHH$0H8L@LHLPLXH}HuHEHH;E9HEH0 1B}H})H}t5HUH5gH}KHuH}RHEH(H}\HUHEHH}襼HUHu HHcHUHEHhHu HEHxHu$, HEHHu@t HELX LmHEHX Hu=H5 }L#LLLA$XHEHf HEHHELLpHEHHu=H5,xL#LqLLA$HEHHPHpHHELLpHEHHu+=H5xL#L LLA$HpHEHb HEHHHEHc HEH@H}'H}@HEHtKHEL(HELHEHHur6ދ}EE;E~cLcmH]LeMu5H5xM4$LHA HcJ(HHH-H9v5ދ}EHEHE1LcmH]LeMuh5H5xM4$LEHA ƿHcHHUHHcR0H)I)LH-H9v+5DmHE t3HEHHc@]HEt#Hc]HHH-H9v ]uEE tmt =tu#Hc]HHHH9v]H}uHcHcUHHHH9vH}f} tf}mtf} tf}nu0ҋuH}蔑DLmH]HuH5xL#L٩LA$ HEH DLmH]HuH5pxL#L٩LA$ HcHHHH9vALuAH]HuH5xL#L`٩DLDA$ HEH mDHEL E1HEH Hu%H5|L#L٩DLA$hHcHXHH-H9v޿^HHEH MCHEL HEH HuH5y|L#LvةLA$xLcILHH9vqHEL HEL Mu1H5|I$HةLDhHcHXHHH9v޿]HE}Hc]HHH-H9vAHEL LHEH HuH5e|L#LbשLLDA$HHtH@HXHHH9vT]HEH HuAHEL E1HEH HuH5|L#L֩DLA$hHcHXHHH9vHEH [AHEL HEH HutH5U|L#LR֩LA$xLcILH-H9vNHEL HEL MuH5|I$HթLDhHcHXHH-H9vHEH v@H}k@HEH HEH0O@fEf=bf-t f-t.f-tfEf=hf-t f-t0f-t@f-`tf-tf-t.BH}0ҾHE=H}0ҾrHE'H}0Ҿ\HEH}01IHEELcILH-H9v9HEL HEL MuH5|I$HҩLDxuuH} ƿ|XHEHEH Huf=fEf=_rTf-_tf-tf-t-@HEH1_X,HEHHXHEH1XHEHƀ<HEHƀ<H}+<LmH]HuH5xL#LѩLA$P <H} t^HEHuJHEt:LuM1H]HuH5!xL#LfѩLLA$X *<HuH}膤H]HtH[HH-H9vQ]HEH HELmH]HuH5xL#LЩLA$ HEHcUHcEHH9HEH LmH]HuH5IxL#LЩLA$ LcILH-H9vLmLeMubH5xI$H?ЩLD HEH C:LmH]HuH5xL#LϩLA$ LmH]HuH5}xL#LϩLA$ :LmH]HuH5ExL#LϩLA$ LcILHH9vLmLeMu]H5xI$H:ϩLD LmH]Hu,H5xL#L ϩLA$ HcHHHH9vHXLmH]HuH5mxL#LΩLA$ HcHHHH9vAHEL LHEH HumH5N|L#LKΩLLDA$LLmH]Hu1H5xL#LΩLLXA$ HcLpLHH9v LmLeMu H5rxI$HͩLD LmH]Hu H5AxL#LͩLA$ AHEL M1HEH Hue H5F|L#LCͩLLDA$8EEHEH 臻HEL DuLmиHHHEH Hu H5|L#L̩DLDLA$8EHcEHc]H)HHH9v ]UHuH}SEHEL DuDmEHHHHEH Hu0 H5|L#L̩HDDDLA$HIHEH u`HE 6LmH]Hu H5WxL#L˩LA$P `6H}p t^HEHuJHEt:LuM1H]HuS H5xL#L1˩LLA$X 5HuH}QH]HtH[HHH9v ]LmH]Hu H5xL#LʩLA$ HEE;EUHuH}艡ELmH]Hu H5-xL#LrʩLA$ H HEH HD}DuLHEH Hu8 H5 |L#LʩLEDH A$HGLuLmH]Hu H5xL#LɩLLA$ 4f}|4LmH]Hu H5ǩLLDHA$ HcHHHH9v7]LmH]HuH5xL#LƩLA$ HcHcUHH9LmH]HuH5XxL#LƩLA$ HcHHcEH)H}Ⱦ f`HcELpLH-H9vLmLeMuTH5xI$H1ƩLD LmH]Hu#H5xL#LƩLA$ HH}H#HHEH0 $LmH]HuH5YxL#LũLA$ HH}HHHEH1 LmH]Hu]H5xL#L;ũLA$ HH}H]HHEH. tbLmH]HuH5xL#LĩLA$ HH H HcH}HHHtH@H9~H}HEH}HE}LmH]HujH5xL#LHĩLA$ AH}HjHHtH@HXHHH9v-DIHEHEH ;EuHEH @ ;E.HEH0Hu_@LmH]HuH5FxL#LéLA$ HHEH0]CHEH01[IHEH0HUHuH`E001THEH0pdHEH 覲-LmH]HuH5xL#L©LA$P -f}uH}1 HE?LmH]HuH5XxL#L©LA$ ƿVHHEHEH 蒰;EuHEH @ ;E--HEH0Hu>LmH]Hu@H5ٿxL#L©LA$ HHEH0AHEH01GHEH0E0011HEH Huѳ,LmH]HuH5SxL#LLA$P \,HEH @ EHEL HEH HudH5E|L#LBLA$;ELmH]Hu,H5žxL#L LA$ AHEL AHEH HuH5|L#LDLDA$HEL HEH HuH5|L#L|LA$;EHc]HHH-H9vxAHEL LHEH Hu.H5|L#L LLDA$HHc]HHH-H9vAHEL LHEH HuH5|L#L葿LLDA$HHtH[HHH9vH(HEL DuAHHHEH Hu&H5|L#LHDDLD(A$HLLA$X LmH]Hu.H5dzxL#L LA$ HEHEL DuDmHEH HuH5{L#LõDDLA$LmH]HuH5IxL#L莵LA$ HcHXHHH9v޿';ILmLeMuRH5xI$H/LL H}ZLmH]HuH5xL#LLA$P LmH]HuH5uxL#L躴LA$` LmH]HuH5AxL#L膴LA$P JLmH]HuqH5 xL#LOLA$X HEHx!]H-HH-H9v7H}ܞHEHx!f}_r1f}hw)]H_HHH9v]&]HiHH-H9v]H]E܃ vEHØf}_rf}hvXH]E܃ voEHØ诼ALmH]Hu*H5ðxL#LLA$ A9tEEuH}R}LmH]HuH5oxL#L贲LA$ ALmH]HuH5=xL#L育LA$ ‹uH}D8LmH]Hu_H5xL#L=LA$ ALmH]Hu-H5ƯxL#L LA$ ‹uH}D菞LmH]HuH5xL#LƱLA$P H} yH})QkH}[O]LmH]HuH5xL#LbLA$P &f}c@H}H} 豱HHuH袍HuH}u H}LeH]HtH[HHH9vHH}?AD r ttrBH]ȾH}W? r ttrHuH}1HTH0HHS.HUHu1H/HHNLmH]Hu,H5ŭxL#L LA$P f}^LmM1H]HuH5xL#LįLLA$X HEHHEH0HEH05HEH0@5H}1-f}`t f}bwگHHuHˋH}t\LeH]HtH[HHH9vLmH]HuH5PxL#L蕩LA$P YHEH<LmH]HuhH5xL#LFLA$ H ELmH]Hu2H5˦xL#LLA$ u7Hc]HHHH9v]HEH @ ELcuHEL HEH HuH5{L#L蓨LA$HcHI9OH}1HEH:uHEH?HEHt=HEH 4Hc]HHHH9v3HcHHH-H9vAHEL LHEH HuH5{L#L訧LLDA$HH@LmH]HuH5 xL#LeLA$ H AHEL AHEH Hu=H5{L#LDLDH@A$HcEHXHHH9vAHEL AHEH HuH5{L#L触DLDA$HEH HEHV<H}1=LmH]HudH5xL#LBLA$P H}1DHEH8uHEH<HEH+;HEHHEH0PHEH09tFHEHl%HHEH0I"HEHIHHEH0f%HEH0a+HEH0@+HEH0xtuiHEH0HEH0Ap;B`~KHEH0HcXpHHHH9v#޿*HHEH0$HEH0HuHEH0@0+HEH0=2H HcHXHH-H9v޿>*HHEH0 !HEH0HuHEH:H}1LmH]Hu%H5xL#LLA$P H}׵ H}1HE8}HEH1HU8HEH@\EHEH7EHEHHu}uHEH /LmM1H]HuZH5xL#L8LLA$X HEHHHEH f}ytf}zuHEH HE8BTfEf=yjf-ytf-t f-t,f-t=PH}0ҾZ>H}0ҾZ,HEH >HEH 'HEH'9HEHHUHuH\uA0N}t6HEH@6HEH!HHEH f}ytf}zuHEH HE8BT}uHEH H}1){ LmH]HuH5;xL#L耡LA$P D H}T 3 H}1qHEH HEH@\EHEH05EHEHHu)HEHY.HHEH HEH7HEHHUHuHuA0}tHEH@D5HEH H}1K H}[PHcHHH-H9v|H}MLmH]Hu?H5؝xL#LLA$ H0LmH]Hu H5xL#L矩LA$ HcHHH-H9vߪALmAH]HuߪH5NxL#L蓟DLDA$ 09K LmH]HurߪH5 xL#LPLA$ HcHHHH9vUߪALuAH]HuߪH5xL#LDLDA$ ALmLeMuުH5~xI$HžLD H}NHcHXHH-H9vުH}LLmH]Hu|ުH5xL#LZLA$ ALmH]HuJުH5xL#L(LA$ A9LmH]HuުH5xL#LLA$ ALmLeMuݪH5yxI$H轝LD LmH]HuݪH5CxL#L舝LA$ LcILH-H9vݪLmLeMu\ݪH5xI$H9LD LmH]Hu+ݪH5ĚxL#L LA$ LcLmH]HuܪH5xL#LלLA$ LcLmH]HuܪH5`xL#L襜LA$ HcLI9bLmH]HuܪH5"xL#LgLA$ LcLmH]HuWܪH5xL#L5LA$ HcILHH9v;ܪLmLeMu ܪH5xI$H曩LD LmH]Hu۪H5lxL#L豛LA$ HcLpLH-H9v۪LmLeMu۪H5xI$HbLD LmH]HuT۪H5xL#L2LA$ ALmH]Hu"۪H5xL#LLA$ A9LmH]HuڪH5xL#LȚLA$ ALmLeMuڪH5QxI$H蕚LD [H}@JH}@09HE@H}ʞHEHHHEH HH׃@HEH"HEH HHEHHEHHHEH 覈HHk@HEH"HEH uHHEHbDHEHx8@HEH:"HEH@""HEH@0 "H} HEHHuHEHHEH0UHEH1.HEH 裇HHEHPHEH01HEH>HHEH {HEH KHEHEHHuHEH.HEH HEHEHHuHEHHuH}٩ HEHHHH}蕇H}藩 vHEH1_HEH$HHEH u7HEH$HHEH MLmH]Hu6תH5ϔxL#LLA$P H}(hLmH]Hu֪H5xL#LϖLA$P H}mE-v֪EH@xH}'QHEHh<f}u HEHx=Iƒf}u HEHxIƒ2Ef}uEHEEHEHx}GHEHxHcHcUHHH-H9vժHEHx艱EHEHxwHcHcEH)HHH9vժHEHxBHUE܉HEHEHxĦH}[TH}RH}b{L#L;LDLA$HuHHcHpHHH-H9v(˪]HcEHXHH-H9v˪]HcUHHcEH9~FHEL HEH HuʪH5{L#L菊LA$;EHEL HEH HukʪH5L{L#LILA$;EHcEHxHEL DuLmHEH HuʪH5{L#LLDLA$HEHtH@HXHHH9vɪދ}+pHcHxHHHH9vɪ]H}sHEHt蕜EHHLPLXL`LhH]UHHd$H]H}HuHHtH@HXHH-H9v#ɪ]H]H]UHH$@HHLPLXL`LhH}uHEHUHuH(uHcHUoEEfDHcEHxHEL DuLmHEH Hu=ȪH5{L#LLDLA$HuH>HcHxHHHH9vȪ]HcEHXHHH9vǪ]HEL HEH HuǪH5{L#L~LA$;E}HcEHpHEL DuLmHEH HuGǪH5({L#L%LDLA$HuHHHcHpH HcEH9Hc]HcEH)HH-H9vƪHcEL`LH-H9vƪDp HHEH xHc]HcEH)HHH9vƪHcEL`LHH9vxƪD ILmLeMu9ƪH5҃xI$HLL8 襗H}HEHtHHLPLXL`LhH]UHHd$H]H}HuHHtH@HXHH-H9vŪ]H]H]UHH$PHPLXL`LhLpH}HEHUHu蓓HqHcHUH} t5LmH]HuĪH5xL#LۄLA$ HE3LmH]HuĪH5axL#L覄LA$ HEEE@HcEHxHEL DuLmHEH Hu]ĪH5>{L#L;LDLA$HuH^HcHxHHH-H9v(Ī]HcEHXHH-H9vĪ]HcUHHcEH9~FHEL HEH HuêH5{L#L菃LA$;EHEL HEH HukêH5L{L#LILA$;E~'HcUHcEHHH-H9vEê]譔H}HEHt&EHPLXL`LhLpH]UHHd$H]H}HuHHtH@HXHH-H9vª]H]H]UHH$@H@LHLPLXL`H}uHDžxHUHu荐HnHcHUEEHcEHpHEL DuLxHEH HuH5{L#L訁LDLA$HxHHcHpHHH-H9v]HcEHXHH-H9vo]HEL HEH Hu,H5 {L#L LA$;EHcEHhHEL DuLxHEH HuH5{L#L讀LDLA$HxHHcHhHHcEH9Hc]HcEH)HH-H9v]HcEHXHH-H9v]]LmLuH]Hu$H5}xL#LLLA$@ 菑HxHEHtH@LHLPLXL`H]UHHd$H]H}HuHHtH@HXHH-H9v蓿]H]H]UHHd$H]LeLmLuH}uHE;EuH} HELX ]HELX MuH5|M4$L~LA LmH]LeMuɾH5b|xM4$L~HLAH]LeLmLuH]UHHd$H]LeLmLuL}H}uHUHMEHEH`+HEH`βHcHHH-H9v?AEE@EHEH`uaHHHEH`u;@@;EHEH`uHU@0HEH`uHHHUHE0HE8.IH]LeMuYH5zxM,$L6}HLA HUE D;}EH]LeLmLuL}H]UHHd$H}uHEHUuH}HIH]UHHd$H]LeLmH}HH(H3H={oHH HEHpxTt`HEHp1 HtIHEHp1 t.LmLeMu>H5yxI$H|Lh H]LeLmH]UHHd$H}HHHEHH]UHHd$H]LeLmLuH}HuHELpH]HELpMu苻H5K|M4$Lh{HLAH]LeLmLuH]UHHd$H]LeLmLuH}HuHELxH]HELxMu H5\K|M4$LzHLAH]LeLmLuH]UHHd$H]LeLmH}HuHE@Pu/LmH]Hu蔺H5-xxL#LrzLA$h H]LeLmH]UHHd$H]LeLmH}HuHE@Pu]HuH}YH}谽tCH}@0'H}LmLeMuH5wxI$HyL@H]LeLmH]UHHd$H]H}@uHEHpxTthxL#LjH(H LDEA$ E{H}(LmH]HuQH5gxL#L/jLA$0 H0HtC}}uE}}uEED$$HMHpHxH}E1AMHMHpHxH}̪HEHMHpHxHp說HpH`}yeEt }t HpHE+HxHE}t HxHE HpHE}|HEH(Hu[}HEH(藕Hc]HHHH9vިAHEL LHEH Hu蔨H5u{L#LrhLLDA$LMtMd$LH-H9vhHc]HHHH9vGDHEvHEH(VHE`HEH(虔u3HcEHXHHH9v䧪޿xHEHEH(VHE$HEH HEHLpLxHMHUixHHX`LmH]Hu6H5dxL#LgLA$@ H}@&HHtHtzHDžwxHH}HHtyEHLLLLH]UHHd$H]LeLmLuH}HlVHELhHEHXHEL`Mu>H5cxM4$LfHLA8 HExtsHELhHEL`MuH5cxI$HeL HHELhHEL`MuH5ZcxM4$LeLHA HEL`HEHXHEL`Mu|H5cxM4$LYeHLA@ HExuEHEL`HEHXHEL`Mu-H5bxM4$L eHLA H]LeLmLuH]UHHd$H}uUEHEH@H@\t ,tC`HEHU@;Bu HE@;EHEHU@;Bu4HE@;E}(E"HE@;EHE@;E|EEEH]UHHd$H]LeLmH}HuUH}v EcLmH]Hu H5axL#LcLA$ HELmH]HuףH5paxL#LcLA$ HEԋE;E|E;EEE}}t EEHEH@\<k,t,t aEHc]HEHu,HcHcUH)H9~,Hc]HEHuHcHcUHH9}EHEBE;EHcUHcEH)HcEH9}"E;E|HcUHcEHHcEH9~EEEH]LeLmH]UHHd$H]LeLmLuH}u%EHE;EHEE!HEЋU!‰ ȉEHUEH}EHE LmLeMuH5_xI$HaL LmLeMuǡH5`_xM4$LaLA HE t H}OEtH}=H}TH}EtHE@Pu H}ڤE%t"H}ŤtH}@0H}EHEtMHEDHEHX HELX MuԠH5n|M4$L`HDAPAHELX 1HELX Mu萠H5An|M4$Lm`LAPH}t.LmLeMuRH5]xI$H/`L@HE@HEH贡E HE HELX HELX Mu֟H5m|M4$L_L@AHLmLeMu褟H5=]xI$H_L@HEEEEEEEEwEHUEs3EvJE1H xD UU0EvE1H [xD !U}]}t6DmH]LeMu豞H5J\xM4$L^HDA HUELmLeMumH5\xM4$LJ^LA H]LeLmLuH]UHHd$H}H@HEH| HEuHE%`t@@0HEH 詅HE@@HEH GHE@HEHeHEHHU@H]UHHd$H]LeLmLuH}uHE;EXHEE!HEЋU!‰ ȉEHUEH}.HEt H}uEtHEu H}"Et H}E%`HE LmLeMusH5 ZxI$HP\L LmLeMuCH5YxM4$L \LA HE t H}LmLeMuH5YxM4$L[LA H]LeLmLuH]UHHd$H}H@@HEHHE@HEH ЄHEuHE%`t@@0HEH HEHt"HE@HEHH]UHHd$H]LeLmLuH}uHE;E;HEE!HEЋU!‰ ȉEuH}n EEEyEv苚EHюxDEsUH]EvcUHxDr*1ҋE HEҋ!ЉHE}hE t'HEHtHEH衜H}LmLeMu豙H5JWxM4$LYLA H]LeLmLuH]UHHd$H]UHHd$H]LeLmLuH}uUHUE:E}tM1ۋE HE LmLeMuH5VxM4$LXLA Q1ۋE HEӋ!؉LmLeMu螘H57VxM4$L{XLA H]LeLmLuH]UHHd$H]LeLmH}@uH}ʛݻHH}h}t.LmLeMuH5UxI$HWL@HE H}@9HE t H}pH]LeLmH]UHHd$H]LeLmLuH}HuLmH]Hu]H5TxL#L;WLA$ HcHHH-H9vA1X=HcHH?HHHH-H9vLmLeMuޖH5wTxM4$LVLA HcHEHHc@HH ףp= ףHHHH?HILH-H9v蕖DHEHx<lj<HUHBHcHU}HEHpxTtHEHp@HEEHEHxxTtHEHx@HEEH}\HcHH-H9v近H}&\LcLH-H9v蛑DHEHX 11A HEHX u>R HEHX uU HEHpxTtLHELX A1HELX MuH5^|M,$LPDLA0JHELX A1HELX Mu趐H5g^|M,$LPDLA0HEHxxTtLHELX E1HELX Mu[H5 ^|M,$L8PDLA0JHELX 1AHELX MuH5]|M,$LODLA0LmLeMuۏH5tMxI$HOL HEH荷 LmLeMu蛏H54MxI$HxOL HELXHELXMu]H5F{M4$L:OLAHEH>HEH@ HpHPHEH;HEH@ LcxHEH@ HcI)LeH]HuՎH5nLxL+LNLA LcH]LeMu褎H5=LxM,$LNHA HcLM)LH-H9v腎DHEHH}@0&HEH}LmLeMuH5KxI$HML LmLeMuꍪH5KxM4$LMLA HEuH}H}7H}1 '_H}HEHt`H`LhLpLxL}H]UHH$HLLLLH}uHEHUHu`[H9HcHUHuH}HhH($[HL9HcH HEH uGy~}HEH x _HEKHE%`6HEH @ HcHHH-H9v0AHEL HEL Mu苪H5Ɏ{M,$LKLDApHcHXHH-H9v轋]HEH @ ;ErHc]HHH-H9v胋AHEL H]HEL MuLmLeMuH5ExI$HGL HELeIc$HHH-H9v㇪AHEL ]HEL Mu蝇H5~{M,$LzGLDApEHcEHXHH-H9vx]HEH ub:HuH}U H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHUHMDEDMHEH}HLmH]LeMu赆H5NDxM4$LFHLA LmH]LeMuH5DxM4$L\FHLA8 LmH]LeMuIH5CxM4$L&FHLA@ }tHEHu}@LmLeMuH5CxI$HEL ALeH]Hu…H5[CxL+LELA EHc]HHH-H9v装AHEH HEL Mu`H5A{M,$L=EHDDApEHcEHXHH-H9v:]LmLeMuH5BxI$HDL ELmLeMuԄH5mBxI$HDL HcH)HH-H9v资ALeH]Hu耄H5BxL+L^DLA EHc]HHH-H9vaAHEH HEL MuH5{M,$LCHDDApEHcEHXHH-H9v޿ *EHEH HH }*EHEH'HH })ELmLeMusH5 AxI$HPCL LmLeMuCH5@xM4$L CLA 9}Mű})Ƌ}M)LmLeMuH5@xM4$LBLA LmLeMuÂH5\@xI$HBL ;E)LmLeMu茂H5%@xI$HiBL HcH)HH-H9vmAHc]HHH-H9vJAHEH HEL MuH5{M,$LAHDDApEHcEHXHH-H9vၪދ}'(Ƌ}'LmLeMu虁H52?xM4$LvALA LmLeMucH5>xI$H@AL ;E~Mű}'Ƌ}m'LmLeMuH5>xM4$L@LA 0E;E$LmLeMu׀H5p>xI$H@L HcH)HH-H9v踀AHc]HHH-H9v蕀AHEH HEL MuRH53{M,$L/@HDDApEHcEHXHH-H9v,ދ}r&Ƌ}8&LmLeMuH5}=xM4$L?LA HuH}H]LeLmLuL}H]UHH$HLLL L(H}xHUHuMH+HcHUHEHcTHXHH-H9v(HETHxH8FMHn+HcH0nHELxHEHHELMu~H5bC[M4$L~>HLAHEH1H\HELHEHHELMuA~H5BV|M4$L>HLAHEHHELHELMu}H5+xI$H=LHcHHH-H9v}AEEEHEL]HELMuy}H5+xM,$LV=LAX4HELHELMu7}H58U|MuL=LAD;}nHEDHEHHELMu|H5T|M4$LH}H]UHHd$H}uEMEf)EEH}|Es*HEHpEZ HEHxEE H]UHH$PHXL`LhLpLxH}HEHEHDžHUHhLeHcEHH9vYHc]HH}BAD t ttHcEHUHtHRH9~E H}1趗}}Et}}ELmH]Hu#YH5xL#LLA$ Ƌ}輞ILmLeMuXH5xI$HLL EnHEH HhHEL HELLuHEHHuXH5zL#L`LLLHhA$EEEHEtEtu}~E;EEHEH Hu )H}HpHt+H@LHLPLXL`H]UHH$@HHLPLXL`LhH}HEHUHu%HHcHx LmH]HuGWH5xL#L%LA$ HEHEHuH}EHEuiHEH HcHUHtHRHH9t@HEHtH@HXHH-H9vVHEH !MEH}H]HtH[HH-H9vV]$Hc]HHHH9v_V]}~>LeHcEHH9v:VHc]HH}躤AD t tt}LmH]HuUH5uxL#LLA$ AHcEHXHH-H9vUDRILmLeMu}UH5xI$HZLL EnHUH HpHEL HELLuHEHHuUH5!zL#LLLLHpA$EEEHEnHEH HcHUHtHRHH9tEE;E|=HEHtH@HXHH-H9vTHEH HEH Hu%H}1HxHtP'HHLPLXL`LhH]UHHd$H]LeLmH}HuHH=%zHEHuH='ztH}(HuH=)zctH}FHuH=+zAtH}@0iHuH=Y2ztH}sHuH=0zt0LmLeMuSH5xI$HL` /HuH=-ztH}lHuH}eEEH]LeLmH]UHHd$H]LeLmLuH}HuHH=m$zHMLmLeMucRH5xI$H@LEHuH=I&ztkH]H3H=$zHH}# t8LmLeMuQH5xM4$LLAP u@@0HRHuH='z}t/H]H3H=#zHH}j# @HHuH=)z:tkH]H3H=@#zSHH}Gt8LmLeMu1QH5xM4$LLAP u@@0H萵XHuH=/ztXH]H3H="zL+H]LeMuPH5XxM4$LHAP @L$HuH=\-zOH]H3H=Q"zdL+H]LeMuOPH5 xM4$L,HA8 t7LeH]HuPH5 xL3LLAP u@@0L|GHuH=*zt3H]H3H=!zH@HEHuH}eEEH]LeLmLuH]UHHd$H]H}@uHEH(H3H=Vp{QH@uH2 H]H]UHHd$H]LeLmLuL}H}uADuH]LeMuNH5 xM,$LHDDA Du]L}LeMuNH5P xM,$LLDAx H]LeLmLuL}H]UHHd$H]LeLmLuL}H}IH]Hu>NH5 xL+LLA ILuE0EEEH]HuMH5 xL#L UMDEELLA$p H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuUMDEDMLuLeH]HugMH5 xL+LE LLA IDu؊EEEEDmHEHEH]HuMH5 xL#L H}DMDEELA$x HEȃ}~:LuLmH]HuLH5f xL#L LLA$ HEHEH]LeLmLuL}H]UHH$HLLLLH}HuUMDEDMHEHEHDžxH`H hHHcHFEEEEEE#HEL HEL MuKH5N{I$H L;E}LmLeMujKH5 xI$HG L ;ELmLeMu3KH5xI$H L AH]ALeMuJH5xM,$L DHDA ;E+Hc]HHH-H9vJAHEL H]HEL MuJH5mM{M,$Li HLDAH!}}}~XHc]HHH-H9vGJ]H}jHcEHXHH-H9vJ]HcUHEHtH@H9}1HcEHXHH-H9vI]Hn}3H}芇H}聇H52MxHx~>HHtHEHLLLLH]UHHd$H]LeLmH}HHPHtHRHEHc@H9LeMl$H]HcCHH9vIHc[HI|$耗ADEEEEvHUHS=x:Eu[EvHUH4=x"t'tu&EvHUH =x4H}@uH}" }vH]LeLmH]UHHd$H]LeLmLuL}H}uHEpHEx詍HUHBHEHXHHHELHHEL@HEHHHEHpHEHxHE@EvGUH/HEXLeMl$H]HcSHH9v>Hc[HI|$?ADE:Eu@H} t3HcEHXHH-H9vu>]}} HE@EHExD}~,HcEHHHuHUEBH}HUEBHEHXHtH[HH-H9v=]HE@HUHE@BHEHc@HXHH-H9v=HEXLeMl$H]HcSHH9v=Hc[HI|$ADE:EuH}t H}<)HE@;Ej}~HUEBH}H]LeLmH]UHHd$H]LeLmLuH}HpHEx聂HUHBHExHEH@HEHE@;EHE@;Eu,HE@;E~ HEH@HEHEHUHPHEHEHcEHXHH-H9v[<]HELhHEL`MuHEHUHuرY HUHEHUHuرV HUH}ZdHxHtyHPLXL`LhLpH]UHH$@HHLPLXL`LhH}HuHUHEHUHu;HcҨHcHxHEHpL}LuLmH]Hu%H55wL#LzLLLHpA$ Hc]HHHH9vq%AHEL LmHEH Hu*%H5 ({L#LLLDA$HcMHcEH)HcUH}HuuvH}bHxHtHHLPLXL`LhH]UHH$HLLLLH}HEHhH(HШHcH LmLeMu!$H5wI$HL HEEEEEHEL HEL Mu#H5&{I$HL;EHc]HHH-H9v#AHEL H]HEL Mu`#H5A&{M,$L=HLDAH]HtH[HH-H9v8#]HEHH}Hp(HE;E~ HHEHYHEL HEHHELMu"H5AwM4$LHLA(Hc]HHH-H9v"HELHELMuH"H5wM4$L%LA@HELHELMu"H5wI$HLEHELL}H]HELMu!H5RwM,$LHLLAE;E~CHcEHcUHHcUH9|/HcUHcEHHXHH-H9vs!]HELHELMu+!H5wI$HLHELHELMu H5wI$HLhHELHELMu H5DwI$HLhH?HuH}LeHcEHH9vq Hc]HH}nADEsh&HcEHXHH-H9v0 ]E;E8LeHcEHH9v Hc]HH}nADErLeHcEHH9vHc]HH}QnADEsh&HcEHXHH-H9v]E;E8LeHcEHH9viHc]HH}mADErLmLeMuH5wI$HިL ;Eu#HcEHXHH-H9v]u}dHLmLeMuH5PwM4$LިLHA HEH}u\H HtHEHLLLLH]UHHd$H]LeLmLuL}H}IHEH@H HEH@L MuH5 {M4$LݨHAA;E_HEH@L HEDpHEHXHEH@L MuH5v {M,$LrݨHDLAHEHXHtH[HH-H9viHEXHEHc@HXHH-H9v>HEXHE@-fHEHc@HXHH-H9vHEXHEHU@;BDLmMeH]HcCHH9vHc[HI}IkHUADBrHEHU@;B~ HE@H]LeLmLuL}H]UHHd$H]LeLmLuH}H01H$HLmLeMuH5wM4$LۨLHA HEH]LeLmLuH]UHHd$H]LeLmLuH}H1H"HLmLeMuH5*wM4$LnۨLHA HEH]LeLmLuH]UHHd$H]H}HuHUH}HcHHH-H9v/]QfHEHu_HEHUHuH}]u)Hc]HHH-H9v]}}EH]H]UHHd$H}HHtHEH`EEEH]UHHd$H}HuHUHMDEH}ttHEHuH=r&R`HUHHUHuH}u4DMLEHMHUH= xKZHHEHdH]UHHd$H]H}HuHUH}tMHUHEH}HHhHtԩHLLLLH]UHH$HLLLH}HuHUH}u.LmLeMuH5TwLHaLShHEH}LHUHuΩHҬHcHUHEHuH=w벩tWH}11H]H3H=wL+H]LeMuH5wM4$L迿HLAHUH}1HEH}tH}tH}HEHѩHEHtlHhH(ͩH쫨HcH u#H}tHuH}HEHP`ЩKҩЩH HtөpөHEHLLLH]UHHd$H]LeLmLuH}HuH~.LmLeMuH5ywI$H腾LLm1LeMuxH5IwM4$LUHLAH}1H}tH}tH}HEHPpH]LeLmLuH]UHHd$H]LeLmLuH}.HtSH} HLmLeMuH5wM4$L訽LHAH}HH}H]LeLmLuH]UHHd$H]LeLmLuH}HtSH}HH}TH}{HLmLeMu&H5wM4$LLHAH]LeLmLuH]UHHd$H}HuHH tHEH HuGH]UHHd$H}HuHH tHEH HuJH]UHHd$H]LeLmH}HuHEH@`H;EtjLmH]Hu3H5wL#LLA$HUHEHB`LmH]HuH5wL#LֻLA$H]LeLmH]UHHd$H}HHp`H=Ew蠮H]UHHd$H}HHxEEH]UHHd$H]LeLmLuH}HuH}vH;ELmLeMuH5wI$HLt[HEHHHH9u6LmH]LeMuH5wM4$L觺HLAH}14Lm1LeMuH5\wM4$LhHLAH]LeLmLuH]UHHd$H]UHHd$H]UHHd$Hh}{HEHM{HEH{HEH{HEHT{HEH{HEH>{HEHS{HEH}&11H5GH=ד{11H5GH={11H5GH={11H5GH=‰{11H5GH={11H5GH={11H5,GH=}{11H5=GH=f{y11H5^GH=O{b11H5oGH=8{K11H5GH=!{411H5GH= {11H5GH={11H5GH=܈{11H5GH=ň{11H5GH={11H5^GH={11H5GH=hwH]UHH$pH]H}HufUЉMLELMHE H8H}bHcHHH-H9vE@EEH}HEHUD$HE HD$HEHD$HEH$LMLEMUHuH}U;]H}HcHHH-H9v9|gEfDEEH}$HEHUD$HE HD$HEHD$HEH$LMLEMUHuH}U;]H]H]UHHd$H}HuHUH}E(DuH}HEHUHUHuH}UHuH}uH]UHHd$H}HuHUH}E(DuH},HEHUHUHuH}UHuH}uH]UHHd$H}HuHUH}2EE'uH}HEHUHUHuH}UЈEHuH}5t}tÊEH]UHHd$H}HuUMDEDMH}E0uH}DHEHUDMDEMUHuH}UHuH}uH]UHHd$H}HuHUMH}?E(fuH}HEHUHUMHuH}UHuH}EuH]UHHd$H}HuHUMHuHUH}= H]UHHd$H}HuHUHEHUH}H? H]UHHd$H]LeLmLuL}H}HuUHE@ELeI\$HcEHH9vLcmLI|$vIkL|DuH]LeID$HEHcEHH9vpLcmLI|$/IkHDLH]UHuH}7 [H]LeLmLuL}H]UHHd$H}HuHUMHuHUH}< H]UHHd$H}HuHUHEHUH}HG> H]UHHd$H]LeLmLuL}H}HuUHMLEHE؋@ELeI\$HcUHH9v?LcmLI|$IkHTHUL}H]DeHEHELmIEHEHcEHH9vLcuLI}詏IkHuDLIH}H]1ҋE HuH}6 8H]LeLmLuL}H]UHHd$H}HuHUMHuHUH}: H]UHHd$H}HuHUHEHUH}H< H]UHH$PHpLxLmLuL}H}Hu؉UЉMDEHE@EHE HD$HE(HD$HEH$HEHD$LeI\$HcUHH9vtLcmLI|$3IkHTHUD}]DeHEHELmIEHEHcEHH9vLcuLI}ߍIkHuDEH}H]1ҋEо HuH}G4 HpLxLmLuL}H]UHHd$H}HuHUHEHUH}HH]UHHd$H}HuHUHEHUH}HwH]UHHd$H}HuHUHMLEEHEH}E=fDuH}HEHUHEH$LELMHUHMHuH}UHuH}|uH]UHHd$H}HGH]UHHd$H}HuHEH5HHEHx褵HUHEHBHUH5}HEHx@H]UHHd$H}HuHEHxHu#H]UHHd$H}HuHEHxHu.'H]UHHd$H]LeLmLuL}1iTL=GILMMuzH5;`bM,$LWHLAPHSH]LeLmLuL}H]UHH=Ew+H]UHH$ H}HDž HUHuCHkHcHU1ҾH=֯HϯHEHpH0HHcH(~HEHu5H&6xH8tHEt%HEHH7HpE11*E' H4.xH8 &HH".xH8$HpHHHpH-xH81ҾH=)H"HEHXHXH耐HcHkHEHtHEHH}r(H}HHEHHH}rHEHEHƀHEHH@HA!HHHHHuGHHH@HH1ɺH%HHqEH-GHHEEHEHƀHEHH@H HH[HHHGHH(H@HH1ɺHc$HH4qEH~GHHEEdHEAHEHEHE@H}9'HE @HEHHEHHPHEHHuHEHHH HEHHuHEHHH HEHH uHEHH H HEHH(uHEHH(H HE@ HE**M^HEHHHEHHH HE**M^HEHHHEHHH HE**M^HEHH HEHH H HE**M^HEHH(HEHH(H *MH G^HEHHHEHHH *MHʵG^HEHHHEHHH *MHG^HEHH HEHH H *MHHG^HEHH(HEHH(H HEtHEH'HEHE**M^HEHHHEHHH HE* *M^HEHHHEHHH HE**M^HEHH HEHH H HE**M^HEHH(HEHH(H HEHHEHEHHH HEHHEHEHHH HEHH EHEHH H HEHH(EHEHH(H HEH'H}HEH E} HEHHv*MYH-HUHEHHG*MYH-HUHEHH *MYH-HUHEHH(*MYH-HUHEH*EYH-HUHEH*EYH-HUH}HHtt߬H3H'HpHxHt:EHH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuH:HcHUHEHUH}1TUHEǀHEǀHEǀHEǀHEǀHEǀHEǀHEǀ HEǀHEǀHEǀHEǀHEH}tH}tH}HEH@HEHtlHhH(里HHcH u#H}tHuH}HEHP`목v᪩H Ht蛭HEH]UHHd$H(xHEHmxHEHxHEHuH=vG H]UHH$HLL H}HuHکH}t)LmLeMtةLH0LShHEH}tHUHu趦HބHcHUHELeMt'ةI$H˗H]HUHxH9t,HGHH=@R;HH5H9H}H鐩HE@0HEH@HEH@@HEH@PHEHx8HHEH}uH}uH}HEH権HEHtjHhH(蕥H轃HcHUu%H}uHuH}HEHP`蒨舨HEHtjEHEHLL H]UHHd$H]LeLmH}HuH(ةH})LeLmMtz֩I]HLHEHXLmLeMtI֩I$H함LH}HtH}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmH}H שHE@HLLmLeMtթI$HLLHEHXH}H]LeLmH]UHHd$H]LeLmLuH}H(GשHE@H H}HEHXHE`XHE@ H} thH}L HIIMtԩMuL苔LAH} HIIMtԩMuLWLA LmLeMtԩI$H-LH}{H}btCH} L LeLmMt8ԩI]HܓLL)H]LeLmLuH]UHHd$H]LeLmLuH}H(թHEHH}@O H}t4H} HIIMtөMuL6LA@HE@XLuLeMtZөM,$LL@AHE`XHE`XHE@ H]LeLmLuH]UHHd$H]LeLmLuH}H(ԩHEHcX Hq4өHH-HH9vҩHEX HEHHHH9tH}[H}xH}@ H}ht4H} HIIMtDҩMuL葨LA(LeLmMtҩI]H辑LH]LeLmLuH]UHHd$H]LeLmLuH}H(өHE@HH H}t4H}HIIMtѩMuL/LA0LmLeMtaѩI$HLH]LeLmLuH]UHHd$H]LeLmLuH}H(өHEHt4H}<HIIMtЩMuL{LA8LmLeMtЩI$HQLH]LeLmLuH]UHH$`HhLpLxLuL}H}HDҩHEHUHu芞H|HcHUH}@HEx0}FHEDx0HELp(H]HEL`(MtϩM,$LwHLDAH}HHEHx(u6LeLmMtϩI]H(LHEHx(҈HEHxu6LeLmMtAϩI]H厨LHEHx菈H}HE@0H}u HuH}E耠H} HEHtHhLpLxLuL}H]UHH$@HHLPLXL`LhH}HuH} HaЩHEHUHu觜HzHcHUH}H5MGHtHE@0EHE@0H}xH}HIIMtͩMuL~LA:HELp(AH]HEL`(MtͩM,$L8HDLALuLeLmMt`ͩI]HLL0E}u}}wHELx(DuH]HEL`(Mt ͩM,$L诌HDLALuLeLmMt̩I]H{LL0HUB0HGHH= xHH5H윩 HEUP02H}HIIMt]̩MuLLAH}uHELp(LeHELh(Mt̩I]H赋LLHU;B0uLuLeLmMt˩I]HwLL0E}|]HEHxHDžp HpHH5GH}|HUHH=rx赎HH5H賛HEUP0LeLmMt5˩I]HيL諜H} H}HEHtHHLPLXL`LhH]UHH$pHpLxLmLuH}H̩HEHUHuᘩH wHcHUu`LuLeLmMtVʩI]HLLpLuLeLmMt&ʩI]HʉLL虛H}HEHtHpLxLmLuH]UHHd$H}HuUHMH(˩EHEEH]UHHd$H]LeLmLuL}H}HuHH_˩H]HtH[HH-HH9vUɩ؉HUL}H]HH}ILmH]HtȩHIL蠈LLLEA$EEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H@ʩHEHEH(G@H5HEHxtH}|Ht,H.GHH=R{HH5HyH}@HEL}ILmH]HtǩIL蒇LLLA$HUHBHEH@HEHEH]LeLmLuL}H]UHHd$H}HɩHE@XEEH]UHHd$H}@uHSɩHEH :Eub}u.HYGHH=+xnHH5Hl,H[GHH=x@HH5H>H]UHHd$H]LeLmH}H(ȩHEH u HEHHEHxHt/LeLmMtnƩI]HLHE HEH@HHEHEH]LeLmH]UHHd$H}@uHUH}BHxȩHUHuTH|rHcHUlH}:Eu\H}t*}uH}H59G H}H5WGHUHH=xӈHH5HѕH}SHEHtuH]UHHd$H}H7ǩH]UHHd$H}HǩH]UHHd$H}HƩHxHEHEH]UHHd$H]LeLmH}H(ƩELmLeMtĩI$HDL8E}EEEH]LeLmH]UHHd$H]LeLmLuH}H07ƩHEHxtHH=QRHUHBHEH@HEHEL`HELhMtéI]H苃Lt4HELpLeLmMtéI]HTLLHEH]LeLmLuH]UHHd$H]LeLmH}H(KũLmLeMt7éI$HۂLHEEH]LeLmH]UHHd$H]LeLmLuH}H`ĩEH}gHIIMt©MuLVLA_H}lHHuHHEHEHEHEH]Lcc HcCI)q©LH-HH9vZ©DeEH]LeLmLuH]UHHd$H]LeLmLuH}H`éEH}wHIIMtMuLfLA^H}|HHuHHEHEHEHEH]LccHcI)qLH-HH9vkDeEH]LeLmLuH]UHHd$H}HéHEHx@tHUHH= x(HUHB@HEH@@HEHEH]UHHd$H]LeLmLuH}HuH0©HEHLuLeMtxM,$LLHAxH]LeLmLuH]UHHd$H]LeLmLuH}HuH0©HEHLuLeMtM,$LLHApH]LeLmLuH]UHHd$H]LeLmLuH}H0HE@0E}|BH}HIIMtgMuL LAEEH]LeLmLuH]UHHd$H]LeLmLuL}H}HuH@HEH#|H}H,PH}aHEH}AHEILmH]Ht薾L#L;~LLDA$H]LeLmLuL}H]UHHd$H]LeLmLuH}H07HEHx(tHH=aWHUHB(HEH@(HEHE@X tHEHXHELp(LeLmMt̽I]Hp}LLHEL`(HELh(Mt蘽I]H<}L H}LeLmMt_I]H}L(HEH]LeLmLuH]UHHd$H}HHE@XEEH]UHHd$H}H義HE@XEEH]UHHd$H}HuH賾HUHEHBHH]UHHd$H}H臾EEH]UHHd$H}HWEEH]UHHd$H]LeLmLuH}H0HEHxPtHH=lQwJHUHBPHELpPH]LeMtӻM,$Lw{HLA HEH@PHEHEH]LeLmLuH]UHHd$H]LeLmLuH}uH0dHE@H}|EH}HIIMt(MuLzLA2DuLeLmMtI]HzLD@,H“GHH=w~HH5H H]LeLmLuH]UHHd$H]LeLmLuH}uH0dDuH]LeMtLM,$LyHDAPH]LeLmLuH]UHH$PHXL`LhLpLxH}uH˻HEHUHuH9fHcHUHE@0;EtH}@ H}IMMMt]I$HyL}tH}H5SG}}H}IMMMtI$HxL;EIH}sINjEHELmLMMt賸M4$LWxHLEA,HGHH=w{HH5HLjHuH}LmLeMtFI$HwL,HGHH="we{HH5Hc莉H}HEHtHXL`LhLpLxH]UHHd$H]LeLmH}@uH(臹HEH{:EuOH}@LeLmMtTI]HvL}u HEHXHE`XH]LeLmH]UHHd$H]LeLmLuH}HuH0㸩HE@HdLuH]LeMt輶M,$L`vHLAH]LeLmLuH]UHHd$H]LeLmLuH}H(WHEx0|IH}HIIMt-MuLuLAH}H]LeLmLuH]UHHd$H}HǷH]UHHd$H}H觷H]UHHd$H}H臷H]UHHd$H}HgH]UHHd$H}@uHCH]UHHd$H}HH]UHHd$H}HHE`XH]UHHd$H]LeLmH}H 軶HEHxu1HEL`HELhMt蒴I]H6tLH]LeLmH]UHHd$H}HuHCH]UHHd$H}HuHH]UHHd$H}HuH㵩H]UHHd$H}HuH賵H]UHHd$H}H臵H]UHHd$H}HuH}HxZHUHu訁H_HcHUuE蹄H}HEHt2EH]UHHd$H}H紩EEH]UHHd$H}uH贴H]UHHd$H}H致EEH]UHHd$H}uHTH]UHHd$H}HuH#HEHHpH]UHHd$H}HuH㳩HEHH0H]UHHd$H}HuH}H蚳H}H]UHHd$H}HuHcHEHHH]UHHd$H}HuH#HEHHpH]UHH$`H`LhLpLxH}HuH}H踲HUHuH.]HcHULeLmMt{I]HpLHIIMtQMuLoLA'HEHEHE HuHH=G蘁H}HEHtH`LhLpLxH]UHHd$H}HuHUH}H裱HUHu}H\HcHUuEH}YHEHt{EH]UHHd$H}H7EEH]UHHd$H}HEEH]UHHd$H]LeLmH}H ˰HEHu H}HEHxP3iHEHxu HEHxiHEHx@u HEHx@hHEHx(u6LeLmMtNI]HmLHEHx(gHEHxu6LeLmMt I]HmLHEHxYgH]LeLmH]UHHd$H}H路EEH]UHHd$H}H臯EEH]UHHd$H}HWEEH]UHHd$H}HP'HEH@ HtH@HHtHEH5wHEHx HMHLAdHTHEHUHEH$HEHD$AdHHEHUHMLEH7GHjA|SHHEHUHEH$HEHD$A|SHHEHUHMLEHGHAdHfHEHUHEH$HEHD$AdH0HEHUHMLEHGH|H]UHHd$H]LeLmLuH}؉uUMDEHh:EEȋEELcuHEH@HXHEH@L`MtM,$LjHAHcLqBI*HބG^H-HH-HH9vЪ]LcuHEH@HXHEH@L`Mt腪M,$L)jHAHcLqI*H]G^H-HH-HH9vO]HEHUH]LeLmLuH]UHH$`H`LhLpH}؉uHUHMLEH}H贫HUHuxH*VHcHxuoHELhMe HcEHH9v舩Hc]HI} HGHkLIHUH(HHEHC,HEHC4HEHCzH`LhLpLxL}H]UHHd$H]LeLmLuL}H}HuH8迨HEH HEx(uEHELxHEIƻHEL`MtM,$L#fLLA9HELhH]HELpMtBM&LeHLA$XH]LeLmLuL}H]UHHd$H]LeLmH}HuHUHX㧩HEH}HE}}GLmMe HcEHH9vȥHc]HI} CHkLH}It,HHHEHxttt,HUHEHHEHBHUHEHBHEHBHEHE@HEUЉPHEỦP HEU؉PHc]HcEH)qUHH-HH9vHEXHUEBHc]HcEH)qHH-HH9v踤HEXEH]LeLmH]UHHd$H]H}H8SHEHuHHc]H}HurHcEH)q脤HH-HH9v']EH]H]UHHd$H]LeLmLuL}H}HuH@迥HEH HEx0uHEHp4H}HEx(uNH}HEHEDx,HEILmH]HtPL#LbLLDA$8HELhLuHEL`MtI$HbLL`HEH8t HuH}H]LeLmLuL}H]UHHd$H}HuHx裤HEHUHupHOHcHUuBHEx0uHEH}Hp`HHH}HuUHUHuH}sH}HEHt8uH]UHHd$H]H}H8HEHuH#Hc]H}HuHcEH)q$HH-HH9vǡ]EH]H]UHHd$H}HwHEHHEH@HEHEH]UHH$`H`LhLpLxH}HuHHEHUHuWoHMHcHUEHEHX HtH[HHqHH-HH9v輠}|EEELuMn HcUHH9vLceLI~ ?>IkLItH}hH}HutEE;]~qH}ݨHEHtsEH`LhLpLxH]UHHd$H]LeLmH}H`諡HE@0HEHx`HuHHHE؀x(tBHHuHHHEL`HELhMtTI]H^LH]LeLmH]UHH$H0L8L@LHLPH}HuHڠHDžhHUHxmHBKHcHpHEЀx0uHEHp4HhHhH}HHtjHEЀx(tYHEHx`5tFHEHHp`HHHEL`HELhMtI]H]L3H}[ILuLMMtҝM,$Lv]HLAuH}HhHhH}oHubHEЀx(uHuH}HUЉB,8HELpLeHELhMtFI]H\LLhHE@0cHEH`HDžX HXHH5!wGHhHhHH=w#`HH5H!mLnHhڨHpHtoH0L8L@LHLPH]UHH$ H L(L0L8L@H}HuHUH&HDžXHUHhfjHHHcH`HEx0uKHEHp4HXHXH}HtHEH}Hp`HHH}H AH}ILuLMMt^M,$L[HLAuHEx(uHUHuH}ECHELxLuH]HEL`MtM,$LZHLLAEă}}H}HuHHcHEHPHDžH HHHH5tGHX胱HXHH=vw]HH5HjcHEHPHDžH HHHH5RtGHXHXHH=wT]HH5HRj}kHXרH`HtlH L(L0L8L@H]UHHd$H]LeLmLuH}H(wHEL`HELhMt[I]HXLtH]HEHxo;CuHEHxHEL`HELhMtI]HXLHE@(HELpHEL`HELhMt軘I]H_XLLHEL`HELhMt臘I]H+XLt H}HEHxHUBH]LeLmLuH]UHH$HLLH}HuHUHH}t)LmLeMtחLH|WLShHEH}tHUHufH*DHcHUHEH}t,HrGHH=TRZHH5HgH}H^PHE@HEHUHPHH=Q%HUHBHEHx0HPC=HEHx4HqGH(XWHEH}uH}uH}HEH8hHEHpHhH(dH CHcH u%H}uHuH}HEHP`ghigH HtjjHEHLLH]UHHd$H]LeLmH}HuH(חH})LeLmMt躕I]H^ULHEHx(PH}HOH}uH}uH}HEHPpH]LeLmH]UHHd$H}HuH3HEH8uHEH8Hp8H}kӨHEH@H}UӨH]UHHd$H]LeLmH}H(˖HEH8uVH}5?HEHtWH]UHHd$EH0vE-=w}mH]UHHd$HK-wm]EH]UHHd$f}Hf}.vEHHHHEREHHHHtEHHdHHuEHHHHtEEEH]UHHd$f}fufUHPof}r f}'w/HaGHHH=URFHH5HSf}r&EH qsfEEHq`fEfEf=?f-t[f-f-tKf-tf-f-v1f-t^f-t%f-tRf-f-vf-kf}r f}wH`GHH=TREf}r f}wH`GHH=qTR|EfEf=rRf-f-vf-t@XEHqZHHHHuHH`GHH=TREH,`GHH=SRE,H8`GHH=SRDHH5HQ}}fMEHqȁHEmH_G(m}m̛EHlq蛁H*H_GYH,HUq{EHqmH*H_G\EE}mH]UHHd$f}fufUHX迂f}r f}'w/H^GHHH=RRCHH5HPf}r&EH qÀfEEHq谀fEMH ףp= ףHHHH?HʉUfEf=of-t[f-f-tKf-tf-Ef-v1f-t^f-t%f-tRf-#f-vf-kf}r f}wH^GHH=QRBf}r f}wH]GHH=QRBfEf=~f-f-v f-t i~EHHHHuEHHdHHt4EHHHHuHF]GHH=QRBH*]GHH=PRA,H6]GHH=PRAHH5HNHcEHH?HHHHcMHH)q~Hq~U}}fMEHq~HEmH\G(m}měEHlqa~H*H\GYH,HUqA~EHq3~HcUHq%~H*Hq\G\EE}mH]UHHd$f}fufUH0Eu}}mmzsPUu}h}mmzr,H\GHH=`ORk@HH5HiMmH]UHHd$f}fufUHP~HwHH$fBfD$Uu}}mH]UHHd$H}HuHUHP~mzr/H[GHHH=NR?HH5HLmHw[G(}}}fMmm}m̛EEEEHcEHqZ|E}}fMEH1[G(H6[G(m}m̛EE*EHfZGYH,E}}fMHcUHcEH)q{HUmHZG(m}m̛EEHcEHcUH)q{}}fMEHYG*m}m̛H+Eq{HUfHcEH-lqq{HUf}|HcEHqS{HUf/HcEH q;{HUfHEHq"{HUfH]UHHd$H}HuHUHX|mzr/HYGHHH=LR=HH5HJmHYG(}}}fMmm}mțEE*EHYG\HYG^H,EHcEHqOzHcUHqAz*EHUYGYH,H)q"zUHcEHqzE}}fMEHXG(HXG(m}mEE*EHXGYH,E}}fMHcUHcEH)qyHUmHWG(m}mEEHcEHcUH)qly}}fMEHWG*m}mH+Eq=yHUfHcEH-lq%yHUf}|HcEHqyHUf/HcEH qxHUfHEHqxHUfH]UHHd$H}HuHUH8?zmzr/HAWGHHH=XJRc;HH5HaHm mzr$HEH$fEfD$HUHuH}/"HEH$fEfD$HUHuH}H]UHHd$H}HuHUHXyHXwHHD$fBfD$HEH$fEfD$HUHuH}H]UHHd$H0+yHEHUHuH}H VGHbf} w .g_E .N_EE\EHHVGf/ Јw_E^EE\EHUGf/ ˆQwH]UHHd$f}fufUHPxEu} <$EEH]UHHd$EH}HuHUHPwE0<$HEHHuH} H]UHHd$EH}HuHUHMH`vwE<$;!]EHEHHUHuH}7aH]UHHd$EH`&wfowfEf\wfEfIwfEHUHuH}EUu}^]EE<$ E]=wuTHTTGf/Ezw>E<$j zu'E<$S }E<$ m]EH]UHHd$EHH6vfwfEfwfEfqwfEHUHuH}E}EEmaEHcUH H)q%tHHHH*XEEEHFSG\EEH,H*f/EzrEHRG\E>EH,H*\EH-H%I$I$IHHH?HHqsUEH]UHHd$}HHtE=/-/t~.c~9c~A-~Gc~O-~UcEE|EElEE\EELEEHcMH ףp= ףHHHH?HʉUԁ}/| E/HcEHkqnHqnHH?HHHEHcEHk qnH qynHHHUHcEHHHUEHMG(HMG(*EHMGYEEEHMG(E}HcUHkqm}}fMmm}mHUqmHcEHkqmHqmHqmHcUH)qmHHHUHEH$fEfD$}Ẽt ttt0}}fMmm}mHEHqAmE}tN}FmHLG(zv0}}fMmm}mHEHqlE~}tK} CmHLG(zv-}}fMmm}mHEHqlE+}}fMmm}mHEHqhlEЃ}'HcUHqNl}EU}EEH]UHHd$f}H0mEH-qkE}HqksM\H-EEEfEEEHUw;EtEE}sEH]UHHd$f}fufUH@lE4Ef}r f} w,HVIGHH=}HqhvHHGXEEHqhHUfEHqhHUfHE8hEHEfHUE\EHGGXH-f]HEHk MHwHTHHEH)qhHUfHEHH HHqgHEfHEHk MHuHwHfDHf;xH]UHH$HEH}HuH!iEHpGG(HuGG(}mHGG(HGG(mHiGG(mHIGG(<$s$}mHGG(HGG(mHeGG(mHEGG(<$s$}mHGG(HGG(mHaGG(mHAGG(<$Es$}mHGG(H}GG(mH]GG(mH=GG(<$s$}mHGG(HyGG(mHYGG(mH9GG(<$r$۽pHE8۽0Dž\D\\\HkHw,ۅ,mɋ\HkHҽwD,ۅ,m\HkHwD,ۅ,m\HkHwD,ۅ,ۭp\HkHTwD,ۅ,m۽`H]H`H$fhfD$o$\HwDmH)FG(ɋ\Hw+HE8H`H$fhfD$o$\HNwDmHEG(ɋ\H-wۭ0۽0\}RHEHEG*(HEG(HE8ۭ0H{EG(HEG(۽0mHEG(HEG(mHqEG(mHQEG(۽@ۭ0ۭ@H"EG(HE8HH]UHH$pEHeH9wHEf6wfEHwHEfwfEE:}mHCG(H"CG(}HuH}EIHEH$fEfD$n$mmHDG(HDG(mmmHBG(HDG(HDG(<$;o$}mH]UHH$0H}EHcHUwHEfRwfEH/wHEf,wfEHuH}EnHEm(<$n$HE8HEHH$f@fD$l$}HEH$fEfD$l$m}HEHPH$f@fD$m$۽pHEH$fEfD$ul$ۭpm}HEHH$f@fD$l$|$HEH$fEfD$m$}HUHBH$fBfD$Ul$۽pHEH$fEfD$k$ۭp۽pHEHH$f@fD$k$ۭp۽pHEHPH$f@fD$k$۽`HEH$fEfD$k$ۭ`ۭp<$l$}HUHEHB0fEfB8HUHEHB@fEfBHH]UHH$`H}EHaEHEh0m<$l$}HEH$fEfD$j$}HEH$fEfD$ k$}HE H$fE(fD$j$m}HUHB@H$fBHfD$k$}HE H$fE(fD$j$mm|$HEH$fEfD$"k$HExpHE H$fE(fD$uj$}HEHP@H$f@HfD$Xj$m}HEH$fEfD$:j$m}HE H$fE(fD$i$}HEHP@H$f@HfD$i$mm<$j$HEx`H]UHH$ H}EH<`EH>G(H>G(}mH@G(H@G(mHd@G(}mH@G(H@G(mHh@G(}mH@G(H@G(mH|@G(mH\@G(}HEH$fEfD$h$mH@G(Hz@G(mHZ@G(۽@mHt@G(<$hh$mH~@G(Hc@G(ۭ@۽@mHu@G(<$)h$HR@G(ۭ@}mm<$i$۽pmm}HEH$fEfD$h$mmmH@G(H@G(HEx mH=G(HG(}m}EQH:;G(H>G(H>G(}mH>G(H>G(mm}mH>G(}HEH$fEfD$e$}HEH$fEfD$e$mH>G(m}mH>G(m}HEH$fEfD$#g$HE8HUHEHBfEfBHUmH=G(z H}EH]UHH$H}EHp[EH9G(H:G(}mH>G(H=G(mH=G(mH=G(mH=G(}mH>G(H=G(mH=G(mH=G(}mH>G(H=G(mH=G(mH=G(mH=G(}mH>G(H>G(mH=G(mH=G(mH=G(}mH=G(H=G(m}mH>G(H=G(mH=G(mH=G(mH=G(۽pmH=G(H=G(۽ mH=G(H=G(۽mH=G(H=G(۽۽`DžfDHwۅmɋHwDۅmHwDۅmHwDۅm<$Xb$HKw۽0HSwDIƒtmۭ0۽0H"wDIƒtmۭ0m۽0ۭ0ۭ`۽`;}۽PDžDHwۅmɋHwDۅmH]wDۅmH8wDۅm<$`$H۳w۽0HwDIƒtmۭ0۽0H°wDIƒtmۭ0m۽0ۭ0ۭP۽P;}H H$f(fD$_$H;G(ۭP۽mۭp<$_$H:G(ۭ۽HH$ffD$_$H:G(ۭ۽P۽@DžHwۅmɋHzwDۅmHUwDۅmH0wDۅm<$^$HӲw۽0HwDIƒtmۭ0۽0HwDIƒtmۭ0m۽0ۭ0ۭ@۽@;}HpH$fxfD$^$H<9G(ۭ@۽HH$ffD$]$H9G(ۭ۽mۭ <$]$H8G(ۭ۽mۭ <$v]$H8G(ۭ۽mۭp<$J]$H8G(ۭ۽mۭp<$]$H8G(ۭ۽@ۭPH8G(ۭp۽ۭ@Hi8G(۽ۭ`Hr8G(HW8G(۽HUHHB ffB(HUHHffBHUHHBffBH}EH]UHH$PH}EHRHEH$fEfD$\$H7G(<$]$}HEH$fEfD$[$H7G(}HEH$fEfD$[$m0H7G(m}HEH$fEfD$[$m0H^7G(}HEH$fEfD$[$m}E$H3G(}H(7GHH$fBfD$#[$m<$6\$HExPEm HEh0}HEHPPH$f@XfD$Z$m}HEH$fEfD$Z$m}HEHP@H$f@HfD$Z$m}m۽pHEHPPH$f@XfD$mZ$ۭp۽pHEH$fEfD$IZ$ۭpm<$[$}HEmh0HEx0HUHBPH$fBXfD$Z$m}HUHB@H$fBHfD$Y$m}HEH$fEfD$Z$m}HEHPPH$f@XfD$Y$m۽pHEH$fEfD$Y$ۭp۽pHEHP@H$f@HfD$Y$ۭpm<$Z$HEx@H]UHH$PE@}HuHUHMLELMHOE-?wH.G(H4G(߽xxEE-wH-G(}E<$sE*H4GYx݅xHE8HUHo4G(*}mH4G(H4G(mHa4G(mmHE(H4G(Hk4G(HE8mH4G(Hj4G(mmHE(H4G(Hd4G(HE8HUmH4G(Ho4G(mHO4G(mmHE(Ht4G(HY4G(:HUmH4G(Hh4G(mHH4G(mmHE(Hm4G(HR4G(:HUmHl4G(HQ4G(mmHE(Hf4G(HK4G(:HUmH1G(HJ4G(m:H]UHHd$E@}HXBMEEEH4G(H4G(}HEHEEFm}mH3G(zrmH3G(}Em]mH3G(zwEH]UHH$`E@}H|LH5wHPf/wfXH wH`fwfhHݪwHpfתwfxHwHEfwfEHwHEfwfEHewHEfbwfEH?wHEf0G(ۭ۽H`H$fhfD$>Q$H0G(ۭ۽mH)G(m<$ Q$H/G(ۭ۽mH(G(ۭpH(G(<$P$H/G(ۭ۽mH(G(<$P$H/G(ۭ۽ۭpHs(G(mm<$]P$Hf/G(ۭ۽mH:(G(ۭpH)(G(<$P$H$/G(ۭ۽ۭpH'G(mm<$O$H.G(ۭ۽ۭpH'G(mm<$O$H.G(ۭ۽ۭpH}'G(mm<$gO$H.G(ۭ۽mH'G(m<$3O$HL.G(ۭ۽mH@.G(<$O$H.G(ۭ۽@ HEH$fEfD$N$H .G(۽HEH$fEfD$N$ۭPH-G(ۭ۽mm<$xN$ۭPH-G(ۭ۽mHM&G(<$AN$H-G(ۭ۽ۭpH&G(<$N$H-G(ۭ۽mm<$M$ۭPHi-G(ۭ۽mH%G(<$M$ۭPHB-G(ۭPۭ۽ۭpHy%G(m<$hM$H-G(ۭ۽ۭpHB%G(m<$1M$H,G(ۭ۽mHN%G(<$M$H,G(ۭ۽mH$G(m<$L$ۭPH,G(ۭ۽ۭpH$G(m<$L$ۭPHr,G(ۭ۽ۭpHa$G(m<$PL$ۭPH3,G(ۭ۽mH%$G(m<$L$ۭPH,G(ۭPۭ۽mH#G(m<$K$ۭPH+G(ۭ۽H`H$fhfD$K$Hl*G(ۭ۽ۭpHm#G(mm<$WK$Hp+G(ۭ۽mH4#G(ۭpH##G(<$K$H*G(ۭ۽ۭpH"G(mm<$J$H)G(ۭ۽mH"G(m<$J$H)G(ۭ۽ۭpH"G(mm<$iJ$Hr)G(ۭ۽mH"G(<$:J$HC)G(ۭ۽mH"G(ۭpH"G(<$I$H)G(ۭ۽ۭpH!G(mm<$I$H(G(ۭ۽mH!G(m<$I$H(G(ۭ۽@HEH$fEfD$I$ۭPH (G(Ho)G(۽HEH$fEfD$_I$HX)G(ۭ۽mm<$6I$H(G(ۭ۽mm<$ I$H'G(ۭ۽ۭpH G(<$H$H'G(ۭ۽0}tۭ0ۭ@۽@ۭ0ۭ@۽@lHEH$fEfD$5H$H~(G(۽HEH$fEfD$H$ۭPHa(G(ۭ۽mHG(<$G$H@(G(ۭ۽ۭpHG(<$G$H(G(ۭ۽mm<$|G$ۭPH'G(ۭ۽mm<$KG$ۭPH'G(ۭ۽mH G(<$G$ۭPH'G(ۭPۭ۽ۭpHG(m<$F$HF%G(ۭ۽ۭpHG(m<$F$H%G(ۭ۽mHsG(m<$bF$ۭPH$G(ۭ۽mHwG(<$+F$H$G(ۭ۽ۭpHG(m<$E$ۭPH$G(ۭ۽ۭpHG(m<$E$ۭPHh$G(ۭ۽mHG(m<$yE$ۭPH<$G(ۭ۽H`H$fhfD$"G(<$C$H"G(ۭ۽@۽@mH#G(mmH#G(H#G(۽mH#G(H#G(۽mH#G(H#G(۽mH#G(H#G(۽mH#G(H#G(۽mH#G(H#G(۽mH#G(H#G(۽mH#G(H#G(۽mH#G(H#G(۽mH#G(H#G(۽mH#G(H#G(۽mH#G(H#G(۽mH#G(H#G(۽mH#G(H#G(۽HH$ffD$@$H#G(۽HH$ffD$@$Hh#G(ۭ۽HH$ffD$@$HC#G(ۭ۽HH$ffD$e@$H#G(ۭ۽HH$ffD$0@$H"G(ۭ۽HH$ffD$?$H"G(ۭ۽HH$ffD$?$H"G(ۭ۽HH$ffD$?$H"G(ۭ۽HH$ffD$\?$He"G(ۭ۽HH$ffD$'?$H@"G(ۭ۽HH$ffD$>$HG(ۭ۽HH$ffD$>$H!G(ۭ۽HH$ffD$>$H!G(ۭ۽HH$ffD$S>$H!G(ۭ۽ ۭ ۭ@۽@ۭ@m<$sEEH]UHHd$E@}H(4Et,t/,t,t',t,t,t,t*}EE#}EEHGHHEEH]UHHd$E@}H04EH GXEHEHEm}E"EHvGf/Ezt,H GHH=wHH5HEH/ G\EEf/EzwEH]UHHd$E@}H0B3EHG\EHEHEm}EREHGf/Ezt,HGHH=҅w-HH5H+EH_GXEEf/EzrEH]UHHd$EH(v2EHEG(H:G(}HEHHHUEH]UHHd$EHH2fwfEfwfEfwfEfΐwfEfwfEfwfEEHXG\EEm]@EH4GXEE,EEm]EHUHuH}vf}wBEH@G\EEm]EHUHuH},fEfEf;EtUHEHEEH]UHHd$EH@0<$EEEH]UHHd$Љ}H00HcEHq.HEmH[G(-1wHhG(]EEES\EEEHG(EEH]UHH$EH/EHPH\EHHH$ffD$/9$۽ۭPۭ<$9$ۭ<$8$۽ۭۭpۭۭۭp۽ۭzr%ۭHG(HG(}ۭHG(}ۭPۭ<$9$HG(zrm}mH]UHH$EHP.EHPH EHۭPۭ<$u9$HnG(H3G(}mH]UHHd$EHP&.E <$7$HI G(}mH]UHHd$EH(-EEE-wwHG(}HEHq+EEH]UHH$PEH`-EH`HHG(m}mH]UHH$PEH-EH`H,HEHEfEfEmH]UHH$PEH,EH`H,HEG(mHG(H G(}mH]UHH$PEHP,EH`HlmHbG(Hg G(}mH]UHH$0E@}H+E-wH: G(HG(HG(߽P߭P}}umHG(}mHG(}mH G(HG(mHG(mmmHG(HG(}mH G(HG(mHG(mmmHG(HG(}mHG(HG(mmmHG(HG(}mHG(HG(mmmHG(HG(۽p۽`}uDž\f\\\HkH wTۅTmɋ\HkHwDTۅTۭp\HkHΈwDTۅTm<$2$\HwDH&G(mɋ\HwHF G(ۭ`۽`\}Dž\\\\HkHwTۅTmɋ\HkHZwDTۅTۭp\HkH.wDTۅTm<$1$\HwDH&G(mɋ\HwHFG(ۭ`۽`\;}ۭ`m<$ߡEEH]UHHd$EH((EHG\EHEHE.E@EEHrGXEEf/EzrEH]UHHd$EH('EHG\EHEHE.E@CEEHGXEEf/EzrEH]UHHd$E@}Hx&E-y{wH@G(HuG(HzG(}m}}umHG(}mHyG(H^G(mH>G(}HEH$fEfD$EEH]UHHd$EH(6&EHG\EHEHE.E@EEHGXEEf/EzrEH]UHHd$EH(%EHG\EHEHE.E@cEEHRGXEEf/EzrEH]UHH$}@uH%EHcHkq\#H(߭(}EЉ,ۅ,HG(HG(HG(HG(]HGf/Ezr-Hc}Hq" XEE}غ XEEEH09fۭ0m<$e-$HnG(E]EH0HEHD$fEfD$H0H$f8fD$H H'G(zrEH]UHHd$H}H@#mm <$.$}mHZG(zrmHtG(}mH]UHHd$Љ}@uH(4#HGHHEEtJ,t ,t,t*P}E<}E(} E}EEH]UHHd$}H"HcEHq Hkq Hq EHcEHHHUEH]UHHd$EH06"f?wfEf,wfEfwfEHUHuH}E}?@@}EEHs+ fEf} wEHs fEfEEf/EzsEH]UHHd$EH0f!fwfEftwfEfawfEHUHuH}E?}o@@}EEHq[fEf}rEHq>fEfE Ef/EzrEH]UHH$E@}@uH E,v5,,, ,,, }u!HGHHfBfEH0BH H0HH|$ HE HD$fE(fD$HEH$fEfD$EH ۭpH3G(H8G(۽bH5GHHf@fDH'GHHfBf&HGHHfBf۽E<$?ɧ}mݝ۽}umݝ((H0dH H0HHmݝ((H0/HH0HHmݝ((H0H H0HHmݝ((H0hH H0HH|$ HE HD$fE(fD$HEH$fEfD$mݝ((H mݝ((H0HH0HH|$ HE HD$fE(fD$HEH$fEfD$mݝ((H[mݝ((H0jH H0HH|$ HE HD$fE(fD$HEH$fEfD$mݝ((H HEH$fEfD$&$۽HH$ffD$%$ۭ۽HH$ffD$%$ۭ۽HEH$fEfD$%$۽HH$ffD$%$ۭۭ۽ۭH G(zwۭzw,H GHH=mw%ݽHH5H#HH$ffD$G&$۽m ۭۭHG(۽ۭHG(ۭ۽ۭHaG(ۭ۽HH$ffD$ħ۽ۭzrۭ۽HH$ffD$ħ۽ۭzrۭ۽HH$ffD$kħ۽ۭzrۭ۽HH$ffD$Hۭ۽HH$ffD$Hۭ۽HH$ffD$H{ۭ۽Et,t$,t0,r<,v,,v0ۭm].ۭm]ۭm]H'FHHEEH]UHH$H}uHNHEHD$0fEfD$8HUHPHD$ fXfD$(HEHHT$ffD$HEHPH$fXfD$H}}HEHD$0fEfD$8HEH`HT$ fhfD$(HEHHT$ffD$HEH`H$fhfD$H}}HEmH~G*ۨHEh m<$L#$۽pۭpH F(zrۭpH G(۽pHUHBH$fBfD$l!$۽PHEH$fEfD$P!$ۭP۽PHpH$fxfD$&!$ۭP۽PHUHBH$fBfD$ $۽@HEH$fEfD$ $ۭ@ۭP<$!$۽`Et~ ۭpH#G(}HEH$fEfD$q $HG(۽PHEHPH$f@fD$F $ۭP۽PHpH$fxfD$$ۭPHEۭ`ۨ}}mH]UHHd$H}HPGmm }m m0}mHWG(zrmH!G(}mH@G(zwmHG(}mH G(zrmHG(}mHG(zwmHG(}mm}mm@mmm@HF(m }mH]UHHd$EH`6HE HD$fE(fD$HEH$fEfD$Eؾ@QEEH]UHHd$EH`HE HD$fE(fD$HEH$fEfD$Eؾ@EEH]UHHd$EH`vHE HD$fE(fD$HEH$fEfD$Eؾ@EEH]UHHd$EH`HE HD$fE(fD$HEH$fEfD$Eؾ@1EEH]UHHd$EH`HE HD$fE(fD$HEH$fEfD$Eؾ@EEH]UHHd$EH`VHE HD$fE(fD$HEH$fEfD$Eؾ@qEEH]UHHd$EH`HE HD$fE(fD$HEH$fEfD$Eؾ@EEH]UHHd$EH`HE HD$fE(fD$HEH$fEfD$Eؾ@EEH]UHHd$EH`6HE HD$fE(fD$HEH$fEfD$Eؾ@QEEH]UHHd$EH`HE HD$fE(fD$HEH$fEfD$Eؾ@EEH]UHHd$EH`vHE HD$fE(fD$HEH$fEfD$Eؾ@EEH]UHHd$EH`HE HD$fE(fD$HEH$fEfD$Eؾ@1EEH]UHH$H}@uHPH6twH`f0twfhH twHpftwfxHswHEfswfEHswHEfswfEHswHEfswfEHlswHEfiswfEHFswHEfCswfEȀ}u?H`HD$HpH$HELMLEHMHUHuҿ=H`HD$HpH$HELMLEHMHUHu蓿mHF(۽PHEH$fEfD$$HF(zr EE HpH$fxfD$_$HxF(m۽@ۭPHF(ۭPmHF(HF(۽0}ubHEH$fEfD$$HF(m۽HEH$fEfD$$ۭ`HF(ۭ}`HEH$fEfD$$HF(m۽HEH$fEfD$c$ۭ`HF(ۭ}mH;F(<$/$HF(m۽ۭ@H F(<$$HyF(ۭ۽mm<$$ۭ`HZF(ۭ۽mm<$$ۭ`H9F(ۭ۽ۭ@HxF(m<$g$HF(ۭ۽mHDF(<$8$ۭ`HF(ۭ۽ۭ@H F(m<$$HF(ۭ۽mHF(m<$$ۭ`HF(ۭ۽mHF(<$$HWF(ۭ۽ۭ@HhF(m<$W$ۭ`H:F(ۭ۽H0H$f8fD$$HF(ۭ۽ۭ@HF(m<$$ۭ`HF(ۭ۽mHF(m<$$ۭ`HF(ۭ۽HpH$fxfD$j$HcF(ۭ}HEH$fEfD$>$ۭ`HAF(۽mHF(<$$ۭ`H"F(ۭ۽HEH$fEfD$$HF(ۭ۽mHF(<$$HF(ۭ۽mm<$$ۭ`HF(ۭ۽mm<$O$ۭ`HF(ۭ۽ۭ@H!F(<$$HnF(ۭ۽ HEH$fEfD$&$ۭ`HYF(HHM~It$H=zfw tiI|$LÅ|VL 9tJLl$H$ ID$H8Ht$ HD$ HD$HD$HHixHxI|$(L#.LLH$ A]A\[SATAUAVH$XHIHDŽ$HDŽ$HDŽ$HDŽ$HD$`HHt$蠽HțHcHT$XLH={wII}(H{@H|$`,HC@H@ HD$hH$I}譨H$H$H$1H$6H$HD$pIcE HxH$H1H$H$601H$ KH$HD$xHt$h1ɺH|$`I0Ht$`LIEH|$`+IcE HxH$H1H$H$601H$JL$H$I}趬H$H$H$1H$5H$1H|$`L,Ht$`LIE LHžH$+H$ +H$*H$*H|$`*HD$XHtH$A^A]A\[H$H|$ Ht$H$HL$LD$H|$uHD$ HT$ HRhHD$ H|$  HT$0Ht$HӺHHcH$uXHD$(HL$HT$H|$ 1HT$ H$HB@HD$(H|$ tH|$tH|$ HD$ H菽H$HtH$H$4H\HcH$u'H|$tHt$(H|$ HD$ HP`+趾!H$HtڿHD$ H$SATAUAVAWHd$IM1H4AE|EAADHAH@(H$LH<$mܻuDHIE9LHd$A_A^A]A\[SATAUAVHd$HIH AAE|/A@ADHHp(LI$PE9Hd$A^A]A\[SATAUAVAWHd$IAHA AE|7AADHQH@(H$LH<$}ۻuEE9DHd$A_A^A]A\[SATHd$HIH{8L7HtMtKPH{8L(Hd$A\[SATAUHd$HIHD$`HHt$巨H HcHT$XM1LH=w+tLH=wHIMteIu(H{('IuHH{H'AEPCPIu0H{0r'Iu8H{8e'IuXH{XX'LHt$`KHt$`H{@=' LHҹ[H|$`&HD$XHtһHd$pA]A\[Hd$HHHp@&Hd$Hd$HHx@&Hd$SATHd$HIH{0L&6HtMtKPH{0L&Hd$A\[H$H|$(Ht$ H$HL$LD$DL$H|$ uHD$(HT$(HRhHD$(H|$(0HT$8Ht$PHFHcH$wHD$0HD$(Hx(Ht$%H$H|$(1HD$(HxHHt$%HT$(D$BPHD$0H|$(tH|$ tH|$(HD$(H跸H$HtH$H$\H脓HcH$u'H|$ tHt$0H|$(HD$(HP`S޹IH$Ht'HD$(H$Hd$HH=wwHd$Hd$Hd$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8mH蕒HcHT$xuYHD$H|$HH$H|$L;w1HD$H|$tH|$tH|$HD$H+HD$xHtH$H$ӳHHcH$u'H|$tHt$H|$HD$HP`ʶUH$Ht螹yHD$H$Hd$HH=Tw痨Hd$SATAUAVHd$HIAIHLII~HL#EnPHd$A^A]A\[SATAUHd$HIHHH=wiIHu&Ld$H$ HHK@HV]xHx1KLHd$A]A\[SATAUAVAWH$pH|$pHt$x$HD$hHHt$3H[HcHT$XM1HD$xHtH@AH|$pAEH|$pIAUPЃu3$tt IEHHD$`H|$xHt$`ԻIuHIcκH|$h3HD$hHD$`H|$xHt$`iԻuVIEHHD$`HtH@IcH9tHL$`HB|;u,Mt$Mt"IWHHtHRIEHHtH@H9~MA9M.H|$h HD$XHt襵LH$A_A^A]A\[SH{HuH{@tH{@HC@HCH[H1H1H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8 H5HcHT$xuHHD$H|$H4w1 HD$H|$tH|$tH|$HD$HܲHD$xHtH$H$脯H謍HcH$u'H|$tHt$H|$HD$HP`{qH$HtO*HD$H$1H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0贮H܌HcHT$puNHD$H=PFHT$HBHD$H|$tH<$tH|$HD$H}HD$pHtpHT$xH$,HTHcH$u&H<$tHt$H|$HD$HP`$诲H$HtӳHD$H$SATHd$HIM~ HHHH{HCHP`H1lHtMt HHPpHd$A\[SATAUAVHd$HIIտ0QIH5 xLҨLLdLI~XH{LHd$A^A]A\[SATAUAVAWIIG@AE|:DL%~ xIILLEӨLA9IA_A^A]A\[SATAUAVAWHd$IH4$IIF@AE|H:tH>HzHH=ѕH評HH辗[HHHd$H<$HHd$SATAUHd$H<$HD$xHT$Ht$ eHdHcHT$`H$HHÃAAH$HHDvIAymAxucAuYAtOLIEt>Ht$xLyWHD$xHD$pHD$h Ht$hH$HHC-xHx18D9_誈H|$xHD$`Ht!H$A]A\[HHHH@tH,wH1wSHd$H|$@4$@HD$xHD$@PtHD$@`,H|$HD$HHD$ǀHD$ƀ HT$Ht$(hHbHcHT$hu.H\$H|$'H|$@0HD$HXQHD$x tH|$HD$H`HD$hHt豈HD$ƀ e<$u_HD$xtQH|$HD$HhH|$1P H|$HD$HH|$HD$H HD$ƀ Hd$p[H$8H<$oHT$Ht$ KHsaHcHT$`uH$x`tH<$@H$HpDHD$`HtHT$hH$HaHcH$u*H$@PtH<$H$H  ㅨnمH$Ht跈蒈H$SATAUAVAWHd$HHttAA ILAEH$@H$4$LHÅ|YHD$DHD$4$LOHNjt$ILI$8D9~LI$8AƋD$9$A9zE;DLHHHHp;}#tuHHCdCdHILAEqH$H$4$LxHÅ|HT$Ht$(pHNHcHT$huH|$HD$HsHD$hHHT$pH$9pHaNHcH$u:HD$pdH|$HD$HH|$1HD$HstsH$HtuuHD$ƀ H|$1ҾHD$HH|$HD$H8H|$HD$HPH$SHd$H<$@HD$HT$Ht$(FoHnMHcHT$h7H$H@p~H$HxHt$H$H@HH$H@pH$H@HHcHH$H@HcHc@dH)HH$H@HHc@dHtH$H@HHc@dHHT$H$HBHD$@HD$HxHD$H|$tH|$tH|$HD$HoVHD$xHtH$H$SH?1HcH$u'H|$tHt$H|$HD$HP`VWVH$HtXXHD$H$HGHSH{tC H{WHC[H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$ HT$ Ht$8 RH50HcHT$xu[HD$H$H|$1H|$gPHD$PHD$pDH|$ HT$HD$@HBHHT$HD$f@4fB4PHD$HxHD$H@H0HD$pHt[RH4$H|$[hHd$xH$H|$H4$HDŽ$HT$ Ht$8OMHw+HcHT$xH|$HD$Hu7HD$H@(H$HDŽ$ H$H'wHx1HHcHT$XuVMuHH(CLH=v#t%LHt$`I$Ht$`HH LHH7HcHT$`THH?HvHcHLH<$H$HLH<$H$HL1H|$hӷHt$hH<$H$HL(\$pD$pH<$H$HL1H|$hHt$hH<$H$HM}HpL1H|$h褷Ht$hH<$H$HFMtLH=~PE!tLH<$H$HH@LH0H<$H$HL;fs$ftf tf u H{uA;E06Ht$ptHH|$pHD$pHtAE0EwLH<$H$HaLH<$H$HKLH<$H$H5LH<$H$HI4$H<$H$HH3>H|$h$HD$`HtE@H$A]A\[H$xH<$HD$xHT$Ht$ G;HoHcHT$`u;H$H8Ht$x HD$xHD$pHD$h Ht$hHwHx1Hw#>H|$xyHD$`Ht?H$SATHd$HAHD$pHHt$:HHcHT$XEHtHtHt Hu7HHt$p HD$pHD$hHD$` Ht$`HwHx1jvHHH+HHHHHNtHHD$XHt_>Hd$xA\[Hd$HH0tH8H0Hd$Hd$HHtHHHHd$Hd$1dHd$Hd$HHH1HHHd$Hd$HH$HH HHHd$HUHHd$H]LeHIHH5?`F HH5HX:H]LeH]UHHd$H]LeHHH5`FHH5H :H]LeH]SATHd$HIH#QL1HH`HcH$H5QHLI<$t1I4$H0ruH$H5ǧQHLHd$A\[Hd$HHC_FYD$D$<$,$Hd$UHHd$H]HHH5._FHH5H8H]H]UHHd$H]HHH5^FqHH5H8H]H]UHHd$H]LeHHH5^F-HH5H{8H]LeH]Hd$HHd$UHHd$H]LeHHH5^FHH5H 8H]LeH]UHHd$H]LeHIHH5W^FjHH5H7H]LeH]Hd$HXHd$Hd$H(Hd$SATHd$HIHD$`HHt$75H_HcHT$XuHHt$`H(Ht$`Lȧ08H|$`膤HD$XHt9Hd$hA\[SATHd$HIHD$`HHt$4HHcHT$Xu#HHt$`H(Ht$`L谬7H|$`HD$XHt9Hd$hA\[Hd$H8Hd$Hd$H<$Ht$H$HxD$HT$Ht$03HHcHT$pu+H$H@Ht$H<$H$H6H$Ht$1HD$pHtB8Hd$xHd$H<$Ht$H$HxD$HT$Ht$093HaHcHT$pu+H$H萫Ht$H<$H$H%6H$Ht$聫HD$pHt7Hd$xHd$H|$H4$HD$HxD$HT$Ht$02HHcHT$pu-HD$HުH4$H|$HD$Hr5HD$Ht$ͪHD$pHt6Hd$xHd$H<$Ht$H$HxD$HT$Ht$01HHcHT$pu+H$H 0Ht$H<$H$H4H$Ht$!HD$pHt26Hd$xSATHd$HxAuTtAuAHtHߩtAE0EtHHHADHd$A\[SATAUH$HIH$HDŽ$hHT$Ht$ 0HHcHT$`H;H$h-!H$hH=XFWIIH;H$h H$hH|$hLUHt$hH1HHtLHXFHD$hH4$H$hJH$hHD$pHXFHD$xHt$hL1ɺ芣JHqXFHD$hH4$H$hIH$hHD$pHgXFHD$xHt$hL1ɺ>2H$hHHD$`Ht4H$pA]A\[Hd$Hd$SATAUAVHd$HIAHu)HHD$H$ HHwHx1(kt3HAtHMtCHH`HcHL~#HDLHHH@ADHd$A^A]A\[1 SATHd$HIHtHLHLHd$A\[SHd$HHD$`HHt$-H HcHT$Xu$HHt$`kH|$`HH0H|$`HD$XHt62Hd$p[SHH uH=^v1~H H [SATH$hHH|$x3H|$`3HHt$,H HcHT$XtVHsIHHHt$xHHHT$xHt$`L苀Ht$`HH}HtsHtcHHHt$`HHHL$`LHHHt$xHHHt$xHH#/H|$x2H|$`2HD$XHt0H$A\[Hd$HHtHHˤHd$Hd$H;p`tp`H@0Hd$Hd$HHtHH͟Hd$Hd$HH4$,$HSF*\$D$HHHd$Hd$1Hd$HSATHd$HIHD$`HHt$w*HHcHT$XuHHt$`H(Ht$`LEp-H|$`ƙHD$XHt.Hd$hA\[SH$H<$H$H0H$0y0HT$Ht$()HHcHT$hH$HHHtH@HsHHtH@HZHHtH@HAH$HD$HT$pH$)H-HcH$H$H@H$HHpH$HH$H荞H$HHH$HkH$HH$HH<$Ho{H$HOH$H$5(H]HcH$(H$HJDH$HH$HH$0H$HHH$0H$HH$HH$HH$HHH$HH$H HzH$HIH$HQ|*H$HLH$(Ht+U*H$H@t$H$HHpH$Ht+*H$H-H$0-HD$hHt+H$`[SATAUHIALHHcAuL;u HǃA]A\[SATHd$HAHtSH tCEt H1ҾHHH1ҾHHHd$A\[SATHd$HIHHcIt$8H=[v6 tIt$8HHHd$A\[UHHd$H]LeHIHH5OMFHH5Hh'H]LeH]UHHd$H]LeHIHH5'NFHH5H'H]LeH]UHHd$H]LeHAHH5LFzHH5H&H]LeH]UHHd$H]HEHH5LF,HH5Hz&H]H]UHHd$H]HEHH5iMFHH5H:&H]H]SH$H|$H4$HDŽ$PHDŽ$HHT$Ht$(#HHcHT$hiH$f8uH|$HD$H(FHT$pH$#HHcH$uH4$H|$HD$H &H$HH=!Q(HH$H$H$%#HMHcH$0uzH|$H$HH$HH$@HDŽ$8 H$8H$P[HwHPHwHp1H$P֓H$P1H^%H$0Ht(x(1'%H$PH$H⑧HD$hHt'H$`[Hd$HHd$UHHd$H]LeHAHH5WJFHH5H#H]LeH]UHHd$H]LeHIHH5IF:HH5H#H]LeH]UHHd$H]LeHIHH5JFHH5H8#H]LeH]Hd$HHd$SATHd$HIHD$`HHt$ HHcHT$Xu L1H|$`Ht$`HH#H|$`$HD$XHtE%Hd$hA\[SATHd$HIHD$`HHt$G HoHcHT$Xu L1H|$`dHt$`HH>#H|$`蔏HD$XHt$Hd$hA\[Hd$HHd$Hd$Hd$SATAUHd$HIAHD$pHHt$rHHcHT$XuaHu7HHt$pHD$pHD$hHD$` Ht$`HwHx1m[HDLHHHP("H|$p~HD$XHt#H$A]A\[SATHd$HIL;t`Ht-HHHHHHҗMtLI$I$H蠓LHd$A\[HHSHCPuH=vHHH[SATHd$HAHHH;DHD|Hd$A\[Hd$HHd$UHHd$H]LeHIHH5FFHH5HhH]LeH]Hd$H|$H4$HD$H`HT$H$HHD$ƀHT$Ht$(H'HcHT$huHD$HhHt$HD$`HD$ƀHD$hHto!Hd$x0SHd$Ht.H0u!\$H$HHwHx1XHd$[SATHd$HIHPtHXLHPLHHHd$A\[SATHd$HIL11fH@tHHLH0@LH0HHd$A\[SATHd$HIL11H@tHHLHޱ@LH߲HHd$A\[SATHd$HIHL蓚HtHLH@Hd$A\[Hd$H;tH@OHd$SHuHHh[HHpRwHd$H@:xt@xH@Hd$Hd$H@:t@H@Hd$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$<HT$ Ht$8HHcHT$xHD$H$H|$1 H|$HD$fǀHD$ƀHD$ƀHD$ǀ|HD$H|$tH|$tH|$HD$H7HD$xHtH$H$HHcH$u'H|$tHt$H|$HD$HP`aH$HtHD$H$Hd$HttuHHd$Hd$H}!t$H$HHwHx1cTHd$SH$pHH$HT$Ht$ HHcHT$`ucHHH(H$HtH@H~@H$8@HKwP Ht$hH=@FT\$hs0H䆧HD$`HtH$[SHd$HHD$`HHt$ H4HcHT$Xu!HHt$`H(H|$`}UD$hH|$`XHD$XHtyD$hHd$p[SHd$HHD$`HHt$|HHcHT$Xu+HHt$`H(H|$`b\$hD$hD$phH|$`辅HD$XHtD$pH$[SHd$HHD$`HHt$HHcHT$XuHHt$`H(H|$`EH|$`,HD$XHtMHd$p[SHd$HHD$`HHt$\HHcHT$XuHHt$`H(H|$`EHUH|$`諄HD$XHtHHd$p[SATAUHIMLzLHOtL1/ L1ÄA]A\[SATAUHIML*LHtL1ߢ L1sA]A\[SATAUHIMLڃLHtL茢 L1 A]A\[SATAUHd$HIH$HT$Ht$ H HcHT$`uHcHT$Xu!D$hH|$`|Ht$`HH H|$`b~HD$XHtHd$p[SATH$HAHD$`HHt$HHcHT$XuIIcHT$hH:1Ht$hH|$`01H|$`蘜Ht$`HHRH|$`}HD$XHtH$hA\[SATH$HIHD$`HHt$ HHcHT$XuILHT$hHG91Ht$hH|$`V01H|$`؛Ht$`HHH|$`|HD$XHt H$hA\[SH$HH4$H|HDŽ$ H$ H$0  HHcH$p H<$uAHi6F H$x WH|$H$x HHt$HPH<$晧f;tfHšHH`= tt$HHT$H4$HH!HH`HcHH|$H4$AlHH`HcDHt$H HH`HcH$x H5jwH$x H$ ܧt'HH$ H4$HH$HH`HcHH4$H$ kH$ HjHzH5CjwH$ 1H$p HtH$@[Hd$Hd$Hd$Hd$Hd$Hd$SATHd$HIHD$`HHt$ HHcHT$XuLH|$`Ht$`HH H|$`yHD$XHtHd$hA\[Hd$H}!t$H$HHwHx1cFHd$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8 HHcHT$xubHD$H$H|$1H|$!HD$fǀHD$H|$tH|$tH|$HD$Hb HD$xHtH$H$ H2HcH$u'H|$tHt$H|$HD$HP` H$HtHD$H$Hd$Ht&tuH2Hd$SATAUAVH$IIIEHDŽ$ H$ H$( -HUHcH$h LI$`= 1HL0A$|fDLHߤlA$|HcH$p H5gwH$p H$ اL$ LL0aIc$|fAFt LL! H5mgwH$ -H$h Ht H$x A^A]A\[SATHd$HIHD$`HHt$HHcHT$Xu HHt$`H8Ht$`L1 H|$`dHD$XHte Hd$hA\[SATHd$HIHD$`HHt$gHHcHT$XuLH|$`Ht$`HH` H|$`֗HD$XHt Hd$hA\[SATAUHIML蚗LHou L1!A]A\[Hd$HHtH@H~HH=wH0Hd$SATAUHd$HIH$HT$Ht$ TH|HcHT$`u0IL喧LHtLH4$L谫;H賖HD$`Ht Hd$pA]A\[SATHd$HIHD$`HHt$HHcHT$XuLH|$`Ht$`HHH|$`&HD$XHt' Hd$hA\[SATAUHd$HIH$HT$Ht$ $HLHcHT$`u2IL赕LHtLH4$: L1. H聕HD$`HtHd$pA]A\[Hd$HHd$SATHd$HIHD$`HHt$gHHcHT$Xu#HHt$`H8Ht$`Lp[H|$`єHD$XHtHd$hA\[SATHd$HIHD$`HHt$HHcHT$XuLH|$`fHt$`HHH|$`FHD$XHtGHd$hA\[|H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8 H5HcHT$xuTHD$H$H|$1pH|$aHD$H|$tH|$tH|$HD$HHD$xHtH$H$xHߦHcH$u'H|$tHt$H|$HD$HP`oeH$HtCHD$H$Hd$H~!t$H$HH]wHx12=Hd$SH$H$$$HDŽ$HDŽ$HHt$HަHcHT$X HH$H$HD$hHD$` $$݄$ۼ$H$HD$xHD$p$$݄$ۼ$H$H$HDŽ$$$݄$ۼ$H$H$HDŽ$H\$`H$oH wHPHwHp1H$pH$H;rH$nH$nHD$XHtH$[SATHd$HIHLc~HtHLnH@THd$A\[SATHd$HIHL~HtHLnH@Hd$A\[Hd$HHd$Hd$HHHHd$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$@HT$ Ht$8HۦHcHT$xHD$H$H|$1HqOHD$`HtHd$xA\[SHH@HHH[H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8MߧHuHcHT$xueHD$H$H|$1谝H|$H|$H5- FHD$H|$tH|$tH|$HD$HHD$xHtH$H$ާHϼHcH$u'H|$tHt$H|$HD$HP`)H$HtrMHD$H$SATAUAVH$hIIHDŽ$HDŽ$HHt$ݧHHcHT$XI$LI]HL;aÃ|HcLMtHRH9LH$?H$HD$hHD$` Ll$xHD$p Lt$`H$LHRwHPHGwHp1H$TNH$L_I$LLHcHLH$3_H$I$LI$H$H$I$LLMtHIHcH)HcHPLH$^H$I$fLI$H$H$I$QHL$hHٟH$HtHRHH4$L\H4$HHѧH5>QHHD$`Ht ӧHd$pA]A\[H$H|$H4$HD$HDŽ$HT$(Ht$@ͧHHcH$ H<$@cH<$bHD$H$H$ͧHǫHcH$uTH<$jbD$ HcD$ H$H5=QH$H|$舞HcT$ H|$Ht$_ЧH<$bH$HtѧHt$H|$HD$H,H4$H$IާH$H|$HD$HϧH$L-HD$HHT$H4$HD$HHD$T$Ht$H荦蘯H萘H$HtyH|$HD$xHtH$[SHd$H|$H4$H|$"HHT$Ht$0뫧HHcHT$pu(H$HtH@HD$~T$H4$HϥڮHҗHD$pHtSH$[SATHd$HIHD$`HHt$WHHcHT$XuLH|$`薼Ht$`HHPH|$`HD$XHtǯHd$hA\[Hd$H Hd$Hd$H|$H4$H H=fOH趰HD$HT$Ht$0}H襈HcHT$puHt$H|$*腭H|${HD$pHtHd$xSHd$H|$H4$H|$2HHT$Ht$(H#HcHT$huH4$1H詤HHD$hHt}Hd$p[Hd$H|$H4$HH=VOH覯HD$HT$Ht$0mH蕇HcHT$puHt$H|$*uH|$kHD$pHt쭧Hd$xHd$H|$H4$HD$1H#HD$HT$Ht$0ꨧHHcHT$puH|$tHt$H<$1莣髧H|$ߔHD$pHt`Hd$xHd$Hrr tsHHd$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8H%HcHT$xuTHD$H$H|$1H|$qHD$H|$tH|$tH|$HD$HHD$xHtH$H$hH萅HcH$u'H|$tHt$H|$HD$HP`_ꫧUH$Ht3HD$H$SATHd$HIHD$`HHt$צHHcHT$Xu7HHt$`vHt$`LL04L14跩H|$` HD$XHt.Hd$hA\[SATHd$HIH$HT$Ht$ 6H^HcHT$`u2LHfH\4H4$HpHsHD$`Ht蔪Hd$hA\[SATHd$HIHD$`HHt$藥H迃HcHT$XuHHt$`H0Ht$`L9萨H|$`HD$XHtHd$hA\[SATHd$HIHD$`HHt$H/HcHT$Xu L1H|$`$8Ht$`HHH|$`THD$XHtuHd$hA\[SATHd$HIH$HD$hHT$Ht$ mH蕂HcHT$`uFHHt$h Ht$hH?H02H2LH4$>H|$hHHD$`Ht譨Hd$xA\[SATHd$HIHD$`HHt$跣H߁HcHT$Xu L1H|$`Ht$`HH讦H|$`HD$XHt%Hd$hA\[H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8H%HcHT$xuTHD$H$H|$1H|$'qHD$H|$tH|$tH|$HD$HHD$xHtH$H$hH萀HcH$u'H|$tHt$H|$HD$HP`_ꦧUH$Ht3HD$H$SATHd$HIHD$`HHt$סHHcHT$Xu HHt$`H8Ht$`L14ΤH|$`D3HD$XHtEHd$hA\[SATHd$HIHD$`HHt$GHoHcHT$XuLH|$`4Ht$`HH@H|$`2HD$XHt跥Hd$hA\[SATHd$HIHD$`HHt$跠H~HcHT$Xu HHt$`H8Ht$`L13讣H|$`$2HD$XHt%Hd$hA\[SATHd$HIHD$`HHt$'HO~HcHT$XuLH|$`3Ht$`HH H|$`1HD$XHt藤Hd$hA\[SATHd$HIHD$`HHt$藟H}HcHT$Xu#HHt$`H8Ht$`L2苢H|$`1HD$XHtHd$hA\[SATHd$HIHD$`HHt$H/}HcHT$XuLH|$`2Ht$`HHH|$`v0HD$XHtwHd$hA\[SATHd$HIHD$`HHt$wH|HcHT$Xu8HHu HHt$`H8Ht$`L媧LDVH|$`/HD$XHt͢Hd$hA\[SATHd$HIHD$`HHt$םH{HcHT$XuLH|$`6Ht$`HHРH|$`F/HD$XHtGHd$hA\[H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8HE{HcHT$xuTHD$H$H|$1H|$~HD$H|$tH|$tH|$HD$HHD$xHtH$H$舜HzHcH$u'H|$tHt$H|$HD$HP` uH$HtS.HD$H$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8͛HyHcHT$xulHD$H|$&HD$HH$H|$1舁H|$#)}HD$H|$tH|$tH|$HD$HxHD$xHtH$H$ HHyHcH$u'H|$tHt$H|$HD$HP`袟 H$Ht렧ƠHD$H$Hd$H&t!t$H$HHAwHx1Hd$SHd$HHD$HT$Ht$0JHrxHcHT$puEHt$HH(H|$uH6vH$H3vHD$H|$zH$HT$H|$r HD$pHt蓞H$HT$H$[ø&SATAUHd$HIIHD$`HHt$肙HwHcHT$Xu/Ld$hLl$pHt$hHT$pH|$`Ht$`HHjH|$`HD$XHtᝧH$A]A\[H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8轘HvHcHT$xuTHD$H$H|$1 WH|$ 1zHD$H|$tH|$tH|$HD$H耛HD$xHtH$H$(HPvHcH$u'H|$tHt$H|$HD$HP`誜H$HtΝHD$H$HSHd$HH|$`MHHt${HuHcHT$XuHHt$`HH|$`luH|$`HD$XHt웧H$[SHd$HH|$`͝HHt$H#uHcHT$Xu!HHt$`HH|$`謩D$xH|$`藝HD$XHthD$xH$[SHd$HH|$`=HHt$kHtHcHT$Xu!HHt$`HH|$`|D$xaH|$`HD$XHtؚD$xH$[SHd$HH|$`譜HHt$ەHtHcHT$XuHHt$`HH|$`l՘H|$`{HD$XHtLH$[SATHd$HIH|$`(HHt$VH~sHcHT$XuHHt$`HHt$`LOH|$`HD$XHtƙHd$xA\[SATHd$HIH|$`蘛HHt$ƔHrHcHT$XuHHt$`HHt$`L迗H|$`eHD$XHt6Hd$xA\[SATHd$HIH|$`HHt$6H^rHcHT$Xu&LHduH|$`:Ht$`L<'H|$`͚HD$XHt螘Hd$xA\[SATHd$HAH|$`xHHt$覓HqHcHT$XuDH|$`՞Ht$`HH 蟖H|$`EHD$XHtHd$xA\[SHd$HD$xH|$`癧HHt$H=qHcHT$Xu!D$xH|$`ѡHt$`HH  H|$`豙HD$XHt肗H$[SHd$HD$xH|$`WHHt$腒HpHcHT$Xu!D$xH|$`aHt$`HH {H|$`!HD$XHtH$[SATHd$HAH|$`ȘHHt$HpHcHT$XuDH|$`ŜHt$`HH H|$`蕘HD$XHtfHd$xA\[SATHd$HIH|$`8HHt$fHoHcHT$XuLH|$`՝Ht$`HH _H|$`HD$XHt֕Hd$xA\[SATHd$HIH|$`託HHt$֐HnHcHT$XuLH|$`eHt$`HH ϓH|$`uHD$XHtFHd$xA\[Hd$pHd$Hd$wHHd$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$ HT$ Ht$8폧HnHcHT$xuZHD$H|$1zHD$H$HPHD$@HD$H|$tH|$tH|$HD$H誒HD$xHtH$H$RHzmHcH$u'H|$tHt$H|$HD$HP`Iԓ?H$HtHD$H$SHCH{/;C[H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8mHlHcHT$xuhHD$HT$H$HBH=WOxHT$HBHD$@(HD$H|$tH|$tH|$HD$HHD$xHtH$H$čHkHcH$u'H|$tHt$H|$HD$HP`軐F豐H$Ht菓jHD$H$SATHd$HIM~ HHH{tHH{)xH1xHtMt HHPpHd$A\[SATAUHCAAE|&AADH1HǀE9A]A\[SHHCHt!@PuH{1Ҿ HCHH{t H{ HS[SATAUHd$HAIHD$pHHt$"HJjHcHT$Xu>Dc(r7LHt$p]HD$pHD$hHD$` Ht$`H 3wHx1 H|$pQHD$XHtrH$A]A\[HG@Hd$HHd$SHHHHHH[SATAUAVHd$HIAH{LOAAtVE}E1HvD9HiAE9t.H{DH{LDL@hdH0Hd$A^A]A\[SATHd$HII$HH/H{LCHI$Hd$A\[SATHd$HIHJHt&Ld$H$ HHKH.wHx1Hd$A\[SATHd$HIH$HT$Ht$(HhHcHT$huDMt?D$DHT$LHH4$HHcT$LMtH@H9~ɌH!HD$hHtBHd$xA\[SATHd$H7H{IIDŽ$LpuHC@gpH{LHCxHzHd$A\[SATAUAVHd$HIH$HD$hHT$Ht$ وHgHcHT$`udLHꢺHC@gD`E|EAAH{DIIH|$h謢Ht$hH<$HtE9M1茋H|$hHHD$`HtLHd$xA^A]A\[SATAUHd$HIHIHu&Ld$H$ HHKH.wHx1LHd$A]A\[SATAUAVAWIAIF@Å|*AAI~DIE;tD9M1LA_A^A]A\[Hd$HH=LvHd$SATAUAVHd$HILI$HC@gDhE|1AfAH{DXHLI$PE9Hd$A^A]A\[Hd$HHd$SATHd$HIH{LIDŽ$HHd$A\[H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0$HLdHcHT$punHD$H|$1pHD$@HD$@HD$H@(HD$@!HD$H|$tH<$tH|$HD$H͈HD$pHtpHT$xH$|HcHcH$u&H<$tHt$H|$HD$HP`tjH$HtH#HD$H$SATHd$HIM~ HHC C"C!H1KH1!HtMt HHPpHd$A\[H@SHHC(Ht@tt tt0:C tC HHHC(Ht@ts {#u0:C"tC"HH[HHcWHcHHcGHHHG(H@`Hc@dH9}Gg0WHG(H@`@d)7HW(HR`LcBdHcOHcHI9}HW(HJ`WgD2QdD)‰1gWSATAUHSHu CH:@dS)gD`E}E1HDCA)E}E1HD;hd~ HDhdD;c~DcD;k}Dk{t$HHcPdHcCH)HcCHH9}kA]A\[SATHd$HIԃv@tY{$LHH`HC(Hx`@HHDHHHeDHHHJDHHHP1H'H@HHLHH Hd$A\[Hd$H1H`Hd$Hd$HHd$HHSH@dS)[H(t HG(H@`1Hd$Hd$GHd$Hd$SATHd$HDpHH8D9}HH8ADHd$A\[Hd$HHd$SHlj~[HSATHd$HAHHSDPdHd$A\[SH;st!s{ tHHNH6[Hd$H@:p t@p HHHd$SATHd$HIL;c(tF{!u@H{(tH{(HHC(HLc(MtH{(H^ HHd$A\[Hd$H@:p#t @p#HfHd$HSH{#u H{(} C"[Hd$H<$H@$HT$Ht$ ~H\HcHT$`uH<$H$Hx貁H$@$HD$`Ht+Hd$hSATHd$HIHs(LI$tHs(LI$0Hd$A\[SATHd$HIHs(LI$tHs(LI$0Hd$A\[1H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8]}H[HcHT$xuhHD$H|$1HD$H$HP0H= OHT$HB@HD$H|$tH|$tH|$HD$H HD$xHtH$H$|HZHcH$u'H|$tHt$H|$HD$HP`6H$HtZHD$H$SATHd$HIM~ HHH{@HhH1HtMt HHPpHd$A\[H$8H<$HHx@H$H@@HH$x HT$Ht$ {HYHcHT$`u!H<$]HH$HP8H$Hp@~HD$`HtmHT$hH$O{HwYHcH$u#H$Hx@H$H@@HJ~@~H$HtH$Hx0tPH$H@0@Pu?H$x t$H$Hx@~H<$H$HH<$H$HH$SHH{03t H{0v[HG0Hd$HHd$SATHd$HIHC(xtt;H{0t.H{@~!MtH{@L| HHHd$A\[SATHd$HIH{8L6HtH{8LHHHd$A\[Hd$HHxXt Hx`HPXHd$Hd$HHxHt HxPHPHHd$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$5HT$(Ht$@xH%WHcH$|HD$ H$H|$1H<$t0H<$HvH5 EHD$HtHt$H|$HD$ H|$tH|$tH|$HD$H{H$HtH$H$6xH^VHcH$u'H|$tHt$ H|$HD$HP`-{|#{H$Ht~}HD$H$Hd$HHphHt HHHd$SATAUAVAWHd$H|$hH$HT$Ht$ awHUHcHT$`H1?H|$hIHD$hHxhM1HD$hHxh˷AEDHD$hHxh(IA|$\uZMtIt$PL IMtLxtMt/H<$tH4$H1H(EIT$PH4$H1A9H4$H|$hyHHD$`Ht{Hd$pA_A^A]A\[SATHd$HAH{htHHH{hDoHd$A\[Hd$fHd$SHwH{hteHHHtTHHH{tHcHT$`uH$xxt H<$@Q,cHD$`HtHT$hH$_H=HcH$u*H$@PtH<$H$H bVdbH$HtezeH$SHHeH:tHXHzHHJ!nHmHHp[Hd$Hx`uHHwHx迚Hd$Hd$Hx`tHHwHx菚Hd$Hd$HHd$SHHHH[Hd$HHd$SHHHH[H@`H@`SATHd$HIL;cht/HH{ht H{hHMt HL1LchHd$A\[H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8}]H;HcHT$xu_HD$H$H|$1ОH=dO_HT$HBpHD$H|$tH|$tH|$HD$H5`HD$xHtH$H$\H;HcH$u'H|$tHt$H|$HD$HP`__a_H$HtbbHD$H$Hd$HHxhuHHgwHxHd$HH$xH<$HHxpH$HxpHD$HT$ Ht$8[H:HcHT$xuaH|$ӷ|PD$D$D$D$H|$ҷHD$HH<$H$Ht H|$|$^H$HxpHD$xHt`H$SATHd$HIM~ HHH1HHH3H{p:GH1HtMt HHPpHd$A\[Hd$H<$HHxpH$Hxp|HD$HT$Ht$0ZH8HcHT$puKH|$ҷ|:D$D$D$D$H|$з1HH|$o]H$HxpHD$pHt^Hd$xH$xH|$4$HD$HxpuHwHxdHD$HxpHD$HT$ Ht$8YH7HcHT$xu4$H|$ зHD$\HD$HxpHD$xHt5^HD$H$Hd$H<$D$H$HxptiH$HxpHD$HT$Ht$0YHF7HcHT$puH|$ѷD$'\H$HxpJHD$pHt]D$Hd$xH$hH|$H4$HD$HxpqHD$HT$ Ht$8XH6HcHT$xu]H4$H|$׷D$uH4$H|$Է6H$H@ H$HDŽ$ H$HvHx1wR[HD$HxptHD$xHt\H$H$hH|$H4$HD$HxpHD$HT$ Ht$8WH5HcHT$xu]H4$H|$6ַD$tt$H|$Է6H$H@ H$HDŽ$ H$HbvHx1藓rZHD$HxpHD$xHt[H$11SHH H:tH HzHH eHyeHHg[HHp`HPhHHppHPxHHHHHHSATAUAVHd$HH$HD$HD$HT$Ht$0VH+4HcHT$pILcŦLl$LVŦLt$LIŦLLLHHHtHHL$HT$H@HgvH8t3HT$Ht$H<$0HJvHL$HT$H4$HHiXHĦH|$ĦH|$ĦHD$pHtYHd$xA^A]A\[SATHd$HAHHD8EtZCPt ƃ|HtHHHHHHH{`tCH{hHS`7HtHHHHH{pt H{xHSpHd$A\[SATAUAVHd$HIIII$IEIHD$`HHt$SH2HcHT$XHH5t~Et!HHa~EH|$`߼Ht$`LæHH5h~Et!HHU~EH|$`߼Ht$`LfæHH5\~Et!HHI~EH|$`_߼Ht$`L2æ]VH|$`¦HD$XHtWHd$hA^A]A\[SATAUAVHd$HIIIHH5}E9tLHH5x}E߼HH5}EtLHH5{}E޼HH5}EtLHH5~}E޼Hd$A^A]A\[HH0H$8H<$/HT$Ht$  RH30HcHT$`u!H$tH<$@H$HUHD$`HtHT$hH$QH/HcH$u*H$@PtH<$H$H T+VTH$HttWOWH$Hd$H|$@4$HT$Ht$(QHF/HcHT$hu$HD$$H|$@0HD$HTHD$ƀHD$hHtUHd$xSATHd$HIM~ HHH@0HH1hHtMt HHPpHd$A\[Hd$H@HHd$SATAUAVAWHd$IAAՈL$ I$A#EtI$8\u xtI$I$I$Aֹ HH=zEP$sI$D:0uI$I$D:0uD$ tE0I$EtHd$0A_A^A]A\[Hd$wHHd$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$ HT$ Ht$8OHE-HcHT$xuZHD$H|$19HD$H$HPHD$@HD$H|$tH|$tH|$HD$HQHD$xHtH$H$NH,HcH$u'H|$tHt$H|$HD$HP`yQSoQH$HtMT(THD$H$SHCH{菢;C[Hd$覧HH=4pvw2Hd$SHHHH>HH[Hd$膧Hd$SHHHHH*[SATHd$HA$1H/@޺HDH$Hd$A\[Hd$H<$@tH$Hd$SATHd$HIH=mvf1tHLI$ LHdHd$A\[SHHs8H=Au1tHC81[HG8HnvH$H|$Ht$H$HL$H|$uHD$HT$HRhHD$H|$HT$(Ht$@LH@*HcH$uSHD$ HT$H|$1'HT$H$HB8HD$ H|$tH|$tH|$HD$HNH$HtH$H$~KH)HcH$u'H|$tHt$ H|$HD$HP`uNPkNH$HtIQ$QHD$H$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$ HT$ Ht$8JH(HcHT$xu^HD$HD$H8HD$H@HH$H|$1HD$H|$tH|$tH|$HD$HvMHD$xHtH$H$JHF(HcH$u'H|$tHt$H|$HD$HP`MN MH$HtOOHD$H$H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0dIH'HcHT$puBHD$H|$11)HD$H|$tH<$tH|$HD$H9LHD$pHtpHT$xH$HH'HcH$u&H<$tHt$H|$HD$HP`KkMKH$HtNNHD$H$Hd$HHHHHHd$SATAUAVAWHd$H<$ILӜAE|BL3IIuPH<$IHtLLI$A9Hd$A_A^A]A\[SATAUAVHd$AI։WHH=jvX,II}PL詷DL(A]`LHd$A^A]A\[SATAUAVHd$HIM1HAA1fDH]HpPLcuDHBIAMuE}LHd$A^A]A\[SATAUAVHd$HIIH$HT$Ht$(FH$HcHT$huSMtNMtID$HT$LHhH4$H ILL·HcT$LMtH@H9~IH뵦HD$hHt KHd$xA^A]A\[SATAUAVAWHIL詚AH螚A9AH菚A2DHIDLHLlAAEtE}DA_A^A]A\[Hd$HH=ivHd$SATAUHd$HIHIHu-HHLd$H$ HHvHx1LHd$A]A\[SATAUAVAWH$pIIHT$H|$ȴHD$HD$ HT$(Ht$@DH"HcH$uW@L,Ld$H5vL6kLl$ L$ Ll$MLHT$LE1I8GH|$峦H5vH|$jH|$ ʳH$HtHH$A_A^A]A\[UHH$0HHLPLXL`LhHpIHUADED}H}荳HEHEHUHuCH!HcHxufDDHpAH]H5vHiLmL߲$ Ll$ILEDHUHpLpI8JFH}衲H5RvH}iH}舲HxHtGHHLPLXL`LhH]UHH$0HHLPLXL`LhHxIHUADE̋EHpLuH}#IHEHUHu2BHZ HcHUuiDDHxALH5FvHhLmLz$ Ll$ILDpDHUHxLxI8DH}8H}/HEHtQFHHLPLXL`LhH]SATHd$H@E0H""ttt*o1AH2H߈HH8-AHHt t t t @HH t ttHHH8*uHHcHUuDH5ӹvH#eL D,$Ld$ILExHUH}LUI8yAH}ЭHEHtBHPLXL`LhLpH]UHH$HLLLLHH HUHDHL]HEHH}^HHHHHEHEHEHDž(HUH`:=HbHcHXot H皷1HHEHtH@HHDžPH5>vHPH}HDžPH5vHPH 1HHH5gE{uD%fDHH0H1HgEyHH8HuHHEHuHrHEHt)H0 uHEE0HE8?HEHE t :t=tu HEHE8"ujLeH}"It$1H(裵H(HEL)HHH}0dLeHEHEH5fEsL1H(OH(HEL)HH}༦HELeH}1zHHcHEHtH@HH9~gHEHtH@HHAHcHPH5vHPH}O IcHPH5FvHPH& tIHuHIIHu$HUH1H‡A@L赇A3H}tHuHH葇ADHsLgAEHHHcHHgfffffffHHH?HʉHuHHHcDlHUHcLH+DHUHcHEH+HDHEL)H)HE8t HEHcHPH5vHPH} HcHPH5vHPHy ]uBHHHtH@H~)HHHtHRHHcHHHcH}1\AHH}AEHHHUHc‹)AH}莹IcHtHUHcH|Ic. EtvH}EIcD?AHHHcHcHxH(HbH}1H(衰H}01$ŦHHHtH@AA|%1fDH}贸IcD$AA9HEHtH@AA|,1H}|IcHMHcӊTT0AA9HEHcTHA9HEHtH@HHcH)AE~8H}IcHtHUHcH|Ic HuH}H Hu豥8H(0H}'H}H5vH}\H}HXHt$:HLLLLH]Hd$HHH1HHd$SHH{tHsH=Uvet H{(1[G\SATHd$HIHu8H#CXC`H{P1蜤CdCHCLhAD$XCXLut H"It$0H{0;AD$\C\It$PH{PC{`uAD$`C`AD$dCdAD$HCHAD$LCLHd$A\[SATHd$HIH=Cuft LH LHKHd$A\[SATHd$HtE0 H{0CADHd$A\[SATHd$HIHD$hHHt$g3HHcHT$XHGt$HD$`H5{PHL$`LabH{0@tHPPHs0L<<=H{0atHs0H|$h菽Ht$hL貍HPHs0L;5H|$h>HD$XHt_7Hd$xA\[SHd$Ht<$ H{0.E<$,$Hd$[SHd$HRtH/\E$H{0E$$Hd$[SHd$HtH[E$H{03D$$Hd$[SATHd$HtE1 H{0~AADHd$A\[SATHd$HtM1 H{0~AILHd$A\[SATHd$HIHJt L1< Hs0LBHd$A\[Hd$H<$Ht$H<$ tH|$1H$@X rtH$Hx0@H$Hx0HcHpH|$1+H$Hx0HD$HT$Ht$0u0HHcHT$pu(H|$wHHD$HHtHRH|$d3H$Hx0HD$pHt4H$Hp0H|$dAHd$xHd$Hd$SATHd$HIHD$`HHt$/H HcHT$Xu3Ht L1ŦHs0H|$`@Ht$`LŦ2H|$`HD$XHt4Hd$hA\[SATHd$HIH*t L1 Hs0L@Hd$A\[SATHd$HIHt L1,Ŧ Hs0LN@Hd$A\[SATHd$HIHt L> Hs0L5Hd$A\[SATHd$HIHjt L1|A Hs0LHd$A\[SATHd$HIH{PtHsPL LHr~Hd$A\[SATHd$HG0f8nH_0;fs$ftf tf u H{uA7E02HtHH<$H$HtAE0Et0Hd$A\[SATAUHIIt$PH{PǬHu`H:AL/A8uHC\A:D$\u>CXA;D$Xu4C`A;D$`u*HC0fID$0ff9uIt$0H{0Bt0A]A\[SHd$HH4$H|$hy3HT$Ht$ ,H HcHT$`u"CXH4$H|$h<;Ht$hH /H|$h@3HD$`Ht1H$[SATHd$HIH|$`2HHt$,H> HcHT$Xu(CXH1Ht$`Hl)H|$`-HD$XHt*Hd$xA\[SATHd$HIH|$`,HHt$%HHcHT$Xu'{XtCXLH|$`H2Ht$`H(H|$`|,HD$XHtM*Hd$xA\[SATHd$HIH|$`(,HHt$V%H~HcHT$Xu'{XtCXLH|$`1Ht$`HkF(H|$`+HD$XHt)Hd$xA\[SATHd$HIH|$`+HHt$$HHcHT$Xu'{XtCXLH|$`h1Ht$`H'H|$`\+HD$XHt-)Hd$xA\[SATHd$HIH|$`+HHt$6$H^HcHT$Xu'{X&tCXLH|$`0Ht$`HK&'H|$`*HD$XHt(Hd$xA\[SATHd$HIH|$`x*HHt$#HHcHT$Xu'{X&tCXLH|$`(0Ht$`H&H|$`<*HD$XHt (Hd$xA\[SHd$HD$xH|$`)HHt$#H=HcHT$Xu$CX D$xH|$`1Ht$`H-&H|$`)HD$XHt'H$[SATAUH$PHIH$P)H$C)HHt$q"HHcHT$XH{0L)A<$fs%ftf tf u I|$uA;E06Ht$`gtLH|$`HD$`HtAE0EC\{XwHH$H$HD$hH$HD$pH$HD$xfD$hf=f-xf-zf-f-~f-hf-vf-xf-t*f-f-v&f-t,f-t>f-tcf-tJdCXCXCXCXCXCX s{XiCX`CXWHH$H$Yt CX%-L@[tA$%u CX CX#H$''H$'HD$XHt$H$A]A\[SATHd$HAH|$`&HHt$HHcHT$Xu!CXDH|$`*Ht$`H"H|$`&HD$XHtS$Hd$xA\[SATHd$HIH|$`(&HHt$VH~HcHT$Xu"CX%LH|$`NXHt$`H{0`&K"H|$`%HD$XHt#Hd$xA\[H$H|$4$H$%HT$Ht$0HHcHT$pHD$@X;$ HD$$PX$HRvD$ uH|$ HD$H0f8HT$xH$;HcHcH$u1HD$Hp0T$H$IH$HD$Hx03%!H$HtWH$H$HHcH$Hu H|$ H$HHt## H$X$HD$pHt)"H$XSATHd$HIH|$`$HHt$6H^HcHT$XuLH|$`)Ht$`HX3 H|$`#HD$XHt!Hd$xA\[H$H|$Ht$H$H$}#H|$uHD$HT$HRhHD$H|$HT$ Ht$8HHcHT$xHD$H$H$EHmHcH$uKH$H|$1.mHD$@`H|$1H$H$HD$Hx0##H$"H$Ht HD$H|$tH|$tH|$HD$HHD$xHtH$H$fHHcH$u'H|$tHt$H|$HD$HP`]SH$Ht1! !HD$H$H$H|$Ht$H$L$H|$uHD$HT$HRhHD$H|$HT$(Ht$@HHcH$uZHD$ H$H|$1HD$HHT$D$B`HD$ H|$tH|$tH|$HD$HSH$HtH$H$H HcH$u'H|$tHt$ H|$HD$HP`zH$HtHD$H$SATHd$HIHD$`HHt$gHHcHT$XLH=;vt LHa_LH=mut LHq?LH=cOpt!LHt$`I$Ht$`H LH3H|$`QHD$XHtrHd$hA\[SATHd$HIH|$`HHHt$vHHcHT$XuMMt5LHt$`I$HT$`LHI$H{P*HpH{P1@H|$`HD$XHtHd$xA\[SATH$8HIHDŽ$H|$xyHD$pHHt$HHcHT$XMCX&!HuHcHHGHHCPHD$hHD$` Ht$`HvHx1SH>LI$H"LI$kHLI$OH:|$`Ht$`LI$,HLI$H@LI$HHt$pKHt$pLI$HLI$HHt$xmHt$xLI$HH$H$LI$lHH$H$LI$ECXtr4HHHCPHD$hHD$` Ht$`H~vHx13RH$!H|$xGH|$p턦HD$XHtH$A\[SATH$8HIHDŽ$H|$xHD$pHHt$H&HcHT$XM A$CXA$&!HuHcHHHHCPHD$hHD$` Ht$`H־vHx1+QLI$HLI$H3kLI$HOLI$|$`Ht$`Ht,LI$H LI$@HLHt$pI$(Ht$pHLI$HLHt$xI$Ht$xHLH$I$H$HlLH$I$HH$HJECXtr4HHHCPHD$hHD$` Ht$`HζvHx1OH$qH|$xH|$p=HD$XHt^H$A\[SATAUHIIMA$uA$t CXnA$uA$|~ CXLA$uA$t CX&-A$'uA$|~ CX A$CXfA}u H( LHLI$`CdC\A]A\[SHd$HH|$`]HHt$HHcHT$XuH|$`Ht$`H{0H|$`0HD$XHtH$[H$H|$H4$HD$HD$ HT$0Ht$HH!HcH${HD$@XHuHcHH|$HHD$H@PH$HDŽ$ H$HݺvHx12MH|$H$fH|$}H$fH|$gH$H|$H9E(ݜ$$H$H|$H$H|$f%fH$fnHt$H|$HD$HtH@HPHt$HuH5OFH<$m.Ht$ H|$HD$ HtH@D$(~ D$(gPHcHHH|$ 1H$fH|$&H$H|$&H$H H|$%H/'ݜ$$H$oHt$H|$H|$HuH=bEHT$HtHRH4${3HD$Hx0@eHD$Hx0蟣HD$H$H$PHxHcH$u(HD$Hx0HcHPH4$H|$<HD$Hx0^H$HtH|$H$UH<$H$HfZHD$@XtrDH|$HHD$H@PH$HDŽ$ H$H^vHx1JH|$|H|$ H$HtH$SATHd$HHD$pHHt$ H"HcHT$XOE1CX% !H2uHcHHHHCPHD$hHD$` Ht$`HvHx1=IAAAAAAHHt$pHD$pHtH@HAH{0@tH{0AfE1aHHt$pHD$pHtH@AAE1#LH|$pLgHt$pHLH|$p-gHt$pHA4$Z H HRA$1HHwA$H,HD$`l$`|$`H|$` HHu1H|$xHt$xH{0aYL7HLH9ALH|4HHHCPHD$hHD$` Ht$`HvHx1vC H|$x H|$p=vHD$XHt^ H$A\[Hd$H<$t$T$ H|$Hd$SATAUAVAWHd$H<$Ht$AHD$HtgH<$ZAE|SH<$"IEuA|$\u(It$PH|$sILLEEuAD$\A9Hd$A_A^A]A\[Hd$vGHd$Hd$HcGHd$Hd$HCGHd$Hd$H#GHd$Hd$GHd$Hd$HFHd$Hd$HFHd$Hd$HFHd$Hd$HFHd$Hd$HsFHd$Hd$HSFHd$Hd$H54BHfHd$Hd$HH5BHfHd$Hd$H5BHfHd$UHH5NQH@H=OHHH5HH]UHHm/EH=YvHH5HH]SATAUAVAWHd$H<$Ht$HH5AHH$=v5H$HD$HD$8H$fXf?=v4HD$XH$P HD$HT$BAv4HD$PHD$PHD$HXH)q4Hq4HHH=vc4HD$XE0HT$B=v@4HD$DpfAǃv"4EH$BT v4H$B\ AAD v3DIHL$DFHD$D:p}KIIIq3LHH=v3fAfAAŃ v3DHT$BD"FAIIs3LH va3EIIIq3LHH=v83EHD$D:pHd$A_A^A]A\[SATAUAVAWHd$H|$8Ht$0D$(HH5>HfH|$0HHfHD$8x`HD$8HP|FuFHT$8HBIIq2LHH=v{2DHT$8BHD$8x~00ۄuHD$8x~ HD$8@HD$8HXH@H)qn2Hqc2HH=v2\$HHT$8fBfD$@0f|$@@Ld$@I?q2LHEv1EDd$HAI)q1LH=v1Dd$HLd$@AI)q1LH-|H=vz1fDd$@HD$8L`AI)q1LHH=vH1DHD$8P|$H@Dd$HI@q_1LHEv1EDd$HAI)q:1LH=v0Dd$HLd$@AI)q1LH-|H=v0fDd$@HD$8L`AI)q0LHH=v0DHT$8Bf|$@HD$@HHq0HHH=vA0HD$8DdFAAHD$8XDÃ=v0HHT$8LFAIIs'0LH v/EAHgfffffffHHH?HILHv/EAH HILH v/Ã=vu/HHD$8DtFLIq/LHH=vD/DHD$8:X| EEHD$8HXHqP/HHH=v.HD$8PHD$8HPHD$8DlFHD$8HXHq /HHH=v.HT$8BH\$@Hq.HH-|H=v.f\$@fE0HD$8XaÃ=vV.HHT$8|FtÃ=v4.AALIq_.LHH=v .DHD$8:X|EtE<HD$8L`II)q.LHEv-EE2Dd$HAI)q-LH=v-Dd$HLd$@AI)q-LH-|H=vk-fDd$@HD$8L`AI)q-LHH=v9-DHT$8Bf|$@Dd$HHD$@I)qK-LH=v,Dd$HHD$8L`HD$@I)q-LHH=v,DHD$8PfD$@(HD$8PHD$8PfD$@D$HHD$8ƀD$HD$H@vq,D$HHT$0E0HD$8X6fDHD$8:XHT$8LrHIIqg,LHH=v,Gl.BÃ=v+HADBA D=v+Aăv+AHT$0DlRÃ=v+HHT$8DFAAD=v+Aăvz+AHD$0DlAIIs+LH vL+EHIIqw+LHH=v#+DHD$8:XHD$8t HD$0@HD$0XHD$@H HH=v*HD$0XD$(D$(Hd$PA_A^A]A\[Hd$f%Hd$Sf_f?=vw*[Hd$G$Hd$Hd$H8tpHd$SATAUAVAWHd$IHt$AG$D$HT$B$ŠD$tuH$D$utH$zAD$HD$D$ fA_f?Ã?v)HD$fD`fA?Aă?v)Dl$I)q)LH@vf)DDl$ AI)q)LH@vA)D8t'8:D$uH$H$D$ :D$vDl$Dl$ E00Ãv(DÃv(CD7HT$:D sA4Ãv(DÃv(CT7HD$:TvAIIs(LH vg(DEuAHH?HHH9REDhÃv(ElAA=v(Ãv'HD$\=v'D8vAD8sAEuD$ :D$sA D$ :D$vAD$tu Ƅ$/(u |$u\$Ƅ$ Ƅ$\$ 8$u3Ƅ$D$ D8r ,ÐB<( tƄ$8w犄$|$tD$B<(-H$|$uD$|$fD$ Dd$D:d$D$,f$jB(A:Gt]HT$ Hk q0$B(H0q$IIq$LH-H=Nv#fDt$ fA~Ƅ$A8{$|$tHD$B<(-u,H $HDH$AH$1H$J6H$HOHP1H$-H$H<$5H$+H$H DH$îH$1H$5H$H}OHP1H$ -H$H<$D5^H$B+H4$1H$o5H$H$HOH@H$HMDH$H$1ɺH$/H$H<$4H$*H DH$H$H$HDH$H$H$萮H$1H$4H$HJOHP1H$+H$H<$4+H$*HPDH$HOH@H$HDH$H4$1H$ 4H$H$H$1ɺH$-H$H<$y3H$w)HpOH@H$H=DH$H4$1H$3H$H$HsDH$H$1ɺH$7-H$H<$2茼H$(H$(H$(H|$x(HD$pHtܽH$A_A^A]A\[SATAUHd$H<$HLccIqLH-H9vDcH$L H$LckIqLH=vNAC<,-t'{t!H$HcHH$H0H$x ߥH$LccIqFLH-H9vDcH$xdHd$A]A\[SATAUH$H<$AHDŽ$xHDŽ$pHDŽ$hHT$Ht$ ķH앥HcHT$`H$HHc@H9};EH$@HHfD$hHL$hH$HH$H8H$HcPIcHqIHH)q9HH-H9v~uH$h&HcӾ0H$p{BL$pH$H01H$x0H$x1H$hL'H$hH$H8*0} DH<$XùH$x&H$p &H$h%HD$`HtH$A]A\[SATAUAVAWH$H<$H$H$Hc@Hc$HqHHH9vAH$HMcL9H$HIqLH=vsAB<#5H$X HqHHH9v5AE9YDÐH$L(=vB<(9H$L(=vB(0H$@ Hq HcH9H$H0Hc˺1ۥL,$IcEIIqLH-H9vwEuIcIIqLH-H9vJEiH$L(=v-H$B(:BtDH$L(=vIAEIIq/LH=vEu A9$u*IcHqHHH9vAH$H0IcϺH|$إHT$H$H8̥H$A_A^A]A\[UHH$HLLL L(IHuH4H5 HfH4H}ºttuEEE}u }tuHHEHH;PuE1}tAAf]f?=vuEt;]~]ADHuH@EuLH莤AUAVHEx)HPH@H)HHEHEHcH)q%IIqLH-H9vDuMcHEHPH@H)I)qLH-H9vwEIcIIqLH-H9vKDuDHMHUHuAHHEH;EwDmHEHHEDHcI)q7%I)q#LH-H9vDuDeHMHUHuAHV}~"}~HMHUHuAH.HEH;Er80t׃}g}uaEUvREƄX-Hc]HqxHH-H9v ]HMHUHuAHHEH;EvHc]Hq%HH-H9v]U~A9IcHcEH)qEUvEHXLHFHLLL L(H]UHHd$H]LeLmLuL}H}IHUHENj|U~*H`DH=>v/HH5H-HE|HEHcH9}E)LmHEvHEAEI$HEHPH;Ps H;PsEuHJOU:PLuHU=vXHED(UvDC.AXHEHcIcIIq[LHH9vDHEHcIcIIq&LH-H9vߦD+I$<","t),,t,,,tI$UIcI$VLmUvhߦI$AXIcI$HcIcIIq~ߦLH-H9v&ߦD+I$HEHPH;LH;PBE:7|I$8.u&LmUvަHO@AXAEuLmUvަAƄX0LmUvަEAXIcI$HEHcIcIIqަLH-H9vNަDHEHcIcIIqrަLH-H9vަD+PEu IcI$=}0uMHE8uDIcI$HEHcIcIIqަLH-H9vݦDHULmUvݦUAXIcI$HEHcIcIIqݦLH-H9vYݦDHUHcIcIIq}ݦLH-H9v%ݦD+^IcI$ULmUvݦI$AXIcI$HcIcIIqݦLH-H9vܦD+H]LeLmLuL}H]SATAUAVAWHd$H<$HHPHHPH$HBHBIH$HPHPH$H@H$@H$@H$@H$@H$L;xwE0 H$H@D DEv,"t-,,t!,v,J,s, tJH$H@D(H$H@ H$H@LHH$HRH9D:*H$x~H$HPHHPH$HPHPH$Hxu H$HPHPH$xuH$HPHPH$@H$xuH$H|$HpHE(H$P;PH$H@H$@H$@H$@L4$IcFHHqڦHH-H9vڦA^H$@H$HPHPH$@H$@{H$Hxu H$HPHPH$HcCIIqzڦLH-H9v"ڦDsH$HcCIIqHڦLH-H9v٦DsH$H@H$P;P HPHH;Pu H$HxHt$HH$@Hd$@A_A^A]A\[Hd$HH4$HH<$ nHd$UHH$HLLLLHHHHuHHHf(HH9uHHH5ZHB$H}HHf}tu݀H}/IIHI9uئLHH} HHH}H8rHPHPVH}5IIHI9uMئLHHWHH9~.HH,4H,HHzHHPRE0AHHH9vצIDAŃ=veצIDIIqצLHH9v8צL LHHIH HI)LH vצAŃ=v֦IDtH HHHIHH9v֦LMuE0$MIq֦LHHCv֦EED:R}[AŃ=v_֦DRIHPHHH)q~֦IIqn֦LH=v֦DPHHPu*HqDH=3vHH5HHLLLLH]UHH$HLLLLIIHMuHLHfHI9uHLH5!AG$H}LHf}tu݀M}/LHHH9uզHHH}#HLH}NH8!HPHPM}1LHHH9uԦHHL0LfPf?HH)qmԦHHt,Ht/Ht2Ht8Ht>HtDHtJHtPXI OIdFI:I'.I"I@BI IÄLHP2ƅLH=vkӦDH e@ H HI=v/ӦHDlM)qWӦLHHvӦD HgfffffffHHH?HILH=vҦDH }]HII qҦLHHvҦD IIqҦLH=vgҦDH =vGҦL v.ҦBD-LIqPҦLHHCvѦD:RHHPžuQHgDH=/v攻HH5H䡦%LH,H,HL}HLLLLH]Hd$HHHHd$UHHd$H]LeHIHEH$fEfD$H}/HuLH谺H]LeH]UHHd$H]LeHIHEH$fEfD$H}߰H}LH`H]LeH]SATHd$HH4$IH<$ Ht$fHt$LHHd$8A\[SATHd$H<$HIH<$ Ht$H|$LHƹHd$8A\[SATHd$HIHzHLH茹Hd$(A\[SATHd$HHIHHDHLHVHd$(A\[SATAUHd$HIHIHH|$$H|$$LLHd$PA]A\[SHHHH~;ts[UHHd$H]LeHIHEH$fEfD$H}HuLHлH]LeH]UHHd$H]LeHIHEH$fEfD$H}迮H}LH耻H]LeH]SATHd$HH4$IH<$ Ht$FHt$LH6Hd$8A\[SATHd$H<$HIH<$ Ht$H|$LHHd$8A\[SATHd$HIHZHLH謺Hd$(A\[SATHd$HHIHH$HLHvHd$(A\[SATAUHd$HIHIHH|$$جH|$$LL(Hd$PA]A\[UHH$PHXL`LhLpLxHIHMu5HH5ؔHfHHHfIuHHHfIuDHHHfH8HPHPHI9uHHH5ڔULLHHIH~.LH:HHH耾HHtXtu5HH5הHfHHHfHH5הHHH5הCHLLHHIHH=v˦AMU0Јfvffwfvw8|c,HTAHsʦIH= vʦfDHfE:fE1=v`ʦD=vCʦD8DDfHEAIIs8ʦLH= vɦfDHgfffffffHHH?HILH=vɦfEH HILH= vɦfDL veɦB5.:+fDHHqmɦHH-{H=vɦff}*HDH=&v!HH5HAH HHHH vȦ=vȦH.AHgfffffffHHH?HHHH=vlȦfAfE=vKȦ=v)ȦfA~ ƅA"=vǦHHĔu*HDH=%v芻HH5H旦HXL`LhLpLxH]Hd$HHHMHd$UHHd$H]LeHIHEH$fEfD$H}OH}LHйH]LeH]SATHd$HH4$IH<$ Ht$֪Ht$LH膹Hd$8A\[SATHd$H<$HIH<$ Ht$膪H|$LH6Hd$8A\[SATHd$HHIHHHLHHd$(A\[SATHd$HIHjHLHHd$(A\[SATHd$HHIHH4HLHHd$(A\[UHHd$H]LeHIHEH$fEfD$H}该H}LH萾H]LeH]SATHd$HH4$IH<$ Ht$6Ht$LHFHd$8A\[SATHd$H<$HIH<$ Ht$H|$LHHd$8A\[SATHd$HHIHHDHLH趽Hd$(A\[Hd$FHd$Hd$&Hd$Hd$Hd$Hd$Hd$Hd$ƙHd$Hd$HHf8tpHd$Hd$HHHHZHd$Hd$HHHHHd$Hd$HHHHd$UHHd$H]LeHIHEH$fEfD$H}OHuHLЬH]LeH]UHHd$H]LeHIHEH$fEfD$H}H}HL耬H]LeH]SATHd$HIH$H׹ Ht$臦Ht$HL7Hd$8A\[SATHd$HH4$IH<$ Ht$6H|$HLHd$8A\[SATHd$HIHH藡HHL詫Hd$(A\[SATHd$HIHjHHL|Hd$(A\[Hd$HHHH蚮Hd$Hd$HHHHHd$SHHH;ts[UHHd$H]LeHIHEH$fEfD$H}OHuHLH]LeH]UHHd$H]LeHIHEH$fEfD$H}H}HLH]LeH]SATHd$HIH$H׹ Ht$臤Ht$HLwHd$8A\[SATHd$HH4$IH<$ Ht$6H|$HL&Hd$8A\[SATHd$HIHH藟HHLHd$(A\[SATHd$HIHjHHL輬Hd$(A\[Hd$HHHHZHd$Hd$HHHHjHd$Hd$HHHMHd$UHHd$H]LeHIHEH$fEfD$H}OHuHLбH]LeH]UHHd$H]LeHIHEH$fEfD$H}H}HL耱H]LeH]SATHd$HIH$H׹ Ht$臢Ht$HL7Hd$8A\[SATHd$HH4$IH<$ Ht$6H|$HLHd$8A\[SATHd$HIHH藝HHL詰Hd$(A\[SATHd$HIHjHHL|Hd$(A\[Hd$HHHH躶Hd$SATHd$HIHHמHHL艶Hd$(A\[SATHd$HIH語HHL\Hd$(A\[UHHd$H]LeHIHEH$fEfD$H}/HuHLH]LeH]UHHd$H]LeHIHEH$fEfD$H}ߜH}HLH]LeH]SATHd$HIH$H׹ Ht$gHt$HLwHd$8A\[SATHd$HH4$IH<$ Ht$H|$HL&Hd$8A\[SATHd$HIHHwHHLHd$(A\[SATHd$HIHJHHL輴Hd$(A\[Hd$HHڜHd$S@0HH=vW[Hd$HH蚜Hd$S@0ǢHH=v[Hd$H!H^Hd$S@0臢HúH9vպ[Hd$&Hd$S@0WHHH9v蠺H[Hd$HHHܛHd$S@0HHH=vS[Hd$HHH茛Hd$S@0跡HH-H=v[Hd$HHcH=Hd$S@0gHH-H9v诹[Hd$Hd$Hd$@0#Hd$Hd$HD$D$|$ HT$ H$fT$(fT$HoHd$8Hd$薟$$Hd$Hd$HD$D$|$ HT$ H$fT$(fT$HHd$8Hd$6$$Hd$UHHd$HHUH$fUfT$H軘H]Hd$<$,$Hd$Hd$HH4$HH<$ >Hd$Hd$H胠,$Hd$Hd$覗Hd$Hd$膜Hd$SH$HH4$HH|$Ht$HaH$[SH$HH,HH1H$[SATH$HIHDŽ$HDŽ$HDŽ$HT$Ht$(wHcHcHT$hA$H%HtH-@fA$ff-f-f-f- f-Xf-f-1f-f-f-tpf-f-"f-?f-[f-wf-f-EH1蕗ID$HH0At$HHiAt$HHcTAD$D$pD$pۼ$H$H$f$fD$HpID$HD$pD$pۼ$H$H$f$fD$H$誕HH$HfID$H$ Ht$pH$7HHt$pHfID$H$݄$ۼ$H$H$f$fD$H|$pHHt$pHfAt$HcH|$pHHt$pHf\It$H|$pHHt$pHf6At$H|$p˕HHt$pHfAt$H|$p褕HHt$pHfAt$H|$p~HHt$pHfIt$H|$pXHHt$pHfIt$H|$p2HHt$pHfvIT$H$H$\H$H|$p*HHt$pHf.It$H$aH$1H$H$H$H$H$H|$p趒HHt$pHfIt$1H$kH$H$H$H$H|$pWHHt$pHf[+fA;$uID$HHpHf4|*I|$A$%!HvHcHID$f0HH|$p膓HHt$pHfID$@0HH|$pYHHt$pHfID$0HcH|$p.HHt$pHfrID$$ل$ۼ$H$H$f$fD$H|$p訑HHt$pHfID$HH$݄$ۼ$H$H$f$fD$H|$pPHHt$pHfID$HH$ Ht$pH$ݔHHt$pHfID$HH$݄$ۼ$H$H$f$fD$H|$p赐HHt$pHf)ID$f0HH|$p踑HHt$pHfIt$H|$pHHt$pHfID$0H|$piHHt$pHfID$0H|$p@HHt$pHfID$0H|$pHHt$pHf_ID$H0H|$pHHt$pHf9ID$H0H|$p̐HHt$pHfy yy谀H$H$H$HD$hHt H$A\[Hd$fHd$SATH$H|$H4$Hu'Ld$H\$Hu蒮H:nLShHD$H|$HT$Ht$0|HZHcHT$punHD$H|$1VgH|$xH5JHfHD$HxHt$xHfHD$H|$tH<$tH|$HD$HhHD$pHtpHT$xH$|H?ZHcH$u&H<$tHt$H|$HD$HP`蚀H$Htて辁HD$H$A\[SATH$H|$Ht$H$H|$u'Ld$H\$Hu HlLShHD$H|$HT$ Ht$88{H`YHcHT$xuXHD$H|$1eHD$H4$HxHfHD$H|$tH|$tH|$HD$H}HD$xHtH$H$zHXHcH$u'H|$tHt$H|$HD$HP`}!}H$HtjEHD$H$A\[Hd$HFHd$SATAUAVHd$HIIALH=LH|$$0EtAt>At^AzHt$$HHT$H>HHt$HHfzHt$$HHT$HUHHt$HHfTHt$$HHT$HHHt$HHf.Ht$$HHT$H)HHt$HHfH fA$f;CuID$HxHHf,fA<$uH)\$HD$HAD$HN Hd$xA^A]A\[SATHd$HIHHH|$$Ht$$H0u A$} A$A$Hd$HA\[SATAUHd$IHAHHH|$$AAt'At:AtMAt]AtmAyHt$$HyHt$$H{`Ht$$HbJHt$$HL4Ht$$H6Ht$$H LHd$PA]A\[SHHH{pbf[SATHd$HIt HBID$HBHPH=G vzID$fCfA$Hd$A\[Hd$H#sHd$SATAUAVH$xHIIfAHD$xHT$Ht$0vHTHcHT$pfAEf;CyfAu;IEHpH$賌H$1H|$xHT$xLHHHHrf$IEHxO\$LAHHLLAH' yH|$xvHD$pHtzH$A^A]A\[Hd$HԳ1ҾH_H=^1Ҿ"_H={1Ҿ"^hcH=1Ҿ"^ H5H= v JH=v"H` vHd$Hd$H=D v`Hd$SATAUH$pH<$HIIH<$HHT$Ht$ tHRHcHT$`vAEA$H$HD$hHtH@HHT$hHH@5v@:t HT$hHH@:t HT$hHH| \HtHxHT$hH|\thH$HT$pHHtH@DAEH$HT$xHHtH@HD:vA$H4$HtHvHHH$H$HtH@H|H$HPT: vudHtH~XH$H|\tEH$H$HHtHRD:| vA$H4$HtHvHHHH4$(vHHD$`HtwH$A]A\[H$H|$H4$HT$HDŽ$HT$ Ht$8rHPHcHT$xH= v1]HD$H$H$RrHzPHcH$u]H4$H|$Ht$H|$Ht$HT$H|$jHD$HH|$H$H$H|$ uH|$]H$Ht}vtH$;HD$xHt\vH$Hd$H|$H4$H|$1vH= v%\HD$HT$Ht$0LqHtOHcHT$puH4$H|$Ht$H|${ FtH|$<]HD$pHtuHd$xSH$H|$H4$HT$L$HD$(HDŽ$HDŽ$HT$8Ht$PpHNHcH$4H|$1yH\$(HߥHHL$4HT$0H<$fH= v[HD$ H$H$&pHNNHcH$H$ߥHD$(H$HžDH$t$1H$H$H$H$1ɺH$bH$H|$ Ht$H|$ Ht$H|$ rrH|$ [H$Htt|rH$ޥH$ޥH|$(ޥH$HtsH$ [SATHd$HAHD$`HHt$nHLHcHT$Xu4A1H|$`HT$`HsH{1ߥHCHtH@C qH|$`ޥHD$XHt1sHd$hA\[%1@v@sSATAUAVHd$IAE0A;^ IVHctL!HvHcHAŃ t0 AŃ0 AŃ t+t -t0 AŃ tAr mAŃAr SAŃ tA;AŃ ta#AŃAAŃaAŃ t0 rr AŃ0 rr AŃ t0 rAŃ t0 r1uAŃ0 r^AŃ0 r1GC?;73/HOD:hHOD:hIFHcD:lADHd$A^A]A\[SATHd$HAHSIctHnr.v t tC%$H,OBH OB HSMcBD"%Hd$A\[SATAUAVAWH$pH|$xH4$HۥHD$HD$HT$Ht$0(kHPIHcHT$p"HD$xHxH4$~HHD$xHxH4$ڥHD$xHx1ڥH\$HVڥHHD$xHH%HD$xHP$HD$xHxHD$x@(E0Ƅ$E0Ht$H|$zڥHD$HtH@AAq1DHT$HcDdEtAH|$x5E06DHt$H|$p蓇Ht$pH|$ҥHt$H|$p資Ht$pH|$tҥLHt$gҥeH|$pѥHѥH|$ѥHD$hHtfHd$xA^A]A\[SATAUAVHd$HIH$HѥHD$hHT$Ht$ aH @HcHT$`s%1H|$hۥHT$hLH4$AH DDs A|HE1fAHSIctHht"HSIcŊD:C%uL|IcՊK%LE9xdH|$hХHХHD$`HteHd$xA^A]A\[SATHd$HA@HFt$AH6tAHs0Hd$A\[Hd$PHd$SHd$HH4$HKХHT$Ht$ g`H>HcHT$`uH{H4$ߥHt H{H4$4Х_cHϥHD$`HtdHd$p[SATAUAVAWIHE0IcV HHtH@H9u4Ef A|'E1@AIctDLtE9ADA_A^A]A\[SATAUAVAWH$PH|$H$H$HFϥHD$HD$(HDŽ$HT$0Ht$HD_Hl=HcH$H|$1ϥHD$X |`1H$fDH$$H|$1H$٥H$Ht$H|$1ϥ$9HD$x$E1E0gAwHL$ HT$HAńU|$JH$:D$ :A2fDE8HL$T$ H4$HqAĄtEHcL$HH4$H|$(^HcT$H H$HtH@Hu AAH4$H|$(ͥH1ͥHD$x(H$gAWD$9PH$H$DH$Hc$HD$(HtH@H9HT$(Hc$| u H|$ZߥHc$HT$R%T'H|$:ߥHc$HT$(Hc$T T0H$$9eHD$(HtH@H$D$gPgA_9kH$H$H$$?HT$(Hc$| u H|$ޥHc$HT$R%T'H|$iޥHc$HT$(Hc$T T0H$$9tAH4$H|$(˥H1˥HD$x(H$gAWHD$X 9{H$H$H$Hc$HT$(HtHRH9@HT$(Hc$| u H|$ݥHc$HT$R%T'H|$jݥHc$HL$(Hc$TT0H$$9eHD$(HtH@H$HD$P gA_9H$H$H$$|sHD$(Hc$| u H|$ܥHc$HT$R%T'H|$ܥHc$HT$(Hc$T T0H$$9xEuD|$gAwHL$ HT$HAEHD$x(H$HD$X 1H$H$HD$H@Hc$tH|$H$Hc$| u H|$ۥHc$HT$R%T&H|$ۥHc$H$Hc$T T0H$Hc$H$HtH@H9$9@H$HtHRH$HD$P H$H$H$HD$HPHc$tH|$unH$Hc$| u H|$ڥHc$HT$R%T&H|$ڥHc$H $Hc$TT0H$$|$UH$Ht$ȥF[H$ǥHǥH|$ǥH|$(}ǥH$Ht\H$A_A^A]A\[SHd$H<$@HˁۥHd$[SATAUAVAWHd$H<$II0H$H@D` A9|MgDnAH$H@HPIctH$Hx+tE/H$HxDDAE9Hd$A_A^A]A\[UHHd$H]LeLmHIMLjƥLHOu.HuHPH=EOKHH5HXH]LeLmH]SATAUHd$IIIEH$HD$HD$pHT$Ht$(:VHb4HcHT$hubA\$$IT$HLqAD$$H$Ht$LA\$$Ht$LÄtH$LHt$pHt$pLťXH|$pEťH=ťH|$3ťHD$hHtTZH$A]A\[UHHd$H}HHEHUHuJUHr3HcHUu'HuH}ϥHEHEH}贿HE;XH}ĥHEHtYHEH]UHHd$H}HgH}n؉EEH]UHH$pH}HuHHDžxHUHu`TH2HcHUu1HuHxΥHxHEH}Hu萿HEGWHxåHEHtXHEH]UHHd$H}HuUH pEEH]UHHd$}HHENH]UHHd$H}HHE8t*HExtHExtHEx tEEEH]UHHd$H}H跆HE8tNHExtBHExt6HEx t*HEx tHExtHExtEEEH]UHHd$H}H7HE8tHExtEEEH]UHHd$H}H煦HE8tHExtEEEH]UHHd$H}H藅HE8EEH]UHHd$H]H}HuH _HEH;EtHuH}H+,HÈ]EH]H]UHHd$H}HHEHǺH?)H]UHHd$H}HDŽHEHǺH(HE@H]UHHd$f}HuH胄HEfUfHEf@HEH5DHxH HHEH5ѴDHHHHEfǀHEfǀ EEH]UHHd$H냦EEH]UHHd$H軃/EEH]UHHd$}HuH脃HEHƋ}bEEH]UHHd$}HuHDHEHƋ}aH]UHHd$}HuHHEHƋ}aH]UHHd$H}H炦HEHaH]UHHd$H軂fEf=r f-tf-t EEEEH]UHHd$}HuHXdHEHHHHzHuЋ}ot EEEH]UHHd$}HuHXHEHHHH HuЋ}pt EEEH]UHHd$}HuH脁EHcEHH}%HuHU}pEEH]UHHd$}HuH$EHcEHH}X%HuHU}pEEH]UHH$H}HHH"HH}ƥH]UHHd$Љ}HuUMH(nHcEH‹MHu}HlE܋EH]UHHd$Љ}HuUMH(HcEH‹MHu}lE܋EH]UHHd$}HuЉUȉMHhHHuHHALEHcUȋMHuЋ}kEEH]UHHd$Љ}HuUMLEH0jEHEILMHcUMHu}lEԋEH]UHHd$}HuHEHEHHU}jmEEH]UHHd$}uH~E}mEEH]UHHd$Љ}uUHMDEH0z~EHMUu}AnEԋEH]UHHd$Љ}uUHMLEH0*~HEIHMUu}nEԋEH]UHHd$f}H}EU %fEEH]UHHd$}H}}&EEH]UHHd$}uHu}E}xkt EEEH]UHHd$}uHUH !}HEH‹u}.EEH]UHHd$f}H|EU %fEEH]UHHd$}H|}%EEH]UHHd$}Hx|EoEEH]UHHd$}uUH B|Eu}gEEH]UHHd$Љ}HuHUHMLEH0{HEHMHUHu}IbEԋEH]UHHd$}H{HE}t } tH8uEEEH]UHH$`H}HuHUMDEDMH}tH}kH,{HUHhwGH%HcH`EH}H1MЋU؋uH}HUfBE}t0}uEE EEE EEEċuHZẼ}u}uuH<EIH};H}2H`HtQKEH]UHH$@H}uHyHwvHH} lHDžXHUHh+FHS$HcH`:E]E'tHEHxH5DWťHtHEH@fEHEHpHX3`HXH5}DťHt_EbEEHEHxvE}thEH}HEHxOHHHPHHHEHPHEH}uHEHxHuH$H}{t,HEH@f HEHPHEHBHEHBEGHXVH5vH}VjH`HteHEH]UHHd$H}HwHEHHdfEf=r/f-tf-t!uH}pH}HuHU H]UHHd$Hvf} tEE}EEH]UHH$@HHH}uUMLEH}sH4vH vHH>hHDž`HHp[BH HcHhH}HEH}t }t HuH`\H`H5DzHtH}H5DHEHPH}}rtOHH}urEHH}HEE]ԃ}JEDEЃEЋEЋH`nH`H}HEHP;]~ƒ} t }tHuH`[H`H5ɥD\HtH}H5"DHEHPH}~HPHXHPHHXHHuHH}HiEE]ԃ}VE@EЃEЋEHHHH`}H`H}HEHP;]~H}HEHtH}H5DHEHPBH`=H}4H5 vH1fHhHt@DHHH]UHH$@H}uUMH}HrH vHH}dH5u vH}dHUHH?H/HcH@uaH}qyfEf}t;H}H軮Hu}߮fEHUHuH}fEfEAH}H5 vH}eH5vH}eH@HtCEH]UHH$@H}HuUMDEH}魥HqHuHH}cHUH`=H HcHXH}Hu軭H}bnEЃ}u4}nHuHmEԃ} H}Huu]H}Z{HHHPHHHEHPHEHUH}HuH莟Eԃ} H}HuA@H}蘬H5uH}cHXHtAH]UHHd$H}H}蚬Hp^pHUHufDEEg@EHcEHUHtHRH9 ED@=HEHcU|HuH藸E}|EEg@U܈DԃE}}H}2HcufUf?fMf0g T0E}@uwH}HcufUffMf<g T0E}@u6H}譵HcufUffMf?g T0EHcUHEHtH@H9mHcuH}辳H]UHHd$H}HuHUH8fHEHtH@EHcuH}mEEEE@HEHcUDEE!_rrHUHcEH DEE@E}?wEU ЉE؃m}unH}iHcM̋UTEH}HHcM̋UTEH}'HcM̋U؁TEEEE;E EԃttLsEEH}̳HcM̋UTEH}諳HcM̋U؁TE)EEH}肳HcM̋U؁TEHcuHH}űH]UHHd$H}HuHUH0dHEHtH@HHHVUUUUUUUHH?HHHH}eEEMfHEHcU؊DEEE$EfEf%EHcUHEHtH@H9~HUHcE؊DEEE$UgEfEf%EHcEHUHtHRH9~7HUHcE؊DEEE$UgEfEf%?EE@E@E@EEg@EEDH@HUHtHRH9~)H}轱HcuHMUTHRTT0E}}HcEHUHtHRH9HcuHH}ӯH]UHHd$H}HuHbHEHHuHDH]UHHd$H}HuHsbHEHHuHٔDH]UHHd$H}HuH3bHEHHuHDH]UHHd$H}HuHaHEHHuHD H]UHH$pH}HuHaHEHEHDžpHUHu-H HcHxH}H趝H}H5D覝HuHpGHpH}RH}tHuHH=DHtoHuHH=DͰHtKHuHH=D詰Ht'HuHE8HEHEHcEHHHH~HtHt)HtHkHcMHVUUUUUUUHH?HHUJHcMHVUUUUUUUHH?HHHBE%HcMHVUUUUUUUHH?HHHBEHcMHuH}H菮H}tOHcUHEHtH@H)¾ Hp菷HpHuH}&H}HUHu/HpdH}[H}RHxHtq0H]UHH$pHxH}HuH_HEHEHUHuT+H| HcHUH}H-HEHtH@H@|ZHuHDH}H]HEHtH@H@HeD4H}HuH}H-H}@H}7HEHtY/HxH]UHH$pH}HuH]HEHDžxHUHu8*H`HcHUH}HHuHx1DHxH}qNH}tuHuHH= D\HtQHuHH=D8Ht-HE8HH5fDѭHEHcEHHHH~HtHt)HtHkHcMHVUUUUUUUHH?HHUJHcMHVUUUUUUUHH?HHHBE%HcMHVUUUUUUUHH?HHHBEHcMHuH}HH}tRHcUHEHtH@H)¾ HxHxHuH}貙H}HuHSD~+Hx헥H}䗥HEHt-H]UHHd$H}HuH[HEHUHu(H.HcHUH}HߗEgfDHEHcUDEE}=tHUHcEDEEm@m*uH}ȡHUHEH0H}蟘HcEHUHtHRH9~*H}ٖHEHt+H]UHHd$@}uHZEU1UH u3UEH]UHHd$H]H}HcZEH]HtH[}1EEg@EHEHcU|uQE;]~׋EЉEEH]H]UHHd$@}fuHYfEf%f3EHuBE%1fUEH]UHHd$H]H}HYfEH]HtH[}4EfEg@EHEHcU|u@fE;]~EH]H]UHHd$H}HYHE@HE@EfEg@EHEUD}?}EEg@EHEUDX}}HE#EgHE@HE@ܺHE@ vT2H]UHHd$H}HuHUHMHH;XHEEHE@EHE@EHE@ E$HEgDxjDEȋM̋UHuH $ HE@gDVDE̋MЋUHuH $HE@gDp $DEЋMԋUHuH $HE@ gDνDEԋMȋUHuH $HE@gD|DEȋM̋UHuHX $ HE@gD*ƇGDE̋MЋUHuH/ $HE@gDF0DEЋMԋUHuH $HE@gDFDEԋMȋUHuH $HE@ gDؘiDEȋM̋UHuH $ HE@$gDDDE̋MЋUHuH $HE@(gD[DEЋMԋUHuHb $HE@,gD\DEԋMȋUHuH9 $HE@0gD"kDEȋM̋UHuH $ HE@4gDqDE̋MЋUHuH $HE@8gDCyDEЋMԋUHuH $HE@0BTH}LcEHUHcMH}HcůL T70BT;]~H4HHuH4HHuH4}HvH4H}H4HSHuH4CHH]UHH$HH}HuHUH}rH}rH6HEHEHEHDžH@HHHcH\HEHtH@H@ HuHHH}rH}H@6H}H@\܍H]HtH[}qEEg@EH}MLcEHUHcMHuHc}̊L T>0BTH}!LcEHUHcMH}HcůL T70BT;]~HXHuHXHuHXHXH}{HXHuHXoHuHX_H}HX?HpH}pH}pH}pH}pH}pHHtHH]UHH$HH}HuUHs4HDžHHHHޤHcHHEHtH@EHcEHcMHHEHcEHcMHHUHdZ]})EEg@EHuHd;]~߃}.HcMHuHHTHHdH}Hd H`oHHtHH]UHHd$H}HuHUHMH0+3HEEHE@EHE@EHE@ EЋEԋu1#u3uuHE0H E܋E؋u1#u3uuHEpHEЋE܋u1#u3uuHEp HEԋEЋu1#u3uuHEp HE؋Eԋu1#u3uuHEpHE܋E؋u1#u3uuHEpHXEЋE܋u1#u3uuHEp H0EԋEЋu1#u3uuHEpHE؋Eԋu1#u3uuHEp HE܋E؋u1#u3uuHEp$HEЋE܋u1#u3uuHEp( HEԋEЋu1#u3uuHEp,HhE؋Eԋu1#u3uuHEp0H@E܋E؋u1#u3uuHEp4HEЋE܋u1#u3uuHEp8 HEԋEЋu1#u3uuHEp<HE؋U؋E!ЋM؋U! ЋMԋU! EHUgyZHE܋U܋E!ЋM܋U! ЋM؋U! EHUBgyZHOEЋUЋE!ЋMЋU! ЋM܋U! EHUB gyZ HEԋUԋE!ЋMԋU! ЋMЋU! EHUB0gyZ HE؋U؋E!ЋM؋U! ЋMԋU! EHUBgyZHE܋U܋E!ЋM܋U! ЋM؋U! EHUBgyZH[EЋUЋE!ЋMЋU! ЋM܋U! EHUB$gyZ HEԋUԋE!ЋMԋU! ЋMЋU! EHUB4gyZ HE؋U؋E!ЋM؋U! ЋMԋU! EHUBgyZHE܋U܋E!ЋM܋U! ЋM؋U! EHUBgyZHgEЋUЋE!ЋMЋU! ЋM܋U! EHUB(gyZ H*EԋUԋE!ЋMԋU! ЋMЋU! EHUB8gyZ HE؋U؋E!ЋM؋U! ЋMԋU! EHUB gyZHE܋U܋E!ЋM܋U! ЋM؋U! EHUBgyZHsEЋUЋE!ЋMЋU! ЋM܋U! EHUB,gyZ H6EԋUԋE!ЋMԋU! ЋMЋU! EHUBHuH\DH}HuHWtHuHCuEH}cH}cHEHtEH]UHHd$H}HuH 'HEH&E}}}|EE}uRHEHtH@}>EUgRUHUHcMT 0 rsE;E~ЊEH]UHH$`H}H&HEHEHEHDž`HUHpHAѤHcHhHuH}bEH}H5C[D^rHt EEEEiHuH}H![D}t H}tEE}5EH}t}H}tHuH}HZDHuHZDH`H`H}bH`aHUعH5ZDH`cH`$Eԃ}| }{H`@aHUH5`ZDH`bH`s$Eԃ}| }*H}t}t}tEH}lH``H}`H}`H}`HhHtEH]UHH$pH}HuH}`Hd$HEHDžxHUHuHΤHcHUH}Hx`EEg@EHuH}HXDH}4#EuHxljHxHEH0H}@a}}3Hx_H}~_H}u_HEHtH]UHHd$H}H}_HK#HEHUHuHͤHcHUuQEEEg@EHuH}HWDH}4"EEEE}}XH}^H}^HEHtEH]UHH$@H}uH~"HDžHHDžXHUHuH̤HcHU^H}H^EfEE%fEEEE%EE䉅THHTHHcTHTHXgHXj|HXH`H5VDHhETHHXHHcTpHXHHxgHH{HHHpHUDHxH`H}HaEEE%EHEHH`E䉅THHXHHcTHXHHfHH@{HHHhH UDHpETHHXHHcTFHXHXNfHXzHXHxH`H}H`lHH[HX[HEHtH]UHH$pHpH}HuH}[H}HEHUHuHɤHcHxH}H[H}tH}:mE܃}HE8:tHUH}H5.TDy\HEHUHtHR|:tHuH}HSDF\Uܸ)ЉEH}HZ]܃}1EEg@EHuH}HSD[;]~HuH}H*SD[H}HMHuHRDH}ZH}ZHxHt%HpH]UHH$PH}HuH}ZHHEHDžXHUHhH$ȤHcH`EEg@EHEU}}E@Eg@E؋EfDE}}EHuHXmHXH}mYH}t-f}HuH}HQDH}H5LRDhHtH}t EfDE`HXXHUȹH5QDHXZHXEā} }|EfUfTEEH}?EfDEg@E؋EDEEԋEDE%EHMHcEHUԈHMHcEHHPEЈ}}]HXWH}WH}WH`HtH]UHH$H}HuHEHH|H@HEHWHDžHDžH`H HŤHcHUH5PDH}HHH5~PDH}HHEEE@EEEEEH@|E|gUfDUEf|EtEEE;E:Er1EEH}HuHHEH5ODH}HH}s`E:ErH}HuHHH}H'fH}HfEEfEEEEs}u>HEH8tH}H5rND VHEH0H}HtNDWEHEHHEtEHHHH.NDHHH}HKYE}s2}u:HEH8tH}H5NDVUHEH0H}HMDhVHEH8tH}H5NDUEȀt"HEH0HtHvHH}eHEH0HoHH}THNTHBTHEHtdH]UHH$`H}HuH}CTHHDžhHUHuGHo¤HcHUH}H THuH=ULDwEHEHHpH8LDHxHMHtHIHcEH)HcEHPHuHhfHhHEHpH}H^WHUHtHRHcEH)HRHcuH}l}|NHEHHtH@H%HEH8.tH}HHAl\HhRH}RHEHtH]UHH$ H}HuH}RHtHDžHHDžPHUHxHHcHpRHuH}2EEEEԋuԺHPHPHXHJDH`uغHHjHHHhHXH}HUEEg@E܋EDE؋EDEHEHH HIDH(uԺHH HHH0HIDH8uغHP HPH@H H}HU}~EhHHPHPPH}PHpHtH]Hd$H'HHt =!H!Hd$SATHd$HcHcHc)eH譿AH&HHt =U!HR!D Hd$A\[SATHd$HAH$McHcHHM1ɿ,豴H9AH?&HHt = H D HHd$A\[SATHd$HME!L $LcHcMHH¿,BHʾAH%HHt =r Ho D HHd$A\[SATHd$HAH$McHcHHM1ɿ-ѳHYAH_%HHt = HD HHd$A\[SATHd$HML $LcHcMHH¿-eHAH$HHt =HD HHd$A\[SATHd$HHcH¿1CH苽AH$HHt =3H0D Hd$A\[SATHd$HcHc2許H0AH6$HHt =HD Hd$A\[SATHd$HHHcH¿+肱HʼAH#HHt =rHoD Hd$A\[SATHd$HHcH¿*#HkAHq#HHt =HD Hd$A\[SATHd$HcHc0舰HAH#HHt =HD Hd$A\[SATHd$HHHcH¿3bH誻AH"HHt =RHOD Hd$A\[SATHd$HHHcH¿4HJAHP"HHt =HD Hd$A\[SATHd$HEHcHcHcI6H交AH!HHt =HD Hd$A\[SATHd$HMHcHcHcI7輯H脺AH!HHt =,H)D Hd$A\[SATHd$IHcHcHc5"H*AH0!HHt =HD Hd$A\[SATAUHIIIt$H{豯fA$ADAEA]A\[SHd$HHT$pHHT$pH$[SATHd$HD$pHT$pH^AHcT$pHsH|$HcT$pH߾DHd$xA\[SHd$HHT$pHHT$pZH$[SATHd$HIMDž~LH0Hd$A\[SATHd$HI Dž~LH 0Hd$A\[SATAUAVHd$II͉%AƄt LLqDHd$A^A]A\[SATAUAVHd$II͉AƄt LLDHd$A^A]A\[Hd$vu1Hd$H8u@ÊPPt u@@@SATAUHC=o-t:ucfDHSHs(;1IIu )tLc fAe.HSHs(;1wIIu tLc fAdI  tt;tdHHHt H : H HfHHHt H 8 H HfYHiHHt Hz : Hm Hf+H;HHt HL : H? HfD(HCA]A\[SHH؁xuHxtHaHC[HSATAUIIL.fTA$AD$PHID$0H ID$8H}ID$@HID$HAD$HcIt tt*3fADŽ$p &I$pH?D4Ȥ fADŽ$p L.SA]AEPH:IE0HoIE8HIE@H IEHAEHfcIt tt(0fADžp $IpH>DǤ fADžp A]A\[SATAUIIL.vA$ID$AD$PAD$L.MA]IEAEPAEA]A\[SATAUHd$I$fLHAAu tDHd$A]A\[SATHd$H4$HT$DHߺAAu ktEHd$A\[SATAUAVHd$IMH4$HT$H4$HT$AƄt LL_DHd$A^A]A\[SATAUAVHd$IMH4$HT$H4$HT$#AƄt LLODHd$A^A]A\[SATHd$HIDž~LH0Hd$A\[SATHd$HIMDž~LH0Hd$A\[Hd$膯Hd$Hd$vHd$Á % %SATH$HAH$HT$Ht$(ҥH諰HcHT$hH1aBDd$E1AD|HT$pHH1Ht$pKH01{`H3HH$1:CA}H3H1H};D CA|եHmAHD$hHt֥H$xA\[SHd$H0$Hߋ4$Hd$[Hd$H<$RAHT$Ht$(nѥH薯HcHT$hu*D$ D$Ht$ H<$<tD$ D$[ԥH@HD$hHtեD$Hd$xSATAUAVAWHd$H<$IH<$@HD$HT$Ht$0ХHHcHT$pE0AH$HtH@|.1H $HcT.t0 91ې}JH4$.TAąIcHH4$H|$pRIcH YH4$H|$@HD$HtH@HRHt$HT$xUADd$xEu1DlTIcH9uLHD$8 AAҥH?H|$?HD$pHt4ԥDH$A_A^A]A\[Hd$H<$?HT$Ht$(.ϥHVHcHT$huH<$芫D$1ҥH>HD$hHtӥD$Hd$xHd$V$Hd$Hd$6$Hd$Hd$Hd$Hd$Hd$Á % %SATHd$HAH1ҾNH;PDH ՌuPHPDH uPHODH uPHOA AgAT$H ^uHd$A\[SATAUH$0HH4$HT$HDŽ$HT$PHt$hGͥHoHcH$H56DH|$HH56DH|$0H0E0A@AAf#H<$Ѻ;~ H<$Hw!HD$`Ht蘶Hd$hUHHd$H]LeLm?IHDL1pBHcL1nKLA|VAA>IDTL1K L1QL AD9z>HAmH]LeLmH]SATAUAVHd$HH4$fT$fL$H<$ HT$Ht$0趰HގHcHT$pAH$HtH@H=E1H H4$.4AƅuH$HtH@AgEnIcD,IcHtIcH<$ gAEAE~IcH9EuIcD$ fT$IcHtH|$貄AD$ fT$IcH4H|$~AŲHHD$pHt>DHd$xA^A]A\[0DAD<?vAD<uADAE0EuHcH McL9}HcH IcH9DHH:H9fRfQgAP SATAUAVHd$HIAH1ҾL/AfDDA<?v3DI<Hr$  AcDA<tYAtH{0IcD.ADfAf$HZ0IcHtIcI|$$A$ADA<RIcHH1.Hd$A^A]A\[0HJ:OuH:uBVt:fVfxu/fVfu$HV сfNfr1HG fW113D€| ?v€| u T DGHcI9~9SATAUAVAWH$`IIAL$E0ܥAܥAFAFAFfAFfAFfAFfAF 1Ҿf$fD$5HZH HcӋT$IcH LIADA1MHviHwH|$詾Ht$DHt$gA|$A11ز D詋QD$LLL$ID1ɺ D{ | LLtgSH$ADH$A_A^A]A\[SATAUAVH$HAH@HH1fE1E1DA,@IcTIcH%?HHH A!AA}EtcHHtHRIcH4H1+H-IcHHtIcH|IcH3H1H DEAEAENHHHtH@|.uH3HtHvHH1+H$A^A]A\[UHH$ H(L0L8L@LHHPHuIHXEH}HDžHHh멥HHcH`E1HuHLHHPu AHAHcH;X~DX1&@ f fft ftJHcI4H}A A | A fH1(HHgEFLHXHPA0A9|(HHHH}sHgH`Ht膬DH(L0L8L@LHH]UHH$pHpLxLmLuL}H}IIH}'HUHuEHmHcHUuH1E1 fDLLHuE1AăELcHH8vI9~H}lHEHt莫DHpLxLmLuL}H]UHH$HLLLLH0HuIH DH(H}HDžHH@$HLHcH8E1HuHLHH0HH} AEAA ~A IcH HJH9~H HBAgA\$|^AAIcHHcuHI H@IDIcHfAD IcHIt DHyD9EAHdHcH; ~ E1? f fftbfIcHI4HyA f( | A fH1R$HH(gD@LH H0A1AD9|(HHHwH}HH8Ht᧥DHLLLLH]UHH$pHpLxLmLuL}H}IIH}HUHu襢H̀HcHUuH 1E1 fDLLHuE1AăELcH7H8?rI9~uH}HEHtDHpLxLmLuL}H]UHH$ H(L0L8L@LHHPHuIHXEH}~HDž`HHp苡HHcHhE1HuH dLHHP"u AHAHcH;X~DX1A@ fff fHH`H`HcIťHHH|$ H|$LHt$`HH|$H|$4ƸAAEl$AI|$1#HH|$H|$tRI|$uI|$Ht$9ID$HD$pHCHD$xHD$H$Ht$pI|$1ɺyH|$uEuHdAĥE辕HH|$ HD$hHt-DH$A_A^A]A\[SATAUH$H<$IH<$H5`uH$ݷHDŽ$H$H$HpHcH$9E0H$\HғH0HCH$H$@鵺H$HMғH0HvCH$H$H|$ H|$ĥf5DH<$tH$H$H<$`A ;$AEuH$H|$uH|$;6åEt.LH$$AD$I|$H$ΓH$!HH5_uH$H$Ht#DH$A]A\[SHd$H<$HH<$ HT$Ht$ &HNnHcHT$`uHH<$1-HHD$`Ht覔Hd$p[Hd$H1oHd$SATAUHd$H<$mHD$HT$Ht$0耏HmHcHT$pD$E11fDH4$.ÅuH$HtH@HHcHH4$H|$ZHcH Ht$HT$xAċ\$xuIcDdAA}qEuD$ߑH7H|$-HD$pHtND$H$A]A\[SATAUAVH$xHIH$HD$HD$HDŽ$HT$ Ht$8!HIlHcHT$xE0fDLl$LLH1F=AH94H|$Ht$H|$KH|$tlHt$HHt$H$$H$D$H<$t |$tAE0Et!D$AD$LH4$SI|$1GEuHA蒿E)TH$HH|$H|$HD$xHt謑DH$A^A]A\[SATAUH$H<$IH<$H5jZuH$]HDŽ$H$H$wHjHcH$>E0H$H͓H0HfCH$YH$@iH$H̓H0HCH$H$H|$OH|$ 耾f5DH<$tH$H$H<$A ;$AEuH$H|$uH|$ 趽Et3LH$A$uAD$I|$H$IH$HH5XuH$萱H$Ht螏DH$A]A\[SHd$H<$HH<$zHT$Ht$ 薊HhHcHT$`uHڋ59TuH<$虍HHD$`HtHd$p[Hd$H1_Hd$SATAUAVAWH$pHIH$HD$HD$pHT$Ht$(ۉHhHcHT$hE0ILELH19H4HHH|$H|$JLHt$hHH|$Ht$/ AŅIcHHt$H|$pq H|$p1fAD$fHL$HtHIIcH)IcHPHt$H|$p, Ht$pI|$ID$HtH@HAI|$1@HH|$+H|$t`ID$HtH@HuI|$Ht$qHHEDHEH8H5xAHhHEH8HEHE@?HEH IfTHEH IfTf/HEHH0HeCf/0 %HECf/0)*HEH IfTYHE~HEHH0HCf/0 %HCf/0)*HEH IfTYHEHEHhMHEHEH8)HEHH!¸H!HEHHEƀHUH5hHhKHUH5lH84HH]UHH$`HhH}HuHUHMH}taHEHUHxG|HoZHcHpauEHEH}HEHHEH}1HEH@HEHt+HEHLMHMLEHUHuHEuH]H`HHCH0HCHPH}>DHEHt6H}HEHPHHEHLMHMLEHuHE}tDEMUuH}HEHP`HEHt%HEHHMLEHUHuHEH]H_HHCH0H CHPH}]ft@HEHt2H}HEHPHHEHHMLEHuHE}H}[_H}R_HpHtHhH]UHHd$H}HHHdoHuH}HEH H]UHHd$H}uHEHHUHHE}HEH8HE؀tHE؃xXt0HEH8Hc@\HHH?HHHcUHЉEHEH8Hc@\HHH?HHHcUHЉEHEH8Hc@\HH?HHHcUH)‰UHEH8Hc@\HH?HHHcUH)‰UHEHUH]UHHd$H}HHHEHpH}H]UHH$PH}HuHUH]uHEȾH=MuEHEHt8HEHHEHLLMHUHuHEH]Hn>HHCH0HCHPH}DtNHEHt@H}HEHPHHEHHEHLLMHuHE}HHE uH}1HEHE HEE؋UH}1HEH@HEHC gD@CgHH}S3HEHHEHt/HEHHEHLHUHuHEH]H%=HHkCH0HaCHPH}CtJHEHt{HUHXiUH3HcHPHMyHUH=_HHtHPHMH}H%HHuHpHHTH3HcHuHEHPHu^.WH}@HHt_YWH5LyH'{H5LyH}{HPHt&YHH]UHHd$H}HuUH}C9HUHu!THI2HcHUuJHE苀;E};HE苀;E~,HE苈HE苰DEUH}HEHVH}8HEHthXH]UHHd$H}HuUH}8HUHuqSH1HcHUuJHE苀;E};HE苀;E~,HEDHE苐MuH}HEH?VH}7HEHtWH]UHHd$H}HH@@HEH@HEH H]UHHd$H}HUH]UHHd$H}HuH}fH]UHH$`HhH}HuHUHMHDžpHUHu RHH0HcHxH}HEH8HpBHpHpˤHpH}BѤHuHEH$uHHs6uH@gX|_EfDE܃E܉HF6uH8HUHHUHpʤHpHEH8Bu;]HEHVTHpHxHtUHhH]UHHd$H}HxHEH0tEEEH]UHHd$H}HuHUHMHEH}H7EMHEHEHEHEHEHUHHEHUHH]UHH$@HHH}HuHCEHCHHEHEHHGHHHUHpOH.HcHhHHE؀x`HMHUHuH}HEH`t`HEH`Ef/`z sE`EHEH`Ef/`z vE`EHYDRHHP`HhHtSEMHHH]UHHd$H}uHEtEtt EEHEHuRQH]UHHd$H}HHU)H]UHHd$H}HHU)H]UHH$pHpH}HuHUHMHEHHHEHHEHHHUHuMH+HcHxu4&DHHEH@H;Eu H}HuUHGuPHHP`HxHtQHpH]UHH$`HhLpLxH}HuHEHPHHHUHhLH*HcH`u:,fDH HEHtHEH&HڠuOHHP`H`Ht"QH}H5G yHHEHHCHH=HUH`LHF*HcHUfHXHEHHHKH*HcHu'H}HHEHhHHNHHtgHHvKH)HcHuH}@0HEHwNPmNHHtLQ'QHBNHHP`HEHtOHEHNHHfHUHJH(HcHUHHEH5yH}йHHEHdtSH}HEHtAAH})IHEHL#BDHEHtSH}HEHtAAH}(IHEH耗L(#BDHuH%H흵LHHP`HEHt4NHEH H,AľHAžHܚHǚHEHPHuHDEeHȚAľH踚AžHxHcHEHPHEHpHDEHhLpLxH]UHHd$H}HuHEH@HUHHMEf/z sEHUHRHUHPHUEf/Ez vEE@HUHRHUHPHUEf/Ez sEE@HUHRHUHPHUEf/Ez vEE@H]UHHd$H]H}HuHUEMMDEЀ}t HUHEH}t HEHUHHEG3HE73%HH7yHڋt HEHUf/z=u;HUHEH&C\HUHEH CXHEHUf/z&v$HEHHEHUHEHHHEHUHHuH}HEH@ۀHC(]Eq\HUHEHӳC\?HUHEHCX"HUHYCHHHUH@CHHH]H]UHHd$H}HHHEHuH}HEHEH]UHH$PHXH}@uH=/yHq%HEHUHuKEHs#HcHU}HEHH<HHaHhH(EH(#HcH  H8HE}u'HEx`H}HEHHHDH"HcHuHuH}HEHGHHthHHh;DHc"HcH`u@uH}HEH;GH1GH`HtJIHçGHHP`H HtwHFHEHt\HhH`CH!HcH`uH}.F(HFH`HtrIMIHEHXH]UHH$HH}HuH(HUHxBH !HcHp HyHHEHBHEHEHHx:HHHXHBH HcHu=/@HHEЀx`tHUHuH}HEH H%ulEHHP`HHtFEfDE܃E܉HEHxE܋t$H}HEH D܋U܉D܃}|DH}&HpHtrFHEHUHH]UHHd$H}HuHEHMHHQXHHA`HEHMHHQhHHApHEHMHHHHAHUHEHxHXHHUHEHx8HHHUHEBH]UHHd$H}HHH@@H]UHHd$H}H`HEHuHEHHEHEH]UHHd$H}H1HHEHuH}oHEHEH]UHHd$H}EMEH}-EEH}J*EHcH!HH!H EHcH HH!кH!H HMHH]UHHd$H}HuEH}+EuH}.EEMH]UHHd$H}EME*uEq*t0uhHEHEH,CEVnt7HEHEHCE%ntEEEH]UHHd$H}HuUHH8=gHH}HEHHEH}HEHt"LEMHuH}1HEHuHuUH}!H]UHHd$H}HuUHEH8fHH}HEHHEHEff=r$f-tf-tf-tM MMH}HEHt%LEMHuH}غHEHuHuUH}"H]UHHd$H}HHUHHHHHEH]UHHd$H}؉uUMDEH}-HEHtaEHcH!HI!I EHcH HH!кI!I MHuH}кHEHuDEMUuH}]H]UHHd$H}uUMHEltH}HEHH}cHEHtaEHcH!HI!I EHcH HH!кI!I MHuH}غHEHuMUuH}H]UHHd$H}؉uUMDEEH uEH}HEHtaEHcH!HI!I EHcH HH!кI!I MHuH}кHEHuDEMUuH}H]UHH$pHpLxH}HuUu%HEH`H;EuHEHǀ`}u!HEH@H;EuH}1}HuH=yHEH=HHHUHu :H2HcHUuJ<DHX HEHHH;EuH}I1LIHu<HHP`HEHtL>UHuH}HpLxH]UHHd$H}؉uHUHMLEH};E|.u*HuH}EMHUHEHHEHBH]UHHd$H]LeLmH}1uEH}HEHHEHUHUHEHHEHHEH t/HEH(HEHHLEHuHE }HEHEH@@HEH@HEH腏HIHEHLI$HEHHHEHH}HEHEH@@HEH@HEHIHEHLIEHEHtHEHHuHEH]LeLmH]UHH$HhHuHpHxHHhHHhH@HH6H#HcHu,HhƀHpHxHuHhY9HHHHhHhH@HHt3;H]UHHd$H}HuHUHMHEH=@HHHtHPHUHMH}H]UHH$HH}HuHH`H 5HHcHoHEH}HEH EHuH}PHHHHEHHEHEHx7H}HEH |HEHx H}HEH EHEHxފH}HEH EHEHx賊H}HEH EHEH}HEH xHEuXHEUHEHEU)HUDxH|LEHuHUH}<HEH7?HEH7HHHH3H HcHuI;H0 HEHEHHUHtHDEHuH}0%H؇u6HHP`HHt 8DxH|LEHuHUH}MHEHHUHHEE@EHEHLHEHHEHDMHu7E;E~EEEE;E~EEEHUHEHHEHEE܃EHcTHHEHu }rHEH}HHHEHUHHXHDxH|LEHuHUH}&HEHHHHPHEf/zuEf/zu0҄tFHPHHPHEf/zuEf/zu0҄t0҄u!HEH}HH} FHEHHHEH9g4H}HHt5HH]UHHd$H]H}HƀHEƀHEHz4HHHUHu0HHcHUu?1H HEHtHEHHuH辄u3HHP`HEHt 5HEHH'HHvHUHu0HCHcHUu0"fDHXHEHHEHH輓u3HHP`HEHtw4HEu$H}HumHEHXHuȹHHEHUHHXHH]H]UHH$H}HuHUHMH};HUHu/HA HcHU HEHxHu!H}@0UHUHB HhH(.H HcH uHHEHp HEHP!HEHp HEHPHEHPHUHu1H Ht`HH>.Hf HcHuHEHx +F12<1HHt43!1H}HEHt2H]UHHd$H}HuHH}H`H]UHHd$H}HuHH}H5 VH H]UHH$HL H}HuHUHHUHu0-HX HcHUupHuH}HIHpH0,H HcH(uHuLI$/LH(Htm1/H}/HEHtQ1HL H]UHH$ H}HuHHUHxHEHUHu1,HY HcHUHEH}HEHhHEH}HEHPH}{zHHEtHEpDžxDž|pEtEHxHMH}.HEHt\HpH0X+H HcH(uH}id./Z.H(Ht911HEH]UHHd$H}uHE;Et"HEUHuH}HEH H]UHHd$H}uHUHEHHUu6HuH}HEH H]UHHd$H}HuHEHHuHEHHHuH}HEH H]UHHd$H}@uHUEHuH}HEH H]UHHd$H}uHUEHuH}HEH H]UHHd$H}uHE;EtiuH}HE@PuPHEHh6HEHPHEHXIHEH0IHEHH(!H]UHHd$H}HuUHEHHHxHuE|HEHHHxUuH]UHHd$H}uHE;Et"HEUHuH}HEH H]UHHd$H}uHE;Et"HEUHuH}HEH H]UHHd$H}HuHEH HuHEH HHuH}HEH H]UHHd$H}HuHEH(H;Et8HEH(HuHEH(HHuH}HEH H]UHHd$H}HuHEH0HuHEH0HHuH}HEH H]UHHd$H}HuHEH8HuHEH8HHuH}HEH H]UHHd$H]H}HuHEH@H;EHEH@tHEH@H}DlHEHH脔tHEH@Hx`HEHHљHUHEH@HEH@t3HEH@Hx`HEHHHEH@H}QkHEHEH@@HEH@HEH}HHEHHHHuH}HEH H]H]UHHd$H}HuHEHPHuHEHPHHuH}HEH H]UHH$@H@H}HDžXHUHu$HHcHUgHEPH}uH5vCHX誔IHEHx u*HEH8HX:HX1HXEHEHp HX_HXHhHDž` HCHxHDžp H`AH!CH=ExHHH5:H%HEH EHEPHhH#HHcH`u!HEH(HMHUHuHE &HEPH`Ht%(}HEHXHUHHHUHPHH8HPH@8f/Hzu@f/Pzu0҄tbHU HHHU(HPHPH8HPH@8f/Hzu@f/Pzu0҄t0҄E\E HHfTEE\E(HHfTEHEH(H ttHsf/EzHstHsf/EzHstHusf/Ezw^HstHNsf/Ezr7HEHXHuHHEƀHuH}HEH $HX퐤HEHt&H@H]UHHd$H}HuHEHxHuHEHxHHuH}HEH H]UHHd$H}HuHEHH;Et8HEHHuHEHHHuH}HEH H]UHHd$H}uIHU;t)UIHEHuH}HEH H]UHHd$H}HuHEHUHu H-HcHUu]HEHx HuaHtGHEHp H}ˏHuH}.wHE@PtHEHHHxHUHu%"H}HEHt9$H]UHHd$H}HuHUHUHHEHHEHEH;EuHEH;Eu0u/HUHEHHEHHuH}HEH H]UHHd$H}HuHUHUHHEHHEHEH;EuHEH;Eu0u/HUHEHHEHHuH}HEH H]UHHd$H}HuHUHUHHEHHEHEH;EuHEH;Eu0u/HUHEHHEHHuH}HEH H]UHHd$H}HuHUHUHHEHHEHEH;EuHEH;Eu0u/HUHEHHEHHuH}HEH H]UHHd$H}HuHUHUHHEHHEHEH;EuHEH;Eu0u/HUHEHHEHHuH}HEH H]UHHd$H}HuHUHUHHEHHEHEH;EuHEH;Eu0u/HUHEHHEHHuH}HEH H]UHHd$H}HuHUHUHHEHHEHEH;EuHEH;Eu0u/HUHEHHEHHuH}HEH H]UHHd$H}HuHUHUHHEHHEHEH;EuHEH;Eu0u/HUHEHHEHHuH}HEH H]UHHd$H}HuHUHUHHEHHEHEH;EuHEH;Eu0u/HUHEHHEHHuH}HEH H]UHHd$H}HuHUHUH HEH(HEHEH;EuHEH;Eu0u/HUHEH HEH(HuH}HEH H]UHHd$H}HuHUHUH0HEH8HEHEH;EuHEH;Eu0u/HUHEH0HEH8HuH}HEH H]UHHd$H}@uHE@:Et"HEU@HuH}HEH H]UHHd$H}HHEhHHEpHHUHExHHHHUHEHHEHHEHXHu(HHEHHuHHHEU H]UHHd$H}HuHEHXHuHEHXHHuH}HEH H]UHHd$H}HuHEH`H;EtaHEH`tHEH`H}]HUHEH`HEǀhHEH`tHEH`H}\H]UHHd$H}HuHEMHuH='JytH}@0HEH( H}HEH@HEHpHu襅H]UHHd$H}HHEuH}HEH@H]UHHd$H}HUH;EEH]UHH$`HhH}HuHUHMLEHEHHHHHUHx8H`HcHpuA3HxHEЀx`t!LEHMHUHuH}HEH(Hyu HHP`HpHt}HhH]UHH$PH}EHDž`HUHu~HHcHUGHEH}uH5CH`HfHcHUGHEH}uH5CH`IHEHx u*HEH8H`H`1H`藋HEHp H`豁H`HpHDžh HCHEHDžx HhAHCH=xHH5=HKHEYEHEXXHCf/z s HCHCf/z v HCH-HUE H`_HEHtEH]UHH$PH}uHDž`HUHuHHcHUHEH}uH5 ~CH`>IHEHx u*HEH8H`H`1H`ىHEHp H`H`HpHDžh H#CHEHDžx HhAHP~CH=ܾxHH5=HHEHcHcEH)H*HE\HE^EH`~HEHtEH]UHHd$H}HƀH]UHHd$H}@u@t'HEHuHHEHXHuйHHEtHEƀH}HEH@H]UHHd$H]UHHd$H}HuHH=}tHt0HUHE@`B`HUHE@pBpHUHEH]UHHd$H}EHEHEEH]UHHd$H}EHEHEEH]UHHd$H]UHHd$H]UHHd$H}HuH~HEHUHHHEHxhtHEHxhHuH}1?PH}tH}tH}HEHPpH]UHHd$H}EHEHEEH]UHHd$H}EHEHEEH]UHHd$H}HuEMH}HukH]UHHd$H}HuHUHEHxhHuEMEMHuH}HEHxH]UHHd$H}HuUMEMHEH}HkHuEMH}HEHxH]UHHd$H}EHEHxht$HEH@hHEƀHEH@hEEH]UHHd$H]UHHd$H}HuHUH}rHUHuP HxHcHUu HuH}@j[H}HEHtH]UHHd$H}HuHUHMLEHEH}HiH}iH]UHHd$H]LeH}HGx~*H}1HXhH}1wHphHH HEH@@gX|DEDEEH}4H@huH} ILU;]HEHxqH]LeH]UHHd$H}HG@H]UHH$ H}HuHuHEHUHRhHEH}HUHu HHcHUuHHEH=x+HUHBHEH}tH}tH}HEHg HEHtlHpH0 H>HcH(u#H}tHuH}HEHP`  H(HtHEH]UHHd$H}HuH~HEHUHHH}HEHxH}1 H}tH}tH}HEHPpH]UHHd$H}HHPH=t{jH]UHHd$H}uHEHxuPlH]UHHd$H]H}HHwHUHuHHcHUu1#HHEHHEHHLku HHP`HEHt H]H]UHHd$H}HHUHHHUHR`hHEHx`@R]HEH@`ƀH<ǑH8/HUHBhH]UHHd$H}HHx`@0]HEH@`ǀhH}HEHtHEH@`ƀH]UHHd$H}0H]UHHd$HEHUHuHEHcHU1HuuCH5uCH=Wt1HuCH5uCH=;t1HvCH5>vCH=xEEH}+uUHtHt1H#vCH}vHu1H-vCH=tqH}tEHtHt1H8vCH}gvHu1HuCH=t.}l?H}tHEHt H]HHxHdMHMHH4UHHd$H}NFH]UHHd$H}Hu*FH]UHHd$H}FH]UHHd$H}@uEH]UHHd$H}uEH]UHHd$H}HuEH]UHHd$H}@uEH]UHHd$H}@ujEH]UHHd$H}uKEH]UHHd$H}HuHwHUHuUH}HcHUuDhH}HEHtH]UHHd$H}HuHUHMDH]UHHd$H}HuDH]UHHd$H}nDH]UHHd$H}HuUMLE@DH]UHHd$H}HuHUHcHUHuAHiHcHUuCTH} HEHtH]UHH=KxHHtHH~HKHH]UHH=tH5QuH=t=(H]UHHd$H}uUHEHxpUuHEPhH]UHHd$H}@uH}fH]UHHd$H}Hu6HEƀHEHtHEHHEHp`HEH]UHHd$H}Ht0HEƀHEHxxtHEHHEHp`HEPxH]UHH$HLLH}HuHUH}u.LmLeMu1H5tLHLShHEH}HUHuH9ޣHcHUu;HEHUHEHB`HEH}tH}tH}HEHHEHtlHhH(HݣHcH u#H}tHuH}HEHP`$H HtnIHEHLLH]UHHd$H]UHHd$H]UHHd$H]UHHd$H]UHHd$H]UHHd$H]UHHd$H0K2H\uHEHuHEHuHEH uHEH uHEHuHEH}HbH+uHEH7.uHEH0uHEH2uHEH}HMbHuHEHuHEH8uHEHeuHEHuHEH}HbH4uHEH6uHEH}HaH uHEH>"uHEHs$uHEH&uHEH}HaH]UHHd$H}HuH0HEH(H;EtWHEH(uHEH(HuBHEHUH(HEH(uHEH(HuGBH]UHHd$H}HuUHP0EHuH}9}t"HEH(H;EtHEHǀ(H]UHHd$H]LeLmH}HuH(/H})LeLmMt-I]H^LH}HEH}uH}uH}HEHPpH]LeLmH]UHHd$H}HuHC/H}E}uGHEH(H;Et,HEH(tHuH=4WߤuEEEH]UHHd$H]LeLmLuH}HuH0.HuH=؈WߤHIIMt,MuL2LA H]LeLmLuH]UHHd$H]LeLmLuH}HuH03.HuH=XW#ߤHIIMt,MuLLA8 @H}yH]LeLmLuH]UHHd$H]LeLmLuH}HuH0-HuH=ȇWޤHIIMt~+MuL"LA H]LeLmLuH]UHHd$H]LeLmLuH}HuH0#-HuH=HWޤHIIMt*MuLLA8 @H}iH]LeLmLuH]UHHd$H]H}HuH,HHH'@H} H]H]UHHd$H]LeLmLuH}HuH0C,HuH=hW3ݤHIIMt*MuLLA H]LeLmLuH]UHHd$H]LeLmLuH}HuH0+HuH=WܤHIIMt)MuLBLA H]LeLmLuH]UHHd$H]H}HuHL+HEHUHuHգHcHUu1HuH=DWܤHHuHVH}@H}~yH}fHEHtH]H]UHHd$H]LeLmLuH}HuH0*HuH=WۤHIIMtn(MuLLA H]LeLmLuH]UHHd$H]H}HuH*HuH=DWۤHHT@H}舌H]H]UHHd$H]LeLmLuH}HuH0)HuH=؃WڤHIIMt'MuL2LA H]LeLmLuH]UHHd$H]LeLmLuH}HuH03)HuH=XW#ڤHIIMt'MuLLA8 @H}yH]LeLmLuH]UHH$HLLH}HuHUH(H}t)LmLeMtw&LHLShHEH}tHUHuHңHcHUuGHEHUH}HÚHEH}uH}uH}HEHsHEHpHhH(HFңHcH u%H}uHuH}HEHP`H HtHEHLLH]UHHd$H}HuH#'HEH}HBEEH]UHHd$H}HuH&HEH}HBH]UHHd$H}HuH&HEH}H3BH]UHHd$H}HuHc&HEH}HAH]UHHd$H}HuH#&HEH}HAH]UHHd$H}HuH%HEH}HsAH]UHHd$H}HuH%HEH}HH]UHHd$H}Hg%HEH@uHEHHHuHE@H]UHHd$H}H%HEH(uHEH0HuHE(H]UHHd$H}H$HEHPuHEHXHuHEPH]UHHd$H}Hw$HEHEH]UHH$`H`LhLpLxLH}H$HEHUHudHΣHcHULeLmMt!I]H}LHEH}uL}LuHLeMt!ML:HLLAHUH`H}HoHH}ziLuHEL`HEL`Mt$!I]HLL0HEH`@ 7H}^HEHtH`LhLpLxLH]UHH$HLLH}HuHUHt"H}t)LmLeMtW LHߣLShHEH}t2HUHuḤHcHUHEHUH}HyLeLmMtI]HߣLHEƀH}@?HEH}uH}uH}HEHHEHpHhH(HˣHcH u%H}uHuH}HEHP`?H HtdHEHLLH]UHHd$H}HuH HEH`EEH]UHHd$H]LeLmH}HuH(w HEH;HEL`HEL`MtII$HݣLHU8HE8u H} H}'H]LeLmH]UHHd$H}HuHHEHHH}\H]UHHd$H]LeLmLuL}H}HuH8H}VL}ILMMt]I$ILܣHLA(H]LeLmLuL}H]UHHd$H}HHEH`HEHEH]UHHd$H}HHEH`HEHEH]UHHd$H}HHHTHEHEH]UHHd$H}HWHEH`HEHEH]UHHd$H}HHxTHEHEH]UHHd$H}HuHEEH]UHHd$H]LeLmH}HuH(H~IH8ueH~IHHuH{~IHH5Hc~IL HY~IL(MtJI]HڣL "H]LeLmH]UHHd$H}HHEHHEH`HMHH HHH]UHHd$H}HuUHEHuH}&}t"HEHhH;EtHEHǀhH]UHHd$H}HuH#HEHhuHEHhHu?.HEHUHhHEHhuHEHhHu-H]UHH$HL L(L0H}HHEHEHDž8HDž@HDžHHDžPHUHhHţHcH`CHEH`HP#HPHXHXHH肫HHH}غmzHEHhH@FH@HXHXHH5HHH}к zH}uH}uEE}tHEH`  t@HuH8H8H}~VHuH8H8H}^VHEH` È}tELeMtI$HgףHH5Uu֤u/H]HtH[HH-HH9v]gHELhHELhMtQI]H֣L@ HcHqHH-HH9v/]ELeMtI$H֣HH5u%֤u EHELhHELhMtI]HE֣L@ HcHELhHELhMteMeL ֣LA$8 AMcIqIqLH-HH9v6DeEHXH]HtH[HH-HH9v]}t!HUHuHHcEHHHEHEHuHHEEE-fLeHcUHH9vHc]HH}dHUAD:t@Hc]HqHH-HH9vI]HcEHEHEqHXH]HtH[HH-HH9v]}t!HUHuHHcEHHHEHEHuHHE}taHcEHc]HqHH-HH9v]}%HcUHEHtH@H9~ }}E}uL}uuHc]HEHtH@H)q]HH-HH9vHELhHELhMtMeLbӣLA$ gHc]HqHH-HH9vHELhHELhMtUMeLңLA$ H]HtH[HH-HH9v2HELhHELhMtMeLңLA$ bH8PH@PHHrHPPH}PH}PH`HtEHL L(L0H]UHHd$H]H}H3HEHXHtH[HH-HH9v%HEXHExt-HEHPHuHHEHc@HHHUHBHEH@HuHHUHBH]H]UHH$pH}HHDžxHEHUHuߤH佣HcHUu]HEH`HxRHxHEHE HUHH5PCH}(H}UwHxNH}NHEHtH]UHH$HLLH}HuHUHtH}t)LmLeMtWLHϣLShHEH}tHUHuޤH誼HcHUuVHEHUH}HCHEHǀhHEH}uH}uH}HEHDHEHpHhH(ݤHHcH u%H}uHuH}HEHP`tH HtHEHLLH]UHHd$H]LeLmH}HuH(H})LeLmMtI]HnΣLHEHhuHEHhHu"H}H1jH}uH}uH}HEHPpH]LeLmH]UHHd$H}HuH3HEH=XjWHEEH]UHHd$H]LeLmH}HuH(HEHt)LeLmMt I]HeͣLH]LeLmH]UHHd$H]H}HuHlHEHUHuۤHڹHcHUu1HuH=diW/HHuH:H}@H}qޤH}JHEHtH]H]UHHd$H}HuHHEH=hWH谿HH}dHuH}H]UHHd$H}HwHEH`HEHEH]UHHd$H}H7HpTHEHEH]UHHd$H}HHEH`HEHEH]UHHd$H}H Hp THEHEH]UHHd$H}H HEH`HEHEH]UHHd$H}HW HTHEHEH]UHHd$H}H' HEH`HEHEH]UHHd$H}H HTHEHEH]UHHd$H}H HEHHEH`HMHH(HHH]UHH$0H0L8L@LHH}HuH1 HEHEHDžPHDžXHDž`HDžhHUHuCؤHkHcHxH}u`HEHhHhp7HhHpHpH`H`H} kH}!HHXH۽HXHpHpH`ΛH`H}jHELhHELhMtI]HȣL@ EHELhHELhMtI]HaȣL8 EHELhHELhMtI]H'ȣL HcuHqHcUH}_HcUHqHuH}V`HuH`6jH`HP賙HPHEHhHELhDeHELhMtI]HzǣDL H]HtH[HH-HH9vHELhHELhMtrMeLǣLA$ )LeLmMtCI]HƣLؤHP EHXEH`gHhDH}DH}DHxHt٤H0L8L@LHH]UHHd$H}HuHHEH(H;EtWHEH(uHEH(HuHEHUH(HEH(uHEH(HuH]UHH$HLLH}HuHUHH}t)LmLeMtLHlţLShHEH}tHUHuӤHHcHUuVHEHUH}HC_HEHǀ(HEH}uH}uH}HEH֤HEHpHhH(_ӤH臱HcH u%H}uHuH}HEHP`Y֤פO֤H Ht.٤ ٤HEHLLH]UHHd$H}HuHcHEH=`WH EEH]UHHd$H]H}HuHHEHUHubҤH芰HcHUgHuH=`W۶HHuH1H}u3HEH(u#HEH( u@@H}hդH}fAHEHt֤H]H]UHHd$H]LeLmLuH}HuH0#HEH=H_WHHHEH(HEL(H]HEL(MtM,$L{£HLA H]LeLmLuH]UHHd$H}HuUHEHuH} }t"HEH(H;EtHEHǀ(H]UHHd$EEMHU}rEE}UH }rH]UHHd$H]LeLmLuH}EELeHcEHH9vHc]HH}$PAD t t.HcEHXHH-H9v^]HcEHXHH-H9v;]HcUHEHtH@H9LeHcEHH9vHc]HH}OAD t tLmHc]HHHH9vHH}=OLuHcUHH9vLceLH}OADC:D&tHHcEHXHH-H9vU]#HcEHXHH-H9v0]HcUHEHtH@H9SEH]LeLmLuH]UHHd$H]LeH}EH]HtH[HH-H9v]%fHc]HHH-H9v]}~>LeHcEHH9vcHc]HH}MAD t tuH]HtH[HcEH)HH-H9v]H]LeH]UHHd$H]H}HuHUHMHEHE؋E;E~AHcUHcEH)Hc]H)H}HcHHH-H9v]_E;ESE;EGH}EHcEHcUHHH-H9vJ]܋E;E}uCHcUHcEH)HcMH)HEHtH@HHH-H9v]H}HcHHHcEHcUH)HHH-H9v]}u@HcMHcEH)HcEHUHtHRHHHH-H9vr]:H}tHcHPHcMHcEH)H HH-H9v6]HEH]H]UHH$HLL H}HuHu.LmLeMuH5HuLH蝼LShHEH};HUHuʤHHcHUHEH}1|HEƀ<HUHF HH=MBHUH@H=x" HUHxH}~?HEH}tH}tH}HEHbͤHEHtlHpH0ʤH9HcH(u#H}tHuH}HEHP` ͤΤͤH(HtϤϤHEHLL H]UHHd$H}HHUH@H;BsHEHU@4;B,|EEEH]UHHd$H}uE}|.HEH@#A;E~HEH@u{?@EEH]UHHd$H}HH@@H]UHHd$H]LeH}uUHEH@@HEH@u@HcHHH-H9v]fDuH};E~HEH@u>HXHcELc#I)LH-H9vD#uH};E}1HEH@uC>HHHEH@u%EHc]HHH-H9vU]}@H]LeH]UHHd$H]LeLmLuL}H}HHX HtH[HH-H9vHEX4HEx4u*HW8CH=MHH5HȤHEHc@4HXHHH9vHEX8HE@0EEHUMHE@8D<}rH]C4=v@D{4ALEfDELeHELHEHX DmLHx FBD+AHELch8EI)LH-H9vElHEH@Hxu ژHh.HpHtMEH`H]UHHd$H]LeH}HuUU*Hc]HHH-H9vƤ]}|>LeHcUHH9vƤHc]HH}CAD t tuEH]LeH]UHHd$H]LeH}HuUU*HcEHXHH-H9vHƤ]HcEHUHtHRH9>LeHcUHH9vƤHc]HH}AD t tuEH]LeH]UHH$`HhLpLxLuL}H}HEHUHuٓHrHcHUZHEx} HUHBLmHEHXHEL`MuŤH5LM4$LHAA;E}nHELhHEL`MuĤH5LI$H辄LHcHXHH-H9vĤ޿Z HUHBHEx}HE@HEHcXHHH-H9voĤAHELpH]HEL`Mu.ĤH5LM,$L HLDAHEHc@HUHtHRH9~8HEHc@HXHH-H9vä޿ HUHBHEHpHEHxTm}HUHEH@HBLmHEHXHEL`MumäH5NLM4$LJHAA;E}nHELhHEL`Mu0äH5LI$H LHcHXHH-H9vä޿HUHBHEx}HE@HEHcXHHH-H9v¤AHELpH]HEL`Mu}¤H5^LM,$LZHLDAHEHc@HUHtHRH9~8HEHc@HXHH-H9v<¤޿HUHB蓓H}HEHt HhLpLxLuL}H]UHHd$H]LeLmH}HuH~.LmLeMuH5M uI$HiLH}HEHx{HEH@{H}1{H}tH}tH}HEHPpH]LeLmH]UHHd$H]H}HuHEHx HuHtLHEHx Hu$HEƀHHEHX HtH[HH-H9vHEX4HE@(H]H]UHHd$H}@uHE<:EtjHUE<HE<tHUH+ВHHEHђHHEƀHHE<@HEHxx H]UHHd$H}HuHEHUHuH=lHcHUHEHu H}xH}/HuH}EfHEHH}HEtHEHHEHxHu HEpLEUH= uHHEH@ H}E}uHEH@-EUH}HEHtΑEH]UHHd$H]LeH}HuELeH]HtH[HH-H9vwA\$,HEx,HEtfHE<@HEHxv HE@HEHxv HEHp HEHxs HEHxHu HEHU@,;B4} HEtPHEHUHuHHPHEHcP,HEHPHEHPHEH@HPHEHPH}wEEH]LeH]UHHd$H]LeLmH}HH@HcHHH-H9v)|4EfDEHEH@uILfw;]HEL@HEH@Hu豼H5LL#L|LA$H]LeLmH]UHHd$H}HH5BHPHEfDE}ƼtHEUP}rH]UHHd$H}HuU|7HEH@X;E~"HEH@uHpH}3HEHH}H]UHHd$H}u|0HEH@;E~HEH@uD@ E HEpEEH]UHHd$H}@uHE:Et HEUH]UHH$HLLH}HuUMLEH}u.LmLeMuĺH5uLHzLShHEH}HUHx舤HgHcHpuTHEHU؋EBHE؋UP HEHxHuHEH}tH}tH}HEH詋HpHtlHXHUH}fHcHu#H}tHuH}HEHP`Q܌GHHt&HEHLLH]UHGH]UHHd$H}fuH}1H]UHH$pHpH}fuHEHEHUHucHeHcHUE<, vu,,,,,,,, ,,,, ,,"EH!Hw uH4H}lH5v uH}WH5Y uH}BEH!H* uH4H}]EH !H uH4H}:EH0HX0HH=vٷH}1KEHAHXAHH=v誷H}1EH`HX0HH=v{H}1rEHoHxHxHHx-1HxH};01H}HUH}1H5Cx uH}iH}H}1#E% tHEH0H}H? u10E%@tHEH0H}H$ u1 fEf%tHEH0H}H u1HEH0H}HU1 H}1‡H}H}HEHt2HpH]UHH$PHPLXL`LhH}HuHDžxHEHUHu H3bHcHUtEDEH}kHcEHpHpHHpa1HpHxl01HxHx1H5CH}HuH}U}vEEE=vEHH}uHtH}U}|EnLmLeL59uHcUHH9v衴Hc]HH=u^RLLAHcEHXHH-H9vd]HcUHuHtH@HH9x諅HxH}HEHtHPLXL`LhH]UHH$`H`LhLpLxH}HuHEHUHu恤H`HcHUhHu H}H}H5MC(HHMHtHIHuH}H}bHcHHH-H9vHEHE8|HE8EE}HuHcuH}EEkH]LmL5 uHcUHH9v葲LceLH=uNPLHCEHcEHXHH-H9vQ]HcUHuHtH@HH9} }o蒃H}HEHt EH`LhLpLxH]UHH$PHXL`LhLp}HuHEHUHuH]HcHU9}|w}nHcEH-HxHxHHx.1HxH}<01H} HUH}1H5CyEHuHu}EEn@H]DmL59uHcUHH9v豰LceLH=unNDHCEHcEHXHH-H9vq]HcUH uHtH@HH9} }o貁H} HEHt+EHXL`LhLpH]UHHd$H]LeH}HuH@ uHtH[HHH-H9v軯]HcEHHEH5uHMH= uOL% uHcUHH9vqHc]HH= u.MHEIH uHtH[HHH-H9v*]HcEHHEH5|uHMH=y uNL%h uHcEHH9vதHc]HH=B uLHEIH]LeH]UHHd$H]LeH}H uHtH[HHH-H9vo]HcEHHEH5uHMH= uML% uHcEHH9v%Hc]HH= uKHEIH]LeH]UHHd$H]}@uf uEHc\ uHcUHHH-H9v謭6 u}u&HcEH NHH-H9v}]EH]H]UHHd$H}fuH}1H]UHH$H}fuHEHUHuB{HjYHcHUukH}1$Hu}uOEEHHHc}蠦1HH}01H}1 HuH}}H}FHEHthH]UHHd$H]H}HuHH=tH^H]H3H=ct^HHH}H]H3H=9t^Hp(H}H]H3H=t^Hp0H}H]H3H=t^Hp,H}H]H3H=tl^Hp4H}H]H3H=tJ^HHU@H]H]UHH$`H}HuHDžhHDžpHUHu$yHLWHcHUH}DHpHpHxH CHEH}Hh$HhHEHxH}1ɺbH}ftSHEHHxHg CHEH}HhHhHEHxH}1ɺHEH8u HuH}ȴU{HhHpHEHt|H]UHHd$H}Hp,HEx(`fEEH]UHHd$H]H}fG8fEHEHXHH=t0\{Lt?f} Nr7HEHXHH=t \HcCHUHHH=vf]EH]H]UHHd$H]H}fuHEHXHH=Qt[{LtKf} NrCHEHXHH=,t[HcCH]H)HH=v脨f]f NsfEHEf@8f;Et HEfUfP8H]H]UHHd$H}fuHEf@(f;Et HEfUfP(H]UHHd$H}uHE@,;Et HEUP,H]UHHd$H]H}fuftoHEHXHH=LtZHEP0uH EtEDEEH}IL9f;EuEE;]΋EH]LeH]UHHd$H]LeH}fuUEH}4HcHHH-H9vExEfDEEH}<f@(f;EuHuH}&IċuH}U@EDEEH}ILf;EuEE;]΋EH]LeH]UHHd$H]LeH}fufUEH}CHcHHH-H9vT|WEEEH}TILyf;Eu%uH}7IL\f;EuEE;]EH]LeH]UHHd$H]H}uH}HHH=tKH]HH]H]UHHd$H}HG8H]UHHd$H]LeLmLuL}H}HuEL}LuLeMuH5ڛLM,$LWLLACDH}HIHuLuHc]HHH-H9v՗]}H]LeLmLuL}H]UHHd$H}ôE11ɺ&Hw E1&gH] E1&HC E11ɺ(H, E1(hH E1(H E11ɺ%H E1%eH E1%H E1%iH E11ɺ'H| E1'fHb E1'HH E1'jH. E11ɺ" H E1"nHE1"HE1"rHE11ɺ! HE1!mHE1! H~E1!qHdE11ɺ$HME1$kH3E1$HE1$sHE11ɺ#HE1#lHE1#HE1#tHE11ɺ-HE1-HiE1-\HOE11ɺ.H8E1.[HE11ɺHE1HE1HE1YHE1ZHE11ɺ HE1AHnE1CHTE1IgH:E1MH E1NHE1THE1UhHE1V\HE1X[HE1YHE1YHjE1ZYHPE1ZZH6E10-HE11.HE12/HE130HE141HE152HE163HE174HfE185HLE196H2E10_HE11`HE12aHE13bHE14cHE15dHE16eH|E17fHbE18gHHE19hH.E11sHE12tHE13uHE14vHE15wHE16xHE17yHxE18zH^E19{HDE10|H*E1-}HE1+~HE1MHE1NHE1CHE1LHE11ɺ iHwE1 jH]E1BHCE1&H)E1(HE1%HE1'HE1"HE1"HE1!HE1!HsE1$HYE1#H?E1$H%E1#H H]UHHd$H]LeH}fufUMDEHEHxHIuL}uLEAD$<uLH]LeH]UHHd$H}uHUHЋuH}H蚴H]UHHd$H]LeLmLuL}H}HuH}EL}LuLeMuH5ŏLM,$LKLLAHc]HHH-H9v⋤|6EEEH}IHuL;]H]LeLmLuL}H]UHH=tHH5wӵH]UHHd$HEH5htHMH=t*HEH5|tHMH=yt*HEH5tHMH=et[*H5tH=tH5tH=JtH5tH=tH5tH=toH5(tH=t\H]UHHd$H]}@uVtEHcLtHcUHHH-H9v,&t}u&HcEH NHH-H9v]EH]H]UHHd$H]LeLmLuH}fuff=%H~tHcHH}HwHpǣH}HwHpǣ~H}HwHpǣeH}HLjwHp~ǣLH}HΈwHpeǣ3H}HwHpLǣH}HwHp3ǣH}H#wHpǣH}H*wHpǣH}H1wHpƣH}H8wHpƣH}HwHpƣH}HwHpƣkH}HwHpƣRH}HwHpkƣ9H}HۉwHpRƣ H}HwHp9ƣH}HwHp ƣH}HwHpƣH}HwHpţH}HwHpţH}HwHpţH}H wHpţqH}HwHpţXH}HwHpqţ?H}H!wHpXţ&H}H(wHp?ţ H}H/wHp&ţH}H6wHp ţH}H=wHpģH}HDwHpģH}1ģEjfH]DmL5PtHcUHH9vXLceLH=*t$DHCHcEHXHH-H9v]HcUHtHtH@HH9}HEH8mH]LeLmLuH]UHHd$H]LeLmLuH}fuff=+f-t]f-f-vMf-t`f-f-tif-f-f-f-f-H}HwHpkãYH}H;wHpRã@H}H…wHp9ã'H}HɅwHp ãH}H0wHpãH}HWwHp£H}H^wHp£H}HewHp£H}1£EkH]DmL5@tHcUHH9v8LceLH=t!DHCHcEHXHH-H9v]HcEHtHtHRHH9}HEH8mH]LeLmLuH]UHHd$H]LeLmLu}HuH1HuH;t}NεEElfH]DmL5tHcEHH9v9LceLH=t DHCEHcEHXHH-H9v]HcUHtHtH@HH9} }oEH]LeLmLuH]UHHd$H]LeLmLuH}HuHHuH;tH}̵EEkH]LmL5tHcEHH9v9LceLH=tLHCEHcEHXHH-H9v]HcUHtHtH@HH9} }oEH]LeLmLuH]UHHd$H]LeLmLuH}HuEEEvuEHH'tHtH}U}|Ek@LmLeL5 tHcEHH9v!Hc]HH=tLLAHcEHXHH-H9v䀤]HcUHtHtH@HH9xH]LeLmLuH]UHHd$H]LeH}HuH0tHtH[HHH-H9v[]HcEHHEH5tHMH=tL%tHcUHH9vHc]HH=tHEIHtHtH[HHH-H9v]HcEHHEH5ltHMH=itL%XtHcEHH9vHc]HH=2t=HEIH]LeH]UHHd$H]LeH}HtHtH[HHH-H9v]HcEHHEH5tHMH=tdL%tHcEHH9v~Hc]HH=tHEIH]LeH]UHHd$H]LeH}HuHPtHtH[HHH-H9vK~]HcEHHEH5]tHMH= tL%tHcUHH9v~Hc]HH=tHEIH}HtHtH[HHH-H9v}]HcEHHEH5tHMH=~tL%mtHcEHH9ve}Hc]HH=Gt"HEIH]LeH]UHHd$H]LeLmLuH}uHEUPHHE@HuaeHE@L;Eu H}谟DHEUPLHEDhLH]LeMu|H5tM4$LuHELhPH]HEL`PMu |H5tM4$L;HLAH]LeLmLuH]UHHd$H}uH}H]UHH$HLLH}HuHUH}u.LmLeMuj{H5tLHH;LShHEH}HUHuIH'HcHUufHEHE@HHUH=t&HUHBPHUH}1HEH}tH}tH}HEHCLHEHtlHhH(HH'HcH u#H}tHuH}HEHP`KyMKH HtNNHEHLLH]UHHd$H]LeLmH}HuH~.LmLeMuyH5tI$H9LHEHxP33H}1ȣH}tH}tH}HEHPpH]LeLmH]UHHd$H]LeLmLuH}HDhHH]LeMuJyH5ctM4$L'9HDA@H]LeLmLuH]UHHd$H]LeLmLuH}H@HHUHE@H;BLu H}跛uKHUHE@HBLHEDhLH]LeMuxH5tM4$Lu8HDA@HELhPH]HEL`PMuZxH5tM4$L78HLA HEHxPkH]LeLmLuH]UHHd$H}uH}HE@HtHEH@PHEHEHEHEH]UHHd$H]H}uHE@D;EtUHUEBDHEHxt#HEHXHH=)tt*HuHHE@DsH}H]H]UHHd$H]H}uHE@(;Et8HEUP(HEHxt#HEHXHH=t)HuHH]H]UHHd$H]H}uHE@H;Et8HEUPHHEHxt#HEHXHH=9t)HuHH]H]UHHd$H]H}uHE@DsEHE@,;Et8HEUP,HEHxt#HEHXHH=t(HuHH]H]UHHd$H]H}fuHEf@Lf;Et:HEfUfPLHEHxt#HEHXHH=Dt(HuH#H]H]UHHd$H]H}@uHE@0:Et8HEUP0HEHxt#HEHXHH=t#(HuHH]H]UHHd$H]H}@uHE@N:Et8HEUPNHEHxt#HEHXHH=ht'HuHGH]H]UHHd$H]H}fuHEf@2f;Et:HEfUfP2HEHxt#HEHXHH=t?'HuHH]H]UHHd$H]H}uHE@4;Et8HEUP4HEHxt#HEHXHH=t&HuHhH]H]UHHd$H]H}fuHEf@8f;Et:HEfUfP8HEHxt#HEHXHH=t_&HuH H]H]UHHd$H]H}uHE@<;Et8HEUPHXHHH9H9HcHH}^HH}LHHH=rLjCPHAHH@HHHBHuH}ILLMMu jH5ltM,$L)HLAHHH1ɺH㫣HHUfwHxM11貲 HHE ;HHt==LEeHELhHEL`Mu$(H5+uI$HLu@Du]L}LeMu'H5$tM,$LLDAHExdu HExL~NHEH@L`XHc]HHH-H9v'HMЋUAALץELHEH@L`XHc]HHH-H9vV'HMЋUAAL艥EHEH@H@X@@EHc]HHH-H9v'AHELpH]HEL`Mu&H5)uM,$LHLDA}~RHExyuHLeHcEHH9v&Hc]HH}uA| uHEH@H@X@DEHEH@H@X@ EEHEHtH@HXHH-H9v&&]܋E;EHExAu HExH~JH} E9E~pHcUHcEH)Hc]H)HH-H9v%]ԋE؉Ee7HcUHcEH)Hc]H)HH-H9v%]E܉Eԃe}} EeMUuH}MЋUԋuH}A wEt H}H}WHHtHtHDžnH}bHhHtHLLLLH]UHH$HLLLLH}؉uUMDEHEHUHhHТHcH`EudHE؀xPtZeHE؋PTHD}DuLmH]Hu#H5tL#LLDDA$EH}cHE@zHHHH ТHcHHE؋@(;EuQHE؋@,;EuEHE؋@ ;Eu9HE@8t,Eu#EHUHE؋@8B8}}EezHELhHEHXHu"H5%uL#LLA$;E}>HELhHEHXHu"H5%uL#L~LA$EeHELhHEHXHub"H5C%uL#L@LA$uBDuDmL}H]Hu'"H5`tL#LLDDA$fHc]HHHH9v!AHELpLmHEHXHu!H5$uL#LLLDA$HEHtH@HXHHH9v!]̋E;E~#HE؀xAuHE؃xHẺEEK}~EHE؀xyu4LeHcUHH9v6!Hc]HH}oA| tEHE؀xdu HE؃xL~PHEH@HXXLceILHH9v DHMUAAHȧEMHEH@HXXLceILH-H9v DHMUAAHyEHEH@H@X@E;E~IH}VE9E~8HcUHcEH)Hc]H)HHH9v ]EԉEЃe}} EeDEMUuH}UЋuH}ع ;Et H}$H}HHtHtHDžH}I]H`HthHLLLLH]UHH$HLLLLH}uUMHDžHUHP$HLˢHcHH[EuHExPt HE@XEH}DHE@zH0HHʢHcHHE@0;EuEHE@4;Eu9HE@8t,Eu#EHUHE@8B8}}EexHELhHEL`MuH5 uI$HݢLx;E}=HELhHEL`MuH5o uI$HkݢLxEeHELhHEL`MuQH52 uI$H.ݢLu@Du]L}LeMuH5QtM,$LܢLDApEHExdu HExL~Mu}bHHEHxHMUP}HExyEHcHHH-H9vAHELpHHEL`MuHH5)uM,$L%ܢHLDALHcUHH9v&Hc]HHjA| EHc]HcEH)HH-H9v]Hc]HcEH)HH-H9v]E;EHcEHXHH-H9v]EEHcHHH-H9vRHEH@HxXHMċUE1A?EHcEHcUHHcEH)HH-H9v]E؉EE;EHExAu HExH~9Hc]H}HcH)HH-H9v1E&Hc]HcEH)HH-H9v|]Hc]HcEH)HH-H9vV]Hc]HcEH)HH-H9v0]Hc]HcEH)HH-H9v ]e}} EeUuMH}PMċUuH}A UuH}MEt H}q H}HHtHt|HDžH.WHHHtMHLLLLH]UHHd$H}Hp\HEx`^H]UHHd$H}HHEHx.H]UHHd$H]H}G\EHE@\EHc]HHH-H9vHEH@HxXHEP`HME1A訖EHEUH]H]UHHd$H]LeLmLuL}H}@uHE@A:EtnHEUPAHExAuZH}HEP$HUHEDx LuAH]HuH5tL#LעDLDUA$H]LeLmLuL}H]UHHd$H}@uHE@P:Et&HUEBPHExPtH}&H} H]UHHd$H}HxPu HE`8=HUHE@$BTH}It HEH8HE`8H}HUBXH]UHHd$H}@uHE@y:Et/HUEByHExytH}&H}]H}H]UHHd$H]H}HcGHHXHH-H9v/HEXHH]H]UHHd$H]H}HHcXHHHH-H9vHEXHH]H]UHHd$H]H}HcGLHXHH-H9vHEXLH]H]UHHd$H]H}HHcXLHHH-H9v<HEXLH]H]UHHd$H]H}HxDuH}H}DHEHc@DHXHH-H9vHEXDH]H]UHHd$H]H}HHcXDHHH-H9vHEXDH]H]UHHd$H}H@xH}uHE@zH]UHHd$H}@u@t H}HE@zH]UHHd$H}HuHE@\;EuHE@`;EuEEEH]UHHd$H}HuHE@\;Eu.HEp\HEx`@YHHEHx;EuEEEH]UHH$HL L(L0L8H}uHEHEHUHhUH}HcH`EHuH}H}1}HEHcP(HEHtH@H9yLeH]HcC(HH9vHc[(HH}aA| uAHExyu7HEp(HHcHHHH9vH]pEd@HE@,;E}1HEHc@,HXHHH9vHEX,HEHcP(HEHtH@H9~HExAuHExHHEP(HEHxHuAQHUB(HE@,HEHcP(HEHtH@H9vLeH]HcS(HH9vQHc[(HH}_A| u>HExyu4HEp(HPHcHHHH9v]EHc]HHHH9v]}}EHE@(EH}HEP,HXHUB(HHHED` LmAH]HuOH5tL;L-ТELD拕HXAH}HE@(;EEHEx,~0HEHcX,HHH-H9vHEX,HEx(HEP(HEHxHuA`HUB(HEHcP(HEHtH@H9yLeH]HcC(HH9vkHc[(HH}]A| uAHExyu7HEp(HjHcHHH-H9vHEX, HE@,HcEHXHH-H9v]}}EHE@dEHE@LEHE@dHE@LHEP,HPHEP(H@HEDh LeAH]HuOH5tL;L-΢ELD@PAHUEȈBdHUEĉBLߣH}KH5huH}H`HtEHL L(L0L8H]UHH$`HhLpLxH}uHEHUHuۣHHcHUHExHuHEH@Lc` ILH-H9v: HELhMtMmLH-H9v DHEH@HxHEHPHuHHuE蒢HuHEHxHHE@LeMl$Hc]HHHH9v HI|$aB+EݣH5uH}ĪHEHtfߣEHhLpLxH]UHH$HLLLH}HuHUMH}u.LmLeMu H5!tLHˢLShHEH}HUHu٣HHcHxUHEHUH}1H=tuģHUHB H=Yt\HUHB@HELhHEHX@HEL`@Mu H5#tM4$LʢHLAHE@\HE@`HE@dHE@hHE@lHE@pHE@tHE@XHUEBYHE@ZHExYt5HUH5I HEHx|HMHHEHxHEH}tH}tH}HEHۣHxHtlH`H _أH臶HcHu#H}tHuH}HEHP`[ۣܣQۣHHt0ޣ ޣHEHLLLH]UHHd$H]LeLmH}HuH~.LmLeMuL H5tI$H)ɢLHEHx ¸HEHx@¸HExYt5HUH5HEHxDHMHHEHxgH}1H}tH}tH}HEHPpH]LeLmH]UHHd$H}HuHUHE@8B8HUHE@\B\HUHE@]B]HUHE@`B`HUHE@dBdHUHE@pBpHUHE@tBtHUHEHUHEHUHEHUHE@hBhHUHE@lBlHUHEH]UHH$PHXL`LhLpLxH}HEHUHuգH۳HcHUHUHcBdHEHEHcX`HHHH9v+AHELpLmHEHXHuH5 uL#LƢLLDA$HEHtH@HH9EHEHcX`HHHH9vAHELpLmHEHXHufH5G uL#LDƢLLDA$HEHtH@HXHHH9v9HEXdHUHEHEHcPtHUHEHcXpHHHH9vAHELpLmHEHXHuH5uL#LŢLLDA$HEHtH@HH9EHEHcXpHHHH9vfAHELhLuHEHXHu%H5uL#LŢLLDA$HEHtH@HXHHH9vHEXtHUHEE֣H}BHEHtףHXL`LhLpLxH]UHHd$H}JHUHH]UHHd$H}IHUHH]UHH$HLLLLH}HuHEHEHDžPHUH`ѣHHcHX- H}1AH}U H}JWteHE@tEHEHcXpHHHH9v7]HE@dEHEHcX`HHH-H9v]cHE@dEHEHcX`HHH-H9v]HE@tEHEHcXpHHHH9v]EHE@\t,6 , E;EHELxDuLPHEHXHu&H5uL#L¢LDLA$HPHcMHcEH)HcUH}RHc]HcEH)HEHHtH@H)HH-H9v]؅a HcUؾ HPn[HPHEH0H}1A. HELxDuLPHEHXHuKH5,uL#L)LDLA$HPHtHRHcEH)HZHH-H9v1,EHcEHXHHH9vLceILH-H9vDH((9]؉؃EDEHcEHHELxDuLPHEHXHuLH5-uL#L*LDLA$HPHtH@HHHHH9v]䋅(;EcHcUHHcEHHH-H9v]HcUHcEH)HcEHHH-H9v]HcuH}1kNHEHHEHELxDuLPHEHXHuKH5,uL#L)LDLA$HPLEЋUH LEйH5(dBH HcEL`LHH9vHc]HHH-H9vH88D9DeDEfEHELpD}LPHEHXHu_H5@uL#L=LDLA$HPLEйHLEйH5:cBH8;EkHELxDuLPHEHXHuH5uL#L謽LDLA$HPLceILHH9vDLEкHH%HcUHcEH)HBHHH52tHHH}՜HcEHcUH)HHHH5tHHH}補HEHx@vH}=JHHEHx@ݮHEHx@PEH}TJHHEHx@贮HEHx@'E9E~ HuH}rE];]EEfDEHcEL`LHH9vkD}BHHEHx@HEHx@3ALmLcuHcEI)LHH9vLH}ޙGdHcEL`LH-H9vD}~AHHEHx@>HEHx@豩LcLeLcmHcEI)LHH9vLH}\KcI)LH-H9vmD1胡ALmLcuHcEI)LHH9v:LH}GdLeLcmHcEI)LHH9vLH}ǘKcHcUL$LHH9vDe;]5HcUHcEH)HcEHHH-H9v]HcuH}1XIHEHHEЋEH@@;EEEEHELhDuLPHEHXHuH5tL#LLDLA$LPH]LcmHcEI)LHH9vLH}裗BLmLcuHcEI)LHH9vLH}mCTLEHLE;E}LEйH5z^BH@;EEH ;EEE@EHcEHHELpD}LPHEHXHuH5tL#L貸LDLA$HPHtH@HHHHH-H9v]䋅 ;E`LcuHELhHEHXHuJH5+tL#L(LA$HcHI9u$Hc]HHHH9v ]HcuH}1FHEHHEHc]HHHH9vH00;EEEؐEHELxDuLPHEHXHuwH5XtL#LULDLA$HPLEйHLEйH5R\BH0;EkHELpD}LPHEHXHuH5tL#LĶLDLA$HPLEйHvLcuHELhHEHXHuH5itL#LfLA$HcHI9}LEйH5z[BHǣHP!4H5tH}!H5tH}HXHt ɣHLLLLH]UHHd$H]H}HuUMLEIHELEMUHuH}cHEHHUH)Hc]H)HH-H9v]HEH8Hcu̺ HEHcUHH]H]UHHd$H]H}HuUMLEH]HtH[HH-H9v ]̋E;E}Hc]HHH-H9v]HcEHEHEHc]HcEH)HH-H9vߋuEHEH0HcUH}蠗HUHcEHHEHH]H]UHH$PHXH}HuHUMDEHDž`HUHpZ£H肠HcHhH]HtH[HH-H9v]HcEHcUHHH-H9v]ЋE;E|HcMHcUH}Hu$DoHcuH}1SBHEHHuH`HEHcMHcUHuH`CH`H}!HcEHEHcuHcEH)H}Ⱥ SģH`0HhHtƣHXH]UHHd$H}HuHEp\HUHuHH}E00 H]UHHd$H}HuHEt*HEƀ8HUHH}+HHEHx0躲u"H}1HHEHx0蘲t HEHHEHx07HUHHEx(uHEHEEHEx8uCH}?1HHEHx0t&HEHx0NHH}B1H HEx8uNH}*HHEHx0t1HEHx0HH}E/HE@hHE@lXHEHx0 HH}-HEHx0跟HH}0HEtH}Dt H}@0EEHEU숐3HEu&HEHEHx0OHH}-H]UHHd$H]H}HGxhHEHx)HHEH@phHEH@xl5HHtt9lHEHx/HHEHx)HH@H}J5HEHx[/HHEHxK)HHP| H}H]H]UHHd$H}HHPHEHHBh;A`}/HEH@HxPHEH@P`HEH@phHEH@PH-HEH@HxPHEH@PhHEH@p`HEH@PHHEH@@hEHEH@@lEHEHPHEH@@`BhHEHPHEH@@dBlHEHPEB`HEH@UPdHEHPHEH@H]UHH$0H8L@LHLPLXH}HuUMHDžpHUHufH莚HcHxdHEHx0UHEH@0xACHExZ5HcEHXHH-H9v]HcEHcUHHHHH9v]HE@`;EcHE@`;ESHUHcBdHhHEHcX`HHHH9v:AHELpLpHEHXHuH5tL#LԬLLDA$HpHtH@HH9hHEHcX`HHHH9vAHELpLpHEHXHuiH5JtL#LGLLDA$HpHtH@HXHHH9v9HEXdHUHEHE@p;EcHE@p;ESHUHcBtH`HEHcXpHHHH9vAHELpLpHEHXHuH5dtL#LaLLDA$HpHtH@HH9`HEHcXpHHHH9v:AHELhLpHEHXHuH5tL#LԪLLDA$HpHtH@HXHHH9vHEXtHUHEHpg(HxHt膽H8L@LHLPLXH]UHH$`H}HuUMDEDMH}5(HUHpPHxHcHhJHEǀHEǀHEЀxZ HEЀu1HEЃ$HEHx0HEHx0HEЀx\HEHUЋ@d;BtuHEHUЋ@`;BpuEEH}-=EH}"Hƀ}HHH}3'}tH}"HH}(ZH}(HƊUHoHH}(5HEHx0t*HEHx0tHEHx0xHH},%H}n&HhHt荻H]UHHd$H]H}HuUHEHEHExHEU;P HcUHEHc@HHH-H9vHEx,EHUE;BHcUHEHc@HHHH-H9v]HExHEU;P~0HcUHEHc@HHH-H9v]YHEU;PIHEU;P9HEU;PuWHEH@Ѓ~+HEHPHEHHЋ;~ }u"HEH@Ѓ~ }HcUHEHc@H)HZHH-H9v]HcUHEHc@HHH-H9v]xHExjHEU;PZHEH@ЃHEHHHEHPЋ;~j}t HEU;P}} HEU;PHcUHEHc@HHH-H9vHExEHEH@Ѓ~g}t HEU;P}HUE;BHcUHEHc@HHH-H9vzHEx茋EEHEU;P|9HcUHEHc@HHH-H9v3HExEEHEH]H]UHH$HLLLLH}@uHUMDEHDžHUHpHHcHhHEHx HMUHuHE@ZHEƀHEHx}HPH胲H諐HcHNH}P1HEH}1HEHEHx@bH}Y6UHE؀x\EHELhHEL`MuH5tI$HL;EHc]HHH-H9v}AHELpHHEL`Mu9H5tM,$LHLDAHHtH@HXHH-H9v ]*HcEHXHH-H9v]EH#HuH}FHEHx0tCHEHx@螑HHEHx0$HEHx0tHEHx0DHH}H}HHEHx@?H}tUHE8tLH}t%HEHx@HH}!HU؊EB\HEHx@ϐHH}HEHx0tHEHx@ېHHEHx0KFHEHxI{HE@ZHHt谴HoHhHt莴HLLLLH]UHH$`HhLpLxLuL}H}HEHUHuYH聍HcHUHEHp1H})H}HEH@LhHEH@L`MuH5tI$HLuOHEH@LpAHEH@L`MuUH56tM,$L2DLAHE@t ,t,t H6H|HB荱H}HEHtHhLpLxLuL}H]UHH$@H@LHLPLXL`H}HEHUHuӭHHcHxsEHEH@H@Hx@HEH@H@HEH}菈HEH;EtHHuHEH)H}1-H}v/HþH-HHUHEH)H} H}1"HE8HEH@H@H@@P HpHEH@H@LxLuAHEH@H@HXHugޣH5HtL#LEDLLpA$HEHtH@HXHH-H9v5ޣHEH@H@Hx@~HEH@H@HP@B HhHEH@H@LhLuAHEH@H@HXHuݣH5tL#L艝DLLhA$HEH@H@H@@Hc@ HXHHH9vqݣHEH@H@Hx@ZHcEHXHH-H9v:ݣ]HE8 uHEHE8 uHEHEHEHE8qH}HxHt篣EH@LHLPLXL`H]UHH$@H@LHLPLXL`H}HEHUHu裪HˈHcHxEHEH@H@HEfH}wHEH;EHuHEH)H}1*H}Z,HþHz*HHUHEH)H}~HEH@H@Hx@讉HpHEH@H@H@@Dx HEH@H@LpLmHEH@H@HXHuSۣH54tL#L1LLDpA$HE t tnHE@ t tuHEHU؊@:tHEHEHEH@H@Lp@HEH@H@LhHEH@H@HXHuڣH5tL#L舚LA$A;F HEH@H@H@@Hc@ HXHHH9vrڣHhHEH@H@LxM1AHEH@H@HXHuڣH5tL#LDLLhA$HEH@H@H@@Hc@ HXHHH9v٣HEH@H@Hx@ŌHEHEHE؀8HEH@H@Hx@苇HcHUHtHRHHH-H9vo٣HEH@H@Hx@踈êH}HxHt9EH@LHLPLXL`H]UHH$HL L(L0L8H}HEHDžhHUHx妣H HcHpEHEH@H@Hx@/HEHEH@HxH}要HE؀8HEH@Hp1Hh!HhHPHEH@H@LxDuDmHEH@H@HXHuףH5tL#L譗DDLHPA$HEH@H@Hx@蠅HcHEH@HxHHH-H9vףHEH@H@Hx@ʆHEH@H@LhDuD}HEH@H@HXHuףH5tL#LDDLA$HEH;EHcEH`LeIc$HHHH9v֣AHEH@H@LhLhHEH@H@HXHu~֣H5_tL#L\LLDA$HhHtH@HH9`H]HHHUHEH)HEH@Hp1-0HEH@H@LxDuDmHEHHHEH@H@HXHuգH5tL#L讕HHDDLA$ H}1HuH}lEHcEHXHHH9vգHXHc]HHHH9vUգAHEH@H@LhM1HEH@H@HXHuգH5tL#L㔢LLDXA$HE؀8 uHEHE؀8 uHEHcEHXHHH9vԣ]H}H}}HEH;EH]HYHHUHEH)Hu1p.HEH@H@LhDuL}H@HEH@H@HXHuԣH5tL#L@LDLA$ H}1<HE؀8HEH@H@Hx@u׆HEHtH@HXHHH9vӣHEH@H@Hx@HhUH}LHpHtkEHL L(L0L8H]UHHd$H]H}HuENfHE8 uHEHE8 uHEHcEHXHH-H9vң]H}(|HEHE8uEH]H]UHH$HLLLLH}HEHDžXHDž`HUHp芠H~HcHh\ HEH@؊@\,v ,D @ HEH@LhHEH@HXHuѣH5tL#L谑LA$HExfHEHxWAHEHxH}zHEHUHEHBHEH@8 u HEH@HEH@8 u HEH@H]HHHUHEH)Hu16+HEHU@;BHEHcXHHHH9vУAHEH@LpLXHEH@HXHuУH5tL#L菐LLDA$HXHtH@HXHEHc@H)HHH9vvУH8HEH@HPHHUBHHEDhLuL`HEH@HXHuУH5tL#LᏢLMDꋍHD8A$H` HExtHEH@H;Ev;HEHc@HXHH-H9vϣHEXHE@HEHcPHEHtH@HHHH9v[ϣHEXHEH@؀x\tHEH@H;E}HEHcXHEHc@H)HH-H9vϣHHHEH@HPH(HEPHHEDxLmLXHEH@HXHuΣH5rtL#LoLMDH(DHA$HX> HEHcPHEHtH@HHH-H9v=ΣAHEH@LpHEDhHEH@HXHuͣH5tL#L΍DLDA$HEHc@HXHH-H9vͣHEXHE@HEHcXHEHc@H)HHH9vͣH@HEH@HPH HEPHHEDhLuLXHEH@HXHuͣH5tL#LLMDꋍH D@A$HX HEHcPHEHtH@HHH-H9ṿHEXHUHEH@HBHEHU@;Bu.HEHU@;BuHEH@Hx@HEHpO~HEH@8HEHc@HPHEHc@H9HEHcXHEHc@H)HHHH9v ̣AHEHc@HXHH-H9vˣAHEH@LhHEH@HXHuˣH5tL#L~LDDA$HEHc@HXHHH9vxˣHEXHEHU@;BHEHcXHHH-H9v9ˣAHEH@LpLXHEH@HXHuʣH5tL#LˊLLDA$HXHtH[HH-H9vʣ]HEHcXHELc`ILH-H9vʣD}pHcHHH-H9vjʣHEXHEHcXHcEHH)HH-H9v8ʣ1OpHcо HX#LXHEH@LpHEDhHEH@HXHuɣH5tL#L訉DLLA$HUHE@ԉBHEHU@;BHEHcXHEHc@H)HHH9vyɣH0HEH@HPHHEDxHEDhLXHEH@HXHuɣH5tL#LLDDHD0A$HXHEH@Hx@HEHpzHEH@Hx@HEHpzHEH@Hx@ wEHEH@Hx@HEHpozHEH@Hx@vE9E~ HuH})oHEHHUBHPP96MȃEEEƋ} HHEH@Hx@zHEH@Hx@uEu} HHEH@Hx@NzHEH@Hx@uE;EHc]HcEH)HHH9vǣHHEH@LxDuDmHXHHEH@HXHu<ǣH5tL#LHDDLDA$HXP;EHEpԋ} HHEH@Hx@]yHEH@Hx@uHUHB?HXH`H}~HhHt蝙HLLLLH]UHHd$H}G`EHE@dEHEH]UHHd$H}@uHE@X:Et)HUEBXHExXuH}HH}zH]UHH$`H`LhLpLxL}H}HuHEHUHuⓣH rHcHUHELhHEL`MuQţH52tI$H.LǾikHExkHUBHEHx0tHEH@0xAuHEH@0xH~HE8kHUHEHcXHHH-H9vģAHELpH]HEL`MuģH5itM,$LeHLDAHEHtH@HXHH-H9v\ģHE8jHUHEx\sHEx|_LmHEHXHEL`MuãH5tM4$L˃HAA;E|HEHEpH} HU HE.H}HEHt觖H`LhLpLxL}H]UHHd$H}HuHEƀHE@hHE@lHEǀHEǀH}EHuH})}toHEHU@`;Bp}&HEp`}DiEHEpp}iE$HEpp}iEHEp`}hEHEHxPUuHEPHHUHE@]B\HE@[HE@8HEUP`HUEBdHEUPpHUEBtHUHEHEHx0t&HEH@0p\HEH@0x`HUH}tHEHxHuH]UHHd$H]H}HuHEǀHEǀHExX0HuH}HE@d;EuHE@`;EHEx\u]HE@d;EtQHExpugHEx`ugHExpugHEx`gHEHxPHEPH3HEx\uHEHU@d;BttHEHxPHEp`UHEPHHEUP`HUEBdHUHEHEHx0t&HEH@0p\HEH@0x`=HUHHEHxHu衼H]H]UHHd$H}GpEHE@tEHEH]UHH$PHXL`LhLpLxH}HuHEHUHu/HWlHcHUHEǀHEǀHExXHEƀHELhHEL`MuiH5JtI$HFLǾe‹}eEHEx\HEHxHEx(uHEHE@`;E HE@`;EHE@d;EH}BHE@`EHc]HHH-H9v谾AHELpHEL`MunH5OtM,$LK~LDApEHcEHXHH-H9vIHcHHH-H9v*HEX`HELhHEL`Mu佣H5tI$H}L;ELeIc$HHH-H9v軽AHELpHEL`MuyH5ZtM,$LV}LDApEHcEHXHH-H9vTHcHHH-H9v5]HEHx0tHEH@0xAt},cEHc]HHH-H9v伣AHELpH]HEL`Mu裼H5tM,$L|HLDAHEHtH@HXHH-H9vwڋ}bEHEx\u\}|OHELhHEL`MuH5tI$H{L;E|UuH}EEHE@t;EuHE@p;E#HE@t;EuHE@p;EHEx\u]HE@t;EtQHExpuaHEx`aHExpuaHEx`aHEHxPHEPH3HEx\uHEHU@d;BttHEHxPHEppUHEPHHEUPpHEUPtHUHEHEHx0t&HEH@0p\HEH@0x`|HUHHEHxHu+H}HEHt褍HXL`LhLpLxH]UHHd$H}@uHUEB]uH}HEHxHuWH]UHHd$H}@uHEƀHE@\:EtAHUEB\H}U tHEHxPHEPHHEHxHuH]UHHd$H]LeLmLuL}H}@uHE@[:E$H} EHEUP[H} :EH} HEx(uHEH} HE@`EHc]HHH-H9vAHELpHEL`Mu躸H5tM,$LxLDApEHcEHXHH-H9v蕸HcHHH-H9vvHEX`HE@pEHc]HHH-H9v@AHELpHEL`MuH5ߺtM,$LwLDApEHcEHXHH-H9vٷHcHHH-H9v躷HEXpHEppHEx`]HEppHEx`]HEHxPHEPHHEHxHu至H]LeLmLuL}H]UHHd$H]H}@uHE@8:EtVHUEB8HEppHEx`"]HEppHEx`=]HEHxPHEPHHEHxHuH]H]UHHd$H}@uHE:ErHEUHEuXHEHx0tMH}HHEHx0vu+H}HHEHx0vu H} H]UHH$HLLLLH}uUHDžxHUHu H2bHcHUEE} E}HELhHEL`MuXH59tI$H5uL;EHc]HHH-H9v3AHELpHxHEL`MuﴣH5зtM,$LtHLDAHxHEHxUE00HEE;EHBH HDž E0HDž(HBH@HDž8 EPHDžHHBH`HDžX E䉅pHDžhHպ蔅HxHEHt EHLLLLH]UHHd$H}HuUMHUHEH]UHHd$H}uHEHx@rH}JNjuHHEHx@eHEHx@3aH]UHHd$H}uHEHx@srH}NjuHHEHx@`eHEHx@`H]UHHd$H}tH}AHE H}2HEHEH]UHHd$H}^tH}HE H}HEHEH]UHHd$H}4HEx\u0HEx[u HEHU@p;B`uHEHU@t;BdtEEEH]UHHd$H}HHEHx@&qH}HHEHx@cHEHx@`HUH}HHEHx@]cHEHx@_HUHEHU;~HEHHEHWHEH]UHHd$H}HHEHx@VpH}HHEHx@bHEHx@0_HUH}-HHEHx@bHEHx@_HUHEHU;~HEHHEH%WHEH]UHHd$H]LeLmLuH}Hu^H}KHHEHxLHHELhHEL`MuίH5tM4$LoLHAHUHBxHEHEH@xHEHEt(HMHHEHx2uHEHEH]LeLmLuH]UHHd$H]LeLmLuH}HuaH}HHEHxKHHELhHEL`MuήH5tM4$LnLHAHUHHEHEHHEHEt(HMHHEHx,tHEHEH]LeLmLuH]UHHd$H}@uHE@(:Et HEUP(H]UHHd$H}HuHEH@0H;EtRHEHx0tHUH5;HEHx0NsHUHEHB0HEHx0tHUH5 HEHx0rH]UHHd$H]H}Hx8t EHEx\HEHU@d;BttHEHU@`;BpuEE}HEHU@`;Bp{H}HHEHxIHH}HHEHxI9E>HEHU@d;Btu$HEHU@`;BpuHEx\uHEx[tEEEH]H]UHHd$H]H}HuH}tE@HEx8u2HEx\u(HEHU@p;B uH]H}7Z;CtuEEEH]H]UHHd$H}HHU@`;Bp HEHU@`;BpuHEHU@d;Bt~EEEH]UHHd$H}tHUHE@pBhHUHE@tBlHE@hHE@lH]UHHd$H}@uH}FU0tAHEHppHEHx` RHEHptHEHxdQHUHEH]UHHd$H}HƀH]UHHd$H]H}uHEHcHXHH-H9v赪HE}u!HEuHUHE}u!HEuHUHEH]H]UHHd$H]H}HHcHHH-H9vHEHEHU;~HEǀHEHU;~HEǀHEuBHEHx0t7HEHx0jt&HEH@0p\HEH@0x`#HUHH]H]UHHd$H}HHx0tHEHx0WHH}H}HH}H]UHHd$H}HuHUHEHx HuHUfH]UHHd$H}HuHUHEHx HuHU֟H]UHHd$H]H}HuHEHx Hu誤;HEHx HcHHH-H9v\HEHx mHEHx 谛H]H]UHHd$H]H}HHXC`=v C`EH]H]UHHd$H]LeLmLuH}uHEH@@`HcUH9.}HELh0HEL`MurH5ñYM4$LOg@LAHE@HELh1HEL`Mu.H5YM4$L gLAHELhE=v]HEL`MuަH5/YM4$LfLAHEDh HEHXHEL`Mu蝦H5YM4$LzfHDAHEx t H}:H]LeLmLuH]UHHd$H}HuHEx(~ HEH,!HUHExBHEHxHuJH]UHH$HLLLL H}HuHu.LmLeMu豥H5 *tLHeLShHEH}HUHusHRHcHUGHEH= \h^HUHBH=\O^HUHB M1AHoYL%hYMuH5WYMLdHLLAHUHBHELh0HEL`MuH5YM4$Ld@LAHE@ H}/HUH4IIHEHXHEL`MudH5YM,$LAdHLLAHEH}tH}tH}HEHuHEHtlHpH0TrH|PHcH(u#H}tHuH}HEHP`PuvFuH(Ht%xxHEHLLLL H]UHHd$H]LeLmH}HuH~.LmLeMuDDHMMH}A$H]LeLmLuL}H]UHH$pH]LeLmLuL}H}uUHMLEDMHEH$HEHD$HEHPXHUEȈEHEHEL}DuDmHEHXXHua}H5tL#L?=DDHMMDMH}A$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHUHELxXLuH]HEL`XMu|H5tM,$LH%AHpHEHHxH)AHEHpH}1ɺ讨8HhmHEHt9H]UHH$pH}uH}1袤Hu1Hx H5itH= tDEHx1 ңfHx?ģfH]UHHd$H]H}HuHH=sHH]H3H=sHHUH@xHBxH]H3H=sHHUHHH]H3H=ysdHHMHBhHAhHBpHApH]H3H=Os:HHU@`B` HuH}NNH]H]UHHd$H]LeLmLuL}H}HHudH5sL#L$LeLHEAIMLMudH5sIH$LLHUHELeLuH]HuldH5usL+LJ$LLAHEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHUHMLEfDMHUHEHBxHEHUHL}LuH]LeMucH5sM,$L#HLLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHUHMLEfDMHEHUHPxHEHUHHEHEȋEHED}LuLmH]HucH5sL#L"LLDDEHUA$H]LeLmLuL}H]UHHd$H]H}HuHH}HHuH=s\tpH]H3H=suHHUH]H3H=dsOHHUH@xHBxH]H3H=Bs-HHUHHH]H]UHHd$H]LeLmLuL}H}HuUHELLu]HELMuaH5:\tM,$L!LLAH]LeLmLuL}H]UHH$@H@LHLPLXL`H}؉uHUHMDEHEHHDžhHUHxc/H HcHpH}1>Hc]HHH-H9v`ALuHhLeMu`H5sM,$L HLDAHhuHc]HHH-H9vq`AH]LhLeMu5`H5>sM,$L LHDAHht HEMHUԋuH} HUHE8HMLEԋUH}AHhHhH}HE؃tHc]HHH-H9v_ALuHhLeMu[_H5dsM,$L8HLDAHhu H}1胝0HhHpHt!2H@LHLPLXL`H]UHH$`H`LhLpH}HuHUHDžxHUHu,H HcHUJHEf8;HEx`-H} HELhxHEL`xMu&^H5tI$HLP HEHxx/tHEH@x@H}HxHxHEHpxH}OHcH}# HcHH9urHELHELMuw]H5XtI$HTLHþH蛖HUHuH}uH} HEf.HxHEHt&0H`LhLpH]UHH$HL L(L0L8H}HuHUЉMDEHEHUHP*H HcHHHEǀ}HEHxhtiE$HEffD$HUHwHT$HD$H}DCHH} HHEHxpHEHPxDMHuHEIPhmHEf8tHEf8SHEx`EHEf8u HE؋@ E'HEHc@ HXHH-H9v[]H]HYHHMuH}E1H}HUHH@L}DmAHEHHu[H5UtL#LDDLH@A$H]LeMtMd$LHH9vZDHEf8u>H}cDHcEHXHHH9vZH}G H}~D+H}PHHHto-HL L(L0L8H]UHH$HLLLLH}HuHUHEHEHDžPHUH`(H=HcHXHuH}N HEHpxHUH}EE}HEHcX HHH-H9v_Y]HELDuLmHEHHuYH5StL#LLDLA$HEHpxHUH}nE;E}H}u-Hc]HHH-H9vX]؃}bE;E|EHEHcX HHHH9v~XH@HcEHXHH-H9vUXAHELLmHEHHuXH5RtL#LLLD@A$XEHcEHPHHHEHcX HHH-H9vWH(HELDuL}HEHHu~WH5RtL#L\LDL(A$PHcH)HHHHH9vNWHEH}HEHcEHXHHH9vWHEHc]HcEH)HH-H9vVH8HUB H HELDuLPHEHHuVH5QtL#LjLDL D8A$HP@}yHcUо HPHPH0HEDx HELDuHEHHuUH5PtL#LDLDH0A$ET'HP訓H}蟓H}薓HXHt(EHLLLLH]UHH$@HHLPLXL`LhH}uHUMHEHUHxf#HHcHp}~#Hc]HHH-H9vT]Hc]HHH-H9vTHEHEHcHHH-H9vTHEHED0H]LeL}MuRTH5[sM/L0LHDAH}tHEHpxHUH}EHE;EfE%H}ّHpHt&EHHLPLXL`LhH]UHH$ H L(L0L8L@H}Hu؉UHMLEH}腑H}|HDž`HDžhHUHx!HHcHpHEHtH@HXHHH9vRHXHELLuAHEHHuRH53MtL#LDLLXA$PHcHHHH9vR]H}fDHUHuH}1őHEHtH@HXHHH9v+RHPHELLuAHEHHuQH5aLtL#LDLLPA$PHcHHHH9vQ]ЋE;E8H]HtH[HHH9vzQ]fHc]HHH-H9vPQ]HcEHXHH-H9v-QHHHELLuAHEHHuPH5cKtL#LDLLHA$PHcHHH-H9vP]ЋE;E3HcUHcEH)¾ HhGHhHcMHuH`H`H}1HH}Hu腎!H`HhH}H}换HpHt#H L(L0L8L@H]UHHd$H]LeLmLuL}H}HuHUMEH}1ҍDHEH0H}1HAߎHEHHtH@HXHH-H9vCOHEHELHEL0AHEHHuNH5yItL#LDLLMA$PHcHHHH9vN]HE;E0HE;EHEH0HtHvH}ۥ}HEHHtH@HXHHH9vTNHEHELHEL0AHEHHuNH5HtL#L DLLMA$PHcHHH-H9vM]HEU܉HEH0H}1HTAHEHHtH@HXHH-H9vMHEHELHEL(AHEHHu0MH5GtL#L DLLMA$PHcHHH-H9v M]HE;E1H]LeLmLuL}H]UHH$HL L(L0L8H}HuЉUHMLEDMHEHEHEHDž@HUHPHHcHHHEEHE؋tttAt`HEHEHcH}о 辥}HUEHEHUHuH}05HEHUHuH}ر}bHUETHE8LmHEHHELMutL#LLD@D8LA$HPρH}HEЃujHc]HHHH9vCALmLPH]HuCH5sL#LhLLDA$HPt_HUHH0L}DuAHEHHu(CH5=tL#LDDLH0A$H]LeMtMd$LHH9vBDWHP諀HX蟀H}薀H}荀H`HtHLLL L(H]UHHd$H]LeLmLuL}H}HuHUMHEHuH4GHEHE/fDHEHcEHXHHH9vB]HE rȀ}}HcEHXHHH9vAHEHELLuAHEHHukAH5;tL#LIDLLMA$PHcHHHH9vEA]EEH]LeLmLuL}H]UHH$HLL L(L0H}HuHUHMLELMLHHEHDžHHUHXHHcHPEHUHEHHEHcX HHHH9vB@]ȅHc]HHH-H9v@]ALuH]LmMu?H5]:tMeLHLDA$HUHuH}б=HcHXHHH9v?]̃}t H}YHcEHXHHH9vh?]HEHUHuH}0HcHuHHÏHHH}c}HEЋbtsFHc]HHHH9v>H8D}LuLmH]Hu>H59tL#LnLLD8A$XHcHH}HuHEHcX HHH-H9vJ>H@HEHtH@HXHHH9v>ALuL}H]Hu=H5g8tL#LLLD鋕@A$PE;EDHcUHcEH)¾ HHmHHHEH0H}1} Hc]HHHH9vn=]HUH}0HHHHH}{HcEHXHHH9v$=]Hc]HHH-H9v<]HUH}бHHHHH}{HcEHXHH-H9v<])HcUH HHUHHH}z HHDzH};zHPHtZEHLL L(L0H]UHH$ H L(L0L8L@H}HuHUHMHEHUHp H,HcHhHEH`HgyH`HXHEHPL}LuLmHEHHH]Hu9;H5BsL#LHHLLLLPLXA$E H}xHhHt EH L(L0L8L@H]UHHd$H}HuHUJH]UHHd$H}HuHUMDEJH]UHHd$H}HuHUHMbJH]UHHd$H}HuHUHMLELMLH JH]UHHd$H]H}HuEHEH;EH}t EH}t EnHEHU@8;B8t0HEHcX8HEHc@8H)HH-H9v|9].HEHcX0HEHc@0H)HH-H9vL9]EH]H]UHHd$H]H}HuEHEH;EH}t EH}t EnHEHU@8;B8t0HEHcX8HEHc@8H)HH-H9v8].HEHcX0HEHc@0H)HH-H9vl8]EH]H]UHHd$H}uHUEB8H]UHHd$H]LeLmLuH}HuHEH@H;EHEHxtFLmLeMu7H5HEHc@(H]H)HH-H9v+H}}HEUP(H]H]UHHd$H]H}HcG@HXHH-H9v+HEX@H]H]UHH$HLLH}HuUHMH}u.LmLeMu+H5sLHLShHEH}(HUHu.HVסHcHxHEH}1H=5KHUHB0HUHEHB8HUEB$HE@@HE@DHEH}tH}tH}HEHHxHtlH`H lH֡HcHu#H}tHuH}HEHP`h^HHt=HEHLLH]UHHd$H]LeLmH}HuH~.LmLeMu\)H5sI$H9LH}@H}1yHEHx0H}tH}tH}HEHPpH]LeLmH]UHHd$H]H}HuHEH@@D$ttFttHEHcX0HEHc@0H)HH-H9v(]HEHcX8HEHc@8H)HH-H9v\(]H};tH}.u EH}uH}t E_EVH}tH}u E3H}uH}t EEE}HEH@@H$ttFttHEHcX0HEHc@0H)HH-H9vF']HEHcX8HEHc@8H)HH-H9v']H}tH}u EH}uH}t E_EVH}tH}u E3H}}uH}pt EEE}HEHcX0HEHc@0H)HH-H9v.&]u_HEHcX8HEHc@8H)HH-H9v%]u-HEH;Ev EHEH;Ev EEEH]H]UHHd$H}uU}uEEE;EuEHE@D;Eu HE@H;Et.HUEBDHEUPH}tHEHx0H5A<`H]UHHd$H}HuHE@DHEHx0HuYEHuH}H}:EH]UHHd$H]H}uH}sH1HFHEHx0uZH}H]H]UHHd$H}HuH1HHEHx0Hu]EH}EH]UHHd$H]H}@uHEHc@@HXHH-H9v$HEX@HUHu.HVСHcHUrf}tCH}1oH1HH}1WH@H}1DHHݢH}1,H1HHEHx01XH}WHEHcX@HHH-H9v*#HEX@HEHtH}\H]H]UHHd$H}HG0@H]UHHd$H}HuHEHx0HuZH]UHHd$H}uHEx(HEHc@(HHcUH9t%HE@(;EtHEHc@(HPHcEH9sHEHx K"tbHEHc@(HHcUH9uHEHx "HEHc@(HHcUH9u HEHx 1HEH@ H@HEHEUP(BEEHuH}HEuH}rHEHEHx Hu=HEUP(HEH]UHHd$H]H}HHXH3H=sIԢHHEEDHEHc@,HcUHHEHc@(HHH-H9v%!]H}HEH}uEH]H]UHHd$H]H}HuH0HMHUH}HHH=HsӢH]HEHcHcEH)HH-H9v HEHEH]H]UHHd$H}uH}00҉H]UHHd$H]H}uUM}t1LEHMԋuH}7HHH=sҢH]c}t1LEHMԋuH}HHH=SsҢH],LEHMԋuH}1ҚHHH=%sҢH]HEH]H]UHHd$H}uHEUH=sHH]UHH$HLLH}HuHUH}u.LmLeMuH5ssLHޡLShHEH}HUHuH9ˡHcHUurHEH}1{HEHUHPHEHPH=sVHUHB HE@(HEH}tH}tH}HEHHEHtlHhH(fHʡHcH u#H}tHuH}HEHP`bXH Ht7HEHLLH]UHHd$H}uHUHEH}HHEHUuH}XH]UHHd$H]LeLmH}HuH~.LmLeMuH5sI$HܡLH}@HEHx WַH}1LH}tH}tH}HEHPpH]LeLmH]UHHd$H}HuUH}@^HuH}QyH}֢H]UHHd$H}H@0HH]UHHd$H]LeLmLuH}@uHEHxt"HEHXH3H=s΢H3HRLm1LeMuH5gsM4$LۡHLAH]LeLmLuH]UHHd$H]LeLmLuH}HuHHE@pH}FH}]HtH}OHH}H}HtH}HH}HELhH]HEL`MuH5sM4$LڡHLAH]LeLmLuH]UHHd$H}uH}0ɲoH]UHHd$H}uH}0҉?H]UHHd$H]H}HuHH}xHEHuH}EHc]H}mHcHHH-H9v]H]H]UHHd$H}uH}3HEHxHuBH]UHHd$H]H}HuHHxu EFHEHx mEHc]HEHxHuHcHHH-H9vU]EH]H]UHHd$H]H}HuHHxH}lHcHuH}+HcHHH-H9v]H]H]UHHd$H}HuHEHxHu.EHuH}nH}EH]UHHd$H}uHEHxuHEHt H}@ H]UHH$HLLH}HuHUHMH}u.LmLeMuH5wsLHסLShHEH}HUHuH%ġHcHxHEH=!KТHUHBHEHxHuaLHUH=s HUHBH=s]HUHB0H}10ТHEHUHPHUH59HEHxHUH=ts HUHB8HEH}tH}tH}HEH3HxHtlH`H HáHcHu#H}tHuH}HEHP`fHHtHEHLLH]UHHd$H]LeLmH}HuH~.LmLeMuH5msI$HաLHUH5HEHxH}1ϢHEHxηHEHx0ηHEHx8ηHEHxηH}tH}tH}HEHPpH]LeLmH]UHHd$H}uHEHxuH]UHHd$H}HHx tHEHx(HuHEP H]UHHd$H}HuUHEHx0UHu( H]UHHd$H}uHEHxuH]UHHd$H}uHEHxuHEHuH}HEHxHu~H}%H]UHHd$H}uHUHEHxHUuXHuH}H}H]UHH$HLLLLH}HuUMDEDMH}QHUHHH忡HcH@HEHxuHEHH}]EEHEHx8 }HcEHXHHH9vHEHxU)H}1HHEHx8^ E;EH}HcHHHH9v]uH}4HE@0;EH}HcHcUL4LH-H9vHLmLeMuH5sI$HѡLDHEHcP0HcEH)LrLHH9vLmLeMuH5:sI$HѡLDHc]HHH-H9v]̃}}ZE;EHUHuH}hHHH=Իs/ĢH]fDHcUHcEH)HcEH9EHUHuH}hHHH=sâH]H}HcHHHH9v]fuH}tHE]LmLuMuH5 sM&LiСLA$}t`HEHc@0HcUL4ILHH9vYLeLmMu'H5sI]HСLD4]LmLuMuH5rsM&LϡLA$Hc]HHHH9v]̃}HEHEH}tHcUHcEH)HcEH9]H}tH}1;HHEHx8 LceILH-H9v\HcEHXHHH9v;HEHxD詑'E;E}H}HcHHHH9vH EẼẺH}\@0;E~suH}HINjuH}9Hc@0HcUHHHH9vdAMLMu1H5sL#LΡLDA$ ;Eb }H} HcHHHH9v H((E@ẼẺH}d@0;EuH}LINjuH}=HcP0HcEHH8HcEH0H;8~ H0H8HH-H9v? AMLMu H5sL#L̡LDA$(;E5HEH@8Hxt_fDHEH@8LhAHEH@8HXHu H5!sL#L~̡DLA$HEHx8uݢH}QJH@HtpߢHLLLLH]UHHd$H}HuHEHxHu~CEEH]UHHd$H}HuH1HHEHxHu!EH}EH]UHHd$H}HuHEHxHu^H]UHHd$H}HHxH]UHHd$H}HuHUMHEHx0MHUHu@H]UHHd$H}HuHUHEHx0HUHuFH]UHHd$H}HuHUMHuHUH}sTH]UHHd$H}HuHUHEHUH}H7VH]UHHd$H]LeLmLuL}H}HuUHE@ELeI\$HcEHH9v7 LcmLI|$IkL|DuH]LeID$HEHcEHH9v LcmLI|$诧IkHDLH]UHuH}+N[H]LeLmLuL}H]UHHd$H}H@HE@HEH@H]UHHd$H}H@HE@HEH@H]UHH$HLLH}HuHUH}u.LmLeMuH5[sLHȡLShHEH}HUHu֢HHcHUubHEH}1HEHUHPHEH@HE@HE@HEH}tH}tH}HEH٢HEHtlHhH(V֢H~HcH u#H}tHuH}HEHP`R٢ڢH٢H Ht'ܢܢHEHLLH]UHHd$H}HH@HE@HE@H]UHHd$H}HuHtHEx|AE|XEEHEHxPu-ILMMuH5žsM,$L辨HAD;}H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HEHxP.HcHHH-H9vnAE|XEEHEHxPu,ILMMuH5sM,$LHAD;}H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuUtHEHxPHU14HEHxPHuN2HELhH]LeMudH5EsM4$LAHLAHELhH]LeMu*H5 sM4$LHLAHEDh H]LeMuH5ќsM4$LͦHDAHEDh$H]LeMuH5sM4$L蓦HDAHELx8Lp0H]LeMuxH5YsM,$LUHLLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHEHxPHu2E|VHEHxPu*IM1LMMuH5sM,$L誥HLAHEHxPum1H]LeLmLuL}H]UHHd$H}HHxP+H]UHHd$H]LeLmLuL}H}uHEHxP+HcHHHH9v/HEEEEHEHxPu)IMLMuH5sL#L觤LA$tHHEHxPuh)HD}IIHuH5bsMeL^LDA$8E;EdH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HHxPc*HcHHH-H9vAEEEHEHxPu(ILMMuH5sM,$L膣HAt@HEHxPuH(HIIHueH5FsMuLBLA@D;}nH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HHxPS)HcHHH-H9vAEEEHEHxPu|'ILMMuH5zsM,$LvHAt@HEHxPu8'HIIHuUH56sMuL2LAHD;}nH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uHEHxP?(HcHHHH9vHEEEEHEHxPu\&IMLMuyH5ZsL#LWLA$tHHEHxPu&HD}IIHu1H5sMeLLDA$0E;EdH]LeLmLuL}H]UHH$PHhLpLxLuL}H}uHU؉MLEDMHEHxP&HcHHHH9vHEEE@EHEHxPu%IMLMu1H5sL#LLA$HEHxPu$HEHEHD$HEH$HEHEEHEL}DuDmHEHEH]HuߢH5sL#L蔟H}DLDLEDMA$`E;E#HhLpLxLuL}H]UHHd$H]LeLmLuL}H}؉uHUMLEHEHxPt%HcHHHH9vߢHEȋEȅE@EHEHxPu#IMLMuޢH5sL#L菞LA$thHEHxPuP#IHEHEHEHEDuDmL}LMuTޢH55sL#L2H}DHUDLEA$pE;EDH]LeLmLuL}H]UHHd$H}؉uHUMLEHEHxH}HEH]UHH$`HxLeLmLuL}H}ȉuHUMLELMHEHEHEHxP#HEHxP1"HUH$HUHUHUHUHUHUUHUD}IMLMuݢH5sL#LLDHUMLELMA$XHEHxP5#LcILH-H9vܢA|GEEHEHxPud!HHEH$LMLEHUMuHD;eHxLeLmLuL}H]UHHd$H]LeLmLuL}H}uUMHEHxPi"HcHHHH9v ܢHEЋEЅ|sEDEHEHxPu INjEHEDu]ML}MuۢH5{sHEL LtLDMA$xE;EH]LeLmLuL}H]UHHd$H}uHEHxPu H]UHHd$H]LeLmLuH}HuHEHEHxPJ!HcHHH-H9vڢ|fEEHEHxPu|IMMuڢH5}sMuLyLuLH;EuHEHxPu<HE;]HEH]LeLmLuH]UHHd$H]LeLmLuL}H}HuHUHEH}HHEHxPZ HcHHHH9v٢HE؋E؅|mEfDEHEHxPu|IL}HEHELMMu٢H5nsMeLjHHuLA$E;EH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHH}H|HEHxP_HcHHHH9vآHEE|^EEHEHxPuHL}IIHuآH5~sMeLzLLA$E;EH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uH}HEHxPrHcHHHH9vآHEE|aEfDEHEHxPuHD}IIHuעH5sMeL芗LDA$E;EH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uH}oHEHxPHcHHHH9v"עHEE|aEfDEHEHxPuHD}IIHu֢H5sMeL蚖LDA$E;EH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHH}HHEHxPHEHxPHcHHHH9v ֢HEE|_E@EHEHxPuHL}IIHuբH5sMeL蚕LLA$E;EH]LeLmLuL}H]UHHd$H]LeLmLuL}H}@u@H}@lHEHxPHEHxPHcHHHH9v բHEE|_E@EHEHxPuHD}IIHuԢH5sMeL蚔LDA$ E;EH]LeLmLuL}H]UHHd$H}؉uHUMLEpH]UHHd$H}ЉuHUMLELMH]LeLmLuH]UHHd$H]LeLmLuH}HuH}HEHx HELhH]HEL`MuH5tsM4$LxHLAH}H]LeLmLuH]UHHd$H}HEHxqHEHx H}KH]UHHd$H}HHx H]UHHd$H}HHxH]UHHd$H}HHx.H]UHHd$H}uHEHxuH]UHHd$H}HuHHUHu赎HlHcHUuHEHxHu1o.E跑H}HEHt0EH]UHHd$H}HuHEHxHu1.H]UHHd$H}HuUHMLEH}kHEHx LEHMUHu!H]UHHd$H]LeLmH}uLeMl$(HcUHH9vcHc]HI|$("]ADEH]LeLmH]UHHd$H}HHp H}HEH@ H]UHHd$H]LeH}HuHlHEXHEH)HH-H9v贾|5EELeE=v葾EItH};]H}ӢH]LeH]UHH$@H@LHLPLXL`H}uUHEHEHUHpBHjjHcHhED}LuH]LeMu觽H5JM,$L}HLDADuH]L}LeMujH5JM,$LG}LHDAH]HtH[HH-H9vB]HEHtH@HcUH9H]HtH[HH-H9v]̅~QHc]LeоH}s LmؾH}a LLHeHH-H9v諼]}Ez}~QHc]LeоH} LmؾH} LLH&eHH-H9v>]}uHUHtHRHcEH9~E胍H}H}HhHtEH@LHLPLXL`H]UHH$0H8L@LHLPLXH}HDžxHEHEHUHu蠉HgHcHU H}HELhHEHXHuH5oJL#LzLA$HELhHEHXHuǺH50JL#LzLA$HELhHEHXHu萺H5JL#LnzLA$HcHHHH9vsHpp EDEHExHELpDmHEHXHuH5iJL#LyDLA$HhHELxDuLxHEHXHu费H5JL#LyLDLA$HxH}qHUHuHLuHELhHEHXHuSH5JL#L1yLLHhA$XHELhDuHEHXHu H5rJL#LxDLA$H`HELxDuLmHEHXHuH5)JL#LxLDLA$HUHxHLxHELhHEHXHuiH5JL#LGxLLH`A$Xp;EHELhL5HEHXHuH5{JL#LwLLA$`HELhHEHXHuطH5AJL#LwLA$HcHHHH9v軷11HHUHB HEHp 1HHEHp HHEH@ H@HELhHEHXHu9H5JL#LwLA$览HxH}H}HEHt H8L@LHLPLXH]UHHd$H]LeLmH}HuHFHE HEH@HEH}t HEx|HUHEHBHEEHEHUZ9|gEE쐃ELmLceHcEI)LH=vEK|t-LmLceHcEI)LH=vKtH}0;]H]LeLmH]UHH$PHPLXL`LhH}HuHUHHDžpHDžxHUHũHaHcHUH}H]HtH[HH-H9vE|UEEHMHtHIHcUHuHxHxH}sHUHBHEHxu;]HEHxuHEH@HUH@ HBHEEHEHUZ9EEfELmLceHcEI)LH=v}K|}Hx5E=vVu1HpHpHu1HxLxLeLcmHcEI)LH=vKtH}L;]KVHpHxH}HEHt跆HPLXL`LhH]UHH$`H`LhLpH}HuHoHUHu荁H_HcHxHEH@H@ HEH]HtH[HH-H9vEfDELmHcUHH9vȲLceLH}HCD%EHEE9E|8HE@HcUH9|'LmLceHcEI)LH=vpK|u HE1LmLceHcEI)LH=v?KDHE;]E蘃H}HxHtHEH`LhLpH]UHH$HLLLL H}uUMHDž0HDž8HDž@HDžHHDžPHDžXHUHhH]HcH`}u EEHEH@LxDuLXHEH@HXHu尢H5NJL#LpLDLA$LXHcUHH9vðHc]HHX@ADEԋEE#HcEHXHH-H9v耰]̋E;E=HcEHXHHH9vPAHEH@LpLPHEH@HXHuH5mJL#LoLLDA$HPHtH@HcUH9HcEHXHHH9vïAHEH@LpLPHEH@HXHuwH5JL#LUoLLDA$LPHcUHH9vUHc]HHPAD:EHEH@LxDuLHHEH@HXHu箢H5PJL#LnLDLA$HHHtH@HcUH9ujHEH@LhDuHEH@HXHu腮H5JL#LcnDLA$HHHH9vi]EDHEH@LpDmHEH@HXHu H5sJL#LmDLA$HcUH9}eHEH@LhDuHEH@HXHu軭H5$JL#LmDLA$HHHH9v蟭]HcEHXHHH9v{]E;EmHEH@LhDuLHHEH@HXHu#H5JL#LmLDLA$HHHtH@HcUH9HEH@LxDmLHHEH@HXHu趬H5JL#LlLDLA$HHHtH@HcUH9HEH@LxDuLHHEH@HXHuIH5JL#L'lLDLA$HHHcEL`LHH9v LHHBD#EHEH@LhDuL@HEH@HXHu軫H5$JL#LkLDLA$H@HcEL`LHH9v蒫LH@BD#EEEHcEHcUH)HXHHH9vDHALHH9v#LHHH9v HHEHËE=v몢EĈH]؋E=vӪECHU؋EȉBHcEHXHHH9v袪]EH((;EEăEDEHEH@LhDuL8HEH@HXHu'H5JL#LjLDLA$L8HcUHH9vHc]HH8ADEԋE=v۩E:EMŰuH}HLeLcmHcEI)LH=v蛩K\'@HcEHXHH-H9vp]E;EHEH@LhDuL0HEH@HXHuH5}JL#LhLDLA$L0HcUHH9vHc]HH0oAD:Eu-@LeHc]HcEH)HH=v豨ID(;E!zH0XH8LH@@HH4HP(HXH`Ht;{HEHLLLL H]UHH$`H`LhLpLxH}HuHUHHUHuuHTHcHU*HuHtHvH}1SH]HtH[HH-H9v^EfDELmHcEHH9v(LceLH}CD%EHEPHcEH9|-LeHc]HcEH)HH=v虜I|tEE}~HEH@HEHtm@EHEHEH}"HEȋPH}LEHMHuU}}uHEH@HEHu}tHEH@ HE}t=HEH;ELeHc]HcEH)HH=v̛IDHEHE1HEH@HEHu HEH;EsrHEH@ HEHE{HExmEHEHEH}t;HEPH}LEHMHuU}t}0HEH@ HEHEH]LeLmH]UHHd$H]LeLmH}HuUHMLEEHELhHEL`Mu觚H5JI$HZLHEHx u H}EHEH@ HEHcEHEHEHEE=~*HcEĻH)HH-H9v>]HEȃx|GHEȋ@EEH}HEȋPH}LEHMHuU}}HEE9EHEPHcEH9LeHc]HcEH)HH=v蠙I|xLeHc]HcEH)HH=vuIDHEHEHEH;EwAHEE=HcEĻH)HH-H9v$]EH]LeLmH]UHHd$H}@uHE@):EtHEUP)H}@0蝵H]UHHd$H}@uHE@(:EtHEUP(H}@0]H]UHHd$H}uHE@,;EtHEUP,H}@0H]UHHd$H}HuH7֡HUHuUfH}DHcHUu3HEHx0HuHtHEHx0Hu֡H}@0蟴:iH}աHEHtjH]UHH$HLLH}HuHUH}u.LmLeMu:H5]sLHWLShHEH}HUHuaeHCHcHUuYHEHUH}1GHE@)HE@,HE@(HEH}tH}tH}HEH hHEHtlHhH(dHBHcH u#H}tHuH}HEHP`gVigH Htj{jHEHLLH]UHHd$H]H}HuHH=q\sHHH]H3H=S\sHHHp0HEHx0ӡH]H3H=,\sHHHU@)B)H]H3H= \sgHHHU@,B,H]H3H=[sGHHHU@(B(H}@0H]H]UHHd$H}HuHEHU@):B)u0HEHU@,;B,u HEHp0HEHx0HuEEEH]UHHd$H]H}uH}üHHH=6[sGH]HH]H]UHHd$H}uHUHЋuH}H蚼H]UHHd$H}HuHH}H谼HEHx8tHEHx@HuHEP8H]UHHd$H}HuUHuH}HEHx8tHEHx@HuHEP8H]UHHd$H}HHcH(u#H}tHuH}HEHP`cYecH(Htf~fHEHLL H]UHHd$H]H}ڼHHH=}XsDH]HH]H]UHHd$H}HuUH}ϡHUHu_H>HcHUuMHuH}EbH}KϡHEHtmdEH]UHHd$H]H}HuUUH} E*HcEHXHH-H9v]E;E}uH}HHuHtE;E|EEH]H]UHH$pHpH}HuUMH}ΡHUHu^HHEHH;Et-HEHU@rHEHuEZHE@,ttuQHcUHUHEH;tLH}1HUH5*HEH芻HEHziH}tH}tH}HEHPpH]LeLmH]UHHd$H}HH蔼H]UHHd$H}HH5@HHHEH芼H}@0^CH]UHHd$H}HuH藻HUHuKH)HcHUu-HEHbHEHuH}H}蘙ENH}HEHtPEH]UHHd$H}HuHHUHu%KHM)HcHUuHEHHuE&NH}}HEHtOEH]UHHd$H}HuH臺HUHuJH(HcHUuHuH}5HEHcMH}HEHtOH]UHHd$H}uHEHuH]UHHd$H]LeLmH}uHE;EtVHEUHEǀH}@0>ALmH]Hu\{H5HEHcXtHZHcH)HH-H9v ]޿蠢HE؃}}IHEH@Px~;HEH@PHcXHHH-H9v\HEHxPHE؋E;E~6}|0}|*HcUHcEHH9HEHc@ H-HcUH9~@H Q EEHExtHkEHEHcXtHcEH)HHH9v\޿$ƿ蘡HEЃ}sHc]HHHH9v[HEHxP HH}Nc}3Hc]HHH-H9v[HEHxPHEHEHcXxHcEH)HHH9vO[HExxHcHcUHHH-H9v[]HELh(HEHX(HuZH5sL#LLA$( H(Hc]HHH-H9vZAL0L(H(Hu{ZH5\sJL#LYLLDA$H0HtH@HXHH-H9vLZߋu⟳HEȃ}|DHEH@P@;E~4HEHxPuhHH}a~HEHxPuHHEHuH}a~HuH}vaEEPHuH}Ua|HEHEEE'HuH},aHEHEEEE;E~ }|}}@H@HEHpdH~H~tHEHU@h;B @HELc`hHEHcX H.HcH)I9|-HELc`hHEHcX H HcH)I9u\HExduRHELc`hHEHcX HLcILH-H9vXD,HcH)I9HuHXEHtEHEHxP1HEEHEH@dHEHuH}_|@0HEHuH}_HcUHcEHdH9~@0HEEHEH HEHHEHL}E0AH]HugWH5sL#LEEELHHH A$}u6E;E~.Hc]HHHH9v WڋuH}|7E;E~/HcUHcEH)HcEHHHH9vV]HEHUHPl}}}EE;E~DHEx|t}~4HEH@PPHEHxPu0HUHEHBlHYEED}HEHHEHHEHLuE0H]HuVH5sL#LELHHHEA$HEHuH}~]HEx|{}}uEHHEHHEHLuL}E0H]HuiUH5sL#LGELLHHDA$HEЀ}u5E;E~-Hc]HHH-H9vUڋuHHuH}\})HEx|t}~HUHEHBlHE;EHELhHEHXHuTH5sWsL#LpLA$AHc]HHcHHHH9vgTDEHEH@P@EEHc]HmHcH)HHH9vT]HEH@PxsHc]HHH-H9vSHEHxP*HH}n[}4Hc]HHHH9vSHEHxPHEHc]HHH-H9vvSAHELhL0HEHXHu2SH5VsL#LLLDA$H0HtH@HXHHH9vSߋu蘘HEHH}ZEHHEHHEHLmL}E0H]HuRH5sL#LeELLHHDA$HUHBl}uCE;E~;H}Pt.Hc]HHHH9v+RڋuHHHy#H0͏H8Ht$HLLLLH]UHH$0H0L8L@LHLPH}@uHDžpHUHuHHcHxHEH@LpPE1HEH@HXPHu QH5N sL#LDLA$E}t HuH}HEH@LhHEH@HXHuPH5SsL#LLA$AHEHcXH}HcHHH-H9vPDEH}t EHEH@HxP1HEEHEH@H@dHE؋EEHc]HHHH9v PAHEH@LpLpHEH@HXHuOH5RsL#LLLDA$HpHtH@HXHHH9vOߋu$HhHEPH`HEHPHXL}LuE0HEHXHu#OH5sL#LELLHXD`HhA$HUHRHBlHExuGE;E~?HEHxt.Hc]HHHH9vN1H}. H}H}L Hp[HxHtz!H0L8L@LHLPH]UHHd$H}HG@tHEH@@xH]UHH$0H0L8L@LHLPH}HEHUHuH;HcHUZHEH@x|HHEH@H@Px2HEH@HxP1HUHRH ;B  HEH@HxP1HUH ;BHEH@LhHEH@HXHuMH5OsL#L LA$AHEHcXH}% ƿd HcHHHH9vLDEHEH@@p;EHEH@HcXpH} HcH)HH-H9vvLHEH@XpHEH@HxP1HHEH@HxlS}HEH@HxP1}HUHRHBlEHc]HHHH9vKAHEH@LpLmHEH@HXHuKH5NsL#L LLDA$HEHtH@HXHHH9vKߋuHEHEHPHBlHpHEPHhHELpL}E0HEHXHuKH5 sL#L ELLDhHpHUA$HUHRHBlHEHx}oHEH@HcPhHEH@Hc@ HdH9JEHEH@HcX HdHHH9v|J޿ƿHxHEH@HPdH`HELxHEHXAE1HEHXHuIH5x sL#L EEHXLH`HxA$}{HEH@HxP1 HHEH@HxdVQuHEH@HxP1J6HEH@HxP1HUHRHBdHEHxr H}$HEHtFH0L8L@LHLPH]UHHd$H]LeLmLuL}H}HuEHEH@H@Px~cHEH@HxP1HUHRH ;B }?EHEH@HxP1HUHRHBdHE8 HEHELhHEHXHu8HH5sL#LLA$HEH@Lcp HELhHEHXHuGH5fsL#LLA$HcHI)LH-H9vGDaHUHRHBd;EHEH@p 4HEHEH@HcX HdHHH9vgG޿{ƿHEHUHBHEL}AE1HEHXHuGH5|sL#LEELH}HuHUA$}~XHEH@HxP1HUHRHBdHE8|QHEHcHcUHHHH9vFHE!HEH@p !HUHRHBdEH]LeLmLuL}H]UHHd$H]H}EEHEH@xtHEH@xxHEH@ptHEH@HxPEHEH@pxHEH@HxPE}E;EHExu$HEHxtHEHxUu HcEHcUH)HXHH-H9vhEHEH@HxPuHEH@H@P@;E}HEH@H@P@EEEH]H]UHHd$H]H}HGH@Px ZHEH@HcX HEH@HxP1H HcH)H,HEH@HcX HHH-H9vDHEH@HxP&HcHHH-H9vWD]HEH@HxPU1HEH@H@Px~!HEH@HxP1YHUHRHBdHEH@@hHEH@H@PHcXHHH-H9vCHEH@HxPH HcHUHcRH)H=,HEHc@HHH-H9vxCHEH@HxPHcHXHH-H9vFC]HEH@H@PHcXHcEH)HH-H9vCHEH@HxPuHEH@H@Px~MHEH@H@PHcXHHH-H9vBHEH@HxPHUHRHBlHEH@@pH]H]UHHd$H}uUHEx{E;EoHEH@x|tHEH@H@Pxu HEUPCHEHxUu$HEx|HEPHEpHEHxHE@H]UHHd$H]LeLmH}HLhHEHXHu~AH5sL#L\LA$HcHHH-H9vbA]}EdEH]LeLmH]UHHd$H}HuHEH@H@Px~XHEH@H@PpHEH@HxPMUH 9u-HEH@H@PpHEH@HxP"U9uEEEH]UHHd$H]H}HGH@Px~NHEHXHEH@HxP1ShH 9u(HEHXHEH@HxP1Sd9uEEEH]H]UHHd$H}HuHUHEH@@t;E|HEH@@t;E~ HEH@@x;E|HEH@@x;EEEEH]UHHd$H}Hu}~BHEH@xt|.HEH@@t;EHEH@xx~HEH@@x;E}EEEH]UHHd$H}HuHEHxtHMHIHEHxHuH}ZBHEHxtHMHHEHxH]UHHd$H]LeLmH}jtPLmLeMu|>H5rI$HYLtHEx|tHEH@Px~EEEH]LeLmH]UHHd$H]LeLmH}uUMLmLeMu=H5erI$HLtK}u2HcEHXHH-H9v=ڋuH}0uH}0ɺH]LeLmH]UHHd$H]LeLmH}@u@H}@tCHEx`tFHELh(HEL`(Mu =H5sI$HL t H}@H]LeLmH]UHHd$H}Hx|tHEH@PxHEx|uHEH@Px~EEEH]UHHd$H}uUM}}E}} EE;E}EEHExh| HE@h;ELHExp| HE@p;E|6HE@t;E HExt HEUPtHE@x;E} HEUPx@uH}H]UHHd$H]H}uUHEH@Pxl}}E}|HEH@PHcPHHcEH9}+HEH@PHcXHHH-H9vs;]HEHxPuH EHEHxPuH E܋EEHcEHXHH-H9v;]HEHxPuMH ;EzHEHxPu H HcHcUHH9HEHxPu H E=U܋uH}@HEHxPuH EHEHxPuH E܋E;E:U܋uH}{@H]H]UHHd$H]LeLmLuH}@u@uHEH$HE@hHE@pHELhP1HEL`PMu9H5rM4$LLAHE@tHE@x@uH} H]LeLmLuH]UHHd$H]LeLmLuH}uHE;EHEUH]=v*9DHEHHELMu8H54CXM4$LHDAHEu H}1苽H}H]LeLmLuH]UHHd$H}HHuHEǀHUHEHHHUHEHHH]UHHd$H}@uHE:Et!HEUH}H}H]UHHd$H}uHE;Et!HEUH}KH}лH]UHHd$H}HuHEHH;Et7HEHUHHEtHEHt HuH}H]UHHd$H}@uHE:Et6HEUHEHtHEHt HuH}ZH]UHHd$H}HuHEHtHUH5vHEHHUHEHHEHtHUH5>HEHH]UHHd$H}@uHE:Et3HUEHEHtHuH} H}]H]UHHd$H]H}HEHUHuH=HcHUOHE>HEHx/HEƀHuH}vHEHHu2Hu'H]H} ;uHuH} HEHHEHHEHu2HEHxHHEH|H}xQHEHHEHXuAHEHxwHHEH4H}'~HuH}H}18H}H}1rHEHtSH]H]UHHd$H}HuHEƀH]UHHd$H}HuHEƀHuH}9H]UHHd$H}uUMHEƀMUuH}mH]UHH$pHxLeLmH}HuLmH]HuK3H5rL#L)LA$HUHu|HߠHcHUu!HuH}H}1ѷH}XsLmH]Hu2H52rL#LLA$HEHtHxLeLmH]UHHd$H]LeLmLuH}HL0HELMuR2H5H}H}芴H}HuMHuH}H}nHEHt4HhLpLxLuH]UHH$0H8L@LHLPLXH}HuHDžhHDžpHUHuHܠHcHx\HEHxuH}1mAHEHtHEHH}mHEHx(HELh(HEHX(Hu/H5sL#LLA$ HEHELh(HEHX(Hu.H5|sL#LLA$ HEHcEHcUH)HXHHH9v.]܋E;E}ZLcuHELhHEHXHuY.H5:1sL#L7LA$HcHcUH)I9~H}1lHEtLeM,$HcEHH9vg*Hc]HI<$xAD rHcMHEH0HxzHxH}]hHxgH}gHEHtH`LhLpH]UHHd$H}HtHUHEHUHEH]UHHd$H}HEHUHuHՠHcHUHEHtHEEHEHx(u HEu E`HE~LH}HuHuHuHtHvH}HuH=-KHUHcH9~ EEHEtMH}9fHEHt[EH]UHH$HLLLLH}HuHUH}u.LmLeMu'H5=rLHLShHEH}HUHuH+ԠHcHUEHEHUH}1EHEƀHEƀHEƀH}@HEƀHEǀHEƀlHUHlHUHlHUHlHUHM1AH1XL%0XMu&H50XMLyHLLAHUHHEL0HELMuL&H50XM4$L)@LAH]苃=v6&DHEHHELMu%H5@0XM4$LHDAHUHTIIHEHHELMu%H5/XM,$L{HLLAHEHxHEH}tH}tH}HEHHEHtlHhH(HѠHcH u#H}tHuH}HEHP`}sH HtR-HEHLLLLH]UHHd$H]LeLmH}HuH~.LmLeMul$H5rI$HILHEHtHUH5HEHHEHݶH}1茰H}tH}tH}HEHPpH]LeLmH]UHHd$H}HEtHEHx(4't HuH}#H]UHHd$H}HEHEHUHuHϠHcHU HEHu6H}Hu/HuHEHkaH}HUyHEHH}BaHEH10aH}HuH}HupHt4H}HuHuHEH`H}7HUHEHH}IH}H}蕦HEHu H} HuH}H}`H}`HEHt*H]UHHd$H}2H]UHHd$H}1H]UHHd$H}1H]UHHd$H}HuHUHMDEDM1H]UHH$HLLH}HuHUH}u.LmLeMu*!H5crLHLShHEH}GHUHuQHy͠HcHUHEHUH}1C-HE@THE@\HE@`HEHxpHEHxHEHxHEHx1HEH}tH}tH}HEHHEHtlHhH(pH̠HcH u#H}tHuH}HEHP`lbH HtAHEHLLH]UHHd$H}1HExHuHExdt H}H]UHHd$H}uHE@`;EtHEUP`H}H]UHH$HLLL L(H}HuHUHMHEHUHxH<ˠHcHpdHE@HE@}DHELhHEHXHu`H5A!sL#L>ޠLA$;E}Hc]HHHH9v/AHELpLmHEHXHuH5 sL#LݠLLDA$HE@`t ty}oHELxDuLm1H0H8HEHXHutH5U sL#LRݠ8D0LDLA$8EHcEHUHtHRH9LeHcUHH9v+Hc]HH}kADrHUHEHHEUԉHUHB(HhHEL(E0ƅ@E0ƅHHEHX(HuH5IsL#LvܠHDD@ELHhA$x HUHHExHE@HE@`EEHcEHUHtHRH9LeHcUHH9v Hc]HH}jADrHUHEHHELp(LmƅPƅXE0ƅ`HEHX(HuH5:sL#Lg۠`DDXDPLLA$x HUHHEx} HE@H}YHpHt7HLLL L(H]UHHd$H}HuH}6H]UHHd$H}uH}H]UHHd$H}uH}H]UHHd$H}uUMH}H]UHHd$H}HuH}H]UHHd$H}HuH}H]UHHd$H]LeLmH}@u@H}@ HELh(HEL`(MuH5{sI$H٠L t H}H]LeLmH]UHHd$H]LeLmLuL}H}H@dHEHx)HEHx(HExHHELh(HEHX(HuH5͵sL#LؠLA$ HE@dEEHEH@(tUHEHxILuLmHEHEH]HuH5rL#L}ؠH}LLLA$}~0E;E|E;Eu E;E}HEHEHEHEHEHEHExT~/HE@T;Eu HE@P;EtHEPTHEpTH}IHEx\~?HEHU@T;B\t/HE@\;Eu HE@X;EtHEP\HEp\H}}nHE@T;Eu HE@P;EtUuH}E;EuHE@T;Eu3HE@P;Eu'HE@\;Eu HE@X;EtUuH}HEHUHPPHEHUHPXH]LeLmLuL}H]UHHd$H]H}؉uHUMLEHEHE؋@T;Eu HE؋@P;EtHE؋@\;EuOHE؋@X;EuCHEH@HEHcEHXHH-H9vHEHxuE11HEH]H]UHHd$H]H}ЉuHUMLELMHEHEHEЋ@T;EuZHEЋ@P;E~HEHU@P?HEHc@PHHcUH9~*HEHc@PHXHH-H9vHEHEЋ@\;EHEЋ@X;E~'HEHU@X;| HE8}HEHU@X`HEHc@XHPHcEH9~KHEHc@XHPHEHcH9| HE8}*HEHc@XHXHH-H9vFHEH]H]UHHd$H}uHUME;E} E\E;E~ EKE;E} E:E;E~ E)E;E} EE;E~ EEEH]UHHd$H]H}EEEEHcEHXHH-H9vc]HEUH]H]UHH$HLLH}HuHUH}u.LmLeMuH5srLHӠLShHEH}KHUHuH9HcHUHEHUH}1 HE@PHE@\HEHx;HEHxHEHxwHEHx1HEHx1HEH}tH}tH}HEH}HEHtlHhH(,HTHcH u#H}tHuH}HEHP`(H HtHEHLLH]UHHd$H}$HExHuHEt H}H]UHHd$H}HuHUHEHBxH]UHH$pHLLLH}HuHUHMLEHEHEHEHEHxvHELhHEL`Mu]H5~sI$H:ѠL08}.HELhHEL`MuH5sI$HРL;E}HEHpxH=#uáHEHXxH3H=#uáHHEHc]HHH-H9vxHELhHEHXHulH5MsL#LJРLA$EHELhH]LeMu2H5+#uM4$LРHLA(xH} HHhY Dž|xH}_ HEHCH`H ޡHCHcHH}CW |HxH}mV >Hc|HXHH-H9vu|HxH}-V uHcEHHcH9HcEHHcH9p`Dž%(H8HxHHH8HH|HxHHHHHHHHtHHHQHHxHHHHHHHH|HxHHH8HH\tHH8H|x%(tGHHHH|HxHH;HHHEHHHH|HxHHHHHIޡH}HHtHߡHDžHc8HXHH-H9v HEHcDHXHH-H9v\ HEXHcHHXHH-H9v2 HEXHcHXHH-H9v HEHcHXHH-H9v HEXHcHXHH-H9v HEX}HcHXHH-H9v{ HEHcHXHH-H9vR HEXHcHXHH-H9v( HEXHLLLH]UHHd$H]H}HuUHMHEHc@HcUHHH-H9v HEHxHuyQ HuHUH}(E܄tH}HuHEH]H]UHHd$H}HuHUHE@$u3HE@$u&HEHU@ ;B uHEHU@;BuEEEH]UHHd$H]H}HuHUHMHEHuHH}HuHHE@$HEHcHHH-H9v HE.DHEHcHHH-H9v] HEHE8| UHHE0HEHxC ;E0HE8|RHEHMHEHuHEH}HuHHExt HE@$t HE@$H]H]UHHd$H]H}HuUHMHEH@Hxu U HE8}HEH@Hx\ HUHEHcHHH-H9vMHEHEHuHEH@HxN HE@$uHEHU@;B0H]H]UHHd$H]H}HuHUHMHEHuH!H}HuHHE@$HEHcHXHH-H9vHE.DHEHcHXHH-H9v]HEHEHU;B} UHHE0HEHx= ;E,HEHU;BtRHEHMHEHuHIH}HuHHExt HE@$t HE@$H]H]UHHd$H]H}HuUHMHEH@HxuS HEHcHXHH-H9v]HEHEHuHEH@Hx M HE@$uHEHU@ ;B,H]H]UHHd$H}HuHEHxHEHx裴HEHE@P;EuHE@T;E HE@X;E}QHE@\;EuHE@`;E HE@d;E}-HE@h;EuHE@l;E HE@p;E} H}:H]UHHd$H]UHHd$H]UHHd$H}uUMH}H]UHHd$H}HuHEƀH}H]UHHd$H}HuHEƀH}H]UHHd$H]LeLmH}@u@H}@ HELh(HEL`(MuJH5sI$H'ĠL t H}H]LeLmH]UHHd$H]LeLmH}HƀHEHx=HEHx(a(HExHHELh(HEL`(MuH5RsI$H~àL HEƀHEHxEHLEHMHUH}mHExP~?HEHxPpXHUMu HEtHEPPHEpPH}D HEx\~?HEHx\pdHUMu HEtHEP\HEp\H}HExh~?HEHxhppHUԋMu HEtHEPhHEphH}HEƀ}~*HEHxPpXHUM:tUuH}w}~*HEHx\pdHUM tUuH}G}~*HEHxhppHUԋMtUԋuH}HUHEHBPEBXHUHEHB\EBdHUHEHBhE܉BpH]LeLmH]UHHd$H}؉uHUMLEHEHE؋@P;EuIHE؋@T;E=HE؋@X;E~1HEH@HEHE؋PXHE؋pTHEHxE11-HE؋@h;EuFHE؋@l;E:HE؋@p;E~.HEH@HEHE؋PpHE؋plHEHxE11PHE؋@\;EuDHE؋@`;E8HE؋@d;E~,HEH@HEHE؋PdHE؋p`HEHxE11HEH]UHHd$H}ЉuHUMLELMHEHEHEЋ@P;Eu&HEЋpTHUH~HEЋpXHUHkHEЋ@h;Eu&HEЋplHUHLHEЋppHUH9HEЋ@\;Eu&HEЋp`HUHHEЋpdHUHH]UHHd$H}uHUHE@;E}HE8| HE;E| HEUH]UHHd$H}HuHE@d;Eu HE@h;EtNHEHUHPdHExh~HEHpdHEHxlHUHBlHUHEH@dHBlH}H]UHHd$H}^ H}0aEHE@`:EtHEUP`H}HEx\tHExP|EEEH]UHHd$H]LeLmH}fuHEf@^f;EtCHUfEfB^HELh(HEHX(HuH5sL#LݽLA$( H]LeLmH]UHHd$H}HuUMDEHE؃xh|$\CHH}PH}WH]UHHd$H}uH}!EHE@`:EtHEUP`H}OH]UHHd$H}H}HUB`H}H]UHHd$H]LeLmLuL}H}Hx`HExduHExhgHE@hEHEHPlHUHELx(LuLmHEHX(HunH5sL#LLLLLHuA$ HE@P;EuHE@T;EuHE@X;EHExP|#HE@P;EtHEPPHEpPH}2HELx(DuDmEHEHEHX(HuH5zsL#L觻uDDLA$` HUB\HEHU@hBPHEUPTHUEBXHEPPHEpPH}HEx\tH}H1H'H]LeLmLuL}H]UHHd$H}HGxP|#HEH@PPHEH@pPHEHxHEHx1wHEH@@PHEH@@\H]UHHd$H}HuHUHMLELMHEfx^t-HE؃8$HEHUf@^fHEHUHEHH]UHHd$H]LeLmLuH}uUEHEH@(u1HEH@( tEu EE HELh(HEHX(HuH5ksL#L蘹LA$` HHLcILH-H9vEEEHELh(HEHX(HuBH5sL3L LA` HËuH舌HEfxL u+HEfx2t}uuH}>t ED;ewHELh(HEHX(HuH5nsL#L蛸LA$p HHLcILH-H9vEEfDEHELh(HEHX(HuBH5sL3L LAp HËuH舋HEfxL u+HEfx2t}uuH}>t ED;ewHEHx(HELh(HEHX(HuH5YsL#L膷LA$h HHpLcILH-H9vEEEHELh(HEHX(Hu2H5sL3LLAh HËuHxHEfxL u(HEfx2t}uuH}.tE D;ezEH]LeLmLuH]UHH$HLLLLH}HuHUH}u.LmLeMu\H5rLH:LShHEH}HUHuġH諢HcHUHEHUH}1uHE@`HE@PHE@\HEHx1+HEHx1\HEHxHEHxHUHIIHEHX(HEL`(MumH5sM,$LJHLLA HEH}tH}tH}HEHơHEHtlHhH(]áH腡HcH u#H}tHuH}HEHP`YơǡOơH Ht.ɡ ɡHEHLLLLH]UHHd$H]LeLmLuL}H}HuH~.LmLeMu4H5rI$HLHUHmIIHEHX(HEL`(MuH5sM,$LʳHLLA HEHxtHMHHEHxH}1H}tH}tH}HEHPpH]LeLmLuL}H]UHHd$H}HuHH}HHEHxtHMHZHEHx訸H]UHHd$H}HuHH}HHExP|HEPPHEpPH}H]UHHd$H}HuHH}H@HExP|HEPPHEpPH}H]UHHd$H}؉uHUMLEHEHE؀x\tPHE؋@P;EuDHE؋@T;E8HE؋@X;E~,HEH@HEHE؋PXHE؋pTHEHxE11HEH]UHHd$H}ЉuHUMLELMHEHEHEЋ@P;Eu>HEЋ@T;E~ HEHU@THEЋ@X;E~HEЋ@T;E HEHU@XH]UHHd$H}HuHEx|~HEP|HEp|H}^ H}H]UHHd$H}HGPx uHEH@Px$tEEEH]UHHd$H}HuH}&H]UHHd$H}uH}H]UHHd$H}uH}H]UHHd$H}uUMH}H]UHHd$H}HuH}H]UHHd$H}HuH}vH]UHHd$H}t6H}Qu)HEHxhuHEHxXu H}tEEEH]UHH$HLLH}HuHUH}u.LmLeMuJH5#rLH(LShHEH}hHUHuqH虛HcHUHEHUH}1cHE@|H=sHUHBPHEHxPHEHxP{HEHPPHMH8HHHEHx1˻HEHx1HEH}tH}tH}HEHHEHtlHhH(oH藚HcH u#H}tHuH}HEHP`kaH Ht@¡¡HEHLLH]UHHd$H]LeLmH}HuH~.LmLeMu\H55rI$H9LHEHxPçH}1xH}tH}tH}HEHPpH]LeLmH]UHHd$H]LeLmLuH}uHE@xHEHxht*HEHxpHEL@HEHHxHEHp(UHEPhHEHxXHExxtHEH@@$EHEH@@ EEEHEHx`HEHHxHEHp(LMLEUHEPXHEHxuHEHxuDHExxucHE@|;EuWH}tJHE@xHELhPHEHXHEL`MuH5؅sM4$L蔫HLAH]LeLmLuH]UHHd$H}؉uHUMLEHEHEHxHE؀xxt HEH@HEHEH]UHHd$H}ЉuHUMLELMHEHEH]UHHd$H}uHUMHEHEHxJHExxt HEH@HEHEH]UHHd$H}nqHEHxtfHEH@@ EHEx|~#HE@|;EtHEP|HEp|H}`}~HE@|;EtUuH}?HEUP|H]UHHd$H]LeLmLuH}@uHE@p:EHUEBpHExptDHELh`HEHXHEL`MuH5sM4$LfHLABHELhhHEHXHEL`MuEH5fsM4$L"HLAH]LeLmLuH]UHHd$H]LeLmLuH}@uHE@X:Et>HUEBXLm1LeMuH5nrM4$L袨HLAH]LeLmLuH]UHHd$H]LeLmLuH}HuHExptDHELh`HEHXHEL`MuCH5dsM4$L HLABHELhhHEHXHEL`MuH5 sM4$LܧHLAH]LeLmLuH]UHHd$H]LeLmH}HuHH}HHEHxP:|HEH@(t:HELh(HEL`(MuTH5sI$H1Lt1HEHxPw4HEHEHxP4HEUuH}CH]LeLmH]UHHd$H]LeLmLuH}HuLm1LeMuH5drM4$L蘦HLAH]LeLmLuH]UHH$HLLH}HuHUHMH}u.LmLeMu6H5rLHLShHEH}HUHu]H腒HcHxHEHUH}1LHEHUHPPH=sHUHBhHEH@hHMHHHH=sHUHB`HEHP`HMHHHHE@XHEHx1蕲HEHx1ƲHEH}tH}tH}HEH芶HxHtlH`H 6H^HcHu#H}tHuH}HEHP`2轷(HHt⸡HEHLLH]UHHd$H]LeLmH}HuH~.LmLeMu,H5rI$H LH}1UHEHx`hHEHxh[H}tH}tH}HEHPpH]LeLmH]UHH$PHPLXL`LhLpH}uHDžxHUHu轱H叠HcHUSHE@tHE@xHEH@(t>HELh(HEL`(MuH5sI$H⢠LHEHxP$0HEHEHxPS0HEE;EE;EHEHxP5HE@tHE@xHEH@Px\u3HEHxPuN/HUBtHEHxPu.HUBx-HEH@Px\E;Eu HEUPtE;Eu HEUPxHExXHc]HHH-H9vAHELpHxHEL`MuH5rM,$L萡HLDAHxHtH@HXHH-H9v]EEHExxu#HcEHXHH-H9vQ]HExxt HE@x;E~ HEUPxHEPxHEptHEHx~HxHEHtHPLXL`LhLpH]UHHd$H}؉uHUMLEHEHE؋@t;E"HE؋@x;E HE؃xx} HEH@HEHEH]UHHd$H}uHUMHEHE@t;E"HE@x;E HExx} HEH@HEHEH]UHHd$H}ЉuHUMLELMHEHEHEЋ@t;E~HEHU@tHEЋ@x;E~ HEHU@xH]UHHd$H]LeLmH}uHE@P;EtAHUEBPHELh(HEHX(Hu$ߡH5{sL#LLA$@H]LeLmH]UHHd$H]LeLmH}HuHH}HLmH]HuޡH5rL#L萞LA$HUBTHELh(HEHX(HutޡH5%{sL#LRLA$@H]LeLmH]UHHd$H]LeLmH}HuLmH]HuޡH5rL#LLA$HUBTHELh(HEHX(HuݡH5zsL#L豝LA$@H]LeLmH]UHHd$H]LeLmH}u|HEHPXHtHRHcEH9} EHE@Pt?LeMl$XHcEHH9vNݡHc]HI|$X+AD tMtKHE@PtELeMl$XHcUHH9vݡHc]HI|$X+AD tuEEEH]LeLmH]UHH$HLLH}HuHUH}u.LmLeMuZܡH5[rLH8LShHEH}HUHu聪H詈HcHUuSHEHUH}1wHEHx*HE@THEH}tH}tH}HEHFHEHtlHhH(HHcH u#H}tHuH}HEHP`|笡H HtƯ衯HEHLLH]UHHd$H]LeLmH}HuH~.LmLeMuڡH5rI$HɚLH}1H}tH}tH}HEHPpH]LeLmH]UHH$`H`LhLpLxL}H}uHEHUHu裨HˆHcHUHEHxX1}HE@`HE@dHExTHE@PuHc]HHH-H9v١AHELpH]HEL`Mu١H5rM,$L膙HLDAHuHEHxXH}WHEHtyH`LhLpLxL}H]UHHd$H}؉uHUMLEHEHEHxXtYHE؀xTtOHE؋@PtDHE؋@`;E8HE؋@d;E~,HEH@HEHE؋PdHE؋p`HEHxE11HEH]UHHd$H]LeLmLuH}ЉuHUMLELMHEHEHEHxXHEЀxTHEЋ@PHEЋ@`;E~HEHU@`HEЋ@d;E~HEHU@dEEHEH@XHtH@HcUH9|HEHPXHtHRHcEH9}|HEH@XHtH@HcUH9}E0HE@Pt=LmMuXHcEHH9v~סHc]HI}X%AD tKtIHEЋ@PtBLmMuXHcEHH9v5סHc]HI}X%AD tuAE0EHEH@XHtH@HXHH-H9v֡HEHUHEBdMEĉEȃ}|HEHPXHtHRHcEH9}E0HE@Pt=LmMuXHcUHH9vg֡Hc]HI}X$AD tKtIHEЋ@PtBLmMuXHcUHH9v֡Hc]HI}X$AD tuAE0DeEt3HEЋUP`DHcEHXHH-H9vա]HEH@XHtH@HcUH9}|HEH@XHtH@HcUH9}E0HE@Pt=LmMuXHcEHH9vJաHc]HI}X#AD tKtIHEЋ@PtBLmMuXHcEHH9vաHc]HI}X#AD tuAE0EHEЋUȉP`*HcEHXHH-H9vԡ]HEH@XHtH@HcUH9}|HEH@XHtH@HcUH9}E0HE@Pt=LmMuXHcEHH9v*ԡHc]HI}X"AD tKtIHEЋ@PtBLmMuXHcUHH9vӡHc]HI}Xa"AD tuAE0EHEЋUȉPdHEЋ@`;E~HEHU@`HEЋ@d;E~ HEHU@dH]LeLmLuH]UHHd$}EEHEHMM1Hx;@H=4r觗HH5HUH]UHHd$H}HuUH}cE(fDuH}HEHUHuUH}UHuH}iuH]UHHd$H]LeLmLuL}H}uL}DuH]LeMuRҡH5rM,$L/HDLA@HEH]LeLmLuL}H]UHH$HLL H}HuHu.LmLeMuѡH5@rLH譑LShHEH}YHUHuH~HcHUHEH}1茊H=r{HUHBPH=rBHUHBHE@ H=vIHUHB HE@,HE@XHE@\HE@`HEH}tH}tH}HEHTHEHtlHpH0H+}HcH(u#H}tHuH}HEHP`芣H(HtԤ诤HEHLL H]UHHd$H]LeLmH}HuH~.LmLeMuϡH5mrI$HُLH}HEHx ZHEHx-HEHxP H}1H}tH}tH}HEHPpH]LeLmH]UHHd$H}HuUuHEx(~H}ՉwHEx~HEHxHu5QH=WrHEHuH}HEHx HuHEHx0tHEHx8HuHEP0H}H]UHHd$H]H}HuHEHx^EHEx(uHEHx u}u H}l}tHEHxHu8JHEHx HcHHH-H9vJΡHEHx HHuHH}H]H]UHHd$H]H}HEHEHx EHEHx u}tc}tHEHxHEJHEHx HcHHH-H9v͡HEHx ,HHHEHEH]H]UHHd$H]H}HEHEHx EHEHx ju}tc}tHEHxHEJHEHx :HcHHH-H9v̡HEHx |HHQHEHEH]H]UHHd$H]H}HcGHXHH-H9v̡HEXHExuaHEHx@0~HEHEHx@tHEHxHHEP@HEHEHxPHuH}tHEHxHuH]H]UHHd$H]LeLmH}HHx HcHHH-H9vˡ|,EEHEHx uLIL;]HELh HEHX HuRˡH5IL#L0LA$HE@HE@XHE@\H]LeLmH]UHHd$H]LeLmLuH}HxHEHcXHHH-H9vʡHEXHExcHEHxP NHEH@HcXHHH-H9vʡHEHxHIIHu>ʡH5rMuLLAuQHEHEHx@tHEHxHHEP@HEHEHxPHu0H}tHEHxHuHEHx HEx H}@HEx`HEHx HcHHH-H9v~ɡHEHx HHEHxHEHx HcHHH-H9v+ɡHEHx HHEHxHEHx ?HcHHH-H9vȡHEHx HHEHx 7H=ӹrHEHEHxHu HEHx Hu8HEHx0tHEHx8HuHEP0HE@ HE@`H]LeLmLuH]UHHd$H]H}HHx cHU;B,HE@HEHx 1 HEH]HEHx 1HExX|+HEHcXXHHH-H9vǡHEXXHEx\|+HEHcX\HHH-H9v{ǡHEX\HEHx HU;B,RH]H]UHHd$H}HHx w EEH]UHHd$H}HGf@fEEH]UHHd$H}HHx  H]UHHd$H}fuHEH@fxuHEH@fUfPH]UHHd$H]H}HcG(HXHH-H9v_ơHEX(H]H]UHHd$H]H}HEHEHx Z HcHHH-H9vš]|fHEHx u HEHEHx uH]HEHx ;CX} HE@XH]HEHx ;C\} HE@\HEH]H]UHHd$H]H}HEHEHx ~?HEHx HcHHH-H9v*šHEHx HEHEH]H]UHHd$H}u}EHE@,;EtHEUP,H}H]UHHd$H]H}HHx EHEx~4HEHx)t#HcEHXHH-H9veġ]EH]H]UHHd$H]H}Hx(~+HEHcX(HHH-H9vġHEX(H]H]UHHd$H}Hx(EEH]UHHd$H}HUBXH]UHHd$H}HUB\H]UHHd$H}H@`H]UHHd$H}HU;BXEEH]UHHd$H}HxXEEH]UHHd$H}^HU;B\EEH]UHHd$H}Hx\EEH]UHHd$H}HuHUHEHxPHuHU6H]UHHd$H}HuHUHEHxPHuHU覹H]UHHd$H}Hu0H]UHHd$H]LeLmLuH}HuLeMu¡H5rrI$HH]ILeMuH5JrI$HƁH]HI9u@LmH]LeMuH5rM4$L葁HLAtEEEH]LeLmLuH]UHHd$H}HuH1H]UHHd$H}0H]UHHd$H]LeH}u~HEp}5gHUBlHELc`HEHcXHH?HHHHH-H9v޿ fHcIHH-H9vHEXHEHc@HEH55rHEHxHM_H]LeH]UHHd$H]LeLmLuH}ELeMl$HcEHH9vHc]HI|$]MdLmMuHcEHH9vٿHc]HI}]M,Mu蛿H5rI]HxLt%HcEHXHH-H9v{]EHE@;E0EEH]LeLmLuH]UHHd$H]LeLmLuH}HuHEHcXHHH-H9v])fDHc]HHH-H9vо]}LeMl$HcEHH9v袾Hc]HI|$a\MdLmMuHcEHH9vlHc]HI},\M,Mu.H5rI]H ~L:HcEHXHH-H9v ]HUuH} H]LeLmLuH]UHHd$H]LeLmLuH}HEHEHcXHHH-H9v藽]%fHc]HHH-H9vp]}LeMl$HcUHH9vBHc]HI|$[MdLmMuHcUHH9v Hc]HI}ZM,MuμH5/rI]H|L:}|;LeMl$HcUHH9v裼Hc]HI|$bZIDHEHEH]LeLmLuH]UHHd$H]LeLmLuH}HEHEHcXHHH-H9v']%fHc]HHH-H9v]}LeMl$HcUHH9vһHc]HI|$YMdLmMuHcUHH9v蜻Hc]HI}\YM,Mu^H5rI]H;{L:}|GLeMl$HcUHH9v3Hc]HI|$XIDHEuH} HEH]LeLmLuH]UHHd$H}HuH@HHUHE@BHUHE@BHVrHEHpHEHxYHEH52rHEHxHMYHE@HE@HUHEf@fBH]UHHd$H]LeLmLuH}HuHxu EHEfxHEHUf@f;BH}1LHIIHu詹H5 rMuLyLAtRHEHcXHHH-H9v脹H}HH}1HHtEEEH]LeLmLuH]UHHd$H]LeLmH}HuH HHpsHExNHEHcPHEHc@HHH-H9vƸH}{HEx~pLeMl$H]HcSHH9v茸Hc[HI|$KVMdHEHcXHHHELhHx VI}HLa[HEHX1HxUH;rHEHcXHHEL`1HxUHELh1HxULLH[HEHcPHEHc@HHHH-H9v趷HEXHE@H]LeLmH]UHHd$H]LeLmH}uLeMl$HcUHH9vSHc]HI|$UIDHEH]LeLmH]UHH$HLL H}HuHu.LmLeMu迶H5rLHvLShHEH}HUHu愡HcHcHUuEHEHE@HE@HEH}tH}tH}HEH蹇HEHtlHpH0hHbHcH(u#H}tHuH}HEHP`dZH(Ht9HEHLL H]UHHd$H]LeLmH}HuH~.LmLeMu\H5rI$H9uLH}@tHEH5rHEHxHMTH}1ToH}tH}tH}HEHPpH]LeLmH]UHHd$H]LeLmH}HuHE@0HHUHE@BHUHE@BHEHc@HEH5=rHEHxHMSHExtPHEHcXHHEL`1Hx&RHELh1HxRLLHUWHUHEf@fBH]LeLmH]UHHd$H]LeLmLuH}HuHExgLmLeMu诳H5rI$HsL1LeMl$HEHcXHHHH9vHI|$BQMtH]LcHELchILHH9vBLH{QO$MuH5irI$HrLLeMl$HEHcXHHHH9vزHI|$PI|1mLeMl$HEHcXHHHH9v蕲HI|$XPHEIDHEHU@;B| H}1LmMeH]HcSHH9v;Hc[HI}OHEIHEHc@HXHH-H9vHEXH]LeLmLuH]UHHd$H]LeLmH}@ulHEHcXHHH-H9v蜱HEXLeMl$H]HcSHH9vpHc[HI|$/OI|kHEx}u>HExd~4HE@dHEHc@HEH5ŨrHEHxHMPHEf@H]LeLmH]UHHd$H]LeLmLuL}H}uHUHEHU@;B| H}1]HE@;EHEHc@HcUH)HILmI]HcEL`LHH9vPLI}NN4H]LcHcUHH9v LcmLH{MKHEHcxHEHc@HHEHxHEHc@HcuH)HEHc@H1sRHUEBH]H]UHHd$H}uHUEBH]UHH$HLL H}HuHu.LmLeMu诫H5 rLHkLShHEH}HUHuyHWHcHUzHELmLeMuEH5rI$H"kLHUBHE@HE@HEH}tH}tH}HEHp|HEHtlHpH0yHGWHcH(u#H}tHuH}HEHP`|}|H(Ht~~HEHLL H]UHHd$H]LeLmLuH}HuH~.LmLeMuH5yrI$HiLLm1LeMuةH5IrM4$LiLALm1LeMu襩H5rM4$LiLAH}1cH}tH}tH}HEHPpH]LeLmLuH]UHHd$H]LeLmLuL}H}uU}| HE@;E}}HEHc@HcUHHEHc@H9~]HEHc@HcUHLpLHH9vרLmLeMu襨H5rI$HhLDHE@;EHEHcXHcEH)HH-H9voHEHcEHcUHHHH9vDADmLuH]Hu H5|rL#LgLDDMA$HEHcPHcEL4LH-H9vݧLmLeMu諧H5rI$HgLDH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uU}|HcEHcUHHEHc@H9~}HcEHcUHHEHcXH)HHH9v]~jHcUHcEHHH-H9v馡HED}DuLmH]Hu試H5rL#LfLDDuA$HELcpHcEI)LHH9v{LmLeMuIH5rI$H&fLDHExHEHc@HHUHcRH9}jHEHcPHH?HHHELchI)LHH9v륡LuLeMu蹥H5*rI$HeLDH]LeLmLuL}H]UHHd$H]H}uUME;EHc]HcEH)HH-H9vWދ}KEHEHcpHcEHHEHpHEHcxHcEHHEHxHEHcPHcEH%HHcEHcUH<HcEH)HEHc@HHEHxHEHcpHcEH1JHc]HcEH)HH-H9v蟤ދ}JEHEHcpHcEHHEHpHEHcxHcEHHEHxHEHcPHcEHmGHEHcxHcEHHEHxHEHcpHcEH1NJH]H]UHHd$H}H]UHHd$H}H]UHHd$H}H]UHHd$H]LeLmH}HuHEHEHXHtH[HHH-H9v^]fDHc]HHH-H9v0]LeMl$HcEHH9v Hc]HI|$@IDH;Eu;LeMl$HcEHH9vϢHc]HI|$@IDHE}~ H}THEH]LeLmH]UHHd$H]H}HHXHtH[HHH-H9vC]H]H]UHHd$H]LeLmH}uLeMl$HcUHH9vHc]HI|$?IDHEH]LeLmH]UHHd$H]LeLmLuL}H}HuHUHEHXHtH[HHHHH9ve]#Hc]HHH-H9v@]}|:H]LcHcEHH9vLcmLH{>KH;Eu}H}HEHXHtH[HHH-H9v軠]HcEHHEH5ݖrHEHxHMغ@HcEHHEH5|rHEHxHMغ?LeI\$HcEHH9vELcmLI|$>HEJLeI\$HcEHH9v LcmLI|$=HEJLeI\$HcEHH9v̟LcmLI|$=HEJH}HEHXHtH[HHHH-H9vwHEЋE;EEE@ELeM|$HcEHXHHH9v,HI|$HcH(u#H}tHuH}HEHP`gcd]cH(HtHELhH]HEL`MufH5rM4$LCOHLAH]LeLmLuH]UHHd$H]LeLmLuL}H}؉uHUHMLEHEHxt]HEHPHUHEHEL}LuDmHEHXHuÎH5DrL#LNDLLLEH}A$H]LeLmLuL}H]UHHd$H]LeLmH}HHxt6HELhHEL`Mu3H5rI$HNLH]LeLmH]UHHd$H]LeLmLuH}HuHEHxtCHEL`H]HELhMu趍H57rMuLMHLAEEEH]LeLmLuH]UHHd$H]LeLmH}HHxt;HELhHEL`Mu3H5rI$HMLEEEH]LeLmH]UHHd$H]LeLmH}HHxt;HELhHEL`Mu賌H54rI$HLLEEEH]LeLmH]UHHd$H]LeLmLuH}uHELh]HEL`Mu3H5rM4$LLLAHEH]LeLmLuH]UHHd$H]LeLmLuH}uHELh]HEL`Mu賋H54rM4$LKLAEH]LeLmLuH]UHHd$H]LeLmLuL}H}uHUHELxLu]HEL`Mu'H5rM,$LKLLAEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUHE@(;EHELhHEHXHu臊H5rL#LeJLA$hHUH;B0uEHELhHEHXHuFH5τrL#L$JLA$pHUH;B8}|@HELhHEHXHuH5rL#LILA$;EHE@(HE@ HELhHEHXHu襉H5.rL#LILA$pHUHB8HELhHEHXHufH5rL#LDILA$hHUHB0HELxLuDmHEHXHuH5rL#LHDLLA$@HEHE@$;E}4HcEHEH5HrHEHxHMкb(HUEB$H]HEp }.LcILHH9v蠈D.;C$}KHEp }.Ǿ.HUB$HEHc@$HEH5rHEHxHMк'HEUP }~jHEHX1Hx%H]HELxDuEHELmHEHXHuӇH5\rL#LGLUDLLEA$HEL`HEHXHu菇H5rL+LmGLApHUHB8HEL`HEHXHuQH5ځrL+L/GLAhHUHB0HEUP(H]LeLmLuL}H]UHHd$H}uH}0҉H]UHHd$H]H}Hx ~HEHX1Hx$H]HEHEH]H]UHHd$H]LeLmH}HLhHEL`MuNH5׀rI$H+FLhHUH;B0uLHELhHEL`MuH5rI$HELpHUH;B8u HE@(EEEH]LeLmH]UHH$pHpLxLmH}uHUH$HUHuSH2HcHUHϖrHEHxHu$LeH]HtH[HHH-H9vAA\$ HUHE@ B$HUEB(HELhHEL`MuꄡH5srI$HDLpHUHB8HELhHEL`Mu謄H55rI$HDLhHUHB0VH5rH}"HEHtWHpLxLmH]UHH$HLLH}HuHUH}u.LmLeMuH5rLHCLShHEH}*HUHu!RHI0HcHUHEHUHEHBHE@(HDžxH5rHEHxHx#HE@ HE@$HEH}tH}tH}HEHTHEHtlH`H ]QH/HcHxu#H}tHuH}HEHP`YTUOTHxHt.W WHEHLLH]UHHd$H]LeLmH}HuH~.LmLeMuLH5ՀrI$H)BLHEH5rHEHxHM!H}1PH9ujHEH@pHHH H9uLHEH@pHH0HH9u.HEHXpH3H=STrfHHUHHHUHEH@pHH]H]UHHd$H]LeLmH}HLhpHEHXpHuPH5KrL#LLA$HEH]LeLmH]UHHd$H]LeLmLuH}@uHEHxpt=HELhp]HEL`pMuwPH5KrM4$LT@LAPH]LeLmLuH]UHHd$H]LeLmH}HLHEHHuPH5JrL#LLA$hHEH]LeLmH]UHHd$H]LeLmH}HLhpHEHXpHuOH5'JrL#L|LA$pHEH]LeLmH]UHHd$H]LeLmLuH}HuHELH]HELMuOH5IrM4$LHLA(HEH]LeLmLuH]UHHd$H]LeLmLuL}H}HuHUHELLuH]HELMuNH5IrM,$LlHLLA0H]LeLmLuL}H]UHHd$H]LeLmH}HLhpHEHXpHuNH5HrL#L LA$xEH]LeLmH]UHHd$H]LeLmLuL}H}HuUHELxpLu]HEL`pMuMH5 HrM,$Lt LLAH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuUHELxpLu]HEL`pMuMH5GrM,$L LLAXH]LeLmLuL}H]UHHd$H]LeLmH}HLhpHEHXpHuLH5GrL#Ll LA$`EH]LeLmH]UHHd$H]LeLmH}HLHEHHuLH5FrL#L LA$HEH]LeLmH]UHHd$H]LeLmH}HLHEHHuKH51FrL#L LA$HEH]LeLmH]UHHd$H]LeLmH}HLHEHHu8KH5ErL#L LA$HEH]LeLmH]UHHd$H]LeLmH}HLhpHEHXpHuJH5WErL#L LA$EH]LeLmH]UHHd$H]LeLmH}HLhpHEHXpHu^JH5DrL#L< LA$EH]LeLmH]UHHd$H]LeLmLuH}uHELhp]HEL`pMuIH5lDrM4$L LA0H]LeLmLuH]UHHd$H]LeLmLuL}H}HuUHELxpLu]HEL`pMuWIH5CrM,$L4 LLAH]LeLmLuL}H]UHHd$H]LeLmLuH}uHELhp]HEL`pMuHH5\CrM4$LLAHEH]LeLmLuH]UHHd$H]LeLmLuL}H}uHUHELxpLu]HEL`pMuGHH5BrM,$L$LLA H]LeLmLuL}H]UHHd$H]LeLmLuL}H}uHUHELxpLu]HEL`pMuGH5@BrM,$LLLA(H]LeLmLuL}H]UHHd$H}@uHU}tHEHHuHEHHu[H]UHHd$H]LeLmLuL}H}HuUMLEHEHHUHEHED}DuLmHEHHuFH5BArL#LLDDLEH}A$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuUHMLEHEHPpHUHEHEL}DuLmHEHXpHuFH5@rL#LLDMHMH}A$H]LeLmLuL}H]UHHd$H]LeLmH}HLhpHEHXpHuEH5@rL#LlLA$HEH]LeLmH]UHHd$H}uHUHMHEHxhHUHMuH]UHHd$H}uHUHMHEHxhHUHMuH]UHHd$H}HuHUHEHBhH]UHH$PHPLXL`LhLpH}uUHMH苂HUHuHHcHUuWHEHPxHxL}DuDmHEHXxHu DH5>rL#LDDLHxA$jH}HEHtHPLXL`LhLpH]UHHd$H]LeLmLuL}H}Hu؉UMDEHEHPxHUHEHED}DuDmHEHXxHu/CH5=rL#L DDEHuH}A$H]LeLmLuL}H]UHH$0H0L8L@LHLPH}HuЉUMDELMLÀHUHxHHcHp{HUHBxHhHEH`HEHXD}DuDmHEHXxHu!BH5H5Q9rM,$LDLAH]LeLmLuL}H]UHHd$H]LeLmLuH}HuHELhxH]HEL`xMuA>H58rM4$LHLAH]LeLmLuH]UHHd$H]LeLmLuH}HuHELhxH]HEL`xMu=H5J8rM4$LHLAH]LeLmLuH]UHHd$H]LeLmLuL}H}؉uHUMDEHEHHUЋEHED}LuDmHEHHu=H57rL#LDLDDEH}A$H]LeLmLuL}H]UHH$H L(L0L8L@H}uHUMDEDMH}zHUHh HHcH`HEHD$E$HEHHXEHPEHHD}LuDmHEHHu;H56rL#LDLDDHDPHXA$ P H}yH`HtH L(L0L8L@H]UHHd$H]LeLmLuL}H}uHUHELLu]HELMu!;H55rM,$LLLA(H]LeLmLuL}H]UHHd$H]LeLmH}HLHEHHu:H515rL#LLA$0H]LeLmH]UHHd$H}uHUHMHEHMuH}HH]UHHd$H}uHUHMHEHMuH}HH]UHHd$H}uHUHMHEHMuH}HqH]UHHd$H}uHUHMHEHMuH}HqH]UHHd$H}uHUHMHEHMuH}H1H]UHHd$H}uHUHMHEHMuH}HH]UHHd$H}HuHUHEHMH}HrH]UHHd$H}HuHUHEHMH}HrH]UHHd$H}HuHEHxhHu>H]UHHd$H]LeLmLuL}H}HuUMDEHEHHUȋEHED}DuLmHEHHu7H5c2rL#LLDDDEH}A$8EH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuUMHEHHUD}DuLmHEHHu57H51rL#LLDDH}A$@EH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuUMHEHHUD}DuLmHEHHu6H51rL#LsLDDH}A$HEH]LeLmLuL}H]UHHd$H]LeLmLuH}uHEL]HELMu 6H50rM4$LLA`EH]LeLmLuH]UHHd$H]LeLmLuH}uHEL]HELMu5H50rM4$LjLAhEH]LeLmLuH]UHHd$H]LeLmLuL}H}uUHELxpDu]HEL`pMu5H5/rM,$LDLApEH]LeLmLuL}H]UHHd$H]LeLmLuH}uHELhp]HEL`pMu4H5 /rM4$L`LAxEH]LeLmLuH]UHHd$H]LeLmLuH}HuHELH]HELMu3H5.rM4$LHLAHEH]LeLmLuH]UHHd$H]LeLmLuH}HuHELH]HELMu{3H5.rM4$LXHLAHEH]LeLmLuH]UHHd$H]LeLmLuL}H}uUHELDu]HELMu2H5{-rM,$LDLAH]LeLmLuL}H]UHHd$H]LeLmH}HLHEHHux2H5-rL#LVLA$EH]LeLmH]UHHd$H]LeLmH}HLHEHHu2H5,rL#LLA$H]LeLmH]UHHd$H]LeLmH}HLHEHHu1H5!,rL#LvLA$H]LeLmH]UHHd$H}uHEHxuvH]UHHd$H]LeLmLuH}HuHEHEHxZwHcHHH-H9v0|fEEHEHxuuIMMu0H53rMuLLuLH;EuHEHxuLuHE;]HEH]LeLmLuH]UHHd$H]LeLmLuL}H}HHxv$H}1HULzIMLMu/H52rL#LLLA$HEL`HEHXHu/H56rL+LLAHEH}10IMLMu}/H5^2rL#L[LA$H;EH}1IMLMu8/H52rL#LLA$HUHPH}1IMLMu.H51rL#LLA$HEHEHx'uHcHHHH9v.HEEYEfDEEH}IHc]HHHH9vp.H}IMLMu2.H51rL#LLLA$uH}IMLMu-H50rL#LLA$H;EuH}`IMLMu-H50rL#LLA$HUHPuH}IMLMui-H5J0rL#LGLA$HEE;EH} HcHHH-H9v4-H}HHEHx HEPH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHEHxEDEHEUH|( HcHHHH9v{,HEЋEЅEEHUEH|(uXHEHUHEHEL}HELpDmHEHXHu+H52rL#LDLHULA$E;E}-HEH@H;EHEHUHPHEHxEEHEUH|(HcHHHH9vs+HEȋEȅEEHEUH|(uPHEHUL}HEHEHELhDuHEHXHu*H51rL#LDLLHMA$E;E}-H}\H]LeLmLuL}H]UHHd$H]LeLmLuL}H}uHUHMHUEH|(HuHU!HEHxtQHEHPHUL}LuDmHEHXHu*H51rL#LDLLH}A$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}uHUHMHUEH|(HuHU HEHxtQHEHPHUL}LuDmHEHXHuV)H5O0rL#L4DLLH}A$H]LeLmLuL}H]UHHd$H]LeLmLuH}HuEEHEUH|(HuO$}rHEHxt>HELhH]HEL`Mu(H5/rM4$L}HLAH]LeLmLuH]UHH$HLLH}HuHUHMLEH}u.LmLeMu(H5*rLHLShHEH}HHUHp6H^ԟHcHhHEEDEH=XlZHM؋UHD(}rHUHEHBHEHB H=3I,nHUHBHuH}wHEH}tH}tH}HEHHhHtlHPHWHӟHcHu#H}tHuH}HEHP`SIHHt(HEHLLH]UHHd$H]LeLmLuH}HuH~.LmLeMuH&H59(rI$H%LH}1QH}hHcHHH-H9v&]Z@HEHxujHHeHEHxuqH} HcHHH-H9v%]}}HEHxEEHUELl(HEULd(MuU%H5jZM4$L2HLAV`}rH}1wߠH}tH}tH}HEHPpH]LeLmLuH]UHHd$H]LeLmLuH}HuULmH]LeMu$H5'rM4$LHLA}tHEHxHU1qHEHxHu:oH}H]LeLmLuH]UHHd$H]LeLmLuH}HuULmH]LeMu$H5&rM4$LHLAHEHxHUupH}yH]LeLmLuH]UHHd$H]LeLmLuH}HuHULmH]LeMuu#H5V&rM4$LRHLAHEHxHuDpE|5HcEHXHH-H9v=#HEHxHU*pHEHxHumH}H]LeLmLuH]UHHd$H]H}HuUHEHxHuoE|:}tHEHxuZgHHݠHEHxu?nH}H]H]UHHd$H]H}HuH}HcHHH-H9v3"])fDHc]HHH-H9v"]}|HEHxufH;EuEH]H]UHHd$H}HHxgH]UHHd$H}1H]UHHd$H}@uz1H]UHHd$H}HuUW1H]UHHd$H}>1H]UHHd$H}1H]UHHd$H}0H]UHHd$H}0H]UHHd$H}0H]UHHd$H}0H]UHHd$H}~0H]UHHd$H}^0H]UHHd$H}@u:0H]UHHd$H}0H]UHHd$H}@u/H]UHHd$H}/H]UHHd$H}uU/H]UHHd$H}@uHU/H]UHHd$H}HuUMLEp/H]UHHd$H}uUH/H]UHHd$H}uU(/H]UHHd$H}uHU/H]UHHd$H}؉uHUMDE.H]UHH$pH}ЉuHUMDEDMH}\HUHxHʟHcHpuu.H}7\HpHtVH]UHHd$H}uHU7.H]UHHd$H}.H]UHHd$H}HuUMDE-H]UHHd$H}HuUM-H]UHHd$H}HuUM-H]UHHd$H}uUHMHq[HUHuHɟHcHUu7-H}ZHEHtH]UHHd$H}Hu؉UMDE,H]UHH$pH}HuЉUMDELMLZHUHxH ɟHcHpu,H}HZHpHtgH]UHHd$H}uUH,H]UHHd$H}uHUH4ZHUHuRHzȟHcHUu+eH}YHEHtH]UHHd$H}uUHMHYHUHuHȟHcHUu+H}IYHEHtkH]UHHd$H}uUH+H]UHHd$H}Hu*+H]UHHd$H}Hu +H]UHHd$H}uHUHM*H]UHHd$H}uHUHM*H]UHHd$H}Hu*H]UHH$HLLH}HuHUH}u.LmLeMuH53?rLHٟLShHEH}HUHuAHiƟHcHUuFHEH}1軆HUHEHB(HEH}tH}tH}HEHHEHtlHhH(HşHcH u#H}tHuH}HEHP`IH HtnHEHLLH]UHH$@HHLPLXL`LhH}؉uHUHMLEHDžpHUHuHşHcHxuH}KHUEHEHELx(HED0HpHEL`(Mu0H5)9rM,$L ؟HDLAHpHtH[HH-H9vHEHE@0bHpUHxHtHHLPLXL`LhH]UHHd$H]LeLmLuL}H}HuEHExGHEHxHE@0E&HELxHEDp HEHX(HEL`(MuH57rM,$L֟HDLA@HUHHEH@HE@0HEx0tBHEDh HEHXHEL`MuH5(nM4$Ll֟HDAHE@0HELhHEL`MuMH5nI$H*֟LhE}ufHEHHE@HELhHEL`MuH5nI$H՟LHUHBHEHxEHELxLuHEHXHEL`MuH52nM,$Lv՟HLLAHELhHEL`Mu\H5nI$H9՟LHUHBHELhHEL`MuH5nI$HԟLEH]LeLmLuL}H]UHHd$H]LeLmLuH}HHxtGHEDh HEHXHEL`MuH50nM4$LtԟHDA8EEEH]LeLmLuH]UHHd$H]LeLmH}HLh(HEHX(HuH55rL#LӟLA$EH]LeLmH]UHHd$H}uuEEHEH]UHHd$H}uuH]UHHd$H}uHUEEHEUHEUPEH]UHH$@H}HuHDž@HDžHHDžXHUHuiH葿HcHUH{?H`HEpTHXHXHhH{?HpHEp THHVHHHxH{?HEHEpTH@$H@HEH`H}1ɺbTH@!PHHPHX PHEHt+H]UHH$HLLH}HuUMDEH}u.LmLeMuH58rLHџLShHEH}HUHxߠHHcHpuMHEHU؋EBHU؋EB HU؋EBHEH}tH}tH}HEHHpHtlHXHLߠHtHcHu#H}tHuH}HEHP`H>HHtHEHLLH]UHH$@H@LHLPLXL`H}HuHEHUHuޠH觼HcHUHuH=0r EH]H3H=0r HHxHUBHpHEP HhHEDpLmLxHxHuH50rL;LnϟLLDhDpAH}HMH}:MHEHt\EH@LHLPLXL`H]UHH$@H}HuHDžHHDžXHUHu4ݠH\HcHUHw?H`HEpTHXVHXHhHqw?HpHEp THH!HHHxH|w?HEHEH@HEH`H}1ɺEPߠHHLHXKHEHtH]UHH$HLLH}HuUMLELKH}u.LmLeMu H55rLHz͟LShHEH}MHUHx۠H蹟HcHpHEHXH۠H讹HcHu%HU؋EBHU؋EB HEHxHuKKvޠH}JHHtߠHEH}tH}tH}HEH0ޠHpHtlHXHڠHHcHPu#H}tHuH}HEHP`ݠcߠݠHPHtHEHLLH]UHHd$H]LeLmLuL}H}HuHH=,rH虾EtoH]H3H=,r课HHEHUHBHEHEDx HEDpLmH]Huz H5s,rL#LX˟LDDHMA$EH]LeLmLuL}H]UHHd$H}HuHEHUHue٠H荷HcHUu)HEpuH}HUH}1H5s?YJTܠH}HHEHtݠH]UHH$HLLH}HuUH}u.LmLeMu[ H53rLH9ʟLShHEH}HUHuؠH誶HcHUu9HEHUEBHEH}tH}tH}HEHa۠HEHtlHhH(ؠH8HcH u#H}tHuH}HEHP` ۠ܠ۠H HtݠݠHEHLLH]UHHd$H]LeLmLuL}H}HuHH=*rHɻEtZH]H3H=)r߻HHEHEDxM1LmH]HuH5)rL#LȟLLDA$EH]LeLmLuL}H]UHH$PH}HuHDžXHDžhHUHu֠H輴HcHUu{Hp?HpHEpdHhHhHxHp?HEHEp dHXHXHEHpH}1ɺI1٠HXEHhyEHEHtڠH]UHH$HLLH}HuUMH}u.LmLeMu(H51rLHǟLShHEH}HUHuOՠHwHcHxuCHEHUEBHUEB HEH}tH}tH}HEH!ؠHxHtlH`H ԠHHcHu#H}tHuH}HEHP`נT٠נHHtڠyڠHEHLLH]UHHd$H]LeLmLuL}H}HuHH=&rH艸Et_H]H3H=&r蟸HHEHEDx HEDpLmH]HuvH5o&rL#LTşLDDA$EH]LeLmLuL}H]UHH$PH}HuHDžXHDžhHUHuTӠH|HcHUu{H*n?HpHEpdHhzHhHxHn?HEHEp dHXHHXHEHpH}1ɺFՠHXEBHh9BHEHt[נH]UHH$HLLH}HuUMH}u.LmLeMuH5q/rLHßLShHEH}HUHuҠH7HcHxuCHEHUEBHUEB HEH}tH}tH}HEHԠHxHtlH`H ѠH赯HcHu#H}tHuH}HEHP`Ԡ֠ԠHHt^נ9נHEHLLH]UHHd$H]H}HuHH=#rHYEt,H]H3H=t#roHHEP HEpH6rEH]H]UHH$PH}HuHDžXHDžhHUHudРH茮HcHUu{H:k?HpHEpdHhHhHxH%k?HEHEp dHXXHXHEHpH}1ɺCӠHXU?HhI?HEHtkԠH]UHH$HLLH}HuUMH}u.LmLeMuH5-rLHLShHEH}HUHuϠHGHcHxuCHEHUEBHUEB HEH}tH}tH}HEHѠHxHtlH`H ΠHŬHcHu#H}tHuH}HEHP`Ѡ$ӠѠHHtnԠIԠHEHLLH]UHHd$H]LeLmLuL}H}HuHH= rHYEthH]H3H=t roHHEHEP HUHEDxM1LmH]Hu@H59 rL#LLLDUA$EH]LeLmLuL}H]UHH$PH}HuHDžXHDžhHUHu͠HHcEHUHtHRH9~(H]HtH[HH-H9vJ]HcUHEHtH@H9~,%fHc]HHH-H9v]܃}LeHcUHH9v߽Hc]HH}_ AD=r-@sEoLeHcUHH9v菽Hc]HH} IDHEЀ8#HEЀ8uHE@-0HEЀ8uHE@- HEЀ8uHE@-r%tHEЀ8u.HE@-r rrHEЀ8u HEЀxuHE@-]HEЀ8u HEЀxtJHEЀ8uHEЀxuHE@-pr%HEЀ8u HEЀxuHE@-s0EH]LeH]UHH$@HHLPLXL`H}uUHEHUHxH9hHcHpLmLeMu腻H5~qI$Hb{LMLmLeMuOH5HqI$H,{LHc]HHH-H9v+]Hc]HHH-H9v];EuH}t[LmLeMu赺H5qI$HzLHH ̎UH=0q蛼HƲHluH}uYLmLeMuGH5@qI$H$zLHH !̎UH=q-HƲHuH}4ƒuH}HcEHcUH)HHhH5fqHhH}غIYEEu1_LmLeMu耹H5yqM4$L]yLALcILH-H9vdD}_AA9]؃EfE}uuH}JtEEuH}/LuHcUHH9vLcmLH}VCuH}ƒuH}]HcEHXHH-H9v蝸]D;eP}tVLmLeMuXH5QqI$H5xLHHM؋UH=qAHƲH蟉H5qH}HpHtHHLPLXL`H]UHHd$H]LeLmLuL}H}IH]Hu获H5qL+LlwLAHcHHHH9vr|KEEEH}ltuH}YƒuH};]LmH]HuH5qL#LvLA$uSLmH]Hu辶H5qL#LvLA$u HEHHEHL}LuAHEHEH]HuOH5HqL#L-vuMELLA$H]LeLmLuL}H]UHHd$H}uHUHMHUEH€HuHUlH]UHHd$H}uHUHMHUEH€HuHU̬H]UHHd$H}HuHUE@EHEUHЀHEUHЀHU}rH]UHHd$H}HuEEHEUHЀHul}rH]UHHd$H]LeLmLuH}uLmLeMu讴H5qI$HtL;E~HD$Hc]HHHH9v5$EH8EH@L}LuE1H0H]Hu٨H5qL#Lh0ELL@D8A$ LmH]Hu葨H5qL#LohLA$yHHSHPGHX;H}2H`HtQ{HLLL L(H]UHH$HLLLLH}HuUMDELMLHEHEHDžHHUHXuH THcHPLmH]HuWH5PqL#L5gLA$}EHc]HHHH9v,ALuLmH]HuH5qL#LfLLDA$HcEHHUHtHRH9~lHcUHHEHtH@H)¾ HHmHHHUH}1HEHtH@HXHHH9vm]HcUHHcEHHEHtH@H9~4HcEHH]HtH[H)HHH9v]HcMHcUH}HuHUHtHRHcEH)HEHtH@H4H}1}~AH}!IľLALcmIH]H}'HLLHH}teH}IHcUHH9v^Hc]HLMdH]HtH[LmоH}LHL=HHcEHHUHtHRH)HcEH)HH}LHHcUHEHtH@L$LHH9v轤LHBJ\#HcEHLuMtMvI)HcEI)LeHcEHcUL,LHH9vgLH}K|,LHkGHc]HHHH9v*AL}LmH]HuH5qL#LcLLDA$ HEH8t]LmH]Hu貣H5qL#LcLA$HHELMUH=q脕H0HH}LmH]HuJH5CqL#L(cLA$IH]HtH[HHH9v$A؋MUH=7qH0LmUuH}HD$Hc]HHH-H9vƢ$EH(EH HEHLuE1AH]HuiH5bqL;LGbDELH D(A HEHD$H]HtH[HH-H9v%$D}DmLuHEH01H8H@H]HuȡH5qL#La@D8H0LDEA$ LmH]HuH5xqL#L]aLA$rHHAߟH}8ߟH}/ߟH}&ߟHPHtEtHLLLLH]UHH$H L(L0L8L@H}؉uUHEHDž`HUHpnHMHcHh{LmH]HucH5\qL#LA`LA$LmH]Hu4H5-qL#L`LA$u5LuM1H]HuH5qL#L_LLA$PHc]HHHH9vݟALuLmH]Hu褟H5qL#L_LLDA$EEHcEHXHH-H9v{]̃}u#Hc]HHH-H9vR]HcUHHEHtH@H9~HcMHHuкH`L`Hc]HHH-H9v힠ALmH]Hu踞H5qL#L^LDLA$ #HcEHXHH-H9v蓞]HMHtHIHcUHuH`L`D}LmH]Hu2H5+qL#L^LDLA$LmH]HuH5qL#L]LA$HËUH=6q)H0HLŰuH}HD$$D}DuHEHHLmظHXHPH]Hu`H5YqL#L>]PDXLHHDEA$ LmH]HuH5qL#L\LA$nH`ڟH}ڟHhHtoH L(L0L8L@H]UHH$HLL L(L0H}؉uHUHڟHEHDž`HDžhHUHxjHHHcHpLmH]HuH5qL#L[LA$Hc]HHHH9vᛠALuLmH]Hu訛H5qL#L[LLDA$H}vHEHtH@HXHHH9vpH8L}DuLmH]Hu-H5&qL#L [LDL8A$LmH]HuH5qL#LZLA$HXHc]HHH-H9vΚALuLhH]Hu蒚H5qL#LpZLLDA$HhHtH@HXHH-H9vcڋMH=q轒H0HXHUHuH}1ٟHhןDmLuL`H]HuH5ٺqL#LYLLDA$H`Hu1Hh4ٟLhHc]HHHH9v蜙ALmH]HugH5`qL#LEYLDLA$ DuLmH]Hu.H5'qL#L YLDA$UuH}HD$$HEHtH@HXHHH9v嘠HHD}LuLmظHPH@H]Hu芘H5qL#LhX@DPLLDDHA$ LmH]HuAH5:qL#LXLA$iH`֟Hh՟H}՟H}՟HpHtkHLL L(L0H]UHH$H(L0L8L@LHH}ЉuUHMH՟HUHxeHCHcHp!LmH]Hu*H5#qL#LWLA$Hc]HHHH9v ADuLmH]HuӖH5̷qL#LVLDDA$LmH]Hu螖H5qL#L|VLA$HËMUH=q7H0HHD$$EHhEH`L}LuAHXH]HuH5qL#LUXELL`DhA$ H}tQHEHPDmLuAH]Hu誕H5qL#LUDLDHPA$HcUHcEHHHH-H9vxڋuH}JLmH]Hu8H51qL#LULA$fH}ҟHpHthH(L0L8L@LHH]UHH$HLLL L(H}؉uUHDž`HDžhHUHxbH@HcHpLmH]Hu@H59qL#LTLA$HcUHcEHHHHH9vHXX;EEEԐEHc]HHHH9vӓALuL`H]Hu藓H5qL#LuSLLDA$H`HtH[HHH9vkH8EH0LuAHhLeMuH5qM<$LRHDL0D8AHhПX;EHc]HHH-H9vΒADuLmH]Hu蕒H5qL#LsRLDDA$LmH]Hu`H5YqL#L>RLA$HËMUH=ξqH0HHD$$Hc]HHH-H9v AߋEHHHEHPLuظH@AH]Hu豑H5qL+LQDD@LHPHEA LmH]HuiH5bqL#LGQLA$bH`+ϟHhϟHpHt>dHLLL L(H]UHHd$H]LeLmLuH}HuLmH]Hu轐H5qL#LPLA$LmH]LeMu芐H5qM4$LgPHLALmH]HuXH5QqL#L6PLA$H]LeLmLuH]UHHd$H]LeLmLuL}H}؉uULeH]Hu珠H5qL+LOLAHËMUH=VqqH0H4Hc]HHHH9v裏ADuLmH]HujH5cqL#LHOLDDA$HD$$Hc]HHH-H9v8ADuHEHEHEHEAHEH]Hu䎠H5ݯqL#LNuEH}HUDEA$ H]LeLmLuL}H]UHHd$H}HHHH9uHEǀǀHEHHHUHH]UHHd$H]LeLmLuH}HuLmH]HuH5qL#LMLA$LmH]LeMuʍH5+xqM4$LMHLALmH]Hu蘍H5qL#LvMLA$H]LeLmLuH]UHHd$H]H}؉uHUMDEHE؋UPH}EHE؃HuHE؃Du HE؋U艐@HE؋@;EHEHc@HcEH)HH-H9vˌ]HE؋U艐@HEHcDHcEHHH-H9v萌HE؉DHEHcHHcEHHH-H9v[HE؉HE}p})Hc]HHH-H9v]HEHc@HEHcDHHcEH9HEHc@HEHcDHHcEH)HH-H9v赋]̉;E~EЉEHEHcDHcEH)HH-H9v{HE؉DHc]HcEH)HH-H9vN]HEHcHHcEHHH-H9v HE؉HEIHEHcDHcEHHH-H9v⊠HE؉DEE }uEEHEHc@HEHcDH HcEHcUHH9HEHc@HEHcDH HcEHcUHH)HH-H9vU]HEHcDHcEHHH-H9v'HE؉DHEHcHHcEHHH-H9vHE؉H}3HE؀(u9HEƀ(HUHEH8HU؋E艂,HU؋E0 HEH8H;EFHE؋,;E3HE؃0"HEHc,HEHc0HHcUH9}-HEHc,HEHc0HHcUHcMH)H9HEHc0HcUHHH-H9vۈHE؉0HE؃0HHEƀ(8nHE؀(ta}u[HEH8H;EuJHE؃0~=HE؋,;E.HEHc,HEHc0H HcEHcUHH9HE؀(H}csEt:ugHEHH3H=դq:HDEMUHuH? 2HEHH3H=q:HMUHuE1H HE؋UHЀH3H=bqm:HMUHuHH H]H]UHH$PH`H}ȉuHUMDEDMH}>şHUHpYUH3HcHhujHUȋEPYHEȀ(t H}HEȋUHЀH3H=q9HHEH$DMDEMЋUHuH XH}[ğHhHtzYH`H]UHHd$H]H}uHUErts*H>H=TCIOIHH5HMVHE耸(t H}7EttubHE胸H HE胸D~HHEHH3H=q8HHEDHHE苈DHE苐@HuH HEUHЀHu莁H]H]UHHd$H}H(t H}~H]UHHd$H]LeH}uUt3HUEHPHcL`LH-H9vㄠD#BHEUP~1HUEHPLc#ILH-H9v蟄D#H]LeH]UHH$HLL H}HuHu.LmLeMuH5qLHCLShHEH} HUHuFRHn0HcHUulHEH}1H}bH=vqqA@HEHxH5>+*HEHxH5>HEHxH5>HEHXHtH[HH-H9vtHEXH]H]UHHd$H]UHHd$H}uHE@$;EtHEHxuTHEUP$H]UHH$HLLLLH}HuHUH}u.LmLeMusH5qLH3LShHEH}{HUHuAH HcHUHEH}1HU1ɾH=oHGHUHB(HELh(HEL`(Mu sH5AHI$H2LHUHB8HELx(E11HEL`(MurH5HM,$L2DLAHEH}tH}tH}HEHDHEHtlHhH(@HHcH u#H}tHuH}HEHP`CUECH HtFzFHEHLLLLH]UHHd$H}HHPHE@ <uHEHUH@0H;B8|EEEH]UHHd$H]LeH}HP$HHE@ H9 HE@ HEHUHX8HB0H)HغH9vUq]HEP$HE@ H)‹EH9*HEX$HE@ H)HHغH9vq]HEHPHE@ L$HEHX(E=vpUHL8HEL`HE@ UHHHH9vpAHEUHP0HEHP0HE@ H]LeH]UHHd$H]H}HuH1葮HEHPHE@ HHE؀8uH}|HEH@HEHEHPHE@$HHEHEHEDHE, t,H]H袭HHUHEH)Hu1ɟHE8 u)HEx uHE@HEHE@ HE@HEHEH@H]H)HغH9vVoHEX 5HEHUH@0H;B8|RHEH@H]H)HغH9voHEX H]HԬHHUHEH)Hu1ȟHEHEHH;EHEHEH@H;EsHUHEH)HEHxHu H]HEH)HغH9vnHEX HEHPHE@ HEHUH)!HHUR$H9HEP$HE@$HHغH9v%nH}H]H]UHH$HLLLLH}HuHUH}u.LmLeMumH5qLHj-LShHEH}@HUHu;HHcHUHEH}1HUH=HEHtlHhH(:HHcH u#H}tHuH}HEHP`=`?=H Ht@@HEHLLLLH]UHHd$H]LeH}Hx v=HEHXLeAD$ =vkAT$ HEHx(H 4HE@ H]LeH]UHHd$H]LeLmH}HuHHtH[HغH9vek]fHE@ UHLeIcT$HH9v5kIcD$HHE@$H9}v]HEHPHE@ L,]LeH}~LHLHE@ UHHغH9vjHEX HEHPHE@ L,HEHcXHEL`HxLHL HEP HEHc@HHغH9vUjHEX }LmLeMujH5qI$H)LHEHcPEHHE@$H9HEHcPEHHغH9viH}alH]LeLmH]UHH$HLLH}HuHUHMLEH}u.LmLeMuBiH5qLH )LShHEH}HUHxf7HHcHpupHEH}1]HEHUHPXHE@THE@PHUHEHB`HEHBhHEH}tH}tH}HEH :HpHtlHXH6HHcHu#H}tHuH}HEHP`9>;9HHtfH57qL#L&LA$EH]LeLmH]UHHd$H]LeLmLuH}uHELhX]HEL`XMueH5qM4$L%LAHEH]LeLmLuH]UHHd$H]LeLmLuL}H}uHUHELxXLu]HEL`XMu7eH50qM,$L%LLA H]LeLmLuL}H]UHHd$H]LeLmLuL}H}uHUHELxXLu]HEL`XMudH5qM,$L$LLA(H]LeLmLuL}H]UHHd$H]LeLmLuH}uHELhX]HEL`XMu#dH5qM4$L$LA0H]LeLmLuH]UHHd$H}@u@tHEHxX= HEHxXNH]UHHd$H]LeLmLuH}HuHELhXH]HEL`XMuacH5ZqM4$L>#HLAPEH]LeLmLuH]UHHd$H]LeLmLuH}HuHELhXH]HEL`XMubH5ڃqM4$L"HLA`H]LeLmLuH]UHHd$H]LeLmH}HLhXHEHXXHunbH5gqL#LL"LA$H]LeLmH]UHHd$H]LeLmLuH}uHELhX]HEL`XMubH5qM4$L!LAH]LeLmLuH]UHHd$H]LeLmLuL}H}uHUHELxXLu]HEL`XMuwaH5pqM,$LT!LLAH]LeLmLuL}H]UHHd$H]LeLmLuH}HuHELhXH]HEL`XMu`H5qM4$L HLAH]LeLmLuH]UHH$HLLLH}HuHDžHUHu.H HcHU^HUH=Dq'HEHpH0{.H HcH(H}xHH@.Hh HcHLmLeMu_H5uqI$HLOfDH}H0LH]LeMug_H5(qM4$LDHLAPH}^t0H}HHt;20HUHE@BPH}H(Ht2y0H͜HEHt1HLLLH]UHH$HLLLLH}HuHDžHUHu,H HcHUHUH=%q@HEHhH(d,H HcH HExTuHEpPH}HEpTH}LmH]Hu]H5mqL#LLA$HcHHHH9v]H|pEDEEALuHLmMu+]H5qMeLHLDA$HH}w;Ew.H}nH Ht/HEHx`tHEHxhHEP`>.H蒚HEHt/HLLLLH]UHHd$H]H}HHXHtH[HHH-H9vC\]} E "Hc]HHH-H9v\]HcEHEH5qHMHEHxkH]H]UHHd$H}HEH5\qHMHEHx.HEH]UHH$PHPLXL`LhLpH}uHUH^HUHu|)HHcHx=HEHcHEH@HtH@HH9u H}xEHEHcHHH-H9vZ]fDHcUHcEHHH?HHHH-H9vZ]LmMeHcEHH9vlZHc]HI},HA;E|E܉E#HcEHXHH-H9v'Z]E;EXHE8~`LmMeHcUHH9vYHc]HI}HA;E#HcEHXHH-H9vY]HE;ELmMeH]HcHH9v}YHcHI}>HI|1螗HEHcHcUH)HILmI]HcEL`LHH9v"YLI}IN4#H]LcHcEHH9vXLcmLH{LHI<LLLmMeHcEHH9vXHc]HI}hHIDLmMeHcEHH9vkXHc]HI}+HEALmMeHcUHH9v0XHc]HI}HI|HuNHEHcHXHH-H9vWHEP)H}觕HxHt*HPLXL`LhLpH]UHHd$H]LeLmLuL}H}uLmMeHcUHH9vLWHc]HI} HI|1lHEHcHHH-H9v WHEHE;EHEHcHcUH)HILmI]HcEL`LHH9vVLI}|IN4#H]LcHcUHH9vVLcmLH{DLHI4LL~LmMeH]HcHH9v;VHcHI}HIDH]LeLmLuL}H]UHHd$H]LeLmH}uHE8 E+EHEHcHHH-H9vU]DHcEHcUHHH?HHHH-H9vgU]LmMeHcEHH9vDUHc]HI}HA;E|EE#HcEHXHH-H9vT]E;EXLmMeHcEHH9vTHc]HI}HA;EuEEEEH]LeLmH]UHH$HLLH}HuHUH}u.LmLeMu*TH5ӘqLHLShHEH}HUHuQ"HyHcHUuFHEH}1HUHEHB(HEH}tH}tH}HEH#%HEHtlHhH(!HHcH u#H}tHuH}HEHP`$Y&$H Ht'~'HEHLLH]UHHd$H}HEHx01?H]UHH$@HHLPLXL`LhH}؉uHUHMLEHDžpHUHu HHcHx-uH}+HE@8HEHxHE؋P HEHx(Hp7HpzHEDx HELp(HpHEL`(MuQH5kqM,$LHLDAHpHtH[HH-H9vQHELEHMHUuH}IHEHcHEHx(UHp[6HpHtH@HHH-H9vPQHE"Hp HxHt($HHLPLXL`LhH]UHH$PHXL`LhLpLxH}HuHEHUHuHHcHU!EHExHEHxHEP HEHx(Hu?5H}HE@8EHEDx HELp(H]HEL`(MuOH5qM,$LHLDAHuHEHx0(HEH@0HuHTHUHHEHX0HtH[HH-H9vOHEXHEH@HE@8HuH}ZE H}9HEHt["EHXL`LhLpLxH]UHH$PH}HuHDžXHDžhHUHu4H\HcHUH>HpHE@dHdHHcdH1HdHh螖01HhHhHxH>HEHE@ dHhHHcd)H1HhHX401HX贪HXHEHpH}1ɺ]HX豋Hh襋HEHt H]UHH$HLLH}HuUMH}u.LmLeMuXMH59qLH6 LShHEH}HUHuHHcHxuCHEHUEBHUEB HEH}tH}tH}HEHQHxHtlH`H H%HcHu#H}tHuH}HEHP`HHt HEHLLH]UHHd$H]LeLmLuL}H}HuHH=qHEH]H3H=`qHHEHEP HEpH}mXH]H3H=/qHHEHEHcXHHHH9vKAAHELmH]HuJKH5ӋqL#L( LuEDHUA$EH]LeLmLuL}H]UHH$PH}HuHDžXHDžhHUHu$HLHcHUH>HpHE@dHdHHcdD1HdHh莒01HhHhHxH>HEHE@ dHhHHcdD1HhHX$01HX褦HXHEHpH}1ɺ⋟MHX衇Hh蕇HEHtH]UHH$HLLH}HuUMH}u.LmLeMuHIH59qLH& LShHEH}HUHuoHHcHxuCHEHUEBHUEB HEH}tH}tH}HEHAHxHtlH`H HHcHu#H}tHuH}HEHP`tHHtHEHLLH]UHHd$H]LeLmLuL}H}HuHH=qqHEH]H3H=PqHHEHEP HEpH}MQH]H3H=qHHEHEHcXHHHH9v~GAAHELmH]Hu:GH5ÇqL#LLuEDHUA$EH]LeLmLuL}H]UHH$@H}HuHDž@HDžHHDžXHUHu H1HcHUXHӰ>H`HE@ THTHHcTh@1HTHXs01HXHXHhH>HpHE@THXHHcT?1HXHH01HH膢HHHxH>HEHE@THXHHcT?1HXH@蜍01H@H@HEH`H}1ɺZH@HH HXHEHt#H]UHH$HLLH}HuUMDEH}u.LmLeMuDH5qLHLShHEH}HUHxHHcHpuMHEHU؋EBHU؋EB HU؋EBHEH}tH}tH}HEHHpHtlHXH<HdHcHu#H}tHuH}HEHP`8.HHt HEHLLH]UHH$HL L(L0L8H}HuHDžpHUHulHHcHxnHuH=wqE܄SH]H3H=YqHHhHED@HEH HEPHpHhAIHpuH]H3H=qrHHXHEHcX HHH-H9vdBH@AALhHhHuBH5qL#LLDE@HXA$HD$HEHcXHHHH9vA$HEHcX HHHH9vAALpHhLhpHhHXpHuhAH5;qL#LFLLDA$HpHtHRHEHc@HHHH9v0AH`H]H3H=qHHPHEDx 1HHALhHhHu@H5DqL3LLDDHDHPD`A Hpc~HxHtEHL L(L0L8H]UHH$@H}HuHDž@HDžPHUHuTH|HcHUH>HXHE@ LHLHHcL91HLHP辇01HP>HPH`H>HhHE@LHPHHcLF91HPH@Q01H@ћH@HpH>HxHEH@HEH>HEHXH}1ɺ瀟RH@|HP|HEHtH]UHH$HLLH}HuUMLEL|H}u.LmLeMu<>H5UqLHLShHEH}MHUHx` HHcHpHEHXH& HNHcHu%HU؋EBHU؋EB HEHxHu{H}m{HHtHEH}tH}tH}HEHHpHtlHXH| HHcHPu#H}tHuH}HEHP`xnHPHtM(HEHLLH]UHH$HL L(L0L8H}HuHDžpHUHu HHcHxeHuH=|qE܄JH]H3H=|qHHhHEHHHEP HEpHhX?H]H3H=Z|qHHXHEHcX HHH-H9v;H@AALhHhHuj;H5{qL#LHLDE@HXA$HEH@HD$HEHXHtH[HHH9v#;$HEHcX HHHH9v:ALpHhLhpHhHXpHu:H5:5qL#LLLDA$HpHtHRHEHc@HHHH9vy:H`H]H3H=zq=HHPHEDx 1HHALhHhHu:H5zqL3LLDDHDHPD`A X HpwHxHt EHL L(L0L8H]UHH$PH}HuHDž`HUHuHHcHUHy>HhHE@\H\HHc\31H\H`01H`處H`HpHl>HxHEH@HEHz>HEHhH}1ɺz H`nvHEHt H]UHH$HLLH}HuUHMHXvH}u.LmLeMu8H58qLHLShHEH}@HUHu6H^HcHxHEH`H H$HcHuHUEBHEHxHuuH}MuHHtl HEH}tH}tH}HEHHxHtlH`H \HHcHu#H}tHuH}HEHP`X NHHt-  HEHLLH]UHH$HL L(L0L8H}HuHDžpHUHuHHcHxHuH=vqE܄H]H3H=yvqL+LhLMu5H5VvqL#LLA$HH5oHEHHHEPHh9LhHhHum5H5uqL#LKLA$HHqH]H3H=uq2HHXHEHcXHHH-H9v$5A߸H@ALhHhHu4H5`uqL#LLDD@DHXA$HEH@HD$HEHXHtH[HHH9v4$HEHcXHHHH9vg4ALpHhLhpHhHXpHu4H5.qL#LLLDA$HpHtH@HXHHH9v3H`H]H3H=FtqHHPHEDx1HHALhHhHux3H5tqL3LVLDDHDHPD`A Hp qHxHt?EHL L(L0L8H]UHHd$H]LeH}HHtH[HH-H9v2]%fHc]HHH-H9v2]}~>LeHcUHH9v2Hc]HH} AD t ttEH]LeH]UHH$HLLH}HuHUH}u.LmLeMu1H5srqLHLShHEH}HUHuH9ޞHcHUHEHEHUHHUH5HEHHEHHUH=uqHUHHEǀHEH1xoHEƀHEƀHEƀHEƀHEǀH}1þHEH}tH}tH}HEH7HEHtlHhH(HݞHcH u#H}tHuH}HEHP`mH HtHEHLLH]UHHd$H]LeLmLuH}HuH~.LmLeMu/H5apqI$HLLm1LeMu/H51pqM4$LHLAHUH5 HEHHEHH}1"H}tH}tH}HEHPpH]LeLmLuH]UHH$`HhLpLxH}uHUHmHUHu:Hb۞HcHUHE胸LmLeMu.H5)oqI$H}LHH`HEHH={vq6tdH]H3H=dvqOH@ ;EuFLmLeMu2.H5nqI$HLHH`ILTLmLeMu-H5unqI$HLHHMUH=wqUHH^5H}kHEHtHhLpLxH]UHH$HLLLLH}HuHEHDž`HUHxqHٞHcHpHEHEHEHHtH@HHELuHELhpHEHXpHu,H5'qL#LgLA$A;H]H3H=pLߟH@ lHclHHH-H9v=,HE;HEt(t&HEtHEH]H3H= pޟH@ lHclHHH-H9v+HE;HEHt H}~<H]H3H=p[ޟHHcX HHH-H9vX+HEHEH1|i.HEƀH}<H]H3H=5pݟHHcP HHEHcH9uHEKHEHcHXHHH9v*HEHH}fHEHHtH[HHH9vy*]HEH1hH]H3H=vp1ݟHHHEDLuHEHHAH]Hu)H5ujqL#LDDHLDA$HD$Hc]HHHH9v)$HEDHELppL`HEHXpHuc)H5#qL#LALLDA$H`HtH@HXHHH9v3)HPHEHcHXHH-H9v)H8HEH0LmE1AH]Hu(H5=iqL;LDELH08DPA :HEDHELppLmHEHXpHuP(H5"qL#L.LLDA$H]H3H=_p۟HHEHEHtH@HPHcEH9| E4Hc]HEHtH@H)HHHH9v']HcEHPHEHH}عDxHEHHcMкH`$xH`HEHeH]HtH[HHH9vW']HEHcHXHHH9v,'HUH}HEH(HEH LuAAH]Hu&H5LgqL#LDELH (A$HD$Hc]HHH-H9v&$HEDHELppL`HEHXpHu<&H5 qL#LLLDA$H`HtH@HPHEHHtH@HHHH9v%HXHEHcHXHH-H9v%HHHEH@LuE1AH]Huu%H5eqL;LSDELH@HDXA HEƀHEƀH]H3H=[p؟HHcX HHH-H9v%HEtH`bH}bHpHtHLLLLH]UHHd$H}HuHEHt H}x5HEHHEǀHEH1bH]UHHd$H}HuUMHEu,HEƀHEuHEHH}pH]UHHd$H}HuUMȋuH}MUHuH}fH]UHHd$H]LeLmH}uUHE耸H}g4HE胸*HEHcHHH-H9v?#y]؃E@mLmMHcEHH9v#Hc]HIHAE;E|)HcUHcEH)HcEH9~HEHu'jE;E|bLmMHcEHH9v"Hc]HIGHHcUHcEL,LH-H9vO"E,}~HE苀;E|+HcUHcEH)HEHcH9~HEǀDHE苀;E~5HEHcHcUHHH-H9v!HE艘H]LeLmH]UHH$PHXL`LhLpLxH}@uHEHEHUHuH͞HcHUHE:EHEUHEH HEǀHEH1 _HEǀHEHHEƀHEƀHEHELmHEHXpHEL`pMuL H5qM4$L)HAA;HEDHELppH]HEL`pMuH5qM,$LߞHLDAHUHEH}E0HuL}HEDHEHXpHEL`pMuH5qM,$LlߞHDLA HEƀH}C]H}:]HEHt\HXL`LhLpLxH]UHHd$H}uHE;Et HEUH]UHH$0H8L@LHLPLXH}HuHUMDEHEHDž`HUHpHʞHcHhHEuH}Hu\}8HELxpDuH]HEL`pMuH5qM,$LݞHDLAH]HtH[HH-H9v]H}E;EHc]HcEH)HH-H9vHcEL`LH-H9v~HcELhLH-H9v^DH}H`DAL`HcEHXHH-H9vH}Lk H]HtH[HH-H9v]H}EHcMHcEH)HcEHPHuH}GmE;EuH}HuZHcMH}HumHEHHUȋuH}SH`2ZH})ZHhHtHH8L@LHLPLXH]UHHd$H]LeLmH}uHUHMHE{HEHuE܅}HEHHUu*HLmMHcEHH9vHc]HIRHI|HuYHE;Eu(HEHHuYHEHHuyYH]LeLmH]UHH$PHPLXL`LhLpH}HuUHDžxHUHu H1ǞHcHUHEuH}1XHEwHEHuqE}H}1X{LmMHcUHH9v7Hc]HIHItH}RX.HE;EtH}13XHELmHEHXpHEL`pMuH5(qM4$L|ٞHAA;~kHEDHELppHxHEL`pMuMH5qM,$L*ٞHLDAHxHEHfHt;HEHt H}*HEH1EWHEH13WHEHH}WJHxVHEHtHPLXL`LhLpH]UHHd$H]H}HEHUHuHĞHcHUHEuZHE|MHEt@HEH}HuHUHEHEHbHEƀHEHcHXHH-H9vHE!H}xUHEHtH]H]UHHd$H]H}HHcHHH-H9vYHEHEu H}9HEuHEHH}H]H]UHH$HLLLLH}HEHDžxHUHuHÞHcHUHEHEƀHEHEH[ELeI$HcUHH9v,LcmLI$賟IJt+HEHcHt H}&LeI$HcEHH9vLcmLI$艳IJt+HEHSHELuHELhpHEHXpHuQH5qL#L/՞LA$A;~fHEDHELppLxHEHXpHuH5qL#LԞLLDA$HxHEH%SHEHuBHEHH}.HEHt H}%HEƀH}HE~ H}k%H`H HHcHRHEHcHHHH9v!HEELeI$HcEHH9vLcmLI$蔱IB+ELeI$HcUHH9vLcmLI$QIJ\+HtH[HHH9vV]E};HELhpHEHXpHuH5 qL#LҞLA$;EHELppDmL}HEHXpHuH5H qL#LҞLDLA$HELhpLuD}HEHXpHuzH5 qL#LXҞDLLA$ LeI$HcEHH9vSLcmLI$IJ\+HcEL`LHH9vDH}H;EbH}iHEƀHHtHEƀHEHҵHxqOH}hOHEHtHLLLLH]UHHd$H]LeLmH}IH]HuH5QqL#LОLA$0HEHH}uHE H}H]LeLmH]UHH$@HHLPLXL`LhH}HuUHDžxHEHUHuޟHټHcHU|UH}Hu*HEHpHELxpDuLxHEHXpHuH5 qL#LϞLDLA$XHxH}1HpNOIHxMH}MHEHtHHLPLXL`LhH]UHH$`H`LhLpLxL}H}HEHUHuvݟH螻HcHUHELhpHEL`pMuH5n qI$HΞL`EHELmH]LeMuH5(OqM4$L|ΞHAA;yHEDL}H]LeMuTH5NqM,$L1ΞHLDAXH]HtH[HH-H9v,];E~EEߟH}KHEHtEH`LhLpLxL}H]UHH$@HHLPLXL`LhH}HuUHDžxHEHUHu۟HٹHcHU|UH}Hu*HEHpHELxpDuLxHEHXpHu H5qL#L̞LDLA$HxH}1HpNLIޟHxJH}JHEHtߟHHLPLXL`LhH]UHHd$H]LeLmLuH}uHELhp]HEL`pMu# H5qM4$L̞LAHEH]LeLmLuH]UHH$PHXL`LhLpLxH}uHUHEHUHuٟHHcHUueHEƀMHUH}AHuL}HELpp]HEL`pMu6 H5qM,$L˞LLA ܟH}HHEHtޟHXL`LhLpLxH]UHHd$H]LeLmLuL}H}uHUHEƀHELxpLu]HEL`pMu| H5qM,$LYʞLLA(H]LeLmLuL}H]UHH$`H`LhLpLxH}HuHEHUHuV؟H~HcHUHEƀHELhpHEL`pMu H5CqI$HɞLEHUH}E0HuLmHEHXpHEL`pMug H5qM4$LDɞHLAPEڟH}&GHEHtHܟEH`LhLpLxH]UHH$@HHLPLXL`LhH}HuHDžxHEHUHuןH,HcHUHELhpHEHXpHusH5qL#LQȞLA$ELmH]HuAH5"!HL#LȞLA$HcHHH-H9v%HppEEEALuHxLmMuH5 HMeLǞHLDA$HxHcEHcUL$LH-H9vDH}E0HuHH]DmLuL}Mu<H5 HM'LǞLDHA$ p;E*HELppLmHEHXpHuH5uqL#LƞLLA$`W؟HxDH}DHEHtٟHHLPLXL`LhH]UHHd$H]LeLmH}HLhpHEHXpHu>H5qL#LƞLA$HEǀH]LeLmH]UHH$`HhLpLxLuH}uHEHUHuԟHBHcHUueHEƀMH}A1HuH}nCHELhp]HEL`pMuaH5pM4$L>ŞLA֟H}$CHEHtF؟HhLpLxLuH]UHH$PHPLXL`LhLpH}uUHDžxHUHu ӟH2HcHUHEƀHc]HHH-H9v|]EDEHcEHcUL$LH-H9vPDH}A1HxHHxA;]HELxpDu]HEL`pMuH5opM,$LÞDLAO՟HxAHEHt֟HPLXL`LhLpH]UHH$PHXL`LhLpLxH}uHUHEHUHu|џH褯HcHUueHEƀMHUH}E0HuL}HELpp]HEL`pMuH5OpM,$LžLLA/ԟH}@HEHt՟HXL`LhLpLxH]UHHd$H]LeLmLuL}H}uUHEƀHELxpDu]HEL`pMu H5pM,$LDLAH]LeLmLuL}H]UHH$@H@LHLPLXL`H}uHUHDžpHDžxHUHuϟHHcHUHEƀLmH]Hu:H5HL#LLA$HcHHH-H9vHhhEEEALuHpLmMuH5HMeLHLDA$HpHcEHcUL$LH-H9vDH}AHxHHxDmLuL}Mu6H5HM'LLDHA$ h;E$HELxpLuDmHEHXpHuH5kpL#LDLLA$JџHp=Hx=HEHtҟH@LHLPLXL`H]UHH$PHPLXL`LhLpH}uHUHDžxHUHui͟H葫HcHUD}LuHxLeMuH5^?qM,$L貾HLDAHxHEHLeHcUHH9v7Hc]HH}:AD t tucH}t\HcEHHcUH9H]LeMtMd$LHH9vLH}T:BD# tc t^t\HEHPpHL}DuDmHEHXpHueH5pL#LCDDLHA$LmH]Hu$H5+qL#LLA$LmH]HuH5~+qL#LӪLA$u=HELppM1HEHXpHuH5@pL#L蕪LLA$PLmH]HuH5+qL#LcLA$0LuAAH]HuMH5*qL#L+DDLA$HuH}}(EEH]HtH[LceILHH9v DH}HHHHHtH@HHH-H9v]HcUHHcEH9~YHcUHHcEH)¾ HHWCHHHUH}1(HcEHXHH-H9va]H}EEH]HtH[HH-H9v*]H}EHcEHHcUH9~)}u#Hc]HHH-H9v]E;E}F}uE;E8Hc]HcEH)HHH9vڋuH})EEċE;E}tEHc]HcEH)HH-H9v^HM؋UH}H}1&Hc]HHcEH)HH-H9vڋuH}H]HtH[HHH9v]H}ŴE;E}]HcEHPHcMHuHHA8HHUH}оHcMHuغHH8HHH}%H}tHM؋UuH}薢Hc]HHH-H9v1HHEH LuAAH]HuH5h'qL#L车DELH A$uH}sLuE0AH]HuH5'qL#LfDDLA$HEHD$H]HtH[HH-H9vW$EH0EH8HEH@LeE1AH]HuH5&qL;LإDELH@8D0A LmH]HuH5;&qL#L营LA$ HHt#H}k#H}b#H}Y#HPHtxHLLLLH]UHH$HLLLLH}HuȉUMDEHEHDžPHUH`'HOHcHX%H}1#HEЀt }|HEHPpHHEH@D}DuLPHEHXpHuQH5pL#L/LDDD@HHA$HP"Hc]HHH-H9vAHELppLmHEHXpHuH5WpL#L謣LLDA$H]HtH[HHH9v]HcEHcUHHcUH9LeHcUHH9vnHc]HH}1AD  |HEHPpH8EH0D}DuLPHEHXpHuH5opL#LĢLDDD0H8A$HP LmH]HuH5#qL#LpLA$LmH]HucH5"qL#LALA$0E؉EL}AAH]Hu%H5"qL#LDDLA$HcEHcUHHcEHH9HcEHHcUH9}1HcEHHcUH)Hc]H)HH-H9v]Hc]HcEH)HHH9v߾贇HcEHHcUL$HcEI)LH-H9vcEHuȋMH}ЉHcEHXHcEH)HH-H9v']؃}~8DE؋MUH}HPTHPHEHH}1[ Hc]HHH-H9vALuLmиHHH]HuuH5 qL#LSDLLDA$uH} Hc]HHHH9v8AHELhpLuHEHXpHuߟH5pL#L՟LLDA$H]HtH[H}άHcH)HHH9vߟڋuH}ALuE0AH]HuvߟH5qL#LTDDLA$HD$Hc]HHHH9vJߟ$EH(EH L}HEHE1AH]HuޟH5vqL3L˞DEHL D(A LmH]HuޟH5.qL#L胞LA$HPgH}^HXHt}HLLLLH]UHH$HLLLLH}HuUMDELMLHEHEHDž0HUH@H;HcH84 HEȀu HuLMDE؋MUH}葚 LmH]HuZݟH5qL#L8LA$t}_H}1HEHD}DuLmH]HuݟH5qL#L᜞LDDHA$o Hc]HHHH9vܟAHELppLmHEHXpHuܟH5pL#LpLLDA$H]HtH[HHH9viܟ]HcUHcEHHcEH9BLeHcEHH9v6ܟHc]HH}*AD t tfH}t_HcEHcUHHcEHH9gH]LeMtMd$LHH9v۟LH}L*BD# t' t"t HuLMDE؋MUH}菘LmH]HuX۟H5qL#L6LA$LmH]Hu)۟H5qL#LLA$0LuAAH]HuڟH5zqL#LϚDDLA$E؉EHuH}EEH}1 HcEHcUHHcEHH9HcEHHcUH9}1HcEHHcUH)Hc]H)HH-H9voڟ]Hc]HcEH)HH-H9vIڟ߾]HcEHHcUL$HcEI)LH-H9v ڟEHuMH}ȉHcEHXHcEH)HH-H9vٟ]؃}~8DE؋MUH}H0H0HEHH}1Hc]HHHH9vnٟHHEHL}AAH]HuٟH5qL#LDELHA$Hc]HHH-H9v؟AHELppLmHEHXpHu؟H54pL#L艘LLDA$H]HtH[LceILHH9vz؟DH}H0GH0HtH@HHH-H9v<؟]HcUHHcEH9~YHcUHHcEH)¾ H01H0HUH}1bHcEHXHH-H9vן]H}趤EH]HtH[HHH9vן]H}~EHcEHHcUH9~*}u$Hc]HHHH9vSן]E;E}F}uE;E8Hc]HcEH)HHH9vןڋuH}EEE;E}tFHc]HcEH)HHH9v֟HMЋUH}H}1Hc]HHcEH)HH-H9v֟ڋuH}H]HtH[HH-H9vP֟]H}4E;E}]HcEHPHcMHuH0&H0UH}ȾhHcMHuкH0&H0H}H}tHMЋUuH}Hc]HHHH9v՟AHEHLuAHH]HuM՟H5qL#L+ELHDA$uH}LmE0AH]HuԟH5qL#LԔDDLA$HD$Hc]HHHH9vԟ$D}DuHEHHEH E1H(H]HulԟH5qL#LJ(EH HDEA$ HEHD$H]HtH[HH-H9v'ԟ$EHEHL}HEHE1AH]HuӟH5SqL3L訓DEHLDA LmH]HuӟH5 qL#L`LA$H0DH};H}2H})H8HtHHLLLLH]UHH$H L(L0L8L@H}؉uUHEHEHDž`HUHpHHcHhHHE؀uJHELxpDuDmHEHXpHuNҟH5pL#L,DDLA$LmH]HuҟH5qL#LLA$LmH]HuџH5nqL#LÑLA$0L}AAH]HuџH56qL#L苑DDLA$Hc]HHH-H9vџHuH}[Hc]HHHH9vZџAHELppLmHEHXpHuџH5pL#LLLDA$HcUHEHtH@H9CHEHtH@HXHHH9vПAHELppDmHEHXpHuПH5pL#LoDLDA$LmH]Hu\ПH5qL#L:LA$0H}_HcUHHEHtH@H)H]HtH[H)HHH9vПLceHEHtH@I)LH-H9vϟDMH}H`A^H`H} H]HtH[HH-H9vϟA؋MH}غH` H`H} HELxpDuDmHEHXpHu'ϟH5pL#LDDLA$LmH]HuΟH5{qL#LЎLA$0HcEHXHHH9vΟH}yHcEHXHHH9vΟHMH}ؾHc]HHH-H9vtΟAHELppLmHEHXpHu3ΟH5pL#LLLDA$H]HtH[H} HcH)HH-H9v͟ڋuH}~HELhpDuL}HEHXpHu͟H55pL#L芍LDLA$H]HtH[H}胚HcH)HH-H9vu͟HcEL`LHH9vT͟DH}؉L}E0AH]Hu ͟H5 qL#L錞DDLA$HD$$EHPD}HEHHLmAHXH]Hu̟H5$ qL#LyXELHHDDPA$ LmH]HuR̟H5 qL#L0LA$H` H} H} HhHt!H L(L0L8L@H]UHH$PHPLXL`LhLpH}uHUH HEHDžxHUHuəHwHcHUHE耸uHHELxpLu]HEL`pMu$˟H5pM,$LLLALmLeMuʟH5t qI$HȊLLmLeMuʟH5F qI$H蚊L0Hc]HHH-H9vʟH}HxoHxHtH[HH-H9vgʟڋuH}UH}Hx&HxHtH[HH-H9vʟHcEL`LH-H9vɟDHuH}AvHELxpLu]HEL`pMuɟH5.pM,$L肉LLALmLeMuqɟH5 qI$HNL0uH}HMUH}Hc]HHH-H9v4ɟAHELppH]HEL`pMuȟH5|pM,$LЈHLDAH]HtH[H}ʕHcH)HH-H9vȟڋuH}>LmLeMu|ȟH5 qI$HYL뙟Hx?H}6H}-HEHtOHPLXL`LhLpH]UHH$@HHLPLXL`LhH}uUHMHHEHUHuH)tHcHxLmH]HuuǟH5qL#LSLA$LmH]HuFǟH5qL#L$LA$0HELxpLuDmEHpHEHXpHuƟH5pL#LۆpDLLA$Hc]HHHH9vƟAHELhpLuHEHXpHuƟH5pL#LpLLDA$H]HtH[H}iHcH)HHH9vZƟڋuH}LmH]HuƟH5qL#LLA$舗H}H}HxHtHHLPLXL`LhH]UHH$PHPLXL`LhLpH}uUHDžxHUHu誓HqHcHULmLeMu!şH5qI$HLLmLeMuğH5|qI$HЄL0HcEHcUHHHH-H9vğ;]EEDELceILH-H9vğDH}HxaLxMtMd$LH-H9vXğDuH};]HELxpDu]HEL`pMuğH5pM,$LDLALmLeMußH5XqI$H謃L>HxHEHt贖HPLXL`LhLpH]UHHd$H]LeLmLuH}HuIH]LeMu*ßH5qM4$LHLAH]LeLmLuH]UHHd$H]LeLmLuH}HuLmH]HuŸH5FqL#L蛂LA$LmH]LeMuŸH5pM4$LgHLAu HuH}YLmH]HuGŸH5qL#L%LA$H]LeLmLuH]UHHd$H}Ht*@HE8 tHEHE8uHE8 EEEH]UHHd$H}uHEHc@HcUHHUHBffEEH]UHHd$H}ufUHEHc@HcUHHUHBfUfH]UHH$HLL H}HuHu.LmLeMuH5qLH݀LShHEH}HUHu&HNmHcHUuSHEH}1H}BHE@ HEH}tH}tH}HEH둟HEHtlHpH0蚎HlHcH(u#H}tHuH}HEHP`薑!茑H(HtkFHEHLL H]UHHd$H]H}HcG HXHH-H9v诿HEX H]H]UHHd$H]H}HHcX HHH-H9v\HEX H]H]UHH$HLL H}HuHu.LmLeMu߾H5qLH~LShHEH}HUHuH.kHcHUurHEHEǀHEǀHEǀH}1FLH}xHEH}tH}tH}HEH謏HEHtlHpH0[HjHcH(u#H}tHuH}HEHP`W␟MH(Ht,HEHLL H]UHHd$H]LeLmLuL}H}HuH~.LmLeMuDH5qI$H!}LHELhpH]HEL`pMu H5pM4$L|HLA(HHH=}qoH]Ht_H}VHEx uLHELxpLu1HEL`pMu蜼H5%pM,$Ly|HLLA0H}wLm1LeMu\H5-qM4$L9|HLAH}1LH}tH}tH}HEHPpH]LeLmLuL}H]UHHd$H}H]UHHd$H}uHE;EtQHEHHHUHHUEHEǀHEǀHEǀH]UHHd$H}nkHEHEHHEHH]UHHd$H]LeLmLuL}H}HuHtaL}HELppLmHEHXpHuԺH5]pL#LzLLA$(HHH=G qmI;H}H]H3H= pwmL;LuMLMu`H5pL#L>zLLA$(HHH= q.mH]HtnH}HEx u[H]H3H=plL+L}M1LmLMu也H5mpL#LyH}LLA$0H}GtHELppLeHEHXpHu虹H5"pL+LwyLLA(HHH= qhlHEHHEHH= qHUHHELHELppLmHEHXpHuH5pL#LxLLLA$0LmH]HuѸH5 qL#LxLA$HcHHHH9v贸|TEEHEHuf=sHEHu;]HEH|LeH]Hu*H5 qL+LxLALeI4$H=pjI4$H}1҉'H]LeLmLuL}H]UHHd$H]H}HuUMHE;E|)HcUHcEHHEHcH9~HEǀHE|HE;E~ HUEHcEHcUHHHEHcH9~2HcEHcUHHHH-H9vHEHcEHcUHHHH-H9v붟;]|/EEDEHEHuܺ;]H]H]UHHd$H]H}HuUMHE;E|5HEHcHcUHHH-H9vKHE}HcEHcUHHEHcH9HE;E}HEǀHEHE;E~PHEHcHcUHHEHcEHEH;E~H]H]HH-H9v虵HEHE;E=HEHcHcUHHEHcEHEH;E~H]H]HH-H9v6HEHE|HE;E~ HEUHE;E HE}GHEE9E~EEHcHcUHHH-H9v襴HEHcUHcEHHHH-H9vs;]|/EEDEHEHuܺ;]H]H]UHH$@H@LHLPLXL`H}HuUHEHEHUHpH9`HcHhuHELxpDuH]HEL`pMuuH5pM,$LRsHDLAH}tH}HuH=K&uH}HuH]HtH[HH-H9vHUHuHDEHuH}HEH]HtH[HHHH-H9vIJ|hEELmHcEHH9v蘲LceLH}XPC,HcUL$LH-H9vaDe;]HcuH}1EH]HtH[HHH-H9vAAEDELeHcUHH9v౟Hc]HH}`A| H}IHcUHH9v蠱Hc]HL!LeHcUHH9vuLcmLH}CD,ADHcEHXHH-H9v;]LeHc]HHHH9vHH}NArEDEH};IHcUHH9vLcmLLACD, HcEL`LH-H9v苰De;]D;}xHEHHtH[HH=vXHEHu譁H}H5}pH}HhHtH@LHLPLXL`H]UHH$0H0L8L@LHLPH}uHEHEHUHx}H[HcHp]HELxpDuLmHEHXpHu)H5pL#LoLDLA$H}u=EHcEHHH=vHEHuGH]HtH[HH-H9v轮]HcEHhH5pHhH}غNH]1H}TLH`HEHuH]HXDmDuL}H]Hu,H5qL#L nLDDHXL`A$ELmMtMmIILHH9v歟E|jEfEH]HcUHH9v踭LceLH}xKB#HcUHHHH9v耭]D;mHEt+HEHE=vPUuH1HcEHHH=v$HEHuny~H}H5IpH}СHpHtEH0L8L@LHLPH]UHHd$H}HuHEHxhtHHMHH}rHMHH}1rHMHH}rHuH}OgHEHxhtHHMHH}1qHMH3H}qHMHH}qH]UHHd$H}HuHH}HSHEHxptHEHu H}1\H]UHHd$H]LeLmLuL}H}HuULmLeMu.H5pI$H kL;EpHEHu6f=rEHELxpLu]HEL`pMuϪH5XpM,$LjLLAHuUH} H}1H]LeLmLuL}H]UHHd$H]LeH}HuUMLELMUHuH}IcEEHc]HHH-H9v)EfEHE$HE8 uOHcEHUHcHHHHELcI)HEHI LH=v蹩HED EHEHcUL$LH-H9v腩DeHEHE;]VHE؊UԈHE؋ỦH]LeH]UHH$HL L(L0L8H}EELeH]HuͨH5pL+LhLAHcHHH-H9v貨]HEnLuLmH]HuhH59pL#LFhLA$A;.HEHEHd%E=tr}|&Hc]HHH-H9v ]HEHEEHE;EHEEEHE}HEEHEEcHEEHEE;E}EEEHE;E}*HEEHEE;E~EEEHEǀHEǀHUH`?uHgSHcHXtEHEEHPP;ELEȃE@EHEHu%E=HELxpLuDmHEHXpHuDH5͠pL#L"fDLLA$@HEE}u6HcEHHH=vHEHu__E;E~-Hc]HHH9vץHH}ۺEEHEH@EHHDuL}LmH]HuvH5GpL#LTeLLDHL@A$HEE=~HEHuԺHEt+HEHE=vUЋuH_bHcEHHH=v⤟HEHu,/}|&Hc]HHH-H9v螤]ЋE;E~EЉEHUEԉP;EuH}1qHXHtPwEHL L(L0L8H]UHHd$H]LeLmH}HuUMLELMUHuH}I\LmLeMu讣H5pI$HcLH HmHmHc]HHH-H9v耣 EEHEHEHE8 HE8 HE< ,te,,i,3,[ ,u,y,},; ,,,0,7 HE@< ,t ,t HEx HE HEx HE HE@< ,tu,,,,,,I,e,,,,, &,F ,D09 HE@-r HE HE@-r t t HE HE@- HE HE@- HE HE@- r7t{ HEo HE@=t=t-rA HE5 HE@H > HE HE@=t-rt HE HE@=t=t-rt HE HE@-r t*t~ HEr HE@-\ HEP HE@=t =t4 HE( HEx HE HE HE@< ,t1,tU, , vc,tk,}, ,n HEx HEx HE HEx HE| HEp HExb HEV HExH HE< HE0 HE@,v,t, ,Fv+ HE HExHEHEHEHEHE@<,t),,v7,t?,tU, t,,NvHEx|HEpHEdHExVHEJHE@-4HE(#HEHExvHExHEHE@<,t1,,v?, tG,tm,,,HExHEHEHE@- r PkHE_HExQHEEHEx7HE+HExHEHExHExHEHE@<,te,,,,,6,, c,d,,, C,DlHEx^HE@-r@HE4HE(HE@,v,t%,,v ,t/,tEHEHExHEHExHEHExHEHE@<,v,t%,t;,~,v ,t]qHEeHExWHEKHE@-rr P%HEHEx HEHE@,<+%HpHcHHE@=tHEHE@=tHEHE@=t- tHEhHE@-r,JHE>HE@- rrHE HE@-!r- r IHEHE@-=r>BHEHE@-r `HEHE@- rrr tRHEFHE@=t-~(HEHEHE@-=r?AHEHE@->HEHE@-rr*tHEHE@-rtrHEfHE@-EPHEDHE8HE@-"HEHE@-HEHE@=t -rrr HEHE@- HEHE@-/r0DrHEfHE@-r2r3F@HE4HE(HE@- r 3 HEHE@-rHEHE@-rr HEHE@-rHExsHE@<d,t,X,~vRHExrHHE?HE6HE-HE@,v,t HEHExw HE;]BH]LeLmH]UHHd$H]LeLmEEUH}rq|[EEEVv=EHqD,LceILH-H9v HF$;]H]LeLmH]UHHd$H}uH}7E fuH}ĂHEHUuH}UHuH}EuH]UHH$HLLH}HuHUH}u.LmLeMuH5pLHSLShHEH}#HUHuAbHi@HcHUHEH}1HUHEHB(11ҾH==m&jHUHB811ҾH=Bq jHUHB@HEH}tH}tH}HEHdHEHtlHhH(aH?HcH u#H}tHuH}HEHP`d fvdH HtUg0gHEHLLH]UHHd$H]LeLmH}HuH~.LmLeMu|H5pI$HYRLHEHx8KHEHx@KH}1LH}tH}tH}HEHPpH]LeLmH]UHHd$H]LeLmH}؉uHUHMLEHE@0uH}HEH@(HcHEHc@ HXH)HH-H9v諑HEHx(0HU؉BHHUHE؋@HBLHEH@(LHEH@(LMuHHcHUukHEH@H]HtH[HH-H9vo]~3uH}HLceLmH}PLLHAH}tHEHtBHpLxLmH]UHHd$H}uHEHUHu=HHcHUu)HEH@UH}HugHuH}u@H}̬HEHtAH]UHHd$H}uHEHUHuHEHcXHEHxHcHUHcRHH9uH]HEHx+;C tHEHE@4EHEHxHUB(HEx0HE@(uAHE@,tttcHE@,VHE@,IHE@,]HE@EHEHxPu HHEpH1H7E9EEHcEHXHHH9vc>]*fDHcEHXHHH9v7>]HEH@PLHEH@PHHu=H5,pL#LLA$;E~,HEHxPu:HHEpH1HffHEH@PLHEH@PHHuv=H57,pL#LTLA$;EHEHxPuHEHEDxHEHEE1LmHEHEH]Hu=H59TrL#LH}LEUDA$HEHxHuH H}HEH}HpHH`LhLpLxL}H]UHH$`HhLpLxLuL}H}HuHEHcX HHHH9vJ<]HE@E}Hc]HHH-H9v<])fDHc]HHH-H9v;]}|(HEHxPu/HHEpH1H[tHEHxPuIHEpH1L3HcHHHH9vs;]}HEHxPuHEHEDxHDuE1HEHEHEHEH]Hu;H5.RrL#LH}HuEDDA$HEHxHuH H}HEH}HpHHhLpLxLuL}H]UHH$`H`LhLpLxL}H}HuHE@EHEDx HELpPDmHEHXPHu:H5MrL#LDLDA$EHE@HHEHxPu[IHEpH1L臎HcHHH-H9v9]HEHxPuHEHEDxH]LmE1HEHEHEHEHu`9H5PrHEL L:H}ELDA$HE@ ;EuHEH@0H;Et-Hc]HHH-H9v9]}L}} H}HEHxHuHHEH}HpHH`LhLpLxL}H]UHH$`H`LhLpLxL}H}HuUMHE@HHEHxPuHMQHHUUHU1HULuIMLMu7H5%OrL+LLLDEUMAHEHxHuHHEH}HpHH`LhLpLxL}H]UHH$PHXL`LhLpLxH}HuUMHE@HHEHxPuIHEpH1LԋHcHHH-H9v7]DHEHxPuXHEHEDxH]E1LuHEHEHEHEHu6H5MrHEL LH}LEDA$HEHxHuHHE@;Et.Hc]HHHH9vZ6]܃}E}} H}HEH}HpHHXL`LhLpLxH]UHH$PHXL`LhLpLxH}HuHUHHEHBHEHE@HHc]H}^HcH)HHH-H9v|5HEHxPHH}HUHEPHHU1HELuIMLMu5H5H}SjHEH@8HEHHEHc@$HcUHHH-H9v]`:fDH}HEHc@$HcUHHH-H9v]H}HuH}Ht9H}HEHc@$HcUHHH-H9v_]HEHEHEHc@$Hc]H)HH-H9v(]H}HEH}t E;EwHuH}18HHEHEHcP0HHcEH98HEHcP(HcEHXH)HH-H9v6H}KcLeHcEHXHH-H9vA\$(HEHc@,HcUHHH-H9v]E;EHEHUЋ@@;B@~ HHEHUЋ@@;B@HmHEHc@(Hc]H)HH-H9vjH}bHEHc@$Hc]H)HH-H9v8]H}LHEHt4Hc]HHH-H9vHUHuH}Qa[Hc]HHH-H9vAL}H]LeMuH50ppM,$LtϝHLDAHEHcX$HEHc@$H)HH-H9vi]HEHUHP8HUHEЊ@ B HEЋUP$HEH@HE@ H}HHEЋH,H}U^HEH@HE@,H}OHH}Up_HEH@EĉEEEH}HUHuGHE|fDH}Hu[kHcEHc]H)HH-H9vxHEX$HuH}1 HHuH3EĉEEEH}HUHuHEH}t E;EwHuH}1 HH5EHEHcP0HHcEH9HEHcP(HcEHXH)HH-H9v H}_LeHcEHXHH-H9v A\$(\Hy=H`HDžX E艅pHDžhHz=HEHDžx EEHEHXCH}jƳHEHcP(HcEHHHcEH9| HHEHc@(HcUHHH-H9v ]H}HtH} HEmH}uLuH}^Hc]HHH-H9vo HuH}\HuH}Sn%HEHEЋEEE܉EHXHEHc@(Hc]H)HH-H9v H}!^HEHc@$Hc]H)HH-H9v ]H}HEHt4Hc]HHH-H9v HUHuH}\[Hc]HHH-H9vr ALuH]LeMu9 H5kpM,$L˝HLDAHEHcX$HEHc@$H)HH-H9v ]HUHEHB8HUHEЊ@ B HEЋUP$HEH@HE@ H}觺HHEЋH,H}UZHEH@HE@,H}HH}U[HEH@EĉEEEH}HUHuHEvH}HugHcEHc]H)HH-H9v HEX$HuH}1HHuHEĉEEEH}HUHunHEH}t E;EwHuH}1hHHEHEHcP0HHcEH9}lHEHcP(HcEHXH)HH-H9vj H}[LeHcEHXHH-H9v; A\$( H}AEEEH0L8L@LHLPH]UHHd$H]LeH}HHcXHEHc@H)HH-H9vHEH@X$HEH@Hx8t,HEHpHEHx10HHEHpHMHEHPHEH@HB8HEHpHEHx1HHeEHEH@HcP0HHcEH9HEHcPHcEHHH-H9v]HE@EHE@EHEHxHUHuQHEHEHxHugdHEHc@Hc]H)HH-H9vHEX$HEHpHEHx1HHuH3HE@EHE@EHEHxHUHu躹HEH}t E;E[HEHpHEHx1HH!EHEH@HcP0HHcEH9}kHEH@HcP(HcEHXH)HH-H9vHEHxXHEL`HcEHXHH-H9voA\$(H]LeH]UHHd$H]LeLmLuL}H}HGHcP(HEHcXH)HH-H9vHEHxXHEH@HcP$HEHcXH)HH-H9vHEXHEHxҵHEHt@HEHcXHHH-H9vHEHPHEHpH}VkHEHcXHHH-H9vFAHELpHEHXHEL`MuH5epM,$LĝHLDAHEH@HcX$HEH@Hc@$H)HH-H9v]HEHPHEH@HB8HEHPHEH@Њ@ B HEHPЋEB$HEH@H@HEH@@ HEHxGHHEH@ЋH,HEHxUTHEH@H@HEH@@,HEHx}HHEHxUTHEH@H@HE@ĉEHE@EHEHxHUHuaHEHEHxHuw`HEHc@Hc]H)HH-H9vHEX$HEHpHEHx1"HHuHCHE@ĉEHE@EHEHxHUHuʵHEH}tHE@;EWHEHpHEHx1HH-EHEH@HcP0HHcEH9}kHEH@HcP(HcEHXH)HH-H9vHEHxTHEL`HcEHXHH-H9v{A\$(H]LeLmLuL}H]UHHd$H}HuUHEHx uH=bp@HUHB HEHP HUHEH@8HBHUHEHBHUEBHEH]UHH$HLL H}HuHu.LmLeMuH5bpLH]LShHEH}HUHuϞHέHcHUuRHEH}1tHEH@HEH@ HEH}tH}tH}HEHlҞHEHtlHpH0ϞHCHcH(u#H}tHuH}HEHP`ҞӞ ҞH(HtԞԞHEHLL H]UHHd$H]LeLmLuH}uEHEx}HEHx HEHx HELh HEL` MuH5~pI$H調L H HcHcUHH9}QHELh HEL` MuH54pI$H`L H HcHcUHH9~EHELh HEL` Mu2H5pI$HL H HcHcUHH9uEHELh HEL` MuH5pI$H达L H HcHcUHH9uEHELh HEL` MuH5ApI$HmL H HcHcUHH9uQHELh HEL` MuFH5pI$H#L H HcHcUHH9uEBHEHxr}hHELhHEHXHEL`MuH5rM4$L豽HLA(Hc]HHH-H9vHEHx11!~MHEHxu11u~M HEHxuͭH11HQEHEHxu裭H1ҾHQE~MHEHxuvH1ҾHQE~MHEHxuIH1Ҿ HwQE~"MBHEHxu11~MEH]LeLmLuH]UHHd$H]LeLmH}uEHEHx tbHEHx tQHELh HEL` MuH5ȘpI$HL H HcHcUHH9uEEH]LeLmH]UHHd$H}HHx(u)HEHHHEHPH=rHUHB(HEH@(H]UHHd$H}Hxt-HEHxuHEHx tHEHx tEEEH]UHHd$H]LeLmLuH}HGHEHt:HELhH]LeMuH5 rM4$L蹺HLA(HEH]LeLmLuH]UHHd$H}HuHEH@H;Et,HEHUHPHEHx(tHEHpHEHx(襇H]UHHd$H}HuHEH@H;Et,HEHUHPHEHx(tHEHpHEHx(%H]UHH$HLL H}HuHu.LmLeMuH5`\pLH蝹LShHEH}HUHuǞHHcHUuBHEHE@H}1xHEH}tH}tH}HEHʞHEHtlHpH0kǞH蓥HcH(u#H}tHuH}HEHP`gʞ˞]ʞH(Ht<͞͞HEHLL H]UHHd$H]LeLmH}HuH~.LmLeMu\H5ZpI$H9LH}1腲HEHx(蘱H}tH}tH}HEHPpH]LeLmH]UHHd$H]LeLmLuH}uUHExu EHEHxt }}rHEHx tgHEHx `tVHELh HEL` MubH5pI$H?L H HcHcUHH9u E'EHELhHEHXHEL`MuH5 rM4$LնHLA(HEHxuHHËUHuKE}HEHxUu1E}HEHx ~HEHx PtmHELh HEL` MuRH5pI$H/L H HcHcUHH9u#HcEHXHH-H9v"]EH]LeLmLuH]UHH$PHXL`LhLpLxH}Hu؉UMDEHE@$HEHxt }}HEHx HEHx 9HELh HEHX Hu7H5pL#LLA$ H HcHcUHH91HuHH}HuHe`HELpHEL`HEHXHuH5rL+L薴LLA(}HEHx HEHx SHELh HEHX HuQH5pL#L/LA$ H HcHcUHH9u@Hc]UuH}HcHH9u!UHuHH}HuHfHEHxuPHEL}DuEHEHELeH]HuH5 rL+L耳LMUELAHXL`LhLpLxH]UHHd$H]LeLmH}HuUHUHE@HUEBHEH@Lh HEH@HX HuH5pL#LղLA$ HUB HEH@Lh HEH@HX HuH5bpL#L菲LA$ HUBHE@HE@HE@ HE@HE@$HEH@(HEH@0HE@8H]LeLmH]UHHd$H]LeLmLuL}H}uUHEHx &HEHx HELh HEL` MuH5lpI$H蘱L H HcHcUHH9Hc]uH}1HcHH9HELh HEL` MuKH5pI$H(L HH HcHELh HEL` Mu H5pM4$L谝LA H HcH)HH-H9v]HELhHEHXHEL`MuH5rM4$LHLA(HELp]D}HEL`MuaH5ZrM,$L>DLAEEH]LeLmLuL}H]UHHd$H]H}HuЉUMDEDMHEHE@HE@HE@ HE@H}Q}tFUuH}HUЉ}t5HEHcHXHH-H9vHEЉ HEMUHuH}E1mHcEHXHH-H9vMHEЉXHc]HcEH)HH-H9v#HEЉXHEE@ HEHUHPHEЋUȉPHEЃxu HE@ HE@H]H]UHHd$H]LeLmH}HuUMEH}1҉}EHcEHEH5dpHMH}鍞@Hc]HHH-H9v@]DMM܋UH}E0HuLmMeHcEHH9vHc]HI}ËHI<HuH}uH]LeLmH]UHH$HLLLLH}HuHUHMH}u0LmH]HuHH5QpIL&LAT$hHEH}HUHumH蕙HcHx8HEHUHEHH}1zHEǀHEǀHEHUHHUH5KVHEHH=MpHUHH= Op^HUHHEHHEHHB HUH=TpWHUHH=5pHUHHEH(HEH賷HEHH=څpHUHHEHͶHEHXHEH÷H=pbHUHHEHrHEHHEHhHEH HIHELAHEHHuH5~pL#L諪DLLHA$ HUHHHHELAM1HEHHuaH5pL#L?LELHHA$ HELHEHHuH5pL#LLA$p HHu0HHEH}tH}tH}HEHFHxHtlH`H HHcHu#H}tHuH}HEHP`y亞HHtý螽HEHLLLLH]UHHd$H]LeLmLuL}H}HuH~.LmLeMuH5UMpI$H豨LHUHIIHEHHELMuH58pM,$LdHLLA Lm1LeMuPH5LpM4$L-HLAHUH5QHEH襭HEHuHEH腢HEH5F`pHEHHMmHEH5V`pHEHHMEHEH%HEHHEHHEHՠH}1*wH}tH}tH}HEHPpH]LeLmLuL}H]UHHd$H}uH}SEH}襰H]UHHd$H}uH}EH}UH]UHHd$H]LeH}HuHH}HزHEH]Lc#ILH-H9vDH}EHcEHXHH-H9vb]HEH]LeH]UHHd$H]LeH}HuH]Lc#ILH-H9vDH}hEHcEHXHH-H9v]HuH}eHEH]LeH]UHHd$H]H}؉uUMDE}H}? EHcEHXHH-H9v\HEHMUE;E}/HcEHcUHHH-H9vH}= }u7HcEHcUHHXHH-H9vڋuH}QHcUHcEHHcEH9~ H}H]H]UHHd$H]H}؉uUMDEH}9 EHcEHXHH-H9vVHEHMU螾}u7HcEHcUHHXHH-H9vڋuH}#QHcUHcEH)HcEH9~ H}H]H]UHHd$H]H}uHcEHXHH-H9vHEHHu0$H}tQEEHc]HHH-H9vQHcHHcEH)HH-H9v+]&HcEHc]H)HH-H9v]EH]H]UHHd$H]H}uH}HcHUHcH)HXHH-H9v]H]H]UHHd$H]LeH}uLceHcEHXHH-H9vTHEH0Hu\HcEIHH-H9v]H]LeH]UHHd$H]H}uHEHcHcUHHHH-H9vH}"EH]H]UHHd$H]LeLmH}uUHcEHXHH-H9vaHEHHuбEE}qH}11EEH}艖t"H}HuHEHEHEHEHEHHu_HEHEHEHEfHc]HHH-H9v];EoẺE/bDHc]H}[HcH)HH-H9v]];E ẺEH}Hu;HEHEHEHEH}蒕t$HcEL`Hc]H}HcHI9rHcEHXHH-H9vߞ]}hHELhpHEL`pMuߞH5oI$HkLE fE;E| ẺEHcEHXHH-H9vUߞ]DHc]H}HcHHH-H9vߞ];E| ẺEE;E|4Hc]H}ӒHcH)HHH-H9vޞ]lH}HuOHEHEHEHEH}tHcEHHcUH9EHc]HHH-H9vmޞ]}EH]LeLmH]UHHd$H}uUЋuH}}H]UHHd$H}uH}E}tuH}EEH]UHHd$H]H}HuHEǀHEǀHEHcHXHH-H9vpݞHEH]H]UHHd$H]H}HHcHHH-H9vݞHEHErHE|(HEHHEHEH};HEtHEHH}5FHEt H}H]H]UHHd$H]LeLmH}HLhpHEHXpHu.ܞH5oL#L LA$xHcHEHHu蚼HcEH)HH-H9v۞]H]LeLmH]UHHd$H}HH]UHHd$H]LeH}HuUHMLEEEH]Lc#ILH-H9vs۞DH}EHcEHXHH-H9vD۞]HcEHc]H)HH-H9v۞]HMLEUHuH}sHEHc@HcUHHH-H9vڞHEXH]LeH]UHHd$H]LeLmH}u|HEHcHPHcEH9} ECLeM$HcEHXHHH9vSڞHI$xADEEH]LeLmH]UHHd$H]LeLmLuH}HH@HEHt:HELhpH]LeMuٞH5NlM4$L蒙HLA(HEH]LeLmLuH]UHHd$H}uHE;Et,HEƀHUEH}pHEƀH]UHHd$H]H}HHcHEHEH0Hu%HcEHHHH-H9v؞]H]H]UHHd$H]LeH}uHcEL`HcEHXHH-H9v؞HEH0HuHcEI)LH-H9vY؞DH}H]LeH]UHHd$H}uHE;EtnHEUHcEHHEH5APpHEHHMhwHcEHHEH5MPpHEHHMHEHEHEHEHc]H}WHcH)HH-H9vYԞ]HELhpHEHXpHuԞH5oL#LLA$EEEHEHcHXHH-H9vӞLEEE;E}}QLmMHcEHH9vӞLceLI`qCEELmMHcUHH9vRӞLceLIqLcmILH-H9vӞG,LceILH-H9vҞDHEHELceILH-H9vҞDHEH"EH}tTH};EuMHE؋@XE5H}t(HcEL`H}ņHcI9uM HE؋@XEHcEL`LH-H9v.ҞDeLLceH}HcILH-H9vўDeH}Hu|HEHEHEHEH}CtE;E~LmMHcEHH9vўLceLIaoC;Eu@LmMHcEHH9veўLceLI"oCD;Et0}}$LceILH-H9v"ўDeċEELuMHcUHH9vОLceLInECDLuMHcEHH9vОLceLItnECD;]HEun}~hHcEHXHH-H9v`ОAHEL]HELMuОH5lpM,$LLDAx H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuU|HEHcHPHcEH9}UuH}AHELppH]HEL`pMu^ϞH5oM,$L;HLDALeM$HcEHXHHH9v+ϞHI$lE|HELppH]HEL`pMuΞH5aoM,$L赎HLDAH]LeLmLuL}H]UHHd$H]LeLmH}u|[HEHcHPHcEH9|CLeM$HcEHXHHH9vLΞHI$ lA|} E_LeM$HcEHXHHH9vΞHI$kIcDHXHH-H9v͞]EH]LeLmH]UHHd$H]LeLmH}u|HEHcHPHcEH9}uH}kECLeM$HcEHXHHH9v;͞HI$jADEEH]LeLmH]UHHd$H]LeLmH}u|HEHcHPHcEH9} ECLeM$HcEHXHHH9v̞HI$SjADEEH]LeLmH]UHHd$H]H}uHcEHXHH-H9v,̞HEH0Hu负H]HxEH]H]UHHd$H]H}HuUHMLELMHE8HEff=sf-{vf-tkf-f-qHEHsHH-H9vc˞H}0'HEH@0HEH}.'HEH@0۶HEHEHp H}вDE̅~nHc]HHH-H9vʞH}AE0HEH1u̿4HHEH|HE`HEHHcX HHH-H9vMʞH}AE01ɺ!HEH@0ߵHEH]H]UHHd$H]H}HuHH=qH|uHEH]H3H=q|H3HEHH}%H]H]UHHd$H]H}ЉuUMDEDMHEHcHcUHHH-H9vCɞDMDEMUH} H]H]UHHd$H]H}ЉuUMDEDMHc]HHEHU0HuHcEHHH-H9vȞDMDEMUH}H]H]UHHd$H]H}HuUMHcEHXHH-H9vUȞHEHHuݛHEHHEWH}}uCH}Hu莨HUHEHHEHB!H}Hu}HUHEHHEHBH}?}tH}"|HcHcUHH9H}}aH}}PH}{HcHcUHH93HEHHx8!HEPHEH0HEHHEHHu賨HUHEHHEHB&fDH}Hu|HUHEHHEHBH}_|tH}B{HcHcUHH9|H}9|H}{HcHcUHH9th{H}7z;EHEHHx8tjHEPHEH0HEHHHuHӧHUHEHHEHBH}{tH}zHcHcUHH9vHEHH]H]UHHd$H]H}uUыUH}HuGH]H;{EH]H]UHH$@HHLPLXL`LhH}uUMH}KHHH=>q9xH]Hu E+uH}uH1ҾHE̅u EEuH}TuHD}LuE1HpHxH]HuĞH5qHEL LHxpELDA$E;E|2Hc]HHH-H9viĞ]Ȁ}uAE8E;E}0HcEHXHHH9v.Ğ]ȋE;EEȉE܋EHHLPLXL`LhH]UHH$PHxLeLmH}HHH=qvH]HEKuH}1ɺcE̅ uH}sH1ҾHEEDHEHMЋUHuAE0}~UЋuH}ukD$HEHD$ED$E$HcEHXHH-H9vžHEHDMDEMHuTuH}HcEHXHH-H9vxž]ЋE;E)HcEHXHH-H9vIž]HELhpHEL`pMu žH5oI$H遝L;EwH}HxLeLmH]UHH$HLLLH}HuЉUMDEDMHEHHHmHcHH}1H}4HHH='q"tH]H}}E}}EHcEHXHH-H9vHEHHu胔HUH=S p~wHEH=v*p5HEHUH=="pHEHxH8ĎHlHcH0}wWfDHUHXH}D|uOd;E}DH}H -yH HEH(HEH}nutHcUHcEHH9tHc]HHH-H9vɿ]H}-u } 'H}H xH HEH(HEH}tt HExXuH}tHUHXH}FlHcUHcEHH9~EDžH}su Dž|%u5HuHHH}sXdDHZH}H wH HEH(HE+DH}H wH HEH(HEH}st HExXuH}sHXH}E|%u(HuHHËXdE11HYHXH}~H}*tHuH}ytH}UHuH}sH}xUu&H}H8tH8HEH@HEH}EUuH}E;E~5EE-HuH}UH} Ut=HEHEHEHEH}Tt Hc]H}SHcHHHcUH9}EHDž@H5pH@H}Ⱥ>EELMLEU1ɾHSEH}}| uH}EPpH5QpH}谓HHHtqEH0H]UHH$HLLLH}ЉuUMLELMLHHUH@HEHDž0HxH8~lHJHcHU؅EEE{H}oREȋEEHc]HHH-H9v杞]H}QEHuH%HEЋ@;EHEЋUȉPEHpHEH@HU0H0躮H0HEHxHHUB(H}K;Et6H}KHcHcEH)HH-H9v֗H}E;E}7H}H CMH HEH(HEH}MthH5 pH05HEHtfjEHLLLH]UHHd$H}HuHE@H}HuMH}qKEHuHEHx{H}_Lt"H}HunLHUHEHHEHB$HEHxHu8xHUHEHHEHBHEH@Ѓx|HEH@Ћ@;E~HEH@ЋU܉PH]UHHd$H]H}HuHE~ HE_HEH]H3H=HoIHHcX HHH-H9v]H}t uH}2H]H]UHHd$H]LeLmH}HuUMHEHEHE;;E}}DHE;E~5HEHcHcEHHH-H9v:HE}~DHE;E~5HEHcHcUHHH-H9vHEHELhpHEL`pMu謔H55oI$HTL}}WHc]HHH-H9v胔HcEL`LH-H9vcDH}A譯6HcEHXHH-H9v+ދUH}AeH]LeLmH]UHHd$H}HuH}H]UHH$`HhH}HuUMDEDMH}ѝHUHxaH@HcHpt}}5Hc]HHH-H9vZڋMuH}A覮9}~MU؋uH}AyHEHMUuE0rvdH}НHpHteHhH]UHHd$H]H}uUHcEHXHH-H9v詒HEHUH}H]H]UHHd$H]H}uUH}@HHH=3q.EH]Hu EiHc]HHH-H9vދUH}13HcHEHu1HcHHH-H9v֑]EH]H]UHH$pHpLxLLLH}Hu؉UMDEHEHEHDžH8H_H=HcHH} HHH=qCH]HDžlDžpEHEEE}t E2LmH]Hu蘐H5qL#LvPLA$EHc]HHHH9vwދUH}11E9EnHc]HcEH)HHH9v7]}uH}~@H1ҾHEuH}]@INjEHH`H1HAMLMu裏H5̦qL3LOLDDHAuH}?HËUH EuH}?INjEHEHL`ALLMuH5.qL3LNHDL拕DAfHcEHHH5pHH}B.HcEHHH5pHH}.uHE@Hc]HHH-H9v`]UuH}1.EUuH}1$/^EEuH}z>IċU1LHcHHHH9vꍞ]FEEfDmuH} >INjEHDuL`1LLMunH5qHL LEMHLDDA$}u Ej}uEEEEHc]HHHH9v]LeHcUHH9v⌞Hc]HH}*IcHHHH9v豌LeHcEHH9v蕌LcmLH}U*CH]HcUHH9veLcuLH}%*LeHcEHH9v9LcmLH})BC;ALeHcEHH9vHc]HH})IcHHHH9v΋LeHcEHH9v貋LcmLH}r)CHc]HHHH9v}]ȋE;EE}LeHcUHH9v;Hc]HH}(IcHXHHH9v LeHcUHH9vLcmLH}(C}5Hc]HHHH9v譊ދUH}1,tE;E} }H}H`HHE؋UP`HELhpDuLHEHXpHu%H5oL#LJLDLA$HHEHxHNȝEuDHcpHclH)HclHPHEHpHHeڝHHEHxPȝHcEHXHH-H9v衉HE؉XXHU؋EB\MUHPH}HP>HU؈B@HP?HU؈BAZHǝH54pH}~H5$pH}~HHt\HpLxLLLH]UHHd$H]LeLmLuL}H}uHExHUBHEE}EEHc]HHHH9vkHEHxЋU1)LeMl$HcEHH9v4LcuLI|$%C\H]LcHcEHH9vLcmLH{%KcHEH@HUuHcHHHH9v豇LeMl$HcUHH9v萇LcuLI|$O%C\H]L{HcUHH9vZLcuLH{%H]LcHcEHH9v*LcmLH{$CCE;EvHc]HHHH9vHEPHEHx1H(HEL`1Hx$A$HEHX1Hxl$HcHEH@HHEPukHcHHH-H9v]HEL`1Hx$A$HEHX1Hx$HEL`1Hx#A$H]LeLmLuL}H]UHHd$H]H}uUEH}蹫HHH=q8H]HEEHc]HHH-H9v蔅H}11%E܅HEHUHuȱYH}:HcUHcEHH9Hc]HHH-H9v]܀}ld@Hc]HHH-H9v脞ދUH}ھu EEHc]HHH-H9v諄]܃}}Hc]HHH-H9v肄]aEEHc]HHH-H9vRH}113%~#Hc]HHH-H9v]}"Hc]HHH-H9vH}11c%EHc]HHH-H9v訃]Hc]܋uH}11#HcH)HH-H9vs]܅|5Hc]܋uH}11H$HcHHH-H9v:]܃}~ }_uH}11$~#HcEHXHH-H9v]EH]H]UHHd$H}HuUH}/HEHxpHuH]UHHd$H]H}uEHEHUHu0 VH}7HuH}N81@HEHEHEHEH}Hu+8HEHEHEHEH}7tHc]H}5HcHHcEH9tHc]HHH-H9vс]EH]H]UHH$pH}uHu1HxkH5|oH=oDEHx1kHxߞH]UHH$pH}uHu1Hx H5oH=}oDEHx1 趁Hx*ߞ襁H]UHWH]UHH$HLLH}HuHUMLEH}u.LmLeMu胀H5pLHa@LShHEH}HUHxNH,HcHpNHEH=W49HUHH=W9HUHH}19HE؋UP(HEHUHP0LmLeMuH5pI$H?LLmLeMuH5pI$Hi?LHUHHE@`HE@dHEHUHP8HE@HHE@\HE@XHE@@HE@TH}@HEH}tH}tH}HEHjPHpHtlHXHMH>+HcHu#H}tHuH}HEHP`PQPHHtRRHEHLLH]UHHd$H]LeLmH}HuH~.LmLeMu ~H5 pI$H=LHE1HǀHHM1HApHQxHEHx )7HEH7HEH 7HEH6H}1.dH}tH}tH}HEHPpH]LeLmH]UHH$pHpLxLmLuH}HuHH=$oH/rH}S HUHuQKHy)HcHU"H]H3H=o/HLh HEHX HEL` Mu|H5oM4$LHUEBHHEHlH}HE@lt H}7HuH}eDH}lHEHtEH]LeH]UHHd$H]LeLmH}HHcPDHEHc@\HHH-H9vr]H}HcHHH-H9varEfEHEHx ultmHEHx uSIHEHLHEPPuLLceHEHx u#ILHcILH-H9vqDe;]mHE`lH]LeLmH]UHHd$H}HHx tHEHx ̂EEEH]UHHd$H}HH=DnHlH]UHHd$H}HuHEx`HExd~ HE@hHE@hHExUtQHE@`HUHu?H6HcHUu H}BHE@`HEHtCHEHHulHEHtHEHHuHEH]UHHd$H}HuHExd~ HE@iIHE@iHEHHu/lHEHxptHEHxxHuHEPp HuH}H]UHHd$H]H}HcGdHXHH-H9voHEXdH]H]UHHd$H]H}HHcXdHHH-H9vLoHEXdHExdu.HExit HuH}HExht HuH}H]H]UHHd$H}HuUMH]UHHd$H}HuHtMHEH@ H;Et?HEHx t HEHx 'HUHEHB HEHH HUHUHAhHQpH]UHHd$H]H}HHx sHEHx HcHHH-H9v%n|6]؃EfDmHEHx u,HHa(}HEHx ^~H]H]UHHd$H}HG0H]UHHd$H]H}HHXhHH=oi H]HH]H]UHHd$H}HH@PH]UHHd$H}uHE;EtHEUH}@08H]UHHd$H}HH@H]UHHd$H]H}HHcPtHEHcHHEHcHHH-H9vl]H]H]UHHd$H]LeLmLuH}HuHELH]HELMu+lH5LpM4$L,HLAH]LeLmLuH]UHHd$H}HuHEHHukH]UHHd$H}uHE;EtHEUH}@0H]UHHd$H} H]UHHd$H]LeLmH}IH]Hu6kH5oL#L+LA$H}>EH]LeLmH]UHHd$H]LeLmLuH}uUMHE@p;EuHE@|;Eu HE@x;EtTHUEBpHUEB|HEUPxLmH]LeMurjH5oM4$LO*HLAH]LeLmLuH]UHHd$H]LeLmH}IH]HujH5oL#L)LA$EHE@t;EtHEUPtH}@0H]LeLmH]UHHd$H]LeLmLuH}@uHE:EtoHUEHE@tEHEt H}#HE@t;Eu6LmH]LeMu1iH5oM4$L)HLAH]LeLmLuH]UHHd$H}@uHE:EtHEUH}@H]UHHd$H]UHHd$H}uHE@t;Et0HEt HE@PtHEUPtH}@0H]UHHd$H}HuHEHtHEHHuHEH]UHHd$H}HH=nH,H]UHHd$H}uuHEHtHEHuEEH]UHH$HLLH}HuHUH}u.LmLeMuJgH5oLH('LShHEH}HUHuq5HHcHU+HEH=pZHUHHEH2HEH2HEH2HEHHUHHHHLmLeMu^fH5oI$H;&LHUHHEƀHEƀHEǀHEǀHUH}1FzHEH}tH}tH}HEHZ7HEHtlHhH( 4H1HcH u#H}tHuH}HEHP`786H Ht99HEHLLH]UHHd$H]H}xH}HUHHH}fHHHUHHUHEHHB`H]H]UHH$pHpLxLmLuH}@uHE@PHEHHUHu2HHcHUHEHxUtHEHLmH]LeMudH5oM4$L#HLA}t6LmH]LeMucH5RoM4$L#HLAD5HEHDHEHt6HpLxLmLuH]UHHd$H]LeLmLuH}HuIH]LeMu:cH5oM4$L#HLAH]LeLmLuH]UHHd$H]LeLmH}HuH~.LmLeMubH5EoI$H"LH}1yHEHHEHH}tH}tH}HEHPpH]LeLmH]UHHd$H]LeLmLuH}HuHH=oHH]H3H=oHHEHUHE芀HUHE@tBtHUHE芀HELHEHHELMuaH5oM4$Lw!HLALmH]LeMudaH5oM4$LA!HLA HuH}eJH]LeLmLuH]UHH$`HhLpLxLuL}H}HuHUHMDEDMHEЀ HEHx ucEHEEHEHEHELuLmLeH]Hu`H5oL;Lh LLHULDEDMAHEЃHEHEHEHEHEЋ@pEHEHcPpHEHcHHH-H9v`]HEHp HEH(LH}ȾHHEH(BLmLuL}H]Hu_H5NL#L~LLLA$xHEЃHEHEHEHEHEHcXpH}{HcHHHH9vL_]HEHcHc]H)HHH9v_]HEHp HEH(MH}ǾHHEH(ALmLuL}H]Hu^H5NL#LLLLA$xHEHcHcUHHH-H9vs^]HEHcHc]H)HH-H9vF^]EHEEHEHEHEL}LuLmH]Hu]H5loL#LLLHULDEDMA$HhLpLxLuL}H]UHHd$H}Hu0H]UHHd$H}؉uUH]UHHd$H}uH]UHHd$H}؉uUH]UHHd$H}HuHUHMHEHHEHHHUH}UH]UHHd$H}HuHU0H]UHHd$H}HHEHvHEHfH]UHHd$H]LeLmLuH}EHEu^HE*@tYEH-HH-H9v6\LmLeMu\H5}oM4$LLA H}H]LeLmLuH]UHHd$H}uUHEHt%HEHMUHuM1E1HEH]UHH$HLLLLH}HuHUH}u.LmLeMu[H5-oLHLShHEH}HUHuC)HkHcHU HEHUH}1cHEHTHEHH}ILuLMMu{ZH5,oM,$LXHLA HtZH}]ILuLMMu6ZH5oM,$LHLA HH=o HUHHEHHu(HEH}tH}tH}HEHL+HEHtlHhH('H#HcH u#H}tHuH}HEHP`*,*H Ht--HEHLLLLH]UHH$HLLLLH}HuHUHMH}u.LmLeMuXH5oLHLShHEH}#HUHu&HHcHxzHEHUHEHLuH]M1LeMu5XH5FoM,$LLHLAHEH}tH}tH}HEHv)HxHtlH`H "&HJHcHu#H}tHuH}HEHP`)*)HHt++HEHLLLLH]UHHd$H]LeLmH}HuH~.LmLeMu WH5oI$HLHEHH@ HE1H@hHHpH}1aH}tH}tH}HEHPpH]LeLmH]UHHd$H]H}HuH]H3H=oh H HUHHHHH]H3H=o6 H HEHHHHHHuH}scH]H]UHHd$H]H}HHXxHH=oH]HH]H]UHHd$H]H}uH}3cHHH=oH]HH]H]UHHd$H}uHUHЋuH}HcH]UHHd$H]LeH}HuUH}fHcHHH-H9vUqEDE܃E܉H}$HH}t<}uuH}HE1LceILH-H9vTDe;]HEHEH]LeH]UHHd$H]LeH}HuEH}eHcHHH-H9v8T|YEDEEH}DHH}t$HcEL`LH-H9vSDe;]EH]LeH]UHHd$H}HuHUHMDEDMcH]UHHd$H}~cH]UHHd$H]LeLmH}IH]Hu&SH5OoL#LLA$HHUHHEHEHUH]LeLmH]UHHd$H}HuHEH@8H;EtBHEHx8tHEH@8H@HEHUHP8HEHx8tHEH@8HUHPH]UHHd$H]LeLmLuL}H}HuHUHMHEHc@ LcmI)H]LeMuRH5;oM4$LHAHcHXLHHHH-H9vQ1ELmH]HuQH5oL#LLA$Hc@8HXHH-H9vQAHEHc@ LcuII)H]LeMuNQH5woM,$L+HAHcHXLHHHH-H9v-QDsEЉ$HEHx8DMHMLEHUHu< H]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUMHEHPHUH@HE؃}RLmLeMufPH5oI$HCLLcHELp ]HEL` Mu&PH5OoM,$LLAH H HcHcUHLeLmMuOH5 oMuLLAHcH)HLeLmMuOH5oMuLLAHc@XHLHH-H9vOLmLeMuSOH5|oM4$L0LAiEԃ}NLmLeMu OH53oI$HLLcHELp ]HEL` MuNH5KNoM,$LLAH HcHcUHLeLmMuNH5oMuLgLAHcH)HLeLmMuMNH5voMuL*LAHc@XHLHH-H9v-NLmLeMuMH5$oM4$L LAAE܋E;E}E;E}H}FHHu0H]LeLmLuL}H]UHHd$H]H}HuHH}H H]H3H=~oIHHUH@8HB8H]H]UHH$HLLH}HuHUMLEH}u.LmLeMuLH54oLH LShHEH},HUHxH/HcHpHELEMHUH}1HE@Pu.LmLeMuPLH5oI$H- LHEH}tH}tH}HEHHpHtlHXHDHlHcHu#H}tHuH}HEHP`@6HHt HEHLLH]UHHd$H]LeLmH}HuH~.LmLeMuDpHuIH5-DpIH LLLHEHL=%<IMLMuIH5CpL#Lp LLA$0HELx AL-5@pH.@pHuLIH5@pIH* LLLHEHL=Ͷ<IMLMu IH5?pL#LLLA$0HELx AL-moHfoHuHH5UoIHLLLHEHL=u<IMLMuHH5oL#L`LLA$0HELx AL-m6pHf6pHuLAHEHcPHEHc@\HHHH9v7B]H}HEHULc}LcuHELh0HEHX0HuAH5oL#LLA$ HcLK7HHH9vA]HEHEHEHEEEH}HcHHH-H9vAHEE$EEE;EHEHx upEEHc]HEHx uIILHcHHHH9v@ߋu5EHEHx uINjEHHEHPLuHEH`HEHXMLMuq@H5oL+LOLHXLH`DPDHAE;EH L(L0L8L@H]UHHd$H]LeLmLuL}H}HuHEHEHx L}ILMMu?H5&oM,$LHLA(EH]LeLmLuL}H]UHHd$H]LeLmLuL}H}؉uUMDEEH}؉HU؉HE؋HEHx cUHUЋUHUȋUHUDuIMLMu>H5`oL+LLDUMDEA0}uUuH}iH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUMHEHEHx UHU؋UHUD}IMLMu*>H5oL#LLDUЋMA$8H]LeLmLuL}H]UHHd$H]LeLmLuL}H}؉uUMDEHE؋HEHx UHUЋUHUȋUHUDuIMLMuo=H5oL+LMLDUMDEA@H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHUHMHEpH}SEH}W;E~bHEHx uHEHEHELuL}LmH]HuHEƀE@EHEUDŽHEUDŽHEUDŽ0}rHEǀHEǀHEǀHEǀHEǀHEǀH}; H]UHHd$H}HEƀHEƀH]UHHd$H}HE@EEH}tHMU􉄑uH}HUM􉄊uH}HUM􉄊 uH}6HUM􉄊0}rHEƀH]UHHd$H]LeLmH}HuUMDEHE@;Ed}W}uHUEHUEB9HEHcPHEH@HtH@HH9|-HEHc@HHEH5EoHMHEHxLmMeH]HcCHH9vkHc[HI}+Hk UALmMeH]HcCHH9v,Hc[HI}칝Hk UATLmMeH]HcCHH9vHc[HI}謹Hk UATHEHc@HXHH-H9vHEXH]LeLmH]UHH$`HhLpLxLuL}H}HuUMHE@EHEHcXHHHH9v*]EEHEEEELeI\$HcUHH9vLcmLI|$蚸Ik DE;ELHcEHXHHH9v]ԉ](DHc]HHH-H9vh]Ѓ}~BLeI\$LcmILHH9v7LI|$Ik D;EE;EE;E!LeI\$HcUHH9vLcmLI|$裷Ik HHUDEHcUHcEH)Hk ILeI\$HcELhLHH9vLI|$IIk L$LuI^HcUHH9vQLcmLI~Ik H<LLNLeI\$HcEHH9v LcmLI|$̶Ik HEHEDzH]L{HcEHH9vLceLH{脶Mk H]LcHcUHH9vLcmLH{PIk IK7ADCD7E;E^EԉEHUEԉBHEE=u }uEE܃}}uEE܋}E=v}Z%EE=v}뫼%EE=v}|%E]̅EfELmMeHcEHH9v|LcuLI}HEHUHEHEHEHEIHcEHcUHHHH9vHcEHcL$LHH9vrDu}B>HEHUHEHEHEHEHcHcEH)HH?HHHH-H9v]HcELhHc5LLH-H9vLceHcLLH-H9vHcEHcUHHH-H9vًuDDn=HEHUHEHEHEHEH= JHEHEHEL}LuHEHELmH]HuH5eNL#LLLHULEMHMA$PH`LhLpLxL}H]UHH$HLLH}HuHUH}u.LmLeMuzH5ۣoLHXLShHEH}HUHuĝHɢHcHU{HEHUH}1H}@WH}@[H=?FH]UHHd$H]LeLmLuH}HuHEHx`Hu;EHEt H}LmH]LeMuH5oM4$LHLAEH]LeLmLuH]UHHd$H]LeLmLuH}uHEHx`u;LmH]LeMuH5oM4$LwHLAH]LeLmLuH]UHHd$H]LeLmLuH}H}1HH躩HEHx`}5HELh`HEHX`HuH5HEL#LݮLA$LmH]LeMuH5-oM4$L詮HLAH]LeLmLuH]UHHd$H}HHx`4H]UHHd$H}HuHEHx`HuN;H]UHHd$H]LeLmLuH}uUHE耸t*H\<H=MFHHH5HFHEHx`UuS;LmH]LeMuH5oM4$L蚭HLAH]LeLmLuH]UHHd$H}HHxhHuH]UHH$PHXL`H}HuHDžhHUHuqH虙HcHUHEH@ HpH[<HxLeMuH58oI$H謬HHh轫Hh1Hh4HhHEHn[<HEHpH}1ɺ.HhJ*HEHtlHXL`H]UHHd$H]UHHd$H}uH}HEHxhUH]UHHd$H}HuHEH;EvHUH;Us1H]UHH$HLLLH}HuHUH}u.LmLeMucH5̖oLHALShHEH}qHUHu芹H貗HcHUHEHUH}1H}@@HuH=MoHUHBhLmLeMuH5/oI$H裪LHELhhH]HEL`hMuH5oM4$LiHLAHEH}tH}tH}HEHлHEHtlHhH(H觖HcH u#H}tHuH}HEHP`{qH HtP+HEHLLLH]UHHd$H]LeLmH}HuH~.LmLeMulH5ՔoI$HILH}1HEHxhHuHEHxhEH}tH}tH}HEHPpH]LeLmH]UHHd$H}HGhH]UHHd$H}HGH@H]UHHd$H]LeLmH}HLhHEHXHu~H57FL#L\LA$HH-H9vi]H]LeLmH]UHHd$H]LeH}HuHE@ HEHtH@HXHH-H9vLeH}6LH}a H]LeH]UHHd$H}HH HEHuHEx!tEE HEEEH]UHHd$H}@uHUH} HE}@!H]UHHd$H]H}HuHE@ HEHxHuR%HEHXHtH[HH-H9v]HUH}O H]H]UHH$HLL H}HuHu.LmLeMu_H50oLH=LShHEH}HUHu膴H讒HcHUuHHEH= FHUHBHEH}tH}tH}HEHVHEHtlHpH0H-HcH(u#H}tHuH}HEHP`茸H(Htֹ豹HEHLL H]UHHd$H]LeLmH}HuH~.LmLeMuH5͘oI$H٤LHEHxCH}1H}tH}tH}HEHPpH]LeLmH]UHHd$H}H=;ouH=zS<H&oHoH]UHHd$H}H= ouH=zS<mHoHoH]UHHd$H}H=ۜouH=jS<-HƜoHoH]UHHd$H]LeH}HuLeMuH5zoI$H膣HHH}"EH]LeH]UHH$HLLLH}HuHDžhHUHx耱H訏HcHpEH}HEH@LeMuH5oI$H輢H4HH}XLeMuH5soI$HHHHEHPH}nEH}rHUHBHEHxt3H}E܅~HUHcEHB@ HEH@HEHxEH}Hhy~HhHEHxE HEHxrHEHXHxp0HEHXH}HEHEH@HtH@Ht$H}tHEHPHtHRHEHcH9tHE@ LeMuVH5'oI$H3HHH}ωHUB!HEx!LeMu H5ݔoI$H頜HHH}腉cH=F왝HEHPHH8HcHu9LeMuH5]oI$HiHaHHUH}l챝HHtRHH蘮HHcHu H}i褱HHt胴^LmLeMuߝH5FI$HɟLHuGLm1LeMuߝH5oFM4$L蓟HLAH]H}ٯ<C!H} HhYHpHtxEHLLLH]UHH$pHpLxLmH}HuHrfHUHuPHxHcHUJHEx tHEHxtHEHpH}yHELhHEL`MuޝH5RFI$HvLHH-H9vޝLmMuWޝH5(oMeL4LHHEH@HPH}bbEHEx!LeMuޝH5ԑoI$HHHHΖoH}bLeMuݝH5oI$H蟝HHHoH}aH}!eHEHt蓰EHpLxLmH]UHHd$H}HHx臹HE@ HE@!H]UHHd$H}fuEH}HEEH]UHHd$H]LeLmH}fuHEHEx HEH@H@HEHELhHEHXHuܝH5LFL#LqLA$HEHE8@HEff;EuHEHHHEHEHEHcHEHEH}uHEHHH;EvH}tDHEHc@HEH;Ev2HEHK<H=n2HH5H0HEH]LeLmH]UHHd$H}fuEEH}HEHtHmHEEEH]UHHd$H]LeLmLuH}fuHUMHELhHEHXHu۝H5FL#LLA$HEHcEHHXHHH9vڝH]HHH9vڝHUHEHHELhHEL`MuڝH5RFM4$LvLHAHEH@H@HUHHEHfEfHEHUЋEHEHcUHuH}t}H]LeLmLuH]UHHd$H}HuHEHxHu 骜uHEHuHxHH]UHHd$H}HuHEHx(Hu 虪u_HEHuHx(HHEHp(HEHxH HU裩Hu HUH='I<꩜HEHxhHuйHH]UHHd$H}HuHEHxHHu u_HEHuHxHHHEHp(HEHxH HUHu HUH=H<ZHEHxhHuйHH]UHH$HLL H}HuHu.LmLeMu_؝H5poLH=LShHEH}HUHu膦H讄HcHUuCHEH}1 H}HEH}tH}tH}HEH[HEHtlHpH0 H2HcH(u#H}tHuH}HEHP`葪H(Ht۫趫HEHLL H]UHHd$H}HH5G<Hx(HHEH5G<HxHHHEH5#G<HxHHEHp(HEHxH HUHu HUH=F<HHEHxhHuعHH]UHH$pHpLxH}HuUH}HUHu蠤HȂHcHUH]HtH[HH-H9v$֝]}|HcEHPHcEH9} EE;EHEHcX$HHH-H9v苜HELc`,HEHc@(I)HEHc@,I)LH-H9vUDHuH}HE@ HE@ HEH@HEHEH@HEH@HEHEH@HEH}tAHEHcP$HEHc@$HHH-H9vϛHUHuH}hHEHcP$HEHc@$HHH-H9v莛AH]L}LeMuUH5RoM,$L2[LHDAHEHcX$HHH-H9v/HuH}HEHcP,HEHc@,HHEHc@(HHH-H9v隝HEP$HuH}HEHcX$HHH-H9v谚HuH}1HEHcX$HHH-H9v~HELc`,HEHc@,I)HEHc@(I)LH-H9vHDHuH}HE؀x  HE@ HE@ HE؀x u HE@ HE@ HE@ HEH@ HXHHH=vЙHEX HEx HEx uHuH}xHEx +HEH@HEHEH@HEHtHEH$HUHuH}AHEDx$LuH]LeMuH5PoM,$LXHLDAHEHcX$HHH-H9vHEHcP,HEHc@(HHEHc@,L$LH-H9v还DHuH}}HEHcX$HHH-H9v芘HuH} HE@ HE@ ?HEH@HEHEH@HEHEH@HEHEH@HEH}tAHEHcP$HEHc@$HHH-H9vHUHuH}PhHEHcP$HEHc@$HHH-H9v—AH]L}LeMu艗H5OoM,$LfWLHDAHE@,EHEHcX$HHH-H9vYHEHc@,HcUHHEHc@(L$LH-H9v&DHuH}HEP$HuH}HEHcX$HHH-H9vݖHuH}^HEHcX$HHH-H9v論HELc`,HcEI)HEHc@(I)LH-H9vyDHuH}7HEx | HE@ HE@ HEx u HE@ HE@ HE@ H]LeLmLuL}H]UHH$pHxLeLmLuL}H}HuHLHEx >HEx 0HEH@HEHEx }H} HEH@H;Eu*HEH@ HXHHH=v\HEX (HEHX HHHH=v2HEX HuH}HEx HEH@HEЀx sHEH@HEH}tHEH$HUHuH}*AHEDx$LuH]LeMu芔H5LoM,$LgTHLDAHEHcX$HHH-H9vdHuH}HEHcX$HHH-H9v2HELc`,HEHc@(I)HEHc@,I)LH-H9vDHuH}HEH@ HH)HHH=vÓHEX HEH@ HXHHH=v蛓HEЈX HuH}HEH@HEH@HEHEH@HEH}tAHEHcP$HEHc@$HHH-H9v/HUHuH}|hHEHcP$HEHc@$HHH-H9vAH]L}LeMu赒H5FJoM,$LRLHDAHEHcX$HHH-H9v菒HuH}HEHcP,HEHc@,HHEHc@(HHH-H9vIHEP$HuH}HEHcX$HHH-H9vHuH}HEHcX$HHH-H9vޑHELc`,HEHc@,I)HEHc@(I)LH-H9v訑DHuH}fHEȀx  HE@ HE@ HEȀx | HE@ HE@ HE@ HuH}IHEH@HEx rHEH@HEH}tHEH$HUHuH}cAHEDx$LuH]LeMuÐH5THoM,$LPHLDAHEHcX$HHH-H9v蝐HEHcP,HEHc@(HHEHc@,L$LH-H9vfDHuH}$HEHcX$HHH-H9v1HuH}HEH@ H)HHH=vHEX HEHX HHHH=vՏHEX HuH}<HEH@HEH@HEHEH@HEH}tAHEHcP$HEHc@$HHH-H9viHUHuH}hHEHcP$HEHc@$HHH-H9v(AH]L}LeMuH5FoM,$LNLHDAHE؋@,EHEHcX$HHH-H9v迎HEHcP,HcEHHEHc@(L$LH-H9v茎DHuH}؉JHEP$HuH}HEHcX$HHH-H9vCHuH}HEHcX$HHH-H9vHELc`,HcEI)HEHc@(I)LH-H9vߍDHuH}HE؀x  HE@ HE@ HE؀x | HE@ HE@ HE@ HuH}HxLeLmLuL}H]UHHd$H}uH=CoHHEHcP$HEHcHHH-H9vHEHEHc@,Hc]H)HH-H9v⅝]HEHcP,HEHcHHH-H9v贅HEHE؋@(;EHEHc@(Hc]H)HH-H9vw]HEHcP(HEHcHHH-H9vIHEHEH@HEHt1HEHcP$HEHcHHH-H9vHEH}HEH]H]UHHd$H]H}؉uUHMLELHE1HHEHU@HEH@HEH;}<HPHEH'HEHcP$HEHcHHH-H9v8HEHEHcP$HEHcHHH-H9vHEHE;E}HEHxuOEt*t t-HEHuHHEpHEcHGHER}u HuHlHEH@HE$HE;Eu6HEHcP,HEHcHHH-H9v5HEHE;EHEHcP,HEHcHHH-H9vHEHEHxuIEt*t t*HEHuHHErHEhHLHEZ}u HuHtHEHcP(HEHcHHH-H9vYHEHEH@HEH}HEH]H]UHHd$H]LeLmLuH}HuUHEDhHEHXHEL`Mu躁H5K9oM4$LAHDAHEHHE@B$Hc]HHH-H9v芁HuH} HEHxHujHEHPHE@H}HUHRHEH]LeLmLuH]UHHd$H]LeLmLuH}HuUHEDhHEHXHEL`Mu躀H5K8oM4$L@HDAHEHHE@B$Hc]HHH-H9v芀HuH}HEHxHujHEHPHE@H}HUHRHEH]LeLmLuH]UHHd$H]LeLmLuH}HDhHEHXHEL`MuH5S7oM4$L?HDAHEHtHUHE@B$HELhH]HEL`MumH56oM4$LJ?HLAHEH]LeLmLuH]UHHd$H}HGHEHEHPHE@ĉHEHPHE@HEH]UHHd$H}HuHUHEHBHEH@HUBHEH@HUBH]UHHd$H]H}uUHEH@HEHE@EfDHEHcP$HcEHHH-H9v`~]܋E;EHEHcP$HcEHHH-H9v)~HEX$HcEHcUHHH-H9v}]HEHxt6HEH@HcX$HcEH)HH-H9v}HEH@X$HEH@HEE;E~ HEH@HEH}H]H]UHHd$H]H}uUHEH@HEHE@E7fDHEHc@$HcUHHH-H9v }]܋E;EuHHEH@HEHHEHcX$HcEH)HH-H9v|HEX$E;EHEHcX$HcEH)HH-H9v|HEX$Hc]HcEH)HH-H9vp|]HEH@HEHtEHEHcP$HcEHHH-H9v4|HEX$E;E~ HEH@HEH}H]H]UHHd$H}HuHUHM⋝H]UHHd$H}Hu躋H]UHHd$H}螋H]UHHd$H}~H]UHHd$H}^H]UHHd$H}>H]UHHd$H}H]UHHd$H}H]UHHd$H}ފH]UHHd$H}辊H]UHHd$H}螊H]UHHd$H}~H]UHHd$H}HuZH]UHHd$H}>H]UHHd$H}H]UHHd$H}H]UHHd$H}މH]UHHd$H}@u躉H]UHHd$H}u蛉H]UHHd$H}u{H]UHHd$H}u[H]UHHd$H}Hu:H]UHHd$H}H]UHHd$H}H]UHHd$H}ވH]UHHd$H}辈H]UHHd$H}螈H]UHHd$H}~H]UHHd$H}u[H]UHHd$H}u;H]UHHd$H}H]UHHd$H}H]UHHd$H}އH]UHHd$H}辇H]UHHd$H}Hu蚇H]UHHd$H}HuzH]UHHd$H}u[H]UHHd$H}u;H]UHHd$H}HuH]UHHd$H}H]UHHd$H}ކH]UHHd$H}辆H]UHHd$H}Hu蚆H]UHHd$H}HuzH]UHHd$H}HuZH]UHHd$H}>H]UHHd$H}H]UHHd$H}H]UHHd$H}uۅH]UHHd$H}u軅H]UHHd$H}Hu蚅H]UHHd$H}~H]UHHd$H}HuZH]UHHd$H}Hu:H]UHHd$H}H]UHHd$H}H]UHHd$H}uU؄H]UHHd$H}u軄H]UHHd$H}HuU藄H]UHHd$H}HuzH]UHHd$H}HuHUHMRH]UHHd$H}HuHU&H]UHHd$H}H]UHHd$H}H]UHHd$H}@uʃH]UHHd$H}讃H]UHHd$H}莃H]UHHd$H}nH]UHHd$H}NH]UHHd$H}.H]UHHd$H}H]UHHd$H}HuUMDEDM܂H]UHHd$H}HuUMDEDM謂H]UHHd$H}HuHUHMDE~H]UHHd$H}HuHUVH]UHHd$H}HuHU6H]UHHd$H}HuHUH]UHHd$H}HuHUH]UHHd$H}HuHUցH]UHHd$H}HuHU趁H]UHHd$H}HuHU薁H]UHHd$H}HuHUvH]UHHd$H}HuHUVH]UHHd$H}HuHUM3H]UHHd$H}HuHUH]UHHd$H}HuHU思H]UHHd$H}HuHUƀH]UHHd$H}HuHU覀H]UHHd$H}HuHU膀H]UHHd$H}HuHUfH]UHHd$H}HuHUFH]UHHd$H}HuHU&H]UHHd$H}HuHUH]UHHd$H}HuHUH]UHHd$H}HuHUH]UHHd$H}HuHUH]UHHd$H}HuHUH]UHHd$H}HuHUMcH]UHHd$H}HuHU6H]UHHd$H}HuHUMH]UHHd$H}HuHU~H]UHHd$H}uUM~H]UHHd$H}~H]UHHd$H}u~H]UHHd$H}uUh~H]UHHd$H}uUH~H]UHHd$H}u+~H]UHHd$H}Hu ~H]UHHd$H}HuUM}H]UHHd$H}Hu}H]UHHd$H}HuUM}H]UHHd$H}HuUH}sHUHu;HHcHUu9}>H}HEHt@H]UHHd$H}Hu|H]UHHd$H}Hu|H]UHHd$H}u|H]UHHd$H}u|H]UHHd$H}~|H]UHHd$H}u[|H]UHHd$H}Hu:|H]UHH$`H`H}HǀHhH}t@HUHEHE܉HUHEHHEHE{HUHEHEHEHcHEHcHH)HEHcHHH-H9vYkHEHUHE@HEƀH`H]UHH$HLL H}HuHu.LmLeMujH585oLH*LShHEH}HUHu8HHcHUzHEH=of^HUHBxH=oM^HUHHE@HE@HEH}tH}tH}HEH;HEHtlHpH0/8HWHcH(u#H}tHuH}HEHP`+;=HEHLL H]UHHd$H]LeLmH}HuH~.LmLeMuiH53oI$H(LHEHxxc"HEHS"H}1(#H}tH}tH}HEHPpH]LeLmH]UHHd$H}HuHUHMDEDMHUHEHB HEHUHP(HEHUHP0HEЋUPHEЋU؉PH]UHH$@H@LHLPLXL`H}uHUHDžxHUHuI6HqHcHUHEHPHHpHUHB HhL}LuDmHEHX HugH5gnL#Lt'DLLHhLpA$HxnHEHx(HEHxHxHEHx8HHEHX8HtH[HHH-H9v gHEX@HEHc@HHcUHHHH-H9vfHEXHHE@XHUE䉂HEǀHEǀHEǀHEƀHEǀHEǀHEǀHUHEBD7H5wnHxHEHt<9H@LHLPLXL`H]UHH$`HpLxLmLuL}H}HuHEu H}HEHU@H;B@}PHEHU;BH~=HEt0HEǀHMHUHHHEu!HEǀHEǀHEmHEtHEHU;~JHEuHEHU;}'HE|HEHU;HEHH$HEHc@DHXHH-H9vdHEHEHHUHUHHEHELDHELh0HEHX0HudH5nL#L#LLDLELMȋuA$XHE}+HEtHEǀHEǀHE}HEǀHEtZHEHU@H;B@}JHEHc@HHPHEHcH9}.HEHc@HHXHH-H9v`cHEHEH@HEsE$HEHEHuH}1E܀}HEsHEHMHHQ A(\HEHU@;B ~LHEHcPHEHc@ H)HEHc@$HHH-H9vbHEX$HUHE@B HEtHEǀHEHU@ ;BE܀}5HUH;HHHE@HE~HEpHEQHUB,HUHE@B,HE@4HEHcP,HEHc@ H)HEHc@$HHH-H9vaHEX0HE~dHEHU苀;B0}QHEHcP0HEHcH)HEHcX,H)HH-H9vHaHEX,HUHEB0HMHEHP,H@4HEtHEǀHEǀHEƀHUHE@ B8HUHE@ BLeMl$8HcUHH9vYHc]HI|$8LB+$huHEEЋE;E}E;E~ E$gHUHMHBPHHBXHAHB`HAHEHcHcEHXH)HH-H9vXHEXHEHMHHQ A(HEHcHEHc@ H)HH-H9vXHEX(HcEHXHH-H9vXHEX0u}HUB,HEHc@,Hc]H)HH-H9vBXHEX4HEUP8HUHE@,BLeMl$8HcEHH9vRHc]HI|$8lB+$huHeEЋE;E}E;E} E$gHUHMHBPHHBXHAHB`HAHEHcHcEHXH)HH-H9vRHEXHEHMHHQ A(HEHcX HEHcH)HH-H9vQHEX(HcEHXHH-H9vQHEX0u}HUB,HEHcX,HcEH)HH-H9vbQHEX4HUHEB8HUHE@ BH5} oL#LLA$H]LeLmH]UHHd$H}uUHEHx0UuZH]UHHd$H}uHEH@0UH]UHHd$H}uHEH@0UH]UHHd$H}@uHEH@0UH]UHHd$H]LeLmLuH}HuHEH@8H;EtcHUHEHB8HEHp HEHx86HELh0HEHX8HEL`8Mu^=H5 oM4$L;HLAH]LeLmLuH]UHHd$H}HG8H]UHHd$H}HGHH]UHHd$H}HG0H]UHHd$H}uHEH@0UH]UHHd$H}uHEHx0u H]UHHd$H}uHEHx0u H]UHHd$H}uHEH@0UH]UHHd$H]LeLmLuH}HuHEH@HH;EtcHUHEHBHHEHp HEHxH4HELh0HEHX8HEL`8Mu;H5oM4$LkHLAH]LeLmLuH]UHHd$H]LeLmH}uHE@P;Et9HUEBPLmH]Hu ;H5oL#LLA$H]LeLmH]UHHd$H]LeLmLuH}HuHEH@0H;EHUHEHB0HEHp HEHx03HEHx8tBHELh0HEHX8HEL`8MuO:H5oM4$L,HLAHEHxHtBHELh0HEHXHHEL`HMu:H5oM4$LHLAH]LeLmLuH]UHHd$H}uHEH@0UH]UHHd$H}HuHEH@0HUHH]UHHd$H}HuHUHMHEHx8HUHMHu5HEHx0HUHMHuu5HEHxHHUHMHu\5H]UHHd$H}HHp HEHx81HEHp HEHxH1HEHp HEHx01H]UHHd$H]H}HHcXHEHc@PH)HH-H9v8HExEHEHcPHEHc@@HHH-H9vH8ދ}EHEHHEPHEp HEHx8DE5HEHHEp HEHx0DEU5HED@HEHHEp HEHxHU]5H]H]UHH$HLLH}HuHUH}u.LmLeMuZ7H5 oLH8LShHEH}HUHuHHcHUuTHEHUH}10HE@@HE@PHEH}tH}tH}HEHEHEHtlHhH(HHcH u#H}tHuH}HEHP`{ H Ht HEHLLH]UHHd$H]LeLmLuL}H}uUMHUHBHEHBHE؃}OHELh ]HEL` Mu5H5<5nM4$LLAHELmLeMu5H57oI$HcLLcHcEHcUL4H]LeMuE5H5oM,$L"HAHcI)I^LeLmMu5H5oMuLLAHc@XHLHH-H9v4LmLeMu4H5goM4$LLAEԃ}WE;Et@HELh ]HEL` MuZ4H53nM4$L7LAHELmLeMu%4H5oI$HLLcHcEHcUL4H]LeMu3H5oM,$LHAHcI)I^LeLmMu3H5XoMuLLAHc@XHLHH-H9v3LmLeMuU3H5oM4$L2LAE܋E;E}E;E}H}+HHu0AH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUMHEHP0HUD}DuDmHEHX0Hu2H5nL#LjDDDH}A$H]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUMHEHP8HUD}DuDmHEHX8Hu1H5unL#LDDDH}A$HELxHDuDmEHEHEHXHHu1H5%nL#LzuDDLA$H]LeLmLuL}H]UHHd$H}uHUEH]UHHd$H]H}HcG4HHXHH-H9v 1HEEH]H]UHHd$H}uHE;EtHEUH}H]UHHd$H]LeLmH}uHE;EHEUHELhhHEHXhHu*0H5+oL#LLA$HcHHXHH-H9v 0ދ}!HUHELhhHEHXhHu/H5oL#LLA$HcHUHcHHH-H9v/HEXXH} H]LeLmH]UHHd$H}uHE;Et HEUH]UHHd$H]H}uUHUMEEttUHEHcPHEHcHHH-H9v.HE艘HEHcP HEHcHHH-H9vx.HE艘rHEHcXHEHcH)HH-H9v>.HE艘8HEHcXHEHcH)HH-H9v.HE艘H}a H]H]UHHd$H}u}EHE;Et HEUH]UHHd$H}HuH} H]UHHd$H]H}HHcPHEHcHHH-H9vA-HEHEHcP HEHcHHH-H9v-HEHEHcXHEHcH)HH-H9v,HEHEHcXHEHcH)HH-H9v,HEH} H]H]UHHd$H]H}uHEHcHcUH)HEHc@4HHEHcHHH-H9v,]H]H]UHHd$H]H}HuHEHcHcUH)HEHc@4HHEHcHHH-H9v+]HEHcPXHcEHHEHcHHH-H9vl+]HEH]H]UHHd$H]H}HuUHE苀;EHE苀;EEu8HEHc@4HH?HHHcUHHH-H9v*]HEHcHcEH)HUHcJ4HHHUHcHHH-H9v*]EHEHcHcEH)HUHcJXHHHH-H9vH*]Eu3HE@8;E'HEHcX8HHH-H9v *]}}E}}EHEH]H]UHH$HLLH}HuHUHMH}u.LmLeMuv)H5nLHTLShHEH}HUHxH՛HcHp?HEHUH}1"H=mVHUHBPH=dn߽HUHHUHEHBhHUH5=HEHxheH=nHUHH=nHUHEEHUEDŽ}rHEǀHEǀHEǀPHEƀHEǀH}HEH}tH}tH}HEHlHpHtlHXHH@ԛHcHu#H}tHuH}HEHP` HHtHEHLLH]UHHd$H]LeLmH}HuH~.LmLeMu 'H5}nI$HLHEHPHUH5UHEHxhXcHEH(HEHHEHxP H}1!H}tH}tH}HEHPpH]LeLmH]UHHd$H]LeLmH}HuHH}H"H]H3H=n!ٜHHUH@hHBhH]H3H=|n؜HHUH@xHBxH]H3H=Zn؜HHp H}H]H3H=7n؜HHUHHH]H3H=n؜HHUHHH]H3H=nj؜HHUH]H3H=nD؜HHUH]H3H=n؜HHUH]H3H=unלHHUH]H3H=OnלHHUH]H3H=)nלHHUH]H3H=nלHHUH]H3H=n`לHHUH]H3H=n:לHHUEEH]H3H=n לHUHMu싄}rH]H3H=Rn֜HHUH]H3H=,n֜HHULmH]Hu#H5nL#LhLA$H]LeLmH]UHHd$H]LeLmLuH}uUMHUHBHEHBHE؃}HELh ]HEL` Mu"H5p"nM4$LLAHEHcEHcUHHEHcH)HHEHc@XHHEHcHHH-H9v"HEEԃ}E;Et@HELh ]HEL` Mu9"H5!nM4$LLAHEHcEHcUHHEHcH)HHEHc@XHHEHcHHH-H9v!HE%E܋E;E}E;E}H}HHu0H]LeLmLuH]UHHd$H]LeLmH}HLhhHEHXhHu>!H5?nL#LLA$HUB4HELhhHEHXhHu!H5nL#LLA$HcHUHcHHH-H9v HEXXHE@0EHE@8EHE@0HE@8HEx4~NHEHcHUHcH)HUHcJ4HHHH-H9v` 1wHUB0HExX~NHEHcHUHcH)HUHcJXHHHH-H9v 1HUB8HEHx@tDEHE@0;EtM HE@8;EtMEtHEHxHUHuHEP@HEHxPHuH]LeLmH]UHHd$H}HuHUHEHxPHuHUH]UHHd$H}HuHUHEHxPHuHUFH]UHH$PH`LhLpLxL}H}HuHUHMHUHEHB`H}HEHE؋蜫=vH}HE؋;E~KHEHPHUH@HEHE؋EHMLEHuHUH}CHuHUH}YHE؋;E}KHEHPHUH@HEHE؋EHMLEHuHUH}CHuHUH}HE؋;E~KHUHBHEHBHEHE؋EHMLEHuHUH}6CHuHUH}HE؋;E}KHEHPHUH@HEHE؋EHMLEHuHUH}BHuHUH}KHE؋;E]HE؋;EJHE؋;E7HE؋;E$HE؋EHE؋;E}BHEHcHcEH)HUHcJ4HHHcUHHH-H9v]HEHcHE؋}HcHUHcH)HUHcR4HHHUHcJ4HHHHH-H9v,]HEHcHcEH)HUHcJXHHHH-H9v1 EHEHcHcEHH)HUHcJXHHHHHH9vHEHc@8L`LHH9vDEHE؋}EHE؋}EH}E$EHEDmDuL}HEHEHEHEH]HuH5WnL#LڛH}LHUDEDMA$HEH@`H`LhLpLxL}H]UHH$HLLLH}HuHUMDEDMHEHXHHƛHcHHELHELMuH5mI$HٛL@HEHHEHPxHEHp HEHDMDEHEHHEЋB HEHHEЋBHEH@HEH@HEtHEH@HEt9HEHHc@HXHH-H9vHEHXHEt9HEHHc@HXHH-H9vHEHXEHEЋEEHEЀwHEHcHEHcH)HHEHc@4HHEHcHHH-H9v7]ȋE;E E;E|EE;E}EEEEHEH@`HHEЋ|HEH@`LHEH@`LMuH5MM4$L|כLAHHEHx`HEHǾEEHEЋ;E~ HEЋEEEE;EDžtHDžxHEHtHHELhxHEHHELMuH5|jM4$L֛HLA(HELHEHX HEL` MuH5nM4$L{֛HLAHELhh1HEL`hMubH5cnM4$L?֛LA HELhhH]HEL`hMu%H5&nM4$L֛HLAHHMHu›HcHuHZHELhhHEL`hMuH5nI$H՛LHELh HEL` MuzH5nI$HW՛LHx1*HHt_E;E}+=v=H}EEHuHUH}+EE}t?UuH}1HcEHXHH-H9vڋuH}ݴHELHELMuH5)mI$HmԛLHH5%nH}_ HHtnHLLLH]UHH$HLLLHhHHhHBHAHBHAHhH@HcPXHhHc@HHhH@HcHHH-H9vHhXHhH@HcHHH-H9vs\HhH@Lh HhH@HX Hu%H5nL#LӛLA$HcHHH-H9v HhHcXHHH-H9vHhXDHhHc@HXHH-H9vHhXHhHc@Hc\HHcH9pHhHh@BHhH@HcPXHhHc@HHH-H9v(HhXHhHhHBHAHBHAHhH@LhhHhXHhH@L`hMuH5nM4$LћLA0Hhx耞=vHhHx`HhHh@BHhHpHPHhHx]HhHh@BHhǀpHhHc@Hc\HHH-H9vHhH@HHhHPvH"nHhH@HHp8HhHxHhHc@HXHH-H9vHhH@LHhH@LMu4H5mM4$LЛLA0HhH@Lh HhH@L` MuH5nnI$HϛL`=.HhH@Hh;B HhHcXHHH-H9vd`X= uHhH@ЋXHhH@HcHHH-H9v:HhH@HxhHhpDXDddJHhHcXHHH-H9vHhX!HHHHhHhH@HH脨uHhHc@HXHH-H9viHhH@LHhH@LMuH5mM4$L͛LA8HhHh@;B:Hh@HhHh@BHLLLH]UHH$0HXL`LhLpLxH}HE(HEHEH@LhhHEЋX$HEH@L`hMu, H5-nM4$L ͛LA(HEH@LhhHEЋX HEH@L`hMu H5nM4$L̛LA0HEH@LhhHEЋX4HEH@L`hMu H5nM4$Ly̛LA EEfE}uuH}:=tEEuH}AHEH@Lph]HEH@L`hMu H5nM,$L˛LDA8uH}GAHEH@Lph]HEH@L`hMu H5nM,$L˛LDAH}#uTHEHx3HUBHEHU@;B~]HUHE@BHEH@LphAHEH@L`hMu1 H52nM,$L˛DLA8uLHEHxHUBEHEx HEHU@;B HEHU@;BEHEHU@;B}7HEHPHUH@HEHE@ȉEHEH@HxhHuHU-FHEHU@;B~AHEHPHUH@HEHE@ȉEHE@EHEH@HxhHuHUEHEPHEpHEHx1/۴HEHc@HXHH-H9v HEpHEHxҴ]}tWEHUHBHEHBHEHEHcPHEHc@HH9~ HE@EHEH@HxhHuHU&E}tPHUHBHEHBHEHEHcPHEHc@HH9~ HE@EHEH@HxhHuHU?}X3Hc]4HcEdH)HH-H9v ]Hc]hHcE@H)HH-H9v]HcUH)UHcEHcUHHcEHHH-H9v]Hc]LeMl$HcUHH9vHc]HI|$蚢B+EEHE=r-@HEH@HxpHc]HcEHHH-H9vdAHEH@HXpLcHcUHH9v9LcmLH{G4HcEHXHH-H9v]HE< , t ,cHc]HHH-H9v]HEH@`E;ETHEHEHEHEHc]HHH-H9vd]HEH@Hxpt?HEH@LhpMeHcEHH9v*Hc]HI}ꠜEAHcEHXHH-H9v]HE HEHc]HHH-H9v]HEH@Hxpt?HEH@LhpMeHcEHH9vHc]HI}BEAHcEHXHH-H9vK]}VHEH@HEx E;EHE@HEHEHEH@Hxpt?HEH@LhpMeHcUHH9vHc]HI}聟EAHcEHXHH-H9v]ZHEH@t"E;E}HEHEHEHE$HUHEHEHUHEHEHEHcEHXHH-H9v]D;}HEHEHxHEHcEtHcUHHH-H9v]iLce4ILH-H9vHcU4HHcEHHH-H9voAE9DeDEfDEHE=r-@E;E}>LeMl$HcUHH9vHc]HI|$ƝB+EEHc]HcEHHH-H9vAHEH@HXpLcHcUHH9vLcmLH{TG4HcEHXHH-H9v`]HED;}EH;ELuEP;ETt#HcEHXHH-H9v]HUHBHEHBHEHEHcPHEHc@HH9~ HE@EȋuHHEHxdEED$HEH$HEH@H@pHD$HEH@LphHEXLeLmċE=vM̋uMML3HUHE@BHXL`LhLpLxH]UHHd$H=u$=uH=nHPHYHRH]UHHd$}uE;E}EEEEEH]UHHd$@}@u*Hn;H=nHH5H͜H]UHHd$H}HuH}H5HHuH=HH]UHHd$H}HuUHcEHHuH}ȥHEEH]UHHd$H]}EEfEEEs3HcEHcHcEHHH-H9v]}rEH]H]UHHd$H]H}HGHtH@HH~HEHX1HxH]HEHEH]H]UHHd$H]H}HHXHtH[HHH-H9v]H]H]UHHd$H}HEH5nHEHxHMH]UHHd$H}uHEH@HtH@HHcUH9}/HcEHHHEH5AnHEHxHM蓚H]UHHd$H]H}HuHcFHXHH-H9vHEXH]H]UHH$HLL H}HuHu.LmLeMuOH5hnLH-LShHEH}HUHuvȜH螦HcHUuSHEH}1H=4E@HUHBHEH}tH}tH}HEH;˜HEHtlHpH0ǜHHcH(u#H}tHuH}HEHP`ʜq̜ʜH(Ht͜͜HEHLL H]UHHd$H]LeH}HuH{~6LccILH-H9vDcEu HuH}H]LeH]UHHd$H]LeLmH}HuH~.LmLeMulH5nI$HILHEHx@HEHx>HcHHH-H9v,HEHx<8@aHEHxD>HcHHH-H9vHEHxɜHEHLLLLH]UHHd$H]LeLmLuL}H}HuHEHx:HcHHH-H9vAE|cEEHEHxu 9HELpH]HEL`MuH5߸MM,$LHLA`uD;}HEHEH]LeLmLuL}H]UHHd$H]H}HuH@ HuH}HEHu"HuH}HEHEHxHu5>H}t)HEHcHXHH-H9v[HEHEH]H]UHHd$H]LeH}HuHH8@gHEHHË@;@O;~$Lc#ILH-H9vD#)HEHxHEH0B@H{)HEH8HEH= tHEHx8u H}﬜H]LeH]UHH$PHXH}HuHUMEHELEHMHUMHILMLEHMHUWHmLMLEHMHU@HPLMLEHMHUXH3LMLEHMHUmHLMLEHMHUiHLMLEHMHU:HLMLEHMHU'H}u1HMH}H5Mb;tHcUHcEHH9}EHMH}H5$b;迪tu} EHuH} Hc]}1HcHHH-H9v]}u%HUHH5a;HEEE;E}EhHDž`ExHDžpH`H5a;HmHc]}1OHcHHEmHa;(}HUHH9vu}EE}u4EhHDž`H`1H5ua;HEEQE;E~IEhHDž`ExHDžpH`H5ja;HEE}u HUHH5a;HlEE}YHUHH5a;HFHcMHHgfffffffHHH?HHZHH-H9v]HUEBHUEBHUEB HXH]UHHd$H}@uHUHMLELMLEHMHUuH}VHE8uxHUHE8udHUHE;EtHE8uEHUHEH]UHH$HH}@uHUHMLELMHEHEHEHDž0HUH@HHcH8nuH}16u1H05H0HuH}1,u1H05H0HuH}1,HuHuH5HEHxHM辦tTHuHuH5HEHxHM蔦t*HuHuH5HEHxHMjuYHEH(HDž H 1H5h_;H}HEHEHEHE8HEUHEUHEHc]HcEH)HH-H9v]Hc]HcEH)HH-H9v]HE;EuHE;EHE;EHE;EE;EHcEHcUH)HHHIH~[HEHDžEHDžEHDžHH5\^;H}ku}PEHEHcHcEH)HH-H9vHEHUEHEHE;E~HE;EHEHEu}֐HcHUHcHH9zHEHDžEHDžE(HDž HH5];H}tu}YEHEHcHc]H)HH-H9vHEHEHcHcUHHHH?HHHH-H9vHE8HUHEHcHcUHHcUH HHVUUUUUUUHH?HHHH-H9vqHE8脏HUHEHcHH?HHHH-H9v2HEHE萺H0&H}&H}&H}&H8Ht軜HH]UHH$HL L(H}HuHUHMHEHULbIHLILLH蓋LmH}v&HDž0HDž@HDžHHUHusH蛔HcHUZHEH@HxHEH@Hx(.H[;HPHEH@HxHH*ɼHHHXH[;H`HEH@Hx<H}EH]H]UHHd$H}HHxHGH]UHHd$H]H}HuHEH@H;EuHEHx@ ~HEHxuH}tHEx|u@@0HEHUHPH}صHUBHEHp8H}0´HUHBHEpPH}8ǴHEpTH}HEHc@|HXHH-H9v֜HEX|H]H]UHHd$H]H}Hx|@/HEHcX|HHH-H9v՜HEX|HEx|aHEHxt4HEHxtHEHpHEHxOHEpHEHx+HE@HEH@HE@|H]H]UHHd$H]H}HHcX,H}HcHHH-H9v՜]H]H]UHHd$H}G0H]UHH$`HhLpLxLuL}H}HuHHEHcHXHH-H9voԜHEHUHu蓢H軀HcHULmLeMu ԜH5 nI$H瓛LHELx LuLMMuӜH5˨nM,$L诓HLAHE@,HE@0H}̼LmLeMuӜH5nM4$L\LAH}̼LmLeMuCӜH5DnM4$L LA 诤HEHcHHH-H9vӜHEHEHtHEHHu *H+G;H=ϩnHH5HHhLpLxLuL}H]UHHd$H]LeLmLuL}H}uHE@(;EuHEx,HUEB(LmLeMuҜH5nI$HLHELx DuLMMuќH5צnM,$L軑HDALMMuќH5nM,$L苑HAHEx,wHUB,LMMulќH5enM,$LIHAHEx0wHUB0HEuHEHHuYH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uHEH@ DuILMMuМH5nM,$L蚐HDAHUIG(HB8LmH]HuМH5nL#L]LA$H]LeLmLuL}H]UHHd$H}HHxtHEHp8HEHxH]UHHd$H}uHE@P;Et%HUEBPHEHxtHEHxuH]UHHd$H}uHE@T;Et%HUEBTHEHxtHEHxuoH]UHHd$H}uUHUEDX;EtHEUMLXH]UHHd$H]LeLmLuL}H}uEDEDu]LeL}MuΜH5ԦnM/L豎LDA8}rH]LeLmLuL}H]UHHd$H}uHE@x;EtHUEBxHE@@H]UHHd$H}؉uUHMDEHEHxDEHMUuʴH]UHH$pH]LeLmLuH}uUMLELMHtmHEHxHuHUuE؃v]HHغH9v͜]EHEHEHEHE} |E EHuHUH}HEu_H}uRLmHEHX HEL` Mu.͜H5'nM4$L HAA;E,uHEHx tEEHEƀ}tWHE@@;E}8LmLeMu̜H5¤nI$H螌LHHEHxHNHEHEH}tGHEHD$E$HEL`H]LmE=ve̜M؋UuMILEHEHD$E$HEL`H]LmE=v̜M؋UuMILiH]LeLmLuH]UHHd$H}E@EHEH@U|XtE }rEEH]UHHd$H]LeLmLuH}uHEH@HxHHEpHEH@D`@HEH@HxHKHcHHH-H9v,˜D9|XDeDEfEHEH@LpHMnHcUHH9vʜLceLI~hECD;]HEH@HxHHUHRB@H]LeLmLuH]UHHd$H]LeLmH}uUMLELMH} tH} HEHEH}?tGHEHD$E$HEL`H]LmE=v ʜM؋UuMIL6EHEHD$E$HEL`H]LmE=vɜM؋UuMILgH]LeLmH]UHHd$H]H}HuHUHEEEEfEHEÚ|X_H}t*HEŰDX;EuHUE̋DhH&n;EtnHUE̋DXEHUE̋DhHnEH}tHEHxHu蠴HXUċuH}IHEHEHxHutHE؋E̅ttqHEHxHMЋUuvHUẼ|huHEHxUuDHEHxUu,HEHxHMЋUuHUẼ|huHEHxUuHEHxUu讐HEŨ|hurHc]HHH-H9vǜHEHxHMЋU蕘Hc]HHH-H9veǜHEHxURHc]HHH-H9v)ǜHEHxHMЋU#Hc]HHH-H9vƜHEHxUHUẼ|huoHc]HHH-H9vƜHEHxHMЋu託Hc]HHH-H9vxƜHEHxu1hHc]HHH-H9v?ƜHEHxHMЋu9Hc]HHH-H9v ƜHEHxu׎HEHxHMЋUu}~HEHxHu蕱HUH]H]UHHd$H}HƀH]UHHd$H]LeLmLuH}uRLmHEHX HEL` Mu,ŜH5%nM4$L HAA;E,uHEHx tEEEH]LeLmLuH]UHHd$H}ЉuUMDEDMDH}1҉RHEHEHxHu}HEHEHxHMUu袕HEHxUu_HEHxHu>HVTH]UHHd$H}HuHUHEHxHuHUFlH]UHHd$H]LeLmH}HLh HEHX HuÜH5טnL#L較LA$H]LeLmH]UHHd$H}HuHUHEHHuHU#H]UHHd$H}HuHUHEHHuHU胺H]UHHd$H]LeLmLuL}H}HEH@ HULcr,ILMMuœH5nM,$LĂHAHcI)LH-H9vœDHULwt3HEǀHUHMHHpHHHEHxtBH} HcHUHcHHH-H9vBœHEHx胲L u AG0u"HUHMHH`HH HUHMHHhHHH]LeLmLuL}H]UHHd$H}uUMLELMЋED$HEH$HEHLELMЋM؋UuHEH]UHHd$H]LeLmH}uUMLELMHD$E$HEL`H]LmE=vM؋UuMIL^H]LeLmH]UHH$`HpLxLmLuH}uUMLELMHEHEHEHEHcEHEHEHEHEHEHEHHEH;EH}HcHUHcHHH-H9v/HEHxpH]HEH)HH=v]LmLeMuпH5QnI$HLHcHcEHHH-H9v豿]HcEHcUL,H]LeMupH5nM4$LMHAHcJ(HH-H9vTߋujEHD$E$HEL`H]LmE=vM؋UuMIL\HcUHcEHHH-H9v޾]HcEHcUHHH-H9v跾]HEHEHEH;EHH}-HcHUHcHHH-H9vcHEHx褮H]HEH)HH=v9]LmLeMuH5nI$H}LHcHcEHHH-H9v彜]HcEHcUL,H]LeMu褽H5%nM4$L}HAHcJ(HH-H9v舽ߋu螿EHD$E$HEL`H]LmE=vMM؋UuMIL[HcUHcEHHH-H9v]HcUHcEHHH-H9v뼜]HEHEHEH;EZHEH;Et E;EH}SHcHUHcHHH-H9v艼HEHxʬHD$$HEL`H]E=vOM؋UuM1ILZHpLxLmLuH]UHHd$H} HEH@HEHUH@H;BtHEH@SҊrH]UHHd$H} HEH@HEHUH@H;BtHEH@ҊsH]UHHd$H}uU؉MLELMD$ED$HEH$LELMȋMЋU؋uH}H]UHHd$H]LeLmLuH}uUMLELMH}}E;EE;ELcmHcEI)H]LeMuxH5nM4$LUzHAHcI9ukLcmH]LeMu=H5nM4$LzHAHcHcUHHLHcUH9~HEHxDEHMUu굴EHD$E$HEL`H]LmE=vڹM؋UuMILWH]LeLmLuH]UHHd$EE}~t Eϊ}rH]UHϊH]UHϊH=ϊt HϊHx[u H=pϊ[rH]UHHd$H]LeLmH}HuUMLELMUHuH}IqLmLeMu莸H5'nI$HkxLHHmHmEHEHc]HHH-H9vQEfEHEHEHE8^EHE< , ,,,,,c, ,q,K,ve,?,vY,Dtm,,',,,,~,,, j,]EEHE@<,v,EHExEE}HE@H}1SHEH@耸tHEH@HHHu'DHEH@HHHU1vHEH]LeLmLuL}H]UHH$HLLH}HuHUH}u.LmLeMuʟH5nLH_LShHEH}yHUHumHLHcHUHEHEǀ HEƀHUH=n#HUHHUH=nt#HUHHUH}1z7HEH5jHEHjHEH+kHEH}tH}tH}HEH/pHEHtlHhH(lHKHcH u#H}tHuH}HEHP`oeqoH HtrrHEHLLH]UHHd$H]LeLmH}HuH~.LmLeMu̝H5nI$H]LHEHWHEHWHEHVH}1u:H}tH}tH}HEHPpH]LeLmH]UHHd$H}EH}@H}G5ƿKCHU H]UHH$HLLL H}HuH5nH}АHpH0jH IHcH(H nLmMHuH=M\OIIV(HH9vaMv(LI:IkhI<HuHꕜ}dHuH=%MOFttd&H}9HLceILH-H9vƛDUAE0HH}HLceILH-H9vyDUAE0HH}HLceILH-H9v,DUE1E0HEH}XHLceILH-H9v嚜DUE1E0H<7lH5 nH}藏H(HtmHLLL H]UHHd$H}HH=nHH]UHHd$H}uHE@t;Et=HEu0uH}[1H}2ƿ!@HU H]UHHd$H}H]UHHd$H]LeLmLuL}H}HuHUHMEHEH8HEHc]HHH-H9vpLcH}T,ILMMu1H5enM,$LYHAEHc]HHH-H9v HcI)LH-H9v혜D}DH}E؃v>rkwfHEHHEHz HHUH}UE2HEHHEHF HHUH}UE܀}uHuHMHUH} ;E܊EH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHUEH}YHEf@LfEfDHEH@ EHEH8FEHc]HHHH9v薗LcH}z*IMLMuWH5cnL#L5WLA$EHc]HHHH9v0HcI)LH-H9vD}EuH};uf}tEuH}auH}V!H}jIMLMu肖H5cmL#L`VLA$HELc}IH}`)IMLMu=H5bnL#LVLA$EHc]HHHH9vHcLHH-H9vALmH]HuÕH5DmL#LULDA$EHcEHXHH-H9v蠕]HcEHXHH-H9v}]E3uH}t#Hc]HHH-H9vA]EfEf=f-tf-f-&zHEf@2ftf-tff-f-ARH}(IHc]HHHH9v贔DMALH}IHc]HHHH9vgDME01ɺL?H}IHEH8"BLceILHH9vD0LPE|KH}@IHc]HHHH9v̓DMЋUE0LEH}IHEH8}ALceILHH9vjDLE|JH}IHc]HHH-H9v(DMЋUE0L{H}QHËuܲH EWH}-IHc]HHH-H9v躒DMAL HEf@2ft f-tOH}IHc]HHHH9vPDMA1LH}zIHc]HHHH9vDME01ɺL^]HELDuLmH]Hu諑H5nL#LQLDLA$hHUHEHHB8EEH]LeLmLuL}H]UHHd$H}4HEHHEH HEHHEHHEHHEHH]UHH$`H`LhLpLxH}HuHUHMDEDMHEEH}EHEH@tEEtWHELHELMu6H5XMM4$LPLAPHEH@04EtWHELHELMu֏H5XMM4$LOLAPHEH@0HELHELMuH5WMM4$L\OLAhHuHUH}/HEL1HELMu-H5vWMM4$L OLAPHEH@u*HEHHcX\HH?HHHH-H9v掜]HcEHcUH)H*H\;^H-HcEHHH-H9v裎]HcUHcEHHH-H9v|]HcUHHcEHHH?HHHH-H9vD]HcEHHcUHHH?HHHH-H9v ]Et zHcEHcUHHH-H9v辍ދUH}Hc]HcEH)HH-H9v荍ދUH}/XUuH}HcEHXHH-H9vKދUH}HcEHcUHHH-H9vދUH}VHc]HcEH)HH-H9v㌜ދUH}HcEHcUHHH-H9v豌ڋuH}Hc]HcEH)HH-H9v而ڋuH}"KEEEHcEHcUHHH-H9v6]HcEHcUHHH-H9v]EEHc]HcEH)HHH-H9vߋ]EEHEHEEEHc]HcEH)HHH-H9v蜋]HcUHcEHHH-H9vu]EEHc]HcEH)HHH-H9vE]EEHEHEHuH}BʼuH}H`LhLpLxH]UHHd$H]LeLmH}HLHEHHu蘊H5I'nL#LvJLA$ HcHHH-H9v|޿ 0ƿ0EH]LeLmH]UHH$pHpLxLmLuL}H}HuHUHMDEDMHEЀHELHEHHuH5r&nL#LILA$ EHc]HEH1/HcH)HH-H9v臉]E}~FH}HLceILH-H9vKDH@uEHc]HHH-H9vHEЋxtS/HcHH?HHHH-H9vۈ]HEHx }HEHp HEH(H}HHEH(`kLuL}H]LeMuFH5&MM,$L#HHLLAxHEHp$HEHHELHELMuH5)PMM4$LGLA`LmH]Hu诇H5%ML#LGLA$`LceOd$LH-H9v菇D-HcHgfffffffHHH?HHHH-H9vP޿d-HEЋ -HELHELMuH5:OMM4$LFLAHEEDeD;eEEDEEȉEHcEHcUHHH-H9v袆]ȋEEHEHc@tHcUHHH-H9vq]EEEȉEuH}Evt$t1r>w9MHuHUHG+HuHUHHuHUH3ED;e HpLxLmLuL}H]UHHd$H]H}HuHUHcUHcEHHH?HHHH-H9v膅]HcUHEHc@HHH-H9v[HEHxuHc]HHH-H9v)HEHxuHc]HHH-H9vڋuHEHxHcEHcUHHH?HHHH-H9v贄޿*HUBH]H]UHHd$H]H}HuHUHcEHcUHHH?HHHH-H9vF]HcUHEHc@HHH-H9vHEHxuYUHEHxuHE@H]H]UHHd$H]LeLmLuH}HuHUMHEpHEHx4EHE@EHEHxHHEpH谨tM*HEHxHHEpH脨tMHcEHcUHHH?HHHH-H9v]LceHcUHEHc@HHH-H9vقߋu)HcIHH?HHHH-H9v裂HEx(È}t/HcUHEHc@HHHH-H9v`]HEH@HHcX\HH?HHHH-H9v%]HcUHEHc@H)HHcEHHH-H9v]HcUHEHc@HHcEH)HH-H9v轁]HcUHEHc@H)HBHcUHHH-H9v臁]HcUHEHc@HHcEH)HH-H9vU]HEH@L(HEH@L(MuH5KMM4$L@LA@}HEHx?HHEpHݳHcEHHcUH9U܋uHEHxHc]HHH-H9v芀ڋuHEHx(Hc]HHH-H9vXڋuHEHxHcUHcEHHH?HHHH-H9v޿Y&HUBHEHx@HHEHc@L`LH-H9vDH農t>HEpHEHxcu&U܋uHEHx UuHEHx)Es>HEH@Hx(t&HEH@Hp(HEH@H}t }uMHEHpHEHxDMDEHUHM HEH@Hp$HEH@HeHEH@L(1HEH@L(Mu~H5|IMM4$Lh>LA@H]LeLmLuH]UHHd$H}uH}wEED$(D$ D$fD$D$$H}AA101D$(D$ D$fD$D$$H}AA0ҾZD$(D$ D$fD$D$$H}AA0ҾD$(D$ D$fD$D$$UH}E1E1H]UHHd$H}uH}'D$(D$ D$fD$D$$H}AA10Ҿ^H]UHHd$H}uH}跨D$(D$ D$fD$D$$H}AA10ҾD$(D$ D$fD$D$$H}AA10ҾH]UHH=ln@5H]UHH$HLLH}HuHUH}u.LmLeMuz{H5KrnLHX;LShHEH} HUHuIH'HcHU}HEHUH}1HEH>FHEHFHEH4GHEH}tH}tH}HEH8LHEHtlHhH(HH'HcH u#H}tHuH}HEHP`KnMKH HtNNHEHLLH]UHHd$H]LeLmH}HuH~.LmLeMuyH5pnI$H9LH}1H}tH}tH}HEHPpH]LeLmH]UHHd$H}H@(H]UHHd$H}H@$H]UHHd$H}uHEHu}EH]UHHd$H}uHEHuDH]UHHd$H}H]UHH$pHpLxLmLuL}H}HuHUHMDEDMHEЀsHELHEHHuQxH5nL+L/8LA EHELHEHHuxH5nL+L7LA( IMMMuwH5ĐDI$H7LEH} IMMMuwH51DnI$H7LEHc]HHHH9vw]HEHx t[HEHp HEH( L}LuLmH]HuwH5\ML#L6LLLA$xHEDptHELHEHHuvH5?ML+L6LDAHHELAHEHHuvH5>ML+La6DLA`HEEH}߼HEHEHEHEEEHEHc@tHH?HHHcUHHH-H9vv]HcEHcUL$LHH9vuHcUHcEHHHH9vuHEED9DeDEfEH}IIMLMupuH5QxmL#LN5LA$INj]MMMu=uH5tmM&L5LA$Eą E;EEEHcUHcEHHH-H9vt]HELDuHEHHutH5gnL#L4DLA$ xt t:ljHEHp$HEHDEMUuH}4HEHp(HEHDEMUuH}E;EzuH}ܼHpLxLmLuL}H]UHH$HLLH}HuHUH}u.LmLeMusH5mnLHh3LShHEH}'HUHuAHHcHUHEHEǀHUHE苀HEǀHEƀHEƀHUH}1M HEH}tH}tH}HEHADHEHtlHhH(@HHcH u#H}tHuH}HEHP`CwECH HtFFHEHLLH]UHHd$H]H} HEHHUH@8HH}FHHMH1H7H}EHHMH H7HUH5 HEHЭH}111H]H]UHHd$H]LeLmH}HuH~.LmLeMu,qH5knI$H 1LH}GEHHuH8HUH5m HEHmH}1 H}tH}tH}HEHPpH]LeLmH]UHHd$H]H}HuHH=jnHI#~H]H3H=jn^#HHEHUHE芀HUHE芀HUHE苀HUHE苀HUHE苀HuH} H]H]UHHd$H]LeLmLuH}u =EHE;EHEUHEt.HEHEHUH}HUHELmH]LeMuoH5ninM4$L.HLAH]LeLmLuH]UHHd$H]LeLmLuH}@uHE:EtCHEULmH]LeMunH5hnM4$Lj.HLAH]LeLmLuH]UHHd$H]LeLmLuH}uHE;EtM}THULmH]LeMumH5MhnM4$L-HLAH]LeLmLuH]UHHd$H]LeLmLuH}@uHE:EtYHUEHEt H}-LmH]LeMuGmH5gnM4$L$-HLAH]LeLmLuH]UHH$@H@LHLPLXH}HuUMHDžpHUHu;HEHcHxH}1}HcEHHHu>HEHcH Hp;ƛHpH}1H:ҫHEHcH HpśHpH}1H:蔫QHE耸t#Hc]HHH-H9vk]HEHcHhHcEH`H`HhH`eH}1H`豳H}014țHE耸HEHcHHH-H9v\kE@ELmMuHcUHH9v$kLceLI}褹C|& u>H}cIHcUHH9vjLcmLLiCD,0;]9]H5?5nL#LLA$HHt00.HH}暛HHt0H0L8L@LHLPH]UHH$HLLH}HuHUH}u.LmLeMuj\H5^nLHHLShHEH}HUHu*HHcHUufHEHEHǀHEǀHEƀHUH}1OHEH}tH}tH}HEHC-HEHtlHhH()HHcH u#H}tHuH}HEHP`,y.,H Ht//HEHLLH]UHHd$H}HEHHUHHH]UHHd$H]H}HHc@$HXHH-H9vZ]H]H]UHHd$H}Hp$H}H]UHHd$H]LeLmH}HuH~.LmLeMu,ZH5\nI$H LHEHpH}1H}tH}tH}HEHPpH]LeLmH]UHHd$H]H}HuHUHMHEH=LH` tSH]HH=Ly H8H* EH]HH=LR H8HxE"H*:HHEHEH EHuE؋MH}1 H]H]UHH$PHXL`LhLpLxH}ЉuHUHMLELMEHEHEHx t HELc}H}IMLMuaXH5$nL#L?LA$EHc]HHHH9v:XHcLHH-H9vX]H}0,IMMMuWH5ZmI$HLL}UHUIMLMuWH5$WmL#LLuLA$EċE;E7}-HELHEHHuGWH5mL#L%LA$( IMLMuWH5oDL#LLA$;EHELHEHHuVH5mL+LLA` HH=Sm IHcEHXHHH9vVLXAHEH1HEHx tH}0H}0HELHEHHuVH5mL+LLA EH}ZEHcUHcEHHEHcL,LH-H9vUHcEHcUL$LH-H9vUHcEHcUHHH-H9vUߋuDD]HEHUHEHEHEHEHEH@ EH}K2LcILH-H9v,UEE@EăEĉH}&x<uH}&HHtHEHx"fuH}n&HH:EtR}uLHEЃ~?EEHEHcHcEHHHH9viTߋuEuH}&HHUHMHEEHEHcHcEHHHH9v TߋuQE}uuH}%HHuEEuH}w%HH:Et*uH}[%HHu}~ HU؋EĉHEЋ;E~$uH}"%HHWED;eBEHXL`LhLpLxH]UHH$HLLLLH}HuHUHMHEx=u)HEH@HHxOHEHx@HE@4 HUHp HHcHhuOHEH@Hu=HEH@Ѐu, H<:H=nTHUHRH#HhHtXHPH; HcHcHuHEH@ƀA#HHt &%HEH@HHEH@HHEP4HEDHDEMHEHpW_HEHxtaHEHPHHELxHELpLmHEHXHuQH5gSnL#LLLLHA$hjHEH@HHPHHELxHELhLuHEHXHuPH5RnL#LLLLHA$hH]H};C4sHEx4|iHE@;E~;HcEHcUHHcEH)HH?HHHH-H9v4P]HED@4MUHEHpH}AHLLLLH]UHHd$H}؉uHUHMLEEHEHMLEHUuH}IH]UHH$PHXL`LhLpLxH}HuHUHMDEDMHEЀHEHx t HEHp HEH(VHEHp@HEH(6H}HHEH(1HEHuHEHHxtcHEHHPHUL}LuLmH]HuSNH5PnL#L1LLLHMA$hHEЋUHUHEЋ@tHEЃuHEǀNHEHc@tHHUHcHHHHHH9vM߾HUЉHEHEHEHEEEHEHx" E;EHELHEHHuJMH5mL#L( LA$ EȋEHEE;EEEfDEEĉEHcUHcEHHH-H9vLދ}@EL}LuHEHEDmHEHEH]HuLH5NnL#L H}DHULMA$pE;EdHXL`LhLpLxH]UHHd$H]H}HuHEHcX@HEHc@@H)HH-H9v L]HEHcXHEHc@H)HH-H9vK]uYHEHcX HEHc@ H)HH-H9vK]u'HEH;EvHUH;Us1EEH]H]UHHd$H]H}HuHEHcXHEHc@H)HH-H9v0K]HEHcX HEHc@ H)HH-H9vJ]uYHEHcX@HEHc@@H)HH-H9vJ]u'HEH;EvHUH;Us1EEH]H]UHHd$H}HHx tHEHx(HuHEP H]UHHd$H]LeLmH}HuH~.LmLeMuIH5 UnI$H LHEHx0tHEHx8HuHEP0H}1H}tH}tH}HEHPpH]LeLmH]UHHd$H}uH}#|H]UHHd$H]LeLmH}uHUHЋuH}H|LmH]Hu IH5 UnL#LLA$H]LeLmH]UHHd$H]LeLmH}HuHH}H}LmH]HuHH5TnL#LpLA$H]LeLmH]UHHd$H]UHH$HLL H}HuHu.LmLeMuHH5TnLHLShHEH}HUHu6H^HcHUuBHEH}1HE@HEH}tH}tH}HEH HEHtlHpH0HHcH(u#H}tHuH}HEHP`BH(HtgHEHLL H]UHHd$H]LeLmLuL}H}HuH~.LmLeMuFH5RnI$HLHExtZN@H}1IƻMMMuUFH5fQnM/L3LHAU`H}1{HExH}1YzH}tH}tH}HEHPpH]LeLmLuL}H]UHHd$H]H}HcGHXHH-H9vEHEXH]H]UHHd$H]LeLmH}HHcXHHH-H9vtEHEXHExu8HEx t.LmLeMu'EH5(QnI$HLH]LeLmH]UHHd$H}HuHH}HH]UHHd$H}HHExB HExuH5H}H]UHHd$H}HuHH}HH]UHHd$H}Hx~HE@ H5H}BH]UHHd$H]H}HuHEHcX(HEHc@(H)HH-H9vC]u'HEH;EvHUH;Us1EEH]H]UHH$HLL H}HuHu.LmLeMuOCH5`MnLH-LShHEH}HUHuvHHcHUuBHEH}1HE@HEH}tH}tH}HEHLHEHtlHpH0H#HcH(u#H}tHuH}HEHP`H(HtHEHLL H]UHHd$H]LeLmLuH}HuHUHMDEDMHEHcP(HcEHHcEHcMH)H9HcUHcEH)HEHc@(H9hHEЋ@(EHEHcP(HcEHHHEHEHc@(HHEH;E~H]H]HH-H9vwA]HcEHXHH-H9vTA]Hc]HHH-H9v1A]H}1pHEH蠽HEH(@XEHEL(HEL(Mu@H5 MM4$LLA@HuHUH}jHEL(]HEL(Mug@H5X MM4$LDLA@H]LeLmLuH]UHHd$H}HuHHEHBHuH}7H]UHHd$H}uH}rH]UHHd$H}uHUHЋuH}HrH}AH]UHHd$H}HuHH}H`H]UHHd$H}H5H}czH]UHHd$H]LeLmH}HuH]H3H=JnHH@HEH]H3H=InHpH}3EHE@(;ELHEHcP(HEHc@HHcEH9~0LmLeMu>H5HnI$HsLLHuH}wHExuHuH}wH}H]H3H=UIn8H3H}L H]LeLmH]UHHd$H]H}HuH]H3H=InHH@HEHuH}0wHExuHuH}wH}@H]H]UHHd$H]H}uHEx} E HEHc@HcUHHHUHcJ$HHHH-H9v]=]HEHc@ HHUHcRH9}%Hc]HHH-H9v"=]nM/L;LHAU`H}1iHExH}1ahH}tH}tH}HEHPpH]LeLmLuL}H]UHHd$H]LeLmLuH}HuHHUH HH HP(HEHUH HH0HP8HEpH}EH}0ɲE|ouH}]HE@(;EWHEHcP(HEHc@HHcUH9~;LmH]LeMu3H50=nM4$LHLAHcEHXHH-H9v2]H=HEHEH]UHHd$H}uHE@p;Et)HEUPp}蒸HUHuH}{H]UHHd$H]LeLmH}uHE@t;Et9HUEBtLmH]Hu,+H5%9nL#L LA$H]LeLmH]UHHd$H]H}uHE;Et!HUEH}HH9H]H]UHHd$H}HGxHH]UHHd$H]H}HuH]H3H=]8nXݛHHcHEHcH)HH-H9vH*]uHuH}$>EEH]H]UHHd$H]LeLmLuH}HuHELhxH]HEL`xMu)H5:/nM4$LHLAH]LeLmLuH]UHHd$H}uUHEHxxUuj,H]UHHd$H}uUHEHxxUu,H]UHHd$H]LeLmLuH}u} EH}HIIHu(H5]#mMuLLAE}EEu E8HEHc@tHcUHHHcMHHHH-H9v(]EH]LeLmLuH]UHHd$H]LeLmLuH}u} EH}HIIHu'H5}"mMuLLAE}EEHEHc@tHcUHHHcMHHHH-H9v']HEHc@tHcUHHcMHHHHHH-H9vr'];E~EEEH]LeLmLuH]UHHd$H]LeLmLuH}uH}HIIHu&H5m!mMuLLAE܃}EHcHEHu E~HcEHUHHUHcJtHHHXHH-H9v&]HEHc@tHcUHHHH}HcUH9t#HcEHXHH-H9vB&]EH]LeLmLuH]UHHd$H]UHHd$H}HuHUH]UHHd$H}H@H]UHHd$H]H}HHXxHH=+n؛H]HH]H]UHHd$H]H}uH}2HHH=F3nA؛H]HH]H]UHH$HLLH}HuHUH}u.LmLeMu$H5,nLHLShHEH}HUHuH9њHcHUuJHEHUH}1-H}@2HEH}tH}tH}HEHHEHtlHhH(HКHcH u#H}tHuH}HEHP`H Ht_:HEHLLH]UHHd$H}HuUMHE11H H]UHHd$H]LeLmLuL}H}HuUHE苐HE苰H}H}IMMMu#H5пmI$HL HU艂H}PHEH}CIMLMu"H5mL#LLA$ AEL}MLMu"H5ImL#LvLUDA$ HU艂LeH]HuY"H5j2nL+L7LAHE苐HE苰H}H]LeLmLuL}H]UHHd$H]H}HH}HUHEHcHHH-H9v!H}aHUH]H]UHHd$H]LeLmLuL}H}HuHUHMDEHcUHcEH)HEHcH9HcUHcEH)HEHcH9HEHcHcUHHEHcEHEH;E~H]H]HH-H9v ]HEHcHcUHHEHcEHEH;E}H]H]HH-H9v ]HE؋HEH(ճL}LuH]LeMuK H5LM,$L(HLLAxH]LeLmLuL}H]UHH$HLLLLH}HuHUH}u0LmH]HuH5/nILߚLAT$hHEH}HUHuH˚HcHUHEHUH}1HE@pH}jH}aHHMHcHH}]HHEHkHIALHHuH5tmL#LޚLDLHA$ HEH}tH}tH}HEHHEHtlHhH(HʚHcH u#H}tHuH}HEHP`3H Ht}XHEHLLLLH]UHHd$H]LeLmLuL}H}HuH~/LmH]HuH5-nL#LbݚLA$H}HUH HUIIMLMu9H5mL#LݚLLHUA$ H}LHHMHNHH}1H}tH}tH}HEHPpH]LeLmLuL}H]UHHd$H}uHE;Et,HEU}|HUHuH}eH]UHHd$H]LeLmLuL}H}HuHUHMDEHE؃~ H}yHcMHcEHcUH)H*H.:^H-HHH-H9v]Hc]HcEH)HH-H9v]Hc]HcEH)HH-H9v]Hc]HEHƹH9HEH譹HH-H9ve]rDHcEHXHH-H9v8]LeM$HcEHH9vHc]HI$͸ADE&HcEHXHH-H9v]ЋE;EBLeM$HcEHH9vHc]HI$]AD;EtEȅEԉEEЉEEtHE؋HEH(虭HE؋HEH(}LuH]LeL}MuH5HEHxH}HcHHH-H9v |BE@EEH}Lx<tuH}:HH};]H]LeLmLuL}H]UHH$HLLLH}HuHUH}u.LmLeMuSH5nLH1ȚLShHEH}HUHxw֛H蟴HcHpcHEHUH}1VH}H}HHMHHH}HHMH}HH}HIIHutH5%mMuLQǚLA` HH=lHHEHUH5H}ع7H}HcHHH-H9v#|>EEEH}Tx<tuH}BHH};]HEH}tH}tH}HEH%؛HpHtlHXHԛHHcHu#H}tHuH}HEHP`כXٛכHHtڛ}ڛHEHLLLH]UHHd$H]LeLmLuH}HuH~.LmLeMuH5 nI$HŚLH}HHuHH}HIIHuhH5mMuLEŚLA` HH=lHEHUHuHUHEH*H}HEHEpxHEHHEHa HcHHH-H9v|vt$tt"(E1wAoAgA_AWH5nnH}HEHEHE HMHP#nHPM1H=%nحHH5H膹豺H}'HEHt*DHxLeH]ttttt1øøøøSATAUHd$H4$H&HT$Ht$ 涛HHcHT$`H=&uH=C#/H H=.Ã|\AADH=,HxH4$5Hu+DH=,HDH=,I,D9H$H=SnILH=y2?H%HD$`Ht踺LHd$pA]A\[SHHHQ{8uHH=!4H䡛[SATHd$H=tJH=-Ã|)AADH=+H蕡D9H=dHd$A\[H$H|$Ht$H$H$H|$uHD$HT$HRhHD$H|$THT$ Ht$8崛H HcHT$xHD$H$H$誴HҒHcH$uH$H|$1sHD$@8袷H#H$HtHD$H|$tH|$tH|$HD$HWHD$xHtH$H$H'HcH$u'H|$tHt$H|$HD$HP`聸춛H$Htʹ襹HD$H$H@8Hh8SHd$HH$HD$pHD$hHT$Ht$ 9HaHcHT$`uhC HJn@0H|$hHt$hHOH<$TH|$p}"H4$1HX]:H|$p$Ht$pH=nHC@赛H|$p>"H|$h4"H,"HD$`HtMH$[SHH{t H{HsH=n|[SHd$HH4$H+DHT$Ht$ 'HOHcHT$`uH{H4$/HCHD$`Ht訶Hd$p[Hd$HHd$Hd$H2Hd$SHd$HLÉ $HxHIHT$}t |$$$Hd$[SATHd$HHHwAĄuC<$D$CDHd$A\[SHd$H4$HBHT$Ht$ ʰHHcHT$`u1߳HWBHD$`HtXHd$p[SHd$HHHt*$T$ST$ST$ S T$SHT$HSHd$ [Hd$HbHd$0SATAUHd$IHAH$HT$Ht$ ѯHHcHT$`{I|$DHٻAD$t\ID$Hp0HEH$HtH@H~(H4$/t_HH~ H_At$H$LiH@HD$`HtⳛHd$pA]A\[Hd$H00Hd$0000Hd$HBHd$SATHd$HIHD$`HHt$WHHcHT$XuLHHt$`3Ht$`H{(uDPH|$`?HD$XHtDzHd$hA\[Hd$HHxHd$Hd$HHxoHd$SATAUAVHd$HIIAD H{LEL,Hd$A^A]A\[Hd$HHxHd$HpSATH$xHAH$HD$hHT$Ht$ H"HcHT$`AuHH5gW:CAuHH5W:BAuHH5W:BAuHH5W:BAuHH5W:BgAuHH5X:BMAuHH57X:rB3Dd$xHD$pHT$p1H5LX:H|$hHt$hH?H{H4$Dc H|$h]Hu=HD$`HtvH$A\[Hd$HH1Hd$SHH{tH{HCHpH{苺[SHH{tH{HCHpH{[[H$(H|$H4$HuHD$HT$HRhHD$H|$"HT$Ht$0ԪHHcHT$pwHD$H|$1gHD$@?HD$@ HD$@$HD$@H|$HD$H|$tH<$tH|$HD$HpHD$pHtpHT$xH$HGHcH$u&H<$tHt$H|$HD$HP`袮 H$Ht믛ƯHD$H$H$H|$Ht$$H|$uHD$HT$HRhHD$H|$HT$ Ht$8^H膇HcHT$xuLHD$H|$1HT$$BHD$H|$tH|$tH|$HD$H)HD$xHtH$H$ѨHHcH$u'H|$tHt$H|$HD$HP`ȫS辫H$Ht蜮wHD$H$SATHd$HIM~ HHHHH1HtMt HHPpHd$A\[UHHd$H]LeLmHIHAńuALeHEHMHnHPM1H=4n睰HH5H蕩DH]LeLmH]SATHd$HIHD$`HHt$WHHcHT$XuLH|$`:Ht$`H)RH|$`8HD$XHtɫHd$hA\[SATHd$HIHD$`HHt$ǦHHcHT$XuLH|$`V:Ht$`H©H|$`88HD$XHt9Hd$hA\[SATHd$HIHD$`HHt$7H_HcHT$XuLH|$`9Ht$`HY2H|$`7HD$XHt詪Hd$hA\[SATAUHd$HIIHD$`HHt$袥HʃHcHT$XuLH|$`19Ht$`LH1蚨H|$`7HD$XHtHd$pA]A\[@t tGËG UHHd$H]LeLmLuL}LEAIII^ÃuALmHEHMHPnHPM1H=EnHH5H覦H]LeLmLuL}H]SATAUAVAWHd$IIHAMHD$`HHt$HHpHcHT$Xu%LH|$`7Ht$`MDHL:H|$`5HD$XHt豨Hd$pA_A^A]A\[SHd$HH4$HHD$hHT$Ht$ 讣HցHcHT$`uH4$H|$h<7Ht$hH訦H|$h5HHD$`HtHd$p[SATAUHd$HAIHD$`HHt$H:HcHT$XuLH|$`6HT$`DHa H|$`4HD$XHt胧Hd$pA]A\[UHHd$H]LeLmLuL}IIHAEDHLLuALuHEHMH nHPM1H=n耘HH5H.H]LeLmLuL}H]SATAUAVAWHd$IIHAEHD$`HHt$ءHHcHT$Xu#LH|$`g5Ht$`EDHL̤H|$`B3HD$XHtCHd$pA_A^A]A\[Hd$H#tD$Hd$SATHd$HIHD$`HHt$H?HcHT$XuLH|$`4Ht$`HyH|$`2HD$XHt艥Hd$hA\[Hd$Hc$Hd$SATHd$HIHD$`HHt$gH~HcHT$XuLH|$`3Ht$`HbH|$`1HD$XHt٤Hd$hA\[SATHd$HIHD$`HHt$ןH}HcHT$XuLH|$`f3Ht$`HyҢH|$`H1HD$XHtIHd$hA\[SATAUHd$HIIHD$hHD$`HHt$9Ha}HcHT$Xu1LH|$`2Ll$`LH|$h2Ht$hHLH|$h0H|$`0HD$XHt茣Hd$pA]A\[SATAUHd$HIAHD$`HHt$肞H|HcHT$XuLH|$`2Ht$`DHQzH|$`/HD$XHtHd$pA]A\[SATHd$HIHD$`HHt$H|HcHT$XuLH|$`1Ht$`HH|$`h/HD$XHtiHd$hA\[Hd$Ht<$Hd$(Hd$ICHd$SATAUAVHd$HIIAHD$`HHt$HE{HcHT$Xu"LH|$`0Ht$`LDHyH|$`.HD$XHt艡Hd$hA^A]A\[UHHd$H]LeHIHULELHH߹^}tALeHEHMHnHPM1H=m艒HH5H7EH]LeH]SATHd$HIHD$`HHt$HzHcHT$XuLH|$`/Ht$`HH|$`h-HD$XHtiHd$hA\[UHHd$H]LeHIHULELHH߹>} tALeHEHMHanHPM1H=miHH5HHEH]LeH]SATHd$HIHD$`HHt$ךHxHcHT$XuLH|$`f.Ht$`HHѝH|$`G,HD$XHtHHHd$hA\[Hd$Hd$SATHd$HIHD$`HHt$'HOxHcHT$XuLH|$`-Ht$`H"H|$`+HD$XHt虞Hd$hA\[Hd$H<$HHǹ3,$Hd$SATHd$HIHD$hHT$Ht$ eHwHcHT$`uLH|$h,Ht$hHw<$_H|$h*HD$`Ht֝,$Hd$xA\[Hd$H,H*Hd$SATHd$HIHD$`HHt$跘HvHcHT$Xu LH|$`F,Ht$`HD$h讛H|$`$*HD$XHt%D$hHd$xA\[Hd$HHD:HH$HHǹ$Hd$SATHd$HIHD$`HHt$痛HvHcHT$Xu LH|$`v+Ht$`HiD$hޚH|$`T)HD$XHtUD$hHd$xA\[Hd$HHC:HH$HHǹ$Hd$SATHd$HIHD$`HHt$H?uHcHT$Xu LH|$`*Ht$`HiD$hH|$`(HD$XHt腛D$hHd$xA\[UHH$PHPLXL`LhHIIHEHUHueHtHcHU(L1,HULH}ErALmHEHMH)nHPM1H=~m1HH5HߗUЃt(HcEHH*HB:YH-H}-:*EHA:YH-H} :LEMHULHWAE~I{ t7HEHEHHtHRf|PuHuHtHvHH}9LHuv+QH}&HEHtʙHPLXL`LhH]SATAUHd$HIIHD$hHD$`HHt$詔HrHcHT$Xu.LH|$h8(HT$hHHt$`Ht$`L1'蒗H|$h&H|$`%HD$XHtHd$pA]A\[SATAUAVHd$HIIAH$HT$Ht$ H$rHcHT$`u LHHDLH4$HH5mHTHD$`HteHd$hA^A]A\[SATAUHd$HIIHD$`HHt$bHqHcHT$XuLH|$`&Ht$`LH0ZH|$`$HD$XHtїHd$pA]A\[SHd$HHH$H$HD$hHT$Ht$ ˒HpHcHT$`0H4$AH ?:H0?:H|$h^3Ht$hH(H4$H=?:\AHH$HD$pHtH@H~(HT$pf|B/uH4$HtHvHBHH4$k(FH|$h#H#HD$`Ht赖H$[SATAUHd$HH$H#HD$HT$Ht$(誑HoHcHT$h"HD$pH5mHL$pHߺbH<$H$HtHR|"E1AH4$Icf|NuD9HcHD$pH5mHL$pHߺKbE1sfDH4$1AAŅuH$HtH@HAIcHH4$H|$;=HIcHAAH$IcH41H|$xHt$xI$IcH<0D9VH|$xH|$pH5 mH裰HD$`Ht贎H$A]A\[Hd$D$D$<$4g\$D$Hd$SATHd$HIHD$`HHt$臉HgHcHT$Xu LH|$`Ht$`HyD$h~H|$`HD$XHtD$hHd$xA\[SATHd$HIHD$`HHt$HgHcHT$XuLH|$`Ht$`HH|$`hHD$XHtiHd$hA\[SATAUAVHd$HIIIHD$pHD$hHD$`HHt$KHsfHcHT$XuFLH|$`Lt$`LH|$hLl$hLH|$pHt$pHLLH|$pH|$hH|$`~HD$XHtHd$xA^A]A\[SATAUHd$HIIHD$hHD$`HHt$yHeHcHT$Xu1LH|$`Ll$`LH|$hHt$hHLf_H|$hH|$`HD$XHt̋Hd$pA]A\[SATAUHd$HIIHD$hHD$`HHt$蹆HdHcHT$Xu1LH|$`HLl$`LH|$h6Ht$hHL蟉H|$hH|$` HD$XHt Hd$pA]A\[SATHd$HIHD$`HHt$H/dHcHT$XuLH|$`Ht$`H)H|$`xHD$XHtyHd$hA\[SATHd$HIHD$`HHt$wHcHcHT$XuLH|$`Ht$`HrH|$`HD$XHt鉛Hd$hA\[Hd$APHd$SATAUAVHd$HIIAHD$`HHt$轄HbHcHT$Xu LH|$`LHt$`LDHy贇H|$`*HD$XHt+Hd$hA^A]A\[Hd$HHHd$SATAUHd$HIAHD$`HHt$H*bHcHT$XuLH|$`Ht$`DHH|$`rHD$XHtsHd$pA]A\[Hd$HH$HHǹtHd$SATHd$HIH$HD$hHT$Ht$ AHiaHcHT$`uLH|$hHt$hH$Ho:H|$hHD$`Ht豇Hd$xA\[Hd$H$HHǹHd$SATHd$HID$hHD$`HHt$聂H`HcHT$Xu LH|$`Ht$`D$hHmxH|$`HD$XHtHd$xA\[Hd$H$HHǹHd$SATHd$HID$hHD$`HHt$H_HcHT$Xu LH|$`PHt$`D$hHm踄H|$`.HD$XHt/Hd$xA\[Hd$H$HHǹ3Hd$SATHd$HID$hHD$`HHt$H)_HcHT$Xu LH|$`Ht$`D$hHmH|$`nHD$XHtoHd$xA\[SATAUHIILJ!LMuH)LHAA]A\[SATAUHd$HIIHD$hHD$`HHt$)HQ^HcHT$Xu/LH|$`Ll$`LH|$hHt$hHLFH|$hH|$`}HD$XHt~Hd$pA]A\[SATAUAVHd$HIIAH$HT$Ht$ |H]HcHT$`u DLHH'H$LH8sH5 HD$XHt?Hd$xA\[Hd$H$HHAHd$SATAUHd$HIAHD$`HHt${H:YHcHT$XuLH|$`Ht$`DHq ~H|$` HD$XHtHd$pA]A\[Hd$HH$HHA Hd$SATAUHd$HIIHD$`HHt$RzHzXHcHT$XuLH|$` Ht$`LHqL}H|$` HD$XHt~Hd$pA]A\[SATAUHIILLMuHyLHAA]A\[SATAUHd$HIIHD$hHD$`HHt$yyHWHcHT$Xu/LH|$` Ll$`LH|$h Ht$hHLFa|H|$h H|$` HD$XHt}Hd$pA]A\[SATHd$HIH$HT$Ht$ xHVHcHT$`uHHLH4$H߱{H5mH2HD$`HtC}Hd$hA\[SATHd$HIH$HT$Ht$ FxHnVHcHT$`uHHWLH4$H߱&A{H5 mH袞HD$`Ht|Hd$hA\[HSATAUAVHd$HIIAHD$hHD$`HHt$wHUHcHT$Xu2LH|$`# Ll$`LH|$h Ht$hDHLnyzH|$hH|$`HD$XHt{Hd$xA^A]A\[SATAUHd$HIIHD$hHD$`HHt$vHUHcHT$Xu/LH|$`h Ll$`LH|$hV Ht$hHL6yH|$h7H|$`-HD$XHt.{Hd$pA]A\[H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8 vH5THcHT$xuJHD$H$H|$?1HD$H|$tH|$tH|$HD$HxHD$xHtH$H$uHSHcH$u'H|$tHt$H|$HD$HP`yxzoxH$HtM{({HD$H$H$H|$Ht$H$L$H|$uHD$HT$HRhHD$H|$HT$(Ht$@tHRHcH$HD$ T$H|$1HD$Hx0H4$sHD$Hx0tfHD$Hp0HD$Hx81HL!:wHD$H@88\uHD$Hx81HD$Hp0|$H|$SHD$Hx81HD$@@HD$ H|$tH|$tH|$HD$HvH$HtH$H$sHQHcH$u'H|$tHt$ H|$HD$HP`vxyvH$HtWy2yHD$H$Hd$H|$H4$HT$H$H|$0HtUHT$Ht$0rH QHcHT$puHt$H|$_uH|$HD$pHtawHd$xHd$Hd$Hd$H|$H4$HT$H$H|$0H*tUHT$Ht$0BrHjPHcHT$puHt$H|$JuH|$ HD$pHtvHd$xHd$Hd$SH$H|$H4$HT$HD$ HDŽ$pHDŽ$PHT$0Ht$HqHOHcH$H4$H|$09H$H$GqHoOHcH$}H=0C;1HD$H$H$pH$OHcH$HHt$H|$bH|$HD$HÃD$(fD$(D$(H|$H$PHD$HH$PHt$ H|$H$PߚT$(H|$H$pHD$HH$pH$XHF:H$`HD$ H$hH$X1ɺH$PH$PH|$HD$HP;\$((rH|$[H$HHtotrH|$H$HtNtrH$p ߚH$PޚH|$ ޚH$HttH$[H$H|$H4$HT$L$HDŽ$HT$ Ht$8oH.MHcHT$xH4$H|$H$H$nHLHcH$HD$x@uT$Ht$H|$SgHt$H|$t)Ht$H|$uT$Ht$H|$+@t$0H$H$Ht$H|$jEqH|$H$Htr$qH$wݚHD$xHtrH$H$H|$H4$HT$L$HDŽ$HT$ Ht$8mHKHcHT$x*H4$H|$.H$H$QHf/HcHT$xuOHD$H= UVHT$HBHD$H|$tH|$tH|$HD$HTHD$xHtH$H$PH.HcH$u'H|$tHt$H|$HD$HP`S0USH$HtyVTVHD$H$SATHd$HIM~ HHH{(;H1;HtMt HHPpHd$A\[SATAUHIAՀ{tDLHNuH{IcLHCH0A]A\[Hd$HHxH@HHd$SHZHHtHcHZ[Hd$HHxH@HHd$Hd$HBZHt@Hd$SATHd$HIM~ HHH9H9H19HtMt HHPpHd$A\[SATH$HH4$HDŽ$hHT$Ht$ ~NH,HcHT$`uH5t)H$H|$hǚHt$hH8AAIH4$H$pH$hHP8H$hH|$hnǚHt$hH@AE|HD6PH$h8HD$`HtYRH$xA\[SATH$HH4$HDŽ$hHT$Ht$ NMHv+HcHT$`uHt)H$H|$hƚHt$hH@AIH4$H$pH$hHhP8H$hH|$h>ƚHt$hH?AE|HD5OH$hHD$`Ht)QH$xA\[Hd$HƀƀH3Hd$SATAUH$HHDŽ$pHDŽ$`HHt$KH*HcHT$X#HuH=U8H H.;HHAAEA@AtHDHH$`HH$`H|$`ĚHt$`IcHPH5:hDHH$pHH$pH$hH$`H}P8H$`H|$`SĚHt$`IcHPH9E9:ƃMH$p)H$`HD$XHt=OH$A]A\[SATAUH$HHDŽ$pHDŽ$`HHt$&JHN(HcHT$XHuH= U6H Hn9HHAAEA@AtDDHH$`H$`H|$`ÚHt$`IcHPHy8dDHH$pH$pH$hH$`H~P8H$`H|$`šHt$`IcHPH8E9BƃLH$pqH$`dHD$XHtMH$A]A\[H$H|$Ht$H$HL$H|$uHD$HT$HRhHD$H|$HT$(Ht$@XHH&HcH$uZHD$ HD$HxH4$&HD$HxHt$HD$ H|$tH|$tH|$HD$HKH$HtH$H$GH%HcH$u'H|$tHt$ H|$HD$HP`J9LJH$HtM]MHD$H$SATAUHAM1E|H%D9~DH腽ILA]A\[SATAUAVAWIHAM1HHtH@HHnEtXL蹾AEA@ADLQHxHƚHuDL5ITE9MLaAE|:AADLHxHbuDLIE9LA_A^A]A\[SATHd$HIM~ HHHHH1苿HtMt HHPpHd$A\[SATHd$I落|"Ã@L3H1L«Hd$A\[SATAUHAE1H{DHxAAEtH{D9DA]A\[H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8DH"HcHT$xuaHD$HD$HxH4$~H=mݼHT$HBHD$H|$tH|$tH|$HD$HcGHD$xHtH$H$ DH3"HcH$u'H|$tHt$H|$HD$HP`GHFH$HtIIHD$H$SATHd$HIM~ HHH{/HtMt HHPpHd$A\[SATAUHAM1E|H5D9~DH蕹ILA]A\[SATAUAVAWIHAM1HHtH@HH~EtXLɺAEA@ADLQHxHšHuDL5ITE9MLqAE|:AADLHxH^uDLIE9LA_A^A]A\[SATHd$HIM~ HHHHH1蛻HtMt HHPpHd$A\[SATHd$I蠹|"Ã@L3H-L课Hd$A\[w(UHHd$H]LeLmHAADs*H9H=0D6HH5HCEtDc(Dc(H]LeLmH]UHHd$H]LeHAD;c(t>S(D9t*H9H=/D{5HH5HyBDc(H]LeH]SH$H|$Ht$H$L$H|$uHD$HT$HRhHD$H|$HT$(Ht$@@H0HcH$HD$ HD$Hx H4$үH=m1HT$HB0HT$D$B(HDHD$Hp8H=%mDkHD$HX8C.C,C;C/C:H5$9H{cH5<9H{0SH5L9H{8CHD$ H|$tH|$tH|$HD$HBBH$HtH$H$>HHcH$u'H|$tHt$ H|$HD$HP`AiCAH$HtDDHD$H$[H$H|$Ht$H$L$H|$uHD$HT$HRhHD$H|$0HT$(Ht$@>HAHcH$wHD$ |$t H$H|$1HD$HH$H|$11HD$HHD$ H|$tH|$tH|$HD$H@H$HtH$H$W=HHcH$u'H|$tHt$ H|$HD$HP`N@AD@H$Ht"CBHD$H$SH$H|$(Ht$ H$HL$DD$DL$H|$ uHD$(HT$(HRhHD$(H|$(MHT$8Ht$P}H$HtH$H$;HHcH$u'H|$ tHt$0H|$(HD$(HP`> @>H$HtiADAHD$(H$[SH$H|$ Ht$H$HL$DD$H|$uHD$ HT$ HRhHD$ H|$ >HT$0Ht$H:HHcH$HD$(HT$ HD$HBHD$ HxtH\$ HD$ HxC,L$H$H|$ 1HD$ HHD$(H|$ tH|$tH|$ HD$ H]=H$HtH$H$:H*HcH$u'H|$tHt$(H|$ HD$ HP`<>,eHEHUHu8HHcHUHEHHEH5DHMH} HEHXH|*AAHUIcH4HUIcHcH}~H5(DH}W^HEHtiH$HtH@HHD|H$HcHLLHM1Ht$pHHD$pHD$hAHt$`H|$hWu$D$`D$`$WLLHM1Ht$xHHD$xHD$`1Ht$hH|$`~u$D$hD$h$W/H|$x譛H|$p裛HD$XHt0$H$A^A]A\[SATAUHd$HIID$hHD$`HHt$+H HcHT$XueH߾+t-Hs8D$hH|$`MHL$`LLHH'D$hH|$`LHL$`LLHH^.H|$`贚HD$XHt/Hd$pA]A\[SATAUHd$HIID$hHD$`HHt$*HHcHT$XujH߾Kt/Hs8D$h0H|$`AMHL$`LLHH*D$h@0H|$`LHL$`LLHHy-H|$`ϙHD$XHt.Hd$pA]A\[SATAUHd$HIID$hHD$`HHt$)HHcHT$XueH߾kt-Hs8D$hH|$`cHL$`LLHH'D$hH|$`zHL$`LLHH,H|$`HD$XHt.Hd$pA]A\[SATAUHd$HIID$hHD$`HHt$ )H4HcHT$XueH߾t-Hs8D$hH|$`JHL$`LLHH'D$hH|$`JHL$`LLHH+H|$`HD$XHt5-Hd$pA]A\[SATAUAVHd$HIIE0H߾H{0LIHt#H߾I|$L HADHd$A^A]A\[SH$H|$H4$HT$HL$HD$0HT$`Ht$x'HHcH$bHL$H$Ht$0H|$M1HD$HH|$PLD$Q$HD$0HtH@HH?HHD$ Hct$ H|$@lH$H$'H7HcH$HD$0HuH]HD$HHD$@HD$8\$ |]D$TD$THD$HD$RHD$H@D$SH|$PH$ ҈HT$8$ D$\HD$HHD$8;\$THt$@T$ H|${ )H|$@lH$Ht*e)H|$0軕H$Ht*D$ H$0[SH$H|$H4$HT$HL$HD$(HT$HHt$`%HHcH$H=}C[HD$ H$H$|%HHcH$Ht$H|$ 1 H|$ HD$ HHHH|$(1軥HD$(HtH@HHD$ H@HD$0HD$(HuH[HD$8H\$(HtH[HH?HH|gD$DD$DHD$00H$NH$H|$@HD$8T$AHD$8T$BPHD$8HD$0;\$DHL$(HT$H4$H|$HD$Hs'H|$ iH$Ht(R'H|$(訓H$Ht(H$[UHHd$H]LeLmLuL}HIHUAͅt*H#9H=DHH5H%1M1IHHE!HUHzt HBH1HEH}t HmH;EuH}t7HLIHUHHHEHUHELH9u1M1IMtHULHH*H9H=DHH5H$H]LeLmLuL}H]Hd$HHHd$H$H|$Ht$H$L$H|$uHD$HT$HRhHD$H|$6HT$(Ht$@9"HaHcH$}HD$ Ht$H=mtuL$L$H$H|$1HD$HǀH|$ HD$ H|$tH|$tH|$HD$H$H$HtH$H$q!HHcH$u'H|$tHt$ H|$HD$HP`h$%^$H$Ht<''HD$H$H$H|$Ht$H$L$H|$uHD$HT$HRhHD$H|$HT$(Ht$@ HHcH$ueHD$ |$tH$H|$1H$H|$11 HD$ H|$tH|$tH|$HD$HX#H$HtH$H$H%HcH$u'H|$tHt$ H|$HD$HP`"$"H$Ht%%HD$H$SH$H|$(Ht$ H$HL$DD$DL$H|$ uHD$(HT$(HRhHD$(H|$(DHT$8Ht$P-HUHcH$HD$0HT$(HD$HBHD$(Hxt(H\$(|$tHD$(HxίuC,C,L$H$H|$(1cHD$0H|$(tH|$ tH|$(HD$(H!H$HtH$H$WHHcH$u'H|$ tHt$0H|$(HD$(HP`N!"D!H$Ht"$#HD$(H$[SH$H|$ Ht$H$HL$DD$H|$uHD$ HT$ HRhHD$ H|$ 5HT$0Ht$HHHcH$|HD$(HT$ HD$HBHD$ HxtH\$ HD$ Hx1ͯC,L$H$H|$ 1HD$(H|$ tH|$tH|$ HD$ H H$HtH$H$HHcH$u'H|$tHt$(H|$ HD$ HP`=!H$Ht"a"HD$ H$[SH$H|$Ht$H$L$H|$uHD$HT$HRhHD$H|$HT$0Ht$HH HcH$_HD$(L$H|$11bHT$H$HH=iC۫HD$ H$H$HHcH$HD$HPHD$HH|$ HD$ HHt$ H|$H\$HD$HxtMHD$HxHD$H@H=t"HD$HxHD$H@H=u ƃƃH|$ H$HtjHD$(H|$tH|$tH|$HD$HH$HtH$H$NHvHcH$u'H|$tHt$(H|$HD$HP`E;H$Ht HD$H$[Hd$H|$H4$H~HD$HT$HHHD$tXtOHT$Ht$(HHcHT$huH|$HD$HHD$hHtQH|$1H|$tH<$tH|$HD$HPpHd$xSATAUAVAWH$`H$H4$HD$HD$HD$HDŽ$HT$ Ht$8HHcHT$xHDŽ$H$Hx0H$HP0HH$tHH<$H$HAEH<$H$H$HH$H|$HEH@ HtH@HHEHp H}#H}t[H}uNHEHHDž HH˄mHPM1H=CSHH5HHEHPHEHp H}HEHSHEHtEHEH1HEHHHEHPHEHH}HEHHuH}^HEƀH}H HtHqHqHqH}qHEHtHLLLH]Hd$Ht ƀ HHHd$SHd$H<$HHx0H$H@0HH$Hx @%{H=OCHD$HT$Ht$(\HߙHcHT$hH$HxtH$HpH|$HT$JDH$Hp H|$1HD$HH$Hxt:H$HxH$H@HHD$Hx HD$H@ H9toH$x,t H$HxHD$Hx 藰tH$HD$H@ HBH$@,+HD$Hx HD$H@ HH$HBH$@,H|$SH$Ht$H<$ VH|$LHD$hHt_H$H$HxtIH$HxH$H@H=t H$HxH$H@H=u ƃƃHd$p[H$H|$Ht$H$L$H|$uHD$HT$HRhHD$H|$ HT$(Ht$@IHqݙHcH$uUHD$ L$H$H|$1HD$ƀHD$ H|$tH|$tH|$HD$HH$HtH$H$HܙHcH$u'H|$tHt$ H|$HD$HP`/H$HtxSHD$H$H$H|$Ht$H$L$H|$uHD$HT$HRhHD$H|$ HT$(Ht$@HܙHcH$uUHD$ L$H$H|$1EHD$ƀHD$ H|$tH|$tH|$HD$HH$HtH$H$MHuۙHcH$u'H|$tHt$ H|$HD$HP`D:H$HtHD$H$Hd$HHx0H@0HHd$SATH$H|$H4$HDŽ$HDŽ$HDŽ$HT$ Ht$8tHڙHcHT$xH<$sǫH$H$9HaڙHcH$qHD$Hx0tÃVD$D$HD$Hx0t$葸HD$HxstHD$HpH<$H$HPH$3k5\tm1H$uH$H$HD$H@H$5&tm1H$uH$H$H$1ɺH$nH$H<$H$HPHD$HxsAAE D$D$HD$Hxt$葳Hxht,HD$Hxt$rHpH<$H$HPH$jHD$Hxt$9H@H$56sm1H$tH$H$HD$Hxt$H@H$H$1ɺH$mH$H<$H$HPD;d$Lcd$HD$Hx0qHcHI9}H<$1H$HP;\$H<$īH$HtMH$ iH$hH$hHD$xHtH$A\[SATHd$HAH{ )iHǃEtHQHd$A\[Hd$Hd$Hd$H:Hd$Hd$H:Hd$Hd$Hc:Hd$Hd$HC:Hd$Hd$H#:Hd$Hd$H:Hd$Hd$H9Hd$H$H|$Ht$H$HgH|$uHD$HT$HRhHD$H|$pHT$ Ht$8HՙHcHT$xHD$H$H$zHՙHcH$u8HD$HxH4$QgHD$@H<$t H|$W H|$VHfH$HtHD$H|$tH|$tH|$HD$H HD$xHtH$H$HԙHcH$u'H|$tHt$H|$HD$HP`5H$Ht~YHD$H$SATHd$HIM~ HHH{ t H{ AH1HtMt HHPpHd$A\[SHd$HH4$HeHT$Ht$ HәHcHT$`u'HsH<$uHtH{H4$eHHdHD$`Ht Hd$p[Hd$H<$H09H=H$H|$1X͚H$9H$9H$HtΚHD$ H|$tH|$tH|$HD$H6͚H$HtH$H$ɚHHcH$u'H|$tHt$ H|$HD$HP`̚]Κ̚H$HtϚϚHD$H$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8ɚHEHcHT$xuJHD$H $H|$1HD$H|$tH|$tH|$HD$H˚HD$xHtH$H$ȚH躦HcH$u'H|$tHt$H|$HD$HP`˚͚˚H$Ht]Κ8ΚHD$H$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8ǚHHcHT$xuJHD$H $H|$1HD$H|$tH|$tH|$HD$HʚHD$xHtH$H$BǚHjHcH$u'H|$tHt$H|$HD$HP`9ʚ˚/ʚH$Ht ͚̚HD$H$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8}ƚH襤HcHT$xuJHD$H $H|$1{HD$H|$tH|$tH|$HD$HJɚHD$xHtH$H$ŚHHcH$u'H|$tHt$H|$HD$HP`ȚtʚȚH$Ht˚˚HD$H$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8-ŚHUHcHT$xuJHD$H $H|$1+HD$H|$tH|$tH|$HD$HǚHD$xHtH$H$ĚHʢHcH$u'H|$tHt$H|$HD$HP`ǚ$ɚǚH$HtmʚHʚHD$H$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8ÚHHcHT$xuJHD$H $H|$ 1HD$H|$tH|$tH|$HD$HƚHD$xHtH$H$RÚHzHcH$u'H|$tHt$H|$HD$HP`Iƚǚ?ƚH$HtɚȚHD$H$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8šH赠HcHT$xuJHD$H $H|$ 1HD$H|$tH|$tH|$HD$HZŚHD$xHtH$H$šH*HcH$u'H|$tHt$H|$HD$HP`ĚƚĚH$HtǚǚHD$H$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8=HeHcHT$xuJHD$H $H|$ 1;HD$H|$tH|$tH|$HD$H ĚHD$xHtH$H$HڞHcH$u'H|$tHt$H|$HD$HP`Ú4ŚÚH$Ht}ƚXƚHD$H$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8HHcHT$xuJHD$H $H|$ 1HD$H|$tH|$tH|$HD$HšHD$xHtH$H$bH芝HcH$u'H|$tHt$H|$HD$HP`YšÚOšH$Ht-ŚŚHD$H$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8蝾HŜHcHT$xuJHD$H $H|$ 1HD$H|$tH|$tH|$HD$HjHD$xHtH$H$H:HcH$u'H|$tHt$H|$HD$HP` šH$HtÚÚHD$H$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8MHuHcHT$xuJHD$H $H|$1KHD$H|$tH|$tH|$HD$HHD$xHtH$H$¼HꚙHcH$u'H|$tHt$H|$HD$HP`蹿D诿H$HtšhšHD$H$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8H%HcHT$xuJHD$H $H|$1HD$H|$tH|$tH|$HD$HʾHD$xHtH$H$rH蚙HcH$u'H|$tHt$H|$HD$HP`i_H$Ht=HD$H$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8譺H՘HcHT$xuNHD$HD$H$HP0H|$17HD$H|$tH|$tH|$HD$HvHD$xHtH$H$HFHcH$u'H|$tHt$H|$HD$HP`蠾 H$Ht鿚ĿHD$H$SATHd$HIM~ HHH{tH{HHCHXH1\HtMt HHPpHd$A\[SHH{tHH{HnHw[Hd$HH1^OHd$HGHHd$HH~0/>Hd$11G@t1HG 1UHHd$H]LeLmLuHIIHHi9H=RmHH5H1H]LeLmLuH]UHHd$H]LeLmLuHIIHfHi9H=SRmHH5H謹1H]LeLmLuH]UHHd$H]LeLmHIHni9H=SmHH5HK1H]LeLmH]Hd$HXHd$Hd$H1HHHd$0Hd$HHP0HHHd$UHH$`HhLpLxLHAIHEHUHuuH蝔HcHUubH;HHHEHEHU1H5ch9H}HUH=rSmHH5HM1+H}%HEHt褺LHhLpLxLH]1HG0@pHd$HG0Hxx*Hd$0SATAUHHM1_fHHu9Lc(H{8t!MtHs8L['Ae IH[( HCLHHxH[(M1HuA]A\[Hd$HHd$Hd$HHd$Hd$HH1JHd$Hd$HH1JHd$Hd$HH1JHd$HHG0SATAUAVHd$HA@tKcHHIfDDLMm(MuHHptKHHHHmAAE|(AADH)HD^E9Hd$A^A]A\[UHHd$H]HCtLHt$`L\Ht$`ID$hHx@HeLI@HpXLBgH|$`=HD$XHtްHd$pA_A^A]A\[SATAUHd$HIH$HD$hHT$Ht$ ˫HHcHT$`[HH<t.{te HH|$hHt$hLAHHH^9MH<$MLHuA͝H|$`C,HD$XHtDDHd$pA]A\[H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8HExHcHT$xuhHD$H|$1贄HD$H$HPH=B薄HT$HBHD$H|$tH|$tH|$HD$H̜HD$xHtH$H$tHwHcH$u'H|$tHt$H|$HD$HP`kaH$Ht?HD$H$SATAUIIM~ LI$ID$@|'ÃID$HPH<ᄚI|$ӄL1艄MtMt LI$PpA]A\[HG;psHGH@!H1HG@SATAUAVAWHd$IHt$H$D$E1IG@A`IcIcHHIGHPHHH5H謖LH]LeLmH]UHHd$H]LeLmLuHIIHH9H=0mHH5HD1H]LeLmLuH]SATHd$HpIHtID$I|$Lt It$LHzLHd$A\[SATAUHIHAŅu0LI$tAID$Ht H;CtA DA]A\[SHHCHxLt6HCH@LHxHt%{HHtFttu H{2[SATAUAVAWHd$IHD$HT$H $IG@AE@IGHPHHcL$PHH9|HPLHHuHZɆIfxJv PJHIHT$HtHRH|$HuH=&ɆLL@HI@HHtHIA@H)Bu H$A A9XE0DHd$ A_A^A]A\[SATAUHd$HIM1HCHx00ƅ|$HLHt4$HHILHd$A]A\[SATHd$HIHCHx00sƅ|#HLHotHCH@$H1Hd$A\[SATHd$HIHJHtH@HSIT$Hd$A\[UHH$`HhLpLxLuL}IIHEHUHuאHnHcHULLI$Åt,H E9H=U)mHH5H~M1LHuIE HUAuHHML5tID$H@UL4I|$uTIELH0HULADŽt'Mu"ID$HPEL4ID$H@UL,I|$LuMtIFID$IEH}o!HEHtqLHhLpLxLuL}H]UHHd$H]LeLmLuHIIHC@t/H zC9H='mdHH5H"LLHIHu*H5C9H=i+mtHH5H␚LH]LeLmLuH]HG8HtH@Hd$HHHp8$Hd$SATHd$HIHHH{8L$Hd$A\[UHHd$H]LeLmLuHIAAHsD9s*HB9H='mHH5HDHPHs8DLn:H]LeLmLuH]SATHd$HIHHGHs8H{8L7$Hd$A\[UHHd$H]LeLmHAIHHHD9s*H+B9H=&mHH5H0DHPHs8Lm>H]LeLmH]UHHd$H]LeLmHAAHHgHD9s*HA9H=_&mBHH5H蠎DHpH{8D =H]LeLmH]SATAUHAIDHHTLDHA]A\[ø Hd$HHH5fA9i"Hd$SATAUAVHd$HAIL# IEtLLH=LHd$A^A]A\[Hd$HHP`HdmH4!Hd$Hd$HHօtH`HxP!Hd$SATAUH@0u AIHtMd$H޺:29AE~ZgAEgAT$9|Hcf|K:uA19At!E9tIcHH|C0ҾjuADA]A\[SATHd$HIH$HT$Ht$ 膊HhHcHT$`HH1H<$H5?9u-MtULH5?99.HtALH5?9%.Ht-H<$H5?9耦uMtLH5?9-Hu0HpHD$`Ht葎Hd$hA\[UHHd$H]LeLmLuL}H}IIIL.Å}0HcHH ?9H=/"m蚽HH5HX1ҾH=Zzm蕞II}(LI}8LzI}0LnL1ҾH=mh5HEL HEH]LeLmLuL}H]UHH$H}HuHUHMHtCHEHUHH@Ht*H>9H=$mHH5HlH=6mH6mHEHUHPxHUHx2HZfHcHpuAH}tHEHUHP0HuH}HUHuH}+HEHH}HpHt\HXH貇HeHcHuH}s辊I贊HHt蓍nHEH]H$(H|$H4$HuHD$HT$HRhHD$H|$+HT$Ht$0HmHD$HHL$xWHD$HHxH_mH0HD$HHxH_mH0dHT$H=mHT$HHD$HHO_mH0HT$HHD$HH8_mH0HT$HHD$H|$tH<$tH|$HD$H褈HD$pHtmH$H$PHxcHcHT$xu&H<$tHt$H|$HD$HP`K։AHD$xHt"HD$H$SATAUAVHd$HIM~ HHK H{hoHpHpH1LcLH?HIIIE|(AfDAHDHLHt$`I$H\$`LHt$hI$(Ht$hLHH"LHt$hI$Ht$hL,HAD$XCXLHL~lH|$hH|$`HD$XHtmHHd$pA]A\[SATHd$HIHD$`HHt$hHGHcHT$Xu,HHt$`HHt$`L{XtLekH|$`HHD$XHtImHd$hA\[SHHK[GXHGSATHd$HIM~ HHK HC0Hxht H{0HH{X THCXH1۽HtMt HHPpHd$A\[SATAUAVAWH$pH|$p@t$xH$HD$hHD$`HHt$YgHEHcHT$X8HD$pH$H;P0"HD$p@tOH|$pHt$`HD$pHH\$`H|$pHt$hHD$pH(Ht$hH$HI9H|$pHt$hHD$pHHt$hH$H$HIHD$pHxX^HD$pHxX&ÅCAAHD$pHxXDILt*H$L@IHL HBRD9HD$pHx0H5lIHD$pHP0LHتHD$pHPHIWHHD$pPPAWPHD$p@tAOHD$pHxXvHD$pHxX>AE|]ADAHD$pHxXDIH$L@IHLucHL E9D$xtH$LH|$pi4hH|$hH|$`HD$XHtiLH$A_A^A]A\[SATAUAVAWIILcIGLLpMtVA~tOLÅ|>AfDADLIAEttu LLD9A_A^A]A\[SATAUAVAWHd$IIHT$hHL$pHD$`HHt$cHBHcHT$XiL1%MVAFtgLHt$`I(H|$`Ht$hHuBfA~Jv9LLI0IH|$pHt$`H|$`Ht$hdHI~XI~XAEAfAI~XDHHHt$`H0H|$`H59HuZHHt$`HH|$`Ht$hHu5LHH IH|$pHt$` H|$`Ht$hHt&E9cLkHLHL$pHT$hFeH|$`HD$XHtgH$A_A^A]A\[SATAUAVHd$HIHH5lIHLH ID$IELA|$duAMI|$(t ID$(@AEXI|$tAD$ gPID$H0LI<$t^M4$QfAFHrCtt7IvPHHLTIFH0HHHL4M6Mu I|$PtIt$PHHL LHd$A^A]A\[SATAUAVAWHIAHH5lILHHHIGHCLItAG gPIGH0HAE|:AfAIhLL]HHI@tIG@HXE9HA_A^A]A\[SATH$(HIH5XGmHHD$hHDŽ$HT$pH$$`HL>HcH$HC0@ HFmI|$HTA|$$tHC0HHD$|$ |$ u1HD$H0H=9 HuHC0HHD$NHcL$ HD$H0H$ H$Ht$hHHC0HHt$h{aHD$H{0HCtHHH=bH$H5EmH葅H|$hH$HtcH$A\[SATAUHH{XtBH{XXAAE|-AfDAH{XDHHxE9HA]A\[SHH{XuHھH=mHCXHCX[SATAUHIIL1H{Xt H{XLHtLHHA]A\[SATAUAVHd$HIIIL1>H{Xt+H{XLLHCXHHtLHHHd$A^A]A\[SATAUAVHd$IIILLI$HHLt!I|$X4$HH= lAH(I|$0LHLcID$XHxHڋ4$ƪLHHHHd$A^A]A\[SATHd$HIHH7H{XtH{XLHHHd$A\[SATAUHIIHHH{XtH{XLL1HyHA]A\[UHH$@HHLPLXL`LhIHpIHMHEHUHu[H:HcHULWI|$0HpHxI|$0HMLHpAE}0IcHH 9H=2l蝏HH5H[]LI$HIcHPLH}HUHMxHt#I|$XuIID$XHxuª=I|$0H5lIIT$0LHΟMefxfAEHAMI|$XHULhID$XHxLu4ĪID$0HLMtHRLMuH5\IELfE}JHuLIEy]H}HEHt^HHLPLXL`LhH]Hd$HXtHXkHH=l|>1Hd$Hd$HHxXt"HxXH@XHHH=lA>1Hd$SHHHHHHHHH=Tl=[SHHHHHHHHH=l=[UHHd$H]LeLmLuHIHyMH{Xt/HCXHxLAA~H{XDHCXH*HQ9H= lHH5HZLH]LeLmLuH]Hd$HHHx0HE01Hd$Hd$HHHx0HHAHd$Hd$HXtHXkHt0Hd$Hd$HHxXtHxXH@XHHt0Hd$Hd$HXtHX+v0Hd$Hd$HHH59Hd$SHc[Hd$HHHp8|Hd$UHH$pHxLeLmLuHAHEHUHuVH4HcHUH2HAE9s*H9H='l HH5HhXHS8DHHtBDD)H{00IƋCAFHs8DH}HuH{8fH{tHS(H{LHCHH"YH}HEHtZLHxLeLmLuH]GHd$HHH59Hd$Hd$HHHp8Hd$Hd$HHH59Hd$Hd$Hw8HHHd$ Hd$HHH@8Hp(8Hd$Hd$HHH@8Hp8Hd$Hd$HHH@8Hp0Hd$Hd$HHH@8Hp@Hd$SATAUHILI$@H¾H=1mTIHCIEhHp@I}pL@LLHHA]A\[SATAUHILI$@H¾H= mIHCIE8Hp(I}@L@葟LiLHHA]A\[H$H|$Ht$H$HL$H|$uHD$HT$HRhHD$H|$bHT$(Ht$@HSHp1HcH$HD$ H$H|$1H|$ jHT$HB8HD$Hx8gHH5iHT$XHD$Hx8gHH5HT$XH|$@耞HD$ H|$tH|$tH|$HD$HUH$HtH$H$TRH|0HcH$u'H|$tHt$ H|$HD$HP`KUVAUH$HtXWHD$H$SATHd$HIM~ HHH{8hH{@=H{H=H1HtMt HHPpHd$A\[SHH{@uHھH=6lHC@HC@[SHH{HuHھH=lHCHHCH[ Hd$HHH@8HpHHd$Hd$HHH@8Hp(Hd$Hd$HHH@8Hp Hd$SATAUHILH5mVILLH聕HC8IE8LA]A\[øHd$HHH@hHpHd$Hd$HHH@hHp(xHd$Hd$HHH@hHp0XHd$Hd$HHH@hHp88Hd$SATAUAVHd$IAILH5m|LHHH觔ID$hHChEtLHLH@PHHd$A^A]A\[øHd$HHHpHHd$Hd$HwHHHHd$Hd$HHW@Hw8HHHd$Hd$HHHp8Hd$Hd$HHHp@Hd$SATHd$HIHHH{@LHd$A\[H$H|$Ht$$L$H|$uHD$HT$HRhHD$H|$HT$(Ht$@NHB,HcH$uNHD$ HT$$Bt$H|$HD$ H|$tH|$tH|$HD$HPH$HtH$H$MH+HcH$u'H|$tHt$ H|$HD$HP`|PRrPH$HtPS+SHD$H$SATAUAVAWHd$H|$H4$H~H|$HD$HHD$LxHD$HcPHD$HPIHD$DpuDHD$HcPIcHHIGH(fHD$I;EuLIEP`HD$HcPIL9sM'L誒MIcHH?HHAMoMuH\$H18HtH$Ht HHPpHd$A_A^A]A\[SATHd$HAHcSIcHHrHkH$HSHHcSIcHHH$HHHCH$HCDcHd$A\[SATAUIII|$ tI\$ HCID$ .ID$HI;D$vAt$LNI\$IcD$I)D$HL8LcHA]A\[HHP HVHp Hd$HÌHd$Hd$覌Hd$Hd$f}Hd$H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0JH(HcHT$puNHD$H=Em5HT$HBHD$H|$tH<$tH|$HD$HMMHD$pHtpHT$xH$IH$(HcH$u&H<$tHt$H|$HD$HP`LNLH$HtOOHD$H$SATHd$HIM~ HHH{5H1N5HtMt HHPpHd$A\[HWHB HR(HGHp HP(H$hH|$H4$HT$H=vlHolHHT$HHD$HPHD$HHHBHD$HHH$H=YKmlHD$HT$0Ht$HHH&HcH$uHD$H0HT$H|$ KH|$4H$HtMH$H$hH|$H4$HT$H=lHlHHT$HHD$HPHD$HHHBHD$HHH$H=iJm HD$HT$0Ht$HGH%HcH$uHD$H0HT$H|$ %JH|$3H$HtLH$UHH$H}HuHUMȃsH}HEHHEHEHEȃ}u@H}HEH u*Hq9H=%l蘂HH5HHH}HEHt1 t,t*H*9H=la~HH5HoHH}HEH u HEHEH}HEH@HEHEHPHEHHBHEHHHUH=HmƙHEHUHPEH$HcHHPH}HEH0HEH#HcHHUHuH}SH}HEHHE؋Et!t.tgyHuH}(H}1HEHH}HEHHHuH}HEHPSHUHuH}HEHH8HEHP(HuH}HEHHHUHuH}HEHPGH}0HHtCIGH}0HHHt$IHEH]SATAUHd$HIIHD$`HHt$"DHJ"HcHT$XL#LkLHHH8H@H{Ht$`HCHHt$`HHxXڙH{@0UH3HHC@pxH;HHHCt H{HHCHHBhHCHǀFH|$`ԙHD$XHtGHd$pA]A\[SATAUHd$HIIHD$`HHt$CH*!HcHT$XLI$@HLkLHH H8H@H{@OLkH;Ht$`޶H|$`H5b8HAE0H;MHtHx8oYHSHLH=l&HHZuEH|$`әHD$XHtFHd$pA]A\[H$XH|$H4$HT$HD$H8HD$HH|$eHHD$HpTHD$ HHT$(Ht$H<$H|$(H $HT$(H=:Dm蝝HD$0HT$HHt$`tAHHcH$u*H|$ @0 HT$0Ht$ H|$8 HD$@U^DH|$0T-HD$@VH|$ @ތH$HtEH$SATAUAVAWHd$IHt$xHD$pHD$hHD$`HHt$@HHcHT$XH|$`{%Hd8HHZ8HHIwH|$h)Ht$hH|$`%H|$`HD$`HPIIGxxIIGH0H|$xHD$xH|Gtu=Ht$xH=Al$IIHt$pH\$pILH0I_@tHM&AD$HtI<v4AT$`It$XI?0HH|$xviA|$H AT$`It$XI?HH|$x贙<LLDHH|$x藙LLwHH|$xzAT$`It$XI?HH|$xIIIGH I?L6ILH|$xLl$xH|$xHD$xHHD$x|IHH=ldHH|$xǘRID$H0I?IHHH|$x衘u%HHhfHH0IxHuHH0@H|$p0ϙH|$hf"H|$`\"HD$XHtBH$A_A^A]A\[SATAUHd$HIH$HT$Ht$ =H<HcHT$`u;ILΙLIcT$`It$XID$H0H;H$HHH?HhΙHD$`HtiAHHd$pA]A\[SATAUHd$HIH$HT$Ht$ dH|$'H$Ht?H$H$H<$Ht$HT$HDŽ$HT$0Ht$Hz:HHcH$H=lHlH$HHt$H$͙H$H$HLHT$H=H$Hd$H\8Hd$H$H<$Ht$HDŽ$HT$Ht$09H7HcHT$pH$HHT$ H=B>HD$HT$xH$8HHcH$u*Ht$H$H$H<$Ht$;H|$$H$Ht=~;H$ѧHD$pHt ]HH58 LHH58 ;HH58 *H8H=[2Cf#HH5Hd0H]LeLmH]UHHd$H]LeLmHIIIcEfADDf= f- f-tSf-t9f-t f-tHH5e8 HH5y8 HH58 nHsHH LMtH@IcUH9~MHBfA|D u?AE8HsHHi *H8H=D1CO"HH5HM/H]LeLmH]UHHd$H]LeLmHIIIcEfADDf= wf- ^f-tGf-t0f-tf-tSHH5H8lHH5_8[HH58JHH589H߾ *H8H=T0C_!HH5H].H]LeLmH]UHHd$H]LeLmHIIIcEfA|D]uZLMtH@HIcUH9|2HBfA|D]u$HBfA|D>uHH5E8AE9H߾]*H8H=/C HH5H-H]LeLmH]SATAUHIE1I9tKHHtHRLMtH@9LHcLHAŅuHtH[MtMd$L)ADA]A\[Hd$HF H0HG H8xHd$SATAUHd$IIHD$hHD$`HHt$*HHcHT$XI}Ht$`IEH(H\$`I<$Ht$hI$H(H|$hHÅu@I}Ht$hIEH Ll$hI<$Ht$`I$H H|$`L;-H|$h豻H|$`觻HD$XHt.Hd$pA]A\[H$H|$Ht$H$HL$H|$uHD$HT$HRhHD$H|$HT$(Ht$@x)HHcH$^HD$ H|$1HT$H$HB oHT$HB0HD$HP0HP8HD$@@HD$@HD$@HD$@xHD$HxHH58,H|$BHD$@(HDŽ$H5{lHD$HxpH$HT$H=mb1HT$HBPH=dB(HT$HB`H=sdBHT$HBhH=YdBHT$HBXHD$ H|$tH|$tH|$HD$H*+H$HtH$H$'HHcH$u'H|$tHt$ H|$HD$HP`*Q,*H$Ht-u-HD$H$SATAUIIM~ LI$ID$X@|'ÃID$XHPHHtH{P+.[Hd$HHH=lH HH8JHd$SATHd$HI{u H@0{tH TLHH_8AHߺ H58H LHH8HߺH58Hd$A\[SATHd$HIHH߾&"LHH߾; Hd$A\[SATAUHIIՀ{u H@0HH5G8LHMt&H߾ H >LHH8 HH5"8]A]A\[SATHd$HI{u H@0qHߺH58H LHH98HߺH58Hd$A\[SATAUAVHd$HHIAILH58Ht HLLH58L"LH58yLLnL"E|ALH58ME~LH5&89LH558(L"KLH58 Hd$A^A]A\[Hd$H@:pt @pHVHd$Hd$H;pt pH8Hd$SHd$HH4$H蛭HT$Ht$ HHcHT$`u'H{HH4$vHtH{HH4$贱HHHD$`Ht Hd$p[Hd$H@:pxt @pxHHd$SATHd$HILI$tSt^titzLHLHIt$8HHxIt$8HHeLHPXLHKIt$8HH8{t LH%LHpLHC LHHd$A\[SATAUAVAWHd$IIHD$`HHt$HHcHT$XkLHt$`IHt$`LIAFtLL vLIptfLIHـÅ|IAfALIHD荀IAu L苰t LL D9LIIHuL@IA_L>AuLIEsAGAGfDLLUMm(MuLIHHr L@aA_L@0IIH|$`迩HD$XHtHd$pA_A^A]A\[SATHd$HIHD$`HHt$HHcHT$Xu#LHt$`I$Ht$`HHH|$`1HD$XHt2Hd$hA\[Hd$HHV@Hv8HHHd$H$H|$Ht$H$HL$H|$uHD$HT$HRhHD$H|$FHT$0Ht$HHHcH$HD$(H|$HD$H u HD$HD$ H|$HD$H@HD$ HD$ HH$H|$1HD$(H|$tH|$tH|$HD$H[H$HtH$H$H(HcH$u'H|$tHt$(H|$HD$HP`H$HtHD$H$SATHd$IHHD$`HHt$gHHcHT$XHHt$`肉Ht$`LH>8I$HH=l}tmHHtH@H~XIt$HLLH58HLLH5G8HLLH5Y8HHHHLmH[(HuIt$HLWH|$`HD$XHt Hd$hA\[SATAUHIL͓ILI$I2LI$sLHH߾ Md$(MtM9uMtNLHMe(8fDLI$sH߾ LHMd$(MuA]A\[SATAUHIIHH߾ LHGHߺH58H LHH8H߾"=A]A\[SATAUAVAWHHIIMHpHILLH58HLHH߾ Mt4HH58LHH߾ LHMtHH58bLHMt3H߾[uH LHHa8H߾]OH߾>BA_A^A]A\[SATHd$HHHI@LHMd$(MuHd$A\[SATHd$IHHD$`HHt$HHcHT$XL HHt$`HHt$`LTLH58HHHMHH|1tu'HL"Hs8H uLH8H[(HuL" H|$`聢HD$XHtHd$hA\[SATAUAVAWHd$IIHD$xHD$pHD$hHD$`HHt$fHHcHT$XuaLHt$`襻H\$`LHt$hsLd$hLHt$pALl$pLHt$xIHt$xLILLIH|$x蒡H|$p舡H|$h~H|$`tHD$XHtuH$A_A^A]A\[SATAUAVAWH$pH$IHD$HD$xHD$pHT$Ht$(UH}HcHT$hH$Hx`1tH$Hxh1wtLIp|E1LIHvAEVH$H$LIHNj$AAuH$HxhH4$ sDs'H$HP`HJ$HH$H@ HB$A96H$xt0H$HxhH5 xH$Hx`H5xH$HBh@gX|MH$@H$H$HPhHJ$H4H$g$9H$HB`@gX8H$@H$H$ eH$HP`HJ$L$I|$tQH$ID$H0H$:Ht$xI<$I$H Ht$xH$(Ht$xI<$I$HHt$xH$H$H58Ht$xI<$I$HHt$xH H$H8H$"h$9d H|$xڛH|$pЛH|$ƛHD$hHtH$A_A^A]A\[Hd$&Hd$Hd$Hd$Hd$&Hd$Hd$H<$Ht$HH=f^BHHD$HT$Ht$0} HHcHT$puHt$H<$ H|$|HD$pHt Hd$xHd$H<$Ht$HH=#lnHD$HT$Ht$0HHcHT$puHt$H<$3 H|$HD$pHtu Hd$xSHd$H<$Ht$H $HT$H=TlGHHT$Ht$(`HHcHT$hu H4$H0k HcHD$hHt Hd$p[HcfGf=r"f=wHcfGf=r f=w00HcfDGf=r#f=wHcfDGf=r f=w00Hd$@HHtHvHuH= > Hd$SATAUHd$HAE0$EHc$fC%H SlHH5l rf:tHHtf$WHc$fC%H lHH5Hl rf:tHHt $D;$$ADHd$A]A\[SATAUHd$HAH$E1Hc$fTC%IcHH glHH5l rBf:t;HH=u,HHtH@ $HcH9t;Hcf|K u/E1$ A$Hc$HHtH@H9bADHd$A]A\[SATHd$HAHr$QHc$fTC%H lHH5l rf:tHHgt$Hc$HHtH@H9~ADHd$A\[SATHd$H$AH~tHc$fTC%H lHH57l r9f:t2HHu#HHtH@ $HcH9t,Hcf|K u $Hc$HHtH@H9sADHd$A\[Hff{Ar aHHtHR|NHcftwfw2-r rr t s9SATAUHd$IHD$hHHt$hHHcHT$XI$HtH@Å~1HuHd$HHtH@HcH9uHcHt0Hd$H$H|$Ht$$L$H|$uHD$HT$HRhHD$H|$DHT$0Ht$HZHޘHcH$HD$(H|$1HT$D$BD$ @d$ D$ ;$|HD$T$ P Hc|$ HFHT$HBHD$(H|$tH|$tH|$HD$HH$HtH$H$HݘHcH$u'H|$tHt$(H|$HD$HP`{qH$HtO*HD$H$SATHd$HIM~ HHH9H{0EH1HtMt HHPpHd$A\[SATAUAVAWIAG AE|]IWL$1Ml$At I|$H5lL$LEMMuIWHA9A_A^A]A\[Hd$HE0Hd$Hd$AHd$Hd$HApHd$Hd$HHtHRHuH5S4HA8Hd$Hd$HE0 HtH@1Hd$SATAUAVAWHd$H<$HEAHt$1HT$H$HpD$H$J HHL4@IHII>t#IT$;PuIH8DHt$tI>;uEuM&H$PH$;P v.H$p H<$HEDHt$H<$+Id CHH5lH*"IIcLܠIcHI4$H|$(јD$AD$ID$ID$H$@M&LHd$ A_A^A]A\[SATAUIHBIAE gH|FIUL "AAAHIIHD$H$SATAUIIM~ LI$ID$ @|'ÃID$ HPH<I|$ I|$0L1MtMt LI$PpA]A\[SATAUAVHd$HIILsMt IFHC H=l'ߙIH{ L[HC(HcSHIFHK(HcSLHL`Lh IUHPIEHd$A^A]A\[HGPSATAUAVHd$HIILs8Mt)Ht$HHtHRH{0HuH5q*ILMtHRH{LMuH5J*HIFHtH;ptLHIEIEHd$A^A]A\[SATAUAVAWHd$IHHL$@HHM11HD$HHt&HHtHRI0HuH5)I H[HHtHRIHHuH5)IMtIFHt L;hAG|UAAAIG(IcH 2L;iu!IG8H;A tHD$@HHD$HHIHuEMt I~AGEgH\$>6IcH HHB0fHIcHgfffffffHHH?HAEufSHfNHD$>H)HH?HHHPI0HII~tLLLHT$@HHD$HD$HHd$PA_A^A]A\[SHHt~ H{0HC8[SHHHtHRHuH5'H@HtHxtH@H0Hp H1d[Hd$H@HcHHP(HtHRHH9|#HcPHH$H5lHx(H™Hd$~GHW(HcOH HHJHwHrHWHr LBLFHuHO(HcWHoSHs CHc{ H6H[SATHd$HfAC;C |.Hcs HHH6HHcS HID$@|%ÃDID$HPHfYI$I$1H8 ,~I$I$}DI$HuHYID$pI$HtH@ID$pID$xHd$A^A]A\[SATHd$HIM~ HH{ٮH1/HtMt HHPpHd$A\[Hd$HHH0HPٯt1@Hd$SATAUHIIIEMI|$tIT$0ɾH=lIE\I|$t2IT$H=zBm̩H±H=lIE"I|$ tIL$IT$(It$ MH_I}u"H{ uH lHHP8A]A\[HHP R0HP HBHR8H)HH?HHFSATAUAVAWHd$HIMH$HD$HD$pHT$Ht$(苸H賖HcHT$hI$E0IL JLHLqH\$H'H4$1H|$pjKH|$pHqtNH|$ Ԯƒt8H=lһH±H=)lI$HxHH4$NI<$AH|$pC'H[IH|$1'HD$hHtRDH$A_A^A]A\[HHP HV Hp HHBHP HBTSATHd$HfAHD$pHHt$H>HcHT$XuIF HPLH)HH?HHIcVhHAAIIF L;`IF HpI~`LhA~hAIF L`IF L;`r"I~ IF Ht IF L`SEuuLVDA_A^A]A\[Hd$HttPhHH5ag8$Hd$SHtH1H5g8GHC H@ff= tf= t f= tf= uH1H5g8H1H5g8[S0HG`xu5Hfztu*Hf:lu f<Hf:gf>Hf:auJxuHfzmufzpuf&Wx^HfzpuSfzouKfzsuCf',xu7Hf8qu-fxuu%fxoufxtuf"H@[SATAUAVHd$HIH{ OH߾#hAńE1H߾xMDHC H@ff=0f-9v%f-f-vNf-f-v HC H@DЃ0A>HC H@IcHHHWA HC H@IcHHH7AcH{ NAQKHC H@ff=0r3f-9w-Ak HC H@Ѓ0AH{ NA~D~St~Ef~.-~Q--~?~-~=r{0tALNxH1H5Ee8eAL*WD gL DLH1H5d8 H1!H߾;MDHd$A^A]A\[SATAUAVAWHd$HT$ HH|$LHD$HPpHS8HD$HPpHT$H\$(H\$HD$@HE1HD$HP Lj(HD$Hp@HD$Hx Hl1LD$I@ Hff<uH|$1H5Cd8f&.HD$Hp@H|$uH|$uHD$PhHD$Hp`HD$Hx( IH|$@IHtHD$HT$HB L;h(HD$D;xH} DHt$H|$S`HD$HT$HP0HD$PHHt$H|$.`HD$@HHD$LpHt$H|$JHD$HT$HP0HT$BhHT$)B4HD$DxHMLH|$0{ftVHD$Hx Kf;$uHD$HP L;j(sf tf tf uf HD$Hx@m HT$HB L;h(tH|$@0uH|$H5b8HD$DxHHD$(H8t7HD$ƀHD$D;xH} DHt$H|$^HD$HT$HP0D$ tHD$(HpeHD$Hx@s HD$(@eHD$(HXPH'HHD$HcPHHD$Hp@JHd$0A_A^A]A\[SATAUHd$HIIA|$VtKAD$XHlHHD$H$ ID$HD$HD$HHE1H5a8I|$0tbA|$TuZIL$@IT$(It$0MHPID$HD$H$HHA1H5a8LIEfVIT$HH=lIEHAD$\B0IcD$`HIMHQH)HQ8I|$0tIEHxHIt$@*AD$VIEL`(Hd$ A]A\[SATHd$HAH$Ht HHH<$u0Et+1ҾH=HlKH$t H$@hH<$AtH4$HH<$H$HDHd$A\[SATAUAVHd$HHC Hx t@uxhuAE0EoHC L` E0HC Hx(t6HC H@(@VHC HP(@PBdHC H@(xWt {9tAE0H{ uLc EtH1H58`8DHd$A^A]A\[SATAUAVHd$HAH$HT$Ht$ ⒙H qHcHT$`M1ILl$LHcShHs`lGChgDhHt-H~HNjShHs`HH=lwIM{xuHHt {8u7Hx0u0H$HD$pHD$hHT$hEH1H5o_8H$HD$pHD$hHT$hEH1H5_8J{xtA~tDHH5_86I~8t+H$HD$pHD$hHT$hEH1H5_8$EtI~0tDHH5_8A~UuH8tH@LH8AVdIcH9|AvdD)HbH"HD$`HtەLHd$xA^A]A\[SATHd$HH{ EH1H߾;EHC xhu{9tChgPHH5T_8M1Ht%ShHs`HHH=l uIMu!ChgPHH5w_8CxRI|$0t"A|$TuLHLu Cx(At$dHp{9AD$WLH0C8Hd$A\[SH$ H|$H4$HDŽ$HT$Ht$0辏HmHcHT$p9H4$H|$0&D$HT$xH$sHmHcH$HD$@HHD$Hp@HD$Hx 1Hq^8HD$H@ HH$HXHH HHD$HcPHHD$Hp@CHD$H$@HBdH$@\H$@`HD$Hx H$H$H$Hx@$БH|$@0H$@THD$@HH$Ht-蘑H$ HD$pHt D$H$[SATAUAVAWHd$IHD$HIf<$A)AGIE L`(I} T$HHUlHL1IE Hff%u Lf&uELLJuL&IIcUhHIU`Iu`L蒝L;%xft=I} Af tf uf f;$u IE L;`(tFL6IE L;`(tL@09LH5:Y8]D$u LHt$BDHd$A_A^A]A\[SATAUAVAWIfA0HwpIfIt$@I|$ L1ID$ HfAft@EuXHhHcHHkhHHP@HHPH@HS@IcHBHPHPXCHD)HPB`DkHA]A\[SHH{ ?H1YHaHC`xtHffXtfxu`fPfMtfmuNf@f=Ltf=lu>H{`HshHZ8 uShHH5Z8CShHH5[8/HC H@f8?t H@uCHH5lHߺ?uHߺH5[8ShHs`H{(肌HH߾RT[SATAUAVH$8HAHDŽ$HT$HHt$`HChHcH$wH@EtHC H@f8vHH5Z8~H HH߲9E1$@HC HPDffTDAH{ 0>A}HC H@ff;$uAu$HD$f81ufx.uf@f=0rf=9vHߺH50Z84$H=HK f|$1%HlAXEt$HC xXu{0uHߺH5 Z8VEuHC H@f8?t H@EuHC H@f8epHH5 Z8PHHH߲ E1&fDHC HPDffTDAH{ =A}MHC H@ff;$t7H$HHx0H$Hx H$訸H$H$HHP8H$HHp0LD$H<$Ht$H<$H|$HD$HH$H$AHi`HcH$uHD$@hH<$@H<$@4H$Ht貆2H$H<$AHH5PU8+H$PxH$@4H$@HH$HHp@H$Hx@,HT$H<$ yK|$0H$HHx8t9H$Hx(H5 U8舃HH$HHP8LD$ HL$H<$HH$Hx(H5T8OHH$HHP0LD$(HL$H<$HH$H$Ht膅H$A\[SHHC H@f8=t H@0bHC H@f8=tH1H5T8H{ 5H@0.[Hd$HHP H;r(tHHE1HH5/M8Hd$SHG H@ff=*r'f-*tf-tf-u 1 H j4[SATHd$H1ShHs`H{(辁HLcMuH=mlAjILcLHd$A\[SATAUAVAWIIHfE1fL耖IL@0L(etIF HP(LL LDIE LAE,L@0IF H@f8)tffEu8IF H@ff=|tf=,uIF H@fD -L1H5R8IF H@fD; t ALBI~ 3,HLHH{ 2fA|u AG(AG(A_A^A]A\[SH$H<$HD$ D$(H<$H<$@HD$xtH$PhH<$H5[R8H$H@ xhD$,H<$dH$Hx H5mR8t D$(H$Hx H5pR8˴t D$(H<$(bH=hlhHD$ HT$0Ht$H:}Hb[HcH$H$H@ H@(HD$H<$@0H$Hx H5Q8.CH<$@0D$(DH<$|1H<$@0^H|$ HH<$HC H|$ ڔ|ZD$D$D$D$H|$ 葔HS H;P u'H$H$D@hH<$HH5]Q8|$H<$@0H$H@ H@f8)>Ht$H<$H$Hx 0H<$*uH|$ ~H<$*}HD$ @,HD$ @(,D$(HT$Ht$ H<$(H<$oHT$ B,~H$HtaH$H$K{HsYHcH$uH|$ ZgU~K~H$Ht)H<$1H5]P8`H$t3HD$xu(HT$D$,BHD$T$(PHT$HD$ HB0 H|$ fH$[SATAUAVH$hIH$HD$HD$HDŽ$HT$ Ht$8DzHlXHcHT$xVMl$ LL1%L-HH HIcT$hIt$`.LH\$H Lt$L~ LHHL$LA8<uL1H5HO8A$I$觎HH4${II~udH=il dHH{H4$H{Ht$H{ Ht$LH$H$H{(cI^7H$H$HDŽ$H$LA1H5N86|H$t Hl H|$b H|$X HD$xHtY}H$A^A]A\[H$H<$H<$HD$H<$@0H<$1UH<$H$PhH$Hp`H$Hx(@zHD$0H$HT$0H=pelHD$HT$8Ht$PwH VHcH$xHT$H$H@ xhBH$tHt$0H|$ƓHtD$ D$ H<$(HD$@H<$@0H<$VH$PhH$Hp`H|$蝖u'H$H$D@hH<$HH5M8bH<$@0H<$|(uH<$)+H<$mH$HppH<$跽D$ l$H$Hx D$HlH4ǭD$u|$wЀ|$H<$@0HD$T$P|$uP|$ uIHD$Hx t*H$H<$AHH5{L8n=HT$HD$HB *|$|$ uqHD$Hx(t'H$H<$AHH5pL8HT$HD$HB(HD$xu%H$H<$AHH5L8ӿH<$(5*DH<$@0H$HppH<$CH<$1HH<$OH$PhH$Hp`H|$膔u'H$H$D@hH<$HH5PL8K|$ uQH$tDH$HHH$PhH$Hp` wHuH$PhH$Hp`H<$0H<$@07H<$|H<$)3)H<$D$$T$H2lHHtH@D$(|$tH$H@ H@f8As H<$@HD$0HH$HDŽ$H$D$DD$H<$1H5K8\H$HppH<$軺H$Hx H5K8tHD$@aH$Hx H5K8tHD$@;H$Hx H5K8蛪tHD$@H<$ HD$@HD$@t tHD$xu%H$H<$AHH5aK8LHD$Hp|$H<$HD$H@HpPH$H|$術uiH$SATH$H<$HDŽ$HT$0Ht$HqHOHcH$H=`l\HD$H$H$6qH^OHcH$HT$H$H@ xhBH$Hx H$H$HD$Hx@+H<$@uH<$1H5:8)H<$%D$tLH<$:H$Hu#@H=EloH$HH$HHD$H$H7HD$HT$D$BXH<$1;H<$BH$PhH$Hp`HL$ H|$rHD$ H<$H$HxPuH$HxPyH$HpPH<$0ɺtNHD$HXHH\HH$HcPXH$HpPT$H$HT$@XBdHT$H$H@pHB\1HD$HX0HHD$L`(LLHHL$(H<$E01uH<$1H55H8萸|$H$H@ H@f8>t H<$虿H$Hx H5:H8%H<$tH$HppH<$õH<$1HD$HX8HWHH$HcPhH$Hp`O#H$tDH$H蒃HH$PhH$Hp`pHuH$PhH$Hp`H<$>*iqH$HtaH$H$nH:LHcH$PuH|$!ZqrqH$PHtssH$t-|$ u&HD$ HT$HPHD$HxHD$ H0 H|$YpH$%H$Ht#rH$XA\[SATAUHd$HHH8AfCHHs@H{ 1HxF8HC HfAH{ H5F87tACH{ H5F8tA)fEt H{ d!H $HHF8躹EqHd$A]A\[SATAUAVHd$HE1fDH@0HC H@f8]uE~HH5_F8AH߾<wHC L`(HC H@f8?u HH߾! HC H@f8-uH@jH߾[HC xhuHߺH5E8H@0TE1H{ H5F8ѢtA-H{ H5"F8赢tAH1H5-F8ȴH@0LHH߾[ AuEu HHAAHC9H{ H5E8+t HkH{ H5E8 t HMH{ H5 F8t H /H{ H5F8Ρt HH1H5$F8߳H@0LH H߾>C9E~H $HHF86HC HPH;Ps&HC xhu H@f8]tH1H5F8bHd$A^A]A\[SHH{ HC HH3[H@@p@tXUHHd$H]LeLmHIAE| D;X|*HE8H=YB<^HH5H:kHhHcHIcHHkhHLbH]LeLmH]SATAUAVAWIIHHtHRI~(HuH5jHHt_EXA|RE1AIhIcHIcHHkhH;\u'IhIcHIcHHkhHtPLE9L1A_A^A]A\[SATAUAVAWHd$H|$H4$HT$HHHtHRHD$Hx(HuH5iIHHD$DXA1HD$HhHD$HcHHcHHkhL$M;t$ID$HHuHHIA|$ ~IcD$ HHILHPHHtHRHc@ H)HHD$HtH@H9u>HT$HtHRHHt$HuH5۝LstIt$PH<$aA9&H<$1KHd$ A_A^A]A\[H0|tHG(HP@HSHHHPHztHPH@H0H H1[HP@dHd$HHx /Hd$HG @XHd$HHH@ Hp`XHd$HP@Hr ttr t HP@0ËGpHP@Hr ttr t HP@4ËGtHPSHHHtHHs H1[SATHd$HE0䃻Xt<ǃ0tHHhHcHHkhHDhHPADHd$A\[SATHd$HE0Hc0HHcXH9}E0tHsHhHcHHHc0HHkhHHPADHd$A\[SATHd$HE0䃻t H HPxHu)HhHcHHkhHHPǃ0ADHd$A\[SATAUHE0탻{0HhHcHHc0HHkhLdhI<$uYI|$PHXgpH+HP@HHPHxPIt$PHPIT$8HP0 I$HPǃHC HA8HC HfAfA&u$Hs@HuHuA%fEtH{ sH{@ qA{HtRHP@HHPH@HPLpPL7LHcSHHs@7D;DAuH ǃAuH= ǃHd$A^A]A\[SH fH@=HC H;uǃ[HP@HeSATHd$HI0} tHPHpPL&LCLHPHcP`HPHpX5Hd$A\[SHHHPHztHPH@H0H H1y[SATHd$HIt_HPHxtQHPx }HPH@H0L(6HPHc@ HPHPH@H0L, L1Hd$A\[SHHHPHztHPH@H0H H1[SHHhHPH57FlHP˅HP1Ҿh7C[SATAUAVAWHd$H|$0HHP@HtD4uFHD$0HHD$0HD$0HtUHT$0HPH@H0HD$0HHz(3HtNHT$0HPHH0H|$0H:8&HT$0HPHH0H|$0H:8HT$0HPH@LxMtAuLHT$0HPH@HHD$H$HHD$0HPLJ0H|$0M1H~:8贩HD$0HxHD$0HcpHkH<L )uLHD$0HPHBHHD$H$HHD$0HPLJ0H|$0M1H>:8H{@A5]H{ SHHC@Hcf|P]f|P]Et5kHE0vH1ҾǃAHߺH5/8afA&HxHcpHk|u!HT$HAHH5/8Hs@HJu H^t $H@0fHHttHH0A {Ht0$HXl4H1'DADǃDnt4t9tRt9t>tt QHGH=H3H5)H;HH@0dH*AADHd$ A_A^A]A\[Hd$HH@HPH;Pr HHHd$SATHd$HfAHC H@fD; u H{ AH輓Hd$A\[SATAUAVHd$IAT$hIt$`I|$(LIMuMtL fgX1I$HtHRHHcHH9| A$uZHcH$H57YlI$HI$E|&@I$HcA$49A$0ADŽ$XADŽ$0ADŽ$\ADŽ$`A$HLI$PLhI$P@HI$PA$P I$PHp0L螐I$PAD$h)B4A$uI$bXA$~]It$`A$I$WI$PHB5L@ID$ H@ff=>t)f=/t#LLID$ H@ff=>tf=/uID$ H@f8/u I|$ vL>MtA~t LLI$hIc$HHkhHI$PA$A$\tLq I$PHx{I$PH@LhMtIEHtH8uEI$PH@HHD$HD$HL$I$PLH0LM1Ho+85I$PIUHP%I$SIHtI$PIEHBu$A$u L@0tADŽ$ ADŽ$ Hd$A^A]A\[SATHd$HHC @T;H|H1H5*8赐H~HHC H@HhHcHHkhHHP@HHspHHPHCpHB0HPL`H{ I4$~u+I$HD$H$HHA1H5*87HC H@f8>u H{ /H@0RH߾>Eǃ Hd$A\[SATAUAVAWHd$IIL1RAUhIu`I}(QHHL ILpAP HHs0L,$LH$Ph)S4H$XH$`Mt-LLbHtH$Hp H$ 1IIMo(H$XAA|N1fDH$HhH$HcHHcHHkhL;tuH$PhH<$H5|)8跎A9H$H$xht H$u\H$HB`f8xuMfxmuEfxlu=fxnu5fxsu-H$~H$HIGH$HIW>H$~1H$Hp`H$H$HSIGH$\H$HMt A}t0MLHdI|$t1LHu"tLH X`Hd$A_A^A]A\[SATAUAVAWIIIuH=A.IӊIH5i\lLqiMLV՘LHcLXLIGpHFI1A_A^A]A\[SATAUHHthH@gD`E|HA@AH5[lHHPDHtIL$8HHs$8QIFHtL;htAE0EtHLLsJDHd$A^A]A\[SATAUAVAWHd$H|$H\HD$HEHD$XHD$D$%E1AHD$HhHD$HcHIcHHkhHH{{ }HT$HHCHCHD$ L`MtID$HtH8u5HD$ HHT$H$HLK0H|$M1Hs#8IC ALsIHtH@IcH)HHIIcHTPIt$HD$HEtHK0H|$HQ#8跊ID$HCD$D9Hd$0A_A^A]A\[SATAUAVAWHd$H|$Ht$IHEHD$HI$HD$Hx H5 8sttE0HD$Hx H58RtH|$蠍HD$Hp@H|$趮HD$HPpHLHΘHHD$HcPHHD$Hp@uIHtH@AA|G1fDIHcfDdPfAw AVGlrH|$H5;"8΅A9EtH|$@0 H|$یHD$Hp@EH|$1t'H\$H͘HHD$HcPHHD$Hp@$$Hd$ A_A^A]A\[SATAUAVAWHd$H|$IIGPHtH@AƋFtvYLH|$`rIGPHD$H$HMO8H|$M1HQ!8w<AEAE9|IWPIcf|B uHD$Ht(IWPIcHtBDD)HD$Ht.HDHH:uHHHHHHHhHcHHkhHHPqHHPHQHPB HPHH@HJXHP@HB`SATHd$HAHC@f CHH1Ҿ sDHd$A\[SATHd$HIpHcpHxHtH@HH9|)HcpHH$H5DlHxHBHxHcpHkHL H@@@@Mt AT$P{xtA|$t@@Hd$A\[SHt HCHuuC4HhHcHHkhHHPǃ[SATAUAVHd$HIAMtH;jH@[t rQvJE0E{u?H{uHHx0LWMIH{L14NIMAtLsCDHd$A^A]A\[SATHd$II$Ht7xu1A|$u)I|$tI|$1JLI$Hx0K0ۈHd$A\[HyH$yH$yHHH$HxHxHxH$Hd$Hd$Hd$H5lKlH=zYH5KlH==lXH5KlH=7>lXHd$fD:uHHH9w1@ r@ v @t@u0@Dr?@Dt6@t0@ t*@r'@v@ t@t@ t @r @w0HHSATHd$@HD$pHD$`HHt$Q1HyHcHT$XuIA܀ar zw A(5r01H|$pUHt$pHt$hH|$`HfP8HD$`D 4H|$puH|$`kHD$XHt5AHd$xA\[SATHd$@HD$pHD$`HHt$0HHcHT$XuIA܀Ar Zw A5r01H|$p腪Ht$pHt$hH|$`HeP@HD$`D O3H|$p襟H|$`蛟HD$XHt4AHd$xA\[Hd$<$H f|$t$H ft$ HHT$: u,H:Ju$H:JuH:JuH:Ju @:Bu0Hd$ðAgNfLcFA-A-RA^AtGATAtuHNHqHRHd$SATAUHALHL9tVHD HHHHAtAuHHHǃ LA]A\[HHH;tH@2HÃHHH;tH2HÃHH;uLHcHHHIAL9r@2H|DH9SATAUHIE1;xu AHI9wDA]A\[SATAUAVAWHd$H<$Ht$T$t|$D$HD$tt[tE0HD$HD$D HD$HT$D$HD$D:d$wD$:D$rAHD$HT$AHD$DHH$H` t$DHL4$AX AAm7HD$HD$D8HD$D1DHD$D HD$D8d$uA$9H<$H$HDHd$ A_A^A]A\[HHH5SQ8H׹HH HtHI| 1L HcED9A:9HHH5Q8H׹HH HtHI| 1L HcED9A:9SATAUAVAWH$pH|$`Ht$xT$pHL$hH5P8H|$hHH5P8HHfDHT$x<z,,,t,YqHD$xHD$xD(HD$xHT$x$HD$xA$9|AAfAAHT$hD$pt)HD$`H( ALt$`A %HT$hD9=HD$xHT$xAHD$xHD$`P IcH9u;HH|$`H|$hH HT$ H|$hHt$ HHD$`Q IcH9uVHH|$`H HT$@H=2O8-Ht$@H|$h HT$ H|$hHt$ HmHD$`T IcH9u;HH|$`H|$hH HT$ e H|$hHt$ HHD$`U IcH9uVHH|$`]H HT$@H=yN8t Ht$@H|$h HT$ H|$hHt$ HHD$`R IcH9u2H|$h HT$ H5:N8 H|$hHt$ HnHD$`S IcH9u2H|$h HT$ H5N8o H|$hHt$ H(HD$`X IcH9u2H|$h HT$ H5M8) H|$hHt$ HHD$`Y IcH9u2H|$h HT$ H5M8 H|$hHt$ HHD$`V IcH9u2H|$h HT$ H5M8 H|$hHt$ HVHD$`W IcH9u2H|$h HT$ H5|M8W H|$hHt$ HHD$`Z IcH9ulD$pt2H|$h HT$ H5NM8 H|$hHt$ HH|$h HT$ H5HD$HHHHD$(HD$H@D$4;D$0|HD$(HD$ D$4D$0Ht$H|$)HD$H|$uHT$HD$ HHHT$D$0PHD$P~6HD$HXHrHHD$HcPHD$HH1踎D$|$u H|$]HD$HǀHD$T$H$HtHtfHDŽ$륊D$H$[SH@:H t4@H @tH@ H5D8TrH@ H5|D8?r[SATAUAVAWHd$HHD$I$HD$A$E1 D$f fD$D$tEZ|H߾fHDgAv+H,9v,r6,v#,r.,v (@ƃ00@ƃa "Ag^ 1H׾lH[SATAUAVHd$HII$@HT$H8-u3HH;s&8]u!0Ҿ-H~HD$HHT$H8-"HH;|$HD$HHD$HD(A\u\HD$HxtH|$vHD$H HD$HHD$HH|$`AHD$ t3|$u,Au&H` HN 5D:l$sH|$mHD$H At$H HD$HHD$H8\WHD$HHT$HH;rH|$nHD$H HD$H8轼HD$ D$H|$HD$HĘH!-ĘHEHHHEHH7HHH}1ɺO}]HEH8tmH7HHEHHtHIHHEH0HHHH7HHH}1ɺ9HH}HEHt覕H]UHH$H}HDžHUHu賐HnHcHUME4%EHDžEHDžDžHDžDžHDžDž HDžDž0HDž(Dž@HDž8DžPHDžHDž`HDžXDžpHDžhEHDžxu4HHHEHE HH} H5<7ثEHDžEHDžEHDžE HDžE$ HDžE(0HDž(E,@HDž8E0PHDžHHE8H`HDžXHE@HpHDžhEHEHDžxu4HHHEHE HH} H57֫zHHEHtH]UHH$pH}uHu1HxLH5\kH=kDEHx1+6Hx%H]UHH$H}uHEHDžHUHu舍HkHcHU3H}1fEEEEHu1HKH5kH=kDEH1*nH]HEHHHEHHE7HHH}1ɺ}]HEH8tmH,7HHEHHtHIHHEH0HHHH7HHH}1ɺiHH}HEHt֐H]UHH$pH}uH}1Hu1HxpJH5IkH=kDEHx1p)Hx H]UHH$`H}uHDžhHUHupHiHcHUH}1NEEEEseHEH8uH}u MHEHHpHl7HxuHhHhHEHpH}1ɺ}rHEH8t>H=7HpHEHHxHA7HEHpH}1ɺ>詍HhHEHtH]UHH$HLLH}H5kH}軱HDžHDžHDžHUHX剘H hHcHPE HDžH1H57H;ҫHH H7H(HHu(HHHH0H7H8HuhHtHvHHHH@H7HHH H}1ɺH}XHH-H9v藺EEHEHH8LmHcUHH9vZLceLH}XOdIc$HHHH 1HH01HHH@H7HHH8H}1ɺ;]2HEH0H}1H7 H`HTHHH51kH}HHPHtWHLLH]UHHd$H]LeLmH}HuUH}HE@4;E~}| HEx uHuH}JNLmMeHHcEHH9v踸Hc]HI}HxVHH}I4HHEUPH]LeLmH]UHHd$H}uHE@$;EtHEUP$H}AH]UHHd$H}uHE@(;EtHEUP(H}H]UHHd$H}.H}H]UHHd$H]LeLmH}H@ H}HE@,LmH]HujH5kL#LHwLA$EHE@0HEHP@HtHRHHcEH9~%HcEHEH5bkHEHx@HMVH]LeLmH]UHHd$H}HEH5\kHEHxHHMNVHE@4HE@8H]UHHd$H}HE@(HE@$H]UHHd$H]LeLmLuL}H}uHEHU@8;B0}|HE@4;EHEx HE@$vLuLmH]HuߵH5kL#LuLA$A;F(u=HMkHEHp@HEHxHUHUHE@0B4HUHE@0B8 HEHPHHtHRHHEH@@HtH@HH9HEH@@HtH@HHEH5kHEHxHHMTLeI\$@LmIcE8HH9v Mcm8LI|$@RIJ+HEHEDx(HEDh$H]LuMu謴H5kM&LtHDDHuA$H]L{HLeIcD$4HH9vxMcd$4LH{H7RLHLeMl$@LuIcV8HH9v;Mcv8LI|$@QLHI<J4(HHEHc@4HXHHH9vHEX4HEHc@8HXHHH9v³HEX8}| HE@4;EHEHU@8;B0eH]LeLmLuL}H]UHHd$H}uHE@,;Et1}|+H}uHUEB,HEP,HEHxHudH]UHHd$H}uHE@,;Et1}|+H}HUEB,HEP,HEHxHuSdH]UHHd$H}H]UHHd$H}HuH@$HUHE@,HE@H]UHHd$H]LeLmH}HuHEHP@HtHRHHHEHc@0H9LmLeMuױH5kI$HqLEEHcEHEHEH@@HtH@HHHEH;E~HEHEHEH5kHEHx@HMPLmMe@H]HcC0HH9vTHc[0HI}@OHHuI<HLmMe@H]HcC0HH9v Hc[0HI}@NHHE@0ADHEx0HE@$tHEHcX0HHH-H9v詰]LmMe@HcEHH9v膰Hc]HI}@FNHAD$ LmMe@HcEHH9vCHc]HI}@NHHUAD ;B LmMe@HcEHH9vHc]HI}@MHHUAD;B~LmMe@H]HcC0HH9v賯Hc[0HI}@sMHAL$LmMe@HcEHH9vvHc]HI}@6MHAL$HEHc@0HXHH-H9v5HEX0H]LeLmH]UHHd$H]LeLmLuL}H}uLeM|$@HcEHXHHH9v谮HI|$@sLIIH]Lc@HcUHH9v|LcmLH{@kL+LiLUDLAt#HcEHXHH-H9v쩘]E;EMEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}Hu؉UMDE}| HEx uHuH}ELmH]Hu2H5[kL#LiLA$;EupHE@0;EHuH}FLeI\$@HcEHH9vLcmLI|$@FIH}J4+HHU؋EBXEEE)fDLeI\$@HcEHH9v臨LcmLI|$@FFIN4+Dm]L}HEHEHu1H5ZkHEL L hLDLA$t$Hc]HHHH9v]Ѓ}}RLeI\$@HcUHH9v٧LcmLI|$@EIH}J4+HHE؋UP@HcEHXHH-H9v舧]HE@0;EHuH}H]LeLmLuL}H]UHHd$H}uHE@;EHUHE@0BhHUHE@PBdHkHEHp@HEHxX8FHUHE@B`HEH53kHEHx@HM5FHEH5kHEHxHHMFHEUPHE@0HE@4HEH5kHEHx(HMEHE@$H]UHHd$H}H@$HEH5*kHEHx(HMtEHE@0HE@4HE@PHEH5,kHEHx@HM.EHEH5kHEHxHHM EH}@5H]UHHd$H}Hx<tHE@ uHExu HEx8t2HE@<HE@ HE@HE@8H}H]UHH$PHXL`LhLpLxH}HEHUHurHQHcHU'HEH@(HtH@HH HEHxHELhHEHXHEL`Mu-H5&kM4$L dHLA(HEx HELhHEL`Mu壘H5޶kI$HcLHUB$HEHc@$HHEH5kHEHx(HM5CHEDx$AE@EHEHcXHHH-H9vpHEH HEHxUDAH]Lc(HcEHH9v4LcmLH{(@G4D;}zHE@$HEH5kHEHx(HMeBH}4HcH}P5HcH)HH-H9v貢HEL`(1Hx(o@A$L= kHkHEL@(MtM@IHEHp(1H}FH]LeMl$@LuIcV0HH9vHk`H}ItHQuH}U LmMe@HcEHH9vUHc]HI}@>Hk`H}ItHH]LeLmH]UHH$pHxLeLmH}u|H}1;E E,UHuH}EEEEH}1EUHuH}pE;EHE@0;EHLmMeHHEHc@0Hc]H)HHH9vJHI}H=Hk`ADEHED@ HEHxMUu9EEHEH HEHxUu?EHE@0;EJLeMl$HHEHc@0Hc]H)HHH9vNHI|$H;Hk`UATHPHfgHEHcHuH} EHkLuMn@HcEHH9vҘLceLI~@6Ik`J<(HuH^H]HtH[HHH-H9v腘pE;pEHEHxHELhHEHXHEL`MuH5 kM4$LWHLA(HExu8uH}EЉtHE@ t Ex!ExHE@tExpu(Hc]HHH-H9v著laLeHcpHHHH9vcHH}'5Hk`Ic\HHH-H9v2l@HEH HEHxtl9|OHclHHH-H9vݖlHEH HEHxtl8|l|x;||lzHUHtHRHHcpH9uYHcpHHHcEHH;~ HHHH5\kHH}غ5LeHcpHH9vHcpHH}3Hk`lATLeHcpHH9v跕HcpHH}t3Hk`AHcpHXHH-H9vup;EuUHEHtH@HHcpH9~*HcpHH5fkHH}غ4lEl||;xMHEHtH@HHcpH9~lHcpHH5kHH}غ-4@~LeHc]HHHH9v胔HH}G2Hk`ADEeH5kH}6HHtEgEHLLLH]UHH$HLLLLH}uHEHDžHpH0aH'@HcH(DH}#vLceH}%HcH}%HcH)I9 HE@P;EBLmMe@HcEHH9v@Hc]HI}@1Hk`AHEHxHELhHEHXHEL`Mu͒H5ƥkM4$LRHLA(H}_ HH`H?HcHuH}LceH}t$HcH}$HcH)I9HE@P;EBLmMe@HcUHH9v-Hc]HI}@/Hk`AEELmMe@HcUHH9v员Hc]HI}@/Hk`ADE*HcEHXHH-H9v蠑]HEHc@0HHcUH9~ALmMe@HcEHXHHH9vaHI}@%/Hk`AD;EtL=8kL5kH]Lc@HcELhLHH9vLH{@.Ik`ItI1HL4HH}L0EHE@ uMHEHxpu7HEHxpu'HEpHEHxpSHEHxpHcHHH-H9vW]EEmHEHxpUHuHExuEȉEEHE@ tEEEELeHcEHH9v؏Hc]HH}-A;ELeHcUHH9v蟏Hc]HH}_-IcHHH-H9voLmHcUHH9vSLceLH}-C\LmMe@HcEHH9vHc]HI}@,Hk`A LmMe@HcEHH9v厘Hc]HI}@,Hk`I|HuHHc]HHH-H9v蠎]}S_H}%HHtHtnaHDž_H5ʹkH,H5:kH}H(Ht(aHLLLLH]UHH$HLLLLH}uHDžHUHu[H:HcHxmH} t8LceH}yHcH}HcH)I98HE@P;E(HEHxHELhHEHXHEL`MuH5kM4$LLHLA(HEHU@P;B0HE@lHE@hEHE@d;EHEH@XHtH@HHcUH9tHE@d;ELeM|$XHc]HHHH9vbHI|$X%*Lk`H]LcXHcEHH9v1LcmLH{X)Ik`CD7A;DHc]HHH-H9v틘]eLmMeXHcUHH9vȋHc]HI}X)Hk`HUAD;B|5Hc]HHH-H9v膋]}| HE@d;E~HcEHXHH-H9vQHEXh}|LHE@d;E@LmMeXHcUHH9vHc]HI}X(Hk`HUADBlH}H`H YH:7HcH`LceH}HcH}HcH)I9]HE@P;EMH}wHEHU@P;B0u)HEHcXHHH-H9vC]\LmMe@H]HcSPHH9vHc[PHI}@'Hk`Ic\HHH-H9v剘]HcEHXHH-H9v‰]XfHc]HHH-H9v蘉]HE@l;Eu$HE@lHuH}j2EHExHE@$EHEH HEHxUu6+ELeMl$(HcUHH9vHc]HI|$(&AD;E LeMl$(HcUHH9vˆHc]HI|$(&Ic\HcEH)HH-H9v荈]LeMl$(HcUHH9viHc]HI|$((&Ic\HcEH)HH-H9v4LmMu(HcUHH9vLceLI}(%CHcEHcUHHH-H9v܇]Hc]HHH-H9v蹇]}lHEH HEPHEHxu)EHEHX(1Hx(C%;EHEHX(1Hx(%%HcHcEH)HH-H9v3]HEHX(1Hx($HcHcEH)HH-H9vHEL`(1Hx($A$}sHEHcXPHHH-H9v謆HEXPLmMe@H]HcCPHH9v聆Hc[PHI}@A$Hk`EADLmMe@H]HcCPHH9vAHc[PHI}@$Hk`AHc]HHH-H9v]}(L=ikH kHEL@(MtM@IHEHp(1Ho)HLeMl$@LuIcFPHH9v蓅McvPLI|$@R#Ik`I|HL$HE@P;E~ }VH}HHtHt3XHDžVH5:kH^#HxHtWHLLLLH]UHHd$H]LeLmLuL}H}HGHcXhHHH-H9v苄] )fDHc]HHH-H9vX]}HEH@@d;EHEL`M|$XHc]HHHH9v HI|$X!Lk`HEHXLcXHcUHH9vփLcmLH{X!Ik`CD7A;D:EHEH@xHEH@HU@$B_fHELhMeXHcUHH9v\Hc]HI}X!Lk`Ot,H]HcSHH9v'Hc[HK|, AEHEL`Ml$(H]HcCHH9v悘Hc[HI|$( AD;EHEL`Ml$(H]HcSHH9v螂Hc[HI|$(] Ic\HcEH)HH-H9vi]HELhMe(H]HcSHH9v>Hc[HI}(EAHcUHcEHHH-H9v]HELhMeXHcEHH9vׁHc]HI}XLk`O|,H]HcSHH9v袁Hc[HK|,aHEL`Ml$(LuIcVHH9vhMcvLI|$('CDAHEHcXHHH-H9v*HEXHExmHELhMeXHcEHH9v쀘Hc]HI}XHk`I\1I|EHEH@HX(1Hx({;E~]HEH@HX(1Hx(]HcHcEH)HH-H9vk]HEH@HX(1Hx(!EHEL`Ml$XHcUHH9v"Hc]HI|$XHk`I\1I|HEH@L`(1Hx(A$7fHEH@HXPLc#ILH-H9vD#HEL`M|$@HEHXHcCPHH9v}Hc[PHI|$@<Lk`HEHXLcXHcUHH9vDLcmLH{XIk`ADCD7HEL`M|$@HEHXHcCPHH9v~Hc[PHI|$@Lk`HEHXLcXHcEHH9v~LcmLH{XIk`ADCD7HELhMe@HEHXHcCPHH9vv~Hc[PHI}@6Hk`AL=ˤkHELhMe@HEHXHcSPHH9v'~Hc[PHI}@Hk`MtHEHXLcXHcUHH9v}LcmLH{XIk`ItLLHc]HHH-H9v}]}Hc]HHH-H9vy}]HEH@@d;E HEHx H]LeLmLuL}H]UHHd$H]LeLmLuH}HHxHELhHEHXHEL`Mu|H5kM4$LHEHc@xHXHH-H9vqHEXxH]LeLmLuH]UHHd$H]H}HHcXxHHH-H9v,qHEXxHExxu HEHxp.\H]H]UHHd$H}HuHEH@H;EtHEHUHPH}H]UHHd$H}uHE@8;EtHEUP8H}aH]UHHd$H}Hx0|HEx<t HEx4|EEEH]UHHd$H}H@hHE@dHEH5kHEHxXHMyH]UHHd$H}uHE@;EtHEUPH}H]UHH$HLLH}HuHUHMH}u.LmLeMuFoH5kLH$/LShHEH}HUHum=HHcHxupHEHUHEHBHUHEHBHE@<HE@ HE@HE@xHEH}tH}tH}HEH@HxHtlH`H HcH0Hʼn7H8HDž0 HE@HHDž@H܉7HXHDžP HE@hHDž`Hˉ7HxHDžp HEp H(ήH(HHDž H7HHDž HE@$HDžH7HHDž HE@pHEH5}kHEHHMH}tH}tH}HEHPpH]LeLmH]UHHd$H}pH]UHHd$H}HHHEHi<H]UHHd$H]LeLmLuL}H}uHU}|BHELHEHHucH5cRiL#L#LA$;E EL}DuLmH]HuZcH5SvkL#L8#LDLA$HcHULmDuL}H]HucH5vkL#L"LDLA$HcH)EHEH-H9vbU؉UEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uHU}|BHELHEHHubbH5#QiL#L@"LA$;E EHc]HHHH9v3bALuLmH]HuaH5tkL#L!LLDA$HcHULmDuL}H]HuaH5tkL#L!LDLA$HcH)EHEH-H9vaU؉UEH]LeLmLuL}H]UHHd$H]LeLmLuH}uHU}|MLcmHEHHELMuaH5OiM4$L HAHcHI9| E6HEHu̓HEHtH}t HE؋@EEEH]LeLmLuH]UHHd$H]LeLmLuH}uHU}|MLcmHEHHELMu2`H5NiM4$L HAHcHI9| E6HEHuHEHtH}t HE؋@EEEH]LeLmLuH]UHHd$H}؉uUHMLE0H]UHHd$H]LeLmLuL}H}uUMEEԋEEL}DuH]LeMu0_H5)rkM,$L HDLAEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUMEEԋEEL}DuH]LeMu^H5qkM,$L}HDLAEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUMEEԋEEL}DuH]LeMu^H5 qkM,$LHDLAEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUMEEԋEEL}DuH]LeMu]H5ypkM,$L]HDLAEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}ЉuUHMDEDM؋EEċE؉EHEHEHEHED}DuLmH]Hu\H5okL#LLDDLEHMA$EH]LeLmLuL}H]UHHd$H]LeLmH}HLHEHHuX\H5wkL#L6LA$HEHHEHHB H]LeLmH]UHHd$H}H@H]UHHd$H]LeLmLuH}HuHELH]HELMu[H5 wkM4$LHLAHEHHx uHEHHEHHB H]LeLmLuH]UHHd$H}HuUHuH}lHEHHEH@BHEHHEH@ BH]UHHd$H}xH} H]UHHd$H}uUMH} MUuH}_uH]UHHd$H}H@H]UHHd$H}uUЋuH}1ɉH]UHHd$H}uUЋuH}1ɉ H]UHHd$H}uUЋuH}1ɉkH]UHHd$H}H]UHHd$H}uUM1H]UHHd$H]LeLmLuL}H}uUHMHELHEHHu5YH5GiL#LLA$E؋EE(DHcEHXHH-H9vY]܋E;E}?Lu]LeL}MuXH5kkM/LLLA;EE;Eu#Hc]HHH-H9vX]܋EH]LeLmLuL}H]UHHd$H]LeLmLuL}H}؉uUMDEEE̋EEHEHED}DuLmH]HuWH5jkL#LLDDHMA$EH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uUADuH]LeMupWH5ijkM,$LMHDDAEH}11ËuH}11Y9~#Hc]HHH-H9v%W]Hc]HcEH)HH-H9vV]H]LeLmLuL}H]UHHd$H}uUЋuH}E11ɉH]UHHd$H]LeLmLuL}H}uUHMIDuLmH]HuLVH5EikL#L*LDLA$ELmD}LuH]Hu VH5ikL#LLDLA$EHcEHEHcEHHcUHHEH;E}H]H]HH-H9vU]Hc]HHH-H9vUHEHcEHXHHH9vyUALmL}H]Hu@UH59hkL#LLLDUA$EH]LeLmLuL}H]UHHd$H]LeLmLuL}H}؉uUMDEEE̋EEHEHED}DuLmH]HuTH5gkL#LrLDDHMA$EH]LeLmLuL}H]UHHd$H]LeLmH}uLeM$HcUHH9v0THc]HI$IDHEH]LeLmH]UHHd$H]LeLmLuL}H}uHUH}LLeM$HcUHH9vSHc]HI$gM|LuH]LHcUHH9vkSLcmLH(KHu*SH5slkL#LLLA$H}LH]LeLmLuL}H]UHHd$H}1H]UHHd$H}1H]UHHd$H}uH=kkH.H]UHHd$H]LeLmLuH}uAH]LeMu;RH54ekM4$LHDA HEHHMHH0HB(HJ0H}@0,HEH]LeLmLuH]UHHd$H]LeLmLuL}H}HHHH-H9vQAEEDEEAH]LeMuRQH5KdkM,$L/HDA(HLeM$HcEHH9v+QLcuLI$K\D;}xH]LeLmLuL}H]UHHd$H]LeLmLuH}HHHH-H9vP|PEELmMHcEHH9viPLceLI&K< ;]H]LeLmLuH]UHHd$H}HuHEƀHuH}7ZH]UHHd$H}HHt3HEHx~HEH:HEH×H]UHHd$H]LeLmH}uHEHt!HEHx~HEHu:HEHu^LmLeMuOH5bkI$HLxHUHHEHN8HEHHEHB(HEHtHEHx$| H}HEHHEuH}薛HEH]LeLmH]UHHd$H}\H]UHH$`HhLpLxLuH}HuUHEƀHUHucHHcHUusHUHEHDmH]LeMuMH5`kM4$L HDALmLeMuMH5`kI$Hv LHEƀHEHt HhLpLxLuH]UHHd$H}H=WdkH4H]UHHd$H}HdhkH]UHHd$H]H}uHEHEHteHEHH@ HE0HEH@HEHc]HHH-H9vL]H}t}H}t HEH@HEHEH]H]UHHd$H]LeLmLuL}H}HuHUL}LuH]LeMu LH5_kM,$L HLLALmH]HuKH5^kL#L LA$HUHEHcHcUHHH-H9vKHEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuUMLmH]Hu#KH5^kL#L LA$HcHH9v KHcH;]}HEH=vJDuLmH]HuJH5]kL#L LDA$xuZHEH=vJDuLmH]HubJH5[]kL#L@ LDA$x u HEHEtHD}HEHELuE0H]HuJH5\kL#L DLHUDA$XHELDuLmHEHHuIH5ekL#L LDLA$HEHEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}@uHE1H=HEHEtEEEL}LuAH]HuHH5[kL#LDLLMA$XHELDeHEHHuHH5dkL+LDLAH]LeLmLuL}H]UHH$PHPLXL`LhLpH}@uHUMHELmH]HuHH5[kL#LLA$HcHH9vGHcH;]EE}tMHEH=vGDuLmH]HuGH5ZkL#L{LDA$@E܀}xE}tUHEH=voGDuLmH]Hu9GH52ZkL#LLDA$U PU}|M pE}tRHEH=vFDuLmH]HuFH5YkL#LLDA$U PU }uM eEEEHxHEHED}LuLmH]HuSFH5LYkL#L1LLDHMDxDMA$`HEHHuݓHPLXL`LhLpH]UHHd$H]LeLmLuL}H}HuUHMDEDML}LuH]LeMuEH5XkM,$LoHLLApM }t EEHUHEЋHEUĉP HEUPHUHEHB(HEHUHP0HEUP$HE@8HEHHU@BHEHHU@ B}tHEHHU@;B}EEHEHcPHcEHHH-H9vDHEX EuEHEHc@HcUHHH-H9vlDHEX}t6H]LmLeMu)DH5"WkM4$LLHAhH]LeLmLuL}H]UHHd$H]H}HuHEH[HcHHH-H9vC]HEHufHE:Hc]HHH-H9vC]HEHu*HE}|?HEHUH@(H;B(uHEHU@8;B8uHE@$tHEHU@;Bu}HUHE@$ @ ߉B$HUHE@$ @@߉B$HE@$t$HUHE@$B$HUHE@$B$&HUHE@$%B$HUHE@$%B$H]H]UHHd$H}H=\kHoHUHH]UHHd$H]LeH}HuHEHxtHEHxHuHEkLeMuAH5X\kI$HH]HILH=.\kLeLHUHPHEHUHPHEHUHPHEH]LeH]UHHd$H]LeH}HuHEHEGDHEH@H;E.HEHEHEH@H;EvHEH@(HE HEH@ HEH}uLeMu@H5b[kI$HH]ؾHILH=8[kLeLHUHPHUHEH@HBHEH@H;Ev9HUHEHB(HEHcX0HHH-H9v~@HEX07HEHUHP HEHc@0HXHH-H9vE@HEX0HEx0t HuHHEH]LeH]UHHd$H]LeLmH}HuHVHtH[HHH-H9v?]EHEH@HEHEH@HEE;E|GHcEHXHH-H9vx?]HcEHEH5pkHMH=VޗL% VHcUHH9v2?Hc]HH=UܗHEIHcEHXHH-H9v>]HEH@H;EvHEH@(HE HEH@ HEHEH@H;EE;E|GHcEHXHH-H9v>]HcEHEH5okHMH=5UݗL%$UHcEHH9vL>Hc]HH=T ܗHEIX@L%THcEHH9v >Hc]HH=TۗI܃x0L%THcEHH9v=Hc]HH={TۗI܃x0t@L%eTHcEHH9v=Hc]HH=?TJۗI܃x0d}Hc]HHH-H9vB=]L%SHcUHH9v =Hc]HH=SڗM,L%SHcEHXHHH9vHHH9vHH}#Hc]HcEHqHHH9vHH}u#Hc]HcEHqHH-HH9vu}L͖LDAX;EtH]EvUEDE;E~aE;E~EEHcUHcEHqLceIq Iq LHHH9v H]Eăvy EDdH]LeEăvZ DmCDvE CDDH HE;EuHEH(EEHc]Hq4 HH-HH9v HEE}&EDEEHc]Hq HH-HH9v Hxx}EEEHc]Hq HHHH9v* ]H]Ev E|tMDuDm]LeL}Mt IHpHpc˖LDDHpx;E~KE;E~H}% H} HHLPLXL`LhH]UHHd$H]LeH}H( HEL`H]Căv$ CADEuH} HE}>HEHc@Hc]H)q+ HH-HH9v H}HEU;P|>HEHc@Hc]Hq HH-HH9v H}}7Hc]Hq HH-HH9vC H}xHUE;B|7Hc]Hq[ HH-HH9v H}3HEHPHEHpH}H]LeH]UHHd$H]LeH}uH | HEHXEv E|taHEHXEvb EDHEHXLeAD$ȃv= AD$ȋUTHEHPHEHpH}H]LeH]UHHd$H]H}uH HcEHq HUHcJHHHHqHH-HH9v]HcEHqHUHcJHHHHqHH-HH9vO]HEH]H]UHHd$H]H}HuHUH HEHcHq9HH-HH9vHEHEHU;} HEH]H]UHH$0H8L@LHLPLXH}uUHH H)9kHEH9kHEHUHu՗H訳HcHxH}-EHEHUHH=G]HcMHHHHH?HHc]H)qNHH-HH9v]HcEHcUHqHc kHHHc]H)qHH-HH9v]HcUH<H)qHcUHqHc fkHHHc]H)qHH-HH9vF]ЋE܅t2u>~E=vߗDe؋E=vߗ]ЋE=vߗ}DEE=vߗDe؋E=vߗ]E=vߗ}ԉDrEAE=v[ߗDeЋE=vGߗ]E=v4ߗ}؉D&EE=vߗDeE=vޗ]ԋE=vޗ}؉DEE=vޗDeE=vޗ]؋E=vޗ}ЉDE`E=vzޗDeԋE=vfޗ]؋E=vSޗ}DEE,EEH]LeH]UHHd$}uUH ߗEu}bfEE}E EEH]UHHd$H]LeLm}H0lߗE=v}ݗ]=vcݗۋE=vQݗDeAAD=v3ݗEE=v ݗDmAD=vݗD@LMLEHMDiEH]LeLmH]UHHd$H]LeLm}H0ޗE=vܗ]=vܗۋE=vqܗDeAAD=vSܗEE=v@ܗDmAD=v&ܗD@LMLEHMDEH]LeLmH]UHHd$H]LeLm}H0ݗE=vۗ]=vۗۋE=vۗDeAAD=vsۗEE=v`ۗDmAD=vFۗD@LMLEHMDEH]LeLmH]UHHd$H]LeLmH}HuH(ܗH})LeLmMtڗI]HNLHEHxHEHx HEHxH}H讔H}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuH}H0ۗHEHt?IHy[L%r[MtٗMLkHLA8HEHEHHEHEH]LeLmLuH]UHHd$H]LeLmLuH}H0WۗHEHt?IH[L%[Mt&ٗML˘HLA8HEHEHHEHEH]LeLmLuH]UHHd$H]LeLmLuH}H0ڗHEHt?IH[L%[MtؗML+HLA8HEHEHHEHEH]LeLmLuH]UHHd$H]LeH}H ڗHEHcHEHcH)q_ؗHH-HH9vؗHELcHEHcI)q"ؗLH-HH9vחD[HEHEH]LeH]UHHd$H]H}HuH_ٗHEHcHc]HqחHH-HH9vIחHEHEHcHc]HqfחHH-HH9v חHEH]H]UHHd$H]LeLmLuL}H}uUHMHPؗHEHcHc]Hq֗HH-HH9v֗]HEHcHc]Hq֗HH-HH9vJ֗]LeLmMt֗I]H跕LxuOHELDu؋]HELMt՗M,$LsDLAt}}LeLmMt՗I]H.L`;ER}}JLeLmMtR՗I]HLP;EHEHHMU؋ucH]LeLmLuL}H]UHHd$H]LeLmLuH}H0֗IH[L%[MtԗML[HLA8HELuLeMtԗM,$L%LAHH2ZL0H]LeMtKԗM,$LHLA HEH]LeLmLuH]UHHd$H]H}HuHUH8՗HEHEHEHEHc]Hq,ԗHH-HH9vӗ]Hc]HqӗHH-HH9vӗ]H}DVxXtH}0VX\}xE@EЃEDEMԋU؋uHDEM܋UuHuDE؋M܋UuH`DE؋MԋU؋uHKH}R4;]~H}UxXuH}UxXtH}xU@dE-H}gUHËCXvҗSXH*]DEDEMԋU؋uHNDEM܋UuH9DE؋M܋UuH$DE؋MԋU؋uHH]H]UHHd$H}ЉuUMDEH@ӗ}}7HEHxTH@H$HEDHHEHxDE؋MUutH]UHHd$H}؉uUMDEH(zӗ}}+HEHx5TLHHEHxDEMUupH]UHHd$H]LeLmH}HuHUH@ӗHEHEHEHEH}zyHc]HqKїHH-HH9vЗ]Hc]HqїHH-HH9vЗ]}t}tLeLmMtrЗI]HL`;EtLeLmMt?ЗI]H㏖LP;Et~H}RxXtjHE胸t[HE胸tLLeLmMtϗI]H~LxtH}QHpH}5,H}Q@XtE-<ptMt DEMU܋uH}kH}QLHhDEMU܋uH}|H}PHx`uYHE耸u%H}PLH`DEMU܋uH}~#H}PLH`DEMU܋uH}1}/HX]HHH=]ґHH5HОHEHuHUH}wHEHuHUH}NyHEHuHUH}MuHEHuHUH}uvHEHuHUH}vHEHuHUH}x^Ik HcHqHH-HH9v>D9};DmԋEԃEfEԃEH}AHHUЋuH}CR;]~Hc]Hq-HH-HH9vп]̋E;EiD;}~H5jH}H8Ht莒HLLLLH]UHHd$H]H}HuHUHMLEH0HEHUHuH}H7HEHcHqBHH-HH9v得HE5HEHcHq HH-HH9v设HEH]H]UHHd$H]H}HuHUHMH@GHEH}HGڬHEHuH}6ڬHEHc]HcEHqoHcEHcUHq\H)qRHH-HH9v]܋EH]H]UHHd$H]H}؉uUMDEH0薿HEHZ@@XtmtCH}.@LHDEMUuH}\H} @x\H{hH}?DHdDEMUuH}_CH}?HËCXvCXH]DLDEMUuH}_H]H]UHHd$H]LeLmH}H0苾HEHxN?HcX\HH?HHHH-HH9vp]EEHcEHc]Hq蕼HEHx>Hc@\H9t/Hc]HqnHH-HH9v]HEHc@HUHcRH)q4HHHIHUHcRHMHcIH)qHHHIH9E}u`]}EEEHELc`HcEI)qLH-HH9vdHELchHcEI)q莻LH-HH9v1DHED@HEPH}D3;]~iDeA}EEEHEHc@Hc]HqHH-HH9v贺HEHc@LcmIq޺LH-HH9v聺DHED@HEPH}D;e~i[]}EEEHELc`HcEI)qaLH-HH9vHELchHcEI)q.LH-HH9vѹDHEHHEpH}E;]~jDeA}E@EEHEHc@Hc]Hq豹HH-HH9vTHEHc@LcmIq~LH-HH9v!DHEHHEpH}A$D;e~iH]LeLmH]UHHd$H]LeLmH}؉uUMDEHP莺HEL`HELhMtrI]HxLxuVHEL`HELhMt;I]HwLhHEHUH}HuLMLEHMHUbHEHx:LHHEHxDEMUuVH]LeLmH]UHHd$H]H}uUHMLELMHX葹Hc]HcEH)q߷HH-HH9v肷؉D$Hc]HcEH)q誷HH-HH9vM$DMDEȋMUHuH}H]H]UHHd$H}ЉuUHMH@ݸHE؋@8D$HE؋@<$MUHuH}AAH]UHH$HLLH}HuHUHdH}t)LmLeMtGLHuLShHEH}t HUHurHbHcHUuHEHUH}H/9HH=Q?nHUHHEH}HEH}uH}uH}HEHHEHpHhH(較HaHcH u%H}uHuH}HEHP`趆A謆H Ht苉fHEHLLH]UHHd$H]LeLmH}HuH0跶H})LeLmMt蚴I]H>tLHEHHcXHq˴HH-HH9vn}5EEEHEHuILn;]~HEHnHEHnHEHrnH}Hr8H}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuH}HuH0sLuLeMt]M,$Ls@LAHEHUHH]LeLmLuH]UHHd$H]LeLmH}H0HH=ejHlHEH}4HH=HUHBH}5HHqHUHBH}3HHHUHBHUHEHHB H}1HUHB(LmLeMtUI$HqLxHUB0HEHHu5EEH]LeLmH]UHHd$H]LeLmLuH}uH8Գ}|=HEHHc@Hc]HqHH-HH9v貱]HEHuLjkLDA@H0H%fEEHH)q嫗HH=v蕫f]f}t}Dm]LeLuMtIM>LjLDA@HpDm]LeLuMt M>LjLDHpA8jf}w]DuDmH]LeMt辪M<$LbjHDDA@HEDmDuH]LeMt肪M<$L&jHDDA@HEUEHs谪H?H*s H6XH6^UEHs|H?H*s H6XH6^XH-HH=vf]UEHs+H?H*s H6XHu6^UEHsH?H*s Hd6XHA6^XH-HH=v|f]UEHs覩H?H*s H6XH6^UEHsrH?H*s H6XH6^XH-HH=vf]fELmDuD}H]LeMt譨I$HhHhFhHDDLHh8x;E~E;E~@H0L8L@LHLPH]UHH$@H@LHLPLXL`H}HuUMDEDMHܩH]LeMtȧM,$LlgHA`HcHcUH)qHEH]LeMt艧M,$L-gHA`HcHcUH)q§HEHEH;E|H]H]HHHH9vJ؉EH]LeMtM,$LfHAPHcHcUH)qJHEH]LeMtҦM,$LvfHAPHcHcUH)q HEHEH;E|H]H]HH-HH9v蔦]E;E|EEEE;E|EEEHc]Hq蘦HHHH9v:HEE}EEȃEHc]HqHHHHH9v꥗Hxx}qEfẼEHcEHc]HqHH-HH9v营]HcEHc]Hq軥HH-HH9v^]HcEHc]Hq艥HHHH9v+]HcEHc]HqVHHHH9v]}| }|pDm]LeLuMt襤M>LJdLDA@H0H%fEEHH)qŤHH=vuf]f}t}Dm]LeLuMt)M>LcLDA@HpDm]LeLuMtM>LcLDHpA8wf}@wjDmDuH]LeMt螣M<$LBcHDDA@HEUEHṣHHHH]Hs誣HH=vZf]UEHs脣HHHH]HsbHH=vf]UEHsL ZLDA@HELm]DuLeL}Mt'IHhHhYLDLHh8p;E~x;E~H@LHLPLXL`H]UHHd$H]LeLmLuL}H}HuUH`|}u{HEHH=Z*LuDHELLmHEHHt.L#LXLLA$xH]LeMtM,$LXHAPAMcIq5LH-HH9vؘA}EfDEELmH]Ht胘L#L(XLA$`HcHq轘HH-HH9v`}3EfEEHEHHMUu&;]~D;u~[RLmH]Ht◗L#LWLA$PHcHqHHHH9v辗HE؋E؃}E@EELmH]HtcL#LWLA$`HcHq蝗HH-HH9v@HEЋEЃ}_EEELm]DuLeL}MtIHEH}VLDLH]8E;E~멋E;E~$H]LeLmLuL}H]UHHd$H}HuHUMH \HUEHuHUH}~/H]UHHd$H]LeLmLuL}H}HuH8H}tH}HULzILMMt˕I$ILlUHLA H}vHUDzXILMMt艕I$IL*UHDAPH}4HUDz\ILMMtGI$ILTHDAHH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuH8ߖH}tH}HULzILMMt諔I$ILLTHLA H}vHUDzXILMMtiI$IL THDA@H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHxH}tH}HULzIMLHt˓HILmSLLA$ H}HULzXIMLHt艓HIL+SLLA$@H}tHUDzdIMLHtGHILRLDA$HH}2HELuAH]HtHILRDLA$AǸHELuMLHtƒHILhRLEDA$H}HELmAH]Ht~HIL RDLA$AǸHELuMLHt@HILQLEDA$H}&HELmAH]HtHILQDLA$AǸHELuMLHt躑HIL\QLEȉDA$H}HELuAH]HtrHILQDLA$EALmMLHt7HILPLDUA$H]LeLmLuL}H]UHH$`H`LhLpLxL}H}؉uUMDEH褒}~*}~"HEH@x<tHEH@x8tHEH@HcXEEH]UHH$HLL H}HuHxH}t)LmLeMt[LHGLShHEH}t HUHuUH3HcHUufHEH}H@HH=m?@HUHBHE@HEH}uH}uH}HEH8XHEHpHpH0TH 3HcH(u%H}uHuH}HEHP`WhYWH(HtZZHEHLL H]UHHd$H]LeLmH}HuH(ׇH})LeLmMt躅I]H^ELHEHx(@H}H?H}uH}uH}HEHPpH]LeLmH]UHHd$H}HuH3HEHHuH}H]UHHd$H]LeH}H0HEH@HcXHq8HH-HH9vۄ}7EDEEHEHxuOIL?;]~HEHxHE@ʨHEHUHUHEHBHEHBH]LeH]UHHd$H}HuUHE|*ttHuH}HuH}H]UHHd$H}H觅HExt EH})u EEEH]UHHd$H}HGHEHcP HEHc@H)q荃H~$HEHcPHEHc@H)qkH~EEEH]UHHd$H}HuHӄHEHxHuҷH}H]UHHd$H}HuHUH 菄HH=ijH;HEHUHEHBHEHBHuH}dH]UHHd$H}HuUH HH=jH*;HEHjHEHxHEH0[!HUEBHuH}H]UHHd$H}؉uUMDEH0蚃HH=ljH:HEHUЋEBHEЋUP HEЋUPHEЋUPHuH}[H]UHHd$H]H}HuH HExuOHExu)H}uHMHEHPHQH@HAHEHpHPH}|HEH@HcXHq HH-HH9v谀}9EfEEHEHxu'HHEHxg;]~HE@H]H]UHHd$H}HHE@EHE@}u$H}tHEHpHPH})H]UHHd$H}HuHUH证HEHHE@HUHEHBHEHBH]UHHd$H}HgHUHBHEHBHEHEHUH]UHHd$H]LeLmLuL}H}uUHX HExuGHE@;E~0HE@;E}"HE@;E~HE@ ;E}EEEHEH@HcXHq~HHHH9v~HE؋E؃}yEEEHEHxuHED}DuH]LeMt'~M,$L=HDDAuE E;E~땊EH]LeLmLuL}H]UHH$HLL H}HuHH}t)LmLeMt{}LH =LShHEH}tHUHuKH)HcHUu^HEH}HkHH=?(6HUHB0HEH}uH}uH}HEH`NHEHpHpH0 KH3)HcH(u%H}uHuH}HEHP`NOMH(HtPPHEHLL H]UHHd$H]LeLmH}HuH(~H})LeLmMt{I]H;LHEHx0X6H}HH}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmLuL}H}uUHXM}HEEuH}E؀}uHEHEH@0HcXHqg{HHHH9v {}{]܋E܃EE܃EHEHx0uwHED}DuLmH]HtzL#L<:LDDA$HEH}u}~H}tHEHEHEH]LeLmLuL}H]UHHd$H}HuHEHU)ЉEuHuH}EEH]UHHd$H]H}HuHEHU  )ЉEuH}%H})É]EH]H]UHHd$H}uUEs HcEH؉EHEUEHUMH]UHHd$H}uHEH}HcHHEHcEHEH|HEH;E0tuH}IHHEH}u HHEHEH]UHHd$H]H}uHUHMH}{HcHHEHcEHEH|HEH;E0tuH}SIHHUHuHCH]H]UHHd$H}讚H]UHH$HLH}HuHUH}uHEHUHRhHEH}{HUHuFH<$HcHUHEHuH=zj*HHHHUH}1XHuH=MjX*HH}H¾H=j kHUHBPH}8HIܾ LeL踲H}H},HEH}tH}tH}HEHPHHEHtlHhH(DH'#HcH u#H}tHuH}HEHP`GIGH HtJJHEHLH]UHHd$H]H}HHx㘧HH=j)HHHEH]H]UHHd$H}HuHH5ݗ6 H]UHHd$H}HGPH]UHH$HLH}HuEMH5UkHpqiHXHCH!HcHHExHu)HDžH5kHH}yHEHpH=ͽj'HIEf)EHpI|$8$H}HH}H}HHUHpHHHEH5_kHp[iHHtjGHLH]UHHd$H}uH}wHH6H=jO7HH5HMDH]UHHd$H}HuHH}HH]UHHd$H]H}HuHEHx^HH= j&HHuHH(H]H]UHHd$H}>H]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuRAHzHcHUuMHEH}Hj1eHUHEHB8HEH}tH}tH}HEHDHEHtlHhH(@HHcH u#H}tHuH}HEHP`CSECH HtFxFHEH]UHHd$H}uH}H]UHHd$H}HHx8H]UHHd$H}HG8H]UHHd$H}HuHEHx8HuHEH@8H(H]UHHd$H}HuHH=jH#,HEHHEHHEHHHUHEHUHEHEHHEHHEHHHEHHEHHEHHHUHEHHHUHE  HUHEHMHEHHHHHMHUHHHHHuH}H]UHH$H}HuHUH}uHEHUHRhHEH}HUHu=HHcHUHEH}:HH=_k["HHUH}19H=jHj8HUHHEHHUHH(HA8HQ@HEHLEIH(H=jZHUHBXH}虑HH=?_k!H¾H=jHUHBPHUH=~jIHUHHEǀH}7HH=^kX!H¾H=inkxHUHH}+H}]H}䐧HH=^k!H¾H=jqzHUHHEƀHEHxPH$6f)H6MHEH}tH}tH}HEH?HEHtlHhH(;HHcH u#H}tHuH}HEHP`>N@>H HtAsAHEH]UHHd$H}HuH~HEHUHHHEH6&HEH&&HEH&HEHxX &HEH%HEH%H}1H}tH}tH}HEHPpH]UHH$HLH}HuUMH5ѝkH}(`HDžHxH8E:HmHcH0EEt4HEH HHEHH}$t M[H}H H(H HEH(HEHEHEHEHEHEt HE@<,9E~E,EEHE@@,9E~U,)UHEHUHM1;2| 1;0@@0@HE@<,9E~U,E)ЉEHE@@,9E~E,EEEȉ,E(E$;(|$;,0HE@<,9E~E,EEHE@@,9E~E,)EEĉ,E(E$;(|$;,0bHE@<,9E~E,U)‰UHE@@,9E~E,EEEĉ,E(E$;(|$;,0EtTHEH(*U*M*('ft*U*M*, ft0t MEtHuH}Ot MEHEHEHEHEHEH(*U*M*(et*U*M*,xet0fHEH@0QH5kH^HokHEHp`HCHHÅ AfDAHekHuHIcHH<ZaHEHHx(EHEHP HEHHEHHEH}]tEU)ЉEЋUEЉEEU)ЉE̋EEEHEH(*U*M*(;dt*U*M*, dt0t MD9E܅yp#EkHEHEHEHEH}|HcEHcUH)HHHIHH?HHHEHcEHcUH)HHHI‰E;E} EHcUHkHcEH9} E}EqHcEHcUH)HHHIHH?HHHEHcEHcUH)HHHI‰E;E} E!HcUHkHcEH9} EEH}HEH0t HcEH؉EEt tt +Et"ME tM E@tM@6H5kHH5͖kH}ZH0Ht8EHLH]UHHd$H}HHP8HHEHBHEHEH}tfHEH@xHEHHEHHEHEH@pHEHHEHHEdHEH@xHEHHEHHEHEH@pHEHHEHHEHEHUH]UHH$@HHLPH}H5KkH}WHDžhHUHx1HHcHpHExHHEHHx@1HEHH@@HH}8 x t7H}) HHEHHx@HEHH@@HHH]H}HEH!DlEH6EHEHHEHHHEHHEHUHEHHH5ҔkHhHkHEHp`HhHhgHÅAfDAHkHuHhIcHH<[HEHHx(EHEHP EHEHHUEu7ZMEuHHEHED9qHEHHEHH2H5ΓkHhH5kH}*VHpHt94HHLPH]UHH$PHPLXL`LhLpH}uEMHEH5qkH}THUHP.H HcHHEEf/EzHEH@H1AEEEHEH@Hu HMEHuHdH}mHEH@HUILH0H.H? HcHHEH@HuHCEH{(S EEH{(S EEf/EzsEf/EzvEEHChHEf/z vEChHC`HEf/z sEC`}uC`f/Chz9}tC`f/Chz!H6Hs`H{hRXC0HH,H HcHHHH}AE|mAfDAHkHuHMIcHH<WHEH@HHx(EHEH@HP HUuHtVE9Z/HHHHt08/H0HHtHt0HDžD;}J.H5kH}]RH5kH}MRHHHt\0HPLXL`LhLpH]UHH$pH}uHDžxHUHu@+Hh HcHUlHExH^}THExhCHEH>tHEHE(HEHHcEHHH?HHEH}HEHtt t/tH`HUHcEHH4L>;]H}iHH}HEHtHEH@LEHuHUE*EXH}HEH *X^H-ELH5uukH`8H}H5!vkH}8HxHtEH8L@H]UHH$`H`LhH}HuHHDžxHUHuyHHcHUugH}HxFHxHEHHu[HEH]LeH}HEHtttA$E*Hx~H}HEHtEH`LhH]UHHd$H}HHEHd6f)Hd6EEEH]UHHd$H]LeH}HuHUH}tH}HEH!DEHE苀t -HE݀HHd6(]EEH}HEHHcHHH!*DEH}HEH!*DEHc6\MYMEYEXH-EH}HEHttu8HEHHxXHEHEHH@XHPEHEHHxXHEHEHH@XHP EaH}HEH!LcdHEH-H}HEHE܀}tHcHIEEH]LeH]UHH$`H}HuHUHMDEH}GHUHu%HMHcHxHEH H}HpHttu&H=jHjHUH$H=jHjHUHHEHHEHBH}FH HUHHJ HB(HEHHEHB8HEHHx@HuaHEHHxXHuIHE؋ t;E}tUHEHHEHHcHHUHHEHHE؊BHEHHa6HHBpHEHH`6@xH}=HUH@xH};HxHtH]UHHd$H}uHE;EHEUHEtet;|HEHxPH_6f)H_64mHEHxPH#`6H_6HHEHxPHv_6Hs_6#HEHxPHQ_6H_6HuH}HEH(H]UHHd$H}@uHE:Et"HEUHuH}HEH(H]UHHd$H}HuHEHHuHEHHHuH}HEH(H]UHHd$H}uHE;Et"HEUHuH}HEH(H]UHHd$H}@uHE:EtNHUEHEHx(t!H}HEH0@HEHx(eHuH}HEH(H]UHHd$H}uHE;Et,}~E1HUHuH}HEH(H]UHHd$H}uHE;Et"HEUHuH}HEH(H]UHHd$H}@uHE:Et"HEUHuH}HEH(H]UHHd$H}HuHH}HpVH]UHHd$H}HuHEHHuHEHHHuH}HEH(H]UHHd$H}HuHUHUHHEHHEHEH;EuHEH;Eu0u/HUHEHHEHHuH}HEH(H]UHHd$H}HuHUHUHHEHHEHEH;EuHEH;Eu0u/HUHEHHEHHuH}HEH(H]UHHd$H}EHEHHEHZ6f)MEu$HEHUHHuH}HEH(H]UHHd$H}uHE;Et"HEUHuH}HEH(H]UHHd$H}HuHEHH;Et?HEHHuHEHHHEHH}HEH(H]UHHd$H}HuHEHHuHEHHHuH}HEH(H]UHHd$H}HuHEHH;E{HEHxXstHEHHx`HEHpXxHUHEHHEHtHEHHx`HEHpXxHuH}HEH(H]UHHd$H}uHE ;Et"HEU HuH}HEH(H]UHHd$H]LeH}HuHEHxXHH=&k HIHuH=JukuHuH=Nskt@0LI$( LI$@H]LeH]UHHd$H}HHxgXHH= &k@P!H}HEHttsH}HEH HEHHHcHHEHHHEHHHPH}1HEH HEHH{HcHHEHHHEHHHP,HEHx(t!H}HEH0@HEHx(^H]UHHd$H]H}HuHUHEHHoPtH.PHEHIPtHPHEH]H]UHH$pH}HuHUHMH}HDžpHUHuHHcHxH}HEHttu EU)ЉENH}HEHttu EU)ЉE$HEHHHEH_qnHEHHH}HEHHHEHD@PHEHHMHUHp膳HpHEHpHpnpH}HxHtH]UHHd$H}.]H]UHH$ H}HuHUH}uHEHUHRhHEH}"HUHuBHjޕHcHUHEH}H@yj1QZHUHEHB8H=HEHu H}HEHuH}HEHuH}HEH H]UHHd$H}HuH}RHEHx8HEH@8H@H]UHHd$H]H}jHHtkHUHuHЕHcHUu%HHEHtHFuHHP`HEHtH]H]UHHd$H}HuUMDEDMHcEHcUHHEHcH9EHcUHcEH)HEHcH9EȀ}t}uHEU)HU}t}uHEUHEHEE)ЉEHEE)ЉEHcUHcEHHcUH)HH?HHHUHEEHUHEHcHcUHHcEH9|EU)HUHEEHU6HEHcHcEHHcEH9EU)HUHEU)HUH]UHH$HH}HuHUMDEDMHEH}Ⱥ(HaHEHHUHpHΕHcHhH]H}tH}HEH0tHUȋEBHEȋUPHUHE8HBHUHE@HB HEȋ@EHUȉB HEȋ@UHEȉP}0tSHEHc@HcU(HHEHc@ H9E($HEȋHHEȋPHEHp HEHxDMDE VMHEHcP HcE(HHEHc@H9|1E($HEȋHHEȋPHEHpHEHx DM DErHhHteHPHHF͕HcHuHuH}Ⱥ(ߕ!HHtHEHH]UHHd$H}uHEHP HEH@f/zv4HEHcPHEHc@ H)HUHH?HUHH?H ;Et *EE9HEHcPHEHc@ H)H*HEHP HEH@ \^EHE8tEHB6fWEEH]UHHd$H}EHEHcP HEHc@HH*HEHPHEH@ XYE\HB6YMEH]UHHd$H}HuHUHEpH}UHEH@HEpH}UHEH@ HE8t$HEH@ HUHRH HMHH HMHH]UH1HA6H5A6H=ejH1HtA6H5A6H=ej1HXA6H5A6H=ejH]UH1H=[kH [kHH4rH]UHH=4P׫H]UHHd$H}HEEH]UHHd$H}HuHEHH;Et8HEHHuHEHHHuH}HEHH]UHHd$H}uHE;Et"HEUHuH}HEHH]UHHd$H}@uHE:Et"HEUHuH}HEHH]UHHd$H}uHE;Et"HEUHuH}HEHH]UHHd$H}@u@tHEH H}1H]UHHd$H}HuH'ZHUHuEHmȕHcHUHEHHuiHHuH=>k1vHEHHuYHEǀ DHEHEv#HEHjHHEHEH@H@(x t+HEH@H@(p0HEHx@HEH@@H )EHv6(]EHMHUHuH}H]UHHd$H]H}uUHMHEu)H]HEH@HxPHEHp@HUGCPE'H]HEH@HxPHEHp@HUCPEHE@LEHE@PEHEHxHEH@HuHcEH؉E܋E؉EЋEԉE؋EЉEԋEUg<uy=HEȋ}E)Njue=HEHEHH}mHHEHH}VHHEHx@HEH@@HHUEg<u=HEHEHH} HEHEH@HxPHELHHEHp@LEHMHUH]H]UHHd$H]H}HGH@0HEHPTHEHp@HEHx}HE@HEHEH@8@EHEH@8@EHEH@8EHEHEHESgDEg ES‹E3HEHx@HEH@@HP`H]H]UHHd$H}HuHUHEH@8HU@HEH@8HU@ H]UHHd$H}EHEHxXEHEH@XHP H]UHHd$H]H}uHEHPTHEHp@HEHx/tpHEH@8@EHE@HEHEH@8EHEHEHESgDEg ES‹E3HEHx@HEH@@HP`HEH@8xu:HEHEH@88u:HEHEHEHH}HHEHH}oHHEHx@HEH@@HHH]H]UHHd$H}HuHH=TjH HEHHEHHEHHHEHHEHHEHHHEHHEHHEHHHEHHEH1HuH}H]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuH躟HcHUxHEHUH}1HEǀHEHHEHH@HE@ HEH}tH}tH}HEH.ĖHEHtlHhH(HHcH u#H}tHuH}HEHP`ÖdŖÖH HtƖƖHEH]UHHd$H}HH]UHHd$H}HuH0HUHu5H]HcHUuBHEHHu?Ht)HEHHu/HuH}HEH ÖH}b/HEHtĖH]UHHd$H}HuHH}HH]UHHd$H}@uHE:Et"HEUHuH}HEHH]UHHd$H}@uHE:Et"HEUHuH}HEHH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHu蒾H躜HcHUHEHUH}1LEIH1ҾH=vjc*HUHHUH=UkHUkHUHHEHHx`HEH0HEǀHEHHEHH@HEH}tH}tH}HEHHEHtlHhH(rH蚛HcH u#H}tHuH}HEHP`ndH HtCÖÖHEH]UHHd$H}HuH~HEHUHHHEH槫HEH֧H}1;H}tH}tH}HEHPpH]UHHd$H}HEEH]UHH$0H8L@H}HuUMLEH};H}⌖H5{kH}HUHhH%HcH`EHE؀x H}赋HÅA@AHkHuHMIcHH<HUHuH}HXHXPPL}tLPT;U~TUԉUD9w}tZH}tHcEHH?HHEԋuH}HEH HE؋H}HEH EԉEH}詟H5kH}蹊H5kH}9H`HtHEH8L@H]UHHd$H}HuHEHH;Et$HEHUHHuH}HEHH]UHH$ H}HuHUH}uHEHUHRhHEH}iHUHuҹHHcHUHEHUH}1HEHLEIHH=qj%HUHHUH=jzHUHHEǀHE苀HvjH4HEH)HEH}tH}tH}HEH HEHtlHhH(ϸHHcH u#H}tHuH}HEHP`˻VH Ht蠾{HEH]UHHd$H}HuH~HEHUHHHEHFHEH6H}1 H}tH}tH}HEHPpH]UHHd$H}@uHE:Et"HEUHuH}HEHH]UHHd$H}HuHEHH;Et8HEHHuHEHHHuH}HEHH]UHHd$H}HuHEHH;EHEH:%tHEHHx`HEH*HUHEHHEHtHEHHx`HEH)HuH}HEHH]UHHd$H}HHEHuHEHHEHEH]UHHd$H}HuHH=CjH蝚HEHp(HEHx(HEH@(HHEHp0HEHx0HEH@0HHEHpPHEHxPHEH@PHHUHE@8B8HUHE@@B@HUHE@H]UHH$pH}HuHUH}H}HUHu4H\HcHUu=H}u H}1)HEHEHDžx HxH}Hu1H}fH}]HEHtH]UHHd$@}HuHU}t HEHEHEHEHEH]UHHd$EH5f/z s H5H5f/z v H5H-H]UHHd$E}g<@EǪEH]UHHd$Љ}uEHm5f/z s H^5H;5f/z v H,5EE@EED*ȋETEDH)H*YEXH-UD}|EH]UHHd$H}uHEHUHuH>HcHUuB} uH}H55'uH}өHUH}1H55쩖H}CHEHteH]UHHd$EMHEH;EEEH]UHHd$EME裑uE蕑tEEEH]UHH$H}HuHuH}H55CHEHx u'HEH8H臖HH}1HEHp H}H]UHHd$EMEӐEtEEEH]UHHd$}*EHH5^EE}H5(m}m]EH]UHHd$EE}HS5(m}H5(m}蛋EH]UHHd$EE}H5(m}m}؛HEHk H]UHHd$EH5f/z s H|5Hy5f/z v Hj5H-H]UHH$`H`LhLpH}HuHUHEHULbIHLILLHxLmLHEHPH5F:<ЖHEHUHu袣HʁHcHxuQH}|JHfDHH}HEH4cHuH}HEHcP$HuH}QH;]|fH}HEHPH5F:ϖH}EH}HxHt軧H`LhLpH]UHHd$H}HuUH}HUHu豢HـHcHUuHHEHEHuH=>bHEuH}1H}@RHuH}fL聥H}HEHtHEH]UHHd$EHEHuH}EH詽MHHVUUUUUUUHH?HHkHBfEu}ﻪEH]UHHd$H}EHGHuH}HuHuH}uHEHEEH]UHHd$H}HHuH}Hlu0HuH};uHuH}*uH5HHEEH]UHHd$H]UHHd$H]UHHd$H}H]UHHd$EH}HuEu8HEf/Ez v HUHEHHEf/Ez s HEHUHH]UHHd$}HuHUHE;E~ HEUHE;E} HEUH]UHHd$EMUHa5\EYEMYMXMEH]UHHd$H}HuHUHMHEH;EuHEH;EuEEEH]UHH$PHPLXH}HuHUHEHDžpHUHu%HM}HcHxH}1HE@gX|9EfE܃E܉H}4IHMHUHuL;]H}tSHH8tFHEHhHDž` H`H]kHp1HpHpH艡Hp H} HxHtHPLXH]UHH$H}HuHUHMHDžHDžHUHuܝH|HcHUHEHp H}THhH(蔝H{HcH usH HEHH HtHIHEHtH@HPHEHp HHHu1HSHH}HEH06H HH=7>HHHHœHzHcHucH0 HEH8@H 51HHHEHP 1H HHEH0H}1y tHHtS.砖RH H HEHt輠H]UHHd$H}Ef)EHE1HH]UHHd$H]H}EMuuHEE\@EEuHEEX@EEf/EzHEHxMOHEǀH}@vHHpH}HEHP"HPHtܔ蕓;]H}tUH}H@HEHH@HHHHH=?jrHH5Hp}t՟萑H}zHpHtqH@HHH5*]jH}蹴HxHtȒH8H]UHHd$H]H}HuH~HEHUHHH}HHvHUHu蛍HkHcHUu0"fDH8HEHHEHHj軁HH5H蹎HuH}|*HI5H=>j老HH5H~HUHEHBHuH}H]UHHd$H}HuHwu*H5H=0>jHH5HH}HEHHuH}E}*H5H==j̀HH5HʍuH}H]UHH$H}HuHUHMH}uHEHUHRhHEH}HUHu^HiHcHxuGHEHUHEHBHUHEHBHEH}tH}tH}HEH,HxHtlH`H ؊HiHcHu#H}tHuH}HEHP`ԍ_ʍHHt詐脐HEH]UHHd$H}HuHHPHEHpH}WHt*Hs5H==jHH5HHEHxHuH]UHH$ H}HuHuHEHUHRhHEH}HUHu跉HgHcHUuHHEH=>KtHUHBHEH}tH}tH}HEH臌HEHtlHpH06H^gHcH(u#H}tHuH}HEHP`2轍(H(Ht⎖HEH]UHHd$H]LeLmH}HuHEH@@gX|KEEHEHxuIMIEH;EuLtHEHxu1;]HEHxxH]LeLmH]UHHd$H]LeLmH}HuHEH@@gX|KEEHEHxuDIMIEH;EuLsHEHxu1J;]HEHxH]LeLmH]UHHd$H}HuH~HEHUHHHEH@x~*H5H=-:j0|HH5H.HEHx1rH}1sH}tH}tH}HEHPpH]UHHd$H]H}HuHUHEH@@gX|AEDEHEHxuHEH@H;EuHEH@H;Et ;]HEHEH]H]UHH$PHXL`H}HuUHDžpHUHuHFdHcHUHcEHxH53@HxH} W}HE8t'HEH0HtHvHHEH8nH54@HpUH4@HEHpHpVHp\UHÅnAAHpIcċEHEH8(UHxHcEHhH|HhH;x0tHEHHcED9H53@HpTHEHt草HXL`H]UHH$`HhH}HuHDžpHDžxHUHumHbHcHU]HE8tH}1BDHEH@HtH@HHuH}H55HEH@EHHHc}蕯H}1HH}01&HEHxSHÃEfDEHx HEHPHcEHHHc 1HHp01HpHp1H55HxKHxHEH0H}12;]Y$HpxHxlHEHt莇HhH]UHHd$H}uHEHUHu薂H`HcHUuhEHE8u[H5w1@H}vRHg1@HEHpH}^SH}5R|"@HuHcʋ M;Mt9EFH51@H}RHEHt踆EH]UHH$0H}HuHEH}HqHEHHUHu訁H_HcHUuHE蹄HEHteHxH8hH_HcH0uHuH}rkaH0Ht@HEH]UHHd$H}@uHE:Et7HUEHE8t%HEH5/@HMHEHxQH]UHH$HH}HuH]HEHUHppH^HcHhH}@H}4HE8H=;>F@HEHPH H2^HcHHu,-EHu;EHu|Eԃ}uZ}uT}uNHuH}?t=HDžH5.@HHEHxPHEH@Un}~HuH}.D}~H};UHuH}()!}~H}|2HuH})H}HEHHcHH5-@HHEHxOEH}JMHHHH~H\HcHuG9fDHuH< HuH}tHEHPHcEM EH= uTHHP`HHtł0H}'jHHtHt=蠂HDžHcEH`H5,@H`HEHxNӀH}*H}!HhHt@HH]UHHd$H]H}uUHE8H}u:E}tZHEH@HtH@HHHEH5,@HMHEHx7NHEHXHEHxLUEHEHxL|FEEHUHJHcU;Ut"HUHrHc}HUHJHcUE;EHcEHEH5r+@HMHEHxMH]H]UHH$H}HuHUHMH}uHEHUHRhHEH}HUHu{HZHcHxuLHEHEHUHPHEHxHuHEH}tH}tH}HEH~HxHtlH`H c{HYHcHu#H}tHuH}HEHP`_~U~HHt4HEH]UHH$H}HuHUHMH}uHEHUHRhHEH} HUHuzHXHcHxufHEHEHUHPHEHUHPHEHxtHEHxHEH0YHEH}tH}tH}HEH]}HxHtlH`H  zH1XHcHu#H}tHuH}HEHP`}~|HHtHEH]UHHd$H}HuH~HEHUHHH}-H}1BߦH}tH}tH}HEHPpH]UHHd$H]H}G|2EE@EEH}dݦHH)e}H}ߦH]H]UHHd$H}HuUH}ݦHEHxtHEH@H0H}HEHpH}H]UHHd$H}uH}ܦH@H]UHHd$H]H}HuHE@gX|/EDEEH}lܦH@H;Et ;]EEH]H]UHHd$H}莹H]UHHd$H}ukH]UHH5?H=.IH=1jxHHH?H5H=?ĢH@.H]UHH=U@bH51JjH=r4j轝H5?H=誝H]UHH$ H}HuHUH[H}uHEHUHRhHEH}jHUHuvHTHcHUHEHhH(svHTHcH uKHEHxHu|[H=zZHzZ8HUHB@H=?>`HUHB=yH}ZH HtzHEH}tH}tH}HEHxHEHtlHhH uHSHcH`u#H}tHuH}HEHP`x-zxH`Htw{R{HEH]UHHd$H]LeH}HuH~HEHUHHHEH@@gX|/E@EHEHxu<٦ILa;]HEHx`HEHx8`HEHx@`H}1`H}tH}tH}HEHPpH]LeH]UHHd$H]LeH}HG@gX|0EDEHEHxuئILQ`;]HEHxڦH]LeH]UHHd$H}HuHUH}H}HEHUHusHQHcHU7H}HEx/H}H5V5HH}H5]5HiH}H5l5HtTH}H5w5Ht?H}H55Ht*H}H55HtH}H55{HuH} wH}H55XHu HEhUH}H556H<HEh /H}H55HtH}H55Hu.H} HEHx8HEH@8HH}H5}5HtH}H55Hu.H} HEHx8HEH@8HH}H5e5`Hu.H}R HEHx8HEH@8H<H}H5B5Hu.H} HEHx8HEH@8HH}H55Hu HE@H}H55Hu HE@ HuH=5HtH}H5 5{HH}i HuH}H5%GH}tHEHx8HuHEH@8H@HuH}H5FH}t%H}mHHEHx8HEH@8H sH}ߕH}ߕH}ߕHEHtuH]UHH$@H@LHH}HuHߕHEHUHxoHNHcHpFHuH}’HExHEx ,HEH@8@dEHEH@8HcHdHkFH ףp= ףHHHH?HHHEHx8HEH@8HHHEHp8HEHxHEH@HHHEHx1H55HEH@HH EHEHxHu1HEH@HEHEx~(HcMHkFH ףp= ףHHHH?HʉU&HcMHkH ףp= ףHHHH?HʉUHE@,E艅lHE@(hHcH!HH!H NjlHcH HH!кH!H HEHp0׻HEHE@HH5fWH}BxHHEHp0rHEHEHxHEH@HH1HIHuL9HHuHZILHEHx8uHEH@8HHHEHp8HEHxHEH@HHHEHxHu1HEH@HEHE@HH5fW`HEHp0HEHx(趺H`6wHHEHp0fHEHEHxHEH@HH1HIHuL-HHuHNIL HUEB(oH} ܕH}ܕHpHt!qH@LHH]UHH$`H}HuHەHEHUHxlH/JHcHpHuH}HExHEx ZHEH@8@dEHEH@8HcHdHkFH ףp= ףHHHH?HHHEHx8HEH@8HHHEHp8HEHxHEH@HHHEHxHu1HEH@HHEHEHx8uHEH@8HHHEx~PHcMHkFH ףp= ףHHHH?HʉUHcUHcEHHEHc@$H9EEԉEHcMHkH ףp= ףHHHH?HʉUHcUHcEH)HEHc@$H9~QEU)ЉEDHEHp8HEHxHEH@HHHEHxHu1HEH@HHEHEP EHUB HEHUR$l;~lHEP$mH}sٕH}jٕHpHtnH]UHH$PH}HEHUHuiHGHcHUxHEHxHEH@HPpHE@HHEHxHuHEH@HHuHEHx@HEH@@H@HEHxHEH@HHEHx@HEH@@HHHEHxHEH@HPxHHEHx@HEH@@H HEHxHEH@HHEHx@HEH@@HHEHxHEH@HHEHx@HEH@@HHEHxHEH@HHEHx@HEH@@HHEHxHEH@HHEHx@HEH@@HHEH@HHEE۽`HF5(ۭ`۽pۭp߽hHhHk HEHx@HEH@@HPHEHx@vHUHB8HEHx@HEHx8HEH@8HPH}HE@HE@ 2jH}֕HEHtkH]UHHd$H}HHx8RHEH@@gpHEHx ˦HUHB8HEH@@gpHEHxͦH]UHHd$H}HHx8HEHEHx8H}HEHPHEHxHu̦H]UHH$H}HuHDžxHUHueHDHcHU@H}HH!¸H!HEHP Hx6ՕHg5H`HEHhHn5HpH`1ɺHx%ٕHxH=\HEH`H 1eHYCHcHuCHEHUH HHHPHUHEH HJ HB(H}tHEH@ HEhH}PHEHp@HEHxHEH@HHHHtXigHxԕHEHt9iHEH]UHH$H}uUHMHDžpHUHu9dHaBHcHxH}VEHcH!HH!H EHcH HH!кH!H HEHH0EHcH!HH!H EHcH HH!кH!H HEHH(Hp ӕH;5HXHEH`HB5HhHX1ɺHp֕HpH=~\qHEHXHcH-AHcHu7HEHMHHPHHHMHUHHA HQ(H}HeH}NHEHp@HEHxHEH@HHHHt8geHpѕHxHtgH]UHHd$}%fEEUfEE%fEEUfEE%fEEUfEfEHEH]UHHd$H}H}1H]UHHd$H}E%fU U H]UHHd$}u} E}tEEH]UHHd$H}uHUEBHEH]UHH$ H}HuHUHFH}uHEHUHRhHEH};HUHu`H>HcHUHEHhH(`H>HcH uHEHxHuEHE@|cH}3EH HtdHEH}tH}tH}HEH6cHEHtlHhH _H >HcH`u#H}tHuH}HEHP`bldbH`HteeHEH]UHHd$H}HHx(u H}@ H}H}|KH]UHH$PHPH}HDžpHUHu _H4=HcHxHEHxHEH@HP8HŻ5fWEHEHx(HEH@(HÃIEEHE@0t tKHEHx(UHpHEH@(HHpHEHxHEH@HP0HEDHEHx(UHpHEH@(HHpHEHxHEH@HPHEHEH@ HEHE@utBukHEHc@4HcUH)HH?HHH*MUhHH}HE.HEHcP4HcEH)H*M%hHH}骫HEHE@0t tMHEHx(UHpHEH@(HHpHEHxU܋uHEH@HP(FHEHx(UHpHEH@(HHpHEHxU܋uHEH@HP ElHH!NjlHcH HH!кH!H EfHHEHx ꩫHUHB ;]_Hp˕HxHt`HPH]UHHd$H}HHp  MHwHE@0t t6HEPHEp HEHH HEHxHEH@HP(HEPHEp HEHH HEHxHEH@HP H=>HUHB(HUHuR[Hz9HcHUu*HEHp HEHx(HEH@(H8H}@^HEHx(3GHEHt_H]UHHd$H}uUEHcH!HH!H EHcH HH!кH!H HEHH HEH]UHHd$H}HuHUHEHB HEH]UHHd$H}HuHEHx Hu.ʕHEH]UHHd$H}HuHUHEHB(HEH]UHHd$H}uHUEB0HEH]UHHd$H}uHUEB4HEH]UHHd$H}uHE@(E= E}tEEH]UHH$ H}HuHuHEHUHRhHEH}HUHuYH/7HcHUuXHEHEHHPHEHHP HE@( HEH}tH}tH}HEH[HEHtlHpH0vXH6HcH(u#H}tHuH}HEHP`r[\h[H(HtG^"^HEH]UHHd$H}HuHUH}H]UHHd$H]UHHd$H}ЉuUMDEDM؋UHcҸH!HH!H ЋUHcH HH!ʹH!H H‹EHcH!HH!H ƋEHcH HH!ȹH!H ƋMH}H]UHHd$H}HuHUMHcEH؉EԋEHcH!HH!H EHcH HH!кH!H HMHEHEHuH}HEHuH}HEHEHEHuH}A1ɺHEH H]UHHd$H}HuHEx( u HEHEHEx(HEPHEHEH]UHHd$H}G,H]UHH$HLH}HuHEHDžxHUHuUH3HcHUH{5HHq5HHHuHx>HxH}}:HUH=+j8HIH`H UHB3HcHuHuLHEXLAHHtYXHx9H}9HEHtnYHEHLH]UHH$HLH}uUHMHEHDžpHUHuCTHk2HcHxH"5HH5HHHuHpt=HpH}$9HUؾH=|*jHIHXHSH1HcHuHMUuL)VL?HHt;XVHpZ8H}Q8HxHtXHLH]UHHd$H}HuEuH}HUH H]UHHd$H}HuEuH}HUH H]UHHd$H}uUHMHEH}H蹱H}蠱H]UHHd$H}uUMHEH}HzH}aH]UHHd$H}uuH]UHHd$H}uH}H]UHHd$H}HuHUHEHBH]UHHd$H}HuHUHEHB H]UHHd$H}uHUEB(H]UHHd$H}@uHUEB,H]UHHd$H}@uHUEB-H]UHHd$H}@uHUEB.H]UHH$pH}HuUHE HSՕHuBEtt 4HuH}HEHHEHuH}HEH=>HEHUHuPH.HcHxu)HuH}HEH8UHuH}:HESH}x HEоH=> HEH0HLH*HcHHuH}HEH8H}HEHÃEDEEH}HHEHHHuȺ H}1廕EH}uIHuHHKH)HcH fHuLdئHuH}1HEHEHcUHcEHHcEHHcEH9HxϺHEH`HU5HhHEHpH`1ɺHxHxH}@HUHHH}ѺUEEE5H}H7HEHH`Hڧ5HhHEHpH`1ɺH&HHEH8@HUHxsHxH}3H}1(EH蠹HEHH`HC5HhHEHpH`1ɺH菽HHEH8@HUHxܜHxH}蜹HuH}菹EEL֦LLI$P`HHtNH}H͸HEHH`Hp5HhHEHpH`1ɺH輼HHEH8@HUHx HxH}ɸLceH}HEHHcHI9tHEH0H}1Hܥ5迹;]^KH}4H}4HHtM H}HuOzKHxηH·H}-H}谷H}觷HHHtLHPLXH]H8CH8CH8CH8H8H8HH8HH8HUHHd$H}HuH]UHHd$H}uUHMH]UHHd$H}ΈH]UHHd$H}讈H]UHHd$H}Hu芈H]UHHd$H}nH]UHHd$H}NH]UHHd$H}uU(H]UHHd$H}uUH]UHHd$H}HuHUMDE߇H]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuEH#HcHUuWHEHUH}1H=$iG0HUHB`HEH}tH}tH}HEHHHEHtlHhH(2EHZ#HcH u#H}tHuH}HEHP`.HI$HH HtKJHEH]UHHd$H}HuH~HEHUHHHEHx`/H}1nH}tH}tH}HEHPpH]UHHd$H}HuHHPH=Nr HHtHPHEHxN)H]UHHd$H}HuHH]UHHd$H}HuHHUHHA HBHA(H]UHHd$H}HujH]UHHd$H}HuJH]UHHd$H}Hu*H]UHHd$H}HuHEHcPHEHc@H)HUHH?HUHH?H Eu2HEHcPHEHc@H)HUHH?HUHH?H EEH]UHHd$H}HuHEHcPHEHc@H)HUHH?HUHH?H Eu2HEHcPHEHc@H)HUHH?HUHH?H EEH]UHHd$H}^H]UHHd$H}HH=|+jH̶H]UHHd$H}uH}c#H]UHHd$H}uHUHЋuH}H:#H]UHH$ H}HuHuHEHUHRhHEH}HUHuGAHoHcHUuHHEH}11H} #HEH}tH}tH}HEHDHEHtlHpH0@HHcH(u#H}tHuH}HEHP`CMECH(HtFrFHEH]UHH$H}HuHUMH}uHEHUHRhHEH}HUHu@H7HcHxu`HEHEUPHE@HE@HEHx(HuHEH}tH}tH}HEHBHxHtlH`H p?HHcHu#H}tHuH}HEHP`lBCbBHHtAEEHEH]UHH$`HhLpH}HuHUHMH}#HUHu>HHcHxH}HEH EH}HEH}H}HEHHHEp0HlIċ]E)HEP0HEHp(H}HEH)ÉދUL2HHEHp(HILYH}HEHHHEp0HIċUEg4ULHHEHp(HdIL)@H}"HxHtJBHhLpH]UHHd$H}H]UHHd$H}HuHUH}B"HUHu =HHHcHUu9HEHUH@H;t(HEHpH}HEHHHEHUH@H?H}!HEHtxAH]UHH$pHpLxH}HuHUHMH}!HUHukH}Y HEHt@HpLxH]UHHd$H}0H]UHH$H}Hu؉UHMLELMH}uHEHUHRhHEH} HUHp:HHcHhuaHEHUH}й 12HEЋUP8HUHEHB@HEHBHHEH}tH}tH}HEHx=HhHtlHPH$:HLHcHu#H}tHuH}HEHP` =>=HHt??HEH]UHH$pHpH}HuHUHMH}HEHUHuz9HHcHxH]HDHH5H0H5HPH}$t?HEHx@t4H}HEHPHHEHxHHED@8LMHUHMHEP@HUHMHuH}HUHBpHEǀHEǀHEǀHEǀHEƀH}@0XfHEHp0H}HjeHEHpHH}HGeHEHpPH}HSjeHEHphH}HeGheHEHH}HZSjMeHEH}tH}tH}HEH*HEHtlHhH('HHcH u#H}tHuH}HEHP`*,*H Hta-<-HEH]UHHd$H}HuH~HEHUHHHEHx0 HEHxHHEHxPHEHxXHEHx`HEHxhHEHxpHEHH}1>H}tH}tH}HEHPpH]UHH$H}HuHEHUHu2&HZHcHx|HEHpH}7 HEH}HEHH`H %HHcHHEHp0H}HEH0HEH@0 u0HEHx1HEH@HH}HEH8HEH@0H}HEH8HEH@P{HEHpPH}HEH`HEH@Pxp u3HEHxHEH@HH}HEHh>HEH@PppH}HEHh H} HEHpHEHHUH@HEHuHUH}HEHHEHx TmHuHUH}HEHP HH$HBHcHuH''H}HEHP0HHt('H}1HEHHHtHti(HDž&H}~HxHt=(H]UHHd$H]LeLmH}HhjHEHEHxHEH@HEHEHXHEH@H{HCH EHEH@H{HCH EH{ ۚAAEUE@EEH{ HUHRP0uH{ IHEHpHUL(HEH@Hp0HEHxHEH@H0HEH@Ht*HEH@HHEHxHEH@H`(HEHx HEH@HpEEHEH@@|tt(HMHU}s0rHMHU}s]}tpC,EC,Ug EȋSEȉES(Eg EȋCU))+EĉEEEEEEĉEEEEHEHEHEHEjC,ES,Eg EȋSEȉES(Eg EȋEȉEEEEEEĉEUEЉEHEHEHEHE؋uH{ IHEHpHUHMLIES,UH}1yD;eHEH@H@XHEtHExXt0HEH@HpXHEHxHEH@H`HEHx HEH@H@C0gD`A|hEEHcEHcS,H HcEHHcEHH?HHHcSHHȉEHEHxDEUK3HEH@HD;eHEH@H@`HEtHExXt0HEH@Hp`HEHxHEH@H`HEHx HEH@H@CgD`A|iEEHcUHcC(H HcEHHcEHH?HHHcHHȉEHEHxMuDC SHEH@HD;eH]LeLmH]UHHd$H}HuHEHHUHHE*E*U*M1Mt*E*U*MMt0H]UHH$HLH}HuHUHMH}H56jHhCHPHHHcHHjHEHuH}HUHHhHHpHE@8xHEHEHEHHEHEEH}HEHEHEH}HEH EHEH}HEH EH}֔ÃEfEH}uIHUHuLMEEHE@|tt+uHMHUԋ}*ܫxHMHUЋ}ܫH}uVD`0H}uFHp(H}HEHDÈ}HEMUỦUMg4 UlUMUg4UpM))uMM)ʉUUUʉUEEEẺEUg EȋlEȉUEg EȋhEȉEEEЉEHUH}HuqtE؉E;]EH}H5jHhJAHHtYEHLH]UHH$HH}HuHUH}hHUHpCHkHcHhHJ jHEHH!¸H!HUHEx@vHExDH}HHHPHHHcHzHXHEHUHuH}3HEHx(udHE苐H}H5v5HEHH HH!HcH HH!кH!H HM'HE苐HEHp(H}HEHHEH}HEHt%HE苀gpH}HEH E؉EHEHHEH;~HcH!HH!H ;~HcH HH!кH!H HMHowBHHP`HHtHEx@vHEp@H}HEH EHExDvHEpDH}HEH EH}HhHtJHEHH]UHHd$H}HuHUHE苰HEHxHEH@H EHE苰HEHxHEH@H EHE苰HEHxHEH@H EHEHx ܎EHE@HE@ U)+EԉE*HEHcPHEHc@ HHcUH)HH?HHEHE耸zHE@(vt9tLr_vXHEUHEEHE@U)HUB0EEHUBHUBEEHUR )HEP HEHUЋMMMMM MuMHUHEHHEHBUԋEЉEEEEEEEEEEEEHUHEHHEHH]UHHd$H}uHE@(;EtHEUP(HuH}HEHH]UHHd$H}HuHEHx0HuHEH@0HHuH}HEHH]UHHd$H}uHE@<;EtHEUP蔩HUHHEHHUHHHA`HQhHEH}tH}tH}HEHLHEHtlHhH(H#ǔHcH u#H}tHuH}HEHP`H HtHEH]UHHd$H}HuH~HEHUHHHEHfӪHEHVӪHEHFӪHEH6ӪH}1 H}tH}tH}HEHPpH]UHHd$H}HuH̕HEHUHuHŔHcHUulHEx tbHEHHEHHt?H}HuLEHELHEHHEHHuH}iH}VH}̕HEHtH]UHH$`H`H}HuHUH}˕HUHuHĔHcHxHUHuH}KHhHpHhHEHpHEHE耸gHE@dt EHc]HHH?HHHEHx0<HcH)É]HEH@E؉EHc]HH?HHHEHx0;HcHHU艂Hc]HH?HHHEHx0;HcH؉EHEH@E)ЉEHcEHH?HHHUHRHcH)HEHx0R;HcH)HE艘AHEH@HcHHH?HHEHEH@HcHH?HHE:H}ɕHxHtHEHUH`H]UHHd$H}HH]UHHd$H}HH]UHHd$H}HH]UHHd$H}HuH}tHEHH}>T#HEHHuHEHHH]UHHd$H}HuHEH߳HHEHH}H]UHHd$H}HtHEHuEEEH]UHH$PH}HuUMDELMH}uȕHDžXHUHpEHmHcHhHEЀx HEHHEHHdH}tUE)HuH}H}HXTHXHuH}H``HcH!HH!H dHcH HH!кH!H HMHEЋ@dt t+tJjHcEHH?HHHcUHHUЉFHcEHH?HHHcUH)HEЉ"HcEHcUHHH?HHHUЉHcEHcUHHH?HHHUHcHHUЉHEЋŰEHEHE؉HXQH}hƕHhHt'H]UHHd$H}HuHEHHuHEHHHuH}HEHH]UHHd$H}HuHEHHuHEHHHuH}HEHH]UHHd$H}HuHEHHuHEHHHuH}HEHH]UHHd$H}@uHE:Et"HEUHuH}HEHH]UHHd$H}uHE;Et"HEUHuH}HEHH]UHHd$H}HuHEHHuHEHHHuH}HEHH]UHHd$H}@uHE:Et"HEUHuH}HEHH]UHHd$H}Gdt ttH}R H}1EH]UHH$pH}HuUH}ÕHDžxHEHUHuޕHӼHcHUuuHEHH}HEHHHEHHxHEHHHxHED@PMHUH}跐HuHEH#NNHxMH}MH}•HEHtH]UHHd$H}HEEH]UHHd$H}HuHEHH;Et8HEHHuHEHHHuH}HEHH]UHHd$H}uHE;Et"HEUHuH}HEHH]UHHd$H}@uHE:Et"HEUHuH}HEHH]UHHd$H}uHE;Et"HEUHuH}HEHH]UHHd$H}@u@tHEH H}1H]UHHd$H}HuHKHUHuەHHcHUHEHHuJ[HHuH=f0jgHEHHuKHEǀ DHEHEv#HEHiHHHEH@8HpUuH}HEH^UEgD@UEgHUE)‹uE)H}HEHPX"HNH`m+H5i1HM5H`,H`HHcMHkHgfffffffHHH?HHHcMHkHgfffffffHHH?HH2HEH`*H50i1H5H`k,H`HlQH}BH`*HEȋ@@HiH41Ht5H`,H`HH`X*H}诟HhHtnH]UHH$HH}uHEH`H fH莘HcHKHMiH5iH}EE|tt;pH5(}HDžH5iHH}غ&7H{5(}HDž H5iHH}غ튕}H}菉HÅWDž|f|HEH$fEfD$HuH}cxHE@mݝHE@mݝHHEHHEЋ|tL}uFEH5YEH5YHHEHHEHEPEMhHHEHxHMHc|Hmm};|H}$HLEMtM@IHuHEHx1HEH@H,H5iH}ޕHHt蛼HH]UHH$PHPLXH}HuHEHUHu脷H謕HcHx iEH2iH5iH}ZHEHUHtHRHHMD:EHEHtH@HpH5iHpH}7H]HtH[1EfEHUHcE| HEH@H@(xXt}t1H}萆HHuHEHxDE1HEH@H/H}_HHuHEHxDE1HEH@HEHEHcULdHEHpHMA$HitϋAHMA$Hi|ϋAJ-HHE@HHEHxIHUHcMHʃE;]۸H5|iH};ܕHxHtJHPLXH]UHHd$H}@uUHitHE@EHi|HE@,HHE@UHHEHxH]UHHd$H}HuHEHx(HuHEH@(HHuH}HEHH]UHHd$H}uHE@0;EtHEUP0HuH}HEHH]UHHd$H}uHE@4;EtHEUP4HuH}HEHH]UHHd$H}HuHEHx8HuHEH@8HHuH}HEHH]UHHd$H}uHE@@;EtHEUP@HuH}HEHH]UHHd$H}uHE@D;EtHEUPDHuH}HEHH]UHHd$H}HuHH=iH譗t(HMHUHB(HA(HB0HA0HUHEf@8fB8HuH}H]UHHd$H}HHH}ttH}kEH}Xf/EzLwJH}0ҾH}0ҾH85H=4iGHH5HEH]UHHd$H}uHUEHD HEEH]UHHd$H}uHUED7H]UHHd$H}HuHUHEHt0H}xHEf/zvH}^HEH}xt0H}6HEf/zsH}HEH]UHHd$H}uHEUZD EH5H5EEEH]UHHd$H}uEHMEHUHT HuH}HEHH]UHHd$H}uUHMEUT7HuH}HEHH]UHHd$H}HuHH=5iH轔t&HUHEHz(Hp(HHUHE@HBHHuH}H]UHHd$H}HHH}ttH}kEH}Xf/EzLwJH}0Ҿ/H}0ҾH5H=TigHH5HeH}'H}ttH}EH}f/EzLwJH}0ҾH}0ҾH,5H=iˣHH5HɰH]UHHd$H}HuHEHuHx(HHEHxHחHuH}HEHH]UHHd$H}uHUEHD HEEH]UHHd$H}uHUEDGH]UHHd$H}uHUEHD HEHI5f)H:5EܛEEH]UHHd$H}uEHMEHUHT HuH}HEHH]UHHd$H}uUHMEUTGHuH}HEHH]UHHd$H}HuHH=iH}tHMHUHB(HA(HB0HA0HuH}H]UHH$ H}HuHUH}uHEHUHRhHEH}.HUHu肬H誊HcHUHEHUH}1tH 5H`H 5HhH 5HpH 5HxH`H}HEH}tH}tH}HEH HEHtlHhH 身H≔HcH`u#H}tHuH}HEHP`趮A謮H`Ht英fHEH]UHHd$H]H}HuHUH}>HUHuHDHcHUH}H}HEH H}H}HEH lj"HHEH8YHUHH}H}HEH H}aH}HEH lj!HHEHxHUHBhH}HEHtᮕH]H]UHHd$H}uHUED$H]UHHd$H}uUHUEHcD$UH9t#HEUML$HuH}HEHH]UHHd$H}HuHH=iH퍕t*HUHE@(B(HUHE@0B0HUHE@4B4HuH}H]UHH$ H}HuHUH}uHEHUHRhHEH}HUHu⨕H HcHUu\HEHUH}1HE@0 HE@ HE@4HEH}tH}tH}HEH螫HEHtlHhH(MHuHcH u#H}tHuH}HEHP`IԬ?H HtHEH]UHH$H}HuHUEHMH}֌HxH8讧HօHcH0+HEx HE@0|$HE@4<$e]HE@,,tEHEP0,HcHUJ4,HcHH ߭ ߽ H}HEH HcH؉EE\Ef)*E~H EHcH!HH!H Ƌ$EHcH HH!кH!H H}HEMXM*EH EHcH!HH!H Ƌ$EHcH HH!кH!H H}rHEHEHxmHEH\H}1HEHpHEx(HEp(H}HEH HcHH*M:H EHcH!HH!H Ƌ$EHcH HH!кH!H H}HEHEHxgCH}1HEH@HEHHEHHEHHEHHH}A1ɺHEHFHEHHEHHEHHH}A1ɺHEH蔧H}KH0Ht H]UHHd$H}uHE@(;EtHEUP(HuH}HEHH]UHHd$H}@uHE@,:EtHEUP,HuH}HEHH]UHHd$H}uHE@0;EtHEUP0HuH}HEHH]UHHd$H}uHE@4;EtHEUP4HuH}HEHH]UHHd$H}HuHH=UiH}t,HUHE@(B(HUHEH@,HB,HUHE@4B4HuH}H]UHH$ H}HuHUH}uHEHUHRhHEH}HUHurH蚀HcHUuhHEHUH}1hHE@(HUHB,HE@4HEH}tH}tH}HEH"HEHtlHhH(ѡHHcH u#H}tHuH}HEHP`ͤXäH Ht袧}HEH]UHHd$H}uHE@(;EtHEUP(HuH}HEHH]UHHd$H}uHE@,;EtHEUP,HuH}HEHH]UHHd$H}uHE@0;EtHEUP0HuH}HEHH]UHHd$H}@uHE@4:EtHEUP4HuH}HEHH]UHH$ H}HuHUH}uHEHUHRhHEH}3HUHuH:~HcHUHEHUH}1HE@(H=FHF8HUHB0HEHP0HMHHHB8HJ@HE@ HEH}tH}tH}HEH薢HEHtlHhH(EHm}HcH u#H}tHuH}HEHP`Ạ7H HtHEH]UHHd$H}HuH~HEHUHHHEHx0يH}1H}tH}tH}HEHPpH]UHHd$H}HuHH=iH轂t/HEHp0HEHx0HEH@0HHUHE@(B(HuH}H]UHHd$H}HuHEHx0HuHEH@0HHuH}HEHH]UHHd$H}uHE@(;EtHEUP(HuH}HEHH]UHHd$H}؉uHUHMLEߕH]UHHd$H}HuޕH]UHHd$H}@uޕH]UHHd$H}HuHFHEHEH@HEذE\EH*9fTH4f/zw0Ef/EzsH]UHHd$H}uUЃ;E|BUUfEH}HcUHHuHcMHDf/DzsE ;EEEH]UHHd$H}HH4HHHUH4HHBHE@ HEHx1 HEHxk|1EEHUHrHcMH4HH;EHEHx$xk|/EDEHUHr$HcMHA4HH;EH]UHH$pH}ЉuH&4HHUf@fEHEHU@H\B@*M^EE<$\e<$hEE|$HEH$fEfD$4f]EH]UHHd$H]H}HuHEHX8C0tHEHx`s HEPXHcH;E*C0tHEHx`sHEPXHcH;E|EEEH]H]UHH$`H}HuHEH@8xHHEH4f/zHEHE-lHmHEHxHEHEHEHx0HEP(HcHEH4HHUf@fEHEH'9fTEE<$c}Hb4HH$f@fD$cm<$,gEE|$HEH$fEfD$|d]@HE^EH-H*YEEHmHEHxEHEHEHx0HEP(HcH+EHHHIHUHR8RHH9}?HUHEHEH4YEHEHY4f/_YH]UHHd$H}EHEH@HxEHEH@HEH@Hx0HEH@P(H]UHHd$H}EHEH@8@0uHEHxEHEEHEHx0EHEP(H]UHHd$H}HuHH=iH{tOHUHE@BHUHE@BHUHE@ B HEHp(HEHx(JHUHE@0B0 HuH}H]UHHd$H]H}HHp8H=il{t HEHX8HHHHH]H]UHH$ H}HuHUH}uHEHUHRhHEH}HHUHurHtHcHUHEHEHUHP8Hp4H`H4HhH4HpH4HxH`H}HEHx(H54H}HEH}tH}tH}HEHᘕHEHtlHhH 萕HsHcH`u#H}tHuH}HEHP`茘肘H`HtaEEHUHJ$HcUYEHUHR$HcM;EH]UHHd$H}HHEHEH@HEEMH]UHHd$H}EHEHUHHEHx]|'EEHUHRHcMHuH4;EH]UHHd$H}uE}u HUHEHHEH@HcUHMHLH]UHHd$H}EHEHUHPHEHx$]|&EfEHUHR$HcMHuH4;EH]UHHd$H}uE}uHUHEHBHEH@$HcUHMHLH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuRHzjHcHUuWHEHUH}1ͦH=CivHUHB`HEH}tH}tH}HEHHEHtlHhH(‹HiHcH u#H}tHuH}HEHP`辎I贎H Ht蓑nHEH]UHHd$H}HuH~HEHUHHHEHx`9vH}1ͦH}tH}tH}HEHPpH]UHHd$H}H@hH]UHHd$H}HhhHExh H})H]UHHd$H}HxhEEH]UHHd$H}HxhHEHx`HuH]UHHd$H]LeH}HuH}u%1ҾH=\iHH5HLeHEHxYHA\$H}1HEPH]H};Cu"HEHPHE@Hk,H4H}BHE@HUBHPiHEHHHE@Hk,H4H}شHuH}+H]LeH]UHHd$H]LeH}HuH}H]H};CulHEHPHE@Hk,H4H}HiHEHHHE@Hk,H4H}-HE@gXH}y1HEP?HE@HUBHHiHEL`H}!Hk,I4H}HɳHuH}H]LeH]UHHd$H]LeH}HuHEHXHECX@CHC$HtH@HEHcEHEHEH@$HtH@HHEH;E~HEHEHEH59?HMH{$XDeH{$}WD9|/DeDUEHK$HcuHE4HH;EHEHx$HUH 4HHH}HEHHcHH*HEHE<H}.H}HEHÃEEHMHUuH}HEHHEHEHEHHEHE;]H}HEH@HE,HE4|H}1HEH@HEHHEH H}HEHƃH}HEH@HEHHEHhH}HEHÃ|NEfDEEH}HEH@HEHHEHt;]HUHEHEЃxhHEH}HHH]H]UHHd$H]UHHd$H]LeLmH}HuUHuH}HEH }HE8HEAHEH5d5iHHH}1xuAH}1yH1H<EH}1[HþHEEEH}HEHÃEEEH}HEHII|$FIE|LEEE;Et1E;Et)HEHHEHIT$HcED;m;]zHUHEHEȃxhHEHHEHEf/EzsEHEHEHHEHEH@HEEf/Ez vEEHE@HE<HEMHEH53iHHH}xuGH}H1HbEH}~HþH>EEEH}HEHÃEEEH}HEHII|$$DIE|LEEE;Et1E;Et)HEHHEHIT$$HcED;m;]zHUHEHEȃxhHEHHEHEH@HEEf/Ez sEEHE@HEHHEHEH@HEEf/Ez vEEHE@H]LeLmH]UHH$H}HuHEHUHusHQHcHU۽ H H@HDž8۽HHPHDžHHDž`HDžX ۽HHpHDžh۽HHEHDžxH8HuH}{H}buH}THEHtvwH]UHH$H}HuHUH}uHEHUHRhHEH}HUHubrHPHcHxHEHUH}1HEǀ,HEǀ0HEǀ4HEǀ8HEǀ<E@EH=iHMUHDpHUEHLpHUHHHA8HQ@}|HEH}tH}tH}HEHtHxHtlH`H GqHoOHcHu#H}tHuH}HEHP`Ctu9tHHtwvHEH]UHHd$H}HuH~HEHUHHEEHUEH|p\}|H}1"H}tH}tH}HEHPpH]UHHd$H}HuH}FH}H}H]UHHd$H}Hxhu H}HE@hH]UHHd$H}HhhHExhH}IH}@H]UHHd$H}HuH}HEHH]UHHd$H]LeLmH}HuH}HEH HE<>HEHEH5-iHHH}8 xuGH}$ H1HEH} HþHEEEH}HEHÃEEEH}HEHIID$HEEYĒt H(4EEI|$$>IEEEE;EtfE;Et^ID$$HcUHHEE7YĒt H4EXEEHEHHEHED;m;] HUHEHEЃxhHEHHEHEHf/EzsEHE@HEHHEHEH@HEEf/Ez vEEHE@H]LeLmH]UHHd$H}HuH}0H]UHHd$H}HuH}H]UHHd$H]H}EMHuHUEf/EzvHEHEHEHEHEHEHEȃ8H}HEHHcHH*f/EzsH}HEHHU؉1H4f/Ezv HEE<$8HU؉H}HEHHcHH*f/Ez!sH}HEHHUЉ~HZ4f/EzvHE[EH,HUЉFH}t[H}HEHƒE1HHU؉H}HEHƒE1HHUЉHEIDHE؋0H}HEHHUu f/Ezs)HE؋gPHE؉H]H}HEH;H}HEHHUЉKHEЋ0H}HEHH}Uu f/EzvHEЋgPHEЉHEЃ8}H]H]UHHd$H]H}EuUHcEHcUH)HH?HHHcUHЉEHEHxȋuHEH@HHHEETt5}t]Hc]HEHxHEH@HHcHH9t4E"Ef/Ez w E܃E E܃EE;EJEEH]H]UHHd$H]H}EuUHcEHcUH)HH?HHHcUHЉEHEHxȋuHEH@HHHEESt5}t]Hc]HEHxHEH@HHcHH9t4m"Ef/Ez s E܃E E܃EE;EJEEH]H]UHHd$H]LeH}EM@uHUHMHEHuEf)EH}H3];]`ẼEfDEHEЃ<u+uH}HEH@HuH} }uH}HEHH@HEHEЋ<gD`E|?EEuH}HEHH@$HcUEXED;eHuH}E!|uH}HEH@HuH}HEЋ<gD`E|BEEuH}HEHH@$HcUHuH}D;e;]H]LeH]UHHd$H]H}HuHUMDEuH}HEHHËuH>f)*EEHHEHE8EĀ}tEEHuHUH}HKH]H]UHH$H}HuHUEMHMHBՔHUHh]eHCHcH`H}HEHPEH4f/EzuH4HHEH4^EEE۽HHHDžEYE݅۽HH(HDž HEH8HDž0 E۽HHHHDž@E۽HHXHDžPHH}HuȬSgH}ӔH`HthH]UHHd$H}HH=iHH]UHHd$H}uHUEHDpH]UHHd$H]H}؉uUHMLEEHUHR4HHHUHA4HH}uM*EEuH}HEHHHEHE؃8E}tEEEuH}HEHH@HEE2NHU؋EH|pHE؋UHDp@t"9HE؋UH|p1HEHE؋UH|p~Hg4f/zuHUHEHHHU؋EH|pFHEHU؋EH|p1&YEEEH4(HEHE؋UH|pH4f/zuHUHEHHUHU؋EH|pYEEEH4(HE} HEHxp1^EHEHxpIEHE؋8HHEHcEHEH|HEH;E0"}t7HE؋8HHEHcEHEH|HEH;E0uH}HEHHËuHpHE}uHUHEHH4uH}HEHHËuH-HEHEHxx1QEHEHxxHiHEH@HHcEHH4HEH@HHcEHH<vvE;]IEH]H]UHHd$H]LeH}EHEH@HC8@0teHEHEHC8@0uEH{EEH{0S(EHEHc@LceI)LHLIHC8p H{`SXHcI9E}u HEUPEH]LeH]UHH$0H8H}HuEUHEH5RiHoHDžPHUHxIH'HcHpHEH@Hu\HEHUHPHEHxuHEH@HHHExtW*EhHH`HEH@胸8\\t `hEHEHEHEHEHCHEHEHPHEHxMEHKHP3HPH}øKHPBHpHtaMH8H]UHHd$H]LeLmH}H(tHEH HEHUH,4HH H}HEHÃuEDEEH}HEHILmID$HEE23E܄t H4EAX HE ;]HUHExh(HEH HEEH]LeLmH]UHHd$H]LeH}uH}HEHÃEEEH}HEHIAD$U2uPH}HuHEH AD$f/Ez-u+HE8vuL脶E#*EE;]xH4HHEEH]LeH]UHHd$H]LeH}uH}HEHÃEEEH}HEHIAD$e1uPH}HuHEH AD$f/Ez-u+HE8vuL蔵E#*EE;]xH4HHEEH]LeH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuBEHj#HcHUuZHEHUH}1hH=,=/HUHXHEH}tH}tH}HEHHHEHtlHhH(DH"HcH u#H}tHuH}HEHP`G6IGH HtJ[JHEH]UHHd$H}HuH~HEHUHHHEHX&/H}1+H}tH}tH}HEHPpH]UHHd$EME/t E/t E`EWE.t E@E\EH8fTHJ4f/zw0Ef/EzsEEH]UHHd$H}HuHUHE苀,t)'#N_HE胸4u!HEf)HEEcHEHU苀4;8HEH@HtH@HHU;4rHEHPHE苀4HDHEH4EHEH@HtH@HHU;4rHEHPHE苀4HDHEHY4EME!EEHE胸4uHEHHE@E^HEHU苀4;<HEH@$HtH@HHU;4rHEHP$HE苀4HDHEH4EHEH@$HtH@HHU;4rHEHP$HE苀4HDHEHT4EMEEEHE@EHE@EȰU;Uu0 U;U}EQHEHpHEHx]E7HEHHt"HEHPHUHuHEHEEHE胸0u HcEH؉EEH]UHHd$H}HuHUMDE@EEԋE؉EHMHcEHcUHHH?HHHHE fDEHEUHH}HuUmHEUHH}HuU|E;E]HUEHHMEH4H}Ut4HUEHHEHMuHEUHHHMUHEHуEmE;EUHcMHcEH)HcUHcEH)H9}(E;E}DEЋMHUHuH}EԉE&E;E}DE؋MHUHuH}EЉE؋E;EH]UHHd$H}HXx|7HEHX@gD@HEHXHxHUHHX1H]UHHd$H}HX@H]UHHd$H}uHEHXumHEHExh~HEat H}HEH]UHHd$H}uHEaEuH}HEHHEHEU䈐aHEH]UHHd$H}HuHEHUHH@HE`t0HuH}1EHEHXHUuȦnHEHXHu£E~SHEHXH@HcUHtHUH}HEHX~"H}HEHXHukEEH]UHH$H}uHUHEHUHH@HuH}1;EHE耸`tYHEH8H,HHEHEHMM1H4H=iN2HH5H="HEHXHUu胥H}HEHXHUuaH]UHH$H}HuUM}}EHEHX@;EHEHX@EE;E~ EE"HEHXH@UH4HUH}HEHXEEH}HEH@HEH8H+HHEHEHMM1H4H=i0HH5HX HH5HVHEHUHPxH}H]UHHd$H}HuHH=5iH}t&HUHEHHHUHEH@xHBxHuH}H]UHHd$H}EHEH@pEY@0X@(EH]UHHd$H}nHEHxptBHEHPpH{4BH{4HHB H{4HHB(H{4HHB0H]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuHHcHUuPHEHUH}1HUHz4HHBxHEH}tH}tH}HEHHEHtlHhH(IHqHcH u#H}tHuH}HEHP`E;H HtHEH]UHHd$H}HdiH]UHHd$H}EHEH@pE\@(^@0EH]UHHd$H}H@xHy4f/H]UHHd$H}HHy4f/H]UHHd$H}EHE@xf/EztHEHUHPxH}H]UHHd$H}EHEf/EztHEHUHH}QH]UHHd$H]H}HuHUHEjHEUHEHXpHEHs H{psHEHs H{[sC f/CzuHVx4HHC0(HUHEBx\K \K^C0HEKYK0\C(HEHUHHHEHUH@xHH]H]UHHd$H}EY;EH]UHHd$H}Ei:EH]UHHd$H}HuHH=uiHmtBHMHUHBxHAxHHHMHUHHHHHuH}H]UHHd$H}EHEHxxtHEHHuEHEPxHEHEEH]UHHd$H}EHEHt HEHHuEHEHEHEEH]UHHd$H}HuHUHUHBxHEHHEHEH;EuHEH;Eu0u HUHEHBxHEHH}6H]UHHd$H}HuHUHUHHEHHEHEH;EuHEH;Eu0u#HUHEHHEHH}H]UHH=PhHH![H5iHH=iH5iHH=iH5iHH=iH5iHH=‰iH5iHH=i~H]UHH=Z`H]UHHd$HiHEH-iHEHuH=t4|rH]UHHd$EHt4YEE<$Hpt4(]EH]UHHd$H}EHEHxEHEPHEH9iYEH]UHHd$H}EHs4f/EzWwUHE@f/EzEvCHEHUHPHUHEHEHMHiYAHEH]UHHd$H}EHEEHxi^HEHx0HEP(EH]UHHd$H}EHEtt`HE@H s4f/zvHEEXE~HE@H-EME_HE^ìiH-EeE5HE@H-E-EHEEXEEH]UHHd$H}EHEE^H&r4\EE<$HE݀]HEttKHE@Hq4f/E2EEjEHE^iH-HueHUHuH}EU(f}sfEfEu}̺&E E 2EE4EEH]UHHd$H]LeH}HHH=`iHILI$LI$H]LeH]UHH$@HhLpH}HuHUHMHEH0HƹHH5AriH0=3HDžHHz HHcHU؅HUHuH3EHEH@@0 tN݅p<$HEHUHo4HHHEH-xH-H)ЉE;EHEH@@09EHo4HHfBfx\p*^݅<$Ԫ<$cتۅ|$HH$ffD$ժݝHn4YE@H5a>HڔHN>HEH@Hp@HڔHٔHÅ|9AfAHIcHHEEYEHuH$D9HEH@@0u }EHGn4(]HEHEHn4HHf@fx\p*^݅<$nӪ<$֪ۅ|$HH$ffD$:Ԫݝf/z v f/EzyHEH@@0 tE;E~E}HEH@@0tGEEHEH@@;};~EEEx\p*M^HEHEp\HE H5>HהH5KniH0G.HEHtY HhLpH]UHH$pH]LeH}EHuH8l4f/EzHEp^EEE<$E]HEHEHEHEH0HC8@0uEH{EEH{0S(HcHEHEfEXEEHEH0HC8@0uEH{EEH{0S(HcHEHEHUH)HHHIHEHEH0Lc8AD$0tAt$ H{`SXHcH;E$AD$0tAt$H{`SXHcH;E|0EXEEHEHEHEHExf/Ez HEH@H@@0tYHE8~PHEH@H@HcPHEHcH)HHHIHUHRH@HcJHUH)HHHIH9~.HEH@E\EHEH@HUHHEUH]LeH]UHHd$H]LeH}HuHUHEH0HCHHEHC8@0uEH{EEH{0S(LcHC@HEHC8@0uEH{EEH{0S(HcI)LHLIDeHEH@H@@0t8HEH@H@@ E܃~uHEHxHEPEEHcEHcMHHHEH~HEHUHEH@H@@0tdHEH@H@@E܃~uHEHxHEPEHcEHHcMHHHEH~HEHU HEH]LeH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuH:HcHUu^HEHUH}18HUH=NilHUH@HEH}tH}tH}HEHHEHtlHhH({HHcH u#H}tHuH}HEHP`wmH HtL'HEH]UHHd$H}HuH~HEHUHHHEH@H}1H}tH}tH}HEHPpH]UHHd$H}1H]UHHd$H}uH}g`1H]UHHd$H}HuHEH@H;Et5HEH@HuHEH@HH}蒦H}vH]UHHd$H}uH}_He4H=QiHH5HH]UHHd$H}uH}_He4H=\RioHH5HmH]UHH$0H8H}HuHUHEHPHƹHH5fiHP'HDžH8HHޓHcHUEf/EzHEH@HEHEH@@0t.HXEPEHXEPEEf/Ez vHEHHEHEHHEHMHUHPH}GHd4f/EzE\E݅HPd4(]HEHEE\E^EH;d4XZH,d4/z v  H d4H,HH5biHH}ϔHEH8\ΔHÅEfEMEtHc4HHEHEHHcEHHUHTEf/Ez/v-HcEHHH5biHH}"ϔEXEE;]pHEH@@0t\HEH8͔HÅ|IEfEHEHHcEHDHphHEHHcEHD;]HEH8<͔HÅEfEHEHHcEHHtHPbHEHHcEHD۽HHHDž۽pHpHHDžHDžHDž ۽`H`HHDž۽PHPHHDžHH`HDHHEHHcEHH<+l;]MHkH5biHP"HEHtH8H]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuHٓHcHUHEH}1(HUHEHBHEHx H5`4HkHEHx(H5`44kHEHx0H5`4 kHEHx8H5`4 kHEHx@H5`4jHEHxHH5`4jHEHxPH5a4jHEHxXH5a4jHEH}tH}tH}HEHHEHtlHhH(oHؓHcH u#H}tHuH}HEHP`kaH Ht@HEH]UHHd$H}HHx H5}_4pyHEEH]UHHd$H}HHx(H5m_4@yHEEH]UHHd$H}HHx0H5]_4yHEEH]UHHd$H}HHx8H5-_4xHEEH]UHHd$H}HHx@H5_4xHEEH]UHHd$H}HHxHH5_4xHEEH]UHHd$H}HHxPH5_4PxHEEH]UHHd$H}HHxXH5^4 xHEEH]UHHd$H}HuHtYHEHp H}wHtCHEHxHEH@HHEHx Hu:hHEHxHEH@HH]UHHd$H}HuHtYHEHp(H}iwHtCHEHxHEH@HHEHx(HugHEHxHEH@HH]UHHd$H}HuHtYHEHp0H}vHtCHEHxHEH@HHEHx0Hu:gHEHxHEH@HH]UHHd$H}HuHtYHEHp8H}ivHtCHEHxHEH@HHEHx8HufHEHxHEH@HH]UHHd$H}HuHtYHEHp@H}uHtCHEHxHEH@HHEHx@Hu:fHEHxHEH@HH]UHHd$H}HuHtYHEHpHH}iuHtCHEHxHEH@HHEHxHHueHEHxHEH@HH]UHHd$H}HuHtYHEHpPH}tHtCHEHxHEH@HHEHxPHu:eHEHxHEH@HH]UHHd$H}HuHtYHEHpXH}itHtCHEHxHEH@HHEHxXHudHEHxHEH@HH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuBHjғHcHUwHEHUH}1HEǀXHEƀ\HUH=ӍiHUHPHEH}tH}tH}HEHHEHtlHhH(HѓHcH u#H}tHuH}HEHP`H Ht_:HEH]UHHd$H}HuH~HEHUHHHEHP&ߔH}1H}tH}tH}HEHPpH]UHHd$H}HuHwbHUHuHГHcHUu?HEHHHuqHt&HEHHHuUbH}̗H}gnH}aHEHtH]UHHd$H}uHEX;EtHEUXH}kH}bgH]UHHd$H}@uHE\:Et/H}HEHHUE\H}HEHH]UHH$0H8L@H}HuHUHEHHƹHH5WiHH5iHXHH`HϓHcHUf/zHEH@@0HEH@HH.WiHhHHXHHHHXHyHHHT4HHHV4`HEDXAsl]؉EHi^EEHi^H(H0HH}(HX;r`۪EHX0Dž@H0H8)fD@8HX88f/Ezw @|HEHHtH@HDHcDHc@HHXH5RiHXH}HHƓH0H8=@8DHD8HX88f/EzwHc@HHcDH98DHyHEH`tHEHhXHuHE`H5xTiHtH5iHXaHEHtsH8L@H]UHH$HH}uEHDžHEHUHu\H˓HcHUHEH@HHcEHHHEHCE۽ H H8HDž0۽HHHHDž@EHH}HHXHDžP ۽HHhHDž`۽HHxHDžpH0HEHH}4HuHG\rH[H}[HEHtHH]UHH$0H}HuEHDžHHDžPHDžpHUHuHɓHcHxrHEH@HHt9HEH@HHEHpH}HpH}d['H}E HE苀XtItla^HEH@HPHp H}E1'*6EHHVUUUUUUUHH?HHrHP mHPHXHQ4H`HEH@HPHp E1HH)HHHhHXH}1ɺ]HEH@耸\t-HEfHf;EuH}E1H5P4H)WHEH@HPHp(H}E1 )/HEH@HPHp0H}E1(HEH@耸\tBHEfJf;Eu1EH5P4HpH}uHpH}UYHEH@HPHP8EHpH}8HpH}YwHEH@耸\tBHEfLf;Eu1EHO4HpH}HpH}X$HEH@HPHP@EHpH}HpH}XHEH@耸\tBHEfPf;Eu1EHUO4HpH}UHpH}5XHEH@HPHPHEHpH}HpH}WWHEH@耸\tBHEfRf;Eu1EHN4HpH}HpH}WHEH@HPHPPEHpH}HpH}hWHEH@耸\zHEfTf;EuiE扅lHHHHcl1HHHp`01HpOuHpH}1HN4X8HEH@HPHPXEHpH}HpH}VHEH@H@HEH@HhEf/hzrEf/@zw0tHUHEHHHEHPcHHUHPUHpUHxHtH]UHH$`H}HuHUEH}UHUHuHÓHcHxu=Hu[iH~ EEH}UEHu$H}THxHtH]UHHd$HiHEHu1H=L4GH]UHHd$H}.9H]UHHd$H}HuUH}ɔHUHuH“HcHUoHExPt}uHEHp(H}HEH0HExRtHEHp8H}HEHHHExQtHEHp0H}HEH`fH}ɔHEHtH]UHHd$H}HuHH=-iH]Ȕt3HEHp(H}HEHp8H}HEHp0H}HuH}yH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuRHzHcHUHEHUH}144H=EHE8HUHB(HEH@(HUH HH8HP@H=DEH=E8HUHB8HEHH8HUHHA8HQ@H=EHE8HUHB0HEH@0HUH HH8HP@HE@@HE@PHE@RHE@QHEH}tH}tH}HEHQHEHtlHhH(H(HcH u#H}tHuH}HEHP`H HtHEH]UHHd$H}HuH~HEHUHHHEHx(y̩HEHx8l̩HEHx0_̩H}13H}tH}tH}HEHPpH]UHHd$H}HuH}f1H]UHHd$H}HuHEH@(H;Et HEHUHP(H]UHHd$H}HuHEH@8H;Et HEHUHP8H]UHHd$H}HuHEH@0H;Et HEHUHP0H]UHHd$H}uHE@@;EtHEUP@HuH}mH]UHHd$H}HuHOHUHuH-HcHUu4HEHxHHua_HtHEHxHHuOHuH}H}@OHEHtbH]UHHd$H}@uHE@P:EtHEUPPHuH}H]UHHd$H}@uHE@R:EtHEUPRHuH}LH]UHHd$H}@uHE@Q:EtHEUPQHuH} H]UHHd$H}HuH}=HEHx H]UHHd$H]H}2HX`HuHMH]H]UHH$ H}HuHUH}uHEHUHRhHEH}HUHu"ޔHJHcHUuMHEH}H4i158HUHEHB8HEH}tH}tH}HEHHEHtlHhH(ݔHĻHcH u#H}tHuH}HEHP`#H HtmHHEH]UHHd$H}HH=diH/H]UHHd$H}HG8H]UHHd$H}uH}6HH=iTH]UHHd$H}HHxh9H]UHH$pH}HuUMH}mHUHuKܔHsHcHxu%uH}iHEHtUHuH} ;ߔH}HxHtH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHu۔H躹HcHUutHEHUH}1H=hƔHUHB`HUH=iHUHBhHEH}tH}tH}HEH6ޔHEHtlHhH(ڔH HcH u#H}tHuH}HEHP`ݔlߔݔH HtHEH]UHHd$H}HuH~HEHUHHHEHx`YũHEHxhLũH}1H}tH}tH}HEHPpH]UHHd$H}HuHEH@hH;EtHUHEHBhHEHx`HutHH]UHHd$H]H}uFiEHEHEHxh.Ã|1EfDEHEHxhuU@@ЉE;]܃}tcE1uUEHEHxh-Ã|;EEHEHxhu$HEP@EЉE9Er;]HEH]H]UHHd$EHx4f/Ez,s*EHx4(<$xH}x4(]eHUx4f/EzEvCEHdx4fWEEH-x4(<$!H&x4(]Hw4HHEEH]UHHd$EHw4f/EzrHw4HHEEHw4(EHw4(} imimimimim i}imimimimm]EH?w4(EH1w4\EE}mm}imimimimߜimڜim}ҜimϜimʜimŜimimm]Hyv4f/EH]v4\EEEHv4(}himeim`im[imVimQi}LimIimDim?imm] EEH]UHHd$H}HuHEHU;~HEEHUHEHUEH]UHHd$H}HuHEHUf/z&v$HEHHEHUHEHHHUHEHH]UHHd$H}HuEHE}u^HEluMHEHU\EHEEYE\HEHEEYEXHEH]UHHd$EMUEf/EzwUMEtEEEH]UHHd$EMUEf/Ez vUMEuEEEH]UHHd$EMU]Ef/EzrEf/Ezw0u0UME)uUMEtEEEH]UHHd$EMU]Ef/EzrEf/Ezw0t6UMEuUMEuEEEH]UHHd$EMUf}EUHHEEUH)HEEpHEH;E|HEH;E0H]UHHd$EMUEf/EzrUME趿tEEEH]UHHd$EMUEf/Ez sUMEfuEEEH]UHHd$Hq4HHEEH]UHHd$EMUEf/EzvHEHEHEHEHEHEHEHEHEHEEf/EzrEf/Ezw0H]UHHd$EMU]Ef/EzvHEHEHEHEHEHEHp4f/Ez"u E\EEEHp4(]HEHEHEHEEf/EzrEf/Ezw0u0UME߽uUMEǽtEEEH]UHHd$EMEӺt HEHE8E軺t HEHE Ef/Ez s HEHEHEHEEH]UHHd$Ho4HHEEH]UHHd$EME3EE&E}t }tE'}u}tEEf/E ˆUEH]UHHd$EHEHEH}HUHH)HEHEH]UHHd$m}mHn4(z r }mHn4(zNrLHEH$fEfD$w?}mHn4(<$H=i^+m}mHgn4(zRrPHEH$fEfD$?}mHJn4(HOn4(<$H=1i*m}NHEH$fEfD$>m}mHn4(<$H=i*m}mH]UHHd$m}mHem4(zrmHqm4(}GmHKm4(z7r5mHm4(<$H=3i *m}mH"m4(vrtHEH$fEfD$=}mHm4(Hm4(<$H=Hi)m}HEH$fEfD$,EEm}rHEH$fEfD$Z=m}mHl4(<$H=i:)m}HEH$fEfD$+EEm}mH]UHH$0m}mHk4(z r }mH4l4(("mH&l4(}mHk4(}}۽pЅۭpmmHk H=i,7}}'mmۭpHk H=Ζi,7}%mmۭpHk H=i,7}9~'mmmHk H=i,7۽p'}"mmmHk H=i,7}9-mHk4(}mHk4(}mm۽`mmHj4(m۽PmHj4(}HEH$fEfD$H=;i 'ۭ`۽@HEH$fEfD$H=i&ۭPۭ@}mH]UHH$ m}mHi4(zvmHi4(}mHi4(mHi4(}mHui4(}}۽pЅDۭpmmHk H=Xi,7}9~LmmۭpHk H5oi,>}mmmHk H=i,7۽p5mmۭpHk H=#i,7mH5h4.}9KmHi4(}HEH$fEfD$'LۅLmHh4(}mm۽`mmHSh4(m۽PmHxh4(}HEH$fEfD$H=Օi $ۭ`۽0HEH$fEfD$H=5ik$ۭPۭ0}mH]UHHd$mz w mHg4(z+r)mH"g4(Hg4(}m~mHg4(}m}HEH$fEfD$H=i#m}HEH$fEfD$H='im#m}mHf4(zLrJm<$/7}mHrf4(Hg4(<$H=)i#m}mHe4(z>rrG4YEE<$}]Em]E}mHxLeH]UHH$p*HF4YEE|$*HF4YEE<$EEmɉuEuE|$ }mH]UHH$0HxLeAm zuH@iHHE fBfE(HE HD$0fE(fD$8HEHD$ fEfD$(*HF4YEE|$A*HE4YEE<$}mDeEɉ]Em}mHxLeH]UHHd$}|#gFfmmɉHk ,}HEHEfEfEmH]UHHd$H]mz%u#m zw ܔ }U}}fMm m}mܛ]Љ]Em ]EEmz sHD4Ef/zt tܔmHD4Ef/z'u%m]E؉HEE}m]E؉HEE}mEEE<$vm}^؃t3m]EȉHLHC4fWEE}"m]EȉHEE}mH]H]Hd$H4$u HC4 `HC4}IHC4^f)HcHډ,ƒt YHcHH?HHf)Y…f)f)Hd$UHmz smzu1H]UHHd$H]mz s zڔm}mH@4( t m}mH?4(}HEH$fEfD$H=1i}Єt?mmH_B4(}mz sm}HEHEfEfE mm}mH]H]UHHd$H]mz s ٔm}mH(?4( t m}mH>4(}HEH$fEfD$H=i}t=mm}mzsmHlA4(}HEHEfEfEmmH4A4(}mH]H]UHHd$mzErCmH|>4(}HEH$fEfD$H= im}3HEH$fEfD$}mmH=4(}mH]UHHd$HEH$fEfD$}mmH=4(}mH]UHHd$m}mzEwCmH=4(}HEH$fEfD$H=cim}amH?4(z0v.mH1=4(<$ }mm}HEH$fEfD$7EE}mH]UHHd$m}mz7w5mH<4(<$H=DiZm}mH3?4(z;v9HEH$fEfD$EEmm}5HEH$fEfD$jEEmH<4(}mH]UHHd$mz s ֔mz u}FmHr>4(zrmm}mH;4(}mH]UHHd$m}mz r hՔm}mH;4(z2v0mH:4(<$H=p~im}BHEH$fEfD$&EEmmH:4(}mH]H$8H"HH=|= HἀHd$HT$8HHHH<$8HHd$Hd$t/tFt]tqHE~iHH$f@fD$H9~iHH$f@fD${H-~iHH$fBfD$bHd<4HH$f@fD$IH ~iHH$f@fD$0H~iHH$f@fD$H)<4HH$f@fD$,$Hd$Hd$HH|$HƹHHD$H$fD$fD$,$Hd$8Hd$HH|$HƹHHD$ H$fD$(fD$,$Hd$8SHd$HHD$`HHt$̗HuHcHT$XrHHtHR fD~ H Hc€| tD9| H3HcȀ| tHcHJHcH)HcH3H|$`Ht$`HBmH|$`HD$XHt䛔Hd$p[UHH$H L(L0L8L@HHAAHEHDžPHDžXHDžxHUHu虖HtHcHUdAH]HHEH$fEfD$HIcE1HHuE~HAgA\$gEl$AIcHEHEHtH@H9}HEIcՀ|0u AHEIcԀ|0tHUIcĀ|.uAHUIcŀ|0u-IcHuHxHxH}RHUHcÀ|-IcHuHXHXH`H94HhHEHtH@HHIcH)IcHuHPiHPHpH`H}1ɺIcHuHP'HPH`H84HhHEHtH@HHIcH)IcHuHXHXHpH`H}1ɺ,3H]HHEH$fEfD$HIcIcE1H}>HHHuIHPHXHxH}|HEHt螘H L(L0L8L@H]SATAUAVHd$AIHcHLٔ|)E1DAIcHk IUDH|ؔD9Hd$A^A]A\[SATAUAVHd$AIA|(gEt$AHcHk IUDH|ؔAIcHI}ؔIEHd$A^A]A\[SATAUIHcHLWؔ|+E1AIcHk I$DH|,ؔD9A]A\[SATAUAIA|&gA\$HcHk IUH|ؔIcHI} ؔIEA]A\[UHHHUHfUfPHU HPfU(fPH]HhxHd$HH|$Hl$(l$ h<$,$Hd$8Hd$HHH,$(zvH$HfT$fPl$hzvHT$HPfT$fPHd$(Hd$HHH,$(zsH$HfT$fPl$hzsHT$HPfT$fPHd$(Hd$HHH,$(8l$hxHd$(Hd$HHH,$(8l$hxHd$(Hd$H(h<$,$Hd$Hd$<$,$Hd$Hd$HHH$f@fD$,$Hd$Hd$HHPH$f@fD$,$Hd$SATHd$HIH|$H޹HHAD$ <$H|$XAD$(<$HHLHHHt$Hd$8A\[H(8hxUHHm(8mhxH]Hd$H(zJuHhzvH34*<$uhz u<$aH24*<$O(zv(h<$3hzr(h<$(h<$,$Hd$UHHd$Hsi(mz s}HEH$fEfD$6k}mH]SATAUAVAWHd$IIAADHD$ IcH t2`HH24H1GH:1SƔLL|$D|,1D).l$|$IcHHcD$ H9HD$H$fD$fD$,$Hd$0A_A^A]A\[UHHHUHfUfPHU HPfU(fPHU0HP fU8fP(H]H(8hxh x Hd$HHH,$(8l$hxl$ h x Hd$8Hd$HHH,$(8l$hxl$ h x Hd$8Hd$HHH$f@fD$,$Hd$Hd$HHPH$f@fD$,$Hd$Hd$HHP H$f@(fD$,$Hd$Hd$H(hh <$,$Hd$Hd$H(|$hl$z s h|$h l$z s h |$HD$H$fD$fD$,$Hd$(Hd$f<$,$Hd$Hd$HH|$Hl$(l$ hl$0h <$,$Hd$HHd$HHHl$ hl$h :,$h l$ (zl$(,$hz Hd$8UHHm(8mhxmh x H]UHHm(8mhxmh x H]SHd$H<$HHd$[SATAUAVHd$IAgIH$fAVfT$DADHHٿ%8IH1)*$IFH$fAFfD$DDHٿ%JH1)滔IF H$fAF(fD$DDHٿ%輻KH1)註H@蛻Hd$A^A]A\[UHH$pH]HH}HHHUHuHE H$fE(fD$H}7HHum<$H}HEH$fEfD$HHHuHHuH]H]SATAUAVAWH$PAHH|$`HA} +H$HT,4(D$ۄ$|$@AH|$`H|$`ysA*H,4^$݄$|$H|$`;<$c|$P|$HD$PH$fD$XfD$H$)AIcHHH?HHADu,|$l$P<$DHH$H|ADE1AD$ۄ$l$@|$ l$ l$P|$l$ l$P<$DHH$H|sIcHDHH$H<H$HtHIcHH$H<\AD9WJD$ۄ$|$0A*Hw*4^$݄$|$H|$`<$|$PIcHH?HHHADt,|$l$P<$DHH$H|zADADAD$ۄ$l$@l$0|$ l$ l$P|$l$ l$P<$DHH$H|IcHDHH$H<H$HtHIcHH$H<AD9QH|$`ۼ$H|$`۬$~A*H(4^$݄$|$H|$`Tۼ$H|$`۬$ۼ$H|$`۬$<$|$P|A*Hl(4^$݄$|$H|$`ۼ$H|$`۬$ۼ$H|$`۬$<$|$PH|$`bD$ۄ$|$0IcHH?HHAgA_|qAAIcIcH)H$߬$l$@l$0|$ l$ l$P|$l$ l$P<$IcHH$H<D9H$A_A^A]A\[UHH$`H}HHHU@HT$0fUHfT$8HU0HT$ fU8fT$(HU HT$fU(fT$HUH$fUfT$H,HUHmH}HuHDH]UHHd$H}HEH$fEfD$HEP}mH]UHH$H L(L0L8L@H}HuHIHEH$fEfD$H}U}HE H$fE(fD$H}U}HEH$fEfD$LcHEH$fEfD$HcLItm0zr m@zs AmmzssqHE HEfE(fEHEHEfEfEHEHfEfCHEHE fEfE(HEHEfEfEHEHEfEfEHEHEfEfE/HEHEfEfEHEHEfEfEHE HfE(fCE1m |$m<$m@m0۽pmm ۽`E0tm mH$4(}A}mmzuHEHfEfCmm mmmm;m +ۭpz-v+mm <$LۅLۭpm ;m+<$Am +<$A9uHEHfEfCHE HEfE(fEHEHEfEfEHHE fCfE(HH$fCfD$H}U}HEH$fEfD$6LcHEH$fEfD$HcLM~%HEHEfEfEHEHEfEfEE1AmmztwrHE HEfE(fEHEHEfEfEHEHfEfCHEHE fEfE(HEHEfEfEHEHEfEfEHEHEfEfEE1m |$m<$m@m0۽pmm ۽Pۭ`ۭPz r AAHPH`fXfhmm ۭpzsmzt E^EuAH L(L0L8L@H]SATAUAVAWH$HAIH$@L$8A}H$8gAEk H$0Hc$0H$”Hc$0H$”Hc$0H$ |”HbiHH$f@f$HL$HH$8H$x H$8H$x H$ x H$ xDH$X$X|X1H$PfDH$PL$ Hc$PHk $PHk HLIL8fDfAD8$P9H$@LH$@gBH$@|$<$H$@HH$HH|H$X$X~"H$ Hc$XHk lzt$X,$XH$`H$PVfH$ Hc$PHk lzt)$X$P)Ƌ$`HH$`H$P$`~$P$X9$`Hc$XHc$`HHH$X$X|_1H$PH$PH$ Hc$`Hc$PHHk Hc$PHk HDHD7fDfD7$P9Ƅ$hgE0E0$XuH$ hh|$PA$Xu+H$ hh|$0H$ hh(|$@A$X H$ Hc$XHHk l ztHk ,:4H$ Hc$XHk Hc$XHk ll ۼ$`D$XAH$PfDH$P$P*H]4^$(݄$(|$H$ Hc$XHc$PH)Hk Hc$XHk ll<$ۼ$p۬$p۬$`z"s H$pH$`f$xf$h$PA9=۬$`H4(ۼ$`H$ Hc$XHk l zuxH$ HBH$fBfD$HcIIH$ Hc$XHk HTH$fDfD$HcLL$(߬$(۬$`|$P0H$ Hc$XHk lHc$XHk l |$PH$ Hc$XHk ,z"u |$0۬$`H4(|$@eH$ Hc$XHk Hc$XHk l,|$@H$ Hc$XHHk Hk l$@ll Hk ,|$0E1A$X|^@H$ HcLk H$IHcHk l$0Al BlHk l$@A,HcHk |9$XgP|aL$HcHk H$IHcHk l$0Al Al8Hk l$@A,HcHk |9l$0H$HHc$XHHk ,Hk l$@lHk | H$Hc$XHHk ,Hk Hk ll |$`H$Hc$XHHk H$Hk ,l Hk Hc$XHk llۼ$H$Hc$XHHk H$Hc$XHk l, HGHk Hk llۼ$l$`zDuBH$H$f$f$H$H$f$f$(l$`۬$ۼ$l$`۬$ۼ$ۼ$ ۼ$ۼ$H$Hc$XHk l$0l H4(Hc$XHk lH4(ۼ$0$XgPӃ@H$HcHk l$0l H;4(HcHk lH34(ۼ$@۬$۬$@۬$ ۼ$ H$H$f$f$H$H$f$f$l$0۬$۬$l$@ۼ$۬$۬$@۬$0ۼ$0l$0l$@Hd4(ۼ$l$Pۼ$PH$ HPHT$pf@fD$xۼ$l$pH4(ۼ$$X|f1ې۬$l$Pl$pۼ$H$ HcHk l$pl$Pl|$pl$p۬$۬$Pۼ$9۬$zuHD$pH$fD$xf$۬$l$pۼ$۬$H$Hc$XHHk l۬$0HQHk l۬$ ۬$zIrG۬$Hk l ۬$ Hk l۬$0۬$zrA"۬$l$0|$0۬$l$@|$@l$p۬$H64(۬$zrA۬$l$P|$PA2}Eu EDD舄$hE$`ujH$@H$@H$@HHHT$PH$HHTfT$XH$HfTH$@HH$H|t|$HD$PH$fD$XfD$H$H$@HcHH$HHHL$ H$$`rH$@$`H$@ۼ$1H$pۼ$$X$XgXH$ HcHk ۬$l|$`l$P۬$ۼ$۬$l$`z(v&HD$`H$fD$hf$gCH$p$p|A1@H$ HHcHk HcHk l$Pl lHcHk |9Hc$XHHc$pH9H$ Hc$XHk HT HT$`fDfD$hH$ Hc$XHk ll$PHc$XHk | $XgJ$p9˃fDH$ HcHk HDH$fDf$H$ HcHk l$`ll$PHcHk |H$HD$`f$fD$h9|H$XE$`HD$@HD$fD$HfD$HD$0H$fD$8fD$H$@HcHH$HHt H$@HcHH$HH<2H$@H$@HD$@HD$fD$HfD$HD$0H$fD$8fD$H$H$H$@HcHH$HHHL$ H$$`7H$@HcHc$`HHH$HHHL$ H$$`$`H$@H$@H$X$X|V1@H$ IHcHk HcHHk l$0Al Al8Hk l$@A,HcHk |9$X~$hH$@$X;~H$8H$8Hc$0H$0Hc$0H$Hc$0H$ H$A_A^A]A\[Hd$H$HcHcHHHHcLcHIхHd$UHHd$H]LeHImH-4(}mm }mzAs?HEH$fEfD$m|$HXLH޹HLrmzvmm} mm}mz%u#|$<$HLH޹H8|$HEH$fEfD$H|$mm <$LH]LeH]UHHd$H]LeLmLuL}@AԉHELEMϋEHE1쑓AᑓA֑UVA!DHk DHk HEHT0HEHTHEfT0HEfTDHk HUlm}mzuHEHEfEfEUE1AIcHHcxHIcHHk Hp|HcMIcHH)IcH9XHcEHH9|LDHk DHk HMlHEl0mIcHHcxHIcHHk Hp|D9]EED9A9HHLPLXL`LhH]UHHd$H]LeLmLuL}HEIELM؋E HEHE8HEȋE@HE1|Umzum(zph|51ېHk HMHk lHl0Hk |9HuhJ۽ۭpۭzsۭpۭ۽@۽@ۭ@zvۭ@m۽0۽0ۭ0H3(z%v#1HHAmHs3(}E1HHۭ0HO3(zv H~0ۭPH 3(mzsۭPH3(}ۭ0HG3(zrۭPH3(}ۭ0H,3(#h1HxfHxxHk H}xLk JLHHL2fBLHfL2xHk xHk Hl Hl2HuxHk |xHk H}xHk HTLIT0fLHfL2x97Huh۽H`HpfhfxAH@mH3(z w 1H@EtHPmH3(z w 1HPۭmmzv ۭpztۭPzuH|p9H]ۭHi(mzwH2PuH@ u HH8AD$0D$|$<$HEHD$(LMHDhht$ۭ0Hw3(zwHcHHH}sh1HxHxH}xLk HuxHk lBlۭPxHk |xHk xHk HuDxIk lHl ۭPHl:ɋxHk |x9VHHD$HEH$LMLEHhhLMLEHhhNLMLEHh*E0탽|AtH8H8u ?HcH}wHcH}wHcH}wHcH}w}HHL L(L0L8H]UHH$H0L8L@LHLPIAHIL`Ak HXEH`UmzsH`6IcHPHHH?HHAHcXH}`vHcXH}PvIcHk Hx=vIcHcXHHp#vHcXHhvD|1fDHUHk |9Dl$`D|$PH(3HHT$0f@fD$8|$HEH$fEfD$HEHD$hHxHD$XHpHD$HH`HD$@HEHD$(gAGD$gEGEigEOHhHDLHhDGA>HcXHhQuIcHcXHHp7uIcHk Hx$uHcXH}uHcXH}uH`8}H`aH`|Ttt t*|A~/:H`+H`H` H`H0L8L@LHLPH]SATAUHd$HIAH$HT$Ht$ a.H HcHT$`u(IcH1ЮIcH<$LqHH4$%P1H訝HD$`Ht2Hd$pA]A\[SHHHuHdH t ttuH9s H)H H1腝[SATHd$HIHD$`HHt$W-H HcHT$X}LH|$`bGHD$`HuHc H t ttuH9sHH)H> H1œ/H|$`CHD$XHtd1Hd$hA\[SATAUAVAWH$`IIHH$HD$HD$pHT$Ht$(H,Hp HcHT$hUHH|$pSFHT$pH|$1H53;LH0FH$HuHbHHt$HuH5bHDIHIL Ht t=s@H t=ttV"t'tu D+H A HAչ Ht$xH=W3",D$xs؀;>tHt t>tuHL)H$HuHaLH)LMuHaIHcILLK.H|$p\HTH|$JHD$hHtk/H$A_A^A]A\[SATAUAVHd$HIH1tMuL%aLH53ɈIHI IA} tMA$"t'tu E4$IA M IAֹ HH=A3*A$$sM9tLL)HL;Hd$(A^A]A\[SATAUHd$HIIH$HT$Ht$ )HHcHT$`uLLHHH4$~,H֘HD$`Ht-Hd$pA]A\[SATAUAVH$XIH4$HT$H<$̘H|$˜HD$HD$HT$ Ht$8(HHcHT$x9Ht$H|$BH4$H|$BHD$HuH6_HHt$HuH5"_HچIHLHt t=s;=fH]@"t'tu D3H A HAֹ H$H=3($sҀ;>tHt t>tuHL)HL$HuH U^LH)H $HuH ?^IHcILL*HH|$H|$ꖓH|$HD$xHt,H$A^A]A\[SHd$HH4$HT$H<$喓H|$ۖHD$HT$Ht$0&HHcHT$pu HT$H4$H|$HHt$*)H=H|$3H|$)HD$pHtJ+H$[SATAUAVH$hIH4$HT$H<$,H|$"HT$Ht$(>&HfHcHT$hH$HuH\HHt$HuH5\HjIHLHt t=s;=`HZ"t'tu D3H A HAֹ Ht$pH=3Z&D$ps؀;>tHt t>tuI9sHL)LL L10[(H賔H|$詔HD$hHt)H$A^A]A\[UHH$PHPLXL`H}HuHUMDEHEHULbIHLkILLHpLmHUHxw$HHcHpueHcEHhH5gHhH}غzE|4EELEHcUHcMH< HUH HcuIH;E''H}kHpHt(HPLXL`H]UHHd$EMU]MYMEYEXEH]UHHd$EMHEHEHEHEEMH]UHHd$H}*EE*EEEMH]UHHd$H}EMU]HUHEHHEHUHPHEHUHPHEHUHPH]UHHd$H}EMHEHpH}EÁHEHpHEHxE詁H]UHHd$H}HuHEHPHu}HEHP HEHp}ӁH]UHH$pH]H}HuUEMEf/EzvHEHEHEHEHEHE*EMf,HHu*oHEHEHPHu}BHEHP HEHp}**EM,HHunHEHEHPHu}HEHP HEHp}߀EH3(<$EgX;]EE@EHEHEHEHEH[3(E]EEf/EzrEf/Ezw0t`H3(E]M*E0+HHumHEHEHPHu} HEHP HEHp};]CH]H]UHHd$H}HuHUHHuH}HHtHUHuH}SuEEEH]UHHd$H]H}HuHUHHu EHEHUHHEԋ]|hEEHEHcUHHUHuH}tHUHuH}u0t EfHEHE;]EHEHUHHEԋ]!EDEHUHcEHHEHcEHcUH)HEH?HUHH?H ЈEHcEHcUH)HEH?HUHH?H ЈEHEHUHHt HtLHUHuH}HcMHcUH)HMHH?HMHH?H 8%E܉ECHEHUHHu0}uE;E%E܉EE;E%E܉EHEHE;]HcEHHHEEH]H]UHHd$H}HuHU*U*M*ELt*U*M*EoLtEEEH]UHHd$H}HuHU*U*M*E'Lt*U*M*ELtEEEH]UHHd$H]H}HuHUHMH]*U*M*Kt*U*M*CKt0tHHEHE*U*M*EzKt*U*M*EbKt0tEEEH]H]UHHd$H}HuHUHMHHuH}HtEHUHuH}`EԀ}}*U*M*EJt*U*M*EJt0*U*M*EJt*U*M*EoJt0t*U*M*EIJt*U*M*E1Jt0u:*U*M*EJt*U*M*EIt0tE^EXHUHuH}<EHUHuH}(EHEHUHHHEHUHHEEEH]UHHd$H]LeH}HuHUHMHEHt HEHu EHuHEH8HU^uHuHEH8HUFt E]EEHEHcUHHEHuHcEHHUHJHHHHEDeE|TEEHuHcEHHUHJHHH HEHcUHHuH}.tED;e;]eEEH]LeH]UHHd$H]H}HuHUHEHUf/ %HUHMf/ ʁHH gHȋ+t H]HmHEHU\EuKHE@u9HMHUHEB\@^EHE \YXIHEHHEHHHEHHEHmHEHU\EuLHE@u:HMHEHU@\B^EHEM\YXIHEHHEHUH EHUHEf/@%HUHMf/AHH zgHȋ6tHEH@HEHmHEHU\EuLHE@u:HMHEHU@\B^EHEM\YXIHEHHEHUHHEH@HEHmHEHU\EuLHE@zu:HMHUHEB\@^EHEM\YXIHEHHEHUH EHUHEBf/@ %HUHMBf/A ʁHH gHȋ4tHEH@HEHmHEHU@\BEuHHEuu7HMHEHU\^EHEM\HYX HEHEHUHPHEH@HEHmHEHU@\BEuHHEu7HMHEHU\^EHEM\HYX HEHEHUHP EHUHEBf/@%HUHMBf/AHH jgHȋ1tHEH@HEHmHUHEB\@EuHHEu7HMHEHU\^EHEM\HYX HEHUHEHBHEH@HEHmHUHEB\@E{uHHEju7HMHEHU\^EHEM\HYX HEHEHUHPEEEH]H]UHHd$H}HuEHEHPHEH@B\@EuPHEu?HMHEHPHEH@\^EHEM\HYX HEHUHEHBH]UHHd$H}HuEHEHPHEH@\E(uTHE@uBHMHEHPHEH@B\@^EHEM\YXIHEHHUHEHH]UHHd$H}HuHEHuHjHEHEHEHEHEHcEHcUH)HHHI‰EHcEHcUH)HHHI‰E9E~8HcEHH?HHHcUH)‰UHcEHH?HHHcUHЉE6HcEHH?HHHcUH)‰UHcEHH?HHHcUHЉEHEHUH]UHHd$H}HuHUHME hEHEHtH@HH|:H}yHHuH}uH}\HHuH}uHgH}HuTH Eȅ}HgH}Hu,eHuH}]HEЋEȉEHMHUľHHmHEHtH@HHcUHHHMHtHIHHHUHMHUH}HEHtH@HHHEH5gHMH}غEEPHUHcEH4HHmHUHtHRHHcEHHHMHtHIHHHUE;EuHEHcUH4HWHuHKHuH?HuH3HcEHEH5LgHMH}غߓH]UHHd$H}HuHExt%HEH@HHEHc@H|Hu[t-HEH@HHEHc@HUHHE@gPHEPH]UHH$pH}uHUHMHE@H3YEE]Hu3HHEfDHEHEHEHPHEHcHJHEHuH}-JHEHcMHcEHHcEHcUHHHEHcUHcEH)HUHHHcMHcUH)HMHHHHEH=}HEEuH}HNjuHUHHEHcHcUH)HEHHEHHUHcRHcMH)HUHHUHHHEH=}HEEHEHEHMЉEHEHHEHcEHcUH)HcUHcMH)HHcUHcMH)HcuHcMH)HHHEH=}HEEHU؋E;E E;EHEH8HutHHUHEH]UHH$`EMU]emU]EMuU]EMtHEHEHEHE*U]EMtHEHEHEHEU]EM|EMHEHEHEHEU]EMIEMHEHEHEHEU]EMxU]EMx^EM:EMU]EMEMHEHEHEHEEMH]UHHd$H}HuHU*EE*EEem*EE*EEU]*EE*EEEMEMEMH]UHHd$EMH}HHHUEf/zsf/zvEHEH@HEHEH@HEEf/EzsEf/EzvEEEMH]UHHd$H}HuHEHPHuHE@f)HEHEHHEHetFHEHPHEHpHEXHEPHEHHE@H%tEEEH]UHHd$H}EMU]HuHUEf/EzvHEHEHEHEHEHEEf/EzvHEHEHEHEHEHEHEHEHEHEEf/Ez vEEHEHEHEHEHEEf/Ez sEEHEHEHUf/ H]UHHd$EMUE<$HEH}HEmEm]EmEm]EMH]UHHd$H}EE<$HEH}H蘴EmEm}EEEmEm}EEHEH]UHHd$EME<$HEH}H'Em}EEEm}EEHEH]UHHd$EMEH-EEH-EHEH]UHHd$H}HuHUHEH5gHMH}œHEHHEHHEHU HcɾH!HH!H ϋHcH HH!H!H HEHHxHEHHUHPEEEEHcH!HH!H EHcH HH!кH!H HEHHHH]UHH$ H}HuHUMH5hH}EHUHHpHђHcH@uuDMDEMUH}H5yhH}H5Ah H3(ݝ88f)HUuH3H}BHuH}H5AhH}pH@HtH]UHH$H}HuHUMDEH5hH}AHUH@lHВHcH8jHcEHcUH)H0HcUHcEH)H(HH;0} H(H0HcEHH9},HDž0H5|gH0H}غÓH}H5h *E *EHH(H H0H(HEH0HEȋEU)ЉHEHcҹH!HH!H ֋HcH HH!ʹH!H H} EE艅EHcH!HH!H ƋHcH HH!кH!H H}c HcEHcUHH* HcUHcEH)H*HH(H H0H(HEH0HEHUuHѕ3(ݝ00Hؕ3H}{EEU)ЉHcH!HH!H ƋHcH HH!кH!H H}k EUEЉHcH!HH!H ƋHcH HH!кH!H H} HcEHcUHH* HcEHcUHH*HH(H H0H(HEH0HEHUuHy3(ݝ00H^3(ݝ00H} UEЉEHcH!HH!H ƋHcH HH!кH!H H}EU)ЉEHcH!HH!H ƋHcH HH!кH!H H}HcEHcUH)H* HcEHcUHH*HH(H H0H(HEH0HEݝ00HUuH3(ݝ00H} EEE艅HcH!HH!H ƋHcH HH!кH!H H}EEU)ЉHcH!HH!H ƋHcH HH!кH!H H}HHcUHcEH)H* HcEHcUH)H*HH(H H0H(HEH0HEHUuH3(ݝ00Hۑ3(H3(ݝ00H}E HuH}H5DhH}sH8HtH]UHHd$H}HuEEEEEEHEH]UHHd$H}HuEEEEEEHEH]UHHd$EMU]EXEEEXEEEMH]UHHd$H}HcEH؉EHcEH؉EHEH]UHHd$H}HuEU)ЉEEU)ЉEHEH]UHHd$EMU]E\EEE\EEEMH]UHHd$H}uHcEHcMHHEHcEHcMHHEHEH]UHHd$H}uUE‰EUE‰EHEH]UHHd$H}HuUE‰EUE‰EHEH]UHHd$EMU]EYEEEYEEEMH]UHHd$EMUEYEEEYEEEMH]UHHd$EMU]E^EEE^EEEMH]UHHd$EMU]Ef/EzuEf/EzuEEEH]UHHd$H}HuHHUf/zuBf/@zu0ɄtTHEHPHUH@HEHUHBHEHBHEEf/EzuEf/Ezu0tEEEH]UHHd$EMU]Ef/EzwEf/EzwEEEH]UHHd$H}EEEEHEH]UHHd$H}EEEEHEH]UHHd$H]H}HuHEHcXHEH8ǶH9~=HEHc@HHEH~HEHEH5/gHMH}շHEHHEHc@HUHHE@gPHEPH]H]UHHd$H}HuHExtH},HHu3t H}HuH]UHH$0H}HuHEH}HՒHEHHUHuHÒHcHUu,HE@HEH5#gHMH}ɶHEHt_HpH0cHÒHcHUuHuH}֒i_HEHtAHEH]UHHd$H}HHHEHc@HDH]UHHd$H}HuHEHc@HEH5DgHMH}굓H+gHEH0H}裵H]UHH$H}EE<$HEH}HUHUHHEHBHEHUHBHpHBHxmݝ@@Hmݝ88@H@HPHHHXHPH`HXHh`YpEhYxEHEHEHEHEEXEEEXEEEMH]UHH$H}Hu؉UMDEDMHEH}к HҒHEHHHUHxHHcHpHMHcEHcUHH*HR3YHMHcEHcUHH*H/3YAHMHcEHcUH)HHHIH*H3YAHMHcEHcUH)HHHIH*HӇ3YAeHpHteHXHH9HcHuHuH}к Ғ HHtHEH]UHH$pH}EMuHUHEHEEXEEH}EEMEMaHH}EHE@H3f/zrHE@H3f/zsEHH}EuEMEMHH}HEHEEH3(<$⭩EEH3(]<@EHkMEHHEHEEHG3(]Ef/EzrMEHEHH]UHHd$H}EHEHxE|EMEMHEH}"H]UHHd$H}EMHEHxEEMEMHEHEH@HHcHHTHUHcEHcUH)HUHHHcMHcUH)HUHHUHHHEH=}HEHUH(2 9EHuH}C:MXMHp3YEH}HE@MH}H]UHHd$H}HuEHEHPH HcBH|Hu+tHEHxHuhHEHUHPH]UHH$@H}HuEMUH5hH}HUHh ޓH2HcH`H}H5hH}HUuEf)EHEHHX}tHUHcEH|HX*tH}HXvHcEHXH5gHXH}菮HРgH}HuKHEbH5hH}H`HtH]UHH$`H}HuHEHDžhHDžpHUHuܓH互HcHx>f3hfEH}1LEHEHcUD<&,&H}1rE<HUHcE|uHpwHpHuH}rEHcEHUHtHRH9HUHcE|;uHuH}ect_uHh葦HhHEH0H}1L4HEHcUt1HhUHhHEH0H}1LEHcEHUHtHRH9ޓHhJHplH}lHxHtߓH]UHH$`H}HDžxHEHUHuړHHcHUXH=WHHEH}H5À36ZHuHWHHE"H}H53ZHuHWHHEH}H53YHuHWHHEH}H53YHuHWHHEH}H53YHuH WHHEH}H53nYHuHWHHEZH}H53FYHuHWHHE2H}H53YHuH"WHHE H}H53XHuHZWHHEH}H5{3XHuHWHHEH}H5s3XHuHWHHEH}H5k3~XHuHWHHEjH}H5c3VXHuHjWHHEBH}H5[3.XHuHbWHHEH}H5S3XHuH* WHHEH}H5K3WHuH2WHHEH}H5C3WHuH WHHEH}H5;3WHuH WHHEzH}H533fWHuH WHHERHu# \H5HEHtH@Et tM|3EfEHUHcED0 r;Mփ}H}FHuHxyYHx1H53H}@HH}fEHxFHuH}-YHU1H583HxGHxfEHx5FHuH}XHU1H5~3HxGHxIfE}H~3H`HE@HHf`H`HhHE@HHf`H`HpH`HxɒHx1HxOHxfEH~3H`HE@HHf`H`HhHE@HHf`H`HpH`H`ȒH`1HxNHxfEH}3H`HE@HHf`H`HhHE@HHf`H`HpH`H`TȒH`1Hx_NHxcfEדHxCH}CHEHtٓHEH]UHHd$H}CHEHUHuԓHHUHH]UHHd$H]H}HuFgX|-EEEH}HH};]H]H]UHHd$H}HuH}HuH}yH]UHHd$H}HuHH}HE| uH}EH]UHHd$H}HuHEHUHP HUH5H}H]UHHd$H}HpHEHxPHH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuRʓHzHcHUuQHEH}1촓HEHUHPHE@HEH}tH}tH}HEH͓HEHtlHhH(ɓHHcH u#H}tHuH}HEHP`̓OΓ̓H HtϓtϓHEH]UHHd$H}H@HEH@HU@;BEEH]UHHd$H}HuHUHEHHH]UHHd$H}HuH5iH}oH]UHHd$H}uH}CHH]UHHd$H}HHH]UHHd$H}HuHUHH0HEH8HEP H]UHHd$H}uHUHUuH}H]UHHd$H}HxtH}1HHEHEHEH]UHHd$H}HuHuH}"H]UHHd$H}HxtH}1HHEHEHEH]UHHd$H}HuHuH}H]UHH$ H}HuHuHEHUHRhHEH}HUHuƓHHcHUu?HEH}1HEH}tH}tH}HEHɓHEHtlHpH0oƓH藤HcH(u#H}tHuH}HEHP`kɓʓaɓH(Ht@̓̓HEH]UHHd$H}0H]UHHd$H}HuHuH}H]UHHd$H}HuHUHuH}nHEH]UHHd$H}HH=JiHH]UHHd$H}HuE fDEHE@;E~HEHPHcEHH;EuHE@;EuEEH]UHHd$H}uHUEH}HUHH]UHHd$H}HuHEH8HEHtH}.HuH}! HuH}H]UHHd$H]H}HuHEH8HEHtZHEHUHBg4H}8HE@gX|=EfEEH},HH};] HuH},H]H]UHHd$H}HuHH}H@E| uH}]EH]UHHd$H}HuHEHUHP HUH5H}oH]UHHd$H}H=ciuH= <H;HnciHuH=ccin?H]UHHd$H}H=;citHEH=.ciHBH]UHHd$H]H}H=citiH=bi:Ã|TEEEH=bi8HEH1c4H;EuHEHxtH}HEH;]H]H]UHH$H}HuHUHMH}uHEHUHRhHEH}HUHuHHcHxuZHEHMHUH}1 HUHEHBHUHEHBHEH}tH}tH}HEHēHxHtlH`H EHmHcHu#H}tHuH}HEHP`Aēœ7ēHHtǓƓHEH]UHHd$H}1H]UHHd$H}H]UHH$H}HuHUHMH}uHEHUHRhHEH}HUHuNHvHcHxu/HEHEH}tH}tH}HEH4ÓHxHtlH`H ࿓HHcHu#H}tHuH}HEHP`“gē“HHtœœHEH]UHH$HLH}HuHUHDžHDžPHUH`/HWHcHX E@EH}HEH;EH}HEH;E{uH}HEHHËuH}HEHH9uKuH}HEHHX UH}HPHEHHPH=HMH}HEH;EuH}HEH;EHEH@ HE1ҾH=sIHlIHEH8H⽓H HcHH}HEH]9GEE@EEH}HEHHEHuH}HEH`;]|DeH}HEHÃD9wDeDEfDEEH}HEHHtuH}HEHHEjUH}HPHEHHPHEHHEHHPEHEHuHEHHHEHuH}HEH`UH}HPHEHHP0@0:t3UH}HPHEHHPH}HEH0UH}HHEHHH}|HEHxHu0;]H}sDEEmHEHuHEHHHEH1HEH`HEHuHEHHHEHEHEHxHua}VH}MHHt̿7H*HP*HXHt螿HLH]UHHd$H}~3HEHH}HEHHEHUHu耺H記HcHUuXH}HEH uBHEHHHEHEHHHuH}HuH}@@H}7HEHt蹾H]UHHd$H}HuHxN8HH=hH hHHEHHEHHEHHHuHEHHHHEH]UHHd$H}H]UHHd$H}HuHUHEHBpHEHx`uH=,;ǣHUHB`HEHxptNHE@huHEHppHEHx`HEHHpHUH5HEHxpHEH@pHH]UHHd$H}HuHH=CH휓tHEXuHEHx`HuHEH@pHEHUHu:HbHcHUrHE@PtAHE@hyHuH=CetHEXuUHEHUHPpHEHHpHUH5"H}HEHܺHUHEHBpHEHtHtLHEH]UHHd$H}uHU1H=SiH SiHHEHUHu(HPHcHUu5HUHEHHB`HUEBhHuH}HEHUH@`H H}HEHt脻H]UHH$pH}HuHUHMHE@*t?v(5HEH@HUHHEHHEHBHE@*uHEH@HEHEHHEHUHBHHEHEHEH}H}HUHp൓HHcHUȅu?HEHE@*tHEp H}HUHMUH}HuHUU蹸HEHt{HEHE@*tHEp H}HUHMUH}HuHUUH]UHH$@HH}HDžHDžHDžHDžHDžHDžHDžHDžHPH詴HђHcHHEH8#HEHGHEpHýHHHEH8HH1H-HHHuHHH\HHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$HH$L `3LH =`3HH5O`3Hw HuH=$;跗HEH@ HHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$M1M11HH5_3H HEH8*HEfDH}GHEPHEHHHHHplHpHHxlH腻HHHEHp1H+HHHEHp1H+HH*HHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$HH$L ^3LH ^3HH5^3HE CHxHHHu1 HHHp1H*HHHxHp+1H*HHHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$M1LH ]3HH5]3H2 HxH+HxH+HHHHxllHEH@HHu1 HHHEH!ŲHH HHHHHHHHt䳓HH]UHH$HH}HuHUMHDžHDžH}uHEHUHRhHEH}@HUHP蟮HnjHcHHHEH0HeH荌HcHHEH8ߞHEHHEHpHH}HEH8豞HEHE@fH}HEPHEHHHHHEEHEHHEfDHEHHHu1 HHEHE@Em}|MHEHp+1H('HHE؋UHHp+1H'HHɦu}}HMHE@HUHHE@HEH+HEH+HHHHEm}HEH@HHu1 HHHEHHE@HUBHEHcpHEHxHEHcPHEHpH}8H}H}qHHHHtذHEH}tH}tH}HEHHHHtlH0HȫHHcHu#H}tHuH}HEHP`ĮO躮HHt虱tHEHH]UHHd$H}HuH~HEHUHHHEHxtHEHcpHEHxH}tH}tH}HEHPpH]UHH$PHXL`LhH}HuHDžpHDžxHUHu蟪HLjHcHUHE@gXEfDEHEH@UL$I$HEHu1HUHHUHHUHu1HMH:uIHEHp+1Hx#Lx1It$+Hp#HpLMƦuE ;]bEHpEHx9HEHt[EHXL`LhH]UHHd$H}uHEhHE@;E~8HEHcPHcEH)HHEH@HcMH|HEH@MH4}H]UHHd$H}uHEHPEHH]UHHd$H}HuHE@|;EEmHEH@UH4H}u uH} }H]UHHd$H}Hx~HE@gP1HH]UHH$PHXH}uUHDž`HDžhHUHxH HcHpfDEEEEHEH@HHHcUHcEHHH?HHHHE fDEHEH@H@UHHp+1Hh?!HhHEHp+1H`"!H`Hæ DmHEH@HPEHHp+1H` H`HEHp+1Hh HhHSæ|E;E\HEH@H@UHHEHEH@HpMHEH@H@UHHHEH@H@UHMH ЃEmE;EE;E}UuH}EEE;EnqH`HhHpHtتHXH]UHHd$H}HuH}t`H}tYH=iuH=;H胐HLHEHHEHHEHUHPHuH=8 H]UHHd$H]LeH}HuH}mH}tfH=t\H@gX|JEfEEH=y IHEH8I4$tH}It$;]H]LeH]UHH$pHpH}HuH}QH}^@H}5H="+i]HEHUHuwH蟂HcHxH}]ÃEEEH}]HEHH=;艈HuH}HExuHuH}-QHE@|CEE@EEH}HH}P} uH}p}H}1;]H賦H}誏HxHt)HpH]UHHd$H}HuHUHMH}H=uH=6;H΍H HEHUHHEHUHHUHEHx픒HEHUHHUH=31L H]UHHd$H}H=uH=;H5HtHEHUHHUH=1 H]UHH$@H@LHH}HuHDžPHDžXHUHpHHcHhHEH=9tSH0@gX|AEfDẼẺH=IHuH}A$HEHu;]H}'HEHH`Hu1 H`HHEEHEjuH=HEHH;EuHEHHU:uHEHHxHEHpWtHHE8 HEH8H} HHEH8~ H0H蓑HEHtHEHHEH8fHEHp1HX(HXtJHEHp1HXHXHEHp+1HPHPH|:H}'HEHuHEHHEHp1HPHPu$HEHp1HPsHPHEHH;EtHEHH;EHEHUHH;tBHEH8u6HEH8u*HEH8 HHEH8 H0HuSHEHtMHEHt?HEHUHH;t'HEHHEHƏtHEHEЃEH?@;EH}tHEHHEYHE8u0H}Y HH5o;HguH}: fx~HEH>iHHEHEH}tH}H5@htHEJHP HX HhHt豢HEH@LHH]UHH$HLLLH}uHUHMLEH}CH}V2H}VEH}1VHpHH`HEMHpH=%i"HEHHHH>{HcH`HE@^EԃEԐEԃEԉH}HEHxtSH =i8u1HEHHHu1 HH8t HEHxtH}t H}HuUuuH}HpH} HEHuuH}HUH}HEHEHMHpH}1H}HEHX}~H}HEH t#H}U+tH} tH}(HuU u uH}/H}Ƈ}H=fh9HEHH]HyHcHH=W;HEHHPH>yHcHHpuH}PEgX|LEfDEԃEԉH}4TH‹MH=r#iH‹uH}.;]EgX|3EEԃEԉH}HH};]ۋEgX|0EEԃEԉH}IHuLU;]HE@gXEfDEԃEԉH}HHpHEH;MHUH}HEHEƅ|EgD`EEEЃEЉH}RHH@H;UtCuH}RIŋuH}IƋuLCHLH;Et ƅ|EuH}}IŋuLIƋuH}pRH‹uH}LD;eT|t%H}HEHXH}Q(uƅ||tHuH} H}ń;]跛HE@gX|,EEԃEԉH}IL聄;]H}sHHHtH=iHEHHPH-vHcHHHuH}H}1CQH軱HhHE@gXEfEԃEԉH}IHMHhLA$HEH(HZHuHcH@u1H}HEHtHUHuH}HEH>H}5H@Ht贛;]CH} HHHt茛HE@(HE@gX|0EfDEԃEԉH}HH}U;]谙H}观HHt&葙H}舂H`HtHLLLH]UHHd$H}؉uHUHMLEHEHD$HEHD$11HD$H$LEHMHUȋuH}H]UHH$PH}uHUHMLEH}H=OkH"MHEHUHhiHsHcH`u6HuH}&LHEHD$HEH$LEHMHU؋uH}HH}?H`Ht辙H]UHH$H}HuHUMH}uHEHUHRhHEH}HUHx蜔HrHcHpurHEHUHEHBEEHEHx0HcuٓHEHx0Hcu15lHUEB(HEH}tH}tH}HEH?HpHtlHXH듓HrHcHu#H}tHuH}HEHP`疓rݖHHt輙藙HEH]UHHd$H}HuH~HEHUHHHEHx0tHEHcp(HHEHx0ؓH}tH}tH}HEHPpH]UHHd$H]UHHd$H]UHHd$H}Hx(EEH]UHH$H}HDžHUHu裒HpHcHx~H}HEHeH=t;RHEH@0BH}HEH@H}yH`H H=pHcHHUHHPHEHUHEHPH0H}HEHPH}HEHH}HHEH(HH}HEHEH}HEH;EuEUH}HHEHHH}HEHpUH}L}HHt˕6HHxHt評H]UHHd$H}HuHUHEHB H}HEHHEH@ H]UHHd$H]UHHd$H}HHUHHEEH]UHHd$H}HG0H8t&HEH@0HpHEH@0H8tEEEH]UHH$H}HuHUHMDEDMHDžxHXH蹏HmHcHEHEHxKEHEHEHEHEEHxH}HEHHHxtH?kHpHxHu Džt.HxH5=3Hu Džt DžtD$(D$ D$D$D$$DtHMLEHxHuH=7j9HEHEHEHEÑHxHHt6HEHUH]UHHd$H} H]UHHd$H}HHUHHEEH]UHHd$H}uHEHP0EHHH]UHHd$H}HuUH}H0HuH}QH]UHH$HH}HuUH}1guH}[HEH}HHEHHH輵H}HHEH8}H@HHEPHEHHHHHEHHEƅHEKE@EHEHp+H HH킒H:3HpHDžh HEHHHDžxH:3HHDž HEHH`Hu1 H`HH;%HDžHh}ƅHEHHHu1 HHH;uHEHpH}1cHEHP+HE@+HHHHE;]t7HEH@HHu1 HHHH(HH]UHH$HH}HuUH}HHH;{HHH893HH}HHEHHHHH&~HH}14HH]UHHd$H}H1Hf}mH]UHHd$H}HuHUHE@*HUHE8tHEHU@  HEH]UHHd$H]H}uHEHP0EHHHsH;"}mH]H]UHHd$H}H1H&HEHUHEHUH]UHHd$H}HuHEHEHEf@*f%ftf-f-~9HEH@HUHHEHHUHHEHBHEyHEf@*f%f=uHEH@HEHEHHUHEHPHHEHEHEHE@*tHEp H}UHEHUH}UHEHUHEHUH]UHHd$H]H}uHEHP0EHHHsH;HEHUHEHUH]H]UHHd$H}H]UHHd$H}HuHEH@0H@HP+H}yH]UHHd$H}H1HH]UHHd$H]H}uHEHP0EHHHsH;}EH]H]UHHd$H}H1H6H]UHHd$H}HuHH}1H^H]UHHd$H]H}uHEHP0EHH1HsH;KHEH]H]UHHd$H]H}uHUHEHP0EHHHUHsH;HEH]H]UHHd$H}HG0H@HE@$H]UHHd$H]H}HuUHEHX0H}MHSH3mH]H]UHHd$H]H}HuUMHEHP0EHHH}MHSH3H]H]UHHd$H}HuH1eHEHxtHEH@HH}BH]UHHd$H}HuHUHMLEDMHE1ҾH\EEEEEEEEEHEH$EgHDELMHuHUH}HEHH]UHHd$H}H]UHHd$H}HG0H@H]UHHd$H}HG0H]UHHd$H}HG0H@HHUHu1HMHHUHH]UHHd$H}HuH}1H]UHHd$H]H}HuUHEHP0EHHH}HSH3e H]H]UHHd$H}HuH}1H]UHHd$H]H}HuUHEHP0EHHH}HSH3UKH]H]UHHd$H}HuH}1H]UHHd$H]H}HuUHEHP0EHHH}HSH3eH]H]UHHd$H}HG0H@HEx$EEH]UHHd$H}HuH}1H]UHHd$H]H}HuUHEHP0EHHH}HSH3H]H]UHHd$H}HuHH kHpH]UHH$@H}Hu؉UMDEHEHDž@HDžHHUHx?Hg_HcHpH}HHHEHHHH /3HHsHH1HHHHHPH kH@HXH-3H`H}H@HEHHH@HhHPH}1ɺ.H}5<%HohHcHH? kHpH}2HF kHpH}sHM kHpH}ZHT kHpH}AH[ kHpH}(H" kHpH}H) kHpH}H0 kHpH}H7 kHpH}jH> kHpH}QHE kHpH}8HL kHpH}yHS kHpH}cH] kHpH}MHg kHpH}7Hq kHpH}!H{ kHpH} H}1H}t>HEHHXH%-3H`HEHhHXH}1ɺ臁H@HHH}HpHt傓H]UHHd$H}HuH}u*H,3H=:=rHH5HH}1H]UHHd$H}HuHEHUHHtHuH}HEH( H}1uH]UHHd$H}H]UHHd$H}HG0H8uHH]UHHd$H}HEHEHUHu|H[HcHUuWH}eHEHpH}ĎHU1H5+3H}HUH=k<qHH5H~H} H}HEHt"H]UHH$H}HuHHHnHEHxtHEHxHHużH]UHHd$H}uHUHMHEHP0EHHHUHHUHPH]UHHd$H]LeH}G(gX|UEEHEHP0EHL$HEH$fEfD$It$I<$2H}ID$Hp+;]H]LeH]UHHd$H]LeH}HuHUHE@(gX|PEDEHEHP0EHL$HUHMIt$I<$H}ID$Hp+i;]H]LeH]UHHd$H]LeH}HuHE@(gX|HEEHEHP0EHL$HUIt$I<$'H}ID$Hp+;]H]LeH]UHHd$H]LeH}HuHE@(gX|HEEHEHP0EHL$HUIt$I<$H}ID$Hp+e;]H]LeH]UHHd$H]LeH}uHE@(gX|IEfEHEHP0EHL$HcUIt$I<$WH}ID$Hp+;]H]LeH]UHHd$H]LeH}HuHE@(gX|HEEHEHP0EHL$HUIt$I<$H}ID$Hp+e;]H]LeH]UHHd$H]LeH}HuHE@(gX|HEEHEHP0EHL$HUIt$I<$GH}ID$Hp+;]H]LeH]UHHd$H]LeH}HuHE@(gX|HEEHEHP0EHL$HUIt$I<$H}ID$Hp+e;]H]LeH]UHHd$H]LeH}HuHE@(gX|HEEHEHP0EHL$HUIt$I<$ H}ID$Hp+;]H]LeH]UHHd$H]LeH}HuHE@(gX|HEEHEHP0EHL$HUIt$I<$?H}ID$Hp+e;]H]LeH]UHHd$H]LeH}HHxtKHE@(gX|HEHuH}HUHUHuH}HUHuHxHxH}HEHuH}HxHuH} ۽`HuH} ۽PۭPۭ`zLEHPH$fXfD$HuH}*HuH}HHHuH}H@H9HEHuH}H@HuH}H0H8HuH}H H(H0H; H8H;( uqEHuH}H H(PHUHuH"HUHuHHH;tEHuH}H&;]Xt}tH}H5/ 3HPHtu,tH}H}zH}H}H}HxsHUHUHHtZuH@H]UHHd$H]UHH$HH}HDž(HUHuH]H]UHHd$H}HuHUHMHo=HLEH=t=YHH5HbH]UHH$pH}HuUHDžxHUHuL`Ht>HcHUEEE!_sH}u1TڒgE䉅tHtHHct虋1HtHxْ01Hx$HxH}1H53ВbHx*ϒHEHtLdH]UHHd$H}HuHEHUHuU_H}=HcHUHEHtH@Hu EKHEHtH@Hu HEE,HE8#uNHuH}4H}軎EH}HɨU;P|} uH} aH}/ΒHEHtQcH]UHHd$H}H]UHHd$H}HuUUH}HɨHE؋U;P|U;P~PUH}HH}U濨H]UHHd$H}HuHEx8tH}HjHp͒ HuH}H]UHH$`H`LhH}HuHUHEHUHxm]H;HcHpuXH}HEHȨHDcD;c|6CE@EEHuH}H}HuUD;e*`H}̒HpHtaH`LhH]UHHd$H}HuH}vHHu EHE}@8HEx8u uH}H]UHHd$H}HuUuH}H5 3H̒H}H5 36̒HEHxt5H 3HEHEHHEH 3HEHuH}1ɺϒH]UHHd$H}HuH}HEH8uH}HjHp˒H]UHHd$H}HuHUHH5 3HUH}H5 3UH]UHHd$H}HuHH5 3Hwt(H}H5 3wtH}H5 3wu EQH}H5u 3hwt(H}H53TwtH}H5 3@wu E H}蚊EuH} H]UHHd$H}HuHUHMDEH}ADEHUHMHuH}[HEHUHEHEHEHEЃ}̜tDEHUHMHuH}H]UHHd$H]H}EHEx(~HH}8HEHE@(gX|+EDEEH}$H;Eu ;]EEH]H]UHHd$H}?H]UHH$H}HuH}HEHHH}ㄒH}1HҒH}01tHEH]UHHd$H}HuHWHH};H]UHH$H}HuH}HEHHH}ӄH}1HQҒH}01HEH]UHHd$H}HuHwHH}H]UHH$H}@uHUHu XH26HcHx9Et!,tW,,,mH3(zrmH3(z w EEmH3(zrmH3(z w EEHEH$fEfD$~CE|mH3(zrmH3(zwENEHmHu3(Hz<(z'r%mHV3(HK<(zwEEYHxHtMH`H VH4HcHuEYHHt~\Y\EH]UHHd$H]H}EHEx(~MH}}HE@(gX|1EfDEEH}$mz u ;]EEH]H]UHH$H}HuH5%<Hhi{HPHUH3HcHudH<HhH=<рƅk.HEH$fEfD$H}HHhH}Lh11ŦBXH5{<Hh{HHtYH]UHHd$H}HuH}Vu*H{3H==IHH5HV<$HuH}H]UHHd$H}HuH}<$HuH}H]UHH$H}HuH5<HhyHDžH0HTH.2HcHHU<HhH=g<Bƅk.HhHPH}uH59<H}۽PHuHnHH=3גH~.HFkHPH=.=AHHH5H?UHPH$fXfD$>t.HkHPH==GHH5HTH}H谽LHPH$fXfD$LH}u.HjHPH=n=GHH5HTHPH$fXfD$H}UHH5<HhxHHtVH]UHH$pHxH}HEHEHUHuQH0HcHUugEHEx(~UHuH}HE@(gX|8EfEEH}HuH}HuВHu ;]ETH}H}HEHtVEHxH]UHHd$H}8uH}HػEEEH]UHHd$H}HuH}H]UHHd$H}HuHH}HH]UHHd$H}HuHEHUHuuPH.HcHUu9H}HuHEHHH}tH}H536 H}1)TSH}諿HEHtTH]UHH$pH}HuHUHMDEHDžpHUHuOH-HcHxu8H}HpHEHHpDMHMLEHUH}ERHpHxHtTH]UHH$pHxH}HEHEHUHuOH/-HcHUugEHEx(~UHuH}HE@(gX|8EfEEH}HuH}HuHu ;]EQH}/H}&HEHt(SEHxH]UHHd$H}HuHEHUHu%NHM,HcHUuH}HuHuH}8#QH}ߒHEHtRH]UHHd$H}HuHEHUHuMH+HcHUuHuH}HuH}XPH}ߒHEHtRH]UHHd$H}HuHEHUHu%MHM+HcHUu9H}HuHEHHH}tH}H526 H}1)PH}[HEHt}QH]UHH$`H}HuHUHMDEHDžhHDžpHUHuhLH*HcHxuKH}HhHEHHhHpgHpDMHMLEHUH}2OHhݒHpzHxHtPH]UHH$pHxH}HEHEHUHuKH)HcHUugEHEx(~UHuH})HE@(gX|8EfEEH}Hu(H}Hu+Hu ;]EHNH}ܒH}ܒHEHtOEHxH]UHHd$H}HuHEHUHuJH(HcHUuH}HuUHuH} MH}*ܒHEHt,OH]UHHd$H}HuHEHUHu5JH](HcHUuHuH}UHuH}h3MH}ےHEHtNH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuIH'HcHUuiHEHEHUHP8HUHEH@HBHUHEH@0HB0HUHE@(B(HEH}tH}tH}HEHALHEHtlHhH(HH'HcH u#H}tHuH}HEHP`KwMKH HtNNHEH]UHHd$H}HuH~HEHUHHH}tH}tH}HEHPpH]UHH$H}HuHUMH}uHEHUHRhHEH}HUHuGH&HcHxuHHEHUH}1HUEB@HEH}tH}tH}HEHJHxHtlH`H hGH%HcHu#H}tHuH}HEHP`dJKZJHHt9MMHEH]UHHd$H]H}EHEx(tH}DEHE@@vEEHE@(gX|AEEEH}EHE@@vE:Eu ;]EEH]H]UHHd$H}H]UHHd$H}HuHEHUHuFH-$HcHUuKH}H豰HP HUHu1HUH2HEP@H}虧HUH}'HH})HEHtKJH]UHHd$H}HuH}ֽEHE@@vE%H=H4H}4HEHxt5H2HEHEHHEH2HEHuH}1ɺ许H]UHHd$H}1H]UHHd$H}HuH}HEH8uH}HjHp舴H]UHHd$H}HuHUHH=H2HUH}H=HpUH]UHHd$H}HuH}薼EH}H52`tH}H52o`uHE@@E HE@@EuH}5H]UHHd$H}HHUHH@EtWH}0tJH}EH}GEHE@@vEHE@@vE8EEH]UHHd$H}HuHUHMDEH}芻EHE؋@@vEADEHUHMHuH}HEHUHEHEHEHẼ}ȜtDEHUHMHuH}H]UHHd$H}$H]UHHd$H}1H]UHHd$H]LeH}HuHUH} HHP HUHu1HMHHUHެHDcD;c|9CEEEHUH==WhHH}UD;eH]LeH]UHH$`H}HuHDžhHUHuAHHcHxEH}%HHP HpHu1 HpHHUE@E܃E܉HuHh墨HhHuĒH~EE}|uH}1CHhPHxHtoEH]UHH$`H}HuUHDž`HUHxi@HHcHpEEH}HHP HhHu1 HhHHUH}H52EEԃEԃvEs[HEHHtH@HtHEH0H}1H2ⰒUHuH`H`HEH0H}1趰}|HEH0H}1H2藰BH`殒HpHtDH]UHH$H}HuHUMH}uHEHUHRhHEH}HUHu>HHcHxuTHEHUH}1HUHEHBHHUEB@HEH}tH}tH}HEHAHxHtlH`H \>HHcHu#H}tHuH}HEHP`XABNAHHt-DDHEH]UHHd$H}HuH~HEHUHHH}1+H}tH}tH}HEHPpH]UHHd$H}HHxHHuHEH@HHH]UHHd$H}HuHEHxHHuHUHEH@HHH]UHHd$H}HuHUHEHxHHMHUHuHEH@HH H]UHHd$H}HuHEHxHHuHUHEH@HH(H]UHHd$H}HuHUHEHxHHMHUHuHEH@HH0H]UHHd$H}HuHEHxHHUHuHEH@HH8H]UHHd$H} uHEHxHEH}HEHEEH]UHH$PH}uHDžXHDž`HDžpHDžxHUHu;HHcHU}Hx⪒HcEHhHhHHhf1HhHp㴒01HpcɒHp1H5c2HxHxH5{HH]UHHd$H]LeH}EHEx<HE@<H]H}1H;C@H}HEHHEHxHȯ9ueHEHxH路Ã|CEEHEHxHuIċuH}HEHI9u;]EHE@<EH]LeH]UHHd$H}HEHH=u;tH}EEEH]UHHd$H]H}uH}裯HËuH5HEHH=x;"t HEHE?EEHEHMM1HX2H=|i;,HH5He8HEH]H]UHHd$H}uHUH=hH]UHHd$H}H@8H]UHH$HH}HDž HxH85HHcH0HEh8HEx8HE@8H H H1HHcH H(XHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$M1M11H(H52Hڍ7H 9H0HtX9HH]UHHd$H]H}H1HbHUHB@H}1EHEHxHuNEgX|7E@EEH}DHHEHxHu衪;]HEHxPuEgX|5EfEEH}HHEHxPuQ;]H]H]UHHd$H]LeH}HHxPÃ|2EEHEHxPuĩILy;]HEHxPHEH@PHH]LeH]UHHd$H}HuH]UHHd$H}HuHUHEH]UHHd$H}HuH]UHHd$H}HuHUH}1耢H]UHHd$H}HuH]UHHd$H}HuHUHH}躡H]UHHd$H}Hx8EEH]UHH$H}HuHUMH}uHEHUHRhHEH}HUHu1HHcHxusHEMHUH}1菜H=co;ީHUHBHH=Jo;ũHUHBPHEH}tH}tH}HEHQ4HxHtlH`H 0H%HcHu#H}tHuH}HEHP`353HHt66HEH]UHHd$H}HuH~HEHUHHH}}mH}HEHHEHxP_HEHxHRH}1跜H}tH}tH}HEHPpH]UHHd$H}H]UHHd$H]H}HuHUH}>H}EgX|-EEEH}HH}U;]H]H]UHH$pH}HuHEHUHuR/Hz HcHUH}EteH}|H|HHc|Z1H|H}躨01H}=HuH}1H<2H}H5J2赞1H}7HEHtY3H]UHHd$H}.H}5kH}H]UHHd$H}uH}HEuH}H]UHHd$H}HuH]UHHd$H}HuHUHuHUH}H]UHHd$H}HuHUHM11HT$H$HuH}HHEHPLEHMؾ?ЗH]UHH$H}HuHUHH}H9@ EHHHc}XH}1HH}01xHEH]UHHd$H}HuHUHMHEHuH}HcH]UHHd$H}HuHUHsHUHu,H HcHUuHUHuH}/H}HEHt1H]UHHd$H}HEHH=q;tH}螀EEEH]UHHd$H}H]UHHd$H}HuHUHMH=?hu-HF7HH=kH kHHhHMHUHuH=hHhH@HhH@HhH1wHhH_HhH較HhHgpHmhH!H=Zhe6H=Nh@ؔH=?hH3hH]UHH$HH}HEHUHu_*HHcHUH}HEHu*H2H=<HH5H ,H}HHEHH1H}貣H]H}1ӛHHEH8HuHEHH@,H}7HEHtY.HH]UHHd$H}H]UHHd$H}HuHUHMH=hu-Hֽ7HH=7kH 0kHHhHMHUHuH=hHhH@0HkhH@0HUhHͰH=BhM4H=6h@֔H='hHhH]UHH$H}HuHUMH}uHEHUHRhHEH}HUHu/(HWHcHxuLHEMHUH}1HE@8?HEH}tH}tH}HEH*HxHtlH`H 'HHcHu#H}tHuH}HEHP`*+,*HHtu-P-HEH]UHHd$H}H]UHHd$H}HuH~HEHUHHHEHxPH}1^H}tH}tH}HEHPpH]UHHd$H}HuHEHP@HEp8H}览H]UHHd$H}$H]UHHd$H}HuHUHEHUHHHEHtCHUHsHT$H$HEHPLEHMH}HE؋p8ԏH}H]UHH$HH}H=jHUHEHUHu%HHcHUuKHE@(gX|E@EHEHxPu$ILI$tE ;]EEH]LeH]UHHd$H}HuHEHxPHuH]UHHd$H}uHE@8;Et HEUP8H]UHHd$H]H}EHEx(~^H}XHEHUHE@(gX|=EEEH}dHEHUHEH;EuHEH;Eu ;]EEH]H]UHH$0H8L@LHH}HEHDžPHDžpHUHu"HCHcHUHuH}HEH(H}0@0KtFH}THxHUHxHUHEHxAPtHEHxHuLNH}0@0yKHpHV2HXH}HPHEHHP1HP HPH`H52HhHX1ɺHpĔHpDžHDžH92HHDž Dž(HDž H32H8HDž0 DžHHDž@HE1AH=(2 EEEQ7?H}HPHPH}1HEH@HH8HPHPH k2HPHP1Hp蝙HpHUH}1琒H}1Hp蕔LpH}1蓑HH}WIHUHPHPHEHxLHMEHxHUHxHUH}HEHxvdH}HEHHEHxHuK-"HP聎HpuH}lHEHt#H8L@LHH]UHHd$H}HEHUHuHHcHUu&HuH}HEH(HEHxHuK{!H}ҍHEHt"H]UHHd$H}H]UHHd$H}HhgDH]UHHd$H}HuH}Hu貍HEHHtH@iEEmHEHHcEDAr t r0}~HEHHcUD0 rHcuH}F}H]UHHd$H}HuH}HuHEHHtH@|JEE@mHEHHcED.t [t]tuHcuH}蹥}H]UHHd$H}HuHH}HE8r@HE@Ototu,HE@NtntuH}eAH]UHH$H}HuHEHHUHHHH}QH]UHHd$H}HuHH=D7HtH}Hn2 ]HuH=;tH}HK2 2HuH=q7tH}H02^ HEH]UHH$H}HuHEHEHUHuH"HcHU7HEHEH@HH}1軌HUHRH;uyHEH@HH}Hu1H}SH}HEHxHNH1H}"HuH}yHUH}賓FH}1&HHEHH HEHxHuWHuH}-HUH}kHu1H}謓H}t)H}HHHUH}\ H}.H}%HEHtGH]UHH$`H}HuHUHMLELMHDž`HDžhHUHx1HYHcHp)HEH}HEH;EueH}HuHu1Hh謒HhuvHu1H`萒H`Hh=xHhH}о:Hu1HhTHhH`QH`H}оܑHu1H`H`t+HuH`H`HUH}о 'H2HXHDžP HP1 H`mHhaHpHtH]UHH$0H0H}HuHDž8HUHuxHHcHUHEHxt@H}1KHH}迍HEHUHUHMHEHxHuI>H}1 H|2HHHDž@ H}H@HEHH@HXHDžPH2HhHDž` H}HH8p%H8HxHDžp H@FH8兒HEHtH0H]UHHd$H}HuHUHHQjHrHUH}讑HHEHxHMHU&?H]UHH$HLLH}HuHEHDžPHUH`HHcHX@HuH}HEH(HuH}ӔHH}tH|jHpH}诔HuEE}uqH}0@0>u_HEHHHDž@ H@HDjHp1HPr]HPHjHxE1H~t}u3H}JHHEHxLMLEHMHuj?tEE}}HEHHDž Dž( HDž Dž8 HDž0HHjHpHP\HPH'jHxE1H1褋}HEH(HDž Dž8 HDž0DžH HDž@H H3jHpHP[HPHjHxE1H1 }HEHHDž H}HHEHHH(HDž Dž8 HDž0DžH HDž@HHjHpHP6[HPH(jHxE1H1E7}t HE1HuHUH}H}0@0(}EH}1HP贆LPH}1貃HH}vIHUHPHPHEHxLHM7H@HHH@HHH}}tHEHxHu=`HP贀H}諀HXHtHLLH]UHHd$H}HuHHUHH@EEH]UHHd$H}nH]UHHd$H}HHUHHHt$H}HEHtH}mHEHEHEH]UHHd$H}HuH]UHHd$H]H}EH}ˆHEHEx(~;HE@(gX|+EDEEH}ԈH;EuB;]HEHxt.HEH@x`t H}t HE@PtE EEEH]H]UHHd$H]H}EH}HEHEx(~;HE@(gX|+EDEEH}$H;Eu ;]EEH]H]UHHd$H}HHUHHHEHH=H;tQH}H}(HEHt0H}HEH uHuH}HEHH}{ H}{H]UHHd$H}E H}賉Hxt M MHEh8t/H}HEHHtH}HEHtMEH]UHHd$H}HܭhH]UHHd$H}HuH1}H}HEHHEHH=>G;tDHEHEHEHxtHEHxHuHUe>.H}t'HEHp H}}H}t HuH}EH]UHHd$H}HuHUHH!jHrHUHEHxt)H}蓈HwHHEHxHMHU?H]UHHd$H}HuHEHUHue HHcHU#H}HuHEH(HuH}謋HHEH}HIjHpH}|HtoHEHxtdHEHxHu;<HEH}螇HvH8Hu*u.HojHPH=w<HH5H H}HEHH;EtFHuH}HEHt-HuH}+HEHxtHEHxHUHukKVH}zHEHtH]UHHd$H}H]UHHd$H}HuHUHHjHrHUHEHxt6HEH@HH=nD;tHEH@HHH]UHHd$H]H}HuHCÃ|eEEHEH@HxXt$uH}AHHEH@HxX}uuH}AHp HEHxHEP;]H]H]UHH$H}HuHUMH}uHEHUHRhHEH}HUHu HHcHxuPHEMHUH}1HUHܢGHBXHEH}tH}tH}HEHD HxHtlH`H HHcHu#H}tHuH}HEHP` w HHtHEH]UHHd$H}NH]UHHd$H}NH]UHH$pHxH}HEHUHuHGHcHUEH}HEHHEHEx(~MHE@(gX|=EfDEEH}Hu萙HuH}H;EuB;]HEHxt.HEH@x`t H}t HE@PtE EE H}=HEHt EHxH]UHHd$H}HHUHHHEHH=@;mtQH}H} HEHt0H}HEH uHuH}HEHH} H}H]UHHd$H}E H}Hxt M MHh8t/H}HEHHtH}HEHtMEH]UHH$pHxH}HuHEHUHuHHcHUuRHEH}tCH]HHHs2H0Hi2HPH},tH}HEHPHEH}XHEHt HEHxH]UHHd$H}HEHUHuHAHcHUuH}Hu詖HuH}HEH}HEHt HEH]UHH$HH}HDžHUHuHHcHU2H}HEHH=jHEHhH(/HWHcH u_HE@(gX|PEEEH}HŕHH}HEHt HuH}蟺;]H Ht\HHHHcHuH}(HHtr M HEnH"HEHtHEHH]UHHd$H}HuHUH}~HmHP HUH@HEH}HjHpUHEHxt6HEH@HH=<;tHEH@HHH]UHHd$H]H}HuH;Ã|ZEEEH}9HHEHpHPxtuH}9Hp HEHxHEP;]H]H]UHH$pH}HuHEHDžxHUHuHߑHcHUH}HxHEH(HxH}HH}tHjHpH}ԀHuH}1tHEHxHEHxHu1HEHt&H}|HkHp HPH}Du.HjHPH=<HH5HHuHtHXH} H}1HuH}rHxpH}hHEHt*H]UHHd$H}HuH1EpH}HEHHEHt3HEHxtHEHxHuHU;1HEHp H}oH]UHHd$H}1H]UHHd$H}HhH]UHHd$H}HuH}覮H]UHH$pH}HuHEHUHubHݑHcHUH}0@0-)uWHEHEHDžx HxHjHp1H}GHUH=;HH5HHuH}H}1pHHEHx6H}mGHcEHEعHHH}H}1HmH}01艁HEH]UHH$pH}HuHUHDžxHUHuHёHcHUuBEEEHH XH41HxzlHxH}U} |HxbHEHt7H]UHHd$H}HuHEHUHuEHmБHcHUsH}u H}1|x_EEEHHLXH41H}kH}HuPuuH}0x} |HuH}H}=aHEHt_H]UHH$pH}H7HH=R7H R7HHEHUHxAHiϑHcHpH}ؾy˔HjHpH}襱H}ؾ۔HEH^HEHHHEHHEHHH}ؾ^Q|H}ؾx賀HUؾH=shHlhHEH1GHuH}HEH`H}HEHH}hfEHUHu}5uH}cuH}]HUؾH=WdXHPdXHEHuH}HEH`H}оHEHH}оaH}@HEHH}HEH u2H}2bHE 4fEf9Et uH}utH}kےHpHtH]UHHd$H}1H]UHHd$H}HuUfEfEfuH}HjHp^ H}uH]UHH$pH}HuHUHDžxHUHu{H̑HcHUH}HjHpUEEEHh4PHx&HxH}U}|E4EEHh4PHxHxH}U}|HxN]HEHtpH]UHHd$H}HufEH}t[HjH@H}Hkt@H}fEfu.HjHPH=<)HH5H'uH}zsH]UHHd$H}1H]UHHd$H}`H]UHH$pH}HuHDžpHUHuHʑHcHxH}1z^HEH}H52kHyHuH=]DВteHEHEHp H=28tIH}HEHt7H}H2HpHEHHpH}HEH0HuH}7sHpV[HxHtuH]UHHd$H}ndHH}HEHHEHUHutHɑHcHUu1H}HEH uHEHHH}r[H}RגHEHtH]UHHd$H}HuHEHUHuHȑHcHUuiH[7HH=8hH8hHEHHEHH}HuHEHHuHEHH}1H}YHEHtHEH]UHHd$H}0H]UHHd$H}bHH}HEHHEHUHuHǑHcHUu1H}HEH uHEHH H}ppH}ՒHEHt4H]UHHd$H}HuH}7HH=ChH ChHHEHHEHHEHH HuHEHH HHEHHEHH@HEH]UHHd$H}0H]UHH$H}HEHDžHUHu[HƑHcHUAHuH}Gd1ҾH=a6hHZ6hHEHhH(H(ƑHcH HUHEHHEHHucH}1H}HEH |HEHHuFHEHtH@HHEHcUHuHiHH52fHuHcuH}?pHuH}nMH}DӒH Ht.HVH}yVHEHtH]UHHd$H}pH]UHHd$H}H]UHHd$H}HuUEH}+H]UHHd$H}HuHUHH}?,H]UHHd$H}HuEHEH}H,tuH}Xl HuH})H]UHHd$H}H]UHH$ H L(H}HDž0HUHuHÑHcHUOH}HEHHIHUH@BHjÑHcH8H}H0HEHH0LI$0H}HEHA$pH}H0`H0LI$(H}H0HEHH0I$(TH}H0HEHH0I$gTLI$tH}I$HEHhL`ВH8HtJH0SHEHtH L(H]UHH$PH}HuHDžXHDž`HUHuHHcHUHfjH@HhH,2HpH5>2H`ZSH`HxH=2HEH52HX.SHXHEHhH}1ɺV7HXRH`RHEHtH]UHHd$H}H]UHHd$H}HuHH5jHpRH]UHHd$H}HuH1eRH]UHHd$H}HuHH}HiH]UHHd$H}1H=} BH v BHH]UHHd$H}1H=BH BHHEHHEp pHEH]UHHd$H}HuHEHUHuH譿HcHUuHUHuH2HuH}H}PHEHtH]UHHd$H}HuHUH}HuQHEH8tHEHH}1H52RH]UHHd$H}1H=mBH fBHHEHHEp pHEH]UHHd$H}RH]UHH$ H L(H}HDž0HUHu5H]HcHUHt7HH=HjHAjHIHUH@ߒHHcH8uqH}1QHH2H0kH0LJLI$ u/H0LYH0H}fH}H52 cL|˒H8HtfH0NHEHtH L(H]UHHd$H}H]UHH$HLH}HDž(HDž0HUHuޒH¼HcHU;Hs7HH=MjHFjHIHUH@EޒHmHcH8H}1 PHH=;’HLH}H0ZH0LWH}1OH@ H HDž HHxjHp1H(F&H(L7LI$ uH0L薫H0H}dLɒH8HtsH(LH0LHEHtHLH]UHHd$H}H]UHH$PH}HuUHEHUHuܒH׺HcHxE|7tt,HdjHpH}oL!HdjHpH}YL H}1LLH}1ANHH=?BHE؋`HDžXHE؋pHDžhHXH}Hu$ߒH}eKHxHtH]UHHd$H}uHUHE1HMHH=BHEEtoHEHP HEHcH9uHEHP,HEHcH9t@@0H}HEHHcjHpJhHEHP0HEHcH9uHEHPH}H} )E*HEHu HEHUHuH}HUUHUH} $)t HEH8tHEH8HEHp H}=HEHUH@H;t HEHxtHEH@Hp H}=H}Hu=H}tRH}Hu=H}t>HEHHHH%2HPHEHXHHH}1ɺ AwВH}:HxHt]ϒH]UHHd$H}HuHUHMEH}mH}tfHEH%E4HEHuHEHUHMH}HuHUUȈEHUH}%t}tEH]UHHd$H}HuHU؉MDEDMHEH$EffHEHuuHEHUE$HE HD$HEHD$H}DMDEȋMHUHuUEt*HEH8uEHUH}R$uEEH]UHHd$H}HuHUHMHEH#E5HEHuHEHUHHMHUHuUȈE܄tHUH}#uEEH]UHHd$H}HuHEH>#E'HEHu5HEHUHuH}UHUH}P#uH]UHHd$H}HuUHEH"E/fDHEHuHEHU؊UHuH}UHUH}"uH]UHHd$H}HuHEHN"E'HEHuEHEHUHuH}UHUH}`"uH]UHHd$H}HuHEH!E'HEHuHEHUHuH}UHUH}!uH]UHHd$H}HuHH8kH}d!E~M)HEH uUHEHUHuH}UHEH8t!HUH}f!t H}_H]UHHd$H}HuHt]H}}H} E+fDHEH(uHEHUHHuUHUH} uH]UHHd$H}HuHEHHEH}t.H}~~!H}1~HEHt H}yHEHuH}nH}tRH} E)@HEH0uHEHUHHuUHUH} uH]UHHd$H}HuH=CjH{|HEHUHuĒHHcHUu8HuH}eHuH}|HuH}{HuH}ǒH}蜰HEHtɒH]UHHd$H}HuH=~jH{HEHUHuĒH=HcHUu HuH}HuH}h~E ǒH}HEHtȒEH]UHHd$H}HuH=}jH+{HEHUHuuÒH蝡HcHUu!H}t HuH}.zHuH}lƒH}cHEHtǒH]UHHd$H}HuHUHE"HE/DHEHxuHEHUHUHuH}UHUH}"uH]UHHd$H}HuHEHEH6E+HEH8u-HEHUHuH}UHEHUH}DtH}tHEH]UHH$PH}HuHUHMHDžXHDž`HUHuHHcHxIH}11H}iE܅{O@HEH8uUHhHpHUHhHphHhH}1;HUH}KHEH8HuH=:胥tHEHp H}0HuH=;YtHuH}HEHUHEH8HxkHx1HXv:HXH`# H`HEHp H}11ÒHX/H`/HxHt ŒH]UHHd$H}HuHUHMHEHE/HEHHuHEHUHMHUHuH}UHUH}uH]UHHd$H}HuHUHEHZE/DHEHPuMHEHUHUHuH}UHUH}duH]UHH$@HHH}HuHUH0H}E7DHEHXuHHHuHHUH}uH}bE>DHEH`uUHHHHuHHUH}]uHuH=6g詢yHEHEоH==:بHEHHPH$HcHUHEЋ@(gXEEEH}/HEHHuH}&HuH}5$H}qHEHHEH;EtHuH}x&qHuH}#HuH=@B裡tH}HEH@H}דHEHt-HEH tHEH HEH H;]H}HEHtzTHEHtFHEH:דHEHt-HEH tHEH HEH HHHH]UHHd$H}HuUMDEDMHEо#HE6HEHuHEHUHDMDEMUHuUHUH}о#uH]UHHd$H}HuUMDEDMHEо$HPE6HEHuEHEHUHDMDEMUHuUHUH}о$SuH]UHHd$H}HuHUHE HE/DHEHhuHEHUHUHuH}UHUH} uH]UHHd$H}H!HSE'fDHEHpuEHEHUHUHUH}!euH]UHHd$H}EHE%HE~%HEH1HEHUHuH}UEH]UHHd$H}HuEEHEUH|htHEUH|hHu}%rH]UHHd$H}HuHUHEHMH}1HUH]UHHd$H}HuHUHEHMH}1HH]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUHEHMH}H2H]UHHd$H}HuHUHEHMH}HrH]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUHEHMH}H2H]UHHd$H}HuHUHEHMH}HrH]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUHEHMH}H2H]UHHd$H}HuHUHEHMH}HrH]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUHEHMH}H2H]UHHd$H}HuHUHEHMH}HrH]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUHEHMH} HH]UHHd$H}HuHUHEHMH} H2H]UHHd$H}HuHUHEHMH} HrH]UHHd$H}HuHUHEHMH} HH]UHHd$H}HuHUHEHMH} H H]UHHd$H}HuHUHEHMH} H2H]UHHd$H}HuHUHEHMH} Hr H]UHHd$H}HuHUHEHMH} H H]UHHd$H}HuHUHEHMH} H H]UHHd$H}HuHUHEHMH} H2 H]UHHd$H}HuHUHEHMH}Hr H]UHHd$H}HuHUHEHMH}H H]UHHd$H}HuHUHEHMH}H H]UHHd$H}HuHUHEHMH}H2 H]UHHd$H}HuHUHEHMH}Hr H]UHHd$H}HuHUHEHMH}H H]UHHd$H}HuHUHEHMH}H H]UHHd$H}HuHUHEHMH}H2 H]UHHd$H}HuHUHEHMH}Hr H]UHHd$H}HuHUHEHMH}H H]UHHd$H}HuHUHEHMH}H H]UHHd$H}HuHUHEHMH}H2 H]UHHd$H}HuHUHEHMH}Hr H]UHHd$H}HuHUHEHMH}H H]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUHEHMH}H2 H]UHHd$H}HuHUHEHMH}HrH]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUHEHMH}H2H]UHHd$H}HuHUHEHMH}HrH]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUHEHMH}H2H]UHHd$H}HuHUHEHMH}HrH]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUHEHMH}H2H]UHHd$H}HuHUHEHMH}HrH]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUHEHMH}H2H]UHHd$H}HuHUHEHMH}HrH]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUHEHMH}H2H]UHHd$H}HuHUHEHMH}#HrH]UHHd$H}HuHUHEHMH}$H2H]UHHd$H}HuHUHEHMH}#HrH]UHHd$H}HuHUHEHMH}$H2H]UHHd$H}HuHUHEHMH} HrH]UHHd$H}HuHUHEHMH} HH]UHHd$H}HuHUHEHMH}!HH]UHHd$H}HuHUHEHMH}!H2H]UHHd$H}HuHUHEHMH}"HrH]UHHd$H}HuHUHEHMH}"HH]UHHd$H}HuHUHEHMH}%HH]UHHd$H}HuHEHH;EHEHH=:#tHEHH}{HUHEHHEHH=R:劒tHEHH}H}1E#DHEHxhuHEHUHUHUH}1+uH]UHHd$H}uHUHMH}u H=\23HUEH|huH=*L腐HUMHDhHEUH|hHuHUH]UHHd$H}uHUHMHUEH|htHEUH|hHuHU0H]UHHd$H}uHUEH|htHEUH|h@EEEH]UHHd$H}uHUHUEH|htHEUH|hHu(EHEEEH]UHHd$H}HuUHuH}}uHEHH;Eu H}1YH]UHHd$H}HuH~HEHUHHEEHUEH|h=}%rH}1H}tH}tH}HEHPpH]UHH$pH}HDžxHUHu蓣H軁HcHUfEH}˩t=HMHtHIHHuHx%Hx1%֥fEH}H5)Z2"HH}H=pChu^H=L[HTChHE@HEu1HxǩHxHUH=ChJH}|HuH=Ch HEHtfEfE誥HxHEHt EH]UHHd$H}HuHu H}1/ H}Hu0WH]UHH$`H}HuH}㻓HEHhHuH})HEHNHEHHEHu1HUHH*HEHHEHu1HUH8HEHxHEHxHEHEHUHhAHiHcHUH=~[jXHEHuH}WHaHHUعH=gHgHEHMHUH}1$H}HEHXH}HEHΣH}ŌH}輌HEHt>H]UHHd$H}HuH}HuRHEHHtH@H~hDEHx1K2ƒHxj$ƒH]UHHd$H}HuEH}HE1HRHEHH=Fxu*H\K2H=;HH5HHEHEHuH}HEH }*HYK2H=͂;ȈHH5HƕEH]UHHd$H}^H]UHHd$H]H}HuHUHH@jHrHUH}1XHEHH=FwtMH}H}H Ã|3EEԃEԉH}HEHx Hp H}U;]H]H]UHHd$H}fuHEHUHu赒HpHcHUPHEff;E;HUfEfHEH}1蔷HEHHHuHEHHHE|'HEHuHEHH H}謹HEHHHuHEHHHPHEHHHuHEHHHHEHHEHH !HEH1HEHH yH}HEHtH]UHHd$H]LeH}HuHEH='6H 6HHUHHEHkHEHƀHEH{HEHHMHHHHEHH=jHpQHUH=EHEHIH=jHpLP2I$HEHLI$`HEHHEH2HEH@HEHHHEHHEHH H}Mft-HEHtHEHHEHHHEH[zH]LeH]UHHd$H}HuEEHUEHH;EuIHEUHHUEHH tHEU HUE }rH]UHHd$H}HuHUMHE=v HF2r[HEf8uEuH}1nH}1HE0H}QuH}HEHgH]UHHd$H}HuHEHUHuՍHkHcHUu)HEHHuH}H}ĐH}HEHt=H]UHHd$H}uHUEHH]UHHd$H}ffEHEfuHEǀ EH]UHHd$H}uHE;Et*HEUHEHU #H}GH]UHHd$H}uHE;EtHEUH}H]UHHd$H}uHE ;EtnHEU EDEHEUHt9HEU @HEUHHUEHH }rH]UHHd$H}.ؽH}H]UHHd$H]UHH$HH}HDžHDžHDž HUHuVH~iHcHUwHE@P gHEH}.HpH0H.iHcH(EDEHEUHEUHVHUH=|EH|EHMUHHUEHH UH}HH1H5 B2H lH HH0UH}HvHHJ@HHHUE @HH H}tHMH=[HM1ҾH]HM11H\HM1ҾH\HuHH`HUH:HHHUEHHEHEUHCt}IH}t HEHHMZHEHHM1ҾG\H}H(Ht舍HGH;H /HEHtQHH]UHHd$H}HuUHuH}}HEHH;EuHEHǀHEHH;EuHEHǀHEHH;EuHEHǀEfEHUEHH;Eu!HEUHDŽHEU}rH]UHH$pH}HuUHEHUHuoHeHcHU|EtJtZtjtzH}H5>2H}H5?2H}H5?2H}H5?2H}H5(?2H}H53?2H}H5>?2yH}H5I?2dH}H5T?2OqH}H5b?2=_HcEHxHxHHx1HxH}01H}RHUH}1H5!?2 H}^HEHt耊H]UHH$HH}HuHUHDžH}uHEHUHRhHEH}HUHuPHxcHcHxeHEH`H H>cHcHHUH}1½HEǀ?HUH=GdEH@dEHUHHEHH5 >2HH0HR2jHpH&EHH@HHHuHH`HUH+HHHUH=DHDHUHHEHH5=2HH0@HHHN1HEEEHu}|EDEEHM}|HNHEHmHPHXHuHH`HEHHTHEHHZHHHH}1hǽH}oH}4H}1iH}1H}1H䧩HHEH=CHEHܮEEEHEUHtHEUHubE}rHEHuDEgpHEH*EHHHt踆HEH}tH}tH}HEHHxHtlH`H 訁H_HcHu#H}tHuH}HEHP`褄/蚄HHtyTHEHH]UHHd$H}uHEHUHuH>_HcHUuUuH}1$H}蛨u9HEH@HHHuHEH@HHHPكH}0HEHtRH]UHHd$H}H]UHH=5#6H gH92H5:H=\AH MgH92H5EH=\AH ,gH92H57EH=\AH gH92H5hEH=\AH gHk92H5DgH=x\AH gHJ92H5[CFH=W\AH gH992H5R:%H=6\AH gH92H5a[H=BH .gH82H5@aBH=!6H %gH6.21H=/;H gH.21H=t;H gH-21H=!6H gH821sH=XH egH821WH=;H igH-21;H=(6H gH-21H=BH igHr-21H=D!;H gHV-21H=(!;H gH821H=BH %gH82H5!GH=(;H gH,21H=JH gH72H5"IImH=.BH sgH72H5[ILH=u 6H gH32H5xA+H=T 6H gH32H5i H=3 6H |gH32H5hH= 6H KgHL72H5=XH= -;H gH;72H5LRiH=GH gH*72H5CvFH=BH (gH72H5^BeH=,;H ߱gH72H5HDH=UYAH gH62H5`A#H=4YAH gH62H5?AH=YAH dgH62H5AH=BH 3rgH62H5^BH=ɺBH rgH62H5]BH=BH qgH62H5]B~H=BH qgH62H5]B]H=N6H qgH62H5]B[LH}H55H}uH}uH}HEHPpH]LeLmH]UHH$HLLLLH}HuHUHH}t)LmLeMtٚLH~ZLShHEH}trHUHuiH,GHcHUHEHUH}HH}H}zIALMMtBM,$LYHDAPHEǀHEƀHEƀH7CHpH}'HEH}uH}uH}HEHQkHEHpHhH(gH$FHcH u%H}uHuH}HEHP`jljH HtmmHEHLLLLH]UHHd$H]LeLmH}HuH(皒H})LeLmMtʘI]HnXLH}@yH}HH}uH}uH}HEHPpH]LeLmH]UHHd$H}HGHE@HH}gH]UHH$`H`LhLpLxL}H}HuHݙHEHUHu#fHKDHcHUHEHHuxHtH}IH}ALMMtcM,$LWHDAPHEHHuՑHEHHH}OHuHEHgՑH} hH}ԑHEHtjH`LhLpLxL}H]UHHd$H}HuH}ԑHx芘HEHUHudHBHcHUu=H}Hu įH}Hu#HtHuH}-%HuH}gH}ԑH}ӑHEHtiH]UHHd$H}uHԗHE;EtHEUH}{ H]UHHd$H}@uH胗HE:EtHEUH}* H]UHH$pHpH}HuHUH"HDžxHUHuecHAHcHUHEHt EHEu@HEHHuHHHH-HH9v訔]XHuHHx,MHxHEHH>HHH-HH9vN]HEu }E}EeHxёHEHtgEHpH]UHHd$H]LeLmLuL}H}HuHUHH蛕EEHEHu$HEHHMHUHuHEE}u}u2HEHu HEHHUHuHEE}uE}u=L}LuH]LeMtM,$LRHLLA` EEH]LeLmLuL}H]UHHd$H}HuH蓔HEu H}@H}@<HEHuHEHHuHEH]UHHd$H}@uHHE:EtRHUEHEu#HUH5)H6H8HcHuH6H8辄H]UHHd$H]LeLmLuH}HuUH8pHEHƋUH}mHEf8tuEtOHEff= rBf- t:LeLmMtI]HPL u HEfEtEtHHEff=!7f-!f-f-t f-tKELuLmMt艐MeL-PL@A$ HEfELuLmMtCMeLOL@A$ HEfELuLmMtMeLOL@A$ HEfCELuLmMt躏MeL^OL@A$ HEfEtEtHEff=#f-#tNf-tELuLmMt>MeLNL@A$ HEfCELuLmMtMeLNL@A$ HEfH]LeLmLuH]UHHd$H}Hp觐HEHUHu\H;HcHUu#H}Hu=HuH}@H} _H}9̑HEHt[aH]UHHd$H]LeLmLuH}H(HEHHH}H}u4H}HIIMt辍MuLbMLAH}H]LeLmLuH]UHHd$H]LeLmH}@uH(W}uHEƀLeLmMt-I]HLLp HEHt8HEt)LeLmMt匒I]HLL HEƀLeLmMt豌I]HULLx HEHǀLeLmMtyI]HLL HE@Pt H}H]LeLmH]UHHd$H}HHEƀH}@H]UHHd$H}Hx׍HEHUHuZHE8HcHUu(H}HuH}HB)CHpiّHE ]H}dɑHEHt^EH]UHHd$H}H7HEHHtH]UHHd$H}HuHUH}"ɑHx挒HUHu4YH\7HcHUuOHEHH} ɑHEHHuyؑHu HEHHuȑH}@[H}TȑHEHtv]H]UHHd$H}HuH3HEHH52ȑH]UHHd$H}HHEHHH2H52H=uh:mH]UHH$HLLH}HuHUH脋H}t)LmLeMtgLH ILShHEH}t,HUHuWH5HcHUHEHUH}H_HH=a:lHUHHEǀHEǀHEH}uH}uH}HEH%ZHEHpHhH(VH4HcH u%H}uHuH}HEHP`YU[YH Ht\z\HEHLLH]UHHd$H]LeLmH}HuH(ljH})LeLmMt誇I]HNGLHEH@H}HH}uH}uH}HEHPpH]LeLmH]UHH$ H H}HuHHDž(HUHuYUH3HcHU$HEHEHHuőHEHcHqHH-HH9v视HEHxH8TH2HcH0u>HEu"HuH(ؤH(H}  HuH}WHEHcHqVHH-HH9vHEH0HtXIWH(ÑHEHtXH H]UHH$@H@LHLPLXL`H}uHKHEHDžhHUHxSH1HcHpEtt}tLL}IHYHHYIMt賄MLXDHLLAHEJL}IHH|AHH>|AIMtgML DHLLAHEHEHEhLuIH~AHH~AIMtMLCHLLAHEHEHH} HEHEHuH={A6uCHEHEHEHH}ӤH}uHH}u9HELLeLmMtjI]HCLL(JHEHHhդLhLeLmMtI]HBLL(HUHEpHELLeLmMtӂI]HwBLL0HEH}HEHHhAHhHEH(HEHHEHSHh>H}5HpHtTUHEH@LHLPLXL`H]UHH$PHXL`LhLpH}uHUH较HEHDžxHUHuOH!.HcHUEt0t"LeLmMtKI]H@L HU艂HEHH}xH}u-HEHuHEHHUHuHEH}uHELLxHELMt譀I]HQ@LLLxHELHELMtlI]H@LL8HuH}HEHH}LeLmMtI]H?L HU艂HELHELMtI]H}?LMQHx衽H}蘽HEHtRHXL`LhLpH]UHHd$H]LeLmH}H KHEH?LmLeMt+I$H>Lx H}u H}H]LeLmH]UHHd$H}HuHÀHEHH52H]UHH$`HhLpLxLuL}H}HdHEDH]LeMtE~M,$L=HDA` HEHUHuvLH*HcHUnLeLmMt}I]H=Lu?HEDH]L}LeMt}M,$LQ=LHDAh OH}8HEHtPHhLpLxLuL}H]UHH$HH}H*HDžHDž HDž(HDž0HUHuLKHt)HcHUHE~vHEHcHq }HH-HH9v|HEHUH@JH(HcH8HEu~H}H(H(H0B̤H0tOH}H ֩H HEHH(̤H(HEHHY'H}H臩HHEH+MHEHcHq{HH-HH9v{HEH8HtmNH}LH#H H( H0HEHt!NHH]UHHd$H}HuH|HEHuHEHHuHEH]UHH$HLLH}HuHUHd|H}t)LmLeMtGzLH9LShHEH}tHUHurHH&HcHUuUHEHUH}HCHEǀHEH}uH}uH}HEH5KHEHpHhH(GH&HcH u%H}uHuH}HEHP`JeLJH HtMMHEHLLH]UHHd$H}HuHxzHEHUHu)GHQ%HcHUu.H}HuyH}Hu|ƑHu HuH}JH}jHEHtKH]UHH$`H`LhLpLxL}H}H!zHEHUHugFH$HcHUCL}IHtAHHtAIMtwMLj7HLLAHEH}HuyH}蠴uVH}Hu]HuHEH(ɵLuILmMtNwI]H6LL(XHEHHEH(yH}HuLuLeLmMtvI]H6LL(HUHEpHEHHEH 8HH}菴HEHtIHEH`LhLpLxL}H]UHHd$H}HuHUH?xHEHH}苴H]UHHd$H]LeLmH}H wHEHLmLeMtuI$H5Lp H}]u H}H]LeLmH]UHHd$H}HuHswHEHH51H]UHH$HLLLLH}HwHEHDžHUHuICHq!HcHUWLeLmMttI]Hb4L` HEHhH(BH!HcH LeLmMt_tI]H4LE}uKL}LuHLeMt tM,$L3HLLAh HH}TEH}v.H HtF}uRHEHu5HEHHUHuHEH}u HuH} HuH}{EHZH}QHEHtsFHLLLLH]UHHd$H}HuHuHEHH}àH]UHH$H}EH}HHtHUHuAH)HcHUHpH0@HHcH(u7HuHtHvH}HuH=Ow~H(n;HP*jECH(HtSHH\@HHcHuHEHEiCHHtHF#FLCH}裯HEHtDEH]UHH$HLLH}HuHUHTsH}t)LmLeMt7qLH0LShHEH}tUHUHub?HHcHUHEHUH}H/HUHԜhHHHUH1HHHUH1HHHEƀHEƀHEǀHEH}uH}uH}HEHAHEHpHhH(w>HHcH u%H}uHuH}HEHP`qABgAH HtFD!DHEHLLH]UHHd$H}HuHqHEHH}ϭH]UHHd$H}HuHCqHEHH51萭H]UHHd$H}HHqHEHHEEHH!ƋEHcH HH!HH!H H}+HEH}#EEH}!*u 6\EH}X"u'HEHEHuH}}#Hl;Hk;HuH}XHEH$LMLe'HMH &HEHEHEEH}* H}qu H}H]UHHd$H]LeLmH}H oHEHH}t)LeLmMt\mI]H-L@ H]LeLmH]UHH$pH}HoHEHEHUHuO;HwHcHUu\H}H}zuDH}!HuH}&H}HuqHuH}tHu HuH} >H}bH}YHEHt{?H]UHH$pH}@uH-nHEHUHus:HHcHU@uH}H}Hu貙HuHhH}HEHE@Pu*HEuHEH}'uHEH}!H]UHH$pH}HuHmHEHUHuc9HHcHUH}tHEtHEu dXHuH}HE$HhHuH}HEHE@PuH}tH}H}&HEH}Hub$HuH}U HuH}F;H}HEHt=H]UHH$pH}HkHEHUHu8H?HcHUHEtv:H}HƧHEHH诧zH}H51蚧HEtHEHH51tHEHH51[)H}H51IHEHH512H}EHuH}EH}2:H}艦HEHt;H]UHHd$H}HgjHE@PtHEH}H}H]UHHd$H}HuHjHEHuHEHHUHuHEH]UHH$@H@LHH}uEH}ᥑHiHDž`HUHp5H HcHhHEHEHIc;xHuHHHH-HH9vEg]܃}tAHcMHqfgHuHH`蟷H`.hE؃}tHcUH}H*Hb;xHuHOHHH-HH9vf]܃}tHcMHqfHuHH`H`gEԃ}tTHcUH}H脽H}VgEЃ}t"EtctE=veDeЋE=ve]ԋE=ve}HMDZLEE=veDeԋE=ve]؋E=vle}HMD LEQE=vFeDe؋E=v2e]ԋE=ve}HMDKEE}tHEHE_6H`賢H}誢HhHt7EH@LHH]UHH$HLL H}H}蒢H5+;H}RZHCfHEHEHEHEHDž8HUHHc2HHcH@HhHHEHEHtH@H|Hu H}DLHMHUHuH H( H]HH}40 rsHLeH]HtH[HHH9vmcHH}AD0 rs(H]HLeLLmLLLHHHuH}`t(HuH}`tHuH}`tE=vbfEfEE=vbfEfEE=vbfEfEf}dr=HuH8JH8HH=1.Ht HuHHMUu}HtHhHHE3H8៑H}؟H5;H}VH}迟H}趟H}譟H}褟H@Ht4EHLL H]UHHd$H]H}HuH8_c OHEHuH}HFKEHHdHHHH-HH9v6aHEXHEHc@]H)qYaHH=v af]HEHEHc@H)q,aH2~.HE]HsaHH=v`HEf7HE]Hs`Hds`HH=v`HEfH]H]UHH$HLLLH}HuHUHMHEHHEHHEHHaHEHUHX+.HS HcHPH}HH}HH}HᝑH51H}HHHEHXHtH[HH-HH9v^_}EDE܃ELmMuHcUHH9v_LceLI}蟭CD&0 rs|LmMuHcUHH9v^LceLI}ZC|&HH -HH}H H0.H}H0HH;]~,E2Hc]Hq^HH-HH9v<^]HEH@HtH@HcUH9}ILeMl$HcUHH9v]Hc]HI|${AD0 rrlHcMHq^HEHpH}H;HcUHEHxH㴑HEHxtH}Hu蹛)HEHxtH}Hu蝛 H}Hu莛HEHxtlfHEHxHHmHEH@HtH@H%HEHXHHx|ErHEHxtE1fHc]Hq\HH-HH9v\]HEH@HtH@HcUH9}ILeMl$HcUHH9vT\Hc]HI|$ӪAD0 rrlHcMHq[\HEHpH}H蓬HcUHEHxH;HEHxtH}Hu)HEHxtH}Hu H}Hu晑HEHxtfHEHxHHŲHEH@HtH@H%HEHXHHxԩErHEHxtVHEHpH}UHEHxtH}Hu;)HEHxtH}Hu H}Hu;,H}蒘HPHt-HLLLH]UHH$`HhH}HJ\HEHDžpHEHUHu}(HHcHUEHEHpHH=1۫HEEEH]E vYEHèH}HEHpH}HHHH-HH9vY]}HUHtHRHcuHEHx賰HcEHxHHxHHx$SHxH}/H}诵H}HcUHEHp } }8HEHpHH=1蝪HEEEH]E vXEHtHH}ʖHEHpH}HBHHH-HH9vRX]}HUHtHRHcuHEHxvHcEHxHHHHxQHH}H}rH}HcUHEHp软 } }HEHpHH=j1eHEEEH]EvcWEH@H}菕HEHpH}HHHH-HH9vW]} HUHtHRHcuHEHx> }}aHEHpHH=1葨HEEEH]EvVEHH}跔HEHpH}H/HHH-HH9v?V]} HUHtHRHcuHEHxf }}aHEHpHpHHpHEHx!L'Hp蠓H}藓H}莓HEHt(HhH]UHHd$H}HuHUHMH [WHEHxH觓HEHxH蓓HEHxHHEHpHD趧HUHHEHpHM薧HUHHEHpHYvHUHHEH8tHEH8tHEH8tHEHUHH; HEH HEHHEHUHH;|HEHuHEHH7H}HpE4HEHH}ERR-H5fm;Hp9HHtH]UHHd$H}EH(RFEH,HQphH,H9EEH]UHHd$H}HFHEHHH1H51H=?PhJ'HH1H5%1H=Ph)'H]UHH$@H}HEHDžpHUHuHHcHxH}u9H}Hp qHpHUH}uHEHUHHEHHEHE耸u?HE耸u.0h݅h<$ݝ``E-HEHuHEHHUHuHEHpgHxHtEH]UHHd$H}H7DHEEEH]UHHd$H}@uHDHUEH]UHH$pHpH}EHCHEHUHu H3HcHUuPH]H|HEHm=;Hp0OHuH}bЯHEHUHHEƀH}*HEHtLHpH]UHHd$H}HCH ?;HH}HϯHUHmhHHHEƀH]UHH$H}HuEHBHUHuHHcHxuSEHEHEHEHu!HEHHMHUHuHE}uEH}-HxHH=Q:HtqHpHXH8H`HcHuHpHx裄.HHt H]UHHd$H}HuHSAHEH=n6H@HUH]UHHd$H}HPAHEHHE苀EHH!ƋEHcH HH!HH!H H}HEH}EEHjhf/zt d,EHEHD$HE芀$LMLHMHHE@EH}*H]UHH$`H`H}HuHUH}8|H?HDžhHDžxHUHu1 HYHcHUHuHx0HxH}{H]HtH[HH-HH9v=rrHJ9;pHx兑HxHpHuHpweHtDH9;pHh螅HhHUHtHRHq?=HuHuH}]ELHhzHxzH}zHEHtEH`H]UHH$pH}HQ>HEHEHUHu HHcHUH}HuiHuH}.H}H:;H0ˉHt H}IH}HuiHuHUH}uEH}HEH} H}ryH}iyHEHtH]UHHd$H}HuHC=HEHH51yH]UHHd$H}H=HEHH}H]UHHd$H}HHc]HqHH-HH9vHMuH}HcEHqHcUH9~>Hc]HqHH-HH9v3HMUH}1H]LeLmLuL}H]UHHd$H]LeLmH}uH@HEHHcHc]HqHH-HH9v]HEHHH=[*ˑuhHEHH=HEHuH=^tDʑu.LeLmMtI]HאLEElHEHHuQHEHLHEHLMtI]HIאLuEEHEHHuHEH'@uyHEHHuYHEH;Et1LeLmMtI]H֐Lt}tEEEH]LeLmH]UHH$pHxLeLmH}HuH~HEHȢtLeLmMtUI]HՐLHUHuHHcHUH}脯HEH6LeLmMtI]HՐLHcHqHH-HH9vHMH}H}HEHtHxLeLmH]UHHd$H}uH4HEH5uH}8E}u(HEHM%ƁHEHe'uH}YϢHEHu}u(HEH$Ɓ@HEH'H]UHHd$H}uUH qHEH4uH}uuuH}cuEE}u(HEHk$ƁHEH&UuH}$ϢHEHUu}u(HEH$Ɓ@HEH.&H]UHH$@H@LHLPLXH}HuHaHEHDžpHUHuHĿHcHxHELeLmMtI]HҐLHEx4tsHE%r truH}EHuH}OLuLeLmMtwI]HҐLLE}tTHp8PHUعH5(1HpQHpHH=g:bզHH5H`HEH;EHEHuSHEH}taE䉅hHDž`H`HH5՞1Hp(HpHH=:ԦHH5HHpDOH};OHxHtZHEH@LHLPLXH]UHH$HLLLH}HuHUHH}t)LmLeMtLHUАLShHEH}tHUHuޑHHcHUHEHEƀ HUHH=hzHUH HEH =nHH=|,:臞HUH HUH}HȌHEH HUH HH`HPhHEH HMH$HPpHHxHEH HMHFXHP`HHhLuALmMttI]HϐDL H}SLuALmMt4I]HΐDL H}辏!HEǀ H}RHEǀ0 HEǀ H}(H}@~HEƀ HEH}uH}uH}HEHHEHpHhH(ܑH麐HcH u%H}uHuH}HEHP`ߑFߑH HtkHEHLLLH]UHHd$H]LeLmH}HuH(H})LeLmMt I]H>͐LHEH ȑHEH ǑH}HH}uH}uH}HEHPpH]LeLmH]UHHd$H]LeLmH}H HEL HEL Mt I$H}̐LH]LeLmH]UHHd$H]LeLmLuH}@uUH8}t2DuLeLmMt` I]H̐LD 0DuLeLmMt. I]HːLD H]LeLmLuH]UHHd$H]LeLmH}uH( HEHcHcEH)q Ht=HEL HEL Mt I]H:ːLtuH}_-H]LeLmH]UHHd$H}uH04 H1HEHE HEHE HMIH1HH=ZϦHH5H:ۑH]UHHd$H]LeLmLuH}HuHUH@ HEL H]HEL Mty M,$LʐHLAE}E}uHEHPHEH _@@HHwIHHHXHEH`HPHHhBLhHEL ]HEL MtsM,$LLLA@ёHH7>Hh+>H}HUHH5hq5H}H}>H}=HpHtӑH L(L0L8L@H]UHHd$H}@uUMH@}tEU@uH}!]Hύ1HEHE H1HEHE HMIH1HH=ZæHH5HϑH]UHHd$H}HHEH}EEH]UHH$PHXL`LhLpLxH}uHHEHUHȗHHcHUHEL HEL Mt8I]HܽLt)HEHcHcUH)qdHt E#}tHEtqH}Hu(H}H:H0KHt7H}Hu(H}H:H0\KHtEEHEHcHc]H)qHH-HH9vPAHEL H]HEL MtM,$L諼HLDAH}H:H0JHE\ΑH}:HEHtϑEHXL`LhLpLxH]UHH$ H L(L0L8L@H}HuUMDEDMH,HDž`HDžhHUHxaʑH艨HcHpDMDEMUHuH}˄}uHEHHAALhH]HtL#L7LDDHHA$ HhHXHEHPAL`LeMt4M,$LغLDHPA H`H}HX;̑H`8Hh8HpHt͑H L(L0L8L@H]UHH$HLLLLH}@uUMHTHEHUHuȑH¦HcHxH}tH`H ]ȑH腦HcHwHEH SHEHcHc]H)qHH-HH9vAHEL H]HEL MttM,$LHLDAHEHcHc]H)qHH-HH9vBHEL HEL MtMeL褸LA$HEHcHc]H)q.HH-HH9vAHEL H]HEL MtM,$L,HLDA@ɑHEH HHtfˑlH1H`HDžX HT1HpHDžh HXIH1HH=Z芼HH5H8ȑcɑH}5HxHtʑHLLLLH]UHH$HLLLLH}H0NHEHUHuőH輣HcHUEHEHU;0 tkHEHuXHELHEHHtL+LnLAuHUHLuAH]LeMt|M<$L HDLA H}HEH $DHsHEDLuAHEHH]Ht L#L讵HDLDA$ H}HEH( CHu5HpH0đH8HcH(LeLmMtI]H&LX HEHLmAH]LeMt>M<$LⴐHDLA H}HEH BHuZHUH H HEDLuAH]HtL#LmDLDH A$ HEDHEHALmH]HtuL#LLDHDA$ H}HEH( BHuZHUH( HHEDL}AH]HtL#L襳DLDHA$ hőLuAH]HtL#LfDLA$h H(HtƑEőH}u1HEHtƑEHLLLLH]UHHd$H}uH$EH}@H]UHHd$H]LeLmLuL}H}uUMHXEHE؋EHEDuLmLeMtI$ILC@LDEЉEAA H]LeLmLuL}H]UHHd$H]LeLmH}HuH('HEƀ LmLeMtI$H謱L LmLeMtI$H胱L@HEH uHEH HuHE H]LeLmH]UHHd$H}HuHsHEH uHEH HuHE H]UHHd$H}uH$Err uH}wH]UHHd$H}uHErr6}tH}HE :H}HE "H]UHHd$H}HuHsHEH HuHEHEH]UHHd$H]LeLmLuL}H}HuHUH@HEH HugL}ILMMtI$IL華HLAH]LeLmLuL}H]UHHd$H}HHExEEH]UHHd$H]LeLmH}uH(XHEH< HE E8uGEu.H}|H}3H}TwH}DwHE E8uE@H}^HEU H}LmLeMtI$H)L H}@!H]LeLmH]UHHd$H}uH4HUE H]UHHd$H}uHHEƀ4 EuMHEU HE uH}ƁH}1H}ƁH}HEƀ4 H]UHHd$H}uHdEueE@ueEH}bxHE4 t0HE@Pt!EuH}HE H]UHHd$H]LeLmLuH}HuH0HEL H]HEL MtM,$L1HLAH]LeLmLuH]UHHd$H]LeLmLuH}HuH0#HEL H]HEL MtM,$L衫HLAH]LeLmLuH]UHHd$H]LeLmLuH}HuHUH8HEL HEL MtmI$HLHEL H]HEL Mt2M,$L֪HLAPHEL H]HEL MtM,$L藪HLAPH]LeLmLuH]UHHd$H]LeLmLuL}H}HuUHHHEHED}LuAH]HtfHILDLDHuA$ H]LeLmLuL}H]UHHd$H]LeLmLuL}H}uHUHHHEHED}LuAH]HtHILhDLDHMA$ H]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHUHPKHEHH'HEL LeHEH HtL3L跨LLAE}HEHcHc]Hq3HHHH9v]HEIDuLmHEH]HtL#L/E؉LDLA$ H]LeLmLuL}H]UHH$@HHLPLXL`LhH}HuHUH}<&HHDžxHUHu@HhHcHUjHEL LmHEH HtL#LHLLA$E}HEHcHc]HqHHHH9ve]L}DuLmHpH]HtL#L迦pLDLA$ HEH E@@Hxi/HxHuH>HuH}H>HEL LuHEH HtxL#LLLA$P귑Hx>$H}5$HEHtWHHLPLXL`LhH]UHH$PHPLXL`LhLpH}HHEHEHUHuH$HcHUHE uH}H5 t1#H}H5t1#HEL HEL Mt.I]HҤLHHEL LuAHEH HtL#L苤DLLA$HEL HEL MtI]HLLHHEL LmAHEH Ht`L#LDLLA$HEHxLmAAH]HtL#L辣DDLHxA$ L}LmAHEH]HtL#LtEDLLA$ 9H}!H}!HEHt詶HPLXL`LhLpH]UHHd$H]LeLmH}H(;HEHcHqHH-HH9v(]HEL HEL MtI]H臢LoHEL HEL MtI]HFLHcHUHcHqHH-HH9vx]H} ;EuHE;E7Hc]HqHH-HH9v%H}jHEt HE uH};uH}?H]LeLmH]UHHd$H]LeLmLuL}H}@uUMHHiHEHcHc]H)qHH-HH9vSAHEHcHc]H)qwHH-HH9vAHEH HEL MtI$ILvHDDAMU@uH}cH]LeLmLuL}H]UHHd$H]LeLmLuH}@uUH8PHE@H1JHEHcHc]H)qHH-HH9v+HEL HEL MtߑM,$L荟LAU@uH}H]LeLmLuH]UHHd$H}HuHH]UHHd$H]LeLmH}H KHEL HEL Mt)ߑI]H͞LtDHUHE0 HEH HCHEH( H,HEǀ0 H]LeLmH]UHHd$H}؉uHUHMLEH(x}t HE(HE u HE HEH]UHHd$H]LeLmH}HuUMH@HEHHN}t*HE uHuMUH}HEHcHc]H)qޑHH-HH9vݑ]HEL HEL MtaݑI]HL;E~@}tHEH HuUP}tHEH HuUCRH]LeLmH]UHHd$H]LeLmLuH}@uH0ޑHEH=8DH耏u5DuLeLmMtܑI]H6LDx HuH=D5un}u4LuALmMt:ܑI]HޛDL 2LuALmMtܑI]H誛DL H]LeLmLuH]UHH$ H(L0L8L@LHH}uHݑH`蟰HDžxHUHu©HꇐHcHU^HEHU;0 uHUHE0 HUHXLuAHxLeMtڑM<$L莚HDLXA HxHEH HEDLuAHxHPH]Ht|ڑL#L!HPDLDA$ HxHEH( uH}SHEHE uHEH}L8HEHcHHHHH9vّH}`L}tHEHEHcHEHcH)qّH`!H`HEH HEH}uGHE@(tt['LmAH]Ht2ّL#LטDLA$P HEHE@pؑL#L㗐LLA$HuH= DIHED MLHtבL#L蚗LDA$ HE@pU1HHHHHHUH}HcUH}H5mS1(;E~;E~3}uHUHEhhHHt蓖HRHFH}=HpHt\HLLLLH]UHH$HLLL L(H}uUHMHđHEHEHEHDž@HDžHHDžPHUH`֐HnHcHX}t*HE uHMUuH}oHEHcHc]H)qq‘HHHH9v‘]܃}tHEH EHuH}%Hu}HaH\uHH4 HHHuAHHP#HPH}HMЋUuH}EH8LuLmLeMt&M<$LʀLL8A YHuH}TEH0LmH]ALeMtM<$LpDHL0A H}tH}tH}H`HuH}HEH w@@H@H@HuHXHuH}HDHEL HEL MtI]HLtH}t/HEL HEH Ht跿L+L\LA;E~KHEL LmDuHEH HtqL#LDLLA$HEL DuLHHEH Ht#L#L~LDLA$HHH} HuFHEL LmDuHEH HtƾL#Lk~DLLA$ 5H@HH}HPqH}hH}_H}VHXHtuHLLL L(H]UHHd$H}uH HE t\HE@PtM}uEEEHEHMIHO1HH=zZKHH5HuH}_H]UHH$@HHLPLXL`LhH}HuUMH4HDžxHUHuwHiHcHUEHpDuLmHxLeMt׼M<$L{|HLDpA HxH}HEH u#HEH LEMUHuHE HxOHEHtqHHLPLXL`LhH]UHHd$H]LeLmLuL}H}uUHMHP齑HEUuH}H6HEHED}DuLmH]Ht读HILQ{LDDHMA$ H]LeLmLuL}H]UHHd$H]LeLmLuH}uH8DHEHHELLeHELMtīI]HhkLLPH}uH}1H}}HHgHP[H5$ ;H}[HXHtj~HLL L(H]UHHd$H}uHEEfDEEEErEHhE ЉE}sϋEH]UHHd$H}H藬HEHH}.H]UHHd$H]LeLmH}H KHEHĭLmLeMt+I$HiL H]LeLmH]UHH$0H8L@LHLPLXH}HuH身HEHDžxHUHuwHVHcHUEgfHELDuH]HELMtFM,$LhHDLAHuH} H}uH]HH};[tLeH]HtH[HHH9vᨑHH}eA|]tjHxH ;1H`HEHhH';1HpH`HHxyHxHu9txHc]Hq苨HH-HH9v.]HELHELMt駑I]HgL;E[EMyHxH}HEHtzEH8L@LHLPLXH]UHHd$H}HuUH@HEHHuUH}ZH]UHHd$H]LeLmH}uH(訑HE@;Et6HUE@LmLeMt账I$HXfL H]LeLmH]UHHd$H]LeLmH}HuH(WHEH0Hu#Ht=HEH0HuLmLeMtI$HeL H]LeLmH]UHHd$H}HǧHEHHH581HEEH]UHHd$H]LeLmH}@uH(wHE(:Et6HUE(LmLeMtCI$HdL H]LeLmH]UHHd$H}uHEH}$H}mH]UHHd$H]LeLmLuH}HuH8裦HEH}HELeLmMt|I]H dL( ;Eu9DuLeLmMtHI]HcLD@ H}H]LeLmLuH]UHHd$H]LeLmH}HuH(祑HEHHHuHt=HEHHHuLmLeMt袣I$HFcL H]LeLmH]UHH$@HHLPLXL`LhH}H.HEHUHutqHOHcHU=LeLmMt频I]HbL( E}|@HELHELMt觢I]HKbL;E~HEH8HHELDuH]HELMtEM,$LaHDLAHuHEH8uHEH8uHEH8HH8;[tLeM$8HEH8HtH[HHH9váHI$8CA|]tNHEH8HtHIHqʡHEH8HH}HuHEH8ߐHEH0HpHj31HxHEH8HEHpHEH8H LeLmMtՠI]Hy`L KrH}ސHEHtsHHLPLXL`LhH]UHHd$H}HWHEH`HEH8HtDHEH8HEH`xސHEHPuHEHXHuHEPH]UHH$HLLLH}HuHUH蝡HEHEH}t)LmLeMtpLH_LShHEH}tcHUHxmHKHcHpHEHXH^mHKHcH"HUH}HHEHHH5&11ݐHEǀ@@H}BHEH0HuܐHuH}H}u$LeH]HH}A$( HEƀ( LuALmMt2I]H]DLP LeLmMtI]H]L LuALmMtڝI]H~]DLX MoH}ېH}ېHHtpHEH}uH}uH}HEHnHpHpHXHkHIHcHPu%H}uHuH}HEHP`n'pnHPHtqqLqHEHLLLH]UHHd$H]LeLmH}HuH(藞H})LeLmMtzI]H\LH}HH}uH}uH}HEHPpH]LeLmH]UHH$`H`LhLpLxL}H}HuHݝHEHH*ڐHH=,97*HEHUHujH)HHcHUHEHHUAAH=ԏhLeLmMtSI]HZL }LeLmMt I]HZL LuLmMtMeLZLA$9|cLeLmMtĚI]HhZL AHEIH]LeMt葚M,$L5ZHLDAlH}THEHtymH`LhLpLxL}H]UHHd$H]LeLmLuH}HuH0HEHH}HthHEHHu2ؐHEHHuAAH=DhOLuLeMt薙M,$L:YLA H]LeLmLuH]UHHd$H}HuHxCHEHUHugHEHcHUuiHEHH;EtTHUHEHHEHu5H}HuHuHEHHEHH}}8jH}֐HEHtkH]UHHd$H}HpgHEHUHufHDHcHUu:HEHu!H}HuHuHEHIH}piH}ՐHEHtkH]UHHd$H}HuUH谙EHuH}螿}t"HEHH;EtHEHǀH]UHH$0H0L8L@LHLPH}HuHUMDEDMH}AՐHHDžXHUHhBeHjCHcH`H}t }u)LeLmMt螖I]HBVLEEHuH}H/)1ՐH]HtH[HH-HH9vXAA}|EEăELeHcUHH9vHc]HH}A||t%E̅ts}uZHcMHcEH)qHcUHuHXCLXH]LeMtxM,$LUHLAPEk}uZHcMHcEH)q處HcUHuHXHXLeLmMt MuLTLHAPEHc]Hq9HH-HH9vܔ]D;}~9fHXҐH}ҐH`HtgH0L8L@LHLPH]UHH$HLLH}HuHUHH}t)LmLeMtLHSLShHEH}tHUHu"bHJ@HcHUuWHEHUH}HS˴H}H"HEH}uH}uH}HEHdHEHpHhH(aH?HcH u%H}uHuH}HEHP`df~dH Ht]g8gHEHLLH]UHHd$H]LeLmH}HuH(臔H})LeLmMtjI]HRLH}HʹH}uH}uH}HEHPpH]LeLmH]UHHd$HH|hHEHyhHEHuHH=$1¢H]UHHd$H}HuHH}HݭHuH= hDHUHB(H]UHHd$H]H}t1HEHx()HEHpH=0WCD:uEEEH]H]UHHd$H}@uHEHUHHptgHEH@(ƀHUHu6_H^=HcHUuHEHx(@uR=bHEH@(ƀHEHtcH]UHH$ H}HuHUH}uHEHUHRhHEH}FHUHu^HnH}HEH@H]UHHd$H}HĶhH]UHHd$H}uH8 H}kH5HXH8uEH5HXH`xuEHEH]UHHd$H}HuUHuUH},:HE t tu%EuHEƀH}HEH@H]UHHd$H}HuUHuUH};HE t tuEuHEƀH}H]UHHd$H}؉uUMDEDMUuH}A}u)HE؀tHEƀH}HEH@H}HEHH]UHHd$H}H}@"H]UHHd$H}H}@0H]UHHd$H}؉uUMDEDMUuH}A}EHcH!HH!H EHcH HH!кH!H HMH}HEHHEHUHEHEHEHEȋE;E|E;E}E;E| E;E}0t H}HEƀH]UHH$HH}HuHUHMLEDMH}ĐH`H TH2HcHHEH H}`Hx}8tK^HEHkMHIhHЋ4H蛡H H HEE>HËEH6h4H[H H HEEH}E}tE趜HH$H}HDMLEHUMHH8HHHHHHHPUP UHcEHcUH)HcUH)HH?HHHcUHЉEHcEHcUH)Hc|H)HH?HHHcUHЉE}0ŠE0tEЋx)ЉEEȉEfEȉEHhExEH}uEȉEEЋx)ЉEHcEHcUH)Hc|H)HH?HHHcUHЉEH}EEUEЉHEHU MMMMHD$HEH$HEHD$DMLEHUMHuHHp}(tRHh)EHhEeH}HljPfH}HHuHUW}8tV|HEHkE Hk uH_hHHȋ4H讞HHHEE>&HËUHIh4HnHHHEEE|ExHEHU MMMM覙HH$H}HLELMHUMHHPSH}HHt%UHH]UHH$H@LHH}HDžPHUHpPH:.HcHhH}QHEȋD$ HEȊD$HEȊD$H}D$(H}HEHD$H}E$H}HEHHXH`LXH`H}HPʮHPHEDHEHHEH8LI+VRHP誾HhHtSH@LHH]UHHd$H}H}HEH@H]UHHd$H}HuH}rH}HEH@H]UHHd$H}HEEH]UHHd$H}uHE;EtHEUH}HEH@H]UHHd$H}@uHE:EtHEUH}HEH@H]UHHd$H}@u@tHEH H}1 H]UHHd$H}uHE;EHUEHE@PYHEHPtHEHXHuHEPHEHtHEHHuHEHEHEHH}HEHHtXHEHHUHHEH}HEHHPxHUHHEHEH;EHEH;E uHEHHuHEH}HEHHH=eW0t=H}HEH}:tHEHxpHuHEH@pHH}HEH@H]UHHd$H]H}HH iHEHEHEHHuH=90tH}HEHHEH}uSH=itIHi@|8EE@mH]uH=i葯HHEHu}H}t HEHEiHEH]H]UHHd$H}HuHu H}1Ϻ-H6iH8tH}HuH!i HuH}DH]UHHd$H}H=iuH=9H%5HiHuH=iH]UHHd$H}H=itHEH=iHH]UHHd$H}ιHEHUHuIH (HcHUH}u EpHEHtH@H~QHE8(uHHUHEHtH@|)u0HMHtHIHHuH}ːHuH}YH}ExLH}ϸH}ƸHEHtMEH]UHHd$H}HuHEHxHu讯H]UHHd$H}HuHH}HPE|HEHxuٯEH]UHHd$H}uHEHxu谯H]UHHd$H}HHxWH]UHH$ H}HuHuHEHUHRhHEH}HUHuHH?&HcHUuSHEH}12H=92HUHBHEH}tH}tH}HEHJHEHtlHpH0GH%HcH(u#H}tHuH}HEHP`JL}JH(Ht\M7MHEH]UHHd$H}HuH~HEHUHHHEHx1H}12H}tH}tH}HEHPpH]UHHd$H}HG@H]UHHd$H}uHEHxuЪH]UHHd$H}uHUHEHxHUuȪH]UHHd$H}HG@H]UHHd$H}uHEHxuH]UHHd$H}H@ H]UHHd$H}Hh H]UHHd$H}G H]UHHd$H}HuH}E fDm}|uH}H;EuEH]UHHd$H]H}HuHH;EH}H}trHUHE@BH}7HEHx8H}Ã|:EEEH}HHEHxu!;]H]H]UHH$ H H}HDž(HUHuLDHt"HcHUH1HxHDžp H}cEHEHp5H}>ÃEfEH1H8HDž0 EHHDž@DžX HDžPuH}HH(wUH(HhHDž` H0-5;]loFH(òHEHtGH H]UHHd$H]LeH}HuHuH}9uEhEHEHXH};CuNHEH@@gX|7EEEH}IċuH}I9u ;]EEH]LeH]UHHd$H}HuEEKEH}HH}E|E;EtHEHxUuLEEH};;EH]UHHd$H}uHEHxu0H]UHHd$H}uHUHEHxHUu(H]UHHd$H]H}HuHUHEHBHEHxHEH@HHEHpH={9%tGHEHxazÃ|1EEHEHxuxHHEHx\;]HEHxZH]H]UHHd$H}HuHEH@H;EtHEHxHupH]UHH$ H}HuHuHEHUHRhHEH}HUHuG@HoHcHUuaHEH=hHUHBH=}9rHUHBHEH}tH}tH}HEHBHEHtlHpH0?HHcH(u#H}tHuH}HEHP`B4DBH(Ht~EYEHEH]UHHd$H}HuH~HEHUHHHEHx)*HEHx*H}1*H}tH}tH}HEHPpH]UHHd$H}HuHEHxHu^H]UHHd$H}H1HH]UHHd$H}HHxwH]UHHd$H]LeH}HuHUEHEH@H;EHEHxHu}HuH=w9"teH}wH}ʡHuH},H}HEHÃrEDE܃E܉H}HPHEHHPt4UH}HPHEHHPHuE.;]EEEE;E~HEHuVtڋE;EuEHEHHEHH@ E;E~mH} HEH usHH<H}HEHHHEHHH;E~.HEHuHEHH@ H}@0 H}H}H}hHhH}HEHt H`H]UHHd$H]H}HuHEH HEHHEHH( EHEHx H581sHu EEHEH urHËEUg4HHHEHHUEg4UHEHHHUEg4HEHHEHH@ H}6H}@0 H}A H]H]UHH$`H}HEHDžhHUHuHHcHUHEH(H=Q9-tHEH(Hp H}衇>HEH(t%HEH(HuHEH(H H}1aH}tHuH}1H1tHhH@HpH1HxHEHEHEH0HEHpH}1ɺ越HEHHEHH( HEHpHd1HxHEHHEHH( dHdHHcd!B1HdHh,01Hh謤HhHEH1HEHpH}1ɺ߉HuH}֮=Hh葅H}舅HEHtH]UHHd$H]H}HHHEHH( EHEH tHEHt@@0HEH褫}~HEHt@@0HEHrHEH}@Z}|BHc]HEHHHEHHHHcHH9}@@0HEHH]H]UHHd$H}HuUH}H]UHHd$H}HuHEH(H;Eu H}EH]UHHd$H}HuHEtlH}teH}tXH}1HUH;(t@H}1{HHUHEH(HHEH9uH}1RHH}H]UHHd$H}HuH1HEHE HEHEHEHՈ1HEHE HEH(HEHEH}DH}111H}H}cH}H]UHHd$H}H]UHH$HLH}HEHDžHDžHUHuHHcHUHEHHݡHhH(|HHcH vHEH tHEH fEEEgXiEfEHcEHHHH=1HH譋01H-HHH(1HHEH u^kIHLI$HHHH}1ɺ"HEHHHEHHH;E3HEHHHuHEHHHP4HEHHHUuHEHHH ;]}c@HEHHHEHHHƃHEHHHEHHHHEHHHEHHH;Ek-HEHHHEHHHHEHHۡH}H}H HtmH,H H}HEHt9HLH]UHHd$H}HYH8H=hHE@HUHuH?HcHUu5HuHYYH81IHEH(HH7YH8gH}HEHtsH]UHH$pHxH}@uHEH #HXH8H=hHEUPHUHu5H]HcHUHEHHHEHHHÃ|GEEHEHu詮tHEH urgHH};]HuHWH8GHEH(HHWH8|fH}HEHtHxH]UHHd$H]H}HuHYH8HYHH(H1HHEHEH0H}yHEHtXH}觅HEHu*HW1H=9HH5HHEH0HUHuH}H]H]UHHd$H}HuHUHMHEH H;Eu.HEH(H;EuHEH0Hu衋H HEHUH HEHUH(HEH0Hu{H?VH8HuH*VH8QHEH(HUH5HUH8[HUH5HUH8L[HUH5HUH82\HUH5'HUH8cHUH5HUH8]H}HEHHEHH@ H}H]UHHd$H}HH hH}hHEHtH]UHH$H}HuHEHUHuH:׏HcHUtE@HEHHHEHHHEHH=GZH1H}hrHuH}XHEHHEHHtH@D0 sHEH0H}1Hn1~iHcEHxHHHx#1HH}q01H}eHUHEH0H}1i Dm}|HHEHHUHuHEHHHHuHEH8 u}| EH} gHEHt+H]UHHd$H]H}HHHEH@0HEHHPHEH@0HEHHPHEH@0HEHHPHEH@0HEHHP<HEH;HEH@HEHHPHEH@HEHHPHEH@0HEHHPHEH@0HEHHPHEH1HEHH@ uHEH@HEHHPHEH@HEHHPHEHHEHH( }!HEH1HEHH@ HEHHEHH( u$HEH@0HEHHP"HEH@HEHHPHEHHEHH( HcHEHaHcHH9u$HEH@0HEHHP"HEH@HEHHPH]H]UHHd$H}HiH8t+H_iH8HUiHHHH}z H}1pyH]UHHd$H}E@EEHXiH4H};t }rEEH]UHHd$H}HLiH8t!HuH;iH8H1iHHH]UHHd$H}H iH8t&HuHiH8HiHHH]UHHd$H5H8(oEVuH5H8oH@HEHmH|5H8n;EHh5H8nE}}HM5H8nEfuH.5H8oHEH 5HHH;EH5HHH}HEHumHEHE.HEHHuH=5u֐tHEHEHEHtHUH5HHH;uH}mHi5H8m;EHU5H8mE}H]UHHd$H=/iuH=iH HiH iH]UHHd$HiHEHu1H=h1SH]UHHd$H}HuUHEHxHuHEH@HPEHEHxuHEH@HHu0H=/ijېHHEHxuHEH@H(HEHxuHEH@HUPH]UHH$pHxH}HuHEHUHu+HSΏHcHUHEHxHEH@HÃ|hEEHEHxUHuHEH@HH}Hu׏t$HEHxuHEH@H@E ;]EH}_HEHt*EHxH]UHH$ H}HuHuHEHUHRhHEH}HUHuH/͏HcHUurHEH}1ِH=QIRHUHBHEHx@H֡HEH@ƀHEH}tH}tH}HEHHEHtlHpH0\H̏HcH(u#H}tHuH}HEHP`XNH(Ht-HEH]UHHd$H}HuH~HEHUHHHEHxِH}1ِH}tH}tH}HEHPpH]UHHd$H}uHEHxucH]UHH$pHpH}uHDžxHUHuHAˏHcHUhHEEIuH}dHHxH Hxt}uuH}6HEmEH} ;EHx\HEHt;HEHpH]UHH$pH}HuHDžxHUHu/HWʏHcHUHEHp H} EHEHxHuch}uH}]HEHEx}HEpH} H}Hx HxuHEHpH} HEx}HUHE@BHEHxHujH}אHxZHEHtH]UHH$ H}HuHuHEHUHRhHEH}HUHuHɏHcHUuHHEH=(9+cHUHBHEH}tH}tH}HEHHEHtlHpH0fHȏHcH(u#H}tHuH}HEHP`bXH(Ht7HEH]UHHd$H}HuH~HEHUHHH}H}1ՐHEHxԥH}tH}tH}HEHPpH]UHHd$H]H}HuH}2H}iÃ|8EEH}1HEuH}HH} ;]H]H]UHH$0H8H}HuHUHDžHHDžpHUHuHƏHcHxFH}Hp*XHu1H_1HpYHpH}1EgXEE1ҾH=h HEHpWHEHPHG_1HXHcEH@H@HH@1H@HHa01HH)vHHH`H^1HhHP1ɺHpS[HpHuH} HuH};]HHVHpVHxHtH8H]UHH$0H8L@H}HuHUHDžPHDžxHUHuHďHcHU<EH}ÃEEEH}IHxUHEHXH]1H`HcEHHHHHHH1HHHP_01HPetHPHhH8]1HpHX1ɺHxYHxHuL tE;]DeH}ÃD9DeDEEHxUHEHXH\1H`HcEHHHPHHH1HPHP^01HPhsHPHhH;\1HpHX1ɺHxXHxH}費;]9Hx=THu1H[1HxUHxUH}1蟰HPSHxSHEHtH8L@H]UHHd$H]H}.DHEHx1ZHH>АHEHx1oaHEHx[H]H]UHHd$H]LeH}Ã|1EfDEEH}IL ;]H]LeH]UHH$pH}HuUHMH}SHUHx7H_HcHpujuH}Eԅ}3LEMHUH=hHEHEHxHuM_$uH}OHEH}u HuH}H}9RHpHtXHEH]UHHd$H}HuH7RHUHuUH}HcHUuHuH}1ɺHEUH}QHEHtHEH]UHHd$H}HHxYH]UHHd$H]H}HEHUHuHݿHcHUuJEH}E,fuH}HHuHMH}tEm}}H}PHEHtEH]H]UHHd$H}uHEEH}E|uH}wHEHEH]UHHd$H}HuHPHUHuHݾHcHUu,HEHuH}E|uH}HEH}OHEHtHEH]UHHd$H}uHEHx3XEuH}@;Et m}}EH]UHHd$H}HuHOHUHuߐHHcHUuBHEHxWE'DuH}Hx Hu_Ht m}}H}OHEHt$EH]UHHd$H}HuHEHxHu]H]UHHd$H}HuHEHxu H}1NHEH@H0H}NH]UHHd$H}HuHUHEHBH]UHHd$H}uHUEBH]UHH$ H}HuHUH0NH}uHEHUHRhHEH}6HUHu*ސHRHcHUHEHhH(ݐHHcH uHUH}M11H}HMH HtgHEH}tH}tH}HEHHEHtlHhH ZݐH肻HcH`u#H}tHuH}HEHP`VLH`Ht+HEH]UHH$H}HuHUMLEH}LH}uHEHUHRhHEH}cHUHxܐH跺HcHpHEHXHUܐH}HcHu;HE@H}HU؋EBHEHx HuLHEHUHP/ߐH}KHHtHEH}tH}tH}HEHސHpHtlHXHېH轹HcHPu#H}tHuH}HEHP`ސސHPHtfAHEH]UHHd$H}HuHUHE@BHUHEH@HBHUHE@BHEHp HEHx JHUHE@(B(H]UHH$pH}HuHUHDžxHEHUHuڐH諸HcHUH}HxIHu1HQ1HxnKHxH}1Hu踙HuHEHx JHxIHu1HQ1Hx"KHxH}荚HUB(ݐHxUIH}LIHEHtnސH]UHH$pH}HuHUHDžxHUHukِH蓷HcHUHEx(E}HxHHu1HP1HxIJHxHEHP H}1HxHHu1HnP1Hx JHxHEP(H}ޤېHx=HHEHt_ݐEH]UHHd$H}HHE@B(H]UHHd$H}HuHEH@H;Et=HUHEHBHEHxt&HExtHEHx@HEH@HH]UHHd$H}@uHUEBHExt'HEHxtHEHx@HEH@HH]UHHd$H}uHE@ ;EtHEUP H}@nH]UHHd$H}uHE@$;EtHEUP$H}@.H]UHH$H}HuHUHMH}uHEHUHRhHEH}HUHu֐HHcHxuLHEHEHxHuFHUHEHBHEH}tH}tH}HEHِHxHtlH`H C֐HkHcHu#H}tHuH}HEHP`?ِڐ5ِHHtܐېHEH]UHHd$H}HuHHpHEHxEHUHE@ B HUHE@$B$HE@H]UHHd$H}Hx ~HEx$ ~EEEH]UHH$pH}HuHUHDžxHEHUHuՐH;HcHUHxDHu1HL1HxFHxH}1HuQHuHEHxDHx4DHu1HgL1HxEHxH}1)HUB HxCHu1HQL1Hx}EHxH}1HUB$H}@0(SאHxCH}CHEHtؐH]UHHd$H}HuHUHEHUHuӐH鱏HcHUH}1CHu1HHpHuH};]H}@0HEHc͐HH9Hp9HxHtΐH8H]UHH$0H8L@H}HuHUHDžPHDžxHUHuɐHʧHcHUXH}Hx9Hu1Ho@1Hx:HxH}1ɉgH}nÃEfEEH}4IHx8HEHXHA1H`HcEHHHHHHHHn1HHHPyB01HPVHPHhH?1HpHX1ɺHx#HH}E~HEHxu1}H]LeH]UHHd$H]LeH}HuHH}ÃEEEH}HH} E}3uH}HH=vhqHH}EH} HcHHEHcEHEH;E}HUHUHEHxuuuH}7IċuH}(HL;]4H]LeH]UHHd$H}HuHEHxHuH]UHH$`H}HuHEHUHu♐H xHcHUVH}u*H1H=9蜎HH5H蚛H}0@0|ãunH} H(1HhHEHpH_1HxHh1ɺH} HUH=!9HH5HHuH}HtnH}H1HhHEHpH1HxHh1ɺH} HUH=9蜍HH5H蚚HUH=*h%HEHH}5蠛H}HEHtHEH]UHHd$H}HuHHp H}HEHuH}HEH]UHHd$H}HuHH}HHEHx8Hu_HtHEHx8HuH]UHHd$H}HHuH=:heHUHHEHH]UHHd$H}HuHH}HHEHx@HuHtHEHx@Hu)H]UHHd$H}HuHH}HHEHxxHuoHtHEHxxHuH]UHHd$H}HuHH}H@HEHHuHtHEHHuH]UHH$`H}HuH$HEHUHu:HbtHcHUH}EHcEHUHtHRH9'HEHcUD+t-tuE@EHcUHEHtH@H9HEHcUD0 rу}nH}*H1HhHEHpH21HxHh1ɺH} HUH=<97HH5H5HcUHEHtH@H9HEHcU|%uEHcEHUHtHRH9nH}}HF1HhHEHpH1HxHh1ɺH}oHUH=9芉HH5H舖賗H} H}HEHt#H]UHH$@H@LHH}HuHUHDžPHUHp H2rHcHhHhH8!HXH`HXHEH`HE؋E؋U)ЉE̋E܋U)ЉEHEHx@uHEEHUHEHP@HEH@@HtH@|%urLceHc]HEHH@HtHIHHEHp@HP|HP1ƣHcHH ףp= ףHHHH?HIHUHEHx@1ţEHUHEHxxuHEUHEPHEHPxHEH@xHtH@|%usLceHc]HEHHxHtHIHHEHpxHPHP1>ţHcHH ףp= ףHHHH?HIHUBHEHxx1ţEHUBHEHuHEHMЉEHEHHEHHtH@|%umHc]HEHHtHIHHEHHPHP1bģHcHH ףp= ףHHHH?HډUHEH1)ģE}} EEE/HEHtHEH8+u HEEEEHUEBHEHx8uHEHMPЉEHEHP8HEH@8HtH@|%ugHc]HEHH8HtHIHHEHp8HPHP1VãHcHH ףp= ףHHHH?HډUHEHx81 ãE}} EEE*HEHx8tHEH@88+u HE@EEEHUEB HPgHhHt膔H@LHH]UHHd$H}HHp0H5hHHxIHEHu+HEHp0HhHHxUHEHH}HEH]UHHd$H}HuHEHtHEHHEHvH]UHH$ H}HuHUHH}uHEHUHRhHEH}?HUHu誎HlHcHUHEHhH(sHlHcH u HEHx0HuLHEHǀhH}H HtޒHEH}tH}tH}HEH"HEHtlHhH эHkHcH`u#H}tHuH}HEHP`͐XÐH`Ht袓}HEH]UHH$H}HuHUHMLELMH}H} H}H} H}(H}0H}uHEHUHRhHEH}HUHp݌HkHcHhIHEHPH裌HjHcHHUH}1zHUЊE@BHHuH}HuH}6Hu H}yHu(H},HEHx(Hu0+HEЋU8P HUHEHBHEHBHUHEHBHUHEHHBXHEPHB`H}oH}fH}]H} TH}(KH}0BHHtaHEH}tH}tH}HEH襎HhHtlHPHQHyiHcHu#H}tHuH}HEHP`M؏CHHt"HEH]UHHd$H}HuH~HEHUHHH}1vHEHuH}tH}tH}HEHPpH]UHHd$H}HuHEHUHuUH}hHcHUu:HEHH0HtHIHuH}o H}HEHp0~E3H}HEHt謎EH]UHHd$H}uHEHxu H]UHH$pH}HuHdHEHUHuzHgHcHU|HuH}|kH}H1HpHEHxHI1HEHp1ɺH}HUH=w9}HH5H犐H}iH}`HEHt肍H]UHH$ H}HuHuHEHUHRhHEH}HUHugHfHcHU|HEH=\8rHUHBH=hHcHUu>HELLeHELMt3I]HQLLXcH}ϏHEHteHpLxLmLuH]UHHd$H}uHēHEHuH]UHHd$H]LeLmLuH}@uH0sHEL]HELMtNM,$LP@LAH]LeLmLuH]UHHd$H]LeLmLuH}HuH0HELH]HELMt͐M,$LqPHLAX H]LeLmLuH]UHHd$H}HwHEHEEH]UHHd$H}H7HEEEH]UHHd$H}HHEHEEH]UHHd$H}HuHÑHEHHH}ΏH]UHHd$H]LeLmLuH}HuH0sHELH]HELMtMM.LNHLA H]LeLmLuH]UHHd$H}HHEHEEH]UHHd$H}HǐHEHEEH]UHHd$H}H臐HEH EEH]UHHd$H}HGHEH'TEEH]UHHd$H}HHEHEEH]UHHd$H]LeLmH}H(軏HELHELMt虍I$H=ML( EEH]LeLmH]UHHd$H}HGHEHEEH]UHHd$H}HHEHEEH]UHHd$H}uHĎHEHufH]UHHd$H}@uH胎HEHUH]UHHd$H}@uHCHEHUH]UHHd$H]LeLmLuH}@uH0HE:EtK@uH}HEL]HELMt讋M,$LRK@LAH]LeLmLuH]UHHd$H}HuH}ɏHpZHUHuYH7HcHUuHEHHu!\H}ɏHEHt%^H]UHHd$H]LeLmLuH}fuH0ӌHEL]HELMt譊M,$LQJLAH]LeLmLuH]UHHd$H}HgEgEHEH]UHHd$H]LeLmLuH}uH0$HEL]HELMtM,$LILA` H]LeLmLuH]UHHd$H]LeLmLuH}@uH0裋HUEHEtHEuHELHELMtPM,$LHL@Ax H]LeLmLuH]UHHd$H]LeLmLuH}uH0HEL]HELMtψM,$LsHLAh H]LeLmLuH]UHHd$H}HuH}ƏHpzHUHuVH4HcHUuHEHHuYH}#ƏHEHtE[H]UHHd$H}HuH}6ƏHpHUHuHVHp4HcHUuHEHHuQ)LYH}ŏHEHtZH]UHHd$H]LeLmLuH}uH0tHE@PuHUE>HELDeHELMt0I]HFDLHH]LeLmLuH]UHHd$H]LeLmLuH}fuH0ӈLeLmMt迆I]HcFLf;EtKuH}㨭HEL]HELMtmM,$LFLAH]LeLmLuH]UHHd$H}HuHUHHEHEHU耺H]UHHd$H]LeLmH}H ۇHELHELMt蹅I$H]ELH]LeLmH]UHHd$H}@uHsHEH@uoAH]UHHd$H]LeLmLuH}uH0$HE;EtHUEH}hǫH}HEt tGHELAHELMt评I]HSDDLBHELAHELMtmI]HDDLH}jͫH]LeLmLuH]UHHd$H}uHHEHuIH]UHHd$H}@uHӅHEH@u/H]UHHd$H]LeLmLuH}@uH0胅HEL]HELMt^M,$LC@LAp H]LeLmLuH]UHHd$H}@uHHEH@uH]UHHd$H}@uHӄHEHu@H]UHHd$H]LeLmH}HuH0臄HELHELMteI$H BLHEHEHHuhHELHELMtI]HALH;EtHEHHuH]LeLmH]UHHd$H}HuH賃HEHHuH]UHHd$H}HwHEHu]HEHuHEHHuHEHEHH@ HH9tHEu H}H]UHHd$H]LeLmH}H ۂHEHdHE@Pt7HELHELMt螀I]HB@LH]LeLmH]UHHd$H}HWHEHuHEH HuHEH]UHHd$H}HHEHuHEHHuHEH]UHHd$H}HuHUH证HEH(u!HEH0HMHUHuHE(H]UHHd$H}HWHEH8uHEH@HuHE8H]UHHd$H}HuUMH HEHHu$HEHPDEMHUHuHEHH]UHHd$H}HuUMDELMHH蕀HUHEHXHEЀ8u0HEH$HEH`DMDEMHUHuHEXH]UHHd$H}H'HEHhuHEHpHuHEhH]UHHd$H}HuUMH HEHxu$HEHDEMHUHuHExH]UHHd$H}HwHEHuHEHHuHEH]UHHd$H}H'HEHuHEHHuHEH]UHHd$H}HuUH~HEHu HEHHUMHuHEH]UHHd$H}HuHs~HEHuHEHHUHuHEH]UHHd$H}HuUH ~HEHu HEHHUMHuHEH]UHHd$H}؉uUMDEH(}HEHu'HEHDMDEMUHuHEH]UHHd$H}؉uUMDEH(J}HEHu'HEHDMDEMUHuHEH]UHHd$H}H|HEHuHEHHuHEH]UHHd$H}H|HEHuHEHHuHEH]UHHd$H}uUMH >|HEHu#HEH DEMUHuHEH]UHHd$H}؉uUHMLEH({HEH(u'HEH0LMLEMUHuHE(H]UHHd$H}uHUHMH l{HEH8u$HEH@LEHMUHuHE8H]UHHd$H}uHUHMH {HEHHu$HEHPLEHMUHuHEHH]UHHd$H}HuHzHEHhuHEHpHUHuHEhH]UHHd$H}HuHczHEHXuHEH`HUHuHEXH]UHHd$H}HzHEH7PH]UHHd$H}HuHyHEu&HEHH}JIH}@^ݭH]UHHd$H]LeLmH}H({yHELHELMtYwI$H6L EEH]LeLmH]UHHd$H}HuHUHxHEHHUHuH]UHHd$H}uUHxHEHUuH]UHHd$H}HxHEH+H}H}IHU;uHEH}H]UHHd$H]LeLmH}H xHELHELMtuI$H5L H]LeLmH]UHHd$H]LeLmLuH}@uH0wHEU}uH}5tHELHELMtWuM,$L4L@Ax HEt3LeLmMtuI]H4LuHELHELMttM,$L|4L@APH]LeLmLuH]UHHd$H]LeLmLuH}uH0tvHEL]HELMtOtM,$L3LA H]LeLmLuH]UHHd$H]LeLmLuH}uH0uHEL]HELMtsM,$Ls3LA H]LeLmLuH]UHH$pHpLxLmLuH}HuH}蝱H^uHUHuAHHcHUu>HELLeHELMtsI]H2LL DH}ݰHEHtEHpLxLmLuH]UHHd$H}uHtHE;Et%HUEHE@Pt H}H]UHHd$H}@uHCtHEH@uЫH]UHH$pHpLxLmLuH}HuH}HsHUHu,@HTHcHUu>HELLeHELMtqI]H71LL CH}]HEHtDHpLxLmLuH]UHHd$H}H'sHEHCHH0H5&0H=|hjTHH̼0H550H=|hITH]UHHd$H}HrHEHtHEHt=HEHH襛HEHHHEt?HEHHHETHEHH訚=HEHHHEHHHEiH]UHHd$H]LeLmLuL}H}H@qH]LeMtoM,$L#/HA0 HUHUIIMLHtEoHIL.LLHUA$HEHEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}H@pH]LeMtnM,$Lc.HA( HUHUIIMLHtnHIL'.LLHUA$HEHEH]LeLmLuL}H]UHHd$H}H'pHphHEHEH]UHH$HLLLLH}HuHUH oH}t+LmH]HtmILN-LAT$hHEH}tHUHu;HHcHxaHEHEƀH]LeMt1mM,$L,HA HUHH]LeMtlM,$L,HA HUHHUH}H':HUHE苀X XHEH@KҭHEǀLuAH]HtslL#L,DLA$XHEǀHEƀHEƀH}@H}@ʫHEƀHEǀH]HtkL+L+H]HtkL#L+LA$H HH]HtkL+LL+LeMtkI$H0+LHLuALeMtOkM<$L*DLAAHELAHEHHtjL#L*DLA$HEHHMHHHHELLuHEHHtjL#L=*LLA$`HELAMLHt\jL#L*LDA$@Lϭ@L]ЭAƇLCAMLHtjL#L)LDA$x HEHIIHUHvIIHEHIIHEHI I(HEH I0I8HEHI@IHHEH9IPIXHUHIpIxHEHI8I@HUHI(I0HUHIIHEHHLLAHEHUHEHEHuH}iHUHEHHEHHUHEHXHEH`HUHEH8HEH@}u H}z@uH}}tEH}gH}(H}u&HEqHH}HEHEHEHuH}H]LeLmLuL}H]UHHd$H]H}EH0NZEtKEEKEHcEHH HHHH-HH9vXHEHLHcMH*HHH?HHHH-HH9vWHEHHEH:HEuHcEHHHHc]H)qWHH-HH9v]W]HcEHHHHHgfffffffHHH?HHHH-HH9vWHEH>HcMHHHHH?HHHH-HH9vVHEHHcEHHHHHH-HH9vxVHEHHcMHgfffffffHHH?HHHH-HH9v+VHEHiH]H]UHHd$H}HuHUHWHEƀHUH5H4H8.HEH]UHHd$H}HuHsWHEƀHEƀHUH52HK4H8-HE@H}H]UHHd$H}HuHWHEH$HEt H}OH]UHHd$H}HuHVHEHGH]UHHd$H}HuHUMH(|VEtPEHEff= r*f- tf-tf-t H}H}E}u HEfH]UHHd$H}HuUMDEH@UHEH=.wYHHHHEHHE̊EEEHuH=vYHHEHHEHEԈH]UHHd$H]H}HuH ?UHEu9HEHHcHkqpSHEHHcHkqSSHqISHH-HH9vR]}|E};E;H}@?HcEHHHHHH-HH9vRHEHHcMHgfffffffHHH?HHHH-HH9vBRHEHHEHH50HEHHcHkq7RHEHHcHqRHH-HH9vQ]}|E};E;HcEHHHHc]H)qQHH-HH9vbQ]H}@HcEHHHHHgfffffffHHH?HHHH-HH9v QHEH7HcMHHHHH?HHHH-HH9vPHEHHEHH50o߭H]H]UHH$HLLLLH}@uH`RHDž HUHu]HHcHUHEHƀHpH0HFHcH(}uEHEHH5/0ޭHEHHELAHEHHtEOL#LDLA$ HEHHcHqlOHHHH9vOH}|EfDEEHEHHcHqNHHHH9vNH}EEEH@J9@HDžHcUHkqNHcEHkq}NHqsNHHHHDžHHH50H dH HHELDu]HELMtMM,$L? DLHA ;E~ ;E~0HEHH5ʙ0=ܭHEH HELAHEHHtML#L DLA$ HEHGHcHq'MHHHH9vLH}lEEEHEHHcHqLHHHH9vaLH}EEEHH9@HDžHcUHkqLLHcEHq>LHHHHDžHHH5q0H bH HHELD}]HELMtfKM,$L DLHA ;E~;E~H}HEUHEHH}jHEH@2~H(Ht\H 谈HEHtHLLLLH]UHHd$H]LeLmH}H [LHELh`HEHX`Ht?JIL LA$H@H}vH]LeLmH]UHHd$H]LeLmLuH}H0KEHEH0HcHqJHH-HH9vI}lEfEELceHEHu萬AMcMqIIqILH-HH9vHIDm;]~HEHLE=vI]HEHLMtHM,$LLAEHEHHcHqHHH-HH9vH}pEfDEELceHEHuxAMcMqHIqHLH-HH9v0HDm;]~HEHLE=vH]HEHLMtGM,$LgLAHEHuH]LeLmLuH]UHHd$H]H}H0cIHEHHcHk qGHEHHcHqGHH-HH9v-G]HEufHEHHcHkq>GHEHHcHkq!GHqGHH-HH9vF]YHEHHcHkqFHEHHcHqFHH-HH9v_F]E=vMF]E=v:F}5/EEH]H]UHHd$H}HuEH(GHUHEHHuH}"EH}4H]UHHd$H]H}HuH8oGHuHt4H8HH]HEHUHEHEHEHEHEHcHcEHq{EHcUH9CHEHcHc]H)qWEHH-HH9vDH}$E;E|uH}g uH}YHEHcHcEHqDHcUH9HEHu_HEHHcHc]H)qDHEHcH)qDHH-HH9v@DH}AHEHcHc]H)qZDHH-HH9vCH}貜$E;E|uH}蚜 uH}茜HE;E|H}=HE;E|H}NH]H]UHHd$H}HGEHEHu"H}HEHHuHEHEt H}m H]UHHd$H]LeLmH}uH(DHEHH520EuHEH0H}H+0EuHEH0H}H,0EuHEH0H}H-0ЁLeM,$HEHHtH[HHH9v1BHI<$赐A|,t HEH0HtHvH}HKHEH0H}Hԏ0OH]LeLmH]UHHd$H}uHCUHJhH4H}H]UHHd$H}HuHUHMH(;CHEH;EtHEH;EtEEEH]UHHd$H}HBHE@`EEH]UHH$HLLH}HuHUHMH}~HBH}t)LmLeMtj@LHLShHEH}toHUHuHHcHxHEH`H [HHcHu>H9HEHpH}9HEHx@Hu~HUHE@BH2H}}HHtHEH}uH}uH}HEHHxHpH`H  HHcHu%H}uHuH}HEHP`HHt_:HEHLLH]UHH$HLLH}HuHUHMHp@H}t)LmLeMtS>LHLShHEH}tHUHu~ HHcHxubHEHUHEHBHHEHBPHMHH}HvHEH}uH}uH}HEH1HxHpH`H  HHcHu%H}uHuH}HEHP`^HHtHEHLLH]UHHd$H}HuHUHMH(>HEHxPHUHuHEPHE܋EH]UHHd$H}HuH}zHp>HUHu HHcHUuHEHHuz H}3zHEHtUH]UHHd$H}HuH>HEHH}_zH]UHHd$H}HuHx=HEHUHu HAHcHUuWHEHu3HEHH}ҎHuHEHH}zHEHH}y H}1yHEHtSH]UHHd$H}H=HEEEH]UHHd$H}HuHLeMt7I$HHHu\HuHEHHuHEHHu2uHEHBHEHtH}iHEHHH}iOHuHEHtHEHHUH*HEHEH5HU艂HEHHEHtH}HaH}@ŦH}@HEHuHEHHEH9YH}sHEHtH`LhH]UHH$PH}uHn7HEHUHuHHcHUHE ;EtHUE HE@PuHuH}$HhH(@HhHcH )H}]KHEH-HEHtH}THEHHEHH=HEH}@H}@QHHHHcHu HuH}$HHthH=hHtRHHH`5H]HcHXuJHXHt)(H}oJH Ht H}`qHEHtH]UHH$`H}uH.5HEHUHutHߎHcHUbHE;EtLHEUHE@Pu+HuH}y"HpH0H)ߎHcH(H}IH}H HHHގHcHu HuH}3"HHthH=hHtRHHHhRHzގHcH`ugH`HtF!EH}HH(Ht&H}}oHEHtH]UHH$PH}HuHUHI3HEHUHuHݎHcHxHEH( H0 H}HuuHUHEH( HEH0 HE@PuHE胸 uHuH}` H`H HݎHcH)H}GHEHHEHtH}HEHHEHHHEH}@ŠH}@HHAHi܎HcHu HuH}IHHthH=>h1HtRHHHXH܎HcHPuHPHteH}FHHtFH}mHxHt'H]UHH$ H}HuH0HDž HUHu HHێHcHUeHuH}۹E}tHH}sEH}@DHH} EHpH0HڎHcH(HE ttGH}ҸHUH}H H HuH}EoH}vt-HUH}H H HuH}xEE-HUH}H H HuH}EE@uH}3GH}5DH(HtdH #kHEHtEEH]UHHd$H}HuHx.HE@PuHE tlH}gCHUHuH=َHcHUu"H}ɚEH}-Ѹ@uH}@ H}RCHEHtHuH}ٹH]UHH$HLLH}HuHUH.H}t)LmLeMt+LHLShHEH}tGHUHu"HJ؎HcHUHEHUH}H?/HEH HiHEƀ HEH H5y0iHEǀHEǀHEH}uH}uH}HEHHEHpHhH(EHm׎HcH u%H}uHuH}HEHP`?5H HtHEHLLH]UHHd$H]LeLmH}HuH(7,H})LeLmMt*I]HLH}HH}H%6H}uH}uH}HEHPpH]LeLmH]UHHd$H}HuH(+HEHEHEHEHEHp HEHx >EEH]UHHd$H}HuH(C+HEHEHEHEHEHU؊@H:BHtHuH}dEHExHu EEEH]UHH$0H8L@LHLPLXH}HuUHMDEDMH}fH*H;9HH}HDžpHDžhHDžxHDžH0HHԎHcHHhH`HuHtHvH}HSHEHtH@HAH]LeMtMd$LHH9v'LH}IvB|#;tHuH[HtH}H5 v0eHuH;yH }t ƅ|ƅ||u}xxpHEHheH`A;IHJHHJIMt&MLfHLD`AHhDpAH`HHHҎHcHDHDžXE؃tt-tKsHtHH=ha]HXPHHH=sh>]HX-H}u"HMHUHH=FhHXE|u1HuHxƐHxHpH$t0e,HuHx蕐HxHUHpdH]H59H6HHp2L5LHLAXHHuHHMHHHHHwHX܏Hx`H`H}_H5ā9H}Hp_Hh_HHtH8L@LHLPLXH]UHHd$H}HuH#HEHH5o0_H]UHH$pHxLeH}HuH2#HEHUHuxH͎HcHUwHEHuHEHH}=_(LeMt I$HoHHuHEH8uHEH0H}NjHuH}^H}l^HEHtHxLeH]UHH$PH}HuHUMLEDMH}T^H"HUHh`H̎HcH`u3HHHT$H$DMDEHMЋUHuH}BH}]H`HtH]UHHd$H}HuHp!HEHUHuHˎHcHUHEHu"HEHHUHuHEE]HUHuH} HEt-H}uHuHNuEE H}E;H}\HEHtEH]UHH$HLH}HuH@O H~9HH}\HDžHDžHUHHqHʎHcH@lEH(H;HcʎHcHEHEH@u EEH]H5P}9HIHi[HuHpHHk0H\HuLH4EzEu_H}H5k0jHuHH}H5k0jHu1EE}uHEH@tEH}4E}|5H}茢HHtHjZH^ZH5'|9H}^H@HtmEHLH]UHH$HLLLLH}HuHUH}ZHPHDžHUH`HEȎHcHXEHE@PuHH=78HEHEHH@HHǎHcHgHEƀHUH0 HD$H( H$HED HE؋HMH}AH5i0H]LeMtM,$LmڎHAELmLeMtI$H<ڎLHcHqHHHH9vuH}qEDEЃEEDmH]LeMt M4$LَHDAILHMH}HSHs@}uD}LuLH]HtL#LRَLLDA$HHEHHuHڸHEH$y9IDmLuH]HtIL#L؎LDA$HxHEHLDmLuH]HtL#L؎LDA$Hp@H}+;E~VH}MӏHEHmHHt'H{VH}rVHXHtEHLLLLH]UHH$pHxLeH}HHEHUHu\HĎHcHU/HE@PuHEH@ոLeMtI$HT׎HHuH}uLeMt|I$H ׎HHuHUHEHHظHEH}@LeMt)I$H֎HHuqHUHuH}H}@~H}yH}6mHEHEHuH}u HUH}HuHuH}iH}u*HUH}HuHuHEHH}s tTHEHxHDžp HpH٢@HPIHH=h٤HH5HHEHx`u+HEHP`H}Hu'HuHEHHEHHuH}RH}RHEHtH]UHHd$H}HuHUHMH HEH u%HEH LEHMHUHuHE H]UHHd$H]LeLmLuL}H}HuHUHMH`'HE u]HEHP`HUHEHEL}LuH]HEL``MtMLӎHLHMMH}AHEHUHMHuH}FHEHEH]LeLmLuL}H]UHHd$H]LeLmH}H([HE u6HELh`HEL``Mt0LHҎLHE H}tHEHEH]LeLmH]UHHd$H}HuHUHHEHUHuH:HcHUH}usHuH}H}YuHEH0H}eHuH}PHEH8Jt&H}HuHuHEHH}QH}HlPH}OHEHtH]UHH$pH}HuHHEHDžxHUHuߏH HcHUHEH͸tH}t:HEH]ܸH;EtH}HxHxuEEH}t0H}HxHxuHEH۸HE}uRH}uHEHH}O HuH}NHEHH5_0NHuH} H}@|xHx[NH}RNHEHttH]UHHd$H}HuH#HEH7gHHuH}H]UHH$HLLLLH}HuH}MHPHEHEHDžPHDžXHUHhݏHHcH`k H}HMH}HXHXu"H}HXHXH}`bH}H^MH}jH}H5n]0\HtSHEHtH@Ht:H]HH}a]{:tH]HH}E]{/tEEH}vt|HXQLHUHuйHXMHXH uTHPLHUHuйHPMHPHHX&HXH}DLHuHHP&HPH tHXKHUHuйHXMHXHHPQ&HPHHHDž@ H@Hښ@HPIHH=ɂhѤHH5rHzݏHuHHP%HPH}SKfHuHE tTHEHHHDž@ H@HK@HPIHH=:h=ѤHH5H܏H}t(H]HfJIHuH}uEE}_H}uRHEHtH@H9H]HH}Z;.tH]HH}Z{.tjHEH(HDž HEH8HDž0 H H_@HPIHH=.h1ФHH5HۏH}tH}t HuH}IH}t:HEHWָHEH}uH}@tH}@u,HEt|HuH|ujHEH8HDž0 HEHHHDž@ H0HL@HPIHH=;h>ϤHH5HڏHH=&8HEH}/gH}@ HuH}辂H]LeMt: M,$LɎHAL}ALPH]Ht L#LɎLDLA$HPt@L}HNX0IAH]Ht L#LRɎDLLA$ H]LeMt} M,$L!ɎHA&LmH]HtI L#LȎLA$HcHq HHHH9v% ALuLPH]HtL#LȎLLDA$HPtH]LeMtM,$LLȎHAAMcIqLH-HH9vLmH]HtPL#LǎLDA$H]LmMt#MeLǎHA$tH}H}H8H7֏H_HcH0HEHҸHEH}HP9HPuH}uH}@HEH]LeMt`M,$LǎHAHcHqHH-HH9v=H}EDE܃EDH}@yHEH}uoDmH]LPLuMtM>LUƎLHDAHPHUHXHHXHLTHuxH}u*H}@ pH}@pH}@Q~HE;E~!׏H}H}H0Htُ|׏HPCHXCH}CH}CH}CH`Ht؏HLLLLH]UHH$HLLLLH}HuH}pCHH1HEHDžHDž`HUHx^ӏH膱HcHpTHEHpH}3t E4H}{EEtHEHhtEE}tHuH`sXH`H}BHuH`UH`H}BHH= 8谒HEHHHtҏH蜰HcHhKH}@螂H}ؾ/paHuH}C|H}H#BLeLmMtI]HSÎLHcHqHH-HH9vH}EDEE}t=D}LuLmH]HtL#LŽLLDA$~HEHHpQ0HDuLmLH]HtL#LgŽLLDA$HHHH}HDH}tHEHPHuH}AH}tRHEHtH@H9H]HH}P;.tH]HH}P{.t:H} E}u&EHEHtE;E~g:ӏH}1HhHtԏӏHo?H`c?H}Z?H}Q?HpHtpԏEHLLLLH]UHHd$H}HuH}6?HxHUHuHϏHpHcHUuE\ҏH}>HEHtӏEH]UHH$pH}HuH}>HtHUHuΏHꬎHcHxuCEH} E}t)HEH@tEEEяH}=HxHt ӏEH]UHHd$H}HuHUHHEH@HʸH;Et>HEHxu1HExtH}H=HEHpH}=HEHH}=H]UHHd$H}H'HEH{۹H]UHHd$H}HuHHEHUHu6͏H^HcHUHEHH;EtHEHu.HEHHEHEHǀH}HHUHEHHE@Pt H}\H}uVH}PUHH}Hu0HuHEHlHE@Pu*HEHHH#HHtH}tHEƀHEHcHH=e8pHEH0H4ÏH\HcH[HEƀHHHD$H$HEHHHaHHHEDHE苐HEHHMAkH]LeMt7M,$L۳HAHcHqqHHHH9vH}rEEEEDmH]LeMtM4$LOHDAILHMH}HSHs@ }uHEHLHEHuH=[huOHR9IDuLmH]Ht L#LŲLDA$HxHEHpPLD}LuLmH]HtL#L|LLDA$HEHH]HHUH}2LuLmH]HtsL#LLLA$ DuLmH]HtBL#L籎LDA$H@HEHuH}褫H}|H]LeMtM,$L蕱HAIH}HHHHH9HLNHHHDž HH~@HpHHHNLHMLHt5L#LڰLLA$P(H}|LeLmMtI]H蘰LIHUHH?H%HH HHHHHHHH8HH.MHHHHDž HHW}@HpHH0LMLHtL#L輯LLA$P LeLmMtI]H良LIHUHH?H%HHHHHHHHHH7HHLHHHHDž HH(|@HpHH!LMLHtL#L譮LLA$PH]LmMtMeLHA$IHuHALMLHtL#L=LLA$PHE耸uHE胸\tVH}RHtAHuH}zALuH]Ht#L#LȭLDA$cHE胸\uTH}RHt?HuH}ALmH]HtL#LcLDA$HEH0uHEH8HUHuHE0;E~H};꾏H}᧏HEHHHtP軾H+H+HH*H}*H}*HPHtHLLLLH]UHH$pHpLxLmH}HHEH_|H}OHHeuHEtrH}'EH}+IHUHuiH葘HcHUHE|H}NHHcMHk2qH ףp= ףHHHH?HILH=vDHTiH}NHHcMHkqH ףp= ףHHHH?HILH=vVDHhH}HNHHcMHkFqfH ףp= ףHHHH?HILH=vDHhH}MHHcMHkq H ףp= ףHHHH?HILH=vDHDhH}MHLceH}MILc%I)qH}YMIL~c%I)qoLeH}| ILeLH=vDHgeH}HHEHt޼HpLxLmH]UHHd$H}HHEHKHEuH}SHEƀH]UHHd$H]LeLmLuL}H}H8#HEHuH} EHEQHELIH+QhHH!QhIMtMLwHLLA8HEHEH]LeLmLuL}H]UHHd$H}HwHEH軐H}H]UHHd$H}@uH3HE:EtHEU}u H}RH]UHHd$H}HuHUHMH HEH u%HEH(LEHMHUHuHE H]UHH$PHXL`LhLpH}HuHUHMHDžxHEHUHu舵H谓HcHUucLuLeLmMtI]H衦LLH]HEHHxQHxH}HB&=Hx$H}$HEHt誹HXL`LhLpH]UHHd$H}HGHEHK!H]UHHd$HHChHEHOhHEHuHH=50H]UHH]UHHhHH=]hڏH]UHHd$H}HuHUHMLEH0EEHEH]UHHd$H}HWEEHEH]UHHd$H}HuHUMH(EEH]UHH=hu,HtHH5"hH=k-hǎhH]UHH=hu,^HtHH5BhH=7h>hH]UHHd$H}HHx1ҾH=UHUHUHBHEHx RHEH@HEHxQE EEHuHEHxHEH@HHEH@H]UHHd$H}HHx1ҾH=׹UHйUHUHBHEHx@RHEH@HEHxEQEEE HuHEHxHEH@HHEH@H]UHHd$H}HHx1ҾH='UH UHUHBHEHxQHEH@HEHxPEE$E0HuHEHxHEH@HHEH@H]UHHd$H}H@8x Ed:H@8 E"H@*H410^H-HkdEEH]UHHd$H}uHUHHUHuH:HcHUuUHuH}? EH}nHEHt萴EH]UHH$HH}HuUH}iHUHp脯H謍HcHhH}EHEHPH>HfHcHHM؋UHuH}EH}tf*E*M^ŰuЋ};ËŰuЋ};HUHuH}A HE}u/HE%˱H}šHHtHt;HDžHE葱H}HhHtHEHH]UHHd$H}HuH~HEHUHHHEHx)HEHxHEHxH}1ęH}tH}tH}HEHPpH]UHHd$H}HuUMLEL8|HE8( HE H]UHH$H}HuHUMH}HUHu:HbHcHxvUHuH}PHEH`H HHcHuHuH}HEHH}똏HHtjկH},HxHtKH]UHH$H}HuHUMH},HUHxGHoHcHp}EUHuH=XhSHEHXHHHcHuHuH}1EH}HHtpۮH}2HpHtQEH]UHH$pH}HuHUMH},HUHuJHrHcHxuHcHxHEHEEfDHpdHEHXH)0H`HcEHHHHHHHAԎ1HHHPL"01HP6HPHhHX1ɺHpHpH}tHUHHEH8},~6HcMH ףp= ףHHHH?HHHHHuEdHcEHH?HHE܃}dHuH}HUHEdHEH0H=!@HEH8HEHH8saHEH8HHEH8HEHHƒ1HHXHEH8FHEH8@HEHH`7HPHpHxHt螫EH@H]UHHd$H}uHUHtHUHu蒦H躄HcHUuUHuH}HE薩H}HEHtHEH]UHHd$H}uHUHHUHuH:HcHUuUHuH}/EH}nHEHt萪EH]UHH$pH}HuUH}pHUHu莥H趃HcHxu.uH}LHEHtHuH}KEEuH}HxHt멏EH]UHHd$H}u |> t tt -H}/HE&H}HEH}qHEHEHEH]UHHd$H}HuUH}cHUHu聤H詂HcHUuUHuH}E膧H}HEHtEH]UHH$HLH}HuHUMDEEZEEH$0H$0E䒥t(HuH=|@0tHEHEHEH=$@H@xHEHUHPvH螁HcHH3HEHEHEHuH=~@譇H}HEH(ttH}HEHH}H(H}1HgH}H}H}HEH(@H}HEH`UH}HEHH}-H(HgH}H}@HEH`UuH}HEHH}HH}ILI$hH8H@H8H@HHxH}HEH*YEH-H}HEH0*YEH-11JH8H@H8HEH@HEHcEHcUH)HH?HHHcEHcuH)HH?HHH}MH}HHMHuHUHHhTHHHtcH HH(HcH@uH}HE营H@Htڦ赦HEHLH]UHHd$H=}uH=}hH)Hb}H[}H]UHHA}H]UHH=%}PH}H]UHH$HLLH}Hu}ӏH}u'LmLeMudяLH LShHEH}HUHu蒟H}HcHUupHEH}1\EDEH=I HMUHр}rHEH}tH}tH}HEH:HEHtlHhH(鞏H}HcH u#H}tHuH}HEHP`塏pۡH Ht躤蕤HEHLLH]UHHd$H]LeLmH}Hu0яH}~'LeLmMuϏI]HtLE@EHEUHЀ(}rH}1gH}tH}tH}HEHPpH]LeLmH]UHHd$H}HuHUM .яHEHMHuHUCH]UHHd$H}HuHUM ЏHEHMHuHUH]UHHd$H}HuHUM ЏHEHMHuHUH]UHHd$H}HuHUAЏHMHUH}1H]UHHd$H}HuHUЏHMHUH}KH]UHHd$H}HuHUϏHMHUH} H]UHHd$H]H}uHUHM@zϏHEUHЀHcHq͏HH-H9v`͏|GEDEHEUHЀuEHEHUHMH}HUHuU;]H]H]UHHd$H}HuHUΏHEHHuHUH]UHHd$H}HuHUΏHEHHuHUH]UHHd$H}HuHUAΏHEHHuHUiH]UHH$HLL H}Hu͏H}u'LmLeMuˏLHyLShHEH}HUHuH*xHcHUu:HEH}1蜄HEH}tH}tH}HEHHEHtlHpH0菙HwHcH(u#H}tHuH}HEHP`苜聜H(Ht`;HEHLL H]UHH$HLLH}Hu}̏H}u'LmLeMudʏLH LShHEH}HUHu蒘HvHcHUu]HEEEH=IHMUHD}rHEH}tH}tH}HEHMHEHtlHhH(H$vHcH u#H}tHuH}HEHP`胜H Ht͝訝HEHLLH]UHHd$H]LeLmH}Hu0ʏH}~'LeLmMuȏI]H脈LE@EHEUH|}rH}1JH}tH}tH}HEHPpH]LeLmH]UHHd$H}IʏH}HEHx8HuoH]UHHd$H} ʏHEHx`tHEHxhHuHEP`HEHxHuH]UHHd$H}ɏHEHx HuHEHx@tHEHxHHuHEP@H]UHHd$H}@u(eɏHEHxptHEHxxUHuHEPpHEHx(ǺE(fHEHx(uPHEHUUHuH}UHEHx(HuɺuH]UHHd$H}@u(ȏHEHx0XE)HEHx0uHEHUUHuH}UHEHx0HuYuHEHxPtHEHxXUHuHEPPH]UHHd$H}HuHUM .ȏHEHxMHuHUFH]UHHd$H}HuHUǏHEHxHuHUH]UHHd$H}HuHUM ǏHEHx MHuHUƾH]UHHd$H}HuHUqǏHEHx HuHU蜼H]UHHd$H}HuHUM .ǏHEHx(MHuHUFH]UHHd$H}HuHUƏHEHx(HuHUH]UHHd$H}HuHUM ƏHEHx0MHuHUƽH]UHHd$H}HuHUqƏHEHx0HuHU蜻H]UHHd$H}HuHUM .ƏHEHx8MHuHUFH]UHHd$H}HuHUŏHEHx8HuHUH]UHHd$H}ŏӏH]UHHd$H}ŏӏH]UHHd$H}HuHUH}xHŏHUHu薑HoHcHUu>ӏ詔H}HEHt"H]UHHd$H}HuHUH}xďHUHuH>oHcHUuҏ)H}HEHt袕H]UHHd$H}YďtҏH]UHHd$H})ďDҏH]UHHd$H}ÏҏH]UHHd$H}HuÏяH]UHHd$H}HuÏяH]UHHd$H}iÏяH]UHHd$H}Hu5ÏPяH]UHHd$H}HuÏ яH]UHHd$H}HuЏH]UHHd$H}HuЏH]UHHd$H}uHUrЏH]UHHd$H}HuE`ЏH]UHHd$H}Hu0ЏH]UHHd$H}HuЏH]UHHd$H}HuϏH]UHHd$H}HuϏH]UHHd$}HuEH}HHtH@HEHcEHHEH5hHMUH}H<к^UH}HHcEHMH H]UHHd$H]}HW}HHtH[HH|,EEEH"}HHcU;]H]H]UHHd$H}HuUЃruH}@HEHHEHEHEH]UHHd$H}؉uHUHMDEHU؋EH|xuH=IwHU؋MHDxHE؋UH|xMHuHUH]UHHd$H}uHUHMHUEH|xHuHUϴH]UHHd$H}HuHEHxhHu> HtHEHxhHuH]UHHd$H]H}uHE@`;EtlHE@`EHEUP`HEH0茰Ã|?E@EHEH0uHEHUH׋MUHuU;]H]H]UHHd$H}uEHUEH|xH}EDuH}茪HEHUHuH}UȉEu E}tEHuH}uEH]UHHd$H}uHUEHEHp5HUEH|xH}`EDuH}HEHUHUHuH}UE܃u E}tEHuH}JuEH]UHHd$H}uHUHUEH|xH}ǮE8fHEuH}MHEHUHUHuH}UȉEHE8uHuH}轮uEEH]UHHd$H}uHUEH|xHuH]UHHd$H}uHUHUEH|xHu跶H]UHHd$H]H}HuEHEHnHEH­Ã|UEfEHEHu9HEHUHHuU؉Eԃu E}tE;]EH]H]UHHd$H}HuHUMHEH H}$E-uH}謧HEHUȊMHUHuH}UHuH}%uH]UHHd$H}@u@H} HUH HH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuH:eHcHUuTHEHzhHEHHE@sHUH}1RȠHEH}tH}tH}HEH։HEHtlHhH(腆HdHcH u#H}tHuH}HEHP`聉 wH HtV1HEH]UHHd$H}HuH~HEHUHHEEHUEH|xp}rH}1ȠHxhHH}tH}tH}HEHPpH]UHH$pH}HuHUHMDEH}7HUHxRHzcHcHpu'DEHMHUHuH}M1HEHE@H}HpHt趉EH]UHHd$H}HuHU؉MDEDMED$ED$Eȉ$DMDEЋMHUHuH}HEH H]UHH$pH}HuHUH0HUHuNHvbHcHUu-HxHUHuH}E1IHEHE9H}HEHt貈EH]UHHd$H]H}uHUMHEUH|xÃ|=E@EHEUH|xuXHEHUH׊UHuU;]H]H]UHHd$H}HuHH}~H]UHHd$H}HuHH}NH]UHHd$H}HuHH}H]UHHd$H}HuHH}H]UHHd$H}HHSH]UHHd$H}HuEEHEUH|xHu_}rH]UHHd$H}HuHUMHUHMH}1ApH]UHHd$H}HuHUHEHMH}1HH]UHHd$H}HuHUMHUHMH}AH]UHHd$H}HuHUHEHMH}H2H]UHHd$H}HuHUMHUHMH}A}H]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUMHUHMH}AH]UHHd$H}HuHUMHUHMH}AH]UHHd$H}HuHUMHUHMH}A}H]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUHEHMH}HrH]UHHd$H}HuHUHEHMH}H2H]UHHd$H}HuHUMHUHMH}A}H]UHHd$H}HuHUMHUHMH} A=H]UHHd$H}HuHUMHEHMH}HoH]UHHd$H}HuHUHEHMH} H2H]UHHd$H}HuHUMHUHMH}A}H]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUMHUHMH}AH]UHHd$H}HuHUHEHMH}H2H]UHHd$H}HuHUMHUHMH}A}H]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUMHUHMH}AH]UHHd$H}HuHUHEHMH}H2H]UHHd$H}HuHUMHUHMH} A}H]UHHd$H}HuHUHEHMH} HH]UHHd$H}HuHUMHUHMH} AH]UHHd$H}HuHUHEHMH} H2H]UHHd$H}HuHUMHUHMH} A}H]UHHd$H}HuHUHEHMH} HH]UHHd$H}HuHUMHUHMH}AH]UHHd$H}HuHUHEHMH}H2H]UHHd$H}HuHUMHUHMH}A}H]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUHEH˞E:fDHEHuMHEHUHUHuH}UЄuEHEHHu踞uEEH]UHHd$H}HuHUMHUHMH}AmH]UHHd$H}HuHUMHUHMH} A-H]UHHd$H}HuHUMHUHMH}AH]UHHd$H}HuHUHEHMH}H"H]UHHd$H}HuHUHEHMH} HH]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUMHUHMH}AH]UHHd$H}HuHUHEHMH}H"H]UHHd$H}HuHUMHUHMH}AmH]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUMHUHMH}AH]UHHd$H}HuHUHEHMH}H"H]UHHd$H}HuHUMHUHMH}AmH]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHUMHUHMH}AH]UHHd$H}HuHUHEHMH}H"H]UHHd$H}HuHUHEH;E:fDHEHu轔HEHUHUHuH}UЄuEHEHHu(uEEH]UHHd$H}HuHUMHUHMH}AH]UHHd$H}HuHUHEHMH}HH]UHHd$H}HuHEHHuۡH]UHHd$H}HuHUMHUHMH}A-H]UHHd$H}HuHUHEHMH}HbH]UHHd$H}HuHUMHUHMH}AH]UHHd$H}HuHUHEHMH}HH]UHHd$H}螴H]UHHd$H}~H]UHHd$H}HuHUHMDENH]UHHd$H}HuHUHMDEH]UHH$`H}HuHUHMDELMH}HUHprH6PHcHhu賳uH}uHhHtvH]UHHd$H}HuUgH]UHHd$H}HuUGH]UHHd$H}u+H]UHHd$H}HuUH]UHHd$H}HuU粏H]UHH$pH}HuUMDEH}HUHxpH OHcHpu色sH}KHpHtjuH]UHHd$H}HuHUMDEDM;H]UHHd$H}HuHUMDEDM H]UHHd$H}Hu걏H]UHHd$H}HuUMLEH]UHHd$H}HuHUHMDE莱H]UHHd$H}nH]UHHd$H}@uHUHSߎHUHuqoHMHcHUurH}ގHEHtsH]UHHd$H}HuHގHUHuoH-MHcHUu議rH}oގHEHtsH]UHHd$H}HujH]UHHd$H}uKH]UHHd$H}.H]UHHd$H}HuUH}ގHUHu1nHYLHcHUuٯDqH}ݎHEHtrH]UHHd$H}uU蘯H]UHHd$H}uUMuH]UHHd$H}^H]UHHd$H}>H]UHHd$H}H]UHHd$H}HuH]UHHd$H}HuڮH]UHHd$H}辮H]UHHd$H}Hu蚮H]UHHd$H}HuzH]UHHd$H}HuZH]UHH$PHPLXL`H}HuHUHMLEDMHEHULbIHLLILLH ALmH}ێHUHp lH1JHcHhu训oH}pێH}HhHtpHPLXL`H]UHHd$H}HuHUHMLEDM:H]UHHd$H}HuH]UHHd$H}HuH]UHHd$H}HuڬH]UHHd$H}Hu躬H]UHHd$H}螬H]UHHd$H}~H]UHHd$H}^H]UHHd$H}Hu:H]UHHd$H}HuH]UHHd$H}HuUH]UHHd$H}HuUMԫH]UHHd$H}讫H]UHHd$H}@uHU膫H]UHHd$H}uUhH]UHHd$H}@uJH]UHHd$H}@u*H]UHHd$H}@uUH]UHHd$H}H]UHHd$H}u˪H]UHHd$H}@u說H]UHHd$H}HuU自H]UHHd$H}HuUgH]UHHd$H}HuJH]UHHd$H}Hu*H]UHHd$H}Hu H]UHHd$H}HuHU橏H]UHHd$H}HuHUƩH]UHHd$H}让H]UHHd$H}Hu芩H]UHHd$H}nH]UHHd$H}NH]UHHd$H}Hu*H]UHHd$H}H]UHHd$H}HuꨏH]UHHd$H}HuʨH]UHHd$H}HuU觨H]UHHd$H}Hu芨H]U]UHH55]hH=>Yh9H5R]hH=kYh&H5o]hH=xYhH5{hH=}H]UHHd$HۙH{hHEH!~hHEHuHH=/~ȠH]UHHd$H}HuH胙HEHHuOHtHHEHH}2HtHEHHՎHEHHu~ՎH]UHHd$H}HuHHEHH}Ht0H+@HPHH= T8ZHH5HgH]UHHd$H}HuH胘HEHHuOHtaHEHt$HEHHEHHtHEHHEHyԎHEHHueԎH]UHHd$H}H痏HEHHEHHEEH]UHH$HLLLH}HuHUHmH}t)LmLeMtPLHTLShHEH}t&HUHu{cHAHcHU{HEHUH}HXLmH/LuMt͔M&LrTHLA$HEH}uH}uH}HEHfHEHpHhH(bH@HcH u%H}uHuH}HEHP`eDgeH HthihHEHLLLH]UHHd$H]LeLmH}HuH(跕H})LeLmMt蚓I]H>SLHEHLH}HeH}uH}uH}HEHPpH]LeLmH]UHH$HLL L(L0HxHuHUHMH`ߔHDžhHDž`HDžXHDžPHDžHHDž@HDž0HDž HDžHDžHDžHDžHH`H>HcHHEH8L8LxH!/IHxHtL#LQLLLH8A$ ttu4HhHώL`LώLXL}ώLLHH}諬HhH5/HߎHt H`肰tH0Hx&H0uLPLώLHLΎH@HΎHLLH0HHuH`HHH`JЎHPHhώHhH5/tގHtH`讯t|H\ΎHHH/HώHHֿHH˪HH`H`ώHhH5./ݎHtH`賚tzDžtHxH@pHHDž H`HHDž HHo$@HpHHhHH}͎HXH`HhH HXHH`HHhHÀHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HHD$H/HD$HH$HUL /LH :/H5[/H۵HDž(HH@\H:HcHvL HMHxHH=^ci0H(HEIL(L8H8HtʍL#LoMLLLA$t3_H('HHHt`_HeˎHYˎHMˎHAˎHh5ˎH`)ˎHXˎHPˎHHˎH@ʎH0ʎH ʎHHt`tHLL L(L0H]UHHd$H]LeLmLuL}H}HuHUHMLELMHlHEHHʎEH}98uTHEHP@HUHELx HEILmH]HtL#LKLLLHUA$@EBEH/HEHEH@ HEHZ/HEHuH}عH͎EH]LeLmLuL}H]UHH$`H`H}HuHUHMH^HEHDžhHUHxYH7HcHpHMHUHuH}E܃}uHE@PtHEHuHEHHtH[HH-HH9vHuHhHhHEHX؎HtHEHt0HUIHHH=_i9-HUHHEHHtHRHqoHMHtHIHuH}ڎHhǎHUйH5/Hh]ɎHhHEHHx@ȎHhǎHUйH5n/HhɎHhHEHHx ǎHEHHUH2ZHh1ǎH}(ǎHpHtG\EH`H]UHH$`H`LhLpLxL}H}HuH͊HEHUHuWH;5HcHUH}HƎHEHu|HEHH}ƎHEHxxuVHELhxH]HELpxMt8M&LGHLA$@HEH0H}迢HuH}bƎkHEHxhu^HEHxxuQHELxhHELpxH]HEL`xMt軇M,$L_GHLLA(HuH}ŎHEH8tHEHuwHEHH}ŎHEHxxuVHELhxH]HELpxMt/M&LFHLA$@HEH0H}趡HuH}YŎHEH0H}艭HuH}<ŎgXH}ĎHEHtYH`LhLpLxL}H]UHHd$H}HuHxsHEHUHuTH2HcHUu9HuH}HEHH}H/Hu HuH}mWH}ÎHEHtYH]UHHd$H}HuHÇHEH}HsHEHHEHH}H5/H]UHHd$H}HuHcHEHHu/ӎHtHEHHuÎH]UHHd$H}HuHHEHHuҎHtHEHHu2ÎH]UHH$HLLLH}HuHUH}H}t)LmLeMt`LHDLShHEH}tUHUHuRH0HcHUHEHUH}HLmH/LuMt݃M&LCHLA$HEHH5/ ŽHEHxhH@HpHEH}uH}uH}HEHTHEHpHhH(QH/HcH u%H}uHuH}HEHP`T%VTH HtoWJWHEHLLLH]UHH$ HLLLLH}HuHUHvHDžhHDž`HDžHDžH@HPH.HcHjh\Dž|H}HRH}-tH}H5/3HEHx tH}H5F/HEHHhHEHH`޿HhtrHhHHHH`HH.LLH]LeMtM,$L@HLLAHhtHhiH8uHxhiHHtɀL#Ln@LH?HHȎHH5a/TktLDž HDžHH@HpHHDHH}蔾H}H@Hp~\tHhߊtSHhHHDž HHb@HpHH軖HH} Hh躛tSHhHHDž HH@HpHHVHH}覽(H`HH=L/юHHH-HH9v'xx}$HEHH HcxH`HOKH`uH`H`H/7HEHP H`H`H`HHhH&pHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$L x/LH /HH5/HDHH LH4*HcHIIHMfRIHCfRHHtd}IL =LLLA$HpHH0KH)HcHutHpƀHpHHhKHpHH`HpLpMt|M,$LYH}諪HEHt?H`LhLpLxH]UHHd$H]LeLmLuH}Hu0UnHEHxHuTuDHELpH]HEL`Mu"lM,$L+HLAHEHx,H]LeLmLuH]UHHd$H}HuHpmHUHu :H3HcHUu4HEHxHugHtHEHxHuѩHEHxH]UHHd$H}u&mH//H=c(8^.HH5H\;H]UHH$HLLH}HuHUlH}u'LmLeMujLHE*LShHEH}HUHu8HHcHUu;HEHUHEHBHEH}tH}tH}HEH;HEHtlHhH(Z8HHcH u#H}tHuH}HEHP`V;>HEHLLH]UHHd$H}@uekHE":EtHEU"H}pH]UHHd$H}ukHE;EtHEUH}!H]UHHd$H}@ujHE:EtHEUH}H]UHHd$H}@uujHE#:EtHEU#H}H]UHHd$H}@u%jHE:EtHEUH}0H]UHHd$H}@uiHEU:EtHEUUH}H]UHHd$H}@uiHEY:EtHEUYH}H]UHHd$H}@u5iHEZ:EtHEUZH}@H]UHHd$H}@uhHEV:EtHEUVH}H]UHHd$H}@uhHE[:EtHEU[H}H]UHHd$H}@uEhHES:EtHEUSH}PH]UHHd$H}@ugHE]:EtHEU]H}H]UHHd$H}@ugHE\:EtHEU\H}H]UHHd$H}@uUgHET:EtHEUTH}`H]UHHd$H}@ugHER:EtHEURH}H]UHHd$H}@ufHEX:EtHEUXH}H]UHHd$H}@uefHEW:EtHEUWH}pH]UHHd$H}@ufHEQ:EtHEUQH} H]UHHd$H}@ueHE:EtHEUH}H]UHHd$H}@uueHE:EtHEUH}H]UHHd$H}@u%eHE:EtHEUH}0H]UHHd$H}@udHE:EtHEUH}H]UHHd$H}@udHE:EtHEUH}H]UHHd$H}@u5dHE:EtHEUH}@H]UHH$pH}HucHu1HxH5iZhH=YhHEDHx1͏dbHxؿSbH]UHHd$H}ufcHE;EtHEUH}q H]UHHd$H}@ucHE:EtHEUH} H]UHHd$H}HubHEHHu葮HtHEHHuH} H]UHHd$H}@uebHE:EtHEUH}p H]UHHd$H}@ubHE:EtHEUH} H]UHHd$H}@uaHE:EtHEUH} H]UHHd$H}uvaHE;EtHEUH} H]UHHd$H}@u%aHE:EtHEUH}0 H]UHHd$H}u`HE4;EtHEU4H} H]UHHd$H}@u`HE:EtHEUH} H]UHHd$H}@u5`HE :EtHEU H}@ H]UHHd$H}u_HE;EtHEUH} H]UHHd$H}u_HE;EtHEUH} H]UHHd$H}@uE_HE:EtHEUH}P H]UHHd$H}@u^HE:EtHEUH} H]UHHd$H}@u^HE:EtHEUH}H]UHHd$H}@uU^HE:EtHEUH}`H]UHHd$H}u^HE`;EtHEU`H}H]UHHd$H}@u]HE!:EtHEU!H}H]UHHd$H}Hue]HEHHu1HtHEHHu蘙H}_H]UHHd$H}@u]HEP:EtHEUPH}H]UHHd$H}@u\HE:EtHEUH}H]UHHd$H}@ue\HE:EtHEUH}pH]UHHd$H}@u\HE:EtHEUH} H]UHHd$H}@u[HE8:EtHEU8H}H]UHHd$H}@uu[HE:EtHEUH}H]UHHd$H}@u%[HE:EtHEUH}0H]UHHd$H}@uZHE:EtHEUH}H]UHHd$H}@uZHE:EtHEUH}H]UHHd$H}@u5ZHE:EtHEUH}@H]UHHd$H}@uYHE:EtHEUH}H]UHHd$H}@uYHE0:EtHEU0H}H]UHHd$H}@uEYHE^:EtHEU^H}PH]UHHd$H]LeLmH}(XLeLmMuVI]HHI;$tHEHUHH;tEEEH]LeLmH]UHH$HLLH}HuHUIXH}u'LmLeMu0VLHLShHEH}VHUHu^$HHcHUHEH}1$H=HHUHLeMuUI$HNHfHUHHUHEHHHEƀPHUHEHHEH}tH}tH}HEH&HEHtlHhH(n#HHcH u#H}tHuH}HEHP`j&'`&H Ht?))HEHLLH]UHHd$H]LeLmH}Hu(iVH}~'LeLmMuPTI]HLHEH H}1H}tH}tH}HEHPpH]LeLmH]UHHd$H}U0H]UHHd$H}UHEHHH9}#HEHHqSHUHHEǀǀHEHtHEHHuOH]UHHd$H}UEEHEH]UHHd$H}HuHUTHEHHuHUiJH]UHHd$H}HuHUTHEHHuHUIH]UHHd$H}HueTbH]UHHd$H}Hu5TPbH]UHHd$H}HuT bH]UHHd$H}HuSaH]UHHd$H}HuSaH]UHHd$H}uvSaH]UHHd$H}HuHwx=SHUHuHHcHUu3a"H}HEHt$H]UHHd$H}uR`H]UHHd$H}uUR`H]UHHd$H}HuH觎xmRHUHuHHcHUuc`!H}%HEHtG#H]UHHd$H}HuH7xQHUHuKHsHcHUu_^!H}赍HEHt"H]UHHd$H}Q_H]UHHd$H}iQ_H]UHHd$H}u6QQ_H]UHHd$H} Q$_H]UHHd$H}@uP^H]UHHd$H}uUP^H]UHHd$H}yP^H]UHHd$H}HuEP`^H]UHHd$H}HuP0^H]UHHd$H}HuO^H]UHHd$H}HuO]H]UHHd$H}HuO]H]UHHd$H}HuUOp]H]UHHd$H}Hu%O@]H]UHHd$H}HuN]H]UHHd$H}HuN\H]UHHd$H}HuN\H]UHHd$H}HueN\H]UHHd$H}HuHgp-NHUHu{HHcHUu#\H}剎HEHtH]UHHd$H}HuM[H]UHHd$H}HuM[H]UHHd$H}HueM[H]UHHd$H}Hu5MP[H]UHHd$H}HuM [H]UHHd$H}@uLZH]UHHd$H}HuLZH]UHHd$H}HuuLZH]UHHd$H}HuEL`ZH]UHHd$H}HuL0ZH]UHHd$H}HuKZH]UHHd$H}HuKYH]UHHd$H}HuKYH]UHHd$H}HuUKpYH]UHHd$H}Hu%K@YH]UHHd$H}HuJYH]UHHd$H}HuHUHxJHUHuH/HcHUuXH}qHEHtH]UHHd$H}HuHUAJ\XH]UHHd$H}HuJ0XH]UHHd$H}HuUIWH]UHHd$H}HuIWH]UHHd$H}HuIWH]UHHd$H}HuUIpWH]UHHd$H}Hu؈UMDE(I6WH]UHHd$H}HuUH WH]UHHd$H}Hu؈UMDE(HVH]UHHd$H}Hu؈UMDE(HVH]UHHd$H}Hu؈UMDE([HvVH]UHHd$H}Hu؈UMDE(+HFVH]UHHd$H}Hu؈UMDE(GVH]UHHd$H}HuUGUH]UHHd$H}GHE1H5Ϟ/HH]UHHd$H]LeLmLuH}HuUMHOGLuH^}HH^}L Mu-EM,$LHLA HExzt9HEHPPDEMH=Dh*5HEHUHP8HuH},H]LeLmLuH]UHHd$H}FHE1H5ߝ/HH]UHHd$H]LeLmLuH}HuUMH?FLuH]}HH]}L MuDM,$LHLA HEx4t9HEHP(DEMH=Nh4HEHUHP8HuH}+H]LeLmLuH]UHHd$H]LeLmLu(}EH]}L H/H\}L0MuXCM.LHLAHEH]LeLmLuH]UHHd$H]LeLmLu(DH\}L H/Hu\}L0MuBM.L}HLAHEH]LeLmLuH]UHHd$H]LeLmLu(}DH\}L H$/H[}L0MuXBM.LHLAHEH]LeLmLuH]UHHd$H]LeLmLu(CH[}L H̛/Hu[}L0MuAM.L}HLAHEH]LeLmLuH]UHHd$H]LeLmLu(}CH&[}L Hl/H[}L0MuXAM.LHLAHEH]LeLmLuH]UHHd$H]LeLmLu(BHZ}L H/HZ}L0Mu@M.L}HLAHEH]LeLmLuH]UHHd$H]LeLmLu(}BH&Z}L H/HZ}L0MuX@M.LHLAHEH]LeLmLuH]UHHd$H]LeLmLu(AHY}L Hd/HY}L0Mu?M.L}HLAHEH]LeLmLuH]UHHd$H]LeLmLu(}AH&Y}L H/HY}L0MuX?M.LHLAHEH]LeLmLuH]UHHd$H]LeLmLu(@HX}L H/HX}L0Mu>M.L}HLAHEH]LeLmLuH]UHHd$H}u@H}1|E@EEEsCHEH8uHEH0H}1H%/}EHRhHHEH0H}1}}rH]UHHd$H}?EfEUHShH4H}(t }rEEH]UHHd$H}?EfEUHRhH4H}E(t }rEEH]UHH$HLLH}HuHU?H}u'LmLeMu=LHLShHEH}.HUHu. HVHcHUHEH}1HEHxHuzH=X7˟HUHBPLeLmMuh4H(HtHEHLLL H]UHHd$H}HuE,HEHpPH}hH]UHHd$H]LeLmLuH}Hu0+H]LuLeMu)M,$LLHA0H]LeLmLuH]UHHd$H}HuHU+H}1gH]UHHd$H]H}e+HEx`%1ҾH=7HH5HHEHcX`Hq)HH-H9v+)HEX`HEx`u H}H]H]UHHd$H]H}*HEHcX`Hq)HH-H9v(HEX`H]H]UHHd$H}@ue*H]UHHd$H}HuHUHMLE()*H}1~fH]UHH$`HhLpLxLuH}Hu)HEHUHuHGԍHcHUH}HEHx 0t.LuLeLmMuv'I]HLLHEHx(tCHEHp(HUH}uLuLeLmMu"'I]HLLH}dHEHtHhLpLxLuH]UHHd$H}HuHUHMDE0(H]UHHd$H}Huu(H]UHH$HLLL H}Hu&(H}u'LmLeMu &LHLShHEH}{HUHu;HcҍHcHUHEH}1LmH/LuMu%M&L=HLA$LmH/LuMuf%M&L HLA$LmH/LuMu4%M&LHLA$HE@IHEH}tH}tH}HEHwHEHtlHpH0&HNэHcH(u#H}tHuH}HEHP`"H(HtHEHLLL H]UHH$@H@LHLPLXL`H}HuHUHMLE%HDžHDžHDžHDžHUHuH=ЍHcHxHl/HHEHHs/HH/HHw/HLuLH]Hu?#L#LLLA$pHHH)/HH/HH-/HH~/HH~/HH+/HH~/HH//HLmLH]Hu"L#L4LLA$xHHHY~/H Hk~/H(H]~/H0L}LuLmHEHhHHpLeMu "I$HHpHhLLMHH8Hm~/H@H}/HHH}/HPL}HEHxHEHH]LLeMuw!M,$LLHHHxMAHHXH~/H`HB}/HhH4}/HpHH}1ɺcH^H^H^H^HxHtH@LHLPLXL`H]UHHd$H}Huu"H}Hj.iHp^H]UHHd$H}Hu5"H}HJ.iHp^H]UHHd$H]LeLmH}Hu(!H}H5|/9^HEHpXH=%hҎt9HEHxXTHLmMuMeLGߍLHuHhH]LeLmH]UHHd$H}HuU!H}H5b|/]H]UHHd$H}HuHUHMLE(!H}1n]H]UHHd$H}HuHUHMLE( H}1.]H]UHHd$H}@u EH}@EuWHEHxXtLH8}H8t?HEHpXH=7$h2юt'HEHxXHH7}HxH7}EEH]UHH$`H}HuHUHEHUHuDHlʍHcHUH}H5z/\H}HEHH}[H}xHz/HhHEHpHz/HxHhH}1ɺu_HEt-H}H5z/tHEH0H}1Hz/\H}ZHEHtH]UHHd$H}H]UHH$HLL H}HuH}u'LmLeMutLH܍LShHEH}HUHuHȍHcHUuEHEH}1HEƀHEH}tH}tH}HEHuHEHtlHpH0$HLȍHcH(u#H}tHuH}HEHP` H(HtHEHLL H]UHHd$H]LeLmH}Hu()HuH}LeLmMu I]HڍLuHEH0H}1Hx/hZH]LeLmH]UHH$H}HuHUHMLEHDžHUHuHǍHcHxHHx/HHEHHWx/HHEHxhH4َH1H?bHHH:x/H Hv/H(H>x/H0Hu/H8Hu/H@Hs/HXH8H}1ɺ(YH}H5;v/VU H}1IUtH`THhTH}THpHtH L(L0H]UHHd$H}uvHUEB H]UHHd$H}IH]UHHd$H}HuHEHx(HucHtHEHx(HuNTH]UHH$HLL H}HuH}u'LmLeMuLH9ՍLShHEH}HUHuHHcHUuaHEHE@0HE@ 4HE@4HEHxH5t/uSHEH}tH}tH}HEHyHEHtlHpH0(HPHcH(u#H}tHuH}HEHP`$H(HtHEHLL H]UHHd$H}Hu5HEHp(H}RH]UHHd$H]LeLmLuH}Hu0H]LuLeMuM,$LsӍLHAH]LeLmLuH]UHHd$H]H}HEx0u%1ҾH=7֣HH5HHEHcX0HqHH-H9vKHEX0HEx0u H}͎H]H]UHHd$H]H}HEHcX0Hq2HH-H9vHEX0H]H]UHHd$H]LeLmH}(}LmLeMukI$HҍLEH]LeLmH]UHHd$H]LeLmLuH}Hu8LeHq/LuMuM.LэHLAPHEDp H]LeMuM,$LnэHDAEH]LeLmLuH]UHHd$H}HuuH]UHHd$H}IHEHUH@hH;B`EEH]UHHd$H}HuH7OpHUHuKߎHsHcHUu0HEHxxHu^HtHEHxxHuOH}3H}NHEHtH]UHHd$H}@ueHE:EtHEUH}PH]UHHd$H}HuH}H]UHHd$H]LeLmLuL}H}@u8}t H}fHUHEH@`HBhLeLmMuI]HBύLIE0LMMusM,$LύHDAH]LeLmLuL}H]UHH$HLLH}HuHU H}u'LmLeMuLH΍LShHEH}HUHuݎHFHcHUyHEHUH}1pH=DSHǎHUHBpHE@`@dHUHEH@`HBhHEH}tH}tH}HEHߎHEHtlHhH(h܎H萺HcH u#H}tHuH}HEHP`dߎZߎH Ht9HEHLLH]UHHd$H]LeLmH}Hu(iH}~'LeLmMuP I]H̍LHEHxpƣH}1cH}tH}tH}HEHPpH]LeLmH]UHHd$H}HEH`HHH9}HHq H @HEHxptHEHxpHuH]UHHd$H}HuHUQHEHxpHuHUH]UHHd$H}HuHUHEHxpHuHU<H]UHHd$H]LeLmLuH}u0 HE;Et:HUELuLeMu M,$L:ˍ@LA(H]LeLmLuH]UHHd$H]LeLmLuH}u06 HE;Et:HUELuLeMu M,$Lʍ@LA(H]LeLmLuH]UHHd$H}@u HE:Et HEUH]UHHd$H]LeLmLuH}Hu0e HEHHu1XHtAHEHHuHLuLeMu$ M,$Lɍ@LA@H]LeLmLuH]UHHd$H]LeLmLuH}@u0 HE:Et:HUELuLeMu M,$L9ɍ@LA(H]LeLmLuH]UHHd$H]LeLmLuH}Hu05 HEHHuWHtAHEHHuhGLuLeMuM,$Lȍ@LA(H]LeLmLuH]UHH$pHpLxLmLuH}HuHF HUHu֎HHcHUuZHEHHu+VHtAHEHHuFLuALmMuI]HǍDL(َH}EHEHt ێHpLxLmLuH]UHHd$H]LeLmLuH}@u0 HE:Et:HUELuLeMueM,$L Ǎ@LA(H]LeLmLuH]UHHd$H]LeLmLuH}Hu0 HEHxpHuTHt>HEHxpHu>ELuLeMuM,$Lnƍ@LA@H]LeLmLuH]UHHd$H]LeLmLuH}Hu0eHEHxxHu4THt>HEHxxHuDLuLeMu*M,$Lō@LA@H]LeLmLuH]UHH$pHpLxLmLuH}HuHCHUHuԎH*HcHUuZHEHHu[SHtAHEHHuCLuALmMuMI]HčDL(֎H}CHEHt9؎HpLxLmLuH]UHHd$H}uHE;Et HEUH]UHHd$H]LeLmLuH}Hu0HEHHuQRHtAHEHHuBLuLeMuDM,$LÍ@LA(H]LeLmLuH]UHH$HLLH}HuHUH}u'LmLeMuLHeÍLShHEH}QHUHuюHHcHUHEH}11BHEǀHEHxpH5b/AHEHxxH5c/AH=HHUHH=شHkHUHHEH}tH}tH}HEHTԎHEHtlHhH(юH+HcH u#H}tHuH}HEHP`ӎՎӎH Ht֎֎HEHLLH]UHHd$H]LeLmH}Hu( H}~'LeLmMuI]HLHEH;HEH+H}1H}tH}tH}HEHPpH]LeLmH]UHHd$H]LeLmH} ]HEHxpH5`/?HEHxxH5 a/?HELHELMuI$HLHELHELMuI$HLHEǀHEH1 ?HEǀHEH1>HEH1>H]LeLmH]UHHd$H]LeLmLuL}H}@u@1Lu0LeMuM,$L@LA(Lu0LeMuM,$L蔿@LA@}LeLmMuI]H_LHcHqHH-H9vAE|jEEDuH]LeMuVM,$LHDAHIIHu*MuLξLAD;}H]LeLmLuL}H]UHHd$H}H]UHH$`HhLpLxLuH}HuHEHUHu̎HHcHUu_HEHtHEHH}<;LuLeLmMu2I]HֽLLHuH}7ώH};HEHtюHhLpLxLuH]UHH$`HhLpLxLuH}HuHEHUHuˎHHcHUu;LuLeLmMuVI]HLLHuH}6ΎH};HEHt5ЎHhLpLxLuH]UHHd$H]LeLmLuH}Hu0H]LuLeMuM,$LSLHAHEH8u HuH}H]LeLmLuH]UHHd$H]LeH}AHEH;}+Lc#IqLH-H9v(D#H]LeH]UHHd$H]LeH}HEH;}+Lc#IqLH-H9vD#H]LeH]UHHd$H}@ueHUEB H]UHH$HLL H}HuH}u'LmLeMuLH詺LShHEH}HUHu2ɎHZHcHUueHEH=HHUHBH=fHHUHBHEH}tH}tH}HEHˎHEHtlHpH0ȎH輦HcH(u#H}tHuH}HEHP`ˎ͎ˎH(HteΎ@ΎHEHLL H]UHHd$H]LeLmH}Hu(H}~'LeLmMuI]H$LHEHxβHEHxH}1薳H}tH}tH}HEHPpH]LeLmH]UHHd$H]LeLmLuH}Hu0HEL`8H]HELp8MuM.LlHLA0H]LeLmLuH]UHHd$H]LeLmLuH}Hu0eHEL`8H]HELp8MuGM.L췍HLA8H]LeLmLuH]UHHd$H}HuHEH}HHuH=g襪tHUHEH@8HB8H]UHHd$H]LeLmLuH}Hu0HEL`8H]HELp8MugM.L HLAH]LeLmLuH]UHHd$H]LeLmLuH}Hu0HEL`8H]HELp8MuM.L茶HLAH]LeLmLuH]UHHd$H}HuHEH}HHuH=hEtHUHEH@8HB8H]UHHd$H}HuU2MH]UHHd$H}Hu H]UHHd$H}H]UHHd$H}uH]UHHd$H}yH]UHHd$H}HuHUA\H]UHHd$H}Hu0H]UHHd$H}HuH]UHHd$H}HuH]UHHd$H}HuH]UHHd$H}HuUpH]UHHd$H}Hu%@H]UHHd$H}H]UHHd$H}uH]UHHd$H}H]UHHd$H}iH]UHHd$H}9TH]UHHd$H} $H]UHHd$H}HuH]UHHd$H}H]UHHd$H}HuH0pmHUHuH㞍HcHUucÎH}%0HEHtGŎH]UHHd$H}u!H]UHHd$H}@uH]UHHd$H}HuH]UHHd$H}@uuH]UHHd$H}HuE`H]UHHd$H}4H]UHHd$H}HuH]UHHd$H}HuUH]UHHd$H}uUH]UHHd$H}HuUpH]UHHd$H}Hu%@H]UHHd$H}HuH]UHHd$H}HuU H]UHHd$H}H]UHHd$H}HuHUM ^yH]UHHd$H}Hu5PH]UHHd$H}Hu H]UHHd$H}HuH]UHHd$H}HuH]UHHd$H}HuuH]UHHd$H}HuE`H]UHHd$H}4H]UHHd$H}HuH]UHHd$H}H]UHHd$H}uH]UHHd$H}YtH]UHHd$H})DH]UHHd$H}uH]UHHd$H}H]UHHd$H}HuHUH]UHHd$H}HueH]UHHd$H}Hu5PH]UHHd$H}Hu H]UHHd$H}HuH]UHHd$H}HuH]UH1H}HH]UHH5 hH=gYH5 hH=khFH5' hH=xh3H]UHHd$H}HuHEHpHEHxEHEHU@\;B\} EHEHU@\;B\~ EHEHU@T;BT} EHEHU@T;BT~ EkHEHU@P;BP} ERHEHU@P;BP~ E9HEHU@X;BX} E HEHU@X;BX~ EEEH]UHHd$H}EfEUH)hH4H}ԡt } rEEH]UHH$pH}uH}1'Hu1HxVvH5G,hH=*hDEHx1VUHxuGH]UHH$pH}uH}1X'Hu1HxuH5.hH=-hDEHx1THxFpH]UHH$PHXL`H}uuHEHUHu軶H㔍HcHUH}1&DeAsH]HEH8tHEH0H}1HI/'uH}HUHEH0H}1o'rHI/HhHEHHpHI/HxHhH}1ɺ)$H}{%HEHt蝺HXL`H]UHH$pH}uCH}1%Hu1HxtH54hH=3hDEHx1SHx5EH]UHH$HLLH}HuHUHMLEH}$H}$H}$H}u'LmLeMumLHLShHEH}HUHx蘴HHcHpHEHXH^H膒HcHuLHEHxHu7$HEHxHu&$HEHxHu$H=7$tHUHB 'H}~#H}u#H}l#HHt苸HEH}tH}tH}HEH϶HpHtlHXH{H裑HcHPu#H}tHuH}HEHP`wmHPHtL'HEHLLH]UHHd$H]LeLmH}Hu(yH}~'LeLmMu`I]HLHEHx 讝H}1胞H}tH}tH}HEHPpH]LeLmH]UHHd$H}HuHEH}HhH:H]UHHd$H]LeLmLuH}Hu0HEHx Hu}u7HELp H]HEL` MubM,$LHLAH]LeLmLuH]UHHd$H]LeLmLuH}Hu0HEHxHHu}u7HELpHH]HEL`HMuM,$LvHLAH]LeLmLuH]UHH$HLL H}HumH}u'LmLeMuTLHLShHEH}HUHu肰H誎HcHUuqHEHE@EH=c6npHUHB H=J6UpHUHBHHE@0HEH}tH}tH}HEH)HEHtlHpH0دHHcH(u#H}tHuH}HEHP`Բ_ʲH(Ht詵脵HEHLL H]UHHd$H]LeLmH}Hu(H}~'LeLmMuI]HdLHEHx HEHxHH}1֚H}tH}tH}HEHPpH]LeLmH]UHHd$H}Hu5HEHpXHEHxXHEHp(HEHx(kHEHpHEHxVHEHp`HEHx`AHEHp H}HEHpHH}HUHE@PBPHUHE@0B0HUHE@EBEHMHEHPHQH@HAHUHE@DBDH]UHHd$H}Hu@EHEH;Eu EpHuH=hHHEHEHpXHEHxX,H HEHp(HEHx(,HHEHpHEHx,HHEHp`HEHx`,HHEHp HEHx xHEHpHHEHxH|xHEHU@P:BPxHEHU@0:B0uhHEHU@E:BEuXHEHPHUH@HEHEHPHUH@HEHEH;EHEH;E tHEHU@D:BDuEEHuH}蕧EEH]UHHd$H]LeLmH} ߎHEHx1HE1H@HHHELh HEL` MuRݎI$HLHEHx(1HE@PHE@0HE@EHELhHHEL`HMu܎I$H蠜LHEHxX18HEHx`1)HE@DH]LeLmH]UHHd$H}uގHEHxpuFH]UHH$HLLH}HuHUIގH}u'LmLeMu0܎LH՛LShHEH}HUHu^H膈HcHUu_HEHUH}1H=H6㔎HUHBpHE@`HEH}tH}tH}HEHHEHtlHhH(ƩHHcH u#H}tHuH}HEHP`¬M踬H Ht藯rHEHLLH]UHHd$H]LeLmH}Hu(܎H}~'LeLmMuڎI]HTLLmLeMuڎI$H-LHEHxpדH}1H}tH}tH}HEHPpH]LeLmH]UHHd$H]H}܎H}lHcHqNڎHH-H9vَ|5]؃EmuH}H1HS }H]H]UHHd$H}yێHEH@p@H]UHHd$H]LeLmLuH}89ێH}HcHqَHH-H9v*َ|YEEuH}8HE耸u)LuLmMu؎MeLmLA$;]H]LeLmLuH]UHHd$H]LeLmH} mڎDHhL HhL(MuJ؎I]HLH}u 2.H]LeLmH]UHHd$H]LeLmLuH}0َH}@HcHq"؎HH-H9v׎|[]؃EmH};E~5uH}HIIHug׎MuL LA}H]LeLmLuH]UHHd$H]H}َH}|HcHq^׎HH-H9v׎|.EEuH}}E ;]EEH]H]UHHd$H}Hu؎HEHxpHuHEH@pxHE@Pu H}H]UHHd$H}Hu%؎HEHxpHu |*H8/H=M7HHH5HFHEHxpHu H]UHHd$H]LeLmH}Hu(׎HEHtTHEHxhuHEHHEHxhHEx`t'LeLmMu\ՎI]HLH]LeLmH]UHH$PHPLXL`LhH}HuUMLEH}֎HUHx.HVHcHpyHEuH}&HEHuH}RH}о T}tH}HEЋphyOLuLeLmMuSԎI]HLLƥH}HpHtHEH HuƞH}轇H(Ht<觞H} HEHt H]UHHd$H]LeLmLuH}Hu0ΎHEH@hH;EtLHEHxhHufu7HELphH]HEL`hMu̎M,$L(HLAH]LeLmLuH]UHHd$H]LeLmLuH}Hu0%ΎHEHH;EHEHtH]UHHd$H}HuUxˎEHuH}P՟}ulH}QHUHuH'vHcHUu"HEHtHEHHuH},HEHtnH]UHHd$H]LeLmH}(ˎEHE@PlHELHELMuȎI]H茈L3H}&HEH tHEH duEEH]LeLmH]UHH$HLLH}HuHUIʎH}u'LmLeMu0ȎLHՇLShHEH}HUHu^HtHcHU3HEHuH= hztHUHEHHUH}1ןHEH(uHUHdgH(HEH(HUH=g(HUHH=6qHUHH=6UHUHHEǀHEH@pH=t6UHUHBhH=[6fUHUHHEH}tH}tH}HEH?HEHtlHhH(HsHcH u#H}tHuH}HEHP`ꗎuH Ht迚蚚HEHLLH]UHH$pHpLxLmH}HuǎH}~'LeLmMuŎI]HkLH}IHUHuHrHcHUHEt HEHx`~H}@JH}@0H}1HEH~E@EHEUH~}rHEH:*HEHZ~HEHJ~HEHxh=~H}1֟MH}HEHtƗHEH~H}tH}tH}HEHPpHpLxLmH]UHHd$H}IƎHEH(H]UHHd$H}ƎHEH(H]UHH$`HhLpLxLuL}H}ŎH}`HUHuH6pHcHU~H}HcHqÎHH-H9vÎAE|GEEuH}HILMMu5ÎM,$LقHAD;}褔H}HEHtHhLpLxLuL}H]UHHd$H]LeLmH} ĎHQH{H;t*H$/H=7ԅHH5HҒLeLmMu`ŽI]HLt H}|H]LeLmH]UHHd$H}HuĎEfDEHUEHHu\}rH]UHHd$H}HuHUM ÎEHUHMH}AH]UHHd$H}HuHUaÎHEHMH}HH]UHHd$H]LeLmLuL}H}HuHUH ÎHE@Pt*H#/H==~78HH5H6H}tH}u*H#/H=~7HH5HHELHELMu~I]H"LHcHqHH-H9vcAE|EEHEL]HELMu M,$LLAH;Eu*H"/H=(}7#HH5H!D;}HELH]L}HELMu蓿M,$L7LHLAXH]LeLmLuL}H]UHHd$H]LeLmLuL}H}Hu@!HELHELMuI$H~LHcHq>HH-H9v澎AEEEHEL]HELMu艾M,$L-~LAH;EuHHEHDeHELMuGMuL}DHAH}U4D;}iH2!/H=V{7QHH5HOH]LeLmLuL}H]UHHd$H]LeLmH}(譿HELHELMu荽I$H1}LEH]LeLmH]UHHd$H}HuHUM >EHUHMH}1A%H]UHHd$H}HuHUHEHMH}1HkH]UHH$0H8L@LHLPLXH}Hu蟾HDžpHUHu⊎H iHcHxoHEHgL HgL(MuBI]H{LHcHqHH-H9v'AEE@EDuH!gHHgL MuʻM,$Ln{HDAHEH]LeLmMu藻ML<{LHAtHuH}HED;}pH}u`HEHhHDž` H`HhHp1Hp#ҡHpH=`x7[~HH5HY脌HpHxHtHEH8L@LHLPLXH]UHHd$H]LeLmLuL}H}HuPqH}HcHq躺HH-H9vb|QEEuH} HEIHuMeLyLeLH;E+;]L}M1LeMuӹMLxyHLLAHEE-Hc]HqHH-H9v衹]HEH@;E}uH}[HIHuKM,$LxIHu2M4$LxLAALuLmMuLHxLA9BHEHHUuHUHEHBhHEH]LeLmLuL}H]UHH$ H(L0L8L@H}HufHDžHHUHu詆HdHcHUHELuH_gL HUgL(MuI]HwLLHEHH,/HXHDžP HEHhHDž` Džx"HDžpHPwHEHxHDžp HpHJhHp1HHXΡHHH=t7zHH5H莇HuH}HE計HHHEHtHEH(L0L8L@H]UHHd$H}Hu赸HEHHuHEH@hH;Eu HEH@hH]UHHd$H}HueHEHHuH]UHHd$H}Hu%H}pH]UHHd$H]H}@u@}tHH}iHcHq+HH-H9vӵH}HH}\FH}!HcHq㵎HH-H9v苵H}`HH}H}[H]H]UHHd$H]LeLmH}Hu8 H}HcHqRHH-H9v|PEEuH}HEIHu觴MeLKtLHusu ;]HEHEH]LeLmH]UHHd$H]LeLmLuL}H}HuP1HjgL(H`gL MuI$HsLHcHqPHH-H9vAEEDEDuHgHHgL Mu蚳M,$L>sHDAHEH]LeLmMugML sLHAtHuH}HEHuD;}kHEHEH]LeLmLuL}H]UHHd$H}鴎HEH@H]UHHd$H}Hux赴H}QHUHuH"_HcHU~HEHt%1ҾH=o7uHH5H谂HEHHuLEHuH}şHUHEHHEHHEHxp萃H}PHEHt EH]UHHd$H}HupųH},PHUHu H2^HcHUu#HEHǀHEHHuH}PHEHtxH}H]UHHd$H}Hu%HEHHuH]UHHd$H}Hu岎HEH}HH}\kH]UHHd$H]H}@ux衲H}8HUHu~H]HcHUf}tHH}YHcHq諰HH-H9vSH}HH}FH}HcHqcHH-H9v H}HH}H}[NH}HEHtǂH]H]UHHd$H]LeLmLuH}8iH}`HcHq貯HH-H9vZ|SEEuH}HEILmMuMeLnLA$t ;]HEHEH]LeLmLuH]UHHd$H]LeLmH}Hu(虰H}~'LeLmMu耮I]H$nLHEHxhtHEHxhHuH}1脿H}tH}tH}HEHPpH]LeLmH]UHHd$H}H]UHHd$H}ٯH]UHHd$H}蹯H]UHH$PHXL`LhLpLxH}upHEHUHu{HYHcHUzHEH@hHuHE}|YHEH@hLDuH]HEH@hLMuM,$LlHDLAHuH}E*P~H}HEHtHEHXL`LhLpLxH]UHHd$H}HuUHEH@hHHuH]UHHd$H}uH]UHHd$H}H]UHHd$H]LeLmLuH}Hu0ŭH]LmLeMu诫MLTkLHAH]LeLmLuH]UHHd$H]LeLmLuH}Hu0UH]LmLeMu?MLjLHAH]LeLmLuH]UHH$`H`LhLpLxH}Hu֬HEHUHuyHDWHcHUu@LuLmLeMu蓪LH8jLLH}Hu?E{H}KHEHtm}EH`LhLpLxH]UHH$pH}HuHUMLEH}(HUHuhHLA0HEHtHuH};HEHEH]LeLmLuH]UHHd$H})1H]UHHd$H}uHEHx`uڞH]UHHd$H}٩HEH@`@H]UHH$`HhLpLxLuH}HuH聩HUHuuHSHcHUuXLuLeLmMuFI]HfLLHEILmMuI]HfLxH}HEHtzHEHhLpLxLuH]UHH$HLLH}HuHU艨H}u'LmLeMupLHfLShHEH}HUHutHRHcHUrHEHUH}1H=6_HUHB`H0gH8uH#gHEHHEH}tH}tH}HEH@wHEHtlHhH(sHRHcH u#H}tHuH}HEHP`vvxvH HtyyHEHLLH]UHHd$H]LeLmH}Hu(馎H}~'LeLmMuФI]HtdLHEHx`^HgHH;EuHgHH}1ŵH}tH}tH}HEHPpH]LeLmH]UHHd$H]LeLmLuL}H}8%HEH@`XHcHqlHH-H9vAE|OEDEHEHx`u֞ILMMu蹣M,$L]cHAD;}H]LeLmLuL}H]UHH$ H(L0L8L@LHH}HuHUMLEH}e+HUHpvqHOHcHh,H}1QHELmH]HuբL#LzbLA$HcHqHHH9v踢H``EfEDmH]LeMu^M4$LbHDAHEHEHXL}DmH]LeLuMuLPLaLHDLLXHPHEH8u`;EX[sH}ߍHhHttH(L0L8L@LHH]UHH$0H8L@LHLPLXH}HuHUMH}iߍ/HUHxzoHMHcHpH}1UߍH]LeMu㠎M,$L`HAHcHqHHH9vƠHhhEEDmH]LeMunM4$L`HDAHEL}DmH]LeLuMu3L`L_LHDLH`HEH8uh;Ej}qH}ݍHpHtrH8L@LHLPLXH]UHHd$H}u膡HEHx@u6ҞH]UHHd$H}HuxUHEHUHumHKHcHUu=HuH}HEHx8HuHtHEHx8HuTݍH}{vpH}܍HEHtqH]UHHd$H}Hu襠H},HEHxxtHEHxxHuH]UHH$HLLH}HuHUHM5H}u'LmLeMuLH]LShHEH}hHUHuJlHrJHcHxHEHUHEHB`HEHxΎHEHUHPHH=6VHUHB@HcH=}QHUHBhHEHxh01yHE@pH=G`VHUHBxHEH}tH}tH}HEHnHxHtlH`H HkHpIHcHu#H}tHuH}HEHP`Dno:nHHtqpHEHLLH]UHH$pHxLeLmH}HuCH}~'LeLmMu*I]H[LH}HUHuZjHHHcHUu;H}HEHxhAUHEHx@4UH}1 VHEHxxU7mH}~HEHtnHEHx̎H}tH}tH}HEHPpHxLeLmH]UHHd$H}9HEHxˎH]UHHd$H} HEHxˎH]UHHd$H}ٜHEH@@@H]UHHd$H]LeH} 衜HEH@@xHEHSHEH@@HcXHqȚHH-H9vp|0EDEHEHx@u̞ILT;]HEHx@_ϞHEHxhBEEHEUDŽ} rH}cH]LeH]UHHd$H]H}襛HEH@@@~BHEH@@XHcHqݙHH-H9v腙H}HEHEHEH]H]UHHd$H]LeLmLuH}u8HELhHAHEHXHHu明ILXLLAHE@XHUEBPHEH]LeLmLuH]UHHd$H]LeH}Hu8}HExX|*H.H=U7[HH5HhHEHUHPHEHx@Hu<͞HUBXHEHxhHuHUHE@dHLc#IqSLH-H9vD#HEHEH@@@EHc]HqHH-H9v趗H}HEHpHEHxVHuHEHpHEHxՍHEHp HEHx 'HuHEHp HEHx ՍHuH}`H]LeH]UHHd$H]LeH}Hu(혎HEH@H;Et%1ҾH=!T7ZHH5HgHEHxhHuHEpXHEHx@̞HED`XHEH@@XHcHqԖHH-H9v|D9|*DeDEfEuH}UPX;]HEH@HUHE@dHLc#Iq`LH-H9vD#H}l H]LeH]UHHd$H}Hu襗HEH}HH}PH]UHHd$H}HueHEHuH=tQHUHHEHHu7HuHEHHuH]UHH$HLLLLH}ÖHEH|H=%6MHEHUHubHAHcHUHEHIHHhH(bH@HcH uN@IGHEH@(HE@hu H}HEphHuH}ȞL/ufeALMMuM,$LdSHLAU`H HtfHExtPHEHxPtHEHxXHuHEPPdHEHLH}MHEHtHt_fHEHLLLLH]UHHd$H]LeLmH}Hu8ٔH}CHEH;E5HEH@@@"HEHxhHEH@@XHcHq璎HH-H9v菒EEuH}HEHHEHBHEHx@Hu@ǞHUBXHEHxhHuHUHE@dLMc,$IqVLH-H9vE,$HuH} ;]dHEHx@ǞEEHEUDŽ} rH}H]LeLmH]UHH$HLLLH}HuUMH}aύ 'HUHpr_H=HcHhH}HEH@@@AHgL%gMu輐MLaPHLAHEHPH^H=HcH;HuH}A uH} HEHxhHuHEH)HEHxhHuHEHEHxhHUHu]}'HEH@hHH}t H}1HEH}ؾ$ xHEH@(HEHc@\Hc]Hq HH-H9v貏HEȉX\HuH}HEH@hHH}t H}O1HEH}tHEHxhHUHuk`H}IHHtHt.bHDž`H}̍HhHtbHLLLH]UHH$HLLLH}HuUMH}̍ wHUHp\H:HcHhH}HEH@@@qAHgL%gMu MLMHLAHEHPH8\H`:HcHHuH}uH}HEHxhHu4HEHHEHxhHuFHEHEHxhHUHu}'HEH@hHH}t H}*1HEHcEHc]Hq耍HH-H9v(H}MDHEHx(H}HphHEH@hHH}t H}1HEH}tHEHxhHUHu|H}ؾu@HEH@(HEHcX\HcEH)qŒHH-H9vjHEȉX\HuH}vHEH@hHH}t H}1HEH}tHEHxhHUHuCkv]H}mFHHtHt^HDžD]H}ɍHhHt^HLLLH]UHHd$H}YHEHHHH9}HHq葋H @H]UHHd$H]H}u(EHEH@@XHcHq2HH-H9vڊ]fHcEHc]HqHH?HHHH-H9v虊]H}@PE;E~,Hc]Hq豊HH-H9vY]2E;E}=Hc]Hq}HH-H9v%]E;EFEEH]H]UHH$pH}HuUMH}Ǎ賋HUHuXH)6HcHxu)HEHPhDMDEHMH=;g6HEZH}DǍHxHtc\HEH]UHHd$H}HuHUM HEHxx}HuHU"H]UHHd$H}HuHUHEHxxHuHUH]UHHd$H]LeLmH} }HELhhHEL`hMucI$HHLH]LeLmH]UHHd$H}HuHEHpH}dڠH]UHHd$H}HuՉHEHpH}$ƍH]UHHd$H}HuHU葉HEHx8u H}1ōHEHx8HuHUH]UHHd$H}HuHU1HEHUHuwUH3HcHUueHUH}HuCH}HuԍHtBHEHx8uH=:6EHUHB8HEHx8HUHuHH}*XH}čHEHtYH]UHHd$H}uVHE@T;Et%H}1HEUPTH}H}UH]UHHd$H}HuH7čxHEHUHuCTHk2HcHUHuH}̾HuH}čH}詌uBHEHxt7HEH@Hx8t(HEH@Hp8H}ؾHuHUH}1čHEHxHu2ӍHt,H}4HEHxHuÍH}H}QVH}ÍH}HEHtXH]UHHd$H}uֆHE@h;EtHEUPhH}H]UHHd$H}u薆HE@\;Et%H}qHEUP\H}H}H]UHHd$H}IHExX|#HEH@xptHEH@HxhHuH]UHHd$H}HExX|#HEH@xptHEH@HxhHuH]UHHd$H}Hux襅HEHUHuQH0HcHUHEH@H;EHEHxtH}>HEHxHu-HUHEHBHEHxtlHEHxHuuHEHxu?HEH@Hx8t0HEH@Hp8H}0־HuHEHPHEHx1UH}\ HEH@9TH}HEHtUH]UHHd$H}HuHp]HUHuPH.HcHUu?HEHxHuЍHt)HEHxHuqHEHx01bH}) SH}ۿHEHtTH]UHHd$H}u趃HE@`;EtHEUP`H} H]UHHd$H}HuH觿pmHUHuOH-HcHUu0HEHx(HuύHtHEHx(Hu聿H}H RH}HEHtTH]UHHd$H}HuՂHEH@@H;EtHEHUHP@H} H]UHHd$H}HuH跾p}HUHuNH,HcHUu0HEHx0Hu'΍HtHEHx0Hu葾H}X QH} HEHt,SH]UHHd$H]LeH}u ށHE@d;EHExX|@HEHPHE@dHLc#IqLH-H9vD#HEUPdHExX|@HEHPHE@dHLc#IqLH-H9vSD#H}W H]LeH]UHH$HLL H}Hu݀H}u'LmLeMu~LHi>LShHEH}HUHuLH+HcHUuYHEH}17HE@XHE@PH}} HEH}tH}tH}HEHOHEHtlHpH0`LH*HcH(u#H}tHuH}HEHP`\OPROH(Ht1R RHEHLL H]UHHd$H]LeLmH}Hu(YH}~'LeLmMu@}I]HÍHuHE@\;Eu HE@T;Et@H}(HEHxHu至HUEB\HEUPTH}H}1FHx಍H}ײHEHtGH]UHHd$H}vHEHxt'HEHxHuHEH@HUH@HBH:HEHHHHH9}HHqtH @H]UHHd$H})vHEHxHuH]UHHd$H}xuHEHUHu?BHg HcHUu6HEx\~(HExT~HEHpH}H}tEE!EH}xHEHtFEH]UHH$`H`LhLpLxH}Hu6uHEHUHu|AHHcHUNHEHx8t4HELp8LeLmMurI]H2LL'LeLmMurI]HX2LHE@dHAgHH}H5b.HEHP(H}H5j.HEH@@HEHHH}l1HH}[01H}΍HUH}H5/.HEHPH}H57.HE@\EHHHc}k1HH}깍01H}m΍HUH}H5.9HE@TEHHHc}k1HH}葹01H}΍HUH}H5.HEHPH}H5.HE@`EHHHc}k1HH} 01H}͍HUH}H5.oHEHP H}H5.WBBH}虮HEHtCH`LhLpLxH]UHHd$H}YrHEHEHxHEH@Hp`H=g"tHEH@H@`HE8HEH@Hp`H= g"t@HEH@H@`HHEHt$HEHp`HuH=Ig"uHEHEH]UHHd$H}qHEHHEHxpqH]UHHd$H}IqH]UHHd$H})qH*.H=f,7a2HH5H_?H]UHHd$H}pH]UHHd$H]LeLmLuH}(pHEHHUH=gHUHBpHELAHEHHu[nIL.LLAHUHHEHHUH=gHUHHELAHEHHumIL-LLAHUHH]LeLmLuH]UHH$HLLH}HuHUioH}u'LmLeMuPmLH,LShHEH}LHUHu~;HHcHUHEHUH}1|HEHuHUHgHLeLmMulI]Hb,LHEƀHE@xHEǀHEH}tH}tH}HEH=HEHtlHhH(:HHcH u#H}tHuH}HEHP`=?=H Hti@D@HEHLLH]UHHd$H]LeLmH}Hu(mH}~'LeLmMukI]H$+LHEHt(HEH@PuHEHHuULmLeMu#kI$H*LH}HEHe$HEHU$HEHE$H}1 |HEHxp-$H}tH}tH}HEHPpH]LeLmH]UHH$0H8L@LHLPLXH}HuOlHE@PEH}HUHp|8HHcHhHEH!HEHHEHELcIq jLH-H9viHEHHH`H@@XHcHqiHH-H9viAE9DeDE쐃EHEHHuHEIH]LeMuiM,$L(HLAtHHEEHEHHEHuH}HEHHuHEHED;}RHEHHH`H@@XHcHqhHH-H9vthHEH}t'HEtEHEHHu>(HEHHxtEHEH1t9H}HhHtHtM:HDžh΀}t5HEHt'LeLmMugI]H@'LH8L@LHLPLXH]UHH$pHxLeH}+iH}HUHup5HHcHUHEǀHEHxpt HEHxpHEHtHEHEHEHHEHHEH@@XHcHqfHH-H9vf|2E@EHEHuIL ;]HEHaHEHtHEH7H}HEHt9HxLeH]UHH$`HhLpLxLuH}gEHE@PH}HUHu3HHcHUHE@PHEHHEH@@@~+LeLmMueI]H$LEHELHELHELMudI]Hy$LLuHEHHEHE%6H},HEHtHt7HEԊEHhLpLxLuH]UHH$HL L(H}fHEHUHuW2HHcHUHE@PHEuJH}詡HEHP`1H5.H}/HUH= 7&HH5H3HEƀH}HxH81HHcH0u/HE@PuKHEHHxtHEH4H}H0HtH5HDž0HEHt*HEHHU@xBhHEHHU@|BlLeLmMubI]H+"LHEHt@LeLmMuRbI]H!LHEHHuHE3H}HEHt(5HL L(H]UHHd$H}HucHEHxtHEHU@d;BxrEEEH]UHHd$H}ycHEHxpH]UHHd$H}IcHEHxpH]UHHd$H}hcH}HUHu^/H HcHUuHEHxp>HEH.Y2H}`HEHt3H]UHHd$H}xbEH}HUHu.H HcHUuMHEubHEHtHEHu@HEHHEH@@@&E1H}HEHtHt3HEԊEH]UHHd$H}uaoH]UHHd$H}uaoH]UHHd$H}YatoH]UHHd$H})aDoH]UHHd$H}`oH]UHHd$H}`nH]UHHd$H}`nH]UHHd$H}i`nH]UHHd$H}9`TnH]UHHd$H}Hu` nH]UHHd$H}_mH]UHHd$H}Hu_mH]UHHd$H}Huu_mH]UHHd$H}HuE_`mH]UHHd$H}_4mH]UHHd$H}^mH]UHH$pH}HuUMLEH}ٚ^HUHu*H HcHxul-H}THxHts/H]UHHd$H}Hu%^@lH]UHHd$H}HuU] lH]UHHd$H}HuUHMLEHEHHEH0]kH]UHHd$H}HuHUq]kH]UHHd$H}HuHUA]\kH]UHHd$H}HuHUHMHEHHEH(\kH]UHHd$H}u\jH]UHHd$H}\jH]UHHd$H}i\jH]UHHd$H}HuHgx-\HUHu{(HHcHUu#j+H}嗍HEHt-H]UHHd$H}Hu[iH]UHHd$H}[iH]UHHd$H}i[iH]UHHd$H}Hu5[PiH]UHHd$H} [$iH]UHHd$H}HuZhH]UHHd$H}HuZhH]UHHd$H}HuuZhH]UHHd$H}HuEZ`hH]UHHd$H}Z4hH]UHHd$H}HuYhH]UHHd$Y8E}UHgH]UHH5gH=.gyLH]UHHd$H}YYEfEUHºgH4H}Bt }rEEH]UHHd$H}XEfEUHºgH4H}At }rEEH]UHHd$H]LeLmLu(XHVp|L H<.HEp|L0MuhVM.L HLAHEH]LeLmLuH]UHH$H}uXHEHUHuY$HHcHUH}17EEEEHu1HH5gH=GgDEH1HVH輳7VHEH8tHEH0H}1HI.䔍HEH0H}HU1Δ} dH=.HHEHHHA.HHH}1ɺ~&H}ՒHEHt'H]UHHd$H]LeLmLuH}0VLuHnn|HHdn|L MuTM,$L+HLAHEx$t=HEHPA1ɾH=gDHEHUHP8HuH=|.'<H]LeLmLuH]UHHd$H}U1H]UHHd$H}UHEH@Hq&THUHBH]UHHd$H}HuUHEHxHudHtHEHxHuΑH]UHH$HLL H}Hu-UH}u'LmLeMuSLHLShHEH}HUHuB!HjHcHUuBHEHE@ HE@$HEH}tH}tH}HEH$HEHtlHpH0 HHcH(u#H}tHuH}HEHP`#N%#H(Ht&s&HEHLL H]UHHd$H}HuSHEHpH}$H]UHHd$H]LeLmLuH}Hu0SH]LuLeMuoQM,$LLHAH]LeLmLuH]UHHd$H]H}%SHEx u%1ҾH=]7XHH5HV!HEHcX HqCQHH-H9vPHEX HEx u H}A H]H]UHHd$H]H}RHEHcX HqPHH-H9vzPHEX H]H]UHHd$H]LeLmLuH}Hu0RHEL`8H]HELp8MuOM.LHLAH]LeLmLuH]UHHd$H]LeLmLuH}Hu0QHEL`8H]HELp8MuwOM.LHLAH]LeLmLuH]UHHd$H}Hu%QHEH}H5BHuH=gtHUHEH@8HB8H]UHH$HLL H}HuPH}u'LmLeMuNLH9LShHEH}HUHuHHcHUu:HEH}1VHEH}tH}tH}HEHHEHtlHpH0OHwHcH(u#H}tHuH}HEHP`K AH(Ht "!HEHLL H]UHHd$H]LeLmH}Hu(IOH}~'LeLmMu0MI]H LH}1H}1WH}tH}tH}HEHPpH]LeLmH]UHHd$H}NH}WH}1H]UHH$`H}HuNHDžhHUHuHHcHUH}uH}H5.藊HEHp H}聊HE@t]HEHHpH.HxHEHxHhGHhHEH.HEHpH}1ɺ׍HE@t]HEHHpHe.HxHEHxHhzGHhHEH.HEHpH}1ɺmHh,HEHtNH]UHHd$H]LeLmLuH}Hu0LHEH@8H;EHEHx8t6HELp8LeHELh8MuJI]H^ LL@HE@4HEHUHP8HEHx8t6HELp8LeHELh8MubJI]H LL8H]LeLmLuH]UHH$HLL H}HuKH}u'LmLeMuILH LShHEH}HUHuH:HcHUyHEH}11fYH=WhHUHHEHHUHHHA HQ(HEH}tH}tH}HEHHEHtlHpH0\HHcH(u#H}tHuH}HEHP`XNH(Ht-HEHLL H]UHHd$H]LeLmH}Hu(YJH}~'LeLmMu@HI]HLHEHH}1PYH}tH}tH}HEHPpH]LeLmH]UHH$pH}IHEHUHu H4HcHUHEHHuCHuHEHxpЅHEHxptAHEH@ HxH?.HEHEH@pHEHxHEHxp1ɺDHEHHuHHuHEHxx_HEHxxtHEHPxHEHp HEHxx1e`H}跄HEHtH]UHHd$H}HuHH}H]UHHd$H}HueH1H=7H HH5HH}1蒄H]UHH$PHXL`LhLpH}HuGHDžxHEHUHu!HIHcHUHuH=Ogjt\HEHEHHEH'AHELp LeLmMu]EI]HLL0H}\YH}!HuHx%Hx1H5!.H}蘄HUH=H7CHH5HAlHxH}跂HEHtHXL`LhLpH]UHH$PHPLXL`LhH}HuVFHDžpHUHuHHcHxEH} HEHuHIzHE@H@HE8.uHEHEHuHHzHMH)HuHp\LpLeLmMuCI]H7LL0HEHEHEHE؀8 tHEH;Eu$HEHH<HEH@-Hu1Hp"HpHEH{GtEHp‍HxHtEHPLXL`LhH]UHHd$H}DEHEH@EHEH@0 rr t rʊEH]UHHd$H}Hu5DH}tIL%LLL A$ HUHHEH}tH}tH}HEHHEHtlHpH0f HHcH(u#H}tHuH}HEHP`bXH(Ht7HEHLLLLH]UHHd$H]LeLmH}Hu(Y?H}~'LeLmMu@=I]HLHEHH}1H}tH}tH}HEHPpH]LeLmH]UHHd$H]LeLmH} >HELHELMuHU؋EH|`uH=GJHU؋MHD`HE؋UH|`MHuHU25H]UHHd$H}uHUHM =HUEH|`HuHU2H]UHHd$H}uHU=HUEH|`Hu7H]UHHd$H]LeLmH}Hu0I=H}~'LeLmMu0;I]HLE@EHEUH|`k}rH}1*LH}tH}tH}HEHPpH]LeLmH]UHHd$H}HuH]UHHd$H}Hu0>H]UHHd$H}Huu0>H]UHHd$H}HuE0`>H]UHHd$H}HuU 0->H]UHHd$H}HuU /=H]UHHd$H}HuHU /=H]UHHd$H}/=H]UHHd$H}uV/q=H]UHHd$H}HuHU !/<=H]UHHd$H}Hu.=H]UHHd$H}Hu.-Y;H]UHHd$H}HuU --;H]UHHd$H}HuU ,:H]UHHd$H}u,:H]UHHd$H},:H]UHHd$H}HuHUQ,l:H]UHHd$H}Hu%,@:H]UHHd$H}Hu+:H]UHHd$H}Hu+9H]UHHd$H}Hu+9H]UHHd$H}i+9H]UH1E+HB|HH]UHH5gH=gH5gH=یgH5_gH=،gH]UHHd$H=B|uH=gHoHB|HB|H]UHHd$H]؉}HuUt }EHHUuHSHEH]H]UHHd$H]}HuUMDEMHËuHHEHu@}u*Ha.H=M6HHH5HF}1:HEHEHxuH=gnHUHBHEHxMUHu HEH]H]UHHd$H]}EEHËuHHuEE}|EEH]H]UHHd$H]Љ}uE!HËuHHEHt4EEܐEHEHxu| HuE܉E }|֋EH]H]UHHd$H}HuHEHU;} EHEHU;~ EEEH]UHHd$H}HuHEHU;} EHEHU;~ EEEH]UHH$ H}HuUH}uHEHUHRhHEH}HUHuH;ҌHcHUu9HEHUEBHEH}tH}tH}HEHHEHtlHhH(HьHcH u#H}tHuH}HEHP`(H HtrMHEH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuHьHcHUuMHEHUH}1gHEHǀ0HEH}tH}tH}HEHHEHtlHhH(lHЌHcH u#H}tHuH}HEHP`h^H Ht=HEH]UHHd$H]LeH}HuH~HEHUHHHEH0zHEH0HEH0HÃ|BEDEHEH0uHEH0HILݍ;]HEH0rݍH}1'LH}tH}tH}HEHPpH]LeH]UHHd$H}HHtHEHHuHEH]UHHd$H}H]UHHd$H]UHHd$H}0H]UHHd$H}HuHE@HHHH]UHHd$H]H}HuHEHxHuԍt HEHEjHuH==lԍtNH}H}+Ã|8EEEH}HH}xHEHu ;]HEHEH]H]UHHd$H}HH0u;H=z=6腯HUH0HuHHEH0@֞H]UHHd$H]H}HuHHxtUHEHx¾H=RgHHEH@H0HEHp HEH@H0HXHuH=P=ӍtDH}H}Ã|.EfEEH}lHH}0;]H]H]UHHd$H}HuH^HUHu%HM̌HcHUuHuH6E.H}]HEHtEH]UHH$`HhH}HuHDžpHUHuHˌHcHx[EHEHuH=nR@эtHuH}EHuH=g@эtHuH}EHuH= 'BwэtHuH}fEiHuH={BNэtHuH}E@HuH=:2W%эtHuH}EHuH=q@ЍtHuH}EH}HpKHpHEHx/E}tHEHxHg0HEHxHg;EHEH@H0HEHp HUHEH@H0HPt0HEH@H0uHEH@H0H@EHEHxuUHuH="=ύtNH}H}Ã|8E@EEH}$H]UHHd$H}HuHU$H]UHHd$H}u#H]UHHd$H}HuHQHUHuH-HcHUu#H}oQHEHtH]UHHd$H}Huj#H]UHHd$H}HuJ#H]UHHd$H}Hu*#H]UHHd$H}Hu #H]UHHd$H}"H]UHH,|H]UHH=,|̢H]UHH$PH}HuHUHMLELMHEHDžXHUHhH輾HcH`HUHuH;gH8H1gHHHUH=g HEHuHX\HXHEHxXPHuHX8HXHEHxOHEHUHP8HUHEHB(HEHB0HuHgH8HgHHHX2OH})OH`HtHHEH]UHH$PH}HuHUHMLELMHEHDžXHUHh$ߍHLHcH`HUHuHgH8HgHHHUH=Eg0HEHuHXHXHEHxXNHuHXȉHXHEHxNHEHUHPPHUHEHB@HEHBHHuH)gH8HgHHnHXMH}MH`HtHEH]UHHd$H}1H]UHHd$H]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuݍH誻HcHUu;HEHUHEHBHEH}tH}tH}HEH_HEHtlHhH(ݍH6HcH u#H}tHuH}HEHP` H HtHEH]UHHd$H}HuH1LH]UHHd$H}HHUHHuH}3t!H}H}u H}H]UHHd$H}HHgH:HgH HH]UHHd$H]H}HuHKHUHuۍH鹌HcHUuKHuH}HEHH}HEHHt H}HEHHHHލH}JHEHtH]H]UHHd$H}HuHUHEH@H;EtHUHEHBHEHBH]UHHd$H}HuH1JH]UHHd$H}HHxtHEHxHuHEPH]UHHd$H}HHxtHEHx HuHEPH]UHHd$H}HgHEHH]UHHd$H}HgHH]UHHd$H}HgHH;EEEH]UHHd$H}HuH}vHuH}HEHH}8H]UHHd$H}HuH}6HuH}HEHH}H]UHHd$H}HHUHHH}H]UHHd$H}HHUHHH}H]UHHd$H}HHUHHH}gH]UHHd$H}H5$|HH]UHHd$H}HHUHu؍HԶHcHUu"HuH=>$|HH=A$|t17$|ۍH}GHEHtݍH]UHHd$H$|H]UHHd$H}H=#|HtH=#|t1#|H]UHHd$H]H}؉uUMDEE}5OHËu}'OHH}HEHHH]H]UHHd$H}HuHUHMHEHUHHhH}HEHXHUHuP׍HxHcHUuCHUHuH}HEHHuH}HEHxHuH}HEH%ڍH}HEH`H}HEHpHEHtۍH]UHHd$H}HHѺgHBH]UHH$ H}HuHUH}uHEHUHRhHEH} HUHuR֍HzHcHUujHEHEHx Hu&FHEHp HEHxXFHEHp HEHxEHEH}tH}tH}HEHٍHEHtlHhH(ՍH׳HcH u#H}tHuH}HEHP`؍6ڍ؍H Htۍ[ۍHEH]UHHd$H}HuHUHMLELMHEHHEHH}Hu EH}1EHEHx8t#LEHMHUHuH}HEP8EHEHx(t(HEHx0LMLEHMHUHuHEP(EnHEHxPt$LEHMLMHUHuH}HEPPE?HEHx@t0HEH$HEHxHLMLEHMHUHuHEP@EEEH]UHHd$H}@uHE@:Et HEUPH]UHHd$H}0H]UHHd$H}HuHUMH]UHHd$H}HuHUMDE11JH]UHHd$H}HuHUHEH@8H;EtHUHEHB8HEHB@H]UHH$H}HuHUHMH}uHEHUHRhHEH}HUHuҍHHcHxuRHEHEHUHPHHEHUHPPH}1mHEH}tH}tH}HEHՍHxHtlH`H ]ҍH腰HcHu#H}tHuH}HEHP`YՍ֍OՍHHt.؍ ؍HEH]UHH$H}HuHUMDEDMH}uHEHUHRhHEH} HUHpэH̯HcHhucHEHUHEHBHUЋEBHUЋEBHEЋUPHEЋUP HEH}tH}tH}HEHVԍHhHtlHPHэH*HcHu#H}tHuH}HEHP`ӍՍӍHHt֍֍HEH]UHHd$H}HH gH:HgHHHH]UHHd$H}HuH@HUHu5ЍH]HcHUu%HUHuHgH8HgHH(ӍH}?HEHtԍH]UHH$pH}HuHUHMH}{?HUHuύHHcHxu>ҍH}?HxHtԍH]UHHd$H}H]UHHd$H}H]UHHd$H}H]UHHd$H}H]UHHd$H}~H]UHHd$H}^H]UHHd$H}Hu:H]UHHd$H}H]UHHd$H}HuH]UHHd$H}H]UHHd$H}H]UHHd$H}HuH]UHHd$H}HuzH]UHHd$H}^H]UHHd$H}Hu:H]UHHd$H}H]UHHd$H}H]UHHd$H}HuH]UHHd$H}H]UHHd$H}HuH]UHHd$H}HuzH]UHHd$H}HuZH]UHHd$H}Hu:H]UHHd$H}HuH]UHHd$H}Hu H]UHHd$H}@u H]UHHd$H}@u H]UHHd$H}Hu H]UHHd$H}u{ H]UHHd$H}u[ H]UHHd$H}Hu: H]UHHd$H}u H]UHHd$H} H]UHHd$H}HuU H]UHHd$H}HuHU H]UHHd$H}uHUM H]UHHd$H}؉uUHMDE` H]UHHd$H}HuHUHMDEDM* H]UHHd$H} H]UHHd$H} H]UHHd$H}uHUHM H]UHHd$H}uUM H]UHHd$H}~ H]UHHd$H}HuZ H]UHHd$H}Hu: H]UHHd$H} H]UHHd$H} H]UHHd$H} H]UHHd$H} H]UHHd$H}Hu H]UHHd$H}~ H]UHHd$H}^ H]UHHd$H}> H]UHHd$H} H]UHHd$H} H]UHHd$H} H]UHHd$H} H]UHHd$H} H]UHHd$H}HuHUMs H]UHHd$H}N H]UHHd$H}u+ H]UHHd$H}@u H]UHHd$H}fuH]UHHd$H}uH]UHHd$H}uH]UHHd$H}uH]UHHd$H}HuUHMLELM[H]UHHd$H}Hu:H]UHHd$H}H]UHH$pH}HuHUHMLELMLʾH};H}5HUHpōH%HcHU؅uɍH}g5HEHtʍH]UHHd$H}ukH]UHHd$H}HuHUHMBH]UHHd$H}HuH]UHHd$H}H]UHHd$H}H]UHHd$H}H]UHHd$H}H]UHHd$H}~H]UHHd$H}HuZH]UHHd$H}>H]UHHd$H}H]UHHd$H}uH]UHHd$H}uH]UHHd$H}uH]UHHd$H}HuH3HUHuÍHHcHUumƍH}/3HEHtQȍH]UHHd$H}@u*H]UHHd$H}u H]UHHd$H}H]UHHd$H}H]UHHd$H}HuH]UHHd$H}uH]UHHd$H}ukH]UHHd$H}HuJH]UHHd$H}HuH72HUHuUH}HcHUuhōH}1HEHtƍH]UHHd$H}H]UHHd$H}HuUH]UHHd$H}HuHUMsH]UHHd$H}NH]UHHd$H}.H]UHHd$H}Hu H]UHHd$H}HuH]UHHd$H}H]UHHd$H}HuHUMH]UHHd$H}HuHUvH]UHHd$H}HuHUVH]UHHd$H}Hu:H]UHHd$H}HuHUH]UHHd$H}H]UHHd$H}HuH]UHHd$H}uH]UHHd$H}H]UHHd$H}HuzH]UHHd$H}u[H]UHHd$H}u;H]UHHd$H}uH]UHHd$H}H]UHHd$H}@uH]UHHd$H}HuH]UHHd$H}uH]UHHd$H}@uzH]UHHd$H}^H]UHHd$H}Hu:H]UHHd$H}H]UHHd$H}H]UHHd$H}HuH]UHHd$H}HuH]UHHd$H}H]UHHd$H}HuHUMsH]UHHd$H}NH]UHHd$H}.H]UHHd$H}u H]UHHd$H}H]UHHd$H}H]UHHd$H}uH]UHHd$H}H]UHHd$H}nH]UHHd$H}HuJH]UHHd$H}Hu*H]UHHd$H}uHUHMH]UHHd$H}uHUHMH]UHHd$H}HuHUH]UHHd$H}HuHUH]UHHd$H}nH]UHHd$H}HuJH]UHHd$H}Hu*H]UHHd$H}Hu H]UHHd$H}HuHUH*HUHuH9HcHUu$H}{*HEHt蝿H]UHHd$H}HuzH]UHHd$H}HuHg*HUHu腺H識HcHUu-蘽H})HEHtH]UHHd$H}H]UHHd$H}H]UHHd$H}HuH]UHHd$H}HuH]UHHd$H}nH]UHHd$H}NH]UHHd$H}.H]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuH:HcHUu4HEHEH}tH}tH}HEHHEHtlHhH(襸H͖HcH u#H}tHuH}HEHP`衻,藻H HtvQHEH]UHHd$H}HuH]UHHd$H}HuHUH]UHHd$H}HuHUH]UHHd$H}HuH]UHHd$H}HujH]UHHd$H}NH]UHHd$H}.H]UHHd$H}H]UHHd$H}HuH]UHHd$H}HuHUH]UHHd$H}HuHUH]UHHd$H}H]UHHd$H}nH]UHHd$H}NH]UHHd$H}.H]UHHd$H}Hu H]UHHd$H}HuH]UHHd$H}uH]UHHd$H}H]UHHd$H}HuH]UHHd$H}HujH]UHHd$H}HuHUFH]U]UHH=|$H]UHHHygH8uHJSH8uNHH=g ;HFgHHHc]HH}1A|/t/Hc]HqUHH-HH9v]ЋE;E~eLeHcEHH9vHc]HH}O1A|/t/Hc]HqHH-HH9v]Hc]HqHH-HH9vZ]4DHc]HqHH-HH9v$]ԋE;E~BLeHcEHH9vHc]HH}{0AD#t?tuHcMHcEH)qHcUH}Hu@2HcMHcEH)qHqHcUH}Hu2H]LeH]UHHd$H}HuHUHMH8+HEHEHJ.HEHEHEHuH}H#H}uHEH0H}HUe H]UHHd$H}HxHEHUHuH%HcHUuHuH}mH}tEH}SHEHtuEH]UHHd$H]LeH}H(EH]HtH[HH-HH9v؉EE/Hc]Hq1HH-HH9vߍ]E;E~8LeHcEHH9vߍHc]HH}+.A|:uE;EtHc]HqߍHH-HH9vRߍ]E;E~eLeHcUHH9v)ߍHc]HH}-A|/t/Hc]Hq@ߍHH-HH9vލ]E;E~eLeHcEHH9vލHc]HH}:-A|/t/Hc]HqލHH-HH9vtލ]EEEH]LeH]UHHd$H]LeH}H EH]HtH[HH-HH9vݍ؉E6Hc]Hq!ލHH-HH9vݍ]E;E~BLeHcUHH9vݍHc]HH},AD#t?tuEH]LeH]UHHd$H}HuH#ߍHEHHcHqgݍH}HuH-H]UHHd$H]LeH}HuH(ލHEHHH}_E}|H}VEHc]Hq܍HH-HH9vt܍]}~8LeHcUHH9vM܍Hc]HH}*A|/t돋E;E~HcMH}HuH,H]LeH]UHH$PHXL`LhH}HuHݍHEHEHEHDžpHUHuéH뇌HcHxu^H]H1LeL%LmLLLHH}GHuHpwHpH}HMHuzHpH}H}H}HxHtҭHXL`LhH]UHHd$H}HuHp܍HEHEHUHu讨HֆHcHUu'HuH}HuH} HuH}蟫H}H}HEHtH]UHHd$H]H}HۍHEHtH@H}7H]HH}J(HHH5IC.tHtEEEH]H]UHHd$H]LeH}HuH ;ۍH}uYLeH]HtH[HHH9v*ٍHH}'A|/uH}HuHB.k H}Hu,H]LeH]UHH$`H`LhLpH}HuHxڍHEHEHEHUHu讦HքHcHxuCH]HLeLLmLLLHH}2H}HuU耩H}H}H}HxHt䪍H`LhLpH]UHHd$H}HuUHٍHEH8tHH=51HUH!}uHEH8Hu@$}HEH8Hu!H]UHHd$H}HuHUMH ؍HEH8tHH=Bg HUH%}uHEH8HUHu}HEH8HUHu苪H]UHH$HLLH}HuHUHMLELMHH؍H}t)LmLeMt+֍LHЕLShHEH}tHUHpSH{HcHhudHEDMLEHMHUH}HEHEHx@HuHEH}uH}uH}HEHHhHpHPH謣HԁHcHu%H}uHuH}HEHP`覦1蜦HHt{VHEHLLH]UHH$HLLLH}HuH֍HEHEHDžHUHxH逌HcHpEHEHx(t H}tlLuLeLmMtԍI]H贓LLH}tH=.H(HDž HuH#HH8HDž0 H=.HHHDž@ HEH@(HXHDžP H=.HhHDž` H H苓EbfE܉E/Hc]HqӍHH-HH9v$Ӎ]HcUHEHtH@H9~8LeHcUHH9vҍHc]HH}m!A|;uHcMHcEH)qҍHcUHuH}<#Hc]HqҍHH-HH9vҍ]HEx8uHuH}dtaHuH}ʍtJHEHx0t9HuHe$HHEHp0A=;YuEHcUHEHtH@H9GHH}H}HpHt訤EHLLLH]UHH$@H@LHLPLXH}HuH!ӍHEHEHEHDž`HDžhHUHx>Hf}HcHpgHEHp(H}HLgH8uH]HĴgL0HgL(Mt ͍MeL诌LHA$@HEH0H}HuH}HuH}' RH} H} HEHtŸH`LhLpLxH]UHHd$H}HuHc΍HEHxpHu2Ht?H}E}u H}HEHxpHu{ }u H}H]UHHd$H}@uH͍HE@`:EtuHUEB`HE@Pt\HEx`u:HEHxptHEHp HEHxp HEHxxt H}HEHxxu H}H]UHHd$H}HuH3͍HEH@xH;EtZH}HHEHxxuHEHxxHu HEHUHPxHEHxxuHEHxxHupH}gH]UHHd$H}HuH̍HEH#HEHUHH]UHHd$H]LeLmLuH}HuH0C̍HEHtDHH=5XHLuLmMt ʍMeL證LHA$HELH]HELMtɍM,$LmHLAPH]LeLmLuH]UHH$HLLH}HuHUHTˍH}t)LmLeMt7ɍLH܈LShHEH}tHUHubHuHcHUuGHEHUH}H؞HEH}uH}uH}HEH3HEHpHhH(ޖHuHcH u%H}uHuH}HEHP`ؙcΙH Ht譜舜HEHLLH]UHHd$H]LeLmH}HuH0ɍH})LeLmMtǍI]H^LH}HEHxxu H}HEHHEHuHEHHcXHqǍHH-HH9vLǍ}<]EE쐋EEHEHuHH聁}~HEHiHEHYH}HמH}uH}uH}HEHPpH]LeLmH]UHHd$H}HdȍHEHUHu誔HrHcHUHEHxxu\HEH@pHEHE HUHX>HpHH}ܠHUHH=wS,HH5H*HcgH8tHOgH0H}S.H}HEHt觘H]UHHd$H}HdǍHEHUHu誓HqHcHU~HEHxxt\HEH@pHEHE HUHW>HpHH}۠HUHH=vS,HH5H*H}Hj@H}HEHt蹗H]UHHd$H}HwƍHEHxxEEH]UHHd$H}HGƍHEHEEH]UHH$HLLLLH}H ōHEHUHu$HLpHcHUKHEHt6H}HHEHPpHH=vSOHEHhH(豑HoHcH ~HEHHHEHHEHL}IHLeMtM,$L葂HMLHLHAEDH};}H Ht躕LmD}LuH]Ht~L#L#LDLA$퓍H}DHEHtfHLLLLH]UHHd$H]LeLmLuL}H}uHUH@Í}tvHEHxxu@HELxxLu]HEL`xMtM,$LCLLA)HUHH=rS軄HH5H蹑H]LeLmLuL}H]UHHd$H}HuHUHMLELMH8ÍHEHH`EEH]UHH$HLLLLH}HuHUHMLELMHHHDžXHUHhڎHmHcH`HuHXLXHMHUHH=g.cHEH@HrHlHcHutHEHHEHHEHL}LuHLeMt輿M,$L`ILLHHLAEH} zHHt艒HXHH`HtgEHLLLLH]UHHd$H]LeLmLuH}HuH8EHEHuEHELLeHELMt詾I]HM~LLEEH]LeLmLuH]UHHd$H]H}HuHUHMH8GEHEHHHE@PuHEHuHEHHcXHqLHH-HH9vm}EfDE؃EHEHu\H@HEH}tH}it/HEHx0HuɮuHUH}бH+;]~댋EH]H]UHHd$H]H}HuHUHMH8EHEHHMHE@PuHEHuHEHHcXHq HH-HH9v诼}EfDE؃EHEHuH@HEH}tH}rht/HEHx0Hu艭uHUH}бH;]~댋EH]H]UHHd$H]H}uHUHMH8ȽEHEHHHE@PuHEHuHEHHcXHqͻHH-HH9vp}yEE؃EHEHuH@HEH}tH}rgt&HEЋ@;EuHUH}бH;]~땋EH]H]UHH$PHXL`LhLpLxH}HuHUHMHrHEHUHX赈HfHcHP|EH}HHE@PuQH}tH}^t4HEHu!H}7HcHq'HH-HH9vʹH}EfEԃEԋuH}CHEHExHEH@8tHEH@HpH}HEHHcXHqHH-HH9v"AA}%EDE؃EHEHuHEHuH=%gktHEHELmH]LeMt荸M4$L1xHLAuHEHxHUHu4H".HHDž HEH@pHHDž H#.HHDž HcEHqYHHHHDžDž/HDžH}HDžH".HHDž H]Ht職L#L&wLHwvHHHDžH".HHDž HEH(HDž Dž8 HDž0HEH8~HHDž@HH wD;}~;E~7JH}HPHtEHXL`LhLpLxH]UHHd$H]H}HuHUHMH8GEHEHHHE@PuHEHuHEHHcXHqLHH-HH9v﵍}xEfDE؃EHEHu\HEHuH=gXht,HEH@ H;EuHEHxHUH4;]~땋EH]H]UHHd$H]LeLmLuL}H}HuHUHMLEHhEHEHHIHE@PuHEHuHEHHcXHqHHHH9v誴HEE}EEЃEHEHuHEHuH=uggtZL}LuLmH]HtL#LsLLLA$tHEHxHUHE;E~aEH]LeLmLuL}H]UHH$H}HuHUHMH腵HDžHUHxŁH_HcHpRHEHHEHu-HEHLEHMHUHuHEE HuHgH8CHEHXH4H\_HcHH}tH}tnHEH@pHHDž HEHHDž HHD>HpHHMɠHH}EH}оHUHE裃H}lHHt脃HHpHtEH]UHHd$H}HuH裳H}t/H.HHH=bStHH5HˁHEHtHH=ͻ5hjHUHHEHHu|HEHHu H}kH]UHHd$H}HuHӲH}t/Hs.HHH=aSsHH5HHUHH=وg$^HH}H]UHHd$H}HuHUHOHEHUHH=gHjHH}eH]UHHd$H}HuHHEHtHEHHu=H]UHHd$H]LeH}H 诱HEHtHEHHcXHq்HH-HH9v胯}:EDEEHEHuILi;]~HEHbH]LeH]UHHd$H}H簍HEHt EHEH@EEH]UHHd$H}uH蔰HEHuAHEHEH]UHHd$H}HuHSH]UHHd$H}HuH#H]UHHd$H}HuHHEHppH}BH]UHHd$H]H}H賯HEHcHqHH-HH9v蠭HEH]H]UHHd$H]H}HCHEt,H%.HH=O^SjpHH5Hh}HEHcHqRHH-HH9vHEHEt H}CgH]H]UHHd$H}uH脮HEHxu4ߝHEHEH]UHHd$H}HuHCHEHgHEHxtHH=57eHUHBHEHxHuH]UHHd$H}HuHӭHEHxuHEHxHuH}LH]UHH$HLL H}HuHhH}t)LmLeMtKLHjLShHEH}tHUHuvyHWHcHUu3HEHEH}uH}uH}HEH[|HEHpHpH0yH.WHcH(u%H}uHuH}HEHP`|}{H(Ht~~HEHLL H]UHHd$H]LeLmH}HuH(H})LeLmMtꩍI]HiLOH}HcHqHH-HH9v躩H}HHH}kHEHxcHEHxcH}HcH}uH}uH}HEHPpH]LeLmH]UHHd$H}HHEHxt EHEH@@EEH]UHHd$H}HuH}H藪HUHuvH UHcHUu2HuH}E}}uH}HEHEyH}"HEHtD{HEH]UHH$PH}HuHUHMLEH}HةHDžhHUHxvH@THcHpHuH}HUHHEH8t[EHEHEH`HDžX HXH:>HpHHh5HhH}HEEH}HexHhH}HpHtyEH]UHHd$H]H}HuH}H裨HUHutHSHcHUH}aHcHqHH-HH9vd]6Hc]Hq艦HH-HH9v,]}}!uH}UHppH}HuiwH}HEHtxEH]H]UHH$`HhH}HuHUH肧HDžxHUHusHQHcHUH}u&HuH}xHtH}HuEHcEHpHHpHHpHpHxHx~HxH}Hu5HEH0H}Ht4Hc]HqݤHH-HH9v耤]@uHx7HEHtYwHhH]UHH$@HHLPLXL`LhH}HuHUMHӥHDžpHUHurH>PHcHxzL}IHLeMtzMLcHLLAHEHUH}HpHpHEHxp}u H}tHpHxHt vHEHHLPLXL`LhH]UHHd$H}HuH賤EHEHH5.EH]UHHd$H}uHUHmHEHUHupHNHcHU)Et=tQtVt[to|H5>HpH}DH5>HpH}H5>HpH}ߌlH5>HpH}ߌVH5>HpH}ߌ@H5>HpH}ߌ*H6>HpH}ߌH 6>HpH}ߌHuH}ACrH}ތHEHttH]UHH$PHXL`LhLpLxH}HuHUH覢HEHUHunHMHcHUHuH=g5SuHEHpH}ތfHEILuH]LeMt-M,$L_HLLA0HEH8t:HEH0H}CHuH}FތHEH0H}vHuH})ތTqH}݌HEHtrHXL`LhLpLxH]UHHd$H}HuHUH\HEHUHumHKHcHUHuH=gQuhHEHpH}d݌HEH8tHEH8tH}H1݌uHEH0H} HuH}݌9HuH=gmQuHEHpH}܌H}H܌HEH0H}HuH}܌oH}9܌HEHt[qH]UHH$H}HuHUHMHHDžHUHxElHmJHcHpHEHHuHegH8}.HEHXHkHJHcHH}tH}tTHEHHDž HH/>HpHH$HH}tیEH}оHUHEznH}qWHHto[nHڌHpHtoEH]UHHd$H}HuH胞EEH]UHH$HLLLL H}HuHUHMH"HDž`HUHpbjHHHcHhHEH}Wo|HEH0HEH(L}LuH]LeMt蛛M,$L?[HLLL(H0AE܃}uH}tH}kHEHEH@HEHEHx8t[EHEH@@HXHDžP HPH'->HpHH`ౠH`H}0ٌHEHPHHHEHP8H@HEH8L}LuHHEL`8MtM,$L#ZHLLL8H@LHAEkH`*،HhHtImEHLLLL H]UHH$PHPLXL`LhLpH}HuUHMH裛HUHugHFHcHxHuH=DRS7LuCHEILuH]LeMtBM,$LXHLLAEgHuH=KLSKu:H]LuLmMtMeLXLHA$EHuH=MSKuCHEIL}H]LeMt虘M,$L=XHLLAEHuH=MS5KuCHEIL}H]LeMt@M,$LWHLLAEeHuH=NSJuCHEIL}H]LeMt痍M,$LWHLLAE HuH=hOSJuCHEIL}H]LeMt莗M,$L2WHLLAEHuH=_QS*Ju@HEIL}H]LeMt5M,$LVHLLAE]HuH=)RSIu@HEIH]L}LeMtߖM,$LVLHLAEEBh}u H}1QHxHtiEHPLXL`LhLpH]UHH$HLLLLH}HuHUHhHDžHDžHUHxKdHsBHcHpH}H!ԌEHEHXHcH"BHcHHEHxuHEHEHpLEHMHUH};tHEP HHEILmH]LeMtM<$LTHLLAE}uaHEP HHEIH]LuLeMt谔M<$LTTLHL鋅A`E}uH}tH}gtEHEHxuHE@ HHHHc)HH1܌HHHHDž HEH@HHDž HH'>HpHH薪HH}ьHE@ HHHHc`HHhیHHHHDž HH&>HpHH穠HH}7ьuHEILuLmHEHH]Ht訒L#LMRHLLLA$HE dH}MHHtHt}eHDžcH/ЌH#ЌHpHtBeEHLLLLH]UHH$HLLLLH}HuHUHX覓HDžHUHx_H>HcHpH}HόEHEHXH_H=HcHBHEHxuHEHEHpLEHMHUH}t'HUHB HHEILuLmH]Ht譐L#LRPLLLHA$E}uaHEHP HHEILmL}H]HtJL#LOLLLHA$PE}ucH}tH}ctEHEHxukHEH@ HHDž HEH@HHDž HH">HpHH菦HH}͌OHEH@ HHDž HHe">HpHH>HH}͌uHEILuLmHEHH]HtL#LNHLLLA$HEd`H}[IHHtHtaHDž2`ȞHpHtaEHLLLLH]UHH$HLLLLH}HuHUHXHDžHUHxF\Hn:HcHpH}ȞEHEHXH[H:HcHBHEHxuHEHEHpLEHMHUH}6t'HUHB HHEILuLmH]Ht L#LLLLLHA$E}uaHEHP HHEILmL}H]Ht誌L#LOLLLLHA$XE}ucH}tH}_tEHEHxukHEH@ HHDž HEH@HHDž HH6>HpHHHH}?ʌOHEH@ HHDž HH>HpHH螢HH}ɌuHEILuLmHEHH]Ht_L#LKHLLLA$HE\H}EHHtHt4^HDž\HȌHpHt^EHLLLLH]UHH$HLLLLH}HuHUHXfHDžHUHuXH6HcHxH}HȌEHEH`H XXH6HcHWHUHB0HHEILuLmH]Ht谉L#LUILLLHA$hE}uH}tH}\tEHE@,HDžHE@(HDžHEH@ HHDž HH>HpHH쟠HH}<njuHEILuLmHEHH]Ht譈L#LRHHLLLA$HEZH} CHHtHt[HDžYH4ƌHxHtS[EHLLLLH]UHHd$H}HuHUH ߉EHEHH5B-%ƌEH]UHH$ H L(L0L8L@H}HuHUHfHEHHŌEHEHUHuUH3HcHx2HEHP HXHEHP(HPHEILuH]LeMtۆM,$LFHLMHPHXAxE}uH}tH}ZtSEHC-H`HEH@(HhHV-HpH`H}H[ȌuHEILuLmHEHHH]Ht L#LEHHLLLA$HEqWH}h@HxHtHtXHDžx΋EH L(L0L8L@H]UHH$@H@LHLPLXL`H}HuHUH6HEHHÌEHEHUHubSH1HcHxHEHP HpHEILuLmH]Ht躄L#L_DLLLHpA$pE}uH}tH}WtEH}HŒuHEILuLmHEHhH]Ht)L#LCHhLLLA$HEUH}>HxHtHtVHDžx΋EH@LHLPLXL`H]UHH$0H0L8L@LHLPH}HuHUHMLEHNHDžhHUHxQH/HcHpurHuHhXHhH`HEHXL}LuH]LeMtӂM,$LwBHLLLXH`A E1THhHpHtUEH0L8L@LHLPH]UHH$0H0L8L@LHLPH}HuHUHMLEHHEHHKHEHXL}LuLmH]HtāHILfALLLHXA$8Eԃ}uHEHUHhOH-HcH`udLEHMHHH=Vg9$HEHEILmL}H]HtL#L@LLLA$ERH}y;H`HtSEH0L8L@LHLPH]UHHd$H]LeLmLuL}H}HuHUHMH`gHEHH贾H};HcHq蛀HHHH9v=}]؋E؃EE؃E؋uH}KHEHEHEHEILmH]LeMtM<$Ld?HLLHMAE܃}t}~EEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}HuHUHMH`'HEHHtH}HcHq[HHHH9v~}]؋E؃EE؃E؋uH} HEHEHEHEILmH]LeMt~M<$L$>HLLHMAE܃}t}~EEH]LeLmLuL}H]UHHd$H]LeLmLuL}H}uHUHMH`HEHH5H}HcHq~HHHH9v}}]؋E؃E؋E؃E؋uH}HEHEHEHEIDmH]LeMtH}M<$LHp,H}VIHUHEH}H趌EH]UHHd$H}HuHczHEHxtHH=Ȃ5c1HUHBHEHxHu誯|HEHxHu"H]UHHd$H}HuHyHEHxtHEHxHu#H]UHHd$H}HyHEHxt EHEH@@EEH]UHHd$H}uHDyHEHxuHEHEH]UHH$HLLLLH}HuHxHEHUHu EHH#HcHx'H}HcHqvHH-HH9vvAA}EEEuH}HEHEHppH}莴H}ز@pntHuH}XH`H PDHx"HcHu1LuH]LeMtuM,$Lf5HLA(4GH}HHtHD;}~' GH}aHxHtHHLLLLH]UHH$HLLLLH}HuHvHEHUHu0CHX!HcHx'H}HcHqtHH-HH9vtAA}EEEuH}HEHEHppH}螲H}ز@ltHuH}hH`H `BH HcHu1LuH]LeMtsM,$Lv3HLA0DEH}+HHtFD;}~'EH}qHxHtFHLLLLH]UHHd$H}uH$uHEHxuԥHEHEH]UHH$HLL H}HuHtH}t)LmLeMtrLHP2LShHEH}tHUHu@HHcHUuNHEHH=|5h+HUHBHEH}uH}uH}HEHCHEHpHpH0K@HsHcH(u%H}uHuH}HEHP`ECD;CH(HtFEHEHLL H]UHHd$H]LeLmH}HuH(GsH})LeLmMt*qI]H0LHE@H}THEHxg*H}H7+H}uH}uH}HEHPpH]LeLmH]UHHd$H]H}HrHEHHcHqpHH-HH9vzp]fH};EeuH}Hxt)uH}HH*HEHxtoH}y;EHEHxuHˢHc]Hq,pHH-HH9vo]}RHEHx㤝H]H]UHHd$H}HgqHEHxuHEH@@EEEH]UHHd$H]LeLmLuL}H}HuHHpHEH}nHcHq>oHH-HH9vn}]EEEEuH}SILuLMMtznM,$L.HLAu8H}tHH=z5HEuH}HH}}~pHEH]LeLmLuL}H]UHHd$H}HuHoHEHxHuҢH]UHHd$H}HuHoHExuHEHxHuԦH]UHH$HLLLLH}HuHoHEHUHu`;HHcHx'H}]HcHq-mHH-HH9vlAA}EEEuH}CHEHEHppH}ΪH}ز@dtHuH}H`H :HHcHu1LuH]LeMtlM,$L+HLAt=H}[HHt>D;}~'J=H}衩HxHt>HLLLLH]UHH$HLLLLH}HuH*mHEHUHup9HHcHx'H}mHcHq=kHH-HH9vjAA}EEEuH}SHEHEHppH}ިH}ز@btHuH}H`H 8HHcHu1LuH]LeMtjM,$L)HLA;H}kHHt&HhHpHPH"HHcHu%H}uHuH}HEHP`%k'%HHt((HEHLLH]UHHd$H}HUHE@(rtEEH]UHHd$H}HUHE@(trEEH]UHHd$H}HwUHE@(trEEH]UHHd$H}HuH3UHEHp@H}肑H]UHHd$H}HuHTHEH=H(gHueHEHEHUHE@(B(HEHp@HEHx@HEHp HEHx HEHp0HEHx0同HUHE@B HuH};H]UHH$HLLH}HuHUH$TH}t)LmLeMtRLHLShHEH}tHUHu2 HZHcHUu?HEHUHEHBHEH}uH}uH}HEH #HEHpHhH(HHcH u%H}uHuH}HEHP`";$"H Ht%`%HEHLLH]UHHd$H]LeLmH}HuH(RH})LeLmMtPI]H>LHEHx H}H7H}uH}uH}HEHPpH]LeLmH]UHHd$H}HuUHRH9gHHEHHHcEHH<HuIH]UHHd$H]H}HuHUH QHEHcXHqPHH-HH9vOHEXHEHcXHkqOHHH9vzOHHEHxzdHEHPHEHc@HqOHH<HfH8gHEHHHEHc@HqTOHH4H}HH]H]UHH$pH}uHUHPH;8gHH}BHUHuH HcHxu$EEHuH}輌HuHUH}kH57gH}6CHxHtE!H]UHHd$H]H}uHUHMH(OHEHcXHqENHH-HH9vMHEXHEHcXHkqNHHH9vMHHEHxbHEHcPHqMHcEH9dHEHcPHcEH)qMHqMHkqMHEHHHcEHqMHH4HEHHHcEHH<EHEHPHcEHH<H0Hq6gHEHHHcEHH4H}FH]H]UHHd$H]H}HNHEHcXHqLHH-HH9vL}=EDEEHEHPHcEHH|H膊;]~HEHxH;aH]H]UHHd$H]LeLmH}HuH(MH})LeLmMtKI]H^ LH}H}HH}uH}uH}HEHPpH]LeLmH]UHHd$H}HuH3MHEH= gHuHuH}tEEEH]UHHd$H]H}HuH LEHEHpHcEHHUHJHcUH;rEwHEHpHcEHHUHJHcUH;wE?HEHPHcEHHtHEHPHcEHH|4E}upHc]Hq_JHH-HH9vJ]HE@;EHE@;EHE@;E EEEH]H]UHH$@H@H}HuHfKH2gHH}s=HEH52gH`X=HUHxHHcHp,H}HYERUH}H`HhH}-Hc]HqIHH-HH9vH]HE@;E#UH}H`M`t}+fDUHuH} E؅t<tUtU'cHEH0H}HU脇HEHHHHŵ-HPHEHXHHH}Hlj8HEHHHH-HPHEHXHHH}HHEH0H}HUцHEHHHHo-HPHEHXHHH}HHEHHHHG-HPHEHXHHH}HшEHEHHHH"-HPHEHXHHH}H茈Hc]HqFHH-HH9v^F]HE@;EH}uCHEHHHH-HPHEHXHHH}HhH5i/gH`:H5V/gH}:H}蜃HpHtH@H]UHHd$H}HuHcGHEHx(Hu貃H]UHH$HLLH}HuHUHMHGHDžHDžH}t)LmLeMtDLHrLShHEH}tHUHuH HcHxHEH`H HHcHuKHUH}HHuH4HHъHHEHx(]H܁HЁHHtHEH}uH}uH}HEH/HxHpH`H HHcHu%H}uHuH}HEHP`\HHtHEHLLH]UHH$`H`LhLpLxH}HuHDHEHUHuH/HcHUu_HEHx(uNH}uELuLeLmMtfBI]H LLH}Hu1qEEH}HEHt9EH`LhLpLxH]UHH$PHPLXL`LhH}HuHCHEHEHDžpHDžxHUHuHHcHUHEHp(H}H(gH8uLHLShHEH}t}HUHp( HPHcHhHEHPH HHcHuFHMHUH}H HuH`HHEHx0{HEЊUP8H{HHt0HEH}uH}uH}HEHpHhHpHPH H@HcHu%H}uHuH}HEHP`HHtHEHLLH]UHH$HLLL H}HuH>HEHDž(HUHu< HdHcHUEHEHx(t H}tgLuLeLmMt;I]H2LLH}tHc-H8HDž0 HuH(H(HHHDž@ Hi-HXHDžP HEH@(HhHDž` H^-HxHDžp H0H HEx8uHuH}ˆtaHuH}1tJHEHx0u9HuH(̌H(HEHp0A=;KtE H(xH}xHEHt7 EHLLL H]UHH$HLLH}HuHUHMH;H}t)LmLeMt9LH8LShHEH}tHUHuHHcHxuSHEHUH}HlHUHEHB HEH}uH}uH}HEH HxHpH`H (HPHcHu%H}uHuH}HEHP`"  HHt HEHLLH]UHHd$H}HuH3:HEHxHuHtHEHxHuhvH]UHH$HLL H}HuH9H}t)LmLeMt7LHPLShHEH}tHUHuHHcHUu3HEHEH}uH}uH}HEHHEHpHpH0fHHcH(u%H}uHuH}HEHP`` VH(Ht5  HEHLL H]UHH$HLLLH}HuHUHM8H}t)LmLeMt06LHLShHEH}t HUHu[HHcHUucHELuLeLmMt5I]HlLLHEH}uH}uH}HEHHEHpHhH(HHcH u%H}uHuH}HEHP`@H Ht e HEHLLLH]UHH$HLL H}HuH6H}t)LmLeMt{4LH LShHEH}tHUHuHHcHUu3HEHEH}uH}uH}HEHHEHpHpH06H^HcH(u%H}uHuH}HEHP`0&H(HtHEHLL H]UHH$HLLH}HuHUHMH 5H}t)LmLeMt3LHLShHEH}tHUHu.HVߋHcHxu[HEH}HHUHEHBHUHEHBHEH}uH}uH}HEHHxHpH`H HދHcHu%H}uHuH}HEHP`HHt_:HEHLLH]UHHd$H]LeLmLuH}HuHUH@3HEH@H;EtDHELpLeHELhMtO1I]HLLuEEEH]LeLmLuH]UHHd$H}HuH2HEHPHEHpH}EEH]UHH$@HHLPLXL`H}HuHq2HDžhHUHuH܋HcHUHEHxHuHEHxuHEHHpHϞ-HxHELpLhHELhMt/I]HLLHhHEH-HEHpH}HqHhrmHEHtHHLPLXL`H]UHHd$H}uH41HEHxuaHEHEH]UHHd$H}uHUH0HEHxHUuaH]UHH$HLL H}HuH0H}t)LmLeMt{.LH LShHEH}tHUHuHڋHcHUuNHEHH=858HUHBHEH}uH}uH}HEHpHEHpHpH0HCڋHcH(u%H}uHuH}HEHP` H(HtHEHLL H]UHHd$H]LeLmH}HuH(/H})LeLmMt,I]HLH} HEHx_H}HH}uH}uH}HEHPpH]LeLmH]UHHd$H}Hg.HEH@@EEH]UHHd$H}HuH3.HEHxHu2aEEH]UHHd$H}HuHUH -HEHUHH=QgHqHH}uEEH]UHHd$H]H}uH-HEHxu@^HHHEHxu`H]H]UHHd$H]H}HuH /-HEHE5fDHc]Hqi+HH-HH9v +]}}#uH}HHuHtEH]H]UHHd$H]H}HuHUH(,HEHHcHq*HH-HH9vr*]4DHc]Hq*HH-HH9v<*]}}'uH}HHUHuHBtEH]H]UHHd$H]LeH}H +H}&HcHq)HH-HH9v)}5EEEHEHxu\IL;]~HEHx^H]LeH]UHH$PHPLXL`LhLpH}HuH*HDžxHEHUHuH=ՋHcHU~LuLeLmMt(I]H*LLL}LuHxLeMtO(M,$LHLAHxLvHEHxeH}eHEHtEHPLXL`LhLpH]UHHd$H}HuH)HEHxHuruHtHEHxHueH]UHH$HLL H}HuH8)H}t)LmLeMt'LHLShHEH}tHUHuFHnӋHcHUu3HEHEH}uH}uH}HEH+HEHpHpH0HҋHcH(u%H}uHuH}HEHP`[H(HtHEHLL H]UHH$HLLH}HuHUH'H}t)LmLeMt%LHLLShHEH}tHUHuHыHcHUu@HEHuH}HEH}uH}uH}HEHHEHpHhH(UH}ыHcH u%H}uHuH}HEHP`OEH Ht$HEHLLH]UHHd$H}HuHS&n4H]UHHd$H}HuHUH &:4H]UHH$0H8L@LHH}HuHU%HEHEHDžPHUHx H1ЋHcHpH-HXHEH`H-HhHXH}1ɺqeH-HXHEH`H-HhHXH}1ɺ3eE@LeM,$HcUHH9v#Hc]HI<$qA|$t/Hc]Hq#HH-H9v"]LmMeHc]Hq"HHH9v"HI}qA|$u/Hc]Hq"HH-H9vP"]aHMHtHIHcUHEH0HPrHPH} ueHP_H-HXHEH`H-HhHX1ɺHPcHPHuH@HMHtHIHcUHEH0HPrHPH}' ubHP7_H-HXHEH`H-HhHX1ɺHP&cHPHuH*Hc]HqB!HH-H9v ]HEHHtH@HcUH95HP^H}^H}w^HpHtH8L@LHH]UHH$PHXH}HuHU'"HDž`HDžhHUHu_H̋HcHUHEHcHHq5 HEH@H0HhipHhHpHEHxHEHc@HUHtHRHqHEH@HHtHIHEH@H0H`pH`HEHpHEHx1ɺPaHEHc@H]HtH[HqqHH-H9vHEX}H`\Hh\HEHtHXH]UHHd$H]H} HEx}4HEHcXHqHH-H9v}HEX HE@H]H]UHHd$H]H}% HEx }4HEHcX HqeHH-H9v HEX HE@ H]H]UHH$@HHLPLXL`H}HuHUHEHDžhHDžpHUHuHɋHcHxHEH8u EHuH}[LuLeLmMuI]H܋LLuEmH]LuLmMuMeL~܋LHA$EHEH0HUHhvtHhHpc|HpH}ZHhbZHpVZH}MZHxHtlEHHLPLXL`H]UHHd$H]LeLmLuH}HuHUHMLELMпxHEHD$HEH$DMLEHMHUH=hgcHEIH]LeMuM,$L>ۋHLAHEH]LeLmLuH]UHHd$H}HuE`+H]UHHd$H}Hu0+H]UHHd$H}Hu+H]UHHd$H}Hu*H]UHHd$H}HuHEHxHuThHtHEHxHuXH]UHH$HLLH}HuHUHMLEDM H}u'LmLeMuLHًLShHEH},HUHpHGƋHcHhHEHEHxHuWHEHxHuWHEHx HuWHUHEHB(HEHB0HUЋEB8HEH}tH}tH}HEHHhHtlHPH\HŋHcHu#H}tHuH}HEHP`XNHHt-HEHLLH]UHHd$H]LeLmLuH}(YLuH~2{HHt2{L Mu7M,$L׋HLAH]LeLmLuH]UHHd$H]LeLmLuL}H}Hu8H1{H8u*HE-H=5ڡHH5HL}LuH1{HH1{L MutM,$L׋HLLAH]LeLmLuL}H]UHHd$H]LeLmLuH}( H21{H8u*H}-H=954ڡHH5H2LuH0{L H0{L(MuI]HT֋LLH]LeLmLuH]UHHd$H}iHEH@@H]UHHd$H}u6HEHxuHH]UHH$HLLH}HuHUH}u'LmLeMuLHuՋLShHEH}HUHuH&‹HcHUuaHEHE@H=5ΌHUHBHEHxHuSHEH}tH}tH}HEHHEHtlHhH(dHHcH u#H}tHuH}HEHP``VH Ht5HEHLLH]UHHd$H]LeLmH}Hu(iH}~'LeLmMuPI]HӋLLmLeMu)I$HӋLHEHxw͡H}1LΌH}tH}tH}HEHPpH]LeLmH]UHHd$H]LeLmLuL}H}8HEH@HcXHqHH-H9vAE|REEDuH]LeMu6M,$LҋHDAHH͌D;}HEHxOHH]LeLmLuL}H]UHHd$H}HuHEHxHuGHEHUHPH]UHHd$H}HuHEHpH}PH]UHHd$H}HuEH}1PH]UHHd$H]LeLmLuH}Hu8HEH@HcXHqNHH-H9v]+Hc]Hq!HH-H9v]}|?DuLeLmMuI]H.ыLDHx0Hu5uEH]LeLmLuH]UHHd$H]LeLmLuH}Hu@LuH]LeMuM,$LЋHLAE|4DuLeLmMuI]HmЋLDHEHEHEH]LeLmLuH]UHHd$H}HueH]UHHd$H]LeLmLuH}Hu@%LuH]LeMuM,$LϋHLAE| HEHEHEH]LeLmLuH]UHH$HLLH}HuHUMDEH}u'LmLeMuiLHϋLShHEH}HUHx݌H輻HcHpusHEHEHx0HueMHE؋UP(HE؋UP$HE@ HE@!HUHE؋@(B$HEH}tH}tH}HEH6HpHtlHXH܌H HcHu#H}tHuH}HEHP`ߌiߌHHtHEHLLH]UHHd$H}HuHEHp0H}DLH]UHHd$H}HuH}H5r}-LH]UHHd$H]LeLmLuH}8yLeMuk I$H͋H]HED@$HEH(HEHP0HwHELuH]LeMu M,$L̋HLAHEH]LeLmLuH]UHHd$H}HuHEH=zgH肿t7HEHEHp0HEHx0JHUHE@(B(HUHE@$B$ HuH}H]UHHd$H}uFaH]UHHd$H}uHU-H]UHHd$H} H]UHHd$H}Hu H]UHHd$H} H]UHHd$H}HuU pH]UHHd$H}Hu% @H]UHHd$H}HuHU H]UHHd$H}Hu H]UHHd$H}HuU H]UHHd$H}i H]UHHd$H}I HEH@hH]UHHd$H}Hu 0H]UHHd$H}Hu H]UHHd$H}Hu H]UHHd$H}Hu H]UHHd$H}HuUR mH]UHHd$H}) DH]UHHd$H}Hu H]UHHd$H}Hu H]UHHd$H}Fp HUHu֌H HcHUuH}@a޿EٌH}@FHEHtbیEH]UHHd$H}NFp HUHub֌H芴HcHUuH}@ݿEiٌH}EHEHtڌEH]UHHd$H}x HEHUHuՌHHcHUuDEH}H5y-HEHtԌH]UHH$`HhH}HuHEHDžpHUHuόH.HcHxNH}H}:EHuHpAHpH}1Hr-?Hc]HqHH-H9vA]Hu.RHH-H9v]HcMHq9HuHptPHp1E܋E|Dtttt&.HUE܉B"HEU܉P HUE܉B HEU܉PHcUH}VH}t}t }ЌHp=H}=HxHt3ҌHhH]UHH$`H}HuHDž`HDžpHUHu͌HBHcHU}HE@lHlHHcl1HlHpF01Hp[HpHxHp-HEHE@ lHpHHcl1HpH`(F01H`ZH`HEHxH}1ɺ?HExHEHHHHSp-HPHE@EH`HHc}1H`H`E01H`ZH`HXHo-H`HE@EH`HHc}1H`Hp*E01HpYHpHhHHH}1ɺ>HExHEHHxHMo-HEHE@lH`HHcl}1H`H`D01H`YH`HEHxH}1ɺF>͌H`:Hp9HEHtόH]UHHd$H}HExu$HEx uHExuHExuEEEH]UHHd$H]LeLmH}HuPiEEEEEE؃v\EDHcUHEHtH@H9}~bLeHcEHH9vHc]HH}IA|.Hc]Hq*HH-H9v]ԋEԉE@E؃vELcdMk qLmHcEHH9vHc]HH}IA\LqH0qHH-H9v>E؃v.E؉\Hc]HqXHH-H9v]HcEHUHtHRH9G}'>LeHcEHH9vHc]HH}BHAD0 E;Et]]HqHHv|]̃}HcEHUHtHRH9~DMDEMUuH}EEH]LeLmH]UHHd$H}ЉuUMDEDMؿ0EH}ЉEuH}EuH}EuH}EHEЋ@;Eu0HEЋ@ ;Eu$HEЋ@;EuHEЋ@;Eu HEЋ@;EtPHEЋUPHEЋUP HEЋUPHEЋUPHEЋU؉PHEHx tHEHx(HuHEP H]UHHd$H}u}'~ E'}} EEEEH]UHH$HLL H}Hu}H}u'LmLeMudLH LShHEH}6HUHuŌH躣HcHUHEH}1(H=<gHUHBH=#gHUHBLeLmMuI]HhLHEH}tH}tH}HEHȌHEHtlHpH0ČHꢋHcH(u#H}tHuH}HEHP`njIɌnjH(HtʌnʌHEHLL H]UHHd$H]LeLmLuH}Hu0H}~'LeLmMuI]HPLLu1LeMuM,$L'HLAHEHxͮHEHxH}1蕯H}tH}tH}HEHPpH]LeLmLuH]UHHd$H]LeLmLuH}(Lu1LeMuM,$LyHLAHE@(HE@HEHxHEHxH]LeLmLuH]UHHd$H}xYHEHUHuŒHǠHcHUufH}2HEHp H}r2@H}ʿEt7HE@t*HE@tHEHpHEHx~EQŌH}1HEHtƌEH]UHHd$H}HuHE@tHEHxHu"HE@tHEHxHu}EEEH]UHHd$H}HuHU HEHp H}ݟuHuH}?tEEEH]UHHd$H}HuH]UHHd$H}yH]UHHd$H}IdH]UHHd$H}4H]UHHd$H}H]UHHd$H}HuH]UHHd$H}HuH]UHHd$H}HuUpH]UHHd$H}Hu%@H]UHHd$H}uuH}H5hf-K/UH?gH4H}2/H]UHHd$H}E@EEHgH4H}[۟t }rEEH]U]UHH5gH=gIH]UHHd$f}ufUMfEfEЋEEfEfE؋EEHEHUH]UHHd$H}HuUHMH1 {H8t.HEf8t#HUH {HxLEMHuH {H]UHHd$H}HuUHUH {HxMHuM1H {H]UHHd$H}fuH {H8t)f}t!H {HxUHuHp {EEEH]UHHd$f}ff-v6f-t0f- r0f-v$f-Jr$f-vf-Dtf-rf-vf-\uEEEH]UHH= gH HgHH=-H{HH=-H{HH=Ӟ-H{HH=-H{HH=-jH{HH=A-TH{HH=c->H{HH=M-(H{HH=o-H{HH=-H{HH]UHHd$H}HuHEHUff;v EHEHUff;s EHEHU@;B~ EHEHU@;B} EoHEHUf@f;Bv ETHEHUf@f;Bs E9HEHU@ ;B ~ E HEHU@ ;B } EEEH]UHHd$H}HuHEHEHEHEHEHUff;v ERHEHUff;s E9HEHU؋@;B~ E HEHU؋@;B} EEEH]UHHd$H}HuHUHHUHuH ){H9M1H {H L HAH]UHHd$H}HuHUHMLELMHEHD$HEH$1111!HEHUHMLELMHUHuH}|H]UHHd$H}HuHUfMDELMHEHD$HEH$u}11HEHUHMLELMHUHuH} H]UHH$pH}HuHUHMLELMHEHD$HEHD$1111=HEHUHEH$HEHD$LMHMLEHUHuH}H]UHH$pH}HuHUHMLELMLL$ HE(HD$HE HD$HEH$HEHD$LELMHMHUHuH9{H8H/{HHH]UHHd$H}HH=|gHHEHH gH8 HEH]UHHd$H}uHEHx(uH]UHHd$H}uHEHx uH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuH:HcHUurHEHEHxHu&H=4蕡HUHB H=4|HUHB(HEH}tH}tH}HEH踹HEHtlHhH(gH菔HcH u#H}tHuH}HEHP`cYH Ht8HEH]UHHd$H]H}HuH~HEHUHHHEH@(@|7EEEEH}H1Ho }HEHx 茠HEHx(H}1͝H}tH}tH}HEHPpH]H]UHHd$H}HuHEHx Hu.| H=-BHEHx HuH]UHHd$H}HuHEHx HuH]UHHd$H}HG @H]UHHd$H}HG(@H]UHHd$H]H}HuHtlHEH@ @ÅmEEHEHx u|Ht HEHx ugHH}뤌tE$;]HEHx 1|EEEH]H]UHHd$H]H}HuHu EmHEH@ @Å|UEfEHEHx uHEHt$HEHx uHHEHx c|E ;]EEH]H]UHH$pHLH}HDžHDžHDžHDžHDžHpH0賲HېHcH(HEH@H վHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$M1M11H H5Е-H HEH@ @gXNEfEHEHx uHHEH@ pHHH uHߺHHԾIHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$L -L H -HH5*-L 1HEHx uIHLSH1H^*HHHEH@ pHɹHH uH謹HHӾIHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$HH$L 0-L H -HH5-L;]趲H HHHHH(HtHLH]UHHd$H}uHEHxu`H]UHH$ H}HuHuHEHUHRhHEH}HUHu觮HόHcHUuHHEH=4;HUHBHEH}tH}tH}HEHwHEHtlHpH0&HNHcH(u#H}tHuH}HEHP`"譲H(HtҳHEH]UHHd$H}HuH~HEHUHHH}=HEHx谙H}1ŝH}tH}tH}HEHPpH]UHHd$H]LeH}HG@gX|0EDEEH}IL1;]HEHxH]LeH]UHHd$H}HuHEHUHu赬H݊HcHUu7HEHPH}Hu-HuHEHx|HEHxHu薯H}HEHtH]UHHd$H}HuHEHxHu>H]UHHd$H}HuH}vE fDm}|uH}HpH}5ȟuًEH]UHHd$H}HuHH}HE|uH}]HEHEHEH]UHHd$H}HuHUHEHUHu1HYHcHUsH}Hu HEH0H}|RHEH0H}iDHuH}fHEH0H}EHuH}HEH0H}}ҭH})HEHtKH]UHHd$H}HG@H]UHHd$H}HuHEHx Hu)HtHEHx Hu(H]UHHd$H}HuHEH@8H;EtLHEHx8tHEH@8Hx(HuHEHUHP8HEHx8tHEH@8Hx(HueH]UHHd$H}HuH~HEHUHHH}1[H}10#H}tH}tH}HEHPpH]UHHd$H]LeH}&!Ã|1EfDEEH}lIL;]H]LeH]UHHd$H}HuHEHx8tH}uEHEHx8HuEEH]UHH$HxH}HG HEHEH@(HE˾HHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$M1LEH c-HUH5x-HHEHx8tHEHx8ʾHH5-HHxH]UHHd$H}uH}$H]UHHd$H}HuHUHEHx@Hu*tHUHEHB@HEHBHH}H]UHHd$H}HuHUHEHxPHutHUHEHBPHEHBXH}iH]UHHd$H}HuHEHxxHu,H]UHHd$H}HuHEHxxHu./H]UHHd$H]LeH}HHxx.HHHUHuH)HcHUuaS@H+HEHEpLHExH3DHEpDHEx@3H}HEHDXH+u踨HHP`HEHt,H]LeH]UHHd$H]UHHd$H}HuHEHxtHEHpH}HEHp H}H]UHHd$H}uHEHxxu-H]UHHd$H}HHxx-~HEHxx1D-@0EEEH]UHHd$H}HHxx,H]UHHd$H}HuHEHxHu#HtHEHxHu(H}H]UHH$HH}HuHUHEHP(HUH@0HEHEH;EHEH;E  HUHEHB(HEHB0HEHxx,HHHUHx}H襁HcHU؅|H()HExptiH}H`H -HUHcHUЅuHUHuH}HEH8,H}c'HEHt襧H(uHHP`HEHttHH]UHH$ H H}HuHEH@8H;EHEHUHP8HEHxx*HHHUHuHHt]HEH}tH}tH}HEH衛H@HtlH(HMHuvHcH u#H}tHuH}HEHP`IԜ?H HtHEH]UHHd$H}HuH~HEHUHHHEHxtH}1HEHHEHxx˃H}1考H}tH}tH}HEHPpH]UHHd$H}HuHEHxpt H}HEPpHEHx`tHEHxhHuHEP`H]UHHd$H}HH}HH]UHHd$H}HuHH}HPu9HMHUHB@HA@HBHHAHHMHUHBPHAPHBXHAXH}CH]UHHd$H}HuHHp@HEHx@[uHEHpPHEHxPBuEEEH]UHH$ H H}HuHEHxxhHHHUHuʕHsHcHUfDHpHExptkH}HpH0uHsHcH(uHuH}HEHuH}H(Ht뙌H#sFHHP`HEHt躙H H]UHHd$H}HfHHfHRH}HMH HH]UHHd$H}H|fHHrfHRH}HMH HH]UHH$PH}HuHDžpHUHu/HWrHcHUH9y-HxH}HpHEHHpHEHy-HEHxH}1ɺHEHxtTHx-HPHEH@H@ HXHx-H`HEHHhHPH}1ɺ&葖HpHEHtH]UHHd$H}HuEHEHx(tEHEHx0HuHEP(HEHx8tEH}HEP8EH]UHHd$H}HuHUHEHxHuHUH]UHHd$H}HuHUHEHxv5HUH;BrH}HEH@H]UHH$ H}HuHuHEHUHRhHEH}HUHuH?pHcHUuSHEH}1|H=EF|HUHBHEH}tH}tH}HEHܔHEHtlHpH0苑HoHcH(u#H}tHuH}HEHP`臔}H(Ht\7HEH]UHHd$H}HuH~HEHUHHHEHx}H}1|H}tH}tH}HEHPpH]UHHd$H]LeH}H4%1H8謋H=>H8H %1HH$1HH膝H.t^HEHxHu H}HEHÃ|3EEEH}HEHIL;]H]LeH]UHHd$H}HH@H]UHHd$H}2HHUHBH]UHHd$H}HuHUHEHxHuHU&H]UHHd$H}HH5yHH#1H80H]UHHd$H}HH5IHH#1H8'H]UHH$ H}HuHUH}uHEHUHRhHEH}HUHu蒎HlHcHUufHEH}1,yHE@pHEHx HuSHE@0HE@@HEH}tH}tH}HEHDHEHtlHhH(HlHcH u#H}tHuH}HEHP`z同H Htē蟓HEH]UHHd$H}H@tH]UHHd$H}HuH~HEHUHHHEHxtHEHxHuH}1oH}tH}tH}HEHPpH]UHHd$H}HuHEHxXt H}HEPXHEHxHtHEHxPHuHEPHH]UHHd$H}HH}HUHHhH]UHH$pH}HuHEHEHDžpHUHu/HWjHcHxHEHx`E}~H}HpHEHHpH}HEHp8H}HEHxhHMHUHuHEP`HuH}HEHHuH}HEH(諎HpH}H}HxHt EH]UHHd$H}HuHEHUHuH=iHcHU}HEHx(tHEHp(H}_HEHxtCHEHxHuHEH@HH}tHEHxHuHEH@HHEHp H}謍H}HEHt%H]UHHd$H}HuHEHUHu5H]hHcHUuVH}HuHEHHuH}H}H}HuHEHHUHEH0H}1H}NHEHtpH]UHHd$H}HuHEHUHuuHgHcHUutHEHx8tHEHp8H}F"H}HuHEHHuH}"H}H}HuHEHHUHEH0H}1H}pHEHt蒍H]UHHd$H}HuH1HEHxt%HEHxHEH@HH}uHEH8t5Hm-HEHEHHEHm-HEHuH}1ɺH]UHH$HH}HuHHUHuH#fHcHUkHEHx(HuSHQHEHx(HuHEHx1H}HEHHEH@HxxHHHpH0\HeHcH(DH HEH;EuHExptkH}HHHeHcHuHuH}HEHH}. HHtmH eȉHHP`H(Ht9褉H}HEHtHH]UHH$ H H}@uHE@1:E9HEUP1HEHx H}HEHHEH@HxxbHHHUHuąHcHcHUHp HEH;EuHExptkH}HpH0gHcHcH(u@uH}HEH gH} H(Ht݉H e8HHP`HEHt謉H H]UHHd$H}HuHEH@H;EHUHEHBHEHxHEH@Hx(u&HEHxHtHEHPPHpHHEHx_;HEHxHu0HEH@Hx(t!HEH@HP0Hp(H}HEH8HEH@Hx8u"HEHxXtHEHpXHEHxc7HEHxXu,HEH@Hx8tHEH@Hp8H}HEH@HEHxHuHEHxlH]UHH$ H H}@uHE@0:E9HEUP0HEHx H}HEHHEH@Hxx HHHUHuHH]U]UHH5EfH=^f隌H]UHHd$H}HuHUHE@@EHUH}H5Y-mu}HUHUH}H5Y-Du}HUH]UHHd$H}uUEH}H5Y-EUH}H5Y-E}t }h}}EE=}E܉E}}EE=}E܉Eu}HUB@H]UHHd$H}HuUHEH8H}HuHߡHEHuEHcUHuH}EEH]UHHd$H}HuHUHEH8H}HuޡHEHuEHuH}HUEEH]UHHd$}fEfEEH]UHHd$}fEfEEH]UHHd$H}fuHE@@EfEfEHEUP@H]UHHd$H}fuHE@@EfEfEHEUP@H]UHHd$f}fufEfEfEfEEH]UHHd$}HuHUHUfEfHEfUfH]UHHd$H}HtHEH=ә0HkUuEFHE@Pu/HE@PtHEH uHuH=f)UtEEEH]UHHd$H}HH=YfHTtHEHHEHE@Pt HEHEHEHEH]UHHd$H}uHUEHDH]UHHd$H}uHUHMEHUHTH]UHH$ H}HuHuHEHUHRhHEH}HUHuoHMHcHUuMHEHUHfHBHUHfHBHEH}tH}tH}HEHbrHEHtlHpH0oH9MHcH(u#H}tHuH}HEHP` rsrH(HtttHEH]UHHd$H}H]UHHd$H}HuHEHUHuenHLHcHUu6H[T-HHQT-HHHEHH}VHuH}LSGqH}RHEHtrH]UHHd$H}HuHUHEHH]UHHd$H}HuHEHUHumHKHcHUu6HS-HHS-HHHEHH}UHuH}|RwpH}.RHEHtqH]UHH$H}HuHUHMH RH}uHEHUHRhHEH}iHUHulHJHcHxHEH`H lHJHcHuDHUH}1r^HEHHu~QHEHHEHHP]oH}QHHtpHEH}tH}tH}HEHoHxHtlH`H kHIHcHu#H}tHuH}HEHP`nJpnHHtqoqHEH]UHHd$H}HuH~HEHUHHH}1KHlQ-HEHE HEHEHEHQ-HEHE HEHHEHEH}\H}tH}tH}HEHPpH]UHHd$H}HuUHuH}HEHt#HEHUHuHEHHP8H]UHHd$H}HuHUHEHH]UHHd$H}uEE|Ottt%t/:HEE+HEEHEE HEEEH]UHHd$H}uUE|Kttt#t,6uH}(uH}uH} uH}KH]UHHd$H}kHEHHEHHP@H]UHHd$H}؉uUMDEDMUuH}AɨHEHt)HEHDEMUuHEHHP0H]UHHd$H}؉uUMDEDMUuH}AnɨH]UHHd$H}؉uUMDEEH}1HUH UH}ؾHEH UH}ؾHEH UH}ؾHEH H]UHHd$H}؉uUMDEHEHH=|I<Kt,HEHDEMUuHEHHH]UHHd$H}0H]UHHd$H}HuHEH@pH;EtDHEHxptHEHxpHu赬HEHUHPpHEHxptHEHxpHuH]UHHd$H}HuHEHxxHu.͜H]UHHd$H}HuUHuH}{}u4HEH@hH;Eu HEH@hHEH@pH;Eu HEH@pH]UHHd$H}HuHUHEH}HMHHEHUHPpHEH]UHHd$H}HuHEH@`H;Et HEHUHP`H]UHHd$H}HuHEH@hH;EtDHEHxhtHEHxhHu%HEHUHPhHEHxhtHEHxhHu荪H]UHHd$H]UHHd$H}HH!H@H!HH HUHH]UHHd$H}HuHUHMEuH}H]UHHd$H}HuHUHEHuH}HEE̋EEȋEEċEEEЋEĉEԋEȉE؋ẺEHUHEHHEHBH]UHHd$H}HuHUHMLELMEU)ЉEEU)ЉEHEHU MMċ MMȋMMHUHMHuH}HEHH]UHHd$H}HuHUHMHUHuH}HEHHEHU@ R)ЉEHEHU@)ЉEEEEȉE؋ẺEHUHEHHEHBHUHEBHUHE@B H]UHHd$H}HuHUHMHUHuH}HEHHEHcPHHEHc0HH}耻HH!¸H!HEHH]UHHd$H}HuHH}HUHH0t-HE@@EfEEHE@@EfEEHH!¸H!HU{H}HEHHEHtkHUHuH}HEHEEEEHMHUHuH}HEH UЋEEUԋEEHEHEH}{HEH]UHHd$H]UHHd$H}HuH]UHHd$H}HuHUH]UHHd$H}HuHUH}tH}uE&HEHHEHHuH}HEH8EEH]UHHd$H}HuH]UHHd$H}HuH]UHH$ H}HuHUMHEH@pHE@HMHUHuH}HEH HuH}HEH(HEUuH}۸H=4JHEHpH0_H=HcH(NHUHuH}HEH`EHE@EԃE@EԃEԉH}ÜHEH}tHEH8HuPEtHuH}HEHHEtHuH}HEHPHUHuH}HEHHuH}HEH0tUuH}蔷UUMEg4H}yHUH}HuxtEHEHE }}t%qaH}hJH(HtHtbHDž(H}HEH]UHHd$H}HuHUHEHUHPxHUHu]H;HcHUu'HEHHpHUHHH}HEH`HEH@xHEHt4bH]UHHd$H}Hu0H]UHHd$H}HuHUHMLEHEHMHuH}HULHAHuH}HEH@H]UHHd$H}HuHUHH}HUHH@H]UHHd$H}HuH]UHHd$H}HuH]UHHd$H}؉uUH]UHHd$H}uH]UHHd$H}؉uUH]UHHd$H}H]HHxHTHtHHHHHH HHxHHHHHHHH HHxH闣H鷣HHHHHH HH@ UHHd$H}^H]UHHd$H}u;H]UHHd$H}uH]UHHd$H}uHUH]UHHd$H}uۛH]UHHd$H}u軛H]UHHd$H}HuHU薛H]UHHd$H}HuzH]UHHd$H}HuHUVH]UHHd$H}HuHUHM2H]UHHd$H}Hu H]UHHd$H}HuHUHMLEޚH]UHHd$H}HuHUHMDEDM誚H]UHHd$H}HuHUHMLEDMzH]UHHd$H}HuHUHMLELMJH]UHHd$H}HuHUHM"H]UHHd$H}HuHUHMH]UHHd$H}HuʙH]UHHd$H}Hu誙H]UHHd$H}Hu芙H]UHHd$H}nH]UHHd$H}HuJH]UHHd$H}Hu*H]UHHd$H}Hu H]UHHd$H}HuU瘌H]UHHd$H}ΘH]UHHd$H}讘H]UHHd$H}莘H]UHHd$H}HujH]UHHd$H}HuJH]UHHd$H}Hu*H]UHHd$H}Hu H]UHHd$H}H]UHHd$H}HuʗH]UHHd$H}Hu誗H]UHHd$H}HuHUM胗H]UHHd$H}^H]UHHd$H}>H]UHHd$H}H]UHHd$H}H]UHHd$H}uۖH]UHHd$H}HuHU趖H]UHHd$H}螖H]UHHHN0HH]UHHd$H}HuHHpHEHxpH]UHHd$H}uH5Q3gH}U=H]UHH$PHXL`H}uHEHUHuTH=2HcHUH}1ËDefAsP]EsEHEH8tHEH0H}1H:-ċuH}%HUHEH0H}1ċrH:-HhHEHHpH:-HxHhH}1ɺ NjtVH}‹HEHtWHXL`H]UHHd$H]H}HuH=4H=HEHEHH=y)<<7H} ECuH} HH=4<7tuH} HUH@H;t m}}}HEH萋Ã|CEEHEHu蹉HEHHZt HuH}蹸;]HEHH1tHEHH}艸HEH]H]UHHd$H]H}HuHEHx Ã|@EfDEHEHxu HHUH}$uE ;]EEH]H]UHH$ H}HuHUEHEH;E)HuH='<v5HuH=2<^5HuH='<F5tHEHH;EHEH0HuHEH@HH}誰HUHuPH.HcHU؅uHuH}HEHHSHEHtYHhH(2PHZ.HcH uESH Ht$VU (SUEEH]UHH$HH}HuHUHMDEDMH}uHEHUHRhHEH}# HUH`|OH-HcHXw HEHUH}1KNHEǀH= dHUHH=549HUHHuH}HUЋE艂hHEǀpHEǀHEǀH=Պ4p9HUHHEHǀXHEƀLH=4HUHPHEHǀ8HEHǀ0HEǀHEǀdHUHEЋ HþHLHLTHLHEċTE֖HHEHxHuċUHHHUЉlHEǀHEǀHEǀ(HEǀHEǀ HEǀHEǀHEǀH=C=HC=8HUHxHEHx^H=hC=HaC=8HUHHEH^H=/C=H(C=8HUHHEHj^H=B=HB=8HUHHEH1^HEƀHEƀ$H}A11HEHHUHEЋXAXH}1֧H}оHEHXHUоH=>H>HUHHHEHHH53-HH0@0HH@0HHP@0HHAP1HHHuHH`HUHHHHEHHHHUHEH H(HUHL)H8H@HEHc)HHHUH(HHHUH(HH HEH)HHHUHoHHHUоH=)>H">HUHPHEHPH51-HH0@HH ƃ@H@0HH@0HHP@0HHD1HHHH HU0HX`]֤HH HuHH`HUHHHHUH˒HHHUHbH H(HUH)H8H@HEH*HHHUH7*HH HUH^*HHHEH%H0H8HUH܆HHHEH+H@HHHEH:HHHUHA HHHUоH=cHcHUHXHEHXH5/-HH0@0HH@0HHP@0HHHuHH`H3ҩHUHHHHUHHHHUH6'H8H@HEH&HHHEH&HH HUH'HHHUH HHHUоH=Y>HY>HUH`HEH`H5.-HH0@0HH@0HHP@0H[HUH(HHH5].-H D1HHHuHH`HEH" HHH=h HUH0HUоH=MRHMRHUHHEH KHEH VDžLdDžPDžTHLDž@ DžD DžHH@HEHAHEHHEHHHHUЋEHH}в@0B2HEH}tH}tH}HEHHHXHtlH@HDH"HcHu#H}tHuH}HEHP`GIIGHHtJnJHEHH]UHHd$H}HuUMLEL8 |HE8 HE H]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuCH!HcHUuIHEHUH}E1A?11HEH}tH}tH}HEHFHEHtlHhH(@CHh!HcH u#H}tHuH}HEHP`xH8duZHELcLceH}6HcH}}HcH)LHILHI?LI)DH}T_HELcHc]HxH8ydHcHH}HcHHHHHH?HI)DH}THEH]LeLmH]UHHd$H}HH8tEHEHHc@HHEHEHcpHEH|HEH;E0tEEEH]UHHd$H]H}HEHUHue9HHcHUH}EHEH8HEH8HHEH8HEH8HHEH8H=>PtRHEH8H=>eHHuH&HuHtHvHEH8HEH8H ;H} HEHt.=H]H]UHHd$H]LeH}H@gXuEfDEEH}$vHu EMuH} v@l;Et E0uH}uIL"Etmd ;]EEH]LeH]UHHd$H}HuHEHUHuu7HHcHUH}HExuHEHHu%HEpHuH}HEHUH8H;Hu HuH}AH}SH}oHEHHuH}H}@0#HuH}HEHtHEplH}H}p9H}HEHt;H]UHHd$H}HuHEHH;EtGHEHUHHUH5tHEHԎH}HEHH}GH]UHHd$H]H}HHÃE@EHEHuHH=_o4tPHEHuHEHEHHus}!HEHHu뛜HuH}z;]HEH@|eEEmHEHuQHEHEHHuY} HEHu⛜HuH}z}H]H]UHHd$H}HuHEHU%H]UHHd$H}HuU|1HEH@;E~uH}IrHHuH} H}1H]UHHd$H}HuHUHu H}1룋jHEHpH}أHEH@XHEDfHEH@HEH-HEHEHHEHuH}1ɺRHEH@XHEH}uH]UHH$`HhH}HuHDžpHUHu83H`HcHxHEHEH@gXEDEHEHu9HEHx`tXHEHx`HpHEH@`HHp1HpiHpHu HuHEH@`HE;]5HpHxHt7HEHhH]UHHd$H}HEFHEHH5,-HEHHHcHkHH?HHHHEEH]UHH$`H}HuHEHDžhHUHx1HHcHpgHEH}THEHx?HEEfDE܉EEHcEHUHtHRH9HEHcU؀|.uHcMHcEH)HcUHuHh(HhH}JE؃EH}uH}1nHEHEH@@HE HEH@PHEH}tHEHxHuLuH}tfHEHEHcEHUHtHRH9HEЋplH}#HcEHUHtHRH9HcEHUHtHRH9HE.3Hh肟H}yHpHt4HEH]UHH$HLH}@uUHEHEHEH76H+6HDžHhH(H/Hp HcH @uH}/HEpH}mHH HuH}vhHEpH}lHEH]HtH[HEHx`HEH@`HHcH9~OHEHx`HEH@`HHcHHuHH貰HH}RHEHx`HHEH@`HHHHu袭Hu }HEH@GHEHH=>g`tH}H}HtgHEEHEH@`HEHEH}H}HEHHEHc@(HH5gHH}H}HEHtWHE@(gX|HEfDEEHUHH"HHEHcUH<;]HE,EHEHH,H HcHHH`,H HcHXuHEHx`HuHEH@`Hp/HXHH=45o1H~HPH8H,H? HcHu,HPHpHϱcHxE1詣E/HHt11s0HE,;E}(H}H}HEHHE@(gXEDEEH}HHWuHuH}i;H}@0H]H]UHHd$H}uUHEHHc@HHEHcEHEH|HEH;E0uH}HEH8HEH8H}O:HEH8H=͍>ht!HEH8HEH8H GHEH8H=I`c,t,}t&HEH8@HEH8̱H]UHHd$H}@uH}Iu^H}YtQHE@uAHEH@t-HEHtHEHHUHH;@uEE}tC}t=ܣH'=HEHt'HEH;EtHuH}HEHuE}EH]UHHd$H}H0@HH]UHHd$H}uUE}H}S;EHE苀;E6HEH0tHEH0;E ECE:uH}EHEHclHcUHHcUH9~ EEEH]UHHd$H]H}؉uUMDEDMUuH}AzH}qF}負HU؉H}HEHf=uHEƀLYuH}0EЅ@HEH@;E)uH};HEHH}et\uH}E9E|HEHclHcEHHcEH9} E@t$HEȀx tuH} uH}pEHþHIHEUHEHEEEFEHHEHxHuUHHHEHE؋;E}HEHcHcUHHcUH9|0ҋuH}_H}V@H}ؾX6H]H]UHHd$H}HH0HEH0HxHEH0H@HɻxH81$HH}HEHHEH}HEHHEHUHEHEHEHEE;E|E;E}E;E| E;E}0uHEH0FH}荙H]UHH$0H8H}uUMHEHDž@HUH`H؊HcHXjMUuH}輖HEE)ЉEHELt?H}4CEtHEEg4H}H}sUĉIЃH}HEHH}1HEHEt'uH}0-EH}0 H}>uH}0EUuH}EHE8;EuHE<;EtEE}t H}:BHE@%}}uHEH09HUE8HEUԉ<uH}6HEȃ}HEHpH}hH]uH}\HUlEHEHHuHEHHHcHcUHHEHcHH9HEHU@)ЃLEHHcH!HH!H LHcH HH!кH!H HPHHHCH8HCHHHu HEȋ@ TH}HPHEHHHEH0HUM10cHEH0Hx HEH0HPHEH cHHEԃHEHppH}gHEHtH@Hd~3HuعdH@3yH@H}1H,gHEEHEHHuHEHHHcH}+HcHUH)HcUH)H9HEHU@)ЃLEHHcH!HH!H LHcH HH!кH!H HPHHH.CH8HCHHHu HEȋ@ TH}HPHEHHHEH0HUM10}HEH0Hxt(HEH0HHHEH HHHE>HEH(HEǀ81ҾH= 1BH1BHUH(HEH(HEH(HHEH(@0HEH(HHUH5:HEH(HEH(HHUH5 HEH0HEH0H5g,HEH0HEH0@H}9@HEH(HEH(H/H@cH}zcHXHtH8H]UHHd$H}HuHCHHٸCHHHHuHEH@ȋ@ EHEHxHuHEH@HHHEH@H0HEHPM10&HEH@H0Hxt0HEH@H0HHHEH@H HHH]UHHd$H}؉uUMDEHE؀Lt H} 17DEMUuH}胐H]UHHd$H}HuUHuUH}HEH HuUH}ԧH]UHHd$H}HuUEEtEu@HEH8H=W>b֋tHEH8W.H~!Eu-HEff= f- H} <EEHEff=%f-%t f-tWHE胸p|HE苰pH}V/x tEE}HE苰pH}ylHE胸p|BHE苰pH}/x u)HE苰pH}.HH}OtEE}tHE苰pH}}u;HEHt-HEHHUMHuHEHEf8E}t HEfH]UHHd$H]LeH}H@HEH@ff=xf-f-'f-;f-f-{f-)f-tf-t?f-&f-HEH@苀pgpHEHx0 HEH@苀pgpHEHx0HEHxuHEHx1&HEHUHEP H)ʅHEH@LcpHEH@HcHEHx1E&HEHUHEЋH P)HcHHHHI)LeM~Hu1HEHx0/HEHxHEHx1%HEHUHEP H)ʅHEH@HHc@HHEHEH@LcpHEH@HcHEHx1r%HEHUHEH P)HcHHHHLHEH;E}HuHuHEHx0YEHEHxHEH@H( 'HEH@胸uHEHxHEH@H( HEHx@0ȽHEH@H8H=B{>ыHEH@H8HEH@H8H HEHxHEHxug)HpHEH@H诌tHEHxu?;]HEH@HHtHvHHEH@H1kHE@H}lZHEHtHxLeH]UHHd$H}HuUHEf8t.HEHt HEH HUMHuHEH]UHHd$H}HuH}1$H}HEH;H}$HEH8tHEH8HEH8HHEH1YH]UHHd$H}HuHEHHEhH}KEt/HEHt!HEHHMHUHuHEEH]UHHd$H]UHHd$H}؉uUMDEDMUuH}AaH}襧H]UHHd$H}HHtHEHHuHEH]UHHd$H}HuUMDEDMHEH0EHcH!HH!H ƋEHcH HH!кH!H HEH0HxHEH0H@HHH}HEHHEDE̋MȋUuH}HEHH]UHHd$H}HuH(xH8Hh&H;EtHEH0H]UHHd$H}HLH}1HEHHEƀLHUHEHEH8tF1+HEu!HEH8HEH8HH}HEHH]UHHd$H}uHE;EtHEUH}HEH@H]UHHd$H}uHE ;EtHEU H};H]UHHd$H}@uHE$:EtHEU$H}HEH@H]UHHd$H}uuH};E} H}vE}}EHE;Et'HEU쉐H}AH}HEH8H]UHHd$H}uH}WE9E}EE܃}}EHE;EEHEU)ЉEHEH8tW}~HEH8}=}};HEH8HcHEHcH)HEH8HcH9~EH$EԉD$H}HNjUM1M111uH}HEH@HUE܉H}H}H]UHHd$H}HuEHEH@XHE-DHEHp`H=aȋtEHEH@XHEH}uHEpt,HEHUp;BluHEHEHEHx`C_HEHmH}tHEHxt0uHEEPHEHp`H=)aNjtHEE)}tHE(EHEHxEEH]UHHd$H}HuHtHEHxtEEEH]UHHd$H}؉uUMDEDMUuH}ACHE؀tLHE؀Lu6HE؃}}~H}ؾdsHE؋H}^H}H]UHHd$H}uH}C HUHlH]UHHd$H]H}:H}ި)HE؉E}EEH]H]UHHd$H]H}Hx~+HEH@gpH}HH<8EEEH]H]UHHd$H}Hp8HEpH}pHEHUHEHEHEHEH}1HEHEHEHEHEuHEEE2H}EEHEpH}gEHUlEHEH0zE܉EH}葠U)‰UȋEEԋEEЋEȉEHEH0ۨHEHUH}HuHUHM/tHEH0HuHU.HEH8HEH8H=>bċuHEH8H=O>GċtmHEH8H=C@c&ċtEHEH8ڨHEHU}|'HEH8ڨHEHUHUE;~}|XHE;E|IHEH8ڨHEHUH}HuHUHM.tHEH8HuHU-H]UHH$pHxH}uH}HEuH} HEHUHEHEHEHEHE;ERHE$;E?HEHEHEHEHEHEHEHEHE EHEuHEEHEEH}EԉE܉EuH}EHEHEHEHEHElEEHEHEHEHEȋEEHEuEE"HE$EHE$EEHEp;EuMH uH uHHuHHEHHEHEHHHPHHH`@0H踚H'HE t$EgPuHȜEgPuHEgPuH褜EgPuH1HHHP@H*H虊EgPEgpHCEgPHE+ EgpH胜HREgPEgpHEgPHE+ EgpHc;HUHP HEƀ HEǀ H}HEƀ\ HEƀ] HEƀ^ HEƀ` HEƀa HEǀ( PHEƀ@ HEƀ_ HEHǀ HEǀ Hg cHpH}:DHEHH.cHpDHH_HHEHlHD$(D$ D$H$HUH7HT$HD$HEH`H cL@L s,H s,1H"D$(D$ D$H$HEHp7HD$HT$HEHH cL@L s,H t,1HD$(D$ D$H$HUHV7HT$HD$HEHhHJ cL@L s,H 8t,1HnD$(D$ D$H$HUH7HT$HD$HEHH0 cL@L %t,H ^t,1HD$(D$ D$H$HUH7HT$HD$HEHH cL@L Ct,H tt,1HHt,1H HUHD$(D$ D$Ht,H$HUHG7HT$HD$HEHxH cL@L t,H t,1H?D$(D$ D$Ht,H$HEH7HD$HT$HEHpH~ cL@L t,H t,1H D$(D$ D$Ht,H$HEH7HD$HT$HEHHA cL@L t,H u,1H D$(D$ D$Hu,H$HEH7HD$HT$HEHH cL@L u,H Bu,1H( H_u,1He HUHD$(D$ D$H$HUH8HT$HD$HEHH 6cL@L 9u,H ju,1H D$(D$ D$H$HUHjHT$HD$HH5cHp1HLu,HhLHEHL Gu,H xu,1H. Hu,1Hk HUHD$(D$ H$HE\ D$HEHeUHD$HT$HEHH) cL@M1H ku,1H HEH@~D$(D$ H$HE] D$HUH#UHT$HD$HEHH7 cL@M1H 1u,1H? HEH@ D$(D$ D$H$HEHTHD$HT$HEHHncL@L u,H $u,1H HEH@蟞D$(D$ H$HE_ D$HUHTHT$HD$HEHHcL@M1H t,1H` HEH@-D$(D$ H$HEa D$HEHTHD$HT$HEHHcL@M1H t,1H HEH@軝D$ D$Ht,H$HEH{THD$HT$HEH@ D$(HEHHcL@M1H t,1Ht HEH@HH ƃ@H HH HE\ @HHHUH=KgHKgHUH HEH H5*t,HH0HEHHH`1H资IHEHLo1H蕄IľLHxIHEHL2HUIľLHةHԩHFHEHHEHHBL)+HEH+H HEHgpHBHHHUH'H H(HUHM)HHHUH)HHHUHlH8 H@ HUH"PHH HP HƴHEHHHEHHHEHHHHE@\ HEHHEHHHEH HEHHEHHMH$HHHEHHMHC%HHHUH==;BH6;BHUH HEH H5{q,HH0HHH1HY9H}gHHEHHH`1H1H苼HHHEHH'HE@_ HHHE\ t H}>HE_ t H}DAHUH=,:BH%:BHUHHEHH5p,HH01Hd8HEHHH`1H1H詻HH@HHHUH=9BH9BHUHHEHH5p,HH01H7HEHHH`1Hx1H@HHHH@HHHUH=_>HX>HUHHUH=#gH#gHUHHEHHEHHH`H`6HҩHE6Hԩ5H*6HHbHpH6HEHHzHEHHEHHH`H~IHEHLH~IľL81H~IHEHLX1H~~IľLHEH)H@0HH"5HHHH&ѩHUHHHHUHbHHH};?HEH1HEH HEHwHHHt yHEH}tH}tH}HEHQwHPHtlH8HsH%RHcH0u#H}tHuH}HEHP`vxvH0HtyyHEHLH]UHHd$H}HuHUMHEHPH=$<H<HEHuH}HEH0H}H5;l,~@uH}AH}tHuH}}HHEH@HHHu\HHEH]UHHd$H]H}HuHUHMLELMHEHPH=g<H`<HUHHEH8HuHEHH0HEH8Hu踊HEHHHuQHEHHEHHE HHEH8@u(tHEH8@u0褌HEH8@u8$H}t'hHHuH4HEH8攭H}tHEH0H}/G"HEH@HHHEH0 GH]H]UHHd$H}HuH~HEHUHHHEHP f\HEH V\HEHF\HEH6\HEH&\HEH\H}1HEH [H}tH}tH}HEHPpH]UHHd$H}HuHEƀ@ H} HHEHH}H}dHEƀ@ H]UHH$pH}HuHUMHDžpHUHu(pHPNHcHxu?H}HU܋u@:t)u1Hp*HpHEH-rHpRߊHxHtqtH]UHHd$H}HuHH}HH]UHH$pHxH}HuHEH8 H;EDHEH8 tHEH8 Hu>HUHEH8 HEH8 HUH5rHEH8 RHUH5HEH8 HUH5*HEH8 |H}1EfEEH}`Ht"uH}_HHEH8 H 8}rH=(c%HEHUHu0nHXLHcHUHEH8 HuŧHE H};'~HEHP Hu(HUH5h)HEH8 H}&ucHEHP %HEH8 HH=Z3Qt1HEH8 HHEHP 7$ HuH}xspH}jYHEHtqHEH8 HEH _H}@H}lHxH]UHH$`H}HuHUHDž`HDžhHUHulHJHcHUHuH=f3PH}HhHEHHhHpH|e,HxHEH8H`\H`1H`H`HEHpH}1ɺߊ%HEH8H`\H`H}1oH`[ۊHhOۊHEHtqpH]UHHd$H}uHEH;EtHEHuH]UHHd$H}uu} E"}~} } E }d~EdHE ;Et[HEU쉐 EEEH}d\HtuH}S\HU H}rH}H]UHHd$H}uHE( ;Et HUE( HEH uH]UHHd$H}HuHEHH H;Et*HUHEHH HEHH HEH tH]UHHd$H}HuHUHEH@ H;Et:HUHEH@ HEHH HEH@ @HEH谏H]UHH$pH}HuHUHDžxHUHuKiHsGHcHUHuH=3Mt HE@PueEHEHp tHEHx HUHuHEp }t0HUH}HxHxHUH}HEHXkHx-؊HEHtOmH]UHHd$H]H}EEEH}YHtuH}YHH(}rHEHrH}@H]H]UHHd$H}~H]UHHd$H}HuUHE耸\ tHEH UHuxf H}H]UHHd$H}HuHE\ t2H}uHEH @aHEH Hubf H}H]UHHd$H}@uHE\ tHEH @u>a H}SH]UHHd$H}H\ tHEH 7g H} H]UHH$HH}HEHUHuofHDHcHxHEƀh H=N3Y&HEH`H fHEDHcHHEH8 HEH8 HHEH8 HHUH}9HEH8 HH=x3 JtXHEH8 HH}輞Ã|4E@EEH}䜜HHUH};]HEHHHu0PHEHH%0HEHHHEHHHuHEHHu/Ĩ H}1ԊHEHHHuHEHHHHEHH/HEHHHuHEHHHEH}t}} H}"HEHuHEHH 'gH}PHEƀh HHtHthHDžfH}AӊHxHt`hHH]UHHd$H}Hd H]UHHd$H]H}Hd HEd }裆HH5\,HAHEd uHE$ t H} H]H]UHHd$H}HEHEHHlHEHH |Wttt)t5BHEH HE1HEH HE HEH HEHEH HEHEH]UHHd$H}HEH}BHEHt H}`HEHEH]UHH$H}HuHDžHUHuaH@HcHUEH}1ъH}`HEHHEHx`6HhH(aH?HcH u4HEHx`HHEH@`H8HH}@ъEgdH HtTHHaH;?HcHu H}1ЊdHHtffdHVЊHEHtxeEH]UHHd$H}HHP HEH8 y H]UHHd$H}HL:fHEHUHuV`H~>HcHUuH}HExEYcH}PLHEHtdEH]UHH$HH}HEHfHfHUHX_H=HcHPH{9fHEHEHP _H8H^_H=HcHu4H}HEH]HΊHHEHP Hu踃t)?bH}6KHHtHcHDžHEH8 HHp H}?ފHuHEH8 HHEHEH8 HHuwHEHuH= 5;BTHEH8 HDxHEHH=nnfBt HEHEHEHEHP kÃEEHEHP uYHH=?;JBHEHP u/HEHH}teHuH&jHH$HEHHp HjL}HuH}LV,HEHHuH}HEH`;]#H=wcHEH8H\H;HcH0HE@HuH}HEHP Ã|6EEHEHP uHH}];]HuH}HE@H}1HuH}{v_H}mHH0Ht`H}FH}@B_HbHbH}ˊHPHt`HH]UHHd$H}HuHEX HEX HUHu[H9HcHUH}t)HEHP HuOt)HExuHEHP H}tHEHP HuHEHP H}|H}cHEH0 tHEH8 HuHE0 ]HEX HEHtHth_HEH]UHHd$H]H}HD GHED HEHHHEHHHx tGH}DHEH0HEH0H@HEH@HEH@H@EEEH}TKHt"uH}CKHHEHP H "}rH}HEu^HE tQHEHP ~=HEH tHEH HuHE H}@HEHHED H]H]UHHd$H}HHP HEH <HEH 9|H]UHHd$H]H}EEEH}$JHtuH}JHHY}rH]H]UHHd$H]H}EEEH}IHtuH}IHHȍ}rH]H]UHHd$H]H}Hd ~ HE$ ]HE$ E@EEH}HEHtVH]UHHd$H]LeH}EHEH DHH AAE|dEEHEH DHËuH HEHUH}H5J,ItH}HEHPuED;eEH]LeH]UHHd$H}HuHUMuXHEf8.uMHEHP ) ~9H}t,HbHx1ɺLǤu H}1<H]UHHd$H}HuHEH8 HEH8 HHEH dCHHEHP ! u\HEH =CHHEHP H}qH}HEH0 tHEH8 HuHE0 H]UHHd$H}HuHEb t H}1&H]UHHd$H}HuHEHHHEgpHEHHHH]UHHd$H}HuHUMEHEf8 u4Et+EEtH}H}}HEf8(t HEf8&uqEthEHEHHEHHtHEHHEHHHEH@HEHH }uiHEH t HEH HUMHuHE HEf8t9HEH t+HEH HUMHuHE HEfH]UHHd$H}HuHUMHEH t HEH HUMHuHE H]UHHd$H]UHH$H}HuHEHUHu2MHZ+HcHx8H}HEH}HEHuH=<1p(HEHx`HEH@`HHEHx`HuHEH@`HHHuH}hH}/H}HEH@HWF,H HDž HuH=*<1H(H0HDž(HHF,H@HDž8 HEHPHDžH HAF,H`HDžX HEHpHDžhH= OH}bHxHtPH]UHHd$H}HuHEH tHEH HuHE H]UHHd$H}HuHEH tHEH HuHE H]UHHd$H}HuH}6H]UHH$pH}HuHDžxHUHuJH)HcHUuOH}HEH}VHEHt0HEHx`HxHEH@`HHHxH}=MHxHEHtOH]UHHd$H}HuHEH tHEH HuHE H]UHHd$H}HuHEHP ?~gHEHP 1IHH=3:.tBHEHP 1$HcHEHH=Yf .tH}HEH8H]UHHd$H}HuHEHP ~gHEHP 1HH=3-tBHEHP 1HbHEHH=&Yfi-tH}HEH0H]UHHd$H}HuHEHP ~DHEHP 1 HbHEHH=Xf,tH}1HEHPH]UHHd$H]H}HuHEHP 'HEHP 1H bHEHH=3Xfv,HEHP 1\HH=r3M,HEHP 13HEHEHP HEHP H}&Ã|9EfDE܃E܉H},HHEHP 9;]HEHP HEH0 tHEH8 HuHE0 H}HEH`H]H]UHHd$H}HuHEHP /uBHEHP 18H`HEHH=Vf+tH}HEHH]UHHd$H}HuH}0H]UHHd$H}HuH}HEHtHEHpHEH0 5HEH tHEH( HuHE H]UHHd$H]H}HuHUHMHHEHEH t/H]HKHHEH HUHuHE E܊EH]H]UHHd$H}HEHUHuYEH#HcHUHEHP |ZttOHEH1HEHP 1jHH}HuHuHEHvIHEHP EHEHUHbHp1H}?HuHEH+GH} HEHt/IH]UHHd$H}HuHtHEHP H}H]UHHd$H}HuHH}H@H]UHHd$H}@uHE\ :EHEU\ H}6HUHuCH!HcHUHE@\ HEH\HE\ @HEHHEHHHE@\ HEHHEHHHE\ t H} HEHP.H}@!FH}xHEHtGH]UHHd$H}@uHE] :EtDHUE] HEH@uHEHHHEH@u[H]UHHd$H}@uHE_ :EHUE_ HEH@uk[HEH @uHEH H}t2H} HEH t+HEH( HuHE HEHX,H]UHHd$H}@uHEa :EHUEa HEH@uHEHHHEH@uZHE_ t8HEH HEH gpHEHs˨H]UHHd$H]H}@uHE^ :Et@HEU^ HEHHHEHHHx H@uH|H]H]UHHd$H]H}@uHE` :Et@HEU` HEHHHEHHHx H@uH H]H]UHHd$H]H}uHEHH EEEEHEHHHEHHH ;EE}}%HEHHHEHHH EHEHHuHEHHHx HHH tHEHHu%HEHH ;E=H]H]UHHd$H}HuH})H]UHH$HLH}HuHUHDžHUHX>HHcHPxHH`IH}"HEHxHu1LH}GEEHEHcHcUH)HH?HHEHEHH(@XEH8H=HHcHsHEHH(HEHH(H@EE@EHEU܃<EҜHH㬊UH9BH1H5t&,H`HHlAHEHMUH}ALEEHEUHHcHHHHrh1HH}01HʊHuHHH}EEE} }tHbHPH~y?HEHH(uHEHH(H@HHt@3?H臫HPHt@HLH]UHHd$H}uHUHEH@HHuHEH@HHHEHEH@HcHcEH)HH?HHHEH@HHMuHEH@HHHEH]UHHd$H}HuHEHH t#HEHH HPHEH0H}H]UHHd$H]LeH}HuHEHH /HEHP H}1Ҿ8HEHH HEHH HÃEEHEHH uHEHH HHH=`g|HEHH uHEHH HHEHEHP =AAE|:EfEHEHP u1H0HuHUH}ZD;e;]>HEH@HUH}H]LeH]UHHd$H}HuHEH HEH H@H]UHHd$H]H}HH=AH ًAHHUHPHEHPH533,HH0HEHHH`HHH}'HèHȨHEHHHH]H]UHHd$H}HHP HEHP 1HHEHP 1HH= ;ppHEHP 1VHEQHuH=L?@tHuH HuH=^At HuHHEHHEH}uH]UHHd$H}HuHHH=gAtH}|HEH*H]UHHd$H}HuHHH=A?yt#H}HEH HEHRH]UHHd$H]H}HH=AH yAHHUHXHEHXH50,HH0HEHHH`HHHEH gpHHEƨH]H]UHHd$H}HHHt"HEHH@0HEHHHHEH HEH HEH HEH HEHH H]UHHd$H]H}HEHUHuE5HmHcHUH}HUH=@?H??HUHHHEHHH5/,HH0HEHHH`HHHEHHtͨHEHHHHZH5Sf1H}8HuHbHPH1H5*fH1H}HuHͺbHPHH5fH1H}حHuHbHPHHEHE@^ H}H5fH1H}萭HuHbHPHHEHE@` H}HUHMHHHHEHH111HE HHUH @HHUH HE @HHUH HEH HEH GoHE @HHUH HUH=AHAHUHHEHHH1HvHEHHHEHHHx HHH`HUH=DAH=AHUH HEH 1H_vH讈HEHHH`HUH=WG>HPG>HUH(HEH(HbHpH!HHH@HHHEH HH`HUH=mAHfAHUH0HEH0H}HHHHUHHH HEH HH`HUH=?F>H8F>HUH8HEH8HbHpH HܺHH@HHHEH HH`HUH=UAHNAHUH@HEH@HeHHH翨HUHHH HEH HH`HEH @HEH HHEH@HEHH~2H}՞HEHt3H]H]UHHd$H}HuHUH}ҞH}ɞHUHu.H HcHUugHEHPH=C?HC?HEHuH}HEH0HuH}-HEH@HHH}HEH`1H}H}杊HEHt3HEH]UHH$pH}uUMHDžpHUHu-H" HcHxHEH@D HEH@H8 HEHPDEH=jeHE؋EHHsfH41HpQHpH}HEH0HEH@HP H}H}ؾHEHHEH@HH}ŨHEH@HHMHHHEH@H HUHHHEH@HHMHHHEH@H HUHHHEH@HHMHH HEH@HHMH H(HUHEH >HHHEH@HHuHEH@HHHx HH}HEH`-/Hp聛HxHt0HEH]UHHd$H}HuUHEH茑u5H}HEHt#HuUH}HEH HEf8tIHuUH}HEf8t.HEH t HEH HUMHuHE H]UHHd$H}HuUHuUH}HEf8t.HEH t HEH HUMHuHE H]UHHd$H}莗HEH HEH %HEHUHUHMHEHp Hx 5ytQHEH HEH H@HEH %HEHUHUHEHp HEHx H]UHHd$H}HuH}VH]UHHd$H]H}HH HHu#HEH H1HHEHEHEH]H]UHHd$H}HuHE\ @H}7H]UHHd$H}HuHE] @H}7H]UHHd$H]H}HuE@EEH}LHt.uH};HËuH},@HYȨ}rH]H]UHHd$H}HuHE_ @H}H]UHHd$H}HuHEa @H}H]UHHd$H}HuHEH@ tHEHH HuHE@ H]UHH$ H H}HuHDž8HDž@HDžHHUHX'HHcHP}HH HEH @HEH@HEH HUb EEEH}HtuH}{H@0Hƨ}rH}HEEEEEHEHHUHH; H}nHH}HEH t H FHuH=k3 tHuH$HuH==m3 tHEHpHdHEHP tÃEEHEHP uiHH=_3Z tTEHEHP u?HH=<0 u*HEHP uHH=P uE;]yHEHP uQHEHP 1HH=0_3 t,HEHP 1HUH8 H;tEEHEHP _u-HEHP 1hHH=;Y tH-}t H}NEHEHx@uJHEHp@uJHEH@uJHEH@uJ}u}t@@0HEHwJHEH@ucJHEH@uOJ}u}t@@0HEH+JH}HEHEHHH=ePnH}tHEHp`H HEH t!HE^ tH}=HtEE}t)H}HUH; tHEH t@@0HEH`lI}t)H}=HUH; uHEH t@@0HEH*IHEH@IH}t[H}HHHHe\HHHEHx`H@HEH@`HHH@HHt@@0HEH=H}uHEH@0HHEH@pHHEH@H0HDž( H(HbHp1H8jH8HEHO:HEHx`1H@ٖH@H0HDž( H(H"bHp1H8PjH8HEHH蒑HEHh@GHEH@GrHEH`@0wGHEH@0dGHEH@0QGHEH@0>GHEHh@0+GHEH@0G#$H8wH@kHH_HPHt~%H H]UHHd$H]H}HEHԧbHzAIHG,1HҬHEHD$$HELHL2 HbHx01 ԬHEHúH5,,Hl{H}!CHEH@(HuH}hHD$$HELHL HRbHx01ӬHE*HúH5,HzH}BHEH@(HuH}HD$$HELHL@ HbHx01ӬHE~HúH5,HzzH}/BHEH@(HuH}vHD$$HELHL HbHx01ҬHE8~HúH5I,HzH}AHEH@(HuH}HEHxt2HEHxEgpHEH@HHHU%!HEH@HHHU1%:ӬHEHH5,HEH0H}gpHEH@HHHUS%H]H]UHHd$H}HuHEH}H5@,HtH}HEHH,HD$$HELHLM HbHx01'ѬHEHEH@HHHU1$=ҬHUHBHEHxH5N,HEH@H0HEH@HHHEHPM$H]UHH$@HXH}HDžhHDžpHUHuHHcHx\HEH@H HEH@H HEgXREfE$Hp豋HcEH`H`HH`G1H`Hh貕01Hh2Hh1H52,Hp挊HpHD$HEH@H UHhHEH@H HHhHELHL01(ϬHEHEH@H HU؋uHEH@H H HEHcUHP(HEH@HHHU؋uh";]}ϬHUHBHh\HcEH`H`HH`RF1H`Hp]01HpݨHp1H5,Hh葋HhHEHxHEH@H0HEH@HHHEHPu!FHh蚉Hp莉HxHtHXH]UHHd$H]H}HH@HEH@HH zEEDmHEH@HHu. Hp H=,霊Hu)HEH@HHu HHZ}H]H]UHH$@HPH}HuHDž`HDžhHUHxHHcHpH}HEHEgX$EE$HhHcEHXHXHHXC1HXH`01H`肦H`1H5,Hh6HhHD$UH}H`HEHH`HELHLi01ˬHEH‹uH}HEHHUHcEHB(HEH@HHHUЋu;]}m̬HUHBH`نHcEHXH`HHXB1H`Hhڐ01HhZHh1H5,H`H`HEHxHEH@H0HEH@HHHEHPuH`Hh HpHt*HPH]UHHd$H]H}HH@HEH@HHzEEDmHEH@HHu Hp H=v,YHu)HEH@HHue HH}H]H]UHHd$H}HH tHEH HuHE H]UHHd$H}HHP tHEHX HuHEP H]UHHd$H}HH` tHEHh HuHE` H]UHHd$H}HuHEHP ~ H}蒴H]UHHd$H}HuHH=%<Ht0HEHE@(EHEH uHEH HH]UHHd$H}HuH}6HEHHuH=Z3Yt HEH@HEHuH=^Y39H}HpHEHH ^yH80pKH}HEHP @HUHuvHHcHUuHEHP H}zHEHP @HEHtH]UHH$pH}HuHH=ƒ<HjHEHP 2HEHP 17HH=:(HEHP 1HEHiHE@(EttttFqH}ļfH}i[HEHHuݦgPHEHHuަ-HEHHuݦƒHEHHuݦHEH H=@b{HEHUHuHHcHxuTHE@HEHH}sHuH}趵H}HE@HuH}HHuH}苵H}}HxHtH}UHuH}CH]UHHd$H}HH]UHHd$H}H H]UHHd$H}@uHE :Et`HEU HEH8 tEHE tHUH5HEH8 bHUH5HEH8 bH]UHHd$H}uHE ;EtdHUE HEH HE LHEH HE @LHEH HE @}LH]UHHd$H}HuHEH H;EuHEHH1vHEH H;EuHEHHNHEH H;EuHEHH&HEH H;EuHEHHqH]UHHd$H}HuHuH}ѫHE HuH}H}t&HEpE}EuH}0H]UHHd$H}urDttt$3HEH HE1HEH HE HEH HEHEH HEHEH]UHHd$H}HuHEH H;EtHEH HEHUH H]UHHd$H}HuHEH H;Et*HUHEH HEH HEH IH]UHHd$H}HuHUHEH tHEH HUHuHE H]UHHd$H}HHtHEHHHEHEHEH]UHHd$H}@uHEh:Et HEUhH]UHHd$H}HuH}VH;EuCH}t1HEHuHEH1H;E&H}HEit H}W HEHu4HEƀhHUH=_H_HH}eHEHHudH}t1HEHuHEH1H;EwH=bHEHUHuB HjHcHUu!H}t HuH}HuH}n9H}0HEHtH]UHH$H}HuHUH}uHEHUHRhHEH}+HUHu HHcHxHEHUH=`_HY_HEHEƀhHEƀiHMHUH}E1A?1=HEH}tH}tH}HEH! HxHtlH`H  HHcHu#H}tHuH}HEHP` T HHtyHEH]UHHd$H}HuH~HEHUHHHEhtHEH9H}1>H}tH}tH}HEHPpH]U]UHH=e`xH]UHHd$H}HuHUHuHeHxHMHUH}eH]UHHd$H}HuUMLEHfH@LMDEMHUHuLfHAH]UHH$0HHLPLXH}HuUHMLELMHEHULbIHLNILLH܉LmHUHhHHcH`u3HEH$LEHfHxLMMHUHuHfE H}NH`Ht EHHLPLXH]UHHd$H}HuUMDELMЀ}tMEt E@ELEЋMUHuH}JH]UHH$0H8L@LHH}HuUHMLEDMHEHULbIHL}MILLH<ۉLmHEHUH`;HcHcHXHEHHPH5eHPH}6׊EE~}tCHUHcEHH<u0HUHcEH|uEHUHcEHH<t8E2H}HcEHHuHcUHH H HDHDEEHcEH;EwHcEHPH5-eHPH}p֊H}ՊILMHMUHuH}E3H}*LH5eH}+HXHt EH8L@LHH]UHHd$H}>ܣEHxVH81ڦEH]UHHd$H}H]UHHd$H}ۣEHtxVH81芦EH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuH HcHUu@HEHEHxHusHEH}tH}tH}HEHHEHtlHhH(iHHcH u#H}tHuH}HEHP`e[H Ht:  HEH]UHHd$H}HuUHMDH]UHHd$H}HuzDH]UHHd$H}HuZDH]UHH$`H`LhLpLxL}H}Hu5L}AHeL%eMu3MLuHLLA HEHUHuH'HcHUu5LuH]M1LeMus3M,$LLHLA(H}HEHt[H`LhLpLxL}H]UHHd$H]H}Hu(4H}u(1H=,3H$HH5H"H}u%1ҾH=3HH5HH=>fuH=6EH"fH=fxEEPfuH=f9HEHxHuu2Hc]Hq2HH-H9v-2]E;E|H=eHEHUHPHEHUHPHUuH={fH]H]UHHd$H]H} 3H=>fwHcHq1HH-H9v1|E]؃E@muH=f-HEH@H;EuuH=f|}H]H]UHHd$H]LeLmH}HuHUHMH2H=fH=|f'wHcHq1HH-H9v0sEfEuH=2fmHELmMuk0MeLLHEHpt HMHUHuH}HEPHE8u;]H]LeLmH]UHHd$H}1HEEHHtcHEHLLH]UHHd$H]LeLmLuL}H}Hu8.HELh HEL` Mu,I$H;LHMH=0e IHELp HEHX HEL` MuF,M,$LHLLAXH]LeLmLuL}H]UHHd$H]LeLmLuH}Hu@-HEHx HELp HEL` HELh Mu+I]HXLLE}HEH@HE@OHELp DeHELh Mu^+I]HDLHHMHrHqHuJNHEHtoHEHxtHEHpH==33݊tLHEH@HEHEHHELHEHH LEHUHuHEHEHUHPH]LeLmLuH]UHHd$H]LeLmLuH}Hu0e,HEH@pH;Et7HELppH]HEL`pMu9*M,$LHLAH]LeLmLuH]UHHd$H}Hu+HUHEHHUHEHHB`H]UHH$HLLLLH}HuHo+HEHDžHDžHDžHDžHDžHUHu~HՉHcHUyHEHxthHEHH;EtQLeMu(I$HHxIHELhMu(I]HYHxHI9uEEHEHH}fH`H HԉHcHx6HEH@`H;EHfHe+HHEH@ HHH+HH1ɺHjLLuH5+LeMu'M,$LkHLLA`LuL}1LeMu'M,$L7LLAHELp LeLmMuY'I]HLLhHEtYL}LuHLeMu'M,$LHLLAxHHEH1H]+hfLuLeLmMu&I]HfLLHdH+HHEH@ HH+HH1ɺHqhLH.dHEH1H+HeLH]LeMu&M,$LHLLA`HEtHLuLeLmMu%I]H_LLHEuHHExPu8LuH]ALeMue%M,$L DHLAHEH@`H;Et'LeLmMu)%I]HLpHEHHu[cHxHt } HEHUH@H;HEHU@4;BHEHUHH;B`@HE,HjbH+HXL}LuHLeMuO$M,$LHLLAxHH`H+HhHE@4HHHc1HHl01H膀HHpH+HxHX1ɺHeLLeLmMuw#I]HLLXHE@lH6aHEH@HH8+HHELL}HLeMu#M,$LHLLAxHHH+HLuH]LLeMu"M,$LTLHLAxHHHG+HHE@4HHHc\1HHgj01H~HHH+HH1ɺHdLLeLmMu!I]H|LLXHEHcX4Hq "HH-H9v!HEX4Hm_Ha_HU_HI_H=_H}4_HEHtVHLLLLH]UHH$ H L(L0L8L@H}"HEHDžHHEHEHUHuH͉HcHUHEH@HHEL`HELhMuG I]H߉LHsHELpHEL`HELhMu I]H߉LL1H}1<^HEH@Ht1HEH@HHEHPHEHpHMHEH@H}H5+imHH}HEH@LHELpH]HEL`MuHM,$LމHLLAxL}H}]HEH@HHU1H}^LuHEHXHEL`MuM,$LމHLLA` HEH@@lH}\HEH@H@HPH+HXHEH@H@ H`H+HhHEH@LHELpHHHEL`Mu;M,$L݉HLLAxHHHpH+HxHP1ɺH} `LuHEL`HELhMuI]Hr݉LLXAHH[H}[H}[H}z[HEHtH L(L0L8L@H]UHH$HLLLLH}HuUH HEHHEHEHHEHEH@ HEHE@4EHE@EHEHHEHUH` H2ɉHcHXHEH@ HE@4HE@HEHUHHE@PtHUHEHHEHpH=l$3ΊH=MCVNHUHB HEH@@PtHUHEH@HHEHHHUHHIIHELhHEHXHuL#LOۉLLLHA$HEHx @gћH@HHljHcHEt tbHEHHHUHH0IILuH]HuL#LډLLLHA$[HEHHHUHH8IILuH]HuL#LDډLLLHA$HEHxHEHX HEL` MuNM,$LىHAHcHqHH-H9v2AE|VEEHELp DmHEHX HuL#LىDLA$HHJԊD;}HEHx ӟHHt!HEHUHHEHUHP HEHUHHEHUHHEUĉP4HEUPHXHtSHLLLLH]UHH$pHLLLLH}HuHU࿐HEHEHEHEHDžxHDžpHDžhHDžHDžHDžHDžHDžHDžHDžxHAHDžHDžH`H SH{ĉHcHJ)HEHx;)HEHHHu1 HHHUHEHxuFHEЀ8(HuH}`dHEHH=3=ʊ(HE@T(HEHxteHEHH;EtNLeMu*I$H։HHELhMuMeL։LLH9uEEHEHp+1H^HHEHH}1=VHEЊ,<(%H!eHcHHuH}XHHHH9v]}t.HEHxHuWHH-H9vM] HE@$EE;Eu }z'HEЊ<l',t%, ,,, lC'HEHHHu1 HH8,^H`H}1SH`tLHu}`t;L}LuLmH]HueL#L ՉLLLA$`&HEHp1H^]HH5+bH~EALuLH]HuL#LԉLLDA$LLuLmH]HuL#LZԉLLLA$`&HEHp1H\HH5H+KbHfEf ALuLH]Hu<L#LӉLLDA$LLuLmH]HuL#LӉLLLA$`S%HEHp1H[HH5+aH~E ALuLH]HuL#L1ӉLLDA$LLuLmH]HuSL#L҉LLLA$`$HEHHHu1 HH8HHH9v\\}%Hc\Hq%vEr\;XHEHH+H\HHEHLuE0HLeMu2M<$LΉHELHAHHHH}1ɺQHc\Hq2HH-H9v\\ HLH+HHEHH+HH1ɺHzPLLuLmH]Hu=L#L͉LLLA$`EHHEHLuAHLeMu M<$L͉HELHALLuL}H]Hu L#LJ͉LLLA$`HuH}u۽0}tHEHxHut۽ HE@$EHEH$۽ ۭ ۭ0zu }H0H$f8fD$LuLH]Hu L#L̉LLA$LL}LmH]Hu L#LV̉LLLA$`HuH}yHH}t!HEHxHuyHHHDžHDžHEHWHH;uHH;sH]HIIHEHHMHUHuHEH}1'J}t4H]HIIHEHHEHPHMHuHEHuH}`YHH}u>L}LuL-+H]HuS L#LʉLLLA$`HIHU1H5+HJLLuL}H]Hu L#LʉLLLA$`@HH;,Hu H}1IFHEL``Mu I$H6ʉHHHNJHH}1RH}u>L}LuL-+H]Hu: L#LɉLLLA$`HGHU1H5+HILLuL}H]Hu L#L|ɉLLLA$`'HUHuH}]}tHEHpHUHx]Hx11eXHxH}EWHLmL}LH]Hu? L#LȉLLLA$LLmLuH]Hu L#LȉLLLA$`VHUHuHd}tHEHpHUHcH1SmHHzHHHtH[HHH9v~HHHuHR wILmHLeMu&M<$LljHLLALL}LmH]HuL#LljLLLA$`7HUHuHg}tHEHpHUHfH1dzHHyHHHtH[HH-H9v`HHHuH4 wILmHLeMuM<$LƉHLL򋍸ALLuL}H]HuL#LnƉLLLA$`Ha.H8u.H4HPH=2ɟHH5H֊HUHuHvHHHHHH}tDHEHpHUHvHHHHHHH1Ҿ"HH誮H"ff=f-f-\f-0f-f-wf-f--f-f-{f-Pf-%f-f- f- HBH+HHHHc1HHL01HdaHHH+HH1ɺHFLLuL}H]HuQL#LÉLLLA$`HBH-+HHHHc1HHL01H`HHH+HH1ɺHELLuL}H]HusL#LÉLLLA$`H6AHw+Hم<$LmLH]HuL#L‰LLA$HHH+HH1ɺHDLLuL}H]HuL#LO‰LLLA$`Hm@H+H݅<$LuLH]HuML#LLLA$HHH+HH1ɺHDLLuL}H]HuL#LLLLA$`1H?H%+H݅<$LmLH]HuL#L)LLA$HHHF+HH1ɺHUCLLuLmH]HuL#LLLLA$`hH>H+HLLuLH]HuL#LbLLLA$HHH|+HH1ɺHBLLuLmH]HuNL#LLLLA$`ff ALuLH]HuL#L詿LLDA$LLuLmH]HuL#LpLLLA$`H=H_+HHHHct1HHG01H[HHH+HH1ɺH)ALLuLmH]HuL#L葾LLLA$`<HLLuLmH]HuOL#LLLLA$` H:Hs+HHHHHH1HHD01HXHHH+HH1ɺH=LLuLmH]HuoL#LLLLA$` H29H+HHHHHH1HH"C01HWHHH+HH1ɺHHHH+HHHEH1ɺA8}tHEHxHuBHUHBLuLmH]HuL#L葵LLA$^NJHEHHPHEHHh4HHtȊLeMuI$H-HH5c 3辴}t;HEHxHu/BHHEHHEHH}OHEHHhn3HHVÊH~HcHwHEtHEHHu1H4+?4HEH12LuL}LmH]HuL#L&LLLA$ŊHEHHh2HHtXNJHuH}V=HP}tHEHxHu8=HH HDžHHPH;HQHEЀ8HPHH1HH;01HOPLLmLuH]HurL#LLLLA$`HPHH1HHM;01HOLL}LmH]HuL#L蕲LLLA$`@HuH}b4HE}tHEHxHuD4HE HEx$EHE@$EE:Eu }D}LuLH]HuSL#LLLDA$LLuL}H]HuL#L迱LLLA$`jHUHuH?Hu>LuL}L-d+H]HuL#LcLLLA$`HxHޤHHt+H0Hj+HPHj\HxHxHPHHDž}HUHuH.?HxH_HH+H0H+HPH몟HxHxHPHH;yHHUH@H;uaHHUH@H;uIHH@ HHH@ HHH$۝uHHHH;LLpLuH]HuL#L賯LLLA$xHpH-H+HHuHмHHH%+HHEHHt+HH1ɺH1HH=2裲HH5eH衿LpLuLmH]Hu$L#LɮLLLA$`wH,H +HHEHH"+HH1ɺH0HH=2HH5HハHÊHb,HV,H}M,H}D,H};,H}2,Hx&,Hp,Hh,H"NHNH NHMH2H&HxHHtHLLLLH]UHH$PHPLXL`LhLpH}HuOHEH}H.EHUHu肻H誙HcHUHc]Hq\HHH9vHxxEDEH]E=vEH4H}i*tLH]E=vELLeLmH]HuL3L譫LLAHPLXL`LhLpH]UHH$HLLLL H}HuHEHEHDž(HDž8HUHH褹H̗HcH@ H}1)EHEHxxtKH8H! H8H}Q)HEHLEHMHUHuHEPx}r H=met>H8H H8H}(HMHUHuH}w}* HuH=2=HEHxthHEHH;EtQLeMu;I$HߩH0IHELhMuI]H跩H0HI9uEE}tHEH@@@EEHE@@E;E H8HH8H}'H}t7H}H5+Xԝu H}1'HuH}1H+(HcEH0H0HH0G1H0H8R101H8EL8H(&Hu1H+H(v(L(H]LeMuM,$LqHLLA`HEHHHUH;B8BH=I3褡HEH¹H=2gלHEH H諶HӔHcHHELLeLmMuI]H踧LLHUHEHHB8HUHEH@HBHUHE@PB HMHUHHAhHHApHMHUHHAxHHLuLeLmMuvI]HLLH}H}輠LeLmMu:I]HަLHLeLmMu I]H警L@H(HH(H}5%HEH@@H0H+H8HEH@H+HHH0H}1ɺ(LuLeLmMurI]HLLHHELpHLeLmMu@I]H䥉LLHEHc@0H]HtH[HqiHq^HH-H9v]LeLmMuI]HuLEuH EHEH@HELeLmMuI]H/LHHqHH-H9vpAEEDEHEEE _f}t HEHcPhHcEHq^H9}t2LuH$+LeMuM,$LzHLAHHc]HqHH-H9vHEH]L%+LmMuoMuLLHAHHc]HqHH-H9vO]u1H(,H(LeLmMuMuL襣LHAHHc]Hq9HH-H9v]Es}t`H]L%+LmMuMuL:LHAHHc]HqHH-H9vv]EEH(HHc6݉1H(H(A+01H(?H(H}1H5+x"HcEH]HtH[Hq-HH-H9vH H]LeLmMuMuL9LHAHHcEH]HtH[HqHH-H9vi]EHED;}}t2LmHb+LuMuM&L蹡HLA$HLmH(+LuMuM&L臡HLA$HLeLmMuI]H[LPLeLmMuI]H4LH}H}HHts޲H(2H8&H}H}H@Ht3HLLLL H]UHH$@H@LHLPLXL`H}HuHDžhHEHUHuڮHHcHUsHEHxSHEH@HtAHEH@HHEHxHEHpHtHvHEHxغs7oHEHpH=*2轒tHHELxHELpHEHXHEL`MuߊM,$LcHLLAxHEHx1HEHxH}jH˰+HpHEHpHh踿HhHxH++HEHp1ɺH}H!HUH=x2cHH5HaHEHpH}P{HhH}HEHt豊H@LHLPLXL`H]UHHd$H]LeLmLuH}u8vHEH@Hc@0HqފHUHcRH9}HEH@@h;E| EEHExt:HELhH+HELpMu ފM&L话HLA$HHELhHEL`Mu݊I$H{LPHELhHEL`Mu݊I$HLL@HEH@HcX0Hq݊HH-H9v݊HEXHE@EH]LeLmLuH]UHH$ H(L0L8L@LHH}HuHUH}ފHDžPHDžpHUHuHBHcHxHpHu1H+Hp LpLeLmMub܊I]HLLXH}1HcHq܊HH-H9v;܊AEWEEuH}HEHpLeMuۊI$H~HHPϚHPH Q+HP谜HP1HP#HPHXHEH`H++HhHX1ɺHpjLpH]LeMu1ۊM,$L՚HLAhH]LeLmMuۊMuL覚LHALmLeMuڊI$H{LpD;}CHPHpH}HxHt衭H(L0L8L@LHH]UHH$`H}HuHU.܊HEHUHutH蜆HcHxH}uH}H5+CHEH@`H;Eu?HEtHEH@`Hp H} H}H5++uH}1HEHEEH}tHUH}1H5+HEHUH@H;B`HEHp HUH}1HEHEHEH@H@ H`Hl+HhHEHpH`H}1ɺHEH@`H;EuAHEtHEHp HUH}1^HUH}1H5+FHEHx u H}1;HEHp HUH}1HEH@HEH}H}Hu|觩H}HxHtH]UHHd$H}HuUي}tH}H5+H}H5+ H]UHH$`H}HuUيHDžhHUHu¥HꃉHcHUE ~}H7+HpE=v9׊EHHfpHpHxH+HHpHݘHH}1bHcEHEHHH}Љ1HHh01Hh03HhH}1H5t+⧊Hh6HEHtXH]UHH$PHPH}HuU؊HDžXHDž`HDžhHUHu5H]HcHU<E_~&---H+HpE=vՊEHHfpHpHxHB+HHpH&HH}14}HcEHEHHH}Ή1HHh01Hhv1HhH}1H5+-HEH+HpuHXV>HXHhHtH[HHH9vXԊHHhHuH52vH`H`HxHA+HEHpH}1ɺbHcEHEHHH}͉1HHh01Hh[0HhH}1H5+ HX3H`UHhIHEHtkHPH]UHH$0H}HuHUՊHDž8HDžHHUHpCHkHcHhgH}1H}QEHEHuHvHEHE؊Ēu-HEHuHvHUH)HEHtH@H9HuH2}tEHEH0H}1Hl+HEHHPH*+HXẺDHDHHcDˉ1HDHH01HH}.HHH`HPH}1ɺHE}uEHEH0H}1H+}'u#HEH0H}1Hy+HEHEHEfH}HcHEHE؊Ēu)HEHuHvHUH)HEHtH@H9tHuHu}'uHEHuHvHUH)HqъHMHEH)HuH8O!H8HEH0H}1}tHEH0H}1H+H8AHH5HhHtTH]UHHd$H}HuҊHE rt =tr H}ϟuEEEH]UHH$HLLH}HuHUMъHEHDž0HUHX辝H{HcHPH}1 }HEHEEH}1x HEffEfu%HEHUH)HH?HHHcUH9mHuH}tEHEH0H}1H+<HEHH8H+H@E؉(HDž H 1H5+H0_H0HHH8H}1ɺZHE}uEHEH0H}1HR+ f}'u#HEH0H}1H+| HEHEHEfH}ߞHcHkHEHEffEfu!HEHUH)HH?HHHcUH9tHuHwuf}'uH]HEH)HH?HHHHH9vl͊H]Hes͊HHH9vA͊HEHtH@H9~5Hes_͊HHH9v͊HH}1H]HtH[HHH9v̊LeH}TLLMHMHUAHWuHEHs̊HEHEHHtH[HH-H9vh̊]HcUHH9vM̊Hc]H]s~̊HHH9v'̊HH}1H}pHLceIq>̊LHH9vˊLHlNl#HEHH9vˊLeH]H}9HLLn^}tHEH0H}1H+ ✊H06 H}- HPHtLHLLH]UHHd$H}HůHE83% rtsE2HEH@tH}ÛE HEf8EEH]UHH$@HPLXL`LhLpH}HuO̊HEHUHu蕘HvHcHxH}1pH]HHEH$fEfD$HE1HHL}LuH]LeMuɊM,$L\HLLA'H}~HxHt蝜HPLXL`LhLpH]UHH$pH}HuHU.ˊHEHDžpHUHuiHuHcHU[HEH'HHufHMHKY8m4HH H?HHxHxHHx‰H}1HxH}01>%H}HHm‰1HHpx01Hp$HpH}fDHUH}1H5w+HEHtH@H|HEHtH@HuHUH}1H5[+^(HUHtHRHqȊHuH=)+H}Hu"HpvH}mHEHt菚H]UHH$`HhLpH}HuHUHb(ɊHUHuvHsHcHxHuEHEH}H}Hu2THEHELeH]HqNJHHH9vƊHH}?A|+u*HEHqƊHEfHEHqƊHEHEHtH@H;E~>LeH]HqƊHHH9v@ƊHH}A|0tHEH;EiHEHtH@H;Eu,HUHEH)q9ƊHq.ƊHuH}1*HUHEH)q ƊHuHqŊH}HEHEHEHqŊHEH}~>LeH]HqŊHHH9vdŊHH}A|0tLeH]Hq}ŊHHH9v&ŊHH}AD0 rHEHq=ŊHEHEH;E}HUHEH)qŊHuH} H]H}N; uH}H}HuH}[HxHtzHhLpH]UHH$ H(L0L8L@LHH}HuHUMDEŊHDžPHDžXHDž`HUHxHFpHcHpH}HEЋ@;EHEЋ@;EHE<,tQ,,}ALuH]LeMu9ÊM,$L݂HLDAoLu؋]L}LeMuŠM,$L裂LLA6H}؋UHu!HcEHhHhHHh谼H}1Hh H}01AHE}HEHPH +H`^H`1H`i H`HhHcEHXHXHHX1HXHX 01HXHXHpH+HxHhH}1ɺHPH9+HHHcEHXHXHHXp1HXHX{ 01HXHXHPH+HXHEHp1H`9 H`H`Hܐ+HhHH1ɺHPHPH= 2 HH5 H 4HPHX|H`pHpHt菓H(L0L8L@LHH]UHH$H}Hux"ŠHEHUHuhHlHcHUuRHH蹉1HH}01H}yHUH}1H5+3.H}HEHt角H]UHH$HLLLLH}HuHU;H}u'LmLeMu"LH~LShHEH}HUHuPHxkHcHxZHEHE@THUHEHHEHxXH5Ց+HEHx(H5+HEHH5+HEHH5+HE@hPHEHx@H5<+HEHxHH5P+H=BZHUHBpHEHxH5K+^M1AH֋eL%ϋeMuݽML}HLLAHEHHHUHB8H}3xHEH}tH}tH}HEHHxHtlH`H 賋HiHcHu#H}tHuH}HEHP`诎:襎HHt脑_HEHLLLLH]UHHd$H]LeLmH}Hu(詾H}~'LeLmMu萼I]H4|LHEHxpuH}1vH}tH}tH}HEHPpH]LeLmH]UHH$HLLLLH}HuPjHDžHDžHDžHUHxHAhHcHpHEH@`H;EHEHHEHEH@HEHEHHEHXH諉HgHcHLuLeLmMuI]HzLLHEHpH=,2mELuLeLmMuֺI]HzzLLHLeMu蜺I$H@zHHyH1HHHHώ+HHELL}HLeMu,M,$LyHLLAxHHH+HH1ɺHLHELp H]LeMu蹹M,$L]yHLLA`}&HE@PHEH@@PHE@lHIHEH@HHK+HHEH@ HHƍ+HLuAHLeMuM,$LxHDLAHHH+HH1ɺHLLeLmMu蘸I]H_Ot HEHUHP H}HxHEHHxH}1'H}1LډHEHx(t2HEHx(HxHEH@(HHxH}1HEHpH}nu HcHEHpH}OtNH}H58q+;u H_0H}H5q+tH}H5.q+ uH-lH}ىH}ىHxHt%nH]UHHd$H}HHPHEH@HB(HEHPHEHHHB H;A(uHEH@H@ H]UHHd$H]LeH}HHx8t^HEH@8@gX|2EEHEHx8u͚ILT;]HEHx8THEH@8H]LeH]UHH$H}HuHUHMH}uHEHUHRhHEH}HUHu.hHVFHcHxuVHEHMHUH}1 HEHxH5o+׉HEH}tH}tH}HEHjHxHtlH`H gHEHcHu#H}tHuH}HEHP`j ljHHtjmEmHEH]UHHd$H}HuH~HEHUHHH}H}1RH}tH}tH}HEHPpH]UHH$`HpH}HEHEH}HUHHHEHxHEHH=N2JHEH@ HEH@(HUHu?fHgDHcHx2H}HEHHHEHpHHHEHpH=G:YJt,HEHxHEH@HHH1HEHpH=j;Jt HEHxQHHHE@011HT$H$LEH HEHxHU@HEx0HEHx(tHEHx(HEH@(H$HEHx tHEHx HEH@ HhHEH@ HEH@(H}HxHtHtviHDžxHpH]UHHd$H}HuEH}tf11HT$H$HEL@H 8HEHPH}@HEH@Hx(t%HEH@Hx(HEH@H@(HEEH]UHHd$H}H]UHHd$H}HuUH}H!aHpӉH]UHHd$H}uHEHUHHH]UHHd$H]LeH}HuHuHHuH=;GH} XEH}HEHxHHH ;E~uH}HEHxHËuHZIH}HEHHH}HEHxIH}HEHx L:HHHH]LeH]UHH$`HhH}uHEHDžpHUHuAbHi@HcHxHEHuH}HEHH}HEHxHËuH:HEH}HEHHHEH8HphRHp1HpsۉHpHuHHHuH}"HuH}HEH0H}HEHxHËuHGHuH} H}HEH(VdHpЉH}ЉHxHteHhH]UHHd$H]H}t\H}HEHxH1HHPH}HEHxHHH ƃH}HEH8H]H]UHHd$H]H}ZtbH}HEHx E}EH}HEHxHu1HHuH}HEH8H]H]UHHd$H]H}HHUHHx EvH}HEHxHHH ;E~QHuH}HEHt8H}HEHxHuHHHEHuH}eH]H]UHHd$H}HHUHHx E|EgPuH}HEHhH]UHHd$H]LeH}HHUHHx E|0LceH}HEHxHHH HcHI9}EgPuH}HEHhH]LeH]UHHd$H]H}uUH}HEHxHUuHHH}HEH(H]H]UHH$@HHLPH}HuHDžXHDž`HDžpHDžxHUHu]H;HcHU H}HEHxHHH @H}wH}HEHxHHH AAEEEHUH=;H;HEHx_̉HcEHhHhHHhU1HhHp`։01HpHp1H5Hd+Hx͉HxH}HEH0H`ˉH}HEHxHËuHA4H@ HPHd+HXH}HEHxHUHXHHHXH`Hc+HhHP1ɺH`dωH`H}sHMHUHHHHuH}0D;e`^HXʉH`ʉHpʉHxʉHEHt_HHLPH]UHHd$H}uwtt$t2t@tN]H}HEH@JH}HEHH7H}HEHP$H}HEHXH}HEH`H]UHHd$H}HuUЅt"t6tGtXtivH}HaHpʉyH}HaHpɉcH}HaHpɉMH}HaHpɉ7H}HaHpɉ!H}HaHpɉ H}1ɉH]UHHd$H}H]UHHd$H]LeH}uHUHЋuH}HE t&tKtpH}HEHx @H}_sH}HEHx @H}5sH}HEHx @H} sfH}HEHxLc H}HEHxHHH HcHI9@H}rHuH}HEHpH]LeH]UHHd$H}HHUHHH]UHHd$H}HHUHHHEHt,HEHH=P>;tHEHHEHEHEH]UHHd$H}HHUHHH]UHHd$H}H.HH=ݗeH ֗eHHEHUHuVH5HcHUu9HuH}HH}HEH u H}HHE芀xEYH}BHEHt?[EH]UHH$`HhH}uHEHDžpHUHu1VHY4HcHxHEHuH}HEHH}HEHXHËuHݴHEH}HEHHHEH8HpXFHp1HpcωHpHuHHHuH}HuH}HEH0H}HEHXHËuH+ߴHuH}H}HEH(FXHpĉH}ĉHxHtYHhH]UHHd$H]H}tXH}HEHXH1HHPH}HEHXHH4ݴƃH}HEH8H]H]UHHd$H]H}HXHHkݴEzH}HEHXHHH;E~QHuH}HEHt8H}HEHXHuHHHEHuH}H]H]UHH$@HHLPH}HuHDžXHDž`HDžpHDžxHUHu@SHh1HcHUH}HEHXHHH@H}mH}HEHXHHHAAEEEHUH=d;H];HEHx‰HcEHhHhHHh ~1HhHp̉01HpHp1H5Z+HxLÉHxH}HEH0H`H}HEHXHËuH ٴH@ HPHY+HXH}HEHXHUHXHHHXH`HY+HhHP1ɺH`ʼnH`H}iHMHUH}HHHuH}&D;e`CTHXH`HpHxsHEHtUHHLPH]UHHd$H]LeLmH}HuHuHHuH=K;4H}EEEH}HEHXHHH;E~|H}HEHXHËuHڴH}HEHHH}HEHXIH}HEHXILٴL״HHHH]LeLmH]UHHd$H}u|/tt$H}HEH@H}HEHHH]UHHd$H}HuUЅ|Rt tt.BH}HaHp"7H}HaHp !H}H?aHp H}1龉H]UHHd$H}H]UHHd$H]H}uHUHЋuH}HE|TtPt t1DBH}HEHXHH״@H}hHuH}HEHPH]H]UHHd$H}HHUHHH]UHHd$H}HHUHH`HEHt,HEHH=(~@+2tHEHHEHEHEH]UHHd$H}HHUHHH]UHHd$H}uu_HEH}HUHHH}HEHHH= S1HtH}tHuH}HU+譍H]UHHd$H}HuUuH}H}aHp贼 H}1觼H]UHHd$H}H]UHHd$H}1H=5eH .eHHEHUHu?LHg*HcHUH}HEHHH=>x0H}HEHHUHH}HEHHEHhAH}HEH u,HEHHEH7AH}HEH(HEHtH}HEH(NH}z7HEHtHtOHEH]UHHd$H}uH}H]UHHd$H}HuUH}HaHp1HS+H]UHHd$H}H]UHHd$H}1H=ݴeH ִeHHEHUHu_JH(HcHUH}HEHHH=e@.H}HEHHUHH}HEHHEHRHEHHEHvPH}HEH u,HEHHEHERH}HEH(HELtH}HEH(LH}x5HEHtHtMHEH]UHHd$H}uH}gH]UHHd$H}HuUH}HaaHp1HQ+H]UHHd$H}H]UHHd$H]H}uH}HH}HHP+HH]H]UHHd$H}HuUH}HQaHp1HlP+OH]UHHd$H}H]UHHd$H}HHUHHH]UHH$PHPH}uHEHDžXHUHh~GH%HcH`HEHuH}HEHEtttt E EEEWH}HEH8HEHPH=>H>HEH}HEHHHEH8HXF7HX1HXQHXHuHHHuH}HuH}HEH0uH}HHcH HEH0H}HEHPHEHxHuHEH@HH}HEH~HH}1HHEHH@gtHuH}1HEH HuH}7@H})H HtiBHEHx HEH0蕭@HHEHt4BH]UHHd$H}HuH~HEHUHHHEHx9(H}1)H}tH}tH}HEHPpH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuH]H]UHH$pHxLeLmH}HEHUHu9HHcHUugH}HEHpH`H}HuLmH}HEHpIL?HHLH}HEH(h+Hx̦HxH}HEH0H`H=+HhH}HEHpH`UHXHHHXHpHG=+HxHh1ɺH`ƨH`H}FMHMHEHHHHuH}< D;e7HXAH`5Hp)HxHEHt?9HHLPH]UHHd$H]H}HuHuHHuH=;tmH}(E|]H}HEHpH`HH;E~4H}HEHpHËuHH H}HEH(H]H]UHHd$H]H}HuHEHUHu3HHcHUuZH}H5<+^!@HEH0H}HΡHuH};H}HEHpHHEH0HXƯ}?6H}薢HEHt7H]H]UHHd$H}uwtt$t2t@tN]H}HEH8JH}HEH@7H}HEHH$H}HEHPH}HEHXH]UHHd$H}HuUЅtt't8tItZnH}H}aHpcH}HaHpޡMH}HaHpȡ7H}HaHp財!H}HaHp蜡 H}1菡H]UHHd$H}H]UHHd$H]LeH}uHUHЋuH}HE ttHtsH}HEHpHH@H}bKH}HEHpHH董@H}2KH}HEHpHHa@H}KZH}HEHpHH4LcH}HEHpH`HHHcHI9@H}JH]LeH]UHHd$H}HHUHHH]UHH$H}HuHUHMH}uHEHUHRhHEH}HUHu~/H HcHxuVHEHMHUH}1HEHxH58+9HEH}tH}tH}HEH=2HxHtlH`H .H HcHu#H}tHuH}HEHP`1p31HHt44HEH]UHHd$H}HHx tHEH@ Hǀ HEH@ H]UHHd$H}HGHH9} HEH@HE@@H]UHHd$H}oH]UHHd$H}~oH]UHHd$H}@uZoH]UHHd$H}>oH]UHHd$H}oH]UHHd$H}nH]UHHd$H}nH]UHHd$H}unH]UHHd$H}nH]UHHd$H}~nH]UHHd$H}HuZnH]UHHd$H}HuHUM3nH]UHHd$H}Hu nH]UHHd$H}mH]UHHd$H}mH]UHHd$H}mH]UHHd$H}mH]UHHd$H}nmH]UHH$`H}HuUMLELMH}EHUHp`+H HcHhump.H}ǚHhHt/H]UHHd$H}lH]UHHd$H}HuHUHMDEDMlH]UHHd$H}HuHUHMLEnlH]UHHd$H}@uJlH]UHHd$H}HuHU&lH]UHHd$H}lH]UHHd$H}kH]UHHd$H}ukH]UHHd$H}kH]UHHd$H}HukH]UHHd$H}nkH]UHHd$H}HuJkH]UHHd$H}HuU'kH]UHHd$H}kH]UHHd$H}jH]UHHd$H}uHUjH]UHHd$H}jH]UHHd$H}HujH]UHHHnuxHH5>eH=">HH5aEeH=F>5H5v@eH=?>"H5BeH=X@H5CeH=O@H5FeH=.}SH5 HeH==ֱH5WIeH=P@ñH5JeH=e@谱H5KeH=>蝱H5NMeH=L9花H5NeH=n9wH5OeH=OdH]HaHH]UHH]UHHd$H]H}HHUHEEEHcEHtxHtHRHH9})HsxHcUH;]H}0Ã|.EEEH}‹uH};]H}ÃzE@EH} AAE|QEEEUH}HHEH HUuH}HEH D;e;] H}@xHHt7" HHxHt"HLH]UHHd$H}HuHEHUHuH=HcHUH״aHpH}ݧHEHHشaHpoݧHEHHaHpTݧHEHH´aHp9ݧHEHHaHpݧHEHHaHpݧHEHHaHpܧHEHHaHpܧHEHHaHpܧHEHHHaHpHEH(HHaHp΋HEH@HaHpHEH@HXHEHHHraHpHEHHHXHEH`HHaHpHEH`HXHEHhHaHpHEHhHXHEH0HTaHpHEH0HXHEHPHJaHpHEHPHXHEH8HaHpHEH8HXHEHXHaHpHEHXHXHEHpƀ HuH;bH89KHEHHuyHuHEH1\H}賉HEHtH]UHH$PHXH}HuUMHEHDž`HUHpHHcHhHvH8nBHHEHpHEHpHHHEHpOHÈ}HEHp[HH&HHEHp;E.HEHpu{Eԃ}HEHpHËuH&HX0H`HH`HaHPHaHpH}跗HEHp觹HËuH%HX0HuHHxHEHpMЋUH`HEHpH H`HaHPH aHpH}.HEHpUHM؋uHEHpH HEHpMЋUH`HEHpH H`HvaHPHaHpH}讖HEHpUHM؋uHEHpH {HEHpŰMH`HEHpH H`HaHPHNaHpH}1HEHpuHM؋UHEHpH #H`wH}nHhHtHXH]UHHd$H}HuHUHEH8bH:HGH~9hcxH]UHHd$H}HuH}H]UHHd$H}HuHEHpH]UHHd$H}HuHEHHEHHtFHEHpǀhHEHHHEHpHEHpH` H]UHHd$H}HuHEH(HEH(HtFHEHpǀhHEH(HHEHpHEHpHp H]UHHd$H}HuH9axH9HEHH@EHEHHEHg HEH+HEHhHEHhgEkg4HEHHEHHHEHPHUHH]UHHd$H}HuHEH8HEHtH}NHuH}! HuH} H]UHHd$H]H}HuHEH8HEHtZHEHUHBg4H}XHE@gX|=EfEEH},HH};] HuH}L H]H]UHHd$H}HuHH}H@E| uH}}EH]UHHd$H}HuHEHUHP HUH5H} H]UHHd$H}HpHEHxHH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHu؉H HcHUuQHEH}1|ÉHEHUHPHE@HEH}tH}tH}HEHۉHEHtlHhH(X؉H耶HcH u#H}tHuH}HEHP`Tۉ܉JۉH Ht)މމHEH]UHHd$H}H@HEH@HU@;BEEH]UHHd$H}HuHUHEHHH]UHHd$H}HuH5p^eH}H]UHHd$H}uH}HH]UHHd$H}HHH]UHHd$H}HuHUHH0HEH8HEP H]UHHd$H}uHUHUuH}|H]UHHd$H}HxtH}HHEHEHEH]UHHd$H}HuHuH}H]UHHd$H}HxtH}HHEHEHEH]UHHd$H}HuHuH}H]UHH$ H}HuHuHEHUHRhHEH}HUHuwՉH蟳HcHUu?HEH}1\HEH}tH}tH}HEHP؉HEHtlHpH0ԉH'HcH(u#H}tHuH}HEHP`׉ى׉H(HtډډHEH]UHHd$H}0H]UHHd$H}HuHuH}RH]UHHd$H}HuHUHuH}HEH]UHHd$H}HH=UeHH]UHHd$H}HuE fDEHE@;E~HEHPHcEHH;EuHE@;EuEEH]UHHd$H}uHUEH}HUHH]UHHd$H}HuHEH8HEHtH}HuH}! HuH}RH]UHHd$H]H}HuHEH8HEHtZHEHUHBg4H}HE@gX|=EfEEH},HH};] HuH}H]H]UHHd$H}HuHH}H@E| uH}EH]UHHd$H}HuHEHUHP HUH5H}H]UHHd$H}HuHUHHuH}HUH HHEHcP HUHEHcp HuH}HEHH]UHHd$H}HuHUHEH0H}KAH]UHHd$H}HuHUHEHHH]UHHd$H}HuH@H5hWeHEHcx H}H]UHHd$H}H1HH}1kH]UHHd$H}HuUH}H0H}s@H]UHHd$H}HuHuH}HH]UHHd$H}uH}HH]UHHd$H}HuHUHH0HEH8)MH} E(HEH0HEH8MH~ EEEH]UHHd$H}HuHUHH0HEH8HEPPH]UHHd$H}HuHUHH0HEH8HEPXH]UHHd$H}uHUHUuH}H]UHHd$H}HuHUHUHuH}zH]UHHd$H}uHUHUuH} H]UHHd$H}HuHUHEHBPH}tHUH5H}HUH5[H}H]UHHd$H}HuHUHEHBXH}tHUH5H} 11H}H]UHH$ H}HuHuHEHUHRhHEH}HUHu͉HϫHcHUuDHEH}1'HEH}tH}tH}HEH{ЉHEHtlHpH0*͉HRHcH(u#H}tHuH}HEHP`&ЉщЉH(Ht҉҉HEH]UHHd$H}HuHUHUHuH}JH]UHHd$H}HuHuH}H]UHHd$H}HuHUHuH}H]UHHd$H}HuHUHEHE1ҾH}HuH}vEE}tuH}[HUHH HEHUHEH]UHHd$H}HuHUHUHuH}*H]UHHd$H}HuHuH}H]UHHd$H}HuHuH}H]UHHd$H}uHUHUuH}H]UHHd$H}uHUHMHMHUuH}H]UHHd$H}HuHuH}H]UHHd$}uEEEEHEH]UHHd$H}HuEU)ЉEu EU)ЉEEH]UHHd$H}HuHFHEHEH@HEH;EvHUH;Us1H]UHHd$H}HuHFHEH9EvHUH;Us1H]UHHd$H}uH5NeH}U=+H]UHH$PHPH}HuHDž`HDžhHUHu ɉH5HcHUH'*HpuHhYHhHxH*HEH]HcHXHXHHXC1HXH`NB01H`VH`HEHpH}1ɺ EEH]UHH$ H}HuHuHEHUHRhHEH}&HUHuwĉH蟢HcHUHEH}1 H=Y'B(HUHBHEH@ƀH=1'B'HUHB HE@(HEH}tH}tH}HEHljHEHtlHpH0ÉHߡHcH(u#H}tHuH}HEHP`Ɖ>ȉƉH(HtɉcɉHEH]UHHd$H}HuH~HEHUHHHEHx IHEHxHEHxHEH@HHEHx HEH@ HH]UHH$pHpH}HuHDžxHUHuX‰H耠HcHU!HuH}HEHxHEH@HHEHxHEH@HÃEfDEH=2HEHEHxuHEH@HHH}HEHHEHxUHxHEH@HHxHEHxHUHEH@HX;]gHEHp HEHx HEH@ HHUHE@(B(KĉHx0HEHtʼnHpH]UHHd$H}HuHUH}0HUHuH螈HcHUuKH=2輀HEHuH}HEHHEHxHUHuHEH@HXÉH}/HEHtʼnH]UHHd$H}HHxHEH@Hu@HEHxHEH@Hu#HEHx HEH@ HuEEEH]UHH$H8L@H}HuHUHb/HDžpHDžhHDž`HDžXHDžPHDžxHDžH0H-HUHcHPHuH}1Hz*-0HH徉H HcHHxO.Hu1Hb*Hx/HxH}1HHHEHxy.Hx-Hu1H8*Hx/HxH}HUB(HEHxHEH@HHuHp1H*9/Hx-Hp1H *Hx/HxH}1OTÃDžL@LHx--HpHXH*H`HcLHHHHHHH1HHHP701HPKHPHhHz*HpHX1ɺHx0HxH`H}1H`t HEHxH`HEH@HP;LHEHx HEH@ HHuHp1H*-Hx+Hp1H|*Hx-HxH}1TÃDžLLHx+HpHXH8*H`HcLHHHPHHHt1HPHP501HPIHPHhH*HpHX1ɺHx)/HxH`H}1pH`t HEHx H`HEH@ HP;LHEHxHEH@HHuHp1H*,Hxl*Hp1H*Hx+HxH}1.TÃDžLLHpHXHD*H`HcLHHHPHHH1HPHP301HP{HHPHhH*HpHXHh1ɺ-Hxi)Hh1H*Hx*HxH`H}1H=2yHxHx)Hh1H*Hx*HxH}1PAA DžHDHHx(HhHXHh*H`HcHHHHPHHH1HPHP201HPGHPHhH*HpHX1ɺHx9,HxHXH}1HXHxHxHPD;HHEHxHxH`HEH@HX;Lr-HH*H=֦2HHpHXH蹷HᕈHcHHHpH@HڻHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$M1M11HH5*H"HHHtּ菻żHPB&Hx6&H*&H}!&Hp&Hh &H`%HX%HHtH8L@H]UHH$HHLPLXH}HuHUH%HDžpHDžhHDž`HDžpHDžHHH謵HԓHcH HHzH袓HcHHuH}1H*z&H$Hu1H*HU&HHEHPH}1H$Hu1H*H&HHEP(H}HuHp1H*%HpH}4HEHxHEH@HHcH $Hp1H*H%HH}1H HEHxHEH@HÃDžddH#HpHxH0*HHcdHHhHhHHhh߈1HhHps-01HpAHpHH޿*HHx1ɺH'LHEHxdH`HEH@HH`H}1L;dHuHp1H{*&$HpH}vHEHx HEH@ HHcH`N"Hp1Hξ*H`#H`H}1HMHEHx HEH@ HÃDždDdH`!HpHxHp*HHcdHHhHpHHh݈1HpHp+01Hp3@HpHH*HHx1ɺH`]%L`HEHx dHHEH@ HHH}1L;dHuHp1H*f"HpH}HEHxHEH@HHcH` Hp1H*H`"H`H}1HHEHxHEH@HÃDždDdHEHxdHEH@HHxHpHxH&*HHcdHHhHpHHhۈ1HpHp)01HpY>HpHHԼ*HHxHh1ɺ#HEHxdH`HEH@HL`HHh1H*H HH}1LHxHxHLcH`Hh1HS*H`G H`H}1LHxHxHAAEDž``H`MHhHxH*HHc`HHhHpHHh ڈ1HpHp+(01HpHE HEH@HEH}HtH}HEHuH}d'HEH@HHHUHu^HEHEHx@HuH}t'HEH@H}HE؋p8H}EH} HoH}ۈH}ۈHpHtpH]UHHd$H}HuHH}HHEHpH@HEHp H0HEH@HHHu!ZH]UHHd$H}HuHEH@HH}HEHE~uH}HEHH]UHHd$H}HuHtjHEHx(t_HEH@(HEH8H5e[tHEH@HEH@HuH=e(Ot H}VH}1H]UHHd$H}HuHtHEHH H]UHHd$H}HuHEHxHuH}5HE!HuH}H}2 HEH}uH]UHHd$H}HHpH}SH]UHHd$H}H}UH]UHHd$H}uUHEHxuMHEuH}-H}2HEHxUuHEH@HH]UHH$H}HuHUHMH}؈H}uHEHUHRhHEH}BHUHuhHGHcHxHEH`H hHFHcHuHEHx Hu؈HEHUHPkH} ؈HHt)mHEH}tH}tH}HEHmkHxHtlH`H hHAFHcHu#H}tHuH}HEHP`kl kHHtmmHEH]UHH$ H}HuHUH}uHEHUHRhHEH}!HUHubgHEHcHU~HEHUH}1H=81C'HUHHEǀHEƀHEƀHEH}tH}tH}HEHiHEHtlHhH(fHDHcH u#H}tHuH}HEHP`i.kiH HtxlSlHEH]UHHd$H}HuH~HEHUHHH}1HEH QHEHPH}1pH}tH}tH}HEHPpH]UHHd$H}HuHH5t*ՈH]UHHd$H}HuHEHoPH]UHHd$H}HuHEHUHu%eHMCHcHUHEHH;EHEHt/HEHHu跪HUH5LHEHHEHUHHEHtKH}HuĦHuH}HEHHuᩚHUH5HEH04gH}ӈHEHthH]UHHd$H}@uHE:EtNHEHu*Hs*H=R2XHH5HeHEUH}2 H]UHHd$H}HuEEEfDHEH0t HEH8HUHuHE0E}u'HEHP(HEHH}HEHh E}tHEHuHEHUHH} HH}Eu}t@@0H}H}at0HEHu HEt@@0H}EH}HEH}EH]UHHd$H}HuUHuH}뻦}ubHEHH;EuQH}@0HEƀHUH5HEH2HEHǀHEHLH]UHHd$H]LeH}HHtEHEH@gX|/EEHEHuIL>;]H]LeH]UHHd$H]LeH}HHHEHZHEHtMHEH@gXEEHEHuILf;]XHEt(HEtHEHҲHEƀHEHH\HH}HEH'HEHǨH]LeH]UHHd$H}HHHEHǀHEHHEHtfHEHH\H;EtIHEHHEHHHEHHEHHEHHPH]UHHd$H}HEHUHuI_Hq=HcHUIHEH7HEHEHHEHHHEHHu1HEHHHEHHe[HEH}@0HEH}tHEHHu݈HuH}t)HEHEHEH1HEHHH}t HEHE:HEHtHEHHEHEHHZHEHEHHuaH}k͈HEHtbH]UHHd$H]H}HuHEHEHt\HEH@gX|FEEHEHuH@H;EuHEHutHE;]HEH]H]UHHd$H}@uHEHtHEH@u NH]UHHd$H}@uHEHtHEH@uNH]UHHd$H}HuHEHuH=3eHUHHuH}HEHtHEHxHEH@H1HMHUH=d HEHEHHuHEH]UHHd$H]H}HuEHEHtiHEH@gX|SE@EHEHuH@H;Eu"HEHuDEH};]EH]H]UHHd$H}@uHEHtHEH@umH]UHHd$H}@uHEHtHEH@uLH]UHHd$H}@uHEHtHEH@uMH]UHHd$H}@uHEHtHEH@uMH]UHHd$H}HHuESHEHHE}t6E HEHHHEHHUHEHEH]UHHd$H}HuUHuUH}HEf8#HEHHEf8%uREuJHmEtHEHt@@0HEHMHEfHEf8'uOEuGHmEtHEHt@@0HEHMHEfZHEf8%u#EuHEH˲HEf,HEf8'u!EuHEHʲHEfH]UHHd$H}H@t!HEH@HtEEEH]UHH$ H}HuHUH}uHEHUHRhHEH}NHUHuWH5HcHUHEHUH}1H=AsHUHH=1HUHH=p1{HUHHEHH==;HEH}tH}tH}HEH;ZHEHtlHhH(VH5HcH u#H}tHuH}HEHP`Yq[YH Ht\\HEH]UHHd$H}HuH~HEHUHHHEHvBHEHfBHEHVBHEHFBH}1H}tH}tH}HEHPpH]UHHd$H}HuHňHUHuUH3HcHU~HEHHuHEHHE~SHEHuHEHHHEHt#HEHHuHEHHKXH}ĈHEHtYH]UHHd$H}HuUH}ĈHUHuTH2HcHUu?}tHEHHu5#HEHHuHEHHWH}ÈHEHtYH]UHHd$H}@uHEHtRHEHt>HEHHHEHHHƃUH}H]UHHd$H}@uHEHt"HEH1tUH}1H]UHHd$H}HuHH5b*PÈH]UHHd$H}HuHEHUHuSH=1HcHUHEHH;EHEHUHHEHH}Hu+HuH}.HEHHHEHHEHHHEHH==6t,HEHu0ҾH=3CQPHUHaUH}HEHtVH]UHHd$H}HuUHuH}苫}u7HEHH;Eu&H}@08HEƀHEHǀH]UHHd$H}HuHUH}RH}IHUHugQH/HcHUu&HE耸tHuH}ʱEEYTH}H}HEHtUEH]UHH$pHxH}HEHEHUHuPH.HcHU~HEHHEHHHEHHEHHÃ3EfDEHEHUHuHEHHHEHuHEHHHHuH}HEHh HEHHEHHEDDHEHUHuHEHHHUHuH}} m}}HEHuHEHHHHEHEgpHU ";]]RH}贾H}諾HEHtSHxH]UHH$HLH}HEHDžHUHuNH,HcHUmHEH[HEHEHH==2tHEHHEHEHHkHhH(3NH[,HcH HEHHEHHx HEHHEHHÃEEHEHUHuHEHHHEHuHEHHHHEHHHuHEHHHXEHEHtDLeHEHuHEHHI;$HEHuH}HEHtJHEHuHEHHHHEHHE‹uH}z4HEHHHuHFIH‹uH}D;]vOHEHHoH HtPHEHEHHEHHH}HFHtH}1HEHHEHHÃ|YEEHEHuHEHHH~uH}0NuH}@;]dNH踺H}诺HEHtOHLH]UHHd$H]H}HEHUHuJH(HcHUHEHHEH,~ HEƀHEHHEHHHEHHEHÃEEHEHutWHEHHUHuHEHHHHuHEHHEHHP;]LH}+HEHtMNH]H]UHH$pHxH}HEHUHuOIHw'HcHU,HEHEHHEHHHEH߬ÃE@EHEHHUHuHEHHHHuHEHHEHH~HEHu;]HEHH==,t7HEHHEHHtHEHPHuHEH7KH}获HEHtLHxH]UHHd$H}@uHEHHEHMެHEHHEHH( uHEH1Pu E%HEHHEHH( EHEHݬ;EHEHݬEUuH}H]UHHd$H}@uHEHtSHEHaݬt?HEHHEHH( E}EUuH}~H]UHHd$H]H}@uHEHHEHHHEHHHHEHDEuEHEHHEHH( HcHEHAHcHcMHHHH؉E|2HEHHHEHHH;E3HEHHHEHHHEUuH}6H]H]UHHd$H]H}@uHEHHEHHHEHHHHEHEuEHEHHEHH( HcHEH@HcHcMHHHH)É]|2HEHHHEHHH;EEUuH}H]H]UHH$`H`H}uUHEHHUHuCH!HcHx}zHEHbHEHHEHH( EE܋EEm}|"HEHut DEHEH٬;E~}|HEHuuHEHuHEHH@ HcEHHpHcEHHhH;p} HhHpHcUHHpHcUHHhH;p~ HhHp9|,EEDEHEHu;]HEHu7HEHuHEHH@ HEHuHEHuuAHEHԬ;E}HEHEgpy٬HEHud٬DHEHHxHt.FH`H]UHHd$H}HHuESHEHHE}t6E HEHHHEHHUHEHEH]UHHd$H}HuHH@H]UHHd$H}HuUHEffEHuUH}1#f}u H}AH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHu@H:HcHUuIHEHUH}1XHEƀHEH}tH}tH}HEHBHEHtlHhH(?HHcH u#H}tHuH}HEHP`BDBH HtaEHHcHpu]HEHUHEHBHEHx Hu蜮HEHx(Hu苮HEH}tH}tH}HEHAHpHtlHXH;>HcHcHu#H}tHuH}HEHP`7AB-AHHt DCHEH]UHHd$H}HuHUHEHP(HEHp H}MH]UHHd$H}HuHEHx`HuHtHEHx`HuXH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHu=H*HcHUu>HEHUH}1X~HEH}tH}tH}HEH?HEHtlHhH(-H8ƲHEHP1HHH HEHUHEHEHEHEHEHxHUHHUHHExt,HEHxHHEHpAH'HEHx`HHEHpE01HVHEHx9HHEHpHfH]H]UHHd$H}HHxtHEHx@0HEH@HH]UHHd$H}~tHEHx@0HEH@HH]UHHd$H}@uHEUPHEH@HEHuHHHEHpHEHxHUHUHBHEHPHuH}HE@Pu HEHxu HEHE HEH@HEHuH=82tHEXu HUH5HMH}HEHHUHEHBHHEHt#!H]UHHd$H}HuHEH u(HEHHxHEH[?HExu5HEH HHEHHUit H}LKHEH HHEH(HEHHxHu`HE@H}H]UHHd$H}H=`HHEHUHu9HaHcHUHEH HEH HHE@PH}9HE[HEH@(HEHu H=,*蓨H}HUH H;u HuH}iH}±HEH}uHEHHpH}HEHHpH}5uCHEHHxHuH}0KH}BHEHtHtHEH]UHH$H}HuUMHDžHDžHDžHhY HM H@HuHHcHoHEH tHEH HHh HDžhLEHMЋUuH} H}11ㇲEsHEH@`HEHEHEH}HEH H2HEHH=(dt HEHEHEHEHp(HpH=)8HpHEH}07HEjHEHp(H=I8:HEH@(HEƅ|HH H1HcHHEHHEHuH}HEH`H}t]HEHp H@$HH$HEHp Hh!$LhHuH}L)*HEHƅ|H}HH;H=+2fH!H`HHHH6HcHHuH(HHHDž HuH(HHHDž Dž HDžH`H@HHDž HH`HpH^HH`HxE1THHt3|H}AHEH}HEHp(H=\19HEH@(HxH}H(Er1tt%HEHx(cEHEHx(cEH}v4HE~DHEHp(H=9\1PHEH@(H@H;E:ƅ|HHHH/HcH`ucHEHx(cE;E}"HEHx(EgpHEH@(HHEHx(uHEH@(Hƅ|H}H`HH=b2HtnH@H(HIHqHcH uH@Hx1ɺ跊BH Ht!|tH}購HEH}|H}HEH0HEH HpH=U1 HpH`H}2HEb@HEHp(H=QU1t9HEH@(HXHEH HhH`HXHE H}滱HEH}uH}@? MUHuH}< HkH_HSHhHHHtZH]UHHd$H}HuUMDELMLHELEHMȋUuH}UHuH}HEH tHEH HHEHEHEHEEs HEH@`HEH}t/HEHx(t$HEHp(HuH=S15tHEHEH}H}u0HE@HEH@(HEHEHtGHuH=cS1t3HEHHMHUHuHE1HuH=K1tHE@P HuH=8rHEH;EHuH=8LHEH0HuH}0FHuH}HEHHEHt(HEHH;EtHEHXtXHuH=HW1t,HEH;Et:HuH=U1t&HEH@H;EuH}jHEH}sHEH}HE؊ELMDEMUHuH}{HEH@t HU؊EH]UHHd$H}H11Ht~H}{H]UHHd$H}H11HD~H}H]UHHd$H}؉uUHMLEH}-HEHt:HEHp(H=8t"UuH} yHUHHEILEHMUuH}zH}t+HEHp(H=U1'tHE8u HEH]UHHd$H}HH tHEH SHEHH tHEHP HuHEH H]UHHd$H}HuEH}HEH= 8Hjt1HEXtHEd EvHE` EgHuH=G1%tHE\ EDHuH='S1tHEh E!HuH=dT1t HEl EHEH8 tHEH@ HUHuHE8 EH]UHHd$H}HuHEH H;EtHEHUH H]UHHd$H}HH@H]UHH$HH}HuHUH}uHEHUHRhHEH}fHUHuk HHcHUHEHUH}1AH}HEHxH=s`HUHH=_BzHUH H}HE苰HEH H}HE苰Ho#kHúH5*HeHU艂X jHúH5*HeHU艂\ jHúH5*HeHU艂` jHúH5*HjeHU艂d jHúH5*HDeHU艂h ejHúH5*HeHU艂l ?jHHXHH}HEH}tH}tH}HEH HEHtlHhH(k HHcH u#H}tHuH}HEHP`g ] H Ht<HEHH]UHHd$H}HuH~HEHUHHHEH HEHEH@H@(HxH}ҾuH}HEH HEHH}1JGH}tH}tH}HEHPpH]UHHd$H}HuHUHHp(HEH ^H]UHHd$H}HuHUHHp(HEH xuHH*HEHE HEH@(HEHEH*HEHE H}hH]UHH$`HhH}HuHUHMH%xHUHx@HhHcHpHE( ugH}uHEHbHEH}HEfH}HEH}tHEH@(H;EuH}t HEHEHEHHMHUHuVHEH}uHEX H}ȓHuH}9H}讓HE؋p8H}H}eHHuH@H}wR H}vHpHt HEHhH]UHHd$H}HuHUHE@PHMHUH=6dqHEHUHPHUHuHHcHUu HUH5HMH}HEH H}HEHt H]UHHd$H}HH u HE;HEH HHuH=?1ZtHE@PtHEHEH]UHH$pH}@uHDžxHUHuHHcHUHE1HǀHHE1HǀHH}MH}HE}tHEH18tHUHuH}}thHEH HuiHUH HEH u;H=LpHUH HEH HEH HuuHuH}xH}'H}LHEHUH HHHEHUH HHHxksHEHtH]UHHd$H}HuHHp(HEH HuH@H}螱H}HEHuH}H}肦HEH}uH]UHHd$H}HuHE, t%tU~H}SHEHHuH}HEHH}HEHHuH}HEHeH}輥HEHtSHuH}HEH7H}辥HEHt%HuH}HEH H}@رH]UHHd$H}HuHUHEHEH@(H;EuHuH}HEHEFH}媱HE)HUHuH}HEH}ڤHEH}tH}tHEH]UHHd$H}HuUHUE, HEHHHUH}HEHEEH]UHHd$H}HuUHuH}{uH*HEHE H}1H]UHHd$H}HuHEH0 H;EuHEHǀ0 HEHUH0 H}@H]UHHd$H}HuHEHUHuUH}އHcHUH}HEHp(HuH=91tHuH}HuH}͈.HuH=F1[tHuH}HuH}蝈H}ĨHH}8H}ϢHH}#H}%oHEHtGH]UHHd$H}GHEHHH}H}GH]UHHd$H]H}HuHt]HEH@(HEH}1HHuH肹@H}CH}꧱HH}H}HH}H]H]UHHd$H}FH}1蓈HEHHH}GH}FH]UHHd$H}HuHEHEHuHuH}H]UHHd$H}HG@H]UHHd$H}uHEHxu`bH]UHH$ H}HuHuHEHUHRhHEH}HUHuHۇHcHUuHHEH=91;HUHBHEH}tH}tH}HEHwHEHtlHpH0&HNۇHcH(u#H}tHuH}HEHP`"H(HtHEH]UHHd$H}HuH~HEHUHHH}HEHHEHxH}1]H}tH}tH}HEHPpH]UHHd$H]LeH}HG@gX|0EDEHEHxu\`IL!;]HEHxbHE@H]LeH]UHHd$H]LeH}HuHEHUHHH}HEHÃ|EEfEEH}HEHILHHEHxa;]HUHE@BHUHE@BHUHE@BH]LeH]UHHd$H}H=dHHEHuH}HEHHEH]UHHd$H]H}HuH}HEH|FEEfEEH}HEHHHuHuE }EEH]H]UHHd$H]LeH}HuHEHxHu`H]H}HEH~jHExtfH}HEHƃH}HEHIH}HEHƃH}HEHHL}CCH]HEx|H}HEH~`H}HEHƃH}HEHIH}HEHƃH}HEHHL4tCCHE@H]LeH]UHHd$H}HuHH}HUHHt H}HuH}HEHH]UHHd$H]H}HuH]HEHxHu&cCH]H]UHHd$H}HuH}HEH|gEEfDEEH}HEHHEHuH};t!HEHxu^HE@H}}H]UHHd$H]H}HuHUH}tH}u EHEH}HEHÃ|lEEEH}HEHHEHUHuH}t$H}tHEHpH}tHEHE;]H}tHEЀx tEEEH]H]UHHd$H]H}HuHUH}tH}觯~EE}tRH}芯Ã|@EfEEH}脯H0HuHUH}uE;]ɊEH]H]UHH$HH}HuHUHEHEHEHDž HDžHHUHX~HӇHcHP4H}HEHHHdHu1H" *HH^fHHH}1̵EgXEfDEHEH(H*H0HcEHHHHi 1HH tn01H H H8H*H@H(H}1ɺ!hHHcHu1H*HHleHHHuH}1足H}0@0HHcHu1Hg*HHeHHH}虵EHHZcHu1HM*HHdHHHuH}1+H}0@0}tPH}SHEDEHMHUH=d HEHxHuNcHuH}HEH;]0[H bHHbH}bH}bH}bHPHtHH]UHH$0H8L@H}HuHUHDžPHDžxHUHuHЇHcHUXH}HEHHxaHu1H'*HxccHxH}1ɉ?H}HEHÃEfEEH}HEHIHx]aHEHXH*H`HcEHHHHHHH:1HHHPEk01HPHPHhHx*HpHX1ɺHxdHxHuL;]>HP`Hx`HEHtH8L@H]UHH$PHXH}HuHUHEHH]HHEHUH`H·HcHU4HUHuH}xH}HEHH}HEHEEuH}HEHHEH}HEH;E3HEHxu1pTEHEHxHUЋuhYEpuH}HEHHEHuH} E̅u EE:}}E.HEHxu1SEHEHxHUЋuXEH}HEH;E`H}WۈHEHtHXH]UHH$HH}HuHUHMHDžHDžHUHpḢHcHhHuH}HEHPHoḢHcHDH}LfH]Hu1H*HU_HH}1ɉ1H}fÃE@EԃEԉH}LdHEH\]HEHH*HHcEHHHH91HHDg01H{HHHw*HH1ɺH`HHuH} ;]!HEHHEHH( EHEH1ڂHEHHHEHHHHEH@gX|oEEHuSHEHu :HHuHHuHEHHHEHHHP;]HEHuHEHH@ HEHHEHHEH1蹕H};؈H}DHEHtوH]H]UHHd$H}HGHHEp9Hx HEH@H$THEEH]UHH$`H}HuHUHDžhHUHu[ԈH胲HcHUHEH@HHEH@HH tiHEH@ HpH )HxHEH8HhĈHh1HhMHhHEHpH}1ɺrGHEHp H}CֈHhCHEHt@؈H]UHH$@H@H}HuHEHEHDžHHDžPHUHxӈHBHcHp{EH= 1HEH@0iH} Ã|jEEEH}HH=8 t7uH}Hp H!uH}HHp Hb;]}@H`HHH#`HPHPc%HPHXH&)H`HEHhHXH}1ɺEH}HEH&H}HEH@H`HHH҈`HPHP$HPHXH)H`H}1HHHEHHHHhHXH}1ɺEH}HEHÃ|nEDEHEHXH2)H`UH}HHHEHHHHhHXH}1ɺD;]HHEHHuBHEHHu.H}赼ӈHH@HP?H}?H}?HpHtՈH@H]UHHd$H]H}HEHUHuЈH-HcHUHEHx1HuHEH@HHuHEH@H?HEHxHEH@HÃ|jEDEHEHxЋUHuHEH@HHuHEH@HNHtHEH@H11?;]U҈H}>HEHtӈH]H]UHHd$H}HuH>HUHuΈHHcHUu2HEHxHuHEH@H}HEHxHu萓шH}>HEHt4ӈH]UHH$pH}HuH>HUHu2ΈHZHcHUubHE@HExuHEHxHu==HEH@HxH )HEHEHEHxHEHx1ɺ}AЈH}?=HEHta҈H]UHHd$H}HHHEHH( @HEHHHEHHHPH]UHHd$H}~H}H]UHHwHwH wH]UHHd$H}H1H>HEHu*H)H=1HH5HΈH}UHH=-- HEHu"H}HEHHEHuH}0TH}@dzH]UHHd$H}H]UHH$pH}HuHEHUHuˈHHcHUH}HEHEuH}H5');_HcEHxHxHHx1HxH}$E01H}YHuH}1H)a<\ΈH}:HEHtψH]UHHd$H}uHEHUHHHEHu*H)H=1賿HH5ḦH}HSHH=+-9HEHu"H}HEH0HEHuH}^RH}͊H]UHHd$H}H]UHHd$H}HuUH}ttHEH=::H ::HHEHHEHSHHHuH}(HEHcUHP(HEHHHu!H]UHHd$H}HuHE@0HH]UHH$H}HuHUHMLELMH}uHEHUHRhHEH}EHUHpɈH;HcHhHEHUH}1HUHEHHUHEHHUHEHHEHt,HEHHEHHHUH*HEH[HH=cHUHH}HEH H}HEH( H} HwH8HUH5HcwH8HUH5 HIwH8HUH5f H/wH8HUH5| HwH8}HUH5 HwH8H}@0 HEH}tH}tH}HEHʈHhHtlHPH7LjH_HcHu#H}tHuH}HEHP`3ʈˈ)ʈHHẗ͈HEH]UHHd$H}HuH~HEHUHHH} OH}1BH}tH}tH}HEHPpH]UHHd$H}HuHUHEHUHH HHu諪t9HEHHHuHEHHHHU HEHE8EEH]UHHd$H}HuHUHH]UHHd$H]H}Hu%HH{HHEH<$HúH5t)H HEH$HúH5f)H~ HEH$HúH5`)HP HEH~Y$HúH5Z)H" HEHPHEHH~]HpEHEHH~]Hp*HEHH~]HpHEHH~]HpH]H]UHHd$H}HuHwH8qHEHtPHEHtBHEH@Pu.HEH~e~HEHH(wH8HuHwH8 H]UHH$HH}HuHEHDžHDžHUHuUÈH}HcHUHuH=3:ΧP(HEHHpH}HEH8 HEHhH(ˆHHcH HHEH8H r HHEH8H TH H HYH H}1GH]UHHd$H}H]UHHd$H}HuUH]UHHd$H}HH=9H聛tH}dʨE H}PEEH]UHHd$}ouxTH]UHHd$H]H}uH}HEH@H HɨuHHPH]H]UHHd$H]H}HuHUHEHx@HuHUHEH@@HpHEHxHHHuHUHHpH} H]H]UHHd$H]H}HHx@@HEH@@HHEHxHgH@HHH]H]UHHd$H]H}HHx@@0HEH@@HHEHxHH@0HHH]H]UHH$ H}HuHUH}uHEHUHRhHEH}(HUHuHHcHUHEH}1x[HUHEHB@H=89H19xHUHBHHEHxHHEH@HHHEH}tH}tH}HEH職HEHtlHhH(0HXHcH u#H}tHuH}HEHP`,跸"H HtܹHEH]UHHd$H}HuH~HEHUHHHEHxH詞H}1H}tH}tH}HEHPpH]UHHd$H]H}؉uUMDEH}HEH@HDEMUuHHpH]H]UHHd$H]H}؉uUMDEH}HEH@HDEMUuH))H]H]UHHd$H}HHUHH@H(H]UHHd$H}Hx-vHEHxHHE HEH@@HEHEH]UHHd$H]H}H@H HgŨE*EH)^EE}H)(m}m]EEH]H]UHHd$H}HHUHH@H nzH]UHHd$H]H}HuH}HEH@H HuHWĨH]H]UHHd$H]H}H@H H绨EubH}HEH@H HuH֨HuH}OUUIHcHkHH*H9*H^H-EEH]H]UHHd$H]H}H@H H7ۨEH]H]UHHd$H}HHUHH@H@pH]UHHd$H]H}؉uUMDEH}HEH@HDEMUuHpH]H]UHHd$H]H}HuHUH}HEH@HHUHuH3qH]H]UHHd$H]H}uUH}HEH@HËUuHoH]H]UHHd$H]H}uUH}HEH@HËUuHnH]H]UHHd$H]H}HuHUMDEH}HEH@HHuDMDEHU0HBH]H]UHHd$H]LeH}HuHUMDEEH}HEH@HHuDEMHUHxHMHcUHcEHH\H}HEH@IH}HEH@HHpS3LI$H]LeH]UHHd$H]H}uH}HEH@HHEx.tH[)HE@(E= E}tuuH[1HHPHEx.tHH@HH@HE@0t&H}HEH8HHHHHHH]H]UHH$PHXL`LhH}uUHMH=9H9HxHEHUHxLHtHcHpRHuH=K蒐tHuH}! HEP8HEpHPg?HPHPWHPHPHHPHHPHHPHHPHHPHPCHPHPHPHHPgBHPHHPwBHPH HPHPHPH(HPH0HPHPHPHPHPH8HPHPHPHPHPHPBHPBHP7HPHPHPHP>HPwBHPHPBHPBHPCHPEHXwHX闏HX駏HXH@UHHd$H)HHEH )HHEH}BH]UHH$0H0L8L@LHLPH}uHEHDž`HUHpҒHpHcHhUEEH}H5w)H]HtH[HH-H9v5Ĉ]EMfDH]LmMuÈH5gdMeL˃HA$ HD}L`IHXHuÈH57YHXL L腃LLDA$H`HtH[HHH9v{È]HcEHcUHHcUHHcUH9~,Hc]HcEH)HHH9v9È]HcUHcEHHcEHHH-H9vÈ]EHcEHXHH-H9vˆ]H]LmMuˆH5 dMeL脂HA$ IMMMuvˆH5YI]HSL;EQHcEHXHH-H9vQˆHcEL`LH-H9v1ˆDHE莓H`H}HhHtHEH0L8L@LHLPH]UHH$0H0L8L@LHLPH}HuHEHDžpHUHu褏HmHcHxELmH]HuH5dL#LLA$ IMLMuH5jYL#L迀LA$Nju*gHcHHH-H9v]H}H5Ŧ)H]HtH[HHH9v]Hc]HHHH9v^HhhEEHcEH`LmH]HuH5xdL#LLA$ HD}LpIHXHuH5IYHXL LLLDA$HpHtH@H`H HcEHHH-H9v{]싅h;E)HcUHcEHHH-H9vE]譐HpH}HxHtEH0L8L@LHLPH]UHHd$H]LeLmH}HuLmH]Hu葾H5 dL#Lo~LA$( HHuHQH]LeLmH]UHHd$H]LeLmLuH}IH]Hu"H5dL#L~LA$( HIIHuH50MuL}LAH]LeLmLuH]UHH$pHpH}HuUHMH}qHEHUHuۋHjHcHxupH]HpHH)H0H)HPH}8wt?HEHxt1H}HEHPHHEHLEMHuHEx耎H}7pH}.pHxHt폈HpH]UHHd$H}HuHH=dHmot`HEHhH}e&HUHEppHMHEHxHxHHHUHEHuH}H]UHH$ H}HuHUH}uHEHUHRhHEH}HUHu2HZhHcHUHEHUH}1HEǀH=ڃ9HӃ98HUHhHEHhHUHHA8HQ@HEHPhH=X\HUHPH)HxHxH}1@HUHE苀ptHEH}tH}tH}HEH`HEHtlH`H H7gHcHxu#H}tHuH}HEHP` 薍HxHt軎HEH]UHHd$H}HuH~HEHUHHHEHhsH}1+H}tH}tH}HEHPpH]UHH$HLH}HuH&mHUHpH)fHcHhH}HEHpHEx`H}H(HEHHHH(HHHHH(HCH0H}0HEH8 H}(HEH0HH8H H@H}/t*H8H H@H8H H@H8HEH@HEHCH(HCH0H}0HEH8 H}(HEH0HH8H H@H}nt*H8H H@H8H H@H8HEH@HEH}HEpHC\HH8HBH@H}@HEH80H}8HEH0HHHH0HPH}荺t*HHH0HPHHH0HPHHHXHPH`HuH}XNHuH}`9HEH@hHH}HEpHuH}HEH(HHuH}1oH}&<gXEDEH}IċEgpL+ugHEXdHEH@uDdH@`H@@H@ HREgPHuH};]mH}hHhHt膈HLH]UHHd$H]LeH}HGXFHEH@\1HEH@H8QSHÅEEHEHxIHEH@@Ug4LI$HEUnHE@?nt*HEH@H8HcEHH)HHtHEHxD<gD`E|WEDEHEH@$HcUmt'HEH@H8HcEHHt)HHD;e;]H]LeH]UHH$`H}HuUH} gHEHEHUHp끈H`HcHh{dE̋jdEHE苀w HXH}u HuH}UHuH}H}t)HE苀tUHuH}pH}'fH5HdH}ǧH5(02H}跧HhHtƅH]UHH$`HhH}HG胸pHEH@H8HtH@HEERHEH@H8HcEHHHUHDHEEkuEkt0t EE;E|E;EuHEH@HhHEHxHEH@H`HEH@Hhxp uCHEH@HxhHEH@H@hHHEHxHEH@Hh+HEH@HhppHEHxHEH@HhHEH@HxhEMQ?HEHEH@苀@Ug4H}EHEH@胸pH<\HHUH@HEHEHXEH;HH8EEH;HH0EHEHEHEHEH;tHEHEHEHEHEHEEMHEH@Hxhx>HEHEH@HhH\HEH@HhpXHEHxUHEH@HpHEHxHUHuHEH@HEYfHEH@H8HcEHHHUHDHEEViuEHit0t E}t#HEH@HxhEM=HEEHEH@HxhEMm=HEHEH@苐@Eg4H}EHuH}ʝpHEH@苀r&tttt EԉE2E؉E*H[)H=l1rHH5HHEH@HhH\HEH@HhpXHEHxUHEH@HpHEH@苀pt[t4kHEHxHUHuHEH@HoHEHUċ HcɾH!HH!H ϋHcH HH!H!H H}HEHxHUHuHEH@HHEHxHUHuHEH@HEȉEẺEHcH!HH!H EHcH HH!кH!H HMHEHxHUHuHEH@HHEHxHUHuHEH@HMHEHxHUHuHEH@H*H)H=B*\oHH5H|HEHE̋EԉE؃EE;EHhH]UHHd$H]H}uHEHx/HËuHH@E= uHEHxHEH@HEEH]H]UHH$HLH}HDž0HUHhzH:XHcH` HEH@胸pHEH@H8HtH@HHHXH5dHXHEHxJHEH@H8HtH@HHHXH5v(2HXHEHxкJEH6\HHHH@HPHEH@HXPHXHXH8@HHXHXH08H8HEH@HEHX֭tHEH@HEHEH@HEHEH@苀pt H5eH0UHHeHEH@H8H03IH0HHÅvAfDAH0IcHHHUHDHEE#cuEct0Ēu#}uU]EMH}HEHEHEHE؊ËED9rH5eH0jGHeHEH@H8H0HHH0GHÅAAH0IcHHHUHDHEE;buE-bt0uU]EMH}D9H5eH0FHeHEH@H8H0GH0WFHÅAfDAH0IcHHHUHDHEEsauEeat0Ēu#}uU]EMH}AHEHEHEHE؊ËED9r*H))H=$\jHH5HwHEHHHEHcPHE@܉HE@gPHEPHEHc@H8H5ldH8HEHx{FHEHc@H8H5-$2H8HEHxкLFHEHx HEH@H@HEH@HhHEHxHEH@H`HEH@Hhxp uCHEH@HxhHEH@H@hHHEHxHEH@Hh+HEH@HhppHEHxHEH@HhHEH@Ht2HEH@xpHEH@HHEPHEHpwHEH@xpHEHxCHHEfEHEHxCHHEHpHc}HEHHHcEDDA)HEH@HcM HEHpHEHxHEH@H;]dHEH@Hu|HEH@HhppHEHx0HEH@HHEHx1HEH@H@HEH@HhpXHEHx1HEH@HpHEH@ppHEHxHEH@H EHEHx}BHHEEHEHPHcE HEH@HcUDgD`A9|OMȃEEHEH@HcUHTHEHHHcEH4HEHxMHEH@HPPD;e;]{uH5OeH0AH`HtvHLH]UHHd$H]H}EMU]HEH@胸pHEHx|0tHEHEHEHEHEHEHEHEU]EMH})U]EMH} H]H]UHHd$H]H}EMU]HEH@H@hHHuH}kWHEH@HxhEMX0HEHEH@HxhEM90HEHH}虽HE؃xHEHPHEHc@H|Hu腽udHEHEHEH@Hhx\~=HE؃x~3HEHPHEHc@HcTHEHcHH)HdHcH9~0HEHHHEHcPHE؋@܉HE؋@̃HU؉BHEHEHEHcXHEHxe?H9~9HEH@HtH@HHHEH5edHMHEHxw@HEHHHEHcPHEHHE؋@gPHE؉PHEHEHEHcXHEHx>H9~9HEH@HtH@HHHEH5dHMHEHx?HEHHHEHcPHEHHE؋@gPHE؉PH]H]UHHd$H]H}HuHEHcXHEHx6>H9~9HEH@HtH@HHHEH56dHMHEHxH?HEHHHEHc@HUHHE@܃HUBH]H]UHHd$H}HGHhx\~?HEx~5HEHPHEHc@HcTHEHcHH)HAdHcH9~EEEH]UHH$HLLH}HuHDžXHUHhmH?KHcH`HEpu HEHEHhHEH}tHEHPHEHEHEH@4ttOtH}HX LXHMHUH=R\5HH}N3H}ҼHHHAAE E@EHEHHH(UH}E1HX?LXHMHUH=LR\_5HEȋuH}HUȉBHuH}[MD;eHEHvH}tHEH@(HEHEHEHHPhHPH=]HH&H8H&kHNIHcHPHHEHH}HXLXHEHp(HE@xPHUHH=Og9ROIH}tHExQt@@0HEHp0HUHH=kd9OHLEؾH=P\LM85HH}KH蔾HE@HEH}HEH0HEHxhm?HUBHEHpHEHx HEHUHEHHE;EHEHpH}EH]UHHd$H}H@pH]UHHd$H}0H]UHHd$H}HuEMH}HE%DH}HEH@H}IH]UHHd$H}HuHHE%HUHHH]UHHd$H}HuHEHHuHEHHH}H]UHHd$H}uH}胈uH}跈H]UHHd$H}uHE;EtHEUH}苌H]UHHd$H}HuHEHHuHEHHH]UHHd$H}EHEf/EztHEHUHH}H]UHHd$H}uHEH@p;EtHEHujH]UHHd$H}@uHE:EtHEUH}zH]UHHd$H}Hu#HEHx,@HEH蔪H]UHHd$H}HuHH=dH2HEHhH}6HUHEppHEHxH}i6HUHEHUHEHMHUHHHHHUHEHUHEHHHuH}趫H]UHHd$H}EuHUHMHE؋tt+CuEH}EEHe)(]DHE݀HHe)(]*He)H=hdAHH5HNHE*pYEHEHUHE*YEHe)YH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuRLHz*HcHUNHEHUH}1HEǀ HEHUH G%HHHEǀFH=wH9HpH98HUHhHEHhHUH HH8HP@H=E9HE98HUHxHEHxHMHHB8HJ@HEHx1HEHhPHEƀXHEƀdHEƀeHEƀHEH}tH}tH}HEHNHEHtlHhH(JH(HcH u#H}tHuH}HEHP`MNOMH HtPsPHEH]UHHd$H}HuH~HEHUHHHEHx65HEHh&5H}1˪H}tH}tH}HEHPpH]UHH$HLLLH}HuH.HEHpH0IH'HcH(@H1H58dH}gH}HEHpHEx`HEu H}HEH@hH}HHHb)HuH}GtHa)HuH}/tHEppH}HEH EHEtHEHHE@HEH HEHH}}t  EHuH}HEH(H}Ƙ<HH H5f1H H}IHE@HED`A9UЃEEH}cHËuHHHHUHPHUH}98uHEHc@HcUHH*EuH}HEHEH}HEH0EHMHUuEH}EXEEHEHUHHEXEO2tEEHE@H}g<gXEDEH};IŋuLIEHP$HcEHDH  1t H_) EHUHcEXEHEHcUD;]rH}HÅ|>EEHUHcEH}HEH8HUHcE;]H}c<gXwEfEHEHcUTHEHcU EH;]8H} <gXEEH}IŋuLIEIƋuLrEx0u&EH}HEH8HEHcUDHEHcMHUHT;]E\EEH}H*E^EEXEEH}5<gX|MEEHEHcUTHEEHHz])YEXEE;]D;e`HuH}~YGH})H5a1H}jH(HtHHLLLH]UHH$pH}EMUHEEX@EHEE\@EHEHEHEHEHEHEHEHEH}HuHHEHxnxt0HEHEHEHEHEHEHEHEHEHEHEHEHEHpH})KHEH@HxhEMHEHEH@HxhEMHEH}J@HEHxwtEEE;EuHEHxwtmE;EuHEHxwuEHuHUH}H]UHH$0HHH}HuHUHEHUHhBH, HcH`dEHEH@HxHEHxHEH@H`HEH@Hxxp uCHEH@HxhHEH@H@hHHEHxHEH@Hh+HEH@HxppHEHxHEH@HhHEH@HhHEHxHEH@H0HEH@Hh u@HEH@Hxh1HEH@H@hHHEHxHEH@H8+HEH@HxppHEHxHEH@HhHEHxHHE؋pHH@E= tHEHxuHEH@H8HEH@Ht%HEH@HHE؋PHEHp0cHEHPHEHXXP)HcH!HH!H \T)HcH HH!кH!H HMHEH@HxHc@\HHcUH9}HEH@HxHc@\HHcUH9|8HEHxHEH@HPhHEHx1HEH@HpHEH@HtLHE؋@$HEH@HHEDHHEHPHEHpHMLEHEH@H]H#HHV)H0H~V)HPHEHx-*tkHEH@HtYHEHD$HE؋@$H}HEHPHHEH@HHEDHHEHpHMLEHEH@}t5HEH@HHED@HEHpHUHMHEH@AH}"H`HtBHHH]UHH$H}HuHUHMDEH}"HhH(o=HHcH HE؃xp HEHU HcɾH!HH!H ϋHcH HH!H!H H}H}rE쉅E艅HcH!HH!H HcH HH!кH!H HMHcEHcUHHH?HHEHcH!HH!H HcH HH!кH!H HMEEHcH!HH!H HcH HH!кH!H HMċE쉅HcEHcUHHH?HHHcH!HH!H HcH HH!кH!H HMHuH}A1ɺHEHHcEHH?HHEH}AptDEUg DEUuH}HEHPXEU)ЉE;EEEEEADEEA)MUuH}HEHPXEU)ЉE;E@EEEEEU)ЉEHcUHcEHHH?HHE*EHS)YZE*EE*ME^YHFS)\QEEY*M^H-EH$S)fWYEH-HcH!HH!H HcH HH!кH!H HMHH!EHcH HH!кH!H HMċEEYEH-HcH!HH!H HcH HH!кH!H HMH}"nEEETżE)ЉEEԋUDHcH!HH!H HcH HH!кH!H EHLż}|EEEU)ЋU+DEDżEHcH!HH!H HcH HH!кH!H EHLż}|H}HEHEH}HEHPhH}HEHhHuH}A1ɺHEHuH}HEHhHuH}A1ɺHEH:H}FH Ht)H=U[HH5H'H}HEHpHEu H}HEt2HEH}HEHHHEHpHEHx؃H}u8u]HMHUH=)H}1HEEXE\HEHEEXEX@HE@=EHuH}EVukHMHUuEH}YEXE\EH}HEH@EHEHHEEf/Ez sEEHEH}tHHHEHuH}EumHMHUuEH}EXEXEH}HEH@EHEH@HEEf/Ez vEEHE@H]H]UHHd$H]H}uH}Ss8u*EH}HEH0E5H}$sHËuHHH}HEH0EEHMHUuH}H}fWtHEH@hHHUHEHEHPhHj HEHUH#;)YEH}UHcH}H:)UHcH)HHHI؉]H]H]UHHd$H]H}uUЋuH} EMHEHEHEHEH}V%DHMHUЋuH}H}nVH}bV%DXEDHE耸XH}q<vqH}q<H*H:)YE^EH}UH}U%*EH9)XZYE\EXDDEMH]H]UHHd$H}HuHEHxHEHhHuH}茢H]UHH$HLLLH}HuHUHEHUH@HHcH8H1H5otdH}EHEHуHEHE@ HE@HE@HE@tHEuHUHuH}#E%H}o<HH0H5r1H0H}UHEHp HEHxh` (H HEH(HEH}StHEH0HEHEH0HEH}6oHHHAAEaEEH}oHËuHHHHUHPHUH}n8u *EEE| uEn t0EH}HEH0EHMHUuEH}HEXEEXE0E\E(HEH  f/(zr f/0zw09HEHUHHHEHH0E,t 0EHE@H}m<gXEfDEH}smIŋuLIEH@$HcUHDH00,t HF5)0EHUHcEXEHEHcUD;]rH}IHÅ|>EEHUHcEH}HEH8HUHcE;]H}HHEDEHuHcEHMHcUDf/zTvRHUHcEHDHUHcMHHMH00f/zr0f/zw0ɄyHMHcUHuHcEDf/!HEHcUHHMHcUHTHMH00f/zr0f/zw0ɄHEHUEB HEUPH}kkIŋuLIEIƋuL0H}9kIŋuLIEHHH H0H(HUH HBH(HB HE耸Xt%}~HEHcUHMA XHE@ HUHBHHB H H} HEH8H}HEH0HH(HH0H}Nt*H(HH0H(HH0HUH(HBH0HB HEHxhHE@H HUHBE;]@D;eQH5b1H}?H8HtEHLLLH]UHHd$H}HhH]UHHd$H}HHEHEEtE H!1)EH]UHHd$H}HH0)f/H]UHHd$H}HuHEHhHuHEHhHH]UHHd$H}uHEp;EtHEUpH}[TH]UHHd$H}HuHEHxHuHEHxHH]UHHd$H}uHE;E HEUHEtt\t,thHEHUH FHHHEHUH dHHHEHUH HHhHEHUH HHIHEHUH HH*H50)H=RdL HH5HJH}RH]UHHd$H}u|}d~*H.0)H=bRd HH5HHUEH}uRH]UHHd$H}uHE;EtHEUH};RH]UHHd$H}HuHUHUHHEHHEHEH;EuHEH;Eu0u#HUHEHHEHH}QH]UHHd$H}HuHUHUHHEHHEHEH;EuHEH;Eu0u#HUHEHHEHH}@QH]UHHd$H}uHEHhu}٧H]UHHd$H}@uHE:EtHEUH}PH]UHHd$H}EHEf/EztHEHUHH}PH]UHH$pH}HuHUH}HUHuHHcHU#HUHuH}%HExpHEppH}HEH EH}cHtoHEHcHHE苀H*EHgdYDH-HHUBHEHcHHE苀H*EHgdYH-HHUBmHEHcHHE苀H*EH^gdYH-HHUBHEHcHHE苀H*EH(gdYDH-HHUBH}EHEHtH]UHH$0H}HuEMUMDEH}qHuH}qHEH@ HEH} Gt:HEHU l lHEH`HEHEH`HEHxHUuEH}HEH`EXE\xHHHHPH`HXHPHEHXHEHEHXEXEXx`H`HHHXHPHHHEHPHEH}Etߝt uH}ND;e;]HEHc@HEH5DWdHMHEHxȺćH]LeH]UHHd$H}uHEHHHEHc@ċUHE@H]UHHd$H]H}HG\{HEH@H8 ÇHÅ|`E@EHEH@H8HcEHD2ޝt&HEH@H8HcEHHh )HHT;]H]H]UHHd$H}HuHEHuHpH}HuйHH}HEHpu?HEt2HEH}HEHHHEHpHEHx[QH]UHHd$H}HuHEHpHEHhHuH}tH]UHHd$H}HhH]UHHd$H}HHEHEEtE H! )EH]UHHd$H}HH )f/H]UHHd$H}HuHEHhHuHEHhHH}-H]UHHd$H}HuHEHpHuHEHpHH}C-H]UHHd$H}HuHEHxHuHEHxHH},H]UHHd$H}@uHE:EtHEUH},H]UHHd$H}uHE;EtHEUH}k,H]UHHd$H}uHEHhu譴H]UHHd$H}@uHE:EtHEUH}+H]UHHd$H}EHEf/EztHEHUHH}+H]UHHd$H]H}uH}蟅Eu@HEt/H}R?HËuHH@ٝtEEEH]H]UHHd$H}HuHH=?dH҇tHHMHUHHHHHMHUHHHHHuH}H]UHHd$H]H}HuH҇HEHUHuHˆHcHUH}HEHpHEx`{H]H_҇HHE)H0H;)HPH}؜tJHEHt\Hg)H58dG1Hz)H5)H=.d1H^)H5)H=.d1H)H5 )H=1dH]UHH\HHH=1dhH5\HH=P.dhH5$\HH='dhH5͡\HH=+dhH5\HH=;dhH5\HH=8dhH5(\HH=4dhhH]UHHd$H}HEHUHuHȆHcHU2H}1Y1H5)H}H}tH}H5{)YHEH8u)1H5)H}RH}tH}H5)[YHEH8u)1H5)H}H}tH}H5})(YHEH8u)1H5)H}H}tH}H5)XHEH8u)1H5)H}H}tH}H5)XHEH8u)1H5)H}H}tH}H5)XHEH8u)1H5)H}SH}tH}H5)\XHEH8u)1H5)H} H}tH}H5))XHEH8u)1H5)H}H}tH}H5)WHEH8u)1H5)H}H}tH}H5)WHEH8u)1H58)H}H}tH}H5)WH}WHEHt4H]UHH$H}HuHUHDžH}uHEHUHRhHEH}&HUHuH/ņHcHUHEHhH(HĆHcH HUH}1HEǀHHHEHvVHEHtHEHHEHxxPVH}H5)pH}辐H}辐H}VH}H5)vH}H5)H}H5)H}H5)H}H5C)&H}H5[)H5UH HtTHEH}tH}tH}HEHHEHtlHhH GHoÆHcH`u#H}tHuH}HEHP`C9H`HtHEH]UHHd$H}HuH~HEHUHHHEHxpϜHEHxhϜH}1H}tH}tH}HEHPpH]UHH$HH}HEHUHu?Hg†HcHUHEH@esH}HuHEHSHxH8H†HcH0uHEHH}HEHH0HH=z0HH(HH]HHcHHEHHHDž H(H@HHDž HH}RH^dHp1H)H} THUH(AHH؜HHtZH}RHEHt>HH]UHHd$H}HuHEHxxuHEHH}@RHEHpxH}-RH]UHH$HH}HuHEHDžHDžHUHuHHcHxHuH}>H}|H=/0財HEH`H vH螿HcHH} ~pHuH}QHEHEHxhu#1ҾH=PeHPeHUHBhHuHBcHHEH@hHPH}1HHEHH1HHHEH@hHPHEH@hHHEH@hHHH}HEHÃ|aE@EEH}HHEHHHEH@hHHEH@hHHP;]HEH@hHHuHEH@hHHPHH߇HϽHcHuHEHxhHEH@hHHHH=L0HHHHH/߇HWHcH@HNH2(H(HZdH@H0HB(H8H(1ɺHRHHEHHDž HH@H HDž HHAHԜH@HtqLHEHxpu#1ҾH=g"MH`"MHUHBpHuHR`HHEH@pHMH}1HHEHH1HHHEH@pHMHEH@pHHEH@pHHH}HEHÃ|aE@EEH}HHEHHHEH@pHHEH@pHHP;]HEH@pHHuHEH@pHHPHH`܇HߺHcHu&HEHxpHEH@pHHEHxp)߇HHH=O0HHHH 2܇HZHcHHKH(HHWdH@HHE(HH1ɺHOHHEHHDž HH@HHDž HHAHќއHHttOsއH}jLJHHt߇NHEH@xHpHDžh HhM1H(H=0+ќHH5H܇އHXJHLJH}CJHxHtb߇HH]UHHd$H}HHxptHEHxpHEH@pHHEHxhtHEHxhHEH@hHH]UHHd$H`QdHEHu1H=(jHHuHEH]H]UHHd$H}HuHEHH;Et,HEHHuHEHHH}H]UHHd$H}@uHEH@uH]UHHd$H}HuH4HUHućHHcHUu6HEHHuDHtHEHHu4H}LJH}3HEHt ɇH]UHHd$H}@uHE:EtHEUH}H]UHHd$H}uHE;EtHEUH}{H]UHHd$H}HuHEHxhtHEHxhHuHEH@hH H]UHHd$H}HHEEH]UHHd$H}HHxhtHEHxhHuHEH@hH H]UHH$`H}EHuUH}2HUHu‡HHcHxu,H}zH(XUHuMH}EŇH})2HxHtHLJEH]UHH$PHXH}HuHUHDžpHUHuD‡HlHcHxH}HHHEH}|fHHHEHHEHpt11Hp1H}}H(XMH} HpH;]|ćHp!1HxHt@ƇEHXH]UHH$`HhH}HuUH}1HUHu7H_HcHUu8H}HHi(f)HZ(UHuHEćH}n0HEHtŇEHhH]UHH$`H`H}EHuUH}d0HUHuH語HcHxu2H}HH(f)UHuEHEeÇH}/HxHtćEH`H]UHH$@HHH}EMHuHUHMDEH}/HUHh豿HٝHcH`uKH}2HËUHuEf)EHEH}HHUHMЋuH{‡H}.H`HtÇEHHH]UHH$PHXH}EMHuUH}.HUHxھHHcHpu,H}[HËUHuEf)EH;EH}.HpHt9ÇEHXH]UHH$PHXH}EHuUH}.HUHu"HJHcHxuGH}HL(XpH}HËUHuMpHhEH}G-HxHtf‡EHXH]UHHd$H}>HEHphHEH6HEHHHEHphHEHHx0HEHphH]UHHd$H]H}jH} HHHH]H]UHHd$H}HuHH=;dH-tvHEHHEHHEHHHMHEHHHHHEHH}wHEHH}CHuH}FH]UHHd$H]H}JH} HHHH]H]UHHd$H]H}zHHHH]H]UHH$H}HuH0HEH8HUHuHEHHE8;Es{HEH8HHHEHEEEHEExHEHMH x\HPAH= \OHH5HHE<;Es{HEH8H苫HHEHEEEHEEyHEHMHw\HPAH=b \ŰHH5HsH]UHHd$H]H}HHH]H]UHHd$H]H} HHHEH]H]UHHd$H]H}j HHHEH]H]UHH$H}HuHUH}uHEHUHRhHEH}HUHubH芗HcHxQHEHUH}1qHEHLEIHH=q['%HUHHEH8HUHuHEHDEMHUH=9dHUHHEHH5(HEHH0HEHHx`HEHt+HEHPhH=[HUHHEHLEH jH=p[I$HUHHEH}tH}tH}HEH"HxHtlH`H ηHHcHu#H}tHuH}HEHP`ʺUHHt蟽zHEH]UHHd$H]H}uH} HËuHH]H]UHHd$H}HuH~HEHUHHHEHHEHHEH桜HEH֡H}1H}tH}tH}HEHPpH]UHHd$H]H} HHHH}H]H]UHHd$H]H}HuH}HHuHH(H]H]UHHd$H]H}EMHuHUH}tHHMHUEf)E@0HMH]H]UHH$`H`H}Hu؉UHMDEH}Q%HDžhHDžpHUHuYH聓HcHxHEHt)H]H$HHEHUHEdH}HHEHHH}@HMHhHhDEMHpHtNHpH}$ϷHh#$Hp$H}$HxHt-H`H]UHHd$H]H}HuHEHUHHpumHEx`tcH}HuHEHH}HuHH]EEED䟝uHMUEHDHD}|H]H]UHHd$H]H}uH}HEHEH}HËuHH@E= E}tEEEH]H]UHHd$H}uH}EuH}EH}$tHEHEHEHEHEHEEMH]UHHd$H}uUMEuH}EЋUuH}EH}tHEHEHEHEHEHEEMH]UHHd$H]H}uH}8u*EH}HEH0E5H}HËuHHH}HEH0EEH]H]UHHd$H]LeH}uUH},8u*EH}HEH0E?H}HËuHHIċuL !H}HEH0EEH]LeH]UHHd$H]H}uH}HËuHH@H}HEH8EH]H]UHHd$H]LeH}uUH},HËuHHIċuL H}HEH8EH]LeH]UHHd$H]H}HuHUH}H1HhHEH}HuHEHHEHUHH]H]UHHd$H]H}HuHUH}^H1HAiHEH}HuHEHHEHUHH]H]UHHd$H} H]UHHd$H}HHtHEHHEHEHHEHEH]UHHd$H]H}uH}HËuHHHEHxh0EH]H]UHHd$H}HHuHUHHHEHEEH]UHHd$H}HHuHUHHHEHEEH]UHHd$H]LeH}HHH~?H}HH}ILI$ƃHHHHEH](HHEEH]LeH]UHHd$H}HuHUHEHEH]UHHd$H}HHuHUHHHEHEEH]UHHd$H}HHuHUHHHEHEEH]UHHd$H]H}uH}8v$H}qHËuHHHHE *EEEH]H]UHHd$H]H}uU~.H} HËuHHHPHcEHDHE"H}HËuHHHHEEH]H]UHHd$H]H}uH}HËuHH@HEHxhoEH]H]UHHd$H}HHuHUHHHEHEEH]UHHd$H}HHuHUHHHEHEEH]UHHd$H}HHuHUHHHEHEEH]UHHd$H}HHuHUHHHEHEEH]UHHd$H]H}uH}CHËuHHH@HEEH]H]UHHd$H]H}uUuEH}E,H}HËuHHHP$HcEHDHEEH]H]UHHd$H]H}HHHEEH]H]UHHd$H}HHEEH]UHHd$H}HuUHEHHH(HuUH}E1H]UHHd$H}HH=d词u.He\HPH=L[HH5H H}H]UHHd$H]H}uUH}pHËUuHH]H]UHHd$H}HuHEHH;Et#HEHHuHEHHH]UHHd$H}HuHUHUHHEHHEHEH;EuHEH;Eu0u#HUHEHHEHH}H]UHHd$H]H}HuHEHH;EuHEHEHH;EHuH}HEHt H}HX`HEHHHUHEHH}HX`HEHH-HuH}HEHH]H]UHHd$H}HuHEHH;ExHEHtHEHHx`HEHGHUHEHHEHtHEHHx`HEHkH}H]UHHd$H]H}uHUHHUHuHFHcHUuH}HHUuHH}rHEHt蔪H]H]UHHd$H]H}uEH}>HEuHH]H]UHHd$H]H}uUE}uH}HEuHR,H}HËuHHHPHcEHMHLH]H]UHHd$H]H}uEH}~HEuHkH]H]UHHd$H]H}uUE}uH}5HEuH",H}HËuHHHP$HcEHMHLH]H]UHH$0H}HuHEHH;EHuH=[wHUHuHHcHUu HuH} HEHt^HxH8解HρHcH0uH}1豦<触H0Ht膩aHuH}H]UHHd$H}HuHUHMLEH}H;EtH}H;EuH}HHUH}UH]UHHd$H}>HEHPtHEHphHEHPxEEHEUHtHEUHHEHph>}|H]UHHd$H}HuUHMH}OHUHu-HUHcHUuH}HuH}/H}憇HEHt訦H]UHHd$H}HuHH=#dH-HUHEHEHPt*HEHPHEHPHEHPHHE@XH}7HUHEeeHUHEffHuH}@H]UHH$HH}HuHUH}uHEHUHRhHEH}uHUHu軠H~HcHUHEHUH}1HEHPhH=[HUHHEHPhH=[HUHHEƀdHEǀ@H}HHHHU艂`HEǀHEH}tH}tH}HEHHEHtlHhH(謟H}HcH u#H}tHuH}HEHP`訢3螢H Ht}XHEHH]UHHd$H}HuH~HEHUHHHEHHEHHEHPH}1H}tH}tH}HEHPpH]UHHd$H]H}HuH裃HUHu聞H|HcHUH}1HtTH}1x tCH}HHeCt+H}1fHp0H}HEH`@HH}8HtZH}%x tFH}fHHCt.H}Hp0H}HEH`@0H)ĠH}{HEHt=H]H]UHHd$H]LeH}@uHEH@HPt=HEH@HP@0EHEH@HP@DE}tEEEEHEHx/HHEHx1H@}HHE@(EHEx(E}tuuHEHxHEH@H EHEH@@HEH@`9UЃEEHEH@H8HEH@Hc@HcEH)HHHUHDHEHEH@HxhEM\%}HEHxpIHMHUЋuL<HEHxEHEH@H0EHEHxEHEH@H0f)‹uEMH}]HEHxIHMHUЋuL8=tbHEHxEHEH@H8EHEHxEHEH@H8f)‹uEM0H}]";]qH]LeH]UHHd$H}EMU]u؈UЄtHEHxtHEHxt }uEE}t"HEHEHEHEHEHEHEHE HEHEHEHEHEHEHEHEHEH@HxhEMYHEHEH@HxhEMYHEHEHxHUHuHEH@HMUHuH}MUHuH}H]UHHd$H}HuUMEU)ЉEHU HcɸH!HH!H ȋMHcH HH!H!H HƋUEЉE܋EEHcH!HH!H ‹EHcH HH!ȹH!H HEHxHEH@HEE܋EEEHcH!HH!H ‹EHcH HH!ȹH!H ‹EE܋EM)ȉEHcH!HH!H ƋEHcH HH!ȹH!H HEHxHEH@HH]UHH$0H0L8L@H}HuHUHMLEH}|HDž8H HHuHcHhEHEHLH=8H88HEHHH(YHHHEHHHEHHELEXEH(YHEHHHHHEHHEHE耸XtHEHE}|E;EE;EHEHXhHEHtHEH;EREMHbJ8t+HEHHEHu踯HExRt7HEHHHEHp8HEHHH1HEHHHuHEHHHHhUuH}HEH H}tEEhH}x AEMHsHIDEUH}1HHHLDD;uD;}^艋HEHHHuHEHHHHEHxhk5H}BtHHt,HH}lH5hK[H}wHHt膌HHLPLXL`LhH]UHHd$H}HuHUMH}HEH@HxxHEH@HHEHpHU$HEȋEHcH!HH!H EHcH HH!кH!H HMЋEHr dH‹UHcҹH!HH!H ֋HUHcH HH!ʹH!H H} ԜHEHEH@HHEHpHUHEȋEHcH!HH!H EHcH HH!кH!H HMЋEH dHHEȋUȋEHcH!HH!H ƋŰEHcH HH!кH!H H}2ӜHEHEH@HHELHHEHpLEHMHUނH]UHH$ H(L0H}HuUMH}OjHUHP*HRcHcHHsHEHPx ^HEH8HtH@HH=HE@HE`9!U܉ЃEEHEH8HEHc@HcEH)HHHUHDHEHEHxhEMEHEHxhEMDHEHEHt)HEH LEMHUHuHEcHEH(tYHEHP@@EEHEH0HMUHuHE(HEHP1HEHPuEHEHt&HEHu轩HEHt HE@PE}tHEHUHu0˦}t$H}IċuLI$@EE HEHPDEMHUHukHMUHuH}HEHHEH(t+HEHPuHEHphHEHPv;]ȅH}gHHHt>H(L0H]UHHd$H]H}HuHEXtH}HHuHH(H}HHuHH0H]H]UHHd$H]H}HuUHEǀ@H}H}MHHHHU艂`}\H}讶tPHE@H}HEH@EHE@H}HEH@EHEHEHEHEMHE@H}HEH@EHEH}HEH@EHEHEHEHEH}tHHEH`HEH@MEH)HEHc@HHEH~HE1HU艂@H}H}HHHHcHHEHEHc`HHEH;E}HEHEHU艂`H]H]UHHd$H]H}EMHuHUH}HHE@XHMHUEf)EHH]H]UHHd$H}uHUEHH]UHHd$H}uUЋuH}1҉EMHEHEHEHEEMH]UHHd$H]H}EMHE苀t&tttEEH}HEHH}HEH8EHE芀eĒtEEEEf/EzsE<Ef/EzvE(HE耸euEEf/E ЈEHE胸u}EH}身Ht?H}LtHEHxh;tt0H}舫0t}EH} %MHHdHЋEH]H]UHH$HLLH}HuHUHMHDžXHUHho}H[HcH`HEH@4tti&H}HX谳LXHMHUH=}e[MHEHEHHUЋ@\B0HuH}^bH}\HHHAAE:EfDEHEHHH(UH}E1HXLXHMHUH=d[LHEЋuH}HUЉBHEHHUЋ@\B0HuH}]D;etHEHHEHHPhHPH=+&\ΗHHWH8H{HYHcHPHxHEEHEHHxpt)HEHHxxHMHUHuHEHPp}HUH}HXWLXHEHp0HE@xQHUWHH=t8_IHEHp(HE@xPHU,HH=jw8m_H¾H=6c[LMCKHH}W\HΗ}HHP`HPHt3}HXH`HtHLLH]UHH$@HHLPLXH}HuHUHEHуHEHE@ HE@HE@H}HEHpt EH}HEHu EtHE耸dtZHExtPH}HHEpHlpHEHcpHHQHUHuHp %EH}HHHEHEEDeD;eEЃEfEH}cHËuHHHHUHPHUEcuEct0XHE@HEEH}HEH8EEH}HEH0xHxHEHEHEH}.tHEHEHEHEHEHEHuUEMH}E11HEHx9E}ExE}HE@HEHEHEHEHEH}<gX[EEHE耸Xt5H}IŋuLIEH@$HcUEXE,H}IŋuLIEHP$HcEHHEEH}HEH8EEH}HEH0xHxHEHEHEH}詫tHEHEHEHEHEHEEgD@HuUEMH}1HEHE;E}3E܉EHEHEHEHEHEHEHEHEHUEԃB;]}lHE@[HEGHEHEHEHEH}E8gXE@EH}IŋuLIEHPHcEHHEEH}HEH8EEH}HEH0xHxHEHEHEH}3tHEHEHEHEHEHEEgHHuUEMH}E1HEHE;E}3E܉EHEHEHEHEHEHEHEHEHUEԃB;]HE;E~LHEUHUE؉B HUHEHBHEHB HEHxhEM4HUHB}t D;eFHEx EEHHLPLXH]UHHd$H}uHEHxt*HEH@@Ug4HEH@HxhbE(HEH@@ Ug4HEH@Hxh_EHEHxEHEH@H@EH]UHHd$H}EuH}8EEHuH}M\H*+fTM؋EEHuH}M\H+fTMEE]Et H(EEHҗ(HHEEH]UHHd$H}Hܗ(HHEEH]UHHd$H]LeH}uUH}HËuHH@P]E~H}|<HEHcEHEH;E}H]H]H|KEEH};IċuLI$HP$HcE\tE;]EH]LeH]UHHd$H}uHEUHz uLz(uFHB0xpuHE胸oHE胸^H}G8HE苐@HED`A9UЃE䐃EH}HËuHHHUH8HUHc@HcUH)HHHHMHHMHMHMHMHMH HMHLD;e&HE苐@HED`A9UЃEEH}cHËuHHHUH8HUHc@HcUH)HHHHM*EEHMHMHMHMHMH HMHLD;eHE苐@HE苘`9|gUЃEEEH}EMHEH8HEHc@HcEH)HHUHHUHT;]H]LeH]UHHd$H}uHUHMEHUHH}@H]UHHd$H}@uHEf:EtHEUfH}H]UHHd$H}uHE;EtHEUH}軦H]UHHd$H}HuHEHPHuHEHPHH}sH]UHHd$H}@uHEX:EtHEUXH}*H]UHHd$H}uHE\;EtHEU\H}H]UHHd$H]H}uH}賹HËuHHXTEu9HEXt(HE\uuH}tEEEH]H]UHHd$H}HuEMUMDEH}HuH}ESuESt0t E0HEHxhEM'HEHEHx HuHEEċEH]UHHd$H]LeLmH}؉uUMDEH}`}OHE؀XlHE؃\[DeD;eEEfDEH}HEHEHE؊eEtE Hnj(EH}ŷHËuHHH@HEEaREtEEEDmE|jEEH}kHËuHHH@$HcUHHEEQEt H!(EXEED;mEH}HEH8HEH8HcEHcUH)HD;e5DeD;e'EEEH}諶HËuHHH@HEDmE|DEEH}sHËuHHH@$HcUEXED;mEH}HEH8HEH8HcEHcUH)HD;eMc}}DeD;eKEEEH}˵HËuHH@H}HEH8HEH8HcEHcUH)HD;eDeD;eEEfEH}SHËuHHH@$HcUH}HEH8HEH8HcEHcUH)HD;e\}PHE؀XmHE؃\\DeD;e"EEfDEH}HEHEHE؊eEtE Hg(EH}eHËuHHH@HEEOEtEEEDmE|jEEH} HËuHHHP$HcEHHEENEt H(EXEED;mEH}HEH8HEH8HcEHcUH)HDD;eDeD;eEEfEH}KHËuHHH@HEDmE|DEEH}HËuHHHP$HcEEXED;mEH}HEH8HEH8HcEHcUH)HDD;eL}}DeD;eEEfDEH}kHËuHH@H}HEH8HEH8HcEHcUH)HDD;e{DeD;e|qEEDEH}HËuHHH@$HcUH}HEH8HEH8HcEHcUH)HDD;eH]LeLmH]UHHd$H}uUHE苈`HE苐@DEuH}H]UHHd$H]H}HuHEǀ@H}HHHHU`HuH}H]H]UHH$HLLLH}HuHUH}#EHEHUHH_H>HcH@[HEH CHEH+H}HEHpH}HHHEH@hHH}uH}HHEHH HHH CXCH(YH}HEH8EHMH}11HEH HEHH}HEH EHE苐@HE苘`9*UЃEEEuH}1HEH08H0HEH8HEHEHxhEMDE܋UHuH}1sH}HMU܋uH}HEH H}%DŸMH}EHEHHUHujH8H8P40U̅t,,t04UHEHtHcEHH?HHEHE胸tGHcUHcEHH8HUEHcH0H;8~ H0H8HUM̉H}|<U}KHE耸XH=(HHEH}=<gD`EsEfEH}IŋuLIEIƋuL8G4t Hā(8XEED;eH}=AAEH}HEH8BDMH}x<gPuH}HEH08H0HEH8HEH}+<E2;]^H}c@H}ʆH@Ht`HLLLH]UHHd$H}uUHMHHuH})H]UHHd$H]LeH}vHHH|H}Y8uHUH(HHHH}-H1HHHHEH} HþHHHHEE\EH*fTHEHH}ǪHHHAAA|qE@EH}蓪HËuHHHHEE\EH *fTHEH$HEHHEHED;eH]LeH]UH1H+(H5t(H=ecH}nH]UHHd$H}Hu H]UHHd$H}HuꚇH]UHH]UHHd$H}HHEB8f/@0z&s$HEH~(X@8HE\@0EHEHU@8\B0EEH]UHHd$H}HHEB8f/@0z6w4HUH{~(XB8HEX@0Hj~(YqUE'HEHU@8XB0HA~(YHUEEH]UHHd$H}HHU@0f/B8zvHE@8H}(XE HEH@8HEEH]UHH$ H8H}HuHUHMH}EHy(f)fWE]HH},HH}:HEUH5cH}AyHEHtSWHEH]UHHd$H}HۀHx((HEۀ }蛋EH]UHH$ H}HuHUH}uHEHUHRhHEH}JHUHuQH0HcHUHEHUH}1H}<f7HEǀ4hH=K8HK88HUH8HEH8HEH HJ8HB@HEƀHEH}tH}tH}HEH_THEHtlHhH(QH6/HcH u#H}tHuH}HEHP` TUTH HtVVHEH]UHHd$H}HuH~HEHUHHHEH8;H}1;H}tH}tH}HEHPpH]UHH$HLLH}HuH5HEHEH5cH}uHDž HxH8OH-HcH0nH3[H5lcH} H}HEHp>HEx`0HEHHu(HuH}+HEۀHku((HEۀ ߽((EHExpHEppH}HEH EH]H5cHuHH}<HEH8H}HEH`H}HÅ|;AAH}cHuHMIcHkHH<yHuHD9HEH8H}HEH`H5cH MHcHEH(H /H HÅ|jAfDAHcHuH IcHkHH<Jy}t-uH}3H}1HEH@HuHD9HEHҀFH5cH HcHEH(H iH =HÅA@AHcHuH IcHkHH<x}LmI}HEHwEf/Ez1w/Hr(XEXEHr(YI"EXEHr(YIHEHHEHLMHuMEIMIUID9 oOH5cH <H}1H5cH}rH5[H}rH5cH}rH0HtPHLLH]UHH$@H@H}HuHH}Hƹ HH5tcH}#sHEHUHHfKH)HcHUH]H5[HqHHuH}\HEH@HPt:HEH@HXHEHPHEHpLMHME1HEH@Ph(E0puHH5h(H"h(Emu$Hh(Hg(EotEE}#}^HE@EHEH@twHEHHg(Hng(H[g(E}mt  H2g(EHEHH7g(Hg(Hg(E#mt  Hf(EHEHHf(Hf(Hf(Elt  HYf(EHEHH~f(HKf(H(f(Ejlt  Hf(EHEHHf(H f(He(E lt  He(EHEHHe(He(He(Ekt  H~e(E`HEH@EHEH@tw&HEHH,e(H e(Hd(Ekt Hd(EHEHHd(Hd(Hd(ENkt H}d(EmHEHHsd(H@d(Hd(Ejt Hd(EHEHHd(Hc(Hc(Ejt Hlc(EHEHHc(Hc(Hc(E6jt H}c(EHEHH`c(HMc(H:c(Eit Hc(EEf/EzsEHb(XEHDžH5ScHH}غ *UHUMEHhH}HEHtH@HEH}.HEHcEHDHH5cHH}غ EgX|EE@ELmH} IHcEI)HEHcUHHI<$^ HHh菁HUHHcMHʋEE;]Q7H5cHhyZHEHt8HLH]UHH$HH}HuHHXHƹ HH5acHX [H5NcH}YH5>cH YH@H23HZHcHUmHEH@ttXHEHH|Y(f/zwHmY(f/zr0EHEHH Y(f/zwHX(f/zr0EBHEHHX(f/zwHGX(f/zr0E}nHcHXHH}HHuH[]HEHxHXuHEHxHuru}uEE4H5cH6XH5wcHX#XH5dcH}XHEHt%6EHH]UHH$HH}HuHHXHƹ HH5cHXXH5cH}VH5cHVH@H0HHcHUmHEH@ttUHEHHW(f/zwH W(f/zr0EHEHHV(f/zwHV(f/zr0EBHEHH6V(f/zwH7V(f/zr0E}nHcHXHH}>HHuHZHEHxHX'uHEHxHuu}uEEy2H5*cHUH5cHXUH5cH}UHEHt3EHH]UHH$HLH}HuHUHHXHƹ HH5cHXBVH5cH}RTHDžH@Ho.H HcHUH5 cHUHcHEHpH:HHÅ|VAAHcHuHIcHkHH<ZYEf/EzuHcHuH}8YD90H5mcHH5cHX6TH5wcH}&THEHt82HLH]UHH$HLH}HuHUHHXHƹ HH5cHXTH5cH}RHDžH@H,H HcHUH5ycHHfcHEHpHH~HÅ|VAAH]cHuHIcHkHH<WEf/EzuH-cHuH}WD9\/H5cH)H5cHXRH5cH}RHEHt0HLH]UHH$HLLH}HuH5cH`TQHDžH8Hq+H HcH9HEۀHvQ((HEۀ ߽\H5cH HcHEH(HHHÅADAHcH`HIcHkHH<V}oH`H}=xHEHEЃxpvPHEЋtBt t64*EHE^H-E*EHE^H-EHEЋHcH\\HcHHEċHcҋMȉHcHHH;|HH;0yE|$HcEHH߭<$ݝ&EEf/E& HEHEHEHEAAAHcHHTHcEHcTHH߭|$HcEHHcXHH߭<$aݝ%EEf/Ez sEEEEf/Ez vEEEAAHEHf/Ezrf/Ezw0EEEf/EHEHEHN(\Ef/zrEf/zw0uOEHM(XHEHEf/zrEf/zw0tTEE\JHEHHEHEf/zrEf/zw0tEED9UEI*H5cHH5cH`MHHt+EHLLH]UHHd$H}HuHuHExpvPHEtBt$t64*EHEYH-E*EHEYH-EHEH]UHH$`H`LhH}HuHDžpHUHu&H)HcHxsHEH@4t%JH}Hp>\Hp H=δc1HEEfDEEH}| ‹uH}}|HuH}H}uHHHAAEEEHEHHH(UH}E1Hp7oHp H=cjHE؋uH} HU؉BHuH}VD;e*HWK(H={0vHH5Ht&'HpHxHt)H`LhH]UHHd$H}HuHUEHEHуHEHE@ HE@HE@HEHp H}E~(HEHEUP HUHEH@ HBEEH]UHHd$H}H݀<$"HgJ((}؛EH]UHH$@H}HuHDHUHu"#HJHcHUHEH@hHH@|HUHHED)EHEHPhHHpHHxxp)HcH!HH!H |t)HcH HH!кH!H HMHEHcPHH?HHHxHcHH?HHHpH;x~ HpHxUHcUHcEHHH?HHHUHEH@hHHpHHxHuH}}HPHXHPH`HXHh*x*p*`VPt%*|*t*d5Pt0tP*x*p*h Pt%*|*t*lOt0t0tHEEHEEHcEHHcUH9!HUHEDHuH}Z#H}lHEHt.%H]UHH$0H0H}HuUMEMH}HUHuDHEЀ@ HEHptH}2ẼHEHxhEMHEHEHHEHEH@tHEHcEHcUH)HcMHcUH)HHcUHcMH)HcMHcuH)HHHEH=}HEEE]HEHHEHcEHcUH)HcUHcMH)HHcUHcMH)HcuHcMH)HHHEH=}HEEE]H}oHËuHHHU*E\E^XEHD(f/EzvHD(HHEH}6uHHHHUHPrHHcHHuH}tHEuHPXk!H}tHHHHHHt"HEHUHPtH0H]UHHd$H}uHE4;EtB}uHEǀ4h#E}=h~hHU4H}/ZH]UHHd$H}HuHEH8H;Et#HEH8HuHEH8HH]UHHd$H}@uHE@:EtHEU@H}YH]UHHd$H}uHED;EtHEUDH}[YH]UHHd$H}u}1d~dEHE ;EtHEU H}YH]UHHd$H}@uHE:EtHEUH}XH]UHHd$H}uHE;EtHEUH}XH]UHHd$H}@uHE:EtHEUH}JXH]UHHd$H}HuHUHUHPHEHXHEHEH;EuHEH;Eu0u#HUHEHPHEHXH}WH]UHHd$H}uHE;EtHEUH}WH]UHHd$H}@uHEH:EtHEUHH}JWH]UHHd$H}uHE0;Et!HcEHhHHE0H}WH]UHHd$H}uH};Et=E}1Y~YEEHA((HEݘH}VH]UHHd$H]H}uH}cjHHH;E~#H}FjHËuHH@EE HcEHHHcHU} E}tUUUH]H]UHH$@H}HuHH}Hƹ HH5 cH}@HUHHH-HcHUuHEHH}>fEH5cH}f?HEHtxEH]UHH$ H}HH}Hƹ HH5ocH}@HUHHiHHcHUEf/EzvEH@>(XEEH>(f/EzvH>(f/EzXrVHEH@H>(f/@zwHw>(f/@zr0tH=(HHEHEH@H0>(f/@zwH!>(f/@zr0tEH>(f/EzwH\>(f/Ezr0tH=(HHEsHEH@HEH0H=(f/0zwH=(f/0zr0 H}H5CZHH}AHHHAAEE@EH}A<gX|sEfDEE‹uH}EMHEHEHEHEHEHpH}EOHEHpHEHxEO;]D;ehH]LeH]UHHd$H}uUЋuH} EMHEHEHEHEH}J%tHEHEHEHEHEHEEMH]UHH$HLLH}HuHDž`HUHpHͅHcHhHEtHEHPHEHEHEH@4ttVH}H`%L`HEHxHMH=Z蛸HH}н@H}?HHHAAEEEHEHHH(UH}E1H`8L`HEHxHMH=ZHEuH}:HUBHuH}нD;eHEH}H}tHEH@(HEHEHEHHPhHXH=H[@HH-H@HH˅HcHXHHEHH}H`$L`HEHp(HE@xPHUDHH=7҆IHEHxtHE؀xQt@@0HEHxHEHp0wDHH= 7цHLEH=}ZLMڷHH}νH6A. HHP`HXHtzH`9\HhHtXHLLH]UHHd$H]LeH}HuHUEHEHgBHUHE@ HE@HE@HEHHtH@HHHEEH}rHIHE؋0EL!HU؉HE؋0EL9%HPLXH]UHHd$H}HuUMEMHEH}H_FHuEMH}HEHxH]UHHd$H]LeH}HLMt Md$IH}z7HHHHcI9H}V7HHHHcHEH5نcHEHHMзH}7HHHAAEEEH}68v/H}6HËuHH<$HuH}E<$HuH}HEHHcEHmHEHHcEHm\D;ekH]LeH]UHHd$H]LeH}uH}6HHHHcHEH5scHEH8HM虶H}5HHHAAEEfEUuH}EMHEH8HcEHHUHHUHTH}tBHEH8HcEHHDHUH8HcUHHH HMHH HMHD;efH]LeH]UHHd$H}HuHEHhH;Et,HEHhHuHEHhHH} H]UHHd$H}@uHEp:EtHEUpH} H]UHHd$H}@uHEq:EtHEUqH}J H]UHHd$H}HuHEHxH;Et,HEHxHuHEHxHH}H]UHHd$H}EHEHHEHX (f)MEќuHEHUHH}H]UHHd$H}EHEHHEH(f)MEМuHEHUHH}%H]UHHd$H}@uHE:Et1HUEHE@HEHP8 H}H]UHHd$H}HuHEH50cHEHHM'HuH}*H]UHHd$H}uUHMH}@}u%HEH}HEH8HEH]UHH[HHH=uc_H]UHHd$H}DH]UHHd$H]LeH}HH=cH cHHEHEHUH=ďcHcHIADŽ$dHuL9HUH=IcHBcHIADŽ$dHuLHEH]LeH]UHHd$H]H̺cH@gX|tSHuH}HEHHuH}HEHHuH}HEHHuH}HEHsHuH}HEH\HuH}HEHEHEu#HEH@`HHHU{/tHuH}HEHHMEHHHUHHEH}tH}HUHuUH}u HEH@`H]UHHd$H}HuHUH㼆HUHu׆H鵅HcHUu)H}6HUHEHB`HEHxHu赼چH}gHEHt)܆H]UHHd$H}Hxtt HE@tE;Hw>H8Hm>HHxrts EEEH]UHHd$H}uHMEHHHUHHUHEH]UHHd$H}uHMEHHHUHHUHEH]UHHd$H}HHhu EHEHhHxhHuU?EEH]UHHd$H}HuHEHxtHEHxH}0HEHx`tHEH@`HH} H}1뺆H]UHHd$H}HhH]UHHd$H}Hh@pH]UHHd$H}H]UHHd$H]H}HHx`t'HEHX`H}HEH;huEEEH]H]UHHd$H}HuH}3HExyt%Ҵ%tH}HEHH]UHHd$H}HuH}3H]UHHd$H}HuH}f3H]UHHd$H}HuH}F3H]UHHd$H}HuH}&3H]UHHd$H}HuH}3H]UHHd$H}HuH}2H]UHHd$H}EHEdu/HsH8HEHE@h;EtHE@l;EtEEH]UHHd$H}HuHUH}rHUHuPӆHxHcHUH}@H}HEHHuH}HEH`HuH=pZctCHEtHExXt0u"HEPpH}HEHpՆH}获HEHtP׆H]UHHd$H}HuHH}H0HEHp8H=Yvc輶tHEHp8H}H]UHHd$H}Hfxpt$HE`HEHx`HEH@`HH]UHHd$H}fuHEf@pf;Et8H}ht H}{HEfUfPpH}Ft H}H]UHHd$H}uHUHMHMEHHUHHUHH]UHHd$H}uHUHMHMEHHUHHUHH]UHHd$H]H}HfxpthH]HEHx`HEH@`Hf;CptEHEHx`HEH@`HHUf`HEppHEHx`HEH@`HH]H]UHHd$H}uHE@t;Et HEUPtH]UHHd$H]H}uHEHhH@hHc@HHEHcEHEHH}1H;]~H]H}HEHHEHhHxh:H]H]UHHd$H}HuHE@PuHuH=sc2HH}H]UHHd$H}HuHEHhH;Et[HEHhtHEHhHxhHu8:HEHUHhHEHhtHEHhHxhHu5H]UHHd$H}HuH糆HUHuΆHHcHUu*H}IuHEpH}HEHцH}jHEHt,ӆH]UHHd$H}HH=vcH0H]UHH$ H}HuHUH}uHEHUHRhHEH}HUHu͆H HcHUuWHEHUH}18H=vcgHUHBhHEH}tH}tH}HEHІHEHtlHhH(R͆HzHcH u#H}tHuH}HEHP`NІцDІH Ht#ӆ҆HEH]UHHd$H]H}HuH~9HEHUHH#HEH@h@gpH}HH͸HEH@hxHEHxh蒷H}1WH}tH}tH}HEHPpH]H]UHH$@H@H}HuUMLEHEHUH`̆H6HcHX}HUcH5vcH}휆HEH@hxt HEu EBHEH@hHc@HPH5cHPH}ȺʜEHEhEHEH@hHc@HHPHcEHHH|HHH;P0t uHHEH@h@gX|}9}:}8}HUHEH HEHH}H]UHHd$H}HuH}tOHEHUHMMHM M؉MM܉M MMHuHUH}H}sH]UHH$H}HuHDž`HUHp輰H䎅HcHheH}H}@KH}HEHXHxtHXHxH`wnHcHxu#H}tHuH}HEHP`蝔HxHt畆•HEH]UHH$HLH}HuHDžHXHkHmHcHBHEH@`-HEHjcHHEHEHEHEEHEEHEEDžpHEHx` NHEHHbHHEHx`HHIHHHHlHcHL(HEHHypHEx`tfHUHuH}HEHtIHEH@`HHHU t&E;p}HEHEHpHuHLa쐆LI$P`HHt\p}HUHEHHE|HUEHEUHEHx`HtMHUHHHH:H5 ;0H]HHt覑HLH]UHH$@H}HuHt EWH}HXHEHhH}HXHHEH@H@`HxHHHxH}ju EHEH@HEH@Hx`HEHpoLhpHhHEHpHEEf)xE辺tUME覺u EYHEH@t HEH@HUr)HEH@Hx`hw`H`HhH'HHpHhHEHpHEH'`HEH@HUBg4HEH@Hx`vXHXHhH`HpHhHEHpHE?HEH@HUr)HEH@Hx`y`Hز'HHhH`HpHhHEHpHEHEH@HMAg4HEH@Hx``y`Hy'XHXHhH`HpHhHEHpHE^HEH@XHEH@\HcH!HH!H ƋXHcH HH!кH!H HEHx֛HHEH@Hx`IhpHhHEHpHEHEH@XHEH@\HcH!HH!H ƋXHcH HH!кH!H HEHx֛HHEH@Hx`HhpHhHEHpHEHuH}sEEH]UHHd$H}HuHEHHukH]UHHd$H}uHEHu-H]UHHd$H}HuHHUHu赇HeHcHUuHEHHu蹊H}HEHt2H]UHHd$H}uUHEHUu H]UHHd$H}HHt>HEHEHHEHHEHHxH}tH}HEHH}!H]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuRHzdHcHUuTHEHUH}1H}:HE@yHEH}tH}tH}HEHHEHtlHhH(ŅHcHcH u#H}tHuH}HEHP`L跈H Ht薋qHEH]UHHd$H}HuHH}HUHH(HEHHMHUHHHHHEHHUHPtHEHx`Hu>EEMHEHEHEHEHEHHUHHEHEHEHEHEE\EEE\EEHUHEHHEHHEHt.HEHHUHuHEHEHhxpuH}HEHH}|H]UHHd$H}HuH}薮3HEH!HEHx`HuDEMHEHEHEHEHEHt2HEHHUHuHEHEHhxpHEtXHEHHUHHEHEHEHEHEE\EEE\EEHEHEHEHEHEHEHEHHEHEMHEHHH}H]UHHd$H}HuH}HEHǀH}HEHH}ͬH]UHHd$H}HuHH}HUHH(HEHt)HUHEHH}HEHH}aH]UHHd$H}HuHEHHEHHEHsHEHHEHcEHcUH)HcUHcMH)HHcUHcMH)HcMHcuH)HHHEH=}HEHUM9$HEHHEHHuHEHEHǀH}HEHH}CH]UHHd$H]LeH}HuHEHǀHEǀHEǀHEHx`?ÃEEHEH@`HHu-xHH=3cdHEH@`HHuwHEx`H}ILI$HEH@`HHELHEHHUH}tTHUHEHHEǀHEHx`Hu?EMHUHEHHEH ;]H]LeH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHu~H]HcHUuIHEHUH}1HEƀ%HEH}tH}tH}HEHHEHtlHhH(p~H\HcH u#H}tHuH}HEHP`lbH HtAHEH]UHHd$H}HuH~HEHUHHHEHhH}1[H}tH}tH}HEHPpH]UHHd$H}H$t!HEHx`@07H+H88mHEHfhH}HEHǀH]UHHd$H}HuHH}HUHHH]UHHd$H}HuH}H}=H]UHHd$H}HuHH}HUHHH]UHH$PH}HuHEHDžhHUHxd|HZHcHpHEHǀHuH}HEH(HEHuH}oHEHUHH;u0HEHU;uHEHU ;gHEHu H}諪HUHEHHHUHEHUHE HhH>HhH}NHEHx`HuHEH@`HHEHEHtHEHHUHuHEHE$HEHx`HuHEH@`HXHEH@`H@HEHx`sHEH@`CH7+HǀHuH+H80HEHu&1ҾH=*H*HUHH}HEH@`HEHHU1HEHHH HXH`HXHEH`HEHEHt7EU)ЉEЋEU)ЉEHEHHMHUHuHEUuH}қHEHHMHuHUHEHH8 |HhH}HpHt}H]UHH$`H}HuHEHUHuxHWHcHU?HEH@%HEH@HEH@HH={b]t:HEH@HEH@HE11HuHuH}ZyHEH@HH=2b\HHpHDžh HEH@EHDžxHhH5'H}HuH}HEH@Ht1HEH@HHMHEHPHEHpHEH@zH}HEHt@|H]UHHd$H}HuH}VH}H]UHHd$H}@uHE$:Et HEU$H]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuvHTHcHUupHEHUH}1HHEǀH=ZHߡZ8HUHHEH}tH}tH}HEHZyHEHtlHhH( vH1THcH u#H}tHuH}HEHP`yzxH Ht{{HEH]UHHd$H}HuH~HEHUHHHEHv`H}1H}tH}tH}HEHPpH]UHHd$H}HEHUHu uH1SHcHUuiHEHxtHEHxH}Z0HEHx`tHEH@`HH}Y 1H}YHuH}HEH0wH}oYHEHt1yH]UHHd$H}HuHWYHUHu5tH]RHcHUuRHEHtHEHHUHuHEHEHtHEHHuHEvH}XHEHttxH]UHHd$H}HEHUHuysHQHcHUuiHEHxtHEHxH}tX0HEHx`tHEH@`HH}OX 1H}BXHuH}HEH8(vH}WHEHtwH]UHHd$H}HuHWHUHurHPHcHUvH}toH}tDu\H}@HEHHuH}HEH0H}@0HEHHEHx`HuHEH@`H CuH}VHEHtvH]UHHd$H}HuHUHVHUHuqHOHcHUuRHUHuH}譙HEHHuH}HuH}HEH0H}@0HEHtH}>VHEHtvH]UHHd$H}HEHUHu qH1OHcHUzHEHxtHEHxH}V0HEHx`tHEH@`HH}U 1H}UHuH}HEH8H}HEHsH}ZUHEHtuH]UHHd$H}HuHEHHuHEHHH]UHH$H}HuHUH}uHEHUHRhHEH}HUHuoHMHcHUuoHEHUH}1HI'HpH['HxHpH}7HEH}tH}tH}HEHkrHEHtlHXHoHBMHcHxu#H}tHuH}HEHP`rs rHxHtttHEH]UHH$`H`H}HuHSHUHu{nHLHcHUhHEHuHEH@XEHEHHuH}觚HEHEHx`-HEHEt tHE}HEHx`UHu'HE|HH!Ƌ|HcH HH!кH!H H}HHE|HH!Ƌ|HcH HH!кH!H H}ٺHH}HEHHHEHE}HEHx`UHuHE|HcH!HH!H ƸH!H}HHE|HcH!HH!H ƸH!H} HH}HEHHHEHu'HEHPpuH}HEHpHuH}'oH}PHEHtpH`H]UHHd$H}HuHPHUHukHIHcHUu*HEHtHEHǀHuH}nH}JPHEHt pH]UHHd$H}HuHUH3PHUHukH9IHcHUuHEHtHUHuH} nH}OHEHtoH]UHHd$H}HuHH}HUHHH]UHHd$H}HuHEHx1OHuH}HEHH]UHH$pH}HuHEHUHxjH7HHcHpHEHxtHEHxH}O0HEHx`tHEH@`HH}N H}1NHEHHEHEEH}EHEHǀHuH}HEH(}t1HEHH;Eu HE;EuHEHEHHEHEHUHH}tHuH}HEH8HUHEHHEHtnHMHEHHHH}tDH}t=H}@HEHHuH}HEH0H}@0HEHkH}7MHpHtlH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHugH FHcHUuiHEHUH}1H'HxHxH}1hHEƀHEH}tH}tH}HEHjHEHtlH`H @gHhEHcHxu#H}tHuH}HEHP`HcHUuIHEHUH}1؄HEƀHEH}tH}tH}HEHcHEHtlHhH(P`Hx>HcH u#H}tHuH}HEHP`LcdBcH Ht!feHEH]UHHd$H}HuHEH@`HPt6HEH@`HPHu5AtH}HEHH}H]UHH$pH}HuH:cHEHz:cHEH} tHEH@`HPuHEHǀ\HEH@`HUHPHHEHHUHu^H=HcHxHEHx`@0;HEHEH@`HHEHHMHU@EtuH}H@ HEHEHHEHHMHuHEaH}~JHxHtbJHEHt}H5w[HH=-c'}H5[HH=&c}H5[HH=/c|H5[HH=2c|H5[HH=X4c|H5D[HH=Ic|?H]UHH=u6cGH]UHH$ H}HuH]HDž H}tHEHUHRhHEH}tTHUHuw[H9HcHUHEHpH0@[Hh9HcH("H}HHH=.#HUHBhHH=M.EHUHHH='SHUHBHHEH@HHUHHEH@HƀHH=SmHUHBPHEH@PHUHHH=t`c?9HUHHE@ HEHxH5'5ʅHEHx(H5'!ʅHEHxHH H HEHx0H5'˅HEƀHEƀHEƀHEƀHEHxpHɅHEHxxHɅHEHH5'ɅHEHHkɅHEHHTɅHEǀHEƀHEƀHEƀHEƀHEƀHEƀ/\H ȅH(Ht]HEH}uH}uH}HEH[HEHpHpH0XH6HcH(u%H}uHuH}HEHP`[]}[H(Ht\^7^HEH]UHHd$H}HuH裋H}HEHUHHHEHxP DHEHxHCHEHCHEHCHEHxhCH}HCH}uH}uH}HEHPpH]UHHd$H}@uHUHߊHEHx8uHEHx@HMUHuHEP8H]UHH$pH}H葊HEHEHDžxHUHuVH4HcHUmHEHxhHEH@hHH}Hƅ@HEP HEHxHHuHEH@HHxH}tFHEHtH@H1HE@ t-ttHuH}HH]؅HEHx`HuŅHEHxhHuHEH@hHPHUH}@HEHHEH@HpuWH}uIHx-ŅHuHu'HxƅHxHuH؅HtH}=EHUEBXkXHxąH}ąH}ąHEHtYEH]UHHd$H}HuH耈HEHUHuTH2HcHUuxHEHxHvH}-ąHuH~'H}ŅHuHEHxHHEH@HH HUH}@HEHH}HEHEfWH}ÅHEHtXEH]UHH$ H}uH莇HEHEHUH`SH1HcHXXEHEHxxtEHEHxH5}'ӅHtHEHxH5|'҅HtHEHpH}PÅHHEH@H@H`}'HHHEH@HPH@H}HƅEtItn3QHUHHEHHEffEHH[cHEH[cHEf[cfE"H[cHEH[cHEf[cfEH[cHEH[cHEf[cfEH[cHEH[cHEf[cfEH[cHEH[cHEf[cfEH[cHEH[cHEf[cfEgH[cHEH[cHEf[cfEDH[cHEH[cHEf[cfE!HZcHEHZcHEfZcfEE@EȊD̄tY,tw,,,,,,J,`,,!,HEHP(H}H5{'HEHP0H}H5{'HEHPpH}H5{'}HEHH}H5z'~XHEHH}H5z'Y3HUH}H5z';HGz'H HEH@(H(Hz'H0HEH8H H}HtÅHUH}H5z'Hy'H HEHH(H2z'H0HEH8H H}H…FHxy'H HEH@(H(Hy'H0HEH8Hx'H@HEHHHH H}H…Hy'H HEH@(H(Hdy'H0HEHH8HDy'H@HEHHH H}H…[Hx'H HEH@0H(Hx'H0HEHH8H H}HHuH}HEHEHcMH ףp= ףHHHH?HʉU}u }uNHcUHcEHqHqD̉EȋE=|-tt EPH}ټH}мHXHtQEH]UHHd$H}H觀HEHxHHEH@HHHEHpHEHxHHw'貈HEH@HptdHEHxxt+HEHPHEHpHEHxHHEH@HH,HEHHEHpxHEHxHHEH@HHHEH@HptHEu HEHxHHEH@HpEEH]UHHd$H]H}HEHEƀH}HEHtHUHEHEƀH}HEHHcH ףp= ףHHHH?HʉU}uă}u!HEuHEtH}H5Xv'HEHHcH ףp= ףHHHH?HHt?HEHxHnHUHEH@HpHEt E~HEH}HEHtXHEuH}H5u'HEHHEuGH]H}H5u'HEHHcH ףp= ףHHHH?HHHEtH}H5u'HEHH}H5u'HEHH}H5u'HEHH}H5u'HEHH}H5u'HEH=^tDH}H5u'HEH=^t#H}H5ju'HEHHEƀEEH]H]UHHd$H}H|HEH5\u'HUHHHcH ףp= ףHHHH?HHEHEHxHHEH@HHEH]UHH$@H@H}HuH}\H|HEHDžHHDžhHUHxJHHr&HcHpHuHhlHhH}HuH(K̅EHuH)3̅E}t }tLHuH=q'OEHMHtHIHcEH)qyHcUHqyHuH}Ʌ9HcMHcEH)qryHqgyHcUHqXyHuH}ɅE@EE}t0HuHs'HhhPHhHEHhHEHHPHvs'HXHuHDs'HHPHHH`HPHEHHW}}LHuHr'HhOHhTyHcHiqSxEHc]HuHr'HhOHhyHcHqxEHcEH`HHHHH`qHHHh蝿HhԅHhHEH裵HHH"HhH} H}HpHt#JH@H]UHH$`H}HuH}HxHEHEHDžhHDžpHUHuDH#HcHx3HuH}Hsq'9HuHq'Hh8HhHpiHpH}脴HuHtHvH}HwͅH}HWHEHtH@}uEEE@EEHEHcUD0 rr9HEHcUtHh0HhHUH}ع}~HEHHu跳HEHpHEH蟳FHhHpH} H}H}HxHtHH]UHH$`H}HvHEHDžhHDžpHEHUHuBH!!HcHUEHEu HEƀHEuHEH@HuH}H5o'菲H}H5o'}HEH@HuHEt}H}ܱHUH5lo'H}cHuH}HEHHcH ףp= ףHHHH?HHtHEHp`H}HEHxHEH@Hu^H}H5o'HEHHcH ףp= ףHHHH?HHuYHEHp`H}HEHHEHxPHEH@PHHEHpHEHxPH8l' }HEHHEHHEHxPHEH@PHHEH@PpEHEHxPHEH@PHHEuH}H5!n'謰H}H5k'蚰HEHxHHuHEH@HHHuHEHxPHUH|HEH@Ppu0HEHxP'@軣HEHxPHEH@PHHEHxPHEHxPHuHEH@PHHuHEH䯅HEHHEHxPHu(HuHEH贯HEHxPHEH@PH|HH|HHc|!kH|H},H}ͅHuHEH8HEH@Hu HEtHEHKuH}H5k'ꮅH}H5k'خHal'HHHEHPHhl'HXHEHH`HHl'HhHEHHpH(l'HxHHH}HHuH}HEHHcH ףp= ףHHHH?HHE}tHEHHuHEHH}H Nj'Hgj'BHk'HPHEHXH"j'H`HEHxPHEH@PHHcHH?HHHHHHHpHHHhHpHpHp˅HpHhHi'HpHEHxPHEH@PHHcHHHHhHHhHHhbhHhHhjHhʅHhHxHPH}HHuH}HEHHcH ףp= ףHHHH?HHEK?Hh蟫Hp蓫H}芫H}聫HEHt@EH]UHHd$H}HWoHEu EEHEp HEHxPHEH@PHuhHEHxPHEH@PHEHEH@PtHEHxPHEH@PHHEHxPuHEH@PHE}ueHEuVHEH@HHHEH@PHHEH@PHHHEHxP3HEH@PpEEH]UHHd$H}HuHxnEHUHu]:HHcHUH}HEHtHEP HEHxPHuHEH@PHHEHxPHEH@PHH}HEHEHcMH ףp= ףHHHH?HHEHEĊEH]UHHd$H}HuHlEHUHu*9HRHcHUH}HEHtHEHxPHuHEH@PH8HEH@PpEHEHxPHEH@PHH}HEHE}u-HcMH ףp= ףHHHH?HHtEE;HEHxPHEH@PHHEHtHtHcHUu_H}芓HUH5T'H}HuH}HEHHcH ףp= ףHHHH?HHE&H}&HEHtH(EH]UHHd$H}HuHWHEHEHUHu>#HfHcHUH}HH}H5\S'HEHHcH ףp= ףHHHH?HHtIHEHp`H}H4S'HEH0H!S'H}HuH}GHuH}莒%H}H}HEHt)'H]UHHd$H}HUHEHxHH5R'HEH@HH HEH@Pƀ\H]UHHd$H}HUHEHxHH5R'HEH@HH H}HEH(H]UHHd$H}HuHCUHEHpHEHx莑HUHE@BHUHE@BHUHEH@HBHUHEH@ HB HEHp(HEHx(=HEHp0HEHx0(H]UHH$ H}HuHTH}tHEHUHRhHEH}tHUHu HHcHUOHEH}HS HH=u^.HUHBHH=zn.HUHBHH=_n.jHUHBHH=Dn.OHUHB HEHxH5P'HEH@HPHEHxH5Q'HEH@HPHEHxH58Q'HEH@HPHEHxH5XQ'HEH@HPHEHxH5xQ'HEH@HPHEHxH5Q'HEH@HPHEHxH5Q'HEH@HPHEHxH5Q'HEH@HPHEHxH5Q'HEH@HPHEHxH5Q'HEH@HPHEHxH5R'HEH@HPHEHxH5 R'HEH@HPHEHxH58R'HEH@HPHEHxH5PR'HEH@HPHEHxH5`R'HEH@HPHEHxH5pR'HEH@HPHEHxH5R'HEH@HPHEHxH5R'HEH@HPHEHxH5R'HEH@HPHEHxH5R'HEH@HPHEHxH5R'HEH@HPHEHxH5S'HEH@HPHEHxH50S'HEH@HPHEHxH5HS'HEH@HPHEHxH5`S'HEH@HPHEHxH5S'HEH@HPHEHxH5S'HEH@HPHEHxH5S'HEH@HPHEHxH5T'HEH@HPHEHxH5`T'HEH@HPHEHxH5T'HEH@HPHEHxH5T'HEH@HPHEHxH5T'HEH@HPHEHxH50U'HEH@HPHEHxH5PU'HEH@HPHEHxH5pU'HEH@HPHEHxH5U'HEH@HPHEH}uH}uH}HEHHEHpHpH02HZHcH(u%H}uHuH}HEHP`,"H(Ht! HEH]UHHd$H}HuHSNH}HEHUHHH}HEHHEHxHEHxHEHxHEHx H}H1H}uH}uH}HEHPpH]UHHd$H]LeH}H MHEHx⑖HcHqK}ME@EEHEHxuHuHEHxuIL;]~HEHxHEH@HHEHxHEH@HHEHx HEH@ HH]LeH]UHHd$H}HLHEHxEEH]UHHd$H}uHdLHEHEHUHH;EHEHxuHEHEH]UHHd$H]H}HuH(KHEHUHHH}HEHHcHq*J}kE@EEHH=!cHEuH}HEHHH}HEHHEHxHu/;]~HEHpHEHxHEH@HHEHpHEHxHEH@HHEHp HEHx HEH@ HH]H]UHHd$H}HJHEHx(HHEHx0HHEHx8H놅HEHx@H׆HEHxHHÆHEHxPH识HEHxXH蛆HEHx`H臆HEHxhHsHEHxpH_HEHxxHKHEHH4HEHHHEHHHEHHHEHH؅HEHHH]UHH$PH}HuHUHMH}[H}RH}IH IHEHDžXHUHhBHjHcH` H}HEHEH}t H}t EEEE fDHUHcEԀ|*u$HcEHUHtHRH9 Em HUHcEԊDEHcUHEHtH@H9A HEHcU؊DEȊEEHcUHEHtH@H9~HcEHq5>EHEHx0Hu!|HcUHuH$HXQHXHEHx({HcEH$q=EFHcEHq=EHUHcEtHX酅HXHEHx8{HuH}{EEHcEHqe=EHcEHqS=EԊEЈEHcUHEHtH@H9`YHXzH}zH}zH}zH}zH`HtEH]UHH$pH}Ha>HEHUHu HHcHUREHEHx@uLHEHpHH?趎HHEHpHH*萎HHEHxHu&HEHpHH;]H~HEHx@tHEHxHtHEHufHEHHtH@H uoEfDEEHEHHcUDHC's2} }HEHxPuLHEHpPH}HuHEHxP9yHEHxPHuHEHwHEH:E}| };HEHuUHEHH}HuHEHwHEH`:E}| };HEHuHEHH}qHuHEHwHEHHtH@}?EUUHUHHcUT0 rs;E~HEH@(HtH@H$tmEEEHcUHq8Hkq}8Hqr8HEHp(HH}誈HuEHAtH|Bv} }HEHx`uHEHx`E}tHEHxhuHEHphH 0'Hr@'H} HuHEHxhuHEHphH:H%HEHxhBH+@'f/ztN_HEHphH}HuHEHxhhuHEHxhF8E}t}l| }4HEHxpuHEHppH}JHuHEHxptHEHxp7E}tHEH@pHtH@Ht }l }4|e\HEH@pHtH@Ht}}}c~5/HEH@pHtH@Ht}d}}n~EiH}sHEHtEH]UHH$ H H}HuH7HEHDžPHDžXHDž`HUHpHHcHhOHEHp8H}}sH}tH}H5>'dsHuH`H`H}DsH]HEHH`YH`H}虂HCHEHx@u/HEHp@H='H`H`HEHxrHEHxHus,t,tHE@HE@HMHtHIHqo-HuHHh}HhH.HUHBeHMHtHIHq#-HuHHh\}Hh-*H(6'^H%6'XHE@ HuH}H7''H}HEHxuHEЀxu:HEHxH5''zHtHEHxH55'yHtHEHxt H}y:HEHx(Hu6jHEHx0H55'"jHEHxHuvE8HhiH}iH}ziH}qiHpHtEH]UHH$PHXL`H}H3-HEHDžhHDžpHUHucHׄHcHxkE;DHc]HEHxHEH@HHcHq +H9tH}Hh,HcUHq*HEHxHuHEH@HEEHEHxUHpHEH@HHpH}HEHuEEHEHxHEH@HHcHqC*}EfEEHEHxUHpHEH@HLpHEHxUHhHEH@HHhHUH}HEHLE܃}H}HEHuHH=b@HEHuH}HEHHEHxUHhHEH@HHhHEHx(0gHEHxUHhHEH@HHhHEHx0fHExuEHEHxH5n#'YvHtHEHxH5#2'>vHt H}HEHxHusE ;]~W}tCHEHxUHhHEH@HHhHEHx HEH@ HPHcEHq-(E} HcUHq(HcEHq(EHEHxHEH@H;E Hh]eHpQeH}HeHxHtgHXL`H]UHH$PHXL`H}HuHUHMLELMH(EHH=bXHIHUHpHEӄHcHhH}uHuI|$(dHuI|$0dHuI|$dHuI|$dLI$taHuI$dAƄ$HuLI$@ELI$ LHhHtHt HDžhϊEHXL`H]UHH$PHXL`H}HuHUHMLELMH'EHH=bHIHUHpHфHcHhH}uHuI|$(|cHuI|$0ncHuI|$`cHuI|$RcLI$taHuI$,cAƄ$HuLI$HELI$ +L#߅HhHtHtHDžhϊEHXL`H]UHH$H}HuHUHMLELMHh&HEHDžHDžHDžHUHP?HgЄHcHHEHH=[b.HEHH=DbHEH0HHЄHcHvH}u"HEHx(HuaHEHx0HuaH} u"HEHx(Hu |aHEHx0Hu(kaHEHxHuZaHEHxHuIaHEHxHu8aHEHxHu'aH}HEHtH}HEHtH}H54'HEHHcH ףp= ףHHHH?HHuHEHp`H}HEHHEHH}H 'H'oH8'HHEHH'HHEH##HcHH?HHHHHHHHHHiH%~HHH 'HHEH"HcHHHHHHHHHHiH}HHHH}HbHuH}HEHHcH ףp= ףHHHH?HHuHD^HUH5'H_HH}HEHEHcMH ףp= ףHHHH?HHu4H]HUH5'HY_HH}HEHEHcMH ףp= ףHHHH?HHuHE@ IH}HEHEHcMH ףp= ףHHHH?HHuzHE@ IH}HEHEHcMH ףp= ףHHHH?HHu2EvH}mمH}dمHHtHtHDž;H\H\Hw\H}n\HHHtEH]UHHd$HcHEH cHEH2 cHEHcHEH,cHEHuغH=('NH]UHH$ H}HuH}cHUHu1HYʄHcHUHEH@P`EHpH0HʄHcH(uHEH@Pƀ`HuH}oHEH@PU숐`H(HtXHEHxPHEH@PH@t HEHxP~H}蠶HEHtH]UHHd$H}HGP@PuHEHxP HEHxX֚H]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuHȄHcHUuFHEH}1謪HUHEHBPHEH}tH}tH}HEHHEHtlHhH(3H[ȄHcH u#H}tHuH}HEHP`/%H HtHEH]UHHd$H}HuH~HEHUHHH}1HEHxXՅH}tH}tH}HEHPpH]UHHd$H}uHEHxPuH]UHH$HLH}HuUHEHEHDž0HDž@HDžhHUHxHƄHcHpHEHxPuHEH@PHHH}1XHEH@P8v,HhHHhHEH0H}1tYH{+IE|JE@EHCHcUHhHxHhHEH0H}1YD;eHEH@P<v-CHhH4HhHEH0H}1XH{$蒷IE|IEEHC$HcUHhHHhHEH0H}1XD;eH}H5#'AWH}Hs4WHuغ"qkH~DHuAH "'H#'HhzHhH}VH}H5"'VHuغ|kH~H}H5"'VC<= uH5"'H@V3HEHXHu6HE;]H}HEHEE쐃mHEHXu!4HEHHHEH@HHHHH˺u躺t0t6H54ZH}H}sHEHXuP6}NQ҅H HsHH΅H!HcHu*H}tH53ZH}lH}хyӅхHHtԅԅH}uHuH}HEHt H}裗H}HEH@t H}c~хH}HEHHEHt҅HH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuͅHHcHUusHEHUH}1HUH=XbHUHhH}@LH}HEH}tH}tH}HEHwЅHEHtlHhH(&ͅHNHcH u#H}tHuH}HEHP`"ЅхЅH Ht҅҅HEH]UHHd$H]LeH}uHExh~oH_1ZHEaEuH}HEHIHUE숂aLHLHEHXu`3uH}HEaEuH}HEHHHEU숐aHUHEuHEf/zsHEf/zw HE8u@HEf/CzsHEf/Czw HE<u ƂƂHE(tILeHCHEE蚶Et H'EA$ \HE HEƀHEƀHEƀH/ZHEaEuH}HEHIHUE舂aLHSLHEHXu1uH}\H}@H]LeH]UHHd$H}HuH~HEHUHHHEHXt H}HEHh/H}1ąH}tH}tH}HEHPpH]UHHd$H]H},HH5.ZHH]HE8v/HE8HHEH5{/HMHEHxÚHE<v/HE<HHEH5{/HMHEHx$臚HEH]H]UHHd$H}uUHE芀aEuH}HEHHMUaP;UuUUUPuH}譎EH}A>EH]UHHd$H}HuHEHhH;Et#HEHhHuHEHhHH]UHHd$H]H}uHUHE芀aEuH}HEHHHUEaHuH{GHuEE%HuH{7uH}čEH}X=EH]H]UHHd$H]LeH}uHE8;EHUE8HE8HHEH~HE1EH}HEHÃ|gEDEHcEHEL%uy/HEaE܋uH}HEHHMU܈aHxHML*;]H}\lH}SHEHxHEH]LeLmH]UHHd$H}HGpvGHEH@Hd1+HcHUHRpH9H&EHEHPHEH@`f/hzwHEH@HhHE_HEH@H!H*H&^HEHPHEH@`\hYHEH@XhMEH]UHHd$H}HGH!H*Hm&^HEHPHEH@P\XYHEH@XXMEH]UHHd$H}HGH%H]UHHd$H}HEEEH]UHHd$H}HǀtH}GH}H]UHHd$H}uHE@;EtHEU@H}H]UHHd$H}@uHED:EtHEUDH}JH]UHHd$H}@uHEE:EtHEUEH} H]UHHd$H}uHEH;Et)HUEHHEHuH}H]UHHd$H}uHE8;EtHEU8H}{H]UHHd$H}EHEPf/EztHEHUHPH}1H]UHHd$H}EHEXf/EztHEHUHXH}H]UHHd$H}uHE<;EtHEU<H}H]UHHd$H}EHE`f/Ezt!HEHUH`H}aEH}XH]UHHd$H}EHEhf/EztHEHUHhH}H]UHHd$H}@uHEp:EtHEUpH}H]UHHd$H}H}5/H]UHHd$H}H]UHHd$H}uHEH@HEHpt'HEHxHEH@UHuHEpHEH@H]UHHd$H}H]UHHd$H}CH}H]UHHd$H}HuHUHUHpHEHxHEHEH;EuHEH;Eu0u,HUHEHpHEHxH}`CH}WH]UHHd$H}uHE;EtHEUH}CH}H]UHHd$H}uHE8;EtbHUE8HE8HHEH~HE1HEH5rO/HEH\HMQnH}BH}H]UHHd$H}uHE<;EtbHUE<HE<HHEH~HE1HEH5N/HEHdHMmH}AH}H]UHHd$H]H}ubEHE@H}iEHEHPHEH@HtH@H;EEHEH5 ZHMHEHxmHE@HE@HUHF&HHB HEH5M/HMHEHx/HxH}]HEH[\HÃ|/HEHHu\.HDžxH5>/HEHHx\掅H5=/H}FHEHtXH`H]UHHd$H}uHEH@HhHEHEH@HHcEHDHEEH]UHHd$H}HHt$HEHHEHHEEEH]UHHd$H}uHEHu HEZHEH`HEHEX;Et=HEDt HEHuuH} uH}H}.HEH]UHHd$H}DEEH]UHHd$H}H]UHHd$H}uHUHMH}EHcEHHEЃ}È}t?HEЉEHE@È}t1E܋U)HEHE@È}t1EEHUH}HEHHcHHEHEHcHEH}1H;E~HEHUH}HEHHcHHEHEHcHEH}1H;E~HEHUH]UHHd$H}uHE@;EtHEU@H}1 H]UHHd$H}uHED;EtHEUDH}1H]UHHd$H}uHEH;EtHEUHH}1H]UHHd$H}HuHH;EuHEHEHH;EtrHEHtHEHHx`HEH`HUHEHHEHtHEHHx`HEHH};H]UHHd$H}@uHE:EtHEUH}1H]UHHd$H}HuHEHHuHtHEHHuH}H]UHHd$H}uH}Hp&H=Y{HH5H蝈H]UHHd$H}uH}wHP&H=sqHHttctHEHpH}0HEHu1HEHPH=bNYHEHEHHuDHEHxHu=0qH}݄H}~݄HhHtrH]UHH$H}HuHEHDžHUHumHKHcHxOH=yb,XHEH`H PmHxKHcHBH}H[HH}݄HEHtH@H ~NHEH@HHDž HM1H&H=4bcHH5HnHEHxHu܄H}H[HH}܄H}[HUBH}HZHH}T܄H}H5A&HuHUHE@B2H}H5<&Hu HE@'H}䛘HUBH}H]ZHH}ۄH}H5«&MHtNHEH@HHDž HM1Hլ&H=baHH5HzmH}HYHH}ZۄH}eHUBH}HYHH}*ۄHEHtH@H~NHEH@HHDž HM1Hd&H=HbaHH5HlHEHx HuڄH}HYHH}ڄH}1mkHUB(H}@ vHUB,H}HXHH}SڄH}@uHUB0H}HXHHEHx8ڄHEHx8H5&HuHEHx81لmHHt\HHiHGHcHuH}TlbnlHHtooHEHpH}VHEHu.HEHPH=ibMHEHEHxxHu?+HEHxHu^$YlH؄H}؄HxHtmH]UHH$H}HuHEHUHuhHFHcHxNH=bWSHEHEHHuEEH`H dhHFHcHyHuH}VHEHtH@H ~JHEHHDž HM1H˩&H=_b2^HH5HiHEHxHuׄHuH}2VHEHtH@H ~JHEHHDž HM1H&H=b]HH5HeiHEHxHuTׄHEHpH}0HukHEH@HHDž HEH@HHDž HAHd&H=Pb#]HH5HhiHHtfHHfHDHcHuHEHuOi5kiHHtlZliH}ՄHxHtjH]UHHd$H]H}EHEHHUH==b8HHoHUHueHDHcHUu)DH7HEH@@EH8uhHHP`HEHt=jEH]H]UHHd$H]H}EHEHPxHUH=8b"HHjHUHueHECHcHUu$Hp"HEH@@EH#uhHHP`HEHtiEH]H]UHHd$H}H@H]UHHd$H}H=-H$HEHUHuYdHBHcHUu#HuH}GH}HEHENgH}EPHEHthEH]UHH$pHpH}HuUHEHUHucHAHcHxH}HEHHEH@gX|^EEHEHuI7HpH}LӄHuH}HEH}HuH}HEHP;]}vHEH@gX|`EfEHEHu=HpH}҄HuH}HEH}HuH}HEHP;]eH}҄HxHt:gHpH]UHHd$H}HuUHuH}HEEH]UHH$`H`H}HuHUMDEHEHUHpaH@HcHhu+H]HKфIDEMHUHuH}@HEdH}фHhHt=fHEH`H]UHH$HH}HuHUMDELMLHHDž8HUHX aH4?HcHPHEHEȋE;EHuH}вHEHuJHEHHHDž@ H@M1HW&H=bVHH5H|bHEHpMHUH}HEHuJHEHHHDž@ H@M1H&H=bcVHH5Hb}t7}t1EHEHp(01H8TH8H}τ&H]HXτI؋MHUHuH}EHEpDEMUH}tSHEHEЀxp}DEMHUHuH}@HH}TQtvHuH8qH8H HDž HEH0HDž( HAH%&H=Yb,UHH5H`bH8Y΄HPHtxcHEHH]UHHd$H}HuHUHMHEHuH}HHEHUHuH}H]UHHd$H}EHuHUHEEH}HEHuEH}EH]UHHd$H}HuHUHE@H̿EHuEH}UEH]UHHd$H}EHuHEH}HvE@ H]UHH$`H`H}EHuHEHUHu6]H^;HcHxu&H]H̄HHuEH}?E%`H}|̄HxHtaEH`H]UHHd$H]LeH}EHuHUHHE%EH]H̄IE9pHHUH}L6HoEHc}EKEH]LeH]UHHd$H]H}HuHUHMHHH]H}˄IHUHuH}E1qHEH]H]UHH$pHpH}HuHUHEHUHu[H9HcHxu$H]HʄHHUHuH}1HEx^H}ʄHxHt_HEHpH]UHHd$H}EHuEP%EEnHHUH}.HFnEHc}EÝEH]UHHd$H}HuHUHHuH}A1HPH]UHH$PHXH}EHuHUHEHUHxZHG8HcHpu*H]HɄHHUHuEH}DE ]H}aɄHpHt^EHXH]UHHd$H]H}EHuHUHMHHE:mHEHUHuH}HEH]HȄHHUHuH}HEHlEH]H]UHHd$H}HuHEHEHUHuXH7HcHUuRHuH}ȄHEHtH@H~HuH}nHuH}ȄHMH5ֱbH}[H}DŽH}DŽHEHt]H]UHHd$H}HuH H=-H3^HEHUHuWH%6HcHUu HuH}[H}CHEHt\H]UHH$HH}HuHUHMHEHDžHUHpeWH5HcHhz1ҾH=E-8jHEHPHWHD5HcHH}HHH}HEH4ƄH_ƄHUHu1HDŽH H=i-\HEHHVH4HcHu1H}HEHHHuH}QH}H5& wdYH}[BHHtZH;] H}1HEHHuH}YH}BHHtZXHPńH}GńHhHtfZHH]UHHd$H}HuHH=x-HhhHEHUHuRUHz3HcHUu HuH}"]XH}TAHEHtYH]UHH$pHxH}HuHHUHHHH}HEHH)É]Hc}?HEHu.H_V/HPH=7Q.IHH5HVHUHuvTH2HcHUu HuUH}MUHuH}3nWH}腚HEHtXHxH]UHH$H}HuUHEHUHpSH2HcHhHPHSH1HcHHEHEHEHx`1yÄHEHxh1jÄECfDEEEfDHMHcUHcEHЀ< tHMHcUHcEHЀ< HcuH}1ӄH}ՄHHEHcUH<HcU'MHU؋uH}EEEHUHcEԀ< uEEE;E}"HEHcUԀ< tHUHcEԀ< uăEE;E4}~GEHcuH}1҄H}jԄHHUHcEH<HcU'MHU؋uH}oE}H HcHUuIHEH}1\HUEB(HEH}tH}tH}HEHAHEHtlHhH(a>HHcH u#H}tHuH}HEHP`]ABSAH Ht2D DHEH]UHHd$H}HuHuH}`H]UHHd$H}HuHUHuH}~dHEH]UHHd$H}HH=|bHH]UHHd$H}HuE fDEHE@;E~HEHPHcEHH;EuHE@;EuEEH]UHHd$H}uHUEH}.gHUHH]UHHd$H]H}HuFgX|-EEEH}HH};]H]H]UHHd$H}HuH}_HuH}yH]UHHd$H}HuHH}HE| uH}_EH]UHHd$H}HuHEHUHP HUH5H}kH]UHHd$H}HpHEHx@\HH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuB;HjHcHUuQHEH}1%HEHUHPHE@HEH}tH}tH}HEH >HEHtlHhH(:HHcH u#H}tHuH}HEHP`=??=H Ht@d@HEH]UHHd$H}H@HEH@HU@;BEEH]UHHd$H}HuHUHEHHH]UHHd$H}HuHEx(t HEH8%H]UHHd$H}uH}3ZHH]UHHd$H}HHH]UHHd$H}HuHUHH0HEH8HEP H]UHHd$H}uHUHUuH}YH]UHHd$H}.dHH]UHHd$H}HuHuH}2dH]UHHd$H}NbHH]UHHd$H}HuHuH}2bH]UHH$ H}HuUH}uHEHUHRhHEH}HUHu8H;HcHUuIHEH}1UHUEB(HEH}tH}tH}HEH:HEHtlHhH(7HHcH u#H}tHuH}HEHP`:<:H Htb===HEH]UHHd$H}HuHuH}ZH]UHHd$H}HuHUHuH}]HEH]UHHd$H}HH=̂bHH]UHHd$H}HuE fDEHE@;E~HEHPHcEHH;EuHE@;EuEEH]UHHd$H}uHUEH}^`HUHH]UHHd$H]H}HuFgX|-EEEH}HH};]H]H]UHHd$H}HuH}&YHuH}yH]UHHd$H}HuHH}HE| uH} YEH]UHHd$H}HuHEHUHP HUH5H}eH]UHHd$H}HpHEHxpUHH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHur4HHcHUuQHEH}1 HEHUHPHE@HEH}tH}tH}HEH97HEHtlHhH(3HHcH u#H}tHuH}HEHP`6o86H Ht99HEH]UHHd$H}H@HEH@HU@;BEEH]UHHd$H}HuHUHEHHH]UHHd$H}HuHEx(t HEH8H]UHHd$H}uH}cSHH]UHHd$H}HHH]UHHd$H}HuHUHH0HEH8HEP H]UHHd$H}uHUHUuH} SH]UHHd$H}^]HH]UHHd$H}HuHuH}b]H]UHHd$H}~[HH]UHHd$H}HuHuH}b[H]UHH$ H}HuUH}uHEHUHRhHEH}HUHuC1HkHcHUuIHEH}1(OHUEB(HEH}tH}tH}HEH4HEHtlHhH(0HHcH u#H}tHuH}HEHP`3H53H Ht6m6HEH]UHHd$H}HuHuH}2SH]UHHd$H}HuHUHuH}VHEH]UHHd$H}HH=bHH]UHHd$H}HuE fDEHE@;E~HEHPHcEHH;EuHE@;EuEEH]UHHd$H}uHUEH}YHUHH]UHHd$H]H}HuFgX|-EEEH}HH};]H]H]UHHd$H}HuH}VRHuH}yH]UHHd$H}HuHH}HE| uH}=REH]UHHd$H}HuHEHUHP HUH5H}O^H]UHHd$H}HpHEHxNHH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHu-H HcHUuQHEH}1<HEHUHPHE@HEH}tH}tH}HEHi0HEHtlHhH(-H@ HcH u#H}tHuH}HEHP`01 0H Ht22HEH]UHHd$H}H@HEH@HU@;BEEH]UHHd$H}HuHUHEHHH]UHHd$H}HuHEx(t HEH8IH]UHHd$H}uH}LHH]UHHd$H}HHH]UHHd$H}HuHUHH0HEH8HEP H]UHHd$H}uHUHUuH}IHEH]UHHd$H}HH=wbHH]UHHd$H}HuE fDEHE@;E~HEHPHcEHH;EuHE@;EuEEH]UHHd$H}uHUEH}KHUHH]UHHd$H]H}HuFgX|-EEEH}HH};]H]H]UHHd$H}HuH}DHuH}yH]UHHd$H}HuHH}HE| uH}DEH]UHHd$H}HuHEHUHP HUH5H}PH]UHHd$H}HuHHtH@H~H}HuQH}H5de&?H]UHHd$H}uHE@EfEHH%HH EHH%HH HH!HH!HUHEHp H}T#HE@,EHEH]UHHd$H}HuH}Hd&H]UHH$@H}HuHUHEHEHDž@HDžHHDžPHDžXHDž`HDžhHUHuHHcHxHEx'uH}H5"d&轎mHEHU@;BuH}H5 d&蛎KHE@tHtHHctJH}1Ht+H}01讬H}1CHEx,u HEx(tMHEp,H}?&HEx(t3HEx(1Hh8HhHuH}1H{c&HHEHHEH@HHEHHE@tH`HHct3I1H`H`>01H`辫H`HHEHHEHHEHHHb&H HEH(HEpHXBHXH0HEH8HEH@ H@HEHHHEHtH@H~HuHP譌H5a&HP蘌HPHPHEHXHEp0HH$HHH`HEHhHEH@8HXHtH@H~HXH@#H5:a&H@H@HpHH}1ɺ詏H@hHH\HPPHXDH`8Hh,H}#H}HxHt9 H]UHH$ H}HuHUH}uHEHUHRhHEH}HUHu"HJHcHUu[HEHEHxHuH=abHUHBHEH}tH}tH}HEHHEHtlHhH(HHcH u#H}tHuH}HEHP`H Ht_ : HEH]UHHd$H}HuH~HEHUHHHEHx H}tH}tH}HEHPpH]UHHd$H}HuH}H^&H]UHH$@H}HuHUHEHEHEHDžHHDžPHDžXHDžhHUHx/HWHcHpmH}1 HEH@HtH@H~HEHpH}㈄HEx tHEp H} H}1輈HEfx4'H}1衈HEx8u HEx0tMHEp8H} HEx0t3HEx01Hh薒HhHuH}1pHE@4dHdHHcdCH}1HdёH}01THEx6u HEx7uHEHtH@HHEH0HEH8HEp6HXHXH@HEHHHE@7dHPHHcd C1HPHP01HP蕥HPHPHEHXHEH`H0H}1ɺ躊H\&HHEHHEH@HHEHHEpHPHPHHEH HEHtH@H~HuHXyH5[&HXdHXH(HEH0HEH@(HHtH@H~HHHH52[&HHHHH8HEH@HEHHHH}1ɺ 苉HEH0Hh:HhH}訅HH'HPHXHhH}H}H}脄HpHtH]UHHd$H}HuHHp4HEHx4 H]UHHd$H}H5H}H]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuHHcHUu[HEHEHxHufH=dbHUHBHEH}tH}tH}HEHOHEHtlHhH(H&HcH u#H}tHuH}HEHP`H HtHEH]UHHd$H}HuH~HEHUHHHEHxyH}tH}tH}HEHPpH]UHH$H}HuHUHMDEH}uHEHUHRhHEH}HUHxHHcHpuQHEHUHEHBHUHEHBHU؋EBHEH}tH}tH}HEHHpHtlHXHWHHcHu#H}tHuH}HEHP`SIHHt(HEH]UHHd$H}HuHHpHEHxK H]UHHd$H}H5H}sH]UHHd$H}HuHEx tHEx  DHE@HEHU@;B.HEHPHEHc@| tHEHPHEHc@| tHE@EfDHE@HEHU@;BHEHPHEHc@| HEHPHEHc@| toHEHPHEHc@HMD:AuHE@HE@EHE@HEHU@;BHEHPHEHc@HMD:AuHEHcHHcEH)HEHpHcUH}wH]UHH$H}HuHUMH}uHEHUHRhHEH}HUHuHHcHxuiHEHEHxHuHE@HUHEHtH@BHUEBHEH}tH}tH}HEH{HxHtlH`H 'HOHcHu#H}tHuH}HEHP`#HHtHEH]U]UHH5EhbH=gb95H]UHHd$H}HuHH}HEEH]UHHd$H}HuHH}HEEH]UHHd$H}HuHH}HEEH]UHHd$H}HuHH}H`EEH]UHHd$H}HuHH}H0EEH]UHHd$H}HuHH}HEEH]UHHd$}uUMDE؋EEEEtRE؅tt u&EEEUԋEEEzEqE؅ftuEԋU)+EELEԋU)ЉE?=E7E؅tt+uEԋU)ЉEUԋEЉE EE}tPEEHEE؉EHEHMAHS&H=dbHH5H-EH]UHHd$H}uUMDEHEHEЋ}DE؋MUuyEH}HEH]UHH$pH}HuHUMHDžpHUHu HHcHxH}Huq{HEH0HMAHS&HpMHpH}={HEH0/wE܅z}u2HcMHHEH0HpFHpH}zBHEHHtHIHcEH)HcEHPHEH0HpHpH}z Hp!zHxHt@H]UHHd$H}ntaEEHEEEHEEEHEHMAHQ&H=xbbKHH5H H]UHHd$H}Ef}.u} u}v }sEEH]UHHd$H}f}.}E6f}.~E(} sE} vE}wEEEH]UHHd$H}Hx|HExQvHEHcHHW)QΠEHH H?HʉUHEx}HEHc@HQHH}m}t(HEH8u HUHHcEHiQHU)BH]UHHd$H}HuHUHMEEHcMH|jYHHH H?HHEHEi)EHcMHHHHH?HHEHEk<)EHEU܈H]UHHd$H}HuHH}HPt HEHEHEHEHEH]UHHd$H}HuHH}H@t HEHEHEHEHEH]UHHd$H}HufEf;E~ EfEf;E} EpE:Ev E\E:Es EKE:Ev E:E:Es E)E;E~ EE;E} EEEH]UHH$pH}uHDžxHUHuHHcHU}|#} UHtbHtH}UvHcEHpHpHHp11HpHx01HxaHxHEHE HMM1HM&H=<^bHH5uHHxrFH}H5K&,r4H}H5/K&r"H}H5EK&rH}H5SK&qH]UHHd$H}HEHUHuH߃HcHU'H}H5'K&"Hu EH}H5&K&Hu EH}H5%K&Hu EH}H5$K&迀Hu EH}H5#K&螀Hu EH}H5"K&}Hu EdH}H5$K&_Hu EFH}XpHU1H5K&H}qHUH= YbHH5HH} pHEHt/EH]UHHd$}t t tEwEs EuE?EH]UHHd$@}HuEE HUHHuHP݊HPH5D&*xHuUHMHtHIHHuHPzHPEHEH8HNju9 HUH*HD&H=Pb(HH5H&QHPgH}gH}gH}gHXHtH]UHHd$H}uH}uH]UHH$`H}uUHDžpHUHu}HՃHcHx[UIЉUHcMH|jYHHH H?HʉUi)EHcMHHHHH?HʉUk<)E܃}}H}H5yC&f H}1f} }HEH0H}1HmC&gHcEHhHhHHhF"1HhHpQp01HpфHpHEH0H}1gHEH0H}1H C&og} }HEH0H}1HB&PgHcEHhHpHHh!1HpHpo01Hp1HpHEH0H}1f}t }HEH0H}1H\B&f} }HEH0H}1HB&fHcEHhHpHHh 1HpHpo01Hp聃HpHEH0H}18f3HpdHxHtH]UHHd$H}EHEHtH@H~CHE0 sE.HE8-u%HEHtH@H~HE@0 EEH]UHH$pH}@uHEHDžHUHh4H\҃HcH`GHEHtH@Hu*H@&H=]LbHH5HHE8-u,EHMHtHIHHuH}غuEHuH}cEHEHtH@|(EDEHMHcU|:uE;EEEEHHH'HOуHcHOEttH}"EHUع:H=EJbHEHHHЃHcHu>H}HHR"EH}HH3"E{H}rބHHtHUع:H=IbHEHHHЃHcHu]H}H@H!EH}H!H!EH}HHf!EH}݄HHt$*Hs>&H=Ib:HH5H8EiEk<EĉE}M}|}~HẺHDžHM1H6>&H=BIbHH5H}|};~HEȉHDžHM1H">&H=HbHH5Ho}|};~HEĉHDžHM1H>&H=HbmHH5H}_~HE쉅HDžHM1H=&H=IHbHH5HUE‰EHHH=-HHHHuH̓HcHujHEHxHDžp HH@HHDž HpAHp=&H=tGbGHH5H HHtHR^H}I^H`HthEH]UHHd$H}uH}E;Es EU)ЉE#E;EvEU)к)‰UE}tuH}}HEHEHEHEH]UHHd$H}uH}E;EsEU)к)‰UE;Ev EU)ЉEE}tHcuHH}HEHEHEHEH]UHHd$H}HuHEHUHuH}HEEHEEEHEEEHEEEHEEEHEEEHEHUH}H5;&5H]UHHd$H}uHEHEEEH}yHEH]UHHd$H}uH}7EEE}&HEEEHEH]UHHd$H}fEfu}wEHc}E.EH]UHHd$H]E9fEE[EEEEiE%k<E%؉EHEH]H]UHHd$Љ}uUMfEfE؊EEڊEEۋEEHEH]UHHd$H}EH)H*HHH?HʉUE+EEEk UЃEHcEHiHHHgfffffffHHH?HEHHcUHimH HcEHH?HHHH4HcMH ףp= ףHHHH?HH)HcMH ףp= ףHHHH?HHH--}H]UHHd$}HcEHHe/Hbȼk9HHH?HHkHH?HHHHcEHyHH&EgEHcEHHHH?HHHUgEHcEHHHHgfffffffHHH?HHBEHcMH555HHH?HHBH HHBEEH)H*HHH?HHHcuHhBmHHH H?HHlHfEEHEH]U]UHH5WbH=NWbH]UHHd$H}HgHE@pt EHEHQEEH]UHHd$H]LeLmH}HuH(H})LeLmMtI]HكLH}LH}H}HH>H>H}>H}>HPHtӄHH]UHHd$H}HuHtHEHxhHuHEH@hHH]UHHd$H}HuHtHEHxxHuHEH@xHH]UHHd$H}HuHt#HEHHuHEHHH]UHH=5JbH CbH_$&H5Bb*H]UHHd$H}HH5@bHFHEHH]UHHd$H}H]UHHd$H}HuHEH@`HHu=HEHx`HuH]UHHd$H}uHEH@`UH]UHHd$H}uHEH@`UH]UHHd$H}HuHEH@`HxxHEH@`H@xHHEH@`HxxHuHEH@`H@xHPH]UHHd$H}HuHEH@`HHuHEH@`HH@H]UHHd$H}u~*HEH@`HuHEH@`HHHH]UHHd$H}HuHEHx`Hu~H]UHHd$H}HuHtHEHx`HuHEH@`HH]UHHd$H}uHEH@`UH]UHHd$H}HuHEH@`HHug;H]UHHd$H}HuHEH@`HHu7;H]UHHd$H}HuHEH@`HHu;H]UHHd$H}HuHEH@`HHu:H]UHHd$H}HuHEH@`HxpHu:H]UHHd$H}HuHEHEHUHumʄH蕨HcHUH}9HuH}VHuH}3:H5t &H}IHuHEH@`ǀH5h &H}wIHuHEH@`ǀH5\ &H}KIHuHEH@`ǀdH5S &H}"IHuHEH@`ǀ;H5R &H}HHuHEH@`ǀHEH@`ǀȳH}8H}8HEHẗ́H]UHHd$H}@uHEH@`UH]UHH$HH}HuHUH}uHEHUHRhHEH}HUHxȄHHcHpHEHUH}1 1ҾH=a:bHZ:bHUHB`HEHX`@HH5"&H8H57&H{xHCxHPH5O&H{xHCxHPH5o&H{xHCxHPǃ@ǃH٤ HHHHǃH5L&Hx7H5Y&He7H5n&HR7H5&H?7ǃHEH@`HppHqH8BHEHtdH=5@̣HEHEH@`HppH}٣H}nУHH{hHChHH}HEH@`HEH}tH}tH}HEHɄHpHtlHXH]ƄH腤HcHu#H}tHuH}HEHP`YɄʄOɄHHt.̄ ̄HEHH]UHHd$H}HuH~HEHUHHHEHx`ɰH}1H}tH}tH}HEHPpH]UHHd$H&HEHMHAqH8M1H !&H5U&HEHcXHEH@HxGpH9HEH@HPHEHc@<tEE}LEH]H]UHHd$H}HH=dHH]UHHd$H]LeH{t%1ҾH=d裔HH5H衡CH]LeH]SATH$HI{uHsLm0{HH˃L1HL01-H$A\[UHH$pHxLeHAHEHUHu鞄H}HcHUH{zD;cttHCHx8uH{HHCHuQHHuHEHEHE HMHGeHPM1H=ld蟔HH5HMxH} HEHtHxLeH]UHHd$H]HHEHUHuH|HcHU{H{ttHCHx8uH{HHCHuQHHuHEHEHE HMH^eHPM1H=d趓HH5Hd菠H} HEHtH]H]HHpSATHd$HAHH߾HCDcHd$A\[SATHd$HIHD$`HHt$跜HzHcHT$Xu4H1yHqCLH|$`譶Ht$`H{o 蚟H|$` HD$XHtHd$hA\[H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0HzHcHT$puiHD$HD$Hx1 HD$@HD$@HD$H@HD$H|$tH<$tH|$HD$H袞HD$pHtpHT$xH$QHyyHcH$u&H<$tHt$H|$HD$HP`Iԟ?H$HtHD$H$H$H|$Ht$$H|$uHD$HT$HRhHD$H|$HT$ Ht$8莚HxHcHT$xuNHD$H|$1%4$H|$8HD$H|$tH|$tH|$HD$HWHD$xHtH$H$H'xHcH$u'H|$tHt$H|$HD$HP`聞위H$Htʟ襟HD$H$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8=HewHcHT$xuOHD$H|$1H4$H|$&HD$H|$tH|$tH|$HD$HHD$xHtH$H$識HvHcH$u'H|$tHt$H|$HD$HP`褛/蚛H$HtxSHD$H$SATHd$HIAt$HHHAD$Ctu*AD$CH{1It$H{CHd$A\[SATAUHd$HIHD$`HHt$襗HuHcHT$XuOAD$;CAuACtt&3LHt$`H|$`HsHALi;CAmH|$`HD$XHt䛄DHd$pA]A\[SHH{0u,HmAHL e1ҾH= eXHC0HC0[Hd$HWHd$SH@HH@W[SHHx0uX Hx0H@0HÉ[UHHd$H]LeHfAH{8tMHHHEHEHMHdHPM1H=dFHH5HfDcH]LeH]Hd$HHHHd$HHp8H~@H$(H|$H4$HuHD$HT$HRhHD$H|$pHT$Ht$0TH|sHcHT$pHD$HD$f@HD$@ HD$@HD$@HD$f@HD$@HD$@ HD$@$HD$@(HD$H@0HD$H@8HD$H@@HD$H|$tH<$tH|$HD$H袗HD$pHtpHT$xH$QHyrHcH$u&H<$tHt$H|$HD$HP`IԘ?H$HtHD$H$SATHd$HIM~ HHH{0t H{0HtMt HHPpHd$A\[SATHd$HpIHeHLWHd$A\[SHHHAHHX[Hd$HHd$HG@SATAUAVHd$HAD:c(tWDc(EuNHAAE|*ADADHHDE9H{8t H{8}Hd$A^A]A\[SATAUHcAAE|'AADH!HHE9A]A\[Hd$HH=duH=B,|HvdHd$Hd$HH=pduH=,|HVdHd$SATAUAVAWIHtLAGAE|=L IfDM$LׄMMuA9A_A^A]A\[Hd$HH5dHyH=d]|Hd$Hd$HH5dHIH=d-|Hd$UHH$@H@LHLPLXL`HpIHUHHEHUHu豐HnHcHUHEHpFLIHhHuH}HuH}YHd@ÅA@ADH=dIL1H} H}HuHg@I$I$HELH}HEHAHhLIEH}zM$MuDH=dII$I$HE`D9HEHEHDžx HxHdHp1H}חHUH=dHH5H(H}H}vHEHt蘓HEH@LHLPLXL`H]UHHd$H]LeLmLuL}HHEI0ILIEIHd@ÅHEDHEuH=dHEofDHEHHEHHELH}HEHALLIEEuZH}xHEHHEHEHuE9cH$dHPH=ldoHH5HmHEH]LeLmLuL}H]SHd$H|$H4$H9HT$ Ht$8%HMkHcHT$x}H<$Ã|kD$D$D$H<$HD$Ht:HD$Hx@tHD$Hp@H|$01T$Ht$H|$;\$軏H<$HD$xHt3H$[UHH$PHXL`LhLpLxIHuHHEHUHuH0jHcHUM1LHuH}iHuH}H5d@AE|JfH=dIL1H}^H}Hu Hu M$VA9HEHEHE HUHdHp1H}ӗHUH=dHH5HGH}H}HEHt跏LHXL`LhLpLxH]UHH$0H0L8L@LHLPIIHXAHDž`HDžhHUHuWHhHcHUcLIEHLIEHAMLHIHLLH=_ e2e LIEHHhH;HhHxHDžp LIEHH`HH`HEHE AEEHEHpHrdHPAH=\dHH5SH5I~LI~LIFHI}8tI}8DዕXL LLIEAv(L-H`\HhPHEHtrH0L8L@LHLPH]SATHd$HIH{LHLI$@s(LHd$A\[Hd$HLUHd$Hd$HUHd$H@,@0SHk,{,u HC@;C0u H{ H{[Hd$01Hd$SATAUHILI$HH{HCHAI|$8t I|$8L<LI$HD$LH01uDA]A\[SATAUHH{/SHAAE|(ADAH{D@HsE9H{A]A\[SHH{8t H{8q[UHH$0H8L@LHLPLXIHIfAHDž`HDžhHUHuMHH1HHA]A\[UHH$@H@LHLPLXHIHDž`HDžhHUHuH"^HcHUMH{LAALI$IHhLHhHxHDžp LI$IH`LH`HEHE AD$EHEHpHdHPAH=*d]uHH5RH {,~H{D1 H{D C0H`dHhXHEHtzH@LHLPLXH]SATHd$HA{,~H{D1 H{DC0Hd$A\[SATAUHIքt H LHLI$ILI$HAL$H{LJA]A\[Hd$H|$H4$HD$H8H4$1HD$HT$Ht$0}H[HcHT$puHT$H4$H|$1輀H|$iHD$pHt3Hd$xSATAUHIIHH'LHLIEHA]A\[H$H|$H4$HHD$HT$ Ht$8|H[HcHT$xH4$H|$DHD$Hx8tHD$Hx8gH$ H=],谂HT$HB8HD$Hp8HD$H8HT$\HD$H$H$M|HuZHcH$uHD$Hp8HT$H|$IH|$?hHD$x(uHD$Hx8gH$Ht褀HgH|$]HD$xHt~H$H$(H|$H4$HT$H<$aHT$Ht$0}{HYHcHT$pHD$Hx8tHD$Hx8[fH$ H=,QHT$HB8HT$xH${H9YHcH$uHD$Hp8HT$H|$ ~HD$x(uHD$Hx8eH$Htr}H5HD$pHtVH$SATAUAVAWHd$IH$HH<$/HD$hHT$Ht$ BzHjXHcHT$`H4$H|$h謔Ht$hHIIdžLH$fIAGÅ|aA@ADLޔIL1H|$hwH|$hH4$Hu fMIuMD9LL|H|$hHHD$`Ht~Hd$pA_A^A]A\[SATAUHAAE|'AADHHHE9A]A\[SATAUHIIHHLLH5dH2A]A\[SATAUHIIHHwLLH5dHA]A\[SATAUHIIHHLHLIEA]A\[H$H|$H4$HHD$HT$ Ht$8wHVHcHT$xH4$H|$DHD$H8Ht$RHHD$H$H$wHUHcH$uHT$H4$H|$[zH|$|cH$Ht{ezHH|$HD$xHt{H$H$H|$H4$HT$H<$HT$ Ht$8vHTHcHT$xH$ H=h,|HD$H$H$|vHTHcH$uHT$Ht$H|$|yH|$rbH$Htz[yHHD$xHtzH$H$(H|$H4$HuHD$HT$HRhHD$H|$}HT$Ht$0uHSHcHT$pHD$H=,B`HT$HBH=UdHNdHT$HBH=sdHT$HBH=YdHT$HB HD$H@8HD$@(HD$@,HD$@0HD$H|$tH<$tH|$HD$HwHD$pHtpHT$xH$tHRHcH$u&H<$tHt$H|$HD$HP`w'ywH$HtpzKzHD$H$SATHd$HIM~ HHHIH{0`H{'`H{`H{ `HtMt HHPpHd$A\[HV HVHV$SATHd$HHIH{0t H{0_Lc0Hd$A\[Hd$HHHHHHHd$Hd$HHHHd$HFHHHGHHGPH$H|$Ht$H$HL$H|$uHD$HT$HRhHD$H|$HT$(Ht$@HrHpPHcH$HD$ H|$1HD$HH=+dHT$HBHHD$HxHH4$H=dHT$HBPHD$HxPHt$vHD$HpHH|$HD$HpPH|$HD$ H|$tH|$tH|$HD$HtH$HtH$H$4qH\OHcH$u'H|$tHt$ H|$HD$HP`+tu!tH$HtvvHD$H$SATHd$HIM~ HHH{P\H{H\H1HtMt HHPpHd$A\[HFHd$Hd$Hd$Hd$Hd$汄Hd$Hd$ֱHd$Hd$HñHd$H$H|$Ht$H$HL$H|$uHD$HT$HRhHD$H|$HT$(Ht$@oHMHcH$u:HD$ 3HD$ H|$tH|$tH|$HD$HrrH$HtH$H$oH?MHcH$u'H|$tHt$ H|$HD$HP`rsrH$HtttHD$H$Hd$HSHd$Hd$H3Hd$Hd$HHd$Hd$HHd$Hd$֯Hd$H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0mHKHcHT$pu9HD$bHD$H|$tH<$tH|$HD$HpHD$pHtpHT$xH$QmHyKHcH$u&H<$tHt$H|$HD$HP`Ipq?pH$HtsrHD$H$Hd$H蓮Hd$Hd$HsHd$Hd$HSHd$H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$04lH\JHcHT$pu9HD$ҭHD$H|$tH<$tH|$HD$HoHD$pHtpHT$xH$kHIHcH$u&H<$tHt$H|$HD$HP`nDpnH$HtqhqHD$H$Hd$H=TdH=HdHd$Hd$HHHHHd$SATAUHd$HIAHD$`HHt$jHHHcHT$Xu1HDHt$`HHHT$`LmH|$`كHD$XHtoHd$pA]A\[SATAUHd$HIAHD$`HHt$"jHJHHcHT$Xu1HDHt$`HHHT$`L]mH|$`^كHD$XHtnHd$pA]A\[UHH$pHpLxLHIH[HDžHHUiH}GHcHHH<AAuQHHHDžHHdHPM1H=Id$_HH5HjHDHHHHLkH؃HHt;mHpLxLH]SATH$HAHbZHDŽ$`H$H$hHDFHcH$Xu4H1H$`H$`HDHH jH$`O׃H$XHtmlH$hA\[UHH$pHpLxLHIHHYLHqYHDžHH.gHVEHcHHHAAuQHHHDžHHedHPM1H="d\HH5HhH1HfHHDHH iHՃHHtkHpLxLH]0>u21 0 rr s|ٰSATAUAVAWHd$IHt$pHD$hHD$`HHt$eHCHcHT$XIIHAE|aAfDAHt$p1H|$`+߃H\$`IDHt$hIHH|$hHHuE E9A@hH|$hԃH|$`ԃHD$XHtiDH$A_A^A]A\[UHH$H}HuHUH}uHEHUHRhHEH}HUHudHBHcHUHEH=g,r$HUHH=K,V$HUHHuH}uNHEHxHDžpHpHfdHPM1H=KdZHH5HeHEHxHUUHEH}tH}tH}HEHfHEHtlHXHicHAHcHxu#H}tHuH}HEHP`efg[fHxHt:iiHEH]SATHd$HIM~ HHHOHNHtMt HHPpHd$A\[UHH$pHpLxLmHIIHEHUHu_bH@HcHULHMtALeHEHMHdHPM1H=^dIXHH5HcL1H}ۃHuHHHPL1H}ۃHuHHHPdH}'уHEHtIfHpLxLmH]SHHHHHHH[SATHd$HAHDHHHDHHHd$A\[UHHd$H]LeLmHIHAAuALeHEHMH-dHPM1H=dVHH5HsbDH8H]LeLmH]HG@Hd$HĔHd$Hd$HHxĔHd$H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0_H=HcHT$puNHD$H=,FJHT$HBHD$H|$tH<$tH|$HD$H}bHD$pHtpHT$xH$,_HT=HcH$u&H<$tHt$H|$HD$HP`$bcbH$HtddHD$H$SATHd$HIM~ HHHIH{JHtMt HHPpHd$A\[Hd$HHxŔHd$SATAUHHC@gD`E|$AAH{D”HHJE9H{ĔA]A\[SATHd$HAH{DF”HJH{DĔHd$A\[H$(H|$H4$HuHD$HT$HRhHD$H|$RHT$Ht$0t]H;HcHT$pHD$HD$Hx1ҾFHD$Hx1ҾFHD$@?HD$@HD$@ HD$@$HD$@(HD$H@0HD$H|$tH<$tH|$HD$H_HD$pHtpHT$xH$\H:HcH$u&H<$tHt$H|$HD$HP`_a}_H$Ht[b6bHD$H$HG@Hd$HHx_$Hd$SATAUHd$HAAH{D1HHLH$D(H{H$D5Hd$A]A\[H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0D[Hl9HcHT$puNHD$H=;,EHT$HBHD$H|$tH<$tH|$HD$H ^HD$pHtpHT$xH$ZH8HcH$u&H<$tHt$H|$HD$HP`]?_]H$Ht`c`HD$H$SATHd$HIM~ HHHiH{PFHtMt HHPpHd$A\[SATHd$HAHuH$D H{H4$Hd$A\[SATAUAVHd$HHC@gD`E|(AfAH{D轔IL͟E9H{_Hd$A^A]A\[SATHd$HAH{D覽H莟H{DRHd$A\[HH H !H SATHd$HHHHHAI)AtHDHHHd$A\[SATHd$H$HfHHHHAI)AtH9HDH[RHd$A\[SH'HC`[SHHCX[SHHCh[SHH{XubHHHHuAH=d HCXH=dHC`H=dHChH[SATAUAVH$Hi1HHHHAfD,$HHXH0HHfA)žH=DdHC`H=dzHChE1AfExHHWAfDfA)H|$H5%;Mu4$D)HA'H|$H5%Mu4$D)HAfDfA)AzH$A^A]A\[SHd$HBHH4OHt$HHD$Ht$HHD$HT$,HH H HHD$,H=:d5HCXHT$HPHCXHT$HPHCXT$PHCXT$PHCXT$ P HCXT$$P$HCXT$(P(HCXHT$,HP0Hd$@[SATAUH$HIHeHHIHNHLNHߺHHI|$LGH4H HHL)H$A]A\[SATAUAVH$HAE17fDHH5AE)E4$D)HT$HHAE)EEDH$A^A]A\[SATAUAVAWH$IA1H$E0L8HHIEuHLAf|$uH|$H59%|Jt Lt$HH-LмHH$;MI~h$LL蛼HHL)A)H$E6$H$ A_A^A]A\[SATAUAVAWH$IH$H$PEE1H$H=IdDI`ILxLHHIHLNT$H$LiLL詻HHL)H)$AH$Ht$L$yDH$A_A^A]A\[SATAUHd$HIAHD$HD$pHT$Ht$('RHO0HcHT$huH|$1SEuA$]f$HغHHHKf<$t$4$H|$pRHT$pHt$H|$>LHT$TH|$p;H|$1HD$hHt2VH$A]A\[SATAUHd$HIH8HHIL)f$HLHHHHH#KHLHHHd$A]A\[SH$H迹1HHH詹1HHf$fD$4fD$H|$H%BHiHHJHt$HHHLHH{`~HH{h~HH1H$[SHd$H$fD$fD$HPXHRHT$HPXHRHT$HPXRT$HPXRT$HPXR T$ HPXR$T$$HPXR(T$(HPXHR0HT$,Ht$HHTHD$Ht$HBHD$HD$,HHH H HHD$,H*HH4JIHd$@[SATAUAVH$HHHIf$fD$fD$H|$H%@H踷HHHHt$HHH{`JAAE|&AAH{`D8HH-E9LHH$A^A]A\[SATAUAVAWH$IHLHHH$f$fD$fD$HSH|$@LζHHGHt$LML&ILAE|RAfADLH$1H$DLH$vH$LH3E9H$LH$A_A^A]A\[SATAUAVH$HIIHHHIf$AEfD$fD$LH|$>H譵HHFHt$HHLHHLHH$A^A]A\[SATAUAVH$H9HHIf$fD$fD$H|$H2%0>HHHFHt$H+HSH{hAAE|%AAH{hDH.E9LH>H$A^A]A\[SATH$H4$HWHHIfD$fD$ fD$ H|$H_%M=HHHt$3EHt$HFHnHHHELH{H$A\[SATAUHd$HIH$HT$Ht$(JH(HcHT$hyLHa݃L$$MtMd$A|9E1fAH$IcfDBfD$H+HHt$IDE9fD$HHHt$#D.MHۃHD$hHtNHd$pA]A\[HGHHGP00HH$(H|$H4$HuHD$HT$HRhHD$H|$vHT$Ht$04IH\'HcHT$pHD$H|$1gH=dHT$HBHH=dHT$HBPHD$HpHH|$ֲHD$HpPH|$òHD$H@XHD$H@`HD$H@hHD$H|$tH<$tH|$HD$H|KHD$pHtpHT$xH$+HHS&HcH$u&H<$tHt$H|$HD$HP`#KLKH$HtMMHD$H$H$H|$Ht$H$HL$H|$uHD$HT$HRhHD$H|$HT$(Ht$@hGH%HcH$uJHD$ H|$1HD$HHD$ H|$tH|$tH|$HD$H2JH$HtH$H$FH$HcH$u'H|$tHt$ H|$HD$HP`IYKIH$HtL}LHD$H$SATHd$HIM~ HHH{Hh2H{P_2H{Xt H{XO2H{`t H{`?2H{ht H{h/2H1HtMt HHPpHd$A\[SHHxXt&HHH{X0H{`0H{h0[Hd$HTdH=@d#Hd$HGHHpHGUHHd$H]LeHI1ҾH= x,9HH5HFH]LeH]H$H|$ Ht$H$HL$LD$H|$uHD$ HT$ HRhHD$ H|$ HT$0Ht$HDH"HcH$u]HD$(HD$ H$HPHD$ HT$HPHD$ H@HD$(H|$ tH|$tH|$ HD$ H:GH$HtH$H$CH"HcH$u'H|$tHt$(H|$ HD$ HP`FaHFH$HtIIHD$ H$UHHd$H]LeLmLuHIA1ҾH=@v,+8HH5H)EH]LeLmLuH]SATAUHIt t tMHHN, HCN, LHHHHA]A\[H$H|$ Ht$H$HL$LD$H|$uHD$ HT$ HRhHD$ H|$ (HT$0Ht$HSBH{ HcH$usHD$(LD$HL$H$H|$ 19HD$ HxHD$ H@HHT$ HB HD$(H|$ tH|$tH|$ HD$ HDH$HtH$H$AHHcH$u'H|$tHt$(H|$ HD$ HP`DFDH$HtdG?GHD$ H$SATAUAVHd$HIAILIH[H)D9AO݅}1ۅ}I~IFHILIHIv I~IFHI~LIFHI~IFHI+F IFI~LIFHHd$A^A]A\[H$(H<$HxSH=,*HD$HT$Ht$0@HEHcHT$pH$HxH$H@HHD$H$Hx1H$H@HH$HxH$H@HHH$HpH|$n:Ht$H|$HD$HBHD$pHt^HT$xH$`?HHcH$uH|$o+jBC`BH$Ht>EEH$Hx<+H$HD$HBH$@H$Hd$H@uH[Hd$Hd$HHxH@HHd$Hd$HHxH@HHd$Hd$HHxH@HHd$SATHd$HIHHH{LHCHHd$A\[H$H|$(Ht$ H$HL$LD$LL$H|$ uHD$(HT$(HRhHD$(H|$(vHT$8Ht$P=HHcH$HD$0H<$uHD$(@ HD$(@HD$(@t!uHH=,(HT$(HB,LD$HL$H$H|$HD$(HT$(HBHT$(HD$HBHD$0H|$(tH|$ tH|$(HD$(H@H$HtH$H$fHt$L.4Ht$L4D$:D$D$D$twLLHHLLHHD$Hd$ A_A^A]A\[SATHd$HI{t H{c&MuH=,$HCC CLcHd$A\[Hd$HHxH@HHd$SATAUHIAHZH{LDHCHA]A\[SATAUHIt t t'M"HHN, HHN, LHHHHA]A\[SATAUHd$IIHD$hHD$`HHt$8HHcHT$XyAD$A;EuTAD$tu`LӘLɘ)JLHt$`Ll$`LHt$hH|$hL TAD$t u ;H|$hܧH|$`ҧHD$XHt HtMt HHPpHd$A\[1SATAUHHC@gD`E|$AAH{DHE9HC@gD`E|'A@AH{DؗHE9H{RH{IA]A\[Hd$HAA1HHd$Hd$HHAE0HHd$Hd$HE0A1HHd$Hd$HHE0E0HHd$10H$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0D2HlHcHT$pu@HD$H|$1HD$H|$tH<$tH|$HD$H5HD$pHtpHT$xH$1HHcH$u&H<$tHt$H|$HD$HP`4M64H$Ht7q7HD$H$SATHd$HHBt u HYHYH=Hd+ILH͗LHd$A\[SATAUAVHd$HILI$@t u LkLkLI$HHLHt4$LI5LI$HHپH=dIL4$LLLIHd$A^A]A\[SATAUHd$HACt u LgLgHHLIt4$LjHHHADHd$A]A\[SATAUAVAWHd$IIfADEHD$AGtuHGHD$ HGHD$HLHt$ti4$H|$דEAALLHHHHD$Et3H6AH!IHuHX4$H|$;HD$Hd$ A_A^A]A\[H$H|$Ht$H$HL$H|$uHD$HT$HRhHD$H|$HT$(Ht$@.H HcH$uaHD$ H|$1|HD$Hx0H4$*HT$HD$HBHD$ H|$tH|$tH|$HD$H[1H$HtH$H$.H( HcH$u'H|$tHt$ H|$HD$HP`020H$Ht33HD$H$SATHd$HHBt u HYHYH=dILHLHd$A\[SATAUAVHd$HILI$@t u LkLkLI$HHLHt4$L>I5LI$HHپH=dUIL4$LDLLIHd$A^A]A\[UHHd$H]LeLmLuL}HHuAH>H.ƃIL.HX0HBAAL1HX0HvL1HX0HAlALÅ|0AADLL`0L轋D9u.AD91ҾH=tdl HH5Hj-DH]LeLmLuL}H]SATAUAVAWHd$IIfADEHD$AFtuHGHD$ HGHD$HLHt$ti4$H|$7EAALLHHHHD$Et3HAH{!IHuH4$H|$蛑HD$Hd$ A_A^A]A\[H$H|$Ht$H$HL$H|$uHD$HT$HRhHD$H|$HT$(Ht$@*H0HcH$uaHD$ H|$1HD$Hx0H4$芑HT$HD$HBHD$ H|$tH|$tH|$HD$H,H$HtH$H$`)HHcH$u'H|$tHt$ H|$HD$HP`W,-M,H$Ht+//HD$H$SATHd$HHGt u LcLcI1ɾH=&dyHHLKHHd$A\[UHHd$H]LeLmHIAT$HsHMH/t%1ҾH=Mod(HH5H&*AT$ILH=dIH{Lu藑H]LeLmH]SATAUAVHd$HfAEIEtHv^$HsHAHvt>4$HHHIEt4$HhHH{4$tLHd$A^A]A\[HG8H$H|$ Ht$f$HL$LD$H|$uHD$ HT$ HRhHD$ H|$ $HT$0Ht$H&HHcH$uoHD$(H|$ 1HD$ Hx04$uHT$ HD$HB8HT$ HD$HBHD$(H|$ tH|$tH|$ HD$ Hx)H$HtH$H$&HEHcH$u'H|$tHt$(H|$ HD$ HP`)* )H$Ht++HD$ H$SATHd$HM1H{8uBHCH@Hp0HCHP0H=Hd[HC8H{0莅ƁH{8Lc8LHd$A\[1H1Hd$fHd$Hd$HfHd$Hd$fHd$SATAUAVAWH$HIHD$`HHt$$HHcHT$X3Ƅ$hHH=LdIMAGXL%AA9|nAAfDAALHt$h Ht$h1H|$`ҝH|$`t.ALHt$hHt$h1H|$`訝H|$`E9AGXLh%AA9|`AA@AALHt$h{Ht$h1H|$`JH|$`t"ALHt$hQHT$hALE9Ƅ$hn&H|$`ĒHD$XHt'$hH$pA_A^A]A\[Hd$HH=duH=_, HdHd$SATAUH=dtQHzd@gX|3AADH=ZdII}LhD9H=5d A]A\[SATAUAVAWIOHd@AE|:DH=dII<$L@tMl$A9M1LA_A^A]A\[H$xH|$4$HT$$H=rdHD$HT$ Ht$8!HHcHT$xuHT$Ht$H|$$$H|$ HD$xHt&&H$H$H|$H4$HT$H<$HT$ Ht$8!HEHcHT$xH$H=rd`HD$H$H$ HHcH$uHT$Ht$H|$F#H|$ H$HtE%#HHD$xHt)%H$UHH$`HhLpLxLuHIIHEHUHu H@HcHULHHtQLHuUHEHEHE HMHdHPM1H=wdHH5H!fIƾH=pdBIHL4MnLH=&d"H}㎃HEHt$HhLpLxLuH]SATHd$HIHHuHqdLHHǾHd$A\[Hd$H=dHd$fWX%)SATAUH$HHD$hHHt$HHcHT$XHC`HtH@HHHcC\HD$`H5SdH{`HL$`pH{`IE|"AAHS`IcH<1RE9HHHHtnH̆1HHH{`IE|GAAHHt$p_Ht$pH|$h耰Ht$hHS`IcH<˳E9 H|$hHD$XHt"H$pA]A\[SATAUAVHd$HIH$HT$Ht$(H:HcHT$hHHHt$PfD$t$HNL,$MtMmA|@E1AH蜅HHt$ fD$HȃIcfL$fLPE9LH$芮H HD$hHt!Hd$xA^A]A\[SATAUHd$HIH$HT$Ht$(HuHt$ HHH$HtH$SATHd$HH`lpH8tIL1I$LI$HLHd$A\[HGHHGPH;wPH;wPH$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0D HlHcHT$pHD$H|$1wuHD$H@`HD$H@XH=\dpHT$HBHH=[doHT$HBPHD$HpHH|$tHD$HpPH|$tH=[doHT$HBhH=[doHT$HBpHD$H|$tH<$tH|$HD$H[ HD$pHtpHT$xH$ H2HcH$u&H<$tHt$H|$HD$HP`  H$HtHD$H$H$H|$Ht$H$HL$H|$uHD$HT$HRhHD$H|$HT$(Ht$@H HpHcH$u]HD$ H|$1HD$HHD$HxPHt$pHD$ H|$tH|$tH|$HD$H H$HtH$H$HHcH$u'H|$tHt$ H|$HD$HP` & H$HtoJHD$H$Hd$HdH=d#Hd$H$H<$HHx8)H|$gMHT$ Ht$8HHcHT$x~H<$pHHD$HpHD$f@fD$H$HH$Hx8T$oHD$HT$HD$HHt$H<$qH$Hx`Ht$mX HD$xHtaH$H$H,HcH$uH|$3M  H$Ht H$SATAUHd$I։H`jIfAUAE $D$fD$AED$\$ I}To1HHI}=oHHt$I}"oHHt$l$HL+!I}nHHHHHd$A]A\[SATAUAVAWHd$IHf$fD$IG`f@fD$H1HHILIG`@IG`@AE|#AfADLLE9Hd$A_A^A]A\[SATAUAVHd$HH{`tSHC`@gD`E|9AAH{`DPiIH{8u I} L%KE9H{`kHd$A^A]A\[SATAUAVHd$HH{`t`HC`@gD`E|FAAH{`DhIH{8t IuH{89I}LJE9H{`*kHd$A^A]A\[SH$`H<$HG`@fD$8H$Hxpt$8fH$HPpH$HphH=dHD$H$pH|$_mH$Hx8tH$Hx8Ht$|fD$8H|$IH$Hx`Ht$,jHT$HD$HH<$HHt$HT$fD$fBD$HT$fB HD$f@ HD$f@HT$fD$8fBD$ D$0D$$D$4H<$HHHD$(HT$@Ht$XHHcH$H<$?t$4HHH|$k1HHH|$mk1HHH|$UkHHt$sH|$9kHHt$WH|$kHH<$HƋT$0H=H<$Ht$(HHH$HtD$0HT$D$0BH<$jHHD$HpH$[SH$pH|$4$HD$Hx`4$eHD$HHT$H@8H;B8HD$Hx8uHD$HHx8HD$H0HD$H8HD$HHH8afD$HD$H0HD$Hx8]y\$HD$H8HD$HHH`9HD$H8HD$HHH`fD$HT$fD$fBHD$HxXtH|$HH|$[iHHHD$ HT$(Ht$@FHnނHcH$uJH|$iHc$HHkHrHHHH|$hHHD$HpH|$hHt$ HHH$HtsH$[SATHd$HH`cH8thILI$LI$HHLHd$A\[HGHHGPH;wPH;wPH$(H|$H4$HuHD$HT$HRhHD$H|$HT$Ht$0H܂HcHT$pHD$H|$1hHD$H@`HD$H@X H=OdwcHT$HBHH=eOdXcHT$HBPHD$HpHH|$!pHG>rHU艂H}H5]%iHuHE胠HE胠{H}YH}YHEHtH]UHHd$H]H}HuHUHYHUHuHȂHcHUH}1YV!toH}\HHH~SHEHu H}HEHHEH}HuH= pHS=rHH}1c~H}XHEHtH]H]UHHd$H]H}HuHHEHEgX|SEEHEHHcEHHtHEHHcEHH<HMUH_H}5҃H},҃HxHtH]UHHd$H]H}HuUH}XHHH3 HEHxhHH5X%H;H}uHEHHEHE苀EHEH@hHHEHEEEHEHuH=X%׵EgX|dEfDEHUHcEHHHEHEHUHcEHHDHEHEHuH=kX%^׵;]HH5W%H:HH5iX%H:H]H]UHHd$H]H}HEHEHUHu=He‚HcHUHEHxpHC6rHx6rHH1rHUHBpHEHxpuSH}\SH}HuHU1H5W%H}THUH=,ؘHH5HH}SH}RHEHtH]H]UHH$@H}HEHUHu&HNHcHUHpW%HhHDž` HEH-HXHXHxHDžpHEH-HPHPHEHEH`H}H5 W%+HUH}H5U%JH}QHEHtH]UHHd$H}H kH=+0,6HEHUHuH(HcHUuHuH}HEHH}̓HEHt|HE EEH]UHHd$H}@uHEHUHuuH蝿HcHUHE vHEǀHEǀ H}Hu1HuHHEt HE uHEǀ,HEǀ ,HE }tHEE HE EH}4PHEHtVEH]UHH$pH}HuH4PHDžxHEHUHu?HgHcHU`H}UHuH}@HuH}PHuX@dEHuD*dEuHEHtH@Em}HcMHHuHxaHxH}H}1kHUHRHcEHPHcMHuH}aHuHxHx1&HUHR ^HcMHuH}`aHuHxHx1HUHRHEHPHEH@ HxGNH}>NH}5NHEHtWH]UHH$pHpH}HuH=NHEHDžxHUHuHރHpHcHU!EH}u*HR%H=,ҘHH5H߃Hu1HxZ(HxH}MH}QHHHHEHu H}HEHxhtHEH@hH0H}1X H}1eMHEHP8HuHpHELHEHuHuH5pH}HuH=pHE0rE;HxLH}LH}}LHEHtEHpH]UHHd$H}HuHh/rHm.rHH}1=WH]UHHd$H}HuHUEHEHxhzHEHxxkHEHxxHuHF,rHEHtME5fHEHHcEHiH|Hu|1HuEEHE؋;EEH]UHH$PHXH}HuHUMH}KH}|KHUHhۃH迹HcH`HEHEHxhHEHxxHEHxxHuHuH5pH8+rHEHHEȋgXE@E}t!HEHHcEHiHDHEHEHHcEHiHD*HEHuHuH5^pH}0HuHEHHcEHiHHE ;]p݃H}IH}IH`Ht߃HEHXH]UHH$ H H}uUHDžXHHpڃH(HcHhqH}MHHHHEHxhHEH})H+rHEGHEHH&rIH}LAN%H BN%GH*rHELHH}LN%H -N%HH*rH+rHH0HDž(H?+rHH@HDž8EPHDžHH(H5M%HXW!HXHdTHHdHLH}LNM%H M%EH)rH,rIH}LM%H M%BH)rHUEBHE@ HEHxpHuHkM%HEHtHE؃xv H}H)r ۃHX]GHhHt|܃H H]UHH$PHPH}HDžhHHv׃H螵HcHxHEH}~JHHHuHEHxhfH}H)rHE@ HE@ HEHH$rIH}LK%H K%GH5(rHELHH}LxK%H K%HH(rHEH@hHH`HDžXHX1H5K%HhHhHtERHHtHLH}LJ%H K%EHt'rHEHxpHuHK%HEHtHExvH}Hl'rHE؃Hh1EHxHtPڃHEHPH]UHH$`H`LhH}HDžpHDžxHUHu:ՃHbHcHUudbDEHUHcEHHHEHp1HxOLxHEH01Hp{OHpH}L;]׃HpBDHx6DHEHtXكH`LhH]UHH$PHXH}HuHUHMHDž`HUHp=ԃHeHcHh E H}H}HEHH}*GHHHHEHxhHEHxxHEHEHxxHuHuH5E pH#rHEHgHEЋgXEfEHEHHcEHiHHEȀ8uE؉EHEHp*A1ɺPH`VNH`H}HEHPH}t6HEHpA1ɺ(H`NH`H}HEHP;]X}H}HEH}HEHp*A1ɺ(H`MH`H}HEHE܅}@H}t9HEHp*A1ɺ(H`sMH`H}HEHECՃH`AHhHtփEHXH]UHHd$H]H}HuHUH}1AG H}DHHHHEHxhHEHxxEHEH@xH8HETDHEHHEHt6HuH}HuH=p&HuHEHH}1K#EHEH}tHEH@x0;EH]H]UHH$HH}HuHUHDžHUHxЃH蹮HcHpEH}u*HYF%H=M,HŘHH5HF҃u,HVF%HhHDž` H`1H}XHEHu,HxF%HhHDž` H`1HHHσH㭂HcHhLHuH}1H`!rHEHHE؋@gXEEHE؃x !uwHEHP HcEHdHHHcd1HHH01HU]HH}HEHP;HEHP HcEHHt1HXIHH}HEHP;]7@HVE%HHDž HEHHDžH5уH}HrHhHt҃]уH=HpHt҃HH]UHH$pH}HuUUqH} HEHtHUHx̓H֫HcHpu&HuH}1HWrHEHt HEЋ@ EЃH}HrHpHt҃EH]UHH$@H}HuHUHMH}Hu=H}QHEHHUHx̃HHcHpHuH}1HrHEHtHEHp(H}16GUHC%HHHDž@ HEHXHDžPDžh"HDž`H@jσH}HrHpHtЃH]UHH$pH}HuUUH}0HEHvHUHx˃H橂HcHpu(HuH}1HgrHEHt HEЀx E΃H}H rHpHtЃEH]UHH$H}HEHDž`HDžhHUHu˃H8HcHUHE~*HMB%H=ɹ,ĿHH5H̃H}yFHEH5oB%Hu1H5|B%HuH5B%Hu H}1j:HuHhJOHhHpHuB%Hx1H5B%H`t H`HEHpHEH1ɺ=H}>t&HEHHEH1HWB%:DHEHHEH1HQB%:H}2HpHEH9HEHH=0,ϓHEHpH GɃHoHcHu!HEHH}HEH;̃H}2HHt̓HEH ̃H``8HhT8H}K8HEHtm̓H]UHHd$H}HuHEHUHuuȃH蝦HcHUu@EHuH}CH}uE"H}{7tHEHxHu&8EM˃H}7HEHt̃EH]UHH$H}@uHDžHDž HUHuǃHܥHcHU@uH}CHEHEH}<}HEHHEHHEHHHHpH0 ǃH5HcH(uHEHHEHғʃHEHԓH(Htv˃H}/Hp16}HEHu{H 6H4?%HpHEHHxHD?%HEHp1ɺH 9H H= ,HH5HȃHpH0ŃHHcH(HEHxt$HEHpHEH0ɺ贸}HEHH}EbH 5H}HH1H5t>%H 6H H=-,(HH5H&ǃQȃHEH H(HtɃ+ȃH4H s4HEHtɃH]UHHd$H]UHHd$H]H}HHxxtHEHxxHrHEH@xHEHt"HEH HEH1X4H}HEHx`t@t7H}r7HHHHEHp`HrHEH@hH}@H]H]UHH$pHpH}HuHDžxHUHuÃHࡂHcHUHuH}@HEHx`HrEgXEEHEHEHP`HcEHHHEHthHExt1HEH01Hx=HxH}1HEH-HEH01Hx=HxH}HEHP;]gŃHxF2HEHthǃHpH]UHH$pH}HuHDžpHUHu_ƒH臠HcHxH}HEHHEH1"2HEHxxHEHxxH5,;%HrHEHHEHEHp*A1ɺ(Hp=HpHEH1ELfDHEHpA1ɺ(HpE>H}3HHHH}tIHEHxxt>H}3HHuHHEH}2;EuH}1EH}xHEHxxtMHEHxxHnrHEH@xHEHt"HEHrHEH1/H}u EH}2HHuHHE}4EEHEH}2HHHHEHH`H}HuH=o1HrHEHu\HEHhHDž` H`1H5M8%HpHpH=έ,ɳHH5HHEHUHPhH}HuH=[oHDrHH}149H}HuH=4oHrHUHBxHEHHu_.H}5HEH@xnHp-H}-H}-HxHtƒEHXH]UHHd$H}HEHUHuٽHHcHUHEusH}I4EH}H5&*%H]UHHu+RH8tHh+RH80H=,JdH%JdH@+RHH]UHH%+RH8훃H+RHH]UHHd$H]LeH}H(HExtHEHxtHH=,HUHBHExtHExtH}zP%HE@EOHE@HUBHEHcXHqHH-HH9vHEXHEx|DeA}EfDEEHEXEv;EHqd HHHH!q[EHEXEvEH:d HHHHHHH9v߃HEXuH}1D;e~^HE@HE@H]LeH]UHH$`H`LhLpLxL}H}@uH-HEHUHusH蛋HcHUHEHxukHExHEHcXHq)߃HH-HH9vރHEXHEHU@;B}H}H5-)%H]HtH[HH-HH9vvރAHELpH]HH},HEL`Mt#ރM,$LǝHLDAHE@臯H}HEHtH`LhLpLxL}H]UHHd$H]LeLmH}HuH(߃H})LeLmMtj݃I]HLHEHxu HEHx˗H}H{H}uH}uH}HEHPpH]LeLmH]UHHd$H]H}@uHރHE@U HUBHEHcXHq݃HH-HH9v܃HEXHExt H},H]H]UHHd$H]LeLmLuH}H(7ރHEHHEHx~虭HEHx>臭HELpHHEL`MtۃM,$L舛HLAH]LeLmLuH]UHH$pHpLxLmLuH}HuH}Hn݃HUHu輩H䇂HcHUu>HELxLeHELxMt#ۃI]HǚLLP薬H}HEHtHpLxLmLuH]UHHd$H]LeLmLuH}HuHUH8܃H}tHEHHELuH]LeMtoڃM,$LHLAPH]LeLmLuH]UHHd$H}HuH#܃HEHHuH};H]UHHd$H]LeLmH}H ۃHELHELMtكI$H]LH]LeLmH]UHHd$H]LeLmLuH}HuH0cۃHELH]HELMt=كM,$LᘂHLA`H]LeLmLuH]UHH$`HhLpLxLuH}HuHڃHEHUHu H2HcHUu`H}~HUH5F#%H}LuHELHELMtO؃I]HLLP©H}HEHt;HhLpLxLuH]UHH$ H(H}HكHEHUHuH8HcHU-H}`D3tH}FHcHkHq׃H*`H}NB*`^H-HH-HH9v,׃]H}EHcHkHqR׃H*@H}B*@^H-HH-HH9vփ]EpHDžhEEHDžxHhHH5U!%H}dHuH}HH}DHcHkHqփH*HH}A*H^H-HH-HH9v փ]EEHDžxHxHH5 %H}HuH}H5H}EHcH}:DHcH)qՃHkHqՃH*PH}l@*P^H-HH-HH9vJՃ]H}CHcHkHqpՃH*XH} @*X^H-HH-HH9vԃ]EpHDžhEEHDžxHhHH5%H}HuH}HH}NHEHtpH(H]UHH$PH}@uHփHDžPHDžXHEHUHuMHuHcHU}uHEHxHEHEH}H5%H`EHkH{dH4HXHXHhH%HpH}%@tH}@t HHHk Hd{dH4HP?HPHxH`HH}HuHUH}_HPHXH}HEHtH]UHH$HH}@uH8fԃHDž@HDžHHDžhHUHx萠H~HcHpH} GHcHkHq_҃H*H}<*^H-HH-HH9vу]H}+GHcHkHqуH*H}G=*^H-HH-HH9vuу]H}@HcH} HHcH)qуHkHqуH*H}<*^H-HH-HH9vЃ]H}?HcH}FHcH)qуHkHq уH*H}S<*^H-HH-HH9vЃ]H}%=tH}=t$EEEEEEEEE܉EEE܀}uHEHxHEHEHh Hv%HPEHkHxdH4HHHHHXE艅HDžE䉅HDžE(HDž E܉8HDž0HHH5 %H@I]H`LHELxHELxMtI]H`LHEL A HEL MtʠI]Hn`DLHHEH ̀H}H5:$H}@H}hނHq(H8Hp"HpHEHDžx HxHH5$H}.HUH5$H}߂HuH}XHp݂H}Hu HEHEHDžx HxHH5$H}辶HUH5>$Hp2߂HpH}Hpv݂葍@H}5HUH5$HpނHpH}H}@H}H5$}H}H5$mH}H5$]H}HMH}H5$=H}H5B$-H}HH}H5z$ H}H5$H}H5$H}H5$H}H5$H}H52$H}H5R$H}H5j$H}H5$H}H5$}H}H5$mH}H5$]H}HMH}H5$=H}H5*$-H}H5Z$H}H5$ H}H5$H}H5$H}HH}H5:$H}H5j$H}H5$H}H5$H}H5$H}H5$}H}H5*$mH}H5J$]H}H5r$MH}H5$=H}H5$-H}H5$H}H5"$ H}H5J$H}H5$H}H5$H}H5$H}H5 $H}H5"$H}H5:$H}H5b$H}H5$}H}H5$mH}H5$]H}H5$MH}H5B$=H}H5b$-H}H5$H}H5$ H}H5$H}H5$H}H5B$ݿH}H5j$ͿH}H5$轿H}H5$譿H}H5$蝿H}H5:$荿H}H5j$}H}H5$mH}H5$]H}H5$MH}H5$=H}H5$-H}H5$H}H52$ H}H5Z$H}H5z$H}H5$ݾH}H5$;H}H5$轾H}H52$譾H}H5J$蝾H}H5b$荾H}H5$}H}H5$mH}H5$]H}H5$MH}H52$=H}H5Z$-H}H5J$H}H5r$ H}H5$H}H5$H}H5$ݽH}H5 $ͽH}H5B$载H}H5z$譽H}H5$蝽H}H5r$荽H}H5$}H}H5%mH}H5J%]H}H52$MH}H5Z%=H}H5%-H}H5%H}H5% H}H5%H}H5*%H}H5R%ݼH}H5z%ͼH}H5%轼H}H5%譼H}H5%蝼H}H5*%荼H}H5J%}H}H5b%mH}H5$]H}HMH}H5Z%=H}H5z%-H}H5%H}H5% H}H5%H}H5%H}H5%ݻH}H5R$ͻH}H轻H}H5%譻H}H52%蝻H}H5Z%荻H}H52%}H}H5j%mH}H5r%]H}H5%MH}H5$=H}H-H}H5R%H}H5r% H}H5%H}H5%H}H5%ݺH}H5%ͺH}H5%轺H}H52$譺H}H蝺H}H5%荺H}H5%}H}H5%mH}H5"%]H}H5B%MH}H5r%=H}H5%-H}H5%H}H5% H}H5%H}H52%H}H5b%ݹH}H5%͹H}H5%轹H}H5%譹H}H5%蝹H}H5%荹H}H5$}H}HmH}H5 %]H}H52%MH}H5b%=H}H5%-H}H5$H}H H}H5%H}H5$H}H5%ݸH}H5%͸H}H5$轸H}H5%譸H}H5"$蝸H}H荸H}H5%}H}H5%mH}H]H}H5%MH}H5%=H}H5"%-H}H5B%H}H5b% H}H5%H}H5%H}H5%ݷH}H5%ͷH}H轷H}H5b%護H}H5%蝷H}H5%荷H}H5%}H}H5%mH}H5"%]H}H5J%MH}H5 %=H}H5:%-H}H5%H}H5Z% H}H5"%H}H5B%H}H5j%ݶH}H5*%ͶH}H5R%轶H}H5"%譶H}H5%蝶H}H5:%荶H}H}H}H5z%mH}H5R%]H}H5r%MH}H5*%=H}H5R%-H}H5%H}H5 % H}H5Z%H}HH}H5%ݵH}H5%͵H}H5%轵H}H5B%譵H}H5b%蝵H}H5%荵H}H5J%}H}HmH}H5%]H}H5B%MH}H5b%=H}H5:%-H}H5%H}H5 % H}H5B%H}H5r%H}H5%ݴH}HʹH}H5%轴H}tHEH8uBHEH8$HHPHrHUH`H$HhH,aHp͂H}͂H}͂HEHtcH L(L0L8H]UHH$@HHLPLXL`LhH}H~HEHEHUHu]H;HcHUH}H}HH5$UH}HH5%>H}HH5%'HELxHU$HELxMtΎM&LsNHLA$E}uH}̂HEHxHDžpHpHH5.%H}eHUH5$H}͂L}HELx]HELxMt#M,$LMLLA HEHpH}ԀH}u(HEHpHH}谦HuH}HEHuHEHGHEǀ _H}w˂H}n˂HEHt`HHLPLXL`LhH]UHH$`H}H!HEHEHUHu_[H9HcHUH}H}HH55$H}HH5.%H}ʂHEHpHDžhHEHEHDžxHhHH5H%H}WHUH5$H}˂HuH}HZH}@莹H}@ҷH}H}HH5%"HEǀHEǀ H}]X]H}ɂH}ɂHEHt^H]UHH$HLLLH}uUH_HDžxHUHuYH7HcHU@LuALmMtI]HJDLE`HDžXEpHDžhHXHH5%Hx谡HxH}蠱UuH}aUuH}һEE۽@H@H`HDžXE۽0H0HpHDžhHXHELHH5$Hx퍖HxH}H&HE胈4v[HxǂHEHt\HLLLH]UHH$HLLLH}uUH_HDžxHUHuWH5HcHUH}2LeLmMtI]HHLLuALmMt߈I]HHDLE`HDžXEpHDžhHXHH5%Hx~HxH}nUuH}/UuH}蠹EH}H}ĻH}蛿E۽@H@H`HDžXE۽0H0HpHDžhHXHELHH5G%Hx蛋HxH}HԬLeLmMt萇I]H4GLHE胠4XHxOłHEHtqZHLLLH]UHH$HLLLH}HuUHpHDžHUHp.UHV3HcHh}~ H}tLeLmMt芆I]H.FLLuALmMt[I]HEDLHH=+HEHPHtTH2HcHHEHHEЋUԋuH}0EE۽HHHDžE۽HHHDžHHELHH5$HKHHUH}自Hc]Hq訅HH-HH9vK}EfEEHUHcEHHEЋUԋuH}@EȋUԋuH}謷E۽HHHDžE۽HHHDžHHELHH5($HLHHUH}舩;]~6H} H}ǷH}螻HuH}葪H}HH5w$:UH}>HHt WH}bLeLmMt΃I]HrCLDUHHhHtVHLLLH]UHH$HLLLH}HuUMDEH 'HEHDžPHUH`_QH/HcHXLeLmMtтI]HuBLLuA LmMt袂I]HFBDL}}FH}vH}HHEHHEUċuH}蜳E}uH}H5D$E۽ H H8HDž0E۽HHHHDž@H0HELHH5S$HP蟅HPH}oHc]HqHH-HH9v裁}EfEԃEHUHcEHHEUċuH}蘲EE۽ H H8HDž0E۽HHHHDž@H0HELHH5$HP賄HPHuH}ȹJ;]~@HEHHHDž@ H@HH5}$HPyHPH})}uH}H5v$UH}@H}LeLmMt%I]H?LQHPbH}潂HXHtSHLLLH]UHH$ H}HuHUH虁HDžpHUHuMH,HcHxQUuH}裰EUuH}菰EH}1H}H56$E۽@H@HXHDžPE۽0H0HhHDž`HPHELHH5$Hp葂HpH}aE۽@H@HXHDžPE۽0H0HhHDž`HPHELHH5$HpHpH}E۽@H@HXHDžPE۽0H0HhHDž`HPHELHH55$Hp葁HpH}aE۽@H@HXHDžPE۽0H0HhHDž`HPHELHH5$HpHpH}H}H56$ѢNHpHxHtPH]UHH$HLL L(H}؉uUMDEH~HDžpHUHuJH)HcHxWLeLmMtM|I]H;LLuA LmMt|I]H;DLE8HDž0EHHDž@E艅XHDžPEhHDž`H0HH5I$Hp蕒HpH}腢E`EdE艅hElH`HhH}H}ز@H}賿LeLmMt{I]H:LLHp鸂HxHtNHLL L(H]UHHd$H]LeLmLuH}HuHUH8|LmLeMt{zI$H:LLuLeMtMzM,$L9LAHuHUH}dH}@H}荾LmLeMtyI$H9LH]LeLmLuH]UHH$PHXL`LhLpLxH}HuHUHv{LmLeMtbyI$H9LLu LeMt4yM,$L8LAHEH@pEHUHuYGH%HcHUuYHEH(HEHuL}LuH]LeMtxM,$LM8HLLAJHEHu%HEHtKLmLeMtSxI$H7LHXL`LhLpLxH]UHH$ H L(L0L8H}HuHUHyHEHUHuFH;$HcHU'LeLmMtwI]H,7LLuA LmMtYwI]H6DLEHHDž@EXHDžPEhHDž`ExHDžpH@HH5$H}ӍHuH}ƝHuHUH}H}@GH}LeLmMtvI]H.6LHH}WHEHtyIH L(L0L8H]UHH$pHpLxLLH}ЉuUMDEDMHwHEHDžHHUHXDHD"HcHPdLeLmMtuI]H25LLuA LmMt_uI]H5DLE;E|EEEE;EEEEE;E|EEEE;EEEEEHDžEHDžE艅HDžE HDžE؉0HDž(E@HDž8HHH5n$HHZHHH}JUuH}若EUuH}wEH}H}H5N$iLEHMUuH}H}H5$袙EXEم۽HHHDžE\Eم۽HHHDžE۽HHHDžE۽HH HDžDž0ZHDž(Dž@HDž8HHELHuHHHvHHH}荘EXE@م@۽HHHDžEXE@م@۽HHHDžE۽ H HHDžE۽0H0HHDžDžHDžDžHDžHHELHuHHHuHHH}xE\E@م@۽HHHDžEXE@م@۽HHHDžE۽ H HHDžE۽0H0HHDžDžHDžDžhHDžHHELHuHHHtHHH}cE\E@م@۽HHHDžE\E@م@۽HHHDžE۽ H HHDžE۽0H0HHDžDžHDžDžZHDžHHELHuHHH~sHHH}NH}H5$>H}в@H}LeLmMtSoI]H.L@HHH}HPHt3BHpLxLLH]UHH$HLLLH}HuUMHpHDž`HUHpHLLLH]UHH$0H0L8L@LHH}؉uUMDEHhmHEHDžH`H 9HHcHLeLmMtkI]H*LLuA LmMtjI]H*DLEHDžEHDžE艅HDžEHDžHHH5 $HWHH}GUuH}舛EUuH}tEEEhEXEH$YZEEXEH$YZEE\EH$YZEE\EHf$YZEE\EHH$YH&TZEE\EH $YH&TZEE۽HHhHDž`E۽HHxHDžpE۽HHHDžE۽HHHDžEHDžEHDžHr$HHDž H`HELH}HH5\$7lH}NE۽HHHDžE۽HHHDžHHELHH5Z$HkHH}莍HuH}聍H}ز@SH}認Hc]HHH9ugH*HxH}EYxXE݅۽HHHDžEYEXE݅۽HHHDžHHELHH5O$HjHH}背HuH}vH}ز@HH}LeLmMtfI]H/&L8HUH}LHHtk9H0L8L@LHH]UHH$HLLLH}ЉuUMDEDMHgHEHEHDž(HXH4H)HcHLeLmMtseI]H%LLuA LmMtDeI]H$DLUuH}mxUuH}VpUuH}?ZxEZ|Ep\xZEt\|ZE}}H}H5p$뢂H}H5$٢HcEHcUH)qdH*H$YH&TZEHcUHcEH)qdH*H$YH&TZEE۽HHHDžE۽HHHDžE۽pHpHHDžE۽`H`HHDž*EH#$YX݅X۽@H@HHDž*EH$YX݅X۽0H0HHDžHEHHDž HHELH}HH5$fHc]HHH9ucH*HO$YHuH}HEHxpuCHEHHEH(Bp;uHEH(xXuH}оH}蹕H}萙EYEXE݅۽PHPH8HDž0EYEXE݅۽`H`HHHDž@H0HELHH5$H(\eH(H}H蕆HuH}H聆H}HH5$jH}豥LeLmMtaI]H L2H(瞂H}ޞH}՞HHt3HLLLH]UHH$HLLLH}ЉuUMDEDMHdbHEHEHDžHhH(.H HcH dLeLmMt`I]HLLuA LmMt_I]HxDLEHDžEHDžHcUHcEH)q_HHHHDžHcUHcEH)q_HHHHDžE؉HDžEHDžHHH5+$HuHH}ׅUuH}*EE*EEHcUHcEH)q_H*EHcEHcUH)q^H*E}}H}H5I$ĜH}H5$貜EHֺ&fTEEH&fTEE۽HHHDžE۽HHHDžE۽pHpHHDžE۽`H`HHDž*EH<$YX݅X۽@H@HHDž*EH$YX݅X۽0H0HHDžHEHHDž HHELH}HH5$`Hc]HHH9u,]H*Hh$YHuH}/H}覂EYEXE݅۽PHPH8HDž0EYEXE݅۽`H`HHHDž@H0HELHH5~$H_HH}貁HuH}襁E8HDž0EHHDž@H0HH5$HrHH}LEYEXE݅۽PHPH8HDž0EYEXE݅۽`H`HHHDž@H0HELHH5$H^HH}蘀H}в@jH}EYEXE݅۽PHPH8HDž0EYEXE݅۽`H`HHHDž@H0HELHH5$H]HH}HuH}E8HDž0EHHDž@H0HH53$HpHH}gEYEXE݅۽PHPH8HDž0EYEXE݅۽`H`HHHDž@H0HELHH5$H\HH}~H}в@腡H}\LeLmMtXI]HlL>*H蒖H}艖H}耖H Ht+HLLLH]UHHd$}H8ZEEu EEEu EEEu EEEu EEEH]UHH$HH}uUHMHYHDžXHUHh%HHcH`UuH}览EH}H}HXYHXHEHH}試ƉIHEH0HEH 0PHEHGHEH 8t$H}HI*E\EH}$I*XEEEHEH OuH}覨EċEă vfVEHiИHctH}EH$HHEHEH GOuH$HHEE۽ H H@HDž8E۽HHPHDžHH8HELHH5\$HX`YHXH}HzHEH 7uHHEHHuE۽ H H8HDž0EԉHHDž@H0HELHH5$HXXHXH}HyE۽ H H8HDž0E۽HHHHDž@H0HELHH5ݣ$HX)XHXH}HbyHEH 5uHHEHHu萿}uTH}HH5$yHEHc Hq+THH-HH9vSHE H}&%HXzH`Ht&HH]UHH$@H@LHH}H3UHEHUHuy!HHcHUHEHxHH54$xHEH@H Lc#Iq*SLH-HH9vRD#HEH@HVHE@HEH@H :4*H$^x݅x۽`H`HEHEHUHEH@LHH5$H}UHuHEHxH2w#H}䏂HEHt%H@LHH]UHHd$H]LeLmLuH}HuH`SEEH}tLuLeMtnQM,$LLAH}ݠI*EH$E^EH}߼*YEH-HH-HH9vQ]H}8EH]HtH[HH-HH9vP}EfEELmHcEHH9vPLceLH}#CD%EE܃ =rrmE vlPELiE܃ =vOPUHcIHcDLceIqmPLH-HH9vPDe;]~:uH}EHEH]LeLmLuH]UHHd$H]LeLmLuL}H}uUHMHhyQH}tLcmLeH]HtSOL3LLAHcLqOHHHH9v1O]LcmLeH]HtNL3LLA0HcLq2OHH-HH9vN]ȋEEЋEEԋEȉE؋ẺEHEHELmLuL}H]HtvNHILLLHuLA$hH]LeLmLuL}H]UHH$HLLLH}HuHUHMHHOHDžHDžHHUHXHFHcHPH}tyLeLmMtMI]H& LLuALmMtSMI]H DLEE܋EE؋EEԋEEЋU؋uH}d~EUЋuH}P~ELeLmMtLI]H L0ELeLmMtLI]H_ LEE\EEE\EEH}|rH}H5$,rH}H5$rE۽HH0HDž(E\E م ۽HH@HDž8H(HELHH5$HHOHHH}qE۽HHHDžE۽ H HHDžHHELHH5[$HH7OHHH}qH}H5\$pH}H5l$pHH HcEHHHHHDHHH聧HH5$HH2HHH}RpHvHcEHHHHHgDHHHoHH즂HHH5$H蝉HH}oH}H5$oH}H5$oHEĉHDžDžHDžDžHDžHc]HHH9uIHHHHDžDžHDžEHDžHHH52$HH`HHH5C$HHH}nH}H5D$nH}H5|$nH}H5$onHEHH} oH}nHEHHuH}ZH}H5g$*nH}H5$nHEHH}nLeLmMt2HI]HLHHHHPHtHLLLH]UHHd$H]LeH}HuH(IHEHߙE}E}uE vGEHiHcHH}s+HULccIHI9uGLH-HH9v-GDH}HUBHEHcHELc`IqAGLH-HH9vFHED`EH]LeH]UHHd$H}ЉuUMDEDMH0vHH]UHH$HLLLH}ЉuUMDEDMH$HHEHEHDžHhH(QHyHcH LeLmMtEI]HgLLuA LmMtEI]H8DLEHDžEHDžHcUHcEH)qEHHHHDžHcEHcUH)qpEHHHHDžE؉HDžEHDžHHH5$H[HH}k*EE*EEHcEHcUH)qDH*EHcUHcEH)qDH*E}}H}H5$蓂H}H5$聂EH&fTEEH&fTEE۽HHHDžE۽HHHDžE۽pHpHHDžE۽`H`HHDž*EH $YX݅X۽@H@HHDž*EHο$YX݅X۽0H0HHDžHEHHDž HHELH}HH5$FHc]HHH9uBH*H7$YHuH}ϘH}uhH}H5z$%hEYEXE݅۽PHPH8HDž0EYEXE݅۽`H`HHHDž@H0HELHH5=$HEHH}qgHuH}dgH}H5$TgH}в@&H}LeLmMtiAI]H LH3H}*H}!H Ht@HLLLH]UHHd$H}ЉuUMDEDMH0BH]UHHd$H}HuUMH BH]UHHd$H}ЉuUMDEDMH0fBH]UHHd$H}uUMH >BH]UHH$`HhLpLxLuL}H}HuHUMDELMHALmLeMt?I$HqLEHErtt E EHE@r"tt EE EEHExu+Hc]HHH-HH9vF?]HEx u@EEHExu+Hc]HHH-HH9v>]HExu E EHEx t E EHEx u E@EHEx t E EHExu E EEHExtMHEx uMHEHEHEHEHE8tEEHExtEEHErrHE@rrH]HtH[HH-HH9v=DeAD=v=EHuHuH5BoHMHqHEt tJHc]HcEH)q=HH-HH9vT=]uH}dRHc]HcEH)ql=HH?HHHH-HH9v=]uH}.dHE@tsHc]HcEH)q'qHH$.qHHEH5~$H}DH&'qHH-qHHEH5~$H}DH'qHH-qHHEH5$H}DH&qHH-qHHEH5$H}DH&qHH-qHHEH5$H}]DH&qHH\-qHHEH5$H}5DH&qHH4-qHHEH5$H} DH&qHH -qHHEH5~$H}CH~&qHH,qHHEH5~$H}CHf&qHH,qHHEH5$H}CHN&qHH,qHHEH5$H}mCH6&qHHl,qHHEH5$H}ECH&qHHD,qHHEH5$H}CH&qHH,qHHEH5$H}BH%qHH+qHHEH5$H}BH%qHH+qHHEH5$H}BH%qHH+qHHEH5$H}}BH%qHH|+qHHEH5~$H}UBH%qHHT+qHHEH5~$H}-BHv%qHH,+qHHEH5~$H}BH^%qHH+qHHEH5~$H}AHF%qHH*qHHEH5~$H}AH.%qHH*qHHEH5~$H}AH%qHH*qHHEH5~$H}eAH$qHHd*qHHEH5~$H}=AH$qHH<*qHHEH5~$H}AH$qHH*qHHEH5~$H}@H$qHH)qHHEH5~$H}@H$qHH)qHHEH5v$H}@H$qHH)qHHEH5v$H}u@Hn$qHHt)qHHEH5v$H}M@HV$qHHL)qHHEH5v$H}%@H>$qHH$)qHHEH5v$H}?H&$qHH(qHHEH5v$H}?H$qHH(qHHEH5n$H}?H#qHH(qHHEH5n$H}?H#qHH(qHHEH5n$H}]?H#qHH\(qHHEH5n$H}5?H#qHH4(qHHEH5v$H} ?H#qHH (qHHEH5v$H}>H~#qHH'qHHEH5v$H}>Hf#qHH'qHHEH5v$H}>HN#qHH'qHHEH5v$H}m>H6#qHHl'qHHEH5n$H}E>H#qHHD'qHHEH5n$H}>H#qHH'qHHEH5n$H}=H"qHH&qHHEH5n$H}=H"qHH&qHHEH5n$H}=H"qHH&qHHEH5n$H}}=H"qHH|&qHHEH5n$H}U=H"qHHT&qHHEH5n$H}-=Hv"qHH,&qHHEH5n$H}=H^"qHH&qHHEH5n$H}!qHH$$qHHEH5~$H}:H&!qHH#qHHEH5~$H}:H!qHH#qHHEH5~$H}:H qHH#qHHEH5~$H}:H qHH#qHHEH5$H}]:H qHH\#qHHEH5$H}5:H qHH4#qHHEH5$H} :H qHH #qHHEH5$H}9H~ qHH"qHHEH5~$H}9Hf qHH"qHHEH5~$H}9HN qHH"qHHEH5~$H}m9H6 qHHl"qHHEH5v$H}E9H qHHD"qHHEH5v$H}9H qHH"qHHEH5v$H}8HqHH!qHHEH5v$H}8HqHH!qHHEH5v$H}8HqHH!qHHEH5v$H}}8HqHH|!qHHEH5v$H}U8HqHHT!qHHEH5v$H}-8HvqHH,!qHHEH5v$H}8H^qHH!qHHEH5~$H}7HFqHH qHHEH5~$H}7H.qHH qHHEH5~$H}7HqHH qHHEH5~$H}e7HqHHd qHHEH5~$H}=7HqHH< qHHEH5~$H}7HqHH qHHEH5~$H}6HqHHqHHEH5~$H}6HqHHqHHEH5~$H}6HqHHqHHEH5~$H}u6HnqHHtqHHEH5~$H}M6HVqHHLqHHEH5~$H}%6H>qHH$qHHEH5~$H}5H&qHHqHHEH5~$H}5HqHHqHHEH5~$H}5HqHHqHHEH5~$H}5HqHHqHHEH5$H}]5HqHH\qHHEH5$H}55HqHH4qHHEH5$H} 5HqHH qHHEH5$H}4H~qHHqHHEH5$H}4HfqHHqHHEH5$H}4HNqHHqHHEH5$H}m4H6qHHlqHHEH5$H}E4HqHHDqHHEH5$H}4HqHHqHHEH5$H}3HqHH]UHH$0E=qHUHuAȂHiHcHUuT˂HEHtVHUH@ȂH.HcH8u˂H8Ht͂͂ ʂ͂ =NqEEH]UHHd$=0q~-'q= qu;HqH8t HqH8H}3u qHqHH]UHHd$H=P$HqH]UHHd$H}HuHUHHuH}1LqHAH]UHHUqHH]UHH5mdH=ΥcIH]UHHd$H}HuUHuUH}HEHHcUH9u EE EH]UHH$PHXL`H}HuH}5HEHUHp ƂH4HcHhHEȃx@u EHEHEH}HEHÃEfEH}HEH0AAE|oEEU؋uH}HEE%UE%E%HEHED;e;]gBȂH}9HhHtHtɂHDžhEEHXL`H]UHHd$H}H@`t t)tI^H}1^HEH QH}9HEH䑁,HEH͑HEH趑H]UHHd$H}HppH}H}HEHXHEH*@\EH$f/EzuH$HHEHEEYEHEHE}HEH@Xtt8tItZtk|HEHHx$11AwH57dH:aH57dH$KH57dH5H57dHHEHH$11gAHEH@ht ttEEEHEH@Xr wEHEHu.kHEH@lt tt0@HEHX)HEHXHEH1pXH]UHH$`H`LhLpH}HuHUHEHULbIHLILLHwLmHUHuH詟HcHUu+HEH@HHEHPHuHt$?nĂH}eHEHtłH`LhLpH]UHHd$H}H(H}H]UHHd$H}uUHEHUHHH}HEHH}jHE*H}EHE*H}KHEHMVE*EH}hE*EH}HEHMTu}e7HH}HEHH}H}HEHH]UHHd$H}H]UHHd$H]UHHd$H}HuHEHH;Et:H}uHEHt H}HEHUHHuH}4ZH]UHHd$H}dH}HEH0H]UHHd$H}neH}HEH8H}1HEHH]UHHd$H}HHUHH8H}7dH]UHHd$H]H}HH8taHEH8.HHuH3MHUHEHHEHH}HEHt:H}HEH`'H}HEHH}HEH`HEƀH]H]UHHd$H}HtJHEH}1111:5HEHUHUHEHHEHHEƀH]UHHd$H]UHHd$H]UHHd$H}H*EH}Y*E^HEHE*EH}GZ*E^HEH}HEHHHH}HEHH]UHHd$H]UHHd$H]UHHd$H]UHHd$H}HH4_HEHǀH}HEHPH]UHHd$H}HHUHHHEHLEHMHUHuvHEE^H-EHEE^H-EHEE^H-EHEE^H-EHEHUH]UHHd$H]H}HuHUHEHUHHHEHxu &HUHx*EH}HEHx*EH} HEHx@HcUHcEH)H*H}' HEHx@HcUHcEH)H*H}. HEHx@HEHXHEHxHEH[SK0OHEH0kH]H]UHHd$H}HHxEEH]UHHd$H]H}@uHEHUHHHEHbW}u/HEHxtHEHxHEHǀxPHEHxtBHEHxHEHCf)SK-NHEH-jH]H]UHHd$H}EMuHEHMHU؋uH}I HEHEf)MEVHEHH~$H~$MH~$\EH~$\rMHEH~H]UHHd$H}EMU]uHEHMHUȋuH}I HEHEf)MEUHEH]UMELHEHME<MXMEXEHEHHcHX2EH}HEH}HEHHTEH}R@EH} HEH@J}u6EݝPPEݝPPHEHX1}t=HEHe]Hr$HCr$H8r$V;HEHe]Hr$Hr$Hq$ZtHEHpHXHtdH]UHHd$H}H(xXtH}mHEHqH]UHHd$H}HxXtH} HEHlH]UHHd$H}؉uHUHMLEE%*Hq$^HEE%*Hq$^HEE%*Heq$^HEH]UHHd$H}HuUH}1aEtHEH0H}1H,q$oEtHEH0H}1H*q$MH]UHHd$H}HuHEH HEH Hu,HEH HEH HEH}.=HEHu PKHEEHEH HEH HtSHE 1 SHEHuH}BHEH HEH H@ǁ@HEHH}AHuH}F(HEHHu<}t H}HH]UHHd$H}H(xXtHEHtHEHjFH}HuH=n HUHHEHHuFHEHHuHuH5nMЋUAHEEYHEH/'*H(~H}uH}lH`Ht苕H]UHH$`H}uUHMHEHUHHH} HEHH}HEHHu"HEH=HEH0HEHEHH}wMHuH} HEH jud*EH}(XEx*EH}HEHxHuHuH5enH}g4*EH}E*EH}qXEHEHMwHEH 跢EE}HUW$(m}m]EHEH\PHuHuH5nH}3HEHHu*"H}1 HHEHVH}#XHEHSH}HEHH]UHH$HH}HuHUMDELMHEHEHDž0HH3H[lHcH/H}HEHH}о HEHHEH2;HH@ʍHkHcH8HuH}HcEHcUH)H*H}`HcUHcEH)H*H} X*EH}Cp*EH}mh*EH}P*EH}AHHEx HEH*@\X`0HEH*@\XX(HEH(0hp{!HEH{=HEH ˟=tHEH 负= u*H`H@HXH`H@HXHEx t6HuAH @T$HaT$H0H0H}4HuAH RT$H+T$H0H0H}HExHuAH T$H)T$H0}H0H}mHuAH S$HT$H0IH0H}9HuAH S$HT$H0H0H}HEx tZHEH(H}HEHX`hpHEHQHExt_H3H8tRH3HH}lHu1H03H0*EMuH}H}о H}HEH*H HEHH QGH H}H=*JHHuHHH8HEx |`HR$YH-H ,IH 1,HEt t*t4H 1$H H HuHuH5ԿnH -HHH )THE@tttWyHO$HH8f* HQ$YHN$YXHN$Y\8'* HnQ$YX\8HEHHP/HEH 薛*HO$^݅۽H Q$(ۭ۽ ۭ ݝHEHIHHHÃuDž|@||HuHHHHuHuH5nH ,HHH iRHZM$HH@HEx {HErptDuf*HO$YHM$Y`HM$Y\@'*HO$Y`\@HEH8@ HEHH J* HIO$YX88;|H OXHEHXKHH]UHH$H}@uH0H.<$HEHH?H?HHH0qHHfHHEHH@HHH?HHHH0qѣHHfHHEHHHH0q薣HHfHHHHHHeHH} H]UHHd$H}H跤HEHxuHH= :H HUHBfEffEffEE=v|EHkHcH4HEHxHU'f}sH}5H]UHHd$H}HHEH@HtH@HH~ Hs Ha OHO PH= H+ oH pH H/H0HHHOHPHHwHe HS HA H/ H H  H H H H HHHH{HiHWHEH3H!HHHHH? H_@H`HHHmOH[PHIH7H%HHHOHPHHHHHHqo H_ p HM H; H)O!!H!P!H!!H""H##H?$$H_$@$H$`$H%%H%%Hu%%Hc&&HQ''H?''H-''H((H ))H))H**H++H_,,H,`,H,,H/--Hy-0-Hg--HU--HC..H1..H//H //H?00H0@0H00H/11H101H11H11H}11Hk11HY22HG33H5M4H#MMHNHHϤH?H@HH H/H@HoߨH]/HK_0H9_H'HHHHHHOHPHHHs/ HaO0HOoPH=pH+HHH]UHHd$H]LeLmH}uUH@5HEH@HXHtH[HHH-HH9v]HcEHqMHEH5:DdHEH@HxHMHf7HELhMeHcUHH9v—Hc]HI}5Hk EAHELhMeHcUHH9v胗Hc]HI}C5Hk EADH]LeLmH]UHH$HLL H}HuHH}t)LmLeMtۖLHVLShHEH}tUHUHueH.CHcHUHEH}HOHH=:ȳHUHB0HH=:ȳHUHB8HH=:nȳHUHB@HE@HHE@ HEH}uH}uH}HEHpgHEHpHpH0dHCBHcH(u%H}uHuH}HEHP`gh gH(HtiiHEHLL H]UHHd$H]LeLmH}HuH(H})LeLmMtI]HTLHEHx@hOHEHx8[OHEHx0NOHEHxAOH}HNH}uH}uH}HEHPpH]LeLmH]UHH$0H8L@LHLPH}HuH}gҁH(HEHEHEHDžXHUHhPbHx@HcH`H}H}HuH}W&H}HҁH]HtH[HH-HH9v蝓}E@EELmHcEHH9vcLceLH}fCDefEHuH}<EHEH HEPHEHpPDEH}Eă}|HE@H;Eu0HeHED@ HEHHEHPPDMHuH}m LuMnHcUHH9v譒LceLI~m0Ik IcTEH)qƒEE؃ r(r4tr+uHX'HXHuH}йс.uغHXځHXHuH}й~с;]~|HlgcHXρH}ρH}H}ρH}ρH`HtdH8L@LHLPH]UHH$PHPLXL`LhH}H5HEHUHu{_H=HcHUHEHxuH}΁HEH@HpH=)$HxHEH@HEHC)$HEHpHH}ҁLuHEH@L`(HEH@Lh(MtsI]HPLLPHEHxH΁HEHxH΁aH}΁HEHt7cHPLXL`LhH]UHHd$H]LeLmLuL}H}H@ÑHEHXHtH[HHqHH-HH9v規AA}}EEELmMeHcEHH9vgHc]HI}'-Hk ADLmMeHcUHH9v*Hc]HI},Hk E4LmI]HcEHH9vLceLI},Ik DlE9}DuEEfEEfEfEHEHxHu.ugH]LcHcUHH9vxLcuLH{8,Ik I\Lc#Iq葎LH-HH9v4D#D;m~fD;}~H]LeLmLuL}H]UHHd$H]LeLmLuH}HuH8賏HEHHEHXHtH[HHq獂HH-HH9v芍}EEELuMnHcUHH9vOLceLI~+Ik A|tLuMnHcUHH9v LceLI~*Ik IcTHEH9[OLuMnHcEHH9vLceLI~*Ik IcTHEH9}EE;]~EHEf EH]LeLmLuH]UHHd$H]LeLmLuH}uH8EHEHX HtH[HHqMHH-HH9v}\EfEELmMu HcEHH9v跋LceLI} w)C;EtEE;]~뭋EH]LeLmLuH]UHH$HLL L(H}HuUMDEH}=ɁHHEHDž0HDž8HDžHHUHp YHH7HcHhuH}ZEԃ}|HELp0LeHELh0MtjI]HJLLEԃ}|H"$HPHcEH@HH@HH@H@HHҁHHHHHXHcEH@HH@HH@譃H@H8сH82H8H`HPH}ȹHhˁHELp8LeHELh8Mt(I]HHLLEԃ}|DH0ƁHEHPHcEH@HH@HH@ʂH@H8ЁH8OH8HXHcEH@HH@HH@bH@HHjЁHHHHH`HPHH0ʁL0HEL`@HELh@MtׇI]H{GLLEGYH0ŁH8ŁHHŁH}zŁH}qŁHhHtZEHLL L(H]UHH$HLLLH}HuHUMDEDMH}(ŁH鈂HEHEHDžHDžHDžHHUH`UH+3HcHXGuH}=Eȃ}|fHEHX HtH[HHH-HH9v]]HcEHq苆HPH52dHEHx HPH%LmMe HcUHH9vHc]HI} #EAE HDžLmMeHcUHH9v跅Hc]HI}w#Hk A0HDž(LmMeHcUHH9vnHc]HI}.#Hk AD@HDž8HHH5$HHLHHEL`(HELh(MtI]HDLLPHELh(H$HELp(Mt襄M&LJDHLA$PuH}HELh(H$HELp(Mt]M&LDHLA$PHELp(IHELh(Mt!I]HCLLPHELp0LeHELh0Mt郂I]HCLLẼ}|;HELp0LeHELh0Mt覃I]HJCLLPEH,$H0HcEHPHHHHP^}HHfˁH߁HH8HcEHPHHHHP|HHʁH{߁HH@H0H}HāHELp8LeHELh8MtqI]HBLLẼ}|HELp8LeHELh8Mt+I]HALLPEHELp(IHELh(Mt큂I]HALLPHEH HDž E0HDž(HEH@HDž8 HHH5$HHtLHHEL`(HELh(MtQI]H@LLPHEH HDž E0HDž(E艅@HDž8HH}HH5J$ݗHELp@LeHELh@Mt轀I]Ha@LLẼ}|HELp@LeHELh@MtwI]H@LLPEHEH HDž HEH0HDž( E@HDž8HHH5$HHLHHEL`(HELh(MtI]H|?LLPHELp(IHELh(MtI]HA?LLPHE؋@H;Eu%HE؋ỦPHH}HuH!$侁H}H袽PH!HHH H}H}H}HXHt RHLLLH]UHH$HLLLLH}uH {HEHDž(HUH`LH*HcHXH}`LmMeHcUHH9v0~Hc]HI}Hk McdLuMnHcEHH9v}Hc]HI~Hk IcDI)q~Iq ~LH-HH9v}DeLmMeHcEHH9v}Hc]HI}HHk AEH}H蝻*EH$YP݅P<$AA}?EfE܃EEEԃEfEfELmMeHcEHH9v|Hc]HI}Hk AD;E}HEHxHu;uHEHxHUHuHEH0HK$H8E=vd|EHkHcHtH(OāH(H@H$HHH0H}HfHEH0H$H8uкH(WvH(H@Hj$HHH0H}H蟽HcEHq{HHHHtIHELp(H]HEL`(Mt={M,$L:HLAPH}HtHc]Hqe{HH-HH9v{]؁}} D;}~H}u8HELp(LeHELh(MtzI]HE:LLPLH(hH}_HXHt~MHLLLLH]UHHd$H}HuH|H}tHEHxPH5+$VHEHxPHuCH]UHHd$H}uH{HEx HEUPH]UHHd$H}uHt{HEx | HE@ HEUP H]UHHd$H}H'{HE@HH]UHHd$H}HufUH zHEHHEHxHUHuu4E=vxEHkHIcHtH}H}H䶁H]Hd$Hd$SHHH5[SHHH|5[Hd$Hd$SHHH<5[SHHH,5[UHHd$EHEHEEH]UHHd$EHEHEEH]UHH$ H}HuHUH}uHEHUHRhHEH}ZHUHuEH#HcHUHEHUH}1D}HEHHPdHpH :H8H :HHxu0H}@HEH@0HEHH H}@0HEH}tH}tH}HEHGHEHtlHhH(DH"HcH u#H}tHuH}HEHP`G5IGH HtJZJHEH]UHHd$H}HuHHEH HEH HEH H0 H]UHH$H}HEHEHDžHDžHDžHUHuCH!HcHUHhH(~CH!HcH gHE, @HEHHEHHHE, @HEHHEHHPHE, @HEHHEHHPHE, @HEH HEH HPH}1蕲H}H5$腲H޽PH8HԽPHHuHuH}1Hj$}HEH@HEHHPHPH8HzPHHtt t1xHLdHpH}ݱbHLdHpH}DZLHLdHpH}豱HuH}1H $˲HEH@0HEHHPHҼPH8HȼPHHtDHEHH $HHxLdH@HHH}1ɺִdHEHHb $HHTLdH@HHH}1ɺ蒴HEH@0HEHHPHEHHEHH@HEHHEHHPHEHHuH߯HȒpH1HպHHH $HHRpHHHck1HH覹01H&΁HHH1ɺH^HHEH'HPH81H $H(rHHEHHPH81H $HqHHEHxHEHH}HEH H}HE, t!HHEHtYHpH0:HHcH(uH}H5, $蟪=H(Ht@@HH]UHHd$H}EHEH HEH H t EVHEHHEHH t E*HEHHEHH tEEH]UHH$pHxH}HEHEHUHu9HHcHUoHE( uBH̴PH8蔧EHPH8MHPH8cuHPH8AHEH Hu荘HUHrPH8H5$MHEHHEHH t.HEH HuPHHu4H&PH8HPHHu E2E)HPH8HPHHuEHɬPH8H ڣH HEHHHcUHEHHHXD;eC4uHiPH8葨H(Ht5HEHHHEHHH~0HPH8萢HEHHEHH 3H HEHt05HLH]UHHd$H}HuHHEH1H}H}HEHHEHGH]UHHd$H}HuHHEH 蜬@HEHHEHHPHEHHEHH@HEHHEHHPH]UHHd$H}HuHEH@HEHH H]UHHd$H}HuHUHE胸uHE苰@ HMPH8uH]UHHd$H}HuHEH8 H]UHH$pHpH}HuHEHUHu{.H HcHUH}HEHHEHH HcHEHHHEHHHHcHH9@HEHHEHHPM1H5#H}mHuHEHX0H}:HEHt\2HpH]UHHd$H}HuHHEƀ0 HEƀ( HEH@HEHHHEH1HEHHH8dHP1HEHHH HEHHH8dHPHEHHH HEHHHb8dHPHEHHH HUH=FH2H?H2HUH8 HPH8'HU@ H]UHHd$H]H}HuHEHUHu,H) HcHU H}H}H5#՛HEHHEHH uHUH}1H5#̜HEHHEHH tHuH}1H#蓜HEHPH`5HþH\HEHPH`5H-HHUHHHEHPH`4H@HH` .H}cHEHt/H]H]UHHd$H}HuHUH}H]UHHd$H}HuHHE0 @H}H]UHHd$H}@uHE0 :EHEU0 HE@0 HEHHEHHH}@0HEHH}@HEHHE0 uHEHHN4dHpEHEHHQ4dHp(H!&H8Y߄HEH@0HEHHH]UHHd$H}HuHH}cH]UHHd$H}HuHHePH8HUH=dHdHEHUHu(HHcHUu*H}HEH uH}XHEƀ( +H}HEHt1-H]UHH$pH}HuHDžxHUHu/(HWHcHUurH}HuHlPH8>EHEHHxZHxH#kHt]HEH@HpH=1#kHt@HEH@HpH=$#kHt#HEH@HpH=#bkHtEEEH]UHH$pH}HuHEHUHuHHcHUH}HEH`1HEH`@HEH`HHKdHpH}՟HEHPHHdHp՟HEHPHH#dHp՟HEHhH(dHp՟HEHHH-dHpd՟HEH@H2dHpI՟HEH0H7dHp.՟HEH8H<dHp՟H}H#HpH5dH@HxH#HEHp1ɺH}臁HuHEHԟHEHHdHpԟHEHHdHp~ԟHEHH dHpcԟHEHHdHpHԟH}/H#HpH dH@HxH#HEHp1ɺH}HuHEHӟHEHHdHpӟHEH HdHpӟH}蚂HK#HpHdH@HxH+#HEHp1ɺH}舆HuHEHTӟHEHXHdHp9ӟH}pH}HEHt4H]UHHd$H}HuHH}sH]UHHd$H}HuHH]UHHd$H}HuHEH`@0HEH`HH]UHHd$H]H}HEHUHuHHcHU#H}H5#~HEHHEHH tH}H5#KHEHHEHH tH}H5#HEHHEHH tH}H5#倁HEHH`NHþHdHEHH`'HHHUHHHEHH`H@HH`H}H5`#SHEHxHEHxH tH}H5U# HEHHEHH tH}H5J#HEHH`VHþHcHEHH`/HHHUHHHEHH`H@HH`H}~HEHtH]H]UHH$PHXH}HEHDž`HDžhHUHuH!HcHU,HEHRHEHBHEH2HEH"HEHHEHHt5HEHHHcH;C(tHHPH8ZHEHHEHHH}H5#~HEHpHEHpH tH}H5#}HEHxHEHxH tH}H5r#}HEHHEHH tH}H5_#z}HӈPH81H5O#b?H}7=9tHUHPH8H5#"HEHHEHHHEHHEHHEHH HcH;C(u7HEHHEHHEHH HcH;C(HEHHhlHhHpH#HxHEHH`kH`HEHpH}1ɺHUHPH8H5#!HEHRÃ|SEfEHEHuHH={4JtHEHuH;;]H`5{Hh){H} {HEHtBHXH]UHHd$H}HGHHEH@HH t EoHEH@HHEH@HH t E;HEH@HHEH@HH t EEEH]UHH$H}HuHUH`zHEHDžHUHxh HHcHpHEH@(H}@0HEHPHXH H>HcHHUPHHxxH}u?H}H.PHHxxHuHuH5g@nHYpHEHEHEHHEHEHpA1ɺ(H譄HHuHPH83H}HEHp*H}A1ɺ(mHEHp*A1ɺPHJHHEHHUHEHHXEHEHxHuHuH5u?n0^Hu HEHcUHP(HEؐEH}tHE;EaHEp(H}HEH HEHHEHH@H}HEHPf H}HEHu=HEHHdHpHEHH8H}1HEH HHtHt HDž H?wH}6wH}-wHpHtL H]UHH$pHxH}HEHEHUHuGHoHcHUH}HEHH}HEH HcHUH;B(H}HEH HEHHEHHHEHteHEHtWHEHHpA1ɺ(H}ʁH]HEHpA1ɺ(H}諁HUHPH8H5 H}uH}uHEHt HxH]UHHd$H}HuUH}1v}}H}HEH EH}HEH}|HHEHuHEHHHEHtmHEHpH}A1ɺ(€PHEH1HEHHHEHHEHtHEHp*H}A1ɺ(pH]UHH$`H`LhH}HuHDžpHUHuH HcHxHEHu(HUH=3H3HUHHEHH HPH8wHHHZHPH8wHHHAAEEEHUH=t3Ht3HEHLPH8$wHËUHpHHHpH} HPH8u;E@H}H}@!HUHMHHHHEHHHuأD;e611zHHEHHEHHHEHEHUuHEHH %HpyrHxHtH`LhH]UHHd$H]H}HuHUHE胸uWH}PH8 sHHEHHHE苰H}PH8lyHE苰H}PH8yH]H]UHHd$H]H}HuHEHUHuH)HcHUHC}PH8[rHHuH|HuHEHqH}PH8oHUH|PH8psHUH}@0HEHH}@HEHH}pHEHtH]H]UHHd$H]H}HuHEHuHH&HHg4HꐟH}HEH H]H]UHHd$H}HuHH=Uq3HHuH=:q3HpxH{PH8RcHEHDHEHHEHHEH@HEHHEH H]UHHd$H}@uUMDEHEHDEMU@uH]UHHd$H}HtH#HHEH#HHEEH]UHHd$H}@uHEHrEHEHrEHEH rEHEH(rEЀ}HEHEHEHH HEHEHEHH HEH EHEH H HEH(EHEH(H HEHEHEHH HEHEHEHH HEH EHEH H HEH(EHEH(H HEHH HEHEHH HEHEH H HEHEH(H HEЀ}HEHEHEHH HEHEHEHH HEH EHEH H HEH(EHEH(H HEHEHEHH HEHEHEHH HEH EHEH H HEH(EHEH(H H]UHH$HLLH}HuHEHEHDž0HUHPHڀHcHH9HE(HEtHdHpH}kHdHpH}kHELxI$1H贩H5#HHEHHPHcHH?HHEHEHUf/zHcEH HHH?HHHcUH)‰UHHPHcHHcUH)HEHUHEf/z-v+HEHU^*EYH-E/EȉEHEHU^*EYH-EHH`HcHcUH)HH?HHEHcEHH?HHHcUH)‰UH(HHHPUEg UUċu}rqH8H@H8HEH@HEH}кLHuHUH |H(芾1HHHPH}к>LHuHUH{LcmHEHl*MYHE^H-LELcmHEHl*MYHE^H-LELcmHEH rl*MYHE^H-I)DmLcmHEH(=l*MYHE^H-I)DmܾH諦HHHPHuHUHz1Hq1HHHPEEȃEUEg DEUuHEgD@EgPMuHݸEEăEEgD@EgPMuH豸H(H(H@HE݀<$H5#H0ՈH0HUH}1ohEHH`LcHuHHHcI)LHH?HHHMUHHHcEHH?HHHcUH)‰UHH`HcHcUH)HH?HHH EUEgDMUuH買EgHEgpDEUH蒷EEȃEEgHEgpDEUHfH(H(H@HE݀<$H5#H0芇H0HUH}1$gHcEHH?HHHcMH)HcEHH?HHH)MEgDhHuHHA)DHMUHHH0eH} eH}eHHHt HLLH]UHHd$H}HuHEHHEHH @H}HEHHEHH tH:pPH81kH'pPH8kH}H]UHHd$H}HuHEHxHEHxH@H]UHHd$H]H}HuHEHUHu1HYҀHcHUHsoPH8dx(HEHHEHH H3oPH8KdHHEHHEHH HEHHHuHEHHHHuH7HnPH8cHHEHH}HuH豅H}(SH}bHEHtH]H]UHH$pHpH}HzH2nPH8JcHHuH蛁H}HuHH]HEHHEHEHHEHcSHcH)H*EHmPH8HmPHH*EE^EH}M^HEHcS HcCH)H*EHgmPH8H]mPHH*EE^EH}!M^HEHEHi#f/zvHEHN#f/z wHUHEHHEHUHH}HpH]UHHd$H}HHHE݀H#(]EHHEH HE݀H#(]EHtHEHHE݀H#(]EHDHEH(HE݀Hh#(]EHH]UHHd$H}HuEEH0#(HE݀ z)v'EH#(]EH}HEH EH}HEH H]UHH$`HhH}@uUMDEHDžpHUHuH̀HcHx?HU؊EHU؊EHU؊E舂HU؊EHEHHHEHHHHEHHHEHHHHEHHEHH HEHHEHH HEHH#1HEHH#1HEHHHEHHHHiPH8^HHM~HHEHHEHHP HtiPH8^HHpH{HpHEHHHEHHHHEHHEHH HE@HEHHEHHPHE@HEHHEHHPHE@HEH8HEH8HPHhPH8H[trPv)uFHEH@HEHH "HEH@HEHH HE@HEH@HEH@HPHE@HEHHEHHHE؀t H}UHp[HxHtHhH]UHH$`H`H}HbgPH8z\HHuHzH}HuHH]HcSHcH)H*EHgPH8HgPHH*EE^EH}f)E^HEHHEHH HcSHcCH)H*EHfPH8HfPHH*EE^EH}Xf)E^HEHHEHH HcSHcCH)H*EH fPH8HfPHH*EE^EH}f)E^HEH HEH H HcS HcCH)H*xHePH8HePHH*xE^EH}Vf)E^HEH(HEH(H H`H]UHH$`HhLpH}HuHDžxHEHUHuyHǀHcHU8H}1WYH}XHuH}AYH]HtH[HM1IHEBD E<","tU,,td,t ,t#HEH0H}1H#ZHEH0H}1H#Y|HEH0H}1H#YaHEH0H}1H #YFHEH0H}1H%#Y+u1HxbHxHEH0H}1cYL9 UHxWH}WHEHtHhLpH]UHHd$H}HuH8EHH}HtH}H5#WxHyEH0H}tH}H5~#yWOEEHEEEHEEEHEHUH}H5M#/H]UHHd$H}EME}HEHEHEE}HEHEHEHUH}Ln/pH5 #=H]UHHd$H}EH}H53/pE9TH]UHHd$H}HH=2HʁtH}E H}EEH]UHHd$}迤ȃH]UHHd$H}uHE@dEHUBdH]UHHd$H}HuHUHE@PgPHEPPHE@PEHEHUH}1H5#.EEHEEEHEHcEHcUH)HEHEHEHEHcEHcUH)HEHEHEHEHEHE HUH}H5#.H}H5#/H}H]UHHd$H}GPEHEHUH}1H5#-H]UHHd$H}HH5#H.H]UHH$H}HuHUMH}uHEHUHRhHEH}HUHu/HW€HcHxHEH}1貊1۳HEHUHH=1*HUHBpH=EHE8HUHBxHEH'HP HUHhHB}t0H}H5#-H}H5 #-H}H5C#~-HEH}tH}tH}HEHbHxHtlH`H H6HcHu#H}tHuH}HEHP` HHtHEH]UHHd$H}HuH~HEHUHHHEHxX͖HEHxp|͖HEHxxo͖H}1ށH}tH}tH}HEHPpH]UHH$pH}HuHUHE@@HcUHcEH)HUHEHEHEHcEHcUH)HxHxHEHEEEHEEEHEEEHEEEHEHUH}H5#*HE@PH]UHH$`H`H}HDžhHUHu,HTHcHU'HEx@tH}H5H#+HEHxpHEH@pHH}H5#*HEHxpHEH@pHÃ}EDEExHDžpHEHxpUHhHEH@pHHhHEHE HpH}H5)#<);]H}H5#7*HEHxpHEH@pHH}H5{#*HhmOHEHtH`H]UHH$HH}؉uUMDEHDžHDžHDžHUHXf߁H莽HcHP&DMDEMUH}H5kVE۽HHHDžE۽HHHDžE۽HH(HDž E۽HH8HDž0H*NH}H#HH}HS H1HHOHHHHDž@ HH}عH5#6'QHMHMHMHPHtHH]UHH$H}؉uUMDEHDžHUHu݁HλHcHxE0HDž(E@HDž8HcUHcEH)H H HPHDžHHcUHcEH)HHH`HDžXH}HHHpHDžh H(H}عH5f#%߁HHLHxHtgH]UHHd$H}HHxDzH]UHHd$H}GdE*EHA#^EE}H9#(m}m]EEH]UHHd$H}HGhH]UHHd$H}HuHEHxXHu#H]UHHd$H}HGX@LH-H]UHHd$H}EHEHxX#tMHEHxX#tMHEH@Xx(tMHEH@Xx)tMEH]UHHd$H}HGxHxvyH]UHH$ H}؉uUMDEHDž HUHuځHHcHxE0HDž(E@HDž8E艅PHDžHE`HDžXH}H H HpHDžh H(H}عH5T#G#b݁H IHxHtށH]UHHd$H}HuHUEMUuH}AH]UHHd$H}uUHE苐HE苰DEMH}yu}PHUHH]UHHd$H}uUЋ}PHUHH]UHHd$H}HuHEx-u H}1I)H}HEP-H)H*HH#Y?H]UHH$0H0L8H}HuHUHMDEDMHDž`HUHp؁H趶HcHh}}HEHHcUH)ЉEH}1QHEgXEEHMHcUHcEHL$A$HHDž@AD$XHDžPH@H5S#H`w H`HEH0H}1H;]ځH`8GHhHtW܁H0L8H]UHH$0H0H}HuHUMDEHDž8HDž@HDžHHDžPHUHuׁHDHcHxHUDMDEHMH}HPHPH`HDžX HHMFH}H@ H@H}H8vH81HHHGHHHpHDžh HXH}عH5#YtفH8EH@EHHEHPEHxHtځH0H]UHH$@H}HuHUMDEHDžHHDžPHUHuՁHѳHcHx~HUDMDEHMH}HPHPH`HDžX H}HHHHHpHDžh HXH}عH5#!<؁HHDHPDHxHtفH]UHHd$H}uHE@(E= E}t}}HEPHHEHxxHEH@xH HEHxx1HEH@xHPHEHxxHEH@xHHH]UHH$H}uUHMHDžHUHpӁHHcHhHcHEHrcHEH_cHE1ҾH=-*HEH¾H=EyeHEȾH=XEHXEHEHPHWӁHHcHHE@+HE@,HUHuH}H}3EHDžEHDžHE@HXHHDž HH}йH5O#zЁHH*9HH5H7HEHtHEHH HuN*H}tHE@PtHEHǀpHEHUHHEHtSHEHH u#H=)#HUHH HEHH Hu&H}ߝtH}t H}ܛH]UHHd$H}H@PtHE(tEEEH]UHHd$H}=|cu%H}1H5cH=cLUcH]UHHd$H]H}HuHEHuH}0ƝH}GHEHHEHHEHxtHEHpHHH(RnHWHEDHE11HH11HiHEHEHTiHE1HhHE1H,iHEHxt!1HHH}HEH HEH]H]UHHd$H}HuHFH%~H}HEH`H]UHHd$H}nKHUHEuHUHEHEHU)HUHE}HEǀHUHEH]UHHd$H}ܝt"HE@P uH}t H}ٛH]UHHd$H}HuHH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHu⦁H HcHUCHEHUH}14H}@0訴HEƀHEƀHEǀHEǀHEǀHEǀHEǀHEǀHEǀHUHE苀X߉XH}u2H=ȑ1[9HUHHEHHu7 HEƀ=H}AZ11HEHHEH}tH}tH}HEH賨HEHtlHhH(bH芃HcH u#H}tHuH}HEHP`^驁TH Ht3HEH]UHHd$H]H}HuH~HEHUHHHEH tE&fH}wƃH})H1HH}SHEH 菏H}1H=ct,HuH=c#H=cNu H=cNHEH^HEHǀH}1H}tH}tH}HEHPpH]H]UHHd$H}HHUHH H}؝H}nH}Et[HE@PuOHEtBH}@0HEH( t;H}藰HHEDHE11H}HEH H]UHHd$H}HHUHH uH}؝thH}t[HE@PuOHEtBH}@0HEH( t*H}䯝HHEDHE11H}H]UHHd$H}HHt1H}@0HEH( tHEHHuHEH]UHHd$H}NHH]UHHd$H}@uH}u EHEHt-EHEHHUHuHE}uEPH}ծHmEt8}t2H=cuH=Z)HcHuH=cEH]UHHd$H}EH}V֝tH}YHaEEH]UHHd$H}EH=WcH=JcvH=6cƃH=%c H=c~9H= cƃH=cHEH跭HOu H=ckEEH]UHHd$H}HH u EHEH  EEH]UHHd$H}Hu H}{H]UHH$HpH}HuHUHEH=cH>HEHBu4HEHxt HEH@H1HUHuHHE,HEHtHEHHx HEHxHEHD$PHxD$HHx D$@HxD$8HxD$0HxD$(HxD$ HxD$HxD$HxD$Hx$H}HHxDHxDHxHEHH}2HEHEHpH]UHHd$H]H}HuHSHEHxt HEH@H1HuHH]H]UHHd$H}HuEH}EH]Hd$HdoHHfoHHhoHHjoHHloHHnoHHpoHHroHHtoHHvoHHxoHHzoHH|oHH~oHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHH oHH oHHoHHoHHoHHoHHoHHoHHoHHoHHoHH oHH"oHH$oHH&oHH(oHH*oHH,oHH.oHH0oHH2oHH4oHH6oHH8oHH:oHHoHH@oHHBoHHDoHHFoHHHoHHJoHHLoHHNoHHPoHHRoHHToHHVoHHXoHHZoHH\oHH^oHH`oHHboHHdoHHfoHHhoHHjoHHloHHnoHHpoHHroHHtoHHvoHHxoHHzoHH|oHH~oHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHH oHH oHHoHHoHHoHHoHHoHHoHHoHHoHHoHH oHH"oHH$oHH&oHH(oHH*oHH,oHH.oHH0oHH2oHH4oHH6oHH8oHH:oHHoHH@oHHBoHHDoHHFoHHHoHHJoHHLoHHNoHHPoHHRoHHToHHVoHHXoHHZoHH\oHH^oHH`oHHboHHdoHHfoHHhoHHjoHHloHHnoHHpoHHroHHtoHHvoHHxoHHzoHH|oHH~oHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoH8tHoH8Hd$UHH$H}HEHDžxHEHUHuÊHhHcHU/H5cH}HuHuH57m1H}H}H}H8oHH.oH8uOHxHU1H5|#HxcHxH=y* HH5H H`H HhHcHU-HoH0Ha|#H.HoHHoH0HF|#H.HoHH]oH0H3|#H.HtoHH:oH0H(|#H.HaoHHoH0H|#He.HNoHHoH0H{#HB.H;oHHoH0H{#H.H(oHHoH0H{#H-HoHHoH0H{#H-HoHHhoH0H{#H-HoHHEoH0H{#H-HoHH"oH0H{#Hp-HoHHoH0Hm{#HM-HoHHoH0HZ{#H*-HoHHoH0HG{#H-HoHHoH0H4{#H,H}oHHsoH0H!{#H,HjoHHPoH0H{#H,HWoHH-oH0Hz#H{,HDoHH oH0Hz#HX,H1oHHoH0Hz#H5,HoHHoH0Hz#H,H oHHoH0Hz#H+HoHH~oH0Hz#H+HoHH[oH0Hz#H+HoHH8oH0Hvz#H+HoHHoH0Hcz#Hc+HoHHoH0HPz#H@+HoHHoH0H=z#H+HoHHoH0H*z#H*HsoHHoH0Hz#H*H`oHHfoH0Hz#H*HMoHHCoH0Hy#H*H:oHH oH0Hy#Hn*H'oHHoH0Hy#HK*HoHHoH0Hy#H(*HoHHoH0Hy#H*HoHHoH0Hy#H)HoHHqoH0Hy#H)HoHHNoH0Hly#H)HoHH+oH0HYy#Hy)HoHHoH0HFy#HV)HoHHoH0H3y#H3)H|oHHoH0H y#H)HioHHoH0H y#H(HVoHH|oH0Hx#H(HCoHHYoH0Hx#H(H0oHH6oH0Hx#H(HoHHoH0Hx#Ha(H oHHoH0Hx#H>(HoHHoH0Hx#H(HoHHoH0Hx#H'HoHHoH0Hux#H'HoHHdoH0Hbx#H'HoHHAoH0HWx#H'HoHHoH0HLx#Hl'HoHHoH0HAx#HI'HroHHoH0H6x#H&'H_oHHoH0H#x#H'HLoHHoH0Hx#H&H9oHHooH0Hx#H&H&oHHLoH0Hw#H&HoHH)oH0Hw#Hw&HoHHoH0Hw#HT&HoHHoH0Hw#H1&HoHHoH0Hw#H&HoHHoH0Hw#H%HoHHzoH0Hw#H%HoHHWoH0Huw#H%HoHH4oH0Hbw#H%H{oHHoH0HOw#H_%HhoHHoH0HDw#H<%HUoHHoH0H1w#H%HBoHHoH0Hw#H$H/oHHoH0Hw#H$HoHHboH0Hv#H$H oHH?oH0Hv#H$HoHHoH0Hv#Hj$HoHHoH0Hv#HG$HoHHoH0Hv#H$$HoHHoH0Hv#H$HoHHoH0Hv#H#HoHHmoH0Hsv#H#HoHHJoH0H`v#H#HqoHH'oH0HMv#Hu#H^oHHoH0H:v#HR#HKoHHoH0H'v#H/#H8oHHoH0Hv#H #H%oHHoH0Hv#H"HoHHxoH0Hu#H"HoHHUoH0Hu#H"HoHH2oH0Hu#H"HoHHoH0Hu#H]"HoHHoH0Hu#H:"HoHHoH0Hwu#H"HoHHoH0H\u#H!HoHHoH0HIu#H!HzoHH`oH0H6u#H!HgoHH=oH0H#u#H!HToHHoH0Hu#Hh!HAoHHoH0Ht#HE!H.oHHoH0Ht#H"!HoHHoH0Ht#H HoHHoH0Ht#H HoHHkoH0Ht#H HoHHHoH0Ht#H HoHH%oH0Ht#Hs HoHHoH0Hxt#HP HoHHoH0Het#H- HoHHoH0HRt#H HoHHoH0H?t#HHpoHHvoH0H,t#HH]oHHSoH0Ht#HHJoHH0oH0Ht#H~H7oHH oH0Hs#H[H$oHHoH0Hs#H8HoHHoH0Hs#HHoHHoH0Hs#HHoHHoH0Hs#HHoHH^oH0Hs#HHoHH;oH0Hs#HHoHHoH0Hs#HfHoHHoH0Hss#HCHoHHoH0H`s#H HyoHHoH0HMs#HHfoHHoH0HJs#HHSoHHioH0HGs#HH@oHHFoH0HoHHoH0H"o#H2H+oHHoH0Ho#HHoHHoH0Hn#HHoHH{oH0Hn#HHoHHXoH0Hn#HHoHH5oH0Hn#HHoHHoH0Hn#H`HoHHoH0Hn#H=HoHHoH0Hn#HHoHHoH0Hon#HHoHHoH0H\n#HHmoHHcoH0HIn#HHZoHH@oH0H6n#HHGoHHoH0H#n#HkH4oHHoH0Hn#HHH!oHHoH0Hm#H%HoHHoH0Hm#HHoHHoH0Hm#HHoHHnoH0Hm#HHoHHKoH0Hm#HHoHH(oH0Hm#HvHoHHoH0Hm#HSHoHHoH0Hm#H0HoHHoH0H}m#H HvoHHoH0Hrm#HHcoHHyoH0H_m#HHPoHHVoH0HLm#HH=oHH3oH0HAm#HH*oHHoH0H.m#H^HoHHoH0H#m#H;HoHHoH0Hm#HHoHHoH0Hl#HHoHHoH0Hl#HHoHHaoH0Hl#HHoHH>oH0Hl#HHoHHoH0Hl#HiHoHHoH0Hl#HFHoHHoH0Hl#H#HloHHoH0Hxl#HHYoHHoH0Hel#HHFoHHloH0HRl#HH3oHHIoH0H?l#HH oHH&oH0H,l#HtH oHHoH0Hl#HQHoHHoH0Hl#H.HoHHoH0Hk#H HoHHoH0Hk#HHoHHwoH0Hk#HHoHHToH0Hk#HHoHH1oH0Hk#HHoHHoH0Hk#H\HuoHHoH0Hk#H9HboHHȾoH0Hnk#HHOoHHoH0H[k#HHHoHHʹoH0He#HHoHHoH0He#HHoHHoH0He#HHoHHdoH0He#HHoHHAoH0He#HHoHHoH0He#HlHoHHoH0He#HIHroHHسoH0Hve#H&H_oHHoH0Hce#HHLoHHoH0HPe#HH9oHHooH0H=e#HH&oHHLoH0H*e#HHoHH)oH0He#HwHoHHoH0He#HTHoHHoH0Hd#H1HoHHoH0Hd#HHoHHoH0Hd#HHoHHzoH0Hd#HHoHHWoH0Hd#HHoHH4oH0Hd#HH{oHHoH0Hd#H_HhoHHoH0Hld#H<HUoHH˱oH0HYd#HHBoHHoH0HFd#HH/oHHoH0H3d#HHoHHboH0H d#HH oHH?oH0H d#HHoHHoH0Hc#HjHoHHoH0Hc#HGHoHHְoH0Hc#H$HoH_HEHHH[H9HcHHx*ˀHc#HHEHHc#HHEHH1ɺHxπHxH=+J*&PHH5H$]O^HHt.a a4^HxʀH}ʀH}vʀHEHt_H]SATHd$H<$HIHD$pHT$Ht$ ZH8HcHT$`u;H$HxL1ՀL1H|$p ՀHD$pHD$hHHt$hŁH}]H|$pɀHD$`Ht^HHd$xA\[Hd$?H=Rb#Hd$Hd$VHd$Hd$H=cotH=ZouŁHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHHoHH oHH oHHoHHoHHd$UHH$pHpHHEHEHUHuHVHp4HcHU*LH1H}ЀH}H}HoHuOH]HDžxHx1H5V^#H}}HUH=D*JHH5HWH=?oH5P^#H|oHH="oH5[^#HooHH=oH5f^#HboHH=oH5q^#HUoHH=oH5|^#HHoHH=oH5^#H;oHH=oH5^#eH.oHH=toH5^#HH!oHH=WoH5^#+HoHH=:oH5^#HoHH=oH5^#HoHH=oH5_#ԿHoHH=oH5 _#跿HoHH=oH5_#蚿HӾoHH=oH52_#}HƾoHH=oH5=_#`HoHH=ooH5@_#CHoHH=RoH5K_#&HoHH=5oH5V_# HoHH=oH5a_#쾁HoHH=oH5l_#ϾHxoHH=oH5w_#貾HkoHH=oH5_#蕾H^oHH=oH5_#xHQoHH=oH5_#[HDoHH=joH5_#>H7oHH=MoH5_#!H*oHH=0oH5_#HoHH=oH5_#罁HoHH=oH5_#ʽHoHH=ٿoH5_#譽HoHH=oH5 `#落HoHH=oH5 `#sHܽoHH=oH53`#VHϽoHH=eoH5>`#9H½oHH=HoH5Q`#HoHH=+oH5\`#HoHH=oH5g`#⼁HoHH=oH5r`#żHoHH=ԾoH5}`#証HoHH=oH5`#苼HtoHH=oH5`#nHgoHH=}oH5`#QHZoHH=`oH5`#4HMoHH=CoH5`#H@oHH=&oH5`#H3oHH= oH5`#ݻH&oHH=oH5`#HoHH=ϽoH5a#裻H oHH=oH5a#膻HoHH=oH5&a#iHoHH=xoH59a#LHoHH=[oH5Da#/HؼoHH=>oH5Wa#H˼oHH=!oH5ja#HoHH=oH5ua#غHoHH=oH5a#軺HoHH=ʼoH5a#螺HoHH=oH5a#聺HoH2RH}艾H}耾HEHtSHpH]Hd$H=Ta#?Hd$Hd$Hd$UHHd$H}HuH#HEPHEp H},HEH HqZEEEHEpHq5EfDEEHELHEPEHs}HsHELHEP EHsUHsII;uv;MvfH]UHHd$H}uUH1HEHNjUuH]UHHd$H}uUH HEHNjUuUEHs/Hs$EDUUHUH uH_#HH;EvH]UHHd$H}uHdHEHNjUurMHq~EDEEHEH0UEHsx~UHsk~H_#HH;MvH]UHHd$H]H}uUH(HEHNjUuUEHs ~HHs}EfDEEr|HEHU;]vH]H]UHHd$H}uUH0AHEHNjUuOUEHs}Hst}EDUUHUHMuH*;EvH]UHHd$H}HuH~HEPHE@ Hs|EH}UuMHq|E@EEHEH8UEHs|UHs|HEH0EHH;MvH]UHHd$H}H8~H]#HHEHE@ HEHE@HEHEH;ErHEHEEMHq|EDEEHEH0HEP EHs{UHs{EXE;MvEH]UHHd$H}HuH(3}HE@ HEHE@HEHEH;ErHEHEEH}u MHqE{EfDEEHELHEP EHs{UHs{HEH0}IH;MvH]UHHd$H}HuUH`|HEHH}U H]UHH$ H}HuHUH|HDžxHUHu\HH&HcHURHEHU@;BuHEHU@ ;B uHE@@HDž8HE@ PHDžHHE@`HDžXHE@ pHDžhH8HH5qZ#Hx=HxHH=x6*szHEP HEpH}G HEPHE@ HsoxHsdxEDUUHUH UXEHUHM;EvH]UHHd$H}EHuH(yHEHH}E)H]UHHd$H}HuH(cyHEP HEpH}l HEPHE@ HswHswEfUUHUHMHYX# fWHUH U;EvH]UHH$ H}HuHUHxHDžxHUHuDH#HcHURHEHU@;BuHEHU@ ;B uHE@@HDž8HE@ PHDžHHE@`HDžXHE@ pHDžhH8HH5QW#Hx͌HxHH=3*9HH5[HFHEP HEpH}HEPHE@ HsuHsuEUUHUH:uHUHM\HUH U;EvFHxHEHt$HH]UHHd$H}HuEH0vHEP HEpH}HEPHE@ HstHstEDUUHUH U\EHUHM;EvH]UHHd$H}EHuH0.vHEP HEpH}7HEPHE@ Hs_tHsTtEDUUHUH UE\HUHM;EvH]UHHd$H}HuEH0uHEP HEpH}HEPHE@ HssHssEDUUHUH UYEHUHM;EvH]UHHd$H}EHuH(tHEHH}E)H]UHH$H}HuHUHtHDžhHUHx@HHcHp HEHU@ ;BuHE@0HDž(HE@ @HDž8HE@PHDžHHE@ `HDžXH(HH5S#HhوHhHH=/*5HH5[H BHEP HEpH}HEHHqqEDEEHEp HqqEfDEEHHR#HHEHEx HqqEE܃EHELHEP EHs\qDEIsNqHELHEP EHs3qUHs&qCAYXEE;}vHEH8HEP EHspUHspHEH;uv;MvAHhDHpHtcCH]UHH$@HHH}HuUHrH cHH}dH5cHPcH5cH`cHUHx>H=HcHpZ}|BHc]HHH9uoHuH`HH`H}&}tH}uHAcHuH}h}tH cH}HuhHcEHqToE@EtEHH?HHELEHqoHH?HHEHcHuHUH`H`HuHKhHcHUHuHPHPHuHh}[?H5EcHP)cH52cH`cH5cH}cHpHtAHHH]UHHd$H}uUH oHUEBHEUP HEPHE@ HsmHEH5:cHMH}H H]UHHd$H}uUH QoHUEBHEUP HEPHE@ HsmHEH5ʗcHMH}H H]UHHd$H}HnHEPHE@ Hs/mHEH5tcHMH}HP HEHHEHEH]UHH$ H}uUEHfnHDžpHUHu:HHcHU1HEPHE@ HszlHxH5cHxH}H HE@;EvHE@ ;EvHE@8HDž0HE@ HHDž@EXHDžPEhHDž`H0HH5M#Hp]HpHH=(*.HH5cH;HEHHEP EHsvkUHsikHEHH]UHH$ H}uUHlHDžxHUHu8HHcHUHE@;EvHE@ ;EvHE@@HDž8HE@ PHDžHE`HDžXEpHDžhH8HH5L#Hx߀HxHH='*-HH5cH:HEHHEP EHsiUHsiHHE;HxbHEHt<EH]UHHd$H}uUEH8,kHEPHE@ HstiHEH5cHMH}HHE@;EvHE@ ;Ev0HEHHEP EHsiUHsiHEHH]UHHd$H}uUH0jHE@;EvHE@ ;EvHfI#HHE0HEHHEP EHshUHshHHEEH]UHH$pH}HuHUHiHDžxHEHUHu$6HLHcHU6HEHU@HEHU@ HEH8t,HI#HH=$**HH5H7HExvH}3HE@HpHHpHHpaHpHx)HxÀHxH5I#H}ZHUHH=$**HH5]H7HEx vHxvHE@ HpHHpHHp`HpH}oH}€HUH5H#Hx裥HxHH=N#*I)HH5]HG6HEPHE@ Hs/fHkq$fHUHHtHRHH9u,HH#HH="*(HH5H57HxVH}MHEHto8H]UHHd$H}H'gHE@ EEH]UHHd$H}HfHE@EEH]UHHd$H}HuHfHEHH}sH]UHHd$H}HfEHEH8tUHExwIHEx w=HEPHE@ HsdHUHHtHRHH9tEEH]UHH$HLH}HuH}H@eHDžHHH2H;HcHPHuHhI6Hh-8dE*Hh܁dHcEHqcEHhYcuHh06cHuHh5Hh诱cEHC#HH`GHhHcۭݝ`Hh0܁kcHcEHqbEHh護FcuHh5/c}~4}~,HcEHcMHHHcUHqbHcUH9u~HHzE#HHEHHE#HHHHHHH=*%HH5H2HEUPHcEHcMHHHUB HEPHE@ HsaHH5#cHH}HHuHh 4HhaHc]Hqa}EEEHcEHcMHHIIqTaA}EfEEHhHaۭݝ`Hh'ځbaHEHHEP HcEHq`HcEHq`H`HD;e~;]~BHh^3 a1H(H}HHt>3HLH]UHH$HLH}HuH}H aHHH.H6 HcH_HuH`D2H`ح3`HEXHq_}EE܃EHED` Iq_A}EfE؃EHEHHEP HcEHqZ_HcEHqL_<$H`KɁ_H`u_H` _́Z_H`μI_D;e~^H`HB#薽!_H`蕼_;]~H`J1^/H}HHt61HLH]UHH$pH}HuHUHEHHUH@HEHUHHEHBHEH5ˈcH}SH5cH}SH_HUHp+H HcHUuH}HUHu.H5^cH}ERH5NcH}5RHEHtG0H]UHH$HH}HuHX^HEHEHcHH}PH5܇cH}PHDžHXH+H( HcHHEHU@ ;Bu,H-@#HH=*HH5H,HE@ EEHH5 cHH}HEHH5cHH}HUuH}HcH}HuUU؋EHs\HH5]cHH}H6EHq[EUUHUMu4HuMU;EvHW<#HHEMHq[EEEuHqy[EfEELEHEUEHsL[H}UHs8[AH[$fTEEf/EzwHEHE;uv;MviEHo>#(]]HqZEEEHuHEUEHsZHUMHsZHHEEH$fTEEEEEMHqaZ;MsEEfDEEuHq1Z;usEEfDEEH}HEUEHsYLEUAHsYHHEEH$fTf/Ezw)EEEEHEHEEH̵$fTE;uvq;Mv7EH$fTf/EzrE۽HHHDžE۽HHHDžHHH5<#HoHHH=*HH5wH(HEUEHuMHUEHEUM HUEEHMuHEUHMUEHEUEHs]XxHEUtH8#^EHMЋxtHsXEHq XEUUU;UunHUMpLEЋxpHsWH}ЋxtHsWAYHMЋxpHsW;EvuMHqgWEEEHEUEHs@W|E;EuAHuЋ|tHsWHHEEHqVEfDUUU;UuxHuUpLMЋ|pHsVH}DxpLsVEYA \H}Ћ|pHsgV ;EvhHUЋ|tHs>VH :#fWHuЋxtHsVYHuЋ|tHsU;Mv;]vMHqUEEEuHqUEfEEH}HUEEHs|UUHsoULMHEDEFHK;uv밋uHqBUEEELEЋUEHsUUHsUH}EHI;uv;Mv.MHqTEEEuHqTEfEELEЋUEHsTH}UHsTLMHE}xH芈HH50#H請HHH=V *QHH5HOH,#^xpMHq&LEEEHuUEHsKUHsKYpHuUEHsKUHsK;Mv;]vHSvcHuH}EHH H5"vcH} @H5vcH}?HHtHH]UHHd$H}HuEH0LEHEHU@;BuHEHU@ ;B u{HEPHE@ HsJHsJEUUHUH2}HUH U\H$fTf/Ezw ;EvEEH]UHHd$H}H(KHEHHHEHEPHE@ HsJHsJsCEUUHUH Uf/EzwHUHMHHU;EvEH]UHHd$H}H(7KHEHH$fTEHEPHE@ HsdIHsYIs^EUUHUH UHY$fTf/EzwHUH UH4$fTE;EvEH]UHH$ H}HuHUHYJHDžxHUHuHHcHURHEHU@;BuHEHU@ ;B uHE@@HDž8HE@ PHDžHHE@`HDžXHE@ pHDžhH8HH5i,#Hx}^HxHH=* HH5[HHEP HEpH}ZHEPHE@ HsGHswGEUUHUH:uHUHMYHUH U;Ev^Hx貄HEHtH]UHHd$H}H(HHEHHHEHEPHE@ HsFHsFsCEUUHUH Uf/EzrHUHMHHU;EvEH]UHHd$H]H}HuHUH@GHpcHHuH}?HEPHE@ Hs FHEH5QpcHMH}H-HEPHE@ HsEHHsEEEEHEHEUHEHU;]vH]H]UHHd$H}HuHGHEP HEpH} HEHHq:EEEEHEp HqEEfDEEHELHEP EHsDHUz HqDUH)qDHqDHELHEPEHsDUHsDII;uvy;MvGH]UHHd$H}HuHUHPEHEPHE@Hs7DHHEH HEP HsDHsDH}XHEHHqCEEEHEpHqCEfDEEHEx HqCEfDE܃EHEPEHs{CUHsnCUHELHEP EHsPCUHsCCIHEHED@ Iq(CEEЃEHELHEP EHsBUHsBEAYEU܋EHsBEHELHEP EHsBUHsBAXEHELHEP EHs~BUHsqBAD;Ev@;}v;uv;MvZH]UHH$pH}HuHUHEHHUH@HEH5lcH}7HCHUHxHHcHUU؋EHsAHUHqAH9u,He&#HH=o)jHH5HhU܋EHsXAHsMAEfDUUHUMHuЋ}HH;EvEH5kcH}5HEHtH]UHH$ H}HuUMDEDMH_BHDž HDž0HDžXHUHhHHcH`EUH)q_@HqT@E̋E؋UH)qA@Hq6@Eȃ}r }rAHX}H-%#H8EH(HH(HH(:H(H0萇H0 H0H@H$#HHEH(HH0HH(9H0H H 蘛H HPH8HHXˀHXHH=)HH5HHE@Hq>UH9|!HEP Hq>EH9|AHX(|H##H8EH(HH0HH(8H0H H 葚H H@Ht##HHEH(HH0HH('8H0H0蟅H0H0HPH8HHXOHXHH=j)eHH5Hc H}ЋUȋuHEЋHHqB=EEăEHEЋp Hq=EfDEEHELEċUHsHcMHcEH)qS-HcUHuHp}HpH}HEHPHcEHq-E;]~kHcEHUHtHRH9~RHMHtHIHcEH)q,Hq,HcUHuHp }HpH}HEHPHp jH}jH}jHxHt-HhH]UHH$HLH}HuHH-HEHDžHUHxH/HcHpH}*H}HEHE}|,Hw#HH=)HH5HHuH}HEHHH=zG)腹HEHXHIHqHcHHUH}H50#H}HEHE}|,H(#HH=)HH5HH}UuH}HEHHcHq*}EfEEUHuH}HEHHUH}H5p# H}HEH;EuE쉅HDžH}HEHHDžEHDžHHH5a#Hu@HHH=)HH5qHH}HEHAMcIq)A}cEEEUH}HHEHHH5JmCݝH}Uu4D;e~;]~=H}4HHtHrfH}ifHpHtHLH]UHH$HLH}HuHUHMHUHHEHBHEH5ScH}H}*fH}!fH)HEHDžXHUH`HBHcHU(H}EH}NEЋ]Hq'EfDE܃EH}HeDeIq'EE؃EH}uHUHuH}ȹfU؋uH}9@݅@۽0H0HPHDžHHHHuHHX=HXHuH}ȹ5fD;evZHuH}HEHP;]v HXZdH5sQcH}ZH}AdH}8dH}/dHEHtQHLH]UHH$ H}HuH}#dH'HUHu2HZHcHUH}t,H #HH=)HH5HHH=A)HEHUH}H5 #kHpH0HHcH(u H}Hu H}߀H(Ht!H}bHEHtH]UHH5BH=n #詃H]UHH5H=v #ɃH]UHHd$@}Hu}u*HEH=)HHH5HH]UHHd$@}@1@H]UHHd$H}认H]UHHd$}uHcEHcUHH H]UHHd$H0<$HH]UHH$ H(H}HuHDž0HDž8HDž@HDžHHDžPHDžXHDž`HDžhHDžpHDžxHDžHDžHDžHDžHUHuYHHcHU&H}uH}H5 #+a H]H #HsH_HHH #HsH.HHH #Hs HHHH #Hs$HHHH #Hs(HxHxHH #Hs,HpHp1HpiHpHH #Hs0Hh%HhHH #Hs4H`H`H H #H(s8HpTHp1HXiHXH0Hb #H8sHHHHH\HHHHHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$M1LH {#HH5#H >XHx5HxH"HHD$`HD$XHD$PHD$HHD$@HD$8HD$0HD$(HD$ HD$HD$HD$H$M1M11HH5#HM=HnH}u HEYHEHHUH}HMoHEHu HE"HEHxHEH}\hHEHEHEH]UHHd$H}uEH}tS}HEH}HEEHMԋUHuH}HMouH}gEԉE H}gEH]UHHd$H}HuHHU=cH}1HH]UHHd$H}HuUHMHEHEH}H}iHUH}HLoHEHu*H6"H=)ӕHH5HHEHEH}t#HEHPE HuH}HEE HuH}1HEH}fH}t<HEHHEHHEHUHPHE@HEHEHEH]UHHd$H}HuUHEHEUHuH}HH]UHHd$H}HEH}tHEHE@HEHEHEH]UHHd$H]H}H}H}@1kHEHEhHExu\H]HKoH;CuHEH811HKoHEHpHEH8HJoHEH@H}ZHEHEH]H]UHHd$H}HuEH}t;H}t4HEHEH}\HHEHPHEH8HsJo EEH]UHHd$H]H}H@H}HH}HHBJoHH]H]UHHJoH]UHHJoH]UHHd$H}HuHHEH@hH}1u}H} H]UHHd$H=9cuHH59cjH9cH9cH]UHHd$H}N@1THEH]UHHd$H}N@1$HEH]UHHd$H}NHH}H]UHHd$H}HH}H]UHHd$H]UHHd$HEH$HEHD$HE HD$1H]UHHd$H}HEH}t H}+t+HEH$HEHD$HE HD$H}dHEHEHEH]UHHd$H}HuHx u*H"H=)ΕHH5Hۀ1H]UHH$PHXH}HEHEH}t HEH@hHEHEHE虝HEuEH}-EHUHMuH}H/HoHE}u*H4"H=)͕HH5Hڀ} EEgXDž||EHEHc|H4HMH}HGoE HcUH9u |E+E;E~E HcUH9~EE|E;|HEHcUHHE HEHHEHuH}HWGoHEHUuH}HEoHEH}u*HI"H=)̕HH5HـH} H},H}a}H=3pDž` EdDžh ElDžp E$tDžxH}t$HEHPL`HuH} HEL`HuH}1 HE1oEH}t#HEHHHuH}A HEHuH}A1ɺo HEH}t\H} _QH}t)HEHPH4c HuH} HE!H4c HuH}1 HEH}u*H"H=.))˕HH5H'؀kHEHHEH:ݖHxHUH;BtHEHxvHEH1]HE$H^HEHHu茀=HEHUHHEHUHPHE@HUHEHBhHEHEHXH]UHHd$H}EH}t2H}/t%H}tHEHphHEHxP9EEH]UHHd$H}H]UHHd$H}H@H}@H}K @H}HxPH]UHHd$H}uUMDEDUu}L#>oAH]UHHd$H}NH]UHHd$H}Hu H="aEHEHEHEHu H="aH}血H}ht H}[EEH]UHHd$H}EHBoHEHtH}11H^Ao EEH]UHHd$H}HuHUEH}zH}HEHEHthHUHuH}YEH}1Ҿ HEEHEȀfEfEfEfEHEHHuHEEH]UHH$H}HuHUЈMDEDMH}EXD$EPD$EH$DM@DE MU@u@}HEE(EE0EE}tM}8vE8EEHpH0 ҀH3HcH(H}tNH}!ߜHEHu H=:"_HEH$HEHD$HEHD$H}BHE#HEH$HEHD$HEHD$HEHEHEHE@ HUBHM`HUHuH8H8܎HHMH}H5"(ŗSԀH}jH(HtՀHEH]UHH$@HH}HuHUMDEDx}8H,uHlj{wHXHЀH賮HcHutEXD$HEPD$@EHD$8E@D$0E8D$(E0D$ E(D$E D$ED$E$HE`HD$PDxDEMHUHuH}XHp,ӀHHHHπHHcHuuD$(EXD$HEPD$@EHD$8E@D$0E0D$ E(D$E D$ED$E$HE`HD$PDxDEMHUHuH}HptҀHHtSՀ.ՀtEXD$HEPD$@EHD$8E@D$0E8D$(E0D$ E(D$E D$ED$E$HE`HD$PDxDEMHUHuH}HpHpHH]UHHd$H}H]UHHd$@}@uUMDEDMHEHEH1HcuHH}HHEH]UHHd$H}H@HExt8H}H}"H}H}wHExt6HExtH}UH}GH}7HExtHExuH}H}HEpH} H}HEpH} H}HEpH}HExv H}HEpH}HExv H}{HEpH}kHExv H}SHEpH}CHEx vH}+HEp H}1H}H]UHHd$H}uHEHxtHEHHHEHc@ċUHE@H]Hd$HP`Hd$Hd$HPhHd$Hd$HPpHd$Hd$HPxHd$Hd$HHd$Hr Hw0Hr Hw0HPr H`s0Hr Hw0Hr Hw0H`r Hkw0Hr HvH~t Hu0Hd$;oHd$Hd$A:oHd$Hd$:oHd$SHd$HH08oH8%HT$HHH 8oH 8oH8%HT$ Ht$HH7o|$%H;7oH8%gH=:o%OH7oH8%4H 7oH8%H7oH8%H6oH8%H6oH8%H6oH8%H6oH8%H6oH8%wH6oH8%t`H6oH8%tIH6oH8%t2H6oH8%tH6oH8%t0Hd$[SHd$H%HT$HHH5oj$ u|$|1tIHL6oH8%t2HE6oH8%tH>6oH8%t0Hd$[SHd$HB%tTHT$HHHR5ot<$ u|$|1tH5oH8%t0Hd$[SHd$Hr%HT$HHH4o$ u|$|1HX5oH8%HM5oH8%HB5oH8%gH75oH8%LH,5oH8%1H!5oH8%H5oH8%H 5oH8%H5oH8%H4oH8%H4oH8%H=5o%wH4oH8%t`H4oH8%tIH4oH8%t2H4oH8%tH4oH8%t0Hd$[SHd$H%tTHT$HHH2ot<$ u|$|1tH44oH8%t0Hd$[SATAUHd$IAHD$`HHt$ÀH HcHT$XuTLÄtFDLHv2oH1H|$`E>Ht$`H=I"4tH3oH8t0ƀH|$`2HD$XHtȀHd$pA]A\[SATAUHd$IAHD$`HHt$%ÀHMHcHT$XuQLÄtCDLH1oH1H|$`=Ht$`H="ttH=3ot0ŀH|$`A2HD$XHtbǀHd$pA]A\[SATAUHd$IAHD$`HHt$e€H荠HcHT$Xu?LYÄt1DLH0oH1H|$`KLL1OLOJuH|$h)HD$XHt쾀HHd$pA]A\[SATHd$E0HoHHHH5"H)oHHH5"H)oHHH5"qHj'oHHH5"XHA*oHH5"BHK'oHHH5")HB'oHHH5"H9'oHHH5"H0'oHHH5"H''oHHH5"H'oHHH5"H'oHHH5"H 'oHHH5"zH'oHHH5"aH&oHHH5"HH&oHHH5"/H&oHHH5"H&oHHH5"H&oHHH5"H&oHHH5"H&oHHH5"H&oHHH5"H&oHHH5"H&oHHH5"gH&oHHH5"NH&oHHH5"5H&oHHH5"H&oHHH5"H|&oHHH5"Hs&oHHH5"Hj&oHHH5"Ha&oHHH5"HX&oHHH5"HO&oHHH5"mHF&oHHH5"THM'oHH5">H'&oHHH5"%H&oHHH5" H&oHHH5"H &oHHH5w"H&oHHH5v"H&oHH5"H&oHHH5"H%oHHH5~"yH%oHHH5}"`H%oHHH5|"GH%oHHH5{".H%oHHH5z"H%oHHH5y"H%oHHH5x"H%oHH"oADHd$A\[Hd$Hd$SHd$HHD$hHHt$̴HHcHT$Xu0H1H|$hI/HD$hHD$`Hh oH8Ht$`H賷H|$h $HD$XHt*HHd$p[SATAUAVAWIHL 8HuMuE0HuHLoHuHlHHfDLMuH5lHYIHt3LMtH@N, L9tA|$ uAE< tuALE0DA_A^A]A\[SHH="HY$oHHO$oH8uH="jHC$oHH9$oH8uH="DH-$oHH#$oH8uH="H&oHH &oH8uH="H&oHH%oH8uH="H%oHH%oH8u[Hd$$H$Hd$SHd$H$HT$Ht$ ^H膐HcHT$`0ۿHhoHH1,H4$H="H= "H#oHH#oH8H="H"oHH"oH8H="H"oHH"oH8]H="H"oHH"oH86H="yH"oHH"oH8H="RH"oHH"oH8H="+H"oHHz"oH8H="Hm"oHHc"oH8H="HV"oHHL"oH8sH={"H?"oHH5"oH8LH=l"H("oHH"oH8%H=]"hH"oHH"oH8H=N"AH!oHH!oH8H=G"H!oHH!oH8H=8"H!oHH!oH8H=1"H!oHH!oH8bH=*"H!oHH!oH8;H=#"~H!oHH}!oH8H="WHp!oHHf!oH8H= "0HY!oHHO!oH8H=" HB!oHH8!oH8H="H+!oHH!!oH8xH="H!oHH !oH8QH="H oHH oH8*H="mH oHH oH8H="FH oHH oH8H="H oHH oH8H="H oHH oH8H="H oHH oH8tkH={"Hw oHHm oH8tHH=h"Hd oHHZ oH8t%H=]"hHQ oHHG oH8tjHHD$`Ht㱀Hd$p[SHH="H9 oHH/ oH8uH="H# oHH oH8uH="H oHH oH8uH="HoHHoH8uH="xHoHHoH8uH="RHoHHoH8uH=",HoHHoH8uH="HoHHoH8uH="HoHHoH8uH="HsoHHioH8uH="H]oHHSoH8uH=s"nHGoHH=oH8uH=e"HH1oHH'oH8uH=W""HoHHoH8uH=I"HoHHoH8uH=;"HoHHoH8uH=-"HoHHoH8uH="HoHHoH8uH="dHoHHoH8uH=">HoHHoH8uH="HoHHwoH8uH="HkoHHaoH8uH="HUoHHKoH8uH="H?oHH5oH8uH="H)oHHoH8uH="ZHoHH oH8uH="4HoHHoH8uH="HoHHoH8uH="HoHHoH8uH=w"HoHHoH8uH=i"HoHHoH8uH=["vHoHHoH8uH=M"PHyoHHooH8uH=?"*HcoHHYoH8uH=1"HMoHHCoH8uH=#"H7oHH-oH8uH="H!oHHoH8uH="H oHHoH8uH="lHoHHoH8uH="FHoHHoH8uH=" HoHHoH8uH="HoHHoH8uH="HoHHoH8uH="HoHH}oH8uH="HqoHHgoH8uH="bH[oHHQoH8uH[Hd$$H$Hd$SHd$H$HT$Ht$ ޥHHcHT$`U0ۿHoHH1I H4$H=&"9 H=*"HoHHoH8H="nHoHH}oH8H="GHpoHHfoH8H=" HYoHHOoH8H="HBoHH8oH8]H="H+oHH!oH86H="HoHH oH8H="HoHHoH8H="]HoHHoH8H="6HoHHoH8H="HoHHoH8sH="HoHHoH8LH=~"HoHHoH8%H=o"HsoHHioH8H=`"sH\oHHRoH8H=Q"LHEoHH;oH8H=B"%H.oHH$oH8H=3"HoHH oH8bH=$"HoHHoH8;H="HoHHoH8H="HoHHoH8H="bHoHHoH8H=";HoHHoH8H="HoHHoH8xH="HvoHHloH8QH="H_oHHUoH8*H="HHoHH>oH8H="xH1oHH'oH8H="QHoHHoH8H="*HoHHoH8H=p"HoHHoH8tkH=e"HoHHoH8tHH=Z"HoHHoH8t%H=O"HoHHoH8t蜣HHD$`HtHd$p[SHd$H$HT$Ht$ HF~HcHT$`0ۿH(nHH1H4$H="yH="HoHHoH8tkH="HoHHoH8tHH="HoHHoH8t%H="lHoHHoH8tnHHD$`Ht磀Hd$p[SHd$H$HT$Ht$ H}HcHT$`uV0ۿHnHH1]H4$H=R"Mt%H=Z"HoHH oH8t诡HHD$`Ht(Hd$p[SHd$H$HT$Ht$ .HV|HcHT$`u30ۿHoHH4oH8H="~H'oHHoH8H="WHoHHoH8H= "0HoHHoH8tkH= " HoHHoH8tHH="HoHHoH8t%H="HoHHoH8tɛH!HD$`HtBHd$p[SHd$H$HT$Ht$ NHvvHcHT$`u30ۿH\nHH1H4$H="t2HHD$`Ht諜Hd$p[SHd$H$HT$Ht$ 辗HuHcHT$`u30ۿHnHH1-H4$H=:"t袚HHD$`HtHd$p[SHd$H$HT$Ht$ .HVuHcHT$`u30ۿH oHH4 oH8= H="^H' oHH oH8 H="7H oHH oH8H="H oHH oH8H="H oHH oH8H="H oHH oH8zH="H oHH oH8SH=q"tH oHH oH8,H=b"MH oHH| oH8H=S"&Ho oHHe oH8H=D"HX oHHN oH8H=5"HA oHH7 oH8H=&"H* oHH oH8iH="H oHH oH8BH="cH oHH oH8H="HfdHcHT$`u30ۿHLnHH1H4$H="t"HzHD$`Ht蛊Hd$p[SHd$H$HT$Ht$ 讅HcHcHT$`u30ۿHnHH1H4$H=:" t蒈HHD$`Ht Hd$p[SHd$H$HT$Ht$ HFcHcHT$`uV0ۿH,nHH1H4$H="}t%H="HvoHHloH8t߇H7HD$`HtXHd$p[SHd$H$HT$Ht$ ^HbHcHT$`uV0ۿHlnHH1H4$H=R"t%H=b"HoHHoH8tHwHD$`Ht蘈Hd$p[SHd$H$HT$Ht$ 螃HaHcHT$`u30ۿHnHH1 H4$H="t肆HHD$`HtHd$p[SHd$H$HT$Ht$ H6aHcHT$`uV0ۿHnHH1}H4$H="mt%H="HoHH|oH8tυH'HD$`HtHHd$p[SHd$H$HT$Ht$ NHv`HcHT$`u30ۿH\nHH1H4$H= "t2HHD$`Ht諆Hd$p[SHd$H$HT$Ht$ 辁H_HcHT$`u30ۿHnHH1-H4$H="t袄HHD$`HtHd$p[SHd$H$HT$Ht$ .HV_HcHT$`y0ۿH8nHH1H4$H=F"tHH=N"HnHHnH8t%H=C"HnHHnH8tȃH HD$`HtAHd$p[SHd$H$HT$Ht$ NHv^HcHT$`y0ۿHXnHH1H4$H="tHH=" HnHHnH8t%H="HnHHnH8t肀H@HD$`HtaHd$p[SHd$H$HT$Ht$ nH]HcHT$`"0ۿHxnHH1H4$H=F"H=J"%H.nHH$nH8H=C"HnHH nH8H=<"HnHHnH8xH=5"HnHHnH8QH=."HnHHnH8*H='"bHnHHnH8H=";HnHHnH8H= "HnHHnH8H="HvnHHlnH8H="H_nHHUnH8tkH="HLnHHBnH8tHH="H9nHH/nH8t%H="]H&nHHnH8t_HHD$`Ht؁Hd$p[SHd$H$HT$Ht$ |H[HcHT$`0ۿHnHH1IH4$H=v"9H=z"HnnHHdnH8H=c"nHWnHHMnH8tkH=P"KHDnHH:nH8tHH=="(H1nHH'nH8t%H=*"HnHHnH8tH_HD$`Ht耀Hd$p[SHd$H$HT$Ht$ {HYHcHT$`0ۿHnHH1H4$H="xH="EHnnHHdnH8QH="HWnHHMnH8*H="H@nHH6nH8H=}"H)nHHnH8H=v"HnHHnH8H=o"HnHHnH8H=X"[HnHHnH8tkH=M"8HnHHnH8tHH=:"HnHHnH8t%H=7"HnHHnH8t|HLHD$`Htm~Hd$p[SHd$H$HT$Ht$ ~yHWHcHT$`y0ۿHnHH1H4$H="tHH="9HnHHnH8t%H="HnHHnH8t|HpHD$`Ht}Hd$p[SHd$H$HT$Ht$ xHVHcHT$`u30ۿHnHH1 H4$H=R"t{HHD$`Ht|Hd$p[SHd$H$HT$Ht$ xH6VHcHT$`u30ۿHnHH1}H4$H="mtzHJHD$`Htk|Hd$p[SHd$H$HT$Ht$ ~wHUHcHT$`0ۿHnHH1H4$H="H="5HnHHnH8H=s"HnHHnH8tkH=`"HnHHnH8tHH=U"HnHHnH8t%H=R"HnHHnH8tyHHD$`Ht {Hd$p[SHd$H$HT$Ht$ .vHVTHcHT$`y0ۿH8nHH1H4$H=޾"tHH="HnHHnH8t%H=۾"HnHHnH8txH HD$`HtAzHd$p[SHd$H$HT$Ht$ NuHvSHcHT$`uV0ۿH\nHH1H4$H=b"t%H=j" HVnHHLnH8txHgHD$`HtyHd$p[SHd$H$HT$Ht$ tHRHcHT$`0ۿHnHH1H4$H="H="EHnHHnH8bH=۽"HnHH}nH8;H=̽"HpnHHfnH8H="оHYnHHOnH8H="詾HBnHH8nH8H="肾H+nHH!nH8H="[HnHH nH8xH="4HnHHnH8QH=r" HnHHnH8*H=c"HnHHnH8H=T"追HnHHnH8H=E"蘽HnHHnH8H=6"qHnHHnH8H='"JHsnHHinH8tkH="'H`nHHVnH8tHH="HMnHHCnH8t%H="H:nHH0nH8ttH;HD$`Ht\vHd$p[SHd$H$HT$Ht$ nqHOHcHT$`u30ۿH|nHH1H4$H="ͼtRtHHD$`HtuHd$p[SHd$H$HT$Ht$ pHOHcHT$`u30ۿHnHH1MH4$H=B"=tsHHD$`Ht;uHd$p[SHd$H$HT$Ht$ NpHvNHcHT$`u30ۿH\nHH1H4$H="譻t2sHHD$`HttHd$p[SHd$H$HT$Ht$ oHMHcHT$`uV0ۿHnHH1-H4$H="t%H="}HnHHnH8trHHD$`HtsHd$p[SHd$H$HT$Ht$ nH&MHcHT$`u30ۿH nHH1mH4$H="]tqH:HD$`Ht[sHd$p[SHd$H$HT$Ht$ nnHLHcHT$`0ۿHxnHH1H4$H="ɹtkH=")HnHHnH8tHH="HnHHnH8t%H="H|nHHrnH8tpH=HD$`Ht^rHd$p[SHd$H$HT$Ht$ nmHKHcHT$`uV0ۿH|nHH1H4$H=*"͸t%H=2"-HnHHnH8t/pHHD$`HtqHd$p[SHd$H$HT$Ht$ lHJHcHT$`u30ۿHnHH1H4$H=" toHHD$`Ht qHd$p[SHd$H$HT$Ht$ lHFJHcHT$`u30ۿH,nHH1H4$H=R"}toHZHD$`Ht{pHd$p[SHd$H$HT$Ht$ kHIHcHT$`u30ۿHnHH1H4$H="trnHHD$`HtoHd$p[SHd$H$HT$Ht$ jH&IHcHT$`u30ۿH nHH1mH4$H="]tmH:HD$`Ht[oHd$p[SHd$H$HT$Ht$ njHHHcHT$`u30ۿH|nHH1H4$H=:"͵tRmHHD$`HtnHd$p[SHd$H$HT$Ht$ iHHHcHT$`u30ۿHnHH1MH4$H="=tlHHD$`Ht;nHd$p[SHd$H$HT$Ht$ NiHvGHcHT$`0ۿHXnHH1H4$H="詴H="HnHHnH8H={"޳HnHHnH8H=l"跳HnHHnH8tkH=a"蔳H}nHHsnH8tHH=V"qHjnHH`nH8t%H=S"NHWnHHMnH8tPkHHD$`HtlHd$p[SHd$H$HT$Ht$ gHFHcHT$`0ۿHnHH1IH4$H=ֶ"9QH=ڶ"蕲HnHHnH8*H=˶"nHnHHnH8H="GHnHHvnH8H=" HinHH_nH8H="HRnHHHnH8H="ұH;nHH1nH8tkH=|"诱H(nHHnH8tHH=q"茱HnHH nH8t%H=f"iHnHHnH8tkiHHD$`HtjHd$p[SHd$H$HT$Ht$ eHDHcHT$`0ۿHnHH1YH4$H="IXH="襰HNnHHDnH81H=۵"~H7nHH-nH8 H=̵"WH nHHnH8H="0H nHHnH8H=" HnHHnH8H="HnHHnH8nH="軯HnHHnH8GH=q"蔯HnHHnH8 H=Z"mHnHHnH8H=C"FHnHHunH8H=,"HhnHH^nH8H="HQnHHGnH8H="ѮH:nHH0nH8]H="誮H#nHHnH86H="胮H nHHnH8H=ٴ"\HnHHnH8H=´"5HnHHnH8H="HnHHnH8H="HnHHnH8sH=}"HnHHnH8LH=f"虭HnHHxnH8%H=O"rHknHHanH8H=8"KHTnHHJnH8H=!"$H=nHH3nH8H="H&nHHnH8H= "֬HnHHnH8bH="诬HnHHnH8;H="般HnHHnH8H="aHnHHnH8H=":HnHHnH8H="HnHHnH8H=ѳ"HnHH{nH8xH=³"ūHnnHHdnH8QH="螫HWnHHMnH8*H="wH@nHH6nH8H="PH)nHHnH8H=")HnHHnH8H="HnHHnH8H=x"۪HnHHnH8tkH=m"踪HnHHnH8tHH=j"蕪HnHHnH8t%H=g"rHnHHnH8ttbHHD$`HtcHd$p[SHd$H$HT$Ht$ ^H&=HcHT$`0ۿHnHH1iH4$H="YtkH="蹩HnHHnH8tHH="薩HnHHnH8t%H="sHnHHnH8tuaHHD$`HtbHd$p[SHd$H$HT$Ht$ ]H&<HcHT$`u30ۿH nHH1mH4$H=z"]t`H:HD$`Ht[bHd$p[SHd$H$HT$Ht$ n]H;HcHT$`u30ۿH|nHH1H4$H="ͨtR`HHD$`HtaHd$p[SHd$H$HT$Ht$ \H;HcHT$`u30ۿHnHH1MH4$H="=t_HHD$`Ht;aHd$p[SHd$H$HT$Ht$ N\Hv:HcHT$`u30ۿH\nHH1H4$H=b"譧t2_HHD$`Ht`Hd$p[SHd$H$HT$Ht$ [H9HcHT$`0ۿHȷnHH1)H4$H="QH="uHnHHnH8*H="NHnHHnH8H="'HnHHnH8H=հ"HnHHnH8H=ư"٥HnHHnH8H="貥H{nHHqnH8tkH="菥HhnHH^nH8tHH="lHUnHHKnH8t%H="IHBnHH8nH8tK]HHD$`Ht^Hd$p[SHd$H$HT$Ht$ YH7HcHT$`80ۿHصnHH19H4$H=")H="腤HnHHnH8H="^HwnHHmnH8H="7H`nHHVnH8H=ݯ"HInHH?nH8tkH=ʯ"H6nHH,nH8tHH="ʣH#nHHnH8t%H="解HnHHnH8t[HHD$`Ht"]Hd$p[SHd$H$HT$Ht$ .XHV6HcHT$`u30ۿH"9H2nHH(nH8tHH=3"HnHHnH8t%H=("H nHHnH8tAHMHD$`HtnCHd$p[SHd$H$HT$Ht$ ~>HHcHT$`0ۿHnHH1H4$H="ىH="5H^nHHTnH8tkH="HKnHHAnH8tHH="H8nHH.nH8t%H="̈H%nHHnH8t@H&HD$`HtGBHd$p[SHd$H$HT$Ht$ N=HvHcHT$`I0ۿHXnHH1蹷H4$H=&"詈H=*"HnnHHdnH8H="އHWnHHMnH8H= "跇H@nHH6nH8H="萇H)nHHnH8xH="iHnHHnH8QH="BHnHHnH8*H="HnHHnH8H=ɡ"HnHHnH8H="͆HnHHnH8H="覆HnHHnH8H="HnHH~nH8tkH="\HunHHknH8tHH="9HbnHHXnH8t%H={"HOnHHEnH8t>HpHD$`Ht?Hd$p[SHd$H$HT$Ht$ :HHcHT$`y0ۿHnHH1 H4$H="tHH="YHnHHnH8t%H="6HnHHnH8t8=H萩HD$`Ht>Hd$p[SHd$H$HT$Ht$ 9HHcHT$`u30ۿH̕nHH1-H4$H="tHd$p[SHd$H$HT$Ht$ .9HVHcHT$`0ۿH8nHH1虳H4$H=."艄H=:"HNnHHDnH8H=+"较H7nHH-nH8xH="藃H nHHnH8QH= "pH nHHnH8*H="IHnHHnH8H=""HnHHnH8H="HnHHnH8H=џ"ԂHnHHnH8H=Ÿ"譂HnHHnH8tkH="节HnHHynH8tHH="gHpnHHfnH8t%H="DH]nHHSnH8tF:H螦HD$`Ht;Hd$p[SHd$H$HT$Ht$ 6HHcHT$`0ۿHؒnHH19H4$H=6")H=:"腁HnHHnH8H=+"^HnHHnH8H="7HnHHvnH8XH= "HinHH_nH81H="HRnHHHnH8 H="€H;nHH1nH8H="蛀H$nHHnH8H=ў"tH nHHnH8H=ž"MHnHHnH8nH="&HnHHnH8GH="HnHHnH8 H="HnHHnH8H="HnHHnH8H=w"HnHHynH8H=h"cHlnHHbnH8H=Y"<HUnHHKnH8]H=J"H>nHH4nH86H=;"~H'nHHnH8H=,"~HnHHnH8H="~HnHHnH8H="y~HnHHnH8H="R~HnHHnH8sH="+~HnHHnH8LH="~HnHHnH8%H=ҝ"}HnHH|nH8H=Ý"}HonHHenH8H="}HXnHHNnH8H="h}HAnHH7nH8H="A}H*nHH nH8bH="}HnHH nH8;H=x"|HnHHnH8H=i"|HnHHnH8H=Z"|HnHHnH8H=K"~|HnHHnH8H=<"W|HnHHnH8xH=-"0|HnHHnH8QH=" |HrnHHhnH8*H="{H[nHHQnH8H="{HDnHH:nH8H="{H-nHH#nH8H="m{HnHH nH8H=Ӝ"F{HnHHnH8tkH=Ȝ"#{HnHHnH8tHH=Ŝ"{HnHHnH8t%H="zHnHHnH8t2H7HD$`HtX4Hd$p[SHd$H$HT$Ht$ ^/H HcHT$`u30ۿHlnHH1ͩH4$H=:"ztB2H蚞HD$`Ht3Hd$p[SHd$H$HT$Ht$ .H HcHT$`u30ۿH܊nHH1=H4$H="-zt1H HD$`Ht+3Hd$p[SHd$H$HT$Ht$ >.Hf HcHT$`y0ۿHHnHH1詨H4$H="ytHH="xHnHHnH8t%H="xH߿nHHտnH8t0H0HD$`HtQ2Hd$p[SHd$H$HT$Ht$ ^-H HcHT$`u30ۿHlnHH1ͧH4$H=""xtB0H蚜HD$`Ht1Hd$p[SHd$H$HT$Ht$ ,H HcHT$`u30ۿH܈nHH1=H4$H=š"-xt/H HD$`Ht+1Hd$p[SHd$H$HT$Ht$ >,Hf HcHT$`80ۿHHnHH1試H4$H=f"wH=r"vHnHHnH8H=c"vHnHHnH8H=\"vHnHHֽnH8H=U"vHɽnHHnH8tkH=R"]vHnHHnH8tHH=G":vHnHHnH8t%H=D"vHnHHnH8t.HqHD$`Ht/Hd$p[SHd$H$HT$Ht$ *HHcHT$`uV0ۿHnHH1 H4$H=ʙ"ut%H=ҙ"]uHnHHܼnH8t_-H跙HD$`Ht.Hd$p[SHd$H$HT$Ht$ )HHcHT$`0ۿHnHH1IH4$H=N"9uH=R"tH.nHH$nH8sH=C"ntHnHH nH8LH=4"GtHnHHnH8%H=%" tHnHH߻nH8H="sHһnHHȻnH8H="sHnHHnH8H="sHnHHnH8H="sHnHHnH8bH=ژ"]sHvnHHlnH8;H=˘"6sH_nHHUnH8H="sHHnHH>nH8H="rH1nHH'nH8H="rHnHHnH8H="rHnHHnH8xH="srHnHHnH8QH=q"LrHպnHH˺nH8*H=b"%rHnHHnH8H=S"qHnHHnH8H=D"qHnHHnH8H=5"qHynHHonH8H=&"qHbnHHXnH8tkH="fqHOnHHEnH8tHH="CqHHf~HcHT$`u30ۿHLynHH1譗H4$H=j"ht" HzHD$`Ht!Hd$p[SHd$H$HT$Ht$ H~HcHT$`u30ۿHxnHH1H4$H= " htHHD$`Ht !Hd$p[SHd$H$HT$Ht$ HF~HcHT$`80ۿH(xnHH1艖H4$H="ygH="fH^nHHTnH8H="fHGnHH=nH8H="fH0nHH&nH8H=}"`fHnHHnH8tkH=z"=fHnHHnH8tHH=o"fHnHHnH8t%H=l"eHnHH֯nH8tHQHD$`HtrHd$p[SHd$H$HT$Ht$ ~H~HcHT$`u30ۿHvnHH1H4$H="etbH躉HD$`HtHd$p[SHd$H$HT$Ht$ H~HcHT$`?0ۿHunHH1YH4$H="Ie H="dHnHHnH8H="~dHnHH}nH8H=|"WdHpnHHfnH8H=m"0dHYnHHOnH8nH=^" dHBnHH8nH8GH=O"cH+nHH!nH8 H=@"cHnHH nH8H=1"cHnHHnH8H=""mcHnHHܭnH8H="FcHϭnHHŭnH8H="cHnHHnH8]H="bHnHHnH86H="bHnHHnH8H="bHsnHHinH8H="bH\nHHRnH8H="\bHEnHH;nH8H="5bH.nHH$nH8sH=ۏ"bHnHH nH8LH=ԏ"aHnHHnH8%H=͏"aHnHH߬nH8H=Ώ"aHҬnHHȬnH8H=Ϗ"raHnHHnH8H=Џ"KaHnHHnH8H=я"$aHnHHnH8bH=ҏ"`HvnHHlnH8;H=ˏ"`H_nHHUnH8H=ď"`HHnHH>nH8H=ŏ"`H1nHH'nH8H=Ə"a`HnHHnH8H=Ǐ":`HnHHnH8xH=ȏ"`HnHHnH8QH=ɏ"_HիnHH˫nH8*H=ʏ"_HnHHnH8H=ӏ"_HnHHnH8H=܏"w_HnHHnH8H="P_HynHHonH8H=")_HbnHHXnH8tkH="_HOnHHEnH8tHH="^HnH8*H=O"X\H1nHH'nH8H=O"1\HnHHnH8H=O" \HnHHnH8H=O"[HnHHnH8H=O"[HՍnHHˍnH8tkH=O"[HnHHnH8tHH=O"v[HnHHnH8t%H=O"S[H܍nHHҍnH8tUHHD$`HtHd$p[SHd$H$HT$Ht$ H~HcHT$`u30ۿHknHH1MH4$H="=[tHHD$`Ht;Hd$p[SHd$H$HT$Ht$ NHv~HcHT$`u30ۿH\knHH1轉H4$H=J"Zt2H~HD$`HtHd$p[SHd$H$HT$Ht$ H~HcHT$`0ۿHjnHH1)H4$H="ZH="uYHnHHnH8H=ۋ"NYHnHH}nH8tkH=Ћ"+YHtnHHjnH8tHH=͋"YHanHHWnH8t%H=ʋ"XHNnHHDnH8tH?}HD$`Ht`Hd$p[SHd$H$HT$Ht$ n H~HcHT$`_0ۿHxinHH1هH4$H=^"X*H=Z"%XHnHHnH8H=K"WHnHH}nH8H=<"WHpnHHfnH8H=%"WHYnHHOnH8H="WHBnHH8nH8tkH="fWH/nHH%nH8tHH="CWHnHHnH8t%H=" WH nHHnH8t"Hz{HD$`HtHd$p[SHd$H$HT$Ht$  H~HcHT$`0ۿHgnHH1H4$H=v" WH="eVH^nHHTnH8tkH=w"BVHKnHHAnH8tHH=t"VH8nHH.nH8t%H=i"UH%nHHnH8t HVzHD$`HtwHd$p[SHd$H$HT$Ht$ ~ H~HcHT$`0ۿHfnHH1H4$H="UtkH="9UHrnHHhnH8tHH="UH_nHHUnH8t%H="THLnHHBnH8t HMyHD$`HtnHd$p[SHd$H$HT$Ht$ ~ H~HcHT$`0ۿHenHH1H4$H=v"TH="5THnHHnH8xH=k"THnHHnH8QH=\"SHnHHvnH8*H=E"SHinHH_nH8H=."SHRnHHHnH8H="rSH;nHH1nH8H="KSH$nHHnH8H="$SH nHHnH8tkH="SHnHHnH8tHH=ۈ"RHnHHݟnH8t%H=؈"RHԟnHHʟnH8t HwHD$`Ht6 Hd$p[SHd$H$HT$Ht$ >Hf~HcHT$`0ۿHHcnHH1詁H4$H=V"RH=Z"QH^nHHTnH8H=S"QHGnHH=nH8tkH=H"QH4nHH*nH8tHH=="QH!nHHnH8t%H=2"eQHnHHnH8tg HuHD$`Ht Hd$p[SHd$H$HT$Ht$ H~HcHT$`0ۿHanHH1YH4$H="IQH="PH^nHHTnH8H="~PHGnHH=nH8tkH="[PH4nHH*nH8tHH="8PH!nHHnH8t%H="PHnHHnH8tHotHD$`Ht Hd$p[SHd$H$HT$Ht$ H~HcHT$`u30ۿH`nHH1 H4$H=*"OtHsHD$`HtHd$p[SHd$H$HT$Ht$ H6~HcHT$`0ۿH`nHH1y~H4$H=Ɔ"iOxH=ʆ"NHΝnHHĝnH8QH=Æ"NHnHHnH8*H="wNHnHHnH8H="PNHnHHnH8H=A")NHnHHnH8H=A"NHnHHnH8H=A"MHnHHnH8tkH= A"MHnHHnH8tHH=JA"MHnHHnH8t%H=GA"rMHnHHnH8ttHqHD$`HtHd$p[SHd$H$HT$Ht$ H&~HcHT$`y0ۿH^nHH1i|H4$H=f"YMtHH=n"LHnHHnH8t%H=c"LHnHHnH8tHpHD$`HtHd$p[SHd$H$HT$Ht$ HF~HcHT$`u30ۿH,]nHH1{H4$H="}LtHZpHD$`Ht{Hd$p[SHd$H$HT$Ht$ H~HcHT$`y0ۿH\nHH1zH4$H="KtHH="IKHnHHnH8t%H="&KHnHHnH8t(HoHD$`HtHd$p[SHd$H$HT$Ht$ H~HcHT$`u30ۿH[nHH1zH4$H=" KtHnHD$`Ht Hd$p[SHd$H$HT$Ht$ HF~HcHT$`u30ۿH,[nHH1yH4$H="}JtHZnHD$`Ht{Hd$p[SHd$H$HT$Ht$ H~HcHT$`uV0ۿHZnHH1xH4$H=R"It%H=Z"MIH֘nHH̘nH8tOHmHD$`HtHd$p[SHd$H$HT$Ht$ H~HcHT$`u30ۿHYnHH1=xH4$H=ڂ"-ItH mHD$`Ht+Hd$p[SHd$H$HT$Ht$ >Hf~HcHT$`u30ۿHLYnHH1wH4$H="Ht"HzlHD$`HtHd$p[SHd$H$HT$Ht$ H~HcHT$`u30ۿHXnHH1wH4$H="" HtHkHD$`Ht Hd$p[SHd$H$HT$Ht$ HF~HcHT$`)0ۿH(XnHH1vH4$H=Ɓ"yGH=ʁ"FHnnHHdnH8H="FHWnHHMnH8H="FH@nHH6nH8H="`FH)nHHnH8XH=n"9FHnHHnH81H=W"FHnHHnH8 H=@"EHnHHڕnH8H=)"EH͕nHHÕnH8H="EHnHHnH8H="vEHnHHnH8nH="OEHnHH~nH8GH=̀"(EHqnHHgnH8 H="EHZnHHPnH8H="DHCnHH9nH8H="DH,nHH"nH8H=q"DHnHH nH8H=Z"eDHnHHnH8]H=C">DHnHHݔnH86H=,"DHДnHHƔnH8H="CHnHHnH8H="CHnHHnH8H="CHnHHnH8H="{CHtnHHjnH8sH="TCH]nHHSnH8LH="-CHFnHHHnHHnH8t%H=}"F>HnHHnH8tHHbHD$`HtHd$p[SHd$H$HT$Ht$ H~HcHT$`0ۿHNnHH19mH4$H=}")>tkH=.}"=HBnHH8nH8tHH=+}"f=H/nHH%nH8t%H=0}"C=HnHHnH8tEHaHD$`HtHd$p[SHd$H$HT$Ht$ H~HcHT$`_0ۿHMnHH19lH4$H=|")=*H=|"nH86H=-{"9H1nHH'nH8H={"8HnHHnH8H=z"8HnHHnH8H=z"8HnHHnH8H=z"|8HՌnHHˌnH8sH=z"U8HnHHnH8LH=z".8HnHHnH8%H=z"8HnHHnH8H=uz"7HynHHonH8H=^z"7HbnHHXnH8H=Gz"7HKnHHAnH8H=0z"k7H4nHH*nH8bH=z"D7HnHHnH8;H=z"7HnHHnH8H=y"6HnHHnH8H=y"6H؋nHH΋nH8H=y"6HnHHnH8H=y"6HnHHnH8xH=y"Z6HnHHnH8QH=y"36H|nHHrnH8*H=y" 6HenHH[nH8H=y"5HNnHHDnH8H=ky"5H7nHH-nH8H=\y"5H nHHnH8H=My"p5H nHHnH8tkH=By"M5HnHHnH8tHH=7y"*5HnHHيnH8t%H=,y"5HЊnHHƊnH8t HaYHD$`HtHd$p[SHd$H$HT$Ht$ H~HcHT$`)0ۿHEnHH1cH4$H=x"4H=""E4HcnHHcnH8H=s""4HbnHHbnH8H=|""3HbnHHbnH8H=""3HbnHHbnH8XH=F""3HbnHHbnH81H=O""3HbnHHbnH8 H=X""[3HbnHHzbnH8H=""43HMbnHHCbnH8H=""" 3HFbnHHnHH1m\H4$H=q"]-tH:QHD$`Ht[Hd$p[SHd$H$HT$Ht$ nH薿~HcHT$`u30ۿH|=nHH1[H4$H=:q",tRHPHD$`HtHd$p[SHd$H$HT$Ht$ H~HcHT$`u30ۿHg"H"rnHHrnH8H=7g"H rnHHrnH8H=8g"HqnHHqnH8tlH=-g"xHqnHHqnH8tIH="g"UHqnHHqnH8t&H='g"2HqnHHqnH8tA3H=HD$`HtDHd$hA\[SATHd$@H$HT$Ht$ H~HcHT$`E0H)nHH1#HuH4$H=f"tIH=f"oHqnHHpnH8t&H=f"LHpnHHpnH8tAMH<HD$`HtDHd$hA\[SATHd$@H$HT$Ht$ H~HcHT$`E0H(nHH13GuH4$H=$f"H=0f"{H4pnHH*pnH8tlH=%f"XH!pnHHpnH8tIH=f"5HpnHHpnH8t&H=f"HonHHonH8tAHk;HD$`HtDHd$hA\[SATHd$@H$HT$Ht$ H~HcHT$`u\E0H'nHH1FuH4$H=e"t&H=e"SHLonHHBonH8tATH:HD$`HtDHd$hA\[SATHd$@H$HT$Ht$ H~HcHT$`E0H&nHH1CEuH4$H= e"/yH=e"HnnHHnnH8RH= e"dH}nnHHsnnH8+H=d"=HfnnHH\nnH8H=d"HOnnHHEnnH8H=d"H8nnHH.nnH8H=d"H!nnHHnnH8H=d"H nnHHnnH8tlH=d"~HnHHnH8tIH=d"[HnHHnH8t&H=d"8HnHHnH8tA9H8HD$`HtDHd$hA\[SATHd$@H$HT$Ht$ H~HcHT$`E0H$nHH1#CuH4$H=d"H=0d"kHlnHHlnH8tlH=-d"HHlnHHlnH8tIH=*d"%HlnHHlnH8t&H=/d"HlnHHlnH8tAH[7HD$`Ht|DHd$hA\[SATHd$@H$HT$Ht$ H豥~HcHT$`u\E0H#nHH1AuH4$H=c"t&H=c"CHknHHknH8tADH6HD$`HtDHd$hA\[SATHd$@H$HT$Ht$ H~HcHT$`>E0H"nHH13AuH4$H=uH4$H=a"?H=a"H4inHH*inH8H=ya"tHinHHinH8H=ja"MHinHHhnH8H=Sa"&HhnHHhnH8yH=E0H2 nHH1+uH4$H=\Y"H=hY"H\nHH\nH8H=YY"H\nHH\nH8H=RY"H\nHH|\nH8H=CY"fHo\nHHe\nH8tlH=8Y"CH\\nHHR\nH8tIH=5Y" HI\nHH?\nH8t&H=2Y"H6\nHH,\nH8tAHVHD$`HtwDHd$hA\[SATHd$@H$HT$Ht$ yH衍~HcHT$`E0H nHH1)uH4$H=X"H=X"+Ht[nHHj[nH8tlH=X"Ha[nHHW[nH8tIH=X"HN[nHHD[nH8t&H=X"H;[nHH1[nH8tAñHHD$`Ht<DHd$hA\[SHH=]X"pHZnHHZnH8uH=OX"JHZnHHZnH8uH=9X"$HZnHHZnH8uH=#X"HZnHHZnH8uH= X"HZnHHZnH8uH=W"HZnHHZnH8uH=W"HuZnHHkZnH8uH=W"fH_ZnHHUZnH8uH=W"@HIZnHH?ZnH8uH=W"H3ZnHH)ZnH8uH=W"HZnHHZnH8uH=W"HZnHHYnH8uH=W"HYnHHYnH8uH=W"HYnHHYnH8uH=yW"\HYnHHYnH8uH=kW"6HYnHHYnH8uH=]W"HYnHHYnH8uH=OW"HYnHHyYnH8uH=AW"HmYnHHcYnH8uH=3W"HWYnHHMYnH8uH=%W"xHAYnHH7YnH8uH=W"RH+YnHH!YnH8uH= W",HYnHH YnH8uH=V"HXnHHXnH8uH=V"HXnHHXnH8uH=V"HXnHHXnH8uH=V"HXnHHXnH8uH=V"nHXnHHXnH8uH=V"HHXnHHXnH8uH=V""H{XnHHqXnH8uH=V"HeXnHH[XnH8uH={V"HOXnHHEXnH8uH=eV"H9XnHH/XnH8uH=OV"H#XnHHXnH8uH=9V"dH XnHHXnH8uH=#V">HWnHHWnH8uH= V"HWnHHWnH8uH=U"HWnHHWnH8uH=U"HWnHHWnH8uH=U"HWnHHWnH8uH=U"HWnHHWnH8uH=U"ZHsWnHHiWnH8uH=U"4H]WnHHSWnH8uH=sU"HGWnHH=WnH8uH=]U"H1WnHH'WnH8uH[Hd$$H/$Hd$SHH=U"HVnHHVnH8uH=T"jHVnHHVnH8uH=T"DHVnHHVnH8uH=T"HVnHHVnH8uH=T"HVnHHVnH8uH=T"H{VnHHqVnH8uH=T"HeVnHH[VnH8uH=T"HOVnHHEVnH8uH=uT"`H9VnHH/VnH8uH=_T":H#VnHHVnH8uH=IT"H VnHHVnH8uH=3T"HUnHHUnH8uH=T"HUnHHUnH8uH=T"HUnHHUnH8uH=S"|HUnHHUnH8uH=S"VHUnHHUnH8uH=S"0HUnHHUnH8uH=S" HsUnHHiUnH8uH=S"H]UnHHSUnH8uHB[Hd$$H$Hd$SHH=mS"HUnHHUnH8uH=_S"jHUnHHTnH8uH=IS"DHTnHHTnH8uH=;S"HTnHHTnH8uH=-S"HTnHHTnH8uH=S"HTnHHTnH8uH= S"HTnHHTnH8uH=R"HTnHHuTnH8uH=R"`HiTnHH_TnH8uH=R":HSTnHHITnH8uH=R"H=TnHH3TnH8uH=R"H'TnHHTnH8uH=R"HTnHHTnH8uH=wR"HSnHHSnH8uH=qR"|HSnHHSnH8uH=kR"VHSnHHSnH8uH=]R"0HSnHHSnH8uH=OR" HSnHHSnH8uH=AR"HSnHHSnH8uH=3R"HwSnHHmSnH8uH=R"HaSnHHWSnH8uH=R"rHKSnHHASnH8uH=Q"LH5SnHH+SnH8uH=Q"&HSnHHSnH8uH=Q"H SnHHRnH8uH=Q"HRnHHRnH8uH=Q"HRnHHRnH8uH=Q"HRnHHRnH8uH=Q"hHRnHHRnH8uH=Q"BHRnHHRnH8uH=yQ"HRnHH{RnH8uH=sQ"HoRnHHeRnH8uH=]Q"HYRnHHORnH8uH=GQ"HCRnHH9RnH8uH=1Q"H-RnHH#RnH8uH=Q"^HRnHH RnH8uH=Q"8HRnHHQnH8uH=P"HQnHHQnH8uH=P"HQnHHQnH8uH=P"HQnHHQnH8uH=P"HQnHHQnH8uH=P"zHQnHHQnH8uH=P"TH}QnHHsQnH8uH=kP".HgQnHH]QnH8uH=UP"HQQnHHGQnH8uH=?P"H;QnHH1QnH8uH=)P"H%QnHHQnH8uH=P"HQnHHQnH8uH=O"pHPnHHPnH8uH=O"JHPnHHPnH8uH=O"$HPnHHPnH8uH=O"HPnHHPnH8uH=O"HPnHHPnH8uH=O"HPnHHPnH8uH=O"HuPnHHkPnH8uH={O"fH_PnHHUPnH8uH=mO"@HIPnHH?PnH8uH=_O"H3PnHH)PnH8uH=QO"HPnHHPnH8uH=CO"HPnHHOnH8uH=5O"HOnHHOnH8uH='O"HOnHHOnH8uH=O"\HOnHHOnH8uH= O"6HOnHHOnH8uH=N"HOnHHOnH8uH=N"HOnHHyOnH8uH=N"HmOnHHcOnH8uH=N"HWOnHHMOnH8uH=N"xHAOnHH7OnH8uH=N"RH+OnHH!OnH8uH=N",HOnHH OnH8uH=N"HNnHHNnH8uH=N"HNnHHNnH8uH=N"HNnHHNnH8uH=qN"HNnHHNnH8uH=cN"nHNnHHNnH8uH=UN"HHNnHHNnH8uH=GN""H{NnHHqNnH8uH=9N"HeNnHH[NnH8uH=+N"HONnHHENnH8uH=N"H9NnHH/NnH8uH=N"H#NnHHNnH8uH=N"dH NnHHNnH8uH=M">HMnHHMnH8uH=M"HMnHHMnH8uH=M"HMnHHMnH8uH=M"HMnHHMnH8uH=M"HMnHHMnH8uH=M"HMnHHMnH8uH=M"ZHsMnHHiMnH8uH=M"4H]MnHHSMnH8uH=M"HGMnHH=MnH8uH=uM"H1MnHH'MnH8uH&[Hd$$H$Hd$SHd$H<$QHT$Ht$ mHt~HcHT$`0H<$H5M"Hu H<$H5!Hu H<$H5L"Hu H<$H5m!`Hu yH<$H5!?Hu uXH<$H5C!Hu 7H<$H5j!Hu #H<$H5y!Hu H<$H5!Hu H<$H5!Hu pH<$H5!yHu /H<$H5!XHu qH<$H5!7Hu PH<$H5!Hu |/H<$H5!Hu H<$H5!Hu jH<$H5(!Hu H<$H57!Hu HH<$H5N!qHu H<$H5!PHu iH<$H5t!/Hu HH<$H5!Hu 'H<$H5!Hu  H<$H5!Hu r H<$H5 !Hu H<$H5?!Hu H<$H5n!iHu H<$H5}!HHu aH<$H5!'Hu -@H<$H5!Hu H<$H5!Hu H<$H5!Hu H<$H5@!Hu H<$H5!Hu H<$H5F!aHu 'zH<$H5M!@Hu YH<$H5!Hu e8H<$H5!Hu H<$H5R!Hu H<$H5!Hu H<$H5!Hu aH<$H5g!zHu `H<$H5~!YHu rH<$H5!8Hu > QH<$H5!Hu 0H<$H5!Hu L!H<$H5!Hu !H<$H51!Hu "H<$H5P!Hu 9#H<$H5g!rHu #H<$H5v!QHu $jH<$H5!0Hu $IH<$H5!Hu $(H<$H5!Hu d%H<$H5!Hu %H<$H5i!Hu "'H<$H5H!Hu (H<$H5'!jHu /H<$H5!IHu 0bH<$H5!(Hu 1AH<$H5!Hu }1 H<$H5! Hu 1 H<$H5! Hu [2 H<$H5! Hu *4 H<$H58! Hu 5 H<$H5G!b Hu 6{ H<$H5^!A Hu 6Z H<$H5u! Hu 69 H<$H51 H<$H5! Hu > H<$H5! Hu > H<$H5! Hu k? H<$H5! Hu ? H<$H5!s Hu I@ H<$H5_!R Hu Ak H<$H5v!1 Hu wAJ H<$H5]! Hu VK) H<$H5l! Hu K H<$H5! Hu L H<$H5J! Hu M H<$H5! Hu BP H<$H5!k Hu Q H<$H5!J Hu pQc H<$H5V!) Hu SB H<$H5! Hu Z! H<$H5! Hu m[ H<$H5! Hu [ H<$H5*! Hu \ H<$H59! Hu ] H<$H5P!c Hu y]| H<$H5/!B Hu ^[ H<$H5V!! Hu _: H<$H5! Hu c H<$H5!Hu dH<$H5!Hu dH<$H5!Hu dH<$H5!|Hu beH<$H5![Hu !ftH<$H5!:Hu 0gSH<$H5!Hu g2H<$H5!Hu >hH<$H5!Hu hH<$H5!Hu iH<$H5"!Hu iH<$H51!tHu iH<$H5@!SHu ijlH<$H5O!2Hu jKH<$H5^!Hu Gk*H<$H5-!Hu l H<$H5D!Hu 5mH<$H5"Hu sH<$H5"Hu wH<$H5)"lHu rwH<$H58"KHu wdH<$H5"*Hu yCH<$H5" Hu z"H<$H5"Hu {H<$H5"Hu ~H<$H53"Hu H<$H5"Hu ;H<$H5"dHu 誁}H<$H5p "CHu 虃\H<$H5 ""Hu X;H<$H5 "Hu DŽH<$H5 "Hu 膅H<$H5 "Hu H<$H5# "Hu dH<$H5J "}Hu H<$H5a "\Hu ruH<$H5p ";Hu TH<$H5 "Hu P3H<$H56"Hu 迏H<$H5}"Hu ~H<$H5"Hu =H<$H5S"Hu lzH<$H52"uHu H<$H5"THu 蚓mH<$H5"3Hu LH<$H5o"Hu h+H<$H5~"Hu ס H<$H5"Hu FH<$H5"Hu 赢H<$H5"Hu $H<$H5"mHu ãH<$H5"LHu 2eH<$H58"+Hu ѤDH<$H5G" Hu @#H<$H5V"Hu 该H<$H5m"Hu H<$H5"Hu 荦H<$H5"Hu H<$H5"eHu k~H<$H5"DHu ڧ]H<$H5"#Hu I<H<$H5"Hu H<$H5"Hu gH<$H55"Hu H<$H5D"Hu 腪H<$H5S"~Hu H<$H5j"]Hu 胫vH<$H5"<Hu XH<$H57"Hu :H<$H57"Hu H<$H57"~Hu聃H~HD$`HtHd$p[SHH=7"0H6nHH6nH8uH=7" Hs6nHHi6nH8uH=7"H]6nHHS6nH8uH=s7"HG6nHH=6nH8uH=e7"H16nHH'6nH8uH=W7"rH6nHH6nH8uH[Hd$$H$Hd$SATHd$HIH=7"H5nHH5nH8A$H5nH8uH=6"H5nHH5nH8uH="H5nHHy5nH8uH=6"Hm5nHHc5nH8uH=6"^HW5nHHM5nH8uH=u6"8HA5nHH75nH8uH=_6"H+5nHH!5nH8uH=Y6"H5nHH 5nH8uH= "H4nHH4nH8uH="H4nHH4nH8uH=5"zH4nHH4nH8uH=5"TH4nHH4nH8uH=5".H4nHH4nH8uH=5"H4nHH4nH8uH=5"H{4nHHq4nH8uH=5"He4nHH[4nH8uH=5"HO4nHHE4nH8uH=5"pH94nHH/4nH8uH=5"JH#4nHH4nH8uH=5"$H 4nHH4nH8uH=5"H3nHH3nH8uH=u5"H3nHH3nH8uH=g5"H3nHH3nH8uH=Y5"H3nHH3nH8uH=K5"fH3nHH3nH8uH==5"@H3nHH3nH8uH=/5"Hs3nHHi3nH8uH=!5"H]3nHHS3nH8uH=5"HG3nHH=3nH8uH=5"H13nHH'3nH8uH=4"H3nHH3nH8uH=4"\H3nHH2nH8uH=4"6H2nHH2nH8uH=4"H2nHH2nH8uH=4"H2nHH2nH8uH=4"H2nHH2nH8uH=4"H2nHH2nH8uH=4"xH2nHHw2nH8uH=4"RHk2nHHa2nH8uH=q4",HU2nHHK2nH8uH=c4"H?2nHH52nH8uH=U4"H)2nHH2nH8uH=?4"H2nHH 2nH8uH=)4"H1nHH1nH8uH=4"nH1nHH1nH8uH=3"HH1nHH1nH8uH=3""H1nHH1nH8uH=3"H1nHH1nH8uH=3"H1nHH1nH8uH=3"Hy1nHHo1nH8uH=3"Hc1nHHY1nH8uH=3"dHM1nHHC1nH8uH={3">H71nHH-1nH8uH=m3"H!1nHH1nH8uH=W3"H 1nHH1nH8uH=I3"H0nHH0nH8uH=33"H0nHH0nH8uH=3"H0nHH0nH8u@Τu@_u@@uHHd$A\[Hd$$HD$HH$Hd$Hd$HH|$HHm$Hd$SHd$H$HT$Ht$ uHS~HcHT$`0ۿHmHH1~H4$H=2"tLH=2"IH20nHH(0nH8H=2""H0nHH0nH8tbu\H4$H=2"tHH=2"H/nHH/nH8t%H=2"¿H/nHH/nH8twH~HD$`Ht=yHd$p[SATHd$HIH=1"fH.nHH.nH8A$H.nH8uH=1"0H.nHH.nH8uH=1" H.nHHy.nH8uH=1"Hm.nHHc.nH8u@u@裨uHHHd$A\[Hd$$HD$HH$Hd$Hd$HH|$HHtm$Hd$SATHd$HIH=0"H-nHH-nH8A$H-nH8uH=0"H-nHH-nH8uH=0"躽Hs-nHHi-nH8uH=0"蔽H]-nHHS-nH8uH=0"nHG-nHH=-nH8u@\u@}u@.u@ϬuHHHd$A\[Hd$$HD$HH$Hd$SHd$HHHmHd$[SATHd$HI@*A$u@Wu@u@uHHHd$A\[Hd$$HD$HHw$Hd$Hd$$HH|$HGHm$Hd$SATHd$HI@躷A$u@臼u@Hu@)u@uHHHd$A\[Hd$$HD$HHg$Hd$SHd$HH=H6mHd$[Hd$$"u$Ht$H$Hd$SHd$Ht$HHmHd$[UHHd$H}HuH*nH@HUHuH {*nHH]UHHd$H]H}Hu H:*nH8uH=('YH*nHHH5}aH蝔H]HHu~HEHUHPHuH)nH8^ՏH]H]UHHd$H])H)nH8H)nHHcXHq_HH-H9v|CE@EuHJ)nH8ҏHEH5aH}讔H}5;]H)nH8!ZH )nHH]H]UH1e11H(nHH(nHHH(nHH]UH1%H]UH1H]UH1H]UHHd$H]H}H0賠H}u'HEHEHEDHE|@t tt"0 Hm HmHmHEHcXHq蓞}dEfEEHUHcEHkqdHqY4HUHcEHkqCHq8~HcH u#H}tHuH}HEHP`c"ecH HtlfGfHEH]UHHd$H}HuHEHx@HEH@@H0HuH}IH]UHHd$H}HuHH=uaH=DtWHEHHEHHUHEHEHH}HUHEHuH}H]UHH$ H}HuHUH}uHEHUHRhHEH}hHUHu_H:=~HcHUHEHUH}1H=ScHUHHUH5HEHmH=SHS8HUHHEHHUH HH8HP@HEǀHEH}tH}tH}HEHaaHEHtlHhH(^H8<~HcH u#H}tHuH}HEHP` abaH HtccHEH]UHHd$H}HuH~HEHUHHHEHHHEHvHH}1[H}tH}tH}HEHPpH]UHH$HL H}HuHBHUHu\H;~HcHUvH}HEHp]HEx`OH}HEH6H} HEH@HEHH}HEH`HEHxp u3HEHxhHEH@hHH}HEHhHEHppH}HEHhHE苀$LMILHEHHUH=j8bHIHpH0[H9~HcH(u HuLE^LGH(Ht'`^H}I@HEHt `HL H]UHH$@HXL`H}HuH}uHEHHEH裬HE耸H}HEHpwHEx`iH}HEHPHE苀$LMILHEHHUH=6bHIHUHu'ZHO8~HcHxH"EH"HHEHEHHEHUHuL>HEH艫tHEH@f/Ezs HUHEHBHEHFtHEHf/Ezv HUHEHBs\LkEHxHt]HXL`H]UHHd$H}HuHEHUHuXH 7~HcHUu9H}HuUHMHEHH=*>S HH}I:[H}~HEHt=]H]UHH$PHhLpH}HuHUHEHуHEHE@ HE@HE@H}HEHpt EH}HEHu EHE$LMILHEHHUH=?4bZHIHUHuWH5~HcHxuHUHuL EZL|CHxHt[EHhLpH]UHHd$H}@uHE:EtHEUH}芓H]UHHd$H}HuHEHH;Et,HEHHuHEHHH}2H]UHHd$H}uHE;EtHEUH}H]UHHd$H}HuHH=aH:t$HMHUHHHHHuH}H]UHHd$H}EHEHHuEHEEH]UHH$`HhH}HuH:HUHukUH3~HcHU2HEx`$HE@PHEHXhHHEHHEH}|RH} HEH@HEHH}HEH`HEHxp u3HEHxhHEH@hHH}HEHhHEHppH}HEHhDEMUuH}HEH HuH}MWH}9HEHtXHhH]UHHd$H}HuH}HE@Pt^HEH脥tEHEHkt,HEtHUHEHHBHUHEH@HBH]UHHd$H}HHEEH]UHHd$H}HuHUHUHHEHHEHEH;EuHEH;Eu0u#HUHEHHEHH}`H]UHHd$H}HuHH=-aH6txHMHUHHHHHUHEHHHUHEHHHEHH} HUHEHuH}dH]UHH$ H}HuHUH}uHEHUHRhHEH}[HUHuQH/~HcHUHEHUH}1$HUH "HHHUH"HHH=|SH|S8HUHHEHHUH @HH8HP@HEǀHEH}tH}tH}HEHSHEHtlHhH(PH.~HcH u#H}tHuH}HEHP`S4USH Ht~VYVHEH]UHHd$H}HuH~HEHUHHHEH&;H}1 H}tH}tH}HEHPpH]UHHd$H}EHEHHUHuEHEEMH]UHH$HH}HuH}4HUH`XOH-~HcHX7HEx`)H} HEH@HEHH}HEH`HEHxp u3HEHxhHEH@hHH}HEHhHEHppH}HEHhHE@PtiHEHXhX`H6HEhpHHEH}KDEMUuH}HEHPXH}HEHpHEHHEHEHHEHH}HEHHUHE\HZ "YPHEHHHHEH "f/DDt HPEHEHE!EXEH^HEHcEHcUH)HHHHHHHcMHcUH)HHHHHHPH=} HPHUD9~EHd "YE~HuH}HEHHEHEEXEEEH& "Y(HEH0HE\E8H(2EHEf/Ez2OH}0HXHtPHH]UHHd$H]H}EHEHxEEMHEHEHEHEHEHXEH;HH8EEH;HH0EHEHEHEHEH;\tHEHEHEHEHEHEEMHEH@Hxh HEH]H]UHHd$H}HuHEHUHuJH(~HcHUu9H}Hu5HMHEHH= 0SHH}),MH}~HEHtOH]UHHd$H}HHEEH]UHHd$H}HHEH"f)H"E7EEH]UHHd$H}HHEHQ"f)HB"E7u!HEH"f/zvEEEH]UHHd$H}HHEH"f)H"E47EEH]UHHd$H}HuHUHUHHEHHEHEH;EuHEH;Eu0u#HUHEHHEHH}@H]UHHd$H}EHEHHEH"f)MEa6uHEHUHH}ՄH]UHHd$H}EHEHHEH"f)ME6uHEHUHH}uH]UHHd$H}EHEHHEHH"f)ME5uHEHUHH}H]UHHd$H}HuHEHH;Et,HEHHuHEHHH}ƒH]UHHd$H}uHE;EtHEUH}{H]UHHd$H}HuHH=-aH+tH`H]UHHd$H]LeH}uHEHx HEH@H@HEH@HpHEHxHEH@H`HEH@Hpxp uCHEH@HxhHEH@H@hHHEHxHEH@Hh+HEH@HpppHEHxHEH@HhHEH@Ht!HEH@HHEHpUD\HE@HE@HEH@H8HEHc@HLHEH@HxhAHHEHxHEH@HHEPHEH@hHEX܃9|tUЃEfDEHUEBH!H}IH!H}HH!Hr!H}Lb;]HEH@H8HHEH@H8HEHHHEHPb6H]LeH]UHHd$H}EMHuHUHE؃xdHcEHcUH)HEHHEHHcMHcUH)HMHHHHEH=}HEHUHRxM9"HEHxHuHEH@HEXEHX!YEH}nHEHE؋@؃HU؉BHUHuMEH}HUHuMEH}HE؋@؃HU؉BH]UHHd$H}EHEH@hEEHUHRH8HUHcRHUHUHcRHUHUHRhHUHcJH)HcUHHUH;U}HUH;U~HUHHMLAHcMHH<I<HTIT;EmHEH@hEfDEHUHRhHHcMH)H*H! ^MHUHRhM9UUfDmHUHRh*XE*M\YEEHUHrHcUHHHUHUHrHcUHHTHUH!\EYEMYMXHUHrHcUH HUHrHcUHHTHUHUHrHcUHHTHUH!\EYEMYMXHUHrHcUHL;M;EHEHPHEH@hHLHEH@Hxh\H]UHH$HLLH}HuHDžXHUHh73H_~HcH`HEHpt"HEHpxXtHEHpHEHEHEHPx tHEHPHEHEHEH@4ttOpH}HXiLXHMHUH=SHH}/H}ւHHHAAEEEHEHHH(UH}E1HXG|LXHMHUH=TSgHEuH}~HUBHuH}cD;eHEHvH}tHEH@(HEHEHEHHPhHPH=S"HH&H8H.1HV~HcHPHKHEHH}HXhLXHEHp(HE@xPHUHH=W-0ZIH}tHE؀xQt@@0HEHp0HU݇HH=s*0HLEH=SLM@HH}H蜄EH}HEHHHEEH}HEHHHE<EH}HEH@HEEH}HEH@HEHUHEf/z&v$HEHHEHUHEHHHUHEHHEHxHUHuR=HUH!HHH}THHHHcHH*HEH`H]UHHd$H}IH}HEH0H]UHHd$H}HuHH=aHM~HUHEhhHUHEHHHUHEiiHUHEjjHUHEllHEHxHEHxHEHxHHEHHEH*s~H}A"H}3HEHH}r4HUHEHuH}aH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuH}HcHUCHEHUH}1DaHEǀ HEƀhHEƀjHEǀlHUH=Ra蝠HUHxHEƀiHEHPhH=1S.AHUHPH=?-SH8-S8HUHHEHHMH=HP8HH@HEǀHUHh!HHH}2H}HEH0HEH}tH}tH}HEHSHEHtlHhH(H*}HcH u#H}tHuH}HEHP`H HtHEH]UHHd$H}HuH~HEHUHHHEHvHEHxfHEHVH}1`H}tH}tH}HEHPpH]UHH$HLH}HuH~HUHu~H}HcHUdH}HEHpKHEx`=H}HEH$HE耸htH}HEHHH} HEH@HEHH}HEH`HEHxp u3HEHxhHEH@hHH}HEHhHEHppH}HEHhH}HEH8HEHhH(~H}HcH HEH@hHH}HEH(HE胸HE胸HE苀$LMIL@HMHUH=aÄHIHH~H }HcHu HuL~L~HHteHuH}^HuH}1nHuH}1xH}~H HtH};~HEHtHLH]UHHd$H}~FHEHEuHEhtH}HEHHH]UHH$PHPH}HuHEHDž`HDžhHDžpHDžxHUHuo~H}HcHUOH)aH5*aH}Q~HEH=aϓHHtHXH}:~H}HxHxHp~Hh~H`~HEHP\HEH8H`HEHHPXH!HhH`H`HP@HElHpHhHhHP(H;G~HHH`HpHpHPPH`~HElH}0HcHXH5aHXH}*~HEHp~HÅ|=E@EHEHpHcEHk0HtHUHcEHH~~Hh.g~HEHtP~H]UHHd$H}HHEx`H}HEHpHEHxhHE@P HE~HEǀHUHu~H}HcHUuHQ~HEHtHEHHuHEH}<3HEHtN~H]UHH$PHLLH}HEHDžxHDžpH5.aHHH~H:}HcHHaH5aHp~H?aH5aHx~HaH5aH}~HEHx0FHHHEHEHPHEHpHEHxHUHEBf/@zEEgXEfEHEHxEIċuLI$IIEHIEHHEHHEHxsE8fuUHEH@HxHEH@Hpf/pzrf/xzw0tAE0ߔAADeDe;]HcEHH5IaHH}D~HcEHH5ZaHHx~HEHx]DHHtE1HcHH5@aHHp~EEgX&EEHEHxCIċuLI$IIEHIEHHEHHEHxC8Iޔf4ޔuUHEH@HxHEH@Hpf/pzrf/xzw0tAE0ݔAEHEHxB8v$HEHxAE$HUHcEHk <!*EHEHx$HUHcEHk <HEHxAE%HxHcEHk <HEHx`BIH`HhuL贓tWHEHxh$۽pHEHx`$ۭpH!(HpHcEHk <E;]HEHxuHEH@ǀHH0 ~H4}HcHx(HEH@LpHpHxHuH赳HEHPHHEH@Hp~|OEDEHUHRLpHcUHk0HHcUHk HIT8 fTfAT8(;EHEH@HY~HH HHEHPH!\H=a˘HUHRHHEH@ǀ~HxHtdHH~H}HcHpuHEH@ǀ~HpHt~^~~~H5yaH}H5aHxH5ƵaHpH5 aHHHt~HLLH]UHHd$H}EMHEHxHHuHHH}HuHHEjH}HEHptHEx`fH}HEHMHEhtH}HEHHHEHE H}HEH8HEHUHu~HB}HcHUHE$LMIL@HMHUH=tasHIHhH(~H}HcH u-HEHPHEHpHE@f)HELh~L~H Ht~{~H}r~HEHt~HLH]UHHd$H]H}HuH}" HcHEH5<(HMH}"~HEH8ƻ~HÅ|0EEEH}HEHHcU;]H]H]UHH$H}ЉuHUHMHDž HUH`U~H}}HcHXH}R HcHHPHcEHHH|HHH;P0H}uH5!H Z~IHEHx u*HEH8H l~H 1H wd~HEHp H Z~H H0HDž( H)!H@HDž8 H(AH3!H=wRzHH5:H(~HEЃt'HUHب!HHHUHǨ!HHuH}EȋuH}g EHEHH@HHEMYME\HEEYEXEHEHEЋls.}u(HE<$GHEHE<$3HEx~H X~HXHt~H]UHH$pH]LeH}EHuU؈MHEȃtHUH!HH$}t1*EHEHEH}U]EӔEH}HEH@EӔEH}z]IL茗YCHA*T$H!^XMUA\T$0YA^T$8XQYM}tEXEHEE\EHEHEȋlsHE<$蘂HEH]LeH]UHHd$H}EHuEH}00XH]UHHd$H}EHuEH}0ɲ(H]UHHd$H}EHuEH}0H]UHHd$H}EHuEH}H]UHH$0H}HuHEHDž8HDž@HUHu~H}HcHxoHEHt"HEHxXtHEHHEHEHEHPx tHEHPHEHEHEHHx(uHEHH}U~HEHHPHDžH H}HEH`HDžXH@~H}H@H8H@H@HP`H8HpHDžh HHHEHHp(H}ع-LEHMHUH=R诮HH}Ƶ>~H8T~H@~H}}T~HxHt~H]UHH$HLH}HuHUHuH}mjE܄HEuHE@dH}HEHpKH}HEH2H}HEHHHEt E H}HEH8HEHUHx~H}HcHpHE$LMIL@HMHUH=Aa\jHIHXH~~H}HcHu"HUHuLeE܄t HE@q~Li~HHt~S~H}J~HpHt~EHLH]UHH$ H}uHDž@HUHu~H}HcHxH}HcHHpHcEHhH|HhH;p0H}uH5!H@GR~IHEHx u*HEH8H@~H@1H@[~HEHp H@Q~H@HPHDžH H!H`HDžX HHAH!H=RדHH5:H~HEtHG!HHEbHEls6}u0HEHpHcEHk0HT H$fD(fD$|]HEHpHcEHk0l ]?~H@P~HxHt~EH]UHHd$H}HpHtH@HH]UHH$H}uHDž0HUHp}~H襾}HcHhH}zHcHH`HcEHXH|HXH;`0H}uH5@!H0P~IHEHx u*HEH8H0~H01H0Y~HEHp H0O~H0H@HDž8 H!HPHDžH H8AH[!H=RՓHH5:HP~H!HHEHEuH}EHEHEE^ʔHElsn}uhuH}EXE(݅(<$y۽ E\E݅<$|yۭ H!(]~H0N~HhHt$~EH]UHH$H}uHDž8HUHx~HE}HcHpbH}HcHHhHcEH`H|H`H;h0H}uH5!H8M~IHEHx u*HEH8H84~H81H8?W~HEHp H8YM~H8HHHDž@ H!HXHDžP H@AH!H=?RBӓHH5:H~uH}DE*ȔtH!HHE%E<$HEHpǾT7]~H8 L~HpHt?~EH]UHHd$H}uH!!HHEHEuTHEHtFHEHUu1Egǔu"H!f/EzwEQEEH]UHHd$H}uHEHpHcEHk0l ]EH]UHH$0H}uHDžHHUHup~H蘹}HcHUSH}pHcHHxHcEHpH|HpH;x0H}uH56!HHJ~IHEHx u*HEH8HH~HH1HHT~HEHp HHJ~HHHXHDžP H'!HhHDž` HPAHQ!H=RГHH5:HF~uH}EŔtH!HHEuH}0^EE1~HHI~HEHt~EH]UHHd$H}HǀHEHēHEHp膩~|>EEHUHpHcUHk0H !HHT7 fQfT7(;EH]UHHd$H}HHEEH]UHHd$H}HEhtHEltH}HEHHH]UHH$HLLH}HDžHUHx{~H裶}HcHpEEHEHp=~EfDEHUHpHcUHk0D*HUHpHcUHk0H!H HL7 fRfT7(HU胺lt HUHpHcUHk0HHNHUHpHcUHk0H|HUHpHcUHk0HUHpHcUHk0HTH7;E5HEH;H=_%'jHEHXH.~HV}HcHE;HEH|F[~H~E|HEHUHu3HEHp赦~HÅEEH}HEH;E~WUH}HHEHHH5!4݅HEHpHcEHk0| HELpHcELk0HEHpHcEHk0HD H$fD(fD$CD%*;]@HE苀lHEHpx*HEHpHB HfB(fۭ%ۭ ʁ)ۅHEHph HEHpx j~H}a~HHt~EG~HD~HpHt~EHLLH]UHH$H}H=RH<=HEHUHu~H農}HcHUu^HUHuH}HEit@Ef)H!H}8H̒!EH}e8P~HEHt\HhH(~H'}HcH uH}~ ~~~H Ht~~HEH]UHHd$H}EHEf/Ezt>HUHEHH}HEH0HEhtH}HEHHH]UHHd$H}@uHEi:EtHEUiH}H]UHHd$H}uHEl;EtdHEUlHElt/t*t(HEH5aHEHpHMף~H}HEH0H}H]UHH$@H}uHUHMHB~HDžHHUHu0~HX}HcHUH}0HcHHxEHpH|HpH;x0H}uH5!HHA~IHEHx u*HEH8HHK~HH1HHVK~HEHp HHpA~HHHXHDžP H(!HhHDž` HPAH!H=VRYǓHH5:H~HEHpEHk0H|Hu@~HEHpEHk0HDH;EtBHEHpEHk0HUHTHEluH}HEH0H}( ~HH@~H}?~HEHt ~H]UHHd$H}HuHEHxH;Et)HEHUHxH}HEH0H} H]UHHd$H}HuH?~HUHu~H}HcHUuGHEHHu.O~Ht.HEHHu?~H}HEH0H} ~H}>~HEHt~H]UHHd$H}uH}W;EHElttuv}.HSHPH=4~RÓHH5H~HcEHEH5aHEHpHM~H}HEH0H}C H]UHHd$H}HuHEHH;Et,HEHHuHEHHH} H]UHHd$H}uHE;EtHEUH} H]UHHd$H}@uHEj:EtHEUjH}Z H]UHHd$H}HuHH}HlH}HEH0HEhtH}HEHHH]UHHd$H}EHEltu:HƋ!f/EzsE}H̋!EE}E}mH]UHHd$H}EHEls:HU!f/EzsE}H[!EE}E}mH]UHH$H}HuHUH}uHEHUHRhHEH}HUHu"~HJ}HcHxHEHUH}1\HEH8HUHuHEHDEMHUH=a9HUHHEH1<HEHHMHHHH=/H/8HUHHEHHUHnHA8HQ@HEǀHEǀHEH}tH}tH}HEH~HxHtlH`H ~H}HcHu#H}tHuH}HEHP`~Q~~HHt~v~HEH]UHHd$H}HuH~HEHUHHHEH6HEH&HEHH}1[H}tH}tH}HEHPpH]UHHd$H}HuHH=saH~tRHUHEHHHEHH}HUHEHUHEHuH}YH]UHHd$H}HHEEH]UHHd$H}>H]UHH$ H L(H}HuH֭~HHx~H֦}HcHpHE@PuH}HEHpHEx`HEH@hH}HHH5.RH}HHuH}HEHHEHPHEHXH}XHEH8HH}PHEH0@H@H`HHHhH}t*H`HHHhH`HHHhH`HEHhHEHEHPHEHXH}XHEH8HH}PHEH0@H@H`HHHhH}t*H`HHHhH`HHHhH`HEHhHEHuH}HEHxhEM?HEHEHxhEM$HEH}HEHxhHRH݃RHHxHEt t3t7HuHEHHEH`EU)Ћ]U)Ӄ9EU)DeUA)AA9|HHEH_D;;RH}[Ht+HEH`NH}HEH8HuHUH}HEHEEE;EEEE;ENt/H}t"HEHUuH}HEH~H}蘤~HpHtW~H L(H]UHHd$H}EMHEH}HiH}!HHEEH]UHHd$H}HH@`H]UHHd$H}H@hH]UHHd$H}HH脜H]UHHd$H}HH]UHHd$H}HHHEEH]UHHd$H}HHHEEH]UHH$pHpH}HuHDžxHUHu~H@}HcHUHEH@4ttOzH}Hx\HxHEHH=&R蹋HH}M^H}HtPH}HHH~4HY*H`~!H=lR?HH5H=~h~Hx,~HEHt~HpH]UHH$HLLH}HEHDžHUHuƼ~H}HcHxHEHxH1HHHUHHBE H}HUHBH`H S~H{}HcHbHEHx,HHHAAE6EfDEHEHxHËuHHIŋUAEIMHH}]HH}+~HEHxteAE } t UHEH@H@hHPLLMAMH=laMVHE2HEH@HHMH=R#HEHAEBHEHxHu褜HUIEHBAEED;e~HEHx~HHtt~߽~H3*~H}**~HxHtI~HLLH]UHH$HLH}HuUHMEHDž(HUHx~H:}HcHpH}tH}Hu)~HEHxHHHuH}1)~}u E~HEHx!r~IE9}NDeЋEЃEEЃEHEHpHcEHkHEHPHcEHk\H0"fT݅H}c!(zwHEHpHcEHkHEHPHcEHkD\DH/"fT݅H"c!(zwuEԉHDžEЉHDžHHH5c!HHHH='㕓HH5H~D;m~;]~UH\E\EE\E/zw Hzb!YEEXEHhb!YEEXEHNb!YEHUHcEHq~Hk DH'b!YME\HUHcEHq~Hk HUHcEHq~Hk E\EDHUHcEHq~Hk DHMHcEHq~Hk UHa!YEXEHUHcEHqN~Hk DHUHcEHq1~Hk DH>a!YEXEHUHcEHq~Hk HUHcEHq~Hk E\EDHDžH5vaHH}Ho~HDžH52vaHH}Ho~HDžH5 vaHH}Ho~HcEHqC~HU؉B HcEHq-~HU؉B$HcEHq~HU؉B(HE@,HE@<E]}EDEԃEEEHcEHq~EHUHcEH|tTHUHcEHk LHUHcEHk DEHMHUHuHEEXEHUHcEHk /zrHUHcEHD}uLceIq~H}l~I9H}l~Hq~Hq~HH5ntaHH}Hm~H}l~Hq~Hq~HH5(taHH}Hm~HuHcEHq^~HMHcUHHuHcEHq9~HMHcUHTHuHcEHq~HMHcUHTHuHcEHq~HMHcUHTHuHcEHq~HMHcUHTHuHcEHq~HMHcUHHcEHq~EHuHcEHHMHcUHHuHcEHHMHcUHTTHuHcEHHMHcUHTTHuHcEHHMHcUHT T HuHcEHHMHcUHTTHuHcEHHMHcUHTTHuHcEHHMHcUHTTHUHcEHD HuHcEHHMHcUHTTHcEHq_~EHcEHqM~EE;E}uHcEHq.~}EDUЃUHUHcMЃ<uHMHcUЃ<uHcUHq~u9}ŰŨUfŨUHUHcM̃<uHUHcM̃<urHUHcMH}LcE̋B;tWHMHcULEHc}̋A;t6!f/zSHEHH=8ZW~HEH8Hc~HHHDžHEHHHuH55!H}RHHx u-HHH8_c~H1Hj}HHp H}HH HDž HAH|5!H=!RhHH5H1t~HEHHEH8HtH@HEHEH("fTEH}EHEHEHEPxEHEHcHEHc@H)H H}1H EfEE;E}(HEH8HcEHUHf/Ezr̋E;EYHEH8HcEHUHHHEH}MEUEXEEHEHEHEE}Ef/EHEHEHE@Ug4H}EE DEE;E}(HEH8HcEHMHf/Ezr̋E;E}$HEH8HcEHUHHHEH 3!HHEH}MEUHEHEHEHEEf/Ez"s~Hv}H(Htt~H]UHHd$H}~HEHphHEHvH]UHHd$H}HuHH==HaHS~tHEHH}HuH}hH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuo~H*M}HcHUubHEHUH}1HEHPhH=RߪHUHHEH}tH}tH}HEHq~HEHtlHhH(gn~HL}HcH u#H}tHuH}HEHP`cq~r~Yq~H Ht8t~t~HEH]UHHd$H}HuH~HEHUHHHEHXH}1蛘H}tH}tH}HEHPpH]UHHd$H]H}HuHEHH3tHHEH tH̾HE@HtH襾HE@H迾tH~HE@H]H]UHHd$H}HuHEHH;Et,HEHHuHEHHH}H]UHHd$H}EMHuHUHMLE~H]UHHd$H}HuHQ~HUHuk~HJ}HcHUuHuH}HEHP`n~H}P~HEHttp~H]UHHd$H}HuHUHMH}~HuHtHH}P~H]UHHd$H}HuUH}CHuHtHH}]P~H]UHHd$H}HuUH}HuHtHH}P~H]UHHd$H}HuH1}H]UHHd$H}HuHUHs}HUHuj~HH}HcHUuH}uHuHtHH}O~m~H}}HEHto~H]UHHd$H}HuHUHMH}HuHtHH}(O~H]UHHd$H}HuHUHMH}HuHtHH}N~H]UHHd$H}HuUH}HuHtHH}N~H]UHHd$H}HuHUH#}HUHuAi~HiG}HcHUuH}%HuHtHH}?N~:l~H}}HEHtm~H]UHHd$H}HuHUH}HUHuh~HF}HcHUuH}HuHtHH}M~k~H}}HEHt#m~H]UHH$ H}HuHuHEHUHRhHEH}HUHuh~H/F}HcHU|HEHEHx(H5),!}HEHx0H55,!}HEHx8H5A,!}HUH1'@B HEH}tH}tH}HEHj~HEHtlHpH0Ng~HvE}HcH(u#H}tHuH}HEHP`Jj~k~@j~H(Htm~l~HEH]UHHd$H]H}HuHUHMHHHEH5SaHEHxHMк7~HEHx6~HÅ|1EEHEH@HcUH}HcHUHEH@H@HH$!f/zuH}1}HEH@H@HH$!f/zuH}H5$!}HEH@H@H۽`H`HEHDžxHxHEHx1HXHXHELx1H}H诔HuHEH@xP%H IaHH}11},b~HX}H}w}HEHtc~H@H]UHHd$H}HuHUHs}HUHu^~H<}HcHUnH}tZHEHptLHE8-u-HuH=#!}HUH}1H5#!a}HUH}1H5#!I}H}Hu }7a~H}}HEHtb~H]UHH$0H8H}HuUHEHDžxHUHu]~H;}HcHUHEH@HPHHcEH"!f/zuH}1W}rUHxH}HxH}/}HEH@H@HHcUHC!fTH "!f/zHEH@H@HHcU۽PHPHpHDžhHhHEHxUHxHxHELxH}1H H}HEHHXHEH@xP%HhFaHH`HEHhHXH}1ɺ}IHEH@H@HHcUH-!!f/zuH}HU1H54!!} H}Hu} _~Hx_}H}V}HEHtx`~H8H]UHHd$H}HuUHEH@@$tu"HEH@H@HcUH4H}]}}u H}1G}t}uHEH@Hp(H}*}WHEH@H@(HEHE EEHEHUHEH@xP%H EaH4H}qH]UHHd$H}HuUHEH@@HtH@HHcUH9~HEH@@HcUH4H}u}HEHp8H}b}H]UHHd$H}HuHUH}HUHu!Z~HI8}HcHUu'HEHx8Hu}HuHtHXH}?~]~H}i}HEHt^~H]UHHd$H]H}HuHUHMHHHEH5FaHEHx@HMк*~]|6EDEHEH@@HcUH~H]H]UHHd$H}HuHUHMHHHEH5FaHEHxHHMк*~}|-EEHEHHHHcuHEHcUHH;}HuHtHXH}=~H]UHHd$H}HuUHUEBPHuHtHXH}|=~H]UHHd$H}HuHUH}HUHuX~H96}HcHUu'HEHx(Hu}HuHtHXH}=~[~H}Y}HEHt{\~H]UHHd$H}HuHUHc}HUHuW~H5}HcHUu'HEHx0Hu]}HuHtHXH}w<~rZ~H}}HEHt[~H]UHH$H}HuEH5MaH}~~H}uHEHUHRhHEH}GHUHxV~H4}HcHpHEHXHV~H4}HcHHEU(PHUE,B HEm0XHEm@X HEm@m0XHEHUHP(HE HtH@HEHcEHHcEHH5EaHEHx@H'~E܃|`E@EU܃|BEEHMHq@HcMLHc}HM HcuH4HcMHk ,A;U;EHEmPX0HEm`X8H}vX~H5BLaH}{~HHtY~HEH}tH}tH}HEH4X~HpHtlHXHT~H3}HcHPu#H}tHuH}HEHP`W~gY~W~HPHtZ~Z~HEH]UHHd$H}.~cH}qHr!\HEHc@HH*EYEH}*M^H.!\EH!HHEEH]UHHd$H}HHY!HHBHHE@(H:!f/zCvAHEHU؋@;B ~1|$HE@(<$HEHU؋xB )Ǿ谮HEXHH]UHHd$H}HG HEEH]UHHd$H}HHU@R )H]UHHd$H}Hx vHEHU@;B tfHE@ H^!f/ztNHEHc@ HH*HE@^HEHcPHEHc@ H)H*HEP ^^EH !HHEEH]UHHd$H}Hx uH!HHE3|$HE@(<$HEHU؋pB )HE؋@ gx躮]EH]UHHd$H}uUHEHP@HcEHHcUHHEEH]UHHd$H}^~)H}1EE<$H}=v]H!HHEEH]UHHd$H]H}~!H]H}*K ^MH!HHEEH]H]UHHd$H}HHEB^@EH]UHHd$H]H}j~%H]H}Y*C ^QEH !HHEEH]H]UHH$0H}HuHUHMLELMH}}H}}H}}H}}HDžHHDžhHUHxO~H.}HcHpQHhW}H SH@HPHEHXHEЋ@DHDHHcD.{}1HDHH9}01HH}HHH`HP1ɺHh}HhH}HEHPHh蝾}HSH@HPHEHXHEЋ@ DHHHHcDtz}1HHHH}01HH}HHH`HP1ɺHh7}HhH}HEHPHh}HSH@HPHEHXH}DHHHHcDy}1HHHH}01HHC}HHH`HP1ɺHh{}HhH}HEHPHh'}HPSH@HPHEHXHE@LEHMHUHH$HHH`HP1ɺHh}HhH}HEHPHh蘼}HSH@HPHEHXHE@LEHMHUHH蕡HHH`HP1ɺHh]}HhH}HEHPHh }HrSH@HPHEHXHE@ LEHMHUHHHHH`HP1ɺHhο}HhH}HEHPHhz}HSH@HPHEHXH}LEHU1ɾHHyHHH`HP1ɺHhA}HhH}HEHPHh}HSH@HPHEHXH}LEHU1ɾHHHHH`HP1ɺHh贾}HhH}HEHPHh`}H)SH@HPHEHXH}JLEHMHUHH]HHH`HP1ɺHh%}HhH}HEHPHhѹ}HSH@HPHEHXH}LEHMHUHHΞHHH`HP1ɺHh薽}HhH}HEHPHhB}HKSH@HPHEHXH}LEHMHUHH?HHH`HP1ɺHh}HhH}HEHPHh賸}HSH@HPHEHXH}LEHMHUHH谝HHH`HP1ɺHhx}HhH}HEHPHh$}HmSH@HPHEHXHE@HLEHMHUHH!HHH`HP1ɺHh}HhH}HEHPHh蕷}H SH@HPHEHXH}/LEHMHUHH蒜HHH`HP1ɺHhZ}HhH}HEHPJ~HH}Hh}H}}H}}H}ڶ}H}Ѷ}HpHtK~H]UHH$ H L(H}HuHUH¶}HEHEHDž`HUHpF~H$}HcHhHu.}HHHuH}к}H}кy}H}@vEHE@ gXQEEH}11}HE@ gD`EEDEE‹uH} D1tdẺHHDž@H !HXHDžP H@H5 !H`DH`HuH}1辶}kUuH}H݅H۽@H@HXHDžPHPHu1H`׍H`HuH}1Q}D;eHuH}HEHP;]$H~H`x}H}o}H}f}H}]}HhHt|I~H L(H]UHHd$H}EHUHEHB(H}H]H7@~HW@~Hg@~HHHHHH'HHHHHXg?~HX?~HX?~HXwHXHXGHXHXwHXHXGHXHXgHXUHHd$}}mH]UHHd$}HEHEfEfEmH]UHHd$}mm}mH]UHHd$}mmm}mH]UHHd$}}}~ mm}m}}}mm}E}|mH]UHHd$}Em}mH]UHHd$}Em}mH]UHH$H L(L0L8L@H}HuHUMDELML~HUH` A~H5}HcHXHEHtH@HHPH5\4aHPH}~E؃HHHEEHEHHcEHk <EЃAEEEHEL0HcELk H]HcELk0HMHcEHk HH$fDfD$}HUHcEHk0Bl# C,.HEHHcEHk <D;}H;EEC~H5 5aH}~HXHtwD~H L(L0L8L@H]UHHd$H}HuHUHMLEHEHtH@HEH}tHEHtH@HH~EE}H!HHEȀ}H!HHEE|XEDEHMHcUHk ,]EXEEHMHcUHk E,E];EE^EEFE|)EfEHMHcUHk E,];E*EM^MHE8HE8}EEfDEHMHcUHk ,]HuHMHcUHk E,E.HU:H}LEHcUHk HMHcUHk ,A,0E/HU:;E|pE|fEEHuHMHcUHk E,.HU:H}LEHcUHk HMHcUHk ,A,0/HU:;EH]UHH$@HPLXH}HuHUHMLEL ~HEHEHEHEHEHEH51aH`Wb~HH<~H}HcHx5 /aH/aHf/afH4aH5/aH}6 ~H/aH5p/aH} ~H/aH5Q/aH} ~Hy/aH52/aH} ~Hb/aH5/aH} ~HDžpH5@/aHpHEHx ~HDžpH5/aHpHEHx ~HEHtH@H\Hc\HUHtHRHH9tHE H}tHEHtH@HH~ ƅ<ƅ<<t,Hc\HUHtHRHH9tHE HEHtH@HX}HEt X;\~HEW HcXHpH53aHpH} ~DžTX|NDžL@LHMHcLHk0|*uHUHcTL T;LHcTHpH52aHpH} ~TuHE HcTHcTHHpH5-aHpH} ~HcTHpH5,aHpH} ~HcTHcTHHk H}1&}HcTHk H}1}HcXHpH5,aHpH}6 ~\gXDžPfPXgD`E|lDžLLHMHcPHk HH$fDfD$LHUHcLHk0HUHcLHk <D;LHMHcPHk HH fDf(T;X~XgD`E|nDžLLHj,aHMHcLHk0H<H`Cc~}t%HUHcLHk m,ۭ ۽ D;L<t HUHcPHk ,۽۽T DžLLHuHMHcLHcHk ۭ,۽LDžHHLTHDLMHcDHk LEHUHcHHcHk ۭA,A,9HMHcDHk <;HHMHcLHk ۭۭ ,HMHcLHk <;L;PpTDžL@LLDžH@HH΋TL@LTHDLMHc@Lk H}HcDHk H4K4fLfCL;H;LRHcTHpH5(aHpH}~HH$LLEHMHUTT>uHEuHEHEHUȋ\BHEȋTPHcXHpH5@(aHpHEHx~X|ODžLLHULBHcLHk HuHcLHk0HL I 8fT(fAT8;LTDžLLHULBHUHcLHcHk HuHcLHk H I 8fTfAT8LEHMHcLHcHk0HuHcLHk H IL8 fTfAT8(;LvLMDX\HUHuH} HEL@ HEHH0HUHuH}HDžpH5&aHpH}t~\;T~/HMHc\HcTH)Hp߭pi0۽H HHfBfHHUTT_H}~|EDžPPHMHcPHk ۭ,HMHcPHk <;PŃHcXHhHcXH`H55&aH`HEHxd~XxDžLLX|QDžPfPHMHIHcPLHcLHk H H1I48fIfAL8;P;LH}~HDžHDHHcHHcTHHLHcHHcTHHPHEHpHEHcPHcLHUHcLHcHk HuHcHHk HI8fDfAD8HEHpHEHcLHcLHUHcPHcHk HuHcHHk HI8fDfAD8;HHEx@\|>DžPPHuHcPHk HUj@,HUz@;PHEۅ\h@HEx@HExP\|GDžPPHuH}HcPHk HUj@,nPHUzP;PHDžpH5B#aHpH}~HDžpH5#aHpH}~HDžpH5"aHpH}~HDžpH5"aHpH}p~[2~H5\$aH}+}H5"aH}U~H5"aH}U~H5|"aH}U~H5l"aH}{U~H5|'aH}kU~H5L"aH}[U~H5,#aH`HU~HxHtW3~HPLXH]UHH$H}HuHUMDEH}uHEHUHRhHEH}HUHx(.~HP }HcHp%HEHUH}1woHU؋EHU؋E艂HEHLEIHH=8QәHUHDEMHUؾH=H[nHUHB`HEHx`uHEH@`HHEHx`uHEH@`HHEHx`H5E HEH@`H0HEH@`Hx`HEHHEH}tH}tH}HEH0~HpHtlHXH,~H }HcHu#H}tHuH}HEHP`/~G1~/~HHt2~l2~HEH]UHHd$H}HuH~HEHUHHHEHx`9HEH)H}1nH}tH}tH}HEHPpH]UHHd$H}HuHH=$aH-~t`HEphH}I HEHH}e HUHEHUHEHUHEHuH}FH]UHH$ H L(L0H}uHEHX`HHHUHP*~H }HcHHH}WEt 0H f)H 11H RH H 1HQHl Hq 1HQHG HT 1HQHMHUHuVfTfT>DH$HtDHk HT$HTfT$fTD9m|$$9|;gD{ADH$HtHk ll$|$D9l$z6u4HD$hHcD$`HH|$PZ~HcD$`HH|$XZ~{H$HLHk HTHT$0fDfD$8l$0zs l$|$ l$|$ Hk HT$ HD$pHTfT$(HD$pfTl$ l$0l$<$H$HLHk l$ l$0|gKD9H$H$H$|$@$9|EgD{ADH$HtLk $Hk lBll$@|$@D9l$@,$Ht$P$Hk |$9ugKD9H$H$H$$9|mgD{ADH$HtHD$Ik LD$PD$Mk AMk BlCllዔ$Hk |D9H$Ht$Hk lHL$X$Hk lዔ$Hk |$9+A9BHct$`H|$PKX~Hct$`H|$XHk Hk AlAlHM؉Hk |gFǃfDHk IDHEfADfEgO9|<ʃDMDLk LU؉Hk Al Clm}9ΉHk mAlHM؉Hk |w|E1fDHUЋDLk LM؉Lk KTHEJTfCTHEfBT9HcHk H}CS~H]LeLmLuL}H]UHHd$H]LeLmLuL}HEL}EЃ} AIIHMML˸ HEHcuHcEHH}R~HcUHcEHHL|LHk HD1HEfD1fEH}؉Hk HEHD7fEfD7mzu AAЃHk mAl6}Lk Hk mHul>Bl}LE؉Hk HuIt8fufAt8mz u A)H߉Lk Hk ml7BlHk |3A?u u9XA?MHk Hu؋UHk ll;UHk |MgQ|WЃfDHމLk HcHk Hk HUl ,>BlHM؉Hk lHk |HcuHcEHH}P~H]LeLmLuL}H]UHH$HLLLLAH HhHEHpHEH@A|3 |)h|Hc IcHH9 HchH9~H@ HxHMLˋ hg HXxXЉH`Hc`IcHH}O~IcHcxHH}pO~IcHcxHH}YO~Hc`H}IO~IcHcxHHPHLy|AAEA!1HHHHHc HHcHH9|0IcHchH)HcHH9|hHg@D;IcHchH)HcHH9|XDꋅH)‹ g HcHcxHHMDHk HtDHk HH||HcXHcH)HcxHHHMIcHcHHk H|1h|ADXHA9Dꋅh)gB1}H@ADH881HH@HHHUDHk H|X識}DXHMHHk HEHDfEfDN8~HW (}mmHMHHk |m}mmzsHEHEfEfEmzu H@H94 H0D0E1H( @}ADD(8D9~ADD9gAL$HHDHHHuHHk HLHMfDfEmztDHMDHk lm}DXmmzsHEHEfEfEHH9ymzuH@ A9gSXgDrHUDHk H|Hc`HHu|HUDHk HtHM(Hk H|Hc`|HM(Hk HtHc`HH}|HMHk HDHEfDfEHMHk DHk HTHT1fDfD1HMDHk HEHDfEfDHk HPHTHUHPfD fEHk DHk HPHT0HPHTHPfT0HPfTDHk HEHPHD fUHPfTHMHk DHk HDHD1fDfD1HM(Hk HDHEfDfED(gAT$D92HHHHHHDXHMDHk ml}Xgr|RAfDAH}IIcIcIN Ik Hc(LHk mA,A,Ik |D9HuIcHcXHHk |HMH΋HHk DHk mll>ዕHHk |HPHHk DHk mllዕHHk HP|H9(XH(8D9~H@8H@8+}Hc0HH‹X8ȃH(88HHHH(X)H(h9~HuHHk HDHEfDfE0gD A|JE1ALMHc(IcHH9Hk HuHcHHHk lAl m}E9Hu(Hk mlHuHHk |HHk HPHL0HMHPfD1fE0gD A|OE1fALMHc(IcHH1Hk HcHHHk HPlAl9m}E9Hu(Hk mlHHk HP|HuHHk l}mmzsHEHEfEfEȋH6mmHp8Hc`Hc8HH}bF~Hc8HcxHH}GF~Hc8HcxHH},F~Hc`H}F~HLLLLH]UHH$HLL L(L0AHXIMLPHEH`HEH8|*E|%X|IcHcHH9 HcXH9~H8 HhXgAgJhщHpHUHxxkHcHchHH}D~HcHchHH}D~HcpH}D~HcHchHHPL|AEA1HHfDHHIcHHcHH9|0IcHcXH)HcHH9|XHg;D6IcHcXH)HcHH9|xDꋅH)gB:HcHchHHuHHtHI||HcxHcH)HchHHHMHHTHcHk H<1|HA9}H8DH@@1HHHHHMHH|x>}HMHHk HEHDfEfD-~H (}mmHMHHk |m}mmzsHEHEfEfEmzu H8H9DHk |DHk Hk l$ H$l H$l2DHk H$| D9$9~ E`E|$0$$gDjDA|$`gAE$9|NAAAHT$pDH|DHk H$DHk lll$`|$`D9HT$pDHLDHk H$DHk l$`llDHk ||$`gAE$9|LAADAHL$pDH|DHk DHk H$ll7l$`|$`D9DHk l$`H$lHT$pDHTDHk lDHk H$|H$DHk l|$Pl$Pl$0zsHD$PHD$0fD$XfD$8Ak,$l$0H$8EtH$H$Hc$H$+~Hc$H$+~Hc$H|$x*~HT$p$QH$A_A^A]A\[UHH$ H8L@LHLPLXAՉHhHEHpA|A9~Hp]H`MLMAk HEk AHcHcEHH})~HcuH})~HcuH})~HcuH})~HcHk H})~IcHH})~A܃|h1HxHxHMHcxHIcHHk H4HcxHHchHHk H`H<HcU蜸|x9HpH$LMLEH}DÉD*Hp8u`IcHcEHH}*)~HcuH})~HcuH})~HcuH})~IcHk H}(~HcHH}(~IcHuML|HEHD$HEH$LMLEH}؉ADD{؉1HxDHxxHk MDLEfATfUȋxgDBhDDEA|<1HcLcLLk LEHk AlH`Blm}A9LMDxMk HUKTfUfCTx9NHUHT$HUH$LMLEH}DщAD}}Љك|X1HxDHxHuxHk lm}HuxHk lm}Ћx9mH (mzovmHpIcHcEHH}&~HcuH}&~HcuH}&~HcuH}&~IcHk H}&~HcHH}&~ك|P1HxHxxLk H}xHk HtHEJtfTHEfBTx9IcHcEHH}E&~HcuH}8&~HcuH}+&~HcuH}&~IcHk H}&~HcHH}%~H8L@LHLPLXH]SATAUAVAWH$`IILD$xL$|9~H$HT$`A LAk H$k HT$pHc$H|$@#%~Hc$H|$H%~Hc$H|$P$~Hct$pH|$X$~IcHH|$h$~A܃|M1H$DH$HL$`$Ht$I|Hc$|$9L$LD$hHL$@H|$`DDFH$8utIcHc$HH|$`p$~Hc$H|$@^$~Hc$H|$HL$~Hc$H|$P:$~Hct$pH|$X+$~HcHH|$h$~HcT$pHt$XL#|HD$PH$LL$XLD$hHL$@H|$`ADDV؉1H$H$$Hk IT?HT$0fAT?fT$8EA|A1@$I|Lk LL$PHk AlBll$0|$0A9LD$X$Hk HT$0IT8fT$8fAT8$9YHT$HH$LL$XLD$hHL$@H|$`DADd|$|$ ڃ|e1H$H$Ht$P$Hk ll$|$Ht$H$Hk ll$ |$ $9l$HQ (l$ H$IcHc$HH|$`""~Hc$H|$@"~Hc$H|$H!~Hc$H|$P!~IcHk H|$X!~HcHH|$h!~ك|\1H$@H$$Lk H|$P$Hk HD7HT$xJDfT7HD$xfBT$9Hc$H|$@P!~Hc$H|$H>!~Hc$H|$P,!~Hct$pH|$X!~HcHH|$h !~HT$`DGH$A_A^A]A\[UHH$HLLLLAH LHHEH@A| |IcHHc H9}H@^ HPIILË gBEHcuIcHHcPHHh~IcHcPHH`~HcuHcPHHX~IcHcPHH8HL|AEEA1H(fH(( 9}](HcHcPHHhHcEHcMHHcH)Hk HtDHk I|]|A݋UEЉE싅(A9}EE۽pDH001H(@H(}~mU;U|aEEDEHhHc(HHcEHȋuHcHLk LX!Hk JDID fBDfAD ;UEU)gpHXEHk H|Ii}D(EE>AmHhIcHHcEHHcEHHk lm}0D9~}mۭpzsHEHpfEfx~H (}H`(Hk HEHDfEfDm}mmzsHEHEfEfEȋ(9kEANjEE1A}~mU)EAċEEgCU‰E!fDEEEDHAD;}D}EEډHmz wE0Wm}HhHcEHcUHHk HEHDfEfDH`Hk HTHUfDfE؉]MD9LgEoDAmHhHcEIcHHk H`EHk llm}D9|mmH`Hk |Hk H8HTHUH8fD fE؉]UD9NgEoAmHhHcMIcHHk EHk H8ll>m}D9|mmHk H8|09~ EE}EE00gZf}~m]H`Hk HTHUfTfU؉Hk H8HT1HUH8fT1fUMD9gEofAUUugB*LhHk H`UHk lAl0m}LhHk UHk H8lAl8m}D9|UӉHhHk mlH`Hk |HhHk mlHk H8|H`Hk l}mmzsHUHUfUfUmۭpmHH8EtH@ H@HcuHc0HHcPHHh9~Hc0HcPHH`~HcuHcPHHX~HLLLLH]Hd$H<$gJH$PʉHH$HhHcPHcHHHk HTHPfTfPH$PH)PPH$@H$z9|PH$HhHcrLcBLLk LcBHcLHk l1Bl jzH$B9H$P;P}6H$HhHcPHcHHHk hlHcPHc@HHk |Hd$UHH$HLL L(L0AIIL8LHHEH@|E|HcHIcH9}H@ HPgAFEHhu=HcHcPHH`~HcuHcPHHX~HcHcPHH8L|AEA|\EfED;u}]]HcHcPHHhMHtHcMHcH)Hk HƋEI|若|D;e}EE۽pEDdEE}~mU;U|NEEEHXuLk HhMLL!Hk ID JDfAD fBD;UEU)gpHXEHk H|`}DeEE-AmHhDHTEHk lm}E9~}mۭpzsHEHpfEfx ~H (}H`EHk HEHDfEfDm}mmzsHEHEfEfE;]EEEA@E}~mEU)EAċEEEDH)AHcUHHcEH9܋EEuHmz wE0hm}HhUHLEHk HEHDfEfDH`EHk HDHEfDfE؋EEEU9KÃfDmHhEH|Hk H`EHk ll7m}9|mmH`EHk |EHk H8HD HEH8fD fE؋EEEU9LÃmHhEH|Hk EHk H8ll7m}9|mmEHk H8|D;u~ EE}EEAgAFEfDm}~mEEH`EHk HTHUfDfE؋EHk H8HD HEH8fD fEEgPE9ӃfDEHhDEDH|Hk H`E!Ik llm}Hh}LDHk !Hk H8lAl0m}9|HhMHTEHk mlH`!Hk |HhMHTEHk ml!Hk H8|H`EHk l}mmzsHEHEfEfE}jmۭpmHH8EtH@ H@IcHcPHH`~HcuHcPHHX~HhuD7HLL L(L0H]Hd$H<$HHhPH|PHk HLHHfTfPH$PH)PPH$@H$R9|RfH $HhDANLAMk ANDyHk Al8CliyH $A9H$P;P}5H$Hh!HtHHk hlHHT@Hk |Hd$UHH$ H(L0L8L@LHAHXHIMLMHEHxA| X}Hx HEDAHcHcEHH}~IcHcEHH}~ILPMED|l1HpHpHMHcpHIcHHk H4HcpHHcXHHk I<HcpHcEHX|p9IcHcEHLhLHP-|}A}DH``I1HpfDHp}p|CE1DAHMHcpHHc`HIcHHk lm}D9ŋpgP`9|DAAfAHuIcHHc`HHcpHHk lm}D9mmzsHEHEfEfE}Hۍ (HMpHk |HMpHk l}mmzsHEHEfEfE؋p91σgDQD`EDgDL]EMk OLLMfGLfDMAA|,E1AL]McHcIMk Cl m}E9mz wE0)LUEMk mC| L]EMk OLLMfGLfDMgDYD`E9ELpHpHpDpgEYD`EDg4L]AIk MLLMfELfDMAA|BE1ALuLcMcMMk HcIMk ClClm}E9mmL]AMk C| DpE9HL]AMk OLLMfGLfDMAA|AE1DAL]IcLcIMk H]EMk Bl+Cl m}E9mmLUAMk C| AMk LhOTLULhfGLfDMAA|AE1fAL]IcLcIIk EMk LhCl)Alm}E9mmAMk LhC| D`A9~ E,$<$D9HT$`DHTDHk ,$lDHk H$|HT$hDHk l<$,$l$0zsH$HD$0fD$fD$8Aql$0l$Pl$ HD$x8EtH$H$Ht$`D@(HcHcD$pHH|$hz~H$A_A^A]A\[UHH$H0L8L@LHLPAALHEHA|A}HIHLAk HDHIcĉHIcHcHH |}HcHi}HcHV}HcHC}HcH0}HcH}HcH }HcH}HcH}HcH}HcH}HcH}HcH(}HcH(Hҍ|Dу1HhHhhgpHxh|q1HfDHL HcxHcIJLk HchHIcHJHk I|K|fADfCD9h9X۽pHpp_1HhHhhgHpȉHxHhhD۽`h|L1HHH HcxHcHHk lۭ`۽`9hgHp9|cHHHH HcHHcpHHchHHk lۭ`۽`9ۭ`ۭpzsH`Hpfhfxh9HX1XH`HXȃpXL HcpIHHk HcIIk Al1 Al9 Ik Ik A,1Al9 H~ D`AHhHhhg~pHxHhLk L HcxHchL>Mk LcIMk Cl.ClMk Mk ClClLcpLHHk Ik Al6Al>B|#hA9KLXHk L LcHcIK4Hk LcpLL)IHc`IK4 Hk Al2AlHcXI4Hk MMk Cl Al2I4Hk Al2A|8L HcHcHHk I|0H}fAt0fuDXA|`H@HL HcHcHLk LHk Al3Clm}A9LHk HuIt8fufAt8L MHcXHcIJ4Hk Hc`LHk Al2Al:mHcLHk A|0L HcpLk HHHk A,1Cl Hk Al1 H~ L HcpHLk Hk Hn A,9Cl}HHuHwfufwL MHcpHHk Lk C,Al9 mHk A|22u-L HcpHk LI|0 Iy fAt0fAq}p93gqHhHhhgDFpDDHxL HcxLcLHk MD1LEfAt1fuAA|aHHL LcxHcLHk LHk Al3Alm}A9m}mmzsHuHufufuhHL HcxLcLLk HuKtfufCth9mz{9g~pApL΋A|ǃ1HHL LcHcLHk MD1LEfAt1fuL LcHcIK4Lk IcLHk MD1ODfAt1fCtL McHcLLk HuKtfufCt9Xϋ9HHgDFpDDHL LcHcLHk MD1LEfAt1fuL HcLcLLk McHcLHk MD1ODfAt1fCtL McHcLLk HuKtfufCt96p9HhfHhhgDFpDDHxL LcxHcLLk KtHufCtfuL LcHcxIK4Lk HcLHk MD1ODfAt1fCtL HcxLcLLk HuKtfufCth91L HcpHcHHHk It8HufAt8fugD@pD9|^DHhHhHhL LchIHcpLHcLLk mClHk A|1h9p9>HH HHf@fAAEAH IcHHcpHIcHHk HDHk HDHDfDfDHDHk HDHk HTHT7fDfD7HDLk H IcHHQHcpHH Hk HTJTfDfBDpD9.HEHD$HHD$ HHD$HHD$HH$LLHHHp^H8۽@AAE1fDA}Hr (HDHk |HDHk HDHEfDfEm}mۭ@zsHEH@fEfHE9ڃE1@AHDDHA9toH(DHk HDHEfDfEH(DHk Hk HLHL>fDfD>H(Hk HEHDfEfDD9dE1U@AƉHxEAHHDHk HDHEfDfEH(DHk HDH0fDf8HH HcxHcHHk L(Hk All7ۭ0۽0H HcxHcHHk LHk All>m}A9eHDHk HEHDfEfDH(DHk H0HDf8fDD9HHD$HHD$H(H$LLHHH?HHD$HHD$HH$LLHHH4?gDsA۽PDEAHDHk HDHEfDfEDHk HHL0H0HfD1f89gBH@HgpgB.HH Lk LHk AlBlm}H Lk Hk HlBlۭ0۽09`DHk H0HHD1f8HfD1HDHk HEHDfEfDm}mۭPzsHEHPfEfXAjgDs@AHDTHA9DHk HHD HEHfD fEDHk Hk HHTHHT0HfTHfT0Hk HUHHTfEHfD A<ۭPۭpۭ@H8 HHcHcHH }HcH}HcH}HcH}HcH}HcH}HcH}HcH}HcHl}HcHY}HcHF}HcH3}HcH( }H0L8L@LHLPH]SATAUAVAWH$IIH$`L$PL$X}H$X k H$8H$HHc׉H$@H$ Hc$8H$,}Hc$8H$}Hc$8H$}Hc$8H$}Hc$8H$}Hc$HH$(}Hc$@H$0}Hc$8H$}Hc$8H$}Hc$8H$o}Hc$8H$Z}Hc$8H$E}Hc$8H$L}x|A܃|2E1fAIcHk H$ DHtDI|Hx|D9ۼ$DE1AH$(DDtۼ$D|9E1AH$ DHLDHk l۬$ۼ$D9gAF9|=AAAH$ DHtDHk l۬$ۼ$D9۬$۬$z"s H$H$f$f$D91@L$ IpIL)n IPi j H$z gPAfDAH$ LDIcIMk DL\IYHk Al ClDLk Hk AlClN DHk DHk AlAl1H$DHk |D9rH$HcHLNMk L$ M\Hk OTLfIk AlAlIk Ik AlAl2Ik AlB|H$ HtHk HTHT$0fTfT$8gp|KAfAH$ LLIcLk H$DHk lCll$0|$0D9H$Hk HT$0HTfT$8fTH$ HtIHcHk Hk AlAll$0Hk |H$ HJHR*i j H$z H$ HRH$*i j|$0H$HT$0HQfT$8fQH$ HJH*j l$0y)u$H$ HRH$HJ HN fRfV|$PgP9AAfAH$ DLDHk ItHt$0fATfT$8AA|MAfAH$ DLTIcHk L$DHk AlAl2l$0|$0E9l$0|$@l$@l$Pz!sHT$@HT$PfT$HfT$XDH$hH$ DLDHk HT$0IT0fT$8fAT0D9l$PzHcHJHc$hH9SH$(Hc$h E1AH$ HcLDHk ItHt$0fATfT$8L$ HcI4DLk $hMTDHk MLNLfATfBTL$ $hMDDHk HT$0IT0fT$8fAT0D9YgH$h9$hgD~fAH$ DLDHcHk I4Ht$0fATfT$8L$ DItHcLk $hMTDHk MLN fATfBTL$ $hMDDHk HT$0IT0fT$8fAT0D9Y$h9$hgDv@AH$ DLDHcHk I4Ht$0fATfT$8H$ DLDHcLk $hHk IT0KfAT0fCTH$ DLD$hHk HT$0IT0fT$8fAT0D9aH$ HcH4ʉHk HLHL$`fTfT$hgP9|AAAAH$ DHtHk l$`lHk |D99H$ HH$HHfBfAAAL$IcHHLk H$ DHLHk HTKTfDfCDL$IcHHk H$Hk HTIT0fDfAD0H$ DLDDHk H$DHk IDHDfADfDD9EHD$pHD$H$XHD$ H$0HD$H$HD$H$H$L$L$H$H$H$LH$X8ۼ$AAE1Ao}Hx` (H$DHk |H$DHk HDHD$0fDfD$8l$0|$0l$0۬$zsHD$0H$fD$8f$E9rڃE1@AH$(DLH$h$hA9txH$DHk HDHD$0fDfD$8H$DHk $hHk HLHL>fDfD>H$$hHk HD$0HDfD$8fDD9XE1=AAH$DHk HDHD$0fDfD$8H$DHk HTH$fDf$DAH$ DHtIcHk H$DHk ll۬$ۼ$H$ DHtIcHk H$DHk lll$0|$0IcHIcH9oH$DHk HD$0HDfD$8fDH$DHk H$HDf$fDD9H$XHD$H$`HD$H$H$L$0L$H$H$H$-H$XHD$H$HD$H$H$L$0L$H$H$H$,gDkۼ$DAH$DHk HTHT$0fDfD$8DHk H$`HD H$H$`fD f$gAE9AAfAH$ DH|IcHk H$DHk lll$0|$0H$ DH|IcHk DHk H$`ll7۬$ۼ$D9yDHk H$H$`HTf$H$`fD H$DHk HD$0HDfD$8fDl$0|$0l$0۬$zsHD$0H$fD$8f$AtgDkfDAH$(DTH$h$hA9DHk H$`HTHT$0H$`fD fD$8DHk $hHk H$`HTH$`HT0H$`fTH$`fT0$hHk HT$0H$`HTfD$8H$`fD A+۬$۬$۬$H$P8H$XHc$8H$}Hc$8H$~}Hc$8H$i}Hc$8H$T}Hc$8H$?}Hc$HH$(*}Hc$@H$0}Hc$8H$}Hc$8H$}Hc$8H$}Hc$8H$}Hc$8H$}H$ MH$pA_A^A]A\[UHH$HLLL L(H0HIIMMHEHHHEH@0}H@ 0gHgHXH88HPHc8H}}Hc8Hx}HcPHpm}HcXH}]}HcXHhJ}HcXH`7}HLMHc8Hunf|HcXHuH[f|0~Hc8HxL:f|HcXMLL%f|}E0틅0gXE1AAuXH`DHk HE(|0Hx(H`DHk lDHk |0D9u>HM0Hk lHM0Hk lH`DHk |LHUDHk lHUDHk lHxDHk lH`DHk |H`DHk lzuAf}HV (}H`DHk mlHhDHk |m}mmzsHEHEfEfE0D9~ Enf@AăH}Hk HtHufLfMmzH}DHk HL7HMfL7fMH`DHk mlHk mlHxDHk HtHufLfMH}DHk HMHL7fMfL7HxDLk LMHk IL9JLfAL9fBLmm}HuHk mlmHk |D9~[HpDLk LxHk IL9JLfAL9fBLmHpDHk lHxHk |H`Lk DHk H|J|fLfBLHhDHk HtHufLfMHhDLk Hk HL>JLfL>fBLHhDHk mlmHk |DHk ItHufALfMDHk Hk ItIt?fALfAL?DHk mAlmHk A|mm}HuHk LxDHk mAll>Hk |D9~HpDHk |HhHLk DHk mlBlHk |LHk DHk mll7Hk A|5D9~HpDHk |HuDHk lzuA09t EHM0Hk lzuAE}Hu0Hk Hh0Hk ll>0Hk |0Hk Hu0Hk lAl0Hk A|Hh0Hk l}mmzsHEHEfEfE苅0HhHщHk HxLk D0Ik lBll1HMHk lHk |LHk HxLk 0Hk lBll1HUHk lHk A|HhHk l}mmzsHEHEfEfE苕0gB*AAAHhHDLk HxDHk IcIIk ,lBlHpDHk Ik l lHMDHk lDHk |LDHk HxDHk IcIIk ,ll9HpDHk Ik l lHUDHk lDHk A|HhDHk l}mmzsHEHEfEfEAmmHH8EtH@ H@Hc8H}}Hc8Hx}HcPHp~}HcXH}n}HcXHh[}HcXH`H}HLLL L(H]SATAUAVAWHd$AAHL$PA|A}HD$PHIcHH|$H}IcHk H|$@}LL$PHL$HILIDED1HD$P8gAGgB 8Hk ITHT$ fADfD$(l$ z uE0Al$ !Hk A|DgDODDgDOEE9|DDɃfDLcILcMLcMMk ClL\$@AMk C| A9gDWEE9DуgDQDD|$0gD_EE9|=D؃LcLcMMk L\$@AMk Cl+Cl&l$0|$0A9LcLcMMk LT$0OTfDT$8fGTA9ugDOEE9|?DȃfLcLcMMk Ld$@AMk OlOl fGTfGT A9LcLcMMk OTLT$ fGLfDL$(l$ z uE02|$0gDOEE9|ODɃLcILcMLcMMk L\$@AMk Cl#Cll$0|$0A9l$0l$ LcLcMMk C|gDOEE9Dȃ|$0gDOEE9|LDɃ@LcILcMLcMMk Ld$@AMk Cl,Cll$0|$0A9l$ l$0LcILcMLcMMk C|A9n~ E8EAgALL$HAT9EA1fgAÉHcLcLHk MTLT$fADfD$HcLcLLk HcLHk M\O\fADfCDLcHcLLk HD$KDfD$fCDA9zIEuHD$P HD$PIcHH|$Hs}IcHk H|$@b}Hd$`A_A^A]A\[SATAUAVAWH$AAH$A|A}H$ HIcHH$}IcH$}Ak H$Hc$H|$P}Hc$H|$X}Hc$H|$`w}Hc$H|$he}Hc$H|$pS}Hc$H|$xA}IcHpHc$HHH?HHH$}H$H$L$H$H$HLL$@DH$$DH$$O>H$8 Ƅ$H$H$Yf$Hk H$l$$$$g H$H$Hc$HPHc$H9t $u$; HL$XH$HHH$fPfQHD$XHHT$ f@fD$(Hc$Hk Ht$PH$H HH$fD fFHc$Hk Ht$XH$HD HF H$fD fFHT$XHB HD$ fBfD$(HL$`H$HB HH$fPfQAH$fDDD$H$$AΉH$Hc$IcHHk LD$PDHk H$HD9ID0H$fD9fAD0Hc$Hc$HHk LD$X$Hk H$HL8IL0H$fD9fAD0Ht$X$Hk HLHL$ fDfD$(Hc$Hc$H)Hc$HHk LD$`DHk H$HL8IL0H$fD9fAD0Hc$HHc$H)Hc$HHk LD$hHk H$HL8IL0H$fD9fAD0$$9fE1E1DH$A$|71H$H$Ht$p$Hk |$9HT$pDHk |DH$@D$H$|$0AuH$r$H$a$H$Hc$HHc$HHcHHk HL$p$Hk lH$l0l$0|$0$A9HL$p$Hk HD$0HDfD$8fD$$9H$HD$HD$xHD$HD$pH$L$LD$hHL$`HT$XHt$P$L$H$D$DD$DH$AHL$x$Hk HTHT$0fDfD$8$D9|sgAL$H$H$Hc$HHc$HIcHHk Ht$x$Hk lH$l8l$0|$0$9HL$x$Hk HD$0HDfD$8fD$$D9|ZgAOH$H$AH$DHk LD$x$Hk ItHt9fADfD9$9$D9E1틌$E1fDA$D9gAWH$H$AHc$HHc$HIcHLk L$DHk I|H$J|fADH$fBD $9D9`$gPAADAH$DLA9ogAGH$gAW$ЉH$gA$‰Ƌ$1H$@H$Hc$Hc$HLk H$JDHD$0H$fBDfD$8Hc$Hc$IJLk HcLLk H$J|H$J|H$fB|H$fB|HcHc$HLk H|$0H$J|fD$8H$fBD$9D9gAH$H$$gP$ЉH$Hc$IcHLk H$JTHT$0H$fBDfD$8Hc$IcHLk HcHc$HLk H$JTH$JTH$fBTH$fBTHcHc$HLk HD$0H$JDfT$8H$fBT$9$9 gAH$fDH$$gx$H$Hc$IcHLk H$J|H|$0H$fBDfD$8IcHc$IJLk HcLLk H$J|H$J|H$fB|H$fB|Hc$HcHLk H|$0H$J|fD$8H$fBD$9Ak$uH$$1H$H$$gH$ȉH$$gH$9H$H$H$Hc$HOHc$HHc$HLk Hc$HHk H$JLH$HL8H$fBLH$fL8$9$9H$Hc$H|$P谻}Hc$H|$X螻}Hc$H|$`茻}Hc$H|$hz}Hc$H|$ph}Hc$H|$xV}Hc$HpHc$HHH?HHH$$}H$A_A^A]A\[SATAUAVAWHd$H˃|} IIHL$ AAtDIcHk H|$0蓺};nA+Hk AlAA΃gB (IcHqHcH9tEuEAgAT$EA9|GgJHcHMcILcLHk LD$0AMk MT?OTfA|?fC|A9LD$0Hk ML8L $fA|8f|$D9gAL$fD9u ,$|$|$gDAEDgDBAE9|DDƃLcLcMMk LL$0AMk ClCll$|$A9gDIEE9|ND΃fDLcIMcMLcMMk LT$0AMk ClCll$|$A9,$l$LcLcMMk C|9 zEu nD|f1ɃgyAgyEA9|GfHcLWMcMLcMMk LcLLk K|K|fC|fC|A99IcHk H|$0;}Hd$@A_A^A]A\[Hd$؃}<$J|$|,1fLk Hk lBll$|$9HD$H$fD$fD$,$Hd$(UHHd$H]LeLmLuL}HEHEDHEЋEHEHUE HE؃EEЃIIփE1AgEUEDDgEUEDDDUA1fD}D]A|IE1AIcHLcHcELHcLHk LcLHk AlAlm}E9HcLcLLk HEKDfEfCDA9|D9;H]LeLmLuL}H]SATAUAVAWHd$HD$H$|[D$|RH|$MME1AA|;1fDIcHk HT$H<LT$Hk A|D,$A9Hd$ A_A^A]A\[Hd$ȃ|$v1|$ AA|8E1AMcILcMLcMMk Bll$ |$ E9l$ l$zsLD$ LD$fDD$(fDD$9HD$H$fD$fD$,$Hd$8Hd$؃|>|$| 1Hk ll$|$9HD$H$fD$fD$,$Hd$(Hd$؃|4|$| 1Hk ll$|$9l$<$,$Hd$(SHd$|\|W|$E1ۃ|@1AA|+E1ɐAMcIcIMk Bll$|$E9A9l$<$,$Hd$ [SATAUAVAWHd$A׉HD$0AxI|$ E1AA|P1fDIcHk I<Dr|$l$l$ zsHD$HD$ fD$fD$(Dl$0A9HD$ H$fD$(fD$,$Hd$@A_A^A]A\[Hd$ȃ|\|$|>1Hk l|$ l$l$ zvHT$ HT$fT$(fT$9HD$H$fD$fD$,$Hd$8SATAUAVh|cE1ۃ|[1AA|E1fLcMt$McMLcMMk McMMk Nd/Od0fFd/fGd0A9A9A^A]A\[UHHd$H]LeLmLuL}ALHEHEȃ|A}HEIIHcHk ML@|ىʃ|n1fDAt9tTLk K|H}fC|f}Lk Hk ML=OLfA|=fC|Lk H}K|f}fC|9σfLk Kt HufCt fugD@EA|@1@LcIIcLHcLLk Hk Al5Clm}A9ƉLk HuKt fufCt 9ugDAAgAxALcIcLLk K|H}fC|f}mzu0sDLk K| H}fC| f}gEHD9|9Dʃ@LcLcMMk AMk ClClm}9mmDHk A|=A~?t HE HEH]LeLmLuL}H]UHHd$H]LeLmLuL}AH}HELU LUA}LUAnIHUHMMLIcHk ILW>|@1!Hk HUl@@A9t@u@gAUDπ|;teLk K|H}fC|f}Lk Hk ML>OLfA|>fC|Lk Hk Al>ClmHk A|>6LAMk AMk AMk BlCl BlHk A|>A9NDLk H}JDHEH}fBDfEDHk mAlDHk A|A~^Lk H}JDHEH}fBDfEMHk Lk DHk AlHEBlAl9mHk A|gAE~Hk HEHT8HUHUfD:fELLk Hk LcIk ,HElBlHk Ik l AlmHk A|@t HE HEH]LeLmLuL}H]UHH$H0L8L@LHLPHpHhHEHuHup| h}HuH`HMMLHxpk HEHcuH}}HcuH}}HcuH}}HcuH}ӫ}HcuH}ƫ}HcUHuH;|ƅXE1>DAHk H`lXXhg gApD9t XuXSpE1fADHuDtE9taH}DHk HT7HUfT7fUH}DLk DHk HtJtfTfBTH}DHk HUHT7fUfT7D9E1DEAH}DHk HtHufTfUIDكIcHHchHHcHHk HuHk lH`l:m}A9H}DHk HUHT7fUfT7pD9[HuH`HHH`fQfVHMHHUfQfUȋpHchHk H}H`H 2HH`fT1fWHchHk H}H`HT1 HW H`fT1fWHUHJ HMfRfUHuH`HJ HH`fJfNAADDEAgAWh։HcIcHHk HuDLk H`LL:NLL`fAT9fBTHcIcHHk HuDLk L`IT9JTL`fAT9fBTH}DHk HT7HUfT7fUHcHchH)IcHHk HuDLk L`IT9JTL`fAT9fBTHchHHcH)IcHHk HuLk H`LD:NDL`fAT8fBTpD9HEHD$HxHD$HEH$MLEHMHUHup!pgDxDpfDEADHk HxHD1HEHxfD1fE؋p9|NgZHcHHchHIcHHk Hk Hxl0H`l8m}9DHk HMHxHL0fEHxfD1AFppgDz@ADHEDtE9DHk HxHTHUHxfD fEDHk DHk HxHTHxHT0HxfTHxfT0DHk HEHxHD fUHxfTAQXt HE HEHcuH}}HcuH}}HcuH}ڥ}HcuH}ͥ}HcuH}}H0L8L@LHLPH]SATAUAVAWHd$AHMσ|A} AIHcHk MLk4|A1/Hk Al AAgB "9tEuEjك1gD@EDAMk OLL $fGDfDD$gpAA|81fDLcLcMMk AMk ClCl ,$<$A9LcLcMMk OLLL$fGDfDD$l$,$AMk C|9PgCHk ILH $fATfT$gP9|B׃@HcHIcHHcHHk Hk AlAl5,$<$9HcHrIcHHHk Al,$Hk A|dEt AAHd$ A_A^A]A\[UHH$pHpLxLmLuL}AHE؉HEDHEH}HUHu HM(HE0HEA|2|.E؅|'LcIcHI9LcMI9Eȃ|E}HE{LEH}HHUIcHk HHMH1|HED}D1@ALMCL9tzAMk LEOLLMLMfGDfDEAMk AMk LEOLLEOLLEfGLLEfGLAMk LMLEOLfDELMfGDD9~AgDBEE9|mDƃAMk H]AMk AMk LcMMALcuMLcMM)Mk LMClBl+Bl#LEC|A991҉HEDHcEHc}HHHcH9~Lk H}JDHEH}fBDfEAA|SHcHcIJLk HGHc}HLHk H}lHEBlm}A9HcHHc}HLk H}JHEH}fBDfEmzu HEmmHk HE|8| HEЃ8HpLxLmLuL}H]UHHd$H]LeLmLuL}AHELLe|IcHHcH9|A|E؃} A$IIcHk ML.|gDCgA@gAPA$DgDQD]EEу~AMk O\L]fGTfDUAA9=gxIcLcIMk Hk AlClm}A9|McMcMMk OTLUfGTfDUmz u A$mmAMk C|A9| A<$'A<$gAPAgAM~AMk OTLUfGLfDMAA9Ggx@LcILcMMLcMMk AMk ClClm}A9|LcILcMMMcMMk mClAMk C|QH]LeLmLuL}H]UHHd$H]LeLmLuL}ALHEHEA}HEQIHIIcHk ML,|>fDƒLHk Hk AMk BlAl l7Hk A|A9uHDHk HLHMfTfUmzu HU HUHU:uDHk mAlDHk A|gAMo@Hk HtHufTfUmzu HU7LLk HcHk Hk Al,>BlmHk A|| HU:tH]LeLmLuL}H]SATAUAVAWH$ H$L$L$| $}H$H$H$k H$Hc$H$m}Hc$H$X}<$Ƅ$AAV1H$@H$$gP$AՋ$$H$T|$ك|N1H$fDH$IcHc$HHk H$ll$|$$9H$$Hk HD$HDfD$fDn}H (|$`l$`l$H$$Hk |l$`|$`l$`,$zsHD$`H$fD$hfD$l$z uƄ$$A9AD1|$PEA9gzH$DH$$gDO$DEL$D$Ik ML:LL$fA|:f|$l$ztQIcLcLHk L$Al9l$|$`l$`l$PzsH|$`H|$Pf|$hf|$X$$A9El$Pzu Ƅ$9gD@$DEgDB$DDEA1H$DH$IcLc$LLk H$NLLL$`L$fC|f|$hMcHc$IK<Lk HcLLk H$NTH$NTH$fFTH$fFTLcHc$LLk H|$`L$K|f|$hL$fC|$A9#L$Lk K|H|$`fC|f|$hL$Lk Hk ML8OLfA|8fC|L$Lk H|$`K|f|$hfC|AH$BDL$Lk Lk K|K|fC|fC|HcIMHHc$LK<Lk L$K|H|$ L$fC|f|$(gzEA9AL$H$fH$$gDG$DEMcHcLHk l$ L$Al8|$0McHcLLk LD$0H$NDf|$8L$fC|l$0zgzEA9AL$H$H$McHc$M8Mk L$Mk HcHLc$IHHk Al9l$0ClH$B|$A9@$@u?L$MD$Mk Hk l$0Al9Clዼ$Hk A|8$A99G$v|$@ASgAGH$H$$gH$ȉ|$p$gHD9|nH$H$DH$HcHc$HLk H$$Hk lH$Bll$p|$p$9HcHc$HHk H$$Hk l$plH$l0$Hk |H$$Hk l|$`l$`l$@zsHD$`HD$@fD$hfD$H$,$l$@H$8$t5H$H3RHH$HfRH$fPH$Hc$H$_}Hc$H$J}H$A_A^A]A\[UHH$HLLLLALUHEH} L](LhL]0L`A}L`AIIILLMHPH( HXIcHHcXHH HLL!|IcHcXHHHHLl!|IcHHcXHHL@LMLB!|IcHcXHHxؑ}IcHcXHHp辑}}ƅ0gEwDH885E1ADH(DAuAmA,$}q8D9u/8Hk Hlዕ8Hk Al}7DHk HlDHk AlDHk Al}HpDHk HEHDfEfD{}H (}mmHxDHk |m}mmzsHEHEfEfEmz uƅ0D9DAǃHk H HT1HUH fT1fUmzuDHk HHHL2HMHHfT1fUmzuDH(D =DHpDHk mlHk mlH(D DH(| DHk H@HL2HMH@fT1fUDHk HUHHHT1fMHHfL2DHk Hk HHHL2H@HL:HHfL2H@fL:mmHk H | Hk H HL2HMH fT1fUHk mHHlmHk HH| E9~gDHk Hk H@HL2HPHL:H@fL2HPfL:mDHk HPlɉHk H@|HpHk DHk HLHL7fTfT70HxDHk HLHMfTfUHxDHk Hk HLHL7fTfT7HxDHk mlmHk |mmHk H |Hk H HT1HUH fT1fUHk DHk mH@l HHl2Hk HH|E9~DHk HP|0nHxHωHk DHk mll7Hk |DHk Ik l HPlDHk HHlDHk |HxDHk l}mmzsHEHEfEfEAHmmHh80t2H`H)RHHhHfPHhfP H`Hc8HcXHHx}Hc8HcXHHp҉}HLLLLH]UHH$ HPLXL`LhLpHLHEH| }HHHLk HHcHcH8ƈ}HcH0賈}HcH(蠈}HcH 荈}HcHz}HcHg}HcHT}HcHA}HcH.}۽pH]1HDHgHȉHHL۽`|L1HHHcHcHHk Hlۭ`۽`9gq9|cHHHHcHHcHHcHHk Hl0ۭ`۽`9ۭ`ۭpzsH`Hpfhfx9H1ҹL HHʃLHcIHHk HcIIk Al1 Al9 Ik Ik A,1Al9 H(~ HHg~HL(Lk HHcLcN Mk LcMMk Bl.BlMk Mk BlBlLcLLLk Ik l>BlC|49ML(Lk LHcHcIJ4Hk HcLH)IHcHI4LHcLk HHk A,9Cl Hk Al1 H(~ LHcHLk Hk H(o A,1Cl}H(HuHwfufwLHcHHk Lk C,Al9 mHk H|>9u4HcLk L(HJ| Iy HfBtfAq}9BgqHfDHgDFDDHLcHcLLk HNDLELfCtfuAA|bHfHLcHcLLk L(Hk Al2HBlm}A9m}mmzsHuHufufuDLcHcLLk HuLKtfuLfCt9mzD97gAHHD|AA1HHHcHcHLk HJtHuHfBtfuHcHcIJ4Lk HcLLk HJ|HJ|HfB|HfB|HcHcHLk HuHJtfuHfBtA9,D9gAwHDHgDFDDHHcLcLLk HNDLELfCtfuLcHcLLk LcHcLLk HNDHNDHfFDHfFDHcLcLLk LEHNDfuLfCt9 D9gEGLHgDFDDHLcHcLLk HNDLELfCtfuLcHcIK4Lk IcLLk HNDHNDHfFDHfFDHcMcLLk LEHNDfuLfCt9HcHcHHLk HJtHuHfBtfugzDA9|kHHHHcHHcHHcHHk mLAl1Hk H|7A99H0HHHHfPfQfʃHcHHcHHcHLk L Hk HJDID9HfBDfAD9L8Lk H Hk HD7KDfD7fCDL0Lk HcHH~HcHH7Hk HHD>KDHfD>fCD9$HEHD$HHD$ HH\$HHD$HH$LLH H0H8HxxHHHHf@fFHcHk HHHfBfDHcHk HHB HD fBfDIHHIW f@fAGAA@DEAAΉHHcIcHHk HDHk HLIL?fDfAD?HcIcHHk HDHk HLIL?fDfAD?IcHHcHIcHHk HDHk HLIL?fDfAD?HcHHcHIcHHk HHk HLIL?fDfAD?xD9H8۽@DxAE1Ad}H(H(DHk |H(DHk HDHEfDfEm}mۭ@zsHEH@fEfHE9E1fEAHH(DHk HLHMfDfEQHIcHHcHHcHHk H(Hk lAl?m}A9H(DHk HEHDfEfDxD9@HHD$HHD$H(H$ILHHHxxgDhDx۽P@DEAHDHk HLHMfDfEȋx9|bgBHHHcHHcHIcHLk HHk lClm}9HDHk HEHDfEfDm}mۭPzsHEHPfEfXAۭPۭpۭ@H8#H RHHHfQHfPHcH8"w}HcH0w}HcH(v}HcH v}HcHv}HcHv}HcHv}HcHv}HcHv}HPLXL`LhLpH]SATAUAVAWH$pAHD$xHHL$hLD$pA| D$x}HD$pIcHk H|$`u}I|$ Ƅ$|$PED8E1A|$@D|:E1AIcHHcD$xHIcHHk All$@|$@D9gAED9|ድXHk |X9pHA9xHP8}HcHHHpЃHPHXfHXp)‰H(9~HHMXHk HTHUfDfEg |b1HHHcHcHH2Hk HUHcXHHk lH`l8m}9Hk mH`lHMXHk |HMXHk l}mmzsHEHEfEfEȋXmmHx8#H8RHHxH f@HxfBHcHcEHH}e}HcHcEHH}|e}HchH}le}HLLLLH]SATAUAVAWH$PA$L$Mυ|IcHHcH9| A|<$} A1H$IcHk H$d}gCD$|$@D$D$ ۼ$EAL1@|$ ~l$ gC$D$ D$ D$T$ )gpH$D$ Hk H|W|$`A݋D$D$BfDAl$H$IcHHc$HHcD$HHk ll$`|$`E9~|$l$`۬$zsHD$`H$fD$hf$N}H(|$0H$Hk HD$0HDfD$8fDl$0|$0l$0l$@zsHD$0HD$@fD$8fD$HA9D$D$D$D$ 1AfgC$‰D$ |$ ~l$ D$)T$ AՋD$ D$%D$D$D$DHAD$;D$|؋D$D$D$D$ډHl$0zwE0Al$0|$pH$HcD$ HcT$HHk HD$pHDfD$xfDHA9~ EE`|$PD$D$ A(gA^|$ ~l$ \$H$Hk HDHD$0fDfD$8L$ ;L$_D$ƒD$H$DD$IcHHc$HHcHHk L$E!Ik All>l$0|$09|H$HcHHc$HHcD$HHk l$0lH$Hk |H$Hk l|$0l$0l$PzsHD$0HD$PfD$8fD$Xl$P۬$l$@H$8Et AAIcHk H$`}H$A_A^A]A\[Hd$H<$HHHk HLHH0fTfP8H$pH$@H$z 9NH$jH$LLcB HcLLk LJHk AlCl j0z09|H$hph0H!Hk |Hd$Hd$H<$gNH$ȃH$H$LHcxHcHHk It8Hp0fAt8fp8H$px)p pH$@ H4$DNA9|NH4$HLcVLcMMk LcLcMMk BlBln0~0H4$FA9H$p;p}4H$HHcpHcHHk h0lHc@HcHHk |Hd$UHHd$H]LeLmLuL}HEHEH}H}Ћ}؃}H}OHIIMIŻ HcUHHcHLEL{{HcUHcHLLe{HcUHHcHLHLH{LHk HtHufDfEmzuHEHEDփHk mH}l}Lk H}HEJ|fEH}fBDHk Hk mll9}Hk HEHD9fEfD9mz u HEHEЃ8u E9cH]LeLmLuL}H]SATAUAVAWH$<$HIIMLL$L<$}HD$A $AljH$8$AljD$$AljD$Hc$8H$_\}Hc4$IcHH$G\}Hct$H$ 5\}Hct$H$(#\}Hct$H$\}Hc$8H$[}Hct$HkH$[}Hct$H$[}Hct$H$[}Hc$8H$[}H$L$L$L$$gP|$1H$Hk |9HHc$8H$p[}Hc4$IcHH$X[}Hct$H$ F[}Hct$H$(4[}Hct$H$"[}Hc$8H$ [}Hct$HkH$Z}Hct$H$Z}Hct$H$Z}Hc$8H$Z}H$@A_A^A]A\[SHd$H|$@`fDHD$@HHk lzv#HHcHk Hk l,zwHD$@H@jHD$@;~HD$@HHcHk ,zwHD$@H@*HD$@|41ۃHT$@HHk lHHk |9HD$@0|<1ۃHD$@HHcHk Hk l ,:HHk |9HD$@HHi *HY*H x HD$@HT$@HHcLk Hk l9B,H )H HHk |HT$@HHk H )l7H HcHHk |9HD$@HcPHD$@H(HD$@H {HD$@LHHD$@H(HD$@gxHD$@LHD$@H@8i HD$@HH(j )H8HD$@|XDHL$@H(HcIIMk LHk Al BlIk lHk A| 9HD$@x HD$@|01HL$@HHk l7i y 9HD$@HHH Hf@(fFHD$@Hi )H R)H(i H8HD$@8~2HD$@Hi H(H(iix HD$@|ZHL$@H(HcIIMk BlLHk Al Ik lHk A| 9HD$@x HD$@|01HL$@HHk l7i y 9HD$@HHH HN f@(fFHD$@DHL$@L(HcHHHLk LHk Al8Cl HHk |HL$@HHcLk B,AMk BlH5.H(IIMk LHk Al BlIk lHk A| HL$@LHcH~IMk Cl L(HLk HHk lC,HHk Al Ik |gKHt$@69|UʃfHL$@H(LcMIMk BlLIk Al Ik lHk A| 9HL$@y gKHt$@69|.ʃHL$@LHk Al8i y 9HL$@LHcHk Hq I48fI(fAL89HD$@LHcHk L(HHHHk Al0Al9HHk |HD$@H8Hk l1HcHwIMk Bl H )H(IIMk HHk l8Bl HHk l1Ik |HD$@x HD$@HL$@ 9|/ƒHD$@HHk l7h x 9HD$@HHk HP HTf@(fDHD$@L(HcHrHHk H!Hk lAl0HHk <HD$@H*۸HD$@0HD$@HHk l۸HD$@HHk ۨۨl HcHk ۨ,:HHk l:ۨHHk |HD$@HHff9UHD$@H*۸HD$@Hj ۸HD$@Hj۸HD$@Hۨۨj ۨۨ*ۨۨjۨۨHxHD$@8HD$@Hۨۨjۨۨj ۨۨjۨۨHx2HD$@Hۨۨj ۨۨjۨHx(HD$@HHffHD$@HHffHD$@fDHT$@HHcHk ,ۺHT$@HHcHk ۪۪,9۪۪ɉHk ۪l9۪Hk ۪l9 ۪HHvHk |HT$@HHcHk ۪۪,9ɉHk ۪۪l9۪HHvHk |HT$@HHk ۪l۪HHcHkHk |HT$@HHffHT$@HHff9yHD$@H@H$HD$@LHD$@LHD$@H(HD$@gxƭHD$@H@8HD$@HHD$@HHD$@H|$@HD$@xpHD$@x@HT$@HB@H$fBHfD$H|$@HD$@x HD$@H@8HD$@h z rHD$@x`HD$@H@xHL$@HsHHAPfBfAXHD$@ƀ0HD$@HPPH$f@XfD$H|$@HD$@x HD$@H@8HD$@h zrHD$@ƀ0+HD$@HPPHP@fPXfPHHD$@hPH*xPHD$@0uH*hPzUHD$@0u&HD$@H@HD$@HP@HP`fPHfPh^HHHT$0f@fD$8|$ HD$@HPPHT$f@XfD$HT$@HB@H$fBHfD$HD$@Hp`H|$@HD$@H@8Hd$P[UHH$H(L0L8L@H}HHEH$fEfD$H}}HEH@8HE H$fE(fD$H}}HEH@8mmzssqHE HEfE(fEHEHEfEfEHEHfEfCHEHE fEfE(HEHEfEfEHEHEfEfEHEHEfEfE/HEHEfEfEHEHEfEfEHE HfE(fCE1m |$m<$ Km@m0۽pmm ۽`E0fm mH(}A}mmzuHEHfEfCmm mmmm;m +ۭpz-v+mm <$ dLۅLۭpm ;m+<$cAm +<$cA9uHEHfEfCHE HEfE(fEHEHEfEfEHHE fCfE(HH$fCfD$H}}HEH@8HEH$fEfD$KcLcHEH$fEfD$2cHcLM~%HEHEfEfEHEHEfEfEE1AmmztwrHE HEfE(fEHEHEfEfEHEHfEfCHEHE fEfE(HEHEfEfEHEHEfEfEHEHEfEfEE1m |$m<$Hm@m0۽pmm ۽Pۭ`ۭPzrAHPH`fXfhmm ۭpzsmzt ERH(L0L8L@H]UHHd$H}}HUHEHB0fEfB8H}HEH@80HUHBpHEfBxfEHEh0zHEHHEHHEH}m}}HE|?1DHMLHk HHk lAl8m}9mH(m}}HE|T1DHMLLk HHk l7ClHHk lm}9mm}mH]SHd$H<$H(*(|$ gA|\1fIAMk AIk LcIMk ClAlClMk ClMk Bll$ |$ 9HcHk l!Hk ll$ HZ(|$l$Hd$0[SHd$H|$H^_HD$PfZ_fD$XHD$HcpHkH|$@D}HD$HcpH|$HD}HD$N1fDHT$LHcH4ILk H HHk j0lClHL$@Hk |~FHT$LHcH4IHLk H HHk j0lClHL$@Hk |~9LD$@HcHkHHk HL$HHk HTIT8fTfAT8HT$j0z6u4HT$LHk H|$HHk IT0HTfAT0fT*HT$HHk j0lHL$HHk |9HD$H@H$HD$LHD$gxHL$HHT$@LL$Pe"HD$H@8u/HD$HcpHkH|$@ C}HD$HcpH|$H C}1HD$H(|$HD$h0z u|$0HD$h0|$0HD$Hh |$ HD$HHl$0*l$H*)H8HD$Hl$ l$H*l$ j Hl$0j i Hx HD$ HD$fD$(fD$HD$HT$HHk l|$ HT$HLk l$ l$HHcLk Bl Hk l$l1Hk l$ l1HHk l$0lBlHHk |HT$ HT$fT$(fT$9?HD$HHk l|$ HD$HʉLk l$ l$HHcLk BlHk l$lHHk ll$0BlH!Hk |HD$LHcHJLk HHk l7l$0l$ HHk lClHHk |HD$h0z9u7HD$|(1HT$HHk |9HD$HcpHkH|$@?}HD$HcpH|$H?}Hd$`[SATAUAVAWHd$AAHT$xIMAk HcH|$`n?}HcH|$ha?}<$Dd$pD$p|$EDƒ|D1fHL$`Hk |HL$hHk |Hk ,$HL$xl<$9l$,$L8L:EAwHcHk LT8LT$@f|8f|$HHcHk LT:LT$Pf|:f|$XH|$H|$ f|$f|$(|$<$Dǃ1fAMk l$@LT$xClL\$hAMk ClL\$`AMk l$PCl|$0L\$`AIk LT$hAMk Ol"MlfGT"fETL\$hAIk LT$0MTfDT$8fETl$0|$0l$0l$|$AMk l$0LT$xCl,$<$9'l$,$Hk |8l$ l$Hk |:A9H|$`>}H|$h>}H$A_A^A]A\[UHH$PHXL`LhLpLxAAHEAk HUHMLEMIHcH}<}HcH}<}}D|E1fDHuHk |HuHk |Hk mHUl2}9É}EmL:DD1D}}AMk LMODLELMfGDfDEAMk OLLMfGDfDEAA1fDAMk mLUCl LUAMk Cl LUAMk mCl }LUAMk H]AMk NL#OLfFL#fGLL]AMk LMOLfDMfGLAMk mLMClm}mm}A9>mmLcMk B<9H};}H};}HXL`LhLpLxH]SATAUAVHd$IIHMHcHPHk L{gCf)у΃LHcLcLIMk Mk Hk l9 C,B,Ik A<HcHcHHcHH9t4LHcLcLIMk Mk Hk l9Cl B,Ik A<y9YHd$A^A]A\[SATAUAVAWHd$AHD$@IIMNjD$@|A} A]AD$@uGLL|$D|1Hk l$l|$9Dt$8D$8l$9IcHHcD$@H9}2LHcT$@IcH)HrHk DHk H<1v{gAFHD$@D$@k HcH|$ 8}HcH|$(8}HcD$@HpHk H|$08}LD$(HL$ Lt$@DHD$0H$LL$(LD$ LLt$@DTMHL$0HT$(Ht$ |$@HcH|$ 8}HcH|$(8}HcD$@HpHk H|$0x8}Hd$PA_A^A]A\[SATAUAVAWHd$AMH_HD$Pf_fD$XAA} AA|HII͸ HD$`IcHcD$`HH|$07}IcHHcD$`HH|$87}IcHHHcD$`HH|$@7}gAt$|5fHHcHk Hk ,l HL$0Hk <9H HHT$ fQfT$(l$ H߸*|$HT$0Hi *l$HT$@z gA|$|gfLD$0HcHk Hk A,All$HL$@HHk |HT$0HcHk l$ l2Ht$@HHk |9HT$0*|$DكfDHt$0HcHk l|$ LHcHk l$ l$lɉHk l$ ,HVHk l$,7Ht$8Hk <HT$ HT$fT$(fT$9~1L<$MHL$8HD$@HP g{LL$PHcHcD$`HH|$05}HcHHcD$`HH|$85}HcHHHcD$`HH|$@5}Hd$pA_A^A]A\[UHHd$A} Au7H(h }H(h m}m.m*}Vm.zMrKH(h }H(h mm)H (}m.m*}Hk m,HLcMk AMk B,Bl}HAMk LcIMk B,B,mIk lmHx(}Lk Hk m,mB,}[E1ɉ8McLcMMI?MIEE!Mk mB,zwEDMcMPLcM9uHMcMk EMk B,Bl }DHk m,}Eu[m)}H(h mm)H(}mmH(mm*}|HcHIcH9HcHk lm}HЉLk HcHLk B,B,mHk lmH(}HcHHk mmH(Hk lH4(mmm,2}HIcHk DHk l0,8m}HDHk l0H5.IcHHk l8mHZ(HDHk Hk ,0,8m}DHk mmH (E!Ik H5n.lmmm,:}mH]UHHd$H]}HuHUHMLELMHE}} HEA}t;HEHEHEHEHEHEEgX|EEH;]H]H]Hd$H|$HHPpHcHk !Hk , l: xHD$xu[HD$HPh*Ha(|$ |$0HD$HP*j hHPh*H̱(|$@xHD$HcPHHc@H9HD$HHHcPHk lhH(|$ HD$HHHc@Hk HTHT$0fDfD$8HD$HPpHk HcHHk , ,:hHHHk lhH(|$@HD$HPpHcHk !Hk l ,:hH4(|$ HD$HH@Hk HDHD$0fDfD$8HD$HPp̉Hk l H )HcHHk l:hHj*HPHk !Hk , ,:h|$@l$ zl$0l$ H(l$@|$Pl$Pzr^l$P|$Pl$0l$Pl$ HS(<$H|$0l$0l$Pl$ H)(<$H|$Hd$hUHHd$H}mzHEmhzHEHP@Hk m,<$HEL@HEHHHEHPHEHpHEx}HEH@m(zvHEHPHEHfEfBHEH@m(zsHEHPHEHfEfBH]SH$p<$t$HT$HL$LD$ LL$(HD$PHT$XHt$p|H{HcH$]HD$(|$}HD$(;HD$HD$0HD$HD$8HD$ HD$@HcD$H$H5_H$H|$PY|D$|iD$HfDD$HHT$8t$HHcHLk AMk B,B, HT$0Lk !Hk , B,HL$PHcHk <;D$HD$D$HfDD$HH|$PH$L$HHcHk ,7zvH$HcHk l7 zw6H$Hk ,zlsjH$HcHk l zOsMLD$@L$HHcHLk H|$PH$HcHk H$Hk ,,7H*C<HL$@HcT$HHk | ;D$HHL$@HT$PHHfBfAH|$PT$HcHk Ht$@!Hk HDHfDfDD$gXD$HfD$HHT$PHcD$HHk ,z~H$H$|H*{HcH$ H|$@T$HHk Ht$PHcHk ,,H(z.s,H|$@T$HHk HL$PHcHk ,H^(<7H|$@T$HHcHk Ht$PHcHk ,l H+(z0s.H|$@T$HHcHk HL$PHcHk ,H(|7 N|H$ HtsH$(H$@|H{HcH$u&HT$@D$HHk <HT$@HcD$HHk | |H$Ht||;\$HTHD$P(H(HD$@h H*8H|$@T$Hk HL$PHcHHk ,Hª(Hk ,Hp(<7R|H5_H|$P }H$Ht|H$[UHHd$A} Am.zrm.)*}aHk m,z/w-Lk Hk m,Hk ,B,} E1:DIcLcLII?LHA!Hk m,zwEDIcLHHcI9uHIcLk DHk ,8Bl }DHk m,m}DHk mH&(,2mDHk m,mmmH(HX(mMcI@Hk ,2mHk ,mm}mH]Hd$HIH|$HƹHH|$0LƹHH|$PHֹHHt$0H|$6PHt$PH|$N<$,$Hd$xHd$HHH|$ HƹHH|$@HֹHHt$@H|$ OH|$ O|$l$z u<$l$-_l$<$,$Hd$hUHH$pHxLeLmLuL}IIH}HH}LƹHHcHItHUH}m}|?AADLk DHI4H}C,/m}D9HEHEfEfEmHxLeLmLuL}H]UHH$HHLPLXL`LhHpHHLLHEHHEHHE H1HpHHUHpfPfUAD|m1HfHHHHpH 0HMHpfD1fEmmzsHEHEfEfEȋ9IcHHpHtHHpHHIcHHHtHHHHHpHHUHpfBfEE1D|s1HHHHHpH 0HMHpfD1fEmmzvDHEHEfEfEȋ9IcHHpHtDHHpHH)IcHHHtDHHHHIcHHHpHtHIcHHpHtH LHHHEfBfEDHHHHHpH4HIcHHpHtHKۭۭۭۭ}mmzvDHEHEfEfE9_DHHpHDHHpH4HDHHHDHHH4HIcHHpHpHtHIcHHPHpHtHDHH0HpH4HIcHHHTH0HfD f8IcHHHTHHfD fIcHHHTH@HfD fHIcHHHTHHfD fDHHHHPHfD fXDHHHTH HfD f(gA\$HcHpHH}A܅|KHxDHxHcxHHk HHxH|詏|H0Ht舒|c|HEH]Hd$H(h hh<$,$Hd$Hd$H(h hh<$,$Hd$H8Fx xxH8Fx xxHHHfVfPHV HP fVfPxxH8Fx FxxH8Fx FxxHHHfVfPHV HP fVfPHVHPfVfPxH8Fx FxF xH8Fx FxFxH*.8j n x jnxjnxH.8n x nxnxH*.8j n x jnxjnxH*.8j n x jnxjnxH*.8j n x jnxjnxHd$H.(n h nhnh<$,$Hd$UHHm.8mn x mnxmnxH]UHHm.8mn x mnxmnxH]UHHm.8mn x mnxmnxH]UHHm.8mn x mnxmnxH]H$(H|$H4$HH|$H*x{HD$HHT$Ht$(H|Hpf{HcHT$huH|$1Ҿ`{N|HD$hHtfHT$pH$|H%f{HcH$uHH|$x{|芌||H$HtӍ|讍|HD$H$H$(H|$H4$HH|$H:w{HD$HHT$Ht$(X|He{HcHT$hu2H|$1Ҿ#_{HT$HNHT$HNB =|HD$hHtfHT$pH$|He{HcH$uHH|$w{|y||H$HtŒ|蝌|HD$H$H$H|$(Ht$ $L$T$\$HD$ H|$(Hv{HD$(HHT$0Ht$H|HFd{HcH$u.HT$($HT$(D$BHD$(T$PHD$(T$P |H$HtkH$H$譅|Hc{HcH$uHt$ H|$(Rv{譈|8|裈|H$Ht聋|\|HD$(H$Hʋ DFHHHH@΋:<RTHHHHPVPV@ F HHHY@JY\HHK ^@ Y@HLWYF@HqLWYFYF HZZF@ZF@ZF@ H.n XnXnX HVPV PVP HZZF@ZF@ZF @ H.n XnXn(X HVPVPVP HZZF@ZF @ZF(@ H.n Xn(Xn2X HXFXB@FXB@F XB @ H\F\B@F\B@F \B @ HHJ WFHJ W@FHsJ W@F HcJ W@ Hd$HH$HIAY@AY@XHIAYH@AY@ XDrHd$HHH YAYGXHN Y AYBX@HXNXHNXHN XH H\N\HN\HN \H HYNYHNYHN YH H^N^HN^HN ^H H$(H|$H4$HH|$ Ho{HD$HHT$Ht$(|H^{HcHT$huH|$1Ҿ W{ނ|HD$hHtfHT$pH$|H]{HcH$uHH|$ 4p{菂||腂|H$Htc|>|HD$H$H$(H|$H4$HH|$ Hn{HD$HHT$Ht$(~|H]{HcHT$hu6H|$1Ҿ V{HT$HoFHHHT$H]FHHBɁ|HD$hHtfHT$pH$x~|H\{HcH$uHH|$ o{z||p|H$HtN|)|HD$H$H$H|$(Ht$ $L$T$\$HD$ H|$( Hm{HD$(HHT$0Ht$H}|H[{HcH$u6HT$(H$HHT$(HD$HBHD$(HT$HPHD$(HT$HP茀|H$HtkH$H$5}|H][{HcH$uHt$ H|$( m{5||+|H$Ht ||HD$(H$HH HHDHFHHH HHDHFH@H:H<ȁHRHTHHH H 0HRHT0HHHHPHVHPHVH@HFHHHY@JY\HHC ^@Y@H5DfWYF@H DfWYFYFHZZF@ZF@ZF @H.n XnXnXHZZF@ZF @ZF@HHHHVHPHVHPHV HPH.n XnXn(XHZZF@ZF@ZF@HHHHVHPHV HPHV(HPH.n Xn(Xn2XHXFXB@FXB@FXB@H\F\B@F\B@F\B@HH"B fWFHB fW@FHB fW@FHA fW@Hd$HLL$HDHD$HIAY@AY@XHHIAYH@AY@XHDrHd$HHH YAYGXHN Y AYBX@HXNXHNXHNXHH\N\HN\HN\HHYNYHNYHNYHH^N^HN^HN^HH$(H|$H4$HH|$(Hf{HD$HHT$Ht$(w|H@U{HcHT$huH|$1Ҿ(N{z|HD$hHtfHT$pH$v|HT{HcH$uHH|$(tg{y|Z{|y|H$Ht||~||HD$H$H$(H|$H4$HH|$(H f{HD$HHT$Ht$((v|HPT{HcHT$hu$H|$1Ҿ(M{HD$8HD$xy|HD$hHtfHT$pH$u|HS{HcH$uHH|$(qf{x|Wz|x|H$Ht{|{{|HD$H$UHH$0H}HuHEH}(Hd{HEHHUHuu|H@S{HcHUuOHUHEHfEfBHUHE HB fE(fBHUHE0HBfE8fBHUHE@HBfEHfB&w|HEHteHxH8t|HR{HcH0uHuH}(8e{w|y|w|H0Hthz|Cz|HEH]HHk H<H>fLfNHk HTHV fDfFHHkHHHTHVDFH@Hk H H 8fJfL8Hk HJ HL0fRfT0HHkH H 0HJHL0RT0HHHfPfVHPHV fPfVHP HVfPfVHPHVf@&fF&Hd$HHHh *(j <$,$Hd$UHHm}mh>h m~ hm~m(~H]H8Fx FxF xH8Fx FxFxH8Fx F xFxH8Fx FxF xHHHfVfPHV HP fVfPHVHPfV&fPHV(HPfV0fP&H8Fx FxFxH8Fx F xF(xHHHfVfPHV HP fVfPHV(HPfV0fPHV2HPfV:fP&H*.8j n x jnxjnxH*.8j n x jnxjnxH.8n x nxnxHd$رLkJH$JDHD$BDD$HIA((Ahh Hk<HIAh (Ahh Hk| rHd$(HHH/)o i 8HN*)j i x UHHm.8mn x mnxmnxH]UHHm.8mn x mnxmnxH]UHHm.8mn x mnxmnxH]UHHm.8mn x mnxmnxH]H$(H|$H4$HH|$(Hj^{HD$HHT$Ht$(n|HL{HcHT$huH|$1Ҿ$SF{q|HD$hHtfHT$pH$=n|HeL{HcH$uHH|$(^{?q|r|5q|H$Htt|s|HD$H$H$(H|$H4$HH|$(Hz]{HD$HHT$Ht$(m|HK{HcHT$huCH|$1Ҿ$cE{HT$H4HT$H4BHT$H4B lp|HD$hHtfHT$pH$m|HCK{HcH$uHH|$(]{p|q|p|H$Htr|r|HD$H$UHH$H}HuEMU]emu}HEH}(H\{HEHHUHX=l|HeJ{HcHPuYHUEHUEBHUEBHEUP HEU؉PHEUЉPHEUȉPHEUPHEUP n|HPHteH8Hk|HI{HcHuHuH}(M\{n|3p|n|HHt}q|Xq|HEH]Hʋ ʋL NDFHHk HHDFH@΋:<@΋z| RTHHk H H 0RT0HP VPVPV PVPVPVPV@ F HHHH QHp(YYh(Y\Y (Y0Y\Yb\YY\YBXHH~1 ^HHJ HAYBRYQ\YHHHAYBRYQ\H*2WYFHHH AYBRYQ\YFHHJ HYBYQ\H1WYF HHHYBYQ\YFHHH YBYQ\Hw1WYFHHJ HYBYQ\YFHHHYBYQ\H1WYFHH Y@YR\YF HVPH/PVP V PH/PHx/PHl/PH`/P HZZF@H4/PZF@ ZF@H/PH/PH.PH.P H.n XH.PnX nXH.PH.PH.PH.P HZZF@ZF@ZF@ ZF @ZF(@ZF0@ZF8@ZF@@ H.n XnXnX n(Xn2Xn{HEH[HUHuXN|H,{HcHUHUHEHfEfBHUHE HB fE(fBHUHE0HBfE8fBHUHE@HBfEHfB&HUHEPHB(fEXfB0HUHE`HB2fEhfB:HUHEpHB{_P|Q|UP|H0Ht4S|S|HEH]HHk H 8HfL8fNHk HL8HN fL8&fNHk HTHHHHHPnX nX(H$HHP0HHHP8HHHP@HHHPHHHHPPHHHPXHHHP`HHHPhHHHPpHHHPxHZZF@ZF@HjHHPZF @ ZF@(ZF@0H>HHP8ZF@@ZF@HZF @PHHHPXHHHP`HHHPhHHHPpHHHPxHHHHVHPHVHPHHHPHVHP HV HP(HV(HP0HHHP8HV0HP@HV8HPHHV@HPPHdHHPXHVHHP`HHHHPhH:HHPpH,HHPxH.n XnXHHHPnX n(X(n2X0HHHP8n fW@(F0H- fW@0F8H fW@8F@H  fW@@FHH fW@HFPH fW@PFXH fW@XF`H fW@`FhH fW@hFpH fW@pFxH fW@xHd$HIAfAAHHI4HHH YAYF XIYN@XAYF`XAHHH YNAYF(XIYNHXAYFhXAHDHH YNAYF0XIYNPXAYFpXAHDHH YNAYF8XIYNXXAYFxXAHDAHd$(HHH YAYGXIYOXAYGXHN H YAYGXIYOXAYGX@HN@H YAYGXIYOXAYGX@HN` Y AYBXIYJXAYBX@HXNXHNXHNXHN XH N(XH(N0XH0N8XH8N@XH@NHXHHNPXHPNXXHXN`XH`NhXHhNpXHpNxXHxH\N\HN\HN\HN \H N(\H(N0\H0N8\H8N@\H@NH\HHNP\HPNX\HXN`\H`Nh\HhNp\HpNx\HxHYNYHNYHNYHN YH N(YH(N0YH0N8YH8N@YH@NHYHHNPYHPNXYHXN`YH`NhYHhNpYHpNxYHxH^N^HN^HN^HN ^H N(^H(N0^H0N8^H8N@^H@NH^HHNP^HPNX^HXN`^H`Nh^HhNp^HpNx^HxH$(H|$H4$HH|$HzHD$HHT$Ht$(|HzHcHT$huH|$1Ҿsz |HD$hHtfHT$pH$]|HzHcH$uHH|$z_ | |U |H$Ht3 | |HD$H$H$(H|$H4$HH|$HzHD$HHT$Ht$(|HzHcHT$hu;H|$1ҾzHD$8HD$x2HD$xdHD$۸|HD$hHtfHT$pH$C|HkzHcH$uHH|$zE| |;|H$Ht | |HD$H$UHH$0H}HuHEH}HwzHEH&HUHu|HzHcHUHUHEHfEfBHUHE HB fE(fBHUHE0HBfE8fBHUHE@HBfEHfB&HUHEPHB(fEXfB0HUHE`HB2fEhfB:HUHEpHBfLfNHk HL8(HN fL80fNHk HL8PHNfL8XfNHk HLxHNffF&HHHk(H4HH@Hk H H 8fJfL8@Hk HJ HL8(fJfL80@Hk HJHL8PfJfL8XHk HJHL0xfR&f0H@HցHk(H<HHHHfPfVHP(HV fP0fVHPPHVfPXfVHPxHVffV&HP HV(fPfV0HP2HV2fP:fV:HPZHVHHJPHHxjojoi j ojo ijo j oim~ HHJxHH(jojoi j ojo ijo j oim~HHHz(HPjojoi jo j oij ojo im~HHJ(HzPHxj/*oi*oj/ijojo)m~(HHJPHHxj/*oi*oj/ijojo)m~2HHJxHH(j/*oi*oj/ijojo)m~LeHc]Hq|HHH9v|HH}"l{A| uHcMHcEH)q|Hq|HcUHuHpm{HpHHc]Hq{|HH-H9v#|]HcEHUHtHRH9pHcEHxH5"_HxH}_{J{HpZ{H}Z{HEHt{H`LhH]UHH$pHpLxLmH}HuHZ{H|HUHu{HzHcHU^H}H54i{HEH}H5;i{H,H}H5Bi{HH}H5Ii{HH}H5Pi{HHEH@HHtHRHHEHc@H9uDHEH@HHtH@HHq|HEH5 _HEHxHMٺ{HEL`M,$H]HcCHH9v1|Hc[HI<${I|HuSY{HEHcXHq@|HH-H9v|HEXL{H}X{HEHt{HpLxLmH]UH1u|=.ju%=5ju込j=jj=jt*HH=+^vݐHH5Ht{H]UHHd$H}Hu|HEHU@;B~ E HEHU@;B} EEEH]UHH$`H`LhLpH}HuHUi|HDžxHUHu{HzHcHUcHEH8HEH8HEHH8g{; LeM,$HEHHtH[HHH9v|HI<$qg{A| [HEHHtH[HH-H9v|]*Hc]Hq|HH-H9v|]}~BLeM,$Hc]Hq|HHH9vJ|HI<$f{A| u}HEHHtHIHcEH)qN|HqC|HcUHEH0Hx|h{HxHEHH}1CW{HcMHq|HEH0HxH]LeMuD|M,$LzHA*H+\E H9EEYEM\MEYEM\MH]LeMu|M,$LnzHAHcHq|HH-H9v|HEEDmLuL0H]HuO|L#LzLLDA$L0EHHEHE,E$LmH]LeMu|M4$LzHL$,HDLAEXEEEXEE;EH}{{H0VB{H}MB{H}DB{H8Htc{HLLLLH]UHH$@H}HuHUEMU]HMDEH}B{|HUHX{HH]UHH$HLL H}Hu {H}u'LmLeMu{LH虆zLShHEH}HUHu"{HJszHcHUHEHEƀHEHǀHEƀHEƀHUHeBLHE@<`H=>HUHHEHH5%HE@PHE@QHE@RHUHdB`HE@dHEHxXH5!a<{HEƀHEǀHE@8HEH}tH}tH}HEH{HEHtlHpH0Γ{HqzHcH(u#H}tHuH}HEHP`ʖ{U{{H(Ht蟙{z{HEHLL H]UHHd$H]LeLmH}Hu({H}~'LeLmMu{I]HTzLH}H}yH}HEH{H}1~{H}tH}tH}HEHPpH]LeLmH]UHHd$H}HuU{H}yHUHEHB@HEUPHH}jH]UHH$pHLLLLH}HuEMHUHMLELMH}{|{HDžHHH蹑{HozHcHH}60H}Hu {HHHH9v{]HEx,eHE@,Hqb(ٝ|م|Hhb(߽HH-H9v{Eم|H)b(߽HHHH9u{HH-H9vX{]م|Ha(߽HH-H9v{Eم|Ha(߽HHH9v{E3HcMHq{HuH<{HHLmL}H]LeEELuHEHHu;{HH8HՀzLHLMMHH(HcUHqC{Hq8{H}:{HEx,DžhH]LeMu{M,$LDzHAH\YH-HHH9u{HH-H9vk{lHlHhHU.ZM*hHJ\YXZEZM*lH%\Y\ZE2LmH]Huп{L#LuzLA$XEEHu M{HHHH9v衿{]}HEHxtHEHx MEHuHEPLMLEHUHMMEHuH}%H]H} {H]H]HtH[HHH9v {]EfHuH}S=vݾ{]Hc]HcEH)q{HH-H9v谾{]uH}1EH}3HEHEx,tHEp,H}uHEH}H}]dHExQt>}t8MUH}H!H-H*XdddHZYH-HH-H9vݽ{hDžlHEx,t6HEH@H0HpHHuT|HlHhHUm}*hHYYZd*lHoYYZ`HExPtDHE@d$HEDEH-H*LEHMHuHUEH}8HE@d$HEDLEHMHuHUMEH}yHExdtdHHY^XEEEXdEE\`EEEHEx,t H}v{HcEHE}Y輍{HzH}zHHt&{HLLLLH]UHHd$H}uEMHUHMLELMȿp蜽{H}(uH}?HEHHExPtDHE@d$HEDEH-H*LEHMHuHUEH}8HE@d$HEDLEHMHuHUMEH}H]UHHd$H}HuHUH}zH}z诼{HEHUHu{HgzHcHUuqHuH}UHuH}zHEHp0H}7{HuHEHpXH}!{Ht+HEHx0HuzHEHxXHuzzH}蜋{H}zH}zH}zHEHt{H]UHH$pH}HuUH}z覻{HEHDžxHUHu{H fzHcHUumH}1zEtHuH}1HWzEtHuH}1HWzHuHxHxHuH}!茊{HxzH}zH}zHEHt{H]UHH$HLLL H}HuHz~{HDžPHUH`辆{HdzHcHXHTEH}/%H}~HSEHu {HH-H9v{]DHcMHq){HuHPd{LPLeLmMu蛷{I]H?wzLLE/EzvẺEHcUHq{Hq趷{H}{Hu {HH-H9v={]ȃ}8H}u EЉE`H]H}{H]H]HtH[HH-H9v{]E@HuH}sK=v赶{]HcEHEHc]HcEH)qض{HH-H9v耶{]܋uH}EH}HEH{HExQt.}t(M؋UH}H<EX<EHExdt H} HR^XEEH}XEEE؉E}E/EzvEЉE){HP}zH}tzHXHt蓈{EHLLL H]UHH$PHXL`LhH}HuH?z{HUHuS{H{azHcHUH}uHPELeLmMu貴{I]HVtzLEEHu .{HH-H9v膴{]fDHc]Hq詴{HH-H9vQ{]HcUHq{Hqt{H}v {Hu {HH-H9v{]}v*EYEEJ{H}zHEHtÆ{EHXL`LhH]UHHd$H}u0f{EH}H} HEHuHOEH}MEHExdtEHO^EEH]UHHd$H}u0ִ{EH}HEHuHNEH}ȲEHExdtEHEO^EEH]UHH$HLL H}HuHUHkz1{HUH`|{H^zHcHXEH}u,HDžPH5^HPH}tQ{H]H}m{H]H]HtH[HH-H9v贱{]HuHtHvH}HuH=g/CHPH5^HPH}P{EEKHuH}E=v={]HcEHEHc]HcEH)q`{HH-H9v{]܋uH}EĉH}HEHHExdtH}˰H\M^EH}谰EHExQ}}LmMeHc]Hq貰{HHH9v[{HI}N{M؋UH}H<A8X<8LeM,$Hc]HqD{HHH9v{HI<$M{8ADE؉E HKEHEHHtH@HHcUH92HcEHqү{HPH5^HPH}N{LmMeHcEHH9vO{Hc]HI}M{EAHc]Hqi{HH-H9v{]Ѓ}HcEHPH5j^HPH}]N{H{H}zHXHt辁{HLL H]UHHd$H}HuHUHzxY{HUHu|{HZzHcHUuHuHUH}1!{H}zHEHt%{H]UHH$HLLLH}HuHUMH}z0趯{HEHpH0{{HZzHcH(w HDž H5^H H}L{H}L? H}4 H}H5MzH]H}zH]H]HtH[HH-H9v{]HuHtHvH}HuH=ޱg>Hq{H H5@^H H};L{EEEteE@teHIHEH=HEEt8LeLmMu={I]HkzLXEEeOLeLmMu{I]HkzLHKWELeLmMu˫{I]HokzLELeLmMu蟫{I]HCkzLEEHcEHUHtHRH9H]LeH}zA:$EH]HtH[HH-H9v3{|fEELcuIqM{LuLmHcEHH9v{LceLH}mzAC:D%tE;]}BH]HtH[HH-H9v虪{EELuM.HcEHH9ve{LceLI>&H{IkLUԉHFPEXE@UP EXE@LceIqK{LH-H9v{DeHELceIq{LH-H9vé{De;].HEXEEHXEEԋE܉EE}HuH}>=va{]HcEHEHc]HcEH)q脩{HH-H9v,{]ċuH}EH}HEHsHExdtH}HE^EH}ԨEHExQt.}t(MUH}H EX EԋEE HHDEHEHHtH@HHcUH92HcEHq藨{H H5^H H}G{LmMeHcEHH9v{Hc]HI}E{HkLUԉUPEXE@UP EXE@Hc]Hq{HH-H9v觧{]EXEEԃ}HEHHtH@HHcUH92HcEHq蟧{H H5^H H}F{LmMeHcEHH9v{Hc]HI}D{HkLUԉHBPEXE@UP EXE@Hc]Hq{HH-H9v試{]HcEH H5^H H}E{HELeLmMu8{I]HezLLeLmMu {I]HezL\XMMHEH8"D{HH-H9vڥ{EELuM.HcUHH9v襥{LceLI>fC{IkL@\E@@ \E@ @\E@;]3E &LeLmMu{I]HdzLH@YLeLmMuϤ{I]HsdzL\XMMHEH8B{HH-H9v蠤{sEELuM.HcUHH9vm{LceLI>.B{IkL@\E@@ \E@ @\E@;]u{H}zH}zH(Htv{HLLLH]UHHd$H]LeLmLuH}H艥{HE@IHE@t)HE@HCCWHU?YE-HE@HE@HCWEHED`HEHcXHqZ{HH-H9v{D9DeDE@EHELpM.HcUHH9v{LceLI>@{IkB(EXEEHELpM.HcUHH9vv{LceLI>7@{IkEB(;]gH]LeLmLuH]UHH$0H8L@LHLPLXH}ӣ{HEHEHUHpp{H6NzHcHhH};HDž`H5Y^HEHxhH`@{HEHxxcHcHq蝡{HH-H9vE{AEEfEHEHxxLMLEHMHUuc}}}u>Es6} tA} t8} t/} t&} t} t}z}pHEHpxUH}eH}H]HtH[HH?HHHH-H9vG{AAEELeHc]HkqY{HqN{HHH9v{HH}{zIDffddd %fLeLcmMkq{Iq{LHH9v艟{LH} zKD,fD;u;HuHtHvHH?HHHkq膟{Hq{{H}1zH]HtH[HH?HHHHH9v{LeоH}}zLmMtMmLHH9vɞ{LuȾH}GzLLLH&{HH=v薞{]܅~'HcuHq{H}1EzHuH}zLeMl$hHcUHH9vG{Hc]HI|$h<{I|HuhzD;}o{H}zH}zHhHtp{H8L@LHLPLXH]UHHd$H}艟{HEHxpuH'jHHE HEH@pHEHEH]UHHd$H}9{HEx8tHE@8H}nHEH]UHH$`H}HuUMܞ{HEHEHUHhk{H?IzHcH`$uH}AE܋uH}2EHuM؋UH}HExHExREHuHtuH}EEHuHtuH}轵EE}t!HuM؋UH}mHExf}u8AuH}uEHuM؋UH}/HExtE'>}Ru5OuH}4EHuM؋UH}HEx}}E=vW{}H57;zHtCE=v.{}H5.;zHtHuUH}aaE=v{}H5 ;fzHtCE=vš{}H5 ;=zHtHuMH}asE=v{}H5_:zHtCE=vV{}H5:zHtHuUH}uE=v{}H5:zH\E=v{}H5.:azH/HuMH}uE=v蚙{uH}2E=v{uH}s2H}ȺH5S9.zHt4H}H5:zHtHuUH} H}ȺH5:zHt4H}H5S9zHtHuMH}>H}ȺH58zHt4H}H59xzHtHuUH}nH}ȺH59DzHt4H}H58*zHtHuMH} H}ȺH58zHt4H}H5q9zHtHuUH}TH}ȺH5=9zHt4H}H58zHtHuMH}H}ȺH57ZzHt4H}H58@zHtHuUH}6H}ȺH58 zHt4H}H57zHtHuMH}jH}ȺH56zHt4H}H58zHtHuUH}H}ȺH5u8pzHt4H}H56VzHtHuMH}LH}ȺH5G6"zHt4H}H5=8zHtHuUH}H}ȺH598zHt4H}H5G6zHtHuMH}2H}ȺH55zHt4H}H57lzHtHuUH}bH}ȺH578zHt4H}H55zHtHuMH}H}ȺH55zHt1H}H57zHtHuUH}KH}ȺH57zHt1H}H55zHtHuMH}{f{H}[zH}RzH`Htqg{H]UHHd$H]H}Hu(!{EEfDHcEHc]HqV{HHH-H9v{]=v{UHMHl^;},Hc]Hq{HH-H9v讓{]EEE;EoE=v舓{EHMH ^;u?E=vd{EHMH^DHE8u HECEEEH]H]UHHd$H}{H}tHEtEEEH]UHHd$H]H}uU 菔{HUEBHEUPHc]Hq̒{HHH-H9vp{HEX HE@HEHcXHEHc@ Hq胒{HH-H9v+{HEX H]HcS HH9v{Hcs HEHxǥ{H} HE@<H]H]UHH$`H`LhLpLxL}H}HuEM迠h{HE@zL;E~2}|,LeLmMu{I]H>zL;EEFHEHcP HcEHqF{HEHPEHcH0EHc!EEH]LeLmH]UHHd$H]LeLmH}uUM@t{}LeLmMuX~{I]H=zL;E}LeLmMu~{I]H=zL;EHEHcP HcEHqI~{HEHPEHcHHE؀}u3EHcHE!É=v}{HE؈/EHcHE É=v}{HE؈H]LeLmH]UHHd$H]LeLmH}؉uUMDEH {E}}ELeLmMu|{I]H{HEHtlHpH0:{HzHcH(u#H}tHuH}HEHP`={|?{={H(Ht@{@{HEHLL H]UHHd$H} n{$|{H]UHHd$H}m{{{H]UHHd$H}HuUH}өzxm{HUHu9{HzHcHUu{{<{H}QzHEHts>{H]UHHd$H}HuHWzpm{HUHuk9{HzHcHUu{{~<{H}ըzHEHt={H]UHHd$H}HuHzxl{HUHu8{H#zHcHUuz{<{H}ezHEHt={H]UHHd$H}HuHwzx=l{HUHu8{HzHcHUu3z{;{H}zHEHt={H]UHHd$H}HuU k{y{H]UHHd$H}k{y{H]UHHd$H}Huuk{y{H]UHHd$H}HuEk{`y{H]UHHd$H}k{4y{H]UHHd$H}@uj{y{H]UHHd$H}j{x{H]UHHd$H}j{x{H]UHHd$H}Yj{tx{H]UHHd$H})j{Dx{H]UHHd$H}i{x{H]UHHd$H}@ui{w{H]UHHd$H}HuHǥzxi{HUHu5{HzHcHUuw{8{H}EzHEHtg:{H]UHHd$H}HuHWzxi{HUHuk5{HzHcHUuw{~8{H}դzHEHt9{H]UHHd$H}uh{v{H]UHH$PH}HuEMHUHMLELMH}虤z_h{HUHh4{HzHcH`uOv{7{H}zH`Ht09{H]UHH$`H}HuHUEMHMH}zg{HUHx4{H:zHcHpuu{"7{H}yzHpHt8{H]UHHd$H}ЉuHUEMHMؿ@Dg{_u{H]UHHd$H}uUg{.u{H]UHHd$H}HuEM8f{t{H]UHHd$H}uUf{t{H]UH1f{NiWiH]UH1ef{=it iH5^^H=P^=Y{H]UHHd$H}HEHEHUHua2{HzHcHUH}u*HH= !$'HH5H4{H}H5HEHPH}H5HEHPH}H5.HEHPH}XzH}_wHu1H:H}٢zHuH}HEHP4{H}zH} zHEHt/6{H]UHH$pH}uH}zHEHUHx'1{HOzHcHpHEHuH:iH8H0iHHHEHH}1̠zEtH}H5`賠zEtHuH}1HaġzHuH}00HEHHEHt!H}HEHHEuH}|3{H}ӟzH}ʟzHpHt4{HEH]UHH$HH}ԟzHDž HUHu/{HzHcHU=ig^H=}#HEHpH0/{H zHcH(H}H}tHuH}HEH8H}HEHÃ|DEfDEEH}H HEHH Hn;]f^2{H}{H(Ht3{1{H RzH}IzHEHtk3{HH]UHH$HH}HuH=zHDžpHUHuP.{Hx zHcHxHuHpHpH}zHEHtH@Ht.HUHEHtH@|/tHuH}1HzH=3襑HEHiH8HiHHHXH-{H zHcH$;HuH}A;AHY;H}HEHXH}HEHÃEfDEHH,{H zHcHu?UH}HpHEHHpHiH8HiHH/{HHt2{;]p/{HiH8HiHH(H}{HHt1{o/{HpÛzH}躛zHxHt0{HH]UHHd$_{8u$ou6u-{u $_tHiEEEH]UH15_{`;{AH]UHHd$H]H}HU@E ^{b`HHuHH1EH]H]UHH$pH}HuH}Ӛz^{HUHu*{H zHcHxuFEHuH}MtHiE HUHuH=,iH`iE-{H} zHxHt,/{EH]UHHd$H}@uHU0]{EHE@uH}HftHiE HUHuH=i`HiEEH]UHH$pH}uHUH}萙zV]{HUHx){HzHcHpuEEEHuH}tH=iE HUHuH=i貄HiEq,{H}ȘzHpHt-{EH]UHHd$H}Hu \{HEHEHHUHEpHUHEtBHUHExBHUHE@B HUHEH@HBHUHEHHBHEtHUHEHHB HEH@ HUHEH(HB(HUHEHHB0EEEH]UHHd$H}Hu [{HEHEHtHEHUHEEEH]UHHd$H}I[{HEHEHtHEHHEHEHEH]UHHd$H}Z{HEHEHt+HiHuH=i诃HiEEEH]UHHd$H}Hu Z{HEHEHtCHiHuHEHHU#u HEH83kH|iEEEH]UHHd$H}uU(Z{HEHEHt%HU؋EBHE؋UPHE@EEEH]UHHd$H}uY{EuH}H]UHHd$H}uU(Y{}@|}@} E,HEHEHHEHH HcuHcAHqW{H988HHH?HQHEH@RAHcuHcAHqcW{H988HHH?HQAA HEH@Pt,HcAH q$W{HAHcAH qW{HAHcAHH?H?HHA HcAHH?H?HHAE;E~ HE؋UP HE؋UP HE@EEEH]UHHd$H}uX{HcEHk@qgV{H},H]UHHd$H}uUM0W{HEHEHHEЋUPHUЋEBHUЋEB HEHc@Hk@qU{HUЉB HEH@RHUЉB$HEHc@Hk@qU{HUЉB(HUHEЋ@$B,HE@EEEH]UHHd$H}@uU(W{HEHEHtHE؊UPXHE؊UPYEEEH]UHHd$H}Hu V{H}1ҾyHEHEHHExu!H}@0^itHiEHUHE@ HEP$HEp vHUB HEP,HEp(vHUBHUHE@BHUHE@BHUHE@BHUHE@BEEEH]UHHd$H}Hu U{HEHEHtHEHUHhEEEH]UHHd$H}IU{HEHEHtHEHhHEHEHEH]UHHd$H}T{HEHEHt2HiHEHHHu}HiEEEH]UHHd$H}Hu T{HEHEHt3HiHuHUHEH|H|iEEEH]UHHd$H}T{HEHEHt2H5iHEHHHu|HiEEEH]UHHd$H}HufUM8S{HEHEHu EHEHEHu EnHEHUHH;t EUHEЀxuH}@0-ftHbiE-HTiMUHuH}H3iE܋EH]UHHd$H}Hu(R{HEHHEHEHHEHEH8H}uAHEH8HuHiHi8tHiEHEHHEHEHx0\ HEHUHxHrHHUHE@XBXHUHE@\B\HUHE@`B`HEp4HEx0HEHP0HUHE@PBPHUHE@QBQHUHE@RBRHUHE@SBSHEHp0HEHx0rEEEH]UHHd$H}Hu uQ{HEHEHt%H}HEHp0HHE@ EEEH]UHHd$H}Hu Q{HEHEHtJHMHUHBHHBHAHUHE@BHUHE@BHUHE@ BEH}1ҾyEEH]UHHd$H}Hu uP{HEHEHtH}HEHpHEH}1Ҿ(yEEH]UHHd$H]LeH}HuUMLEؿpO{HEHEHH}u VQHEHEH}Hp0HEUuH} HuHUH}EHc]HHH9uM{LceIHI9uM{DH}S EEH]LeH]UHHd$H]LeH}HuUMLEؿpO{HEHEHH}u fPHEHEH}Hp0HEUuH} HuH}1EHc]HHH9uL{LceIHI9uL{DH}e EEH]LeH]UHHd$H]LeH}HuUMLEؿpN{HEHEHH}u vOHEHEH}Hp0HEUuH} HuH}1EHc]HHH9uK{LceIHI9uK{DH}u EEH]LeH]UHH$`HxLeH}uU؉MDEDMM{HEHHEHH}(u zNHE(HEH}Hp0HEU؋uH}HE HD$HEH$DEMUȋuH}M1uEHc]HHH9uJ{LceIHI9uJ{DH}^EEHxLeH]UHH$`HxLeH}uU؉MDEDM L{HEHHEHH}(u jMHE(HEH}Hp0HEU؋uH}HE HD$HEH$DEMUȋuH}M1EHc]HHH9uI{LceIHI9uI{DH}NEEHxLeH]UHHd$}uHU K{HEUHEUPHEH@HEH@HEH@HE@ HcuHkq%I{HkqI{HEHxnu>HcuHEHxnu)HcuHkqH{HEHxnu EH}bHiEEH]UHHd$H}Hu%J{EHEHU;HEHU@;BxHEHcHkqFH{Hkq;H{HEHpHEHxyHEHcHEHpHEHxyHEHcPHkqG{HEHpHEHxyEEH]UHHd$H}HuUI{HEpHE8HUHhiH_i8u HuH}HFiH]UHHd$H}H{HEx tEHEHxmHEHxmHEHxmHEHE@EEEH]UHHd$H}HuHU aH{H}u IHEHUHuH}HEHtH]iEEEH]UHHd$H}HuHU G{H}u eIHEHUHuH}1HEHtHiEEEH]UHHd$H}HuHU G{H}u HHEHUHuH}HEHtH}iEEEH]UHHd$H}u؉UЉMDELMpG{H}u |HHEHD$HEHD$HEH$HuDMDEȋMЋUH}HEHtHiEEEH]UHHd$H}uU؉MDELMXhF{H}u GHEHEHD$HEH$HuDMDEЋM؋UH}HEHtHIiEEEH]UHHd$H}HuU(E{HEHcHcEH)q-D{H0HEHE@HE@HE@ HEHE@HE@HE@ HEHcHqC{HcUH)qC{EfDEHUHJU؋щUHU;U~ HUM HUR;U} HMUQHUHJU؋TUHUR;U~ HMU܉QHUR ;U} HUM܉J ;Ez1H]UHHd$H}fufU@D{HEHEHu2H=I^HUHHEHH}mHEHUuHEfUHEHEfEfEHEUH]UHHd$H}uU C{}tHHEHcHq+B{|2EEHUHJUHHcuHc HqA{ ;EՃ}tKHEHcHqA{|5EfEHUHJUHTHcuHc HqA{ ;E1H]UHHd$H]LeH}Hu8 C{HEHcHq[A{E@EHEH@UЉEHEH@UDEHE8uncLcHExuWcHcLq@{EHExu3cLcHEx ucHcLq@{EHEH@MU܉HEH@UM؉L;]81EH]LeH]UHHd$H]H}HuHU0A{HE8HE0bHcHExHE0mbHcHq@{EHExHE0FbHcHEx HE0,bHcHq?{EHUEHUE܉1EH]H]UHHd$H}A{HEHEHu E HE苀EEH]UHHd$H}uHUHM8@{HEHEHu EU}|HEЋ;E E7HEHEHHHEHEHE@HUEEH]UHHd$H}uHU("@{HEHEHu EA}|HE؋;E E#HEHEHHHEHEEH]UHHd$H}u?{H}ufEEH]UHHd$H}i?{EHEHEHtHEEEH]UHHd$H}uHUHMLELMпP?{HEHEHu EHEHHE}|HEPHcEH9} ERHEHPEHk HHEHUHE@HUHEPHE؉HE@HUЉE(HEHEHEHEEH]UHHd$H}uHUHM@>{HEHEHu EuHEHHEȃ}|HE@HcUH9} EGHEHPEHk HHEHEHPHE@ HHUHHEPHEEHEHHEEH]UHHd$H}HuU(B={HEHUuH}HHcuH}1 z}tH}荋zHHcUH}=yH]UHHd$H}uUHMLEؿ8<{HEHEHuEHE.ELEHMUuH}t HiEԋEH]UHHd$H]}u S<{HcEHcMHHHn}~ HcEHcMHHHcEH)q|:{ENHc]HHH9u\:{HcMHHHHcMH)qB:{HcEH)q4:{EEEEH]H]UHHd$H]}u ;{HcEHcMHHHcEHq9{H9}~9HcEHcMHHHcMHq9{H)q9{HcEHq9{EKHc]HHH9ut9{HcMHHHHq]9{HcEHqO9{EEEEH]H]UHHd$H]H}@u:{}t#HE@ HE@HE@ !HE@HE@ HE@ HEHc@HEP HE@ HUBHEHc@Hq8{HUBHEHcX HHH9uf8{HEXHEHx(tHEPHEp HEHx(H]H]UHHd$H}@u9{HUEH]UHHd$H}Hu 9{EHEH8HEHHEDHEH@HPHEHc@HUB HEHcPHEHc@Hq7{HUBHEHc@Hqk7{HUBHEH@8HEHcEHqI7{EH}{EH]UHH$@H@H}uUM8{HEH@(H@0Hxu EEH}H}H}یH}ҌHxƌEEEEHEH@(H@0H@HEHEH@0HEHEЃxuXHEHcPHqg6{HEHc@H)qU6{HUЉBHEHcPHq;6{HEHc@Hq)6{HUЉBHEЋ@EHEHcPHcEHq6{Hq5{EċE;E~EEE;E}EĉEHE@ HuH}HEHEH}u}Eu}EE;E}EEE;E~EEH},HEHHUHuHE];]EEfEHEHEHuH}CHEЃx~YHEЋ@tuHuH}+9HuH}*HH=#HH5H{H}tHE@;EqHuH}PHuH}yLDžTP;L;H}H}HEHpHEH`fHpH@8HhH`H@8HXHp@ EH`@ E9E~EEEEEEHcUHcEH)q3{HEHc@ H9HEHcP HcEHq3{Hq3{HUHcRH!ЉEHEPE!ЉEHEE;E#HEHcP HcEHqC3{HcUH9wHpUP H`UP HpH}<H`H},HpH}茉H`HxyHcTHq2{TfHEHL`LpMUuHEHpxuHpH}覉H`xuH`H}艉HhHpHXH`HpH`HEHpDHpH@8HhHpxuHpH} HhHpHpuHEH`A@H`H@8HXH`xuH`H}豈HXH`H`uHEHpHxH`HpH@8HhH`H@8HXHpH}DH`Hx1HEHH`H HpP L`LpuHEHpx~HpH}H`x~H`H}͆HhHpHXH`HcTHq_0{TTHEHHE;]EEH@H]UHHd$H]H}HuHU 1{HE@<|6u1HEHc@4HUHcHq/{HUBhHEHU@4BldHEHc@0Hq/{HUHcH)q/{HUHcR4Hqt/{HUBhHEHcX4HHH9uN/{HEXlHE@xHE@|H]H]UHHd$H}ЉuUMLELMؿP0{HEHcP HcEHq.{Hq.{HUHcRH!HUHcJ HHEHcUHcEH)q.{HEHc@ H)q.{HEHc@ H9ẺEHEЋPE!HcHUHcJ HHEȃ}HEЋ@P;Ep}}EHEЋ@P;EHEHc@PHq.{EȋEEċEEẼEEȃEHEЋ@x;E~ HEЋUĉPxHEЋ@|;E} HUЋEB|HEHHXHEHcPhHcEHq-{HHEE;Eu-EMHa4^Hg4^ HU HUHEUH14^HUHcEHqG-{HcUH9}/HcuHcEH)q,-{Hq!-{HEHxyHMHcUHcEH)q,{HHEUH3^HUH]UHHd$H}ЉuUMLELMؿHH.{HEHcP HcEHq,{Hq,{HUHcRH!ЉEHEЋPE!ЉE9EHEHcP HcEHqK,{HcUH9HEЊ<,t,y,t,mkEȉEHcUHcEHq+{Hq+{HH?HHHUHcR Hq+{Hq+{HEHc@H!‰ỦUSHcUHcEH)q+{HEHc@H9}:HEH@(H;EuHExHEH@(H;EuHE@;EHcEHUHcJ HHEEċẼE}|CHEЋ@P;E~7HEHHXHEHcPhHcEHq*{4HcE!>HEЊ<g,t,t ]EȉEUHcUHcEHq*{Hq*{HH?HHHUHcR Hq*{Hqw*{HEHc@H!‰ŰẺE ẺEHcEHUHcJ HHE̅HEЋ@P;EEEċẼEHEЋ@x;E~ HEЋUĉPxHEЋ@|;E} HEЋUĉP|HEHcPhHcEHq){EHEH@XU4HcE HEHPXE@4H]UHHd$H}+{HEHcPhHEHc@lHq_){HUBhH]UHHd$H}HuHU*{H]UHHd$H}ЉuUMLELMؿH*{HcUHcEH)q({HEHc@ H9'HEHcP Hq({HcEHq({HUHcRH!ЉEHEЋPE!ЉE9EEEċEE}HEHc@ỦUHEЃx<u*HEHcP4HcEHq?({HcEHq1({EEHEHcP0Hq({HcEH)q ({HEHc@4Hq'{HcEHq'{EHEЋ@0;E~-HEHPXE4HcE HEHPXE@4H]UHHd$H}ЉuUMLELMؿH){HEHcP Hqe'{HcEHqW'{HUHcRH!ЉEHEЋPE!ЉE9E-HEHcP HcEHq'{HcUH9 HEЊ,t,q,t,tiEȉEHcUHcEHq&{HH?HHHUHcR HH?HHHq&{HEHc@H!‰ỦU{HEH@(H;EuHEx?HEH@(H;EuHE@;E!HcEHUHcJ HHE̋EEċEEHEЃx<u*HEHcP4HcEHq%{HcEHq%{EEHEHcP0Hq%{HcEH)q%{HEHc@4Hq%{HcEHq%{E}|0HEЋ@0;E~$HEHPXE4HcE!LHEЊ<rQ,t,t GEȉE?HcUHcEHq>%{HH?HHHUHcRHq%{HEHc@H!‰ŰẺEEEċEE}HEHc@ỦUHEЃx<u*HEHcP4HcEHq${HcEHq${EEHEHcP0Hq${HcEH)q${HEHc@4Hqn${HcEHq`${EHEЋ@0;E~-HEHPXE4HcE HEH@XU@4H]UHHd$H}%{H]UHHd$H]H}HuHU m%{HE@<|FuAHEHcHH?HHHUHcR4Hq#{HUBpHEHU@4BtqHEHcHH?HHHUHcR0HqT#{H)qJ#{HEHc@4Hq7#{HEPpHEHcX4HHH9u#{HEXtHE@hHUHE苀BlHEHU@4BxHEHcX4HHH9u"{HEX|H]H]UHHd$H]H}HuHU -${HE@HMHI`u1HcEHq{ELEE%!HMHq`}A>HMHI`u1HcEHq{EHEHp`MH}E HMHI`u1HcEHq{EHcEHq{{E;U/HE@hHEHcPpHEHc@tHqJ{HUBpHEHU@4BxHEHcX4HHH9u{HEX|H]H]UHHd$H]H} {HEHcPhHEHc@lHq{HUBhHEHU@h;HEx|{HEHcP4Hq{HEHc@|H9}HEHc@4Hql{HUB|HExx} HE@xHEHcPpHEHc@xHq6{EHEPxHEH|9UЃEfEHEHpXHEHcHcEHq{H`i4HEH@XUHFiHs{HUHzXHUHcHkq{HcUHq{4Hi2Hss{HEHxXHEHcHkqU{HcEHqG{H5iHs.{HUHzXHUHcHkq{HcUHq{H5wiHs{HEHxXHEHcHkq{HcEHq{4H2i0Hs{HUHzXHUHcHkq{HcUHqx{H5iHs_{HEHxXHEHcHkqA{HcEHq3{4Hi0Hs{EHEHPXEHEHpXHEHcHcEHq{HEHpXHEHcHkq{HcEHq{HEHpXHEHcHkq{HcEHq{HEHpXHEHcHkq]{HcEHqO{HEHpXHEHcHkq-{HcEHq{HEHpXHEHcHkq{HcEHq{HEHpXHEHcHkq{HcEHq{}?rHEHP`EeeHEHP`EEuHEHp`EU9UҁEHs_{HUHsM{HEH@`u0HcEHq0{E;MHE@hHEHcPpHEHc@tHq{HUBpHEHU@4BxHEHcX4HHH9u{HEX|H]H]UHHd$H}ЉuUMLELMؿ@({}HEHc@Hqf{UȉUHEHcP4HcEHqE{HcEHq7{EċE;Et>HEЋ@0;E~2HEHP`EHMЊ:uHEHH`UHEЊH]UHHd$H}ЉuUMLELMؿ@X{HEHcP Hq{HcEHq{HUHcRH!ЉEHEЋPE!ЉE9EXHEHcP HcEHq[{HcUH95HEЊO,t,q,t,ti61EȉEHcUHcEHq{HH?HHHUHcR HH?HHHq{HEHc@H!‰ỦUHEH@(H;EuHExHEH@(H;EuHE@;EHEЊ<rQ,t,t GEȉE?HcUHcEHqS{HH?HHHUHcRHq4{HEHc@H!‰ŰẺE,}"HcUHcEH)q{HEHc@H9|HEЊE HEЊEHEHc@Hq{ỦUHEЃx<u7HEHcH4HcEHq{HcEHH?HHHq{{ERHEHcH0Hqc{HcEH)qU{HEHc@4HqB{HcEHH?HHHq'{EHEЋ@0;E~+HEHP`EHMЊ:uHEHP`EMĈ H]UHHd$H}@uUMDE8[{EEEЋEEeHcUHcEHq{HcUH9|\DHIiHcUHcEHqa{HqV{E;E~EEHEHcP HcEHq1{HEHcp HcEHq{HEHx({HEHx({HEDHELHEHHEHHEHx(@uStIMŰuH}}tHcEHq{ElHEHx({HEHx([{wH?i8ukH3imȋE;E})HiHEHx(zHEHx( {*E;EHEHx(zHEHx(zEEH]UHHd$H}HuHU q{EHEHx(uHixHEHPHEHc@TBHEHcH9~HXiEHEHuHx0HHUHEH@HHUHEH@HHUHE@HUHEH@HHE@p!H}HEpHEHx(JyHUHE@#HUHE@"HiHUHEH HHHEHMHHHHUHMHHHHUHMHHHHEHU@8BPHEHUH@@HBXHEHcH0Hq&{H}A1@02HE耸HEHUH HHHEHUH HHHEHUH HHHEHUH HHHEHU@0BPHEHUH@@HBXHEHcH8HqT{H}A1@`tEEH]UHHd$H}u{HE;E}RHEHtHEH9${HcEHkq{HUHEHcHEHE#{HEHHcu1菵yH]UHHd$H}HuHUHM( {EHEHuHx0HH}tHEHH}yHUHEH@HHUHEH@HHUHE@HUHEH@HHE@p!H}HEHcpHq{HEHx( vHUHE@#HUHE@!HaiHEHc@8Hkqx{Hqm{HHUHEHcHkqI{HUHEH}HEHUBPHUHEHHBXHEHUH@@HB`HUHEH HHHUHEH HHHUHEH HHHEHMHOHHHEHcH0Hkqn {Hqc {H}A1@0oHEHEHUH HHHEHUH ZHHHMHEH HHHEHUH HHHEHU@0BPHEHUH@@HB`HEHcH8Hkq {Hq {H}A1@tEEH]UHHd$H}HuHU {EHEHuHx0HHUHEH@HHUHEH@HHUHE@HUHEH@HH}@0HEHcpHq {HEHx(sHUHE@#HEƀH`iHEHc@8Hkqw {Hql {HHU艂HEHcHkqH {HU艂HE苰H}HE苀HUBPHUHEHHBXHEHUH@@HB`HUHEH 5HHHMHEHHHHEHUH HHHEHUH HHHEHcH0Hkqm {Hqb {H}A1@0ntEEH]UHHd$H}HuHU {HUHuH}PHEHcHH?HHHHUHcH)q {HE艐HE@pHE@tH]UHHd$H}) {H}HExhurHEHHEL@`HEHEHEHEHEHcHq% {HUHEHcp4HEHx@1yH]UHHd$H}HuHUq {HUHuH}HEHcHH?HHHUHcH)q{HE艐HE@pHE@tH]UHHd$H} {H}HExhurHEHHEL@`HEHEHEHEHEHcHq{HUHEHcp4HEHx@1ĭyH]UHHd$H}HuUMDEDMؿ87 {EH} tHEHH} SyHUЋEHcUHcEHqT{HqI{HUЉHEЋUHEЋUP8HEЋU؉P0HEHc@8Hq {HHUЉB4HE@HEHcpHq[{HEHx(mHUHE@#HEƀHiHEHc@8Hkq{Hq{HHUЉHEHcHkq{HUЉHEЋH}HEЋHUЉBPHUHEHHBXHEHUH@@HB`HEHUH HHHEHUH CHHHEHMHvHHHEHUH HHHUHEHHEHHEHcH0Hkq{Hq{H}A1@0tEHEHcp4HEHx@r{EH]UHHd$H}HuUMDEDMؿ8{EHEЋUHcUHcEHqT{HqI{HUЉHUЋEHUЋEB8HUЋE؉B0HEHc@8Hq {HHUЉB4HE@H{x5C\CpC`CtHCEH]H]UHHd$H]LeH}Hu@zEHEHEHEHEHUHH]LeC4AD$`C6AD$tC2A$C0EIct$`Hk qzI|$h=Ict$tHk qzI|$xIc$HkqzI$HcuHkqzHkqzI$8RHcuHkq[zHkqPzI$@#uI$H }EA$0AD$`AD$`AD$ AD$$AD$,AD$<HE؋PA$ Ic$ HkqzI$(uEH}=Hf{iEH]LeH]UHHd$H} zEHEHHEHEXtHEH`HE H}HEH}uHziHEH5;^H H@\@pǀǀHuH}HEǀ@ǀǀHB B  BBBB B,B0B8ƀmHU pHUH(HxǀHE0HEH8H}H}ZH}LHE0~6H}1Ҿu&H}@0>tHEHyi@EHuH}HEXu H}HE@EH]UHHd$H]H}@u8zEHExt EHEHHEHEHX { }C {}CC ;C|.CC,CC0C C4C$S {< C(,CC,C C0CC4S{  C$C(HEHc Hqz|KEfEHEHHXEzH}zHEHt跳zH]H]UHH$pHx}`zHEHEHUHu螮zHƌyHcHUun}thHc]HHH9ujzHHUyH}zHu1H} (zHU1H5H}VzH}HzH}zH}zHEHt踲zHxH]UHHd$H}HuHUazHUHEHHHqzHUHH]UHHd$H}HuHUzHEHUHHH)qYzHUHH]UHHd$}uHUzHcUHcEHqzHEHH]UHHd$H]H}u zHcMHEHHHH-H9v}z]H]H]UHHd$H]H}uHUHM(zHcMHEHHHH-H9vzHEHcMHEHHHHH-H9vzHEH]H]UHHd$H]؉}uU(zHcEHcUHqzHcMHHHH-H9v|z]H]H]UHHd$H]Љ}uU0 zHcUHcEHqmzHU؃}}UHc]HHH9uHzHH-H9vz]H]HHH9uzH]H}|EHcHEqzHEEHcHUH)qzHUHcMHEHHHH-H9voz]H]H]UHHd$H]H}%zE2@HmHc]HqezHH-H9v z]H}uHc]Hq4zHH-H9vz]H]H]UHHd$H]}zE2DmHc]HqzHH-H9vnz]}uHc]HqzHH-H9v>z]H]H]UHHd$H]} z} E}u E}*Ã>vz!HU^EEEHcEHcMHHHc]HqzHHH-H9vz];EHcUHcEHqzHcEH9EEEH]H]UHHd$H}zm}HUHH9vzEH]UHHd$}zH]UHHd$H}u zHcEHqzHqzHEHcuH}hzHEH8tIHEHHEHEBHEHHHEHEHUHHcuH}1{yEEEH]UHHd$H]H} zHEH8HEHHEHmHE8t54{HH|}H17{mzH7{`zvzHE@EHEHE@HcuH}zHEHH]H]UHHd$=z0H]UH1%zH]UHHd$ zH=EfitHzEHEHHEHUHuuzH}yHcHxuRMHUH=^ HEH t*HvH=#HH5H z8zHxHH=#zHt]HpHXHȞzH|yHcHu H}يz"ҡzHHt豤z茤zEz谡z{zHEHUHEEH]UHHd$H}zHEH8tHEH8czHEHH]UHHd$H}HuzEHEHUHHEH8tAHEHx>tH]iHEHHEH@>HEH8~ EEH]UHHd$H})zH}t H} H]UHHd$H}zH}tHE@>H]UHHd$H}uzEHEHxtH\i}~HEHxHcu{zHUHEH@HBHEHpUH}5t(}~HEHxHcugzHEH@HEUPHE@EEH]UHHd$H]H}u zH}iHcH}MHcH)q0z]E;E~EEuH}EH]H]UHHd$H}zEHEHxtHHEx~HEHcpHEHxxzHE@HEH@HE@EEH]UHHd$H} zHEHPHE@EHEHc@HqAzHUBEH]UHHd$H}zHEHPHE@EHEHc@HqzHUBEH]UHHd$H}izHEHPHEHc@fDHUHJHURf fEHEHc@Hq}zHUBEH]UHHd$H}zHEHPHEHc@fD%HUHJHURf fEHEHc@HqzHUBEH]UHHd$H}izHEHPHEHc@DHUHJHUR HUHJHUHcRT HUHJHUHcRT ЉEHEHc@HqRzHUBEH]UHHd$H}zHEHPHEHc@DHUHJHUR HUHJHUHcRT HUHJHUHcRT ЉEHEHc@HqzHUBEH]UHHd$H})zHEHPHE@H<HuHmyHEHc@HqUzHUBEH]UHHd$H}zHEHx(u EHEHx(HEH@(HEEH]UHHd$H}yzHEx=tH}6 E HE@8EEH]UHHd$H})zHE@=HEH@(HE@0HE@4HE@8HEH@HE@HE@HEHxzH]UHH$ H}HuHUHzzH}uHEHUHRhHEH}jHUHu谖zHtyHcHUHEHhH(yzHtyHcH uKH}u*HUmH=9#4HH5H2zH}HEHx HuzCzH}zH Ht蹚zHEH}tH}tH}HEHzHEHtlHhH 謕zHsyHcH`u#H}tHuH}HEHP`記z3z螘zH`Ht}zXzHEH]UHH$H}HuHUMzH}uHEHUHRhHEH}HUHuzH syHcHxuNHEH}HUHEHB(HUEBi EE蜁zH}yHEHtzEH]UHHd$H]LeH}Hu(轱zEHEHXH}1H} H}H}CH}CH}; cttt.CCHCHa=i sHkqxzH{OuesHkq]zH}uJDcIqAzE|)EDEH}HKUD;eH} EEH]LeH]UHHd$H]LeLmH}HuUHfzEHEH}Hrt=HwHsЪz|u ǃ|HctHq說ztHcxHq蒪zxEEH]LeH]UHHd$H]LeH}Hu8zEHEH`ff@H@H}H5iOE܅} ERHEHEHtH}+H}HEH`H}[fH}OfCHCH}HEHEbHkq|zH}SHEbHkqUzH} tHEHUHhHEbHqz|lH}HcPHkq0zuMLcPIqzE|)EEH}HXUfQD;eH}EEH]LeH]UHHd$H]LeH}HuH=zEHEH5AHE܅H]HEHDEHEHtH}7H}H}fEH}fEH}H} EEډHcHk@qޚzHVLcIq踚zE7EEuH}H}BHEHHHEH}fEH}fEH}bEHE@ HUfEfHUfEfBH}H}EHcEHcuHqzH}uxH}ufH}qHUfBH}`HUfBH}OHUfBH}HEHUHBH}HUȉBD;eEEH]LeH]UHHd$H]H}Hu zEHEH5?H*E}HEHǀ8ǀ0`H]HEHt 0H8HEHtH}0H8pH}H5E?E}HEHǀHǀ@XH]HEHt @HH.u0HEHtH}@HHuEEH]H]UHHd$H]H}Hu(聙zEHEH5>HE}#HEfǀ(EH{%iHEHEHtH}qH}N+HEH(H}fH}cCH}fCH}fC H}:C H}+CH}CH} CH}CH}C H}C$H}C(H}C,H}C0H}C4H}C8EEH}UD<} |H}CHH}CLH}CPH}CTEEH}UDX}|H}fC\H}fC^H}sfC`H}CdH}ChH}ClH}9fCpH},fCrH}f;r9H}*H}CtH} CxH}ACtCxf;rlH} u^H}/C|H} H}fH}~fH}nfH}EEH]H]UHHd$H]H}Hu !zEHEH5Z;HjEHEHEHtH}0H} HEHH}H}CH}CH}C H}CH}CH}CH}uCH}iC H}EEH]H]UHHd$H]H}Hu@zEHEHff@H@H}H5=:0E} E HEHEHtH}H}H}zfEH}fEH}EH}f}HuHkq蘒zHEHhjHUfEfHEpEHcEHcUH)qRzHqGzEH]Hq4zEDEHEHEHHHEH}yH}dHUȈH}UHUȈBH}HEHxu蕷u=HEHpUH} u%}~uH}u;]ZE^H]Hqdz|-EEHEHEHH|ȷ;]HEH賷HEfǀEH]H]UHHd$H}uUHMLEؿ@{z}EEBHEHEH;EuEEHEEHcEHq肐zEHE;E}}H3i EHEHEHHcTHcEHq/zEHE؃8uEHEHEHHM؋D EX!HE؃8uHEH8HU؉E5HEH8Hu访HE؋HUuH}xEHEH89EH]UHHd$H}uHUHM0zHE@8E9E}-HEHPHHUЋETHEHEЋUHE;HEHP@HcMHcEH)q'zJHUHEH@HHcUDHUH]UHHd$H}uUHMLEؿ0{zHEHHMHUԋu HEUԉHE؋UЉ}tHEtHEHU؉H]UHHd$H}u zHEHHPHqLz|?EEHpMH HcuH9uHpMHHLHM ;UHEHEH]UHHd$}HuvzHcEHqǍz|.E@EHULB}HrMH I ;EH]UHHd$}HuzHcEHqgz|.E@EHULB}HrMH I ;EH]UHHd$Љ}HuUM(谎z}tAHcEHqz|.EEHMUHHcuHc HqЌz ;Eك}tCHcEHq贌z|0EEHMUHTHcuHc Hq臌z ;EH]UHHd$H}HuzHEEHE@EHEH@UHHUHBHEH@UHHUHBHEH@UHHEHPHEH@ UHPHUHB HEHE@H]UHH$pHxLeLmH}HuUMDEDMп%zEHEHHEE;E~H7iHEHHEHxHcuHq5zHkq*zH}EHc]Hqz|GEEH} EHEHMfUfHHcEHqzE;]E;E~HyiSH}赽EH}膼HE@:HcUH9}H>iH]UH}HxEĉH}HxHcuHkq zH}萻EHEHHEDH}OEHUME HcEHq谉zEfEf%tJH}E6DHMEUHcEHqtzEEHqbzE}wɋE;EuEHEHHEHc]Hq(zEEHEUff%jHEUff%t!LceH}a%Lq҈zEgLcmH}@DIHI9u襈zMq蛈zDe/HUEff%uLceH}藻HLqizEHUEM ;]8EHc]Hq:zEEHUEff%jHEUff% t!LceH}q%LqzEgLcmH}PDIHI9u赇zMq談zDe/HEUff% uLceH}觺HLqyzEHUEML;]7H}VHEHc@HUHcR|H)qi@EH]H]UHHd$H]H}HuHU ͂zH]CCH}tHEHxHsHEH{HHCCC@CDCHCCLCPCTCXC\C`C|CxH]H]UHH$HLLH}HufUMؿhzEH}t HEH8uH iHEH8H}H55'E}H i PHEHEHDEHEXtHEH`HpH}\HpHpuHd iHuHp詊HUHExBQHE@`HpH0HHHEȋtEHEȋxEEEEHpHpH`HpH`1H`UH`E؃BHEff%t H`@HEH8Hh~Dž,= HpHpEHHH`, t  H`E|HEȋp;EH iH`L@xH`HH|uH}ȲHEHc HcEHq}zH9HEH(HcuHEH(UD;EEH`@H`@H`@ H`@H`@hH`H`@xBpE؃t'H`ppHpHޙH`BpHpǀDž, HEH(UHcHcEHq|zEHh蓺Hh JHh薯EHh脯H`BHhkH`B HhRH`BHh9H`BHhE;E~H iH`HcCHcS|H)q{zChClHcShHcCxHq{zCpCtE؃t2HpHshiChHpHspPCp}|Dž, Dž, E؉EH`xu HcEHEEt}~ HcEHEHEff%t HpH5#]H H"HpHUHH HH`H$DMDEMUHpHhw HpHcHqrzzEDž, HE@`HcEHqIzzEHEȋ|;E}Hi HpHpEHHHXH`HX1HXHXH`@BHh HhK%EH`EBHHh*%HXHhpEEtHcEHqRyzEEtHcEHq8yzEE@tHcEHqyzEE%tHcEHqyzEuHh谩: Et&HhEHhE$Hh.EHhEH`UP@H`EBDEtH`UP\H`UP`EEDž|DžxEt+HhDExHX@E@t:HhEHhxHX@oE%teHhͪEHh踪EHh裪|Hh苪xHX@H`UPLH`UPPH`|BTH`xPXx}gHc؋|}QHcH)qvzډIЁt HX@Hh趨Hh躬H`BdDž,G}3H`HXHcEHqjvzEHpHpEHHH`xupH`@H%t_H`HX@|B|H`HX@xBxH`HXH@hHBhH`HXH@pHBpH`@Hc]HquzSE@EL`HXH@(UHHE}At$LݗLc}At$TȗHcLq[uzE}At$P覗Lc}At$X著HcLq$uzEHXH@(UHMH HXH@ UHHE}At$LCLc}At$T.HcLqtzE}At$P Lc}At$XHcLqtzEHXHH EHUH;]HcEHqYtz|CEfDEHXHJ8UHQH`Hcq Hqtzf ;EH`HcPHcEHqszH`BH`HcPHcEHqszH`BHcEHcUH)qszEHcEHcUH)qszEH`@HH`@@EH`@DE}|H`@;E~}|E;E|Hi,H`HcPHcEHq'szEH`HP(EHcH`HJ(UHcH)qrzEH`HP(EHcDH`HR(MHcTH)qrzEH`@\EH`@`EE؃tmuHpHcEuHpH芏EH`@Ht,HcEH qIrzHEHcEH q3rzHEHXHp(MU}HXHp}H`@EH`@EH`pdHhH`@H t Dž,c}uE؃t ƅ(ƅ(D(L`HpUuHh8LDž, Dž,,HpHH0HHcEHqqzEHcEHqpz|\E@EHUH0HpHuLB}H I HpHMHzDE B ;EHcEHqpz|?EDEHUH0HpHMHzDEf NfB G;EHEUĉP0HEUP4HE@RHEHpHEHx0+HEHc@H`HcRhH)qozHUBHEHU@BH`Hc@pH`HcRhH)qozHUB HUHE@ BXHE@\HEȀt]HEfvNHEHH HDž$Dž uH H$HGHEH(HcPlHH?HH$HcHdHcPhH)qozHcPlHqnz E؃t>HpH$$HpH ԋ HEHHcHcHH)qnzHH?HHP$P P$U؃t0`HcP H?qXnzHP HcP$H qBnzHP$E؃uXHpH@pHpH8HHt/HUHk@qmzHUB HUHE@ B\H`xHE@HcH`HcRhH)qmzHUBHEHc@ H qmzHHUB HEHc@XH qmmzHHUBXH`HcXhHHH9u@mzHEHp8}1HpHU芀DBSEHEH8蘝HpHH0HHEXt"HpEĉHpEHpqHwh닊EHLLH]UHHd$H}HpHEHx[HH]UHH$HLLH}HuHUH}u'LmLeMukzLHO+yLShHEH}HUHu9zHyHcHUuQHEH}1r$zHEHUHPHE@HEH}tH}tH}HEHzHEHLLH]UHHd$H}H@HEH@HU@;BEEH]UHHd$H}HuHUHEHHH]UHHd$H}HuHEx(t HEH8i$zH]UHHd$H}uH}XHH]UHHd$H}HHH]UHHd$H}HuHUHH0HEH8HEP H]UHHd$H}uHUHUuH}\XH]UHHd$H}bHH]UHHd$H}HuHuH}bH]UHHd$H}`HH]UHHd$H}HuHuH}`H]UHH$HLLH}HuUH}u'LmLeMu;hzLH'yLShHEH}HUHui6zHyHcHUuIHEH}1NTHUEB(HEH}tH}tH}HEH89zHEHtlHhH(5zHyHcH u#H}tHuH}HEHP`8zn:z8zH Ht;z;zHEHLLH]UHHd$H}HuHuH}BXH]UHHd$H}HuHUHuH}[HEH]UHHd$H}HH=]HH]UHHd$H}HuE fDEHE@;E~HEHPHcEHH;EuHE@;EuEEH]UHHd$H}uHUEH}^HUHH]UHHd$H]H}HuFgX|-EEEH}HH};]H]H]UHHd$H}HuH}fWHuH}yH]UHHd$H}HuHH}HE| uH}MWEH]UHHd$H}HuHEHUHP HUH5hH}_cH]UHHd$}H f}uH fufzfEf;ErfEf;EufEf;EsEEEH]UHHd$H]LeLmLuL}H}fufUp=fzfEfEfEfEEHEHcXHqndzHHH9vdzHEȋEȅ|lEEuH}HEL}Dm]LeLuMuczI>H}Q#yLDLH]tEE;EHEUH]LeLmLuL}H]UHHd$H]LeLmLuL}H}P%ezHEfx<HEXHqbczHH=vczf]f fEDfEfEfE#]HqczHH=vbzf]f}H]LcDmIqbzLHH9vbzLH{NzIkAADH H HEL`DmLHx zIkA<ADH H HCCfEf;EHEHXDeLHxyIkEfDfE]Hq"bzHH=vazfAfD;}fEffEfmH]LsDeIqazLHH9v{azLH{?yIkHEL`DmLHx"yIkAAfADfADfD;}rHEHXDeLHxyIkEfEfDfEf;EH]LeLmLuL}H]UHHd$H]LeLmLuH}HufUHbzf}w-HEf@HEf@HEf@HEf@H}ÖHc]Hq`zHH-H9vJ`z]H}HUfBH} HUfBH}HUfBH}HUfBHEfxUHE@HEH5]HEHxHMغJyHEXHq_zHH=v_zfEfEH}HcHq_zHcUH9~:HUfEfBHE@HEH5+]HEHxHMغyH}fAHELpDmLHxyIkfE$H}fAHELpDmLHxyIkfEdH}8fAHELpDmLHxyIkfEdf;]H}.H]LeLmLuH]UHHd$H]LeLmH}fufUHMP1`zfEfEfEfEEHEXHqg^zHH-H9v^z]HcEHc]Hq.^zHq#^zHHH-H9v]z]LmMeHcEHH9v]zHc]HI}eyHkA4ADH H Ƌ}EH H }t,Hc]Hq]zHH-H9vB]z]EЉEԋE;E+LmMeHcUHH9v ]zHc]HI}yHkAUfADfEfEf;EJfEf;E<H}H}H}tHUfEfBHEH@H]Hq\zHH-H9vZ\z޹H-=v3\zHEfXH}tHEfUfPtHEH@H]Hq0\zHH-H9v[zHEPHQ-=v[zHEfX H}H}tHUfEfBHEH@H]Hq[zHH-H9vB[z޹H-=vHEfXzH}ut HEfUf`HEHH]Hq[zHH-H9vZzHEPH>-=vZzHEfEEEH]LeLmH]UHHd$H}uUM(0\zE;E}EEE;E~EEEE܋EH]UHHd$H}[zHE@EEH]UHHd$H}[zHE@EEH]UHHd$H}[zHE@EEH]UHHd$H}Y[zHE@EEH]UHH$HLLH}HufU [zH}u'LmLeMuXzLHyLShHEH}HUHu'zHFyHcHUu;HEHUfEfBHEH}tH}tH}HEH)zHEHtlHhH(&zHyHcH u#H}tHuH}HEHP`)z1+z)zH Ht{,zV,zHEHLLH]UHH$pHpH}HuYzHEH5HHEHEHEdvWzEHDEHEH8Hu藇uRHUHu%zHyHcHxuH3(zHEH8HxHt!*zHpH]UHH$@H@LHLPLXL`H}XzHEpHEHxHEHx襇HUHx$zHyHcHpu"HEHxEfEHEHx4fE'zHEHx~HpHt-)zf}Lf}@]HqFVzHH=vUzfhfEfEHEHxІHUHp#zHyHcHUu3HEHxsfEHEHxbfEHEHxQfE&zHEHx蛇HEHtM(z]=v8Uz]HEHxxHc]HqWUzHHH9vTz]f}t EHEEuUH=ȭ]cHEH}uHEHx装HUHp"zHyHcHUuTHELxDuLmH]Hu4TzL#LyLDLA$HEHxHuHE%zHEHxMHEHt&zH}fzHEHxufhf;EH@LHLPLXL`H]UHHd$H}HufUaUz|czH]UHHd$H}fufUHM(-UzHczH]UHHd$H}uU UzHcUHcEHqPSzHc}HcEHq=SzHq3SzxH]UHHd$H}uTzHEH@@HEH@<}BuH]UHHd$H}YTzHEH@HtHEH@HEHEH@u!HEHPHEH@4HHEH@ uHEHPHEH@8HnHEH@ HEH@4@ktEHEH@HEH@8@BtE‹uH}QHUHRHHEH@HEEH]UHHd$H})SzH}HEH@DsH]UHHd$H}uRzHEH@HxEH]UHHd$H}uRzH}-HEH@HxU<M;J~ @E)H HXJdM`UTEEH]UHHd$H]LeH}HuUM8'MzHEH@E܅tjHEHPEHLc#HcuHiqNKzHEH@}mHcLq+KzHEH@UHHUHRM HEH@E܅tkHEH@UH\Lc#HcuHiqJzHEH@}mHcLqJzHEH@UHHUHRM H]LeH]UHHd$H}HuUM KzHEH@UHHcMHcHq/JzHEH@UHHUHJUH]UHHd$H}HuUM KzHEH@UHDHcMHcHqIzHEH@UHHUHJUH]UHHd$H}uU Kz}|"HcUHcEHq[IzE})E HcEHcUH)q9IzE~EEH]UHHd$H]H}uU(Jz}|1HcEH qHzHcUHqHzHU}OEFHc]HcEH)qHzH qHzHHHH9uHz]~EEEH]H]UHHd$H]LeH}uU0Iz}|5HcUHcEHq3HzHH q$HzEhE_Hc]HHH9uGzLceIqGzII qGzIHI9uGzDeE~EEEH]LeH]UHHd$H]LeH}uU0 Iz}|&HcUHcEHqSGzHE}]ETHc]HHH9u$GzLceIqGzIIHI9uFzDeE~EEEH]LeH]UHHd$H]LeH}uU0KHz}|5HcEH?qFzHcUHqFzHUhE_Hc]HHH9uUFzH?qJFzLceIqUHcHq@?zHcHq.?zHH?HHHHcHH?HHHHcHH?HHHHcHH?HHHH]UHHd$H]H}HuHU8@zHEH@H HEHc8HEHcH)qV>zHU؋3 _HEHcxHEHc@H)q1>zHUЋs^HEH}Hq>z@ _EH]H]UHHd$H]H}HuHU8m?zHEH@HHEHc8HEHcH)q=zHU؋3[^HEHcxHEHc@H)q=zHUЋs5^HEH}Hqc=z@Y^EH]H]UHHd$H]H}HuHU8>zHEH@HHEHc8HEHcH)qzHEHcHUHcH)qYy]HEf@f%t?HEHPHEf@LHEH@HuHEH@E)HEHPHEf@LuH}8EHEf@f%}|&HEH@ ;E~kHEH@ EXHEH@Hc HHH9uayHcEH9})HEH@Hc HHH9u2y]HEH@HP@HEH@HHEH@H@hMH4HEH@HHEH@EHcMHcEH)qyHEH@HHEH@HpXUHEH@HEHPHEH@HEHPE쉂HEf@f%tHEHPE쉂H]H]UHHd$H]H}Hu0yHEEHE@EHE8|4HEH@HU@X;~!HEx|HEH@HUp;BHEH@@C}} E#HEH@HuHEH@EHEHHUI;0}B}|HEH@4E)HEH@Hc4HHH9u2y]HEH@LHEH@HP8HEH@HcHEH@}@AHcHqyHUHRHJ`UHEH@HP8HEH@Hc\HEH@}@HcHq{yHUHRHR`MHEH@HHhuHEH@HP`EHHHEH@HP8HEH@HHEH@HH`EH4HEH@HHEH@EHEH@HP@HEH@HHEH@H@hMH4HEH@HHEH@EHEH@(t(U؋E1}Hc]HHH9uky]HEf@f%HEHHHEHPH;Lu6HcEHcUH)q&yHHHIHUHRHc,H9|E؉EHEHPHEf@LHEH@HuHEH@E)HEHPHEf@LuH} EHEf@f%}|&HEH@ ;E~kHEH@ EXHEH@Hc HHH9u6yHcEH9})HEH@Hc HHH9uy]HcMHcEH)qyHEH@HHEH@HpXUHEH@HEHPHEH@HEf@f%tHEH@U쉐HEHPE쉂H]H]UHHd$H]H}Hu yHEH@HU;B1HEH@@RDHEHc@HqyHUBHEH@HP(HE@E|HEH@@X;EHEH@@HEH@HP@HEH@HHEH@H@hMH4HEH@HHEH@EHc]HHH9uQyHEH@HHEH@HpXUHEH@HEH@HHcHqyHEH@HEH@ǀHUHE@B H]H]UHHd$H}HuEyH]UHHd$H]H}HuX!yHEEHE@EHE@EHE@ EHE@EHEH@@0;E~@HEH@@0;E~0HEH@@X;E~ HEH@@X;E~HEH@@0;EHEH@@HEH@H@@UHcHUHRHR@MHcH)qyEHEH@H@@UHcDHUHRHR@MHcTH)qyEHEH@H@hUHcHUHRHJhUHcH)qTyEHEH@H@hUHcDHUHRHJhUHcTH)qyEHEH@H@@UHcHUHRHJhUHcH)qyEHEH@HP@EHcDHUHRHRhMHcTH)qyEHEH@HEHHUHRHUHc]HHH9ujyދ}̺@K Hc؋uċ}Ⱥ@8 HcHq;yE؉IЃ@Hc]HHH9u yދ}Ժ@ Hc؋uċ}к@ HcHqyEU؋ű} EU؋uȋ} EHEH@H@hUHcHcEHqyHUHRHMHEH@H@hUHcTHcEHqayHUHRHMD'HEH@HPhEHc HEH@HPhEHcHqyHUHRHJ@UHcHqyHEH@H@@MHcHqyHH?HHHHUHRHUHEH@HPhEHcLHEH@H@hUHcDHqyHUHRHR@MHcTHqeyHEH@H@@MHcDHqGyHH?HHHHUHRHUDH]H]UHHd$H]H}Hu(yHEEHE@EHE8|1HEH@HU@X;~HEx|HEH@HU@0;BHEH@@HEH@H@hUHHEH@H@@MH4HEH@HHEH@HcHH?HHEHEH@HHEH@HpXMUHEH@Hc]HHH9uyHEH@HHEH@Hp0UHEH@H]H]UHHd$H}Hu05yHEH@HU;B~HEH@@RHEH@HP8HEH@H4HEH@HHvD]HEH@EHEH@HP`HEH@H4HEH@HH1D]HEH@EHEH@HP@HEH@H4HEH@HHC]HEH@EHEH@HPhHEH@H4HEH@HHC]HEH@EHEHc@Hq=yHUBHEH@HP(HE@EHEH@HUH4HEH@HH1C]HEH@EHEH@HUH4HEH@HHB]HEH@E؋E;EE;E~E;E~>E;E|6HcMHcEH)qqyHcEHcUH)q_yHqUyEE;EE;E}E;E~;E;E}3HcMHcEH)qyHcEHcUH)q yHqyE]HcUHcEH)qyHcuHcEH)qyHc}HcEH)qyHcHcUHcMH)qyHqyUHEH@HHEH@HMԋUHEH@HEH@HHcHqOyHEH@HEH@ǀHUHE@B H]UHHd$H}HuyHE8|HEH@HU@0;HEH@@kEHEH@t EHEHEH@t EHEHEH@HPHHEE HUHRHJHHUH]UHHd$H]H}HuHyHEH@HHEHEH@HHEHEf@f%|ftf-t EEHEHXEEHEBEE؉EHcEHqyE؋E;EHU؊E tҋE;EE؉EE؉EHcEHq[yEHU؊E pHEf@f%t/HcUHqyHcuHq yDE؋MH-HcUHqyHcuHqyDE؋MH.E؉EHcEHqyE؋E;EZE;Eu:HEf@f%tM܋UuHM܋UuH}HEf@f%tDHcuHqKyDEM܋UHHcUHq*yDEM܋uHBHcuHqyDEM܋UHUHcUHqyDEM܋uH4HcEHqyE;H]H]UHHd$H]LeH}؉uUMDEPyE;E HEH@ȋUDEHEH@UHcDHUHRȋMHcTH)q,yEHEH@ȋUDEHEH@UHcDHUHJȋUHcTH)qyEE;EyU;UwEEԐEHEH@ȋMԋDE;EHcMHcEHqyEHcMHcEHqyEHEHHEԋuЉt;U E;E];]EE@EHEH@ȋUԋDE;EHcUHcEHqyEE;E|HcUHcEHqyEsHEH@ULcdHEHPEHctHEHPEHcDH)qyHcUHcEH)qyHc}HcEH)qyvHcLqyyEHEH@UԋMЉL;]];]EEԐEHEH@ȋUԋDE;EHcUHcEHqyEE;E|HcUHcEHqyEsHEH@ULcdHEH@UHctHEH@UHcDH)qyHcUHcEH)qyHc}HcEH)qyvHcLqyyEHEHHUԋEЉD;]H]LeH]UHHd$H]LeH}؉uUMDEPyE;EHEH@ȋUЉEHEH@UHcHUHRȋMHcH)qyEHEH@ȋUЉEHEH@UHcHUHJȋUHcH)qyEE;E}U;UxEEEHEH@ȋMԋȉE;EHcMHcEHqyHHMHH5DyHtHMHH5JyHZHMH/H5PyH@HMHH5VyH&HMH+H5\yH HMHQH5byHHMHwH5hyHHMH H5nyHHMHH5tyHHMH9H5zyHHMH_H5yHpHMHH5yHVHMH H5yH<HMHQH5yH"HMHH5yHHMHH5yHHMHCH5yHHMHiH5yHHMHH5yHHMHH5yHHMHH5yHlHMHH5yHRHMHǗH5yH8HMHH5yHHMHH5yHHMHiH5yHHMHOH5yHHMHH5yHHMHH5yHHMHaH5yHHMH7H5zHhHMHH5zHNHMH#H5zH4HMHH5zHHMHH5 zHHMH%H5&zHHMH H5,zHHMH!H52zHHMHH58zHHMH-H5>zH~HMHH5DzHdHMH)H5JzHJHMHH5PzH0HMHH5VzHHMHH5\zHHMHH5bzHHMHH5pzHHMHH5~zHHMH#H5zHHMHyH5zHzHMH_H5zH`HMHŧH5zHFHMHH5zH,HMHH5zHHMH7H5zHHMHH5zHHMHH5zHHMHH5zHHMHH5zHHMHH5zHvHMHH5zH\HMHH5zHBHMHH5zH(HMHH5zHHMH3H5zHHMHIH5zHHMH?H5zHHMHuH5zHHMHH5zHHMHH5{HrHMHH5{HXHMHMH5{H>HMHH5{H$HMHH5{H HMHH5 {HHMHEH5&{HHMHKH5,{HHMH!H52{HHMHWH58{HHMHH5>{HnHMHH5D{HTHMHH5J{H:HMHH5P{H HMHeH5V{HHMHH5\{HHMHH5b{HHMHH5h{HHMHH5n{HHMHCH5t{HHMHyH5z{HjHMHH5{HPHMH5H5{H6HMHH5{HHMHH5{HHMHH5{HHMH͛H5{HHMHH5{HHMHH5{HHMHH5{HHMHH5{HfHMHH5{HLHMHH5|H2HMHH5|HHMH}H5|HHMHcH5$|HHMHٶH52|HHMH/H58|HHMHEH5F|HHMHH5L|H|HMHH5R|HbHMHGH5X|HHHMHH5^|H.HMHcH5d|HHMHH5j|H HMHH5p|H HMHվH5v|H HMHH5||H HMHH5|H HMHwH5|Hx HMH]H5|H^ HMHCH5|HD HMH9H5|H* HMHH5|H HMHH5|H HMH;H5|H HMHAH5|H HMH'H5|H HMHMH5|H HMHH5|Ht HMHɵH5|HZ HMH?H5}H@ HMH%H5}H& HMH H5}H HMHH5}H HMHH5 }H HMHH5&}H HMHH5,}H HMHH52}H HMHoH58}Hp HMHUH5>}HV HMH;H5D}H< HMH!H5J}H" HMHH5P}H HMHH5V}H HMHH5\}H HMHH5b}H HMHH5h}H HMHH5n}H HMHkH5t}Hl HMHQH5z}HR HMH7H5}H8 HMHH5}H HMHH5}H HMHH5}H HMHH5}H HMHH5}H HMHH5}H HMHH5}H HMHgH5}Hh HMHMH5}HN HMH3H5}H4 HMHH5}H HMHH5}H HMHeH5}HHMHKH5}HHMH1H5}HHMHH5}HHMHH5~H~HMHH5~HdHMHɝH5"~HJHMHH50~H0HMHeH5>~HHMHKH5L~HHMH1H5Z~HHMHH5h~HHMHH5v~HHMHH5~HHMHɝH5~HzHMHH5~H`HMHH5~HFHMH{H5~H,HMHaH5~HHMHGH5~HHMH-H5~HHMHH5~HHMHH5HHMHH5HHMHH5HvHMHH5,H\HMHH5:HBHMHwH5HH(HMH]H5VHHMHCH5dHHMH)H5rHHMHH5HHMHH5HHMHH5HHMHH5HrHMHH5HXHMHH5H>HMHsH5H$HMHYH5H HMH?H5HHMH%H5HHMH H5 HHMHH5HHMHH5(HHMHH56HnHMHH5DHTHMHH5RH:HMHoH5`H HMHUH5nHHMH;H5|HHMH!H5HHMHH5HHMHH5HHMHH5HHMHH5€HjHMHH5ЀHPHMHH5ހH6HMHkH5HHMHQH5HHMH7H5HHMHH5HHMHH5$HHMHH52HHMHH5@HHMHH5NHfHMHH5\HLHMHH5jH2HMHgH5xHHMHMH5HHMH3H5HHMHH5HHMHH5HHMHH5HHMHH5́H|HMHH5ځHbHMHH5HHHMH}H5H.HMHcH5HHMHIH5HHMH/H5 H}t*H0H=4t"/zHH5H-yHEH}tH}tH}HEH1yHpHtlHXH݄yHcxHcHu#H}tHuH}HEHP`هydyχyHHt變y艊yHEH]UHH$pHxH}HuHUHMH}$xyHUHu8yH`bxHcHUHEx}PHEHPHE@HkH\8HuHxHEHCHEHCHEHc@Hq͵yHUB*H̀H=r"xHH5H蚅yņyH}xHEHt>yHxH]UHHd$H}HuyH}~HEHUHHHEHx0]oyH}1oyH}tH}tH}HEHPpH]UHH$0H0H}yHDž@HDžHHEHUHu诂yH`xHcHUHE@HE@$HEx(tHEHx0HEH@0HHEH@ǀHHEH@HHHEH@HPA;BteHEH@HMHbHHHEH@HUH icHHHEHPHMHcHHcHEHPHMHUbHHHEHPHMHbHHHEH@HMH3cHHH}LwHEH@$H}4q@H}cHEPHkq$yHm]HEHc@H)qyHUBHEx}HEH@@HEPHkqϲyH]THEHc@Hq豲yHUB HEp H}HEH@ƀhHEH@@HEx(H}xH}HPHEH@`HHpHHHXH{}H`HUHE@HkHD8HhHq}HpHE@<HHEH@Hc@ HkqVyHqKyE=>~E>HEHcuHkq#yH}tHEH@@EHEH@HcP HkqyHEH@Hx(HuPxHEH@Hx(VHEH@HUHP(HEH@UP EHEH@@EEEH]UHHd$H}uHU yHEH8tAHEH@HUHH(HH)ȉEuH}EHEH@HcUHP(HEHuH}[EEH]UHH$ H}@u肮yHDž8HDž@HDžhHDžpHUHuzyHXxHcHxHEHxu*MHUH= ]GHEHEHUHP HEH@HEH}@E}O}EHwH=!,HEHpx觙@0HhHHh1H5wHpxHpH-HhAxHwHHHEpH@˥H@HPHwHXH}H8H8H`HH1ɺHhxHhHH5wHHEHx0HuHEH@0HH5}wH]H}ey|yH8cxH@WxHhKxHp?xHxHt^}yEH]UHHd$H}HuHGxp yHUHu[xyHVxHcHUu4HuH}1HvbxHUHtHRHEHxHu4r?{yH}xHEHt|yH]UHHd$H}yyHEHH]UHHd$H}HuEyHUHEHHB8HEH8tHEHHUHP@HUHEHH]UHHd$H}Hu yH}t]HEH8u HUHEHFHEHHEH@8HEfHEHEH@8HEH}uHEHUHP@HEHUHP8H]UHHd$H}Hu UyH}tnHEH@@HEHEH@8HEH}tHEHUHP8HEH@@H}tHUHEHB@HEH@8HEHH;Eu HEHUHH]UHHd$H}蹩yHEH8tKHEHHx8t=HEH8HUHuH}H}HUHuHHUHH]UHHd$H}HuHU(1yHEH}u HEHE#H}u HEHEHE@HEHU@ ;B OH}uHEHEH@@HEHE HUHEHB8HEHUHP@HEHEHEH@8HEMH}uHEHEH@@HEHE HUHEHB8HEHUHP@HEHEHEH@8HEH}t H}BH}tHEHUHP8HEHUHP@H}tHEHUHP8HEHUHP@HEH]UHHd$H}ɧyHEH8tKHEHHx8t=HEH8HUHuH}H}HUHuHHUHH]UHHd$H}HuHU(AyHEH}u HEHE#H}u HEHEHE@HEHU@;BOH}uHEHEH@@HEHE HUHEHB8HEHUHP@HEHEHEH@8HEMH}uHEHEH@@HEHE HUHEHB8HEHUHP@HEHEHEH@8HEH}t H}BH}tHEHUHP8HEHUHP@H}tHEHUHP8HEHUHP@HEH]UHHd$H}٥yEHcEHq!yEHEH@8HEH}uۋEH]UHHd$H}HuHU(聥yH}uHEHHEHEHEHE$fDHcEHq虣yEHEH@8HEH}uHcEHqtyHEHEHE"@HEH@8HEHcEHqEyE}HEHUHHEHUHH}tQHEHx@u*HoH=_"eHH5HryHEH@@H@8HEH@@H]UHHd$H]H}u ByHEHcXHHH9u胢yHcEH!HEHcHHHHEH]H]UHHd$H}uyHEHc@Hq3yHcUH!H]UHHd$H]H}u 袣yHEHcXHHH9uyHcEH!É]H]H]UHHd$H]H}u ByHEHcXHHH9u胡yHEHcPHcEHqmyHqbyH!É]H]H]UHHd$H}u֢yHEHc@UHcHEHc@ H)qyUH]UHH$ H}HuHU~yH}uHEHUHRhHEH}-HUHunyHLxHcHUHEHEHUHPHE@(HEH@HEH@H@(HEH@HEH@ HEHPHEHB0HEH}tH}tH}HEH2qyHEHtlHhH(myH LxHcH u#H}tHuH}HEHP`pyhrypyH HtsysyHEH]UHHd$H} yHEH@HE HEH@0HEH}sYyHEHEH}uHE@(HEH@HEH@H@(HEH@HEH@ H]UHHd$H}uvyHEHPMH=_]*HEHEHxu HEHUHPHEHx u HUHEHB HEH@Hx(t(HEH@H@(HUHP0HEH@HP(HEHB(HEH@HUH@(HBHEHPHEHB(HEH@UP@HEH@@!HEH@@ HEHc@(HqyHUB(H]UHHd$H}iyHEHxHEH@H@0HEHPHEHHHB(H;A(uHEH@H@(HEH@HUH@(H;B u HEH@ HEH@Hx(}WyHEHPHEH@HB(HEH@HEHc@(HqyHUB(H]UHHd$H}艞yHEH@@@HEH@@!HEH@@ HEH@Hx(t_HEH@H@(xuMHEH@H@(HcPHEH@HcXH)qxyEu H}HEH@HP(EBH]UHHd$H}HuŝyH}~HEHUHHHEH@H@0H}1UyH}tH}tH}HEHPpH]UHHd$H}IyHEHPHtH@HH]UHH$H}HuUMyH}uHEHUHRhHEH}}HUHu&iyHNGxHcHxHEHEǀXUuH}HDžp@H5]HEHPHp9yHE@@HE@ HE@!HEH@(HE@HE@HUH=\gHUHB0HEH}tH}tH}HEHckyHxHtlHXHhyH7FxHcHpu#H}tHuH}HEHP` kylykyHpHtmymyHEH]UHHd$H}Hu5yH}~HEHUHHHEHx0SyH}1RSyH}tH}tH}HEHPpH]UHHd$H}uUÚyHUEBHUEB HUEBH]UHHd$H}uUsyHUEBHEUPH]UHHd$H}u6yHUEBH]UHHd$H} yHEǀXHE@@HE@ HE@!HEH@(HEHx0H]UHHd$H}詙yH}@=@~(HE@H5\HEHPHM7yH]UHHd$H}u Fy}~EmHEHPHtHRHHcEH9}HHcEHkqgyE=~EHcEHEH5_\HEHPHMn6yEEH]UHHd$H}u覘yHEHx(u*HcH=S"YHH5HfyHEHPHEHcXUHEHcXHq蟖yHUXH]UHH$H}HuHUM yH}uHEHUHRhHEH}HUHu5dyH]BxHcHxHEEr&ttHE@7HE@*HcH=R"XHH5HeyHEHUHPHE@HE@H}tHUHEXBHEH@(HEH@0HEH@8HEH@@HEH}tH}tH}HEHUfyHxHtlH`H cyH)AxHcHu#H}tHuH}HEHP`eygyeyHHthyhyHEH]UHHd$H}Hu %yHUHUBB HE@EHEHcPHcEHqWyHH?HHEHEUPHEHcHcEHq(yHH?HHEHEUPHcUHcEHqyHH?HHHUBHUHE@B$HE@ EHEHcPHcEHq躓yHH?HHEHEUPHEHcPHcEHq芓yHH?HHEHEUP HcUHcEHq^yHH?HHHUBH]UHHd$H}ЉuUMDEDMؿ0踔yHEǀLHUHEHcLHDTUUPHUHEHcLHDLUUPHUHEЋLHDDU؉UPH]UHHd$H]H}ЉuUMDEDMؿhyEHcEHcUH)q^yEHcEHcUH)qIyEąE;EE;EE;EsHc]HcuHcEH)qyUċ}HcHqyEHEHcXHHH9uʑyHcEH!HEHcHHHHEEVHEHcXHHH9u舑yHcEH!HEHcHHHHEHEHc@Hq[yHcUH!ЉEE;EsHc]HcuHcEH)q/yUċ}HcHqyEHEHcXHHH9uyHcEH!HEHcHHHHEEVHEHcXHHH9u賐yHcEH!HEHcHHHHEHEHc@Hq膐yHcUH!ЉE}~UE;EHc]HEHcpHcEH)qPyUċ}5HcHq8yEHcEHq&yE*HEЀx t HEHcXHqyHUЉXHEЃ}@ HEЀx!tHEHP(EBHE@!HcEHcUH)q蹏yHq讏yEHEHcXHcuHq蒏yH}uEHJh}~RHEHc@HcUHqRyHcMHHEHEHc@HcUHq/yHcMHHUEHc]HHH9uyHEHc@HqyHcMHHHHHHH9uÎy]Hc]HHH9u襎yHEHc@Hq蒎yHcMHHHUEHc]HHH9uay]HEHx(u*HF[H=*K"%QHH5H#^yHEHPHEHcXEHEHcXHqyHUЉXHcUHcEHqՍyEHcUHcEHqyE|*HcEHcUH)q觍yEHcUHcEHq蒍yEHcEHq耍yE}EH]H]UHHd$H]LeLmH}ȉuUMDEDMпh̎yHEȊ@!EHc]HHH9uy$Hc]HHH9uyLceIHI9uΌyLcmIHI9u賌yDMuH}EAEĀ}t8HEȀx!u.HEH@(HcXHHH9ueyHEH@(XEH]LeLmH]UHHd$H]H}uUh迍yEHE苀LEHcU̸H)qyEHUEHDDHE@EHE@E;E)E;EHEHEHcXHHH9u蠋yHcEH!É]ԉ;E~EEԋEEЋE;E} EEIHEHEHcXHHH9uMyHcUHEHc@Hq7yHq,yH!É]HEHEHcEHUHcRHqyH!ЉEċE؉EЃ}HEx t(HEHcXHqъyHU艂XHE@ HE@EHEHEHx(u*HWH=G"~MHH5H|ZyHEHPHEHcXEHEHcXHqJyHUXHEHcPHcEHq*yEHEx!tMHEHEHcXHHH9uyHcEH!HEHcHHHHHUHR(BHE@!E;EHcEHcUH)q貉yEHEHEHcXHHH9u茉yHcEH!HEHcHHHHHcHUHcXHq]yHqRyH}uEH hẺEj@HE@ HE@E;EyHE@EHcUHcEH)qyHEHc@H9|AHcEHq͈yHcUH9})HuH}HcEHq計yEHEHEHcXHEHc8HEHc@H)qzyHcUHcEH)qhyHcuHcEH)qVyAHcHqDyEHEHEHx(u*H+UH=E" KHH5HXyHEHPHEHcXEHEHcXHqևyHUXHcEHq轇yEHEUHDDHEHEHcPHcEHq蔇yEE;EHE@ HEŰDDEHEHEHx(u*HTTH=8D"3JHH5H1WyHEHPHEHcXEHEHcXHqyHUXHEHcPHcEHq߆yEHcEHq͆yEHEUHDDHEE;E| E;EHEHcLHq萆yHU艂LEH]H]UHHd$H]LeH}uU@yHE@!EHUHE苀LHDDHEHcXHHH9uyHE؉XHEHcX HHH9uyHE؉X HEHcXHHH9uÅyHE؉XHc]HHH9u衅yLceIHI9u膅yDH}8E}t8HEx!u.HEH@(HcXHHH9uByHEH@(XHEHcXHHH9uyHE؉XEH]LeH]UHHd$H}uU胆yHUEB8HEUP"pDHH5HnQyHEЋ@@;Et'HEЃx@t HEHx0FHEHx0uFHEЋ@@rFtt!:HEЋPHEЋpH}uFHEЋPHEЋpH}xt)HEЃLKHUЋEĉB8HUЋEȉB@DEMUuH}u"$}uDEMUuH}tEEH]UHH$HH}@uHUHMLEDMؿ}yEHUHh"JyHJ(xHcH`EHc]Hq{yEEHEH@0H@ HEUPLMLEMuH}:HEUPHq{yEHEHx0|HEЋ@<\HEHc@Hq\{yHc\H!Ѕ HEHUЋ@<;BHEHUЋ@<;BHEH@0Hx HEHx(HEH@(xHEH@(HcPHqzyHEH@(Hc@HqzyHEH@(Hc@HqzyHUHR0HR HcRH9uXHEH@0HP HEHH(B;Auyj@y>yH`HtAyAyHEHLLH]UHH$HLLH}HuHUMnyH}u'LmLeMulyLHb,xLShHEH}HUHu:yHxHcHxuNHEH}HUHEHBHUEB HEH}tH}tH}HEH=yHxHtlH`H ^:yHxHcHu#H}tHuH}HEHP`Z=y>yP=yHHt/@y @yHEHLLH]UHHd$H]LeLmH}@]myLmMHEH yHHH9vFkyHI yHkIHEIDHEIDHEHEHHtH@HHq6kyHEH5K\HEHHMغR yH}UHEHHtH@HH2HEH5\HEHHMغ yH]LeLmH]UHHd$H}9lyHEH5j\HEHHM yHEǀHEƀHEH5i\HEHHMp yHEHx1!xH]UHHd$H]LeLmH}Hu(kyH}~'LeLmMupiyI]H)xLLmLeMuIiyI$H(xLHEx t HEHx#yHEtHEHHEǀH}17#yH}tH}tH}HEHPpH]LeLmH]UHH$`HhLpLxLuH}HuH諦xqjyHUHu6yHxHcHUH}H57Su$HEHHtH@HHEHEHPyHH-H9vhy|bEDELmMHcUHH9vgyLceLIyKLxLHDAH`H};ELmLeMuDyI$HSxLuH}H5EHEHcXHqDyHH-H9vwDyH00 EELmH`LeMuDyM4$LxHLAH`H H]LcHcEHH9vCyLcmLH{xOyM,$LzwHAHcHq?yHH-H9v>yHEEEfEEEHEH-H9vu>yEHEEE@EDmH]LeMu>yM4$LwHDAIHc]HEHH9w >yHEL,LMMu=yM4$LxwHLAt+Hc]Hq>yHHH9v=y]ЋE;EHDmH]LeMuj=yM4$LwHDAIMLMu>=yL#LwLA$HcHcEH)qw=yHH-H9v=y]̀}tHcUHEHqC=yH9u6}t}*E;EE;EuE;E}EЉEȋẺEċEEE;EH]LeMuQuH}H5rHEH}u(H}H5/"uH}H5HEH}u(H}H5uH}H5oHEH}u(H}H5uH}H5@HEH}u(H}H5uH}H5HE8xH}ixHEHtxHEH`LhLpLxH]UHHd$H}HuHwix=-yHUHuxHwHcHUuJHuH}kHEHu,HUH=r\HEHEHx HuNHEHEYxH}hxHEHtxHEH]UHH$PHPLXL`LhH}HuHhx^,yHDžpHUHuxHwHcHxHEH@ H@@HErfHELp(LpHELh(Mu)yI]HwLLHpH}Et'}}HEH@HE HEH@HEH}uH}u HE HEH@(HExHp[gxH}RgxHxHtqxHEHPLXL`LhH]UHH$@H@LHLPLXL`H}HuHUHM*yHDžhHDžpHUHuxH7wHcHx|LuLpLmMu|(yI]H wLLLpLuHhLeMuD(yM,$LwHLAHhL ExHhexHpexHxHt xEH@LHLPLXL`H]UHH$@H@LHLPLXL`H}HuHUHMw)yHDžhHDžpHUHuxHwHcHx|LuLpLmMu'yI]HwLLLpLuHhLeMu&yM,$LwHLAHhLEDxHhdxHpdxHxHtxEH@LHLPLXL`H]UHHd$H}HuHwdx=(yHEHUHuxHwHcHUu+HuH}CHuH}VdxHuH}IHEpxH}cxH}cxHEHtxHEH]UHH$HLL H}Hu}'yH}u'LmLeMud%yLH wLShHEH}1HUHuxHwHcHUHEHE@HEH@HMHH=<]HUHBHMH H=a<]HUHB HEH}tH}tH}HEHxHEHtlHpH0xHwHcH(u#H}tHuH}HEHP`xNxxH(HtxsxHEHLL H]UHHd$H}%yHEHx \qHEHxOqH]UHHd$H]H}%yHExu$HEHxuH=$\/\HUHBHEHcXHq#yHH-H9v\#yHEXH]H]UHH$HLLLLH}HuUH} ax8$yHDžhHUHxxH;wHcHpsHuHhɀHhH}`xHEHtH@HtSH]LeMtMd$LHH9v^"yLH}pxB|#/tHuH}1HAaxH=S1CTHEH]LmMu!yMeLwHA$HPHxHFwHcH6$;MHuH}A;AHH]LeMuk!yM,$LwHAXH]LmMuC!yMeLwHA$HcHq~!yHH-H9v&!yHEEDuLmHhLeMu yM<$LkwHLDALhH]LeMu yM4$L6wHLA;ExH]LmMuW yMeLwHA$(HHtOxH}xxHh^xH}]xHpHtxHLLLLH]UHH$@H@LHLPLXL`H}HuH]x!yHDžpHUHuxHwHcHxjHuHp}HpH}]xHEHtH@HtSH]LeMtMd$LHH9vyLH}mxB|#/tHuH}1H[^xH=/;!:HEHEHx9^HEHEH@Lx(LpLMMu}yM4$L!wHLAHpH}ԌtbLpLMMu9yM4$LwHLALpH]LeMuyM4$LwHLAPH}5A=H}dxH]LeMuyM,$LfwHAHcHqyHH-H9vyHhhEEDmH]LpLuMuGyM>LwLHDALpH]LeMuyM4$LwHLAh;EH}vxqxHpZxH}ZxHxHtxH@LHLPLXL`H]UHH$HLLH}HuHZxUyHEHDž`HUHpxHwHcHhHuH`CzH`H}SZxHELeLmMuyI]H}wLHHH xH4wHcHHEHxHu1HEHxHu1H}HuH}HEHUH=l\_HEHEHxHu*?HEHxH`F:H`HEH_YxEEHEHxUH`6H`uH}ʥ} rHuH}HEHE:xLeLmMuyI]HWHEHpH=\ xHEHuH}Et8LeLmMuyI]HwLu HuH}zExHpVxH}VxHxHtxEHPLXL`LhH]UHH$HLLH}HuU*yHEHDžHUHpbxHwHcHhELeLmMuyI]HvwLHPHxH-wHcHHEHxHu0HSHEHxHu-H}HuH}HEȊMHUH=`\#HEHEHxHu;HEHxH:6HHEHSUxE@EHEHxUH2HuH}躡} rHuH}E.xHEHx1,LeLmMu}yI]H!wL(HHtwxxH6TxH}-TxHhHtLxEHLLH]UHHd$H]H}yHEx~IHEHcXHq(yHH-H9vyHEXHExu HEHxύH]H]UHHd$H]LeLmH}Hu(YyH}~'LeLmMu@yI]HwLLmLeMuyI$HwLHEHxxHEHx zxHEHxmxH}1"xH}tH}tH}HEHPpH]LeLmH]UHHd$H}HuyHEHxTH¾H=\$HHtH H}xH]UHHd$H}Hu%yHEHx SH¾H=9\THHtH H}xH]H xH 'xH 7xH H 鷵H xH xH xH H 7UHHd$H]LeLmLu yAH}\L%}\MuyMLwHLAH0gHygH"gHH]LeLmLuH]UH1yH=g)xH5څ\H=K\yH]SATHd$HCHHHHt HtiH\C !$H\fC f%HcD$D$=D$=H{HHCHACH\C !$H |\HC ffHc@!H ŠD$HM\fC!f%HcD$D$=H{HHCHACE0DHd$A\[SATHd$HIM~ HHHH1/ HtMt HHPpHd$A\[SATAUAVAWHd$IAGADIAW$)AE9AG$It IcLݳwIcIE)H=\AG !$H &\IG ffHc@!H ŠD$H \IG fPfHc@!H ŠD$HLJ\fAG"f%?HD$IHIGHAGAG$E AG$It IcLwEw$Hd$A_A^A]A\[UHHd$H]LeLmLuHAfADs{$~AfAtfAuEt5fEuE9t*HH=!ҍHH5HxDH]LeLmLuH]H;pt pH@(SATAUAVAWH$H$HHx(tH$Lx(lH$HxH$HPHIH$P+H$Lx0H$HxHt$H$HHHAgAU|E@DdAă+t/ rr sIA=t9E{A=ujLHHH!LHH?HHHHkI1LHH?HHHHkLHHHHILHH?HHHHkIH$HxH$HPHIH$HxH$HPHL)H$HB0HHH?HHHHkIH$HxH$HHHH$HxHH$HHH|$=uI<$=uIH$HxLH$HPHH$Lx(LH$A_A^A]A\[HG H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8xHEwHcHT$xuJHD$H$H|$1HD$H|$tH|$tH|$HD$HxHD$xHtH$H$xH躷wHcH$u'H|$tHt$H|$HD$HP`xxxH$Ht]x8xHD$H$H$H|$Ht$H$L$H|$uHD$HT$HRhHD$H|$HT$(Ht$@xHwHcH$u]HD$ H$H|$1t$H|$+H|$HD$ H|$tH|$tH|$HD$HxH$HtH$H$%xHMwHcH$u'H|$tHt$ H|$HD$HP`xxxH$HtxxHD$H$HH@0H@ H@(@<@@UHHd$H]LeLmLuL}H}HuЉU 1HEHEHx(t5HcUHEHP H;P(~HEHP(H@ H)‰U} 1HE\1HELeHEx<HE@<HEE1FfDEHEHEHxDHtUHEH@HHUEUgAD9zgEnADTH\D<AUtDD|AHm?HExu5HMIHH=h~\S̍H5HHxD9EU9tjAgEnADDA|HExuGE~BHMIHH=}\ˍHH5Hx EIcHUHB0HE@tEuHEHp HHE8txu:HMIHFH=b}\MˍHH5Hx}}u:HEHxHEH@HHHEHxHEH@HH9}5HMIHH=|\ʍHH5HwxHEH@ HpH}HEHxHEH@HHHEHxHEH@HH9}5HMIH0H=L|\7ʍHH5HxHEH@ HpHAnEuHEHp H'WHE8txuHEHp H6}uHEH@ HpH}uHEH@ HpHHE@ HEP8HEfPf@ HEP9HEfPf@ HEP:}~2HUBxH$HtxH$H$H|$H4$HHtH@HuH|$1?x1ҾH=)!HD$HT$ Ht$8xH wHcHT$xHT$H=ht\3HD$H$H$xH輬wHcH$u$H$HtHRH4$H|$HD$HxH|$zxH$HtxHt$H|$TxH|$JxHD$xHtxH$UHHd$H}>IHEH@0@Pu-H}LHtH}Lxt HEHx0r H]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuRxHzwHcHUuCHEHEHUHP0HE@%HEH}tH}tH}HEH'xHEHtlHhH(xHwHcH u#H}tHuH}HEHP`x]xxH HtxxHEH]UHHd$H}JH}%Kxu HEHx0 H]UHHd$H}uH}+H]UHHd$H}LHEHx0 H]UHHd$H]H}JOHUHuxHwHcHUHEHxx HEH@HEHx:JHHo_HEHxJHHEH@HYcHEHxIHHEH@HH:xHEH5C;"HEH@HM"xHEHxIHH=Ȋg5HEHtHtoxHEH]H]UHHd$H]LeH}HEHUHuaxH艨wHcHUH}QRHEHxIHH='g0HEHxHHHXHEHxx tPHEH@uBH):"HEHxHIHuLI$HuHEH@H趚xxH59"H}衙xHEHtCxH]LeH]UHH$ H}HuHUH}uHEHUHRhHEH}{HUHu"xHJwHcHUHEHUH}1DVHUH=w\?HUHxH=!㈉HUHHEH@xH=!贈HUHHEH@xHEǀ8HEǀ<HEH}tH}tH}HEH^xHEHtlHhH( xH5wHcH u#H}tHuH}HEHP` xxxH HtxxHEH]UHHd$H}HHxdFH]UHH$`H`H}HuHDžxHUHuHxHpwHcHUHEHxEHEHEHHEHHHEHEH1HxHEHHHxHuH8HEHEHx胖xHÅEEHEHEgPHxHEHHHxHu0HHEHPHcE;]H}HEH *HEHE<HEHEH1HxHEHHHxHuH6HE@HEHx$耕xHÅ|eEfEHEHEgPHxHEHHHxHu0HHEH@$HcU;]HEHt*HEHH}YHHHHUBHEHt>HEHH}JYHHxHH(HxHEHx4xxHx4xHEHtAxH`H]UHH$PHPLXH}HuHUMHDžpHUHu*xHRwHcHxHuH}XHILI$tHmE}tlA$uMHEH@Ht;HpLI$(HpHEH@H 8E&LI$ELI$E~xHp2xHxHtxEHPLXH]UHHd$H}HuH~HEHUHHHEHx歍HEH֭HEHƭH}1QH}tH}tH}HEHPpH]UHHd$H]H}Hxx tH})HX`HHEEEH]H]UHHd$H}HxH@(H]UHHd$H]H}uHEHHHEHEHH%HEHxx sEHEHEHx@HEtt(H}HEH ;EH}VuHc]H}HEH HcHcUH)H9~6fDH}w_H}HEH ;E~*HEuH}YVH}]H}HEH ;E} HEtH}HEH ;Et0HEHKHHUH4PHHEHt&HEHHEHHHuHEHEHHH}HEH]H]UHHd$H}eHEHx>HH=g/)} H}5H]UHHd$H}HuHEHxH@(H;EtHEHxHu&@H]UHHd$H}HuHEHHu ?xHtHEHHur/xH})H]UHHd$H}HuHEHHu>xHtHEHHu"/xH}H]UHHd$H}HuHEHHuk>xHHEHHu.xHEHu!HEHHEHHHEHHEHDnHEHHEHHE~EHU8HE8HHEH~HE1HEH5gp"HEHdHMFxH}H]UHHd$H}HuHEHHuK=xHHEHHu-xHEHu!HEHHEHHHEHHEH$mHEHHEHHHU<HE<HHEH~HE1HEH5Yo"HEHlHM8xH}H]UHHd$H}HuHUHUHHEHHEHEH;EuHEH;Eu0u#HUHEHHEHH}0H]UHHd$H}uHE;EtHEUH}H]UHHd$H}uH}HH= M߰HH5HݽxH]UHHd$H}uH}HH=| M菰HH5H荽xH]UHHd$Hg\HEHu1H=gH]UHH=` HxH1{gH]UHH={g H]UHH=HH q\HH5HHH5o\H=5HxDH]UHHd$H}HuUЅ|uH}HrMHp*x H}1*xH]UHHd$H}HHUHHHLEHNHM1ɾH=pr\H]UHHd$H]H}2HH=H蛞xHHEH]H]UHHd$H]LeH}Hr\IH}1+HH= GxHLMH9NHM1LHEH]LeH]UHHd$H]H}HuHUHuH=HxHHuH=AHԝxHH8H]H]UHH$pH}HEHUHuxHwHcHUu]H}j(xHpMH@HxHHEHEHH@ HEHx1ɺH}S,xHuH}&y豻xH}(xHEHt*xH]UHHd$H}HTHH]UHHd$H]H}HEHUHuxH=wHcHUuUH˜HH@gX|@EfDEEHHH8Hu>HuUH}r;]غxH}/'xHEHtQxH]H]UHHd$H}HHH=ʉHxHHH@H]UHHd$H]H}HuUHHH8>HHUHHEH]H]UHH$H}HuHUHMH}uHEHUHRhHEH}dHUHx蛶xHÔwHcHpHEHEtt HEHHEHEHpHEHMHUH}1}HUHEB@HEHxHUBDHEHhHUBHHEH}tH}tH}HEHxHpHtlHXH蠵xHȓwHcHu#H}tHuH}HEHP`蜸x'x蒸xHHtqxLxHEH]UHH$@H}HuHUHMH}+xHUHXxH.wHcHPHUHMHuH}w}HcUHcEHHH?HHEHcMHcEH)HVUUUUUUUHH?HʉU܋UEЉEHE@@t tw5H}HEH E؋UЋEgDMԋUЋuH}HEHUԋEЉEDEЋEA)MԋUЋuH}HEHHcEHcUH)HH?HHHE؋EЋU)ЉLEHcH!HH!H LHcH HH!кH!H HMUЋEЉLEHcH!HH!H LHcH HH!кH!H HMUЋEЉLUԋEЉHHcH!HH!H LHcH HH!кH!H HMHEHEHEPDH}1HEH@HuH}A1ɺHEHEE؉LUԋEЉHHcH!HH!H LHcH HH!кH!H HMEЋU)ЉLEE܉HHcH!HH!H LHcH HH!кH!H HMEЋU)ЉLEHcH!HH!H LHcH HH!кH!H HMHEHEHEPHH}1HEH@HuH}A1ɺHEHpxH}'xHPHtxH]UHH$HH}HuHUHMH}uHEHUHRhHEH}HUHuǰxHwHcHxHEHUH} 11pHUHEHhHB8HUHEHpHB@HUHExBHH]HE|tHE|uH}StCLCLHUHEHHBPHUHEHHBXHUHEB`HEH}tH}tH}HEHxHxHtlH`H 螯xHƍwHcHu#H}tHuH}HEHP`蚲x%x萲xHHtoxJxHEHH]UHH$H}HuHUHMH}xHPHxHwHcHZHUHMHuH}oHEHhHEHpHH!HH!HH Hp,HpHExLt@HhHpHHHHHhHHpHpHhHHcHH?HHHcH!HH!H HcHH?HHHcH HH!кH!H HMHE@`HE@HDžH撎EHctHclH)HUHcR`HHcMHH|HEHpHMHh>9:8HHEHHEE|hE|)ЉhHHEHHEE|pE|)ЉpHHEHHEHctHclH)HUHcRHHHcMHHxUxЉHcpHHchH HVUUUUUUUHH?HʉEx)ЉHchHHcpH HVUUUUUUUHH?HʉHHEHHEHEH@@Hc@\HHH?HHHHEH@@xXt1HHcxH)ЉxExEEx)ЉEHHEHHEHExLtZEEEHHtHTHHHEHHHTHHT}|HEHpXH}HEH`HEH@XppH}HEHhH} HEH@EEEHHTEHHtH}HEH}|HEHp@H}HEH`HEH@@ppH}HEHhHEHp8H}HEH0HEH@8H}HEH8HuHUH}HEHHEHpPH}HEH`HEH@PppH}HEHhHUHuH}HEH誫xH}axHHt xH]UHHd$H}HuHUHEHUHMHu>}؋9}܋:}8}HEHUH]UHH$H}HuHUHMLEH}uHEHUHRhHEH}HUHx觧xHυwHcHpuNHEHMHUH}1nHUHEHB@HEH}tH}tH}HEHnxHpHtlHXHxHBwHcHu#H}tHuH}HEHP`x衫x xHHtxƬxHEH]UHH$H}HuHUHMH}蛋xHUHpvxH螄wHcHhHUHMHuH}nHEHx8HEHx@HEH@@x HcUHcEH)H`߭`H8(]1ҾH=LHEHHH¥xHwHcH`HEHp@H}HEHH}1THEH@@*@(YEH-H}$HEH@@*@0YEH-H}HEH@@*@4YEH-H}HcEHcUHHH?HHEHEHcɺH!HH!H ʋMHcH HH!H!H HEHH8HHuH}ѧxH}ȐxH`HtGx貧xH}ixHhHt(xH]UHH$PH}EMUHuUH}xHUHpxHDwHcHhu6HEH`H`DEHMEf)EH}1ExH}RxHhHtqxEH]UHHd$H}HuHH=5g\Hxt(HEHhH}!HEHpH}"HuH}dH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuxH wHcHUHEHUH}1HEǀ H=)H)8HUHpHEHpHEHHQ8HA@H=)H)8HUHhHEHhHEH ZHJ8HB@HEǀ|HEH}tH}tH}HEHxHEHtlHhH(ǡxHwHcH u#H}tHuH}HEHP`äxNx蹤xH Ht蘧xsxHEH]UHHd$H}HuH~HEHUHHHEHh6HEHp&H}1H}tH}tH}HEHPpH]UHH$HLH}HuHƅxHpH0螠xH~wHcH(HEv\HEHBv\HEH}HEHpHEx`H}HEHHEHpH}HEH`HEHpxp u3HEHxhHEH@hHH}HEHhHEHpppH}HEHhHEHhH}HEH0HEHh u0HEHxh1HEH@hHH}HEH8"HEHhH}HEH8HEH@hH}HHHEHxhEM^HEHEHxhEM^HEH}]HuHUH}HEHP H}>HHHAAEiEEH} HËuHHHEHUHuH}HMLEHuHUH}HExthHEHp@p$HE@ = t$ HEHppXH}HEHpHExtXHEHhHE@$=  t$H}HEH8DE̋MȋUċuH}HEHPXD;eHEH8HUHuHEHH}<;Ev5EgX|HpHEH@ HHcpHcH)HcpHcH)HHctHc H)HctHc H)HHHH=} H ۅ ߽|HEHcP HcpH)H߭|$HEHc@HctH)H߭<$E<۽`H`H$fhfD$H@HPPwHcH u#H}tHuH}HEHP`uxvxuxH HtwxwxHEH]UHHd$H}HuH~HEHUHHHEHh\HEHpv\HEHf\HEHV\H}1H}tH}tH}HEHPpH]UHH$HLH}HuHUxH0HpxHNwHcHH}HEHpHEx`HEu H}wHEH@hH}HHHwHuH}褛HvHuH}茛HuH}HEH(HE@HED`A9UЃE@EH}kHËuHHHHH}I8u *EH}HEH08H}HËuHHH}HEH0EZHEHMHHHHEHMHHHlHEHMHHHGqHEHMHHH"LHEHMHHH'HEtt<]uEH}݅Ht(Hu(]#HE݀HHet(Ht(]HE*xYEEHE*YEEL\LlHpHUHt]UMEHMXME\EL`HhHxH|]UHIHdEHHEHuHDhDlpUtHD`D\pUtHuuHJD`hx|HIHEHH}HEH`HEHppH}HEHhHEHuHdx|H^D;elHEH8HTHXHEHH}蹼<;Tv:TgX|>EfDEEHuH}8;]HuH}nxH}PxHHtppxHLH]UHHd$H}HuUHME}uHEH@HEHEH@$HcUHDHEEVu*HEHxEHEH@H8HEEEH]UHHd$H}uUMHEHxt(HEHxDEMUuHEH@H&HEHxDEMUuHEH@HH]UHHd$H}؉uUMDEE;EtE;EudHEHxit+HEHxDEMUuHEH@HHEHxDEMUuHEH@H_HEHxt(HEHxDEMUuHEH@H&HEHxDEMUuHEH@HH]UHHd$H}ЉuUMDEDMHEHxutVE;Et&HEHxDEMUuHEH@HHEHxDEM؋UuHEH@HTE;Et&HEHxDEMUuHEH@HHEHxDE؋MUuHEH@HH]UHHd$H]H}uHEH@HpHEHxHEH@H`HEHxHËuHHx HEH@Hpxp u;HEHx裸HËuHHpHEHxHEH@HhHEHxhHËuHHPHEHx1HEH@H@(HEH@HhHEHxHEH@H0H]H]UHHd$H]H}uHUHEHxHuHEH@H`HEHx辷HËuHHx tHHExp u;HEHx艷HËuHHpHEHxHEH@HhHEHx HEH@H@H]H]UHHd$H}EHuHEHx荛tHEH@HxhEPHUHEH@HxhESHUH]UHHd$H}EMU]HuHUHMLEHEHxtrHEH@HxhEXSHU؉HEH@HxhEwHcHUu2H}HuuHMHUH=3\謮HH}pAbxH}BwHEHtddxH]UHH$HLLH}HuHUHuH}&EtBHE@tHEHE@tHEHE@HEHEH@ HpHEHp HEHxh$8@H8HEH@HEH}赓tuE>t0EuuH}8EEH]H]UHH$H}HuEMUMDEH}/H}FHEHp HEHxhipxHpHEHxHEHEHxHEHEHxHEHEHxhEM~HEHEHxHEHEHxHE HEH@ HEHEȋtt<]uEH}x݅xHX(HY(]#HE݀HH^X(HX(]HE*xYEEHE*YEEE\EHEHxhEHEH0 QwH0HE HPRwE=vPsDEMUHuHEHEH dQwHHE H@QwH@HE H`nQwE=v`sDEMUHuHBE*HVWH=:?!5EHH5H3RxEH]UHHd$H}HuUMDEHE;U| ;U0҄tHcUHcEH)HUHH‰EEHcH!HH!H ƋEHcH HH!кH!H H}HEH@E̋EHcH!HH!H ƋEHcH HH!кH!H H}HEH@E;E}EẺEԋEH]UHHd$H]H}uUHMHE;EuHUH;UHHHE;EuHUHUHHH}2HËuHHHEHEH}蹾H}HEH8EHEH}萾H}HEH8EHUEXEHTYH]H]UHHd$H}HuDHEu7HEu*HEuHEuHEǀ_HEuDHEu7HEu*HEuHEuHEǀHEǀH]UHH$0H0L8H}EMU]eHuЉUH}ɼwHUHXLxH +wHcHP/HEu HEHEoHEu HEHEXHEu HEHEAHEu HEHE*HSH=H;!CAHH5HANxH}آHËUHuEf)EHsEH}謢HËuHHIHEELHEELپHEEL¾HEEL諾NxH}wHPHtxH]UHH$HLL H}HuHUHuH}EtBHE@tHEHE@tHEHE@HEzHEHp HEHxhPXHPHEHXHEHEH@ HEH}mt9HEHXHEHEHXHEHEHxhEMHEH}ˆHHHAAEE@EH}苈8u *EH}HEH088H}YHËuHHH}HEH088EHE苀\H}HËuHHIŋ\L葧H}HEH8EHE苀\H}貇HËuHHIŋ\L?H}HEH8EHE苀\H}`HËuHHIŋ\LH}HEH8EHE苀\H}HËuHHIŋ\L蛦H}HEH8EuEH}X݅XH_<(HEۀ]EHEHXXf/EzrXf/Ezw0tCHEHxhE EHcEHcUH)HXHHXH‰EHE@HE胸dEf/Ez sEEHE\E@H@HPHHHXHPH`HXHhEf/Ez vEEHEXE@H@HPHHHXHPHpHXHxHEHXXf/`zrXf/pzw0tOHEHXXf/hzrXf/xzw0tEHE@HE;EHUEHEUP HEHPHEHXHPHEHXHEHUHEHBHEHB H}htHEHXHEHEHXHEHEHxhEMBHUHB}t D;eRHEx EEHLL H]UHHd$H}H@pH]UHHd$H}HuHUHEHEH]UHHd$H}HuHEHpH;Et,HEHpHuHEHpHH}2oH]UHHd$H}HuHEHhH;Et,HEHhHuHEHhHH}nH]UHHd$H}HuHEHxH;Et,HEHxHuHEHxHH}rnH]UHHd$H}HuHEHH;Et,HEHHuHEHHH}nH]UHHd$H}HuHEHH;Et,HEHHuHEHHH}mH]UHHd$H}uHE;EtHEUH}kmH]UHHd$H}uHE;EtHEUH}+mH]UHHd$H}uHE;EtHEUH}lH]UHHd$H}uHE;EtHEUH}lH]UHHd$H}uHE;EtHEUH}klH]UHHd$H}uHE;EtHEUH}+lH]UHHd$H]H}uH}HËuHHHHUHPHUHEHEHEHEExuEjt0EuuH}踼EEH]H]UHH$`HhH}HuEMUMDEH}訍H}c|HEHp HEHxhEMHEHEHEHEHEHEHEHEHEHEHEHxhEM HEHEHEHEHEHEHE HEH@ HEuEH}论EEH/4(HEۀ]E\EHEHxhEEXEHEHxhEHEHxhEMaHEHEȋtaHEHXhHEȋ;EuDEMUHuHDE,HEȋ;EuDEUMHuHEHEȋ;EtHEȋ;EuHuH}HEEH|4H=!!HH5H.xHEHXhHEȋ;EtHEȋ;EuDEMUHuHpE[HEȋ;EtHEȋ;EuHuH}HEE*H3H=!!HH5H.xEHhH]UHHd$H}HuUMDEHE;U| ;U0҄tHcUHcEH)HUHH‰EEHcH!HH!H ƋEHcH HH!кH!H H}HEH@E̋EHcH!HH!H ƋEHcH HH!кH!H H}HEH@E;E}EẺEԋEH]UHHd$H]H}uUHMHE;EuHUH1HHHE;EuHUH0HHH}{HËuHHHEHEH}虚H}HEH8EHEH}pH}HEH8XEH{0YHEH]H]UHH$ H}HuHUH}uHEHUHRhHEH}HUHu)xHwHcHUHEHUH}1dHEǀHEHPhH=r_LHUHhHEHh}HEHh 訅HEHh@gH=")H")8HUHpHEHpHUH dHH8HP@HEH}tH}tH}HEH+xHEHtlHhH(v(xHwHcH u#H}tHuH}HEHP`r+x,xh+xH HtG.x".xHEH]UHHd$H}HuH~HEHUHHHEHhHEHpH}1{H}tH}tH}HEHPpH]UHH$0H8H}EMU]Hu؉UH}%wHUHh@'xHhwHcH`u^H}}HËUHuEf)EHNEHEHPHEHXPXuH})xH}NwH`Htm+xEH8H]UHHd$H}螃HEHphHEHh6dH]UHHd$H}HuHH=[H xt@HEHhHEHhHEHhHHUHEHpHpHuH} H]UHH$HLH}HuH xHUHH%xHwHcH@H}HEHpHEx`H}HHEHH HHH HHHCHH}HEH8H}HEH0HHHHH}Yt*HHHHHHHHEHHEHCHHCHH}HEH8H}HEH0HHHHH}Yt*HHHHHHHHEHHEH}!HEH@hHH}+H=e)H^)8HEH(HL#xHtwHcH EHEHpH}HEHHEHEH}HtsHHHAAEEfDEHMHUuH}txH}wHEHt2xH]UHH$0H8L@H}HuHUHEHуHEHE@ HE@HE@H}HEHpt E H}jjHHHAAEE@EHMHUuH}HEHhHEHpH}pHEH8`H}hHEH0XHXHxH`HEH}6Nt$HxH`HEHxH`HExMHEHxhHEHEHhHEHpH}pHEH8`H}hHEH0XHXHxH`HEH}vMt$HxH`HEHxH`HExMHEHxhHEHEHUHMHuȋ>x9|:}8}HxHEHEHEH}ZHE@XHE@\HcH!HH!H ƋXHcH HH!кH!H H}eHEHE@XHE@\HcH!HH!H ƋXHcH HH!кH!H H}dHEHEHxHEHEHEH@ Hp*U*x*pEt"*U*|*tEt0EEEHE@t;HEt+HEHx HuHEEEEHEHEHE@tEHE苀t6HEHx HuHEE;E}E܉EEEHEHEHE;E}gHE@tZHEtJHEHx HUHuE;E}-E܉EEEHEHx HUHuTHEHE;E~yHUEHEU؉P HUEԉBHUEЉBHEHUHPH}eHËuHHHHxHPHUHUHxHBHEHB D;e2HEx EEH8L@H]UHHd$H]H}uH}3eHËuHHHUxtt&WHP$HHUHPHHUHUHUHU3HP$\@EHP\EHUHUHUHUEMH]H]UHHd$H]LeH}uHUHMH}wdHËuHHIA$u4AD$u$ID$uID$$t ECHExt#ID$HYEID$$HYEAD$\EEA$\EEHEHEHEHEHUHEHHEHBAD$XEEA$XEEHEHEHEHEHUHEHHEHBgID$HEI$HEHEHEHEHUHEHHEHBID$$HHEID$HHEHEHEHEHUHEHHEHBEEH]LeH]UHHd$H}HuHUHEHEH]UHH$HH}HuUMEMH}pH}SbHHHHcHHEHEHcHEH|HEH;E0SHE0H}fEHE0H}NdEHEHEHEHEEMH}DEMHEHEHEHEHEHxh询HUHHxH"vHcHUEttQrH}`gHHE0EHJH}AgHHE0EH+N/E\EE\E HH(H H0(HY80HY@8@HE0H}!E\EE\EHH(HH0(HY80HjY@8@HE0H}xHEHxh蕼H}KHEHtxHH]UHHd$H]LeH}EHOHHEH}_HHHAAEEEH}K_HËuHHHUxtt&WHP$HHUHPHHUHUHUHU3HP$\@EHP\EHUHUHUHUMYMEYEXEMYMEYEXQEf/Ez vEEED;eH$f/Ez E^EEH};^HHHAAEEDEH}^HËuHHHUxtt&WHP$HHUHPHHUHUHUHU3HP$\@EHP\EHUHUHUHUEYEEEYEEEMuH}D;e7H]LeH]UHHd$H}HuHEHhHuHEHhHH}IH]UHHd$H}uHEx;EtHEUxH}HH]UHHd$H}HuHEHpHuHEHpHH]UHHd$H]H}uEMH}IbHËuHHHUxtt;HHHUHHP$HMH #XEHP@XEHP$H]H]UHHLHHH=[bH5LHH=[KH5LHH=[4H5]LHH=:[H]UHHd$H[HEHu1H= mH]UHHd$H}HuH}viH}HEH@H]UHH$ H}HuHUH}uHEHUHRhHEH}/HUHu xH:vHcHUHEHUH}1HEHLEH >H=BKuHUHH}(TH}趙HEH}tH}tH}HEH xHEHtlHhH(I xHqvHcH u#H}tHuH}HEHP`E x x; xH HtxxHEH]UHHd$H}HuH~HEHUHHHEHH}1[ H}tH}tH}HEHPpH]UHHd$H}HHtTHEHE11HEHUHEHEHEHEHEHHEHHUBH]UHHd$H}HuHEHH;EHEHut"HEHHpHEH4{HUHEHHEHt"HEHHpHEHUzH}HEH@H]UHHd$H[HEHU\HEHuH=)liH]UHH$pH}HuH}eHEHHEHHu}HEHH}HXHHxKHHUH@HEEf/EzuEf/Ezu0tAHH=rK jHUH0H=(H(8HUH(HEH(HEH HJ8HB@H=(H}(8HUH8HEH8HUHHA8HQ@HMHKHHHBHH}(H}BHEƀHEfǀ HEǀDHEH}tH}tH}HEHxHEHtlHhH(wHvHcH u#H}tHuH}HEHP`w6xwH Htx[xHEH]UHHd$H}HuH~HEHUHHHEH0&HEH(HEH8H}1H}tH}tH}HEHPpH]UHH$@H@H}؉uUMDEHEHHE؀HUHHEHHEHEHHUHHEHEHcHcUH)H*`*EXHXHhH`HpHhHxHpHEx\EEE\EEHEHEHEHEE^EEE^EEHUHEHHEHH]HE؋D;E~HEHHXHH`u}qHE*`*X*E )t"*d*\*E(t0t ƃƃHE؀t8H}HEHHUfHE H}HEHDEMUuH}脓H@H]UHH$H}u؉UЉMHEHHEHEHHUHHEHEHHPHHXHEHcHcEH)H*(*E H H0H(H8H0H@H8HH@\P`H\XhH`HpHhHxp^EEx^EEHEHH}HXHHEHHUHHEE\E@E\EHH@HPHHHXEXP EXX(H HEH(HEHEHHpHHxE\pEE\xEHEHPHEHXEXP EXX(H HEH(HEHHuHHEHHUHEHHEHMȋUЋuH}钕H]UHHd$H}؉uUMDEHE؀tHEH}HEHHEƀDEMUuH} H]UHH$H}HHHEHHu諨HEHH}HXHHKHH@H@HHEf/@zuEf/Hzu0tMH^KHBH@HBHHEf/@zuEf/Hzu0t0tH}HuHHxHuHHuHxE*THuH}ETHuHxETHuH}ESHxH@HEHHHEH0HEH80\@h8\HpH{f/hzH`f/pzHE*HE*HH HH(H H0H(H80^h@8^pHHUH@HHHHHMHKHHH@HHE؀AHUHEf/zUsSHUHEHHHUHE*HEpY\HYQHUHEHHHUHE*HEhY\HYHUHHHHHxHHEHY0Y8H0H@H8HHHUHHHH\@\HHUHHHHHHuHH?H@HHH@HTHHH\HE؀@toHEHdHEH@0HEHHEHHTH\腹HEH@dHEHHEHH(豵HEHH(1HEHH(H@H}HEHH@HHH@HHHEHHEHHxHEHH(HEHH(H@HEH(HEH-HEHHTH\;rHEH8HEH-HHuHHYH@HHHUH@HHHHHEHHHEHqH]UHH$pH}HHPHHEHHEHEHPHHEHHEEYEEEYEEHEHEHEHEEXEEEXEEHEHEHEHEHEH@HHUHHEHEHPHHEHHEE YEEE(YEEHEHEHEHEEXEEEXEEHEHE HEHE(HEH@HcEH-H)HEH@HcE(H-H)E H-EH-@eHEHUHEHEHEHEHEHUH]UHHd$H}HuHEHH;EHEH0j[t"HEHHHEH0`HUHEHHEHt"HEHHHEH0_HuH}H]UHHd$H}fuHEf f;Et@HUfEf H}HEHtHE H}HEHH]UHHd$H}HuHEH(H;Et4HEH(HuHEH(HH}HEH@H]UHHd$H}HuHEH8H;Et4HEH8HuHEH8HH}HEH@H]UHHd$H}@uHE@:EtHEU@H}HEH@H]UHHd$H}@uHEA:EtHEUAH}HEH@H]UHH$ H}HuHUH}uHEHUHRhHEH}7HUHuwHvHcHUHEHUH}1H}HEH` HEH(LEH xH=KWVHUHHHEǀHEH}tH}tH}HEH"wHEHtlHhH(wHvHcH u#H}tHuH}HEHP`wXwwH Htw}wHEH]UHHd$H}HuH~HEHUHHHEHHFԌHEH@6ԌH}1+H}tH}tH}HEHPpH]UHHd$H}HuHUHMLEHMHKHHHBHAHMHoKHHHBHAH}ޕEHcEHHEHcEHHE}tHEHEEHEHE؋4EHE؋0EEEEEEEHUHEHHEHB}t HE؋0)EHcEHcUHHEHc4H)HH?HHH}u@HEt2HEHc@HHEHEHcHHE}tHEHEEHEH}HEH EHcUHcEHHcUH)HH?HHEЀ}tSEẺEHEH(HPE)ЉEEEЉEEԉEEĉEHUHEHHEHBREẺEHEH(HPEԉEEԉEEЉEEEEĉEHUHEHHEHBH]UHHd$H}uH} ‹uH}HEH`tHEHhUHuHE`H]UHHd$H}uHEHptHEHxUHuHEpH]UHHd$H}uHEHtHEHUHuHEH]UHH$HLH}H=KH~ŮHEHUHuXwHvHcHUHEH(RHEH(1 @HHEIHHhH(wHvHcH uj\fDLCHEHEHPt/EHEHXLEHMHUHuHEP}u HuH}ZLCuwLI$P`H Ht wtwHEHteHhH #wHKvHcH`uH}ό/ww%wH`HtwwwHEHLH]UHHd$H}ՔHEtHEH}HEH H]UHHd$@}@uUE}t E}t E }tEEH]UHH$HH}ЉuHUHMDEHEHhH(wHvHcH 6HEHt-HEHDMHMLEUHuHEHEH(H} yHcHHHcEHH|HH;0H}EؕEHEHHuHUHEHHxHEHEЋ8uH}%HHA[HڋEHE@<HE@=0+EUEЉEx*HËuH.HHHEED*HHuUHHHUH0LEHMHuHUH}*HEti)HH$HEHzHLELMHUMHHPEE}tEHEHU}t MHEHH(HEHH(H@HEHEHH=S*HHtHPH}CwHEH(HPHH}HEH`@uH}HEHHEH@uѝHHUHMHuHHHcEHcUHHEHH5HEHHHcH)HH?HH]H}pՕ~HEH@uEHp(HEHHEHHEHEH@u HH(Egp+uHEHUHEHH@HEH@uǜHH(HEHEgpUHEHHwH}lwH Ht+wHH]UHH$pHxH}uHE8HEHEH@HEHH1HAHQHUHuwHvHcHUzHEH@UÃ|aEDEEH}HEHt3}}HEx`tEEE;E@H}HEH;]nwHEHHHMHX HBHJHEHtwHxH]UHHd$H]H}uUHEH(ynuH}]HHHEuH}?HHHEuH}!HËuHHuH}HËuHHH}8HEH(蘉H]H]UHHd$H]H}HuHEH@ TÃ|)EEEH}tH;Et ;]EEH]H]UHHd$H}uH}3HEHtHEx`tEEEH]UHHd$H}uHEH@u]HEHt&HEHp H=%WT蠿wtHEH@ HEHEHEH]UHHd$H}HH@RH]UHHd$H}HuUHEf8 u[EuTHEtDH}HEH( |/H}HEH( H}HEH HEfHuUH}H]UHHd$H}uHUuH} H}HEH EHE苀tEHEE;E~UUHEHEt6HsHcHHEHEHcHEH;E~HEHEHUH]UHH$H}؉uUMDEHEƀ<HEǀHUH@EwHmvHcH8}EHcH!HH!H EHcH HH!кH!H HMUuH}^EuH}觘H(H0H(HEH0HELEHMHuHUH}HEuHEH(HEH0*E*0*(&t"*E*4*,t0tuH}HEH HEkHEH(HEH0*E*0*(t"*E*4*,t0tHU؋EuH}HEH wDEMUuH}CqH8HtHtwHDž8H]UHHd$H}Hƀ=H}PuH]UHHd$H}Hƀ=H}puH]UHHd$H}؉uUMDEHEƀ<DEMUuH}etH]UHHd$H}HuUu HEH(H;EuHEHǀ(UHuH}/H]UHH$HH}H@PHEH H=ui0訵HEHUHuwHvHcHUHEHHEHHÃ|4E@EEH}Dvt uH}褶;]HEHHEHHHEH(HEH(HHHEH@H}LHUH@HEH(HPHEH@HEH@菒HHHhH(wH賲vHcH tH HEHp(HEHHUHEHHXEHEHp H=PT莸wtuH}tuH}sHCJuwHHP`H HtwHEHtHEHHuHEwH}ƿwHEHƞHEHtHt2wHEHH]UHHd$H}HuHH}HEtFHEH@uPHEHuHEHHH}HEH@H]UHHd$H}HuHH=e'LHwtHEtOH}pHuH=uNTwt$HEx`tHuH}5H} H}H]UHHd$H}uH}ĕH}HEH@H]UHHd$H}HuHEH(H;EHEHH?t"HEH(HpHEHHDEHUHEH(HEH(t"HEH(HpHEHHeDHuH}H]UHHd$H}uUEH}HEHHE@`:EHEHH1H@HPHUHuwHvHcHUu@uH}HEHwHEHHHEHHQHAHEHtNw}tHuH}KH} H}HEH@H]UHHd$H}uHE8;Et,HEU8H}H}HEH@H]UHHd$H}HuHUHUHPHEHXHEHEH;EuHEH;Eu0u#HUHEHPHEHXH}pH]UHHd$H}HuHUHUHHEHHEHEH;EuHEH;Eu0u#HUHEHHEHH}H]UHHd$H}uHE;Et5HEUH}vH}mH}HEH@H]UHH$HLH}@uH[HEH}HEH( ~ H}HEH( H}HEоH=I10 2HEHUHxwH;vHcHpHEH(1(HH-IHHXHwHvHcHu6(Lh,HEHHUH}HEHXL,uwLI$P`HHtwH}HEHXHEH(^HXHwH6vHcHPH}HEHÃEE܃E܉H}HEHHEHcEHH}HEHHcHHcUH)H}t HHH}HEH;]H}"H}t HuH}H}HEH@ FwHEH(VyHPHtw wH}wHpHtwHLH]UHHd$HP[HEHu1H= .H]UHHd$Hp[HEHu1H=-H]UHHd$H}'H]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuwHvHcHUuMHEH}H[1%HUHEHB8HEH}tH}tH}HEHwHEHtlHhH(lwH蔨vHcH u#H}tHuH}HEHP`hww^wH Ht=wwHEH]UHHd$H}HG8H]UHH$ H}HuHUH}uHEHUHRhHEH}9HUHuwH躧vHcHUHEHUH}1tHEHP(LEH H=ŁK`5HUHB0HEHP(LEH H=K45HUHB8HEH}tH}tH}HEHwHEHtlHhH(wHvHcH u#H}tHuH}HEHP`wFwwH HtwkwHEH]UHHd$H}HuH~HEHUHHHEHx09HEHx8,H}1H}tH}tH}HEHPpH]UHHd$H}HuHEHUHuwHvHcHUuUHuH}HEHx(t=H}!7wHEH@(HP 1H5<H}8wHUHEH0H}18wwH}6wHEHtwH]UHHd$H]H}HuH}&HEHxuHH=[薫wHHEHp(HHH]H]UHHd$H]H}HuH}%HEHxHH=[6wHHEHp(HH]H]UHHd$H}HuHEH@(H;EHEHx(t8HEH@(HHEHp09HEH@(HxHEHp89HUHEHB(HEHx(t8HEH@(HHEHp08HEH@(HxHEHp88H]UHHd$H]H}HuHHEHxhHH|HUHugwH菣vHcHUu&fHxHEH@(H;Et3HuYwHHP`HEHtHt8wHEHEHxhHHuHqHuH}DH]H]UHHd$H]H}HuHHEHxhHHHUHuwwH蟢vHcHUu@2fHHEH@(H;EuH}aHEHxhR#3HxuOwHHP`HEHtHtwHEH]H]UHH$ H}HuHUH}uHEHUHRhHEH} HUHuwH躡vHcHUukHEHUH}1HE@`HUH=[ HUHBhHE@xHEH}tH}tH}HEH?wHEHtlHhH(wHvHcH u#H}tHuH}HEHP`wuwwH HtwwHEH]UHHd$H}HuH~HEHUHHHEHxhiH}1.H}tH}tH}HEHPpH]UHH$@H@LHH}H[HEH[HEH[HEH[HEHExxHHEHxhHH/HUH`wHŸvHcHXHHEH@(HEEDEHEUPtHEHuHEHuiHEHgHEuH}HEH H}ƙI@0LHEHH5qHEH@}\H,wHHP`HXHt@wHEHxhHHDHUH`RwHzvHcHXHXHEH@(HEEDEHEUPtHEHuHEHzHEHH}TEHDȋ;T~TETHEHH}誫TEHD؋;T~TET؃}GHrwHHP`HXHtwHEHxh&HHHUH`wHvHcHXfDHHEH@(HEEDEHUEBtsQHEHu\HEHt5HEHH}诬EċEMTȋDg4+uH}螴}rHhcwHHP`HXHtwH@LHH]UHHd$H}uHE@t;EtHEUPtH}H]UHHd$H}HuH}H}}H]UHH$H(H}HuHHEЀx`HEHxhaHHlHUHh0wHXvHcH`H8HEH@(HEHHEHXHzKH HPHRHXHH@HPHH@f/PzuHf/Xzu0҄iHkzKHJHPHRHXHPH@HPHH@f/PzuHf/Xzu0҄t0҄HEu5HEH;Et+H}H@nHH@HH}譖HEЋ@ptt.tkHEHHXHH}tHEHXHEHXH@HHH@HH}/@HEHXHEHXH@HhHH@HH}HU(wHHP`H`Ht虿wH}H(H]UHHd$H}HuHUHMHHHUH HMHHMHUHEHHEHBHEH@HEHEH@HEHEHEHEHUHEHBHEHBH]UHH=TH [HH5^TH5[H=^TCH=9[H LHH5hTH]UHHd$H}HuUuH}HMtLHp)w H}1)wH]UHHd$H}HHUHHHLEHNHM1ɾH=X[H]UHHd$H}1HH=lbT违w@H]UHHd$H]LeH}H[IH}1*HH=wwHLMHiMHM1LFHEH]LeH]UHHd$H]H}HuHUHH=m^TwHHuH=r\TwHHH]H]UHH$pH}HEHUHu&wHNvHcHUu]H}'wHrLH@HxH HEHEHH@ HEHx1ɺH}+wHuH}VxwH}8'wHEHtZwH]UHHd$H}Hl]TH]UHHd$H]H}HEHUHuEwHmvHcHUuUHTH@gX|@EfDEEH~TH8Hu>HuUH};]wH}_&wHEHt聻wH]H]UHHd$H}HHH=ZT-wH@hH]UHHd$H]H}HuUHߐTH8=HHUHHEH]H]UHH$ H}HuHUH}uHEHUHRhHEH} HUHuwH vHcHUujHEHUH}18HEHPhLEH 5H=nK!HUHBxHEH}tH}tH}HEH萸wHEHtlHhH(?wHgvHcH u#H}tHuH}HEHP`;wƹw1wH HtwwHEH]UHHd$H}HuH~HEHUHHH}HEHxx谟H}1uH}tH}tH}HEHPpH]UHHd$H}HuHEx`tHEHxhtH}HEHH]UHHd$H}HuUu&HEH@hH;EuH}@0]HEH@hUHuH}H]UHHd$H]H}HuHHEHH}HcHkHHEHCHEHqHEHSHEHSH]H]UHHd$H]H}HHxhtQHEH@hHÃ|4EEHEH@hHueHH};]H]H]UHHd$H}@uHE@`:Et>HEUP`HEHxhtHEx`t H}  H}0H}1H]UHHd$H}HuHEH@hH;EvHEHxx@ tHEH@hHHEHpx%HUHEHBhHEHxhtHEH@hHHEHpx$H}dHuH}7H]UHHd$H}uHE@p;Et(HExpu H}QHEUPpH}1H]UHHd$H}EHEf/EztHEHUHH}1H]UHHd$H]H}HuHHEHH}HcHkHHEHoCHEHUHEHlCHEHTCH]H]UHHd$H]H}HHxhHEH@hHHcHEH5[HEHHM6wHEH@hHrÃ|5EfEHEH@hHuUHH};]H]H]UHH$H8L@H}H@PHEH@hHEHHtH@HHu H}HEHxhHuaHEH@hH}HXHHEHf/zuE\EEHEHHEHEHEE\EEf/EzsHEHEEXEEHE؋@ptHEHEHEHEHEH@hHÃEEHEH@hHu議H`HH`H,#HHHxHHHEHEHxhlAAEEEHEH@hHHumHH=S,TޑwuHEH@hHHu?Hhx`tQHhH;`ujHH=LwH]UHHd$H}H}HH]UHHd$H}H}EtH}iHH=%LXwtԊEH]UHH$pHxLeH}HHHEHHPhH=[HH9IHHUHu[wHyvHcHUu,fDLHEx`tE4LuGwLI$P`HEHtHt负wHEEEHxLeH]UHH$pHxLeH}@uH}XHÀ}t1HHEHHEHHPhH=[HHIHHUHu3wH[xvHcHUu-fDLHE@uH}qLuwLI$P`HEHt葞w}tHH}HxLeH]UHHd$H}1H]UHHd$H}uH}gH]UHH$PHXH}EMHuUH}wHUHxwHBwvHcHpu,H}HËUHuEf)EH{EwH}ZwHpHtywEHXH]UHH$H}HuHUH}uHEHUHRhHEH}HUHuRwHzvvHcHUuoHEHUH}1KH١HpHHxHpH}HEH}tH}tH}HEHwHEHtlHXH誗wHuvHcHxu#H}tHuH}HEHP`覚w1w蜚wHxHt{wVwHEH]UHHd$H}uH}SHH]UHHd$H}uHEHxuH]UHHd$H}uUHEHxUuH]UHHd$H}H@0HUHH( H]UHH$ H}EHTf/EzEHI(HJ(]HEH}HXHE\EYEEE\EYEEEXEpEXEhE\E`E\EXHXHxH`HEHhHEHpHEHHxHH}BpH]U]UHH]UH'H5[H=)Uf贻wH]UHHd$H}HuHH=EKHMyw~HEHHEHHEHHHEHHEHHEHHHEHHEHHEHHHuH}H]UHH$ H}HuHUH}uHEHUHRhHEH}&HUHuwHrvHcHUHEHUH}1贾HEǀHHxHxHEH1_H}H5ܝ_HEH}tH}tH}HEH胖wHEHtlH`H 2wHZqvHcHxu#H}tHuH}HEHP`.w蹗w$wHxHtwޘwHEH]UHHd$H}HuHEHt[HEHx`tHEHx`HuHEH@`H 1HEHt#HEHHuHEHH H]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuwHpvHcHUHEHUH}1HDžxH5 [HEHHxbwH="STE|wHUHHH=ST&|wHUHHB1ҾH=[HUH1ҾH=[vHUHP1ҾH=[XHUHXHEH}tH}tH}HEHwHEHtlH`H 谐wHnvHcHxu#H}tHuH}HEHP`謓w7w袓wHxHt聖w\wHEH]UHHd$H}HuH~HEHUHHHEHH8C|wHEHHx/|wHEHzHEHPzHEHXzH}1$H}tH}tH}HEHPpH]UHHd$H]H}utt*[HÙHHEH}^ HH} Hp H薰EMHEHEHEHEH} HH} Hp H[EMHEHEHEHEH} HPHUH@HEH} HPHUH@HEH} @HHEHx`UNHEHE*@E*EHUHUHUHUH}! @HHEHx` NHEHE*@E*EHUHUHUHUHE tDttgE\EHfTEKE\EHfTE/E\EEE\EEH}m]EH]H]UHH$H}HuHtrwHEHDžHUHPfWEݝ}t HEHt  HHEH辽HuH}׌HHcHH?HHHcH!HH!H HcHH?HHHcH HH!кH!H HMH(ݝH(ݝHEHŠE0Јt XEEHEH*MÓHH}֌HEH}HLHEHLMHMHUHu,wHEHtH}HEHP0HHtXwHuH}+H}1HEH裋wHvH}NmwH5KKH}wHHHtwH]UHHd$H}HuHUHEx txHE@DEHE@0EHcH!HH!H EHcH HH!кH!H HE@HEHpHUH}E0A H]UHHd$H}HuUHMLEHEHǀEsoHuH}HEH(HMHEHHQHHAHUHE؋BHEHHUH}>uHEHǀHUHEHHB HEHu.HEHx`HuGEMEMH}謨HEHu}tEEEH]UHH$0H}HuHEHUHuBwHjdvHcHUH}}`݅`۽PHPHpHDžhH}B`݅`۽@H@HEHDžxHhHEHHH}1ΊHuH}vHEH(tHEH0HUHuHE(脈wH}vHEHtwH]UHHd$H]H}HHHEHTwHHEH]H]UHHd$H}HHH]UHHd$H}HuHH}HUHHH]UHHd$H}HuHH}HUHHH]UHHd$H]H}HuHEHUHuAwHibvHcHUH}ѮHEHtiHEHxtHEHxH}iw0HEHx`tHEH@`HH}hw 1H}hwHuH}HEH8H}H@ H}HHE HuH}M1tH}HEHHEHHEH)SwHH}H]UHHd$H}HuHEHXH;Et0HEHXHuHEHXHHuH}H]UHH8LHHH=["H]UHHd$H}HuH}VHEHt8HEHHU88HEHHU<<HEǀ8HEǀ<H}kH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHu{wHYvHcHUHEHUH}1HEǀ8HEǀ<HEHLEH H=3KAHUH1ҾH=@=H@=HUHHEH@0HEHHHUH5HEHHEHHHEH}tH}tH}HEH}wHEHtlHhH(WzwHXvHcH u#H}tHuH}HEHP`S}w~wI}wH Ht(wwHEH]UHHd$H}HuH~HEHUHHHEHdHEHdH}1H}tH}tH}HEHPpH]UHHd$H}HuHEHuH}H567KH#HEHHuHEHHH]UHHd$H}HuHEHuH}H56KH#HEHHuHEHH H]UHHd$H}HuHEHuH}H5v6KH#HEHHuHEHH(H]UHHd$H}HuHEHuH}H56KH#HEHHuHEHH0H]UHHd$H}HuHEHuH}H55KH#HEHHuHEHH8H]UHHd$H}HHuHHHE$HEHHEHHPEEH]UHHd$H}HHu E"HEHHEHHEEH]UHHd$H]H}uHEHu HEH}u+HEHuHEHHHEH:KHEHuHEHHHHEHPH誡wHEHPHEHEHt'HEHHEHPUHuHEHEH]H]UHHd$H}HH]UHHd$H}HuH}ᏌHUH)ЉEHED;Ew H}@6HEUHH?H*s HXHEDH*^H-EHEHHUH9tHEHUHEU艐HH}pH]UHHd$H}HuHHHHE+HEHHH*HEH*^EEH]UHHd$H}HuHH;EuHEHEHH;EttHEHtHEHHx`HEHHUHEHHEHtHEHHx`HEHH}1iH]UHHd$H}uH}H`~H=KhHH5HuwH]UHHd$H}uH}gH@~H=,K?hHH5H=uwH]UHHd$H}H@0HHEǀHE@HEHUD;@HEDH*HE@H*^H-HU挌HUHE@HEHHEHHHEH@HEHHH]UHHd$H}@uHEH@0HEHHHEǀH}t'HEHtHEHHuHEH]UHH$ H}HuHUH}uHEHUHRhHEH}KHUHurqwHOvHcHUHEHUH}1HEǀ` HDžxH5l#!HEHlHxHBwHDžxH5>#!HEHtHxBwHEH}tH}tH}HEHswHEHtlH`H pwHNvHcHxu#H}tHuH}HEHP`swuwswHxHt^vw9vwHEH]UHHd$H}HH@u E#HEH@HEH@`HtH@HEEH]UHH$@H@H}uH5KH`swH5 KHp`wHUHuowHMvHcHUHEHPHEHEH@uAHEHd1IvHUH6zHHPHUH!zHHX&H5sKHp觕wH`KHEH@HXHGKHXHH`HcEHH<H`4wH`HpHwHpHEHdH3vHCHEHEH@Ht!HEH@HEGEHEHHt6HEHHHt!HEHHHELEHUHEHPHUHEHXqwH5HKH`|wH55KHpiwHEHt{rwHEH@H]UHHd$H}H]UHHd$H}uH}gHxxH=DK?bHH5H=owH]UHHd$H}uH}HXxH=ܾKaHH5HnwH]UHH=%SH [H'xH5SkH=KH [HxH5WKJH=kKH l[HwH5\)H]UHHd$H}!H]UHH$ H(L0H}HuHUHDž8HDžHHDžhHUHxkwHJvHcHpNH}1HH=S`PwHEH@hHEH}H5)wUH}HEHÃEEHhvHcEH@H@HH@v1H@HHv01HHqvHHHPHvHXHEHumIH8LI$H8H`HP1ɺHhcvHhH}U;]mwH8 vHHvHhvHpHtowH(L0H]UHH$`H`H}HuUHDžpHUHuiwHHvHcHx>H}1HH=SaNwHEH@hHEHcEHhHhHHh;v1HhHpFv01HpvHpH}1Ht}vH}HEH½HcHHhHcEHhH|HhH;h0tDHEHukHHpHHHpHEH0H}1vHEH0H}1HbtvkwHpvHxHt;mwH`H]UHH$pH}HuHDžxHUHu/hwHWFvHcHUxHuHUvEfEfEfv=MHHuHx)vHxHUvEfEfE}~uH}jwHxvHEHtAlwH]UHH$`H}HuHUHMDEDM1H=KH膦HEHUHhgwHEEvHcH`uH}HcuHcEH)HH?HHHH}"HcuHcEH)HH?HHHH} HEHx(u+HEHx8uHcEHcUH4HH?HHHcUHcEH<HH?HH݈HEHUH=pSHHtHPMHUH}E0莧IiwH}@RwH`HtjwH]UHHd$H}^ H]UHHd$H}HuUHMLELH]UHH$H}HuUHMLELMHEHEHEHEEċU)EEH}ܞHUHP7ewH_CvHcHHHEH@pEHEH(EHEH@XEH0HdwHBvHcHuXH}@HHHu1 HH:HuƌE$DEHUHMHuH}AgwHEH(uY)HEHuHEHHPHEHudHHthw.gwHcEHxM܋U؋uۈHHHHEHHEE$LELMHMHuH}Ⱥ0HHHtOhwH]UHH$PH}HuHUHMDEHDžhHUHx@cwHhAvHcHpH}HhHEHHHhtJ$H}HhHEHHHhLELMHMH}кHEHDEHUHMHuH}ewHh vHpHt?gwH]UHHd$H}HuHUE@EHMuHEUHDHDHuMHUEHDHD}rH]UHHd$H}EuUMH}1H5`[0H}E2H}؋u2H}@u<2H}@u1H]UHHd$EMU]E\EYM\MYXQEH]UHHd$EMU]eHl\EYEMYMXMHl\EYEMYMXMEMH]UHHd$H}HuH}/H]UHH$`HhH}HuHEH}1ɺH&HpH}1ɺ&H0H}&HEHxp.HEHh.tuHEHH0HUH2(HHEHxpHpHUHp (HpHHFHEHx0HHHuH}r#HhH]UHH$ H}HuHuHEHUHRhHEH}HUHu7_wH_=vHcHUubHEHEHxpHUH5[-HEHHUH5f[-HEH}tH}tH}HEHawHEHtlHpH0^wHwH]UHHd$H}GHUBHEH@HPHtHRHHEHc@H9EEH]UHHd$H]H}HuH=wHUHuXwH6vHcHUu\HEH@HtH@HHHEH5[HEHxHM)wHEHXHEHxO(wHHEHx0>H}1H}tH}tH}HEHPpH]UHHd$H}~HfH8t H}HfH]UHHd$H}HuHEH@0H;Et!HEHUHP0HuH}HEHH]UHHd$H}HuHH}HpHEHx@HuHEH@@HHEHx0HuHEH@0HH]UHHd$H}uHE@8;EtHEUP8HuH}HEHH]UHHd$H}HuHEH@@H;Et!HEHUHP@HuH}HEHH]UHHd$H}HuHH}HHEHpH=[\6wtHEHPHEHx@Hr0HH]UHHd$H}HuHH}HHEHpH=Q[5w7HEHpH=5[6wHEHEttEHEHHEHxHEHx Hu[HEHx@HuHHEH8HEHHEHx HuHEHx@HuHxHEHHEHxHEHx HuHEHx@HuH;HEH8HEHHEHx HuHEHx@HuHH]UHHd$H}uHE;Et"HEUHuH}HEHH]UHHd$H}HuH}֮H]UHH$ H}HuHuHEHUHRhHEH}HUHuOwH-vHcHUuKHEHEHPHEHx H5[0HEH}tH}tH}HEHTRwHEHtlHpH0OwH+-vHcH(u#H}tHuH}HEHP`QwSwQwH(HtTwTwHEH]UHHd$H}HuHEHxtHEHxHuHEH@HH]UHHd$H}HuHEH@H;EtFHuH}HEHHEHUHPHUHEH@HB0HuH}HEHH]UHHd$H]H}HuHEHX HuH7uHEHx HuH]H]UHHd$H}EMHEHEHEHEEMH]UHHd$H}EMEH YYEEHXYEEM XH]UHHd$H}EMHEHEHEHEEMH]UHHd$H}EMEMWH]UHHd$H}Hu*EE*EEHEHEHEHEEH'XYEEHXYEEMH]UHHd$H}Hu*EE*EEEMH]UHH$ H(H}HuHEH}1ɺH.HpH}1ɺH0H}HH}HEHxxHEHtxHEHH0HUHpXHpHEHxxHpHUH02H0HHlHEHxHHHEHHEH~HEHHHpHpHpHEHHMHpH0H0HHHEHHHHEHxxWHEHx0BtuHEHx0HMH0HpHpHEHxxHpHUH0H0HH#HEHHHHEHHEHx0~HEHx0HpHHpjHpHEHH0HH0>H0HHxHEH8HHHuH} H(H]UHH$ H}HuHuHEHUHRhHEH}CHUHugHwH&vHcHUHEH}1 HEHxxHUH5[HEHHUH5[HEHHUH5l[HEHx0HUH5T[HEH}tH}tH}HEHJwHEHtlHpH0GwH%vHcH(u#H}tHuH}HEHP`JwLw|JwH(Ht[Mw6MwHEH]UHHd$H}H,fH8t H}HfH]UHHd$H]H}EMuHEHxUHTHUUHTHUEMQHEHEHUHTHUUHTHUEM|QHEHEH8UHTHUUHTHUEMGQHEHEHUHTHUUHTHUEMQHEH]EMPHǺH &EH]H]UHHd$H]H}HuHEHX0HuHuHEHx0Hub H]H]UHHd$H}HuH'vHUHuEEwHm#vHcHUuwH5g[H}^ wHEHt@wHpLxH]UHH$ H}HuHuHEHUHRhHEH}HUHu:wHvHcHUuLHEHUH=ij[HUHB(HEH}tH}tH}HEH=wHEHtlHpH0R:wHzvHcH(u#H}tHuH}HEHP`N=w>wD=wH(Ht#@w?wHEH]UHHd$H}HuH~HEHUHHHEHx($H}16wH}tH}tH}HEHPpH]UHHd$H}HuUMHEHx UHuH}HuHHEHx UHuHEHx HuHH]UHHd$H]UHHd$H}EMuHEH}H0H]UHHd$H}HuHEHx tHEHx HuHEH@ HH]UHHd$H}HuHEH@ H;Et6HuH}HEHHEHUHP HuH}HEHH]UHHd$H}HuHUHEHUHE@BHUHE@BHUHEH@HBH}H]UHH$PH}HuHUHMHEHxHEH@H@ HEHH@HEHUHE@HDHhHUHE@HDH`HEHhHEHUHE@HDHhHUHE@HDH`HEHhHEHE8tHE@HB(]EU]EM#EHBf/EzsHE@^EEHExtHNB\EEHE@:t%'HB\EYEMYMXMHA\EYEMYMXMEMH}HEH`hH`HEHhHEEMH}HEHHpHH}HEH`hH`HxHhHEH A\EYEMYMXMH@\EYEMYMXMEMH}HEH`hH`HEHhHEEMH}HEHHpHH}HEH`hH`HxHhHE&H@\EYEMYMX`H?\EYEMYMXh`h>HpHH}HEH`hH`HEHhHEEMH}HEH`hH`HEHhHEHpH}HEH`hH`HxHhHEH>\EYEMYMXxH>\EYEMYMXMxMH}HEHHpHH}HEH`hH`HEHhHEEMH}HEH`hH`HEHhHEHUHEHHUHEHB HUHEHBHUHEHB(*pHE@*tHE@0HUHxHBHUHEHB8H]UHHd$H}HxEEH]UHHd$H}HuHEHU:uH}t HE*YEH-HUH}HEH@H]UHH$HH}ЉuHUHMDEHDžHxH8WwHuHcH0N HEHt-HEHDMHMLEUHuHE #EE#E؃uHEHH( ԖH}ut'HEHHuHUHEHHxHEЃt5HEЋt tt (EEE HEЋEHcEHcUH)HEH} HcH(HcEHkHH?HHHH HEЃt H H(EE̅t tt;EE0E+EE"HcEHcUHHcUH)HH?HHEȋEEEăEEEEE}tHEHH藼\#Et1HEHH HEHH\!HEHHHEЋ9HEHHHEHHHHHEHHHE@e˖HEЋuH}\EtlHEHH(HҖHEHH(1HEHH(H@HEHEgD@MċUuX}tHEHH(і!HEHH(HEЋіHEHH(uHEHH(H@}t} u"HEHH(HEHҖHEHH1HEHHHP}#EtHEHH6HEHHHEHDEMċUuHEHHHEHEgD@MċUu̳HEHEgPDEMċuz̳HHEHH茹HEHDEMċUuHEHHHEHH(HEHH(H@uH}HEHHHEHHHPHEHHxXu"HEHHHEHTHEHHHEHHHHHEHH(HEHH(H@HcUHcEHHH?HHEHEHDEMċUuʳHEHH1HEHHHPuH}HEHHHEHHHHHEHHHEHHH`HEHH(HEHH(H@HcUHcEHHH?HHEHEHDEMċUuɳE̅tt EEE EċU)ЉEȋEE,EȉE,EEĉEE}t E HEЋEE$uH}AHEHHDHpHEHHUHMH};HEHH(HEHH(H@HEHEЃE̅tt iEăE^EgXHEHUHHEHHHHEHHEHH)Ã]#EtHEHH DEHUHMuH}< wHnvvH0Ht wHH]UHH$PH}HuHUHMDEDM1H=F6KHEHEHUHhmwHuHcH`*uH}gRHcuHcEH)HH?HHHH}rQHcuHcEH)HH?HHHH}]RHEHx(uʖHEHx8u-HcUHcEHHH?HH\HcUHcEHHH?HHXHcH!HH!H \HcH HH!кH!H HMHUH=SPHHtHPMHUH}E0FTwH}KvH`Ht wH]UHHd$H}u} EEEEH]UHH$pHpH}HuHDžxHUHuwHuHcHUFHEHHtH@HHHEHHEHHH}s0vH}1H}vH}01tvHEHvHÃEEHEHHpH'HxHEHHcEHhHxHHh/v1HxHxS}v01HxӑvHxHEHpH}1ɺwv;]X H}1;svfwHxrvHEHtwHpH]UHHd$H}u} E%HEHuHEHHEEH]UHHd$H}u} E EEEH]UHHd$H}uu E%HEHuHEHHEEH]UHHd$H}tHEEH}(ÓEEH]UHH$ H}HDž(HUHuwHuHcHUHEHEḢHxH8wHuHcH0HEHHEHHEEE uHEtK}uHEt5uH(%H(HEHHEHHP} rwHEḢHEH0HthwwH('pvHEHtIwH]UHH$ H}HDž(HUHuSwH{uHcHUHEHEHAˇHxH8 wH1uHcH0HEHHEHHEEEuHEt8uH(+H(HEHUHEHHX}rwHEHʇHEH0HtwfwH(nvHEHtwH]UHH$HH}HDž(HUHuvHuHcHU<HEHEHɇHxH8vHuHcH0HEHHEHHHEEEHcEH H HH )v1H H(wv01H(EvH(HEHHEHHP;]wHEHȇHEH0HtIwwH(mvHEHt*wHH]UHH$H}HEHUHu&vHNuHcHxHEEH=KHEH`H vHuHcHuuEDEEH[4uH}H}tUHuH}HEHX}|HEHHuHEHHrvH}ivuH} HHtwGvH}kvHxHtwH]UHHd$H]H}HuHEyt2tNH}HEH H}EH}HEH H}fEeH}HEH H}EDH}HEH E܃u1$HEHuHEHHÉ]HuH}EHEt9tt!u6uH}(uH}8uH} uH},H]H]UHHd$H}uHE;EtHEUH}HEH@H]UHHd$H}HuHEHH;Et4HEHHuHEHHH}HEH@H]UHHd$H}uHE;EtHEUH}HEH@H]UHHd$H}@uHE:EtHEUH}HEH@H]UHHd$H]H}uHEHEtUt&t9zuH}HUbuH}HUJHUE8}u1$HEHuHEHHHEuH}4nH]H]UHHd$H}uHE;Et_HUEHEu4H}HEH H}[EH}uH}H}HEH@H]UHHd$H}uHE;EHEUHEmt,tEvH}HEH}oXH}HEH}:H}6HEH}CH}HEH}H]UHHd$H}uHE;EeHEUHEt0ttu*H}H}/H} H}IH}HEH@H]UHH$HH}HuHDžxHUHuHvHpuHcHUH}HxQHxH}uvHYH= DHEH`H vHuHcHHuH}|RH}HEHHcHH5UH(HEHHvH}HEHÃtE@EEH}HxHEHHxHu$tHEHHcMEHEHHcE;]H}HEH@vH}vHHtovvHx.dvHEHtPvHH]UHHd$H}uHE;EtHEUH}HEH@H]UHHd$H}HuHtHEHH}H]UHHd$H}uHEHHEHHHcHHEHcEHEHH}1H;u~HuH}HEH H]UHHd$H]H}uHEHHEHHÃ|@EDEEH}$;EuuH}HEH ;]H}HEH H]H]UHHd$H}uHEHHEHHHcHHEHcEHHEHH}1H;u~HuH}HEH H]UHHd$H]LeH}uHEHHEHHÃEDEEuE1%HEHuHEHHAD;eu4HUEuH}HEH H}HEH@);]H}HEH HEǀH]LeH]UHHd$H}uHE;EtHEUH}HEH@H]UHHd$H}HEEH]UHHd$H}HuHH=[HMvt%HEHp(HEHx(`vHUHEH@0HB0HuH}w H]UHHd$H}HuH}OHEHxiH]UHHd$H}HuHEHp(H}ovHtHEHx(Hu8`vHuH}H]UHHd$H}EHE@0f/EztHEHUHP0HuH}CH]UHH$H}HuHUHMLEH}uHEHUHRhHEH} HUHxwvHuHcHpuaHEH}H[1IHEHUHP8HUHEHB@HEHBHHEH}tH}tH}HEH+vHpHtlHXHvHuHcHu#H}tHuH}HEHP`v^vvHHtvvHEH]UHHd$H}HuEH}JHH=[vHEHx(Hu1^vHEHUHP0H} HEH]UHHd$H}HHx@tHEHxHHuHEP@H]UHH$pHxH}HuH]vHUHuvHuHcHUuWH}BÃ|=EEEH}THEHx(HulvHt ;]HElvH}\vHEHtvHEHxH]UHHd$H}uH}FH]UHH$`H}HuH\vHUHuvHuHcHUulHuH}HEHuJHEHxHDžp HpM1HH=FHH5H?vHEH@0HE^vH}[vHEHtvEH]UHHd$H}uHUHЋuH}HEH]UHH$`H}HuEH}~[vHUHuvHuHcHUuwHuH}HEHuJHEHxHDžp HpM1HH=0{HH5H)vEH}H}=vH}ZvHEHtvH]UHH$ H}HuHUH}uHEHUHRhHEH}HUHuvHuHcHUu`HEHUHEHBHUHEHHBHUHHHB HEH}tH}tH}HEHZvHEHtlHhH( vH1uHcH u#H}tHuH}HEHP`vvvH HtvvHEH]UHH$H}HuHUHMH5\H1wHDžHUHPQvHyuHcHHmHEH@HEHEH@HEH0HvH/uHcHHUHEH@ HBHE@ HefWHE@H}H HHEHxhvHuHEHxfHEHx WHEHxHEH0HEH@HHEHxH蝙HH$HHD$HHD$EHEHxHEHp HEH@HHEHxH;HH$HHD$HHD$sEHEH@8cHEH@8>REf/EB<MEH}1_K"H}H HHEH8wfvHeHEHxVHEHx GHEHxHEHpHEH@HHEHxHHH$HHD$HHD$3EHEHxH5evHuMEH}1JCHEHxH5evHtHEHxH5 evHu MHH}1.JHEHxH5UevHtHEHxH5,=t,t4EH|ŰH525LvE.EH|ŰH5LvEEH|ŰH5LvEH}HEH@HtH@HcUH9~KEHUHcEH|=uEH|ŰH5KvEEH|ŰH5KvEOH}lDH}a9HUHcEt1H@UvH@EHtŰEH|Ű1fLvEHcUHEHtH@H9CvH@JvH}JvH5[H}wHHHtvH]UHH$pH}HuHUH}uHEHUHRhHEH}HUHuvH誸uHcHUVHEHUH}1zHEƀ HEHH5'2JvHEHH5JvHUH=۵[HԵ[HUHHEHtHEHHBSvHHEHHHHUHHUH=Δ[HUHLEH HEHH=4[wHUHHEH}tH}tH}HEH@vHEHtlHhHvHuHcH`u#H}tHuH}HEHP`vvvvH`HtvvHEH]UHHd$H}HuH~HEHUHHHEHǀHEHwvHEHgvH}1|zH}tH}tH}HEHPpH]UHHd$H}HuHH=[HMvtPHEHH}HEHH}HEHH}HEHH}iHuH}wH]UHH$H}EH5l[H} vHUHx6vH^uHcHpHeHHEHEHE9HXHvH uHcHu5HEHHu}u HEHE}u H*EEvHHtvvH5[H} vHpHtvEH]UHHd$H}HuHGvHUHu%vHMuHcHUu HEx`tH}oHuH}xvH}ԺvHEHtvH]UHHd$H}HuH}&HuH}yzH]UHHd$H}HHxhEEH]UHHd$H}HuH}H}H]UHHd$H}Hƀ H]UHHd$H}HuHEHHu{TvHt(HEHHuDvHEƀ H}nH]UHHd$H}HH@ HEEH]UHHd$H}EHEHEHbfTf/@ zt4HEHEHsbfT@ HEƀ H}H]UHHd$H}HuHEHHuCvHEƀ H}H]UHHd$H}HuHEƀ HEHHuHEHHH}8H]UHH$`HhH}HDžHUHu\vH脱uHcHUHE HEHH0HEHHLvHHEHHH18HUHHEHM'Ã|hEDEHEHuHEHP(HKvHHEHHHE@0豈;]HEHHxHEH-BvHEHHEHHEHHEHHEHHHEHxrlHEH`HrEHHEHDžx HxHKHPM1H=[NjHH5HdvHEƀ vH@vHEHtvHhH]UHHd$H}HuHEHHu{PvHt(HEHHu@vHEƀ H}n H]UHH$pH}HuHUH}uHEHUHRhHEH}_HUHurvH蚮uHcHUHEHUH}1HEHH5"-@vHEH H5+@vHEHH54?vHUH=[H[HUHHEHrjHEHH&IvHHEHHH݅HUH(HEH HHvHHEHHH荅HUH0LEH 'HEHH=[+HUHHEHHEHHEHHHEH}tH}tH}HEHvHEHtlHhHyvH衬uHcH`u#H}tHuH}HEHP`uvvkvH`HtJv%vHEH]UHHd$H}HuH~HEHUHHHEHǀ(HEHǀ0HEHvH}1MH}tH}tH}HEHPpH]UHHd$H}HuHH=[HͱvtgHEHHEH>=vHUHEHHHEHHEH =vHEH HEH EE}H(m}HEmXH]UHHd$H}HuHHH$HBHD$HBHD$EE}H:(m}HEmXH]UHHd$H}HuHHH$HBHD$HBHD$^EE<$.HEXH]UHHd$H}HuHHH$HBHD$HBHD$EE}HEH$fEfD$탌}HEmXH]UHHd$H}HuHHH$HBHD$HBHD$EE<$>HEXH]UHHd$H}HuHHH$HBHD$HBHD$NEE<$.HEXH]UHHd$H}HuHHH$HBHD$HBHD$EH(EHEXH]UHHd$H}HuHHH$HBHD$HBHD$EE<$HEXH]UHHd$H}HuHHH$HBHD$HBHD$NEE<$NHEXH]UHHd$H}HuHHH$HBHD$HBHD$EE<$莊HEXH]UHHd$H}HuHHH$HBHD$HBHD$EE<$螊HEXH]UHHd$H}HuHHH$HBHD$HBHD$NEE<$nHEXH]UHHd$H}HuHHH$HBHD$HBHD$EE<$^HEXH]UHHd$H}HuHHH$HBHD$HBHD$EE<$nHEXH]UHHd$H}HuHHH$HBHD$HBHD$^EH^EEE<$ HEXH]UHHd$H}HuHHH$HBHD$HBHD$EHrf/EzuHUHjHHBEEHEXH]UHHd$H}HuHHH$HBHD$HBHD$nEHUHBH$HB HD$HB(HD$FEE|$E<$ϋHEXH]UHHd$H}HuHHH$HBHD$HBHD$EHUHBH$HB HD$HB(HD$EE|$E<$ωHEXH]UHHd$H}HuHHH$HBHD$HBHD$nEE<$HEXH]UHHd$H}HuHHH$HBHD$HBHD$EE<$讉HEXH]UHHd$H}HuHHH$HBHD$HBHD$EE<$}HEXH]UHHd$H}HuHHH$HBHD$HBHD$~EHUHBH$HB HD$HB(HD$VEEf/Ez vEEHE@H]UHHd$H}HuHHH$HBHD$HBHD$EHUHBH$HB HD$HB(HD$EEf/Ez sEEHE@H]UHHd$H]Le*2HIL L&FH"L荈L FLFH LfL LFHL?L LFHLL LFHLL *LcFHLʇL SL<FHxL裇L LFHYL|L LFH:LUL LFHL.L LFHLL @LyFHLL iLRFHL蹆L L+FHL蒆L LFHLkL LFHaLDL ]LfFHbLL L?FHCLL _LhFH$LυL 8LAFHL訅L aLFHL聅H]LeH]UHH%rKHHH=p[8H5+rKHH=v[8H]UHH=jH [HwH5SH]UHHd$H}H1H+HH=SwvH1tH}H5.i=H]UHHd$H}0H]UHHd$H]H}HuH}B2HH=vHHuHHH]H]UHH$pH}uEHMHH=3[H ,[HHEHUHuvHuHcHxzHE`EH}@0蚃HEHhHE<HE8DEH}NH}HEH uHuH}}t H}@9脻vH}{vHxHtvEH]UHH$HLH}HDžHUHuvHuHcHUHwLH1ɾH=H HEHhH(蝷vHŕuHcH ^H}H5xH}UxHUH=Ee)H>e)HEHuH}HEH`H}HEHHEH HEHHEH0HEHH8HUH=6+<H/+<HIHuLI$`LI$I$V L(H}HEH E}t6HEHHHEHHHH}%&vPvH}GvH Htƺv1vH%vHEHt觺vEHLH]UHH$HLLH}HuHEHEHDžHUHuzvH袓uHcHxHEHHuHEHHHEHMH`H vH=uHcHHEHHEHHHEHgÃEEHEHuIM|LC@LdHuLFLeMtMd$HEH!gHcI9|@HuH6vHHEHHEHHP;]P+vHEH+H]HEHHHEHHHHu13vHHHtZvŶvH#vH}#vH}#vHxHt&vHLLH]UHH$0H0L8L@LHH}؉uUHMDEHDžPHDžXHDž`HUHxвvHuHcHpvHE؋UHU؋EHUHEHHE؋U H}HEHHcHHhH~ HhHEH]DeA#EEHEH$SHHILHEHSI1LHHH}uH5H{0HC0HH`8!vHcEHhHXHHh.u1HXHX9+v01HX?vHX1H5H`m"vH`H{0HC0HuHHD;eDeA*EEHEHQHHILHEHQI1L޽HHH}uH5jH{0HC0HH` vHcEHhHXHHhu1HXHX*v01HX>vHX1H5H`5!vH`H{0HC0HuHHD;eHEHPH1HHEHPHHEHPILƃH謼IHE @LHEH_PHHEHLPILƃHTIHE @L'H}HEHÃEfEHEHEgp IHXFvUH}HPHEHHP1H5HXvHX|L ;]HEHHH5eHEHHHHkdkgHEHaF؉EHEH OHHAAE|CEfDEHEHNHËuHIŋuL舫D;eHEHNHHEHNILƃH藺IċEg4@L5HEH1aHUHЉEHEH+NHHAAE|BEDEHEHMHËuHIL諙ED;eLcmHEHLcHEHMHH!HcHLK,HhH$AH8.yHcHPH;h} HPHhH}7kvHPvHXvH`vHpHtưvH0L8L@LHH]UHHd$H]H}HuHEH^&HEH HHHmHEH^HcHHEHEHcHEH|HEH;E0t)HEHEHHEHH H]H]UHHd$H]H}HuH4cKH@H}HkHEHKHþHHX0HcKHpHHHEHKHþH蹷HX0HbKHpHHHEHHbKHp˜HEHHcKHp˜HEHHcKHpm˜HEHH cKHpR˜H}tHEHǀHEHǀH]H]UHHd$H}HuHEHEH@0H]UHHd$H]H}HuHEHHcHEHY\HcHH9}HHEHgHHEHHEH@0HEHH H]H]UHHd$H}HuHEH~HHEHgHHEHHEH@0HEHH H]UHH$pHxH}HuHEHUHu+vHSuHcHUH]HvHHUHuH}ueHEHu큾HEHuʀHEHHEHHH}1ɺ6H}1+x趪vH} vHEHt/vHxH]UHHd$H}HuHgcH8ДHHEHHEHHHHEH{ݿHUH HEHYHcHHEHEHcHEH|HEH;E0u$HEHEH誀H}H]UHH$`H}HuUMHEHDž`HDžpHUHu6vH^uHcHxH}}HEHcHEHcHHPHcEH9 HEHMUHpHEHH Hp؉HUHHEHHEHH/HEHl= uH5}Hp9v3lH``щH`1H5hHp4vHpHEHUuHEHH HEHcHEHcHHHcUH9urHEHMUH`HEHH H`H}qvH}8t)HEHHM؋UuHEHH fvH`vHpvH}vHxHtĨvH]UHH$`H}HuUMLELMHDž`HUHp讣vHցuHcHhHuH}}HEHcHEHcHHHcUH9HEHMUH`HEHH H`Hu҉HEHHH1?QHEHHH(ugHdHHd0HH};܎EU)ЋU)‰UHEHHHuHU$觥vH`vHhHtvH]UHHd$H}HuUMDEHEH}H5}u[HEHHHEHHE̊EEHEHHEHHEHEԈH]UHHd$H]H}H@HEH HEH@HEH绘HEHHcHEHETHcHH9@HEH觻H]H]UHH$@HHLPH}HuHUHMHHHEHUH`诠vH~uHcHXEHEHSÃvE@EHEH$SAAAE@EHEHMȋUHuHEHH H}tTHuH}uCHdHuH}u+HUEĉHUEȉH}HXKHpvD;enHEHfRƒHEHMHuHEHH H}t^H}H5vHtIHuH}Ήu8HEHQHUHEUȉH}HQXKHpv ;]E$vH}{vHXHt蚣vEHHLPH]UHH$ H}HuHUH}uHEHUHRhHEH}sHUHurvH|uHcHUHEHUH}14HEǀ H='H'8HUHpHEHpHUH,HA8HQ@H='Hy'8HUHhHEHhHUH HH8HP@HEH}tH}tH}HEH趠vHEHtlHhH(evH{uHcH u#H}tHuH}HEHP`avvWvH Ht6vvHEH]UHHd$H}HuH~HEHUHHHEH5Wv[HEHxHMmvHEH5gv[HEHHMmvHEHp覈vHEHh薈vH}1H}tH}tH}HEHPpH]UHH$HLH}HuHvHhH(vHzuHcH ? H}HEHp& HEx` H}HHEHHHHHHHHCHH}HEH8H}HEH0HHHHH}t*HHHHHHHHEHHEHCHHCHH}HEH8H}HEH0HHHHH}[t*HHHHHHHHEHHEH}ޗHEH@hHH}9H}UHHHEHcEHH51s[HEHxHjvHDždH5;s[HEHHjvEEEEgXEE}t6uHH}IċuLI$HHUHPHUH}oIċuLI$HHUHPHUH}tWEH}HEH8EH}HEH0HHEHHEHEHEHHH8EHHH0HHEHHEHtHEHHEHEHHEHEHxhEM{WHEHEHxHcMHUHȃEEf/EzuEf/Ezu0t}E;]-}}HcEHH5p[HEHxHShvHEHhH}HEH0HEHh u0HEHxh1HEH@hHH}HEH8"HEHhH}HEH8HEHpH}HEH`HEHpxp u3HEHxhHEH@hHH}HEHhHEHpppH}HEHhHEHxevHHELxMtM@IHEHxH}1HEH)uHSHcEHH5io[HEHHfvHEHHtHRHHcEHHHH5n[HEHxHxfvEEHEHev|PEE@mHEHxHEHHcEHc HEHxHcUHHփE}HEHhxXHEHhH}HEH0HEHh u0HEHxh1HEH@hHH}HEH8"HEHhH}HEH8H} HEHpHEHxcvHHELxMtM@IHEHxH}1HEHHEHpxX HEHpH}HEH`HEHpxp u3HEHxhHEH@hHH}HEHhHEHpppH}HEHhHEHcvHHEDEHEHxbvHHEHHcMHEHHcEDDA)HEHHcE HEHxH}HEH;]vH}wwvH Ht6vHLH]UHHd$H}uHEHc@HdHHuHHEH@HHtH@HHdHEH5k[HEH@HHM1cvHEH@HHEHc@UHE@H]UHHd$H}HuHEHpHEHhHuH}H]UHH$PHXH}HuHUEHEHgBHUHE@ HE@HE@HUHuH}EEHE@4HE H}HuHEHH}HuHH]HHEHCHEH}EHEH8xH}EHEH0pHpHEHxHEH}otHEHxHEHEHxHEHEHEHEHEHCHEHCHEH}EHEH8xH}EHEH0pHpHEHxHEH}tHEHxHEHEHxHEHEHEHEHEH}gHEH@hHH}HEHx7_vHHEHxHEHx \oEtcHEHE@ HE@HEHp HEHxhPOEMHUHEHBHEHB HUHEH@ HBEHXH]UHHd$H}HuHEHhHuHEHhHH}H]UHHd$H}HuHEHpHuHEHpHH}H]UHHFKHHH=/d[B H]UHHd$H}uHUHu輍vHkuHcHUu'HUH= [脂HH5H肏v譐vH}uHEHt&vH]UHH$pHpLxLmLuH}HuHLeLkIL/vILLLauLuH}uHUHuvHkuHcHUu.HMIHUH=5[HH5H讎vُvH}0uH}vHEHtIvHpLxLmLuH]Hd$HH5[H'Hd$Hd$HH5[HHd$SATHd$@@|uAEH^AEteAă=sYA1H|$`uHT$`Hs H{ 1uHA>u A A>u A A D<(,(w,w,_,t",k,t,tC, t!,t3,t$, t[aE1AA}ArAjAbAZARA JABA:AʼnD$pHD$hHT$hH[Hp1H|$`*ʼnHt$`H=vH|$`uHD$XHtvDHd$xA^A]A\[UHHd$H]HHuHuHUHu|vH:ZuHcHUu'HUH=][pHH5H}vvH}ZuHEHt|vH]H]SHd$H<$HD$hHT$Ht$ {vHYuHcHT$`H$Hx 1buH<$ID1H|$huHT$hH$Hp H$Hx 1Uu'u H<$H<$HatuH[HpH<$H$X(H<$`}vH|$hQuHD$`HtrvHd$p[Hd$H<$@t'@'u%H$HB;B}HRHcH|'t0Hd$HtHG0%SATAUHd$HIIHt3$s(HHu$AUu/H*A$"HHzu\$D$A$$AEHd$A]A\[SATH$hH<$HD$xHT$Ht$0yvHWuHcHT$pH<$AD$@AH<$tH؅tr=t$-D$+t#-tEtt|$AH9uDAĉ$HDŽ$H$H[Hp1H|$xOHt$xH<$aA1H|$xuHT$xH$Hp H$Hx 1uAܠuD$H<$AEH$Hx HT$Ht$ |$tIH$H@ H$HDŽ$ H$H[Hp1H|$xHt$xH<$ {vH|$xhuHD$pHt|vH$A\[SATAUHd$H<$@AH$H8DAńEt#A`AoA~H$HHx t 豟uHt$hHQHAAH*u EHs HH<$H5ƚuHu H<$H5ǚuHu H<$H5ȚuHu H<$H5ɚtuHu H<$H5ʚUuHu uH<$H5˚6uHuYH<$H5ϚuHu=H<$H5ӚuHu!H<$H5ךuHu|wvH|$huHuHD$`HtxvH$A\[SATAUH$pHHD$`HHt$svH RuHcHT$XLH{ 1uH*HCD Eu AAHgtH;AA'uHAA$uH߾AA&uH߾AA%uH߾tAAH1tH1PAsAHuA"u H*APCD$pHD$hAĉ$HD$xHT$hH[HpH|$`2Ht$`HEDk(uvH|$`uHD$XHt#wvDH$A]A\[HGp@(Hd$HHH@pHp (uHd$SATAUAVAWH$IIpqI?H#IAG`t`Mt[L8Å|JAADL8IAAG`sIutH贚uHIL"rD9IƆÃ|AAfAID#IIutH^uHILqD9AƇH$A_A^A]A\[SATH$HI􀻐tHLHuHHrH$A\[SHH{h1uHpH{x\v[H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$eHT$ Ht$8=pvHeNuHcHT$xHD$H$H|$1茱HM}[H=[4ʆHT$HHT$HHP8H=P[HT$HBp0ҾH=0;mHT$HHD$H|$tH|$tH|$HD$HrvHD$xHtH$H$FovHnMuHcH$u'H|$tHt$H|$HD$HP`=rvsv3rvH$HtuvtvHD$H$SATHd$HIM~ HHHYH{xYHYH{pYH1]HtMt HHPpHd$A\[Hd$HpBHd$SHuH[HpH[Hd$HHHHHd$SATHd$HIH5[L胓vH{huHE[HpHiH{xuH [HpHOH{xLHCxHHd$A\[SHxtHGxHHGxHh1Ku[UHHd$H]HHuHuHUHumvH:KuHcHUu'HUH=_[aHH5HnvpvH}ZuHEHt|qvH]H]SATHd$IHHt؃ttBt!LH=n[=ILH=o[=ILH=q[=I؃t"sLH=/s[R=IZLH=q[9=IAr<tt0LH=Lu[=ILH=t[<ILHd$A\[SATHd$HH5f[HvHT$Ht$02kvHZIuHcHT$pu.IH5,[L謑vLH!HH1\$nvH5[H|vHD$pHtovHd$xA\[SATH$xHH5Ð[HcvHT$Ht$0jvHHuHcHT$pu9IH5[L vLH~HHߺ>D$D$xmmvH5N[HΐvHD$pHtnvD$xH$A\[SATH$xHH5[H裏vHT$Ht$0ivHGuHcHT$pIH5ŏ[LEvLHHHߺ&*D$rVt tt%EH*D$$3D$$"l$HJ(\$xD$x$VlvH57[H跏vHD$pHtmv$H$A\[SATH$xHH5[H|$葎vHT$ Ht$8hvHFuHcHT$xLd$H5[L1vLHHt$Hߺ&D$rTt ttI>Dttu/H;DLIDsH;DLILA_A^A]A\[SATAUHIIIUI4$HHI$HIuHIEA]A\[H;p`t p`ƀH$H<$u;H<$H<$H<$HD$H¾H=;e[f6HD$H<$HD$HT$ Ht$8dvHBuHcHT$xH<$GD$H<$*H<$AH<$8HD$D$wt.ttFfHL$HT$H=K[j2HD$XHL$HT$H=]J[H2HD$6HL$HT$H=L[&2HD$H[HpH<$H<$&fvHD$xHtaH$H$cvHAuHcH$uH|$Ovfv2hvfvH$Ht{ivVivHD$H$H$H<$HD$HT$(Ht$@cvH>AuHcH$H<$rH<$D$H<$hH<$H<$VHD$HT$Ht$H<$D$ttt2tItt1tHTHQ[HD$ ZHTS[HD$ LHR[HD$ >HpT[HD$ 0H:M[HD$ "H\N[HD$ H[HpH<$HL$HT$H|$  0HD$evH$HtaH$H$avH?uHcH$uH|$MvdvTfvdvH$HtgvxgvHD$H$H$H<$_HD$HT$ Ht$86avH^?uHcHT$xH<$D$H<$H<$H<$HD$HT$Ht$H<$HD$tt$BHL$HT$H=W[.HD$ HL$HT$H=X[.HD$H<$.]cvHD$xHtaH$H$L`vHt>uHcH$uH|$[LvVcvdvLcvH$Ht*fvfvHD$H$H$H<$HD$HT$ Ht$8_vH=uHcHT$xH<$OD$H<$2H<$9HD$HT$Ht$H<$D$st,tIudHL$HT$H=wX[j-HD$BHL$HT$H=Y[H-HD$ HL$HT$H=Z[&-HD$H<$4bvHD$xHtaH$H$^vHHD$HT$Ht$H<$HL$HT$H=(Z[+HD$H<$ts`vHD$pHt^HT$xH$"]vHJ;uHcH$uH|$1Iv,`vav"`vH$HtcvbvHD$H$H$H<$HDŽ$HDŽ$HT$Ht$(\vH:uHcHT$hzH<$ZH<$H<$HD$HT$pH$0\vHX:uHcH$H<$ H$H@p@$HDŽ$H<$H$H$H$HDŽ$ H$Hy[HpH$3H$H<$BH<$^vH$HtaH$H$M[vHu9uHcH$uH|$\GvW^v_vM^vH$Ht+avavH<$KHD$!^vH$tuH$guHD$hHt_vHD$H$HH$H<$HD$@HDŽ$HDŽ$HT$PHt$hoZvH8uHcH$pHDŽ$H5[H$H|$@j+vH<$ H<$H$H$Ht$t HT$H=e[/HD$H<$H$H$HT$Ht$ y|$u!D$ H=e[1HD$H<$H$0H$H$HDŽ$ H$Hu[Hp1H$ҡH$H<$/H<$u4H<$H$H$H=e[,HD$H<$s*H<$p¾H=d[3HD$H<$FtH$H@p@$HDŽ$H<$H$H$H$HDŽ$ H$H[HpH$贠H$H<$H<$D$,H<$D$0T$,D$0H<$H${H$H$!uH$H<$H$HHD$8Hu`H<$H$-H$H$HDŽ$ H$H[Hp1H$ϟH$H<$|$,t D$(9|$0t D$((HD$8@psH|$8"D$(D$(|$(H<$`H<$gH$H@p@$HDŽ$H<$H$?H$H$HDŽ$ H$Hd[HpH$ޞH$H<$T$(IHcH$H5{[H$H|$@9'vD$HH$H$UvH3uHcH$@H<$O|$(}]HcT$HHD$@HtH@HH9uAHcD$HHH$H5D{[H$H|$@&vHD$@HcT$HHH<$HT$@HcL$HHʃD$HH<$T$(I;T$HH$H@p@$8HDŽ$0H<$H$H$H$HHDŽ$@ H$0H^[HpH$8H$H<$GD$H;D$(t|$(H<$ H<$ H$H@p@$8HDŽ$0H<$H$H$H$HHDŽ$@ H$0HĢ[HpH$~H$H<$VvH$HH=BXvHH$H$0H$SvH1uHcH$Hu2l$HfHT$@HcD$HH<]>l$H|$H}lVvWvbVvH$HHt@YvYvWv|$,t5HD$@L@HD$@HHHD$@HH=OF[B>HD$|$0t HT$@H=PG[KHD$HD$8@ptt3tXyHT$8H=d[GlHD$HL$@HT$8H=Gm[H@m[HD$VHL$@HT$8H=]n[HVn[HD$,HD$8Hx(HL$@HT$8HD$8H@(HD$H<$UvH$buH$UuH5w[H|$@TxvH$HtbVvHD$H$SATH$hHIHDŽ$HD$`HHt$XQvH/uHcHT$XH{hLuHH{hLuH{pLHCpHH{xt H{x t"BC`zHtMt HHPpHd$A\[Hd$H`Hd$Hd$H`Hd$Hd$H`Hd$SATAUAVHd$HAIAL$L茦uHT$Ht$ 6vHuHcHT$`uH{`LH $DqHD9vHuHD$`Ht;vHHd$hA^A]A\[SHֈH`[SH։H`[SHH`Q[SHd$HH $H`H$Hd$[SATAUHd$HAIH $HauHT$Ht$ }5vHuHcHT$`uH{`LH$yHDz8vHҤuHD$`Ht9vHHd$pA]A\[SHH`[SHֈLMH`[UHHd$H]HֈLLELMH`H]H]SHֈLMH`[Hd$HHx`oHd$SATH$IH4$HuHT$Ht$ 4vH:uHcHT$`u1H$H|$hkuHt$hLÃt Lm6vHPuHD$`Htq8vH$hA\[SATAUH$@IHDŽ$HDŽ$HDŽ$HDŽ$HHt$N3vHvuHcHT$XI|$ID$HI|$ID$HAD9H$賦H$HD$hHD$` DH$荦H$HD$xHD$p I|$H$ID$HH$H$HDŽ$ I|$H$ID$HH$H$HDŽ$ Ht$`H [HxϤZ5vH$譡uH$蠡uH$蓡uH$膡uHD$XHt6vH$A]A\[H$H|$Ht$H$HL$H|$uHD$HT$HRhHD$H|$HT$(Ht$@x1vHuHcH$uPHD$ HT$H$HBHT$HD$HBHD$ H|$tH|$tH|$HD$H<4vH$HtH$H$0vH uHcH$u'H|$tHt$ H|$HD$HP`3vc5v3vH$Ht6v6vHD$H$SATHd$HIM~ HHH{XH{OH1%vHtMt HHPpHd$A\[SHgH{tH{HCHH{tH{HCH[SH7H{tH{HCHH{tH{HCH[SATHd$HAH{t"EuH{HCHtAE0H{t"EuH{HCHtAE0DHd$A\[SH$HH{u4H;Ht$vHD$HD$H$HH$[Hx1iH{u4H;Ht$evHD$HD$H$HH [Hx1.H$[H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8-.vHU uHcHT$xuBHD$HT$H$HBHD$H|$tH|$tH|$HD$H1vHD$xHtH$H$-vH uHcH$u'H|$tHt$H|$HD$HP`0v,2v0vH$Htu3vP3vHD$H$SATHd$HIM~ HHH{(H1vHtMt HHPpHd$A\[SHGH{tH{HCH[SH'H{tH{HCH[SATHd$HAH{t"EuH{HCHtAE0DHd$A\[H$HHxu4H8Ht$vHD$HD$H$HH5|[Hx1蚞H$H$H|$Ht$H$H袛uH|$uHD$HT$HRhHD$H|$VHT$ Ht$8+vH uHcHT$xHD$H$H$Z+vH uHcH$uHD$@HD$HxH4$%uP.vH訚uH$Ht/vHD$H|$tH|$tH|$HD$H.vHD$xHtH$H$*vHuHcH$u'H|$tHt$H|$HD$HP`-v//v-vH$Htx0vS0vHD$H$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$HT$ Ht$8)vHuHcHT$xuNHD$HD$@HT$H$HBHD$H|$tH|$tH|$HD$H,vHD$xHtH$H$^)vHuHcH$u'H|$tHt$H|$HD$HP`U,v-vK,vH$Ht)/v/vHD$H$H$H|$Ht$$H|$uHD$HT$HRhHD$H|$HT$ Ht$8(vHuHcHT$xuNHD$HD$@HT$H$HBHD$H|$tH|$tH|$HD$He+vHD$xHtH$H$ (vH5uHcH$u'H|$tHt$H|$HD$HP`+v,v*vH$Ht-v-vHD$H$H$H|$Ht$$H|$uHD$HT$HRhHD$H|$ HT$ Ht$8L'vHtuHcHT$xuZHD$H|$1vHD$@HT$H$HBHD$H|$tH|$tH|$HD$H *vHD$xHtH$H$&vHuHcH$u'H|$tHt$H|$HD$HP`)v3+v)vH$Ht|,vW,vHD$H$H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$ HT$ Ht$8%vHuHcHT$xuZHD$H|$1vHD$@HT$H$HBHD$H|$tH|$tH|$HD$H(vHD$xHtH$H$R%vHzuHcH$u'H|$tHt$H|$HD$HP`I(v)v?(vH$Ht+v*vHD$H$H$H|$Ht$$H|$uHD$HT$HRhHD$H|$HT$ Ht$8$vHuHcHT$xuLHD$HD$@HT$$BHD$H|$tH|$tH|$HD$HY'vHD$xHtH$H$$vH)uHcH$u'H|$tHt$H|$HD$HP`&v(v&vH$Ht)v)vHD$H$HGHd$HHyI[HxNvHd$SATAUH$pHIHDŽ$HT$Ht$(#vHEuHcHT$hHH tb,tIHJHD$pHCHD$xHJH$Ht$pL1ɺOuWH{H$HNuL1H$+uL01诰uHIH$pC1H5HH$paH$H$xHaIH$H$pL1ɺ誕u{tLH5eHБuLH5qH輑uMLuvH$uH|$xuHD$XHtvH$A\[SATHd$HIH5C?[H>vHT$Ht$0vH7tHcHT$pu\H{LHCHH{HHCHAD$tt$AT$D$AD$IT$HD$H ID$vH5>[H+?vHD$pHt<vHd$xA\[SATH$xHIHDŽ$HD$xHHt$8vH`tHcHT$XufH{Ht$xHCHHD$xHD$`H?HD$hH{H$HCHH$HD$pHt$`L1ɺ~uvH$HHsHߺ>7H[SHgHsHߺ>HsHߺ>H[Hd$HHxH@HHd$SATH$xHIHDŽ$HD$xHHt$uHtHcHT$XufH{Ht$xHCHHD$xHD$`H= HD$hH{H$HCHH$HD$pHt$`L1ɺ.juuH$euH|$xeuHD$XHtuH$A\[SATHd$HIH53[HvHT$Ht$0uH'tHcHT$pH{LHCHH{HHCHAD$ttOt4ttVdIT$HD$HID$PI4$LH$1fucuuH$^uH|$x^uHD$XHtuH$A\[SHH{HCHuH{HCHu[SATH$hHIH5[HvHDŽ$HT$Ht$0uHtHcHT$p9H{LHCHH{HHCHAD$t{H|$tI*D$H*L$^AD$H$aH$H$HD$x Ht$xH A[Hx1`iHf/D$ztAD$^D$AD$;H$iaH$H$HD$x Ht$xH@[Hx1`HHrl$zt l$Al$HG(A|$H$`H$H$HD$x Ht$xH @[Hx1_mHf/D$ztAD$^D$AD$BH$p`H$H$HD$x Ht$xH?[Hx1 _HHAD$uH$[uH5n[HvHD$pHtuH$A\[SHHpHHߺ&HsHߺ&[SATH$xHIHDŽ$HD$xHHt$uHtHcHT$XufH{Ht$xHCHHD$xHD$`HHD$hH{H$HCHH$HD$pHt$`L1ɺ_uyuH$ZuH|$xZuHD$XHtuH$A\[SHd$D$ L$(HD$(f/zuHD$:Hf/D$ z"u f/D$(zsHD$HD$ f/D$(D$D$<$t~H-D$(HWD$ fWD$D$D$(D$D$<$t\$D$D$؃t]HD$fWD$@D$ D$D$D$(D$D$<$t\$D$D$D$Hd$0[SATH$hHIH5p[H|$vHT$0Ht$H:uHbtHcH$H{LHCHH{Ht$HCHI$H$ID$HD$ID$HD$$HD$H$HD$ HD$HD$(HD$if)$AD$AD$uH5[H|$vH$HtuH$A\[Hd$HHxH@HHd$SHHsHߺ[SHHHxHH@HH*CCC[SHHHxHH@HH*CCC[SHGHsHߺ[SHHHxHH@HHCC[SHHsHߺ [SHd$HHHxHH@HH (k$$CCHd$[SHgHsHߺ 6[SHd$HHHxHH@HHa (k$$CCHd$[H$H|$Ht$H$H|$uHD$HT$HRhHD$H|$(HT$ Ht$8uHtHcHT$xuHD$H|$1puHD$H$HPHT$HBHPHBHD$HxDHT$BHD$H|$tH|$tH|$HD$H{uHD$xHtH$H$#uHKtHcH$u'H|$tHt$H|$HD$HP`uuuH$HtuuHD$H$GSATHd$HIHCHx0uHx@t0t H{]H~ [H{LvCAD$Hd$A\[HHd$HHH@Hpt1]uHd$SATAUHLc(Mt Md$IIE|DAAHS(IcHkH4HS IcHuH$HtH$H$uH tHcH$u'H|$tHt$ H|$HD$HP`ueuuH$HtuuHD$H$SATHd$HIHC(HtH@HH~H4Hs(LS0HHHAD$Hd$A\[H$H|$Ht$H$HL$H|$uHD$HT$HRhHD$H|$HT$(Ht$@uHtHcH$uiHD$ HL$H$H|$1#HL$H$HxHQ0HHA8HD$ H|$tH|$tH|$HD$HcuH$HtH$H$uH0tHcH$u'H|$tHt$ H|$HD$HP`uuuH$HtuuHD$H$SATHd$HIHC(HtH@HH~HdH{8HS(LS0HHHAD$Hd$A\[UHHd$H5HZH}uHUHuuH=tHcHUu@}u H*E E-}um H(]EE E EuH5ZH}MuHEHt_uEH]SHd$HHH$HFHD$HFHD$)D$D$[Hd$ [SHd$HHH$HFHD$HFHD$D$D$[Hd$ [SHd$HHH$HFHD$HFHD$D$D$[Hd$ [SHd$HHH$HFHD$HFHD$iHdfTCHd$ [SHd$HHH$HFHD$HFHD$)YCHd$ [SHd$HHH$HFHD$HFHD$QCHd$ [SHd$HHH$HFHD$HFHD$D$D$<$Dzt[Hd$ [SHd$HHH$HFHD$HFHD$YD$D$[Hd$ [SHd$HHH$HFHD$HFHD$ D$D$H([Hd$ [SHd$HHH$HFHD$HFHD$H-HCHd$ [SHd$HHH$HFHD$HFHD$yH,HCHd$ [SHd$HHH$HFHD$HFHD$9D$D$<$t[Hd$ [SHd$HHH$HFHD$HFHD$D$D$<$臱t[Hd$ [HHHtHRHPSATHd$HIHD$`HHt$uH߱tHcHT$Xu%IL$@IT$(I4$H|$`UuHt$`H~CuuH|$`BuHD$XHt uHd$hA\[SATHd$HIHI4$6CuIT$@It$(H4\uHd$A\[SHHHpH8VuHC[SATHd$HIHD$`HHt$uHtHcHT$XuI4$H|$`Ht$`HBuuH|$`BuHD$XHt:uHd$hA\[SATHd$HIHD$`HHt$GuHotHcHT$XuI4$H|$`Ht$`HBuCuH|$`AuHD$XHtuHd$hA\[SATHd$HIHD$`HHt$uHtHcHT$Xu@1A|$XtA|$ptAIL$0IT$I4$H|$`eHt$`HsAuuH|$`@uHD$XHtuHd$hA\[SHHHpH8HcHC[SHgC[SHC[SHC[SHFHcHC[SHd$HHHT$Ht$H@M$HCHd$[SHd$HHHT$Ht$H@ D$HCHd$[SHd$HHHT$Ht$H@D$HCHd$[SHd$HHHL$ HT$Ht$H@x$HCHd$[SHd$HHHL$ HT$Ht$H@8D$HCHd$[SHd$HHHL$ HT$Ht$H@D$HCHd$[SHd$HHHL$ HT$Ht$H@D$ HCHd$[SHHP@p(xC[SHHHXP@p(xC[SATHd$HIAT$@At$(A|$$A$A$At$pA|$XCX$CHd$A\[Hd$HHNHHH=>uHd$Hd$HHNHHt8H>uHd$Hd$HHNH}H0H=uHd$Hd$HHNHMHʘH=uHd$SATHd$HIHD$`HHt$wuH蟫tHcHT$Xu$AD$(I4$1H|$` Ht$`H?=ujuH|$`$HcHC[SHHp(H8HcHC[SATHd$HIHD$`HHt$uHtHcHT$XuAD$H|$`9Ht$`H;uuH|$`6;uHD$XHtWuHd$hA\[SHH>[[SHd$HF(<$H>9[Hd$[SATHd$HIHD$`HHt$uH/tHcHT$XuAD$H|$`BHt$`H:uuH|$`V:uHD$XHtwuHd$hA\[SATHd$HIHD$`HHt$wuH蟨tHcHT$XuAD$H|$`2Ht$`HE:upuH|$`9uHD$XHtuHd$hA\[SHHH0HtHvH8HuH=bHwHP1|C[SATHd$HII<$1Hu ID$(H$$CHd$A\[SHHH0HtHvH8HuH=b1C[SATHd$HII<$1Hu ID$(H$$CHd$A\[SHH>C[SATHd$HII<$Hu ID$(H$H$HCHd$A\[SATHd$HIHD$pHT$Ht$(uH车tHcHT$hu#AD$(<$I4$H|$pYHt$pH^8uuH|$p7uHD$hHtuHd$xA\[SATHd$HIHD$`HHt$uH/tHcHT$XuAt$0H|$`2AHt$`H7uuH|$`V7uHD$XHtwuHd$hA\[SHH>$?C[SHH@p(H8}AC[HHVHN(HHPHHVHN(HHPSATHd$HIA|$tHIt$6u HIt$06uHd$A\[H~t HV(HPHV@HPH~t HV(HPHV@HPH~t HV(HPHV@HPSATHd$HAA$$HHGL HLFH L HLFHL HLhFHtҐL HLAFHU諐L HLFH6脐L -HLFH]L FHLFH6L oHLFHL HL~FHL HLWFHL HL0FH|蚏L sHL IH]sL HLIH>LA L 8HL6IH21L 4HL:SH61L HLSH1ӎL HL"IH1诎L 8HLSH1苎L HLSH1gL pHLSH1CL HLIH1AL HM1DHL HM1DH̍L HM1DH詍L HLIH肍L HLqIH}[L HLJIHf4L HL#IHO L HLIH8L HLIH!迌L (HLIH 蘌L AHLIHqL ZHLDHJL SHL DH#L \HLDHL HLSHՋL HLSH讋L HLSH臋L HLSH`AL HLIH,L HLIHL HLSHފL HLFH跊L HLDH萊L HLIHiAL EHL{SH5L HL,IHpL HL}IHyL HLVSHbL 9HLFHK虉L 2HLXFHTrL ;HLaSH]KL HLBBHF$L HLSBHOL HLSH8ֈL /HLSH!诈L HLDH 興L HLDHaL HLXDH:L HLDHL HL DHL HL{DHŇL HLSH螇L HL-SHwAHL ZM1IHq跇HL ZLFHR萇HL ZLFH3iHL ZLhFHBHL ZLAFHHd$A\[SATHd$HIHHzLH= ZutLH=ZuHd$A\[Hd$HH5}{dH=um{d.h{d-b{d:H=e{dH5n +uH=z{dH5*uHd$Hd$HuHd$Hd$HuHd$Hd$fuHd$Hd$HSuHd$Hd$H5H=zd(u.HǾHd$Hd$.H5H=hzduHd$HH?@? @?5h!?A0@?@!?-Dd>pQ̘F<TRUEFALSE'@ @9This binary has no string conversion support compiled in.gRecompile the application with a unit that installs a unicodestring manager in the program uses clause.F.?Runtime error  at $ $Assertion failed (, line )..This binary has no thread support compiled in.jRecompile the application with a thread-driver in the program uses clause before other units using thread.7This binary has no dynamic library support compiled in.~Recompile the application with a dynamic-library-driver in the program uses clause before other units using dynamic libraries. .txttruefalse/tmp/TEMPTMPTMPDIR/fpc_.tmp/....///proc/self/exersrcFPC_RESLOCATIONStandard Additional[FORMS.PP] ExceptionOccurred  Sender= Exception= Sender=nil sbVertical sbHorizontal& DesignLeft DesignTop3.2.0.0[TCustomForm.SetFocus] : TCustomForm.AddHandlerTCustomForm.SetActiveControl  AWinControl= GetParentForm(AWinControl)==Self= csLoading= AWinControl.CanFocus= IsControlVisible= Enabled=  CanFocus=A window#TCustomForm.IntfHelp TODO help for  TCustomForm.ShowModal Self = nil MDIChild= fsModal=TCustomForm.ShowModal Visible=TCustomForm.ShowModal for  impossible, becauseI already visible (hint for designer forms: set Visible property to false) not enabled already modal FormStyle=fsMDIChild..., VCL compatibility propertyOldCreateOrder TextHeightScaledTransparentColorValueTScreen.MoveFormToFocusFrontTScreen.MoveFormToZFront<Unbalanced BeginTempCursor/EndTempCursor calls for cursor %dTScreen.MonitorFromPointTScreen.MonitorFromRectTScreen.MonitorFromWindowcur_TScreen.AddHandlerTApplication.Destroy Self=nil7WARNING: TApplication.MessageBox: no MessageBoxFunction" Caption=" Text=" Flags=Application=nilERROR: MAINICONMAINICONTApplication.AddHandler. TApplication.EnableIdleHandler-TApplication.QueueAsyncCall already shut down0HINT: TApplication.FreeComponent Data<>0 ignoredarheyidvpsazfakskupasdtkuguriAll files|*.*|Comma Separated Variables|*.csv|Calibration logs|*.cal|UDM usage log|*.log|Text files|*.txtAll files|*.hex|SQM-LE/LU|SQMLE-?-3-*.hex|DL (Datalogger)|SQM-LU-DL-?-6-??.hex|V (Vector)|SQM-LU-DL-V*.hex|LR (RS232)|SQM-LR*.hex|DL-Snow|SQM-LU-DLS-?-13-??.hex|GDM|MAG*.hex|C (Color)|SQMLE-?-4-*.hex/Log directory does not exist:  Resetting to default. LogsDirectory Directoriesudm.logyyyy-mm-dd hh:nn:ss.zzzyyyy-mm-dd hh:nn:ss %s : UDM Started. Local time: %sff000000ff1a1a1aff363636ff841400fff92600ff148139ff26f46cff1eaeb3ff2bfaffff1560beff1a75e9ff0e22abff132ee2ffb1b2b1fffafafa= ףp5@Gz5@p= 5@(\5@q= ף5@(\5@@5@)\4@= ףp}4@Q4@3@333332@zGa2@1@ff333333ff808080ff690000ffff0000ffff4040ff387c25ff259699ff40ffffff0baff9ff0000ffff8d0ac4ffce91e9ffffffffQ5@(\5@q= ף5@fffff5@R5@Gz5@33333s5@ףp= 5@4@(\4@Y3@fffff2@Gz1@ MonospaceUSB%d. () yyyy-mm-ddHH:MM:SS--#0.00@@`@%0.5f(\@@y&1@%1.2f?̬@0unknownLPress the Version or Reading button to see results from the selected device.1Looking for Ethernet connections on this machine.:127.169.254.255.255.255.255This machine uses IP:  , will use a broadcast to: .255 , will use a multicast to: SAlso doing full broadcast to fix for double octet subnet mask, using multicast to: 30718EthWiFi????Found:  &Finished looking for Ethernet devices.,FindUSB: Searching for Linux USB devices ...6FindUSB: Searching here : /dev/serial/by-id/usb-FTDI_*/dev/serial/by-id/usb-FTDI_*FindUSB: Found this : /dev/serial/by-id/*FindUSB: Finished Linux USB search. Found  matchesL1xY@%%d from [1 to %d / %d] (%3.4f%% used)<Not applicableN/A@? ףp= ף?GzG?@@8@@@&%.0fhours, or %.0fdays, or %.1f months%s %dyy-mm-dd ddd hh:nn@??oH'?Qn?yyyy-mm-dd ddd hh:nnL3xNo record ready yet to view, press >| in a few seconds.kNo record was logged. Check that the threshold is lower than the actual reading, or set the threshold to 0.No record loggedA1xA2xA3xA4x1edA51xrfxA50xEDA2xA2VA2FxA2PxA2RxA2MA2AxA1A1M7NormalStale2Command316383N/C@@@%2.1f%%@@%2.1f°CAPA3A4MA40xA41xA4T%.2dEptouch-print --fontsize 18 --font "Liberation Mono" --cutmark --text  ' Unit S/N: ' ' Model:  ' MAC:  ' Capacity: %d rec' ' USB S/N: +Wrote P-touch back label text to clipboard.Time zone missingThe time zone information must be defined, do you want to do it now?Mhttp://unihedron.com/projects/darksky/cd/SQM-LU-DL/SQM-LU-DL_Users_manual.pdfGhttp://unihedron.com/projects/darksky/cd/SQM-LE/SQM-LE_Users_manual.pdfGhttp://unihedron.com/projects/darksky/cd/SQM-LR/SQM-LR_Users_manual.pdfGhttp://unihedron.com/projects/darksky/cd/SQM-LU/SQM-LU_Users_manual.pdf)http://unihedron.com/projects/darksky/cd/Qhttp://unihedron.com/projects/darksky/cd/SQM-LU-DL-V/SQM-LU-DL-V_Users_manual.pdfFound and reset Firmwarefile/Firmware file size determined for progress bar.fCxfFxLD1xLD0xLdxfxfOnOffYRrpUuLlCc M0%03.03Dx M1%03.03Dx M2%03.03Dxm0xm1xm2xWarning: LHFCheck exception!rxGgTt(Invalid lock setting response, pieces = -Lock switch protection settings being alteredKCxKcxKRxKrxKGxKgxOKCancel IsDefault3Checking this will instantly prevent other changes! Are you sure?KTx:Locked out by user. Lock switch protects "These settings".0Lock switch protects "These settings" cancelled.KxHChecking this will prevent other changes when the lock switch is locked!&Lock switch protects "These settings".The unit is locked. Switch the Lock switch to the Unlock position If you still have problems, then contact Unihedron for possible solutions. Unit lockedKtxRS232 simin.csv simout.csvInfile does not exist!Outfile already exists!# Simulation from file.# UDM version: ix# Unit information cx: cx# Calibration cx: Got ! fields, need 3 fields in record.Error? @3333333@S%10.10d,%10.10d,%05.05dxg0x hhmmss.sss ddmm.mmmm errorFix not available or invalidGPS SPS Mode, fix valid%Differential GPS, SPS Mode, fix valid Not supportedDead Reckoning Mode, fix valid Satellites UsedHDOP: ! Horizontal Dilution of PrecisionMSL Altitude: Geoid Separation: Age of Diff. Corr.:  sDiff. Ref. Station ID: Failed parsing GGV data.commandlineoptions.txtCommand Line Options&Unaveraged dark calibration attempted.Configure Dark CalibrationOSet dark calibration to the un averaged time? Are you sure? Cancel if not sure.&Unaveraged dark calibration performed. 0000000.000zcal7%sxzs%.3f&Unaveraged dark calibration cancelled. LPM%010.10dx LPS%010.10dx LT%011.2fx fchanges.txtVersion informationLULELRLU-DL LU-DL-GPSLU-DL-VLU-DLS %s-%s.txt exists! OverwriteConfiguration data file existsConfiguration data file (#) exists, user allowed overwriting.+) exists already, user cancelled overwrite.%s Calibration dataReport Date: %sSerial Number: %sUSB Serial Number: %sMAC: %sModel Number: %s (%s)Feature version: %sProtocol version: %s"Data logging capacity: %d records-Light calibration offset: %2.2f mags/arcsec²(Light calibration temperature: %2.1f °C&Dark calibration period: %2.3f seconds'Dark calibration temperature: %2.1f °C&Calibration offset: 8.71 mags/arcsec².Acceleration position %d: %6.0f %6.0f %6.0f'Magnetic maximum XYZ: %7.0f %7.0f %7.0f'Magnetic minimum XYZ: %7.0f %7.0f %7.0f#Logged calibration file stored at: ERROR! IORESULT:  during LogCalButtonClickERROR! IORESULT $Expected string from XPort telnet: " " Sent: ""1Failed to see expected string from XPort telnet: "Waited string from XPort telnet: "*Set XPort defaults operation requested ...9999Sending XPort defaults to: Press Enter for Setup ModeFailed to: telnet  Your choice ?115200BaudrateI/F Mode02Flow ( Port No ( ConnectMode  in Modem Mode (Show IP addr after Auto increment source port  Remote IP Address :Remote Port ( DisConnMode (80 FlushMode (01 Pack Cntrl (00 02 DisConnTime ( SendChar 1 SendChar 29Parameters stored"Connection closed by foreign host..Finished Sending XPort defaults using: telnet Resetting XPort ...BXPort should have been reset, and ready to use now. Press FIND nowDark calibration attempted.WHas the unit been in the dark for a long enough time? Are you sure? Cancel if not sure.Dark calibration performed.zcalBxDark calibration cancelled.GetConfCal called.m9@.@r@I@Light calibration attempted.Configure Light CalibrationSIs the unit looking at a calibrated light source? Are you sure? Cancel if not sure.Light calibration performed.zcalAxLight calibration cancelled.GetConfReading called.Yux%1.3f%1.1fxxxExpected 9, got version?@P@ Too High @ Too Low  Normal  ContCheck(DSent: %s ContCheck result %s not proper length: Expecting %d, got %d$@.datOne record loggedADA yyyy-mm-dd"T"hh:nn:ss.zzz";"%d;%1.3f;DL-V-Log@%1.1f;%1.2f;@5%0.0f;%0.0f;%0.0f;%0.0f;%0.0f;%0.0f;%0.1f;%0.1f;%0.0fExpected 8 fields, got  Expected at least 6 fields, got  during LogOneRecordButtonClicktEnter Time zone information into Header first. Do this by pressing the Header button, then selecting your timezone.Liberation Mono USB S/N: Capacity: %d rec MAC:  Model:  Unit S/N:  /dev/ttyUSB*/dev/ /dev/ttyS*A5exA5dx changelog.txtLIxLmxLcxyy-mm-dd hh:nn:ssInvalid RTC from device = Real Time Clock difference: secondseconds slowfastvtx Calibration AccessoriesReport IntervalIxYxVectorFirmware%s-%d-%s Data Logging ConfigurationSQM-LE :unplugged, PLUG IN NOWFW: Unit was unplugged. :connected, UNPLUG NOW. :unplugged, PLEASE WAIT. :unplugged, PLUG IN NOW. :plugged in, Loading firmware.FW: Unit was plugged in. A%0.1fsLoading firmware started.!Assigned and reset firmware file.Resetting unit ...Unit should have been reset ...Loading firmware ...OkUnit is resetting.+Firmware loaded and unit reset. PRESS FIND.Firmware load failed! Result: File:  IOERROR!File  does not exist!CheckLockSwitch called.zcalDxLockedUnlockedUnknown-SUGetting InstrumentIDs.No devices were found HardwareID Instrument ID : %12sPopulated FoundDevices window.-SEI IP address:  Selecting -SEMmodel: -SUCcommunications port: -SUI%Devices available for LogContinuous: device: Looking for USB Found, selecting Desired USB ID not found: Device available for logging: Number of Multiple devices: $Only one device found, selecting it.?More than one possible device found. Select the desired device.;No devices found, disabling all disallowed control buttons. not found.MIs inside SelectDevice already, possible pressed Find more than once quickly.ItemSelected: row %d.(USB SN: %s Device: %s has been selected.10001(%s MAC: %s Device: %s has been selected. 1000000000=============================== Period Min: %d ns Period Max: %d ns Period Step: %d ns------------------------------ Temperature Min: %d ADC Temperature Max: %d ADC Temperature Step: %d ADC Period: %d ns Frequency: %d HzTemperature: %d ADC460810000000Attr1 L4%010.10dx Record: %d UTC Date: %s Reading: %4.2fmpsasTemperature: %2.1fC;On@? Voltage: %1.2fV@ Altitude: %4.1f° Azimuth: %4.0f° Vibration: %5d Type: Subsequent Type: Initial Std Lin.: %u Snow rdg: %4.2fmpsas Snow Lin.: %u%result pieces should be %d, but is %dNo records stored yet.LBx Trickle OnLbx Trickle OffDL Trigger mode button changed.LMSet trigger mode to value Invalid trigger mode: %d2Current trigger mode: %d = Desired trigger mode %dLight calibration offset set. 00000000.00zcal5%sx%.2f"Light calibration temperature set.zcal6%sx%.1fDark calibration period set.!Dark calibration temperature set.zcal8%sx UDM Version: Operating system: Linux Started at:  Started as: SettingsStartUpStartupOptions: ConfigFilePath: -N-LCR-LCGRSLoggingUnderwayLogContinuousPersistence-P-DLR-DLRSS-TCA-TCM-TCMR@GetCalInfo: Could not get calibration information on second try.yyyymmdd-hhnnss.cal during LogCalInfoButtonClickParseReportInterval response: T%sxt%sx 0000000000P%sxp%sx vT%06.5dxsignal was triggered//\\\TPF0TForm1Form1Left HeightTopQWidtho ActiveControl FindButtonCaptionUnihedron Device Manager ClientHeight ClientWidthoConstraints.MinHeightConstraints.MinWidtho Icon.Data 11ddx1(d        # % )( --% $ + (+")&/* - 1- 71 5#87? <75 1%"* :#-"4#6(!7 "A"A !G,(2=(3 )J*E)M+G)P",D)W ,Q*Y/B10<+0?70<2]3^5W4^(5V,9N#:N6:HB:I :e@>M:m9=V=gM?QH?S=ARHAPMBNMFTBGZ)EjOFZ8G_JHYKG^9FjQJXNHeULa$JyUN\JNaQN_PPYQMd7PxVSe[Rg[TbMTjXTkCRy6UuSViTUnYWhH[kIYx^ZrYZt^\mU\sY^kZ]p=_~]bnZ^_audbu[a~aa|[cyWd|bey8fPepgv[dYf[iaigi}bhghlmgm]onmhpjnerkrwszvSwkuewvwwqwkylxPvv|r|l~r~sSzqgszzoaw}f}vx'     !!$    $  !! %'%   $'4'  $'//!%'!!" !+ $ !9*   !%$%''%!!*%  /%    ###/$' "$'*+/$$  $*;  *!'%+%  '44%*$     !!!!  !! *9'4/*/      '+'%$ '!!% /% !  !   ""!%!' %!$!"!" 2   "%''+!!"   "      '! !   !'  "!!"!  !    $'!!)(    "      /=@F;      "*G6!',,"     IO)6;''(((    $IO9%'$!;!!         " $4OAQ6*5!(5$"           " 94;=IG;)4)!'/         ! -  4O=6;9=?F;))6!  "   " "++1(+,((""" @OI4S969/=;9;'":"" """" "+:1,+,KfmYRoD 9@IOHI@9H249*5"-[:2B2("  !"""+:KKLRl_arD9IOG@QSOSL:<"BB-," DJ]]RLuhD""  33-">2( (pȰ۶ۙzɯZ !GOAQQOIOH`]>K]]K]KLZPMVVf~h"""8TVV12uuC!%'B]ɶw. ('@OOOIOIGJRVVVZ]f]]ffrf{hD,11,,+21"KD-+DDVVb>Jz:]úE/#'OOII@@=Fp`np~ym^ZM22>KKKBKBB2Mkɶ^2@;GGOOA@Fj؛}`P4HFGFGQIG6;j꾾ݾ޿r <@FGF=;IF5Jj܇}}Ս06;I@?G=9F5;5j}M 2Hdd=GF@=;44qf 9SH9G==9449}˄./4=<4G=99<[qӕD4H=99=6;<:vڨM 4S@[jd[<;[}ڴV /Svӵf+;`ӿn+5;;Ͽz&,/vʿz02]vŵz.]ŷz.0Zŵz00Zv0ſn&0Zſn&0Zzſn0ZzǿſÿfVzǿǿǿſǿV MnzM  DnzD Dnzzz|00Zzz|z|||f&&Vrzxx|||VMnzx|||z||z~C  Dfr||||xxx|||r7.Psrsr|yw||||||Z&Mfssrosyx|y||y||xM 7^rortrrrrtyr|||||y|f7&Pgkrrrktosrtt|wy||yy{|V C^rrkkkkokttttoyw|y|{|~{rC.Pfkckkokktkrrtyry||||||wy|^&CZgigrkkkkktttsootttwy||y||||rC .P^ggggggkgkgkortrrrrrttr|{||||||||||V& CP^fghhggggkgkkkrktrrrtr{tyxt||yy||||~~yxf7 &C^gaegggggegkkookkktrrttttr{t|y|ywy|||||||rP .Nc_cgiggggccegikmmkmmmtttttt|yyy|yyyyy|yyy||y|||ww{Z.EW_aicgeciceemiekmkelmlttttrttttytywwyyy|wy|||yyy|y|xwywywyw|yyyyywxgC &EYacciciceegeeciiikkokmmktttmoooyowoywwwwwy||yyywwwwwyywyyyxxywwyyycC.NY\aaiiicccceccgiikcekkkklkkktttottttowxootytrttwyyyyyyyyywx|yyywkP& .NY^^^\c\^aaaaeegeegegghgliokkokkktktmktrtttttytltttttowttotttttkP. 7P^YYYYa^^aacccgecceeeeeekckkkkkollkokkktkootktoooooowtttttooomP7 7NU\\YYY\\a^_^^_cgeccceggiggekeilemllkkkkookttkkkloookkokkoogW7 7NXWWYYY\aYac\aaaaae^gigeceeeeigiceekcokkrkkkklkklkkllkrikgW7 7NUYYW\\\Xa\YYY\aacgga\eaiggeeeggeeceiigkgkggkgkocgccekkgP7 7NWWU\T\YYTY\YaaacaaaaaaggeaaecegccceeccggiiegogegciccaN7 .EUUWW^WY\Y\Y\\aYaa\\\ca^aeecaeicaeaeegcigeggcecgeea\N.  &ENWUWWUUY\Y\YY\YY\YY\Y\\ca^^a\\aac^ggaccaeieccgcaWE&7NWUWWWWWUWWU\YY\YYY^\\aYaa\aaa\\\aa^caa\ca\g^WN7 .EPNWTWWWWWWWWWXWWWYUYWWWYY^Y^\YYaY^_aYaaYYPNE& .ENNUWWWTWWWWWWWWW^WWWYYY^\Y\\WY^_\Y\YYWNE.  &7ENTUXWWWWTWUWWTWWXWWYXT\YYWXY^\YYUWNE7 &.EENWUUUWWWWWPWWWWWTWWWXWYW^WWWWNE.  .7EENNXTUWWXTWWUUTWXWWWUTUNNE7& &.7EENNPNNNUNWWUTNNNNEE7&  &..77777EEEEE77.&    ?????pppppppppppppp?Menu MainMenu1 OnActivate FormActivateOnCreate FormCreate OnDestroy FormDestroyOnPaint FormPaintOnShowFormShowPositionpoScreenCenterShowHint LCLVersion3.2.0.0 TPageControl DataNoteBookAnchorSideLeft.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.Control StatusBar1LeftHeightiTopWi]dtho ActivePageConfigurationTabAnchors akLeftakRightakBottom ParentFontTabIndexTabOrderOnChangeDataNoteBookChange TTabSheetInformationTabCaption Information ClientHeightH ClientWidthe ParentFont TGroupBoxColourControlsAnchorSideLeft.Control LoggingGroupAnchorSideRight.ControlInformationTabAnchorSideRight.Side asrBottomAnchorSideBottom.ControlInformationTabAnchorSideBottom.Side asrBottomLeftHeightTophWidthEAnchors akTopakLeftakRightakBottomBorderSpacing.RightBorderSpacing.BottomCaptionColour controls: ClientHeight ClientWidthC ParentFontTabOrderVisible TRadioGroupColourScalingRadioAnchorSideLeft.ControlColourControlsAnchorSideTop.ControlColourControlsAnchorSideBottom.ControlColourControlsAnchorSideBottom.Side asrBottomLeftHeightpTopWidthuAutoFill AutoSize BorderSpacing.AroundCaptionScaling:ChildSizing.LeftRightSpacingChildSizing.EnlargeHorizontalcrsHomogenousChildResizeChildSizing.EnlargeVerticalcrsHomogenousChildResizeChildSizing.ShrinkHorizontalcrsScaleChildsChildSizing.ShrinkVerticalcrsScaleChildsChildSizing.LayoutcclLeftToRightThenTopToBottomChildSizing.ControlsPerLine ClientHeight\ ClientWidths Items.Strings Power down2%20%100%OnClickColourScalingRadioClick ParentFontTabOrder TRadioGroup ColourRadioAnchorSideLeft.ControlColourScalingRadioAnchorSideLeft.Side asrBottomAnchorSideTop.ControlColourCyclingRadioAnchorSideTop.Side asrBottomAnchorSideRight.ControlColourControlsAnchorSideRight.Side asrBottomAnchorSideBottom.Side asrBottomLeftyHeightpTopFWidthAnchors akTopakLeftakRightAutoFill AutoSize BorderSpacing.AroundCaptionColour:ChildSizing.LeftRightSpacingChildSizing.EnlargeHorizontalcrsHomogenousChildResizeChildSizing.EnlargeVerticalcrsHomogenousChildResizeChildSizing.ShrinkHorizontalcrsScaleChildsChildSizing.ShrinkVerticalcrsScaleChildsChildSizing.LayoutcclLeftToRightThenTopToBottomChildSizing.ControlsPerLine ClientHeight\ ClientWidth Items.StringsRedBlueClearGreenOnClickColourRadioClick ParentFontTabOrder TRadioGroupColourCyclingRadioAnchorSideLeft.ControlColourScalingRadioAnchorSideLeft.Side asrBottomAnchorSideTop.ControlColourScalingRadioAnchorSideRight.ControlColourControlsAnchorSideRight.Side asrBottomLeftyHeightBTopWidthAnchors akTopakLeftakRightAutoFill AutoSize BorderSpacing.RightCaptionCyclingChildSizing.LeftRightSpacingChildSizing.EnlargeHorizontalcrsHomogenousChildResizeChildSizing.EnlargeVerticalcrsHomogenousChildResizeChildSizing.ShrinkHorizontalcrsScaleChildsChildSizing.ShrinkVerticalcrsScaleChildsChildSizing.LayoutcclLeftToRightThenTopToBottomChildSizing.ControlsPerLine ClientHeight. ClientWidth Items.StringsFixed Cycled (RBCG)OnClickColourCyclingRadioClickTabOrder TGroupBoxMeasurementGroupAnchorSideLeft.ControlInformationTabAnchorSideTop.ControlInformationTabLeftHeightXTopWidthBorderSpacing.LeftBorderSpacing.TopCaption Measurement ClientHeightV ClientWidth  ParentFontTabOrderTLabelDisplayedReadingAnchorSideLeft.Side asrCenterAnchorSideTop.ControlMeasurementGroupAnchorSideTop.Side asrCenterLeftcHeightDTop WidthN AlignmenttaCenterAnchors akTopBorderSpacing.TopCaption Font.Height Font.NameSans ParentColor ParentFontTLabel ReadingUnitsAnchorSideLeft.ControlDisplayedReadingAnchorSideLeft.Side asrBottomAnchorSideTop.ControlDisplayedReadingAnchorSideTop.Side asrBottomAnchorSideBottom.ControlDisplayedR eadingAnchorSideBottom.Side asrCenterLeftHeightHintmagnitudes per square arcsecondTop!WidthQAnchors akLeftakBottomBorderSpacing.LeftBorderSpacing.TopCaption mags/arcsec² ParentColor ParentFontParentShowHintShowHint TLabel DisplayedNELMAnchorSideRight.ControlMeasurementGroupAnchorSideRight.Side asrBottomAnchorSideBottom.Control Displayedcdm2LeftHeightHintNaked Eye Limiting MagnitudeTopWidth$Anchors akRightakBottomBorderSpacing.RightBorderSpacing.BottomCaptionNELM ParentColor ParentFontParentShowHintShowHint TLabel Displayedcdm2AnchorSideRight.ControlMeasurementGroupAnchorSideRight.Side asrBottomAnchorSideBottom.Control DisplayedNSULeftHeightHintcandela per square meterTop)Width$Anchors akRightakBottomBorderSpacing.RightBorderSpacing.BottomCaptioncd/m² ParentColor ParentFontParentShowHintShowHint TLabel DisplayedNSUAnchorSideTop.Side asrCenterAnchorSideRight.ControlMeasurementGroupAnchorSideRight.Side asrBottomAnchorSideBottom.ControlMeasurementGroupAnchorSideBottom.Side asrBottomLeftHeightHintNatural Sky UnitsTop?WidthAnchors akRightakBottomBorderSpacing.RightBorderSpacing.BottomCaptionNSU ParentColor ParentFontParentShowHintShowHint TGroupBox DetailsGroupAnchorSideLeft.ControlMeasurementGroupAnchorSideTop.ControlMeasurementGroupAnchorSideTop.Side asrBottomAnchorSideBottom.ControlInformationTabAnchorSideBottom.Side asrBottomLeftHeightTop]WidthAnchors akTopakLeftakBottomCaptionDetails ClientHeight ClientWidth ParentFontTabOrderTButton VersionButtonAnchorSideLeft.Control DetailsGroupAnchorSideTop.Control DetailsGroupAnchorSideRight.Control DetailsGroupLeftHeightHint#Get the device version information.TopWidthBorderSpacing.LeftCaptionVersionEnabled ParentFontTabOrderOnClickVersionButtonClickTListBoxVersionListBoxAnchorSideLeft.Control VersionButtonAnchorSideTop.Control VersionButtonAnchorSideTop.Side asrBottomAnchorSideRight.Control VersionButtonAnchorSideRight.Side asrBottomAnchorSideBottom.Control DetailsGroupAnchorSideBottom.Side asrBottomLeftHeightTopWidthAnchors akTopakLeftakRightakBottomBorderSpacing.TopBorderSpacing.Bottom Font.Height Font.NameCourier 10 Pitch Font.PitchfpFixed ItemHeight ParentFont ScrollWidthTabOrderTopIndexTButton RequestButtonAnchorSideLeft.Control VersionButtonAnchorSideLeft.Side asrBottomAnchorSideTop.Control VersionButtonAnchorSideRight.Control DetailsGroupAnchorSideRight.Side asrBottomLeft HeightHint0Get an updated reading from the selected device.TopWidthAnchors akTopakRightBorderSpacing.LeftBorderSpacing.RightCaptionReading ParentFontTabOrderOnClickRequestButtonClickTListBoxReadingListBoxAnchorSideLeft.Control RequestButtonAnchorSideTop.ControlVersionListBoxAnchorSideRight.Control RequestButtonAnchorSideRight.Side asrBottomAnchorSideBottom.ControlVersionListBoxAnchorSideBottom.Side asrBottomLeft HeightTopWidthAnchors akTopakLeftakRightakBottom Font.Height Font.NameCourier 10 Pitch Font.PitchfpFixed ItemHeight ParentFont ScrollWidthTabOrderTopIndex TGroupBox LoggingGroupAnchorSideLeft.ControlMeasurementGroupAnchorSideLeft.Side asrBottomAnchorSideTop.ControlMeasurementGroupLeftHeightXTopWidthCBorderSpacing.LeftCaptionLogging ClientH eightD ClientWidthA ParentFontTabOrderTButton HeaderButtonAnchorSideLeft.Control LoggingGroupAnchorSideTop.Control LoggingGroupLeftHeightHintView the log header settingsTopWidthdBorderSpacing.AroundCaptionHeader ParentFontTabOrderOnClickHeaderButtonClickTButtonLogOneRecordButtonAnchorSideLeft.Control HeaderButtonAnchorSideLeft.Side asrBottomAnchorSideTop.Control HeaderButtonLeftmHeightHint-Log one reading into log directory path file.TopWidthdBorderSpacing.LeftCaption One record ParentFontTabOrderOnClickLogOneRecordButtonClickTButtonLogContinuousButtonAnchorSideTop.Control HeaderButtonAnchorSideTop.Side asrBottomAnchorSideRight.ControlLogOneRecordButtonAnchorSideRight.Side asrBottomLeftmHeightHint4Start logging readings into log directory path file.Top%WidthdAnchors akTopakRightBorderSpacing.TopCaption Continuous ParentFontTabOrderOnClickLogContinuousButtonClickTButtonLogSettingsButtonAnchorSideLeft.Control HeaderButtonAnchorSideTop.Control HeaderButtonAnchorSideTop.Side asrBottomLeftHeightHintSet options for logging.Top%WidthdBorderSpacing.TopCaptionSettingsTabOrderOnClickLogSettingsButtonClick TTabSheetCalibrationTabCaption Calibration ClientHeightH ClientWidthe ParentFontTLabelLabel9LeftHeightTopOWidth[CaptionDesired Values ParentColor ParentFontTLabelLabel10LeftHeightTopOWidthQCaption Actual Values ParentColor ParentFontTLabelLabel11AnchorSideTop.ControlLCODesAnchorSideTop.Side asrCenterAnchorSideRight.ControlLCODesLeftSHeightTopmWidth AlignmenttaRightJustifyAnchors akTopakRightAutoSizeCaptionLight Calibration Offset: ParentColor ParentFontTLabelLabel12AnchorSideTop.ControlLCTDesAnchorSideTop.Side asrCenterAnchorSideRight.ControlLCTDesLeftHeightTopWidth AlignmenttaRightJustifyAnchors akTopakLeftakRightAutoSizeCaptionLight Calibration Temperature: ParentColor ParentFontTLabelLabel13AnchorSideTop.ControlDCPDesAnchorSideTop.Side asrCenterAnchorSideRight.ControlDCPDesLeft-HeightTopWidth AlignmenttaRightJustifyAnchors akTopakLeftakRightAutoSizeCaptionDark Calibration Period: ParentColor ParentFontTLabelLabel14AnchorSideTop.ControlDCTDesAnchorSideTop.Side asrCenterAnchorSideRight.ControlDCTDesLeftHeightTopWidth AlignmenttaRightJustifyAnchors akTopakLeftakRightAutoSizeCaptionDark Calibration Temperature: ParentColor ParentFontTLabelLabel15LeftOHeight_TopWidthYCaptionNotes: - See calibration sheet for original settings. - Add/subtract Light Cal offset for extra glass covering. - Temperature values get reconverted, so the actual may be slightly different than the desired. ParentColor ParentFontTButtonLogCalInfoButtonLeftHeightTop,WidthCaptionLog Calibration Info ParentFontTabOrderVisibleOnClickLogCalInfoButtonClickTButtonLCOSetLeftcHeightTopfWidth2CaptionSet ParentFontTabOrderOnClick LCOSetClickTButtonLCTSetLeftcHeightTopWidth2CaptionSet ParentFontTabOrderOnClick LCTSetClickTButtonDCPSetLeftcHeightTopWidth2CaptionSet ParentFontTabOrderOnClick DCPSetClickTButtonDCTSetLeftcHeightTopWidth2CaptionSet ParentFontTabOrder OnClick DCTSetClick TEditLCODesLeftHeight"TopfWidth] AlignmenttaCenter Font.Height Font.NameCourier 10 Pitch ParentFontTabOrderTEditLCTDesLeftHeight"TopWidth] AlignmenttaCenter Font.Height Font.NameCourier 10 Pitch ParentFontTabOrderTEditDCPDesLeftHeight"TopWidth] AlignmenttaCenter Font.Height Font.NameCourier 10 Pitch ParentFontTabOrderTEditDCTDesLeftHeight"TopWidth] AlignmenttaCenter Font.Height Font.NameCourier 10 Pitch ParentFontTabOrder TEditLCOActLeftHeight"TophWidth] AlignmenttaCenter Font.Height Font.NameCourier 10 Pitch Font.PitchfpFixed ParentFontReadOnly TabOrderTEditLCTActLeftHeight"TopWidth] AlignmenttaCenter Font.Height Font.NameCourier 10 Pitch Font.PitchfpFixed ParentFontReadOnly TabOrderTEditDCPActLeftHeight"TopWidth] AlignmenttaCenter Font.Height Font.NameCourier 10 Pitch Font.PitchfpFixed ParentFontReadOnly TabOrder TEditDCTActLeftHeight"TopWidth] AlignmenttaCenter Font.Height Font.NameCourier 10 Pitch Font.PitchfpFixed ParentFontReadOnly TabOrder TLabelLabel32LeftHeightToplWidth'Captionmpsas ParentColor ParentFontTLabelLabel33LeftHeightTopWidthCaption°C ParentColor ParentFontTLabelLabel34LeftHeightTopWidthCaption°C ParentColor ParentFontTLabelLabel35LeftHeightTopWidthCaptions ParentColor ParentFontTBitBtnGetCalInfoButtonLeftHeightHintRefreshTopWidth" Glyph.Data :6BM66( dd^4 ;;;;z~zQ]:΃ xxx0fd|&+++eee Q(((tj)))%mmm BBB'A6-3(((3"m$WWWaFvvv))) 2LLLtqqqSc oooA,,,"""T#5" OnClickGetCalInfoButtonClick ParentFontTabOrder TTabSheetReportIntervalTabCaptionReport Interval ClientHeightH ClientWidthe ParentFont TCheckGroupContCheckGroupLeftHeightTopWidthAutoFill CaptionContinuous reportsChildSizing.LeftRightSpacingChildSizing.TopBottomSpacingChildSizing.EnlargeHorizontalcrsHomogenousChildResizeChildSizing.EnlargeVerticalcrsHomogenousChildResizeChildSizing.ShrinkHorizontalcrsScaleChildsChildSizing.ShrinkVerticalcrsScaleChildsChildSizing.LayoutcclLeftToRightThenTopToBottomChildSizing.ControlsPerLine ClientHeight ClientWidth Items.StringsReporting enabledReporting compressedReport un-averagedLED blink (accessory)Ideal crossover firmware OnItemClickContCheckGroupItemClick ParentFontTabOrderVisibleData  TGroupBoxTimedReportsGroupBoxLeftHeight TopWidthCaption Timed reports ClientHeight ClientWidth ParentFontTabOrderTBitBtnGetReportIntervalAnchorSideLeft.ControlTimedReportsGroupBoxAnchorSideTop.ControlTimedReportsGroupBoxLeftHeightHintGet Report Interval settingsTopWidth"BorderSpacing.Around Glyph.Data :6BM66( dd^4 ;;;;z~zQ]:΃ xxx0fd|&+++eee Q(((tj)))%mmm BBB'A/ 6-3(((3"m$WWWaFvvv))) 2LLLtqqqSc oooA,,,"""T#5" OnClickGetReportIntervalClick ParentFontTabOrderTLabelLabel16AnchorSideLeft.ControlITiDesAnchorSideLeft.Side asrCenterAnchorSideTop.Side asrBottomAnchorSideBottom.ControlITiDesLeftHeightTop'WidthUAnchors akLeftakBottomCaption Desired Value ParentColor ParentFontTLabelLabel17AnchorSideLeft.ControlITiEAnchorSideLeft.Side asrCenterAnchorSideTop.ControlITiEAnchorSideTop.Side asrBottomAnchorSideBottom.ControlITiELeftHeightTop'WidthBAnchors akLeftakBottomCaption in EEPROM ParentColor ParentFontTLabelLabel18AnchorSideTop.ControlITiDesAnchorSideTop.Side asrCenterAnchorSideRight.ControlITiDesLeft/HeightTopFWidth AlignmenttaRightJustifyAnchors akTopakRightBorderSpacing.RightCaptionReport Interval Time (seconds): ParentColor ParentFontTLabelLabel19AnchorSideTop.ControlIThDesAnchorSideTop.Side asrCenterAnchorSideRight.ControlIThDesLeftOHeightTopWidth AlignmenttaRightJustifyAnchors akTopakRightBorderSpacing.RightCaptionReport Threshold (mpsas): ParentColor ParentFontTButton ITiERButtonAnchorSideLeft.ControlITiDesAnchorSideLeft.Side asrBottomAnchorSideTop.ControlITiDesAnchorSideTop.Side asrCenterAnchorSideRight.Control ITiRButtonLeftWHeightHintSet in EEPROM and RAMTopCWidth2Anchors akTopakRightBorderSpacing.AroundCaptionE/R ParentFontTabOrderOnClickITiERButtonClickTButton IThERButtonAnchorSideLeft.ControlIThDesAnchorSideLeft.Side asrBottomAnchorSideTop.ControlIThDesAnchorSideTop.Side asrCenterLeftWHeightHintSet in EEPROM and RAMTopWidth2BorderSpacing.AroundCaptionE/R ParentFontTabOrderOnClickIThERButtonClickTEditITiDesAnchorSideRight.Control ITiERButtonLeftHeight"HintTime in secondsTop>Width]Anchors akRightBorderSpacing.Around Font.Height Font.NameCourier 10 Pitch ParentFontTabOrderTEditIThDesAnchorSideLeft.ControlITiDesLeftHeight"Hint)Value in magnitudes per square arcsecond.TopWidth]Anchors akLeft Font.Height Font.NameCourier 10 Pitch ParentFontTabOrderTEditITiEAnchorSideLeft.Control ITiRButtonAnchorSideLeft.Side asrBottomAnchorSideTop.Control ITiRButtonAnchorSideTop.Side asrCenterAnchorSideRight.ControlITiRLeftHeight"HintPermanent setting.Top>Width] A lignmenttaCenterAnchors akTopakRightBorderSpacing.Around Font.Height Font.NameCourier 10 Pitch ParentFontReadOnly TabOrderTEditIThEAnchorSideLeft.Control IThRButtonAnchorSideLeft.Side asrBottomAnchorSideTop.Control IThRButtonAnchorSideTop.Side asrCenterLeftHeight"HintPermanent setting.TopWidth] AlignmenttaCenterBorderSpacing.Around Font.Height Font.NameCourier 10 Pitch ParentFontReadOnly TabOrderTButton ITiRButtonAnchorSideLeft.Control ITiERButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlITiDesAnchorSideTop.Side asrCenterAnchorSideRight.ControlITiELeftHeightHint Set in RAMTopCWidth2Anchors akTopakRightBorderSpacing.AroundCaptionR ParentFontTabOrderOnClickITiRButtonClickTButton IThRButtonAnchorSideLeft.Control IThERButtonAnchorSideLeft.Side asrBottomAnchorSideTop.Control IThERButtonAnchorSideTop.Side asrCenterLeftHeightHint Set in RAMTopWidth2BorderSpacing.AroundCaptionR ParentFontTabOrderOnClickIThRButtonClickTEditIThRAnchorSideLeft.ControlIThEAnchorSideLeft.Side asrBottomAnchorSideTop.ControlIThEAnchorSideTop.Side asrCenterAnchorSideRight.ControlTimedReportsGroupBoxAnchorSideRight.Side asrBottomLeft$Height"HintTemporary setting.TopWidth] AlignmenttaCenterAnchors akTopakRightBorderSpacing.Around Font.Height Font.NameCourier 10 Pitch ParentFontReadOnly TabOrder TEditITiRAnchorSideLeft.ControlITiEAnchorSideLeft.Side asrBottomAnchorSideTop.ControlITiDesAnchorSideTop.Side asrCenterAnchorSideRight.ControlTimedReportsGroupBoxAnchorSideRight.Side asrBottomLeft$Height"HintTemporary setting.Top>Width] AlignmenttaCenterAnchors akTopakRightBorderSpacing.Around Font.Height Font.NameCourier 10 Pitch ParentFontReadOnly TabOrder TLabelLabel28AnchorSideLeft.ControlLabel17AnchorSideBottom.ControlLabel17LeftHeightTopWidthQAnchors akLeftakBottomCaption Actual Values ParentColor ParentFontTLabelLabel36AnchorSideLeft.ControlITiRAnchorSideLeft.Side asrCenterAnchorSideBottom.ControlITiRLeft=HeightTop'Width+Anchors akLeftakBottomCaptionin RAM ParentColor ParentFontTLabelLabel37AnchorSideLeft.ControlLabel19AnchorSideTop.ControlLabel19AnchorSideTop.Side asrBottomLeftQHeight9TopWidthGAnchors akLeftBorderSpacing.AroundCaptionlNotes: - Set threshold to limit reporting to dark reports only. - Set into RAM for temporary testing only. ParentColor ParentFontTLabelLabel38AnchorSideLeft.ControlLabel18AnchorSideTop.ControlLabel18AnchorSideTop.Side asrBottomLeft1Height9Top[WidthBorderSpacing.AroundCaptionXNotes: - Set Interval time to 0 to disable. - Set into RAM for temporary testing only. ParentColor ParentFontTLabelLabel39AnchorSideLeft.ControlIThEAnchorSideLeft.Side asrCenterAnchorSideBottom.ControlIThELeftHeightTopWidthBAnchors akLeftakBottomBorderSpacing.AroundCaption in EEPROM ParentColor ParentFontTLabelLabel40AnchorSideLeft.ControlLabel39AnchorSideBottom.ControlLabel39LeftHeightTopzWidthQAnchors akLeftakBottomCaption Actual Values ParentColor ParentFontTLabelLabel41AnchorSideLeft.ControlIThRAnchorSideLeft.Side asrCenterAnchorSideBottom.ControlIThRLeft=HeightTopWidth+Anchors akLeftakBottomCaptionin RAM ParentColor Pare ntFontTLabelLabel46AnchorSideLeft.Control ITiERButtonAnchorSideTop.Control ITiERButtonAnchorSideTop.Side asrBottomAnchorSideBottom.ControlLabel39LeftWHeightTop`WidthYCaptionPress to load > ParentColor ParentFontTLabelLabel47AnchorSideLeft.Control IThERButtonAnchorSideTop.Control IThERButtonAnchorSideTop.Side asrBottomLeftWHeightTopWidthYCaptionPress to load > ParentColor ParentFont TTabSheet FirmwareTabAnchorSideTop.Side asrCenterCaptionFirmware ClientHeightH ClientWidthe ParentFontTButtonCheckLockButtonAnchorSideTop.Control LoadFirmwareAnchorSideTop.Side asrCenterLeftxHeightHintCheck the lock switch status.TopWidthXAnchors akTopCaption Check Lock ParentFontTabOrderVisibleOnClickCheckLockButtonClickTButton LoadFirmwareLeftHeightHint/Load the selected formware file into the meter.TopWidthAnchors BorderSpacing.BottomCaption Load FirmwareEnabled ParentFontTabOrderOnClickLoadFirmwareClickTEditCheckLockResultAnchorSideLeft.ControlCheckLockButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlCheckLockButtonAnchorSideTop.Side asrCenterLeftHeight$Hint Lock status.TopWidthR ParentFontTabOrderVisible TProgressBarLoadFirmwareProgressBarAnchorSideLeft.ControlResetForFirmwareProgressBarAnchorSideLeft.Side asrBottomAnchorSideTop.ControlResetForFirmwareProgressBarLeftHeight HintFirmware load progressTopWidth ParentFontSmooth StepTabOrder TProgressBarResetForFirmwareProgressBarAnchorSideLeft.Control LoadFirmwareAnchorSideLeft.Side asrBottomAnchorSideTop.Control LoadFirmwareLeftHeight HintInitial reset unit progressTopWidthBorderSpacing.LeftMax ParentFontSmooth StepTabOrder TProgressBar FinalResetForFirmwareProgressBarAnchorSideLeft.ControlLoadFirmwareProgressBarAnchorSideLeft.Side asrBottomAnchorSideTop.ControlLoadFirmwareProgressBarLeft/Height HintFinal reset unit progressTopWidthMax ParentFontSmooth StepTabOrderTButtonFirmwareInfoButtonAnchorSideLeft.ControlCurrentFirmwareAnchorSideLeft.Side asrBottomAnchorSideTop.ControlCurrentFirmwareAnchorSideTop.Side asrCenterAnchorSideRight.Control FirmwareTabAnchorSideRight.Side asrBottomLeftHeightHint View firmware version changelog.TopWidthBorderSpacing.TopBorderSpacing.RightCaptionFirmware detailsConstraints.MinHeightConstraints.MinWidthF ParentFontTabOrderOnClickFirmwareInfoButtonClickTLabel LoadingStatusAnchorSideLeft.Control LoadFirmwareAnchorSideLeft.Side asrBottomAnchorSideBottom.Control LoadFirmwareAnchorSideBottom.Side asrBottomLeftHeightTopWidthAnchors akLeftakBottomBorderSpacing.LeftCaptionKStatus of loading firmware: Waiting for Load Firmware button to be pressed. ParentColor ParentFont TLabeledEditCurrentFirmwareAnchorSideTop.Control FirmwareTabLeftHeight$HintDThe current firmware Protocol, Model, Feature of the selected meter.TopWidthAnchors akTopBorderSpacing.TopEditLabel.HeightEditLabel.WidthoEditLabel.CaptionCurrent firmware:EditLabel.ParentColorEditLabel.ParentFont LabelPositionlpLeft ParentFontReadOnly TabOrderTButtonSelectFirmwareButtonAnchorSideTop.Control FirmwareFileAnchorSideTop.Side asrCenterLeftHeightTop,WidthAnchors akTopCaptionSelect firmwareTabOrderOnClickSelectFirmwareButtonClickTEdit FirmwareFileAnchorSide Left.ControlCurrentFirmwareAnchorSideTop.ControlCurrentFirmwareAnchorSideTop.Side asrBottomLeftHeight$Hint&Firmware file to be loaded into meter.Top&Width ParentFontTabOrder OnChangeFirmwareFileChange TGroupBox FWUSBGroupAnchorSideLeft.ControlCurrentFirmwareAnchorSideTop.Control FirmwareFileAnchorSideTop.Side asrBottomLeftHeightJTopJWidthAutoSize CaptionUSB comm check: ClientHeight6 ClientWidthTabOrder TButtonFWWaitUSBButtonAnchorSideLeft.Control FWUSBGroupAnchorSideTop.Control FWUSBGroupLeftHeightTopWidthBorderSpacing.LeftCaptionStart UNPLUG methodEnabledTabOrderOnClickFWWaitUSBButtonClickTLabelFWUSBExistsLabelAnchorSideLeft.ControlFWWaitUSBButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlFWWaitUSBButtonAnchorSideTop.Side asrCenterLeftHeightTopWidthAutoSize ParentColorTLabel FWCounterAnchorSideLeft.ControlFWUSBExistsLabelAnchorSideLeft.Side asrBottomAnchorSideTop.ControlFWWaitUSBButtonAnchorSideTop.Side asrCenterLeftAHeightTopWidthTAutoSizeBorderSpacing.Around ParentColorTButtonFWStopUSBButtonAnchorSideLeft.Control FWUSBGroupAnchorSideTop.ControlFWWaitUSBButtonAnchorSideTop.Side asrBottomAnchorSideRight.ControlFWWaitUSBButtonAnchorSideRight.Side asrBottomLeftHeightTopWidthAnchors akTopakLeftakRightBorderSpacing.LeftBorderSpacing.TopCaptionStop UNPLUG methodEnabledTabOrderOnClickFWStopUSBButtonClick TGroupBox FWEthGroupLeftHeight8TopWidth(Anchors CaptionEthernet module: ClientHeight$ ClientWidth&TabOrder TButtonbXPortDefaultsAnchorSideLeft.Control FWEthGroupAnchorSideTop.Control FWEthGroupAnchorSideBottom.Side asrBottomLeftHeightHint"Set SQM-LE XPort default baudrate.TopWidthCaptionXPort defaults ParentFontTabOrderOnClickbXPortDefaultsClick TProgressBarResetXPortProgressBarAnchorSideLeft.ControlbXPortDefaultsAnchorSideLeft.Side asrBottomLeftHeight HintXPort default setting progressTopWidth(BorderSpacing.LeftMax ParentFontSmooth StepTabOrder TProgressBarFinalResetForXPortProgressBarAnchorSideLeft.ControlResetXPortProgressBarAnchorSideLeft.Side asrBottomAnchorSideTop.ControlResetXPortProgressBarLeftHeight HintXPort reset progressTopWidtheMax ParentFontSmooth StepTabOrder TTabSheetDataLoggingTabCaption Data Logging ClientHeightH ClientWidthe ParentFont TGroupBox StorageGroupAnchorSideLeft.ControlTriggerGroupBoxAnchorSideLeft.Side asrBottomAnchorSideTop.ControlDeviceClockGroupBoxAnchorSideTop.Side asrBottomAnchorSideRight.ControlDataLoggingTabAnchorSideRight.Side asrBottomLeftHeightTop7WidthAnchors akTopakLeftakRightBorderSpacing.LeftCaptionStorage ClientHeight ClientWidth ParentFontTabOrderTLabel CapacityLabelAnchorSideLeft.Control StorageGroupAnchorSideTop.ControlDLDBSizeProgressBarAnchorSideTop.Side asrCenterLeftHeightTopWidth7BorderSpacing.LeftCaption Capacity: ParentColor ParentFontTLabelDLDBSizeProgressBarTextAnchorSideLeft.Control StorageGroupAnchorSideRight.Control StorageGroupAnchorSideRight.Side asrBottomAnchorSideBottom.Control StorageGroupAnchorSideBottom.Side asrBottomLeftHeightTopWidth AlignmenttaCenterAnchors akLeftakRightakBottomAutoSizeBorderSpacing.LeftBorderSpacing.Right ParentColor ParentFont TButtonDLLogOneButtonAnchorSideLeft.ControlDLRetrieveButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlDLRetrieveButtonAnchorSideRight.ControlDLEraseAllButtonLeftWHeightHint=Log one record to SQM unit database when reading > threshold.TopWidthKBorderSpacing.LeftBorderSpacing.RightCaptionLog one ParentFontTabOrderOnClickDLLogOneButtonClickTButtonDLEraseAllButtonAnchorSideLeft.ControlDLLogOneButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlDLLogOneButtonAnchorSideRight.Side asrBottomLeftHeightHintErase entire SQM database.TopWidthKCaption Erase all ParentFontTabOrderOnClickDLEraseAllButtonClickTButtonLogFirstRecordAnchorSideLeft.Control StorageGroupAnchorSideTop.Side asrBottomLeftHeightHint 1st recordTopWidth(Anchors akLeftBorderSpacing.LeftCaption|< ParentFontTabOrderOnClickLogFirstRecordClickTButtonLogPreviousRecordAnchorSideLeft.ControlLogPreviousRecord10AnchorSideLeft.Side asrBottomLeftbHeightHintPrevious recordTopWidth(Anchors akLeftBorderSpacing.LeftCaption< ParentFontTabOrderOnClickLogPreviousRecordClickTButton LogNextRecordAnchorSideLeft.ControlLogPreviousRecordAnchorSideLeft.Side asrBottomLeftHeightHint Next recordTopWidth(Anchors akLeftBorderSpacing.LeftCaption> ParentFontTabOrderOnClickLogNextRecordClickTButton LogLastRecordAnchorSideLeft.ControlLogNextRecord10AnchorSideLeft.Side asrBottomLeftHeightHint Last recordTopWidth(Anchors akLeftBorderSpacing.LeftCaption>| ParentFontTabOrderOnClickLogLastRecordClick TProgressBarDLDBSizeProgressBarAnchorSideLeft.Control CapacityLabelAnchorSideLeft.Side asrBottomAnchorSideRight.Control StorageGroupAnchorSideRight.Side asrBottomLeft@HeightTopWidthkAnchors akLeftakRightBorderSpacing.LeftBorderSpacing.Right ParentFontSmooth StepTabOrderTButtonLogPreviousRecord10AnchorSideLeft.ControlLogFirstRecordAnchorSideLeft.Side asrBottomLeft4HeightHintPrevoous 1/10thTopWidth(Anchors akLeftBorderSpacing.LeftCaption<< ParentFontTabOrderOnClickLogPreviousRecord10ClickTButtonLogNextRecord10AnchorSideLeft.Control LogNextRecordAnchorSideLeft.Side asrBottomLeftHeightHint Next 1/10thTopWidth(Anchors akLeftBorderSpacing.LeftCaption>> ParentFontTabOrderOnClickLogNextRecord10ClickTButtonDLRetrieveButtonAnchorSideLeft.Control StorageGroupAnchorSideTop.Control StorageGroupLeftHeightTopWidthKBorderSpacing.LeftBorderSpacing.RightCaptionRetrieve ParentFontTabOrder OnClickDLRetrieveButtonClickTSynEditLogRecordResultAnchorSideLeft.ControlDLRetrieveButtonAnchorSideTop.ControlDLRetrieveButtonAnchorSideTop.Side asrBottomAnchorSideRight.Control StorageGroupAnchorSideRight.Side asrBottomAnchorSideBottom.ControlLogFirstRecordLeftHeightTopWidthBorderSpacing.TopBorderSpacing.RightBorderSpacing.BottomAnchors akTopakLeftakRightakBottom Font.Height Font.Name Courier New Font.PitchfpFixed Font.QualityfqNonAntialiased ParentColor ParentFontTabOrder Gutter.Visible Gutter.Width9Gutter.MouseActionsRightGutter.WidthRightGutter.MouseActions KeystrokesCommandecUpShortCut&CommandecSelUpShortCut& Command ecScrollUpShortCut&@CommandecDownShortCut(Command ecSelDownShortCut(  Command ecScrollDownShortCut(@CommandecLeftShortCut%Command ecSelLeftShortCut% Command ecWordLeftShortCut%@Command ecSelWordLeftShortCut%`CommandecRightShortCut'Command ecSelRightShortCut' Command ecWordRightShortCut'@CommandecSelWordRightShortCut'`Command ecPageDownShortCut"Command ecSelPageDownShortCut" Command ecPageBottomShortCut"@CommandecSelPageBottomShortCut"`CommandecPageUpShortCut!Command ecSelPageUpShortCut! Command ecPageTopShortCut!@Command ecSelPageTopShortCut!`Command ecLineStartShortCut$CommandecSelLineStartShortCut$ Command ecEditorTopShortCut$@CommandecSelEditorTopShortCut$`Command ecLineEndShortCut#Command ecSelLineEndShortCut# CommandecEditorBottomShortCut#@CommandecSelEditorBottomShortCut#`Command ecToggleModeShortCut-CommandecCopyShortCut-@CommandecPasteShortCut- Command ecDeleteCharShortCut.CommandecCutShortCut. CommandecDeleteLastCharShortCutCommandecDeleteLastCharShortCut CommandecDeleteLastWordShortCut@CommandecUndoShortCutCommandecRedoShortCutCommand ecLineBreakShortCut Command ecSelectAllShortCutA@CommandecCopyShortCutC@Command ecBlockIndentShortCutI`Command ecLineBreakShortCutM@Command ecInsertLineShortCutN@Command ecDeleteWordShortCutT@CommandecBlockUnindentShortCutU`CommandecPasteShortCutV@CommandecCutShortCutX@Command ecDeleteLineShortCutY@Command ecDeleteEOLShortCutY`CommandecUndoShortCutZ@CommandecRedoShortCutZ`Command ecGotoMarker0ShortCut0@Command ecGotoMarker1ShortCut1@Command ecGotoMarker2ShortCut2@Command ecGotoMarker3ShortCut3@Command ecGotoMarker4ShortCut4@Command ecGotoMarker5ShortCut5@Command ecGotoMarker6ShortCut6@Command ecGotoMarker7ShortCut7@Command ecGotoMarker8ShortCut8@Command ecGotoMarker9ShortCut9@Command ecSetMarker0ShortCut0`Command ecSetMarker1ShortCut1`Command ecSetMarker2ShortCut2`Command ecSetMarker3ShortCut3`Command ecSetMarker4ShortCut4`Command ecSetMarker5ShortCut5`Command ecSetMarker6ShortCut6`Command ecSetMarker7ShortCut7`Command ecSetMarker8ShortCut8`Command ecSetMarker9ShortCut9`Command EcFoldLevel1ShortCut1Command EcFoldLevel2ShortCut2Command EcFoldLevel3ShortCut3Command EcFoldLevel4ShortCut4Command EcFoldLevel5ShortCut5Command EcFoldLevel6ShortCut6Command EcFoldLevel7ShortCut7Command EcFoldLevel8ShortCut8Command EcFoldLevel9ShortCut9Command EcFoldLevel0ShortCut0Command EcFoldCurrentShortCut-CommandEcUnFoldCurrentShortCut+CommandEcToggleMarkupWordShortCutMCommandecNormalSelectShortCutN`CommandecColumnSelectShortCutC`Command ecLineSelectShortCutL`CommandecTabShortCut Command ecShiftTabShortCut CommandecMatchBracketShortCutB`Command ecColSelUpShortCut&Command ecColSelDownShortCut(Command ecColSelLeftShortCut%Command ecColSelRightShortCut'CommandecColSelPageDownShortCut"CommandecColSelPageBottomShortCut"CommandecColSelPageUpShortCut!CommandecColSelPageTopShortCut!CommandecColSelLineStartShortCut$CommandecColSelLineEndShortCut#CommandecColSelEditorTopShortCut$CommandecColSelEditorBottomShortCut# MouseActionsMouseTextActionsMouseSelActionsVisibleSpecialChars vscSpace vscTabAtLast ScrollBarsssNoneSelectedColor.BackPriority2SelectedColor.ForePriority2SelectedColor.FramePriority2SelectedColor.BoldPriority2SelectedColor.ItalicPriority2SelectedColor.UnderlinePriority2SelectedColor.StrikeOutPriority2BracketHighlightStylesbhsBothBracketMatchColor.BackgroundclNoneBracketMatchColor.ForegroundclNoneBracketMatchColor.Style fsBoldFoldedCodeColor.BackgroundclNoneFoldedCodeColor.ForegroundclGrayFoldedCodeColor.FrameColorclGrayMouseLinkColor.BackgroundclNoneMouseLinkColor.ForegroundclBlueLineHighlightColor.BackgroundclNoneLineHighlightColor.ForegroundclNoneTSynGutterPartListSynLeftGutterPartList1TSynGutterMarksSynGutterMarks1Width MouseActionsTSynGutterLineNumberSynGutterLineNumber1Width MouseActionsMarkupInfo.Background clBtnFaceMarkupInfo.ForegroundclNone DigitCountShowOnlyLineNumbersMultiplesOf ZeroStart LeadingZerosTSynGutterChangesSynGutterChanges1Width MouseActions ModifiedColor SavedColorclGreenTSynGutterSeparatorSynGutterSeparator1Width MouseActionsMarkupInfo.BackgroundclWhiteMarkupInfo.ForegroundclGrayTSynGutterCodeFoldingSynGutterCodeFolding1 MouseActionsMarkupInfo.BackgroundclNoneMarkupInfo.ForegroundclGrayMouseActionsExpandedMouseActionsCollapsed TGroupBoxEstimatedBatteryGroupAnchorSideTop.ControlTriggerGroupBoxAnchorSideTop.Side asrBottomLeftHeightqTopWidthCaptionBattery life estimator ClientHeight] ClientWidth ParentFontTabOrderTLabelLabel27AnchorSideRight.ControlDLBatteryCapacityComboBoxLeftHeightTop WidthaAnchors akRightBorderSpacing.RightCaptionCapacity (mAH): ParentColor ParentFontTLabelLabel29LeftHeightTop(Width:Caption Duration: ParentColor ParentFontTLabelLabel31AnchorSideTop.ControlDLBatteryDurationUntilAnchorSideTop.Side asrCenterAnchorSideRight.ControlDLBatteryDurationUntilLeftHeightTopDWidthLAnchors akTopakRightBorderSpacing.RightCaption records until ParentColor ParentFontTEditDLBatteryDurationTimeAnchorSideTop.ControlDLBatteryCapacityComboBoxAnchorSideTop.Side asrBottomLeft?HeightTop#WidthgAutoSize ParentFontReadOnly TabOrderTEditDLBatteryDurationUntilAnchorSideTop.ControlDLBatteryDurationTimeAnchorSideTop.Side asrBottomAnchorSideRight.ControlDLBatteryDurationTimeAnchorSideRight.Side asrBottomLeftHeightTop?Width AlignmenttaCenterAnchors akTopakRightAutoSize ParentFontReadOnly TabOrder TComboBoxDLBatteryCapacityComboBoxLeftsHeightHint-Enter custom value here (space after number).TopWidth3AutoSize ItemHeight ItemIndex Items.Strings3000 mAH, Lithium batteries2600 mAH, Alkaline batteries1000 mAH, Carbon Zinc batteries ParentFontTabOrderText2600 mAH, Alkaline batteriesOnChangeDLBatteryCapacityComboBoxChangeTEditDLBatteryDurationRecordsAnchorSideLeft.ControlDLBatteryDurationTimeAnchorSideTop.ControlDLBatteryDurationTimeAnchorSideTop.Side asrBottomAnchorSideRight.Side asrBottomLeft?HeightTop?Width\ Alignmentt aCenterAutoSize ParentFontReadOnly TabOrder TGroupBoxTriggerGroupBoxAnchorSideTop.ControlDataLoggingTabLeftHeightTopWidthCaption*Trigger (logging to internal FLASH memory) ClientHeight ClientWidth ParentFontTabOrder TGroupBox ThresholdLeftHeight<Top(WidthCaptionThreshold : mpsas ClientHeight( ClientWidth ParentFontTabOrderTEdit DLThresholdLeftHeightHintB0=records all values, >0 only record values over this mpsas value.TopWidth1AutoSize ParentFontTabOrderOnChangeDLThresholdChangeTButtonDLThresholdSetLeft9HeightTopWidth@CaptionSet ParentFontTabOrderOnClickDLThresholdSetClick TGroupBoxThresholdVibrationGroupLeftHeight<TopkWidthCaptionThreshold: vibration ClientHeight( ClientWidth ParentFontTabOrderTEdit VThresholdLeftHeight$TopWidth1Anchors akTop ParentFontTabOrderOnChangeVThresholdChangeTButton VThresholdSetLeft8HeightTopWidth@CaptionSet ParentFontTabOrderOnClickVThresholdSetClick TComboBoxTriggerComboBoxLeftHeight$TopWidth ItemHeight ItemIndex Items.StringsOffEvery x seconds (always on)!Every x minutes (power save mode)"Every 5 minutes on the 1/12th hour"Every 10 minutes on the 1/6th hour Every 15 minutes on the 1/4 hour!Every 30 minutes on the 1/2 hourEvery hour on the hourReadOnly TabOrderTextOffOnChangeTriggerComboBoxChange TPageControl DLSecMinPagesAnchorSideLeft.ControlTriggerComboBoxAnchorSideLeft.Side asrBottomAnchorSideTop.ControlTriggerComboBoxAnchorSideTop.Side asrCenterLeftHeight"TopWidth ActivePage DLMinSheetBorderSpacing.LeftShowTabsTabIndexTabOrder TTabSheet DLSecSheetCaption DLSecSheet ClientHeight ClientWidthTLabelLabel22AnchorSideLeft.Control DLTrigSecondsAnchorSideLeft.Side asrBottomAnchorSideTop.Control DLTrigSecondsAnchorSideTop.Side asrCenterLeft5HeightTopWidthCaptions ParentColor ParentFontTEdit DLTrigSecondsAnchorSideLeft.Control DLSecSheetAnchorSideTop.Control DLSecSheetAnchorSideTop.Side asrCenterLeftHeightHintPress Enter when done.TopWidth1 AlignmenttaRightJustifyAutoSizeBorderSpacing.Left ParentFontTabOrderOnChangeDLTrigSecondsChangeTButton DLSetSecondsAnchorSideLeft.ControlLabel22AnchorSideLeft.Side asrBottomAnchorSideTop.Control DLTrigSecondsAnchorSideTop.Side asrCenterAnchorSideRight.Control DLSecSheetAnchorSideRight.Side asrBottomLeftCHeightTopWidth9BorderSpacing.LeftCaptionSet ParentFontTabOrderOnClickDLSetSecondsClick TTabSheet DLMinSheetCaption DLMinSheet ClientHeight ClientWidthTEdit DLTrigMinutesAnchorSideLeft.Control DLMinSheetAnchorSideTop.Control DLMinSheetAnchorSideTop.Side asrCenterLeftHeightHintPress Enter when done.TopWidth1 AlignmenttaRightJustifyAutoSizeBorderSpacing.Left ParentFontTabOrderOnChangeDLTrigMinutesChangeTLabelLabel23AnchorSideLeft.Control DLTrigMinutesAnchorSideLeft.Side asrBottomAnchorSideTop.Control DLTrigMinutesAnchorSideTop.Side asrCenterLeft5HeightTopWidth Captionm ParentColor ParentFontTButton DLSetSeconds1AnchorSideLeft.ControlLabel23AnchorSideLeft.Side asrBottomAnchorSideTop.Control DLTrigMinutesAnchorSideTop.Side asrCenterLeftFHeightTopWidth9BorderSpacing.LeftCaptionSet ParentFontTabOrderOnClickDLSetSeconds1Click TGroupBox SnowGroupBoxLeftHeight=TopsWidthCaptionSnow factor logging ClientHeight) ClientWidthTabOrderTLabelSnowSampleLabelAnchorSideLeft.Control SnowGroupBoxAnchorSideTop.ControlSnowReadSkipEditAnchorSideTop.Side asrCenterLeftHeightTopWidthWBorderSpacing.LeftCaption Sample every: ParentColorTEditSnowReadSkipEditAnchorSideLeft.ControlSnowSampleLabelAnchorSideLeft.Side asrBottomAnchorSideTop.Control SnowGroupBoxLeftZHeight$TopWidthPBorderSpacing.TopTabOrderTLabelSnowReadingsLabelAnchorSideLeft.ControlSnowReadSkipEditAnchorSideLeft.Side asrBottomAnchorSideTop.ControlSnowReadSkipEditAnchorSideTop.Side asrCenterLeftHeightTopWidth3BorderSpacing.LeftCaptionreading. ParentColor TRadioGroupDLMutualAccessGroupLeftHeightGTop(WidthAutoFill CaptionMutual access logging:ChildSizing.LeftRightSpacingChildSizing.EnlargeHorizontalcrsHomogenousChildResizeChildSizing.EnlargeVerticalcrsHomogenousChildResizeChildSizing.ShrinkHorizontalcrsScaleChildsChildSizing.ShrinkVerticalcrsScaleChildsChildSizing.LayoutcclLeftToRightThenTopToBottomChildSizing.ControlsPerLine ClientHeight3 ClientWidth Items.StringsBattery only loggingBattery and PC loggingOnClickDLMutualAccessGroupClickTabOrderVisible TGroupBoxDeviceClockGroupBoxAnchorSideLeft.ControlTriggerGroupBoxAnchorSideLeft.Side asrBottomAnchorSideTop.ControlDataLoggingTabAnchorSideRight.ControlDataLoggingTabAnchorSideRight.Side asrBottomLeftHeight7TopWidthAnchors akTopakLeftakRightBorderSpacing.LeftCaption Device Clock ClientHeight# ClientWidth ParentFontTabOrderTButtonDLClockSettingsButtonLeftHeightTopWidthKCaptionSettings ParentFontTabOrderOnClickDLClockSettingsButtonClick TLabeledEditDLClockDifferenceAnchorSideTop.ControlDLClockSettingsButtonAnchorSideRight.ControlDLClockDifferenceLabelLeftHeightTopWidthx AlignmenttaRightJustifyAnchors akTopakRightAutoSizeBorderSpacing.RightEditLabel.HeightEditLabel.WidthEEditLabel.Caption Difference:EditLabel.ParentColorEditLabel.ParentFont LabelPositionlpLeft ParentFontTabOrderTLabelDLClockDifferenceLabelAnchorSideLeft.Side asrBottomAnchorSideTop.ControlDLClockDifferenceAnchorSideTop.Side asrCenterAnchorSideRight.Side asrBottomLeftDHeightTop WidthdAnchors akTopAutoSizeBorderSpacing.RightCaption second(s) ParentColor ParentFontTButtonTrickleOnButtonLeft#HeightTopWidthCaptionT1 ParentFontTabOrderVisibleOnClickTrickleOnButtonClickTButtonTrickleOffButtonLeft HeightTopWidthCaptionT0 ParentFontTabOrderVisibleOnClickTrickleOffButtonClick TTabSheetConfigurationTabCaption Configuration ClientHeightH ClientWidthe ParentFontTButtonConfDarkCalButtonAnchorSideLeft.Side asrBottomAnchorSideTop.Side asrCenterAnchorSideRight.Control ScrollBox1AnchorSideBottom.ControlConfLightCalButtonAnchorSideBottom.Side asrBottomLeftHeightHint"Read notes before pressing button!TopWidth0Anchors akRightakBottomBorderSpacing.LeftBorderSpacing.RightCaptionDark ParentFontTabOrderOnClickConfDarkCalButtonClick TLabeledEdit ConfRdgmpsasLeftUHeightHintUnaveraged meter valueTopWidthO AlignmenttaCenterAutoSizeEditLabel.HeightEditLabel.Width+EditLabel.CaptionBright.EditLabel.ParentColorEditLabel.ParentFont LabelPositionlpLeft ParentF ontReadOnly TabOrderTabStop TLabeledEdit ConfRdgPerLeftUHeightHintUnaveraged periodTop!WidthO AlignmenttaCenterAutoSizeEditLabel.HeightEditLabel.Width)EditLabel.CaptionPeriodEditLabel.ParentColorEditLabel.ParentFont LabelPositionlpLeft ParentFontReadOnly TabOrderTabStop TLabeledEdit ConfRdgTempLeftUHeightHintTemperature at sensorTop=WidthO AlignmenttaCenterAutoSizeEditLabel.HeightEditLabel.Width&EditLabel.CaptionTemp.EditLabel.ParentColorEditLabel.ParentFont LabelPositionlpLeft ParentFontReadOnly TabOrderTabStopTLabelLabel43AnchorSideLeft.Control ConfRdgTempAnchorSideLeft.Side asrBottomAnchorSideTop.Control ConfRdgTempAnchorSideTop.Side asrCenterLeftHeightTopBWidthBorderSpacing.LeftCaption°C ParentColor ParentFontTLabelLabel44AnchorSideLeft.Control ConfRdgmpsasAnchorSideLeft.Side asrBottomAnchorSideTop.Control ConfRdgmpsasAnchorSideTop.Side asrCenterLeftHeightTop Width'BorderSpacing.LeftCaptionmpsas ParentColor ParentFontTLabelLabel45AnchorSideLeft.Control ConfRdgPerAnchorSideLeft.Side asrBottomAnchorSideTop.Control ConfRdgPerAnchorSideTop.Side asrCenterLeftHeightTop&WidthBorderSpacing.LeftCaptionsec ParentColor ParentFontTLabelConfTempWarningAnchorSideLeft.Control ConfRdgTempAnchorSideLeft.Side asrCenterAnchorSideTop.Control ConfRdgTempAnchorSideTop.Side asrBottomLeftVHeightHint/Calibration temperature range warning indicatorTop[WidthM AlignmenttaCenterAutoSizeBorderSpacing.TopCaptionXIIIIIIIIIIIIIIIIIIIIIX ParentColor ParentFontTMemoMemo1AnchorSideLeft.Control ScrollBox1AnchorSideLeft.Side asrBottomAnchorSideTop.ControlConfigurationTabAnchorSideRight.ControlConfigurationTabAnchorSideRight.Side asrBottomAnchorSideBottom.ControlConfigurationTabAnchorSideBottom.Side asrBottomLeftHeight<TopWidthAnchors akTopakLeftakRightakBottomBorderSpacing.TopBorderSpacing.RightBorderSpacing.Bottom BorderStylebsNone Lines.Strings2Calibration is performed at the Unihedron factory.5Light calibration requires a calibrated light source.Dark calibration is done in an absolutely dark environment. Keep refreshing the readings until the period stabilizes or reaches the top limit of 300.00 seconds.The calibration settings can be restored from the calibration page using the original values from your calibration sheet that was supplied with the delivered unit. ParentFontParentShowHint ScrollBarsssAutoVerticalTabOrder TabStopTButtonPrintCalReportAnchorSideLeft.Control LogCalButtonAnchorSideLeft.Side asrBottomAnchorSideBottom.ControlConfigurationTabAnchorSideBottom.Side asrBottomLeftGHeightHintPrint calibration reportTop-WidthAAnchors akLeftakBottomBorderSpacing.LeftBorderSpacing.BottomCaptionPrint ParentFontTabOrderVisibleOnClickPrintCalReportClickTBitBtn ConfGetCalLeftHeightHintRefreshTopWidth" Glyph.Data :6BM66( dd^4O ;;;;z~zQ]:΃ xxx0fd|&+++eee Q(((tj)))%mmm BBB'A6-3(((3"m$WWWaFvvv))) 2LLLtqqqSc oooA,,,"""T#5" OnClickConfGetCalClick ParentFontTabOrderTButton LogCalButtonAnchorSideLeft.ControlConfigurationTabAnchorSideBottom.ControlConfigurationTabAnchorSideBottom.Side asrBottomLeftHeightHintSave calibration data to fileTop-WidthDAnchors akLeftakBottomBorderSpacing.LeftBorderSpacing.BottomCaptionLog Cal ParentFontTabOrderOnClickLogCalButtonClickTBitBtnPrintLabelButtonAnchorSideLeft.ControlPrintCalReportAnchorSideLeft.Side asrBottomAnchorSideBottom.ControlConfigurationTabAnchorSideBottom.Side asrBottomLeftHeightHintPrint label for back of unitTop-Width1Anchors akLeftakBottomBorderSpacing.LeftBorderSpacing.BottomCaptionLabelOnClickPrintLabelButtonClick ParentFontTabOrderVisibleTButtonConfDarkCaluxButtonAnchorSideLeft.Side asrBottomAnchorSideRight.ControlConfDarkCalReqAnchorSideBottom.ControlConfLightCalButtonAnchorSideBottom.Side asrBottomLefttHeightHint2Set Dark calibration value to unaveraged dark timeTopWidthAnchors akRightakBottomBorderSpacing.LeftBorderSpacing.RightCaptionux ParentFontTabOrderOnClickConfDarkCaluxButtonClick TScrollBox ScrollBox1AnchorSideTop.ControlConfigurationTabAnchorSideRight.ControlMemo1AnchorSideBottom.ControlConfigurationTabAnchorSideBottom.Side asrBottomLeftHeight<TopWidthHorzScrollBar.PageHorzScrollBar.VisibleVertScrollBar.Page:VertScrollBar.Tracking Anchors akTopakBottomBorderSpacing.TopBorderS pacing.RightBorderSpacing.Bottom ClientHeight: ClientWidth ParentFontTabOrder TImagePanel1AnchorSideLeft.Control ScrollBox1AnchorSideTop.Control ScrollBox1AnchorSideRight.Control ScrollBox1AnchorSideRight.Side asrBottomLeftHeightXTopWidthAnchors akTopakLeftakRightParentShowHint TComboBoxLHComboAnchorSideTop.ControlConfRecWarningAnchorSideTop.Side asrBottomAnchorSideRight.ControlConfDarkCalButtonAnchorSideRight.Side asrBottomLeft3HeightHintLens holder typeToplWidthAnchors akTopakRightAutoSize ItemHeight Items.Strings No Holder GD Holder3D Printed Holder ParentFontTabOrder TextN/AVisibleOnChange LHComboChange TComboBox LensComboAnchorSideLeft.ControlLHComboAnchorSideTop.ControlLHComboAnchorSideTop.Side asrBottomAnchorSideRight.ControlLHComboAnchorSideRight.Side asrBottomLeft3HeightHint Lens typeTopWidthAnchors akTopakLeftakRightAutoSize ItemHeight Items.StringsNo LensGD LensHalf-ball Lens ParentFontTabOrder TextN/AVisibleOnChangeLensComboChange TComboBox FilterComboAnchorSideLeft.Control LensComboAnchorSideTop.Control LensComboAnchorSideTop.Side asrBottomAnchorSideRight.Control LensComboAnchorSideRight.Side asrBottomLeft3HeightHint Filter typeTopWidthAnchors akTopakLeftakRightAutoSize ItemHeight Items.Strings No FilterHoya CM500 filterUV IR Interference Filter ParentFontTabOrder TextN/AVisibleOnChangeFilterComboChangeTLabelConfRecWarningAnchorSideLeft.Control ConfRdgTempAnchorSideLeft.Side asrCenterAnchorSideTop.Control ConfRdgTempAnchorSideTop.Side asrBottomLeftHeightHint EEPROM Flash defective indicatorTopYWidthM AlignmenttaCenterAnchors akTopAutoSizeCaptionXIIIIIIIIIIIIIIIIIIIIIX ParentColor ParentFontTLabel LHComboLabelAnchorSideTop.ControlLHComboAnchorSideTop.Side asrCenterAnchorSideRight.ControlLHComboLeftHeightTopqWidth/Anchors akTopakRightBorderSpacing.RightCaptionHolder: ParentColor ParentFontVisibleTLabelLensComboLabelAnchorSideTop.Control LensComboAnchorSideTop.Side asrCenterAnchorSideRight.Control LensComboLeftHeightTopWidth!Anchors akTopakRightBorderSpacing.RightCaptionLens: ParentColor ParentFontVisibleTLabelFilterComboLabelAnchorSideTop.Control FilterComboAnchorSideTop.Side asrCenterAnchorSideRight.Control FilterComboLeft HeightTopWidth$Anchors akTopakRightBorderSpacing.RightCaptionFilter: ParentColor ParentFontVisible TCheckGroupLockSwitchOptionsAnchorSideTop.Control FilterComboAnchorSideTop.Side asrBottomAnchorSideRight.Control FilterComboAnchorSideRight.Side asrBottomLeft'HeightRTopWidthAnchors akTopakRightakBottomAutoFill BorderSpacing.BottomCaptionLock switch protects:ChildSizing.LeftRightSpacingChildSizing.TopBottomSpacingChildSizing.EnlargeHorizontalcrsHomogenousChildResizeChildSizing.EnlargeVerticalcrsHomogenousChildResizeChildSizing.ShrinkHorizontalcrsScaleChildsChildSizing.ShrinkVerticalcrsScaleChildsChildSizing.LayoutcclLeftToRightThenTopToBottomChildSizing.ControlsPerLine ClientHeight> ClientWidth Items.Strings Cal. settingsRpt. Int. settingsConf. settingsThese settings OnItemClickLockSwitchOptionsItemClick ParentFontTabOrderVisibleData TImage LockedImageLeftHeight HintLockedTopWidth Picture.Data TPortableNetworkGraphicPNG  IHDR00`n pHYs\F\FCAtIME %.b5caMIDATXYK+AmN90pWZ5QAEPQHMe`aaace)(b# b' F-1-ĀJA%+^4"Ų3|]Lr}1ܞt:}/I띝mmm]]]0-//kv (ah/23X,N󨃃Tsӯ( ekkkSSS+pڶf&)߶766&{WVV7{<\.'z{{@T Ih}yyIuxxX~dR@ @F" 'b677;A[[[(|BPեt<<GH!dxEi<3rbZ]i R ؞y1۞axn#Dg_h4<%\.#eYABQPӤW[Yq֐,ˡP,~?~Idt %Gz8XX,cYJ~EʬVCQX,6 qݕJEBݿA pIENDB` Proportional VisibleTButtonConfLightCalButtonAnchorSideLeft.ControlConfLightCalReqAnchorSideLeft.Side asrBottomAnchorSideBottom.Control LogCalButtonLeftHeightHint"Read notes before pressing button!TopWidth9Anchors akLeftakBottomBorderSpacing.LeftBorderSpacing.BottomCaptionLight ParentFontTabOrderOnClickConfLightCalButtonClickTShapeConfLightCalReqAnchorSideLeft.ControlConfigurationTabAnchorSideTop.ControlConfLightCalButtonAnchorSideTop.Side asrCenterAnchorSideBottom.Side asrBottomLeftHeightTopWidthBorderSpacing.Left Brush.ColorShapestCircleTShapeConfDarkCalReqAnchorSideTop.ControlConfDarkCaluxButtonAnchorSideTop.Side asrCenterAnchorSideRight.ControlConfDarkCalButtonLeftHeightTopWidthAnchors akTopakRightBorderSpacing.Right Brush.ColorShapestCircleTButtonLabelTextButtonAnchorSideLeft.ControlPrintLabelButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlPrintLabelButtonLeftHeightHint.Labeler command text to clipboard and console.Top-WidthCaptionTTabOrderOnClickLabelTextButtonClick TTabSheetGPSTabCaptionGPS ClientHeightH ClientWidthe ParentFontTButtonButton18LeftHeightTopWidthKCaption0: GGA ParentFontTabOrderOnClick Button18ClickTButtonButton1LeftHeightTop WidthKCaption1: GLLEnabled ParentFontTabOrderOnClick Button1ClickTButtonButton2LeftHeightTop8WidthKCaption2: GSAEnabled ParentFontTabOrderOnClick Button2ClickTButtonButton3LeftHeightTopOWidthKCaption4: RMCEnabled ParentFontTabOrderOnClick Button3ClickTButtonButton4LeftHeightTophWidthKCaption5: VTGEnabled ParentFontTabOrderOnClick Button4ClickTButtonButton5LeftHeightTopWidthKCaption6: MSSEnabled ParentFontTabOrderOnClick Button5ClickTButtonButton6LeftHeightTopWidthKCaption8: ZDAEnabled ParentFontTabOrderOnClick Button6ClickTButtonButton7LeftHeightTopWidthKCaptionA: GSV1Enabled ParentFontTabOrderOnClick Button7ClickTButtonButton8LeftHeightTopWidthKCaptionB: GSV2Enabled ParentFontTabOrderOnClick Button8ClickTButtonButton9LeftHeightTopWidthKCaptionC: GSV3Enabled ParentFontTabOrder OnClick Button9ClickTMemo GPSResponseLeftZHeight1Top Width ParentFontTabOrder TTabSheetTroubleshootingTabCaptionTroubleshooting ClientHeightH ClientWidthe ParentFontTListBoxListBox1LeftHeightTopWidth ItemHeight ParentFont ScrollWidthTabOrderTopIndexTButtonStartResettingLeftHeightTopJWidthmCaptionStart resetting ParentFontTabOrderOnClickStartResettingClickTButton StC opResettingLeftHeightToplWidthmCaptionStop resetting ParentFontTabOrderOnClickStopResettingClick TTabSheet SimulationCaption Simulation ClientHeightH ClientWidthe ParentFontTButtonStartSimulationLeftAHeightTopWidthKCaptionStart ParentFontTabOrderOnClickStartSimulationClickTButtonStopSimulationLeftHeightTopWidthKCaptionStop ParentFontTabOrderOnClickStopSimulationClick TCheckBox SimVerboseLeftAHeightTop1WidthNCaptionVerbose ParentFontTabOrderTMemo SimResultsAnchorSideLeft.Control SimulationAnchorSideRight.Control SimulationAnchorSideRight.Side asrBottomLeftHeightTopRWidth_Anchors akTopakLeftakRightBorderSpacing.LeftBorderSpacing.Right ParentFont ScrollBars ssAutoBothTabOrder TGroupBox GroupBox1AnchorSideLeft.Control SimulationAnchorSideTop.Control SimulationLeftHeightITopWidthBorderSpacing.LeftCaption Sensor timing ClientHeightG ClientWidth ParentFontTabOrder TLabeledEdit SimFreqMaxLeft_Height$TopWidthUEditLabel.HeightEditLabel.WidthUEditLabel.Caption Freq Max (Hz)EditLabel.ParentColorEditLabel.ParentFont ParentFontTabOrder TLabeledEdit SimPeriodMaxLeftHeight$TopWidthUEditLabel.HeightEditLabel.WidthUEditLabel.CaptionPeriod Max (s)EditLabel.ParentColorEditLabel.ParentFont ParentFontTabOrder TSpinEdit SimTimingDivLeftHeight$TopWidthUMaxValue' ParentFontTabOrderTLabelLabel3AnchorSideLeft.Control SimTimingDivLeftHeightTop Width"CaptionSteps ParentColor ParentFont TGroupBox GroupBox3AnchorSideLeft.Control GroupBox1AnchorSideLeft.Side asrBottomAnchorSideTop.Control SimulationLeftHeightITopWidthBorderSpacing.LeftCaptionSensor temperature ClientHeightG ClientWidth ParentFontTabOrder TLabeledEdit SimTempMinLeftHeight$TopWidthUEditLabel.HeightEditLabel.WidthUEditLabel.CaptionTemp MinEditLabel.ParentColorEditLabel.ParentFont ParentFontTabOrder TLabeledEdit SimTempMaxLeft^Height$TopWidthUEditLabel.HeightEditLabel.WidthUEditLabel.CaptionTemp MaxEditLabel.ParentColorEditLabel.ParentFont ParentFontTabOrder TSpinEdit SimTempDivLeftHeight$TopWidthUMaxValue' ParentFontTabOrderTLabelLabel42AnchorSideLeft.Control SimTempDivLeftHeightTopWidth"CaptionSteps ParentColor ParentFontTButton SimFromFileLeftHeightHint&From simin.csv stored in log directoryTopWidthKCaption From File ParentFontTabOrderOnClickSimFromFileClick TTabSheet VectorTabCaptionVector ClientHeightH ClientWidthe ParentFontTButton VCalButtonLeftHeight TopWidthtCaptionCalibrate-vector ParentFontTabOrderOnClickVCalButtonClick TTabSheetAccTabCaption Accessories ClientHeightH ClientWidthe ParentFont TabVisible TGroupBox ADISPGroupAnchorSideLeft.ControlAHTGroupAnchorSideLeft.Side asrBottomAnchorSideTop.ControlAccTabAnchorSideBottom.ControlAHTGroupAnchorSideBottom.Side asrBottomLeftHeightTopWidthAnchors akTopakLeftakBottomBorderSpacing.LeftBorderSpacing.TopCaptionDisplay ClientHeight ClientWidth ParentFontTabOrder TCheckBox ADISEnableAnchorSideLeft.Control ADISPGroupAnchorSideTop.ControlADISModelSelectAnchorSideTop.Side asrCenterLeftHeightTop WidthCBorderSpacing.LeftBorderSpacing.TopCaptionEnable ParentFontTabOrderOnChangeADISEnableChange TGroupBoxADISBrightnessGroupAnchorSideLeft.Control ADISEnableAnchorSideTop.ControlADISModelSelectAnchorSideTop.Side asrBottomAnchorSideRight.Control ADISPGroupAnchorSideRight.Side asrBottomLeftHeight[Top,WidthAnchors akTopakLeftakRightBorderSpacing.TopBorderSpacing.RightCaption Brightness ClientHeightG ClientWidth ParentFontTabOrder TRadioButton ADISFixedLeft HeightTopWidth;CaptionFixedChecked ParentFontTabOrderTabStop OnClickADISFixedClick TRadioButtonADISAutoAnchorSideTop.ControlADISFixedBrightnessAnchorSideTop.Side asrBottomLeft HeightTop+Width8CaptionAuto ParentFontTabOrderOnClick ADISAutoClick TTrackBarADISFixedBrightnessAnchorSideTop.Control ADISFixedAnchorSideTop.Side asrCenterLeftHHeight3TopWidthhMaxPosition OnMouseUpADISFixedBrightnessMouseUpOnKeyUpADISFixedBrightnessKeyUp ParentFontTabOrder TComboBoxADISModelSelectAnchorSideLeft.Control ADISEnableAnchorSideTop.Control ADISPGroupAnchorSideRight.Control ADISPGroupAnchorSideRight.Side asrBottomLeftjHeight$TopWidthpAnchors akTopakRightBorderSpacing.TopBorderSpacing.Right ItemHeight Items.Strings COM-11441 ParentFontTabOrderTextmodelOnChangeADISModelSelectChange TRadioGroupADISModeAnchorSideLeft.ControlADISBrightnessGroupAnchorSideTop.ControlADISBrightnessGroupAnchorSideTop.Side asrBottomAnchorSideRight.ControlADISBrightnessGroupAnchorSideRight.Side asrBottomAnchorSideBottom.Side asrBottomLeftHeightBTopWidthAnchors akTopakLeftakRightAutoFill AutoSize BorderSpacing.BottomCaptionModeChildSizing.LeftRightSpacingChildSizing.EnlargeHorizontalcrsHomogenousChildResizeChildSizing.EnlargeVerticalcrsHomogenousChildResizeChildSizing.ShrinkHorizontalcrsScaleChildsChildSizing.ShrinkVerticalcrsScaleChildsChildSizing.LayoutcclLeftToRightThenTopToBottomChildSizing.ControlsPerLine ClientHeight. ClientWidth Items.StringsPeriodic update (1Hz)Update at reading requestOnClick ADISModeClick ParentFontTabOrder TGroupBoxAHTGroupAnchorSideLeft.ControlAccRefreshButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlAccTabLeft,HeightTopWidthBorderSpacing.LeftBorderSpacing.TopCaptionHumidity/Temperature ClientHeight ClientWidth ParentFontTabOrderTButtonAHTRefreshButtonAnchorSideTop.ControlAHTModelSelectAnchorSideTop.Side asrBottomAnchorSideRight.ControlAHTModelSelectAnchorSideRight.Side asrBottomLeftwHeightTop,WidthKAnchors akTopakRightBorderSpacing.TopCaptionRefresh ParentFontTabOrderOnClickAHTRefreshButtonClick TLabeledEditAHTHumidityValueAnchorSideTop.ControlAHTRefreshButtonAnchorSideTop.Side asrBottomAnchorSideRight.ControlAHTModelSelectAnchorSideRight.Side asrBottomLeftwHeight$TopIWidthKAnchors akTopakRightBorderSpacing.TopEditLabel.HeightEditLabel.Width<EditLabel.Caption Humidity:EditLabel.ParentColorEditLabel.ParentFont LabelPositionlpLeft ParentFontTabOrder TLabeledEditAHTHumidityStatusAnchorSideTop.ControlAHTTemperatureValueAnchorSideTop.Side asrBottomAnchorSideRight.ControlAHTModelSelectAnchorSideRight.Side asrBottomLeftwHeight$TopWidthKAnchors akTopakRightBorderSpacing.TopEditLabel.HeightEditLabel.Width*EditLabel.CaptionStatus:EditLabel.ParentColorEditLabel.ParentFont LabelPositionlpLeft ParentFontTabOrder TLabeledEditAHTTemperatureValueAnchorSideTop.ControlAHTHumidityValueAnchorSideTop.Side asrBottomAnchorSideRight.ControlAHTRefreshButtonAnchorSideRight.Side asrBottomLeftwHeight$TopqWidthKAnchors akTopakRightBorderSpacing.TopEditLabel.HeightEditLabel.WidthTEditLabel.Caption Temperature:EditLabel.ParentColorEditLabel.ParentFont LabelPositionlpLeft ParentFontTabOrder TComboBoxAHTModelSelectAnchorSideLeft.Control AHTEnableAnchorSideTop.ControlAHTGroupAnchorSideRight.ControlAHTGroupAnchorSideRight.Side asrBottomLeftbHeight$TopWidth`Anchors akTopakRightBorderSpacing.TopBorderSpacing.Right ItemHeight Items.StringsHIH8120HYT939 ParentFontTabOrderTextmodelOnChangeAHTModelSelectChange TCheckBox AHTEnableAnchorSideLeft.ControlAHTGroupAnchorSideTop.ControlAHTModelSelectAnchorSideTop.Side asrCenterLeftHeightTop WidthCBorderSpacing.LeftBorderSpacing.TopCaptionEnable ParentFontTabOrderOnChangeAHTEnableChange TGroupBox ALEDGroupAnchorSideLeft.Control ADISPGroupAnchorSideLeft.Side asrBottomAnchorSideTop.ControlAccTabAnchorSideBottom.Control ADISPGroupAnchorSideBottom.Side asrBottomLeftHeighttTopWidthBorderSpacing.LeftBorderSpacing.TopCaptionReading LED blink ClientHeight` ClientWidth ParentFontTabOrder TCheckBox ALEDEnableAnchorSideLeft.Control ALEDGroupAnchorSideTop.Control ALEDGroupLeftHeightTopWidthCBorderSpacing.LeftBorderSpacing.TopCaptionEnable ParentFontTabOrderOnChangeALEDEnableChange TRadioGroupALEDModeAnchorSideLeft.Control ALEDEnableAnchorSideTop.Control ALEDEnableAnchorSideTop.Side asrBottomAnchorSideRight.Control ALEDGroupAnchorSideRight.Side asrBottomLeftHeight:TopWidthAnchors akTopakLeftakRightAutoFill BorderSpacing.TopBorderSpacing.RightCaptionModeChildSizing.LeftRightSpacingChildSizing.EnlargeHorizontalcrsHomogenousChildResizeChildSizing.EnlargeVerticalcrsHomogenousChildResizeChildSizing.ShrinkHorizontalcrsScaleChildsChildSizing.ShrinkVerticalcrsScaleChildsChildSizing.LayoutcclLeftToRightThenTopToBottomChildSizing.ControlsPerLine ClientHeight& ClientWidth Items.StringsAt reading creationAt reading requestOnClick ALEDModeClick ParentFontTabOrder TGroupBox GroupBox5AnchorSideLeft.Control ALEDGroupAnchorSideLeft.Side asrBottomAnchorSideTop.Control ALEDGroupAnchorSideBottom.ControlAHTGroupAnchorSideBottom.Side asrBottomLeftHeightTopWidthAnchors akTopakLeftakBottomBorderSpacing.LeftCaptionRelay ClientHeight ClientWidth ParentFontTabOrderTLabel ARLYModeLabelAnchorSideTop.ControlARLYModeComboBoxAnchorSideTop.Side asrCenterAnchorSideRight.ControlARLYModeComboBoxLeftHeightTop Width(Anchors akTopakRightBorderSpacing.TopBorderSpacing.RightCaptionMode: ParentColor ParentFont TComboBoxARLYModeComboBoxAnchorSideTop.Control GroupBox5AnchorSideRight.Control GroupBox5AnchorSideRight.Side asrBottomLeft1Height$TopWidthnBorderSpacing.TopBorderSpacing.Right ItemHeight Items.StringsLightDewpointHeat--3----4----5----6--Manual ParentFontTabOrderOnChangeARLYModeComboBoxChange TTrackBar ARLYThresholdAnchorSideLeft.ControlARLYThresholdLabelAnchorSideLeft.Side asrBottomAnchorSideTop.Side asrCenterAnchorSideBottom.Co ntrol GroupBox5AnchorSideBottom.Side asrBottomLeft'Height3HintTurn on above this mpsas.TopWidth_MaxPositionAnchors akLeftakBottom OnMouseUpARLYThresholdMouseUpOnKeyUpARLYThresholdKeyUp ParentFontTabOrder TLabeledEditARLYStatusLabeledEditAnchorSideTop.ControlARLYOnAnchorSideTop.Side asrBottomAnchorSideRight.ControlARLYOffAnchorSideRight.Side asrBottomLeftSHeight$TopIWidthK AlignmenttaCenterAnchors akTopakRightBorderSpacing.TopEditLabel.HeightEditLabel.Width*EditLabel.CaptionStatus:EditLabel.ParentColorEditLabel.ParentFont LabelPositionlpLeft ParentFontTabOrderTLabelARLYThresholdLabelAnchorSideLeft.Control GroupBox5AnchorSideBottom.Control ARLYThresholdAnchorSideBottom.Side asrBottomLeftHeightTopWidth#Anchors akLeftakBottomBorderSpacing.LeftBorderSpacing.BottomCaptionLight: ParentColor ParentFontTButtonARLYOnAnchorSideLeft.Control GroupBox5AnchorSideTop.ControlARLYModeComboBoxAnchorSideTop.Side asrBottomLeftHeightTop,WidthKBorderSpacing.LeftBorderSpacing.TopCaptionOn ParentFontTabOrderOnClick ARLYOnClickTButtonARLYOffAnchorSideLeft.ControlARLYOnAnchorSideLeft.Side asrBottomAnchorSideTop.ControlARLYOnLeftSHeightTop,WidthKBorderSpacing.LeftCaptionOff ParentFontTabOrderOnClick ARLYOffClick TLabeledEdit ARLYTValueAnchorSideTop.ControlARLYStatusLabeledEditAnchorSideTop.Side asrBottomLeftHeight$TopoWidth& AlignmenttaCenterAnchors akTopBorderSpacing.TopEditLabel.HeightEditLabel.Width EditLabel.CaptionT:EditLabel.ParentColorEditLabel.ParentFont LabelPositionlpLeft ParentFontTabOrder TLabeledEdit ARLYHValueAnchorSideTop.Control ARLYTValueLeftOHeight$TopoWidth AlignmenttaCenterAnchors akTopEditLabel.HeightEditLabel.WidthEditLabel.CaptionH:EditLabel.ParentColorEditLabel.ParentFont LabelPositionlpLeft ParentFontTabOrder TLabeledEdit ARLYTDPValueAnchorSideTop.Control ARLYHValueLeftHeight$TopoWidth AlignmenttaCenterAnchors akTopEditLabel.HeightEditLabel.WidthEditLabel.CaptionTdp:EditLabel.ParentColorEditLabel.ParentFont LabelPositionlpLeft ParentFontTabOrderTLabelARLYThresholdValueAnchorSideTop.Control ARLYThresholdAnchorSideTop.Side asrCenterLeftHeightTopWidth+Caption XiiiiiiiiiX ParentColor ParentFontTBitBtnAccRefreshButtonLeftHeight HintRefresh accessory settingsTopWidth" Glyph.Data :6BM66( dd^4 ;;;;z~zQ]:΃; xxx0fd|&+++eee Q(((tj)))%mmm BBB'A6-3(((3"m$WWWaFvvv))) 2LLLtqqqSc oooA,,,"""T#5" OnClickAccRefreshButtonClick ParentFontTabOrder TGroupBoxAccSNOWLEDGroupBoxAnchorSideLeft.Control ALEDGroupAnchorSideTop.Control ALEDGroupAnchorSideTop.Side asrBottomAnchorSideRight.Control ALEDGroupAnchorSideRight.Side asrBottomAnchorSideBottom.ControlAHTGroupAnchorSideBottom.Side asrBottomLeftHeightTopxWidthAnchors akTopakLeftakRightCaption Snow LED: ClientHeight ClientWidthTabOrderTButtonAccSnowLEDOnButtonAnchorSideLeft.ControlAccSNOWLEDGroupBoxAnchorSideLeft.Side asrCenterAnchorSideTop.ControlAccSnowOnLinRdgAnchorSideTop.Side asrCenterLeftHeightHintTurn ON snow LEDTop@Width(Anchors akTopBorderSpacing.Top CaptionONTabOrderOnClickAccSnowLEDOnButtonClickTButtonAccSnowLEDOffButtonAnchorSideLeft.ControlAccSnowLEDOnButtonAnchorSideTop.ControlAccSnowOffLinRdgAnchorSideTop.Side asrCenterLeftHeightHintTurn OFF snow LEDTopgWidth(BorderSpacing.TopCaptionOFFTabOrderOnClickAccSnowLEDOffButtonClickTShapeACCSnowLEDStatusAnchorSideLeft.ControlAccSnowLEDOnButtonAnchorSideLeft.Side asrCenterAnchorSideTop.Control AccSnowLinRqAnchorSideTop.Side asrCenterLeftHeightHintSnow LED statusTop WidthBorderSpacing.Left Brush.ColorclGrayShapestCircle TCheckBoxSnowLoggingEnableBoxAnchorSideLeft.ControlAccSNOWLEDGroupBoxAnchorSideTop.ControlAccSNOWLEDGroupBoxLeftHeightHint0Enable/Disable Snow LED when reading and loggingTopWidthCaptionSnow factor loggingTabOrderOnChangeSnowLoggingEnableBoxChangeTButton AccSnowLinRqAnchorSideTop.ControlSnowLoggingEnableBoxAnchorSideTop.Side asrBottomLeft8HeightHintGet linear readingTopWidthhAnchors akTopBorderSpacing.TopCaptionLinear ReadingTabOrderOnClickAccSnowLinRqClickTEditAccSnowOnLinRdgAnchorSideTop.Control AccSnowLinRqAnchorSideTop.Side asrBotktomLeft8Height$HintLinear readingTop:Widthh AlignmenttaRightJustifyAnchors akTopBorderSpacing.TopReadOnly TabOrderTEditAccSnowOffLinRdgAnchorSideTop.ControlAccSnowOnLinRdgAnchorSideTop.Side asrBottomLeft8Height$HintLinear readingTopaWidthh AlignmenttaRightJustifyAnchors akTopBorderSpacing.TopReadOnly TabOrderTEditAccSnowLinDiffAnchorSideLeft.ControlAccSnowOffLinRdgAnchorSideTop.ControlAccSnowOffLinRdgAnchorSideTop.Side asrBottomLeft8Height$HintLinear readingTopWidthh AlignmenttaRightJustifyBorderSpacing.TopReadOnly TabOrderTLabelLabel24AnchorSideLeft.Side asrBottomAnchorSideTop.ControlAccSnowLinDiffAnchorSideTop.Side asrCenterAnchorSideRight.ControlAccSnowLinDiffLeftHeightTopWidthAnchors akTopakRightCaptionDiff: ParentColorTBitBtn FindButtonAnchorSideLeft.ControlOwnerAnchorSideTop.ControlOwnerLeftHeight Hint5Find attached USB and Ethernet devices automatically.TopWidthAHelpType htKeywordBorderSpacing.LeftBorderSpacing.TopCaptionFind Glyph.Data :6BM66( dd0H"(-7>D9q 9|u;:~:~;9|u"i$4>dkoenu8y79~Sh$x%{nU7t Cbdowu58y7=!oqdcp$( Cdw $F9q :~%sb#fT{[T{[#f_28t%a9|uX'aUlgc00Ulgc[4"k9|u?,xnmTF FiQkE@A?[/RGAA-PEUeBFEY(JA~I~I(F? RxFM>laQ```]8,򪍍r[MitMLu(y@ }R0>:fffZܓO[WoIsVLuU RU) qLTK:QMdwsUQbCISU O7^dWrd_>Y:m^"kO7S7\I} ]S7U E \u c̺` ` c̺^uU OnClickFindButtonClick ParentFontTabOrderTListBox FoundDevicesAnchorSideLeft.Control FindButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlOwnerAnchorSideRight.Control CommNotebookAnchorSideBottom.Control DataNoteBookLeftEHeightTopWidthAnchors akTopakLeftakRightakBottomBorderSpacing.LeftBorderSpacing.Bottom Font.Height Font.NameCourier 10 Pitch Font.PitchfpFixed ItemHeight ParentFont ScrollWidthTabOrderTopIndexOnClickFoundDevicesClick OnDblClickFoundDevicesDblClickOnSelectionChangeFoundDevicesSelectionChange TPageControl CommNotebookAnchorSideTop.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.Control FoundDevicesAnchorSideBottom.Side asrBottomLeftHeightTopWidthx ActivePage TabEthernetAnchors akTopakRightakBottom ParentFontTabIndexTabOrderOnChangeCommNotebookChange OnChangingCommNotebookChanging TTabSheetTabUSBCaptionUSB ClientHeight| ClientWidthn ParentFontTEditUSBSerialNumberAnchorSideTop.ControlTabUSBLeftKHeight"TopWidthAnchors akTop Font.Height Font.NameCourier 10 Pitch Font.PitchfpFixed ParentFontReadOnly TabOrderTEditUSBPortAnchorSideTop.ControlUSBSerialNumberAnchorSideTop.Side asrBottomLeftLHeight"Top"WidthAnchors akTop Font.Height Font.NameCourier 10 Pitch Font.PitchfpFixed ParentFontTabOrderOnChange USBPortChangeTLabelLabel1AnchorSideTop.ControlUSBSerialNumberAnchorSideTop.Side asrCenterAnchorSideRight.ControlUSBSerialNumberLeftHeightTopWidth2Anchors akTopakRightBorderSpacing.RightCaption Serial #: ParentColor ParentFontTLabelLabel2AnchorSideTop.ControlUSBPortAnchorSideTop.Side asrCenterAnchorSideRight.ControlUSBPortLeft'HeightTop*WidthAnchors akTopakRightBorderSpacing.RightCaptionPort: ParentColor ParentFont TLabeledEdit LabeledEdit1AnchorSideLeft.ControlUSBPortAnchorSideTop.ControlUSBPortAnchorSideTop.Side asrBottomLeftLHeightTopDWidthPAutoSizeEditLabel.HeightEditLabel.Width$EditLabel.CaptionBaud:EditLabel.ParentColorEnabled LabelPositionlpLeftTabOrderText115200 TTabSheet TabEthernetCaptionEthernet ClientHeight| ClientWidthn ParentFontTLabelLabel4AnchorSideTop.Control EthernetMACAnchorSideTop.Side asrCenterAnchorSideRight.Control EthernetMACLeftHeightTopWidth Anchors akTopakRightBorderSpacing.RightCaptionMAC: ParentColor ParentFontTLabelLabel5AnchorSideTop.Control EthernetIPAnchorSideTop.Side asrCenterAnchorSideRight.Control EthernetIPLeftHeightTopWidthAnchors akTopakRightBorderSpacing.RightCaptionIP: ParentColor ParentFontTLabelLabel6AnchorSideTop.Control EthernetPortAnchorSideTop.Side asrCenterAnchorSideRight.Control EthernetPortLeftHeightTop*WidthAnchors akTopakRightBorderSpacing.RightCaptionPort: ParentColor ParentFontTEdit EthernetMACAnchorSideTop.Control TabEthernetLeft+Height"TopWidthmAnchors akTop Font.Height Font.NameCourier 10 Pitch Font.PitchfpFixed ParentFontReadOnly TabOrderTEdit EthernetIPAnchorSideTop.Control EthernetMACLeftHeight"TopWidthAnchors akTop Font.Height  Font.NameCourier 10 Pitch Font.PitchfpFixed ParentFontTabOrderOnChangeEthernetIPChangeTEdit EthernetPortAnchorSideLeft.Control EthernetIPAnchorSideTop.Control EthernetIPAnchorSideTop.Side asrBottomLeftHeight"Top"WidthJ Font.Height Font.NameCourier 10 Pitch Font.PitchfpFixed ParentFontTabOrderOnChangeEthernetPortChange TTabSheetTabRS232CaptionRS232 ClientHeight| ClientWidthn ParentFontTLabelLabel7AnchorSideTop.Control RS232PortAnchorSideTop.Side asrCenterLeftHeightTopWidthCaptionPort: ParentColor ParentFontTLabelLabel8AnchorSideTop.Control RS232BaudAnchorSideTop.Side asrCenterLeftHeightTop*Width$CaptionBaud: ParentColor ParentFont TComboBox RS232BaudAnchorSideTop.Control RS232PortAnchorSideTop.Side asrBottomLeft7Height"Top"WidthAnchors akTop Font.Height Font.NameCourier 10 Pitch Font.PitchfpFixed ItemHeight ItemIndex Items.Strings30060012001800240048009600192003840057600115200 ParentFontTabOrderText115200OnChangeRS232BaudChange TComboBox RS232PortAnchorSideTop.ControlTabRS232Left7Height"TopWidthAnchors akTop Font.Height Font.NameCourier 10 Pitch Font.PitchfpFixed ItemHeight ItemIndex Items.Strings ParentFontSorted TabOrderOnChangeRS232PortChange OnDropDownRS232PortDropDown OnEditingDoneRS232PortEditingDone TStatusBar StatusBar1AnchorSideBottom.ControlOwnerLeftHeightTopWidthoAnchors PanelsWidth2 ParentFont SimplePanelTBitBtn FindBluetoothLeftHeightHintFind Bluetooth devicesTop Width Glyph.Data :6BM66( ddKKJ"LK!ɇKJ J KK!ɆJ"LK"O%uNdhgasKN$K"I;P$d~Ui:fi9}S`N$I;L"Ů|UWe4e4fe4{QuML J ÚyrBj9f5ffi:iJ D"J ˥sCƞe4e4tJ D"D"J ΪxHf׻Ye4xJ D"D"J ү}MyIaVe4e4Û|J D"D"J ֵRÕo]f5ŞJ D"D"J ٺXЫwGƲk;ȢJ D"K!׸cYTǜxÖruGǡJ! O%ÚyҪ^ZǝyyInfM"L!6S)ظӭŒfͣYɟ|ͪQ&L!6M$wT+Ü{عھԴrS)M"wJ!EN%K!J J K!N$J!EOnClickFindBluetoothClick ParentFontTabOrderVisibleTShapeCommOpenAnchorSideLeft.Control FindButtonAnchorSideLeft.Side asrCenterLeftHeightHintConnection statusTopNWidthAnchors akLeft Brush.ColorclGrayShapestCircle TOpenDialogSelectFirmwareDialogFilter hex|*.hexLeft Top TMainMenu MainMenu1LeftTop TMenuItem FileMenuItemCaption&File TMenuItem OpenMenuItemCaptionOpenOnClickOpenMenuItemClick TMenuItemFindUSBMenuItemCaptionFind USBHintFind USB devicesShortCutU@OnClickFindUSBMenuItemClick TMenuItemFindEthMenuItemCaption Find EthernetHintFind Ethernet devicesShortCutE@OnClickFindEthMenuItemClick TMenuItemStartUpMenuItemCaptionStartUp optionsOnClickStartUpMenuItemClick TMenuItemQuitItemCaptionQuitOnClick QuitItemClick TMenuItem ViewMenuItemCaption&View TMenuItemViewSimMenuItem AutoCheck Caption SimulationOnClickViewSimMenuItemClick TMenuItemViewConfigMenuItem AutoCheck Caption ConfigurationChecked OnClickViewConfigMenuItemClick TMenuItemViewLogMenuItemCaptionLogShortCutL@OnClickViewLogMenuItemClick TMenuItemDirectoriesMenuItemCaption DirectoriesOnClickDirectoriesMenuItemClick TMenuItemDLHeaderMenuItemCaption DL HeaderHintShow the DL headerOnClickDLHeaderMenuItemClick TMenuItemConfigBrowserMenuItemCaptionConfig BrowserOnClickConfigBrowserMenuItemClick TMenuItemPlotterMenuItemCaptionPlotterOnClickPlotterMenuItemClick TMenuItem ToolsMenuItemCaption&Tools TMenuItem MenuItem1Captionold log to .datOnClickMenuItem1Click TMenuItemConvertLogFileItemCaption.dat to Moon Sun .csvOnClickConvertLogFileItemClick TMenuItemCommTermMenuItemCaption Comm TerminalOnClickCommTermMenuItemClick TMenuItemOpenDLRMenuItemCaption DL retrieveHintOpen DL Retrieve windowOnClickOpenDLRMenuItemClick TMenuItem mnDATtoKMLCaption .dat to .kmlOnClickmnDATtoKMLClick TMenuItemDatTimeCorrectionCaption.dat time correctionOnClickDatTimeCorrectionClick TMenuItemDatReconstructLocalTimeCaption.dat reconstruct local timeOnClickDatReconstructLocalTimeClick TMenuItemCorrection49to56MenuItemCaptionFirmware 49-56 DL CorrectionOnClickCorrection49to56MenuItemClick TMenuItem AverageToolCaption Average toolOnClickAverageToolMenuItemClick TMenuItemdatToDecimalDateCaption.dat to decimal dateOnClickdatToDecimalDateClick TMenuItemConcatenateMenuCaption ConcatenateHint%Concatenate many .dat files into one.OnClickConcatenateMenuClick TMenuItemCloudRemovalMilkyWayCaption.dat to Sun-Moon-MW-Clouds .csvOnClickCloudRemovalMilkyWayClick TMenuItem FilterSunMoonCaptionFilter Sun-Moon-MW-Clouds.csvOnClickFilterSunMoonClick TMenuItemARPMethodMenuItemCaptionARPMethodMenuItemVisibleOnClickARPMethodMenuItemClick TMenuItem HelpMenuItemCaption&Help TMenuItem OnlineManualsCaptionOnline manuals TMenuItemOnlineLUmanualCaption SQM-LU manualOnClickOnlineLUmanualClick TMenuItemOnlineLEmanualCaption SQM-LE manualOnClickOnlineLEmanualClick TMenuItemOnlineDLmanualCaptionSQM-LU-DL manualOnClickOnlineDLmanualClick TMenuItem OnlineVmanualCaptionSQM-DL-V manualOnClickOnlineVmanualClick TMenuItemOnlineLRmanualCaption SQM-LR manualOnClickOnlineLRmanualClick TMenuItemOnlineResourcesCaptionOnline resourceOnClickOnlineResourcesClick TMenuItem CmdLineItemCaptionCommand line informationOnClickCmdLineItemClick TMenuItem VersionItemCaptionVersion informationOnClickVersionItemClick TMenuItem AboutItemCaptionAboutOnClickAboutItemClick TSaveDialog DLSaveDialogLeft`Top TOpenDialog OpenLogDialogFilteriAll files|*.*|Comma Separated Variables|*.csv|Calibration logs|*.cal|UDM usage log|*.log|Text files|*.txtLeftTop TPrintDialog PrintDialog1FromPageToPageLeftTop@TProcessProcess1ActiveOptions PriorityppNormalStartupOptions ShowWindowswoNone WindowColumns WindowHeight WindowLeft WindowRows WindowTop WindowWidth FillAttributeLeftTop@TTimerCommBusyEnabledIntervaldOnTimer CommBusyTimerLeftXTop@TTimer FirmwareTimerEnabledIntervaldOnTimerFirmwareTimerTimerLeftTop@FORMDATATForm1TAGraph TASources TADbSourceTASeriesEditorTAToolsTATransformationsTAStyles TALegendPanel TANavigationTAIntervalSourcesTAChartAxisUtilsTAChartListboxTAChartExtentLink TAToolEditorsTAChartLiveViewTAChartImageListTASeriesPropEditors TAChartCombosTASourcePropEditorsTAChartLazarusPkg PrintersDlgsPrinter4LazaruslTPF0TForm2Form2LeftHeightTopWidthCaption File View ClientHeight ClientWidthPositionpoScreenCenter LCLVersion1.2.2.0 TPageControl PageControl1LeftHeightTopWidth ActivePageTextTabAnchors akTopakLeftakRightakBottomTabIndexTabOrder TTabSheetTextTabCaptionText ClientHeight ClientWidthTMemoMemo1LeftHeightTopWidthAnchors akTopakLeftakRightakBottom ScrollBars ssAutoBothTabOrder TTabSheetGraphTabCaptionGraph ClientHeight ClientWidth TabVisibleTChartChart1LeftHeightTopWidthAxisListMinorsTitle.LabelFont.Orientation Alignment calBottomMinorsFoot.Brush.Color clBtnFaceFoot.Font.ColorclBlueTitle.Brush.Color clBtnFaceTitle.Font.ColorclBlueTitle.Text.StringsTAChartAnchors akTopakLeftakRightakBottom ParentColorFORMDATATForm2.dd-mmm-yyyy hh:nn:ss (hh:nn am/pm)8@%1.1fh (Local-UTC) http://www. http://www.BTPF0TForm4Form4LeftHeightTopWidth BorderIcons CaptionAbout ClientHeight ClientWidthConstraints.MinHeightConstraints.MinWidth Icon.Data {{dd{(d0udd#^(,9s BNOXc:o&H-H$Ki7c;f6Z81$ !%' " '/0 2 2 320- * ( #$& ' ( (.13 1 9 $>7696 :?> ; > !@ >;= !@?=8 6 8: !? >=;9 9 > %C : :"A,JE9POTS^ZmH!B!3%-J.[ D{]S]OTdVKk!cJQTL Bo >f!Q )R.[8c0\ 5_0T 0 &" #% #-- 2 2421- ) '$%% & & (/45 0 592066 :!A=9 ?"A =< > $B ?=9 6 = ? $B ?>=; 9 =&D ? = ?&E!M>Z+IXf SM7oH|O 1Y+"?!+SH} Slh [_[P A~K3jP` d L2Y 6[ 9i ,U'R3\1[ 3]6X9 (  !#  ")+ 2 3432- ) '&&$ $ $ (16 8/ 25 -, 3 6 :"B <7!@#B < =!?&D ?>9 7#B&E %C > <=:6: $B :421&]7X/V:gY MJO0!T1g$L!I'L VT ZTW ^QbbM ;pNZf=t.Q@b9l;d *V9b8b 4[:\!@ $   " ( ' 2 3532- ) &(&$ " # '18 "8- .0 )'/4 :#C ;6"A$C < =!?'E >>97&E*I $B = ;< 837!?+J$C=90)F -N )=x `]$:&3Q,U$J#67a k Xf dk`om Z?eYe =wJ 9[3a;s>p2f -] /W1S9  !     # +056 6 6 4 1., & % $ # $ & (*%6!8 81 ' (3> = = >!@"? = 9 8<#@"?9 5 5 5 4 > !?#? = 4 ,.3>? @ A0 $) ;OEU2h  * .R0OG!'T*C Jjb PJ>s=okeGpGx E|/c .Z /U 4`0c >m:g)T -O)E )      # +/ 4 5 7 76 4 2 0. , + ) )+-..2 5 1,.9$C#C= !@%B"? 60665 7:8 46:'A-H.I %?7 563)E&B!>:)& . JS "h!["K! 2X=@0\"1*bLZc E|5[A /[4o2a/\N(T.X)S7^2^+S &K1S1M /     !  # *. 2 4678765 / - * ( ' ( )*'/7 6/0 :&D-J!? "@ 91+ (677 9 ; 832 5%@ 'A'A$= 6 . /1#:5 .', 3 *%H4h[fO -9_&W%T )P+@0Y8m2k?x 1_ "@'A$I0`L H@ %I2Y%O .P = 5,&A(> !    " ! ! # (, , -2467771 / , ) ' & ' ( )19 8317 >#@ = 'B 80 ,$ */6 !: 8 7 77 4 1 / /. ) " #&( % %F&L 8-E~Aw:i"^G+X9c7h#T"L*K:+X6a+S(J;$#CAA=60#A2U2V = % &  !    !$# " " ') & ' * -2457 862/ ---... . 2 8;87!;!<)C$?82()1 8!;8 665 2 " ' ( "  ! ! ##"!0W*J,&B :t:]HzYB>q :eM S)N7N7g!H#?+5M93$#E78- 3;.K -        "%% # "&' ! $ ) / 2 4 553 0 . , ,--3' * ;&E!> 3 'B "< !<)C&A30143561 * ),%'% % # $ $$""#$7 &,35s2q8\8jM 8lE|BqQ U= )LF|%P#?5: >: 07*( ( (#'#  "  ! #&&$ " %&  #(,14 7 0 .,*) ) + ,4( ' 6 @ <3 : 82'A)A2/ ( ( '*-+(*/) $ #'& ! " " " " "0' +7(j:#>j+`%W6P8pY,`G;-^B*](H6 "<(A* ) ! $(  !     ' !  & %), ! #'&% " $ % #),2583 1 / . . /024/** .3 5578 &/ 2* / ! ! &' # ! $ & & $$ "    ''&&13;01YF|=s)2^G,R :p$_6|L"A;[>m -Q %H #M D$-; #&$ !       !$%$$ &% % '*+($( ' & & ')+- 2564 0.. 0,+ ) ( '(()$$$$####  "$$ " "$& #&'        3235 (O;pDx %QL 2^!YD!H2\6T 7X8d &H.N6\!1U 9$"83) ! $"     !"$ # # " ! ! $') ' %) ' % $ % '*, 1465 2 0 0 1 * ) ( ' & &''""""""""  "$ # " ! #%#'(     ! " " #,0 +60W7k7i6d&V)YOF!U.X3P/V2\ <: C$D " * ! ##!!     ! " ! !$ # " $ '*+ **' $ " " $(* , /2320 / / ' ' & % $ $ $ $  ! ! ! ! #$ # ! ! #''#"&% "%%%%"55 +@2[:k 2c6iI| 1e -_C}T 3^ <L0W/ .07.&'($   !"!     +)((*,./*' # ! " %(' * -00/ - , % % $ # # " " "        "$%$ !   "' $#!"' & &&%% -A61*O!L9cBqS#Dv3g 3bBtJAmB"S"3Z6:<6%*"6+,&          !-,+)()*,)' # !$& $ % '*++ ) ' $ $ $ # # " ! !        $%&% !  ! "  #%##)-%$$ #.) 42YF7[ >i*f#>q2d0]>n 3g#Ht5J $/4 %,%%%% #9-= Gm)P8Y/\-o Ey0Y2^?n"I1\&\ !O 7f -Q#FB@.64(+)%"$"      !$&' !%() & $% & #$%%%%$$/+&%&'&$&'(('&$ #'&%$#" ! &()(&%&(# "(, -0 0''''$@+ 7;]7e'\'V 'J6`+U G8Z+N9cCq:n(@=#2SD<!C0%?0 1,#   # &   "- ,2(% #$&'% "$%&'(''&''''''''%%%$$### "%&#   " ( ( %-- $( "- . /4!6* %-$-%/ 88?3Z8h,_&U #I ,S2Z H'M3\2^ ;gEt%M 1= !?8,G'A, 9/ %#! ! %  $#&. * )'% #$&&% " #$%&&%$$%%%%%%%%%%$$$###*&! "$% $// '+- &+017!<4++-( "+%* %@ !=1S .V 4cCt:e;` 'L(Q>e+W,Z &T'V;f7iK? <-+55 = 2 %"  ! &    # " "'% # #%%$ # #$$%%$ # " # # 2# # # # # #%%%$$$$$  # %&$ "  (/,. .,/+7!;!81 , + * &+.' * ,E 3O4V -X1` @m Em>c%G!KAm 1^-^$S M6[:e ;a *M <"=!=60;8-!  $ &       $&%$ #$$$$%&&'&%$ #$$$$$$$$%%%$$$$$! & * ' !  % *)+ * % + -! - . 12 14 5 1)5":6 5='N.^ (Z5aGr5` :\ (Q'W 7f5aO&P+P1O8X;^)OCC=!#B =9-" !% &"" "+''&$ #$%&(()))(''''''''''''''''(("$ &()+,- /0 2) !*. ,% +5 56 7 49//4: "D*U-^ +\2^;f6eDl -Y%UCn:c"M"K )N(D=0T0Y)Q&L ?-I'D5 &$$%$ %!,$ !% #-(((&$$')()*+++**))))))))((()))))+'&.&9*=$7/ "752 4/5HJCX90D, (#&; %: 0366 !:4 * 0437Y(V(Y@l9c8cJz,[2`4_;c>c5[(P ;_ (OC(N !G D.Q -J2O&C5 '&''% %-/H!; )0 / ,0***'%%(, % &(*++**))))))))**+++,,, ) ) ) + /5$:(>!7"7<=RHL_TSgneyocw\SgRVifavKH^ (?*4L@D`07R"=4+8XKZz7Ff"4 %L2b/a8flQ>J\:JZ7?P0=K4JVKYeT]g&3&0+00# )""#% "(K=H( +)$ $ *,>!0C(+G8&'-+*1 69Flʂl}ʐ}^b{ae~xxňdz׷߲خЕ :1R@cCj9i1^ H(R)I 2 %G:Y%+<:G]AVkJO^,23 %, #557UZYy̥ə˓.92Y>iCn 7b*U,R)I:'N6\@j;f8d2` ;g2[8^5Y,@_6A]78R68P;9V/7T7D^?H\CJ]BK_j3_ ?i5] 3],S.S*8\.>[4=X9;S@K_PJc@HeCJeXXjQevEyP|S]{P[{[p[f`fYeT[vb`}\azTU_]S_WFT@6C.4A)6'/ 2+A(3I$,C-5L+3J-5L +A+C 7 82%=LAU~z}bbtPShvuzu\UxteyuywÙƨ޵볺Ɣuuzsvstqrorl :&!@3\>m5[:b@l=_"BD)S 2^7e0[ 8a,T+Y;g7R~icbjs΍̛ـҕԌĞ̬֒Ńzz`p2O]%E\HbzJ[uGRmMVq9F`7Mf(BZ 8P)D8__wˬęέҴԗŝħ˶۪ճݪ뽾୩}1#0P@fDn6b1^6a<`1T"5[!;c+W8d;e 4[(T!M+`%>`.N=0O0OBWwezf{_tezi~opprsvvxww}~‘őŒƓŔŕƖƖƚ˙ʞϡҝΜ͞ϝΣ֣֤ץئ٧ڨۨ۩کککککککک۩ۨڨڧ٧٦ئبباקצ֥դԤԥեդԤԣӢҢҡѢԢԢԡ3=(H.I'G (O8`$<`;VxMfJcMd=Tt/Dc@UtH^zOccwcv\ocvk}k}oqrqsuvxz{}×ŝˠΛɚȞ̞̟ПРѡңԤե֥֤դդե֥֥֥֥֤֤֤֣գգբԢԤԤԣӢҡѡѠРРРПϟϟϞΞΞΝНМϜ3D'K!8R!=A=_I[xTmPiRkTkWo^s^sav]q`tdw_rfxj|fum}rrqrsvy|z{~A˜ĕȡ͟˛̛̜͝ΟРѡҡҤӤӤӤӤӤӥԥԡӡӡӡӠҠҠҠҠРПϟϞΝ̛̜̜̜̜͜˛˛˛˛˘˘˗ʗ 3&C)E0L +I=91MYgYg[i]k^l`naobp^n_oaqcseuhxiyjzmmoqsuwxz{|~ÙĚśƟɟɠʡˡˢ̣ͣͤѤѤѤѤѤѤѤѤѤѣУТϢϡΡΡ̠̟͡͠˞ʝɝɞ̝˝˜ʜʛɛɛɖȖȕǕ!>;%B%5R(6S%C*8U3EbWeWeYgZh\j^l_m`n^n_o`pcseugwiyjzk~lnprtuvyy{|~˜ÙěśŜƝǞȞȟɟɠ̟̞͟͠͠͠͠͠͠͠͠͠˞˝ʝʞʝɝɜțǚƚƙŚșǙǙǘƘƗŗŒĒĒđ!>"?#A*G(E*GHXu_jWcXdYeZf\h]i_k_k_m`nbpdrfthviwjxk|k|m~oqsuvxyz|~—˜ØÙĚśƛƛțțțțțțțțțțȚǚǙƙƙƙřŘė×֕5 4-!=.I1FaN\x^fWd~XeYfZg\i]j^k_l^l_maobpdrfthviwhyizj{l}oqrsuvwy{}~˜ØØÙƙƙƙƙƙƙƙƙƘŘŘŗĖÖÖ×֖•!<9'-JEMjQb}[nTb~[a~Ze[f\g]h^i_j`kal_k`lamcoeqgshtiuhviwjxlzn|p~rsuvwy{}~•–×ĘŘŘŘŘŘŘŘŘŘŘŘŗėĖÖՕ––•#=*EMVqVa|Vc}Tc}Ta{Zc~[g[g\h]i^j_k`l`l`k`kalcnepfqgrhshtiukwmyo{q}ssvwxz|}”•ÖėŗŗėėėėėėėėĖÖՕ”=FaDOjYfP]wR[vW`{Ze\i[e}[e}\f~]g^h_i_i`j_j`kalbmdoepfqgrhtiujvlxnzp|r~suvwy{}~””X]vZf~M_vQax\c|_d}Q[sVf}YdzYdzZe{[f|\g}\g}]h~]h~_k_k`lbncodpeqfrhthtjvlxnzp|r~suvwy{}~T\yT\yT\yU]zU]zV^{V^{W_|Xa|Yb}Yb}Zc~[d\e\e\ebhbhciekflgmhniogrhsitkvmxnyp{p{q}r~suwxzz||}T]xT]xU^yU^yV_zV_zW`{W`{Yb}Yb}Yb}Zc~[d\e\e]fbibicjelfmgnhoipgrhsitkvlwnyozp{q}q}stvxyz{{|}U^yU^yU^yV_zV_zW`{W`{W`{Yc{Yc{Zd|Zd|[e}\f~]g]gbibicjdkfmgnhoipgrgritjulwmxnyozq|r}s~tvwyyz{|}~V]vW^wW^wX_xX_xY`yY`yY`yZaz[b{[b{\c|]d}^e~^e~_fahahbidkelfmgnhohqhqirktlunwoxoxozp{q|r}tuvwwxyz{}~~~~~~V]vV]vV]vW^wW^wX_xX_xX_xYaxZbyZby[cz\d{]e|]e|]e|_f`gahbicjelfmfmhoipipkrlsmtnunuowowpxqys{t|u}u}uuvxyz{|{|}~{{{{V\sV\sW]tW]tX^uX^uY_vY_vZauZauZau[bv\cw]dx]dx^ey]e|]e|^f}`haibjckdlfmfmgnhoipjqkrkrltltmunvowpxqyqyr}r}s~uvwxyxyyz|}}~~~)~~~~}}}|yyxxU[rU[rU[rV\sV\sW]tW]tW]tX_sX_sY`tZauZau[bv\cw\cw[cz[cz\d{^f}_g~`haibjfjfjgkhlimimjnjnkqkqlrmsntououpvqyrzs{t|v~wxxvvwxyz{{|||}}~~~~~}|||~~}}||vvvvUYqUYqUYqVZrVZrW[sW[sW[sX]rX]rY^sY^sZ_t[`u\av\avYaxZby[cz\d{^f}_g~`h`hdheieifjgkhlhlimiojpjpkqlrmsmsntpxqyrzs{t|v~wwuuvwxyzz{{{||}}}~~}}||{{{~~}}||{{u~u~u~u~TYnTYnTYnUZoUZoV[pV[pW\qVZrVZrW[sW[sX\tY]uZ^vZ^v\`x\`x]ay^bz_c{_c{`d|`d|bhcicidjekflflgmgngnhoipjqkrlslskulvnwpyqyqyqypxy}y}z~{{|||yz|~~|zzxwuu~}||}}||||{{{{yyyxwwwv~s{s{s{s{SXmSXmTYnTYnUZoUZoV[pV[pVZrVZrW[sW[sX\tY]uZ^vZ^v[_w\`x\`x]ay^bz_c{_c{_c{ag~bhbhcidjekekflgkgkhlimjnkolplplsmtovqxrxsysxsxqyrzrzs{t|u}v~v~xy{|}||{~}{xwtt~}|{{{||yyyxxxxwx~x~w}w}v|v|u{u{tytytytyTWlTWlUXmUXmVYnVYnWZoWZoX[pX[pX[pY\qZ]r[^s[^s\_t\_t\_t]`u^av^av_bw`cx`cxaf{af{bg|bg|ch}di~ejejdiejfkglhmininjojrkrmtovqxrxsysxlxlxlxmyo{p|r~r~t|u}u}u}u}u}t|s{|~|~{{yywwzzyx~x~yzzu}u}u}t|t|t|t|t|tztztzsysyrxrxrxrwrwrwrwRUjSVkSVkTWlTWlUXmUXmUXmWZoWZoX[pX[pY\qZ]rZ]r[^sZ]rZ]r[^s\_t]`u]`u^av^av^cx_dy_dy`ezaf{bg|bg|ch}eieifjgkhlimjnjniojplqnsqurvtxtxjxkykylzn|p~rst|t|t|s{s{rzqyqyvxvxwyxzy{y}z~{w}v|u{u{u{v|w}w}u{u{tztz tztzsysytxtxtxswswrvrvrvrvquququSTiSTiSTiTUjTUjUVkUVkVWlWXlWXlXYmYZnYZnZ[o[\p[\pZ[o[\p[\p\]q]^r]^r^_s^_s^bu^bu_cv`dw`dwaexbfybfydheieifjhlimimjngnhoiokpmrosqurvm{lzlzm{o}qsuwwvvuuuux{wzwzwzwzvywywyu{tzsyrxrxsysytztztzsysysysyrxrxswswswrvrvquququosososnrSQgSQgTRhTRhUSiUSiVTjVTjWVjWVjXWkXWkYXlZYm[Zn[ZnZYm[Zn[Zn\[o]\p^]q^]q_^r^_s^_s_`t_`t`auabvabvbcwdg|dg|eh}fi~gjhkiljmfkfkglhljnlpnqorpxowowowpxrzu}wzyyyyz{|xwvs|ryqvotnstzsyrxqwpvpvqwqwswswswswswrvrvrvrtrtrtqsqsprprprmpmpmpmpRPfRPfSQgSQgTRhTRhUSiUSiUUgUUgVVhVVhWWiXXjYYkYYkYYkYYkZZl[[m\\n\\n]]o]]o\^p\^p]_q^`r^`r_as`bt`bt`cx`cxadybezcf{dg|eh}eh}dj}dj}di~eifjhljnkooqnplnlnmooqqssup{p{p{q|r}tvwqrppp}oznwmvtzsyrxpvountntntptososososnrnrnroqoqnpnpmomolnlnknknknknQOeRPfRPfSQgSQgTRhTRhTRhSSeTTfTTfUUgVVhWWiWWiXXjXXjYYkYYkZZl[[m\\n\\n\\n[]o[]o\^p]_q]_q^`r_as_as\_t]`u]`u^av`cxadyadybezei|ei|eh}eh}fhhjjkklljkijhigigkinlomdododoepgrjumxnyiikloqsuu{tzrxpvntmsmsmsmqmqmqmqlplplplpnnmmmmmmllkkkkkklmlmlmlmPNaPNaQObQObRPcRPcSQdSQdRRdSSeSSeTTfUUgVVhVVhVVhWWiWWiWWiXXjXXjYYkYYkYYkY[mY[mZ\nZ\n[]o[]o\^p\^p\`r\`r\`r]as]as^bt^bt^btecyecyecyfdzge{ge{ge{hf|cgdhdhdheieifjfjinimimjnjnknknlonrnrosososososptptptnrmqkoimhlgkmnmnmnlmkljkjkjkgkgkgkgkgkfjfjfjeieieieiOM`PNaPNaQObQObRPcRPcRPcRRdRRdRRdSSeTTfUUgUUgVVhVVhVVhWWiWWiXXjXXjYYkYYkXZlY[mY[mZ\nZ\n[]o[]o[]o[_q[_q[_q\`r\`r]as]as^btdbxdbxdbxecyfdzfdzfdzge{bf~bf~cgcgdhdheieiglglgkhlimililjmjnjnjnjnjnkokokokokokokojnjnimimmnlmlmklkljkjkijfjfjfjfjfjeieieidhdhdhdhNL_NL_OM`OM`PNaPNaQObQObPPbPPbQQcRRdSSeSSeTTfTTfUUgUUgUUgVVhVVhWWiWWiWWiYYkYYkZZlZZl[[m[[m\\n\\n[]o[]o\^p\^p]_q]_q^`r^`rb`vb`vcawcawdbxdbxecyecybezcf{cf{cf{dg|dg|eh}eh}fi~fi~fi~gighhihihieieieieieifjfjfjgkgkhlhlimjnkokoklklkljkjkijijhifjfjeieieieidhdhcgcgcgcgLJ]MK^MK^MK^NL_OM`OM`OM`OM`PNaPNaQObRPcSQdSQdTReTReTReTReUSfUSfVTgVTgWUhWWiXXjXXjXXjYYkZZlZZlZZlY[mY[mZ\nZ\n[]o[]o\^p\^p`_s`_s`_sa`tbaubaubaucbv`cx`cx`cxadyadybezbezcf{bfybfybezcf{df~dedeefae~ae~ae~ae~bfbfbfbfcgcgdheifjgkhlhlijhihihighghghghcgcgcgcgcgbfbfbfae~ae~ae~ae~JH[KI\KI\LJ]LJ]MK^MK^MK^OK^PL_PL_QM`RNaSObSObTPcTPcTPcTPcUQdVReVReVReWSfVTgWUhWUhXViXViYWjYWjYWjYYkYYkZZlZZl[[m[[m\\n\\n]]o^^p^^p^^p__q``r``r``r_`t_`t`au`auabvabvbcwbcwabvabvabvbcxbcxcc{cc{cb|ac{ac{bd|bd|bd|bd|ce}ce}df~df~df~df~df~df~df~df~egegegegegdf~df~df~ce}ce}ce}bd|bd|bd|bd|bd|`bz`bz`bz`bzIGZIGZIGZJH[JH[KI\KI\KI\NJ]NJ]OK^OK^PL_QM`RNaRNaRNaRNaSObSObTPcTPcUQdUQdUSfUSfUSfVTgVTgWUhWUhWUhWWiWWiXXjXXjYYkYYkZZlZZl[[m[[m\\n\\n]]o]]o^^p^^p^]q_^r_^r`_s`_sa`ta`ta`t``r``ra`ta`tb`vb`vc`yc`ybcxbcxbcxcdycdycdycdydezdezdezcdycdybcxbcxbcxabwadyadyadyadyadyadyadyadycdycdybcxbcxbcxbcxabwabw_`u_`u_`u_`uGEXGEXHFYHFYIGZIGZJH[JH[NH[OI\OI\PJ]QK^RL_RL_RL_SM`SM`SM`TNaTNaUObUObVPcUQdUQdVReVReWSfWSfXTgXTgVTgWUhWUhXViXViYWjYWjYWjYYiZZjZZjZZj[[k\\l\\l\\l\\n]]o]]o^^p^^p__q__q__q__q__q__q`_s`_sa_ua_ub_x`av`av`avabwabwabwabwabw`av`av`av`av`av`av`av`av^av^av^av^av^av^av^av^avabwabwabw`av`av`av`av`av]^s]^s]^s]^sGEXGEXGEXHFYHFYIGZIGZIGZNH[NH[NH[OI\PJ]QK^QK^RL_RL_RL_SM`SM`TNaTNaUObUObUQdUQdUQdVReVReWSfWSfWSfVTgVTgVTgWUhWUhXViXViXViXXhYYiYYiYYiZZj[[k[[k[[k[[m\\n\\n]]o]]o^^p^^p^^p^^n^^n__q_^r`_s`^ta_ua_u^_t^_t^_t_`u_`u_`u_`u_`u]^s]^s^_t^_t_`u`av`avabw\_t\_t\_t\_t\_t]`u]`u]`u`av`av`av_`u_`u_`u_`u_`u\]r\]r\]r\]rJDUJDUJDUKEVKEVLFWLFWMGXPHYPHYQIZQIZRJ[RJ[SK\SK\SLaSLaSLaTMbTMbUNcUNcUNcUO`UO`VPaVPaWQbWQbXRcXRcUSfUSfUSfVTgVTgWUhWUhWUhXViYWjYWjZXkZXk[Yl[Yl[Yl\Zm\Zm\Zm][n][n][n][n^\o]\p]\p^]q^]q^]q^]q_^r_^r_^r_^r_^r_^r_^r_^r_^r_^r`_s`_s`_s`_s`_s`_s`_s`_s`_s_^r_^r_^r_^r^]q^]q^]q_^r_^r_^r_^r_^r_^r_^r_^r][o][o][o][oICTJDUJDUJDUKEVKEVLFWLFWPHYPHYPHYQIZQIZRJ[RJ[RJ[RK`RK`SLaSLaTMbTMbUNcUNcTN_UO`UO`VPaVPaWQbWQbWQbVReVReWSfWSfXTgXTgYUhYUhXViXViXViYWjYWjZXkZXk[Yl[Yl[Yl\Zm\Zm\Zm\Zm][n][n]\p]\p]\p]\p]\p^]q^]q^]q^]q^]q^]q^]q^]q^]q^]q^]q_^r_^r_^r_^r_^r_^r_^r_^r_^r_^r^]q^]q^]q^]q]\p]\p^]q^]q^]q^]q^]q^]q^]q^]q\Zn\Zn\Zn\ZnHBSICTICTICTJDUKEVKEVKEVNFWOGXOGXPHYPHYQIZQIZQIZQJ_QJ_QJ_RK`RK`SLaSLaSLaSM^SM^TN_TN_UO`UO`VPaVPaUQdUQdUQdVReVReWSfWSfWSfVTgWUhWUhWUhXViYWjYWjYWjZXkZXkZXkZXk[Yl[Yl[Yl[Yl[Zn[Zn[Zn\[o\[o\[o\[o\[o\[o\[o\[o\[o\[o\[o\[o\[o]\p]\p]\p]\p]\p]\p]\p]\p]\p]\p]\p]\p\[o\[o\[o\[o[Zn[Zn[Zn[Zn[Zn[Zn[Zn[Zn[Ym[Ym[Ym[YmGARGARHBSHBSICTICTJDUJDUMEVMEVNFWNFWOGXOGXOGXPHYOI\OI\OI\PJ]PJ]QK^QK^RL_RL]RL]RL]SM^SM^TN_TN_TN_UObUObUObVPcVPcWQdWQdXReWSfWSfWSfXTgXTgYUhYUhYUhZViZViZViZViZVi[Wj[Wj[WjZXlZXlZXlZXl[Ym[Ym[Ym[Ym[Ym[Ym[Ym[Ym[Ym[Ym[Ym[Ym\Zn\Zn\Zn\Zn\Zn\Zn\Zn\Zn\Zn\Zn\Zn[Ym[Ym[Ym[Ym[YmYWkYWkYWkYWkYWkYWkYWkYWkYWkYWkYWkYWkF@QF@QF@QGARGARHBSHBSHBSKCTLDULDULDUMEVMEVNFWNFWMGXMGXMGXNHYOIZOIZOIZPJ[PJ[PJ[QK\QK\RL]RL]SM^SM^SM`SM`SM`TNaUObUObUObVPcUQdUQdUQdVReVReWSfWSfWSfWSfXTgXTgXTgXTgYUhYUhYUhZUjZUjZUjZUj[Vk[Vk[Vk[Vk[Vk[Vk[Vk[Vk[Vk[Vk[Vk[Vk\Wl\Wl\Wl\Wl\Wl\Wl\Wl\Wl\Wl\Wl\Wl[Vk[Vk[Vk[VkZUjYTiYTiYTiYTiYTiYTiYTiYTiWUiWUiWUiWUiD>OE?PE?PF@QF@QGARGARGARJBSJBSJBSKCTKCTLDULDUMEVKEVKEVLFWLFWMGXMGXNHYNHYOIZOIZOIZPJ[PJ[QK\QK\QK\SJ^SJ^TK_TK_UL`UL`VMaVMaUObUObUObVPcWQdWQdWQdXReWQdXReXReXReXReXReYSfYSfXShXShXShXShXShYTiYTiYTiYTiYTiYTiYTiYTiYTiYTiYTiZUjZUjZUjZUjZUjZUjZUjZUjZUjZUjYTiYTiYTiYTiYTiXShXShXShXShXShXShXShXShXShUSgUSgUSgUSgC=ND>OD>OE?PE?PF@QF@QF@QIARIARIARJBSJBSKCTKCTKCTJETJETJETKFUKFULGVLGVMHWMGXNHYNHYNHYOIZPJ[PJ[PJ[RI]RI]RI]SJ^SJ^TK_TK_UL`SM`TNaTNaUObUObVPcVPcVPcVPcVPcVPcVPcWQdWQdWQdWQdXQfXQfXQfYRgYRgYRgYRgYRgZShZShZShZShZShZShZShZShZShZShZShZShZShZShZShZShZShZShZShZShYRgYRgYRgYRgYRgYRgYRgYRgYRgYRgYRgYRgTRfTRfTRfTRfC=NC=NC=ND>OE?PE?PE?PF@QH@QH@QIARIARJBSJBSKCTKCTIDSIDSJETJETKFUKFULGVLGVMGXMGXMGXNHYNHYOIZOIZOIZSH\SH\TI]TI]UJ^UJ^VK_VK_UL`UL`UL`VMaVMaWNbWNbXOcWNbWNbWNbXOcXOcXOcXOcXOcWPeWPeXQfXQfXQfXQfYRgYRgYRgYRgYRgYRgYRgYRgYRgYRgYRgYRgYRgYRgYRgYRgYRgYRgYRgYRgYRgYRgYRgXQfXQfXQfYRgYRgYRgYRgYRgYRgYRgYRgSQeSQeSQeSQeFNH>NI?OI?OI?OI?OJ@PJ@PKAQKAQLBRLBRKAQKAQLBRLBRMCSMCSNDTNDTPFVPFVPFVPFVQGWQGWQGWQGWOHWOHWPIXQJYRKZSL[TM\TM\SL[SL[SL[TM\TM\TM\TM\UN]SM^TN_TN_TN_TN_TN_UO`UO`WO`WO`WO`WO`XPaXPaXPaXPaSQdSQdSQdSQdSQdSQdSQdSQdVPcVPcVPcVPcVPcVPcVPcVPcXReXReXReWQdWQdVPcVPcVPcVPcVPcVPcVPcVPcVPcVPcVPcTMbTMbTMbTMbFNH>NH>NI?OI?OI?OJ@PJ@PKAQKAQKAQKAQKAQLBRLBRMCSMCSNDTNDTOEUOEUOEUPFVPFVPFVPFVQGWNGVOHWOHWPIXQJYRKZSL[SL[RKZSL[SL[SL[SL[TM\TM\TM\SM^SM^SM^SM^TN_TN_TN_TN_VN_VN_VN_WO`WO`WO`WO`XPaTPcTPcTPcTPcTPcTPcTPcTPcVPcVPcVPcVPcVPcVPcVPcVPcWQdWQdWQdVPcVPcVPcUObUObUObUObUObUObUObUObUObUObTMbTMbTMbTMbD:JE;KE;KFNH>NI?OI?OJ@PJ@PJ@PKAQKAQLBRLBRMCSMCSNDTNDTNDTNDTNDTNDTOEUOEUOEUOEUMFUNGVNGVOHWPIXQJYQJYRKZQJYQJYQJYRKZRKZRKZRKZRKZQK\QK\RL]RL]RL]RL]SM^SM^UM^UM^UM^UM^VN_VN_VN_VN_SObSObSObSObSObSObSObSObTNaTNaTNaTNaTNaTNaTNaTNaUObUObUObUObUObTNaTNaTNaTNaTNaTNaTNaTNaTNaTNaTNaTMbTMbTMbTMbC9IC9ID:JD:JE;KE;KE;KFNH>NH>NI?OJ@PJ@PKAQKAQLBRLBRMCSMCSLBRLBRLBRMCSMCSMCSMCSMCSLETLETMFUMFUNGVOHWOHWOHWOHWOHWPIXPIXPIXPIXQJYQJYPJ[PJ[PJ[PJ[PJ[QK\QK\QK\SK\SK\SK\TL]TL]TL]TL]TL]SM`SM`SM`SM`SM`SM`SM`SM`RL_RL_RL_RL_RL_RL_RL_RL_SM`SM`SM`SM`SM`RL_RL_RL_RL_RL_RL_RL_RL_RL_RL_RL_RL_RL_RL_RL_A7GB8HB8HB8HC9IC9ID:JD:JD:JE;KE;KE;KFNI?OI?OJ@PJQ@PKAQKAQKAQJ@PJ@PJ@PKAQKAQKAQKAQKAQKDSKDSKDSLETLETLETMFUMFUMFUMFUNGVNGVNGVNGVOHWOHWNHYNHYNHYNHYNHYOIZOIZOIZQIZQIZQIZRJ[RJ[RJ[RJ[RJ[QK^QK^QK^QK^QK^QK^QK^QK^QK^QK^QK^QK^QK^QK^QK^QK^PJ]PJ]PJ]PJ]PJ]QK^QK^QK^PJ]PJ]PJ]PJ]PJ]PJ]PJ]PJ]PJ[PJ[PJ[PJ[@6F@6F@6FA7GA7GB8HB8HC9IC9IC9IC9ID:JD:JE;KE;KFNH>NI?OI?OH>NH>NI?OI?OI?OI?OJ@PJ@PIBQIBQJCRJCRJCRJCRKDSKDSLETLETLETLETLETMFUMFUMFULFWLFWLFWLFWMGXMGXMGXMGXOGXOGXPHYPHYPHYPHYQIZQIZRI]RI]RI]RI]RI]RI]RI]RI]OI\OI\OI\OI\OI\OI\OI\OI\NH[NH[NH[NH[NH[OI\OI\OI\NH[NH[NH[NH[NH[NH[NH[NH[MGXMGXMGXMGX?5E?5E?5E@6F@6FA7GA7GA7GB8HB8HB8HC9IC9ID:JD:JD:JD:JD:JE;KE;KFNH>NH>NH>NHAPHAPHAPIBQIBQIBQIBQIBQJCRJCRJCRKDSKDSKDSKDSLETJDUKEVKEVKEVKEVLFWLFWLFWNFWNFWNFWNFWOGXOGXOGXOGXPG[PG[PG[PG[PG[PG[PG[PG[MGZMGZMGZMGZMGZMGZMGZMGZLFYLFYLFYMGZMGZMGZNH[NH[MGZMGZMGZMGZMGZMGZMGZMGZKFUKFUKFUKFU>4D>4D?5E?5E@6F@6FA7GA7GA7GA7GB8HB8HC9IC9ID:JD:JC9IC9IC9ID:JD:JE;KE;KFNHAPHAPHAPHAPHAPHAPHAPHAPIBQJCRJCRJCRJCRKDSKDSKDSJDUJDUJDUJDUKEVKEVKEVKEVMEVMEVNFWNFWNFWNFWNFWOGXQFZQFZQFZQFZQFZQFZQFZQFZMGZMGZMGZMGZMGZMGZMGZMGZKEXKEXKEXLFYLFYMGZMGZMGZLFYLFYLFYLFYLFYLFYLFYLFYIDSIDSIDSIDS>3C?4D?4D@5E@5EA6FA6FA6FB6HB6HC7IC7ID8JD8JE9KE9KA9JA9JB:KB:KC;LDME>MF?NF?NG@OHAPHAPIBQKAQKAQLBRLBRLBRLBRLBRMCSLBRLBRLBRLBRLBRMCSMCSMCSMCSMCSMCSNDTNDTNDTNDTNDTOEUOEUOEUOEUOEUOEUOEUOEUPFVPFVPFVPFVPFVPFVPFVPFVOEVOEVOEVOEVNDUNDUNDUNDULDULDULDULDULDULDULDULDUOEUOEUOEUOEU>3C>3C?4D?4D@5E@5EA6FA6FB6HB6HB6HC7ID8JD8JD8JE9KA9JA9JB:KB:KC;LDME>ME>MF?NG@OG@OHAPHAPJ@PJ@PJ@PKAQKAQKAQKAQLBRKAQKAQKAQLBRLBRLBRLBRMCSLBRMCSMCSMCSMCSNDTNDTNDTOEUOEUOEUOEUOEUOEUOEUOEUOEUOEUOEUOEUOEUOEUOEUOEUOEVOEVNDUNDUNDUNDUNDUMCTLDULDULDULDULDULDULDULDULBRLBRLBRLBR>3C>3C>3C?4D?4D@5E@5E@5EA5GB6HB6HB6HC7IC7ID8JD8JC9JC9JC9JD:KE;LE;LE;LFNH>NI?OI?OH>NI?OI?OI?OI?OI?OJ@PJ@PJ@PJ@PKAQKAQKAQKAQLBRLBRLBRLBRLBRLBRLBRMCSMCSMCSNDTNDTNDTNDTNDTNDTNDTNDTMCSMCSMCSMCSMCSMCSMCSMCSNDUNDUNDUMCTMCTMCTMCTMCTKCTKCTKCTKCTKCTKCTKCTKCTJ@PJ@PJ@PJ@P=2B=2B=2B>3C>3C?4D?4D@5EA5GA5GA5GB6HB6HC7IC7IC7IC9JC9JC9JD:KD:KD:KE;LE;LF:LF:LF:LF:LG;MG;MG;MG;MFNH>NG=MG=MG=MG=MH>NH>NH>NH>NI?OI?OJ@PJ@PJ@PJ@PKAQKAQJ@PJ@PKAQKAQKAQKAQLBRLBRLBRLBRLBRLBRLBRLBRLBRLBRKAQKAQKAQKAQKAQKAQKAQKAQMCTMCTMCTLBSLBSLBSLBSLBSJBSJBSJBSJBSJBSJBSJBSJBSJ@PJ@PJ@PJ@P<1A<1A=2B=2B>3C>3C?4D?4D@4F@4F@4FA5GA5GB6HB6HB6HD8JD8JD8JD8JD8JD8JE9KE9KE9KE9KE9KE9KF:LF:LF:LF:LGNH>NI?OI?OI?OI?OJ@PJ@PI?OI?OI?OI?OJ@PJ@PJ@PJ@PKAQKAQKAQKAQKAQKAQKAQKAQJ@PJ@PJ@PJ@PJ@PJ@PJ@PJ@PLBSLBSLBSKARKARKARKARJ@QH@QH@QH@QH@QH@QH@QH@QH@QKAQKAQKAQKAQ;0@;0@<1A<1A=2B=2B>3C>3C?3E?3E@4F@4FA5GA5GA5GB6HF8JF8JF8JF8JF8JF8JF8JF8JD8JD8JD8JE9KE9KE9KE9KF:LH;KH;KH;KH;KH;KH;KH;KH;KE;KE;KFNH>NH>NH>NI?OI?OH>NH>NH>NH>NH>NI?OI?OI?OJ@PJ@PJ@PJ@PJ@PJ@PJ@PJ@PI?OI?OI?OI?OI?OI?OI?OI?OKARKARKARJ@QJ@QJ@QJ@QI?PG?PG?PG?PG?PG?PG?PG?PG?PKAQKAQKAQKAQ;0@;0@;0@<1A<1A=2B=2B=2B>2D?3E?3E?3E@4FA5GA5GA5GF8JF8JF8JE7IE7IE7IE7IE7ID8JD8JD8JD8JD8JE9KE9KE9KH;KH;KH;KH;KH;KH;KG:JG:JE;KFNH>NH>NG=MG=MG=MG=MG=MH>NH>NH>NI?OI?OI?OI?OI?OI?OI?OI?OI?OI?OI?OI?OI?OI?OI?OI?OJ@QJ@QJ@QJ@QI?PI?PI?PI?PF>OF>OF>OF>OF>OF>OF>OF>OH>NH>NH>NH>N:/?:/?;0@;0@<1A<1A=2B=2B>2D>2D?3E?3E@4F@4FA5GA5GF8JF8JE7IE7IE7IE7IE7IE7IC7IC7ID8JD8JD8JD8JD8JE9KH;KH;KH;KH;KG:JG:JG:JG:JFNH>NH>NH>NH>NH>NH>NH>NI?OI?OI?OI?OI?OI?OI?OI?OJ@QJ@QI?PI?PI?PI?PH>OH>OF>OF>OF>OF>OF>OF>OF>OF>OFثB/j55(ltOr,*GҹcXt=;9⻏|MЎZ1G|±vҭlx ㊿ԹH *[kR;l kSqcOj6[{SZڷڡk_j|c{cU%WJN{^ y4s< T/9c5qrim $ަW6f@IʨN]JI&@Bɫ]X) "Ѥ=AiHJWp\k~ER(wwY->4Mk]t3+a_˞ArsjYW v}?zj}$fMWgׂi?hK=v(~(Ʋ@y$`RQ{d T 'Sʣ5>W[1 e}i$͎||sסAw:Gc=$+2}CO$1$z)UܟhrP6^ dq늎CG}XzH6R%tVaT>جۋmqA'"<+:?E$z0 kuJUAI`4Bx ;)CUUz&,c9"jF'BD۴ ʳ_֝)< qޮ}O#ʑ#e6P&CZؤC      C  ""   p,7!1AQa"q2B#Rbr.!1AQaq"2BR ?lMq=bId7;Uoj "0 #P $ K@I,Ccq5 +, Fũ%#ʑE >!FT?Blj1 IQR P@<.H{ŠŪ,,-tʪUV@ k@jJn(@ ud$@7VDBAt+I$h¥$@a1R@Y* $M@1(YrZ޵$ KsID K]*I`rYRJ9 T5-T(ıҒ 3I(AH<P, D-i@kjAMTyЂբYgx:KfJڤJҀIl W]ʗ?witdjP"b;[1 d Țȃ9EhZ04kAB Rr@9 jY(䱥@9 P KUijB hyPhP 4i PfME*fаgI2(AJb9Uj |ұIKMYS1ұQa+2yo@EbB2u1忩@1  ,$fhZ̘}:tx@c'LH4(*zd!IMI)B4EBCu@5CKf@c0XIP 5H MPZZ@-HMM2{%+kY!;( T$\{5Jtfy"Em J968&mnf=k8}'_IBQNR bY(Bp('@@Р+ I+@-L Jf%ƨ ]n%[2hCW|`V< Z$/3XE\+-vA_[8s)I-E& EEV' .s%ɚH I ԈǨцnOyFJWF/G>Dqa)h927@\y ȂGY2HV (#Y)܉>pFh cO|Q R?.`FO=ObKX[ )6 #PmBk8pr"A[|5\$OUiTe\D\B#v@`zRKSIY YՄ@VP ,UE%YvIXSB^ТÚu$ H?:K!2̅fxI¿dhxۅՙA ԟxUĕ _%T #ȿT썊|6*'_FtWm^\18wJA2"I npe0ˀ@T 5ڼTtvX[k@Nih`' =ɲGReJFEϮ םm/ٖLA$ w',H 3#+$5) W2"Ф_c$k Gm…DV`Ip0:IajN1+ڴ2m#8o`̈58 R5Qf6BAԩRϜz\ARRHRHIs$e7opl[\SC@\$_:G_;ȍѱN$?<IXGZ$xZEEȪDĩFsE/ri" 0TFXp풒B~9p@q*5K?uҐ ~a[t7QXOw3C)XezrH+8 GlA7H ڥKWK8v'EYCh1= r&&pH.(y[H=Ly?i;S2BGX7<С 7ydUżIRyDԨ؃\)f#i7<*KN!2 k#bGO޻F3n_\&dsVp#םYM7KZڼVB0:Nkk_%+N% yZ AQl9Zܦho?8V?#XstJ]h{#T Jr>l]HmxcU'y /_W*hir; ҡEu?GrR}2`b|ܶO \{9ݧ&#o#⌡KK,! *J][\%yt}Nn^8IqIJr/d3ĀcGY;zO?ť[l9QA8d,IdZ—/L)pN߽_d8!*RR䤬Xi&ߥ{ȝ|{Q&2̬Ma{M߱~xh/[KQ$TJT (J AꦚUdsokwxz╀s%$rU \i0zON7:;X|bθYIn UNe{^9a,+[QQA'Cs覧h?׸O]o1^,lĝP)˾z [M"5R7bbsLj)x!.I |^KM0;>/T!" !D0ӗGG(o裤Ϣ6x_h8f ΧtKpz,ATܑ:֩絝fn^M &+۬:QI@u$6kbu8ؗm"7Vemhp|2~^c\Hi9S>$DS.9䣸#:PLhoRRTPfdk}w>jca$% &3@$Ip\Vf~ I3Q1Ϻe;EJD~!GR@&ǕATLJzvmXOu*;  5IS, OM=y,UD1cO1.3k י"G#WZ-LUsV!ݫp5&] 6 ToHcAmkJuu%ID| zNʐ5b7|_ A`,.Tevlu0;SŇ:KdtXjZAi3$[_^2ƀ'zӰFUI̘t*b$.vapߗNR)"q f|\l]n(ާćmƃ|@1bw^jMFONI77nmSiaK9*R}u`R+aQ*I~U8{5R+L6Rc6#MzC宫s|;#S}iPe$t@̩fg^zoLԖxR2JRB%zdfj+D+Q ;8C,#H F{{FjorRNFɜש9LΫEi={<e3c,ʜgu^h}pZ0B&6c1D^M7+;? y%9 Uʥ` GQ=J9>\q/\gڔG4^i^eppR)IešQ*z&a,eu)KY+I NPbI˧J[oش׽ޗ /-/0] @ U ^v+euƢc}pWq)ðB  (X]PfMiZWR/!ITE (rTo79gn#aJhp?LH)J34O '/i,\T\9-XT@3. 2  |7/#Q4%7ВO-u4s9ĜX2pmĂ W’`ndJbknѤP`q82!b$2 ;GQm$;Fx\MRĸ6ER,Ers嗹glja ZIx15>i,I>I~4Ov;7l<Gӭv{6mJr3<&F#6.uT2a)yN KAtHҋ!scQH JAVSa_iZs+`T6;H3n%pߞB1VTDN $FF8Tv6-L^-kia>T- VIn~Ņ' )W؃& ؉+\o:leSb1J&M&OD@nʙ URD.$NC iaru7>u#պRb~(;ֵTHwjA7TȚE^kAޕ ~(uA@`I7: NzɌѦ@pAQ 51Zu  LYŝ3z:Be8~-œW܋(`#֊`Xq(,L"7Egu\}kmx$ZR` d9IUg][gI$)@( )ٳ,a[]U7m@\$$3*UYi/LęU#x*J+(IJBH㟫4k%@JE6X fIFf+]Ex2 nD܂-Zq?W3.nşq*PJ&DQJBM̀-cYzs{ڧ=؜a[m$3@č+x}LǬ[Imb.wkI$g;ݵ)MF)jl6a.#S3"q<[rB 8yuI@5 d)t9d;qzDw2wa VM˗ڦa|_hi~M }m;*p;exXK` ^LPX?QV Yζۂ@ԛ_Ԁ?KjVڣ2GOPACM>Kۺ6p|E`3ڒI̥yS +ֳ Iv)\!s:˔P%mPH T{מO;siSXvmIP)MqI c(jyծ kԵI3Z77 rȹ(9 ]Np.v** R3i$:qq9y#ǻ~ HbD>cM2Cf'd+l1s(M:pK"NV8ȁ3ydyuw /{F%8S)-R 4fD٦SsJVS~*QL~hxU[)D$ɵ( hE{)M?檧ܮ o;:@k ]6Ɏ)0PB`̙7=`-&IN֌(:zHґ{Xw*ᛋ_KNf % k3NJ$zoJѐ"O|uRCDS{:R)&~}- Ҩ@m˿բeWjLNC)V[T̛( 8v?N/ 4. #ƆMX\WRS٦#\N՗ %J2INOrkP Nn()VS?NW23ͤG!JA7#+TJ$9muTa1uFoTܥYRSX |E+s=Z䑠RS>&45&^i..d cHZa5 }=;nU_/_A~#YecEW8*`Ɂu\RI %/[ P)Nb"6#4Ș1& 1VM51+&p|6SYېEsEnQƛ3lf'7$EH\ھcPօ>CI \^fFZ7:Ƴljr~Ml{;NDW1;pU %/S΅b1lgD*2Axbv+Kn$px]4%lBs3 /Som_l4, ΗRR*Ɉ1I L5ڥ[[EnusY}ejNflNފbͺjfҒ2;žp~ K8d)7b/}j0 P/nҠ9no@LwA(hIRG}u #~>م,A۰7dr i_PiYW߯!ʴHjT MIeW\ *B_Oy|hj$XM&OmT 'ׅY/߭S,s֩ -*<0=?۽hT/̣'wP6JTr}m/Yax$iX"3ʸoC86."u7xi~`pū!Vh~ջq u'RC̶ Proportional Stretch TButtonButton1AnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomLeftHeightTopWidth@Anchors akRightakBottomCaptionCloseTabOrderOnClick Button1ClickTLabelWrittenByStringAnchorSideLeft.ControlWrittenByLabelAnchorSideLeft.Side asrBottomAnchorSideTop.Side asrCenterAnchorSideBottom.ControlWrittenByLabelAnchorSideBottom.Side asrBottomLefteHeightTop Width^Anchors akLeftakBottomBorderSpacing.LeftCaption unihedron.com Font.ColorclBlue ParentColor ParentFontOnClickWrittenByStringClick OnMouseEnterWrittenByStringMouseEnter OnMouseLeaveWrittenByStringMouseLeaveTMemoMemo1AnchorSideLeft.ControlOwnerAnchorSideTop.ControlImage1AnchorSideTop.Side asrBottomAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.Control VersionLabelLeftHeightTopWidthAnchors akTopakLeftakRightakBottomBorderSpacing.TopBorderSpacing.Bottom BorderStylebsNone Lines.Strings>Use this program with connected Sky Quality Meter products to:- Read version information.- Request readings. - Read and set calibration data.$- Read and set all other parameters.- Install new firmware.2- Setup and retrieve data from datalogging meters..- Continuously log data from connected meters. License: GPL ScrollBars ssAutoBothTabOrderTLabelWrittenByLabelAnchorSideTop.Side asrCenterAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomLeftHeightTop WidthE AlignmenttaRightJustifyAnchors akBottomCaption Written by: ParentColorTLabel VersionLabelAnchorSideRight.ControlWrittenByLabelAnchorSideRight.Side asrBottomAnchorSideBottom.Control FpointLabelLeft.HeightTopWidth3 AlignmenttaRightJustifyAnchors akRightakBottomBorderSpacing.BottomCaptionVersion: ParentColorTLabelFileVersionTextAnchorSideLeft.Control VersionLabelAnchorSideLeft.Side asrBottomAnchorSideTop.Control VersionLabelAnchorSideTop.Side asrCenterAnchorSideBottom.Side asrCenterLefteHeightTopWidth AlignmenttaRightJustifyBorderSpacing.LeftCaptionXXXX.XXXX.XXXX.XXXX ParentColorTLabel FpointLabelAnchorSideRight.ControlWrittenByLabelAnchorSideRight.Side asrBottomAnchorSideBottom.Control FcommaLabelLeft=HeightTopWidth$Anchors akRightakBottomCaptionPoint: ParentColorTLabel FpointStringAnchorSideLeft.Control FpointLabelAnchorSideLeft.Side asrBottomAnchorSideTop.Side asrCenterAnchorSideBottom.Control FpointLabelAnchorSideBottom.Side asrBottomLefteHeightTopWidth8Anchors akLeftakBottomBorderSpacing.LeftCaption resolving ParentColorTLabel FcommaLabelAnchorSideRight.ControlWrittenByLabelAnchorSideRight.Side asrBottomAnchorSideBottom.ControlUTCLabelLeft.HeightTopWidth3Anchors akRightakBottomCaptionComma: ParentColorTLabel FCommaStringAnchorSideLeft.Control FcommaLabelAnchorSideLeft.Side asrBottomAnchorSideTop.Control FcommaLabelAnchorSideTop.Side asrCenterAnchorSideBottom.Side asrCenterLefteHeightTopWidth8BorderSpacing.LeftCaption resolving ParentColorTLabelUTCLabelAnchorSideRight.Control LocalLabelAnchorSideRight.Side asrBottomAnchorSideBottom.Control LocalLabelLeft%HeightTopWidth<Anchors akRightakBottomCaption UTC time: ParentColorTLabel LocalLabelAnchorSideRight.ControlWrittenByStringAnchorSideBottom.Control TZDiffLabelLeftHeightTopWidthBAnchors akRightakBottomCaption Local time: ParentColorTLabelUTCTextAnchorSideLeft.ControlUTCLabelAnchorSideLeft.Side asrBottomAnchorSideBottom.ControlUTCLabelAnchorSideBottom.Side asrBottomLefteHeightTopWidth8Anchors akLeftakBottomBorderSpacing.LeftCaption resolving ParentColorTLabel LocalTextAnchorSideLeft.Control LocalLabelAnchorSideLeft.Side asrBottomAnchorSideBottom.Control LocalLabelAnchorSideBottom.Side asrBottomLefteHeightTopWidth8Anchors akLeftakBottomBorderSpacing.LeftCaption resolving ParentColorTLabel TZDiffLabelAnchorSideRight.ControlWrittenByLabelAnchorSideRight.Side asrBottomAnchorSideBottom.ControlWrittenByStringLeft HeightTopWidthUAnchors akRightakBottomCaptionTZ difference: ParentColorTLabel TZDiffTextAnchorSideLeft.Control TZDiffLabelAnchorSideLeft.Side asrBottomAnchorSideBottom.Control TZDiffLabelAnchorSideBottom.Side asrBottomLefteHeightTopWidth8Anchors akLeftakBottomBorderSpacing.LeftCaption resolving ParentColorTTimerTimer1OnTimer Timer1TimerLeftTopFORMDATATForm4Local time zone<https://en.wikipedia.org/wiki/List_of_tz_database_time_zones Local region Australia/AS tz exists.tz does not exist. Data SupplierMoving Stationary PositionMoving Stationary DirectionFilters Per Channel CoverOffset http://www. http://www.47_SKYGLOW_DEFINITIONS.PDFDLHeader UserComment1 UserComment2 UserComment3 UserComment4 UserComment5 Field Of ViewSerial: Instrument ID Location NamePositionTime SynchronizationNumber Of Channels!Measurement Direction Per ChannelGPS Port4800GPS Baud GPS Enabled GoTo Baud GoToSettings HardwareIDTPF0 TDLHeaderForm DLHeaderFormLeftHeight\TopQWidthAnchors CaptionDatalogging header ClientHeight\ ClientWidthOnCreate FormCreate OnDestroy FormDestroyPositionpoScreenCenter LCLVersion3.0.0.3 TScrollBox ScrollBox1AnchorSideLeft.ControlOwnerAnchorSideTop.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomLeftHeight\TopWidthHorzScrollBar.PageVertScrollBar.PageVertScrollBar.Tracking Anchors akTopakLeftakRightakBottom ClientHeightZ ClientWidthTabOrder TGroupBoxSelectedGroupBoxAnchorSideLeft.Control ScrollBox1AnchorSideTop.Control ScrollBox1AnchorSideBottom.Control ScrollBox1AnchorSideBottom.Side asrBottomLeftHeightZTopWidthAnchors akTopakLeftakBottomBorderSpacing.LeftCaptionSelected serial number: ClientHeightF ClientWidthTabOrder TLabeledEditDataSupplierEntryAnchorSideLeft.ControlInstrumentIDEntryAnchorSideTop.ControlInstrumentIDEntryAnchorSideTop.Side asrBottomLeftHeight$Hint }The institution and/or person who was responsible for setting up and acquiring the data. Since it is expected that skyglow data will be archived for generations, detailed contact information (e.g. email address) is unlikely to be as helpful as information about the institute that supplied the data. Users are free to provide contact information in the user comments section below.TopkWidthEditLabel.HeightEditLabel.WidthYEditLabel.CaptionData supplier: EditLabel.ParentColor LabelPositionlpLeftParentShowHintShowHint TabOrderOnChangeDataSupplierEntryChange TLabeledEditInstrumentIDEntryAnchorSideLeft.Control SerialNumberAnchorSideTop.Control SerialNumberAnchorSideTop.Side asrBottomLeftHeight$Hint WThe instrument ID is a unique human readable name. Since the number of stations monitoring is currently small, it probably won't be a problem for users to come up with a name on their own. In the future, when a skyglow measurement database is established, there should be a procedure to have names assigned. In the meantime, please register your name with christopher.kyba@wew.fu-berlin.de. Since the instrument ID is used in the filename, spaces and other characters outside of the set [A-Za-z0- 9_-] are not permitted (use dash or underscore instead of space). Examples: SQM-RIVM1, Dahlem_tower_leTopGWidthEditLabel.HeightEditLabel.Width`EditLabel.CaptionInstrument ID: EditLabel.ParentColor LabelPositionlpLeftParentShowHintShowHint TabOrderOnChangeInstrumentIDEntryChange TLabeledEditLocationNameEntryAnchorSideLeft.ControlDataSupplierEntryAnchorSideTop.ControlDataSupplierEntryAnchorSideTop.Side asrBottomLeftHeight$TopWidthEditLabel.HeightEditLabel.WidthaEditLabel.CaptionLocation name: EditLabel.ParentColor LabelPositionlpLeftParentShowHintShowHint TabOrderOnChangeLocationNameEntryChange TLabeledEdit PositionEntryAnchorSideLeft.ControlLocationNameEntryAnchorSideTop.ControlLocationNameEntryAnchorSideTop.Side asrBottomLeftHeight$TopWidthEditLabel.HeightEditLabel.WidthEditLabel.CaptionPosition (lat, lon, elev(m)): EditLabel.ParentColor LabelPositionlpLeftReadOnly TabOrderTabStopTLabelLabel6AnchorSideTop.Control TZRegionBoxAnchorSideTop.Side asrCenterAnchorSideRight.Control TZRegionBoxLeftgHeightTopWidth AlignmenttaRightJustifyAnchors akTopakRightAutoSizeBorderSpacing.RightCaptionLocal timezone region: ParentColor TComboBox TZRegionBoxAnchorSideLeft.Control PositionEntryAnchorSideTop.Control PositionEntryAnchorSideTop.Side asrBottomLeft)HeightTopWidth ItemHeight Items.Stringsafricaasiaeurope northamerica antarctica australasiaetcetera southamericaStylecsDropDownListTabOrderOnChangeTZRegionBoxChange TLabeledEditTimeSynchEntryAnchorSideLeft.Control TZLocationBoxAnchorSideTop.Control TZLocationBoxAnchorSideTop.Side asrBottomLeftHeight$TopWidthEditLabel.HeightEditLabel.WidthEditLabel.CaptionTime Synchronization:EditLabel.ParentColor LabelPositionlpLeftTabOrderOnChangeTimeSynchEntryChange TComboBoxMovingStationaryPositionComboAnchorSideLeft.ControlTimeSynchEntryAnchorSideTop.ControlTimeSynchEntryAnchorSideTop.Side asrBottomLeftHeight$Hint GPS enabled overrides to Moving.Top=Width ItemHeight Items.StringsMOVING STATIONARYParentShowHintShowHint TabOrderOnChange#MovingStationaryPositionComboChangeTLabelLabel7AnchorSideTop.ControlMovingStationaryPositionComboAnchorSideTop.Side asrCenterAnchorSideRight.ControlMovingStationaryPositionComboLeftiHeightTopFWidth AlignmenttaRightJustifyAnchors akTopakRightBorderSpacing.RightCaptionMoving / Stationary position: ParentColor TComboBoxMovingStationaryDirectionComboAnchorSideLeft.ControlMovingStationaryPositionComboAnchorSideTop.ControlMovingStationaryPositionComboAnchorSideTop.Side asrBottomLeftHeight$TopaWidth ItemHeight Items.StringsMOVINGFIXEDTabOrderOnChange$MovingStationaryDirectionComboChangeTLabelLabel8AnchorSideTop.ControlMovingStationaryDirectionComboAnchorSideTop.Side asrCenterAnchorSideRight.ControlMovingStationaryDirectionComboLefteHeightTopjWidth AlignmenttaRightJustifyAnchors akTopakRightBorderSpacing.RightCaptionMoving / Fixed look direction: ParentColorTLabelLabel9AnchorSideTop.ControlNumberOfChannelsEntryAnchorSideTop.Side asrCenterAnchorSideRight.ControlNumberOfChannelsEntryLeftHeightTopWidth AlignmenttaRightJustifyAnchors akTopakRightBorderSpacing.RightCaptionNumber of channels: ParentColor TSpinEditNumberOfChannelsEntryAnchorSideLeft.ControlMovingStationaryPositionComboAnchorSideTop.ControlMovingStationaryDirectionComboAnchorSideTop.Side asrBottomLeftHeight$TopWidthBorderSpacing.TopMinValueOnChangeNumberOfChannelsEntryChangeTabOrderValue TLabeledEdit#MeasurementDirectionPerChannelEntryAnchorSideLeft.Control SerialNumberAnchorSideTop.ControlFiltersPerChannelEntryAnchorSideTop.Side asrBottomLeftHeight$TopWidthEditLabel.HeightEditLabel.WidthEditLabel.Caption"Measurement direction per channel:EditLabel.ParentColor LabelPositionlpLeftTabOrder OnChange)MeasurementDirectionPerChannelEntryChange TLabeledEditFieldOfViewEntryAnchorSideLeft.Control#MeasurementDirectionPerChannelEntryAnchorSideTop.Control#MeasurementDirectionPerChannelEntryAnchorSideTop.Side asrBottomLeftHeight$TopWidthEditLabel.HeightEditLabel.WidthEditLabel.CaptionField of view (degrees):EditLabel.ParentColor LabelPositionlpLeftTabOrder OnChangeFieldOfViewEntryChange TComboBox TZLocationBoxAnchorSideLeft.Control TZRegionBoxAnchorSideTop.Control TZRegionBoxAnchorSideTop.Side asrBottomLeftHeight#TopWidth ItemHeightStylecsDropDownListTabOrder OnChangeTZLocationBoxChangeTLabelLabel11AnchorSideTop.Control TZLocationBoxAnchorSideTop.Side asrCenterAnchorSideRight.Control TZLocationBoxLeftHeightTopWidth AlignmenttaRightJustifyAnchors akTopakRightBorderSpacing.RightCaptionLocal timezone name: ParentColor TLabeledEdit UserComment1AnchorSideLeft.ControlFieldOfViewEntryAnchorSideTop.ControlFieldOfViewEntryAnchorSideTop.Side asrBottomLeftHeight$Top;WidthEditLabel.HeightEditLabel.WidthGEditLabel.Caption Comments:EditLabel.ParentColor LabelPositionlpLeftTabOrder OnChangeUserComment1ChangeTEdit UserComment2AnchorSideLeft.Control UserComment1AnchorSideTop.Control UserComment1AnchorSideTop.Side asrBottomLeftHeight$Top_WidthTabOrder OnChangeUserComment2ChangeTEdit UserComment3AnchorSideLeft.Control UserComment2AnchorSideTop.Control UserComment2AnchorSideTop.Side asrBottomLeftHeight$TopWidthTabOrderOnChangeUserComment3ChangeTEdit UserComment4AnchorSideLeft.Control UserComment3AnchorSideTop.Control UserComment3AnchorSideTop.Side asrBottomLeftHeight$TopWidthTabOrderOnChangeUserComment4ChangeTEdit UserComment5AnchorSideLeft.Control UserComment4AnchorSideTop.Control UserComment4AnchorSideTop.Side asrBottomLeftHeight$TopWidthTabOrderOnChangeUserComment5Change TLabeledEditCoverOffsetEntryAnchorSideLeft.ControlNumberOfChannelsEntryAnchorSideTop.ControlNumberOfChannelsEntryAnchorSideTop.Side asrBottomLeftHeight$Hintthis is the difference in reading caused by the weatherproof housing. For people using the standard housing from Unihedron the value is -0.11.TopWidthzBorderSpacing.TopEditLabel.HeightEditLabel.WidthREditLabel.Caption Cover Offset:EditLabel.ParentColor LabelPositionlpLeftParentShowHintShowHint TabOrderOnChangeCoverOffsetEntryChange TLabeledEdit SerialNumberLeftHeight$Top#WidthAnchors EditLabel.HeightEditLabel.Width]EditLabel.CaptionSerial Number:EditLabel.ParentColor LabelPositionlpLeftReadOnly TabOrderTabStop TComboBoxFiltersPerChannelEntryAnchorSideLeft.ControlCoverOffsetEntryAnchorSideTop.ControlCoverOffsetEntryAnchorSideTop.Side asrBottomLeftHeight$TopWidth ItemHeight ItemIndex Items.Strings HOYA CM-500TabOrderText HOYA CM-500OnChangeFiltersPerChannelEntryChangeTLabelLabel10AnchorSideTop.ControlFiltersPerChannelEntryAnchorSideTop.Side asrCenterAnchorSideRight.ControlFiltersPerChannelEntryLeftHeightTopWidthy AlignmenttaRightJustifyAnchors akTopakRightCaptionFilters per channel: ParentColorTLabelInvalidInstrumentIDAnchorSideLeft.ControlInstrumentIDEntryAnchorSideLeft.Side asrBottomAnchorSideTop.ControlInstrumentIDEntryAnchorSideTop.Side asrCenterLeft:HeightHintSince the instrument ID is used in the filename, spaces and other characters outside of the set [A-Za-z0-9_-] are not permitted (use dash or underscore instead of space).TopPWidth)BorderSpacing.LeftCaptionInvalid Font.ColorclRed ParentColor ParentFontParentShowHintShowHint VisibleTButtonEditPositionButtonAnchorSideLeft.Control PositionEntryAnchorSideLeft.Side asrBottomAnchorSideTop.Control PositionEntryAnchorSideTop.Side asrCenterAnchorSideRight.Side asrBottomLeft9HeightTopWidth4BorderSpacing.LeftCaptionEditTabOrderOnClickEditPositionButtonClickTButton CloseButtonAnchorSideLeft.Side asrBottomAnchorSideRight.Side asrBottomAnchorSideBottom.Control UserComment5AnchorSideBottom.Side asrBottomLeft;HeightTopWidth3Anchors akBottomBorderSpacing.LeftCaptionCloseTabOrderOnClickCloseButtonClickTButtonI PDFDocButtonLeftHeightHintPDF definitionsTopWidthKAnchors CaptionPDFTabOrderOnClickPDFDocButtonClickTLabelDefinitionsLinkAnchorSideLeft.Side asrBottomLeftzHeightTopWidthAnchors BorderSpacing.LeftCaptiondarksky.org/measurements Font.ColorclBlue ParentColor ParentFontOnClickDefinitionsLinkClick OnMouseEnterDefinitionsLinkMouseEnter OnMouseLeaveDefinitionsLinkMouseLeaveTButtonButton1LeftHeight#TopWidtheCaption Exist testTabOrderVisibleOnClick Button1ClickTLabel TZRefLinkAnchorSideLeft.Control TZRegionBoxAnchorSideLeft.Side asrBottomAnchorSideTop.Control TZRegionBoxAnchorSideTop.Side asrCenterLeft:HeightTopWidth1BorderSpacing.LeftCaption Wiki ref. Font.ColorclBlue ParentColor ParentFontOnClickTZRefLinkClickFORMDATA TDLHeaderFormDataDirectoryAlternate Directories/usr/share/udm/usr/share/udm/ ./tzdatabase./Data directory with Time Zone database could not be found. You can put a DataDirectoryAlternate entry into the [Directories] section of the configfile. LogsDirectoryfirmware/ ./firmware/ tzdatabase ./tzdatabase//yyyy-mm-dd_hhnnss log_%s.txt Error: Log file stored in:  TPF0TForm5Form5Left HeightmTopiWidthCaptionLog ClientHeightm ClientWidthPositionpoScreenCenter LCLVersion2.2.6.0TSynEditSynEdit1AnchorSideLeft.ControlOwnerAnchorSideTop.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.ControlSaveLogLeftHeightITopWidthAnchors akTopakLeftakRightakBottom Font.Height Font.Name Courier New Font.PitchfpFixed Font.QualityfqNonAntialiased ParentColor ParentFontTabOrder Gutter.Width9Gutter.MouseActionsRightGutter.WidthRightGutter.MouseActions KeystrokesCommandecUpShortCut&CommandecSelUpShortCut& Command ecScrollUpShortCut&@CommandecDownShortCut(Command ecSelDownShortCut( Command ecScrollDownShortCut(@CommandecLeftShortCut%Command ecSelLeftShortCut% Command ecWordLeftShortCut%@Command ecSelWordLeftShortCut%`CommandecRightShortCut'Command ecSelRightShortCut' Command ecWordRightShortCut'@CommandecSelWordRightShortCut'`Command ecPageDownShortCut"Command ecSelPageDownShortCut" Command ecPageBottomShortCut"@CommandecSelPageBottomShortCut"`CommandecPageUpShortCut!Command ecSelPageUpShortCut! Command ecPageTopShortCut!@Command ecSelPageTopShortCut!`Command ecLineStartShortCut$CommandecSelLineStartShortCut$ Command ecEditorTopShortCut$@CommandecSelEditorTopShortCut$`Command ecLineEndShortCut#Command ecSelLineEndShortCut# CommandecEditorBottomShortCut#@CommandecSelEditorBottomShortCut#`Command ecToggleModeShortCut-CommandecCopyShortCut-@CommandecPasteShortCut- Command ecDeleteCharShortCut.CommandecCutShortCut. CommandecDeleteLastCharShortCutCommandecDeleteLastCharShortCut CommandecDeleteLastWordShortCut@CommandecUndoShortCutCommandecRedoShortCutCommand ecLineBreakShortCut Command ecSelectAllShortCutA@CommandecCopyShortCutC@Command ecBlockIndentShortCutI`Command ecLineBreakShortCutM@Command ecInsertLineShortCutN@Command ecDeleteWordShortCutT@CommandecBlockUnindentShortCutU`CommandecPasteShortCutV@CommandecCutShortCutX@Command ecDeleteLineShortCutY@Command ecDeleteEOLShortCutY`CommandecUndoShortCutZ@CommandecRedoShortCutZ`Command ecGotoMarker0ShortCut0@Command ecGotoMarker1ShortCut1@Command ecGotoMarker2ShortCut2@Command ecGotoMarker3ShortCut3@Command ecGotoMarker4ShortCut4@Command ecGotoMarker5ShortCut5@Command ecGotoMarker6ShortCut6@Command ecGotoMarker7ShortCut7@Command ecGotoMarker8ShortCut8@Command ecGotoMarker9ShortCut9@Command ecSetMarker0ShortCut0`Command ecSetMarker1ShortCut1`Command ecSetMarker2ShortCut2`Command ecSetMarker3ShortCut3`Command ecSetMarker4ShortCut4`Command ecSetMarker5ShortCut5`Command ecSetMarker6ShortCut6`Command ecSetMarker7ShortCut7`Command ecSetMarker8ShortCut8`Command ecSetMarker9ShortCut9`Command EcFoldLevel1ShortCut1Command EcFoldLevel2ShortCut2Command EcFoldLevel3ShortCut3Command EcFoldLevel4ShortCut4 Command EcFoldLevel5ShortCut5Command EcFoldLevel6ShortCut6Command EcFoldLevel7ShortCut7Command EcFoldLevel8ShortCut8Command EcFoldLevel9ShortCut9Command EcFoldLevel0ShortCut0Command EcFoldCurrentShortCut-CommandEcUnFoldCurrentShortCut+CommandEcToggleMarkupWordShortCutMCommandecNormalSelectShortCutN`CommandecColumnSelectShortCutC`Command ecLineSelectShortCutL`CommandecTabShortCut Command ecShiftTabShortCut CommandecMatchBracketShortCutB`Command ecColSelUpShortCut&Command ecColSelDownShortCut(Command ecColSelLeftShortCut%Command ecColSelRightShortCut'CommandecColSelPageDownShortCut"CommandecColSelPageBottomShortCut"CommandecColSelPageUpShortCut!CommandecColSelPageTopShortCut!CommandecColSelLineStartShortCut$CommandecColSelLineEndShortCut#CommandecColSelEditorTopShortCut$CommandecColSelEditorBottomShortCut# MouseActionsMouseTextActionsMouseSelActions Lines.StringsSynEdit1VisibleSpecialChars vscSpace vscTabAtLast RightEdge ScrollBars ssAutoBothSelectedColor.BackPriority2SelectedColor.ForePriority2SelectedColor.FramePriority2SelectedColor.BoldPriority2SelectedColor.ItalicPriority2SelectedColor.UnderlinePriority2SelectedColor.StrikeOutPriority2BracketHighlightStylesbhsBothBracketMatchColor.BackgroundclNoneBracketMatchColor.ForegroundclNoneBracketMatchColor.Style fsBoldFoldedCodeColor.BackgroundclNoneFoldedCodeColor.ForegroundclGrayFoldedCodeColor.FrameColorclGrayMouseLinkColor.BackgroundclNoneMouseLinkColor.ForegroundclBlueLineHighlightColor.BackgroundclNoneLineHighlightColor.ForegroundclNoneTSynGutterPartListSynLeftGutterPartList1TSynGutterMarksSynGutterMarks1Width MouseActionsTSynGutterLineNumberSynGutterLineNumber1Width MouseActionsMarkupInfo.Background clBtnFaceMarkupInfo.ForegroundclNone DigitCountShowOnlyLineNumbersMultiplesOf ZeroStart LeadingZerosTSynGutterChangesSynGutterChanges1Width MouseActions ModifiedColor SavedColorclGreenTSynGutterSeparatorSynGutterSeparator1Width MouseActionsMarkupInfo.BackgroundclWhiteMarkupInfo.ForegroundclGrayTSynGutterCodeFoldingSynGutterCodeFolding1 MouseActionsMarkupInfo.BackgroundclNoneMarkupInfo.ForegroundclGrayMouseActionsExpandedMouseActionsCollapsedTButtonSaveLogAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomLeftRHeightTopMWidthAnchors akRightakBottomBorderSpacing.AroundCaption Save to fileOnClick SaveLogClickTabOrderFORMDATATForm5~TPF0 TfrmSplash frmSplashCursor crHourGlassLeftiHeightTop$WidthB BorderStylebsNoneCaption frmSplash ClientHeight ClientWidthBColor FormStylefsSplashOnCreate FormCreatePositionpoScreenCenter LCLVersion2.3.0.0TImageImage2AnchorSideLeft.ControlOwnerAnchorSideLeft.Side asrCenterAnchorSideTop.Control StaticText1AnchorSideTop.Side asrBottomAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.ControlLabel1LeftHeight|TopWidthAAnchors akTopakLeftakRightakBottomCenter Picture.Data ' TJpegImage'JFIFExifII* z (1 2iNIKON CORPORATIONNIKON D70sGIMP 2.6.112012:02:11 12:59:51'0210    0100,p# 2005:07:06 22:20:20$ 4<(DHHJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222)p" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Lӕ>ثB/j55(ltOr,*GҹcXt=;9⻏|MЎZ1G|±vҭlx ㊿ԹH *[kR;l kSqcOj6[{SZڷڡk_j|c{cU%WJN{^ y4s< T/9c5qrim $ަW6f@IʨN]JI&@Bɫ]X) "Ѥ=AiHJWp\k~ER(wwY->[4Mk]t3+a_˞ArsjYW v}?zj}$fMWgׂi?hK=v(~(Ʋ@y$`RQ{d T 'Sʣ5>W[1 e}i$͎||sסAw:Gc=$+2}CO$1$z)UܟhrP6^ dq늎CG}XzH6R%tVaT>جۋmqA'"<+:?E$z0 kuJUAI`4Bx ;)CUUz&,c9"jF'BD۴ ʳ_֝)< qޮ}O#ʑ#e6P&CZؤC      C  ""   p,7!1AQa"q2B#Rbr.!1AQaq"2BR ?lMq=bId7;Uoj "0 #P $ K@I,Ccq5 +, Fũ%#ʑE >!FT?Blj1 IQR P@<.H{ŠŪ,,-tʪUV@ k@jJn(@ ud$@7VDBAt+I$h¥$@a1R@Y* $M@1(YrZ޵$ KsID K]*I`rYRJ9 T5-T(ıҒ 3I(AH<P, D-i@kjAMTyЂբYgxKfJڤJҀIl W]ʗ?witdjP"b;[1 d Țȃ9EhZ04kAB Rr@9 jY(䱥@9 P KUijB hyPhP 4i PfME*fаgI2(AJb9Uj |ұIKMYS1ұQa+2yo@EbB2u1忩@1  ,$fhZ̘}:tx@c'LH4(*zd!IMI)B4EBCu@5CKf@c0XIP 5H MPZZ@-HMM2{%+kY!;( T$\{5Jtfy"Em J968&mnf=k8}'_IBQNR bY(Bp('@@Р+ I+@-L Jf%ƨ ]n%[2hCW|`V< Z$/3XE\+-vA_[8s)I-E& EEV' .s%ɚH I ԈǨцnOyFJWF/G>Dqa)h927@\y ȂGY2HV (#Y)܉>pFh cO|Q R?.`FO=ObKX[ )6 #PmBk8pr"A[|5\$OUiTe\D\B#v@`zRKSIY YՄ@VP ,UE%YvIXSB^ТÚu$ H?:K!2̅fxI¿dhxۅՙA ԟxUĕ _%T #ȿT썊|6*'_FtWm^\18wJA2"I npe0ˀ@T 5ڼTtvX[k@Nih`' =ɲGReJFEϮ םm/ٖLA$ w',H 3#+$5) W2"Ф_c$k Gm…DV`Ip0:IajN1+ڴ2m#8o`̈58 R5Qf6BAԩRϜz\ARRHRHIs$e7opl[\SC@\$_:G_;ȍѱN$?<IXGZ$xZEEȪDĩFsE/ri" 0TFXp풒B~9p@q*5K?uҐ ~a[t7QXOw3C)XezrH+8 GlA7H ڥKWK8v'EYCh1= r&&pH.(y[H=Ly?i;S2BGX7<С 7ydUżIRyDԨ؃\)f#i7<*KN!2 k#bGO޻F3n_\&dsVp#םYM7KZڼVB0:Nkk_%+N% yZ AQl9Zܦho?8V?#XstJ]h{#T Jr>l]HmxcU'y /_W*hir; ҡEu?GrR}2`b|ܶO \{9ݧ&#o#⌡KK,! *J][\%yt}Nn^8IqIJr/d3ĀcGY;zO?ť[l9QA8d,IdZ—/L)pN߽_d8!*RR䤬Xi&ߥ{ȝ|{Q&2̬Ma{M߱~xh/[KQ$TJT (J AꦚUdsokwxz╀s%$rU \i0zON7:;X|bθYIn UNe{^9a,+[QQA'Cs覧h?׸O]o1^,lĝP)˾z [M"5R7bbsLj)x!.I |^KM0;>/T!" !D0ӗGG(o裤Ϣ6x_h8f ΧtKpz,ATܑ:֩絝fn^M &+۬:QI@u$6kbu8ؗm"7Vemhp|2~^c\Hi9S>$DS.9䣸#:PLhoRRTPfdk}w>jca$% &3@$Ip\Vf~ I3Q1Ϻe;EJD~!GR@&ǕATLJzvmXOu*;  5IS, OM=y,UD1cO1.3k י"G#WZ-LUsV!ݫp5&] 6 ToHcAmkJuu%ID| zNʐ5b7|_ A`,.Tevlu0;SŇ:KdtXjZAi3$[_^2ƀ'zӰFUI̘t*b$.vapߗNR)"q f|\l]n(ާćmƃ|@1bw^jMFONI77nmSiaK9*R}u`R+aQ*I~U8{5R+L6Rc6#MzC宫s|;#S}iPe$t@̩fg^zoLԖxR2JRB%zdfj+D+Q ;8C,#H F{{FjorRNFɜש9LΫEi={<e3c,ʜgu^h}pZ0B&6c1D^M7+;? y%9 Uʥ` GQ=J9>\q/\gڔG4^i^eppR)IešQ*z&a,eu)KY+I NPbI˧J[oش׽ޗ /-/0] @ U ^v+euƢc}pWq)ðB  (X]PfMiZWR/!ITE (rTo79gn#aJhp?LH)J34O '/i,\T\9-XT@3. 2  |7/#Q4%7ВO-u4s9ĜX2pmĂ W’`ndJbknѤP`q82!b$2 ;GQm$;Fx\MRĸ6ER,Ers嗹glja ZIx15>i,I>I~4Ov;7l<Gӭv{6mJr3<&F#6.uT2a)yN KAtHҋ!scQH JAVSa_iZs+`T6;H3n%pߞB1VTDN $FF8Tv6-L^-kia>T- VIn~Ņ' )W؃& ؉+\o:leSb1J&M&OD@nʙ URD.$NC iaru7>u#պRb~(;ֵTHwjA7TȚE^kAޕ ~(uA@`I7: NzɌѦ@pAQ 51Zu  LYŝ3z:Be8~-œW܋(`#֊`Xq(,L"7Egu\}kmx$ZR` d9IUg][gI$)@( )ٳ,a[]U7m@\$$3*UYi/LęU#x*J+(IJBH㟫4k%@JE6X fIFf+]Ex2 nD܂-Zq?W3.nşq*PJ&DQJBM̀-cYzs{ڧ=؜a[m$3@č+x}LǬ[Imb.wkI$g;ݵ)MF)jl6a.#S3"q<[rB 8yuI@5 d)t9d;qzDw2wa VM˗ڦa|_hi~M }m;*p;exXK` ^LPX?QV Yζۂ@ԛ_Ԁ?KjVڣ2GOPACM>Kۺ6p|E`3ڒI̥yS +ֳ Iv)\!s:˔P%mPH T{מO;siSXvmIP)MqI c(jyծ kԵI3Z77 rȹ(9 ]Np.v** R3i$:qq9y#ǻ~ HbD>cM2Cf'd+l1s(M:pK"NV8ȁ3ydyuw /{F%8S)-R 4fD٦SsJVS~*QL~hxU[)D$ɵ( hE{)M?檧ܮ o;:@k ]6Ɏ)0PB`̙7=`-&IN֌(:zHґ{Xw*ᛋ_KNf % k3NJ$zoJѐ"O|uRCDS{:R)&~}- Ҩ@m˿բeWjLNC)V[T̛( 8v?N/ 4. #ƆMX\WRS٦#\N՗ %J2INOrkP Nn()VS?NW23ͤG!JA7#+TJ$9muTa1uFoTܥYRSX |E+s=Z䑠RS>&45&^i..d cHZa5 }=;nU_/_A~#YecEW8*`Ɂu\RI %/[ P)Nb"6#4Ș1& 1VM51+&p|6SYېEsEnQƛ3lf'7$EH\ھcPօ>CI \^fFZ7:Ƴljr~Ml{;NDW1;pU %/S΅b1lgD*2Axbv+Kn$px]4%lBs3 /Som_l4, ΗRR*Ɉ1I L5ڥ[[EnusY}ejNflNފbͺjfҒ2;žp~ K8d)7b/}j0 P/nҠ9no@LwA(hIRG}u #~>م,A۰7dr i_PiYW߯!ʴHjT MIeW\ *B_Oy|hj$XM&OmT 'ׅY/߭S,s֩ -*<0=?۽hT/̣'wP6JTr}m/Yax$iX"3ʸoC86."u7xi~`pū!Vh~ջq u'RC̶Stretch TStaticText StaticText1AnchorSideLeft.ControlOwnerAnchorSideLeft.Side asrCenterAnchorSideTop.ControlOwnerLeft,HeightTopWidth AlignmenttaCenterAutoSize CaptionUnihedron Device Manager Font.Height Font.NameSans Font.Style fsBold ParentFontTabOrder TStaticTextLabel1LeftHeightTopWidth5 AlignmenttaCenterAutoSize Caption.Checking for attached devices, please wait ...Color ParentColorTabOrderTTimerTimer1OnTimer Timer1TimerLeftjTop0FORMDATA TfrmSplashV@Start logging: immediately " at astronomical morning twilight  at nautical morning twilight  at civil morning twilight at sunrise at sunset  at civil evening twilight  at nautical evening twilight ! at astronmical evening twilight and stop logging: neverSent reading string by TCP to .: []TCP sending error:Number of starts ≠ stops.&Start and stop time must be different."Latitude and/or Longitude not set.StartNowLogContinuousSettingsStartMTAStartMTNStartMTCStartSRStartSSStartETCStartETNStartETAStopMTAStopMTNStopMTCStopSRStopSSStopETCStopETNStopETA StopNeverttNone%0.6f?4@ffffff4@5@5@6@2@333332@Y@o@@@1 Dir=RightDir=Left%1.1f%.1dd %.2d:%.2d:%.2dyyyy-mm-dd hh:nn:ssSelectedUnitSerialNumber: Getting log record.;;;Failed CheckRecordCount, got:#FTP send error during LogOneReadingFTP send error during LogOneReading Check Log Continuous Transfer tab, and ensure all entries are filled properly, or set frequency to Never.Logged Vector continuously %s..datLogged continuously %s.filefilesyyyy-mm-dd"T"hh:nn:ss.zzz";"%d;%1.3f;%1.3f#0.00 %d : rdg1 %d : rdg2?@@ @#0##0.0;;%s;%s;%sFP;fxyyyy-mm-dd"T"hh:nn:ssA1x@@@ %.3f;%.3f%d;S;D@6;%0.0f;%0.0f;%0.0f;%0.0f;%0.0f;%0.0f;%0.1f;%0.1f;%0.0f Zen: %.3f Azi: %.3f--Best: %sBest: %s at %s%s NELM %s cd/m² NSU%.1f;%.3f;%.3fS%3.4f%.2f;%2.1f;%s ERROR! IORESULT:  during WriteRecord, during WriteCSVRecord to:RxS  RCheckRecordCount fail: SelectedModel = %d, Expected pieces = %d, Actual pieces= %dPMAM%d%sFromHourToHourFixedTimeRangeSelectionHeightWidthFixedReadingRange FromReading ToReadingEvening range: yyyy-mm-dd"T"hh:nn:ss.zzz yyyy-mm-dd to 4Could not get Start/End plot times for x-axis title. during Moon plottingFixedAuto NightModeSlider$GoTo script files are located here: *.gotoGoTo script file location GoTo Baud GoToSettings CommandFileGoTo GoTo Machine GoTo Port GPS EnabledAlert2s AlarmSound%fAlarmThreshold ()0bashwhichexpectSecondsMinutes Threshold InvertScaleTemperaturePlotted Record LimitTimeout FTPSettings FTP address FTP username FTP passwordFTP remote directoryFTP frequency indexFTPSCPSFTPFTP protocol selection TransferDAT TransferCSV TransferPLOT21FTP port22SCP port SFTP port PW enable TrRdgEnabled TrRdgPort0.0.0.0 TrRdgAddress-LCGN-LCGRS GoTo Enabled-LCTH-LCM-LCMS-LCMM2ModeAlertprereading.wavfreshreading.wavalarmsound.wavrotstageMoonData Freshness SingleDatFile SplitDatTime RawFrequency /dev/ttyUSB*/dev/ /dev/ttyS*WARNING: GPS port: [#] cannot be the same as SQM port: [Warning communication port conflict!Connecting to GPS on: OKError: . Sent:  To: Received: WARNING: GoTo port: [Connecting to GoTo on:  Connect: baud, iOptron8408#:GAC#ȯ@"Recvd: %s : Zenith=%f , Azimuth=%fNeed 18 chars, got Goto :GAC# got nothing useful: *Check GoTo Test Status window for details.A:Sa%s%s#Sending: %s : where Zenith=%f:Sz%s#Sending: %s : where Azimuth=%f:MS#'Waiting for mount to reach destination.:ST0#:GAS#)Error in getting GoTo :GAS#, GoToResult: Mount reached destination.Error in gtSetZenithAzimuth. SynscanV4z Need 2 parts, got b%s,%s-Sending: %s : where Zenith=%f, and Azimuth=%f L 'Error in getting GoTo "L", GoToResult:  , Stopped recording.@@00?GoToser.CloseSocket; exceptionGPS Port /dev/ttyACM*Off*$$GPGSV$GNGSV3$GPGGA$GNGGAInvalidGPS fix Diff. GPS fixUnknown$GPRMC$GNRMCAVWarning.@WC~?20:TResumeLogging paused by user.PauseLogging resumed by user.Snooze button pressed. hr (12PM)hr (PM)AM) hr (12AM)GPS BaudFTP frequency descriptionShowHidef0xf1xaHotKeyshsyncpers-LCRStep,Zenith,Azimuth/.gotoSelected GoTo script file:#Looking for 2 columns, got , 3GoTo script file handling error occurred. Details: On row:GoTo script does not exits:=Stage 0; request move to position _n_ of _total_ : %.3f, %.3f"GoTo device has moved to position.0Waiting until GoTo device has moved to position.FPGot first fresh reading.Got stale reading: Expecting 8 pieces, got !Waiting for second fresh reading.#Got second fresh reading, logging: Unknown stage: )QΠE>E0 LoggingUnderwayLogContinuousPersistenceAlarm sounded.@Start recording Log continuousDevice:  Status:   ConnectedC4 E1 Finding limitsC0  Found limitsApplying center offsetM0 Mechanically centered0.0C3 Position centeredevery %d secondevery %d secondsevery 1 minuteevery %d minutesevery 1 minute on the minute"every 5 minutes on the 1/12th hour"every 10 minutes on the 1/6th hour every 15 minutes on the 1/4 hour every 30 minutes on the 1/2 hourevery hour on the hour ,Threshold =  mpsas, Record limit = E mags/arcsec²MPSAS ADA factorADA ADAFactorcountsGDMDL-V-LogLE during StartButtonClickNProblem starting logging, check header timezone information. ERROR! IORESULT: -LCMINThis sends each reading by TCP to a server. Sign up to the Globe at Night server (email globeatnight.network@gmail.com) and provide your location, coordinates, and serial number to receive the IP address and port number. Transferring file(s)...YYYYMMDD.pngsqm.html21test.txtPending transfer ...Unable to login within ms. YYYY-MM-DD hh:nn:ssSent: Failed:  Completed in  ms.sqm.html Sent html: Failed sending html: Completed sending html in plot.png Sent plot: Failed sending plot: Completed sending plot in sftp %s%sex.tclsftp://%s@%s:%s/TProcess sftp transfer of html and plot failed.-The sftp or expect executable does not exist.<SFTP send error: The sftp or bash executable does not exist.^SFTP send error: The sftp or bash executable does not exist. Check LogContinuout Transfer tab.scp-P@Passed (.dat and/or .csv)Failed (.dat and/or .csv) SCP result: Passed (html) Failed (html)SCP html result: Passed (plot) Failed (plot)SCP plot result:"The scp executable does not exist.2SCP send error: The scp executable does not exist.TSCP send error: The scp executable does not exist. Check LogContinuout Transfer tab.@@Transfer time: %0.3fs %s%0.5f° E Wsqm-template.htmlsqm-skeleton.html Looking for .goto files here: *.goto: default.goto4Saved GoTo commandfile file setting does not exist: "Removing GoTo commandfile setting. TPF0 TFormLogCont FormLogContLeft HeightTopxWidth ActiveControl PairSplitter1CaptionLog Continuously ClientHeight ClientWidthConstraints.MinHeightConstraints.MinWidth KeyPreview OnClose FormCloseOnCreate FormCreateOnKeyUp FormKeyUpOnResize FormResizeOnShowFormShowPositionpoScreenCenter ShowInTaskBarstAlways LCLVersion3.2.0.0 TPairSplitter PairSplitter1AnchorSideLeft.ControlOwnerAnchorSideTop.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomCursorcrVSplitLeftHeightTopWidthAnchors akTopakLeftakRightakBottomParentShowHintPosition SplitterType pstVerticalTPairSplitterSidePairSplitterTopCursorcrArrowLeftHeightTopWidth ClientWidth ClientHeightConstraints.MinHeightOnResizePairSplitterTopResize TPageControl PageControl1AnchorSideLeft.ControlPairSplitterTopAnchorSideTop.ControlPairSplitterTopAnchorSideRight.ControlPairSplitterTopAnchorSideRight.Side asrBottomAnchorSideBottom.ControlPairSplitterTopAnchorSideBottom.Side asrBottomLeftHeightTopWidth ActivePageTransferFileTabSheetAnchors akTopakLeftakRightakBottomBorderSpacing.LeftBorderSpacing.TopBorderSpacing.RightTabIndexTabOrder TTabSheet TriggerSheetCaptionTrigger ClientHeight ClientWidth TGroupBoxFrequencyGroupAnchorSideLeft.Control TriggerSheetAnchorSideTop.Control TriggerSheetAnchorSideBottom.Control TriggerSheetAnchorSideBottom.Side asrBottomLeftHeightTopWidthAnchors akTopakLeftakBottomBorderSpacing.LeftBorderSpacing.TopCaption Frequency: ClientHeight ClientWidth ParentColorTabOrder TRadioButton RadioButton1AnchorSideLeft.ControlFrequencyGroupAnchorSideTop.ControlLCTrigSecondsSpinAnchorSideTop.Side asrCenterLeftHeightTop Width=CaptionEveryChecked TabOrderTabStop OnClickRadioButton1Click TSpinEditLCTrigSecondsSpinAnchorSideLeft.Control RadioButton1AnchorSideLeft.Side asrBottomAnchorSideTop.ControlFrequencyGroupLeftAHeight$HintPress Enter when done.TopWidth: AlignmenttaCenterBorderSpacing.LeftBorderSpacing.TopMaxValueMinValueOnChangeLCTrigSecondsSpinChangeTabOrderValueTLabel SecondsLabelAnchorSideLeft.ControlLCTrigSecondsSpinAnchorSideLeft.Side asrBottomAnchorSideTop.ControlLCTrigSecondsSpinAnchorSideTop.Side asrCenterLeft~HeightTop Width2BorderSpacing.LeftCaptionseconds ParentColor TSpinEditLCTrigMinutesSpinAnchorSideLeft.Control RadioButton2AnchorSideLeft.Side asrBottomAnchorSideTop.ControlLCTrigSecondsSpinAnchorSideTop.Side asrBottomLeftAHeight$HintPress Enter when done.Top.Width: AlignmenttaCenterBorderSpacing.LeftBorderSpacing.TopMaxValueMinValueOnChangeLCTrigMinutesSpinChangeTabOrderValueTLabel MinutesLabelAnchorSideLeft.ControlLCTrigMinutesSpinAnchorSideLeft.Side asrBottomAnchorSideTop.ControlLCTrigMinutesSpinAnchorSideTop.Side asrCenterLeft~HeightTop7Width2BorderSpacing.LeftCaptionminutes ParentColor TRadioButton RadioButton2AnchorSideLeft.Control RadioButton1AnchorSideTop.ControlLCTrigMinutesSpinAnchorSideTop.Side asrCenterLeftHeightTop5Width=CaptionEveryTabOrderOnClickRadioButton1Click TRadioButton RadioButton3AnchorSideLeft.Control RadioButton1AnchorSideTop.ControlLCTrigMinutesSpinAnchorSideTop.Side asrBottomLe ftHeightTopTWidthBorderSpacing.TopCaptionEvery 1 minute on the minuteTabOrderOnClickRadioButton1Click TRadioButton RadioButton4AnchorSideLeft.Control RadioButton1AnchorSideTop.Control RadioButton3AnchorSideTop.Side asrBottomLeftHeightTopkWidthCaptionEvery 5 min on the 1/12th hrTabOrderOnClickRadioButton1Click TRadioButton RadioButton5AnchorSideLeft.Control RadioButton1AnchorSideTop.Control RadioButton4AnchorSideTop.Side asrBottomLeftHeightTopWidthCaptionEvery 10 min on the 1/6th hrTabOrderOnClickRadioButton1Click TRadioButton RadioButton6AnchorSideLeft.Control RadioButton1AnchorSideTop.Control RadioButton5AnchorSideTop.Side asrBottomLeftHeightTopWidthCaptionEvery 15 min on the 1/4 hrTabOrderOnClickRadioButton1Click TRadioButton RadioButton7AnchorSideLeft.Control RadioButton1AnchorSideTop.Control RadioButton6AnchorSideTop.Side asrBottomLeftHeightTopWidthCaptionEvery 30 min on the 1/2 hrTabOrderOnClickRadioButton1Click TRadioButton RadioButton8AnchorSideLeft.Control RadioButton1AnchorSideTop.Control RadioButton7AnchorSideTop.Side asrBottomLeftHeightTopWidthCaptionEvery hour on the hourTabOrder OnClickRadioButton1Click TGroupBoxStartStopGroupAnchorSideLeft.ControlFrequencyGroupAnchorSideLeft.Side asrBottomAnchorSideTop.Control TriggerSheetAnchorSideRight.Control TriggerSheetAnchorSideRight.Side asrBottomAnchorSideBottom.Control TriggerSheetAnchorSideBottom.Side asrBottomLeft0HeightTopWidthAnchors akTopakRightakBottomBorderSpacing.LeftBorderSpacing.TopBorderSpacing.Bottom ClientHeight ClientWidthTabOrderVisible TCheckBox checkNowStartAnchorSideTop.Control StartLabelAnchorSideTop.Side asrBottomAnchorSideRight.Control StartLabelAnchorSideRight.Side asrBottomLeftHeightTopWidthAnchors akTopakRightTabOrderOnClickcheckNowStartClickTLabel StartLabelAnchorSideTop.ControlStartStopGroupLeftzHeightTopWidth!Anchors akTopCaptionStart ParentColor ParentFontTLabel StopLabelAnchorSideTop.ControlStartStopGroupLeftHeightTopWidthAnchors akTopCaption Stop ParentColor TCheckBox checkSRStartAnchorSideRight.Control StartLabelAnchorSideRight.Side asrBottomLeftHeightTopWidthAnchors akRightTabOrderOnClickcheckMTAStartClick TCheckBox checkMTAStartAnchorSideTop.Control checkNowStartAnchorSideTop.Side asrBottomAnchorSideRight.Control StartLabelAnchorSideRight.Side asrBottomLeftHeightTop*WidthAnchors akTopakRightParentBidiModeTabOrderOnClickcheckMTAStartClickTLabelLabel3AnchorSideTop.Control checkNowStartAnchorSideRight.Control checkNowStartLefthHeightTopWidthAnchors akTopakRightCaptionNow ParentColor ParentFontTLabelLabel5Left`HeightTopWidth.Anchors CaptionSunrise ParentColor ParentFontTLabelLabel6AnchorSideTop.Control checkMTAStartAnchorSideRight.Control checkMTAStartLeftHeightTop*WidthAnchors akTopakRightCaptionAstronomical morning twilight ParentColor ParentFontTLabelLabel7AnchorSideTop.Control checkMTNStartAnchorSideRight.Control checkMTNStartLeftHeightTopAWidthAnchors akTopakRightCaptionNautical morning twilight ParentColor ParentFontTLabelLabel8LeftHeightTopR WidthAnchors CaptionCivil morning twilight ParentColor ParentFont TCheckBox checkMTNStartAnchorSideTop.Control checkMTAStartAnchorSideTop.Side asrBottomAnchorSideRight.Control StartLabelAnchorSideRight.Side asrBottomLeftHeightTopAWidthAnchors akTopakRightParentBidiModeTabOrderOnClickcheckMTAStartClick TCheckBox checkMTCStartAnchorSideRight.Control StartLabelAnchorSideRight.Side asrBottomLeftHeightTopWidthAnchors akRightParentBidiModeTabOrderOnClickcheckMTAStartClick TCheckBox checkETCStartAnchorSideRight.Control StartLabelAnchorSideRight.Side asrBottomLeftHeightTopWidthAnchors akRightParentBidiModeTabOrderOnClickcheckMTAStartClick TCheckBox checkETNStartAnchorSideRight.Control StartLabelAnchorSideRight.Side asrBottomLeftHeightTopWidthAnchors akRightParentBidiModeTabOrderOnClickcheckMTAStartClick TCheckBox checkETAStartAnchorSideRight.Control StartLabelAnchorSideRight.Side asrBottomLeftHeightTop WidthAnchors akRightParentBidiModeTabOrderOnClickcheckMTAStartClick TCheckBox checkSSStartAnchorSideRight.Control StartLabelAnchorSideRight.Side asrBottomLeftHeightTopJWidthAnchors akRightParentBidiModeTabOrderOnClickcheckMTAStartClickTLabelLabel9LeftHeightTopWidth|Anchors CaptionCivil evening twilight ParentColorTLabelLabel10LeftHeightTopWidthAnchors CaptionNautical evening twilight ParentColorTLabelLabel11LeftHeightTop"WidthAnchors CaptionAstronomical evening twilight ParentColorTLabelLabel12LeftcHeightTopLWidth*Anchors CaptionSunset ParentColorTLabelLabel13LeftHeightTopPWidth&Anchors CaptionNever ParentColor TCheckBoxcheckNeverStopAnchorSideLeft.Control StopLabelLeftHeightTopNWidthAnchors akLeftTabOrder OnClickcheckNeverStopClick TCheckBox checkSRStopAnchorSideLeft.Control StopLabelLeftHeightTopWidthAnchors akLeftTabOrder OnClickcheckMTAStopClick TCheckBox checkMTAStopAnchorSideLeft.Control StopLabelAnchorSideTop.Control checkMTAStartAnchorSideRight.Side asrBottomLeftHeightTop*WidthParentBidiModeTabOrder OnClickcheckMTAStopClick TCheckBox checkMTNStopAnchorSideLeft.Control StopLabelAnchorSideRight.Control checkSRStopAnchorSideRight.Side asrBottomLeftHeightTopWidthAnchors akLeftParentBidiModeTabOrder OnClickcheckMTAStopClick TCheckBox checkMTCStopAnchorSideLeft.Control StopLabelAnchorSideRight.Control checkSRStopAnchorSideRight.Side asrBottomLeftHeightTopWidthAnchors akLeftParentBidiModeTabOrder OnClickcheckMTAStopClick TCheckBox checkETCStopAnchorSideLeft.Control StopLabelAnchorSideRight.Control checkSRStopAnchorSideRight.Side asrBottomLeftHeightTopWidthAnchors akLeftParentBidiModeTabOrderOnClickcheckMTAStopClick TCheckBox checkETNStopAnchorSideLeft.Control StopLabelAnchorSideRight.Control checkSRStopAnchorSideRight.Side asrBottomLeftHeightTopWidthAnchors akLeftParentBidiModeTabOrderOnClickcheckMTAStopClick TCheckBox checkETAStopAnchorSideLeft.Control StopLabelAnchorSideRight.Control checkSRStopAnchorSideRight.Side asrBottomLeftHeightx Top WidthAnchors akLeftParentBidiModeTabOrderOnClickcheckMTAStopClick TCheckBox checkSSStopAnchorSideLeft.Control StopLabelAnchorSideRight.Control checkSRStopAnchorSideRight.Side asrBottomLeftHeightTopJWidthAnchors akLeftParentBidiModeTabOrderOnClickcheckMTAStopClickTLabelTimeSRLeftHeightTopWidth8Anchors Captiondatetime ParentColorTLabelTimeMTAAnchorSideLeft.Control checkMTAStopAnchorSideLeft.Side asrBottomAnchorSideTop.Control checkMTAStopLeftHeightTop*Width8Anchors akTopCaptiondatetime ParentColorTLabelTimeMTNLeftHeightTopWidth8Anchors Captiondatetime ParentColorTLabelTimeMTCLeftHeightTopWidth8Anchors Captiondatetime ParentColorTLabelTimeETCLeftHeightTopWidth8Anchors Captiondatetime ParentColorTLabelTimeETNLeftHeightTopWidth8Anchors Captiondatetime ParentColorTLabelTimeETALeftHeightTop"Width8Anchors Captiondatetime ParentColorTLabelTimeSSLeftHeightTopLWidth8Anchors Captiondatetime ParentColor TGroupBoxLocationGroupBoxLeftHeight>Top[WidthAnchors AutoSize CaptionLocation ClientHeight* ClientWidthTabOrderTBitBtnSetLocationButtonAnchorSideLeft.Control LongitudeTextAnchorSideLeft.Side asrBottomAnchorSideBottom.Control LongitudeTextAnchorSideBottom.Side asrBottomLeftHeightTop WidthKAnchors akLeftakBottomBorderSpacing.LeftCaptionSetOnClickSetLocationButtonClickTabOrder TStaticText LatitudeTextAnchorSideLeft.ControlLocationGroupBoxAnchorSideTop.Control LatitudeLabelAnchorSideTop.Side asrBottomLeftHeightTopWidthPBorderSpacing.Left BorderStyle sbsSingleTabOrderTLabel LatitudeLabelAnchorSideLeft.Control LatitudeTextAnchorSideLeft.Side asrCenterAnchorSideTop.ControlLocationGroupBoxLeftHeightTopWidth3BorderSpacing.TopCaptionLatitude ParentColorTLabelLongitudeLabelAnchorSideLeft.Control LongitudeTextAnchorSideLeft.Side asrCenterAnchorSideTop.Control LatitudeLabelLeft_HeightTopWidth?Caption Longitude ParentColor TStaticText LongitudeTextAnchorSideLeft.Control LatitudeTextAnchorSideLeft.Side asrBottomAnchorSideTop.Control LatitudeLabelAnchorSideTop.Side asrBottomLeftVHeightTopWidthPBorderSpacing.Left BorderStyle sbsSingleTabOrderTMemo StartStopMemoAnchorSideRight.ControlStartStopGroupAnchorSideRight.Side asrBottomAnchorSideBottom.ControlStartStopGroupAnchorSideBottom.Side asrBottomLeftHeight}TopqWidthAnchors akRightakBottom ScrollBarsssAutoVerticalTabOrder TCheckGroup OptionsGroupAnchorSideLeft.ControlFrequencyGroupAnchorSideLeft.Side asrBottomAnchorSideTop.ControlFrequencyGroupAnchorSideRight.ControlStartStopGroupLeftHeight|TopWidthAnchors akTopakLeftakRightAutoFill AutoSize BorderSpacing.LeftCaptionOptions:ChildSizing.LeftRightSpacingChildSizing.TopBottomSpacingChildSizing.EnlargeHorizontalcrsHomogenousChildResizeChildSizing.EnlargeVerticalcrsHomogenousChildResizeChildSizing.ShrinkHorizontalcrsScaleChildsChildSizing.ShrinkVerticalcrsScaleChildsChildSizing.LayoutcclLeftToRightThenTopToBottomChildSizing.ControlsPerLine ClientHeighth ClientWidthConstraints.MaxWidth Items.Strings Moon data Fre shnessGoTo accessory Raw frequency OnItemClickOptionsGroupItemClickTabOrderData  TGroupBox LimitGroupAnchorSideLeft.Control OptionsGroupAnchorSideTop.Control OptionsGroupAnchorSideTop.Side asrBottomAnchorSideRight.Control OptionsGroupAnchorSideRight.Side asrBottomLeftHeight<Top~WidthAnchors akTopakLeftakRightAutoSize CaptionLimit: ClientHeight( ClientWidthTabOrder TSpinEditRecordLimitSpinAnchorSideLeft.Control LimitGroupAnchorSideTop.Control LimitGroupLeftHeight$Hint"Set to 0 for unlimited recordings.TopWidthF AlignmenttaCenterBorderSpacing.AroundMaxValueOnChangeRecordLimitSpinChangeParentShowHintShowHint TabOrderTLabelLabel2AnchorSideLeft.ControlRecordLimitSpinAnchorSideLeft.Side asrBottomAnchorSideTop.ControlRecordLimitSpinAnchorSideTop.Side asrCenterLeftJHeightTop Width.Captionrecords ParentColor TGroupBox SplitGroupLeftHeightfTopWidthCaptionSplit (local time): ClientHeightR ClientWidthTabOrder TCheckBoxSingleDatCheckBoxAnchorSideLeft.Control SplitGroupAnchorSideTop.Control SplitGroupLeftHeightHint1Prevent .dat record file from splitting each day.TopWidthpBorderSpacing.LeftCaptionSingle .dat fileParentShowHintShowHint TabOrderOnClickSingleDatCheckBoxClick TSpinEdit SplitSpinEditAnchorSideLeft.ControlSingleDatCheckBoxAnchorSideTop.ControlSingleDatCheckBoxAnchorSideTop.Side asrBottomLeftHeight$Hint+Local hour to start a new .dat record file.TopWidthEBorderSpacing.TopOnChangeSplitSpinEditChangeParentShowHintShowHint TabOrderTLabelSplitSpinLabelAnchorSideLeft.Control SplitSpinEditAnchorSideLeft.Side asrBottomAnchorSideTop.Control SplitSpinEditAnchorSideTop.Side asrCenterLeftLHeightTop$WidthBorderSpacing.LeftCaptionhr ParentColor TTabSheet ReadingSheetCaptionReading ClientHeight ClientWidth ParentFontTLabelDisplayedReadingAnchorSideLeft.ControlChart1AnchorSideLeft.Side asrCenterAnchorSideTop.Control ReadingSheetLeftFHeightCTopWidth AlignmenttaCenterBorderSpacing.TopCaption-XX.XX Font.Height Font.NameSans ParentColor ParentFontTLabel ReadingUnitsAnchorSideLeft.ControlDisplayedReadingAnchorSideLeft.Side asrBottomAnchorSideTop.ControlDisplayedReadingAnchorSideTop.Side asrBottomAnchorSideBottom.ControlDisplayedReadingAnchorSideBottom.Side asrCenterLeftHeightHintmagnitudes per square arcsecondTopWidthQAnchors akLeftakBottomBorderSpacing.LeftBorderSpacing.TopCaption mags/arcsec² ParentColorParentShowHintShowHint TChartChart1AnchorSideLeft.Control ReadingSheetAnchorSideTop.ControlDisplayedReadingAnchorSideTop.Side asrBottomAnchorSideRight.ControlAltAzPlotpanelAnchorSideBottom.Control ReadingSheetAnchorSideBottom.Side asrBottomLeftHeightTopIWidthAxisList Alignment calBottomMarks.LabelFont.HeightMarks.LabelFont.NameSans Marks.Format%2:sMarks.LabelBrush.StylebsClear Marks.SourceDateTimeIntervalChartSource1 Marks.StylesmsLabelMinors Range.Max@Title.Distance Title.Visible Title.Caption Sample timeTitle.LabelBrush.StylebsClear Grid.StylepsSolidIntervals.NiceSteps0.1Intervals.Options aipUseMinLengthaipUseNiceSteps TickLengthMarks.LabelFont.ColorclRed Marks.Format%0:3.2fMarks.LabelBrush.StylebsClear Marks.Style smsCustomMinorsIntervals.CountIntervals.MinLengthIntervals.Options aipUseCountaipUseNiceStepsMarks.LabelFont.ColorclRed Marks.Format%0:3.2fMarks.LabelBrush.StylebsClear Marks.Style smsCustomTitle.LabelFont.ColorclRedTitle.LabelFont.Orientation Title.Visible Title.CaptionMPSASTitle.LabelBrush.StylebsClearTransformationsMPSASAxisTransforms Grid.Visible TickColorclNone TickLength AlignmentcalRightMarks.LabelFont.ColorclLimeMarks.LabelBrush.StylebsClearMinorsTitle.LabelFont.ColorclLimeTitle.LabelFont.Orientation Title.Visible Title.Caption TemperatureTitle.LabelBrush.StylebsClearTransformationsTemperatureAxisTransforms Grid.Visible TickColorclNone TickLength AlignmentcalRightMarks.LabelFont.ColorclBlackMarks.LabelBrush.StylebsClearMinors Range.Max@ Range.Min Range.UseMax Range.UseMin Title.LabelFont.Orientation Title.Visible Title.CaptionMoon ElevationTitle.LabelBrush.StylebsClearTransformationsMoonAxisTransformsFoot.Brush.Color clBtnFaceFoot.Font.ColorclBlueTitle.Brush.Color clBtnFaceTitle.Font.ColorclBlueTitle.Text.StringsTAChartAnchors akTopakLeftakRightakBottomBorderSpacing.Bottom TLineSeries MPSASSeries AxisIndexX AxisIndexY LinePen.ColorclRed LinePen.WidthPointer.Brush.ColorPointer.HorizSize Pointer.StylepsCirclePointer.VertSizePointer.Visible ShowPoints TLineSeries RedSeries AxisIndexX AxisIndexY LinePen.ColorclRedPointer.HorizSize Pointer.StylepsCirclePointer.VertSizePointer.Visible ShowPoints TLineSeries GreenSeries AxisIndexX AxisIndexY LinePen.ColorclGreenPointer.HorizSize Pointer.StylepsCirclePointer.VertSizePointer.Visible ShowPoints TLineSeries BlueSeries AxisIndexX AxisIndexY LinePen.ColorclBluePointer.HorizSize Pointer.StylepsCirclePointer.VertSizePointer.Visible ShowPoints TLineSeries ClearSeries AxisIndexX AxisIndexYPointer.HorizSize Pointer.StylepsCirclePointer.VertSize TLineSeries TempSeries AxisIndexX AxisIndexY LinePen.ColorclLime TLineSeries MoonSeries AxisIndexX AxisIndexY TLineSeriesMoonPhaseSeriesTPanelAltAzPlotpanelAnchorSideTop.Control ReadingSheetAnchorSideRight.Control ReadingSheetAnchorSideRight.Side asrBottomAnchorSideBottom.Control ReadingSheetAnchorSideBottom.Side asrBottomLeftHeightTopWidthAnchors akTopakRightakBottomAutoSize BevelOuterbvNone ClientHeight ClientWidthTabOrderVisibleTLabel EastLabelAnchorSideTop.ControlChart2AnchorSideTop.Side asrCenterAnchorSideRight.ControlChart2LeftHeightTopxWidth Anchors akTopakRightCaptionE Font.Height Font.Style fsBold ParentColor ParentFontTChartChart2AnchorSideRight.Control WestLabelAnchorSideBottom.Control SouthLabelLeft HeightTop5WidthAxisList Grid.Visible Marks.VisibleMarks.LabelBrush.StylebsClearMinors Range.Max? Range.Min Range.UseMax Range.UseMin Title.LabelFont.OrientationTitle.LabelBrush.StylebsClear Grid.Visible Alignment calBottom Marks.VisibleMarks.LabelBrush.StylebsClearMinors Range.Max? Range.Min Range.UseMax Range.UseMin Title.LabelBrush.StylebsClearFoot.Brush.Color clBtnFaceFoot.Font.ColorclBlueTitle.Brush.Color clBtnFaceTitle.Font.ColorclBlueTitle.Text.StringsTAChartAnchors akRightakBottom TLineSeriesChart2LineSeries1 LinePen.StylepsClearPointer.HorizSize Pointer.StylepsCircl ePointer.VertSizePointer.Visible ShowPoints TLabel WestLabelAnchorSideTop.ControlChart2AnchorSideTop.Side asrCenterAnchorSideRight.ControlAltAzPlotpanelAnchorSideRight.Side asrBottomLeftHeightTopxWidthAnchors akTopakRightBorderSpacing.RightCaptionW Font.Height Font.Style fsBold ParentColor ParentFontTLabel SouthLabelAnchorSideLeft.ControlChart2AnchorSideLeft.Side asrCenterAnchorSideTop.Side asrBottomAnchorSideBottom.ControlAltAzPlotpanelAnchorSideBottom.Side asrBottomLeftVHeightTopWidth Anchors akLeftakBottomBorderSpacing.BottomCaptionS Font.Height Font.Style fsBold ParentColor ParentFontTLabel NorthLabelAnchorSideLeft.ControlChart2AnchorSideLeft.Side asrCenterAnchorSideBottom.ControlChart2LeftTHeightTopWidthAnchors akLeftakBottomCaptionN Font.Height Font.Style fsBold ParentColor ParentFontTLabel DisplayedNELMAnchorSideRight.ControlChart1AnchorSideRight.Side asrBottomAnchorSideBottom.Control Displayedcdm2LeftHeightHintNaked Eye Limiting MagnitudeTop Width$Anchors akRightakBottomBorderSpacing.RightBorderSpacing.BottomCaptionNELM ParentColorParentShowHintShowHint TLabel Displayedcdm2AnchorSideRight.ControlChart1AnchorSideRight.Side asrBottomAnchorSideBottom.Control DisplayedNSULeftHeightHintcandela per square meterTop!Width$Anchors akRightakBottomBorderSpacing.RightBorderSpacing.BottomCaptioncd/m² ParentColorParentShowHintShowHint TLabel DisplayedNSUAnchorSideRight.ControlChart1AnchorSideRight.Side asrBottomAnchorSideBottom.ControlChart1LeftHeightHintNatural Sky UnitsTop6WidthAnchors akRightakBottomBorderSpacing.Right CaptionNSU ParentColorParentShowHintShowHint TLabelLocationNameLabelAnchorSideLeft.Control ReadingSheetAnchorSideTop.Control ReadingSheetLeftHeightTopWidthYCaption LocationName ParentColorTLabelCoordinatesLabelAnchorSideLeft.Control ReadingSheetAnchorSideTop.ControlLocationNameLabelAnchorSideTop.Side asrBottomLeftHeightTopWidthJCaption Coordinates ParentColorTLabelBestDarknessLabelLeftHeightTop0WidthAutoSizeCaption BestDarkness ParentColor TTabSheetAnnotationSheetCaption Annotation ClientHeight ClientWidth TGroupBoxAnnotationGroupBoxAnchorSideLeft.ControlAnnotationSheetAnchorSideTop.ControlAnnotationSheetAnchorSideBottom.ControlAnnotationSheetAnchorSideBottom.Side asrBottomLeftHeightTopWidthAnchors akTopakLeftakBottomCaption Annotation ClientHeight ClientWidthTabOrderTEdit AnnotateEditAnchorSideLeft.ControlAnnotationGroupBoxAnchorSideRight.ControlAnnotateButtonAnchorSideBottom.ControlAnnotationGroupBoxAnchorSideBottom.Side asrBottomLeftHeight$HintType custom annotation in here.TopWidthcAnchors akLeftakRightakBottomParentShowHintShowHint TabStopTabOrderTButtonAnnotateButtonAnchorSideRight.ControlAnnotationGroupBoxAnchorSideRight.Side asrBottomAnchorSideBottom.ControlAnnotationGroupBoxAnchorSideBottom.Side asrBottomLeftcHeightTopWidthKAnchors akRightakBottomCaptionAnnotateTabOrderOnClickAnnotateButtonClick TStringGridHotkeyStringGridAnchorSideLeft.ControlAnnotationGroupBoxAnchorSideTop.ControlAnnotationGroupBoxAnchorSideRight.Side asrBottomAnchorSideBottom.Control PendingHotKeyLeftHeightTopWidthAnchors akTopakLeftakBottomColCountColumns Title.CaptionHotkeyWidthd Title.Caption AnnotationWidth FixedColsOptions goFixedVertLinegoFixedHorzLine goVertLine goHorzLine goRangeSelect goEditinggoSmoothScrollRowCount TabOrderTabStopOnKeyUpHotkeyStringGridKeyUpOnSelectEditorHotkeyStringGridSelectEditor TCheckBoxEditHotkeysCheckBoxAnchorSideLeft.ControlHotkeyStringGridAnchorSideLeft.Side asrBottomAnchorSideTop.ControlHotkeyStringGridLeftHeightHint#No hotkey annotation while editing.TopWidthfCaption Edit HotkeysChecked EnabledParentShowHintShowHint State cbCheckedTabOrderOnChangeEditHotkeysCheckBoxChange TCheckBoxSynchronizedCheckBoxAnchorSideLeft.ControlHotkeyStringGridAnchorSideLeft.Side asrBottomAnchorSideTop.ControlEditHotkeysCheckBoxAnchorSideTop.Side asrBottomLeftHeightHint#Wait for interval before recording.TopWidthlCaption SynchronizedParentShowHintShowHint TabOrderOnChangeSynchronizedCheckBoxChangeTLabel PendingLabelAnchorSideLeft.ControlAnnotateButtonAnchorSideTop.Control PendingHotKeyAnchorSideTop.Side asrCenterAnchorSideBottom.ControlAnnotateButtonLeftcHeightTopWidth3CaptionPending ParentColorTEdit PendingHotKeyAnchorSideLeft.Control AnnotateEditAnchorSideRight.Control PendingLabelAnchorSideBottom.Control AnnotateEditLeftHeight$Hint;Annotation that will be recorded at the next time interval.TopWidthcAnchors akLeftakRightakBottomParentShowHintReadOnly ShowHint TabStopTabOrder TCheckBoxPersistentCheckBoxAnchorSideLeft.ControlHotkeyStringGridAnchorSideLeft.Side asrBottomAnchorSideTop.ControlSynchronizedCheckBoxAnchorSideTop.Side asrBottomLeftHeightHint%Annotate every record with last text.Top.WidthYCaption PersistentParentShowHintShowHint TabOrderOnChangePersistentCheckBoxChange TTabSheetTransferReadingTabSheetCaptionTransfer reading ClientHeight ClientWidthTLabelLabel19AnchorSideTop.Control TrRdgPortEditAnchorSideTop.Side asrCenterAnchorSideRight.Control TrRdgPortEditLeftcHeightTop]WidthiAnchors akTopakRightBorderSpacing.RightCaptionDestination port: ParentColorTButtonTrRdgTestButtonAnchorSideTop.Side asrBottomLeftHeightHint4Test sending a reading to the Globe at Night server.TopWidthfAnchors CaptionTestTabOrderOnClickTrRdgTestButtonClickTEditTrRdgAddressEntryAnchorSideTop.ControlTrRdgEnableCheckBoxAnchorSideTop.Side asrBottomAnchorSideRight.Side asrBottomLeftHeight$HintGlobe at Night server address.Top0Width AlignmenttaCenterAnchors akRightTabOrderText0.0.0.0OnChangeTrRdgAddressEntryChangeTLabelLabel20AnchorSideTop.ControlTrRdgAddressEntryAnchorSideTop.Side asrCenterAnchorSideRight.ControlTrRdgAddressEntryLeft>HeightTop9WidthAnchors akTopakRightBorderSpacing.RightCaptionDestination IP address: ParentColor TCheckBoxTrRdgEnableCheckBoxAnchorSideLeft.ControlTrRdgAddressEntryLeftHeightHint3Enable reading to be sent to Globe at Night server.TopWidthAnchors CaptionEnable reading transferTabOrderOnClickTrRdgEnableCheckBoxClickTButtonTrRdgHelpButtonAnchorSideTop.ControlTrRdgTestButtonAnchorSideRight.Side asrBottomLeft^HeightHintDInstructions for transfering a reading to the Globe at Night server.TopWidthAnchors akTopakRightCaption?TabOrderOnClickTrRdgHelpButtonClickTEdit TrRdgPortEditAnchorSiHdeLeft.ControlTrRdgAddressEntryAnchorSideTop.ControlTrRdgAddressEntryAnchorSideTop.Side asrBottomAnchorSideRight.Side asrBottomLeftHeight$HintGlobe at Night server port.TopTWidth AlignmenttaCenterTabOrderText0OnChangeTrRdgPortEditChange TTabSheetTransferFileTabSheetCaption Transfer file ClientHeight ClientWidth TGroupBoxTransferSettingsGroupBoxAnchorSideLeft.ControlTransferFileTabSheetAnchorSideTop.ControlTransferFileTabSheetAnchorSideBottom.ControlTransferFileTabSheetAnchorSideBottom.Side asrBottomLeftHeightTopWidthAnchors akTopakLeftakBottomCaptionSettings ClientHeight ClientWidthTabOrder TLabeledEditTransferAddressEntryAnchorSideTop.ControlTransferFrequencyRadioGroupAnchorSideTop.Side asrBottomLeftHeightTopVWidthAnchors akTopAutoSizeEditLabel.HeightEditLabel.Width6EditLabel.CaptionAddress:EditLabel.ParentColor LabelPositionlpLeftTabOrderOnChangeTransferAddressEntryChange TLabeledEditTransferPortEntryAnchorSideLeft.ControlTransferAddressEntryAnchorSideLeft.Side asrBottomAnchorSideTop.ControlTransferAddressEntryAnchorSideRight.ControlTransferSettingsGroupBoxAnchorSideRight.Side asrBottomLeftHeightTopVWidthFAnchors akTopakRightAutoSizeEditLabel.HeightEditLabel.WidthEditLabel.CaptionPort:EditLabel.ParentColor LabelPositionlpLeftTabOrderOnChangeTransferPortEntryChange TLabeledEditTransferUsernameEntryAnchorSideLeft.ControlTransferAddressEntryAnchorSideTop.ControlTransferAddressEntryAnchorSideTop.Side asrBottomLeftHeightTopoWidthAutoSizeEditLabel.HeightEditLabel.WidthEEditLabel.Caption Username:EditLabel.ParentColor LabelPositionlpLeftTabOrderOnChangeTransferUsernameEntryChange TLabeledEditTransferPasswordEntryAnchorSideLeft.ControlTransferAddressEntryAnchorSideTop.ControlTransferUsernameEntryAnchorSideTop.Side asrBottomLeftHeightTopWidthAutoSizeEchoMode emPasswordEditLabel.HeightEditLabel.Width>EditLabel.Caption Password:EditLabel.ParentColor LabelPositionlpLeft PasswordChar*TabOrderOnChangeTransferPasswordEntryChange TLabeledEditTransferRemoteDirectoryEntryAnchorSideLeft.ControlTransferAddressEntryAnchorSideTop.ControlTransferPasswordEntryAnchorSideTop.Side asrBottomLeftHeightTopWidth0AutoSizeEditLabel.HeightEditLabel.WidthpEditLabel.CaptionRemote directory:EditLabel.ParentColor LabelPositionlpLeftTabOrderOnChange"TransferRemoteDirectoryEntryChangeTButtonTransferPasswordShowHideAnchorSideLeft.ControlTransferPasswordEntryAnchorSideLeft.Side asrBottomAnchorSideTop.ControlTransferPasswordEntryLefteHeightHintShow/hide passwordTopWidth8BorderSpacing.LeftCaptionShowParentShowHintShowHint TabOrderOnClickTransferPasswordShowHideClick TRadioGroupTransferFrequencyRadioGroupAnchorSideLeft.ControlTransferAddressEntryAnchorSideTop.ControlTransferSettingsGroupBoxLeftHeightVTopWidthAutoFill Caption FrequencyChildSizing.LeftRightSpacingChildSizing.EnlargeHorizontalcrsHomogenousChildResizeChildSizing.EnlargeVerticalcrsHomogenousChildResizeChildSizing.ShrinkHorizontalcrsScaleChildsChildSizing.ShrinkVerticalcrsScaleChildsChildSizing.LayoutcclLeftToRightThenTopToBottomChildSizing.ControlsPerLine ClientHeightB ClientWidth Items.StringsNeverAfter every record At end of dayOnClick TransferFrequencyRadioGroupClickTabOrderTShapeTransferRemoteDirectorySuccessAnchorSideLeft.ControlTransferRemMoteDirectoryEntryAnchorSideLeft.Side asrBottomAnchorSideTop.ControlTransferRemoteDirectoryEntryAnchorSideTop.Side asrCenterLeftHeightHintRemote directory statusTopWidthBorderSpacing.LeftParentShowHintShapestCircleShowHint TComboBoxTransferProtocolSelectorAnchorSideLeft.ControlTransferProtocolLabelAnchorSideTop.ControlTransferProtocolLabelAnchorSideTop.Side asrBottomLeftHeight$TopWidthR ItemHeightTabOrderOnChangeTransferProtocolSelectorChangeTLabelTransferProtocolLabelAnchorSideLeft.ControlTransferSettingsGroupBoxAnchorSideTop.ControlTransferSettingsGroupBoxLeftHeightTopWidth7BorderSpacing.AroundCaption Protocol: ParentColor TLabeledEditTransferTimeoutAnchorSideTop.ControlTransferProtocolSelectorAnchorSideRight.ControlTransferSettingsGroupBoxAnchorSideRight.Side asrBottomAnchorSideBottom.ControlTransferFrequencyRadioGroupAnchorSideBottom.Side asrBottomLeftHeightTopWidth`Anchors akTopakRightAutoSizeEditLabel.HeightEditLabel.Width`EditLabel.Caption Timeout (ms):EditLabel.ParentColorTabOrderOnChangeTransferTimeoutChange TCheckBoxTransferCSVCheckAnchorSideLeft.ControlTransferDATCheckAnchorSideTop.ControlTransferDATCheckAnchorSideTop.Side asrBottomLeft>HeightHint#Send .csv file instead of .dat fileTopWidth1Caption.csvParentShowHintShowHint TabOrder OnClickTransferCSVCheckClick TCheckBoxTransferDATCheckAnchorSideLeft.ControlTransferFrequencyRadioGroupAnchorSideLeft.Side asrBottomAnchorSideTop.ControlTransferFrequencyRadioGroupLeft>HeightTopWidth2BorderSpacing.LeftCaption.datTabOrder OnClickTransferDATCheckClick TCheckBoxTransferPLOTCheckAnchorSideLeft.ControlTransferCSVCheckAnchorSideTop.ControlTransferCSVCheckAnchorSideTop.Side asrBottomLeft>HeightTop.Width2CaptionPlotTabOrder OnClickTransferPLOTCheckClick TCheckBoxTransferPWenableAnchorSideLeft.ControlTransferSettingsGroupBoxAnchorSideTop.ControlTransferAddressEntryAnchorSideTop.Side asrCenterAnchorSideRight.Side asrBottomLeftHeightHintEnable optional passwordTopWWidth.CaptionPWParentShowHintShowHint TabOrder OnChangeTransferPWenableChange TGroupBoxFTPResultsGroupBoxAnchorSideLeft.ControlTransferSettingsGroupBoxAnchorSideLeft.Side asrBottomAnchorSideTop.ControlTransferSettingsGroupBoxAnchorSideRight.ControlTransferFileTabSheetAnchorSideRight.Side asrBottomAnchorSideBottom.ControlTransferSettingsGroupBoxAnchorSideBottom.Side asrBottomLeftHeightTopWidthAnchors akTopakLeftakRightakBottomCaptionResults ClientHeight ClientWidthTabOrder TLabeledEditTransferLocalFilenameDisplayAnchorSideTop.ControlFTPResultsGroupBoxAnchorSideRight.ControlFTPResultsGroupBoxAnchorSideRight.Side asrBottomLeftHeightTopWidthhAnchors akTopakLeftakRightAutoSizeEditLabel.HeightEditLabel.Width\EditLabel.CaptionLocal filename:EditLabel.ParentColor LabelPositionlpLeftReadOnly TabOrder TLabeledEditTransferRemoteFilenameAnchorSideLeft.ControlTransferLocalFilenameDisplayAnchorSideTop.ControlTransferLocalFilenameDisplayAnchorSideTop.Side asrBottomAnchorSideRight.ControlFTPResultsGroupBoxAnchorSideRight.Side asrBottomLeftHeightTopWidthhAnchors akTopakLeftakRightAutoSizeEditLabel.HeightEditLabel.WidthnEditLabel.CaptionRemote filename:EditLabel.ParentColor LabelPositionlpLeftReadOnly TabOrderTMemoTransferFullResultAnchorSideLeft.ControlFTPResultsGroupBoxAnchorSideT op.ControlTransferSendResultAnchorSideTop.Side asrBottomAnchorSideRight.ControlFTPResultsGroupBoxAnchorSideRight.Side asrBottomAnchorSideBottom.ControlFTPResultsGroupBoxAnchorSideBottom.Side asrBottomLeftHeightlToptWidthAnchors akTopakLeftakRightakBottomReadOnly ScrollBarsssAutoVerticalTabOrderTMemoTransferSendResultAnchorSideLeft.ControlTransferLocalFilenameDisplayAnchorSideTop.ControlTransferRemoteFilenameAnchorSideTop.Side asrBottomAnchorSideRight.ControlFTPResultsGroupBoxAnchorSideRight.Side asrBottomLeftHeight8Top<WidthhAnchors akTopakLeftakRight ScrollBars ssAutoBothTabOrderTLabelTransferSendResultLabelAnchorSideLeft.Side asrBottomAnchorSideTop.ControlTransferSendResultAnchorSideRight.ControlTransferSendResultLeft<HeightTop<WidthIAnchors akTopakRightBorderSpacing.RightCaption Send result: ParentColorTButton TestTransferAnchorSideTop.ControlTransferSendResultLabelAnchorSideTop.Side asrBottomAnchorSideRight.ControlTransferSendResultLabelAnchorSideRight.Side asrBottomLeft:HeightHintTest transfer timeTopOWidthKAnchors akTopakRightCaptionTestParentShowHintShowHint TabOrderOnClickTestTransferClick TTabSheet RotStageSheetCaptionRotStage ClientHeight ClientWidth TabVisible TGroupBox RSGroupBoxLeftHeightTopWidthCaptionRotational stage ClientHeight ClientWidthTabOrderVisible TComboBox RSComboBoxAnchorSideLeft.Control RSGroupBoxAnchorSideTop.Control RSGroupBoxAnchorSideRight.Side asrBottomLeftHeight$TopWidthBorderSpacing.LeftBorderSpacing.TopBorderSpacing.Right ItemHeight ItemIndex Items.Strings /dev/ttyUSB2TabOrderText /dev/ttyUSB2 TSpinEditRSPositionStepSpinEditAnchorSideTop.Control RSComboBoxAnchorSideTop.Side asrBottomAnchorSideRight.Control RSComboBoxAnchorSideRight.Side asrBottomLeftHeight$Top*WidthOAnchors akTopakRightBorderSpacing.TopMaxValue MinValueTabOrderValueTLabelLabel49AnchorSideTop.ControlRSPositionStepSpinEditAnchorSideTop.Side asrCenterAnchorSideRight.ControlRSPositionStepSpinEditLeft\HeightTop3Width"Anchors akTopakRightBorderSpacing.RightCaptionSteps ParentColorTEditRSCurrentPositionAngleDisplayAnchorSideLeft.ControlRSCurrentPositionStepDisplayAnchorSideLeft.Side asrBottomAnchorSideTop.ControlRSCurrentPositionStepDisplayLeftHeight$TopQWidthOBorderSpacing.LeftBorderSpacing.RightTabOrder TLabeledEdit RSMaxStepsAnchorSideTop.ControlRSCurrentPositionStepDisplayAnchorSideTop.Side asrBottomAnchorSideRight.ControlRSCurrentPositionStepDisplayAnchorSideRight.Side asrBottomLeftHeight$TopxWidthPAnchors akTopakRightBorderSpacing.TopEditLabel.HeightEditLabel.WidthEditLabel.CaptionMaxEditLabel.ParentColor LabelPositionlpLeftTabOrderText60TEditRSCurrentPositionStepDisplayAnchorSideTop.ControlRSPositionStepSpinEditAnchorSideTop.Side asrBottomAnchorSideRight.ControlRSPositionStepSpinEditAnchorSideRight.Side asrBottomLeftHeight$TopQWidthPAnchors akTopakRightBorderSpacing.TopTabOrder TStatusBar RSStatusBarLeftHeightTopWidthPanelsWidth2 SimplePanel TStaticText RSRlimIndLeftHeightTopWidth9 AlignmenttaCenterAnchors CaptionRightColor clDefault ParentColorTabOrder TStaticText RSLLimIndLeft/HeightTopWidtht 9 AlignmenttaCenterCaptionLeftTabOrder TStaticText RSSafteyIndLeftvHeightTopWidth9 AlignmenttaCenterCaptionSafetyTabOrder TStaticTextRSDirIndLeftHeightTopWidthACaptionDir=LeftTabOrder TTabSheetGDMSheetCaptionGDM ClientHeight ClientWidth TabVisible TGroupBox GDMGroupBoxLeftHeight7TopWidthxCaptionGDM ClientHeight# ClientWidthvTabOrderTButton GDMF0ButtonLeftHeightTopWidth0CaptionFB OFFTabOrderOnClickGDMF0ButtonClickTButton GDMF1ButtonLeft>HeightTopWidth0CaptionFB ONTabOrderOnClickGDMF1ButtonClick TTabSheetGPSCaptionGPS ClientHeight ClientWidth TComboBox GPSPortSelectAnchorSideLeft.ControlLabel14AnchorSideLeft.Side asrBottomAnchorSideTop.ControlGPSLeftNHeightTopWidthAnchors AutoSize Font.Height Font.NameCourier 10 Pitch Font.PitchfpFixed ItemHeight ParentFontSorted TabOrderOnChangeGPSPortSelectChange OnDropDownGPSPortSelectDropDownTLabelLabel14AnchorSideLeft.Control GPSPortSelectAnchorSideTop.Side asrCenterAnchorSideBottom.Control GPSPortSelectLeftNHeightTopWidthAnchors akLeftakBottomCaptionPort: ParentColor TLabeledEditGPSValidityLabelAnchorSideRight.ControlGPSQualityLabelAnchorSideRight.Side asrBottomAnchorSideBottom.ControlGPSQualityLabelLeft#HeightTop3WidthP AlignmenttaCenterAutoSizeBorderSpacing.BottomEditLabel.HeightEditLabel.Width0EditLabel.Caption Validity:EditLabel.ParentColor LabelPositionlpLeftTabOrder TLabeledEditGPSLatitudeLabelLeft-HeightTopWidthP AlignmenttaCenterAutoSizeEditLabel.HeightEditLabel.WidthPEditLabel.CaptionLatitude (°):EditLabel.ParentColorTabOrder TLabeledEditGPSLongitudeLabelAnchorSideLeft.ControlGPSLatitudeLabelAnchorSideLeft.Side asrBottomLeftHeightTopWidthP AlignmenttaCenterAutoSizeBorderSpacing.LeftEditLabel.HeightEditLabel.WidthPEditLabel.CaptionLongitude (°):EditLabel.ParentColorTabOrder TLabeledEdit GPSSpeedLabelAnchorSideLeft.ControlGPSElevationlabelAnchorSideLeft.Side asrBottomAnchorSideBottom.ControlGPSElevationlabelAnchorSideBottom.Side asrBottomLeftHeightTopQWidthP AlignmenttaCenterAnchors akLeftakBottomAutoSizeBorderSpacing.LeftEditLabel.HeightEditLabel.WidthPEditLabel.Caption Speed (m/s):EditLabel.ParentColorTabOrder TLabeledEditGPSDateStampLabelLeft-HeightTopWidth AlignmenttaCenterAutoSizeEditLabel.HeightEditLabel.WidthEditLabel.Caption GPS DateTime:EditLabel.ParentColorTabOrder TLabeledEditGPSElevationlabelAnchorSideLeft.ControlGPSLatitudeLabelLeft-HeightHintVery approximate altitudeTopQWidthP AlignmenttaCenterAnchors akLeftAutoSizeEditLabel.HeightEditLabel.WidthPEditLabel.CaptionElevation (m):EditLabel.ParentColorParentShowHintShowHint TabOrder TLabeledEditGPSQualityLabelAnchorSideRight.Control GPSSatellitesAnchorSideRight.Side asrBottomAnchorSideBottom.Control GPSSatellitesLeftHeightTop3WidthP AlignmenttaCenterAutoSizeBorderSpacing.BottomEditLabel.HeightEditLabel.Width/EditLabel.CaptionQuality:EditLabel.ParentColor LabelPositionlpLeftTabOrder TCheckBox GPSEnableAnchorSideLeft.ControlGPSLeftHeightTopWidthCAnchors BorderSpacing.Left CaptionEnableTabOrderOnClickGPSEnableClick TLabeledEdit GPSSatellitesAnchorSideTop.ControlGPSSignalGroupAnchorSideTop.Side asrBottomAnchorSideRight.Side asrBottomAnchorSideBottom.Side asrBottomLeftHeightTopWidth' AlignmenttaCenterAnchors akTopAutoSizeBorderSpacing.TopEditLabel.HeightEditLabel.Width;EditLabel.Caption Satellites:EditLabel.ParentColor LabelPositionlpLeftTabOrder TGroupBoxGPSSignalGroupAnchorSideLeft.Side asrBottomAnchorSideTop.Control GPSPortSelectAnchorSideTop.Side asrBottomAnchorSideBottom.ControlGPSAnchorSideBottom.Side asrBottomLeftHeightTopWidthAnchors akLeftBorderSpacing.LeftCaptionSignal strength ClientHeight ClientWidthTabOrder TProgressBarGPSSNR1AnchorSideLeft.ControlGPSSignalGroupAnchorSideTop.ControlGPSSignalGroupAnchorSideBottom.ControlGPSSAT1LeftHeightHint Signal to noise ratio (strength)TopWidthAnchors akTopakLeftakBottomBorderSpacing.Left Orientation pbVerticalParentShowHintShowHint Smooth TabOrder TProgressBarGPSSNR2AnchorSideLeft.ControlGPSSNR1AnchorSideLeft.Side asrBottomAnchorSideTop.ControlGPSSignalGroupAnchorSideBottom.ControlGPSSAT1LeftHeightHint Signal to noise ratio (strength)TopWidthAnchors akTopakLeftakBottomBorderSpacing.Left Orientation pbVerticalParentShowHintShowHint Smooth TabOrder TProgressBarGPSSNR4AnchorSideLeft.ControlGPSSNR3AnchorSideLeft.Side asrBottomAnchorSideTop.ControlGPSSignalGroupAnchorSideBottom.ControlGPSSAT1LeftDHeightHint Signal to noise ratio (strength)TopWidthAnchors akTopakLeftakBottomBorderSpacing.Left Orientation pbVerticalParentShowHintShowHint Smooth TabOrder TProgressBarGPSSNR12AnchorSideLeft.ControlGPSSNR11AnchorSideLeft.Side asrBottomAnchorSideTop.ControlGPSSignalGroupAnchorSideBottom.ControlGPSSAT1LeftHeightHint Signal to noise ratio (strength)TopWidthAnchors akTopakLeftakBottomBorderSpacing.Left Orientation pbVerticalParentShowHintShowHint Smooth TabOrder TProgressBarGPSSNR3AnchorSideLeft.ControlGPSSNR2AnchorSideLeft.Side asrBottomAnchorSideTop.ControlGPSSignalGroupAnchorSideBottom.ControlGPSSAT1Left/HeightHint Signal to noise ratio (strength)TopWidthAnchors akTopakLeftakBottomBorderSpacing.Left Orientation pbVerticalParentShowHintShowHint Smooth TabOrder TProgressBarGPSSNR5AnchorSideLeft.ControlGPSSNR4AnchorSideLeft.Side asrBottomAnchorSideTop.ControlGPSSignalGroupAnchorSideBottom.ControlGPSSAT1LeftYHeightHint Signal to noise ratio (strength)TopWidthAnchors akTopakLeftakBottomBorderSpacing.Left Orientation pbVerticalParentShowHintShowHint Smooth TabOrder TProgressBarGPSSNR6AnchorSideLeft.ControlGPSSNR5AnchorSideLeft.Side asrBottomAnchorSideTop.ControlGPSSignalGroupAnchorSideBottom.ControlGPSSAT1LeftnHeightHint Signal to noise ratio (strength)TopWidthAnchors akTopakLeftakBottomBorderSpacing.Left Orientation pbVerticalParentShowHintShowHint Smooth TabOrder TProgressBarGPSSNR7AnchorSideLeft.ControlGPSSNR6AnchorSideLeft.Side asrBottomAnchorSideTop.ControlGPSSignalGroupAnchorSideBottom.ControlGPSSAT1LeftHeightHint Signal to noise ratio (strength)TopWidthAnchors akTopakLeftakBottomBorderSpacing.Left Orientation pbVerticalParentShowHintShowHint Smooth TabOrder TProgressBarGPSSNR8AnchorSideLeft.Cont rolGPSSNR7AnchorSideLeft.Side asrBottomAnchorSideTop.ControlGPSSignalGroupAnchorSideBottom.ControlGPSSAT1LeftHeightHint Signal to noise ratio (strength)TopWidthAnchors akTopakLeftakBottomBorderSpacing.Left Orientation pbVerticalParentShowHintShowHint Smooth TabOrder TProgressBarGPSSNR9AnchorSideLeft.ControlGPSSNR8AnchorSideLeft.Side asrBottomAnchorSideTop.ControlGPSSignalGroupAnchorSideBottom.ControlGPSSAT1LeftHeightHint Signal to noise ratio (strength)TopWidthAnchors akTopakLeftakBottomBorderSpacing.Left Orientation pbVerticalParentShowHintShowHint Smooth TabOrder TProgressBarGPSSNR10AnchorSideLeft.ControlGPSSNR9AnchorSideLeft.Side asrBottomAnchorSideTop.ControlGPSSignalGroupAnchorSideBottom.ControlGPSSAT1LeftHeightHint Signal to noise ratio (strength)TopWidthAnchors akTopakLeftakBottomBorderSpacing.Left Orientation pbVerticalParentShowHintShowHint Smooth TabOrder TProgressBarGPSSNR11AnchorSideLeft.ControlGPSSNR10AnchorSideLeft.Side asrBottomAnchorSideTop.ControlGPSSignalGroupAnchorSideBottom.ControlGPSSAT1LeftHeightHint Signal to noise ratio (strength)TopWidthAnchors akTopakLeftakBottomBorderSpacing.Left Orientation pbVerticalParentShowHintShowHint Smooth TabOrder TLabelGPSSAT1AnchorSideLeft.ControlGPSSNR1AnchorSideLeft.Side asrCenterAnchorSideTop.Side asrBottomAnchorSideBottom.ControlGPSSignalGroupAnchorSideBottom.Side asrBottomLeftHeightHintSatellite numberTopWidthAnchors akLeftakBottomCaption00 ParentColorParentShowHintShowHint TLabelGPSSAT2AnchorSideLeft.ControlGPSSNR2AnchorSideLeft.Side asrCenterAnchorSideTop.Side asrBottomAnchorSideBottom.ControlGPSSignalGroupAnchorSideBottom.Side asrBottomLeftHeightHintSatellite numberTopWidthAnchors akLeftakBottomCaption00 ParentColorParentShowHintShowHint TLabelGPSSAT3AnchorSideLeft.ControlGPSSNR3AnchorSideLeft.Side asrCenterAnchorSideTop.Side asrBottomAnchorSideBottom.ControlGPSSignalGroupAnchorSideBottom.Side asrBottomLeft/HeightHintSatellite numberTopWidthAnchors akLeftakBottomCaption00 ParentColorParentShowHintShowHint TLabelGPSSAT4AnchorSideLeft.ControlGPSSNR4AnchorSideLeft.Side asrCenterAnchorSideTop.Side asrBottomAnchorSideBottom.ControlGPSSignalGroupAnchorSideBottom.Side asrBottomLeftDHeightHintSatellite numberTopWidthAnchors akLeftakBottomCaption00 ParentColorParentShowHintShowHint TLabelGPSSAT5AnchorSideLeft.ControlGPSSNR5AnchorSideLeft.Side asrCenterAnchorSideTop.Side asrBottomAnchorSideBottom.ControlGPSSignalGroupAnchorSideBottom.Side asrBottomLeftYHeightHintSatellite numberTopWidthAnchors akLeftakBottomCaption00 ParentColorParentShowHintShowHint TLabelGPSSAT6AnchorSideLeft.ControlGPSSNR6AnchorSideLeft.Side asrCenterAnchorSideTop.Side asrBottomAnchorSideBottom.ControlGPSSignalGroupAnchorSideBottom.Side asrBottomLeftnHeightHintSatellite numberTopWidthAnchors akLeftakBottomCaption00 ParentColorParentShowHintShowHint TLabelGPSSAT7AnchorSideLeft.ControlGPSSNR7AnchorSideLeft.Side asrCenterAnchorSideTop.Side asrBottomAnchorSideBottom.ControlGPSSignalGroupAnchorSideBottom.Side asrBottomLeftHeightHintSatellite numberTopWidthAnchors akLeftakBottomCaption00 ParentColorPa rentShowHintShowHint TLabelGPSSAT8AnchorSideLeft.ControlGPSSNR8AnchorSideLeft.Side asrCenterAnchorSideTop.Side asrBottomAnchorSideBottom.ControlGPSSignalGroupAnchorSideBottom.Side asrBottomLeftHeightHintSatellite numberTopWidthAnchors akLeftakBottomCaption00 ParentColorParentShowHintShowHint TLabelGPSSAT9AnchorSideLeft.ControlGPSSNR9AnchorSideLeft.Side asrCenterAnchorSideTop.Side asrBottomAnchorSideBottom.ControlGPSSignalGroupAnchorSideBottom.Side asrBottomLeftHeightHintSatellite numberTopWidthAnchors akLeftakBottomCaption00 ParentColorParentShowHintShowHint TLabelGPSSAT10AnchorSideLeft.ControlGPSSNR10AnchorSideLeft.Side asrCenterAnchorSideTop.Side asrBottomAnchorSideBottom.ControlGPSSignalGroupAnchorSideBottom.Side asrBottomLeftHeightHintSatellite numberTopWidthAnchors akLeftakBottomCaption00 ParentColorParentShowHintShowHint TLabelGPSSAT11AnchorSideLeft.ControlGPSSNR11AnchorSideLeft.Side asrCenterAnchorSideTop.Side asrBottomAnchorSideBottom.ControlGPSSignalGroupAnchorSideBottom.Side asrBottomLeftHeightHintSatellite numberTopWidthAnchors akLeftakBottomCaption00 ParentColorParentShowHintShowHint TLabelGPSSAT12AnchorSideLeft.ControlGPSSNR12AnchorSideLeft.Side asrCenterAnchorSideTop.Side asrBottomAnchorSideBottom.ControlGPSSignalGroupAnchorSideBottom.Side asrBottomLeftHeightHintSatellite numberTopWidthAnchors akLeftakBottomCaption00 ParentColorParentShowHintShowHint TShape GPSRMCStatusXAnchorSideLeft.ControlGPSRMCIncomingAnchorSideLeft.Side asrBottomAnchorSideTop.ControlGPSRMCIncomingAnchorSideTop.Side asrCenterAnchorSideRight.Side asrBottomLeftHeightToppWidth Brush.ColorFFFShapestCircleTShape GPSGGAStatusXAnchorSideLeft.ControlGPSGGAIncomingAnchorSideLeft.Side asrBottomAnchorSideTop.ControlGPSGGAIncomingAnchorSideTop.Side asrCenterAnchorSideRight.Side asrBottomLeftHeightTopWidthBorderSpacing.Top Brush.ColorFFFShapestCircleTShape GPSGSVStatusXAnchorSideLeft.ControlGPSGSVIncomingAnchorSideLeft.Side asrBottomAnchorSideTop.ControlGPSGSVIncomingAnchorSideTop.Side asrCenterAnchorSideRight.Side asrBottomLeftHeightTopWidthBorderSpacing.Top Brush.ColorFFFShapestCircle TComboBox GPSBaudSelectLefthHeightTopWidthAnchors AutoSize ItemHeight Items.Strings4800115200TabOrder OnChangeGPSBaudSelectChangeTLabelLabel16AnchorSideLeft.Control GPSBaudSelectAnchorSideBottom.Control GPSBaudSelectLefthHeightTopWidth$Anchors akLeftakBottomCaptionBaud: ParentColor TLabeledEditGPSRMCIncomingLeftHeightToplWidthAutoSizeEditLabel.HeightEditLabel.WidthEditLabel.Caption7$GPRMC - Recommended minimum specific GPS/Transit data:EditLabel.ParentColorTabOrder TLabeledEditGPSGGAIncomingLeftHeightTopWidthAutoSizeEditLabel.HeightEditLabel.WidthEditLabel.Caption,$GPGGA - Global Positioning System Fix Data:EditLabel.ParentColorTabOrder TLabeledEditGPSGSVIncomingLeftHeightTopWidthAutoSizeEditLabel.HeightEditLabel.WidthEditLabel.Caption $GPGSV - GPS Satellites in view:EditLabel.ParentColorTabOrder TTabSheetAlertsTabSheetCaptionAlerts ClientHeight ClientWidth TGroupBoxPreReadingAlertGroupAnchorSideLeft.ControlAlertsTabSheetAnchorSideTop.ControlAlertsTabSheetLeftHeight8TopWidthBorderSpacing.LeftCaptionPre-reading alert: ClientHeight$ ClientWidthTabOrder TCheckBoxalert2sAnchorSideLeft.ControlPreReadingAlertGroupAnchorSideTop.Side asrCenterLeftHeightHintPre-reading alertTopWidthCCaptionEnableParentShowHintShowHint TabOrderOnChange alert2sChange TRadioGroupReadingAlertGroupAnchorSideLeft.ControlPreReadingAlertGroupAnchorSideLeft.Side asrBottomAnchorSideTop.ControlPreReadingAlertGroupLeftHeightpTopWidthAutoFill BorderSpacing.LeftCaptionReading alert:ChildSizing.LeftRightSpacingChildSizing.EnlargeHorizontalcrsHomogenousChildResizeChildSizing.EnlargeVerticalcrsHomogenousChildResizeChildSizing.ShrinkHorizontalcrsScaleChildsChildSizing.ShrinkVerticalcrsScaleChildsChildSizing.LayoutcclLeftToRightThenTopToBottomChildSizing.ControlsPerLine ClientHeight\ ClientWidth Items.StringsNone Fresh onlyAllOnClickReadingAlertGroupClickTabOrderTButtonFreshAlertTestAnchorSideLeft.ControlReadingAlertGroupAnchorSideTop.ControlReadingAlertGroupAnchorSideTop.Side asrBottomAnchorSideRight.ControlReadingAlertGroupAnchorSideRight.Side asrBottomLeftHeightHintReading alert sound testToptWidthAnchors akTopakLeftakRightBorderSpacing.TopCaptionTestParentShowHintShowHint TabOrderOnClickFreshAlertTestClickTButtonPreAlertTestButtonAnchorSideLeft.ControlPreReadingAlertGroupAnchorSideTop.ControlPreReadingAlertGroupAnchorSideTop.Side asrBottomAnchorSideRight.ControlPreReadingAlertGroupAnchorSideRight.Side asrBottomLeftHeightHintPre-alert sound testTop:WidthAnchors akTopakLeftakRightBorderSpacing.TopCaptionTestParentShowHintShowHint TabOrderOnClickPreAlertTestButtonClick TTabSheet SynScanSheetCaptionGoTo ClientHeight ClientWidthOnShowSynScanSheetShow TComboBoxGoToPortSelectAnchorSideLeft.ControlGoToMachineSelectAnchorSideTop.ControlGoToMachineSelectAnchorSideTop.Side asrBottomAnchorSideRight.ControlGoToMachineSelectAnchorSideRight.Side asrBottomLeftOHeight$Top.WidthAnchors akTopakLeftakRightBorderSpacing.Top ItemHeightTabOrderOnChangeGoToPortSelectChangeTLabel GoToPortLabelAnchorSideTop.ControlGoToPortSelectAnchorSideTop.Side asrCenterAnchorSideRight.ControlGoToPortSelectLeft-HeightTop7WidthAnchors akTopakRightBorderSpacing.RightCaptionPort: ParentColor TComboBoxGoToBaudSelectAnchorSideLeft.ControlGoToPortSelectAnchorSideTop.ControlGoToPortSelectAnchorSideTop.Side asrBottomLeftOHeight$TopVWidth|BorderSpacing.Top ItemHeight Items.Strings9600115200TabOrderOnChangeGoToBaudSelectChangeTLabel GoToBaudLabelAnchorSideTop.ControlGoToBaudSelectAnchorSideTop.Side asrCenterAnchorSideRight.ControlGoToPortSelectLeft(HeightTop_Width$Anchors akTopakRightBorderSpacing.RightCaptionBaud: ParentColor TPageControl PageControl2AnchorSideLeft.ControlGoToMachineSelectAnchorSideLeft.Side asrBottomAnchorSideTop.Control SynScanSheetAnchorSideRight.Control SynScanSheetAnchorSideRight.Side asrBottomAnchorSideBottom.Control SynScanSheetAnchorSideBottom.Side asrBottomLeft2HeightTopWidth ActivePage TabSheet2Anchors akTopakLeftakRightakBottomBorderSpacing.AroundTabIndexTabOrder TTabSheet TabSheet1CaptionFile ClientHeight ClientWidth TStringGridGoToCommandStringGridLeft HeightTopWidthAnchors ColCountMouseWheelOptionmwGridOptions goFixedVertLinegoFixedHorzLine goVertLine goHorzLine goRangeSelectgoThumbTrackinggoSmoothScrollRowCount ScrollBars ssVerticalTabOrder TTabSheet TabSheet2CaptionTest ClientHeight ClientWidthTButtonGetZenAziButtonAnchorSideLeft.Control TabSheet2AnchorSideTop.Control TabSheet2LeftHeightTopWidthNBorderSpacing.AroundCaptionGetTabOrderOnClickGetZenAziButtonClickTLabelLabelStatusAndCommandsAnchorSideLeft.ControlGoToResultMemoAnchorSideTop.Control TabSheet2LeftHeightTopWidthCaption Status, commands, and responses: ParentColorTMemoGoToResultMemoAnchorSideLeft.ControlAziFloatSpinEditAnchorSideLeft.Side asrBottomAnchorSideTop.ControlLabelStatusAndCommandsAnchorSideTop.Side asrBottomAnchorSideRight.Control TabSheet2AnchorSideRight.Side asrBottomAnchorSideBottom.Control TabSheet2AnchorSideBottom.Side asrBottomLeftHeightTopWidthAnchors akTopakLeftakRightakBottomBorderSpacing.Around ScrollBars ssAutoBothTabOrderTFloatSpinEditZenFloatSpinEditLeftHeight$Top4WidthX AlignmenttaRightJustify DecimalPlacesMaxValue@TabOrderTFloatSpinEditAziFloatSpinEditAnchorSideLeft.ControlZenFloatSpinEditAnchorSideLeft.Side asrBottomAnchorSideBottom.ControlZenFloatSpinEditAnchorSideBottom.Side asrBottomLeftbHeight$Top4WidthX AlignmenttaRightJustifyAnchors akLeftakBottomBorderSpacing.Left DecimalPlacesMaxValue@TabOrderTLabelZenithEditLabelAnchorSideLeft.ControlZenFloatSpinEditAnchorSideTop.Side asrBottomAnchorSideBottom.ControlZenFloatSpinEditLeftHeightTop!Width,Anchors akLeftakBottomCaptionZenith: ParentColorTLabelAzimuthEditLabelAnchorSideLeft.ControlAziFloatSpinEditAnchorSideBottom.ControlAziFloatSpinEditLeftbHeightTop Width3Anchors akLeftCaptionAzimuth ParentColorTButtonGoToZenAziButtonAnchorSideLeft.ControlGetZenAziButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlGetZenAziButtonLeftVHeightTopWidthKCaptionSetTabOrderOnClickGoToZenAziButtonClickTLabelGoToMachinelabelAnchorSideTop.ControlGoToMachineSelectAnchorSideTop.Side asrCenterAnchorSideRight.Control GoToPortLabelAnchorSideRight.Side asrBottomLeftHeightTopWidth8Anchors akTopakRightCaptionMachine: ParentColor TComboBoxGoToMachineSelectAnchorSideTop.Control SynScanSheetLeftOHeight$TopWidthAnchors akTopBorderSpacing.Top ItemHeight Items.Strings SynscanV4 iOptron8408TabOrderOnChangeGoToMachineSelectChangeTLabel ScriptLabelAnchorSideTop.ControlGoToCommandFileComboBoxAnchorSideTop.Side asrCenterAnchorSideRight.ControlGoToCommandFileComboBoxLeft%HeightTopWidth'Anchors akTopakRightBorderSpacing.RightCaptionScript: ParentColor TComboBoxGoToCommandFileComboBoxAnchorSideLeft.ControlGoToBaudSelectAnchorSideTop.ControlGoToBaudSelectAnchorSideTop.Side asrBottomAnchorSideRight.Side asrBottomLeftOHeight$Top~WidthBorderSpacing.Top ItemHeightTabOrderOnChangeGoToCommandFileComboBoxChangeTButtonGoToButtonScriptHelpLeftHeight"HintScript file locationTopxWidthCaption?ParentShowHintShowHint TabOrderOnClickGoToButtonScriptHelpClickTPairSplitterSidePairSplitterBottomCursorcrArrowLeftHeightoTopWidth~ ClientWidth ClientHeightoTPanel BottomPanelAnchorSideLeft.ControlPairSplitterBottomAnchorSideTop.ControlPairSplitterBottomAnchorSideRight.ControlPairSplitterBottomAnchorSideRight.Side asrBottomAnchorSideBottom.ControlPairSplitterBottomAnchorSideBottom.Side asrBottomLeftHeightoTopWidthAnchors akTopakLeftakRightakBottom ClientHeighto ClientWidthTabOrderTBitBtn StartButtonAnchorSideTop.Side asrBottomAnchorSideBottom.Control BottomPanelAnchorSideBottom.Side asrBottomLeftwHeightHintStart recordingTopNWidthZAnchors akBottomBorderSpacing.BottomCaptionRecord Glyph.Data : 6 BM6 6( dd  088`ёѼӐ88_. ъ++DDVVDD++ц 1%%ppffSSGGTTggqq%%Ջ. ͽ==rr::""%%&&&&$$;;rr== ͹&&jtt))!!##%%''''%%##++uu''iddAA ""$$&&&&$$"" CCbb᭭qq+{{!!##$$$$##!!!!yyvv)**Ukk !!""!!!! kk++T b))pp33??FFDD>>66$$ee%%b ::9VVVVXXYYYYXXWWGG00ww ==6XXX mm__``aa````__\\ZZUUQQuuXXX JJJoLLiihhiihhggffcc``^^FF@@@333))W,邂uuqqppoommjjkk**S+333  Wtt{{|| S"""  zE44<< xD  &{y$ ! (!OnClickStartButtonClickParentShowHintShowHint TabOrderTBitBtn PauseButtonAnchorSideLeft.Control StartButtonAnchorSideLeft.Side asrBottomAnchorSideTop.Control StartButtonAnchorSideBottom.Control StartButtonAnchorSideBottom.Side asrBottomLeftHeightTopNWidthZAnchors akLeftakBottomBorderSpacing.LeftCaptionPause Glyph.Data : 6 BM6 6( dd   UYWTXVTXVTXVTXVY][TXVTXVTXVTXVTXVehfSWUkomVZXdgeSWUkomVZXdgeSWUkom}~~VZXcfeqqqSWUkomlllqqqVZXcfeqqq___SWUkom]^]___VZXcfe]]]MMMSWUkomNON NNNVZXcfeLLL>>>SWUkomABB!>>>VZXcfe<<<///RVTkom455#000VZXcfe..."""RVTkom)*)$"""!VZXcfe""" RVTkom %"VZXbfe "RVTkom& $VZXbfe #PTRSWUSWUSWUSWUVZX%%RVTSWUSWUSWUSWU\a^!&&&&&&&&&&&&OnClickPauseButtonClickTabOrderTBitBtn StopButtonAnchorSideLeft.Control PauseButtonAnchorSideLeft.Side asrBottomAnchorSideTop.Control StartButtonAnchorSideBottom.Control PauseButtonAnchorSideBottom.Side asrBottomLeftIHeightHintStop recordingTopNWidthZAnchors akLeftakBottomBorderSpacing.LeftCaptionStop Glyph.Data : 6 BM6 6( dd & UZWSWUSWUSWUSWUSWUSWUSWUSWUSWUSWUSWUUXWSWUSWUSWUSWUSWUSWUSWUSWUSWUSWUzzzSWUSWUlllSWUSWUooo^^^SWUSWUZZZIIISWUSWUHHH 333SWUSWU555"!!!SWUSWU# PUSSWUSWUSWUSWUSWUSWUSWUSWUSWUSWUSWURUT%&&&&&&&&&&&&& OnClickStopButtonClickParentShowHintShowHint TabOrderTabStopTBitBtn CloseButtonAnchorSideTop.Control StartButtonAnchorSideRight.Side asrBottomAnchorSideBottom.Control StopButtonAnchorSideBottom.Side asrBottomLeft}HeightTopNWidthZAnchors akRightakBottomBorderSpacing.RightCaption&Close Glyph.Data zvBMv6( @ddDDD1EEEMMM MMM EEEDDD1EEEDDDDDDMMM MMM DDDDDDEEEMMM CCCDDDEEEDDDDDDDDD@@@ MMM DDDDDDDDDEEE@@@ MMM DDDDDDDDDEEE@@@ MMM DDDDDDEEEDDDDDDDDD@@@ EEEDDDDDDMMM MMM DDDDDDEEEBBB2EEEMMM MMM EEEDDD1 ModalResult OnClickCloseButtonClickTabOrderTabStop TPageControl PageControl3AnchorSideLeft.Control BottomPanelAnchorSideTop.Control BottomPanelAnchorSideRight.Control BottomPanelAnchorSideRight.Side asrBottomAnchorSideBottom.Control StartButtonLeftHeightMTopWidth ActivePage LookSheetAnchors akTopakLeftakRightakBottomTabIndexTabOrder TabPositiontpLeft TTabSheet LookSheetCaptionLook ClientHeightI ClientWidth TCheckBox InvertScaleAnchorSideLeft.Side asrBottomLeftHeightHintInvert mpsas scaleTopWidthACaptionInvertParentShowHintTabOrderOnChangeInvertScaleChange TCheckBoxTemperatureCheckBoxAnchorSideLeft.Side asrBottomAnchorSideTop.Control InvertScaleAnchorSideTop.Side asrBottomLeftHeightHintShow temperature scale.Top'WidthjCaption TemperatureParentShowHintShowHint TabOrderOnChangeTemperatureCheckBoxChange TCheckBox NightCheckBoxAnchorSideLeft.ControlTemperatureCheckBoxAnchorSideTop.ControlTemperatureCheckBoxAnchorSideTop.Side asrBottomLeftHeightHintNight mode plotTop>WidthCaptionNight mode chartParentShowHintShowHint TabOrderOnChangeNightCheckBoxChange TGroupBoxFixedTimeGroupBoxAnchorSideLeft.ControlFixedReadingsGroupBoxAnchorSideLeft.Side asrBottomAnchorSideTop.Control LookSheetLeftHeightTopWidthBorderSpacing.LeftCaptionFixed time (x) axis ClientHeight ClientWidthTabOrder TRadioGroupFixedTimeRadiosAnchorSideLeft.ControlFixedTimeGroupBoxAnchorSideTop.ControlFixedTimeGroupBoxAnchorSideBottom.ControlFixedTimeGroupBoxAnchorSideBottom.Side asrBottomLeftHeightTopWidthAnchors akTopakLeftakBottomAutoFill ChildSizing.LeftRightSpacingChildSizing.EnlargeHorizontalcrsHomogenousChildResizeChildSizing.EnlargeVerticalcrsHomogenousChildResizeChildSizing.ShrinkHorizontalcrsScaleChildsChildSizing.ShrinkVerticalcrsScaleChildsChildSizing.LayoutcclLeftToRightThenTopToBottomChildSizing.ControlsPerLine ClientHeight ClientWidth Items.StringsAutoFixedSunset to Sunrise Civil eveningNautical eveningAstronomical eveningOnClickFixedTimeRadiosClick ParentColorTabOrder TPageControlFixedTimePageControlAnchorSideLeft.ControlFixedTimeRadiosAnchorSideLeft.Side asrBottomAnchorSideTop.ControlFixedTimeRadiosAnchorSideRight.ControlFixedTimeGroupBoxAnchorSideRight.Side asrBottomAnchorSideBottom.ControlFixedTimeRadiosAnchorSideBottom.Side asrBottomLeftHeightTopWidth ActivePageFixedFixedheetAnchors akTopakLeftakRightakBottomShowTabsTabIndexTabOrder TTabSheetFixedBlankSheetCaptionFixedBlankSheet TTabSheetFixedFixedheetCaptionFixedFixedheet ClientHeight ClientWidth TSpinEditFixedFromSpinEditLeft9Height$Top(Width9MaxValueOnChangeFixedFromSpinEditChangeTabOrder TSpinEditFixedToSpinEditLeft9Height$TopQWidth9MaxValueOnChangeFixedToSpinEditChangeTabOrderTLabelLabel17AnchorSideLeft.Side asrBottomAnchorSideTop.ControlFixedFromSpinEditAnchorSideTop.Side asrCenterAnchorSideRight.ControlFixedFromSpinEditLeftHeightTop1Width$Anchors akTopakRightCaptionFrom: ParentColorTLabelLabel18AnchorSideTop.ControlFixedToSpinEditAnchorSideTop.Side asrCenterAnchorSideRight.ControlFixedToSpinEditLeft'HeightTopZWidthAnchors akTopakRightCaptionTo: ParentColorTLabel From12hrLabelLeftHeightTop/Width$Captionxx xm ParentColorTLabel To12hrLabelLeftHeightTopXWidth$Captionxx xm ParentColor TTabSheetFixedTwilightSheetCaptionFixedTwilightSheet ClientHeight ClientWidthTMemo FixedTimeMemoAnchorSideLeft.ControlFixedTwilightSheetAnchorSideTop.ControlFixedTwilightSheetAnchorSideRight.ControlFixedTwilightSheetAnchorSideRight.Side asrBottomAnchorSideBottom.ControlFixedTwilightSheetAnchorSideBottom.Side asrBottomLeftHeightTopWidthAnchors akTopakLeftakRightakBottom Lines.Strings/Twilight evening time range will be shown here.TabOrder TGroupBoxFixedReadingsGroupBoxAnchorSideTop.Control LookSheetAnchorSideRight.Side asrBottomAnc horSideBottom.Side asrBottomLeftHeight<TopWidthAnchors akTopCaptionFixed readings range (y axis) ClientHeight( ClientWidthTabOrder TSpinEditFromReadingSpinEditAnchorSideTop.ControlToReadingSpinEditAnchorSideTop.Side asrCenterAnchorSideRight.ControlToReadingLabelLeftHeight$TopWidth2 AlignmenttaRightJustifyAnchors akTopakRightBorderSpacing.RightMaxValueOnChangeFromReadingSpinEditChangeTabOrder TSpinEditToReadingSpinEditAnchorSideRight.ControlFixedReadingsGroupBoxAnchorSideRight.Side asrBottomLeftHeight$TopWidth2 AlignmenttaRightJustifyAnchors akTopakRightMaxValueOnChangeToReadingSpinEditChangeTabOrderTLabelFromReadingLabelAnchorSideTop.ControlToReadingSpinEditAnchorSideTop.Side asrCenterAnchorSideRight.ControlFromReadingSpinEditLeftiHeightTop Width$Anchors akTopakRightCaptionFrom: ParentColorTLabelToReadingLabelAnchorSideTop.ControlToReadingSpinEditAnchorSideTop.Side asrCenterAnchorSideRight.ControlToReadingSpinEditLeftHeightTop WidthAnchors akTopakRightCaptionto: ParentColor TToggleBoxFixedAutoReadingsToggleAnchorSideLeft.ControlFixedReadingsGroupBoxAnchorSideTop.ControlToReadingSpinEditAnchorSideTop.Side asrCenterLeftHeightTopWidthKCaption FixedAutoTabOrderOnChangeFixedAutoReadingsToggleChange TTabSheet StatusSheetCaptionStatus ClientHeightI ClientWidthTLabelCurrentTimeLabelAnchorSideLeft.Control StatusSheetAnchorSideTop.Control CurrentTimeAnchorSideTop.Side asrCenterLeftHeightTopWidthSBorderSpacing.LeftBorderSpacing.RightCaption Current time: ParentColor TStaticText CurrentTimeAnchorSideLeft.ControlCurrentTimeLabelAnchorSideLeft.Side asrBottomAnchorSideTop.Control StatusSheetLefttHeightTopWidth AlignmenttaCenterTabOrderTLabelNextRecordAtLabelAnchorSideTop.Control NextRecordAtAnchorSideTop.Side asrCenterAnchorSideRight.Control NextRecordAtLeftHeightTopWidth[Anchors akTopakRightBorderSpacing.RightCaptionNext record at: ParentColor TStaticText NextRecordAtAnchorSideLeft.Control CurrentTimeAnchorSideTop.Control CurrentTimeAnchorSideTop.Side asrBottomLefttHeightTopWidth AlignmenttaCenterBorderSpacing.Top BorderStyle sbsSingleTabOrderTLabelLabelInAnchorSideLeft.Control NextRecordAtAnchorSideLeft.Side asrBottomAnchorSideTop.Control NextRecordAtAnchorSideTop.Side asrCenterLeft"HeightTopWidth BorderSpacing.LeftCaptionin ParentColor TStaticText NextRecordInAnchorSideLeft.ControlLabelInAnchorSideLeft.Side asrBottomAnchorSideTop.Control NextRecordAtAnchorSideTop.Side asrCenterLeft3HeightTopWidthl AlignmenttaCenterBorderSpacing.Left BorderStyle sbsSingleTabOrderTLabelRecordsloggedLabelAnchorSideTop.Control RecordsLoggedAnchorSideTop.Side asrCenterAnchorSideRight.Control RecordsLoggedLeftHeightTop,WidthcAnchors akTopakRightBorderSpacing.RightCaptionRecords logged: ParentColor TStaticText RecordsLoggedAnchorSideLeft.Control CurrentTimeAnchorSideTop.Control NextRecordAtAnchorSideTop.Side asrBottomLefttHeightTop+Widthd AlignmenttaCenterBorderSpacing.Top BorderStyle sbsSingleTabOrderTLabel LabelinfileAnchorSideLeft.Control RecordsLoggedAnchorSideLeft.Side asrBottomAnchorSideTop.Control RecordsLoggedAnchorSideTop.Side asrCenterLeftHeightTop,Width BorderSpacing.LeftCaptionin ParentColor TStaticText FilesLoggedAnchorSideLeft.Control LabelinfileAnchorSideLeft.Side asrBottomAnchorSideTop.Control RecordsLoggedAnchorSideTop.Side asrCenterLeftHeightHint,A new file is created each day of recording.Top+WidthP AlignmenttaCenterBorderSpacing.Left BorderStyle sbsSingleTabOrderTLabel FilesLabelAnchorSideLeft.Control FilesLoggedAnchorSideLeft.Side asrBottomAnchorSideTop.Control RecordsLoggedAnchorSideTop.Side asrCenterLeft<HeightHint,A new file is created each day of recording.Top,WidthBorderSpacing.LeftCaptionfiles ParentColorParentShowHintShowHint TBitBtnOpenFileButtonAnchorSideLeft.Control FilesLabelAnchorSideLeft.Side asrBottomAnchorSideTop.Control RecordsLoggedAnchorSideRight.Side asrBottomLeftUHeightHintOpen .dat fileTop+Width Glyph.Data :6BM66( dd@NNoBNN>JJ>JJ>JJ>JJ>JJ>JJ>JJ>JJ>JJ>JJ>JJ>JJBNN@MMpERRzCQQJXWJXWRcaRbaWif\ol\ol\ol`spZljM\[VggVggVggUZXi|yg{xg{xg{xfzwfzwfzwdxudxuatrPa_VggVggVggSWUSXVWggQb`TedYkjYkjYkjSWUSWUYkjUfdWigm}eyweywSWUSWUeywXjg[nlqqUYWUYWv[nk^rp||m|zUYWSWUSWUSWUSWUSWUSWUUYWv`socvs||||eyvcwtcwtcwtdwtcvtcxudxsscxug|ydxs3bxtueyvfzwfzwfzwfyweyvdtr\````UUUOnClickOpenFileButtonClickParentShowHintShowHint TabOrderTabStopTLabelRecordsMissedLabelAnchorSideTop.Control RecordsMissedAnchorSideTop.Side asrCenterAnchorSideRight.Control  RecordsMissedLeftHeightTopAWidthcAnchors akTopakRightBorderSpacing.RightCaptionRecords missed: ParentColor TStaticText RecordsMissedAnchorSideLeft.Control CurrentTimeAnchorSideTop.Control RecordsLoggedAnchorSideTop.Side asrBottomLefttHeightTop@Widthd AlignmenttaCenter BorderStyle sbsSingleTabOrderTLabelLogfileNameLabelAnchorSideLeft.ControlLogFileNameTextAnchorSideLeft.Side asrBottomAnchorSideTop.ControlLogFileNameTextAnchorSideTop.Side asrCenterAnchorSideRight.ControlLogFileNameTextLeftHeightTopoWidthTAnchors akTopakRightBorderSpacing.RightCaption Logfile name: ParentColorTEditLogFileNameTextAnchorSideLeft.Control CurrentTimeAnchorSideTop.Control LogFieldNamesAnchorSideTop.Side asrBottomAnchorSideRight.Control StatusSheetAnchorSideRight.Side asrBottomLefttHeightToplWidth2Anchors akTopakLeftakRightAutoSizeBorderSpacing.TopReadOnly TabStopTabOrderTLabelLogFieldNamesLabelAnchorSideTop.Control LogFieldNamesAnchorSideTop.Side asrCenterAnchorSideRight.Control LogFieldNamesLeft'HeightTopWWidthMAnchors akTopakRightCaption Field names: ParentColorTEdit LogFieldNamesAnchorSideLeft.Control CurrentTimeAnchorSideTop.Control RecordsMissedAnchorSideTop.Side asrBottomAnchorSideRight.Control StatusSheetAnchorSideRight.Side asrBottomLefttHeightTopVWidth2Anchors akTopakLeftakRightAutoSizeBorderSpacing.Top Font.Height Font.Name Courier New Font.PitchfpFixed ParentFontTabOrderTLabelLogFieldUnitsLabelAnchorSideTop.Control LogFieldUnitsAnchorSideTop.Side asrCenterAnchorSideRight.Control LogFieldUnitsLeft2HeightTopWidthBAnchors akTopakRightCaption Field units: ParentColorTEdit LogFieldUnitsAnchorSideLeft.Control CurrentTimeAnchorSideTop.Side asrBottomAnchorSideRight.Control StatusSheetAnchorSideRight.Side asrBottomLefttHeightTopWidth2Anchors akTopakLeftakRightAutoSizeBorderSpacing.Top Font.Height Font.Name Courier New Font.PitchfpFixed ParentFontTabOrder TSynEditRecordsViewSynEditAnchorSideLeft.Control CurrentTimeAnchorSideTop.Control LogFieldUnitsAnchorSideTop.Side asrBottomAnchorSideRight.Control StatusSheetAnchorSideRight.Side asrBottomAnchorSideBottom.Control StatusSheetAnchorSideBottom.Side asrBottomLefttHeightTopWidth2BorderSpacing.TopBorderSpacing.BottomAnchors akTopakLeftakRightakBottom Font.Height Font.Name Courier New Font.PitchfpFixed Font.QualityfqNonAntialiased ParentColor ParentFontTabOrder Gutter.Width9Gutter.MouseActionsRightGutter.WidthRightGutter.MouseActions KeystrokesCommandecUpShortCut&CommandecSelUpShortCut& Command ecScrollUpShortCut&@CommandecDownShortCut(Command ecSelDownShortCut( Command ecScrollDownShortCut(@CommandecLeftShortCut%Command ecSelLeftShortCut% Command ecWordLeftShortCut%@Command ecSelWordLeftShortCut%`CommandecRightShortCut'Command ecSelRightShortCut' Command ecWordRightShortCut'@CommandecSelWordRightShortCut'`Command ecPageDownShortCut"Command ecSelPageDownShortCut" Command ecPageBottomShortCut"@CommandecSelPageBottomShortCut"`CommandecPageUpShortCut!Command ecSelPageUpShortCut! Command ecPageTopShortCut!@Command ecSelPageTopShortCut!`Command  ecLineStartShortCut$CommandecSelLineStartShortCut$ Command ecEditorTopShortCut$@CommandecSelEditorTopShortCut$`Command ecLineEndShortCut#Command ecSelLineEndShortCut# CommandecEditorBottomShortCut#@CommandecSelEditorBottomShortCut#`Command ecToggleModeShortCut-CommandecCopyShortCut-@CommandecPasteShortCut- Command ecDeleteCharShortCut.CommandecCutShortCut. CommandecDeleteLastCharShortCutCommandecDeleteLastCharShortCut CommandecDeleteLastWordShortCut@CommandecUndoShortCutCommandecRedoShortCutCommand ecLineBreakShortCut Command ecSelectAllShortCutA@CommandecCopyShortCutC@Command ecBlockIndentShortCutI`Command ecLineBreakShortCutM@Command ecInsertLineShortCutN@Command ecDeleteWordShortCutT@CommandecBlockUnindentShortCutU`CommandecPasteShortCutV@CommandecCutShortCutX@Command ecDeleteLineShortCutY@Command ecDeleteEOLShortCutY`CommandecUndoShortCutZ@CommandecRedoShortCutZ`Command ecGotoMarker0ShortCut0@Command ecGotoMarker1ShortCut1@Command ecGotoMarker2ShortCut2@Command ecGotoMarker3ShortCut3@Command ecGotoMarker4ShortCut4@Command ecGotoMarker5ShortCut5@Command ecGotoMarker6ShortCut6@Command ecGotoMarker7ShortCut7@Command ecGotoMarker8ShortCut8@Command ecGotoMarker9ShortCut9@Command ecSetMarker0ShortCut0`Command ecSetMarker1ShortCut1`Command ecSetMarker2ShortCut2`Command ecSetMarker3ShortCut3`Command ecSetMarker4ShortCut4`Command ecSetMarker5ShortCut5`Command ecSetMarker6ShortCut6`Command ecSetMarker7ShortCut7`Command ecSetMarker8ShortCut8`Command ecSetMarker9ShortCut9`Command EcFoldLevel1ShortCut1Command EcFoldLevel2ShortCut2Command EcFoldLevel3ShortCut3Command EcFoldLevel4ShortCut4Command EcFoldLevel5ShortCut5Command EcFoldLevel6ShortCut6Command EcFoldLevel7ShortCut7Command EcFoldLevel8ShortCut8Command EcFoldLevel9ShortCut9Command EcFoldLevel0ShortCut0Command EcFoldCurrentShortCut-CommandEcUnFoldCurrentShortCut+CommandEcToggleMarkupWordShortCutMCommandecNormalSelectShortCutN`CommandecColumnSelectShortCutC`Command ecLineSelectShortCutL`CommandecTabShortCut Command ecShiftTabShortCut CommandecMatchBracketShortCutB`Command ecColSelUpShortCut&Command ecColSelDownShortCut(Command ecColSelLeftShortCut%Command ecColSelRightShortCut'CommandecColSelPageDownShortCut"CommandecColSelPageBottomShortCut"CommandecColSelPageUpShortCut!CommandecColSelPageTopShortCut!CommandecColSelLineStartShortCut$CommandecColSelLineEndShortCut#CommandecColSelEditorTopShortCut$CommandecColSelEditorBottomShortCut# MouseActionsMouseTextActionsMouseSelActionsVisibleSpecialChars vscSpace vscTabAtLast RightEdgeSelectedColor.BackPriority2SelectedColor.ForePriority2SelectedColor.FramePriority2SelectedColor.BoldPriority2SelectedColor.ItalicPriority2SelectedColo r.UnderlinePriority2SelectedColor.StrikeOutPriority2BracketHighlightStylesbhsBothBracketMatchColor.BackgroundclNoneBracketMatchColor.ForegroundclNoneBracketMatchColor.Style fsBoldFoldedCodeColor.BackgroundclNoneFoldedCodeColor.ForegroundclGrayFoldedCodeColor.FrameColorclGrayMouseLinkColor.BackgroundclNoneMouseLinkColor.ForegroundclBlueLineHighlightColor.BackgroundclNoneLineHighlightColor.ForegroundclNoneTSynGutterPartListSynLeftGutterPartList1TSynGutterMarksSynGutterMarks1Width MouseActionsTSynGutterLineNumberSynGutterLineNumber1Width MouseActionsMarkupInfo.Background clBtnFaceMarkupInfo.ForegroundclNone DigitCountShowOnlyLineNumbersMultiplesOf ZeroStart LeadingZerosTSynGutterChangesSynGutterChanges1Width MouseActions ModifiedColor SavedColorclGreenTSynGutterSeparatorSynGutterSeparator1Width MouseActionsMarkupInfo.BackgroundclWhiteMarkupInfo.ForegroundclGrayTSynGutterCodeFoldingSynGutterCodeFolding1 MouseActionsMarkupInfo.BackgroundclNoneMarkupInfo.ForegroundclGrayMouseActionsExpandedMouseActionsCollapsedTLabel RecordsLabelAnchorSideTop.ControlRecordsViewSynEditAnchorSideRight.ControlRecordsViewSynEditLeft?HeightTopWidth5Anchors akTopakRightCaptionRecords: ParentColor TGroupBoxThresholdGroupBoxAnchorSideLeft.Side asrBottomAnchorSideTop.Control StatusSheetAnchorSideRight.Control GoToGroupLeftHeight8TopWidthAnchors akTopakRightBorderSpacing.LeftCaptionThreshold to record: ClientHeight6 ClientWidthTabOrder TFloatSpinEdit LCThresholdAnchorSideLeft.ControlThresholdGroupBoxAnchorSideTop.ControlThresholdGroupBoxLeftHeight$HintThreshold for recordingTopWidthFBorderSpacing.LeftBorderSpacing.TopMaxValue@OnChangeLCThresholdChangeParentShowHintShowHint TabOrderTLabelLabel1AnchorSideLeft.Control LCThresholdAnchorSideLeft.Side asrBottomAnchorSideTop.Control LCThresholdAnchorSideTop.Side asrCenterLeftJHeightTop Width'BorderSpacing.LeftCaptionmpsas ParentColorTShape ThresholdMetAnchorSideTop.Control LCThresholdAnchorSideTop.Side asrCenterLeftHeightHint Threshold metTop WidthParentShowHintShapestCircleShowHint TGroupBox GoToGroupAnchorSideTop.Control StatusSheetAnchorSideRight.Control AlarmGroupLeftUHeightSTopWidthAnchors akTopakRightCaptionGoTo: ClientHeightQ ClientWidthTabOrder TShapeGoToLogIndicatorXAnchorSideLeft.Control GoToGroupAnchorSideTop.Control GoToGroupLeft HeightTopWidthAnchors akTopBorderSpacing.Left Brush.ColorclLimeShapestCircle TStaticTextGoToZenithDisplayAnchorSideTop.Control GoToGroupAnchorSideRight.Control GoToGroupAnchorSideRight.Side asrBottomLeftEHeightTopWidthPAnchors akTopakRightCaptionZen:TabOrder TStaticTextGoToAzimuthDisplayAnchorSideLeft.ControlGoToZenithDisplayAnchorSideTop.ControlGoToZenithDisplayAnchorSideTop.Side asrBottomLeftEHeightTopWidthPCaptionAzi:TabOrder TStaticTextGoToStepDisplayAnchorSideTop.ControlGoToZenithDisplayAnchorSideTop.Side asrBottomLeftHeightTop<Width8Anchors TabOrder TStaticTextGoToStepsTotalDisplayAnchorSideTop.ControlGoToZenithDisplayAnchorSideTop.Side asrBottomLeftZHeightTop;Width;Anchors TabOrderTLabelLabel4LeftFHeightTop3Width Captionof ParentColor TGroupBox AlarmGroupAnchorSideLeft.Si de asrBottomAnchorSideTop.Control StatusSheetAnchorSideRight.Control StatusSheetAnchorSideRight.Side asrBottomLeftHeightUTopWidthAnchors akTopakRightBorderSpacing.LeftCaptionAlarm for darkness: ClientHeightS ClientWidthTabOrder TFloatSpinEditAlarmThresholdFloatSpinEditAnchorSideLeft.ControlAlarmSoundEnableCheckAnchorSideLeft.Side asrBottomAnchorSideTop.Control AlarmGroupLeft%Height$TopWidthNBorderSpacing.Left BorderSpacing.TopMaxValue@OnChange!AlarmThresholdFloatSpinEditChangeTabOrderTLabelLabel15AnchorSideLeft.ControlAlarmThresholdFloatSpinEditAnchorSideLeft.Side asrBottomAnchorSideTop.ControlAlarmThresholdFloatSpinEditAnchorSideTop.Side asrCenterLeftuHeightTop Width BorderSpacing.LeftCaptionm ParentColor TCheckBoxAlarmSoundEnableCheckAnchorSideLeft.Control AlarmGroupAnchorSideTop.ControlAlarmThresholdFloatSpinEditAnchorSideTop.Side asrCenterLeftHeightHint Enable alarmTop WidthBorderSpacing.LeftBorderSpacing.TopParentShowHintShowHint TabOrderOnChangeAlarmSoundEnableCheckChangeTButtonAlarmTestButtonAnchorSideTop.ControlAlarmThresholdFloatSpinEditAnchorSideTop.Side asrCenterAnchorSideRight.Control AlarmGroupAnchorSideRight.Side asrBottomLeftHeightTopWidth)Anchors akTopakRightBorderSpacing.RightCaptionTestTabOrderOnClickAlarmTestButtonClickTButton SnoozeButtonAnchorSideLeft.ControlAlarmSoundEnableCheckAnchorSideTop.ControlAlarmThresholdFloatSpinEditAnchorSideTop.Side asrBottomAnchorSideRight.Side asrBottomLeftHeightHintSnooze for a whileTop,Width?BorderSpacing.TopCaptionSnoozeParentShowHintShowHint TabOrderOnClickSnoozeButtonClick TProgressBarRepeatProgressAnchorSideLeft.Control SnoozeButtonAnchorSideLeft.Side asrBottomAnchorSideTop.Control SnoozeButtonAnchorSideRight.Control AlarmGroupAnchorSideRight.Side asrBottomLeftEHeightHint Repeat timeTop.WidthoAnchors akTopakLeftakRightBorderSpacing.AroundParentShowHintShowHint Smooth TabOrder TProgressBarSnoozeProgressAnchorSideLeft.Control SnoozeButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlRepeatProgressAnchorSideTop.Side asrBottomAnchorSideRight.Control AlarmGroupAnchorSideRight.Side asrBottomLeftEHeightHint Snooze timeTop8WidthoAnchors akTopakLeftakRightBorderSpacing.AroundParentShowHintShowHint Smooth TabOrderTShapeGPSLogIndicatorXAnchorSideLeft.ControlGPSLogIndicatorAnchorSideLeft.Side asrBottomAnchorSideTop.ControlGPSLogIndicatorAnchorSideTop.Side asrCenterLeft HeightTop>WidthBorderSpacing.Left Brush.ColorclLimeShapestCircleVisible TStaticTextGPSLogIndicatorAnchorSideTop.ControlThresholdGroupBoxAnchorSideTop.Side asrBottomLeftHeightTop<Width AlignmenttaCenterAnchors akTopAutoSize BorderSpacing.TopCaptionGPS:TabOrder TransparentVisible TOpenDialog OpenLogDialogLeftTopTTimer FineTimerEnabledOnTimerFineTimerTimerLeftTopTTimer StartUpTimerEnabledInterval,OnTimerStartUpTimerTimerLeftTopTDateTimeIntervalChartSourceDateTimeIntervalChartSource1Params.MaxLengthZParams.MinLengthDateTimeFormathh:nnLeftTop TIdleTimerGPSTimerIntervalOnTimer GPSTimerTimerLeftTop`TChartAxisTransformationsTemperatureAxisTransformsLeftTopPTAutoScaleAxisTransform/TemperatureAxisTransformsAutoScaleAxisTransformTChartAxisTransformationsMPSASAxisTransformsLeftTopTLinearAxisTransform'MPSASAxisTransformsLinearAxisTransform1ScaleTAutoScaleAxisTransform*MPSASAxisTransformsAutoScaleAxisTransform1 Tplaysound PreAlertSoundAbout.Description.Strings%Plays WAVE sounds in Windows or Linux About.Title About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About PlaySound About.Height About.WidthAbout.Font.ColorclNavyAbout.Font.HeightAbout.BackGroundColorclCream About.Version0.0.7About.Authorname Gordon BamberAbout.Organisation Public DomainAbout.AuthorEmailminesadorada@charcodelvalle.comAbout.ComponentName PlaySoundAbout.LicenseType abModifiedGPL PlayCommandplayLeftTop Tplaysound FreshSoundAbout.Description.Strings%Plays WAVE sounds in Windows or Linux About.Title About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About PlaySound About.Height About.WidthAbout.Font.ColorclNavyAbout.Font.HeightAbout.BackGroundColorclCream About.Version0.0.7About.Authorname Gordon BamberAbout.Organisation Public DomainAbout.AuthorEmailminesadorada@charcodelvalle.comAbout.ComponentName PlaySoundAbout.LicenseType abModifiedGPL PlayCommandplayLeftTop` Tplaysound AlarmSoundAbout.Description.Strings%Plays WAVE sounds in Windows or Linux About.Title About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About About PlaySound About.Height About.WidthAbout.Font.ColorclNavyAbout.Font.HeightAbout.BackGroundColorclCream About.Version0.0.7About.Authorname Gordon BamberAbout.Organisation Public DomainAbout.AuthorEmailminesadorada@charcodelvalle.comAbout.ComponentName PlaySoundAbout.LicenseType abModifiedGPL PlayCommandplayLeftTopTTimer GoToCommBusyEnabledIntervaldOnTimerGoToCommBusyTimerLeftTopTChartAxisTransformationsMoonAxisTransformsLeftTopTAutoScaleAxisTransform)MoonAxisTransformsAutoScaleAxisTransform1FORMDATA TFormLogCont<No Response: - Check Report Interval. - Check Accessories.SunMonTueWedThuFriSatUSBEthWiFiRS232ser.CloseSocket exceptionEthSocket.CloseSocket exceptionretrieveix-/yyyymmdd"_"hhnnss%s%s_%s %s%s_%s.csv ,# Light Pollution Monitoring Data Format 1.0*# URL: http://www.darksky.org/measurementso# This data is released under the following license: ODbL 1.0 http://opendatacommons.org/licenses/odbl/summary/# Device type: # Instrument ID: # Data supplier: # Location name:  # Position (lat, lon, elev(m)): # Local timezone: # Time Synchronization: &# Moving / Stationary position: MOVING # Moving / Stationary position: !# Moving / Fixed look direction: # Number of channels: # Filters per channel: %# Measurement direction per channel: # Field of view (degrees): DL-LogDL-V-Log DL-V-HSLogADAGDMC# Number of fields per line: # SQM serial number: %d# SQM hardware identity: # SQM firmware version: # SQM cover offset value: %# SQM readout test ix (Information): rx!# SQM readout test rx (Reading): cx%# SQM readout test cx (Calibration): Ix)# SQM readout test Ix (Report Interval): Lcxyy-mm-dd hh:nn:ssInvalid RTC from device =  # DL time difference (seconds): # DL time difference: ???yyyy-mm-dd"T"hh:nn:ss.zzz# DL retrieved at (UTC): LIx# DL trigger seconds : # DL trigger minutes : # DL trigger threshold : 0# Acceleration position %d: %6.0f %6.0f %6.0f)# Magnetic maximum XYZ: %7.0f %7.0f %7.0f)# Magnetic minimum XYZ: %7.0f %7.0f %7.0f # Comment: .# UDM version: %s# UDM setting: %s # blank line@# UTC Date & Time, Local Date & Time, Temperature, Voltage, MSASL# YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Celsius;Volts;mag/arcsec^2 , Record type ;Init/SubsOne record logged# UTC Date & Time, Local Date & Time, Temperature, Counts, Frequency, MSAS, Ax, Ay, Az, Mx, My, Mz, Altitude, Zenith, Azimuth, Vibration# YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Celsius;number;Hz;mag/arcsec^2;Ax;Ay;Az;Mx;My;Mz;degrees;degrees;degrees;countDL Retrieve AllDL-V binary retrieve~# UTC Date & Time, Local Date & Time, Temperature, Voltage, MSAS, Ax, Ay, Az, Mx, My, Mz, Altitude, Zenith, Azimuth, Vibration|# YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Celsius;Volts;mag/arcsec^2;Ax;Ay;Az;Mx;My;Mz;degrees;degrees;degrees;count# Counts, Counts, Counts # Mx, My, MzZ# UTC Date & Time, Local Date & Time, Frequency, Counts1, Time1, Counts2, Time2, ADAFactorX# YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Hz;Counts;Seconds;Counts;Seconds;RatioB# UTC Date & Time, Local Date & Time, RawMag, Temperature, CompMagJ# YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Hz;Counts;Celcius;Countsa# UTC Date & Time, Local Date & Time, Temperature, Counts, Frequency, MSAS, Scale, Color, Cycling`# YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Celsius;number;Hz;mag/arcsec^2;scale;color;F/CJ# UTC Date & Time, Local Date & Time, Temperature, Counts, Frequency, MSASP# YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Celsius;number;Hz;mag/arcsec^2, Raw frequency;Hz , Std lin., Snow MSAS, Snow lin.;n;mag/arcsec^2;n, Snow/Dark LED status;S/D, Zenith, Azimuth;deg;deg, MSASraw, Status;mag/arcsec^2;F/P/S3, MoonPhaseDeg, MoonElevDeg, MoonIllum, MoonAzimuth ;Degrees;Degrees;Percent;Degrees3, Latitude, Longitude, Elevation, Speed, Satellites,;Degrees;Degrees;meters;meters/second;Number , Humidity;Percent, SerialNumber;S/N.dat# END OF HEADER# Number of header lines: OKError:  []Sent:  To:  Received:  NELM cd/m² NSUIs inside GetReading already.uxr1xrFx Reading: %1.2fmpsasFrequency: %dHz Counter: %dcounts Time: %1.3fs Tint: %1.1fC Reading: %1.2fmpsas unaveragedFFresh frequencyP Fresh periodS Stale reading???? Status: %sOnDOff??? Snow LED: %sGetReading failed. Sent:  Received:  Altitude: %4.1f°@ Azimuth: %4.0f°M1: %dc? T1: %10.7fC@ Counter1: %dcounts Time1: %1.3fs Counter2: %dcounts Time2: %1.3fs Power down2% Frequency scaling20% Frequency scaling100% Frequency scalingError : Scaling: %sRedBlueClearGreen Colour: %sExpected 8 fields, got Could not get version.GetVersion called.igroupsdialoutThis user is not part of the dialout group.Use the "adduser", or%"sudo usermod -aG uucp username", or: administration-> users and groups-> manage groups-> dialout-> propertiesadd user name, then re-loginUser not in dialout group. Protocol: SQM-LUSQM-LESQM-CSQM-LR SQM-LU-DLSQM-W SQM-LU-GPS Magnetometer Temp. Chamber SQM-LU-DL-V SQM-LU-DLSUnknownL2-NFLvx-R1-R2YxA5x Model:  () Feature:  Serial:  RTC: DS1305 RTC: DS3234 RTC: DS1390 RTC: UnknownGetVersion result: Reading Interval Settings: GetVersion: No serial numberSN.logUnable to open file: yyyy-mm-dd hh:nn:ss.zzz : SN  : &Is inside CheckLockVisibility already.CheckLockVisibility() Calibration data  yyyy-mm-dd %s Report Date  Serial Number  USB Serial Number  MAC  Model Number  Feature version  Protocol version  DS1305 (±20ppm) Real Time Clock  DS3234 (±3.5ppm) DS1390 (±5ppm) Unknown %d  records Data logging capacity Records %2.2f  mags/arcsec² Light calibration offset  %2.1f  °C Light calibration temperature  %2.3f  seconds Dark calibration period  Dark calibration temperature  8.71 mags/arcsec²  Calibration offset  Acceleration position %d  %6.0f %6.0f %6.0f  %7.0f %7.0f %7.0f Magnetic maximum XYZ  Magnetic minimum XYZ Select the logs directory LogsDirectory DirectoriesDirectory does not exist!$ TPF0 TDirectories DirectoriesLeftHeight Hint.Select a new directory path for the log files.Top7WidthAnchors akTopCaption Directories ClientHeight  ClientWidthConstraints.MinHeight Constraints.MinWidthOnCreate FormCreateOnShowFormShowPositionpoScreenCenterShowHint LCLVersion2.2.6.0 TLabeledEditTZdatabasepathDisplayAnchorSideLeft.ControlResetToLogsDirectoryButtonAnchorSideTop.ControlLogsDirStatusLabelAnchorSideTop.Side asrBottomAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomLeft}Height$TopFWidthAnchors akTopakLeftakRightBorderSpacing.TopBorderSpacing.RightEditLabel.HeightEditLabel.WidthiEditLabel.CaptionTZ database pathEditLabel.ParentColor LabelPositionlpLeftReadOnly TabOrder TLabeledEditFirmwareFilesPathDisplayAnchorSideLeft.ControlResetToLogsDirectoryButtonAnchorSideTop.ControlTZdatabasepathDisplayAnchorSideTop.Side asrBottomAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomLeft}Height$TopmWidthAnchors akTopakLeftakRightBorderSpacing.TopBorderSpacing.RightEditLabel.HeightEditLabel.WidthuEditLabel.CaptionFirmware files pathEditLabel.ParentColor LabelPositionlpLeftReadOnly TabOrder TLabeledEditDataDirectoryDisplayAnchorSideLeft.ControlResetToLogsDirectoryButtonAnchorSideTop.ControlFirmwareFilesPathDisplayAnchorSideTop.Side asrBottomAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomLeft}Height$TopWidthAnchors akTopakLeftakRightBorderSpacing.TopBorderSpacing.RightEditLabel.HeightEditLabel.WidthZEditLabel.CaptionData DirectoryEditLabel.ParentColor LabelPositionlpLeftReadOnly TabOrder TLabeledEditConfigfilePathDisplayAnchorSideLeft.ControlResetToLogsDirectoryButtonAnchorSideTop.ControlDataDirectoryDisplayAnchorSideTop.Side asrBottomAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomLeft}Height$TopWidthAnchors akTopakLeftakRightBorderSpacing.TopBorderSpacing.RightBorderSpacing.BottomEditLabel.HeightEditLabel.WidthZEditLabel.CaptionConfigfile pathEditLabel.ParentColor LabelPositionlpLeftReadOnly TabOrderTButtonButton1AnchorSideTop.ControlConfigfilePathDisplayAnchorSideTop.Side asrBottomAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomLeftHeight#TopWidth3Anchors akTopakRightBorderSpacing.TopBorderSpacing.RightBorderSpacing.BottomCaptionCloseOnClick Button1ClickTabOrderTLabelLabel1AnchorSideLeft.ControlOwnerAnchorSideTop.ControlResetToLogsDirectoryButtonAnchorSideTop.Side asrCenterLeftHeightTop Width} AlignmenttaRightJustifyCaptionLogs Directory Path: ParentColorTBitBtnResetToLogsDirectoryButtonAnchorSideLeft.ControlLabel1AnchorSideLeft.Side asrBottomAnchorSideTop.ControlOwnerLeft}Height#HintReset directory to default.TopWidth#BorderSpacing.Top Glyph.Data :6BM66( ddN5N5N5O8O8N5N5N5N5N5zYDjƞЦh `HN5mN5N5N5saĝѡԣȟp_N5N5N5@^Fܟٯv lfQ N5tfL l gv ܣywx mewXU?N5)`dKd2mLr lpZ T>O6N7\EpfYlJM<N5z]HlP ~Y|Y,O8N5"N5'XCxVnKZ=F6T<N5 O8N9M7N5N5Q9V@[?T<P9[DW@fLrSgqvdP VAEP9J7aIu^+oX'_I`Jp,;7dS@N51N5$WEL6v^,l:r_,YBbIMLD~XcGQ?P9P9WES@iQ}L}Lta,N7aFa^]LjOO9R@K9N8pY(Z^XfON5'_DqppmmeqAq@[omp}i-P8t`DrsVw?{îîîîîî}t9U<N5YAhKN5EP7znQdоλz_qSN5sN5N5 N5N5$P7hNɃk7v\$[?P7~N5#OnClickResetToLogsDirectoryButtonClickTabOrderTLabelLogsDirStatusLabelAnchorSideLeft.ControlLogsDirectoryEditAnchorSideTop.ControlLogsDirectoryEditAnchorSideTop.Side asrBottomAnchorSideRight.Side asrBottomLeftHeightTop+Width7Anchors akTopakLeftakRightAutoSizeBorderSpacing.TopCaptionStatus of logs directory. ParentColor ParentFontTBitBtnLogsDirectoryButtonAnchorSideLeft.ControlResetToLogsDirectoryButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlResetToLogsDirectoryButtonLeftHeight#Hint!Select location of logging files.TopWidth#BorderSpacing.Left Glyph.Data :6BM66( ddSMFe4e4e4e4e4e4e4e4e4e4e4e4e4f5g69HHHxi:PPPPPPPPPPPxEf6IIIh9Ӧ~ңxңxңxңxңxңxңxңxңxӤyѥzf5HHH⛛g8իΜnΜmΜmΜmΜmΜmΜmΜmΜmϞpիf5LLL䡡h8ĩըӤzӤzӤzӤzӤzӤzӤzӤzԧ~ݺf5QQQ夥g7Ҿݺݹܶ۵ڳٲخ׭׭ذɱf5WVVV穩f6ݺݺݺݺݺݺݺܷڲٰϸf5[[[鮮g6ܷܷܷܷܷܷܷܷܷڴͶf5___鳳f5۴۴۵۵۵۵۵۵۵ܸϷf4eee뷷f5ӾԿԿԾԾԾӾӾӾӾӾϸe4jjj콽mAf6f6f6f6f6f5f5f5f5e4e4e4h7nnnjjjGGGGGGsss򌌌򌌌򌌌򀀀lllGGGGGGxxxtttrrr8rrr8rrr8mmm8ooo5UUUGGGGGGzzzyyyyyyyyyyyyyyyyyyxxx5GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGOnClickLogsDirectoryButtonClickParentShowHintShowHint TabOrderTEditLogsDirectoryEditAnchorSideLeft.ControlLogsDirectoryButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlLogsDirectoryButtonAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomLeftHeight$Hint Location of logging files.TopWidth7Anchors akTopakLeftakRightBorderSpacing.LeftBorderSpacing.Right ParentFontParentShowHintShowHint TabOrderFORMDATA TDirectories"data log files|*.dat|All files|*.*Reading Input file.csv+Do you want to overwrite the existing file?Overwrite existing file?&Processing Input file, please wait ... # Position!No location data found in header.Error(Error: No location data found in header.nul@Error: Latitude  out of range@Error: Longitude %.3f# UTC Date & Time,/;MoonPhaseDeg;MoonElevDeg;MoonIllum%;SunElevDeg#yyyy-mm-dd"T"hh:nn:ss.zzz;%.1f;%.3f;@Writing Output file8File handling error occurred. Details: On Line number:  /Error encountered.Processing completeU TPF0Tconvertdialog convertdialogLeft5HeightuTopWidth ActiveControlMemo1CaptionConvert Log File ClientHeightu ClientWidthOnCreate FormCreatePositionpoScreenCenter LCLVersion2.0.12.0TButton SelectButtonAnchorSideTop.ControlMemo1AnchorSideTop.Side asrBottomLefttHeightTopWidthBorderSpacing.Top CaptionSelect and convert input fileOnClickSelectButtonClickTabOrderTMemoMemo1AnchorSideLeft.ControlOwnerAnchorSideTop.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomLeftHeightTopWidthAnchors akTopakLeftakRightBorderSpacing.LeftBorderSpacing.TopBorderSpacing.Right Lines.Strings{1. This tool adds Moon information to the selected input log file (.dat) and outputs to a (.csv) file of the same filename.|2. The lengthy header from the .dat file is removed. Only one header line describing the record fields is left near the top.V3. Semicolons are used for the field seperators (just like in the original .dat file).ReadOnly ScrollBarsssAutoVerticalTabOrder TLabeledEditLatitudeDisplayAnchorSideTop.ControlOutputFilenameDisplayAnchorSideTop.Side asrBottomLefttHeight TopWidthP AlignmenttaRightJustifyBorderSpacing.TopEditLabel.HeightEditLabel.WidthaEditLabel.CaptionLatitude used:EditLabel.ParentColor LabelPositionlpLeftTabOrder TLabeledEditLongitudeDisplayAnchorSideTop.ControlLatitudeDisplayAnchorSideTop.Side asrBottomLefttHeight TopWidthP AlignmenttaRightJustifyBorderSpacing.TopEditLabel.HeightEditLabel.WidthoEditLabel.CaptionLongitude used:EditLabel.ParentColor LabelPositionlpLeftTabOrder TLabeledEditOutputFilenameDisplayAnchorSideTop.Control SelectButtonAnchorSideTop.Side asrBottomAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomLefttHeight TopWidthKAnchors akTopakLeftakRightBorderSpacing.TopBorderSpacing.RightEditLabel.HeightEditLabel.WidthjEditLabel.CaptionFile saved here:EditLabel.ParentColor LabelPositionlpLeftTabOrder TStatusBar StatusBar1AnchorSideLeft.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.ControlOwnerLeftHeightTop_WidthPanelsWidth2 SimplePanelTButton CloseButtonAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.Control StatusBar1LeftiHeightTopCWidthVAnchors akRightakBottomBorderSpacing.RightBorderSpacing.BottomCaptionCloseOnClickCloseButtonClickTabOrder TOpenDialogOpenFileDialogLeft8TopFORMDATATconvertdialogcsv files|*.csv|All files|*.*;*.datSerial Device type Instrument ID Data supplier Data Supplier Location name Location NamePosition (lat, lon, elev(m))PositionLocal timezoneLocal time zoneTime SynchronizationMoving / Stationary positionMoving Stationary PositionMoving / Fixed look directionMoving Stationary DirectionNumber of channelsNumber Of ChannelsFilters per channelFilters Per Channel!Measurement direction per channel!Measurement Direction Per ChannelField of view (degrees) Field Of ViewSQM serial numberSQM firmware versionSQM cover offset value CoverOffset"data log files|*.dat|All files|*.*# :'File handling error occurred. Details: /Errorafrica antarcticaasia australasiaeurope northamerica southamericaetcetera pacificnew+Do you want to overwrite the existing file?Overwrite existing file? ,# Light Pollution Monitoring Data Format 1.0*# URL: http://www.darksky.org/measurements# Number of header lines: 35o# This data is released under the following license: ODbL 1.0 http://opendatacommons.org/licenses/odbl/summary/# Device type: # Instrument ID: # Data supplier: # Location name:  # Position (lat, lon, elev(m)): # Local timezone: # Time Synchronization:  # Moving / Stationary position: !# Moving / Fixed look direction: # Number of channels: # Filters per channel: %# Measurement direction per channel: # Field of view (degrees): # Number of fields per line: 5# SQM serial number: # SQM firmware version: # SQM cover offset value: # SQM readout test ix: # SQM readout test rx: # SQM readout test cx: # Comment: .# UDM version: %s1# UDM setting: Converted from old style csv file.# blank line 32@# UTC Date & Time, Local Date & Time, Temperature, Voltage, MSASL# YYYY-MM-DDTHH:mm:ss.fff;YYYY-MM-DDTHH:mm:ss.fff;Celsius;Volts;mag/arcsec^2# END OF HEADERGot ! fields, need 7 fields in record.yy-mm-ddhh:nn:ssyyyy-mm-dd"T"hh:nn:ss.zzz";";Serial:6TPF0TConvertOldLogFormConvertOldLogFormLeftHeight%TopWidth%CaptionConvert old log to dat ClientHeight% ClientWidth%OnCreate FormCreateOnShowFormShowPositionpoScreenCenter LCLVersion1.3 TGroupBoxHeaderDefinitionGroupBoxAnchorSideLeft.ControlOwnerAnchorSideTop.ControlLogfileSelectButtonAnchorSideTop.Side asrBottomAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.Control ConvertButtonLeftHeightTopWidthAnchors akTopakLeftakRightakBottomBorderSpacing.LeftBorderSpacing.TopBorderSpacing.RightBorderSpacing.BottomCaptionHeader definition ClientHeight ClientWidthTabOrder TRadioGroupMethodGroupBoxLeftHeightDTopWidthAutoFill CaptionMethodChildSizing.LeftRightSpacingChildSizing.TopBottomSpacingChildSizing.EnlargeHorizontalcrsHomogenousChildResizeChildSizing.EnlargeVerticalcrsHomogenousChildResizeChildSizing.ShrinkHorizontalcrsScaleChildsChildSizing.ShrinkVerticalcrsScaleChildsChildSizing.LayoutcclLeftToRightThenTopToBottomChildSizing.ControlsPerLine ClientHeight5 ClientWidth ItemIndex Items.StringsFrom previous configurationFrom other dat fileOnClickMethodGroupBoxClickTabOrderTButtonImportHeaderButtonAnchorSideLeft.ControlMethodGroupBoxAnchorSideLeft.Side asrBottomAnchorSideTop.ControlMethodGroupBoxLeftHeightTop WidthBorderSpacing.Left BorderSpacing.TopCaptionImport header from dat fileOnClickImportHeaderButtonClickTabOrderTEditImportHeaderNameEditAnchorSideLeft.ControlImportHeaderButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlImportHeaderButtonAnchorSideTop.Side asrCenterAnchorSideRight.ControlHeaderDefinitionGroupBoxAnchorSideRight.Side asrBottomLeftHeightTop WidtheAnchors akTopakLeftakRightBorderSpacing.LeftBorderSpacing.RightTabOrder TComboBoxFromPreviousComboBoxAnchorSideLeft.Control SerialLabelAnchorSideLeft.Side asrBottomAnchorSideTop.ControlMethodGroupBoxAnchorSideTop.Side asrBottomAnchorSideRight.ControlMethodGroupBoxAnchorSideRight.Side asrBottomLeftiHeightTopNWidthtAnchors akTopakRightBorderSpacing.LeftBorderSpacing.Top ItemHeightOnChangeFromPreviousComboBoxChangeTabOrder TStringGrid StringGrid1AnchorSideLeft.ControlImportHeaderButtonAnchorSideTop.ControlImportHeaderButtonAnchorSideTop.Side asrBottomAnchorSideRight.ControlHeaderDefinitionGroupBoxAnchorSideRight.Side asrBottomAnchorSideBottom.ControlHeaderDefinitionGroupBoxAnchorSideBottom.Side asrBottomLeftHeightTop'Width1Anchors akTopakLeftakRightakBottomBorderSpacing.TopBorderSpacing.RightBorderSpacing.BottomColCountColumns Title.CaptionValueWidth Title.CaptionValue2RowCountTabOrder OnDrawCellStringGrid1DrawCell ColWidths@@TLabel SerialLabelAnchorSideLeft.ControlMethodGroupBoxAnchorSideLeft.Side asrBottomAnchorSideTop.ControlFromPreviousComboBoxAnchorSideTop.Side asrCenterAnchorSideRight.ControlFromPreviousComboBoxLeftFHeight TopTWidthAnchors akTopakRightBorderSpacing.Left BorderSpacing.RightCaptionSerial: ParentColorTButtonLogfileSelectButtonAnchorSideLeft.ControlOwnerAnchorSideTop.ControlOwnerLeftHeightTopWidthBorderSpacing.LeftBorderSpacing.TopCaptionSelect logfile to convertOnClickLogfileSelectButtonClickTabOrderTEditLogfilenameLabelAnchorSideLeft.ControlLogfileSelectButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlLogfileSelectButtonAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomLeftHeightTopWidthtAnchors akTopakLeftakRightBorderSpacing.LeftBorderSpacing.RightTabOrderTButton ConvertButtonAnchorSideLeft.ControlOwnerAnchorSideBottom.ControlOutputfilenameLabelLeftHeightTopWidthKAnchors akLeftakBottomBorderSpacing.LeftBorderSpacing.BottomCaptionConvertOnClickConvertButtonClickTabOrder TLabeledEditOutputfilenameLabelAnchorSideLeft.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomLeftHeightTop Width0Anchors akRightakBottomBorderSpacing.RightBorderSpacing.BottomEditLabel.AnchorSideTop.ControlOutputfilenameLabelEditLabel.AnchorSideTop.Side asrCenter!EditLabel.AnchorSideRight.ControlOutputfilenameLabel"EditLabel.AnchorSideBottom.ControlOutputfilenameLabelEditLabel.AnchorSideBottom.Side asrBottomEditLabel.Left}EditLabel.Height EditLabel.TopEditLabel.WidthrEditLabel.CaptionOutput file stored here:EditLabel.ParentColor LabelPositionlpLeftTabOrder TOpenDialogOpenFileDialogleftptopFORMDATATConvertOldLogForm3Vector monitoring mode, status messages suppressed.M_2YxyzP1P2P3P4P5P6O0.0 0.0 1.0; 0.0 0.0 -1.0; 0.0 1.0 0.0; 0.0 -1.0 0.0; 1.0 0.0 0.0; -1.0 0.0 0.0"76.553492; -233.215243; 215.155570P 0.99294 0.043052 -0.0091776 0.043052 0.9761 0.014188 -0.0091776 0.014188 1.0341WAccelXZrawnormA_1A_2A_3A_0A1_A2_A3_Magnet Stored MaxMaxM_Min Stored MinOffset M_1(norm) M_2(corr)X axisY axisZ axisv0x.datHard/Soft calibration logging DL-V-HSLogHard/Soft Iron testX +X -Y +Y -Z +Z -.txt.csvraw_off_X,Y,Z#%Incorrect number of fields in record.Error%4.1f %4.1f %4.1f%4.1f,%4.1f,%4.1f'File handling error occurred. Details: /@Magneto settings exception?=@?@?$@? Accelerometer%.0f;%.0f;%.0f;%.4f;%.4f;%.4f A@@3333333??p@33??ff?@@@v30V3x get accelerometer calibration failed. Count= . Reply= =V3x get accelerometer calibration failed. Count=0. Reply= nil%6.0fv4,#%6.5d,%6.5d,%6.5d,%6.5d,%6.5d,%6.5dv4xv4%7.0fv3,%1dxv3,%1d,%6.5d,%6.5d,%6.5d%4.0f%4.1f°%3.3fAx1,Ay1,Az1 = %1.3f %1.3f %1.3f CXRot: %4.1fCx1,Cy1,Cz1 = %1.3f %1.3f %1.3f CZRot: %4.1fCx2,Cy2,Cz2 = %1.3f %1.3f %1.3fMx1,My1,Mz1 = %1.3f %1.3f %1.3f MXRot: %4.1f Mr1: %1.3f"MRx1,MRy1,MRz1 = %1.3f %1.3f %1.3f MZRot: %4.1f"MRx2,MRy2,MRz2 = %1.3f %1.3f %1.3f1st Xrot: %4.1f )1st stage Mx2,My2,Mz2 = %1.3f %1.3f %1.3f1st Zrot: %4.1f Heading z,x : %4.1f Mx1, My1, Mz1 Mx2, My2, Mz2 M Roll comp̾?;On?4C?333333?333333?333333󿚙>̌?@fff?@ M Pitch compM Roll Pitch comp333??Q?LA@@@%7.3f?333333?Zenith>BNES?@Y@F@G??G33 ף33> ף=@@5h!@@v2x@Accel=24539, cold-boot meter.GetAccel exception: @NormalizeAccel exception.v1xGetmag pieces count < 4 %s@GetMag exception:  TPF0 TVectorForm VectorFormLeftHeightkTopxWidthAnchors BorderStylebsDialogCaptionVector ClientHeightk ClientWidth Icon.Data B> (( dd !#$#""!  '1;DMU[adeedb`]XRKD=5+!  !.>N^mzsdTC4(  $8Nczp\G2!  4Mg{cI2 +C]yw\A)  0Kk         iI,/Ot          oK,+Lt          % ) ) ( + , . * #!       oJ+$Ek          & / 2 - - 4 4 5 0 ) ( " % ' $ "       jA" 5^   #32$    !     ' . 1 0 1 6 7 5 1 / 0 * * + + ) $ # % $ # - ."    Y2 #Ht  '/ 3 9 >: *    $ & "  #) ) / 4 7 7 9 5 3 58 3 /-+ $ " & + ) + 3 1 ( .$     oA 2]'//. 7)M "C +      ! $  ! ) + . 02 5 4 5 6 7 8 5 3 - & %& % $ & ) ) * 1 9 4 -&#& U+Cq %0/ ' ( & (2 , $      & " ! $ & ) '&+ ) / 5 8 8 89 5 - 2 . % !( *+. 5:9 4 1 2 /,$   g8 $N # 6 "@ ; ! ! !  " "    $' !"# " $' " !& &*3 9 7:; 8 4 : 3 ($+.-,.38 : ; !; 4 6 2("  tD +W   , 6!?#B $  ! " " ! " "   !& $#$$ $&%#$) **1 83: 7 4 5 5 / + ) ,0 * %$ )3=#B "@ 7 < : 1 1 +O$ /`    %&'' %    " !  ! # $ #   !)&"#' "  $')).3 1 1 2 1 - & " $ ( , 0 0,()*5 "A &D8> < 6; ; . U& 3g     && $ !        $(" ! &)' % % !  ! #$#%/7 4 5 4 2 / + ( .3 / 1 5 3,%& ' /$> / 373 * 3 -   Z* 4g   )) $ ! " ! ! !      #  $) %%& %(*+* $ #& ' &(' - 5 6 3 5 512 / 14 // 1 1, %'& (1 * + - * &. + #  ]- 4h   %/. ( !  !       % # " # % % '& ! #)., '&*+ '- ' ' -0 1 66361 0 / -.- ,* '+,+ ((% # #&)' #    ]*  0f  0. # "  " #          #$# " ! " #   ' ( & &), * & ( " # $36 5 571. . -2 / * (),/. (%     "    " "  Y'  +b  (/*  ! !            ! ! ! ! " ! ! # * . ---, ( " ! ! "#" & & ' ,552 . - 0 ,( % % $ % $              U" &Z  $/53,+' & %              ! "'** +/,+- -10* #   #)( # ! %.43 - * % %%$# " ! !     $   !  LQ   ' 12432:40, !   !           (-/00)&' */-*' #  )+ $  "',.+ % ! " "% "  !    !  !    # # " ! CE '2 9?80+-;<5*   ! # !    !       % ),/ ' $ ! !& ' &') ) $   ") $ "# $'( # "!  ") $ ""!       !  !% ' & $   u98u  1 "D+Q2W0W.S6 % (.+ " " "      "      & % % , ) % # # " $ # # % $ "  ! $ ( )& ! $ $ $ '#&& %* $ %'$"##"!    !',+ *$ j/ )e! 6.T0X !D 4>6/4, %(.*% ! " $    !   !%& $)' %+*&%%$##$'*(&& '&+.) "()% $ $' ( ' * ( ( ( # !&&# $"" ! "#$&('%"   W P$ &F +O)N%I!E?=9676*-5.'# " # #     #&)))'&''('&'%%%%)'&(*),-*%)*''))** & & '& # !'($$$  $% $()' % #  By9~  59b;g %I : B'L=7:?9100(% # ! ! %    " $ '())' $ $('# & %&'%%$$ $ &)*)(''&'*)())# #$$""%%#" #   && $'++ ( &'   m/ &a # <9c:h/V ? 4< 5 /:*M4 3 / &     "# #        !*,' #"% #  " " &)($ # "  &'$#) # "&' # "#$% $$# "!  ! " ##"$&&%&*-,)++ $  TG %3 *K@k -W>849=8 )!      p        #$#!  ! $ #   % * ( ' %&(&  $% " %'& $ $ # ! "#%$# " "&# ! " & $ !  #()+0* % &+/*& " f)Q / +M *O"G#G$K-P2X0]*V&N&L$HA<==5%# ! "$ !     ##!%'&$#  #&# "$) + +*+,*%%&&)*)()$$%%$%$$ '(%## #.,'',1104- ( )--(& % #  K 5x# A9d4` #J B*R)I'H(Q*V0W-S$JB!H%J?/$&%%' $#%&#%((%)++($"!#'+*%%*-.- ,+)''*.,+-0%&(% !&&'+,(&&% 8#;!5 16777:">#=&%>)&?306"$:3 " q. V  0 (L :f=h1V %C8e.V $H$I)K 8$D*R(M-O)L"C5%(*(% &""6*B*&())+*,-'! "$'+)%#%)+,+ ')+* )-(+/,$%(($*)'),)'),3#>'?!5%;":8#=*3I?H^RRbeZgl_mOHY:=SKKaUQe.2F1  M 6} * $C *P2X 6^4^2X3^,V %K 'J4V %; ; %G)K =!B:++(('$ & #(B$=\*H!6)=*>3/((**%%% &)&$$&&&)-*.,(&&)+,+)),. &*--*+*+ / 5.B%0F,C2G[\midtML_@BWsn}a[nLG[HCUXN^i\ktiyxk|sfwe]nKL^*3C's. T  1 ,M /S 4Y4\1Z.W6d4a3^6_;a9R*C$B*I315$6%3-,*')3$1J,A^+?\-;R1]!7R!3P 4R!74#+A&9L#3C *=)>&< 6"7*3G4;P4=L:;I?@PBCTKK[WXcbdlwt?BF)---.,**/2))(%)3#3A1BBBP@CR"-<#2#4FQ`pQas{u/,B6347"=+B(:QIWorw~XVj'%/ @(h  &46 9-R 4`S;>R9@S26$8!5445 6 62.';,6H$';"%8#8';).?'*=2:K3;LHJ\vvvNG`$+D'C3  3 65 ?8^ 8e8e8c 6a4Z2S ,P)S!5`8DhXSoToUk_r[sk}q|su~x~Ncv2La9SkC^y>^yL]uR^sS]mHTd/E\)E`'A[3N+GMQgsu>>FI,o 6 -P/U1X3\/V2[:e9f ,Y/W*R'8_>VOpgknzzthg\rp~}EiP{cdz^o\_j&',c" ?  !=0U5\6_6`0X-W:e@k4]6c(Q"G-R6Jreyrry|{dieUmi`f|03< ~4 Re &)G,S0Z3[2Z3^.U+P.U5b1]%K)K(;^1IpPnhtw|c6b|7ay7ayAjTqpx:?NH$g  *.O1Z-V*S-W6a+R'K,P1Z&L&H(G0P1LqZwlopx{fOy/Xt=inPWg!%+ `2{   32W>h;d1Z+X7b-U+P.R,R#F%F#A)G6Rvc~olnsvy|kvxbk}/3; v+A !";3Y$It(Mv=e,V7a1Y-T,R(N'J#B >.M?[a}mmooqtw{nw:?J; R ! 0(HBk>c.P (L6d*R%K'L(J $C #>$@4TEc_{hiilmqux~yGM\!Kc * 7 >,R,N&D$F0\*Q(M*M +H 'D2Q<].Mo]vb{eggklot{}~|RYk"$+ Z)r 3 $D (J&N %H $C $E,S%L'J+J*E&@)@_=WyKfd{e{f}ghkkmqwyz{||\ey+.8 j% 3 8)N5^(Q,Q1T2T3Y,R)K)G)F,F4JhQf`ucwfyh{h}hkkmpqtvxz{~fo48Cz/= # 7(Ld9Ou8Pt-Mr*Hm :[/N4T$Db;VuUjfxevgxiyiz>h|klmoqrtvxzz|~lw9?L: H ! 5)I>d7QpK`QgPfUhUgMaG]|J`Vl\q_rbscscvdxfzhzk|mllnqtvvxy{~q{AGW CR#3#@1Q8NmQbXjVi\k]l\lZlZn_qararbqcscudwfyiyl{m}mnortuvxy|~zu~GL^$LZ  +8!=&F"8YIXz]iXhZi[j]l^m]n]m_oapbqbsdtevgwjylzl{n}pqrtuuvz}~}wMRe!) S a 2#>$B$1R4VGUv_iYgZhZi[j]l]l]l_n`oaparcretgvjxiyk{m}o~qqtutty{{{|~yPWj#%. Z$i , 6,IOYvYdZeYeYeZf[iZjZk\l_k_m_n_naqcresguhwhxjym{n}n~oqttvwxyy{|~yQWk#'/ ^ 'm)-D3D`Q^{ZeZf~Xf~Xe[f[gZhZi\j_k^l]m^nbpcrdsdteuiwiwjxl{l}n~pstuuvxxzy{wSZn&)2 b"(p !,<9H^L[uTb|Xd~Xe~Xf~YfZf\f\h\h]h^j^l`manandpererethvhvivkxl{n|o}psttuwxzz{}~xRZn&)2 e$*s$4=OLYoXf}Wd}Yd~XeXfYfZf]g]h]g^g^j_kblelbmdpfpfqfshuhvivkwmynzn{o}rssuvwy{z||}xRYm%(1 e$+t  )8>QKVmSbzWc}[c|[d~[eZf[f]g]g\g]h^j_jbjekdmdpfogofrgrhtiwjxmxnxnzn|p~rstuuwyz{{u}SWl%(1 c#,v (9>OMTlV_zX`{Yb{Za|Zb~[c]d~\dZfZg\h]i_ibicjakcmfnfodpdqfshtiujwjvlyn|n|o~qrsuvxyy{|}r{NTg"%- b",v  )9>QMVmTazUb}Wb}Yb}Zb{Zby\dz[d~Ze~[f}]f}^g`hbibiakakbmdpfpepfrfsfuhwjwkyl{m|n}o~qsttuwyzz|}}qzLSe"$- _ +t '8DVPXlU`tV^tV]uY^w[`yX`wYaw[av[av[cy\dx\d|^d}`e|^g]g^g_g_hbjckelemdmengnhohrgsjsktktmtnumvnwqyqzq{s|t|t~v~vvvwwxxxz{z{}}~~~}{}~}||osRVj),6 ~3 = "$.<@SPUmV\qW\qV]tX_wZ`wX`vY`u[at\at]au[av[bx]cx^cw]dx^f{^f~_g`h}ahcidjcleldjflgngohqiqiqhqjrmrosounvpwpyqzq{q|t|u~uttwwvvwyz{|}}}{|}~~|}~~%~}~}{|~~{y{~|zzzyjoKNb$%/ r* 2 '6:JMQfV\pV]rW\rX]sX^tY_sZ_tZ_t[_u]`w]aw[bw[bx]by^by]cx^d{_f}_g{`f}bgchcicjdjdkemfneogphpipiqkqlqmrmtnvmwnxpxqyrzs{s|s|r~t~uvwvvwwxz{zz|||}{}}}~~~~|~}~~}|||~~}{zyyyz|{zy{v|chBEU% b!(q14@HM^TYmV\rW[rX[rX\sZ^rZ]sZ]sZ^t[`u[`uZbxZbx\aw^cy^by_cy`dz`fz`f|bf}cfbgahcickdleldmfngnhnhphphpjqmsksltmumuouqxqyqyrzr{s{t|u}w~v~vvvwxyyy{{zzz}}|}}}}}z|}}~|}}}}|{{|z{{zzxwxzxy~y}x~x~wqw[_u8;ITa+,7BGXQViVZpWZtXZtZ[rY\r[]rZ^rY^rY_sX`sXaxZ`w\_s]bu`cy`by`byaezae{bezbe|bf~ahbhcidjejekelfkgkhnhnfohplqjrlrlrksmspvowpxqxsyqzrzt{u|u|u}v~wvwxyyxyxxy{{|}{zzzxzz{|{zz{{zzzzyxxy{yw}x|y}v~w}w|v{v{t|lqRUj01=EO#$-;?ONSgUYqVZsXZrZ[qWZpY\pY^sX^tZ]s[_sZ^tZ^u\_s[`p_bt`ax`ay`cz_cy`dy`e{ae}bf~bg}bg~dgeheidjejgkhkjlimimjmkqkolqmsmtnvnwpwrxtwoypzrzsyszt{u{t|r|t|v|v|w}v}w}w~wwwyz{{yyyzzy~x~xy~ywuwzy~x~w~zw~w~x}y|x~v}v{u{t{v|w{vzsyrwfkIL_'&2 5  = $57GJMcSVmVZpXZpXZnWZpX[oY\qZ[s[[s]]s\]s[]r[]r]_s]_s^_u_au_au_`u`bwacxbcxaczaezaezbe{dh~bi~difjfjfjfjgkhkjjimgoiokolrkslvmvouqvoupvpxpxqzs{s{r|s|ryszt|u|vzv{v|v|w{w{x}x}w|y|w|w|x}y}x}w}w}w|x|x|v|u|u~w~u}u|u{w|v{u|u{wzu{uzuztzsxsyuxvxuxpu_b{@BR' r(,r-.9FGZRSjVXnVXnWXnXYnXZnYZn[Zo[Zp\\q[\p[\p[]q[]r\]r^^t__t_`t^_t_at`at``uabx`cx`cxadydf{cg}ehfheigkfkflhljminjpioinjnjokqltnvpzoxnxnynxoyr|ssuut}s|u|v|u{s{s{uztyvyxzxzv{u{vzwzvzvzv{u{uzx{xyvytzt{u{tzuzvzuytztzsxswuwtwswsxrwrwrwsvruloVYo56D\\$$-??OPOeUVlVWnXWnXYmYXmYXmZYm[YmZZpZ[oZ[n[]o[\p[]p\]r^^s^_s]_s^_s__s_`u`aw`aw`bxacxcdydezee}de~dffifkekelhnhnjninhmhmjmknlpmtnynzmzmylvmuq{rrtvustvu~s~rr~s}s|u{w{t|tzuxuxsxtxvxvxtxuyuxuxtysysxsxtxvwswqwrwsvqutusuququqvpvpvpunreiKNa*+6GE #56DKK\STiVVnXWmXXlYVlYWmXXmZYmYZpYZoZZm[[m\\oY\n[\o]\p\^p]^r]]s^^t_`v__u``w``waawbbxccxbcvbcxbdzdeyeg}cg}chekfkgjhjhkgljllllljnjqkxlylukrlqnunwoyp{rrrrsttsrsqqsrs{txswqvqvtwuvtvqwpwrvsvqvrwqvqurupvotptququqtpsosotrsosnsnsjo[`y?AQ ) 6 0v,+7DCTPOcTTiVTjVVjVUjVUjWWkXYlWXkWXjXXkZXl[YmXYmYZn\\p]]q\]p\]q[]q\]q_^q^`q^`q^_r__taauaawaawbcvcdxbezceydezdf|cg{dgzfh}hifh}hihihjglgkioiqioimkpkplomonqltmwnynzmzn}p~rtrqrsprs~r{pyoxqxqwoumtntotosotrtpsnqlqmsornqmrlslrmqnqnqnpnnmpkpehQSi12?f$\ #!)=:GNL\UTgUSiTUgSTfTUgVVhWVgVWgVUhXVkYYnYYmXXlYXkZYm[[p[Zo[[n[\n[]o]]n]^n^_m^_n]_p^^q__s_`t^at_cvadvbbsbbtbdxadycdzbe{cf{gg{gg|gh~gifhhifmekgjilikilimkmlmjojqkqjoipjqlsmvnxo{o|p|p|n{n{o|p|p{q|q{p{p{owlqmpnrmrmqnrlpjolqnqlpkojojninjnlnlnmllmhl]byEGY%%0NC 31:HFSRQbSSgRSgSReTTeUTdVSdUUgWUiXUjWVkWXlXWkXWiXXjZXlZWm[Ym[[n\[o[[m\[m\]l\^l[^m]^o^`p]`p\_q^at_as`aqabsabv`btccyadzaeyffzedyef{fg|ff|gg}fiehfhhjghgjgkhlilhlhlimimhlimknlolplrmtmtktkvlvlvmwnxnxnwnwownulqkpkploinjnjnjmlnlnkmjmimimhmimjlikiljkefTXl79G  }6 ,p('/>=ILK\QReSRfUQeURdURbURcUShWTiWThWThWViXUhWVhWWiZWjYVlZYm[Zn[ZnZZm[Zm[\mZ]mZ]m\^n]_o\^n\^p_`t^_s_ar`bs`bu`brbbvbbwbcwcdxbcwccyddzee{dezef|ff}ff}fg{gh|fh|ei~fjfkgjgjhlimhlimjmklkkkjjljniojpkpjojolqipiqjqmplplqjpiojngmgliljljljjjjikhlililikhkgjglgj_`wIK\)*5_!Q $33@EEWPPbURcWPdWQdVRcURcVRiURgWSfYTgWUhXTdWUfVWjXXkZXkZYlYYmYYmZZl[\lZ[mZ[m[\lZ[m[\m\]p^]s`_u_^s^^r^`r^ar_at_`sa`sa`s`auabvabvbcxcdzccyddzddzddzeezfg{df{df}egehgigighghhjgkhjijijjjhjhkjlijhjhjiklkfkdlglkliminiohogngminimhkilhiiiijgjhjjjiighfjgjcgUWm;;I$ D 6)'2>=LKL^RObTPeUQdTRcSSfSQeURdVRdURdVSfXTgWUhVUhVVhVUgVUkWUlYUjZVjZYkZXkZXkZZk]Zp][o\\o\\p\\p_\o^^p\^q\^q]^s^_r__r`_t__u^aw^bw_bwaaxaayaawbcwcdxcdzcdzdf{df{de{dd} fg}fg}ff}ff}fg~ghggggggghhhfieighhigifhghgigjhjhjgkflgkikjlhkhkijiiijhihigifihjhighegdgef\^wGI\+,7l+ ] "31&$+:9DHGUOL\PM^ON_QO`RO^RO_PO`PO`QQbQObSQdTRdURbSRbVRdVTfUVfVUeUUhUUhUVhVWiVWjVWkWWjYXi[XhXYiXZjZZiZ[iZ[nZ[qZ[o[\m\]o\\n\]m\]l\]m\^o\^p]^p__s``v_`t_`t`at_bt^bt``sabtacu`bu`cwbcycbxcbwbdzcdzae{`ey`dwadxceyddycczbc{bdyceycdzcc{bez`ezae{bf|cf|ce~bfbgbgce|cfbg~ag}`e~^e|_d|_d|_d}`b{XZnDET)*3u/ %d  --5AAJLJWNM]MN^PM\OM[OO\OO^PN_OO_QO_QO`SQcVSeRQ`RRaSRbTScVScUTgTTfUTfVUgUUgVWkVWkWWiYXhWXgWXhYYh[YhZXlYYoYZlZ[i\]m[\l[\k\\k\\k\]m\\n]]n]^p]_r]^r^_r^`q]`p\ar^_q_`q^`q_`r`at`buaata`u`cx_bwacxacx_bv`bwaavbcxbdyacybbxadyadxacxbdyabw`bv`bu`bv`bw`cx`cx`bwabvbbz`cy_dz_d}^c}`c{_by^aw]\sNOa45@  O@ !%64?FDSMK\OL]QK\SL]QL\PL]QM_SN_SO_SN_TN`VPbTQbRRcRRcTQdWQfXShWReWScWTeVSeVTgUVhTVgVWfXWeWWgWWhWWgWWiVXlVYkXZiZZiYZkZZl[[l[\m\\n_Zp^[n\]m\]o\\p]]p\]o[]o]_t^_t]^r]^o^_o^_s^_r^_r^_t|_`u_`v__u``vaaw_av_`u`at`bt_`u`ax``x``w`avbcw`bw`av`at`asaav`av_at_`t`av_`t_at_au^aw_`w`av`bv]_sSTg??N##,r. #^+'/=9FKFWQK_PJ_QJ^RM_RN`RM`QM^QN^RN_RN`RO`TOaUPcUPcUObUQcUQeWRdXSdYSdZSdWUfWVfYUeWSdZUdXVeWVgYViYYjXXhXWgYWhYXjZ[lZ[l[Zl\[l[Zm[Zn\Zn\[m][l[[l\]m]]m\]m\]o\]m]^p^_q]]n^\q^^q^_q^_s__u__t`_t__u^_u^_s_`s_`s^_s^^t``v`^v`^u_`u_aua`va_u``s``r`_u__t``ta`t_`t_`t^`s^_t__wa`w``u^`qVYjFHZ--9K9y !3.8E>MOH[PJ`PJ]QL^RL`RLaPM_RM^RM_RMaQNbUNbWN`WO`VPaVQbTPdVQcWRcVRcYRcVTeWSdZScYSfZTdZUfZVhZViZXhXWgXWgXWhXXi[YkZYlZYl\Yk\YlZYn[Ym\Yl\[n[Zn][n^\m]\l\\l\\j\]n]^q^\p^\q]^p\_q]_s^^s_]p`]q_^r^]q^^q^^p^^r^^t^^u_^t`^s_^s^^t__sa^tb^ta^r_^s^_t__s`_r`_q__p`_s_^r_^r_^s`_v`_vZ[oMN^68E% j*P%"(:4@IBSOI]QJ[QJ^RK`SK`QL`SM`SL`RLaSMcVNbWN^VO^VPaWQbUObVOaVPaTPcVPcUReVRcXRbYThXSfYTgZUh[UgZUeXVeXWgXWhWWhZWjZWk[Wk\Wl\Xl[Xm[Xl[Xl\Yo[Zp]Yo]Zn\[m\[l][m\\n\[o][q^]q]]o\^p\^q]]q_\o_]o^]p^]o^^q^\p^]q^]s]]t_\s_]q^]q_]r`^s_]s`]q`]q^]r^^t^^s^]q^]o_]o_]q`\p_\o^\p^]s^[rSQe?>M%&.D ,j+'0>9HKEWQIZSJ^SJ_SK]PK^SL`RLaQLaSLaVN_UN_UOaUPaUO`VN^WN_WNaUOdVPeUPeUReUSeVTfWShWSgWSeYSeZTcWTcXUeZUgXUhXXj[Wi\Vj[Vl[Wm[Wl[Xl[Xm]Wm\Yn\Wm[Xm[Zo]Zo]Yq]Yo\Yn[Yn_[q^[o\[o\\o\\o^\p]\n]\n^\o_\q][r^[q^\q\[q_]s^[p^\o_]p_]t^]r]\n^\m`\p]\s\[r\[q\[p_\q\Zp^Zn^[o][p\[oWReGBQ.,6 \$? 0+7A;OMFWPI[PI[OHZPJ\PK^PK`QKbRLbSJ]TL]TL`SLaTL^SM]VN_XNbWNbUPbTOcSPeSQeTQcVPdWPcWQcVSdVQbWScWTdXSeXQgXTgXTfXTfWTgWUhZWiYWjXVjZUiXWjZVh[WfZWfZVj\Wk[XmZYo[Yo]Vn]Wn]Xm\Ym]YmZXlXYjYYj\Yl]Yk]Yo^Zo^[n\[m]Zm][o][n]Zk]Yn_[n^[o\[o\Zo]Zq[YpZZo[[o\[o\[o][n][p\YqVUiIGW41<  x6 Y "2-:C=KKEULHYKJZLI[MJ[NH[PH\RJ^RI\PJZPK[QJ\QJ[TK\VL\VL]VM^TM^RN_RN`SN`TOaTOaUPaUPaSPbTPaTR`URaVQcWQeVReVRfVRfVSeUTeWTgWThVTgWThVUhWUgXUfYUeZUg\UgYUgWVhWVkYWkYVjZVi[Wh[XhZXhXXgXXj[Ym\Xj\Vj]Wj\YkYXj[Xi[XiZYjZXk[Wk\Xm\Ym[YlYYl[WlZXlYXlYXlYXlXXkYYjZXjWShJHY65B & K 0m!%5/;C>LIFVKIYLHYLHXNGWPGXPHYPI[NIYNJYPJZPIZSJZTK[TK\TK\SK\RM\RM\SL]TM_TN`TO_TO_SO_UO_TP`TP`VPaWPbUQeUQeVQdUScTScVSeUReUSfVSgWShWTgXTgYSfYUeYTgXSfWSeWTfVVhVVgWUfYUf[VhZWhZWgYWhYWjZWh[Vi[VjZVjXVi[VjYViXWjYWlZWlZWlZXkZWjYWj[ViYWkYWlYWkYVkXWjZWhWScLHY97D##+`%A% )72?C?NJDUNEVMFVOGWPGWOGVOIYMHXNIXOKZPIZQIYRJ[RK]QJ\RK]PL[PL\RK^SK^SL_SM_TM^UN^VM_UN`UO`VO_UO_SQdVPdVPbTR`TSbVRbTRdTReVRfXRgYSgYRfYReXScWShWSgXSeWSdVSeWUfWUfXTgZUjZUjZVgXUeWTfXUfZViYVjYUiYUh\UlYVlXVkYVl[WlYWkXViYViZUiZUhXVjXVlYVk[UjZVjXReOIY<9F&$-t6 M '"*72>D=NLCTNDUNEWNFXNGVNGVNFUNGWOHZNGYQHXPIZOJ\OI]OJ\LJZNJ]QJ`SK]PL\RM]TM^UL^UK^RK_TL_TN^RO^QN`SObTObTP_UQ`VO`UQcUQcUO_VPeXQfWQcVP`WQbWQdXQdXRdUSdWReVSeWTeYTfWSgWTiVSfVTeVVgXUiWSfWSfXTfYTeZShYTiXUjWTiYThYTgXTgXThXTjUSdVTgXThXShWSgTQcMIY>:H)&1 B%W %"+61>E7EE=LIASI@RJARKCSLCSLBSMDTMEUMDUKCTMDUNEUNFUMEUOFYLFWLFWNFXPFWOGVMFUMGWNHYLGVPIZQH[PH[PIZPHWOJYNJZOJYRHYRIYQIYRJZSJZRHZTI]RI\PJ[OK\PK\OJ\QJ]SJ^SJ[RJYQJ[RJ^SJ_RL[QJ\RJ]RK^PK^PI\KEVC>L72>($, d2:m  %-*3:3?B:HE=MG@PHAQIAPJ@PKAQKBQKBQJARKBRJCRKCRKCSKCUJDTKEUMEVNDUMDSKESKFSLFUKGVNGXPGXOGWMGWNGUOHVOHXOHXPHXNHXNHXOIXPIYPFZQG\QHZPHXOIYOHYMIZMI\PI]RJZRIXQIYRI[TJ]QJZOHYNH[LJ[KEWF@Q=8F0,7!&  _/4f '!*3+6<7DA;KD=LF>MING@OIAOH@NGAOFANGAOIBPKBQIAPJBQKCRLBQLCQKDRKDRKCRKFUJCUKDTKETIDTJDTJDRLDSNDTLFUIETKETLFTKGULEWMFWMFVMFWNHZMFWMHXLHZLGZOHYNGWPHYQIZOHXOGWPHWKGTCBO?:H5/=($- Z+ .Z  "+&040;=7CE;IG;IH>OI@QI@PF?PGARJ@QI@OGAOIAOHAPIBQKBQKBRJBQICOIDQJDTICSGDUGCSICRKDTKDTLETMFUMEVKEUIESLFVMGXKEULDVMDVMDUMDTMFUKGVLHZMHZNFXNEUMFXNGYPHXOHVNETHAO@MH>OG>PJ@QJ@PI@PHAPIAOJBQKBRLBRKBRIARJBRJCSJCSKASJCTJDTLDSMCSLDSLDSLETLEUMDTMCSNDWNEXLEUMFVLDTLCSMCSNDTLGWLFYMEXNFWOEUNEXMEXKDTHAOD;J94?-*3!& sC >l $'.)360;=4AB8GD;KG>MH@OI@OH@PH?OJAQKARKAQKBQI@RJBSJBRIBQJBRKBRLCSLCRKCQKCRKCRKCRLCSMCRMBRMBUMCUMDRMFTLDTLDSMDSLDTLFWLEWMDVLDULCSJARE>N?9G83?0)4$ ( b50X   "$+%-2,691>=7EB;JF=LG=ME=MH?PI@PI@PJAPH@QI@OIAOHAOGCQJAQKAPIBPGCPHBQIBQK@QL?QKBPIAQIARJBQLBPKCRLDUMDTLCSHCSJCSKBRIAPF>NC:J=6D4/;+'0" &  {M(  !Dp   % )-'24-9:2?@6DA9GDLI>NI=NI@QI@OH@OH@PK@OJ>NH>NH@OIAQJARJ@RK?QL?PIAQJ@OH?OH@OJAPKBQKAUK?SJ>PF?OF=KB9H<4C7/4BA6CB9GB;JBME=KG?LG>LH=MH>OG>OH?OH?OH?PI@RJ>NG>ME?MF?MG>KD;JA8I=5E91?5.8-'1%!*" pH' <` !#& (+#-/'12+54.:60=72?83>93>:3>;3?=4B>6D@8E@8E>8E>7F>5C=5A:4@92>70:2+6.'3)#.#&  zS1{#?b   ##'% (% '#&#&%('"++&//(3/)3-(1+'0*%.)#-'!+$' "  }X6 "=_          wV7  8TqgJ1 -C[uoT;' 0DZo* nXA,(8GWiz~n\L:) "-9DMWez~yvqkcZQF;0%  *8AB=41/-*%     OnCreate FormCreateOnShowFormShowPositionpoScreenCenter LCLVersion2.2.0.4 TToggleBoxVmonitorAnchorSideLeft.ControlOwnerAnchorSideTop.ControlOwnerLeftHeightTopWidthnBorderSpacing.LeftBorderSpacing.TopCaptionMonitorOnChangeVmonitorChangeTabOrder TGroupBoxVSampleGroupBoxLeftHeightcTopWidthnCaptionSample ClientHeightL ClientWidthjTabOrderTButtonSampleTempButtonLeftHeightTopWidth`Caption TemeperatureOnClickSampleTempButtonClickTabOrderTButtonSampleMagButtonLeftHeightTopWidth`Caption MagneticsOnClickSampleMagButtonClickTabOrderTButtonSampleAccelButtonLeftHeightTop5Width`Caption AccelerationsOnClickSampleAccelButtonClickTabOrder TLabeledEdit OpenGLVersionAnchorSideTop.Side asrBottomAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomLeftsHeightTopLWidth%Anchors akLeftakBottomEditLabel.HeightEditLabel.WidthtEditLabel.CaptionOpenGL Version: LabelPositionlpLeftTabOrder TCheckBoxSmoothedCheckBoxLeftHeightTopWidth_CaptionSmoothedChecked State cbCheckedTabOrder TSpinEditDeadbandSpinEditLeftHeightHintDeadbandToplWidthJMaxValueTabOrderValued TPageControlVectorPageControlLeftsHeightITopWidth ActivePage TabSheet2TabIndexTabOrderOnChangeVectorPageControlChange TTabSheet TabSheet1CaptionOverview ClientHeight& ClientWidthTOpenGLControlBubbleOpenGLControlAnchorSideLeft.ControlAltAzOpenGLControlAnchorSideLeft.Side asrBottomAnchorSideTop.Control LevelLabelAnchorSideTop.Side asrBottomLeftjHeightbTopWidthbAutoResizeViewport BorderSpacing.LeftBorderSpacing.Top MultiSampling AlphaBitsOnPaintBubbleOpenGLControlPaintVisibleTLabel LevelLabelAnchorSideLeft.ControlBubbleOpenGLControlAnchorSideLeft.Side asrCenterAnchorSideTop.Control TabSheet1AnchorSideBottom.ControlBubbleOpenGLControlLeftHeightTopWidthNBorderSpacing.TopCaption Zenith levelTOpenGLControlAltAzOpenGLControlAnchorSideLeft.Control TabSheet1AnchorSideTop.Control AltAzLabelAnchorSideTop.Side asrBottomLeftHeightbTopWidthbAutoResizeViewport BorderSpacing.LeftBorderSpacing.Top MultiSampling AlphaBitsOnPaintAltAzOpenGLControlPaintVisibleTLabel AltAzLabelAnchorSideLeft.ControlAltAzOpenGLControlAnchorSideLeft.Side asrCenterAnchorSideTop.Control TabSheet1AnchorSideBottom.ControlAltAzOpenGLControlLeftzHeightTopWidthvBorderSpacing.To pCaptionAltitude, Azimuth TLabeledEdit ValtitudeAnchorSideTop.ControlAltAzOpenGLControlAnchorSideTop.Side asrBottomAnchorSideRight.Side asrBottomAnchorSideBottom.ControlVazimuthLeftLHeightMTopWidthAnchors akTopBorderSpacing.TopBorderSpacing.AroundEditLabel.HeightEditLabel.Width5EditLabel.CaptionAltitude Font.Height LabelPositionlpLeft ParentFontTabOrder TLabeledEditVazimuthAnchorSideTop.Control ValtitudeAnchorSideTop.Side asrBottomAnchorSideRight.Side asrBottomAnchorSideBottom.Side asrBottomLeftLHeightMTopWidthAnchors akTopBorderSpacing.TopBorderSpacing.AroundEditLabel.HeightEditLabel.Width9EditLabel.CaptionAzimuth Font.Height LabelPositionlpLeft ParentFontTabOrderTLabelInitialErrorLabelLeft,Height TopWidthlAutoSize TTabSheet TabSheet2Caption Accelerometer ClientHeight& ClientWidthTButton SetP5ButtonAnchorSideLeft.Control SetP6ButtonAnchorSideTop.Control SetP4ButtonAnchorSideTop.Side asrBottomAnchorSideRight.Control WStringGridAnchorSideBottom.Control SetP6ButtonLeftHeightTopWidth<Anchors akLeftakBottomBorderSpacing.TopBorderSpacing.BottomCaptionSet P5OnClickSetP5ButtonClickTabOrderTButton SetP6ButtonAnchorSideLeft.Control YStringGridAnchorSideLeft.Side asrBottomAnchorSideTop.Control SetP5ButtonAnchorSideTop.Side asrBottomAnchorSideRight.Control WStringGridAnchorSideBottom.Control WStringGridAnchorSideBottom.Side asrBottomLeftHeightTopWidth<Anchors akLeftakBottomBorderSpacing.Left BorderSpacing.TopBorderSpacing.Bottom CaptionSet P6OnClickSetP6ButtonClickTabOrderTButton SetP3ButtonAnchorSideLeft.Control SetP4ButtonAnchorSideTop.Control SetP2ButtonAnchorSideTop.Side asrBottomAnchorSideRight.Control WStringGridAnchorSideBottom.Control SetP4ButtonLeftHeightTopoWidth<Anchors akLeftakBottomBorderSpacing.TopBorderSpacing.BottomCaptionSet P3OnClickSetP3ButtonClickTabOrderTButton SetP1ButtonAnchorSideLeft.Control SetP2ButtonAnchorSideTop.Control WStringGridAnchorSideRight.Control WStringGridAnchorSideBottom.Control SetP2ButtonLeftHeightTop7Width<Anchors akLeftakBottomBorderSpacing.TopBorderSpacing.BottomCaptionSet P1OnClickSetP1ButtonClickTabOrderTButton SetP4ButtonAnchorSideLeft.Control SetP5ButtonAnchorSideTop.Control SetP3ButtonAnchorSideTop.Side asrBottomAnchorSideRight.Control WStringGridAnchorSideBottom.Control SetP5ButtonLeftHeightTopWidth<Anchors akLeftakBottomBorderSpacing.TopBorderSpacing.BottomCaptionSet P4OnClickSetP4ButtonClickTabOrderTButton SetP2ButtonAnchorSideLeft.Control SetP3ButtonAnchorSideTop.Control SetP1ButtonAnchorSideTop.Side asrBottomAnchorSideRight.Control WStringGridAnchorSideBottom.Control SetP3ButtonLeftHeightTopSWidth<Anchors akLeftakBottomBorderSpacing.TopBorderSpacing.BottomCaptionSet P2OnClickSetP2ButtonClickTabOrder TStringGrid YStringGridAnchorSideLeft.Side asrBottomAnchorSideTop.Control YmatrixLabelAnchorSideTop.Side asrBottomAnchorSideRight.Control SetP1ButtonAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomLeftHeightTopWidthBorderSpacing.RightBorderSpacing.BottomColCountRowCount ScrollBarsssNoneTabOrder TStringGrid WStringGridAnchorSideLeft.Control SetP6ButtonAnchorSideLeft.Side asrBottomAnchorSideTop.Control WmatrixLabelAnchorSideTop.Side asrBottomAnchorSideRight.Control XStringGridAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomLeftHeightTopWidthBBorderSpacing.AroundRowCount ScrollBarsssNoneTabOrder TStringGrid XStringGridAnchorSideLeft.Control WStringGridAnchorSideLeft.Side asrBottomAnchorSideTop.Control XmatrixLabelAnchorSideTop.Side asrBottomAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomLefteHeightTopWidthBorderSpacing.LeftBorderSpacing.TopBorderSpacing.RightColCount ScrollBarsssNoneTabOrder TStringGrid AStringGridAnchorSideLeft.Side asrBottomAnchorSideTop.ControlLabel4AnchorSideTop.Side asrBottomAnchorSideRight.Control SetP1ButtonAnchorSideBottom.Control YmatrixLabelLeftHeightYTop WidthBorderSpacing.RightBorderSpacing.BottomColCountRowCount ScrollBarsssNoneTabOrder TLabel XmatrixLabelAnchorSideLeft.Control XStringGridAnchorSideLeft.Side asrCenterAnchorSideTop.Control TabSheet2AnchorSideBottom.Control XStringGridLeftHeightTopWidthCaption(X) Calibration parametersTLabel WmatrixLabelAnchorSideLeft.Control WStringGridAnchorSideLeft.Side asrCenterAnchorSideTop.Control TabSheet2AnchorSideBottom.Control WStringGridLeftHeightTopWidthiCaption(w) Sensor dataTLabel YmatrixLabelAnchorSideLeft.Control YStringGridAnchorSideLeft.Side asrCenterAnchorSideTop.Control TabSheet2AnchorSideBottom.Control YStringGridLeftHeightTopWidthBorderSpacing.AroundCaption)(Y) Known normalized earth gravity vectorTLabelLabel4AnchorSideLeft.Control AStringGridAnchorSideLeft.Side asrCenterAnchorSideTop.Control TabSheet2AnchorSideBottom.Control AStringGridLeftHeightTopWidthAnchors akLeftCaptionAccelerometer dataTLabelWwarningAnchorSideLeft.Control WStringGridAnchorSideTop.Control WStringGridAnchorSideTop.Side asrBottomAnchorSideRight.Control WStringGridAnchorSideRight.Side asrBottomLeftHeightTopWidthBAnchors akTopakLeftakRightAutoSizeBorderSpacing.Top TTabSheet TabSheet3Caption Magnetometer ClientHeight& ClientWidthTLabelLabel5AnchorSideLeft.ControlVmgridAnchorSideLeft.Side asrCenterAnchorSideTop.Control TabSheet3AnchorSideBottom.ControlVmgridLeftKHeightTopWidthAnchors akLeftBorderSpacing.TopCaptionMagnetometer data TStringGridVmgridAnchorSideLeft.Side asrBottomAnchorSideTop.ControlLabel5AnchorSideTop.Side asrBottomLeftHeightTopWidthAnchors BorderSpacing.LeftBorderSpacing.TopBorderSpacing.RightColCountRowCount ScrollBarsssNoneTabOrderTButtonGetMagCalButtonLeftHeightTop3WidthdCaption GetMagCalOnClickGetMagCalButtonClickTabOrderTButtonSetMagCalButtonLeftHeightTopSWidthdCaption SetMagCalOnClickSetMagCalButtonClickTabOrderTOpenGLControlMagXCalOpenGLControlLeftHeightTopXWidth MultiSampling AlphaBitsOnPaintMagXCalOpenGLControlPaintVisibleTOpenGLControlMagYCalOpenGLControlLeftHeightTopXWidth MultiSampling AlphaBitsOnPaintMagYCalOpenGLControlPaintVisibleTOpenGLControlMagZCalOpenGLControlLeftHeightTopXWidth MultiSampling AlphaBitsOnPaintMagZCalOpenGLControlPaintVisibleTLabelLabel1AnchorSideLeft.ControlMagXCalOpenGLControl AnchorSideLeft.Side asrCenterAnchorSideBottom.ControlMagXCalOpenGLControlLeft=HeightTopCWidthVAnchors akLeftakBottomCaption X calibrationTLabelLabel2AnchorSideLeft.ControlMagYCalOpenGLControlAnchorSideLeft.Side asrCenterAnchorSideTop.ControlMagYCalOpenGLControlAnchorSideTop.Side asrBottomAnchorSideBottom.ControlMagYCalOpenGLControlLeftHeightTopCWidthUAnchors akLeftakBottomCaption Y calibrationTLabelLabel3AnchorSideLeft.ControlMagZCalOpenGLControlAnchorSideLeft.Side asrCenterAnchorSideBottom.ControlMagZCalOpenGLControlLeftHeightTopCWidthUAnchors akLeftakBottomCaption Z calibrationTButtonResetMagCalButtonLeftHeightTopWidthdCaption ResetMagCalOnClickResetMagCalButtonClickTabOrderTOpenGLControlMRollcompOpenGLControlLeftHeightTop(Width MultiSampling AlphaBitsVisibleTOpenGLControlMPitchcompOpenGLControlLeftHeightTop&Width MultiSampling AlphaBitsVisibleTOpenGLControlMRollPitchcompOpenGLControlLeftHeightTop&Width MultiSampling AlphaBitsVisible TCheckBoxMagnetoCheckBoxLeftHeightTopWidthUCaptionMagnetoTabOrder TCheckBoxMinMaxCheckBoxLeftHeightTop|WidthOCaptionMinMaxOnChangeMinMaxCheckBoxChangeTabOrder TMemoMemo2AnchorSideTop.ControlMagCalInstructionsLabelAnchorSideTop.Side asrBottomLeftHeight'TopWidthBorderSpacing.Top Lines.StringsI1. Turn off motors and fluorescent lamp that may produce magnetic spikes.K2. Remove magnetic jewellery/belt/knife, and move away from chair and desk.#3. Press the Monitor toggle button.4. Check the MinMax checkbox. 5. Press the ResetMagCal button.F6. Rotate meter to center arrow tip and end in circles (6 directions).7. Uncheck the MinMax checkbox.?8. Press the SetMagCal button to set the values into the meter.H9. Press the GetmagCal button to ensure values were stored in the meter.&10. Unpress the Monitor toggle button.TabOrder TLabelMagCalInstructionsLabelAnchorSideTop.Control TabSheet3LeftHeightTopWidthBorderSpacing.TopCaption&Magnetometer Calibration Instructions: TTabSheet TiltCompPageCaptionTilt Compensated ClientHeight& ClientWidthTOpenGLControlAccelOpenGLControlAnchorSideLeft.Control TabSheet2AnchorSideTop.Control TabSheet2LeftHeightTopWidthAnchors AutoResizeViewport BorderSpacing.Around MultiSampling AlphaBitsOnPaintAccelOpenGLControlPaintVisibleTOpenGLControlM1OpenGLControlLeft HeightTopWidthAnchors MultiSampling AlphaBitsVisibleTMemoMemo1LeftHeightTopWidth Lines.StringsMemo1TabOrderTOpenGLControlM2OpenGLControlAnchorSideLeft.Control TabSheet3AnchorSideTop.Control TabSheet3Left HeightTopWidthAnchors AutoResizeViewport BorderSpacing.Around MultiSampling AlphaBitsVisible TCheckBoxReverseCheckBoxLeft$HeightTopWidthMCaptionReverseTabOrder TTabSheetHardSoftTabSheetCaptionHard/Soft Iron test ClientHeight& ClientWidthTOpenGLControlHardSoftOpenGLControlAnchorSideTop.ControlHardSoftTabSheetLeftHeightTopWidthAnchors akTopBorderSpacing.Top MultiSampling AlphaBits OnMouseDownHardSoftOpenGLControlMouseDown OnMouseMoveHardSoftOpenGLControlMouseMoveOnPaintHardSoftOpenGLControlPaintVisible TToggleBoxHardSoftRecordToggleAnchorSideLeft.ControlHardSoftTabSheetAnchorSideTop.ControlHardSoftTabSheetLX eftHeightHint#Start recording hard/soft iron testTopWidthFBorderSpacing.LeftBorderSpacing.TopCaptionRecordOnChangeHardSoftRecordToggleChangeTabOrderTOpenGLControlMxPlusGLAnchorSideLeft.ControlHardSoftTabSheetLeftHeightTopWidthAnchors akLeftBorderSpacing.Left MultiSampling AlphaBitsOnPaint MxPlusGLPaintVisibleTOpenGLControlMyPlusGLAnchorSideLeft.ControlMxPlusGLAnchorSideLeft.Side asrBottomAnchorSideTop.ControlMxPlusGLLeftHeightTopWidthBorderSpacing.Left MultiSampling AlphaBitsOnPaint MyPlusGLPaintVisibleTOpenGLControlMzPlusGLAnchorSideLeft.ControlMyPlusGLAnchorSideLeft.Side asrBottomAnchorSideTop.ControlMyPlusGLLeft0HeightTopWidthBorderSpacing.Left MultiSampling AlphaBitsOnPaint MzPlusGLPaintVisibleTOpenGLControl MxMinusGLAnchorSideLeft.ControlMxPlusGLAnchorSideTop.ControlMxPlusGLAnchorSideTop.Side asrBottomLeftHeightTopWidthBorderSpacing.Top MultiSampling AlphaBitsOnPaintMxMinusGLPaintVisibleTOpenGLControl MyMinusGLAnchorSideLeft.ControlMyPlusGLAnchorSideTop.ControlMyPlusGLAnchorSideTop.Side asrBottomLeftHeightTopWidthBorderSpacing.Top MultiSampling AlphaBitsOnPaintMyMinusGLPaintVisibleTOpenGLControl MzMinusGLAnchorSideLeft.ControlMzPlusGLAnchorSideTop.ControlMzPlusGLAnchorSideTop.Side asrBottomLeft0HeightTopWidthBorderSpacing.Top MultiSampling AlphaBitsOnPaintMzMinusGLPaintVisible TLabeledEdit HSRecordsAnchorSideLeft.ControlHardSoftRecordToggleAnchorSideTop.ControlHardSoftRecordToggleAnchorSideTop.Side asrBottomLeftyHeightTopWidthFAnchors BorderSpacing.TopEditLabel.HeightEditLabel.Width7EditLabel.CaptionRecords LabelPositionlpLeftTabOrder TLabeledEditHSSavedFileEntryAnchorSideTop.ControlHardSoftRecordToggleLeftyHeightTopWidthGAnchors akTopEditLabel.HeightEditLabel.WidthEditLabel.CaptionFile: LabelPositionlpLeftTabOrder TGroupBox GroupBox1LeftHeightoTopxWidthCaptionCSV ClientHeightX ClientWidthTabOrder TButton HSCreateCSVLeftHeightTopWidthFCaptionExportOnClickHSCreateCSVClickTabOrder TLabeledEdit HSRawFilenameLeftHeightTopWidth(EditLabel.HeightEditLabel.Width:EditLabel.Caption Raw file: LabelPositionlpLeftTabOrder TLabeledEditHSOffsetFilenameLeftHeightTop Width(EditLabel.HeightEditLabel.WidthFEditLabel.Caption Offset file: LabelPositionlpLeftTabOrder TCheckBox ExportMagnetoLeft HeightHintNo header, space separatorTop@WidthhCaption to magnetoChecked State cbCheckedTabOrderTButtonHSViewLeftHeightHintLoad saved file into viewerTopHWidthFCaptionViewEnabledOnClick HSViewClickTabOrder TButton HSSelectViewLeftZHeightTopHWidthKCaption Select viewOnClickHSSelectViewClickTabOrder TCheckBox HSShowRawLeftHeightTopHWidth\CaptionShow rawChecked OnClickHSShowRawClickState cbCheckedTabOrder TCheckBox HSMagnetoLeftHeightTopZWidthUCaptionMagnetoTabOrderTLabel DeadbandlabelAnchorSideLeft.ControlDeadbandSpinEditAnchorSideTop.Side asrBottomAnchorSideBottom.ControlDeadbandSpinEditLeftHeightTopUWidthKAnchors akLeftakBottomBorderSpacing.BottomCaption Deadband: TIdleTimer IdleTimer1EnabledIntervalOnTimerIdleTimer1TimerLeft(TophTTimer HSSampleTimerEnabledIntervaldOnTimerHSSampleTimerTimerLeft(Top TOpenDialog OpenDialog1Left(TopFORMDATA TVectorForm3Warning! All recorded data in meter will be erased!LmxWarning7Cannot erase database while in continuous trigger mode.Select trigger mode = Off,+ or one of the "Every x on the hour" modes.L1xStored record(s) %d recordsStorage capacity Erase time%d to %d seconds %d secondsErrorNo EEPROM found, %d parameters.L6xProgress,Elapsed time of: %d out of %d to %d seconds.Status.Finished erasing meter database in %d seconds.Finished erasing meter database8No reponse. Elapsed time of: %d out of %d to %d seconds.9Erase time too long: (%d seconds) has elapsed, try again.'Elapsed time of : %d out of %d seconds.4%d seconds elapsed, Meter database should be erased.4Database erasure in the meter is being requested ...Erasing meter databaseErasing meter database.L2xL2)Database in the meter is being erased ...8Database erasure command not accepted, please try again.LOld firmware prevents accurate status update, install feature 27 or greater. Erase StatusLZxL0xWinbond Serial Flash W25Q128FVW25Q80BVUnknownTPF0 TFormDLErase FormDLEraseLeftHeightTop/Width BorderIcons BorderStylebsDialogCaptionErase database in meter ClientHeight ClientWidthOnClose FormCloseOnShowFormShowPositionpoMainFormCenter LCLVersion1.6.0.4TButtonEraseAllButtonAnchorSideRight.Control CancelButtonAnchorSideBottom.Control CancelButtonAnchorSideBottom.Side asrBottomLeftHeightTopWidthKAnchors akRightakBottomBorderSpacing.Right Caption Erase allEnabledOnClickEraseAllButtonClickTabOrderTButton CancelButtonAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomLeftDHeightTopWidthKAnchors akRightakBottomBorderSpacing.RightBorderSpacing.BottomCaptionCloseOnClickCancelButtonClickTabOrderTLabel MessageLabelAnchorSideLeft.ControlOwnerAnchorSideTop.ControlOwnerLeftHeightTopWidthBorderSpacing.AroundCaption3Warning! All recorded data in meter will be erased! Font.Height Font.NameSans Font.Style fsBold ParentColor ParentFont TStringGrid StringGrid1AnchorSideLeft.ControlOwnerAnchorSideTop.Control MessageLabelAnchorSideTop.Side asrBottomAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.Control CancelButtonLeftHeightTopWidthAnchors akTopakLeftakRightakBottomBorderSpacing.LeftBorderSpacing.RightBorderSpacing.BottomColCountColumns AlignmenttaRightJustify Title.Caption DefinitionWidth Title.CaptionValueWidth FixedCols FixedRowsRowCountTabOrderTTimerTimer1EnabledOnTimer Timer1Timerleft@topFORMDATA TFormDLEraseSetClockSetting unit clock...LC yy-mm-dd  hh:nn:ssx PauseClockLex ResumeClockLExLcxyy-mm-dd hh:nn:ssCharging0 Reading ...RunningInvalid RTC from device = unknownyy-mm-dd ddd hh:nn:ssTPF0TForm6Form6LeftHeightPTopWidth BorderStylebsSingleCaptionDevice: Real Time Clock setting ClientHeightP ClientWidthConstraints.MinHeightPConstraints.MinWidthOnClose FormCloseOnCreate FormCreateOnHideFormHideOnShowFormShowPositionpoMainFormCenter LCLVersion2.2.4.0TButtonSetDeviceClockAnchorSideRight.Control CloseButtonAnchorSideBottom.Control CloseButtonAnchorSideBottom.Side asrBottomLeftcHeightHint2Copy time from this PC to the SQM Real Time Clock.Top2WidthKAnchors akRightakBottomBorderSpacing.Right CaptionSetOnClickSetDeviceClockClickTabOrderTButtonPauseClockButtonAnchorSideRight.ControlResumClockButtonAnchorSideBottom.ControlResumClockButtonAnchorSideBottom.Side asrBottomLeft;HeightTop2WidthAnchors akRightakBottomCaption||EnabledOnClickPauseClockButtonClickTabOrderVisibleTButtonResumClockButtonAnchorSideRight.ControlSetDeviceClockAnchorSideBottom.ControlSetDeviceClockAnchorSideBottom.Side asrBottomLeftOHeightTop2WidthAnchors akRightakBottomCaption>EnabledOnClickResumClockButtonClickTabOrderVisibleTButton CloseButtonAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomLeftHeightTop2WidthKAnchors akRightakBottomBorderSpacing.RightBorderSpacing.BottomCaptionCloseOnClickCloseButtonClickTabOrder TLabeledEdit UnitClockTextAnchorSideLeft.ControlOwnerAnchorSideLeft.Side asrCenterAnchorSideTop.ControlOwnerLeftHeightTopWidth AlignmenttaCenterBorderSpacing.TopEditLabel.HeightEditLabel.WidthpEditLabel.CaptionUnit clock (UTC):EditLabel.ParentColor LabelPositionlpLeftTabOrder TLabeledEdit UTCClockTextAnchorSideLeft.Control UnitClockTextAnchorSideTop.Control UnitClockTextAnchorSideTop.Side asrBottomLeftHeightTop%Width AlignmenttaCenterBorderSpacing.TopEditLabel.HeightEditLabel.WidthIEditLabel.Caption UTC Clock:EditLabel.ParentColor LabelPositionlpLeftTabOrder TLabeledEdit LocalTimeTextAnchorSideLeft.Control UTCClockTextAnchorSideTop.Control UTCClockTextAnchorSideTop.Side asrBottomLeftHeightTopGWidth AlignmenttaCenterBorderSpacing.TopEditLabel.HeightEditLabel.WidthKEditLabel.Caption Local time:EditLabel.ParentColor LabelPositionlpLeftTabOrder TLabeledEditDifferenceTimeTextAnchorSideLeft.Control LocalTimeTextAnchorSideTop.Control LocalTimeTextAnchorSideTop.Side asrBottomLeftHeightTopiWidth AlignmenttaCenterBorderSpacing.TopEditLabel.HeightEditLabel.WidthKEditLabel.Caption Difference:EditLabel.ParentColor LabelPositionlpLeft ParentFontTabOrderTLabelLabel1AnchorSideLeft.ControlDifferenceIndicatorAnchorSideLeft.Side asrBottomAnchorSideTop.ControlDifferenceTimeTextAnchorSideTop.Side asrCenterLeftHeightTopnWidth8BorderSpacing.LeftCaptionseconds ParentColorTMemoMemo1AnchorSideLeft.ControlOwnerAnchorSideTop.ControlDifferenceTimeTextAnchorSideTop.Side asrBottomAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.ControlSetDeviceClockLeftHeightTopWidthAnchors akTopakLeftakRightakBottomBorderSpacing.TopBorderSpacing.Bottom Lines.Strings[1. Make sure the meter has been plugged in for at least 10 minutes before setting the time.<2. The internal supercapacitor needs some time to charge up.r3. Leave the meter plugged in inyitially for about 30 minutes after the Running indicator is green to fully charge.4. Transfer the meter from the USB computer connection to the battery connection within 30 minutes to maintain the clock circuit voltage.ReadOnly ScrollBarsssAutoVerticalTabOrderTShapeRunningIndicatorAnchorSideLeft.Control UnitClockTextAnchorSideLeft.Side asrBottomAnchorSideTop.Control UnitClockTextAnchorSideTop.Side asrCenterLeftHeightHintConnection statusTopWidthBorderSpacing.Left Brush.ColorclGrayShapestCircleTLabel RunningStatusAnchorSideLeft.ControlRunningIndicatorAnchorSideLeft.Side asrBottomAnchorSideTop.ControlRunningIndicatorAnchorSideTop.Side asrCenterLeftHeightTopWidthaAutoSizeBorderSpacing.LeftCaptionReading ParentColorTShapeDifferenceIndicatorAnchorSideLeft.Control UnitClockTextAnchorSideLeft.Side asrBottomAnchorSideTop.ControlDifferenceTimeTextAnchorSideTop.Side asrCenterLeftHeightHintConnection statusTopnWidthBorderSpacing.Left Brush.ColorclGrayShapestCircleTTimerTimer1EnabledOnTimer Timer1TimerLeftTop(FORMDATATForm6?0V@%.0f°@@@@ Zenith:   Altitude:  Azimuth:  MPSAS: .A.MSASraw# UTC Date & Time,string= count= AltitudeZenithAzimuth# END OF HEADER Field= AltitudeField=  ZenithField= AzimuthField= %s field not foundErrorLines to import =  Record = Error Azimuth field not found.?No Altitude or Zenith field/MSAS= %f, Altitude= %f, Zenith =%f, Azimuth= %f Int3D.zmin =%f Int3D.zmax=%fRetrieved range ASCII:  to EW OrientationPlotterDL Retrieve Raw initiated.Select a datalogging meter-Upgrade the firmware to feature 45 or greaterLmxBusy logging, cannot retrieve!Cannot retrieve database while in continuous trigger mode. Select trigger mode = Off, or one of the "Every x on the hour" modes..rawDL Retrieve RawDL-V-LogDL-Log L8x# PacketLength: %d# NumberOfPackets: %d# END OF HEADERRetrieved record: %d / %dOKError: Partially retrieved  records: 1 to  written to: Retrieved  written to:%s%VectorDLRetrawTest: ERROR! IORESULT: tEnter Time zone information into Header first. Do this by pressing the Header button, then selecting your timezone.@'Time to retieve raw data: %.3f seconds.$DL Raw to .dat conversion initiated.!raw log files|*.raw|All files|*.*.dat+Do you want to overwrite the existing file?Overwrite existing file?# UDM setting:(# UDM setting: DL .raw converted to .dat# PacketLength:# NumberOfPackets:-:yy-mm-ddhh:nn:ss00-00-0000:00:00J%.2fG:@EB;On@3333333@?yyyy-mm-dd"T"hh:nn:ss.zzz";"##0.0;0.00#0.00'File handling error occurred. Details: /'Time to convert raw data: %.3f seconds.DL binary retrieve initiated.DL-V binary retrieveDL binary retrieveDLS binary retrieve%d Packets %d bytes long.xError receiving data:  at record #: ;%d;%d;%0.1f;%0.0f;%d;0;1;%u"There was an error reading meter: >>> Error receiving data <<<Retrieved only  records of  total. Written to:DLRetASCII: ERROR! IORESULT: Operation time: %.3f seconds. LogsDirectory DirectoriesDirectory does not exist!+Select the directory to store the .dat file*TU? ColourScheme/.ucldUpdateColourScheme:#Looking for 4 columns, got 5Colour legend file handling error occurred. Details: On row:range =%f b=%f m=%f b=%f array[%d]=%f %f %f $%sLegend min/max=Retrieved all ASCIIDL Retrieve AllDLS Retrieve All DLRetrieveRange: End record was  , set to "DLRetrieveRange: Start record was  , set to 1.,DLRetrieveRange: Start record >= End record.DL Retrieve cancelled. L4%010.10dx01-01-01 01:01:01yy-mm-dd hh:nn:sspieces.Strings[16]=1)VectoryDLRetRangeASCII: ERROR! IORESULT:  Count: ;%4.2f/Failed: actual count = %d , desired count = %d "DLRetRangeASCII: ERROR! IORESULT: -Time to retieve processed data: %.3f seconds.png. exists! OverwriteCancelPlot image file existsPlot image file (#) exists, user allowed overwriting.+) exists already, user cancelled overwrite.svgThe image has been saved to: Vector plot file savedProblem saving file: -1ShowDots ShowLinesShowGrid%s%[ max]File: %sdoes not exist!%Looking for colour .ucld files here: *.uclddefaultz TPF0TDLRetrieveFormDLRetrieveFormLeft}HeightLTop>Width ActiveControlDLGHeaderButtonAnchors Caption DL Retrieve ClientHeightL ClientWidthConstraints.MinHeightConstraints.MinWidthOnCreate FormCreateOnShowFormShowPositionpoOwnerFormCenter LCLVersion3.0.0.3TButtonDLGHeaderButtonAnchorSideLeft.ControlOwnerAnchorSideTop.ControlOwnerLeftHeight"Hint%Open the file header definition page.TopWidth;BorderSpacing.LeftBorderSpacing.TopCaptionHeaderParentShowHintShowHint TabOrderOnClickDLGHeaderButtonClickTButtonDLRetrieveAllButtonAnchorSideLeft.ControlBlockAnchorSideLeft.Side asrBottomAnchorSideTop.ControlDLGHeaderButtonLeftHeight"Hint-Colect all records via ASCII format (slower).TopWidth\BorderSpacing.LeftCaptionRet. all (ASCII)ParentShowHintShowHint TabOrderOnClickDLRetrieveAllButtonClickTButtonDLCancelRetrieveButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlDLRetrieveAllButtonAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomLeftHeight"HintCancel retrieving records.TopWidthEAnchors akTopakRightBorderSpacing.RightCaptionCancelEnabledParentShowHintShowHint TabOrderOnClickDLCancelRetrieveButtonClickTSynMemoSynMemo1AnchorSideLeft.ControlOwnerAnchorSideTop.ControlRecentFileEditAnchorSideTop.Side asrBottomAnchorSideRight.ControlRecentFileEditAnchorSideRight.Side asrBottomAnchorSideBottom.Side asrBottomCursorcrIBeamLeftHeightPTopWidthBorderSpacing.LeftBorderSpacing.TopAnchors akTopakLeftakRight Font.Height Font.Name Courier New Font.PitchfpFixed Font.QualityfqNonAntialiased ParentColor ParentFontTabOrderGutter.Visible Gutter.Width9Gutter.MouseActions KeystrokesCommandecUpShortCut&CommandecSelUpShortCut& Command ecScrollUpShortCut&@CommandecDownShortCut(Command ecSelDownShortCut( Command ecScrollDownShortCut(@CommandecLeftShortCut%Command ecSelLeftShortCut% Command ecWordLeftShortCut%@Command ecSelWordLeftShortCut%`CommandecRightShortCut'Command ecSelRightShortCut' Command ecWordRightShortCut'@CommandecSelWordRightShortCut'`Command ecPageDownShortCut"Command ecSelPageDownShortCut" Command ecPageBottomShortCut"@CommandecSelPageBottomShortCut"`CommandecPageUpShortCut!Command ecSelPageUpShortCut! Command ecPageTopShortCut!@Command ecSelPageTopShortCut!`Command ecLineStartShortCut$CommandecSelLineStartShortCut$ Command ecEditorTopShortCut$@CommandecSelEditorTopShortCut$`Command ecLineEndShortCut#Command ecSelLineEndShortCut# CommandecEditorBottomShortCut#@CommandecSelEditorBottomShortCut#`Command ecToggleModeShortCut-CommandecCopyShortCut-@CommandecPasteShortCut- Command ecDeleteCharShortCut.CommandecCutShortCut. CommandecDeleteLastCharShortCutCommandecDeleteLastCharShortCut CommandecDeleteLastWordShortCut@CommandecUndoShortCutCommandecRedoShortCutCommand ecLineBreakShortCut Command ecSelectAllShortCutA@CommandecCopyShortCutC@Command ecBlockIndentShortCutI`Command ecLineBreakShortCutM@Command ecInsertLineShortCutN@Command ecDeleteWordShortCutT@CommandP ecBlockUnindentShortCutU`CommandecPasteShortCutV@CommandecCutShortCutX@Command ecDeleteLineShortCutY@Command ecDeleteEOLShortCutY`CommandecUndoShortCutZ@CommandecRedoShortCutZ`Command ecGotoMarker0ShortCut0@Command ecGotoMarker1ShortCut1@Command ecGotoMarker2ShortCut2@Command ecGotoMarker3ShortCut3@Command ecGotoMarker4ShortCut4@Command ecGotoMarker5ShortCut5@Command ecGotoMarker6ShortCut6@Command ecGotoMarker7ShortCut7@Command ecGotoMarker8ShortCut8@Command ecGotoMarker9ShortCut9@Command ecSetMarker0ShortCut0`Command ecSetMarker1ShortCut1`Command ecSetMarker2ShortCut2`Command ecSetMarker3ShortCut3`Command ecSetMarker4ShortCut4`Command ecSetMarker5ShortCut5`Command ecSetMarker6ShortCut6`Command ecSetMarker7ShortCut7`Command ecSetMarker8ShortCut8`Command ecSetMarker9ShortCut9`Command EcFoldLevel1ShortCut1Command EcFoldLevel2ShortCut2Command EcFoldLevel1ShortCut3Command EcFoldLevel1ShortCut4Command EcFoldLevel1ShortCut5Command EcFoldLevel6ShortCut6Command EcFoldLevel7ShortCut7Command EcFoldLevel8ShortCut8Command EcFoldLevel9ShortCut9Command EcFoldLevel0ShortCut0Command EcFoldCurrentShortCut-CommandEcUnFoldCurrentShortCut+CommandEcToggleMarkupWordShortCutMCommandecNormalSelectShortCutN`CommandecColumnSelectShortCutC`Command ecLineSelectShortCutL`CommandecTabShortCut Command ecShiftTabShortCut CommandecMatchBracketShortCutB`Command ecColSelUpShortCut&Command ecColSelDownShortCut(Command ecColSelLeftShortCut%Command ecColSelRightShortCut'CommandecColSelPageDownShortCut"CommandecColSelPageBottomShortCut"CommandecColSelPageUpShortCut!CommandecColSelPageTopShortCut!CommandecColSelLineStartShortCut$CommandecColSelLineEndShortCut#CommandecColSelEditorTopShortCut$CommandecColSelEditorBottomShortCut# MouseActionsMouseTextActionsMouseSelActions Lines.StringsVisibleSpecialChars vscSpace vscTabAtLastReadOnly RightEdge ScrollBarsssAutoVerticalSelectedColor.BackPriority2SelectedColor.ForePriority2SelectedColor.FramePriority2SelectedColor.BoldPriority2SelectedColor.ItalicPriority2SelectedColor.UnderlinePriority2SelectedColor.StrikeOutPriority2TSynGutterPartListSynLeftGutterPartList1TSynGutterMarksSynGutterMarks1Width MouseActionsTSynGutterLineNumberSynGutterLineNumber1Width MouseActionsMarkupInfo.Background clBtnFaceMarkupInfo.ForegroundclNone DigitCountShowOnlyLineNumbersMultiplesOf ZeroStart LeadingZerosTSynGutterChangesSynGutterChanges1Width MouseActions ModifiedColor SavedColorclGreenTSynGutterSeparatorSynGutterSeparator1Width MouseActionsMarkupInfo.BackgroundclWhiteMarkupInfo.ForegroundclGrayTSynGutterCodeFoldingSynGutterCodeFolding1 MouseActionsMarkupInfo.BackgroundclNoneMarkupInfo.ForegroundclGrayMouseActionsExpandedMouseActionsCollapsed TLabeledEditRecentFileEditAnchorSideLeft.ControlDLRetrieveAllButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlOpenRecentFileButtonAnchorSideRight.Control2OpenRecentFileButtonLeft,Height$Top^WidthAnchors akTopakLeftakRightEditLabel.HeightEditLabel.Width.EditLabel.CaptionLogfile:EditLabel.ParentColor LabelPositionlpLeftTabOrderTBitBtnOpenRecentFileButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlLogsDirStatusLabelAnchorSideTop.Side asrBottomAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomLeftHeightHintOpen recently saved logfileTop^WidthAnchors akTopakRightBorderSpacing.TopBorderSpacing.Right Glyph.Data :6BM66( dd@NNoBNN>JJ>JJ>JJ>JJ>JJ>JJ>JJ>JJ>JJ>JJ>JJ>JJBNN@MMpERRzCQQJXWJXWRcaRbaWif\ol\ol\ol`spZljM\[VggVggVggUZXi|yg{xg{xg{xfzwfzwfzwdxudxuatrPa_VggVggVggSWUSXVWggQb`TedYkjYkjYkjSWUSWUYkjUfdWigm}eyweywSWUSWUeywXjg[nlqqUYWUYWv[nk^rp||m|zUYWSWUSWUSWUSWUSWUSWUUYWv`socvs||||eyvcwtcwtcwtdwtcvtcxudxsscxug|ydxs3bxtueyvfzwfzwfzwfyweyvdtr\````UUUOnClickOpenRecentFileButtonClickParentShowHintShowHint TabOrderTabStopTBitBtnOpenAnotherFileButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlSynMemo1AnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomLeftHeightHintOpen another saved logfileTopWidthAnchors akTopakRightBorderSpacing.Right Glyph.Data :6BM66( dd@NNoBNN>JJ>JJ>JJ>JJ>JJ>JJ>JJ>JJ>JJ>JJ>JJ>JJBNN@MMpERRzCQQJXWJXWRcaRbaWif\ol\ol\ol`spZljM\[VggVggVggUZXi|yg{xg{xg{xfzwfzwfzwdxudxuatrPa_VggVggVggSWUSXVWggQb`TedYkjYkjYkjSWUSWUYkjUfdWigm}eyweywSWUSWUeywXjg[nlqqUYWUYWv[nk^rp||m|zUYWSWUSWUSWUSWUSWUSWUUYWv`socvs||||eyvcwtcwtcwtdwtcvtcxudxsscxug|ydxs3bxtueyvfzwfzwfzwfyweyvdtr\````UUUOnClickOpenAnotherFileButtonClickParentShowHintShowHint TabOrderTabStopTButtonRetRangeButtonAnchorSideLeft.ControlDLRetrieveAllButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlDLRetrieveAllButtonLeft/Height$Hint:Collect a range of readings. Must define the record range.TopWidthxBorderSpacing.LeftCaptionRet. Range (ASCII)ParentShowHintShowHint TabOrderOnClickRetRangeButtonClickTEdit RangeStartAnchorSideLeft.ControlRetRangeButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlDLRetrieveAllButtonLeftHeight$HintStart of rangeTopWidth@ AlignmenttaRightJustifyBorderSpacing.LeftParentShowHintShowHint TabOrderTEditRangeEndAnchorSideLeft.ControlToLabelAnchorSideLeft.Side asrBottomAnchorSideTop.ControlDLRetrieveAllButtonLeftHeight$Hint End of range, -1 for last recordTopWidthP AlignmenttaRightJustifyBorderSpacing.LeftParentShowHintShowHint TabOrder TLabelToLabelAnchorSideLeft.Control RangeStartAnchorSideLeft.Side asrBottomAnchorSideTop.Control RangeStartAnchorSideTop.Side asrCenterLeftHeightTopWidth BorderSpacing.LeftCaptionto ParentColorTLabelMaxRecordsLabelAnchorSideLeft.ControlRangeEndAnc horSideLeft.Side asrBottomAnchorSideTop.ControlRangeEndAnchorSideTop.Side asrCenterLeftLHeightTopWidthlBorderSpacing.LeftCaptionMaxRecordsLabel ParentColorTButtonDLRetrieveRawButtonLeftHeightHintBCollect all readings in raw format (faster, but needs converting).TopWidth*Anchors CaptionRawTabOrder VisibleOnClickDLRetrieveRawButtonClickTButtonDLRetConvRawButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlDLRetrieveRawButtonAnchorSideRight.ControlDLRetrieveRawButtonLeftcHeightHintConvert raw file to .dat file.TopWidth*Anchors akTopakRightCaptionConvTabOrder VisibleOnClickDLRetConvRawButtonClickTButtonBlockAnchorSideLeft.ControlDLGHeaderButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlDLRetrieveAllButtonLeftEHeight"Hint0Collect all readings via binary format (faster).TopWidthBorderSpacing.LeftCaptionRetrieve All (bin-fast)ParentShowHintShowHint TabOrder OnClick BlockClick TScrollBox ScrollBox1AnchorSideLeft.ControlOwnerAnchorSideTop.ControlSynMemo1AnchorSideTop.Side asrBottomAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomLeftHeightyTopWidthHorzScrollBar.PageVertScrollBar.PagewAnchors akTopakLeftakRightakBottom ClientHeightw ClientWidth Font.NameCourier 10 Pitch ParentFontTabOrder TPageControl PageControl1AnchorSideLeft.Control ScrollBox1AnchorSideTop.Control ScrollBox1AnchorSideRight.Control ScrollBox1AnchorSideRight.Side asrBottomAnchorSideBottom.Control ScrollBox1AnchorSideBottom.Side asrBottomLeftHeightTopWidth ActivePage TabSheet2Anchors akTopakLeftakRightakBottom ParentFontTabIndexTabOrder TTabSheet TabSheet1CaptionText ClientHeightf ClientWidthTSynMemoSynMemo2AnchorSideLeft.Control TabSheet1AnchorSideTop.Control TabSheet1AnchorSideRight.Control TabSheet1AnchorSideRight.Side asrBottomAnchorSideBottom.Control TabSheet1AnchorSideBottom.Side asrBottomCursorcrIBeamLeftHeightfTopWidthAnchors akTopakLeftakRightakBottom Font.Height Font.Name Courier New Font.PitchfpFixed Font.QualityfqNonAntialiased ParentColor ParentFontTabOrder Gutter.Width9Gutter.MouseActions KeystrokesCommandecUpShortCut&CommandecSelUpShortCut& Command ecScrollUpShortCut&@CommandecDownShortCut(Command ecSelDownShortCut( Command ecScrollDownShortCut(@CommandecLeftShortCut%Command ecSelLeftShortCut% Command ecWordLeftShortCut%@Command ecSelWordLeftShortCut%`CommandecRightShortCut'Command ecSelRightShortCut' Command ecWordRightShortCut'@CommandecSelWordRightShortCut'`Command ecPageDownShortCut"Command ecSelPageDownShortCut" Command ecPageBottomShortCut"@CommandecSelPageBottomShortCut"`CommandecPageUpShortCut!Command ecSelPageUpShortCut! Command ecPageTopShortCut!@Command ecSelPageTopShortCut!`Command ecLineStartShortCut$CommandecSelLineStartShortCut$ Command ecEditorTopShortCut$@CommandecSelEditorTopShortCut$`Command ecLineEndShortCut#Command ecSelLineEndShortCut# CommandecEditorBottomShortCut#@CommandecSelEditorBottomShortCut#`Command ecToggleModeShortCut-CommandecCopyShortCut-@Command ecPasteShortCut- Command ecDeleteCharShortCut.CommandecCutShortCut. CommandecDeleteLastCharShortCutCommandecDeleteLastCharShortCut CommandecDeleteLastWordShortCut@CommandecUndoShortCutCommandecRedoShortCutCommand ecLineBreakShortCut Command ecSelectAllShortCutA@CommandecCopyShortCutC@Command ecBlockIndentShortCutI`Command ecLineBreakShortCutM@Command ecInsertLineShortCutN@Command ecDeleteWordShortCutT@CommandecBlockUnindentShortCutU`CommandecPasteShortCutV@CommandecCutShortCutX@Command ecDeleteLineShortCutY@Command ecDeleteEOLShortCutY`CommandecUndoShortCutZ@CommandecRedoShortCutZ`Command ecGotoMarker0ShortCut0@Command ecGotoMarker1ShortCut1@Command ecGotoMarker2ShortCut2@Command ecGotoMarker3ShortCut3@Command ecGotoMarker4ShortCut4@Command ecGotoMarker5ShortCut5@Command ecGotoMarker6ShortCut6@Command ecGotoMarker7ShortCut7@Command ecGotoMarker8ShortCut8@Command ecGotoMarker9ShortCut9@Command ecSetMarker0ShortCut0`Command ecSetMarker1ShortCut1`Command ecSetMarker2ShortCut2`Command ecSetMarker3ShortCut3`Command ecSetMarker4ShortCut4`Command ecSetMarker5ShortCut5`Command ecSetMarker6ShortCut6`Command ecSetMarker7ShortCut7`Command ecSetMarker8ShortCut8`Command ecSetMarker9ShortCut9`Command EcFoldLevel1ShortCut1Command EcFoldLevel2ShortCut2Command EcFoldLevel1ShortCut3Command EcFoldLevel1ShortCut4Command EcFoldLevel1ShortCut5Command EcFoldLevel6ShortCut6Command EcFoldLevel7ShortCut7Command EcFoldLevel8ShortCut8Command EcFoldLevel9ShortCut9Command EcFoldLevel0ShortCut0Command EcFoldCurrentShortCut-CommandEcUnFoldCurrentShortCut+CommandEcToggleMarkupWordShortCutMCommandecNormalSelectShortCutN`CommandecColumnSelectShortCutC`Command ecLineSelectShortCutL`CommandecTabShortCut Command ecShiftTabShortCut CommandecMatchBracketShortCutB`Command ecColSelUpShortCut&Command ecColSelDownShortCut(Command ecColSelLeftShortCut%Command ecColSelRightShortCut'CommandecColSelPageDownShortCut"CommandecColSelPageBottomShortCut"CommandecColSelPageUpShortCut!CommandecColSelPageTopShortCut!CommandecColSelLineStartShortCut$CommandecColSelLineEndShortCut#CommandecColSelEditorTopShortCut$CommandecColSelEditorBottomShortCut# MouseActionsMouseTextActionsMouseSelActionsVisibleSpecialChars vscSpace vscTabAtLastReadOnly RightEdgeSelectedColor.BackPriority2SelectedColor.ForePriority2SelectedColor.FramePriority2SelectedColor.BoldPriority2SelectedColor.ItalicPriority2SelectedColor.UnderlinePriority2SelectedColor.StrikeOutPriority2TSynGutterPartListSynLeftGutterPartList1TSynGutterMarksSynGutterMarks1Width MouseActionsTSynGutterLineNumberSynGutterLineNumber1Width MouseActionsMarkupInfo.Background clBtnFaceMarkupInfo.ForegroundclNone DigitCountShowOnlyLineNumbersMultiplesOf ZeroStart LeadingZerosTSynGutterChangesSynGutterCha nges1Width MouseActions ModifiedColor SavedColorclGreenTSynGutterSeparatorSynGutterSeparator1Width MouseActionsMarkupInfo.BackgroundclWhiteMarkupInfo.ForegroundclGrayTSynGutterCodeFoldingSynGutterCodeFolding1 MouseActionsMarkupInfo.BackgroundclNoneMarkupInfo.ForegroundclGrayMouseActionsExpandedMouseActionsCollapsed TTabSheet TabSheet2Caption Vector-Plot ClientHeightf ClientWidthOnShow TabSheet2ShowTPanelPanel1AnchorSideLeft.Control LeftSideLabelAnchorSideLeft.Side asrBottomAnchorSideTop.Control NorthLabelAnchorSideTop.Side asrBottomAnchorSideBottom.Control SouthLabelLeftHeightTop1WidthCaptionLoading/Calculating ClientHeight ClientWidthTabOrderTChart VectorChartAnchorSideLeft.ControlPanel1AnchorSideTop.ControlPanel1AnchorSideRight.ControlPanel1AnchorSideRight.Side asrBottomAnchorSideBottom.ControlPanel1AnchorSideBottom.Side asrBottomLeftHeightTopWidthAxisList Grid.Visible Marks.VisibleMarks.LabelBrush.StylebsClearMinors Range.Max? Range.Min Range.UseMax Range.UseMin Title.LabelFont.OrientationTitle.LabelBrush.StylebsClear ZPosition Grid.Visible Alignment calBottom Marks.VisibleMarks.LabelBrush.StylebsClearMinors Range.Max? Range.Min Range.UseMax Range.UseMin Title.LabelBrush.StylebsClear ZPositionFoot.Brush.Color clBtnFaceFoot.Font.ColorclBlue Proportional Title.Brush.Color clBtnFaceTitle.Font.ColorclBlueTitle.Text.StringsTAChart OnAfterDrawVectorChartAfterDrawAlignalClientDoubleBuffered OnMouseMoveVectorChartMouseMoveTColorMapSeriesVectorChartColorMapSeries Extent.XMax@ Extent.XMin Extent.YMax@ Extent.YMinTitleMyTitle ColorSourcePlotColourSource Interpolate StepXStepY OnCalculate"VectorChartColorMapSeriesCalculate TLineSeriesVectorChartLineSeries1Title Messpunkte ZPositionLineTypeltNone Marks.Visible Marks.Format%2:s Marks.StylesmsLabelPointer.Brush.ColorclRedPointer.HorizSizePointer.VertSizePointer.Visible ShowPoints TLineSeriesVectorChartLineSeries2 ZPosition LinePen.ColorclRedTPanelPanel2AnchorSideLeft.ControlPanel3AnchorSideLeft.Side asrBottomLeftHeightfTopWidthAlignalRightAnchors akTopakLeftakRightakBottom BevelOuterbvNone ClientHeightf ClientWidthTabOrderTButtonShowPlotDataButtonAnchorSideLeft.ControlPanel2AnchorSideTop.ControlPanel2LeftHeightTopWidthsBorderSpacing.LeftBorderSpacing.TopCaptionShow Data FileTabOrderOnClickShowPlotDataButtonClickTButton ExportButtonAnchorSideLeft.ControlShowPlotDataButtonAnchorSideTop.ControlShowPlotDataButtonAnchorSideTop.Side asrBottomLeftHeightTop!WidthsBorderSpacing.TopCaption Export imageEnabledTabOrderOnClickExportButtonClick TGroupBoxCursorValueGroupAnchorSideLeft.ControlShowPlotDataButtonAnchorSideTop.ControlPlotSettingsGroupAnchorSideTop.Side asrBottomAnchorSideRight.ControlPanel2AnchorSideRight.Side asrBottomLeftHeight[Top WidthAnchors akTopakLeftakRightBorderSpacing.TopBorderSpacing.RightCaption Cursor value ClientHeightG ClientWidth ParentColor ParentFontTabOrder TStaticText CursorValueAnchorSideLeft.ControlCursorValueGroupAnchorSideTop.ControlCursorValueGroupAnchorSideRight.ControlCursorValueGroupAnchorSideRight.Side 3asrBottomAnchorSideBottom.ControlCursorValueGroupAnchorSideBottom.Side asrBottomLeftHeightGTopWidthAnchors akTopakLeftakRightakBottomCaption/Load data file and point in plot to see cursor.ColorclNone Font.NameCourier 10 Pitch Font.PitchfpFixed ParentFont ParentColorTabOrder TGroupBoxPlotSettingsGroupAnchorSideLeft.ControlShowPlotDataButtonAnchorSideTop.Control ExportButtonAnchorSideTop.Side asrBottomAnchorSideRight.ControlPanel2AnchorSideRight.Side asrBottomLeftHeightTopAWidthAnchors akTopakLeftakRightAutoSize BorderSpacing.TopBorderSpacing.RightCaption Plot settings ClientHeight ClientWidthTabOrder TRadioGroupOrientationSelectAnchorSideLeft.ControlPlotSettingsGroupAnchorSideTop.Control RangeGroupAnchorSideTop.Side asrBottomAnchorSideRight.ControlPlotSettingsGroupAnchorSideRight.Side asrBottomAnchorSideBottom.ControlPlotSettingsGroupAnchorSideBottom.Side asrBottomLeftHeightGTop!WidthAnchors akTopakLeftakRightAutoFill BorderSpacing.AroundCaption OrientationChildSizing.LeftRightSpacingChildSizing.EnlargeHorizontalcrsHomogenousChildResizeChildSizing.EnlargeVerticalcrsHomogenousChildResizeChildSizing.ShrinkHorizontalcrsScaleChildsChildSizing.ShrinkVerticalcrsScaleChildsChildSizing.LayoutcclLeftToRightThenTopToBottomChildSizing.ControlsPerLine ClientHeight3 ClientWidth ItemIndex Items.StringsE-W (Looking up)W-E (Looking down)OnClickOrientationSelectClick ParentColorTabOrder TGroupBox RangeGroupAnchorSideLeft.ControlPlotSettingsGroupAnchorSideTop.ControlColourSchemeGroupAnchorSideTop.Side asrBottomAnchorSideRight.ControlPlotSettingsGroupAnchorSideRight.Side asrBottomLeftHeightTopWidthAnchors akTopakLeftakRightAutoSize BorderSpacing.AroundCaptionRange ClientHeight ClientWidthTabOrder TRadioButtonRangeSchemeRadioAnchorSideLeft.Control RangeGroupAnchorSideTop.Control RangeGroupLeftHeightTopWidthkCaption from schemeChecked TabOrderTabStop OnClickRangeSchemeRadioClick TRadioButtonRangeDatasetRadioAnchorSideLeft.ControlRangeSchemeRadioAnchorSideTop.ControlRangeSchemeRadioAnchorSideTop.Side asrBottomLeftHeightTopWidthiCaption from datasetTabOrderOnClickRangeDatasetRadioClick TRadioButtonRangeManualRadioAnchorSideLeft.ControlRangeDatasetRadioAnchorSideTop.ControlRangeDatasetRadioAnchorSideTop.Side asrBottomLeftHeightTop.WidthlCaption manual entryTabOrderOnClickRangeManualRadioClick TGroupBoxManualEntryGroupAnchorSideTop.Control RangeGroupAnchorSideRight.Control RangeGroupAnchorSideRight.Side asrBottomAnchorSideBottom.Control RangeGroupAnchorSideBottom.Side asrBottomLeftHeightTopWidthaAnchors akTopakRightakBottomCaption Manual entry ClientHeightk ClientWidth_TabOrderVisibleTEditLegendMinEntryAnchorSideLeft.ControlManualEntryGroupAnchorSideTop.ControlManualEntryGroupLeftHeight$TopWidth2BorderSpacing.LeftTabOrder OnEditingDoneLegendMinEntryEditingDoneTButton UpdateButtonAnchorSideLeft.ControlLegendMinEntryAnchorSideTop.ControlLegendMaxEntryAnchorSideTop.Side asrBottomAnchorSideRight.ControlManualEntryGroupAnchorSideRight.Side asrBottomAnchorSideBottom.ControlManualEntryGroupAnchorSideBottom.Side asrBottomLeftHeightTopLWidth[Anchors akTopakLeftakRightBorderSpacing.TopBorderSpacing.BottomCaptionUpdateTabOrderOnClickUpdateButtonClickTEditLegendMaxEntryAnchorSideLeft.C/ontrolLegendMinEntryAnchorSideTop.ControlLegendMinEntryAnchorSideTop.Side asrBottomAnchorSideRight.Side asrBottomLeftHeight$Top&Width2BorderSpacing.TopTabOrder OnEditingDoneLegendMaxEntryEditingDoneTLabel MinValueLabelAnchorSideLeft.ControlLegendMinEntryAnchorSideLeft.Side asrBottomAnchorSideTop.ControlLegendMinEntryAnchorSideTop.Side asrCenterLeft8HeightTop WidthBorderSpacing.AroundCaptionMin ParentColorTLabel MaxValueLabelAnchorSideLeft.ControlLegendMaxEntryAnchorSideLeft.Side asrBottomAnchorSideTop.ControlLegendMaxEntryAnchorSideTop.Side asrCenterLeft8HeightTop/WidthBorderSpacing.AroundCaptionMax ParentColor TGroupBoxDecorationsGroupAnchorSideLeft.ControlPlotSettingsGroupAnchorSideTop.ControlPlotSettingsGroupAnchorSideRight.ControlPlotSettingsGroupAnchorSideRight.Side asrBottomLeftHeightBTopWidthAnchors akTopakLeftakRightAutoSize BorderSpacing.AroundCaption Decorations ClientHeight. ClientWidthTabOrder TCheckBoxShowDotsCheckBoxAnchorSideLeft.ControlDecorationsGroupAnchorSideTop.ControlDecorationsGroupLeftHeightTopWidthYBorderSpacing.LeftCaption Show dotsChecked State cbCheckedTabOrderOnChangeShowDotsCheckBoxChange TCheckBoxShowLinesCheckBoxAnchorSideLeft.ControlShowDotsCheckBoxAnchorSideTop.ControlShowDotsCheckBoxAnchorSideTop.Side asrBottomLeftHeightTopWidthZCaption Show linesTabOrderOnChangeShowLinesCheckBoxChange TCheckBoxMarkPointsCheckBoxAnchorSideLeft.ControlShowDotsCheckBoxAnchorSideLeft.Side asrBottomAnchorSideTop.ControlShowDotsCheckBoxLeftiHeightTopWidthcBorderSpacing.Left Caption Mark pointsTabOrderVisibleOnChangeMarkPointsCheckBoxChange TCheckBoxShowGridCheckBoxAnchorSideLeft.ControlMarkPointsCheckBoxLeftiHeightTopWidthWAnchors akLeftCaption Show gridChecked State cbCheckedTabOrderOnChangeShowGridCheckBoxChange TRadioGroup DataSetSelectAnchorSideLeft.ControlPlotSettingsGroupAnchorSideTop.ControlOrientationSelectAnchorSideTop.Side asrBottomAnchorSideRight.ControlPlotSettingsGroupAnchorSideRight.Side asrBottomLeftHeightCToplWidthAnchors akTopakLeftakRightAutoFill BorderSpacing.LeftBorderSpacing.RightCaptionDatasetChildSizing.LeftRightSpacingChildSizing.EnlargeHorizontalcrsHomogenousChildResizeChildSizing.EnlargeVerticalcrsHomogenousChildResizeChildSizing.ShrinkHorizontalcrsScaleChildsChildSizing.ShrinkVerticalcrsScaleChildsChildSizing.LayoutcclLeftToRightThenTopToBottomChildSizing.ControlsPerLine ClientHeight/ ClientWidth ItemIndex Items.StringsMPSA (averaged)MPSA raw (unaveraged)OnClickDataSetSelectClickTabOrder TGroupBoxColourSchemeGroupAnchorSideLeft.ControlPlotSettingsGroupAnchorSideTop.ControlDecorationsGroupAnchorSideTop.Side asrBottomAnchorSideRight.ControlPlotSettingsGroupAnchorSideRight.Side asrBottomLeftHeight<TopJWidthAnchors akTopakLeftakRightAutoSize BorderSpacing.LeftBorderSpacing.RightBorderSpacing.BottomCaption Colour scheme ClientHeight( ClientWidthTabOrder TComboBoxColourSchemeComboBoxAnchorSideLeft.ControlColourSchemeGroupAnchorSideTop.ControlColourSchemeGroupAnchorSideRight.ControlColourSchemeGroupAnchorSideRight.Side asrBottomAnchorSideBottom.Side asrBottomLeftHeight$TopWidthAnchors akTopakLeftakRightBorderSpacing.LeftBorderSpacing.RightBorderSpacing.Bottom ItemHeightTabOrderTextColourSchemeComboBox OnChangeColourSchemeComboBoxChange TProgressBarCalculatingProgressBarAnchorSideLeft.ControlShowPlotDataButtonAnchorSideLeft.Side asrBottomAnchorSideRight.Side asrBottomLeft}Height TopWidth[BorderSpacing.LeftBorderSpacing.RightStyle pbstMarqueeTabOrderVisible TStaticTextCalculatingTextAnchorSideLeft.ControlCalculatingProgressBarAnchorSideTop.ControlCalculatingProgressBarAnchorSideTop.Side asrBottomAnchorSideRight.ControlCalculatingProgressBarAnchorSideRight.Side asrBottomLeft}HeightTopWidth[ AlignmenttaCenterAnchors akTopakLeftakRightBorderSpacing.TopCaption Calculating Font.ColorclRed Font.Style fsBold ParentFontTabOrderVisibleTLabel NorthLabelAnchorSideLeft.ControlPanel1AnchorSideLeft.Side asrCenterAnchorSideTop.Control PlotFileTitleAnchorSideTop.Side asrBottomLeftHeightTopWidth BorderSpacing.TopCaptionN Font.Height Font.NameSans Font.Style fsBold ParentColor ParentFontTLabel SouthLabelAnchorSideLeft.ControlPanel1AnchorSideLeft.Side asrCenterAnchorSideTop.ControlPanel1AnchorSideTop.Side asrBottomAnchorSideBottom.Side asrBottomLeftHeightTopWidthBorderSpacing.BottomCaptionS Font.Height Font.NameSans Font.Style fsBold ParentColor ParentFontTLabelRightSideLabelAnchorSideLeft.ControlPanel1AnchorSideLeft.Side asrBottomAnchorSideTop.ControlPanel1AnchorSideTop.Side asrCenterAnchorSideRight.Side asrBottomLeftHeightTopWidth BorderSpacing.RightCaptionW Font.Height Font.NameSans Font.Style fsBold ParentColor ParentFontTLabel LeftSideLabelAnchorSideLeft.Control TabSheet2AnchorSideTop.ControlPanel1AnchorSideTop.Side asrCenterLeftHeightTopWidthCaptionE Font.Height Font.NameSans Font.Style fsBold ParentColor ParentFontTPanelPanel3AnchorSideLeft.ControlRightSideLabelAnchorSideLeft.Side asrBottomAnchorSideTop.ControlPanel1AnchorSideBottom.ControlPanel1AnchorSideBottom.Side asrBottomLeftHeightTop1Width<Anchors akTopakLeftakBottom ClientHeight ClientWidth< ParentFontTabOrderTChart LegendChartAnchorSideLeft.ControlPanel3AnchorSideTop.ControlPanel3AnchorSideRight.ControlPanel3AnchorSideRight.Side asrBottomAnchorSideBottom.ControlPanel3AnchorSideBottom.Side asrBottomLeftHeightTopWidth:AxisListIntervals.MaxLength(Arrow.Inverted Inverted Marks.Format%0:.2fMarks.LabelBrush.StylebsClear Marks.Style smsCustomMinors Range.Max@ Range.Min@ Range.UseMax Range.UseMin Title.LabelFont.OrientationTitle.LabelBrush.StylebsClearVisible Alignment calBottomMarks.LabelBrush.StylebsClearMinorsTitle.LabelBrush.StylebsClearFoot.Brush.Color clBtnFaceFoot.Font.ColorclBlueTitle.Brush.Color clBtnFaceTitle.Font.ColorclBlueTitle.Text.StringsTAChartAnchors akTopakLeftakRightakBottomTColorMapSeriesLegendChartColorMapSeries ColorSourceLegendColourSource Interpolate StepXStepY OnCalculate"LegendChartColorMapSeriesCalculate TLineSeriesLegendChartLineSeries TStaticText PlotFileTitleAnchorSideLeft.ControlPanel1AnchorSideTop.Control TabSheet2AnchorSideRight.ControlPanel1AnchorSideRight.Side asrBottomLeftHeightTopWidth AlignmenttaCenterAnchors akTopakLeftakRightBorderSpacing.Top BorderStyle sbsSunkenColor clDefault ParentColorTabOrderTLabelFileDirectoryLabelLeftEHeightITop(WidthTCaptionFile directory: ParentColorTLabelLogsDirStatusLabelAnchorSideTop.Side asrBottomAnchorSideRight.Side asrBottomLeftHeightTopJWidthIAnchors AutoSizeBorderSpacing.TopCaptionStatus of logs directory. ParentColorTButton PlotterButtonAnchorSideLeft.ControlDLGHeaderButtonLeftHeight"Top@WidthKCaptionPlotterTabOrderOnClickPlotterButtonClickTEditLogsDirectoryEditAnchorSideLeft.ControlLogsDirectoryButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlFileDirectoryLabelAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomLeftHeight$Hint Location of logging files.Top(Width+Anchors akTopakLeftakRightBorderSpacing.LeftBorderSpacing.RightParentShowHintShowHint TabOrderOnChangeLogsDirectoryEditChangeTBitBtnLogsDirectoryButtonAnchorSideLeft.ControlResetToLogsDirectoryButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlFileDirectoryLabelLeftHeightHint!Select location of logging files.Top(WidthBorderSpacing.Left Glyph.Data :6BM66( ddSMFe4e4e4e4e4e4e4e4e4e4e4e4e4f5g69HHHxi:PPPPPPPPPPPxEf6IIIh9Ӧ~ңxңxңxңxңxңxңxңxңxӤyѥzf5HHH⛛g8իΜnΜmΜmΜmΜmΜmΜmΜmΜmϞpիf5LLL䡡h8ĩըӤzӤzӤzӤzӤzӤzӤzӤzԧ~ݺf5QQQ夥g7Ҿݺݹܶ۵ڳٲخ׭׭ذɱf5VVV穩f6ݺݺݺݺݺݺݺܷڲٰϸf5[[[鮮g6ܷܷܷܷܷܷܷܷܷڴͶf5___鳳f5۴۴۵۵۵۵۵۵۵ܸϷf4eee뷷f5ӾԿԿԾԾԾӾӾӾӾӾϸe4jjj콽mAf6f6f6f6f6f5f5f5f5e4e4e4h7nnnjjjGGGGGGsss򌌌򌌌򌌌򀀀lllGGGGGGxxxtttrrr8rrr8rrr8mmm8ooo5UUUGGGGGGzzzyyyyyyyyyyyyyyyyyyxxx5GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGOnClickLogsDirectoryButtonClickParentShowHintShowHint TabOrderTBitBtnResetToLogsDirectoryButtonAnchorSideLeft.ControlFileDirectoryLabelAnchorSideLeft.Side asrBottomAnchorSideTop.ControlFileDirectoryLabelLeftHeightHint+Reset location of logging files to default.Top(WidthBorderSpacing.Left Glyph.Data :6BM66( ddN5N5N5O8O8N5N5N5N5N5zYDjƞЦh `HN5mN5N5N5saĝѡԣȟp_N5N5N5@^Fܟٯv lfQ N5tfL l gv ܣywx mewXU?N5)`dKd2mLr lpZ T>O6N7\EpfYlJM<N5z]HlP ~Y|Y,O8N5"N5'XCxVnKZ=F6T<N5 O8N9M7N5N5Q9V@[?T<P9[DW@fLrSgqvdP VAEP9J7aIu^+oX'_I`Jp,;7dS@N51N5$WEL6v^,l:r_,YBbIMLD~XcGQ?P9P9WES@iQ}L}Lta,N7aFa^]LjOO9R@K9N8pY(Z^XfON5'_DqppmmeqAq@[omp}i-P8t`DrsVw?{îîîîîî}t9U<N5YAhKN5EP7znQdоλz_qSN5sN5N5 N5N5$P7hNɃk7v\$[?P7~N5#OnClickResetToLogsDirectoryButtonClickParentShowHintShowHint TabOrder TOpenDialog OpenDialog1Left#Topp TOpenDialog OpenDialog2Left@Topp TChartToolset ChartToolset1LeftTopp TZoomDragToolChartToolset1ZoomDragTool1Shift ssLeft Brush.StylebsClear TPanDragToolChartToolset1PanDragTool1Shift ssRightTListChartSourcePlotColourSourceDataPoints.Strings -1|0|$0000FF|-0.5|0|$C00000| 0|0|$808000|0.5|0|$00C000| 1|0|$00FF00|Sorted LeftToppTListChartSourceLegendColourSourceDataPoints.Strings 0|0|$000000| 10|0|$F0FF00| 20|0|$0000FF|Sorted LeftTopp TIdleTimerHourGlassTimerIntervaldOnTimerHourGlassTimerTimerLeft(ToppFORMDATATDLRetrieveForm TPF0TTextFileViewerFormTextFileViewerFormLeftHeightTopWidthCaptiontext file viewer ClientHeight ClientWidthPositionpoScreenCenter LCLVersion2.3.0.0TSynMemoSynMemo1AnchorSideLeft.ControlOwnerAnchorSideTop.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomCursorcrIBeamLeftHeightTopWidthAnchors akTopakLeftakRightakBottom Font.Height Font.Name Courier New Font.PitchfpFixed Font.QualityfqNonAntialiased ParentColor ParentFontTabOrderGutter.Visible Gutter.Width9Gutter.MouseActions KeystrokesCommandecUpShortCut&CommandecSelUpShortCut& Command ecScrollUpShortCut&@CommandecDownShortCut(Command ecSelDownShortCut( Command ecScrollDownShortCut(@CommandecLeftShortCut%Command ecSelLeftShortCut% Command ecWordLeftShortCut%@Command ecSelWordLeftShortCut%`CommandecRightShortCut'Command ecSelRightShortCut' Command ecWordRightShortCut'@CommandecSelWordRightShortCut'`Command ecPageDownShortCut"Command ecSelPageDownShortCut" Command ecPageBottomShortCut"@CommandecSelPageBottomShortCut"`CommandecPageUpShortCut!Command ecSelPageUpShortCut! Command ecPageTopShortCut!@Command ecSelPageTopShortCut!`Command ecLineStartShortCut$CommandecSelLineStartShortCut$ Command ecEditorTopShortCut$@CommandecSelEditorTopShortCut$`Command ecLineEndShortCut#Command ecSelLineEndShortCut# CommandecEditorBottomShortCut#@CommandecSelEditorBottomShortCut#`Command ecToggleModeShortCut-CommandecCopyShortCut-@CommandecPasteShortCut- Command ecDeleteCharShortCut.CommandecCutShortCut. CommandecDeleteLastCharShortCutCommandecDeleteLastCharShortCut CommandecDeleteLastWordShortCut@CommandecUndoShortCutCommandecRedoShortCutCommand ecLineBreakShortCut Command ecSelectAllShortCutA@CommandecCopyShortCutC@Command ecBlockIndentShortCutI`Command ecLineBreakShortCutM@Command ecInsertLineShortCutN@Command ecDeleteWordShortCutT@CommandecBlockUnindentShortCutU`CommandecPasteShortCutV@CommandecCutShortCutX@Command ecDeleteLineShortCutY@Command ecDeleteEOLShortCutY`CommandecUndoShortCutZ@CommandecRedoShortCutZ`Command ecGotoMarker0ShortCut0@Command ecGotoMarker1ShortCut1@Command ecGotoMarker2ShortCut2@Command ecGotoMarker3ShortCut3@Command ecGotoMarker4ShortCut4@Command ecGotoMarker5ShortCut5@Command ecGotoMarker6ShortCut6@Command ecGotoMarker7ShortCut7@Command ecGotoMarker8ShortCut8@Command ecGotoMarker9ShortCut9@Command ecSetMarker0ShortCut0`Command ecSetMarker1ShortCut1`Command ecSetMarker2ShortCut2`Command ecSetMarker3ShortCut3`Command ecSetMarker4ShortCut4`Command ecSetMarker5ShortCut5`Command ecSetMarker6ShortCut6`Command ecSetMarker7ShortCut7`Command ecSetMarker8ShortCut8`Command ecSetMarker9ShortCut9`Command EcFoldLevel1ShortCut1Command EcFoldLevel2ShortCut2Command EcFoldLevel1ShortCutu3Command EcFoldLevel1ShortCut4Command EcFoldLevel1ShortCut5Command EcFoldLevel6ShortCut6Command EcFoldLevel7ShortCut7Command EcFoldLevel8ShortCut8Command EcFoldLevel9ShortCut9Command EcFoldLevel0ShortCut0Command EcFoldCurrentShortCut-CommandEcUnFoldCurrentShortCut+CommandEcToggleMarkupWordShortCutMCommandecNormalSelectShortCutN`CommandecColumnSelectShortCutC`Command ecLineSelectShortCutL`CommandecTabShortCut Command ecShiftTabShortCut CommandecMatchBracketShortCutB`Command ecColSelUpShortCut&Command ecColSelDownShortCut(Command ecColSelLeftShortCut%Command ecColSelRightShortCut'CommandecColSelPageDownShortCut"CommandecColSelPageBottomShortCut"CommandecColSelPageUpShortCut!CommandecColSelPageTopShortCut!CommandecColSelLineStartShortCut$CommandecColSelLineEndShortCut#CommandecColSelEditorTopShortCut$CommandecColSelEditorBottomShortCut# MouseActionsMouseTextActionsMouseSelActions Lines.StringsVisibleSpecialChars vscSpace vscTabAtLast RightEdge ScrollBars ssAutoBothSelectedColor.BackPriority2SelectedColor.ForePriority2SelectedColor.FramePriority2SelectedColor.BoldPriority2SelectedColor.ItalicPriority2SelectedColor.UnderlinePriority2SelectedColor.StrikeOutPriority2TSynGutterPartListSynLeftGutterPartList1TSynGutterMarksSynGutterMarks1Width MouseActionsTSynGutterLineNumberSynGutterLineNumber1Width MouseActionsMarkupInfo.Background clBtnFaceMarkupInfo.ForegroundclNone DigitCountShowOnlyLineNumbersMultiplesOf ZeroStart LeadingZerosTSynGutterChangesSynGutterChanges1Width MouseActions ModifiedColor SavedColorclGreenTSynGutterSeparatorSynGutterSeparator1Width MouseActionsMarkupInfo.BackgroundclWhiteMarkupInfo.ForegroundclGrayTSynGutterCodeFoldingSynGutterCodeFolding1 MouseActionsMarkupInfo.BackgroundclNoneMarkupInfo.ForegroundclGrayMouseActionsExpandedMouseActionsCollapsedFORMDATATTextFileViewerFormTPF0 TComTermForm ComTermFormLeftHeightTop&WidthCaptionCommunications Terminal ClientHeight ClientWidthConstraints.MinHeightConstraints.MinWidthPositionpoDesktopCenter LCLVersion1.6.4.0TEdit InputEditAnchorSideLeft.ControlLabel1AnchorSideLeft.Side asrBottomAnchorSideRight.Control ClearButtonAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomLeft*HeightTopWidthxAnchors akLeftakRightakBottomBorderSpacing.LeftBorderSpacing.RightBorderSpacing.Bottom OnKeyDownInputEditKeyDownTabOrderTMemo InputMemoAnchorSideLeft.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.Control InputEditLeftHeightaHintSentTop|WidthAnchors akLeftakRightakBottomBorderSpacing.LeftBorderSpacing.RightBorderSpacing.Bottom ScrollBars ssAutoBothTabOrderTMemo OutputMemoAnchorSideLeft.ControlOwnerAnchorSideTop.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.Control InputMemoLeftHeightxHintReceivedTopWidthAnchors akTopakLeftakRightakBottomBorderSpacing.Around ScrollBars ssAutoBothTabOrderTLabelLabel1AnchorSideLeft.ControlOwnerAnchorSideTop.Control InputEditAnchorSideTop.Side asrCenterLeftHeightTopWidth!BorderSpacing.LeftCaptionInput: ParentColorTButton ClearButtonAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomLeftHeightTopWidthKAnchors akRightakBottomBorderSpacing.RightBorderSpacing.BottomCaptionClearOnClickClearButtonClickTabOrderFORMDATA TComTermForm%0.6f%0.0f, DLHeaderPositionPlotter?Vf@%world.topo.bathy.200412.3x800x400.jpg?@@ TPF0 TFormWorldmap FormWorldmapLeftf HeightTop~Width  BorderStylebsDialogCaption Set location ClientHeight ClientWidth OnShowFormShowPositionpoScreenCenter LCLVersion2.0.12.0TImageMapImageAnchorSideLeft.ControlOwnerAnchorSideTop.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomLeftHeightTopWidth Anchors akTopakLeftakRightOnClick MapImageClick OnMouseEnterMapImageMouseEnter OnMouseLeaveMapImageMouseLeave OnMouseMoveMapImageMouseMoveParentShowHint Proportional TButton ApplyButtonAnchorSideLeft.Side asrBottomAnchorSideRight.Control CloseButtonAnchorSideBottom.Side asrCenterLeftlHeightTopWidthKAnchors akRightakBottomBorderSpacing.RightBorderSpacing.BottomCaptionApplyOnClickApplyButtonClickTabOrderTLabel CreditLabelAnchorSideTop.ControlMapImageAnchorSideTop.Side asrBottomAnchorSideRight.ControlMapImageAnchorSideRight.Side asrBottomLeftHeight TopWidthVAnchors akTopakRightBorderSpacing.Right CaptionPhoto credit: NASA Font.Color;;; Font.Height Font.Style fsItalic ParentColor ParentFontTLabel CursorLabelAnchorSideTop.ControlCursorLatitudeAnchorSideTop.Side asrCenterAnchorSideRight.ControlCursorLatitudeLeftwHeightTopWidth.Anchors akTopakRightBorderSpacing.RightCaptionCursor: ParentColorVisibleTButton CloseButtonAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomLeftHeightTopWidthKAnchors akRightakBottomBorderSpacing.RightBorderSpacing.BottomCaptionCloseOnClickCloseButtonClickTabOrderTLabel DesiredLabelAnchorSideTop.ControlDesiredLatitudeEditAnchorSideTop.Side asrCenterAnchorSideRight.ControlDesiredLatitudeEditLeftqHeightTopWidth4Anchors akTopakRightBorderSpacing.RightCaptionDesired: ParentColorTLabel LatitudeLabelAnchorSideLeft.ControlCursorLatitudeAnchorSideLeft.Side asrCenterAnchorSideTop.ControlCursorLatitudeAnchorSideTop.Side asrBottomAnchorSideBottom.ControlCursorLongitudeLeftHeightTopWidth3Anchors akLeftakBottomCaptionLatitude ParentColorTLabelLongitudeLabelAnchorSideLeft.ControlCursorLongitudeAnchorSideLeft.Side asrCenterAnchorSideBottom.ControlCursorLongitudeLeftUHeightTopWidth?Anchors akLeftakBottomCaption Longitude ParentColorTLabel AppliedLabelAnchorSideTop.ControlActualLatitudeEditAnchorSideTop.Side asrCenterAnchorSideRight.ControlActualLatitudeEditLeft{HeightTopWidth*Anchors akTopakRightBorderSpacing.RightCaptionActual: ParentColorTLabelElevationLabelAnchorSideLeft.ControlDesiredElevationEditAnchorSideLeft.Side asrCenterAnchorSideBottom.ControlDesiredElevationEditLeftHeightTopWidth7Anchors akLeftakBottomCaption Elevation ParentColor TLabeledEditDesiredElevationEditAnchorSideBottom.ControlActualElevationEditLeftHeightTopWidthP AlignmenttaRightJustifyAnchors akBottom AutoSelectBorderSpacing.BottomEditLabel.HeightEditLabel.Width EditLabel.CaptionmEditLabel.ParentColor LabelPositionlpRightTabOrderOnChangeDesiredElevationEditChange TLabeledEditActualElevationEditAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomLeftHeightTopWidthP AlignmenttaRightJustifyAnchors akBottom AutoSelectBorderSpacing .BottomEditLabel.HeightEditLabel.Width EditLabel.CaptionmEditLabel.ParentColor LabelPositionlpRightReadOnly TabOrderTabStop TLabeledEditCursorLatitudeAnchorSideRight.Side asrBottomAnchorSideBottom.ControlDesiredLatitudeEditLeftHeightTopWidthx AlignmenttaRightJustifyAnchors akLeftakRightakBottomAutoSizeBorderSpacing.BottomEditLabel.HeightEditLabel.WidthEditLabel.Caption°EditLabel.ParentColor LabelPositionlpRightReadOnly TabOrderVisible TLabeledEditCursorLongitudeAnchorSideRight.Side asrBottomAnchorSideBottom.ControlCursorLatitudeAnchorSideBottom.Side asrBottomLeft8HeightTopWidthx AlignmenttaRightJustifyAnchors akBottomAutoSizeEditLabel.HeightEditLabel.WidthEditLabel.Caption°EditLabel.ParentColor LabelPositionlpRightReadOnly TabOrderVisible TLabeledEditDesiredLatitudeEditAnchorSideLeft.ControlOwnerAnchorSideBottom.ControlActualLatitudeEditLeftHeightTopWidthx AlignmenttaRightJustifyAnchors akBottom AutoSelectBorderSpacing.BottomEditLabel.HeightEditLabel.WidthEditLabel.Caption°EditLabel.ParentColor LabelPositionlpRightTabOrderOnChangeDesiredLatitudeEditChange TLabeledEditActualLatitudeEditAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomLeftHeightTopWidthx AlignmenttaRightJustifyAnchors akBottom AutoSelectBorderSpacing.BottomEditLabel.HeightEditLabel.WidthEditLabel.Caption°EditLabel.ParentColor LabelPositionlpRightReadOnly TabOrderTabStop TLabeledEditActualLongitudeEditAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomLeft8HeightTopWidthx AlignmenttaRightJustifyAnchors akBottom AutoSelectBorderSpacing.BottomEditLabel.HeightEditLabel.WidthEditLabel.Caption°EditLabel.ParentColor LabelPositionlpRightReadOnly TabOrderTabStop TLabeledEditDesiredLongitudeEditAnchorSideLeft.Side asrBottomAnchorSideBottom.ControlDesiredLatitudeEditAnchorSideBottom.Side asrBottomLeft8HeightTopWidthx AlignmenttaRightJustifyAnchors akBottom AutoSelectBorderSpacing.Left EditLabel.HeightEditLabel.WidthEditLabel.Caption°EditLabel.ParentColor LabelPositionlpRightTabOrder OnChangeDesiredLongitudeEditChangeTLabelUsageInstructionsAnchorSideTop.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.Control CloseButtonLeftzHeightTopWidthAnchors akRightakBottomBorderSpacing.BottomCaptionxMove mouse to desired position then click. Or type settings into Desired fields. Press Apply to store position settings. Font.Height Font.NameSans ParentColor ParentFontFORMDATA TFormWorldmapV@ PanelWidth PanelHeighthh:mm DD-mmm yyyySingleFileSelectionMode AccumulateMultiple TimeReferenceLocalSample time (Local)Sample time (UTC)Grid SunTwilight CivilTwilightNauticalTwilightAstronomicalTwilight ClipSunMoonContinuousLineZeroPlotDarknessVisibleSunMoonVoltage TemperaturePlotterSingleSelect the .dat directory TreeViewPathclRed MPSASColorclLime MPSAS2ColorclBlue MPSAS3ColorclBlack MoonColor $000097FFSunColorclTeal CivilColorclNavy NauticalColorAstronmicalColorclAquaSunTwilightColor MPSASWidth MPSAS2Width MPSAS3Width MoonWidthSunWidth CivilWidth NauticalWidthAstronmicalWidthSunTwilightWidth VoltageColor VoltageWidth $00008000TemperatureColorTemperatureWidthColor@ %.2f to %.2fm%.2fm%.2fV%.2f°C%.1f°%.1fsPlotter:/ Local regionLocal time zonePosition.Plotting file: %s yyyy-mm-ddhh:nn:ss.txt SQMReaderProduced by SQM ReaderYearDate/Time,MPSAS dd/mm/yyyy 'File handling error occurred. Details: /ErrorError:  ><LightPollutionMap.log@Error: Latitude  out of range.Latitude Error@Error: Longitude Longitude Error7Incorrect number of fields in record. Expected 3, got: yyyymmddhh:nn:ss.dat#1985# Local timezone:_ETime zone [%s] %s%sin the file:%s %s%sshould not have spaces in name.NTime zone [%s] %s%sin the file:%s %s%sdoes not exist in the timezone database.# SQM serial number:Serial:fTime zone [%s] %s in the config file for this meter [Serial:%s]%s does not exist in timezone database. # Position# SQM firmware version:UTCLocalMSASCountsScaleColor Record typeStd lin. Snow MSAS Snow lin. SunriseDiff%0:3.0fLE/LULRDL%0:3.2f# END OF HEADEREnter timezone.Time zone [%s] does not exist.No MSAS field defined in fileErroryyyy-mm-dd"T"hh:nn:ss.zzzUTC?V'Plotter: Twilight calculation exception2Plotter: PlotFilesStringGridCompareCells exception exists! OverwriteCancelPlot image file existsPlot image file (#) exists, user allowed overwriting.plot image file (+) exists already, user cancelled overwrite.svgpngFile saved to:" Movement of charft using the mouse: - Pan = Right-click then drag. - Zoom window = Draw box from upper-left to lower-right. - Zoom in/out = Scroll-wheel, or two-finger touchpad drag. - Reset size = Left click. Twilight rise/st lines are not enabled unless position is valid. Twilight rise/set colors: - Light Blue =Sunrise/set - Blue = Civil twilight - Navy Blue = Nautical twilight - Black = Astronomical twilight Plot line colors (default) - Black curved line = Moon plot - Orange curved line = Sun plot - Red plot line = Magnitudes per square arcsecond - Green plot line = Temperature - Blue plot line = Voltage Plotter : .txt.dat.logyyyymmdd 0Error trying to get date from selected filename.6Error trying to get date from previous dated filename.2Error trying to get date from next dated filename.Error trying to plot file(s).@bP?0.00kbMbGbTb!Plotter: DialogCentered exceptionFailed getting zones from %s TPF0 TPlotterForm PlotterFormLeftG Height9TopWidthAnchors CaptionPlotter ClientHeight9 ClientWidthConstraints.MinHeight,Constraints.MinWidth Icon.Data B> (( dd !#$#""!  '1;DMU[adeedb`]XRKD=5+!  !.>N^mzsdTC4(  $8Nczp\G2!  4Mg{cI2 +C]yw\A)  0Kk         iI,/Ot          oK,+Lt          % ) ) ( + , . * #!       oJ+$Ek          & / 2 - - 4 4 5 0 ) ( " % ' $ "       jA" 5^   #32$    !     ' . 1 0 1 6 7 5 1 / 0 * * + + ) $ # % $ # - ."    Y2 #Ht  '/ 3 9 >: *    $ & "  #) ) / 4 7 7 9 5 3 58 3 /-+ $ " & + ) + 3 1 ( .$     oA 2]'//. 7)M "C +      ! $  ! ) + . 02 5 4 5 6 7 8 5 3 - & %& % $ & ) ) * 1 9 4 -&#& U+Cq %0/ ' ( & (2 , $      & " ! $ & ) '&+ ) / 5 8 8 89 5 - 2 . % !( *+. 5:9 4 1 2 /,$   g8 $N # 6 "@ ; ! ! !  " "     $' !"# " $' " !& &*3 9 7:; 8 4 : 3 ($+.-,.38 : ; !; 4 6 2("  tD +W   , 6!?#B $  ! " " ! " "   !& $#$$ $&%#$) **1 83: 7 4 5 5 / + ) ,0 * %$ )3=#B "@ 7 < : 1 1 +O$ /`    %&'' %    " !  ! # $ #   !)&"#' "  $')).3 1 1 2 1 - & " $ ( , 0 0,()*5 "A &D8> < 6; ; . U& 3g     && $ !        $(" ! &)' % % !  ! #$#%/7 4 5 4 2 / + ( .3 / 1 5 3,%& ' /$> / 373 * 3 -   Z* 4g   )) $ ! " ! ! !      #  $) %%& %(*+* $ #& ' &(' - 5 6 3 5 512 / 14 // 1 1, %'& (1 * + - * &. + #  ]- 4h   %/. ( !  !       % # " # % % '& ! #)., '&*+ '- ' ' -0 1 66361 0 / -.- ,* '+,+ ((% # #&)' #    ]*  0f  0. # "  " #          #$# " ! " #   ' ( & &), * & ( " # $36 5 571. . -2 / * (),/. (%     "    " "  Y'  +b  (/*  ! !            ! ! ! ! " ! ! # * . ---, ( " ! ! "#" & & ' ,552 . - 0 ,( % % $ % $              U" &Z  $/53,+' & %              ! "'** +/,+- -10* #   #)( # ! %.43 - * % %%$# " ! !     $   !  LQ   ' 12432:40, !   !           (-/00)&' */-*' #  )+ $  "',.+ % ! " "% "  !    !  !    # # " ! CE '2 9?80+-;<5*   ! # !    !       % ),/ ' $ ! !& ' &') ) $   ") $ "# $'( # "!  ") $ ""!       !  !% ' & $   u98u  1 "D+Q2W0W.S6 % (.+ " " "      "      & % % , ) % # # " $ # # % $ "  ! $ ( )& ! $ $ $ '#&& %* $ %'$"##"!    !',+ *$ j/ )e! 6.T0X !D 4>6/4, %(.*% ! " $    !   !%& $)' %+*&%%$##$'*(&& '&+.) "()% $ $' ( ' * ( ( ( # !&&# $"" ! "#$&('%"   W P$ &F +O)N%I!E?=9676*-5.'# " # #     #&)))'&''('&'%%%%)'&(*),-*%)*''))** & & '& # !'($$$  $% $()' % #  B9~  59b;g %I : B'L=7:?9100(% # ! ! %    " $ '())' $ $('# & %&'%%$$ $ &)*)(''&'*)())# #$$""%%#" #   && $'++ ( &'   m/ &a # <9c:h/V ? 4< 5 /:*M4 3 / &     "# #        !*,' #"% #  " " &)($ # "  &'$#) # "&' # "#$% $$# "!  ! " ##"$&&%&*-,)++ $  TG %3 *K@k -W>849=8 )!p              #$#!  ! $ #   % * ( ' %&(&  $% " %'& $ $ # ! "#%$# " "&# ! " & $ !  #()+0* % &+/*& " f)Q / +M *O"G#G$K-P2X0]*V&N&L$HA<==5%# ! "$ !     ##!%'&$#  #&# "$) + +*+,*%%&&)*)()$$%%$%$$ '(%## #.,'',1104- ( )--(& % #  K 5x# A9d4` #J B*R)I'H(Q*V0W-S$JB!H%J?/$&%%' $#%&#%((%)++($"!#'+*%%*-.- ,+)''*.,+-0%&(% !&&'+,(&&% 8#;!5 16777:">#=&%>)&?306"$:3 " q. V  0 (L :f=h1V %C8e.V $H$I)K 8$D*R(M-O)L"C5%(*(% &""6*B*&())+*,-'! "$'+)%#%)+,+ ')+* )-(+/,$%(($*)'),)'),3#>'?!5%;":8#=*3I?H^RRbeZgl_mOHY:=SKKaUQe.2F1  M 6} * $C *P2X 6^4^2X3^,V %K 'J4V %; ; %G)K =!B:++(('$ & #(B$=\*H!6)=*>3/((**%%% &)&$$&&&)-*.,(&&)+,+)),. &*--*+*+ / 5.B%0F,C2G[\midtML_@BWsn}a[nLG[HCUXN^i\ktiyxk|sfwe]nKL^*3C's. T  1 ,M /S 4Y4\1Z.W6d4a3^6_;a9R*C$B*I315$6%3-,*')3$1J,A^+?\-;R1]!7R!3P 4R!74#+A&9L#3C *=)>&< 6"7*3G4;P4=L:;I?@PBCTKK[WXcbdlwt?BF)---.,**/2))(%)3#3A1BBBP@CR"-<#2#4FQ`pQas{u/,B6347"=+B(:QIWorw~XVj'%/ @(h  &46 9-R 4`S;>R9@S26$8!5445 6 62.';,6H$';"%8#8';).?'*=2:K3;LHJ\vvvNG`$+D'C3  3 65 ?8^ 8e8e8c 6a4Z2S ,P)S!5`8DhXSoToUk_r[s|k}q|su~x~Ncv2La9SkC^y>^yL]uR^sS]mHTd/E\)E`'A[3N+GMQgsu>>FI,o 6 -P/U1X3\/V2[:e9f ,Y/W*R'8_>VOpgknzzthg\rp~}EiP{cdz^o\_j&',c" ?  !=0U5\6_6`0X-W:e@k4]6c(Q"G-R6Jreyrry|{dieUmi`f|03< ~4 vR &)G,S0Z3[2Z3^.U+P.U5b1]%K)K(;^1IpPnhtw|c6b|7ay7ayAjTqpx:?NH$g  *.O1Z-V*S-W6a+R'K,P1Z&L&H(G0P1LqZwlopx{fOy/Xt=inPWg!%+ `2{   32W>h;d1Z+X7b-U+P.R,R#F%F#A)G6Rvc~olnsvy|kvxbk}/3; v+A !";3Y$It(Mv=e,V7a1Y-T,R(N'J#B >.M?[a}mmooqtw{nw:?J; R ! 0(HBk>c.P (L6d*R%K'L(J $C #>$@4TEc_{hiilmqux~yGM\!Kc * 7 >,R,N&D$F0\*Q(M*M +H 'D2Q<].Mo]vb{eggklot{}~vRYk"$+ Z)r 3 $D (J&N %H $C $E,S%L'J+J*E&@)@_=WyKfd{e{f}ghkkmqwyz{||\ey+.8 j% 3 8)N5^(Q,Q1T2T3Y,R)K)G)F,F4JhQf`ucwfyh{h}hkkmpqtvxz{~fo48Cz/= # 7(Ld9Ou8Pt-Mr*Hm :[/N4T$Db;VuDUjfxevgxiyizh|klmoqrtvxzz|~lw9?L: H ! 5)I>d7QpK`QgPfUhUgMaG]|J`Vl\q_rbscscvdxfzhzk|mllnqtvvxy{~q{AGW CR#3#@1Q8NmQbXjVi\k]l\lZlZn_qararbqcscudwfyiyl{m}mnortuvxy|~zu~GL^$LZ  +8!=&F"8YIXz]iXhZi[j]l^m]n]m_oapbqbsdtevgwjylzl{n}pqrtuuvz}~}wMRe!) S a 2#>$B$1R4VGUv_iYgZhZi[j]l]l]l_n`oaparcretgvjxiyk{m}o~qqtutty{{{|~yPWj#%. Z$i , 6,IOYvYdZeYeYeZf[iZjZk\l_k_m_n_naqcresguhwhxjym{n}n~oqttvwxyy{|~yQWk#'/ ^ 'm)-D3D`Q^{ZeZf~Xf~Xe[f[gZhZi\j_k^l]m^nbpcrdsdteuiwiwjxl{l}n~pstuuvxxzy{wSZn&)2 b"(p !,<9H^L[uTb|Xd~Xe~Xf~YfZf\f\h\h]h^j^l`manandpererethvhvivkxl{n|o}psttuwxzz{}~xRZn&)2 e$*s$4=OLYoXf}Wd}Yd~XeXfYfZf]g]h]g^g^j_kblelbmdpfpfqfshuhvivkwmynzn{o}rsspuvwy{||}xRYm%(1 e$+t  )8>QKVmSbzWc}[c|[d~[eZf[f]g]g\g]h^j_jbjekdmdpfogofrgrhtiwjxmxnxnzn|p~rstuuwyz{{u}SWl%(1 c#,v (9>OMTlV_zX`{Yb{Za|Zb~[c]d~\dZfZg\h]i_ibicjakcmfnfodpdqfshtiujwjvlyn|n|o~qrsuvxyy{|}r{NTg"%- b",v  )9>QMVmTazUb}Wb}Yb}Zb{Zby\dz[d~Ze~[f}]f}^g`hbibiakakbmdpfpepfrfsfuhwjwkyl{m|n}o~qsttuwyzz|}}qzLSe"$- _ +t '8DVPXlU`tV^tV]uY^w[`yX`wYaw[av[av[cy\dx\d|^d}`e|^g]g^g_g_hbjckelemdmengnhohrgsjsktktmtnumvnwqyqzq{s|t|t~v~vvvwwxxxz{z{}}~~~}{}~}||osRVj),6 ~3 = "$.<@SPUmV\qW\qV]tX_wZ`wX`vY`u[at\at]au[av[bx]cx^cw]dx^f{^f~_g`h}ahcidjcleldjflgngohqiqiqhqjrmrosounvpwpyqzq{q|t|u~uttwwvvwyz{|}}}{|}~~|}$~~~}~}{|~~{y{~|zzzyjoKNb$%/ r* 2 '6:JMQfV\pV]rW\rX]sX^tY_sZ_tZ_t[_u]`w]aw[bw[bx]by^by]cx^d{_f}_g{`f}bgchcicjdjdkemfneogphpipiqkqlqmrmtnvmwnxpxqyrzs{s|s|r~t~uvwvvwwxz{zz|||}{}}}~~~~|~}~~}|||~~}{zyyyz|{zy{v|chBEU% b!(q14@HM^TYmV\rW[rX[rX\sZ^rZ]sZ]sZ^t[`u[`uZbxZbx\aw^cy^by_cy`dz`fz`f|bf}cfbgahcickdleldmfngnhnhphphpjqmsksltmumuouqxqyqyrzr{s{t|u}w~v~vvvwxyyy{{zzz}}|}}}}}z|}}~|}}}}|{{|z{{zzxwxzxy~y}x~x~wqw[_u8;ITa+,7BGXQViVZpWZtXZtZ[rY\r[]rZ^rY^rY_sX`sXaxZ`w\_s]bu`cy`by`byaezae{bezbe|bf~ahbhcidjejekelfkgkhnhnfohplqjrlrlrksmspvowpxqxsyqzrzt{u|u|u}v~wvwxyyxyxxy{{|}{zzzxzz{|{zz{{zzzzyxxy{yw}x|y}v~w}w|v{v{t|lqRUj01=EO#$-;?ONSgUYqVZsXZrZ[qWZpY\pY^sX^tZ]s[_sZ^tZ^u\_s[`p_bt`ax`ay`cz_cy`dy`e{ae}bf~bg}bg~dgeheidjejgkhkjlimimjmkqkolqmsmtnvnwpwrxtwoypzrzsyszt{u{t|r|t|v|v|w}v}w}w~wwwyz{{yyyzzy~x~xy~ywuwzy~x~w~zw~w~x}y|x~v}v{u{t{v|w{vzsyrwfkIL_'&2 5  = $57GJMcSVmVZpXZpXZnWZpX[oY\qZ[s[[s]]s\]s[]r[]r]_s]_s^_u_au_au_`u`bwacxbcxaczaezaezbe{dh~bi~difjfjfjfjgkhkjjimgoiokolrkslvmvouqvoupvpxpxqzs{s{r|s|ryszt|u|vzv{v|v|w{w{x}x}w|y|w|w|x}y}x}w}w}w|x|x|v|u|u~w~u}u|u{w|v{u|u{wzu{uzuztzsxsyuxvxuxpu_b{@BR' r(,r-.9FGZRSjVXnVXnWXnXYnXZnYZn[Zo[Zp\\q[\p[\p[]q[]r\]r^^t__t_`t^_t_at`at``uabx`cx`cxadydf{cg}ehfheigkfkflhljminjpioinjnjokqltnvpzoxnxnynxoyr|ssuut}s|u|v|u{s{s{uztyvyxzxzv{u{vzwzvzvzv{u{uzx{xyvytzt{u{tzuzvzuytztzsxswuwtwswsxrwrwrwsvruloVYo56D\\$$-??OPOeUVlVWnXWnXYmYXmYXmZYm[YmZZpZ[oZ[n[]o[\p[]p\]r^^s^_s]_s^_s__s_`u`aw`aw`bxacxcdydezee}de~dffifkekelhnhnjninhmhmjmknlpmtnynzmzmylvmuq{rrtvustvu~s~rr~s}s|u{w{t|tzuxuxsxtxvxvxtxuyuxuxtysysxsxtxvwswqwrwsvqutusuququqvpvpvpunreiKNa*+6GE #56DKK\STiVVnXWmXXlYVlYWmXXmZYmYZpYZoZZm[[m\\oY\n[\o]\p\^p]^r]]s^^t_`v__u``w``waawbbxccxbcvbcxbdzdeyeg}cg}chekfkgjhjhkgljllllljnjqkxlylukrlqnunwoyp{rrrrsttsrsqqsrs{txswqvqvtwuvtvqwpwrvsvqvrwqvqurupvotptququqtpsosotrsosnsnsjo[`y?AQ ) 6 0v,+7DCTPOcTTiVTjVVjVUjVUjWWkXYlWXkWXjXXkZXl[YmXYmYZn\\p]]q\]p\]q[]q\]q_^q^`q^`q^_r__taauaawaawbcvcdxbezceydezdf|cg{dgzfh}hifh}hihihjglgkioiqioimkpkplomonqltmwnynzmzn}p~rtrqrsprs~r{pyoxqxqwoumtntotosotrtpsnqlqmsornqmrlslrmqnqnqnpnnmpkpehQSi12?f$\ #!)=:GNL\UTgUSiTUgSTfTUgVVhWVgVWgVUhXVkYYnYYmXXlYXkZYm[[p[Zo[[n[\n[]o]]n]^n^_m^_n]_p^^q__s_`t^at_cvadvbbsbbtbdxadycdzbe{cf{gg{gg|gh~gifhhifmekgjilikilimkmlmjojqkqjoipjqlsmvnxo{o|p|p|n{n{o|p|p{q|q{p{p{owlqmpnrmrmqnrlpjolqnqlpkojojninjnlnlnmllmhl]byEGY%%0NC 31:HFSRQbSSgRSgSReTTeUTdVSdUUgWUiXUjWVkWXlXWkXWiXXjZXlZWm[Ym[[n\[o[[m\[m\]l\^l[^m]^o^`p]`p\_q^at_as`aqabsabv`btccyadzaeyffzedyef{fg|ff|gg}fiehfhhjghgjgkhlilhlhlimimhlimknlolplrmtmtktkvlvlvmwnxnxnwnwownulqkpkploinjnjnjmlnlnkmjmimimhmimjlikiljkefTXl79G  }6 ,p('/>=ILK\QReSRfUQeURdURbURcUShWTiWThWThWViXUhWVhWWiZWjYVlZYm[Zn[ZnZZm[Zm[\mZ]mZ]m\^n]_o\^n\^p_`t^_s_ar`bs`bu`brbbvbbwbcwcdxbcwccyddzee{dezef|ff}ff}fg{gh|fh|ei~fjfkgjgjhlimhlimjmklkkkjjljniojpkpjojolqipiqjqmplplqjpiojngmgliljljljjjjikhlililikhkgjglgj_`wIK\)*5_!Q $33@EEWPPbURcWPdWQdVRcURcVRiURgWSfYTgWUhXTdWUfVWjXXkZXkZYlYYmYYmZZl[\lZ[mZ[m[\lZ[m[\m\]p^]s`_u_^s^^r^`r^ar_at_`sa`sa`s`auabvabvbcxcdzccyddzddzddzeezfg{df{df}egehgigighghhjgkhjijijjjhjhkjlijhjhjiklkfkdlglkliminiohogngminimhkilhiiiijgjhjjjiighfjgjcgUWm;;I$ D 6)'2>=LKL^RObTPeUQdTRcSSfSQeURdVRdURdVSfXTgWUhVUhVVhVUgVUkWUlYUjZVjZYkZXkZXkZZk]Zp][o\\o\\p\\p_\o^^p\^q\^q]^s^_r__r`_t__u^aw^bw_bwaaxaayaaw bcwcdxcdzcdzdf{df{de{dd}fg}fg}ff}ff}fg~ghggggggghhhfieighhigifhghgigjhjhjgkflgkikjlhkhkijiiijhihigifihjhighegdgef\^wGI\+,7l+ ] "31&$+:9DHGUOL\PM^ON_QO`RO^RO_PO`PO`QQbQObSQdTRdURbSRbVRdVTfUVfVUeUUhUUhUVhVWiVWjVWkWWjYXi[XhXYiXZjZZiZ[iZ[nZ[qZ[o[\m\]o\\n\]m\]l\]m\^o\^p]^p__s``v_`t_`t`at_bt^bt``sabtacu`bu`cwbcycbxcbwbdzcdzae{`ey`dwadxceyddycczbc{bdyceycdzcc{bez`ezae{bf|cf|ce~bfbgbgce|cfbg~ag}`e~^e|_d|_d|_d}`b{XZnDET)*3u/ %d  --5AAJLJWNM]MN^PM\OM[OO\OO^PN_OO_QO_QO`SQcVSeRQ`RRaSRbTScVScUTgTTfUTfVUgUUgVWkVWkWWiYXhWXgWXhYYh[YhZXlYYoYZlZ[i\]m[\l[\k\\k\\k\]m\\n]]n]^p]_r]^r^_r^`q]`p\ar^_q_`q^`q_`r`at`buaata`u`cx_bwacxacx_bv`bwaavbcxbdyacybbxadyadxacxbdyabw`bv`bu`bv`bw`cx`cx`bwabvbbz`cy_dz_d}^c}`c{_by^aw]\sNOa45@  O@ !%64?FDSMK\OL]QK\SL]QL\PL]QM_SN_SO_SN_TN`VPbTQbRRcRRcTQdWQfXShWReWScWTeVSeVTgUVhTVgVWfXWeWWgWWhWWgWWiVXlVYkXZiZZiYZkZZl[[l[\m\\n_Zp^[n\]m\]o\\p]]p\]o[]o]_t|^_t]^r]^o^_o^_s^_r^_r^_t_`u_`v__u``vaaw_av_`u`at`bt_`u`ax``x``w`avbcw`bw`av`at`asaav`av_at_`t`av_`t_at_au^aw_`w`av`bv]_sSTg??N##,r. #^+'/=9FKFWQK_PJ_QJ^RM_RN`RM`QM^QN^RN_RN`RO`TOaUPcUPcUObUQcUQeWRdXSdYSdZSdWUfWVfYUeWSdZUdXVeWVgYViYYjXXhXWgYWhYXjZ[lZ[l[Zl\[l[Zm[Zn\Zn\[m][l[[l\]m]]m\]m\]o\]m]^p^_q]]n^\q^^q^_q^_s__u__t`_t__u^_u^_s_`s_`s^_s^^t``v`^v`^u_`u_aua`va_u``s``r`_u__t``ta`t_`t_`t^`s^_t__wa`w``u^`qVYjFHZ--9K9y !3.8E>MOH[PJ`PJ]QL^RL`RLaPM_RM^RM_RMaQNbUNbWN`WO`VPaVQbTPdVQcWRcVRcYRcVTeWSdZScYSfZTdZUfZVhZViZXhXWgXWgXWhXXi[YkZYlZYl\Yk\YlZYn[Ym\Yl\[n[Zn][n^\m]\l\\l\\j\]n]^q^\p^\q]^p\_q]_s^^s_]p`]q_^r^]q^^q^^p^^r^^t^^u_^t`^s_^s^^t__sa^tb^ta^r_^s^_t__s`_r`_q__p`_s_^r_^r_^s`_v`_vZ[oMN^68E% j*P%"(:4@IBSOI]QJ[QJ^RK`SK`QL`SM`SL`RLaSMcVNbWN^VO^VPaWQbUObVOaVPaTPcVPcUReVRcXRbYThXSfYTgZUh[UgZUeXVeXWgXWhWWhZWjZWk[Wk\Wl\Xl[Xm[Xl[Xl\Yo[Zp]Yo]Zn\[m\[l][m\\n\[o][q^]q]]o\^p\^q]]q_\o_]o^]p^]o^^q^\p^]q^]s]]t_\s_]q^]q_]r`^s_]s`]q`]q^]r^^t^^s^]q^]o_]o_]q`\p_\o^\p^]s^[rSQe?>M%&.D ,j+'0>9HKEWQIZSJ^SJ_SK]PK^SL`RLaQLaSLaVN_UN_UOaUPaUO`VN^WN_WNaUOdVPeUPeUReUSeVTfWShWSgWSeYSeZTcWTcXUeZUgXUhXXj[Wi\Vj[Vl[Wm[Wl[Xl[Xm]Wm\Yn\Wm[Xm[Zo]Zo]Yq]Yo\Yn[Yn_[q^[o\[o\\o\\o^\p]\n]\n^\o_\q][r^[q^\q\[q_]s^[p^\o_]p_]t^]r]\n^\m`\p]\s\[r\[q\[p_\q\Zp^Zn^[o][p\[oWReGBQ.,6 \$? 0+7A;OMFWPI[PI[OHZPJ\PK^PK`QKbRLbSJ]TL]TL`SLaTL^SM]VN_XNbWNbUPbTOcSPeSQeTQcVPdWPcWQcVSdVQbWScWTdXSeXQgXTgXTfXTfWTgWUhZWiYWjXVjZUiXWjZVh[WfZWfZVj\Wk[XmZYo[Yo]Vn]Wn]Xm\Ym]YmZXlXYjYYj\Yl]Yk]Yo^Zo^[n\[m]Zm][o][n]Zk]Yn_[n^[o\[o\Zo]Zq[YpZZo[[o\[o\[o][n][p\YqVUiIGW41<  x6 Y "2-:C=KKEULHYKJZLI[MJ[NH[PH\RJ^RI\PJZPK[QJ\QJ[TK\VL\VL]VM^TM^RN_RN`SN`TOaTOaUPaUPaSPbTPaTR`URaVQcWQeVReVRfVRfVSeUTeWTgWThVTgWThVUhWUgXUfYUeZUg\UgYUgWVhWVkYWkYVjZVi[Wh[XhZXhXXgXXj[Ym\Xj\Vj]Wj\YkYXj[Xi[XiZYjZXk[Wk\Xm\Ym[YlYYl[WlZXlYXlYXlYXlXXkYYjZXjWShJHY65B & K 0m!%5/;C>LIFVKIYLHYLHXNGWPGXPHYPI[NIYNJYPJZPIZSJZTK[TK\TK\SK\RM\RM\SL]TM_TN`TO_TO_SO_UO_TP`TP`VPaWPbUQeUQeVQdUScTScVSeUReUSfVSgWShWTgXTgYSfYUeYTgXSfWSeWTfVVhVVgWUfYUf[VhZWhZWgYWhYWjZWh[Vi[VjZVjXVi[VjYViXWjYWlZWlZWlZXkZWjYWj[ViYWkYWlYWkYVkXWjZWhWScLHY97D##+`%A% )72?C?NJDUNEVMFVOGWPGWOGVOIYMHXNIXOKZPIZQIYRJ[RK]QJ\RK]PL[PL\RK^SK^SL_SM_TM^UN^VM_UN`UO`VO_UO_SQdVPdVPbTR`TSbVRbTRdTReVRfXRgYSgYRfYReXScWShWSgXSeWSdVSeWUfWUfXTgZUjZUjZVgXUeWTfXUfZViYVjYUiYUh\UlYVlXVkYVl[WlYWkXViYViZUiZUhXVjXVlYVk[UjZVjXReOIY<9F&$-t6 M '"*72>D=NLCTNDUNEWNFXNGVNGVNFUNGWOHZNGYQHXPIZOJ\OI]OJ\LJZNJ]QJ`SK]PL\RM]TM^UL^UK^RK_TL_TN^RO^QN`SObTObTP_UQ`VO`UQcUQcUO_VPeXQfWQcVP`WQbWQdXQdXRdUSdWReVSeWTeYTfWSgWTiVSfVTeVVgXUiWSfWSfXTfYTeZShYTiXUjWTiYThYTgXTgXThXTjUSdVTgXThXShWSgTQcMIY>:H)&1 B%W %"+61>E7EE=LIASI@RJARKCSLCSLBSMDTMEUMDUKCTMDUNEUNFUMEUOFYLFWLFWNFXPFWOGVMFUMGWNHYLGVPIZQH[PH[PIZPHWOJYNJZOJYRHYRIYQIYRJZSJZRHZTI]RI\PJ[OK\PK\OJ\QJ]SJ^SJ[RJYQJ[RJ^SJ_RL[QJ\RJ]RK^PK^PI\KEVC>L72>($, d2:m  %-*3:3?B:HE=MG@PHAQIAPJ@PKAQKBQKBQJARKBRJCRKCRKCSKCUJDTKEUMEVNDUMDSKESKFSLFUKGVNGXPGXOGWMGWNGUOHVOHXOHXPHXNHXNHXOIXPIYPFZQG\QHZPHXOIYOHYMIZMI\PI]RJZRIXQIYRI[TJ]QJZOHYNH[LJ[KEWF@Q=8F0,7!&  _/4f '!*3+6<7DA;KD=LF>MING@OIAOH@NGAOFANGAOIBPKBQIAPJBQKCRLBQLCQKDRKDRKCRKFUJCUKDTKETIDTJDTJDRLDSNDTLFUIETKETLFTKGULEWMFWMFVMFWNHZMFWMHXLHZLGZOHYNGWPHYQIZOHXOGWPHWKGTCBO?:H5/=($- Z+ .Z  "+&040;=7CE;IG;IH>OI@QI@PF?PGARJ@QI@OGAOIAOHAPIBQKBQKBRJBQICOIDQJDTICSGDUGCSICRKDTKDTLETMFUMEVKEUIESLFVMGXKEULDVMDVMDUMDTMFUKGVLHZMHZNFXNEUMFXNGYPHXOHVNETHAO@MH>OG>PJ@QJ@PI@PHAPIAOJBQKBRLBRKBRIARJBRJCSJCSKASJCTJDTLDSMCSLDSLDSLETLEUMDTMCSNDWNEXLEUMFVLDTLCSMCSNDTLGWLFYMEXNFWOEUNEXMEXKDTHAOD;J94?-*3!& sC >l $'.)360;=4AB8GD;KG>MH@OI@OH@PH?OJAQKARKAQKBQI@RJBSJBRIBQJBRKBRLCSLCRKCQKCRKCRKCRLCSMCRMBRMBUMCUMDRMFTLDTLDSMDSLDTLFWLEWMDVLDULCSJARE>N?9G83?0)4$ ( b50X   "$+%-2,691>=7EB;JF=LG=ME=MH?PI@PI@PJAPH@QI@OIAOHAOGCQJAQKAPIBPGCPHBQIBQK@QL?QKBPIAQIARJBQLBPKCRLDUMDTLCSHCSJCSKBRIAPF>NC:J=6D4/;+'0" &  {M(  !Dp   % )-'24-9:2?@6DA9GDLI>NI=NI@QI@OH@OH@PK@OJ>NH>NH@OIAQJARJ@RK?QL?PIAQJ@OH?OH@OJAPKBQKAUK?SJ>PF?OF=KB9H<4C7/4BA6CB9GB;JBME=KG?LG>LH=MH>OG>OH?OH?OH?PI@RJ>NG>ME?MF?MG>KD;JA8I=5E91?5.8-'1%!*" pH' <` !#& (+#-/'12+54.:60=72?83>93>:3>;3?=4B>6D@8E@8E>8E>7F>5C=5A:4@92>70:2+6.'3)#.#&  zS1#?b   ##'% (% '#&#&%('"++&//(3/)3-(1+'0*%.)#-'!+$' "  }X6 "=_          wV7  8TqgJ1 -C[uoT;' 0DZo" nXA,(8GWiz~n\L:) "-9DMWez~yvqkcZQF;0%  *8AB=41/-*%     OnCreate FormCreate OnDestroy FormDestroyOnResize FormResizeOnShowFormShowPositionpoScreenCenter LCLVersion3.2.0.0TPanel WorkingPanelAnchorSideLeft.ControlOwnerAnchorSideTop.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomLeftHeight9TopWidthAnchors akTopakLeftakRightakBottom ClientHeight9 ClientWidthTabOrderTPanel ChartPanelAnchorSideLeft.Control ScrollBox1AnchorSideLeft.Side asrBottomAnchorSideTop.Control WorkingPanelAnchorSideRight.Control WorkingPanelAnchorSideRight.Side asrBottomAnchorSideBottom.Control CursorPanelLeftHeightTopWidthAnchors akTopakLeftakRightakBottomAutoSize ClientHeight ClientWidthConstraints.MinWidthTabOrderTChartChart1AnchorSideLeft.Control ChartPanelAnchorSideTop.Control ChartPanelAnchorSideRight.Control ChartPanelAnchorSideRight.Side asrBottomAnchorSideBottom.Control ChartPanelAnchorSideBottom.Side asrBottomLeftHeightTopWidthAxisList Alignment calBottomMarks.LabelFont.Height Marks.Format%2:sMarks.LabelBrush.StylebsClear Marks.SourceDateTimeIntervalChartSource1 Marks.StylesmsLabelMinorsTitle.Distance Title.Visible Title.Caption Sample timeTitle.LabelBrush.StylebsClearIntervals.NiceSteps0.01 TickLengthMarks.LabelFont.ColorclRed Marks.Format%0:3.2fMarks.LabelBrush.StylebsClear Marks.Style smsCustomMinorsTitle.LabelFont.ColorclRedTitle.LabelFont.Orientation Title.Visible Title.CaptionMPSASTitle.LabelBrush.StylebsClearTransformationsMPSASChartAxisTransformations Grid.Visible TickColorclNone AlignmentcalRightMarks.LabelBrush.StylebsClearMinors Range.Max@ Range.Min Range.UseMax Range.UseMin Title.LabelFont.Orientation Title.Visible Title.CaptionSun/Moon elevationTitle.LabelBrush.StylebsClearTransformationsSunMoonChartAxisTransformations Grid.Visible TickColorclNone AlignmentcalRightMarks.LabelFont.ColorclBlueMarks.LabelBrush.StylebsClearMinors Range.Max@ Range.Min@ Range.UseMax Range.UseMin Title.LabelFont.ColorclBlueTitle.LabelFont.Orientation Title.Visible Title.CaptionVoltageTitle.LabelBrush.StylebsClearTransformationsVoltageChartAxisTransformations Grid.Visible AlignmentcalRightMarks.LabelBrush.StylebsClearMinors Range.Max@ Range.MinTitle.LabelFont.Orientation Title.Visible Title.Caption TemperatureTitle.LabeJlBrush.StylebsClearTransformations#TemperatureChartAxisTransformations Grid.Visible AlignmentcalRightMarks.LabelFont.ColorclTealMarks.LabelBrush.StylebsClearMinorsTitle.LabelFont.ColorclTealTitle.LabelFont.Orientation Title.Visible Title.CaptionSunrise differenceTitle.LabelBrush.StylebsClearTransformationsSunDiffChartAxisTransformationsFoot.Brush.Color clBtnFaceFoot.Font.ColorclBlueTitle.Brush.Color clBtnFaceTitle.Font.ColorclBlueTitle.Text.StringsTAChartToolset ChartToolset1Anchors akTopakLeftakRightakBottomBorderSpacing.Bottom TLineSeries MPSASSeries AxisIndexY LinePen.ColorclRed LinePen.WidthPointer.Brush.Color clFuchsiaPointer.HorizSizePointer.Pen.ColorclRed Pointer.StylepsNonePointer.VertSizePointer.Visible ShowPoints OnGetPointerStyleMPSASSeriesGetPointerStyle TLineSeries MPSASSeries2 AxisIndexY LinePen.ColorclLimePointer.Brush.ColorclLimePointer.HorizSizePointer.VertSizePointer.Visible ShowPoints TLineSeries MPSASSeries3 AxisIndexY LinePen.ColorclBluePointer.Brush.ColorclBluePointer.HorizSize Pointer.Style psDiamondPointer.VertSizePointer.Visible ShowPoints TLineSeries RedSeries AxisIndexY LinePen.ColorclRedPointer.HorizSize Pointer.StylepsNonePointer.VertSizePointer.Visible ShowPoints TLineSeries GreenSeries AxisIndexY LinePen.ColorclGreenPointer.HorizSize Pointer.StylepsNonePointer.VertSizePointer.Visible ShowPoints TLineSeries BlueSeries AxisIndexY LinePen.ColorclBluePointer.HorizSize Pointer.StylepsNonePointer.VertSizePointer.Visible ShowPoints TLineSeries ClearSeries AxisIndexYPointer.HorizSize Pointer.StylepsNonePointer.VertSize TLineSeries MoonSeries AxisIndexY Pointer.StylepsCircle TLineSeries SunSeries AxisIndexY LinePen.Color TLineSeriesCivilTwilightSeries AxisIndexY LinePen.ColorclTealPointer.Brush.ColorclTealPointer.HorizSizePointer.Pen.ColorclTeal Pointer.StylepsDownTrianglePointer.VertSizePointer.Visible ShowPoints OnGetPointerStyleTwilightSeriesGetPointerStyle TLineSeriesNauticalTwilightSeriesLegend.Visible AxisIndexY LinePen.ColorclNavyPointer.Brush.ColorclNavyPointer.HorizSizePointer.Pen.ColorclNavy Pointer.StylepsDownTrianglePointer.VertSizePointer.Visible ShowPoints OnGetPointerStyleTwilightSeriesGetPointerStyle TLineSeriesAstronmicalTwilightSeriesLegend.Visible AxisIndexYPointer.Brush.ColorclBlackPointer.HorizSize Pointer.StylepsDownTrianglePointer.VertSizePointer.Visible ShowPoints OnGetPointerStyleTwilightSeriesGetPointerStyle TLineSeriesSunTwilightSeries AxisIndexY LinePen.ColorclAquaPointer.Brush.ColorclAquaPointer.HorizSizePointer.Pen.ColorclAqua Pointer.StylepsDownTrianglePointer.VertSizePointer.Visible ShowPoints OnGetPointerStyleTwilightSeriesGetPointerStyle TLineSeries SnowSeries AxisIndexY Pointer.StylepsPointPointer.Visible ShowPoints TLineSeriesSunriseDifferenceSeries AxisIndexY LinePen.ColorclTeal LinePen.WidthTPanel CursorPanelAnchorSideLeft.Control ChartPanelAnchorSideTop.Control ChartPanelAnchorSideTop.Side asrBottomAnchorSideRight.Control WorkingPanelAnchorSideRight.Side asrBottomAnchorSideBottom.Control WorkingPanelAnchorSideBottom.Side asrBottomLeftHeight2TopWidthAnchors akLeftakRightakBottom ClientHeight2 ClientWidthColorclSilverParentBackground ParentColorTabOrderTPanelCursorModelPanelAnchorSideLeft.ControlCursorSunMoonPanelAnchorSideLeft.Side asrBottomAnchorSideTop.Co ntrol CursorPanelAnchorSideRight.Control CursorPanelAnchorSideRight.Side asrBottomAnchorSideBottom.Control CursorPanelAnchorSideBottom.Side asrBottomLeftHeight0TopWidthAnchors akTopakLeftakRightakBottomBorderSpacing.Left BevelOuterbvNone ClientHeight0 ClientWidthColorclSilverParentBackground ParentColorTabOrderTLabelCursorModelLabelAnchorSideTop.ControlPlotterModelTextAnchorSideTop.Side asrCenterAnchorSideRight.ControlPlotterModelTextLeftHeightTopWidth+Anchors akTopakRightBorderSpacing.RightCaptionModel: ParentColorTLabelPlotterModelTextAnchorSideLeft.Side asrBottomAnchorSideTop.ControlCursorModelPanelAnchorSideRight.ControlPlotterModelTypeLeftHeightHint Model numberTopWidth2 AlignmenttaCenterAnchors akTopakRightAutoSizeBorderSpacing.TopBorderSpacing.RightColorclWhite ParentColorParentShowHintShowHint TransparentTLabel readingstextRAnchorSideRight.Control readingstextGAnchorSideBottom.ControlCursorModelPanelAnchorSideBottom.Side asrBottomLeftHeightHint Red valueTopWidth3 AlignmenttaRightJustifyAnchors akRightakBottomAutoSizeBorderSpacing.RightColorclWhite Font.ColorclRed ParentColor ParentFontParentShowHintShowHint TransparentVisibleTLabelPlotterModelTypeAnchorSideLeft.Side asrBottomAnchorSideTop.ControlCursorModelPanelAnchorSideRight.Control PlotterSNLeftFHeightHint Model nameTopWidth4 AlignmenttaCenterAnchors akTopakRightAutoSizeBorderSpacing.TopBorderSpacing.RightColorclWhite ParentColorParentShowHintShowHint TransparentTLabel readingstextGAnchorSideLeft.Side asrBottomAnchorSideRight.Control readingstextBAnchorSideBottom.ControlCursorModelPanelAnchorSideBottom.Side asrBottomLeftHeightHint Green valueTopWidth3 AlignmenttaRightJustifyAnchors akRightakBottomAutoSizeBorderSpacing.RightColorclWhite Font.ColorclGreen ParentColor ParentFontParentShowHintShowHint TransparentVisibleTLabel readingstextBAnchorSideLeft.Side asrBottomAnchorSideRight.Control readingstextCAnchorSideBottom.ControlCursorModelPanelAnchorSideBottom.Side asrBottomLeftSHeightHint Blue valueTopWidth3 AlignmenttaRightJustifyAnchors akRightakBottomAutoSizeBorderSpacing.RightColorclWhite Font.ColorclBlue ParentColor ParentFontParentShowHintShowHint TransparentVisibleTLabel readingstextCAnchorSideLeft.Side asrBottomAnchorSideRight.ControlCursorModelPanelAnchorSideRight.Side asrBottomAnchorSideBottom.ControlCursorModelPanelAnchorSideBottom.Side asrBottomLeftHeightHint Clear valueTopWidth3 AlignmenttaRightJustifyAnchors akRightakBottomAutoSizeBorderSpacing.RightColorclWhite Font.ColorclBlack ParentColor ParentFontParentShowHintShowHint TransparentVisibleTShape ColorSwatchAnchorSideLeft.Side asrBottomAnchorSideTop.ControlCursorModelPanelAnchorSideRight.ControlCursorModelPanelAnchorSideRight.Side asrBottomAnchorSideBottom.Side asrBottomLeftHeightHintComposite colorTopWidthAnchors akTopakRightBorderSpacing.TopBorderSpacing.RightParentShowHintShowHint VisibleTLabel PlotterSNAnchorSideLeft.ControlPlotterModelTypeAnchorSideLeft.Side asrBottomAnchorSideTop.ControlPlotterModelTypeAnchorSideTop.Side asrCenterAnchorSideRight.Control ColorSwatchLeft~HeightHint Serial numberTopWidth( Alignmen ttaCenterAnchors akTopakRightAutoSizeBorderSpacing.TopBorderSpacing.RightColorclWhite ParentColorParentShowHintShowHint TransparentTLabelSunriseDifferenceLabelAnchorSideLeft.ControlCursorModelPanelAnchorSideTop.ControlSunriseDifferenceTextAnchorSideTop.Side asrCenterLeftHeightTopWidthMCaptionSunrise diff.:VisibleTLabelSunriseDifferenceTextAnchorSideLeft.ControlSunriseDifferenceLabelAnchorSideLeft.Side asrBottomAnchorSideTop.ControlCursorModelPanelLeftOHeightTopWidthAutoSizeBorderSpacing.LeftBorderSpacing.TopColorclWhite ParentColor TransparentVisibleTPanelCursorSunMoonPanelAnchorSideLeft.ControlCursorTempVoltPanelAnchorSideLeft.Side asrBottomAnchorSideTop.Control CursorPanelAnchorSideBottom.Control CursorPanelAnchorSideBottom.Side asrBottomLeftpHeight0TopWidth|Anchors akTopakLeftakBottomBorderSpacing.Right BevelOuterbvNone ClientHeight0 ClientWidth|ParentBackgroundTabOrderTLabelSunTextAnchorSideLeft.Side asrBottomAnchorSideTop.ControlCursorSunMoonPanelAnchorSideRight.ControlCursorSunMoonPanelAnchorSideRight.Side asrBottomLeft3HeightHint Sun elevationTopWidthI AlignmenttaRightJustifyAnchors akTopakRightAutoSizeBorderSpacing.TopColorclWhite ParentColorParentShowHintShowHint TransparentVisibleTLabel SunTextLabelAnchorSideLeft.ControlCursorSunMoonPanelAnchorSideTop.ControlSunTextAnchorSideTop.Side asrCenterAnchorSideRight.ControlSunTextLeftHeightTopWidthAnchors akRightBorderSpacing.LeftBorderSpacing.TopCaptionSun: ParentColorVisibleTLabel MoonTextLabelAnchorSideTop.ControlMoonTextAnchorSideTop.Side asrCenterAnchorSideRight.ControlMoonTextLeft HeightTopWidth(Anchors akTopakRightCaptionMoon: ParentColorVisibleTLabelMoonTextAnchorSideTop.Side asrBottomAnchorSideRight.ControlCursorSunMoonPanelAnchorSideRight.Side asrBottomAnchorSideBottom.ControlCursorSunMoonPanelAnchorSideBottom.Side asrBottomLeft3HeightHintMoon elevationTopWidthI AlignmenttaRightJustifyAnchors akRightakBottomAutoSizeBorderSpacing.TopColorclWhite ParentColorParentShowHintShowHint TransparentVisibleTPanelCursorTempVoltPanelAnchorSideLeft.ControlCursorTimeDarkPanelAnchorSideLeft.Side asrBottomAnchorSideTop.Control CursorPanelAnchorSideBottom.Control CursorPanelAnchorSideBottom.Side asrBottomLeftHeight0TopWidthAnchors akTopakLeftakBottomBorderSpacing.Left BevelOuterbvNone ClientHeight0 ClientWidthParentBackgroundTabOrderTLabelTemperatureReadingTextAnchorSideLeft.Side asrBottomAnchorSideTop.ControlCursorTempVoltPanelAnchorSideRight.ControlCursorTempVoltPanelAnchorSideRight.Side asrBottomLeft>HeightHintTemperature valueTopWidthP AlignmenttaRightJustifyAnchors akTopakRightAutoSizeBorderSpacing.TopColorclWhite ParentColorParentShowHintShowHint TransparentVisibleTLabelTemperatureReadingTextLabelAnchorSideTop.ControlTemperatureReadingTextAnchorSideTop.Side asrCenterAnchorSideRight.ControlTemperatureReadingTextLeftHeightTopWidth*Anchors akTopakRightBorderSpacing.LeftCaptionTemp.: ParentColorVisibleTLabel VoltageTextAnchorSideTop.ControlTemperatureReadingTextAnchorSideTop.Side asrBottomAnchorSideRight.ControlCursorTempVoltPanelAnchorSideRight.Side asrBottomAnchorSideBottom.ControlCursorTempVoltPanelAnchorSideBottom.Side asrBottomLef t>HeightHint Voltage valueTopWidthP AlignmenttaRightJustifyAnchors akTopakRightAutoSizeBorderSpacing.TopColorclWhite ParentColorParentShowHintShowHint TransparentVisibleTLabelVoltageTextLabelAnchorSideTop.Control VoltageTextAnchorSideTop.Side asrCenterAnchorSideRight.Control VoltageTextLeft HeightTopWidth3Anchors akTopakRightCaptionVoltage: ParentColorVisibleTPanelCursorTimeDarkPanelAnchorSideLeft.Control CursorPanelAnchorSideTop.Control CursorPanelAnchorSideRight.Side asrBottomAnchorSideBottom.Control CursorPanelAnchorSideBottom.Side asrBottomLeftHeight0TopWidthAnchors akTopakLeftakBottom BevelOuterbvNone ClientHeight0 ClientWidthParentBackgroundTabOrderTLabel ReadingTimeAnchorSideLeft.ControlCursorTimeDarkPanelAnchorSideTop.ControlCursorTimeDarkPanelLeftHeightHintRecord timestampTopWidth AlignmenttaCenterAutoSizeBorderSpacing.TopBorderSpacing.RightColorclWhite ParentColorParentShowHintShowHint TransparentTLabelReadingTextLabelAnchorSideLeft.ControlCursorTimeDarkPanelAnchorSideTop.Control ReadingTextAnchorSideTop.Side asrCenterLeftHeightTopWidth>Caption Darkness: ParentColorTLabel ReadingTextAnchorSideLeft.ControlReadingTextLabelAnchorSideLeft.Side asrBottomAnchorSideTop.Side asrBottomAnchorSideRight.Side asrBottomAnchorSideBottom.ControlCursorTimeDarkPanelAnchorSideBottom.Side asrBottomLeft>HeightHint MPSAS valueTopWidtho AlignmenttaRightJustifyAnchors akLeftakBottomAutoSizeBorderSpacing.TopColorclWhite ParentColorParentShowHintShowHint Transparent TScrollBox ScrollBox1AnchorSideLeft.Control WorkingPanelAnchorSideTop.Control WorkingPanelAnchorSideBottom.Control WorkingPanelAnchorSideBottom.Side asrBottomLeftHeight7TopWidthHorzScrollBar.PageHorzScrollBar.VisibleVertScrollBar.Page+Anchors akTopakLeftakBottomAutoSize ClientHeight5 ClientWidthTabOrderTPanelControlButtonPanelAnchorSideLeft.Control ScrollBox1AnchorSideTop.Control ScrollBox1AnchorSideBottom.Control ScrollBox1AnchorSideBottom.Side asrBottomLeftHeight5TopWidthAnchors akTopakLeftakBottom ClientHeight5 ClientWidthTabOrderVisibleTButtonControlPanelButtonAnchorSideLeft.ControlControlButtonPanelAnchorSideTop.ControlControlButtonPanelAnchorSideRight.ControlControlButtonPanelAnchorSideRight.Side asrBottomAnchorSideBottom.ControlControlButtonPanelAnchorSideBottom.Side asrBottomLeftHeight3HintView Control PanelTopWidthAnchors akTopakLeftakRightakBottomCaption>ParentShowHintShowHint TabOrderOnClickControlPanelButtonClickTPanel ControlPanelAnchorSideLeft.ControlControlButtonPanelAnchorSideLeft.Side asrBottomAnchorSideTop.Control ScrollBox1AnchorSideRight.Control ScrollBox1AnchorSideRight.Side asrBottomAnchorSideBottom.Control ScrollBox1AnchorSideBottom.Side asrBottomLeftHeight5TopWidthAnchors akTopakLeftakRightakBottom ClientHeight5 ClientWidthTabOrder TGroupBoxPositionGroupBoxAnchorSideLeft.Control ControlPanelAnchorSideRight.Control ControlPanelAnchorSideRight.Side asrBottomAnchorSideBottom.ControlSettingsGroupBoxLeftHeightToppWidthAnchors akLeftakRightakBottomCaptionPosition ClientHeight ClientWidthTabOrder TGroupBoxDefaultGroupBoxAnchorSideLeft.ControlPositionGroupBoxAnchorSideRight.Control] PositionGroupBoxAnchorSideRight.Side asrBottomLeftHeightyTopWidthAnchors akLeftakRightCaptionDefault position ClientHeighte ClientWidthTabOrder TLabeledEdit PositionEntryAnchorSideTop.ControlEditPositionButtonAnchorSideRight.ControlEditPositionButtonLeftHeight$TopWidthAnchors akTopakRightBorderSpacing.RightEditLabel.HeightEditLabel.Width5EditLabel.Caption Position:EditLabel.ParentColor LabelPositionlpLeftReadOnly TabOrderTabStop TComboBox TZRegionBoxAnchorSideLeft.Side asrBottomAnchorSideTop.Control PositionEntryAnchorSideTop.Side asrBottomAnchorSideRight.ControlDefaultGroupBoxAnchorSideRight.Side asrBottomLeftHeight#Top$WidthAnchors akTopakRight ItemHeightStylecsDropDownListTabOrderOnChangeTZRegionBoxChangeTLabel RegionLabelAnchorSideTop.Control TZRegionBoxAnchorSideTop.Side asrCenterAnchorSideRight.Control TZRegionBoxLeftHeightTop+WidthF AlignmenttaRightJustifyAnchors akTopakRightAutoSizeCaptionRegion: ParentColorTLabel TimezoneLabelAnchorSideTop.Control TZLocationBoxAnchorSideTop.Side asrCenterAnchorSideRight.Control TZLocationBoxLeftHeightTopNWidthF AlignmenttaRightJustifyAnchors akTopakRightAutoSizeCaption Timezone: ParentColor TComboBox TZLocationBoxAnchorSideLeft.Side asrBottomAnchorSideTop.Control TZRegionBoxAnchorSideTop.Side asrBottomAnchorSideRight.ControlDefaultGroupBoxAnchorSideRight.Side asrBottomAnchorSideBottom.Side asrBottomLeftHeight#TopGWidthAnchors akTopakRight ItemHeightStylecsDropDownListTabOrderOnChangeTZLocationBoxChangeTBitBtnEditPositionButtonAnchorSideTop.ControlDefaultGroupBoxAnchorSideRight.ControlDefaultGroupBoxAnchorSideRight.Side asrBottomLeftHeightHint Edit positionTopWidthAnchors akTopakRight Glyph.Data BM6( dd"Bt>#T0i;rC#i<V1?# p< 1]O+|P3oоȿ·ĪuV7Q,V) < Yl<軱ɱĹuo@!?#Q X0@xJ,pZcNuYE|aNr_oͶQ2Z1>mI$p?ߵyV8|S1vO0nJ.fE,eE.ʰuB"mI$p=y`wn`5[3V1wO.jG*qr>k<&}O1ǰgnFlAc7[3|R/w˱V9m=*o;cz_{cZuMi=[6}pqnm:iq=<s}¢~sf|^v_lWr=r?˴yɵԻѸͱvhr>q?ĮֿɷпͻİvE%vF%Խɹʹûq>sBüļq>o:eſ˼oeú~n<kp8)eKɾʼT7o=.sBij·n=f3 vF&®κƵp?f3 uA;`DϿӿť˷ɾW;uE#;U3<`Cȱɭ¢ϸ{Y9U3<fM iImʼʱz^eFfM tW,wXkz\z[~cy[wYwXkz],OnClickEditPositionButtonClickParentShowHintShowHint TabOrder TLabeledEditPlotFileTimezoneLabelAnchorSideTop.ControlDefaultGroupBoxAnchorSideTop.Side asrBottomAnchorSideRight.ControlPositionGroupBoxAnchorSideRight.Side asrBottomLeftHeight$TopvWidthAnchors akTopakRightBorderSpacing.TopBorderSpacing.RightEditLabel.HeightEditLabel.WidthkEditLabel.CaptionPlotfile timezone:EditLabel.ParentColor LabelPositionlpLeftTabOrder TGroupBoxFileSelectionModeGroupBoxAnchorSideLeft.Control ControlPanelAnchorSideRight.Control ControlPanelAnchorSideRight.Side asrBottomAnchorSideBottom.ControlPositionGroupBoxLeftHeightTopWidthAnchors akLeftakRightakBottomCaptionFile Selection ModeL ClientHeightu ClientWidthTabOrder TRadioGroupFileSelectionModeRadioGroupAnchorSideLeft.ControlFileSelectionModeGroupBoxAnchorSideTop.ControlFileSelectionModeGroupBoxAnchorSideBottom.Side asrBottomLeftHeightTTopWidth|AutoFill CaptionMode:ChildSizing.LeftRightSpacingChildSizing.EnlargeHorizontalcrsHomogenousChildResizeChildSizing.EnlargeVerticalcrsHomogenousChildResizeChildSizing.ShrinkHorizontalcrsScaleChildsChildSizing.ShrinkVerticalcrsScaleChildsChildSizing.LayoutcclLeftToRightThenTopToBottomChildSizing.ControlsPerLine ClientHeight@ ClientWidthz Items.StringsSingle AccumulateMultipleOnClick FileSelectionModeRadioGroupClickParentShowHintTabOrder TStringGridMultiFileStringGridAnchorSideLeft.ControlFileSelectionModeRadioGroupAnchorSideLeft.Side asrBottomAnchorSideTop.ControlFileSelectionModeRadioGroupAnchorSideRight.ControlFileSelectionModeGroupBoxAnchorSideRight.Side asrBottomAnchorSideBottom.ControlFileSelectionModeGroupBoxAnchorSideBottom.Side asrBottomLeft|HeightuTopWidth0Anchors akTopakLeftakRightakBottomColCountColumns ButtonStylecbsButtonColumn Title.CaptionColorWidth Title.CaptionFilenameWidth, FixedCols FixedRowsRowCountTabOrder OnButtonClickMultiFileStringGridButtonClickTButtonClearAllButton1AnchorSideLeft.ControlFileSelectionModeGroupBoxAnchorSideTop.Side asrBottomAnchorSideRight.Side asrBottomAnchorSideBottom.ControlFileSelectionModeGroupBoxAnchorSideBottom.Side asrBottomLeftHeightHintClear all plotsTop\WidthCAnchors akLeftakBottomBorderSpacing.TopCaption Clear allParentShowHintShowHint TabOrderOnClickClearAllButtonClick TGroupBoxSettingsGroupBoxAnchorSideLeft.Control ControlPanelAnchorSideRight.Control ControlPanelAnchorSideRight.Side asrBottomAnchorSideBottom.Control ControlPanelAnchorSideBottom.Side asrBottomLeftHeightTop!WidthAnchors akLeftakRightakBottomCaptionSettings ClientHeight ClientWidthConstraints.MinWidthTabOrderTPanel SettingsPanelAnchorSideLeft.ControlSettingsGroupBoxAnchorSideTop.ControlSettingsGroupBoxAnchorSideRight.ControlSettingsGroupBoxAnchorSideRight.Side asrBottomAnchorSideBottom.ControlSettingsGroupBoxAnchorSideBottom.Side asrBottomLeftHeightTopWidthAnchors akTopakLeftakRightakBottom ClientHeight ClientWidthTabOrder TRadioGroupPlotNumberGroupAnchorSideLeft.Control SettingsPanelAnchorSideTop.Control SettingsPanelAnchorSideBottom.Side asrBottomLeftHeightOHint Plot numberTopWidthAutoFill BorderSpacing.LeftCaption Plot numberChildSizing.LeftRightSpacingChildSizing.EnlargeHorizontalcrsHomogenousChildResizeChildSizing.EnlargeVerticalcrsHomogenousChildResizeChildSizing.ShrinkHorizontalcrsScaleChildsChildSizing.ShrinkVerticalcrsScaleChildsChildSizing.LayoutcclLeftToRightThenTopToBottomChildSizing.ControlsPerLine ClientHeight; ClientWidth~ ItemIndex Items.Strings123TabOrder TGroupBoxTimeOffsetGroupAnchorSideLeft.Control SettingsPanelAnchorSideTop.Control MiscGroupBoxAnchorSideTop.Side asrBottomLeftHeight6TopWidthTBorderSpacing.BottomCaption Time offset: ClientHeight" ClientWidthRTabOrderTLabelsLabelAnchorSideLeft.Side asrBottomAnchorSideTop.ControlTimeOffsetSpinEditAnchorSideTop.Side asrCenterAnchorSideRight.ControlTimeOffsetSpinEditLeftHeightTop WidthAnchors akTopakRightBorderSpacing.LeftBorderSpacing.RightCaptions ParentColor TSpinEditTimeOffsetSpinEdit AnchorSideTop.ControlTimeOffsetGroupAnchorSideRight.ControlTimeOffsetGroupAnchorSideRight.Side asrBottomLeftHeight$TopWidthAnchors akTopakRightMaxValueɚ;MinValue6eOnChangeTimeOffsetSpinEditChangeTabOrderTUpDown MinuteUpDownAnchorSideTop.ControlTimeOffsetSpinEditAnchorSideRight.ControlsLabelLeftHeightTopWidthAnchors akTopakRightBorderSpacing.Right MinOnClickMinuteUpDownClickPositionTabOrderTLabelmLabelAnchorSideLeft.Side asrBottomAnchorSideTop.Control MinuteUpDownAnchorSideTop.Side asrCenterAnchorSideRight.Control MinuteUpDownLeftHeightTopWidth Anchors akTopakRightCaptionm ParentColorTUpDown HourUpDownAnchorSideTop.ControlTimeOffsetSpinEditAnchorSideRight.ControlmLabelLeftxHeightTopWidthAnchors akTopakRightBorderSpacing.Right MinOnClickHourUpDownClickPositionTabOrderTUpDown DayUpDownAnchorSideTop.ControlTimeOffsetSpinEditAnchorSideRight.ControlhLabelLeftSHeightTopWidthAnchors akTopakRightBorderSpacing.Right MinOnClickDayUpDownClickPositionTabOrderTUpDown WeekUpDownAnchorSideTop.ControlTimeOffsetSpinEditAnchorSideRight.ControldLabelLeft.HeightTopWidthAnchors akTopakRightBorderSpacing.Right MinOnClickWeekUpDownClickPositionTabOrderTLabelhLabelAnchorSideLeft.Side asrBottomAnchorSideTop.Control HourUpDownAnchorSideTop.Side asrCenterAnchorSideRight.Control HourUpDownLeftpHeightTopWidthAnchors akTopakRightCaptionh ParentColorTLabeldLabelAnchorSideTop.Control DayUpDownAnchorSideTop.Side asrCenterAnchorSideRight.Control DayUpDownLeftKHeightTopWidthAnchors akTopakRightCaptiond ParentColorTLabelwLabelAnchorSideTop.Control WeekUpDownAnchorSideTop.Side asrCenterAnchorSideRight.Control WeekUpDownLeft$HeightTopWidth Anchors akTopakRightCaptionw ParentColor TGroupBox MiscGroupBoxAnchorSideLeft.ControlPlotNumberGroupAnchorSideTop.ControlPlotNumberGroupAnchorSideTop.Side asrBottomAnchorSideBottom.Side asrBottomLeftHeightxTopPWidthBorderSpacing.RightCaptionOptions ClientHeightd ClientWidth~TabOrder TCheckBoxThreeDayCheckBoxAnchorSideLeft.Control MiscGroupBoxAnchorSideTop.Control MiscGroupBoxLeftHeightHint$Plot day before and after .log filesTopWidthWCaption Three dayTabOrder TCheckBoxClipSunMoonCheckBoxAnchorSideLeft.Control MiscGroupBoxAnchorSideTop.ControlThreeDayCheckBoxAnchorSideTop.Side asrBottomLeftHeightHintClip Sun/Moon plolt below 18°TopWidthsCaption Clip Sun/MoonTabOrder OnEditingDoneClipSunMoonCheckBoxEditingDone TCheckBoxContinuousLineCheckBoxAnchorSideLeft.Control MiscGroupBoxAnchorSideTop.ControlClipSunMoonCheckBoxAnchorSideTop.Side asrBottomLeftHeightTop.WidthyCaptionContinuous lineTabOrder OnEditingDone!ContinuousLineCheckBoxEditingDone TCheckBoxZeroPlotCheckBoxAnchorSideLeft.ControlThreeDayCheckBoxAnchorSideTop.ControlContinuousLineCheckBoxAnchorSideTop.Side asrBottomLeftHeightHint!Plot line to zero reading values.TopEWidthRCaption Zero plotParentShowHintShowHint TabOrder OnEditingDoneZeroPlotCheckBoxEditingDone TRadioGroup TimeRefGroupAnchorSideLeft.Control TwilightGroupAnchorSideTop.Control TwilightGroupAnchorSideTop.Side asrBottomAnchorSideRight.Side asrBottomAnchorSideBottom.Side asrBottomLeft= HeightCTopxWidthnAutoFill BorderSpacing.TopCaption Time ref.ChildSizing.LeftRightSpacingChildSizing.EnlargeHorizontalcrsHomogenousChildResizeChildSizing.EnlargeVerticalcrsHomogenousChildResizeChildSizing.ShrinkHorizontalcrsScaleChildsChildSizing.ShrinkVerticalcrsScaleChildsChildSizing.LayoutcclLeftToRightThenTopToBottomChildSizing.ControlsPerLine ClientHeight/ ClientWidthl ItemIndex Items.StringsUTCLocalOnClickTimeRefGroupClickTabOrderTButtonClearSelButtonAnchorSideTop.Side asrBottomAnchorSideRight.Control SettingsPanelAnchorSideRight.Side asrBottomAnchorSideBottom.ControlClearAllButtonLeft[HeightHintClear selected plotTopWidthKAnchors akRightakBottomBorderSpacing.RightBorderSpacing.BottomCaption Clear sel.ParentShowHintShowHint TabOrderOnClickClearSelButtonClickTButtonClearAllButtonAnchorSideTop.Side asrBottomAnchorSideRight.Control SettingsPanelAnchorSideRight.Side asrBottomAnchorSideBottom.Control SettingsPanelAnchorSideBottom.Side asrBottomLeft[HeightHintClear all plotsTopWidthKAnchors akRightakBottomBorderSpacing.RightBorderSpacing.BottomCaption Clear allParentShowHintShowHint TabOrderOnClickClearAllButtonClickTBitBtn ReZoomButtonAnchorSideLeft.Control ReplotButtonAnchorSideTop.Control ReplotButtonAnchorSideTop.Side asrBottomAnchorSideRight.Control SettingsPanelAnchorSideRight.Side asrBottomAnchorSideBottom.Control SaveSVGButtonLeftZHeightHint Reset zoomTop!WidthLAnchors akTopakLeftakRightBorderSpacing.TopBorderSpacing.RightBorderSpacing.BottomCaptionReZoom Glyph.Data :6BM66( dd]]]rrrUqqqnnn-ppp_qqqmqqqTnnnrrrYrrrrrrUpppUrrrrrrrrrqqqqqqrrrqqqmmmrrrZrrrrrrYqqqqqqrrrkkkppp-qqqrrrrrrrrrZrrr~qqqnnn'sssqqqppprrrlll]]]nnnqqqooo;pppTrrrqqqgggqqqarrrqqqqqqqqqqqqqqqrrrrrr}kkkssskkk*qqqFFFppp/rrrnnnrrrqqq_qqqsrrrBooorrrkkkqqqqqqTrrrooo-mmmqqqeeetttqqqqqqmrrrrrr4nnnooo nnn#nnnrrrppp_rrrppppqqqqqqZqqqqqqhhhlllrrrnnn-qqqqqqqqqqqqqqq===pppGrrrqqqrrrrrroooqqqrrreuuuqqqapppVppp+qqqfppp>ppp+qqqpppVoooSqqqrrreooo:99 )'(8w(=L+}4}*)45&+{3,O=X,C==B,>YU1,H*~54*G-0A>C-64+E= )GV>>87?=$^7QBB4KUA1--;=VQ TOnClickSaveSVGButtonClickParentShowHintShowHint TabOrderTButton ReplotButtonAnchorSideLeft.Control TwilightGroupAnchorSideLeft.Side asrBottomAnchorSideTop.Control SettingsPanelAnchorSideRight.Control SettingsPanelAnchorSideRight.Side asrBottomLeftZHeightTopWidthLAnchors akTopakLeftakRightBorderSpacing.LeftBorderSpacing.RightCaptionReplotConstraints.MinWidthTabOrder OnClickReplotButtonClick TGroupBox DisplayGroupAnchorSideLeft.ControlPlotNumberGroupAnchorSideLeft.Side asrBottomAnchorSideTop.ControlPlotNumberGroupLeftHeightTopWidth\BorderSpacing.LeftCaptionDisplay ClientHeight ClientWidthZTabOrder TCheckBox SunCheckBoxAnchorSideLeft.Control DisplayGroupAnchorSideTop.ControlTemperatureCheckBoxAnchorSideTop.Side asrBottomLeftHeightTop\Width1CaptionSunParentShowHintShowHint TabOrder OnEditingDoneSunCheckBoxEditingDone TCheckBox MoonCheckBoxAnchorSideLeft.Control DisplayGroupAnchorSideTop.Control SunCheckBoxAnchorSideTop.Side asrBottomLeftHeightTopsWidth>CaptionMoonParentShowHintShowHint TabOrder OnEditingDoneMoonCheckBoxEditingDone TCheckBoxTemperatureCheckBoxAnchorSideLeft.Control DisplayGroupAnchorSideTop.ControlVoltageCheckBoxAnchorSideTop.Side asrBottomLeftHeightTopEWidth@CaptionTemp.TabOrder OnEditingDoneTemperatureCheckBoxEditingDone TCheckBoxVoltageCheckBoxAnchorSideLeft.Control DisplayGroupAnchorSideTop.ControlDarknessCheckBoxAnchorSideTop.Side asrBottomLeftHeightTop.WidthICaptionVoltageTabOrder OnEditingDoneVoltageCheckBoxEditingDone TCheckBox GridCheckBoxAnchorSideLeft.Control DisplayGroupAnchorSideTop.Control DisplayGroupLeftHeightTopWidth5Anchors akLeftCaptionGridTabOrder OnEditingDoneGridCheckBoxEditingDone TCheckBoxDarknessCheckBoxAnchorSideLeft.Control DisplayGroupAnchorSideTop.Control GridCheckBoxAnchorSideTop.Side asrBottomLeftHeightTopWidthTCaptionDarknessTabOrder OnEditingDoneDarknessCheckBoxEditingDone TGroupBox TwilightGroupAnchorSideLeft.Control DisplayGroupAnchorSideLeft.Side asrBottomAnchorSideTop.ControlPlotNumberGroupLeftHeightsTopWidthnBorderSpacing.LeftCaptionTwilight lines ClientHeight_ ClientWidthlConstraints.MinWidthnTabOrder TCheckBoxSunTwilightCheckBoxAnchorSideLeft.Control TwilightGroupAnchorSideTop.Control TwilightGroupLeftHeightHintShow Sun twilight markersTopWidth1CaptionSunTabOrder OnEditingDoneSunTwilightCheckBoxEditingDone TCheckBoxCivilTwilightCheckBoxAnchorSideLeft.Control TwilightGroupAnchorSideTop.ControlSunTwilightCheckBoxAnchorSideTop.Side asrBottomLeftHeightHintShow Civil twilight markersTopWidth2CaptionCivilTabOrder OnEditingDone CivilTwilightCheckBoxEditingDone TCheckBoxNauticalTwilightCheckBoxAnchorSideLeft.Control TwilightGroupAnchorSideTop.ControlCivilTwilightCheckBoxAnchorSideTop.Side asrBottomLeftHeightHintShow Nauticaltwilight markersTop.WidthKCaptionNauticalTabOrder OnEditingDone#NauticalTwilightCheckBoxEditingDone TCheckBoxAstronomicalTwilightCheckBoxAnchorSideLeft.Control TwilightGroupAnchorSideTop.ControlNauticalTwilightCheckBoxAnchorSideTop.Side asrBottomLeftHeightHint#Show Astronomical twilight markersTopEWidth[Caption Astronom.TabOrder OnEditingDone'AstronomicalTwilightCheckBoxEditingDone TGroupBox FilesGroupBoxAnchorSideLeft.Control ControlPanelAnchorSideTop.Control HelpButtonAnchorSideTop.Side asrBottomAnchorSideRight.Control ControlPanelAnchorSideRight.Side asrBottomAnchorSideBottom.ControlFileSelectionModeGroupBoxLeftHeightTopWidthAnchors akTopakLeftakRightakBottomCaptionFile(s) ClientHeight ClientWidthConstraints.MinHeightTabOrderTBitBtnPlotDirectoryButtonAnchorSideLeft.ControlResetToPlotDirectoryButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlResetToPlotDirectoryButtonLeft%Height#Hint!Select location of logging files.TopWidth#BorderSpacing.Left Glyph.Data :6BM66( ddSMFe4e4e4e4e4e4e4e4e4e4e4e4e4f5g69HHHxi:PPPPPPPPPPPxEf6IIIh9Ӧ~ңxңxңxңxңxңxңxңxңxӤyѥzf5HHH⛛g8իΜnΜmΜmΜmΜmΜmΜmΜmΜmϞpիf5LLL䡡h8ĩըӤzӤzӤzӤzӤzӤzӤzӤzԧ~ݺf5QQQ夥g7Ҿݺݹܶ۵ڳٲخ׭׭ذɱf5VVV穩f6ݺݺݺݺݺݺݺܷڲٰϸf5[[[鮮g6ܷܷܷܷܷܷܷܷܷڴͶf5___鳳f5۴۴۵۵۵۵۵۵۵ܸϷf4eee뷷f5ӾԿԿԾԾԾӾӾӾӾӾϸe4jjj콽mAf6f6f6f6f6f5f5f5f5e4e4e4h7nnnjjjGGGGGGsss򌌌򌌌򌌌򀀀lllGGGGGGxxxtttrrr8rrr8rrr8mmm8ooo5UUUGGGGGGzzzyyyyyyyyyyyyyyyyyyxxx5GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGOnClickPlotDirectoryButtonClickParentShowHintShowHint TabOrderTBitBtnResetToPlotDirectoryButtonAnchorSideLeft.Control FilesGroupBoxAnchorSideTop.Control FilesGroupBoxLeftHeight#Hint+Reset location of logging files to default.TopWidth#BorderSpacing.Top Glyph.Data :6BM66( ddN5N5N5O8O8N5N5N5N5N5zYDjƞЦh `HN5mN5N5N5saĝѡԣȟp_N5N5N5@^Fܟٯv lfQ N5tfL l gv ܣywx mewXU?N5)`dKd2mLr lpZ T>O6N7\EpfYlJM<N5z]HlP ~Y|Y,O8N5"N5'XCxVnKZ=F6T<N5 O8N9M7N5N5Q9V@[?T<P9[DW@fLrSgqvdP VAEP9J7aIu^+oX'_I`Jp,;7dS@N51N5$WEL6v^,l:r_,YBbIMLD~XcGQ?P9P9WES@iQ}L}Lta,N7aFa^]LjOO9R@K9N8pY(Z^XfON5'_DqppmmeqAq@[omp}i-P8t3 `DrsVw?{îîîîîî}t9U<N5YAhKN5EP7znQdоλz_qSN5sN5N5 N5N5$P7hNɃk7v\$[?P7~N5#OnClickResetToPlotDirectoryButtonClickParentShowHintShowHint TabOrderTEditPlotDirectoryEditAnchorSideLeft.ControlPlotDirectoryButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlPlotDirectoryButtonAnchorSideRight.Control FilesGroupBoxAnchorSideRight.Side asrBottomAnchorSideBottom.ControlPlotDirectoryButtonAnchorSideBottom.Side asrBottomLeftJHeight#Hint Location of logging files.TopWidthbAnchors akTopakLeftakRightakBottomBorderSpacing.LeftParentShowHintShowHint TabOrder OnEditingDonePlotDirectoryEditEditingDone TComboBoxFilterComboBoxAnchorSideLeft.Control FilesGroupBoxAnchorSideTop.ControlResetToPlotDirectoryButtonAnchorSideTop.Side asrBottomAnchorSideRight.Control FilesGroupBoxAnchorSideRight.Side asrBottomLeftHeight$Top%WidthAnchors akTopakLeftakRightBorderSpacing.TopBorderSpacing.Right ItemHeight ItemIndex Items.Strings*.dat*.txt (SQMReader)*.txt (LightPollutionMap)*.csv*.*TabOrderText*.datOnChangeFilterComboBoxChangeTLabel FilterLabelAnchorSideTop.ControlFilterComboBoxAnchorSideTop.Side asrCenterAnchorSideRight.ControlFilterComboBoxLeftHeightTop.Width$Anchors akTopakRightBorderSpacing.RightCaptionFilter: ParentColor TStringGridPlotFilesStringGridAnchorSideLeft.Control FilesGroupBoxAnchorSideTop.ControlFilterComboBoxAnchorSideTop.Side asrBottomAnchorSideRight.Control FilesGroupBoxAnchorSideRight.Side asrBottomAnchorSideBottom.Control FilesGroupBoxAnchorSideBottom.Side asrBottomLeftHeightnTopKWidthAnchors akTopakLeftakRightakBottomAutoEditAutoFillColumns BorderSpacing.TopColCountColumnClickSorts ColumnsMaxSize Title.CaptionNameWidth AlignmenttaRightJustify SizePriorityTitle.AlignmenttaCenter Title.CaptionSizeWidth< AlignmenttaRightJustify SizePriorityTitle.AlignmenttaCenter Title.CaptionTimeWidthConstraints.MinHeightd FixedColsOptions goFixedVertLinegoFixedHorzLine goHorzLine goColSizing goRowSelectgoThumbTrackinggoSmoothScrollRowCountTabOrderOnClickPlotFilesStringGridClickOnCompareCellsPlotFilesStringGridCompareCells OnHeaderClickPlotFilesStringGridHeaderClick ColWidths<TButton HelpButtonAnchorSideLeft.Side asrCenterAnchorSideTop.Control ControlPanelAnchorSideRight.Control ControlPanelAnchorSideRight.Side asrBottomAnchorSideBottom.Side asrBottomLeftdHeightTopWidthKAnchors akTopakRightCaptionHelpParentShowHintShowHint TabOrderOnClickHelpButtonClickTButtonHideControlPanelButtonAnchorSideLeft.Control ControlPanelAnchorSideTop.Control ControlPanelAnchorSideBottom.Side asrBottomLeftHeightHintHide this control panelTopWidthKCaptionHideParentShowHintShowHint TabOrderOnClickHideControlPanelButtonClickTChartAxisTransformationsSunMoonChartAxisTransformationsLeftPTopTAutoScaleAxisTransform6SunMoonChartAxisTransformationsAutoScaleAxisTransform1TDateTimeIntervalChartSourceDateTimeIntervalChartSource1Params.MaxLengthZParams.MinLengthDateTimeFormathh:nnLeftQTop TChartToolset ChartToolset1LeftPTopTDataPointCrosshairTool$ChartToolset1DataPointCrosshairTool1OnDraw(ChartToolset1DataPointCrosshairTool1DrawCrosshairPen.ColorclBlueCrosshairPen.Style psDashDotTZoomMouseWheelTool ChartToolset1ZoomMouseWheelTool1 ZoomFactorhfffff? ZoomRatioJY8? TZoomDragToolChartToolset1ZoomDragTool1Shift ssLeft Brush.StylebsClear TPanDragToolChartToolset1PanDragTool1Shift ssRightOnAfterMouseUp%ChartToolset1PanDragTool1AfterMouseUpTChartAxisTransformationsVoltageChartAxisTransformationsLeftQTopTAutoScaleAxisTransform6VoltageChartAxisTransformationsAutoScaleAxisTransform1TChartAxisTransformations#TemperatureChartAxisTransformationsLeftQTopPTAutoScaleAxisTransform:TemperatureChartAxisTransformationsAutoScaleAxisTransform1TChartAxisTransformationsMPSASChartAxisTransformationsLeftQTopTLinearAxisTransform1MPSASChartAxisTransformationsLinearAxisTransform1ScaleTAutoScaleAxisTransform4MPSASChartAxisTransformationsAutoScaleAxisTransform1TListChartSourceSunElevationChartSourceLeftPTop.TChartAxisTransformationsSunDiffChartAxisTransformationsLeftQTopTAutoScaleAxisTransform6SunDiffChartAxisTransformationsAutoScaleAxisTransform1FORMDATA TPlotterFormSelect a file for processing."data log files|*.dat|All files|*.*InputDirectoryDatTimeCorrect File selected, updating details.BSelect "Correction method", then press "Correct .dat file" button.+Do you want to overwrite the existing file?Overwrite existing file?Reading Input file Processing : ## DL time difference (seconds)!# DL time difference (seconds): 0# UTC Date & Time, Local Date SunriseDiff , SunriseDiff , SunriseDiff# YYYY-MM-DDTHH:mm:ss.fff;;s;syyyy-mm-dd"T"hh:nn:ss.zzzUTCyyyy-mm-dd"T"hh:nn:ss.zzz;;zD%0.3fFinished correcting.'File handling error occurred. Details: /Error/File selected. Getting details, please wait ...# Position (lat, lon, elev(m)):.%0.6fMSAS# Local timezone:Valid*** Invalid ***%dd# END OF HEADER%dsDetails retrieved.Offset on every record: %dsFixed"Calculated recording range: %0.3fs)Correction factor: %ds/%0.3fs = %0.8f s/sLinear_A file will be created noting the difference between sunrise time and reading going to 0 MPSAS.Sunrise_TimeCorr TPF0TdattimecorrectformdattimecorrectformLeftHeight_TopKWidthAnchors Caption.dat Time Correction ClientHeight_ ClientWidthConstraints.MinHeightConstraints.MinWidth Icon.Data B> (( dd !#$#""!  '1;DMU[adeedb`]XRKD=5+!  !.>N^mzsdTC4(  $8Nczp\G2!  4Mg{cI2 +C]yw\A)  0Kk         iI,/Ot          oK,+Lt          % ) ) ( + , . * #!       oJ+$Ek          & / 2 - - 4 4 5 0 ) ( " % ' $ "       jA" 5^   #32$    !     ' . 1 0 1 6 7 5 1 / 0 * * + + ) $ # % $ # - ."    Y2 #Ht  '/ 3 9 >: *    $ & "  #) ) / 4 7 7 9 5 3 58 3 /-+ $ " & + ) + 3 1 ( .$     oA 2]'//. 7)M "C +      ! $  ! ) + . 02 5 4 5 6 7 8 5 3 - & %& % $ & ) ) * 1 9 4 -&#& U+Cq %0/ ' ( & (2 , $      & " ! $ & ) '&+ ) / 5 8 8 89 5 - 2 . % !( *+. 5:9 4 1 2 /,$   g8 $N # 6 "@ ; ! ! !  " "     $' !"# " $' " !& &*3 9 7:; 8 4 : 3 ($+.-,.38 : ; !; 4 6 2("  tD +W   , 6!?#B $  ! " " ! " "   !& $#$$ $&%#$) **1 83: 7 4 5 5 / + ) ,0 * %$ )3=#B "@ 7 < : 1 1 +O$ /`    %&'' %    " !  ! # $ #   !)&"#' "  $')).3 1 1 2 1 - & " $ ( , 0 0,()*5 "A &D8> < 6; ; . U& 3g     && $ !        $(" ! &)' % % !  ! #$#%/7 4 5 4 2 / + ( .3 / 1 5 3,%& ' /$> / 373 * 3 -   Z* 4g   )) $ ! " ! ! !      #  $) %%& %(*+* $ #& ' &(' - 5 6 3 5 512 / 14 // 1 1, %'& (1 * + - * &. + #  ]- 4h   %/. ( !  !       % # " # % % '& ! #)., '&*+ '- ' ' -0 1 66361 0 / -.- ,* '+,+ ((% # #&)' #    ]*  0f  0. # "  " #          #$# " ! " #   ' ( & &), * & ( " # $36 5 571. . -2 / * (),/. (%     "    " "  Y'  +b  (/*  ! !            ! ! ! ! " ! ! # * . ---, ( " ! ! "#" & & ' ,552 . - 0 ,( % % $ % $              U" &Z  $/53,+' & %              ! "'** +/,+- -10* #   #)( # ! %.43 - * % %%$# " ! !     $   !  LQ   ' 12432:40, !   !           (-/00)&' */-*' #  )+ $  "',.+ % ! " "% "  !    !  !    # # " ! CE '2 9?80+-;<5*   ! # !    !       % ),/ ' $ ! !& ' &') ) $   ") $ "# $'( # "!  ") $ ""!       !  !% ' & $   u98u  1 "D+Q2W0W.S6 % (.+ " " "      "      & % % , ) % # # " $ # # % $ "  ! $ ( )& ! $ $ $ '#&& %* $ %'$"##"!    !',+ *$ j/ )e! 6.T0X !D 4>6/4, %(.*% ! " $    !   !%& $)' %+*&%%$##$'*(&& '&+.) "()% $ $' ( ' * ( ( ( # !&&# $"" ! "#$&('%"   W P$ &F +O)N%I!E?=9676*-5.'# " # #     #&)))'&''('&'%%%%)'&(*),-*%)*''))** & & '& # !'($$$  $% $()' % #  B9~  59b;g %I : B'L=7:?9100(% # ! ! %    " $ '())' $ $('# & %&'%%$$ $ &)*)(''&'*)())# #$$""%%#" #   && $'++ ( &'   m/ &a # <9c:h/V ? 4< 5 /:*M4 3 / &     "# #        !*,' #"% #  " " &)($ # "  &'$#) # "&' # "#$% $$# "!  ! " ##"$&&%&*-,)++ $  TG %3 *K@k -W>849=8 )!p              #$#!  ! $ #   % * ( ' %&(&  $% " %'& $ $ # ! "#%$# " "&# ! " & $ !  #()+0* % &+/*& " f)Q / +M *O"G#G$K-P2X0]*V&N&L$HA<==5%# ! "$ !     ##!%'&$#  #&# "$) + +*+,*%%&&)*)()$$%%$%$$ '(%## #.,'',1104- ( )--(& % #  K 5x# A9d4` #J B*R)I'H(Q*V0W-S$JB!H%J?/$&%%' $#%&#%((%)++($"!#'+*%%*-.- ,+)''*.,+-0%&(% !&&'+,(&&% 8#;!5 16777:">#=&%>)&?306"$:3 " q. V  0 (L :f=h1V %C8e.V $H$I)K 8$D*R(M-O)L"C5%(*(% &""6*B*&())+*,-'! "$'+)%#%)+,+ ')+* )-(+/,$%(($*)'),)'),3#>'?!5%;":8#=*3I?H^RRbeZgl_mOHY:=SKKaUQe.2F1  M 6} * $C *P2X 6^4^2X3^,V %K 'J4V %; ; %G)K =!B:++(('$ & #(B$=\*H!6)=*>3/((**%%% &)&$$&&&)-*.,(&&)+,+)),. &*--*+*+ / 5.B%0F,C2G[\midtML_@BWsn}a[nLG[HCUXN^i\ktiyxk|sfwe]nKL^*3C's. T  1 ,M /S 4Y4\1Z.W6d4a3^6_;a9R*C$B*I315$6%3-,*')3$1J,A^+?\-;R1]!7R!3P 4R!74#+A&9L#3C *=)>&< 6"7*3G4;P4=L:;I?@PBCTKK[WXcbdlwt?BF)---.,**/2))(%)3#3A1BBBP@CR"-<#2#4FQ`pQas{u/,B6347"=+B(:QIWorw~XVj'%/ @(h  &46 9-R 4`S;>R9@S26$8!5445 6 62.';,6H$';"%8#8';).?'*=2:K3;LHJ\vvvNG`$+D'C3  3 65 ?8^ 8e8e8c 6a4Z2S ,P)S!5`8DhXSoToUk_r[s|k}q|su~x~Ncv2La9SkC^y>^yL]uR^sS]mHTd/E\)E`'A[3N+GMQgsu>>FI,o 6 -P/U1X3\/V2[:e9f ,Y/W*R'8_>VOpgknzzthg\rp~}EiP{cdz^o\_j&',c" ?  !=0U5\6_6`0X-W:e@k4]6c(Q"G-R6Jreyrry|{dieUmi`f|03< ~4 vR &)G,S0Z3[2Z3^.U+P.U5b1]%K)K(;^1IpPnhtw|c6b|7ay7ayAjTqpx:?NH$g  *.O1Z-V*S-W6a+R'K,P1Z&L&H(G0P1LqZwlopx{fOy/Xt=inPWg!%+ `2{   32W>h;d1Z+X7b-U+P.R,R#F%F#A)G6Rvc~olnsvy|kvxbk}/3; v+A !";3Y$It(Mv=e,V7a1Y-T,R(N'J#B >.M?[a}mmooqtw{nw:?J; R ! 0(HBk>c.P (L6d*R%K'L(J $C #>$@4TEc_{hiilmqux~yGM\!Kc * 7 >,R,N&D$F0\*Q(M*M +H 'D2Q<].Mo]vb{eggklot{}~vRYk"$+ Z)r 3 $D (J&N %H $C $E,S%L'J+J*E&@)@_=WyKfd{e{f}ghkkmqwyz{||\ey+.8 j% 3 8)N5^(Q,Q1T2T3Y,R)K)G)F,F4JhQf`ucwfyh{h}hkkmpqtvxz{~fo48Cz/= # 7(Ld9Ou8Pt-Mr*Hm :[/N4T$Db;VuDUjfxevgxiyizh|klmoqrtvxzz|~lw9?L: H ! 5)I>d7QpK`QgPfUhUgMaG]|J`Vl\q_rbscscvdxfzhzk|mllnqtvvxy{~q{AGW CR#3#@1Q8NmQbXjVi\k]l\lZlZn_qararbqcscudwfyiyl{m}mnortuvxy|~zu~GL^$LZ  +8!=&F"8YIXz]iXhZi[j]l^m]n]m_oapbqbsdtevgwjylzl{n}pqrtuuvz}~}wMRe!) S a 2#>$B$1R4VGUv_iYgZhZi[j]l]l]l_n`oaparcretgvjxiyk{m}o~qqtutty{{{|~yPWj#%. Z$i , 6,IOYvYdZeYeYeZf[iZjZk\l_k_m_n_naqcresguhwhxjym{n}n~oqttvwxyy{|~yQWk#'/ ^ 'm)-D3D`Q^{ZeZf~Xf~Xe[f[gZhZi\j_k^l]m^nbpcrdsdteuiwiwjxl{l}n~pstuuvxxzy{wSZn&)2 b"(p !,<9H^L[uTb|Xd~Xe~Xf~YfZf\f\h\h]h^j^l`manandpererethvhvivkxl{n|o}psttuwxzz{}~xRZn&)2 e$*s$4=OLYoXf}Wd}Yd~XeXfYfZf]g]h]g^g^j_kblelbmdpfpfqfshuhvivkwmynzn{o}rsspuvwy{||}xRYm%(1 e$+t  )8>QKVmSbzWc}[c|[d~[eZf[f]g]g\g]h^j_jbjekdmdpfogofrgrhtiwjxmxnxnzn|p~rstuuwyz{{u}SWl%(1 c#,v (9>OMTlV_zX`{Yb{Za|Zb~[c]d~\dZfZg\h]i_ibicjakcmfnfodpdqfshtiujwjvlyn|n|o~qrsuvxyy{|}r{NTg"%- b",v  )9>QMVmTazUb}Wb}Yb}Zb{Zby\dz[d~Ze~[f}]f}^g`hbibiakakbmdpfpepfrfsfuhwjwkyl{m|n}o~qsttuwyzz|}}qzLSe"$- _ +t '8DVPXlU`tV^tV]uY^w[`yX`wYaw[av[av[cy\dx\d|^d}`e|^g]g^g_g_hbjckelemdmengnhohrgsjsktktmtnumvnwqyqzq{s|t|t~v~vvvwwxxxz{z{}}~~~}{}~}||osRVj),6 ~3 = "$.<@SPUmV\qW\qV]tX_wZ`wX`vY`u[at\at]au[av[bx]cx^cw]dx^f{^f~_g`h}ahcidjcleldjflgngohqiqiqhqjrmrosounvpwpyqzq{q|t|u~uttwwvvwyz{|}}}{|}~~|}$~~~}~}{|~~{y{~|zzzyjoKNb$%/ r* 2 '6:JMQfV\pV]rW\rX]sX^tY_sZ_tZ_t[_u]`w]aw[bw[bx]by^by]cx^d{_f}_g{`f}bgchcicjdjdkemfneogphpipiqkqlqmrmtnvmwnxpxqyrzs{s|s|r~t~uvwvvwwxz{zz|||}{}}}~~~~|~}~~}|||~~}{zyyyz|{zy{v|chBEU% b!(q14@HM^TYmV\rW[rX[rX\sZ^rZ]sZ]sZ^t[`u[`uZbxZbx\aw^cy^by_cy`dz`fz`f|bf}cfbgahcickdleldmfngnhnhphphpjqmsksltmumuouqxqyqyrzr{s{t|u}w~v~vvvwxyyy{{zzz}}|}}}}}z|}}~|}}}}|{{|z{{zzxwxzxy~y}x~x~wqw[_u8;ITa+,7BGXQViVZpWZtXZtZ[rY\r[]rZ^rY^rY_sX`sXaxZ`w\_s]bu`cy`by`byaezae{bezbe|bf~ahbhcidjejekelfkgkhnhnfohplqjrlrlrksmspvowpxqxsyqzrzt{u|u|u}v~wvwxyyxyxxy{{|}{zzzxzz{|{zz{{zzzzyxxy{yw}x|y}v~w}w|v{v{t|lqRUj01=EO#$-;?ONSgUYqVZsXZrZ[qWZpY\pY^sX^tZ]s[_sZ^tZ^u\_s[`p_bt`ax`ay`cz_cy`dy`e{ae}bf~bg}bg~dgeheidjejgkhkjlimimjmkqkolqmsmtnvnwpwrxtwoypzrzsyszt{u{t|r|t|v|v|w}v}w}w~wwwyz{{yyyzzy~x~xy~ywuwzy~x~w~zw~w~x}y|x~v}v{u{t{v|w{vzsyrwfkIL_'&2 5  = $57GJMcSVmVZpXZpXZnWZpX[oY\qZ[s[[s]]s\]s[]r[]r]_s]_s^_u_au_au_`u`bwacxbcxaczaezaezbe{dh~bi~difjfjfjfjgkhkjjimgoiokolrkslvmvouqvoupvpxpxqzs{s{r|s|ryszt|u|vzv{v|v|w{w{x}x}w|y|w|w|x}y}x}w}w}w|x|x|v|u|u~w~u}u|u{w|v{u|u{wzu{uzuztzsxsyuxvxuxpu_b{@BR' r(,r-.9FGZRSjVXnVXnWXnXYnXZnYZn[Zo[Zp\\q[\p[\p[]q[]r\]r^^t__t_`t^_t_at`at``uabx`cx`cxadydf{cg}ehfheigkfkflhljminjpioinjnjokqltnvpzoxnxnynxoyr|ssuut}s|u|v|u{s{s{uztyvyxzxzv{u{vzwzvzvzv{u{uzx{xyvytzt{u{tzuzvzuytztzsxswuwtwswsxrwrwrwsvruloVYo56D\\$$-??OPOeUVlVWnXWnXYmYXmYXmZYm[YmZZpZ[oZ[n[]o[\p[]p\]r^^s^_s]_s^_s__s_`u`aw`aw`bxacxcdydezee}de~dffifkekelhnhnjninhmhmjmknlpmtnynzmzmylvmuq{rrtvustvu~s~rr~s}s|u{w{t|tzuxuxsxtxvxvxtxuyuxuxtysysxsxtxvwswqwrwsvqutusuququqvpvpvpunreiKNa*+6GE #56DKK\STiVVnXWmXXlYVlYWmXXmZYmYZpYZoZZm[[m\\oY\n[\o]\p\^p]^r]]s^^t_`v__u``w``waawbbxccxbcvbcxbdzdeyeg}cg}chekfkgjhjhkgljllllljnjqkxlylukrlqnunwoyp{rrrrsttsrsqqsrs{txswqvqvtwuvtvqwpwrvsvqvrwqvqurupvotptququqtpsosotrsosnsnsjo[`y?AQ ) 6 0v,+7DCTPOcTTiVTjVVjVUjVUjWWkXYlWXkWXjXXkZXl[YmXYmYZn\\p]]q\]p\]q[]q\]q_^q^`q^`q^_r__taauaawaawbcvcdxbezceydezdf|cg{dgzfh}hifh}hihihjglgkioiqioimkpkplomonqltmwnynzmzn}p~rtrqrsprs~r{pyoxqxqwoumtntotosotrtpsnqlqmsornqmrlslrmqnqnqnpnnmpkpehQSi12?f$\ #!)=:GNL\UTgUSiTUgSTfTUgVVhWVgVWgVUhXVkYYnYYmXXlYXkZYm[[p[Zo[[n[\n[]o]]n]^n^_m^_n]_p^^q__s_`t^at_cvadvbbsbbtbdxadycdzbe{cf{gg{gg|gh~gifhhifmekgjilikilimkmlmjojqkqjoipjqlsmvnxo{o|p|p|n{n{o|p|p{q|q{p{p{owlqmpnrmrmqnrlpjolqnqlpkojojninjnlnlnmllmhl]byEGY%%0NC 31:HFSRQbSSgRSgSReTTeUTdVSdUUgWUiXUjWVkWXlXWkXWiXXjZXlZWm[Ym[[n\[o[[m\[m\]l\^l[^m]^o^`p]`p\_q^at_as`aqabsabv`btccyadzaeyffzedyef{fg|ff|gg}fiehfhhjghgjgkhlilhlhlimimhlimknlolplrmtmtktkvlvlvmwnxnxnwnwownulqkpkploinjnjnjmlnlnkmjmimimhmimjlikiljkefTXl79G  }6 ,p('/>=ILK\QReSRfUQeURdURbURcUShWTiWThWThWViXUhWVhWWiZWjYVlZYm[Zn[ZnZZm[Zm[\mZ]mZ]m\^n]_o\^n\^p_`t^_s_ar`bs`bu`brbbvbbwbcwcdxbcwccyddzee{dezef|ff}ff}fg{gh|fh|ei~fjfkgjgjhlimhlimjmklkkkjjljniojpkpjojolqipiqjqmplplqjpiojngmgliljljljjjjikhlililikhkgjglgj_`wIK\)*5_!Q $33@EEWPPbURcWPdWQdVRcURcVRiURgWSfYTgWUhXTdWUfVWjXXkZXkZYlYYmYYmZZl[\lZ[mZ[m[\lZ[m[\m\]p^]s`_u_^s^^r^`r^ar_at_`sa`sa`s`auabvabvbcxcdzccyddzddzddzeezfg{df{df}egehgigighghhjgkhjijijjjhjhkjlijhjhjiklkfkdlglkliminiohogngminimhkilhiiiijgjhjjjiighfjgjcgUWm;;I$ D 6)'2>=LKL^RObTPeUQdTRcSSfSQeURdVRdURdVSfXTgWUhVUhVVhVUgVUkWUlYUjZVjZYkZXkZXkZZk]Zp][o\\o\\p\\p_\o^^p\^q\^q]^s^_r__r`_t__u^aw^bw_bwaaxaayaaw bcwcdxcdzcdzdf{df{de{dd}fg}fg}ff}ff}fg~ghggggggghhhfieighhigifhghgigjhjhjgkflgkikjlhkhkijiiijhihigifihjhighegdgef\^wGI\+,7l+ ] "31&$+:9DHGUOL\PM^ON_QO`RO^RO_PO`PO`QQbQObSQdTRdURbSRbVRdVTfUVfVUeUUhUUhUVhVWiVWjVWkWWjYXi[XhXYiXZjZZiZ[iZ[nZ[qZ[o[\m\]o\\n\]m\]l\]m\^o\^p]^p__s``v_`t_`t`at_bt^bt``sabtacu`bu`cwbcycbxcbwbdzcdzae{`ey`dwadxceyddycczbc{bdyceycdzcc{bez`ezae{bf|cf|ce~bfbgbgce|cfbg~ag}`e~^e|_d|_d|_d}`b{XZnDET)*3u/ %d  --5AAJLJWNM]MN^PM\OM[OO\OO^PN_OO_QO_QO`SQcVSeRQ`RRaSRbTScVScUTgTTfUTfVUgUUgVWkVWkWWiYXhWXgWXhYYh[YhZXlYYoYZlZ[i\]m[\l[\k\\k\\k\]m\\n]]n]^p]_r]^r^_r^`q]`p\ar^_q_`q^`q_`r`at`buaata`u`cx_bwacxacx_bv`bwaavbcxbdyacybbxadyadxacxbdyabw`bv`bu`bv`bw`cx`cx`bwabvbbz`cy_dz_d}^c}`c{_by^aw]\sNOa45@  O@ !%64?FDSMK\OL]QK\SL]QL\PL]QM_SN_SO_SN_TN`VPbTQbRRcRRcTQdWQfXShWReWScWTeVSeVTgUVhTVgVWfXWeWWgWWhWWgWWiVXlVYkXZiZZiYZkZZl[[l[\m\\n_Zp^[n\]m\]o\\p]]p\]o[]o]_t|^_t]^r]^o^_o^_s^_r^_r^_t_`u_`v__u``vaaw_av_`u`at`bt_`u`ax``x``w`avbcw`bw`av`at`asaav`av_at_`t`av_`t_at_au^aw_`w`av`bv]_sSTg??N##,r. #^+'/=9FKFWQK_PJ_QJ^RM_RN`RM`QM^QN^RN_RN`RO`TOaUPcUPcUObUQcUQeWRdXSdYSdZSdWUfWVfYUeWSdZUdXVeWVgYViYYjXXhXWgYWhYXjZ[lZ[l[Zl\[l[Zm[Zn\Zn\[m][l[[l\]m]]m\]m\]o\]m]^p^_q]]n^\q^^q^_q^_s__u__t`_t__u^_u^_s_`s_`s^_s^^t``v`^v`^u_`u_aua`va_u``s``r`_u__t``ta`t_`t_`t^`s^_t__wa`w``u^`qVYjFHZ--9K9y !3.8E>MOH[PJ`PJ]QL^RL`RLaPM_RM^RM_RMaQNbUNbWN`WO`VPaVQbTPdVQcWRcVRcYRcVTeWSdZScYSfZTdZUfZVhZViZXhXWgXWgXWhXXi[YkZYlZYl\Yk\YlZYn[Ym\Yl\[n[Zn][n^\m]\l\\l\\j\]n]^q^\p^\q]^p\_q]_s^^s_]p`]q_^r^]q^^q^^p^^r^^t^^u_^t`^s_^s^^t__sa^tb^ta^r_^s^_t__s`_r`_q__p`_s_^r_^r_^s`_v`_vZ[oMN^68E% j*P%"(:4@IBSOI]QJ[QJ^RK`SK`QL`SM`SL`RLaSMcVNbWN^VO^VPaWQbUObVOaVPaTPcVPcUReVRcXRbYThXSfYTgZUh[UgZUeXVeXWgXWhWWhZWjZWk[Wk\Wl\Xl[Xm[Xl[Xl\Yo[Zp]Yo]Zn\[m\[l][m\\n\[o][q^]q]]o\^p\^q]]q_\o_]o^]p^]o^^q^\p^]q^]s]]t_\s_]q^]q_]r`^s_]s`]q`]q^]r^^t^^s^]q^]o_]o_]q`\p_\o^\p^]s^[rSQe?>M%&.D ,j+'0>9HKEWQIZSJ^SJ_SK]PK^SL`RLaQLaSLaVN_UN_UOaUPaUO`VN^WN_WNaUOdVPeUPeUReUSeVTfWShWSgWSeYSeZTcWTcXUeZUgXUhXXj[Wi\Vj[Vl[Wm[Wl[Xl[Xm]Wm\Yn\Wm[Xm[Zo]Zo]Yq]Yo\Yn[Yn_[q^[o\[o\\o\\o^\p]\n]\n^\o_\q][r^[q^\q\[q_]s^[p^\o_]p_]t^]r]\n^\m`\p]\s\[r\[q\[p_\q\Zp^Zn^[o][p\[oWReGBQ.,6 \$? 0+7A;OMFWPI[PI[OHZPJ\PK^PK`QKbRLbSJ]TL]TL`SLaTL^SM]VN_XNbWNbUPbTOcSPeSQeTQcVPdWPcWQcVSdVQbWScWTdXSeXQgXTgXTfXTfWTgWUhZWiYWjXVjZUiXWjZVh[WfZWfZVj\Wk[XmZYo[Yo]Vn]Wn]Xm\Ym]YmZXlXYjYYj\Yl]Yk]Yo^Zo^[n\[m]Zm][o][n]Zk]Yn_[n^[o\[o\Zo]Zq[YpZZo[[o\[o\[o][n][p\YqVUiIGW41<  x6 Y "2-:C=KKEULHYKJZLI[MJ[NH[PH\RJ^RI\PJZPK[QJ\QJ[TK\VL\VL]VM^TM^RN_RN`SN`TOaTOaUPaUPaSPbTPaTR`URaVQcWQeVReVRfVRfVSeUTeWTgWThVTgWThVUhWUgXUfYUeZUg\UgYUgWVhWVkYWkYVjZVi[Wh[XhZXhXXgXXj[Ym\Xj\Vj]Wj\YkYXj[Xi[XiZYjZXk[Wk\Xm\Ym[YlYYl[WlZXlYXlYXlYXlXXkYYjZXjWShJHY65B & K 0m!%5/;C>LIFVKIYLHYLHXNGWPGXPHYPI[NIYNJYPJZPIZSJZTK[TK\TK\SK\RM\RM\SL]TM_TN`TO_TO_SO_UO_TP`TP`VPaWPbUQeUQeVQdUScTScVSeUReUSfVSgWShWTgXTgYSfYUeYTgXSfWSeWTfVVhVVgWUfYUf[VhZWhZWgYWhYWjZWh[Vi[VjZVjXVi[VjYViXWjYWlZWlZWlZXkZWjYWj[ViYWkYWlYWkYVkXWjZWhWScLHY97D##+`%A% )72?C?NJDUNEVMFVOGWPGWOGVOIYMHXNIXOKZPIZQIYRJ[RK]QJ\RK]PL[PL\RK^SK^SL_SM_TM^UN^VM_UN`UO`VO_UO_SQdVPdVPbTR`TSbVRbTRdTReVRfXRgYSgYRfYReXScWShWSgXSeWSdVSeWUfWUfXTgZUjZUjZVgXUeWTfXUfZViYVjYUiYUh\UlYVlXVkYVl[WlYWkXViYViZUiZUhXVjXVlYVk[UjZVjXReOIY<9F&$-t6 M '"*72>D=NLCTNDUNEWNFXNGVNGVNFUNGWOHZNGYQHXPIZOJ\OI]OJ\LJZNJ]QJ`SK]PL\RM]TM^UL^UK^RK_TL_TN^RO^QN`SObTObTP_UQ`VO`UQcUQcUO_VPeXQfWQcVP`WQbWQdXQdXRdUSdWReVSeWTeYTfWSgWTiVSfVTeVVgXUiWSfWSfXTfYTeZShYTiXUjWTiYThYTgXTgXThXTjUSdVTgXThXShWSgTQcMIY>:H)&1 B%W %"+61>E7EE=LIASI@RJARKCSLCSLBSMDTMEUMDUKCTMDUNEUNFUMEUOFYLFWLFWNFXPFWOGVMFUMGWNHYLGVPIZQH[PH[PIZPHWOJYNJZOJYRHYRIYQIYRJZSJZRHZTI]RI\PJ[OK\PK\OJ\QJ]SJ^SJ[RJYQJ[RJ^SJ_RL[QJ\RJ]RK^PK^PI\KEVC>L72>($, d2:m  %-*3:3?B:HE=MG@PHAQIAPJ@PKAQKBQKBQJARKBRJCRKCRKCSKCUJDTKEUMEVNDUMDSKESKFSLFUKGVNGXPGXOGWMGWNGUOHVOHXOHXPHXNHXNHXOIXPIYPFZQG\QHZPHXOIYOHYMIZMI\PI]RJZRIXQIYRI[TJ]QJZOHYNH[LJ[KEWF@Q=8F0,7!&  _/4f '!*3+6<7DA;KD=LF>MING@OIAOH@NGAOFANGAOIBPKBQIAPJBQKCRLBQLCQKDRKDRKCRKFUJCUKDTKETIDTJDTJDRLDSNDTLFUIETKETLFTKGULEWMFWMFVMFWNHZMFWMHXLHZLGZOHYNGWPHYQIZOHXOGWPHWKGTCBO?:H5/=($- Z+ .Z  "+&040;=7CE;IG;IH>OI@QI@PF?PGARJ@QI@OGAOIAOHAPIBQKBQKBRJBQICOIDQJDTICSGDUGCSICRKDTKDTLETMFUMEVKEUIESLFVMGXKEULDVMDVMDUMDTMFUKGVLHZMHZNFXNEUMFXNGYPHXOHVNETHAO@MH>OG>PJ@QJ@PI@PHAPIAOJBQKBRLBRKBRIARJBRJCSJCSKASJCTJDTLDSMCSLDSLDSLETLEUMDTMCSNDWNEXLEUMFVLDTLCSMCSNDTLGWLFYMEXNFWOEUNEXMEXKDTHAOD;J94?-*3!& sC >l $'.)360;=4AB8GD;KG>MH@OI@OH@PH?OJAQKARKAQKBQI@RJBSJBRIBQJBRKBRLCSLCRKCQKCRKCRKCRLCSMCRMBRMBUMCUMDRMFTLDTLDSMDSLDTLFWLEWMDVLDULCSJARE>N?9G83?0)4$ ( b50X   "$+%-2,691>=7EB;JF=LG=ME=MH?PI@PI@PJAPH@QI@OIAOHAOGCQJAQKAPIBPGCPHBQIBQK@QL?QKBPIAQIARJBQLBPKCRLDUMDTLCSHCSJCSKBRIAPF>NC:J=6D4/;+'0" &  {M(  !Dp   % )-'24-9:2?@6DA9GDLI>NI=NI@QI@OH@OH@PK@OJ>NH>NH@OIAQJARJ@RK?QL?PIAQJ@OH?OH@OJAPKBQKAUK?SJ>PF?OF=KB9H<4C7/4BA6CB9GB;JBME=KG?LG>LH=MH>OG>OH?OH?OH?PI@RJ>NG>ME?MF?MG>KD;JA8I=5E91?5.8-'1%!*" pH' <` !#& (+#-/'12+54.:60=72?83>93>:3>;3?=4B>6D@8E@8E>8E>7F>5C=5A:4@92>70:2+6.'3)#.#&  zS1#?b   ##'% (% '#&#&%('"++&//(3/)3-(1+'0*%.)#-'!+$' "  }X6 "=_          wV7  8TqgJ1 -C[uoT;' 0DZo" nXA,(8GWiz~n\L:) "-9DMWez~yvqkcZQF;0%  *8AB=41/-*%     OnCreate FormCreate OnDestroy FormDestroyPositionpoScreenCenter LCLVersion3.2.0.0 TGroupBox InGroupBoxAnchorSideLeft.ControlOwnerAnchorSideTop.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomLeftHeight\TopWidthAnchors akTopakLeftakRightAutoSize Caption Input flie: ClientHeightH ClientWidthTabOrderTButtonFileSelectButtonAnchorSideLeft.Control InGroupBoxAnchorSideTop.Control InGroupBoxLeftHeight$Hint4Select the input .dat file that requires correction.TopWidthxBorderSpacing.LeftCaption Select fileTabOrderOnClickFileSelectButtonClick TLabeledEdit InputFileAnchorSideLeft.ControlFileSelectButtonAnchorSideTop.ControlFileSelectButtonAnchorSideTop.Side asrBottomAnchorSideRight.Control InGroupBoxAnchorSideRight.Side asrBottomLeftHeight$Top&WidthAnchors akTopakLeftakRightBorderSpacing.TopEditLabel.HeightEditLabel.Width<EditLabel.Caption Filename:EditLabel.ParentColor LabelPositionlpLeftReadOnly TabOrder TLabeledEditTimeDifferenceAnchorSideLeft.ControlFileSelectButtonAnchorSideTop.Control TimeSpanEditAnchorSideTop.Side asrBottomLeftHeight$Top"WidthBorderSpacing.BottomEditLabel.HeightEditLabel.WidthEditLabel.CaptionRetrieved time difference:EditLabel.ParentColor LabelPositionlpLeftReadOnly TabOrder TLabeledEditStartDateTimeEditAnchorSideLeft.ControlFileSelectButtonAnchorSideTop.Control LongitudeEditAnchorSideTop.Side asrBottomAnchorSideRight.Control InputFileAnchorSideRight.Side asrBottomLeftHeight$TopWidthAnchors akTopakLeftakRightEditLabel.HeightEditLabel.WidthyEditLabel.CaptionStart UTC datetime:EditLabel.ParentColor LabelPositionlpLeftReadOnly TabOrder TLabeledEditEndDateTimeEditAnchorSideLeft.ControlFileSelectButtonAnchorSideTop.ControlStartDateTimeEditAnchorSideTop.Side asrBottomAnchorSideRight.Control InputFileAnchorSideRight.Side asrBottomLeftHeight$TopWidthAnchors akTopakLeftakRightEditLabel.HeightEditLabel.WidthrEditLabel.CaptionEnd UTC datetime:EditLabel.ParentColor LabelPositionlpLeftReadOnly TabOrder TLabeledEdit TimeZoneEditAnchorSideLeft.ControlFileSelectButtonAnchorSideTop.Control InputFileAnchorSideTop.Side asrBottomLeftHeight$TopJWidthn AlignmenttaCenterEditLabel.HeightEditLabel.WidthBEditLabel.Caption TimeZone:EditLabel.ParentColor LabelPositionlpLeftTabOrder TStaticTextTimeZoneExistsTextAnchorSideLeft.Control TimeZoneEdi@ tAnchorSideLeft.Side asrBottomAnchorSideTop.Control TimeZoneEditAnchorSideTop.Side asrCenterLeftHeightTopTWidthBorderSpacing.LeftCaption....TabOrder TLabeledEdit TimeSpanEditAnchorSideLeft.ControlFileSelectButtonAnchorSideTop.ControlEndDateTimeEditAnchorSideTop.Side asrBottomLeftHeight$TopWidthPEditLabel.HeightEditLabel.Width@EditLabel.Caption TimeSpan: LabelPositionlpLeftReadOnly TabOrder TLabeledEdit LatitudeEditAnchorSideLeft.Control TimeZoneEditAnchorSideTop.Control TimeZoneEditAnchorSideTop.Side asrBottomLeftHeight$TopnWidthn AlignmenttaRightJustifyEditLabel.HeightEditLabel.Width7EditLabel.Caption Latitude: LabelPositionlpLeftTabOrder TLabeledEdit LongitudeEditAnchorSideLeft.Control TimeZoneEditAnchorSideTop.Control LatitudeEditAnchorSideTop.Side asrBottomLeftHeight$TopWidthn AlignmenttaRightJustifyEditLabel.HeightEditLabel.WidthCEditLabel.Caption Longitude: LabelPositionlpLeftTabOrder TGroupBox OutGroupBoxAnchorSideLeft.ControlOwnerAnchorSideTop.ControlCorrectionGroupBoxAnchorSideTop.Side asrBottomAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomLeftHeight`TopWidthAnchors akTopakLeftakRightCaption Output file: ClientHeightL ClientWidthTabOrder TLabeledEdit OutputFileAnchorSideLeft.Control CorrectButtonAnchorSideTop.Control CorrectButtonAnchorSideTop.Side asrBottomAnchorSideRight.Control OutGroupBoxAnchorSideRight.Side asrBottomLeftHeight$Top&WidthAnchors akTopakLeftakRightBorderSpacing.TopBorderSpacing.BottomEditLabel.HeightEditLabel.Width<EditLabel.Caption Filename:EditLabel.ParentColor LabelPositionlpLeftTabOrderTBitBtn CorrectButtonAnchorSideLeft.Control OutGroupBoxAnchorSideTop.Control OutGroupBoxLeftHeight$Hint%Correct .dat file for time differenceTopWidthBorderSpacing.LeftCaptionCorrect .dat fileEnabled Glyph.Data :6BM66(  dd ^!oSQ==*/\+t*8|7j/Wh6u6H k iUy b <<3z3OZ tiPH\<<==22[\ l whOTU66GG:://ggj|xj"/O+w+QQEE88--rquwzMMj[[OOCC66++ | {xLx[``YYLL@@44**  wLHQ__ccWWJJ>>11++ uQTMWWmmaaUUHH<>11++ uQTMWWmmaaUUHH<EditLabel.Caption Directory:EditLabel.ParentColor LabelPositionlpLeftReadOnly TabOrder TStatusBar StatusBar1LeftHeightTopWidthrPanelsWidth2 SimplePanel TGroupBoxSettingsGroupBoxAnchorSideLeft.ControlOwnerAnchorSideTop.Control InGroupBoxAnchorSideTop.Side asrBottomAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomLeftHeightTopeWidth2BorderSpacing.TopCaptionLocal timezone: ClientHeight ClientWidth0TabOrder TGroupBoxStandardGroupBoxAnchorSideLeft.ControlTZMethodRadioGroupAnchorSideLeft.Side asrBottomAnchorSideTop.ControlTZMethodRadioGroupLeftHeighthTopWidthBorderSpacing.LeftCaption Standard: ClientHeightT ClientWidthTabOrder TComboBox TZLocationBoxAnchorSideLeft.ControlLabel11AnchorSideLeft.Side asrBottomAnchorSideTop.Control TZRegionBoxAnchorSideTop.Side asrBottomAnchorSideRight.Control TZRegionBoxAnchorSideRight.Side asrBottomAnchorSideBottom.Side asrBottomLeftdHeight#Top!WidthBorderSpacing.Top ItemHeightOnChangeTZLocationBoxChangeStylecsDropDownListTabOrder TComboBox TZRegionBoxAnchorSideLeft.ControlLabel6AnchorSideLeft.Side asrBottomAnchorSideTop.ControlSettingsGroupBoxAnchorSideRight.Side asrBottomLeftdHeightTopWidth ItemHeight Items.Stringsafricaasiaeurope northamerica antarctica australasiaetcetera pacificnew southamericaOnChangeTZRegionBoxChangeStylecsDropDownListTabOrderTLabelLabel6AnchorSideLeft.ControlSettingsGroupBoxAnchorSideTop.Control TZRegionBoxAnchorSideTop.Side asrCenterAnchorSideRight.Control TZRegionBoxLeftHeightTopWidthd AlignmenttaRightJustifyAutoSizeCaptionRegion: ParentColorTLabelLabel11AnchorSideLeft.ControlLabel6AnchorSideTop.Control TZLocationBoxAnchorSideTop.Side asrCenterAnchorSideRight.Control TZLocationBoxLeftHeightTop(Widthd AlignmenttaRightJustifyAutoSizeCaption Timezone: ParentColor TGroupBoxCustomGroupBoxAnchorSideLeft.ControlStandardGroupBoxAnchorSideTop.ControlStandardGroupBoxAnchorSideTop.Side asrBottomLeftHeightPTopmWidthBorderSpacing.TopCaptionCustom: ClientHeight< ClientWidthTabOrderTFloatSpinEditCustomOffsetEditLeftdHeight$TopWidthH Increment?MaxValue@MinValueTabOrderTLabelCustomOffsetLabelLeft8HeightTopWidth*CaptionOffset: ParentColor TRadioGroupTZMethodRadioGroupAnchorSideLeft.ControlSettingsGroupBoxAnchorSideTop.ControlSettingsGroupBoxLeftHeightPTopWidthAutoFill BorderSpacing.LeftCaptionMethod:ChildSizing.LeftRightSpacingChildSizing.EnlargeHorizontalcrsHomogenousChildResizeChildSizing.EnlargeVerticalcrsHomogenousChildResizeChildSizing.ShrinkHorizontalcrsScaleChildsChildSizing.ShrinkVerticalcrsScaleChildsChildSizing.LayoutcclLeftToRightThenTopToBottomChildSizing.ControlsPerLine ClientHeight< ClientWidth ItemIndex Items.StringsStandardCustomOnClickTZMethodRadioGroupClickTabOrderTMemoMemo1AnchorSideLeft.Control InGroupBoxAnchorSideLeft.Side asrBottomAnchorSideTop.Control InGroupBoxAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.Control StatusBar1Left6HeightTop Width<Anchors akTopakLeftakRightakBottomBorderSpacing.LeftBorderSpacing.Top Constraints.MinWidth Lines.StringsThis tool is used when the datalogger timezone was not set properly. The local timestamp is recomputed for each record based on the timezone selections. One .dat file or a directory of .dat files can be corrected.The "Standard" timezone usage uses a selected timezone region and timzone as the basis for computing the local time stamp from the existing UTC timestamp.The "Custom" timezone usage allows the user to enter a custom time offset in hours as the basis for computing the local time stamp from the existing UTC timestamp.If a single inpute file was selected, then the corrected output file will be stored in the same directory with "_LocalCorr" appened to the filename.If a directory of input files was selected, then the corrected files will be stored in a subdirectory called LocadCorr, and each file will have "_LocalCorr" appened to its filename.ReadOnly ScrollBarsssAutoVerticalTabOrder TOpenDialog OpenDiValog1LeftpTopTSelectDirectoryDialogSelectDirectoryDialog1LeftpTopFORMDATATdatlocalcorrectformNo _MPSASCorr"data log files|*.dat|All files|*.*%d3Waiting to start correction, press "Correct" button#Invalid model %d, must be 6 to 11. /Invalid firmware version %d, must be 49 to 56. AThis file [%s] has already been corrected, please select another./Checking Input file for proper firmware version Processing : # SQM firmware version:CorrectedMPSASFinished checking'File handling error occurred. Details: /  Filename: Error@@$@YesToAllSingle+Do you want to overwrite the existing file?Overwrite existing file?YesNoMultiple/Do you want to overwrite the existing file(s)? Overwrite existing file(s)?AbortNAReading Input file#UTCLocalMSAS Record type-CorrectedMPSAS1;%0.2fDFile did not contain proper MSAS or Record Type field(s). Filename: MSAS field number = Record type field number = File processing aborted.Finished writing %s'File handling error occurred. Details: *.dat!Finished writing corrected files. TPF0 TCorrectForm CorrectFormLeftHeightTopWidth[Caption$Correct DL firmware 49-56 .dat files ClientHeight ClientWidth[Constraints.MinHeightConstraints.MinWidthV Icon.Data B> (( dd !#$#""!  '1;DMU[adeedb`]XRKD=5+!  !.>N^mzsdTC4(  $8Nczp\G2!  4Mg{cI2 +C]yw\A)  0Kk         iI,/Ot          oK,+Lt          % ) ) ( + , . * #!       oJ+$Ek          & / 2 - - 4 4 5 0 ) ( " % ' $ "       jA" 5^   #32$    !     ' . 1 0 1 6 7 5 1 / 0 * * + + ) $ # % $ # - ."    Y2 #Ht  '/ 3 9 >: *    $ & "  #) ) / 4 7 7 9 5 3 58 3 /-+ $ " & + ) + 3 1 ( .$     oA 2]'//. 7)M "C +      ! $  ! ) + . 02 5 4 5 6 7 8 5 3 - & %& % $ & ) ) * 1 9 4 -&#& U+Cq %0/ ' ( & (2 , $      & " ! $ & ) '&+ ) / 5 8 8 89 5 - 2 . % !( *+. 5:9 4 1 2 /,$   g8 $N # 6 "@ ; ! ! !  " "     $' !"# " $' " !& &*3 9 7:; 8 4 : 3 ($+.-,.38 : ; !; 4 6 2("  tD +W   , 6!?#B $  ! " " ! " "   !& $#$$ $&%#$) **1 83: 7 4 5 5 / + ) ,0 * %$ )3=#B "@ 7 < : 1 1 +O$ /`    %&'' %    " !  ! # $ #   !)&"#' "  $')).3 1 1 2 1 - & " $ ( , 0 0,()*5 "A &D8> < 6; ; . U& 3g     && $ !        $(" ! &)' % % !  ! #$#%/7 4 5 4 2 / + ( .3 / 1 5 3,%& ' /$> / 373 * 3 -   Z* 4g   )) $ ! " ! ! !      #  $) %%& %(*+* $ #& ' &(' - 5 6 3 5 512 / 14 // 1 1, %'& (1 * + - * &. + #  ]- 4h   %/. ( !  !       % # " # % % '& ! #)., '&*+ '- ' ' -0 1 66361 0 / -.- ,* '+,+ ((% # #&)' #    ]*  0f  0. # "  " #          #$# " ! " #   ' ( & &), * & ( " # $36 5 571. . -2 / * (),/. (%     "    " "  Y'  +b  (/*  ! !            ! ! ! ! " ! ! # * . ---, ( " ! ! "#" & & ' ,552 . - 0 ,( % % $ % $              U" &Z  $/53,+' & %              ! "'** +/,+- -10* #   #)( # ! %.43 - * % %%$# " ! !     $   !  LQ   ' 12432:40, !   !           (-/00)&' */-*' #  )+ $  "',.+ % ! " "% "  !    !  !    # # " ! CE '2 9?80+-;<5*   ! # !    !       % ),/ ' $ ! !& ' &') ) $   ") $ "# $'( # "!  ") $ ""!       !  !% ' & $   u98u  1 "D+Q2W0W.S6 % (.+ " " "      "      & % % , ) % # # " $ # # % $ "  ! $ ( )& ! $ $ $ '#&& %* $ %'$"##"!    !',+ *$ j/ )e! 6.T0X !D 4>6/4, %(.*% ! " $    !   !%& $)' %+*&%%$##$'*(&& '&+.) "()% $ $' ( ' * ( ( ( # !&&# $"" ! "#$&('%"   W P$ &F +O)N%I!E?=9676*-5.'# " # #     #&)))'&''('&'%%%%)'&(*),-*%)*''))** & & '& # !'($$$  $% $()' % #  B9~  59b;g %I : B'L=7:?9100(% # ! ! %    " $ '())' $ $('# & %&'%%$$ $ &)*)(''&'*)())# #$$""%%#" #   && $'++ ( &'   m/ &a # <9c:h/V ? 4< 5 /:*M4 3 / &     "# #        !*,' #"% #  " " &)($ # "  &'$#) # "&' # "#$% $$# "!  ! " ##"$&&%&*-,)++ $  TG %3 *K@k -W>849=8 )!p              #$#!  ! $ #   % * ( ' %&(&  $% " %'& $ $ # ! "#%$# " "&# ! " & $ !  #()+0* % &+/*& " f)Q / +M *O"G#G$K-P2X0]*V&N&L$HA<==5%# ! "$ !     ##!%'&$#  #&# "$) + +*+,*%%&&)*)()$$%%$%$$ '(%## #.,'',1104- ( )--(& % #  K 5x# A9d4` #J B*R)I'H(Q*V0W-S$JB!H%J?/$&%%' $#%&#%((%)++($"!#'+*%%*-.- ,+)''*.,+-0%&(% !&&'+,(&&% 8#;!5 16777:">#=&%>)&?306"$:3 " q. V  0 (L :f=h1V %C8e.V $H$I)K 8$D*R(M-O)L"C5%(*(% &""6*B*&())+*,-'! "$'+)%#%)+,+ ')+* )-(+/,$%(($*)'),)'),3#>'?!5%;":8#=*3I?H^RRbeZgl_mOHY:=SKKaUQe.2F1  M 6} * $C *P2X 6^4^2X3^,V %K 'J4V %; ; %G)K =!B:++(('$ & #(B$=\*H!6)=*>3/((**%%% &)&$$&&&)-*.,(&&)+,+)),. &*--*+*+ / 5.B%0F,C2G[\midtML_@BWsn}a[nLG[HCUXN^i\ktiyxk|sfwe]nKL^*3C's. T  1 ,M /S 4Y4\1Z.W6d4a3^6_;a9R*C$B*I315$6%3-,*')3$1J,A^+?\-;R1]!7R!3P 4R!74#+A&9L#3C *=)>&< 6"7*3G4;P4=L:;I?@PBCTKK[WXcbdlwt?BF)---.,**/2))(%)3#3A1BBBP@CR"-<#2#4FQ`pQas{u/,B6347"=+B(:QIWorw~XVj'%/ @(h  &46 9-R 4`S;>R9@S26$8!5445 6 62.';,6H$';"%8#8';).?'*=2:K3;LHJ\vvvNG`$+D'C3  3 65 ?8^ 8e8e8c 6a4Z2S ,P)S!5`8DhXSoToUk_r[s|k}q|su~x~Ncv2La9SkC^y>^yL]uR^sS]mHTd/E\)E`'A[3N+GMQgsu>>FI,o 6 -P/U1X3\/V2[:e9f ,Y/W*R'8_>VOpgknzzthg\rp~}EiP{cdz^o\_j&',c" ?  !=0U5\6_6`0X-W:e@k4]6c(Q"G-R6Jreyrry|{dieUmi`f|03< ~4 vR &)G,S0Z3[2Z3^.U+P.U5b1]%K)K(;^1IpPnhtw|c6b|7ay7ayAjTqpx:?NH$g  *.O1Z-V*S-W6a+R'K,P1Z&L&H(G0P1LqZwlopx{fOy/Xt=inPWg!%+ `2{   32W>h;d1Z+X7b-U+P.R,R#F%F#A)G6Rvc~olnsvy|kvxbk}/3; v+A !";3Y$It(Mv=e,V7a1Y-T,R(N'J#B >.M?[a}mmooqtw{nw:?J; R ! 0(HBk>c.P (L6d*R%K'L(J $C #>$@4TEc_{hiilmqux~yGM\!Kc * 7 >,R,N&D$F0\*Q(M*M +H 'D2Q<].Mo]vb{eggklot{}~vRYk"$+ Z)r 3 $D (J&N %H $C $E,S%L'J+J*E&@)@_=WyKfd{e{f}ghkkmqwyz{||\ey+.8 j% 3 8)N5^(Q,Q1T2T3Y,R)K)G)F,F4JhQf`ucwfyh{h}hkkmpqtvxz{~fo48Cz/= # 7(Ld9Ou8Pt-Mr*Hm :[/N4T$Db;VuDUjfxevgxiyizh|klmoqrtvxzz|~lw9?L: H ! 5)I>d7QpK`QgPfUhUgMaG]|J`Vl\q_rbscscvdxfzhzk|mllnqtvvxy{~q{AGW CR#3#@1Q8NmQbXjVi\k]l\lZlZn_qararbqcscudwfyiyl{m}mnortuvxy|~zu~GL^$LZ  +8!=&F"8YIXz]iXhZi[j]l^m]n]m_oapbqbsdtevgwjylzl{n}pqrtuuvz}~}wMRe!) S a 2#>$B$1R4VGUv_iYgZhZi[j]l]l]l_n`oaparcretgvjxiyk{m}o~qqtutty{{{|~yPWj#%. Z$i , 6,IOYvYdZeYeYeZf[iZjZk\l_k_m_n_naqcresguhwhxjym{n}n~oqttvwxyy{|~yQWk#'/ ^ 'm)-D3D`Q^{ZeZf~Xf~Xe[f[gZhZi\j_k^l]m^nbpcrdsdteuiwiwjxl{l}n~pstuuvxxzy{wSZn&)2 b"(p !,<9H^L[uTb|Xd~Xe~Xf~YfZf\f\h\h]h^j^l`manandpererethvhvivkxl{n|o}psttuwxzz{}~xRZn&)2 e$*s$4=OLYoXf}Wd}Yd~XeXfYfZf]g]h]g^g^j_kblelbmdpfpfqfshuhvivkwmynzn{o}rsspuvwy{||}xRYm%(1 e$+t  )8>QKVmSbzWc}[c|[d~[eZf[f]g]g\g]h^j_jbjekdmdpfogofrgrhtiwjxmxnxnzn|p~rstuuwyz{{u}SWl%(1 c#,v (9>OMTlV_zX`{Yb{Za|Zb~[c]d~\dZfZg\h]i_ibicjakcmfnfodpdqfshtiujwjvlyn|n|o~qrsuvxyy{|}r{NTg"%- b",v  )9>QMVmTazUb}Wb}Yb}Zb{Zby\dz[d~Ze~[f}]f}^g`hbibiakakbmdpfpepfrfsfuhwjwkyl{m|n}o~qsttuwyzz|}}qzLSe"$- _ +t '8DVPXlU`tV^tV]uY^w[`yX`wYaw[av[av[cy\dx\d|^d}`e|^g]g^g_g_hbjckelemdmengnhohrgsjsktktmtnumvnwqyqzq{s|t|t~v~vvvwwxxxz{z{}}~~~}{}~}||osRVj),6 ~3 = "$.<@SPUmV\qW\qV]tX_wZ`wX`vY`u[at\at]au[av[bx]cx^cw]dx^f{^f~_g`h}ahcidjcleldjflgngohqiqiqhqjrmrosounvpwpyqzq{q|t|u~uttwwvvwyz{|}}}{|}~~|}$~~~}~}{|~~{y{~|zzzyjoKNb$%/ r* 2 '6:JMQfV\pV]rW\rX]sX^tY_sZ_tZ_t[_u]`w]aw[bw[bx]by^by]cx^d{_f}_g{`f}bgchcicjdjdkemfneogphpipiqkqlqmrmtnvmwnxpxqyrzs{s|s|r~t~uvwvvwwxz{zz|||}{}}}~~~~|~}~~}|||~~}{zyyyz|{zy{v|chBEU% b!(q14@HM^TYmV\rW[rX[rX\sZ^rZ]sZ]sZ^t[`u[`uZbxZbx\aw^cy^by_cy`dz`fz`f|bf}cfbgahcickdleldmfngnhnhphphpjqmsksltmumuouqxqyqyrzr{s{t|u}w~v~vvvwxyyy{{zzz}}|}}}}}z|}}~|}}}}|{{|z{{zzxwxzxy~y}x~x~wqw[_u8;ITa+,7BGXQViVZpWZtXZtZ[rY\r[]rZ^rY^rY_sX`sXaxZ`w\_s]bu`cy`by`byaezae{bezbe|bf~ahbhcidjejekelfkgkhnhnfohplqjrlrlrksmspvowpxqxsyqzrzt{u|u|u}v~wvwxyyxyxxy{{|}{zzzxzz{|{zz{{zzzzyxxy{yw}x|y}v~w}w|v{v{t|lqRUj01=EO#$-;?ONSgUYqVZsXZrZ[qWZpY\pY^sX^tZ]s[_sZ^tZ^u\_s[`p_bt`ax`ay`cz_cy`dy`e{ae}bf~bg}bg~dgeheidjejgkhkjlimimjmkqkolqmsmtnvnwpwrxtwoypzrzsyszt{u{t|r|t|v|v|w}v}w}w~wwwyz{{yyyzzy~x~xy~ywuwzy~x~w~zw~w~x}y|x~v}v{u{t{v|w{vzsyrwfkIL_'&2 5  = $57GJMcSVmVZpXZpXZnWZpX[oY\qZ[s[[s]]s\]s[]r[]r]_s]_s^_u_au_au_`u`bwacxbcxaczaezaezbe{dh~bi~difjfjfjfjgkhkjjimgoiokolrkslvmvouqvoupvpxpxqzs{s{r|s|ryszt|u|vzv{v|v|w{w{x}x}w|y|w|w|x}y}x}w}w}w|x|x|v|u|u~w~u}u|u{w|v{u|u{wzu{uzuztzsxsyuxvxuxpu_b{@BR' r(,r-.9FGZRSjVXnVXnWXnXYnXZnYZn[Zo[Zp\\q[\p[\p[]q[]r\]r^^t__t_`t^_t_at`at``uabx`cx`cxadydf{cg}ehfheigkfkflhljminjpioinjnjokqltnvpzoxnxnynxoyr|ssuut}s|u|v|u{s{s{uztyvyxzxzv{u{vzwzvzvzv{u{uzx{xyvytzt{u{tzuzvzuytztzsxswuwtwswsxrwrwrwsvruloVYo56D\\$$-??OPOeUVlVWnXWnXYmYXmYXmZYm[YmZZpZ[oZ[n[]o[\p[]p\]r^^s^_s]_s^_s__s_`u`aw`aw`bxacxcdydezee}de~dffifkekelhnhnjninhmhmjmknlpmtnynzmzmylvmuq{rrtvustvu~s~rr~s}s|u{w{t|tzuxuxsxtxvxvxtxuyuxuxtysysxsxtxvwswqwrwsvqutusuququqvpvpvpunreiKNa*+6GE #56DKK\STiVVnXWmXXlYVlYWmXXmZYmYZpYZoZZm[[m\\oY\n[\o]\p\^p]^r]]s^^t_`v__u``w``waawbbxccxbcvbcxbdzdeyeg}cg}chekfkgjhjhkgljllllljnjqkxlylukrlqnunwoyp{rrrrsttsrsqqsrs{txswqvqvtwuvtvqwpwrvsvqvrwqvqurupvotptququqtpsosotrsosnsnsjo[`y?AQ ) 6 0v,+7DCTPOcTTiVTjVVjVUjVUjWWkXYlWXkWXjXXkZXl[YmXYmYZn\\p]]q\]p\]q[]q\]q_^q^`q^`q^_r__taauaawaawbcvcdxbezceydezdf|cg{dgzfh}hifh}hihihjglgkioiqioimkpkplomonqltmwnynzmzn}p~rtrqrsprs~r{pyoxqxqwoumtntotosotrtpsnqlqmsornqmrlslrmqnqnqnpnnmpkpehQSi12?f$\ #!)=:GNL\UTgUSiTUgSTfTUgVVhWVgVWgVUhXVkYYnYYmXXlYXkZYm[[p[Zo[[n[\n[]o]]n]^n^_m^_n]_p^^q__s_`t^at_cvadvbbsbbtbdxadycdzbe{cf{gg{gg|gh~gifhhifmekgjilikilimkmlmjojqkqjoipjqlsmvnxo{o|p|p|n{n{o|p|p{q|q{p{p{owlqmpnrmrmqnrlpjolqnqlpkojojninjnlnlnmllmhl]byEGY%%0NC 31:HFSRQbSSgRSgSReTTeUTdVSdUUgWUiXUjWVkWXlXWkXWiXXjZXlZWm[Ym[[n\[o[[m\[m\]l\^l[^m]^o^`p]`p\_q^at_as`aqabsabv`btccyadzaeyffzedyef{fg|ff|gg}fiehfhhjghgjgkhlilhlhlimimhlimknlolplrmtmtktkvlvlvmwnxnxnwnwownulqkpkploinjnjnjmlnlnkmjmimimhmimjlikiljkefTXl79G  }6 ,p('/>=ILK\QReSRfUQeURdURbURcUShWTiWThWThWViXUhWVhWWiZWjYVlZYm[Zn[ZnZZm[Zm[\mZ]mZ]m\^n]_o\^n\^p_`t^_s_ar`bs`bu`brbbvbbwbcwcdxbcwccyddzee{dezef|ff}ff}fg{gh|fh|ei~fjfkgjgjhlimhlimjmklkkkjjljniojpkpjojolqipiqjqmplplqjpiojngmgliljljljjjjikhlililikhkgjglgj_`wIK\)*5_!Q $33@EEWPPbURcWPdWQdVRcURcVRiURgWSfYTgWUhXTdWUfVWjXXkZXkZYlYYmYYmZZl[\lZ[mZ[m[\lZ[m[\m\]p^]s`_u_^s^^r^`r^ar_at_`sa`sa`s`auabvabvbcxcdzccyddzddzddzeezfg{df{df}egehgigighghhjgkhjijijjjhjhkjlijhjhjiklkfkdlglkliminiohogngminimhkilhiiiijgjhjjjiighfjgjcgUWm;;I$ D 6)'2>=LKL^RObTPeUQdTRcSSfSQeURdVRdURdVSfXTgWUhVUhVVhVUgVUkWUlYUjZVjZYkZXkZXkZZk]Zp][o\\o\\p\\p_\o^^p\^q\^q]^s^_r__r`_t__u^aw^bw_bwaaxaayaaw bcwcdxcdzcdzdf{df{de{dd}fg}fg}ff}ff}fg~ghggggggghhhfieighhigifhghgigjhjhjgkflgkikjlhkhkijiiijhihigifihjhighegdgef\^wGI\+,7l+ ] "31&$+:9DHGUOL\PM^ON_QO`RO^RO_PO`PO`QQbQObSQdTRdURbSRbVRdVTfUVfVUeUUhUUhUVhVWiVWjVWkWWjYXi[XhXYiXZjZZiZ[iZ[nZ[qZ[o[\m\]o\\n\]m\]l\]m\^o\^p]^p__s``v_`t_`t`at_bt^bt``sabtacu`bu`cwbcycbxcbwbdzcdzae{`ey`dwadxceyddycczbc{bdyceycdzcc{bez`ezae{bf|cf|ce~bfbgbgce|cfbg~ag}`e~^e|_d|_d|_d}`b{XZnDET)*3u/ %d  --5AAJLJWNM]MN^PM\OM[OO\OO^PN_OO_QO_QO`SQcVSeRQ`RRaSRbTScVScUTgTTfUTfVUgUUgVWkVWkWWiYXhWXgWXhYYh[YhZXlYYoYZlZ[i\]m[\l[\k\\k\\k\]m\\n]]n]^p]_r]^r^_r^`q]`p\ar^_q_`q^`q_`r`at`buaata`u`cx_bwacxacx_bv`bwaavbcxbdyacybbxadyadxacxbdyabw`bv`bu`bv`bw`cx`cx`bwabvbbz`cy_dz_d}^c}`c{_by^aw]\sNOa45@  O@ !%64?FDSMK\OL]QK\SL]QL\PL]QM_SN_SO_SN_TN`VPbTQbRRcRRcTQdWQfXShWReWScWTeVSeVTgUVhTVgVWfXWeWWgWWhWWgWWiVXlVYkXZiZZiYZkZZl[[l[\m\\n_Zp^[n\]m\]o\\p]]p\]o[]o]_t|^_t]^r]^o^_o^_s^_r^_r^_t_`u_`v__u``vaaw_av_`u`at`bt_`u`ax``x``w`avbcw`bw`av`at`asaav`av_at_`t`av_`t_at_au^aw_`w`av`bv]_sSTg??N##,r. #^+'/=9FKFWQK_PJ_QJ^RM_RN`RM`QM^QN^RN_RN`RO`TOaUPcUPcUObUQcUQeWRdXSdYSdZSdWUfWVfYUeWSdZUdXVeWVgYViYYjXXhXWgYWhYXjZ[lZ[l[Zl\[l[Zm[Zn\Zn\[m][l[[l\]m]]m\]m\]o\]m]^p^_q]]n^\q^^q^_q^_s__u__t`_t__u^_u^_s_`s_`s^_s^^t``v`^v`^u_`u_aua`va_u``s``r`_u__t``ta`t_`t_`t^`s^_t__wa`w``u^`qVYjFHZ--9K9y !3.8E>MOH[PJ`PJ]QL^RL`RLaPM_RM^RM_RMaQNbUNbWN`WO`VPaVQbTPdVQcWRcVRcYRcVTeWSdZScYSfZTdZUfZVhZViZXhXWgXWgXWhXXi[YkZYlZYl\Yk\YlZYn[Ym\Yl\[n[Zn][n^\m]\l\\l\\j\]n]^q^\p^\q]^p\_q]_s^^s_]p`]q_^r^]q^^q^^p^^r^^t^^u_^t`^s_^s^^t__sa^tb^ta^r_^s^_t__s`_r`_q__p`_s_^r_^r_^s`_v`_vZ[oMN^68E% j*P%"(:4@IBSOI]QJ[QJ^RK`SK`QL`SM`SL`RLaSMcVNbWN^VO^VPaWQbUObVOaVPaTPcVPcUReVRcXRbYThXSfYTgZUh[UgZUeXVeXWgXWhWWhZWjZWk[Wk\Wl\Xl[Xm[Xl[Xl\Yo[Zp]Yo]Zn\[m\[l][m\\n\[o][q^]q]]o\^p\^q]]q_\o_]o^]p^]o^^q^\p^]q^]s]]t_\s_]q^]q_]r`^s_]s`]q`]q^]r^^t^^s^]q^]o_]o_]q`\p_\o^\p^]s^[rSQe?>M%&.D ,j+'0>9HKEWQIZSJ^SJ_SK]PK^SL`RLaQLaSLaVN_UN_UOaUPaUO`VN^WN_WNaUOdVPeUPeUReUSeVTfWShWSgWSeYSeZTcWTcXUeZUgXUhXXj[Wi\Vj[Vl[Wm[Wl[Xl[Xm]Wm\Yn\Wm[Xm[Zo]Zo]Yq]Yo\Yn[Yn_[q^[o\[o\\o\\o^\p]\n]\n^\o_\q][r^[q^\q\[q_]s^[p^\o_]p_]t^]r]\n^\m`\p]\s\[r\[q\[p_\q\Zp^Zn^[o][p\[oWReGBQ.,6 \$? 0+7A;OMFWPI[PI[OHZPJ\PK^PK`QKbRLbSJ]TL]TL`SLaTL^SM]VN_XNbWNbUPbTOcSPeSQeTQcVPdWPcWQcVSdVQbWScWTdXSeXQgXTgXTfXTfWTgWUhZWiYWjXVjZUiXWjZVh[WfZWfZVj\Wk[XmZYo[Yo]Vn]Wn]Xm\Ym]YmZXlXYjYYj\Yl]Yk]Yo^Zo^[n\[m]Zm][o][n]Zk]Yn_[n^[o\[o\Zo]Zq[YpZZo[[o\[o\[o][n][p\YqVUiIGW41<  x6 Y "2-:C=KKEULHYKJZLI[MJ[NH[PH\RJ^RI\PJZPK[QJ\QJ[TK\VL\VL]VM^TM^RN_RN`SN`TOaTOaUPaUPaSPbTPaTR`URaVQcWQeVReVRfVRfVSeUTeWTgWThVTgWThVUhWUgXUfYUeZUg\UgYUgWVhWVkYWkYVjZVi[Wh[XhZXhXXgXXj[Ym\Xj\Vj]Wj\YkYXj[Xi[XiZYjZXk[Wk\Xm\Ym[YlYYl[WlZXlYXlYXlYXlXXkYYjZXjWShJHY65B & K 0m!%5/;C>LIFVKIYLHYLHXNGWPGXPHYPI[NIYNJYPJZPIZSJZTK[TK\TK\SK\RM\RM\SL]TM_TN`TO_TO_SO_UO_TP`TP`VPaWPbUQeUQeVQdUScTScVSeUReUSfVSgWShWTgXTgYSfYUeYTgXSfWSeWTfVVhVVgWUfYUf[VhZWhZWgYWhYWjZWh[Vi[VjZVjXVi[VjYViXWjYWlZWlZWlZXkZWjYWj[ViYWkYWlYWkYVkXWjZWhWScLHY97D##+`%A% )72?C?NJDUNEVMFVOGWPGWOGVOIYMHXNIXOKZPIZQIYRJ[RK]QJ\RK]PL[PL\RK^SK^SL_SM_TM^UN^VM_UN`UO`VO_UO_SQdVPdVPbTR`TSbVRbTRdTReVRfXRgYSgYRfYReXScWShWSgXSeWSdVSeWUfWUfXTgZUjZUjZVgXUeWTfXUfZViYVjYUiYUh\UlYVlXVkYVl[WlYWkXViYViZUiZUhXVjXVlYVk[UjZVjXReOIY<9F&$-t6 M '"*72>D=NLCTNDUNEWNFXNGVNGVNFUNGWOHZNGYQHXPIZOJ\OI]OJ\LJZNJ]QJ`SK]PL\RM]TM^UL^UK^RK_TL_TN^RO^QN`SObTObTP_UQ`VO`UQcUQcUO_VPeXQfWQcVP`WQbWQdXQdXRdUSdWReVSeWTeYTfWSgWTiVSfVTeVVgXUiWSfWSfXTfYTeZShYTiXUjWTiYThYTgXTgXThXTjUSdVTgXThXShWSgTQcMIY>:H)&1 B%W %"+61>E7EE=LIASI@RJARKCSLCSLBSMDTMEUMDUKCTMDUNEUNFUMEUOFYLFWLFWNFXPFWOGVMFUMGWNHYLGVPIZQH[PH[PIZPHWOJYNJZOJYRHYRIYQIYRJZSJZRHZTI]RI\PJ[OK\PK\OJ\QJ]SJ^SJ[RJYQJ[RJ^SJ_RL[QJ\RJ]RK^PK^PI\KEVC>L72>($, d2:m  %-*3:3?B:HE=MG@PHAQIAPJ@PKAQKBQKBQJARKBRJCRKCRKCSKCUJDTKEUMEVNDUMDSKESKFSLFUKGVNGXPGXOGWMGWNGUOHVOHXOHXPHXNHXNHXOIXPIYPFZQG\QHZPHXOIYOHYMIZMI\PI]RJZRIXQIYRI[TJ]QJZOHYNH[LJ[KEWF@Q=8F0,7!&  _/4f '!*3+6<7DA;KD=LF>MING@OIAOH@NGAOFANGAOIBPKBQIAPJBQKCRLBQLCQKDRKDRKCRKFUJCUKDTKETIDTJDTJDRLDSNDTLFUIETKETLFTKGULEWMFWMFVMFWNHZMFWMHXLHZLGZOHYNGWPHYQIZOHXOGWPHWKGTCBO?:H5/=($- Z+ .Z  "+&040;=7CE;IG;IH>OI@QI@PF?PGARJ@QI@OGAOIAOHAPIBQKBQKBRJBQICOIDQJDTICSGDUGCSICRKDTKDTLETMFUMEVKEUIESLFVMGXKEULDVMDVMDUMDTMFUKGVLHZMHZNFXNEUMFXNGYPHXOHVNETHAO@MH>OG>PJ@QJ@PI@PHAPIAOJBQKBRLBRKBRIARJBRJCSJCSKASJCTJDTLDSMCSLDSLDSLETLEUMDTMCSNDWNEXLEUMFVLDTLCSMCSNDTLGWLFYMEXNFWOEUNEXMEXKDTHAOD;J94?-*3!& sC >l $'.)360;=4AB8GD;KG>MH@OI@OH@PH?OJAQKARKAQKBQI@RJBSJBRIBQJBRKBRLCSLCRKCQKCRKCRKCRLCSMCRMBRMBUMCUMDRMFTLDTLDSMDSLDTLFWLEWMDVLDULCSJARE>N?9G83?0)4$ ( b50X   "$+%-2,691>=7EB;JF=LG=ME=MH?PI@PI@PJAPH@QI@OIAOHAOGCQJAQKAPIBPGCPHBQIBQK@QL?QKBPIAQIARJBQLBPKCRLDUMDTLCSHCSJCSKBRIAPF>NC:J=6D4/;+'0" &  {M(  !Dp   % )-'24-9:2?@6DA9GDLI>NI=NI@QI@OH@OH@PK@OJ>NH>NH@OIAQJARJ@RK?QL?PIAQJ@OH?OH@OJAPKBQKAUK?SJ>PF?OF=KB9H<4C7/4BA6CB9GB;JBME=KG?LG>LH=MH>OG>OH?OH?OH?PI@RJ>NG>ME?MF?MG>KD;JA8I=5E91?5.8-'1%!*" pH' <` !#& (+#-/'12+54.:60=72?83>93>:3>;3?=4B>6D@8E@8E>8E>7F>5C=5A:4@92>70:2+6.'3)#.#&  zS1#?b   ##'% (% '#&#&%('"++&//(3/)3-(1+'0*%.)#-'!+$' "  }X6 "=_          wV7  8TqgJ1 -C[uoT;' 0DZo" nXA,(8GWiz~n\L:) "-9DMWez~yvqkcZQF;0%  *8AB=41/-*%    ] OnCreate FormCreate OnDestroy FormDestroyOnShowFormShowPositionpoScreenCenter LCLVersion1.8.2.0 TStatusBar StatusBar1AnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomLeftHeightTopWidth[Anchors akRightakBottomPanelsWidth2 SimplePanelTMemoMemo1AnchorSideLeft.ControlOwnerAnchorSideTop.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.Control StatusBar1Left`HeightTopWidthAnchors akTopakRightakBottomBorderSpacing.Around Lines.StringsThis tool corrects the mpsas reading for datalogger .dat files created with firmware version 49-56 where subsequent values were 0.66mpsas brighter (lower value).Corrected files will have a new filename which is appended with "MPSASCorr". Also, the "# SQM firmware version:" line be appended with "-CorrectedMPSAS" to prevent compounded corrections.You can correct all the files in one directory (select the "Entire directory" tab), or just one single file (select the "Single file" tab). ScrollBarsssAutoVerticalTabOrder TPageControl PageControl1AnchorSideLeft.ControlOwnerAnchorSideTop.ControlOwnerAnchorSideRight.ControlMemo1AnchorSideBottom.Control StatusBar1LeftHeightTopWidthZ ActivePage TabSheet1Anchors akTopakLeftakRightakBottomBorderSpacing.AroundTabIndexTabOrder TTabSheet TabSheet1CaptionEntire directory ClientHeighth ClientWidthX TLabeledEditConvertDirectoryEditAnchorSideLeft.Control TabSheet1AnchorSideTop.Control TabSheet1AnchorSideRight.Control TabSheet1AnchorSideRight.Side asrBottomLeftHHeightTopWidth Anchors akTopakRightBorderSpacing.TopBorderSpacing.RightEditLabel.AnchorSideTop.ControlConvertDirectoryEditEditLabel.AnchorSideTop.Side asrCenter!EditLabel.AnchorSideRight.ControlConvertDirectoryEdit"EditLabel.AnchorSideBottom.ControlConvertDirectoryEditEditLabel.AnchorSideBottom.Side asrBottomEditLabel.Left EditLabel.Height EditLabel.Top EditLabel.Width9EditLabel.Caption Directory:EditLabel.ParentColor LabelPositionlpLeftTabOrderOnChangeConvertDirectoryEditChange OnEditingDoneConvertDirectoryEditEditingDoneTButtonCheckDirectoryButtonLeftHHeightHintDCheck selected directory for valid datalogger .dat files to convert.Top WidthCaptionCheck directoryOnClickCheckDirectoryButtonClickParentShowHintShowHint TabOrderTButtonCorrectDirectoryButtonLeftHeightHintCRead files and write corrected ones to new new entries on the disk.Top WidthCaptionCorrect directory file(s)OnClickCorrectDirectoryButtonClickParentShowHintShowHint TabOrder TStringGridDirectoryStringGridAnchorSideLeftQ.Control TabSheet1AnchorSideRight.Control TabSheet1AnchorSideRight.Side asrBottomAnchorSideBottom.Control TabSheet1AnchorSideBottom.Side asrBottomLeftHeight(Top@WidthXAnchors akLeftakRightakBottomAutoFillColumns ColCountColumns Title.CaptionFilenameWidth Title.CaptionSizeWidth Title.CaptionModelWidth Title.CaptionFirmwareWidth FixedColsRowCountTabOrder ColWidths TTabSheet TabSheet2Caption Single file ClientHeighth ClientWidthX TGroupBox InGroupBoxAnchorSideLeft.Control TabSheet2AnchorSideTop.Control TabSheet2AnchorSideRight.Control TabSheet2AnchorSideRight.Side asrBottomLeftHeightJTopWidthPAnchors akTopakLeftakRightBorderSpacing.AroundCaption Input file: ClientHeight9 ClientWidthLTabOrderTButtonFileSelectButton1AnchorSideTop.Control InGroupBoxLeftLHeightTopWidthKAnchors akTopCaption Select fileOnClickFileSelectButton1ClickTabOrder TLabeledEdit InputFileAnchorSideLeft.ControlFileSelectButton1AnchorSideTop.ControlFileSelectButton1AnchorSideTop.Side asrBottomAnchorSideRight.Control InGroupBoxAnchorSideRight.Side asrBottomLeftLHeightTopWidthAnchors akTopakLeftakRightBorderSpacing.TopBorderSpacing.RightEditLabel.AnchorSideTop.Control InputFileEditLabel.AnchorSideTop.Side asrCenter!EditLabel.AnchorSideRight.Control InputFile"EditLabel.AnchorSideBottom.Control InputFileEditLabel.AnchorSideBottom.Side asrBottomEditLabel.LeftEditLabel.Height EditLabel.TopEditLabel.Width7EditLabel.Caption Filename:EditLabel.ParentColor LabelPositionlpLeftTabOrder TLabeledEditFirmwareVersionLabeledEditAnchorSideTop.Control InGroupBoxAnchorSideRight.Control InGroupBoxAnchorSideRight.Side asrBottomLeft HeightTopWidth(Anchors akTopakRightBorderSpacing.RightEditLabel.AnchorSideTop.ControlFirmwareVersionLabeledEditEditLabel.AnchorSideTop.Side asrCenter!EditLabel.AnchorSideRight.ControlFirmwareVersionLabeledEdit"EditLabel.AnchorSideBottom.ControlFirmwareVersionLabeledEditEditLabel.AnchorSideBottom.Side asrBottomEditLabel.LeftEditLabel.Height EditLabel.TopEditLabel.WidthhEditLabel.CaptionFirmware version:EditLabel.ParentColor LabelPositionlpLeftTabOrder TLabeledEditModelLabeledEditAnchorSideTop.Control InGroupBoxLeft.HeightTopWidthPEditLabel.AnchorSideTop.ControlModelLabeledEditEditLabel.AnchorSideTop.Side asrCenter!EditLabel.AnchorSideRight.ControlModelLabeledEdit"EditLabel.AnchorSideBottom.ControlModelLabeledEditEditLabel.AnchorSideBottom.Side asrBottomEditLabel.LeftEditLabel.Height EditLabel.TopEditLabel.Width&EditLabel.CaptionModel:EditLabel.ParentColor LabelPositionlpLeftTabOrder TGroupBox OutGroupBoxAnchorSideLeft.Control TabSheet2AnchorSideTop.Control InGroupBoxAnchorSideTop.Side asrBottomAnchorSideRight.Control TabSheet2AnchorSideRight.Side asrBottomAnchorSideBottom.Control StatusBar1LeftHeight_TopRWidthPAnchors akTopakLeftakRightBorderSpacing.AroundCaption Output file: ClientHeightN ClientWidthLTabOrder TLabeledEdit OutputFileAnchorSideLeft.Control CorrectButtonAnchorSideTop.Control CorrectButtonAnchorSideTop.Side asrBottomAnchorSideRight.Control OutGroupBoxAnchorSideRight.Side asrBottomLeftIHeightTop,WidthAnchors akTopakLeftakRightBorderSpacing.TopBorderSpacing.RightEditLabel.AnchorSideTop.Control OutputFileEditLabel.AnchorSideTop.Side asrCenter!EditLabel.AnchorSideRight.Control OutputFile"EditLabel.AnchorSideBottom.Control OutputFileEditLabel.AnchorSideBottom.Side asrBottomEditLabel.LeftEditLabel.Height EditLabel.Top1EditLabel.Width7EditLabel.Caption Filename:EditLabel.ParentColor LabelPositionlpLeftTabOrderTBitBtn CorrectButtonAnchorSideTop.Control OutGroupBoxLeftIHeight$Hint%Correct .dat file for time differenceTopWidth<Anchors akTopCaption*Correct mpsas offset for DL firmware 49-56Enabled Glyph.Data :6BM66(  dd ^!oSQ==*/\+t*8|7j/Wh6u6H k iUy b <<3z3OZ tiPH\<<==22[\ l whOTU66GG:://ggj|xj"/O+w+QQEE88--rquwzMMj[[OOCC66++ | {xLx[``YYLL@@44**  wLHQ__ccWWJJ>>11++ uQTMWWmmaaUUHH<, 6Legend: MPSAS <9A3normal#sn%.2fhighlight#sh%.2f//DAT fields less than , no GPS data found.  %s#m%.2f0 %s,%s  ) written. There was no GPS data stored in No GPS data in fileThe dat file is too short: dat file too shortConverted file stored in:  TPF0TForm7Form7LeftTHeightTop2WidthCaption.dat to .kml conversion ClientHeight ClientWidthConstraints.MinHeightConstraints.MinWidthOnShowFormShowPositionpoScreenCenter LCLVersion1.8.2.0TImage SchemeImageAnchorSideLeft.ControlColorSchemeGroupAnchorSideLeft.Side asrBottomAnchorSideTop.ControlOwnerAnchorSideRight.Control HelpNotesAnchorSideBottom.Control StatusLineLeftHeightTopWidthxAnchors akTopakLeftakRightakBottomBorderSpacing.AroundTButtonSelectAndConvertButtonAnchorSideLeft.ControlOwnerAnchorSideTop.ControlColorSchemeGroupAnchorSideTop.Side asrBottomLeftHeightTop\WidthxBorderSpacing.AroundCaptionSelect and convertOnClickSelectAndConvertButtonClickTabOrderTMemo HelpNotesAnchorSideTop.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.Control StatusLineLeftHeightTopWidthAnchors akTopakRightakBottomBorderSpacing.Around Lines.StringsThis tool converts a .dat log file to a .kml file. This is used when a connected meter and an external GPS are read by UDM in the LogContinuous datalogging mode. +The .kml file can be opened in GoogleEarth.xThe legend image (kmllegend*.png) must be available to GoogleEarth in the same directory to properly display the legend.oThe color range shows values that are greater than the lower number and less than or equal to the upper number.ReadOnly TabOrder TRadioGroupColorSchemeGroupAnchorSideLeft.ControlOwnerAnchorSideTop.ControlOwnerLeftHeightTTopWidthxAutoFill BorderSpacing.AroundCaption Color schemeChildSizing.LeftRightSpacingChildSizing.EnlargeHorizontalcrsHomogenousChildResizeChildSizing.EnlargeVerticalcrsHomogenousChildResizeChildSizing.ShrinkHorizontalcrsScaleChildsChildSizing.ShrinkVerticalcrsScaleChildsChildSizing.LayoutcclLeftToRightThenTopToBottomChildSizing.ControlsPerLine ClientHeightC ClientWidtht ItemIndex Items.Strings New atlas CleardarkskyOnClickColorSchemeGroupClickTabOrder TLabeledEdit StatusLineAnchorSideLeft.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomLeftHeightTopWidthAnchors akLeftakRightakBottomBorderSpacing.Around EditLabel.AnchorSideLeft.Control StatusLine!EditLabel.AnchorSideRight.Control StatusLineEditLabel.AnchorSideRight.Side asrBottom"EditLabel.AnchorSideBottom.Control StatusLineEditLabel.LeftEditLabel.Height EditLabel.TopEditLabel.WidthEditLabel.CaptionStatus:EditLabel.ParentColorTabOrder TOpenDialog OpenLogDialogleft(topFORMDATATForm7*.txt/SourceDirectoryAvgToolaverage Processing: _avg.txtReading Input fileProduced Processing : ,%.2f Finished file'File handling error occurred. Details: Error'Finished all files. Results stored in :Finished processing files.Results stored in:  Bins ComputeMethod TPF0TForm8Form8Left_HeightTopWidthbCaption Average tool ClientHeight ClientWidthbOnShowFormShowPositionpoScreenCenter LCLVersion2.2.6.0TMemoMemo1AnchorSideTop.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.Control StatusBar1LeftHeightTopWidthAnchors akTopakRightakBottom Lines.Strings6All files in the selected directory will be processed.lAll files converted will have "_avg" appened to the filename, and stored in a subdirectory called "average".Rolling average method:8Takes readings from multiple files created by SQM-Pro2. Uses the rolling average method to produce a set of new files where all readings are modified using the rolling average method with the desired number of bins for each average block. All records of each file method:gAll records in a .dat file are averaged to produce a new .dat file with only one record of the average. ScrollBars ssAutoBothTabOrder TStatusBar StatusBar1LeftHeightTopWidthbPanelsWidth2 SimplePanel TProgressBar ProgressBar1AnchorSideLeft.ControlOwnerAnchorSideRight.ControlMemo1AnchorSideBottom.Control StatusBar1LeftHeightTopkWidthAnchors akLeftakRightakBottomSmooth TabOrderTEditSourceDirectoryEditAnchorSideLeft.Side asrBottomAnchorSideTop.Side asrCenterLeftHeight$Hint Source directory.TopWidthBorderSpacing.LeftTabOrderTBitBtnSourceDirectoryButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlSourceDirectoryEditAnchorSideTop.Side asrCenterAnchorSideRight.ControlSourceDirectoryEditLeftHeightHintSelect source directory.TopWidthAnchors akTopakRightBorderSpacing.LeftBorderSpacing.Top Glyph.Data :6BM66( ddSMFe4e4e4e4e4e4e4e4e4e4e4e4e4f5g69HHHxi:PPPPPPPPPPPxEf6IIIh9Ӧ~ңxңxңxңxңxңxңxңxңxӤyѥzf5HHH⛛g8իΜnΜmΜmΜmΜmΜmΜmΜmΜmϞpիf5LLL䡡h8ĩըӤzӤzӤzӤzӤzӤzӤzӤzԧ~ݺf5QQQ夥g7Ҿݺݹܶ۵ڳٲخ׭׭ذɱf5VVV穩f6ݺݺݺݺݺݺݺܷڲٰϸf5[[[鮮g6ܷܷܷܷܷܷܷܷܷڴͶf5___鳳f5۴۴۵۵۵۵۵۵۵ܸϷf4eee뷷f5ӾԿԿԾԾԾӾӾӾӾӾϸe4jjj콽mAf6f6 f6f6f6f5f5f5f5e4e4e4h7nnnjjjGGGGGGsss򌌌򌌌򌌌򀀀lllGGGGGGxxxtttrrr8rrr8rrr8mmm8ooo5UUUGGGGGGzzzyyyyyyyyyyyyyyyyyyxxx5GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGOnClickSourceDirectoryButtonClickTabOrderTMemoInputFileListMemoAnchorSideLeft.ControlSourceDirectoryEditAnchorSideTop.ControlSourceDirectoryEditAnchorSideTop.Side asrBottomAnchorSideRight.ControlSourceDirectoryEditAnchorSideRight.Side asrBottomAnchorSideBottom.Control ProgressBar1LeftHeightTopNWidthAnchors akLeftakBottomBorderSpacing.TopBorderSpacing.Bottom ScrollBars ssAutoBothTabOrderTLabelLabel1AnchorSideLeft.ControlInputFileListMemoAnchorSideBottom.ControlInputFileListMemoLeftHeightTop9WidthPAnchors akLeftakBottomCaptionInput file list: ParentColorTMemoProcessStatusMemoAnchorSideLeft.ControlInputFileListMemoAnchorSideLeft.Side asrBottomAnchorSideTop.ControlInputFileListMemoAnchorSideRight.ControlSourceDirectoryEditAnchorSideRight.Side asrBottomLeftHeightTopNWidthAnchors akTopakLeftakRightBorderSpacing.Left ScrollBarsssBothTabOrderTLabelLabel2AnchorSideLeft.ControlProcessStatusMemoAnchorSideBottom.ControlInputFileListMemoLeftHeightTop9WidthnAnchors akLeftakBottomCaptionProcessing status: ParentColor TRadioGroup MethodradioAnchorSideLeft.ControlOwnerLeftHeightDTopWidthAutoFill BorderSpacing.LeftCaptionMethod:ChildSizing.LeftRightSpacingChildSizing.EnlargeHorizontalcrsHomogenousChildResizeChildSizing.EnlargeVerticalcrsHomogenousChildResizeChildSizing.ShrinkHorizontalcrsScaleChildsChildSizing.ShrinkVerticalcrsScaleChildsChildSizing.LayoutcclLeftToRightThenTopToBottomChildSizing.ControlsPerLine ClientHeight0 ClientWidth ItemIndex Items.StringsRolling average of all filesAll records of each fileOnClickMethodRadioClickTabOrder TGroupBoxRollingSettingsGroupAnchorSideLeft.Control MethodradioAnchorSideTop.Control MethodradioAnchorSideTop.Side asrBottomLeftHeightHTopQWidthBorderSpacing.TopCaptionRolling average setting: ClientHeight4 ClientWidthTabOrder TSpinEdit BinsSpinEditLeft0Height$TopWidth2 AlignmenttaRightJustifyMaxValueMinValueOnChangeBinsSpinEditChangeTabOrderValueTLabel BinsLabelAnchorSideLeft.Side asrBottomAnchorSideTop.Control BinsSpinEditAnchorSideTop.Side asrCenterAnchorSideRight.Control BinsSpinEditLeftHeightTopWidthAnchors akTopakRightBorderSpacing.RightCaptionBins: ParentColorTButton StartButtonLeftHHeightTopWidthKCaptionStartOnClickStartButtonClickTabOrder TSelectDirectoryDialogSelectDirectoryDialog1LeftTopPFORMDATATForm8/JDUTDEC _JDUTDEC.datReading Input file# UTC Date & Time,, Julian Date, UT date# YYYY-MM-DDTHH:mm:ss.fff;;;day.frac;day.frac # yyyy-mm-dd"T"hh:nn:ss.zzz ;%.1f;%.8f Finished file'File handling error occurred. Details: Error,Finished converting file. Result stored in :4TPF0TForm10Form10Left HeightuTopWidthCaption.dat to decimal date ClientHeightu ClientWidthOnCreate FormCreatePositionpoScreenCenter LCLVersion1.8.2.0TEditSourceFileEditAnchorSideLeft.Side asrBottomAnchorSideTop.ControlOwnerLeft HeightHint Source directory.TopWidthBorderSpacing.LeftBorderSpacing.TopTabOrderTBitBtnSourceFileButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlSourceFileEditAnchorSideTop.Side asrCenterAnchorSideRight.ControlSourceFileEditLeftHeightHintSelect source directory.TopWidthAnchors akTopakRightBorderSpacing.LeftBorderSpacing.Top Glyph.Data :6BM66( ddSMFe4e4e4e4e4e4e4e4e4e4e4e4e4f5g69HHHxi:PPPPPPPPPPPxEf6IIIh9Ӧ~ңxңxңxңxңxңxңxңxңxӤyѥzf5HHH⛛g8իΜnΜmΜmΜmΜmΜmΜmΜmΜmϞpիf5LLL䡡h8ĩըӤzӤzӤzӤzӤzӤzӤzӤzԧ~ݺf5QQQ夥g7Ҿݺݹܶ۵ڳٲخ׭׭ذɱf5VVV穩f6ݺݺݺݺݺݺݺܷڲٰϸf5[[[鮮g6ܷܷܷܷܷܷܷܷܷڴͶf5___鳳f5۴۴۵۵۵۵۵۵۵ܸϷf4eee뷷f5ӾԿԿԾԾԾӾӾӾӾӾϸe4jjj콽mAf6f6f6f6f6f5f5f5f5e4e4e4h7nnnjjjGGGGGGsss򌌌򌌌򌌌򀀀lllGGGGGGxxxtttrrr8rrr8rrr8mmm8ooo5UUUGGGGGGzzzyyyyyyyyyyyyyyyyyyxxx5GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGOnClickSourceFileButtonClickTabOrderTButton StartButtonAnchorSideLeft.ControlSourceFileEditAnchorSideTop.ControlSourceFileEditAnchorSideTop.Side asrBottomLeft HeightTopWidthKBorderSpacing.TopCaptionStartOnClickStartButtonClickTabOrderTMemoMemo1AnchorSideLeft.ControlSourceFileEditAnchorSideLeft.Side asrBottomAnchorSideTop.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.Control StatusBar1LeftHeight^TopWidth4Anchors akTopakLeftakRightakBottomBorderSpacing.Around Lines.Strings=This tool converts the UT date into JD and UT decimal format.AThe new file is stored with the _JDUTDEC appened to the filename.TabOrder TStatusBar StatusBar1LeftHeightTopbWidthPanelsWidth2 SimplePanel TOpenDialog OpenDialog1lefttop,FORMDATATForm10*.dat_concat/SourceDirectory ConcatAnalyze _concat.dat Processing: Reading Input file Processing : # Finished file'File handling error occurred. Details: Error'Finished all files. Results stored in :Finished processing files.Results stored in:  @ TPF0TConcatToolFormConcatToolFormLeft HeightTopPWidthbCaptionConcatenation tool ClientHeight ClientWidthbOnShowFormShowPositionpoScreenCenter LCLVersion2.0.12.0TMemoMemo1AnchorSideTop.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.Control StatusBar1LeftHeightTopWidthAnchors akTopakRightakBottom Lines.StringsaAll .dat files in the selected directory will be concatenated in datestamped chronological order._The oldest file will have its header retained, all other files will have their header stripped.XThe output file will be stored in the same directory but with a suffix of "_concat.dat". ScrollBars ssAutoBothTabOrder TStatusBar StatusBar1LeftHeightTopWidthbPanelsWidth2 SimplePanel TProgressBar ProgressBar1AnchorSideLeft.ControlOwnerAnchorSideRight.ControlMemo1AnchorSideBottom.Control StatusBar1LeftHeightToplWidthAnchors akLeftakRightakBottomSmooth TabOrderTEditSourceDirectoryEditAnchorSideLeft.ControlSourceDirectoryButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlSourceDirectoryButtonLeftFHeightHint Source directory.TopWidth@BorderSpacing.LeftTabOrderTBitBtnSourceDirectoryButtonAnchorSideLeft.ControlResetDirectoryButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlResetDirectoryButtonAnchorSideRight.ControlSourceDirectoryEditLeft$HeightHintSelect source directory.TopWidthBorderSpacing.Left Glyph.Data :6BM66( ddSMFe4e4e4e4e4e4e4e4e4e4e4e4e4f5g69HHHxi:PPPPPPPPPPPxEf6IIIh9Ӧ~ңxңxңxңxңxңxңxңxңxӤyѥzf5HHH⛛g8իΜnΜmΜmΜmΜmΜmΜmΜmΜmϞpիf5LLL䡡h8ĩըӤzӤzӤzӤzӤzӤzӤzӤzԧ~ݺf5QQQ夥g7Ҿݺݹܶ۵ڳٲخ׭׭ذɱf5VVV穩f6ݺݺݺݺݺݺݺܷڲٰϸf5[[[鮮g6ܷܷܷܷܷܷܷܷܷڴͶf5___鳳f5۴۴۵۵۵۵۵۵۵ܸϷf4eee뷷f5ӾԿԿԾԾԾӾӾӾӾӾϸe4jjj콽mAf6f6f6f6f6f5f5f5f5e4e4e4h7nnnN jjjGGGGGGsss򌌌򌌌򌌌򀀀lllGGGGGGxxxtttrrr8rrr8rrr8mmm8ooo5UUUGGGGGGzzzyyyyyyyyyyyyyyyyyyxxx5GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGOnClickSourceDirectoryButtonClickTabOrderTMemoInputFileListMemoAnchorSideLeft.ControlOwnerAnchorSideTop.ControlLabel1AnchorSideTop.Side asrBottomAnchorSideRight.ControlSourceDirectoryEditAnchorSideRight.Side asrBottomAnchorSideBottom.Control ProgressBar1LeftHeight/Top;Width0Anchors akTopakLeftakBottomBorderSpacing.TopBorderSpacing.Bottom ScrollBars ssAutoBothTabOrderTLabelLabel1AnchorSideLeft.ControlInputFileListMemoAnchorSideTop.ControlResetDirectoryButtonAnchorSideTop.Side asrBottomAnchorSideBottom.ControlInputFileListMemoLeftHeightTop(WidthPBorderSpacing.TopCaptionInput file list: ParentColorTMemoProcessStatusMemoAnchorSideLeft.Control StartButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlInputFileListMemoAnchorSideRight.ControlSourceDirectoryEditAnchorSideRight.Side asrBottomAnchorSideBottom.ControlInputFileListMemoAnchorSideBottom.Side asrBottomLeftHeight/Top;WidthAnchors akTopakLeftakRightakBottomBorderSpacing.Left ScrollBarsssBothTabOrderTLabelLabel2AnchorSideLeft.ControlProcessStatusMemoAnchorSideBottom.ControlInputFileListMemoLeftHeightTop(WidthnAnchors akLeftakBottomCaptionProcessing status: ParentColorTButton StartButtonAnchorSideLeft.ControlInputFileListMemoAnchorSideLeft.Side asrBottomLeft0HeightTopWidthKAnchors akLeftCaptionStartOnClickStartButtonClickTabOrderTBitBtnResetDirectoryButtonAnchorSideLeft.ControlOwnerAnchorSideTop.ControlOwnerLeftHeightHint#Reset location of files to default.TopWidthBorderSpacing.LeftBorderSpacing.Top Glyph.Data :6BM66( ddN5N5N5O8O8N5N5N5N5N5zYDjƞЦh `HN5mN5N5N5saĝѡԣȟp_N5N5N5@^Fܟٯv lfQ N5tfL l gv ܣywx mewXU?N5)`dKd2mLr lpZ T>O6N7\EpfYlJM<N5z]HlP ~Y|Y,O8N5"N5'XCxVnKZ=F6T<N5 O8N9M7N5N5Q9V@[?T<P9[DW@fLrSgqvdP VAEP9J7aIu^+oX'_I`Jp,A;7dS@N51N5$WEL6v^,l:r_,YBbIMLD~XcGQ?P9P9WES@iQ}L}Lta,N7aFa^]LjOO9R@K9N8pY(Z^XfON5'_DqppmmeqAq@[omp}i-P8t`DrsVw?{îîîîîî}t9U<N5YAhKN5EP7znQdоλz_qSN5sN5N5 N5N5$P7hNɃk7v\$[?P7~N5#OnClickResetDirectoryButtonClickParentShowHintShowHint TabOrderTSelectDirectoryDialogSelectDirectoryDialog1Left4ToplFORMDATATConcatToolFormunknown.csvcsv.datdatunknown# Location name:_  Not-Specified # Position7Error: No position data found in header, an example is:< # Position (lat, lon, elev(m)): 43.24611, -118.8942, 1256nul@Error: Latitude  out of range (-90 to 90).@Error: Longitude  out of range (-180 to 180)%.7f#3Reading first 100 lines to determine sampling rate.yyyy-mm-dd"T"hh:nn:ss.zzz$Mean value = %f second(s) frequency.AError: Failed to read first 100 lines to determine sampling rate.<Finished reading first 100 lines to determine sampling rate.0 LocatioNameCloudRemovalMilkyWayToolLatitude Longitude9 half_range%d=Error: Improper number of fields %d in.csv file, %d required.Got: Should be:Location,UTC_YYYY,UTC_MM,UTC_DD,UTC_HH,UTC_mm,UTC_ss,Local_YYYY,Local_MM,Local_DD,Local_HH,Local_mm,Local_ss,Celsius,Volts,Msas,Status,MoonPhaseDeg,MoonElevDeg,MoonIllum%,SunElevDegN@ @8Z2I@@Q@Vf\S?@v@@.@@@@We are running Program %s The input filename is: %s! The latitude of the SQM is: %.7f" The longitude of the SQM is: %.7f The Half Range is: %d_sun-moon-mw-clouds.csvThe Output Data Filename is: %s# UTC Date & TimeLocal Date & Time TemperatureVoltageMSAS Record typeBLocation,Lat,Long,UTC_Date,UTC_Time,Local_Date,Local_Time,Celsius,Volts,Msas,Status,MoonPhase,MoonElev,MoonIllum,SunElev,MinSince3pmStdTime,Msas_Avg,NightsSince_1118,RightAscensionHr,Galactic_Lat,Galactic_Long,J2000days,ResidStdErrLocation,Lat,Long,UTC_Date,UTC_Time,Local_Date,Local_Time,Celsius,Volts,Msas,Status,MoonPhase,MoonElev,MoonIllum,SunElev,MinSince3pmStdTime,Msas_Avg,NightsSince_1118,RightAscensionHr,Galactic_Lat,Galactic_Long,J2000days,ResidStdErrCannot deal with extension: %s' The half_range parameter is set to: %dH This means that the Residual Error calculation operates over %d samplesR In other words, if the sample spacing is 1 minutes, then the range is %d minutes.R Or if the sample spacing is 5 minutes, then the range is %d minutes.S Or if the sample spacing is 15 minutes, then the range is %d minutes.] Residual Standard Error values that we output are multiplied by %d to achieve larger values.M We allow gaps of %d minutes between SQM samples prior to marking a data gap..DT! @ꐛ@-@D$@ Processing file, please wait ...,We have more than 1500 samples for this day.aIf this is good data, sorry but this option does not handle a data cadence smaller than 1 minute./Alternately, does the input file have bad data?O Was the SQM battery dying and taking a sample too frequently or off schedule?' The input data are therefore suspect.# Problem with UTC or Local time: %s Problem with data in record: %sWWe found a bad input record at Local %04d-%.2d-%.2dT%.2d:%.2d:%.2d and are skipping it.@?pB @2$?vFor date %04d-%.2d-%.2d, we only have %d data points for this day/segment and cannot calculate a valid standard error.f@,%12.7f,%12.7f,%04d-%.2d-%.2d,%.2d:%.2d:%.2d,%.1f,%.2f,-1.0,%1d,-1,%.1f,%.3f,%.1f,%.3f,%.4d,%1.6f,%04d,%12.7f,%12.7f,%10.5f, %1.6f,%.6f Reached the End of input File Results written to: %sAWe found %d bad records due to missing data, and we ignored them.FinishedSourceFileName-TCMRATPF0TCloudRemMilkyWayCloudRemMilkyWayLeftHeightTop(Width.Caption'Cloud removal / Milky Way position Tool ClientHeight ClientWidth.Constraints.MinHeightConstraints.MinWidthOnShowFormShowPositionpoScreenCenter LCLVersion2.2.6.0TEditSourceFileEditAnchorSideLeft.ControlSourceFileButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlSourceFileButtonAnchorSideRight.ControlMemo1Left$HeightHint Source directory.TopWidthAnchors akTopakLeftakRightAutoSizeBorderSpacing.LeftBorderSpacing.RightTabOrderTBitBtnSourceFileButtonAnchorSideLeft.ControlOwnerAnchorSideRight.ControlSourceFileEditLeftHeightHintSelect source directory.TopWidthBorderSpacing.Left Glyph.Data :6BM66( ddSMFe4e4e4e4e4e4e4e4e4e4e4e4e4f5g69HHHxi:PPPPPPPPPPPxEf6IIIh9Ӧ~ңxңxңxңxңxңxңxңxңxӤyѥzf5HHH⛛g8իΜnΜmΜmΜmΜmΜmΜmΜmΜmϞpիf5LLL䡡h8ĩըӤzӤzӤzӤzӤzӤzӤzӤzԧ~ݺf5QQQ夥g7Ҿݺݹܶ۵ڳٲخ׭׭ذɱf5VVV穩f6ݺݺݺݺݺݺݺܷڲٰϸf5[[[鮮g6ܷܷܷܷܷܷܷܷܷڴͶf5___鳳f5۴۴۵۵۵۵۵۵۵ܸϷf4eee뷷f5ӾԿԿԾԾԾӾӾӾӾӾϸe4jjj콽mAf6f6f6f6f6f5f5f5f5e4e4e4h7nnnjjjGGGGGGsss򌌌򌌌򌌌򀀀lllGGGGGGxxxtttrrr8rrr8rrr8mmm8ooo5UUUGGGGGGzzzyyyyyyyyyyyyyyyyyyxxx5GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGOnClickSourceFileButtonClickTabOrderTButton StartButtonAnchorSideLeft.Side asrCenterAnchorSideTop.ControlSourceFileButtonAnchorSideTop.Side asrBottomAnchorSideRight.ControlSourceFileEditAnchorSideRight.Side asrBottomLeftHeightTop>WidthKAnchors akTopakRightBorderSpacing.TopBorderSpacing.RightCaptionStartOnClickStartButtonClickTabOrderTMemoProcessStatusMemoAnchorSideLeft.ControlOwnerAnchorSideTop.ControlLabel2AnchorSideTop.Side asrBottomAnchorSideRight.ControlMemo1AnchorSideBottom.Control ProgressBar1LeftHeightTTopwWidthAnchors akTopakLeftakRightakBottomBorderSpacing.Left ScrollBarsssBothTabOrderTMemoMemo1AnchorSideTop.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.Control StatusBar1Left HeightTopWidth$Anchors akTopakRightakBottom Lines.Strings}Reads a .dat file of SQM data and creates a comma separated value (.csv) file with these attributes at each SQM time reading: - Location - Lat, Long- UTC_Date, UTC_Time- Local_Date, Local_Time- Celsius, Volts, Msas, Status)- MoonPhase, MoonElev, MoonIllum, SunElev)- MinSince3pm, Msas_Avg, NightsSince_1118D- RightAscensionHr, Galactic Latitude, Galactic Longitude, J2000days>- ResidStdErr – for identifying cloud-free spans of SQM dataMinSince3pmStdTime - Number of minutes since 3pm standard time of the previous day; calculated based on the UTC time and longitude of measurement; allows tracking of time from afternoon, through evening, night and morning as a positive numberMsas_Avg -- Average value of SQM reading during the current night, under conditions of sun lower than 18 degrees below the horizon and moon lower than 10 degrees below the horizonkNightsSince_1118 -- Number of nights since January 1, 2018; useful to track number of nights since that dayRightAscensionHr -- Right ascension in hours of the zenith at the SQM location; equivalent to Local Sidereal Time at the SQM location; used to calculate the Galactic orientationGalactic Latitude -- Angle in degrees between the zenith at the SQM location and the highest point of the Milky Way Arc; value of zero implies that the SQM is pointed directly into the Milky WayqGalactic Longitude -- Angle in degrees from the Galactic Center (Sagittarius) eastward along the Galactic equator3J2000days -- Days since January 1, 2000; fractional ~ResidStdErr -- Residual Standard Error; a measure of jaggedness of the SQM data over a time range specified by the user (typically 90 minutes); if ResidStdErr is large, for example > 50, then conditions can be considered to have been cloudy; value as reported is multiplied x 1000 to give larger numbers; Refer to the updated UDM Manual for a detailed explanation of this attribute.Limitation – Handles daily 24-hour SQM data sampled at 1-minute spacing or longer. Attempts to process SQM data with time spacing that provides more than 1500 samples per day will fail. ScrollBarsssAutoVerticalTabOrder TLabeledEdit HalfRangeEditAnchorSideLeft.ControlLongEditAnchorSideLeft.Side asrBottomAnchorSideTop.Control StartButtonAnchorSideTop.Side asrBottomAnchorSideRight.Control StartButtonAnchorSideBottom.Control StartButtonAnchorSideBottom.Side asrBottomLeftgHeight$Top8WidthKAnchors akRightakBottomBorderSpacing.Left BorderSpacing.TopBorderSpacing.RightEditLabel.HeightEditLabel.WidthKEditLabel.Caption Half range:EditLabel.ParentColorTabOrderTLabelLabel2AnchorSideLeft.ControlProcessStatusMemoAnchorSideTop.Control HalfRangeEditAnchorSideTop.Side asrBottomLeftHeightTopdWidthnBorderSpacing.TopCaptionProcessing status: ParentColor TProgressBar ProgressBar1AnchorSideLeft.ControlOwnerAnchorSideRight.ControlMemo1AnchorSideBottom.Control StatusBar1LeftHeightTopWidth Anchors akLeftakRightakBottomSmooth TabOrder TStatusBar StatusBar1LeftHeightTopWidth.PanelsWidth2 SimplePanel TLabeledEditLatEditAnchorSideTop.Control StartButtonAnchorSideTop.Side asrBottomAnchorSideRight.ControlLongEditAnchorSideBottom.Control StartButtonAnchIorSideBottom.Side asrBottomLeftiHeight$Top8WidthxAnchors akRightakBottomBorderSpacing.RightEditLabel.HeightEditLabel.WidthxEditLabel.Caption Latitude:EditLabel.ParentColorTabOrder TLabeledEditLongEditAnchorSideLeft.Side asrBottomAnchorSideTop.Control StartButtonAnchorSideRight.Control HalfRangeEditAnchorSideBottom.Control StartButtonAnchorSideBottom.Side asrBottomLeftHeight$Top8WidthxAnchors akRightakBottomBorderSpacing.RightEditLabel.HeightEditLabel.WidthxEditLabel.Caption Longitude:EditLabel.ParentColorTabOrder TLabeledEdit LocationEditAnchorSideLeft.ControlSourceFileEditAnchorSideTop.ControlSourceFileEditAnchorSideTop.Side asrBottomAnchorSideRight.ControlLatEditAnchorSideBottom.Control StartButtonAnchorSideBottom.Side asrBottomLeft$Height$Top8WidthAAnchors akLeftakRightakBottomBorderSpacing.RightEditLabel.HeightEditLabel.WidthAEditLabel.Caption Location:EditLabel.ParentColorTabOrder TOpenDialogSourceFileDialogFilterData files|*.dat; *.csvLeft8TopFORMDATATCloudRemMilkyWaycommandlineoptions.txtSettingsStartUp @ TPF0TStartUpOptionsFormStartUpOptionsFormLeft3 HeightTTop^WidthCaptionStartup options ClientHeightT ClientWidth OnActivate FormActivatePositionpoScreenCenter LCLVersion2.3.0.0 TLabeledEditStartUpSettingsEditAnchorSideLeft.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.ControlOwnerAnchorSideBottom.Side asrBottomLeftHeightTop5WidthAnchors akLeftakRightakBottomEditLabel.HeightEditLabel.WidthEditLabel.CaptionStartup options:TabOrderOnChangeStartUpSettingsEditChangeTSynMemoSynMemo1AnchorSideLeft.ControlOwnerAnchorSideTop.ControlStartupInstructionsAnchorSideTop.Side asrBottomAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.ControlUDMArgumentsLabeledEditCursorcrIBeamLeftHeightTop8WidthBorderSpacing.Bottom)Anchors akTopakLeftakRightakBottom Font.Height Font.Name Courier New Font.PitchfpFixed Font.QualityfqNonAntialiased ParentColor ParentFontTabOrderGutter.Visible Gutter.Width9Gutter.MouseActions KeystrokesCommandecUpShortCut&CommandecSelUpShortCut& Command ecScrollUpShortCut&@CommandecDownShortCut(Command ecSelDownShortCut( Command ecScrollDownShortCut(@CommandecLeftShortCut%Command ecSelLeftShortCut% Command ecWordLeftShortCut%@Command ecSelWordLeftShortCut%`CommandecRightShortCut'Command ecSelRightShortCut' Command ecWordRightShortCut'@CommandecSelWordRightShortCut'`Command ecPageDownShortCut"Command ecSelPageDownShortCut" Command ecPageBottomShortCut"@CommandecSelPageBottomShortCut"`CommandecPageUpShortCut!Command ecSelPageUpShortCut! Command ecPageTopShortCut!@Command ecSelPageTopShortCut!`Command ecLineStartShortCut$CommandecSelLineStartShortCut$ Command ecEditorTopShortCut$@CommandecSelEditorTopShortCut$`Command ecLineEndShortCut#Command ecSelLineEndShortCut# CommandecEditorBottomShortCut#@CommandecSelEditorBottomShortCut#`Command ecToggleModeShortCut-CommandecCopyShortCut-@CommandecPasteShortCut- Command ecDeleteCharShortCut.CommandecCutShortCut. CommandecDeleteLastCharShortCutCommandecDeleteLastCharShortCut CommandecDeleteLastWordShortCut@CommandecUndoShortCutCommandecRedoShortCutCommand ecLineBreakShortCut Command ecSelectAllShortCutA@CommandecCopyShortCutC@Command ecBlockIndentShortCutI`Command ecLineBreakShortCutM@Command ecInsertLineShortCutN@Command ecDeleteWordShortCutT@CommandecBlockUnindentShortCutU`CommandecPasteShortCutV@CommandecCutShortCutX@Command ecDeleteLineShortCutY@Command ecDeleteEOLShortCutY`CommandecUndoShortCutZ@CommandecRedoShortCutZ`Command ecGotoMarker0ShortCut0@Command ecGotoMarker1ShortCut1@Command ecGotoMarker2ShortCut2@Command ecGotoMarker3ShortCut3@Command ecGotoMarker4ShortCut4@Command ecGotoMarker5ShortCut5@Command ecGotoMarker6ShortCut6@Command ecGotoMarker7ShortCut7@Command ecGotoMarker8ShortCut8@Command ecGotoMarker9ShortCut9@Command ecSetMarker0ShortCut0`Command ecSetMark, er1ShortCut1`Command ecSetMarker2ShortCut2`Command ecSetMarker3ShortCut3`Command ecSetMarker4ShortCut4`Command ecSetMarker5ShortCut5`Command ecSetMarker6ShortCut6`Command ecSetMarker7ShortCut7`Command ecSetMarker8ShortCut8`Command ecSetMarker9ShortCut9`Command EcFoldLevel1ShortCut1Command EcFoldLevel2ShortCut2Command EcFoldLevel1ShortCut3Command EcFoldLevel1ShortCut4Command EcFoldLevel1ShortCut5Command EcFoldLevel6ShortCut6Command EcFoldLevel7ShortCut7Command EcFoldLevel8ShortCut8Command EcFoldLevel9ShortCut9Command EcFoldLevel0ShortCut0Command EcFoldCurrentShortCut-CommandEcUnFoldCurrentShortCut+CommandEcToggleMarkupWordShortCutMCommandecNormalSelectShortCutN`CommandecColumnSelectShortCutC`Command ecLineSelectShortCutL`CommandecTabShortCut Command ecShiftTabShortCut CommandecMatchBracketShortCutB`Command ecColSelUpShortCut&Command ecColSelDownShortCut(Command ecColSelLeftShortCut%Command ecColSelRightShortCut'CommandecColSelPageDownShortCut"CommandecColSelPageBottomShortCut"CommandecColSelPageUpShortCut!CommandecColSelPageTopShortCut!CommandecColSelLineStartShortCut$CommandecColSelLineEndShortCut#CommandecColSelEditorTopShortCut$CommandecColSelEditorBottomShortCut# MouseActionsMouseTextActionsMouseSelActions Lines.StringsVisibleSpecialChars vscSpace vscTabAtLast RightEdge ScrollBars ssAutoBothSelectedColor.BackPriority2SelectedColor.ForePriority2SelectedColor.FramePriority2SelectedColor.BoldPriority2SelectedColor.ItalicPriority2SelectedColor.UnderlinePriority2SelectedColor.StrikeOutPriority2TSynGutterPartListSynLeftGutterPartList1TSynGutterMarksSynGutterMarks1Width MouseActionsTSynGutterLineNumberSynGutterLineNumber1Width MouseActionsMarkupInfo.Background clBtnFaceMarkupInfo.ForegroundclNone DigitCountShowOnlyLineNumbersMultiplesOf ZeroStart LeadingZerosTSynGutterChangesSynGutterChanges1Width MouseActions ModifiedColor SavedColorclGreenTSynGutterSeparatorSynGutterSeparator1Width MouseActionsMarkupInfo.BackgroundclWhiteMarkupInfo.ForegroundclGrayTSynGutterCodeFoldingSynGutterCodeFolding1 MouseActionsMarkupInfo.BackgroundclNoneMarkupInfo.ForegroundclGrayMouseActionsExpandedMouseActionsCollapsedTMemoStartupInstructionsAnchorSideLeft.ControlOwnerAnchorSideTop.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomLeftHeight8TopWidthAnchors akTopakLeftakRight Lines.Strings^UDM can be started up by commandline parameters or by the Startup options shown at the bottom.4The command line startup options are explained next:TabOrder TLabeledEditUDMArgumentsLabeledEditAnchorSideLeft.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.ControlStartUpSettingsEditLeftHeightTopWidthAnchors akLeftakRightakBottomBorderSpacing.BottomEditLabel.HeightEditLabel.WidthEditLabel.Caption2UDM was started with these command line arguments:EnabledReadOnly TabOrderFORMDATATStartUpOptionsFormSerial: In config:  On disk: [Serial:]$Attempting to import / merge serial  config.QAre you sure you want to merge any existing configuration for this serial number  ? Cancel if not sure.Import / merge Import / merge serial  config proceeding.Import / merge cancelled. File view:SN_*.txt&Attempting to import / replace serial VAre you sure you want to overwrtite any existing configuration for this serial number Import / replace Import / replace serial Import / replace cancelled./SN__yyyy-mm-dd"T"hh-nn-ss.txtMExport serial number details config : File handling error occurred. Details: Wrote file to: File view: ,File view handling error occurred. Details: udm_yyyy-mm-dd"T"hh-nn-ss.udm.Copied original  file to: [= TPF0TConfigBrowserFormConfigBrowserFormLeftRHeightTopWidthCaption ConfigBrowser ClientHeight ClientWidthOnShowFormShowPositionpoOwnerFormCenter LCLVersion2.2.4.0 TStatusBar StatusBarLeftHeightTopWidthPanelsWidth2 SimplePanel TGroupBoxOnDiskGroupBoxAnchorSideLeft.ControlInConfigGroupBoxAnchorSideLeft.Side asrBottomAnchorSideTop.ControlOwnerAnchorSideRight.ControlOwnerAnchorSideRight.Side asrBottomAnchorSideBottom.Control StatusBarLeftJHeightTopWidthQAnchors akTopakLeftakRightakBottomBorderSpacing.Left CaptionOn disk: ClientHeight ClientWidthMTabOrder TGroupBoxExportedFilesGroupBoxAnchorSideLeft.ControlOnDiskGroupBoxAnchorSideTop.Control RefreshBitBtnAnchorSideTop.Side asrBottomAnchorSideRight.ControlOnDiskGroupBoxAnchorSideRight.Side asrBottomLeftHeightTopWidthMAnchors akTopakLeftakRightCaptionExported files on disk: ClientHeight ClientWidthITabOrder TStringGridExportedFilesStringGridAnchorSideLeft.ControlExportedFilesGroupBoxAnchorSideTop.ControlExportedFilesGroupBoxAnchorSideRight.ControlExportedFilesGroupBoxAnchorSideRight.Side asrBottomAnchorSideBottom.ControlExportedFilesGroupBoxAnchorSideBottom.Side asrBottomLeftHeightTopWidthIAnchors akTopakLeftakRightakBottomAutoEditAutoFillColumns ColCountColumnClickSorts ColumnsMaxSize Title.CaptionNameWidth AlignmenttaRightJustify SizePriorityTitle.AlignmenttaCenter Title.CaptionSizeWidth< AlignmenttaRightJustify SizePriorityTitle.AlignmenttaCenter Title.CaptionTimeWidthConstraints.MinHeightd FixedColsOptions goFixedVertLinegoFixedHorzLine goHorzLine goColSizinggoThumbTrackinggoSmoothScrollRowCountTabOrderOnClickExportedFilesStringGridClick ColWidths< TGroupBoxFileViewGroupBoxAnchorSideLeft.ControlOnDiskGroupBoxAnchorSideTop.ControlExportedFilesGroupBoxAnchorSideTop.Side asrBottomAnchorSideRight.ControlOnDiskGroupBoxAnchorSideRight.Side asrBottomAnchorSideBottom.ControlOnDiskGroupBoxAnchorSideBottom.Side asrBottomLeftHeightTopWidthMAnchors akTopakLeftakRightakBottomCaption File view: ClientHeight ClientWidthITabOrderTListBoxFileViewListBoxAnchorSideLeft.ControlFileViewGroupBoxAnchorSideTop.Control ReplaceButtonAnchorSideTop.Side asrBottomAnchorSideRight.ControlFileViewGroupBoxAnchorSideRight.Side asrBottomAnchorSideBottom.ControlFileViewGroupBoxAnchorSideBottom.Side asrBottomLeftHeightkTop WidthIAnchors akTopakLeftakRightakBottomBorderSpacing.Top ItemHeightTabOrderTopIndexTButton ReplaceButtonAnchorSideLeft.ControlFileViewGroupBoxAnchorSideTop.ControlFileViewGroupBoxLeftHeightHintSImport the file viewed into the stored serial numbers replace any existing details.TopWidthBorderSpacing.LeftCaptionImport / replaceOnClickReplaceButtonClickParentShowHintShowHint TabOrderTButton MergeButtonAnchorSideLeft.Control ReplaceButtonAnchorSideLeft.Side asrBottomAnchorSideTop.ControlFileViewGroupBoxLeftHeightHintUImport the file viewed into the stored serial numbers and merge with exiting details.TopWidthBorderSpacing.LeftCaptionImport / mergeOnClickMergeButtonClickParentShowHintShowHint TabOrderTBitBtn RefreshBitBtnAnchorSideLeft.ControlOnDiskGroupBoxAnchorSideTop.ControlOnDiskGroupBoxLeftHeightHintRefresh file listTopWidthBo?rderSpacing.Left Glyph.Data :6BM66( dde4e4e4e4Sj:i8f5j:k;e4$e4g6e4Tg7UΦض۹Ӭ”mh8f5[g7[g6ԱzNʴѼɰ޾ҫΥӮh8e4*h8ԲҭxLf5i9i9m=xLj:g7yMi8ʤe46e4jk<|Oj:h7f5e4e4je4 f5ɕlS¤e4e4e4׷h7e4դ~͙r9e4e4 e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4 e4e4tGwLwLxLe4e4e4yL~ϝv+We4e4h8Ьj:e4 e5j:Ǒhg7e4#e4`f5j:e4 h8pAlMainWidget 4TGtkWidgetSet.SetCallback WARNING: gMouseWidget=nil showhidedestroydelete-eventfocus-in-eventfocus-out-eventactivateactivate-itemvalue_changedchangedtoggleddelete-textinsert-textdelete-from-cursorpaste-clipboardclickedconfigure-eventday-selectedday-selected-double-clickexpose-eventmonth-changedprev-monthnext-monthmotion-notify-eventbutton-press-eventscroll-eventbutton-release-evententerleavesize-allocatecheck-resizeset-editablemove-wordmove-pagemove-to-rowmove-to-columnkill-charkill-wordkill-linecut-clipboardcopy-clipboardvalue-changedprev-yearnext-yearselection_changeddrag_data_receivedscroll_areaCTGtkWidgetSet.SetCallbackEx.GetAdjustment WARNING: invalid widget: key-press-eventkey-release-eventgrab_focuspopup-menushow-helpgrab-notify__&_commit3333333@:  [RECURSION] [FATAL] ERRORCRITICALINFODEBUGUSER] [.gtkrcCLIPBOARD--lcl-no-transient[TGtk2WidgetSet.Destroy] DCs:   GDIOs: %s: %dwayland6TGtk2WidgetSet.UpdateTransientWindows already updating3ERROR: TGtk2WidgetSet.SendCachedLCLMessages Widget  without LCL control;WARNING: [TGtk2WidgetSet.InternalGetDIBits] invalid Bitmap!9WARNING: [TGtk2WidgetSet.InternalGetDIBits] not a Bitmap!QWARNING: [TGtk2WidgetSet.InternalGetDIBits] not enough memory allocated for Bits!CWARNING: [TGtk2WidgetSet.InternalGetDIBits] unsupported biBitCount=>TGtk2WidgetSet.RawImage_DescriptionFromDrawable: visual failed@TGtk2WidgetSet.GetWindowRawImageDescription unknown Visual type FTGtk2WidgetSet.GetWindowRawImageDescription testimage creation failed @TGtk2WidgetSet.GetWindowRawImageDescription Unknown line end: %d$TGtk2WidgetSet.RawImage_FromDrawableWWARNING: TGtk2WidgetSet.RawImage_FromDrawable: RawImage_DescriptionFromDrawable failed CWARNING: TGtk2WidgetSet.RawImage_FromDrawable: gdk_image_get failed"TGtk2WidgetSet.RawImage_FromPixbufSWARNING: TGtk2WidgetSet.RawImage_FromPixbuf: RawImage_DescriptionFromPixbuf failed 4TGtk2WidgetSet.RawImage_SetAlpha RawImage.Data = nilCTGtk2WidgetSet.RawImage_SetAlpha RawImage.Description.AlphaPrec = 05WARNING: TGtk2WidgetSet.RawImage_SetAlpha Alpha = nilZWARNING: TGtk2WidgetSet.RawImage_SetAlpha: Only a Depth of 1 or 8 is supported. (depth=%d)\WARNING: TGtk2WidgetSet.RawImage_SetAlpha: Rect(%d,%d %d,%d) outside alpha pixmap(0,0 %d,%d)ETGtk2WidgetSet.RawImage_SetAlpha: Width <> RawImage.Description.WidthGTGtk2WidgetSet.RawImage_SetAlpha: Height <> RawImage.Description.Height?WARNING: TGtk2WidgetSet.RawImage_SetAlpha: gdk_image_get failed]WARNING: TGtk2WidgetSet.RawImage_SetAlpha: RawImage.Description.BitsPerPixel=%d not supported4TGtk2WidgetSet.RawImage_AddMask RawImage.Mask <> nil4WARNING: TGtk2WidgetSet.RawImage_AddMask AMask = nilDTGtk2WidgetSet.RawImage_AddMask: Width <> RawImage.Description.WidthFTGtk2WidgetSet.RawImage_AddMask: Height <> RawImage.Description.Height>WARNING: TGtk2WidgetSet.RawImage_AddMask: gdk_image_get failed5TGtk2WidgetSet.StretchCopyArea DestDC=%p Drawable=nilRaiseSrcDrawableNil 4TGtk2WidgetSet.StretchCopyArea SrcDC=%p Drawable=nilQWARNING: [TGtk2WidgetSet.StretchCopyArea] Destination and/or Source unsupported!!GWARNING: [TGtk2WidgetSet.StretchCopyArea] BitmapToPixmap unimplemented!GWARNING: [TGtk2WidgetSet.StretchCopyArea] PixmapToBitmap unimplemented!ISrcDevBitmapToDrawable: failed to create temporary pixbuf for scaled drawZSrcDevBitmapToDrawable NOTE: SrcDevContext.CurrentBitmap=nil, SrcDevContext.Drawable = nil3WARNING: SrcDevBitmapToDrawable: ScaleAndROP failed>WARNING: [TGtk2WidgetSet.StretchCopyArea] Uninitialized DestGC2WARNING: ScaleAndROP ScalePixmap for pixmap failed_NET_WM_DESKTOP_NET_CURRENT_DESKTOP_NET_SUPPORTING_WM_CHECKUTF8_STRING_NET_WM_NAME_NET_ACTIVE_WINDOW_NET_WM_STATE_NET_WM_STATE_STAYS_ON_TOP_NET_WM_STATE_ABOVElclhintwindowlclneedrestorevisible_NET_WM_CM_S0ScrollBar?"TGtk2WidgetSet.DestroyEmptySubmenuContainerMenuTDockImageWindow)TGtk2WidgetSet.ShowHide Sender.ClassName=0WARNING: TGtk2WidgetSet.LoadXPMFromLazResource: Pixmap;[TGtk2WidgetSet.DeleteObject] TODO : Unimplemented GDI type;TGtk2WidgetSet.ReleaseGDIObject invalid owner of GdiObject= Owner= Owner.OwnedGDIObjects=*TGtk2WidgetSet.ReleaseGDIObject GdiObject= is still used. DCCount=DC: ^No DC found with this GDIObject => either the DCCount is wrong or the DC is not in the DC list8TGtk2WidgetSet.UpdateDCTextMetric no CachedFont UseFont=;TGtk2WidgetSet.UpdateDCTextMetric WARNING: no pango context<TGtk2WidgetSet.UpdateDCTextMetric WARNING: no pango languageDTGtk2WidgetSet.UpdateDCTextMetric WARNING: no pango font description;TGtk2WidgetSet.UpdateDCTextMetric WARNING: no pango metricsMWselection_receivedselection_getselection_clear_eventHTGtk2WidgetSet.WordWrap Consistency Error: Lines+TotalSize<>CurLineStart?eventWNDPROCtext/plainCOMPOUND_TEXTSTRINGFILE_NAMEHOST_NAMEUSERTEXTTARGETSATOMAERROR: TGtk2WidgetSet.ClipboardRegisterFormat gdk not initialized5ERROR: [TGtk2WidgetSet.CreateBitmap] Illegal depth %dCWARNING: [TGtk2WidgetSet.CreateBitmap] Error loading Bitmap Header!;WARNING: [TGtk2WidgetSet.CreateBitmap] Error loading Image!<WARNING: [TGtk2WidgetSet.CreateBitmap] Error loading Pixbuf!=TGtk2WidgetSet.CreateBrushIndirect: Unsupported GDIBitmapTypeunsupported bitmapunsupported Style %d)TGtk2WidgetSet.CreateBrushIndirect failed?ERROR: [TGtk2WidgetSet.CreateCompatibleBitmap] Illegal depth %d@default10px, ;TGtk2WidgetSet.CreateFontIndirectEx Unable to create font A1WARNING: [TGtk2WidgetSet.CombineRgn] Invalid HRGN1WARNING: [TGtk2WidgetSet.CombineRgn] Invalid Dest.TGtk2WidgetSet.DeleteObject invalid GdiObject=;ERROR: [TGtk2WidgetSet.DrawFrameControl] Unknown State 0x%x8ERROR: [TGtk2WidgetSet.DrawFrameControl] Unknown type %dradiobuttoncheckbuttonbuttonfocus-line-width  $@v@V@@f@p@1WARNING: [TGtk2WidgetSet.GetDIBits] not a Bitmap!3WARNING: [TGtk2WidgetSet.GetDIBits] invalid Bitmap!5WARNING: [TGtk2WidgetSet.GetBitmapBits] not a Bitmap!7WARNING: [TGtk2WidgetSet.GetBitmapBits] invalid Bitmap!1WARNING: [TGtk2WidgetSet.GetClipRGN] Invalid HRGN 1TGtk2WidgetSet.GetDeviceCaps not supported: Type= Widget= without gdkwindow. WARNING: DC TGtk2WidgetSet.GetDeviceSize:3WARNING: [TGtk2WidgetSet.GetObject] Unknown type %d?[GetScrollInfo] Possible obsolete get use of CList (Listview ?)(!!! direct SB_HORZ get call to scrollbar[GetScrollInfo] Got SB_BOTH ???OERROR: [TGtk2WidgetSet.GetSysColor] Bad Value: %d. Valid Range between 0 and %dTERROR: [TGtk2WidgetSet.GetSysColorBrush] Bad Value: %d. Valid Range between 0 and %dslider-widthscrollbar-spacingHINSTANCEHWNDPARENTUserdataID1WARNING: [TGtk2WidgetSet.HideCaret] Got null HWNDRWARNING: TGtk2WidgetSet.InvalidateRect refused invalidating during paint message: modal_resultDo not close !!!,CombinePaintMessages A unknown paint message,CombinePaintMessages B unknown paint messageLWARNING: TGtk2WidgetSet.RegroupMenuItem: handle is not a GTK_RADIO_MENU_ITEMGroupIndexTGtk2WidgetSet.ReleaseDC: 3WARNING: [TGtk2WidgetSet.SelectClipRGN] Invalid RGN,TGtk2WidgetSet.SelectObject Invalid GDIType  is modal and above. can not be raised, because (TGtk2WidgetSet.SetForegroundWindow Form=(!!! direct SB_HORZ set call to scrollbar?[SetScrollInfo] Possible obsolete set use of CList (Listview ?)$!!! direct SB_VERT call to scrollbar[SetScrollInfo] Got SB_BOTH ???@hscrollbar_policyvscrollbar_policy^TGtk2WidgetSet.SetWindowPos.SetZOrderOnFixedWidget WARNING: Widget not on parents fixed widgetMTGtk2WidgetSet.SetWindowPos.SetZOrderOnFixedWidget WARNING: hWndInsertAfter=0cTGtk2WidgetSet.SetWindowPos.SetZOrderOnFixedWidget WARNING: AfterWidget not on parents fixed widget1WARNING: [TGtk2WidgetSet.ShowCaret] Got null HWND&TGtk2WidgetSet.ShowWindow hWnd is nilTGtk2WidgetSet.ShowWindow 2TGtk2WidgetSet.ShowWindow hWnd is not a gtkwindow?$ ARawImage.Description.BitsPerPixel= ImgDepth= Visual^.depth= ByteOrder= BitsPerPixel= BytesPerLine=2TGtk2WidgetSet.CreateBitmapFromRawImage GdkImage: ATGtk2WidgetSet.CreateBitmapFromRawImage Incompatible BitsPerPixel=TGtk2WidgetSet.CreateBitmapFromRawImage Incompatible DataSizeFWARNING: [TGtk2WidgetSet.GetBitmapRawImageDescription] invalid Bitmap!NWARNING: [TGtk2WidgetSet.RawImage_DescriptionFromBitmap] Unknown GDIBitmapType=WARNING: [TGtk2WidgetSet.RawImage_FromBitmap] invalid Bitmap!:WARNING: [TGtk2WidgetSet.RawImage_FromBitmap] invalid MaskCWARNING: [TGtk2WidgetSet.RawImage_FromBitmap] Unknown GDIBitmapTypePWARNING: [TGtk2WidgetSet.RawImage_FromBitmap] Unsupported GDIBitmapType for maskVWARNING: [TGtk2WidgetSet.RawImage_FromBitmap] unable to GetRawImageFromGdkWindow Image;WARNING: TGtk2WidgetSet.GetRawImageFromDevice invalid SrcDC&OKgtk-okCancel gtk-cancel&Helpgtk-help&Yesgtk-yes&Nogtk-no&Close gtk-closeMenu5TGtkListStoreStringList.Create Unspecified list store3TGtkListStoreStringList.Create Invalid Column Index0TGtkListStoreStringList.Create Unspecified owner0TGtkListStoreStringList.PutObject Out of bounds.MTGtkListStoreStringList.Assign: There are 2 lists with the same FGtkListStore*TGtkListStoreStringList.Get Out of bounds.0TGtkListStoreStringList.GetObject Out of bounds.*TGtkListStoreStringList.Put Out of bounds.&TGtkListStoreStringList.Insert: Index  out of bounds. Count=0TGtkListStoreStringList.Insert Unspecified ownerGtkList"gtkListItemDrawAfterCB GtkList=nilLCLList"gtkListItemDrawAfterCB LCLList=nil gtkListItemToggledCB GtkList=nil gtkListItemToggledCB LCLList=nilGrayed$gtkListItemSelectAfterCB LCLList=nil(gtkListItemSelectAfterCB GtkList=nil li= Text=""1TGtkListStringList.Create Unspecified list widget+TGtkListStringList.Create Unspecified ownerexpose_eventLCLStringsObjectRealCachedCount= FCachedCount=:>?TGtkListStringList.Assign: There 2 lists with the same FGtkListTGtkListStringList.Put%TGtkListStringList.Get Out of bounds.+TGtkListStringList.Insert Unspecified owner!TGtkListStringList.Insert: Index ()gtk-signal-handlersEOFSymbolStringIntegerFloat WideStringTPF0TPF00123456789ABCDEFProxystream.Check $-[].&{BC7376EA-199C-4C2A-8684-F4805F0691CA}   StringsFailed to create new threadMA thread cannot destroy itself except by setting FreeOnTerminate and leaving!Suspending one thread from inside another one is unsupported (because it is unsafe and deadlock prone) by *nix and posix operating systemsNilF?$JGd9LeftTopHeightHorizontalOffsetVerticalOffsetWidthPPI$OWNER->Illegal stream image inheritedinlineobject :  end = ()FalseTrue, nil< item  end>{}''#'OBJECT INHERITEDINLINEENDitem_'Null_NULLFALSETRUENILOwner.Owner$d/m/ydd" "mmmm" "yyyyAMPMhh:nnhh:nn:ssJanFebMarAprMayJunJulAugSepOctNovDecJanuaryFebruaryMarchAprilMayJuneJulyAugust SeptemberOctoberNovemberDecemberSunMonTueWedThuFriSatSundayMondayTuesday WednesdayThursdayFridaySaturday.cfg$l1l2l3l4l5l9us437gbkmikkoiirvbig5sjiskoi8x-ebcdic-japaneseanduscanadax-mac-romanianebcdic-de-273+euroibm-thaix-eucx-ia5ibm00858ibm00924ibm01047ibm01147ibm01146ibm01145ibm01144ibm01143ibm01142ibm01141ibm01140ibm01149ibm01148csisolatin4csisolatin5csisolatin1csisolatin2csisolatin3csisolatin9ucs-2cn-gbcp037cp273cp278cp280cp284cp285cp290cp297cp367cp420cp423cp424cp437cp500cp819cp850cp852cp855cp856cp857cp858cp860cp861cp862cp863cp864cp865cp866cp869cp870cp871cp875cp880cp905johabcp930cp933cp935cp937cp939koi8rgreekasciiutf-7utf-8iso_646.irv:1991x-mac-ukrainiancn-big5iso-8859-8 visualecma-118ecma-114cswindows31jx-mac-ceus-asciiks-c5601x-ms-cp932ks_c_5601-1989ks_c_5601-1987x-chinese-etenbig5-hkscsx_chinese-etenebcdic-international-500+euroiso-ir-58x-mac-greekiso-ir-6asmo-708ebcdic-gb-285+euroiso-2022-kr-7bitiso-2022-kr-8bitx-mac-croatiancsisolatinarabicdin_66003unicodeiso-10646-ucs-2windows-1258windows-1254windows-1255windows-1256windows-1257windows-1250windows-1251windows-1252windows-1253ansi_x3.4-1968ansi_x3.4-1986iso-2022-jpiso-2022-jpiso-2022-krx-ansix-sjiscp00858cp00924cp01145cp01144cp01147cp01146cp01141cp01140cp01143cp01142cp01149cp01148ebcdic-es-284+eurox-cp20001x-cp20003x-cp20004x-cp20005x-cp20269x-cp20261x-cp20949x-cp20936x-cp21027x-cp50229x-cp50227logicalkoi8-ruiso-2022-jpeucms_kanjigb2312dos-720dos-862dos-874latin1latin2latin3latin4latin5latin9iso_8859-3:1988ibm037ibm273ibm277ibm278ibm280ibm284ibm285ibm290ibm297ibm367ibm420ibm423ibm424ibm437ibm500ibm737ibm775ibm819ibm850ibm852ibm855ibm857ibm860ibm861ibm862ibm863ibm864ibm865ibm866ibm869ibm870ibm871ibm880ibm905hebrewelot_928germanvisualhz-gb-2312x-mac-japanesecp1025cp1026cp1256csisolatincyrilliccp3021koi8-rkoi8-ux-mac-icelandicx-mac-arabickoreangb18030csgb231280csiso2022jpcsiso2022krgb231280arabicgreek8iso_8859-4:1988csbig5utf-16utf-32euc-cneuc-jpeuc-jpeuc-krebcdic-cp-heebcdic-cp-grebcdic-cp-itebcdic-cp-isebcdic-cp-dkebcdic-cp-gbebcdic-cp-frebcdic-cp-esebcdic-cp-fiebcdic-cp-caebcdic-cp-chebcdic-cp-beebcdic-cp-wtebcdic-cp-yuebcdic-cp-trebcdic-cp-usebcdic-cp-seebcdic-cp-noebcdic-cp-nlks-c-5601x-chinese-cnsx-mac-thaigb_2312-80gb2312-80iso_8859-1:1987ebcdic-is-871+euroebcdic-jp-kanacsunicode11utf7ks_c_5601_1987cyrillicx-mac-chinesetradx-mac-chinesesimpx-chinese_cnsx-ebcdic-koreanextendedibm1026csibm1026csibmthaiccsid01149ccsid01148ccsid01145ccsid01144ccsid01147ccsid01146ccsid01141ccsid01140ccsid01143ccsid01142ccsid00858ccsid00924pc-multilingual-850+eurocsasciiksc5601iso_8859-2:1987ebcdic-it-280+eurons_4551-1x-mac-cyrilliccseuckrx-iscii-kax-iscii-gux-iscii-dex-iscii-bex-iscii-asx-iscii-orx-iscii-max-iscii-tex-iscii-tax-iscii-pasen_850200_bcskoi8rx-cp1251x-cp1250x-unicode-2-0-utf-7x-unicode-2-0-utf-8x-unicode-1-1-utf-7x-unicode-1-1-utf-8iso_8859-7:1987x-mac-turkishcsisolatinhebrewx-ia5-germanunicodefffeutf-16beutf-16leutf-32beksc_5601ks_c_5601cspc8codepage437iso_8859-8:1988iso646-usebcdic-latin9--eurox-ia5-swedishiso_8859-5:1988csisolatingreekx-euc-cnx-euc-jpunicode-2-0-utf-7unicode-2-0-utf-8unicode-1-1-utf-7unicode-1-1-utf-8x-europaebcdic-cp-roecex-x-big5csksc56011987extended_unix_code_packed_format_for_japanesecsgb2312cseucpkdfmtjapaneseiso_8859-6:1987shift-jisswedishnorwegianshift_jisiso8859-2iso8859-1iso-8859-1iso-8859-2iso-8859-3iso-8859-4iso-8859-5iso-8859-6iso-8859-7iso-8859-8iso-8859-9iso_8859-2iso_8859-3iso_8859-1iso_8859-6iso_8859-7iso_8859-4iso_8859-5iso_8859-8iso_8859-9iso-8859-13iso-8859-11iso-8859-10iso-8859-16iso-8859-15iso-8859-14iso_8859-15ebcdic-dk-277+euroebcdic-fr-297+eurowindows-31jwindows-874chineseebcdic-se-278+euroiso-2022-kr-7iso-2022-kr-8iso-8859-8-icsiso58gb231280x-mac-koreancsibm037csibm297csibm290csibm285csibm284csibm280csibm277csibm273csibm278csibm424csibm423csibm420csibm500csibm880csibm871csibm870csibm905csshiftjisebcdic-cyrillicmacintoshiso-ir-101iso-ir-100iso-ir-109iso-ir-138iso-ir-144iso-ir-149iso-ir-148iso-ir-110iso-ir-127iso-ir-126tis-620ebcdic-cp-ar1iso_8859-9:1989x-ia5-norwegianebcdic-fi-278+euroebcdic-us-37+euroebcdic-no-277+eurox-mac-hebrewibm037ibm437IBM500asmo-708DOS-720ibm737ibm775ibm850ibm852IBM855cp856ibm857ibm00858IBM860ibm861DOS-862IBM863IBM864IBM865cp866ibm869IBM870windows-874cp875shift_jisgb2312ks_c_5601-1987big5ibm1026ibm01047ibm01140IBM01141IBM01142IBM01143IBM01144ibm01145ibm01146ibm01147IBM01148IBM01149utf-16unicodefffewindows-1250windows-1251windows-1252windows-1253windows-1254windows-1255windows-1256windows-1257windows-1258JohabMIKmacintoshx-mac-japanesex-mac-chinesetradx-mac-koreanx-mac-arabicx-mac-hebrewx-mac-greekx-mac-cyrillicx-mac-chinesesimpx-mac-romanianx-mac-ukrainianx-mac-thaix-mac-cex-mac-icelandicx-mac-turkishx-mac-croatianutf-32utf-32BEx-Chinese_CNSx-chinese-cnsx-cp20001x_Chinese-Etenx-chinese-etenx-cp20003x-cp20004x-cp20005x-IA5x-ia5-germanx-IA5-Swedishx-IA5-Norwegianus-asciix-cp20261x-cp20269ibm273ibm277ibm278ibm280ibm284IBM285IBM290IBM297ibm420ibm423IBM424x-EBCDIC-KoreanExtendedibm-thaikoi8-ribm871ibm880ibm905IBM00924EUC-JPx-cp20936x-cp20949cp1025x-cp21027koi8-uiso-8859-1iso-8859-2iso-8859-3iso-8859-4iso-8859-5iso-8859-6iso-8859-7iso-8859-8iso-8859-9iso-8859-10iso-8859-11iso-8859-13iso-8859-14iso-8859-15iso-8859-16x-Europaiso-8859-8-iiso-2022-jpcsISO2022JPiso-2022-jpiso-2022-krx-cp50227x-cp50229cp930x-ebcdic-japaneseanduscanadacp933cp935cp937cp939euc-jpeuc-cneuc-krhz-gb-2312gb18030x-iscii-dex-iscii-bex-iscii-tax-iscii-tex-iscii-asx-iscii-orx-iscii-kax-iscii-max-iscii-gux-iscii-pautf-7utf-8cf ./fd0/./fd1/./.@HOME///.//..//../*..//*../PATHNot yet implemented : .The length of a GUID array must be at least %d%The length of a GUID array must be %dUnknown type: %dC__C__%@ @0000000000 ()- TrueFalse-1Invalid float format'InfNan   ( IndexAValue StartIndex SBCharCountCountDestinationIndex RemLength aStartIndexaLengthIndexAValue StartIndex SBCharCount CountDestinationIndex RemLength aStartIndexaLengthpA?\&-%A*%d-%d-%d is not a valid date specification-%d:%d:%d.%d is not a valid time specification*%L8>dddddtt"%s" is not a valid date format Invalid dateAMPMCA/PAMPMAM/PM"Illegal character in format string%Deadlock detected!EndWrite called before BeginWriteJBasicEventWaitFor failed in TMultiReadExclusiveWriteSynchronizer.BeginreadEndRead called before BeginReadConfigTMP %s%.5d.tmp%.4xF{%.8x-%.4x-%.4x-%.2x%.2x-%.2x%.2x%.2x%.2x%.2x%.2x}: $An unhandled exception occurred at $: Exception object  is not of class Exception.&Exception object is not a valid class.%s: %s. /dev/urandom/proc/sys/kernel/random/uuid{}./XDG_CONFIG_HOME.config/TEMPTMPDIR/tmp//etcFalseTrue.TYPINFO.Type information points to non-enumerated typetypinfo.serrnotanenumerated#Invalid number of enumerated values"typinfo.serrinvalidenumeratedcount$Duplicate alias for enumerated valuetypinfo.serrduplicateenumerated,[]0Cannot set RAW interface from IUnknown interface'@ @ RTLCONSTS$No context-sensitive Help installed.rtlconsts.hnocontextNo Help Manager installed.rtlconsts.hnosystemNo Table of Contents found.rtlconsts.hnotableofcontentsNo help found for "%s"rtlconsts.hnothingfoundNo topic-based Help installed.rtlconsts.hnotopicsAbortrtlconsts.sabortbutton&Allrtlconsts.sallbutton All filesrtlconsts.sallfilter"Ancestor class for "%s" not found.rtlconsts.sancestornotfoundCannot assign a %s to a %s.rtlconsts.sassignerrorAsynchronous socket error: %drtlconsts.sasyncsocketerrorBG rtlconsts.sbgBitmap is emptyrtlconsts.sbitmapemptyBits index out of range.rtlconsts.sbitsindexerrorBoldrtlconsts.sboldfont Bold Italicrtlconsts.sbolditalicfont(List is locked during an active ForEach.rtlconsts.sbucketlistlockedCancelrtlconsts.scancelbuttonCannot create directoryrtlconsts.scannotcreatedir2Cannot use standard name for and unknown componentrtlconsts.scannotcreatenameUnable to create new socketrtlconsts.scannotcreatesocketForms cannot be draggedrtlconsts.scannotdragform.A disbled or invisible Window cannot get focusrtlconsts.scannotfocus*Listening on an open socket is not allowedrtlconsts.scannotlistenonopenAVI can not be openedrtlconsts.scannotopenavi&A visible Window can not be made modalrtlconsts.scannotshowmodal1Changing value on an active socket is not allowed rtlconsts.scantchangewhileactive)Can not write to read-only ResourceStream'rtlconsts.scantwriteresourcestreamerror!CARDS library could not be loadedrtlconsts.scarddllnotloaded2Interface %s already initialized from library "%s"rtlconsts.slibraryalreadyloaded1Can not initialize interface %s from library "%s"rtlconsts.slibrarynotloaded=Can not resolve symbol "%s" of interface %s from library "%s"rtlconsts.slibraryunknownsymCan not change icon sizertlconsts.schangeiconsize "%s" expectedrtlconsts.scharexpected2CheckSynchronize called from non-main thread "$%x" rtlconsts.schecksynchronizeerrorResource %s has wrong classrtlconsts.sclassmismatchClass "%s" not foundrtlconsts.sclassnotfound#Client of TDrag was not initializedrtlconsts.sclientnotset&Closertlconsts.sclosebutton!Failed to parse imaginary portion&rtlconsts.scmplxcouldnotparseimaginary,Failed to parse required "+" (or "-") symbol!rtlconsts.scmplxcouldnotparseplusFailed to parse real portion!rtlconsts.scmplxcouldnotparsereal$Failed to parse required "%s" symbol#rtlconsts.scmplxcouldnotparsesymbol %s [%s%s]rtlconsts.scmplxerrorsuffixUnexpected charactersrtlconsts.scmplxunexpectedcharsUnexpected end of string [%s]rtlconsts.scmplxunexpectedeosColorrtlconsts.scolorprefixABCDEFGHIJKLMNOPrtlconsts.scolortags&Component "%s" does not implement "%s"#rtlconsts.scomponentdoesntimplement.Component name "%s" exceeds 64 character limitrtlconsts.scomponentnametoolong<The selected directory does not exist. Should it be created?rtlconsts.sconfirmcreatedir)A component can not have itself as parent!rtlconsts.scontrolparentsettoself)Conversion family "%s" already registeredrtlconsts.sconvduplicatefamily-Conversion type (%s) already registered in %srtlconsts.sconvduplicatetype"%s" has a factor of zerortlconsts.sconvfactorzeroIllegal familyrtlconsts.sconvillegalfamily Illegal typertlconsts.sconvillegaltype&Incompatible conversion types (%s, %s)!rtlconsts.sconvincompatibletypes2*Incompatible conversion types (%s, %s, %s)!rtlconsts.sconvincompatibletypes30Incompatible conversion types (%s - %s, %s - %s)!rtlconsts.sconvincompatibletypes4Could not parse %srtlconsts.sconvstrparseerror[$%.8x]!rtlconsts.sconvunknowndescription[%s%.8x]+rtlconsts.sconvunknowndescriptionwithprefixUnknown conversion family: "%s"rtlconsts.sconvunknownfamilyUnknown conversion type: "%s"rtlconsts.sconvunknowntype Custom colorsrtlconsts.scustomcolors!Invalid argument for date encode.rtlconsts.sdateencodeerror/DDE error - conversion was not performed ($0%x)rtlconsts.sddeconverr#An error was returned by DDE ($0%x)rtlconsts.sddeerr4An error occurred - not enough memory for DDE ($0%x)rtlconsts.sddememerr%DDE-Conversation could not be startedrtlconsts.sddenoconnectDefaultrtlconsts.sdefaultAll files (*.*)|*.*rtlconsts.sdefaultfilter=Delimiter and QuoteChar properties cannot have the same value"rtlconsts.sdelimiterquotecharerror%s on %srtlconsts.sdeviceonportImage size mismatchrtlconsts.sdimsdonotmatchDirectory &name:rtlconsts.sdirnamecap &Directories:rtlconsts.sdirscap&Drives:rtlconsts.sdrivescapDuplicate card ID foundrtlconsts.sduplicatecardid!A class named "%s" already existsrtlconsts.sduplicateclass*Duplicates not allowed in this list ($0%x)rtlconsts.sduplicateitem!Menu "%s" is used by another formrtlconsts.sduplicatemenus5Duplicate name: A component named "%s" already existsrtlconsts.sduplicatename-WriteObject was called twice for one instancertlconsts.sduplicatereference%String list does not allow duplicatesrtlconsts.sduplicatestring*Illegal Nil stream for TReader constructor#rtlconsts.semptystreamillegalreader*Illegal Nil stream for TWriter constructor#rtlconsts.semptystreamillegalwriter!Bit index exceeds array limit: %drtlconsts.serrindextoolargeInvalid bit index : %drtlconsts.serrinvalidbitindexIFailed to initialize component class "%s": No streaming method available.rtlconsts.serrnostreaming]No variant support for properties. Please use the variants unit in your project and recompilertlconsts.serrnovariantsupport Out of memoryrtlconsts.serroutofmemory"%s" is not an observerrtlconsts.serrnotobserverUnknown property: "%s"rtlconsts.serrpropertynotfound0Invalid property type from streamed property: %d!rtlconsts.serrinvalidpropertytypeUnknown enumeration value: "%s"rtlconsts.serrunknownenumvalue=TStrings descendant "%s" failed to call inherited constructor"rtlconsts.sfailedtocallconstructorFB rtlconsts.sfbUnable to create file "%s"rtlconsts.sfcreateerrorUnable to create file "%s": %srtlconsts.sfcreateerrorexFG rtlconsts.sfg &Files: (*.*)rtlconsts.sfilescap1Fixed column count must be less than column countrtlconsts.sfixedcoltoobig+Fixed row count must be less than row countrtlconsts.sfixedrowtoobigUnable to open file "%s"rtlconsts.sfopenerrorUnable to open file "%s": %srtlconsts.sfopenerrorex!Grid too large for this operationrtlconsts.sgridtoolarge9GroupIndex must be greater than preceding menu groupindexrtlconsts.sgroupindextoolow&Helprtlconsts.shelpbutton Clipboard does not support Iconsrtlconsts.sicontoclipboardIdentifier expectedrtlconsts.sidentifierexpected&Ignorertlconsts.signorebutton4A Canvas can only be changed if it contains a bitmap!rtlconsts.simagecanvasneedsbitmapInvalid ImageList indexrtlconsts.simageindexerror0The ImageList data could not be read from streamrtlconsts.simagereadfail1The ImageList data could not be written to streamrtlconsts.simagewritefailGrid index out of rangertlconsts.sindexoutofrangeParameter %s cannot be nilrtlconsts.sparamisnilUnable to write to "%s"rtlconsts.sinifilewriteerrorLine could not be insertedrtlconsts.sinsertlineerror&Interface "%s" does not have an IIDStrrtlconsts.sinterfacenoiidstrInvalid action creation rtlconsts.sinvalidactioncreationInvalid action enumeration#rtlconsts.sinvalidactionenumerationInvalid action registration$rtlconsts.sinvalidactionregistrationInvalid action unregistration&rtlconsts.sinvalidactionunregistrationInvalid binary valuertlconsts.sinvalidbinaryInvalid Bitmaprtlconsts.sinvalidbitmapInvalid clipboard formatrtlconsts.sinvalidclipfmt Invalid itemrtlconsts.sinvalidcurrentitem$(%d, %d) is not a valid DateDay pairrtlconsts.sinvaliddateday2(%d, %d, %d, %d) is not a valid DateMonthWeek quadrtlconsts.sinvaliddatemonthweek,(%d, %d, %d) is not a valid DateWeek tripletrtlconsts.sinvaliddateweek5(%d, %d, %d, %d) is not a valid DayOfWeekInMonth quad"rtlconsts.sinvaliddayofweekinmonth&"%s" is not a valid date format string%rtlconsts.serrillegaldateformatstring"%s" is not a valid file name.rtlconsts.sinvalidfilename Invalid Iconrtlconsts.sinvalidiconInvalid stream formatrtlconsts.sinvalidimageInvalid ImageListrtlconsts.sinvalidimagelistInvalid image sizertlconsts.sinvalidimagesize "%s" is not a valid mask at (%d)rtlconsts.sinvalidmaskText larger than memo capacityrtlconsts.sinvalidmemosizeInvalid Metafilertlconsts.sinvalidmetafile""%s" is not a valid component namertlconsts.sinvalidnameInvalid numerical valuertlconsts.sinvalidnumberInvalid Pixelformatrtlconsts.sinvalidpixelformatSelected printer is invalidrtlconsts.sinvalidprinter%Operation invalid on selected printerrtlconsts.sinvalidprinteropInvalid property valuertlconsts.sinvalidpropertyInvalid property element: "%s"!rtlconsts.sinvalidpropertyelementInvalid property pathrtlconsts.sinvalidpropertypathProperty type (%s) is not validrtlconsts.sinvalidpropertytypeInvalid value for propertyrtlconsts.sinvalidpropertyvalueInvalid data type for "%s"rtlconsts.sinvalidregtype%s is not a valid Roman numeralrtlconsts.sinvalidromannumeralInvalid string constantrtlconsts.sinvalidstring1Unable to insert rows in or delete rows from gridrtlconsts.sinvalidstringgridopRegisterindex out of boundsrtlconsts.sinvalidtabindexItalicrtlconsts.sitalicfontItem not found ($0%x)rtlconsts.sitemnotfound Line too longrtlconsts.slinetoolongList capacity (%d) exceeded.rtlconsts.slistcapacityerrorList count (%d) out of bounds.rtlconsts.slistcounterrorList index (%d) out of boundsrtlconsts.slistindexerror%Incompatible item size in source listrtlconsts.slistitemsizeerror$Map key (address $%x) does not existrtlconsts.smapkeyerror<Invalid mask input value. Use escape key to abandon changesrtlconsts.smaskediterrInvalid mask input valuertlconsts.smaskerr%A MDI-Child Window can not be hidden.rtlconsts.smdichildnotvisible+Out of memory while expanding memory streamrtlconsts.smemorystreamerrorMenu Index out of rangertlconsts.smenuindexerrorMenu entry not found in menurtlconsts.smenunotfoundMenu reinsertedrtlconsts.smenureinserted?rtlconsts.smissingdatetimefieldeAll files (*.*)|*.*|Wave-files (*.WAV)|*.WAV|Midi-files (*.MID)|*.MID|Video for Windows (*.avi)|*.avirtlconsts.smpopenfilter Ne&twork...rtlconsts.snetworkcapNo address specifiedrtlconsts.snoaddress&Nortlconsts.snobutton$Canvas handle does not allow drawingrtlconsts.snocanvashandle+"%s" has not been registered as a COM classrtlconsts.snocomsupportNo default printer was selectedrtlconsts.snodefaultprinter(No MDI form is available, none is activertlconsts.snomdiformNo timers availablertlconsts.snotimersNo MCI-device openedrtlconsts.snotopenerr!Printer is not currently printingrtlconsts.snotprintingNo procedure givenrtlconsts.snoprocgiven: [ - No name - ]rtlconsts.snovolumelabelNumber expectedrtlconsts.snumberexpectedOKrtlconsts.sokbutton$Can not load older version of TShapertlconsts.soldtshape!Invalid operation for TOleGraphicrtlconsts.solegraphic???rtlconsts.soutlinebadlevelInvalid Node indexrtlconsts.soutlineerrorParent node must be expandedrtlconsts.soutlineexpanderrorError loading filertlconsts.soutlinefileloadNode index not foundrtlconsts.soutlineindexerror Line too longrtlconsts.soutlinelonglineMaximum level exceededrtlconsts.soutlinemaxlevelsInvalid selectionrtlconsts.soutlineselectionValue must be between %d and %drtlconsts.soutofrangeOut of system resourcesrtlconsts.soutofresources!Element '%s' has no parent Windowrtlconsts.sparentrequired %s on line %drtlconsts.sparseerror (at %d,%d, stream offset %.8x)rtlconsts.sparlocinfoWrong token type: %s expectedrtlconsts.sparexpected*Wrong token type: %s expected but %s foundrtlconsts.sparwrongtokentype,Wrong token symbol: %s expected but %s foundrtlconsts.sparwrongtokensymbolInvalid integer number: %srtlconsts.sparinvalidinteger!Invalid floating point number: %srtlconsts.sparinvalidfloatUnterminated string rtlconsts.sparunterminatedstringUnterminated byte value"rtlconsts.sparunterminatedbinvalue (%dx%d)rtlconsts.spicturedescImage:rtlconsts.spicturelabelPreviewrtlconsts.spreviewlabelPrinter Index out of rangertlconsts.sprinterindexerrorPrinting in progressrtlconsts.sprinting Propertiesrtlconsts.spropertiesverbError reading %s%s%s: %srtlconsts.spropertyexceptionProperty %s out of rangertlconsts.spropertyoutofrangePutObject on undefined objectrtlconsts.sputobjecterror Range errorrtlconsts.srangeerrorStream read errorrtlconsts.sreaderrorProperty is read-onlyrtlconsts.sreadonlypropertyFailed to create key %srtlconsts.sregcreatefailedFailed to get data for "%s"rtlconsts.sreggetdatafailedInvalid component registrationrtlconsts.sregistererrorFailed to set data for "%s"rtlconsts.sregsetdatafailedNormalrtlconsts.sregularfontImage can not be replacedrtlconsts.sreplaceimageResource "%s" not foundrtlconsts.sresnotfound&Retryrtlconsts.sretrybutton(Empty)rtlconsts.srnone (Unknown)rtlconsts.srunknownLine index out of boundsrtlconsts.sscanlineScrollbar property out of rangertlconsts.sscrollbarrange%s.Seek not implementedrtlconsts.sseeknotimplementedSelect directoryrtlconsts.sselectdircapSocket is already openrtlconsts.ssocketalreadyopen%s error %d, %srtlconsts.ssocketioerrorSocket must be in blocking modertlconsts.ssocketmustbeblockingReadrtlconsts.ssocketreadWritertlconsts.ssocketwrite$Operation not allowed on sorted listrtlconsts.ssortedlisterror Invalid stream operation %s.Seekrtlconsts.sstreaminvalidseek Reading from %s is not supportedrtlconsts.sstreamnoreadingWriting to %s is not supportedrtlconsts.sstreamnowritingError setting stream sizertlconsts.sstreamsetsizeString expectedrtlconsts.sstringexpected %s expectedrtlconsts.ssymbolexpectedThread creation error: %srtlconsts.sthreadcreateerrorThread Error: %s (%d)rtlconsts.sthreaderrorThread was created from externrtlconsts.sthreadexternal Too many rows or columns deletedrtlconsts.stoomanydeletedToo many imagesrtlconsts.stoomanyimages&There is only one MDI window availablertlconsts.stwomdiformsUnknown clipboard format!rtlconsts.sunknownclipboardformat/Unknown extension for RichEdit-conversion (.%s)rtlconsts.sunknownconversionUnknown extension (.%s)rtlconsts.sunknownextension$%s not in a class registration grouprtlconsts.sunknowngroupUnknown property: "%s"rtlconsts.sunknownpropertyUnknown property type %drtlconsts.sunknownpropertytype$Unsupported property variant type %d)rtlconsts.sunsupportedpropertyvarianttype (Untitled)rtlconsts.suntitledBitmapsrtlconsts.svbitmapsEnhanced MetaFilesrtlconsts.svenhmetafilesIconsrtlconsts.svicons?Visible property cannot be changed in OnShow or OnHide handlersrtlconsts.svisiblechanged MetaFilesrtlconsts.svmetafiles$Error when initializing Window Classrtlconsts.swindowclassError when creating Windowrtlconsts.swindowcreate Error when??rtlconsts.swindowdcerror5A Windows socket error occurred: %s (%d), on API "%s"rtlconsts.swindowssocketerrorStream write errorrtlconsts.swriteerror&Yesrtlconsts.syesbutton%String index %d out of range [1 - %d] rtlconsts.sstringindexoutofrange/High surrogate $%x out of range [$D800 - $DBFF]"rtlconsts.shighsurrogateoutofrange.Low surrogate $%x out of range [$DC00 - $DFFF]!rtlconsts.slowsurrogateoutofrangewInvalid UTF32 character $%x. Valid UTF32 character must be in range [$0 - $10FFFF] except surrogate range [$D800-$DFFF]rtlconsts.sinvalidutf32char[Invalid high surrogate at index %d. High surrogate must be followed by a low surrogate pairrtlconsts.sinvalidhighsurrogate#Invalid unicode code point sequence*rtlconsts.sinvalidunicodecodepointsequenceClass %s can not be constructed!rtlconsts.sclasscantbeconstructed-Thread status report handler cannot be empty.$rtlconsts.serrstatuscallbackrequired Cannot use find on unsorted list!rtlconsts.serrfindneedssortedlist"Parameter "%s" cannot be negative.rtlconsts.sparamisnegativeCannot write to property "%s".#rtlconsts.serrcannotwritetopropertyCannot read property "%s". rtlconsts.serrcannotreadproperty"No name=value pair at position %d.rtlconsts.serrnonamevaluepairatCannot convert Null to type %s%rtlconsts.serrcannotconvertnulltotypeAlt+rtlconsts.smkcalt Backspacertlconsts.smkcbkspCtrl+rtlconsts.smkcctrlDeletertlconsts.smkcdelDownrtlconsts.smkcdownEndrtlconsts.smkcendEnterrtlconsts.smkcenterEscrtlconsts.smkcescHomertlconsts.smkchomeInsertrtlconsts.smkcinsLeftrtlconsts.smkcleft Page downrtlconsts.smkcpgdnPage uprtlconsts.smkcpgupRightrtlconsts.smkcrightShift+rtlconsts.smkcshiftSpacertlconsts.smkcspaceTabrtlconsts.smkctabUprtlconsts.smkcup Angstromsrtlconsts.sangstromsdescriptionAstronomicalUnits'rtlconsts.sastronomicalunitsdescription Centimeters!rtlconsts.scentimetersdescriptionChainsrtlconsts.schainsdescriptionCubitsrtlconsts.scubitsdescription Decameters rtlconsts.sdecametersdescription Decimeters rtlconsts.sdecimetersdescriptionDistancertlconsts.sdistancedescriptionFathomsrtlconsts.sfathomsdescriptionFeetrtlconsts.sfeetdescriptionFurlongsrtlconsts.sfurlongsdescription Gigameters rtlconsts.sgigametersdescriptionHandsrtlconsts.shandsdescription Hectometers!rtlconsts.shectometersdescriptionInchesrtlconsts.sinchesdescription Kilometers rtlconsts.skilometersdescription LightYears rtlconsts.slightyearsdescriptionLinksrtlconsts.slinksdescription Megameters rtlconsts.smegametersdescriptionMetersrtlconsts.smetersdescription Micromicrons"rtlconsts.smicromicronsdescriptionMicronsrtlconsts.smicronsdescriptionMilesrtlconsts.smilesdescription Millimeters!rtlconsts.smillimetersdescription Millimicrons"rtlconsts.smillimicronsdescription NauticalMiles#rtlconsts.snauticalmilesdescriptionPacesrtlconsts.spacesdescriptionParsecsrtlconsts.sparsecsdescriptionPicasrtlconsts.spicasdescriptionPointsrtlconsts.spointsdescriptionRodsrtlconsts.srodsdescriptionYardsrtlconsts.syardsdescriptionAcresrtlconsts.sacresdescriptionAreartlconsts.sareadescriptionAresrtlconsts.saresdescriptionCentaresrtlconsts.scentaresdescriptionHectaresrtlconsts.shectaresdescriptionSquareCentimeters'rtlconsts.ssquarecentimetersdescriptionSquareDecameters&rtlconsts.ssquaredecametersdescriptionSquareDecimeters&rtlconsts.ssquaredecimetersdescription SquareFeet rtlconsts.ssquarefeetdescriptionSquareHectometers'rtlconsts.ssquarehectometersdescription SquareInches"rtlconsts.ssquareinchesdescriptionSquareKilometers&rtlconsts.ssquarekilometersdescription SquareMeters"rtlconsts.ssquaremetersdescription SquareMiles!rtlconsts.ssquaremilesdescriptionSquareMillimeters'rtlconsts.ssquaremillimetersdescription SquareRods rtlconsts.ssquarerodsdescription SquareYards!rtlconsts.ssquareyardsdescriptionAcreFeetrtlconsts.sacrefeetdescription AcreInches rtlconsts.sacreinchesdescription CentiLiters!rtlconsts.scentilitersdescriptionCordFeetrtlconsts.scordfeetdescriptionCordsrtlconsts.scordsdescriptionCubicCentimeters&rtlconsts.scubiccentimetersdescriptionCubicDecameters%rtlconsts.scubicdecametersdescriptionCubicDecimeters%rtlconsts.scubicdecimetersdescription CubicFeetrtlconsts.scubicfeetdescriptionCubicHectometers&rtlconsts.scubichectometersdescription CubicInches!rtlconsts.scubicinchesdescriptionCubicKilometers%rtlconsts.scubickilometersdescription CubicMeters!rtlconsts.scubicmetersdescription CubicMiles rtlconsts.scubicmilesdescriptionCubicMillimeters&rtlconsts.scubicmillimetersdescription CubicYards rtlconsts.scubicyardsdescription DecaLiters rtlconsts.sdecalitersdescription Decasteres rtlconsts.sdecasteresdescription DeciLiters rtlconsts.sdecilitersdescription Decisteres rtlconsts.sdecisteresdescription HectoLiters!rtlconsts.shectolitersdescription KiloLiters rtlconsts.skilolitersdescriptionLitersrtlconsts.slitersdescription MilliLiters!rtlconsts.smillilitersdescriptionSteresrtlconsts.ssteresdescriptionVolumertlconsts.svolumedescription FluidCupsrtlconsts.sfluidcupsdescription FluidGallons"rtlconsts.sfluidgallonsdescription FluidGills rtlconsts.sfluidgillsdescription FluidOunces!rtlconsts.sfluidouncesdescription FluidPints rtlconsts.sfluidpintsdescription FluidQuarts!rtlconsts.sfluidquartsdescriptionFluidTablespoons&rtlconsts.sfluidtablespoonsdescriptionFluidTeaspoons$rtlconsts.sfluidteaspoonsdescription DryBuckets rtlconsts.sdrybucketsdescription DryBushels rtlconsts.sdrybushelsdescription DryGallons rtlconsts.sdrygallonsdescriptionDryPecksrtlconsts.sdrypecksdescriptionDryPintsrtlconsts.sdrypintsdescription DryQuartsrtlconsts.sdryquartsdescription UKBucketsrtlconsts.sukbucketsdescription UKBushelsrtlconsts.sukbushelsdescription UKGallonsrtlconsts.sukgallonsdescriptionUKGillrtlconsts.sukgillsdescriptionUKOuncesrtlconsts.sukouncesdescriptionUKPecksrtlconsts.sukpecksdescriptionUKPintsrtlconsts.sukpintsdescriptionUKPottlertlconsts.sukpottlesdescriptionUKQuartsrtlconsts.sukquartsdescription Centigrams rtlconsts.scentigramsdescription Decagramsrtlconsts.sdecagramsdescription Decigramsrtlconsts.sdecigramsdescriptionDramsrtlconsts.sdramsdescriptionGrainsrtlconsts.sgrainsdescriptionGramsrtlconsts.sgramsdescription Hectograms rtlconsts.shectogramsdescription Kilogramsrtlconsts.skilogramsdescriptionLongTonsrtlconsts.slongtonsdescriptionMassrtlconsts.smassdescription MetricTons rtlconsts.smetrictonsdescription Micrograms rtlconsts.smicrogramsdescription Milligrams rtlconsts.smilligramsdescription Nanogramsrtlconsts.snanogramsdescriptionOuncesrtlconsts.souncesdescriptionPoundsrtlconsts.spoundsdescriptionStonesrtlconsts.sstonesdescriptionTonsrtlconsts.stonsdescriptionCelsiusrtlconsts.scelsiusdescription Fahrenheit rtlconsts.sfahrenheitdescriptionKelvinrtlconsts.skelvindescriptionRankinertlconsts.srankinedescriptionReaumurrtlconsts.sreaumurdescription Temperature!rtlconsts.stemperaturedescription Centuriesrtlconsts.scenturiesdescriptionDateTimertlconsts.sdatetimedescriptionDaysrtlconsts.sdaysdescriptionDecadesrtlconsts.sdecadesdescription Fortnights rtlconsts.sfortnightsdescriptionHoursrtlconsts.shoursdescription JulianDate rtlconsts.sjuliandatedescription Millenniartlconsts.smillenniadescription MilliSeconds"rtlconsts.smillisecondsdescriptionMinutesrtlconsts.sminutesdescriptionModifiedJulianDate(rtlconsts.smodifiedjuliandatedescriptionMonthsrtlconsts.smonthsdescriptionSecondsrtlconsts.ssecondsdescriptionTimertlconsts.stimedescriptionWeeksrtlconsts.sweeksdescriptionYearsrtlconsts.syearsdescription"%s" is not a valid datertlconsts.sinvaliddate!"%s" is not a valid date and timertlconsts.sinvaliddatetime!"%s" is not a valid integer valuertlconsts.sinvalidinteger"%s" is not a valid timertlconsts.sinvalidtimeInvalid argument to time encodertlconsts.stimeencodeerrorAVIVideortlconsts.smciavivideoCDAudiortlconsts.smcicdaudioDATrtlconsts.smcidat DigitalVideortlconsts.smcidigitalvideoMMMoviertlconsts.smcimmmoviertlconsts.smcinilOtherrtlconsts.smciotherOverlayrtlconsts.smcioverlayScannerrtlconsts.smciscanner Sequencerrtlconsts.smcisequencerUnknown error codertlconsts.smciunknownerrorVCRrtlconsts.smcivcr Videodiscrtlconsts.smcivideodisc WaveAudiortlconsts.smciwaveaudio&Abortrtlconsts.smsgdlgabort&Allrtlconsts.smsgdlgallCancelrtlconsts.smsgdlgcancel&Closertlconsts.smsgdlgcloseConfirmrtlconsts.smsgdlgconfirmErrorrtlconsts.smsgdlgerror&Helprtlconsts.smsgdlghelpHelprtlconsts.smsgdlghelphelpNo help availablertlconsts.smsgdlghelpnone&Ignorertlconsts.smsgdlgignore Informationrtlconsts.smsgdlginformation&Nortlconsts.smsgdlgno N&o to allrtlconsts.smsgdlgnotoallOKrtlconsts.smsgdlgok&Retryrtlconsts.smsgdlgretryWarningrtlconsts.smsgdlgwarning&Yesrtlconsts.smsgdlgyes Yes to a&llrtlconsts.smsgdlgyestoallSuccessOperation not permittedNo such file or directoryNo such processInterrupted system callI/O errorNo such device or addressArg list too longExec format errorBad file numberNo child processesTry againOut of memoryPermission deniedBad addressBlock device requiredDevice or resource busyFile existsCross-device linkNo such deviceNot a directoryIs a directoryInvalid argumentFile table overflowToo many open filesNot a typewriterText (code segment) file busyFile too largeNo space left on deviceIllegal seekRead-only file systemToo many linksBroken pipeMath argument out of domain of funcMath result not representableResource deadlock would occurFile name too longNo record locks availableFunction not implementedDirectory not emptyToo many symbolic links encounteredOperation would blockNo message of desired typeIdentifier removedChannel number out of rangeLevel 2 not synchronizedLevel 3 haltedLevel 3 resetLink number out of rangeProtocol driver not attachedNo CSI structure availableLevel 2 haltedInvalid exchangeInvalid request descriptorExchange fullNo anodeInvalid request codeInvalid slotFile locking deadlock errorBad font file formatDevice not a streamNo data availableTimer expiredOut of streams resourcesMachine is not on the networkPackage not installedObject is remoteLink has been severedAdvertise errorSrmount errorCommunication error on sendProtocol errorMultihop attemptedRFS specific errorNot a data messageValue too large for defined data typeName not unique on networkFile descriptor in bad stateRemote address changedCan not access a needed shared libraryAccessing a corrupted shared library.lib section in a.out corruptedAttempting to link in too many shared librariesCannot exec a shared library directlyIllegal byte sequenceInterrupted system call should be restartedStreams pipe errorToo many usersSocket operation on non-socketDestination address requiredMessage too longProtocol wrong type for socketProtocol not availableProtocol not supportedSocket type not supportedOperation not supported on transport endpointProtocol family not supportedAddress family not supported by protocolAddress already in useCannot assign requested addressNetwork is downNetwork is unreachableNetwork dropped connection because of resetSoftware caused connection abortConnection reset by peerNo buffer space availableTransport endpoint is already connectedTransport endpoint is not connectedCannot send after transport endpoint shutdownToo many references: cannot spliceConnection timed outConnection refusedHost is downNo route to hostOperation already in progressOperation now in progressStale NFS file handleStructure needs cleaningNot a XENIX named type fileNo XENIX semaphores availableIs a named type fileRemote I/O errorQuota exceededNo medium foundWrong medium typeUnknown Error (): SYSCONSTList index (%d) out of boundssysconst.slistindexerror"Parameter "%s" cannot be negative.sysconst.sparamisnegativeList capacity (%d) exceeded.sysconst.slistcapacityerrorOperation abortedsysconst.saborterrorAbstract method calledsysconst.sabstracterror Access deniedsysconst.saccessdeniedAccess violationsysconst.saccessviolationMissing argument in format "%s"sysconst.sargumentmissing%s (%s, line %d)sysconst.sasserterrorAssertion failedsysconst.sassertionfailed#Bus error or misaligned data accesssysconst.sbuserrorCannot create empty directorysysconst.scannotcreateemptydir Control-C hitsysconst.scontrolc Disk Fullsysconst.sdiskfullNo variant method call dispatchsysconst.sdispatcherrorDivision by zerosysconst.sdivbyzeroRead past end of filesysconst.sendoffile:Year %d, month %d, Week %d and day %d is not a valid date.!sysconst.serrinvaliddatemonthweek-%d:%d:%d.%d is not a valid time specification%sysconst.serrinvalidhourminutesecmsec %d %d %d is not a valid dateweeksysconst.serrinvaliddateweek!%d is not a valid day of the weeksysconst.serrinvaliddayofweek3Year %d Month %d NDow %d DOW %d is not a valid date$sysconst.serrinvaliddayofweekinmonth%Year %d does not have a day number %dsysconst.serrinvaliddayofyearInvalid date/timestamp : "%s"sysconst.serrinvalidtimestamp-%f Julian cannot be represented as a DateTimesysconst.sinvalidjuliandate&"%s" is not a valid date format string$sysconst.serrillegaldateformatstring"%s" is not a valid timesysconst.serrinvalidtimeformatException at %p: %ssysconst.sexceptionerrormessageException stack errorsysconst.sexceptionstack&Failed to execute "%s", error code: %dsysconst.sexecuteprocessfailedExternal exception %xsysconst.sexternalexceptionFile not assignedsysconst.sfilenotassignedFile not foundsysconst.sfilenotfound File not opensysconst.sfilenotopenFile not open for inputsysconst.sfilenotopenforinputFile not open for outputsysconst.sfilenotopenforoutputInvalid filenamesysconst.sinvalidfilenameArithmetic overflowsysconst.sintoverflowInterface not supportedsysconst.sintfcasterror%Invalid argument index in format "%s"sysconst.sinvalidargindex%x is an invalid BCD valuesysconst.sinvalidbcd"%s" is not a valid boolean.sysconst.sinvalidbooleanInvalid type castsysconst.sinvalidcastInvalid currency: "%s"sysconst.sinvalidcurrency$"%s" is not a valid date/time value.sysconst.sinvaliddatetime"%f is not a valid date/time value.sysconst.sinvaliddatetimefloatInvalid drive specifiedsysconst.sinvaliddriveInvalid file handlesysconst.sinvalidfilehandle"%s" is an invalid floatsysconst.sinvalidfloatInvalid format specifier : "%s"sysconst.sinvalidformat"%s" is not a valid GUID valuesysconst.sinvalidguid Invalid inputsysconst.sinvalidinput"%s" is an invalid integersysconst.sinvalidinteger Invalid floating point operationsysconst.sinvalidopInvalid pointer operationsysconst.sinvalidpointerInvalid variant type castsysconst.sinvalidvarcastInvalid NULL variant operationsysconst.sinvalidvarnullopInvalid variant operationsysconst.sinvalidvarop"Invalid variant operation %s %s %ssysconst.sinvalidbinaryvaropInvalid variant operation %s %ssysconst.sinvalidunaryvarop%Invalid variant operation (%s%.8x) %s+sysconst.sinvalidvaropwithhresultwithprefix No error.sysconst.snoerror<Threads not supported. Recompile program with thread driver.sysconst.snothreadsupportODynamic libraries not supported. Recompile program with dynamic library driver.sysconst.snodynlibssupportMWidestring manager not available. Recompile program with appropriate manager.sysconst.smissingwstringmanagerSIGQUIT signal received.sysconst.ssigquitObject reference is Nilsysconst.sobjectcheckerrorSystem error, (OS Code %d): %ssysconst.soserror Out of memorysysconst.soutofmemoryFloating point overflowsysconst.soverflowPrivileged instructionsysconst.sprivilegeRange check errorsysconst.srangeerrorStack overflowsysconst.sstackoverflowException in safecall methodsysconst.ssafecallexception iconv errorsysconst.siconverror Thread errorsysconst.sthreaderrorToo many open filessysconst.stoomanyopenfilesUnknown Run-Time error : %3.3dsysconst.sunknownruntimeerrorFloating point underflowsysconst.sunderflow An operating system call failed.sysconst.sunkoserrorUnknown run-time error code: sysconst.sunknownUnknown error code: %dsysconst.sunknownerrorcodeVariant array bounds errorsysconst.svararrayboundsVariant array cannot be createdsysconst.svararraycreateVariant array lockedsysconst.svararraylockedInvalid variant typesysconst.svarbadtypeInvalid argumentsysconst.svarinvalidInvalid argument: %ssysconst.svarinvalid1 Variant doesn't contain an arraysysconst.svarnotarrayOperation not supportedsysconst.svarnotimplemented Variant operation ran out memorysysconst.svaroutofmemoryVariant overflowsysconst.svaroverflowVariant Parameter not foundsysconst.svarparamnotfound/Custom variant type (%s%.4x) already used by %s&sysconst.svartypealreadyusedwithprefix=Overflow while converting variant of type (%s) into type (%s) sysconst.svartypeconvertoverflow5Could not convert variant of type (%s) into type (%s) sysconst.svartypecouldnotconvert*Custom variant type (%s%.4x) is not usable$sysconst.svartypenotusablewithprefix,Custom variant type (%s%.4x) is out of range%sysconst.svartypeoutofrangewithprefix*Range check error for variant of type (%s)sysconst.svartyperangecheck1FRange check error while converting variant of type (%s) into type (%s)sysconst.svartyperangecheck22Too many custom variant types have been registeredsysconst.svartypetoomanycustomUnexpected variant errorsysconst.svarunexpectedFloating point division by zerosysconst.szerodivideQAn error, whose error code is larger than can be returned to the OS, has occurredsysconst.sfallbackerror0Toolserver is not installed, cannot execute Toolsysconst.snotoolserver %s is not a valid code page namesysconst.snotvalidcodepagenameinvalid count [%d]sysconst.sinvalidcount"character index out of bounds [%d]#sysconst.scharacterindexoutofboundsinvalid destination array!sysconst.sinvaliddestinationarrayinvalid destination index [%d]!sysconst.sinvaliddestinationindexICan't match any allowed value at pattern position %d, string position %d.sysconst.snoarraymatchFMismatch char "%s" <> "%s" at pattern position %d, string position %d.sysconst.snocharmatch^mm in a sequence hh:mm is interpreted as minutes. No longer versions allowed! (Position : %d).sysconst.shhmmerrorMCouldn't match entire pattern string. Input too short at pattern position %d.sysconst.sfullpattern*Pattern mismatch char "%s" at position %d.sysconst.spatterncharmismatchJansysconst.sshortmonthnamejanFebsysconst.sshortmonthnamefebMarsysconst.sshortmonthnamemarAprsysconst.sshortmonthnameaprMaysysconst.sshortmonthnamemayJunsysconst.sshortmonthnamejunJulsysconst.sshortmonthnamejulAugsysconst.sshortmonthnameaugSepsysconst.sshortmonthnamesepOctsysconst.sshortmonthnameoctNovsysconst.sshortmonthnamenovDecsysconst.sshortmonthnamedecJanuarysysconst.slongmonthnamejanFebruarysysconst.slongmonthnamefebMarchsysconst.slongmonthnamemarAprilsysconst.slongmonthnameaprMaysysconst.slongmonthnamemayJunesysconst.slongmonthnamejunJulysysconst.slongmonthnamejulAugustsysconst.slongmonthnameaug Septembersysconst.slongmonthnamesepOctobersysconst.slongmonthnameoctNovembersysconst.slongmonthnamenovDecembersysconst.slongmonthnamedecMonsysconst.sshortdaynamemonTuesysconst.sshortdaynametueWedsysconst.sshortdaynamewedThusysconst.sshortdaynamethuFrisysconst.sshortdaynamefriSatsysconst.sshortdaynamesatSunsysconst.sshortdaynamesunMondaysysconst.slongdaynamemonTuesdaysysconst.slongdaynametue Wednesdaysysconst.slongdaynamewedThursdaysysconst.slongdaynamethuFridaysysconst.slongdaynamefriSaturdaysysconst.slongdaynamesatSundaysysconst.slongdaynamesunMATHMath Error : %smath.smatherrorInvalid argumentmath.sinvalidargument@@8?ff?@C@v@?&q @&q q(7[?@@?8-q=̈Po ̼?[Mľ?,eX?@???;On?6A_p?invalid child property id 4GTK_TEXT_INDEX_WCHAR ERROR: t does not use wide char8GTK_TEXT_INDEX_WCHAR ERROR: t does not use unsigned charproperty%s: invalid %s id %u for "%s" of type `%s' in `%s' LM_CREATE LM_DESTROYLM_MOVELM_SIZE LM_ACTIVATE LM_SETFOCUS LM_KILLFOCUS LM_ENABLELM_GETTEXTLENGTHLM_PAINT LM_ERASEBKGND LM_SHOWWINDOW LM_CANCELMODE LM_SETCURSOR LM_DRAWITEMLM_MEASUREITEM LM_DELETEITEM LM_VKEYTOITEM LM_CHARTOITEM LM_SETFONTLM_COMPAREITEMLM_WINDOWPOSCHANGINGLM_WINDOWPOSCHANGED LM_NOTIFYLM_HELPLM_NOTIFYFORMATLM_CONTEXTMENU LM_NCCALCSIZE LM_NCHITTEST LM_NCPAINT LM_NCACTIVATE LM_GETDLGCODELM_NCMOUSEMOVELM_NCLBUTTONDOWNLM_NCLBUTTONUPLM_NCLBUTTONDBLCLK LM_KEYDOWNLM_KEYUPLM_CHAR LM_SYSKEYDOWN LM_SYSKEYUP LM_SYSCHAR LM_COMMAND LM_SYSCOMMANDLM_TIMER LM_HSCROLL LM_VSCROLLLM_CTLCOLORMSGBOXLM_CTLCOLOREDITLM_CTLCOLORLISTBOXLM_CTLCOLORBTNLM_CTLCOLORDLGLM_CTLCOLORSCROLLBARLM_CTLCOLORSTATIC LM_MOUSEMOVELM_LBUTTONDOWN LM_LBUTTONUPLM_LBUTTONDBLCLKLM_RBUTTONDOWN LM_RBUTTONUPLM_RBUTTONDBLCLKLM_MBUTTONDOWN LM_MBUTTONUPLM_MBUTTONDBLCLK LM_MOUSEWHEELLM_XBUTTONDOWN LM_XBUTTONUPLM_XBUTTONDBLCLKLM_MOUSEHWHEELLM_PARENTNOTIFYLM_CAPTURECHANGED LM_DROPFILES LM_SELCHANGE LM_DPICHANGEDLM_CUTLM_COPYLM_PASTELM_CLEARLM_USERLM_LCLLM_ACTIVATEITEM LM_CHANGEDLM_FOCUS LM_CLICKED LM_RELEASEDLM_ENTERLM_LEAVELM_CHECKRESIZELM_SETEDITABLE LM_MOVEWORD LM_MOVEPAGE LM_MOVETOROWLM_MOVETOCOLUMN LM_KILLCHAR LM_KILLWORD LM_KILLLINELM_CONFIGUREEVENTLM_EXIT LM_CLOSEQUERY LM_DRAGSTARTLM_QUITLM_MONTHCHANGEDLM_YEARCHANGED LM_DAYCHANGEDLM_LBUTTONTRIPLECLKLM_LBUTTONQUADCLKLM_MBUTTONTRIPLECLKLM_MBUTTONQUADCLKLM_RBUTTONTRIPLECLKLM_RBUTTONQUADCLK LM_MOUSEENTER LM_MOUSELEAVELM_XBUTTONTRIPLECLKLM_XBUTTONQUADCLK LM_GRABFOCUSLM_DRAWLISTITEMLM_INTERFACEFIRSTLM_INTERFACELAST LM_UNKNOWN CM_ACTIVATE CM_DEACTIVATECM_FOCUSCHANGEDCM_PARENTFONTCHANGEDCM_PARENTCOLORCHANGED CM_HITTESTCM_VISIBLECHANGEDCM_ENABLEDCHANGEDCM_COLORCHANGEDCM_FONTCHANGEDCM_CURSORCHANGEDCM_TEXTCHANGED CM_MOUSEENTER CM_MOUSELEAVECM_MENUCHANGEDCM_APPSYSCOMMANDCM_BUTTONPRESSEDCM_SHOWINGCHANGEDCM_ENTERCM_EXITCM_DESIGNHITTESTCM_ICONCHANGEDCM_WANTSPECIALKEY CM_RELEASECM_SHOWHINTCHANGEDCM_PARENTSHOWHINTCHANGED CM_FONTCHANGECM_TABSTOPCHANGED CM_UIACTIVATECM_CONTROLLISTCHANGECM_GETDATALINK CM_CHILDKEY CM_HINTSHOWCM_SYSFONTCHANGEDCM_CONTROLCHANGE CM_CHANGEDCM_BORDERCHANGEDCM_BIDIMODECHANGEDCM_PARENTBIDIMODECHANGEDCM_ALLCHILDRENFLIPPEDCM_ACTIONUPDATECM_ACTIONEXECUTECM_HINTSHOWPAUSECM_DOCKNOTIFICATION CM_MOUSEWHEELCM_DOUBLEBUFFEREDCHANGEDCM_PARENTDOUBLEBUFFEREDCHANGEDCM_APPSHOWBTNGLYPHCHANGEDCM_APPSHOWMENUGLYPHCHANGED CN_CHARTOITEM CN_COMMANDCN_COMPAREITEMCN_CTLCOLORBTNCN_CTLCOLORDLGCN_CTLCOLOREDITCN_CTLCOLORLISTBOXCN_CTLCOLORMSGBOXCN_CTLCOLORSCROLLBARCN_CTLCOLORSTATIC CN_DELETEITEM CN_DRAWITEM CN_HSCROLLCN_MEASUREITEMCN_PARENTNOTIFY CN_VKEYTOITEM CN_VSCROLL CN_KEYDOWNCN_KEYUPCN_CHAR CN_SYSKEYUP CN_SYSKEYDOWN CN_SYSCHAR CN_NOTIFYUnknown message 0x%x (%d)Unknown Mouse_Left Mouse_RightCancel Mouse_MiddleMouse_X1Mouse_X2 BackspaceTabNumClearEnterBreakCapsLockIME_Kana IME_Junja IME_final IME_HanjaEsc IME_convertIME_nonconvert IME_acceptIME_mode_changeSpacePgUpPgDownEndHomeLeftUpRightDownSelectPrintExecute PrintScreenInsDelHelp0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZPopUpSleepNum0Num1Num2Num3Num4Num5Num6Num7Num8Num9NumMulNumPlusNumSeparNumMinusNumDotNumDivF1F2F3F4F5F6F7F8F9F10F11F12F13F14F15F16F17F18F19F20F21F22F23F24NumLock ScrollLockOEM_0x92OEM_0x93OEM_0x94OEM_0x95OEM_0x96 BrowserBackBrowserForwardBrowserRefresh BrowserStop BrowserSearch BrowserFav BrowserHome VolumeMute VolumeDownVolumeUp MediaNext MediaPrev MediaStopMediaPlayPause LaunchMail LaunchMedia LaunchApp1 LaunchApp2;=,-./`[\]'OEM_8OEM_0xE1 OEM_BackslashOEM_0xE3OEM_0xE4 IME_processOEM_0xE6 UnicodePacketOEM_0xE9OEM_0xEAOEM_0xEBOEM_0xECOEM_0xEDOEM_0xEEOEM_0xEFOEM_0xF0OEM_0xF1OEM_0xF2OEM_0xF3OEM_0xF4OEM_0xF5AttnCrSelExSelEraseEOFPlayZoomPA1 OEM_ClearMeta+Shift+Ctrl+Alt+Word('')+Word('^ SWP_NOSIZE,  SWP_NOMOVE, SWP_NOZORDER, SWP_NOREDRAW, SWP_NOACTIVATE, SWP_DRAWFRAME, SWP_SHOWWINDOW, SWP_HIDEWINDOW, SWP_NOCOPYBITS, SWP_NOOWNERZORDER, SWP_NOSENDCHANGING, SWP_DEFERERASE, SWP_ASYNCWINDOWPOS, SWP_STATECHANGED, SWP_SourceIsInterface,  VK_UNKNOWN VK_LBUTTON VK_RBUTTON VK_CANCEL VK_MBUTTONVK_BACKVK_TABVK_CLEAR VK_RETURNVK_SHIFT VK_CONTROLVK_MENUVK_PAUSE VK_CAPITALVK_KANAVK_JUNJAVK_FINALVK_HANJA VK_ESCAPE VK_CONVERT VK_NONCONVERT VK_ACCEPT VK_MODECHANGEVK_SPACEVK_PRIORVK_NEXTVK_ENDVK_HOMEVK_LEFTVK_UPVK_RIGHTVK_DOWN VK_SELECTVK_PRINT VK_EXECUTE VK_SNAPSHOT VK_INSERT VK_DELETEVK_HELPVK_0VK_1VK_2VK_3VK_4VK_5VK_6VK_7VK_8VK_9VK_AVK_BVK_CVK_DVK_EVK_FVK_GVK_HVK_IVK_JVK_KVK_LVK_MVK_NVK_OVK_PVK_QVK_RVK_SVK_TVK_UVK_VVK_WVK_XVK_YVK_ZVK_LWINVK_RWINVK_APPSVK_SLEEP VK_NUMPAD0 VK_NUMPAD1 VK_NUMPAD2 VK_NUMPAD3 VK_NUMPAD4 VK_NUMPAD5 VK_NUMPAD6 VK_NUMPAD7 VK_NUMPAD8 VK_NUMPAD9 VK_MULTIPLYVK_ADD VK_SEPARATOR VK_SUBTRACT VK_DECIMAL VK_DIVIDEVK_F1VK_F2VK_F3VK_F4VK_F5VK_F6VK_F7VK_F8VK_F9VK_F10VK_F11VK_F12VK_F13VK_F14VK_F15VK_F16VK_F17VK_F18VK_F19VK_F20VK_F21VK_F22VK_F23VK_F24 VK_NUMLOCK VK_SCROLL VK_LSHIFT VK_RSHIFT VK_LCONTROL VK_RCONTROLVK_LMENUVK_RMENUVK_BROWSER_BACKVK_BROWSER_FORWARDVK_BROWSER_REFRESHVK_BROWSER_STOPVK_BROWSER_SEARCHVK_BROWSER_FAVORITESVK_BROWSER_HOMEVK_VOLUME_MUTEVK_VOLUME_DOWN VK_VOLUME_UPVK_MEDIA_NEXT_TRACKVK_MEDIA_PREV_TRACK VK_MEDIA_STOPVK_MEDIA_PLAY_PAUSEVK_LAUNCH_MAILVK_LAUNCH_MEDIA_SELECTVK_LAUNCH_APP1VK_LAUNCH_APP2 VK_LCL_EQUAL VK_LCL_COMMA VK_LCL_POINT VK_LCL_SLASHVK_LCL_SEMI_COMMA VK_LCL_MINUSVK_LCL_OPEN_BRACKETVK_LCL_CLOSE_BRACKETVK_LCL_BACKSLASH VK_LCL_TILDE VK_LCL_QUOTE VK_LCL_POWER VK_LCL_CALLVK_LCL_ENDCALL VK_LCL_ATVK_() tmHeight:  tmAscent:  tmDescent:  tmInternalLeading:  tmExternalLeading:  tmAveCharWidth:  tmMaxCharWidth:  tmWeight:  tmOverhang:  tmDigitizedAspectX:  tmDigitizedAspectY:  tmFirstChar:  tmLastChar:  tmDefaultChar:  tmBreakChar:  tmItalic:  tmUnderlined:  tmStruckOut:  tmPitchAndFamily:  tmCharSet: Pos:  Min:  Max:  Page:  TrackPos: (no scrollinfo)Log :  '?unknown variant?1defaultTDebugLCLItems.FindInfo.TDebugLCLItems.MarkDestroyed Double destroyed:Now:RaiseDoubleDestroyed,TDebugLCLItems.MarkDestroyed not created: p=TDebugLCLItems.MarkDestroyed.TDebugLCLItems.MarkCreated CREATED TWICE. Old:" InfoText=" New=RaiseDoubleCreatedItem=Info=" Creation: Destroyed:xdg-openhtmlviewfirefoxmozilla google-chromegaleon konquerorsafarinetscapeoperaiexplore"CreateFont Name="PATH:"%s"xdg-open kfmclient gnome-openprimary selectionsecondary selection clipboard text/plain image/bmp image/xpmimage/lcl.iconimage/lcl.pictureimage/lcl.metafilepictapplication/lcl.objectapplication/lcl.componentapplication/lcl.customdata?csNonecsButton csComboBox csCheckboxcsEditcsForm csStaticText csScrollBar csListViewcsMemo csMainMenu csMenuBar csMenuItem csNotebook csFileDialogcsOpenFileDialogcsSaveFileDialogcsSelectDirectoryDialog csRadioButtoncsScrolledWinDow csSpinEdit csStatusBar csToggleBox csGroupBoxcsPage csColorDialog csListBox csFontDialog csProgressBar csTrackBarcsFixedcsBitBtn csCListBox csPopupMenu csHintWinDow csCalendarcsArrowcsPanel csScrollBoxcsCheckListBoxcsPairSplittercsPairSplitterSidecsPreviewFileControlcsPreviewFileDialogcsNonLCLUnknown component style %D ANSI_CHARSETDEFAULT_CHARSETSYMBOL_CHARSET MAC_CHARSETSHIFTJIS_CHARSETHANGEUL_CHARSET JOHAB_CHARSETGB2312_CHARSETCHINESEBIG5_CHARSET GREEK_CHARSETTURKISH_CHARSETVIETNAMESE_CHARSETHEBREW_CHARSETARABIC_CHARSETBALTIC_CHARSETRUSSIAN_CHARSET THAI_CHARSETEASTEUROPE_CHARSET OEM_CHARSETUNICODEFCS_ISO_8859_1FCS_ISO_8859_2FCS_ISO_8859_3FCS_ISO_8859_4FCS_ISO_8859_5FCS_ISO_8859_6FCS_ISO_8859_7FCS_ISO_8859_8FCS_ISO_8859_9FCS_ISO_8859_10FCS_ISO_8859_15dialog_warning dialog_errordialog_informationdialog_confirmation dialog_shield,[]DialogsMisc?Color$+Property streamed in older Lazarus revisionWidthHeight*;.Find1.3 Text to findEditFindWhole words onlyCase sensitiveSearch entire file DirectionForwardBackward Find moreCancelHelp Replace Text Replace with EditReplacePrompt on replaceReplace Replace allWWW;MessageDlgPosHelp ****** NOT YET FULLY IMPLEMENTED ********[%s]  (InputQuery: prompt array cannot be empty=InputQuery: prompt array length must be <= value array length 3TQuestionDlg.CreateQuestionDlg integer expected at  but VType= found. isdefault=TQuestionDlg.CreateQuestionDlg only one button can be defaultiscancel<TQuestionDlg.CreateQuestionDlg only one button can be cancel2TQuestionDlg.CreateQuestionDlg option expected at  , but found "",TQuestionDlg.Create: missing Button caption /TQuestionDlg.Create: invalid Buttons parameter  RadioButtonButton crDefaultcrNonecrArrowcrCrosscrIBeam crSizeNESWcrSizeNS crSizeNWSEcrSizeWEcrSizeNWcrSizeNcrSizeNEcrSizeWcrSizeEcrSizeSWcrSizeScrSizeSE crUpArrow crHourGlasscrDragcrNoDropcrHSplitcrVSplit crMultiDrag crSQLWaitcrNo crAppStartcrHelp crHandPoint crSizeAllcrSizeColor,[]asrLeftasrTopasrRight asrBottom asrCenterasr???,WARNING: obsolete call to RecreateWnd for %sCommon ControlsWinControl%d TDockPerformer.DragStop Dropped #TDockPerformer.DragStop SIMPLE MOVETAutoSizeCtrlData.GetChilds=TAutoSizeCtrlData.ComputePositions Failed to compute LeftTop ATAutoSizeCtrlData.ComputePositions Failed to compute RightBottom CTAutoSizeCtrlData.ComputePositions.ComputePosition CIRCLE detected ATAutoSizeCtrlData.ComputePositions.ComputePosition <>assdfInvalid&ComputePosition FAILED opposite side:  ComputePosition breaking CIRCLE  - +ComputePosition FAILED sibling dependency:  Side= a=OTAutoSizeCtrlData.ComputePositions.ComputePosition assdfValid,assdfUncomputable3TAutoSizeCtrlData.ComputePositions.ComputePosition  Direction='TAutoSizeCtrlData.FixControlProperties  old= new=nilITAutoSizeCtrlData.FixControlProperties aligned sides can not be anchored KTAutoSizeCtrlData.FixControlProperties aligned control can not be centered ]TAutoSizeCtrlData.FixControlProperties control is center-anchored -> unanchor opposite side: {TAutoSizeCtrlData.FixControlProperties control is center-anchored -> normalize it to use Left,Top instead of Bottom,Right: #TAutoSizeCtrlData.WriteDebugReport  Control= ChildCount= Visible= Anchors= Align= PreferredSize= Borders=l=,t=,r=,b= AdjustedClientBorders=l= Side  Control= RefSide= Space= DistLT= DistBR=: nilinvalid computing uncomputable???"TAutoSizeBox.SetTableControls TODO+TAutoSizeBox.ResizeChilds consistency errorTAutoSizeBox.ResizeChildsTAutoSizeBox.WriteDebugReport  ChildCounts=x #Col= PrefY= MaxY= MinY= Row= BorderTop= Pref= Max= Min= BorderLeft= CellControl= Columns:  Col=csDestroyingHandle8Warning: TWinControl.AlignControls ENDLESS LOOP STOPPED  i=1Warning: TWinControl.AlignControls LAST CHANGED:  Old= Now= 3WARNING: TWinControl.SetChildZPosition: Child = nil5WARNING: TWinControl.SetChildZPosition: Unknown child3WARNING: TWinControl.SetChildZPosition: Not a childDSize range overflow in %s.SendMoveSizeMessages: Width=%d, Height=%d.DPosition range overflow in %s.SendMoveSizeMessages: Left=%d, Top=%d.3TWinControl.UpdateShowing.ChangeShowing failed for , Showing reset to  Handle not Allocated:#Warning: TWinControl.DestroyHandle control has already a parent-TWinControl.ScrollBy_WS: Handle not allocatedVCL compatibility propertyParentDoubleBufferedImeModeImeName"TWinControl.WMMove loop detected:  BoundsRealized= NewBoundsRealized=pTWinControl.WMSize loop detected, the widgetset does not like the LCL bounds or sends unneeded wmsize messages:  OldClientSize= NewClientSize=.TWinControl.WMWindowPosChanged loop detected: +[TWinControl.CreateWnd] NOTE: csDestroying  while initializing*[WARNING] Recursive call to CreateWnd for  while creating handle while creating children csDesigning=<[HINT] TWinControl.CreateWnd creating Handle during loading DWARNING: TWinControl.CreateWnd: parent created handles, but not oursTWinControl.CreateWnd  Parent= ERROR WndParent=0LTWinControl.CreateWnd: The nogui widgetset does not support visual controls.7TWinControl.CreateWnd: Handle creation failed creating 0TWinControl.FinalizeWnd Handle already destroyed.TWinControl.EndUpdateBounds %s too many calls.UnlockRealizeBounds:TWinControl.SetBounds (%s): Negative width %d not allowed.;TWinControl.SetBounds (%s): Negative height %d not allowed.Check  wcfCreatingHandle= wcfInitializing= wcfCreatingChildHandles=%s (%s)"TControl.AdjustSize loop detected  Bounds=TControl.BeginAutoSizingvTControl.ChangeBounds loop detected %s Left=%d,Top=%d,Width=%d,Height=%d NewLeft=%d,NewTop=%d,NewWidth=%d,NewHeight=%dTControl.ChangeBounds test( New= Real=TControl.DoSetBounds  Invalid bounds$TControl.DoAllAutoSize Parent <> nilFAutoSizingLockCount= csLoading csDestroying cfLoadingnot IsControlVisibleAutoSizeDelayedHandle?$Note: GetTextBuf is overridden for:  TControl.WriteLayoutDebugReport  Anchors=[)(?1TWinControl.SetBounds (%s): Width %d not allowed.AlignWithMarginsCtl3D ParentCtl3D IsControl DesignSize ExplicitLeftExplicitHeight ExplicitTop ExplicitWidth;TWinControl.SetHeight (%s): Negative height %d not allowed.2TWinControl.SetBounds (%s): Height %d not allowed.TControl.Dock  csDocking in FControlStateTControl.ManualFloat $Note: SetTextBuf is overridden for: /TControl.InvalidatePreferredSize loop detected 7TControl.EnableAutoSizing %s: missing DisableAutoSizingTControl.EndAutoSizingTDockZone.SetLimitBeginTDockZone.SetLimitSizeTDockZone.GetLimitBeginTDockZone.GetLimitSize)TDockZone.AddSibling: unhandled insertionTDockZone.RemoveTDockTree.EndUpdate FOwner=RaiseOwnerCircle AValue=$TAnchorSide.SetControl AValue=FOwner&TAnchorSide.CheckSidePosition Circle, 6TAnchorSide.CheckSidePosition invalid anchor control, *TAnchorSide.CheckSidePosition invalid Side. LCLSTRCONSTS&Yeslclstrconsts.rsmbyes&Nolclstrconsts.rsmbno&OKlclstrconsts.rsmbokCancellclstrconsts.rsmbcancelAbortlclstrconsts.rsmbabort&Retrylclstrconsts.rsmbretry&Ignorelclstrconsts.rsmbignore&Alllclstrconsts.rsmball No to alllclstrconsts.rsmbnotoall Yes to &Alllclstrconsts.rsmbyestoall&Helplclstrconsts.rsmbhelp&Closelclstrconsts.rsmbclose&Openlclstrconsts.rsmbopen&Savelclstrconsts.rsmbsave&Unlocklclstrconsts.rsmbunlockWarninglclstrconsts.rsmtwarningErrorlclstrconsts.rsmterror Informationlclstrconsts.rsmtinformation Confirmationlclstrconsts.rsmtconfirmationAuthenticationlclstrconsts.rsmtauthenticationCustomlclstrconsts.rsmtcustomOpen existing filelclstrconsts.rsfdopenfileOverwrite file ?lclstrconsts.rsfdoverwritefile)The file "%s" already exists. Overwrite ?"lclstrconsts.rsfdfilealreadyexistsPath must existlclstrconsts.rsfdpathmustexistThe path "%s" does not exist.lclstrconsts.rsfdpathnoexistFile must existlclstrconsts.rsfdfilemustexistDirectory must exist#lclstrconsts.rsfddirectorymustexistThe file "%s" does not exist.lclstrconsts.rsfdfilenotexist"The directory "%s" does not exist."lclstrconsts.rsfddirectorynotexistFindlclstrconsts.rsfindFile is not writable"lclstrconsts.rsfdfilereadonlytitleThe file "%s" is not writable.lclstrconsts.rsfdfilereadonly Save file aslclstrconsts.rsfdfilesaveasAll files (%s)|%s|%slclstrconsts.rsallfilesSelect Directory lclstrconsts.rsfdselectdirectory &Directorylclstrconsts.rsdirectory Select colorlclstrconsts.rsselectcolortitle Select a fontlclstrconsts.rsselectfonttitle Find morelclstrconsts.rsfindmoreReplacelclstrconsts.rsreplace Replace alllclstrconsts.rsreplaceallHelplclstrconsts.rshelpDelete record?lclstrconsts.rsdeleterecordFirstlclstrconsts.rsfirstrecordhintPriorlclstrconsts.rspriorrecordhintNextlclstrconsts.rsnextrecordhintLastlclstrconsts.rslastrecordhintInsertlclstrconsts.rsinsertrecordhintDeletelclstrconsts.rsdeleterecordhintEditlclstrconsts.rseditrecordhintPostlclstrconsts.rspostrecordhintCancellclstrconsts.rscancelrecordhintRefresh!lclstrconsts.rsrefreshrecordshintHide %slclstrconsts.rsmacosmenuhide Hide Others"lclstrconsts.rsmacosmenuhideothersQuit %slclstrconsts.rsmacosmenuquitServices lclstrconsts.rsmacosmenuservicesShow Alllclstrconsts.rsmacosmenushowall File Format:lclstrconsts.rsmacosfileformatI WARNING: There are %s unremoved LM_PAINT/LM_GtkPAINT message links left.,lclstrconsts.rswarningunremovedpaintmessages? WARNING: There are %d unreleased DCs, a detailed dump follows:'lclstrconsts.rswarningunreleaseddcsdumpF WARNING: There are %d unreleased GDIObjects, a detailed dump follows:.lclstrconsts.rswarningunreleasedgdiobjectsdumpA WARNING: There are %d messages left in the queue! I'll free them/lclstrconsts.rswarningunreleasedmessagesinqueue@ WARNING: There are %d TimerInfo structures left, I'll free them*lclstrconsts.rswarningunreleasedtimerinfosFile informationlclstrconsts.rsfileinformationFilter:lclstrconsts.rsgtkfilterHistory:lclstrconsts.rsgtkhistory%permissions user group size date time#lclstrconsts.rsdefaultfileinfovalueBlanklclstrconsts.rsblankUnable to load default font&lclstrconsts.rsunabletoloaddefaultfont(file not found: "%s")#lclstrconsts.rsfileinfofilenotfound@--lcl-no-transient Do not set transient order for modal forms#lclstrconsts.rsgtkoptionnotransient;--gtk-module module Load the specified module at startup.lclstrconsts.rsgtkoptionmoduleZ--g-fatal-warnings Warnings and errors generated by Gtk+/GDK will halt the application.#lclstrconsts.rsgoptionfatalwarningsA--gtk-debug flags Turn on specific Gtk+ trace/debug messages.lclstrconsts.rsgtkoptiondebugB--gtk-no-debug flags Turn off specific Gtk+ trace/debug messages.lclstrconsts.rsgtkoptionnodebug@--gdk-debug flags Turn on specific GDK trace/debug messages.lclstrconsts.rsgdkoptiondebugA--gdk-no-debug flags Turn off specific GDK trace/debug messages.lclstrconsts.rsgdkoptionnodebug--display h:s:d Connect to the specified X server, where "h" is the hostname, "s" is the server number (usually 0), and "d" is the display number (typically omitted). If --display is not specified, the DISPLAY environment variable is used.lclstrconsts.rsgtkoptiondisplayH--sync Call XSynchronize (display, True) after the Xserver connection has been established. This makes debugging X protocol errors easier, because X request buffering will be disabled and X errors will be received immediately after the protocol request that generated the error has been processed by the X server.lclstrconsts.rsgtkoptionsyncC--no-xshm Disable use of the X Shared Memory Extension.lclstrconsts.rsgtkoptionnoxshmt--name programe Set program name to "progname". If not specified, program name will be set to ParamStrUTF8(0).lclstrconsts.rsgtkoptionname--class classname Following Xt conventions, the class of a program is the program name with the initial character capitalized. For example, the classname for gimp is "Gimp". If --class is specified, the class of the program will be set to "classname".lclstrconsts.rsgtkoptionclassS-nograb, tells Qt that it must never grab the mouse or the keyboard. Need QT_DEBUG.lclstrconsts.rsqtoptionnograby-dograb (only under X11), running under a debugger can cause an implicit -nograb, use -dograb to override. Need QT_DEBUG.lclstrconsts.rsqtoptiondograbC-sync (only under X11), switches to synchronous mode for debugging.lclstrconsts.rsqtoptionsync-style style or -style=style, sets the application GUI style. Possible values are motif, windows, and platinum. If you compiled Qt with additional styles or have additional styles as plugins these will be available to the -style command line option. NOTE: Not all styles are available on all platforms. If style param does not exist Qt will start an application with default common style (windows).lclstrconsts.rsqtoptionstyle-stylesheet stylesheet or -stylesheet=stylesheet, sets the application Style Sheet. The value must be a path to a file that contains the Style Sheet. Note: Relative URLs in the Style Sheet file are relative to the Style Sheet file's path.!lclstrconsts.rsqtoptionstylesheet-graphicssystem param, sets the backend to be used for on-screen widgets and QPixmaps. Available options are native, raster and opengl. OpenGL is still unstable.$lclstrconsts.rsqtoptiongraphicsstyleC-session session, restores the application from an earlier session.lclstrconsts.rsqtoptionsession-widgetcount, prints debug message at the end about number of widgets left undestroyed and maximum number of widgets existed at the same time."lclstrconsts.rsqtoptionwidgetcountE-reverse, sets the application's layout direction to Qt::RightToLeft.lclstrconsts.rsqtoptionreverse;-display display, sets the X display (default is $DISPLAY).!lclstrconsts.rsqtoptionx11displayO-geometry geometry, sets the client geometry of the first window that is shown."lclstrconsts.rsqtoptionx11geometryr-fn or -font font, defines the application font. The font should be specified using an X logical font description.lclstrconsts.rsqtoptionx11font~-bg or -background color, sets the default background color and an application palette (light and dark shades are calculated).!lclstrconsts.rsqtoptionx11bgcolor<-fg or -foreground color, sets the default foreground color.!lclstrconsts.rsqtoptionx11fgcolor5-btn or -button color, sets the default button color."lclstrconsts.rsqtoptionx11btncolor&-name name, sets the application name.lclstrconsts.rsqtoptionx11name)-title title, sets the application title.lclstrconsts.rsqtoptionx11titleX-visual TrueColor, forces the application to use a TrueColor visual on an 8-bit display. lclstrconsts.rsqtoptionx11visualW-ncols count, limits the number of colors allocated in the color cube on an 8-bit display, if the application is using the QApplication::ManyColor color specification. If count is 216 then a 6x6x6 color cube is used (i.e. 6 levels of red, 6 of green, and 6 of blue); for other values, a cube approximately proportional to a 2x3x1 cube is used.lclstrconsts.rsqtoptionx11ncolsQ-cmap, causes the application to install a private color map on an 8-bit display.lclstrconsts.rsqtoptionx11cmap^-im, sets the input method server (equivalent to setting the XMODIFIERS environment variable).lclstrconsts.rsqtoptionx11im-inputstyle, defines how the input is inserted into the given widget, e.g. onTheSpot makes the input appear directly in the widget, while overTheSpot makes the input appear in a box floating over the widget and is not inserted until the editing is done.$lclstrconsts.rsqtoptionx11inputstyle-disableaccurateframe, disables fully accurate window frame under X11. This feature is implemented for Qt, Qt5 and Gtk2 interfaces and used mostly by GetWindowRect().+lclstrconsts.rsqtoptiondisableaccurateframeWarning:lclstrconsts.rswin32warningError:lclstrconsts.rswin32errorInvalid action registration'lclstrconsts.sinvalidactionregistrationInvalid action unregistration)lclstrconsts.sinvalidactionunregistrationInvalid action enumeration&lclstrconsts.sinvalidactionenumerationInvalid action creation#lclstrconsts.sinvalidactioncreationSub-menu is not in menulclstrconsts.smenunotfoundMenu index out of rangelclstrconsts.smenuindexerrorMenuItem is nillclstrconsts.smenuitemisnilNo timers availablelclstrconsts.snotimersInvalid ImageList Indexlclstrconsts.sinvalidindexInvalid image sizelclstrconsts.sinvalidimagesizeDuplicate menuslclstrconsts.sduplicatemenus+Cannot focus a disabled or invisible windowlclstrconsts.scannotfocus"Control "%s" has no parent window.lclstrconsts.sparentrequired3The current text does not match the specified mask.lclstrconsts.smaskeditnomatchInvalid property value#lclstrconsts.rsinvalidpropertyvalueProperty %s does not exist#lclstrconsts.rspropertydoesnotexistInvalid stream format"lclstrconsts.rsinvalidstreamformatinvalid Form object stream&lclstrconsts.rsinvalidformobjectstreamScrollBar property out of range"lclstrconsts.rsscrollbaroutofrangeInvalid Date : %slclstrconsts.rsinvaliddate+Invalid Date: %s. Must be between %s and %s#lclstrconsts.rsinvaliddaterangehintDate cannot be past %slclstrconsts.rsdatetoolargeDate cannot be before %slclstrconsts.rsdatetoosmall/Error occurred in %s at %sAddress %s%s Frame %s,lclstrconsts.rserroroccurredinataddressframe Exceptionlclstrconsts.rsexceptionForm streaming "%s" error: %s!lclstrconsts.rsformstreamingerrorFixedCols can't be > ColCountlclstrconsts.rsfixedcolstoobigFixedRows can't be > RowCountlclstrconsts.rsfixedrowstoobigGrid file doesn't exist#lclstrconsts.rsgridfiledoesnotexistNot a valid grid file lclstrconsts.rsnotavalidgridfile&Index Out of range Cell[Col=%d Row=%d]lclstrconsts.rsindexoutofrangeGrid index out of range."lclstrconsts.rsgridindexoutofrange5Cannot insert columns into a grid when it has no rowslclstrconsts.rsgridhasnorows5Cannot insert rows into a grid when it has no columnslclstrconsts.rsgridhasnocols'A control can't have itself as a parent/lclstrconsts.rsacontrolcannothaveitselfasparent(Control '%s' has no parent form or frame,lclstrconsts.rscontrolhasnoparentformorframe'%s' is not a parent of '%s'"lclstrconsts.rscontrolisnotaparentAControl of class '%s' can't have control of class '%s' as a child0lclstrconsts.rscontrolclasscantcontainchildclass"Class %s cannot have %s as parent.#lclstrconsts.rsascannothaveasparentResource %s not found$lclstrconsts.lislclresourcesnotfoundForm resource %s not found. For resourceless forms CreateNew constructor must be used. See the global variable RequireDerivedFormResource.Alclstrconsts.rsformresourcesnotfoundforresourcelessformscreatenew'Error creating device context for %s.%s)lclstrconsts.rserrorcreatingdevicecontext!%s Index %d out of bounds 0 .. %dlclstrconsts.rsindexoutofboundsUnknown picture extension&lclstrconsts.rsunknownpictureextensionUnknown picture format#lclstrconsts.rsunknownpictureformat Bitmap Fileslclstrconsts.rsbitmaps Pixmap Fileslclstrconsts.rspixmap PNG Files%lclstrconsts.rsportablenetworkgraphicPortable Pixmap Fileslclstrconsts.rsportablepixmap Icon Fileslclstrconsts.rsiconmacOS Icon Fileslclstrconsts.rsicns Cursor Fileslclstrconsts.rscursor JPEG Fileslclstrconsts.rsjpegTagged Image File Format Fileslclstrconsts.rstiff!Graphics Interchange Format Fileslclstrconsts.rsgifTGA Image Fileslclstrconsts.rstgaGraphiclclstrconsts.rsgraphic Unsupported clipboard format: %s)lclstrconsts.rsunsupportedclipboardformat@GroupIndex cannot be less than a previous menu item's GroupIndex1lclstrconsts.rsgroupindexcannotbelessthanprevious %s is already associated with %s&lclstrconsts.rsisalreadyassociatedwithCanvas does not allow drawing(lclstrconsts.rscanvasdoesnotallowdrawingUnsupported bitmap format.&lclstrconsts.rsunsupportedbitmapformatError while saving bitmap.%lclstrconsts.rserrorwhilesavingbitmapDuplicate icon format."lclstrconsts.rsduplicateiconformatIcon image cannot be emptylclstrconsts.rsiconimageempty"Icon image must have the same sizelclstrconsts.rsiconimagesizeIcon has no current imagelclstrconsts.rsiconnocurrent$Icon image must have the same formatlclstrconsts.rsiconimageformat"Cannot change format of icon image$lclstrconsts.rsiconimageformatchange Cannot change size of icon image"lclstrconsts.rsiconimagesizechange;Cannot begin update all when canvas only update in progress#lclstrconsts.rsrasterimageupdateall%Endupdate while no update in progress#lclstrconsts.rsrasterimageendupdate*Cannot save image while update in progress&lclstrconsts.rsrasterimagesaveinupdateaNo widgetset object. Please check if the unit "interfaces" was added to the programs uses clause.lclstrconsts.rsnowidgetsetR%s%sPress OK to ignore and risk data corruption.%sPress Abort to kill the program.@lclstrconsts.rspressoktoignoreandriskdatacorruptionpressaborttok Can not focuslclstrconsts.rscannotfocusList index exceeds bounds (%d)%lclstrconsts.rslistindexexceedsboundsResource %s not foundlclstrconsts.rsresourcenotfound Calculatorlclstrconsts.rscalculatorErrorlclstrconsts.rserror Select a datelclstrconsts.rspickdate size lclstrconsts.rssize modified lclstrconsts.rsmodifiedCopylclstrconsts.rsdocopyPastelclstrconsts.rsdopasteNamelclstrconsts.sshellctrlsnameSizelclstrconsts.sshellctrlssizeTypelclstrconsts.sshellctrlstype%s MBlclstrconsts.sshellctrlsmb%s kBlclstrconsts.sshellctrlskb%s byteslclstrconsts.sshellctrlsbytesInvalid pathname: "%s"#lclstrconsts.sshellctrlsinvalidroot.The selected item does not exist on disk: "%s"1lclstrconsts.sshellctrlsselecteditemdoesnotexistsInvalid pathname: "%s"#lclstrconsts.sshellctrlsinvalidpath=Invalid relative pathname: "%s" in relation to rootpath: "%s"+lclstrconsts.sshellctrlsinvalidpathrelativeUnknownlclstrconsts.ifsvk_unknownShiftlclstrconsts.ifsvk_shiftMetalclstrconsts.ifsvk_metaCmdlclstrconsts.ifsvk_cmdSuperlclstrconsts.ifsvk_superHelplclstrconsts.ifsvk_helpCtrllclstrconsts.ifsctrlAltlclstrconsts.ifsaltWhole words onlylclstrconsts.rswholewordsonlyCase sensitivelclstrconsts.rscasesensitivePrompt on replacelclstrconsts.rspromptonreplaceSearch entire filelclstrconsts.rsentirescopeTextlclstrconsts.rstext Directionlclstrconsts.rsdirectionForwardlclstrconsts.rsforwardBackwardlclstrconsts.rsbackwardBkSplclstrconsts.smkcbkspTablclstrconsts.smkctabEsclclstrconsts.smkcescEnterlclstrconsts.smkcenterSpacelclstrconsts.smkcspacePgUplclstrconsts.smkcpgupPgDnlclstrconsts.smkcpgdnEndlclstrconsts.smkcendHomelclstrconsts.smkchomeLeftlclstrconsts.smkcleftUplclstrconsts.smkcupRightlclstrconsts.smkcrightDownlclstrconsts.smkcdownInslclstrconsts.smkcinsDellclstrconsts.smkcdelShift+lclstrconsts.smkcshiftCtrl+lclstrconsts.smkcctrlAlt+lclstrconsts.smkcaltMeta+lclstrconsts.smkcmeta#Help node "%s" has no Help Database,lclstrconsts.rshelphelpnodehasnohelpdatabase%There is no viewer for help type "%s"-lclstrconsts.rshelpthereisnoviewerforhelptypeCHelp Database "%s" did not find a viewer for a help page of type %sClclstrconsts.rshelphelpdatabasedidnotfoundaviewerforahelppageoftype%s: Already registered$lclstrconsts.rshelpalreadyregistered%s: Not registered lclstrconsts.rshelpnotregisteredHelp Database "%s" not found'lclstrconsts.rshelphelpdatabasenotfound-Help keyword "%s" not found in Database "%s".0lclstrconsts.rshelphelpkeywordnotfoundindatabaseHelp keyword "%s" not found.&lclstrconsts.rshelphelpkeywordnotfound3Help for directive "%s" not found in Database "%s".5lclstrconsts.rshelphelpfordirectivenotfoundindatabase"Help for directive "%s" not found.+lclstrconsts.rshelphelpfordirectivenotfound+Help context %s not found in Database "%s".0lclstrconsts.rshelphelpcontextnotfoundindatabaseHelp context %s not found.&lclstrconsts.rshelphelpcontextnotfound+No help found for line %d, column %d of %s.'lclstrconsts.rshelpnohelpfoundforsource(No help entries available for this topic'lclstrconsts.rshelpnohelpnodesavailable Help Errorlclstrconsts.rshelperror2There is no help database installed for this topic#lclstrconsts.rshelpdatabasenotfoundFA help database was found for this topic, but this topic was not found"lclstrconsts.rshelpcontextnotfound1No viewer was found for this type of help content!lclstrconsts.rshelpviewernotfoundNo help found for this topiclclstrconsts.rshelpnotfoundHelp Viewer Errorlclstrconsts.rshelpviewererrorHelp Selector Error lclstrconsts.rshelpselectorerror%Unknown Error, please report this bug.lclstrconsts.rsunknownerrorpleasereportthisbug4The help database "%s" was unable to find file "%s".6lclstrconsts.hhshelpthehelpdatabasewasunabletofindfile:The built-in URL is read only. Change the BaseURL instead.=lclstrconsts.rsthebuiltinurlisreadonlychangethebaseurlinstead:The macro %s in BrowserParams will be replaced by the URL.Blclstrconsts.hhshelpthemacrosinbrowserparamswillbereplacedbytheurlUNo HTML Browser found.%sPlease define one in Tools -> Options -> Help -> Help Options5lclstrconsts.hhshelpnohtmlbrowserfoundpleasedefineoneUnable to find a HTML browser.&lclstrconsts.hhshelpnohtmlbrowserfoundBrowser "%s" not found.#lclstrconsts.hhshelpbrowsernotfoundBrowser "%s" not executable.(lclstrconsts.hhshelpbrowsernotexecutableError while executing "%s":%s%s'lclstrconsts.hhshelperrorwhileexecutingWrong token type: %s expectedlclstrconsts.sparexpectedInvalid integer number: %slclstrconsts.sparinvalidinteger*Wrong token type: %s expected but %s foundlclstrconsts.sparwrongtokentype!Invalid floating point number: %slclstrconsts.sparinvalidfloat,Wrong token symbol: %s expected but %s found!lclstrconsts.sparwrongtokensymbolUnterminated string#lclstrconsts.sparunterminatedstring (at %d,%d, stream offset %d)lclstrconsts.sparlocinfoUnterminated byte value%lclstrconsts.sparunterminatedbinvalue Custom ...!lclstrconsts.rscustomcolorcaptionBlack lclstrconsts.rsblackcolorcaptionMaroon!lclstrconsts.rsmarooncolorcaptionGreen lclstrconsts.rsgreencolorcaptionOlive lclstrconsts.rsolivecolorcaptionNavylclstrconsts.rsnavycolorcaptionPurple!lclstrconsts.rspurplecolorcaptionTeallclstrconsts.rstealcolorcaptionGraylclstrconsts.rsgraycolorcaptionSilver!lclstrconsts.rssilvercolorcaptionRedlclstrconsts.rsredcolorcaptionLimelclstrconsts.rslimecolorcaptionYellow!lclstrconsts.rsyellowcolorcaptionBluelclstrconsts.rsbluecolorcaptionFuchsia"lclstrconsts.rsfuchsiacolorcaptionAqualclstrconsts.rsaquacolorcaptionWhite lclstrconsts.rswhitecolorcaption Money Green%lclstrconsts.rsmoneygreencolorcaptionSky Blue"lclstrconsts.rsskybluecolorcaptionCream lclstrconsts.rscreamcolorcaption Medium Gray"lclstrconsts.rsmedgraycolorcaptionNonelclstrconsts.rsnonecolorcaptionDefault"lclstrconsts.rsdefaultcolorcaption ScrollBar$lclstrconsts.rsscrollbarcolorcaptionDesktop%lclstrconsts.rsbackgroundcolorcaptionActive Caption(lclstrconsts.rsactivecaptioncolorcaptionInactive Caption*lclstrconsts.rsinactivecaptioncolorcaptionMenulclstrconsts.rsmenucolorcaptionWindow!lclstrconsts.rswindowcolorcaption Window Frame&lclstrconsts.rswindowframecolorcaption Menu Text#lclstrconsts.rsmenutextcolorcaption Window Text%lclstrconsts.rswindowtextcolorcaption Caption Text&lclstrconsts.rscaptiontextcolorcaption Active Border'lclstrconsts.rsactivebordercolorcaptionInactive Border)lclstrconsts.rsinactivebordercolorcaptionApplication Workspace'lclstrconsts.rsappworkspacecolorcaption Highlight$lclstrconsts.rshighlightcolorcaptionHighlight Text(lclstrconsts.rshighlighttextcolorcaption Button Face"lclstrconsts.rsbtnfacecolorcaption Button Shadow$lclstrconsts.rsbtnshadowcolorcaption Gray Text#lclstrconsts.rsgraytextcolorcaption Button Text"lclstrconsts.rsbtntextcolorcaptionInactive Caption"lclstrconsts.rsinactivecaptiontextButton Highlight'lclstrconsts.rsbtnhighlightcolorcaption3D Dark Shadow%lclstrconsts.rs3ddkshadowcolorcaption3D Light"lclstrconsts.rs3dlightcolorcaption Info Text#lclstrconsts.rsinfotextcolorcaptionInfo Background!lclstrconsts.rsinfobkcolorcaption Hot Light#lclstrconsts.rshotlightcolorcaptionGradient Active Caption0lclstrconsts.rsgradientactivecaptioncolorcaptionGradient Inactive Caption2lclstrconsts.rsgradientinactivecaptioncolorcaptionMenu Highlight(lclstrconsts.rsmenuhighlightcolorcaptionMenu Bar"lclstrconsts.rsmenubarcolorcaptionFormlclstrconsts.rsformcolorcaption(filter)lclstrconsts.rsfilterA tree of items0lclstrconsts.rsttreeviewaccessibilitydescriptionPanel-lclstrconsts.rstpanelaccessibilitydescription<A grip to control how much size to give two parts of an area0lclstrconsts.rstsplitteraccessibilitydescriptionA control with tabs8lclstrconsts.rstcustomtabcontrolaccessibilitydescription ANSI_CHARSETDEFAULT_CHARSETSYMBOL_CHARSET MAC_CHARSETSHIFTJIS_CHARSETHANGEUL_CHARSET JOHAB_CHARSETGB2312_CHARSETCHINESEBIG5_CHARSET GREEK_CHARSETTURKISH_CHARSETVIETNAMESE_CHARSETHEBREW_CHARSETARABIC_CHARSETBALTIC_CHARSETRUSSIAN_CHARSET THAI_CHARSETEASTEUROPE_CHARSET OEM_CHARSETclBlackclMaroonclGreenclOliveclNavyclPurpleclTealclGrayclSilverclRedclLimeclYellowclBlue clFuchsiaclAquaclWhite clMoneyGreen clSkyBlueclCream clMedGrayclNone clDefault clScrollBar clBackgroundclActiveCaptionclInactiveCaptionclMenu clMenuBarclMenuHighlight clMenuTextclWindow clWindowFrame clWindowText clCaptionTextclActiveBorderclInactiveBorderclAppWorkspace clHighlightclHighlightText clBtnFace clBtnShadow clGrayText clBtnTextclInactiveCaptionTextclBtnHighlight cl3DDkShadow cl3DLight clInfoTextclInfoBk clHotLightclGradientActiveCaptionclGradientInactiveCaptionclFormDONTCARETHIN EXTRALIGHTLIGHTNORMALMEDIUMSEMIBOLDBOLD EXTRABOLDHEAVY ULTRALIGHTREGULARDEMIBOLD ULTRABOLDBLACKfsBoldfsItalic fsStrikeOut fsUnderline[],$Data: Unsupported MimeType: : Unsupported Resourcetype:  Resource Name: TPortableNetworkGraphicTPixmapTBitmap TCursorImageTIcon TIcnsIcon TJpegImage TTiffImage TGIFImageTPortableAnyMapGraphic TTGAImage*.;*.;| %s%s (%s)|%s%s%s%s (%s)|%1:s|%s image/png image/jpegBTODO: Conversion for vector or icon images of format "%s" to "%s"!HTRasterImage.BitmapHandleNeeded: Unable to create handles, using default/TRasterImage.LoadFromBitmapHandles Get RawImage1TRasterImage.LoadFromBitmapHandles Create bitmapsBMPBITMAPXPMGTCustomBitmap.SetHandleType TCustomBitmap.SetHandleType not implemented(TPenHandleCache.Add pen desc added twiceTPenHandleCache.Add Added: %p*TFontHandleCache.Add font desc added twice.TFontHandleCache.Add Added: %p LongFontName=%sIRIOMPC*r ,TCanvas.SetHeight not allowed for LCL canvas+TCanvas.SetWidth not allowed for LCL canvas!WARNING: TCanvas.DoCopyRect from  TCanvas.CheckHelper ignored for @defaulttaticnstarnsigned&LazResourceXPMToPPChar: The resource "" is not of type XPMxpmpng pbm;pgm;ppmjpeg;jpg;jpe;jfificoICOICONB[TCustomIcon.LoadFromResourceName] The resource "%s" was not found?[TCustomIcon.LoadFromResourceID] The resource #%d was not found9TCustomIcon.MaskHandleNeeded: Unable to create maskhandleStream is not an Icon typeݗNH@lMicnsStream is not an ICNS typeicnsICNScurCURCURSOREޜo(image/bmp.TTiffImage - Lazarus LCL: 3.2.0.0 - FPC: 3.2.2tif;tiff TiffArtist TiffCopyright TiffDateTimeYYYY:MM:DD HH:NN:SSTiffDocumentNameTiffImageDescription1TiffResolutionUnit23TiffXResolutionTiffYResolutionLazTiffHostComputer LazTiffMake LazTiffModelLazTiffSoftwareGIF89aGIF87agif.Add: ABitmap added twice .Add: Added  items.?TPatternBitmapCache fatal error: cannot retrieve added bitmap: * fatal error: cannot retrieve added bitmap$1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ-Standard?Menu inserted twiceVERCH" Flags= " Caption=" Name="/  MTMenuItem.SetParentComponent: suggested parent not of type TMenu or TMenuItemVCL compatibility property AutoMerge'Theme manager © 2001-2005 Mike Lischkebtn_ok btn_cancelbtn_helpbtn_yesbtn_no btn_close btn_abort btn_retry btn_ignorebtn_allbtn_allbtn_no? Additional?defaultStandard AdditionalVCL compatibility property BevelInner BevelKind BevelOuterImeModeFjCache is not valid.Reading form invalid cache   OEMConvert%Used in a previous version of LazarusTextHintFontColorTextHintFontStyle$@@?EllipsisPosition0TCustomScrollBar.CreateWnd HandleAllocated=falseElevationRequiredImageAlignment ImageMargins ImageIndexDisabledImageIndex HotImageIndexPressedImageIndexSelectedImageIndex AdditionalDatanboShowCloseButtons nboMultiLinenboHidePageListPopupnboKeyboardTabSwitchnboShowAddTabButtonnboDoChangeOnSetIndex,[]?TStatusBar.EndUpdateUse TabVisible instead.Visible>Needed when converting from VCL TabbedNotebook to TPageControl PageIndexTabFontTTabControlStrings.EndUpdate+Property streamed in older Lazarus revision OnDrawTabDataLazDataH ItemIndexVCL compatibility property BevelKind OverlayIndex(TCustomListView.EndUpdate FUpdateCount=0%Item does not belong to this listview&TODO: TCustomListView.UpdateScrollbars%v from [%l-%u] (=%p%%)?Žy|TTreeNodeExpandedState.Apply  ChildNodeText=" TTreeNode.SetIndex missing Owner5TTreeNode.InternalMove AddMode=taInsert but ANode=nil TTreeNode.MoveTo Destination=nil%s%s.WriteDebugReport Self=%p Text= TTreeNode.AddNode Relative=nil:TTreeNodes.GetSelections Index %d out of bounds (Count=%d)&TTreeNodes.InternalAddObject Owner=nilItem>TTreeNodes.GetNodeFromIndex: Consistency Error - Count too bigETTreeNodes.GetNodeFromIndex: Consistency error - invalid SubTreeCount?TTreeNodes.GetNodeFromIndex: Consistency error - SubTreeCount=0=TTreeNodes.GetNodeFromIndex Index %d out of bounds (Count=%d).TTreeNodes.ShrinkTopLvlItems FTopLvlCapacity>06TTreeNodes.MoveTopLvlNode TopLvlFromIndex>FTopLvlCount(TTreeNodes.MoveTopLvlNode FTopLvlCount<0'TTreeNodes.MoveTopLvlNode inserting nilFUpdateCount<0RealCount<>FCounti CONSISTENCY i=%d FTopLvlCount=%d FTopLvlItems[i]=%p FTopLvlItems[i].FNextBrother=%p FTopLvlItems[i+1]=%p 6TTreeStrings.Add: Invalid level: Level=%d, OldLevel=%d9TTreeStrings.Add: Invalid level: Node=nil, I=%d, Level=%d7TTreeStrings.LoadTreeFromStream: Level=%d, CurrStr="%s" 6%sTTreeStrings.WriteDebugReport Self=%p Consistency=%d/TCustomTreeView.EndUpdate-ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789jgpq|\()^ Canvas=nilFDefItemHeight=FIndent= FMaxRight=FTreeNodes=nil FUpdateCount= OldLastTop=<>Items.GetLastSubNode.Top=OldMaxRight<>FMaxRightOldMaxLvl<>FMaxLvlnot FSelectedNode.IsVisibleFTopItem<>OldTopItemFBottomItem<>OldBottomItem*TCustomTreeView.UnlockSelectionChangeEventCommon ControlsStandard AdditionalSystem=This property was published for a long time in Lazarus 0.9.31 ClientHeight ClientWidth!TUNBPages.Get Index out of bounds'TUNBPages.GetObject Index out of bounds!TUNBPages.Put Index out of bounds$TUNBPages.Insert Index out of bounds6TNotebook.GetCustomPage Index out of bounds. AIndex=%d@@'TCustomCheckGroup: Columns must be >= 1DataSubLabel[]TCustomRadioGroup.InitializeWndHiddenRadioButton'TCustomRadioGroup: Columns must be >= 1VCL compatibility propertyParentCustomHintgtkgtk2gtk3win32wincecarbonqtqt5qt6fpguinoguicocoa customdrawnmuigtk (deprecated)gtk2 gtk3 (alpha) win32/win64wincecarbonqtqt5qt6 fpGUI (alpha)NoGUIcocoacustomdrawn (alpha)MUIgtk2/WARNING: CreateEllipticRgn not yet implemented.4TWidgetSet.DeleteCriticalSection Not implemented yet3TWidgetSet.EnterCriticalSection Not implemented yet:EnumFontFamilies is not yet implemented for this widgetset<EnumFontFamiliesEx is not yet implemented for this widgetset @8TWidgetSet.InitializeCriticalSection Not implemented yet3TWidgetSet.LeaveCriticalSection Not implemented yetWinControl[WARNING] Missing VClass for: "" not found in "[WARNING] VMT entry "(V)(L)(I)(ROOT)?LCLWinapiClientLCLWinapiWidgetLCLWinapiClientset_scroll_adjustments6WARNING: [GTKAPIWidgetClient_HideCaret] Got nil clientgtk-cursor-blinkgtk-cursor-blink-timegtk-cursor-blink-timeout6WARNING: [GTKAPIWidgetClient_DrawCaret] Got nil client X= Y= W= H=, ***: Draw Caret failed: Client=6WARNING: [GTKAPIWidgetClient_ShowCaret] Got nil client8WARNING: [GTKAPIWidgetClient_CreateCaret] Got nil client9WARNING: [GTKAPIWidgetClient_DestroyCaret] Got nil client8WARNING: [GTKAPIWidgetClient_SetCaretPos] Got nil client8WARNING: [GTKAPIWidgetClient_GetCaretPos] Got nil clientCWARNING: [GTKAPIWidgetClient_SetCaretRespondToFocus] Got nil clientCWARNING: [GTKAPIWidgetClient_GetCaretRespondToFocus] Got nil clientLCLWinapiWidgetFixedMain2WARNING: [GTKAPIWidget_CreateCaret] Got nil client3WARNING: [GTKAPIWidget_DestroyCaret] Got nil client6WARNING: [GTKAPIWidget_InvalidateCaret] Got nil client0WARNING: [GTKAPIWidget_HideCaret] Got nil client0WARNING: [GTKAPIWidget_ShowCaret] Got nil client2WARNING: [GTKAPIWidget_SetCaretPos] Got nil client2WARNING: [GTKAPIWidget_GetCaretPos] Got nil client=WARNING: [GTKAPIWidget_SetCaretRespondToFocus] Got nil client=WARNING: [GTKAPIWidget_GetCaretRespondToFocus] Got nil client20 25 25 1 c None. c None+ c #000000@ c #050505# c #FFFFFF$ c #020202% c #FEFEFE& c #000002* c #FCFCFE= c #030305- c #F9F9FB; c #FAFAFC> c #FBFBFD, c #F8F8FA" c #020204) c #08080A! c #010103~ c #030303{ c #FCFCFC] c #FAFAFA^ c #252527/ c #090909( c #F7F7F7_ c #070707: c #FEFEFF........................................................................................................++..................@#+.................$##+................+%##&...............+%###&..............+%##*#&.............+%#####=............+%####-*&...........+%##-##;#&..........+%######>,&.........+%#####&"&)!........~{]#&##&...^........+##+&#,&............/(_..!##&..............&&&&&&&&&&&.........&###,#####&.........&#++#++++#&.........&#########&.........&#++++:++#&.........&#########&..CLASS COMPOUND_TEXTDELETE FILE_NAME HOST_NAMELENGTHMULTIPLENAMEOWNER_OSPROCESSSTRINGTARGETSTEXT TIMESTAMPUSER UTF8_STRING1iso88593150ansicp1252* fontspecificcpxxxxjiscp932cp949cp1361gb2312big5cp9507cp12539cp1254cp12588cp12556cp125613414cp12575koi8cp125111tis620cp8742cp1250asciiiso646iso1064610button-press-eventmotion-notify-eventbutton-release-eventexpose-eventfly-wmopenbox_)EndGDKErrorTrap without BeginGDKErrorTrapDA GDK/X Error occurred, this is normally fatal. The error code was: nilx=,y=,w=,h=??%p=%s %s LCLObject=%p=:RootTopLvlChildDialogTempForeignUnknown Type= ScrollBarchange-valuevalue-changedbutton-press-eventbutton-release-event,[ReleaseStyle] : Unable To Unreference StyleLazStyleStyleLabelvboxfixedwidgetDUMMYITEMstyle-setgtk-tooltip-lcl$@Y@GroupBoxBbutton failedWARNING: GetStyleWithName Lazarussans 1212$StyleForegroundColor clHIGHLIGHTTEXT'StyleForegroundColor clHIGHLIGHTTEXT 2 windowtooltip__AAmi_NET_WORKAREAlcl-postpone-changed-signaldelete-textinsert-textlcl-lock-changed-signallcl-gtkentry-pasted-datapaste-clipboard day changedkey-press-eventkey-release-event_NET_WM_DESKTOP_NET_CURRENT_DESKTOPlclnotebookdraggingmotion-notify-eventlcl-column-resized-dblclicklcl-column-resized-dblclick-oldsizingclickedenterleave size-allocate8WARNING: gtksize_allocateCB: Data is not TControl. Data= Data=@WARNING: gtksize_allocate_client: Data is not TWinControl. Data=insert_text Set Editable Move Word Move Page Move To Row!! MoveToColumn Kill Char Kill Word Kill Line Cut to clip Copy to ClipPaste from clip Value changedTimerCBfocus-in-eventfocus-out-eventScrollBarLastPos?K[WARNING] Key pressed with keycode (%u) larger than expected: K=0x%x S="%s"1[WARNING] Key pressed without VKey: K=0x%x S="%s" year changed localhostfileUTF8_STRINGCOMPOUND_TEXTSTRINGTEXTtext/plainComboBoxShowAfterComboBoxHideAfterPageIconWidgetExposeAfter gtk_defaultdefaultbuttonlabelwindowcheckbox radiobuttonmenumenubarmenuitemlistvertical scrollbarhorizontal scrollbartooltipvertical panedhorizontal panednotebook statusbarhscalevscalegroupboxtreeviewtoolbar toolbuttoncalendarscrolled windowcomboboxtext/uri-list gdiBitmapgdiBrushgdiFontgdiPen gdiRegion gdiPalettenil8TGtkDeviceContext.SetWidget: Unable to realize GdkWindow/TGtkDeviceContext.SetWidget: widget already set$TGtkDeviceContext.SetWidget: widget  has no client areaTDeviceContext.Clear  OwnedGDIObjects[]<>nil2TGtkDeviceContext.CopyDataFrom: widget already set6TGtkDeviceContext.CopyDataFrom: restore widget differs!TGtkDeviceContext.CreateGDIObject>[TGtkDeviceContext.SelectBitmap] - Unknown bitmaptype, DC=0x%p?$@ lfFaceName=""  CharSet= ClipPrecision= Escapement= Height= Italic= Orientation= OutPrecision= PitchAndFamily= Quality= StrikeOut= Underline= Weight= Width=  TGtkFontCache.Add TheGtkFont=nil'TGtkFontCache.Add font desc added twice6TGtkFontCache.Add Added: %p LongFontName=%s LogFont=%s)TGtkFontCache.DumpDescriptors %d %p %s %s GtkFont=  libglib-2.0.solibglib-2.0.so.0modelgtk_window_set_opacitygtk_tree_view_get_grid_linesgtk_tree_view_set_grid_linesgtk_window_get_groupgtk_adjustment_configureg_object_ref_sinklibgdk-x11-2.0.sogdk_window_get_cursorgdk_screen_get_primary_monitor riqfMono  riqfGrey riqfRGB  riqfAlpha  riqfMask  riqfPalette  riqfUpdate  Format= HasPalette-> HasMask-> Depth= Width= Height= BitOrder= ByteOrder= LineOrder= LineEnd= BitsPerPixel= BytesPerLine-> RedPrec= RedShift= GreenPrec= GreenShift= BluePrec= BlueShift= AlphaPrec= AlphaShift= ~~~mask~~~ MaskBitsPerPixel= MaskShift= MaskLineEnd= MaskBitOrder= MaskBytesPerLine-> ~~~palette~~~ PaletteColorCount= PaletteBitsPerIndex= PaletteShift= PaletteLineEnd= PaletteBitOrder= PaletteByteOrder= PaletteBytesPerLine->$RawImage_IsMasked - Invalid MaskSize5ToDo: ExtractRawImageRect DestLineStartPosition.Bit>0Q@?? @ @??@??@?@@@@@@.....//too many sub directories [Invalid] [-------]"read access denied for a directory component in ( does not exist or is a dangling symlink is not a directoryinsufficient memory has a circular symbolic link&too many links, maybe an endless loop.~HOMEldbc-rwxDD/MM/YYYY hh:mm?tstperm WriteTest...\TMP %s%.5d.tmp''''""' \\?\#00#01#02#03#04#05#06#07#08#09#10#11#12#13#14#15#16#17#18#19#20#21#22#23#24#25#26#27#28#29#30#31\0\0x01\0x02\0x03\0x04\0x05\0x06\a\b\t\r\v\f\n\0x0E\0x0F\0x10\0x11\0x12\0x13\0x14\0x15\0x16\0x17\0x18\0x19\0x1A\e\0x1C\0x1D\0x1E\0x1F\0x00\0x01\0x02\0x03\0x04\0x05\0x06\0x07\0x08\0x09\0x0A\0x0B\0x0C\0x0D\0x0E\0x0F\0x10\0x11\0x12\0x13\0x14\0x15\0x16\0x17\0x18\0x19\0x1A\0x1B\0x1C\0x1D\0x1E\0x1F#$00#$01#$02#$03#$04#$05#$06#$07#$08#$09#$0A#$0B#$0C#$0D#$0E#$0F#$10#$11#$12#$13#$14#$15#$16#$17#$18#$19#$1A#$1B#$1C#$1D#$1E#$1F[NUL][SOH][STX][ETX][EOT][ENQ][ACK][BEL][BS][HT][LF][VT][FF][CR][SO][SI][DLE][DC1][DC2][DC3][DC4][NAK][SYN][ETB][CAN][EM][SUB][ESC][FS][GS][RS][US]LC_ALL LC_MESSAGESLANGUTF-8UTF8 UnicodeToUTF8: invalid unicode: traz  ,TDynHashArray.WriteDebugReport: Consistency= Capacity= Count= Index= (H=)->(<- Invalid index %d for key %p , FreeCount= Consistency=-TDynHashArrayItemMemManager.WriteDebugReport:0123456789ABCDEFMap modification not allowedDuplicate ID: %sCannot move past endCannot move before startNo current itemCurrent item removed Map destroyedType must have a sizel=,t=,r=,b=(x=,y=)TrueFalse.=''nil:x=,[]0123456789ABCDEF- Stack trace:#Duplicate LogGroup '?unknown variant?  ConvertTabsToSpaces } { //  *) * (*  *//* # -->  at $ <----------------Variant is by reference.Variant is an array.(Variant has unknown flags set in type: $Variant has type : Variant has type : string Variant has type : UnicodeStringVariant has unknown type : $Bytes :---<  >---------------- Value is: [nil]Null dereferencing -> ]^ Unsupported[,](TMaskUtf8.infMatches: XXXX InternalError NullCharacter.**.LAZUTILSSTRCONSTS modified lazutilsstrconsts.lrsmodified size lazutilsstrconsts.lrssizefile "%s" does not exist%lazutilsstrconsts.lrsfiledoesnotexist.file "%s" is a directory and not an executable7lazutilsstrconsts.lrsfileisadirectoryandnotanexecutableread access denied for %s(lazutilsstrconsts.lrsreadaccessdeniedforCa directory component in %s does not exist or is a dangling symlinkHlazutilsstrconsts.lrsadirectorycomponentindoesnotexistorisadanglingsyml2.a directory component in %s is not a directory:lazutilsstrconsts.lrsadirectorycomponentinisnotadirectory2Ca directory component in %s does not exist or is a dangling symlinkGlazutilsstrconsts.lrsadirectorycomponentindoesnotexistorisadanglingsyml.a directory component in %s is not a directory9lazutilsstrconsts.lrsadirectorycomponentinisnotadirectoryinsufficient memory'lazutilsstrconsts.lrsinsufficientmemory%s has a circular symbolic link-lazutilsstrconsts.lrshasacircularsymboliclink%s is not a symbolic link'lazutilsstrconsts.lrsisnotasymboliclink%s is not executable$lazutilsstrconsts.lrsisnotexecutable&Unable to create config directory "%s"3lazutilsstrconsts.lrsunabletocreateconfigdirectorysprogram file not found %s(lazutilsstrconsts.lrsprogramfilenotfoundcan not execute %s"lazutilsstrconsts.lrscannotexecuteList must be empty$lazutilsstrconsts.lrslistmustbeemptyList index exceeds bounds (%d)+lazutilsstrconsts.lrslistindexexceedsboundsERROR in code:  lazutilsstrconsts.lrserrorincodeCreating gdb catchable error:.lazutilsstrconsts.lrscreatinggdbcatchableerror+Invalid character "%s" in mask (offset %d).%lazutilsstrconsts.rsinvalidcharmaskatInvalid character "%s" in mask.#lazutilsstrconsts.rsinvalidcharmask3Missing closing character "%s" in mask (offset %d).*lazutilsstrconsts.rsmissingclosecharmaskat'Missing closing character "%s" in mask.(lazutilsstrconsts.rsmissingclosecharmask7Reached end of mask, but missing close/escape sequence."lazutilsstrconsts.rsincompletemask&Escape character must be ASCII <= 127.%lazutilsstrconsts.rsinvalidescapecharInternal error in %s.!lazutilsstrconsts.rsinternalerrornode setlazutilsstrconsts.lrsnodesetbooleanlazutilsstrconsts.lrsbooleannumberlazutilsstrconsts.lrsnumberstringlazutilsstrconsts.lrsstring%Conversion from %s to %s not possible$lazutilsstrconsts.lrsvarnoconversionString literal was not closed*lazutilsstrconsts.lrsscannerunclosedstringInvalid character'lazutilsstrconsts.lrsscannerinvalidchar&Expected "*" or local part after colon*lazutilsstrconsts.lrsscannermalformedqname Expected variable name after "$"+lazutilsstrconsts.lrsscannerexpectedvarname Expected "(".lazutilsstrconsts.lrsparserexpectedleftbracket Expected ")"/lazutilsstrconsts.lrsparserexpectedrightbracketInvalid axis name&lazutilsstrconsts.lrsparserbadaxisnameInvalid node type&lazutilsstrconsts.lrsparserbadnodetypeExpected "]" after predicate5lazutilsstrconsts.lrsparserexpectedrightsquarebracketInvalid primary expression*lazutilsstrconsts.lrsparserinvalidprimexpr#Unrecognized input after expression1lazutilsstrconsts.lrsparsergarbageafterexpression Invalid node test (syntax error)*lazutilsstrconsts.lrsparserinvalidnodetestUnknown function: "%s"(lazutilsstrconsts.lrsevalunknownfunctionUnknown variable: "%s"(lazutilsstrconsts.lrsevalunknownvariable$Invalid number of function arguments(lazutilsstrconsts.lrsevalinvalidargcount./fd0/./fd1/./.HOME////.//..//..  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĒĢĪĨͧĻĐŠŦŽ­ŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎÏÐŅŌÓÔÕÖŨØŲÚÛÜÝÞßāáâãäåæįčéęëėíîïðņōóôõöũøųúûüýþĸ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž’  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ḃḃ£ĊċḊ§Ẁ©ẂḋỲ­®ŸḞḟĠġṀṁ¶ṖẁṗẃṠỳẄẅṡÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŴÑÒÓÔÕÖṪØÙÚÛÜÝŶßàáâãäåæçèéêëìíîïŵñòóôõöṫøùúûüýŷÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£€¥Š§š©ª«¬­®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄąŁ€„Чš©Ș«Ź­źŻ°±ČłŽ”¶·žčș»ŒœŸżÀÁÂĂÄĆÆÇÈÉÊËÌÍÎÏĐŃÒÓÔŐÖŚŰÙÚÛÜĘȚßàáâăäćæçèéêëìíîïđńòóôőöśűùúûüęțÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ą˘Ł¤ĽŚ§¨ŠŞŤŹ­ŽŻ°ą˛ł´ľśˇ¸šşťź˝žżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ħ˘£¤¥Ĥ§¨İŞĞĴ­®Ż°ħ²³´µĥ·¸ışğĵ½¾żÀÁÂÃÄĊĈÇÈÉÊËÌÍÎÏÐÑÒÓÔĠÖ×ĜÙÚÛÜŬŜßàáâãäċĉçèéêëìíîïðñòóôġö÷ĝùúûüŭŝ˙  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĸŖ¤Ĩϧ¨ŠĒĢŦ­Ž¯°ą˛ŗ´ĩšēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪĐŅŌĶÔÕÖרŲÚÛÜŨŪßāáâãäåæįčéęëėíîīđņōķôõö÷øųúûüũū˙  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ЁЂЃЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђѓєѕіїјљњћќ§ўџ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ʽʼ£€₯¦§¨©ͺ«¬­®―°±²³΄΅Ά·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡÒΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŚŤŽŹ‘’“”•–—˜™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—˜™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ΅Ά£¤¥¦§¨©ª«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϏ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹֺֻּֽ־ֿ׀ׁׂ׃װױײ׳״׵׶׷׸׹׺׻אבגדהוזחטיךכלםמןנסעףפץצקרשת׫׬‎‏׭  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹Œ¨ˇ¸‘’“”•–—˜™š›œ¯˛Ÿ ¡¢£¤¥¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖרÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´­±‗¾¶§÷¸°¨·¹³²■   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘ꬟Ⱥ«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´­˝˛ˇ˘§÷¸°¨˙űŘř■   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñѪº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุูÛÜÝÞ฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛üýþÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ё╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡Ё╢╣╤╥╦╧╨╩╪╫╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґ╝╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪Ґ╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓“■∙”—№™ »®«·¤═║╒ёє╔ії╗╘╙╚╛ґў╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪ҐЎ©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈Δ«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ.SetNodeClass Count= Old= New=Count<>RealCountTAVLTree.ConsistencyCheck: TAVLTree.Assign aTree=nil&-Start-of-AVL-Tree------------------- &-End-Of-AVL-Tree--------------------- -- \-/-|  &%p Self=%p Parent=%p Balance=%dTAVLTree.SetNodeManagerLeft.Parent<>SelfCompare(Left.Data,Data)>0Right.Parent<>SelfCompare(Data,Right.Data)>0Balance[]<>(RightDepth[ ]-LeftDepth[])TAVLTreeNode.ConsistencyCheck: i%s.DisposeNode: FCount (%d) is negative. Should not happen. FFreeCount=%d, FMinFree=%d, FMaxFreeRatio=%d." SystemInvalid %s index %dNo image to writeFile "%s" does not existNo stream to write topalettehorizontal pixelvertical pixelextraImage type "%s" already exists*Image type "%s" already has a reader class*Image type "%s" already has a writer class0Error while determining image type of stream: %s$Can't determine image type of streamError while reading stream: %sError while writing stream: %sNo palette availableInvalid HTML color : %s;Wrong image format?@Gwhitesilvergrayblackredmaroonyellowolivelimegreenaquatealbluenavyfuchsiapurple$RGBRLEBitfieldJpegPngHuffmanr=,g=,b=,a=BWARNING: TLazIntfImage.ChooseRawBitsProc Unsupported BitsPerPixel=HWARNING: TLazIntfImage.ChooseGetSetColorFunctions Palette is unsupported Invalid Size$Invalid Raw Image Description Format TLazIntfImage.CheckDescription: #Failed to get raw image from device/Failed to get raw image description from bitmap#Failed to get raw image from bitmapFailed to create handlesC@CCCCCline too short invalid colorreading XPM pixelsB "c" expected transparentnoneblackbluegreencyanredmagentayellowwhitegray lightgraydarkgraygreydarkblue darkgreendarkcyandarkred darkmagenta darkyellowmaroon lightgreenolivenavypurpletealsilverlimefuchsiaaquahexnumber expectednumber expected syntax errorUnexpected end of xpm stream in xpm stream at line  column  /* XPM */TLazAVLPalette.ConsistencyCheck "writing XPM pixelsY@","}?TLazWriterXPM.InternalWrite consistency ERROR SrcPos<>length(s) c static char *graphic[] = { ,N.,-*abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#;:=+%$()[]None#Capacity too small Value wrong Parent wrongCapacity wrongRLE code #2 is not supported$Bitmap with unknown compression (%d)(Bitmap with unsupported compression (%s)DBitmap with wrong combination of bit count (%d) and compression (%s)Wrong bitmap bit count: %dreading BMP pixels2TLazWriterTiff - Lazarus LCL: 3.2.0.0 - FPC: 3.2.2LazTiffSoftwareLazTiffHostComputer LazTiffMake LazTiffModelBad BMP compression mode%Top-down bitmaps cannot be compressedBad BMP RLE chunk at row , col , file offset $ Out of memorybmp BMP FormatInvalid color depth"Image palette is too big or absentCan't use RLE compression with  bits per pixelbmp BMP FormatInvalid chunklength"Chunk length exceeds stream lengthCRC check failed To much alpha values for palette Impossible length for PLTE-chunkSecond IHDR chunk foundCritical chunk  not recognizedpngPortable Network Graphics!Doesn't have a chunktype to write-Too many colors to use indexed PNG color type,tRNS chunk forbidden for full alpha channelspngPortable Network Graphics at position  (TiffPosition=)Samples= <> SamplesPerPixel= ExtraSampleCnt=(Samples bigger than 16 bit not supported4Only samples of 1, 4, 8, 12 and 16 bit are supported0Cannot mix 1 bit samples with other sample sizes3gray images expect one sample per pixel, but found @rgb(a) images expect three or four samples per pixel, but found Alpha channel specified twice6palette images expect one sample per pixel, but found Palette size mismatchPalette not supplied3mask images expect one sample per pixel, but found Mask images not handled5cmyk images expect four samples per pixel, but found (Photometric interpretation not handled (TiffPhotoMetricInterpretation TiffArtist TiffCopyrightTiffDocumentName TiffDateTimeTiffHostComputerTiffImageDescriptionTiffMake_ScannerManufacturerTiffModel_Scanner TiffSoftwareTiffOrientationTiffResolutionUnitTiffXResolutionTiffYResolution TiffRedBits TiffGreenBits TiffBlueBits TiffGrayBits TiffAlphaBitsTiffPageNumber TiffPageCount TiffPageName1TiffIsThumbnail TiffIsMaskTiffCompressionOffset outside of stream/ IIMMexpected II or MMAexpected 42, because of its deep philosophical impact, but found &Tags must be in ascending order: Last= Next= SubFileType expected, but found  expected Compression, but found .expected PhotometricInterpretation, but found  expected Tresholding, but found expected FillOrder, but found  expected Orientation, but found !expected RowsPerStrip, but found (expected PlanarConfiguration, but found #expected ResolutionUnit, but found 'PageNumber Count=2 expected, but found expected Predictor, but found  TileWidth=0 TileLength=0 TileOffsets=0TileByteCounts=0!EntryCount=1 expected, but found /expected single unsigned value, but found type=!EntryCount+1 expected, but found -expected single signed value, but found type=1expected rational unsigned value, but found type=asciiz expected, but found invalid EntryType only short or long allowedonly short allowed, but found !missing PhotometricInterpretationmissing BitsPerSamplemissing TileLengthmissing TileOffsetsmissing TileByteCountsmissing RowsPerStripmissing StripOffsetsmissing StripByteCounts Planar configuration not handlednumber of TileOffsets is wrong!number of TileByteCounts is wrongnumber of StripOffsets is wrong"number of StripByteCounts is wrong compression  not supported yet9TFPReaderTiff.LoadImageFromStream Tile too short ByteCnt= ChunkWidth= ChunkHeight= expected=:TFPReaderTiff.LoadImageFromStream Strip too short ByteCnt=PhotometricInterpretation= not supportedLZW code out of boundsinflateInit failed6inflate decompression failed, because not enough spaceinflate finish failedinflateEnd failedTagged Image File Formattif;tiffdeflateInit faileddeflate failed4deflate compression failed, because not enough spacedeflate finish faileddeflateEnd failedIIPhotoMetricInterpretation="TiffPhotoMetricInterpretation" not supported TiffGrayBits TiffRedBits TiffGreenBits TiffBlueBits TiffAlphaBitsTFPWriterTiff.TiffError: Tagged Image File Formattif;tiff/TiffWriteTiffExtras  no compression@CCITT Group 3 1-Dimensional Modified Huffman run length encodingCCITT Group 3 fax encodingCCITT Group 4 fax encodingLZWJPEG old styleJPEGDeflate Adobe styleRFC2301 JBIG white/blackRFC2301 JBIG colorNeXT CCITTRLEWPackBits THUNDERSCANIT8CTPADIT8LWIT8MPIT8BL PIXARFILMPIXARLOG Deflate ZLibDCSJBIGSGILOGSGILOG24JP2000unknown()TiffPhotoMetricInterpretation TiffArtist TiffCopyrightTiffDocumentName TiffDateTimeTiffHostComputerTiffMake_ScannerManufacturerTiffModel_ScannerTiffImageDescription TiffSoftwareTiffOrientationTiffResolutionUnitTiffXResolutionTiffYResolutionTiffPageNumber TiffPageCount TiffPageNameTiffIsThumbnail TiffIsMask TiffTileWidthTiffTileLengthTiffCompressionZSTREAM'Could not open gzip compressed file %s.zstream.sgz_open_error,Gzip compressed file was opened for reading.zstream.sgz_read_only,Gzip compressed file was opened for writing.zstream.sgz_write_only)Seek in deflate compressed stream failed.zstream.sseek_failedrbwbZBASEneed dictionaryzbase.sneed_dict stream endzbase.sstream_end file errorzbase.sfile_error stream errorzbase.sstream_error data errorzbase.sdata_errorinsufficient memoryzbase.smem_error buffer errorzbase.sbuf_errorincompatible versionzbase.sversion_errorUnknown zlib error Zlib - Halt...: incorrect data checkunknown compression methodinvalid window sizeincorrect header checkneed dictionaryinvalid block typeinvalid stored block lengths#too many length or distance symbolsinvalid bit length repeatinvalid literal/length codeinvalid distance code'oversubscribed dynamic bit lengths tree#incomplete dynamic bit lengths tree"oversubscribed literal/length treeincomplete literal/length tree empty distance tree with lengthsinvalid distance codeinvalid literal/length codemay notmustFont%s %s be allocated.???+TFPBase2Interpolation.Execute inconsistency q? @ ؿ q??Could not create a %s.PenBrushCanvas not locked.Failed to read from streamNot a valid PNM image.Unknown PNM subtype : %sInvalid PNM header dataPNM;PGM;PBM;PPM Netpbm format.pnm.-Fullwidth can only be used with binary formatI +?oʡE?Ex?  65535 255 pbmpgmppmpnmNetpbm Portable aNyMapNetpbm Portable BitMapNetpbm Portable GrayMapNetpbm Portable PixelMap JPEG error?jpg;jpeg JPEG Graphics JPEG errorjpg;jpeg JPEG graphicsGIF87a89a"Unknown/Unsupported GIF image typeY@gif GIF GraphicsEOFSymbolStringIntegerFloat WideString_1234[ReadComponentFromBinaryStream WARNING: "inherited" is not supported by this simple functionClass "%s" not foundCannot assign a %s to a %s.LazarusResources.Add('','',[ '']);.lrs LFMtoLRSfile FORMDATALFMtoLRSstream TLResourceList.Sort  DUPLICATE RESOURCE FOUND: 'KTDelphiReader.ReadString: WideString and UTF8String are not implemented yetFalseTruenilNullIllegal stream image inheritedinlineobject : []end = (), < item  end>sdc{}Unimplemented ValueType=vaNullvaListvaInt8vaInt16vaInt32 vaExtendedvaStringvaIdentvaFalsevaTruevaBinaryvaSet vaLStringvaNil vaCollectionvaSingle vaCurrencyvaDate vaWStringvaInt64 vaUTF8String vaUStringvaQWordUnknown ValueType=ObjectLRSToText #'''' *OBJECT INHERITEDINLINEEND.@ @itemInvalid PropertyValue expected, but  foundordinal valuetype missing#GGŧ?System Read Error*Error: TLRSObjectReader.Pop stack is emptyInvalid Filer Signature.TLRSObjectReader.ReadString invalid StringType,TLRSObjectReader.SkipValue unknown valuetype*Error: TLRSObjectWriter.Pop stack is emptyNILFALSETRUENULLInvalid size type!Size of data in queue is negative$-TUTF8Parser.ErrorStr Message="" at y=,x=&TResourceCacheItem.DecreaseRefCount=0  -WARNING: TResourceCacheItem.IncreaseRefCount TResourceCache.RemoveItemTResourceCache.ItemUnused:TBlockResourceCache.AddResource Descriptor Already Added ?%s,3?@y^? 9Ӌ?BS~kt=?? @ @,3?y:? 9Ӌ?BS~kt=?CountItem/NameValuedate format does not fit,-LeftTopRightBottomXY/Value!TConfigStorage.UndoAppendBasePathTrueFalseTRUEFALSE/TConfigMemStorage.WriteToDisk invalid operationVersion_ItemsChilds#TConfigMemStorage.WriteDebugReport Name=" " Value=" #TDynamicDataQueue.AddItem NewIndex=5TDynamicDataQueue.PopTopInternal inconsistency size<09TDynamicDataQueue.PopTopInternal inconsistency empty item6TDynamicDataQueue.PopTopInternal inconsistency size<>0#TDynamicDataQueue.ConsistencyCheck 1TDynamicDataQueue.WriteDebugReport FItemCapacity= FTopIndex= FTopItemSpace= FLastIndex= FLastItemSpace= Size= MinimumBlockSize= MaximumBlockSize= Item= Start= Count=SYNCOBJS.Failed to create OS basic event with name "%s"syncobjs.serreventcreatefailed -geometry-titlex-terminal-emulatorxtermatermwtermrxvtxfce4-terminalPROCESS!Cannot execute empty command-lineprocess.snocommandlineExecutable not found: "%s"process.serrnosuchprogram#Could not detect X-Terminal programprocess.serrnoterminalprogramFailed to Fork processprocess.serrcannotforkFailed to create pipesprocess.serrcannotcreatepipesDESKTOP_SESSIONkdekonsolegnomegnome-terminal windowmakeratermwtermxfcexfce4-terminalPATH-e-title%dx%d -geometry+%d+%dPATH /dev/nullCannot seek on pipesFailed to create pipe./proc/self/fd/OKButton CancelButton CloseButton HelpButtonMiscBevel WARNING: N.Destroy with LCLRefCount>0. Hint: Maybe the component is processing an event?3TLCLReferenceComponent: Circular reference creation.TLCLHandleComponent: Reference creation failed< BODYHTML text/html>IndexOfCachedFormatID: Internal Error: invalid FormatID 0 for &Unable to get clipboard ownership for TClipboard.EndUpdate2TClipboard.GetFormats: Index out of bounds: Index= Count=default\n btn_arrowrightdialog_warning dialog_errordialog_informationdialog_confirmation dialog_shieldCUSTAPP#Invalid option at position %d: "%s"custapp.serrinvalidoption4Option at position %d does not allow an argument: %scustapp.serrnooptionallowed,Option at position %d needs an argument : %scustapp.serroptionneededeNo single instance provider class set! Include a single-instance class unit such as advsingleinstance3Error formatting message "%s" with %d arguments: %s:::=  )TCustomActionList.AddAction already addedStandardHelpManager=nilHelp not found_?LzLiliIL8TCustomImageList.CreateImagesFromRawImage Create bitmapsBM/*PLiLzTCustomImageList.AddMasked Bitmap BitmapAdv?X@Invalid BitmapAdv signature.AResolutionWidths not sorted.No brush image specified Not available8EGr??AClearDeleteDestroyReferenceDrawInsertMoveReplace0[WARNING] %s called without reference for %s(%s)-[WARNING] %s called without handle for %s(%s)$\.LeftTopRightBottomCountItem_.[,]%s.%sCountItem%d(null)(0-[WARNING] %s called without handle for %s(%s)Strings  insert index  out of bounds TTextStrings.EndUpdateVCL compatibility property BevelInner BevelOuter BevelEdgesMarginsHRemoved in 0.9.27. It was an old workaround which is not needed anymore. UseOnChange AlignmentWordWrapERemoved in 0.9.29. It should not be allowed to set the State directlyState@Removed in 0.9.29. Grayed state is not supported by TRadioButton AllowGrayedVCL compatibility propertyStyleCommon ControlsdefaultCaptionTextVCL compatibility propertyVerticalAlignment ExplicitWidth ShowCaptionParentBackground BevelEdges BevelKindVCL compatibility propertyCtl3DVCL compatibility propertyFontTabOrderTabStop UseSystemFont\Was removed in Laz 0.9.31 due to incompatibilities with OnChange, which does the same thing. OnPageChanged WidthType ThumbLength BevelInner MultiSelectlibgtk-x11-2.0.solibgtk-x11-2.0.so.0gtk_status_icon_get_typegtk_status_icon_newgtk_status_icon_new_from_pixbufgtk_status_icon_new_from_filegtk_status_icon_new_from_stock"gtk_status_icon_new_from_icon_namegtk_status_icon_set_from_pixbufgtk_status_icon_set_from_filegtk_status_icon_set_from_stock"gtk_status_icon_set_from_icon_name gtk_status_icon_get_storage_typegtk_status_icon_get_pixbufgtk_status_icon_get_stockgtk_status_icon_get_icon_namegtk_status_icon_get_sizegtk_status_icon_set_screengtk_status_icon_get_screengtk_status_icon_set_tooltipgtk_status_icon_set_visiblegtk_status_icon_get_visiblegtk_status_icon_set_blinkinggtk_status_icon_get_blinkinggtk_status_icon_is_embeddedgtk_status_icon_position_menugtk_status_icon_get_geometrygtk_scale_button_get_typegtk_scale_button_newgtk_scale_button_set_iconsgtk_scale_button_get_valuegtk_scale_button_set_valuegtk_scale_button_get_adjustmentgtk_scale_button_set_adjustmentgtk_volume_button_get_typegtk_volume_button_newgtk_text_mark_new"gtk_text_iter_forward_visible_line#gtk_text_iter_backward_visible_line#gtk_text_iter_forward_visible_lines$gtk_text_iter_backward_visible_lines%.2x://@/G/?#...:@filefile:///DialogsPreviewFileControlNone(%dx%d)|*FPictureGroupBox FImageCtrl MS Sans Serif[DeliverMessage] Target = nilexpose-eventdestroy (Bitmap:$%p W:%d H:%d D:%d) (Pixmap:$%p W:%d H:%d D:%d) (Pixbuf:$%p W:%d H:%d C:%d)Misc,eT> MS Sans Serif±,/*-+√ x²%1/x=«CMPMSMRMCokx0MP?Y@0123456789_./*-+QS%R=CObsoleted propertyReadOnly SetZPositionhavesavedcursorsavedcursordeactivate?/TGtk2MemoStrings.Create Unspecified Text widget)TGtk2MemoStrings.Create Unspecified owner  GetItemIndex SelectItemSetColor SetItemIndexSetSelectionModeSetStylelclcustomlistboxstyle SetTopIndexSetFonttextLISTITEMSchanged GetIndexAtXY GetSelCount GetSelected GetStringsTGtk2WSCustomListBox.GetStringsclickedSetTextGtk2WS_MemoChangedGtk2WS_MemoCutToClipGtk2WS_MemoCopyToClipGtk2WS_MemoPasteFromCliplcl-memo-paste-from-clipinsert-textcut-clipboardcopy-clipboardpaste-clipboardpopulate-popup SetSelStart SetSelLength SetWantTabs SetWordWrap SetScrollBars SetReadOnly SetSelText GetSelStart GetSelLength GetCaretPos SetCaretPoskey_press_eventgtk-entry-select-on-focus SetEchoModeSetPasswordChar??CutCopyPasteUndoLCLListwidgetinfopopup-shown-compat popup-shown7Gtk2WSCustomComboBox GtkChangedCB: LCLIndex unassigned!button_press_eventgrab-focusshowselection-donenotifyMenubutton-sensitivitypopup-shownmax-lengthlcl-groupbox-min-widthlcl-button-stop-clickedinner-borderclickedbutton-press-eventsize-allocatebutton SetDefault SetShortcutchange-valuebutton-release-event SetAlignmentSetStaticBorderStylegrab_focus OsScrollbar4WARNING: liboverlay_scrollbar is active for control=~. Set environment option LIBOVERLAY_SCROLLBAR=0 before starting this application, otherwise scrollbars will not work properly.value-changedchange-valuebutton-press-eventbutton-release-eventscroll-event SetBiDiModeGetTextSetBorderStyleevent Invalidate SetBounds?openboxSetChildZPositionSetChildZPosition (child) SetCursorSetFontSetPosSetSizeSetColorSetText3[WARNING] Obsolete call to TGTKOBject.SetLabel for TabLabelTabMenuLabelSetShapePaintToRepaintchangedinconsistentactivatableCHECKBTNStoggledtextLISTITEMSchanged10 10 2 1 c None. c #000000 ....... ....... . . ....... . ....... . . ... . . . . ....... 10 10 2 1 c None. c #000000 .. .. ... ... ...... .... .... ...... ... ... .. .. 10 10 2 1 c None. c #000000 ...... ...... button radiobutton checkbuttonstatubararrowtoolbarpanednotebooktooltiptreeview cell_evenexpander-sizeindicator-sizegtk-okgtk-cancelgtk-yesgtk-nogtk-helpgtk-stopgtk-closegtk-applygtk-deletegtk-refreshgtk-opengtk-savegtk-dialog-authenticationgtk-dialog-warninggtk-dialog-errorgtk-dialog-infogtk-dialog-questiongtk-button-imageslcl-images-change-callbacknotify::gtk-button-imagesgtk-menu-imagesnotify::gtk-menu-imagesbuttonMisc@( ?A gzFixedCells gzFixedCols gzFixedRowsgzNormal gzInvalidgz-error[], /name/value /size/value /color/value /style/valuedefault clWindowText3TCustomGrid.SetRawColWidths with Range Error: ACol= , Cols.Count=*Use Columns property to add/remove columns9@| @ FixedRows<0 FixedCols<0sortascsortdesc ColWidths RowHeightsWARNING: unpaired Unlock EditorFjgrid/design/columns/columnsenabled columncountcolumn /index/value /width/value/minsize/value/maxsize/value/alignment/value /layout/value/buttonstyle/value /color/value/valuechecked/value/valueunchecked/value/picklist/value/sizepriority/value/font/title/caption/value /title/font/title/alignment/value/title/color/value/title/layout/value grid/versiongrid/saveoptions/creategrid/design/columncountgrid/design/rowcountgrid/design/fixedcolsgrid/design/fixedrowsgrid/design/defaultcolwidthgrid/design/isdefaultcolwidthgrid/design/defaultrowheightgrid/design/isdefaultrowheightgrid/design/colorgrid/design/columns/columngrid/design/columns/columncount/index/widthgrid/design/rows/rowcountgrid/design/rows/row/heightgrid/saveoptions/positiongrid/position/topleftcolgrid/position/topleftrowgrid/position/colgrid/position/rowgrid/position/selection/leftgrid/position/selection/topgrid/position/selection/rightgrid/position/selection/bottomgrid/design/options/goFixedVertLine/valuegoFixedHorzLine/valuegoVertLine/valuegoHorzLine/valuegoRangeSelect/valuegoDrawFocusSelected/valuegoRowSizing/valuegoColSizing/valuegoRowMoving/valuegoColMoving/valuegoEditing/valuegoAutoAddRows/value goTabs/valuegoRowSelect/valuegoAlwaysShowEditor/valuegoThumbTracking/valuegoColSpanning/valuegoRelaxedRowSelect/valuegoDblClickAutoSize/valuegoSmoothScroll/value#goAutoAddRowsSkipContentCheck/valuegoRowHighlight/valuegoScrollToLastCol/valuegoScrollToLastRow/value0/font/name/valuetitle /title/font/name/valuetitle/layout/value"grid/design/columns/columnsenabledclWindowgrid/design/rows/rowcountrowgoFixedVertLinegoFixedHorzLine goVertLine goHorzLine goRangeSelectgoDrawFocusSelected goRowSizing goColSizing goRowMoving goColMoving goEditing goAutoAddRows goRowSelectgoTabsgoAlwaysShowEditorgoThumbTracking goColSpanninggoRelaxedRowSelectgoDblClickAutoSizegoAutoAddRowsSkipContentCheckgoRowHighlightgoSmoothScrollgoScrollToLastRowgoScrollToLastCol/value ButtonEditor... StringEditorPickListEditorButtonTextEditorCan not add StringCan not add ObjectCan not delete value.Can not insert value.W   


<>"&Cellsgrid/saveoptions/contentgrid/content/cells/cellcountgrid/content/cells/cell/column/row/text AdditionalCaptionTitle1 GridColumnIndex out of rangeToIndex out of rangeFromIndex out of rangeWithIndex out of range&Property streamed in by older compilerVisibleRowCountVisibleColCount Additional1TCustomPairSplitter.GetSides: Index out of bounds-TCustomPairSplitter.AddSide no free side leftSetGlyph SetLayout SetMargin SetSpacingSetText??state-changed GetDateTimeHitTest SetDateTimeyyyymmddSetDisplaySettings switch-pagelcl_manual_page_switchswitch-pageswitch_pagelcl_ttabcontrolchange-valuebutton-press-eventbutton-release-eventscroll-eventTabImageTabCloseBtnTabLabelTabMenuLabel SetPageIndexSetFontShowHideTListColumnlcl_gtkwidget_in_updatepixbufSetNeedDefaultColumnLCL_DEFAULT_COLUMNtoggledchangedtoggle-cursor-rowselection-changedtoggle-cursor-itemrow-changedrow-insertedrow-deleted ColumnDeleteColumnGetWidth ColumnInsertclicked ColumnMoveColumnSetAlignmentxalignColumnSetAutoSizeColumnSetCaptionColumnSetImageColumnSetMaxWidthColumnSetMinWidthColumnSetWidthColumnSetVisibleVisible ItemDeleteItemDisplayRect ItemExchangeItemMove ItemGetState ItemInsertItemSetChecked ItemSetImage ItemSetState ItemSetTextItemShowItemGetPosition ItemUpdatelcllistviewstylewidgetinfo BeginUpdate EndUpdateGetBoundingRect GetDropTarget GetFocused GetHoverTime GetItemAt GetSelCount GetSelection GetTopItem GetViewOriginGetVisibleRowCount SelectAll SetAllocBySetColorSetDefaultItemHeightSetHotTrackStyles SetImageList SetItemsCount SetProperty SetProperties SetScrollBarsSetSort SetViewOrigin SetViewStylevalue_changed ApplyChanges GetPosition SetPosition%d from [%d-%d] (%%p%%%%)ProgressStyletimeoutTGtk2WSProgressBar.ApplyChangesTGtk2WSProgressBar.SetPositionSetStyle6TGtkWidgetSet.StatusBarPanelUpdate Index out of bounds SetSizeGripFileDetailLabelfilterLCLFilterMenuLCLIsFilterMenuItemLCLIsHistoryMenuItemhmLCLHistoryHBoxLCLHistoryPullDownactivateLCLHistoryMenuLCLHistoryListLCLPreviewFixedgtk-helpclickedselection-changed/responsenotifygtk-opengtk-savegtk-cancelgtk-color-palettegtk_color_selection_palette_to_stringdestroydelete-eventkey-press-eventkey-release-eventrealizewidgetinfoError: _NET_SYSTEM_TRAY_OPCODE_NET_SYSTEM_TRAY_Shas-tooltipactivatepopup-menubutton-press-eventbutton-release-eventquery-tooltiprealizemotion-notify-eventmutterlclhintrestorelcl_nonmodal_over_modaleventdisableaccurateframeSetIcon SetAlphaBlendo@?SetFormBorderStyle SetFormStyleSetShowInTaskbarSetBorderIconsscroll_areaSetRealPopupParentScrollBarchange-valuevalue-changedbutton-press-eventbutton-release-eventscroll-eventSetColorlclhintwindow toggledactivate-toggle-spacingbutton-press-eventselectdeselecttoggle-size-requestsize-request!TGtkWidgetSet.AttachMenu Handle=0-TGtkWidgetSet.AttachMenu ParentMenuWidget=nilContainerMenu SetCaption SetShortCut SetVisibleSetCheck SetEnableSetRightJustifyUpdateMenuIconMainMenu without formForm already has a MainMenudeactivate GetSelStart GetSelLengthGetValue., SetSelStart SetSelLength SetReadOnlySetEditorEnabled UpdateControl?Y@gtk-entry-select-on-focusapp--.pngpng LAZUSEAPPINDNO7APPIND Debug : User choosing to use Traditional SysTray0APPIND Debug : Default is to try an AppIndicatorlibappindicator3.so.1OAPPIND Debug : Failed to load Unity AppIndicator, will try Ayatana AppIndicatorlibayatana-appindicator3.so.1eAPPIND Debug : Failed to load Ayatana, install an AppIndicator or maybe Tradional SysTray will work ?app_indicator_get_typeapp_indicator_newapp_indicator_new_with_pathapp_indicator_set_status app_indicator_set_attention_iconapp_indicator_set_menuapp_indicator_set_iconapp_indicator_set_label!app_indicator_set_icon_theme_path app_indicator_set_ordering_indexapp_indicator_get_idapp_indicator_get_categoryapp_indicator_get_statusapp_indicator_get_icon!app_indicator_get_icon_theme_path app_indicator_get_attention_iconapp_indicator_get_menuapp_indicator_get_labelapp_indicator_get_label_guide app_indicator_get_ordering_index*APPIND Debug : An AppIndicator has loaded /tmp/appindicators-USER/VCL compatibility property MaxLengthaabbracronymaddressappletareabbasebasefontbdobig blockquotebodybrbuttoncaptioncentercitecodecolcolgroupdddeldfndirdivdldtemfieldsetfontformframeframeseth1h2h3h4h5h6headhrhtmliiframeimginputinsisindexkbdlabellegendlilinkmapmenumetanoframesnoscriptobjectoloptgroupoptionpparampreqssampscriptselectsmallspanstrikestrongstylesubsuptabletbodytdtextareatfootththeadtitletrttuulvartextunknownabbralinkaccept-charsetaccept accesskeyactionalignaltarchiveaxis backgroundbgcolorborder cellpadding cellspacingcharcharoffcharsetcheckedciteclassclassidclearcodecodebasecodetypecolorcolscolspancompactcontentcoordsdatadatetimedeclaredeferdirdisabledenctypefaceforframe frameborderheadersheighthrefhreflanghspace http-equividismaplabellanglinklongdesc marginheight marginwidth maxlengthmediamethodmultiplenamenohrefnoresizenoshadenowrapobjectonbluronchangeonclick ondblclickonfocus onkeydown onkeypressonkeyuponload onmousedown onmousemove onmouseout onmouseover onmouseuponresetonselectonsubmitonunloadprofilepromptreadonlyrelrevrowsrowspanrulesschemescope scrollingselectedshapesizespansrcstandbystartstylesummarytabindextargettexttitletypeusemapvalignvalue valuetypeversionvlinkvspacewidthBlackSilverGrayWhiteMaroonRedPurpleFuchsiaGreenLimeOliveYellowNavyBlueTealAquaLTRRTLleftcenterrightjustifychartopmiddlebottombaselinevoidabovebelowhsidesvsideslhsrhsboxbordernonegroupsrowscolsalldatarefobjectdefaultrectcirclepolytextpasswordcheckboxradiosubmitresetfilehiddenimagebuttonsubmitresetbutton<MuNuPiXi"ege>gt"dleolineomega"opluspound 2prime"radicraquo# rceil rdquo rsquo sbquosigmaszligthetathorntildetimes!"tradeucircupsihAacuteAgraveAtildeCcedil !DaggerEacuteEgraveIacuteIgraveLambdaNtildeOacuteOgraveOslashOtilde`ScaronUacuteUgraveYacuteaacuteagraveatildebrvbarccedilcurren daggerdivideeacuteegrave"forallfrac12frac14frac34&ehearts &hellipiacuteigraveiquestlambda# lfloor"lowast 9lsaquomiddotntildeoacuteograveoslashotilde"otimes 0permilplusmn# rfloor :rsaquoascaronsigmaf&`spades"4there4 thinspuacuteugrave!weierpyacute?EpsilonOmicronUpsilon!5alefsymepsilonomicronupsilon thetasym[,]%3d: , "",  $<The (hexadecimal) sequence %s is not a valid UTF8 codepoint.fMaskEdit Internal Error Range check error trying to access FMask[%d]. Index should be between 1 and %dQMaskEdit Internal Error. Found uninitialized MaskType "Char_Invalid" at index %d\!><<[BIllegal value in EditMask: sets can only contain ASCII characters.KIllegal value for EditMask: you can not have two consecutive "-"'s in a set]3Illegal value for EditMask: a set can not be empty..Illegal value for EditMask: set is not closed.,.(~~~~ i%Used in a previous version of LazarusTextHintFontColorTextHintFontStyle  AdditionalCONFIGLeftTopRightBottomTrueFalse not supportedCount[],Invalid node index in XPath descriptor "%s".,/-$$TFileStateCache.Unlock.../$http://www.w3.org/XML/1998/namespacehttp://www.w3.org/2000/xmlns/&<>"' in Node.InsertBeforeNode.ReplaceChildNode.RemoveChild(Cloning/importing of %s is not supportedNode.CheckReadOnlyxmlnsNodeWC.InsertBefore#NodeWC.InsertBefore (cycle in tree)NodeWC.RemoveChild*NamedNodeMap.SetNamedItemNamedNodeMap.RemoveNamedItemNamedNodeMap.RemoveNamedItemNSNamedNodeMap.SetNamedItemNSCharacterData.SubstringDataCharacterData.InsertDataCharacterData.DeleteData#document-fragmentxmlXML1.02.0Core!Implementation.CreateDocumentTypeImplementation.CreateDocument #documentDocument.InsertBeforeDOMDocument.CreateElementDOMDocument.CreateCDATASection'DOMDocument.CreateProcessingInstructionDOMDocument.CreateAttribute!DOMDocument.CreateEntityReferenceDocument.CreateAttributeNSDocument.CreateElementNS'XMLDocument.CreateProcessingInstruction!XMLDocument.CreateEntityReference1.1Node.SetPrefix:Element.SetAttributeNSElement.RemoveAttributeNode#textText.SplitText#comment#cdata-section%1.01.1CDATAIDIDREFIDREFSENTITYENTITIESNMTOKENNMTOKENSNOTATION ISO-8859-1 ISO_8859-1latin1 iso-ir-100l1IBM819CP819 csISOLatin1 ISO8859-1UTF-8UTF8'The specified URI could not be resolvedDOMParser.ParseWithContext-Decoder error: input byte count out of bounds.Decoder error: output char count out of bounds!Invalid character in input stream No input source specifiedExpected "%1s"In '%s' (line %d pos %d): %sExceeded character count limitExpected whitespace Expected "%s"Expected single or double quoteRoot element is missing1.1ONames of entities, notations and processing instructions may not contain colons'Bad QName syntax, local part is missingWhitespace is not allowed here#Name starts with invalid character Invalid character reference/Character '<' is not allowed in attribute valueLiteral has no closing quote+Entity '%s%s' recursively references itself&Unable to resolve external entity '%s'"Reference to undefined entity '%s' Undefined entity '%s' referencedStandalone constraint violation!Reference to unparsed entity '%s';External entity reference is not allowed in attribute value*Undefined parameter entity '%s' referenced0PE reference not allowed here in internal subset-- Unterminated commentxml.'xml' is a reserved word; it must be lowercase#XML declaration is not allowed here=Processing instructions are not allowed within EMPTY elements#Unterminated processing instructionversionIllegal version number/XML 1.0 document cannot invoke XML 1.1 entitiesencodingIllegal encoding nameEncoding '%s' is not supported standaloneyesno:Only "yes" or "no" are permitted as values of "standalone"?>&Markup declaration is not allowed here.Document type is prohibited by parser settingsDOCTYPE%Unable to resolve external DTD subset Expected "="*Parameter entities must be properly nestedStandalone constriant violation Expected pipe or comma delimiter%Duplicate declaration of element '%s'EMPTYANY#PCDATA Duplicate token in mixed sectionInvalid content specificationExpected external or public ID3Duplicate token in enumerated attribute declaration4Only one attribute of type ID is allowed per element:Only one attribute of type NOTATION is allowed per element5NOTATION attributes are not allowed on EMPTY elements1Duplicate token in NOTATION attribute declarationIllegal attribute type for '%s' #REQUIRED#IMPLIED#FIXED3An attribute of type ID cannot have a default value1Default value for attribute '%s' has wrong syntax$Expected entity value or external IDNDATA]]>7Conditional sections are not allowed in internal subsetINCLUDEIGNOREExpected "INCLUDE" or "IGNORE" ' is not allowed in text(References are illegal in EMPTY elements"Only one top-level element allowedUsing undeclared element '%s'+Element '%s' is not allowed in this context-Element '%s' is missing required sub-elements-Unmatching element end tag (expected "")/Using undeclared attribute '%s' on element '%s'Duplicate attribute9Value of attribute '%s' does not match its #FIXED defaultAttribute '%s' type mismatch&The ID '%s' does not match any element2Required attribute '%s' of element '%s' is missing%Illegal usage of reserved prefix '%s',Illegal usage of reserved namespace URI '%s'Illegal undefining of namespacexmlnsUnbound prefix "%s"Duplicate prefixed attributeSYSTEMPUBLICIllegal Public ID literalThe ID '%s' is not unique$Root element name does not match DTD Missing DTDNotation '%s' is not declared5Character data is not allowed in element-only content/Character data is not allowed in EMPTY elements.Comments are not allowed within EMPTY elements6CDATA sections are not allowed in element-only content$Duplicate notation declaration: '%s'stream:`0123456789ABCDEF "'&<&#x;Null not allowed here>]]]]>$ xmlns="/> 8@@@pA[HM ˿[HM ??LH>gP??????? ???%.*d[F K@@OBA@@llF?UUUUUU?)QΠE>AMPM#yyyy"-"mm"-"dd"T"hh":"nn":"ss"."zzzZInvalid ISO timezone string SynaSer 7.5.4COM /DEV/TTYS@@ /dev/ttyS   OKERROR NO CARRIERBUSY NO DIALTONECONNECTCommunication error %d: %sPort owned by other processInstance already in useWrong parameter at callInstance not yet connectedNo device answer detectedMaximal buffer length exceededTimeout during operationReading of data failedReceive framing errorReceive Overrun ErrorReceive Queue overflowReceive Parity ErrorTranceive Queue is full/dev//var/lock/LCK..  chmod a+rw  /var/lock /dev/ttyS*,SunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecJanFebMarAprMayJunJulAugSepOctNovDecjanfvmaravrmaijunjulaosepoctnovdcjanfevmaravrmaijunjulaousepoctnovdecJanFebMarAprMaiJunJulAugSepOktNovDezJanFebMrAprMaiJunJulAugSepOktNovDezLednoBeDubKvenecSrpZjLisPro+-%.2d%.2dyyyy hh":"nn":"ss%s, %d %s %s %s hh":"nn":"ss %s %2d %s yymmdd hhnnsshh":"nn":"ss yyyy  %s %s %d %s-0000NZDTIDLENZSTNZTEADTGSTJSTCCTWADTWASTZP6ZP5ZP4BTEETMESTMESZSSTFSTCESTCETFWTMETMEWTSWTUTUTCGMTWETWATBSTATADTASTEDTESTCDTCSTMDTMSTPDTPSTYDTYSTHDTAHSTCATHSTEASTNTIDLW: # - DST@@.A@$@ +#$ +''";=<>()10http80://HTTPS443FTP21@/]? localhost  -- ---- :0IPv6IPv40.0.0.0@@   ,"Synapse TCP/IP Socket error %d: %s 127.0.0.1Interrupted system callBad file numberPermission denied Bad addressInvalid argumentToo many open filesOperation would blockOperation now in progressOperation already in progressSocket operation on nonsocketDestination address requiredMessage too longProtocol wrong type for SocketProtocol not availableProtocol not supportedSocket not supported!Operation not supported on SocketProtocol family not supportedAddress family not supportedAddress already in useCan't assign requested addressNetwork is downNetwork is unreachable#Network dropped connection on reset Software caused connection abortConnection reset by peerNo Buffer space availableSocket is already connectedSocket is not connected Can't send after Socket shutdown Too many references:can't spliceConnection timed outConnection refused!Too many levels of symbolic linksFile name is too long Host is downNo route to hostDirectory is not emptyToo many processesToo many usersDisk quota exceededStale NFS file handle!Too many levels of remote in pathNetwork subsystem is unusable+Winsock DLL cannot support this applicationWinsock not initialized DisconnectHost not found"Non authoritative - host not foundNon recoverable error,Valid name, no data record of requested typeOther Winsock error ()10800.0.0.1 %d.%d.%d.%d[]CONNECT  HTTP/1.0Proxy-Authorization: Basic HTTP/ SSL/TLS support is not compiled!Without SSL supportssl_none"Error loading Socket interface ()!23SYNAPSE0 Position based highlighterText\Foreground ColorBackground ColorBoldItalic UnderlineDefault ForegroundDefault BackgroundFALSE01 Background ForegroundStyle StyleMaskxx  CaretPos= Begin= End= Mode=?,[] Courier NewDejaVu Sans Monosource code editor<***** SYNEDIT: Fixing auto-undo-block FUndoBlockAtPaintLock= FPaintLock=  ">> TCustomSynEdit.MouseDown Mouse= Shift= Caret= , BlockBegin= BlockEnd= StateFlags=*<< TCustomSynEdit.MouseDown outside client(<< TCustomSynEdit.MouseDown StateFlags= >> TCustomSynEdit.MouseUp Mouse=.Warning: SynEdit.Paint called during PaintLockSynEditScrollHintWndline %dSetTopline inside paint*Cannot change TextBuffer while paintlocked   OnChangeStartXEndXShowCodeFoldingCodeFoldingWidth ShowChangesShowLineNumbersShowOnlyLineNumbersMultiplesOf ZeroStartMarkupInfoLineNumberMarkupInfoModifiedLineMarkupInfoCodeFoldingTree LeadingZeros DigitCountAllowSkipGutterSeparatorDraw GutterPartsCFDividerDrawLevelSynMouseEvents- {Gz??@@DialogsjTPrinter is an abstract base class. Please use a printer implementation like the package printers4lazarus.*Unable to set default printer!Printer "%s" doesn't exist.Canvas not allowed in Raw ModeCanvas Class not defined.Printer is not printingPrinter is printingPrinter is in Raw ModePrinter is not in Raw ModeNo printers found.Printer index out of range!No printers defined!Warning: bin %s is not allowedLetterA4LegalR@Paper "%s" not supported!(The paper "%s" has no defined rectangle!*TMediaSize.Create, aOwner must be defined!LCLCustomPaperNisanIyarSivanTammuzAvElulTishriHeshvanKislevTevetShevatAdarAdar 2NisIyaSivTamAvEluTisHesKisTevSheAdaAd2 Invalid year Invalid day Invalid monthS:@CD#Date invalid due to calendar change#Negative julian dates not supported?3333333@@I@G?ffffff?@@Out of range of the algorithm( H+e?>}?kY9?`d@d@@, PS@V W@\ }+mFB?|!?鲘@E>cj@hO@6Tò@>  @}4|@vۅ@Ss@Ed~?@$7@ ګ@@ӟHV̟@?,eX? @MbXΤ@(\B%:)Pj/?[bb|c?@*:@Ra)~@3;@z1Š@f^U?fqr?P 趄? $(~ò@"u @qSly?>[I#MYـ?"u?oםɊ?@/$\ȣ?L?ϸp $ ?@N%k#?ꪎ@]wb֋?Y-s?2ʱ?@@X@@L7A`вHm~?jP{?&?}@cj@Eb(u)$?Xyc?ٹò@RJ @ lh'Y`?~'!@O@hq0'h?`kD?u?kuP@1i@@2(60[BhfO33?ޯ|y*]UQM?(vQ@3|@+ew79??_tƒ?@MbXك@)\(\@zG @@sh|O@` @@ @@ @@@@@$@R@@=FI?־F.E$?8@AN?333333 @?po# 1? l? ӵs.?ё\cx@pZ^>@j%$߶?|#9?Afj@n?@"퐬 _?3Xq?"l'3?.!u@8FU@L/?bMV?c8?I.!@U@@ռ?$.H?F_@i&)?ޯ|y? Rr>@? Rr>@BzՔ?Invalid TMoonPhase?ܵ|p>??&kC4?S%:?9ߡ('?bbqm?\*P?ek}?KTo l?7̒?nSr3?dp:?5Fj?e B?7̒?#GGŧ?5Fj?#GGŧ?@kCŠdF ^ׯ?%ǝ?vۅ:?&kC4?+j0 GĔ?LH?ё\C?8m4?,eX?e B?#GGŧ?7̒?~W[Ɏ?,eX?{G?\*P?ۧ167',?c 8? m9?na?ioT?bE a?>=eYJ?(\@Q?HzG@ӝ'?{Gz@7@(\µ@'G`@QQ@'G`@q= ףp@乾7@ףp= #@׃I @ ףp= ך@j@{Gz@ y@p= ף0@w~~?Q@V6o?RQ@ѕ@\(\@@ffffffƥ@2@47d?D!T?qH/j??U̯?h?5Fj?Ɋ?C;Y!?J>v()?:ZՒr0?7̒?+,?<@No TDateTime possible@@@@RQ@@QQ?I +@ @ԋ)(m#^=Q?q :@Hطo@?jrj|#9?$~@(K@=1.il7?ho@QC@aѾ*]UQM?-1N@;u@mC@#GGŧ? ףp= ף?)*?J +n@Ev;@8C?v@ ƪ~@@@@v@@O`r??&Sq= ףp=??No rises or sets calculableC3O)~@@QQ?o_Q?ףp= ף?$~:?S㥛 ?0*Dذ?1%?>W[?fa4? ףp= ף?@ǘ?e`TR'? QI? QI? QI?,eX?+? QI?vq -?( ?ꕲ q?DioT?8EGr@ QI?;On?,Ԛ?S㥛?DJY?DioT?@ǘ? 0*?;On?):H?L F%u?ϸp $ ?гYڊ?2ı.n?Q?^K=U?L@$\y@ԿUUUUUU?@@Invalid chinese date@@,BA%s : %sProvider support not available_BCDBoolean@ TDateTimeLargeIntIntegerVariantField()'BytesFloatStringTF((  True;FalsecParams; DatabaseNameUserNamePassword$&x8not implemented in StrToBCDin IntegerToBCD@ in BCDAddin BCDSubtractin NormalizeBCDin BCDMultiplyDivision by zero in BCDDivideE%.*dE+%.*d  ()-(- in FormatBCD MASKUTILS TMaskUtils.ValidateInput failed.maskutils.exvalidationfailed;1; DBCONST2Operation cannot be performed on an active datasetdbconst.sactivedataset!Bad fieldtype for parameter "%s".dbconst.sbadparamfieldtypeAutoInc Fields are read-onlydbconst.scantsetautoincfields5Operation cannot be performed on a connected databasedbconst.sconnectedDataset is read-only.dbconst.sdatasetreadonly!Dataset already registered : "%s"dbconst.sdatasetregisteredDuplicate fieldname : "%s"dbconst.sduplicatefieldname7Cannot assign transaction while old transaction active!dbconst.serrasstransactionColumn "%s" not found.dbconst.serrcolumnnotfoundDatabase not assigned!dbconst.serrdatabasenassigned+Invalid operation: Not attached to databasedbconst.serrnodatabaseavailable5Database connect string (DatabaseName) not filled in!dbconst.serrnodatabasename"Cannot open a non-select statementdbconst.serrnoselectstatementSQL statement not setdbconst.serrnostatementTransaction already activedbconst.serrtransalreadyactiveTransaction not setdbconst.serrtransactionnset5Index result for "%s" too long, >100 characters (%d).dbconst.serrindexresulttoolong;Field "%s" has an invalid field type (%s) to base index on. dbconst.serrindexbasedoninvfield"Index based on unknown field "%s". dbconst.serrindexbasedonunkfield!Transaction of connection not setdbconst.serrconntransactionnset"%s" is not a TSQLConnectiondbconst.serrnotasqlconnection"%s" is not a TCustomSQLQuerydbconst.serrnotasqlquery8Operation cannot be performed on an inactive transactiondbconst.stransnotactive6Operation cannot be performed on an active transactiondbconst.stransactiveField not found : "%s"dbconst.sfieldnotfound4Operation cannot be performed on an inactive datasetdbconst.sinactivedataset("%s" are not valid boolean displayvaluesdbconst.sinvaliddisplayvalues%s : invalid field kind : dbconst.sinvalidfieldkindInvalid bookmarkdbconst.sinvalidbookmarkInvalid field size : %ddbconst.sinvalidfieldsize)Invalid type conversion to %s in field %sdbconst.sinvalidtypeconversion'Field %s is required, but not supplied.dbconst.sneedfieldField needs a namedbconst.sneedfieldname%No dataset asssigned for field : "%s"dbconst.snodataset!No such dataset registered : "%s"dbconst.snodatasetregistered(No datasets are attached to the databasedbconst.snodatasets$Could not find the requested record.dbconst.snosuchrecord%No such transaction registered : "%s" dbconst.snotransactionregistered,No transactions are attached to the databasedbconst.snotransactions"%s" is not a valid booleandbconst.snotaboolean"%s" is not a valid floatdbconst.snotafloat"%s" is not a valid integerdbconst.snotaninteger9Operation cannot be performed on an disconnected databasedbconst.snotconnectedFOperation not allowed, dataset "%s" is not in an edit or insert state.dbconst.snoteditingParameter "%s" not founddbconst.sparameternotfound"%f is not between %f and %f for %sdbconst.srangeerror%f is not between %f and %f.dbconst.srangeerror2-Field %s cannot be modified, it is read-only.dbconst.sreadonlyfield%Transaction already registered : "%s"dbconst.stransactionregistered:Operation cannot be performed on an unidirectional datasetdbconst.sunidirectional-No field named "%s" was found in dataset "%s"dbconst.sunknownfieldUnknown field type : %sdbconst.sunknownfieldtype%Unknown fieldtype for parameter "%s".dbconst.sunknownparamfieldtype8The metadata is not available for this type of database.dbconst.smetadataunavailableThe record is deleted.dbconst.sdeletedrecordIndex '%s' not founddbconst.sindexnotfound&The number of parameters is incorrect. dbconst.sparametercountincorrect4Parameters of the type '%s' are not (yet) supported.dbconst.sunsupportedparameterInvalid value for field '%s'dbconst.sfieldvalueerror1Field '%s' cannot be a calculated or lookup fielddbconst.sinvalidcalctypeDuplicate name '%s' in %sdbconst.sduplicatename'%s is only possible if ParseSQL is Truedbconst.snoparsesql/Lookup information for field '%s' is incompletedbconst.slookupinfoerrorFieldtype %s is not supporteddbconst.sunsupportedfieldtype%PacketRecords has to be larger then 0dbconst.sinvpacketrecordsvalue2PacketRecords must be -1 if IndexFieldNames is set(dbconst.sinvpacketrecordsvaluefieldnames9PacketRecords must not be -1 on an unidirectional dataset,dbconst.sinvpacketrecordsvalueunidirectional/Searching in fields of type %s is not supporteddbconst.sinvalidsearchfieldtypeThe dataset is emptydbconst.sdatasetemptyThe field is nulldbconst.sfieldisnull<An error occurred while applying the updates in a record: %sdbconst.sonupdateerror=Applying updates is not supported by this TDataset descendentdbconst.sapplyrecnotsupporteddNo %s query specified and failed to generate one. (No fields for inclusion in where statement found)dbconst.snowherefieldscNo %s query specified and failed to generate one. (No fields for insert- or update-statement found)dbconst.snoupdatefields3Operation is not supported by this type of databasedbconst.snotsupported'Creation or dropping of database faileddbconst.sdbcreatedropfailed(The maximum amount of indexes is reacheddbconst.smaxindexes"The minimum amount of indexes is 1dbconst.sminindexes'More fields specified then really existdbconst.stoomanyfieldsField index out of rangedbconst.sfieldindexerrorCannot access index field '%s'dbconst.sindexfieldmissingNo index currently activedbconst.snofieldindexes0Field '%s' is not indexed and cannot be modifieddbconst.snotindexfieldUnknown connector type: "%s" dbconst.serrunknownconnectortype.Cannot create index "%s": No fields available.dbconst.snoindexfieldnamegiven(The data-stream format is not recognizeddbconst.sstreamnotrecognisedJThere is no TDatapacketReaderClass registered for this kind of data-stream dbconst.snoreaderclassregistered/Circular datasource references are not allowed.1dbconst.serrcirculardatasourcereferencenotallowedCommitting transactiondbconst.scommittingRolling back transactiondbconst.srollingback Commit and retaining transactiondbconst.scommitretaining"Rollback and retaining transactiondbconst.srollbackretainingMCan not create a dataset when there are no fielddefinitions or fields defineddbconst.serrnofieldsdefined)Must apply updates before refreshing data!dbconst.serrapplyupdbeforerefresh5Missing (compatible) underlying dataset, can not opendbconst.serrnodataset>For disconnected TSQLQuery instances, packetrecords must be -1%dbconst.serrdisconnectedpacketrecords5Implicit use of transactions does not allow rollback.dbconst.serrimplicitnorollback3Connection %s does not allow implicit transactions.!dbconst.serrnoimplicittransactionVError: attempt to implicitly start a transaction on Connection "%s", transaction "%s".#dbconst.serrimplicttransactionstart6Error: attempt to implicitly activate connection "%s".dbconst.serrimplicitconnect0Failed to apply record updates: %d rows updated. dbconst.serrfailedtoupdaterecord-Refresh SQL resulted in multiple records: %d.dbconst.serrrefreshnotsingleton)Refresh SQL resulted in empty result set.dbconst.serrrefreshemptyresult8No key field found to construct refresh SQL WHERE clause&dbconst.serrnokeyfieldforrefreshclause Failed to fetch returning result(dbconst.serrfailedtofetchreturningresultParameter "%s" value : "%s"dbconst.slogparamvalueField "%s" error: dbconst.sfielderrorInvalid variant valuedbconst.sinvalidvariantSynsock - Synapse Platform Independent Socket LayerRunning on Unix/Linux by FreePascal0.0.0.0 localhost::0 127.0.0.1::1 `@@@@@@@@@@>@@@?456789:;<=@@@@@@@ @@@@@@ !"#$%&'()*+,-./0123@@@@@@AABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=AABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+,=@`!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_BEGINENDTABLE@`!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_@+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.:::%$0:0@::0 .:::0x,hosts nameserverdomainsearchoptions LOCALDOMAIN resolv.conf Payload : .%d.%d.%d.%d.in-addr.arpaH0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpandots: protocolsnetworksservices/etc/XGraphYGraph AutoUpdateX AutoUpdateYChartUmg-MYmQW?TAChart ףp= ף?@ALogicalExtentV%s: Don't set LogicalExtent in OnExtentValidate handler - modify %s parameter instead. XGraphToImage1[%s.%s]: Image-graph scaling not yet initialized.חחA XImageToGraph YGraphToImage YImageToGraph'Obsolete, use BottomAxis.Invert insteadMirrorX$Obsolete, use Axis.TickColor instead AxisColor&Obsolete, use Font.Orientation insteadAngleMinObsolete, use Extent insteadMaxText "%s" is not foundPattern is empty\bPnot implemented yet: searching backwards multiple lines with regular expressions  inconsistencyBkSpTabEscEnterSpacePgUpPgDnEndHomeLeftUpRightDownInsDelShift+Ctrl+Alt+ecNoneecLeftecRightecUpecDown ecWordLeft ecWordRight ecWordEndLeftecWordEndRightecHalfWordLeftecHalfWordRightecSmartWordLeftecSmartWordRight ecLineStart ecLineEndecPageUp ecPageDown ecPageLeft ecPageRight ecPageTop ecPageBottom ecEditorTopecEditorBottomecGotoXYecLineTextStartecStickySelectionecStickySelectionColecStickySelectionLineecStickySelectionStop ecSelLeft ecSelRightecSelUp ecSelDown ecSelWordLeftecSelWordRightecSelWordEndLeftecSelWordEndRightecSelHalfWordLeftecSelHalfWordRightecSelSmartWordLeftecSelSmartWordRightecSelLineStart ecSelLineEnd ecSelPageUp ecSelPageDown ecSelPageLeftecSelPageRight ecSelPageTopecSelPageBottomecSelEditorTopecSelEditorBottom ecSelGotoXYecSelLineTextStart ecColSelLeft ecColSelRight ecColSelUp ecColSelDownecColSelWordLeftecColSelWordRightecColSelLineStartecColSelLineEndecColSelPageUpecColSelPageDownecColSelPageLeftecColSelPageRightecColSelPageTopecColSelPageBottomecColSelEditorTopecColSelEditorBottomecColSelLineTextStart ecSelectAllecDeleteLastChar ecDeleteCharecDeleteCharNoCrLf ecDeleteWordecDeleteLastWord ecDeleteBOL ecDeleteEOL ecDeleteLine ecClearAll ecLineBreak ecInsertLineecCharecImeStrecUndoecRedoecCutecCopyecPaste ecCopyAddecCutAddecCopyCurrentLineecCopyAddCurrentLineecCutCurrentLineecCutAddCurrentLine ecMoveLineUpecMoveLineDownecMoveSelectUpecMoveSelectDownecMoveSelectLeftecMoveSelectRightecDuplicateLineecDuplicateSelection ecScrollUp ecScrollDown ecScrollLeft ecScrollRight ecInsertModeecOverwriteMode ecToggleMode ecBlockIndentecBlockUnindentecTab ecShiftTabecMatchBracketecNormalSelectecColumnSelect ecLineSelectecBlockSetBegin ecBlockSetEndecBlockToggleHide ecBlockHide ecBlockShow ecBlockMove ecBlockCopy ecBlockDeleteecBlockGotoBeginecBlockGotoEndecAutoCompletion ecUserFirst ecGotoMarker0 ecGotoMarker1 ecGotoMarker2 ecGotoMarker3 ecGotoMarker4 ecGotoMarker5 ecGotoMarker6 ecGotoMarker7 ecGotoMarker8 ecGotoMarker9 ecSetMarker0 ecSetMarker1 ecSetMarker2 ecSetMarker3 ecSetMarker4 ecSetMarker5 ecSetMarker6 ecSetMarker7 ecSetMarker8 ecSetMarker9ecToggleMarker0ecToggleMarker1ecToggleMarker2ecToggleMarker3ecToggleMarker4ecToggleMarker5ecToggleMarker6ecToggleMarker7ecToggleMarker8ecToggleMarker9 EcFoldLevel1 EcFoldLevel2 EcFoldLevel3 EcFoldLevel4 EcFoldLevel5 EcFoldLevel6 EcFoldLevel7 EcFoldLevel8 EcFoldLevel9 EcFoldLevel0 EcFoldCurrentEcUnFoldCurrentEcToggleMarkupWordF ecUserDefined -  emcNoneemcStartSelectionsemcStartColumnSelectionsemcStartLineSelectionsemcStartLineSelectionsNoneEmpty emcSelectWord emcSelectLine emcSelectParaemcStartDragMoveemcPasteSelection emcMouseLinkemcContextMenuemcOnMainGutterClickemcCodeFoldCollapsemcCodeFoldExpandemcCodeFoldContextMenuemcSynEditCommandemcWheelScrollDownemcWheelScrollUpemcWheelVertScrollDownemcWheelVertScrollUpemcWheelHorizScrollDownemcWheelHorizScrollUpemcWheelZoomOutemcWheelZoomInemcWheelZoomNormemcStartSelectTokensemcStartSelectWordsemcStartSelectLinesemcOverViewGutterGotoMarkemcOverViewGutterScrollTo  'Selection needed byte adjustment Line= BytePos= Result=GTSynEditScreenCaretPainterInternal.BeginPaint Invalidate for psCleanOld,[]   Invalid Owner Invalid list1Bad Next phys pos in GetNextMarkupColAfterRowCol  wanted <  from  wanted > 2Bad Next logic pos in GetNextMarkupColAfterRowCol xxInvalid stringlist index %dNot allowe dto change ItemSizeX= Y= len= text=Y= Cnt=Invalid stringlist index %dInvalid   FPosY= FLen= FPosX= FText=""0@,$ ...[]fold format error T h H p P -Droping Foldnode / Already exists. Startline= LineCount=-FoldState loading removed data for foldtype: SynGutterMarks1SynGutterLineNumber1SynGutterChanges1SynGutterSeparator1SynGutterCodeFolding1SynLeftGutterPartList1SynRightGutterPartList1 not allowed () Application/X-Laz-SynEdit-TaggedMSDEVColumnSelectBorland IDE Block Type-Clipboard read operation failed, data corruptxx Duplicate-Droping Foldnode / Already exists. Startline= LineCount= Assertion failed.TaTgq[_|^ No Width from GetTextExtentPointWidth(%d) > tmMaxWidth+Over(%d)?.No Height from GetTextExtentPoint, tmHeight=%d<Height from GetTextExtentPoint to low Height=%d, tmHeight=%d%SynTextDrawer: Fallback on FontHeight SynTextDrawer: Fallback on Width'Failed to get GetTextExtentPoint for %s"Variable Overhang w=%d w2=%d w3=%d;Size diff to bi for fractioanl (greater 1) w=%d w2=%d w3=%dFont= Size= TheFontStock.CalcFontAdvance: 'SetBaseFont: 'Value' must be specified.1TheFontStock.SetStyle LCL interface lost the font-... (%d/%d): %4d %s %s%4d %s @-.?SynEditInternalImages@REGISTRY Invalid registry data type: "%s"registry.sinvalidregtypeFailed to create key: "%s"registry.sregcreatefailed!Failed to set data for value "%s"registry.sregsetdatafailed!Failed to get data for value "%s"registry.sreggetdatafailed5Registry data type not supported on this platform: %sregistry.serrtypenotsupportedreg.xmlHKEY_CLASSES_ROOTHKEY_CURRENT_USERHKEY_LOCAL_MACHINE HKEY_USERSHKEY_PERFORMANCE_DATAHKEY_CURRENT_CONFIG HKEY_DYN_DATAKey%d?/////\=\INIFILESCould not create directory "%s"inifiles.serrcouldnotcreatepathNFlags ifoStripComments or ifoStripInvalid must be set/unset in the constructor<Can only change StripComments or StripInvalid in constructor yyyy/mm/ddhh:nnhh:nn:sstruefalse,Options not supported, options must be empty ReadSectionValues not overridden> /\TypeKeyNameValueHKEY_CURRENT_USER$ in Node.InsertBeforeNode.ReplaceChildNode.RemoveChild(Cloning/importing of %s is not supportedNode.CheckReadOnlyxmlnsxml:baseNodeWC.InsertBefore#NodeWC.InsertBefore (cycle in tree)NodeWC.RemoveChild*NamedNodeMap.SetNamedItemNamedNodeMap.RemoveNamedItemNamedNodeMap.RemoveNamedItemNSNamedNodeMap.SetNamedItemNSCharacterData.SubstringDataCharacterData.InsertDataCharacterData.DeleteData#document-fragmentXML1.02.0Core!Implementation.CreateDocumentTypeImplementation.CreateDocument0Attempt to allocate node memory while destroying #documentDocument.InsertBeforeDOMDocument.CreateElementDOMDocument.CreateCDATASection'DOMDocument.CreateProcessingInstructionDOMDocument.CreateAttribute!DOMDocument.CreateEntityReferencexmlDocument.CreateAttributeNSDocument.CreateElementNSDOMDocument.SetXMLVersionDOMDocument.SetXMLStandalone'XMLDocument.CreateProcessingInstruction!XMLDocument.CreateEntityReference1.1XMLDocument.SetXMLVersionNode.SetPrefix:Element.SetAttributeNSElement.RemoveAttributeNode#textText.SplitText#comment#cdata-sectionDOMParser.ParseWithContext1.1^A-"acNEstream:&quot;&amp;&lt;&gt;&#x9;&#xA;&#xD;Illegal character]]]]><![CDATA[> High surrogate without low oneLow surrogate without high one$ xmlns="DP/></@P <![CDATA[ ]]><??><!----><?xml version="1.0 encoding=" standalone="yesnoutf-8<?xml-stylesheet type="" href=""?> <!DOCTYPE PUBLIC SYSTEM 1.01.1$http://www.w3.org/XML/1998/namespacehttp://www.w3.org/2000/xmlns/xmlxmlnsIn '%s' (line %d pos %d): %sExpecting end of elementInvalid node typeElement '%s' was not found.Element '%s' with namespace '%s' was not found%CDATAIDIDREFIDREFSENTITYENTITIESNMTOKENNMTOKENSNOTATION ISO-8859-1 ISO_8859-1latin1 iso-ir-100l1IBM819CP819 csISOLatin1 ISO8859-1-Decoder error: input byte count out of bounds.Decoder error: output char count out of bounds!Invalid character in input streamUTF-16BEUTF-16LEUTF-8UTF-16unicode No input source specifiedExpected "%1s"Exceeded character count limitExpected whitespace Expected "%s"Expected single or double quote'The specified URI could not be resolvedONames of entities, notations and processing instructions may not contain colons'Bad QName syntax, local part is missingWhitespace is not allowed here"Name starts with invalid characterInvalid character reference/Character '<' is not allowed in attribute valueLiteral has no closing quote+Entity '%s%s' recursively references itself&Unable to resolve external entity '%s'*Parameter entities must be properly nested"Reference to undefined entity '%s' Undefined entity '%s' referencedStandalone constraint violation!Reference to unparsed entity '%s';External entity reference is not allowed in attribute valueWParameter entity references cannot appear inside markup declarations in internal subset*Undefined parameter entity '%s' referenced-- Unterminated commentxml.'xml' is a reserved word; it must be lowercase#XML declaration is not allowed here#Unterminated processing instructionversionIllegal version number/XML 1.0 document cannot invoke XML 1.1 entitiesencodingIllegal encoding nameEncoding '%s' is not supported standaloneyesno:Only "yes" or "no" are permitted as values of "standalone"?>&Markup declaration is not allowed here.Document type is prohibited by parser settingsDOCTYPE%Unable to resolve external DTD subsetPUBLICSYSTEM Expected "=" Expected pipe or comma delimiter%Duplicate declaration of element '%s'EMPTYANY#PCDATA Duplicate token in mixed sectionInvalid content specificationExpected external or public ID$Duplicate notation declaration: '%s'3Duplicate token in enumerated attribute declaration4Only one attribute of type ID is allowed per element:Only one attribute of type NOTATION is allowed per element5NOTATION attributes are not allowed on EMPTY elements1Duplicate token in NOTATION attribute declarationIllegal attribute type for '%s' #REQUIRED#IMPLIED#FIXED3An attribute of type ID cannot have a default value1Default value for attribute '%s' has wrong syntax$Expected entity value or external IDNDATA <![]]>IGNORE section is not closed]]>7Conditional sections are not allowed in internal subsetINCLUDEIGNOREExpected "INCLUDE" or "IGNORE"ELEMENTENTITYATTLISTNOTATIONIllegal markup declarationINCLUDE section is not closedIllegal character in DTDindex&@$Root element name does not match DTD Missing DTDUsing undeclared element '%s'+Element '%s' is not allowed in this context/Using undeclared attribute '%s' on element '%s'WIn a standalone document, externally defined attribute cannot cause value normalizationRIn a standalone document, attribute cannot have a default value defined externally9Value of attribute '%s' does not match its #FIXED defaultAttribute '%s' type mismatch2Required attribute '%s' of element '%s' is missing-Element '%s' is missing required sub-elements5Character data is not allowed in element-only content/Character data is not allowed in EMPTY elements6CDATA sections are not allowed in element-only content=Processing instructions are not allowed within EMPTY elements.Comments are not allowed within EMPTY elementsWrong node typeInvalid characterRoot element is missingIllegal at document level"Only one top-level element allowed[CDATA[Unterminated CDATA sectionEnd-tag is missing for '%s'$Literal ']]>' is not allowed in text(References are illegal in EMPTY elements Unbound element name prefix "%s"End-tag is not allowed here-Unmatching element end tag (expected "")Duplicate attribute&The ID '%s' does not match any element%Illegal usage of reserved prefix '%s',Illegal usage of reserved namespace URI '%s'Illegal undefining of namespace"Unbound attribute name prefix "%s"Duplicate prefixed attributeIllegal Public ID literalThe ID '%s' is not uniqueNotation '%s' is not declaredSYNEDITSTRCONSTUntitledsyneditstrconst.syns_untitledAspsyneditstrconst.syns_attraspCDATAsyneditstrconst.syns_attrcdataDOCTYPE syneditstrconst.syns_attrdoctype Annotation#syneditstrconst.syns_attrannotation Assembler"syneditstrconst.syns_attrassemblerAttribute Name&syneditstrconst.syns_attrattributenameAttribute Value'syneditstrconst.syns_attrattributevalueBlocksyneditstrconst.syns_attrblockBrackets!syneditstrconst.syns_attrbrackets CDATA Section%syneditstrconst.syns_attrcdatasection Character"syneditstrconst.syns_attrcharacterClasssyneditstrconst.syns_attrclassComment syneditstrconst.syns_attrcomment IDE Directive%syneditstrconst.syns_attridedirective Condition"syneditstrconst.syns_attrcondition Data type!syneditstrconst.syns_attrdatatypeDefault packages'syneditstrconst.syns_attrdefaultpackage Directionsyneditstrconst.syns_attrdir Directive"syneditstrconst.syns_attrdirectiveDOCTYPE Section'syneditstrconst.syns_attrdoctypesection Documentation&syneditstrconst.syns_attrdocumentation Element Name$syneditstrconst.syns_attrelementname Embedded SQL!syneditstrconst.syns_attrembedsql Embedded text"syneditstrconst.syns_attrembedtextEntity Reference(syneditstrconst.syns_attrentityreferenceEscape ampersand(syneditstrconst.syns_attrescapeampersandEventsyneditstrconst.syns_attrevent Exception"syneditstrconst.syns_attrexceptionFloatsyneditstrconst.syns_attrfloatFormsyneditstrconst.syns_attrformFunction!syneditstrconst.syns_attrfunction Hexadecimal$syneditstrconst.syns_attrhexadecimalIcon referencesyneditstrconst.syns_attricon Identifier#syneditstrconst.syns_attridentifier Illegal char$syneditstrconst.syns_attrillegalcharInclude syneditstrconst.syns_attrincludeIndirect!syneditstrconst.syns_attrindirectInvalid symbol&syneditstrconst.syns_attrinvalidsymbolInternal function)syneditstrconst.syns_attrinternalfunctionKeysyneditstrconst.syns_attrkeyLabelsyneditstrconst.syns_attrlabelMacrosyneditstrconst.syns_attrmacroMarkersyneditstrconst.syns_attrmarkerMessage syneditstrconst.syns_attrmessage Miscellaneous&syneditstrconst.syns_attrmiscellaneousNamespace Attribute Name*syneditstrconst.syns_attrnamespaceattrnameNamespace Attribute Value+syneditstrconst.syns_attrnamespaceattrvalueNon-reserved keyword+syneditstrconst.syns_attrnonreservedkeywordNullsyneditstrconst.syns_attrnullNumbersyneditstrconst.syns_attrnumberOctalsyneditstrconst.syns_attroctalOperator!syneditstrconst.syns_attroperatorReserved word (PL/SQL)syneditstrconst.syns_attrplsqlPragmasyneditstrconst.syns_attrpragma Preprocessor%syneditstrconst.syns_attrpreprocessorProcessing Instruction(syneditstrconst.syns_attrprocessinginstr Qualifier"syneditstrconst.syns_attrqualifierRegister!syneditstrconst.syns_attrregister Reserved word%syneditstrconst.syns_attrreservedwordRplsyneditstrconst.syns_attrrplRpl keysyneditstrconst.syns_attrrplkey Rpl comment#syneditstrconst.syns_attrrplcommentSASMsyneditstrconst.syns_attrsasm SASM Comment$syneditstrconst.syns_attrsasmcommentSASM Key syneditstrconst.syns_attrsasmkeySecond reserved word+syneditstrconst.syns_attrsecondreservedwordSection syneditstrconst.syns_attrsectionSpacesyneditstrconst.syns_attrspaceSpecial variable(syneditstrconst.syns_attrspecialvariable SQL keywordsyneditstrconst.syns_attrsqlkeySQL*Plus command syneditstrconst.syns_attrsqlplusStringsyneditstrconst.syns_attrstringSymbolsyneditstrconst.syns_attrsymbolProcedure header name,syneditstrconst.syns_attrprocedureheadername Case label"syneditstrconst.syns_attrcaselabelPasDoc Keyword"syneditstrconst.syns_attrpasdockey PasDoc Symbol%syneditstrconst.syns_attrpasdocsymbolPasDoc Unknown&syneditstrconst.syns_attrpasdocunknown SyntaxError$syneditstrconst.syns_attrsyntaxerrorSystem functions and variablessyneditstrconst.syns_attrsystem System value$syneditstrconst.syns_attrsystemvalue Terminator#syneditstrconst.syns_attrterminatorTextsyneditstrconst.syns_attrtext Unknown word$syneditstrconst.syns_attrunknownwordUser functions and variablessyneditstrconst.syns_attruserUser functions%syneditstrconst.syns_attruserfunctionValuesyneditstrconst.syns_attrvalueVariable!syneditstrconst.syns_attrvariable Whitespace#syneditstrconst.syns_attrwhitespace Table Name"syneditstrconst.syns_attrtablename Math Mode!syneditstrconst.syns_attrmathmodeText in Math Mode%syneditstrconst.syns_attrtextmathmodeSquare Bracket&syneditstrconst.syns_attrsquarebracket Round Bracket%syneditstrconst.syns_attrroundbracket TeX Command#syneditstrconst.syns_attrtexcommandDiff Original File!syneditstrconst.syns_attrorigfile Diff New File syneditstrconst.syns_attrnewfileDiff Chunk Marker$syneditstrconst.syns_attrchunkmarkerDiff Chunk Original Line Count"syneditstrconst.syns_attrchunkorigDiff Chunk New Line Count!syneditstrconst.syns_attrchunknewDiff Chunk Line Counts#syneditstrconst.syns_attrchunkmixedDiff Added line"syneditstrconst.syns_attrlineaddedDiff Removed Line$syneditstrconst.syns_attrlineremovedDiff Changed Line$syneditstrconst.syns_attrlinechangedDiff Context Line$syneditstrconst.syns_attrlinecontextPrevious value"syneditstrconst.syns_attrprevvalueMeasurement unit-syneditstrconst.syns_attrmeasurementunitvalueSelector&syneditstrconst.syns_attrselectorvalueFlagssyneditstrconst.syns_attrflagsHTML'syneditstrconst.syns_exporterformathtmlRTF&syneditstrconst.syns_exporterformatrtf%d - %d"syneditstrconst.syns_scrollinfofmt Top Line: %d%syneditstrconst.syns_scrollinfofmttopPage: %d)syneditstrconst.syns_previewscrollinfofmtMouse-Shortcut already exists'syneditstrconst.syns_eduplicateshortcut!syneditstrconst.syns_shortcutnoneFThe keystroke "%s" is already assigned to another editor command. (%s))syneditstrconst.syns_duplicateshortcutmsg>Pascal Files (*.pas,*.dpr,*.dpk,*.inc)|*.pas;*.dpr;*.dpk;*.inc!syneditstrconst.syns_filterpascal=C++ Files (*.c,*.cpp,*.h,*.hpp,*.hh)|*.c;*.cpp;*.h;*.hpp;*.hhsyneditstrconst.syns_filtercppJava Files (*.java)|*.javasyneditstrconst.syns_filterjava,Perl Files (*.pl,*.pm,*.cgi)|*.pl;*.pm;*.cgisyneditstrconst.syns_filterperl)HTML Document (*.htm,*.html)|*.htm;*.htmlsyneditstrconst.syns_filterhtmlPython Files (*.py)|*.py!syneditstrconst.syns_filterpythonSQL Files (*.sql)|*.sqlsyneditstrconst.syns_filtersql,MS-DOS Batch Files (*.bat;*.cmd)|*.bat;*.cmd syneditstrconst.syns_filterbatch Lazarus Form Files (*.lfm)|*.lfmsyneditstrconst.syns_filterlfmINI Files (*.ini)|*.inisyneditstrconst.syns_filterini Visual Basic Files (*.bas)|*.bas&syneditstrconst.syns_filtervisualbasicAPHP Files (*.php,*.php3,*.phtml,*.inc)|*.php;*.php3;*.phtml;*.incsyneditstrconst.syns_filterphp#Cascading Stylesheets (*.css)|*.csssyneditstrconst.syns_filtercssJavascript Files (*.js)|*.js"syneditstrconst.syns_filterjscriptLXML Document (*.xml,*.xsd,*.xsl,*.xslt,*.dtd)|*.xml;*.xsd;*.xsl;*.xslt;*.dtdsyneditstrconst.syns_filterxmlUNIX Shell Scripts (*.sh)|*.sh*syneditstrconst.syns_filterunixshellscriptTeX Files (*.tex)|*.texsyneditstrconst.syns_filtertexPo Files (*.po)|*.posyneditstrconst.syns_filterpo No Actionsyneditstrconst.syns_emcnone Selection&syneditstrconst.syns_emcstartselectionColumn Selection-syneditstrconst.syns_emcstartcolumnselectionsLine Selection+syneditstrconst.syns_emcstartlineselections!Line Selection (select immediate)4syneditstrconst.syns_emcstartlineselectionsnoneemptyMode,Begin,Continue%syneditstrconst.syns_emcselection_opt Select Word"syneditstrconst.syns_emcselectword Select Line"syneditstrconst.syns_emcselectline"Include spaces",no,yes&syneditstrconst.syns_emcselectline_optSelect Paragraph"syneditstrconst.syns_emcselectparaDrag Selection%syneditstrconst.syns_emcstartdragmoveQuick Paste Selection&syneditstrconst.syns_emcpasteselection Source Link!syneditstrconst.syns_emcmouselinkUnderline,yes, no%syneditstrconst.syns_emcmouselink_opt#"Caret on up if not dragged",yes,no)syneditstrconst.syns_emcstartdragmove_opt Popup Menu#syneditstrconst.syns_emccontextmenuToggle Breakpoint(syneditstrconst.syns_emcbreakpointtoggle Fold Code'syneditstrconst.syns_emccodefoldcollaps1Nodes,One,"All on line","At Caret","Current Node"+syneditstrconst.syns_emccodefoldcollaps_opt Unfold Code&syneditstrconst.syns_emccodefoldexpandNodes,One,"All on line"*syneditstrconst.syns_emccodefoldexpand_opt Fold Menu+syneditstrconst.syns_emccodefoldcontextmenu IDE Command&syneditstrconst.syns_emcsyneditcommandWheel scroll down'syneditstrconst.syns_emcwheelscrolldownWheel scroll up%syneditstrconst.syns_emcwheelscrollupWheel scroll down (Horizontal),syneditstrconst.syns_emcwheelhorizscrolldownWheel scroll up (Horizontal)*syneditstrconst.syns_emcwheelhorizscrollupWheel scroll down (Vertical)+syneditstrconst.syns_emcwheelvertscrolldownWheel scroll up (Vertical))syneditstrconst.syns_emcwheelvertscrollupWheel zoom out$syneditstrconst.syns_emcwheelzoomout Wheel zoom in#syneditstrconst.syns_emcwheelzoominWheel zoom default%syneditstrconst.syns_emcwheelzoomnormSelection (tokens) )syneditstrconst.syns_emcstartselecttokensSelection (words)(syneditstrconst.syns_emcstartselectwordsSelection (lines)(syneditstrconst.syns_emcstartselectlinesJump to Mark (Overview Gutter).syneditstrconst.syns_emcoverviewguttergotomarkScroll (Overview Gutter).syneditstrconst.syns_emcoverviewgutterscrolltoC"Move caret, when selection exists", Never, "Click outside", Always0syneditstrconst.syns_emccontextmenucaretmove_opt;Speed,"System settings",Lines,Pages,"Pages (less one line)"'syneditstrconst.syns_emcwheelscroll_optToggle extra caret3syneditstrconst.syns_emcpluginmulticarettogglecaret#Set carets at EOL in selected lines9syneditstrconst.syns_emcpluginmulticaretselectiontocarets"Cannot record macro when recordingsyneditstrconst.scannotrecord$Cannot playback macro when recordingsyneditstrconst.scannotplayCan only pause when recordingsyneditstrconst.scannotpauseCan only resume when pausedsyneditstrconst.scannotresume&Undosyneditstrconst.syns_undo&Redosyneditstrconst.syns_redoC&utsyneditstrconst.syns_cut&Copysyneditstrconst.syns_copy&Pastesyneditstrconst.syns_paste&Deletesyneditstrconst.syns_delete Select &allsyneditstrconst.syns_selectall ?0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_   \ No errorsTRegExpr compile: null argument'TRegExpr compile: ParseReg: too many ()(TRegExpr compile: ParseReg: unmatched ()'TRegExpr compile: ParseReg: junk at end+TRegExpr compile: *+ operand could be emptyTRegExpr compile: nested *?+TRegExpr compile: bad hex digit"TRegExpr compile: invalid [] range'TRegExpr compile: parse atom trailing \&TRegExpr compile: no hex code after \x-TRegExpr compile: no letter "A".."Z" after \c0TRegExpr compile: metachar after "-" in [] range.TRegExpr compile: hex code after \x is too bigTRegExpr compile: unmatched []0TRegExpr compile: internal fail on char "|", ")"&TRegExpr compile: ?+*{ follows nothingTRegExpr compile: trailing \-TRegExpr compile: RarseAtom internal disaster%TRegExpr compile: incorrect {} braces,TRegExpr compile: braces {} argument too big6TRegExpr compile: unknown opcode in FillFirstCharSet ()6TRegExpr compile: braces {} min param greater then max&TRegExpr compile: unclosed (?#comment)vTRegExpr compile: if you use braces {} and non-greedy ops *?, +?, ?? for complex cases, enable {$DEFINE ComplexBraces}'TRegExpr compile: unrecognized modifierSTRegExpr compile: LinePairedSeparator must countain two different chars or be empty/TRegExpr exec: RegRepeat called inappropriately*TRegExpr exec: MatchPrim memory corruption+TRegExpr exec: MatchPrim corrupted pointersTRegExpr exec: empty expression/TRegExpr exec: corrupted opcode (no magic byte)!TRegExpr exec: empty input string TRegExpr exec: offset must be >0)TRegExpr exec: ExecNext without Exec(Pos)+TRegExpr exec: invalid opcode in char classTRegExpr dump: corrupted opcode"TRegExpr exec: loop stack exceeded&TRegExpr exec: loop without loop entry Unknown error -irsgmx<Too small CharCheckers arrayBOLEOLBOLMLEOLMLBOUNDNOTBOUNDANYANYML ANYLETTER NOTLETTERANYDIGITNOTDIGITANYSPACENOTSPACE ANYHORZSEP NOTHORZSEP ANYVERTSEP NOTVERTSEPANYOFANYBUTANYOF/CI ANYBUT/CIBRANCHEXACTLY EXACTLY/CINOTHINGCOMMENTBACKENDBSUBEXP BSUBEXP/CIOPEN[%d] CLOSE[%d]STARPLUSBRACES LOOPENTRYLOOPLOOPNGSTARNGPLUSNGBRACESNG:%2d%s (0) (%d) Rng()  Ch( \{%d,%d} -> (%d) {%d,%d}  Anchored;  Must have: "";  First charset:   # (pos ,[]HL=%3d I=%d X=%2d-%2d Fld=%d-%d Nst=%d-%d FT=%2d FTC=%2d Grp=%d A=%s LineIdx:%4d HNode:  | PrevCnt:  MinLvl: [*TLazSynEditNestedFoldsList for FFoldGroup= FLine= FFoldFlags= FGroupCount= FIncludeOpeningOnLine= FEvaluationIndex= FCount= FOpeningOnLineCount=FGroupEndLevelsAtEval=: N-Info Wrong Parent for ( L: R: C: Attempt to modify a FoldBlock StackSize= RangeType=,TSynCustomHighlighterRange.WriteDebugReport  Block=ʡE?+S? rh?*C*BBCCCCo@-]???5h!?@@@@?pB^@n@v@C@CCCCC?MTChartMinorAxis.SetAlignment?ư,  (%s) ףp= ף??%Obsolete, use Transformations insteadOffsetScaleTransformation@?*Obsolete, use ChartTitle.LabelFont insteadFont%0:.9g%1:.2f%%%2:s %2:s %1:.2f%% %2:s %0:.9g%2:s%1:.2f%% of %3:g%2:s %1:.2f%% of %3:g%4:.9g...?@@?חחA?$$@@A, ư>Listener subscribed twiceDuplicate listenerListener not subscribedListener not foundDuplicate DrawData DrawData leak-, 

NAMECOLORTg@



Umg-MYmQW  Umg-MYmQWI$Obsolete, use Legend.MarginX insteadMargin$@@1793128 4619 73412364789687412896328426818318428862882467927ColorStyleVisible OverrideColor @@?ChartRange: Min >= MaxChartExtent: XMin >= XMaxChartExtent: YMin >= YMaxLeftTopRightBottom@=@$@Count MaxLength MinLengthOptions 0.2|0.5|1.0AOffsetEmptyY@ ףp= ף?V%0:s.ItemInsert cannot insert data at the requested position, because source is sorted2%0:s.ItemFind failed, because source is not sortedChartList - ?iW @CharteA(k@?$@@?Cannot set XCountCannot set YCounẗPo ̼?@@Fyyyymm/yyyydd/mmdd hh:nnhh:nnnn:ssszzz"ms"/mmddhh:00nnssmsChartTACHARTSTRCONSTS Area seriestachartstrconsts.rsareaseries Bar seriestachartstrconsts.rsbarseriesBox-and-whiskers series&tachartstrconsts.rsboxandwhiskerseries Bubble seriestachartstrconsts.rsbubbleseriesB-Spline series tachartstrconsts.rsbsplineseriesColor map series!tachartstrconsts.rscolormapseries Constant linetachartstrconsts.rsconstantlineCubic spline series$tachartstrconsts.rscubicsplineseriesVector field seriestachartstrconsts.rsfieldseriesFunction series!tachartstrconsts.rsfunctionseriesLeast-squares fit series(tachartstrconsts.rsleastsquaresfitseries Line seriestachartstrconsts.rslineseriesManhattan plot series&tachartstrconsts.rsmanhattanplotseriesOpen-high-low-close series)tachartstrconsts.rsopenhighlowcloseseriesParametric curve series(tachartstrconsts.rsparametriccurveseries Pie seriestachartstrconsts.rspieseries Polar seriestachartstrconsts.rspolarseriesUser-drawn series"tachartstrconsts.rsuserdrawnseriesMath expression series#tachartstrconsts.rsexpressionseries Math expression color map series+tachartstrconsts.rsexpressioncolormapseriesPolygon series tachartstrconsts.rspolygonseries Edit series%tachartstrconsts.sesserieseditortitleDataPoints editor#tachartstrconsts.desdatapointeditorColortachartstrconsts.descolorTexttachartstrconsts.destext Insert rowtachartstrconsts.desinsertrow Delete rowtachartstrconsts.desdeleterowMove uptachartstrconsts.desmoveup Move downtachartstrconsts.desmovedownNon-numeric value.tachartstrconsts.desnonumberValue must be an integer.tachartstrconsts.desnointegerLefttachartstrconsts.rsleftRighttachartstrconsts.rsrightToptachartstrconsts.rstopBottomtachartstrconsts.rsbottomhiddentachartstrconsts.rshiddeninvertedtachartstrconsts.rsinvertedAddtachartstrconsts.rsaddDeletetachartstrconsts.rsdeleteUptachartstrconsts.rsmoveupDowntachartstrconsts.rsmovedown Edit tools$tachartstrconsts.tastoolseditortitle Zoom by dragtachartstrconsts.rszoombydrag Zoom by clicktachartstrconsts.rszoombyclickZoom by mouse-wheel#tachartstrconsts.rszoombymousewheelPanning by drag tachartstrconsts.rspanningbydragPanning by click!tachartstrconsts.rspanningbyclickPanning by mouse wheel&tachartstrconsts.rspanningbymousewheelData point click!tachartstrconsts.rsdatapointclickData point drag tachartstrconsts.rsdatapointdragData point hint tachartstrconsts.rsdatapointhintData point crosshair%tachartstrconsts.rsdatapointcrosshairData point marks click*tachartstrconsts.rsdatapointmarksclicktool User-defined"tachartstrconsts.rsuserdefinedtoolDistance measurement&tachartstrconsts.rsdistancemeasurement Axis click tachartstrconsts.rsaxisclicktoolHeader/footer click(tachartstrconsts.rsheaderfooterclicktool Legend click"tachartstrconsts.rslegendclicktoolEditable chart source required$tachartstrconsts.rssourcenoteditableM%0:s requires a chart source with at least %1:d %2:s value(s) per data point.#tachartstrconsts.rssourcecounterrorHThis %0:s instance must have at least %1:d %2:s value(s) per data point.$tachartstrconsts.rssourcecounterror24Selected sorting parameters are not supported by %s."tachartstrconsts.rssourcesorterroroThe data value count in the %0:s.DataPoints string "%1:s" differs from what is expected from XCount and YCount..tachartstrconsts.rslistsourcestringformaterror8The %0:s.DataPoints string "%1:s" is not a valid number.)tachartstrconsts.rslistsourcenumericerror4The %0:s.DataPoints string "%1:s" is not an integer.'tachartstrconsts.rslistsourcecolorerrorEdit axis transformations-tachartstrconsts.tasaxistransformseditortitle Auto scaletachartstrconsts.rsautoscaleCumulative normal distribution/tachartstrconsts.rscumulativenormaldistributionLineartachartstrconsts.rslinear Logarithmictachartstrconsts.rslogarithmic User-definedtachartstrconsts.rsuserdefined$Logarithm base must be > 0 and <> 1.!tachartstrconsts.rsinvalidlogbaseFailed to rename components: %s,tachartstrconsts.tasfailedsubcomponentrename Rectangle"tachartstrconsts.rsrectanglesymbolCircletachartstrconsts.rscirclesymbolTriangle!tachartstrconsts.rstrianglesymbolPlustachartstrconsts.rscrosssymbolCross"tachartstrconsts.rsdiagcrosssymbol Star (lines)tachartstrconsts.rsstarsymbol Low bracket#tachartstrconsts.rslowbracketsymbol High bracket$tachartstrconsts.rshighbracketsymbol Left bracket$tachartstrconsts.rsleftbracketsymbol Right bracket%tachartstrconsts.rsrightbracketsymbolDiamond tachartstrconsts.rsdiamondsymbolHexagon tachartstrconsts.rshexagonsymbol Star (full)!tachartstrconsts.rsfullstarsymbol Left triangle%tachartstrconsts.rslefttrianglesymbolRight triangle&tachartstrconsts.rsrighttrianglesymbol Down triangle%tachartstrconsts.rsdowntrianglesymbol Vertical bar tachartstrconsts.rsvertbarsymbolHorizontal bartachartstrconsts.rshorbarsymbolPointtachartstrconsts.rspointsymbol(none)tachartstrconsts.rsnosymbol solid linetachartstrconsts.rspssolid dashed linetachartstrconsts.rspsdash dotted linetachartstrconsts.rspsdotdash-dottachartstrconsts.rspsdashdot dash-dot-dottachartstrconsts.rspsdashdotdotsolid (inside frame) tachartstrconsts.rspsinsideframepatterned linetachartstrconsts.rspspatternno linetachartstrconsts.rspsclear solid filltachartstrconsts.rsbssolidhorizontally hatchedtachartstrconsts.rsbshorizontalvertically hatchedtachartstrconsts.rsbsverticalforward-diagonal hatchtachartstrconsts.rsbsfdiagonalbackward-diagonal hatchtachartstrconsts.rsbsbdiagonalcrossedtachartstrconsts.rsbscrossdiagonally crossedtachartstrconsts.rsbsdiagcrossno filltachartstrconsts.rsbsclear image filltachartstrconsts.rsbsimage pattern filltachartstrconsts.rsbspattern:Expression result type must be integer or float. Got "%s".'tachartstrconsts.rserrinvalidresulttype3The number of fit parameters cannot be less than 1.*tachartstrconsts.rserrillegalfitparamcount%Non-matching count of x and y values.!tachartstrconsts.rserrfitdimerror3There are more fitting parameters than data values.-tachartstrconsts.rserrfitmoreparamsthanvaluesNo fit parameters specified.$tachartstrconsts.rserrfitnofitparams$Fitting matrix is (nearly) singular.!tachartstrconsts.rserrfitsingular(Not enough user-provided base functions.(tachartstrconsts.rserrfitnobasefunctionsNumerical overflow.'tachartstrconsts.rserrnumericaloverflowNumber of observations%tachartstrconsts.rsfitnumobservationsNumber of fit parameters"tachartstrconsts.rsfitnumfitparamsDegrees of freedom&tachartstrconsts.rsfitdegreesoffreedomTotal sum of squares (SST)'tachartstrconsts.rsfittotalsumofsquaresRegression sum of squares (SSR),tachartstrconsts.rsfitregressionsumofsquaresError sum of squares (SSE)'tachartstrconsts.rsfiterrorsumofsquares!Coefficient of determination (R2)0tachartstrconsts.rsfitcoefficientofdetermination!Adj. coefficient of determination3tachartstrconsts.rsfitadjcoefficientofdetermination Chi-squared tachartstrconsts.rsfitchisquaredReduced Chi-squared'tachartstrconsts.rsfitreducedchisquaredResidual standard error+tachartstrconsts.rsfitresidualstandarderrorVariance ratio F#tachartstrconsts.rsfitvarianceratiot valuetachartstrconsts.rsfittvaluep valuetachartstrconsts.rsfitpvalued3??V-?n???̈Po ̼??@?@?@@?@?6h!?)DNn?@˖@ǰ}gē?@@@@CN'?ǰ}gē?)DNn@@AT{?q= ףp=@@@d3?hZ?\U?,8l@@@ݒ@@9%C??tV9nCBzՔ?@???h!?h!@@(k@E-E?.1 Something went probably wrong while porting!@??@@??,eX?;On?@ @=@??@5h!@@?5h!?AQUABLACKBLUECYANFUCHSIAGRAYGREYGREENLIMEMAGENTAMAROONNAVYOLIVEPURPLEREDSILVERTEALWHITEYELLOW$$X-SMALL1SMALL2MEDIUM3LARGE45X-LARGE6XX-LARGEPTPX UnassignedNullSmallIntIntegerSingleDoubleCurrencyDateOleStrBooleanShortIntByteWordLongWordInt64QWordString TypeData^.PropCount= "WritePublishedProperties Instance= TComponent(Instance).Name= CurPropCount= Type= UnitName= Property (True)$TPropertyEditor.GetPropTypeUnitName  IsSamePropInfo=.  No property default availableTPropertyEditor.Initialize #FalseTrue()(False)FT ~@ ~C=@>@ @inf**********[,]%TListPropertyEditor.GetElement Index= Count=/List element %d is not a TPersistent descendant;TListPropertyEditor.EndSaveElement ERROR: FSaveElementLock= items1 itemCollection=nil() The event "*" currently points to an inherited method.Create OverrideJump to inherited methodOverride or jumpForm DataModuleFrameSTMethodPropertyEditor.GetDefaultMethodName cannot create name - should never happen7TMethodPropertyEditor.GetValue : PropertyHook=Nil Name= Data=?$JGd9TypeUnknown(Null)-MenuItem Separator (*)|file://FilterFilter .TPropertyEditorHook.AddHandlernone)invalid instance for this property editor+only children are allowed for this property?CheckBoxShiftAltCtrlMetaSuperHyperAltGrCapsNumlockScrollModifier GrabButton FKeyComboBoxNameCaptionHintTabOrderSessionProperties ModalResult ActiveControlControl ControlListFilenameStrings ActivePage ConstraintsPagesText ExpandedText FooterTextAnchorSideLeft AnchorSideTopAnchorSideRightAnchorSideBottom ClientWidth ClientHeight LCLVersionbtnfiltercancel+Property streamed in older Lazarus revisionUseFormActivate btnselfile btnseldir btncalendar99/99/9999;1;_ mm/dd/yyyy dd/mm/yyyy9999/99/99;1;_ yyyy/mm/ddYYYYMMMMMMMDDDDDDD,eT> OKCaption CancelCaptionbtntime btncalculatorMisc.TValueListStrings.GetItemProp: Key not found: 2TValueListStrings.GetItemProp: Index=%d Result=Nil DeleteCol8The operation %s is not allowed on a TValueListEditor%s. InsertColRow on columnsExchangeColRow MoveColRowKeyValuegrid/content/rowcount5Error reading file "%s": No value for RowCount found.grid/content/hascolumntitlesgrid/content/cells/cellcountgrid/content/cells/cell/column/row6Error reading file "%s": Row index out of bounds (%d).9Error reading file "%s": Column index out of bounds (%d).grid/saveoptions/content/textDColCount of a TValueListEditor cannot be %d (it can only ever be 2).?Duplicate Key: A key with name "%s" already exists at column %d Additional.../*[]|MiscOBJINSPSTRCONSTSObject Inspector#objinspstrconsts.oisobjectinspectorErrorobjinspstrconsts.oiserror(Mixed)objinspstrconsts.oismixed%u items selected!objinspstrconsts.oisitemsselectedDelete?objinspstrconsts.oiscdelete Propertiesobjinspstrconsts.oisproperties &Properties!objinspstrconsts.oisbtnpropertiesEventsobjinspstrconsts.oisevents Favoritesobjinspstrconsts.oisfavorites Restrictedobjinspstrconsts.oisrestricted!General widget set restrictions: )objinspstrconsts.oiswidgetsetrestrictionsComponent restrictions: )objinspstrconsts.oiscomponentrestrictionsZ-orderobjinspstrconsts.oiszorder Move to Front$objinspstrconsts.oisordermovetofront Move to Back#objinspstrconsts.oisordermovetoback Forward One#objinspstrconsts.oisorderforwardoneBack One objinspstrconsts.oisorderbackoneSet to default: %s objinspstrconsts.oissettodefaultRevert to inherited%objinspstrconsts.oisreverttoinheritedSet property value to Default$objinspstrconsts.oissettodefaulthintSet MaxHeight=%d, MaxWidth=%d%objinspstrconsts.oissetmaxconstraintsSet MinHeight=%d, MinWidth=%d%objinspstrconsts.oissetminconstraints#Use current size as Max Constraints)objinspstrconsts.oissetmaxconstraintshint#Use current size as Min Constraints)objinspstrconsts.oissetminconstraintshintAdd to Favorites"objinspstrconsts.oisaddtofavoritesView restricted properties,objinspstrconsts.oisviewrestrictedpropertiesRemove from Favorites'objinspstrconsts.oisremovefromfavoritesUndoobjinspstrconsts.oisundoJump to declaration#objinspstrconsts.oisfinddeclarationJump to declaration of %s'objinspstrconsts.oisjumptodeclarationofCu&t!objinspstrconsts.oiscutcomponents&Copy"objinspstrconsts.oiscopycomponents&Paste#objinspstrconsts.oispastecomponents&Delete$objinspstrconsts.oisdeletecomponentsDeleteobjinspstrconsts.oisdeleteMove upobjinspstrconsts.rscdmoveup Move downobjinspstrconsts.rscdmovedownOKobjinspstrconsts.rscdokShow Component Tree%objinspstrconsts.oisshowcomponenttree Show Hintsobjinspstrconsts.oisshowhintsShow Information Boxobjinspstrconsts.oisshowinfoboxShow Status Bar!objinspstrconsts.oisshowstatusbarShow Property Filter&objinspstrconsts.oisshowpropertyfilterOptionsobjinspstrconsts.oisoptions (Invalid)objinspstrconsts.oisinvalidUnknownobjinspstrconsts.oisunknownObjectobjinspstrconsts.oisobjectClassobjinspstrconsts.oisclassWordobjinspstrconsts.oiswordStringobjinspstrconsts.oisstringFloatobjinspstrconsts.oisfloatSetobjinspstrconsts.oissetMethodobjinspstrconsts.oismethodVariantobjinspstrconsts.oisvariantArrayobjinspstrconsts.oisarrayRecordobjinspstrconsts.oisrecord Interfaceobjinspstrconsts.oisinterfaceValue:objinspstrconsts.oisvalueIntegerobjinspstrconsts.oisintegerInt64objinspstrconsts.oisint64Booleanobjinspstrconsts.oisboolean Enumerationobjinspstrconsts.oisenumerationCharobjinspstrconsts.oischarDelete selected field(s)(objinspstrconsts.oisdeleteselectedfields&Newobjinspstrconsts.oisnew/Create new field and add it at current position;objinspstrconsts.oiscreatenewfieldandadditatcurrentpositionMove &Upobjinspstrconsts.oismoveup Move &Downobjinspstrconsts.oismovedown &Select allobjinspstrconsts.oisselectall &Unselect allobjinspstrconsts.oisunselectallConfirm delete!objinspstrconsts.oisconfirmdeleteDelete item "%s"?objinspstrconsts.oisdeleteitemTreeView Items Editor!objinspstrconsts.sccstredtcaptionEdit Items ...objinspstrconsts.sccstredtItems%objinspstrconsts.sccstredtgrplcaptionItem Properties%objinspstrconsts.sccstredtgrprcaptionNew Item!objinspstrconsts.sccstredtnewitem New SubItem$objinspstrconsts.sccstredtnewsubitemDelete objinspstrconsts.sccstredtdeleteApplyobjinspstrconsts.sccstredtapplyLoadobjinspstrconsts.sccstredtloadSaveobjinspstrconsts.sccstredtsaveText:#objinspstrconsts.sccstredtlabeltext Image Index:)objinspstrconsts.sccstredtlabelimageindexSelected Index:'objinspstrconsts.sccstredtlabelselindex State Index:)objinspstrconsts.sccstredtlabelstateindexItemobjinspstrconsts.sccstredtitemOpen$objinspstrconsts.sccstredtopendialogSave$objinspstrconsts.sccstredtsavedialogListView Items Editor!objinspstrconsts.sccslvedtcaptionEdit Items ...objinspstrconsts.sccslvedtEdit Columns ...objinspstrconsts.sccslvcoledtItems%objinspstrconsts.sccslvedtgrplcaptionItem Properties%objinspstrconsts.sccslvedtgrprcaptionNew Item!objinspstrconsts.sccslvedtnewitem New SubItem$objinspstrconsts.sccslvedtnewsubitemApplyobjinspstrconsts.sccslvedtapplyDelete objinspstrconsts.sccslvedtdeleteCaption:&objinspstrconsts.sccslvedtlabelcaption Image Index:)objinspstrconsts.sccslvedtlabelimageindex State Index:)objinspstrconsts.sccslvedtlabelstateindexItemobjinspstrconsts.sccslvedtitemI&mageList Editor ...,objinspstrconsts.oisimagelistcomponenteditorImageList Editor!objinspstrconsts.sccsiledtcaptionImages%objinspstrconsts.sccsiledtgrplcaptionSelected Image%objinspstrconsts.sccsiledtgrprcaption&Add ...objinspstrconsts.sccsiledtaddAdd more resolutions ...,objinspstrconsts.sccsiledtaddmoreresolutionsAdd sliced ...#objinspstrconsts.sccsiledtaddsliced &Replace ...!objinspstrconsts.sccsiledtreplaceReplace all resolutions .../objinspstrconsts.sccsiledtreplaceallresolutions&Delete objinspstrconsts.sccsiledtdelete&Applyobjinspstrconsts.sccsiledtapply&Clearobjinspstrconsts.sccsiledtclearMove &Up objinspstrconsts.sccsiledtmoveup Move D&own"objinspstrconsts.sccsiledtmovedown &Save ...objinspstrconsts.sccsiledtsave Save All ...!objinspstrconsts.sccsiledtsaveallNew resolution ...*objinspstrconsts.sccsiledtaddnewresolutionDelete resolution ...*objinspstrconsts.sccsiledtdeleteresolution Select the resolution to delete.6objinspstrconsts.sccsiledtdeleteresolutionconfirmation!Cannot delete default resolution.0objinspstrconsts.sccsiledtcannotdeleteresolution"Image width of the new resolution:3objinspstrconsts.sccsiledtimagewidthofnewresolutionTransparent Color:)objinspstrconsts.sccsiledtransparentcolor Adjustment$objinspstrconsts.sccsiledtadjustmentNoneobjinspstrconsts.sccsiledtnone%Adding sliced icons is not supported.,objinspstrconsts.sccsiledtaddslicediconerrorRSource image size must be an integer multiple of the ImageList's Width and Height.%objinspstrconsts.sccsiledtcannotsliceIfobjinspstrconsts.liisifIfDefobjinspstrconsts.liisifdefIfNDefobjinspstrconsts.liisifndefElseIfobjinspstrconsts.liiselseifElseobjinspstrconsts.liiselse Add valueobjinspstrconsts.liisaddvalue Set valueobjinspstrconsts.liissetvalueStretch!objinspstrconsts.sccsiledtstretchCropobjinspstrconsts.sccsiledtcropCenter objinspstrconsts.sccsiledtcenterRightobjinspstrconsts.rscdrightVisibleobjinspstrconsts.rscdvisible Auto Sizeobjinspstrconsts.rscdautosize Add Images$objinspstrconsts.sccsiledtopendialog New Image%objinspstrconsts.sccsiledtopendialogn Save Image$objinspstrconsts.sccsiledtsavedialogEdit StringGrid ...objinspstrconsts.sccssgedtStringGrid Editor!objinspstrconsts.sccssgedtcaption String Gridobjinspstrconsts.sccssgedtgrpApplyobjinspstrconsts.sccssgedtapplyCleanobjinspstrconsts.sccssgedtcleanLoad ...objinspstrconsts.sccssgedtloadSave ...objinspstrconsts.sccssgedtsaveOpen$objinspstrconsts.sccssgedtopendialogSave$objinspstrconsts.sccssgedtsavedialogMove rows/columns&objinspstrconsts.sccssgedtmoverowscols Delete row objinspstrconsts.sccssgedtdelrow Delete column objinspstrconsts.sccssgedtdelcol Insert row objinspstrconsts.sccssgedtinsrow Insert column objinspstrconsts.sccssgedtinscolDelete row #%d?"objinspstrconsts.sccssgedtdelrownoDelete column #%d?"objinspstrconsts.sccssgedtdelcolnoTitleobjinspstrconsts.sccssgedttitleEdit column title&objinspstrconsts.sccssgedteditcoltitleEdit fixed column title+objinspstrconsts.sccssgedteditfixedcoltitleEdit row header'objinspstrconsts.sccssgedteditrowheader(%d columns, %d rows)$objinspstrconsts.sccssgedtcolrowinfoSections Editor ...#objinspstrconsts.sccshceditsectionsPanels Editor ...!objinspstrconsts.sccssbeditpanelsAdd Pageobjinspstrconsts.nbcesaddpage Insert Page objinspstrconsts.nbcesinsertpage Delete Page objinspstrconsts.nbcesdeletepageMove Page Left"objinspstrconsts.nbcesmovepageleftMove Page Right#objinspstrconsts.nbcesmovepageright Show Pageobjinspstrconsts.nbcesshowpageCreate default event&objinspstrconsts.oiscreatedefaulteventAdd tabobjinspstrconsts.tccesaddtab Insert tabobjinspstrconsts.tccesinserttab Delete tabobjinspstrconsts.tccesdeletetab Move tab left!objinspstrconsts.tccesmovetableftMove tab right"objinspstrconsts.tccesmovetabright New Buttonobjinspstrconsts.tbcenewbuttonNew CheckButton#objinspstrconsts.tbcenewcheckbutton New Separator!objinspstrconsts.tbcenewseparator New Dividerobjinspstrconsts.tbcenewdividerCheckListBox Editor&objinspstrconsts.clbchecklistboxeditorUpobjinspstrconsts.clbupDownobjinspstrconsts.clbdownModify the Itemobjinspstrconsts.clbmodify Add new Itemobjinspstrconsts.clbaddDelete the Itemobjinspstrconsts.clbdeletehintDelete the Item %d "%s"?objinspstrconsts.clbdeletequestCheckGroup Editor#objinspstrconsts.cgcheckgroupeditorPopup to disable/enable itemsobjinspstrconsts.cgdisableColumns:objinspstrconsts.cgcolumns$On Add, Check for Duplicate in Items!objinspstrconsts.cgcheckduplicate/The "%s" Item is already listed. Add it anyway?$objinspstrconsts.cgcheckduplicatemsgFlowPanel Editor"objinspstrconsts.fpflowpaneleditorAddobjinspstrconsts.oicoleditaddDelete objinspstrconsts.oicoleditdeleteUpobjinspstrconsts.oicoleditupDownobjinspstrconsts.oicoleditdownEditing!objinspstrconsts.oicoleditediting (Unknown)1objinspstrconsts.cactionlisteditorunknowncategory(All)-objinspstrconsts.cactionlisteditorallcategoryEdit.objinspstrconsts.cactionlisteditoreditcategorySearch0objinspstrconsts.cactionlisteditorsearchcategoryHelp.objinspstrconsts.cactionlisteditorhelpcategoryCategoryobjinspstrconsts.oiscategoryActionobjinspstrconsts.oisactionEdit Mask Editor ...objinspstrconsts.sccsmaskeditor Masks ...objinspstrconsts.oismasksSave Literal Characters)objinspstrconsts.oissaveliteralcharacters Input Mask:objinspstrconsts.oisinputmask Sample Masks:objinspstrconsts.oissamplemasksCharacters for Blanks'objinspstrconsts.oischaractersforblanks Test Inputobjinspstrconsts.oistestinputOpen masks file (*.dem) objinspstrconsts.oisopenmaskfileDialog0objinspstrconsts.cactionlisteditordialogcategoryFile.objinspstrconsts.cactionlisteditorfilecategoryDatabase2objinspstrconsts.cactionlisteditordatabasecategoryAction&List Editor ...-objinspstrconsts.oisactionlistcomponenteditorActionList Editor$objinspstrconsts.oisactionlisteditorError deleting action'objinspstrconsts.oiserrordeletingaction Error while deleting action:%s%s,objinspstrconsts.oiserrorwhiledeletingaction New Action+objinspstrconsts.cactionlisteditornewactionNew Standard Action.objinspstrconsts.cactionlisteditornewstdaction Move Down0objinspstrconsts.cactionlisteditormovedownactionAddobjinspstrconsts.ilesaddMove Up.objinspstrconsts.cactionlisteditormoveupaction Delete Action2objinspstrconsts.cactionlisteditordeleteactionhintDelete.objinspstrconsts.cactionlisteditordeleteactionPanel Descriptions4objinspstrconsts.cactionlisteditorpaneldescrriptionsToolbar.objinspstrconsts.cactionlisteditorpaneltoolbarCu&t(objinspstrconsts.oistdacteditcutheadline&Copy)objinspstrconsts.oistdacteditcopyheadline&Paste*objinspstrconsts.oistdacteditpasteheadline Select &All.objinspstrconsts.oistdacteditselectallheadline&Undo)objinspstrconsts.oistdacteditundoheadline&Delete+objinspstrconsts.oistdacteditdeleteheadline &Find ...+objinspstrconsts.oistdactsearchfindheadline F&ind First0objinspstrconsts.oistdactsearchfindfirstheadline Find &Next/objinspstrconsts.oistdactsearchfindnextheadline&Replace.objinspstrconsts.oistdactsearchreplaceheadline &Contents-objinspstrconsts.oistdacthelpcontentsheadline &Topic Search0objinspstrconsts.oistdacthelptopicsearchheadline &Help on Help-objinspstrconsts.oistdacthelphelphelpheadline &Open ...)objinspstrconsts.oistdactfileopenheadline Open with ...-objinspstrconsts.oistdactfileopenwithheadline Save &As ...+objinspstrconsts.oistdactfilesaveasheadlineE&xit)objinspstrconsts.oistdactfileexitheadlineSelect &Color ...-objinspstrconsts.oistdactcolorselect1headlineSelect &Font ...)objinspstrconsts.oistdactfonteditheadline&First-objinspstrconsts.oistdactdatasetfirstheadline&Prior-objinspstrconsts.oistdactdatasetpriorheadline&Next,objinspstrconsts.oistdactdatasetnextheadline&Last,objinspstrconsts.oistdactdatasetlastheadline&Insert.objinspstrconsts.oistdactdatasetinsertheadline&Delete.objinspstrconsts.oistdactdatasetdeleteheadline&Edit,objinspstrconsts.oistdactdataseteditheadlineP&ost,objinspstrconsts.oistdactdatasetpostheadline&Cancel.objinspstrconsts.oistdactdatasetcancelheadline&Refresh/objinspstrconsts.oistdactdatasetrefreshheadlineCtrl+X(objinspstrconsts.oistdacteditcutshortcutCtrl+C)objinspstrconsts.oistdacteditcopyshortcutCtrl+V*objinspstrconsts.oistdacteditpasteshortcutCtrl+A.objinspstrconsts.oistdacteditselectallshortcutCtrl+Z)objinspstrconsts.oistdacteditundoshortcutDel+objinspstrconsts.oistdacteditdeleteshortcutCtrl+F+objinspstrconsts.oistdactsearchfindshortcutF3/objinspstrconsts.oistdactsearchfindnextshortcutCtrl+O)objinspstrconsts.oistdactfileopenshortcutCut)objinspstrconsts.oistdacteditcutshorthintCopy*objinspstrconsts.oistdacteditcopyshorthintPaste+objinspstrconsts.oistdacteditpasteshorthint Select All/objinspstrconsts.oistdacteditselectallshorthintUndo*objinspstrconsts.oistdacteditundoshorthintDelete,objinspstrconsts.oistdacteditdeleteshorthintFind'objinspstrconsts.oistdactsearchfindhint Find first,objinspstrconsts.oistdactsearchfindfirsthint Find next+objinspstrconsts.oistdactsearchfindnexthintReplace*objinspstrconsts.oistdactsearchreplacehint Help Contents)objinspstrconsts.oistdacthelpcontentshint Topic Search,objinspstrconsts.oistdacthelptopicsearchhint Help on help)objinspstrconsts.oistdacthelphelphelphintOpen%objinspstrconsts.oistdactfileopenhint Open with)objinspstrconsts.oistdactfileopenwithhintSave As'objinspstrconsts.oistdactfilesaveashintExit%objinspstrconsts.oistdactfileexithint Color Select(objinspstrconsts.oistdactcolorselecthint Font Select%objinspstrconsts.oistdactfontedithintFirst)objinspstrconsts.oistdactdatasetfirsthintPrior)objinspstrconsts.oistdactdatasetpriorhintNext(objinspstrconsts.oistdactdatasetnexthintLast(objinspstrconsts.oistdactdatasetlasthintInsert*objinspstrconsts.oistdactdatasetinserthintDelete*objinspstrconsts.oistdactdatasetdeletehintEdit(objinspstrconsts.oistdactdatasetedithintPost(objinspstrconsts.oistdactdatasetposthintCancel+objinspstrconsts.oistdactdatasetcancel1hint Co&mponents!objinspstrconsts.oisbtncomponentsRefresh+objinspstrconsts.oistdactdatasetrefreshhint&Selected Properties&objinspstrconsts.oisselectedpropertiesStandard Action Classes'objinspstrconsts.oisstdactionlisteditorAvailable Action Classes:,objinspstrconsts.oisstdactionlisteditorclass Select a fileobjinspstrconsts.oisselectafileProperties of %s objinspstrconsts.oispropertiesof All filesobjinspstrconsts.oisallfilesTest dialog ...objinspstrconsts.oistestdialogSortobjinspstrconsts.oissort%d lines, %d chars objinspstrconsts.oisdlinesdchars1 line, %d charsobjinspstrconsts.ois1linedcharsStrings Editor Dialog'objinspstrconsts.oisstringseditordialog0 lines, 0 chars objinspstrconsts.ois0lines0charsInvalid property value(objinspstrconsts.oisinvalidpropertyvaluebSetting a floating point property to positive or negative Infinity at design time is not supported(objinspstrconsts.oisinfinitynotsupportedHSetting a floating point property to NaN at design time is not supported#objinspstrconsts.oisnannotsupportedProperty value out of range.#objinspstrconsts.oisvalueoutofrange(none)objinspstrconsts.oisnonePress a key ...objinspstrconsts.oispressakeyYou can press e.g. Ctrl+P ...$objinspstrconsts.oispressakeyegctrlpSelect short cut"objinspstrconsts.oisselectshortcutGrab keyobjinspstrconsts.srgrabkey-Component name "%s" is not a valid identifier6objinspstrconsts.oiscomponentnameisnotavalididentifierLoad Image Dialog#objinspstrconsts.oisloadimagedialog&OKobjinspstrconsts.oisokCancelobjinspstrconsts.oiscancel&Helpobjinspstrconsts.oishelpPictureobjinspstrconsts.oispepicture Load pictureobjinspstrconsts.oisloadpicture Save pictureobjinspstrconsts.oissavepicture Clear picture objinspstrconsts.oisclearpicture&Loadobjinspstrconsts.oisload&Saveobjinspstrconsts.oissaveC&learobjinspstrconsts.oisclearOpen image file#objinspstrconsts.oispeopenimagefile Save image as!objinspstrconsts.oispesaveimageasError loading image%objinspstrconsts.oiserrorloadingimageError loading image "%s":%s%s&objinspstrconsts.oiserrorloadingimage2Okobjinspstrconsts.oisok2 Column Editor!objinspstrconsts.rscdcolumneditorCaptionobjinspstrconsts.rscdcaptionInvalid numeric Value(objinspstrconsts.rscdinvalidnumericvalueWidthobjinspstrconsts.rscdwidth Alignmentobjinspstrconsts.rscdalignmentLeftobjinspstrconsts.rscdleftDo you want to split the image?$objinspstrconsts.s_suggestsplitimage!Are you sure to clear image list? objinspstrconsts.s_confirm_clear Add as singleobjinspstrconsts.s_addassingle Split imageobjinspstrconsts.s_splitimageEdit Fields ...objinspstrconsts.fesfetitle &Add fieldsobjinspstrconsts.oisaddfieldsAdd fields from FieldDefs*objinspstrconsts.oisaddfieldsfromfielddefs3It was not possible to get the dataset fields list.objinspstrconsts.fesnofieldsCheck dataset settings.objinspstrconsts.fescheckdsetError message: %s objinspstrconsts.feserrormessage FieldDefsobjinspstrconsts.fesfltitle9Fields list is not available, can't check for duplicates. objinspstrconsts.fesnofieldsnoteIncompatible Identifier*objinspstrconsts.oisincompatibleidentifier "%s" is not a valid method name.)objinspstrconsts.oisisnotavalidmethodnameVThe identifier "%s" is not a method.%sPress Cancel to undo,%spress Ignore to force it.Fobjinspstrconsts.oistheidentifierisnotamethodpresscanceltoundopressignIncompatible Method&objinspstrconsts.oisincompatiblemethodSThe method "%s" is not published.%sPress Cancel to undo,%spress Ignore to force it.Fobjinspstrconsts.oisthemethodisnotpublishedpresscanceltoundopressignoreThe method "%s" is incompatible to this event (%s).%sPress Cancel to undo,%spress Ignore to force it.Fobjinspstrconsts.oisthemethodisincompatibletothiseventpresscanceltound Filter editorobjinspstrconsts.pefiltereditor Filter nameobjinspstrconsts.pefilternameFilterobjinspstrconsts.pefilter New fieldobjinspstrconsts.fesformcaption Field Typeobjinspstrconsts.fesfieldtype&Dataobjinspstrconsts.fesdata &Calculatedobjinspstrconsts.fescalculated&Lookupobjinspstrconsts.feslookupField propertiesobjinspstrconsts.fesfieldprops&Name:objinspstrconsts.fesname&Type:objinspstrconsts.festype&Size:objinspstrconsts.fessizeLookup definitionobjinspstrconsts.feslookupdef &Key fields:objinspstrconsts.feskeyfield &Dataset:objinspstrconsts.fesdataset L&ookup keys:objinspstrconsts.feslookupkeys&Result Fields:objinspstrconsts.fesresultfieldOKobjinspstrconsts.fesokbtnCancelobjinspstrconsts.fescancelbtnField %s cannot be created! objinspstrconsts.fesfieldcantbecCo&mponent Name:&objinspstrconsts.fespersistentcompname Move field upobjinspstrconsts.oismoveuphintMove field down objinspstrconsts.oismovedownhintSelect All Fields!objinspstrconsts.oisselectallhint Unselect All#objinspstrconsts.oisunselectallhint?Unable to change parent of control "%s" to new parent "%s".%s%s<objinspstrconsts.oisunabletochangeparentofcontroltonewparent &Add Item%objinspstrconsts.oisaddcollectionitemChange Class ...objinspstrconsts.oischangeclass Change Parent objinspstrconsts.oischangeparent Show classesobjinspstrconsts.oisshowclassesSelected control#objinspstrconsts.oisselectedcontrolSelected controls$objinspstrconsts.oisselectedcontrolsCurrent parent!objinspstrconsts.oiscurrentparentCurrent parents"objinspstrconsts.oiscurrentparents Add Fieldsobjinspstrconsts.dceaddfields Delete Allobjinspstrconsts.dcedeleteall Fetch Labelsobjinspstrconsts.dcefetchlabels6This will replace all captions from dataset. Continue?'objinspstrconsts.dcewillreplacecontinueDBGrid Columns Editor objinspstrconsts.dcecolumneditor'This will delete all columns. Continue?objinspstrconsts.dceoktodeleteSearch and replace%objinspstrconsts.itcssearchandreplace2Unable to retrieve fields definition from dataset.5objinspstrconsts.dpeunabletoretrievefieldsdefinitions Pages Editor%objinspstrconsts.oispageseditordialogPagesobjinspstrconsts.oispagesAddobjinspstrconsts.oisaddAdd Pageobjinspstrconsts.oisaddpageInsert Page Name"objinspstrconsts.oisinsertpagenameRenameobjinspstrconsts.oisrename Rename Pageobjinspstrconsts.oisrenamepageDo you want to delete the page?&objinspstrconsts.oisdeletepagequestion*Dataset is already active, close it first.!objinspstrconsts.lrsdatasetactiveCreate dataset!objinspstrconsts.lrscreatedatasetLoad data from file objinspstrconsts.lrsloadfromfileSave data to fileobjinspstrconsts.lrssavetofile,Select a file with data to load into dataset&objinspstrconsts.lrsselectdatafilename"Select a data file to save data to'objinspstrconsts.lrsprovidedatafilename,XML data files|*.xml;Binary data files|*.dat objinspstrconsts.lrsbufdsfiltersCopy data from other dataset#objinspstrconsts.lrscopyfromdataset'No dataset available to copy data from..objinspstrconsts.lrsnodatasetsavailableforcopy0TPersistentSelectionList.WriteDebugReport Count= "laz_add laz_delete menu_clean.laz_add laz_deletearrow_up arrow_down actMoveUp. []>TCollectionPropertyEditorForm.PersistentDeleting: APersistent=, OwnerPersistent= - NewCollection=nilarrow_up arrow_down|_Normal Maximized MinimizedHiddenMiscCountItem/IDSize Name/Value Size/Width Size/HeightDialog Caption/ValueCustomPosition/LeftCustomPosition/TopCustomPosition/WidthCustomPosition/HeightWindowState/Value Visible/ValueDivider/WindowPlacement/ValueDesktop/VersionDesktop/FormIdCountDesktop/FormIdList/a6TEnvironmentOptions.CreateWindowLayout TheFormID empty2TEnvironmentOptions.CreateWindowLayout TheFormID "" invalid identifier" already exists>TIDEWindowDefaultLayout.CheckBoundValue: expected number, but  found+TIDEWindowDefaultLayoutList.Add: form name  already exists-TIDEWindowCreatorList.GetForm no creator for 2TIDEWindowCreatorList.GetForm no OnCreateForm for 0TIDEWindowCreatorList.GetForm create failed for 1TIDEWindowCreatorList.ShowForm invalid form name %Used in a previous version of LazarusTextHintFontColorTextHintFontStyle<<>>%s%.2dmcsPlatformDefaultmcsCaseInsensitivemcsCaseSensitive[ otFolders, otNonFolders,otHidden]?TShellTreeView: the newly created node is not a TShellTreeNode!/*...MiscX@_? BuildCommandBuildWorkingDir BuildScan RunCommand RunWorkingDirRunFlagsFPCMAKEBUILDMESSAGESSystem text/htmlfile/ URLParams= URLPath= URLType= THTMLHelpDatabase.ShowURL B URL=9THTMLHelpDatabase.ShowHelp Node.URLValid=false Node.URL="" Show page file:// BaseURL/Value%s3THTMLBrowserHelpViewer.ShowNode Node.URLValid=false.THTMLBrowserHelpViewer.ShowNode Node.URL emptyTIDEHelpDatabases  " Params=",THTMLBrowserHelpViewer.ShowNode Executable=" Browser/PathBrowser/Params HTML Browser[TLazCompilationToolOptions does not support CompileReasons. Use an inherited class instead.SaveClosedFilesSaveOnlyProjectUnitsMainUnitIsPascalSource!MainUnitHasUsesSectionForAllUnitsMainUnitHasCreateFormStatementsMainUnitHasTitleStatementMainUnitHasScaledStatementRunnable AlwaysBuildUseDesignTimePackagesLRSInOutputDirectoryUseDefaultCompilerOptionsSaveJumpHistory SaveFoldStateCompatibilityMode InProjectInfo InProjectDir InIDEConfigNoneProgramLibraryFileProjectUnitForm DatamoduleText ApplicationProgramConsole applicationLibraryCustom ProgramEmpty,:0,RunParams Options: mode "%s" already exists.1.lrsunit.pasUnit1unit ;  interfaceuses implementationend.{$mode objfpc}{$H+}Classes, SysUtils{$mode }Delphi{$H+} , LResourcestype T = class() private public end;var: Tinitialization {$I  {$R *.lfm} .pasproject1**.ppu;*.ppl;*.o;*.orNoneProgressDebugVerboseVerboseVerboseHintNoteWarningMiscErrorFatalPanic,[]already in groupShow allAutoFree only via main threadtoo lateinvalid parametersalready referencedreference not found8error: (lazarus) TAbstractExternalTool.AddParserByName "TMessageLines.Add already addedUrgencySubToolSubTypeFileLineColMsgMsgID OriginalLineBTExtToolView.QueueAsyncOnChanged should be overridden when needed.)TExtToolView.InputClosed already closed: Unit Virtual Unit Main UnitLFMLRSIncludeIssuesTextBinaryLazarusFPMakeRunTime DesignTimeRunAndDesignTime RunTimeOnlyStandard Package,[]Package(nil) (>=) (<= /TLazPackageID.AssignOptions: can not copy from 'RegisterIDEOptionsEditor: missing Groupfile://://file:///-WARNING: THelpDBISourceDirectory.FileMatches  Filename="" -> "";.THelpDatabase.GetNodesForPascalContexts C ID=""  FileItem.ClassName= Filename=&THelpDatabase.RegisterItem NewItem=nil+THelpDatabase.RegisterItemWithNode Node=nilTHelpDatabase.Release2THelpDatabases.ShowTableOfContents not implemented6THelpDatabases.ShowHelpForPascalSource not implementedNo help found for ""/THelpViewer.ShowTableOfContents not implemented7THelpViewer.ShowNode not implemented for this help type!help viewer is already registered property  procedure/function  var  type  const  in  ()$()$(%RegisterNewDialogItem NewIDEItems=nilBUILDSTRCONSTSShow all output lines$buildstrconsts.lisshowalloutputlines#Unable to find parser for tool "%s"+buildstrconsts.lisunabletofindparserfortool$Unable to find parser with name "%s",buildstrconsts.lisunabletofindparserwithname Pascal unitbuildstrconsts.lirsunitCreate a new pascal unit.&buildstrconsts.liscreateanewpascalunitlpk._NoneText FreePascalDelphiLFMXMLHTMLC++PerlJavaBashPythonPHPSQLCSSJScriptDiffBatIniPOPike Free PascalecFind ecFindAgain ecFindNextecFindPrevious ecReplaceecIncrementalFindecFindProcedureDefinitionecFindProcedureMethodecGotoLineNumberecFindNextWordOccurrenceecFindPrevWordOccurrence ecFindInFiles ecJumpBack ecJumpForwardecAddJumpPointecViewJumpHistoryecJumpToNextErrorecJumpToPrevErrorecProcedureListecFindDeclarationecFindBlockOtherEndecFindBlockStartecOpenFileAtCursorecGotoIncludeDirectiveecJumpToInterfaceecJumpToInterfaceUsesecJumpToImplementationecJumpToImplementationUsesecJumpToInitializationecSelectionUpperCaseecSelectionLowerCaseecSelectionSwapCaseecSelectionTabs2SpacesecSelectionEncloseecSelectionCommentecSelectionUncommentecSelectionSortecSelectionBreakLinesecSelectToBraceecSelectCodeBlock ecSelectWord ecSelectLineecSelectParagraphecSelectionEncloseIFDEFecToggleCommentecInsertCharacter ecInsertGUIDecInsertFilenameecInsertUserNameecInsertDateTimeecInsertChangeLogEntryecInsertCVSAuthorecInsertCVSDateecInsertCVSHeader ecInsertCVSIDecInsertCVSLogecInsertCVSNameecInsertCVSRevisionecInsertCVSSourceecInsertGPLNoticeecInsertGPLNoticeTranslatedecInsertLGPLNoticeecInsertLGPLNoticeTranslatedecInsertModifiedLGPLNotice$ecInsertModifiedLGPLNoticeTranslatedecInsertMITNoticeecInsertMITNoticeTranslatedecWordCompletionecCompleteCodeecIdentCompletion ecSyntaxCheckecGuessUnclosedBlockecGuessMisplacedIFDEFecConvertDFM2LFM ecCheckLFMecConvertDelphiUnitecConvertDelphiProjectecConvertDelphiPackageecConvertEncodingecMakeResourceStringecDiff ecExtractProcecFindIdentifierRefsecRenameIdentifierecInvertAssignmentecShowCodeContextecShowAbstractMethodsecRemoveEmptyMethodsecRemoveUnusedUnits ecUseUnitecFindOverloadsecFindUsedUnitRefsecCompleteCodeInteractiveecNew ecNewUnit ecNewFormecOpenecRevertecSaveecSaveAs ecSaveAllecClose ecCloseAllecCleanDirectory ecRestartecQuitecCloseOtherTabsecCloseRightTabs ecMultiPasteecToggleFormUnitecToggleObjectInspecToggleSourceEditorecToggleCodeExplecToggleFPDocEditorecToggleMessagesecToggleWatchesecToggleBreakPointsecToggleDebuggerOutecViewUnitDependenciesecViewUnitInfoecToggleLocalsecToggleCallStackecToggleSearchResultsecViewAnchorEditorecViewTabOrderecToggleCodeBrowserecToggleCompPaletteecToggleIDESpeedBtnsecViewComponentsecToggleRestrictionBrowserecViewTodoListecToggleRegistersecToggleAssemblerecToggleDebugEventsecViewPseudoTerminal ecViewThreads ecViewHistoryecViewMacroList ecNextEditor ecPrevEditorecMoveEditorLeftecMoveEditorRightecToggleBreakPointecToggleBreakPointEnabledecRemoveBreakPointecMoveEditorLeftmostecMoveEditorRightmostecNextSharedEditorecPrevSharedEditor ecNextWindow ecPrevWindowecMoveEditorNextWindowecMoveEditorPrevWindowecMoveEditorNewWindowecCopyEditorNextWindowecCopyEditorPrevWindowecCopyEditorNewWindowecPrevEditorInHistoryecNextEditorInHistory ecGotoEditor1 ecGotoEditor2 ecGotoEditor3 ecGotoEditor4 ecGotoEditor5 ecGotoEditor6 ecGotoEditor7 ecGotoEditor8 ecGotoEditor9 ecGotoEditor0 ecLockEditorecSetFreeBookmarkecPrevBookmarkecNextBookmarkecClearBookmarkForFileecClearAllBookmarkecGotoBookmarksecToggleBookmarksecSynMacroRecordecSynMacroPlay ecCompileecBuildecQuickCompileecCleanUpAndBuild ecAbortBuildecRunWithoutDebuggingecRunecPause ecStepInto ecStepOverecStepToCursor ecRunToCursor ecStopProgramecResetDebuggerecRunParameters ecBuildFile ecRunFileecConfigBuildFile ecInspect ecEvaluate ecAddWatchecShowExecutionPoint ecStepOutecStepIntoInstrecStepOverInstrecStepIntoContextecStepOverContext ecAddBpSourceecAddBpAddressecAddBpDataWatchecAttachecDetach ecNewProjectecNewProjectFromFile ecOpenProjectecCloseProject ecSaveProjectecSaveProjectAsecPublishProjectecProjectInspectorecAddCurUnitToProjecRemoveFromProjecViewProjectUnitsecViewProjectFormsecViewProjectSourceecProjectOptionsecProjectChangeBuildModeecProjectResaveFormsWithI18n ecOpenPackageecOpenPackageFileecOpenPackageOfCurUnitecAddCurFileToPkgecNewPkgComponentecPackageGraphecEditInstallPkgsecConfigCustomComps ecNewPackageecExtToolFirst ecExtToolLastecEnvironmentOptionsecManageDesktopsecRescanFPCSrcDirecEditCodeTemplatesecCodeToolsDefinesEdecExtToolSettingsecConfigBuildLazarusecBuildLazarusecBuildAdvancedLazarusecWindowManagerecAboutLazarus ecOnlineHelp ecContextHelpecEditContextHelpecReportingBug ecFocusHint ecSmartHintecDesignerCopy ecDesignerCutecDesignerPasteecDesignerSelectParentecDesignerMoveToFrontecDesignerMoveToBackecDesignerForwardOneecDesignerBackOneecDesignerToggleNonVisCompsecIdePTmplEdNextCellecIdePTmplEdNextCellSelecIdePTmplEdNextCellRotateecIdePTmplEdNextCellSelRotateecIdePTmplEdPrevCellecIdePTmplEdPrevCellSelecIdePTmplEdCellHomeecIdePTmplEdCellEndecIdePTmplEdCellSelectecIdePTmplEdFinishecIdePTmplEdEscapeecIdePTmplEdNextFirstCellecIdePTmplEdNextFirstCellSelecIdePTmplEdNextFirstCellRotate"ecIdePTmplEdNextFirstCellSelRotateecIdePTmplEdPrevFirstCellecIdePTmplEdPrevFirstCellSelecIdePTmplEdOutNextCellecIdePTmplEdOutNextCellSelecIdePTmplEdOutNextCellRotate ecIdePTmplEdOutNextCellSelRotateecIdePTmplEdOutPrevCellecIdePTmplEdOutPrevCellSelecIdePTmplEdOutCellHomeecIdePTmplEdOutCellEndecIdePTmplEdOutCellSelectecIdePTmplEdOutFinishecIdePTmplEdOutEscapeecIdePTmplEdOutNextFirstCellecIdePTmplEdOutNextFirstCellSel"ecIdePTmplEdOutNextFirstCellRotate%ecIdePTmplEdOutNextFirstCellSelRotateecIdePTmplEdOutPrevFirstCellecIdePTmplEdOutPrevFirstCellSelecIdePSyncroEdNextCellecIdePSyncroEdNextCellSelecIdePSyncroEdPrevCellecIdePSyncroEdPrevCellSelecIdePSyncroEdCellHomeecIdePSyncroEdCellEndecIdePSyncroEdCellSelectecIdePSyncroEdEscapeecIdePSyncroEdNextFirstCellecIdePSyncroEdNextFirstCellSelecIdePSyncroEdPrevFirstCellecIdePSyncroEdPrevFirstCellSelecIdePSyncroEdOutNextCellecIdePSyncroEdOutNextCellSelecIdePSyncroEdOutPrevCellecIdePSyncroEdOutPrevCellSelecIdePSyncroEdOutCellHomeecIdePSyncroEdOutCellEndecIdePSyncroEdOutCellSelectecIdePSyncroEdOutEscapeecIdePSyncroEdOutNextFirstCell!ecIdePSyncroEdOutNextFirstCellSelecIdePSyncroEdOutPrevFirstCell!ecIdePSyncroEdOutPrevFirstCellSelecIdePSyncroEdSelStart SourceEditorSourceEditorOnly IDECmdScopeSrcEditOnlyMultiCaretSourceEditorOnlyTemplateEditSourceEditorOnlyTemplateEditOffSourceEditorOnlySyncroEditSelSourceEditorOnlySyncroEdit DesignerOnlyObjectInspectorOnlyTIDECommandScope.AddWindowClass"TIDECommandScope.WriteDebugReport  nil/  =*TIDECommandCategory.WriteScopeDebugReport  Scope=nil"" ->  ()'IDECommandToIdent: command %d not foundLeftTop:  - :.TComponentWalker.AddOwnedPersistent: TheRoot "" <> FLookupRoot "TComponentWalker.Walk:  is Destroying.TComponentWalker.Walk: "" LookupRoot <> FLookupRoot "4TComponentTreeView.DoSelectionChanged ANode.Data=nilParentoi_formoi_comp oi_controloi_box oi_collectionoi_item/TComponentTreeView.NodeExpanded: Removing node  failed.+TComponentTreeView.ChangeCompZOrder failed.CountItem/ PropertyNameInclude BaseClass-TOIFavoriteProperties.WriteDebugReport Count=  i=PropertyName="" Include= BaseClassName=" BaseClass=: , *TComponentListPropertyEditor.Component=nil1 item items%TSubComponentListEditor.Component=nillaz_add laz_delete arrow_downarrow_up$@@ Umg-MYmQWLineTypeTLineSeries: ColorEach error6[TLineSeries.DrawSingleLineInStack] Unhandled LineType? ףp= ף?BarWidthStyle not implemented??@?YCalculation of TBarSeries.Extent is not possible when the series is not added to a chart.<[TBarSeries.SetBarShape] No drawing procedure for bar shape.Wrong BarWidth Percent? AxisIndexX!Obsolete, use ConnectType insteadStairsInvertedStairs)Obsolete, use OnCustomDrawPointer instead OnDrawPointer UPLAYSOUNDUnable to play uplaysound.c_unabletoplayplayaplayaplay -qpaplaymplayermplayer -really-quietCMuspacatpacat -pffplayffplay -autoexit -nodispmpvmpv --no-video --quietcvlccvlc -q --play-and-exitcanberra-gtk-playcanberra-gtk-play -c never -fafplay PlaySound0.0.8 Gordon Bamber Public Domainminesadorada@charcodelvalle.com MODIFIEDGPLKPlays WAVE sounds in Windows or Linux Public methods: Execute and StopSound %s Message:%sPlaystyle=paASync:  %s Message:%sPlaystyle=paSync: 0The play command %s does not work on your system LazControlsPNG  IHDRw=bKGD pHYs_tIME *,;_IDATHǍKUGM̚$,5lnEI$kՃEa``- V-E eX" 1M2)ʷ&̴_9s?@Hz/b.=>hbKÉvbWpm:p!؛jg{μcT Cʞ>] -:s*|?Z0볰qs]Gղ`l dζl%wUvБ£x TWag@;,LdXȹUEPN.^< ͦWZ[h>(2PvG:([ز )ߤY5lXVAsSquELT%^N~1#w3'sqB7[bfKsY"6$?Xds@cuz$a8*ozFQ.k;'})R6W=Rbiy?)( AIENDB`PNG TPlaysound?Builtin?5Obsolete, use TCustomChartSeries.ShowInLegend instead ShowInLegend-DT!@?@? ףp= ף?-DT! @!3|@u@-DT!?!3|@ư>?-DT!?^8U)zj@>[TCustomPieSeries.GetLegendItems] lmStyle cannot be used here.@̾:F@f@v@@?Y@}Ô%ITX,iMKAChart??RestoreExtentOnStepWheelUpDirection GrabRadius%s: %dShapeSize>Obsolete, use TZoomDragTool.RatioLimit=zlrProportional instead Proportional21 anonymous anonymous@  :USER PASS ACCT SITE @OPEN 0AUTH TLSPBSZ 0PROT PPROT CTYPE ISTRU FMODE SREST 0REST 1QUIT,.()21EPSV PASV20EPRT ||PORT TYPE ANLSTLISTREST RETR ALLO STOR STOUAPPE NOOPRNFR RNTO DELE SIZE CWD CDUP/RMD MKD PWD"ABOR )pppppppppp $!!!S*$TTT$DD$hh mm ss$YYYY$n*)pppppppppp $!!!S*$DD$TTT$hh mm ss$YYYY$n*!pppppppppp $!!!S*$TTT$DD$UUUUU$n*!pppppppppp $!!!S*$DD$TTT$UUUUU$n* pppppppppp $!!S*$TTT$DD$UUUUU$n*pppppppppp $!S*$TTT$DD$UUUUU$n*!d $!S*$TTT$DD$UUUUU$n*MM DD YY hh mmH !S* n*MM DD YY hh mmH $ d!n*MM DD YYYY hh mmH !S* n*MM DD YYYY hh mmH $ d!n*DD MM YYYY hh mmH !S* n*DD MM YYYY hh mmH $ d!n*v*$ DD TTT YYYY hh mmv*$!DD TTT YYYY hh mm'n*$ YYYY MM DD hh mm$S*!S*$MM DD YY hh mm ss !n*!S*$DD MM YY hh mm ss !n*n*!S*$MM DD YY hh mm ss dn*!S*$DD MM YY hh mm ss d$$S* TTT DD YYYY hh mm ss $n* $ d $S* TTT DD YYYY hh mm ss $n*d $S*$TTT DD YYYY hh mm$n*d $S*$TTT DD$hh mm$n*+nnnnnnnn.nnn dSSSSSSSSSSS MM DD YY hh mmH*- SSSSS YY MM DD hh mm ss n*"- d= SSSSS YY MM DD hh mm ss n*Jnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn SSSSSSSSS MM DD YYYY hh mmMn*\x SSSSSSSSS MM DD YYYY hh mm7- SSSSSSSSSSSS d MM DD YYYY hh mm n*=- YY MM DD hhmm d SSSSSSSSS n*5nnnnnnnn SSSSSSS DD TTT YY hh mm ss;- YYYY MM DD SSSSS d=O n*' $S* MM DD YY hh mm ss !n*'d $S* MM DD YY !n*8 TTT DD YYYY n*8 d n* -D -> .DIR;P @@@..EPLFChart%s|%s"""%s|"%s"?$|AddXListY: XList is emptyAddXListYList: XList is emptyAddXListYList: YList is emptyAddXYList: YList is emptyCannot set XCountCannot set YCount@ ףp= ף?A?!Parse error at line %s: "%s" [%s]Zone-Continuation for line tag "%s" is not allowedRuleLinkUnknown line tag "%s"3Name on Zone line "%s" too long. (TZ_ZONENAME_SIZE)Rule on Zone line "%s" empty.-!Rule on Zone line "%s" not found.<Format on Zone line "%s" too long. (TZ_TIMEZONELETTERS_SIZE)3Name on Rule line "%s" too long. (TZ_RULENAME_SIZE)onlymax$Year type not supported in line "%s"4ON Rule condition at "%s" too long. (TZ_ONRULE_SIZE)8Zone link FROM name "%s" is too long. (TZ_ZONENAME_SIZE)6Zone link TO name "%s" is too long. (TZ_ZONENAME_SIZE)/Zone info not found for link FROM "%s" TO "%s".Zone not found [%s]&No valid conversion rule for Zone [%s] The time %s does not exist in %s *Time zone database path does not exist: %safrica antarcticaasia australasiaeurope northamerica southamericabackwardetcetera- maxonlyRuleZoneJanFebMarAprMayJunJulAugSepOctNovDec/Invalid time form conversion from "%d" to "%d".%s5Gregorian Leap, date does not exist. [%.4d.%.2d.%.2d]Invalid month number "%s"Invalid short month name "%s"SundayMondayTuesday WednesdayThursdayFridaySaturdaySunMonTueWedThuFriSatUnknown day name: Invalid date in "until" fields;Macro expansion not possible: Unrecognised conditional part>>=<<=8Macro expansion not possible: Unknown condition operatorfirstlast0Macro expansion not possible: Unrecognised macro-0:Time string is empty.Unexpected number of colons.%Hours component "%d" is out of range.'Minutes component "%d" is out of range.'Seconds component "%d" is out of range./Total number of seconds "%d" exceeds the limit./Failed to parse time string "%s" with error: %s%.4d.%.2d.%.2d %.2d:%.2d:%.2dSystemABOUTPLAYSOUNDComponent nameaboutplaysound.rs_componentnameAboutaboutplaysound.rs_aboutLicenseaboutplaysound.rs_licenseByaboutplaysound.rs_byForaboutplaysound.rs_for(Resource datafile license.lrs is missing!aboutplaysound.rs_datafilemissing.There is something wrong with the Licence text"aboutplaysound.rs_licensetexterrorSubcomponent TAboutBox Erroraboutplaysound.rs_aboutboxerror 1.0.0.0... :  () Version: : GPL: LGPL: M.I.T.: Modified GPL : Proprietrygpl.txtlgpl.txtmit.txtmodifiedgpl.txt   2024/03/14() As a special exception : LicensingAboutGPLLGPLMIT MODIFIEDGPL PROPRIETRYTAboutPlaySoundThis is to demonstratethe use of TAboutPlaySound&Set its properties in your Constructor0.0.8.0 Gordon Bamberminesadorada@charcodelvalle.com Public Domain* Copyright (C) This source is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. A copy of the GNU General Public License is available on the World Wide Web at . You can also obtain it by writing to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.TXT Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.Z Copyright (c) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version with the following modification: As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules,and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.@@?@X@aw̫?@L7A`вHm~?&?jP{?RESOURCE.Cannot find resource reader for extension '%s'resource.sreadernotfoundext.Cannot find a resource reader: unknown format.resource.sreadernotfoundprobe.Cannot find resource writer for extension '%s'resource.swriternotfoundext%Cannot modify %s resource descriptionresource.sdescchangenotallowed%Cannot modify %s resource language ID resource.slangidchangenotallowed8Duplicate resource: Type = %s, Name = %s, Lang ID = %.4xresource.sresduplicate*Cannot find resource: Type = %s, Name = %sresource.sresourcenotfound:Cannot find resource: Type = %s, Name = %s, Lang ID = %.4xresource.sresourcenotfoundlang VERSIONTYPES.Name '%s' is not a valid 8-cipher hex sequence'versiontypes.sverstrtablenamenotallowedKey '%s' not found$versiontypes.sverstrtablekeynotfoundDuplicate key '%s'%versiontypes.sverstrtableduplicatekeyStringFileInfo VarFileInfo TranslationVS_VERSION_INFO RESFACTORY7A resource class for the type %s is already registered.resfactory.salreadyregisteredSTRINGTABLERESOURCE2Resource ID must be an ordinal in the range 1-4096#stringtableresource.snamenotallowedString ID out of bounds: %d%stringtableresource.sindexoutofboundsInputSlot InputSlotPageSizejob-sheets ResolutionDefaultResolution2**************************************************!Printer "%s" Number of Options %dname="%s" value="%s")DebugOptions: There are no valid printersUnable to contact server: Custom%s.%dx%d'TCUPSPrinter.PrintFile missing Filenameattributes-charsetattributes-natural-languagehttp://%s:%d/jobs/%djob-urirequesting-user-name/jobs/ipp://localhost/printers/%sprinter-uri/Lst must be assignedBTCUPSPrinter.GetEnumAttributeString CUPSLibInstalled not installed/TCUPSPrinter.GetEnumAttributeString no Response9TCUPSPrinter.GetEnumAttributeString Attribute not found: /TCUPSPrinter.GetAttributeString failed: aName="CTCUPSPrinter.DoBeginDoc already called. Maybe you forgot an EndDoc?~/tmp//tmp/ /var/tmp/ OutPrinter_yyyymmmddd-hhnnss.raw.psUnable to write to ""CUPS printing: PageSize"%s" is not a valid printer.copies-defaultcopiesorientation-requested-defaultmedia-defaultR@printer-stateprinter-typeprinter-is-accepting-jobsCourier Courier-BoldCourier-ObliqueCourier-BoldOblique HelveticaHelvetica-BoldHelvetica-ObliqueHelvetica-BoldOblique Times-Roman Times-Bold Times-ItalicTimes-BoldItalicSymbol %%d %d translate 180 rotate%d 0 translate 90 rotate%d %d translate 90 neg rotate%% Orientation: BoundingBox: %d %d %d %d?B%.3f setlinewidtho@%.3f %.3f %.3f setrgbcolor % [] 0[5 2] 0[1 3] 0 [5 2 2 2] 0[5 2 2 2 2 2] 0 %s setdashtimesTimes monospacedcourierCourierserif sansserif HelveticasymbolSymbolBoldObliqueItalic Times-Roman- %f %f moveto %last poseofill+/%s findfont %% a pattern font patternfill patternfillstrokeC?R@Restoring Old clip rect cliprestore%Pushing and Setting current clip rectclipsave%f %f %f %f rectclip;On?%!PS-Adobe-3.0(Creator: Lazarus PostScriptCanvas for %s Title: %s%%CreationDate: %%Pages: (atend)%%PageResources: (atend)%%PageOrder: Ascend=%------------------------------------------------------------=%================== BEGIN SETUP==============================6/RE { % /NewFontName [NewEncodingArray] /FontName RE - findfont dup length dict begin { 1 index /FID ne {def} {pop pop} ifelse } forall /Encoding exch def /FontName 1 index def currentdict definefont pop end } bind def6/scp {currentpoint /oldy exch def /oldx exch def } def /rcp {oldx oldy moveto} bind def:/uli { 2 copy /uposy exch def /uposx exch def moveto } def&/ule { % underlinepenwidh underlinepos%scp gsave 0 exch rmoveto setlinewidth?uposx oldx sub 0 rlineto [] 0 setdash stroke grestore rcp } def!%%BeginProcSet: patternfill 1.0 0$% width height matrix proc key cache% definepattern -\> font/definepattern { %def 7 dict begin /FontDict 9 dict def FontDict begin /cache exch def /key exch def /proc exch cvx def- /mtx exch matrix invertmatrix def /height exch def /width exch def) /ctm matrix currentmatrix def' /ptm matrix identmatrix def /str. (12345678901234567890123456789012) def end /FontBBox [ %def# 0 0 FontDict /width get FontDict /height get ] def) /FontMatrix FontDict /mtx get def& /Encoding StandardEncoding def /FontType 3 def /BuildChar { %def pop begin FontDict begin' width 0 cache { %ifelse3 0 0 width height setcachedevice }{ %else setcharwidth } ifelse) 0 0 moveto width 0 lineto3 width height lineto 0 height lineto& closepath clip newpath# gsave proc grestore end end } def0 FontDict /key get currentdict definefont end% dict patternpath -% dict matrix patternpath -/patternpath { %def# dup type /dicttype eq { %ifelse) begin FontDict /ctm get setmatrix }{ %else. exch begin FontDict /ctm get setmatrix concat } ifelse currentdict setfont FontDict begin FontMatrix concat width 0 dtransform1 round width div exch round width div exch 0 height dtransform round height div exch+ 0 0 transform round exch round exch ptm astore setmatrix  pathbbox. height div ceiling height mul 4 1 roll, width div ceiling width mul 4 1 roll, height div floor height mul 4 1 roll* width div floor width mul 4 1 roll/ 2 index sub height div ceiling cvi exch. 3 index sub width div ceiling cvi exch 4 2 roll moveto' FontMatrix ptm invertmatrix pop { %repeat gsave ptm concat- dup str length idiv { %repeat str show } repeat+ dup str length mod str exch' 0 exch getinterval show grestore 0 height rmoveto } repeat pop end end% dict patternfill -% dict matrix patternfill -/patternfill { %def gsave clip patternpath grestore newpath% dict patterneofill -% dict matrix patterneofill -/patterneofill { %def eoclip patternpath% dict patternstroke -% dict matrix patternstroke -/patternstroke { %def# strokepath clip patternpath"% dict ax ay string patternashow -)% dict matrix ax ay string patternashow -/patternashow { %def (0) exch { %forall! 2 copy 0 exch put pop dup false charpath  currentpoint+ 5 index type /dicttype eq { %ifelse 5 index patternfill }{ %else' 6 index 6 index patternfill } ifelse moveto 3 copy pop rmoveto } forall pop pop pop( dup type /dicttype ne { pop } if pop% dict string patternshow -"% dict matrix string patternshow -/patternshow { %def 0 exch 0 exch patternashow/opaquepatternfill { %def 1 setgray fill patternfill %%EndProcSet %%EndProlog %%BeginSetup%15 15 [300 72 div 0 0 300 72 div 0 0]{ %definepattern 2 setlinecap 7.5 0 moveto 15 7.5 lineto 0 7.5 moveto 7.5 15 lineto 2 setlinewidth stroke} bind#/bsBDiagonal true definepattern pop 7.5 0 moveto 0 7.5 lineto 15 7.5 moveto 7.5 15 lineto#/bsFDiagonal true definepattern pop%30 30 [300 72 div 0 0 300 72 div 0 0] 2 2 scale 0.5 setlinewidth stroke#/bsDiagCross true definepattern pop 15 0 moveto 15 30 lineto 0 15 moveto 30 15 lineto/bsCross true definepattern pop 0 7.5 moveto 15 7.5 lineto$/bsHorizontal true definepattern pop 7.5 0 moveto 7.5 15 lineto"/bsVertical true definepattern pop %%EndSetup<%%====================== END SETUP ========================= %%Page: 1 1showpage%%EOF Pages: %d Page: %d %dnewpathDoMoveTo(%d,%d)DoLineTo(%d,%d)%f %f lineto stroke %f %f lineto %f %f %s curveto closepath %f %f moveto %f %f linetoRectangle(%d,%d,%d,%d)FillRect(%d,%d,%d,%d)RoundRect(%d,%d,%d,%d,%d,%d)Jmatrix currentmatrix %f %f translate %f %f scale 0 0 1 %d %d arc setmatrixEllipse(%d,%d,%d,%d)?arcQmatrix currentmatrix %.3f %.3f translate %.3f %.3f scale 0 0 1 %d %d %s setmatrix%.3f %.3f movetoarcn?Umatrix currentmatrix %.3f %.3f translate %.3f %.3f scale 0 0 1 %.3f %.3f %s setmatrixRadialPie(%d,%d,%d,%d,%d,%d) %d %d lineto%.3f %.3f lineto? %f %f uli %.3f %d ulegrestoregsave$@ %.2f rotate/DeviceRGB setcolorspace%f %f translate %f %f scale<< /ImageType 1 /Width  /Height  /BitsPerComponent 8 /Decode [0 1 0 1 0 1][%d %d %d %d %d %d] /ImageMatrix / /DataSource currentfile /ASCII85Decode filter>>image% end of image dataChord(%d,%d,%d,%d,%d,%d) @ libcups.so libcups.so.2/usr/lib/libcups.dylibCan not load cups librarycupsLangEncoding cupsLangFlush cupsLangFree cupsLangGet httpCheck httpClose httpConnecthttpConnectEncrypt httpDeletehttpEncryption httpError httpFlushhttpGethttpGetshttpGetDateStringhttpGetDateTime httpGetFieldhttpGetSubFieldhttpHeadhttpInitialize httpOptionshttpPosthttpPuthttpRead httpReconnect httpSeparate httpSetField httpStatus httpTrace httpUpdatehttpWait httpWrite httpGetLengthhttpMD5 httpMD5Final httpMD5StringppdClose ppdCollect ppdConflictsppdEmit ppdEmitFd ppdEmitJCL ppdFindChoiceppdFindMarkedChoice ppdFindOption ppdIsMarkedppdMarkDefaults ppdMarkOptionppdOpen ppdOpenFd ppdOpenFile ppdPageLength ppdPageSize ppdPageWidthppdErrorString ppdFindAttrppdFindNextAttr ppdLastError ippAddBooleanippAddBooleans ippAddDate ippAddIntegerippAddIntegers ippAddRange ippAddRangesippAddResolutionippAddResolutionsippAddSeparator ippAddString ippAddStrings ippDateToTime ippDeleteippErrorStringippFindAttributeippFindNextAttribute ippLengthippNewippRead ippTimeToDateippWriteippPort ippSetPort _ipp_add_attr_ipp_free_attr cupsServercupsGetDefault cupsGetPPD cupsLastErrorcupsGetPrinterscupsDoFileRequest cupsCancelJobcupsEncryption cupsFreeJobscupsGetClasses cupsGetJobs cupsPrintFilecupsPrintFiles cupsTempFile cupsTempFd cupsAddDest cupsFreeDests cupsGetDest cupsGetDests cupsSetDests cupsAddOptioncupsEncodeOptionscupsFreeOptions cupsGetOptioncupsParseOptionscupsMarkOptionscupsGetPasswordcupsSetEncryptioncupsSetPasswordCB cupsSetServer cupsSetUsercupsUser?@@CurPoint: x=%f y=%f.CurMatrix: xx=%f yx=%f xy=%f yy=%f x0=%f y0=%f?o@bold italic ??@ @;On?$@default monospace sans-serif %s %s %dpx@      @P?@%%PageOrientation: landscape%%PageOrientation: portait$Error: unable to write cairo ps to ""\() showF/Arr%d %% %.4x-%.4x[] def/%s Arr%d /%s RE%s%d%d"/%s { /%s %d selectfont } bind def p?//uni Times-Romanprinter_remote_stopped :printer-locationprinter-infopage-ranges-supportedjob-priority-supportedjob-priority-defaulthh:nn:ssjob-hold-until indefiniteday-timeeveningnightweekend second-shift third-shiftHH:NN:SS00:00:00copies page-rangesOddEvenpage-set"separate-documents-collated-copies$separate-documents-uncollated-copiesmultiple-document-handlingReverse OutputOrder job-priorityno-holdprinter_remoteprinter_remote_stoppedprinter_stoppedcollateun_revnumber-up-supportedPageSize MediaType InputSlot Resolutionjob-sheets-supportednone job-sheetsjob-sheets-default number-upnumber-up-defaultPageSizePageRegionMediaTypeResolutionInputSlot portrait landscape rev_landscape rev_portrait pagesheet_1 pagesheet_2 pagesheet_40124number-up,PRINTER4LAZSTRCONSTCancelprinter4lazstrconst.p4lrscancelPrinter properties*printer4lazstrconst.p4lrsprinterpropertiesOkprinter4lazstrconst.p4lrsokGeneral printer4lazstrconst.p4lrsgeneral Paper size"printer4lazstrconst.p4lrspapersize Paper type"printer4lazstrconst.p4lrspapertype Paper source$printer4lazstrconst.p4lrspapersource Resolution#printer4lazstrconst.p4lrsresolution Orientation$printer4lazstrconst.p4lrsorientationPortrait!printer4lazstrconst.p4lrsportrait Landscape"printer4lazstrconst.p4lrslandscapeReverse landscape)printer4lazstrconst.p4lrsreverselandscapeReverse portrait(printer4lazstrconst.p4lrsreverseportraitBanners printer4lazstrconst.p4lrsbannersStartprinter4lazstrconst.p4lrsstartEndprinter4lazstrconst.p4lrsendPages per sheet&printer4lazstrconst.p4lrspagespersheetMargins printer4lazstrconst.p4lrsmarginsAdvanced!printer4lazstrconst.p4lrsadvancedNo default printer found.)printer4lazstrconst.p4lrsnodefaultprinter(mm)%printer4lazstrconst.p4lrsshortunitsmm(inches))printer4lazstrconst.p4lrsshortunitsinchesMore >>(printer4lazstrconst.p4lrsbuttonmorearrow<< Less(printer4lazstrconst.p4lrsbuttonlessarrowReady&printer4lazstrconst.p4lrsjobstatereadyPrinting)printer4lazstrconst.p4lrsjobstateprintingStopped(printer4lazstrconst.p4lrsjobstatestopped(Accepting jobs)*printer4lazstrconst.p4lrsjobstateaccepting(Rejecting jobs)*printer4lazstrconst.p4lrsjobstaterejectingAll!printer4lazstrconst.p4lrsallpagesOdd printer4lazstrconst.p4lrspageoddEven!printer4lazstrconst.p4lrspageeven Not available%printer4lazstrconst.p4lrsnotavailablemm&printer4lazstrconst.p4lrsabbrevunitsmm"*printer4lazstrconst.p4lrsabbrevunitsinches? BP(?A,0.00 fffffff?? InputSlotPageSizegeometricPrecision crispEdgesM0,4 h8M4,0 v8 M0,0 l8,8 M0,8 l8,-8M0,4 h8 M4,0 v8M0,0 l8,8 M0,8 l8,-82,21,12,1,1,1 2,1,1,1,1,1 <>"'&blackwhite #%.2x%.2x%.2x%g,%g7 .���������������������������R�������%s�����������������������������������5$@@2p?%d %d !.Sstroke:;stroke-width:1;?-defaultArialFont "%s" not found."Tg x="%d" y="%d"? transform="rotate(%g,%d,%d)"*fill:%s; font-family:'%s'; font-size:%dpt; font-weight:bold; font-style:oblique;( text-decoration:underline,line-through; text-deocration:underline; text-decoration:line-through;;%s fill: none;fill:%s;fill-opacity:%s; url(#bs%d) stroke: none stroke-width:stroke-dasharray:%s;stroke-opacity:%s;OpenGL&A control can not be shared by itself.CTarget control is sharing too. A sharing control can not be shared.Could not load OpenGL from glAccumglAlphaFuncglAreTexturesResidentglArrayElementglBeginglBindTextureglBitmapglBlendFuncglCallListglCallListsglClearglClearAccumglClearColorglClearDepthglClearIndexglClearStencilglClipPlaneglColor3bglColor3bvglColor3dglColor3dvglColor3fglColor3fvglColor3iglColor3ivglColor3sglColor3svglColor3ubglColor3ubvglColor3uiglColor3uivglColor3usglColor3usvglColor4bglColor4bvglColor4dglColor4dvglColor4fglColor4fvglColor4iglColor4ivglColor4sglColor4svglColor4ubglColor4ubvglColor4uiglColor4uivglColor4usglColor4usvglColorMaskglColorMaterialglColorPointerglCopyPixelsglCopyTexImage1DglCopyTexImage2DglCopyTexSubImage1DglCopyTexSubImage2DglCullFaceglDeleteListsglDeleteTexturesglDepthFuncglDepthMaskglDepthRangeglDisableglDisableClientStateglDrawArraysglDrawBufferglDrawElementsglDrawPixelsglEdgeFlagglEdgeFlagPointerglEdgeFlagvglEnableglEnableClientStateglEndglEndListglEvalCoord1dglEvalCoord1dvglEvalCoord1fglEvalCoord1fvglEvalCoord2dglEvalCoord2dvglEvalCoord2fglEvalCoord2fvglEvalMesh1glEvalMesh2glEvalPoint1glEvalPoint2glFeedbackBufferglFinishglFlushglFogfglFogfvglFogiglFogivglFrontFaceglFrustumglGenListsglGenTexturesglGetBooleanvglGetClipPlaneglGetDoublevglGetErrorglGetFloatvglGetIntegervglGetLightfvglGetLightivglGetMapdvglGetMapfvglGetMapivglGetMaterialfvglGetMaterialivglGetPixelMapfvglGetPixelMapuivglGetPixelMapusvglGetPointervglGetPolygonStippleglGetStringglGetTexEnvfvglGetTexEnvivglGetTexGendvglGetTexGenfvglGetTexGenivglGetTexImageglGetTexLevelParameterfvglGetTexLevelParameterivglGetTexParameterfvglGetTexParameterivglHintglIndexMaskglIndexPointerglIndexdglIndexdvglIndexfglIndexfvglIndexiglIndexivglIndexsglIndexsvglIndexubglIndexubvglInitNamesglInterleavedArraysglIsEnabledglIsListglIsTextureglLightModelfglLightModelfvglLightModeliglLightModelivglLightfglLightfvglLightiglLightivglLineStippleglLineWidthglListBaseglLoadIdentityglLoadMatrixdglLoadMatrixfglLoadNameglLogicOpglMap1dglMap1fglMap2dglMap2fglMapGrid1dglMapGrid1fglMapGrid2dglMapGrid2fglMaterialfglMaterialfvglMaterialiglMaterialivglMatrixModeglMultMatrixdglMultMatrixfglNewListglNormal3bglNormal3bvglNormal3dglNormal3dvglNormal3fglNormal3fvglNormal3iglNormal3ivglNormal3sglNormal3svglNormalPointerglOrthoglPassThroughglPixelMapfvglPixelMapuivglPixelMapusvglPixelStorefglPixelStoreiglPixelTransferfglPixelTransferiglPixelZoomglPointSizeglPolygonModeglPolygonOffsetglPolygonStippleglPopAttribglPopClientAttribglPopMatrixglPopNameglPrioritizeTexturesglPushAttribglPushClientAttribglPushMatrixglPushNameglRasterPos2dglRasterPos2dvglRasterPos2fglRasterPos2fvglRasterPos2iglRasterPos2ivglRasterPos2sglRasterPos2svglRasterPos3dglRasterPos3dvglRasterPos3fglRasterPos3fvglRasterPos3iglRasterPos3ivglRasterPos3sglRasterPos3svglRasterPos4dglRasterPos4dvglRasterPos4fglRasterPos4fvglRasterPos4iglRasterPos4ivglRasterPos4sglRasterPos4svglReadBufferglReadPixelsglRectdglRectdvglRectfglRectfvglRectiglRectivglRectsglRectsvglRenderModeglRotatedglRotatefglScaledglScalefglScissorglSelectBufferglShadeModelglStencilFuncglStencilMaskglStencilOpglTexCoord1dglTexCoord1dvglTexCoord1fglTexCoord1fvglTexCoord1iglTexCoord1ivglTexCoord1sglTexCoord1svglTexCoord2dglTexCoord2dvglTexCoord2fglTexCoord2fvglTexCoord2iglTexCoord2ivglTexCoord2sglTexCoord2svglTexCoord3dglTexCoord3dvglTexCoord3fglTexCoord3fvglTexCoord3iglTexCoord3ivglTexCoord3sglTexCoord3svglTexCoord4dglTexCoord4dvglTexCoord4fglTexCoord4fvglTexCoord4iglTexCoord4ivglTexCoord4sglTexCoord4svglTexCoordPointerglTexEnvfglTexEnvfvglTexEnviglTexEnvivglTexGendglTexGendvglTexGenfglTexGenfvglTexGeniglTexGenivglTexImage1DglTexImage2DglTexParameterfglTexParameterfvglTexParameteriglTexParameterivglTexSubImage1DglTexSubImage2DglTranslatedglTranslatefglVertex2dglVertex2dvglVertex2fglVertex2fvglVertex2iglVertex2ivglVertex2sglVertex2svglVertex3dglVertex3dvglVertex3fglVertex3fvglVertex3iglVertex3ivglVertex3sglVertex3svglVertex4dglVertex4dvglVertex4fglVertex4fvglVertex4iglVertex4ivglVertex4sglVertex4svglVertexPointerglViewportFailed loading  from  libGL.so.1Could not load library: %s gluBeginCurvegluBeginPolygongluBeginSurface gluBeginTrimgluBuild1DMipmapLevelsgluBuild1DMipmapsgluBuild2DMipmapLevelsgluBuild2DMipmapsgluBuild3DMipmapLevelsgluBuild3DMipmapsgluCheckExtension gluCylindergluDeleteNurbsRenderergluDeleteQuadric gluDeleteTessgluDisk gluEndCurve gluEndPolygon gluEndSurface gluEndTrimgluErrorStringgluGetNurbsProperty gluGetStringgluGetTessPropertygluLoadSamplingMatrices gluLookAtgluNewNurbsRenderer gluNewQuadric gluNewTessgluNextContourgluNurbsCallbackgluNurbsCallbackDatagluNurbsCallbackDataEXT gluNurbsCurvegluNurbsPropertygluNurbsSurface gluOrtho2DgluPartialDiskgluPerspective gluPickMatrix gluProject gluPwlCurvegluQuadricCallbackgluQuadricDrawStylegluQuadricNormalsgluQuadricOrientationgluQuadricTexture gluScaleImage gluSpheregluTessBeginContourgluTessBeginPolygongluTessCallbackgluTessEndContourgluTessEndPolygon gluTessNormalgluTessProperty gluTessVertex gluUnProject gluUnProject4libGLU.so.1?-Cannot add matrix (%d,%d) with matrix (%d,%d)2Cannot subtract matrix (%d,%d) with matrix (%d,%d)2Cannot multiply matrix (%d,%d) with matrix (%d,%d)GInvalid (row,col) value. Matrix is (%d,%d), element required is (%d,%d)Invalid matrix: nil dataInvalid number of rows:Invalid number of columns:&Invalid matrix: incompatible data sizeFile: % Bad file format: can not load matrix Cannot invert non-square matrix٬:|?.Singular matrix: Pivot is %g, max element = %g|=Singular matrix: Pivot is  Singular matrix: Pivot has been >Cannot Element-wise mutiply matrix (%d,%d) with matrix (%d,%d)+Const Array size does not match Matrix sizeInvalid number of rows/cols:/,Matrix(%d,%d) does not fit im matrix(%d,%d)!5StringListToDMatrix error: stringlist with zero lines 7StringListToDMatrix error: first line with zero columns@StringListToDMatrix error: line %d with %d columns instead of %d#StringToDMatrix error: empty string; OpenGLContextLazOpenGLContextGtkGLAreanil TheType= depth= byte_order= colormap_size= bits_per_rgb= red_mask= red_shift= red_prec= green_mask= green_shift= green_prec= blue_mask= blue_shift= blue_prec= map_entries=get_xvisualinfo dpy=get_xvisualinfo visual=not implemented for gtk2&get_xvisualinfo vinfo_template.visual='get_xvisualinfo vinfo_template.visual: (get_xvisualinfo vinfo_template.visualid= GetDefaultXDisplay=%get_xvisualinfo vinfo_template.depth=&get_xvisualinfo vinfo_template.screen=get_xvisualinfo nitems_return=get_xvisualinfo vi=nil'gtk_gl_area_class_init parent_class=nil'gtk_gl_area_class_init object_class=nil1gdk_gl_choose_visual not implemented yet for gtk2(gdk_gl_context_share_new no visual foundQA BadMatch X error occurred. Most likely the requested OpenGL version is invalid.Could not find FB config1gdk_gl_context_share_new_usefpglx no visual found9gdk_gl_context_share_new_usefpglx context creation failedLOpenGLSwapBuffers Handle=0#LOpenGLSwapBuffers not a PGtkGLAreaLOpenGLCreateContextsize-allocateGLX_ARB_get_proc_addressGLX_ARB_create_contextGLX_ARB_create_context_profile!GLX_ARB_create_context_robustnessGLX_ARB_multisampleGLX_EXT_swap_controlGLX_EXT_visual_infoGLX_MESA_pixmap_colormapGLX_MESA_swap_controlGLX_SGI_swap_controlGLX_SGI_video_syncGLX_SGIS_multisample Unresolved: glXGetProcAddressglXGetProcAddressARBglXChooseVisualglXCreateContextglXDestroyContextglXMakeCurrentglXCopyContextglXSwapBuffersglXCreateGLXPixmapglXDestroyGLXPixmapglXQueryExtensionglXQueryVersionglXIsDirectglXGetConfigglXGetCurrentContextglXGetCurrentDrawableglXWaitGLglXWaitXglXUseXFontglXQueryExtensionsStringglXQueryServerStringglXGetClientStringglXGetCurrentDisplayglXChooseFBConfigglXGetFBConfigAttribglXGetFBConfigsglXGetVisualFromFBConfigglXCreateWindowglXDestroyWindowglXCreatePixmapglXDestroyPixmapglXCreatePbufferglXDestroyPbufferglXQueryDrawableglXCreateNewContextglXMakeContextCurrentglXGetCurrentReadDrawableglXQueryContextglXSelectEventglXGetSelectedEventglXCreateContextAttribsARBglXSwapIntervalEXTglXCreateGLXPixmapMESAglXSwapIntervalMESAglXGetSwapIntervalMESAglXReleaseBuffersMESAglXCopySubBufferMESAglXSwapIntervalSGIglXGetVideoSyncSGIglXWaitVideoSyncSGIglBlendColorglBlendEquationglDrawRangeElementsglTexImage3DglTexSubImage3DglCopyTexSubImage3DGL_ARB_imagingglColorTableglColorTableParameterfvglColorTableParameterivglCopyColorTableglGetColorTableglGetColorTableParameterfvglGetColorTableParameterivglColorSubTableglCopyColorSubTableglConvolutionFilter1DglConvolutionFilter2DglConvolutionParameterfglConvolutionParameterfvglConvolutionParameteriglConvolutionParameterivglCopyConvolutionFilter1DglCopyConvolutionFilter2DglGetConvolutionFilterglGetConvolutionParameterfvglGetConvolutionParameterivglGetSeparableFilterglSeparableFilter2DglGetHistogramglGetHistogramParameterfvglGetHistogramParameterivglGetMinmaxglGetMinmaxParameterfvglGetMinmaxParameterivglHistogramglMinmaxglResetHistogramglResetMinmaxglActiveTextureglClientActiveTextureglMultiTexCoord1dglMultiTexCoord1dvglMultiTexCoord1fglMultiTexCoord1fvglMultiTexCoord1iglMultiTexCoord1ivglMultiTexCoord1sglMultiTexCoord1svglMultiTexCoord2dglMultiTexCoord2dvglMultiTexCoord2fglMultiTexCoord2fvglMultiTexCoord2iglMultiTexCoord2ivglMultiTexCoord2sglMultiTexCoord2svglMultiTexCoord3dglMultiTexCoord3dvglMultiTexCoord3fglMultiTexCoord3fvglMultiTexCoord3iglMultiTexCoord3ivglMultiTexCoord3sglMultiTexCoord3svglMultiTexCoord4dglMultiTexCoord4dvglMultiTexCoord4fglMultiTexCoord4fvglMultiTexCoord4iglMultiTexCoord4ivglMultiTexCoord4sglMultiTexCoord4svglLoadTransposeMatrixfglLoadTransposeMatrixdglMultTransposeMatrixfglMultTransposeMatrixdglSampleCoverageglCompressedTexImage3DglCompressedTexImage2DglCompressedTexImage1DglCompressedTexSubImage3DglCompressedTexSubImage2DglCompressedTexSubImage1DglGetCompressedTexImageGL_ARB_multitextureglActiveTextureARBglClientActiveTextureARBglMultiTexCoord1dARBglMultiTexCoord1dvARBglMultiTexCoord1fARBglMultiTexCoord1fvARBglMultiTexCoord1iARBglMultiTexCoord1ivARBglMultiTexCoord1sARBglMultiTexCoord1svARBglMultiTexCoord2dARBglMultiTexCoord2dvARBglMultiTexCoord2fARBglMultiTexCoord2fvARBglMultiTexCoord2iARBglMultiTexCoord2ivARBglMultiTexCoord2sARBglMultiTexCoord2svARBglMultiTexCoord3dARBglMultiTexCoord3dvARBglMultiTexCoord3fARBglMultiTexCoord3fvARBglMultiTexCoord3iARBglMultiTexCoord3ivARBglMultiTexCoord3sARBglMultiTexCoord3svARBglMultiTexCoord4dARBglMultiTexCoord4dvARBglMultiTexCoord4fARBglMultiTexCoord4fvARBglMultiTexCoord4iARBglMultiTexCoord4ivARBglMultiTexCoord4sARBglMultiTexCoord4svARBGL_ARB_transpose_matrixglLoadTransposeMatrixfARBglLoadTransposeMatrixdARBglMultTransposeMatrixfARBglMultTransposeMatrixdARBGL_ARB_multisampleglSampleCoverageARBGL_ARB_texture_env_addGL_ARB_texture_cube_mapGL_ARB_depth_textureGL_ARB_point_parametersglPointParameterfARBglPointParameterfvARB GL_ARB_shadowGL_ARB_shadow_ambientGL_ARB_texture_border_clampGL_ARB_texture_compressionglCompressedTexImage3DARBglCompressedTexImage2DARBglCompressedTexImage1DARBglCompressedTexSubImage3DARBglCompressedTexSubImage2DARBglCompressedTexSubImage1DARBglGetCompressedTexImageARBGL_ARB_texture_env_combineGL_ARB_texture_env_crossbarGL_ARB_texture_env_dot3GL_ARB_texture_mirrored_repeatGL_ARB_vertex_blendglWeightbvARBglWeightsvARBglWeightivARBglWeightfvARBglWeightdvARBglWeightvARBglWeightubvARBglWeightusvARBglWeightuivARBglWeightPointerARBglVertexBlendARBGL_ARB_vertex_programglVertexAttrib1sARBglVertexAttrib1fARBglVertexAttrib1dARBglVertexAttrib2sARBglVertexAttrib2fARBglVertexAttrib2dARBglVertexAttrib3sARBglVertexAttrib3fARBglVertexAttrib3dARBglVertexAttrib4sARBglVertexAttrib4fARBglVertexAttrib4dARBglVertexAttrib4NubARBglVertexAttrib1svARBglVertexAttrib1fvARBglVertexAttrib1dvARBglVertexAttrib2svARBglVertexAttrib2fvARBglVertexAttrib2dvARBglVertexAttrib3svARBglVertexAttrib3fvARBglVertexAttrib3dvARBglVertexAttrib4bvARBglVertexAttrib4svARBglVertexAttrib4ivARBglVertexAttrib4ubvARBglVertexAttrib4usvARBglVertexAttrib4uivARBglVertexAttrib4fvARBglVertexAttrib4dvARBglVertexAttrib4NbvARBglVertexAttrib4NsvARBglVertexAttrib4NivARBglVertexAttrib4NubvARBglVertexAttrib4NusvARBglVertexAttrib4NuivARBglVertexAttribPointerARBglEnableVertexAttribArrayARBglDisableVertexAttribArrayARBglProgramStringARBglBindProgramARBglDeleteProgramsARBglGenProgramsARBglProgramEnvParameter4dARBglProgramEnvParameter4dvARBglProgramEnvParameter4fARBglProgramEnvParameter4fvARBglProgramLocalParameter4dARBglProgramLocalParameter4dvARBglProgramLocalParameter4fARBglProgramLocalParameter4fvARBglGetProgramEnvParameterdvARBglGetProgramEnvParameterfvARBglGetProgramLocalParameterdvARBglGetProgramLocalParameterfvARBglGetProgramivARBglGetProgramStringARBglGetVertexAttribdvARBglGetVertexAttribfvARBglGetVertexAttribivARBglGetVertexAttribPointervARBglIsProgramARBGL_ARB_window_posglWindowPos2dARBglWindowPos2fARBglWindowPos2iARBglWindowPos2sARBglWindowPos2dvARBglWindowPos2fvARBglWindowPos2ivARBglWindowPos2svARBglWindowPos3dARBglWindowPos3fARBglWindowPos3iARBglWindowPos3sARBglWindowPos3dvARBglWindowPos3fvARBglWindowPos3ivARBglWindowPos3svARBGL_EXT_422_pixels GL_EXT_abgr GL_EXT_bgraGL_EXT_blend_colorglBlendColorEXTGL_EXT_blend_func_separateglBlendFuncSeparateEXTGL_EXT_blend_logic_opGL_EXT_blend_minmaxglBlendEquationEXTGL_EXT_blend_subtractGL_EXT_clip_volume_hintGL_EXT_color_subtableglColorSubTableEXTglCopyColorSubTableEXTGL_EXT_compiled_vertex_arrayglLockArraysEXTglUnlockArraysEXTGL_EXT_convolutionglConvolutionFilter1DEXTglConvolutionFilter2DEXTglCopyConvolutionFilter1DEXTglCopyConvolutionFilter2DEXTglGetConvolutionFilterEXTglSeparableFilter2DEXTglGetSeparableFilterEXTglConvolutionParameteriEXTglConvolutionParameterivEXTglConvolutionParameterfEXTglConvolutionParameterfvEXTglGetConvolutionParameterivEXTglGetConvolutionParameterfvEXTGL_EXT_fog_coordglFogCoordfEXTglFogCoorddEXTglFogCoordfvEXTglFogCoorddvEXTglFogCoordPointerEXTGL_EXT_histogramglHistogramEXTglResetHistogramEXTglGetHistogramEXTglGetHistogramParameterivEXTglGetHistogramParameterfvEXTglMinmaxEXTglResetMinmaxEXTglGetMinmaxEXTglGetMinmaxParameterivEXTglGetMinmaxParameterfvEXTGL_EXT_multi_draw_arraysglMultiDrawArraysEXTglMultiDrawElementsEXTGL_EXT_packed_depth_stencilGL_EXT_packed_pixelsGL_EXT_paletted_textureglColorTableEXTglGetColorTableEXTglGetColorTableParameterivEXTglGetColorTableParameterfvEXTGL_EXT_point_parametersglPointParameterfEXTglPointParameterfvEXTGL_EXT_polygon_offsetglPolygonOffsetEXTGL_EXT_secondary_colorglSecondaryColor3bEXTglSecondaryColor3sEXTglSecondaryColor3iEXTglSecondaryColor3fEXTglSecondaryColor3dEXTglSecondaryColor3ubEXTglSecondaryColor3usEXTglSecondaryColor3uiEXTglSecondaryColor3bvEXTglSecondaryColor3svEXTglSecondaryColor3ivEXTglSecondaryColor3fvEXTglSecondaryColor3dvEXTglSecondaryColor3ubvEXTglSecondaryColor3usvEXTglSecondaryColor3uivEXTglSecondaryColorPointerEXTGL_EXT_separate_specular_colorGL_EXT_shadow_funcsGL_EXT_shared_texture_paletteGL_EXT_stencil_two_sideglActiveStencilFaceEXTGL_EXT_stencil_wrapGL_EXT_subtextureglTexSubImage1DEXTglTexSubImage2DEXTglTexSubImage3DEXTGL_EXT_texture3DglTexImage3DEXTGL_EXT_texture_compression_s3tcGL_EXT_texture_env_addGL_EXT_texture_env_combineGL_EXT_texture_env_dot3!GL_EXT_texture_filter_anisotropicGL_EXT_texture_lod_biasGL_EXT_texture_objectglGenTexturesEXTglDeleteTexturesEXTglBindTextureEXTglPrioritizeTexturesEXTglAreTexturesResidentEXTglIsTextureEXTGL_EXT_vertex_arrayglArrayElementEXTglDrawArraysEXTglVertexPointerEXTglNormalPointerEXTglColorPointerEXTglIndexPointerEXTglTexCoordPointerEXTglEdgeFlagPointerEXTglGetPointervEXTGL_EXT_vertex_shaderglBeginVertexShaderEXTglEndVertexShaderEXTglBindVertexShaderEXTglGenVertexShadersEXTglDeleteVertexShaderEXTglShaderOp1EXTglShaderOp2EXTglShaderOp3EXTglSwizzleEXTglWriteMaskEXTglInsertComponentEXTglExtractComponentEXTglGenSymbolsEXTglSetInvariantEXTglSetLocalConstantEXTglVariantbvEXTglVariantsvEXTglVariantivEXTglVariantfvEXTglVariantdvEXTglVariantubvEXTglVariantusvEXTglVariantuivEXTglVariantPointerEXTglEnableVariantClientStateEXTglDisableVariantClientStateEXTglBindLightParameterEXTglBindMaterialParameterEXTglBindTexGenParameterEXTglBindTextureUnitParameterEXTglBindParameterEXTglIsVariantEnabledEXTglGetVariantBooleanvEXTglGetVariantIntegervEXTglGetVariantFloatvEXTglGetVariantPointervEXTglGetInvariantBooleanvEXTglGetInvariantIntegervEXTglGetInvariantFloatvEXTglGetLocalConstantBooleanvEXTglGetLocalConstantIntegervEXTglGetLocalConstantFloatvEXTGL_EXT_vertex_weightingglVertexWeightfEXTglVertexWeightfvEXTglVertexWeightPointerEXTGL_HP_occlusion_testGL_NV_blend_squareGL_NV_copy_depth_to_colorGL_NV_depth_clampGL_NV_evaluatorsglMapControlPointsNVglMapParameterivNVglMapParameterfvNVglGetMapControlPointsNVglGetMapParameterivNVglGetMapParameterfvNVglGetMapAttribParameterivNVglGetMapAttribParameterfvNVglEvalMapsNV GL_NV_fenceglGenFencesNVglDeleteFencesNVglSetFenceNVglTestFenceNVglFinishFenceNVglIsFenceNVglGetFenceivNVGL_NV_fog_distanceGL_NV_light_max_exponentGL_NV_multisample_filter_hintGL_NV_occlusion_queryglGenOcclusionQueriesNVglDeleteOcclusionQueriesNVglIsOcclusionQueryNVglBeginOcclusionQueryNVglEndOcclusionQueryNVglGetOcclusionQueryivNVglGetOcclusionQueryuivNVGL_NV_packed_depth_stencilGL_NV_point_spriteglPointParameteriNVglPointParameterivNVGL_NV_register_combinersglCombinerParameterfvNVglCombinerParameterivNVglCombinerParameterfNVglCombinerParameteriNVglCombinerInputNVglCombinerOutputNVglFinalCombinerInputNVglGetCombinerInputParameterfvNVglGetCombinerInputParameterivNVglGetCombinerOutputParameterfvNVglGetCombinerOutputParameterivNVglGetFinalCombinerInputParameterfvNVglGetFinalCombinerInputParameterivNVGL_NV_register_combiners2glCombinerStageParameterfvNVglGetCombinerStageParameterfvNVGL_NV_texgen_embossGL_NV_texgen_reflectionGL_NV_texture_compression_vtcGL_NV_texture_env_combine4GL_NV_texture_rectangleGL_NV_texture_shaderGL_NV_texture_shader2GL_NV_texture_shader3GL_NV_vertex_array_rangeglVertexArrayRangeNVglFlushVertexArrayRangeNVGL_NV_vertex_array_range2GL_NV_vertex_programglBindProgramNVglDeleteProgramsNVglExecuteProgramNVglGenProgramsNVglAreProgramsResidentNVglRequestResidentProgramsNVglGetProgramParameterfvNVglGetProgramParameterdvNVglGetProgramivNVglGetProgramStringNVglGetTrackMatrixivNVglGetVertexAttribdvNVglGetVertexAttribfvNVglGetVertexAttribivNVglGetVertexAttribPointervNVglIsProgramNVglLoadProgramNVglProgramParameter4fNVglProgramParameter4fvNVglProgramParameters4dvNVglProgramParameters4fvNVglTrackMatrixNVglVertexAttribPointerNVglVertexAttrib1sNVglVertexAttrib1fNVglVertexAttrib1dNVglVertexAttrib2sNVglVertexAttrib2fNVglVertexAttrib2dNVglVertexAttrib3sNVglVertexAttrib3fNVglVertexAttrib3dNVglVertexAttrib4sNVglVertexAttrib4fNVglVertexAttrib4dNVglVertexAttrib4ubNVglVertexAttrib1svNVglVertexAttrib1fvNVglVertexAttrib1dvNVglVertexAttrib2svNVglVertexAttrib2fvNVglVertexAttrib2dvNVglVertexAttrib3svNVglVertexAttrib3fvNVglVertexAttrib3dvNVglVertexAttrib4svNVglVertexAttrib4fvNVglVertexAttrib4dvNVglVertexAttrib4ubvNVglVertexAttribs1svNVglVertexAttribs1fvNVglVertexAttribs1dvNVglVertexAttribs2svNVglVertexAttribs2fvNVglVertexAttribs2dvNVglVertexAttribs3svNVglVertexAttribs3fvNVglVertexAttribs3dvNVglVertexAttribs4svNVglVertexAttribs4fvNVglVertexAttribs4dvNVglVertexAttribs4ubvNVGL_NV_vertex_program1_1GL_ATI_element_arrayglElementPointerATIglDrawElementArrayATIglDrawRangeElementArrayATIGL_ATI_envmap_bumpmapglTexBumpParameterivATIglTexBumpParameterfvATIglGetTexBumpParameterivATIglGetTexBumpParameterfvATIGL_ATI_fragment_shaderglGenFragmentShadersATIglBindFragmentShaderATIglDeleteFragmentShaderATIglBeginFragmentShaderATIglEndFragmentShaderATIglPassTexCoordATIglSampleMapATIglColorFragmentOp1ATIglColorFragmentOp2ATIglColorFragmentOp3ATIglAlphaFragmentOp1ATIglAlphaFragmentOp2ATIglAlphaFragmentOp3ATIglSetFragmentShaderConstantATIGL_ATI_pn_trianglesglPNTrianglesiATIglPNTrianglesfATIGL_ATI_texture_mirror_onceGL_ATI_vertex_array_objectglNewObjectBufferATIglIsObjectBufferATIglUpdateObjectBufferATIglGetObjectBufferfvATIglGetObjectBufferivATIglDeleteObjectBufferATIglArrayObjectATIglGetArrayObjectfvATIglGetArrayObjectivATIglVariantArrayObjectATIglGetVariantArrayObjectfvATIglGetVariantArrayObjectivATIGL_ATI_vertex_streamsglVertexStream1sglVertexStream1iglVertexStream1fglVertexStream1dglVertexStream1svglVertexStream1ivglVertexStream1fvglVertexStream1dvglVertexStream2sglVertexStream2iglVertexStream2fglVertexStream2dglVertexStream2svglVertexStream2ivglVertexStream2fvglVertexStream2dvglVertexStream3sglVertexStream3iglVertexStream3fglVertexStream3dglVertexStream3svglVertexStream3ivglVertexStream3fvglVertexStream3dvglVertexStream4sglVertexStream4iglVertexStream4fglVertexStream4dglVertexStream4svglVertexStream4ivglVertexStream4fvglVertexStream4dvglNormalStream3bglNormalStream3sglNormalStream3iglNormalStream3fglNormalStream3dglNormalStream3bvglNormalStream3svglNormalStream3ivglNormalStream3fvglNormalStream3dvglClientActiveVertexStreamglVertexBlendEnviglVertexBlendEnvf GL_3DFX_texture_compression_FXT1GL_IBM_cull_vertexGL_IBM_multimode_draw_arraysglMultiModeDrawArraysIBMglMultiModeDrawElementsIBMGL_IBM_raster_pos_clipGL_IBM_texture_mirrored_repeatGL_IBM_vertex_array_listsglColorPointerListIBMglSecondaryColorPointerListIBMglEdgeFlagPointerListIBMglFogCoordPointerListIBMglNormalPointerListIBMglTexCoordPointerListIBMglVertexPointerListIBMGL_MESA_resize_buffersglResizeBuffersMESAGL_MESA_window_posglWindowPos2dMESAglWindowPos2fMESAglWindowPos2iMESAglWindowPos2sMESAglWindowPos2ivMESAglWindowPos2svMESAglWindowPos2fvMESAglWindowPos2dvMESAglWindowPos3iMESAglWindowPos3sMESAglWindowPos3fMESAglWindowPos3dMESAglWindowPos3ivMESAglWindowPos3svMESAglWindowPos3fvMESAglWindowPos3dvMESAglWindowPos4iMESAglWindowPos4sMESAglWindowPos4fMESAglWindowPos4dMESAglWindowPos4ivMESAglWindowPos4svMESAglWindowPos4fvMESAglWindowPos4dvMESAGL_OML_interlaceGL_OML_resampleGL_OML_subsampleGL_SGIS_generate_mipmapGL_SGIS_multisampleglSampleMaskSGISglSamplePatternSGISGL_SGIS_pixel_textureglPixelTexGenParameteriSGISglPixelTexGenParameterfSGISglGetPixelTexGenParameterivSGISglGetPixelTexGenParameterfvSGISGL_SGIS_texture_border_clampGL_SGIS_texture_color_maskglTextureColorMaskSGISGL_SGIS_texture_edge_clampGL_SGIS_texture_lodGL_SGIS_depth_textureGL_SGIX_fog_offsetGL_SGIX_interlaceGL_SGIX_shadow_ambientGL_SGI_color_matrixGL_SGI_color_tableglColorTableSGIglCopyColorTableSGIglColorTableParameterivSGIglColorTableParameterfvSGIglGetColorTableSGIglGetColorTableParameterivSGIglGetColorTableParameterfvSGIGL_SGI_texture_color_table GL_SUN_vertexglColor4ubVertex2fSUNglColor4ubVertex2fvSUNglColor4ubVertex3fSUNglColor4ubVertex3fvSUNglColor3fVertex3fSUNglColor3fVertex3fvSUNglNormal3fVertex3fSUNglNormal3fVertex3fvSUNglColor4fNormal3fVertex3fSUNglColor4fNormal3fVertex3fvSUNglTexCoord2fVertex3fSUNglTexCoord2fVertex3fvSUNglTexCoord4fVertex4fSUNglTexCoord4fVertex4fvSUNglTexCoord2fColor4ubVertex3fSUNglTexCoord2fColor4ubVertex3fvSUNglTexCoord2fColor3fVertex3fSUNglTexCoord2fColor3fVertex3fvSUNglTexCoord2fNormal3fVertex3fSUNglTexCoord2fNormal3fVertex3fvSUNglTexCoord2fColor4fNormal3fVertex3fSUNglTexCoord2fColor4fNormal3fVertex3fvSUNglTexCoord4fColor4fNormal3fVertex4fSUNglTexCoord4fColor4fNormal3fVertex4fvSUNglReplacementCodeuiVertex3fSUNglReplacementCodeuiVertex3fvSUNglReplacementCodeuiColor4ubVertex3fSUNglReplacementCodeuiColor4ubVertex3fvSUNglReplacementCodeuiColor3fVertex3fSUNglReplacementCodeuiColor3fVertex3fvSUNglReplacementCodeuiNormal3fVertex3fSUNglReplacementCodeuiNormal3fVertex3fvSUNglReplacementCodeuiColor4fNormal3fVertex3fSUNglReplacementCodeuiColor4fNormal3fVertex3fvSUNglReplacementCodeuiTexCoord2fVertex3fSUNglReplacementCodeuiTexCoord2fVertex3fvSUNglReplacementCodeuiTexCoord2fNormal3fVertex3fSUNglReplacementCodeuiTexCoord2fNormal3fVertex3fvSUNglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUNglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUNGL_ARB_fragment_programGL_ATI_text_fragment_shaderGL_APPLE_client_storageGL_APPLE_element_arrayglElementPointerAPPLEglDrawElementArrayAPPLEglDrawRangeElementArrayAPPLEglMultiDrawElementArrayAPPLEglMultiDrawRangeElementArrayAPPLEGL_APPLE_fenceglGenFencesAPPLEglDeleteFencesAPPLEglSetFenceAPPLEglIsFenceAPPLEglTestFenceAPPLEglFinishFenceAPPLEglTestObjectAPPLEglFinishObjectAPPLEGL_APPLE_vertex_array_objectglBindVertexArrayAPPLEglDeleteVertexArraysAPPLEglGenVertexArraysAPPLEglIsVertexArrayAPPLEGL_APPLE_vertex_array_rangeglVertexArrayRangeAPPLEglFlushVertexArrayRangeAPPLEglVertexArrayParameteriAPPLEGL_ARB_vertex_buffer_objectglBindBufferARBglDeleteBuffersARBglGenBuffersARBglIsBufferARBglBufferDataARBglBufferSubDataARBglGetBufferSubDataARBglMapBufferARBglUnmapBufferARBglGetBufferParameterivARBglGetBufferPointervARBGL_ARB_matrix_paletteglCurrentPaletteMatrixARBglMatrixIndexubvARBglMatrixIndexusvARBglMatrixIndexuivARBglMatrixIndexPointerARBGL_NV_element_arrayglElementPointerNVglDrawElementArrayNVglDrawRangeElementArrayNVglMultiDrawElementArrayNVglMultiDrawRangeElementArrayNVGL_NV_float_bufferGL_NV_fragment_programglProgramNamedParameter4fNVglProgramNamedParameter4dNVglGetProgramNamedParameterfvNVglGetProgramNamedParameterdvNVGL_NV_primitive_restartglPrimitiveRestartNVglPrimitiveRestartIndexNVGL_NV_vertex_program2GL_NV_pixel_data_rangeglPixelDataRangeNVglFlushPixelDataRangeNVGL_EXT_texture_rectangle GL_S3_s3tcGL_ATI_draw_buffersglDrawBuffersATIGL_ATI_texture_env_combine3GL_ATI_texture_floatGL_NV_texture_expand_normalGL_NV_half_floatglVertex2hNVglVertex2hvNVglVertex3hNVglVertex3hvNVglVertex4hNVglVertex4hvNVglNormal3hNVglNormal3hvNVglColor3hNVglColor3hvNVglColor4hNVglColor4hvNVglTexCoord1hNVglTexCoord1hvNVglTexCoord2hNVglTexCoord2hvNVglTexCoord3hNVglTexCoord3hvNVglTexCoord4hNVglTexCoord4hvNVglMultiTexCoord1hNVglMultiTexCoord1hvNVglMultiTexCoord2hNVglMultiTexCoord2hvNVglMultiTexCoord3hNVglMultiTexCoord3hvNVglMultiTexCoord4hNVglMultiTexCoord4hvNVglFogCoordhNVglFogCoordhvNVglSecondaryColor3hNVglSecondaryColor3hvNVglVertexWeighthNVglVertexWeighthvNVglVertexAttrib1hNVglVertexAttrib1hvNVglVertexAttrib2hNVglVertexAttrib2hvNVglVertexAttrib3hNVglVertexAttrib3hvNVglVertexAttrib4hNVglVertexAttrib4hvNVglVertexAttribs1hvNVglVertexAttribs2hvNVglVertexAttribs3hvNVglVertexAttribs4hvNVGL_ATI_map_object_bufferglMapObjectBufferATIglUnmapObjectBufferATIGL_ATI_separate_stencilglStencilOpSeparateATIglStencilFuncSeparateATI!GL_ATI_vertex_attrib_array_objectglVertexAttribArrayObjectATIglGetVertexAttribArrayObjectfvATIglGetVertexAttribArrayObjectivATIGL_ARB_occlusion_queryglGenQueriesARBglDeleteQueriesARBglIsQueryARBglBeginQueryARBglEndQueryARBglGetQueryivARBglGetQueryObjectivARBglGetQueryObjectuivARBGL_ARB_shader_objectsglDeleteObjectARBglGetHandleARBglDetachObjectARBglCreateShaderObjectARBglShaderSourceARBglCompileShaderARBglCreateProgramObjectARBglAttachObjectARBglLinkProgramARBglUseProgramObjectARBglValidateProgramARBglUniform1fARBglUniform2fARBglUniform3fARBglUniform4fARBglUniform1iARBglUniform2iARBglUniform3iARBglUniform4iARBglUniform1fvARBglUniform2fvARBglUniform3fvARBglUniform4fvARBglUniform1ivARBglUniform2ivARBglUniform3ivARBglUniform4ivARBglUniformMatrix2fvARBglUniformMatrix3fvARBglUniformMatrix4fvARBglGetObjectParameterfvARBglGetObjectParameterivARBglGetInfoLogARBglGetAttachedObjectsARBglGetUniformLocationARBglGetActiveUniformARBglGetUniformfvARBglGetUniformivARBglGetShaderSourceARBGL_ARB_vertex_shaderglBindAttribLocationARBglGetActiveAttribARBglGetAttribLocationARBGL_ARB_fragment_shaderGL_ARB_shading_language_100GL_ARB_texture_non_power_of_twoGL_ARB_point_spriteGL_EXT_depth_bounds_testglDepthBoundsEXTGL_EXT_texture_mirror_clampGL_EXT_blend_equation_separateglBlendEquationSeparateEXTGL_MESA_pack_invertGL_MESA_ycbcr_textureGL_ARB_fragment_program_shadowGL_NV_fragment_program_optionGL_EXT_pixel_buffer_objectGL_NV_fragment_program2GL_NV_vertex_program2_optionGL_NV_vertex_program3GL_ARB_draw_buffersglDrawBuffersARBGL_ARB_texture_rectangleGL_ARB_color_buffer_floatglClampColorARBGL_ARB_half_float_pixelGL_ARB_texture_floatGL_EXT_texture_compression_dxt1GL_ARB_pixel_buffer_objectGL_EXT_framebuffer_objectglIsRenderbufferEXTglBindRenderbufferEXTglDeleteRenderbuffersEXTglGenRenderbuffersEXTglRenderbufferStorageEXTglGetRenderbufferParameterivEXTglIsFramebufferEXTglBindFramebufferEXTglDeleteFramebuffersEXTglGenFramebuffersEXTglCheckFramebufferStatusEXTglFramebufferTexture1DEXTglFramebufferTexture2DEXTglFramebufferTexture3DEXTglFramebufferRenderbufferEXTglGetFramebufferAttachmentParameterivEXTglGenerateMipmapEXTGL_ARB_framebuffer_objectglIsRenderbufferglBindRenderbufferglDeleteRenderbuffersglGenRenderbuffersglRenderbufferStorageglGetRenderbufferParameterivglIsFramebufferglBindFramebufferglDeleteFramebuffersglGenFramebuffersglCheckFramebufferStatusglFramebufferTexture1DglFramebufferTexture2DglFramebufferTexture3DglFramebufferRenderbufferglGetFramebufferAttachmentParameterivglGenerateMipmapglBlitFramebufferglRenderbufferStorageMultisampleglFramebufferTextureLayerGL_ARB_map_buffer_rangeglMapBufferRangeglFlushMappedBufferRangeGL_ARB_vertex_array_objectglBindVertexArrayglDeleteVertexArraysglGenVertexArraysglIsVertexArrayGL_ARB_copy_bufferglCopyBufferSubDataGL_ARB_uniform_buffer_objectglGetUniformIndicesglGetActiveUniformsivglGetActiveUniformNameglGetUniformBlockIndexglGetActiveUniformBlockivglGetActiveUniformBlockNameglUniformBlockBindingglBindBufferRangeglBindBufferBaseglGetIntegeri_v GL_ARB_draw_elements_base_vertexglDrawElementsBaseVertexglDrawRangeElementsBaseVertexglDrawElementsInstancedBaseVertexglMultiDrawElementsBaseVertexGL_ARB_provoking_vertexglProvokingVertex GL_ARB_syncglFenceSyncglIsSyncglDeleteSyncglClientWaitSyncglWaitSyncglGetInteger64vglGetSyncivGL_ARB_texture_multisampleglTexImage2DMultisampleglTexImage3DMultisampleglGetMultisamplefvglSampleMaskiGL_ARB_sampler_objectsglGenSamplersglDeleteSamplersglIsSamplerglBindSamplerglSamplerParameteriglSamplerParameterivglSamplerParameterfglSamplerParameterfvglSamplerParameterIivglSamplerParameterIuivglGetSamplerParameterivglGetSamplerParameterIivglGetSamplerParameterfvglGetSamplerParameterIuivGL_ARB_blend_func_extendedglBindFragDataLocationIndexedglGetFragDataIndexGL_ARB_timer_queryglQueryCounterglGetQueryObjecti64vglGetQueryObjectui64v!GL_ARB_vertex_type_2_10_10_10_revglVertexP2uiglVertexP2uivglVertexP3uiglVertexP3uivglVertexP4uiglVertexP4uivglTexCoordP1uiglTexCoordP1uivglTexCoordP2uiglTexCoordP2uivglTexCoordP3uiglTexCoordP3uivglTexCoordP4uiglTexCoordP4uivglMultiTexCoordP1uiglMultiTexCoordP1uivglMultiTexCoordP2uiglMultiTexCoordP2uivglMultiTexCoordP3uiglMultiTexCoordP3uivglMultiTexCoordP4uiglMultiTexCoordP4uivglNormalP3uiglNormalP3uivglColorP3uiglColorP3uivglColorP4uiglColorP4uivglSecondaryColorP3uiglSecondaryColorP3uivglVertexAttribP1uiglVertexAttribP1uivglVertexAttribP2uiglVertexAttribP2uivglVertexAttribP3uiglVertexAttribP3uivglVertexAttribP4uiglVertexAttribP4uivGL_ARB_gpu_shader_fp64glUniform1dglUniform2dglUniform3dglUniform4dglUniform1dvglUniform2dvglUniform3dvglUniform4dvglUniformMatrix2dvglUniformMatrix3dvglUniformMatrix4dvglUniformMatrix2x3dvglUniformMatrix2x4dvglUniformMatrix3x2dvglUniformMatrix3x4dvglUniformMatrix4x2dvglUniformMatrix4x3dvglGetUniformdvglProgramUniform1dEXTglProgramUniform2dEXTglProgramUniform3dEXTglProgramUniform4dEXTglProgramUniform1dvEXTglProgramUniform2dvEXTglProgramUniform3dvEXTglProgramUniform4dvEXTglProgramUniformMatrix2dvEXTglProgramUniformMatrix3dvEXTglProgramUniformMatrix4dvEXTglProgramUniformMatrix2x3dvEXTglProgramUniformMatrix2x4dvEXTglProgramUniformMatrix3x2dvEXTglProgramUniformMatrix3x4dvEXTglProgramUniformMatrix4x2dvEXTglProgramUniformMatrix4x3dvEXTGL_ARB_shader_subroutineglGetSubroutineUniformLocationglGetSubroutineIndexglGetActiveSubroutineUniformivglGetActiveSubroutineUniformNameglGetActiveSubroutineNameglUniformSubroutinesuivglGetUniformSubroutineuivglGetProgramStageivGL_ARB_tessellation_shaderglPatchParameteriglPatchParameterfvGL_ARB_transform_feedback2glBindTransformFeedbackglDeleteTransformFeedbacksglGenTransformFeedbacksglIsTransformFeedbackglPauseTransformFeedbackglResumeTransformFeedbackglDrawTransformFeedbackGL_ARB_transform_feedback3glDrawTransformFeedbackStreamglBeginQueryIndexedglEndQueryIndexedglGetQueryIndexedivglBlendFuncSeparateglFogCoordfglFogCoordfvglFogCoorddglFogCoorddvglFogCoordPointerglMultiDrawArraysglMultiDrawElementsglPointParameterfglPointParameterfvglPointParameteriglPointParameterivglSecondaryColor3bglSecondaryColor3bvglSecondaryColor3dglSecondaryColor3dvglSecondaryColor3fglSecondaryColor3fvglSecondaryColor3iglSecondaryColor3ivglSecondaryColor3sglSecondaryColor3svglSecondaryColor3ubglSecondaryColor3ubvglSecondaryColor3uiglSecondaryColor3uivglSecondaryColor3usglSecondaryColor3usvglSecondaryColorPointerglWindowPos2dglWindowPos2dvglWindowPos2fglWindowPos2fvglWindowPos2iglWindowPos2ivglWindowPos2sglWindowPos2svglWindowPos3dglWindowPos3dvglWindowPos3fglWindowPos3fvglWindowPos3iglWindowPos3ivglWindowPos3sglWindowPos3svglGenQueriesglDeleteQueriesglIsQueryglBeginQueryglEndQueryglGetQueryivglGetQueryObjectivglGetQueryObjectuivglBindBufferglDeleteBuffersglGenBuffersglIsBufferglBufferDataglBufferSubDataglGetBufferSubDataglMapBufferglUnmapBufferglGetBufferParameterivglGetBufferPointervglBlendEquationSeparateglDrawBuffersglStencilOpSeparateglStencilFuncSeparateglStencilMaskSeparateglAttachShaderglBindAttribLocationglCompileShaderglCreateProgramglCreateShaderglDeleteProgramglDeleteShaderglDetachShaderglDisableVertexAttribArrayglEnableVertexAttribArrayglGetActiveAttribglGetActiveUniformglGetAttachedShadersglGetAttribLocationglGetProgramivglGetProgramInfoLogglGetShaderivglGetShaderInfoLogglGetShaderSourceglGetUniformLocationglGetUniformfvglGetUniformivglGetVertexAttribdvglGetVertexAttribfvglGetVertexAttribivglGetVertexAttribPointervglIsProgramglIsShaderglLinkProgramglShaderSourceglUseProgramglUniform1fglUniform2fglUniform3fglUniform4fglUniform1iglUniform2iglUniform3iglUniform4iglUniform1fvglUniform2fvglUniform3fvglUniform4fvglUniform1ivglUniform2ivglUniform3ivglUniform4ivglUniformMatrix2fvglUniformMatrix3fvglUniformMatrix4fvglValidateProgramglVertexAttrib1dglVertexAttrib1dvglVertexAttrib1fglVertexAttrib1fvglVertexAttrib1sglVertexAttrib1svglVertexAttrib2dglVertexAttrib2dvglVertexAttrib2fglVertexAttrib2fvglVertexAttrib2sglVertexAttrib2svglVertexAttrib3dglVertexAttrib3dvglVertexAttrib3fglVertexAttrib3fvglVertexAttrib3sglVertexAttrib3svglVertexAttrib4NbvglVertexAttrib4NivglVertexAttrib4NsvglVertexAttrib4NubglVertexAttrib4NubvglVertexAttrib4NuivglVertexAttrib4NusvglVertexAttrib4bvglVertexAttrib4dglVertexAttrib4dvglVertexAttrib4fglVertexAttrib4fvglVertexAttrib4ivglVertexAttrib4sglVertexAttrib4svglVertexAttrib4ubvglVertexAttrib4uivglVertexAttrib4usvglVertexAttribPointerGL_version_1_2GL_version_1_3GL_version_1_4GL_version_1_5GL_version_2_0glUniformMatrix2x3fvglUniformMatrix3x2fvglUniformMatrix2x4fvglUniformMatrix4x2fvglUniformMatrix3x4fvglUniformMatrix4x3fvglColorMaskiglGetBooleani_vglEnableiglDisableiglIsEnablediglBeginTransformFeedbackglEndTransformFeedbackglTransformFeedbackVaryingsglGetTransformFeedbackVaryingglClampColorglBeginConditionalRenderglEndConditionalRenderglVertexAttribIPointerglGetVertexAttribIivglGetVertexAttribIuivglVertexAttribI1iglVertexAttribI2iglVertexAttribI3iglVertexAttribI4iglVertexAttribI1uiglVertexAttribI2uiglVertexAttribI3uiglVertexAttribI4uiglVertexAttribI1ivglVertexAttribI2ivglVertexAttribI3ivglVertexAttribI4ivglVertexAttribI1uivglVertexAttribI2uivglVertexAttribI3uivglVertexAttribI4uivglVertexAttribI4bvglVertexAttribI4svglVertexAttribI4ubvglVertexAttribI4usvglGetUniformuivglBindFragDataLocationglGetFragDataLocationglUniform1uiglUniform2uiglUniform3uiglUniform4uiglUniform1uivglUniform2uivglUniform3uivglUniform4uivglTexParameterIivglTexParameterIuivglGetTexParameterIivglGetTexParameterIuivglClearBufferivglClearBufferuivglClearBufferfvglClearBufferfiglGetStringi GL_KHR_debugglDebugMessageCallbackglDebugMessageControlGL_ARB_debug_outputglDebugMessageCallbackARBglDebugMessageControlARBglDrawArraysInstancedglDrawElementsInstancedglTexBufferglPrimitiveRestartIndexglGetInteger64i_vglGetBufferParameteri64vglProgramParameteriglFramebufferTextureglVertexAttribDivisor @@?????@ ףp= ף?{Gz@ffffff?%.2f9[%s.ErrorMsg] No message text assigned to error code #%d.?GetConfidenceLimits[%s.%s] Index out of range.GetParam GetParamErrorGetParam_pValueGetParam_tValueSetFitBasisFuncD[TCustomColorMapSeries.GetLegendItems] Unhandled Legend.Multiplicityz ≤ %1:g|%g < z ≤ %g|%g < z?V瞯<@#GGŧ?$Error, point %d and %d are the same.A?@Error in function InCircle٬:|?MraB3GMraB3$Interpolation mode is not spezified.?7[%s.ForEachPoint] Series %s must be a TBasicPointSeries*·%s^%d%s%dexp(%s)e%sxy%.9g%s = %s^%s?-  + ---%*s BuiltinColorsUUUUUU?UUUUUU??o@5[TAColorMap.BuildPalette] Palette kind not supported.@?@@@aw̫?@@il7??@?@???Copyright noticeFamilyStyle Identifier Full nameVersion stringPostscript name Trademark ManufacturerDesigner Vendor URL Designer URLLicense descriptionLicense info URLNormalRegularRomanPlainBookFreeType cannot be initialized$???BCannot create empty glyph'Cannot create a clone of an empty glyph@@Cannot open font (TT_Error  ) ) ""Font family not found ("")Font style not found ("BoldItalicObliqueBBold Italic ?No font instance&Cannot create font instance (TT_Error )Unable to set point size? ף==u= A @@ FPTVWYcdegoqs bcehmnopsTVWY mnprvwxyz gkqrvwxyz ĉêĝôŝĉêôŝŵŷẑ ĝŵŷẑëöẅẍÿ ćéǵóśćéḿńóṕśḿńṕŕẃýź ǵŕẃýźèòèǹòǹẁỳẁỳ(PopulateFontDirList: list not allocated./usr/share/cups/fonts//usr/share/fonts/truetype//usr/local/lib/X11/fonts/.fonts/Bold Italic/*.ttfUnexpected flow Error code = Invalid Free call*Cannot activate stream, file may not existCannot activateEmpty path namemaxpgaspheadvmtxhmtxvheahhealocanamecvt cmapfpgmprepOS/2posthdmxglyfkernSVTCA ySVTCA xSPvTCA ySPvTCA xSFvTCA ySFvTCA xSPvTL //SPvTL +SFvTL //SFvTL +SPvFSSFvFSGPVGFVSFvTPvISECTSRP0SRP1SRP2SZP0SZP1SZP2SZPSSLOOPRTGRTHGSMDELSEJMPRSCvTCiSSwCiSSWDUPPOPCLEARSWAPDEPTHCINDEXMINDEXAlignPTSINS_$28UTPLOOPCALLCALLFDEFENDFMDAP[0]MDAP[1]IUP[0]IUP[1]SHP[0]SHP[1]SHC[0]SHC[1]SHZ[0]SHZ[1]SHPIXIPMSIRP[0]MSIRP[1]AlignRPRTDGMIAP[0]MIAP[1]NPushBNPushWWSRSWCvtPRCvtGC[0]GC[1]SCFSMD[0]MD[1]MPPEMMPSFlipONFlipOFFDEBUGLTLTEQGTGTEQEQNEQODDEVENIFEIFANDORNOTDeltaP1SDBSDSADDSUBDIVMULABSNEGFLOORCEILINGROUND[0]ROUND[1]ROUND[2]ROUND[3] NROUND[0] NROUND[1] NROUND[2] NROUND[3]WCvtFDeltaP2DeltaP3 DeltaCn[0] DeltaCn[1] DeltaCn[2]SROUNDS45RoundJROTJROFROFFINS_$7BRUTGRDTGSANGWAAFlipPTFlipRgON FlipRgOFFINS_$83INS_$84ScanCTRL SDPVTL[0] SDPVTL[1]GetINFOIDEFROLLMAXMINScanTYPEInstCTRLINS_$8FINS_$90INS_$91INS_$92INS_$93INS_$94INS_$95INS_$96INS_$97INS_$98INS_$99INS_$9AINS_$9BINS_$9CINS_$9DINS_$9EINS_$9FINS_$A0INS_$A1INS_$A2INS_$A3INS_$A4INS_$A5INS_$A6INS_$A7INS_$A8INS_$A9INS_$AAINS_$ABINS_$ACINS_$ADINS_$AEINS_$AFPushB[0]PushB[1]PushB[2]PushB[3]PushB[4]PushB[5]PushB[6]PushB[7]PushW[0]PushW[1]PushW[2]PushW[3]PushW[4]PushW[5]PushW[6]PushW[7]MDRP[00]MDRP[01]MDRP[02]MDRP[03]MDRP[04]MDRP[05]MDRP[06]MDRP[07]MDRP[08]MDRP[09]MDRP[10]MDRP[11]MDRP[12]MDRP[13]MDRP[14]MDRP[15]MDRP[16]MDRP[17]MDRP[18]MDRP[19]MDRP[20]MDRP[21]MDRP[22]MDRP[23]MDRP[24]MDRP[25]MDRP[26]MDRP[27]MDRP[28]MDRP[29]MDRP[30]MDRP[31]MIRP[00]MIRP[01]MIRP[02]MIRP[03]MIRP[04]MIRP[05]MIRP[06]MIRP[07]MIRP[08]MIRP[09]MIRP[10]MIRP[11]MIRP[12]MIRP[13]MIRP[14]MIRP[15]MIRP[16]MIRP[17]MIRP[18]MIRP[19]MIRP[20]MIRP[21]MIRP[22]MIRP[23]MIRP[24]MIRP[25]MIRP[26]MIRP[27]MIRP[28]MIRP[29]MIRP[30]MIRP[31]Missing instructionToo much instructions0x:  (SP=) ttinterp.log----------------------- Error  on Program:----------------------- Incoherent listOut of profileERROR : Inconsistent ProfileBezier overflow HelveticaHelvetica NeueArial Nimbus Sans LMicrosoft Sans SerifFreeSansLiberation SansDejaVu Sans CondensedTahomaRegular BoldItalicOblique MTCannot open font (TT_Error )+This font already belongs to another familyUnknownArialHelvetica Neue Helvetica Courier NewNimbus MonospaceCourierTimesTimes New RomanCG Times/*.ttfABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/Invalid stream operation,Non-valid Base64 Encoding character in input1Input stream was truncated at non-4 byte boundary;Unexpected padding character '=' before end of input stream=Set FieldX insteadSet FieldY insteadChartSeries - ףp= ף??5[TBoxAndWhiskerSeries.AddXY] Ordinary y value missing??:[TBoxAndWhiskerSeries.ToolTargetDistance] Unknown y index.1TOpenHighLowCloseSeries: Ordinary y value missing;TOpenHighLowCloseSeries.ToolTargetDistance: Illegal YIndex.@ChartChart??TgChartChart ->  Tools Proportional - ??ChartChart AxisIndexX AxisIndexY ףp= ף??Color%0:.9g?CCannot set XCountCannot set YCountCannot set XCountCannot set YCount-1 None None?bX<@e? ףp= ף?O%@II@Chart|Parameter "%s" not found.ư><><<=>>= Incorrect domain expression in "";xy x^2 + y^2@??FdegtoradradtodegtancotarcsinarccosarccotcoshcothsinhtanharcosharsinhartanharcothsincFFpowerhypotlglog10log2 DataPointsData point textYX|$000000?$ FPEXPRPARSUnterminated stringfpexprpars.sbadquotes!Unknown delimiter character: "%s"fpexprpars.sunknowndelimiter!Unknown character at pos %d: "%s"fpexprpars.serrunknowncharacterUnexpected end of expression(fpexprpars.serrunexpectedendofexpression"Internal error: Unknown comparison fpexprpars.serrunknowncomparison)Internal error: Unknown boolean operationfpexprpars.serrunknownbooleanop-Expected ) bracket at position %d, but got %sfpexprpars.serrbracketexpectedUnknown token at pos %d : %s fpexprpars.serrunknowntokenatpos-Expected ( bracket at position %d, but got %s"fpexprpars.serrleftbracketexpected&%s is not a valid floating-point valuefpexprpars.serrinvalidfloatUnknown identifier: %s fpexprpars.serrunknownidentifier$Cannot evaluate: error in expressionfpexprpars.serrinexpression!Cannot evaluate: empty expression fpexprpars.serrinexpressionempty-Expected comma (,) at position %d, but got %sfpexprpars.serrcommaexpected#Unexpected character in number : %s fpexprpars.serrinvalidnumbercharInvalid numerical value : %sfpexprpars.serrinvalidnumber"Unterminated quoted identifier: %s%fpexprpars.serrunterminatedidentifier!No operand for unary operation %sfpexprpars.serrnooperand'No left operand for binary operation %sfpexprpars.serrnoleftoperand(No right operand for binary operation %sfpexprpars.serrnorightoperand(Cannot negate expression of type %s : %sfpexprpars.serrnonegation1Cannot perform "not" on expression of type %s: %sfpexprpars.serrnonotoperation4Type mismatch: %s<>%s for expressions "%s" and "%s".fpexprpars.serrtypesdonotmatch9Incompatible types: %s<>%s for expressions "%s" and "%s". fpexprpars.serrtypesincompatible"Internal error: No node to check !fpexprpars.serrnonodetocheck;Node type (%s) not in allowed types (%s) for expression: %sfpexprpars.sinvalidnodetype<Badly terminated expression. Found token at position %d : %s%fpexprpars.serrunterminatedexpression,An identifier with name "%s" already exists."fpexprpars.serrduplicateidentifier)"%s" is not a valid return type indicator%fpexprpars.serrinvalidresultcharacter&Invalid argument count for function %s"fpexprpars.errinvalidargumentcount1Invalid type for argument %d: Expected %s, got %s"fpexprpars.serrinvalidargumenttypeInvalid result type: %s fpexprpars.serrinvalidresulttypeIdentifier %s is not a variablefpexprpars.serrnotvariable3Operation not allowed while an expression is activefpexprpars.serrinactive0First argument to IF must be of type boolean: %sfpexprpars.serrifneedsboolean1Case statement needs to have at least 4 argumentsfpexprpars.serrcaseneeds38Case statement needs to have an even number of argumentsfpexprpars.serrcaseevencount/Case label %d "%s" is not a constant expression!fpexprpars.serrcaselabelnotaconst1Case label %d "%s" needs type %s, but has type %sfpexprpars.serrcaselabeltype1Case value %d "%s" needs type %s, but has type %sfpexprpars.serrcasevaluetype%s division by zerofpexprpars.serrdivisionbyzero@' mod &!p@orxorandtruefalsenotifcasemodTrueFalseccccJValue handler for variable %s returned wrong type, expected "%s", got "%s"'- and , or  xor not if(%s , %s , %s), Case() =  <>  <  >  >=  <=  +  -  *  / ^?(ݍ]@piFcossinarctanabssqrsqrtexplnlogfracintroundtruncSlengthSIIcopydeleteSSpos lowercase uppercaseSSSBB stringreplace comparetextdatetimenowD dayofweek extractyear extractmonth extractday extracthour extractmin extractsec extractmsecIII encodedateIIII encodetimeIIIIIIIencodedatetimeI shortdaynameshortmonthname longdayname longmonthnameIIshlshrBSSIFSBFFIFFBDDIFDBIIIFIinttostrstrtointSI strtointdef floattostr strtofloatSF strtofloatdefB booltostr strtoboolSB strtobooldef datetostr timetostr strtodateSD strtodatedef strtotime strtotimedef strtodatetimestrtodatetimedef formatfloatformatdatetimecountsumavgminmax yyyy-mm-ddhh:nn:ss0BB|||| }}0}D}X}j}x}}}}} A 8@@o (@@H(@ } |H3A0A ox0Aoo%AH6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAAAA&A6AFAVAfAvAAAAAAAAABB&B6BFBVBfBvBBBBBBBBBBB&B6BFBVBfBvBBBBBBBBBBB&B6BFBVBfBvBBBBBBBBBBB&B6BFBVBfBvBBBBBBBBBBB&B6BFBVBfBvBBBBBBBBBBB&B6BFBVBfBvBBBBBBBBBBB&B6BFBVBfBvBBBBBBBBBBB&B6BFBVBfBvBBBBBBBBBBB&B6BFBVBfBvBBBBBBBBB B B& B6 BF BV Bf Bv B B B B B B B B B B B& B6 BF BV Bf Bv B B B B B B B B B B B& B6 BF BV Bf Bv B B B B B B B B B B B& B6 BF BV Bf Bv B B B B B B B B B B B& B6 BF BV Bf Bv B B B B B B B B BBB&B6BFBVBfBvBBBBBBBBBBB&B6BFBVBfBvBBBBBBBBBBB&B6BFBVBfBvBBBBBBBBBBB&B6BFBVBfBvBBBBBBBBBBB&B6BFBVBfBvBBBBBBBBBBB&B6BFBVBfB `B?DHDPDP PPPP`PpP@RPTPXXXXUU0PMYMY[[\vwЖwzz&x&xww0sPsgxgxP{yy{0{PaytЫt`u .spuZ`ZW| X|oo ~*~L~i~~~p$$@3Gp\@e{ @pPe`edd} pp[[Ppp`<<paPa@pee@FpF@ifPifo0oЅ|}f]pf]mm rrP`tpp@ϏPϏPXp঒`ʏʏжrrrrururp,S,SPD0PDММ@ccPϔ`ϔpnop `ZpZ0@0 PPཞPV`V @0 άά 0PЋN0NddpPѶ`Ѷ@P߳߳@ββ͸0 0x<<%%̰̰4`50YpYP?CDpH@d[\\77@0p` &1= Jpھ0Pj`j~KOO NNPpR@M dd`M0M O7P8PO0`O`OOPOPqOqOQO@ROLpL@8O8O MNЮNLpLN@bKMKPOO@HHKIKHPHH`J JHPzH|Hp: `+@PHPHHx` 1H", ,,;Ȝ 8`(8P xGG`zxz  8h 0 h 0_xe PЄXh( p ####P#`###PL%pM%X(((c[c[c[c[c[c[c[c[c[c[c[c[c[c[c[c[c[c[c[c[c[c[c[c[c[c[c[c[c[c[c[c[c[c[c[c[c[c[1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACTObject@F &{00000000-0000-0000-C000-000000000046}8hF&{00020400-0000-0000-C000-000000000046}'(0BCBC4CP6CpCBCBCpC7C8C0AC@ACPACTInterfacedObject@?DP?D`?D0`(0x(1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACTAggregatedObject`H((X1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACDCTContainedObjectp?D?D?D0@`P`i/pi/xl/xpp/xs/xpw/xz/{/{/ {/0{/@{/ }/0}/@}/P}//2~CCٓ<B[+#B.?vF<`Qx;9@ %z8"6i5DNn)W'4b<ACcQޫa:n$MBI .)>5D.&pA~_֑9S99_(;/ Zmm~6 'FOf?-_'u={9Rk_]0V{Fk 6^ae_@h'sM1Vɨs{`kpAp>>?@@@@ @P@$@@ @(k@ @@C#@&@*焑*@ -@1_0@4@.7@@v:k :@#NJ>@bxA@z&D@n2xH@W ?hK@N@@aQYR@ȥoU@: 'X@ x9?\@ 6_@Ngb@"E@|oe@?p+ŝi@զIx@=AGA+BkU'9p|B09F?ǑF uuvHM䧓9;5S]=];Z T7aZ%]g']݀n R`%uYnb5{?? ףp= ף?;On?,eX?#GGŧ?il7?BzՔ?aw̫?6A_p??$ ?̈Po ̼?KB.?\ 5$?٬:|?[Mľ?I62w?]?a}J?d弼?{tP?,?'m?S;uD?QӮ?۝Xv%ƨ?H~t??>;5ʞ?2^_B?CK,΁?9Eϔ?9'*?Su>d|FU>sۓ=#Tw=N1J<=:zc%C1_ XflKP.?0+Ʊ;HwAP~uu\T&Ԇ H½%<MXdJloo=]S5Ȍ]=apeF?%t]V *VFssIv5އOP@ uLKV]~rhk֬? l[@ }xzZׂ & ~2"- Pg̩]g50x=oz܅/ҵrL7B|C`\BL/LҘ \Bc<0$l8pOGst JG%d#< B, d'@Bʚ;yPD?̝ףp= ףp= ףZd;Ona+eXѓ܀#GGŧJ?il7v2=BzՔ։+ aw̫ h16A_pDsi$ |?ˈPo ̼ye(KB.u„S\ 5$r7٬:|oh.L[Mľk I62wh.2:]e1+a}Jad^{tP[$S,W<u'mTjR;uDQ݃:QӮMJ6ڝXv%Je^wH~tGnʋ CXn >;5@z%1^_B=CK,΁:g9E6aнK'3 M+ atW  t~ #+3>MWairy TObjectHTObject@SystemIUnknownFSystemTClassPClass TMsgStrTable TMsgStrTableP PMsgStrTable TStringMessageTable  TStringMessageTable (pstringmessagetablepx tinterfacetable0 tinterfaceentry( TGuid  P   TGuid `  x`  `    PGuid  !tinterfaceentrytype etStandardetVirtualMethodResultetStaticMethodResult etFieldValueetVirtualMethodClassetStaticMethodClassetFieldValueClassSystem(!!!N!!o!!Y!!N!Y!o!!!!!@" tinterfaceentry(! !! " (## tinterfacetable0@#H#pinterfacetable## TVmt#PPVmt%# TVmt#$ (08@H#PX`hpx$PVmt%%pinterfaceentry#% TMethod% TMethod%0&PMethodp&x& IInvokableSystem& IEnumeratorSystem& IEnumerableSystem' IDispatchFSystemX'TInterfacedObject'TInterfacedObject(System'TInterfacedClass((TAggregatedObject8(TAggregatedObject`Systemx(TContainedObject(TContainedObjectP(System(PUnknown() PPUnknown@)H) PDispatch'h) PPDispatch)) TExceptProcObjAddr FrameCountPFrame) TExceptObject(* TExceptObject*(*P H* PExceptObject** TVarRec* TVarRec* HhH(+PVarRec,, TResourceStringRecord , TResourceStringRecord, ` -PResourceStringRecord-- tvararraybound- tvararraybound-- tvararrayboundarray0.8.pvararrayboundarrayp.x. tvararraycoorarray.pvararraycoorarray..pvararraybound0./ tvararray (/ tvararray(/  p.`/ pvararray// tvararrayboundarray-0tvaropopadd opsubtract opmultiplyopdivide opintdivide opmodulus opshiftleft opshiftrightopandoporopxor opcompareopnegateopnotopcmpeqopcmpneopcmpltopcmpleopcmpgtopcmpgeoppowerSystemH0a00010000 0}000r0 0 0 0100g0 0(1a0g0r0}00000000000000001102 tvardata2  3  P3 3 tvardata2   @(p `0H3x333pvardata55 tcalldesc5 06 tcalldesc5X6`6 pcalldesc66 tdispdesc6 tdispdesc66 7 pdispdescp7x7 tvariantmanagerp7v7v8v(8 vP8@vx8v8pv8sv8sv 9svP9 intfv9 'dispv9dynarrvtypeinfo9dest source(:destsourceRange`:destsource:destsource:dest@source;destsourceP;destpsource;destsource;destsource;destsource0<dest sourceh<dest 'source<destsourcetypeinfo<0destsource =0destsourceX=0destsource=0destsourcerange=leftright 1opcode> leftright 1opcodeX>v>v>v>v?v@?destsourceh?destsourcevartype?destsourcevartype?5dest5source6calldescparams0@a highbound@$resulta indexcountindices@avalue indexcountindices(APtvwidthAPtvA tvariantmanager7p.7 8H8p88 8(8098H9@x9H9P9X :`X:h:p:x;H;;;;(<`<<<=P===>P>>>>?8?`? ?(?0(@8@@@H APxAXA`AhApvariantmanagerDEpdynarrayindex(E tdynarraytypeinfoHEppdynarraytypeinfoPFE tdynarraytypeinfoHEE Epdynarraytypeinfo(F0FXF fpc_small_setpFFfpc_normal_setF fpc_normal_set_byte F fpc_normal_set_long Ffpc_stub_dynarraySystem8G RawByteStringxG UnicodeStringG TFPCHeapStatus(G TFPCHeapStatusG( H THeapStatus(H THeapStatusH( ```` ````` `$H TMemoryManager`ISizeIpIpSize JSizePJpSizexJpJJJKII$resultKHH$result@K TMemoryManagerI` IJHJpJ J(J0J8J@KH8KP`KXhKPMemoryManagerHLPL PRTLEventpL TThreadFunc parameterL trtlmethod$selfPointerLTBeginThreadHandlersa stacksizeLThreadFunctionp` creationFlagsThreadIdLTEndThreadHandler`ExitCodeMTThreadHandler` threadHandleMTThreadSwitchHandlerNTWaitForThreadTerminateHandler` threadHandle TimeoutMsHNTThreadSetPriorityHandler  threadHandlePrioNTThreadGetPriorityHandler threadHandleOTGetCurrentThreadIdHandlerHO!TThreadSetThreadDebugNameHandlerA threadHandle ThreadNamexO!TThreadSetThreadDebugNameHandlerU threadHandle ThreadNameOTCriticalSectionHandlercsHPTCriticalSectionHandlerTryEntercsPTInitThreadVarHandler`offset`sizePTRelocateThreadVarHandler`offset QTAllocateThreadVarsHandler`QTReleaseThreadVarsHandlerQTBasicEventHandlerstateQTBasicEventWaitForHandler`timeoutstateQTBasicEventCreateHandlerEventAttributes AManualReset InitialStateNameHRTRTLEventHandlerLAEventRTRTLEventHandlerTimeoutLAEventtimeoutSTRTLCreateEventHandlerLXSTSempahoreInitHandlerSTSemaphoreDestroyHandlersemSTSemaphorePostHandlersemSTSemaphoreWaitHandlersem0T TThreadManagerhT T T TThreadManagerhT#TTMMN N(N0N8@N@NHNP@OXpO`Oh@PpPxPPPPQXQQQRQQQ@RSSSSSPSTTLoadLibraryUHandlerName(WTLoadLibraryAHandlerName`WTGetProcAddressHandlerLibProcNameWTGetProcAddressOrdinalHandlerLibOrdinalWTUnloadLibraryHandler Lib@XTGetLoadErrorStrHandler$resultxX TDynLibsManager0X TDynLibsManagerX0XWWW8XpX X(XEnumResTypeProc ModuleHandleH ResourceTypelParamYEnumResNameProc ModuleHandleH ResourceTypeH ResourceNamelParamYEnumResLangProc ModuleHandleH ResourceTypeH ResourceName IDLanguagelParampZ TResourceManagerX[@[ ModuleHandleYEnumFunclParamX[ ModuleHandleH ResourceTypehZEnumFunclParam[ ModuleHandleH ResourceTypeH ResourceNameZEnumFunclParam\ ModuleHandleH ResourceNameH ResourceType\ ModuleHandleH ResourceTypeH ResourceName Language\ ModuleHandle ResHandle`]` ModuleHandle ResHandle]ResData]ResData^ResData0^ TResourceManager[X P[[\\\ X](]0]8^@(^HP^PX^ TExceptAddr8_ TExceptAddr8_P_p_ PExceptAddr__ _ ` H`DDDD@EDEDFDGDGD0HDpHDHDHDPInteger` IntegerArray<a PIntegerArray0a8a PointerArrayXa PPointerArrayaaTEndianLittleBigobjpasaaaaaabTResourceIterator$resultNameValueHasharg0b PResStringRecbc1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACCCCCCCCCCC TIDesignerbdp1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTMonitord(a0nPnHnDP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpTDT``T`0`ЅT`TTT TTTT TD`Tpa0aTPDڄa````^^``Ў` `@`D_a`^+`+`P^``_ D ``0`0_^_ ?`P8a9a@^^PDP``D^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``D"``p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_apDPD0^`^0`_``PDEn(  |(|ӅP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTTTTЅTиTTT TTTT T@х`TpT TTTTT``pTCustomHintActionz5}1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX EScrollBar8|`~~^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T|D`TzDsDpiDiDjDkDmDmDwD@xDvDPwD0mD`mDnDoDpoD pDDpDЃD~D`DTControlScrollBar }(n@XPDP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpTХDT``T`0`ЅT`TTT TTTT T`D`Tpa0aT0Dڄa````^^``Ў` `@`D_a`^+`+`P^``_ D ``0`0_^_ ?`P8a9a@^^PDP``D^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`0`D0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``D"``p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_apDPD0^`^0`_``P0 OnMouseWheel?0OnMouseWheelDown@0OnMouseWheelUpPA0OnMouseWheelHorzB0OnMouseWheelLeft  C0OnMouseWheelRight@@D0OnResize``E0 OnStartDockppF0 OnStartDragHHG0OnUnDockH0OnPaint TCustomFrame TCustomFrameFormsTCustomFrameClassTFrame0TFramexKForms:Hx8Align|`Anchors 0 8 AutoScroll 8AutoSize;aBiDiModep``4 BorderSpacing@`_4 ChildSizingA``% ClientHeight`B``% ClientWidthH (Color(0`4 Constraints0D@D DesignTimePPI _4DockSite0``4 DragCursor8dd0DragKindȤhx 8DragMode P`!Enabledx``0`"FontD# LCLVersion$0OnClick%0OnConstrainedResize &0OnContextPopup  '0 OnDblClick(0 OnDockDropx)0 OnDockOver000*0 OnDragDrop@@+0 OnDragOver0``,0 OnEndDock0pp-0 OnEndDrag((.0OnEnter88/0OnExitP00 OnGetSiteInfo10 OnMouseDown20 OnMouseEnter30 OnMouseLeave40 OnMouseMove50 OnMouseUpP60 OnMouseWheel70OnMouseWheelDown80OnMouseWheelUpP90OnMouseWheelHorz:0OnMouseWheelLeft  ;0OnMouseWheelRight@@<0OnResize``=0 OnStartDockpp>0 OnStartDragHH?0OnUnDock @`h@9ParentBackground A8ParentBiDiMode `B4 ParentColor `C4 ParentFont `D4ParentShowHint`E6 PopupMenu @ F8Scaled `0`GShowHint( _^H5TabOrder  ^I4TabStop ``JVisiblepTWindowMagnetOptionsTWindowMagnetOptionsForms 0 SnapToMonitor 0 SnapToForms 0SnapFormTarget 0Distance( @TWindowMagnetManagerpTWindowMagnetManagerForms TBorderIcon biSystemMenu biMinimize biMaximizebiHelpForms)@) TBorderIcons8TDefaultMonitor dmDesktop dmPrimary dmMainForm dmActiveFormForms8xTFormStateType fsCreating fsVisible fsShowingfsModalfsCreatedMDIChildfsBorderStyleChangedfsFormStyleChanged fsFirstShowfsDisableAutoSizeForms 6*X*6 TFormStateP( PModalResultn PTFormHandlerType fhtFirstShowfhtClose fhtCreateFormspTShowInTaskbar stDefaultstAlwaysstNeverForms KATpAKT TPopupModepmNonepmAuto pmExplicitForms@ TCloseEvent$selfPointerSenderTObject CloseAction TCloseActionXhTCloseQueryEvent$selfPointerSenderTObjectCanCloseBoolean TDropFilesEvent$selfPointerSenderTObject FileNames AnsiString$highFILENAMESInt64H AnsiString THelpEvent$selfPointerCommandWordDataInt64CallHelpBooleanBoolean  TShortCutEvent$selfPointerMsgTLMKeyHandledBoolean TModalDialogFinished$selfPointerSenderTObjectAResultLongInt TCustomFormClassp TForm TFormoForms^!@:ActionH@%E4 ActiveControlHx8Align ,E4AllowDropFiles -E4 AlphaBlend.E4AlphaBlendValue|`Anchors 0 JE AutoScroll 8AutoSize;aBiDiMode E4 BorderIcons E4 BorderStyleP^4 BorderWidth"0``aJECaption@`_4 ChildSizingA`` % ClientHeight`B``!% ClientWidthH  "(Color(0`#4 Constraints0$0DefaultMonitor0D@D% DesignTimePPI _&4DockSite _P^'DoubleBuffered8dd(0DragKindȤhx)8DragMode P`*Enabledx``0`+Fontx(/E,4 FormStyleHH-0HelpFilePDJE.Icon /0 KeyPreviewE04Menu10 OnActivate20OnChangeBounds30OnClickJE4OnClose@JE5 OnCloseQuery60OnConstrainedResize 70OnContextPopup80OnCreate  90 OnDblClick:0 OnDeactivate;0 OnDestroy<0 OnDockDropx=0 OnDockOver000>0 OnDragDrop@@?0 OnDragOver@0 OnDropFiles0``A0 OnEndDockPB0 OnGetSiteInfo ((C0OnHelp88D0OnHidexE0 OnKeyDown؟F0 OnKeyPressxG0OnKeyUpH0 OnMouseDownI0 OnMouseEnterJ0 OnMouseLeaveK0 OnMouseMoveL0 OnMouseUpPM0 OnMouseWheelN0OnMouseWheelDownO0OnMouseWheelUpPP0OnMouseWheelHorzQ0OnMouseWheelLeft  R0OnMouseWheelRightS0OnPaint@@JETOnResize HHU0 OnShortCutXXV0OnShowPPW0 OnShowHint``X0 OnStartDockHHY0OnUnDockHXXZ0OnUTF8KeyPresshh[0OnWindowStateChange \8ParentBiDiMode hS_]4ParentDoubleBuffered `^4 ParentFont_0 PixelsPerInch``6 PopupMenuh Da4 PopupModep0Db4 PopupParenthx0Ec4Positiond0SessionProperties PFFe5 ScreenSnap `0`fShowHinth1Eg4 ShowInTaskBarFFh5 SnapBuffer8PFi4 SnapOptions p#_j4UseDockManager|Ek LCLVersion @ l8Scaled EmVisible"En4 WindowState  TFormClassTCustomDockForm TCustomDockForm Forms0 PixelsPerInch` THintWindow THintWindowXForms THintWindowClass0 8 THintWindowRendered` THintWindowRendered0 Forms  TMonitorList  TMonitorListx`Forms! TCursorRec@! TCursorRec@!!'x! PCursorRec!!TScreenFormEvent$selfPointerSenderTObjectForm TCustomForm!TScreenControlEvent$selfPointerSenderTObject LastControlTControl`"TScreenNotificationsnNewFormCreated snFormAdded snRemoveFormsnActiveControlChangedsnActiveFormChangedsnFormVisibleChangedForms" #7##K#"#p#"## #7#K##TMonitorDefaultTo mdNearestmdNull mdPrimaryForms$,$6$=$X$,$6$=$$0Forms$TScreen$$TScreenForms(%TQueryEndSessionEvent$selfPointerCancelBoolean X%TExceptionEvent$selfPointerSenderTObjectE Exception%TGetHandleEvent$selfPointerHandleHWND'& TIdleEvent$selfPointerSenderTObjectDoneBoolean h&TOnUserInputEvent$selfPointerSenderTObjectMsgLongWord`& TDataEvent$selfPointerDataInt640' TCMHintShow x' TCMHintShowx' ``((' TCMHintShowPause (( TCMHintShowPause(( ```(h(TAppHintTimerTypeahttNone ahttShowHint ahttHideHintahttReshowHintForms(") )/))P) ))")/))TShowHintEvent$selfPointerHintStr AnsiStringCanShowBooleanHintInfo THintInfo p) THintInfoAtMouseH* THintInfoAtMouseH* *TApplicationFlag AppWaitingAppIdleEndSentAppNoExceptionMessages AppActive AppDestroyingAppDoNotCallAsyncQueueAppInitializedForms*<+F+T++k+%+ ++ ++%+<+F+T+k++TApplicationFlags+8,TApplicationNavigationOptionanoTabToSelectNextanoReturnForDefaultControlanoEscapeForCancelControl anoF1ForHelpanoArrowToSelectNextInParentFormsh,,,,,,-,,,,,`-TApplicationNavigationOptions--TApplicationHandlerTypeahtIdle ahtIdleEndahtKeyDownBeforeahtKeyDownAfter ahtActivate ahtDeactivate ahtUserInput ahtException ahtEndSessionahtQueryEndSession ahtMinimize ahtModalBegin ahtModalEnd ahtRestore ahtDropFilesahtHelpahtHint ahtShowHintahtGetMainFormHandleahtActionExecuteahtActionUpdateForms-./..:..b.U....-.. . . . . p. ..H.(/-. ....:.H.U.b.p.........../00 TAsyncCallQueueItem(0 TAsyncCallQueueItem0(p'11 (1PAsyncCallQueueItem11 TAsyncCallQueue1 TAsyncCallQueue1112 TAsyncCallQueuesHP2 TAsyncCallQueuesP2HH2(H282TApplicationType atDefault atDesktopatPDAatKeyPadDeviceatTabletatTVatMobileEmulatorForms233-3J3'3<3E3p333'3-3<3E3J33TApplicationExceptionDlgaedOkCancelDialogaedOkMessageBoxForms4C4U4x4C4U44TApplicationShowGlyphs sbgAlwayssbgNever sbgSystemForms44445444H5TTaskBarBehavior tbDefault tbMultiButtontbSingleButtonFormsp555555556TApplicationDoubleBuffered adbDefaultadbFalseadbTrueForms(6U6`6i66U6`6i66 AnsiString6 TApplication7 TApplication FormsX7TApplicationPropertiesx7TApplicationProperties#Forms! pzF4CaptureExceptionsp4tPzF4ExceptionDialogx{F4HelpFile`{F4Hint{F4 HintColor|F 4 HintHidePause`|F4 HintPause |F 4 HintShortCuts}F 4HintShortPause5 ~F 4ShowButtonGlyphs5p~F 4ShowMenuGlyphs `}F 4ShowHint }F4 ShowMainForm~F4TitlepxF4 OnActivate`yF4 OnDeactivate&pF4 OnException`&wF4OnGetMainFormHandle&(`F4OnIdle8PF4 OnIdleEnd@F4 OnEndSession%0F4OnQueryEndSession F4 OnMinimizeuF4 OnModalBeginvF4 OnModalEndF4 OnRestoreF4 OnDropFiles HF4OnHelpXF4OnHint@*hЈF4 OnShowHint('xF 4 OnUserInput F!4OnActionExecute F"4OnActionUpdate7TFormPropertyStorageP?TFormPropertyStoragehForms?TGetDesignerFormEvent$selfPointer APersistent TPersistent TCustomForm?TIsFormDesignFunction HAForm8@TMessageBoxFunctionHTextHCaptionFlagsx@JpYdJDP݄4CT0^DD9C7C8C0AC@ACPAC```T`TTD`TpT@}ET@DT`0`ЅT`TTT TTTT T}E`Tpa0aT@|EڄvE``pD`PE^``Ў` `@`E_a`^+`+`P^``DDD`D0_^_ ?`P8a9a@^^PDP``D^@F_F_p__E```@E@$_`E^ _ -` _,`,`;`0_`PE`x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`D` E_@_`@^p_B`pD`D`P\`^`0_`]`_`_` E@ EF`G`I`DE@EDp`J`<`xE``0` @`@`@`p_u^v^@w^IE_%a&aE #`p/a`^D ````_@``a``D=_`<_|`^```0a_apDPD0^`^0`_``PGL@GLP@GL@GLAGL@CGMCG MCG8Mp\HHM^HhM.HMCGMGGMGGM@IGMIGNIGNJG0N@JGHNJG`NJGxNKGN0KGNpHNHNMGN@OGOOGO`PG8OPGPOPGpORGOUGO^GOdGO@aGOPbGOcGPbGPnG8PqGPPrGpPPrGPrGPrGP@sGPsGP tGP0uGQpG Q`G0QG@QGPQG`Q GpQPGQGQGQGQGQPGQGRGR G8RpGPRGhRGR`GRGR@GRGRGR@GSG(SG@S GXSGpSPGSGSGSGSGS@GSGTG0TGHTGhT`GxTGT GTGT0HTHTGHUGH(ULH@UMH`UpGpU0GUGUGU@GUPGUSHUUHVXHVdH(VGHVG`V0GxV@GVGVGVPGVmHVPnHWoHWqH0W0sH@W@MHPW PH`WdHxWGWGWGW@GWGWGXHXH0X HHX G`X$HpXFX.HX/HX`8HX8HXtHXuHYpuH(YvH@YvHXYvHPx.`bȪ `A[ZO(d0Tp0 `tq2FcAccSnowOffLinRdgAccSnowLinDiff ARLYThresholdAccSnowLEDOnButtonAccSnowLEDOffButton AccSnowLinRqLogSettingsButton LabeledEdit1LabelTextButtonbXPortDefaultsFinalResetForXPortProgressBarFWUSBExistsLabel  FirmwareFile( FWCounter0 FWUSBGroup8 FWEthGroup@ConcatenateMenuHCloudRemovalMilkyWayPConfigBrowserMenuItemXARPMethodMenuItem` FilterSunMoonhOnlineResourcespOnlineLRmanualxOnlineLUmanualOnlineLEmanualOnlineDLmanual OnlineVmanual OnlineManualsStartUpMenuItemResetXPortProgressBarSelectFirmwareButtonFWWaitUSBButtonConfLightCalButton DLSetSeconds1 DLTrigMinutes ConfLightCalReq ConfDarkCalReqAccSnowOnLinRdgLabel24 DLMutualAccessGroup SnowReadSkipEdit SnowReadingsLabel SnowSampleLabel  SnowGroupBox Label23( SnowLoggingEnableBox0 FirmwareTimer8 FWStopUSBButton@ LogRecordResultH TriggerComboBoxP  DLSetSecondsX  DLTrigSeconds` Label22h  DLSecMinPagesp CommOpenx ACCSnowLEDStatus  Displayedcdm2  DisplayedNELM  DisplayedNSU DisplayedReading AccSNOWLEDGroupBox  HeaderButton Label46 Label47 LogContinuousButton  LoggingGroup LogOneRecordButton MeasurementGroup  DetailsGroup DatReconstructLocalTime Correction49to56MenuItem  AverageTool datToDecimalDate ColourCyclingRadio ReadingListBox  ReadingUnits  RequestButton( Button10 AHTRefreshButton8 ADISEnable@ AHTModelSelectH AHTEnableP ALEDEnableX ADISModelSelect` ARLYOnh ARLYOffp ARLYModeComboBoxx AccRefreshButton ConfRecWarning ContCheckGroup CurrentFirmware GetReportInterval TimedReportsGroupBox  ADISPGroup AHTGroup  ALEDGroup ADISBrightnessGroup  GroupBox5 ColourControls ARLYThresholdValue  LockedImage IThDes IThE  IThERButton IThR  IThRButton ITiDes ITiE  ITiERButton( ITiR0  ITiRButton8 Label16@ Label17H Label18P Label19X  ARLYModeLabel` ARLYThresholdLabelh ARLYStatusLabeledEditp  ARLYTValuex  ARLYHValue  ARLYTDPValue  LoadingStatus Label28 Label36 Label37 Label38 Label39 Label40 Label41 AHTHumidityValue AHTHumidityStatus AHTTemperatureValue  LHComboLabel FilterComboLabel LensComboLabel LHCombo  LensCombo  FilterCombo ColourScalingRadio ColourRadio DatTimeCorrection( PlotterMenuItem0 CommBusy8  DLSecSheet@  DLMinSheetH  UnLockedImageP LockSwitchOptionsX  mnDATtoKML` OpenDLRMenuItemh  ADISFixedp ADISAutox ALEDMode ADISMode  SimFromFile AccTab ADISFixedBrightness  VersionButton VersionListBox  VThresholdSet Button2 Button3 Button4 Button5 Button6 Button7 Button8 Button9 ConfDarkCaluxButton DLRetrieveButton DLClockSettingsButton DLThresholdSet  VThreshold  FindBluetooth( FindUSBMenuItem0 FindEthMenuItem8 ConvertLogFileItem@ ThresholdVibrationGroupH DeviceClockGroupBoxP DLClockDifferenceX DLClockDifferenceLabel` LogNextRecord10h LogPreviousRecord10p  GPSResponsex  MenuItem1  CmdLineItem CommTermMenuItem Panel1  ScrollBox1 TrickleOffButton TrickleOnButton  VCalButton  VectorTab  ToolsMenuItem PrintLabelButton DLBatteryDurationRecords FirmwareInfoButton  LogCalButton  ConfGetCal DirectoriesMenuItem DLHeaderMenuItemProcess1 RS232Baud RS232Port VersionItem PrintCalReport( ConfRdgmpsas0 ConfRdgPer8 GroupBox1@ GroupBox3HLabel3P FinalResetForFirmwareProgressBarXLabel42` ConfRdgTemphLabel43pLabel44xLabel45ConfTempWarning PrintDialog1Memo1ViewSimMenuItemViewConfigMenuItem SimFreqMax SimPeriodMax SimResults SimTempDiv SimTempMax SimTempMin SimTimingDiv SimVerboseStopSimulationStartSimulationStartResetting StopResettingGetCalInfoButtonConfDarkCalButtonButton18 LogCalInfoButton(Label320Label338Label34@Label35HLCOSetPLCTSetXDCPSet`DCTSethCheckLockButtonpCheckLockResultx CommNotebookDLBatteryCapacityComboBoxDLBatteryDurationTimeDLBatteryDurationUntilDLDBSizeProgressBarDLDBSizeProgressBarTextDLEraseAllButtonDLLogOneButton DLThresholdDCPDesDCTDesLCOActLCTActDCPActDCTActLCODesLCTDesEstimatedBatteryGroup EthernetIP EthernetMAC EthernetPort  FindButton( FoundDevices0TriggerGroupBox8Label1@Label10HLabel11PLabel12XLabel13`Label14hLabel15pLabel2xLabel27Label29 CapacityLabelLabel31Label4Label5Label6Label7Label8Label9ListBox1 LoadFirmwareLoadFirmwareProgressBarLogFirstRecord LogLastRecord LogNextRecordLogPreviousRecord MainMenu1 HelpMenuItem AboutItem DLSaveDialog  DataNoteBook( FileMenuItem0 Simulation8ViewLogMenuItem@ ViewMenuItemH OpenLogDialogP OpenMenuItemXQuitItem`ResetForFirmwareProgressBarh StorageGrouppInformationTabxCalibrationTabReportIntervalTab FirmwareTabDataLoggingTabConfigurationTabGPSTab TabEthernetTabRS232TabUSBTroubleshootingTab ThresholdSelectFirmwareDialog StatusBar1USBPortUSBSerialNumber@X    H x  ؅  8 h  Ȇ  ( X    8 H x  ؈  8 h  ȉ  ( X   8 8 @H x 0 ؋  8 h  Ȍ  ( 8X   8 0Unit1H x 0 ؎  8 (h TForm1ȏTForm1@oUnit1 FoundDevice ( FoundDevice(  Unit1 Unit1( X XUnit1  (%0h8DP݄4CT0^DD9C7C8C0AC@ACPAC```T`TTD`TpT@}ET@DT`0`ЅT`TTT TTTT T}E`Tpa0aT@|EڄvE``pD`PE^``Ў` `@`E_a`^+`+`P^``DDD`D0_^_ ?`P8a9a@^^PDP``D^@F_F_p__E```@E@$_`E^ _ -` _,`,`;`0_`PE`x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`D` E_@_`@^p_B`pD`D`P\`^`0_`]`_`_` E@ EF`G`I`DE@EDp`J`<`xE``0` @`@`@`p_u^v^@w^IE_%a&aE #`p/a`^D ````_@``a``D=_`<_|`^```0a_apDPD0^`^0`_``PO `b ȪOwx.2P BinsLabel BinsSpinEditRollingSettingsGroupLabel1Label2ProcessStatusMemo MethodradioInputFileListMemoSourceDirectoryButtonSourceDirectoryEditMemo1 ProgressBar1  SelectDirectoryDialog1( StartButton0 StatusBar1X 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TFileDetails0  P    TForm8@TForm8Xoavgtoolp TFileDetails TFileDetails0avgtool(avgtool PXDP݄4CT0^DD9C7C8C0AC@ACPAC```T`TTD`TpT@}ET@DT`0`ЅT`TTT TTTT T}E`Tpa0aT@|EڄvE``pD`PE^``Ў` `@`E_a`^+`+`P^``DDD`D0_^_ ?`P8a9a@^^PDP``D^@F_F_p__E```@E@$_`E^ _ -` _,`,`;`0_`PE`x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`D` E_@_`@^p_B`pD`D`P\`^`0_`]`_`_` E@ EF`G`I`DE@EDp`J`<`xE``0` @`@`@`p_u^v^@w^IE_%a&aE #`p/a`^D ````_@``a``D=_`<_|`^```0a_apDPD0^`^0`_``PT0>TP>Tx>U>W>W>W>W?W@?Y`?Y?Y?Y?Y?Z@Z(@\P@\p@\@\@\@]@]A]8A]XA]xA]A^A^A^B^ B^PB_pB_B_B_B`B`C`@Ca`CaCaCaCaCbDb(DbHDbhDbDeDeDeDeEe0EePEexEfEjEjEjFk(FHFhFFFFFG8G`GGGGH(HPHpHHHHHI8IXIIIIIJe(JeHJmpJmJmJtJuKv0KwXKxKyKzK{K| L}HLpLLLLLM8MXMMMMMN(NHNpNNNNO(OHOhOOOOP(PPPpPPPPQ QHQpQQQQR RHRpRRRRQSQ(SQHS'hS'S'S'S'T'8T'`T'T'T'T!'U%'0U-'XU_'Ua'Ub'U.U. V.@V.`V.V.V.V.V NW!N0W"NXW#NW$NW%NWNWNXN@XNhXNXNXNXNYN(YNHYNhYNYNYNYNZN(Z%OPZ-OxZ1OZ5OZ6OZ8O[SHSTStream({(X}1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC0UCCCTFilerh|(`}x~(PUP3C4CP6CpCpCpCpC7C8C0AC@ACPAC0UUUUpUUU$UTReaderh}x`}gUP3C4CP6CpCpCpCpC7C8C0AC@ACPAClU`jU`kUPhUphU`lUTWriter~`P8TP3C4CTpCpCTpC7C8C0AC@ACPAC]TTT`TTpC`TpTЂTTTpCTTpCpCTTpC TTpCT T@T`TTTT TComponent`UpUUU0`X` `XP SP3C4CP6CpCpCpCpC7C8C0AC@ACPACTFPList1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACTFPListEnumerator 8SP3C4CP6CpCpCpCpC7C8C0AC@ACPACpC SSSTListUUUyȅ1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACTListEnumerator@PSP3C4CP6CpCpCpCpC7C8C0AC@ACPAC TThreadList 1SP3C4CP6CpCpCpCpC7C8C5S@ACPAC0STBitsȆЈ^TP3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T`T`T TPersistentБUUUy(@8^TP3C4CP6CpCaTpCpC7C8C0AC@ACPAC]TpC^T`T`TpbTTInterfacedPersistentUU U0 `@dTP3C4CP6CpCpCpCpC7C8C0AC@ACPACTRecallp8hpSP3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^TSSpSSSpC`SSPSSPS TCollectionP(ЍX0SP3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpCS`TSS S`SSЖSTCollectionItem1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACTCollectionEnumerator@ 8pSP3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpCSSSpSSSpC`SSPSSPSTOwnedCollectionPx` TP3C4CP6CpCpCpCpC7C8C0T@ACPAC]TpS^TpT`TPSCSCSSSpCpCTTT@T@T T TPTpTTCCTT`T0T T0TCTTTTT` T`"T#TP$T%T(TTStringsH4/sR =ژ&{739C2F34-52EC-11D0-9EA6-0020AF3D82DA}(1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACTStringsEnumeratorp@P0TP3C4CP6CpCpCpCpC7C8C0T@ACPAC]TpS^TpT`TPS-T .T0.T@.TSp.T.T0/TT0Tp4T 1T@T T TPTpTT1T1T2TT06T0T T0T6TTTTTT` T`"T#TP$T%T(T)T-T-T`,T,T5T7T7T TStringListГ`|1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC=S9S9S9S9SpCP:S`zSzS:SzSHS@{S TProxyStream``|prSP3C4CP6CpCpCpCpC7C8C0AC@ACPAC=S9S9S9S9SpCP:SP9Sp9S:S>SHS TOwnerStream͸z&O`&{B8CD12A3-267A-11D4-83DA-00C04F60B2DD}`|p 1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC=S9S9S9S9S0KSPKSJSKS:SKSHS THandleStream@X0PSP3C4CP6CpCpCpCpC7C8C0AC@ACPAC=S9S9S9S9S0KSPKSJSKS:SKSHS TFileStream `|1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC=SPS9SPS9SpCP:SPSp9S:S0QSHSTCustomMemoryStreamЛ(X`SSP3C4CP6CpCpCpCpC7C8C0AC@ACPAC=SPS9SPS9SpCTSPSUS:S0QSHSpRS TMemoryStream 0h`SSP3C4CP6CpCpCpCpC7C8C0AC@ACPAC=SPS9SPS9SpCTSPSUS:S0QSHS0WSUS TBytesStreamp@eSP3C4CP6CpCpCpCpC7C8C0AC@ACPAC=SPS9SPS9SpCTSPSUS:S0QSgS0WSZS TStringStreamȟ0``SSP3C4CP6CpCpCpCpC7C8C0AC@ACPAC=SPS9SPS9SpCTSPSUS:S0QSHS0WSUSTRawByteStringStream 0xpSP3C4CP6CpCpCpCpC7C8C0AC@ACPAC=SPS9SPS9SpCP:SPSp9S:S0QSHSTResourceStream0XxpPtSBC4CP6CpCBCBCpC7C8C0AC@ACPACtSuSPuSvSvS0xS@xSPxS`xSpxSxSTStreamAdapter0U@UPU`UpUUUUUUВUUUU(ȣ@ 1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACpCCCCCCCCCCCCCCCCCCCCCCCCCTAbstractObjectReader(X8 UP3C4CP6CpCpCpCpC7C8C0AC@ACPACpC@ U U` U U@ UU` U U U0 U UP U U@ U` Up U UUUU`UUUUTBinaryObjectReader`1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACCCCCCCCpCCCCCCCCCCCCCCCCCTAbstractObjectWriter(XXUP3C4CP6CpCpCpCpC7C8C0AC@ACPACPYUYUpYUZUZUZUpCcUcU[UP[U[U[U \U[U`\U]Up^UpaU _Up_U@`U`U aUTBinaryObjectWriterȪ1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACCCCCCCCpCCCCCCCCCCCCCCCCCTTextObjectWriterx@SP3C4CP6CpCpCpCpC7C8C0AC@ACPACTParser(hDTP3C4CP6CpCpETpCpC7C8C0AC@ACPACBTpCCTThread5а1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEThreadذ1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEThreadExternalExceptionذ1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEThreadDestroyCalledرx// [Ȳ&{E07892A0-F52F-11CF-BD2F-0020AF0E5B81}?$JGd9&{3FEEC8E1-E400-4A24-BCAC-1F01476439B1}(qOoX&{B971E807-E3A6-11D1-AAB1-00C04FB16FBC}ppH!1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACTComponentEnumerator`؁!pTP3C4CTpCpCTpC7C8C0AC@ACPAC]TTT`TTpC`TpTЂTTTpCTTpCpCTTpC TTpCT TT`TTTT TTTpCpC TPT TBasicAction 8"PTP3C4CP6CpCpCpCpC7C8C0AC@ACPACpCTВTTpCTБTTTBasicActionLink](eOzrз&{285DEA8A-B865-11D1-AAA7-00C04FB17A72}(X#TBC4CP6CpCBCBCpC7C8C0AC@ACPACTInterfaceListU U0U@UPU`UpUUUUUUГUUUUU U0U@U `$1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACTInterfaceListEnumeratorй`؁$TP3C4CTpCTTpC7C8C0AC@ACPAC]T`TT`TTT`TpTЂTTTpCTTpCpCTTpC TTpCT TT`TTTTTpTPT T TDataModuleȺp)DTP3C4CP6CpCpETpCpC7C8C0AC@ACPACBTpC7TTAnonymousThreadh);TP3C4CP6CpCpETpCpC7C8C0AC@ACPACBTpCpCTExternalThreadȽx*DTP3C4CP6CpCpETpCpC7C8C0AC@ACPACBTpCST TSimpleThreadȾp*P*DTP3C4CP6CpCpETpCpC7C8C0AC@ACPACBTpCUTTSimpleStatusThreadȿ*DTP3C4CP6CpCpETpCpC7C8C0AC@ACPACBTpCXTTSimpleProcThreadpp++DTP3C4CP6CpCpETpCpC7C8C0AC@ACPACBTpCZTTSimpleStatusProcThread+1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACTLinkedListItem+1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACCTLinkedListVisitor ,@fTP3C4CP6CpCpCpCpC7C8C0AC@ACPACeT TLinkedList0,,1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACTUnresolvedReference8p8-1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACTLocalUnResolvedReference hx-`lTP3C4CP6CpCpCpCpC7C8C0AC@ACPACTUnResolvedInstance`-zTP3C4CP6CpCpCpCpC7C8C0AC@ACPACCTBuildListVisitorxX-zTP3C4CP6CpCpCpCpC7C8C0AC@ACPACzTTResolveReferenceVisitor xX/.zTP3C4CP6CpCpCpCpC7C8C0AC@ACPACwTTRemoveReferenceVisitorPH/1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACoTTReferenceNamesVisitorx H//1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACrTTReferenceInstancesVisitorp H0 01CP3C4CP6CpCpCpCpC7C8C0AC@ACPACtTTRedirectReferenceVisitorp810TP3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpCS`TSS S`SSЖSTComponentPagep H11CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC TIntConsthx11CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC TInitHandlerP11CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC TPosComponent/`/p/TPF08Xx ȩЩ TSeekOrigin soBeginning soCurrentsoEndClassesp TAlignment taLeftJustifytaRightJustifytaCenterClassesR5Cp5CR TLeftRighth taLeftJustifytaRightJustifyClasses@TVerticalAlignment taAlignTop taAlignBottomtaVerticalCenterClasses` TTopBottom taAlignTop taAlignBottomClasses@5`5@ TBiDiMode bdLeftToRight bdRightToLeftbdRightToLeftNoAlignbdRightToLeftReadingOnlyClasses `TShiftStateEnumssShiftssAltssCtrlssLeftssRightssMiddlessDoublessMetassSuperssHyperssAltGrssCapsssNumssScrollssTriplessQuadssExtra1ssExtra2Classes -6  & P&-68 TShiftStateH THelpContext THelpType htKeyword htContextClasses F<h<F TShortCut TNotifyEvent$selfPointerSenderTObject THelpEvent$selfPointerCommandWordDataLongIntCallHelpBooleanBoolean  TGetStrProc$selfPointerS AnsiString EStreamError EStreamError8jClasses( EFCreateError` EFCreateError kXClasses EFOpenError EFOpenErrorlXClasses EFilerError@ EFilerErrorlXClassesx EReadError EReadErrormClasses EWriteError EWriteErrornClassesPEClassNotFoundEClassNotFoundoClassesEMethodNotFoundEMethodNotFoundpClasses8 EInvalidImagep EInvalidImagexqClasses EResNotFound EResNotFound`rClasses EListErrorP EListErrorHsClasses EBitsError EBitsError0tClassesEStringListError EStringListErroruClasses`EComponentErrorEComponentErrorvClasses EParserError EParserErrorvClassesHEOutOfResourcesEOutOfResourceswClassesEInvalidOperationEInvalidOperationxClasses8TExceptionClasspTFPObservedOperationooChangeooFree ooAddItem ooDeleteItemooCustomClassesH IFPObserved <`1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EUnderflow= 5x?1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EInOutError> 5`@1CP3C0HXP6CpCpCpCpC7C8C0AC@AC`GXEHeapMemoryError?x6PAx1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEExternalException@ x@@B1CP3C0HXP6CpCpCpCpC7C8C0AC@AC`GXEInvalidPointerpA x@(Ch1CP3C0HXP6CpCpCpCpC7C8C0AC@AC`GX EOutOfMemoryXB5Dؽ1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EInvalidCast@C 5DH1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EVariantError(Dx6E1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEAccessViolationEEF01CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EBusErrorFx6G1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EPrivilegeFx6H1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEStackOverflowGx6Ix1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EControlCH5pJ1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EConvertErrorI5XKP1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EFormatErrorJ5@L1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEAbortpK5 M 1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEAbstractErrorPL5N1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEAssertionFailed8M5N1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EObjectCheck(N5Ox1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EThreadErrorO5P1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXESigQuitO5QP1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EPropReadOnlyP5R1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEPropWriteOnlyQ5S01CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEIntfCastErrorR5hT1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEInvalidContainerS5XU1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEInvalidInsertT5@V1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EPackageErrorpU 5(W1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEOSErrorXV5Xh1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXESafecallException@W5Y1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXENoThreadSupport0X5Y`1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXENoWideStringSupport Y5Z1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXENoDynLibsSupportZ5[X1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEProgrammerNotFound[5\1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXENotImplemented[5]P1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEArgumentException\]^1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEArgumentOutOfRangeException]]_`1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEArgumentNilException^5`1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEPathTooLongException_5pa`1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXENotSupportedException`5`b1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEDirectoryNotFoundExceptiona5Xcp1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEFileNotFoundExceptionb5Hd1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEPathNotFoundExceptionxc58ep1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEInvalidOpExceptionhd5(f1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXENoConstructExceptionXe5g01CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEEncodingErrorHf`h1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACCCCCCCCC0WCCC TEncoding0g phi@1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC XX XP X0XPX X0 XXXXX X X`X TMBCSEncodingxh i k1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC XX XP X0XPX X0 X XPX`XXX X`X TUTF7Encodingi 0kl 1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC XX XP X0XPX X0 XXXXXpX X`X TUTF8Encoding8kphm1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACPX`XXXXXXXX0X@X`XXTUnicodeEncodinglm(o1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACPXXXXXX0X@XX0X@XXXTBigEndianUnicodeEncodingmR{LWq=?Po&{7B108C52-1D8F-4CDB-9CDF-57E071193D3F}hoHXppp`XBC4CP6CpCBCBCpC7C8C0AC@ACPAC0X TSimpleRWSyncXXXX X0X@X`op@ooXqh(r!XBC4CP6CpCBCBCpC7C8C0AC@ACPAC0 X$TMultiReadExclusiveWriteSynchronizerPX`XpXXXXX`oqop50s1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXTMREWException`r,.-:, Ppش8Xxص8Xx @`з8Xxظ8`2й*%@FAu o o0o@o Poo0Np6F M $SQ(`WN,P008<Q@ P'p0.u(fQ01P1N3Z03QȺ34غC4{C4z C4y0C4x@C4w(PC4v8`C4uHpC4tXC4}hC4|xI?oI?oPI?o`I?opI?oлI?o `H Qp6S%0ZS1OZS6O[S8O@[Sb'Pfo`p}N8@п 0xN@@zNPP? ,`P? .pp@ 170'и3Z3QG4yG4x G4{0G4z@G4uPG4t`G4wpG4vG4}G4| .9yS!N S#N0S$N@S%NPhS-O`hS%OpSQSQT#Rd5d3uo'jU+ dUP`p`^`jho ho(0ho0@ho8Pho@hoHooPp6p%`0Zp1OhpZp5OpZp6Ox[p8O@[p o ory N Q0eL N o o0 o@ P `P8 p8 ` G Iq0 fp C  @F 0PaU `Y p o oq  N Nࢣ  o0 oB o B o0B o @B o0PB o@`B oPpB o`B opB oE oE o0E o@E oPE o`E opE oE oE o$ o $ j0$ o@$ oP$ o`$ opV o0. vP.. {L. . j 0. wp#@ 1 #@ 0 B Ɩ@L Pg '`3p %pYp IOpYp BO ^p =O0^p sysutilsEHeapMemoryErrorEHeapMemoryError?sysutilsEExternalException8EExternalException@hsysutilsxEInvalidPointerEInvalidPointerpA0sysutils EOutOfMemory0 EOutOfMemoryXB0sysutilsh EInvalidCast EInvalidCast@Csysutilsؽ EVariantError EVariantError(DsysutilsHEAccessViolationEAccessViolationEhsysutils EBusError EBusErrorFsysutils0 EPrivilege` EPrivilegeFhsysutilsEStackOverflowпEStackOverflowGhsysutils EControlC@ EControlCHhsysutilsx EConvertError EConvertErrorIsysutils EFormatError EFormatErrorJsysutilsPEAbortEAbortpKsysutilsEAbstractErrorEAbstractErrorPLsysutils EAssertionFailedXEAssertionFailed8Msysutils EObjectCheck EObjectCheck(Nsysutils EThreadError@ EThreadErrorOsysutilsxESigQuitESigQuitOsysutils EPropReadOnly EPropReadOnlyPsysutilsPEPropWriteOnlyEPropWriteOnlyQsysutilsEIntfCastErrorEIntfCastErrorRsysutils0EInvalidContainerhEInvalidContainerSsysutilsEInvalidInsertEInvalidInsertTsysutils EPackageErrorP EPackageErrorpUsysutilsEOSErrorEOSErrorXVsysutilsESafecallException(ESafecallException@WsysutilshENoThreadSupportENoThreadSupport0XsysutilsENoWideStringSupport ENoWideStringSupport Ysysutils`ENoDynLibsSupportENoDynLibsSupportZsysutilsEProgrammerNotFoundEProgrammerNotFound[sysutilsXENotImplementedENotImplemented[sysutilsEArgumentExceptionEArgumentException\sysutilsPEArgumentOutOfRangeExceptionEArgumentOutOfRangeException]sysutilsEArgumentNilException EArgumentNilException^sysutils`EPathTooLongExceptionEPathTooLongException_sysutilsENotSupportedException ENotSupportedException`sysutils`EDirectoryNotFoundExceptionEDirectoryNotFoundExceptionasysutilsEFileNotFoundException0EFileNotFoundExceptionbsysutilspEPathNotFoundExceptionEPathNotFoundExceptionxcsysutilsEInvalidOpException0EInvalidOpExceptionhdsysutilspENoConstructExceptionENoConstructExceptionXesysutils TBeepHandler0TCreateGUIDFunc GUIDXTTerminateProc TUnicodeCharArrayhsysutilsEEncodingErrorEEncodingErrorHfsysutils0 TEncodinghsysutils TEncoding0gsysutilsTStandardEncodingseAnsiseAscii seUnicodeseBigEndianUnicodeseUTF7seUTF8sysutils$+=3PWp$+3=PW TMBCSEncoding TMBCSEncodingxhsysutils@ TUTF7Encodingx TUTF7Encodingipsysutils TUTF8Encoding TUTF8Encoding8ksysutils TUnicodeEncodingXTUnicodeEncodinglsysutilsTBigEndianUnicodeEncodingTBigEndianUnicodeEncodingmsysutilsTFilenameCaseMatchmkNone mkExactMatch mkSingleMatch mkAmbiguoussysutilsX}} 0 ` UnicodeString  RawByteString TUnicodeSearchRec80 TUnicodeSearchRec08 (0 TRawbyteSearchRec8 TRawbyteSearchRec 8 (0p TUnicodeSymLinkRec  TUnicodeSymLinkRec ` TRawbyteSymLinkRec TRawbyteSymLinkRec TFileSearchOptionsfoImplicitCurrentDirsfoStripQuotessysutilsTFileSearchOptions8IReadWriteSyncR{LWq=?sysutilsh TSimpleRWSync TSimpleRWSynco(sysutils$TMultiReadExclusiveWriteSynchronizer$TMultiReadExclusiveWriteSynchronizerp(sysutilshTMREWExceptionTMREWException`rsysutils TStringArraysysutils( TCharArrayHsysutilsh TByteBitIndexTShortIntBitIndex TWordBitIndexTSmallIntBitIndexTCardinalBitIndex8TIntegerBitIndex`TQwordBitIndex?TInt64BitIndex? TGuidHelper TGuidHelper sysutilsTStringSplitOptionsNone ExcludeEmptyExcludeLastEmptysysutilsHsnnssysutils AnsiString0 h AnsiStringHsysutils AnsiString AnsiString8 AnsiStringp AnsiString AnsiString AnsiString AnsiStringP AnsiString AnsiString AnsiString AnsiString0 AnsiStringh AnsiString AnsiString TStringHelper TStringHelpersysutilsH TSingleHelper TSingleHelpersysutils TDoubleHelper TDoubleHelper(sysutils(TExtendedHelper`TExtendedHelper@sysutils TByteHelper TByteHelpersysutilsTShortIntHelperHTShortIntHelpersysutilsTSmallIntHelperTSmallIntHelper@sysutils TWordHelper8 TWordHelper sysutilspTCardinalHelperTCardinalHelper`sysutilsTIntegerHelper TIntegerHelpersysutilsX TInt64Helper TInt64Helpersysutils TQWordHelper TQWordHelpersysutils8TNativeIntHelperpTNativeIntHelpersysutilsTNativeUIntHelperTNativeUIntHelper0sysutils( TUseBoolStrsFalseTruesysutils`TBooleanHelperTBooleanHelper sysutils TByteBoolHelperXTByteBoolHelpersysutilsTWordBoolHelperTWordBoolHelpersysutilsTLongBoolHelperHTLongBoolHelpersysutils TSignalState ssNotHookedssHooked ssOverriddensysutilsH TAbstractSearchRec8p    P     @ p    0 `  ( (  P  TUnixFindData F&{00000001-0000-0000-C000-000000000046}0:s *Dw=@&{0c733a30-2a1c-11ce-ade5-00aa0044773d}X F&{0000000C-0000-0000-C000-000000000046}`1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC TBitConverter TDirection FromBeginningFromEndTypes@TValueRelationship` PLargeInt PLargeuIntTBooleanDynArray Types TByteDynArrayTypesTCardinalDynArray`TypesHTInt64DynArrayTypesTIntegerDynArrayTypesTLongWordDynArray`TypesTPointerDynArrayTypesHTQWordDynArrayTypesTShortIntDynArrayTypesTSmallIntDynArray@TypesTStringDynArrayTypesHTObjectDynArrayxTypesTObjectDynArrayTypesTWideStringDynArrayTypes TWordDynArray TypesHTCurrencyArraypTypesTSingleDynArrayTypesTDoubleDynArray(TypesTExtendedDynArray @TypesH TCompDynArray@Types TArray4IntegerType TSmallPoint TSmallPoint@@@ PSmallPoint TSize TSizePSize TPoint0 TPoint0`PPointTSplitRectTypesrLeftsrRightsrTopsrBottomTypesH TRectx TRectx PRect08 TPointFP TPointFP TRectF TRectF  TDuplicates dupIgnore dupAcceptdupErrorTypesPPOleStr( TListCallback$selfPointerdataPointerargPointerHTListStaticCallbackdataargPDWord` TXrmOptionDescRec TXrmOptionDescRecHPXrmOptionDescRecpx _FILETIME _FILETIME`` PFileTime tagSTATSTGP@ tagSTATSTG@P ` (`0`4 8`H`LxPStatStgHP IClassFactoryFTypespISequentialStream0:s *Dw=TypesIStream FTypes  TBitConverter( TBitConverterTypes`5h(1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEPropertyError5P*1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEPropertyConvertErrorpTOrdTypeotSByteotUByteotSWordotUWordotSLongotULongotSQWordotUQWordTypInfo $@ $ TFloatTypeftSingleftDouble ftExtendedftCompftCurrTypInfo:A&/`&/:A TMethodKind mkProcedure mkFunction mkConstructor mkDestructormkClassProceduremkClassFunctionmkClassConstructormkClassDestructormkOperatorOverloadTypInfo QdA0# v #0AQdv TParamFlag pfVarpfConstpfArray pfAddress pfReferencepfOut pfConstRefpfHiddenpfHighpfSelfpfVmtpfResultTypInfop       TParamFlags   TIntfFlag ifHasGuidifDispInterface ifDispatch ifHasStrGUIDTypInfo@ v f \  \ f v  TIntfFlags  TIntfFlagsBase 8  TCallConv ccRegccCdeclccPascal ccStdCall ccSafeCall ccCppdeclccFar16 ccOldFPCCall ccInternProc ccSysCall ccSoftFloat ccMWPascalTypInfoh           TSubRegister NoneLoHiWordDWordQWord FloatSingle FloatDouble FloatQuadMultiMediaSingleMultiMediaDoubleMultiMediaWhole MultiMediaX MultiMediaYTypInfo O g s [ G D } ? U J ? D G J O U [ g s }  TRegisterTypeInvalidIntFPMMX MultiMediaSpecialAddressTypInfoV<80?CNp08<?CNV TTypeKinds TParameterLocation @ TParameterLocation@   PParameterLocation TParameterLocations TParameterLocationsXPParameterLocations TVmtFieldClassTab   TVmtFieldClassTab  (0PVmtFieldClassTabx TVmtFieldEntry  TVmtFieldEntry   PVmtFieldEntry08 TVmtFieldTableX 0 TVmtFieldTableX  PVmtFieldTable TTypeInfo8 TTypeInfo8p PTypeInfo PPTypeInfo TPropData  0 0` TPropData   PPropData TArrayTypeData 0 TArrayTypeDataX` TManagedField TManagedField PManagedFieldPXPInitManagedFieldPx TProcedureParam  TProcedureParam 8  PProcedureParam8@ TProcedureSignature h TProcedureSignatureh    TVmtMethodParam TVmtMethodParam8  XPVmtMethodParam TIntfMethodEntry TIntfMethodEntry  0PIntfMethodEntry TIntfMethodTable TIntfMethodTable (PIntfMethodTablepx TVmtMethodEntry TVmtMethodEntryPVmtMethodEntry(0 TVmtMethodTableX ( TVmtMethodTableX`PVmtMethodTable TRecOpOffsetEntry@ TRecOpOffsetEntry@ TRecOpOffsetTable  TRecOpOffsetTable`8@PRecOpOffsetTable TRecInitData  TRecInitData   PRecInitData`h TInterfaceData TInterfaceData`  PInterfaceData ( TInterfaceRawDataH TInterfaceRawDataH `   PInterfaceRawData TClassData ! TClassData !@X! PClassData!! TTypeData! H@" TTypeData!. 8    X@ @@"`  `  H" PTypeDataH%P% TPropInfo+p% TPropInfop%+  $@(*+% PPropInfoX&`& TProcInfoProc$selfPointerPropInfo PPropInfox&& TPropListx& & PPropList'' TDynArrayTypInfo(' TDynArrayTypInfo`' AnsiString' ' (  0(EPropertyError`(EPropertyErrorTypInfo( TGetPropValue$resultInstancex&PropInfo PreferStrings( TSetPropValueInstancex&PropInfoValueH)TGetVariantProp$resultInstancex&PropInfo)TSetVariantPropInstancex&PropInfoValue*EPropertyConvertError`*EPropertyConvertErrorTypInfo* TElementAlias*TElementAliasArray + +TypInfo(+ TEnumeratedAliases`+h+TEnumeratedAliasesArray++TypInfo+0,P,p,,,8ipp0< ;;<0<P<p<<<<<=0=P=p=====>0>P>p>>>>>?0?P?p?????@0@P@p@@@@@A0APApAAAAAB0BPBpBBBBBC0CPCpCCCCCD0DPDpDDDDDE0EPEpEEEEEF0FPFpFFFFFG0GPGpGGGGGH0HPHpHHHHHI0IPIpIIIIIJ0JPJpJJJJJK0KPKpKKKKKL0LPLpLLLLLM0MPMpMMMMMN0NPNpNNNNNO0OPOpOOOOOP0PPPpPPPPPQ0QPQpQQQQQR0RPRpRRRRRS0SPSpSSSSST0TPTpTTTTTU0UPUpUUUUUV0VPVpVVVVVW0WPWpWWWWWX0XPXpXXXXXY0YPYpYYYYYZ0ZPZpZZZZZ[0[P[p[[[[[\0\P\p\\\\\]0]P]p]]]]]^0^P^p^^^^^_0_P_p_____`0`P`p`````a0aPapaaaaab0bPbpbbbbbc0cPcpcccccd0dPdpddddde0ePepeeeeef0fPfpfffffg0gPgpgggggh0hPhphhhhhi0iPipiiiiij0jPjpjjjjjk0kPkpkkkkkl0lPlplllllm0mPmpmmmmmn0nPnpnnnnno0oPopooooop0pPpppppppq0qPqpqqqqqr0rPrprrrrrs0sPspssssst0tPtptttttu0uPupuuuuuv0vPvpvvvvvw0wPwpwwwwwx8``n_p88~P]@#UppG,8lhh^pt HHE g(7TXXg $@ Cxx_;IxHHy2p88$* tXc2 D*p8$ippL'8ěxx]}@dDxxP"Pw.T 0ppc)HH[ 6H^ 6HN8*0MQHhh `@@bcJ 026ppH5tPO | @xxx88)2 @@ i X88h  X @   2 x x i #p @ @  h_p 0 0  I8S ` N t  ; H H  vh88( { (wXXΐ p8XSg9Pr XS PH O* X2% De`>FpHHIS)@GxxD@ xx0XXRcxP P00xx XXXPmx@@~pw0*8SҝppĶ; V x(( < p { `!0!0!EB !!! )))~2a H***T *x*x*D+**U+H+H+I +++I- X,(,(,ծ,,,uj0----h-h-.--p.@.@.Bjm...0 X/ / /"~C///8000 > >c >>>Ǩ ?>>=c ?X?X? ???;H@@@e,@x@x@O A@@/CpA@A@AH AAAm*@BBB$jBxBxB4L CBBGnpC@C@CCCCHDDDSDxDxDӇ EDD3EXEXEEEEy}PFFF" FFFD'sHGGG$7GGGC0HGGHhHhHGIHHu~pIHIHII III}JIIόxJ@J@J JJJ 5 8KKKKpKpKLKKiLPLPL$LLL4HMMMMxMxMNMM NHNHN NNND`O(O(O OOO|V POOdmPPPPPPPP˸ QQQ{ xQPQPQA%QQQ#\J HRRR5U RRRdSRRaxSHSHS>8w SSSXHTTTu TTTtTTT^`U U UdUUU 6 PVVVVVV$_9 0WVV WhWhWfoWWWtG`X(X(Xáu XXXy 0YXX޽ YhYhY$ZYYCZ@Z@Z ZZZӠ p[([([I;@[[[Y P\\\.$\\\G ]\\ė ]X]X]9 ^]]9 X^8^8^38 ^^^CY._^^SO_@_@_K___\ h`(`(`# ```gd (aaao8a`a`adbaa hbHbHbÿbbbM`ccc]{ccc d(d(d=L hedds eee;w `f(f(f fff_hg(g(gT7ggg Xh h hNhhhn Piii~Q iii jjjkxjPjPj/* jjjJkjj,hkHkHk޶kkkDLlkkZLXl8l8lLlll5lllHm(m(m+mxmxmw mmmw}@n n nXnpnpnknnngZ0ooorZo`o`ooooޫ@pppppp#iuqppS`q@q@qqqq8(rrr38rhrhr%rrr @s s ssxsxs3` tssCs8`t@t@tNttt#r uuuÞuXuXu9uuuCHv(v(v#SvvvC9wvv<hw@w@w3=www xxxTxXxXxhxxxSǺPy(y(ymyyyyVzyy`z@z@zVzzzv{zzh{H{H{_{{{èG|{{p|P|P|È|||SZ 0}}}# }h}h}~}}x~H~H~~~~tcP  C&l (3hh ЀЀCh883&Ё=83xxω ؂؂C h@@3iyЃdψ(hJ``AЄЄM`88Mȅt0F pp3&؆؆3h@@cvЇCi@3ƻ3#4xPPSc4H cc#~5xXX0؋8Ȫpp5<ȌȌC P((ӫ 2 3r' ``6ȎȎC `00 :ȏ3 0c ppS ؐؐ h@@ ȑ (#‹``CE ó H ,ؓؓcLlX88s  vpHHЕ 8~ pp ЖЖCKH((SCNؗؗmZ h@@C^ȘcL 8XX[ P((s^IlhHHvdSpPP М-0<hh ĸ@x Ƽ`@@z # K xXXlOؠ@ ,xxSv h88EТZF(d ``5أ#]0_hhNJ ФФnHHՊEJK `((EMo `@@dHl$@pp®Vْ0T ``U@ Zppc ȪȪ @ pp,I06``d جbL(0*xXX0 8V hh>h ȮȮO+@ x00Qs 5J@@  XX, "HHC 4PPc 6 xHH= H `(( p >@@ P/ ~PxXXLS(rH``SQ0QhhHY8UppfUJ@ ɸxxY SP00xHSEX889ahHHX=(b< ``^T[0]hhZM8YppZJF@ ٚ xx9L )X88J;1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEInvalidArgument0PFloat@  TPaymentTime ptEndOfPeriodptStartOfPeriodMath8WeWeEInvalidArgumentЛEInvalidArgument0MathTValueRelationshipH TValueSignp TRoundToRange%М0HhhX YPPcint&@PPcuchar%X TXPointerHx PXPointerPBoolPStatusН TXExtData ؞ extension( TXExtData ؞PX PXExtData PPXExtData؞ TXExtCodes TXExtCodes 8 PXExtCodes TXPixmapFormatValues TXPixmapFormatValues PXPixmapFormatValuesX` TXGCValues TXGCValues $(,048@HPTX`dhlpx| PXGCValuesPX TXGCx TXGCxPXGCȢPGCآ TVisual8 TVisual8؞ (040PVisualУأ TDepth TDepth(PDepthpx TXDisplay TXDisplayȤ PXDisplay TScreen TScreen؞ $(08@آHPX`hlptxHPScreen TScreenFormatЦ TScreenFormatЦ؞  PScreenFormathp TXSetWindowAttributesp TXSetWindowAttributesp $(08@HPX`hЧPXSetWindowAttributes TXWindowAttributes TXWindowAttributes  (,048@HPX\`hpxȦXPXWindowAttributes TXHostAddress TXHostAddress HX PXHostAddress TXServerInterpretedAddressЫ TXServerInterpretedAddressЫHHPXServerInterpretedAddress TXImage 0 para1para2`para3para4para5Hpara6`para7`para8para9para10(para1para1para2para3para1para2para3para4Ppara1para2para3`para4`para5para1para2 0حH @(H TXImage H $(,08@HPXȯPXImage TXWindowChanges( TXWindowChanges (  `PXWindowChanges TXColor( TXColor(  `PXColor TXSegment TXSegment@@@@@ PXSegment TXPointȳ TXPointȳ@@PXPoint@H TXRectangleh TXRectangleh@@   PXRectangle TXArc ( TXArc( @@  @@ XPXArcеص TXKeyboardControl TXKeyboardControl  0PXKeyboardControlض TXKeyboardState@ H TXKeyboardState@`` pxPXKeyboardState TXTimeCoord@ TXTimeCoord@@@ x PXTimeCoordȸи TXModifierKeymap TXModifierKeymapH 0PXModifierKeymapxPDisplay TXPrivateȹ TXPrivateȹ PXPrivate ( TXrmHashBucketRecH TXrmHashBucketRecHPXrmHashBucketRec TXPrivDisplay(para1para1@ TXPrivDisplay(,؞@H (08@8HPTX\`hpt@x@`غ`HȦH h PXPrivDisplayHP TXKeyEvent`p TXKeyEventp` (08@DHL`P`TX PXKeyEventPXKeyPressedEventPXKeyReleasedEvent TXButtonEvent`0 TXButtonEvent0` (08@DHL`P`TXh PXButtonEventxPXButtonPressedEventxPXButtonReleasedEventx TXMotionEvent` TXMotionEvent` (08@DHL`PTX( PXMotionEvent8@PXPointerMovedEvent8` TXCrossingEventh TXCrossingEventh (08@DHLPTX\``PXCrossingEventPXEnterWindowEvent0PXLeaveWindowEventX TXFocusChangeEvent0 TXFocusChangeEvent0 (,PXFocusChangeEventX`PXFocusInEventXPXFocusOutEventX TXKeymapEventH  TXKeymapEventH 0(8 PXKeymapEvent TXExposeEvent@ TXExposeEvent@  (,048 PXExposeEvent TXGraphicsExposeEventH TXGraphicsExposeEventH  (,048<@@PXGraphicsExposeEvent(0 TXNoExposeEvent0X TXNoExposeEventX0 (,PXNoExposeEvent08 TXVisibilityEvent0` TXVisibilityEvent`0 (PXVisibilityEvent(0 TXCreateWindowEventHX TXCreateWindowEventXH  (048<@DPXCreateWindowEvent TXDestroyWindowEvent0 TXDestroyWindowEvent0 (PXDestroyWindowEventx TXUnmapEvent8 TXUnmapEvent8 (0 PXUnmapEventpx TXMapEvent8 TXMapEvent8 (0 PXMapEvent`h TXMapRequestEvent0 TXMapRequestEvent0 (PXMapRequestEventPX TXReparentEventH TXReparentEventH  (08<@PXReparentEvent TXConfigureEventX TXConfigureEventX  (048<@HPPXConfigureEvent TXGravityEvent8 TXGravityEvent 8 (04XPXGravityEvent TXResizeRequestEvent0 TXResizeRequestEvent 0 (,`PXResizeRequestEvent TXConfigureRequestEvent`( TXConfigureRequestEvent(` (048<@HPXpPXConfigureRequestEvent TXCirculateEvent8 TXCirculateEvent8 (0PXCirculateEvent TXCirculateRequestEvent8 TXCirculateRequestEvent8 (0PXCirculateRequestEvent TXPropertyEvent@ TXPropertyEvent@ (08 PXPropertyEvent TXSelectionClearEvent8 TXSelectionClearEvent8 (08PXSelectionClearEvent TXSelectionRequestEventP TXSelectionRequestEventP  (08@HHPXSelectionRequestEvent TXSelectionEventHP TXSelectionEventPH  (08@PXSelectionEventHP TXColormapEvent8x TXColormapEventx8 (04PXColormapEvent`h TXClientMessageEvent` (   @0 (` ((X TXClientMessageEvent` (08PXClientMessageEvent TXMappingEvent8 TXMappingEvent8 (,0PXMappingEvent TXErrorEvent( TXErrorEvent( !" PXErrorEvent TXAnyEvent( TXAnyEvent(  PXAnyEventPX TXGenericEvent(x TXGenericEventx( $PXGenericEvent08 TXGenericEventCookie8X TXGenericEventCookieX8 $`(0PXGenericEventCookie@H TXEventp  TXEventp#Px8X(0(xp`PH`0@PXEvent(0 TXCharStruct P TXCharStructP @@@@@  PXCharStruct TXFontProp0 TXFontProp0h PXFontProp TXFontStruct` TXFontStruct`؞````` $`(,08D(PX\ PXFontStruct(0 PPXFontStructHPPPPXFontStructhp TXTextItem TXTextItemH  PXTextItem(0 TXChar2bP TXChar2bPPXChar2b TXTextItem16 TXTextItem16 ( PXTextItem16 TXEDataObject TXEDataObjectآȦH PXEDataObjecthp TXFontSetExtents TXFontSetExtentsPXFontSetExtents TXOMH TXOMHxPXOM TXOC TXOCPXOC PXFontSet TXmbTextItem8 TXmbTextItem8H p PXmbTextItem TXwcTextItem TXwcTextItem 0 PXwcTextItem TXOMCharSetList TXOMCharSetList`PXOMCharSetList@H TXOrientationXOMOrientation_LTR_TTBXOMOrientation_RTL_TTBXOMOrientation_TTB_LTRXOMOrientation_TTB_RTLXOMOrientation_Contextxlibp` PXOrientation TXOMOrientation TXOMOrientationPXOMOrientation@H TXOMFontInfopH TXOMFontInfop` PXOMFontInfo TXIM8 TXIM8hPXIM TXIC TXICPXICTXIMProcpara1para2para3TXICProcpara1para2para3XTXIDProcpara1para2para3 PXIMStyle TXIMStyles TXIMStyles P PXIMStylesPXVaNestedList TXIMCallback TXIMCallbackP PXIMCallbackPX TXICCallbackx TXICCallbackx PXICCallback PXIMFeedback TXIMText 8 p pH TXIMText8  0PXIMText@HPXIMPreeditStateh $TXIMPreeditStateNotifyCallbackStruct $TXIMPreeditStateNotifyCallbackStruct$PXIMPreeditStateNotifyCallbackStruct(0PXIMResetStatehPXIMStringConversionFeedback TXIMStringConversionText  H0 TXIMStringConversionText  hpPXIMStringConversionTextPXIMStringConversionPosition PXIMStringConversionType HPXIMStringConversionOperation xTXIMCaretDirection XIMForwardCharXIMBackwardCharXIMForwardWordXIMBackwardWord XIMCaretUp XIMCaretDown XIMNextLineXIMPreviousLine XIMLineStart XIMLineEndXIMAbsolutePosition XIMDontChangexlib W k L?#/ #/?LWk(PXIMCaretDirection "TXIMStringConversionCallbackStruct "TXIMStringConversionCallbackStruct   "PXIMStringConversionCallbackStruct TXIMPreeditDrawCallbackStruct TXIMPreeditDrawCallbackStruct` PXIMPreeditDrawCallbackStructTXIMCaretStyleXIMIsInvisible XIMIsPrimaryXIMIsSecondaryxlib(XPXIMCaretStyle  TXIMPreeditCaretCallbackStruct  TXIMPreeditCaretCallbackStruct  PXIMPreeditCaretCallbackStructHPTXIMStatusDataType XIMTextType XIMBitmapTypexlibPXIMStatusDataType TXIMStatusDrawCallbackStruct@  ` TXIMStatusDrawCallbackStruct@PXIMStatusDrawCallbackStructHP TXIMHotKeyTrigger TXIMHotKeyTrigger PXIMHotKeyTrigger  TXIMHotKeyTriggersH TXIMHotKeyTriggersH@PXIMHotKeyTriggersPXIMHotKeyState TXIMValuesList( TXIMValuesList( ``PXIMValuesListfuncdispdisplay funcifeventdisplayHeventp chararr32 HH TXErrorHandlerpara1para2 TXIOErrorHandlerpara1 TXConnectionWatchProcpara1para2para3para4para5 PXID PMask PAtom PPAtom  PVisualID PTime PWindow PPWindow0 8  PDrawableX PFontx PPixmap PCursor  PColormap  PGContext PKeySym PKeyCode0 PPPGdkTimeCoordP TXRenderColorx TXRenderColorx      PPXRectangle  PXSettingsType8 PXSettingsResultX TXSettingsBuffer TXSettingsBuffer HXX PXSettingsBuffer(0 TXSettingsColorX TXSettingsColorX   PXSettingsColor TXSettingsSetting 0 p pH TXSettingsSetting0 H`PXSettingsSettingX`PPXSettingsSetting TXSettingsList TXSettingsListHPXSettingsList(0PPXSettingsListHPPXSettingsActionxTXSettingsNotifyFuncHnameactionsettingcb_dataTXSettingsWatchFuncwindowis_startmaskcb_data TGdkDisplayX11hXF TGdkDisplayX11h$xX`H2H2H F(0 8F@FHPp3X`dPGdkDisplayX11HP TGdkDisplayX11Classp TGdkDisplayX11ClasspPGdkDisplayX11Class TGdkDrawableImplX118 TGdkDrawableImplX118ػH (X0XPGdkDrawableImplX11 TGdkDrawableImplX11Class TGdkDrawableImplX11ClassHPGdkDrawableImplX11Class TGdkAxisInfo TGdkAxisInfo  PGdkAxisInfox TGdkDevicePrivate TGdkDevicePrivatep`HPX`hlptx|PGdkDevicePrivate  T_GdkDeviceClassH T_GdkDeviceClassH`P_GdkDeviceClass TGdkInputWindow( TGdkInputWindow( 0 $0PGdkInputWindow TGdkPixmapImplX11H TGdkPixmapImplX11H8< @8PGdkPixmapImplX11 TGdkPixmapImplX11Class TGdkPixmapImplX11ClassPGdkPixmapImplX11ClassHP TGdkGCX11`x TGdkGCX11x`Hآ0X8@`H`L PX PGdkGCX11PX TGdkGCX11Classx TGdkGCX11Classx`PGdkGCX11Class TGdkCursorPrivate TGdkCursorPrivate XHPGdkCursorPrivate TGdkVisualPrivateh TGdkVisualPrivatehXX` PGdkVisualPrivateh p gdk2x TGdkScreenX11  ! ! H! TGdkScreenX11 8 Ȧ(08@H P!X`@!dp!HH0x! PGdkScreenX11"" TGdkScreenX11Class# TGdkScreenX11Class#h#P#PGdkScreenX11Class## TGdkXPositionInfo,# TGdkXPositionInfo#,  #PGdkXPositionInfo$$ TGdkWindowImplX11x$ TGdkWindowImplX11$x8<$@ lp%PGdkWindowImplX11%% TGdkWindowImplX11Class% TGdkWindowImplX11Class%&PGdkWindowImplX11Class@&H& TGxidMessagep& TGxidMessageAny& TGxidMessageAny&``& TGxidClaimDevice8' TGxidClaimDevice8'```` `x' TGxidReleaseDevice' TGxidReleaseDevice'```` 8( TGxidMessagep&0''(( PGxidMessage()PGxidU32` )PGxidI32@) TMotifWmHints`) TMotifWmHints`)``` `) PMotifWmHints** PMwmHints*0* TMotifWmInfoP* TMotifWmInfoP** PMotifWmInfo**PMwmInfo** TPropMotifWmHints+ TPropMotifWmHints+``` `P+PPropMotifWmHints++ PPropMwmHints++ TPropMotifWmInfo, TPropMotifWmInfo,``X,PPropMotifWmInfo,, PPropMwmInfo,,TGdkPixbufAlphaModeGDK_PIXBUF_ALPHA_BILEVELGDK_PIXBUF_ALPHA_FULL gdk2pixbuf,-/-`--/--PGdkPixbufAlphaModeX--TGdkColorspaceGDK_COLORSPACE_RGB gdk2pixbuf--.-0.PGdkColorspace.H.TGdkPixbufDestroyNotifyX4pixelsdatah.TGdkPixbufErrorGDK_PIXBUF_ERROR_CORRUPT_IMAGE$GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORYGDK_PIXBUF_ERROR_BAD_OPTIONGDK_PIXBUF_ERROR_UNKNOWN_TYPE&GDK_PIXBUF_ERROR_UNSUPPORTED_OPERATIONGDK_PIXBUF_ERROR_FAILED gdk2pixbuf././.:/X//../:/X//0PGdkPixbufError/H0TGdkInterpTypeGDK_INTERP_NEARESTGDK_INTERP_TILESGDK_INTERP_BILINEARGDK_INTERP_HYPER gdk2pixbufp000000000001PGdkInterpType0`1TGdkPixbufRotationGDK_PIXBUF_ROTATE_NONE"GDK_PIXBUF_ROTATE_COUNTERCLOCKWISEGDK_PIXBUF_ROTATE_UPSIDEDOWNGDK_PIXBUF_ROTATE_CLOCKWISE gdk2pixbuf11Z111021Z111p2 TGdkPixbufLoader 2 TGdkPixbufLoader2 h[2PGdkPixbufLoader83@3 TGdkPixbufLoaderClassh3`3loader3`3loaderxywidthheight3`3loader04 TGdkPixbufLoaderClassh3`3(4P4X4PGdkPixbufLoaderClass44 TGtkObject 4 TGtkObject4 h[`(5 PGtkObjecth5p5 PPGtkObject55 TGtkArg 5 5 TGtkArgSignalData6TGtkSignalFuncProcX6TGtkSignalFuncx6para16 TGtkArgSignalData666 5 H`(p3577 TGtkArg5 p377PGtkArgH8P8PGtkTypep8 TGtkWidget`8 TGtkStyle8 <H9 <H09 <H`9 <H9 <H9 <H9 <H : <HP: (`: (`: (`: (`; (`@; (`p; (`; (`; (< TGtkRcStyle0< (p3h< < <H< <H< <H(= <HX= TGtkRcStyle0<h[p3< H<P<d =P==TXg`FhFp x= PGtkRcStyle>> TGtkStyle8"h[(9X9T999:DH:x:HH: :H;p8;h;;;;8```h(<pH>FgF> PGtkStyleAA TGtkRequisition(A TGtkRequisition(AhA TGtkWidget8` h5 "#p3( A0A8@PBXA PGtkWidgetxBB PPGtkWidgetBB TGtkMiscpB TGtkMiscBpxB`d h jBPGtkMischCpC TGtkLabelC TGtkWindowC TGtkBinxD TGtkContainerp8D TGtkContainer8DpxBB`hpD TGtkBinDxDBpD TGtkWindowGroup E TGtkWindowGroupE h[FPEPGtkWindowGroupEE TGtkWindowCEp3xp3p3p3BBHGE `````XE PGtkWindow(G0G TGtkLabelC hCp3p x`|p3BHGPG PGtkLabel H(H TGtkAccelMapHH TGtkAccelMapHHh[H PGtkAccelMapHH TGtkMenu(H TGtkMenuShellI TGtkMenuShellIDFpBxB`` HI TGtkAccelGroup8I TGtkAccelGroupEntry J TGtkAccelKey XJ TGtkAccelKeyXJ ` J TGtkAccelGroupEntryJ JS`JPGtkAccelGroupEntry@KHK TGtkAccelGroupI8h[`F `(hK0pKPGtkAccelGroupKKTGtkMenuPositionFunc Omenu4x4y84push_in user_dataL TGtkAdjustmentPL TGtkAdjustmentLPh5( (((0(8(@(HLPGtkAdjustmentXM`M TGtkMenuH(IBBLp3L`BBBBxM ``  $MPGtkMenuOOPGtkAnchorType(O PGtkArrowTypeHOPGtkAttachOptionshOPGtkButtonBoxStyleO PGtkCurveTypeOPGtkDeleteTypeOPGtkDirectionTypeOPGtkExpanderStyle P PGtkIconSizeHP PPGtkIconSize`PhP PGtkSideTypePPGtkTextDirectionPPGtkJustificationP PGtkMatchTypePPGtkMenuDirectionTypeQPGtkMetricType@QPGtkMovementStep`QPGtkOrientationQPGtkCornerTypeQ PGtkPackTypeQPGtkPathPriorityTypeQ PGtkPathTypeRPGtkPolicyType8RPGtkPositionTypeXRPGtkPreviewTypeRPGtkReliefStyleRPGtkResizeModeRPGtkSignalRunTypeRPGtkScrollTypeSPGtkSelectionMode8SPGtkShadowType`S PGtkStateTypeSPGtkSubmenuDirectionSPGtkSubmenuPlacementSPGtkToolbarStyleSPGtkUpdateTypeTPGtkVisibility8TPGtkWindowPositionXTPGtkWindowTypeT PGtkWrapModeT PGtkSortTypeTPPGtkTreeModelT TGtkTreeIter U TGtkTreeIterU 8U PGtkTreeIterUU TGtkSelectionData8U TGtkSelectionDataU8X4 (0VPGtkSelectionDataVV TGtkTextTagTable8V TGtkTextTagTableV8h[F (F0WPGtkTextTagTableWW TGtkTextLine W TGtkTextLineSegment@W TGtkTextLineSegmentClass(XTGtkTextSegDeleteFunccsegeline tree_gonepXTGtkTextSegLineChangeFunccsegelineXTGtkTextSegCheckFunccsegeline Y TGtkTextLineSegmentClass(XHcXPcXY`YhYPGtkTextLineSegmentClassZZ (@Z HpZ TGtkTextToggleBodyZ TGtkTextTagInfoZ TGtkTextTag@ [ TGtkTextAttributesX[ TGtkTextAppearance@[ TGtkTextAppearance[@HH 88 (0 8[ TGtkTextAttributesX[`p\HLP(X`dhlptлx x\PGtkTextAttributes]] TGtkTextTag [@h[WH (]08] PGtkTextTag`^h^ TGtkTextTagInfoZ^^PGtkTextTagInfo^^ TGtkTextToggleBodyZ__ TGtkTextMarkBody(`_ TGtkTextMark _ TGtkTextMark_ h[_ PGtkTextMark` ` TGtkTextMarkBody`_(8`p3e @` TGtkTextPixbuf` TGtkTextPixbuf`` TGtkTextChildBody 0a TGtkTextChildAnchor pa TGtkTextChildAnchorpa h[aPGtkTextChildAnchorab TGtkTextChildBody0a  bFe(b @Z(ZX_`(abb TGtkTextLineSegmentW@8ZcccPGtkTextLineSegmentcc TGtkTextLineDatac TGtkTextLineDatacdcPGtkTextLineDataXd`d TGtkTextLineW ecdd PGtkTextLinedd TGtkTreeViewColumneTGtkTreeViewColumnSizingGTK_TREE_VIEW_COLUMN_GROW_ONLYGTK_TREE_VIEW_COLUMN_AUTOSIZEGTK_TREE_VIEW_COLUMN_FIXEDgtk2Peee{ee{eeef TGtkTreeViewColumneh5B B(B0B8B@HPX`\`edhlptx|p3F`` @fPGtkTreeViewColumn(h0h TGtkTreeViewxXh TGtkTreeViewPrivateh TGtkRBTree h TGtkRBNode0i TGtkRBNodei0 iii $xj(@i PGtkRBNodeii TGtkRBTreeh iixjii PGtkRBTreeXj`j TGtkTreeSelection@jTGtkTreeSelectionFunc8l selectionmodelpathpath_currently_selecteddatajTGtkDestroyNotifydataPk TGtkTreeSelectionj@h[ u Hk(0k8kPGtkTreeSelectionllTGtkTreeViewColumnDropFunc u tree_viewPhcolumnPh prev_columnPh next_columndata@l TGtkTreeViewColumnReorderl TGtkTreeViewColumnReorderlPhPhmPGtkTreeViewColumnReordermmTGtkTreeDestroyCountFunc u tree_viewpathchildren user_datamTGtkTreeViewDropPositionGTK_TREE_VIEW_DROP_BEFOREGTK_TREE_VIEW_DROP_AFTER!GTK_TREE_VIEW_DROP_INTO_OR_BEFORE GTK_TREE_VIEW_DROP_INTO_OR_AFTERgtk28n}ncnnnncn}nnn(o$TGtkTreeViewSearchDialogPositionFunc u tree_viewB search_dialogXoTGtkTreeViewSearchEqualFuncmodelcolumnp3keyUiter search_datao TGtkTreeViewPrivatehB`xjixj F(048xM@xMHPX`hPhpxPhPh```Phixjixj`8lF l(0k8F@mH0nPXk``hpnx`|Ph o@pkHpPGtkTreeViewPrivatett TGtkTreeViewXhxDtpt PGtkTreeViewuuTGtkTreeViewMappingFunc u tree_viewpath user_data(uTGtkTreeViewRowSeparatorFuncmodelUiterdatauPGtkTreeViewDropPositionnuPPGtkFileChooserDialogPrivate vPGtkObjectFlagsPv TGtkObjectClassxv5anObjecth8arg`arg_idv5anObjecth8arg`arg_idw5anObjectHw TGtkObjectClassxv`v@whwpwPGtkObjectClassww PGtkArgFlagsxPGtkFundamentalType(xPGtkTypeObject9Px PGtkTypeClassH9pxPGtkClassInitFuncGxPGtkObjectInitFuncHx TGtkFunctiondataxTGtkCallbackMarshal5anObjectdata`n_argsh8argsyPGtkSignalMarshallerUy TGtkTypeInfo8y TGtkTypeInfoy8p3`` GH (G0y PGtkTypeInfozz PGtkEnumValueaz PGtkFlagValueXczPGtkWidgetFlagszTGtkWidgetHelpTypeGTK_WIDGET_HELP_TOOLTIPGTK_WIDGET_HELP_WHATS_THISgtk2{5{M{x{5{M{{PGtkWidgetHelpTypep{{PGtkAllocation{ TGtkCallbackBwidgetdata|PGtkRequisitionAP| TGtkWidgetClassx|Bwidget`n_pspecs@pspecs|Bwidget}Bwidget0}BwidgetX}Bwidget}Bwidget}Bwidget}Bwidget}Bwidget ~Bwidgetp| requisitionH~Bwidget| allocation~Bwidgetprevious_state~BwidgetBprevious_parentBwidgetBprevious_toplevelHBwidget Aprevious_styleBwidgetprevious_directionBwidget was_grabbedBwidget`@pspecXBwidget group_cyclingBwidgetЀBwidget directionBwidgetpevent8Bwidget( eventpBwidget( eventBwidgetP eventBwidget eventBwidget` eventPBwidget` eventBwidget eventBwidgetp eventBwidgetp event0Bwidget eventhBwidget eventBwidget event؃Bwidget eventBwidget eventHBwidget` eventBwidget` eventBwidget eventBwidget0 event(Bwidget0 event`Bwidget0 eventBwidgetX eventЅBwidgetX eventBwidget event@Bwidget eventxBwidget` eventBwidget(eventBwidgetVselection_data`info`time BwidgetVselection_data`timeBwidgetHcontextЇBwidgetHcontextBwidgetHcontextVselection_data`info`time@BwidgetHcontextBwidgetHcontext`timeBwidgetHcontextxy`time0BwidgetHcontextxy`timeBwidgetHcontextxyVselection_data`info`timeBwidgetxBwidgetp{ help_typedBwidget 8Ph TGtkWidgetClassx|Hw``}(}P}x}}}}~@~~~@ P(0Ȁ8@0HhPX؁`hHpx(`Ѓ@x Xȅ8p x(ȇ088@HP(X`hppx؊0H`xȋPGtkWidgetClasspx TGtkWidgetAuxInfo TGtkWidgetAuxInfo PGtkWidgetAuxInfoX` TGtkWidgetShapeInfo TGtkWidgetShapeInfo@@8ȑPGtkWidgetShapeInfo ( TGtkMiscClassP TGtkMiscClassPp PGtkMiscClassPGtkAccelFlagsTGtkAccelGroupActivateL accel_group[ acceleratable`keyvalmodifier TGtkAccelGroupClassL accel_group`keyvalmodifierS accel_closure(@Xp TGtkAccelGroupClass` 8PhPGtkAccelGroupClass PGtkAccelKeyJ@Tgtk_accel_group_find_funcXkeySclosuredata` PGtkContainerD TGtkContainerClass8ؕ containerBwidget ؕ containerBwidget`ؕ containerؕ containerinclude_internalsH|callback callback_dataЖؕ containerBwidget@ؕ containerp3ؕ containerBchildؕ containerBchild` property_idP>value`@pspecؕ containerBchild` property_idP>value`@pspec`И TGtkContainerClass8pXȖ8xXȘ ((00PGtkContainerClass8@PGtkBinEh TGtkBinClass8 TGtkBinClass88 PGtkBinClass TGtkWindowClassHGwindowBfocusXHGwindowpeventHGwindowțHGwindowHGwindow directionHGwindowXȜ TGtkWindowClass 8@HPPXx`hpx؜PGtkWindowClass TGtkWindowGroupClass(@Xp TGtkWindowGroupClass`8PhPGtkWindowGroupClassTGtkWindowKeysForeachFuncHGwindow`keyval modifiers is_mnemonicdata0 TGtkLabelClass@H_labelstepcountextend_selection@H_labelX@H_label OmenuР TGtkLabelClassPxȠPGtkLabelClass TGtkAccelLabel TGtkAccelLabel H``BSLp3 PGtkAccelLabel TGtkAccelLabelClassh 8Ph TGtkAccelLabelClassh p3p3p3p3 p3(p30p38 @0HHP`Xx`PGtkAccelLabelClassx TGtkAccelMapClass TGtkAccelMapClass`PGtkAccelMapClass (TGtkAccelMapForeachdatap3 accel_path` accel_key accel_modschangedP TGtkAccessiblePإ TGtkAccessibleإPcBHPGtkAccessiblePX TGtkAccessibleClassxp accessible0 TGtkAccessibleClassxk`hp(x@HPGtkAccessibleClassЧا TGtkAdjustmentClassxM adjustment@xM adjustmentpШ TGtkAdjustmentClasswhȨPGtkAdjustmentClass TGtkAlignmentȩ TGtkAlignmentȩEx| PGtkAlignmentpx TGtkAlignmentClass8 TGtkAlignmentClass8تPGtkAlignmentClass TGtkFrame@ TGtkFrame@EBx@x PGtkFrame TGtkFrameClass@ frame| allocationX TGtkFrameClass @8PGtkFrameClassج TGtkAspectFrame TGtkAspectFrame@PGtkAspectFrameȭЭ TGtkAspectFrameClass@ TGtkAspectFrameClass@ج8PGtkAspectFrameClasspx TGtkArrowx TGtkArrowxhC@p@rخ PGtkArrow(0 TGtkArrowClassP TGtkArrowClassPPGtkArrowClass TGtkBindingEntry0 TGtkBindingSet@ TGtkBindingSet @p3FFF س(س0 8XPGtkBindingSet TGtkBindingSignal TGtkBindingArg`  (p3ȱ TGtkBindingArg`PGtkBindingArgX` TGtkBindingSignal p3`xPGtkBindingSignal TGtkBindingEntry0` سس (PGtkBindingEntry TGtkBox TGtkBoxDFp@x zPGtkBoxx TGtkBoxClass8 TGtkBoxClass88ش PGtkBoxClass TGtkBoxChild0 TGtkBoxChild0B  h PGtkBoxChild TGtkButtonBox TGtkButtonBoxx PGtkButtonBox TGtkButtonBoxClass8 TGtkButtonBoxClass8PGtkButtonBoxClass8@ TGtkButtonh TGtkButtonhExp3`  PGtkButton TGtkButtonClass80buttonx0button0buttonȸ0button0button0button@h TGtkButtonClass8 8@HP8X``xhpxȹPGtkButtonClassPGtkCalendarDisplayOptionsк TGtkCalendar0 8 *h  *л | tH8 Hhȼ TGtkCalendar0xB A` Ahptx|$0L`P``ؼ ( PGtkCalendar TGtkCalendarClasscalendarcalendar(calendarPcalendarxcalendarcalendarȿcalendar TGtkCalendarClassp HpPGtkCalendarClass TGtkCellEditableIface( cell_editable0 cell_editable` cell_editablepevent TGtkCellEditableIface(:X PGtkCellEditableIface8@PGtkCellRendererStatehTGtkCellRendererModeGTK_CELL_RENDERER_MODE_INERT"GTK_CELL_RENDERER_MODE_ACTIVATABLEGTK_CELL_RENDERER_MODE_EDITABLEgtk2(XPGtkCellRendererMode TGtkCellRenderer8 TGtkCellRenderer8h5 $(, 0 2 4PGtkCellRenderer TGtkCellRendererClasscellBwidget0 cell_area4x_offset4y_offset4width4heightcellwindowBwidget0background_area0 cell_area0 expose_areaflagscellpeventBwidgetp3path0background_area0 cell_areaflags0cellpeventBwidgetp3path0background_area0 cell_areaflags`x TGtkCellRendererClass w(XpPGtkCellRendererClassx TGtkCellRendererTextx TGtkCellRendererTextx p38@(HPV`hlp tPGtkCellRendererText TGtkCellRendererTextClasscell_renderer_textp3pathp3new_text8 TGtkCellRendererTextClassxPGtkCellRendererTextClass TGtkCellRendererToggle@ TGtkCellRendererToggle@ 8PGtkCellRendererToggle@H TGtkCellRendererToggleClassphcell_renderer_togglep3path0H TGtkCellRendererToggleClasspx(@X`PGtkCellRendererToggleClass TGtkCellRendererPixbufP( TGtkCellRendererPixbuf(P8@HhPGtkCellRendererPixbuf TGtkCellRendererPixbufClassH`x TGtkCellRendererPixbufClassxXpPGtkCellRendererPixbufClass(0 TGtkItemx` TGtkItem`xEPGtkItem TGtkItemClasspitem(itemPitemx TGtkItemClasspH8p@HPX`h PGtkItemClass TGtkMenuItem TGtkMenuItemBx p3 ` PGtkMenuItem TGtkMenuItemClass menu_item menu_item8 menu_item4 requisitionh menu_item allocation0 TGtkMenuItemClass p0x`(@HPGtkMenuItemClass TGtkToggleButton@ TGtkToggleButton@ PGtkToggleButton TGtkToggleButtonClass toggle_button8h TGtkToggleButtonClass`xPGtkToggleButtonClassPX TGtkCheckButton TGtkCheckButtonPGtkCheckButton TGtkCheckButtonClass( check_button0areah TGtkCheckButtonClass(PPGtkCheckButtonClass TGtkCheckMenuItem TGtkCheckMenuItem PGtkCheckMenuItemHP TGtkCheckMenuItemClassxpcheck_menu_itempcheck_menu_item0area(@Xp TGtkCheckMenuItemClassx 8PhPGtkCheckMenuItemClass (TGtkClipboardReceivedFunc clipboardVselection_datadataPTGtkClipboardTextReceivedFunc clipboardp3textdataTGtkClipboardGetFunc clipboardVselection_data`infouser_data_or_owner(TGtkClipboardClearFunc clipboarduser_data_or_ownerTGtkClipboardImageReceivedFunc clipboardpixbufdata TGtkClipboardTargetsReceivedFunc clipboardPatomsn_atomsdatax TGtkCList TGtkCListColumn@0 TGtkCListColumn0@ p3B (,04 8pPGtkCListColumn(0 X TGtkCListCellInfo TGtkCListCellInfoTGtkCListCompareFuncclistptr1ptr2TGtkCListDragPosGTK_CLIST_DRAG_NONEGTK_CLIST_DRAG_BEFOREGTK_CLIST_DRAG_INTOGTK_CLIST_DRAG_AFTERgtk2p8 TGtkCList0D px`FFPFFFF $),xM8xM@`H`P`X@`hlptx|hh PGtkCList TGtkCListRowH TGtkCell0 TGtkCellTypeGTK_CELL_EMPTY GTK_CELL_TEXTGTK_CELL_PIXMAPGTK_CELL_PIXTEXTGTK_CELL_WIDGETgtk2 ?\lN}?N\l} P P8 p38 p3HBP TGtkCell0@@ APGtkCell ( TGtkCListRowH@H H A(0k8 @H PGtkCListRow PGtkCellTypePGtkCListDragPos0PGtkButtonActionXPGtkCListCellInfo TGtkCListDestInfo TGtkCListDestInfo PGtkCListDestInfo08 TGtkCListClass `clistxM hadjustmentxM vadjustmentclistclistrowcolumnpeventclistrowcolumnpeventpclist source_rowdest_rowclistcolumnclistcolumnwidthPclistclistclistclistclist8clist`clist scroll_typepositionauto_start_selectionclist scroll_typepositionclist scroll_typepositionHclistclistclistpeventFclist row_numberFrow_list_element clist0arearow clist_rowxclist target_rowtarget_row_numberdrag_posclist@clistrowhclistclistrowp3textclistrowclist clist_rowcolumn_typep3textspacingpixmap8maskHclist clist_rowcolumnp| requisition TGtkCListClass` 88@hHPXH`hpx0X@p8`@@HPGtkCListClassHP TGtkCellTextp TGtkCellTextp@@ Ap3 PGtkCellText TGtkCellPixmap @ TGtkCellPixmap@ @@ A8xPGtkCellPixmap TGtkCellPixText0 TGtkCellPixText 0@@ Ap3 8(`PGtkCellPixText TGtkCellWidget8 TGtkCellWidget8@@ ABpPGtkCellWidgetPGtkDialogFlagsPGtkResponseType0 TGtkDialogX TGtkDialogX(GBBB PGtkDialog TGtkDialogClassdialog response_idXdialog TGtkDialogClass PGtkDialogClass TGtkVBox TGtkVBoxx PGtkVBoxPX TGtkVBoxClass8x TGtkVBoxClassx8 PGtkVBoxClass#TGtkColorSelectionChangePaletteFunchcolorsn_colors-TGtkColorSelectionChangePaletteWithScreenFuncXscreenhcolorsn_colorsh TGtkColorSelection TGtkColorSelectionP PGtkColorSelectionhp TGtkColorSelectionClass`color_selection(@X TGtkColorSelectionClass`8 @8HPPhXpPGtkColorSelectionClass TGtkColorSelectionDialog(8 TGtkColorSelectionDialog8(BBBB PGtkColorSelectionDialog TGtkColorSelectionDialogClass8 TGtkColorSelectionDialogClass8PGtkColorSelectionDialogClass`h TGtkHBox TGtkHBoxxPGtkHBox TGtkHBoxClass8( TGtkHBoxClass(8` PGtkHBoxClass TGtkCombo TGtkCombo BBBBB`` ` PGtkCombo TGtkComboClassX 8Ph TGtkComboClassX08H@`HxPPGtkComboClass TGtkCTreePosGTK_CTREE_POS_BEFOREGTK_CTREE_POS_AS_CHILDGTK_CTREE_POS_AFTERgtk2cL77Lc PGtkCTreePosTGtkCTreeLineStyleGTK_CTREE_LINES_NONEGTK_CTREE_LINES_SOLIDGTK_CTREE_LINES_DOTTEDGTK_CTREE_LINES_TABBEDgtk2P%:g%:PgPGtkCTreeLineStyle TGtkCTreeExpanderStyleGTK_CTREE_EXPANDER_NONEGTK_CTREE_EXPANDER_SQUAREGTK_CTREE_EXPANDER_TRIANGLEGTK_CTREE_EXPANDER_CIRCULARgtk2(  Q i  Q i  PGtkCTreeExpanderStyle @ TGtkCTreeExpansionTypeGTK_CTREE_EXPANSION_EXPAND$GTK_CTREE_EXPANSION_EXPAND_RECURSIVEGTK_CTREE_EXPANSION_COLLAPSE>K_CTREE_EXPANSION_COLLAPSE_RECURSIVEGTK_CTREE_EXPANSION_TOGGLE$GTK_CTREE_EXPANSION_TOGGLE_RECURSIVEgtk2h     0 h  0 PGtkCTreeExpansionType` TGtkCTree( TGtkCTreeNode` TGtkCTreeNode` F  PGtkCTreeNode TGtkCTreeCompareDragFunc ctree source_node new_parent new_sibling TGtkCTree( ` h p  PGtkCTree TGtkCTreeFunc ctree nodedata(TGtkCTreeGNodeFunc ctree`depthpgnode cnodedatax TGtkCTreeClassP ctree rowcolumn( ctree rowcolumnp ctree node ctree node ctree node new_parent new_sibling( ctree` action TGtkCTreeClassPHh (0 8@HPGtkCTreeClassPX TGtkCTreeRowx TGtkCTreeRowx H P X`8hp8x  PGtkCTreeRowpx TGtkDrawingAreah TGtkDrawingAreahxB`PGtkDrawingArea ( TGtkDrawingAreaClassP TGtkDrawingAreaClassPpPGtkDrawingAreaClasshp Tctlpoint Pctlpoint TGtkCurve TGtkCurve hlptx( PGtkCurve8@ TGtkCurveClass`Xcurve TGtkCurveClass`h PGtkCurveClassPGtkDestDefaultsPGtkTargetFlags TGtkEditableClass`editablep3textlength4positionXeditable start_posend_poseditableeditablep3textlength4position0editable start_posend_posp3editable start_posend_poseditable start_posend_pos0editable4 start_pos4end_poseditablepositioneditable TGtkEditableClass` :( (0(8x@HP0X8PGtkEditableClass TGtkIMContext@ TGtkIMContext@h[x PGtkIMContext TGtkIMContextClassPcontextcontext8context`contextp3strcontextcontextoffsetn_charscontextwindow8context3strattrs4 cursor_pospcontextp eventcontextcontext0contextXcontext0areacontext use_preeditcontextp3textlen cursor_indexcontext3text4 cursor_indexX     ! ! TGtkIMContextClassPw0X0h(PxP    ( 0!8!@0!H8!PGtkIMContextClass"" PGtkMenuShellI# TGtkMenuShellClass ## menu_shell`## menu_shell## menu_shell direction## menu_shell force_hide$# menu_shell@$# menu_shellB menu_itemp$# menu_shellBchildposition$%%0%H% TGtkMenuShellClass # 8 8#@#H#P8$Xh$`$h$p%x(%@%X%`%PGtkMenuShellClassX&`&TGtkMenuDetachFuncB attach_widget Omenu& TGtkMenuClass&'('@'X' TGtkMenuClass&X& '8'P'h'p' PGtkMenuClass'' TGtkEntry( TGtkEntry(xBp3` h j lpxB ``` `@( PGtkEntry** TGtkEntryClass88*0*entry Omenup*0*entry*0*entrystepcountextend_selection*0*entryp3str0+0*entry_typecounth+0*entry+0*entry+0*entry,0*entry(,P,h,,, TGtkEntryClass8*8p**(+`++++ ,H,`,x, ,(,0,PGtkEntryClass-- TGtkEventBoxx- TGtkEventBox-xE. PGtkEventBox@.H. TGtkEventBoxClass8h. TGtkEventBoxClassh.8.PGtkEventBoxClass.. TGtkFileSelection/ TGtkFileSelection/BBBB B(B0B8B@BHBPFXB`Bhp3pxBBBBB(ip3P/PGtkFileSelection00 TGtkFileSelectionClass1X1p111 TGtkFileSelectionClass1h11111PGtkFileSelectionClass0282 TGtkFixedx`2 TGtkFixed`2xDFp2 PGtkFixed22 TGtkFixedClass83 TGtkFixedClass38883PGtkFixedClassh3p3 TGtkFixedChild3 TGtkFixedChild3B 3PGtkFixedChild4 4 TGtkFontSelection@4 TGtkFontSelection@4PBBBBBBBBBB`@4PGtkFontSelection55 TGtkFontSelectionClassX56 686P6 TGtkFontSelectionClass5X6806@H6H`6Ph6PGtkFontSelectionClass66 TGtkFontSelectionDialog@7 TGtkFontSelectionDialog7@ BBBB B(B08<X7PGtkFontSelectionDialog8 8 TGtkFontSelectionDialogClassP88888 TGtkFontSelectionDialogClassP888888PGtkFontSelectionDialogClassx99 TGtkGammaCurve9 (B9 TGtkGammaCurve9PBB:BB:PGtkGammaCurve:: TGtkGammaCurveClassX:;(;@;X; TGtkGammaCurveClass:X ;88;@P;Hh;Pp;PGtkGammaCurveClass;; TGtkHandleBox< TGtkHandleBox< Ex P< PGtkHandleBox== TGtkHandleBoxClassh(= = handle_boxBchildh= = handle_boxBchild==>>0> TGtkHandleBoxClass(=h=8=@=H>P(>X@>`H>PGtkHandleBoxClass>> TGtkPaned? TGtkPaned?DBpBx` BBBH? PGtkPanedx@@ TGtkPanedClass@@panedreverse@@panedA@panedscroll8A@panedreversepA@panedA@panedAAB(B@B TGtkPanedClass@ 8A80A@hAHAPAXA`Bh Bp8BxPBXBPGtkPanedClass(C0C TGtkHButtonBoxPC TGtkHButtonBoxPCCPGtkHButtonBoxCC TGtkHButtonBoxClass8C TGtkHButtonBoxClassC88 DPGtkHButtonBoxClassXD`D TGtkHPanedD TGtkHPanedDx@D PGtkHPanedDD TGtkHPanedClassE TGtkHPanedClassE(CXEPGtkHPanedClassEE TGtkRulerMetricE P (F 0F TGtkRulerMetricEp3p3((FXFh`FPGtkRulerMetricFF TGtkRulerG TGtkRulerG xB``hGpx|((((@G PGtkRulerHH TGtkRulerClass8H0HrulerpH0HrulerHHHHI TGtkRulerClass8HpHHHHII IPGtkRulerClassII TGtkHRulerI TGtkHRulerIHJ PGtkHRuler@JHJ TGtkHRulerClasshJ TGtkHRulerClasshJIJPGtkHRulerClassJJ TGtkSettings8K TGtkSettingsK8h[P> (X0HK PGtkSettingsKK TGtkSettingsClassK TGtkSettingsClassK` LPGtkSettingsClassXL`L TGtkSettingsValue L TGtkSettingsValueL p30>LPGtkSettingsValueMM PGtkRcFlags@M TGtkRcStyleClass`M>>rc_styleM`>rc_styleKsettingsscannerM>dest>srcN A>rc_stylePNxNNNN TGtkRcStyleClass`M `MNHNpNNNNNNPGtkRcStyleClassOOTGtkRcTokenType%GTK_RC_TOKEN_INVALIDGTK_RC_TOKEN_INCLUDEGTK_RC_TOKEN_NORMALGTK_RC_TOKEN_ACTIVEGTK_RC_TOKEN_PRELIGHTGTK_RC_TOKEN_SELECTEDGTK_RC_TOKEN_INSENSITIVEGTK_RC_TOKEN_FGGTK_RC_TOKEN_BGGTK_RC_TOKEN_TEXTGTK_RC_TOKEN_BASEGTK_RC_TOKEN_XTHICKNESSGTK_RC_TOKEN_YTHICKNESSGTK_RC_TOKEN_FONTGTK_RC_TOKEN_FONTSETGTK_RC_TOKEN_FONT_NAMEGTK_RC_TOKEN_BG_PIXMAPGTK_RC_TOKEN_PIXMAP_PATHGTK_RC_TOKEN_STYLEGTK_RC_TOKEN_BINDINGGTK_RC_TOKEN_BINDGTK_RC_TOKEN_WIDGETGTK_RC_TOKEN_WIDGET_CLASSGTK_RC_TOKEN_CLASSGTK_RC_TOKEN_LOWESTGTK_RC_TOKEN_GTKGTK_RC_TOKEN_APPLICATIONGTK_RC_TOKEN_THEMEGTK_RC_TOKEN_RCGTK_RC_TOKEN_HIGHESTGTK_RC_TOKEN_ENGINEGTK_RC_TOKEN_MODULE_PATHGTK_RC_TOKEN_IM_MODULE_PATHGTK_RC_TOKEN_IM_MODULE_FILEGTK_RC_TOKEN_STOCKGTK_RC_TOKEN_LTRGTK_RC_TOKEN_RTLGTK_RC_TOKEN_LASTgtk2O& PQ PP+QQnQQLRyP PPQQ7R!R yRO`PO%RQ#R`R PBQ4P'R$RJP"R[Q PRQQ P PSOO P P4PJP`PyPPPPPPPPQ+QBQ[QnQQQQQQQQR'R7RLR`RyRRRRRRTPGtkRcTokenTypeS V TGtkRcProperty(HV TGtkRcPropertyHV(``p30>VPGtkRcPropertyVVTGtkRcPropertyParser`@pspec rc_stringP>property_valueW TGtkStyleClasspW AstyleW AstyleW Astyle AsrcW A Astyle0X Astyle>rc_styleXX Astylewindow state_typeX Astylesource directionstatesizeBwidgetp3detailX Astylewindow state_type0areaBwidgetp3detailx1x2ypY Astylewindow state_type0areaBwidgetp3detaily1y2xZ Astylewindow state_type shadow_type0areaBwidgetp3detailxywidthheightZ Astylewindow state_type shadow_type0areaBwidgetp3detailpointnpointsfill[ Astylewindow state_type shadow_type0areaBwidgetp3detail arrow_typefillxywidthheightX\ Astylewindow state_type shadow_type0areaBwidgetp3detailxywidthheightH] Astylewindow state_type0areaBwidgetp3detailxyp3_string^ Astylewindow state_type shadow_type0areaBwidgetp3detailxywidthheight^ Astylewindow state_type shadow_type0areaBwidgetp3detailxywidthheight_ Astylewindow state_type shadow_type0areaBwidgetp3detailxywidthheight`` Astylewindow state_type shadow_type0areaBwidgetp3detailxywidthheight0a Astylewindow state_type shadow_type0areaBwidgetp3detailxywidthheightb Astylewindow state_type shadow_type0areaBwidgetp3detailxywidthheightgap_sidegap_x gap_widthb Astylewindow state_type shadow_type0areaBwidgetp3detailxywidthheightgap_sidegap_x gap_widthc Astylewindow state_type shadow_type0areaBwidgetp3detailxywidthheightgap_sided Astylewindow state_type0areaBwidgetp3detailxywidthheighte Astylewindow state_type shadow_type0areaBwidgetp3detailxywidthheight orientationxf Astylewindow state_type shadow_type0areaBwidgetp3detailxywidthheight orientation`g Astylewindow state_type0areaBwidgetp3detailxyexpander_styleHh Astylewindow state_typeuse_text0areaBwidgetp3detailxylayouth Astylewindow state_type0areaBwidgetp3detail+edgexywidthheightixjjjjjjk k8kPkhkk TGtkStyleClasspW)`WW(XPXXXhYZZ[P\@]^^_X`(aabc d(e0pf8Xg@@hHhPiXpj`jhjpjxjjkk0kHk`kxkkkPGtkStyleClassHnPn TGtkBorderpn TGtkBorderpn n PGtkBorderoo TGtkRange0o TGtkRange0oxBxM`h lptx `ho PGtkRangepp TGtkRangeClass pprangepprange( new_value qprangescroll`qprange(oborderqqqrr TGtkRangeClassp  pp3p3qXqqqqqr(r0rPGtkRangeClassss TGtkScale(s TGtkScale(sp `s PGtkScaless TGtkScaleClassPsp3sscale(valuetsscaleHtptttt TGtkScaleClasssPs@t ht(t0t8t@tHtPGtkScaleClass`uhu TGtkHScaleu TGtkHScaleusu PGtkHScaleuu TGtkHScaleClassPv TGtkHScaleClassvP`uXvPGtkHScaleClassvv TGtkScrollbarv TGtkScrollbarvpv PGtkScrollbar(w0w TGtkScrollbarClass@Pwwwww TGtkScrollbarClassPw@sw w(w0w8wPGtkScrollbarClasshxpx TGtkHScrollbarx TGtkHScrollbarx(wxPGtkHScrollbaryy TGtkHScrollbarClass@(y TGtkHScrollbarClass(y@hxhyPGtkHScrollbarClassyy TGtkSeparator`y TGtkSeparatory`xBz PGtkSeparator8z@z TGtkSeparatorClass`z TGtkSeparatorClass`zpzPGtkSeparatorClasszz TGtkHSeparator`{ TGtkHSeparator{`8z@{PGtkHSeparatorp{x{ TGtkHSeparatorClass{ TGtkHSeparatorClass{z{PGtkHSeparatorClass|| TGtkIconFactory @| TGtkIconFactory@| h[|PGtkIconFactory|| TGtkIconFactoryClass|8}P}h}} TGtkIconFactoryClass|`H}`}x}}}PGtkIconFactoryClass~~ TGtkImagePixmapData@~ TGtkImagePixmapData@~~PGtkImagePixmapData~~ TGtkImageImageData~ TGtkImageImageData~(PGtkImageImageData`h TGtkImagePixbufData TGtkImagePixbufDataPGtkImagePixbufData TGtkImageStockData8 TGtkImageStockData8p3xPGtkImageStockData TGtkImageIconSetData TGtkImageIconSetData PGtkImageIconSetDataX` TGtkImageAnimationData TGtkImageAnimationData`ȁPGtkImageAnimationData ( TGtkImageTypeGTK_IMAGE_EMPTYGTK_IMAGE_PIXMAPGTK_IMAGE_IMAGEGTK_IMAGE_PIXBUFGTK_IMAGE_STOCKGTK_IMAGE_ICON_SETGTK_IMAGE_ANIMATIONgtk2PՂp‚p‚ՂX PGtkImageType TGtkImage  ~`X ( TGtkImagehCpx8 PGtkImage TGtkImageClass@x TGtkImageClass@Ѕ؅PGtkImageClassHP TGtkImageMenuItemp TGtkImageMenuItempBPGtkImageMenuItem TGtkImageMenuItemClass( TGtkImageMenuItemClass(hPGtkImageMenuItemClass TGtkIMContextSimplePЇ ` TGtkIMContextSimpleЇPF8 `@D H@PGtkIMContextSimpleȈЈ TGtkIMContextSimpleClassP TGtkIMContextSimpleClassP"@PGtkIMContextSimpleClass TGtkIMMulticontext0 TGtkIMMulticontext0 p3(PGtkIMMulticontext`h TGtkIMMulticontextClassp؊ TGtkIMMulticontextClassp"PX`0h8PGtkIMMulticontextClass TGtkInputDialog 8B0 TGtkInputDialog BBBB B(X0hBpBx`PGtkInputDialog(0 TGtkInputDialogClassXPinputddevicePinputddeviceЍ 8P TGtkInputDialogClassXȍ0H`hPGtkInputDialogClass TGtkInvisiblep0 TGtkInvisible0pxB`Xhh PGtkInvisible TGtkInvisibleClass 8Ph TGtkInvisibleClassp0H`xPGtkInvisibleClass TGtkPrintFunc func_datap3str(PGtkTranslateFuncHpTGtkItemFactoryCallbackTGtkItemFactoryCallback1 callback_data`callback_actionBwidgetȑ TGtkItemFactoryX8 TGtkItemFactory8Xh5p3 L(B0F8H@HkPxPGtkItemFactory ( TGtkItemFactoryClassPؓ TGtkItemFactoryClassPwГPGtkItemFactoryClassx TGtkItemFactoryEntry0 TGtkItemFactoryEntry0p3p3`p3 (PGtkItemFactoryEntrypx TGtkItemFactoryItem TGtkItemFactoryItemp3FPGtkItemFactoryItem(0TGtkMenuCallbackBwidget user_dataX TGtkMenuEntry( TGtkMenuEntry(p3p3B  PGtkMenuEntryPXTGtkItemFactoryCallback2Bwidget callback_data`callback_actionx TGtkLayout TGtkLayout DFp`x`|xMxM`  PGtkLayout TGtkLayoutClass`layoutxM hadjustmentxM vadjustmentXș TGtkLayoutClass`88@ؙHPXPGtkLayoutClass TGtkListȚ TGtkListȚ DFpFxFFBB`` PGtkList TGtkListClassPlistPlistBchildxlistBchild TGtkListClassP8p8@H PGtkListClassHP TGtkListItemxp TGtkListItempx PGtkListItem؝ TGtkListItemClass list_item@ list_itemp list_item list_itemО list_item list_item0 list_item scroll_typepositionauto_start_selection` list_item scroll_typeposition؟ list_item scroll_typeposition0 list_item TGtkListItemClass hpxȞ(XП(PGtkListItemClassTGtkTreeModelForeachFuncmodelpathUiterdataPGtkTreeModelFlags0 TGtkTreeModelIfaceX tree_modelpathUiter tree_modelpathUiter tree_modelpathUiter( tree_modelpathp tree_modelpathUiter4 new_order tree_model tree_model@ tree_modelindexp tree_modelUiterpath tree_modelUiter tree_modelUitercolumnP>value8 tree_modelUiter tree_modelUiterUparentإ tree_modelUiter( tree_modelUiterh tree_modelUiterUparentn tree_modelUiterUchild tree_modelUiterP tree_modelUiter TGtkTreeModelIfaceX:آ h (088h@HP0X`Хh p`xHȧЧPGtkTreeModelIface8@TGtkTreeIterCompareFuncmodelUaUb user_datah TGtkTreeSortableIface@Щsortablesortable4sort_column_idTorder8sortablesort_column_idordersortablesort_column_idȩfuncdatakdestroysortableȩfuncdatakdestroy`sortable TGtkTreeSortableIfaceЩ@:0 X(0ث8PGtkTreeSortableIfacex TGtkTreeModelSortx TGtkTreeModelSortxh[ `$(0F8@DȩHPkX```d`h`l`pPGtkTreeModelSort ( TGtkTreeModelSortClassPخ TGtkTreeModelSortClassP`ЮPGtkTreeModelSortClasshp TGtkListStorex TGtkListStorexh[ (F08<@8HPȩX`kh pЯ PGtkListStoreаذ TGtkListStoreClass8Ph TGtkListStoreClass`H`xPGtkListStoreClassTGtkModuleInitFunc4argc3argv@TGtkModuleDisplayInitFuncdisplayTGtkKeySnoopFuncB grab_widgetp event func_dataȲ TGtkMenuBar( TGtkMenuBar(I` PGtkMenuBar TGtkMenuBarClass(@ TGtkMenuBarClassX& 8PXPGtkMenuBarClassдشTGtkMessageTypeGTK_MESSAGE_INFOGTK_MESSAGE_WARNINGGTK_MESSAGE_QUESTIONGTK_MESSAGE_ERRORgtk2\"G3"3G\PGtkMessageTypexTGtkButtonsTypeGTK_BUTTONS_NONEGTK_BUTTONS_OKGTK_BUTTONS_CLOSEGTK_BUTTONS_CANCELGTK_BUTTONS_YES_NOGTK_BUTTONS_OK_CANCELgtk2lZ:K:KZlPGtkButtonsTypeP TGtkMessageDialogx TGtkMessageDialogxBBPGtkMessageDialog TGtkMessageDialogClass@ȸ TGtkMessageDialogClass@ظPGtkMessageDialogClassX`TGtkNotebookTabGTK_NOTEBOOK_TAB_FIRSTGTK_NOTEBOOK_TAB_LASTgtk2PGtkNotebookTab0 TGtkNotebookX TGtkNotebookX DpFxFFB`  PGtkNotebook`h TGtkNotebookClassnotebookpage`page_numȻnotebook move_focusnotebook_typeXnotebookoffsetnotebook directionм(@X TGtkNotebookClass 88P@HȼPX `8hPphxpPGtkNotebookClass8@ TGtkOldEditablexh TGtkOldEditablehxxB```d`h lp3pPGtkOldEditable08TGtkTextFunctionXeditable`time` TGtkOldEditableClassXXeditableXeditable is_editableXeditablexyPXeditablenXeditablexyXeditablerowXeditablerow@Xeditable directionxXeditable directionXeditable directionXeditable8Xeditable`XeditableXeditable start_posend_posp3Xeditable start_posend_posXeditable start_posend_posPXeditableposition TGtkOldEditableClassXpH8p0X (08H@HPPGtkOldEditableClass(0 TGtkOptionMenuX TGtkOptionMenuXBB PGtkOptionMenu TGtkOptionMenuClass( option_menuh TGtkOptionMenuClass(PGtkOptionMenuClass TGtkPixmap TGtkPixmaphCp8x  PGtkPixmapX` TGtkPixmapClass TGtkPixmapClassPGtkPixmapClass TGtkPlug( TGtkPlug((GBE `PGtkPlug TGtkPlugClassplug@h TGtkPlugClass`x PGtkPlugClassHP TGtkPreviewxp TGtkPreviewpxxBX4` h j l nHp t PGtkPreviewHP TGtkPreviewInfop TGtkPreviewInfopX4(PGtkPreviewInfo TGtkDitherInfo(  `  TGtkDitherInfo(PGtkDitherInfo TGtkPreviewClass( TGtkPreviewClass(phPGtkPreviewClass TGtkProgress TGtkProgressxBxM`hp3px|  PGtkProgress TGtkProgressClassprogressprogress8progress` TGtkProgressClassp0XPGtkProgressClassTGtkProgressBarStyleGTK_PROGRESS_CONTINUOUSGTK_PROGRESS_DISCRETEgtk2(PPGtkProgressBarStyle pTGtkProgressBarOrientationGTK_PROGRESS_LEFT_TO_RIGHTGTK_PROGRESS_RIGHT_TO_LEFTGTK_PROGRESS_BOTTOM_TO_TOPGTK_PROGRESS_TOP_TO_BOTTOMgtk2@PGtkProgressBarOrientation8 TGtkProgressBar TGtkProgressBar 8```( PGtkProgressBar TGtkProgressBarClass(Xp TGtkProgressBarClass(h PGtkProgressBarClass08 TGtkRadioButton` TGtkRadioButton`FPGtkRadioButton TGtkRadioButtonClassXp TGtkRadioButtonClasshPGtkRadioButtonClass08 TGtkRadioMenuItem` TGtkRadioMenuItem`HFPGtkRadioMenuItem TGtkRadioMenuItemClassXp TGtkRadioMenuItemClass hPGtkRadioMenuItemClass08 TGtkScrolledWindow` TGtkScrolledWindow`EBxB PGtkScrolledWindow TGtkScrolledWindowClasspH@scrolled_windowscroll horizontal@scrolled_window direction0H`x TGtkScrolledWindowClassHp8@(H@PXXp`hPGtkScrolledWindowClass@H TGtkTargetEntryx TGtkTargetEntryxp3`` PGtkTargetEntry TGtkTargetList@ TGtkTargetList@F`xPGtkTargetList TGtkTargetPair TGtkTargetPair`` PGtkTargetPairhp TGtkSeparatorMenuItem TGtkSeparatorMenuItemPGtkSeparatorMenuItem TGtkSeparatorMenuItemClass8 TGtkSeparatorMenuItemClass8PGtkSeparatorMenuItemClass TGtkSizeGroup0 TGtkSizeGroup0h[F "A$0 PGtkSizeGroup TGtkSizeGroupClass 8P TGtkSizeGroupClass`0H`hPGtkSizeGroupClassTGtkSizeGroupModeGTK_SIZE_GROUP_NONEGTK_SIZE_GROUP_HORIZONTALGTK_SIZE_GROUP_VERTICALGTK_SIZE_GROUP_BOTHgtk2zH4b4HbzPGtkSizeGroupMode TGtkSocket8 TGtkSocket8 D p r t vxB@ LBp PGtkSocket@H TGtkSocketClasshh`socket`socket(@ TGtkSocketClasshh88@H P8XP`XPGtkSocketClassTGtkSpinButtonUpdatePolicyGTK_UPDATE_ALWAYSGTK_UPDATE_IF_VALIDgtk2 M_M_PGtkSpinButtonUpdatePolicy TGtkSpinTypeGTK_SPIN_STEP_FORWARDGTK_SPIN_STEP_BACKWARDGTK_SPIN_PAGE_FORWARDGTK_SPIN_PAGE_BACKWARD GTK_SPIN_HOME GTK_SPIN_ENDGTK_SPIN_USER_DEFINEDgtk2ybL55Lby PGtkSpinType` TGtkSpinButton TGtkSpinButton*xM`((PGtkSpinButtonX` TGtkSpinButtonClassxx spin_button5 new_valuex spin_buttonx spin_button0x spin_buttonscroll` TGtkSpinButtonClassx -8(@XHPX`hpPGtkSpinButtonClass TGtkStockItem TGtkStockItem p3p3`p3  PGtkStockItem TGtkStatusbar TGtkStatusbar BBFF``  PGtkStatusbar TGtkStatusbarClassp statusbar` context_idp3text statusbar` context_idp3textX TGtkStatusbarClassp8P@HPX`hPGtkStatusbarClass TGtkTableRowCol TGtkTableRowCol    PGtkTableRowCol TGtkTable TGtkTable DFpx  PGtkTable TGtkTableClass8 TGtkTableClass88PGtkTableClass08 TGtkTableChildX TGtkTableChildXB     PGtkTableChild08 TGtkTearoffMenuItemX TGtkTearoffMenuItemX PGtkTearoffMenuItem TGtkTearoffMenuItemClassXp TGtkTearoffMenuItemClasshPGtkTearoffMenuItemClass8@ TGtkPropertyMarkp TGtkPropertyMarkpF`` PGtkPropertyMark TGtkTexth8 p pX4  X4 TGtkText8h'0xxMxM`````F```` `FFH` `(H,04F8F@HPX`\``PPGtkText TGtkTextClass`textxM hadjustmentxM vadjustment@ TGtkTextClass`(X PGtkTextClassPGtkTextSearchFlags TGtkTextIterP TGtkTextIter P $(08<@HX PGtkTextIterX`TGtkTextCharPredicate`ch user_data TGtkTextTagClass^tag[ event_objectpeventxiterp TGtkTextTagClass`hPGtkTextTagClassX` PPGtkTextTag^PGtkTextAppearancep\TGtkTextTagTableForeach^tagdata TGtkTextTagTableClass Wtable^tag size_changed`Wtable^tagWtable^tag 8Ph TGtkTextTagTableClass `0H`xPGtkTextTagTableClass(0 TGtkTextMarkClassX TGtkTextMarkClassX`PGtkTextMarkClasspxPGtkTextMarkBody` TGtkTextChildAnchorClass(@X TGtkTextChildAnchorClass` 8PhpPGtkTextChildAnchorClassPGtkTextPixbuf(a(PGtkTextChildBodybHPGtkTextToggleBodyX_pPGtkTextSegSplitFunccPGtkTextSegCleanupFuncc TGtkTextBufferH TGtkTextBufferHh[W F(F08`@ D PGtkTextBuffer TGtkTextBufferClassbufferxposp3textlength(bufferxpospixbufbufferxpos banchorbufferxstartxtheEndbufferXbufferbufferxlocation8`markbuffer8`markbuffer^tagx start_charxend_char( buffer^tagx start_charxend_char buffer buffer 8 P h    TGtkTextBufferClass`xPx  0 H ` x    PGtkTextBufferClass ( TGtkTextLineDisplayPP TGtkTextLineDisplayP PFF $(,048<@eH PGtkTextLineDisplay TGtkTextLayoutx TGtkTextLayout xh[ (]0`8`@]H PX \p3`hptPGtkTextLayout08 TGtkTextLayoutClassXPlayoutPlayouty old_height new_heightdPlayoutelined line_data Playouteline`attrs4n_attrspPlayoutxstartxtheEndPlayoutelined line_dataPlayoutBchildxy` TGtkTextLayoutClassX `hXPGtkTextLayoutClass TGtkTextAttrAppearanceP( TGtkTextAttrAppearance(Pp\hPGtkTextAttrAppearance TGtkTextCursorDisplay TGtkTextCursorDisplay PGtkTextCursorDisplayTGtkTextWindowTypeGTK_TEXT_WINDOW_PRIVATEGTK_TEXT_WINDOW_WIDGETGTK_TEXT_WINDOW_TEXTGTK_TEXT_WINDOW_LEFTGTK_TEXT_WINDOW_RIGHTGTK_TEXT_WINDOW_TOPGTK_TEXT_WINDOW_BOTTOMgtk2`!6 L !6L`PGtkTextWindowType0 TGtkTextView`X TGtkTextViewX`)DPpx``л xMxM8`8`` `$`(0B8@DFHPX PGtkTextView@H TGtkTextViewClassh` text_viewxM hadjustmentxM vadjustment` text_view Omenu` text_viewstepcountextend_selection8` text_viewcountextend_selection` text_view` text_viewp3str(` text_view_typecount`` text_view` text_view` text_view` text_view@` text_view directionp(@X TGtkTextViewClassh880@HP XX`hpx8h 8PhpPGtkTextViewClass TGtkTipsQuery TGtkTipsQuery H p3p3BB@P PGtkTipsQuery TGtkTipsQueryClassH  tips_queryH  tips_queryx  tips_queryBwidgetp3tip_textp3 tip_private  tips_queryBwidgetp3tip_textp3 tip_private( event!!!!! TGtkTipsQueryClass H p  !! !(!0!8!@!PGtkTipsQueryClass"" TGtkTooltips`" TGtkTooltipsData # TGtkTooltipsData# $Bp3p3H#PGtkTooltipsData## TGtkTooltips"` h5B B(#0F8@ DH8P# PGtkTooltips$$ PPGtkTooltips$$ TGtkTooltipsClass$%0%H%`% TGtkTooltipsClass$w(%@%X%p%x%PGtkTooltipsClass%%TGtkToolbarChildTypeGTK_TOOLBAR_CHILD_SPACEGTK_TOOLBAR_CHILD_BUTTONGTK_TOOLBAR_CHILD_TOGGLEBUTTONGTK_TOOLBAR_CHILD_RADIOBUTTONGTK_TOOLBAR_CHILD_WIDGETgtk2 &_&&G&x&&&G&_&x&&&('PGtkToolbarChildType&`'TGtkToolbarSpaceStyleGTK_TOOLBAR_SPACE_EMPTYGTK_TOOLBAR_SPACE_LINEgtk2''''''(PGtkToolbarSpaceStyle'8( TGtkToolbarChild `( TGtkToolbarChild`( &BBB(PGtkToolbarChild)) TGtkToolbar8) TGtkToolbar8) DpFx$`` p) PGtkToolbarP*X* TGtkToolbarClasshx*p*toolbar orientation*p*toolbarstyle*0+H+`+x+ TGtkToolbarClassx*h8*8(+@@+HX+Pp+X+`+PGtkToolbarClass(,0,TGtkTreeViewModeGTK_TREE_VIEW_LINEGTK_TREE_VIEW_ITEMgtk2X,,{,,{,,,PGtkTreeViewMode,, TGtkTree - TGtkTree - DFp(.xBF``` X-PGtkTree.. TGtkTreeClassP0.(.treeh.(.treeBchild.(.treeBchild. TGtkTreeClass0.P8.8.@.H/ PGtkTreeClass`/h/ TGtkTreeDragSourceIface(/ drag_sourcepath/ drag_sourcepathVselection_data0 drag_sourcepathh0 TGtkTreeDragSourceIface/(:0`00 0PGtkTreeDragSourceIface1 1 TGtkTreeDragDestIface P1 drag_destdestVselection_data1 drag_dest dest_pathVselection_data1 TGtkTreeDragDestIfaceP1 :182@2PGtkTreeDragDestIface22 TGtkTreeItem2 TGtkTreeItem2BxBBBF 3 PGtkTreeItem33 TGtkTreeItemClass33 tree_item33 tree_item(4 TGtkTreeItemClass3 4pP4xX4PGtkTreeItemClass44TGtkTreeSelectionForeachFuncmodelpathUiterdata4 TGtkTreeSelectionClassP58l selection55556 TGtkTreeSelectionClassP5`55566 6PGtkTreeSelectionClass66 TGtkTreeStorep6 TGtkTreeStore6p h[ (04F8@8HȩPXk` h7 PGtkTreeStore88 TGtkTreeStoreClass(8h8888 TGtkTreeStoreClass(8`x88888PGtkTreeStoreClass@9H9PGtkTreeViewColumnSizingep9TGtkTreeCellDataFuncPh tree_columncell tree_modelUiterdata9 TGtkTreeViewColumnClass(:Ph tree_columnp::::: TGtkTreeViewColumnClass(:w:::::;PGtkTreeViewColumnClass;;PGtkRBNodeColor;TGtkRBTreeTraverseFuncxjtreeinodedata;PGtkTreeViewFlagsH< TGtkTreeViewClassp< u tree_viewxM hadjustmentxM vadjustment< u tree_viewpathPhcolumn= u tree_viewUiterpathX= u tree_viewUiterpath= u tree_viewUiterpath= u tree_viewUiterpath0> u tree_viewx> u tree_view> u tree_viewstepcount> u tree_view ? u tree_viewP? u tree_view start_editing? u tree_view? u tree_viewlogicalexpandopen_all? u tree_viewX@ u tree_view@@@@AA TGtkTreeViewClassp<8=8P=@=H=P(>Xp>`>h>p?xH?x???P@@@@@@A(A0APGtkTreeViewClassBB TGtkVButtonBoxB TGtkVButtonBoxB CPGtkVButtonBoxPCXC TGtkVButtonBoxClass8xC TGtkVButtonBoxClassxC88CPGtkVButtonBoxClassCC TGtkViewport D TGtkViewport DExxMxMXD PGtkViewportDD TGtkViewportClass@EDviewportxM hadjustmentxM vadjustment@E TGtkViewportClassE@E8EPGtkViewportClassEE TGtkVPanedF TGtkVPanedFx@HF PGtkVPanedxFF TGtkVPanedClassF TGtkVPanedClassF(CFPGtkVPanedClassG G TGtkVRulerHG TGtkVRulerHGHG PGtkVRulerGG TGtkVRulerClassG TGtkVRulerClassGIHPGtkVRulerClassPHXH TGtkVScaleH TGtkVScaleHsH PGtkVScaleHH TGtkVScaleClassPI TGtkVScaleClassIP`uPIPGtkVScaleClassII TGtkVScrollbarI TGtkVScrollbarI(wIPGtkVScrollbar J(J TGtkVScrollbarClass@HJ TGtkVScrollbarClassHJ@hxJPGtkVScrollbarClassJJ TGtkVSeparator`J TGtkVSeparatorJ`8z(KPGtkVSeparatorXK`K TGtkVSeparatorClassK TGtkVSeparatorClassKzKPGtkVSeparatorClassKLPPGtkFileFilter(LTGtkFileFilterFlagsGTK_FILE_FILTER_FILENAMEGTK_FILE_FILTER_URIGTK_FILE_FILTER_DISPLAY_NAMEGTK_FILE_FILTER_MIME_TYPEgtk2PLLvLLLLvLLLL(MPGtkFileFilterFlagsLxM TGtkFileFilterInfo(M TGtkFileFilterInfoM(Lp3p3p3p3 MPGtkFileFilterInfoXN`NTGtkFileFilterFuncN filter_infodataN PGtkFileTimeNPPGtkFileSystemN PPGtkFilePathp3 OPPGtkFileSystemVolume@OPPGtkFileFolderhO PPGtkFileInfoOTGtkFileInfoType?GTK_FILE_INFO_DISPLAY_NAMEGTK_FILE_INFO_IS_FOLDERGTK_FILE_INFO_IS_HIDDENGTK_FILE_INFO_MIME_TYPEGTK_FILE_INFO_MODIFICATION_TIMEGTK_FILE_INFO_SIZEGTK_FILE_INFO_ALLgtk2O?iPOOPP6P VPPOOPP6P VP?iPPPGtkFileInfoTypePXQTGtkFileSystemError!GTK_FILE_SYSTEM_ERROR_NONEXISTENT GTK_FILE_SYSTEM_ERROR_NOT_FOLDER!GTK_FILE_SYSTEM_ERROR_INVALID_URI"GTK_FILE_SYSTEM_ERROR_BAD_FILENAMEGTK_FILE_SYSTEM_ERROR_FAILED$GTK_FILE_SYSTEM_ERROR_ALREADY_EXISTSgtk2QKR R.RQQQRQQQ R.RKRRPGtkFileSystemErrorxRS TGtkFileSystemIface@SF file_systemS file_systemp3pathS file_systemp3pathPtypes@eerrorS file_systemp3path@eerrorPT file_systemvolumeTp3 file_systemvolumeT file_systemvolume U file_systemvolume@eerror`UH file_systemvolumeU file_systemvolumeBwidget pixel_size@eerrorU file_systemp3path8Oparent@eerrorhVp3 file_systemp3 base_pathp3 display_name@eerrorV file_systemp3 base_pathp3str8Ofolder3 file_part@eerror0Wp3 file_systemp3pathWp3 file_systemp3pathWp3 file_systemp3uri8Xp3 file_systemp3pathxX file_systemp3pathBwidget pixel_size@eerrorX file_systemp3pathposition@eerror(Y file_systemp3path@eerrorYF file_systemY file_systemZ file_system8Z TGtkFileSystemIface@S:SSHT T(T0U8XU@UHUP`VXV`(WhWpWx0XpXX YYYZ0Z`ZhZPGtkFileSystemIface\\ TGtkFileFolderIface@@\folderp3path@eerror\folder8Fchildren@eerror\monitor]monitorFpaths@]monitorFpathsx]monitorFpaths] TGtkFileFolderIface@\@:\]8] p](]0]8]PGtkFileFolderIface^^PPGtkFileChooser^TGtkFileChooserActionGTK_FILE_CHOOSER_ACTION_OPENGTK_FILE_CHOOSER_ACTION_SAVE%GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER%GTK_FILE_CHOOSER_ACTION_CREATE_FOLDERgtk2^`___:____:_`__PGtkFileChooserAction_`TGtkFileChooserError"GTK_FILE_CHOOSER_ERROR_NONEXISTENT#GTK_FILE_CHOOSER_ERROR_BAD_FILENAMEgtk20`z`W``W`z``PGtkFileChooserError`` TGtkFileChooserDialogClass a TGtkFileChooserDialogClass ahaPGtkFileChooserDialogClassaa TGtkFileChooserDialoga TGtkFileChooserDialoga bPGtkFileChooserDialoghbpb TGtkFileChooserIfacebchooserp3path@eerrorbp3chooser cchooserp3nameHcchooserp3path@eerrorcchooserp3pathcchooserdchooser(dFchooserPdp3chooserxdchooserdchooserfilterdchooserfiltereFchooser8echooserp3path@eerror`echooserp3path@eerroreFchooserechooserfchooser@fchooserhfchooserf TGtkFileChooserIfaceb:c@cxc c(c0 d8Hd@pdHdPdXd`0ehXepexef8f`ffffPGtkFileChooserIface0h8hTGtkFileChooserProp GTK_FILE_CHOOSER_PROP_ACTION)GTK_FILE_CHOOSER_PROP_FILE_SYSTEM_BACKENDGTK_FILE_CHOOSER_PROP_FILTER GTK_FILE_CHOOSER_PROP_LOCAL_ONLY$GTK_FILE_CHOOSER_PROP_PREVIEW_WIDGET+GTK_FILE_CHOOSER_PROP_PREVIEW_WIDGET_ACTIVE'GTK_FILE_CHOOSER_PROP_USE_PREVIEW_LABEL"GTK_FILE_CHOOSER_PROP_EXTRA_WIDGET%GTK_FILE_CHOOSER_PROP_SELECT_MULTIPLE!GTK_FILE_CHOOSER_PROP_SHOW_HIDDENgtk2`h hihhh i0ii i\ijhhhh i0i\iiiijPGtkFileChooserPropijPPGtkFileChooserWidgetPrivatek TGtkFileChooserWidgetClass8@k TGtkFileChooserWidgetClass@k8kPGtkFileChooserWidgetClasskk TGtkFileChooserWidgetl TGtkFileChooserWidgetlP@lPGtkFileChooserWidgetll TGtkExpanderl TGtkExpanderlExl PGtkExpander0m8m TGtkExpanderClass@XmPmexpanderm TGtkExpanderClassXm@m8mPGtkExpanderClassnn TGtkAction 8n TGtkAction8n h[pn PGtkActionnn TGtkActionClassnnactionoBnaction@oBnactionhonactionBproxyonactionBproxyopp0pHp TGtkActionClassn `8o`oooop(p@pXp`pPGtkActionClassHqPq TGtkActionGroup xq TGtkActionGroupxq h[qPGtkActionGrouprr TGtkActionGroupClass0rn(r action_groupp3 action_nameprrrrs TGtkActionGroupClass0r`rrrrssPGtkActionGroupClassss TGtkActionEntry0s TGtkActionEntrys0p3p3p3p3p3 T(tPGtkActionEntrytt TGtkToggleActionEntry8t TGtkToggleActionEntryt8p3p3p3p3p3 T(0uPGtkToggleActionEntryuu TGtkRadioActionEntry0u TGtkRadioActionEntryu0p3p3p3p3p3 (vPGtkRadioActionEntryvv TGtkToggleAction(v TGtkToggleActionv(n wPGtkToggleActionPwXw TGtkToggleActionClasswxwactionwwxx0x TGtkToggleActionClasswHqwwx(x@xHxPGtkToggleActionClassxx TGtkRadioAction0y TGtkRadioActiony0Pw(@yPGtkRadioActionyy TGtkRadioActionClass0yyactionycurrenty0zHz`zxz TGtkRadioActionClassy0x(z@zXzpz z(zPGtkRadioActionClass{ { TGtkComboBoxH{ TGtkComboBoxH{Ex{ PGtkComboBox{{ TGtkComboBoxClass`{{ combo_box(|X|p||| TGtkComboBoxClass{`P|8h|@|H|P|X|PGtkComboBoxClass@}H} TGtkComboBoxEntryp} TGtkComboBoxEntryp}{}PGtkComboBoxEntry}~ TGtkComboBoxEntryClass(~h~~~~ TGtkComboBoxEntryClass(~@}x~`~h~p~x~PGtkComboBoxEntryClass@H TGtkToolItemp TGtkToolItempEx PGtkToolItem TGtkToolItemClassp tool_itemP tool_item tool_item$tooltipsp3tip_textp3 tip_private0H` TGtkToolItemClasspx8@H(P@XX`phxPGtkToolItemClass ( TGtkToolButtonP TGtkToolButtonPPGtkToolButtonȂЂ TGtkToolButtonClass tool_item0`x TGtkToolButtonClass pXxpPGtkToolButtonClassX` TGtkToggleToolButton TGtkToggleToolButtonȂȄPGtkToggleToolButton TGtkToggleToolButtonClass@8buttonȅ TGtkToggleToolButtonClass@X؅PGtkToggleToolButtonClass TGtkRadioToolButton؆ TGtkRadioToolButton؆PGtkRadioToolButtonPX TGtkRadioToolButtonClassȇ TGtkRadioToolButtonClass؇ (PGtkRadioToolButtonClass TGtkFontButton TGtkFontButtonPGtkFontButtonX` TGtkFontButtonClassxgfp0 TGtkFontButtonClass(@HPGtkFontButtonClassЊ؊ PPGtkIconInfo TGtkIconTheme TGtkIconTheme h[X PGtkIconTheme TGtkIconThemeClass icon_theme TGtkIconThemeClass`(0PGtkIconThemeClassxTGtkIconLookupFlagsGTK_ICON_LOOKUP_NO_SVGGTK_ICON_LOOKUP_FORCE_SVGGTK_ICON_LOOKUP_USE_BUILTIN GTK_ICON_LOOKUP_GENERIC_FALLBACKGTK_ICON_LOOKUP_FORCE_SIZEgtk2<ΌhΌ<PGtkIconLookupFlags`TGtkIconThemeErrorGTK_ICON_THEME_NOT_FOUNDGTK_ICON_THEME_FAILEDgtk2(fMMfPGtkIconThemeError؎ TGtkColorButton TGtkColorButton@PGtkColorButton TGtkColorButtonClasscp 8Ph TGtkColorButtonClass0H`xPGtkColorButtonClassPPGtkCellLayout8TGtkCellLayoutDataFunc cell_layoutcell tree_modelUiterdata` TGtkCellLayoutIfaceH cell_layoutcellexpand( cell_layoutcellexpandx cell_layoutȒ cell_layoutcellp3 attributecolumn cell_layoutcellfunc func_data6destroyX cell_layoutcellȓ cell_layoutcellposition TGtkCellLayoutIfaceH:p P(08P@XPGtkCellLayoutIface TGtkEntryCompletion 0 TGtkEntryCompletion0 h[pPGtkEntryCompletionTGtkEntryCompletionMatchFunc completionp3keyUiter user_data TGtkEntryCompletionClass` completionmodelUiter completionindex8Ph TGtkEntryCompletionClass``0H`xPGtkEntryCompletionClass8@ TGtkUIManager p TGtkUIManagerp h[ PGtkUIManager TGtkUIManagerClassmergeBwidgetPmergemergenactionBproxymergenactionBproxymergenaction@mergenactionxȚ TGtkUIManagerClass `8pؚPGtkUIManagerClassTGtkUIManagerItemTypeGTK_UI_MANAGER_AUTOGTK_UI_MANAGER_MENUBARGTK_UI_MANAGER_MENUGTK_UI_MANAGER_TOOLBARGTK_UI_MANAGER_PLACEHOLDERGTK_UI_MANAGER_POPUPGTK_UI_MANAGER_MENUITEMGTK_UI_MANAGER_TOOLITEMGTK_UI_MANAGER_SEPARATORGTK_UI_MANAGER_ACCELERATORgtk2 @kT Ɯ@ޜ8 @Tk Ɯ@ޜPGtkUIManagerItemType0H TGtkSeparatorToolItemp TGtkSeparatorToolItempPGtkSeparatorToolItem TGtkSeparatorToolItemClass(p TGtkSeparatorToolItemClass( pxȟПPGtkSeparatorToolItemClassPXTGtkTreeModelFilterVisibleFuncmodelUiterdataTGtkTreeModelFilterModifyFuncmodelUiterP>valuecolumndata TGtkTreeModelFilter x TGtkTreeModelFilterx h[PGtkTreeModelFilter TGtkTreeModelFilterClass0x TGtkTreeModelFilterClass0`ТآPGtkTreeModelFilterClassX` TGtkAboutDialog TGtkAboutDialogУPGtkAboutDialog TGtkAboutDialogClassHФ TGtkAboutDialogClassHȤPGtkAboutDialogClass`hTGtkAboutDialogActivateLinkFunc@aboutp3link_data TGtkCellRendererCombo TGtkCellRendererCombox`8PGtkCellRendererCombo TGtkCellRendererComboClass TGtkCellRendererComboClass(PGtkCellRendererComboClasshp TGtkCellRendererProgress@ TGtkCellRendererProgress@8PGtkCellRendererProgress8@ TGtkCellRendererProgressClasspШ TGtkCellRendererProgressClasspxȨPGtkCellRendererProgressClass TGtkCellViewhЩ TGtkCellViewЩhxB` PGtkCellViewHP TGtkCellViewClassp TGtkCellViewClassppPGtkCellViewClass TGtkFileChooserButton TGtkFileChooserButtonXPGtkFileChooserButton TGtkFileChooserButtonClassxЫȫfc@XpЬ TGtkFileChooserButtonClassЫx 88P@hHPX`ȬhpPGtkFileChooserButtonClass TGtkIconViewx TGtkIconViewxDp PGtkIconViewX` TGtkIconViewClassx icon_viewxM hadjustmentxM vadjustmentx icon_viewpathx icon_viewPx icon_viewx icon_viewx icon_viewx icon_viewx icon_viewstepcount@x icon_view TGtkIconViewClass 88H@xHPدX`8hpxPGtkIconViewClassTGtkIconViewForeachFuncx icon_viewpathdata TGtkMenuToolButton TGtkMenuToolButtonȂPPGtkMenuToolButton TGtkMenuToolButtonClassȲbutton8Ph TGtkMenuToolButtonClassȲX0H`xPGtkMenuToolButtonClass(0 TGdkDeviceClass` TGdkDeviceClass``PGdkDeviceClassش TGdkVisualClass TGdkVisualClass`HPGdkVisualClass TGdkColor TGdkColor `    PGdkColorHP TGdkColormap@p TGdkVisualXTGdkVisualTypeGDK_VISUAL_STATIC_GRAYGDK_VISUAL_GRAYSCALEGDK_VISUAL_STATIC_COLORGDK_VISUAL_PSEUDO_COLORGDK_VISUAL_TRUE_COLORGDK_VISUAL_DIRECT_COLORgdk2sE-]-E]s TGdkByteOrder GDK_LSB_FIRST GDK_MSB_FIRSTgdk28XfXf TGdkScreenи TGdkScreenиh[ PGdkScreen8@ TGdkVisualXh[ $(`,04`8<@`DHLXP` PGdkVisual TGdkColormapp@h[h (0X8 PGdkColormap(0 TGdkDrawableP TGdkDrawablePh[ PGdkDrawable PGdkWindow PGdkPixmap PGdkBitmap  TGdkFontType GDK_FONT_FONTGDK_FONT_FONTSETgdk2@_m_m PGdkFontTypeؼ TGdkFont TGdkFont 0PGdkFont TGdkFunctionGDK_COPY GDK_INVERTGDK_XOR GDK_CLEARGDK_ANDGDK_AND_REVERSEGDK_AND_INVERTGDK_NOOPGDK_OR GDK_EQUIVGDK_OR_REVERSEGDK_COPY_INVERT GDK_OR_INVERTGDK_NANDGDK_NORGDK_SETgdk2ǽ = $н [d M .l۽ǽн۽$.=M[dlX PGdkFunction TGdkCapStyleGDK_CAP_NOT_LAST GDK_CAP_BUTT GDK_CAP_ROUNDGDK_CAP_PROJECTINGgdk28'SEx'8ES PGdkCapStylepTGdkFill GDK_SOLID GDK_TILED GDK_STIPPLEDGDK_OPAQUE_STIPPLEDgdk2D#7-h#-7DPGdkFill` TGdkJoinStyleGDK_JOIN_MITERGDK_JOIN_ROUNDGDK_JOIN_BEVELgdk26'X'6 PGdkJoinStyleP TGdkLineStyleGDK_LINE_SOLIDGDK_LINE_ON_OFF_DASHGDK_LINE_DOUBLE_DASHgdk28h PGdkLineStyle0PGdkSubwindowModePGdkGCValuesMask TGdkGCValuesh TGdkGCValueshHH  `$(08@DHLPTX0\p`Pd8 PGdkGCValuesx TGdkGC0 TGdkGC0h[ $H(PGdkGCHP TGdkImageTypeGDK_IMAGE_NORMALGDK_IMAGE_SHAREDGDK_IMAGE_FASTESTgdk2h PGdkImageType( TGdkImageXH TGdkImageHX h[ (,0 4 6 8 :@HHP PGdkImagepx TGdkDeviceHTGdkInputSourceGDK_SOURCE_MOUSEGDK_SOURCE_PENGDK_SOURCE_ERASERGDK_SOURCE_CURSORgdk2$H$ TGdkInputModeGDK_MODE_DISABLEDGDK_MODE_SCREENGDK_MODE_WINDOWgdk2H TGdkDeviceAxisp TGdkDeviceAxisp((PGdkDeviceAxis TGdkDeviceKey TGdkDeviceKey `X PGdkDeviceKey TGdkDeviceH h[p3@ $(,08@ PGdkDevicepx TGdkTimeCoord ( TGdkTimeCoord` PGdkTimeCoord@HPPGdkTimeCoord`h TGdkPangoRenderer@ TGdkPangoRendererPrivate`  @ 8p TGdkPangoRendererPrivate`X8h 0PXPGdkPangoRendererPrivate08 TGdkPangoRenderer@0`8hPGdkPangoRenderer TGdkRgbDitherGDK_RGB_DITHER_NONEGDK_RGB_DITHER_NORMALGDK_RGB_DITHER_MAXgdk2*P* PGdkRgbDitherH TGdkDisplayManager TGdkDisplayManagerh[PGdkDisplayManager@H TGdkDisplayxp `  ` TGdkDisplayPointerHooks8 PPGdkScreenXPGdkModifierTypedisplayscreen4x4ymaskdisplaywindow4x4ymask(display4win_x4win_y TGdkDisplayPointerHooks8 PGdkDisplayPointerHooks08 `h ` TGdkDisplaypx h[FF (00@`HP`X```dhp PGdkDisplayPGdkInputCondition PGdkStatus TGdkPoint( TGdkPoint(` PGdkPoint PPGdkPoint TGdkSpan TGdkSpan  PGdkSpanpx PGdkWChar` TGdkSegment TGdkSegment  PGdkSegmentPX TGdkRectanglex TGdkRectanglex  PGdkRectanglePGdkAtom8 PPGdkAtomPX PGdkByteOrderxPGdkNativeWindow`PGdkVisualType TGdkColormapClass TGdkColormapClass` PGdkColormapClassX`PGdkCursorType TGdkCursor TGdkCursor` PGdkCursor (PGdkDragActionHTGdkDragProtocolGDK_DRAG_PROTO_MOTIFGDK_DRAG_PROTO_XDNDGDK_DRAG_PROTO_ROOTWINGDK_DRAG_PROTO_NONEGDK_DRAG_PROTO_WIN32_DROPFILESGDK_DRAG_PROTO_OLE2GDK_DRAG_PROTO_LOCALgdk2h8PGdkDragProtocol0 TGdkDragContextP TGdkDragContextP h[0 (F08<@`DHHPGdkDragContext ( TGdkDragContextClassP TGdkDragContextClassP`PGdkDragContextClass PGdkRegionBoxP TGdkRegion  TGdkRegion PP PGdkRegion TPOINTBLOCKH @ TPOINTBLOCKH8@@ PPOINTBLOCK TGdkDrawableClass`ػdrawablevaluesmaskػdrawable`gcfilledxywidthheight0 ػdrawable`gcfilledxywidthheightangle1angle2ػdrawable`gcfilledpointsnpointsXػdrawablefont`gcxyp3text text_lengthػdrawablefont`gcxytext text_lengthP ػdrawable`gcػsrcxsrcysrcxdestydestwidthheightػdrawable`gcpointsnpointsػdrawable`gcpsegsnsegsػdrawable`gcpointsnpoints0ػdrawable`gc`fontxyglyphs ػdrawable`gcimagexsrcysrcxdestydestwidthheightػdrawableػdrawable4width4heightػdrawableHcmapHػdrawablePػdrawablexXػdrawableػdrawablexywidthheightػdrawable0ػdrawableXػػdrawablexywidthheight4composite_x_offset4composite_y_offset ػdrawable`gcpixbufsrc_xsrc_ydest_xdest_ywidthheightHditherx_dithery_dither ػdrawableimagesrc_xsrc_ydest_xdest_ywidthheight0H`x TGdkDrawableClass(`(PHx(Hp(P x(08@HPX`h(p@xXpPGdkDrawableClass TGdkTrapezoid0 TGdkTrapezoid0((((( (( PGdkTrapezoid TGdkEventX TGdkEventAny TGdkEventAny0 TGdkEventExpose8 TGdkEventExpose8(0 TGdkEventNoExposeX TGdkEventNoExposeX TGdkEventVisibilityTGdkVisibilityStateGDK_VISIBILITY_UNOBSCUREDGDK_VISIBILITY_PARTIALGDK_VISIBILITY_FULLY_OBSCUREDgdk28x^^x TGdkEventVisibility TGdkEventMotionP TGdkEventMotionP `(( 5(`0@48(@(H TGdkEventButtonP TGdkEventButtonP `(( 5(`0`48(@(H TGdkEventScrollHTGdkScrollDirection GDK_SCROLL_UPGDK_SCROLL_DOWNGDK_SCROLL_LEFTGDK_SCROLL_RIGHTgdk2(\l|NN\l| TGdkEventScrollH `(( `(,0(8(@ TGdkEventKey8 TGdkEventKey8 ``` p3( 02( TGdkEventCrossingXTGdkCrossingModeGDK_CROSSING_NORMALGDK_CROSSING_GRABGDK_CROSSING_UNGRABgdk20gSySgy TGdkEventCrossingX ` (((0(8(@HLP`T TGdkEventFocus TGdkEventFocus@0 TGdkEventConfigure( TGdkEventConfigure( TGdkEventProperty(x TGdkEventPropertyx(` `$ TGdkEventSelection8H TGdkEventSelectionH8 (`0`4 TGdkEventProximity 8 TGdkEventProximity8 `x TGdkEventClient8 8 Hh  @  8 TGdkEventClient8 @$H TGdkEventDND( TGdkEventDND(H` @$@& TGdkEventWindowState  TGdkEventWindowState  TGdkEventSetting hTGdkSettingActionGDK_SETTING_ACTION_NEWGDK_SETTING_ACTION_CHANGEDGDK_SETTING_ACTION_DELETEDgdk2(X TGdkEventSettingh  H TGdkEventXPp@0` PGdkEventPX TGdkEventFuncpeventdatax TGdkXEvent PGdkXEventTGdkFilterReturnGDK_FILTER_CONTINUEGDK_FILTER_TRANSLATEGDK_FILTER_REMOVEgdk2#L7p#7LPGdkFilterReturnhTGdkFilterFunchxeventpeventdata PGdkEventTypeH PGdkEventMaskhPGdkVisibilityStatePGdkScrollDirectionPGdkNotifyTypePGdkCrossingModeTGdkPropertyStateGDK_PROPERTY_NEW_VALUEGDK_PROPERTY_STATE_DELETEgdk2 D[D[PGdkPropertyStatePGdkWindowStatePGdkSettingAction  TGdkOwnerChangeGDK_OWNER_CHANGE_NEW_OWNERGDK_OWNER_CHANGE_DESTROYGDK_OWNER_CHANGE_CLOSEgdk2H   j j PGdkOwnerChange  PGdkEventAnyH PGdkEventExposePh PGdkEventNoExpose PGdkEventVisibility PGdkEventMotion PGdkEventButton PGdkEventScroll0  PGdkEventKeyX PGdkEventCrossingx PGdkEventFocus PGdkEventConfigurep PGdkEventProperty@ PGdkEventSelection0 PGdkEventProximity8 TmatDUMMY` H  @  TmatDUMMY`  (  PmatDUMMYx PGdkEventClient PGdkEventSetting TGdkEventOwnerChange0 TGdkEventOwnerChange 0`  `(`,0PGdkEventOwnerChangePGdkEventWindowState` PGdkEventDND0 TGdkGCClassP`gcvalues`gcvaluesmask`gc dash_offset dash_listn`x TGdkGCClassP`Xp PGdkGCClass`h TGdkImageClass TGdkImageClass`PGdkImageClassTGdkExtensionModeGDK_EXTENSION_EVENTS_NONEGDK_EXTENSION_EVENTS_ALLGDK_EXTENSION_EVENTS_CURSORgdk2Vo<<VoPGdkExtensionModePGdkInputSource@  PGdkInputModeH PGdkAxisUseh TGdkKeymapKey  TGdkKeymapKey ` PGdkKeymapKey TGdkKeymap 8 TGdkKeymap8 h[p PGdkKeymap TGdkKeymapClasskeymap TGdkKeymapClass`8@PGdkKeymapClass TGdkPangoRendererClass TGdkPangoRendererClassHPGdkPangoRendererClass08 TGdkPangoAttrStipple` TGdkPangoAttrStipple`8PGdkPangoAttrStipple TGdkPangoAttrEmbossed TGdkPangoAttrEmbossedXPGdkPangoAttrEmbossed TGdkPixmapObject( TGdkPixmapObject(ػ PGdkPixmapObjecthp TGdkPixmapObjectClass TGdkPixmapObjectClassPGdkPixmapObjectClass TGdkPropModeGDK_PROP_MODE_REPLACEGDK_PROP_MODE_PREPENDGDK_PROP_MODE_APPENDgdk2@u__u PGdkPropMode TGdkFillRuleGDK_EVEN_ODD_RULEGDK_WINDING_RULEgdk2(GYxGY PGdkFillRulepTGdkOverlapTypeGDK_OVERLAP_RECTANGLE_INGDK_OVERLAP_RECTANGLE_OUTGDK_OVERLAP_RECTANGLE_PARTgdk25`5PGdkOverlapTypeX TGdkSpanFuncspandata TGdkRgbCmap  `X TGdkRgbCmap F PGdkRgbCmap TGdkDisplayManagerClasshdisplay_managerdisplayH TGdkDisplayManagerClass`PGdkDisplayManagerClass TGdkDisplayClassp3displayXdisplayXdisplay screen_numXdisplay TGdkDisplayClass`xPGdkDisplayClass TGdkScreenClassXscreenXscreen XscreenH Xscreenp Xscreen Xscreen Xscreen Xscreen!HXscreen8!XscreenHcolormap`!Xscreen4win_x4win_y!Xscreen!Xscreen monitor_num0dest" TGdkScreenClass` @ h !0!X!!!"X"`"PGdkScreenClassh#p# PGdkSelection# PGdkTarget#PGdkSelectionType#PGdkGrabStatus$TGdkInputFunctiondatasource condition $TGdkDestroyNotifydata$TGdkWindowClassGDK_INPUT_OUTPUTGDK_INPUT_ONLYgdk2$$$%$$0%PGdkWindowClass%P%TGdkWindowTypeGDK_WINDOW_ROOTGDK_WINDOW_TOPLEVELGDK_WINDOW_CHILDGDK_WINDOW_DIALOGGDK_WINDOW_TEMPGDK_WINDOW_FOREIGNgdk2x%%%%%%%&%%%%%%p&PGdkWindowType&&PGdkWindowAttributesType&PGdkWindowHints'TGdkWindowTypeHint GDK_WINDOW_TYPE_HINT_NORMALGDK_WINDOW_TYPE_HINT_DIALOGGDK_WINDOW_TYPE_HINT_MENUGDK_WINDOW_TYPE_HINT_TOOLBAR!GDK_WINDOW_TYPE_HINT_SPLASHSCREENGDK_WINDOW_TYPE_HINT_UTILITYGDK_WINDOW_TYPE_HINT_DOCKGDK_WINDOW_TYPE_HINT_DESKTOP"GDK_WINDOW_TYPE_HINT_DROPDOWN_MENUGDK_WINDOW_TYPE_HINT_POPUP_MENUGDK_WINDOW_TYPE_HINT_TOOLTIP!GDK_WINDOW_TYPE_HINT_NOTIFICATIONGDK_WINDOW_TYPE_HINT_COMBOGDK_WINDOW_TYPE_HINT_DNDgdk2(' ((i' ('2('M' ( U('' u('(M'i''''''(2(U(u(((()PGdkWindowTypeHint(0*PGdkWMDecorationX*PGdkWMFunction* PGdkGravity*TGdkWindowEdgeGDK_WINDOW_EDGE_NORTH_WESTGDK_WINDOW_EDGE_NORTHGDK_WINDOW_EDGE_NORTH_EASTGDK_WINDOW_EDGE_WESTGDK_WINDOW_EDGE_EASTGDK_WINDOW_EDGE_SOUTH_WESTGDK_WINDOW_EDGE_SOUTHGDK_WINDOW_EDGE_SOUTH_EASTgdk2*B+*+*r++W+-++**+-+B+W+r++(,PGdkWindowEdge+x, TGdkWindowAttrX, TGdkWindowAttr,Xp3 % H(&0@8p3@p3HP,PGdkWindowAttr-- TGdkGeometry8- TGdkGeometry-8  ( ((00. PGdkGeometry// TGdkPointerHooks(/window4x4ymaskh/Xscreen4win_x4win_y/ TGdkPointerHooks(///0PGdkPointerHooksH0P0 TGdkWindowObjectx0 TGdkWindowObjectx0ػH2 (048F@FHHP`Fhp`x|}~ 0PGdkWindowObject 2(2 TGdkWindowObjectClassP2 TGdkWindowObjectClassP22PGdkWindowObjectClass22.gdk_window_invalidate_maybe_recurse_child_funcpara1para22PgcharH`3PPgcharp3x3PPPgchar33Pgshort@3Pglong3Pgint3PPgint44 Pgboolean 4Pguchar@4PPgucharX4`4Pgushort 4Pgulong4Pguint`4Pgfloat4Pgdouble(4 pgpointer5 TGCompareFuncab85 PGCompareFuncp5x5TGCompareDataFuncab user_data5PGCompareDataFunc55 TGEqualFuncab6 PGEqualFuncH6P6TGDestroyNotifydatap6PGDestroyNotify66TGFuncdatauserdatakey6PGFunc7 7 TGHashFunc`key87 PGHashFunc`7h7TGHFunckeyvalue user_data7PGHFunc77 PGFreeFuncdata7 TGTimeVal(8 TGTimeVal(8`8 PGTimeVal88PGType8 TGTypeClass8 TGTypeClass89 PGTypeClassH9P9 TGTypeInstancep9 TGTypeInstancep9h99PGTypeInstance99 TGTypeInterface: TGTypeInterface:@:PGTypeInterface:: TGTypeQuery: TGTypeQuery:p3``: PGTypeQueryP;X;Pgint8x;Pguint8;Pgint16@;Pguint16 ;Pgint32;Pguint32`<Pgint640<Pguint64P<pgssizep<pgsize< TGValue< < < `(= == TGValue<==PGValue0>8> TGTypeCValueX> TGTypeCValueX>(> PGTypeCValue?? PGParamFlags(? TGParamSpecHH? TGParamSpecH?H 9p3 p3(p308`@`D? PGParamSpec@@H@ PPGParamSpec`@h@ TGParamSpecClassP@`@pspec@`@pspecP>value@`@pspecP>value(A`@pspecP>value1P>value2`A A TGParamSpecClass@PH9@ AXA A(A0APGParamSpecClasspBxB TGParameter B TGParameterB p30>B PGParameterC C TGParamSpecTypeInfo8@C`@pspecC`@pspecC`@pspecP>valueC`@pspecP>valueD`@pspecP>value1P>value2@D TGParamSpecTypeInfo@C8 CCD 8D(D0DPGParamSpecTypeInfo0E8EPGQuark``E TGSListE TGSListEFEPGSListEFPPGSListF F TGList@F TGList@FFFpFPGListFFPPGDataFTGBoxedCopyFuncboxedFTGBoxedFreeFuncboxed0GPGTypeDebugFlagshGTGBaseInitFuncg_classGTGBaseFinalizeFuncg_classGTGClassInitFuncg_class class_dataHTGClassFinalizeFuncg_class class_dataXHTGInstanceInitFunc9instanceg_classHTGInterfaceInitFuncg_iface iface_dataHTGInterfaceFinalizeFuncg_iface iface_dataHITGTypeClassCacheFunc cache_datah9g_classITGTranslateFuncp3p3strdataIPGTypeFundamentalFlags8J PGTypeFlags`J TGTypeValueTable@JP>valueJP>valueJP> src_valueP> dest_valueKP>valuePKp3P>value`n_collect_values ?collect_values` collect_flagsxKp3P>value`n_collect_values ?collect_values` collect_flagsK TGTypeValueTableJ@JKHKpKp3 K(p30`L8hLPGTypeValueTableMM TGTypeInfoH@M TGTypeInfo@MH GHPHH ( 0 2H88M@xM PGTypeInfo8N@N TGTypeFundamentalInfo`N TGTypeFundamentalInfo`NNPGTypeFundamentalInfoNN TGInterfaceInfoO TGInterfaceInfoO@IIHOPGInterfaceInfoOO TGSystemThread O HP TGSystemThreadO 0P(8PPGSystemThreadPP TGValueArrayP TGValueArrayP`P>`P PGValueArrayHQPQ PgchararrayHpQ TGClosure QSclosureP> return_value`n_param_valuesP> param_valuesinvocation_hint marshal_dataQ TGClosureNotifyDatahRTGClosureNotifydataSclosureR TGClosureNotifyDatahRRRPGClosureNotifyData8S@S TGClosureQ `R`ShS PGClosureSS TGCClosure(S TGCClosureS(S (T PGCClosurehTpTTGCallBackProcedureT TGCallbackTpara1TTGClosureMarshalSclosureP> return_value`n_param_valuesP> param_valuesinvocation_hint marshal_dataT TGSignalInvocationHint U TGSignalInvocationHintU ``UPGSignalInvocationHint0V8VPGSignalCMarshallerU`VTGSignalEmissionHookXVihint`n_param_valuesP> param_valuesdataVTGSignalAccumulatorXVihintP> return_accuP>handler_returndataW PGSignalFlagsxW TGSignalQuery8W TGSignalQueryW8`p3 `(80W PGSignalQuery`XhXTGTypePluginUsepluginXTGTypePluginUnusepluginXTGTypePluginCompleteTypeInfopluging_typeXNinfo8M value_tableX!TGTypePluginCompleteInterfaceInfoplugin instance_typeinterface_typeOinfopY TGTypePluginClass0Y TGTypePluginClassY0:XXhY Y(8ZPGTypePluginClassZZ TGObjectZ TGObjectZ9`[PGObjecth[p[TGObjectGetPropertyFunc[anObject` property_idP>value`@pspec[TGObjectSetPropertyFunc[anObject` property_idP>value`@pspec\TGObjectFinalizeFunc[anObject\ TGWeakNotifydata[where_the_object_was\ TGObjectConstructParam] TGObjectConstructParam]`@P>P]PGObjectConstructParam]] TGObjectClass][_type`n_construct_properties]construct_properties^[anObject` property_idP>value`@pspech^[anObject` property_idP>value`@pspec^[anObject(_[anObjectP_[anObject`n_pspecs@pspecsx_[anObject`@pspec_ @` TGObjectClass] H9F`^^ _ H_(p_0_8_@(`H0` PGObjectClass`` TGEnumClass a TGEnumValuePa TGEnumValuePap3p3a PGEnumValueaa TGEnumClassa H9 `ab PGEnumClasspbxb TGFlagsClassb TGFlagsValueb TGFlagsValueb`p3p3c PGFlagsValueXc`c TGFlagsClassbH9`` xcc PGFlagsClasscc PGAsciiTypedTGHRFunckeyvalue user_data(d TGErrorxd TGErrorxd`p3dPGErroreePPGError e(e TGMemVTable0Hen_bytesememn_bytesememen_blocks n_block_bytesfn_bytesHfmemn_bytespf TGMemVTableHe0eef@fhf f(f PGMemVTable(g0g TGArrayPg TGArrayPgp3`gPGArraygg TGByteArrayg TGByteArrayg;`(h PGByteArrayhhph TGPtrArrayh TGPtrArrayh05`h PGPtrArrayiiTGCacheNewFunckey0iTGCacheDupFuncvaluehiTGCacheDestroyFuncvalueiPGCompletionFuncHiTGCompletionStrncmpFuncp3s1p3s2nj TGCompletion(Xj TGCompletionXj(FHp3FPj j PGCompletionkkTGConvertErrorG_CONVERT_ERROR_NO_CONVERSION G_CONVERT_ERROR_ILLEGAL_SEQUENCEG_CONVERT_ERROR_FAILEDG_CONVERT_ERROR_PARTIAL_INPUTG_CONVERT_ERROR_BAD_URI!G_CONVERT_ERROR_NOT_ABSOLUTE_PATHglib2(kkkgkkIkklIkgkkkkk`lPGConvertErrorllPGIConvlTGDataForeachFunc`key_iddata user_datalGDestroyNotifydata@mPGTimexm PGDateYear m PGDateDaym Ttm8m Ttmm8   (p30nPtmnn PGDateDMYn PGDateWeekdayo PGDateMonth(o TGDateHo TGDateHoxoPGDateoo PGFileErroro PGFileTesto TGHook@p TGHookp@pp` `(068@pPGHookpp TGHookList8pTGHookFinalizeFuncPr hook_listphook0q q TGHookListp8pxq q(q PGHookList0r8rTGHookCompareFuncpnew_hookpsiblingXrTGHookFindFuncphookdatarTGHookMarshallerphook marshal_datarTGHookCheckMarshallerphook marshal_data@s TGHookFuncdatasTGHookCheckFuncdatasPGHookFlagMasks TGThreadErrorG_THREAD_ERROR_AGAINglib2t8t`t8txt PGThreadErrorXtt TGThreadFuncdatatTGThreadPriorityG_THREAD_PRIORITY_LOWG_THREAD_PRIORITY_NORMALG_THREAD_PRIORITY_HIGHG_THREAD_PRIORITY_URGENTglib2t2uuuIuxuuu2uIuuPGThreadPrioritypuu TGThreadv TGThreadvtpuHvPGThreadvvPPGMutexv PGStaticMutexv TGThreadFunctionswPwmutexhwmutexwmutexwmutexwxcond xcondHxcondmutexpxcondmutex8end_timexcondx6desty private_key@y private_keydatapytfuncdata stack_sizejoinableboundpuprioritythread@eerroryPzthreadhzzthreadpupriorityzthreadzthread1thread2{ TGThreadFunctionsw`wwwwx x(@x0hx8x@xHyP8yXhy`yhHzp`zxzzz{H{P{PGThreadFunctions|| TGStaticPrivate| TGStaticPrivate|`8}PGStaticPrivatep}x} TGStaticRecMutex0} TGStaticRecMutex}0`P}PGStaticRecMutex8~@~ TGStaticRWLock(h~ TGStaticRWLockh~(`` `$~PGStaticRWLock08 TGThreadPoolX TGThreadPoolX7 PGThreadPool TGSourceFuncdata PGSourceFunc08 TGSourceCallbackFuncsXcb_datacb_data TGSource` TGSourceFuncs0 sourcetimeoutXsourcesource0callback user_datasourceTGSourceDummyMarshal0 TGSourceFuncs 0(0 X(` PGSourceFuncs TGSource` ` (`,`0F8@HPXPGSourcecb_datasourcePfunc05data TGSourceCallbackFuncsXpxPGSourceCallbackFuncsЄ؄ TGPollFD TGPollFD  8PGPollFD TGPollFuncufds`nfsdtimeout Pgunichar` Pgunichar2  TGUnicodeTypeG_UNICODE_CONTROLG_UNICODE_FORMATG_UNICODE_UNASSIGNEDG_UNICODE_PRIVATE_USEG_UNICODE_SURROGATEG_UNICODE_LOWERCASE_LETTERG_UNICODE_MODIFIER_LETTERG_UNICODE_OTHER_LETTERG_UNICODE_TITLECASE_LETTERG_UNICODE_UPPERCASE_LETTERG_UNICODE_COMBINING_MARKG_UNICODE_ENCLOSING_MARKG_UNICODE_NON_SPACING_MARKG_UNICODE_DECIMAL_NUMBERG_UNICODE_LETTER_NUMBERG_UNICODE_OTHER_NUMBERG_UNICODE_CONNECT_PUNCTUATIONG_UNICODE_DASH_PUNCTUATIONG_UNICODE_CLOSE_PUNCTUATIONG_UNICODE_FINAL_PUNCTUATIONG_UNICODE_INITIAL_PUNCTUATIONG_UNICODE_OTHER_PUNCTUATIONG_UNICODE_OPEN_PUNCTUATIONG_UNICODE_CURRENCY_SYMBOLG_UNICODE_MODIFIER_SYMBOLG_UNICODE_MATH_SYMBOLG_UNICODE_OTHER_SYMBOLG_UNICODE_LINE_SEPARATORG_UNICODE_PARAGRAPH_SEPARATORG_UNICODE_SPACE_SEPARATORglib2@ Dه` ].rJ†ӈ݆ v‡h7 )``r†݆)D]v‡ه.Jhӈ7؊ PGUnicodeTypeX؋TGUnicodeBreakTypeG_UNICODE_BREAK_MANDATORYG_UNICODE_BREAK_CARRIAGE_RETURNG_UNICODE_BREAK_LINE_FEEDG_UNICODE_BREAK_COMBINING_MARKG_UNICODE_BREAK_SURROGATE G_UNICODE_BREAK_ZERO_WIDTH_SPACEG_UNICODE_BREAK_INSEPARABLE!G_UNICODE_BREAK_NON_BREAKING_GLUEG_UNICODE_BREAK_CONTINGENTG_UNICODE_BREAK_SPACEG_UNICODE_BREAK_AFTERG_UNICODE_BREAK_BEFORE G_UNICODE_BREAK_BEFORE_AND_AFTERG_UNICODE_BREAK_HYPHENG_UNICODE_BREAK_NON_STARTER G_UNICODE_BREAK_OPEN_PUNCTUATION!G_UNICODE_BREAK_CLOSE_PUNCTUATIONG_UNICODE_BREAK_QUOTATIONG_UNICODE_BREAK_EXCLAMATIONG_UNICODE_BREAK_IDEOGRAPHICG_UNICODE_BREAK_NUMERICG_UNICODE_BREAK_INFIX_SEPARATORG_UNICODE_BREAK_SYMBOLG_UNICODE_BREAK_ALPHABETICG_UNICODE_BREAK_PREFIXG_UNICODE_BREAK_POSTFIXG_UNICODE_BREAK_COMPLEX_CONTEXTG_UNICODE_BREAK_AMBIGUOUSG_UNICODE_BREAK_UNKNOWNglib2 : P g7܍q  4hˌWPю $#P7Wqˌ $:Pg܍4Phю #PGUnicodeBreakTypeHPGNormalizeModeؑ TGString TGStringp38PGString TGIOErrorG_IO_ERROR_NONEG_IO_ERROR_AGAING_IO_ERROR_INVALG_IO_ERROR_UNKNOWNglib2ܒ̒ ̒ܒ` PGIOErrorTGIOChannelErrorG_IO_CHANNEL_ERROR_FBIGG_IO_CHANNEL_ERROR_INVALG_IO_CHANNEL_ERROR_IOG_IO_CHANNEL_ERROR_ISDIRG_IO_CHANNEL_ERROR_NOSPCG_IO_CHANNEL_ERROR_NXIOG_IO_CHANNEL_ERROR_OVERFLOWG_IO_CHANNEL_ERROR_PIPEG_IO_CHANNEL_ERROR_FAILEDglib2 ӓ3LdȔӓ3Ld@PGIOChannelError TGIOStatusG_IO_STATUS_ERRORG_IO_STATUS_NORMALG_IO_STATUS_EOFG_IO_STATUS_AGAINglib2ݕ8ݕx PGIOStatus0 TGSeekType G_SEEK_CUR G_SEEK_SET G_SEEK_ENDglib2ȖH PGSeekTypep PGIOCondition PGIOFlags TGIOChannelpЗ TGIOFuncs@0channelp3bufcount< bytes_read@eerr@0channelp3bufcount< bytes_written@eerr0channeloffset_type@eerr0channel@eerrpchannel conditionchannel0channelflags@eerrchannelX TGIOFuncs@h (P0x8 PGIOFuncs ( HH TGIOChannelЗp`@p3 p3(`08@HPpX ^`hx PGIOChannelTGIOFuncsource conditiondataPGLogLevelFlags TGLogFuncp3 log_domain log_levelp3 TheMessage user_data0 TGPrintFuncp3_string TGMarkupErrorG_MARKUP_ERROR_BAD_UTF8G_MARKUP_ERROR_EMPTYG_MARKUP_ERROR_PARSEG_MARKUP_ERROR_UNKNOWN_ELEMENT G_MARKUP_ERROR_UNKNOWN_ATTRIBUTEG_MARKUP_ERROR_INVALID_CONTENTglib2؝z%Y:%:Yz PGMarkupError@PGMarkupParseFlags`PGMarkupParseContext TGMarkupParser(contextp3 element_name3attribute_names3attribute_values user_data@eerrorcontextp3 element_name user_data@eerrorcontextp3texttext_len user_data@eerrorcontextp3passthrough_texttext_len user_data@eerrorXcontext eerror user_dataء TGMarkupParser(xPС (PGMarkupParser TGNode( TGNode(pppp PGNodeX`PGTraverseFlagsxTGTraverseType G_IN_ORDER G_PRE_ORDER G_POST_ORDER G_LEVEL_ORDERglib2أ̣̣أHPGTraverseTypexTGNodeTraverseFuncpnodedataTGNodeForeachFuncpnodedataTGTraverseFunckeyvaluedata( TGQueuex TGQueuexFF`PGQueue TGTuples( TGTuples(``PGTuples PGTokenType TGScannerئ TGScannerConfig( TGScannerConfig(p3p3p3p3 `$PPGScannerConfigا TGTokenValue TGTokenValue p3(p3p3`@TGScannerMsgFuncscannerp3messageerror TGScannerئ`` p3 (0`8`<@H`P`TX`p3hp3pp3x`px PGScanner PGTokenValue TGShellErrorG_SHELL_ERROR_BAD_QUOTINGG_SHELL_ERROR_EMPTY_STRINGG_SHELL_ERROR_FAILEDglib20OiOiث PGShellError TGSpawnErrorG_SPAWN_ERROR_FORKG_SPAWN_ERROR_READG_SPAWN_ERROR_CHDIRG_SPAWN_ERROR_ACCESG_SPAWN_ERROR_PERMG_SPAWN_ERROR_2BIGG_SPAWN_ERROR_NOEXECG_SPAWN_ERROR_NAMETOOLONGG_SPAWN_ERROR_NOENTG_SPAWN_ERROR_NOMEMG_SPAWN_ERROR_NOTDIRG_SPAWN_ERROR_LOOPG_SPAWN_ERROR_TXTBUSYG_SPAWN_ERROR_IOG_SPAWN_ERROR_NFILEG_SPAWN_ERROR_MFILEG_SPAWN_ERROR_INVALG_SPAWN_ERROR_ISDIRG_SPAWN_ERROR_LIBBADG_SPAWN_ERROR_FAILEDglib2 ye? H mȬY R 2?ReyȬ 2HYm PGSpawnErrorTGSpawnChildSetupFunc user_data PGSpawnFlagsTGModuleCheckInitp3moduleTGModuleUnloadmoduleP TGOptionContext TGOptionContextȰPGOptionContext TGOptionGroup TGOptionGroup X PGOptionGroupx TGOptionFlags@G_OPTION_FLAG_HIDDENG_OPTION_FLAG_IN_MAING_OPTION_FLAG_REVERSEG_OPTION_FLAG_NO_ARGG_OPTION_FLAG_FILENAMEG_OPTION_FLAG_OPTIONAL_ARGG_OPTION_FLAG_NOALIASglib2ձ@H -pձ -@Hв PGOptionFlagsh8 TGOptionArgG_OPTION_ARG_NONEG_OPTION_ARG_STRINGG_OPTION_ARG_INTG_OPTION_ARG_CALLBACKG_OPTION_ARG_FILENAMEG_OPTION_ARG_STRING_ARRAYG_OPTION_ARG_FILENAME_ARRAYG_OPTION_ARG_DOUBLEG_OPTION_ARG_INT64glib2X ó#vٳHvóٳ# PGOptionArg@ TGOptionErrorG_OPTION_ERROR_UNKNOWN_OPTIONG_OPTION_ERROR_BAD_VALUEG_OPTION_ERROR_FAILEDglib28vXXv PGOptionError TGOptionEntry00 TGOptionEntry00p3H @p3 p3(h PGOptionEntryTGOptionArgFuncp3 option_namep3valuedata@eerror TGOptionParseFunccontextgroupdata@eerrorTGOptionErrorFunccontextgroupdata@eerrorTGValueTransformP> src_valueP> dest_value`PGConnectFlagsPGSignalMatchTypeи TGDebugKey TGDebugKeyp3`0 PGDebugKeypx TGVoidFunc TGTrashStack TGTrashStack@ PGTrashStack ( PPGTrashStack@HPPangoFontDescriptionhPPangoAttrListPPangoAttrIterator PPangoLayoutغPPangoLayoutClassPPangoLayoutIter  PPangoContextHPPangoContextClasshPPangoFontsetSimplePPangoTabArray TPangoFontػ TPangoFontػh[ PPangoFont@H TPangoFontMetricsh TPangoFontMetricsh` PPangoFontMetrics ( TPangoGlyphString P TPangoGlyphInfo TPangoGlyphGeometry н TPangoGlyphGeometryн  TPangoGlyphVisAttrp TPangoGlyphVisAttrp TPangoGlyphInfo`hPPangoGlyphInfoHP TPangoGlyphStringP p4xPPangoGlyphString TPangoAnalysis0 TPangoEngineShape(H TPangoEngine TPangoEnginep3p3TPangoEngineShapeScript`fontHtextlengthanalysisglyphsPPangoLanguageTPangoEngineShapeGetCoverage`fontlanguage TPangoEngineShapeH( PPangoEngineShapehp TPangoEngineLang TPangoLogAttr TPangoLogAttr  PPangoLogAttr@HTPangoEngineLangScriptBreakHtextlenanalysis`attrs attrs_lenh TPangoEngineLang PPangoEngineLang8@ TPangoAnalysis0`` F(hPPangoAnalysis TPangoItem@ TPangoItem@H PPangoItem TPangoMatrix0 TPangoMatrix0((((( (( PPangoMatrix PPangoGlyph` TPangoRectangle TPangoRectangle PPangoRectanglexTPangoDirectionPANGO_DIRECTION_LTRPANGO_DIRECTION_RTLPANGO_DIRECTION_TTB_LTRPANGO_DIRECTION_TTB_RTLPANGO_DIRECTION_NEUTRALpango" P "PPangoDirectionH TPangoColor TPangoColor  0 PPangoColorPPangoAttrTypePPangoUnderline TPangoAttribute TPangoAttrClass 0attrpattrattr1attr2 TPangoAttrClass0 PPangoAttrClass`h TPangoAttribute`` PPangoAttribute TPangoAttrString TPangoAttrStringHXPPangoAttrString TPangoAttrLanguage TPangoAttrLanguagePPangoAttrLanguageX` TPangoAttrInt TPangoAttrInt PPangoAttrInt TPangoAttrFloat( TPangoAttrFloat((hPPangoAttrFloat TPangoAttrColor TPangoAttrColor PPangoAttrColorhp TPangoAttrShape0 TPangoAttrShape0xx PPangoAttrShape08 TPangoAttrFontDesc` TPangoAttrFontDesc`PPangoAttrFontDescTPangoCoverageLevelPANGO_COVERAGE_NONEPANGO_COVERAGE_FALLBACKPANGO_COVERAGE_APPROXIMATEPANGO_COVERAGE_EXACTpangojR>>RjPPangoCoverageLevel TPangoBlockInfoH TPangoBlockInfoHX4PPangoBlockInfo TPangoCoverage TPangoCoverage`8PPangoCoverage TPangoEngineRange TPangoEngineRange``p3PPangoEngineRangeX` TPangoEngineInfo( TPangoEngineInfo(p3p3p3 PPangoEngineInfo@H PPangoEnginep TPangoFontset TPangoFontseth[ PPangoFontset TPangoFontsetClass `fontset`wc`Hfontsetfontset0 TPangoFontsetClass `(@HPPangoFontsetClass PPangoStyle  PPangoVariant@ PPangoWeight` PPangoStretchPPangoFontMask TPangoFontFamily TPangoFontFamilyh[PPangoFontFamily8@PPPangoFontFamily`hPPPPangoFontFamily TPangoFontFace TPangoFontFaceh[PPangoFontFace (PPPangoFontFace@HPPPPangoFontFacehpTPangoFontFamilyClassListFaces`familyfacesn_facesTPangoFontFamilyClassGetNameH`family TPangoFontFamilyClassH TPangoFontFamilyClassH`@PPangoFontFamilyClass TPangoFontFaceClassH@face@face@Xp TPangoFontFaceClass`8PhPPangoFontFaceClass8@TPangoFontClassDescribe`fonthTPangoFontClassGetCoverage`fontlangTPangoFontClassFindShaper`fontlang`chTPangoFontClassGetGlyphExtents`font`glyphink_rect logical_rectXTPangoFontClassGetMetricsH`fontlanguage TPangoFontClass(h TPangoFontClass( `P xPPangoFontClass TPangoFontMap TPangoFontMaph[ PPangoFontMap(0TPangoFontMapClassLoadFont`Hfontmap`contextdescPTPangoFontMapClassListFamiliesHfontmapfamilies n_familiesTPangoFontMapClassFontSetHfontmap`contextdesclanguage( TPangoFontMapClass( TPangoFontMapClass`  8@PPangoFontMapClassPPangoGlyphUnitPPangoGlyphGeometryh@PPangoGlyphVisAttrhTPangoAlignmentPANGO_ALIGN_LEFTPANGO_ALIGN_CENTERPANGO_ALIGN_RIGHTpango(PPangoAlignmentPTPangoWrapModePANGO_WRAP_WORDPANGO_WRAP_CHARPANGO_WRAP_WORD_CHARpangoxPPangoWrapMode8TPangoEllipsizeModePANGO_ELLIPSIZE_NONEPANGO_ELLIPSIZE_STARTPANGO_ELLIPSIZE_MIDDLEPANGO_ELLIPSIZE_ENDpangoX~~(PPangoEllipsizeModeX TPangoLayoutLine TPangoLayoutLine FPPangoLayoutLine(0 TPangoLayoutRunX TPangoLayoutRunXPPangoLayoutRun TPangoRendererPrivate0 P  TPangoRendererPrivate0xP(PPangoRendererPrivateTPangoRenderPartPANGO_RENDER_PART_FOREGROUNDPANGO_RENDER_PART_BACKGROUNDPANGO_RENDER_PART_UNDERLINEPANGO_RENDER_PART_STRIKETHROUGHpango8x[[x PPangoRenderPartP TPangoRenderer8x TPangoRendererx8h[ (00PPangoRenderer08 TPangoRendererClassXPrenderer`fontglyphsxyPrendererpartxywidthheightPrendererxywidthheighthPrendererXattrxyPrendererpart(y1_(x11(x21(y2(x12(x22 Prenderer`font`glyph(x(yPrendererpartPrendererHPrendererpPrendererrun TPangoRendererClassX``@h(0PPangoRendererClassHPTPangoTabAlignPANGO_TAB_LEFTpangoxPPangoTabAlign TLMDrawItems  TLMDrawItems ``'0(@ TLMDrawListItem TLMDrawListItem ``3( TLMMeasureItem x TLMMeasureItemx ``4( TLMNoParams ( ` TLMNoParams( ``( TLMEraseBkgnd TLMEraseBkgnd ``0&(0 TLMGetText TLMGetText ``H( TLMKey X TLMKeyX ``  ( TLMGetDlgCode  TLMGetDlgCode ``  ((P TLMSetCursor TLMSetCursor ``'@ (( TLMMouse TLMMouse `@@(( TLMMove x TLMMovex ``@@(( TLMActivate X TLMActivateX ``  '( TLMNCActivate ( TLMNCActivate( `` ((` TLMNotify TLMNotify ``*( TLMNotifyFormat TLMNotifyFormat ``'(( TLMPaint X TLMPaintX ``0&5( tagWINDOWPOS( tagWINDOWPOS(%%` @ PWindowPos TLMWindowPosMsg TLMWindowPosMsg ``((8 tagNCCalcSize_Params8 00 tagNCCalcSize_Params8 0(PNCCalcSizeParamspx TLMNCCalcSize  TLMNCCalcSize `` ( TLMSysCommand ` TLMSysCommand` ``'( @@ TLMSysDeadChar @ TLMSysDeadChar@ ``  ((x TLMSystemError  TLMSystemError ``  ((H TLMSetText  TLMSetText ``(H( TLMMouseEvent0 TLMMouseEvent0 `` @ @@( ( PLMMouseEvent TLastMouseInfo( TLastMouseInfo(% $ % TLMSetFocus  TLMSetFocus ``'(( TLMSize @ TLMSize@ ``  (x TLMessage  TLMessage ``(((H  PLMessage TLMScroll( TLMScroll (``@@ '(  TLMShowWindow TLMShowWindow `` (( TLMNCHITTEST TLMNCHITTEST ``(@@(( TLMCommand ` TLMCommand` ``  '( TLMContextMenu 0 TLMContextMenu0 ``'@@((h TLMHelp  TLMHelp ``((F(H0p ZP3C4CP6C9C9C:C9C7C8C0AC@ACPACTDebugLCLItemInfo`ZP3C4CP6C9C9C:C9C7C8C0AC@ACPACTDebugLCLItems####$8$`$$$$$%8%`%%%%& &H&p&&&&' '@'`'''''( (@(h((((()()H)h)))))*(*H*h*****+(+H+h+++++,(,H,h,,,,,-(-H-h-----.(.H.h...../0/X/x/////080X0x00000181X1x11111282X2x2222303X33333 4H4p4444585`55556(6P6x66666787X7x77777 8H8p8888989`9999:(:P:x::::;8;X;x;;;;< 0  @TDebugLCLItemInfo  (pTDebugLCLItemInfoLCLProcTDebugLCLItemsTDebugLCLItemsLCLProc`TStringsSortCompareItem1Item2   @ p  TSendApplicationMessageFunction`Msg(WParam(LParamTOwnerFormDesignerModifiedProc@ AComponenth  @( ( @ p  UTF16String PUTF16String H 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTTimerID8 _H_p_____ `@`h``TOpenParamStringProc$selfPointerAString AnsiStringBoolean TTimerID8LCLIntfH X x 0!xh!SP3C4CP6C9C9C:C9C7C8C0AC@ACPACPS[SSTListWithEvent defaultab8b`bbbbc0c`ccc TUTF8Charp" TTranslateString"PCriticalSection"TDockImageOperationdisShowdisMovedisHideLCLType"#"" #""#P#TNativeHandleTypenhtWindowsHWND nhtX11TWindownhtCocoaNSWindow nhtQtQWidgetLCLTypex##########($TNativeHandleTypes#X$TNativeCanvasType nctWindowsDC nctLazCanvasLCLType$$$$$$%TNativeCanvasTypes$ %TOnShowSelectItemDialogResult$selfPointer ASelectedItemLongIntP%PInt%THandle%PHandle%%HDC&HHOOK8&HFONTX&HGDIOBJx&HPEN&HRGN&HINST&HICON' HIMAGELIST 'HGLOBALH'HWNDp'HMENU'HBITMAP'HPALETTE'HBRUSH(HMONITOR((PRect0P(WPARAMh(LPARAM(LRESULT( ULONG_PTR(TLCLIntfHandle)PHKEY8) TKeyBoardStateP) _ABC ) _ABC) `)PABC** tagNMHDR(* tagNMHDR(*'`*PNMHdr** TScreenInfo* TScreenInfo* + PScreenInfoh+p+ tagMonitorInfo(+ tagMonitorInfo+(`00`$+ PMonitorInfo(,0, tagMonitorInfoExHP, H, tagMonitorInfoExP,H`00`$,(,PMonitorInfoEx8-@- tagMonitorInfoExWh`- @ h- tagMonitorInfoExW`-h`00`$-(-PMonitorInfoExWH.P.MONITOR_DPI_TYPEMDT_EFFECTIVE_DPIMDT_ANGULAR_DPI MDT_RAW_DPI MDT_DEFAULTLCLTypex..........(/ tagDrawItemStruct@h/ tagDrawItemStructh/@ ```` `'0& 0()8/PDrawItemStruct`0h0TOwnerDrawStateType odSelectedodGrayed odDisabled odChecked odFocused odDefault odHotLight odInactive odNoAccel odNoFocusRect odReserved1 odReserved2odComboBoxEditodBackgroundPaintedLCLType0 H10 91000000 1 1 !1 -10p100000000 11!1-191H1(2TOwnerDrawStateh12 TDrawListItemStruct(2 TDrawListItemStruct2(`00&2 3PDrawListItemStruct33 TMeasureItemStruct 3 TMeasureItemStruct3 ```` `)3PMeasureItemStructx44 tagPAINTSTRUCTH4 4 tagPAINTSTRUCT4H0&0  5$5 PPaintStruct55 tagWindowPos(5 tagWindowPos5(''` 5 PWindowPos66 tagScrollInfo6 tagScrollInfo6`` `6 PScrollInfop7x7 tagPALETTEENTRY7 tagPALETTEENTRY77 PPaletteEntry@8H8 tagLOGPALETTEh8 @88 tagLOGPALETTEh8 88 PLogPalette 9(9 tagTRIVERTEXH9 tagTRIVERTEXH9  9 PTriVertex:: tagGRADIENTTRIANGLE (: tagGRADIENTTRIANGLE(: ```h:PGradientTriangle:: tagGRADIENTRECT: tagGRADIENTRECT:``0; PGradientRectx;; tagBITMAP ; tagBITMAP;   ;PBitmaph<p< tagBITMAPCOREHEADER < tagBITMAPCOREHEADER< `    <PBitmapCoreHeaderH=P= tagBITMAPINFOHEADER(x= tagBITMAPINFOHEADERx=( ` ``` `$=PBitmapInfoHeader>> tagRGBTRIPLE> tagRGBTRIPLE>> PRGBTripleH?P? tagRGBQUADp? tagRGBQUADp??PRGBQUAD@@ TRGBAQuad0@ TRGBAQuad0@h@ PRGBAQuad@@TRGBAQuadArray`@LCLType@TRGBAQuadArray@LCLType0A tagBITMAPINFO,pA @A tagBITMAPINFOpA,>A(A PBitmapInfoB B tagBITMAPCOREINFO@B H?B HB tagBITMAPCOREINFO@BH=B BBPBitmapCoreInfo8C@C tagBITMAPFILEHEADERhC tagBITMAPFILEHEADERhC `  ` CPBitmapFileHeader D(D tagDIBSECTIONhPD `D tagDIBSECTIONPDhh<> DH%X``D PDIBSection(E0E tagHELPINFO(PE tagHELPINFOPE(`%`E PHelpInfoFF LOGFONTA<0F HhF LOGFONTA0F< FF PLogFontAGG LOGFONTW\G @ hG LOGFONTWG\  H(H PLogFontW(I0I LPLOGFONTGPI tagLOGBRUSHpI tagLOGBRUSHpI``I PLogBrushIJ TLogGradientStop J TLogGradientStop J   (`JXJLCLTypeJ TLogRadialGradient KKJLCLType`K TLogRadialGradientK  KK TMaxLogPalette L @8XL TMaxLogPalette L LLPMaxLogPaletteLL tagENUMLOGFONTAM @@H@M HpM tagENUMLOGFONTAMGhM<M|M PEnumLogFontAMN tagENUMLOGFONTW N @h`N @ hN tagENUMLOGFONTW N(IN\NN PEnumLogFontWO O tagENUMLOGFONTEXA@O @@HO HO HO tagENUMLOGFONTEXA@OGO<O|PPPEnumLogFontExAxPP tagENUMLOGFONTEXW\P @hP @ hQ @ hHQ tagENUMLOGFONTEXWP\(IQ\@QpQxQPEnumLogFontExWQQ tagLOGPENR tagLOGPENR`` HRPLogPenRR tagEXTLOGPEN R `R tagEXTLOGPENR ```` ` S(S PExtLogPenSS tagTextMetricA8S tagTextMetricAS8  $(H,H-H.H/01234T PTextMetricAxUU tagTEXTMETRICW<U tagTEXTMETRICWU<  $(h,h.h0h245678U PTextMetricW8W@W TNewTextMetricH`W TNewTextMetric`WH  $(H,H-H.H/01234`8`<`@`DW TFontSignature@Y `xY `Y TFontSignature@YYYY TNewTextMetricEx` Z TNewTextMetricEx Z`8YZH`Z FontEnumProcMELogFont8YMetricFontType(DataZFontEnumExProcxPELogFontZMetricFontType(Data[MonitorEnumProcH(hMonitor0& hdcMonitor`( lprcMonitor(dwData[ tagWNDCLASSEXAP\ tagWNDCLASSEXA\P ``&' '( (0H8H@'H8\ PWndClassExA] ] tagWNDCLASSEXWP@] tagWNDCLASSEXW@]P ``&' '( (08@'Hx] PWndClassExWX^`^ tagWNDCLASSAH^ tagWNDCLASSA^H `&' '( (0H8H@^ PWndClassAx__ tagWNDCLASSWH_ tagWNDCLASSW_H `&' '( (08@_ PWndClassW`` tagMSG0` tagMSG`0'`((` $`PMsghapa TCreateParamsa @@Ha TCreateParamsa H`` ' (x_0axa TIconInfo b TIconInfob ``''c PIconInfopcxc TTimerProc'hWnd`uMsgidEvent`dwTimec TLMTimer c TLMTimerc `(0dPClipboardFormatdTClipboardRequestEvent$selfPointerRequestedFormatIDQWordDataTStreamHdTClipboardTypectPrimarySelectionctSecondarySelection ctClipboardLCLType8eeYeleeYeleee eeTPredefinedClipboardFormatpcfText pcfBitmap pcfPixmappcfIcon pcfPicturepcfMetaFilePict pcfObject pcfComponent pcfCustomDataLCLType(f ]fffqfffyfgfUffUf]fgfqfyfffffHg H fgTListChangeEvent$selfPointerPtrPointerAnActionTListNotificationgTListWithEvent@hTListWithEvent `LCLTypexh TNMListView<h TNMListViewh<*` `$`(,(4h PNMListViewii TStockFontsfSystemsfHintsfIconsfMenuLCLTypeiiiiijiiii@j@ll`ۄP݄4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T0[`TTTT[ڄބ0[[[0[P[[p[ [0[[[ TCommonDialogpjPloPo`\P݄4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T`[`TTTT \ڄބ0[[[0[P[[p[ [0[ \[ \0 \ \\\ TFileDialogl oqq`\P݄4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T \`TTTT \ڄބ`\@ \[0[P[[p[ [0[0"\[ \0 \ \\\ \\`\P\"\"\ TOpenDialog(oqHtXt`\P݄4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T$\`TTTT$\ڄބ`\@$\[0[P[[p[ [0[0"\[ \0 \ \\\ \\`\P\"\"\ TSaveDialogqqvw`\P݄4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T &\`TTTT'\ڄބ`\(\[0[P[[p[ [0[0"\[ \0 \ \\\ \\'\P\"\"\TSelectDirectoryDialoghtl8yHy[P݄4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T [`TTTT[ڄބ0[[[0[P[[p[ [0[[[ TColorDialogw`X6]P݄4CT9C9C a9C7C8C0AC@ACPAC```T`TTPT`TpT \fTA]T`0`ЅT`TTT TTTT T3]`Tpa0aTB]ڄa```PCa0~````Ў` `@`}`_a*`+`+`,```6f`Ba`0`0_p_ ` ?`P8a9a0/`O`P`P`S`S``Щ`p__`````_``_08` _ -` _,`,`;`0_`P`C]@7`7`7`PY`PZ``RfSfTfcfdf4f```P`AaP_ `` )fa ap_0>`P`М`0``@U``X`C``_aB`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I```A]"`>]0f@/f<`P```0` @`@`@`p_``Б``p`%a&a'a #`p/a``` ````_@``a```p`X`|`````0a`a0`P1`R`@ a0````P]B]`9] TColorButtonXy lЂ\P݄4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T\`TTTT@\ڄބ0[p\[0[P[[p[ [0[[[\ TFontDialogHlXxh^\P݄4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T\\`TTTT[ڄބ0[@a\K\ L\P[[_\ [0[[[L\ M\ R\pR\R\S\U\Y\ TFindDialogHp^\P݄4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T\`TTTT[ڄބ0[p\K\ L\P[[_\ [0[[[L\ M\ R\pR\R\\\\TReplaceDialogxl(H`ۄP݄4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T0[`TTTT[ڄބ0[[[0[P[[p[ [0[[[TCustomPrinterSetupDialogl`ۄP݄4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT Tc]`TTTT[ڄބ0[[[0[P[[p[ [0[[[TCustomPrintDialogX؁PQ]P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT TN]`TTTTR]0]]^]0^]TCustomTaskDialogH@ pSP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]TSSSpSSSПS`SSPSSPSTTaskDialogButtons@0@ P0SP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]TS`TSSb]`SSp`]TTaskDialogBaseButtonItem@X(0SP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]TS`TSSb]`SSK]TTaskDialogButtonItem`@Xȓ0SP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]TS`TSSb]`SS0I]TTaskDialogRadioButtonItemȔp1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTTaskDialogButtonsEnumeratorȖؖQ]P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT TN]`TTTTR]0]]^]0^] TTaskDialog@0(DP݄4CT0^DD9C7C8C0AC@ACPAC```T`TTD`TpT@}ET@DT`0`ЅT`TTT TTTT T}E`Tpa0aT@|EڄvE``pD`PE^``Ў` `@`E_a`^+`+`P^``DDD`D0_^_ ?`P8a9a@^^PDP``D^@F_F_p__E```@E@$_`E^ _ -` _,`,`;`0_`PE`x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`D` E_@_`@^p_B`pD`D`P\`^`0_`]`_`_` E@ EF`G`I`DE@EDp`J`<`xE``0` @`@`@`p_u^v^@w^IE_%a&aE #`p/a`^D ````_@``a``D=_`<_|`^```0a_apDPD0^`^0`_``P]    K   @phpppp   UUUUTCDWSEventCapabilitycdecWSPerformsDoShowcdecWSPerformsDoCanClosecdecWSPerformsDoClosecdecWSNOCanCloseSupportDialogs \uGG\uTCDWSEventCapabilities(TDialogResultEvent$selfPointerSenderTObjectSuccessBoolean ` TCommonDialog TCommonDialogpjDialogs0OnClose@0 OnCanClose0OnShow0 HelpContext"[Title TFileDialog(P TFileDialoglHDialogs"[Title \4 DefaultExt(8FileName0 8Filter @ \ 6 FilterIndex(( 0 InitialDir00 0 OnHelpClicked@@ 0 OnTypeChange TOpenOption ofReadOnlyofOverwritePromptofHideReadOnly ofNoChangeDir ofShowHelp ofNoValidateofAllowMultiSelectofExtensionDifferentofPathMustExistofFileMustExistofCreatePrompt ofShareAwareofNoReadOnlyReturnofNoTestFileCreateofNoNetworkButton ofNoLongNamesofOldStyleDialogofNoDereferenceLinksofNoResolveLinksofEnableIncludeNotifyofEnableSizingofDontAddToRecentofForceShowHidden ofViewDetail ofAutoPreviewDialogsO `+ P0 |  @ oBp +@P`o|0BO TOpenOptionsh TOpenDialogx TOpenDialog(oDialogspp0OptionsPP0OnFolderChange``0OnSelectionChange TSaveDialog TSaveDialogqDialogsTSelectDirectoryDialog@TSelectDirectoryDialoghtDialogs TColorDialog TColorDialogwH Dialogs"[Title0Color[4 CustomColors TColorButton TColorButtonXyHx8Dialogs*!@:ActionHx8Align|`Anchors \!f4 AllowAllUpp``4 BorderSpacingp8]4 BorderWidth t8]8]ButtonColorAutoSizexB]4ButtonColorSize|@7]4 ButtonColor0 ColorDialog(0`4 Constraints"0``a+`CaptionH (Color ]!f4Down P`Enabled `P#f4Flatx``0`Font0`$f 4 GroupIndex"X`` HinteLYf!4LayoutP&f"4MarginT(f#4Spacing af0Zf$5 Transparent ``%Visible&0OnClick'0OnColorChanged  (0 OnDblClick)0 OnMouseDown*0 OnMouseEnter+0 OnMouseLeave,0 OnMouseMove-0 OnMouseUpP.0 OnMouseWheel/0OnMouseWheelDown00OnMouseWheelUp10OnPaint@@20OnResize30OnChangeBounds `0`4ShowHint `54 ParentFont `64ParentShowHint`76 PopupMenuTFontDialogOption fdAnsiOnlyfdTrueTypeOnly fdEffectsfdFixedPitchOnlyfdForceFontExist fdNoFaceSel fdNoOEMFontsfdNoSimulations fdNoSizeSel fdNoStyleSelfdNoVectorFonts fdShowHelp fdWysiwyg fdLimitSizefdScalableOnly fdApplyButtonDialogs$>HY jv  / $/>HYjvTFontDialogOptionsp TFontDialog TFontDialogH Dialogs"[Title\4Font0 MinFontSize 0 MaxFontSize 0Options 0OnApplyClicked 0 PreviewText TFindOptionfrDown frFindNextfrHideMatchCasefrHideWholeWord frHideUpDown frMatchCasefrDisableMatchCasefrDisableUpDownfrDisableWholeWord frReplace frReplaceAll frWholeWord frShowHelp frEntireScopefrHideEntireScopefrPromptOnReplacefrHidePromptOnReplacefrButtonsAtBottomDialogs  ]k} / 9 R F /9FR]k} TFindOptionsP TFindDialog8@x TFindDialogH DialogsM\N\5FindTextp O\4Options 0OnFind(( 0 OnHelpClickedTReplaceDialogTReplaceDialogx DialogsI\J\ 5 ReplaceText 0 OnReplaceTCustomPrinterSetupDialogTCustomPrinterSetupDialogHDialogs TPrintRange prAllPages prSelection prPageNums prCurrentPageDialogs8VxmaVamxTPrintDialogOption poPrintToFile poPageNums poSelection poWarningpoHelppoDisablePrintToFilepoBeforeBeginDocDialogsxc\;-FR-;FR\cxTPrintDialogOptionsHTCustomPrintDialogxTCustomPrintDialogXHDialogs   TCustomTaskDialog"p""""""PTCustomTaskDialog@DialogsTTaskDialogFlagtfEnableHyperlinkstfUseHiconMaintfUseHiconFootertfAllowDialogCancellationtfUseCommandLinkstfUseCommandLinksNoIcontfExpandFooterAreatfExpandedByDefaulttfVerificationFlagCheckedtfShowProgressBartfShowMarqueeProgressBartfCallbackTimertfPositionRelativeToWindow tfRtlLayouttfNoDefaultRadioButtontfCanBeMinimizedtfForceNonNativetfEmulateClassicStyleDialogs8 =Zt M h $ |mZm|$=Mht TTaskDialogFlags` TTaskDialogCommonButtontcbOktcbYestcbNo tcbCanceltcbRetrytcbCloseDialogs      X TTaskDialogCommonButtons TTaskDlgClickEvent$selfPointerSenderTObject AModalResult TModalResult ACanCloseBooleann  TTaskDialogIcontdiNone tdiWarningtdiErrortdiInformation tdiShield tdiQuestionDialogs`      0 TTaskDialogButtonsp TTaskDialogButtonsDialogs TTaskDialogBaseButtonItem"( TTaskDialogBaseButtonItemDialogs"(b]4Caption `b]@c]5Default@TTaskDialogButtonItemTTaskDialogButtonItem`Dialogsn 880 ModalResult(TTaskDialogRadioButtonItemTTaskDialogRadioButtonItemDialogsTTaskDialogButtonsEnumerator(TTaskDialogButtonsEnumeratorDialogsp TTaskDialog TTaskDialog0Dialogs h@_]4Buttons"pp0Caption xx 0 CommonButtons ||0 DefaultButton"0ExpandButtonCaption"0 ExpandedText 0Flags  0 FooterIcon" 0 FooterText  0MainIcon _] 4 RadioButtons" 0Text"0Title"0VerificationText0WidthX 0OnButtonClicked ( (TCustomCopyToClipboardDialogTCustomCopyToClipboardDialogoDialogs0 x   TSelectDirOpt sdAllowCreatesdPerformCreatesdPromptDialogs(6F`(6FTSelectDirOptsXTInputCloseQueryEvent$selfPointerSenderTObjectAValues AnsiString $highAVALUESInt64 ACanCloseBoolean  AnsiStringȸDialogsDialogsȸDialogs0 AnsiString` AnsiString AnsiString AnsiString @ p (@ TBitBtnAccess8PwLDialogsTFindDialogFormoDialogsTReplaceDialogFormXoDialogs@TDummyEditListDialogsxDialogsTDummyForInputpoDialogs TPromptDialog8  TPromptDialogpoDialogsh TQuestionDlg TQuestionDlgpoDialogsyA7-J&w &{37417989-8C8F-4A2D-9D26-0FA377E8D8CC}8X1%%%X_P݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpT_T``T`0`ЅT`TTT TTTT T@T_`Tpa0aTE_ڄa````^^``Ў` `@`}`_a`^+`+`P^``_` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `` `p`/_`^` _ ^P_ `@_`_a ap_^P`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``-a"``p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``P`P`М`0``@U``X`C``_aB`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``-a"``p`J`<`P```0` @`@`@`p_``Б``p`%a&a'a #`p/a``` ````_@``a```p`X`|`````0a`a0`P1`R`@ a0````P1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACxa}a|aPuayazaTDragControlObjectp=8>?1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACxa}a|ap}ayazaTDragControlObjectEx>xP<@1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACa`yaaPuayazaaaPaaa0aTDragDockObject?x@(B1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACa`yaaayazaaaPaaa0aTDragDockObjectEx@h؁hDxDTP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT TPa`TTTTCCCCCCCCCCCCC TDragManagerHBF(F^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TapaaCaaCCaaaCCCCaaaa TDockManagerDXGG^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]]T^T`T`T]]]]`]]]@]p]]]`]TSizeConstraints8FXH`H^TP3C4CP6C9C9C:C9C7C8C0AC@ACPACpa]Ta@a`TЬapa`aTControlBorderSpacingG8IIaP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]TaPa`T TAnchorSideH(  KPTP3C4CP6C9C9C:C9C7C8C0AC@ACPAC_T`_T _TБTT̅_ ͅ_ͅ____p΅΅p__ʅ_˅@˅P_p_̅@̅__TControlActionLinkJ5L`1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXELayoutExceptionKxMh_P3C4CP6C9C9C:C9C7C8C0AC@ACPAC____`___TLazAccessibleObjectL [N1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTLazAccessibleObjectEnumeratorNXPP^TP3C4CP6C9C9C:C9C7C8C0AC@ACPACa]T^Tpa`TaTControlChildSizingOP1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTWinControlEnumerator(P(1WX0X>aP݄4CT9C9C a9C7C8C0AC@ACPAC```T`TTPT`TpT`T``T`0`ЅT`TTT TTTT T`P`М`0``@U``X`C``_aB`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``-a"``p`J`<`P```0` @`@`@`p_``Б``p`%a&a'a #`p/a``` ````_@``a```p`X`|`````0a`a0`P1`R`@ a0````Pp>DKSTAnchorsh TFormStylefsNormal fsMDIChild fsMDIForm fsStayOnTopfsSplashfsSystemStayOnTopControls.9%OCX%.9COXؐTFormBorderStylebsNonebsSingle bsSizeablebsDialog bsToolWindow bsSizeToolWinControlsV;BKl_;BKV_l TBorderStylebsNonebsSingleControls(GNpGNTControlRoleForForm crffDefault crffCancelControlsޒޒ0TControlRolesForFormP TMouseButtonmbLeftmbRightmbMiddlembExtra1mbExtra2Controls(TCaptureMouseButtonsؓ` TWndMethod$selfPointer TheMessage TLMessage TControlStyleTypecsAcceptsControlscsCaptureMousecsDesignInteractive csClickEventscsFramed csSetCaptioncsOpaquecsDoubleClickscsTripleClicks csQuadClicks csFixedWidth csFixedHeightcsNoDesignVisiblecsReplicatable csNoStdEventscsDisplayDragImage csReflectorcsActionClient csMenuEvents csNoFocuscsNeedsBorderPaintcsParentBackgroundcsDesignNoSmoothResizecsDesignFixedBoundscsHasDefaultActioncsHasCancelActioncsNoDesignSelectablecsOwnedChildrenNotSelectable csAutoSize0x0csAutoSizeKeepChildLeftcsAutoSizeKeepChildTopcsRequiresKeyboardInputControls Ȗ֖9]%Fەf Gq   ͕]3  Pu0%9GP]fu͕ە  3F]qȖ֖ TControlStyle(ЙTControlStateType csLButtonDown csClicked csPalettecsReadingState csFocusing csCreating csPaintCopy csCustomPaintcsDestroyingHandle csDockingcsVisibleSetInLoadingControls *Xo} Mc4> Ț*4>MXco}X TControlStateTControlCanvasTControlCanvas1p Controls THintInfoP@X THintInfoXP 00 08<@H PHintInfopxTImageListHelperTImageListHelperT Controls؝TDragImageListTDragImageList6T ControlsHTDragImageListResolutionTDragImageListResolution9W ControlsȞ TKeyEvent$selfPointerSenderTObjectKeyWordShift TShiftState TKeyPressEvent$selfPointerSenderTObjectKeyCharHTUTF8KeyPressEvent$selfPointerSenderTObjectUTF8Key TUTF8Char" TMouseEvent$selfPointerSenderTObjectButton TMouseButtonShift TShiftStateXLongIntYLongIntؓPTMouseMoveEvent$selfPointerSenderTObjectShift TShiftStateXLongIntYLongIntTMouseWheelEvent$selfPointerSenderTObjectShift TShiftState WheelDeltaLongIntMousePosTPointHandledBoolean TMouseWheelUpDownEvent$selfPointerSenderTObjectShift TShiftStateMousePosTPointHandledBoolean XTGetDockCaptionEvent$selfPointerSenderTObjectAControlTControlACaption AnsiString TDragObject TDragObject@;Controlsȣ TDragKinddkDragdkDockControls#@#h TDragModedmManual dmAutomaticControlsФ TDragState dsDragEnter dsDragLeave dsDragMoveControls5AMp5AM TDragMessage dmDragEnter dmDragLeave dmDragMove dmDragDrop dmDragCancel dmFindTargetControlsȥ "H "TDragOverEvent$selfPointerSenderTObjectSourceTObjectXLongIntYLongIntState TDragStateAcceptBooleanh TDragDropEvent$selfPointerSenderTObjectSourceTObjectXLongIntYLongIntTStartDragEvent$selfPointerSenderTObject DragObject TDragObject8 TEndDragEvent$selfPointerSenderTObjectTargetTObjectXLongIntYLongIntTDragObjectClass8 TDragObjectEx` TDragObjectExX<ControlsTDragControlObjectЩTDragControlObjectp=ControlsTDragControlObjectExPTDragControlObjectEx>HControlsTDragDockObjectЪTDragDockObject?ControlsTDockOrientation doNoOrient doHorizontal doVerticaldoPagesControlsHvkkvTDockDropEvent$selfPointerSenderTObjectSourceTDragDockObjectXLongIntYLongInt@TDockOverEvent$selfPointerSenderTObjectSourceTDragDockObjectXLongIntYLongIntState TDragStateAcceptBoolean@h  TUnDockEvent$selfPointerSenderTObjectClientTControl NewTarget TWinControlAllowBooleanH TStartDockEvent$selfPointerSenderTObject DragObjectTDragDockObject@ TGetSiteInfoEvent$selfPointerSenderTObject DockClientTControl InfluenceRectTRectMousePosTPointCanDockBoolean0 TDrawDockImageEventSender0AOldRect0ANewRect# AOperationXTDragDockObjectExЯTDragDockObjectEx@@Controls TDragManagerH TDragManagerHB@Controls TDockManager TDockManagerDControlsTDockManagerClass (TConstraintSizePTSizeConstraintsOptionscoAdviceWidthAsMinscoAdviceWidthAsMaxscoAdviceHeightAsMinscoAdviceHeightAsMaxControlsxޱɱɱޱHTSizeConstraintsOptionsxTSizeConstraintsTSizeConstraints8FControls@@0OnChangep 8 MaxHeightp,8MaxWidthp08 MinHeightp<8MinWidthTConstrainedResizeEvent$selfPointerSenderTObjectMinWidthTConstraintSize MinHeightTConstraintSizeMaxWidthTConstraintSize MaxHeightTConstraintSizepppp0TControlCellAlignccaFill ccaLeftTopccaRightBottom ccaCenterControls^<DO<DO^TControlCellAlignsx TControlBorderSpacingDefault TControlBorderSpacingDefault  hPControlBorderSpacingDefaultTControlBorderSpacing TControlBorderSpacingG Controls 880OnChange4a`aLeftLa aTopHaaRightaaBottoma aAround00aa InnerBorderx a4CellAlignHorizontalx$a4CellAlignVertical`TAnchorSideChangeOperationascoAdd ascoRemoveascoChangeSideControlsx TAnchorSide8TControlActionLinkpTControlActionLinkJ' ControlsTControlActionLinkClassELayoutException ELayoutExceptionKControls`TControlAutoSizePhasecaspNonecaspChangingPropertiescaspCreatingHandlescaspComputingBoundscaspRealizingBounds caspShowingControlsɻ@ɻTControlAutoSizePhases8ؼ TTabOrderTControlShowHintEvent$selfPointerSenderTObjectHintInfo PHintInfo0TContextPopupEvent$selfPointerSenderTObjectMousePosTPointHandledBoolean  TControlFlag cfLoadingcfAutoSizeNeeded cfLeftLoaded cfTopLoaded cfWidthLoadedcfHeightLoadedcfClientWidthLoadedcfClientHeightLoadedcfBoundsRectForNewParentValidcfBaseBoundsValidcfPreferredSizeValidcfPreferredMinSizeValidcfOnChangeBoundsNeededcfProcessingWMPaintcfKillChangeBoundscfKillInvalidatePreferredSizecfKillAdjustSizeControls(Q ߾zI\bG   5o{GQbo{߾5I\zx TControlFlagsTControlHandlerType chtOnResizechtOnChangeBoundschtOnVisibleChangingchtOnVisibleChangedchtOnEnabledChangingchtOnEnabledChanged chtOnKeyDownchtOnBeforeDestructionchtOnMouseWheelchtOnMouseWheelHorzControls8 j ^|(^j|TLayoutAdjustmentPolicy lapDefaultlapFixedLayout'lapAutoAdjustWithoutHorizontalScrollinglapAutoAdjustForDPIControls|T:E:ET|TLazAccessibilityRole# larIgnore larAnimation larButtonlarCelllarChart larCheckBoxlarClocklarColorPicker larColumn larComboBox larDateFieldlarGridlarGrouplarImagelarLabel larListBox larListItem larMenuBar larMenuItemlarProgressIndicatorlarRadioButton larResizeGriplarRow larScrollBar larSpinner larTabControllarTextlarTextEditorMultilinelarTextEditorSingleline larToolBarlarToolBarButton larTrackBar larTreeView larTreeItem larUnknown larWindowControls$JWair~ @  .<CP[iq! "#@JWair~ .<CP[iqTLazAccessibleObject"8"@"HTLazAccessibleObjectLControlshTLazAccessibleObjectEnumeratorTLazAccessibleObjectEnumeratorN_Controls TBorderWidth8 TGetChildProc$selfPointerChild TComponent@XTChildControlResizeStylecrsAnchorAligningcrsScaleChildscrsHomogenousChildResizecrsHomogenousSpaceResizeControls 8 xTControlChildrenLayoutcclNonecclLeftToRightThenTopToBottomcclTopToBottomThenLeftToRightControls(XTControlChildSizingTControlChildSizingO Controls 4 a4LeftRightSpacingPa4TopBottomSpacing, a4HorizontalSpacingT a4VerticalSpacing0$a4EnlargeHorizontal0(a4EnlargeVertical0Ha4ShrinkHorizontal0L a4ShrinkVertical 0a4Layout a 4ControlsPerLineTWinControlActionLinkClassHTWinControlFlagwcfClientRectNeedsUpdatewcfColorChangedwcfFontChangedwcfAllAutoSizingwcfAligningControlswcfEraseBackgroundwcfCreatingHandlewcfInitializingwcfCreatingChildHandleswcfRealizingBoundswcfBoundsRealizedwcfUpdateShowingwcfHandleVisible!wcfAdjustedLogicalClientRectValidwcfKillIntfSetBoundswcfDesignerDeletingwcfSpecialSubControlControlsx  W,  z D i ,DWizTWinControlFlagspTControlAtPosFlagcapfAllowDisabledcapfAllowWinControlscapfOnlyClientAreas capfRecursivecapfHasScrollOffsetcapfOnlyWinControlsControls !H !TControlAtPosFlags@ TAlignInfo TAlignInfoHH HTAlignInsertBeforeEvent$selfPointerSender TWinControlControl1TControlControl2TControlBoolean HTAlignPositionEvent $selfPointerSender TWinControlControlTControlNewLeftLongIntNewTopLongIntNewWidthLongInt NewHeightLongInt AlignRectTRect AlignInfo TAlignInfoH0XTWinControlEnumeratorpTWinControlEnumerator(PControlsTGraphicControlTGraphicControlQControls0TCustomControlhTCustomControl@XHControls TImageList TImageListaxControls 0AllocBy0 BlendColor4BkColorPV p 4 DrawingStyle`4HeightW 0 ImageType 4Masked  0Scaled  4 ShareImages@ 4Width 0OnChangeZ  0OnGetWidthForPPI TControlPropertyStorageTControlPropertyStoragecЋ Controls0 TDockTreep TDockTree(f Controls TDockZone TDockZonegControlsTDockZoneClass8@TForEachZoneProc$selfPointerZone TDockZone8` TDockTreeFlagdtfUpdateAllNeededControlsTDockTreeFlags(TMouseXTMousePiControls    &HTDragManagerDefault0jControlsxTDragDockCommonxlControlsTDragPerformermControlsTDockPerformernControls( `    TAutoSizeBoxoControls XTAutoSizeCtrlDatapControlsTDockImageWindowq0 Controls0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp 0 P p  0 P p  0 P p  0 P p  0 P p 0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp(pPPÿO+;+`@@IG˸P00V ,ШШ<3X00\cM 0*6P00f+Ř+ЪЪ5 @ P xxbLȫȫ>h P((^ ~o6]h88 ЭA"P- (n``Rh00~\s  @ DppUl{~ xPPz X@Šh@@dȴg'pHH ȵ0 ˖xXX MжbW(L``(ط0,hhv8IppȌййrP(($bS xPPCiػ: xd(XXj `QrPP3Tؿ 8:mppUK(Ix@@dY(( >\XX~[p[\N @@S8 wpp XXϪ - xHp 8μH@U@@c@@nk . l8XXX(^``8 88$ q ``nQ XX'* (a``^i(. (hhrppzZ`((l+^TgX .rRޓ8u ppUt ̬h880Uhhv\wHHnxHH0 `00T  PծU @\C sXXs! HHd h00dqD @ 0$ ppi;H9 Ri P2g6"pT_ p@@X  @@DT`& `00 CQ C<xPPL SH Hxx#MxX00SH SY?0c$``nH@@SG7x@@>E`00Nn $k P:`EX 8{ppeV0eppCpHc=cE .8n./0 ppB X88bLPzX000 yVH((5HeP00U,V, jp @ @ j* \x H H j* rx X X VR Y(   <x X X 4J Z 0p P P  4H  ^% XX P  ^X88i ܢP00rZLZL@  gZpplk0DL``5+ pPPX޶SP`@@JkJP00k;S XXt @#3@$ $@G >X.7N7 x00޿j@@b H xPPRuHÂ@@Y0  p p s ! x!H!H! !!! "@"@".8#""###Nw$H$H$ϋ@%%%~v %%%. (&%%&p&p& '&&" 'X'X'C(''D's(H(H()(($7x)H)H)G))) X*(*(*u~***[ +++'I+`+`+^8+++N@, , ,0V,,,H,,,%|X-8-8-|---.--<h.H.H.X...50/..g3x/X/X//// 00000h0h0]000~ X10101111}J 211S 2`2`2EV222t @333"Qc 333 + 433nm74P4P4nm2444U<@5 5 5gK555Uͭ 6554ux6P6P6D666םH7 7 7=777=(877%8h8h8 888ćh9@9@9% M999'U 8:::t:x:x:DgL;::nm2;P;P;/;;;P<(<(<R<<< =<< =`=`=R===ތ<>H>H>n=>>>4h?@?@?MW ???(@@@ @X@X@c@@@VA8A8ABAAc8H@cP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`Tcpccppc cccccptc@ucuc0vccc`ccccc0pccccГc cc`cc cccccc`c`cc0@pp p `@0 c cyc0~c@cc`cccpccPcc{cp|c@cc0c`zcc@cc cc0ccpcPcPcPc`c0c0cwc qcPrc@scc0ccccccpcpccc0cPcc ccccc c`cTCanvash8GPbP3C4CP6C9C9C:C9C7C8Cb@ACPAC]Tpb^T|b`Tbbbbbb0bbb`bbbbpbb@bPbb b@+b0'bbpb (b "b b`#b#bbpbP$b$bPb`b&b'b`b@bCbCCCCb bCCCCCCbCCCCbCCPbCCCЗbbC TRasterImagex(!8!bP3C4CP6C9C9C:C9C7C8Cb@ACPAC]Tpb^TPb`T@bbbbbbbbb`bbbbpbb@bPbbb b0'bbpb (b "b b`#b#bbpbP$b$bPb`b&b'bbbbbb@bbb b bbb`bb@bbbbbCbb bCbbPb bЗbbPb TCustomBitmapxQ$$bP3C4CP6C9C9C:C9C7C8Cb@ACPAC]Tpb^TPb`T@bbbbbpdbbb`bbbbpbb@bPbbbd0'bbpb (b "b b`#b#bbpbP$b$bPbd@ddbbbbb@bbb`d bbb`bb@bbbbbdbb bdbbPb bЗbdPb0ddddddTBitmapH!xQ' 'bP3C4CP6C9C9C:C9C7C8Cb@ACPAC]Tpb^TPb`T@bbbbbpdbbb`bbbbpbb@bPbbbc0'bbpb (b "b b`#b#bbpbP$b$bPb`bcdbbbbb@bbbPc bbb`bb@bbbbbdbb bdbbPb bЗbbPb ccddddTPixmap$x[8+@+PbP3C4CP6C9C9C:C9C7C8Cb@ACPAC]Tpb^T`"d`Tbbbbbb2d4db`bb0@dbpbNd@bPb,d+d6d0'bbpb (b7d9d`#b#bbpbP$b$bPbphd 0d'b ?d@b`0db1d 3d3d4d05d bPiddЗbbJd1d idgd Vd %dPjdTIcon'xQ.h.bP3C4CP6C9C9C:C9C7C8Cb@ACPAC]Tpb^TPb`T@bbbbbpdbbb`bbbbpbb@bPbbbd0'bbpb (b "b b`#b#bbpbP$b$bPb`bccbbbbb@bbb`c bbb`bb@bbbbbdbb bdbbPb bЗbbPb0cPdddddTPortableNetworkGraphicP+xQ12bP3C4CP6C9C9C:C9C7C8Cb@ACPAC]Tpb^TPb`T@bbbbbpdbbb`bbbbpbb@bPbbbd0'bbpb (b "b b`#b#bbpbP$b$bPb`b@ddbbbbb@bbbd bbb`bb@bbbbbdbb bdbbPb bЗbbPbddddddTPortableAnyMapGraphic.hQ`5`p5bP3C4CP6C9C9C:C9C7C8Cb@ACPAC]Tpb^TPb`T@bbbbbpdbbb`bbbbpbb@bPbdbd0'bbpb (b "b b`#b#bbpbP$b$bPb`bp ddbbbbb@bbb d bbb`bb@bbbbbdbb bdbbPb bЗbbPb d d@ d d dd TJpegImage 2Q8Ж8bP3C4CP6C9C9C:C9C7C8Cb@ACPAC]Tpb^TPb`T@bbbbbpdbbb`bbbbpbb@bPbdbd0'bbpb (b "b b`#b#bbpbP$b$bPb`bddbbbbb@bbbd bbb`bb@bbbbbdbb bdbbPb bЗbbPbdC@dd@dd TGIFImage589:9^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TbPbTGraphicsObjectb8x`:@ P3C4CP6C9C9C:C9C7C8C0AC@ACPACTFontHandleCacheDescriptor :Xh< P3C4CP6C9C9C:C9C7C8C0AC@ACPAC c"cTFontHandleCache;`K=(=`cP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^TCc`T`\cZc0[cp[c0_c pc?cPYc`Nc`Zc_cHcTFont(<X`> Ș P3C4CP6C9C9C:C9C7C8C0AC@ACPACTPenHandleCacheDescriptor=Xh?P3C4CP6C9C9C:C9C7C8C0AC@ACPACbbTPenHandleCache>p0M0Aؙ8A`bP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^Tb`Tc0cpcPc @`b@bbb cbcTPen?hp8BXP3C4CP6C9C9C:C9C7C8C0AC@ACPAC cTBrushHandleCacheHANCCCcP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^Tc`TPcccpc @ c` cpcTBrushcXB@:DDcP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^TPc`TbPbTRegionCH G0G^TP3C4CP6C9C9C:C9C7C8Cb@ACPAC]Tpb^Tb`TbbCCC&b0bCC`bbbCpbCC*bbPb@+b0'bCb (b "b b`#b#bbCP$b$b@%b`b&b'bTGraphicE@PHx`HLbP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@Mb`ob^Tpdb`T`hbhbfbTPicture@G5@I1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEGraphicExceptionpHXI0J`1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEInvalidGraphic`IXIK1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEInvalidGraphicOperationHJ L1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACCC TSharedImage@K(0L8MtbP3C4CP6C9C9C:C9C7C8C0AC@ACPACvbubPvbvbpsbCTSharedRasterImage8LHPMXNȣpxbP3C4CP6C9C9C:C9C7C8C0AC@ACPACPybzbPvb{bvbCTSharedCustomBitmapXMx@!QQbP3C4CP6C9C9C:C9C7C8Cb@ACPAC]Tpb^TPb`T@bbbbbpdbbb`bbbbpbb@bPbbbd0'bbpb (b "b b`#b#bbpbP$b$bPb`bddbbbbb@bbb b bbb`bb@bbbbbdbb bdbbPb bЗbbPbCCddddTFPImageBitmapxNHpNRhpxbP3C4CP6C9C9C:C9C7C8C0AC@ACPACPybzbPvb{bvbC TSharedBitmapQHpNSؤpxbP3C4CP6C9C9C:C9C7C8C0AC@ACPACPybzbPvb{bvbC TSharedPixmapRHpNUXpxbP3C4CP6C9C9C:C9C7C8C0AC@ACPACPybzbPvb{bvbCTSharedPortableNetworkGraphicTHpN0VpxbP3C4CP6C9C9C:C9C7C8C0AC@ACPACPybzbPvb{bvbCTSharedPortableAnyMapGraphic0UX0WhPdP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@d TIconImageXV0PMXX`dP3C4CP6C9C9C:C9C7C8C0AC@ACPACdubPvb0dpdCdd TSharedIconHWx[[PbP3C4CP6C9C9C:C9C7C8Cb@ACPAC]Tpb^T`"d`Tbbbbbb2d4db`bb0@dbpbNd@bPb,d+d6d0'bbpb (b7d9d`#b#bbpbP$b$bPb`b 0d'b ?d@b`0db1d 3d3d4d05d b`5ddЗbbJd1d4d5d Vd %d;d TCustomIconpX \\SP3C4CP6C9C9C:C9C7C8C0AC@ACPACPSodSS TIcnsList[0hX]`dP3C4CP6C9C9C:C9C7C8C0AC@ACPACdubPvb0dpdCddTSharedIcnsIcon\x[HaXaydP3C4CP6C9C9C:C9C7C8Cb@ACPAC]Tpb^T`"d`Tbbbbbb2d4db`bbydbpbNd@bPbpwd+dd0'bbpb (b7d9d`#b#bbpbP$b$bPb`bpd'b ?d@b`0db1d 3d3d4d@wd b`5ddЗbbJd1d4d5d Vd %d;d TIcnsIcon^0hXxb`dP3C4CP6C9C9C:C9C7C8C0AC@ACPACdubPvb0dpdCddTSharedCursorImagehaP@WpcxPdP3C4CP6C9C9C:C9C7C8C0AC@ACPACPdTCursorImageImagebx[ffPbP3C4CP6C9C9C:C9C7C8Cb@ACPAC]Tpb^T`"d`Tbbbbbb2d4db`bb0@dbpbNd@bPb,d+dd0'bbpb (b7d9d`#b#bbpbP$b$bPbPdd'b ?d@b`0db1d 3d3d4d d bddЗbbJdddPd Vd %dd TCursorImagecHpNg`pxbP3C4CP6C9C9C:C9C7C8C0AC@ACPACPybzbPvb{bvbCTSharedJpegImagefHpNiثpxbP3C4CP6C9C9C:C9C7C8C0AC@ACPACPybzbPvb{bvbCTSharedTiffImageh(QplجlbP3C4CP6C9C9C:C9C7C8Cb@ACPAC]Tpb^TPb`T@bbbbbpdbbb`bbbbpbb@bPbdbd0'bbpb (b "b b`#b#bbpbP$b$bPb`bddbbbbb@bbbd bbb`bb@bbbbbdbb bdbbPb bЗbbPbd dPdd0dd TTiffImage0iHpNmpxbP3C4CP6C9C9C:C9C7C8C0AC@ACPACPybzbPvb{bvbCTSharedGIFImagelPrrbP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`Tcpccppc cccccptc@ucuc0vccc`ccccc0pccccГc cc`cc cccccc`c`cc0@pp p `@0 c cyc0~c@cb`cccpccPcc{cp|c@cc0c`zcc@cc cc0ccpcPcPcPc`c0c0cwc qcPrc@scc0ccccccpcpccc0cPcc ccccc c`c TBitmapCanvasm sȱsSP3C4CP6C9C9C:C9C7C8C0AC@ACPACPS Sp5bSTPicFileFormatsListr tuSP3C4CP6C9C9C:C9C7C8C0AC@ACPACPS SpDbSTPicClipboardFormatst0`|Hvx1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC=S9S9S9S9S@:SP:Sdp9S:SdHS THeaderStreamu0wdP3C4CP6C9C9C:C9C7C8C0AC@ACPACTPatternBitmap`vx`dP3C4CP6C9C9C:C9C7C8C0AC@ACPACTPatternBitmapCacheHwdefault  HHhBBBMBC8C`CCCCD0D`DDDDE(EXEEEEEF(FPFpFFFFF G@GhGGGGGH@H `HHHHI0IPIxIIIIJ @J hJ J J JK8K`KKKKL0LXLLLLL(M`M MMdMM,N0NPNXxNN NNO(OXPO xO     PNG  PColor TFontPitch fpDefault fpVariablefpFixedGraphicsH TFontDataNamep TFontStylefsBoldfsItalic fsUnderline fsStrikeOutGraphics  TFontStyles؀PTFontStylesbase؀x TFontCharSet TFontQuality fqDefaultfqDraftfqProoffqNonAntialiased fqAntialiased fqCleartypefqCleartypeNaturalGraphicsȁ ,X , TFontData@ TFontData@p& P<8 TTextLayouttlToptlCentertlBottomGraphics ( X TTextStyle TTextStyle h      TFillMode fmAlternate fmWindingGraphics؅ TCanvasStates csHandleValid csFontValid csPenvalid csBrushValid csRegionValidGraphics eN@Zr@NZer TCanvasStateTCanvasOrientation csLefttoRight coRighttoLeftGraphics@sees TPixelFormatpfDevicepf1bitpf4bitpf8bitpf15bitpf16bitpf24bitpf32bitpfCustomGraphics %-5=X%-5=ЈTTransparentModetmAutotmFixedGraphics(KRpKRTCanvasTAntialiasingMode amDontCareamOnamOffGraphics$@$pTBrushXBiGraphics c4Color8hX@8StyleTFont(<a Graphics @icpic5CharSetWc 4Color@pc@SclcHeightXc@PlcName YcP9 OrientationppcPc5PitchPt fc4QualityPcH9SizeppcUc5Style(TPen?xgGraphicspb4Color tc4Cosmeticfh`8EndCapflh8 JoinStyleXd`@8ModebXP8Style\H8WidthTGraphicsObject8GraphicsTRegionC؎GraphicsTCanvasa Graphics 80c4AntialiasingMode H8 AutoRedraw (pc4Brush 0CopyMode @c4FontP>HeightЃc4Pen`c4Region`>Width 0OnChange 0 OnChangingTGraphicx TRasterImageTGraphicEGraphics TRasterImageGraphicsTRasterImageClassHP TCustomBitmapx TCustomBitmapHGraphicsTCustomBitmapClassTFPImageBitmapTBitmapHTFPImageBitmapxNGraphicsTBitmapH!GraphicsTPixmapTPixmap$Graphics  TCustomIconPTIcon TCustomIconpXHGraphicsTIcon'GraphicsTPortableNetworkGraphic TPortableNetworkGraphicP+GraphicshTPortableAnyMapGraphicTPortableAnyMapGraphic.Graphics TJpegImage( TJpegImage 2Graphics` TGIFImage TGIFImage5GraphicsЖTGraphicsObjectTFontHandleCacheDescriptorp@TFontHandleCacheDescriptor :pGraphicsTFontHandleCacheTFontHandleCache;Graphics TFontX TPenPattern`GraphicsTPenHandleCacheDescriptorPȘTPenHandleCacheDescriptor=pGraphics TPenHandleCache`TPenHandleCache>GraphicsTPenxؙTBrushHandleCacheTBrushHandleCacheHAGraphicsXTBrushTRegionCombineModergnAndrgnCopyrgnDiffrgnOrrgnXORGraphics hTRegionOperationType rgnNewRect rgnCombineGraphicsқǛǛқ TRegionOperation$8 TRegionOperation8$ 0xTRegionOperations$pGraphicsTRegionOperations$GraphicsHTRegion  ( TGraphicClass TPicture@TPicture@GGraphicsxEGraphicExceptionEGraphicExceptionpHGraphicsEInvalidGraphic EInvalidGraphic`IGraphics`EInvalidGraphicOperationEInvalidGraphicOperationHJGraphicsTGradientDirection gdVertical gdHorizontalGraphics PEpEP TLCLTextMetric TLCLTextMetric TDefaultColorTypedctBrushdctFontGraphicsHlulu TSharedImageء TSharedImage@KGraphicsTBitmapHandleTypebmDIBbmDDBGraphicsHrllrTSharedRasterImageآTSharedRasterImage8L@GraphicsTSharedRasterImageClassPXTSharedCustomBitmapTSharedCustomBitmapXMPGraphicsȣTFPImageBitmapClass TSharedBitmap0 TSharedBitmapQGraphicsh TSharedPixmap TSharedPixmapRGraphicsؤTSharedPortableNetworkGraphicTSharedPortableNetworkGraphicTGraphicsXTSharedPortableAnyMapGraphicTSharedPortableAnyMapGraphic0UGraphics TIconImage0 TIconImageXVGraphicshTIconImageClass TSharedIconȦ TSharedIconHWPGraphics TIconDirEntry8hGraphicsphGraphics TIcnsRecЧ TIcnsRecЧPIcnsRecHP TIcnsListp TIcnsList[`GraphicsTSharedIcnsIconبTSharedIcnsIcon\0Graphics TIcnsIconP TIcnsIcon^GraphicsTSharedCursorImageTSharedCursorImageha0GraphicsTCursorImageImage8TCursorImageImagebGraphicsx TCursorImage TCursorImagecGraphicsTSharedJpegImage TSharedJpegImagefGraphics`TSharedTiffImageTSharedTiffImagehGraphicsث TTiffUnit tuUnknowntuNonetuInch tuCentimeterGraphicsD=6,h,6=D TTiffImagexج TTiffImage0iGraphicsTSharedGIFImageȭTSharedGIFImagelGraphicsTGetColorStringProc$selfPointers AnsiString@ TWeightMapEntry خ  @!TOnLoadGraphicFromClipboardFormatDeste ClipboardTypeFormatIDpTOnSaveGraphicToClipboardFormatSrce ClipboardTypeFormatIDTOnGetSystemFontp&P x 0& ذ TBitmapCanvasmp Graphics P5&@ TPicFileFormatpTPicFileFormatsListr`GraphicsȱTPicClipboardFormatst`Graphics TExtPenAndPattern( H TLogFontAndNameH@GraphicsGraphicsGraphicsH THeaderStreamuHGraphicsxTPatternBitmap`vGraphicsTPatternBitmapCacheHwGraphics @@PHeP݄4CT9C9CT9C7C8C0AC@ACPACeTT`TT@e`TpTЂTTeTTTeTTTT TTTT T@e`TTTT eڄބ e@ePeeeeeeeTMenu= eEP e(P@ %eP݄4CT9C9CT9C7C8C0AC@ACPACteTT`TT01e`TpTJeT@KeTT`ceQeieTTT TTTT Tpe`T`*epLeTteڄTe4e+e,e7e@"eHe(eCe;eCeEeLep0eNeeDeKe`]eQe0Se TMenuItem*e5x1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX EMenuError((  ػpPTP3C4CP6C9C9C:C9C7C8C0AC@ACPACeT`eT eTБTTeeeeͅeͅ΅ee eePee0eee˅eeeeeTMenuActionLink1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTMenuItemEnumerator@eP3C4CP6C9C9C:C9C7C8C0AC@ACPACTMergedMenuItems(pоSP3C4CP6C9C9C:C9C7C8C0AC@ACPACPSeSS TMenuItemsнxeP݄4CT9C9CT9C7C8C0AC@ACPACeTT`TT@e`TpTЂTTeTTTeTTTT TTTT T@ye`TTTTweڄބ e@ePeexeeeee TMainMenu xHX}eP݄4CT9C9CT9C7C8C0AC@ACPACeTT`TT@e`TpTЂTTeTTTeTTTT TTTT T |e`TTTT{eڄބ e@ePeeeeeee{epe0e TPopupMenubTMenuTGlyphShowMode gsmAlwaysgsmNevergsmApplication gsmSystemMenus$3P$3TMenuDrawItemEvent$selfPointerSenderTObjectACanvasTCanvasARectTRectAStateTOwnerDrawStatep02TMenuMeasureItemEvent$selfPointerSenderTObjectACanvasTCanvasAWidthLongIntAHeightLongIntph TMenuItemMenus!2eP2e5Action FBe4 AutoCheck"x^e>eCaption G_e>eChecked H `e4Default IP`e0?eEnabled7e0aePke4 ShortCutKey2 Cfe4ShowAlwaysCheckableT 0ge4 SubMenuImages8he4SubMenuImagesWidth DkeBeVisible0OnClick`0 OnDrawItem0 OnMeasureItemTMenu( Menusp epeBidiMode e4ParentBidiMode<ItemsT  e4Images e4 ImagesWidth 0 OwnerDraw`0 OnDrawItem 0 OnMeasureItem TMenuItem"x" EMenuError@ EMenuError(MenusxTMenuChangeEvent$selfPointerSenderTObjectSource TMenuItemRebuildBoolean TMenuActionLink0TMenuActionLink' MenuspTMenuActionLinkClassTMenuItemEnumeratorTMenuItemEnumeratorMenusTMenuItemHandlerType mihtDestroyMenusHooTMergedMenuItemsTMergedMenuItemsMenus TMenuItems8 TMenuItemsн`MenuspTMenuItemClass TFindItemKind fkCommandfkHandle fkShortCutMenus@ TMainMenuh TMainMenu Menus( 0OnChangeTPopupAlignmentpaLeftpaRightpaCenterMenus9*1X*19 TTrackButton tbRightButton tbLeftButtonMenus( TPopupMenuH TPopupMenuMenusP 0 Alignment  0 AutoPopup {e`{e 5 HelpContext 0 TrackButton0OnPopup0OnClose(9eP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@epeeee@eВeeeeeeePeee@e@epeeepee0eTThemeServiceseUUUUTThemedElementteButtonteClock teComboBoxteEdit teExplorerBarteHeader teListViewteMenutePage teProgressteRebar teScrollBarteSpin teStartPanelteStatusteTab teTaskBand teTaskBar teToolBar teToolTip teTrackBar teTrayNotify teTreeviewteWindowThemes "+6= D O W c jw "+6=DOWcjw  TThemedButtontbButtonDontCare tbButtonRoottbPushButtonNormaltbPushButtonHottbPushButtonPressedtbPushButtonDisabledtbPushButtonDefaultedtbRadioButtonUncheckedNormaltbRadioButtonUncheckedHottbRadioButtonUncheckedPressedtbRadioButtonUncheckedDisabledtbRadioButtonCheckedNormaltbRadioButtonCheckedHottbRadioButtonCheckedPressedtbRadioButtonCheckedDisabledtbCheckBoxUncheckedNormaltbCheckBoxUncheckedHottbCheckBoxUncheckedPressedtbCheckBoxUncheckedDisabledtbCheckBoxCheckedNormaltbCheckBoxCheckedHottbCheckBoxCheckedPressedtbCheckBoxCheckedDisabledtbCheckBoxMixedNormaltbCheckBoxMixedHottbCheckBoxMixedPressedtbCheckBoxMixedDisabledtbGroupBoxNormaltbGroupBoxDisabled tbUserButtonThemes!xN8apzeA.QS   7  !.AQez7Sp8NaxP TThemedClocktcClockDontCare tcClockRoot tcTimeNormalThemesPooTThemedComboBoxtcComboBoxDontCaretcComboBoxRoottcDropDownButtonNormaltcDropDownButtonHottcDropDownButtonPressedtcDropDownButtonDisabledThemes"5[Do"5D[o TThemedEdit teEditDontCare teEditRootteEditTextNormal teEditTextHotteEditTextSelectedteEditTextDisabledteEditTextFocusedteEditTextReadOnlyteEditTextAssist teEditCaretThemesH fufuTThemedExplorerBar tebExplorerBarDontCaretebExplorerBarRoottebHeaderBackgroundNormaltebHeaderBackgroundHottebHeaderBackgroundPressedtebHeaderCloseNormaltebHeaderCloseHottebHeaderClosePressedtebHeaderPinNormaltebHeaderPinHottebHeaderPinPressedtebHeaderPinSelectedNormaltebHeaderPinSelectedHottebHeaderPinSelectedPressedtebIEBarMenuNormaltebIEBarMenuHottebIEBarMenuPressedtebNormalGroupBackgroundtebNormalGroupCollapseNormaltebNormalGroupCollapseHottebNormalGroupCollapsePressedtebNormalGroupExpandNormaltebNormalGroupExpandHottebNormalGroupExpandPressedtebNormalGroupHeadtebSpecialGroupBackgroundtebSpecialGroupCollapseSpecialtebSpecialGroupCollapseHottebSpecialGroupCollapsePressedtebSpecialGroupExpandSpecialtebSpecialGroupExpandHottebSpecialGroupExpandPressedtebSpecialGroupHeadThemes!%<iO  *  Bq^6Re +P%<Oi*B^q6Re+ TThemedHeader thHeaderDontCare thHeaderRootthHeaderItemNormalthHeaderItemHotthHeaderItemPressedthHeaderItemLeftNormalthHeaderItemLeftHotthHeaderItemLeftPressedthHeaderItemRightNormalthHeaderItemRightHotthHeaderItemRightPressedthHeaderSortArrowSortedUpthHeaderSortArrowSortedDownThemes Qu>a  1  H 1>QauTThemedListview tlListviewDontCaretlListviewRoottlListItemNormal tlListItemHottlListItemSelectedtlListItemDisabledtlListItemSelectedNotFocus tlListGroup tlListDetailtlListSortDetail tlEmptyTextThemesh 6  %X %6 TThemedMenu*tmMenuDontCare tmMenuRoottmMenuItemNormaltmMenuItemSelectedtmMenuItemDemotedtmMenuDropDown tmMenuBarItemtmMenuBarDropDown tmChevron tmSeparatortmBarBackgroundActivetmBarBackgroundInactivetmBarItemNormal tmBarItemHottmBarItemPushedtmBarItemDisabledtmBarItemDisabledHottmBarItemDisabledPushedtmPopupBackgroundtmPopupBorderstmPopupCheckMarkNormaltmPopupCheckMarkDisabledtmPopupBulletNormaltmPopupBulletDisabledtmPopupCheckBackgroundDisabledtmPopupCheckBackgroundNormaltmPopupCheckBackgroundBitmap tmPopupGuttertmPopupItemNormaltmPopupItemHottmPopupItemDisabledtmPopupItemDisabledHottmPopupSeparatortmPopupSubmenuNormaltmPopupSubmenuDisabledtmSystemCloseNormaltmSystemCloseDisabledtmSystemMaximizeNormaltmSystemMaximizeDisabledtmSystemMinimizeNormaltmSystemMinimizeDisabledtmSystemRestoreNormaltmSystemRestoreDisabledThemesP+  ^p A 1Nn}T7q "! $#&I%2(y'b*)n}1AN^p7Tq2Iby TThemedPagetpPageDontCare tpPageRoot tpUpNormaltpUpHot tpUpPressed tpUpDisabled tpDownNormal tpDownHot tpDownPressedtpDownDisabledtpUpHorzNormal tpUpHorzHottpUpHorzPressedtpUpHorzDisabledtpDownHorzNormal tpDownHorzHottpDownHorzPressedtpDownHorzDisabledThemesH M-;fu pfu -;MXTThemedProgresstpProgressDontCaretpProgressRoottpBar tpBarVerttpChunk tpChunkVertThemes<BLT-p-<BLT TThemedRebartrRebarDontCare trRebarRoot trGripper trGripperVert trBandNormal trBandHot trBandPressedtrBandDisabled trBandCheckedtrBandHotCheckedtrChevronNormal trChevronHottrChevronPressedtrChevronDisabledtrChevronVertNormaltrChevronVertHottrChevronVertPressedtrChevronVertDisabledThemesh [r (CM'7P'7CM[hr(8TThemedScrollBar3tsScrollBarDontCaretsScrollBarRoottsArrowBtnUpNormaltsArrowBtnUpHottsArrowBtnUpPressedtsArrowBtnUpDisabledtsArrowBtnDownNormaltsArrowBtnDownHottsArrowBtnDownPressedtsArrowBtnDownDisabledtsArrowBtnLeftNormaltsArrowBtnLeftHottsArrowBtnLeftPressedtsArrowBtnLeftDisabledtsArrowBtnRightNormaltsArrowBtnRightHottsArrowBtnRightPressedtsArrowBtnRightDisabledtsThumbBtnHorzNormaltsThumbBtnHorzHottsThumbBtnHorzPressedtsThumbBtnHorzDisabledtsThumbBtnVertNormaltsThumbBtnVertHottsThumbBtnVertPressedtsThumbBtnVertDisabledtsLowerTrackHorzNormaltsLowerTrackHorzHottsLowerTrackHorzPressedtsLowerTrackHorzDisabledtsUpperTrackHorzNormaltsUpperTrackHorzHottsUpperTrackHorzPressedtsUpperTrackHorzDisabledtsLowerTrackVertNormaltsLowerTrackVertHottsLowerTrackVertPressedtsLowerTrackVertDisabledtsUpperTrackVertNormaltsUpperTrackVertHottsUpperTrackVertPressedtsUpperTrackVertDisabledtsGripperHorzNormaltsGripperHorzHottsGripperHorzPressedtsGripperHorzDisabledtsGripperVertNormaltsGripperVertHottsGripperVertPressedtsGripperVertDisabledtsSizeBoxRightAligntsSizeBoxLeftAlignThemes4 k S)<V2B-+*,1 /.0V*>%#"$372#k!o )j'>&'(R`2BVk)<Sk*>Vo'>Rj #7 TThemedSpintsSpinDontCare tsSpinRoot tsUpNormaltsUpHot tsUpPressed tsUpDisabled tsDownNormal tsDownHot tsDownPressedtsDownDisabledtsUpHorzNormal tsUpHorzHottsUpHorzPressedtsUpHorzDisabledtsDownHorzNormal tsDownHorzHottsDownHorzPressedtsDownHorzDisabledThemes ud  S 7 ( C (7CSduTThemedStartPaneltspStartPanelDontCaretspStartPanelRoot tspUserPanetspMoreProgramstspMoreProgramsArrowNormaltspMoreProgramsArrowHottspMoreProgramsArrowPressed tspProgListtspProgListSeparator tspPlacesListtspPlacesListSeparator tspLogOfftspLogOffButtonsNormaltspLogOffButtonsHottspLogOffButtonsPressedtspUserPicture tspPreviewThemes@ = ^ Gr  &dzdz&=G^r TThemedStatustsStatusDontCare tsStatusRoottsPane tsGripperPane tsGripperThemes( { m f H Y H Y f m {  TThemedTab+ ttTabDontCare ttTabRootttTabItemNormal ttTabItemHotttTabItemSelectedttTabItemDisabledttTabItemFocusedttTabItemLeftEdgeNormalttTabItemLeftEdgeHotttTabItemLeftEdgeSelectedttTabItemLeftEdgeDisabledttTabItemLeftEdgeFocusedttTabItemRightEdgeNormalttTabItemRightEdgeHotttTabItemRightEdgeSelectedttTabItemRightEdgeDisabledttTabItemRightEdgeFocusedttTabItemBothEdgeNormalttTabItemBothEdgeHotttTabItemBothEdgeSelectedttTabItemBothEdgeDisabledttTabItemBothEdgeFocusedttTopTabItemNormalttTopTabItemHotttTopTabItemSelectedttTopTabItemDisabledttTopTabItemFocusedttTopTabItemLeftEdgeNormalttTopTabItemLeftEdgeHotttTopTabItemLeftEdgeSelectedttTopTabItemLeftEdgeDisabledttTopTabItemLeftEdgeFocusedttTopTabItemRightEdgeNormalttTopTabItemRightEdgeHotttTopTabItemRightEdgeSelectedttTopTabItemRightEdgeDisabledttTopTabItemRightEdgeFocusedttTopTabItemBothEdgeNormalttTopTabItemBothEdgeHotttTopTabItemBothEdgeSelectedttTopTabItemBothEdgeDisabledttTopTabItemBothEdgeFocusedttPanettBodyThemes ,+*5      |  ]   M c ~ 2  H j C ( ) & % ' J _ %    s   #O $m ! "1 5 85 C M ] j |  2 H c ~  % 5 J _ s  1 O m XTThemedTaskBandttbTaskBandDontCarettbTaskBandRoot ttbGroupCountttbFlashButtonttpFlashButtonGroupMenuThemes+X+TThemedTaskBarttTaskBarDontCare ttTaskBarRoot ttbTimeNormalThemes 8 hTThemedToolBar%ttbToolBarDontCarettbToolBarRootttbButtonNormal ttbButtonHotttbButtonPressedttbButtonDisabledttbButtonCheckedttbButtonCheckedHotttbDropDownButtonNormalttbDropDownButtonHotttbDropDownButtonPressedttbDropDownButtonDisabledttbDropDownButtonCheckedttbDropDownButtonCheckedHotttbSplitButtonNormalttbSplitButtonHotttbSplitButtonPressedttbSplitButtonDisabledttbSplitButtonCheckedttbSplitButtonCheckedHotttbSplitButtonDropDownNormalttbSplitButtonDropDownHotttbSplitButtonDropDownPressedttbSplitButtonDropDownDisabledttbSplitButtonDropDownChecked ttbSplitButtonDropDownCheckedHotttbSeparatorNormalttbSeparatorHotttbSeparatorPressedttbSeparatorDisabledttbSeparatorCheckedttbSeparatorCheckedHotttbSeparatorVertNormalttbSeparatorVertHotttbSeparatorVertPressedttbSeparatorVertDisabledttbSeparatorVertCheckedttbSeparatorVertCheckedHotThemes&$   ~ P8 eOc:&$%#! z"!7 mP $8Pe~ !7Pm&:OczTThemedToolTip tttToolTipDontCaretttToolTipRoottttStandardNormaltttStandardLinktttStandardTitleNormaltttStandardTitleLinktttBaloonNormal tttBaloonLinktttBaloonTitleNormaltttBaloonTitleLinktttCloseNormal tttCloseHottttClosePressedThemes8     *{YlPYl{*TThemedTrackBar#ttbTrackBarDontCarettbTrackBarRootttbTrack ttbTrackVertttbThumbNormal ttbThumbHotttbThumbPressedttbThumbFocusedttbThumbDisabledttbThumbBottomNormalttbThumbBottomHotttbThumbBottomPressedttbThumbBottomFocusedttbThumbBottomDisabledttbThumbTopNormalttbThumbTopHotttbThumbTopPressedttbThumbTopFocusedttbThumbTopDisabledttbThumbVertNormalttbThumbVertHotttbThumbVertPressedttbThumbVertFocusedttbThumbVertDisabledttbThumbLeftNormalttbThumbLeftHotttbThumbLeftPressedttbThumbLeftFocusedttbThumbLeftDisabledttbThumbRightNormalttbThumbRightHotttbThumbRightPressedttbThumbRightFocusedttbThumbRightDisabled ttbThumbTicsttbThumbTicsVertThemesp$ k U -  ?tP=`! "#(0-?Uk(=P`t TThemedTrayNotifyttnTrayNotifyDontCarettnTrayNotifyRoot ttnBackgroundttnAnimBackgroundThemes "z"l"D"Z""D"Z"l"z""TThemedTreeview ttTreeviewDontCarettTreeviewRoot ttItemNormal ttItemHotttItemSelectedttItemDisabledttItemSelectedNotFocus ttGlyphClosed ttGlyphOpenedttBranchttHotGlyphClosedttHotGlyphOpenedThemes# ### # #z#a#T#k##2#E##2#E#T#a#k#z#######$ TThemedWindowttwWindowDontCare twWindowRoottwCaptionActivetwCaptionInactivetwCaptionDisabledtwSmallCaptionActivetwSmallCaptionInactivetwSmallCaptionDisabledtwMinCaptionActivetwMinCaptionInactivetwMinCaptionDisabledtwSmallMinCaptionActivetwSmallMinCaptionInactivetwSmallMinCaptionDisabledtwMaxCaptionActivetwMaxCaptionInactivetwMaxCaptionDisabledtwSmallMaxCaptionActivetwSmallMaxCaptionInactivetwSmallMaxCaptionDisabledtwFrameLeftActivetwFrameLeftInactivetwFrameRightActivetwFrameRightInactivetwFrameBottomActivetwFrameBottomInactivetwSmallFrameLeftActivetwSmallFrameLeftInactivetwSmallFrameRightActivetwSmallFrameRightInactivetwSmallFrameBottomActivetwSmallFrameBottomInactivetwSysButtonNormaltwSysButtonHottwSysButtonPushedtwSysButtonDisabledtwSysButtonInactivetwMDISysButtonNormaltwMDISysButtonHottwMDISysButtonPushedtwMDISysButtonDisabledtwMDISysButtonInactivetwMinButtonNormaltwMinButtonHottwMinButtonPushedtwMinButtonDisabledtwMinButtonInactivetwMDIMinButtonNormaltwMDIMinButtonHottwMDIMinButtonPushedtwMDIMinButtonDisabledtwMDIMinButtonInactivetwMaxButtonNormaltwMaxButtonHottwMaxButtonPushedtwMaxButtonDisabledtwMaxButtonInactivetwCloseButtonNormaltwCloseButtonHottwCloseButtonPushedtwCloseButtonDisabledtwCloseButtonInactivetwSmallCloseButtonNormaltwSmallCloseButtonHottwSmallCloseButtonPushedtwSmallCloseButtonDisabledtwSmallCloseButtonInactivetwMDICloseButtonNormaltwMDICloseButtonHottwMDICloseButtonPushedtwMDICloseButtonDisabledtwMDICloseButtonInactivetwRestoreButtonNormaltwRestoreButtonHottwRestoreButtonPushedtwRestoreButtonDisabledtwRestoreButtonInactivetwMDIRestoreButtonNormaltwMDIRestoreButtonHottwMDIRestoreButtonPushedtwMDIRestoreButtonDisabledtwMDIRestoreButtonInactivetwHelpButtonNormaltwHelpButtonHottwHelpButtonPushedtwHelpButtonDisabledtwHelpButtonInactivetwMDIHelpButtonNormaltwMDIHelpButtonHottwMDIHelpButtonPushedtwMDIHelpButtonDisabledtwMDIHelpButtonInactivetwHorzScrollNormaltwHorzScrollHottwHorzScrollPushedtwHorzScrollDisabledtwHorzThumbNormaltwHorzThumbHottwHorzThumbPushedtwHorzThumbDisabledtwVertScrollNormaltwVertScrollHottwVertScrollPushedtwVertScrollDisabledtwVertThumbNormaltwVertThumbHottwVertThumbPushedtwVertThumbDisabledtwDialogtwCaptionSizingTemplatetwSmallCaptionSizingTemplatetwFrameLeftSizingTemplatetwSmallFrameLeftSizingTemplatetwFrameRightSizingTemplatetwSmallFrameRightSizingTemplatetwFrameBottomSizingTemplate twSmallFrameBottomSizingTemplateThemes%uF%h%V%m.<):)=*9);)l-'1's.&&o7.&'qp.U<,S,VQ,R,T),_ -],\,^,cS-a2-` -bA-7)5y)8)4g)6)F&n&Y&F*D*G+C*E*Z,X|,[,Wf,Y,29)0)3P)/(1$)P+N+Q+M+O+(t(&M()(%8('_(-(+(.(*(,(% % %KX+I/+Lp+H+JB+z%%%n.Ao*?@*B*>'*@V*''t.G'^'pQ.w''r.&&& % ,& &#(!'$$( '"'g-ez-dg-f-k-i-h-j-(%9%.(%9%F%V%h%z%%%%%%%&,&F&Y&n&&&&&&&''1'G'^'w'''''''($(8(M(_(t(((((((()$)9)P)g)y))))))))*'*@*V*o******++/+B+X+p++++++,,),<,Q,f,|,,,,,,, - -2-A-S-g-z--------..7.Q.p....4 TThemedElementDetails 88 TThemedElementDetails88 x8PThemedElementDetails88 TThemeOptiontoShowButtonImagestoShowMenuImagestoUseGlyphEffectsThemes9929C9h9929C99TThemeServices9TThemeServicesThemes9TThemesImageDrawEvent AImageListACanvasAXAYAIndex ADrawEffect AImageWidth ARefControl0:h;gPg<fP3C4CP6C9C9C:C9C7C8C0AC@ACPACf TButtonGlyphhfifif if0if0;`X ;h :0%EEiE@eP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpTeTeT`0`ЅT`TTT TTTT Tpe`Tpa0aTeڄa````^^``Ў` `@`}`_a`^+`+`P^``_` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P`e@7`7`7`PY`PZ`` `` `p`Pg`g` _ ^P_ `@_`_e ap_^P`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``@f"``g`e<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_gpga```=_`<_|`^вgg0a_a0`P1`0^`^0`_``Pg`P`М`0``@U``X`C``_aB`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``0f"``0f@/f<`P```0` @`@`@`p_``Б``p`%a&a'a #`p/a``` ````_@``a```p`X`|`````0a`a0`P1`R`@ a0````P`P`М`0``@U``X`C``_aB`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``0f"``0f@/f<`P```0` @`@`@`p_``Б``p`%a&a'a #`p/a``` ````_@``a```p`X`|`````0a`a0`P1`R`@ a0````P0OnMouseWheelUp@@?0OnResizepp@0 OnStartDragHXXA0OnUTF8KeyPress B8ParentBidiMode `C4 ParentFont `D4ParentShowHint`E6 PopupMenuS eeFuPressedImageIndex `0`GShowHinteH4Spacing( _^I5TabOrder  ^J4TabStop ``KVisiblehjTSpeedButtonActionLinkXwTSpeedButtonActionLinkOButtonswTCustomSpeedButtonwTCustomSpeedButtonP`Buttonsx TSpeedButtonPx TSpeedButtonXHxHButtons9!@:ActionHx8Alignhd!f4 Alignment \!f4 AllowAllUp|`Anchors 8AutoSize;aBidiModep``4 BorderSpacing(0`4 Constraints"0``a+`CaptionH (ColorS 0^f$fuDisabledImageIndex ]!f4Down0``4 DragCursor8dd0DragKindȤhx8DragMode P`Enabled `P#f 4Flatx``0`!Font1f#f1f"Glyph0`$f#4 GroupIndexS 0^f$f$u HotImageIndexT p^f$f%5ImagesS 0^f$f&u ImageIndex^f0&f'5 ImageWidtheLYf(4LayoutP&f)4MarginP3fP'f*5 NumGlyphsS 0^f$f+uPressedImageIndexS 0^f$f,uSelectedImageIndexT(f-4Spacing af0Zf.5 Transparent ``/Visible00OnClick 10OnContextPopup  20 OnDblClick00030 OnDragDrop@@40 OnDragOver0pp50 OnEndDrag60 OnMouseDown70 OnMouseEnter80 OnMouseLeave90 OnMouseMove:0 OnMouseUpP;0 OnMouseWheel<0OnMouseWheelDown=0OnMouseWheelUp>0OnPaint@@?0OnResizepp@0 OnStartDragA0OnChangeBounds [2fB4 ShowCaption `0`CShowHint D8ParentBidiMode `E4 ParentFont `F4ParentShowHint`G6 PopupMenuxTGetDefaultBitBtnGlyphphKind Handled ` pf TGlyphBitmap_Buttons0'HjX_P݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpT_T``T`0`ЅT`TTT TTTT Tg`Tpa0aT0gڄa````^^``Ў` `@`}`_a`^+`+`P^``g` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `` `p`/_`^` _ ^P_ `@_`_a ap_^P`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I```g"``p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``Pg`>g?g`~^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T|D`TzDsDpiDiDjDkDmDmDwD@xDvDPwD0mD`mDnDoDpoD pDggЃD~D`DTMemoScrollbar0x`` gP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpT`gT``T`0`ЅT`TTT TTTT T g`Tpa0aTPgڄ0Dg````^^``Ў` `@`}`_a`^+`+`P^``0g` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `P@g `p`/_`;g` _JgP_ `gPgDggp_^P`М`0``@?g_@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``g"``p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^?g```PJg@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``PaP݄4CT9C9C a9C7C8C0AC@ACPAC```T`TTPT`TpT hgT\gT`0`ЅT`TTT TTTT Tag`Tpa0aTygڄa```PCa`Yg```Ў` `@`}`_a*`+`+`,```Qg`Ba`0`0_P`g ` ?`P8a9a0/`O`P`P`S`S``Щ`p__`````_``_08` _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `` `p`Pfg```P`WgP_ ``ap_g ap_0>`P`М`0``@U``X`C``PagaB`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``Xg"``p`J`<`P```0` @`@`@`p_``Б``wg%a&a'a #`p/a``` ````_@``a```p`X`|`````0a`a0`P1`R`@ a0````PaP݄4CT9C9C a9C7C8C0AC@ACPAC```T`TTPT`TpT hgT\gT`0`ЅT`TTT TTTT Tag`Tpa0aTygڄa```PCa`Yg```Ў` `@`}`_a*`+`+`,```Qg`Ba`0`0_P`g ` ?`P8a9a0/`O`P`P`S`S``Щ`p__`````_``_08` _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `` `p`Pfg```P`WgP_ ``ap_g ap_0>`P`М`0``@U``X`C``PagaB`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``Xg"``p`J`<`P```0` @`@`@`p_``Б``wg%a&a'a #`p/a``` ````_@``a```p`X`|`````0a`a0`P1`R`@ a0````P0 OnMouseLeave?0 OnMouseMove@0 OnMouseUpPA0 OnMouseWheelB0OnMouseWheelDownC0OnMouseWheelUp@@D0OnResize``E0 OnStartDockppF0 OnStartDragHHG0OnUnDockHXXH0OnUTF8KeyPresssTEmulatedTextHintStatus thsHidden thsShowing thsChangingStdCtrls7",X",7TComboBoxAutoCompleteTextOption cbactEnabledcbactEndOfLineCompletecbactRetainPrefixCasecbactSearchCaseSensitivecbactSearchAscendingStdCtrls5`5TComboBoxAutoCompleteTextXTComboBoxStyle csDropDowncsSimplecsDropDownListcsOwnerDrawFixedcsOwnerDrawVariablecsOwnerDrawEditableFixedcsOwnerDrawEditableVariableStdCtrls9M\mDȂ9DM\m(TComboBoxStyleHelperpTComboBoxStyleHelperStdCtrlsTDrawItemEvent$selfPointerControl TWinControlIndexLongIntARectTRectStateTOwnerDrawStateH02TMeasureItemEvent$selfPointerControl TWinControlIndexLongIntAHeightLongIntH TCustomComboBox"xHTCustomComboBoxЪHStdCtrls TComboBoxЅ TComboBoxȅVStdCtrlsGHx8Align|`Anchors 0f4ArrowKeysTraverseList @ff5 AutoComplete0AutoCompleteText 0 AutoDropDown 0 AutoSelect 8AutoSize;aBidiModep``4 BorderSpacinghQ_X9 BorderStyleef4CharCaseH  (Color(0`4 Constraints _P^DoubleBuffered0``4 DragCursor8dd0DragKindȤhx 8DragMode !8 DropDownCount P`"Enabledx``0`#Fonth $: ItemHeight %: ItemIndexP &8Itemsff'5 ItemWidth (: MaxLength )8ParentBidiMode `*4 ParentColor hS_+4ParentDoubleBuffered `,4 ParentFont `-4ParentShowHint`.6 PopupMenu `f/4ReadOnly `0`0ShowHint l 18Sortedp 28Style( _^35TabOrder  ^44TabStop"0``a55Text"xf64TextHint ``7Visible80OnChange90OnChangeBounds:0OnClick;0 OnCloseUp <0OnContextPopup  =0 OnDblClick000>0 OnDragDrop@@?0 OnDragOver@0 OnDrawItem0ppA0 OnEndDrag  B0 OnDropDownPPC0 OnEditingDone((D0OnEnter88E0OnExit00F0 OnGetItemsxG0 OnKeyDown؟H0 OnKeyPressxI0OnKeyUp@@J0 OnMeasureItemK0 OnMouseDownL0 OnMouseEnterM0 OnMouseLeaveN0 OnMouseMoveO0 OnMouseUpPP0 OnMouseWheelQ0OnMouseWheelDownR0OnMouseWheelUpPPS0OnSelectppT0 OnStartDragHXXU0OnUTF8KeyPress TListBoxStyle lbStandardlbOwnerDrawFixedlbOwnerDrawVariable lbVirtualStdCtrls0[lPP[lTSelectionChangeEvent$selfPointerSenderTObjectUserBoolean TListBoxOptionlboDrawFocusRectStdCtrlsȖTListBoxOptions (TCustomListBoxXTCustomListBoxHStdCtrlsTListBoxȗTListBoxQStdCtrlsBHx8Align|`Anchors;aBidiModep``4 BorderSpacinghQ_X9 BorderStyle 0ClickOnSelChangeH  (Colorf4Columns(0`4 Constraints _P^DoubleBuffered0``4 DragCursor8dd0DragKindȤhx8DragMode 8 8ExtendedSelect P`Enabledx``0`Font 0IntegralHeightH  8Itemsff!5 ItemHeight( @ ": ItemIndex P #8 MultiSelect $0Options %8ParentBidiMode `&4 ParentColor hS_'4ParentDoubleBuffered `(4ParentShowHint `)4 ParentFont`*6 PopupMenuff+5 ScrollWidth `0`,ShowHint X -8Sorted` .8Style( _^/5TabOrder  ^04TabStopff15TopIndex ``2Visible30OnChangeBounds40OnClick 50OnContextPopup  60 OnDblClick00070 OnDragDrop@@80 OnDragOver90 OnDrawItem((:0OnEnter0pp;0 OnEndDrag88<0OnExit؟=0 OnKeyPressx>0 OnKeyDownx?0OnKeyUp@0 OnMeasureItemA0 OnMouseDownB0 OnMouseEnterC0 OnMouseLeaveD0 OnMouseMoveE0 OnMouseUpPF0 OnMouseWheelG0OnMouseWheelDownH0OnMouseWheelUpPI0OnMouseWheelHorzJ0OnMouseWheelLeft  K0OnMouseWheelRight@@L0OnResizexM0OnSelectionChangePPN0 OnShowHintppO0 OnStartDragHXXP0OnUTF8KeyPress TCustomEdit"8 TCustomEditHStdCtrlsTMemoScrollbarTMemoScrollbarStdCtrls TCustomMemo( TCustomMemoStdCtrls`TEditTEditKStdCtrls<Hx8Alignh0Qg4 Alignment|`Anchors 8AutoSize 0 AutoSelect;aBidiModep``4 BorderSpacinghQ_X9 BorderStylee` 8CharCaseH  (Color(0`4 Constraints _P^DoubleBuffered0``4 DragCursor8dd0DragKindȤhx8DragModefh 8EchoMode P`Enabledx``0` Font p3g!4 HideSelection04g"4 MaxLength ( p #: NumbersOnly $8ParentBidiMode `%4 ParentColor hS_&4ParentDoubleBuffered `'4 ParentFont `(4ParentShowHintH05g)4 PasswordChar`*6 PopupMenu 0 x +:ReadOnly `0`,ShowHint  ^-4TabStop( _^.5TabOrder"0``a/5Text"P 0:TextHint ``1Visible20OnChange30OnChangeBounds40OnClick 50OnContextPopup  60 OnDblClick00070 OnDragDrop@@80 OnDragOverPP90 OnEditingDone0pp:0 OnEndDrag((;0OnEnter88<0OnExitx=0 OnKeyDown؟>0 OnKeyPressx?0OnKeyUp@0 OnMouseDownA0 OnMouseEnterB0 OnMouseLeaveC0 OnMouseMoveD0 OnMouseUpPE0 OnMouseWheelF0OnMouseWheelDownG0OnMouseWheelUp@@H0OnResizeppI0 OnStartDragHXXJ0OnUTF8KeyPressȧTMemoTMemoKStdCtrls<Hx8Alignh0Qg4 Alignment|`Anchors;aBidiModep``4 BorderSpacinghQ_X9 BorderStylee` 8CharCaseH  (Color(0`4 Constraints _P^DoubleBuffered0``4 DragCursor8dd0DragKindȤhx8DragMode P`Enabledx``0`Font p3g4 HideSelectiong4Lines04g 4 MaxLength !8ParentBidiMode `"4 ParentColor hS_#4ParentDoubleBuffered `$4 ParentFont`%6 PopupMenu `&4ParentShowHint 0 x ':ReadOnlyxgg(4 ScrollBars `0`)ShowHint( _^*5TabOrder  ^+4TabStop ``,Visible (g-4 WantReturns )g.4WantTabs *`g/4WordWrap00OnChange10OnClick 20OnContextPopup  30 OnDblClick00040 OnDragDrop@@50 OnDragOverPP60 OnEditingDone0pp70 OnEndDrag((80OnEnter8890OnExitx:0 OnKeyDown؟;0 OnKeyPressx<0OnKeyUp=0 OnMouseDown>0 OnMouseEnter?0 OnMouseLeave@0 OnMouseMoveA0 OnMouseUpPB0 OnMouseWheelC0OnMouseWheelDownD0OnMouseWheelUpPE0OnMouseWheelHorzF0OnMouseWheelLeft  G0OnMouseWheelRight@@H0OnResizeppI0 OnStartDragHXXJ0OnUTF8KeyPressȴTStaticBorderStylesbsNone sbsSingle sbsSunkenStdCtrls0TCustomStaticTextXTCustomStaticTextHStdCtrls TStaticText TStaticText@StdCtrls1Hx8Alignhg4 Alignment|`Anchors 8AutoSize;aBidiModep``4 BorderSpacingg4 BorderStyle"0``a+`CaptionH (Color(0`4 Constraints _P^DoubleBuffered0``4 DragCursor8dd0DragKindȤhx8DragMode P`EnabledH 8 FocusControlx``0`Font  8ParentBidiMode `!4 ParentFont `"4 ParentColor hS_#4ParentDoubleBuffered `$4ParentShowHint`%6 PopupMenu  &8 ShowAccelChar `0`'ShowHint( _^(5TabOrder  ^)4TabStop gg*5 Transparent ``+Visible,0OnChangeBounds-0OnClick .0OnContextPopup  /0 OnDblClick00000 OnDragDrop@@10 OnDragOver0pp20 OnEndDrag30 OnMouseDown40 OnMouseEnter50 OnMouseLeave60 OnMouseMove70 OnMouseUpP80 OnMouseWheel90OnMouseWheelDown:0OnMouseWheelUpP;0OnMouseWheelHorz<0OnMouseWheelLeft  =0OnMouseWheelRight@@>0OnResizepp?0 OnStartDragTButtonControlTButtonControl`HStdCtrlsTButtonActionLink TButtonActionLinkStdCtrls`TButtonActionLinkClass TCustomButton TCustomButtonStdCtrlsTButton0TButton8%(@StdCtrls1!@:ActionHx8Align|`Anchors 8AutoSize;aBidiModep``4 BorderSpacing `g4Cancel"0``a+`CaptionH  (Color(0`4 Constraints g4Default _P^DoubleBuffered0``4 DragCursor8dd0DragKindȤhx8DragMode P`Enabledx``0`Font  8ParentBidiModen g!4 ModalResult hS_"4ParentDoubleBuffered `#4 ParentFont `$4ParentShowHint`%6 PopupMenu `0`&ShowHint( _^'5TabOrder  ^(4TabStop ``)Visible*0OnChangeBounds+0OnClick ,0OnContextPopup000-0 OnDragDrop@@.0 OnDragOver0pp/0 OnEndDrag((00OnEnter8810OnExitx20 OnKeyDown؟30 OnKeyPressx40OnKeyUp50 OnMouseDown60 OnMouseEnter70 OnMouseLeave80 OnMouseMove90 OnMouseUpP:0 OnMouseWheel;0OnMouseWheelDown<0OnMouseWheelUp@@=0OnResizepp>0 OnStartDragHXX?0OnUTF8KeyPresshTCheckBoxState cbUnchecked cbCheckedcbGrayedStdCtrls 8 hTCustomCheckBoxTCustomCheckBox.StdCtrls TCheckBox TCheckBox8DStdCtrls6!@:ActionHx8Align0|g`|g5 Alignment 0 AllowGrayed|`Anchors 8AutoSize;aBidiModep``4 BorderSpacing"0``a+`Caption   ЧgCheckedH (Color(0`4 Constraints _P^DoubleBuffered0``4 DragCursor8dd0DragKindȤhx8DragMode P`Enabledx``0` Font"X`` Hint `!4 ParentColor hS_"4ParentDoubleBuffered `#4 ParentFont `$4ParentShowHint %8ParentBidiMode`&6 PopupMenu `0`'ShowHint0@}g@zg(5State( _^)5TabOrder  ^*4TabStop ``+Visible,0OnChange-0OnChangeBounds.0OnClick /0OnContextPopup00000 OnDragDrop@@10 OnDragOverPP20 OnEditingDone0pp30 OnEndDrag((40OnEnter8850OnExit؟60 OnKeyPressx70 OnKeyDownx80OnKeyUp90 OnMouseDown:0 OnMouseEnter;0 OnMouseLeave<0 OnMouseMove=0 OnMouseUpP>0 OnMouseWheel?0OnMouseWheelDown@0OnMouseWheelUp@@A0OnResizeppB0 OnStartDragHXXC0OnUTF8KeyPress@ TToggleBox TToggleBoxhA;StdCtrls- 0 AllowGrayedHx8Align|`Anchors 8AutoSize;aBidiModep``4 BorderSpacing"0``a+`Caption   ЧgCheckedH  (Color(0`4 Constraints _P^DoubleBuffered0``4 DragCursor8dd0DragKindȤhx8DragMode P`Enabledx``0`Font"X`` Hint 8ParentBidiMode hS_ 4ParentDoubleBuffered `!4 ParentFont `"4ParentShowHint`#6 PopupMenu `0`$ShowHint0@}g@zg%5State( _^&5TabOrder  ^'4TabStop ``(Visible)0OnChange*0OnClick +0OnContextPopup000,0 OnDragDrop@@-0 OnDragOver0pp.0 OnEndDrag((/0OnEnter8800OnExit10 OnMouseDown20 OnMouseEnter30 OnMouseLeave40 OnMouseMove50 OnMouseUpP60 OnMouseWheel70OnMouseWheelDown80OnMouseWheelUp@@90OnResizepp:0 OnStartDrag TRadioButton TRadioButtonJ?StdCtrls1Hx8Align0|g`|g5 Alignment|`Anchors 8AutoSize;aBidiModep``4 BorderSpacing"0``a+`Caption   ЧgCheckedH  (Color(0`4 Constraints _P^DoubleBuffered0``4 DragCursor8dd0DragKindȤhx8DragMode P`Enabledx``0`Font"X`` Hint 8ParentBidiMode ` 4 ParentColor hS_!4ParentDoubleBuffered `"4 ParentFont `#4ParentShowHint`$6 PopupMenu `0`%ShowHint( _^&5TabOrder  ^'4TabStop ``(Visible)0OnChange*0OnChangeBounds+0OnClick ,0OnContextPopup000-0 OnDragDrop@@.0 OnDragOver0pp/0 OnEndDrag((00OnEnter8810OnExitx20 OnKeyDown؟30 OnKeyPressx40OnKeyUp50 OnMouseDown60 OnMouseEnter70 OnMouseLeave80 OnMouseMove90 OnMouseUpP:0 OnMouseWheel;0OnMouseWheelDown<0OnMouseWheelUp@@=0OnResizepp>0 OnStartDrag TCustomLabel@ TCustomLabel8T`StdCtrlsxTLabelTLabel`[>StdCtrls/Hx8Alignh(`\g4 Alignment|`Anchors 8AutoSize;aBidiModep``4 BorderSpacing"0``a+`CaptionH  (Color(0`4 Constraints0``4 DragCursor8dd0DragKindȤhx8DragMode P`EnabledH0P]g4 FocusControlx``0`Font <dg4Layout 8xg4 OptimalFill  8ParentBidiMode `!4 ParentColor `"4 ParentFont `#4ParentShowHint`$6 PopupMenu 9^g%4 ShowAccelChar `0`&ShowHint Pdgeg'5 Transparent ``(Visible :eg)4WordWrap*0OnChangeBounds+0OnClick ,0OnContextPopup  -0 OnDblClick000.0 OnDragDrop@@/0 OnDragOver0pp00 OnEndDrag10 OnMouseDown20 OnMouseEnter30 OnMouseLeave40 OnMouseMove50 OnMouseUpP60 OnMouseWheel70OnMouseWheelDown80OnMouseWheelUpP90OnMouseWheelHorz:0OnMouseWheelLeft  ;0OnMouseWheelRight@@<0OnResizepp=0 OnStartDrag TMemoStringshbStdCtrlsXfP݄4CT0^9C a9C7C8C0AC@ACPAC`PgT`TT ^`TpT_T``T`0`ЅT`TTT TTTT Tg`Tpa0aTpgڄa````^^``Ў` `@`}`_a`^+`+`P^``_` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__```ff@$_`_^ _ -` _,`,`;`0_`P`f@7`7`7`PY`PZ`` `` `p`/_`^` _gP_ `@_`_a ap_^P`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``f"``fp`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``P0OnKeyUp?0 OnMeasureItem@0 OnMouseDownA0 OnMouseEnterB0 OnMouseLeaveC0 OnMouseMoveD0 OnMouseUpPE0 OnMouseWheelF0OnMouseWheelDownG0OnMouseWheelUpPH0OnMouseWheelHorzI0OnMouseWheelLeft  J0OnMouseWheelRight@@K0OnResizexL0OnSelectionChangePPM0 OnShowHintppN0 OnStartDragHXXO0OnUTF8KeyPressP '22K`H2ahP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpTehT``T`0`ЅT`TTT TTTT TWh0lhpa0aT\hڄa````^^``Ў` `@`}``ha`^+`+`P^``hh` ``0`0_^_ ?``hh9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `` `p`/_`^` _ ^P_ `@_`_a ap_^P`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``-a"`chp`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``P>hX>X_P݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpT_T``T`0`ЅT`TTT TTTT Tg`Tpa0aTPgڄa````^^``Ў` `@`}`_a`^+`+`P^``_` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `` `p`g`^` _ ^P_ `@_Pha ap_^P`М``g`0__@_`hp_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``-a"``p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a`ph`=_`<_h^```0a_a0`P1`0^`^@h_``Ph=h`-h9hhhPh`h@hh@ h0$hTCustomTabControlNLh(?PKYK TP3C4CP6C9C9C:C9C7C8C0T@ACPAC]TpS^TpT`TPSCSCSSSpSSTTT@T@T T TPTpTTCCTT`T0T T0TCTTTTT` T`"T#TP$T%T(TCCCCg TNBBasePagesHI`KNHZ(N hP3C4CP6C9C9C:C9C7C8C0T@ACPAC]TpS^TpT`TPS hS h hSP hpSSTTT@T@T T TPTpTT h`hTT`T0T T0T hTTTTT`h`"T#TP$T%T(T h h h` hPhTNBPagesKPKPZP TP3C4CP6C9C9C:C9C7C8C0T@ACPAC]TpS^TpT`TPS hS`hSSSpSSTTT@T@T T TPTpTTCCTT`T0T T0TCTTTTT` T`"T#TP$T%T(ThCChg TNBNoPages8NH@IZ@iZhP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpThTIhT0Dh0`ЅT`TTT TTTT Th`Tpa0aT hڄa````^^``Ў` `@`}`_a`^+`+`P^``_` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `` `p`Jh`h` _ ^P_ `@_`_a ap_^P`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``Ih"``Khp`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``Ph=h`-h9hhhPh`h@hh@ h0$h TPageControlP( ?c`dhP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpT_T``T`0`ЅT`TTT TTTT TPh`Tpa0aThڄa````^^``Ў` `@`}`_a`^+`+`P^``_` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `` `p`g`^` _ ^P_ `@_Pha ap_^P`М``g`0__@_`hp_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``-a"``p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a`ph`=_`<_h^```0a_a0`P1`0^`^@h_``Ph=h`-h9h@hhPh`h@hh@ h0$hhphh@h@h TTabControldx q8q TP3C4CP6C9C9C:C9C7C8C0T@ACPAC]TpS^TpT`TPSCSCSSSpSSTTT@T@T T TPTpTTCCTT`T0T T0TCTTTTT` T`"T#TP$T%T(TCh0hphhh0hphChДhChPhhhhhhЕh0hhTTabControlStrings@nXZ({HH{hP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpThTIhT0Dh0`ЅT`TTT TTTT Th`Tpa0aTPhڄa````^^``Ў` `@`}`_a`^+`+`P^``_` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _h,`0h0_`P``x`@7`7`7`PY`PZ`hhhphhJh`h` _ ^P_ `@_`_a ap_^P`М`0``0__@_`@^p_B`hD`P\`^`0_`]`_`_`pF`F`F`G`I``Ih"``Khp`J`phP```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``Ph=h`-h9hhhPh`h@hh@ h0$hTNoteBookStringsTabControlHqx@qX~x~hP3C4CP6C9C9C:C9C7C8C0T@ACPAC]TpS^TpT`TPShS@hhS@hhSThT@T@T T TPTpTTPhЬhTT`T0T T0T`hTTTTT` T`"T#TP$T%T(Thhhhhh0hph h`hДh0hвhPhhhhhhЕh0hh0hhhhTTabControlNoteBookStringsX{80SiP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]i=i`T`TaP݄4CT9C9C a9C7C8C0AC@ACPACj``T`TTPT`TpTpvjT0\jT`0`ЅT`TTT TTTT TSj`Tpa0aT|jڄa```PCa0~````Ў` `@`vj_a*`+`+`,```Нj`Ba`0`0_p_ ` ?`P8a9a0/`O`P`P`S`S``Щ`p__`````_``_08` _ -` _,`,`;`0_`P`j@7`7`7`PY`PZ`UjP}jYj@|j|jj```P`AaP_ ``@wjpj ap_0>`P`М``j`@U``X`C``_aB`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``pj"``yjxj<`P```0` @`@`@`p_``Б``p`%a&apj #`p/a``` ````_@``a```p`X`|`````0a`a0`P1`R`@ a0````P`P`М`0``@U``X`C``_aB`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``0f"``0f@/f<`P```0` @`@`@`p_``Б``p`%a&a'a #`p/a``` ````_@``a```p`X`|`````0a`a0`P1`R`@ a0````P0 OnStartDragK TPanelPartppTextppBorderppWidthComCtrlsUVV%V@VVV%VpV TPanelParts8VV TStatusPanel"0V TStatusPanelsW TPageFlagpfAddedpfAdding pfRemoving pfInsertingComCtrls@W\WdWxWmWW\WdWmWxWW TPageFlagsWX TCustomPage0X TCustomPage5HComCtrlshXTCustomPageClassXXTCustomTabControlXTCustomTabControl(?HComCtrls  ^4TabStopY TNBBasePagesxY TNBBasePagesHIComCtrlsYTNBBasePagesClassYYTNBPagesZTNBPagesKYComCtrlsHZ TNBNoPagesxZ TNBNoPages8NYComCtrlsZTTabChangingEvent$selfPointerSenderTObject AllowChangeBoolean Z TTabPositiontpToptpBottomtpLefttpRightComCtrlsX[}[[[w[[w[}[[[[ TTabStyletsTabs tsButtons tsFlatButtonsComCtrls\;\E\4\h\4\;\E\\TTabGetImageEvent$selfPointerSenderTObjectTabIndexLongInt ImageIndexLongInt\TCTabControlOptionnboShowCloseButtons nboMultiLinenboHidePageListPopupnboKeyboardTabSwitchnboShowAddTabButtonnboDoChangeOnSetIndexComCtrlsH]]]]]]m]]m]]]]]]P^TCTabControlOptions]^TCTabControlCapabilitynbcShowCloseButtons nbcMultiLinenbcPageListPopupnbcShowAddTabButtonnbcTabsSizeableComCtrls^^ __^/_X_^^ __/__TCTabControlCapabilitiesP__ TDrawTabEvent$selfPointerControlTCustomTabControlTabIndexLongIntRectTRectAActiveBooleanpY0 ` TPageControl` TTabSheetZX2ComCtrls' 8AutoSizeP^4 BorderWidth;aBiDiMode"0``a+`Caption@`_4 ChildSizingA``% ClientHeight`B``% ClientWidth P`Enabledx``0`Font`4HeightS g4 ImageIndex`4Left 0OnContextPopup0000 OnDragDrop@@0 OnDragOver0pp0 OnEndDrag((0OnEnter880OnExit0OnHide 0 OnMouseDown!0 OnMouseEnter"0 OnMouseLeave#0 OnMouseMove$0 OnMouseUpP%0 OnMouseWheel&0OnMouseWheelDown'0OnMouseWheelUp@@(0OnResize)0OnShowpp*0 OnStartDrag  +: PageIndex ,8ParentBiDiMode `-4 ParentFont `.4ParentShowHint`/6 PopupMenu `0`0ShowHint g16 TabVisible@` 4Topp` 4Width` TPageControlPpYLComCtrls=8ihh5 ActivePagepp0OnGetDockCaptionHx8Align|`Anchors 8AutoSizep``4 BorderSpacing;aBiDiMode(0`4 Constraints _4DockSite0``4 DragCursor8dd0DragKindȤhx8DragMode P`Enabledx``0`Font 0HotTrackT p)h4Images*h 4 ImagesWidth &h@1h!5 MultiLine "8ParentBiDiMode `#4 ParentFont `$4ParentShowHint`%6 PopupMenu ((&0 RaggedRight ))'0ScrollOpposite `0`(ShowHint *0?h)4ShowTabs`\, *8Style@0?h @h+ TabHeight 0,h,4TabIndex( _^-5TabOrder[4 .8 TabPosition  ^4TabStop@8@hPAh/TabWidth ``0Visible10OnChangeP[20 OnChanging30OnCloseTabClicked 40OnContextPopup50 OnDockDropx60 OnDockOver00070 OnDragDrop@@80 OnDragOver0``90 OnEndDock0pp:0 OnEndDrag((;0OnEnter88<0OnExit@]=0OnGetImageIndexP>0 OnGetSiteInfo?0 OnMouseDown@0 OnMouseEnterA0 OnMouseLeaveB0 OnMouseMoveC0 OnMouseUpPD0 OnMouseWheelE0OnMouseWheelDownF0OnMouseWheelUp@@G0OnResize``H0 OnStartDockppI0 OnStartDragHHJ0OnUnDock^0 K8Options@i TTabSheetHv TTabControlv TTabControldpYKComCtrls< h h5HotTrackT p)h4Images*h4 ImagesWidth `hh5 MultiLine h h5 MultiSelectHH0OnChangeP[0 OnChanging@]0OnGetImageIndex hh5 OwnerDraw h h5 RaggedRight `hh5ScrollOpposite`\, 8Style[4 8 TabPosition@0h4 TabHeighth 9TabIndex`h4Tabs h0h5TabStop@8ph 4TabWidthHx!8Align|`"Anchors;a#BiDiModep``$4 BorderSpacing(0`%4 Constraints _&4DockSite0``'4 DragCursor8dd(0DragKindȤhx)8DragMode P`*Enabledx``0`+Font,0OnChangeBounds -0OnContextPopup.0 OnDockDropx/0 OnDockOver00000 OnDragDrop@@10 OnDragOver0``20 OnEndDock0pp30 OnEndDrag((40OnEnter8850OnExitP60 OnGetSiteInfo70 OnMouseDown80 OnMouseEnter90 OnMouseLeave:0 OnMouseMove;0 OnMouseUpP<0 OnMouseWheel=0OnMouseWheelDown>0OnMouseWheelUp@@?0OnResize``@0 OnStartDockppA0 OnStartDragHHB0OnUnDock^0 C8Options D8ParentBiDiMode `E4 ParentFont `F4ParentShowHint`G6 PopupMenu `0`HShowHint( _^I5TabOrder ``JVisiblevTTabControlStringsTTabControlStrings@nComCtrlsTNoteBookStringsTabControlTNoteBookStringsTabControlHq@vLComCtrlsHTNoteBookStringsTabControlClassTTabControlNoteBookStringsȄTTabControlNoteBookStringsX{ComCtrlsTCustomDrawTarget dtControldtItem dtSubItemComCtrlsX||TCustomDrawStage cdPrePaint cdPostPaint cdPreErase cdPostEraseComCtrlsM6B+p+6BMTCustomDrawStateFlag cdsSelected cdsGrayed cdsDisabled cdsChecked cdsFocused cdsDefaultcdsHot cdsMarkedcdsIndeterminateComCtrls )?4J[Q)4?JQ[TCustomDrawStatexPTCustomDrawResultFlagcdrSkipDefaultcdrNotifyPostpaintcdrNotifyItemdrawcdrNotifySubitemdrawcdrNotifyPosterasecdrNotifyItemeraseComCtrlsʈ܈0ʈ܈TCustomDrawResult(ȉ TListItems TListItems~ComCtrls0TCustomListViewhTCustomListViewHComCtrls TSortTypestNonestDatastTextstBothComCtrls 0 pTListItemStatelisCut lisDropTarget lisFocused lisSelectedComCtrlsȋ֋ȋ֋@TListItemStatesp TListItemFlag lifDestroying lifCreatedComCtrlsΌΌTListItemFlags8 TDisplayCodedrBoundsdrIcondrLabeldrSelectBoundsComCtrlshTIconArrangementiaTopiaLeftComCtrls0YSxSY TIconOptions TIconOptionsComCtrlsp xi4 Arrangement `yiyi5 AutoArrange yi zi5WrapText TListItem0Џ TListItemComCtrlsTListItemClass@HTOwnerDataListItemhTOwnerDataListItem`@ComCtrlsTListItemsEnumeratorTListItemsEnumeratorЍComCtrls(TListItemsFlaglisfWSItemsCreatedComCtrlshȑTListItemsFlagsTOwnerDataListItemsTOwnerDataListItems`ComCtrlsPTWidthTSortIndicatorsiNone siAscending siDescendingComCtrlsؒђђؒ8 TListColumn"0` TListColumn ComCtrls h(h4 Alignment ,h4AutoSize"0h4CaptionS Hh4 ImageIndex<h4MaxWidth8h4MinWidthPP0Tag @ h4Visibleh0h25WidthXh 4 SortIndicator TListColumns TListColumns@ComCtrls TItemChangectTextctImagectStateComCtrlsPu}nnu}Ȗ TViewStylevsIcon vsSmallIconvsListvsReportComCtrls  'H  ' TItemFindifDataifPartialString ifExactString ifNearestComCtrlsԗۗԗۗXTSearchDirectionsdLeftsdRightsdAbovesdBelowsdAllComCtrlsʘ˜˜ʘ0TLVChangeEvent$selfPointerSenderTObjectItem TListItemChange TItemChange@hTLVDataFindEvent $selfPointerSenderTObjectAFind TItemFind AFindString AnsiString AFindPositionTPoint AFindDataPointer AStartIndexLongInt ADirectionTSearchDirectionAWrapBooleanAIndexLongInt TLVDataHintEvent$selfPointerSenderTObject StartIndexLongIntEndIndexLongInt0TLVDataStateChangeEvent$selfPointerSenderTObject StartIndexLongIntEndIndexLongIntOldStateTListItemStatesNewStateTListItemStatesTLVColumnClickEvent$selfPointerSenderTObjectColumn TListColumnؕTLVColumnRClickEvent$selfPointerSenderTObjectColumn TListColumnPointTPointؕ TLVCompare@Item1@Item2AOptionalParamTLVCompareEvent$selfPointerSenderTObjectItem1 TListItemItem2 TListItemDataLongIntCompareLongInt@@TLVDeletedEvent$selfPointerSenderTObjectItem TListItem@TLVEditingEvent$selfPointerSenderTObjectItem TListItem AllowEditBoolean@ TLVEditedEvent$selfPointerSenderTObjectItem TListItemAValue AnsiString@TLVCheckedItemEvent$selfPointerSenderTObjectItem TListItem@TLVSelectItemEvent$selfPointerSenderTObjectItem TListItemSelectedBoolean@ TLVCustomDrawEvent$selfPointerSenderTCustomListViewARectTRect DefaultDrawBoolean؊0 TLVCustomDrawItemEvent$selfPointerSenderTCustomListViewItem TListItemStateTCustomDrawState DefaultDrawBoolean؊@x TLVCustomDrawSubItemEvent$selfPointerSenderTCustomListViewItem TListItemSubItemLongIntStateTCustomDrawState DefaultDrawBoolean؊@x PTLVDrawItemEvent$selfPointerSenderTCustomListViewAItem TListItemARectTRectAStateTOwnerDrawState؊@02(TLVAdvancedCustomDrawEvent$selfPointerSenderTCustomListViewARectTRectStageTCustomDrawStage DefaultDrawBoolean؊0h УTLVAdvancedCustomDrawItemEvent$selfPointerSenderTCustomListViewItem TListItemStateTCustomDrawStateStageTCustomDrawStage DefaultDrawBoolean؊@xh !TLVAdvancedCustomDrawSubItemEvent$selfPointerSenderTCustomListViewItem TListItemSubItemLongIntStateTCustomDrawStateStageTCustomDrawStage DefaultDrawBoolean؊@xh hTLVCreateItemClassEvent$selfPointerSenderTCustomListView ItemClassTListItemClass؊`hTListViewPropertylvpAutoArrange lvpCheckboxeslvpColumnClicklvpFlatScrollBars lvpFullDrag lvpGridLineslvpHideSelection lvpHotTracklvpMultiSelect lvpOwnerDraw lvpReadOnly lvpRowSelectlvpShowColumnHeaderslvpShowWorkAreas lvpWrapText lvpToolTipsComCtrls )8JVct ʧۧ )8JVctʧۧبTListViewPropertieshTListViewImageList lvilSmall lvilLarge lvilStateComCtrlsǩѩǩѩ TListHotTrackStyle htHandPointhtUnderlineColdhtUnderlineHotComCtrlsHmymyTListHotTrackStyles TListViewFlaglffSelectedValidlffItemsMovinglffItemsSortinglffPreparingSortingComCtrls8ixXXixTListViewFlags TSortDirection sdAscending sdDescendingComCtrlsPq}q}ȬTCustomListViewEditorTCustomListViewEditorComCtrls( TListViewh TListView؊qComCtrlsbHx8Aligni4AllocBy|`Anchors 0AutoSort 0AutoSortIndicator i4AutoWidthLastColumnp``4 BorderSpacinghQ_X9 BorderStyleP^4 BorderWidth @iiu CheckboxesH  (ColorHi4Columns @iiu ColumnClick(0`4 Constraints0``4 DragCursor8dd0DragKindȤhx8DragMode P` Enabledx``0`!Font @ii"u GridLines @ii#u HideSelectionȏi$4 IconOptions`0i%4ItemsT ii&u LargeImages@i0i'uLargeImagesWidth @ii(u MultiSelect `i)4 OwnerData @ii *u OwnerDraw `+4 ParentColor `,4 ParentFont `-4ParentShowHint`.6 PopupMenu @ii /uReadOnly @ii 0u RowSelectxgx@j14 ScrollBars @ii 2uShowColumnHeaders `0`3ShowHintT ii4u SmallImages@i0i5uSmallImagesWidthdi64 SortColumnXi74 SortDirection(`Pi84SortTypeT ii9u StateImages@i0i:uStateImagesWidth  ^;4TabStop( _^<5TabOrder @ii=uToolTips ``>Visible@\i?4 ViewStyle@0OnAdvancedCustomDraw`A0OnAdvancedCustomDrawItem`B0OnAdvancedCustomDrawSubItemC0OnChangeD0OnClickE0 OnColumnClickF0 OnCompare G0OnContextPopupH0OnCreateItemClassXXI0 OnCustomDrawHhhJ0OnCustomDrawItem xxK0OnCustomDrawSubItemL0OnData(M0 OnDataFindN0 OnDataHintO0OnDataStateChange  P0 OnDblClickQ0 OnDeletion000R0 OnDragDrop@@S0 OnDragOverȣT0 OnDrawItemU0OnEditedV0 OnEditing0``W0 OnEndDock0ppX0 OnEndDrag((Y0OnEnter88Z0OnExit(([0OnInsertx88\0 OnItemCheckedx]0 OnKeyDown؟^0 OnKeyPressx_0OnKeyUp`0 OnMouseDowna0 OnMouseEnterb0 OnMouseLeavec0 OnMouseMoved0 OnMouseUpPe0 OnMouseWheelf0OnMouseWheelDowng0OnMouseWheelUpPh0OnMouseWheelHorzi0OnMouseWheelLeft  j0OnMouseWheelRight@@k0OnResizeHHl0 OnSelectItemPPm0 OnShowHint``n0 OnStartDockppo0 OnStartDragHXXp0OnUTF8KeyPressTProgressBarOrientation pbHorizontal pbVertical pbRightToLeft pbTopDownComCtrls "0P "0TProgressBarStyle pbstNormal pbstMarqueeComCtrls8TCustomProgressBarXTCustomProgressBarxHComCtrls TProgressBar TProgressBar:ComCtrls,Hx8Align|`Anchorsp``4 BorderSpacingP^4 BorderWidthH  (Color(0`4 Constraints0``4 DragCursor8dd0DragKindȤhx8DragMode P`Enabledx``0`Font"X`` Hint j jd5Max j j5Min 0OnContextPopup0000 OnDragDrop@@0 OnDragOver0pp0 OnEndDrag(( 0OnEnter88!0OnExit"0 OnMouseDown#0 OnMouseEnter$0 OnMouseLeave%0 OnMouseMove&0 OnMouseUpP'0 OnMouseWheel(0OnMouseWheelDown)0OnMouseWheelUp``*0 OnStartDockpp+0 OnStartDragH j,4 Orientation `-4 ParentColor `.4 ParentFont `/4ParentShowHint`06 PopupMenu j0 j15Position `0`2ShowHint j34Smooth j 44Step j54Style( _^65TabOrder  ^74TabStop ``8Visible Pj94 BarShowText TUDAlignButtonudLeftudRightudTopudBottomComCtrlspTUDOrientation udHorizontal udVerticalComCtrls8YfYfTUpDownDirectionupdNoneupdUpupdDownComCtrls P TUDBtnTypebtNextbtPrevComCtrlsx TUDClickEvent$selfPointerSenderTObjectButton TUDBtnTypeTUDChangingEvent$selfPointerSenderTObject AllowChangeBoolean hTUDChangingEventEx$selfPointerSenderTObject AllowChangeBooleanNewValueSmallInt DirectionTUpDownDirection @ TCustomUpDown TCustomUpDownComCtrlsTUpDownTUpDown@9ComCtrls+Hx8Align0Nj4 AlignButton|`Anchors Nj4 ArrowKeysH8j4 Associatep``4 BorderSpacingH  (Color(0`4 Constraints P`Enabled"X`` HintKj4 Increment@Jjd4Max@`Ij4Min`Jjd4MinRepeatInterval((0 OnChanging880 OnChangingEx`HH0OnClick 0OnContextPopup(( 0OnEnter88!0OnExit"0 OnMouseDown#0 OnMouseEnter$0 OnMouseLeave%0 OnMouseMove&0 OnMouseUpP'0 OnMouseWheel(0OnMouseWheelDown)0OnMouseWheelUpP*0OnMouseWheelHorz+0OnMouseWheelLeft  ,0OnMouseWheelRightX`Mj-4 Orientation `.4 ParentColor `/4ParentShowHint`06 PopupMenu@ GjLj15Position `0`2ShowHint( _^35TabOrder  ^44TabStop ^@Oj54 Thousands HjOj65Flat ``7Visible _ Pj84Wrap0TToolButtonStyle tbsButtontbsCheck tbsDropDown tbsSeparator tbsDivider tbsButtonDropComCtrlsh@TToolButtonFlag tbfPressedtbfArrowPressedtbfMouseInArrowtbfDropDownMenuShownComCtrls8TToolButtonFlagshTToolButtonActionLinkTToolButtonActionLinkComCtrlsTToolButtonActionLinkClassTToolBarH TToolButton`6ComCtrls)!@:Action ((0 AllowAllUp 8AutoSize"0``a+`Caption )p~jjDown0``4 DragCursor8dd0DragKindȤhx8DragMode0j4 DropdownMenu P`Enabled 8Pj4Grouped`PjHeightS <Pjj ImageIndex @j4 Indeterminate A j4MarkedHpj4MenuItemXX0 OnArrowClick0OnClick  0OnContextPopup000!0 OnDragDrop@@"0 OnDragOver0``#0 OnEndDock0pp$0 OnEndDrag%0 OnMouseDown&0 OnMouseEnter'0 OnMouseLeave(0 OnMouseMove)0 OnMouseUpP*0 OnMouseWheel+0OnMouseWheelDown,0OnMouseWheelUp``-0 OnStartDockpp.0 OnStartDrag `/4ParentShowHint`06 PopupMenu hj14 ShowCaption `0`2ShowHintlj34Style ``4Visiblep`pj Width xІj54WrapTToolBarOnPaintButton$selfPointerSender TToolButtonStateLongInt8@TToolBarp JComCtrls<Hx8Align|`Anchors 8AutoSizep``4 BorderSpacingP^4 BorderWidth@jjj ButtonHeightj@jиj ButtonWidth"0``a+`Caption@`_4 ChildSizing(0`4 ConstraintsH  (ColorT  j4DisabledImages0``4 DragCursor8dd0DragKindȤhx8DragModejjj DropDownWidth~ 4 EdgeBorders  4 EdgeInner !4 EdgeOuter P`"Enabled @j#4Flatx``0`$Font` 4HeightT Pj%4 HotImagesT `Pj&4Imagesj'4 ImagesWidthhj(4Indent lj)4List `*4 ParentColor `+4 ParentFont `,4ParentShowHint`-6 PopupMenu tj.4 ShowCaptions `0`/ShowHint( _^05TabOrder  ^14TabStop jj25 Transparent ``3Visible Pj44Wrapable50OnClick 60OnContextPopup  70 OnDblClick00080 OnDragDrop@@90 OnDragOver:0 OnPaintButton0pp;0 OnEndDrag((<0OnEnter88=0OnExit>0 OnMouseDown?0 OnMouseEnter@0 OnMouseLeaveA0 OnMouseMoveB0 OnMouseUpPC0 OnMouseWheelD0OnMouseWheelDownE0OnMouseWheelUpF0OnPaint@@G0OnResizeH0OnChangeBoundsppI0 OnStartDrag TToolButtonhTToolBarEnumeratorTToolBarEnumeratorhComCtrls TToolBarFlagtbfUpdateVisibleBarNeededtbfPlacingControlsComCtrls Y??Y TToolBarFlagsx TGrabStylegsSimplegsDouble gsHorLines gsVerLines gsGrippergsButtonComCtrls?5 *` *5? TDragBanddbNonedbMovedbResizeComCtrls"@"p TCoolBand"pComCtrlsTCustomCoolBarHTCustomCoolBarX ComCtrlsX TCoolBandComCtrls8`j`jBitmaph@j4 BorderStyle D@j4BreakHjj Color0j4Control Lj4FixedBackground MM0 FixedSize TPj4HorizontalOnlyS Xj4 ImageIndex\j 4 MinHeight`Pjd 4MinWidth ej 4 ParentColor dj 4 ParentBitmap"p@j 4Text jj5Visible|`k4Width TCoolBands TCoolBandsComCtrlsHTCoolBandMaximizebmNonebmClick bmDblClickComCtrlsTCoolBar(TCoolBarpKComCtrls<H k0 k5Align|`Anchors 8AutoSizeh k4BandBorderStyle0 BandMaximizex k4Bands;aBiDiModeP^4 BorderWidthH  (Color(0`4 Constraints _4DockSite0``4 DragCursor8dd0DragKindȤhx8DragMode~ 4 EdgeBorders 4 EdgeInner 4 EdgeOuter P` Enabled !0 FixedSize "0 FixedOrderx``0`#FontX k$4 GrabStylek %4 GrabWidthk&4HorizontalSpacingT 0k'4Images k(4 ImagesWidth `)4 ParentColor `*4 ParentFont `+4ParentShowHint k,4Bitmap`-6 PopupMenu `0`.ShowHint k/4ShowText 0k04Themed k14Verticalk24VerticalSpacing ``3Visible40OnChange50OnClick 60OnContextPopup  70 OnDblClick80 OnDockDropx90 OnDockOver000:0 OnDragDrop@@;0 OnDragOver0``<0 OnEndDock0pp=0 OnEndDragP>0 OnGetSiteInfo?0 OnMouseDown@0 OnMouseEnterA0 OnMouseLeaveB0 OnMouseMoveC0 OnMouseUpPD0 OnMouseWheelE0OnMouseWheelDownF0OnMouseWheelUp@@G0OnResize``H0 OnStartDockppI0 OnStartDragHHJ0OnUnDock`TTrackBarOrientation trHorizontal trVerticalComCtrls( O \ O \  TTickMark tmBottomRight tmTopLefttmBothComCtrls    H  TTickStyletsNonetsAutotsManualComCtrlsp   TTrackBarScalePostrLefttrRighttrToptrBottomComCtrls I 4 ; C h 4 ; C I TCustomTrackBar TCustomTrackBarH ComCtrls 8AutoSizek4 FrequencyЫk4LineSizek 4Max@k4Min0OnChangex k4 Orientation k4PageSizeЧk4Position k4Reversed` Pk4ScalePosk4SelEndk4SelStart @k4 ShowSelRange  ^4TabStop k4 TickMarks Pk4 TickStyle TTrackBar TTrackBarIComCtrls:Hx 8Align|`!Anchorsp``"4 BorderSpacingH  #(Color(0`$4 Constraints0``%4 DragCursorȤhx&8DragMode P`'Enabledx``0`(Fontk4 Frequency"X`` HintЫk4LineSizek 4Max@k4Min0OnChange)0OnChangeBounds*0OnClick +0OnContextPopup000,0 OnDragDrop@@-0 OnDragOver0pp.0 OnEndDrag((/0OnEnter8800OnExit10 OnMouseDown20 OnMouseEnter30 OnMouseLeave40 OnMouseMove50 OnMouseUpP60 OnMouseWheel70OnMouseWheelDown80OnMouseWheelUpP90OnMouseWheelHorz:0OnMouseWheelLeft  ;0OnMouseWheelRightx<0 OnKeyDown؟=0 OnKeyPressx>0OnKeyUp@@?0OnResizepp@0 OnStartDragHXXA0OnUTF8KeyPressx k4 Orientation k4PageSize `B4 ParentColor `C4 ParentFont `D4ParentShowHint`E6 PopupMenuЧk4Position k4Reversed` Pk4ScalePosk4SelEndk4SelStart `0`FShowHint @k4 ShowSelRange( _^G5TabOrder  ^4TabStop k4 TickMarks Pk4 TickStyle ``HVisible TFindOptionfoFindIgnoresCase foFindExpandsComCtrlsHxffx TFindOptions TCustomTreeView 8TCustomTreeViewXComCtrls  ^4TabStop TTreeNodes  TTreeNodesComCtrls@  TTreeNodex  TTreeNode(ComCtrls TTreeNodeClass  TNodeState nsCut nsDropHilited nsFocused nsSelectednsMultiSelected nsExpanded nsHasChildren nsDeleting nsVisible nsEnablednsBoundnsValidHasChildrenComCtrls! !-!!3! !f!A!q!V!K! !!!-!3!A!K!V!f!q!!!!!!p" TNodeStates!"TNodeAttachModenaAdd naAddFirst naAddChildnaAddChildFirstnaInsertnaInsertBehindComCtrls#*#;#F#0#V#_##*#0#;#F#V#_##TAddMode taAddFirsttaAddtaInsertComCtrls$>$3$D$`$3$>$D$$TMultiSelectStylesmsControlSelect msShiftSelect msVisibleOnly msSiblingOnlyComCtrls$$$ %$0%$$$ %p%TMultiSelectStyle(%%TTreeNodeArray %ETreeNodeError%ETreeNodeErrorPComCtrls(&ETreeViewError`&ETreeViewError8X&ComCtrls&TTreeNodeChangeReason ncTextChanged ncDataChangedncHeightChanged ncImageEffect ncImageIndexncParentChanged ncVisibility ncEnablementncOverlayIndex ncStateIndexncSelectedIndexComCtrls& '\''$'2'i'?' ' x'&O''&''$'2'?'O'\'i'x''8(TTVChangingEvent$selfPointerSenderTObjectNode TTreeNode AllowChangeBoolean (TTVChangedEvent$selfPointerSenderTObjectNode TTreeNode ()TTVNodeChangedEvent$selfPointerSenderTObjectNode TTreeNode ChangeReasonTTreeNodeChangeReason ')TTVEditingEvent$selfPointerSenderTObjectNode TTreeNode AllowEditBoolean (*TTVEditingEndEvent$selfPointerSenderTObjectNode TTreeNodeCancelBoolean *TTVEditedEvent$selfPointerSenderTObjectNode TTreeNodeS AnsiString 8+TTVExpandingEvent$selfPointerSenderTObjectNode TTreeNodeAllowExpansionBoolean +TTVCollapsingEvent$selfPointerSenderTObjectNode TTreeNode AllowCollapseBoolean H,TTVExpandedEvent$selfPointerSenderTObjectNode TTreeNode ,TTVCompareEvent$selfPointerSenderTObjectNode1 TTreeNodeNode2 TTreeNodeCompareLongInt @-TTVCustomDrawEvent$selfPointerSenderTCustomTreeViewARectTRect DefaultDrawBoolean 0 -TTVCustomDrawItemEvent$selfPointerSenderTCustomTreeViewNode TTreeNodeStateTCustomDrawState DefaultDrawBoolean x p.TTVCustomDrawArrowEvent$selfPointerSenderTCustomTreeViewARectTRect ACollapsedBoolean 0 (/TTVAdvancedCustomDrawEvent$selfPointerSenderTCustomTreeViewARectTRectStageTCustomDrawStage DefaultDrawBoolean 0h /TTVAdvancedCustomDrawItemEvent$selfPointerSenderTCustomTreeViewNode TTreeNodeStateTCustomDrawStateStageTCustomDrawStage PaintImagesBoolean DefaultDrawBoolean xh p0TTVCustomCreateNodeEvent$selfPointerSenderTCustomTreeView ATreeNode TTreeNode p1TTVCreateNodeClassEvent$selfPointerSenderTCustomTreeView NodeClassTTreeNodeClass !1TTVHasChildrenEvent$selfPointerSenderTCustomTreeViewANode TTreeNodeBoolean p2TTreeNodeCompare$selfPointerNode1 TTreeNodeNode2 TTreeNodeLongInt 2 TOldTreeNodeInfo%x3 TOldTreeNodeInfox3%   !3 TTreeNodeInfox4 TTreeNodeInfox4  4 TDelphiNodeInfoX5 TDelphiNodeInfoX5 `5PDelphiNodeInfo0686TTreeNodesEnumerator`6TTreeNodesEnumerator ComCtrls6 TNodeCache6 TNodeCache6 7 PNodeCacheX7`7TTreeViewStatetvsScrollbarChangedtvsMaxRightNeedsUpdatetvsTopsNeedsUpdatetvsMaxLvlNeedsUpdatetvsTopItemNeedsUpdatetvsBottomItemNeedsUpdatetvsCanvasChanged tvsDragged tvsIsEditingtvsStateChangingtvsManualNotify tvsUpdating tvsPaintingtvoFocusedPainting tvsDblClickedtvsTripleClickedtvsQuadClickedtvsSelectionChangedtvsEditOnMouseUptvsSingleSelectOnMouseUpComCtrls7 8 8#88488?8 ]877 y88788 L8778 m8977777 8#848?8L8]8m8y88888888:TTreeViewStates9:TTreeViewOptiontvoAllowMultiselect tvoAutoExpandtvoAutoInsertMarktvoAutoItemHeighttvoHideSelection tvoHotTracktvoKeepCollapsedNodes tvoReadOnlytvoRightClickSelect tvoRowSelecttvoShowButtons tvoShowLines tvoShowRoottvoShowSeparators tvoToolTipstvoNoDoubleClickExpand tvoThemedDrawtvoEmptySpaceUnselectComCtrls:;.;<;N;+<`;q;};<;; ; ; ; ; ;<;X<;.;<;N;`;q;};;;;;;;;;<<+<@=TTreeViewOptionsP<=TTreeViewExpandSignType tvestThemetvestPlusMinus tvestArrowtvestArrowFilltvestAngleBracketComCtrls>n>T>_>E>:>>:>E>T>_>n>>TTreeViewInsertMarkTypetvimNonetvimAsFirstChildtvimAsNextSiblingtvimAsPrevSiblingComCtrls?K?\?n?B??B?K?\?n?? TTreeView@ TTreeView xComCtrlsjHx8Align|`Anchors Pl0l5 AutoExpandp``4 BorderSpacingl`lplBackgroundColorhQ_X9 BorderStyleP^4 BorderWidthH (Color(0`4 ConstraintsllDefaultItemHeight0DisabledFontColor8dd0DragKind0``4 DragCursorȤhx8DragMode P`Enabled0ExpandSignColorlPl$m ExpandSignSize>l!4ExpandSignTypex``0`"Font pll#5 HideSelection ll$5HotTrack%0 HotTrackColorT @m&4Images PBm'4 ImagesWidth0l`l@+m(Indent 0ll)5 MultiSelect%Pl*4MultiSelectStyle `+4 ParentColor `,4 ParentFont `-4ParentShowHint`.6 PopupMenu pll/5ReadOnly lpl05RightClickSelect ll15 RowSelectxg8l24 ScrollBarsHl 34SelectionColorLl44SelectionFontColor PP50SelectionFontColorUsedd l64SeparatorColor ll75 ShowButtons `0`8ShowHint l`l95 ShowLines Pll:5ShowRoot ll;5ShowSeparators(hЕl<4SortTypeT xDm=4 StateImagesFm>4StateImagesWidth( _^?5TabOrder  ^4TabStop((0Tag lpl@5ToolTips ``AVisible8-B0 OnAdditionh0C0OnAdvancedCustomDrawh1D0OnAdvancedCustomDrawItem)E0OnChange )F0 OnChangingG0OnClick8-H0 OnCollapsed,I0 OnCollapsing-J0 OnCompare K0OnContextPopuph2L0OnCreateNodeClass1((M0OnCustomCreateItemh.88N0 OnCustomDraw /HHO0OnCustomDrawItem/XXP0OnCustomDrawArrow  Q0 OnDblClick8-hhR0 OnDeletion000S0 OnDragDrop@@T0 OnDragOver+U0OnEdited*xxV0 OnEditing0+W0 OnEditingEnd0ppX0 OnEndDrag((Y0OnEnter88Z0OnExit8-[0 OnExpanded@,\0 OnExpanding8-]0OnGetImageIndex8-^0OnGetSelectedIndex2_0 OnHasChildrenx`0 OnKeyDown؟a0 OnKeyPressxb0OnKeyUpc0 OnMouseDownd0 OnMouseEntere0 OnMouseLeavef0 OnMouseMoveg0 OnMouseUpPh0 OnMouseWheeli0OnMouseWheelDownj0OnMouseWheelUpPk0OnMouseWheelHorzl0OnMouseWheelLeft  m0OnMouseWheelRight *n0 OnNodeChanged@@o0OnResizep0OnSelectionChangedPPq0 OnShowHintppr0 OnStartDragHXXs0OnUTF8KeyPress> X\t8Optionsp жlu4Itemsv0 TreeLineColorbw0TreeLinePenStyle@@TTVGetNodeText$selfPointer$result AnsiStringNode TTreeNode AnsiString hWTTreeNodeExpandedStateWTTreeNodeExpandedStatep!ComCtrls8XTCustomHeaderControlxXTHeaderSections0-ComCtrlsXTHeaderSection+ComCtrlsh(m4 AlignmentS ,m4 ImageIndex4@m'4MaxWidth0m4MinWidth"@m4Text@m@m5Width Hm4VisibleP< OriginalIndexXTSectionDragEvent$selfPointerSenderTObject FromSectionTHeaderSection ToSectionTHeaderSection AllowDragBooleanZZ ZTCustomSectionNotifyEvent$selfPointer HeaderControlTCustomHeaderControlSectionTHeaderSectionaZ[TSectionTrackState tsTrackBegin tsTrackMove tsTrackEndComCtrls\5\N\B\p\5\B\N\\TCustomSectionTrackEvent$selfPointer HeaderControlTCustomHeaderControlSectionTHeaderSectionWidthLongIntStateTSectionTrackStateaZh\\THeaderSectionClassZ] TCustomHCCreateSectionClassEvent$selfPointerSenderTCustomHeaderControl SectionClassTHeaderSectionClassa]]TCustomHeaderControl`"ComCtrls 0 DragReorderT 0nm4Imagesnm4 ImagesWidthXom4Sectionsx[HH0 OnSectionDragXX0OnSectionEndDrag\0OnSectionClick\0OnSectionResize]((0OnSectionTrack\880OnSectionSeparatorDblClickH^hh0OnCreateSectionClassP^THeaderSectionStatehsNormalhsHot hsPressedComCtrlsa?a6aEaha6a?aEaaTHeaderSection"@aTHeaderSectionsbTHeaderControlHbTHeaderControl.a<ComCtrls)Hx8Align|`Anchors;aBiDiModeP^4 BorderWidthp``4 BorderSpacing0``4 DragCursor8dd 0DragKindȤhx!8DragMode P`"Enabledx``0`#FontT 0nm4Imagesnm4 ImagesWidth(0`$4 ConstraintsXom4Sections `0`%ShowHint &8ParentBiDiMode `'4 ParentFont `(4ParentShowHint`)6 PopupMenu ``*Visible +0OnContextPopupH^hh0OnCreateSectionClass000,0 OnDragDrop@@-0 OnDragOver0``.0 OnEndDock0pp/0 OnEndDrag00 OnMouseDown10 OnMouseEnter20 OnMouseLeave30 OnMouseMove40 OnMouseUpP50 OnMouseWheel60OnMouseWheelDown70OnMouseWheelUpP80OnMouseWheelHorz90OnMouseWheelLeft  :0OnMouseWheelRight@@;0OnResize\0OnSectionClick\0OnSectionResize]((0OnSectionTrackb k k 0]kTListItemSubItems8 ComCtrlsl TUpDownButton:HComCtrlsPl l TTreeStringsAComCtrlsl0avXIvpmP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpT_T``T`0`ЅT`TTT TTTT T@m`Tpa0aTPmڄa````^^``Ў` `@`}`_a`^+`+`P^``_` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`@m`0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``-a"``p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``P`P`М`0``@U``X`C``_aB`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``n"``p`J`<`P```0` @`@`@`p_``Б``p`%a&a'a #`p/a``` ````_@``a```p`X`|`````0a`a0`P1`R`@ a0````Pn?n/_`^` _HaP_ `@_`_a ap_HaP`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``-a"``p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``Pn?n/_`^` _HaP_ `@_`_a ap_HaP`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``-a"``p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``PaP݄4CT9C9C a9C7C8C0AC@ACPAC```T`TTPT`TpT`T``T`0`ЅT`TTT TTTT TFn`Tpa0aTpInڄa```PCa0~````Ў` `@`}`_a*`+`+`,`````Ba`0`0_p_ ` ?`P8a9a0/`O`P`P`S`S``Щ`p__`````_``_08` _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `` `p`z````P`AaP_ ``aa ap_0>`P`М`0``@U``X`C``_aB`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I`` Ln"``p`J`<`P```0` @`@`@`p_``Б``p`%a&a'a #`p/a``` ````_@``a```p`X`|`````0a`a0`P1`R`@ a0````P`P`М`0``@U``X`C``_aB`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``o"``p`J`<`P```0` @`@`@`p_``Б``p`%a&a'a #`p/a``` ````_@``a```p`o|`````0a`a0`P1`R`@ a0````P`P`М`0``@U``X`C``_aB`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``o"``p`J`<`P```0` @`@`@`p_``Б``p`%a&a'a #`p/a``` ````_@``a```p`o|`````0a`a0`P1`R`@ a0````P`P`М`0``@U``X`C``_aB`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``n"``p`J`<`P```0` @`@`@`p_``Б``p`%a&a'a #`p/a``` ````_@``a```p`X`|`````0a`a0`P1`R`@ a0````PaP݄4CT9C9C a9C7C8C0AC@ACPAC```T`TTPT`TpT hgT\gT`0`ЅT`TTT TTTT Tpun`Tpa0aTygڄa```PCa`Yg```Ў` `@`}`_a*`+`+`,```Qg`Ba`0`0_P`g ` ?`P8a9a0/`O`P`P`S`S``Щ`p__`````_``_08` _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `` `p`Pfg```P`WgP_ ``ap_g ap_0>`P`М`0``@U``X`C``PagaB`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``Xg"``p`J`<`P```0` @`@`@`p_``Б``wg%a&a'a #`p/a``` ````_@``a```p`X`|`````0a`a0`P1`R`@ a0````P,0H.p eP3C4CP6C9C9C:C9C7C8C0AC@ACPACme mPi"TFPGObjectList-X888h08.oP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpT\oT``T`0`ЅT`TTT TTTT T+o`Tpa0aTnڄa`o``^^``Ў` `@`}`_a`^+`+`P^``7o` `Po0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`Eo0_` n`x`@7`7`7`PY`PZ`_o_o@eo `p`/_`^` _HaP_ `@_`na ap_HaP`М`0`n0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``n"``p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``Po.Xp8A8A.oP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpT\oT``T`0`ЅT`TTT TTTT T+o`Tpa0aTnڄa`o``^^``Ў` `@`}`_a`^+`+`P^``7o` `Po0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`Eo0_` n`x`@7`7`7`PY`PZ`_o_o@eo `p`/_`^` _HaP_ `@_`na ap_HaP`М`0`n0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``n"``p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``Pz7OO?OO?z7>z7yy?qxsqxs?` qxs?qxsy?yO?Oz7z7>?z7z7>O?OTPageHTBeforeShowPageEvent$selfPointerASenderTObjectANewPageTPage ANewIndexLongIntNHTPagel%ExtCtrlsPI0 OnBeforeShow;aBiDiMode@`_4 ChildSizingH  (Color`4Left@` 4Topp` 4Width`4Height 0OnContextPopup((0OnEnter880OnExit0 OnMouseDown0 OnMouseEnter0 OnMouseLeave0 OnMouseMove0 OnMouseUpP0 OnMouseWheel0OnMouseWheelDown0OnMouseWheelUp@@0OnResize 8ParentBiDiMode ` 4ParentShowHint`!6 PopupMenu( _^"5TabOrder  ^#4TabStop $8VisibleXITImagePaintBackgroundEvent$selfPointerASenderTObjectACanvasTCanvasARectTRectp0N TNotebookO TNotebook(v0ExtCtrls!mm5 PageIndexm4PagesHx8Align 8AutoSize|`Anchors;aBiDiModep``4 BorderSpacingH  (Color(0`4 Constraints0``4 DragCursorȤhx8DragMode P`Enabled0OnChangeBounds 0OnContextPopup0000 OnDragDrop@@0 OnDragOver0pp0 OnEndDrag(( 0OnEnter88!0OnExit"0 OnMouseDown#0 OnMouseEnter$0 OnMouseLeave%0 OnMouseMove&0 OnMouseUpP'0 OnMouseWheel(0OnMouseWheelDown)0OnMouseWheelUp@@*0OnResizepp+0 OnStartDrag ,8ParentBiDiMode`-6 PopupMenu( _^.5TabOrder  ^/4TabStopO TUNBPagesV TUNBPageshExtCtrlsWTTimerHWTTimer0 ExtCtrls 8Enabled``8Interval8OnTimerhh0 OnStartTimerxx0 OnStopTimerxWTIdleTimerAutoEvent itaOnIdle itaOnIdleEnditaOnUserInputExtCtrlsXXXXYXXX@YTIdleTimerAutoEventsYhYTCustomIdleTimerYTCustomIdleTimer0 ExtCtrlsY TIdleTimerZ TIdleTimerZ ExtCtrls 8 AutoEnabledY0AutoStartEventY0 AutoEndEvent 8Enabled``8Interval8OnTimerhh0 OnStartTimerxx 0 OnStopTimerHZ TShapeType stRectanglestSquare stRoundRect stRoundSquare stEllipsestCirclestSquaredDiamond stDiamond stTrianglestTriangleLeftstTriangleRightstTriangleDownstStar stStarDownExtCtrls0\\\|\M\b\n\Y\\ \ \\ \ \ \]M\Y\b\n\|\\\\\\\\\\]TShape@^TShape`1ExtCtrls"Hx8Align|`Anchorsp``4 BorderSpacing 0n4Brush(0`4 Constraints0``4 DragCursor8dd0DragKindȤhx8DragMode P`Enabled `4ParentShowHint(n4Pen0OnChangeBounds0000 OnDragDrop@@0 OnDragOver0``0 OnEndDock0pp0 OnEndDrag0 OnMouseDown 0 OnMouseEnter!0 OnMouseLeave"0 OnMouseMove#0 OnMouseUpP$0 OnMouseWheel%0OnMouseWheelDown&0OnMouseWheelUpP'0OnMouseWheelHorz(0OnMouseWheelLeft  )0OnMouseWheelRight*0OnPaint@@+0OnResize``,0 OnStartDockpp-0 OnStartDrag]8@n.4Shape `0`/ShowHint ``0Visiblep^ TResizeStylersLinersNone rsPatternrsUpdateExtCtrlseeeef(feeefhfTCanOffsetEvent$selfPointerSenderTObject NewOffsetLongIntAcceptBoolean fTCanResizeEvent$selfPointerSenderTObjectNewSizeLongIntAcceptBoolean gTCustomSplittergTCustomSplitterExtCtrlsg TSplitterh TSplitterh*ExtCtrlsHx8Align|`Anchors 0AutoSnap  "n4BeveledH  (Color(0`4 Constraints0:Cursor _P^DoubleBuffered`4Height"n4MinSizeg0 OnCanOffsetg0 OnCanResize0OnChangeBounds0OnMovedP0 OnMouseWheel0OnMouseWheelDown0OnMouseWheelUpP0OnMouseWheelHorz0OnMouseWheelLeft   0OnMouseWheelRight!0OnPaint `"4 ParentColor hS_#4ParentDoubleBuffered `$4ParentShowHint`%6 PopupMenuh( &8 ResizeAnchor f'0 ResizeStyle `0`(ShowHint ``)Visiblep` 4WidthPh TPaintBoxn TPaintBox`3ExtCtrls%Hx8Align|`Anchorsp``4 BorderSpacingH  (Color(0`4 Constraints0``4 DragCursorȤhx8DragMode P`Enabledx``0`Font"X`` Hint `4 ParentColor `4 ParentFont `4ParentShowHint`6 PopupMenu `0`ShowHint ``Visible0OnChangeBounds0OnClick  0OnContextPopup  !0 OnDblClick000"0 OnDragDrop@@#0 OnDragOver0pp$0 OnEndDrag%0 OnMouseDown&0 OnMouseEnter'0 OnMouseLeave(0 OnMouseMove)0 OnMouseUpP*0 OnMouseWheel+0OnMouseWheelDown,0OnMouseWheelUpP-0OnMouseWheelHorz.0OnMouseWheelLeft  /0OnMouseWheelRight00OnPaint@@10OnResizepp20 OnStartDrag o TCustomImage(w TCustomImage`ExtCtrls`wTImagewTImagew?ExtCtrls08(`o4AntialiasingModeHx8Align|`Anchors 8AutoSizep``4 BorderSpacing h@o4Center io4KeepOriginXWhenClipped jo4KeepOriginYWhenClipped(0`4 Constraints0``4 DragCursorȤhx8DragMode P`Enabled,o4 ImageIndex8 o4 ImageWidthT 0o4Images0OnChangeBounds0OnClick  0OnContextPopup  !0 OnDblClick000"0 OnDragDrop@@#0 OnDragOver0pp$0 OnEndDrag%0 OnMouseDown&0 OnMouseEnter'0 OnMouseLeave(0 OnMouseMove)0 OnMouseUpP*0 OnMouseWheel+0OnMouseWheelDown,0OnMouseWheelUpP-0OnMouseWheelHorz.0OnMouseWheelLeft  /0OnMouseWheelRight00OnPaint@@10OnPictureChangedOPP20OnPaintBackground@@30OnResizepp40 OnStartDrag `54ParentShowHint`@o64Picture`76 PopupMenu ko84 Proportional `0`9ShowHint mo:4Stretch n o;4StretchOutEnabled oo<4StretchInEnabled lo=4 Transparent ``>Visiblew TBevelStyle bsLoweredbsRaisedExtCtrls`~~Ђ TBevelShapebsBoxbsFrame bsTopLine bsBottomLine bsLeftLine bsRightLinebsSpacerExtCtrls&3>Jh&3>JȃTBevelTBevel`#ExtCtrlsHx8Align|`Anchorsp``4 BorderSpacing(0`4 Constraints `4ParentShowHint`,n4Shape `0`ShowHint(n4Style ``Visible0OnChangeBounds@@0OnResize0 OnMouseDown0 OnMouseEnter0 OnMouseLeave0 OnMouseMove0 OnMouseUpP0 OnMouseWheel 0OnMouseWheelDown!0OnMouseWheelUp"0OnPaint@ TColumnLayoutclHorizontalThenVerticalclVerticalThenHorizontalExtCtrlsȈȈ8TCustomRadioGroupXTCustomRadioGroup@sExtCtrls TRadioGroupЉ TRadioGrouphȉHExtCtrls9Hx8Align|`Anchors n4AutoFill 8AutoSize;aBidiModep``4 BorderSpacing"0``a+`Caption@`_4 ChildSizingA``% ClientHeight`B``% ClientWidthH  (Colorn4 ColumnLayoutn4Columns(0`4 Constraints _P^DoubleBuffered0``4 DragCursorȤhx8DragMode P` Enabledx``0`!Font`nn"5 ItemIndex0n#4Items$0OnChangeBounds%0OnClick  &0 OnDblClick000'0 OnDragDrop@@(0 OnDragOver0pp)0 OnEndDrag((*0OnEnter88+0OnExit,0 OnItemEnter-0 OnItemExitx.0 OnKeyDown؟/0 OnKeyPressx00OnKeyUp10 OnMouseDown20 OnMouseEnter30 OnMouseLeave40 OnMouseMove50 OnMouseUpP60 OnMouseWheel70OnMouseWheelDown80OnMouseWheelUp@@90OnResize:0OnSelectionChangedpp;0 OnStartDragHXX<0OnUTF8KeyPress @`h=9ParentBackground >8ParentBidiMode `?4 ParentFont `@4 ParentColor hS_A4ParentDoubleBuffered `B4ParentShowHint`C6 PopupMenu `0`DShowHint( _^E5TabOrder  ^F4TabStop ``GVisibleTCheckGroupClicked$selfPointerSenderTObjectIndexLongIntHTCustomCheckGroupTCustomCheckGroup@sExtCtrls TCheckGroup( TCheckGroup EExtCtrls6Hx8Align|`Anchors ^n4AutoFill 8AutoSize;aBiDiModep``4 BorderSpacing"0``a+`Caption@`_4 ChildSizingA``% ClientHeight`B``% ClientWidthH  (Color`in4 ColumnLayoutln4Columns(0`4 Constraints _P^DoubleBuffered0``4 DragCursorȤhx8DragMode P` Enabledx``0`!Font ln"4Items#0OnChangeBounds$0OnClick  %0 OnDblClick000&0 OnDragDrop@@'0 OnDragOver0pp(0 OnEndDrag(()0OnEnter88*0OnExit+0 OnItemClickx,0 OnKeyDown؟-0 OnKeyPressx.0OnKeyUp/0 OnMouseDown00 OnMouseEnter10 OnMouseLeave20 OnMouseMove30 OnMouseUpP40 OnMouseWheel50OnMouseWheelDown60OnMouseWheelUp@@70OnResizepp80 OnStartDragHXX90OnUTF8KeyPress @`h:9ParentBackground ;8ParentBiDiMode `<4 ParentFont `=4 ParentColor hS_>4ParentDoubleBuffered `?4ParentShowHint`@6 PopupMenu `0`AShowHint( _^B5TabOrder  ^C4TabStop ``DVisible` TBoundLabel TBoundLabel0*ExtCtrls"N`P``uAnchorSideLeftN`P``u AnchorSideTopN`P``uAnchorSideRightN`P``uAnchorSideBottom`4Left@` 4Top"0``a+`CaptionH  (Color0``4 DragCursorȤhx8DragMode`4Height `4 ParentColor `4 ParentFont `4ParentShowHintx``0`Font`6 PopupMenu 9^g4 ShowAccelChar `0`ShowHint <dg4Layout :eg4WordWrap0OnClick  0 OnDblClick0000 OnDragDrop@@0 OnDragOver0pp 0 OnEndDrag!0 OnMouseDown"0 OnMouseEnter#0 OnMouseLeave$0 OnMouseMove%0 OnMouseUpP&0 OnMouseWheel'0OnMouseWheelDown(0OnMouseWheelUppp)0 OnStartDrag0TLabelPositionlpAbovelpBelowlpLeftlpRightExtCtrlsȪȪ(TCustomLabeledEditXTCustomLabeledEdit@ExtCtrls TLabeledEditث TLabeledEditЫGExtCtrls8h0Qg4 Alignment|`Anchors 0 AutoSelect 8AutoSize;aBidiModep``4 BorderSpacinghQ_X9 BorderStylee` 8CharCaseH  (Color(0`4 Constraints _P^DoubleBuffered0``4 DragCursorȤhx8DragModefh 8EchoMode< EditLabel P`Enabledx``0`Fontpwn 4 LabelPositionxn!4 LabelSpacing04g"4 MaxLength #8ParentBidiMode `$4 ParentColor hS_%4ParentDoubleBuffered `&4 ParentFont `'4ParentShowHintH05g(4 PasswordChar`)6 PopupMenu 0 x *:ReadOnly `0`+ShowHint( _^,5TabOrder  ^-4TabStop"0``a.5Text"P /:TextHint ``0Visible10OnChange20OnClick  30 OnDblClick00040 OnDragDrop@@50 OnDragOverPP60 OnEditingDone0pp70 OnEndDrag((80OnEnter8890OnExitx:0 OnKeyDown؟;0 OnKeyPressx<0OnKeyUp=0 OnMouseDown>0 OnMouseEnter?0 OnMouseLeave@0 OnMouseMoveA0 OnMouseUpPB0 OnMouseWheelC0OnMouseWheelDownD0OnMouseWheelUpppE0 OnStartDragHXXF0OnUTF8KeyPress TBevelWidth TCustomPanel0 TCustomPanelExtCtrlshTPanelTPanelVExtCtrlsGHx8AlignhPn4 Alignment|`Anchors 8AutoSizep``4 BorderSpacingІn 4 BevelColorЉn4 BevelInner0n4 BevelOuter(Pn4 BevelWidth;aBidiModeP^4 BorderWidthhQ_X9 BorderStyle"0``a+`Caption@`_4 ChildSizingA``% ClientHeight`B``% ClientWidthH  (Color(0` 4 Constraints _!4DockSite _P^"DoubleBuffered0``#4 DragCursor8dd$0DragKindȤhx%8DragMode P`&Enabledx``0`'Font (0 FullRepaint @`h)9ParentBackground *8ParentBidiMode `+4 ParentColor hS_,4ParentDoubleBuffered `-4 ParentFont `.4ParentShowHint`/6 PopupMenu n04 ShowAccelChar `0`1ShowHint( _^25TabOrder  ^34TabStop p#_44UseDockManagern54VerticalAlignment ``6Visible n74Wordwrap80OnChangeBounds90OnClick :0OnContextPopup;0 OnDockDropx<0 OnDockOver  =0 OnDblClick000>0 OnDragDrop@@?0 OnDragOver0``@0 OnEndDock0ppA0 OnEndDrag((B0OnEnter88C0OnExitPD0 OnGetSiteInfoppE0OnGetDockCaptionF0 OnMouseDownG0 OnMouseEnterH0 OnMouseLeaveI0 OnMouseMoveJ0 OnMouseUpPK0 OnMouseWheelL0OnMouseWheelDownM0OnMouseWheelUpPN0OnMouseWheelHorzO0OnMouseWheelLeft  P0OnMouseWheelRightQ0OnPaint@@R0OnResize``S0 OnStartDockppT0 OnStartDragHHU0OnUnDockиTCustomFlowPanel  TFlowPanel`TCustomFlowPanel`ExtCtrlsTFlowPanelControlList@%ExtCtrls TFlowStylefsLeftRightTopBottomfsRightLeftTopBottomfsLeftRightBottomTopfsRightLeftBottomTopfsTopBottomLeftRightfsBottomTopLeftRightfsTopBottomRightLeftfsBottomTopRightLeftExtCtrlsW-lB-BWlX TFlowPanel LExtCtrls=Hx8AlignhPn4 Alignment|`Anchors 8AutoSize n4AutoWrapЉn4 BevelInner0n4 BevelOuter(Pn4 BevelWidth;aBiDiModeP^4 BorderWidthp``4 BorderSpacinghQ_X9 BorderStyle"0``a+`CaptionH  (Color(0`4 Constraints n4 ControlList p#_4UseDockManager _ 4DockSite _P^!DoubleBuffered0``"4 DragCursor8dd#0DragKindȤhx$8DragMode P`%Enabled n&4 FlowLayoutn'4 FlowStyle (0 FullRepaintx``0`)Font *8ParentBiDiMode `+4 ParentColor hS_,4ParentDoubleBuffered `-4 ParentFont `.4ParentShowHint`/6 PopupMenu `0`0ShowHint( _^15TabOrder  ^24TabStop ``3VisibleP40OnAlignInsertBeforeh50OnAlignPosition60OnClick70OnConstrainedResize 80OnContextPopup90 OnDockDropx:0 OnDockOver  ;0 OnDblClick000<0 OnDragDrop@@=0 OnDragOver0``>0 OnEndDock0pp?0 OnEndDrag((@0OnEnter88A0OnExitPB0 OnGetSiteInfoC0 OnMouseDownD0 OnMouseEnterE0 OnMouseLeaveF0 OnMouseMoveG0 OnMouseUp@@H0OnResize``I0 OnStartDockppJ0 OnStartDragHHK0OnUnDockExtCtrls TFlowPanelControl  TWrapAfterwaAutowaForcewaAvoidwaForbidExtCtrls`}}TFlowPanelControl#ExtCtrls(Лn4Control0n4 WrapAfterS9Index TFlowPanelControlList TBalloonFlagsbfNonebfInfo bfWarningbfErrorExtCtrls8p_XfX_fpTCustomTrayIconTCustomTrayIcon&ExtCtrlsp TTrayIcon TTrayIcon(ExtCtrls0 BalloonFlags0 BalloonHint 0BalloonTimeout0 BalloonTitle(o4 PopUpMenu&o4Icon@&o4Hint o 4Visible 0OnClick 0 OnDblClick 0 OnMouseDown(( 0 OnMouseMove0 OnMouseUp0OnPaintTBandDrawingStyledsNormal dsGradientExtCtrls%H%pTBandPaintOption bpoGrabberbpoFrame bpoGradient bpoRoundRectExtCtrls8TBandPaintOptionshTBandDragEvent$selfPointerSenderTObjectControlTControlDragBoolean TBandInfoEvent$selfPointerSenderTObjectControlTControlInsetsTRect PreferredSizeLongIntRowCountLongInt0TBandMoveEvent$selfPointerSenderTObjectControlTControlARectTRect0TBandPaintEvent$selfPointerSenderTObjectControlTControlACanvasTCanvasARectTRectOptionsTBandPaintOptionsp0XTRowSize TBandMovebmNonebmReadybmMovingExtCtrls8cT[T[c TCursorDesign cdDefault cdGrabber cdRestrictedExtCtrls 0 ` TCtrlBand TCtrlBand*ExtCtrlsTFPGObjectList$1$crc33D575F3 TCtrlBands8TFPGObjectList$1$crc33D575F3-0ExtCtrlsp TCtrlBands+ExtCtrls TFPGListEnumerator$1$crc33D575F3 TFPGListEnumerator$1$crc33D575F3,ExtCtrls@ TCompareFunc Item1 Item2PT PTypeListExtCtrlsExtCtrls8TCustomControlBar0`hTCustomControlBar.ExtCtrls TControlBar TControlBarx8PExtCtrlsAHx8Align|`Anchors 0AutoDock 0AutoDrag 8AutoSizeЉn4 BevelInner0n4 BevelOuter(Pn4 BevelWidth;aBiDiModeP^4 BorderWidthH  (Color(0`4 Constraints _4DockSite _P^DoubleBuffered0``4 DragCursor8dd0DragKindȤhx8DragMode@0o 4 DrawingStyle P`!EnabledhІo"4GradientDirectionpo #4GradientEndColoro $4GradientStartColor `%4 ParentColor hS_&4ParentDoubleBuffered `'4 ParentFont `(4ParentShowHinto)4Picture`*6 PopupMenu0@o+4RowSize ,0RowSnap `0`-ShowHint( _^.5TabOrder  ^/4TabStop ``0Visible10 OnBandDrag20 OnBandInfoP((30 OnBandMove8840 OnBandPaintgHH50 OnCanResize60OnClick70OnConstrainedResize 80OnContextPopup90 OnDockDropx:0 OnDockOver  ;0 OnDblClick000<0 OnDragDrop@@=0 OnDragOver0``>0 OnEndDock0pp?0 OnEndDrag((@0OnEnter88A0OnExitPB0 OnGetSiteInfoC0 OnMouseDownD0 OnMouseEnterE0 OnMouseLeaveF0 OnMouseMoveG0 OnMouseUpPH0 OnMouseWheelI0OnMouseWheelDownJ0OnMouseWheelUpXXK0OnPaint@@L0OnResize``M0 OnStartDockppN0 OnStartDragHHO0OnUnDock8TCheckGroupStringListA ExtCtrls0TRadioGroupStringListxD ExtCtrlsp0PpЂ0Pp؃(Hp؄8`Ѕ TLCLPlatform lpGtklpGtk2lpGtk3lpWin32lpWinCElpCarbonlpQTlpQt5lpQt6lpfpGUIlpNoGUIlpCocoa lpCustomDrawnlpMUILCLPlatformDef   # H # TLCLPlatforms@ p@ p@80H@0SP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]TS`TSSo`SSo@o TDialogButtonH@oP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^TSSpSSSПS`SSPSSPS`oРoTDialogButtonsP1CP3C4CP6C9C9C0o9C7C8C0AC@ACPACЪoopoopoC0oCCCCCCpooЫoo0o`ooooC oCCCoo@'pp'pCCopooo@oooo0ooo o`oopoдoopoo0o`oooo@oo opooooopoo@oooooo@ooo0oooooooopo0ooo o`ooo0o`ooopooooo@ooooo@opoooo@oooo0o`oooo pPpppp0ppp pPpppp ppnp ppP p'p'p(pP*p*p*p*p+p@+pp+p+p+p ,pP,p,p,p@-p.p/p-p-p.p@.p0p 1p`1p1p1p3p05pp5p5p5p6p@6p6pP9ppp`>pFp@FppFpFpFp Gp`GpGpHp@HppHpHpHpIp0Ip`IpIpIpIp Jp`JpJpJpKpPKpKpKpKpLpLpPLpLpMpPMpMpMpNp0Np`NpNpNp@OpOpOpOp Pp`PpPpPpPQpQpQpQp@RpRpRpRpSpSpTpTp UpVp@VppVp0]pbpgphp@hphphphp ipPipipjp`jpipjpkpkplplplpnprp@rpprprptptp up0wp@ypcp@cppcpcpcp dp{pP|p{p{p |p|p@}p`}p}p}p~p0~p`~pgp TWidgetSet5X1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEInterfaceException1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEInterfaceError X1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEInterfaceCriticalx 1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEInterfaceWarning   PEventHandler PProcessEventHandler@ PPipeEventHandlerh PSocketEventHandler TChildExitReasoncerExit cerSignal InterfaceBase    0  TPipeReasonprDataAvailableprBroken prCanWrite InterfaceBaseP ~  n n ~  TPipeReasons  TApplicationMainLoop$selfPointer0 TWaitHandleEvent$selfPointerADataInt64AFlagsLongWord`p TChildExitEvent$selfPointerADataInt64AReasonTChildExitReasonAInfoLongWord `  TPipeEvent$selfPointerADataInt64AReasons TPipeReasons( ` TSocketEvent$selfPointerADataInt64AFlagsLongWord` TLCLWndMethod$selfPointer TheMessage TLMessage 0TLCLCapabilitylcAsyncProcesslcCanDrawOutsideOnPaintlcNeedMininimizeAppWithMainFormlcApplicationTitlelcApplicationWindow lcFormIcon lcModalWindowlcDragDockStartOnTitleClicklcAntialiasingEnabledByDefaultlcLMHelpSupport%lcReceivesLMClearCutCopyPasteReliablylcSendsUTF8KeyPress$lcAllowChildControlsInNativeControls lcEmulatedMDIlcAccessibilitySupportlcRadialGradientBrushlcTransparentWindow lcTextHintlcNativeTaskDialoglcCanDrawHiddenlcAccelleratorKeys InterfaceBaseW LG0  k"4 { )"0Lk{)4GW TDialogButton(H TDialogButton InterfaceBaseTDialogButtonsTDialogButtonsP InterfaceBase TWSTimerProc$selfPointerH TWidgetSet TWidgetSet InterfaceBaseTWidgetSetClassEInterfaceExceptionEInterfaceException InterfaceBaseXEInterfaceErrorEInterfaceError InterfaceBaseEInterfaceCriticalEInterfaceCritical InterfaceBaseXEInterfaceWarningEInterfaceWarning  InterfaceBaseTInputDialogFunction  InputCaption InputPrompt MaskInputValueTPromptDialogFunction  DialogCaption DialogMessage DialogTypeButtons ButtonCount DefaultIndex EscapeResult UseDefaultPosXYTQuestionDialogFunctionaCaptionaMsgDlgType@ButtonsHelpCtxTLoadBitmapFunction'% hInstanceH lpBitmapNameTLoadCursorFunction'% hInstanceH lpCursorNamepTLoadIconFunction'% hInstanceH lpIconName81CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TWSPrivate1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TWSObjecth 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTWSLCLComponent!1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACpTWSLCLReferenceComponentDestroyReferencep(!SP3C4CP6C9C9C:C9C7C8C0AC@ACPACTWSClassesList TWSPrivate TWSPrivate WSLCLClasses8TWSPrivateClasshp TWSObject TWSObject WSLCLClassesTWSObjectClass  TWSLCLComponent( TWSLCLComponent WSLCLClassesh TWSLCLComponentClass TWSLCLReferenceComponent TWSLCLReferenceComponent WSLCLClasses!TWSLCLReferenceComponentClassX!`!TWSClassesListH WSLCLClasses! WSLCLClasses! @##821CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC fddefg@hhpp pPppTWSDragImageListResolution BeginDragDragMoveEndDrag HideDragImage ShowDragImage`#pp#p# p#Pp#p"%21CP3C4CP6C9C9C:C9C7C8C0AC@ACPACpppЛpp0p`pppTWSLazAccessibleObject$8&&31CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@p TWSControl AddControlGetConstraintsGetDefaultColorConstraintWidthConstraintHeightGetCanvasScaleFactorH&pX& ph&px&p&p&@p8% ')+41CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@p TWSWinControlCanFocusGetClientBounds GetClientRectGetPreferredSizeGetDefaultClientRectGetDesignInteractiveGetDoubleBufferedGetText GetTextLen SetBiDiModeSetBorderStyle SetBoundsSetColorSetChildZPositionSetFontSetPosSetSizeSetText SetCursorSetShape AdaptBoundsConstraintsChange CreateHandle DestroyHandleDefaultWndHandler InvalidatePaintToRepaintShowHideScrollBy()p8)0pH)pX)0pp)p)p)p)p)p)p)Pp) p*p*p(*Pp0*p8*p@*pH*pX* ph*px*p*p*0p*`p*0p*`p*p*p*@p(' '-h51CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pTWSGraphicControl,,051CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pTWSCustomControl.$`1`61CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC fddefg@hhpp pPpp TWSImageList(0TWSDragImageListResolution1TWSDragImageListResolution"X  WSControls82TWSDragImageListResolutionClassx22TWSLazAccessibleObject2TWSLazAccessibleObject$ WSControls2TWSLazAccessibleObjectClass0383 TWSControlh3 TWSControl8% WSControls3TWSControlClass33 TWSZPositionwszpBack wszpFront WSControls44(4H44(4p4 TWSWinControl4 TWSWinControl('3 WSControls4TWSWinControlClass45TWSGraphicControl(5TWSGraphicControl,3 WSControlsh5TWSCustomControl5TWSCustomControl.4 WSControls5 TWSImageList(6 TWSImageList(0x2 WSControls`6@pЬp 0ppp TGTKAPIWidget@7 TGTKAPIWidget@7 Bx7 PGTKAPIWidget77 TGTKAPIWidgetClassp8 TGTKAPIWidgetClass8p@@8PGTKAPIWidgetClassx88 @8(9@1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTLMGtkPaintData8(:E0pP3C4CP6C9C9C:C9C7C8C0AC@ACPACTFileSelFilterEntry9@P`pБ 0@P`pВ @` @` @` 8`Ж8`( TGtkHandler8> TGtkHandler>8 `??`  6 (60> PGtkHandler?? TGtkITimerInfo? TGtkITimerInfo?`x?PGtkITimerInfo8@@@TLMGtkPaintData`@TLMGtkPaintData8 Gtk2Globals@ TLMGtkPaint @ TLMGtkPaint@ `@((A TClipboardEventData@A TClipboardEventDataA@`  VAPClipboardEventData(B0BTGtkClipboardFormatgfCLASSgfCOMPOUND_TEXTgfDELETE gfFILE_NAME gfHOST_NAMEgfLENGTH gfMULTIPLEgfNAME gfOWNER_OS gfPROCESSgfSTRING gfTARGETSgfTEXT gfTIMESTAMPgfUSER gfUTF8_STRING Gtk2GlobalsXB~BBBBBBBBB B B B B C CC8C~BBBBBBBBBBBBBC CCDTGtkClipboardFormats0CD 0CD TFileSelHistoryEntryD TFileSelHistoryEntryDHB8EPFileSelHistoryEntryEETFileSelFilterEntryETFileSelFilterEntry9 Gtk2GlobalsETCheckMenuItemDrawProcpcheck_menu_item0area0FTMenuSizeRequestProcBwidgetp| requisitionF TAcceleratorKeyF TAcceleratorKeyF` (GPAcceleratorKeyGG CharsetstrG TCharSetEncodingRec$G TCharSetEncodingRecG$GG ! " #HPCharSetEncodingRecHHuuuuuŕuΕuוuuuuuu uuuvvvvvv&v2v>vJvVvbvnvzvvvvvvvvvvvv vvvvvvvv"v.v:vFvRv^vjvvvv>vJvVvbvnvzvvvvvvvvvvvv v v v v% v. v7 v@ vvIv\v\vvv\vvBv\v\v\v\vvvvvTvv\vvvvvv\v\v\v\v\v\vv w w0 wN wl wx w w w w w w w w w0Kxd1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTLCLHandledKeyEventJX'TdTX_P݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpT_T``T`0`ЅT`TTT TTTT T@T_`Tpa0aTE_ڄa````^^``Ў` `@`}`_a`^+`+`P^``_` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `` `p`/_`^` _ ^P_ `@_`_a ap_^P`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``-a"``p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``P (H eP3C4CP6C9C9C:C9C7C8C0AC@ACPAC ue uuTFPGList(0X eP3C4CP6C9C9C:C9C7C8C0AC@ACPACueuu TWordList(1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTFPGListEnumerator0(H eP3C4CP6C9C9C:C9C7C8C0AC@ACPACueuuTFPGList((P(h eP3C4CP6C9C9C:C9C7C8C0AC@ACPACueuu TCardinalList81CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC#TFPGListEnumerator@(H0( eP3C4CP6C9C9C:C9C7C8C0AC@ACPACueuuTFPGList@(pHx eP3C4CP6C9C9C:C9C7C8C0AC@ACPAC#ue#u&u TIntegerListX01CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC"TFPGListEnumerator`(HP8 eP3C4CP6C9C9C:C9C7C8C0AC@ACPAC#ue#u&uTFPGList`(h eP3C4CP6C9C9C:C9C7C8C0AC@ACPAC+ue+u.u TInt64ListxP1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TFPGListEnumerator(HpH eP3C4CP6C9C9C:C9C7C8C0AC@ACPAC+ue+u.uTFPGListTFPGList$1$crcC8599232 TByteListTFPGList$1$crcC85992320 IntegerList TByteList@ IntegerListH TFPGListEnumerator$1$crcC8599232 TFPGListEnumerator$1$crcC8599232  IntegerList TCompareFuncItem1Item2 PTh PTypeListxTFPGList$1$crc2657F31E TWordListTFPGList$1$crc2657F31E(0 IntegerList TWordList(P IntegerListX TFPGListEnumerator$1$crc2657F31E TFPGListEnumerator$1$crc2657F31E0 IntegerList TCompareFunc Item1 Item20PT x PTypeListTFPGList$1$crcC1EFDE19 TCardinalListTFPGList$1$crcC1EFDE19@0 IntegerList( TCardinalList8` IntegerListh TFPGListEnumerator$1$crcC1EFDE19 TFPGListEnumerator$1$crcC1EFDE19@ IntegerList TCompareFunc`Item1`Item2@PT` PTypeListTFPGList$1$crc9F312717 TIntegerListTFPGList$1$crc9F312717`0 IntegerList8 TIntegerListXp IntegerListx TFPGListEnumerator$1$crc9F312717 TFPGListEnumerator$1$crc9F312717` IntegerList TCompareFuncItem1Item2PPT PTypeListTFPGList$1$crc713F463B TInt64ListTFPGList$1$crc713F463B0 IntegerListH TInt64Listx IntegerList TFPGListEnumerator$1$crc713F463B TFPGListEnumerator$1$crc713F463B IntegerList TCompareFuncItem1Item2`PT PTypeListyy.yyuyAyywyܤyyyܡyyyyyLyy`puP3C4CP6C9C9C:C9C7C8C0AC@ACPACP^v^v^v`uu0uPupuuІuuu0uuu`uuДu0uuuu u TLazLogger(@`vP3C4CP6C9C9C:C9C7C8C0AC@ACPACP^v^v^vCCTLazLoggerBlockHandler p`{uP3C4CP6C9C9C:C9C7C8C0AC@ACPACP^v^v^vTLazLoggerLogGroupListppuP3C4CP6C9C9C:C9C7C8C0AC@ACPACP^v^v^v`uu0uPupuuІuuu0uuu`uuuu`uuu uTLazLoggerWithGroupParam` uP3C4CP6C9C9C:C9C7C8C0AC@ACPACP^v^v^v`uu0uPupuuІuuu0uuu`uuДu0uuuu uTLazLoggerNoOutput0123456789ABCDEF 0123456789ABCDEFTLazLoggerLogGroupFlaglgfAddedByParamParserlgfNoDefaultEnabledSpecified LazLoggerBase@TLazLoggerLogGroupFlags` TLazLoggerLogGroup TLazLoggerLogGroup  PLazLoggerLogGroupPX TLazLoggerLogEnabled TLazLoggerLogEnabled xTLazLoggerWriteTargetlwtNone lwtStdOut lwtStdErr lwtTextFile LazLoggerBase8J@Tx8@JT TLazLoggerWriteExEventInfo TLazLoggerWriteExEventInfox 0TLazLoggerWriteEvent$selfPointerSenderTObjectS AnsiStringHandledBoolean TLazLoggerWriteExEvent$selfPointerSenderTObjectLogTxt AnsiString LogIndent AnsiStringHandledBooleanAnInfoTLazLoggerWriteExEventInfo TLazLoggerWidgetSetWriteEvent$selfPointerSenderTObjectS AnsiStringHandledBooleanTargetTLazLoggerWriteTargetDataPointer p    H x    TLazLogger8 TLazLogger( LazLoggerBasepTLazLoggerBlockHandlerTLazLoggerBlockHandler LazLoggerBaseTLazLoggerLogGroupList0TLazLoggerLogGroupList LazLoggerBasepTLazLoggerWithGroupParamhTLazLoggerWithGroupParam LazLoggerBaseTLazLoggerNoOutputXTLazLoggerNoOutput LazLoggerBase @ ( 8 h TComponentStateEnum  csLoading csReading csWriting csDestroying csDesigning csAncestor csUpdatingcsFixupscsFreeNotificationcsInlinecsDesignInstance LazLoggerBase % ` ;D W0 %0;DW`  8   @ pTLazDebugLoggerCreatorTStackTracePointers LazTracer TLineInfoCacheItem( TLineInfoCacheItem(xPLineInfoCacheItem   TGetSkipCheckByKey AKey`  TCommentType comtDefaultcomtNone comtPascal comtDelphicomtTurboPascalcomtCPPcomtPerlcomtHtmlLazStringUtils 0  TCommentTypes(  H x @   8 h AnsiString AnsiString AnsiStringPGlyph`@ PGlyphSet`XPPicture`x PPictFormat` TXRenderDirectFormat TXRenderDirectFormat@@@@@@ @ @PXRenderDirectFormat TXRenderPictFormat( TXRenderPictFormat(`  PXRenderPictFormat TXRenderColor TXRenderColor     TXRenderVisualX TXRenderVisualX   PXRenderVisual TXRenderDepth TXRenderDepth  0  PXRenderDepth TXRenderScreen TXRenderScreen    PXRenderScreen0 8 TXRenderInfo@X TXRenderInfoX @ P  ( 08  PXRenderInfo0 8 TXRenderPictureAttributes8X TXRenderPictureAttributesX 8 `  $(,0 PXRenderPictureAttributes TXGlyphInfo  TXGlyphInfo  @@@@  PXGlyphInfocairo_status_t&CAIRO_STATUS_SUCCESSCAIRO_STATUS_NO_MEMORYCAIRO_STATUS_INVALID_RESTORECAIRO_STATUS_INVALID_POP_GROUPCAIRO_STATUS_NO_CURRENT_POINTCAIRO_STATUS_INVALID_MATRIXCAIRO_STATUS_INVALID_STATUSCAIRO_STATUS_NULL_POINTERCAIRO_STATUS_INVALID_STRINGCAIRO_STATUS_INVALID_PATH_DATACAIRO_STATUS_READ_ERRORCAIRO_STATUS_WRITE_ERRORCAIRO_STATUS_SURFACE_FINISHED"CAIRO_STATUS_SURFACE_TYPE_MISMATCH"CAIRO_STATUS_PATTERN_TYPE_MISMATCHCAIRO_STATUS_INVALID_CONTENTCAIRO_STATUS_INVALID_FORMATCAIRO_STATUS_INVALID_VISUALCAIRO_STATUS_FILE_NOT_FOUNDCAIRO_STATUS_INVALID_DASH CAIRO_STATUS_INVALID_DSC_COMMENTCAIRO_STATUS_INVALID_INDEX#CAIRO_STATUS_CLIP_NOT_REPRESENTABLECAIRO_STATUS_TEMP_FILE_ERRORCAIRO_STATUS_INVALID_STRIDECAIRO_STATUS_FONT_TYPE_MISMATCH CAIRO_STATUS_USER_FONT_IMMUTABLECAIRO_STATUS_USER_FONT_ERRORCAIRO_STATUS_NEGATIVE_COUNTCAIRO_STATUS_INVALID_CLUSTERSCAIRO_STATUS_INVALID_SLANTCAIRO_STATUS_INVALID_WEIGHTCAIRO_STATUS_INVALID_SIZE&CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED!CAIRO_STATUS_DEVICE_TYPE_MISMATCHCAIRO_STATUS_DEVICE_ERROR&CAIRO_STATUS_INVALID_MESH_CONSTRUCTIONCAIRO_STATUS_DEVICE_FINISHEDCAIRO_STATUS_LAST_STATUSCairo'8#%"qO$  d-kyH&%1N   +\!~ P1Ok +Nq8\y-Hd~%0cairo_operator_tCAIRO_OPERATOR_CLEARCAIRO_OPERATOR_SOURCECAIRO_OPERATOR_OVERCAIRO_OPERATOR_INCAIRO_OPERATOR_OUTCAIRO_OPERATOR_ATOPCAIRO_OPERATOR_DESTCAIRO_OPERATOR_DEST_OVERCAIRO_OPERATOR_DEST_INCAIRO_OPERATOR_DEST_OUTCAIRO_OPERATOR_DEST_ATOPCAIRO_OPERATOR_XORCAIRO_OPERATOR_ADDCAIRO_OPERATOR_SATURATECAIRO_OPERATOR_MULTIPLYCAIRO_OPERATOR_SCREENCAIRO_OPERATOR_OVERLAYCAIRO_OPERATOR_DARKENCAIRO_OPERATOR_LIGHTENCAIRO_OPERATOR_COLOR_DODGECAIRO_OPERATOR_COLOR_BURNCAIRO_OPERATOR_HARD_LIGHTCAIRO_OPERATOR_SOFT_LIGHTCAIRO_OPERATOR_DIFFERENCECAIRO_OPERATOR_EXCLUSIONCAIRO_OPERATOR_HSL_HUECAIRO_OPERATOR_HSL_SATURATIONCAIRO_OPERATOR_HSL_COLORCAIRO_OPERATOR_HSL_LUMINOSITYCairox S8  o@ W'm "!  P'@Wo !8Sm "cairo_antialias_tCAIRO_ANTIALIAS_DEFAULTCAIRO_ANTIALIAS_NONECAIRO_ANTIALIAS_GRAYCAIRO_ANTIALIAS_SUBPIXELCAIRO_ANTIALIAS_FASTCAIRO_ANTIALIAS_GOODCAIRO_ANTIALIAS_BESTCairoY/D/DYcairo_fill_rule_tCAIRO_FILL_RULE_WINDINGCAIRO_FILL_RULE_EVEN_ODDCairo(dLLdcairo_line_cap_tCAIRO_LINE_CAP_BUTTCAIRO_LINE_CAP_ROUNDCAIRO_LINE_CAP_SQUARECairo$P$cairo_line_join_tCAIRO_LINE_JOIN_MITERCAIRO_LINE_JOIN_ROUNDCAIRO_LINE_JOIN_BEVELCairo P cairo_font_slant_tCAIRO_FONT_SLANT_NORMALCAIRO_FONT_SLANT_ITALICCAIRO_FONT_SLANT_OBLIQUECairox   (!cairo_font_weight_tCAIRO_FONT_WEIGHT_NORMALCAIRO_FONT_WEIGHT_BOLDCairoP!!v!!v!!!cairo_subpixel_order_tCAIRO_SUBPIXEL_ORDER_DEFAULTCAIRO_SUBPIXEL_ORDER_RGBCAIRO_SUBPIXEL_ORDER_BGRCAIRO_SUBPIXEL_ORDER_VRGBCAIRO_SUBPIXEL_ORDER_VBGRCairo"_")"F""x"")"F"_"x""#cairo_hint_style_tCAIRO_HINT_STYLE_DEFAULTCAIRO_HINT_STYLE_NONECAIRO_HINT_STYLE_SLIGHTCAIRO_HINT_STYLE_MEDIUMCAIRO_HINT_STYLE_FULLCairo@#e###~###e#~####8$cairo_hint_metrics_tCAIRO_HINT_METRICS_DEFAULTCAIRO_HINT_METRICS_OFFCAIRO_HINT_METRICS_ONCairop$$$$$$$$ %cairo_path_data_type_tCAIRO_PATH_MOVE_TOCAIRO_PATH_LINE_TOCAIRO_PATH_CURVE_TOCAIRO_PATH_CLOSE_PATHCairoH%%%%q%%q%%%%&cairo_content_t0CAIRO_CONTENT_COLORCAIRO_CONTENT_ALPHACAIRO_CONTENT_COLOR_ALPHACairo@& v&b&0&&b& v&0&&cairo_format_tCAIRO_FORMAT_INVALIDCAIRO_FORMAT_ARGB32CAIRO_FORMAT_RGB24CAIRO_FORMAT_A8CAIRO_FORMAT_A1CAIRO_FORMAT_RGB16_565CAIRO_FORMAT_RGB30Cairo ''}'V'A''j'''A'V'j'}''''8(cairo_extend_tCAIRO_EXTEND_NONECAIRO_EXTEND_REPEATCAIRO_EXTEND_REFLECTCAIRO_EXTEND_PADCairo((((()((((@)cairo_filter_tCAIRO_FILTER_FASTCAIRO_FILTER_GOODCAIRO_FILTER_BESTCAIRO_FILTER_NEARESTCAIRO_FILTER_BILINEARCAIRO_FILTER_GAUSSIANCairop)))))))*))))))p*cairo_font_type_tCAIRO_FONT_TYPE_TOYCAIRO_FONT_TYPE_FTCAIRO_FONT_TYPE_WIN32CAIRO_FONT_TYPE_QUARTZCAIRO_FONT_TYPE_USERCairo**+*(+*P+***+(++cairo_pattern_type_tCAIRO_PATTERN_TYPE_SOLIDCAIRO_PATTERN_TYPE_SURFACECAIRO_PATTERN_TYPE_LINEARCAIRO_PATTERN_TYPE_RADIALCAIRO_PATTERN_TYPE_MESH CAIRO_PATTERN_TYPE_RASTER_SOURCECairo++,_,E,w,+,,+,+,E,_,w,-cairo_surface_type_tCAIRO_SURFACE_TYPE_IMAGECAIRO_SURFACE_TYPE_PDFCAIRO_SURFACE_TYPE_PSCAIRO_SURFACE_TYPE_XLIBCAIRO_SURFACE_TYPE_XCBCAIRO_SURFACE_TYPE_GLITZCAIRO_SURFACE_TYPE_QUARTZCAIRO_SURFACE_TYPE_WIN32CAIRO_SURFACE_TYPE_BEOSCAIRO_SURFACE_TYPE_DIRECTFBCAIRO_SURFACE_TYPE_SVGCAIRO_SURFACE_TYPE_OS2!CAIRO_SURFACE_TYPE_WIN32_PRINTINGCAIRO_SURFACE_TYPE_QUARTZ_IMAGECAIRO_SURFACE_TYPE_SCRIPTCAIRO_SURFACE_TYPE_QTCAIRO_SURFACE_TYPE_RECORDINGCAIRO_SURFACE_TYPE_VGCAIRO_SURFACE_TYPE_GLCAIRO_SURFACE_TYPE_DRMCAIRO_SURFACE_TYPE_TEECAIRO_SURFACE_TYPE_XMLCAIRO_SURFACE_TYPE_SKIACAIRO_SURFACE_TYPE_SUBSURFACECAIRO_SURFACE_TYPE_COGLCairo@-(./ @.E///-g- s.--.- ...// \.\//. .--s//g-------.(.@.\.s......///E/\/s//// 1cairo_svg_version_tCAIRO_SVG_VERSION_1_1CAIRO_SVG_VERSION_1_2Cairo1242`22422cairo_device_type_tCAIRO_DEVICE_TYPE_INVALIDCAIRO_DEVICE_TYPE_DRMCAIRO_DEVICE_TYPE_GLCAIRO_DEVICE_TYPE_SCRIPTCAIRO_DEVICE_TYPE_XCBCAIRO_DEVICE_TYPE_XLIBCAIRO_DEVICE_TYPE_XMLCAIRO_DEVICE_TYPE_COGLCAIRO_DEVICE_TYPE_WIN32Cairo2 o322233,3B3Y332223,3B3Y3o33(4cairo_surface_observer_mode_tCAIRO_SURFACE_OBSERVER_NORMAL(CAIRO_SURFACE_OBSERVER_RECORD_OPERATIONSCairo44454405cairo_region_overlap_tCAIRO_REGION_OVERLAP_INCAIRO_REGION_OVERLAP_OUTCAIRO_REGION_OVERLAP_PARTCairoP5y5555y5556cairo_text_cluster_flags_t CAIRO_TEXT_CLUSTER_FLAG_BACKWARDCairo06]66]66cairo_pdf_version_tCAIRO_PDF_VERSION_1_4CAIRO_PDF_VERSION_1_5Cairo666(766P7cairo_ps_level_tCAIRO_PS_LEVEL_2CAIRO_PS_LEVEL_3Cairop7777777cairo_script_mode_tCAIRO_SCRIPT_MODE_ASCIICAIRO_SCRIPT_MODE_BINARYCairo868N8x868N88Pcairo_script_mode_tp88 cairo_script_interpreter_t8 cairo_script_interpreter_t809Pcairo_script_interpreter_t`9h9Pcairo_ps_level_t79PPcairo_ps_level_t99Pcairo_pdf_version_t 79PPcairo_pdf_version_t:: cairo_region_t8: cairo_region_t8:p:Pcairo_region_t:: cairo_device_t: cairo_device_t::Pcairo_device_t; ;Pcairo_device_type_t3H;Pcairo_region_overlap_t5p;Pcairo_surface_observer_mode_t5;Pcairo_svg_version_tX2; cairo_surface_t; cairo_surface_t;8<Pcairo_surface_t`<h<PPcairo_surface_t<< cairo_t< cairo_t<<Pcairo_t== cairo_pattern_t8= cairo_pattern_t8=x=Pcairo_pattern_t== cairo_font_options_t= cairo_font_options_t=>Pcairo_font_options_t8>@> cairo_font_face_th> cairo_font_face_th>>Pcairo_font_face_t>> cairo_scaled_font_t? cairo_scaled_font_t?@?Pcairo_scaled_font_th?p? Pcairo_bool_t? cairo_matrix_t0? cairo_matrix_t?0((((( ((?Pcairo_matrix_tp@x@ cairo_user_data_key_t@ cairo_user_data_key_t@@Pcairo_user_data_key_tA A cairo_glyph_tHA cairo_glyph_tHA`((APcairo_glyph_tAAPPcairo_glyph_tAA cairo_text_extents_t0 B cairo_text_extents_t B0((((( ((`BPcairo_text_extents_tBB cairo_font_extents_t(C cairo_font_extents_tC(((((( XCPcairo_font_extents_tCCPcairo_path_data_type_t%D cairo_path_data_t0D pD pD%D D D((E cairo_path_data_t0DDHEPEPcairo_path_data_tEE cairo_path_tE cairo_path_tEHEF Pcairo_path_tPFXF cairo_rectangle_t xF cairo_rectangle_txF ((((FPcairo_rectangle_t G(G cairo_rectangle_int_tPG cairo_rectangle_int_tPG GPcairo_rectangle_int_tGH cairo_rectangle_list_t(H cairo_rectangle_list_t(HHHGhHPcairo_rectangle_list_tHH cairo_text_cluster_tH cairo_text_cluster_tH8IPcairo_text_cluster_tIIPPcairo_text_cluster_tIIPcairo_text_cluster_flags_t6I cairo_script_interpreter_hooks_t8Jcsi_surface_create_func_t<closure&content(width(heightuidXJcsi_destroy_func_tclosureptrJcsi_context_create_func_t0=closure<surface(Kcsi_show_page_func_tclosure0=crKcsi_copy_page_func_tclosure0=crK cairo_script_interpreter_hooks_tJ8J KxK K K(L0L!Pcairo_script_interpreter_hooks_tLL"cairo_raster_source_acquire_func_t<=pattern callback_data<target HextentsL#Pcairo_raster_source_acquire_func_txMM"cairo_raster_source_release_func_t=pattern callback_data<surfaceM#Pcairo_raster_source_release_func_t(N0Ncairo_destroy_func_tdatahNcairo_write_func_tHclosureXdata`lengthNcairo_read_func_tHclosureXdata`lengthO"cairo_user_scaled_font_init_func_tH? scaled_font0=crCextentsXO*cairo_user_scaled_font_render_glyph_func_tH? scaled_font`glyph0=crCextentsO,cairo_user_scaled_font_text_to_glyphs_func_tH? scaled_fontHutf8utf8_lenBglyphs num_glyphsIclusters num_clustersJ cluster_flagsPP.cairo_user_scaled_font_unicode_to_glyph_func_tH? scaled_font`unicode glyph_index8Q!cairo_surface_observer_callback_t<observer<targetdataQ#cairo_raster_source_snapshot_func_tH=pattern callback_data0Rcairo_raster_source_copy_func_tH=pattern callback_data=otherR!cairo_raster_source_finish_func_t=pattern callback_dataS TAtkRelationSet hS TAtkRelationSethS h[(iSPAtkRelationSetSS TAtkStateSet T TAtkStateSet Th[XT PAtkStateSetTTPAtkAttributeSetET TAtkCoordType ATK_XY_SCREEN ATK_XY_WINDOWatkTTU(UTUPU PAtkCoordType UpUTAtkRoleEATK_ROLE_INVALIDATK_ROLE_ACCEL_LABELATK_ROLE_ALERTATK_ROLE_ANIMATIONATK_ROLE_ARROWATK_ROLE_CALENDARATK_ROLE_CANVASATK_ROLE_CHECK_BOXATK_ROLE_CHECK_MENU_ITEMATK_ROLE_COLOR_CHOOSERATK_ROLE_COLUMN_HEADERATK_ROLE_COMBO_BOXATK_ROLE_DATE_EDITORATK_ROLE_DESKTOP_ICONATK_ROLE_DESKTOP_FRAME ATK_ROLE_DIALATK_ROLE_DIALOGATK_ROLE_DIRECTORY_PANEATK_ROLE_DRAWING_AREAATK_ROLE_FILE_CHOOSERATK_ROLE_FILLERATK_ROLE_FONT_CHOOSERATK_ROLE_FRAMEATK_ROLE_GLASS_PANEATK_ROLE_HTML_CONTAINER ATK_ROLE_ICONATK_ROLE_IMAGEATK_ROLE_INTERNAL_FRAMEATK_ROLE_LABELATK_ROLE_LAYERED_PANE ATK_ROLE_LISTATK_ROLE_LIST_ITEM ATK_ROLE_MENUATK_ROLE_MENU_BARATK_ROLE_MENU_ITEMATK_ROLE_OPTION_PANEATK_ROLE_PAGE_TABATK_ROLE_PAGE_TAB_LISTATK_ROLE_PANELATK_ROLE_PASSWORD_TEXTATK_ROLE_POPUP_MENUATK_ROLE_PROGRESS_BARATK_ROLE_PUSH_BUTTONATK_ROLE_RADIO_BUTTONATK_ROLE_RADIO_MENU_ITEMATK_ROLE_ROOT_PANEATK_ROLE_ROW_HEADERATK_ROLE_SCROLL_BARATK_ROLE_SCROLL_PANEATK_ROLE_SEPARATORATK_ROLE_SLIDERATK_ROLE_SPLIT_PANEATK_ROLE_SPIN_BUTTONATK_ROLE_STATUSBARATK_ROLE_TABLEATK_ROLE_TABLE_CELLATK_ROLE_TABLE_COLUMN_HEADERATK_ROLE_TABLE_ROW_HEADERATK_ROLE_TEAR_OFF_MENU_ITEMATK_ROLE_TERMINAL ATK_ROLE_TEXTATK_ROLE_TOGGLE_BUTTONATK_ROLE_TOOL_BARATK_ROLE_TOOL_TIP ATK_ROLE_TREEATK_ROLE_TREE_TABLEATK_ROLE_UNKNOWNATK_ROLE_VIEWPORTATK_ROLE_WINDOWATK_ROLE_LAST_DEFINEDatkUFUUUUVV$V7V PV gV ~V VV VVVV WW5WEW[WjW~WWWWUWEZWWW X!X"1X#DX$YX%kX&X'X(X)X*X+X,X-Y.)Y/=Y0QY1fY2yY4Y3Y5Y6Y7Y8Y9Z:Z;;Z<MZ=[Z>rZ?Z@ZAZBZCZDZ[UUUUUVV$V7VPVgV~VVVVVVV WW5WEW[WjW~WWWWWWWWXX1XDXYXkXXXXXXXXY)Y=YQYfYyYYYYYYYZZ;ZMZ[ZrZZZZZZZZh^PAtkRole[` TAtkLayerATK_LAYER_INVALIDATK_LAYER_BACKGROUNDATK_LAYER_CANVASATK_LAYER_WIDGET ATK_LAYER_MDIATK_LAYER_POPUPATK_LAYER_OVERLAYatk`` a`-aKa;aapa`` aa-a;aKaa PAtkLayerhab TAtkPropertyValues88b TAtkPropertyValues8b8p30>0> xbPAtkPropertyValuesbb TAtkFunctiondatac TAtkObjectH0c TAtkObject0cHh[p3p3 d([0T8ha@hc PAtkObjectcd PPAtkObjectd dTAtkPropertyChangeHandlerdpara1bpara2@d TAtkObjectClass`dp3d accessibledp3d accessibleedd accessible0ed accessible`edd accessibleied accessibleeTd accessiblee[d accessible(fhad accessibleXfd accessiblefTd accessiblefd accessiblep3namefd accessiblep3 description(gd accessibledparenthgd accessible[roleg`d accessibledhandlergd accessible` handler_id(hd accessibledatahhd accessible` change_index changed_childhd accessiblefocus_inid accessiblebvaluesHid accessiblep3name state_setid accessiblei TAtkObjectClassd``d(eXeeee fPffff g`ggg h`hhi@i i(i0j8(c@(cH(cP(cXjPAtkObjectClasskk TAtkImplementorIface ld implementor`l TAtkImplementorIface l:llPAtkImplementorIfacell TAtkActionIfacePmactioniHmactionmp3actionimp3actionimp3actioninactionip3descPn TAtkActionIfacemP :xmmm n(Hn0n8(c@(cHnPAtkActionIfacePoXoTAtkFocusHandlerdpara1para2o TAtkComponentIfaceo` componentohandlerp componentxy U coord_typeHpd componentxy U coord_typep component4x4y4width4height U coord_typep component4x4y U coord_typepq component4width4heightq componentr component` handler_idHr componentxywidthheight U coord_typer componentxy U coord_types componentwidthheightXsha components components TAtkComponentIfaceo:@ppp hq(q0r8@r@rHrPPsXs`shtp(cx(ctPAtkComponentIface0u8u TAtkDocumentIface``up3documentudocumentu TAtkDocumentIface`u` :uu(c (c((c0(c8(c@(cH(cP(cXuPAtkDocumentIfacevv TAtkEditableTextIfaceXvtextT attrib_set start_offset end_offset8wtextp3_stringwtextp3_stringlength4positionwtext start_posend_pos8xtext start_posend_posxtext start_posend_posxtextposition(y TAtkEditableTextIfacevX :ww0x x(x0 y8Xy@(cH(cP`yPAtkEditableTextIface(z0z TAtkGObjectAccessibleHXz TAtkGObjectAccessibleXzHczPAtkGObjectAccessiblezz TAtkGObjectAccessibleClassp{ TAtkGObjectAccessibleClass{pk(c`(chH{PAtkGObjectAccessibleClass{{ TAtkHyperlink{ TAtkHyperlink{h[| PAtkHyperlinkH|P| TAtkHyperlinkClassp|p3h|linki|dh|linki|h|link}h|link8}h|link`}h|link} TAtkHyperlinkClassp| `|}0}X}}}(c(c(c(c}PAtkHyperlinkClass~~ TAtkHypertextIfaceH~h| hypertext link_index~ hypertext8 hypertext char_indexh TAtkHypertextIface~H:0` (c((c0(c8(c@PAtkHypertextIfacePX TAtkImageIface@image4x4y U coord_typep3imageimage4width4height8imagep3 description TAtkImageIface@:0x ((c0(c8PAtkImageIfacePX TAtkObjectFactoryx TAtkObjectFactoryxh[PAtkObjectFactory TAtkObjectFactoryClass d[obj`factory TAtkObjectFactoryClass `(c(cȃPAtkObjectFactoryClassPX TAtkRegistry( TAtkRegistry(h[  PAtkRegistry TAtkRegistryClass0 TAtkRegistryClass0`pPAtkRegistryClassTAtkRelationTypeATK_RELATION_NULLATK_RELATION_CONTROLLED_BYATK_RELATION_CONTROLLER_FORATK_RELATION_LABEL_FORATK_RELATION_LABELLED_BYATK_RELATION_MEMBER_OFATK_RELATION_NODE_CHILD_OFATK_RELATION_LAST_DEFINEDatk؅ ([DtІ (D[t@PAtkRelationTypeȆ TAtkRelation( TAtkRelation(h[(iȆ  PAtkRelation@H TAtkRelationClassh TAtkRelationClassh`PAtkRelationClass TAtkRelationSetClass TAtkRelationSetClass`(c(cPPAtkRelationSetClass TAtkSelectionIface`؉ selectioni selectionPd selectioni selection selectioni selectioni  selectionX selection TAtkSelectionIface؉` :Hx (0P8@H(cP(cXPAtkSelectionIface TAtkStateTypeATK_STATE_INVALIDATK_STATE_ACTIVEATK_STATE_ARMEDATK_STATE_BUSYATK_STATE_CHECKEDATK_STATE_DEFUNCTATK_STATE_EDITABLEATK_STATE_ENABLEDATK_STATE_EXPANDABLEATK_STATE_EXPANDEDATK_STATE_FOCUSABLEATK_STATE_FOCUSEDATK_STATE_HORIZONTALATK_STATE_ICONIFIEDATK_STATE_MODALATK_STATE_MULTI_LINEATK_STATE_MULTISELECTABLEATK_STATE_OPAQUEATK_STATE_PRESSEDATK_STATE_RESIZABLEATK_STATE_SELECTABLEATK_STATE_SELECTEDATK_STATE_SENSITIVEATK_STATE_SHOWINGATK_STATE_SINGLE_LINEATK_STATE_STALEATK_STATE_TRANSIENTATK_STATE_VERTICALATK_STATE_VISIBLEATK_STATE_LAST_DEFINEDatk"4FYk ΍!2DXm̎0"4FYk΍!2DXm̎ PAtkStateType( PAtkStateȑ TAtkStateSetClass TAtkStateSetClass`(PAtkStateSetClass`h TAtkStreamableContentIfaceH streamableؒp3 streamablei streamablep3 mime_type@ TAtkStreamableContentIfaceH:8x (c((c0(c8(c@PAtkStreamableContentIface08 TAtkTableIfacePhdtablerowcolumntablerowcolumntableindex0tableindexhtabletableȕtablerowcolumntablerowcolumn8dtablep3tablecolumndtablecolumnp3tablerowdtablerowPdtabletabledcaptiontablecolumnp3 descriptiontablecolumndheader8tablerowp3 descriptiontablerowdheaderИtabled accessibletable4selectedXtable4selectedtablecolumnștablerowtablerowcolumn8tablerowtablerowtablecolumntablecolumn(tablerow num_inserted`tablecolumn num_insertedtablerow num_deletedtablecolumn num_deletedPtabletableȜtable TAtkTableIfacehP):(` (080@xHPؖX`Hhpx0xȘP0x XH ((c0(c8(c@(cHPAtkTableIfaceȟП TAtkAttribute TAtkAttributep3p3( PAtkAttributehpTAtkTextAttributeATK_TEXT_ATTR_INVALIDATK_TEXT_ATTR_LEFT_MARGINATK_TEXT_ATTR_RIGHT_MARGINATK_TEXT_ATTR_INDENTATK_TEXT_ATTR_INVISIBLEATK_TEXT_ATTR_EDITABLE ATK_TEXT_ATTR_PIXELS_ABOVE_LINES ATK_TEXT_ATTR_PIXELS_BELOW_LINES ATK_TEXT_ATTR_PIXELS_INSIDE_WRAPATK_TEXT_ATTR_BG_FULL_HEIGHTATK_TEXT_ATTR_RISEATK_TEXT_ATTR_UNDERLINEATK_TEXT_ATTR_STRIKETHROUGHATK_TEXT_ATTR_SIZEATK_TEXT_ATTR_SCALEATK_TEXT_ATTR_WEIGHTATK_TEXT_ATTR_LANGUAGEATK_TEXT_ATTR_FAMILY_NAMEATK_TEXT_ATTR_BG_COLORATK_TEXT_ATTR_FG_COLORATK_TEXT_ATTR_BG_STIPPLEATK_TEXT_ATTR_FG_STIPPLEATK_TEXT_ATTR_WRAP_MODEATK_TEXT_ATTR_DIRECTIONATK_TEXT_ATTR_JUSTIFICATIONATK_TEXT_ATTR_STRETCHATK_TEXT_ATTR_VARIANTATK_TEXT_ATTR_STYLEATK_TEXT_ATTR_LAST_DEFINEDatkw ,]FcʠCd á # O ֡91עʠ,Cdá֡ 1F]wע#9OcPAtkTextAttributeTAtkTextBoundaryATK_TEXT_BOUNDARY_CHARATK_TEXT_BOUNDARY_WORD_STARTATK_TEXT_BOUNDARY_WORD_END ATK_TEXT_BOUNDARY_SENTENCE_STARTATK_TEXT_BOUNDARY_SENTENCE_ENDATK_TEXT_BOUNDARY_LINE_STARTATK_TEXT_BOUNDARY_LINE_ENDatk;ʦoR;RoʦpPAtkTextBoundary TAtkTextIfacep3text start_offset end_offsetp3textoffset boundary_type4 start_offset4 end_offsethp3textoffset boundary_type4 start_offset4 end_offset`textoffsethp3textoffset boundary_type4 start_offset4 end_offsettext Ttextoffset4 start_offset4 end_offsetHTtexttextoffset4x4y4width4height UcoordsتtextXtextxy UcoordstextЫp3text selection_num4 start_offset4 end_offsettext start_offset end_offset`text selection_numtext selection_num start_offset end_offsettextoffsetXtextpositionlengthtextlocationحtext TAtkTextIface:`` (0@8@ЪHPPxXȫ`hXpxPЭ0(c(c(c(c8 PAtkTextIfaceTAtkEventListenerdpara1TAtkEventListenerInitProcHTAtkEventListenerInitppara1x TAtkKeyEventStruct TAtkKeyEventStruct `` p3 `PAtkKeyEventStructTAtkKeySnoopFuncevent func_dataTAtkKeyEventTypeATK_KEY_EVENT_PRESSATK_KEY_EVENT_RELEASEATK_KEY_EVENT_LAST_DEFINEDatk]3G3G]PAtkKeyEventType TAtkUtil TAtkUtilh[@PAtkUtilpx TAtkUtilClass`Vlistenerp3 event_typeг` listener_id`listenerdata@` listener_idxdp3p3ش TAtkUtilClass`8pд PAtkUtilClass TAtkValueIface@objP>valueobjP>value(objP>value`objP>value TAtkValueIface@: X ȶ((c0(c8жPAtkValueIface`hPHandlex\vP3C4CP6C9C9C:C9C7C8C0AC@ACPACTFreeNotifyingObjectp@`vP3C4CP6C9C9C:C9C7C8C0AC@ACPACP^v^v^vTRefCountedObject SP3C4CP6C9C9C:C9C7C8C0AC@ACPACPSPbvSSTRefCntObjListTFreeNotifyingObjectTFreeNotifyingObject LazClassesTRefCountedObject0TRefCountedObject( LazClassespTRefCntObjListTRefCntObjList` LazClasses HjvP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TMethodList TItemsEnumerator TMethodList  LazMethodListH TItemsEnumeratorx  TMethodListдvдv00000000000000000000000000000000000000000000000000000000000000000123012i02245501262301i2i20000000123012i02245501262301i2i20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d2  (2Zd(Hh(Hh AnsiString AnsiString AnsiString AnsiString( AnsiString` AnsiString UnicodeString UnicodeString UnicodeString@ UnicodeStringx AnsiString UnicodeString AnsiString AnsiStringX AnsiStringTStringSearchOptionsoDown soMatchCase soWholeWordStrUtils PTStringSearchOptionsx AnsiStringTSoundexLengthTSoundexIntLengthTCompareTextProc ATextAOther0TRomanConversionStrictness rcsStrict rcsRelaxed rcsDontCareStrUtilsx h 0 SizeIntArrayStrUtils`TStringReplaceAlgorithm sraDefault sraManySmall sraBoyerMooreStrUtils8TRawByteStringArrayStrUtils`TUnicodeStringArrayStrUtilsStrUtils@`Hpp0\8 Xp81CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TPOFileItem`X(wP3C4CP6C9C9C:C9C7C8C0AC@ACPACTPOFile(58`1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX EPOFileErrorh TLanguageID` TLanguageID` TStringsTypestLrjstRststRsj Translations ?KEh?EKTTranslateUnitResultturOK turNoLang turNoFBLang turEmptyParam Translations(h TTranslationStatistics TTranslationStatistics  TPOFileItem (08@H8 TPOFileItem TranslationsTMsgmidmstrmctxt Translations8/3X/38 P   @ p TPOFile0XTPOFile Translations( EPOFileError ` EPOFileErrorh Translations w1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EScannerError H1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC TJSONScanner@ `  ( H h   TJSONTokentkEOF tkWhitespacetkStringtkNumbertkTruetkFalsetkNulltkCommatkColontkCurlyBraceOpentkCurlyBraceClosetkSquaredBraceOpentkSquaredBraceClose tkIdentifier tkComment tkUnknown jsonscannerp/  "  9X"/9( EScannerError EScannerError x jsonscanner TJSONOptionjoUTF8joStrict joCommentsjoIgnoreTrailingCommajoIgnoreDuplicates joBOMCheck jsonscanner(VwaMFFMVaw TJSONOptionsH p TJSONScanner  TJSONScanner jsonscanner P00 X X 'Y(  h h 8x>HqyP3C4CP6CpCpCpCpC7C8C0AC@ACPACwPwpwwwЛwww w@wwww TJSONParser0 jsonparser` TJSONParserp0 TJSONParserB jsonparser@`` }{{{{{{U{{{{{{{{{E{{{5{81CP3C4CP6CpCpCpCpC7C8C0AC@ACPACwCCCоwCCwCCwCCCCCCCCwww ww0wCwC TJSONDataxH1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACCCTBaseJSONEnumeratorP1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACwCCCоwCCwCCwCCCCCCCCwww ww0wCwCC TJSONNumber` 1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACw0wPw`wоwpwwwwwwwwww ww0wPwwww ww0wwwwwTJSONFloatNumberh`1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACwww wоw0w@wwPw`wwpwwwwwww wwww ww0wwwwwTJSONIntegerNumber@`X1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACwww wоwwwwwww0w@wPw`ww@wwwwww ww0w`wwpwPwTJSONInt64Number`1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACwЭwwwоww ww`wpww0w@wPwww`wwwwww ww0wwwwpwTJSONQWordNumberx1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACww`wpwоwwpwwwwww`wwwww@w`wwww ww0www w TJSONString@`1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACwwwwоwwwwwwwww w0w`www`wwww w w0w0ww@w TJSONBoolean1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACwww0wwPwpwwwwwww0wPwpwwwwwww ww0wpCww TJSONNullXxP3C4CP6CpCpCpCpC7C8C0AC@ACPAC0x`xxxоwPxpxwxxwxxxx0xPxpxxxxPxxPx0wPx0x`x TJSONObject @wP3C4CP6CpCpCpCpC7C8C0AC@ACPAC0wwwwоwwww0wPwwww@w`w0wPwpwwwwwww0wwpww TJSONArray51CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEJSONp1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACwwTJSONEnumeratorh(1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC0w0wTJSONArrayEnumeratorhh1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACwwTJSONObjectEnumerator(Hh(Hh@hX @hX  TJSONtype jtUnknownjtNumberjtString jtBooleanjtNulljtArrayjtObjectfpjson`TJSONInstanceType jitUnknownjitNumberIntegerjitNumberInt64jitNumberQWordjitNumberFloat jitString jitBooleanjitNulljitArray jitObjectfpjson 2* ;X*2; PJSONCharTypeH@ TFormatOptionfoSingleLineArrayfoSingleLineObjectfoDoNotQuoteMembers foUseTabcharfoSkipWhiteSpacefoSkipWhiteSpaceOnlyLeadingfpjson``TFormatOptions p  TJSONData TJSONDatafpjson8 TJSONEnumph TJSONEnumhp`TBaseJSONEnumeratorTBaseJSONEnumeratorfpjsonHTJSONDataClass`TJSONNumberTypentFloat ntIntegerntInt64ntQWordfpjson8 TJSONNumberh TJSONNumber`fpjsonTJSONFloatNumberTJSONFloatNumberhfpjsonTJSONFloatNumberClass@HTJSONIntegerNumberpTJSONIntegerNumber@fpjsonTJSONIntegerNumberClassTJSONInt64NumberTJSONInt64NumberfpjsonXTJSONInt64NumberClassTJSONQWordNumberTJSONQWordNumberfpjsonTJSONQWordNumberClass(0 X TJSONStringp TJSONString`fpjsonTJSONStringClass TJSONBoolean( TJSONBoolean`fpjson`TJSONBooleanClass TJSONNull TJSONNullX`fpjsonTJSONNullClass (TJSONArrayIterator$selfPointerItem TJSONDataDataTObjectContinueBoolean` H p  p  p 0 p ` p  (    P (  TJSONObject TJSONObject `fpjson TJSONArrayH TJSONArray`fpjsonTJSONArrayClassTJSONObjectIterator$selfPointerAName UTF8StringItem TJSONDataDataTObjectContinueBooleanp` TJSONObjectClass@xEJSONEJSONfpjsonTJSONParserHandlerHAStream AUseUTF8(`DataTJSONStringParserHandlerpaJSON AUseUTF8(`Data` TJSONEnumeratorxfpjsonTJSONArrayEnumeratorxfpjson(TJSONObjectEnumeratorxfpjsonh` @ ` @ `  h((|EXF`  0_XVbw 8ppdH4"̪@ۘppSH R(``n?0hhcԅX X 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TFileIterator h 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACYxZx@Zx TFileSearcher ` (1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACYxZxQxTListFileSearcher ` 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACYxVx@ZxTListDirectoriesSearcherP @1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACYxZx 9x TCopyDirTree(Hh TSearchFileInPathFlagsffDontSearchInBasePathsffSearchLoUpCasesffFile sffExecutablesffDequoteSearchPathFileUtilPxx(TSearchFileInPathFlags`  TFileIteratorh TFileIterator FileUtil TFileFoundEvent$selfPointer FileIterator TFileIteratorPXTDirectoryFoundEvent$selfPointer FileIterator TFileIteratorPTDirectoryEnterEvent$selfPointer FileIterator TFileIteratorP TFileSearcherx TFileSearcher PFileUtilTListFileSearcherTListFileSearcher FileUtil(TListDirectoriesSearcher`TListDirectoriesSearcherFileUtil TCopyFileFlagcffOverwriteFilecffCreateDestDirectorycffPreserveTimeFileUtil0X0TCopyFileFlagsP  0 TCopyDirTree@ TCopyDirTreeFileUtil!٦ڦۦܦݦަߦ§çħŧƧǧȧɧʧ˧̧ͧΧϧЧ¨èĨX[]^_PQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~fTConvertEncodingErrorModeceemSkip ceemException ceemReplaceceemReturnEmpty LConvEncoding0es\\es  H xTConvertEncodingFunction$resultsTConvertUTF8ToEncodingFunc$results SetTargetCodePageTUnicodeToCharID`UnicodehP@X/@{P3C4CP6C9C9C:C9C7C8C@{@ACPACФ{{{{о{{{p y y{{{ TAvgLvlTree80Y @01CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC{TIndexedAVLTreeNode`" 1@{P3C4CP6C9C9C:C9C7C8C@{@ACPAC (y(y(yP)y)y0*y{p y y{P/y 4yTIndexedAVLTree "X21CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTPointerToPointerEnumerator("#28yP3C4CP6C9C9C:C9C7C8C`:y@ACPACTPointerToPointerTree #$41CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTCustomStringMapEnumerator$ &40GyP3C4CP6C9C9C:C9C7C8C0AC@ACPACBy CypCyHyIyKyMyTCustomStringMap%%'51CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTStringMapEnumerator0& (&((50GyP3C4CP6C9C9C:C9C7C8C0AC@ACPACBy CypCyHyIyKyMy TStringMap '%)61CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTStringToStringTreeEnumerator@( (&@*70GyP3C4CP6C9C9C:C9C7C8C0AC@ACPACyyyHyIy`"y#yTStringToStringTree8)'0+91CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTStringToPointerTreeEnumerator`*((&`,90GyP3C4CP6C9C9C:C9C7C8C0AC@ACPACyypyHyIyyMyTStringToPointerTreeX+ X*-:0GyP3C4CP6C9C9C:C9C7C8C0AC@ACPACyyyHyIy`"y#yTFilenameToStringTree,(x,.:0GyP3C4CP6C9C9C:C9C7C8C0AC@ACPACyypyHyIyyMyTFilenameToPointerTree- TAvgLvlTree. TAvgLvlTree\ AvgLvlTree/TAvgLvlObjectSortCompare$selfPointerTree TAvgLvlTreeData1PointerData2PointerLongInt8/@/TAvgLvlTreeClass8//TIndexedAVLTreeNode0TIndexedAVLTreeNode ^ AvgLvlTree@0 0 0TIndexedAVLTree0TIndexedAVLTree 8/ AvgLvlTree 1 TPointerToPointerItemX1 TPointerToPointerItemX11PPointerToPointerItem11TPointerToPointerEnumerator2TPointerToPointerEnumerator(" AvgLvlTreeX2TPointerToPointerTree2TPointerToPointerTree # AvgLvlTree2 TStringMapItem 3 TStringMapItem 3h3PStringMapItem33TCustomStringMapEnumerator3TCustomStringMapEnumerator$ AvgLvlTree4TCustomStringMapP4TCustomStringMap% AvgLvlTree4TStringMapEnumerator4TStringMapEnumerator0&H4 AvgLvlTree5 TStringMapP5 TStringMap '4 AvgLvlTree5 TStringToStringItem5 TStringToStringItem5 6PStringToStringItemh6p6TStringToStringTreeEnumerator6TStringToStringTreeEnumerator@(H4 AvgLvlTree6 ((7TStringToStringTreeX7TStringToStringTree8)4 AvgLvlTree7 TStringToPointerTreeItem7 TStringToPointerTreeItem708PStringToPointerTreeItem88TStringToPointerTreeEnumerator8TStringToPointerTreeEnumerator`*H5 AvgLvlTree9TStringToPointerTreeH9TStringToPointerTreeX+4 AvgLvlTree9TFilenameToStringTree9TFilenameToStringTree,7 AvgLvlTree:TFilenameToPointerTreeH:TFilenameToPointerTree-9 AvgLvlTree:;<VyP3C4CP6C9C9C:C9C7C8C0AC@ACPACTStringHashList: TStringHashItem; TStringHashItem;`<PStringHashItemX<`<PStringHashItemList<<TStringHashList<TStringHashList:StringHashList<h>BqyP3C4CP6CpCpCpCpC7C8C0AC@ACPACCCCCCCCCCCCCCTBaseJSONReader0= x>?EqyP3C4CP6CpCpCpCpC7C8C0AC@ACPACqyry0ry`ryryryrysy@sypsysysysyTJSONEventReader>@`i*J aM'?&{60F9D640-2A69-4AAB-8EE1-0DB6DC614D27}?x>XAFxFqyP3C4CP6CpCpCpCpC7C8C0AC@ACPAC tyPtytytytyuy@uypuyuyuyvy0vy`vyTJSONConsumerReader @wHB@G1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EJSONParserxATBaseJSONReader`BTBaseJSONReader0= jsonreaderBTOnJSONBoolean$selfPointerSenderTObjectAValueBoolean B TOnJSONFloat$selfPointerSenderTObjectAValueDouble(@C TOnJSONInt64$selfPointerSenderTObjectAValueInt64C TOnJSONQWord$selfPointerSenderTObjectAValueQWordDTOnJSONInteger$selfPointerSenderTObjectAValueLongIntxD TOnJSONString$selfPointerSenderTObjectAValue UTF8StringpD TOnJSONKey$selfPointerSenderTObjectAKey UTF8StringpHETJSONEventReaderETJSONEventReader>B jsonreaderE IJSONConsumer@`i*J aM' jsonreader 0FTJSONConsumerReaderpFxFTJSONConsumerReader @B jsonreaderF EJSONParserG EJSONParserxAx jsonreader@GGGH0HPHpHHHHHI.p.8.8....7 `/ / /~1 ///Bg p000000I p10101:111H2223Ya|a|a|a|a|a|a| b|'b|5c|5c|Xb|c|5c|5c|5c|b|b|b|b|b|b|lc|c|c|c|c|c|"d|ke|ke|Sd|Ne|ke|ke|ke|~d|d|d|d|d|e|7h|Xh|]h|fh|nh|nh|nh|nh|{h|h|h|h|h|h|h|h|h|h|h|h|h|h|i|'i| xG@G@G. GGG#4 `H0H0HIHHH HI I IIIIڡPJJJ JJJ`IXKKK~KKK^`xL(L(LV LLL.V hM8M8M MMM~(NNN+f N`N`N8\NNNGPOOOUVOOOq@PPP! PPP HQQQrVQQQOy(RRROyRpRpREtSRR SPSPS1 TSSκTXTXTNŽ (UTT {UpUpU!VUU$V`V`VY0Y0VVVV SearchRec&`  SearchRec`&   "$$ $ DateTime DateTime      HWJWLWNWPWRWTWVWXWZW\W^W`WbWdWfWhWjWlWnWpWrWtWvWxWzW|W~WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXX X XXXXXXXXXX X"X$X&X(X*X,X.X0X2X4X6X8X:XX@XBXDXFXHXLXPXTXXX\X`XdXhXlXpXtXxX|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYY YYYYY Y$Y(Y,Y0Y4Y8Y[@[B[D[F[H[L[P[T[X[\[`[d[h[l[p[t[x[|[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\ \\\\\ \$\(\,\0\4\8\<\@\D\H\L\P\T\X\\\`\d\h\l\p\t\x\|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]] ]]]]] ]$](],]0]4]8]<]@]D]H]J]L]N]P]R]T]V]X]Z]\]^]`]b]d]f]h]j]l]n]p]r]t]v]x]z]|]~]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^ ^ ^^^^^^^^^^ ^"^$^&^(^*^,^.^0^2^4^6^8^:^<^>^@^B^D^F^H^L^P^T^X^\^`^d^h^l^p^t^x^|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^___ _____ _$_(_,_0_4_8_<_@_D_H_L_P_T_X_\_`_d_h_l_p_t_x_|_________________________________``` ````` `$`(`,`0`4`8`<`@`D`H`J`L`N`P`R`T`V`X`Z`\`^```b`d`f`h`j`l`n`p`r`t`v`x`z`|`~`````````````````````````````````````````````````````````````````aaaaa a aaaaaaaaaa a"a$a&a(a*a,a.a0a2a4a6a8a:aa@aBaDaFaHaLaPaTaXa\a`adahalapataxa|aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbb bbbbb b$b(b,b0b4b8bd@dBdDdFdHdLdPdTdXd\d`dddhdldpdtdxd|dddddddddddddddddddddddddddddddddeee eeeee e$e(e,e0e4e8eg@gBgDgFgHgLgPgTgXg\g`gdghglgpgtgxg|ggggggggggggggggggggggggggggggggghhh hhhhh h$h(h,h0h4h8hj@jBjDjFjHjLjPjTjXj\j`jdjhjljpjtjxj|jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkk kkkkk k$k(k,k0k4k8km@mBmDmFmHmLmPmTmXm\m`mdmhmlmpmtmxm|mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnn nnnnn n$n(n,n0n4n8np@pBpDpFpHpLpPpTpXp\p`pdphplppptpxp|pppppppppppppppppppppppppppppppppqqq qqqqq q$q(q,q0q4q8qs@sBsDsFsHsLsPsTsXs\s`sdshslspstsxs|sssssssssssssssssssssssssssssssssttt ttttt t$t(t,t0t4t8tv@vBvDvFvHvLvPvTvXv\v`vdvhvlvpvtvxv|vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwww wwwww w$w(w,w0w4w8wy@yByDyFyHyLyPyTyXy\y`ydyhylypytyxy|yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzz zzzzz z$z(z,z0z4z8z|@|B|D|F|H|L|P|T|X|\|`|d|h|l|p|t|x|||||||||||||||||||||||||||||||||||}}} }}}}} }$}(},}0}4}8}<}@}D}H}L}P}T}X}\}`}d}h}l}p}t}x}|}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~ ~~~~~ ~$~(~,~0~4~8~<~@~D~H~J~L~N~P~R~T~V~X~Z~\~^~`~b~d~f~h~j~l~n~p~r~t~v~x~z~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   "$&(*,.02468:<>@BDFHLPTX\`dhlptx|  $(,048<@DHLPTX\`dhlptx|ĀȀ̀ЀԀ؀܀  $(,048<@DHJLNPRTVXZ\^`bdfhjlnprtvxz|~āƁȁʁ́΁Ёҁԁց؁ځ܁ށ  "$&(*,.02468:<>@BDFHLPTX\`dhlptx|ĂȂ̂ЂԂ؂܂  $(,048<@DHLPTX\`dhlptx|ăȃ̃Ѓԃ؃܃  $(,048<@DHJLNPRTVXZ\^`bdfhjlnprtvxz|~„ĄƄȄʄ̄΄Є҄Ԅք؄ڄ܄ބ  "$&(*,.02468:<>@BDFHLPTX\`dhlptx|ąȅ̅Ѕԅ؅܅  $(,048<@DHLPTX\`dhlptx|ĆȆ̆ІԆ؆܆  $(,048<@DHJLNPRTVXZ\^`bdfhjlnprtvxz|~‡ćƇȇʇ̇·Ї҇ԇև؇ڇ܇އ  "$&(*,.02468:<>@BDFHLPTX\`dhlptx|ĈȈ̈ЈԈ؈܈  $(,048<@DHLPTX\`dhlptx|ĉȉ̉Љԉ؉܉  $(,048<@DHJLNPRTVXZ\^`bdfhjlnprtvxz|~ŠĊƊȊʊ̊ΊЊҊԊ֊؊ڊ܊ފ  "$&(*,.02468:<>@BDFHLPTX\`dhlptx|ċȋ̋Ћԋ؋܋  $(,048<@DHLPTX\`dhlptx|ČȌ̌ЌԌ،܌  $(,048<@DHJLNPRTVXZ\^`bdfhjlnprtvxz|~čƍȍʍ̍΍Ѝҍԍ֍؍ڍ܍ލ  "$&(*,.02468:<>@BDFHLPTX\`dhlptx|ĎȎ̎ЎԎ؎܎  $(,048<@DHLPTX\`dhlptx|ďȏ̏Џԏ؏܏  $(,048<@DHJLNPRTVXZ\^`bdfhjlnprtvxz|~ĐƐȐʐ̐ΐАҐԐ֐ؐڐܐސ  "$&(*,.02468:<>@BDFHLPTX\`dhlptx|đȑ̑Бԑܑؑ  $(,048<@DHLPTX\`dhlptx|ĒȒ̒ВԒؒܒ  $(,048<@DHJLNPRTVXZ\^`bdfhjlnprtvxz|~“ēƓȓʓ̓ΓГғԓ֓ؓړܓޓ  "$&(*,.02468:<>@BDFHLPTX\`dhlptx|ĔȔ̔ДԔؔܔ  $(,048<@DHLPTX\`dhlptx|ĕȕ̕Еԕؕܕ  $(,048<@DHJLNPRTVXZ\^`bdfhjlnprtvxz|~–ĖƖȖʖ̖ΖЖҖԖ֖ؖږܖޖ  "$&(*,.02468:<>@BDFHLPTX\`dhlptx|ėȗ̗Зԗؗܗ  $(,048<@DHLPTX\`dhlptx|ĘȘ̘ИԘؘܘ  $(,048<@DHJLNPRTVXZ\^`bdfhjlnprtvxz|~™ęƙșʙ̙ΙЙҙԙؙ֙ڙܙޙ  "$&(*,.02468:<>@BDFHLPTX\`dhlptx|ĚȚ̚КԚؚܚ  $(,048<@DHLPTX\`dhlptx|ěț̛Лԛ؛ܛ  $(,048<@DHJLNPRTVXZ\^`bdfhjlnprtvxz|~œĜƜȜʜ̜ΜМҜԜ֜؜ڜܜޜ  "$&(*,.02468:<>@BDFHLPTX\`dhlptx|ĝȝ̝Нԝ؝ܝ  $(,048<@DHLPTX\`dhlptx|ĞȞ̞ОԞ؞ܞ  $(,048<@DHJLNPRTVXZ\^`bdfhjlnprtvxz|~ŸğƟȟʟ̟ΟПҟԟ֟؟ڟܟޟ  "$&(*,.02468:<>@BDFHLPTX\`dhlptx|ĠȠ̠РԠؠܠ  $(,048<@DHLPTX\`dhlptx|ġȡ̡Сԡءܡ  $(,048<@DHJLNPRTVXZ\^`bdfhjlnprtvxz|~¢ĢƢȢʢ̢΢ТҢԢ֢آڢܢޢ  "$&(*,.02468:<>@BDFHLPTX\`dhlptx|ģȣ̣Уԣأܣ  $(,048<@DHLPTX\`dhlptx|ĤȤ̤ФԤؤܤ  $(,048<@DHJLNPRTVXZ\^`bdfhjlnprtvxz|~¥ĥƥȥʥ̥ΥХҥԥ֥إڥܥޥ  "$&(*,.02468:<>@BDFHLPTX\`dhlptx|ĦȦ̦ЦԦئܦ  $(,048<@DHLPTX\`dhlptx|ħȧ̧Чԧاܧ  $(,048<@DHJLNPRTVXZ\^`bdfhjlnprtvxz|~¨ĨƨȨʨ̨ΨШҨԨ֨بڨܨި  "$&(*,.02468:<>@BDFHLPTX\`dhlptx|ĩȩ̩Щԩةܩ  $(,048<@DHLPTX\`dhlptx|ĪȪ̪ЪԪتܪ  $(,048<@DHJLNPRTVXZ\^`bdfhjlnprtvxz|~«īƫȫʫ̫ΫЫҫԫ֫ثګܫޫ  "$&(*,.02468:<>@BDFHLPTX\`dhlptx|ĬȬ̬ЬԬجܬ  $(,048<@DHLPTX\`dhlptx|ĭȭ̭Эԭحܭ  $(,048<@DHJLNPRTVXZ\^`bdfhjlnprtvxz|~®ĮƮȮʮ̮ήЮҮԮ֮خڮܮޮ  "$&(*,.02468:<>@BDFHLPTX\`dhlptx|įȯ̯Яԯدܯ  $(,048<@DHLPTX\`dhlptx|İȰ̰а԰ذܰ  $(,048<@DHJLNPRTVXZ\^`bdfhjlnprtvxz|~±ıƱȱʱ̱αбұԱֱرڱܱޱ  "$&(*,.02468:<>@BDFHLPTX\`dhlptx|IJȲ̲вԲزܲ  $(,048<@DHLPTX\`dhlptx|ijȳ̳гԳسܳ  $(,048<@D TCharToUTF8TableHH  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÁāŁƁǁȁɁʁˁ́́΁ρЁсҁӁԁՁցׁ؁فځہ܁݁ށ߁@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~‚ÂĂłƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂قڂۂ܂݂ނ߂@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ƒÃăŃƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃփ׃؃كڃۃ܃݃ރ߃@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~„ÄĄńƄDŽȄɄʄ˄̄̈́΄τЄф҄ӄԄՄքׄ؄لڄۄ܄݄ބ߄@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~…ÅąŅƅDžȅɅʅ˅̅ͅ΅υЅх҅ӅԅՅօׅ؅مڅۅ܅݅ޅ߅@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~†ÆĆņƆdžȆɆʆˆ̆͆ΆφІц҆ӆԆՆֆ׆؆نچۆ܆݆ކ߆@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~‡ÇćŇƇLJȇɇʇˇ͇̇·χЇч҇ӇԇՇևׇ؇هڇۇ܇݇އ߇@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ˆÈĈňƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈وڈۈ܈݈ވ߈@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~‰ÉĉʼnƉljȉɉʉˉ͉̉ΉωЉщ҉ӉԉՉ։׉؉ىډۉ܉݉މ߉@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ŠÊĊŊƊNJȊɊʊˊ̊͊ΊϊЊъҊӊԊՊ֊׊؊يڊۊ܊݊ފߊ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~‹ËċŋƋNjȋɋʋˋ̋͋΋ϋЋыҋӋԋՋ֋׋؋ًڋۋ܋݋ދߋ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ŒÌČŌƌnjȌɌʌˌ̌͌ΌόЌьҌӌԌՌ֌׌،ٌڌی܌݌ތߌ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÍčōƍǍȍɍʍˍ͍̍΍ύЍэҍӍԍՍ֍׍؍ٍڍۍ܍ݍލߍ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ŽÎĎŎƎǎȎɎʎˎ͎̎ΎώЎюҎӎԎՎ֎׎؎َڎێ܎ݎގߎ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÏďŏƏǏȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏۏ܏ݏޏߏ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÐĐŐƐǐȐɐʐː̐͐ΐϐАѐҐӐԐՐ֐אِؐڐېܐݐސߐ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~‘ÑđőƑǑȑɑʑˑ̑͑ΑϑБёґӑԑՑ֑בّؑڑۑܑݑޑߑ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~’ÒĒŒƒǒȒɒʒ˒̒͒ΒϒВђҒӒԒՒ֒גْؒڒےܒݒޒߒ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~“ÓēœƓǓȓɓʓ˓͓̓ΓϓГѓғӓԓՓ֓דؓٓړۓܓݓޓߓ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~”ÔĔŔƔǔȔɔʔ˔͔̔ΔϔДєҔӔԔՔ֔הؔٔڔ۔ܔݔޔߔ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~•ÕĕŕƕǕȕɕʕ˕͕̕ΕϕЕѕҕӕԕՕ֕וٕؕڕەܕݕޕߕ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~–ÖĖŖƖǖȖɖʖ˖̖͖ΖϖЖіҖӖԖՖ֖זٖؖږۖܖݖޖߖ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~—×ėŗƗǗȗɗʗ˗̗͗ΗϗЗїҗӗԗ՗֗חؗٗڗۗܗݗޗߗ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~˜ØĘŘƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ٘ژۘܘݘޘߘ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~™ÙęřƙǙșəʙ˙̙͙ΙϙЙљҙәԙՙ֙יؙٙڙۙܙݙޙߙ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~šÚĚŚƚǚȚɚʚ˚͚̚ΚϚКњҚӚԚ՚֚ךؚٚښۚܚݚޚߚ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~›ÛěśƛǛțɛʛ˛̛͛ΛϛЛћқӛԛ՛֛כ؛ٛڛۛܛݛޛߛ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~œÜĜŜƜǜȜɜʜ˜̜͜ΜϜМќҜӜԜ՜֜ל؜ٜڜۜܜݜޜߜ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÝĝŝƝǝȝɝʝ˝̝͝ΝϝНѝҝӝԝ՝֝ם؝ٝڝ۝ܝݝޝߝ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~žÞĞŞƞǞȞɞʞ˞̞͞ΞϞОўҞӞԞ՞֞מ؞ٞڞ۞ܞݞޞߞ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ŸßğşƟǟȟɟʟ˟̟͟ΟϟПџҟӟԟ՟֟ן؟ٟڟ۟ܟݟޟߟ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ àĠŠƠǠȠɠʠˠ̠͠ΠϠРѠҠӠԠՠ֠נؠ٠ڠ۠ܠݠޠߠ¡áġšơǡȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡۡܡݡޡߡ¢âĢŢƢǢȢɢʢˢ̢͢΢ϢТѢҢӢԢբ֢עآ٢ڢۢܢݢޢߢ£ãģţƣǣȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڣۣܣݣޣߣ¤äĤŤƤǤȤɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤۤܤݤޤߤ󤡥¥åĥťƥǥȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥۥܥݥޥߥ¦æĦŦƦǦȦɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צئѧҧӧԧէ֧קا٧ڧۧܧݧާߧ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ŨƨǨȨɨʨ˨̨ͨΨϨШѨҨӨԨը֨רب٨ڨۨܨݨިߨ@ABCDEFGHIJKLMNOPQRSTUVWYZ\`abcdefghijklmnopqrstuvwxyz{|}~©éĩũƩǩȩɩʩ˩̩ͩΩϩЩѩҩөԩթ֩שة٩ک۩ܩݩީߩ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~°ðİŰưǰȰɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ۰ܰݰް߰@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~±ñıűƱDZȱɱʱ˱̱ͱαϱбѱұӱԱձֱױرٱڱ۱ܱݱޱ߱@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~²òIJŲƲDzȲɲʲ˲̲ͲβϲвѲҲӲԲղֲײزٲڲ۲ܲݲ޲߲@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~³óijųƳdzȳɳʳ˳̳ͳγϳгѳҳӳԳճֳ׳سٳڳ۳ܳݳ޳߳@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~´ôĴŴƴǴȴɴʴ˴̴ʹδϴдѴҴӴԴմִ״شٴڴ۴ܴݴ޴ߴ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~µõĵŵƵǵȵɵʵ˵̵͵εϵеѵҵӵԵյֵ׵صٵڵ۵ܵݵ޵ߵ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¶öĶŶƶǶȶɶʶ˶̶Ͷζ϶жѶҶӶԶնֶ׶ضٶڶ۶ܶݶ޶߶@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~·÷ķŷƷǷȷɷʷ˷̷ͷηϷзѷҷӷԷշַ׷طٷڷ۷ܷݷ޷߷@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¸øĸŸƸǸȸɸʸ˸̸͸θϸиѸҸӸԸոָ׸ظٸڸ۸ܸݸ޸߸@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¹ùĹŹƹǹȹɹʹ˹̹͹ιϹйѹҹӹԹչֹ׹عٹڹ۹ܹݹ޹߹@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ºúĺźƺǺȺɺʺ˺̺ͺκϺкѺҺӺԺպֺ׺غٺںۺܺݺ޺ߺ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~»ûĻŻƻǻȻɻʻ˻̻ͻλϻлѻһӻԻջֻ׻ػٻڻۻܻݻ޻߻@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¼üļżƼǼȼɼʼ˼̼ͼμϼмѼҼӼԼռּ׼ؼټڼۼܼݼ޼߼@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~½ýĽŽƽǽȽɽʽ˽̽ͽνϽнѽҽӽԽսֽ׽ؽٽڽ۽ܽݽ޽߽@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¾þľžƾǾȾɾʾ˾̾;ξϾоѾҾӾԾվ־׾ؾپھ۾ܾݾ޾߾@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¿ÿĿſƿǿȿɿʿ˿̿ͿοϿпѿҿӿԿտֿ׿ؿٿڿۿܿݿ޿߿@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴǵǶǷǸǹǺǻǼǽǾǿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ɀɁɂɃɄɅɆɇɈɉɊɋɌɍɎɏɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼʽʾʿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ˀˁ˂˃˄˅ˆˇˈˉˊˋˌˍˎˏːˑ˒˓˔˕˖˗˘˙˚˛˜˝˞˟ˠˡˢˣˤ˥˦˧˨˩˪˫ˬ˭ˮ˯˰˱˲˳˴˵˶˷˸˹˺˻˼˽˾˿@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~̴̵̶̷̸̡̢̧̨̛̖̗̘̙̜̝̞̟̠̣̤̥̦̩̪̫̬̭̮̯̰̱̲̳̹̺̻̼̀́̂̃̄̅̆̇̈̉̊̋̌̍̎̏̐̑̒̓̔̽̾̿̕̚@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~͇͈͉͍͎̀́͂̓̈́͆͊͋͌ͅ͏͓͔͕͖͙͚͐͑͒͗͛ͣͤͥͦͧͨͩͪͫͬͭͮͯ͘͜͟͢͝͞͠͡ͰͱͲͳʹ͵Ͷͷ͸͹ͺͻͼͽ;Ϳ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~΀΁΂΃΄΅Ά·ΈΉΊ΋Ό΍ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξο@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~πρςστυφχψωϊϋόύώϏϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵ϶ϷϸϹϺϻϼϽϾϿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~рстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ҁҁ҂҃҄҅҆҇҈҉ҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӏӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹӺӻӼӽӾӿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԐԑԒԓԔԕԖԗԘԙԚԛԜԝԞԟԠԡԢԣԤԥԦԧԨԩԪԫԬԭԮԯ԰ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖ՗՘ՙ՚՛՜՝՞՟ՠաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~րցւփքօֆևֈ։֊֋֌֍֎֏֐ְֱֲֳִֵֶַָֹֺֻּֽ֑֖֛֢֣֤֥֦֧֪֚֭֮֒֓֔֕֗֘֙֜֝֞֟֠֡֨֩֫֬֯־ֿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~׀ׁׂ׃ׅׄ׆ׇ׈׉׊׋׌׍׎׏אבגדהוזחטיךכלםמןנסעףפץצקרשת׫׬׭׮ׯװױײ׳״׵׶׷׸׹׺׻׼׽׾׿@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~؀؁؂؃؄؅؆؇؈؉؊؋،؍؎؏ؘؙؚؐؑؒؓؔؕؖؗ؛؜؝؞؟ؠءآأؤإئابةتثجحخدذرزسشصضطظعغػؼؽؾؿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ـفقكلمنهوىيًٌٍَُِّْٕٖٜٟٓٔٗ٘ٙٚٛٝٞ٠١٢٣٤٥٦٧٨٩٪٫٬٭ٮٯٰٱٲٳٴٵٶٷٸٹٺٻټٽپٿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ڀځڂڃڄڅچڇڈډڊڋڌڍڎڏڐڑڒړڔڕږڗژڙښڛڜڝڞڟڠڡڢڣڤڥڦڧڨکڪګڬڭڮگڰڱڲڳڴڵڶڷڸڹںڻڼڽھڿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ۀہۂۃۄۅۆۇۈۉۊۋیۍێۏېۑےۓ۔ەۖۗۘۙۚۛۜ۝۞ۣ۟۠ۡۢۤۥۦۧۨ۩۪ۭ۫۬ۮۯ۰۱۲۳۴۵۶۷۸۹ۺۻۼ۽۾ۿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~܀܁܂܃܄܅܆܇܈܉܊܋܌܍܎܏ܐܑܒܓܔܕܖܗܘܙܚܛܜܝܞܟܠܡܢܣܤܥܦܧܨܩܪܫܬܭܮܯܱܴܷܸܹܻܼܾܰܲܳܵܶܺܽܿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~݂݄݆݈݀݁݃݅݇݉݊݋݌ݍݎݏݐݑݒݓݔݕݖݗݘݙݚݛݜݝݞݟݠݡݢݣݤݥݦݧݨݩݪݫݬݭݮݯݰݱݲݳݴݵݶݷݸݹݺݻݼݽݾݿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ހށނރބޅކއވމފދތލގޏސޑޒޓޔޕޖޗޘޙޚޛޜޝޞޟޠޡޢޣޤޥަާިީުޫެޭޮޯްޱ޲޳޴޵޶޷޸޹޺޻޼޽޾޿@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~߀߁߂߃߄߅߆߇߈߉ߊߋߌߍߎߏߐߑߒߓߔߕߖߗߘߙߚߛߜߝߞߟߠߡߢߣߤߥߦߧߨߩߪ߲߫߬߭߮߯߰߱߳ߴߵ߶߷߸߹ߺ߻߼߽߾߿@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNO  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ NNNNNNNN N!N#N&N)N.N/N1N3N5N7NO?O@OAOBODOEOGOHOIOJOKOLOROTOVOaObOfOhOjOkOmOnOqOrOuOwOxOyOzO}OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPP P P PPPPPPPPPPP P"P#P$P'P+P/P0P1P2P3P4P5P6P7P8P9P;P=P?P@PAPBPDPEPFPIPJPKPMPPPQPRPSPTPVPWPXPYP[P]P^P_P`PaPbPcPdPfPgPhPiPjPkPmPnPoPpPqPrPsPtPuPxPyPzP|P}PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQ Q Q Q QQQQQQQQQQQQQQQQQQ Q"Q#Q$Q%Q&Q'Q(Q)Q*Q+Q,Q-Q.Q/Q0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q:Q;QQBQGQJQLQNQOQPQRQSQWQXQYQ[Q]Q^Q_Q`QaQcQdQfQgQiQjQoQrQzQ~QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRR R R RRRRRRRRR!R"R#R%R&R'R*R,R/R1R2R4R5RRDRERFRGRHRIRKRNRORRRSRURWRXRYRZR[R]R_R`RbRcRdRfRhRkRlRmRnRpRqRsRtRuRvRwRxRyRzR{R|R~RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSS S S S SSSSSSSSSSS"S$S%S'S(S)S+S,S-S/S0S1S2S3S4S5S6S7S8SV@VAVBVCVDVEVFVGVHVIVJVKVOVPVQVRVSVUVVVZV[V]V^V_V`VaVcVeVfVgVmVnVoVpVrVsVtVuVwVxVyVzV}V~VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWW W W WWWWWWWWWWWWWWWWW W!W"W$W%W&W'W+W1W2W4W5W6W7W8WX?X@XAXBXCXEXFXGXHXIXJXKXNXOXPXRXSXUXVXWXYXZX[X\X]X_X`XaXbXcXdXfXgXhXiXjXmXnXoXpXqXrXsXtXuXvXwXxXyXzX{X|X}XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYY Y Y Y YYYYYYYYYYY Y!Y"Y#Y&Y(Y,Y0Y2Y3Y5Y6Y;Y=Y>Y?Y@YCYEYFYJYLYMYPYRYSYYY[Y\Y]Y^Y_YaYcYdYfYgYhYiYjYkYlYmYnYoYpYqYrYuYwYzY{Y|Y~YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZ Z Z ZZZZZZZZZZZZZZ!Z"Z$Z&Z'Z(Z*Z+Z,Z-Z.Z/Z0Z3Z5Z7Z8Z9Z:Z;Z=Z>Z?ZAZBZCZDZEZGZHZKZLZMZNZOZPZQZRZSZTZVZWZXZYZ[Z\Z]Z^Z_Z`ZaZcZdZeZfZhZiZkZlZmZnZoZpZqZrZsZxZyZ{Z|Z}Z~ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[ [ [ [ [[[[[[[[[[[[[[[[[ [!["[#[$[%[&['[([)[*[+[,[-[.[/[0[1[3[5[6[8[9[:[;[<[=[>[?[A[B[C[D[E[F[G[H[I[J[K[L[M[N[O[R[V[^[`[a[g[h[k[m[n[o[r[t[v[w[x[y[{[|[~[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\ \ \ \\\\\\\\\\ \!\#\&\(\)\*\+\-\.\/\0\2\3\5\6\7\C\D\F\G\L\M\R\S\T\V\W\X\Z\[\\\]\_\b\d\g\h\i\j\k\l\m\p\r\s\t\u\v\w\x\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]] ] ] ] ] ]]]]]]]]]]]]]] ]!]"]#]%](]*]+],]/]0]1]2]3]5]6]7]8]9]:];]<]?]@]A]B]C]D]E]F]H]I]M]N]O]P]Q]R]S]T]U]V]W]Y]Z]\]^]_]`]a]b]c]d]e]f]g]h]j]m]n]p]q]r]s]u]v]w]x]y]z]{]|]}]~]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^ ^ ^ ^ ^^^^^^^ ^!^"^#^$^%^(^)^*^+^,^/^0^2^3^4^5^6^9^:^>^?^@^A^C^F^G^H^I^J^K^M^N^O^P^Q^R^S^V^W^X^Y^Z^\^]^_^`^c^d^e^f^g^h^i^j^k^l^m^n^o^p^q^u^w^y^~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^___ _ _ ___________!_"_#_$_(_+_,_._0_2_3_4_5_6_7_8_;_=_>_?_A_B_C_D_E_F_G_H_I_J_K_L_M_N_O_Q_T_Y_Z_[_\_^___`_c_e_g_h_k_n_o_r_t_u_v_x_z_}_~________________________________________________________________________`` ` ` `````````"`#`$`,`-`.`0`1`2`3`4`6`7`8`9`:`=`>`@`D`E`F`G`H`I`J`L`N`O`Q`S`T`V`W`X`[`\`^`_```a`e`f`n`q`r`t`u`w`~````````````````````````````````````````````````````````````````````````````aaaaa a a aaaaaaaaaaaaaa!a"a%a(a)a*a,a-a.a/a0a1a2a3a4a5a6a7a8a9a:a;aa@aAaBaCaDaEaFaGaIaKaMaOaPaRaSaTaVaWaXaYaZa[a\a^a_a`aaacadaeafaiajakalamanaoaqarasatavaxayaza{a|a}a~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbb bbbbbbb b#b&b'b(b)b+b-b/b0b1b2b5b6b8b9b:b;bc?c@cAcDcGcHcJcQcRcScTcVcWcXcYcZc[c\c]c`cdcecfchcjckclcocpcrcsctcucxcyc|c}c~ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddd d d dddddddddddd"d#d$d%d'd(d)d+d.d/d0d1d2d3d5d6d7d8d9d;dd@dBdCdIdKdLdMdNdOdPdQdSdUdVdWdYdZd[d\d]d_d`dadbdcdddedfdhdjdkdldndodpdqdrdsdtdudvdwd{d|d}d~ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeee e e e eeeeeeeeeeeeeeeee e!e"e#e$e&e'e(e)e*e,e-e0e1e2e3e7e:eg?gAgDgEgGgJgKgMgRgTgUgWgXgYgZg[g]gbgcgdgfgggkglgngqgtgvgxgygzg{g}gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhh hhhhhhhhhhhh h"h#h$h%h&h'h(h+h,h-h.h/h0h1h4h5h6h:h;h?hGhKhMhOhRhVhWhXhYhZh[h\h]h^h_hjhlhmhnhohphqhrhshuhxhyhzh{h|h}h~hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiii i i iiiiiiiiiiiiiii!i"i#i%i&i'i(i)i*i+i,i.i/i1i2i3i5i6i7i8i:i;ii@iAiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiUiViXiYi[i\i_iaibidieigihiiijilimioipirisitiuivizi{i}i~iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjj j j j jjjjjjjjjjjjjjjj j"j#j$j%j&j'j)j+j,j-j.j0j2j3j4j6j7j8j9j:j;jl?lClDlElHlKlLlMlNlOlQlRlSlVlXlYlZlblclelflglklllmlnlolqlslulwlxlzl{l|lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmm m m mmmmmmmmmmmm m!m"m#m$m&m(m)m,m-m/m0m4m6m7m8m:m?m@mBmDmImLmPmUmVmWmXm[m]m_mambmdmemgmhmkmlmmmpmqmrmsmumvmymzm{m}m~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnn n nnnnnnnnnnn"n&n'n(n*n,n.n0n1n3n5n6n7n9n;nn?n@nAnBnEnFnGnHnInJnKnLnOnPnQnRnUnWnYnZn\n]n^n`nanbncndnenfngnhninjnlnmnonpnqnrnsntnunvnwnxnynzn{n|n}nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooo o o o ooooooooooooooo!o"o#o%o&o'o(o,o.o0o2o4o5o7o8o9o:o;op?p@pApBpCpDpEpFpGpHpIpJpKpMpNpPpQpRpSpTpUpVpWpXpYpZp[p\p]p_p`papbpcpdpepfpgphpipjpnpqprpsptpwpypzp{p}ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqq q q qqqqqqqqqqqq q!q"q#q$q%q'q(q)q*q+q,q-q.q2q3q4q5q7q8q9q:q;qq?q@qAqBqCqDqFqGqHqIqKqMqOqPqQqRqSqTqUqVqWqXqYqZq[q]q_q`qaqbqcqeqiqjqkqlqmqoqpqqqtquqvqwqyq{q|q~qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrr r r r r rrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r)r+r-r.r/r2r3r4r:rr@rArBrCrDrErFrIrJrKrNrOrPrQrSrTrUrWrXrZr\r^r`rcrdrerhrjrkrlrmrprqrsrtrvrwrxr{r|r}rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr00000 ^ &     000 0 0 0 0 00000006"'"("""*")""7"""%" "#"+"."a"L"H"=""`"n"o"d"e""5"4"B&@&2 3 !0 !&&%%%%%%%%%; !!!!0p!q!r!s!t!u!v!w!x!y!$$$$$$$$$$$$$$$$$$$$t$u$v$w$x$y$z${$|$}$~$$$$$$$$$$`$a$b$c$d$e$f$g$h$i$ 2!2"2#2$2%2&2'2(2)2`!a!b!c!d!e!f!g!h!i!j!k!  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0{0|0}0~000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000569:?@=>ABCD;<78134 !"#$%&'()*+,-./012345Q6789:;<=>?@ABCDEFGHIJKLMNO  % 5 ! !!!!!""#"R"f"g""P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%%%%%%%%%%%%%%%%%%%%%%%%% &"000+MkQDHa1111 1 1 1 1 1111111111111111111 1!1"1#1$1%1&1'1(1)1!0"0#0$0%0&0'0(0)02333333333330!!12 00000000IJKLMNOPQRTUVWYZ[\]^_`abcdefhijk0%%%%%%%%% % % % % %%%%%%%%%%%%%%%%%%% %!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%rrrrrrrrrrrrrrrrrsssssss s s s ssssssssss s#s$s&s's(s-s/s0s2s3s5s6s:s;st?t@tBtCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTtVtXt]t`tatbtctdtetftgthtitjtktltntotqtrtstttutxtytzt{t|t}tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuu u u u uuuuuuuuuuu u!u"u#u$u&u'u*u.u4u6u9uw?wBwDwEwFwHwIwJwKwLwMwNwOwRwSwTwUwVwWwXwYw\wO!Xq[bbfyrogx`QSS̀ PrY`qTY,g({)]~-ulf<;k{|_xք=kkk^^u]e __X[,AbOS^SMhj_h֜a+R*vl_eon[HduQQgNy|p]w^w_w`wdwgwiwjwmwnwowpwqwrwswtwuwvwwwxwzw{w|wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwuv^sdblZSRd”{/O^6$nlsUc\STeW N^ek?|`dsPgMb"lw)Ǒi_܃!Sk``p͂1Nlυd|ifISV{OQKmB\mcS,6gx=d[\]bgzdcI N fswwwwwwwwwwwwwwxxxxxx x xxxxxxxxx x!x"x$x(x*x+x.x/x1x2x3x5x6x=x?xAxBxCxDxFxHxIxJxKxMxOxQxSxTxXxYxZx[x\x^x_x`xaxbxcxdxexfxgxhxixoxpxqxrxsxtxuxvxxxyxzx{x}x~xxxxxx:W\8^PS^eEu1U!Pbg2Vno]5Tpfobdc{_oば\hf_lHldyWYjbHTXN z`oڋbyTucS`lߏ_p;O:\depEQQk][bltu zay{N~wNRQqjSϖndZixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyy y y y y@xPwdYc]z=i O9U2Nuzb^^R9Tpvc$W%f?iUm~"3b~u(x̖Hat͋dk:RP!kjqVSNNQ||O{zgd]Pv|mQgX[[xddc+c-dT{)vSb'YFTykP4b&^kN7_. yyyyyyyyyyyyyyyyy y!y"y#y%y&y'y(y)y*y+y,y-y.y/y0y1y2y3y5y6y7y8y9y=y?yByCyDyEyGyJyKyLyMyNyOyPyQyRyTyUyXyYyaycydyfyiyjykylynypyqyrysytyuyvyyy{y|y}y~yyyyyyyyyyyyyyy `=b9NUScƀe.lFO`mދ9_ˆS_!cZQachRccHP\wy[0R;z`Sv__vlop{vI{wQ$XNOnLe{rmZb^0W,{^_cnxpxQ[W5uCO8u^``YmkxSՖQRc T̍9rxv Syyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzz z z zzzzzzzzzzzzNvSv-["NNQcaR hOk`Qm\QbeaFucwkrr5XywL\g@^!nYzw;keXQQ[X(TrfeVvAcTY:YW5g5AR`X\EO%Zv`S|bOi` ?Q3\u1mNzz!z"z$z%z&z'z(z)z*z+z,z-z.z/z0z1z2z4z5z6z8z:z>z@zAzBzCzDzEzGzHzIzJzKzLzMzNzOzPzRzSzTzUzVzXzYzZz[z\z]z^z_z`zazbzczdzezfzgzhzizjzkzlzmznzozqzrzszuz{z|z}z~zzzzzzzzzzzzzzzzzzz0SZO{OONls^ju jwA~QpSԏ)rmlJWe?b2YN~>e^aUޘ*S T^l9Z)TlR~_Wq~l|KYN_$a|0N\g\ Θup"QIYQ[O&T+Yweu[vbbE^l&{OO gzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{ { { {{{{{{{{{{{{!{"{#{'{){-{nmmy_+ubOܑe/Q^PtoRK YPN6ry[DYTvVV9eivnr^uFggzvaybecQR8~\/n`g{vؚ|dP?zJTTLkdb=urRi[|B|i[wm&lN[ca+Tm[QUUdMcea` qWlIl/Ymg*XVjkݐ}YSimuTUwσ8hyTUOTvlmkd:?Vўu_rh`TN*jaR`pTpy?*m[_~UO4ssn;uRS݋i_`mOW"ksSh؏bc`$Uubqm[{^RLaĞxW'|vQ`LqCfL^M`pp%c_b`ԆVk`gaIS`ff?yOpGl~dfZZBQmmA;mOkpb` 'xyQ>WW:gxu=zy{|||||||||||||||||||||||||||||||||||||||||||||||}}}}}}}}} } } } }}}}}}}}}}}}}}}}}}}!}#}$}%}&}(})}*},}-}.}0}1}2}3}4}5}6}eo!Y~  TghM|ƖS%`urlsSZ~$cQ ]߄bQc[OmyBR`Nm[[e_EY~~ Vg9YsO[RZ>2uGP}?}@}A}B}C}D}E}F}G}H}I}J}K}L}M}N}O}P}Q}R}S}T}U}V}W}X}Y}Z}[}\}]}^}_}`}a}b}c}d}e}f}g}h}i}j}k}l}m}o}p}q}r}s}t}u}v}x}y}z}{}|}}}~}}}}}}}}}}}}}}}}}}}}}}}}}}}eP0QRonnm^PY\Fm_luhhVY SqMIiy&qNʐGmZVdwOr҉z4~RYeuSzccvyW6*bRThpgwckwzm~YbɅLuPNuJ\]K{eёN%m_'}&N(ۏsKfyяpxm}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}=\RFbQ[wvfN`||~NfofYXle\_uVzzQpzcvz~sENxp]NRSQeeT1\ubruE\yʃ@\Tw>NlZbnc]wQݍ/OS`pgRPcCZ&P7wwS~d+ebcP5rɉQ~GW̃QT\}}}}}~~~~~~~~~ ~ ~ ~ ~ ~~~~~~~~~~~~~~~~~~~ ~!~"~#~$~%~&~'~(~)~*~+~,~-~.~/~0~1~2~3~4~5~6~7~8~9~:~<~=~>~?~@~B~C~D~E~F~H~I~J~K~L~M~N~O~P~Q~R~S~T~U~V~W~X~Y~Z~[~\~]~OzZmᐏUTaST_cwiQha R*XRNW x w^wa|[bbNpbp`wWۂghxyXTS4nKQ;R[CUWs`QW-TzzP`T[cbScb[gTzw^8YWcWWw{O_[>k!SP{rFhw6weQNv\zuNYAP^~_~`~a~b~c~d~e~f~g~h~i~j~k~l~m~n~o~p~q~r~s~t~u~v~w~x~y~z~{~|~}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 79;<=>?@ACFGHIJKLMNORS'andWfFcVbib^WbU!JfUegV݄jZhb{pQo0cȉapntir^ΐgjm^cRbrlOYjpmRPNm~x/}!QWd{|lh^iQShrΞ{ryotNg̑xS)RPOOVY[\]^`cdefgklmopsuvwxz{|}uz|lRtTOTޏp^`m^[e8K`p~|Qh|o$Nϑ~fNdJPuq[foNdc^eRˆpRs3tgx4NޜmQATbsÔ6OQupu\SNn tikxYuR$vAmgmQKT<{z !#$+,-./0249:<>@ADEGHINOPQSUVWY[\]^_`abcdefghklmnoprstuvwxyz{|}WbG|iZd{oKbS^pcdSOx2B^oyU_F.btTݔOee\a\Q/l_sn~\cj[nuSqNceubn&ONl~W;#{=m~YsxlVTWpNVSȏ wnfba+o~ŀǀȀɀʀˀπЀрҀӀԀՀ؀߀  !"#$%&'()*+-.034579:;<=?)+vl_+skwƔoSQ=^8HNsghv dql wZAk'f[YZN jv0sh_[/wa|%_s|yʼnl[B^h w~QMQR)ZbׂcwЅy:n^YmplbvOe`f# T}T,xd@ABCDEGIMNORVWX[\]^_abcdfhjklorsuvwxāŁǁȁɁˁ́΁ρЁсҁӁyd!jxidTb+gX؞l o[L _rgbarNYkXfU^RUa(gvfwgrFzbTPTZ~lCNvYHYWS7uV c|`mbTQZY*Pl<\b`O?S{n+bt^xd{c_Z?\OcB}[nUJMm`grQ[ԁՁցׁ؁فځہ܁݁ށ߁  $%&').2:<=?@ABCEFHJLMNPQRSTUVWY[\]^`abcdefgibl[rmb~SmQ_tYR`sYfPu*ca|T'k%kՅUTvPljU,r^`6tbcLr_Cn>meXovxvTu$RSSN^e*րbT(RpэlxTڀWTjMiOlUv0xbpom_h|x{ gOgcxoWx9ybbR5tkjklmquvwx{|‚ÂłƂɂЂւقڂ݂  !"#$%&)*.027;=dU>uv9SuPA\l{OPGrؘothydwb+TXRNjW s^QtċO\aWlFZ4xD돕|VRQbNa郲W4gWnffm1fpg:khbYNQoglvQhGYgkfu]PeHyAyw\^NO/TQY xhVlď_}llc>?ABDEHJKLMNSUVWXY]bpqrstuvyz~ƒÃăƃȃɃ˃̓΃Ѓу҃ӃՃ׃كڃۃރp`=murfbŔCS~{N&~NԞMR\ocEm4XL] kIkg[TTX7:_bGj9re`ehwTNO]d\OzRN/`zONy4tRdy[lR{"l>PSndtf0l`w^?@ABCDEGHIJKLMNOPRSTUVX]^_`bdefghjnoprtwy{|S6ZSWCglhQubr8RR:p8vtSJinxو6qqQgtXeVvpb~`pXNN_NRY~TbNeb8Ʉcqn[~Qcg9Qz[YsN]leQ%o.J^tm1_dm(nÜ^X[ NS}~„ÄńƄDŽȄ˄̄΄τ҄ԄՄׄ؄لڄۄ܄ބOceQhU'NdkbZ_trmhPx@g9Rl~PeU^q[{RfsIgq\ R}qkUdaUUlGb.X$OFUOLf N\hNc zpR\T~bYJdž fDd\Qam>y7x3u{T8Om Z~^yl[vZuNanXu%urrGS~  "#$%&'()*-./0123456>?@ABDEFGKLMNOPQRSTUWXZ[\]_`abcefgijklmnopqsuvwx|}wviR܀#W^1Yren׋8\qASwbeNߘ[ƋSwON\vY_:yXNgNbR/fUlVNOʑpl^C`[ƉՋ6eKb[[c.US&v}Q,ghkbSmufNNp[qffr͞ ^\/gh_g bzX^pe1o…ÅąŅƅDžȅʅ˅̅ͅ΅х҅ԅօׅ؅مڅۅ݅ޅ߅U`7R Tdp)u^hbS=r4lawz.TwzUxgped6V`ySN{k[UV:O?@ABCDEFGHIJKLRSUVWXY[\]_`acdefghijmscK΀ԂbSl^*Y`plMWJd*+vn[Wjumo-fWkxcSpdlXX*dXhU|Pmpcmn~ChmvWYyr~uhTR"cD|USOfV`mCRI\)YmkX0uul`Fcag:w4^S,Tpmoprstuvwx†ÆņȆ̆͆҆ӆՆֆ׆چ܆݆ @l^\PN^:cGPhnw Tܔd_zvhEcR{~uwPb4YQyzV_m`\WTTQMnVc*To\bXb15@n|-iYb>UcTن\~*gsTOuÀUOMO-n \pakSv)ne~;T3z }UtcmzbegScl]\TLNalK\eh>T4TkfkNBcHS OO^W bdfirRR`fqgRxwpf;V8T!zr‡ÇćŇLJȇɇ͇̇·χЇԇՇևׇ؇هڇ܇݇އ߇  #zo` ^`Y`qpnPlrj-^`NZUm|b~w~#Sf\Or NSYTc(HQN~T$T7m&_Z>fis.sSz[wP~vSv{DXnaNey`TNy]ajPTa']xJRTVm[mSf$%&'()*+,-./01345678:;=>?ABCFGHIJKNOPQRSUVXZ[\]^_`fgjmoqstuvxyz{|\][!hxU{HeTiNGkNOSc:deQhxSall"Q\ #ke__OEfe)s`tQRWb_Lx^Og'`YDQQSylĖqOO=gUy~X bZV{_ĄWSe^\ud`n}Z~~iU[`esÈĈLjȈʈˈ͈̈ψЈшӈֈ׈ڈۈ܈݈ވ  "#$&'(),-./12357 cv)w~tf[tz@Rq_e[o]k[l ŏSb&-@T+NYr]YmŖTN qT pmv%Nx\^plDYcopYvt89:;<=>?@BCEFGHIJKLMNOPQRSTUVWXYZ[\]`abcdeghijklmnopqrstuvwxyz|}~Gd'\ez#YTo0iNV67rΑQ_NucNSfKYmNX;ScO Oc7YWyNul[Y]_iP]YNwNzbfy\Ny_Ɓ8uNԈak_INvn㋮ ы_~5kVk4YTm[n9\_É͉ӉԉՉ׉؉ىۉ݉߉ pS1jtZp^($%gGΏbvq_lx fTbcOÁu^͖ Tlm8l`R(u}^O`_$\1url8nI gSSQOɑS|^mNvi^aYOO>| annN1ZN\y[틽sWTGU\_a2kr !"#$%&'()*+,-./0123456789:;<=?@ABCDEFGIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~tm[Ոkm3 nQCQWScVXTW?sn܏т?a(`bf~Í\|g`NShAQЏt]UfU[S8xBg=hT~p[}Q(WTef^Clm|QgeojV vvpq#bRl<`Xaf`NbU#n-ggŠÊĊŊƊNJȊɊʊˊ̊͊ΊϊЊъҊӊԊՊ֊׊؊يڊۊ܊݊ފߊ(whiTMNpȋXde[z:P[wky|lve-]U\8h`Sbz[n~jzp_3o _cmVgN^&N4vb-f~blugqiFQSnbTُYmsewu'xOguʋ/cG5#cAw_rN`tebck?e  !"#$%'()*+,-./0123456789:;<=>?@ABCDE'^uѐg/e1TwAlKN~Lv ikgb?@BCDEHJKMNOPQRSTVWXY[\]^_`cdefghilmnopqrtuvw{|}~N N@QN^ESNNN2l[iV(Ny?NSGN-Y;rnSlV䀗k~w6NN\NiNN[[lUVNSSSSSe]SS&S.S>S\fScSRRR-R3R?R@RLR^RaR\R}RRRRRQTNNNNNNNNON"OdON%O'O O+O^OgO8eZO]OŒÌČŌƌnjȌɌʌˌ̌͌ΌόЌьҌӌԌՌ֌׌،ٌڌی܌݌ތߌ _OWO2O=OvOtOOOOO~O{OO|OOOOOOOOOOOOO)PLPO,PP.P-POP P%P(P~PCPUPHPNPlP{PPPPPPQPPPPQ QN=lXOeOOFlt|nQ]ɞQYR SSQYUQNVQNnN҈y4[QQQQ QRW_ehijlnoqrxyz{|}~ōǍȍɍʍ͍ЍҍӍԍQQQQ‹Ëˋϋ΋ҋӋԋ֋؋ً܋ߋ  !%'*+./2356iSzS"!1*=?CEFLMNOPSTUVWXZ[\]^_`abcdeghjknqϐŐАĐǐӐܐאې"#1/9CF RBYRRRRTRRRSqw^QQ/S_Zu]LWWW~XXXX)W,W*W3W9W.W/W\W;WBWiWWkWW|W{WhWmWvWsWWWWWWWWWWWWWWWWWWWWWsuwxyz{}~ŽÎĎŎƎǎȎɎʎˎ͎̎ώЎюҎӎԎՎ֎׎؎َڎێ܎ݎގߎ X XWWXXXDX XeXlXXXXXay}Ȃʂ゘˂̂Ă΂ ܂҂؂ ӂՂQ[\<41^/OGC_@`-:3fe  !"#$%&'()*+,-./0123456789:;<=>?@ABCDhiljmnx|}{؃X ݃փ8ԃ߃Ń&\QZYszx?@ABD7UVUuUvUwU3U0U\UUUUUUUUU~UUU{UUUUUUUUUVUUUUUUUUUUUUUUUUVV VV$V#VUV'V-VXV9VWV,VMVbVYV\VLVTVVdVqVkV{V|VVVVVVVVVVVVW W WW^^^^1^;^<^EGHQSTUVXY[\_`fghkmsz{|‘ÑđőƑȑˑБґӑԑՑ֑בّؑڑۑݑޑߑ7^D^T^[^^^a^\z\\\\\\\\\\\\\\\\\\\\\\\\]]']&].]$]]]]X]>]4]=]l][]o]]]k]K]J]i]t]]]]s]]s_w____________ba_rrrrrrrrrrrrrrrrsrsr  !"#$%&'()*+,-./0123456789:;<=>?@ABCDErss!s ssss"s9s%s,s8s1sPsMsWs`slsos~s%Y$YYcghijkltw}^^^^^^^^^^S^^^^^____`_`___``___`5`&``` `)`+` `?`!`x`y`{`z`B`FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrsuvwxyz{|}~j`}````````````````` a&aa#a`aa+aJauaaaaaaa_ ,N?rb5lTl\lJllllllhliltlvllllllllllllllllllll’ÒĒŒƒǒɒʒ˒̒͒ΒϒВђҒӒԒՒ֒גْؒڒےܒݒޒߒ 9m'm mCmHmmmmm+mMm.m5mmOmRmTm3mmommm^mmm\m`m|mcmnmmmnmmnmmmnm nm+nnnNnknn_nnSnTn2n%nDnnnnn-onnnnnnnnnnnnboFoGo$oon/o6oKoto*o o)ooooxoro|ozoo  !"#$%&'()*+,-./0123456789:;<=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghikoooooooooop#pp9p5pOp^p[[[[[[/u4d[[0[GӏՏ & !56-/DQRPhXb[ft}P_W_V_X_;\TP\Y\q[c\f\*_)_-_t<_;n\YYYYYYlmnopqrstuvwxyz{|}~“ÓēœƓǓȓɓ˓͓̓YYYYYYYYYYZZYZYYY Z Z2Z4ZZ#ZZ@ZgZJZUZusssssssssssssss| tssssst*t[t&t%t(t0t.t,t/0123456789:;<=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijlmnopqrstuvwxyz{|}~ǔϔӔԔڔ ttAt\tWtUtYtwtmt~ttttttttttttttLgSg^gHgigggjgsgggugggggwg|gg hg hgg hggggghggghgg2h3h`hahNhbhDhdhhhUhfhAhgh@h>hJhIh)hhhthwhhkhhnihi ih'3=CHKUZ`ntuwxyz{|}~•ÕĕŕƕǕȕɕʕ˕$ih iiWihiqi9i`iBi]iikiiixi4iiiiiificiyiiiiiiiiiiiiiii/jijjejiDj>jjPj[j5jjyj=j(jXj|jjjjjj7sRskkkkkkkkkkkkmqrsuvxwyz|~͕̕ΕϕЕѕҕӕԕՕ֕וٕؕڕەܕݕޕߕ #$%&'()+,-/0789:>ACJNOQRSVWXYZ\]^`cefkmnopqsxyz{|}~Ύ bbbb"b!b%b$b,btttuuu4eeee ffrgfffpff4f1f6f5f_fTfAfOfVfafWfwffffffffff236;=@EFHIGMUYljʉˉ̉ΉωЉщnrr]rfror~rrrrrrrc2cc–ÖȖʖ˖ЖіӖԖ֖זٖؖږۖܖݖޖߖ  ?ddkkkkklll lllll!l)l$l*l2l5eUekeMrRrVr0rbR gۀ€Āـ̀׀g݀ gZ6,2HLStYZq`i|}mgMXZń&gʁ!"#$%&'()+,./134567:;<=?@ABCDEFGHIJKLMNOPQTUWXZ\]_cdfghjklmnopqruwxyz{}~$k7k9kCkFkYkјҘӘ՘٘ژk@_keQeeeeeeeeepppppppppppqqq/q1qsq\qhqEqrqJqxqzqqqqqqqqqqr(rlpqfqq>b=bCbHbIb;y@yFyIy[y\ySyZybyWy`yoygyzyyyyyy__—×ėŗƗǗȗɗʗ˗̗͗ΗϗЗїҗӗԗ՗֗חؗٗڗۗܗݗޗߗ <`]`Z`g`A`Y`c``a a]aaaaabllmwwx xxxxe-xxx9x:x;xx?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnbwewww}wwwwwwwww:u@uNuKuHu[uruyuuXa_Hhtqy~vv2ĔȔɔʔ˔͔̔ΔДєҔՔ֔הٔؔ۔ޔߔopqrst˜ØĘŘƘǘȘɘʘ˘̘͘ϘИԘ֘טۘܘݘ "*+),124678<>?B5DEFILNORSTVWXY[^_]abdefghijkloqrs:wwɖyyyyzG]zzzz  !"#$%&'()*+,-/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSVWXYZ[\]^_`abdfsxy{~9z7zQzϞpzvvvvvtt,u "()*+,216879:>ABDFGHIKLNQUWZ[\^cfghijklqmsuuuuuuuuuuuuuuuuuuuuuuuvuuuvvv vv v%vvvv™ÙęřƙǙșəʙ˙̙͙ΙϙЙљҙәԙՙ֙יؙٙڙۙܙݙޙߙvv3vMv^vTv\vVvkvovzxzyzzzzzzzzzzzdir}ƈɈΈ! 4+6Af{u倲vvw "%&')(1 5CFMRiqx  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYMTlnz|{ĆΆɆφІކ߆؆ц #;%.>H41)7?"}~{`pLnSc|dYe҇Z[\]^_`abcdefghijkrÚĚƚǚȚɚʚ͚ΚϚКҚԚ՚֚ךٚښۚܚݚޚƇ凬ˇӇчʇۇ !9<6BDEzz{{{{ {+{{G{8{*{{.{1{ {%{${3{>{{X{Z{E{u{L{]{`{n{{{b{r{q{{{{{{{{{{{{{{{{{{{{{{ |{{|| |  !"$%&'()*+,-.013456789:=>?@FJKLNPRSUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|*|&|8|A|@|D!"#-/(+8;34>DIKOZ_h~؈߈^||Ie||||||||||||||||nf|w}}}G~~sgmGIJPNOd|}~›ÛěśƛǛțɛʛ˛̛͛ΛϛЛћқӛԛ՛֛כ؛ٛڛۛbapio}~rtyU~Yič֍׍ڍލ΍ύۍƍ ,.#/:@95=1IABQRJpv|otxe։މډ܉ܛݛޛߛ  !"#$%&'()*+,-./0123456789:;>&S*-0> ΖҖwȒ>jʓ>k#zĜŜƜǜʜ˜<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{}~œȜɜќҜڜ̜ۜ͜ΜϜМӜԜ՜ל؜ٜܜݜߜ|Xښ˚̚њECGIHMQ .UTߚ#;~֓۞ܞݞߞ",/97=>D  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÝĝŝƝǝȝɝʝ˝̝͝ΝϝНѝҝӝԝ՝֝ם؝ٝڝ۝ܝݝޝߝ $'.04;<@MPRSTVY]_`abenortuvwxyz{|}žÞŞƞǞȞʞ˞̞ОҞӞ՞֞מٞڞޞ !#$%&'()*+-.01234568:?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~졧¡@AB¦æĦŦƦǦȦɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צئѧҧӧԧէ֧ا٧ڧۧܧݧާߧק\CDEFGHYIJKLʡǡơM̡ءޡNϡOΡġšɡȡҡӡߡáˡס֡աP١ԡܡݡQRڡۡѡ͡SС٢ڢۢܢݢޢߢŢƢǢȢɢʢˢ̢͢΢ϢТѢҢӢԢբ֢עآ¢âĢ©éĩũƩǩȩɩʩ˩̩ͩΩϩЩѩҩөԩթ֩שة٩ک۩ܩݩީߩTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~񡍨ᡡe@ABCDEFGH¤äĤŤƤǤȤɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤۤܤݤޤߤabfg¥åĥťƥǥȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥۥܥݥޥߥ`cdŨƨǨȨɨʨ˨̨ͨΨϨШѨҨӨԨը֨רب٨ڨۨܨݨިߨZIJKLMNOPQRSTҡ@ABCϢػDEǧFԴ˩GHIJKɭLMNOPQRͤSپTUVWþXشYΧZ[Թ\˳]^žƲҰ_`abcdefghijklmnopqrstuvwxyz{|}~ԥή؃ѩЄͺຶĈϩٌٍؑҲ𳔁齕Ӵ˜ֲնϙتǜ؝ҞؠáѤإۼȩݷ·ƬҳοеغɰΫؽؾÁāŁƁǁȁˤɁʁˁ́́΁ρЁсҁӁԁՁ͵ցׁκ؁ءفځہ܁݁ށ߁۰Ѽづ灬ٮ聫ٹ끩ٶ޳@Ľ뿭ABCDEFGHIJKLMNOPQRSٴTUVWXYZ[\]^_`a٣ӹbcdef٩ghЩijklmnopqrstuvwxyz{|}~ٶق󾅂҈ى轋뾏ٻĐّ՜֝Ǟ٢ټ٥٨٫Ʃٮײͳ‚ÂĂłƂǂȂɂŵʂ˂̂͂΂٥ςЂт҂ӂԂՂւׂ؂قڂۂ܂݂ނ߂٢ߴٵ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeٮfghijklmnopqrstuvwxyz{|}~قȈԳմ⹵˿÷ҶټƒÃăŃƃǃȃɃʃ˰˃̃ع߾̓΃σЃу҃ӃԸԃՃփ׃؃كڃۃâ܃݃ރ߃ڹუ⃩Ԥ٬탳סմ@ABCDEFGHIJKLMNO˻PQʵRSͼۯTԶUVַWXYZ[Ю\]^ո_`abcdefghiιjklmn֢˯Ȳ̴̿opqrstuvwذxyйz{|}~؃؄؆羊؛˽؝Ţةث찦Ӽν֬ٽۿ۷„ÄĄńƄDŽȄɄʄ˄̄̈́΄τЄф҄ӄԄՄքׄ؄لڄۄ܄݄ބ߄􄴹Ҵ@ABCدD׳EFGHIJKLMN˷OPQRSTUVWXYZ[ǽ\]^_`aܻbcde׿fghij屲߼ըرklmnoخáӣpqrstuvwxyz{|}~޲񺈅؊ԋ؍ώǾؓۚȞϡβ沰ӫ˴ʬЭŮڿŹߵ߻нȰɿ̳߷Ӵضź˾̵߶ӹԳ߻ϺϸϽ¹¾ͷ…ÅąɰֶԷŅԿƅDžγȅɅεʅ˅̅ͅ΅υЅхʳ҅渻ӅԅՅօׅ߽߾߻ſ߱؅مڅۅ܅݅ޅ߅߶Ǻ׾ͺ̾߾@ABCDȿEFGHIJKߧLM߶NOϥPQRߴSTUVW縶ɨXY޿Z[\]^_`abcߺdefghi˽jklmnopqrstuvwxyz{|߽}~߀߂ʨΧળߌߍߎп׏ɐߡߗߢࠆȷƶɲߦŨĩЯ̱ಆΫɳെ߸ๆໆ྆Ⱥ†ÆĆņƆdžȆɆʆˆ̆͆ΆφІц҆ӆԆՆֆ׆؆نچۆ܆݆ކ߆ㆾ䆲ꆵ@AμBCD¸EFGHIJKLMNOPQRSTUVWXYZ[\ְ]^_`abcdٺefghijklmnopqrstuvwxyz{|}~Ƭʄ̟ࢇϱ༇‡ÇćŇƇLJȇɇʇˇ͇̇·χЇч҇ӇԇՇևׇ؇هڇۇ܇݇އ߇ػڶ釰뇧Ѵ퇧̹@ABCDEFGHIJKLMNOPQRSصTUVWXYZۡ[\]^_`abcdeۮ̲ӿfghijklἳӰطmnopۺqrstuvwxyz{|}~ہۅۊⶑ۸ەѿۖۗ浘忙ۜ۝۠°dz۲۴۵۷۹Ӻ۽ˆÈĈňƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈѶՈֈ׈؈وڈۈ܈݈ވ߈ሧ刦戩ܤ̵툰¶@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd̫efghijklmnopqrstuvܬwxyz{|}~ɹąǮ܊Ѝնۧڱۮ۹‰ÉĉʼnƉljȉɉʉˉ͉̉ΉωЉщ҉ӉǿԉՉ։׉؉ىډۉ܉݉މ߉≸牴٦񉻹̫ѻм@ABC޼DEFGܷHIJKLޱMNOPQRSTU°VWXYZ[\]^_`abūcdefgúhijk׾lmnopqrʶ˼stѡuvwxyz{|}~恊Ĩ惊慊Ëƌ掊ĕʘùЯΜ枊ҟ栊楊Ҩ淊Ҹ׻ͼͦ«濽潊濊ŠÊĊŊƊNJȊɊʊˊ̊͊ΊϊЊъҊӊԊՊ֊׊؊يӴڊۊ܊݊ފߊ㊹ͻ@ABCDEFGHIJKLMNOӿPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~υ놋戋捋޼ɏϗ朋杋枋柋梋յ榋樋Ī櫋氋‹ËċŋƋNjȋɋʋˋ̋͋΋ϋЋыҋӋԋՋ֋׋؋ًڋۋ܋݋ދߋ@ABCDEFGH׿IעJKL澼¹MNOPQRSTUVWXYZ[\]˳^ʲ_`abcdefٹ֨ҦgͿʶ»hijϬklmnopҼqrstuvżwļܿxyz{|}~Àԁǯ첊ѹՏ唌啌Զ˰Ѽʞ⷟ɡפШɩ⼫ɭ梳޲޳Ҵ޸;޾߳ġ־ŒӾÌČŌƌnjȌɌʌˌ̌͌ΌόЌьҌӌԌՌ֌׌،ٌڌی܌݌ތߌҨ쌬ڸẵ@ABCDEFᶰGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~၍糃Ɖ޴яᓍᕍᚍᛍ៍ᤍᬍﴍǶÍčōƍǍȍɍʍˍ͍̍΍ύЍэҍӍԍՍ֍׍؍ٍڍۍ܍ݍލߍ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyѲz{޾|}~ۀͰσұʼ˫ʌϏ̓֯۵֜ﰡ࣎ᣳêîϻļŽÎĎᱴŎƎǎȎɎʎˎ͎̎ΎώЎюҎӎɸԎՎ֎û׎؎َڎێӱ܎ݎގߎЮ⿦׵㎮Ϸȶ펥ʵ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeѢfghijޥتƪklmnױopqrstuvwڳxyzܵ{|}~ϡ偏像̈́ȅnj协쐏埏鹱塏ҥШͩѪʲ뱬ŭհӯᰏ᳏Ҵ˱ḏܺ᲻ẏн;õÏďŏƏǏȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏µ׏؏ُڏջۏ܏ݏޏߏرɼͦ޷@ABCDEFGHIJKLMNйֹOPQRSTUVWXYZ[ס\]^_`abcdefлghֿijklmnopqrstֻuv޺㲶̧wϡxyҿz{|Ģ}~ǂφ㷺㌐ڻ㎐㑐㒐ӓԗĘХ㚐Û㯱㝐¼㿵ǰ㪐ͭ󻲐̵㷐㸐Ϯ㹐ݻҲͳѲ߹Ϸ̻ÐĐŐƐǐȐɐʐː̐͐ΐϐАѐҐӐԐՐ֐אِؐڐېܐݐސиߐ߷ᐴ䐺@ȴABŻCDEFGHIJKLMNOPQRSTUVWۻXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~퇑㩺퐑㒑㜑Ъð㱑‘ÑđőƑǑȑɑʑˑ̑͑ΑϑБёґӑԑՑ֑בّؑڑۑܑݑޑߑΧȷɳƩ摪瑬葮ؽ푯쿷Ų@AǰBCDEFGHIJKLMۿNOǴPިѤ簶QRSTUVWXYгZ[\]^_`ѰabcdefʥgͶhijkٿlmnopŧqrstuvwֵxyz{޺|}~֣ĭށչܾΰоݰć𼉒ӹŦԊՌȩˎ޽Ƨװēֳҹ괰濜̞͢¥΢̮IJշӻ촩լꮒަʹͶ޺ͦ׽ư达’ÒĒŒƒǒȒɒʒ񼻻˒̒͒ΒϒВђݾҒӒԒՒ֒גݽْؒڒےܒݒޒߒ޶蒴̸ӽؿ֧@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\ҽ]^_`abcdefgh鸧ijklmnopqrs괦tuvwxyz{|}~ށ̄勓А벒듓ޔڰ̗ޞ˟բާݴİ޳áġ߽“ÓēœƓǓȓɓʓ˓͓̓ΓųϓГѓғӓԓՓ֓דؓٓړۓܓݓޓߓǥ⓫瓢ߣ蓥铳쓦ٲߢ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~߃𾈔ߧ֊ʎĸŷՒʹеÝȾ뽰ֱ̽Ҹɨض봾ʱDzճ󷵔”ÔĔŔƔǔȔɔ߰ʔ˔͔̔ΔϔДєҔӔԔՔ֔הؔ϶ٔڔ۔ܔݔޔߔᔽ㔶甹·к씻ȼȩɾи굺@ABCDEFGHIJKLMNOPQRSTUοVWXYZ[\г]^_`abcdefghijklmnopqrλstuvwxyz{|}~́ꅕꆕΈ޻ưΏǒꓕ֕ԛ꜕ϞꢕʦŵꯕĽ•ÕĕŕƕǕȕɕʕ˕͕̕ΕϕЕѕҕӕԕՕ֕וٕؕڕەܕݕޕߕǷܲ@ABCDEFGHIJKLMNOPQRSTUVWΩľXYZ[\]^_`abcdԨef˸ghijIJklmnopqrŶsܸtuvwxѿyz{ܽ|}~耖脖尅芖͋茖ΐՔ蕖Ö藖Ԛ蛖蜖㷝螖ݿ蟖衖ܼϼ袖誖ذ̸ƾȵ踖׹ĺ軖鲽–Ö¿ĖŖƖǖȖɖʖ˖̖͖ΖϖЖіҖ걻谶ӖԖՖ֖זٖؖږۖܖݖޖߖ˺ͣ۽@ABC赵谽DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx̵yz{|}~켇舗ÎƏזř̞頗ɪÿ׹貗鶗ҹ龗ֵ׿—×ėŗƗǗȗɗʗ˗̗͗ΗϗЗїҗӗԗ՗֗חؗٗڗۗܗݗޗߗ㗪䗻旫@ABCDEFGHIJKLMNOPQRSTUVŸWXӴYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~郘鋘錘鍘鑘隘馘骘۲鵘˜ØĘŘƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ٘ژۘܘݘޘߘȳ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~邙ÙÙęřƙǙșəʙ˙̙͙ΙϙЙљҙәԙՙ֙יؙٙڙۙܙݙޙߙδУ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg˴hijklmnopqrstuvwx߼yz{|}~в遚酚և銚鏚闚ζҠٻ쨚ҪίİñȱϱѱųбõպšÚĚŚƚǚȚɚʚ˚͚̚ΚϚКњҚӚԚ՚֚ךؚٚښۚʵܚƭݚշޚߚᚱ⚳㚤ѱ暪皵蚮ͭ@AȯسBCDEFGHIJKLMNOPQRSڷTUVWXYZ[\]^_`abcdefgŤײh㦻iھjkӺlmnoзpqrstuvwȴxyz{|}㨷~ńŨƅĆ׈㉛㋛ӌñ㍛㎛ཐ䒛䔛ѣ䗛䘛țϟ 򽨛䩛麪䫛䭛ֲ䯛䰛䳛͢Ŵ䷛Ǭ丛ⲹü些뻰ű仛գ›ÛěśƛǛƺțɛʛ˛̛͛ΛϛЛћқӛԛ՛֛כ؛ٛڛۛܛݛޛߛᛳ⛸ӵȧլɢ𛭺ԺϿ@ABCDEFGHIJKL䭵MNOPQRSTUVWXYZ[\̵]^_`abcdefghijklmnopqrsɶtԳuvwxyz۸{|}ʿ~ӂÃ䋜䓜䗜ϙ՛䞜䩜䫜ͪʺ侜ȸœÜĜŜƜǜȜɜʜ˜̜͜ΜϜМќҜӜԜ՜֜ל؜ٜڜۜܜݜޜߜ@ABCεDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~䃝䆝·őǔ•䘝̱䤝䥝䨝䩝䪝γ䴝ŶÝĝŝƝǝȝɝʝ˝̝͝ΝϝНѝҝӝԝ՝֝İם؝ٝڝ۝ܝݝޝߝᝥ睡@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~办卞๟塞寞ûƵһľžÞĞӲŞƞǞȞɞʞ˞¶̞͞ΞϞОўҞȻӞԞ՞֞מ؞ٞڞ۞ܞݞޞߞ澿ż@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_Ѹ`abcdefgh캱ٷijklmnopqrstuvwxyz{|}~ȁ쏟쓟ͻ引좟ɣè쩟֮챟쵟춟ɸϾŸßğşƟǟȟɟʟ˟̟͟ΟϟПџҟӟԟ՟֟ן؟ٟڟ۟ܟݟޟߟ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~삠쌠׍Ŏ뮰ְؕ˖㗠氞Ź론률먠Ѫūꬠĭıβ궠ɸǺν àĠŠƠǠȠɠʠˠ̠͠ΠϠРѠҠӠԠՠ֠נؠ٠ڠ۠ܠݠޠߠ⠮㠸破ҵ񠷱Ѿ@ABݺƽCDEFGHIJϨKLMNOPQRSTUVWXYZ[\]^_`abc²defghij֨ìklmnopqrstuvwxyz{|}~K↪釪⋪⓪̞⟪@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn緻opqrst磲uvwxyz{|}~ɀՂ穷烫犫玫֏瓫甫畫ఘ眫@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~臬般艬ȪɊ藬幙Ѩ螬@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~芭Ϲ𔭭𕭰갿Ȗ͗αꞭ@AɴBCDEFGHIJKLMNOPQRSTUVWXYZ[ʸ\]^_`abcdeӦf±g׼hijklmnopqrstuvwxyz{|}~۳Ѐƈ볓目@ABCDEFGHIξJKLM̰NOPQRSôTUVWҾXYZ[ָӷ\]^_`abۺcdefghijklmnopqrճstuvԱwxyz{|}~񌯍Τ񏯣ʑ̓񔯕񖯗թ񘯙Ț񝯫񞯟@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkǵlװٰmnopĵqԽʻrs޸tuvwxyz{|}~Ƒ񔰕ÞӠ@ABCDкEFǸGHIJKLMNOPQRSTUVWXĢYZ[\]^_`ܶabcdefghijklmnopqrstuvwxyz{|գ}~큱Â퇱̈щՌ퍱퐱혱@ABCˡDEFG޽DzHIJKLMNOPQRSöTUVأWXYZ[\]^_`abcdefghijklmnopqrɵstuvwxyz{|}~Հۏ񛲜Ҡ@AؾBý̶CDEFGHIJKLMί°NOPQRSTUƳVWXYZ׺[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ςȎ6Ś@ABCDE­FGHIJKLMNOPQṞSTUVWXYZ[\]^_`abcdŴefghijklmnopqĿrstuvwxyz{|}~Ą퇴팴퍴ǻ횴@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ρƂ쇵쏵억욵@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abӮc̺dнefgѸhijklmnƿopqrstuvwxyz{ӳ|}~Ƴսҋ໌ώ̳ɰ˖ް֟@ABCDEFGHIJKLMNOPQRSTUVWڼXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ъǶտ͏ǭՐ񑷺񒷓ǖ֙ѽܴΞ߿񟷠@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs͵tuvwxy߽z˶{|}~󅸆͸ʰˎ󑸦Вʱ󔸕ѵ󛸜ڵ@ABCDEFGHIJKLMNOPQȵRSTֲUV߲WXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~󀹁˄󈹉ܹ󋹌ϑ󓹔󖹗󞹟@תABCDEFGHIJKLMNݸOPQRS۴TUVWXYZ[\]^_`abcdefghijklmnopشqrstuvwxyz{|}~􅺆ɻ􍺎@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~۷ƊִՋˎ֑෕ⴟ@ABCDEFGHIJKLMNOڲPQRSԷTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ˏːח@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~􀽁@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~􋿌@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ԶͼȳΡٸā׷ķţϤɸϯ֧ҭὫȄѭʽͮЅ̼稼бв´ɬ÷պº׻穼ж纻޵翸췊ɽ׸ȍ޹͟ر@·ABCDEFհGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ӇΉ᳌ґǙԵ@ABCDEFG²HIJKLMNO­PQR«S¼TUVWXYZ[ĺҰ\]^_`abcdefghijklmܳn¢o¢pqrstuvwxyz{ª|}~¸ƀ۾‚ƒ„…†‡ˆ‰Š‹ŒŽϴ‘’“”–—˜™š›œžŸ @òABCDEFGHIJKLMäNOǶظθPÿ릳ɹQʷRST缾U빰ϿVWXYZ[η\ղ]è^_`abócdefghijklmn÷opqúrs÷tuvwxìyz{|}¹~ÀفñŽÅÆÈÉÊËÌÍÎÏÐÑÒÓÕìØÙóÜÝÞßâƠ@ABCDEFGİHIJįKLMNOPQRSTUVWXYZ[\]^_`abcĹdefghijIJklmnopqrstuvw̤ĥxyz{|}~ĢŁăĄąĆćĈĉɊċČčĎďđĒē͡۱ӔĕҖėĘěĜĝĞğĠ@ABCDEFGHIJKLMNżOPQŰRSTūUVWXYZ[\]^_ʾ`ŧaŨҨbŪ˾cdefghijklmnopqŶrsŭtuvwŲxŽ㰰yűղzŶ涰ϴ{ŵ|}Ÿ~ŀŁłŃŹŅŧ͆źŻʼnŊżŌōŎŏŐőŒ˓ŽŕŖŗžřŚśŜŝŞşſ@ABCDƫEFGHƳIJƴܬKLڽMƹNOPQƷRɺܶSƻܢTUVWƼܽXYΥZ[\]潫^ƸܾҷŰܾܨ_Ƽ`aܿbcdƿefghijƭkԲlƷܦmnopqrstuƻvwxƽyƢz{|}~ƻƀ܁ƂƃƄƅׯöǩ܆Ƈ܈ƥ܉܊Ƌ܌܍Ǝܢ܏ƐƑƒƓƔƕƖƗƘĴƚƣܛܜܝ貞ܟܠ@ABCDEǣFݲGHIJKĻLMNOPQԼRܴSܫӡݣݥҤݦݧݩTUVWXYZɺ[\Ƕݱݴ]^_`abcǰdefghiǯjklܮmnopǷqrܯsǸtǬuvwxyz{ǹݳݭݪ|}~ǀǨݳݫ݁DzݨӺ݂ǻݧÃDŽݼ݅džLJ݈ǽNJվǍʺǏǐǑݒݓǿݔǕǖ˲ݗݤݘǙǚǾݛǜǝݞǟǠ@AƷBCDEFGHIJKLȽMNOPQRüƮSTUVWXYZ[\]^_`abȩӪcdefghijklmnopqrstuvwxyz{|}~ȀȁȂȃȄȅȆ݇ȈȉȊȋ֌ݍȎȏȐƑȭȓȔȕȖݗݘșȚдݜݝݞݟȠ@ABCDٵEFGHIɯJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}ͱ~ɀɁɂɃɄɶɻ݆ɇ݈݉ɊɋɌɍŎɏɐݑɒɓɔɕɖɗɘəɚɛɤޜɝɣޞɟɠ@ABCDEFGHIJKLMNOPQRʵSTUVW̲XYZ[\]^_`abcdefghijʾݢުαklmnoʬpqrsʦ޶tuvwxyz{|}~ʡހʁʥނʃʄʅʩކʇʈʉʊʨދʌʍʧގʏʐʑʒʓʔʕʖʭޗԘʙʚʛʳުޮޜʝʟʠ@AˡB˱CDEFGHI˲JKLMNOPQRST˦ѵUVWXYZ[˯\]^˰_˽`ab˴ʹcdefgh˸i˷jklmnop˻qrstuvwxyz{|ز}~˺ހ˺Ł˂˃˄˅ˆ˼އˈˉˊˋˌˍ̎ˏːˑ˪˓˔˕˖˗˘˙˚˛˜˝˞˟ˠ@ABCD̽EFGHI̿JKLMNOPQRST̢UVWXYZ[\]^_`abcdefgh̾ijklmnopqrstuvw̺xyz{|}~̮̀́̂̃̄̅̆̇̈̉̊̋򢻲°Œ̯̍̏̐̑̒Г̔̕Ӗ̛̗̘̜̝̞̟̠̽̚泰@ͱABͭCDEFGHI纳˺ϲJKLMNOPθQRSTU;VϲWXYZ[\Ѻ]^_`aͼbcͻd͹efghijklmnopqrstuƹvwxy׻z{|}~͇͈̀͂̓̈́͆͊͋Œ͎͏Ӑ͓͑͒궔ʕ͚͗͘͜͝͞͠Ω@ABCDίEFGHIJKLMNOPQRSTUVWXYZ[\]^ά_`aΫbcdefghȻijklmnopqrstuvwxyz{|}~΁΂΃΅ΆΣΉ΢΋ȍΎΏΐΑΓΔΥΖΗΘΙΚΛÜΝΞΟΠ@ABCDϧEFGHϫIϪJKLMNOϮPQϰRSTUVϡWXYϱZ[\]^ϯ_`abcdeϲfghiϴjklmϨnopqϳrstϵuvwxyz{|}~ϷЀρςσϸυφχوωϊϋόύϹϏϐϑϒϓϔϕϷȶϘϙϚϺϜϝϞϟϻ@ABCDEFGHIJKLMNOPQRSмTUнVWXЪYZ[Ь\]^_`abcdefghiֽjklmnopqrstijuvХwxyz{|}~ЀЁЬЅЇʼnЊЋЌл̍ЎЏАБВГД͕ЖЗИЙٛМНОПРл@ѮABCѤDEFGHIJKLMNOPòQRѰSTUVWXYZ[\ң]^_`abcdefghijklmnopqrstuvwxӹyz{|}~ртуфхֺшщъыэюяѐђѓȔѕіїљњћѽѝў@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ҁҁ΂Ҫ҃҅Ҳ҇҈҉ҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝҞҟҠ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^۹_`ǽabcdefghijklmӡnopqӢrstӣuvwӲxyz{|}~ӀӁӂӃӄхӆӇӈӉӊًӌӍӎӏӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_Ԥ`abcdefghԺijklmnopqrstuvwxyz{|}~ԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԐԑԒԓԔԕԖԗԘԙԲ՚ԛԜԝԞԟԠ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖ՗՘ՙ՚՛՜՝՞՟ՠ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~րց֥փքօֆևֈ։֊֋֌֍֎֏֐֑֖֛֚֒֓֔֕֗֘֙֜֝֞֟֠@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ׯ`abcdשefghijklmnopqrstuvwxyz{|}~׀ׁׂ׃ׅׄ׆ׇ׈׉׊׋׌׍׎׏אבגדהוזחטץƼȥڧȨƙ׵ҶǼײ仩ڪѫ›÷֬ڭ׶ʜשծʴگڝұڲڳʴګʵڶϳַڰڹҺøﲻڼڞӽξ廿ڵڵ̷οڭڸ̟ұѻڳڽڠڻХګ÷ھڴȹ@ABCDEFGHIJKLعMNOPQRSTUVWعXYZ[\]^_`aϿbcdefghijklmnopqrstuvwxyz{|}~؀ѺزÂ؃؄؅؆؇؈؊؋؍؎؏ؘؙؚؐؑؒؓؔؕؖؗ؛؜؝؞؟ؠ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ـفقكلمنهوىيًٌٍَُِّْٕٖٜٟٓٔٗ٘ٙٚٛٝٞ٠@ABCDEFGHIJKLMNڴպOڱƲ̶ַܰᱺṡѷغּ߻ɳĶʹPQRڸSɮӸTUVWպXYZ[\ϸ]^_`abcdeófghijkڽlmnopqrstuvwxyz{|}~ڀڤȁڂڃڄڅچڇڈډڊڋڌڍ׿ڐڻںڕږھڙښڛϰŞڟڠ@ABCDEFGHIJKL۷MNOPQRSTUVWXY۽Z[\]^_ۤ`abcdefghijklmnopqrȲstuvwxyz{|}~ۀ̂ۃۿ帵̄ۅۆۇۈۊۋیۍێ۾ېۑےۓ۔ەۖۗۘۙۚıۜۿ۞ŵ䲟׶@ABCDEFGHڴIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkɪlmnopqrstuvwxyz{|}~܀܁܂܃܄܅܆܇܈܉܊ܦ܌܍܎܏ܐܑܒܓܔܕܖܗܘܙܚܛܜܝܞܟܠ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~݂݄݆݈݀݁݃݅݇݉݊݋݌ݍݎݏݐݑݒݓݔݕݖݗݘݙݚݛݜݝݞݟݠ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`޵aνbϽ騸鲱ԻcޡdԽϷդեмeǴٱfghޱijklmnopq޽rstuvw߱xyz{|ި}Ƹ~€ށނރބޭӅ嵷ވ޹Չԥάٳދ̌ϵƎʐޑޓޔűޖޗ޷טޙĚޛޡѷ޸ݵ޾͟庶@ߨAѳBCDEFGHIJKLMNOPQRƱSTUݶVWXYZ[\]^_`abcdefghijߣklmnopqrstuvwxyz{|}ܱ~߁߂߃߅߇߈߉ߊҋ˵ڎڏڐڑߒߓĔߕߗߘ߰ЙښӪǛڜߡߞߥ۟ߠ@AۤBCD༽EFGۦۣHIJKLMN۬ºOPQिRSTԿUVWXYZ[\໳]^_঵`abc༶defghijklmnopqrstuvwxyz{ɱ|}~ہ۵ۄۏېۗ۠@ABCƾDEFGHIӷJKԪLMNOPQRͥSͽ˪TUVWXYZ[\ἴ]^״_`abcdefgéhijklmnopqrstuvwxyz{|}~ɲʌְҿ᪸@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~դ谷Ƹ۶ĵָγؼ̬ǭØã½Ҩ֩ƞˮб淿г̶ջü¸@臨AͶBƶCDEFGﵾHIJKLMNOPQRS餳TUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\ձγâ]꧷Һ^_`a그bӶcdefghijklmno׽pqrstꢰuv꽸ʼ¤³w°ĵxyz{|}~ݱچ긶ԇŊڋڐϑӡžڟ@ABCDEFگGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeѯ͹fghƴijklmnopqrstuvwxyz{|}ӧ~뢱΍ЫϐլÑė˞ϟ@ABCDEFGHIJKLMNOPQR԰STUVWXYZ[\]^_`abcdefghiǦjk츾lm첾nopǷq쿿rstuvwxyz{|}~саД찰ǜ@AϾBCDEFGHIJKޱLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ȃ¾҈ɉ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEҥϳ˹ٶԭƱռFGҵHͥIſJߵKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvƭwxyɷz{|}~@ABCDEFͲGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~𢼘⹷Ҥʥ˙ȽĞݹ@AʸBCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQ¦ͱ۳R󵲿ԾݼS§TҳUVWXYZǹ[\]^_`abcdefghijklmnopqrstuvwxyz߸{|}~מ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ӁϏ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[į𦼰\Ż]^_`͸ab븽cdefghijklmno׺pqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSƻTUVWXYZ[ں\]^_`abcdefghijklmnopqrstuvwxyz{|}~؇Ĺ،܍ʓ@ABCDEFDZGHIJKLMNOPQRSTUVWƴXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ݳȻٗ@ABCDEFGHIJKLMNOUhijklmnopqrstuvwxyz{|}~硥£ãģţƣǣȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڣۣܣݣޣߣVW  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~+DHMkQa !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOQ         % & 0 2 3 5 ; !! !!!!`!a!b!c!d!e!f!g!h!i!j!k!p!q!r!s!t!u!v!w!x!y!!!!!!!!!"""""""" "#"%"'"(")"*"+"."4"5"6"7"="H"L"R"`"a"d"e"f"g"n"o"""""#`$a$b$c$d$e$f$g$h$i$t$u$v$w$x$y$z${$|$}$~$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%% % % % % %%%%%%%%%%%%%%%%%%% %!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&& &@&B&00000000 0 0 0 0 0000000000000!0"0#0$0%0&0'0(0)0A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0{0|0}0~00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111 1 1 1 1 1111111111111111111 1!1"1#1$1%1&1'1(1)1 2!2"2#2$2%2&2'2(2)212233333333333NNNNNNNNN N N N N NNNNNNNNNNNNNNNNNNN N!N"N#N$N%N&N'N(N)N*N+N,N-N.N/N0N1N2N3N4N5N6N7N8N9N:N;NN?N@NANBNCNDNENFNGNHNINJNKNLNMNNNONPNQNRNSNTNUNVNWNXNYNZN[N\N]N^N_N`NaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzN{N|N}N~NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOO O O O O OOOOOOOOOOOOOOOOOOO O!O"O#O$O%O&O'O(O)O*O+O,O-O.O/O0O1O2O3O4O5O6O7O8O9O:O;OO?O@OAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWOXOYOZO[O\O]O^O_O`OaObOcOdOeOfOgOhOiOjOkOlOmOnOoOpOqOrOsOtOuOvOwOxOyOzO{O|O}O~OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPP P P P P PPPPPPPPPPPPPPPPPPP P!P"P#P$P%P&P'P(P)P*P+P,P-P.P/P0P1P2P3P4P5P6P7P8P9P:P;PP?P@PAPBPCPDPEPFPGPHPIPJPKPLPMPNPOPPPQPRPSPTPUPVPWPXPYPZP[P\P]P^P_P`PaPbPcPdPePfPgPhPiPjPkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzP{P|P}P~PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQ Q Q Q Q QQQQQQQQQQQQQQQQQQQ Q!Q"Q#Q$Q%Q&Q'Q(Q)Q*Q+Q,Q-Q.Q/Q0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q:Q;QQ?Q@QAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQSQTQUQVQWQXQYQZQ[Q\Q]Q^Q_Q`QaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQ{Q|Q}Q~QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRR R R R R RRRRRRRRRRRRRRRRRRR R!R"R#R$R%R&R'R(R)R*R+R,R-R.R/R0R1R2R3R4R5R6R7R8R9R:R;RR?R@RARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVRWRXRYRZR[R\R]R^R_R`RaRbRcRdReRfRgRhRiRjRkRlRmRnRoRpRqRrRsRtRuRvRwRxRyRzR{R|R}R~RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSS S S S S SSSSSSSSSSSSSSSSSSS S!S"S#S$S%S&S'S(S)S*S+S,S-S.S/S0S1S2S3S4S5S6S7S8S9S:S;SS?S@SASBSCSDSESFSGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS[S\S]S^S_S`SaSbScSdSeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzS{S|S}S~SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTT T T T T TTTTTTTTTTTTTTTTTTT T!T"T#T$T%T&T'T(T)T*T+T,T-T.T/T0T1T2T3T4T5T6T7T8T9T:T;TT?T@TATBTCTDTETFTGTHTITJTKTLTMTNTOTPTQTRTSTTTUTVTWTXTYTZT[T\T]T^T_T`TaTbTcTdTeTfTgThTiTjTkTlTmTnToTpTqTrTsTtTuTvTwTxTyTzT{T|T}T~TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUU U U U U UUUUUUUUUUUUUUUUUUU U!U"U#U$U%U&U'U(U)U*U+U,U-U.U/U0U1U2U3U4U5U6U7U8U9U:U;UU?U@UAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUUUVUWUXUYUZU[U\U]U^U_U`UaUbUcUdUeUfUgUhUiUjUkUlUmUnUoUpUqUrUsUtUuUvUwUxUyUzU{U|U}U~UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVV V V V V VVVVVVVVVVVVVVVVVVV V!V"V#V$V%V&V'V(V)V*V+V,V-V.V/V0V1V2V3V4V5V6V7V8V9V:V;VV?V@VAVBVCVDVEVFVGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVVVWVXVYVZV[V\V]V^V_V`VaVbVcVdVeVfVgVhViVjVkVlVmVnVoVpVqVrVsVtVuVvVwVxVyVzV{V|V}V~VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWW W W W W WWWWWWWWWWWWWWWWWWW W!W"W#W$W%W&W'W(W)W*W+W,W-W.W/W0W1W2W3W4W5W6W7W8W9W:W;WW?W@WAWBWCWDWEWFWGWHWIWJWKWLWMWNWOWPWQWRWSWTWUWVWWWXWYWZW[W\W]W^W_W`WaWbWcWdWeWfWgWhWiWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWyWzW{W|W}W~WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXX X X X X XXXXXXXXXXXXXXXXXXX X!X"X#X$X%X&X'X(X)X*X+X,X-X.X/X0X1X2X3X4X5X6X7X8X9X:X;XX?X@XAXBXCXDXEXFXGXHXIXJXKXLXMXNXOXPXQXRXSXTXUXVXWXXXYXZX[X\X]X^X_X`XaXbXcXdXeXfXgXhXiXjXkXlXmXnXoXpXqXrXsXtXuXvXwXxXyXzX{X|X}X~XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYY Y Y Y Y YYYYYYYYYYYYYYYYYYY Y!Y"Y#Y$Y%Y&Y'Y(Y)Y*Y+Y,Y-Y.Y/Y0Y1Y2Y3Y4Y5Y6Y7Y8Y9Y:Y;YY?Y@YAYBYCYDYEYFYGYHYIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXYYYZY[Y\Y]Y^Y_Y`YaYbYcYdYeYfYgYhYiYjYkYlYmYnYoYpYqYrYsYtYuYvYwYxYyYzY{Y|Y}Y~YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZ Z Z Z Z ZZZZZZZZZZZZZZZZZZZ Z!Z"Z#Z$Z%Z&Z'Z(Z)Z*Z+Z,Z-Z.Z/Z0Z1Z2Z3Z4Z5Z6Z7Z8Z9Z:Z;ZZ?Z@ZAZBZCZDZEZFZGZHZIZJZKZLZMZNZOZPZQZRZSZTZUZVZWZXZYZZZ[Z\Z]Z^Z_Z`ZaZbZcZdZeZfZgZhZiZjZkZlZmZnZoZpZqZrZsZtZuZvZwZxZyZzZ{Z|Z}Z~ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[ [ [ [ [ [[[[[[[[[[[[[[[[[[[ [!["[#[$[%[&['[([)[*[+[,[-[.[/[0[1[2[3[4[5[6[7[8[9[:[;[<[=[>[?[@[A[B[C[D[E[F[G[H[I[J[K[L[M[N[O[P[Q[R[S[T[U[V[W[X[Y[Z[[[\[][^[_[`[a[b[c[d[e[f[g[h[i[j[k[l[m[n[o[p[q[r[s[t[u[v[w[x[y[z[{[|[}[~[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\ \ \ \ \ \\\\\\\\\\\\\\\\\\\ \!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\0\1\2\3\4\5\6\7\8\9\:\;\<\=\>\?\@\A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z\[\\\]\^\_\`\a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]] ] ] ] ] ]]]]]]]]]]]]]]]]]]] ]!]"]#]$]%]&]'](])]*]+],]-].]/]0]1]2]3]4]5]6]7]8]9]:];]<]=]>]?]@]A]B]C]D]E]F]G]H]I]J]K]L]M]N]O]P]Q]R]S]T]U]V]W]X]Y]Z][]\]]]^]_]`]a]b]c]d]e]f]g]h]i]j]k]l]m]n]o]p]q]r]s]t]u]v]w]x]y]z]{]|]}]~]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^ ^ ^ ^ ^ ^^^^^^^^^^^^^^^^^^^ ^!^"^#^$^%^&^'^(^)^*^+^,^-^.^/^0^1^2^3^4^5^6^7^8^9^:^;^<^=^>^?^@^A^B^C^D^E^F^G^H^I^J^K^L^M^N^O^P^Q^R^S^T^U^V^W^X^Y^Z^[^\^]^^^_^`^a^b^c^d^e^f^g^h^i^j^k^l^m^n^o^p^q^r^s^t^u^v^w^x^y^z^{^|^}^~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^_________ _ _ _ _ ___________________ _!_"_#_$_%_&_'_(_)_*_+_,_-_._/_0_1_2_3_4_5_6_7_8_9_:_;_<_=_>_?_@_A_B_C_D_E_F_G_H_I_J_K_L_M_N_O_P_Q_R_S_T_U_V_W_X_Y_Z_[_\_]_^___`_a_b_c_d_e_f_g_h_i_j_k_l_m_n_o_p_q_r_s_t_u_v_w_x_y_z_{_|_}_~__________________________________________________________________________________________________________________________________````````` ` ` ` ` ``````````````````` `!`"`#`$`%`&`'`(`)`*`+`,`-`.`/`0`1`2`3`4`5`6`7`8`9`:`;`<`=`>`?`@`A`B`C`D`E`F`G`H`I`J`K`L`M`N`O`P`Q`R`S`T`U`V`W`X`Y`Z`[`\`]`^`_```a`b`c`d`e`f`g`h`i`j`k`l`m`n`o`p`q`r`s`t`u`v`w`x`y`z`{`|`}`~``````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaa a a a a aaaaaaaaaaaaaaaaaaa a!a"a#a$a%a&a'a(a)a*a+a,a-a.a/a0a1a2a3a4a5a6a7a8a9a:a;aa?a@aAaBaCaDaEaFaGaHaIaJaKaLaMaNaOaPaQaRaSaTaUaVaWaXaYaZa[a\a]a^a_a`aaabacadaeafagahaiajakalamanaoapaqarasatauavawaxayaza{a|a}a~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbb b b b b bbbbbbbbbbbbbbbbbbb b!b"b#b$b%b&b'b(b)b*b+b,b-b.b/b0b1b2b3b4b5b6b7b8b9b:b;bb?b@bAbBbCbDbEbFbGbHbIbJbKbLbMbNbObPbQbRbSbTbUbVbWbXbYbZb[b\b]b^b_b`babbbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbxbybzb{b|b}b~bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccc c c c c ccccccccccccccccccc c!c"c#c$c%c&c'c(c)c*c+c,c-c.c/c0c1c2c3c4c5c6c7c8c9c:c;cc?c@cAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc[c\c]c^c_c`cacbcccdcecfcgchcicjckclcmcncocpcqcrcsctcucvcwcxcyczc{c|c}c~ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;dd?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeee e e e e eeeeeeeeeeeeeeeeeee e!e"e#e$e%e&e'e(e)e*e+e,e-e.e/e0e1e2e3e4e5e6e7e8e9e:e;ee?e@eAeBeCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZe[e\e]e^e_e`eaebecedeeefegeheiejekelemeneoepeqereseteuevewexeyeze{e|e}e~eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefffffffff f f f f fffffffffffffffffff f!f"f#f$f%f&f'f(f)f*f+f,f-f.f/f0f1f2f3f4f5f6f7f8f9f:f;ff?f@fAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf[f\f]f^f_f`fafbfcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzf{f|f}f~ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffggggggggg g g g g ggggggggggggggggggg g!g"g#g$g%g&g'g(g)g*g+g,g-g.g/g0g1g2g3g4g5g6g7g8g9g:g;gg?g@gAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg[g\g]g^g_g`gagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzg{g|g}g~gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhh h h h h hhhhhhhhhhhhhhhhhhh h!h"h#h$h%h&h'h(h)h*h+h,h-h.h/h0h1h2h3h4h5h6h7h8h9h:h;hh?h@hAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh[h\h]h^h_h`hahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzh{h|h}h~hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiii i i i i iiiiiiiiiiiiiiiiiii i!i"i#i$i%i&i'i(i)i*i+i,i-i.i/i0i1i2i3i4i5i6i7i8i9i:i;ii?i@iAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi[i\i]i^i_i`iaibicidieifigihiiijikiliminioipiqirisitiuiviwixiyizi{i|i}i~iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjj j j j j jjjjjjjjjjjjjjjjjjj j!j"j#j$j%j&j'j(j)j*j+j,j-j.j/j0j1j2j3j4j5j6j7j8j9j:j;jj?j@jAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj[j\j]j^j_j`jajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzj{j|j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkk k k k k kkkkkkkkkkkkkkkkkkk k!k"k#k$k%k&k'k(k)k*k+k,k-k.k/k0k1k2k3k4k5k6k7k8k9k:k;kk?k@kAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk[k\k]k^k_k`kakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzk{k|k}k~kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkklllllllll l l l l lllllllllllllllllll l!l"l#l$l%l&l'l(l)l*l+l,l-l.l/l0l1l2l3l4l5l6l7l8l9l:l;ll?l@lAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl[l\l]l^l_l`lalblcldlelflglhliljlklllmlnlolplqlrlsltlulvlwlxlylzl{l|l}l~llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmm m m m m mmmmmmmmmmmmmmmmmmm m!m"m#m$m%m&m'm(m)m*m+m,m-m.m/m0m1m2m3m4m5m6m7m8m9m:m;mm?m@mAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm[m\m]m^m_m`mambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzm{m|m}m~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnn n n n n nnnnnnnnnnnnnnnnnnn n!n"n#n$n%n&n'n(n)n*n+n,n-n.n/n0n1n2n3n4n5n6n7n8n9n:n;nn?n@nAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnYnZn[n\n]n^n_n`nanbncndnenfngnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynzn{n|n}n~nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooo o o o o ooooooooooooooooooo o!o"o#o$o%o&o'o(o)o*o+o,o-o.o/o0o1o2o3o4o5o6o7o8o9o:o;oo?o@oAoBoCoDoEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo[o\o]o^o_o`oaobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozo{o|o}o~ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppp p p p p ppppppppppppppppppp p!p"p#p$p%p&p'p(p)p*p+p,p-p.p/p0p1p2p3p4p5p6p7p8p9p:p;pp?p@pApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpWpXpYpZp[p\p]p^p_p`papbpcpdpepfpgphpipjpkplpmpnpopppqprpsptpupvpwpxpypzp{p|p}p~ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqq q q q q qqqqqqqqqqqqqqqqqqq q!q"q#q$q%q&q'q(q)q*q+q,q-q.q/q0q1q2q3q4q5q6q7q8q9q:q;qq?q@qAqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq[q\q]q^q_q`qaqbqcqdqeqfqgqhqiqjqkqlqmqnqoqpqqqrqsqtquqvqwqxqyqzq{q|q}q~qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrr r r r r rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;rr?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrsssssssss s s s s sssssssssssssssssss s!s"s#s$s%s&s's(s)s*s+s,s-s.s/s0s1s2s3s4s5s6s7s8s9s:s;ss?s@sAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs[s\s]s^s_s`sasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszs{s|s}s~ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttt t t t t ttttttttttttttttttt t!t"t#t$t%t&t't(t)t*t+t,t-t.t/t0t1t2t3t4t5t6t7t8t9t:t;tt?t@tAtBtCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTtUtVtWtXtYtZt[t\t]t^t_t`tatbtctdtetftgthtitjtktltmtntotptqtrtstttutvtwtxtytzt{t|t}t~ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuu u u u u uuuuuuuuuuuuuuuuuuu u!u"u#u$u%u&u'u(u)u*u+u,u-u.u/u0u1u2u3u4u5u6u7u8u9u:u;uu?u@uAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuQuRuSuTuUuVuWuXuYuZu[u\u]u^u_u`uaubucudueufuguhuiujukulumunuoupuqurusutuuuvuwuxuyuzu{u|u}u~uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvv v v v v vvvvvvvvvvvvvvvvvvv v!v"v#v$v%v&v'v(v)v*v+v,v-v.v/v0v1v2v3v4v5v6v7v8v9v:v;vv?v@vAvBvCvDvEvFvGvHvIvJvKvLvMvNvOvPvQvRvSvTvUvVvWvXvYvZv[v\v]v^v_v`vavbvcvdvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuvvvwvxvyvzv{v|v}v~vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwww w w w w wwwwwwwwwwwwwwwwwww w!w"w#w$w%w&w'w(w)w*w+w,w-w.w/w0w1w2w3w4w5w6w7w8w9w:w;ww?w@wAwBwCwDwEwFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw[w\w]w^w_w`wawbwcwdwewfwgwhwiwjwkwlwmwnwowpwqwrwswtwuwvwwwxwywzw{w|w}w~wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxx x x x x xxxxxxxxxxxxxxxxxxx x!x"x#x$x%x&x'x(x)x*x+x,x-x.x/x0x1x2x3x4x5x6x7x8x9x:x;xx?x@xAxBxCxDxExFxGxHxIxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx[x\x]x^x_x`xaxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzx{x|x}x~xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyy y y y y yyyyyyyyyyyyyyyyyyy y!y"y#y$y%y&y'y(y)y*y+y,y-y.y/y0y1y2y3y4y5y6y7y8y9y:y;yy?y@yAyByCyDyEyFyGyHyIyJyKyLyMyNyOyPyQyRySyTyUyVyWyXyYyZy[y\y]y^y_y`yaybycydyeyfygyhyiyjykylymynyoypyqyrysytyuyvywyxyyyzy{y|y}y~yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzz z z z z zzzzzzzzzzzzzzzzzzz z!z"z#z$z%z&z'z(z)z*z+z,z-z.z/z0z1z2z3z4z5z6z7z8z9z:z;zz?z@zAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz[z\z]z^z_z`zazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzzz{z|z}z~zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{ { { { { {{{{{{{{{{{{{{{{{{{ {!{"{#{${%{&{'{({){*{+{,{-{.{/{0{1{2{3{4{5{6{7{8{9{:{;{<{={>{?{@{A{B{C{D{E{F{G{H{I{J{K{L{M{N{O{P{Q{R{S{T{U{V{W{X{Y{Z{[{\{]{^{_{`{a{b{c{d{e{f{g{h{i{j{k{l{m{n{o{p{q{r{s{t{u{v{w{x{y{z{{{|{}{~{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||| | | | | ||||||||||||||||||| |!|"|#|$|%|&|'|(|)|*|+|,|-|.|/|0|1|2|3|4|5|6|7|8|9|:|;|<|=|>|?|@|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|[|\|]|^|_|`|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|{|||}|~||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||}}}}}}}}} } } } } }}}}}}}}}}}}}}}}}}} }!}"}#}$}%}&}'}(})}*}+},}-}.}/}0}1}2}3}4}5}6}7}8}9}:};}<}=}>}?}@}A}B}C}D}E}F}G}H}I}J}K}L}M}N}O}P}Q}R}S}T}U}V}W}X}Y}Z}[}\}]}^}_}`}a}b}c}d}e}f}g}h}i}j}k}l}m}n}o}p}q}r}s}t}u}v}w}x}y}z}{}|}}}~}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~ ~ ~ ~ ~ ~~~~~~~~~~~~~~~~~~~ ~!~"~#~$~%~&~'~(~)~*~+~,~-~.~/~0~1~2~3~4~5~6~7~8~9~:~;~<~=~>~?~@~A~B~C~D~E~F~G~H~I~J~K~L~M~N~O~P~Q~R~S~T~U~V~W~X~Y~Z~[~\~]~^~_~`~a~b~c~d~e~f~g~h~i~j~k~l~m~n~o~p~q~r~s~t~u~v~w~x~y~z~{~|~}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€ÀĀŀƀǀȀɀʀˀ̀̀΀πЀрҀӀԀՀր׀؀ـڀۀ܀݀ހ߀  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÁāŁƁǁȁɁʁˁ́́΁ρЁсҁӁԁՁցׁ؁فځہ܁݁ށ߁  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~‚ÂĂłƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂قڂۂ܂݂ނ߂  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ƒÃăŃƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃփ׃؃كڃۃ܃݃ރ߃  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~„ÄĄńƄDŽȄɄʄ˄̄̈́΄τЄф҄ӄԄՄքׄ؄لڄۄ܄݄ބ߄  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~…ÅąŅƅDžȅɅʅ˅̅ͅ΅υЅх҅ӅԅՅօׅ؅مڅۅ܅݅ޅ߅  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~†ÆĆņƆdžȆɆʆˆ̆͆ΆφІц҆ӆԆՆֆ׆؆نچۆ܆݆ކ߆  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~‡ÇćŇƇLJȇɇʇˇ͇̇·χЇч҇ӇԇՇևׇ؇هڇۇ܇݇އ߇  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ˆÈĈňƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈وڈۈ܈݈ވ߈  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~‰ÉĉʼnƉljȉɉʉˉ͉̉ΉωЉщ҉ӉԉՉ։׉؉ىډۉ܉݉މ߉  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ŠÊĊŊƊNJȊɊʊˊ̊͊ΊϊЊъҊӊԊՊ֊׊؊يڊۊ܊݊ފߊ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~‹ËċŋƋNjȋɋʋˋ̋͋΋ϋЋыҋӋԋՋ֋׋؋ًڋۋ܋݋ދߋ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ŒÌČŌƌnjȌɌʌˌ̌͌ΌόЌьҌӌԌՌ֌׌،ٌڌی܌݌ތߌ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÍčōƍǍȍɍʍˍ͍̍΍ύЍэҍӍԍՍ֍׍؍ٍڍۍ܍ݍލߍ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ŽÎĎŎƎǎȎɎʎˎ͎̎ΎώЎюҎӎԎՎ֎׎؎َڎێ܎ݎގߎ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÏďŏƏǏȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏۏ܏ݏޏߏ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÐĐŐƐǐȐɐʐː̐͐ΐϐАѐҐӐԐՐ֐אِؐڐېܐݐސߐ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~‘ÑđőƑǑȑɑʑˑ̑͑ΑϑБёґӑԑՑ֑בّؑڑۑܑݑޑߑ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~’ÒĒŒƒǒȒɒʒ˒̒͒ΒϒВђҒӒԒՒ֒גْؒڒےܒݒޒߒ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~“ÓēœƓǓȓɓʓ˓͓̓ΓϓГѓғӓԓՓ֓דؓٓړۓܓݓޓߓ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~”ÔĔŔƔǔȔɔʔ˔͔̔ΔϔДєҔӔԔՔ֔הؔٔڔ۔ܔݔޔߔ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~•ÕĕŕƕǕȕɕʕ˕͕̕ΕϕЕѕҕӕԕՕ֕וٕؕڕەܕݕޕߕ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~–ÖĖŖƖǖȖɖʖ˖̖͖ΖϖЖіҖӖԖՖ֖זٖؖږۖܖݖޖߖ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~—×ėŗƗǗȗɗʗ˗̗͗ΗϗЗїҗӗԗ՗֗חؗٗڗۗܗݗޗߗ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~˜ØĘŘƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ٘ژۘܘݘޘߘ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~™ÙęřƙǙșəʙ˙̙͙ΙϙЙљҙәԙՙ֙יؙٙڙۙܙݙޙߙ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~šÚĚŚƚǚȚɚʚ˚͚̚ΚϚКњҚӚԚ՚֚ךؚٚښۚܚݚޚߚ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~›ÛěśƛǛțɛʛ˛̛͛ΛϛЛћқӛԛ՛֛כ؛ٛڛۛܛݛޛߛ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~œÜĜŜƜǜȜɜʜ˜̜͜ΜϜМќҜӜԜ՜֜ל؜ٜڜۜܜݜޜߜ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÝĝŝƝǝȝɝʝ˝̝͝ΝϝНѝҝӝԝ՝֝ם؝ٝڝ۝ܝݝޝߝ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~žÞĞŞƞǞȞɞʞ˞̞͞ΞϞОўҞӞԞ՞֞מ؞ٞڞ۞ܞݞޞߞ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~,y  !#$'()013456789:;<=>?@ABCDIJKLMNOPQRTUVWYZ[\]^_`abcdefhijk  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡áġšơǡȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡۡܡݡޡߡ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¢âĢŢƢǢȢɢʢˢ̢͢΢ϢТѢҢӢԢբ֢עآ٢ڢۢܢݢޢߢ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¤äĤŤƤǤȤɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤۤܤݤޤߤ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¥åĥťƥǥȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥۥܥݥޥߥ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¦æĦŦƦǦȦɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צئ٦ڦۦܦݦަߦ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~§çħŧƧǧȧɧʧ˧̧ͧΧϧЧѧҧӧԧէ֧קا٧ڧۧܧݧާߧ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¨èĨŨƨǨȨɨʨ˨̨ͨΨϨШѨҨӨԨը֨רب٨ڨۨܨݨިߨ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~©éĩũƩǩȩɩʩ˩̩ͩΩϩЩѩҩөԩթ֩שة٩ک۩ܩݩީߩ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ªêĪŪƪǪȪɪʪ˪̪ͪΪϪЪѪҪӪԪժ֪תت٪ڪ۪ܪݪުߪ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~«ëīūƫǫȫɫʫ˫̫ͫΫϫЫѫҫӫԫի֫׫ث٫ګ۫ܫݫޫ߫@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¬ìĬŬƬǬȬɬʬˬ̬ͬάϬЬѬҬӬԬլ֬׬ج٬ڬ۬ܬݬެ߬@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~­íĭŭƭǭȭɭʭ˭̭ͭέϭЭѭҭӭԭխ֭׭ح٭ڭۭܭݭޭ߭@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~®îĮŮƮǮȮɮʮˮ̮ͮήϮЮѮҮӮԮծ֮׮خٮڮۮܮݮޮ߮@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¯ïįůƯǯȯɯʯ˯̯ͯίϯЯѯүӯԯկ֯ׯدٯگۯܯݯޯ߯@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~°ðİŰưǰȰɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ۰ܰݰް߰@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~±ñıűƱDZȱɱʱ˱̱ͱαϱбѱұӱԱձֱױرٱڱ۱ܱݱޱ߱@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~²òIJŲƲDzȲɲʲ˲̲ͲβϲвѲҲӲԲղֲײزٲڲ۲ܲݲ޲߲@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~³óijųƳdzȳɳʳ˳̳ͳγϳгѳҳӳԳճֳ׳سٳڳ۳ܳݳ޳߳@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~´ôĴŴƴǴȴɴʴ˴̴ʹδϴдѴҴӴԴմִ״شٴڴ۴ܴݴ޴ߴ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~µõĵŵƵǵȵɵʵ˵̵͵εϵеѵҵӵԵյֵ׵صٵڵ۵ܵݵ޵ߵ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¶öĶŶƶǶȶɶʶ˶̶Ͷζ϶жѶҶӶԶնֶ׶ضٶڶ۶ܶݶ޶߶@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~·÷ķŷƷǷȷɷʷ˷̷ͷηϷзѷҷӷԷշַ׷طٷڷ۷ܷݷ޷߷@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¸øĸŸƸǸȸɸʸ˸̸͸θϸиѸҸӸԸոָ׸ظٸڸ۸ܸݸ޸߸@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¹ùĹŹƹǹȹɹʹ˹̹͹ιϹйѹҹӹԹչֹ׹عٹڹ۹ܹݹ޹߹@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ºúĺźƺǺȺɺʺ˺̺ͺκϺкѺҺӺԺպֺ׺غٺںۺܺݺ޺ߺ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~»ûĻŻƻǻȻɻʻ˻̻ͻλϻлѻһӻԻջֻ׻ػٻڻۻܻݻ޻߻@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¼üļżƼǼȼɼʼ˼̼ͼμϼмѼҼӼԼռּ׼ؼټڼۼܼݼ޼߼@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~½ýĽŽƽǽȽɽʽ˽̽ͽνϽнѽҽӽԽսֽ׽ؽٽڽ۽ܽݽ޽߽@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¾þľžƾǾȾɾʾ˾̾;ξϾоѾҾӾԾվ־׾ؾپھ۾ܾݾ޾߾@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¿ÿĿſƿǿȿɿʿ˿̿ͿοϿпѿҿӿԿտֿ׿ؿٿڿۿܿݿ޿߿@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~áâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~šŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼʽʾʿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ˡˢˣˤ˥˦˧˨˩˪˫ˬ˭ˮ˯˰˱˲˳˴˵˶˷˸˹˺˻˼˽˾˿@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~̴̵̶̷̸̡̢̧̨̣̤̥̦̩̪̫̬̭̮̯̰̱̲̳̹̺̻̼̽̾̿@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ͣͤͥͦͧͨͩͪͫͬͭͮͯ͢͡ͰͱͲͳʹ͵Ͷͷ͸͹ͺͻͼͽ;Ϳ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ρ΢ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξο@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵ϶ϷϸϹϺϻϼϽϾϿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~СТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹӺӻӼӽӾӿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ԡԢԣԤԥԦԧԨԩԪԫԬԭԮԯ԰ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~աբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ְֱֲֳִֵֶַָֹֺֻּֽ֢֣֤֥֦֧֪֭֮֡֨֩֫֬֯־ֿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~סעףפץצקרשת׫׬׭׮ׯװױײ׳״׵׶׷׸׹׺׻׼׽׾׿@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ءآأؤإئابةتثجحخدذرزسشصضطظعغػؼؽؾؿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~١٢٣٤٥٦٧٨٩٪٫٬٭ٮٯٰٱٲٳٴٵٶٷٸٹٺٻټٽپٿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ڡڢڣڤڥڦڧڨکڪګڬڭڮگڰڱڲڳڴڵڶڷڸڹںڻڼڽھڿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ۣۡۢۤۥۦۧۨ۩۪ۭ۫۬ۮۯ۰۱۲۳۴۵۶۷۸۹ۺۻۼ۽۾ۿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ܡܢܣܤܥܦܧܨܩܪܫܬܭܮܯܱܴܷܸܹܻܼܾܰܲܳܵܶܺܽܿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ݡݢݣݤݥݦݧݨݩݪݫݬݭݮݯݰݱݲݳݴݵݶݷݸݹݺݻݼݽݾݿ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ޡޢޣޤޥަާިީުޫެޭޮޯްޱ޲޳޴޵޶޷޸޹޺޻޼޽޾޿@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ߡߢߣߤߥߦߧߨߩߪ߲߫߬߭߮߯߰߱߳ߴߵ߶߷߸߹ߺ߻߼߽߾߿@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0 00' 0& % PQRTUVW\ 1 3t%4O 56[]78009:00;< 0 0=>0 0?@ 0 0AB00CDYZ[\]^    005 2  ; 0%%%%%&&%%%%%%2!?IJMNKL_`a "f"g"`""R"a"bcdef^)"*"" """33+"."5"4"@&B&""!!!!!!!!%"#"<"h0 ! !ijk333333333YQ[Q^Q]QaQcQUt|%%%%%%%%%%%%%%%<%4%,%$%%%%%% %%%%m%n%p%o%P%^%j%a%%%%%q%r%s%`!a!b!c!d!e!f!g!h!i!!0"0#0$0%0&0'0(0)0ASDSES!"#$%&'()*+,-./0123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZ1111 1 1 1 1 1111111111111111111 1!1"1#1$1%1&1'1(1)1 NYNNNCN]NNNN?QeQkQQRRRSAS\SS N NN N+N8NQENHN_N^NNN@QRRCSSSWXY'YsYP[Q[S[[\"\8\q\]]]]]]r^^ __MbNN N-N0N9NKN9\NNNNNNNNNNNNNNNCQAQgQmQnQlQQQRRRRRRS9SHSGSES^SSSSSX)Y+Y*Y-YT[\$\:\o\]{^^___b6bKbNb/eeeeeefg(g kbkykkkkl4lkp*r6r;rGrYr[rrsNNNNN;NMNONNNNNNNNNNNNNEQDQQQQQQQ RRRSSSSNJSISaS`SoSnSSSSSSSSSSSSSSSSSSSSSVVY.Y1YtYvYU[[<\]]]^^s^|^____ bSbTbRbQbee.g,g*g+g-gckkll8lAl@l>lrssttuu(u)u0u1u2u3uu}vvvvwww:yytzzNNRNSNiNNNNNN OO OO OOOONNNNNNO OIQGQFQHQhQqQQQRRRRRRS!S SpSqS TT T TTT TTT TTTTTTVVV3W0W(W-W,W/W)WYY7Y8YYxYY}YyYYYW[X[[[[[[\y\]^v^t^____b b bbcb[bXb6eeeeeff g=g4g1g5g!kdk{kl]lWlYl_l`lPlUlal[lMlNlpp_r]r~vzs||6 3 nr~k@Lc!2NNMOOOGOWO^O4O[OUO0OPOQO=O:O8OCOTOT&TNT'TFTCT3THTBTT)TJT9T;T8T.T5T6T TWPWOW;WX>YYYYYYYYYYYYY][\[Z[[[[[[,\@\A\?\>\\\\\] ^^^^^__d_b_w_y_________bbbbbbvbbmbb|b~bybsbbobbnbbbbb9e;e8eef_gNgOgPgQg\gVg^gIgFg`gSgWgekkBl^llllllljlzllpllhlll}llrl~ltllvlllllvp|p}pxpbrar`rrrs,u+u7u8uvvwyyyvz|Uo҉7FUdpʎƏŏď]IƑ̑2.1*,&NVNsNNNNNNoOOOsOOlOOOOOpOuOOiO{OO~OOOzOTQRQUQiQwQvQxQQQ;R8R7R:R0R.R6RARRRRSTSSSQSfSwSxSySSSSsTuTTxTTT{TwTTTT|TTqTvTTTbThTT}TTVWwWjWiWaWfWdW|WYIYGYHYDYTYYYYYYYYYYYYYYYYY_[d[c[[[[[[[\H\E\F\\\\\\\\^^^^^^x^^^^^^^&_'_)____|______``/`5``*``!`'`)`+``bb?b>b@bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb>eeeeff fffffff ff g gmgggqggsgwggggogpggg~gguggg|gjgrg#kfkgkkllllllllllllllllllllllllllllllllllppppp,r-r8rHrgrirrrrrrsssss=uuuuvvvvww>y@yAyyyzzyzz|T NqRhˎΏԏяǑёw@?;DBR^NNNOOOOOOOOOOOOOOOOOOOOOOWQQQQNRCRJRMRLRKRGRRRRR SWS{SSSTTTTTTTTTTTTTTTTTTTTTTVWWWWWWWWUYQYOYNYPYYYYYYZYYYYZYi[[[[[[\N\O\M\K\\\]^%^^}^^^^_-_e________`` `%``(`M`p`h`b`F`C`l`k`j`d`Abbc cbbcbbcbbbbbbcc?eEeeee%f-f f'f/ff(f1f$ffgggggggggggggggggggggggggjkkkkkkll m2m*mAm%m m1mmm;m=m>m6mml9m'm8m)m.m5mm+mppppppppp0rrrortrrrrsssssssu-uOuLuNuKuuuuuuxvvvvvvvvwvv w wvvwwxx x xFyIyHyGyyyyyyzzzz}|}}} }}}}8 6րڀÀĀ̀ۀ΀ހ݀"ۂ ҂ׂ܂Ԃтނӂ߂Py{zMkԉts͎̎ʐΐÐKJ͑PKLMbi˗ۘߘXNN P P#PO&P%PO)PPPc/cUcBcFcOcIc:cPc=c*c+c(cMcLcHeIeeeeBfIfOfCfRfLfEfAffggg!h8hHhFhSh9hBhTh)hhhLhQh=hgPh@hSSfFUjUfUDU^UaUCUJU1UVUOUUU/UdU8U.U\U,UcU3UAUWUW W WWX XXWWWX5XWW YbY6ZAZIZfZjZ@ZwUUUUUU~UUUU W/X*X4X$X0X1X!XX XXX`YwZZZZZZs[q[[[[[ \ \1\L]P]4]G]]E^=^@^C^~^^^^^<_m____`````a#a`a```ha`a` aaabIbcccccccccccccccvccccRdcc^efebeceeeenfpftfvfoffzf~fwfffgghhhhhihhhhhhhhhh iiihhnih>k:k=kkkkk.l/l,l/n8nTn!n2ngnJn n%n#nn[nXn$nVnnn-n&non4nMn:n,nCnn>nnnnNncnDnrnin_nqq&q0q!q6qnqqLrrr6s%s4s)s:t*t3t"t%t5t6t4t/tt&t(t%u&ukujuuuuuuuu{v|vvvvvOww]xlxox zz zzzzzzzzI{V{F{P{R{T{M{K{O{Q{||^}P}h}U}+}n}r}a}f}b}p}s}U RUTKQN9F>LSt Ń W ̃ʃ8܃ԃ߃[߆نԆۆІކWˆ;`U^a4a'a aa7a!b"bd>dd*d-d=d,dddd d6ddddleeeffffffffgimiZiwi`iTiui0iiJihiki^iSiyii]ici[iGkrkkkkknnnnnnnnnnnnnnnnnnnnnnNqYqiqdqIqgq\qlqfqLqeq^qFqhqVq:rRr7sEs?s>sotZtUt_t^tAt?tYt[t\tvuxuvuvuuuuuuvv[wkwfw^wcwywjwlw\wewhwbwwxxxxxx|xxxxzyyy,yzz zzzzzzw{{`{n{g{|||}y}}}}[}nijrVXqpxenskyzfGw=1ufkIl[<5acimF^\_ Y߈Ԉو܈؈݈ʈՈ҈krsfip|cqmbnly{>hbʌnjȌČ̌Ōߍ捲 KJSBTAljiɑ7W8=@>[KdQ4IME9?Z͖˖ɖʖVtv  霂 PPPPPPPPPPPPbQQRR1SSUVVVUVV V VVUVVVVUWWuX~XXXXyXX}XX%Y"Y$YjYiYZZZZZZZu[[[[[[[[[[ \b\]][^c^U^W^T^^^ _F_p__Ga?aKawabaca_aZaXaua*bdXdTddxd_dzdQdgd4dmd{dreeeefffiiiiiiiiiiiiiiiiiiiIkLk3l3oonon)o>o o,ooo"onno1o8o2o#oo+o/oo*ononnnqq}qqqq>rrrDsPsdtctjtptmtuu'v v v vvvvw}wwawxxxxxxyyy.z1zzzzz{{{u{{{{{{{{|||}}}}}}}}}}}}}}}}}}}p^ZPKɄƄĄ˄ӄфʄ?;"%4U7)jӌьҌk`X\cY^b][uxwtx{|̖Җ| AB󜼞;JQQPPPQQ QQQRRRRRRS.V;V9V2V?V4V)VSVNVWVtV6V/V0VXXXXXXXXmY [Z [Z [[[[[[d\e\]]b^_^a^^^^^^^H_q___vagana]aUaa|apaka~aaaaaaaaaa.bidodyddddddddddddddddddduewexeffff#jjijjji!jj jijjijPkNkkkk?o|ooQofoToomo[oxonoozopodooXonoo`o_oqqqqVrrNsWsittt~ttu v)vv$v&v!v"vvvvwwwwwxxxxxxxx?z~F~7~2~C~+~=~1~E~A~4~9~H~5~?~/~DqrposƁÁɁ q~gч҇Ƈȇˇ;6D8= A?sIKHJD>BE?}9M(uJeK~l[pZTʕ˕̕ȕƕ֖ӗF5;?Ϟޞܞݞ۞>KSVVXX8[]_a3bdddedddef&gjjjjjjjj_kxkk p popoppqqqqwsusttuVvXvRvwwwwyyazbz`zzz+|'|*||#|!||T~U~^~Z~a~R~Y~Hwv́ρ υͅЅɅ(9,+PYcfd_UIMБԕ֕ЕՕܖٖۖޖ$MOLNS>?=.ONMʛɛțQ]`,3QVXXX[^aaaaeeffjjjjpp(pppppr rXrrxszstttuu_vavwyykziz>|?|8|=|7|@|k~m~y~i~j~s~؁݅Յ `_V^A\XIZNOFY |rvlztTNѓߓÓȓܓݓ͓֓ؓדܕ*'aܗ^X[EI ֛ۛarjlRVVVVVX@[C[}[[]aaeeef'gj>p0p2pr{stbvev&y*y,y+yzzL|C|M|||}~|~~Lځf  dplfo_k ˑ0ĘRQ+075 y/_ca7Q8QVVVYl\]aaeeefjkjkLprrttivwP|~~-#"!jltw}_.35:82+892geWEC@>ϚTQ-%\fg×kUUMҚI1>;ӝם4ljV]b#e+e*efktzd|c|e|~~~8?1c`dho\Z[WӚԚњTWV坟VX,e^pqvrvwP69bwjBHDƗp_"X_|}wr^kcpl|n|;rpq^֚#̞dpwwɗbe~ő}~|wxT(rj1r|BN\NQSSN NGNNV n\s_NQN.NNNNNQRlSS WY,Y\]ekkl?r1Ng9g8g;g:g?gOgORO_OAOXO-O3O?OaOQQRR!RRR ScSrSSS0T7T*TTTETTT%TT=TOTAT(T$TGTVVVAWEWLWIWKWRWY@YYYYYYYYYYY[[(\*\\\\\\\\\\\] ^^^^^^^__x_v_______________`_:bbbbbbbqb{bzbpbbbwb}brbtb7eeeeeeEgGgYgUgLgHg]gMgZgKgkllxlglkllllqlolillmllllflslel{lltpzpcrrrrrrrrsssss:u9uuuv=y4xɏ0(/-3NO|OO}OOOvOtOOOwOLOOjOOyOOxOOOOOOOOkOnOQQQ5R2R3RFR1RR S SuuuvvvvvwwwwwwBy?yyxz{zzu||5 ‚ÂpomnVҏˏӏ͏֏Տ׏9=<:COOOOOOOOOOOOOOOOOOODRIRRR=S|SSSSSTTTTTT TTTTTTTpTTTTrTTTWWWWWWWWWWWWWWWX YSYYYYZYYYYYYYYYYYYYYYYY[L\\\\\\\\\\\\\\\\\\\\\]!^"^#^ ^$^^^^^^^_._V__7`9`T`r`^`E`S`G`I`[`L`@`B`_`$`D`X`f`n`BbCbb c cbccbbc cbbcccbcbbAeCeee6f!f2f5ff&f"f3f+f:ff4f9f.fgggggggggggggggggggggggggggggggggggggggggg(kkkkkkk l!l(m4m-mm9/%3-DQ%V?A&"BN*ZMZ9ZLZpZiZGZQZVZBZ\Zr[n[[[Y\] ]]] ] ](] ]&]%]]0]]#]].]>^4^^^^^^6_8____`````````````````````2ceccc}ccccccccocccnccuccmcc|cc;ccxcccccpcSeeefaf[fYf\fbfgyhhhhmhnhhhViohhhhuhthhhwhh|hkhrhhhqh~hhhhhhhxh{hhhh}h6k3k7k8kkkkkk*lmmmmtnmmmmmmnmmmmmmmmmmmmmmmmmmmmmmmmmmmp qpqp qpqpqppqqqpp qqq~r{r|rrsssss ssrssssssttsttsss t tstducuuuuuuuuvvv9w/w-w1w2w4w3w=w%w;w5wHxRxIxMxJxLx&xExPxdygyiyjycykyayyyyyyzzz5{G{4{%{0{"{${3{{*{{1{+{-{/{2{8{{#{||||5}=}8}6}:}E},})}A}G}>}?}J};}(}cGCH%-,!'"83:42tzstu}~vYV†ņȆ̆ÆR։ىՉ0',9;\]}}{y؎ގݎ܎׎$  !ԐVXZSUz|mkqoj嘗PPPPPPPPPPhPPPPP_QQSSSSUUUUwUEVUUUUUUUUU}UUUUUUU W)X7XXX'X#X(XWHX%XXX3X?X6X.X9X8X-X,X;XaYZZZzZZZxZZ|ZZZZZ7ZZZZZZZ{Z}ZZZZZZ[[[[[[[ \0\7]C]k]A]K]?]5]Q]N]U]3]:]R]=]1]Y]B]9]I]8]<]2]6]@]E]D^A^X____``````a` aaa`a````aaaa`a aJbccccccccdcccccccadccccccccccccccc2egejede\eheeeeeeeee|flf{ffqfyfjfrfg ihih*ihhhihhhhhiihhihipihihhihhhhh i iihhhhhhhihhi%ih9k;k?k?efQOPԀCJROG=M:<=?u;σ#ƃȃヿ݃؃˃΃փɃ ރƒՃǃуÃă׃ۃ؆ӆچ݆܆׆цHVU׈Ɉ݉ډۉNM9Y@WXDERHQJLO_؍Ӎ͍Ǎ֍܍ύՍٍȍ׍ō-4/,ad_b` %& '${~–ȖÖlpnNNNPPPPPPPPPPPPPPPPPQzRxR{R|RUUUUUUUUUUUUUUUUUUUUUUUWSXhXdXOXMXIXoXUXNX]XYXeX[X=XcXqXXZZZZZZZZZZZZZZZZZZZZ[[[\3\q]c]J]e]r]l]^]h]g]b]]O^N^J^M^K^^^^^^@___`IaJa+aEa6a2a.aFa/aOa)a@a bh#b%b$bcccdd d d$d3dCdddd9d7d"d#d d&d0d(dAd5d/d dd@d%d'd dcd.d!ddoeeeffffffffxf gfi_i8iNibiqi?iEiji9iBiWiYiziHiIi5ili3i=ieihxi4iii@ioiDiviXiAitiLi;iKi7i\iOiQi2iRi/i{iF 2*-<:15B&'8$0눝艫=hiՌό׌   # "$!zrysvzy}~-X}z~{Η͗ٙǙ>?`a_PQ0QPQQPP Q QP QRRRRHVBVLV5VAVJVIVFVXVZV@V3V=V,V>V8V*V:VWXXXXXXXXXXZZZZZ[Z[Z[[[[g\]]]]]]]]]]]]i^]^`^\^}^^^I__aayaaaaaaaaaaaaaafaa-bndpddddddddddddhdddvezeye{eeefffffffjjjiijii jiiijji'jiijii@jjii jii jjj%jji&jjijQkkkkkllklAo&o~oooooooboOooZoovolooUoroRoPoWooo]ooaoko}ogooSooiooocowojo{oqqqqqqqqqqqqqqqqqrrXsRs^s_s`s]s[sasZsYsbsttttt}ttt|tytuu~u%vvvvv#vv(vvvvvvwwwwxxxxxxxxxxxyyyyyyvk9zzzz{{{{{{{{{||||}}}}}}~}}}}}}}vdgOSRPNQ$;)  '+ *(.1& 0 /bVcdwsXT[RaZQ^mjPN_]olzn\eO{ubgiZ   ϊƊӊъԊՊ׊Ŋ؊Êي>Mߌٌڌ݌猠 #%$.&',$ #spogk/+)*2&.ВÒĒْϒߒؒגݒ̒’ʒȒΒ͒ՒɒޒђӒƒ|ӖZЗϗ&)( 'ܙ͙ϙәԙΙəؙ֙˙י̙FCgtqfvuphdlӞQQQQQQ4SSpV`VnVsVfVcVmVrV^VwVWWXXXXXXXX[[[![[[[[([[ [[[]]]]]]]]]]]]]g^h^f^o^^^^^^K__aaaaaaaaaaaaddddddddddd3ee|eeffffffffff#g4jfjIjgj2jhj>j]jmjvj[jQj(jZj;j?jAjjjdjPjOjTjojij`j[qNnuUg`f]Telcedy&0-.'1")#/,݊ߊȊފln3>8@E6<=A0?6.52974vy{356'z8<#F- ˒%4$)95* ͕Ԗ 5/2$')癹3|~{z}% )"՞֞=&Q%Q"Q$Q Q)QRVVVVVV~VVVVXXXX-[%[2[#[,['[&[/[.[{[[[]l^j^__aaaaaaaaaddddddeeeefjjjjjjjjjjjjjjjjjjjjjjj[kk looooooooooooooqqqqqqqssnsostttttttttuuuuuCvHvIvGvvvwwwwwwwwwxxyxxxyxxyyy\z[zVzXzTzZzzzz||{|{{|{ |{| |||{{|{{| ||-~<~B~3~H8~*~I~@~G~)~L~0~;~6~D~:~E~},ā́ʁŁǁ[Z\{w|zxWyvhŇɇLJ̇ćʇއ53<>AR7B " OprqooNMSPLGC@~8dVG|X\vIPQ`mLjyWUROqw{a^cgNYǕɕÕŕ ՗ԗADJIEC%+,*32/-10H3Ag6./180EBC>7@=-Ȟڞ$#"T1Q-Q.QVVVVVVpY<[i\j\]m^n^aaaaaaaaaadeddeedeefffjjjjjjjjjjj^kk lp p pppppopo&poo prqqrqvsttttttttuu\vdvYvPvSvWvZvvvvwwx yyy yyyyyy_z|)|| ||-||&|(|"|%|0|\~P~V~c~X~b~_~Q~`~W~S~uсҁЁ_^ƅŅDžą˅΅ȅŅ҅$iۇ߇ԇ܇Ӈ؇㇤ׇه݇SKOLFPQI*'#305G/<>1%7&6.$;=:Bu\b`WV^eg[Za]iTFGHK(:;>ҕӕѕזږ]ߖؖݖ#"%חٗ֗ؗPQRA<:  ܚ)5JLKǛƛÛӛě\SOJ[KYVLWRT_XZߞ%+*)(LU4Q5QRRSVVVVVVXXXY=[>[?[]p^_aee e e eeeeefjjjjjjjjjjjjj`kk lp'p pp+p!p"p#p)pp$pp*p r rrrrrrrrrttttu`vwwwwyy!yyyyygzhz3|<|9|,|;|||v~u~x~p~w~o~z~r~t~h~KJxׁՁdacمڅׅ؅߅܅хޅ  bZ[Wa\X]YPHJ@SVTKUQBRWCwv mxsjo{ŽRQOPS@?ޓǓϓ“ړГ̓ٓʓԓՓēΓғ}ڕە)+,(&ݗޗߗ\Y]WHGC%$" '#š  7ޛԛכܛٛ՛ڛwqx}ktupis{oyh-@AMVWX7SVVVXE[]]^^__aeeeeefffjjjjjjjj02.3vtsEdcbU]W^ėŗVY RXPJMKUYLNžО876COqpnoVVN[m\-effk_pap]p`p#rttw8yyyj|~mC875K‘khiFCGǗ^՚Ycgfb^` FtuvV.eekkkkbp&rrww9yi|k||~~~~FGHyz|{nmoqsIr_hnm  Gx{zyWfpo|<Ñtxvu`tsqu hpep|j>=?ɎKst̘adfg$Hbk'rLih.)rKyuvkzipjp~IxψXR`|ZT%f%W%`%l%c%Z%i%]%R%d%U%^%j%a%X%g%[%S%e%V%_%k%b%Y%h%\%Q%P%m%n%p%o%%  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡XӡPѡҡšDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrsVXLKEJK¢Aԡۡܡڡݡء١wxz{|}utsrq~Zbcdefghiponmlkjvy@BCqrmnuvyzijEefâĢŢƢǢȢɢʢˢtuvwxyz{|}~UVPQRTWSO@BCEVTWUFɣOMɢBA@CèXPɥcꦱYDd@D[G\EGFĨAAE^]ŨKöܲFƨGH_QɭǨȨE`ɨʨFGHRɱTSɵJKLMIPjfiQahNOHegɮ饱ɹɶɳɸɯ르ɷɭfBgD[`hdG]ʽCb^ZeEH@FcAi\_aبШ˨ըΨ֨˼ި٨˵ۨϨԨ˴ӨרҨͨܨݨڨ˲Ѩ̨VJIQ]KYPXT[NWMURZO\SLH׭ѭ֭ĭͭڭέǭܭӭп̭˭ϭ[ƭխԭʭɭҭí­Эŭ٭ۭحȭcWԳ\bԲUԶYRԴVԹgQԺfԵXԱSO]PNZ`aԷ[^M_dLTeԼȳ^Wų_UXijYdz]SRɳʳƳ˳Q\ZTóVʶĶͶƶǶŶ˶̶ܿɶܾܼܸȶζܹܶಹ౹ஹହ෹హ൹䪾觾詾訾vwux_lkIaSRJIKߨ^YZ°\[`]^JK@LݭNTUAj`_ðUaޭ߭VBMNkha@LZİͳBɿYWXMNb¤ZkFDEGClmnPOSQRchdgfebѳŰikjlưγϳгжѶ϶ABỹZ@ABDCO\[HUVTWoplkijǰnʰmɰȰԳӳҳҶնֶԶӶCDE䱾yUcäVĤŤ]^Iqm̰˰cbPƤ_ͰCl`KJXo׶EἹǤаΰϰ̢Qd͢΢ʤɤȤcbmnճRˤedrWgfLMsYZoD̤tuppdֳeFόFXhѰSeΤͤϤqOfjytonuslzmixwvkrq{pSYU[XNQTPWZORV\~{g|[]up}_ahxtv\mvsdnowljkq^rfczbei`yOPIKMLEADIRCFHQMSJGB@NHKxt}rCΣOΥyEBwͦJ|LΩs~{@ΡFGzvuDND@BCACFB@GѡEDAw䰧߰|۰v{zᰥԨs賩ְٰ~ӰڰtԤݰux}ްܰװұذyణհ԰qrj׳ڳuxسq޳䳽n۳v{ofsmyݳ߳ܳzlrthwٳgip޶ܶ߶ڶݶض۶_ٶ͹ȹUQK¹TΌNPSĹ˹ŹIƹǹL̹JOùHɹMRʹGMGDGSTJBLRFIHHCEKAkONP䲾@E达B鶾A鹾C輾軾D@QF鷾{}~z|P¼`VQAY@XWZmonŦťI}|_^]yʨwzxTHIEF밫|ϹιIHGkgYnobfdcea`ɦ}ʫʡ{ʬ~|Y[Z@XWV\A˫UTZβX^UY[]WVQRέS\αPSRWNQPTXGJOUIJѰVMHLѱԯԽԴԼԾԹԲԦذԵԳﰻԶKԮԡتةأإ}رخKѫ~ذدسܬا]йcչ_fW׹ѹ\U[dҹֹZ`eVԹ^bhXaӹgYYKWVMRNQ\[JPZOLXMOJLNþP¾IKSRabcB[hФ_عiSZɰB`YLi~pgh]ڹ۹ٹjѤӤҤ[ԤqɢijɨaC_`^ZѶabMNOݹܹj]ľklonqpmkɳʹʸʪʳʮʻʷʭʺʫgoOHpSDKfEdLPcQJMriTRnlIkGFjhqmeN̹oθgcsbλlξpοVvdfmqurknhëjitκe«\b[`PU_\aQ[TRcSWXZY]^d@CDBA@ظؽBGCضADغطعؾؼEؿصB@CD@FAABEnzpvkyx|u޹tm߹{orwqlsUaXWZ\_VT][Y_^c^`b`WVUXQRZSž\[TYƾT\]ClmnդrssUutVī]eEGF}Ǿ^prɦsvtuwʻWXvxzw{yȫūǫɫƫfwhgc_`bdafeJIHGKFIKHJHIJ~칡fged]Ⱦd_oxʫigNMLLMɾp\֤ty|KqפɾʿʼNLݪrؤuɧY~Z}Ϋxͫ˫̫jhkij^PQOhiaĨK٤swvzħ§çhb]̣ec\ilg`̥f̦ad[_ķ^j̢ΤΪΣΥ}{άΩyЫΨΦ|zϫ~ΡέonlknposqpѮrmlmqrSRTXAZV^[UCWB\]YD@QROOPSVNPUTCRDMQݩegkhcbljjmdikfaf`e^hdic_gjbrDE`rqt{ʵ_uŧtWvwxڤѫSy]ɫx|Ƨʮn̬m̩o̪ҫԫΰαβδӫtsvubFac`UEVWTZ\E[YXݴqompnlmklnnz~}FۤիXyzȧɧǧβ֫ιζκ׫yuwwxxvѵGJKHgfdeIhZ[\]_aHGY`^ݸpsrtqtuossqprofFGUƵʧث{ܤ˧ʻ٫|I}ݤޤɢ̧qrs̶p̸ګzzyiLjM]bݿuvʾtst̽kJUΧͧ۫{mCnl^vLϧЧwv̻uݫܫޫ߫}|{OorpNuqPtsa_`KdLcwxwu@HIߤ{ҧԧɤӧѧx̾yا֧էקʿʯ̢~̮̩©̭㫬éȩƩ|̥ͩ䫦ɩ{ʩ˩ǩ̩z̫ĩ}̡̤ũΡ髣Τ~}|쫡򫢮~뫦﫥ΧvѦѨѨSլѣxQխRեѬѯѪѭѧѩywzU^d|e`ժVբ~TbeIcء]a{dYbWXէ[ի_դ\թfcZ}ko@QmDqeFSilGHNsTJOC^UrAP]pNMtEjBKMRgLPh\phlnk[j_Z@qXimOfgAWYVo}GF|ECDzn᣼{HyBz᡼~y~ξx娼̾嬼x骼v}嫼w;姼孼|{˾zо~Ѿ|y{ӾҾ}ϾVgjihaJbAt|ɳڧ٧ϩΩѭur`atvuI宼ԾW¹ʲѩЩҩΰѰvQ~}ɷɪɩߧөާۧݧܧ᩾̷ܩ侀̺̼̿ꩻ̴詸٩⩶שة֩ԩߩթ䩵کݩީ۩A@ѱCBEβDѿѶfѷѺѼ}սѾѿѸѵѶѹѻѻî®ѷgշ˱ʱyurզպwը̱ɱ{jȱiսs±hxqDZtդƱRٳoոñxnl~հıw|յpűmzvTSkdzjYgw}kn|\ml~Uyi_٥phq٭fec]٤VٷW{yݦXox`[٩a^ٮp|ݱݶݪliz{bknoݲݸjd}ݺݨݩ~ݴݫݵݭehfݰݬݡSmݦgcݮݢQLKObR导T尼NPUJ嵼Zٲ¼MẼ峼üؾپ߾־ݾ۾վܾ׾޾ᾥھY­X^\]Zk[BEFDGlCNdMLKceuũrٯ鬦FGĮŮӱϱֱձαѱԱбvͱuxٰswtqVļżƼHyٴƮرױz{rW礸Hٱ|ٵs_IǮȮ۱ܱݱڱ}~پYXJIO^J餹@PMSKNQLORЮɮ̮Ϯʮήˮͮ߱խޱѪծ౩ᱧ٢ٶ٨ٸݦټ١ٽyvwu{ݻxtz\Z[ȼǼʼɼ澻辳徶`nKmQRfPŪꤱTѮҰ̳|뤳BAҮӮԮ´zag줼ɵɴCGBE@AA@FDWCMNFXHSIVQOJPDRUELTGK[\iVLbJ[EeRADQa`FX_`cZKSfYamVXCjc]@lgIkPHd\T^bGZYO_UWh]NMB^WU߮ծݮ֮ڮۮخ׮ٮܮմյչվսհղճ鱺շջޮִѴҴδĴǴƴ״ɴŴд̴ٰٵٯ˴ݱϴʴٴʹôٴ٬ȴټپ٪ӴմٹԴٮݦݨݬݡݯݣݰݩݪ~شݿݥݢݭݧޮJH^FX}_B]GUd][@ZoQamI^KYgDkaMCWh`eSfEPLN`_nObTcljAVibR\ͼؼռѼμּ׼ԼټӼмϼ̼Ҽ˼EAHIDJ@GCFBchibfegdQNWVTOrPqSpXRMoLVUUhYZTXSWvVYd۴ܴڴݲpceqdۼڼKjYwBZ[nѳk鷺\eofp޴ݴfghܼLlZ_qgߴٵijݼ޼`CHrhsijBAC@@AAB@ݷkM[¥]a~ɻIJ^tklDBråƥťĥD@ŦƦ¦ĦɼEæ[YLQSLMUROQVZXZKM\TWEG^UNJYVHICOP[]PNS\WR]FTKXDjzqKbeBmovhfguGpnsJuycIMO@lk}rux|AF~wi_d`N{taL|ϡϤwϧϪϬtv{Iҭϭ{sd~xzϥ}}pϨϫzmϪxoϫ^H|wvnϬϩyϡqϢrϦy~LCU[WJMFGJV_E@NBOYDhHHEfZgaSb\ecITAG`FQCiPKKX]eRPG[UGDgdXcNOIE@QYBD^F\SHFJhb_]faR`AEWVTLKCMAZIMDJCUVHDBSKQWAGEBCOLT@FGFEPNR@a`F޽_IJǷh·^CȷRHKc޸jbW̷˷ŷi޹ULYeͷTMķ÷PZdGQ޼[ɷN޿ESgVlXfƷO޺ʷD]\ު⭺}⢺n⯺wmⱺqsuS殺}o⣺u~||vtzwxz~pyx{t⪺⤺sr⥺{y߼vDNMYKOFRTC^W[`UILH_aV\JE嫺AZB@XQP]GI@AHCOBDFEDJGFEB@ANCQSYWZRVU[TXPqopmnsrx_ey\vsgwt^abcf]udh`]j`kh_\^bedg[icfiaxyŭWeƣlǦA^_b_`aXZURTͤVͣSP͡WQͥYͯϳϷϯϱϱϵϮϵwxyPLnv{QlrkuqMOzjmst|pNmNPLXJWiH[RlSVZOTjkYMI[QUKHIeOYbXL`^_Jc\ZK]aMdpwyޡڷkҷz׷η}m~lܷxϷԷqٷ|ovrnѷطַӷ۷зuշN{stⴺⶺ⵺ⷺ⳺gdpjlfnmkqhocebriJQUSKILMHUVGVQOLPNRRMNOPKTSWXT\b`^a]_wtuvlmzkji{ljkyRݷnbɷ}ϹfP޷|gɦBȦedc`˪[ͺϽϺϹϻҡ~S]^o\_RpQkjhilڦޥީިާ޹⺺stYZr}qpnolǥCDfbaˬegcfgd_;]dͭeab\ͯ^ͮc`ϽϿϼϨҥҧXWUҩTVg֣Ҫbfenyhcmtsadurq`ipwTvsVuoqtrUxS߷ެުᷮޫ⻺෰ޯvu~}{zwxy|_\]W[a`^decyx~ámnmzȥYvjɥEljkhhimͳkgjf͵iͲlh¬ŬϿĬìҫҶҮҹҺҬҸҵҳҷ_]ҭҰһҲ^Z\xmklstp{uroynwzqy[xwv|~ڡ`کڢZڥ[abX}{ڣz_|ڤڪY^\]W鷷跻ޱ޼޲޳޽޺޸޹޵޴޾巶⾺@bAifegfZcX\[dhYmzjhknlgBEu@oFD{ACGvtsnŲʥnͼҽ}]{ų˥o`Ͼҿ~ºi^_ropqIH|w̥ƬͥңcdΥϥFjiǬϬХѥҥӥklnm˶rpqˬɬʬȬ`dcbaҦ{z֤feڭڧBjså|ԥsͨúopt͸ϬЬͬά̬hinlkjemfg֢֭|~֤֣}֩kjhlmgiڲگǺƺźȺECHIFGĺDlksmro`qabpntwuvMN}O~LPJxoKp~}ѬnoեʦGqmҬӬԬoָqpJxQqp֥uprKtRrץ׬ج֬լqrs֯ڱsɺʺLducySsإnxwͼvͽy۬ڬ߬ެ٬ܬݬuvҰwtֲֳִֵַ֭֮֩֫֬ھںڻڿڽtCκFDEAB@̺ͺ˺NQOMP}~vzywfgex{|h@{A|z~}U¥¢£T{yztwuvf٥ڥoxuGB|xۥz|~}{Ϳ|ҡzҢyҥ}~{ֳִֵֶַָֺvڸwxNQMLHOPJKкԺѺӺIҺTXVϺSURYWjlikFECDVGZW[]\XY~}z}yq{|~rtsܥrªҧҦҬֻּּֽֿRSTA׺պֺCB@mHI_^¥áVݥrqpĪêϵҲҰ־}|z{yAZX@W\[YIHDغGFٺ^_[]Z\pErqnoJ`¨©¦ìãޥHsƪŪ@𬶯ҷֿ~D]^CBJۺںKLa`sK¬uߥAҸڣEܺMݺvĥ˦ǪBC@BӹDGEFCҺHAƲòDzŲ²IJȲڧڥڬګڭaPSGLFcJHbONKMIR_Q]XNPUTWRQߺSY[VOi޺\bce`hdfgvjtxQyw{zONLPMucagedjkhib­«flðêîïóxĪwyŢXYm~̦EFDGHIIOMӻKLNJɲ˲ʲگְVdTeUfa^`_ka|}WSXTVRUz{A@ͦtȪLJKZǯSYïRXV¯įUӽTȯůɯƯQPWֵϲֲӲٲزԲвѲҲײͲղ̲ڲڴlڱڸڹڳڶڻβh]_ae[Yj`d\XWbZ^kifgcrjxtxeubwfvpcqshgdlimynokpyurvltswqnzrm{o梿~꨿ꣿꦿꤿ_Yia]dg\e`Zhc^b[fntwµovq·msurpøôõô÷õ~}ĭBŹ@BAlΦoʯڲjºCIɪuM`[_]˯^\@ijnohkgm@pz|}üDźϦ˪ʪONb̯aܲ۲BCAsmlnrq~꪿yxýüðЦPeίdcͯݲ޲߲Dop~CAB{|}桽歿꫿kz{½lѦҦ̪ϯQӦARS@BԦTѯfӯЯүA@qߡ㢽զs˪CUhԯgկCBDFGEtuEDpomnq|¾Ť֦wµvFצئ٦vwwtvyu{zxxѪϪΪӪժҪ֪ͬЪ|Ԫͮͪ[GH]WZcaIgLd\YIbDeV_FK`OMXJ^NEfگد֯jޯۯlݯkinHomׯٯܯ߯NEGHPLJMQFOKIȵQOʵJۡɵNKŵ˵PǵMGƵL̵ĵõwu{sߢxr{}v~|~yxy}͵|tzLHMJKIAD稽C秽@榽B걿꯿txzwvusry¡}~ôijECDڦתRN{ۦSܦPTUVOݦتhpWۤP|µަ٪RεQEߦϵR঱iQrqWTVSUXYZۦߧߥߨߥSJFIKHG괿ĶF}}X[AJKMNLʢˣ{ˡˡ|zy}~~jжܪͷ۪ߪ㪹Ϳʹݪڪ͸ઽ쯻ު誳b\daqt]kV`cewUYWRo~svХf}^xФuy|mУ{lp_ZSXTgnХ[zAΨvӣ}ӲӪ~өx|ӵӤtӬsr\ۦz{ӡuӯӮӶӰӧӢwy^`ey]houbi@wrnj\aYfcsdzlkZ_pvA[gmxqtl`׵}۪ۧյhۣiwsߵt]ۤ赡u۬p߯nzԵrۭkdocaеjۨ۩صݵٵ~ڵvfҵ^ۢ۫e൰qmѵ|xֵܵ޵ӵyg{bۦۮ_Uߵߩ߱߿߲߰߶߭߶߱߫۵߸߯߾߲߫ߴ߻ߺߪߧ߭߷ߦ߯߮`X[YZ]aU^WVTc\b_stgfb紽vu_c]pawZXdni綽Om緽[RU{\SQN簽e篽`h穽x|竽WkoTy粽L絽rVjP^Y筽l}zqM窽I@C뻿EAG븿LFUOF귿JT뿿QDHBVSP빿W뽿MKNS@ERDAMOQIPBRJGUHTKLVCN~³«¯°ĩĦĬīļJKIGHLEFGOhӷ@B|{굸~XZYW목ЧЦikjӿAFӽCӻHӾӹGDӺEBLK׫HF~שקפ׬׭ׯװ}Eס׮GIDMJ۴߽۱쵶ﵺ۸뵲۵۾ۼ۷۹ۻߺ¸øĸ㻸jeghmilfd߲½k翽绽缽羽繽纽罽da븽kge`oĿ\hi_^lb]cn[mj¿ÿfY]Zag\pj_kfm^`nXldch[bieo¥įBEACDQON@PFMžZn妪GlбNŸýĽſ禬ЭmIJNMKLPUT׸R׳S׻׽׷׾O׹׵׼״׶Q͸ϸǸθʸȸɸ˸Ƹ̸tBAv@nprqsoƽʽŽǽȽɽup|ʿwyȿquxƿɿ{stzrvǿrqwstuxvIKHJRHIKJPnWVиCFED̿˿y{zTS[ƤoCA@BѸDIGH}|}LULqrбpTRQXPYVSWUO_Y^`Z[X]\DFEICB@GAH߸ڸոָҸ޸׸ܸӸԸPMEJQٸGOKNLݸFظLx{N䥻M}ϽO䤻K䦻y۸|z~wJֽҽٽڽ˽սԽνͽӽнؽ̽׽۽ҿ~ͿӿϿٿԿпڿۿؿѽοܿտѿֿ׿~AO@BCĴij@NMPQAV[XWZYCB@A@MNgmƩRPDDZaTSܽݽvƨbHVUWQR䨻ݿ޽޿FE\[IYZX縪߿Gst]^hfcgedJLQSRUOKMTPN[T䬻SU߽併࿴HIJúĹRBS\ŬEBƪji\]஻꽺vu_XWV_b`ae^fcd఻V䯻콻LNKMTowlk`[^Yl]\_Zhonpmrikgjqs[aYbX]c`_^W\ZAC@EBFD⿽EA@CBDROSQPTüľCEVDUa`^]bcF_\QPOpnƭ`UyxcabmnCAEFLHJBIKDGb@acuwv{xtyz|gfde䳻MNIJKLH@GFGHIXYWVZXYWFdeHGd@|GŰdA[˱Ͷд|У~{}zjgnilhekmfpzv~w|roq}uxty{sMeOgiNfjhGO~PEJCBMLKIN}DFHRCASDBQPOEŶUoRSQTʪ˧ˬ˨˷˹˸мйЧнпХЦ׺qprӡע׷lVWTܣnSYXk\R[PZUmQRnqim»ljpkhoYHJVWUQGZTFIXKLM]\[\ZfŻut@Asפ_a]`o^psUTSsuƻûŻĻtra^_M`[\JK]LOPNR_Q^]HIC]qoƼVĽqBxvzDywCԨקBث@תCצAmljbqeovnyuciwhxzkrswutfrvtsdgpܺaWYeZ\f[db^c`Xg]_xǻz̻лȻɻ~ѻͻ|˻ʻyλ{wvϻ}RZUgPOVeTqcdNXtysowuhb}W~xmkfn{jzSv|rlQpYiDACB@@CEEBAD`YTc[eU_aWX]bjgk^Zhj\dfiSVscqalhrbetmpid`okugnBf@DACafOhIdjNJK`gMeL_cb^implnoijgkhųKMLNJDSRT_U^VruthsrpqwDxܥv{EFج}zyܣ|{~{hһջ׻ֻӻԻ[\MKIJFFNHLGnlmwxEGFPmlkXVYWʮ¨˿˭@ЮЭФEԢF~|}IصHKرJثGا}ܣܢܬ|~ܡܤjkiػڻٻGHOIoAGLضܦܯnomۻlܻPJptqusyBܧܳsprqݻ]^_`QNKPSLROMwvx~}z{|HISnQRoŵqEGFWCtQRDañSŲMةܫܪuv޻߻cbdVUTTA@}{~|y@zJKpŶOPHiƳCBäqrWDﵭXAçLMTQNصܷz|wx{y⻼ge[fYZU[YXVZWEJFIHGDBECèFê@ĨAħQNOPrVUtsI`X仾hGíBĬuRStsuHOظܽ~}i\kjla_^]`\K^]_NLMRKQTSPOJHIìCİDXWUTYvwWvVwaYPUﻭ`WVLòIJहࣹnqsrtpmocfdcihgbbaedZ^[]\Y_b`a@XcMïEFĴ`^]ca\Z[_bx~y[šZ}|Y{Xz}~{x|yzRSJvjƳkƴzluejmfdkNfde\ŤżbƪIԦhvwnqpoghfegOüPûGgihTUVKcƶxiJ{ƬrzyiSRQ^Ũ]ũL|{}xvwsytru|j{z~jmltosqpnkCBDAuXWUTJKIHloVmsqkvjrnut`Ů_ſŴűŬpZ\_[`YW]X^MZ\[yxwzst৹衾}~okplmnz{~|vy}E§F¦wYZ[MxOPNL}{|x~zwyabŽdſcŻindgkreosjcmlqphbfNOa]^`_ba|{x|}ƿPQਹGQSRıec䢾T³򻣾tdHu¶rqLJKI\õfvwd}uưܶxRe~쪹]gy^ĸ|{zM}fN~hŽĻijţTSgjihseÿtJJWY[_`cdghklopstwx{|ơǡʡˡȡɡ\MNOQRST}~̡͡ΡޡߡBLMNICH]^ϡAСDGFաס֡HIϢТѢҢӢԢբ֢עآ٢ڢۢܢݢޢߢ@ġ@ABCaUbFGáD  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      % & ' 2 5 ; !! !`!a!b!c!d!e!f!g!h!i!!!!!!!!!"""" "#"%")"*"+"."4"5"R"`"a"f"g"""""%% %%%%%$%,%4%<%P%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%^%_%`%a%a%b%c%d%e%f%g%h%i%j%j%k%l%m%m%n%n%o%o%p%p%q%r%s%t%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&@&B&00000 0 0 0 0 0000000000!0"0#0$0%0&0'0(0)01111 1 1 1 1 1111111111111111111 1!1"1#1$1%1&1'1(1)1233333333333NNNNN N N N N NNNNNNNNNNNN&N+N-N.N0N1N2N3N8N9N;NO?OAOCOFOGOHOIOLOMONOOOPOQOROSOTOUOVOWOXOYOZO[O\O]O^O_O`OaObOcOdOgOiOjOkOlOnOoOpOsOtOuOvOwOxOyOzO{O|O}O~OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPP P P P PPPPPPPPPPPPPPPPP P!P"P#P%P&P'P(P)P*P+P,P-P/P0P1P3P5P7PS?S@SASASCSDSESESGSHSISJSLSMSQSRSSSTSWSZS\S^S`SaScSfSlSnSoSpSqSrSsSuSwSxSyS{S|SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTT T T T T TTTTTTTTTTTTT T$T%T&T'T(T)T*T+T,T-T.T0T1T3T5T6T7T8T9T;TT@TATBTCTETFTGTHTJTNTOTTT`TaTbTcTdTeTfTgThTkTlToTpTqTrTsTtTuTvTwTxTzT{T|T}T~TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUU U U U UUUUUUUUU&U'U*U,U-U.U/U0U1U2U3U4U5U6U7U8U9U;UU@UAUCUDUEUFUHUJUKUMUNUOUPUQURUUUVUWU\U^U_UaUbUcUdUeUfUjUuUvUwU{U|U}U~UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVV V V VVVVVVVVVVVVVV'V)V*V,V.V/V0V2V3V4V5V6V8V9V:V;V=V>V?V@VAVBVEVFVHVIVJVLVNVSVWVXVYVZV^V`VbVcVdVeVfVhViVjVkVlVmVnVoVpVqVrVsVtVvVwVxVyV~VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWW W W W W WWWWWWWWWWW W"W#W(W)W*W,W-W.W/W0W3W4W;W>W@WAWEWGWIWJWKWLWMWNWOWPWQWRWaWbWdWfWhWiWjWkWmWoWpWqWrWsWtWuWvWwW{W|W}WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXX X X X X XXXXXXXXX X!X#X$X%X'X(X)X*X,X-X.X/X0X1X2X3X4X5X6X7X8X9X;X=X?XHXIXJXKXLXMXNXOXQXRXSXTXUXWXXXYXZX[X]X^XbXcXdXeXhXkXmXoXqXtXuXvXyXzX{X|X}X~XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYY Y YYYYYYYYYYY Y"Y$Y%Y'Y)Y*Y+Y,Y-Y.Y/Y1Y7Y8YY@YDYEYGYHYIYJYNYOYPYQYSYTYUYWYXYZY\Y`YaYbYgYiYjYkYmYnYpYqYrYsYtYvYwYxYyY{Y|Y}Y~YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZ Z Z ZZZZZZZZZZZZZ Z#Z%Z)Z-Z.Z3Z5Z6Z7Z8Z9ZZ@ZAZBZCZDZFZGZHZIZJZLZMZPZQZRZSZUZVZWZXZZZ[Z\Z]Z^Z_Z`ZbZdZeZfZgZiZjZlZmZpZwZxZzZ{Z|Z}ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[ [ [ [[[[[[[[[[[[ [![#[$[%[&['[([*[,[-[.[/[0[2[4[8[<[=[>[?[@[C[E[G[H[K[L[M[N[P[Q[S[T[U[V[W[X[Z[[[\[][_[b[c[d[e[i[k[l[n[p[q[r[s[u[w[x[z[{[}[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\ \ \ \ \ \\\\\\\\\\"\$\%\(\*\,\0\1\3\7\8\9\:\;\<\>\?\@\A\D\E\F\G\H\K\L\M\N\O\P\Q\T\U\V\X\Y\\\]\`\b\c\d\e\g\h\i\j\l\m\n\o\q\s\t\y\z\{\|\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]] ] ] ]]]]]]]]]]]]]] ]"]#]$]%]&]'](])].]0]1]2]3]4]5]6]7]8]9]:]<]=]?]@]A]B]C]E]G]I]J]K]L]N]P]Q]R]U]Y]^]b]c]e]g]h]i]k]l]o]q]r]w]y]z]|]}]~]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^ ^ ^^^^^^^^^^^^^ ^!^"^#^$^%^(^)^+^-^3^4^6^7^8^=^>^@^A^C^D^E^J^K^L^M^N^O^S^T^U^W^X^Y^[^\^]^_^`^a^b^c^f^g^h^i^j^k^l^m^n^o^p^r^s^t^u^v^x^y^{^|^}^~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^______ _ ____________"_#_$_&_'_(_)_-_._0_1_3_5_6_7_8_<_@_C_D_F_H_I_J_K_L_N_O_T_V_W_X_Y_]_b_d_e_g_i_j_k_l_m_o_p_q_s_t_v_w_x_y_|_}_~______________________________________________________________________________________` ` ` ` ` ````````````````` `!`"`$`%`&`'`(`)`*`+`,`-`.`/`2`3`4`5`7`9`@`A`B`C`D`E`F`G`I`L`M`P`R`S`T`U`X`Y`Z`[`]`^`_`b`c`d`e`f`g`h`i`j`k`l`m`n`o`p`r```````````````````````````````````````````````````````````````````````````````````````````aaaaaaa a a a aaaaaaaaaaaaaaa#a'a(a)a+a,a.a/a2a4a6a7a;a>a?a@aAaDaEaFaGaHaIaJaKaLaMaNaOaRaSaTaUaVaXaZa[a]a^a_aaabacaeafagahajakalanapaqarasatauavawayaza|a~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbb b b b bbbbbbbbbbbb b!b"b#b$b%b'b)b*b+b-b.b0b2b3b4b6b:b=b>b?b@bAbBbCbFbGbHbIbJbKbMbNbPbQbRbSbTbXbYbZb[b\b^b`babbbcbdbebfbmbnbobpbqbrbsbtbvbwbybzb{b|b}b~bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccc c c c ccccccccc(c)c*c+c,c-c/c2c3c4c6c8c9c:c;cc@cAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcTcUcVcWcXcYcZcecgchcickcmcncocpcqcrcucvcwcxczc{c|c}ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccd d d d d dddddddddddddddd d!d"d#d$d%d&d'd(d*d+d,d-d.d/d0d3d4d5d6d7d9d=d>d?d@dAdCdKdMdNdPdQdRdSdTdXdYd[d\d]d^d_d`dadedfdgdhdidkdldmdndodpdrdsdtdudvdwdxdydzd{d}dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeee e e eeeeeeeeeeeeee e!e"e#e$e%e&e)e*e+e,e-e.e/e2e3e6e7e8e9e;e=e>e?eAeCeEeFeHeIeJeOeQeSeTeUeVeWeXeYe\e]e^ebecedeeefegehejeleoereseteuevewexeyeze{e|eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffff f f f f ffffffffffff f!f"f$f%f&f'f(f+f-f.f/f1f2f3f4f5f6f9f:fAfBfCfEfGfIfJfLfOfQfRfYfZf[f\f]f^f_fafbfdfefffhfjflfnfofpfqfrftfvfwfxfyfzf{f|f~ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggg g g g gggggggggggg g!g"g#g&g'g(g*g+g,g-g.g1g3g4g5g8g9g:g;gg?gEgFgGgHgIgKgLgMgNgOgPgQgSgUgVgWgYgZg\g]g^g_g`gjglgmgogpgqgrgsgtgugvgwgxgygzg{g|g}g~gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhh h!h%h&h(h)h*h+h-h.h/h1h2h3h4h5h8h9h:h;hj?j@jAjDjFjGjHjIjKjMjNjOjPjQjTjUjVjXjYjZj[j]j^j_j`jajbjdjfjgjhjijjjkjmjojvj~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkk k k kkkkkkkkkkkk k!k#k%k(k,k-k/k1k2k3k4k6k7k8k9k:k;kk?kAkBkCkEkFkGkHkIkJkKkLkMkNkPkQkTkUkVkYk[k\k^k_k`kakbkckdkekfkgkjkmkrkvkwkxkyk{k~kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllll l l l llllllllllllll l!l#l$l%l&l'l(l*l+l,l.l/l0l3l4l6l8l;l>l?l@lAlBlClFlJlKlLlMlNlOlPlRlTlUlWlYl[l\l]l^l_l`lalelflglhliljlklmlolplqlrlsltlvlxlzl{l}l~lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmm m m m m mmmmmmmmmmmmmmm m"m%m'm(m)m*m+m,m-m.m/m0m1m2m3m4m5m6m7m8m9m:m;mm?m@mAmBmXmYmZm^m_m`mambmcmdmemfmgmhmimjmlmmmnmompmtmumvmwmxmymzm{m|m}m~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnn n!n"n#n$n%n&n'n(n+n,n-n.n/n0n1n2n3n4n5n6n8n9n:n;nn?n@nAnCnDnEnFnGnInJnKnMnNnQnRnSnTnUnVnXnZn[n\n]n^n_n`nanbncndnenfngnhninknnnonqnrnsntnwnxnynnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnoooooooo o o ooooooooooooo o!o"o#o%o&o'o)o*o+o,o-o.o/o0o1o2o3o5o6o7o8o9o:o;oo?o@oAoCoNoOoPoQoRoSoToUoWoXoZo[o]o^o_o`oaobocodofogoiojokolomonoooporosovowoxozo{o|o}o~ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooopppppp p p p p ppppppppppppppp p!p"p#p$p&p'p(p)p*p+p/p0p1p2p3p4p5p7p8p9p:p;p

p?p@pApBpCpDpEpFpHpIpJpLpQpRpUpVpWpXpZp[p]p^p_p`papbpcpdpepfphpipjpkpppqptpvpxpzp|p}ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqq q q q q qqqqqqqqqqq q!q"q#q%q&q(q.q/q0q1q2q6q:qAqBqCqDqFqGqIqKqLqMqNqPqRqSqTqVqXqYqZq\q]q^q_q`qaqbqcqdqeqfqgqhqiqjqlqnqpqrqxq{q}qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrr r r rrrrrrrrrr"r#r&r'r(r)r*r,r-r0r5r6r8r9r:r;r=r>r?rArBrDrFrGrHrIrJrKrLrOrRrSrVrXrYrZr[r]r^r_r`rarbrcrgrirjrlrnrorprrrsrtrvrwrxryr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssss s s sssssssssssss"s#s%s&s's)s-s0s1s2s3s4s5s6s7s:s;ss?s@sBsCsDsEsIsJsLsMsNsPsQsRsWsXsYsZs[s]s^s_s`sasbsesfsgshsisjskslsnsospsrsssusvswsxszs{s|s}s~sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssstttttttt t t t t ttttt t!t"t#t$t%t&t(t)t*t+t,t-t.t/t0t1t2t3t4t5t6t:t?t@tAtBtDtFtJtKtMtNtOtPtQtRtTtUtWtYtZt[t\t^t_tbtctdtgtitjtmtntotptqtrtstutyt|t}t~tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuu u u uuuuuuuuuuuuuuu!u"u%u&u(u)u*u+u,u-u.u/u0u1u2u3u7u8u9u:u=u>u?u@uGuHuKuLuNuOuTuYuZu[u\u]u_ubucudueufujukuluoupuvuwuxuyu}u~uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvv v v v v vvvvvvvvvvvvvvv v!v"v#v$v%v&v'v(v)v-v/v0v1v2v3v4v5v8v:vwDwEwFwGwJwKwLwMwNwOwRwTwUwVwYwZw[w\w^w_w`wawbwcwewfwgwhwiwjwkwlwmwnwowyw|w}w~wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxx x x xxxxxxxxxx x!x"x#x%x&x'x(x)x*x+x,x-x.x/x0x1x2x3x4x5x7x8xCxExHxIxJxLxMxNxPxRx\x]x^x`xbxdxexhxixjxkxlxmxnxoxpxqxyx{x|x~xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyy y yyyyyyyyyyyyy!y#y$y%y&y'y(y)y*y+y,y-y/y1y5y8y9y:y=y>y?y@yAyByDyEyFyGyHyIyJyKyLyOyPyQyRySyTyUyVyWyZy[y\y]y^y_y`yaycydyeygyhyiyjykymypyrysytyyyzy|y}yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzz z z z zzzzzzzzzzzzzzz z"z&z(z+z.z/z0z1z7z9z;z|?|@|C|E|G|H|I|J|L|M|P|S|T|W|Y|Z|[|\|_|`|c|d|e|f|g|i|j|k|l|n|o|r|s|u|x|y|z|}|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||}}}}}}}}} } } } } }}}}}}}}}}}}}}}}}}} }!}"}(})}+},}.}/}0}1}2}3}5}6}8}9}:};}<}=}>}?}@}A}B}C}D}E}F}G}J}N}O}P}Q}R}S}T}U}V}X}[}\}^}_}a}b}c}f}g}h}i}j}k}m}n}o}p}q}r}s}y}z}{}|}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~ ~ ~ ~ ~ ~~~~~~~~~~~~~~~~~ ~!~"~#~$~%~)~*~+~-~.~/~0~1~2~3~4~5~6~7~8~9~:~;~<~=~>~?~@~A~B~C~D~E~F~G~H~I~L~P~Q~R~S~T~U~V~W~X~Y~Z~\~^~_~`~a~b~c~h~i~j~k~m~o~p~r~s~t~u~v~w~x~y~z~{~|~}~~~~~~~~~~~~~~~~~~~~~~~~~689:=>?CDEHJKLMOPQTUX[\]^_`acefghijklmnprsuvwyz{|}~ !$&()*,0345679=>?CFGHJOPQRVXZ\]^dglopqrsuvwxy}~€ÀĀŀǀȀɀʀ̀̀΀πЀрԀՀր׀؀ـڀۀ܀݀ހ !"#$%')+,-/09:=>CDFGJKLMNOPQRSTU[\^`abdefgiknopqrstvwxyzÁāŁƁǁɁʁ́́ρЁсҁՁׁ؁فځہ݁ށ߁  !"%(*+,/23456789:<=?@BDEGIKNOPQRSUVWXYZ[\^_acdfhiklmnoqrtuwx|}~‚Âт҂ӂԂՂւׂقۂ܂ނ߂  "$%&'()*+,-/123456789:;@ACDEFGHIJMNQSTUVWXY[]^`abcdefghijklmnquvwxyz{|~…ÅąŅƅDžȅɅ˅ͅ΅υЅх҅Յׅ؅مڅ܅݅ޅ߅  !"#$%&')*,-.12345689:;<>?@CFGHKLMNPRSTUVY[\^_abcdeghijkmnopqstwyz{|†ÆĆņƆdžȆɆˆ̆ІцӆԆֆ׆؆نچۆ܆݆ކ߆  !"#$%&'()*,-.01234578:;<>?@ABCFLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnostuvwxyz{‡ÇćŇƇȇɇʇˇ̇ч҇Ӈԇׇ؇هۇ܇݇އ߇  !"#$%&()*+,./012356789;<=>?@ACDHJKLMNRSUVWYZ[]abcghijkmopqrtuvwy|}~ˆɈʈˈ͈̈ΈψЈ҈ԈՈֈ׈؈وڈۈ܈݈ވ߈ !"#%&')*+,-./01235678;<=>ABDFIKLOPQRSVWXYZ[\]^_`abcdfijklmnoqrstvyz{|~҉ӉԉՉ։ىډۉ܉݉߉ "#%'*,-01469:;<>?@ADEFHJLMNOPQRTUVWXY[^`abcfhiklmnpqrstuvwyz{|ŠÊĊŊƊNJȊɊˊ͊ϊъҊӊԊՊ֊׊؊يۊ܊݊ފߊ  "#$%&'(*+,./0135679:;<=>@ABEFGHIJKNOPQRSTUVWXYZ\]_`cefghjklmoptwxyz{}~79;<=>?ABCEFGHIJKLMNOPTUVWZ\]_abdefhijklmopqrsuvwxyz{}ŒÌČŌnjȌʌ̌όьҌӌՌ׌ٌڌ܌݌ތߌ dfghiklmnoprstvwxy{}ōƍǍȍˍ͍̍΍ύЍэӍՍ֍׍؍ٍڍۍ܍ݍߍ  !"#$%&')+.01345689<=>?@ABDEGHIJKLMNPSTUVWYZ[\]^_`abcdefgijlmorstvxz{|ŽɎʎˎ͎̎ώюҎӎԎ׎؎ێ܎ݎގߎ  #$%&)*,./23456789;>?@BCDEFGHIKMNOPQRSTUVWXYZ[]^_`abcdďŏƏɏˏ͏ΏяҏӏԏՏ֏׏  !"#$-./124568<=>?ABDGIJKMNOPQRSTUXY[\]^`bcghikmnoprstuvwxyz{|}~ÐŐǐȐʐːΐԐՐ֐אِؐڐېܐݐߐ  !"#$&'()*+,-./012345689:;>?@ACDEFGHIJKLMNOPRSUVWXZ_`abcdehijlnorstuwxyz‘ÑőƑǑɑˑ̑͑ΑϑБёӑԑՑבّؑڑܑݑ #$%&'-.012346789:=>?@EFHIJKLMNOPQRSTVWZ[^`acdefglmoprvxyz{|}~’ÒĒŒƒǒȒɒʒ˒̒͒ΒϒВђҒӒՒגْؒݒޒߒ  !"#$%&'()*+-./345689?BCDFGHIKRVXZ[\^`abfhijlnprstvwxz{|}~×ėŗƗǗɗ˗̗͗ΗϗЗӗԗ՗֗חؗٗܗݗޗߗ  !$&'()+-/025789;ACDEFHIJLMNOPQRSWXY[\]^_`bcdegijkopqrst˜ĘƘɘ˘̘ۘߘ !$%'()*+,-./01235:<=>?ACEGHIKLNPQRSTUVWXY[\^_a™ÙǙə˙̙͙ΙϙЙљҙәԙՙ֙יؙٙۙܙݙߙ  "#$%')*+,-.012456789:=>?@ABCDEFHIJLMNOPRSTUVWYZ[^_`bdefghijkšƚǚʚ͚ϚКњҚӚԚ՚ؚ֚ܚߚ  "#$%'()+./12357:;<>?ABCDEFHJKLMNOQRTUVXYZ[_`adfghlopqtuvwz{|}~ÛěƛǛțɛʛӛԛ՛֛כٛڛۛܛޛ !#$%()+,-1234679;<=>?@ADFHIJKLMNPRTUVWXY^_`bcfghmnqstuwxyz  "#%&()-./013678;=>?@ABCEJKLOQRSTVWXYZ[\]_`aghijklopqrstuwxy{}Ýŝǝȝʝ˝̝͝ΝϝНѝҝӝ՝֝ם؝ٝڝ۝ܝݝޝߝ uyz|}žÞȞ̞͞ΞϞОўӞԞ՞֞؞ڞ۞ܞݞޞߞ  "#$%()*+,-./012345678;=>@ABCFGHIJKLMNORTUVWXY[\]^_`acdefgjklnopqrtuvwxyz{~ 013456789:;<=>?@ABCDIJKLMNOPQRTUVWYZ[\]^_`abcdefhijk  !"#$%&'()*+,-./0123456789:?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÁāŁƁǁȁɁʁˁ́́΁ρЁсҁӁԁՁցׁ؁فځہ܁݁ށ߁ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz‚ÂĂłƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂قڂۂ܂݂ނ߂ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒÃăŃƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃփ׃؃كڃۃ܃݃ރ߃ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz„ÄĄńƄDŽȄɄʄ˄̄̈́΄τЄф҄ӄԄՄքׄ؄لڄۄ܄݄ބ߄ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz…ÅąŅƅDžȅɅʅ˅̅ͅ΅υЅх҅ӅԅՅօׅ؅مڅۅ܅݅ޅ߅ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz†ÆĆņƆdžȆɆʆˆ̆͆ΆφІц҆ӆԆՆֆ׆؆نچۆ܆݆ކ߆ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz‡ÇćŇƇLJȇɇʇˇ͇̇·χЇч҇ӇԇՇևׇ؇هڇۇ܇݇އ߇ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzˆÈĈňƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈وڈۈ܈݈ވ߈ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz‰ÉĉʼnƉljȉɉʉˉ͉̉ΉωЉщ҉ӉԉՉ։׉؉ىډۉ܉݉މ߉ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzŠÊĊŊƊNJȊɊʊˊ̊͊ΊϊЊъҊӊԊՊ֊׊؊يڊۊ܊݊ފߊABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz‹ËċŋƋNjȋɋʋˋ̋͋΋ϋЋыҋӋԋՋ֋׋؋ًڋۋ܋݋ދߋABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzŒÌČŌƌnjȌɌʌˌ̌͌ΌόЌьҌӌԌՌ֌׌،ٌڌی܌݌ތߌABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÍčōƍǍȍɍʍˍ͍̍΍ύЍэҍӍԍՍ֍׍؍ٍڍۍ܍ݍލߍABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzŽÎĎŎƎǎȎɎʎˎ͎̎ΎώЎюҎӎԎՎ֎׎؎َڎێ܎ݎގߎABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÏďŏƏǏȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏۏ܏ݏޏߏABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÐĐŐƐǐȐɐʐː̐͐ΐϐАѐҐӐԐՐ֐אِؐڐېܐݐސߐABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz‘ÑđőƑǑȑɑʑˑ̑͑ΑϑБёґӑԑՑ֑בّؑڑۑܑݑޑߑABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz’ÒĒŒƒǒȒɒʒ˒̒͒ΒϒВђҒӒԒՒ֒גْؒڒےܒݒޒߒABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz“ÓēœƓǓȓɓʓ˓͓̓ΓϓГѓғӓԓՓ֓דؓٓړۓܓݓޓߓABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz”ÔĔŔƔǔȔɔʔ˔͔̔ΔϔДєҔӔԔՔ֔הؔٔڔ۔ܔݔޔߔABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz•ÕĕŕƕǕȕɕʕ˕͕̕ΕϕЕѕҕӕԕՕ֕וٕؕڕەܕݕޕߕABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz–ÖĖŖƖǖȖɖʖ˖̖͖ΖϖЖіҖӖԖՖ֖זٖؖږۖܖݖޖߖABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz—×ėŗƗǗȗɗʗ˗̗͗ΗϗЗїҗӗԗ՗֗חؗٗڗۗܗݗޗߗABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz˜ØĘŘƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ٘ژۘܘݘޘߘABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz™ÙęřƙǙșəʙ˙̙͙ΙϙЙљҙәԙՙ֙יؙٙڙۙܙݙޙߙABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzšÚĚŚƚǚȚɚʚ˚͚̚ΚϚКњҚӚԚ՚֚ךؚٚښۚܚݚޚߚABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz›ÛěśƛǛțɛʛ˛̛͛ΛϛЛћқӛԛ՛֛כ؛ٛڛۛܛݛޛߛABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzœÜĜŜƜǜȜɜʜ˜̜͜ΜϜМќҜӜԜ՜֜ל؜ٜڜۜܜݜޜߜABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÝĝŝƝǝȝɝʝ˝̝͝ΝϝНѝҝӝԝ՝֝ם؝ٝڝ۝ܝݝޝߝABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzžÞĞŞƞǞȞɞʞ˞̞͞ΞϞОўҞӞԞ՞֞מ؞ٞڞ۞ܞݞޞߞABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzŸßğşƟǟȟɟʟ˟̟͟ΟϟПџҟӟԟ՟֟ן؟ٟڟ۟ܟݟޟߟABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz àĠŠƠǠȠɠʠˠ̠͠ΠϠРѠҠӠԠՠ֠נؠ٠ڠ۠ܠݠޠߠABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz¡áġšơǡȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡۡܡݡޡߡABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz¢âĢŢƢǢȢɢʢˢ̢͢΢ϢТѢҢӢԢբ֢עآ٢ڢۢܢݢޢߢABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz£ãģţƣǣȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڣۣܣݣޣߣABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz¤äĤŤƤǤȤɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤۤܤݤޤߤABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz¥åĥťƥǥȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz¦æĦŦƦǦȦɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צئ٦ڦۦܦݦަߦABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz§çħŧƧǧȧɧʧ˧̧ͧΧϧЧѧҧӧԧէ֧קا٧ڧۧܧݧާߧABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz¨èĨŨƨǨȨɨʨ˨̨ͨΨϨШѨҨӨԨը֨רب٨ڨۨܨݨިߨABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz©éĩũƩǩȩɩʩ˩̩ͩΩϩЩѩҩөԩթ֩שة٩ک۩ܩݩީߩABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªêĪŪƪǪȪɪʪ˪̪ͪΪϪЪѪҪӪԪժ֪תت٪ڪ۪ܪݪުߪABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz«ëīūƫǫȫɫʫ˫̫ͫΫϫЫѫҫӫԫի֫׫ث٫ګ۫ܫݫޫ߫ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzѬҬӬԬլ֬׬ج٬ڬ۬ܬݬެ߬ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz°ðİŰưǰȰɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ۰ܰݰް߰ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz±ñıűƱDZȱɱʱ˱̱ͱαϱбѱұӱԱձֱױرٱڱ۱ܱݱޱ߱ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz²òIJŲƲDzȲɲʲ˲̲ͲβϲвѲҲӲԲղֲײزٲڲ۲ܲݲ޲߲ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz³óijųƳdzȳɳʳ˳̳ͳγϳгѳҳӳԳճֳ׳سٳڳ۳ܳݳ޳߳ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz´ôĴŴƴǴȴɴʴ˴̴ʹδϴдѴҴӴԴմִ״شٴڴ۴ܴݴ޴ߴABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzµõĵŵƵǵȵɵʵ˵̵͵εϵеѵҵӵԵյֵ׵صٵڵ۵ܵݵ޵ߵABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz¶öĶŶƶǶȶɶʶ˶̶Ͷζ϶жѶҶӶԶնֶ׶ضٶڶ۶ܶݶ޶߶ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz·÷ķŷƷǷȷɷʷ˷̷ͷηϷзѷҷӷԷշַ׷طٷڷ۷ܷݷ޷߷ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz¸øĸŸƸǸȸɸʸ˸̸͸θϸиѸҸӸԸոָ׸ظٸڸ۸ܸݸ޸߸ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz¹ùĹŹƹǹȹɹʹ˹̹͹ιϹйѹҹӹԹչֹ׹عٹڹ۹ܹݹ޹߹ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzºúĺźƺǺȺɺʺ˺̺ͺκϺкѺҺӺԺպֺ׺غٺںۺܺݺ޺ߺABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz»ûĻŻƻǻȻɻʻ˻̻ͻλϻлѻһӻԻջֻ׻ػٻڻۻܻݻ޻߻ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz¼üļżƼǼȼɼʼ˼̼ͼμϼмѼҼӼԼռּ׼ؼټڼۼܼݼ޼߼ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz½ýĽŽƽǽȽɽʽ˽̽ͽνϽнѽҽӽԽսֽ׽ؽٽڽ۽ܽݽ޽߽ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz¾þľžƾǾȾɾʾ˾̾;ξϾоѾҾӾԾվ־׾ؾپھ۾ܾݾ޾߾ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz¿ÿĿſƿǿȿɿʿ˿̿ͿοϿпѿҿӿԿտֿ׿ؿٿڿۿܿݿ޿߿ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſABCDEFGHIJKLMNOPQRơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿơǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴǵǶǷǸǹǺǻǼǽǾǿǡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿȡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼʽʾʿʡˢˣˤ˥˦˧˨˩˪˫ˬ˭ˮ˯˰˱˲˳˴˵˶˷˸˹˺˻˼˽˾˿ˡ̴̵̶̷̸̢̧̨̡̣̤̥̦̩̪̫̬̭̮̯̰̱̲̳̹̺̻̼̽̾̿ͣͤͥͦͧͨͩͪͫͬͭͮͯ͢ͰͱͲͳʹ͵Ͷͷ͸͹ͺͻͼͽ;Ϳ͡΢ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοΡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵ϶ϷϸϹϺϻϼϽϾϿϡТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопСѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿѡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿҡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹӺӻӼӽӾӿӡԢԣԤԥԦԧԨԩԪԫԬԭԮԯ԰ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿԡբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտաְֱֲֳִֵֶַָֹֺֻּֽ֢֣֤֥֦֧֪֭֮֨֩֫֬֯־ֿ֡עףפץצקרשת׫׬׭׮ׯװױײ׳״׵׶׷׸׹׺׻׼׽׾׿סآأؤإئابةتثجحخدذرزسشصضطظعغػؼؽؾؿء٢٣٤٥٦٧٨٩٪٫٬٭ٮٯٰٱٲٳٴٵٶٷٸٹٺٻټٽپٿ١ڢڣڤڥڦڧڨکڪګڬڭڮگڰڱڲڳڴڵڶڷڸڹںڻڼڽھڿڡۣۢۤۥۦۧۨ۩۪ۭ۫۬ۮۯ۰۱۲۳۴۵۶۷۸۹ۺۻۼ۽۾ۿۡܢܣܤܥܦܧܨܩܪܫܬܭܮܯܱܴܷܸܹܻܼܾܰܲܳܵܶܺܽܿܡݢݣݤݥݦݧݨݩݪݫݬݭݮݯݰݱݲݳݴݵݶݷݸݹݺݻݼݽݾݿݡޢޣޤޥަާިީުޫެޭޮޯްޱ޲޳޴޵޶޷޸޹޺޻޼޽޾޿ޡߢߣߤߥߦߧߨߩߪ߲߫߬߭߮߯߰߱߳ߴߵ߶߷߸߹ߺ߻߼߽߾߿ߡ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#%&'()*+.234567:;=>?ABCDEFGHIJLNOPQRSUVWYZ[]^_`abcdefghijklmnorsuvy{|}~¬ìŬƬǬɬʬˬͬάϬЬѬҬӬԬ֬ج٬ڬ۬ܬݬެ߬ !"#$%&'(*+./0123679:;=>?@ABCFHJKLMNOQRSUVWYZ[\]^_`bdefghijknoqrwxyz~­íŭƭǭɭʭ˭̭ͭέϭҭԭխ֭׭ح٭ڭۭݭޭ߭  !"#$%&'()*+,-./23569;<=>?BDGHIKOQRSUWXYZ[^bcdfgjkmnoqrstuvwz~®îŮƮǮȮɮʮˮήҮӮԮծ֮׮ڮۮݮޮ߮  !"#$%&'()*+./1356789:;>@DEFGJKLMNOQRSTUVWXYZ[^_`abcfghijklmnopqrstuvwxz{|}~¯ïįůƯʯ̯ϯЯѯүӯկ֯ׯدٯگۯݯޯ߯  !"#$%&')*+,-./0123456789:;<=>?@ABCFGIKMOPQRVXZ[\^_`abcdefghijklmnopqrstuvwxyz{~°ðưʰ˰̰ͰΰϰҰӰհְװٰڰ۰ܰݰް߰  !"&')*+-./01236:;<=>?BCEFGIJKLMNORSVWYZ[]^_abcdefghijklmnopqrstuvwz{}~±ñıűƱDZȱɱʱ˱ͱαϱѱұӱձֱױرٱڱ۱ޱ !"#$%&'()*+,-./012356789:;=>?@ABCDEFGHIJKLMNOPQRSTUVWYZ[]^_abcdefgjklmnopqrsvwxyz{}~²òIJŲƲDzʲ˲ͲβϲѲӲԲղֲײڲܲ޲߲  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSWYZ]`abcfhjlmorsuvwyz{|}~³óƳdzɳʳͳϳѳҳӳֳسڳܳ޳߳ !"#$%&'*,-./012356789:;<=>?@ABCDEFGHIJKLMNORSUVWYZ[\]^_bdfghijkmnopqrstuvwxyz{|}~´ôŴƴǴɴʴ˴̴ʹδϴѴҴӴԴִ״شٴڴ۴޴ߴ  !"#&+,-./235679:;<=>?BFGHIJNOQRSUVWXYZ[^bcdefghijklmnopqrstuvwxyz{|}~µõŵƵǵȵɵʵ˵εҵӵԵյֵ׵ٵڵ۵ܵݵ޵ߵ  !"#$&'()*+-./012356789:;<=>?@ABCDEFGIJKLMNOPQRSTUVWXYZ[\]^_`abcefgijklmnopqrstuvwxyz{|}~¶öĶŶƶǶȶɶʶ˶̶Ͷζ϶жѶҶӶնֶ׶ضٶڶ۶ܶݶ޶߶  !"#$%&'*+-.1234567:<=>?@ABCEFGIJKMNOPQRSVWXYZ[\]^_abcefgijklmnortvwxyz{~·÷ķŷƷȷʷ˷̷ͷηϷзѷҷӷԷշַ׷طٷڷ۷ܷݷ޷߷  !"#&')*+-./01236:;<=>?ABCEFGHIJKLMNOPRTUVWXYZ[^_abcefghijknprstuvwyz{}~¸ĸƸǸȸɸʸ˸͸θϸѸҸӸոָ׸ظٸڸ۸ܸ޸ !"#$%&'()*+,-./0123456789:;>?ABCEFGHIJKMNPRSTUVWZ[]^_abcdefgjlnopqrsvwyz{}~¹ùĹŹƹǹʹ˹͹ӹԹչֹ׹ڹܹ߹  !"#$%&'()*+,-./01234567:;=>?ACDEFGJLOPQRVWYZ[]^_`abcfjklmnorsuvwyz{|}~ºúźƺǺɺʺ˺̺ͺκϺкѺҺӺԺպֺ׺ںۺܺݺ޺ߺ !"#$%&'(*,-./012379:?@ABCFHJKLNQRSUVWYZ[\]^_`bdefghijkmnopqrstuvwxyz{|}~»ûŻƻǻɻʻ˻̻ͻλϻѻһԻջֻ׻ػٻڻۻܻݻ޻߻  !"#&(*+,./235679:;<=>?BFGHJKNOQRSTUVWXYZ[\^_`abcdefghijklmnopqrstuvwxyz{|}~¼üżƼǼȼɼʼ˼̼μҼӼԼּ׼ټڼۼݼ޼߼  !"#%&'()*+-./0123456789:;<=>?ABCDEFGJKMNOQRSTUVWZ[\]^_`abcefgijklmnopqrstuvwxyz{|}~½ýĽŽƽǽȽɽʽ˽̽ͽνϽнѽҽӽֽ׽ٽڽ۽ݽ޽߽  !"#$%&'()*+,-./0123456789:;<=>?@ABCFGIJKMOPQRSVX\]^_bcefgiklmnorvwxyz~¾þľžƾǾȾɾʾ˾̾;ξϾҾӾվ־پھ۾ܾݾ޾߾  !"#$%&'()*+,-./0123456789:;<=>?BCEFGIJKLMNORSTVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¿ÿĿƿǿȿɿʿ˿οϿѿҿӿտֿ׿ؿٿڿۿݿ޿  !"#$%&'()*+,-./0123456789:;=>?@ABCDEFGHIJKLMNOPRSTUVWYZ[]^_abcdefgjklmnopqrstuvwxyz{|}~ !"%()*+.23457:;=>?ABCDEFGJNOPQRSVWYZ[]^_`abcfjklmnoqrsuvwyz{|}~ !"#$%&'*,.0356789:;<=>?@ABCDEFGIJKLMNORSUVWYZ[\]^_abcdfghijknoqrsuvwxyz{~€‚ƒ„…†‡Š‹ŒŽ‘’“”•–—™šœžŸ ¡¢£¦§©ª«®¯°±²³¶¸º»¼½¾¿  !"#&'*+,-./0123456789:;<=>?@ABCDFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgjkmnoqstuvwz{~ÀÁÂÃÅÆÇÉÊËÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ  !"#%&'()*+-./12356789:;>?@ABCDEFGIJKLMNOPQRSTUVWXYZ[\]^_`abcfgijkmnopqrsvwxz{|}~āĂ㥹ĆćĈĉĊċČčĎďĐđĒēĕĖėĘęĚěĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĹĺĻĽľĿ  !"#$%&'*+-./1234567:<>?@ABCFGKOPQRVZ[\_bcefgijklmnorvwxyz{~ŁłŃŅņňʼnŊŋŎŐŒœŔŖřŚśŝŞşšŢţŤťŦŧŨŪūŬŭŮůŰűŲųŶŷźſ  !"#&')*+/1268:<=>?BCEFGIJKLMNORVWXYZ[^_abcdefghijkmnprstuvwz{}~ƁƂƃƄƅƆƇƊƌƎƏƐƑƒƓƖƗƙƚƛƝƞƟƠơƢƣƦƨƪƫƬƭƮƯƲƳƵƶƷƻƼƽƾƿ "#%&')*+,-./24689:;>?ABCEFGHIKNPYZ[]^_abcdefgijlmnopqrsvwyz{ǀǁǂdžNjnjǍǏǒǓǕǙǛǜǝǞǟǢǧǨǩǪǫǮǯDZDzdzǵǶǷǸǹǺǻǾ !"#%&'()*+.02345679:;=>?ABCDEFGJKNOPQRSUVWXYZ[\]^_`abcdefghijklmnorsuvwy{|}~ȂȄȈȉȊȎȏȐȑȒȓȕȖȗȘșȚțȜȞȠȢȣȤȥȦȧȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȾȿ 000% & 0 %"<<"    000 0 0 0 0 00000`"d"e""4"2 3 !+!B&@& ""#""a"R"; &&%%%%%%%%%%%!!!!!0j"k""=""5"+","" """""*")"'"(" !"#$%&'()*+-./012356789:;<=>?@ABCDEFGHIJKLMNORSUVWYZ[\]^_bdefghijkmno!!""^.""" !0 %%%%d&`&a&e&g&c&"%%%%%%%%%%%h&&&&& ! !!!!!m&i&j&l&22!3"!33!! qrsuvwxyz{}~ɀɁɂɃɄɅɆɇɊɋɍɎɏɑɒɓɔɕɖɗɚɜɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ  !"#$%&'()*+,-./0123456789:;=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]  !"#$%&'(*+,-./0123456789:;<=>?@ABCDEF112131415161718191:1;1<1=1>1?1@1A1B1C1D1E1F1G1H1I1J1K1L1M1N1O1P1Q1R1S1T1U1V1W1X1Y1Z1[1\1]1^1_1`1a1b1c1d1e1f1g1h1i1j1k1l1m1n1o1p1q1r1s1t1u1v1w1x1y1z1{1|1}1~11111111111111111GHIJKNOQRSUVWXYZ[^bcdefgijklmnopqrstuvwxyz{|~ʀʁʂʃʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧp!q!r!s!t!u!v!w!x!y!`!a!b!c!d!e!f!g!h!i!ʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʾʿ %% %%%%%,%$%4%<%%%%%%%#%3%+%;%K% %/%(%7%?%%0%%%8%B%%%%%%%% %%%!%"%&%'%)%*%-%.%1%2%5%6%9%:%=%>%@%A%C%D%E%F%G%H%I%J% "#$%&'()*+,-./0123456789:;<=>?@BCDEFGJKMNOQRSTUVWZ[\^_`abcefghijkl˕333!3333333333333333333333333333333333333333333333333333&!3333333333333333333333mnopqrstuvwz{|}~ˀˁ˂˃˄˅ˆˇˈˉˊˋˌˍˎˏːˑ˒˓˔˕˖˗˘˙˚˛˝˞˟ˠˡˢˣˤ˥˦˧˨˩˪˫ˬ˭ˮ˯˰˱˲˳˴˵˶˷˹˺˻˼˽˾˿&2?ARfJ`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2q2r2s2t2u2v2w2x2y2z2{2$$$$$$$$$$$$$$$$$$$$$$$$$$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$S!T![!\!]!^!  #$'138@BSgKI222222222 2 2 2 2 222222222222222$$$$$$$$$$$$$$$$$$$$$$$$$$t$u$v$w$x$y$z${$|$}$~$$$$$t  %&*+-/1234567:?@ABCFGIJKMNOPQRSVZ[\]^_abcegijklmnoqrstvwxyz{|}~̀́̂̃̄̅̆̇̈̉̊̋̌̍̎̏̐̑̒̓A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0{0|0}0~0000000000000000000000̶̷̡̢̧̡̛̖̗̝̞̟̣̤̥̦̪̮̯̰̱̲̳̹̺̻̽̾̿̕̚00000000000000000000000000000000000000000000000000000000000000000000000000000000000000  !"#%&')*+-./012345678:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_ !"#$%&'()*+,-./012345Q6789:;<=>?@ABCDEFGHIJKLMNOabcefghijknprstuvwyz{|}~͇͉͍͎̀́͂̓̈́͆͊͋͌ͅ͏͓͖͙͚͐͑͒͗͛ͣͦͨͪͫͬͭͮͯ͟͢͝͞͠͡ͱͲͳʹ͵Ͷͷ͸͹ͺͻͼͽ;Ϳ "#%&')*+,-./246789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWZ[]^bcdefgjlnopqrsvwyz{}~΀΁΂΃ΆΈΊ΋Ό΍ΎΏΒΓΕΖΗΙΚΛΜΝΞΟ΢ΦΧΨΩΪΫήίΰαβγδεζηθικλμνξο  $,-/0189<@KMTX\pqtwxzĬȬ̬լ׬ !"#%&'()*+.2345679:;<=>?@ABCDEFGHIJKLMNOPQRSVWYZ[]^_`abcfhjkl  ),-458?@ABCFHJKLMNOQRSUVWYZ[\]^_abcdefghijknoqrsuvwxyz{~ЀЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГД߱  4?BFGHIJKNOQRSUVWXYZ[^`bcdefgijkm@ACDEKLMPT\]_`aĵ̵͵ϵеѵص%,4HdhԶ(),/089;DHLTU`dhpqsu|}nopqrstuvwxyz{}~рстухцчщъыьэюяѐёђѓєѕіїјљњћќѝўџѢѣѥѦѧѩѪѫѬѭѮѯѲѴѶѷѸѹѻѽѾѿјǷɷ $%(,45789@DQS\]`dlmoqx|øŸ̸иԸݸ߸ <=@DLOQXY\`hi  !"#$%&'()kmtux|ȹɹ̹ιϹйѹҹعٹ۹ݹ޹89<@BHIKMNSTUX\deghipqtxĺȺغٺ*+./12356789:;>@BCDEFGIJKLMNOPQRSTUVWXYZ[]^_`abcefghijklmnopqrstuvwxyz{|}~҂҃҅҆҇҉ҊҋҌ  )+4568;<=>DEGIMOPTXaclĻȻлӻ $%')-0148@ACDEILMP]ҎҏҒғҔҖҗҘҙҚқҝҞҟҡҢңҥҦҧҨҩҪҫҭҮүҰҲҳҴҵҶҷҺһҽҾҙļͼϼмѼռؼܼ $,@HILPXYdhԽսؽܽ DEHLNTUWYZ[`ad "#$&'*+-./1234567:>?@ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghihjpqstu{|}оѾԾ׾ؾ @ADHPQUſ̿ͿпԿܿ߿?ABCEFGHIJKLMNOPQRSTUVWXYZ[]^_abcefghijklnpqrstuvwz{}~ԁԃԄԅԆԇԊԌԎԏԐԑԒԓԕԖԗԘԙԚԛԜԝ4<=HdehltuyĀĔĜĸļ (),089;=DEHIJLMNSTUWXY]^`adhpqstu|}ŀńŇŌōŏőŕŗŘŜŠũŴŵŸŹŻżŽžŞԟԠԡԢԣԤԥԦԧԨԪԫԬԭԮԯ԰ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿ $%(,-.034579;@ADHPQSTU\]`loqxy|ƀƈƉƋƍƔƕƘƜƤƥƧƩưƱƴƸƹƺ  !"#$%&'()*+,-./0123456789:;>?ABCEFGHIJKNPRSTUVWZ[]^_abc  !$(01357<=@DJLMOQRSTUVWX\`hktux|}~ǃDŽDžLJLjljNJǎǐǑǔǖǗǘǚǠǡǣǤǥǦǬǭǰǴǼǽǿ dfgjlnopqrsvwyz{}~ՀՁՂՃՆՊՋՌՍՎՏՑՒՓՔՕՖ՗՘ՙ՚՛՜՝՞՟ՠաբգդզէըթժիլխծկհձղճմյնշոչպջռսվտ $,-/18<@HILMTpqtxzȀȁȃȅȆȇȋȌȍȔȝȟȡȨȼȽ ,4PQTX`aclpt|ɈɉɌɐɘəɛɝ !"#%&'()*+,./01234567:; )LMPT\]_`ah}ʄʘʼʽ !AHILPXY]dxy˜˸ !"'(),.089;=>?ABCDFGJLNOPRSVWYZ[]^_`abcdefhjklmnorsuvwxyz{|}~րցւքֆևֈ։֊֋֎֏֑֖֛֢֣֤֥֦֧֪֚֒֓֕֗֘֙֜֞֠֩<=>DEHLTUWXY`dfhpų̴̵̸̘̙̜̠̩̫̬̭̼ $(,9\`dlmoqx͈͔͕ͤͥͧͩ͘͜Ͱ  !$(0135Ϋֱֲֳִֵֶַָֺּֽ֭֮֯־ֿ XY\_`ahikmtux|΄΅·ΉΐΑΔΘΠΡΣΤΥάέ $,-/018TUX\degipqtxπυόϡϨϰ-458<!"#$%&'*,./0123679:;=>?@ABCEFHJKLMNORSUZ[\]^_bdfghjkmnoqrsuvwxyz{~׀ׂ׃ׅׄ׆ׇ׊׋DEGIPTX`lmpt|}ЁФХШЬдезй 0148:@ACDELMPT\]_ahl|фшѠѡѤѨѰѱѳѵѺѼ ,-04<=?AH\ҍ׎׏בגדהוזחךלמןנסעףdҀҁ҄҈ҐґҕҜҠҤҬұҸҹҼҿ  !%(),089;<=DE|}ӀӄӌӍӏӐӑӘәӜӠӨөӫӭӴӸӼ@D\`dmoxy|ԀԂԈԉԋԍԔԩ <=@DLMOQXY\`ehikmtux|ՄՅՇՈՉՐե $-89<@EHIKMQTUX\gipqtփօ֌֍֐ְֹֻ֔֝֟֡֨֬ ()+-458aha9eiouvv{˄U[QW|(PSE\]bncdd np[yݍ}E~NNeP]^aWiqTGu+^NPpg@h QRRjwԞR/`HPacdkLp/tt{PŃܕ(.R]`bOIQ!SX^f8mprsP{[fSckVNPJXX*`'abiA[}_NPTU []]*eNe!hKjrvw^}N߆NʐUNEN]NNOwQR@SSSTVuWW[]^abQeggiPkkkBlnxprstwwvz}  ߂b3dҙEם W@\ʃTzو͎XH\cz[_yzz&P8RRwSWbrc km7wSWshvՕ:gjpom̎Kwfxk<S-WNYcisExzz|us5RGWGu`{̃XjKQKRRbhuiPRRae9hi~tK{냲9яI NYdfj4tyy~_ & OS%`qbrl}f}NbQwOOvQQUhV;WWWYGYY[\]]~^_beegg^ghh_j:k#l}llms&t*tttxuuxxAyGyHyzy{}}-OHw!$Qe}vO TbThёU:Q Za bbfVq OczcWS!g`isn"7u#$% }&'rVZ()*+,CN-gQHYg.sYt^dy_l`b{c[[R/tY)_`012Yt345678љ9:;<=>?@ABCoDE`FGfHI?\JKLMNOPQZ%{g}RSTUVWXY<\l?SnY69NNFOUWXV_eejkMnwz|}ˆ2[dozsuTVUMWadfm[nmoouCANJZlSuT{]UXXXb^bdhvu|NWnW'Y \\6^_4bds۞[_`PR0RW5XWX\`\\]^_`ccdChhjm!nnoqvywy;zHSMvܗkpXrrhscwy{~X`feeflqqZmNzNQQR TaqgPhhm|ouwzc\Qe\gguzsZF-o\Ao _]Yjq{vI{'0Ua[iv?\mpsa}=]j^NuSkk>pr-LRP]d,ekoC|~ͅdb؁^gjmrtotސO ]_ QceuNPiQQhj|||oҊϑO7QRBT^na>bejo*y܅#bjΞRfwkp+ybBab#e#oIqt}o&#JQRR mpˆ^eko>|usN6OV_\]`s-{F4HaOoyR`ddj^oprv\2ouxy}Ƀ֊X_'g'pt`|~!Q(pbrxŒڌNP[^eqBvwJ|'XAZb\jmo;v/}7~8KRegiAmnp t`tYu$vkx,^mQ.bxO+P]m}*_DahaRQQ^iz}uO)RSTUe\`Nghlmrrttbul|yψ̑БɛT~oqtWgm3t,xz {|idjtuxxT[U^ oNMS)Z]N_ba=ciffn+ocpw,;E;Ub+gl jzNY__g}T+WYZ['fghkdqu㌁EL@_[lsvv QMQQRhlw w}}bnQ T}Tff'invw„iOQRY=^Uaxdydfg!jkk_rarAt8ww((glgrvfwFzkl"Y&goSXY^c4fsg:n+szׂ(R]aa bbdeYifkk!qs]uF~j'aX؞PR;TOUevl } }^RlirsTZ>\K]L__*ghcieee fginx!}+*2 POcW_bcogCnqv̀ڀ)Mj/OpO^g"h}v~vDa^ jiqqjudA~CܘOO{pQ^h>lNllr{l:tPRXdjtVvx9e^S_%RwINPuQ[\w^f:fghpuuyz' O!X1X[nfekmzn}os+u܈\OPS\S[_ gyy/9;,gvNOIY\\\gchpq+t+~"Ғ NNOPVRoR&TTW+YfZZ[u[[^fvbweenmn6r&{?|6PQ@tܑDٙSR)TtVXTYnY_anbf~lqv||}g[O__b)] gh|xC~lNPS*SQSYbZ^`aIbybegikkkklh5tuxxyy|}>船l^ۘ;V*[l_ejk\mop]rsӌ;a7lXMNNNN:Oy@y`yy{}r} фdž߈P^܌fߙJRigjP*Rq\ceUls#uu{x0wNdk^q NkIghnkco NPPQFUUV@[\\8^^^^`QhajXn=r@rrvey{saތ^XtUlaz"}rrru%um{XX]^^_U`bcMefffhhr^tn{n}}r͞ YmY-^`fsfgPlm_owxƄˑ+NPHQU [[Gb~ee2n}qtDtttlvy}U~z9ux%MhSQ\Til)m+n ;-gaRfk~ ]emqnWY['``bf_f)ssvwl{VreNRrkmz9{0}oS/VQX[\\]@bcd-fhlmnppq&uuuv{{+| }9},m4 a7Ol\_gm|~k[] d\ᘇs[`~gm 7RpQpxpבOSUVWXZ[\\%^a bKbcd6exe9jk4lm1oqrxstt&vawyWzz|}}a~)1ڄꅖ8Bl֖ӚS~XYp[[mZoq!tt]__B`ehoiSjk5mmsvwM{}#@cbĊ bSe]']i]_thob6rNXNPRGSbfi~^OS6VYZ8\N\M\^_C`e/fBfggsw:ÿ́fiUzW[_o`b ik\nq{UXߘ8OOO{T Z[T3TUbXXgYZ[`aVeedfhZlopqRs}{2K\lDss:netviz~ @QXdtupv͖T&ntzzنxIZ[[hicmst,tx}UL.f_egjls-PZjkwYl]]%sOuPQ/X-YYY[]bdddfHjqdtzzG~^~p YR~a2ktm~%OPQRWX[^Baimgnnqbt(u,us8Ʉ ޓNQOvP*QSSS[[$\aae[rs@tvPyyy}Յ^GꑅRg_e1f/h\q6z NRjkoqSK1NqĖCQSTWWWZZ[(`?acl9mrnn0r?sWtтE`bXg^MOIPPqS WYZ \paf-n2rKt}Àf?_[U˗OsNOQjQ/UUz[[|^}^^``a ac8e gggaibil'm8no6s7s\t1uRv}8Ոۊ0BJ>zIɑn XkAQkY9\dosbph}Wi`GakYNTm-pclQaOPQ[aadikuwdcpNN O7YY]_[_!`>rspuuy 3Q 7pvNNRpSTVY[__nnj}5mwNZO~OXen8NXYYA`zOÌeQDSNiRU[N:RTYYP[W[\[c`Hanpnqstux+}(Ʌnj̖\ORVe(f|pp5r}Lrq[hkzov\f[o{*|6ܖNN S4XXXlY\3^^5_cfVgjj k?oFrPstz|x߁灊l#υ݈wQT(W[MbPg=hh=nn}p!~ KN-r{͊GONO2QTY^bugnijlnr*su{5}W[Ζ_R TZ[XduenrvMz{M|>~{+ʌd_iѓCOzOPhQxQMRjRaX|X`Y\U\^`0bhkloNq t0u8uQurvL{{{{~n>I?"+ZkR*bbYmdvz{v}`S\^8op|ޞczdvNNN\PuPHTY[@^^^_`:c?eteevfxfghijck@lmmn^nppss:u[wxy z}z|}Gꊞ-Jؑf̒ V\6RR|U$X^_`chomy,{́Dd=LJOFQQR2V_k_cdeAfffghhionogqq*rt:wVyZyy zz||D}p~T m;Ֆe|ÓX[ \RSbs'P[_`kahm.t.zB}}1~k*5~POPW]^+cj;NOOOZPYĀjThTUOY[]^]f1gg*hl2mJnopsuL|},}}ۆ;p31NRDЙz|OQQW[\Yf=jZmno qouz"!u˖-NNF͑}SjkiAlzXafbpuuR~IKNST0W@W_ccod/eezfggbk`ll,ow%xIyWy}󁝂rvz7zT~wUUuX/c"dIfKfmhik%mnshtt[uuvwwy ~~/:ь뎰2csOSYZ^Nhtuyz̍폟egWWo}/Ɩ_aoNOPSUo]]!kdkx{IʎnIc>d@wz/jdoqttz|~|~ }L9R[d-g.}PSyXXaYaaez P!PuR1UUXY`Sbb6gUi5@ݙ,PSSDU|WXbdkfgoo"t8t8QTVfWH_aNkXpp}jY+cw=TX-di[^oniLQS*Y `Kakpll{΀ԂƍdodeNQTW_avhuR{q}Xi*9xPWYYb*]ayr֕aWFZ]bddwgl>m,r6t4xwۍ$RBWgHrt*kQSLciOU`WelmLrrzm_opaOOPAbGr{}MjWs^g U T[c^^ _e=[HOS SSTTW^`bbUclfmu2xހ/ނa E^ffprO}Rj_SaSgjothyhyǘĘCTzSiJ|_buvB9S<__lsbuuF{ON< NUOSY^0flUtwfPXx[P[h``eWl"oopUPӗrRDQ+TTcUUjm}fwyTTv䆤ԕ\N OYZ]R`bmgAhl/n8* NUPTWZYi[[awiwm#pr犂홸R8hPx^OgGLNTVs WSVX[1aj{sҎGkWUYrkiO\&_a[flpsss)wMwC}b}#~7R IoQ[tz@ZOTS>Y\>cymrϒ0NDQRWb_lnpPppqsitJanQW_`gafYJNNN|TXX}Y\'_6bHb fgfkimmVnnooo]pr%tZttv\y|~ဦkN_twje`bwZZfm>n?tB_`{T_^ll*mp}y ;ST[:jkpuuyyqAt d+exxkz8NUPY[{^`cakefShneqt}i%;mn>sAʕQL^_M``0aLaCfDfil_nnboLqtv{'|RWQÞ/SV^_b``affgjmoppjsj~4ԆČRrs[kjTV][Heefhmm;ruMOPST?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~סơҢ¥åĥťƥǥȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإѬҬӬԬլ֬ج٬ڬ۬ܬݬެ߬׬ӢԢǡȡءɡ٧ʡբآ֢٢עӡԡġС󡱢š񡭡֡ա¡áѡҡͩΩϩЩѩҩөԩթ֩שة٩ک۩ܩݩީߩͨΨϨШѨҨӨԨը֨רب٨ڨۨܨݨިߨ模ȦǦ¦ƦŦĦæɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צئ٦ڦۦܦݦަߦ䦶ƢâǢȢˢʢɢ̢⡺䡸ߡޡ¢ۡݡܡĢŢڡ١Ϣ΢ТѢϡΡۢ͢ܢݢڢ롲ªêĪŪƪǪȪɪʪ˪̪ͪΪϪЪѪҪӪԪժ֪תت٪ڪ۪ܪݪުߪ󪡫«ëīūƫǫȫɫʫ˫̫ͫΫϫЫѫҫӫԫի֫׫ث٫ګ۫ܫݫޫ߫¤äĤŤƤǤȤɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤۤܤݤޤߤ©éĩũƩǩȩɩʩ˩̩ߢ¨èĨŨƨǨȨɨʨ˨̨ޢɧʧ˧̧ͧܧݧާԧէ֧קا㧿§çħŧƧǧȧΧϧЧѧҧӧڧۧ짦ᢼߧ߾߻ݦΰܪͯӫ޺Ϋ˥ܭ˯ޣެΤբпˤܹԵӵ֤ڶޡӷۢնִק٥յ̵Ӹ̨۷ʧ˰ܨˡκкͿױͲط΢ԧթ֢սݷע߾Ӥ޻зܧ۱˥ͥʫоҤ̶ٲִ٧гΨݵΡҡϨڳܦܿʰקϽϯͣϰЯʻԣ٨٩ͫ͢ڧٺΦ̺ӯ˼ԪʽΤӫЪ޸ʥ߰޿ͷֳӥТУЩۻʦ̦ͤϯӱ˼ܧΫ˱ߺ۵ӵֽЪҨӸЯܥдݳҿʿأ٫˯ʩަإجڰ߾ͦݯ̵ͩܵε˾ϥڨϣҬްܻӳۦҭϩӦ׵ԣӿ߱ݮʹաͧ٬Ы˼ۨެ߶٬غҴܹʳ߼̤Ө߬˼߿ժϩַҰ˰˯ڶاӲް۵׭ڣ޽Υ߿ʸӤڴ˴̾رʴ̯˪ջԨʫѤʸծ۶ݢЦٹˬϸͦѥөѺ߷٫ڸӤڳاٹڵӶֺнΫըͯڭʤݦٰЮӰөͰж̯ʻټԥվѢٱϮʴ׺ԣپѰͫʮʮۻʯʰҺۻЫ̨߸ͩެͺ۲ڥѸؤ͵ߡԲ٫٢Ьݴ״ڰΪ˧էڧԦӬռʧϢֲٽظԾݾبѩ޵۱ˮСڽ̩ѪةޯڲҼܩη׺שݱ̼Ͼ߹ˤʷٴڪ۵ھܹ׵Ϩݢͮҵͻռذھֳ׻ߥӶӭޣֻմΥ̧˩̲ܶ٥ֿغܢִݬ߳Գ޿٪׻έլ٢ϼ֮޼ڱڦ߳ͰܴׯͮߢЯۿܴʤߧѤУںٴӱѱ˲Ѳ˹ʷʻӦڻױʨԡدپح̺ϸϭδݲݳʡܵظ֯ڨ̴ڧ޵ѶѷѳС֪ТԳ޼ܶΩעԳʦԸϢԼԵʮجݯ֫Ч˨ڹѩ̷߰Ω۪֭ݾ׷ݣ˶էͬкڣڡε߹׬ڿΩ޴˾̽׻Ѫ٣ͶԿծ̢Լ˸;ֺ֧ݻͺѾϻѼ֡ީڤ׿ѫͶݷ̸ۤҷرݰݷۮͱݯأԢ׻ϬϨޢݩسԹۺٴٴϾͷ۵ثټܼݵ϶ТФףը٪߼޾ܥ֡ܽߥۯϹڹ;Էۿա˥ڽޱ٫Ӣʷоٷͬͮץۣղ۳ةܮ̮̭պʰߺݪҾϬμ٦ΦְʱԺުЦ̧޻Ԩͬѥٯݯ͸ާΡϿӨָ߾йѱݿ֯ˡ˰Բϳְ־ܭά͸ުڼ̻αԱϲܧԹ˭سثܤخ۾ϻݬӷ٬Ԣ֭ܧ˼ѱٸ͹֧εӹ̯סڦ۱ܽݰؽ׶Ͱ̢зִݣڳ٬֤ܸ޼عϽ̣ިι͵ܽѮܰϽʿ޴ѾϤ̾Ѿ͵ͣؾˮܰ̽٣ϯ֤ثӽڨܣͩ޺ϡABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxy°zðİŰưǰȰɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ۰ܰݰް߰᰽ÁāŁƁǁȁɁʁˁ́́΁ρЁсҁӁԁՁցׁ؁فځہ܁݁ށ߁ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz±ñıűƱDZȱɱʱ˱‚ÂĂłƂǂȂ̱ɂʂ˂̂͂΂ςЂͱαт҂ϱӂԂՂбւׂ؂قڂۂ܂ѱұ݂ӱނ߂ԱձֱױرABٱCDڱ۱ܱEFGHIJݱޱK߱LMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz鱄걅챆𱊃񱋃򱎃󱏃ƒÃăŃƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃփ׃؃كڃۃ܃݃ރ߃შ⃫僬샭탯󃲲ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz²òIJŲƲDzȲɲʲ˲̲Ͳβϲв„ÄѲĄńƄDŽȄɄҲʄ˄̄Ӳ̈́΄τԲЄф҄ӄԄՄքղֲׄ؄لײڄۄ܄݄ބ߄زٲڲ۲AܲBCDEFGݲ޲߲HIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzﲋ𲎅򲕅󲟅…ÅąŅƅDžȅɅʅ˅̅ͅ΅υЅх҅ӅԅՅօׅ؅مڅۅ܅݅ޅ߅兢煤ꅥ񅦳򅨳󅩳ABCDEFGHIJKLMNOPQRS³óTUVWXYijųZaƳbcddzefghijkȳlmnoɳpqrstuvwxyzʳ˳̳ͳγϳгѳҳӳԳճֳ׳سٳڳ۳ܳݳ޳߳ᳺ⳼㳿†ÆĆņƆdžȆɆʆˆ̆͆ΆφІц҆ӆԆՆֆ׆؆نچۆ܆݆ކ߆ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz‡ÇćŇƇLJȇɇʇˇ͇̇·χЇч҇ӇԇՇևׇ؇هڇۇ܇݇އ߇쇵򇷴ABCDEFGHIJKLMNOPQRSTUVWXYZabc´defôĴŴghijkƴǴlȴmɴʴnop˴q̴rstʹuvwδxyzϴдѴҴӴԴմִ״شٴڴ۴ܴݴ޴ߴᴦ䴩鴪촭𴹈󴺈ˆÈĈňƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈وڈۈ܈݈ވ߈ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzµõĵŵ‰ÉĉʼnƉljȉɉʉˉ͉̉ΉωЉщƵ҉ӉԉՉ։׉؉ǵىډۉȵ܉݉މɵ߉ʵ˵̵͵ABCDEFGHIJKεϵLMеNOPѵQRSTUVWҵӵXԵYյZabcdeֵfghijklmnopqrstuvwx׵yzصٵڵ۵ܵݵ޵ߵ൶ᵹ⵼ŠÊĊŊƊNJȊɊʊˊ̊͊ΊϊЊъҊӊԊՊ֊׊؊يڊۊ܊݊ފߊABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz‹ËċŋƋNjȋɋʋˋ̋͋΋ϋЋыҋ¶öĶӋԋՋ֋׋؋Ŷًڋۋ܋݋ދߋƶABCDEFGHIJKLMNOPǶȶQRɶSTUʶVWXYZabcdefg˶hijklm̶nopqrstͶuvwxyzζ϶жŒÌČŌƌnjȌɌʌˌ̌͌ΌόЌьҌӌԌՌ֌׌،ٌڌی܌݌ތѶҶߌӶԶնֶ׶ABCDEFGHIJKLMNOPQضRSTUVWXYZabcdefghijklmnopqrٶstuڶvwx۶yzܶݶ޶߶ණᶭ㶯嶶涷綿ÍčōƍǍȍɍʍˍ͍̍΍ύЍэҍӍԍՍ֍׍؍ٍڍۍ܍ݍލߍABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz·÷ķŷƷǷȷɷŽÎĎŎƎǎʷȎɎʎ˷ˎ͎̎ΎώЎюҎӎԎՎ֎̷׎ͷ؎َڎێ܎ݎގߎηϷзѷҷӷԷշַ׷ABCDEFGHطIJKLMNOPQRSTUVWXYZabcdefghٷijklmnoڷpqr۷stuܷvwxyzݷ޷߷ළ᷋ⷎ㷑䷙巚淛跡鷣귦췭ﷵÏďŏƏǏȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏۏ܏ݏޏߏABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz¸øĸŸƸǸȸɸʸ˸̸͸θϸиÐĐŐƐѸǐȐɐʐː̐͐ΐϐАѐҐҸӐԐՐ֐אِؐڐېܐݐސߐӸԸոָ׸AظٸBڸC۸ܸDEFGݸ޸߸HIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz񸖑󸗑‘ÑđőƑǑȑɑʑˑ̑͑ΑϑБёґӑԑՑ֑בّؑڑۑܑݑޑߑᑢ鑣ꑤ둥񑦹ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz¹ùĹŹƹ’ÒĒŒƒǹǒȒɒȹʒ˒̒ɹ͒ΒϒВђҒӒʹԒՒ˹֒גْؒڒےܒݒޒߒ̹͹ιϹйѹABCDEҹӹFԹչֹG׹HعIJٹڹ۹ܹݹKL޹߹MNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz“ÓēœƓǓȓɓʓ˓͓̓ΓϓГѓғӓԓՓ֓דؓٓړۓܓݓޓߓ⓷ABCDEFGHIJKLMNOPQºRSTUVWXYZabcdefúghijklmĺnopqrstuvwxyzźƺǺȺɺʺ˺̺ͺκϺкѺҺӺԺ”ÔĔŔƔպֺǔ׺Ȕغɔʔ˔ٺں̔ۺ͔ΔϔДєҔӔܺԔՔ֔הؔٔڔ۔ܔݔޔݺߔ޺ABߺCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzﺈ𺉕򺭕󺯕•ÕĕŕƕǕȕɕʕ˕͕̕ΕϕЕѕҕӕԕՕ֕וٕؕڕەܕݕޕߕᕲABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz»ûĻŻƻ–ǻȻÖĖɻŖƖǖʻȖɖʖ˖̖͖Ζ˻̻ϖЖіͻҖӖԖՖ֖זٖؖږۖܖݖޖߖABCDEFGHIJKLMNOPQλRSTUVWXYZabcdefghijklmnopqrϻstuvwxyzлѻһӻԻջֻ׻—×ėŗƗǗȗɗʗ˗̗͗ΗϗЗїҗӗԗ՗֗חؗٗڗۗܗݗޗߗػABCDEFGHIJKLMNOPQٻRSTUVWڻXYZۻabcܻdefghijݻ޻klmnopqrstuvwxyz߻໗ộ⻜代廤滥軫껬𻳘󻴘˜ØĘŘƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ٘ژۘܘݘޘߘ☩嘪옫𘬼ABCDEFGHIJKLMNOPQR¼üļSTUVWXżƼYZǼabcȼdefghijɼʼk˼̼ͼlmnopqμrstϼuvwмxyzѼҼӼԼռּ׼ؼټڼۼܼݼ޼߼༦ἲ⼸㼻伾™ÙęřƙǙșəʙ˙̙͙ΙϙЙљҙәԙՙ֙יؙٙڙۙܙݙޙߙABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz½šÚĚŚƚǚȚɚʚ˚͚̚ΚϚКњҚӚԚ՚֚ךؚٚښۚܚݚޚýĽߚŽƽǽȽɽʽ˽̽ͽνϽнѽҽӽԽսֽABC׽ؽٽDEڽFGH۽IJKLMNOܽݽPQ޽߽RSTUVWXYZabcdefghijklmnopqrstuvwxyz⽛㽝你彡罦齨꽮뽱콴›ÛěśƛǛțɛʛ˛̛͛ΛϛЛћқӛԛ՛֛כ؛ٛڛۛܛݛޛߛABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzœÜĜŜƜǜȜɜʜ˜̜͜ΜϜМќҜӜԜ՜֜ל؜ٜڜۜܜݜޜߜꜭ񜮾ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÝĝŝƝǝ¾þȝľɝžʝ˝̝͝ΝϝƾǾНѝȾɾʾҝ˾̾;ӝԝ՝֝ξϾоםѾҾӾ؝ٝڝԾվ۝־׾ܝݝؾޝߝپھ۾ܾݾ޾߾ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz¿ÿĿſƿǿȿɿʿ˿̿ͿοϿпѿҿӿԿտžÞĞŞƞǞֿ׿Ȟɞؿʞ˞̞͞ΞϞОўҞӞԞٿ՞֞ڿמۿ؞ٞڞ۞ܞݞܿݿޞߞ޿߿ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzŸßğşƟǟȟɟʟ˟̟͟ΟϟПџҟӟԟ՟֟ן؟ٟڟ۟ܟݟޟߟABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz àĠŠƠǠȠɠʠˠ̠͠ΠϠРѠҠӠԠՠ֠נؠ٠ڠ۠ܠݠޠߠ࠹ᠺ栻砽蠾ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz¢ž¤ ¦ABCDEFGHIJ¬K®¯LMNOPQ±RSTUVWXYZabcµd·¸efghijklmnopqrstuvwxyz„ABCDE½FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz’ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz…ŒŸABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz„†‰“™ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz•ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz’•œŸABCDEFGHIJKLMN¡âãOPQRSåTUVWXYZabcdeéfëìghijklmnopqrstuvwxyzÃABCDôEFGHIJKLMNOPøQúûRSTUVWýXYZabcdefghijklmnopqrstuvwxyzÊÑÔABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÞABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÅÆÇÍàABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÂÅÈÏÓÙÛÞABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnĢopqrĥĦstuvwxĨyzāĬćĉČİēĔĕĴěĝĠABCDEFĸGĺĻHIJKLMĽNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzďđēĚěABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzĐĒĕĜĝĞABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzćĚABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzćčABCDEFGHIJKLMNOPQRŢSTUVWXYZabcdefghijklmnopqrstuvwxŪyzŁńŮŋŎABCDEFGHIJKLMNOűPQRSTUVWXYZaŵbcdefghiŹjklmnżopqrstžuvwxyzłńŇŎŏŕABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzłŃʼnŋŎŕŖŗŝŠABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzŁňʼnŊŎŏŒABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzŁłňABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƣƘƚƝABCƧDEFGHIJKLMNOPQRSTUVWXYZabcdefghiƯjklmƲnopqrsƵtuvwxyzƃƆƉƻƐƽƚƜƟABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƆƉƌƓƕƛABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzLJABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzǫdžLjǮNJNjDZǐǑǒǘABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzLJljǑǔǗǞǠABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzDžLJNJǑǒǓǙǛǞABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzǁ‚ƒ„…†LJˆ‰NJ‹Œ¡ȍŽ‘’“”¢ȕ–—˜™š›œž£Ȥȟ ¥ABCæDEFGçHIèȩJêKëLMNìOPíȮQRïSTUðVWXYZabcdeñfòghijklóȴmnõopqrstuvwxyzÁÂöȃ÷ȄÅÆÇÈÉøȹȊËúȌÍÎûȏÐÑÒÓÔÕÖüȗýȘþșÚÛÜÝÞÿȟàABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzāĂȃĄąĆȇĈĉĊċČȍĎȏĐđȒēĔĕĖėĘęĚěĜĝȞğĠABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzŁȂȃȄŅņȇňȉŊŋȌōŎȏŐőŒœŔŕȖŗŘșŚśŜŝŞȟŠABCDEFGHIJKLMNOPQRͭϢиѢңҧҨҩҪҫҭҲҾԥիծոۥܥ޳£ãģţƣǣȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڣۣݣޣߣˡ̡͡ܣ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~&'1238?@ABIJKRSfg !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOQ     ! % & 0 2 3 ; t  ! !!!!!"!&!+!S!T![!\!]!^!`!a!b!c!d!e!f!g!h!i!p!q!r!s!t!u!v!w!x!y!!!!!!!!!!!!!""""" """""" "%"'"(")"*"+","."4"5"<"="R"`"a"d"e"j"k"""""""#`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$t$u$v$w$x$y$z${$|$}$~$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%% % %%%%%%%%%%%%%%%%%%% %!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&@&B&`&a&c&d&e&g&h&i&j&l&m&00000 0 0 0 0 00000000A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0{0|0}0~000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000112131415161718191:1;1<1=1>1?1@1A1B1C1D1E1F1G1H1I1J1K1L1M1N1O1P1Q1R1S1T1U1V1W1X1Y1Z1[1\1]1^1_1`1a1b1c1d1e1f1g1h1i1j1k1l1m1n1o1p1q1r1s1t1u1v1w1x1y1z1{1|1}1~11111111111111111222222222 2 2 2 2 2222222222222222`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2q2r2s2t2u2v2w2x2y2z2{2233333333333333333333333333333333333333333333333333333333333333333333333333333333NNNNN N N N NNNNNNNN-N2N8N9N;NBNCNENKNMNNNONVNXNYN]N^N_NkNmNsNvNwN~NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNO O O O OOOOO/O4O6O8O:OTBTHTJTQThTjTqTsTuT{T|T}TTTTTTTTTTTTTTTTTTTTTTTTTUUUUUU/U1U5U>UDUFUOUSUVU^UcU|UUUUUUUUUUUUUUUUUUUUUUUUUUUUV VVV/V2V4V6VSVhVkVtVVVVVVVVVVVVVVVVVWWW W WWWWWW(W-W0W;W@WBWGWJWMWNWPWQWaWdWfWjWnWpWuW|WWWWWWWWWWWWWWWWWWWWWXXXXX X XX!X$X'X*X/X0X1X4X5X:XJXKXOXQXTXWXXXZX^XaXbXdXuXyX|X~XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYY"Y'Y)Y*Y+Y-Y.Y1Y7Y>YDYGYHYIYNYOYPYQYTYUYWYZY`YbYgYjYkYlYmYnYsYtYxY}YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZ Z%Z)Z6Z\?\@\E\F\H\K\M\N\Q\U\[\`\b\d\e\l\o\q\y\\\\\\\\\\\\\\\\\\\\\\\\] ]]]]]]]'])]K]L]P]i]l]o]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^ ^^^^^^%^+^-^3^6^8^=^?^@^D^E^G^L^U^_^a^b^c^r^s^t^w^x^y^{^|^}^~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^__ __________&_'_)_1_5_:_<_H_J_L_N_V_W_Y_[_b_f_g_i_j_k_l_m_p_q_w_y_|_______________________________________````` `!`%`'`(`*`/`A`B`C`M`P`R`U`Y`]`b`c`d`e`h`i`j`l`m`o`p`````````````````````````````````````aaa a aaaaaaa'a0a4a7aa?aBaDaGaHaJaKaLaSaUaXaYa]a_abacadagahakanapavawa}a~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbb b b bbbbbbbb!b*b.b0b1b4b6b>b?b@bAbGbHbIbKbMbSbXbnbqbvbyb|bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcc cc+c/c:c;c=c>cIcLcOcPcUcgchcncrcwczc{cccccccccccccccccccccccccccccccc dddddd"d,d-d:d>dXd`didodxdydzddddddddddddddddddddddddddddddddddddeeee#e*e+e,e/e6e7e8e9e;e>e?eEeHeMeNeOeQeVeWe^ebecefelemereteuewexe~eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeff f f ffffffffff f%f'f(f-f/f0f1f4f6f:f;fAfBfCfDfIfKfOfYf[f]f^f_fdfefffgfhfifkfnfofsftfvfwfxfzfffffffffffffffffffffffffffffffffffffffffffggg g g gggggggg&g'g(g*g+g,g-g.g1g4g6g:g=gFgIgNgOgPgQgSgVg\g^g_gmgogpgqgsgugwg{g~gggggggggggggggggggggggggggggggggggggggghhhh!h"h*h/h8h9hkFkGkLkNkPk_kakbkckdkekfkjkrkwkxk{kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllll#l4l7l8l>l@lAlBlNlPlUlWlZl]l^l_l`lhljlmlplrlvlzl}l~llllllllllllllllllllllllllllllllllllllllllllllll m mmmmmm%m'm)m*m2m5m6m8m9m;m=m>mAmYmZm\mcmfmimjmlmnmtmwmxmymmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnn n!n#n$n%n&n+n,n-n/n2n4n6n8n:nnCnDnJnMnVnXn[n\n^n_ngnknnnonrnsnznnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooo o"o#o+o,o1o2o8o?oAoQoToWoXoZo[o^o_obodomonopozo|o}o~oooooooooooooooooooooooooooooooooooppp p ppppppppppp#p'p(p/p7p>pLpPpQpXp]pcpkpppxp|p}ppppppppppppppppppppppppppppq q qqqq!q&q0q6qGqIqJqLqNqPqVqYq\q^qdqeqfqgqiqlqnq}qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrr*r,r-r0r2r5r6r:r;r=r>r@rFrGrHrLrRrXrYr[r]r_rarbrgrirrryr}rrrrrrrrrrrrrrrrrrrr sssss%s)s*s+s6s7s>s?sDsEsPsRsWshsjspsrsusxszs{sssssssssssssssssssssssssssssssssssssssssttttt ttt t!t"t%t&t(t*t+t,t.t/t0t3t4t5t6t8t:t?t@tAtCtDtKtUtWtYtZt[t\t^t_t`tbtdtethtitjtot~tttttttttttttttttttttttttttttttttttuuuuuuuu#u%u&u(u+u,u0u1u2u3u7u8u:uGuLuOuQuSuTuYu[u\u]ubueufujuoupuuuvuxuzuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuv vvv v!v"v$v&v;vBvLvNvRvVvavdvivlvpvrvxv{v|v}v~vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwww w ww w)w7w8w:wy@yAyGyHyIyPyVyWyZy[y\y]y^y`yeyhymyzyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzz z zzzzzzz z.z1z6z7z;z|?|C|L|M|`|d|l|s||||||||||||||||||||||||}}}}}}} } } }}}}}}}} }!}"}+},}.}/}0}3}5}9}:}B}C}D}E}F}P}^}a}b}f}h}j}n}q}r}s}v}y}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} ~ ~~~~~~!~#~+~.~/~1~7~=~>~A~C~F~G~R~T~U~^~a~i~j~k~m~p~y~|~~~~~~~~~68:LPTUjknpruwy -36=?CFJVXZ^oprsw}~ÀĀ̀΀ڀۀހ #)+/9>KNPQTUefkpqxyzƁ́؁߁ !*+,5679@EGYdfnoqrvx~т҂ԂՂׂۂނ߂ (+/145689@GIJOQRsw{ŃɃʃ̃Ӄփ܃ ),18=IW[acfklouz„ĄƄɄ˄̈́фڄ!#%,-/=?ACINSYchijmɅͅ΅υՅ܅݅ -?NPTU[\^_gydžˆԆنۆ߆NUW_fhtvxć"#16;@FLMRSWY[]abchkprw~ˆψԈՈو܈݈߈%*68;AD_djr҉ #%*-146:;PTU[^`bcfimnpqrsuyŠĊNJˊ͊ϊҊ֊ۊ܊ (+,39AINOXZ\floptw}7?AFHJLUZajkyzŒÌČnjȌʌьӌڌ܌ތ dfkpstwƍˍ̍ύۍݍ *05BDGHIJY_`tvʎˎ͎̎Ҏߎ &')*/389;>?DEIMN]_bŏΏяԏ  !"#.1258<>ABGJKMNPQSTUY\]^`acimnoruwxz|}ʐސ'-2IJKLMNRbijluwxǑɑˑ̑͑ΑϑБёבܑؑݑ 4:?@EIW[^bdef̒ϒҒ !"$&(+./HJKMT[nu|~Óѓޓ%+58DQR[}wǕʕԕՕ֕ܕ!*.2;?@BDKLMP[\]^_bcdjpsuvwx}ĖŖƖǖɖ˖̖͖ΖՖ֖ٖۖܖ'029=BDHQV\^abimtwzƗ˗ӗܗ -089;FLMNTXZ^egkoĘǘۘܘߘ  (EIKLMQRTWЙљҙՙٙݙߙ+067@CEMUWZ[_beijӚԚؚ'*1?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¬ìĬŬƬǬȬɬʬˬ̬ͬάϬЬѬҬӬԬլ֬׬ج٬ڬ۬ܬݬެ߬  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~­íĭŭƭǭȭɭʭ˭̭ͭέϭЭѭҭӭԭխ֭׭ح٭ڭۭܭݭޭ߭  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~®îĮŮƮǮȮɮʮˮ̮ͮήϮЮѮҮӮԮծ֮׮خٮڮۮܮݮޮ߮  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¯ïįůƯǯȯɯʯ˯̯ͯίϯЯѯүӯԯկ֯ׯدٯگۯܯݯޯ߯  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~°ðİŰưǰȰɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ۰ܰݰް߰  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~±ñıűƱDZȱɱʱ˱̱ͱαϱбѱұӱԱձֱױرٱڱ۱ܱݱޱ߱  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~²òIJŲƲDzȲɲʲ˲̲ͲβϲвѲҲӲԲղֲײزٲڲ۲ܲݲ޲߲  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~³óijųƳdzȳɳʳ˳̳ͳγϳгѳҳӳԳճֳ׳سٳڳ۳ܳݳ޳߳  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~´ôĴŴƴǴȴɴʴ˴̴ʹδϴдѴҴӴԴմִ״شٴڴ۴ܴݴ޴ߴ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~µõĵŵƵǵȵɵʵ˵̵͵εϵеѵҵӵԵյֵ׵صٵڵ۵ܵݵ޵ߵ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¶öĶŶƶǶȶɶʶ˶̶Ͷζ϶жѶҶӶԶնֶ׶ضٶڶ۶ܶݶ޶߶  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~·÷ķŷƷǷȷɷʷ˷̷ͷηϷзѷҷӷԷշַ׷طٷڷ۷ܷݷ޷߷  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¸øĸŸƸǸȸɸʸ˸̸͸θϸиѸҸӸԸոָ׸ظٸڸ۸ܸݸ޸߸  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¹ùĹŹƹǹȹɹʹ˹̹͹ιϹйѹҹӹԹչֹ׹عٹڹ۹ܹݹ޹߹  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ºúĺźƺǺȺɺʺ˺̺ͺκϺкѺҺӺԺպֺ׺غٺںۺܺݺ޺ߺ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~»ûĻŻƻǻȻɻʻ˻̻ͻλϻлѻһӻԻջֻ׻ػٻڻۻܻݻ޻߻  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¼üļżƼǼȼɼʼ˼̼ͼμϼмѼҼӼԼռּ׼ؼټڼۼܼݼ޼߼  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~½ýĽŽƽǽȽɽʽ˽̽ͽνϽнѽҽӽԽսֽ׽ؽٽڽ۽ܽݽ޽߽  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¾þľžƾǾȾɾʾ˾̾;ξϾоѾҾӾԾվ־׾ؾپھ۾ܾݾ޾߾  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¿ÿĿſƿǿȿɿʿ˿̿ͿοϿпѿҿӿԿտֿ׿ؿٿڿۿܿݿ޿߿  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴǵǶǷǸǹǺǻǼǽǾǿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ɀɁɂɃɄɅɆɇɈɉɊɋɌɍɎɏɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼʽʾʿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ˀˁ˂˃˄˅ˆˇˈˉˊˋˌˍˎˏːˑ˒˓˔˕˖˗˘˙˚˛˜˝˞˟ˠˡˢˣˤ˥˦˧˨˩˪˫ˬ˭ˮ˯˰˱˲˳˴˵˶˷˸˹˺˻˼˽˾˿  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~̴̵̶̷̸̡̢̧̨̛̖̗̘̙̜̝̞̟̠̣̤̥̦̩̪̫̬̭̮̯̰̱̲̳̹̺̻̼̀́̂̃̄̅̆̇̈̉̊̋̌̍̎̏̐̑̒̓̔̽̾̿̕̚  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~͇͈͉͍͎̀́͂̓̈́͆͊͋͌ͅ͏͓͔͕͖͙͚͐͑͒͗͛ͣͤͥͦͧͨͩͪͫͬͭͮͯ͘͜͟͢͝͞͠͡ͰͱͲͳʹ͵Ͷͷ͸͹ͺͻͼͽ;Ϳ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~΀΁΂΃΄΅Ά·ΈΉΊ΋Ό΍ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξο  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~πρςστυφχψωϊϋόύώϏϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵ϶ϷϸϹϺϻϼϽϾϿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~рстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ҁҁ҂҃҄҅҆҇҈҉ҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӏӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹӺӻӼӽӾӿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԐԑԒԓԔԕԖԗԘԙԚԛԜԝԞԟԠԡԢԣԤԥԦԧԨԩԪԫԬԭԮԯ԰ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖ՗՘ՙ՚՛՜՝՞՟ՠաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~րցւփքօֆևֈ։֊֋֌֍֎֏֐ְֱֲֳִֵֶַָֹֺֻּֽ֑֖֛֢֣֤֥֦֧֪֚֭֮֒֓֔֕֗֘֙֜֝֞֟֠֡֨֩֫֬֯־ֿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~׀ׁׂ׃ׅׄ׆ׇ׈׉׊׋׌׍׎׏אבגדהוזחטיךכלםמןנסעף  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ȁɁʁˁ́́΁ځہ܁݁ށ߁OPQRSTUVWX`abcdefghijklmnopqrstuvwxy‚ÂĂłƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂قڂۂ܂݂ނ߂@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ƒÃăŃƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃփ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`pqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]_`abcdefghijklmnopqrstu~ˆÈĈňƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈وڈۈ܈݈ވ߈@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~‰ÉĉʼnƉljȉɉʉˉ͉̉ΉωЉщ҉ӉԉՉ։׉؉ىډۉ܉݉މ߉@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ŠÊĊŊƊNJȊɊʊˊ̊͊ΊϊЊъҊӊԊՊ֊׊؊يڊۊ܊݊ފߊ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~‹ËċŋƋNjȋɋʋˋ̋͋΋ϋЋыҋӋԋՋ֋׋؋ًڋۋ܋݋ދߋ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ŒÌČŌƌnjȌɌʌˌ̌͌ΌόЌьҌӌԌՌ֌׌،ٌڌی܌݌ތߌ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÍčōƍǍȍɍʍˍ͍̍΍ύЍэҍӍԍՍ֍׍؍ٍڍۍ܍ݍލߍ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ŽÎĎŎƎǎȎɎʎˎ͎̎ΎώЎюҎӎԎՎ֎׎؎َڎێ܎ݎގߎ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÏďŏƏǏȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏۏ܏ݏޏߏ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÐĐŐƐǐȐɐʐː̐͐ΐϐАѐҐӐԐՐ֐אِؐڐېܐݐސߐ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~‘ÑđőƑǑȑɑʑˑ̑͑ΑϑБёґӑԑՑ֑בّؑڑۑܑݑޑߑ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~’ÒĒŒƒǒȒɒʒ˒̒͒ΒϒВђҒӒԒՒ֒גْؒڒےܒݒޒߒ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~“ÓēœƓǓȓɓʓ˓͓̓ΓϓГѓғӓԓՓ֓דؓٓړۓܓݓޓߓ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~”ÔĔŔƔǔȔɔʔ˔͔̔ΔϔДєҔӔԔՔ֔הؔٔڔ۔ܔݔޔߔ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~•ÕĕŕƕǕȕɕʕ˕͕̕ΕϕЕѕҕӕԕՕ֕וٕؕڕەܕݕޕߕ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~–ÖĖŖƖǖȖɖʖ˖̖͖ΖϖЖіҖӖԖՖ֖זٖؖږۖܖݖޖߖ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~—×ėŗƗǗȗɗʗ˗̗͗ΗϗЗїҗӗԗ՗֗חؗٗڗۗܗݗޗߗ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr˜ØĘŘƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ٘ژۘܘݘޘߘ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~™ÙęřƙǙșəʙ˙̙͙ΙϙЙљҙәԙՙ֙יؙٙڙۙܙݙޙߙ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~šÚĚŚƚǚȚɚʚ˚͚̚ΚϚКњҚӚԚ՚֚ךؚٚښۚܚݚޚߚ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~›ÛěśƛǛțɛʛ˛̛͛ΛϛЛћқӛԛ՛֛כ؛ٛڛۛܛݛޛߛ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~œÜĜŜƜǜȜɜʜ˜̜͜ΜϜМќҜӜԜ՜֜ל؜ٜڜۜܜݜޜߜ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÝĝŝƝǝȝɝʝ˝̝͝ΝϝНѝҝӝԝ՝֝ם؝ٝڝ۝ܝݝޝߝ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~žÞĞŞƞǞȞɞʞ˞̞͞ΞϞОўҞӞԞ՞֞מ؞ٞڞ۞ܞݞޞߞ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ŸßğşƟǟȟɟʟ˟̟͟ΟϟПџҟӟԟ՟֟ן؟ٟڟ۟ܟݟޟߟ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@ABCDEFGHIJK  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~abcdefghijklmnopqrstuvwxyz{|}~000 000@>?00000N0000  <^%"\& %      00;=[]0 0 0 0 0 00000 `"f"g""4"B&@&2 3 ! &&%%%%%%%%%%%; 0!!!!0" """""*")"'"("!!"" ""#""a"R"j"k""=""5"+","+!0 o&m&j& ! %!"#$%&'()*+,-./0123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZA0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0{0|0}0~000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 !"#$%&'()*+,-./012345Q6789:;<=>?@ABCDEFGHIJKLMNO%% %%%%%,%$%4%<%%%%%%%#%3%+%;%K% %/%(%7%?%%0%%%8%B%`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s$`!a!b!c!d!e!f!g!h!i!I33"3M33'3363Q3W3 3&3#3+3J3;33333333{300!3!!22222122292~3}3|3R"a"+"."""" """5")"*"NUZ?Ta(cY"uPz`c%nefh'Weqb[Y{b}}b|[^ cfHhǕOgN OMOOIPV7YYZ \`apafipOupuy}}ÀcUz;SNNWxNXn82z(/AQpSTTVY_m-bp TS[poS\zNx&nVUk;YSfmtBVNKO SU0[q_ ffh8ll)m[tvNz4[`풲muvř`iSQW0XDY[^(`cclopqYqq?s~vт`[iXeZl%uQ.YeY__be*j'kksV,Ğ\l{QK\aƁvharYNOxSi`)nOz NSNUO=OOsORS VYZ[[yfggLklkpsyykSkWl"ooEotuv wz{!|}6f̊Qeӗ(8N+T\]sLvT/Z__`hjZtxw^NɛN|OOPPIQlQRRRSSTTUQWW}YT[][[]]]x^^^^_R`Labbc;efCffmg!hhi_l*mim/nn2uvlx?z|}}^}}T*RLaʐuq?xMؚ;[RRSTXboj_KQ;RJTV@zw`ҞDs opu_`rdkNVdWXZZh`aff9hhmu:}nBNPOSUo]]]glstxP߈PW^+cPPQgT^XY[i_Mbc=hskn}pǑrx&xmye0}܃ dR(WPgjQBW*:XiT]Wx\OJRT>d(fggzV{"}/\h9{SQ7R[bdd-gkіv֛LcvRf NPSq\`dce_hqs#u{~یxefkNN:OO:RSSUVXYYYP[M\^+^_`c/e\[eeegbk{klEsIyy|}+}󁖉^ifnj܌̖okNrtux:y 3ꁔPl_X+z[NSW1YZ[`nouꌟ[{rPga\J~Q\hcfenq>y}ʎndžPR:\Sg|p5rLȑ+[1_`;NS[Kb1gkrs.zkRQSjT[c9j}VShT[1\]Oab2myyB}M~Frt/1KlƖNOOEQAS_bgAl ncs&~͑SY[m]y.~|~XqQSO\%fwzQ_eoikmndov}]uQR@bffn^}rfRSsY^_U`dPQR SGSSTFU1UVhYY~ d_xRbcBdb-z{v} INHQCS`S[\\]&bGbdh4hlEmmg\oNq}qez{}J~z9nΌxwMRU8o6qhQyU~|LVQX\cffZiruuyVyy| }D}4;a PuRSS PUXOY=r[d\S``\cc?ccdef]iioqNuvz|}}aIXlňpmPXaӁ5 OtPGRsSo`Ic_g,nO^\ʌe}RSvQcX[k[ \ dQg\NY*YplQ>UXY`Sbg5Ui@ę(SOX[\/^_ `Ka4bfln΀Ԃ.۞ۛNS'Y,{Ln'pSSDU[Xbbblo"t8o8QSSFOTjY1]zh7rH=j9NXSVfWbceNkm[npwz{}=ƀˆ[VX>_efjk7uNJ$Pw0W_e`zf`luznE{\uzQ{Ąyz6Z@w-NN[_bm6t4xFZuO^bcWeogvLr̀)M PWZhsidqrXjyw)/OeRZSbgl}v{|6f or~Q{rx{H{ja^Qu`ukQbnzvOpbO{zVYX䆼4O$RJSSS^,deg>lNlHrrsTuA~,酩{Ƒiq=cifjuvxC*SQS&TY^|_`Ibybbekluvxy}w^ۘ j8|P>\_gk5t w;gz9Suf_񃘀<__buF{ee gllp2x+~ހ *JҒlONNPVRJWY=^__?bfgghQ!}~2 T,SP\SXd4ggrfwFzRlkXL^TY,gQvidxTWY'fgkTiU^ggR]hNOSb+glďOm~Nban+osT*gE]{\[JnфzY|l wR"Y!q_rw'a iZZQ T}TfvY]rnMQh}}bxd!jY_[ksv}2Q(gٞvbgR$\;b~|OU` }S_NQY:r6Α%_wSy_}3VgS aalRv8/UQO*QRS[}^`ac gggnm6s7s1uPyՈJĖYNYON?P|^Y[^ccdfJii mnq(uzIɄ! e} ~ab2kltmmeg<ma}=jqNuSP]koͅ-)RTe\Nghttuψ̑x_szNceuRAmn tYukx|zOnae\NNP!NQ[ehmsBvwz|oҊ|ϑuR}+PSgmq3t*W`tAXm/}^N6OOQR]`s|}o#,BTojpŒ2RAZ^_g|iijmobrr{~KΐmQy2֊-PTqjkČ`gNNkhi~nxU _NN*N1N6NYzUYPYNYZYXYbY`YgYlYiYxYYY^OOYYYYYYYY%ZZZZ ZZ@ZlZIZ5Z6ZbZjZZZZZZZZZZZZZZ [ [[2[Z*[6[>[C[E[@[Q[U[Z[[[e[i[p[s[u[x[ez[[[[[[[[[[[[[[[[[[[\\\ \\ \"\(\8\9\A\F\N\S\P\O\q[l\n\bNv\y\\\\Y\\\\\\\\\\\\\]\ ]]]\]]]]]"]]]]L]R]N]K]l]s]v]]]]]]]]]]]]]]]]]]]]] ^^^^^6^7^D^C^@^N^W^T^_^b^d^G^u^v^z^^^^^^^^^^^^^^^^^^^^^^^^_ _]_\_ ___)_-_8_A_H_L_N_/_Q_V_W_Y_a_m_s_w_____________________`_!`````)``1```+`&``:`Z`A`j`w`_`J`F`M`c`C`d`B`l`k`Y``````````````````_````Maaa``a``a!a`` aaGa>a(a'aJa?acMcdOcccccvcccccckciccccccccccd4ddd&d6ded(ddgdodvdNd*eddddddddddddddd ddbdd,eddddedeee$e#e+e4e5e7e6e8eKuHeVeUeMeXe^e]erexeeeeeeeeeeeeeeeeeerg ffesg5f6f4ffOfDfIfAf^f]fdfgfhf_fbfpffffffffffffffffff?ffffffggg&g'g8.g?g6gAg8g7gFg^g`gYgcgdggpgg|gjggggggggggggggggggggggjhFh)h@hMh2hNhh+hYhchwhhhhhhhhhjhthhhhih~hihih"i&ih ihhhh6iiihh%ihhh(i*ii#i!ihyiwi\ixikiTi~ini9iti=iYi0iai^i]iijiiiiiiiii[iiiii.jiiiiiiijji kiiijijiji jjj#jjDj jrj6jxjGjbjYjfjHj8j"jjjjjjjjjjjjjjjjjjjjjkjkk1k8k7kv9kGkCkIkPkYkTk[k_kakxkykkkkkkkkkkkkkkkkkkkkkkkkkkllll$l#l^lUlbljllllll~lhlsllllllllllllllllllmM6m+m=m8mm5m3mm mcmmdmZmymYmmmommn nmmmmmmmmmmmmmmmmm-nnn.nnrn_n>n#nkn+nvnMnnCn:nNn$nnn8nnnnnnnnnnnnnnnnnAooLpnnn?on1on2on>oonozoxooooo[oomoo|oXoooofoooooooooooooooo p popppopptoppp0p>p2pQpcppppppppppppp qpqqeqUqqfqbqLqVqlqqqqqqqqqqqqqqqqqqqqq rrr(r-r,r0r2r;rsNsOs؞Wsjshspsxsus{szsssssssssttot%ts2t:tUt?t_tYtAt\titptctjtvt~tttttttsttttttttttuuu uu uuuu&u,uz7zCzWzIzazbzizpzyz}zzzzzzzzzzzzzzzzzzzzzzzzzzz{{ {{3{{{{5{({6{P{z{{M{ {L{E{u{e{t{g{p{q{l{n{{{{{{{{{{]{{{{{{{{{{||{{`||||{{| |{#|'|*||7|+|=|L|C|T|O|@|P|X|_|d|V|e|l|u||||||||||||||||||||||;|||||}}}} }E}K}.}2}?}5}F}s}V}N}r}h}n}O}c}}}[}}}}}}}}}}}}=~}}}}}}}}}}}}}~ ~#~!~~1~~ ~ ~"~F~f~;~5~9~C~7~2~:~g~]~V~^~Y~Z~y~j~i~|~{~~}}~~~~~~~~~~~~~8:ELMNPQUTX_`higxqܘ !(?;JFRXZ_bhsrpvy}Qۀـ݀Āڀր )#/KF>SQqneft_Ɂ́сف؁ȁځ߁ )+83@YX]Z_dbhjk.qwx~߂҂ނ܂ ق5421@9PE/+#|su΃؃  " 8m*(ALONIV[Zk_lot}:A?HLNPUblxz|bȌڌ  N͌gmqsύڍ֍̍ۍˍߍ B504JGILPHYd`*cUvr|ƎŎȎˎێ  &3;9EB>LIFNW\bcdڏ!  '659OPQRI>VX^hovr}Hbې20JVXceisrɑˑБ֑ߑۑ,^WEIdH?KPZϒD."#:5;\`|nV֓דؓÓݓГȓ6+5!:ARD[`b^j)puw}Z|~ʕoÕ͕̕Օԕ֕ܕ!(./BLOKw\^]_frlΖ˖ɖ͖Mܖ Ֆ$*09=>DFHBI\`dfhRkqy|z×Ɨȗ˗ܗOz 8$!7=FOKkopqtsĘØƘ !$ ,.=>BIEPKQRLUߙۙݙؙљ+7EB@C>UM[W_bedikjϚњӚԚޚߚ"#%'()*./2DCOMNQXtʛƛϛћқԛ:   .%$!0G2F>Z`gvx *&#DA?>FH]^dQPYrozĝƝϝٝӝuy}a̞ΞϞОԞܞޞݞv!,>JRTc_`afgljwrv/XiYdtQq~H܄Op1fhfE_(NNNOO9OVOOOOOO@P"POPFPpPBPPPPJQdQQQQRRRRRSS$SrSSSSTTTTUYWeWWWWXX YSY[Y]YcYYYV[[/u[[\\\\']S]B]m]]]]!_4_g___]````` a`a7a0aabbc`dddNeff;f f.ff$fefWfYfsffffffg)fggRhghDhhhiii0jkjFjsj~jjjk?l\llollmmommmmmmm9n\n'n?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~N}L~ƒÃăŃƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃփF@ABCDEGHIJKLMNOPQRSTUVWXYZ[\]^_`pqrstuwxyz{|}~v]\efghdc񁌁YZTJUKVLWMXNYOZP[Q\R]S@ABCDEFGHIˁ́́݁΁ށさ假ځaȁɁ灒聓恚[߁⁼ہ܁@ABCDEFGHIJKLMNOPQRS@ABVXYZqrstuvwxyzkl‚ÂĂłƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂قڂۂ܂݂ނ߂JKTU@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~E[RSXei`cakjdlfn_mbgh~rsopqutꈚO㏺s^Nu叼LhۊO厥TvVRh娘揩疤T\񓰘]݌܌jiS划lYmwedtWMiߗȈ‹CNjOkPl˜Ɉތꊚx`ĘLQmfϒAȘʈZC̑Rnǘ]ØŘƘCΘјϘɘ͘gҘʘTpᗘ˘ИSoVrӘ̘UqˈDN֕WEarWsטܘژ՘ؘۘ٘ە֘MݘޘCoUZvqŒ{|ߘ[w؎Yul㘑ϗ`䋐Xt^z\ẍΕ⒒]yÎUT_{PÍbBXC͋@AlDa}EHFmGI`|KJƕVMNLQPOԘRSDזUTWVXY򈳌Z[b~[ƖeZ\}]cS_`ZaTbc~fečgh`ijkʎdnlmyopq~ustrvwexyyÙzË{}}f~MʓonؐYg񗉏ʕh䒍퍎OU܍菛nc͗hiw[wJNjuEו讓k啫΋MَܖlmkxnٔC㈽\琿ߌ™ڔ쑦PmęTřƙKopəșʙp˙З̙Ι͙~X}ϙЙqљQҙyFof󎖏rՙbpÌٙ@ڙؙ‰䑶jEiۙܙhegݒD@fNi۔܊ߙzݙޙCۓ뙡ČuatBv@]PDCiAƍENFGLKNMJwSOHISBYXOPUR[VWTZQ`ea\fPxhA^b[슅c_igridcmkpjnlkorwutQÉqsRv܉}{|~\Xxy튄ӓdXdlc͈}Ōޕyݍ\nϋVByzRؒ^C_{}|鏽Wu|x͑š‘ÚĚƚ璬ꁉgۗ̚ȚY˚h˒ǍǚUɚŚo͚mΚ敝ĒКnњ֚՚ϚҚԚǕךdؚٚښܚۚޚӚߚݚmpsᚺ누ْϕ蚃ĉ[OǙg閲VvΈ񚂉ޓt_z󚅓Dz@DA@ܔϖDJWdBEÑWiFȍGonƌψKLIWHÖPpЈQORPNPMؕVWSKkUXwYT}ZQ[_\ʼn^]kda`bcefhgilڒdjmnqopqrEstuyFЖGnjvwwxyz{}~FvG@蒶Xq鐺G{ɍQƉeh⎃ГxQ@ljJ˞RΑˎшq됮ޖċAڎKsANj͓rWjƎwԓR򊨛Z⊫Бx݊㉴sRśěۛɛƛțǛʛ˛̛ϛΛ͛՛ћЛқӛ֛כԛ؛ފٛۛڛܛݛBHIޛȌߛbJFЋsz䛟钃tȐёAX蛝y훋𛱊NKcHLݔXM{xɌNfpLf@CDB_FEAGHILJKMNUOٕPMQTU|VOo풛햷ʌWX^㎜YJeZKg[\]_`abSRc`FʍVjdeefޔihgaґmkj㌙lk]ponqrzsOtJSKEuuYZzwyOxv|{|vӑ}}P~pbIxYߔ{㖧Փfɐ҈ySđz䎷DӈŜƜĜǜÜȜɜœԑQT̜֜͜Μ՜ԜҜdSϜќԈӜʜМלc˜|Jڜޜߜܜٜ؜ݜeۜ᜛霶蜧휦圜^ʐ@ABCYDEFՑˌߖ[GˍHőKILJM}NQZOVPc}RSWTRܐe┫ZcS]d_fba[YUXSِ`qg@hminAE\kwlˆgjUҔp}Jqsoߕ{̎~xPv|{uzrt@||̍TyڐT[wdf͒}~`񒇝KghrgېE̖TQPdBohi^FC[xǓĝq~ݝsŝǝƝU֓hȝG~ɝʝ˝|Đk֍l͝ΎΝҋːϝafzVН{ӝѝԝҝ՝֝؝םٝڝU|{۝ߝVޝݝՈ̐䝷ftGc❴E蝞WWN띹AӔiqŋɉ󝋏gÈb\A@ܓBCjDFGHȋgXIJJf֙]\֑ō𘎌LK񍽒LN]MNOؖ{DQpSVURTWLjލێZmXYۖ[\aYt^ܝnf`”f]cb͐їʉ}ged_͌kiˉgmsƑuAt^_ђMpoqnvljrhĎ򍸍`̒ȓh𐲐IxZz}ji͍{jyĈ|~ˋKjVO~[挜BHdǖ_IXoֈAŒ̓֒kȑ^퓾žƋ|ɋOyT|ҞP՞YԞӞОĞÞ֞ΞɞƞǞϞ̞\ƒʞŞȞl͞מߞ؞ޞݞΒ۞ٞ䞔Wڞ➾͖鞠~ўMk@ɓh@wKGFEBDCIELHJMQNOܞRSTUӋ~WVY\ԋ\[]̉V^`_abc~c΍defgihw}cjlBkmnopqsrtiuEkvaʚBwxꕈœyіz|{~}CXiÔ`Ĕ𓇟]rDדBv򑗖͉򐑔唗@AgDבjmÒk^Fh󐴟lY_Q\CZO@ܗAUtƟҗßBişʟȟŸWɟğ˟̟[D~CǟYEύakПߟٟnԟݟQH֟͟ϟ`F۟Iӟڟ؟ܟΌÏXGҟN՟Οџןp៬ퟹ㟭anMJŖ䟠ؑHBޟYRAВQ@NIRK઒HגkEDMGFLCKOPUTVYbSLWQZX][^aZG\`_JMdhfNObcgemmjilғnPoqprsΉD܎ЍQFutRxY{vzy_׈Fb}G~|wBTSకೖŏRďVWUƏϔώFonMYRӗzWCיZܒݎꖩuЕŔv前ĖSqҍ]ࢌƔ[@\ό_ƓKTҖ—A]LPQblC_ຌʋߊD`ωEaXHdFbGc]ǔJf໌IeKgMiLhNjԗՋilڗOkຍPlQmŠZ@ZAᢊBCDFGErIHRnKJLMONᙍQPÊr[RᶐYSpTcRb\jUV[YXEW؈Ȕ\Z{L^᪗l_]Ԕ`aSoوfcbEidehgDa`^jklnmuvprt]usᾎoqaǏxwyᤎzɒ|ៗ{ቑs}~×ȕ᭔oᒔSTpIFcHWsUqVrXt甬Mu~mvᐓXῖĊՔږӖႏȏŊ^᭒ኅZvᇐ“r˕uėᵓᵖmZḋΐọᤌӍ\xuԍmCjv{]yɏ^zd_{VOqɕאm᥎֔A@⁖CBʏDbFEGIH`|ЎJV_FSPOcLNj_MKIˏ[ՍQRh֋\TSЉdfT⚋UWXHYZ[׋щÓG\Hȉb]d`a≔`^⁒_̏ڈHbcŐBdetŗgfilj҉mkemsoϐnnpqrnt⊌uv˓ސwₒy{xzA|Eq~M▊}⧗gⳗ͏vhGj[⣋^|Ɗ∋ΏJ}y摗M؋Ⳕ}͕ӉⓔZkNJ\⢔ߐ͔ѕzŽēUәȊАĕ̋HⲕⱗeSl⟊Ϗ⸐ЌW✓ⳕfƗⅎnI@gC[RBюhAfaےFݗ׍GaIЏHIgDJmEoMQ㋌LUniR㋋OP㝓NKG␦WTVSpX㎑epa[_ۈZbfjԖԒ\odY]^㻈Ȗ]ًꔍΗqgchjmiҕɊɖ܈lk㏉nuovr㛔ȎtqwpcDks{~|z`ѐɔ}x@qJrDUy㚖J[@\Zʊsߍrul딭뜮ㅗrtQA`H゗K㉐ˊ|sVlҎ㧎ϑkՖ㨎^㹐㷕㏑㮒EW㣔]яI̊Ҍ씨bmnx݈_wّEӌ㷓E\ƐeҐrE]BAtDCorTHIG䘍FJ䰒BڑNOKLMpUQ䆕GPSRcVWVXZ^[Y^\]䰉d_`a䟑cbefgbh՗LvijPklmno介pqɎr䮘sܕڊCwMtquʔwǑvDxzy|{}~͊䯍ǗF䇕ŎHmcԉF|ڋ艡ۑcՉꋗϓpvΖ։s䩈䃒䐑t`rw׉xΊ䜔䛐yeۋىҏ؍p앿؉ԌHz专Gވ䋔䞊䎗{t䟓䒑K䘕ӏN֖f䗊|䓑~uW䪖D`H@̕UӒ@הԏǎB弋}C噕~nJPQD喔NFHRGK咉LOEEIFdOVTmS啗UWX[Y塓Z˔M哏\a唑`Abh]_^PAdc喗efgՌsi|jk厒lqrm\naopztwsuv֎x`ua{^|帔}~gؔ鉆Iw娖XIډ屒刔Z冗Iay匌OspXqՏt߈\劐叒܋Uܑ峑ь忈ٍ啑T徍֏廐塕匊JA]覉݋A@CBDPEFG漐vH梕eIJ橌KK拎`LoMO旗NePQRϊSTUVpWXYGZ[\澌]vu`梓_P^Lab׏cKݐidf؏ehi漍gُ]f挎rmwllkFlbYڏjopn֌_Fs澐aUvꌽrwtuqǓNۉbzxkЊyzȗ_{泒~|@}攏dy䓍檌uӎwTދ毎戕xc쌣]̝QJ椓Lؓۏ拍^eL咉vn݉̔ъӐ晒M惔ݑ\fGd毑Go^܏投qw桑Ԑ͎q斑拕N洒z旋Ր׌HHxH@DABCJE֐GIFLRKMNQPOSRUTVWYXgZ[]^_\`ԎaORb]cf粎edygriڍhqkmjlpnPory֗SsAutx`w獊v{zyQ|}~猍Dh竎矙CJ_ӕҒHIv}ߋԕމ痔Rqǒޑt秓r瀐ʒ笑秈AߑTi툝NٓxV^Օ߉繓Bሦ껑瓉kyKՎ煏JIɗҊWߓM׎@xYS甕sXsAѓUގz|珗Vy_熏XݏΔэߎ碗dʗB瘊jޒtݓbn،S甉竔ޏzgeC_LKNݕseIe|K獐@BACыdB^EDFB^tՒKbGHLJIߏO轍ȒZMNLPVYXLQRUWZTS^_`]\[dbcaefhӊgsiljkmopqtruwv跒xMy•zJ[ՊԊ{|}~֊t}{ň謓茕㍖hjɑ荕~Õ@w׊膔A’˗褗zG@Ku脌ۍBחꗯǐYWٌ蓎Gԙ裗Jᐴ_뗋dk엷蚑趖IPÐrʖvxC蓊ƈfڕ؊B蹉Cŕ{aДړ̗zjopz{犰^ޗڌ@BA闕CDEFHGIHQJK骙ZєOLݖM{a`NOPRSUQTيVWXYZ\[^a]_`bcd遍e]nfgyh靔ʑw틓mljkiwnopqsrxtvRu雑xˑy髓z}|~{霍[鑐邍@鯔ETS@飖邖雋DBA鼈C驕鎖LNDEI~鱈F邊kh鏊VLؗ鹒鵔P–Γ鼓騉镉雊鰎DCEL@AꔍBHQJGFKHG{LMNIOߒSTRQWPUVYX[\]hZ^J_`ab게cdꭎefghki[jlٗmꞔnpqoꍍ˖sotuvKwٖxzy{|}~Cیl@V괗ss~XB^Yua}b~ceiluIIWVij{C|D^OPQRSTUVWXFGH`abcdefghijklmnopqrstuvwxym_nOQMobp`ʁTPU  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOQ      ! % & 0 2 3 ; !!!!!!!+!`!`!a!a!b!b!c!c!d!d!e!e!f!f!g!g!h!h!i!i!p!p!q!q!r!r!s!s!t!t!u!u!v!v!w!w!x!x!y!y!!!!!!!""""" """"""" " "%"'"(")")"*"*"+"+","."4"5"5"5"="R"R"`"a"a"f"g"j"k""""""""#`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s$%%%% %%%%%%%%%% %#%$%%%(%+%,%/%0%3%4%7%8%;%<%?%B%K%%%%%%%%%%%%%&&@&B&j&m&o&00000000 0 0 0 0 00000000000A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0{0|0}0~0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012122292222223 333"3#3&3'3+363;3I3J3M3Q3W3{3|3}3~333333333NNNNN N N N NNNNNNNNNNN!N&N(N(N*N-N1N2N6N8N9N;NT@TBTFTHTITJTNTQT_ThTjTpTqTsTuTvTwT{T|T}TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUU.U/U1U3U8U9U>U@UDUEUFULUOUSUVUWU\U]UcU{U|U~UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUV VVVVVV)V/V1V2V4V6V8VBVLVNVPV[VdVhVjVkVlVtVxVzVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWW W W WWWWWWWW&W'W(W-W0W7W8W;W@WBWGWJWNWOWPWQWYWYWaWdWeWeWfWiWjWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXX X XXXX!X$X*X/X0X1X4X5X:X=X@XAXJXKXQXRXTXWXXXYXZX^XbXiXkXpXrXuXyX~XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXY Y Y Y YYYYYYYYYY"Y%Y'Y)Y*Y+Y,Y-Y.Y1Y2Y7Y8Y>YDYGYHYIYNYOYPYQYSYSYTYUYWYXYZY[Y[Y]Y]Y`YbYcYcYeYgYhYiYjYlYnYsYtYxY}YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZ ZZZZZZ Z%Z)Z/Z5Z6Z[@[C[E[P[Q[T[U[V[V[W[X[Z[[[\[][_[c[d[e[f[i[k[p[q[s[u[x[z[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\ \ \ \ \\\\\\\\\ \"\$\(\-\1\8\9\:\;\<\=\>\?\@\A\E\F\H\J\K\M\N\O\P\Q\S\U\^\`\a\d\e\l\n\o\q\v\y\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\] ]]]]]]]]]]]]"]']'])]B]B]K]L]N]P]R]S]S]\]i]l]m]m]o]s]v]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^ ^ ^^^^^^^%^+^-^/^0^3^6^7^8^=^@^C^D^E^G^L^N^T^U^W^_^a^b^c^d^r^s^t^u^v^x^y^z^{^|^}^~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^___ _ _ _ _ ____________!_!_%_&_'_)_-_/_1_4_4_5_7_8_<_>_A_E_E_H_J_L_N_Q_S_V_W_Y_\_]_a_b_f_g_g_i_j_k_l_m_p_q_s_w_y_|_________________________________________________________`````````` `!`%`&`'`(`)`*`+`/`1`:`A`B`C`F`J`K`M`P`R`U`Y`Z`]`]`_```b`c`d`e`h`i`j`k`l`m`o`p`u`w``````````````````````````````````````````````````````````````aaaaa a aaaaaaaaa a a!a'a(a,a0a0a4a7a7aa?aBaDaGaHaJaKaLaMaNaSaUaXaYaZa]a_abacaeagahakanaoapaqasatauavawa~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabb b b b bbbbbbbbbbbbbb!b&b*b.b/b0b2b3b4b8b;b?b@bAbGbHbIbKbMbNbSbUbXb[b^b`bcbhbnbqbvbyb|b~bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccc c cccc'c(c+c/c:c=c>c?cIcLcMcOcPcUcWc\cgchcickcncrcvcwczc{cccccccccccccccccccccccccccccccccccccccccccccccccd dddddd&d(d,d-d4d6d:d>dBdNdXd`d`dgdidodvdxdzdddddddddddddddddddddddddddddddddddddddddddddddeeeee#e$e*e+e,e/e4e5e6e7e8e9e;e>e?eEeHeMeNeNeOeQeUeVeWeXeYe]e^ebecefelepereteuewexeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffff f f f fffffffffff f$f$f%f'f(f-f.f.f/f1f1f4f5f6f;f;fkCkGkIkLkNkPkSkTkYk[k_kakbkckdkfkikjkoksktkxkyk{kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkklllllll#l$l4l7l8l>l?l?l@lAlBlNlPlUlWlZl\l\l]l^l_l`lblhljlololplrlslzl}l~llllllllllllllllllllllllllllllllllllllllllllllllllllllmm m mmmmmmm%m)m*m+m2m3m5m6m8m;m=m>mAmDmEmYmZm\mcmdmfmimjmlmnmomomtmwmxmymmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnn n n nnnnnnnn n!n#n$n%n&n'n'n)n+n,n-n.n/n8n9n9n:nnCnJnMnNnVnXn[n\n\n_ngnknnnonrnvn~nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooo oooooo o"o#o+o,o1o2o8o>o?oAoEoToXo[o\o_odofomonooopotoxozo|ooooooooooooooooooooooooooooooooooooooooooooppppp p pppppppppp&p'p(p(p,p0p2p>pLpQpXpcpkpopppxp|p}pppppppppppppppppppppppppppppqq qqqqqqq!q&q6qr?r@rFrGrHrKrLrRrXrYr[r]r_rarbrgrirrrtryr}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr sssssss$s$s%s)s*s+s.s/s4s6s7s>s?sDsEsNsOsWscshsjspsrsuswswsxszs{sssssssssssssssssssssssssssssssssssssttttt t"t%t&t&t)t)t*t*t.t.t2t3t4t5t6t:t?tAtUtYtZt[t\t^t_t`tbtbtctdtitjtotptstvt~tttttttttttttttttttttttttttttuuuuu u uuuuuuuuuu#u%u&u(u+u,u/u/u0u1u2u3u7u8u:u;uy@yAyGyHyIyPySyUyVyWyZy]y^y_y`ybyeyhymywyzyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzz z zzzzzzzzz z.z1z2z7z;zz?z@zBzCzFzIzMzNzOzPzWzazbzczizkzpztzvzyzzz}zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{ { {{{{{{{ {%{&{({,{3{5{6{9{E{F{H{I{K{L{M{O{P{Q{R{T{V{]{e{g{l{n{p{q{t{u{z{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{|| |||||||!|#|'|*|+|7|8|=|>|?|@|C|L|M|O|P|T|V|X|_|`|d|e|l|s|u|~|||||||||||||||||||||||||||||||||||||||||||||||||||}}}}} } } }}}}}}}}}} }!}"}+},}.}/}0}2}3}5}9}:}?}B}C}D}E}F}H}H}K}L}N}O}P}V}[}\}\}^}a}b}c}f}h}n}q}r}s}u}v}y}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~ ~ ~ ~~~~~!~"~#~&~+~.~1~2~5~7~9~:~;~=~>~A~C~F~J~K~M~R~R~T~U~V~Y~Z~]~^~f~g~i~j~m~p~y~{~|~}~~~~~~~~~~~~~~~~~~68:EGGLMNPQTUX_`ghijknpruwxy !(36;=?FJRVXZ^_abhoprstvwy}~ÀĀƀ̀΀րـڀۀ݀ހ #)/139>FKNPQSTU_efknpqtxyzƁȁɁ́сӁ؁فځ߁ )*+,.356789@GXYZ]_bdfhjknoqrvwx~łт҂ӂԂׂقۂ܂ނ߂ #(+/1245689@EIJOPRXbbsuw{|Ńǃǃʃ̃΃Ӄփ؃܃߃  ")*,158<=FHHINW[abcfiklmnoquwyzĄƄɄʄ˄̈́Єфքلڄ܄܄!&,-5=@ACHIJKNSSUWXYYZchijkkmw~ɅͅυЅՅ܅݅ "-/0?MNPTUZ\^_gkqy{ĆƆdžɆˆ͆ΆԆنۆކ߆ %)47;?IKLNSUWY_`cfhjntvxćƇLJˇЇ҇ !"#'169;@BDFLMRSWY[]^abchkpruw}~ˆÈĈňψԈՈ؈و܈݈߈ %*+68;ACDLMV^_`dfjmortw~҉ډ܉݉ #%*-134677:;AILNOSSVXZ[\_fklopqrtw}7:?AFHJLNPUZabjklxyz|ŒÌČnjȌʌ͌Όьӌڌی܌ތ dfgkmpqstvvwˍ̍ύ֍ڍۍݍߍ *045BDGHIJLPUY_`cdrtv|ŎƎȎʎˎ͎̎ώώҎێߎ &)*/389;>?BDEFILMNW\_abcdďŏΏяԏڏ  !"#'.125689<>ABEGIJKMNOPQRSTUVXY\^`acegghimnoruvwxz|}ʐΐېސސ''-02IJKLMNRTVXbceijlrsuwxƑǑȑɑˑ̑͑ΑϑБё֑בבؑڑڑۑܑݑޑޑߑ ),4799::<BCCDFHIMMOOQQRUUVY\^`abdfhikmqtyz|×Ɨȗ˗ӗܗ !$,-478;<=FKLMNOTUWWX[^eegkopqstØĘƘۘܘߘ  !$''(,.=>BEIKLPQRUWęřƙșЙљҙՙؙۙݙߙ(+07>@BCEMNNUWZ[_bdeijkĚϚњӚԚؚٚٚܚܚޚߚ"#%'()*./12;FGHRWZ`gvx #&(*+,;>?ADFHPQY\]^`adkklopprzĝƝϝӝٝuxy}Ğ̞͞ΞϞОўўҞԞ؞ٞ۞ܞݞޞ !,;>JKNORT_`abcfgjlrvw)) !!""##$$%%&&''(())**++,,--  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^abcdefghijklmnopqrstuvwxyz{|}~ CP936Arr>V @ V CP950Arr~k5 @XV CP949Arr0C @V CP932ArrX>, @VH0X\@{P3C4CP6C9C9C:C9C7C8C@{@ACPACФ{{{{о{{{ {{{{{TAVLTreeW0 Y]1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC{ TAVLTreeNodeHXZ^1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACCCTBaseAVLTreeNodeManager8Y [@_1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTAVLTreeNodeEnumerator8Z00Z\_{P3C4CP6C9C9C:C9C7C8C0AC@ACPAC@{P{TAVLTreeNodeMemManager([ 8(\ X\TAVLTree\TAVLTreeW Laz_AVL_Tree\TObjectSortCompare$selfPointerTreeTAVLTreeData1PointerData2PointerLongInt\\ 8] TAVLTreeNode] TAVLTreeNodeHX Laz_AVL_Tree]TAVLTreeNodeClass ^(^ PAVLTreeNode ^P^TBaseAVLTreeNodeManagerp^TBaseAVLTreeNodeManager8Y Laz_AVL_Tree^TAVLTreeNodeEnumerator_TAVLTreeNodeEnumerator8Z Laz_AVL_Tree@_ TAVLTreeClass\_TAVLTreeNodeMemManager_TAVLTreeNodeMemManager([^ Laz_AVL_Tree_80HbbXb0P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTTTTTTЅTTTTT TTTT T0`TTTTPP@0Ppp@`PP TProcessUTF80` TProcessUTF8hb TProcessUTF80`Л UTF8Processb b c0l0d`}1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC|p|CC|TFPCustomImageReader8c(l8e~1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC|P|CTFPCustomImageWriterPd0(f~~1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACTIHDataXe@pgg0{P3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T|`T||CC ||{{TFPCustomImage8f5`h(1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXFPImageExceptiongi@"|P3C4CP6CpCpCpCpC7C8C0AC@ACPAC%|$| $|P%|"|P#|#|&|p$| '| TFPPalettehHgjxk |P3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T|`T |p |P | ||| | |TFPMemoryImagei(k }1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC|P|TFPCustomImageHandlerklP|P3C4CP6CpCpCpCpC7C8C0AC@ACPACTImageHandlersManagerlHg8nPn0{P3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T|`T||CC ||{{TFPCompactImgBasemPXnoPoP=|P3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T|`T;|0;|pC;| ||;|=|TFPCompactImgGray16Bit`nPXnpq7|P3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T|`T5|05|pC5| ||5|7|TFPCompactImgGrayAlpha16BitoPXn`rHxr0@|P3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T|`T`>|=|pCP>| ||>|@|TFPCompactImgGray8Bit(qPXnss:|P3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T|`T8| 8|pC8| ||9|:|TFPCompactImgGrayAlpha8BitrPXn(u(@uC|P3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T|`T`A|@|pCPA| ||B|C|TFPCompactImgRGBA8BitsPXnvvG|P3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T|`TD|@D|pCD| ||pE|PG|TFPCompactImgRGB8BitPuPXnwx J|P3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T|`TH|G|pCH| ||H|pJ|TFPCompactImgRGB16BitvPXnHyh`yL|P3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T|`TK|J|pCJ| ||0K|M|TFPCompactImgRGBA16Bitxع@p@л `м@@@>E?x=>E?x= >~>~>Z>= 7?t=TFPCustomImageHandler|TFPCustomImageReader|TFPCustomImageHandlerkFPImage }TFPCustomImageReader8cX}FPImage`}TFPCustomImageReaderClass}}TFPCustomImageWriter}TFPCustomImageWriterPdX}FPImage~TFPCustomImageWriterClassH~P~TIHData~TIHDataXeFPImage~  HTFPCustomImagexTFPCustomImage8fFPImageFPImageExceptionFPImageExceptiongFPImage( TFPColor` TFPColor`   PFPColor TColorFormatcfMonocfGray2cfGray4cfGray8cfGray16cfGray24cfGrayA8 cfGrayA16 cfGrayA32cfRGB15cfRGB16cfRGB24cfRGB32cfRGB48cfRGBA8cfRGBA16cfRGBA32cfRGBA64cfBGR15cfBGR16cfBGR24cfBGR32cfBGR48cfABGR8cfABGR16cfABGR32cfABGR64FPImage ؁^FgNVyp?     Ɓρ8?FNV^gpyƁρ؁ PColorDatap TDeviceColor TDeviceColor0Ȅ TFPColorArray TFPColorArrayH PFPColorArrayxTFPImgProgressStage psStarting psRunningpsEndingFPImageۅхƅƅхۅ(TFPImgProgressEvent$selfPointerSenderTObjectStageTFPImgProgressStage PercentDoneByte RedrawNowBooleanRTRectMsg AnsiStringContinueBoolean 0 P TFPPaletteH TFPPalettehFPImageTFPCustomImageClass TFPIntegerArray؇PFPIntegerArrayTFPMemoryImage@TFPMemoryImageiFPImagexTImageHandlersManagerTImageHandlersManagerlFPImageTErrorTextIndicesStrInvalidIndexStrNoImageToWrite StrNoFile StrNoStream StrPalette StrImageX StrImageY StrImageExtraStrTypeAlreadyExistStrTypeReaderAlreadyExistStrTypeWriterAlreadyExistStrCantDetermineTypeStrNoCorrectReaderFoundStrReadWithErrorStrWriteWithErrorStrNoPaletteAvailableStrInvalidHTMLColorFPImage0 gT vdQ . ͉ ?Tdv͉.?Qgh  TGrayConvMatrix 0 TGrayConvMatrix0 p TFPCompactImgDescЌ TFPCompactImgDescЌ  TFPCompactImgBasepTFPCompactImgBasemFPImageTFPCompactImgBaseClassTFPCompactImgGray16BitTFPCompactImgGray16Bit`nFPImageP TFPCompactImgGrayAlpha16BitValue TFPCompactImgGrayAlpha16BitValue  PFPCompactImgGrayAlpha16BitValue8@TFPCompactImgGrayAlpha16BitxTFPCompactImgGrayAlpha16BitoFPImageTFPCompactImgGray8BitTFPCompactImgGray8Bit(qFPImageH TFPCompactImgGrayAlpha8BitValue TFPCompactImgGrayAlpha8BitValueؐPFPCompactImgGrayAlpha8BitValue08TFPCompactImgGrayAlpha8BitpTFPCompactImgGrayAlpha8BitrFPImage TFPCompactImgRGBA8BitValue TFPCompactImgRGBA8BitValue@PFPCompactImgRGBA8BitValueTFPCompactImgRGBA8BitTFPCompactImgRGBA8BitsFPImage( TFPCompactImgRGB8BitValueh TFPCompactImgRGB8BitValuehPFPCompactImgRGB8BitValueTFPCompactImgRGB8BitHTFPCompactImgRGB8BitPuFPImage TFPCompactImgRGB16BitValueȔ TFPCompactImgRGB16BitValueȔ  PFPCompactImgRGB16BitValuepxTFPCompactImgRGB16BitTFPCompactImgRGB16BitvFPImageTFPCompactImgRGBA16Bit(TFPCompactImgRGBA16BitxFPImageh gPX`|P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T|`T|| |P|@|||||||p|}}}P}@ } }}P|@|| TLazIntfImageHgЯș0{P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T|`T}}p}} ||{{}TLazIntfImageMaskp(iHG}P3C4CP6C9C9C:C9C7C8C0AC@ACPACC}E} $|J}"|P#|#|H}H} '|K}TLazAVLPaletteؙ0l}P3C4CP6C9C9C:C9C7C8C0AC@ACPAC TArrayNodeМXp}}P3C4CP6C9C9C:C9C7C8C0AC@ACPACTArrayNodesTreeݗNH@lM&{DD8B14DE-4E97-4816-8B40-DD6C4D8CCD1B}Eޜo(0&{DFE8D2A0-E318-45CE-87DE-9C6F1F1928E5}H`HdpȲ0B}P3C4CP6C9C9C:C9C7C8C0AC@ACPAC|@}}>}| TLazReaderXPM0}@}P}`}p}X(x8Peȟ1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC|h}0N} TLazWriterXPMhHd0}P3C4CP6C9C9C:C9C7C8C0AC@ACPAC|p}}@}|}}} } TLazReaderDIB}}}}}(``p}P3C4CP6C9C9C:C9C7C8C0AC@ACPAC|p}}`~}|}}p} } TLazReaderBMPhȣ1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC| ~0!~ ~ TLazWriterBMP}}}}}@xph`X0}P3C4CP6C9C9C:C9C7C8C0AC@ACPAC|p}}@}|}}} }TLazReaderIconDIBhpм`-~P3C4CP6C9C9C:C9C7C8C0AC@ACPAC|,~p}L~J~PG~3~0}:~}6~8~ TLazReaderPNG }0}@}P}`}`(@  @XN~P3C4CP6C9C9C:C9C7C8C0AC@ACPAC|M~h~]~p`~`e~0e~`h~ph~R~ `~0T~ b~0b~ TLazWriterPNGp}}}}}@0pxxȩP~P3C4CP6C9C9C:C9C7C8C0AC@ACPAC|~ }~| }TLazReaderTiff}}}}}(Xp( 0~P3C4CP6C9C9C:C9C7C8C0AC@ACPAC|~}TLazWriterTiff} }0}@}P}@PppHdP}P3C4CP6C9C9C:C9C7C8C0AC@ACPAC|}}}|TLazReaderIcnsPart`}p}}}}hh(X(Hh̙ff33ݻwwUUDD""TLazIntfImageGetPixelProc$selfPointerxLongIntyLongInt ColorTFPColor TLazIntfImageSetPixelProc$selfPointerxLongIntyLongIntColorTFPColorTOnReadRawImageBitsXTheDataPosition`Prec`Shift Bits TOnWriteRawImageBitsXTheDataPosition`Prec`Shift Bits TLazIntfImage  TLazIntfImage IntfGraphicsXTLazIntfImageMaskTLazIntfImageMaskp IntfGraphicsЯTLazAVLPaletteTLazAVLPaletteؙ IntfGraphicsH TArrayNode IntfGraphics PArrayNode TArrayNodeTArrayNodesTreeTArrayNodesTree IntfGraphicsXILazImageReaderݗNH@lM IntfGraphicsILazImageWriterEޜo( IntfGraphics (( IntfGraphicsX TLazReaderXPM TLazReaderXPMx} IntfGraphicsȲ  0 `    P   P     @ TLazWriterXPMp TLazWriterXPMH~ IntfGraphicsTLazReaderMaskModelrmmNonelrmmAuto lrmmColor IntfGraphics8hTLazReaderDIBEncodinglrdeRGBlrdeRLE lrdeBitfieldlrdeJpeglrdePng lrdeHuffman IntfGraphicsȶն޶ȶն޶` TLazReaderDIBInfo,  ````  p p  0 TLazReaderDIBInfo, ``  h$( IntfGraphicsP 0 TLazReaderDIBx TLazReaderDIB} IntfGraphics TLazReaderBMP8 TLazReaderBMPh0 IntfGraphicsp TLazWriterBMP TLazWriterBMP IntfGraphicsTLazReaderIconDIBTLazReaderIconDIB0 IntfGraphicsX TLazReaderPNG TLazReaderPNG@ IntfGraphicsм TLazWriterPNG TLazWriterPNG` IntfGraphics@TLazReaderTiffxTLazReaderTiff` IntfGraphicsTLazWriterTiffTLazWriterTiff IntfGraphics(TLazReaderIcnsParthTLazReaderIcnsPartX} IntfGraphics @TLCLWidgetTypeNameEvent$result`Hdh0}P3C4CP6CpCpCpCpC7C8C0AC@ACPAC|}}p ~|@}~@~ TFPReaderBMPX FPReadBMP 0 0 0 0@ TFPReaderBMPp TFPReaderBMPX} FPReadBMPxPeP1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC| ~0!~ ~ TFPWriterBMP FPWriteBMP   TFPWriterBMPhP TFPWriterBMPH~ FPWriteBMP TBitMapFileHeader TBitMapFileHeader  PBitMapFileHeaderx TBitMapInfoHeader( TBitMapInfoHeader(   $PBitMapInfoHeader TColorRGB TColorRGB( PColorRGBx TColorRGBA TColorRGBAx PColorRGBAHPXHd`-~P3C4CP6CpCpCpCpC7C8C0AC@ACPAC|,~I~L~J~PG~3~P1~:~>~6~8~ TFPReaderPNGp@ 0  TSetPixelProc$selfPointerxLongIntyLongIntCDQWord`TConvertColorProc$selfPointerCDQWordTFPColor 0 TFPReaderPNG` TFPReaderPNGp} FPReadPNG Pe0N~P3C4CP6CpCpCpCpC7C8C0AC@ACPAC|M~h~]~p`~`e~0e~pCph~R~ `~0T~ b~0b~ TFPWriterPNG TGetPixelFunc$selfPointerxLongWordyLongWordQWord``(TColorFormatFunction$selfPointercolorTFPColorQWord TFPWriterPNG TFPWriterPNGH~ FPWritePNG0xHdh0P~P3C4CP6CpCpCpCpC7C8C0AC@ACPAC|~`~~|~ TFPReaderTiffh     @ p    FPReadTiff 8 h @ @ TFPReaderTiff TFPReaderTiffh} FPReadTiff0TTiffCreateCompatibleImgEvent$selfPointerSender TFPReaderTiff ImgFileDirTTiffIFD`@hTTiffCheckIFDOrder tcioSmart tcioAlways tcioNever FPReadTiff" @ "p h~P3C4CP6CpCpCpCpC7C8C0AC@ACPACTTiffWriterEntry0X~P3C4CP6CpCpCpCpC7C8C0AC@ACPACTTiffWriterChunkOffsetsPPe`0~P3C4CP6CpCpCpCpC7C8C0AC@ACPAC|~ ~ TFPWriterTiffxTTiffWriterEntryxTTiffWriterEntry FPWriteTiff TTiffWriterChunk TTiffWriterChunk`8PTiffWriterChunkTTiffWriterChunkOffsetsTTiffWriterChunkOffsets FPWriteTiff @ TFPWriterTiffp TFPWriterTiffxH~ FPWriteTiff0`P3C4CP6CpCpCpCpC7C8C0AC@ACPACTTiffIFDH TTiffRational TTiffRational``(TTiffChunkTypetctStriptctTile FPTiffCmnp  FPTiffCmnTTiffIFD ( @HP`h0TTiffIFD FPTiffCmn H x TStringFunc$resultic09ic08it32t8mkich#ich4ich8ih32h8mkICN#icl4icl8il32l8mkics#ics4ics8is32s8mkicm#icm4icm8     000000    0000  88 FourCharCodeH TIconFamilyElement TIconFamilyElement TIconFamilyResourceH TIconFamilyResourceH TicnsIconTypeiitNoneiitMini4BitDataiitMini8BitDataiitSmall4BitDataiitSmall8BitDataiitSmall32BitDataiitLarge4BitDataiitLarge8BitDataiitLarge32BitDataiitHuge4BitDataiitHuge8BitDataiitHuge32BitDataiitThumbnail32BitDataiitMini1BitMaskiitSmall1BitMaskiitSmall8BitMaskiitLarge1BitMaskiitLarge8BitMaskiitHuge1BitMaskiitHuge8BitMaskiitThumbnail8BitMaskiit256PixelDataARGBiit512PixelDataARGB IcnsTypesXl#   3vTe B 1 C 1BTev#3CXlTicnsIconTypes TicnsIconInfo  TicnsIconInfo xh1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXPNGImageException@PNG  IHDRcHRMgAMAsBITPLTEbKGDhISTtRNSoFFspHYsIDATtIMEsCALtEXtzTXtIENDsRGBiCCPiTXtsPLTUnknPNGImageExceptionpPNGImageException@XPNGComn TChunkTypesctIHDRctcHRMctgAMActsBITctPLTEctbKGDcthISTcttRNSctoFFsctpHYsctIDATcttIMEctsCALcttEXtctzTXtctIENDctsRGBctiCCPctiTXtctsPLT ctUnknownPNGComn) 0} Lo> E" Zv a S7h ")07>ELSZahov} EightLong `p TChunkCodeH TChunk  TChunk ```  TChunkHeader TChunkHeader` THeaderChunk THeaderChunk`` Hx`pP3C4CP6CpCpCpCpC7C8C0AC@ACPAC=S9S9S9S9SpCP:SP9Sp9S:S>SHSTcustomzlibstreamx(``%P3C4CP6CpCpCpCpC7C8C0AC@ACPAC=S9S9S9S9SpCP:SP9S`":S>SHSTcompressionstream0p(P,P3C4CP6CpCpCpCpC7C8C0AC@ACPAC=SP+9S9S9SpCP:S@(p9S:S`+HSTdecompressionstream`|0P3C4CP6CpCpCpCpC7C8C0AC@ACPAC=S9S9S9S9SpCP:SP//P0>SHS TGZFileStreamk81CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX Ezliberror1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX Egzfileerror1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEcompressionerror1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEdecompressionerrorTcompressionlevelclnone clfastest cldefaultclmaxZStream ` Tgzopenmode gzopenread gzopenwriteZStreamTcustomzlibstream TcustomzlibstreamZStream`TcompressionstreamTcompressionstream0ZStreamTdecompressionstreamTdecompressionstreamZStreamP TGZFileStream TGZFileStreamHZStream Ezliberror EzliberrorXZStream8 Egzfileerrorh Egzfileerror`ZStreamEcompressionerrorEcompressionerror`ZStreamEdecompressionerrorPEdecompressionerror`ZStream @`H>exx!8n!hhn=1.1.2  Tbytearray Pbytearray Twordarray?  PwordarrayHP Tcardinalarray`pPcardinalarray Tintegerarray?@ inflate_huft inflate_huft`@ pInflate_huft huft_field8 huft_fieldhuft_ptr (ppInflate_huftHinflate_codes_mode STARTLENLENEXTDISTDISTEXTCOPYLITWASHZENDBADCODEZBaseh ` inflate_codes_state0  0 0``  `` ` inflate_codes_state0`X (`pInflate_codes_state check_func``checkXbuf`len(inflate_block_mode ZTYPELENSSTOREDTABLEBTREEDTREECODESDRYBLKDONEBLKBADZBasex x inflate_blocks_statep  H H ```x     ``h inflate_blocks_statep  (`,`0@8X@XHXPXXp``hpInflate_blocks_state inflate_mode METHODFLAGDICT4DICT3DICT2DICT1DICT0BLOCKSCHECK4CHECK3CHECK2CHECK1DONEBADZBase A 5 . '   <X  '.5<A internal_state    ``( ```h internal_state P `pInternal_state( 0  z_streamHX  z_streamX H X`X` (0P 0@8`<`@  z_streamp` h    @ `      8hhx BIj@pp1jI? P((U0w,aQ mjp5c飕d2yҗ+L |~-d jHqA}mQDžӃVlkdzbeO\lcc=  n;^iLA`rqgjm Zjz  ' }Dңhi]Wbgeq6lknv+ӉZzJgo߹ホCՎ`~ѡ8ROggW?K6H+ L J6`zA`Ugn1yiFafo%6hRw G "/&U;( Z+j\1е,[d&c윣ju m ?6grWJz+{8 Ғ |! ӆBhn[&wowGZpj;f\ eibkaElx TN³9a&g`MGiIwn>JjѮZf @;7SŞϲG0򽽊º0S$6к)WTg#.zfJah]+o*7 Z-y50pzk`^PXhAs8?t}*5-+tPOuh( w!X|ч$ ^eJ8}@$HU k`yZ>W蠞q xo;}拸s} cn`H0wP j˔pHB@X2 ֍Gc# ׂHY{'xH4l5l(gp|w{VI!ɀqD"A/oyui=):k@{Vc\Aw!hy9Q]I b+3S6)Q)x B ds wfi™L9qqr+q ?!Gu1=aQguIN1,0V\h }Ո|Yyi qYCxі c9әaco-nzz[Ju?-;*0*KP/?BOeD^kq*z 6RtcZO"Fr⁑H$BQ:e;zjgwP2Ae"B;B%rNUPWeَ޴-ajJb}Z= e!o:Q"훼Ě2Z 5si('jX2 A,bm2\b[KJN9m谳+گ3cE7KꍻGkq#|6s3o\#Iǒs3ƝNCnCK)@~tG ̹r`>Rq: 4ZvUC?L/maTʗ$Td7_ĝ>jU\D2%4 4KO\6+l&du<~{ @ q4$lM/|ƴD=tJga(™DRIh,09AXLC8|nT9J,6a<ÿegl<˴EvEu 7^moΟeE\Ό #2zG %֔IJm\90(NfQ{ؾURdN,Q~/6@.wM^:=1 ֓&]ZްDN$ox4n p&S@!Y%E0[ҾFávԫ7.v Ѯ[^7"ngM>?Wn'=S#>&/LV_Žx.u6ZW*.gVFifC˞ήh\J&Sѥ^~*X0.;Yǰl+*)2sVwES&?W_Rp.-oX"' s?OF×MW[Lx+7a_&Ǻ_&^ʇ"s 7$[9agW_g.Rg|/TYTOH 8F/H8Ϲ٧B׫ kc/w$ͷ;LG]y<,'lfU#?޸GEW1w45Aߦڕ1QߏoS(Gз)m1iedյK)lǏk.u1=؎\mc){ISrR F?+:=Sڰėl+h >x>#2zTiK&#ꁕk'rglnۈ!(Nf%v]y<#ܶea6s3:"6@]ZްDND+(Gз)8&c+{>[i7d_S[Ju~ z5l㱹{„T6)Q޲ ȶ]Guh(G6<6iqYCxіj5y ZDX)D5o:Q"2-ήh\nxLx+7aڞψ%Kݣ͆='Yg1~N>RqpYTOHͰ1Q,Q~/6x·AٳJ,6a?Wn°i~fXF×=џaKDG -{N^a j5slb}*5tA26+q6}3|;Yǰ3ӎ#>bi`o2%4 4k0G o+BW ?!G7 |7y50pz]4BZEbW蠞yT8%q}Ո|Y:sb u>LxiC%vm>ǃa:ӭkq*q: p&S@!mU#?^/W ʲEi5Zr`=tJgm1iedյK)ߪ瑱FUk.p_&Ǻ_$j7v*X0.pN^elajJbomĐB{'[T_n[ò0 9 eJ8}@$-O w!hy9QJrk#H4ll2EQ?-;*ĽLg谳+گ3⯴AߦhWKY,Ě֓& HxIh,ݰقLmv_Yj}\@*)2sVwE)iL +_Žx}[I8+ A,bݺIrSa33i٦wa4VXgY^PXho~\P읬cX\147~Oe #.!-"s wfi߆D8v%-AM/|$ҾFávk O1w45h{?#–.u6Z- [96_AkUs22<*Tdf91HU k;6R0V8emV8) l/ ƗCeَ޴-ٶ22%֔IJqJįkc/w8I'20Hz`%1maYEu iNJSH0l(!}{VI!ɀ% ǒs37M[!H$BQ:V/2 ~C l%@Dm2\؛onk`j0ݓ@QguInKh1Ţy4z륹jU\DŤ)W&/LV+k-$ B dlv; ׂHYM _?.(N1,ۊPE`yoJtPWOlZi P;jPt"s 7$koW*. aVmaTʗ$pV=e=ݝl[LZrumk$k%äW[}Z=S )$ ^Yc9әacFs2̹ȭwҰ^m@~tl]'> Sѥ^~h㣭a&^ʇkP|%1 |߂Ӄڕ1ܳ5OoE\Ό v09ۦo{'xax%|:]I b+(p{H9mo0Lf0*KP@(so™Li:cA?t93i( v{!U](>W_RpٚHܷ"ngMm7׏ u<~{ =]A` 6 tAXLCngZҙ4W}Qu~.a nF/H8:=4_e;zjz`} ꍻGj3+J3R{V| cn` u1280( u1280( `(pu128((4 deflate 1.1.2 Copyright 1995-1998 Jean-loup Gailly pqq qs ss s s sQxuRx?SxSxSxTxiTxOx.PxxPxPxQxQxTx L,l\<|B"bR2r J*jZ:zF&fV6vN.n^>~A!aQ1q I)iY9yE%eU5u M-m]=}   S S  3 3  s s    K K  + +  k k     [ [  ; ;  { {     G G  ' '  g g     W W  7 7  w w     O O  / /  o o     _ _  ? ?     @ `P0pH(hX8xD$dT4tC#c         (08@P`p  0@`  0@`      *@3@/33 ct_datap4 4 4 4 5 5 H5 ct_datap4555 ct_data_ptr55 ltree_type=4@5 ltree_type=5@(6 dtree_type=4`6 dtree_type=56 htree_type'46 htree_type'57 tree_type4@7 tree_type5x7tree_ptr57 ltree_ptrX67 dtree_ptr67 htree_ptr878 static_tree_desc08 static_tree_desc087@@@@p8static_tree_desc_ptr88 tree_desc9 tree_desc97@9P9 tree_desc_ptr99pPosf 9 zPosfArray? 9 pzPosfArray:: deflate_state8:  p: z=@@: ==@: deflate_state8:; @X (@,./@0`4`8`<@H0:P0:X```d`h`l`pt`x`| `````@@`@X66 87 9( 9@ 9X :p : @ @ :P`X`\h`hlp`t@x z@|``;deflate_state_ptr>>     ?? #+3;CScspp !1Aa  0@` 5`B^1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXTFPCanvasExceptionAxBPCh_1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXTFPPenExceptionBxB8D_1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXTFPBrushExceptionhCxB(EX`1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXTFPFontExceptionXDpH`HP3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T`T`TCCCpCCCCCC`PpCpCCCCC0CC CCP CC CCpCCCCpC0@pp p `@0 TFPCustomCanvasHEXJHaJP3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T`T`TpCpC @pTFPCanvasHelperHhJKaaKP3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T`T`TpCpC @p`p TFPCustomFont JpJMHg(MP3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T`T`TpCpC @p@Pp TFPCustomPenKJNiNP3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T`T`TpCpC @p`pTFPCustomBrush8MOXj1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACCTFPCustomInterpolationNOPj1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC TFPBoxInterpolationOOQXk1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACTFPBaseInterpolationPQRk1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC`TMitchelInterpolationQSXl1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACCCTFPCustomRegionRSTl1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC P TFPRectRegionShK`VpnxVP3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T`T`TpCpC @p`pCCCC  TFPCustomDrawFontThKWnWP3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T`T`TpCpC @p`p TFPEmptyFontVp0MYXoYP3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T`T`TpCpC @p@PpCCCCTFPCustomDrawPenXp0M@[oP[P3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T`T`TpCpC @p@Pp TFPEmptyPenYN\@p\P3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T`T`TpCpC @p`pCCCCTFPCustomDrawBrush`[NX^ph^P3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T`T`TpCpC @p`p TFPEmptyBrush]hPPoint^TFPCanvasException^TFPCanvasExceptionAFPCanvas^TFPPenException(_TFPPenExceptionB _FPCanvash_TFPBrushException_TFPBrushExceptionhC _FPCanvas_TFPFontException`TFPFontExceptionXD _FPCanvasX`TFPCustomCanvas`TFPCustomCanvasHEFPCanvas`TFPCanvasHelperaTFPCanvasHelperHFPCanvasHa TFPCustomFontXa TFPCustomFont JxaFPCanvasaTFPCustomFontClassab TFPPenStylepsSolidpsDashpsDot psDashDot psDashDotDot psinsideFrame psPatternpsClearFPCanvas(bbNb[bebUbrbbFbbFbNbUb[bebrbbbcTFPPenStyleSetbhc TFPPenModepmBlackpmWhitepmNoppmNotpmCopy pmNotCopy pmMergePenNot pmMaskPenNot pmMergeNotPen pmMaskNotPenpmMerge pmNotMergepmMask pmNotMaskpmXorpmNotXorFPCanvasccc +d dc dccccc 2d dBdcF?%F@5FAGFBWFCgF0KAKSKDxFKKKEFKFFGFHFIFJF}JKAKFLFMGNGO&GJJJJP1GQ:GRCGSLGTUGUdGVrGW{GXGYGZG[G\G]GK KK"K^G_ H` Ha3HbGHc\HdeHeyHfHgHhHiHjHkHlHgKpK~KmHnHoIpIq.Ir=IsKIt\IusIvIwIxIyIzI{I|I LAAAAAAA BB.BEB[BkBBBBBBBBCC+CCCTCfC{CCCCCCCCDD"D4DCDSDmDDDDDDDDEE-ECEVEdExEEEEEEEEF%F5FGFWFgFxFFFFFFFFFGG&G1G:GCGLGUGdGrG{GGGGGGGG H H3HGH\HeHyHHHHHHHHHHII.I=IKI\IsIIIIIIIIJJ&J8JKJ^JrJJJJJJJJJK KK"K0KAKSKgKpK~KKKKKKKSPpX msg_table\1xXLXFILEptrHX@> my_marker_readerY h@Y @`pY my_marker_readerYh(hY0`Y`Y my_marker_ptr8Z@Z     !(0)" #*1892+$%,3:;4-&'.5<=6/7>????????????????? upsample1_ptrcinfocompptr input_dataoutput_data_ptr[@XSBK@I2"X!{sbhXE 0~SsAmTbSAA-BKbhTb~XBK!;(@XSBK@I2"I2EA!;I2'7 " 0A-("7 ~ ?aHP1?oM?lb??;i$? {zQ?]rU? @ @ @ @ d_derived_tbl`^ H^ D^ ^ (_ d_derived_tbl`^^^H _P_X_d_derived_tbl_ptr__ bitread_perm_state_ bitread_perm_state_8` bitread_working_state ` bitread_working_state`  `0 <3?@pL|CsO ,#/ߠ`Pl\cSo_84 ;7HxDtK{Gw($+'רhXdTk[gW2>1 =BrN~AqM}".!-ݢbRn^aQm] :6 95JzFvIyEu*&)%ժjZfViYeU jTDctElem`b DCTELEM_FIELDxbbDCTELEM_FIELD_PTRbb DCTELEMPTRbforward_DCT_method_ptrdata $highDATAcfloat_DCT_method_ptr(data $highDATAPc jTMultTypec ISLOW_MULT_TYPE_FIELDccISLOW_MULT_TYPE_FIELD_PTRcdISLOW_MULT_TYPE_PTR0d jTFloatTypeXd FLOAT_MULT_TYPE_FIELD(pdxdFLOAT_MULT_TYPE_FIELD_PTRddFLOAT_MULT_TYPE_PTR(d jTFastTypee IFAST_MULT_TYPE_FIELD(e0eIFAST_MULT_TYPE_FIELD_PTRhepeIFAST_MULT_TYPE_PTRe jTFastFloate FAST_FLOAT_FIELD(eeFAST_FLOAT_FIELD_PTR f(fFAST_FLOAT_PTR(Pf (3= :<7 (9E83WP>%8DmgM#7@Qhq\1@NWgyxeH\_bpdgc/ccccBcccc8ccccc/Bcccccccccccccccccccccccccccccccccccccc  }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzw!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz my_marker_writer@pj my_marker_writerpj@h`8j my_marker_ptrjk c_derived_tbl k `Xk k c_derived_tbl kkkkc_derived_tbl_ptrkl TLongTable@(l TLongTablePtrXl`l@XSBK@I2"X!{sbhXE 0~SsAmTbSAA-BKbhTb~XBK!;(@XSBK@I2"I2EA!;I2'7 " 0A-("7 ~ ?aHP1?oM?lb??;i$? {zQ?]rU?o rqP3C4CP6C9C9C:C9C7C8C0AC@ACPACCCCCCCCCCCC@CCCTConfigStoragem(orr?P3C4CP6C9C9C:C9C7C8C0AC@ACPACTConfigMemStorageNode o oXqt3P3C4CP6C9C9C:C9C7C8C0AC@ACPAC *,p*/-P10/0p.))@322TConfigMemStoragep xq qTConfigStorageqTConfigStoragemLazConfigStorage rTConfigStorageClassXr`rTConfigMemStorageNoderTConfigMemStorageNode oLazConfigStoragerTConfigMemStorageModificationcmsmSetcmsmGet cmsmDeletecmsmDeleteValueLazConfigStorage0sps{shs`ss`shsps{ss t HtTConfigMemStoragextTConfigMemStoragepXrLazConfigStoraget t (u8(vw QP3C4CP6C9C9C:C9C7C8C0AC@ACPACTDynamicDataQueueXu TDynamicQueueItemHv v TDynamicQueueItemHvvvPDynamicQueueItemwwListOfPDynamicQueueItem(w0wTDynamicDataQueue`wTDynamicDataQueueXuDynQueuew5x1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXESyncObjectExceptionwxy81CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXELockExceptionxxz1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXELockRecursionExceptiony{1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACpCpCTSynchroObjectz0{x|x_P3C4CP6CpCpCpCpC7C8C0AC@ACPAC ^@^TCriticalSection{{x}_P3C4CP6CpCpCpCpC7C8C0AC@ACPACpCpC THandleObject| }p~XaP3C4CP6CpCpCpCpC7C8C0AC@ACPACpCpC TEventObject} ~hȃaP3C4CP6CpCpCpCpC7C8C0AC@ACPACpCpC TSimpleEvent~ESyncObjectExceptionESyncObjectExceptionwsyncobjsELockExceptionELockExceptionxsyncobjs8ELockRecursionExceptionpELockRecursionExceptionysyncobjs TWaitResult wrSignaled wrTimeout wrAbandonedwrErrorsyncobjs+7!X!+7TSynchroObjectȁTSynchroObjectzsyncobjsTCriticalSection8TCriticalSection{0syncobjsx THandleObject THandleObject|0syncobjs TEventObject  TEventObject}syncobjsX TSimpleEvent TSimpleEvent~syncobjsȃ @`X T501CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EListError` 8 eP3C4CP6CpCpCpCpC7C8C0AC@ACPACeepCPiTFPSListHPHX eP3C4CP6CpCpCpCpC7C8C0AC@ACPACeepCPizxyTFPSMapP EListErrorh EListError`fglTFPSListЇTFPSListHfglTFPSListCompareFunc$selfPointerKey1PointerKey2PointerLongInt8TFPSMapTFPSMapP0fgl51CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEProcess8؁(0P3C4CTpCpCTpC7C8C0AC@ACPAC]TTT`TTpC`TpTTTpCTTpCpCTTpC TTpCT T0`TTTTpCP@0Ppp@`PPTProcess!(!H!x!!!!!TProcessOption poRunSuspended poWaitOnExit poUsePipespoStderrToOutPut poNoConsole poNewConsolepoDefaultErrorModepoNewProcessGrouppoDebugProcesspoDebugOnlyThisProcess poDetached poPassInput poRunIdleprocess fW2 }%E  %2EWf}XTShowWindowOptions swoNoneswoHIDE swoMaximize swoMinimize swoRestoreswoShowswoShowDefaultswoShowMaximizedswoShowMinimizedswoshowMinNOActive swoShowNAswoShowNoActivate swoShowNormalprocessЎ (0?P a t ~ (0?Pat~XTStartupOptionsuoUseShowWindow suoUseSizesuoUsePositionsuoUseCountCharssuoUseFillAttributeprocessА- X -TProcessPriorityppHighppIdleppNormal ppRealTime ppBelowNormal ppAboveNormalprocessؑ+ P +TProcessOptionsTStartupOptionsPTRunCommandEventCodeRunCommandIdleRunCommandReadOutputStringRunCommandReadOutputStreamRunCommandFinishedRunCommandExceptionprocessHǓo~o~Ǔ8TRunCommandEventCodeSetpTOnRunCommandEvent$selfPointerSenderTObjectContextTObjectStatusTRunCommandEventCodeMessage AnsiStringEProcessXEProcessprocessTProcessForkEvent$selfPointerSenderTObjectTProcessTProcess@process`0PipeBufferSize 5Active4ApplicationName4 CommandLine0 ExecutableН4 Parameters0 ConsoleTitle 0CurrentDirectory 0Desktop@ 4 EnvironmentpО 4OptionsH 0Priority@xx0StartupOptions =Running4 ShowWindow`4 WindowColumns`4 WindowHeight`М4 WindowLeft``4 WindowRows`4 WindowTop`4 WindowWidth`||0 FillAttribute0 XTermProgram TProcessClassЛ؛process AnsiString( 0` AnsiString AnsiStringȜ AnsiStringpН0 ""@"@"E~"""0`# # #6 ###â($##s mk1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EPipeError0(1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EPipeSeekР1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EPipeCreation@P3C4CP6CpCpCpCpC7C8C0AC@ACPAC@09S9S9S0KSPKS:SаHSTInputPipeStreamhP3C4CP6CpCpCpCpC7C8C0AC@ACPAC=S9S9S9S9S0KSPKS@KS:S`HSTOutputPipeStream8 EPipeError EPipeError0XPipes EPipeSeek EPipeSeekPipes( EPipeCreationX EPipeCreationPipesTInputPipeStreamȤTInputPipeStreamPPipesTOutputPipeStream@TOutputPipeStream8PPipes winsize winsize    Termios<X  TermiosX<```` H`4`8E@eP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpTeTeT`0`ЅT`TTT TTTT T`Tpa0aTeڄa````^^``Ў` `@`}`_a`^+`+`P^``_` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P`e@7`7`7`PY`PZ`` `` `p`Pg`g` _ ^P_ `@_`_e ap_^P`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``@f"``g`e<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_gpga```=_`<_|`^вgg0a_a0`P1`0^`^0`_``Pg 1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEHelpSystemException(  x* x@ 0@ * ^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`T THelpQuery)  * + @ + ^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`T THelpQueryTOC* (* , `A , ^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TTHelpQueryContext+ (* - A A - ^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TTHelpQueryKeyword, (* . B 0B / ^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TTHelpQueryDirective- 0* 0 C B (0 ^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TTHelpQuerySourcePosition/ 800 01 C P1 ^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TTHelpQueryPascalContexts80 0* X2 0D C p2  P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TTHelpQueryMessage`1 (* x3 D 3 ^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TTHelpQueryClass2 4  E 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACPC pP0 THelpManager3 shrNone shrSuccess shrCancel shrDatabaseNotFound shrContextNotFound shrViewerNotFound shrHelpNotFound shrViewerError shrSelectorError EHelpSystemException= EHelpSystemException(  HelpIntfs0> TShowHelpResultshrNone shrSuccess shrCancelshrDatabaseNotFoundshrContextNotFoundshrViewerNotFoundshrHelpNotFoundshrViewerErrorshrSelectorError HelpIntfsp>  > > > > > ? > > > 0? > > > > > > > > ? ? TShowHelpResults(? @  THelpQuery0@  THelpQuery)  HelpIntfsx@  THelpQueryTOC@  THelpQueryTOC* @  HelpIntfs@ THelpQueryContext A THelpQueryContext+ @  HelpIntfs`A THelpQueryKeyword A THelpQueryKeyword, @  HelpIntfsA THelpQueryDirective 0B THelpQueryDirective- @  HelpIntfsB THelpQuerySourcePosition B THelpQuerySourcePosition/ @  HelpIntfsC THelpQueryPascalContextsXC THelpQueryPascalContexts80 PC  HelpIntfsC THelpQueryMessage(C THelpQueryMessage`1 @  HelpIntfs0D THelpQueryClasspD THelpQueryClass2 @  HelpIntfsD  THelpManagerD  THelpManager3  HelpIntfs E @pG T G P݄4CT9C9CT9C7C8Cφ@ACPACTЍTPT`TpTЂTTTTTTЅTTTTT TTTT T`TTTT`ڄڄބPpP†྆ÆԆTCustomImageListXE 0pH U P3C4CP6C9C9C:C9C7C8C0AC@ACPAC TChangeLinkG PhJ W S J P2P݄4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T@T`TTTTkڄބ ߄`G@cjPB04TCustomImageListResolutionH  K  Y nP3C4CP6C9C9C:C9C7C8C0AC@ACPACTCustomImageListResolutionsJ  L Y 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC$TCustomImageListResolutionEnumeratorK M p\ 0\ 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTLCLGlyphs.TEntryL 8G O ] P] O PP݄4CT9C9CT9C7C8Cφ@ACPACTЍTPT`TpTЂTTTTTTЅTTTTT TTTT T`TTTT`ڄڄބPpP†྆Æ TLCLGlyphsM x[(S ] @S PbP3C4CP6C9C9C:C9C7C8Cb@ACPAC]Tpb^T`"d`Tbbbbbb2d4db`bb0@dbpbNd@bPb,d+d6d0'bbpb (b7d9d`#b#bbpbP$b$bPb`b 0d'b ?d@b`0db1d 3d3d4d05d b`5ddЗbbJd1d4d5d Vd %d;dTCustomIconAccessO  TImageIndexS `@ImgListS TCustomImageListResolutionS S 8T ImgList@T TCustomImageListpT TCustomImageListXE ImgListT TDestroyResolutionHandleEvent$selfPointerSenderTCustomImageListAWidthLongIntAReferenceHandleQWordT T  TChangeLinkU  TChangeLinkG ImgListU  TDrawingStyledsFocus dsSelecteddsNormal dsTransparentImgListU V +V  V 4V XV V  V +V 4V V  TImageTypeitImageitMaskImgListV V V W V V 0W TOverlayPW `@ImgListpW TCustomImageListResolutionH (ImgListW  TScaledImageListResolutionW  TScaledImageListResolutionW W ((X TCustomImageListResolutionClassW X TCustomImageListResolutionsX TCustomImageListResolutionsJ ImgList Y $TCustomImageListResolutionEnumeratorhY $TCustomImageListResolutionEnumeratorK ImgListY TCustomImageListGetWidthForPPI$selfPointerSenderTCustomImageList AImageWidthLongIntAPPILongInt AResultWidthLongIntT Z TLCLGlyphsMissingResourcesgmrAllMustExistgmrOneMustExist gmrIgnoreAllImgListZ Z [ [ 8[ Z [ [ h[  TEntryKey[  TEntryKey[ [  PEntryKey\ \ TEntry0\ TEntryL ImgListp\  TResolution\  TResolution\ \ \ ImgList ]  TLCLGlyphsH] (P]  TLCLGlyphsM T ImgList]  ] TCustomIconAccessO ImgList] mrNone mrOk mrCancel mrAbort mrRetry mrIgnore mrYes mrNo mrAll mrNoToAll mrYesToAll mrClose PColor0j  PColorRef`Hj  PAlphaColor`hj  TColorRecj  TColorRecj j  TMsgDlgType mtWarningmtError mtInformationmtConfirmationmtCustomSystem.UITypes8k vk k `k hk Vk k Vk `k hk vk k k  TMsgDlgBtn mbYesmbNombOKmbCancelmbAbortmbRetrymbIgnorembAll mbNoToAll mbYesToAllmbHelpmbCloseSystem.UITypes(l  ^l wl Ul  l  l nl Kl }l Pl fl El  l l El Kl Pl Ul ^l fl nl wl }l l l l `m TMsgDlgButtonsl m  TModalResultn  PModalResultn  n ؁0p q Hp P3C4CTpCpCTpC7C8C0AC@ACPAC]TTT`TTpC`TpTЂTTTpCTTpCpCTTpC TTpCT T`TTTTCCCCCCTBaseSingleInstance@n 5(q s 1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXESingleInstanceXp TBaseSingleInstancePq TBaseSingleInstance@n @singleinstanceq TSingleInstanceStartsiServersiClientsiNotRespondingsingleinstanceq r  r q 8r q r  r hr TSingleInstanceParamsEvent$selfPointerSenderTBaseSingleInstanceParams TStringListq  r TBaseSingleInstanceClassq s ESingleInstanceHs ESingleInstanceXp singleinstances `| w pw (w P3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T`T`TP pP`PpCpCpP0 ` P pC`  pC`PpC0@pp p `@0 TFPImageCanvass TFPImageCanvas8w TFPImageCanvass (}  FPImgCanvpw xBxx | 1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXPixelCanvasExceptionw hH{ | { P3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T`T`TP pCCCCCC`PpCpCpP0 ` P pC`  pC`PpC0@pp p `@0 TFPPixelCanvasx 34PixelCanvasException@| PixelCanvasExceptionw  _ FPPixlCanv| TFPPixelCanvas| TFPPixelCanvasx a FPPixlCanv| 0~ H >P3C4CP6CpCpCpCpC7C8C0AC@ACPAC TEllipseInfo0}  TEllipseInfoData~  TEllipseInfoData~   X~ PEllipseInfoData~ ~  TEllipseInfo  TEllipseInfo0} EllipsesH    1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC fddefg@hhTWSCustomImageListResolutionClearCreateReferenceDeleteDestroyReferenceDrawInsertMoveReplace d dȀ eЀ  f f g @h h (   SP3C4CP6C9C9C:C9C7C8C0AC@ACPACPS\SSTDefaultImageListImplementor TWSCustomImageListResolutionЂ TWSCustomImageListResolution X! WSImgList !TWSCustomImageListResolutionClassX ` TDefaultImageListImplementor ` WSImgList 0؁  (  P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T0`TTTT PC0CCCP`TCustomPropertyStorage `h  ؋ x 0SP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]TS0vSSw`SPwtx0z TStoredValue8 H@؈   pSP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]TSSSpSSSПS`SSPSSPSpP TStoredValues @   qP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TtPtTPropertyStorageLink TPlacementOperationpoSave poRestorePropertyStorage( U N x N U        TCustomPropertyStorageP TCustomPropertyStorage @PropertyStorage  TStoredValue(08؋ TStoredValueEvent$selfPointerSender TStoredValueValue AnsiString @  TStoredValue8 PropertyStorage(8Name00xValue880 KeyString @@0OnSave PP0 OnRestore  TStoredValues  TStoredValues PropertyStorage TPropertyStorageLink` TPropertyStorageLink PropertyStorage "TPropertyStorageSaveExceptionEvent$selfPointerSenderTObject ExClassName AnsiString ExMessage AnsiString .~'.~?.~W.~.~/~.~.~.~.~.~/~/~/~/~/~o.~.~.~/~0~+0~C0~0~ 1~0~s0~s0~0~0~ 1~ 1~ 1~0~ 1~[0~/~0~1~1~1~2~2~2~{2~2~%2~82~[2~2~2~2~2~2~K2~2~k2~@ ؒ P3C4CP6CpCpCpCpC7C8C0AC@ACPAC TPropInfoListp `P  ` 1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC0` TPropsStorageX 7 TPropInfoList  TPropInfoListp  RttiUtilsؒ  TReadStrEvent$selfPointer$result AnsiStringASection AnsiStringItem AnsiStringDefault AnsiString AnsiString TWriteStrEvent$selfPointerASection AnsiStringItem AnsiStringValue AnsiStringȓ TEraseSectEvent$selfPointerASection AnsiStringP TPropStorageOptionpsoAlwaysStoreStringsCount RttiUtils ͔  ͔  TPropStorageOptions 0  TPropsStorage `  TPropsStorageX  RttiUtils   TFindComponentEvent@Name  p ( 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC0` P TWSMenuItem OpenCommand CloseCommand AttachMenu CreateHandle DestroyHandle SetCaption SetShortCut SetVisibleSetCheck SetEnable SetRadioItemSetRightJustifyUpdateMenuIcon   З 0 `     0 P@ P ` X 0 X  1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACPTWSMenu CreateHandle SetBiDiMode8 PH P  h H 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACP TWSMainMenu  h   1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACP TWSPopupMenuPopupx   TWSMenuItem  TWSMenuItemX  WSMenus( TWSMenuItemClassX ` TWSMenuP  WSMenus  TWSMenuClass  TWSMenu؝  TWSMainMenu  TWSMainMenu  WSMenusH  TWSPopupMenu  TWSPopupMenu  WSMenus TWSPopupMenuClass  @  1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC THTMLParser  TOnFoundTag$selfPointer NoCaseTag AnsiString ActualTag AnsiString  TOnFoundText$selfPointerText AnsiStringp  THTMLParser  THTMLParser FastHTMLParser , H  1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp ppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pTWSScrollingWinControlGetDefaultColor8 0 ` X ط 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp ppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@p TWSScrollBoxh ` ` H 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp ppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pTWSCustomFramep p h  1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp ppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pTWSFramex `    1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp ppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@p0` P P@@ TWSCustomForm CloseModalSetAllowDropFiles SetAlphaBlendSetBorderIconsSetFormBorderStyle SetFormStyleSetIcon ShowModalSetModalResultSetRealPopupParentSetShowInTaskbar SetZPositionGetDefaultColorGetDefaultDoubleBufferedActiveMDIChildCascadeGetClientHandleGetMDIChildrenNextPreviousTile ArrangeIcons MDIChildCount0 @ 0X h `x      Ȭ P  P  8 H P ` @p x  @   ( б  1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp ppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@p0` P P@@TWSForm0 (   1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp ppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@p0` P P@@ TWSHintWindow h  1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TWSScreen P  1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTWSApplicationProperties TWSScrollingWinControl0 4WSForms TWSScrollingWinControlClass( 0 TWSScrollingWinControl`  TWSScrollBox  TWSScrollBoxh ( WSFormsط TWSCustomFrame TWSCustomFramep ( WSFormsH TWSFrame TWSFramex x WSForms  TWSCustomForm  TWSCustomForm ( WSForms TWSCustomFormClassP X TWSForm TWSForm0 P WSForms  TWSHintWindow  TWSHintWindow P WSForms  TWSScreenX  TWSScreen  WSForms TWSApplicationProperties TWSApplicationProperties  WSForms H `  ` 0 x SP3C4CP6C9C9C:C9C7C8C0AC@ACPACPSSSTImageCacheItemsp (X  P3C4CP6C9C9C:C9C7C8C0AC@ACPACTImageListCache IImageCacheListenerImageListCache ImageListCacheн  TImageCacheItemȽ    TImageCacheItem T Ƚ  h PImageCacheItem Ⱦ TImageCacheItems TImageCacheItemsp `ImageListCache0 ImageListCachep TImageListCache TImageListCache ImageListCache Ph    TP3C4CP6C9C9C:C9C7C8C0T@ACPAC]T^TpT`TPSCSCSSSpSSTTT@T@T T TPTpTTCCTT`T0T T0TCTTTTT` T`"T#TP$T%T(TPTCustomMemoStrings( h  @   2P3C4CP6C9C9C:C9C7C8C0T@ACPAC]T^TpT`TPS$S#0'',STTTPU[ TPTpTT3<?`TT0T T0T4TaTTTHb#TP$T%T3P@ $$ TTextStrings  TTextLineRange  TTextLineRange P PTextLineRange  TCustomMemoStrings TCustomMemoStrings(  TextStrings  UUUUUUUH X  UUUUUUUH   UUUUUUUH   UUUUUUUH   UUUUUUUH   UUUUUUUH H  UUUUUUUH x  UUUUUUUH   UUUUUUUH   UUUUUUUH   UUUUUUUH 8  UUUUUUUH h  UUUUUUUH   UUUUUUUH   UUUUUUUH   UUUUUUUH (  UUUUUUUH X    UUUUUUUH   UUUUUUUH   UUUUUUUH   UUUUUUUH H  UUUUUUUH x  UUUUUUUH   UUUUUUUH   UUUUUUUH   UUUUUUUH 8  UUUUUUUH h  UUUUUUUH   UUUUUUUH   UUUUUUUH   UUUUUUUH (  UUUUUUUH X  UUUUUUUH   UUUUUUUH   UUUUUUUH   UUUUUUUH   UUUUUUUH H  UUUUUUUH x  UUUUUUUH   UUUUUUUH   UUUUUUUH   UUUUUUUH 8  UUUUUUUH h  UUUUUUUH   UUUUUUUH   UUUUUUUH   UUUUUUUH (  UUUUUUUH X  UUUUUUUH   UUUUUUUH   UUUUUUUH   UUUUUUUH   UUUUUUUH H  UUUUUUUH x  UUUUUUUH   UUUUUUUH   UUUUUUUH   UUUUUUUH 8  h  UUUUUUUH     TTextStrings  TTextStrings P  TextStrings@ hX X  kP3C4CP6C9C9C:C9C7C8C0T@ACPAC]TpS^TpT`TPS-T .T0.T0iSp.Ti0/TT0Tp4T 1T@T T TPTpTTll2TT06T0T T0T6TTTTTT` T`"T#TP$T%T(T)T-T-T`,T,T5T7T7ThpfggTExtendedStringListx TExtStringsOptionesoClearRecordsOnCreateesoFreeObjectsOnDeleteExtendedStrings0 T l  T l  TExtStringsOptions  TExtendedStringList TExtendedStringListx  ExtendedStringsX ,  H 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pmm TWSScrollBar SetParamsSetKind m m  0  1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pTWSCustomGroupBox    ` 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp ppmpp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@p TWSGroupBoxGetDefaultColor pm , 0  1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pssst@tpttt0u`uuuuu vPvvvv wTWSCustomComboBoxGetDroppedDown GetSelStart GetSelLength GetItemIndex GetMaxLengthSetArrowKeysTraverseListSetDropDownCountSetDroppedDown SetSelStart SetSelLength SetItemIndex SetMaxLengthSetStyle SetReadOnly SetTextHintGetItems FreeItemsSort GetItemHeight SetItemHeight s s s t @t0 ptP th tx 0u `u u u u u  v Pv v v v  w8 x  x 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pssst@tpttt0u`uuuuu vPvvvv w TWSComboBox ,   1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@p nPnnno@opooop@pppr0r`rrrr sPsTWSCustomListBox DragStart GetIndexAtXY GetItemIndex GetItemRectGetScrollWidth GetSelCount GetSelected GetStrings FreeStrings GetTopIndex SelectItem SelectRange SetBorderSetColumnCount SetItemIndexSetScrollWidthSetSelectionModeSetStyle SetSorted SetTopIndex  n Pn n n o @o0 po@ oP o` pp @p pp r 0r `r r r r  s Ps( `   1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@p nPnnno@opooop@pppr0r`rrrr sPs TWSListBoxh ,  0 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pPwwww xPxxxxy@ypyyy0z`zz|p}~ TWSCustomEdit GetCanUndo GetCaretPos GetSelStart GetSelLength SetAlignment SetCaretPos SetCharCase SetEchoModeSetHideSelection SetMaxLengthSetNumbersOnlySetPasswordChar SetReadOnly SetSelStart SetSelLength SetSelText SetTextHintCutCopyPasteUndo Pw w w w  x Px x( x8 xP y` @yp py y y 0z `z z | p} ~  H    1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pPwwww xPxxxxy@ypyyy0zЀz|p}~ `@ TWSCustomMemo AppendText GetStrings FreeStrings SetScrollbars SetWantTabsSetWantReturns SetWordWrap SetSelText0 @  P `` p   @ ЀP H  ` 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pPwwww xPxxxxy@ypyyy0z`zz|p}~TWSEdit@ 8   1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pPwwww xPxxxxy@ypyyy0zЀz|p}~ `@TWSMemo ,   1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pЂpp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@ppTWSCustomStaticText SetAlignmentSetStaticBorderStyleGetDefaultColor p  Ђ P X  1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pЂpp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pp TWSStaticTextX ,`  X 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pЇpp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pTWSButtonControlGetDefaultColorx Їp     1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pЇpp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@p@ TWSButton SetDefault SetShortCut  @   p h 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pЇpp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@ppЃTWSCustomCheckBox RetrieveState SetShortCutSetState SetAlignment0 p@ P Ѓ`     1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pЇpp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@ppЃ TWSCheckBox   x 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pЇpp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@ppЃ TWSToggleBox     1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pЇpp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@ppЃTWSRadioButton  TWSScrollBar  TWSScrollBar 4 WSStdCtrlsH TWSScrollBarClassx  TWSCustomGroupBox TWSCustomGroupBox  6 WSStdCtrls  TWSGroupBox(  TWSGroupBox    WSStdCtrls` TWSCustomComboBox TWSCustomComboBox8 4 WSStdCtrls TWSCustomComboBoxClass   TWSComboBox@  TWSComboBox   WSStdCtrlsx TWSCustomListBox TWSCustomListBox( 4 WSStdCtrls TWSCustomListBoxClass( 0  TWSListBoxX  TWSListBoxh (  WSStdCtrls    TWSCustomEdit  TWSCustomEdit 4 WSStdCtrls0 TWSCustomEditClass` h  TWSCustomMemo  TWSCustomMemoP `  WSStdCtrls TWSCustomMemoClass  TWSEdit( TWSEdit@ `  WSStdCtrls` TWSMemo TWSMemo   WSStdCtrls TWSCustomStaticText 4 WSStdCtrls TWSCustomStaticTextClass0 8 TWSCustomStaticTexth  TWSStaticText  TWSStaticTextX 0  WSStdCtrls TWSButtonControl TWSButtonControlp 4 WSStdCtrlsX  TWSButton  TWSButton   WSStdCtrls TWSButtonClass  TWSCustomCheckBox( TWSCustomCheckBox   WSStdCtrlsh TWSCustomCheckBoxClass   TWSCheckBox  TWSCheckBox   WSStdCtrls  TWSToggleBox@  TWSToggleBox   WSStdCtrlsx TWSRadioButton TWSRadioButton   WSStdCtrls  @    1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pЇpp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@p@@p TWSBitBtnSetGlyph SetLayout SetMargin SetSpacingP ` @p p   .  1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pTWSSpeedButton  TWSBitBtn    WSButtons  TWSBitBtnClassP X  TWSBitBtnx TWSSpeedButton 5 WSButtons TWSSpeedButtonClass  TWSSpeedButton 8ah' 4 ' P݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpT_T``T`0`ЅT`TTT TTTT T`Tpa0aT`Iaڄa````^^``Ў` `@`}`_a`^+`+`P^``_` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``-a"``p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``P H[ 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pTWSCustomSplitter= ? A [ 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@p TWSSplitter? .B 0\ 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@p TWSPaintBoxA .0C \ 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pTWSCustomImage0B @C HD ] 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pTWSImageHC .`E ] 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pTWSBevel`D  hG ] 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pTWSCustomRadioGroupxE G xI p^ 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@p TWSRadioGroupG  K ^ 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pTWSCustomCheckGroupI K M `_ 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@p TWSCheckGroupK H @P _ 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pPwwww xPxxxxy@ypyyy0z`zz|p}~TWSCustomLabeledEditM XP R P` 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pPwwww xPxxxxy@ypyyy0z`zz|p}~TWSLabeledEdit`P  0U  U ` 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp ppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pTWSCustomPanelGetDefaultColorU S 8U 0W 0a 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp ppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pTWSPanel@U HX X a 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC PTWSCustomTrayIconHideShowInternalUpdateShowBalloonHint GetPosition GetCanvas`X hX  pX PX X X HW TWSPageY TWSPage7  6 WSExtCtrlsY  TWSNotebook(Z  TWSNotebook9  6 WSExtCtrls`Z TWSShapeZ TWSShape; 5 WSExtCtrlsZ TWSCustomSplitter[ TWSCustomSplitter=  6 WSExtCtrlsH[  TWSSplitter[  TWSSplitter? [  WSExtCtrls[  TWSPaintBox[  TWSPaintBoxA 5 WSExtCtrls0\ TWSCustomImageh\ TWSCustomImage0B 5 WSExtCtrls\ TWSImage\ TWSImageHC \  WSExtCtrls] TWSBevelH] TWSBevel`D 5 WSExtCtrls] TWSCustomRadioGroup] TWSCustomRadioGroupxE    WSExtCtrls]  TWSRadioGroup8^  TWSRadioGroupG 0^  WSExtCtrlsp^ TWSCustomCheckGroup^ TWSCustomCheckGroupI    WSExtCtrls^  TWSCheckGroup(_  TWSCheckGroupK  _  WSExtCtrls`_ TWSCustomLabeledEdit_ TWSCustomLabeledEditM `  WSExtCtrls_ TWSLabeledEdit` TWSLabeledEdit`P `  WSExtCtrlsP` TWSCustomPanel` TWSCustomPanelS  6 WSExtCtrls` TWSPanel` TWSPanel@U `  WSExtCtrls0a TWSCustomTrayIconha TWSCustomTrayIconHW  WSExtCtrlsa TWSCustomTrayIconClassa a c `c  l 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@бpTWSCommonDialog CreateHandle ShowModal DestroyHandleQueryWSEventCapabilitiesc @ c б0c p@c b c d l 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@бp TWSFileDialogc d e hm 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@бp TWSOpenDialogd e f m 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@бp TWSSaveDialoge e g Xn 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@бpTWSSelectDirectoryDialogf c h n 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@бpTWSColorDialogg .i @o 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pTWSColorButtonh c j Pk o 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACвP TWSFontDialog CreateHandle ShowModal DestroyHandleQueryWSEventCapabilitiesk k в k 0k Pj TWSCommonDialogb  WSDialogs l TWSCommonDialogClassPl Xl TWSCommonDialogl  TWSFileDialogl  TWSFileDialogc Pl  WSDialogsl  TWSOpenDialog0m  TWSOpenDialogd (m  WSDialogshm  TWSSaveDialogm  TWSSaveDialoge m  WSDialogsm TWSSelectDirectoryDialogn TWSSelectDirectoryDialogf m  WSDialogsXn TWSColorDialogn TWSColorDialogg Pl  WSDialogsn TWSColorButtono TWSColorButtonh 5 WSDialogs@o  TWSFontDialogxo  TWSFontDialogj Pl  WSDialogso ` r 8s t 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@p nPnnno@opooop@pppr0r`rrrr sPsඈ@pзTWSCustomCheckListBox GetCheckWidthGetItemEnabled GetHeaderGetStateSetItemEnabled SetHeaderSetStater ඈr @r r ps зs (s o TWSCustomCheckListBoxs TWSCustomCheckListBoxo (  WSCheckLstt TWSCustomCheckListBoxClassHt Pt 0a}  } FaP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpT_T``T`0`ЅT`TTT TTTT T``Tpa0aT`Iaڄa````^^``Ў` `@`}`_a`^+`+`P^``_` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``-a"``p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``P`P`М`0``@U``X`C``_aB`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``0f"``0f@/f<`P```0` @`@`@`p_``Б``p`%a&a'a #`p/a``` ````_@``a```p`X`|`````0a`a0`P1`R`@ a0````P4">">>K"KZZZ4ZK>b"bbTCalculatorCalcKeyEvent$selfPointerkeyCharHP7 TCalculatorDispChangeEvent$selfPointer7 TCalculatorStatecsFirstcsValidcsErrorCalcForm7 8 8  8 08 8  8 8 `8 TCalculatorLayoutclNormalclSimpleCalcForm8 8 8 8 8 8 8 TCalculatorPanel9 TCalculatorPanel VCalcFormh9 TCalculatorForm9 TCalculatorForm`" oCalcForm9  TCalcButton, HxCalcForm:  TCalcBtnKindcbNonecbNum0cbNum1cbNum2cbNum3cbNum4cbNum5cbNum6cbNum7cbNum8cbNum9cbSgncbDcmcbDivcbMulcbSubcbAddcbSqrtcbSquarecbPcntcbRevcbEqlcbBckcbClrcbMPcbMScbMRcbMCcbOkcbCancelCalcFormP: : ; (;  ;  :  : : ; ; ; ; : o: v: }: : : : : : :  :  : #; : :  : : : : H; o: v: }: : : : : : : : : : : : : : : : : : : : ;  ; ; ; ; ; #; (; <  @; = , @ @ A 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pЪ0`TWSCustomCalendar GetDateTimeHitTestGetCurrentView SetDateTimeSetDisplaySettingsSetFirstDayOfWeek SetMinMaxDateRemoveMinMaxDates8@ H@ ЪP@ `@ 0p@ `@ @ @ = TWSCustomCalendarpA TWSCustomCalendar= 4 WSCalendarA TWSCustomCalendarClassA A ,D O 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pTWSPreviewFileControlB e E @P 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@бpTWSPreviewFileDialog(D 0E (F P 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@бpTWSOpenPictureDialog8E @F 8G @Q 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@бpTWSSavePictureDialogHF c HH Q 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@бpTWSCalculatorDialogXG ر K @R 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp ppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@p0` P P@@TWSCalculatorFormhH ر M R 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp ppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@p0` P P@@TWSCalendarDialogForm(K c N @S 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@бpTWSCalendarDialogM TWSPreviewFileControlO TWSPreviewFileControlB 4 WSExtDlgsO TWSPreviewFileDialogP TWSPreviewFileDialog(D m  WSExtDlgs@P TWSOpenPictureDialogP TWSOpenPictureDialog8E xP  WSExtDlgsP TWSSavePictureDialogQ TWSSavePictureDialogHF P  WSExtDlgs@Q TWSCalculatorDialogQ TWSCalculatorDialogXG Pl  WSExtDlgsQ TWSCalculatorFormR TWSCalculatorFormhH   WSExtDlgs@R TWSCalendarDialogFormR TWSCalendarDialogForm(K   WSExtDlgsR TWSCalendarDialogS TWSCalendarDialogM Pl  WSExtDlgs@S 0XT W P3C4CP6C9C9C:C9C7C8C0AC@ACPAC೉TLCLMemManagerS H@U hX ඉP3C4CP6C9C9C:C9C7C8C0AC@ACPACTLCLNonFreeMemManagerpT (hV X `SSP3C4CP6C9C9C:C9C7C8C0AC@ACPAC=SPS9SPS9S@:STSPSUS:S0QSHSTExtMemoryStream`U  TLCLMemManagerItemV  TLCLMemManagerItemV XW V PLCLMemManagerItem0W 8W TLCLMemManager`W TLCLMemManagerS  LCLMemManagerW TLCLEnumItemsMethod$selfPointerItemPointerW TLCLNonFreeMemManager(X TLCLNonFreeMemManagerpT  LCLMemManagerhX TExtMemoryStreamX TExtMemoryStream`U  LCLMemManagerX Z Ho 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TGtkPrivate0Y Z Z o 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@TGtkPrivateWidgetZ [ [ hp 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@TGtkPrivateEntry[ [ \ p 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@TGtkPrivateContainer\ ] ] `q 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@TGtkPrivateBin] ] ^ q 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@TGtkPrivateScrolling^ _ _ hr 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@TGtkPrivateScrollingWinControl_ ^ ` r 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@TGtkPrivateWindow` a a xs 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@TGtkPrivateDialoga ^ b s 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@TGtkPrivateButtonb _ d 8t 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@pTGtkPrivateListc ^ d  u 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@TGtkPrivateNotebookd ] e u 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@TGtkPrivatePanede [ f  v 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@TGtk2PrivateWidgetf ] g v 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@TGtk2PrivateContainerg ^ h (w 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@TGtk2PrivateBinh a i w 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@TGtk2PrivateWindowi b j (x 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@TGtk2PrivateDialogj c k x 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTGtk2PrivateButtonk _ l (y 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTGtk2PrivateMemol e m y 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTGtk2PrivateNotebookm f n (z 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@TGtk2PrivatePanedn  TGtkPrivateo  TGtkPrivate0Y h Gtk2WSPrivateHo TGtkPrivateWidgeto TGtkPrivateWidgetZ xo  Gtk2WSPrivateo TGtkPrivateWidgetClasso p TGtkPrivateEntry(p TGtkPrivateEntry[ o  Gtk2WSPrivatehp TGtkPrivateContainerp TGtkPrivateContainer\ o  Gtk2WSPrivatep TGtkPrivateBin(q TGtkPrivateBin]  q  Gtk2WSPrivate`q TGtkPrivateScrollingq TGtkPrivateScrolling^  q  Gtk2WSPrivateq TGtkPrivateScrollingWinControl r TGtkPrivateScrollingWinControl_ r  Gtk2WSPrivatehr TGtkPrivateWindowr TGtkPrivateWindow` q  Gtk2WSPrivater TGtkPrivateDialog8s TGtkPrivateDialoga 0s  Gtk2WSPrivatexs TGtkPrivateButtons TGtkPrivateButtonb q  Gtk2WSPrivates TGtkPrivateListc r  Gtk2WSPrivate8t TGtkPrivateListClasspt xt TGtkPrivateListt TGtkPrivateNotebookt TGtkPrivateNotebookd q  Gtk2WSPrivate u TGtkPrivatePaned`u TGtkPrivatePanede  q  Gtk2WSPrivateu TGtk2PrivateWidgetu TGtk2PrivateWidgetf o  Gtk2WSPrivate v TGtk2PrivateContainer`v TGtk2PrivateContainerg  q  Gtk2WSPrivatev TGtk2PrivateBinv TGtk2PrivateBinh q  Gtk2WSPrivate(w TGtk2PrivateWindowhw TGtk2PrivateWindowi 0s  Gtk2WSPrivatew TGtk2PrivateDialogw TGtk2PrivateDialogj s  Gtk2WSPrivate(x TGtk2PrivateButtonhx TGtk2PrivateButtonk 0t  Gtk2WSPrivatex TGtk2PrivateMemox TGtk2PrivateMemol r  Gtk2WSPrivate(y TGtk2PrivateNotebookhy TGtk2PrivateNotebookm Xu  Gtk2WSPrivatey TGtk2PrivatePanedy TGtk2PrivatePanedn u  Gtk2WSPrivate(z @{ | 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACƉ TLinkListItemhz 00| | 0ȉP3C4CP6C9C9C:C9C7C8C0AC@ACPACC TLinkListX{  TLinkListItemH|  TLinkListItemhz  LazLinkedList|  TLinkList|  TLinkListX{  LazLinkedList|  8   1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp ppp I0p`p0p`ppKLPJ JHTGtk2WSScrollBar CreateHandleSetKind SetParamsShowHideScrollByP  I`  Jh PJx K L0}   x  1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp@?@>pppppPp@=p?pp @p ppp;0p`p0p`ppp@p:TGtk2WSCustomGroupBox CreateHandleSetColorGetDefaultClientRectGetPreferredSizeSetFontSetText SetBounds ; =( @>@ @?X ?`  @h @ 0   1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp ppmpp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pTGtk2WSGroupBox x  8  1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@p 70pp,ppp/ppPp p4pP5pp@6p ppp7:`p0p`pp6@p@--./@/0t0@1122@33 v 4v`4v w `"&TGtk2WSCustomComboBoxGetPreferredSizeGetDroppedDown GetSelStart GetSelLength GetItemIndex GetMaxLengthGetTextSetArrowKeysTraverseListSetDroppedDown SetSelStart SetSelLength SetItemIndex SetMaxLengthSetStyle SetReadOnlyGetItemsSortSetColorSetFontSetTextShowHideCanFocus CreateHandle DestroyHandle ,؇ @- - . / @/( /0 0P 0` @1p 1 2 2 @3 3  4Ј `4؈ 4 P5 @6 6  7 7( :  X  1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pssst@tpttt0u`uuuuu vPvvvv wTGtk2WSComboBoxȊ `  `  1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppppp ppp0p`p0p`pp@p n o`ppp0r@pPTGtk2WSCustomListBox CreateHandle GetIndexAtXY GetItemIndex GetItemRectGetScrollWidth GetSelCount GetSelected GetStrings GetTopIndex SelectItem SetBorderSetColor SetItemIndexSetScrollWidthSetSelectionModeSetStyle SetSorted SetTopIndexSetFontShowHide 0 @  P `  p    `  pА  @   p( 8 PH P p  @  1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@p nPnnno@opooop@pppr0r`rrrr sPsTGtk2WSListBox H  P  1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0ppppppppPp p@pPpppp ppp`0p`p0p`ppp@pPw@Px@y`pzp` TGtk2WSCustomEdit SetCallbacks CreateHandle GetCaretPos GetSelStart GetSelLength SetCaretPos SetCharCase SetEchoMode SetMaxLengthSetPasswordChar SetReadOnly SetSelStart SetSelLengthSetText SetSelTextGetPreferredSizeSetColor SetAlignmentCutCopyPasteUndo  `0 @ @P ` p  P   ` И p    @ 0 p8 `@  H X 8   P 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0 ppppppPp pp@pp p ppp0p`p0p`ppp@pPwp pP xP @y@ P z|p}~ ``TGtk2WSCustomMemo CreateHandle GetSelStart GetSelLength GetStrings SetAlignmentSetColorSetFont SetSelStart SetSelLength SetWantTabs SetEchoModeSetPasswordChar SetWordWrap SetCharCase SetMaxLength SetReadOnly SetSelTextSetText SetScrollbarsGetPreferredSize GetCaretPos SetCaretPos  p Н    p  @ ( P8 H  X @h `x  P    О 0  P    1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pPwwww xPxxxxy@ypyyy0z`zz|p}~ TGtk2WSEditx   8 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pPwwww xPxxxxy@ypyyy0zЀz|p}~ `@ TGtk2WSMemo(    1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pЇpp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pTGtk2WSButtonControl  (  0 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pЇpp@pp0ppPHpppFppPp pPGpGppFp pppD0p`p0p`ppp@p FFPD TGtk2WSButton CreateHandleGetPreferredSizeGetTextSetColorSetFont SetDefault SetShortcutSetText8 DH PH` Fh PGx G  F F F  P   1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pЇpp@pp0ppppppppPp pppppp ppp0p`p0p`pp@@pPTGtk2WSCustomCheckBox CreateHandleGetPreferredSize RetrieveState SetShortCutSetStateSetFontSetTextShowHideh x   P  ȭ Э @8   8 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pЇpp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@ppЃTGtk2WSCheckBoxp   в  1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pЇpp@pp0pp0pppppppPp pppPppppp ppp@O0p`p0p`ppp@ppЃTGtk2WSToggleBox CreateHandle @O 0  ( 8 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pЇpp@pp0pp0pppppppPp pppPppppp pppM0p`p0p`ppp@ppЃTGtk2WSRadioButton CreateHandle M P H   1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pЂpp@pp0pp`RpppRppPp pTpTppRp ppp@P0p`p0p`ppp@pRpSTGtk2WSCustomStaticText CreateHandle SetAlignmentGetPreferredSizeGetText SetCallbacksSetColorSetFontSetStaticBorderStyleSetText ` @Pp R `R R S T Tȷ pS RH h  H 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pЂpp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@ppTGtk2WSStaticText xؼ   P3C4CP6C9C9C:C9C7C8C0T@ACPAC]TpS^TP`TPS ߉SމS݉SpSS0TT@T@T` TPTpTT`TT`T0T T0T@T TTT` T#TP$T%T(TTGtk2MemoStrings  TGtkComboBoxPrivate(  TGtkComboBoxPrivate(  B Ph(B0B8B@BHBPBXB`BhBpBxh PGtkComboBoxPrivate  TGtk2WSScrollBarо TGtk2WSScrollBar0} x Gtk2WSStdCtrls TGtk2WSCustomGroupBoxP TGtk2WSCustomGroupBox   Gtk2WSStdCtrls TGtk2WSGroupBoxؿ TGtk2WSGroupBox  Gtk2WSStdCtrls TGtk2WSCustomComboBoxX TGtk2WSCustomComboBox  Gtk2WSStdCtrls TGtk2WSComboBox TGtk2WSComboBoxȊ  Gtk2WSStdCtrls TGtk2WSCustomListBox` TGtk2WSCustomListBoxp ( Gtk2WSStdCtrls TGtk2WSListBox TGtk2WSListBox  Gtk2WSStdCtrls  ` TGtk2WSCustomEdit TGtk2WSCustomEditX ` Gtk2WSStdCtrls TGtk2WSCustomMemo TGtk2WSCustomMemo  Gtk2WSStdCtrlsP  TGtk2WSEdit  TGtk2WSEditx  Gtk2WSStdCtrls  TGtk2WSMemo  TGtk2WSMemo(  Gtk2WSStdCtrls8 TGtk2WSButtonControlp TGtk2WSButtonControl  Gtk2WSStdCtrls  TGtk2WSButton  TGtk2WSButton  Gtk2WSStdCtrls0 TGtk2WSCustomCheckBoxp TGtk2WSCustomCheckBox8  Gtk2WSStdCtrls TGtk2WSCheckBox TGtk2WSCheckBoxp 8 Gtk2WSStdCtrls8 TGtk2WSToggleBoxx TGtk2WSToggleBox  Gtk2WSStdCtrls TGtk2WSRadioButton TGtk2WSRadioButton  Gtk2WSStdCtrls8 TGtk2WSCustomStaticTextx TGtk2WSCustomStaticTextH 0 Gtk2WSStdCtrls TGtk2WSStaticText TGtk2WSStaticText  Gtk2WSStdCtrlsH   TGtk2MemoStrings TGtk2MemoStrings Gtk2WSStdCtrls ,~ɩ~5~Ө~~ɩ~ɩ~ɩ~ɩ~ɩ~P~ɩ~ɩ~ɩ~ɩ~~5~ɩ~ ~ɩ~ɩ~5~ɩ~ɩ~ɩ~ɩ~ɩ~ɩ~ɩ~ɩ~ɩ~~~ɩ~~ɩ~ɩ~ɩ~ɩ~ɩ~ɩ~,~ɩ~ɩ~ɩ~ɩ~ɩ~ɩ~ɩ~ɩ~ɩ~ɩ~ɩ~~~~ɩ~~$X  h 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC fddefg@hh^```0aTGtk2WSDragImageListResolution BeginDragDragMoveEndDrag HideDragImage ShowDragImagex ^ ` ` ` 0a  '  1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pTGtk2WSControl ,( x p 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACb pppp@pc0pp0ppppP[pXP]0fnkPmmpnolPtpcUd`p@duPyddTGtk2WSWinControl CreateHandle AddControlCanFocusConstraintsChange DestroyHandle InvalidateGetTextSetBorderStyle SetBoundsSetChildZPositionSetColor SetCursorSetFontSetSizeSetPosSetTextSetShape SetBiDiModePaintToRepaintShowHideScrollBy@ UP b` cp c d @d P[ P] 0f k n l Pm pn m o( Pt8 XH uP PyX dh d8 .  1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pTGtk2WSGraphicControl  0 x 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pTGtk2WSCustomControl p1P  1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC fddefg@hhpp pPppTGtk2WSImageList d X x 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@yTGtk2ListBoxPrivateListp ,p   1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp ppp~0p`p0p`ppp@pTGtk2WSBaseScrollingWinControl CreateHandle ~x X' X  X_P݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpT_T``T`0`ЅT`TTT TTTT T@T_`Tpa0aTE_ڄa````^^``Ў` `@`}`_a`^+`+`P^``_` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `` `p`/_`^` _ ^P_ `@_`_a ap_^P`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``-a"``p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``PSpin/Hx8Alignh0Qg4 Alignment|`Anchors 0 AutoSelect 8AutoSizep``4 BorderSpacingH  (Color(0`4 Constraints 8 DecimalPlaces P4 EditorEnabled P`Enabledx``0`Font(  Increment( ൊMaxValue(  8MinValue0OnChange0OnChangeBounds 0OnClickPP!0 OnEditingDone(("0OnEnter88#0OnExitx$0 OnKeyDown؟%0 OnKeyPressx&0OnKeyUp'0 OnMouseDown(0 OnMouseEnter)0 OnMouseLeave*0 OnMouseMove+0 OnMouseUpP,0 OnMouseWheel-0OnMouseWheelDown.0OnMouseWheelUpP/0OnMouseWheelHorz00OnMouseWheelLeft  10OnMouseWheelRight@@20OnResizeHXX30OnUTF8KeyPress `44 ParentColor `54 ParentFont `64ParentShowHint`76 PopupMenu 0 x 8:ReadOnly `0`9ShowHint  ^:4TabStop( _^;5TabOrder(p <9Value ``=Visible TCustomSpinEdit) TCustomSpinEdit H Spin)  TSpinEdit*  TSpinEditx * =Spin.Hx8Alignh0Qg4 Alignment|`Anchors 0 AutoSelect 8AutoSizep``4 BorderSpacingH  (Color(0`4 Constraints P4 EditorEnabled P`Enabledx``0`Fontp( 9 Increment 9MaxValue0Š 9MinValue0OnChange0OnChangeBounds0OnClickPP 0 OnEditingDone((!0OnEnter88"0OnExitx#0 OnKeyDown؟$0 OnKeyPressx%0OnKeyUp&0 OnMouseDown'0 OnMouseEnter(0 OnMouseLeave)0 OnMouseMove*0 OnMouseUpP+0 OnMouseWheel,0OnMouseWheelDown-0OnMouseWheelUpP.0OnMouseWheelHorz/0OnMouseWheelLeft  00OnMouseWheelRight@@10OnResizeHXX20OnUTF8KeyPress `34 ParentColor `44 ParentFont `54ParentShowHint`66 PopupMenu 0 x 7:ReadOnly `0`8ShowHint  ^94TabStop( _^:5TabOrderŠ0 ;9Value ``<VisibleP* 55  1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEGridException04  PaA A   A @P݄4CT0^9C a9C7C8C0AC@ACPAC@MT`TT ^`TpT3TT`0`ЅT`TTT TTTT Tp4`Tpa0aT0ڄa`g``^^``Ў` `@`}`_a`^+`+`P^``0ak`0`0_a_ ?`P8a9a@^^P`P`S`^@F_F_p__````@$_`_^ _ -` _,`,`;`0_`P`,K7`7`PY`PZ`6>C `p`S`^` _`P_ `@_`_a ap_fP`М`0``_@_`@^p_B`pD`D`h0ii]`j@kpF`F`F`G`I``-a"` \p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ `@I@``a```=_|`^```0a_a0`P1`0^`^0`_``PC `p`S`^` _`P_ `@_`_a ap_0P`М`0``_@_`@^p_B`pD`D`h0ii]`j@kpF`F`F`G`I``-a"` \p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ `@I@``a```=_|`^```0a_a0`P1`0^`^0`_``PC `p`S`^` _`P_ `@_`_a ap_0P`М`0``_@_`@^p_B`pD`D`h0ii]`j@kpF`F`F`G`I``-a"` \p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ `@I@``a```=_|`^```0a_a0`P1`0^`^0`_``PC `p`S`^` _`P_ `@_`_a ap_0P`М`0``_@_`@^p_B`pD`D`h0ii]`j@kpF`F`F`G`I``-a"` \p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ `@I@``a```=_|`^```0a_a0`P1`0^`^0`_``PC `p`S`^` _`P_ `@_`_a ap_0P`М`0``_@_`@^p_B`pD`D`h0ii]`j@kpF`F`F`G`I``-a"` \p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ `@I@``a```=_|`^```0a_a0`P1`0^`^0`_``P4  SizePriority 0TagX 0`? 4Title2C5Width 2B5Visible0? 5 ValueCheckedp1`A`5ValueUnchecked`  TCellProps8  TCellProps8 Hp  PCellProps   TColRowProps  TColRowProps   PColRowPropsp x  TGridMessageP0  TGridMessage P   (,008H  PGridMessagep x TStringCellEditor TStringCellEditor(D Grids TButtonCellEditor TButtonCellEditorN @GridsP TPickListCellEditor TPickListCellEditorpX ȅGrids  TEditorItem  TEditorItem HH 8 0 Grids TCompositeCellEditor  TCompositeCellEditorb Grids  TOnDrawCell$selfPointerSenderTObjectaColLongIntaRowLongIntaRectTRectaStateTGridDrawState0p H TOnSelectCellEvent$selfPointerSenderTObjectaColLongIntaRowLongInt CanSelectBoolean TOnSelectEvent$selfPointerSenderTObjectaColLongIntaRowLongInt TGridOperationEvent$selfPointerSenderTObjectIsColumnBooleansIndexLongInttIndexLongInt   THdrEvent$selfPointerSenderTObjectIsColumnBooleanIndexLongInt TOnCompareCells$selfPointerSenderTObjectAColLongIntARowLongIntBColLongIntBRowLongIntResultLongInt8 TSelectEditorEvent$selfPointerSenderTObjectaColLongIntaRowLongInt Editor TWinControlH TOnPrepareCanvasEvent$selfPointerSenderTObjectaColLongIntaRowLongIntaStateTGridDrawStatep  TUserCheckBoxBitmapEvent$selfPointerSenderTObjectaColLongIntaRowLongInt CheckedStateTCheckBoxState ABitmapTBitmap0H TUserCheckBoxImageEvent$selfPointerSenderTObjectaColLongIntaRowLongInt CheckedStateTCheckBoxState ImageListTCustomImageList ImageIndex TImageIndex0T S  TValidateEntryEvent$selfPointerSenderTObjectaColLongIntaRowLongIntOldValue AnsiStringNewValue AnsiString TToggledCheckboxEvent$selfPointerSenderTObjectaColLongIntaRowLongIntaStateTCheckBoxState0 THeaderSizingEvent$selfPointerSenderTObjectIsColumnBooleanaIndexLongIntaSizeLongInt h TCellProcessEvent$selfPointerSenderTObjectaColLongIntaRowLongInt processTypeTCellProcessTypeaValue AnsiString  TGetCellHintEvent$selfPointerSenderTObjectAColLongIntARowLongIntHintText AnsiString TSaveColumnEvent$selfPointerSenderTObjectaColumnTObject aColIndexLongIntaCfg TXMLConfigaVersionLongIntaPath AnsiStringh  TVirtualGrid@  TVirtualGridl Gridsx TGridColumnTitle  TGridPropertyBackup  TGridPropertyBackup   (  TGridColumns  TGridColumnso Grids TGridRectArray0Grids  TSizingRecP  TSizingRecP    TGridDataCache  TGridDataCache   0(,004D L M NPX`dhpx 8  0H TGridCursorState gcsDefaultgcsColWidthChanginggcsRowHeightChanging gcsDraggingGridsp          ( TGridScrollerDoScroll$selfPointerDirTPointX  TGridScroller  TGridScrollerxp Grids  TGetEditEvent$selfPointerSenderTObjectAColLongIntARowLongIntValue AnsiString  TSetEditEvent$selfPointerSenderTObjectAColLongIntARowLongIntValue AnsiString TGetCheckboxStateEvent$selfPointerSenderTObjectAColLongIntARowLongIntValueTCheckBoxState0H TSetCheckboxStateEvent$selfPointerSenderTObjectAColLongIntARowLongIntValueTCheckBoxState0 TCustomDrawGrid TCustomDrawGrid`q  Grids  TDrawGrid  TDrawGridP~  GridsvHx8Align@ߋߋAlternateColor|`AnchorsX 0 AutoAdvance 0AutoEdit 4AutoFillColumnsp``4 BorderSpacingh$ X8 BorderStyleH (Color 9ColCount0uColRowDraggingCursorT 4ColRowDragIndicatorColor0uColSizingCursor C 4ColumnClickSorts `Columns(0`4 Constraints݋pMDefaultColWidth p 4DefaultDrawingދ0M!DefaultRowHeight _P^"DoubleBuffered0``#4 DragCursor8dd$0DragKindȤhx%8DragMode P`&Enabled '0ExtendedSelect T`(4FadeUnfocusedSelection ): FixedColor *8 FixedCols +8 FixedRows  ,4Flatx``0`-Font80.4 GridLineColorb`/4 GridLineStyle 04 GridLineWidth D D 10HeaderHotZones H H 20HeaderPushZonesS 30ImageIndexSortAscS 40ImageIndexSortDescp | | 50MouseWheelOption8 x64OptionsP |74Options2 `84 ParentColor hS_94ParentDoubleBuffered `:4 ParentFont `;4ParentShowHint`<6 PopupMenu` 0=4RangeSelectMode>5RowCount0?uRowSizingCursorxgl@4 ScrollBars `0`AShowHintX ppB0 TabAdvance( _^C5TabOrder  ^D4TabStopP0eE TitleFontxF4TitleImageListG4TitleImageListWidth`  H4 TitleStyle I4UseXORFeatures ``JVisible0ۊK=VisibleColCountۊL=VisibleRowCount M0OnAfterSelection N0OnBeforeSelection` O0OnCheckboxToggledP0OnClick  Q0OnColRowDeleted  R0OnColRowExchanged  S0OnColRowInserted  T0 OnColRowMoved U0OnCompareCells V0OnContextPopup  W0 OnDblClick000X0 OnDragDrop@@Y0 OnDragOver Z0 OnDrawCell[0OnEditButtonClick \0 OnButtonClickPP]0 OnEditingDone0``^0 OnEndDock0pp_0 OnEndDrag((`0OnEnter88a0OnExit`  b0 OnGetCellHint  c0OnGetCheckboxState   d0 OnGetEditMask   e0 OnGetEditText0 ( ( f0 OnHeaderClick0 8 8 g0 OnHeaderSized H H h0OnHeaderSizingxi0 OnKeyDown؟j0 OnKeyPressxk0OnKeyUpl0 OnMouseDownm0 OnMouseEntern0 OnMouseLeaveo0 OnMouseMovep0 OnMouseUpPq0 OnMouseWheelr0OnMouseWheelDowns0OnMouseWheelUpPt0OnMouseWheelHorzu0OnMouseWheelLeft  v0OnMouseWheelRightw0OnPickListSelect@ x0OnPrepareCanvas y0OnSelectEditor z0 OnSelection X X {0 OnSelectCell h h |0OnSetCheckboxState@ x x }0 OnSetEditText``~0 OnStartDockpp0 OnStartDrag0OnTopleftChanged @@0OnUserCheckboxBitmap PP0OnUserCheckboxImageHXX0OnUTF8KeyPress ((0OnValidateEntryH    (  (  (  @  p        0  `    AnsiString TCustomStringGrid TCustomStringGrid@  Grids8 TStringGridStringsp TStringGridStringsX Grids  TStringGrid  TStringGrid h Grids|Hx8Align@ߋߋAlternateColor|`AnchorsX 0 AutoAdvance 0AutoEdit 4AutoFillColumns;aBiDiModep``4 BorderSpacingh$ X8 BorderStyle  0CellHintPriorityH (Color 9ColCount0uColRowDraggingCursorT 4ColRowDragIndicatorColor0uColSizingCursor C 4ColumnClickSorts `Columns(0` 4 Constraints݋pM!DefaultColWidth p"4DefaultDrawingދ0M#DefaultRowHeight _P^$DoubleBuffered0``%4 DragCursor8dd&0DragKindȤhx'8DragMode P`(Enabled )0ExtendedSelect T`*4FadeUnfocusedSelection +: FixedColor ,8 FixedCols -8 FixedRows  .4Flatx``0`/Font8004 GridLineColorb`14 GridLineStyle 24 GridLineWidth D D 30HeaderHotZones H H 40HeaderPushZonesS 50ImageIndexSortAscS 60ImageIndexSortDescp | | 70MouseWheelOption8 x84OptionsP |94Options2 :8ParentBiDiMode `;4 ParentColor hS_<4ParentDoubleBuffered `=4 ParentFont `>4ParentShowHint`?6 PopupMenu` 0@4RangeSelectModeA5RowCount0BuRowSizingCursorxglC4 ScrollBars `0`DShowHintX ppE0 TabAdvance( _^F5TabOrder  ^G4TabStopP0eH TitleFontxI4TitleImageList`  J4 TitleStyle K4UseXORFeatures ``LVisible0ۊM=VisibleColCountۊN=VisibleRowCount O0OnAfterSelection P0OnBeforeSelection  Q0 OnCellProcessR0OnChangeBounds` S0OnCheckboxToggledT0OnClick  U0OnColRowDeleted  V0OnColRowExchanged  W0OnColRowInserted  X0 OnColRowMoved Y0OnCompareCells Z0OnContextPopup000[0 OnDragDrop@@\0 OnDragOver  ]0 OnDblClick ^0 OnDrawCell_0OnEditButtonClick `0 OnButtonClickPPa0 OnEditingDone0``b0 OnEndDock0ppc0 OnEndDrag((d0OnEnter88e0OnExit`  f0 OnGetCellHint  g0OnGetCheckboxState   h0 OnGetEditMask   i0 OnGetEditText0 ( ( j0 OnHeaderClick0 8 8 k0 OnHeaderSized H H l0OnHeaderSizingxm0 OnKeyDown؟n0 OnKeyPressxo0OnKeyUpp0 OnMouseDownq0 OnMouseEnterr0 OnMouseLeaves0 OnMouseMovet0 OnMouseUpPu0 OnMouseWheelv0OnMouseWheelDownw0OnMouseWheelUpPx0OnMouseWheelHorzy0OnMouseWheelLeft  z0OnMouseWheelRight{0OnPickListSelect@ |0OnPrepareCanvas@@}0OnResize ~0OnSelectEditor 0 OnSelection X X 0 OnSelectCell h h 0OnSetCheckboxState@ x x 0 OnSetEditTextPP0 OnShowHint``0 OnStartDockpp0 OnStartDrag0OnTopLeftChanged @@0OnUserCheckboxBitmap PP0OnUserCheckboxImageHXX0OnUTF8KeyPress ((0OnValidateEntry  TWinControlAccess HGrids,  ,  - TWinCtrlAccess HGrids8- 8'6 I 6 P݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpTॎT``T`0`ЅT`TTT TTTT T`Tpa0aTМڄa``^^``Ў` `@`}`_a`^+`+`P^``_` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `` `p`/_`` _ ^P_ `@_`_a ap_^P`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I```"``p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``P\>>\3?("#$%&'A\\ '59=AEIMQUZ_clu~x 8HTHTMLDirdirEmptydirLeftToRightdirRightToLeftHTMLDefsRRRRRRRR(S THTMLalignalEmptyalleftalcenteralright aljustifyalcharHTMLDefsPS|SSmSSuSSSmSuS|SSSST THTMLvalignvaEmptyvatopvamiddlevabottom vabaselineHTMLDefsHTT}TfTtTnTTfTnTtT}TTT THTMLframe frEmptyfrvoidfrabovefrbelowfrhsidesfrvsidesfrlefthandsisefrrighthandsidefrboxfrborderHTMLDefs(U TU\U UUEUdUvUUMUmUUEUMUTU\UdUmUvUUUU@V THTMLrulesruEmptyrunonerugroupsrurowsrucolsruallHTMLDefsVVVVVVVWVVVVVVXWTHTMLvaluetypevtEmptyvtdatavtrefvtobjectHTMLDefsWWWWWWWWWW0X THTMLshapeshEmpty shdefaultshrectshcircleshpolyHTMLDefs`XXX}XXXX}XXXXXYTHTMLinputtype itEmptyittext itpassword itcheckboxitradioitsubmititresetitfileithiddenitimageitbuttonHTMLDefs8Y YsYYYYY YhY~YYYaYYYYaYhYsY~YYYYYYY`ZTHTMLbuttontypebtEmptybtsubmitbtresetbtbuttonHTMLDefsZ[ZZZ [ZZZ[`[ THTMLColor clHTMLBlack clHTMLSilver clHTMLGray clHTMLWhite clHTMLMaroon clHTMLRed clHTMLPurple clHTMLFuchsia clHTMLGreen clHTMLLime clHTMLOlive clHTMLYellow clHTMLNavy clHTMLBlue clHTMLTeal clHTMLAquaHTMLDefs[`\[ J\\[\ \[ ?\ &\[[[U\[ 2\\[[[[[[[\\\&\2\?\J\U\`\P]THTMLAttributeTaguatabbratalinkatacceptcharsetataccept ataccesskeyatactionatalignatalt atarchiveataxis atbackground atbgcoloratborder atcellpadding atcellspacingatchar atcharoff atcharset atcheckedatciteatclass atclassidatclearatcode atcodebase atcodetypeatcoloratcols atcolspan atcompact atcontentatcoordsatdata atdatetime atdeclareatdeferatdir atdisabled atenctypeatfaceatforatframe atframeborder atheadersatheightathref athreflangathspace athttpequivatidatismapatlabelatlangatlink atlongdescatmarginheight atmarginwidth atmaxlengthatmediaatmethod atmultipleatnameatnohref atnoresize atnoshadeatnowrapatobjectatonblur atonchange atonclick atondblclick atonfocus atonkeydown atonkeypress atonkeyupatonload atonmousedown atonmousemove atonmouseout atonmouseover atonmouseup atonreset atonselect atonsubmit atonunload atprofileatprompt atreadonlyatrelatrevatrows atrowspanatrulesatschemeatscope atscrolling atselectedatshapeatsizeatspanatsrc atstandbyatstartatstyle atsummary attabindexattargetattextattitleattypeatusemapatvalignatvalue atvaluetype atversionatvlinkatvspaceatwidthHTMLDefs]v^#^^,^8^A^ ^I^O^ Y^ `^ m^ w^ ^^^^^^^^^^^^^^___"_,_ 5_!<_"G_#Q_$Y_%__&j_'t_({_)_*_+_,_-_._/_0_1_2_3_4_5_6_7_8`9`:(`;0`<9`=D`>K`?T`@_`Ai`Br`C{`D`E`F`G`H`I`J`K`L`M`N`OaPaQaR)aS4aT?aUJaVTaW]aXhaYnaZta[{a\a]a^a_a`aaabacadaeafagahaiajbk blbmbnbo(bp1bq9brEbsObtWbu`bb^ ^^#^,^8^A^I^O^Y^`^m^w^^^^^^^^^^^^^^^___"_,_5_<_G_Q_Y___j_t_{________________``(`0`9`D`K`T`_`i`r`{````````````aaa)a4a?aJaTa]ahanata{aaaaaaaaaaaaaaab bbbb(b1b9bEbObWb`bhTHTMLAttributeSet xbkTHTMLElementTag\etaetabbr etacronym etaddressetappletetareaetbetbase etbasefontetbdoetbig etblockquoteetbodyetbretbutton etcaptionetcenteretciteetcodeetcol etcolgroupetddetdeletdfnetdiretdivetdletdtetem etfieldsetetfontetformetframe etframeseteth1eth2eth3eth4eth5eth6etheadethrethtmletietiframeetimgetinputetins etisindexetkbdetlabeletlegendetlietlinketmapetmenuetmeta etnoframes etnoscriptetobjectetol etoptgroupetoptionetpetparametpreetqetsetsampetscriptetselectetsmalletspanetstrikeetstrongetstyleetsubetsupettableettbodyettd ettextareaettfootetthettheadettitleettretttetuetuletvaretText etUnknownHTMLDefsl]*l.l5l?lIlRlYl]ldl ol ul {l l lllllllllllllllllm m m!m"'m#,m$1m%6m&;m'@m(Em)Lm*Qm+Xm,\m-em.km/sm0ym1m2m3m4m5m6m7m8m9m:m;m<m=m>m?m@mAmBnCnD nEnFnG%nH-nI4nJ=nKFnLNnMTnNZnObnPjn[nQonRznSnTnUnVnWnXnYn\nZnn*l.l5l?lIlRlYl]ldlolul{lllllllllllllllllllm mmm'm,m1m6m;m@mEmLmQmXm\memkmsmymmmmmmmmmmmmmmmmmmnn nnn%n-n4n=nFnNnTnZnbnjnonznnnnnnnnnnn@sTHTMLElementTagSet n8vTHTMLElementFlagefSubelementContentefPCDATAContentefPreserveWhitespace efDeprecated efNoChecksefEndTagOptionalHTMLDefshvvvvvvvwvvvvvvXwTHTMLElementFlagsvw THTMLElementProps0w THTMLElementPropsw0wlxPHTMLElementPropspxxx p]xnx vxbx x\y R0y 0S`y (Ty P Uy 0Vy W z (XPz X Yz [z 8z5{1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX EDBEditError{{|1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEInvalidEditMask{5}p1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX EInvalidUtf8|}~1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEInvalidCodePoint}fЈ Ȉ.gP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpT=T``T`0`ЅT`TTT TTTT T0`Tpa0aT@(ڄ0Dg````^^``Ў` `@`}`_a`^+`+`P^``0g` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `N `p`/_`;g` _JgP_ `0; ap_^P`М`0``@?g_@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``p@~f .gP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpT=T``T`0`ЅT`TTT TTTT T0`Tpa0aT@(ڄ0Dg````^^``Ў` `@`}`_a`^+`+`P^``0g` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `N `p`/_`;g` _JgP_ `0; ap_^P`М`0``@?g_@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``p0 OnMouseWheel?0OnMouseWheelDown@0OnMouseWheelUp``A0 OnStartDockppB0 OnStartDragffC0OnValidationErrorHXXD0OnUTF8KeyPressE4EditMask"0``aF5Text"P G:TextHintH5H4 SpaceChar  x  ت 581CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEArray80Ȯ[P3C4CP6C9C9C:C9C7C8C0AC@ACPACTPointerPointerArrayEArrayEArray8 DynamicArray8 TOnNotifyItem$selfPointerSenderTObjectColLongIntRowLongIntItemPointerpTOnExchangeItem$selfPointerSenderTObjectIndexLongInt WithIndexLongIntTPointerPointerArrayTPointerPointerArray DynamicArrayȮ؁ذ@tP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTTTTTTЅTTTTT TTTT T `TTTTП p TXMLConfigȲز@tP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTTTTTTЅTTTTT TTTT T `TTTTП pTRttiXMLConfig TDomNodeArrayp Laz2_XMLCfg TDomNodeArrayx Laz2_XMLCfgP TNodeCache0H H( TNodeCache0x  (0 Laz2_XMLCfg ȴ TXMLConfig`p TXMLConfig@ Laz2_XMLCfg`4Filename0<Document hh0 ReadFlags0ll0 WriteFlagsTRttiXMLConfigTRttiXMLConfig Laz2_XMLCfgTCSVRecordProc Fields $parentfp TCSVEncodingceAutoceUTF8ceUTF16 ceUTF16be LCSVUtilsHgu}ngnu}8p1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTFileStateCacheItem(й`P3C4CP6C9C9C:C9C7C8C0AC@ACPACTFileStateCacheTFileStateCacheItemFlag fsciExists fsciDirectory fsciReadable fsciWritablefsciDirectoryReadablefsciDirectoryWritablefsciTextfsciExecutablefsciAge fsciPhysical LazFileCache  U}J ɺcpJUcp}ɺxTFileStateCacheItemFlagsػTFileStateCacheItem TFileStateCacheItem LazFileCachepTOnChangeFileStateTimeStamp$selfPointerSenderTObject AFilename AnsiString  LazFileCache(TFileStateCacheX `TFileStateCache LazFileCacheTOnFileExistsCached$selfPointerFilename AnsiStringBoolean TOnFileAgeCached$selfPointerFilename AnsiStringLongIntX`ppjP3CP6C9C9C:C9C7C8C0AC@ACPAC o00nPoo"""#o9op780 P `90&rvPvpx TDOMDocument h0?P3C4CP6C9C9C:C9C7C8C0AC@ACPAC@A TDOMNodeList(hKP3C4CP6C9C9C:C9C7C8C0AC@ACPACP TVTDOMNamedNodeMap8PP3CP6C9C9C:C9C7C8C0AC@ACPACC@`C!""""#0#P`0 P `0&TDOMNodepP3CP6C9C9C:C9C7C8C0AC@ACPAC@00;p=`Ѕ0#91p6780 P 9TDOMAttr0hpP3CP6C9C9C:C9C7C8C0AC@ACPAC@00`;p=`Ѕ0#91p678`9 TDOMElement@P3CP6C9C9C:C9C7C8C0AC@ACPAC ^P@`!""""#0#P`0 P 0&TDOMText@PP3CP6C9C9C:C9C7C8C0AC@ACPAC ^`^@`଑!""""#0#P`0 P @0& TDOMComment0@(hP3CP6C9C9C:C9C7C8C0AC@ACPAC ^P@`!""""#0#P`0 P ୑0&TDOMCDATASectionh(ЮP3CP6C9C9C:C9C7C8C0AC@ACPAC@``!""""#0#P`0 P `0&TDOMDocumentTypeX1P3CP6C9C9C:C9C7C8C0AC@ACPAC00;p="""#0#91p6780 P 90&TDOMEntityReference8H(xHP3CP6C9C9C:C9C7C8C0AC@ACPAC@@`!""""#0#P`0 P 0&TDOMProcessingInstructionx0h P3CP6C9C9C:C9C7C8C0AC@ACPAC@00;p=`Ѕ0#91p6780 P 9 TDOMAttrDef(P3C4CP6C9C9C:C9C7C8C0AC@ACPAC TNodePoolH 5X1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX EDOMError0 1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX EDOMIndexSize 81CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEDOMHierarchyRequest 1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEDOMWrongDocument (1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX EDOMNotFound 1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEDOMNotSupported 1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEDOMInUseAttribute x1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEDOMInvalidState h1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX EDOMSyntax P1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEDOMInvalidModification @1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX EDOMNamespacep (x1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEDOMInvalidAccessX(1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTDOMNodeEnumeratorH 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTDOMNodeAllChildEnumerator8P(1P3CP6C9C9C:C9C7C8C0AC@ACPACC00C;p="""#0#91p6780 P `90&TDOMNode_WithChildren0@xP?P3C4CP6C9C9C:C9C7C8C0AC@ACPACGATDOMElementList@(h(P3CP6C9C9C:C9C7C8C0AC@ACPACC ^`^@`C!""""#0#P`0 P `0&TDOMCharacterDataX1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTDOMImplementationPH1P3CP6C9C9C:C9C7C8C0AC@ACPACa00`;p="""#0#91p6780 P @a90&TDOMDocumentFragmentx@pjP3CP6C9C9C:C9C7C8C0AC@ACPAC o00nPoo"""#o9op780 P `90&r TXMLDocument(`P1P3CP6C9C9C:C9C7C8C0AC@ACPAC@00C;p=`Ѕ0#91p6780 P `9 TDOMNode_NSP((PP3CP6C9C9C:C9C7C8C0AC@ACPACp@`@!""""#0#P`0 P 0& TDOMNotationph1P3CP6C9C9C:C9C7C8C0AC@ACPAC00P;p="""#0#91p6780 P 90& TDOMEntity@( KP3C4CP6C9C9C:C9C7C8C0AC@ACPAC`YZ ] TAttributeMap8x(TDOMNode@TDOMNode_WithChildrenx TNamespacesLaz2_DOM TDOMDocumenthTDOMNodeLaz2_DOMPTDOMNode_WithChildren0xLaz2_DOM TDOMDocumentLaz2_DOM TDOMNodeList TDOMNodeListLaz2_DOM0TDOMNamedNodeMaphTDOMNamedNodeMapLaz2_DOM TDOMNode_NSTDOMAttr TDOMNode_NSLaz2_DOMPTDOMAttr0Laz2_DOM TDOMElement TDOMElementLaz2_DOMTDOMCharacterData8(TDOMTextxTDOMCharacterDataxLaz2_DOMTDOMTextLaz2_DOM TDOMComment TDOMComment0Laz2_DOMPTDOMCDATASectionTDOMCDATASectionLaz2_DOMTDOMDocumentType8@HPTDOMDocumentTypexLaz2_DOMTDOMEntityReferencePTDOMEntityReference8Laz2_DOMTDOMProcessingInstruction8@HTDOMProcessingInstructionxLaz2_DOMLaz2_DOM TDOMAttrDef  TDOMAttrDefLaz2_DOMh TNodePool TNodePoolHLaz2_DOM TNodePoolArrayPNodePoolArray@H TNodePoolArrayh TSetOfChar H PDOMString  EDOMError  EDOMError0Laz2_DOMX EDOMIndexSize EDOMIndexSizeLaz2_DOMEDOMHierarchyRequestEDOMHierarchyRequestLaz2_DOM8EDOMWrongDocumentxEDOMWrongDocumentLaz2_DOM EDOMNotFound EDOMNotFoundLaz2_DOM(EDOMNotSupported`EDOMNotSupportedLaz2_DOMEDOMInUseAttributeEDOMInUseAttributeLaz2_DOMEDOMInvalidStateXEDOMInvalidStateLaz2_DOM EDOMSyntax EDOMSyntaxLaz2_DOMEDOMInvalidModification@EDOMInvalidModificationLaz2_DOM EDOMNamespace EDOMNamespacepLaz2_DOMEDOMInvalidAccess8EDOMInvalidAccessXLaz2_DOMx TNodeFlagEnum nfReadonly nfRecyclednfLevel2 nfIgnorableWS nfSpecified nfDestroyingLaz2_DOM (  TNodeFlags TDOMNodeEnumeratorTDOMNodeEnumeratorHLaz2_DOM(TDOMNodeAllChildEnumeratorhTDOMNodeAllChildEnumerator8Laz2_DOM TDOMNodeClassx TFilterResultfrFalsefrNoRecurseFalsefrTruefrNoRecurseTrueLaz2_DOM8@XQ8@QXTDOMElementList 0TDOMElementList`Laz2_DOMPTDOMImplementationTDOMImplementationLaz2_DOMTDOMDocumentFragmentTDOMDocumentFragmentxLaz2_DOMH TXMLDocument TXMLDocument(Laz2_DOM TNamespaceInfo 8 TNamespaceInfo8  h@p TAttrDataTypedtCdatadtIddtIdRefdtIdRefsdtEntity dtEntities dtNmToken dtNmTokens dtNotationLaz2_DOM $/P$/   TDOMNotation8@HP TDOMNotationxLaz2_DOM TDOMEntityPX`h TDOMEntity@Laz2_DOMh TAttrDefault adImplied adDefault adRequiredadFixedLaz2_DOM8  TExtenth  TExtenth   PExtent   TAttributeMapLaz2_DOM 05 p ( 1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX EXMLReadError0   1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTDOMParseOptions 0 #"1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTXMLInputSource   #ԑP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TDOMParser P8h0%P3CP6C9C9C:C9C7C8C0AC@ACPACp@`@!""""#0#P`0 P 0&TDOMNotationEx h0p%ЮP3CP6C9C9C:C9C7C8C0AC@ACPAC@``!""""#0#P`0 P `0&TDOMDocumentTypeExx%`P3CP6C9C9C:C9C7C8C0AC@ACPAC@00`;p=`Ѕ0#91p678`9TDOMElementDef0hpH&%1P3CP6C9C9C:C9C7C8C0AC@ACPAC00P;p="""#0#91p6780 P 90& TDOMEntityEx X'h'`P3C4CP6C9C9C:C9C7C8C0AC@ACPAC TXMLReader`h@('1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@ݑ`ݑݑܑܑTXMLCharSourcephx(P3C4CP6C9C0:C9C7C8C0AC@ACPAC0W`TXMLDecodingSourceP(P3C4CP6C9C0:C9C7C8C0AC@ACPAC0WpTXMLStreamInputSourceP)@)P3C4CP6C9C0:C9C7C8C0AC@ACPAC0W@TXMLFileInputSource0(*0P3C4CP6C9C9C:C9C7C8C0AC@ACPACTContentParticle*P3C4CP6C9C9C:C9C7C8C0AC@ACPAC=S9S9S9S9S0KSPKSJSKS:SKSHSTHandleOwnerStream$fw00?~  !"#$%&'PXMLUtilString? THashItem ? THashItem? `h@? PHashItemH@P@ PPHashItemh@p@ THashItemArrayh@@PHashItemArray@@ THashForEach h@Entryarg@ THashTable0A THashTable3 Laz2_XMLUtilshA TExpHashEntry A TExpHashEntryA ``?HA TExpHashEntryArrayAPB TExpHashEntryArrayHBBPExpHashEntryArrayBB TDblHashArrayB TDblHashArrayx4 Laz2_XMLUtils0CTBindingpCTBinding`5 Laz2_XMLUtilsCTAttributeAction aaUnchangedaaPrefixaaBoth Laz2_XMLUtilsC(DDDHDDD(DxDC Laz2_XMLUtilsD TNSSupportD ?0D TNSSupportH6 Laz2_XMLUtils0E TSetOfByte hE 0GHXU1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@p0 TWSCustomGridSendCharToEditorInvalidateStartY InvalidateGetEditorBoundsFromCellRectG0GGGE P`B TUU@P݄4CT0^9C a9C7C8C0AC@ACPAC@MT`TT ^`TpT3TT`0`ЅT`TTT TTTT Tp4`Tpa0aT0ڄa`g``^^``Ў` `@`}`_a`^+`+`P^``0ak`0`0_a_ ?`P8a9a@^^P`P`S`^@F_F_p__````@$_`_^ _ -` _,`,`;`0_`P`,K7`7`PY`PZ`6>C `p`S`^` _`P_ `@_`_a ap_fP`М`0``_@_`@^p_B`pD`D`h0ii]`j@kpF`F`F`G`I``-a"` \p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ `@I@``a```=_|`^```0a_a0`P1`0^`^0`_``P`P`М`0``@U``X`C``PagaB`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``Xg"``p`J`<`P```0` @`@`@`p_``Б``wg%a&a'a #`p/a``` ````_@``a```p`X`|`````0a`a0`P1`R`@ a0````P`P`М`0``@U``X`C``_aB`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``o"``p`J`<`P```0` @`@`@`p_``Б``p`%a&a'a #`p/a``` ````_@``a```p`o|`````0a`a0`P1`R`@ a0````P`P`М`0``@U``X`C``_aB`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``0f"``0f@/f<`P```0` @`@`@`p_``Б``p`%a&a'a #`p/a``` ````_@``a```p`X`|`````0a`a0`P1`R`@ a0````PB0GJPU0VPWW_aTDBCustomNavigator-=@p^P݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpTHTpIT`0`ЅT`TTT TTTT TPY`Tpa0aTnڄa````^^``Ў` `@`}`_a`^+`+`P^``_` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_` n`x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`na ap_HaXМ`0`n0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I`` W"``p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``PB0GJPU0VPWW_a TDBNavigator@P(@P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TKPKě0ěPě`ěpěěěěśPśpśśśśƛ`ǛǛTDBLookupDataLinkh  0 X TFieldDataLink8TFieldDataLink@mDBCtrls DBCtrlsP TDBLookupx TDBLookupn@DBCtrlsTDBEditHTDBEditpIDBCtrls: f f0CustomEditMaskr@t5 DataField0st5 DataSource 0 x :ReadOnlyHx8Alignh0Qg4 Alignment|`Anchors 0 AutoSelect 8AutoSize;aBiDiModep``4 BorderSpacinghQ_X9 BorderStylee` 8CharCaseH  (Color(0`4 Constraints _P^DoubleBuffered0``4 DragCursor8dd 0DragKindȤhx!8DragMode P`"Enabled#4EditMaskx``0`$FontP=<%5 MaxLength &8ParentBiDiMode `'4 ParentColor hS_(4ParentDoubleBuffered `)4 ParentFont `*4ParentShowHintH05g+4 PasswordChar`,6 PopupMenu `0`-ShowHint( _^.5TabOrder  ^/4TabStop"P 0:TextHint ``1Visible20OnChange30OnClick 40OnContextPopup  50 OnDblClick00060 OnDragDrop@@70 OnDragOverPP80 OnEditingDone0pp90 OnEndDrag((:0OnEnter88;0OnExitx<0 OnKeyDown؟=0 OnKeyPressx>0OnKeyUp?0 OnMouseDown@0 OnMouseEnterA0 OnMouseLeaveB0 OnMouseMoveC0 OnMouseUpPD0 OnMouseWheelE0OnMouseWheelDownF0OnMouseWheelUpppG0 OnStartDragHXXH0OnUTF8KeyPressTDBText+TDBText{<DBCtrls-Hx8Alignh(`\g4 Alignment|`Anchors 8AutoSize;aBidiModep``4 BorderSpacingH  (Color(0`4 Constraints5 DataField05 DataSource0``4 DragCursor8dd0DragKindȤhx8DragMode P`EnabledH0P]g4 FocusControlx``0`Font <dg4Layout  8ParentBidiMode `!4 ParentColor `"4 ParentFont `#4ParentShowHint`$6 PopupMenu 9^g%4 ShowAccelChar `0`&ShowHint Pdgeg'5 Transparent ``(Visible :eg)4WordWrap*0OnClick  +0 OnDblClick000,0 OnDragDrop@@-0 OnDragOver0pp.0 OnEndDrag/0 OnMouseDown00 OnMouseEnter10 OnMouseLeave20 OnMouseMove30 OnMouseUpP40 OnMouseWheel50OnMouseWheelDown60OnMouseWheelUp70OnChangeBounds 80OnContextPopup@@90OnResizepp:0 OnStartDrag 8xg;4 OptimalFill ,TCustomDBListBox5TCustomDBListBox8DBCtrls6 TDBListBox@6 TDBListBox086FDBCtrls7Hx8Align|`Anchors;aBiDiModep``4 BorderSpacinghQ_X9 BorderStyleH  (Color(0`4 ConstraintsЈЊ5 DataField5 DataSource _P^DoubleBuffered0``4 DragCursor8dd0DragKindȤhx8DragMode P`Enabled 8 8ExtendedSelectx``0`Fontff5 ItemHeightH  8Items P !8 MultiSelect"0OnClick #0OnContextPopup  $0 OnDblClick000%0 OnDragDrop@@&0 OnDragOver'0 OnDrawItem0pp(0 OnEndDrag(()0OnEnter88*0OnExit؟+0 OnKeyPressx,0 OnKeyDownx-0OnKeyUp.0 OnMouseDown/0 OnMouseEnter00 OnMouseLeave10 OnMouseMove20 OnMouseUpP30 OnMouseWheel40OnMouseWheelDown50OnMouseWheelUp@@60OnResizepp70 OnStartDragHXX80OnUTF8KeyPress 90Options :8ParentBiDiMode hS_;4ParentDoubleBuffered `<4ParentShowHint`=6 PopupMenu P>5ReadOnly `0`?ShowHint X @8Sorted` A8Style( _^B5TabOrder  ^C4TabStopffD5TopIndex ``EVisiblex6TDBLookupListBox0BTDBLookupListBox86JDBCtrls;Hx8Align|`Anchors;aBiDiModep``4 BorderSpacinghQ_X9 BorderStyleH  (Color(0`4 ConstraintsЈЊ5 DataField5 DataSource _P^DoubleBuffered0``4 DragCursor8dd0DragKindȤhx8DragMode P`Enabledx``0`FontpР5KeyField05 ListFieldpࡓ 5ListFieldIndex !5 ListSource `"5 LookupCache0#5 NullValueKey$5 EmptyValue@p%5 DisplayEmpty&0OnClick '0OnContextPopup  (0 OnDblClick000)0 OnDragDrop@@*0 OnDragOverPP+0 OnEditingDone0pp,0 OnEndDrag((-0OnEnter88.0OnExit؟/0 OnKeyPressx00 OnKeyDownx10OnKeyUp20 OnMouseDown30 OnMouseEnter40 OnMouseLeave50 OnMouseMove60 OnMouseUpP70 OnMouseWheel80OnMouseWheelDown90OnMouseWheelUp@@:0OnResizepp;0 OnStartDragHXX<0OnUTF8KeyPress =0Options >8ParentBiDiMode hS_?4ParentDoubleBuffered `@4ParentShowHint`A6 PopupMenu PB5ReadOnly ࢓C5ScrollListDataset `0`DShowHint X E8Sorted( _^F5TabOrder  ^G4TabStopffH5TopIndex ``IVisiblepB TDBRadioGroupH O TDBRadioGroupȉ@DBCtrls1Hx8Align|`Anchors n4AutoFill 8AutoSize;aBiDiModep``4 BorderSpacing"0``a+`Caption@`_4 ChildSizingH  (Colorn4 ColumnLayoutn4Columns(0`4 Constraints࣓ओ5 DataField 5 DataSource _P^DoubleBuffered0``4 DragCursorȤhx8DragMode P` Enabledx``0`!Font`"4Items88#0OnChange$0OnChangeBounds%0OnClick &0OnContextPopup000'0 OnDragDrop@@(0 OnDragOver0pp)0 OnEndDrag*0 OnMouseDown+0 OnMouseEnter,0 OnMouseLeave-0 OnMouseMove.0 OnMouseUpP/0 OnMouseWheel00OnMouseWheelDown10OnMouseWheelUp@@20OnResizepp30 OnStartDrag 48ParentBiDiMode `54 ParentColor hS_64ParentDoubleBuffered `74 ParentFont `84ParentShowHint`96 PopupMenu :5ReadOnly `0`;ShowHint( _^<5TabOrder  ^=4TabStopP>4Values ``?VisiblehO TDBCheckBoxY TDBCheckBoxX@DBCtrls2!@:ActionHx8Align0|g`|g5 Alignment 0 AllowGrayed|`Anchors 8AutoSize;aBiDiModep``4 BorderSpacing"0``a+`CaptionH  (Color(0`4 Constraints5 DataFieldPP5 DataSource _P^DoubleBuffered0``4 DragCursor8dd0DragKindȤhx8DragMode P` Enabledx``0`!Font"X`` Hint"0OnChange#0OnClick $0OnContextPopup000%0 OnDragDrop@@&0 OnDragOver0pp'0 OnEndDrag(((0OnEnter88)0OnExit*0 OnMouseDown+0 OnMouseEnter,0 OnMouseLeave-0 OnMouseMove.0 OnMouseUpP/0 OnMouseWheel00OnMouseWheelDown10OnMouseWheelUppp20 OnStartDrag 38ParentBiDiMode `44 ParentColor hS_54ParentDoubleBuffered `64 ParentFont `74ParentShowHint`86 PopupMenu еж95ReadOnly `0`:ShowHint( _^;5TabOrder  ^<4TabStop= ValueCheckedp“>ValueUnchecked ``?Visible@ZTCustomDBComboBoxdTCustomDBComboBoxȅDBCtrls0e TDBComboBoxhe TDBComboBox``eSDBCtrlsDHx8Align|`Anchors 0f4ArrowKeysTraverseList @ff5 AutoComplete0AutoCompleteText 0 AutoDropDown 0 AutoSelect 8AutoSize;aBiDiModep``4 BorderSpacinghQ_X9 BorderStyleef4CharCaseH  (Color(0`4 ConstraintsȓpГ5 DataFieldȓГ5 DataSource _P^DoubleBuffered0`` 4 DragCursor8dd!0DragKindȤhx"8DragMode #8 DropDownCount P`$Enabledx``0`%Fonth &: ItemHeightP '8Itemsff(5 ItemWidth ): MaxLength*0OnChange+0OnChangeBounds,0OnClick-0 OnCloseUp .0OnContextPopup  /0 OnDblClick00000 OnDragDrop@@10 OnDragOver20 OnDrawItem  30 OnDropDownPP40 OnEditingDone0pp50 OnEndDrag((60OnEnter8870OnExitx80 OnKeyDown؟90 OnKeyPressx:0OnKeyUp;0 OnMouseDown<0 OnMouseEnter=0 OnMouseLeave>0 OnMouseMove?0 OnMouseUpP@0 OnMouseWheelA0OnMouseWheelDownB0OnMouseWheelUpPPC0OnSelectppD0 OnStartDragHXXE0OnUTF8KeyPress F8ParentBiDiMode `G4 ParentColor hS_H4ParentDoubleBuffered `I4 ParentFont `J4ParentShowHint`K6 PopupMenu ˓ѓL5ReadOnly `0`MShowHint l N8Sortedp O8Style( _^P5TabOrder  ^Q4TabStop ``RVisibleeTDBLookupComboBox0tTDBLookupComboBox`eWDBCtrlsHHx8Align|`Anchors 0f4ArrowKeysTraverseList @ff5 AutoComplete 0 AutoDropDown 0 AutoSelect 8AutoSize;aBiDiModep``4 BorderSpacinghQ_X9 BorderStyleef4CharCaseH  (Color(0`4 ConstraintsȓpГ5 DataFieldȓГ5 DataSource _P^DoubleBuffered0``4 DragCursor8dd 0DragKindȤhx!8DragMode "5 DropDownRows P`#Enabledx``0`$Font%5KeyFieldP&5 ListField'5ListFieldIndex@(5 ListSource )5 LookupCacheP*5 NullValueKey+5 EmptyValuep,5 DisplayEmpty-0OnChange.0OnChangeBounds/0OnClick00 OnCloseUp 10OnContextPopup  20 OnDblClick00030 OnDragDrop@@40 OnDragOver50 OnDrawItem  60 OnDropDownPP70 OnEditingDone0pp80 OnEndDrag((90OnEnter88:0OnExitx;0 OnKeyDown؟<0 OnKeyPressx=0OnKeyUp>0 OnMouseDown?0 OnMouseEnter@0 OnMouseLeaveA0 OnMouseMoveB0 OnMouseUpPC0 OnMouseWheelD0OnMouseWheelDownE0OnMouseWheelUpPPF0OnSelectppG0 OnStartDragHXXH0OnUTF8KeyPress I8ParentBiDiMode `J4 ParentColor hS_K4ParentDoubleBuffered `L4 ParentFont `M4ParentShowHint`N6 PopupMenu ˓ѓO5ReadOnly 0P5ScrollListDataset `0`QShowHint l R8Sortedp S8Style( _^T5TabOrder  ^U4TabStop ``VVisiblept TDBMemoTDBMemoHDBCtrls9Hx8Alignh0Qg4 Alignment|`Anchors 8@4 AutoDisplay;aBiDiModep``4 BorderSpacinghQ_X9 BorderStylee` 8CharCaseH  (Color(0`4 Constraints@5 DataField 5 DataSource _P^DoubleBuffered0``4 DragCursor8dd0DragKindȤhx8DragMode P`Enabledx``0` Font04g!4 MaxLength"0OnChange#0OnClick $0OnContextPopup  %0 OnDblClick000&0 OnDragDrop@@'0 OnDragOverPP(0 OnEditingDone0pp)0 OnEndDrag((*0OnEnter88+0OnExitx,0 OnKeyDown؟-0 OnKeyPressx.0OnKeyUp/0 OnMouseDown00 OnMouseEnter10 OnMouseLeave20 OnMouseMove30 OnMouseUpP40 OnMouseWheel50OnMouseWheelDown60OnMouseWheelUp@@70OnResizepp80 OnStartDragHXX90OnUTF8KeyPress :8ParentBiDiMode hS_;4ParentDoubleBuffered `<4 ParentFont `=4ParentShowHint`>6 PopupMenu 0 x ?:ReadOnlyxgg@4 ScrollBars `0`AShowHint( _^B5TabOrder  ^C4Tabstop ``DVisible (gE4 WantReturns )gF4WantTabs *`gG4WordWrapP TDBGroupBoxx TDBGroupBox@s@DBCtrls2Hx8Align|`Anchors;aBiDiModep``4 BorderSpacing"0``a+`CaptionA``% ClientHeight`B``% ClientWidthH  (Color(0`4 Constraints0:Cursor 5 DataField` 5 DataSource _P^DoubleBuffered0``4 DragCursor8dd0DragKindȤhx8DragMode P`Enabledx``0`Font 0OnClick !0OnContextPopup  "0 OnDblClick000#0 OnDragDrop@@$0 OnDragOver0pp%0 OnEndDrag((&0OnEnter88'0OnExitx(0 OnKeyDown؟)0 OnKeyPressx*0OnKeyUp+0 OnMouseDown,0 OnMouseEnter-0 OnMouseLeave.0 OnMouseMove/0 OnMouseUpP00 OnMouseWheel10OnMouseWheelDown20OnMouseWheelUp@@30OnResizepp40 OnStartDragHXX50OnUTF8KeyPress 68ParentBiDiMode `74 ParentColor hS_84ParentDoubleBuffered `94 ParentFont `:4ParentShowHint`;6 PopupMenu `0`<ShowHint( _^=5TabOrder  ^>4TabStop ``?VisibleTOnDBImageRead$selfPointerSenderTObjectSTStreamGraphExt AnsiStringHhTOnDBImageWrite$selfPointerSenderTObjectSTStreamGraphExt AnsiStringHTDBImagehTDBImagehw<DBCtrls-Hx8Align|`Anchors8(`o4AntialiasingMode  4 AutoDisplay 8AutoSizep``4 BorderSpacing h@o4Center(0`4 ConstraintsP 5 DataField ` 5 DataSource0``4 DragCursor8dd0DragKindȤhx8DragMode io4KeepOriginXWhenClipped jo4KeepOriginYWhenClipped0OnClick 0OnContextPopup   0 OnDblClick!0 OnDBImageRead`"0OnDBImageWrite`#6 PopupMenu000$0 OnDragDrop@@%0 OnDragOver0pp&0 OnEndDrag'0 OnMouseDown(0 OnMouseEnter)0 OnMouseLeave*0 OnMouseMove+0 OnMouseUpP,0 OnMouseWheel-0OnMouseWheelDown.0OnMouseWheelUp@@/0OnResizepp00 OnStartDrag `14ParentShowHint ko24 Proportional 30 QuickDraw @ 45ReadOnly `0`5ShowHint mo64Stretch oo74StretchInEnabled n o84StretchOutEnabled lo94 Transparent ``:Visible ;0 WriteHeader TDBCalendar TDBCalendar DDBCtrlsp``4 BorderSpacing(0`4 Constraints '(95 DataField`'(:5 DataSourcej`(;5Date ' (<5ReadOnly8 l@l5DisplaySettings _P^DoubleBuffered0``=4 DragCursorȤhx>8DragMode hS_34ParentDoubleBuffered ``8Visible0OnClick ?0OnContextPopup000@0 OnDragDrop@@A0 OnDragOver0ppB0 OnEndDrag(0 OnMouseMove%0 OnMouseDown0 OnDayChanged$0OnMonthChangedppC0 OnStartDrag20 OnYearChanged TDBNavButtonث TDBNavButtonHDBCtrlsTDBNavFocusableButtonHTDBNavFocusableButton0PwLDBCtrlsTDBNavDataLinkȬTDBNavDataLinkDBCtrls TDBNavGlyph ngEnabled ngDisabledDBCtrls8`VV`TDBNavButtonType nbFirstnbPriornbNextnbLastnbInsertnbDeletenbEditnbPostnbCancel nbRefreshDBCtrlsȭ ) " 2P ")2خTDBNavButtonSetH8 nsAllowTimer nsFocusRectDBCtrlsh{{ЯTDBNavButtonStyleTDBNavButtonDirection nbdHorizontal nbdVerticalDBCtrls HVxHVTDBNavigatorOptionnavFocusableButtonsDBCtrls(TDBNavigatorOptions@TDBNavClickEvent$selfPointerSenderTObjectButtonTDBNavButtonTypeHp P H P HTDBCustomNavigator0@TDBCustomNavigator@DBCtrls TDBNavigatorȲ TDBNavigatorJDBCtrls;Hx8AlignhPn4 Alignment|`Anchors 8AutoSize;aBidiModeر0 BeforeActionЉn4 BevelInner0n4 BevelOuter(Pn4 BevelWidthp``4 BorderSpacinghQ_X9 BorderStyleP^4 BorderWidth"0``a+`Caption@`_4 ChildSizingA``% ClientHeight`B``% ClientWidthH (Color(0` 4 Constraints ==!0 ConfirmDelete05 6"5 DataSourcep6#4 Direction _P^$DoubleBuffered0``%4 DragCursorȤhx&8DragMode P`'Enabled <`7(4Flatx``0`)Fontp57*5Hintsر+0OnClick ,0OnContextPopup  -0 OnDblClick000.0 OnDragDrop@@/0 OnDragOver0pp00 OnEndDrag((10OnEnter8820OnExit30 OnMouseDown40 OnMouseEnter50 OnMouseLeave60 OnMouseMove70 OnMouseUpP80 OnMouseWheel90OnMouseWheelDown:0OnMouseWheelUp@@;0OnResizepp<0 OnStartDragh8:=4Options >8ParentBidiMode `?4 ParentColor hS_@4ParentDoubleBuffered `A4 ParentFont `B4ParentShowHint`C6 PopupMenu `0`DShowHint( _^E5TabOrder  ^F4TabStop ``GVisible`<H4VisibleButtonsT @9I4ImagesTDBLookupDataLinkDBCtrls Variantؿmnp>@v@`+-      P  AnsiString AnsiString   P (51CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX ESynaSerError hєP3C4CP6C9C9C:C9C7C8C0AC@ACPACpp@ Ӕp PՔՔ`ҔҔ֔ٔ@PܔPޔޔ ߔ`ߔߔ @p@ PP@@000P  TBlockSerial GetErrorDescx 2Kn,X  `  % K @B `  %& - g5 = TDCB TDCB``  HHHHH PDCBTHookSerialReasonHR_SerialClose HR_Connect HR_CanRead HR_CanWrite HR_ReadCount HR_WriteCountHR_WaitsynaserFQ;],xj,;FQ]jxTHookSerialStatus$selfPointerSenderTObjectReasonTHookSerialReasonValue AnsiString@ ESynaSerError  ESynaSerErrorsynaser P  TBlockSerial 08 TBlockSerial synaser 0Tag0Handle880 LineBuffer @@0 RaiseExcept0OnStatus YY0TestDSR ZZ0TestCTS``0 MaxLineLengthTT0DeadlockTimeout dd 0 LinuxLock xx 0ConvertLineEnd|| 0 AtTimeout  0InterPacketTimeoutHh(Hh(Hh(Hh(Hh(Hh(Hh ( H h !(!H!h!!!!!"("H"h"""""#(#H#h#####$($H$h$$    P   `  8 ` @ Tp(5x@1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX ESynapseError``1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TSynaOption(1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC` @@0p ` TCustomSSLxx`0sP3C4CP6C9C9C:C9C7C8C0AC@ACPACp00pPP@@pp0`ࡕPЦ@௕0`• TBlockSocket GetErrorDescGetErrorDescExp•`•( @sP3C4CP6C9C9C:C9C7C8C0AC@ACPACp00pPP@@pp0`ࡕPЦ@௕0`•TSocksBlockSocketHPph  P3C4CP6C9C9C:C9C7C8C0AC@ACPACp00PP@@pp0`ࡕP`@0pTTCPBlockSocketGetErrorDescEx`pp sP3C4CP6C9C9C:C9C7C8C0AC@ACPACp00pߕP0P@@pp0`ࡕPЦ@௕0`•TDgramBlockSocket P3C4CP6C9C9C:C9C7C8C0AC@ACPACp00pߕP0P@@pp0`ࡕPЦ@௕00``•TUDPBlockSocketpsP3C4CP6C9C9C:C9C7C8C0AC@ACPACp00pߕP0P@@pp0`ࡕPЦ@௕0@`•TICMPBlockSocket8xsP3C4CP6C9C9C:C9C7C8C0AC@ACPACp00pPP@@pp0`ࡕPЦ@௕0`•TRAWBlockSocketxsP3C4CP6C9C9C:C9C7C8C0AC@ACPACp00pPP@@pp0`ࡕPЦ@௕0`•TPGMMessageBlockSocketxpsP3C4CP6C9C9C:C9C7C8C0AC@ACPACp00pPP@@pp0`ࡕPЦ@௕0@p`•TPGMStreamBlockSocket8( (x1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC` @@0p `TSSLNone8@1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TSynaClient@ ESynapseError @ ESynapseErrorblcksock0 ErrorCode 0 ErrorMessageTHookSocketReason HR_ResolvingBeginHR_ResolvingEndHR_SocketCreateHR_SocketCloseHR_Bind HR_Connect HR_CanRead HR_CanWrite HR_Listen HR_Accept HR_ReadCount HR_WriteCountHR_WaitHR_Errorblcksock0   Tfv  TfvTHookSocketStatus$selfPointerSenderTObjectReasonTHookSocketReasonValue AnsiStringPTHookDataFilter$selfPointerSenderTObjectValue AnsiStringTHookCreateSocket$selfPointerSenderTObjectH THookMonitor$selfPointerSenderTObjectWritingBooleanBufferPointerLenLongInt THookAfterConnect$selfPointerSenderTObject0THookVerifyCert$selfPointerSenderTObjectBoolean THookHeartbeat$selfPointerSenderTObject TSocketFamilySF_AnySF_IP4SF_IP6blcksock0PW^xPW^ TSocksType ST_Socks5 ST_Socks4blcksock@TSSLTypeLT_allLT_SSLv2LT_SSLv3LT_TLSv1 LT_TLSv1_1LT_SSHv2blcksock`{{ TSynaOptionType SOT_Linger SOT_RecvBuff SOT_SendBuff SOT_NonBlockSOT_RecvTimeoutSOT_SendTimeout SOT_ReuseSOT_TTL SOT_BroadcastSOT_MulticastTTLSOT_MulticastLoopblcksock`   0 TSynaOption( TSynaOptionblcksock` TCustomSSL(8@HPX`hpx TCustomSSLxblcksock000SSLType880 KeyPassword0Username0Password@@0CiphersHH0CertificateFilePP0PrivateKeyFileXX0 Certificate``0 PrivateKeyhh 0PFXpp 0PFXfile 0TrustCertificateFile 0TrustCertificatexx 0CertCA8 CertCAFile 0 VerifyCert0SSHChannelType0SSHChannelArg10SSHChannelArg20CertComplianceLevel0 OnVerifyCert0SNIHost TSSLClass  @ p    TBlockSocketx0 TBlockSocket(blcksock0Tag 0 RaiseExcept0 MaxLineLength0MaxSendBandwidth0MaxRecvBandwidth7 MaxBandwidth 0ConvertLineEndp8Family 0 PreferIP4  0InterPacketTimeoutXX 0 SendMaxChunk \\ 0StopFlag`` 0NonblockSendTimeouthh 0ConnectionTimeout0OnStatus@0 OnReadFilter((0OnCreateSocket(880 OnMonitor(HH0 OnHeartbeatdd0 HeartbeatRate0Owner P    TSocksBlockSocket @TSocksBlockSocketHblcksock0SocksIP0 SocksPort0 SocksUsername0 SocksPassword0 SocksTimeout 0 SocksResolver0 SocksType      08  h   TTCPBlockSocket (08 TTCPBlockSocket "blcksock0 HTTPTunnelIP0HTTPTunnelPort000HTTPTunnelUser880HTTPTunnelPass@@ 0HTTPTunnelTimeoutx!0OnAfterConnecth   TDgramBlockSocket0 TDgramBlockSocket blcksockp   TUDPBlockSocket TUDPBlockSocket blcksockTICMPBlockSocketPTICMPBlockSocket8 blcksockTRAWBlockSocketTRAWBlockSocketHblcksockTPGMMessageBlockSocket@TPGMMessageBlockSocketHblcksockTPGMStreamBlockSocketTPGMStreamBlockSocket8HblcksockTSSLNone@TSSLNoneblcksockx TIPHeader TIPHeader     ` `` TSynaClient(0 TSynaClient@blcksock0 TargetHost0 TargetPort0 IPInterface 0Timeout((0UserName000Password@p xP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TTelnetSend TTelnetState tsDATAtsIACtsIAC_SB tsIAC_WILLtsIAC_DO tsIAC_WONT tsIAC_DONT tsIAC_SBIAC tsIAC_SBDATA tsSBDATA_IACtlntsend  0 ( H TTelnetSend@PXhx TTelnetSend tlntsend 8<SockPP0 SessionLoghh0TermType(((x'P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTrTPT`TpTЂTTTTTTЅTTTTT TTTT T$`TTTTp$p$0$`00`0P@P$''()Ѓ)p***0/- -@/p/xyTSynPositionHighlighter TPositionToken TPositionToken(PPositionTokenhp TPositionTokens 5  5 h TPositionTokens 5 PPositionTokensHPTSynPositionHighlighterxTSynPositionHighlighter3SynHighlighterPosition.0 TextAttri0(ep) ͡P3C4CP6C9C9C:C9C7C8C0AC@ACPACpʡʡPˡѡ ΡϡTSynHighlighterRangeListXX*^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^TI`TFFFFTLazSynCustomTextAttributes`0!h++P!^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^TI`TjF0kFj j@j`j@PRRTSynHighlighterAttributes8X!"/"^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^TI`T<<0kF0:: ;P;@P=R!TSynHighlighterAttributesModifier`!(#11CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC0PР࢖TSynDividerDrawConfig"$`2SP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynEditLinesList$؁(32 (oP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTrTPT`TpTЂTTTTTTЅTTTTT TTTT T`m`TTTTpCpЄ`00`0P@P0C`CCЃCCCC0Њ x@xxyTSynCustomHighlighter%( )@48)`?P3C4CP6C9C9C:C9C7C8C0AC@ACPACPS SSSTSynHighlighterList0(TSynHighlighterRangeList)TSynHighlighterRangeListXxmSynEditHighlighter)TLazSynCustomTextAttributes8*TLazSynCustomTextAttributesSynEditHighlighter* *TSynHighlighterAttributesx+TSynHighlighterAttributes*SynEditHighlighter BP Background$@CQ Foreground(C@Q FrameColor0DQ FrameStylep,DpQ FrameEdgesp4DQStylep8EP StyleMask<C$ BackPriority@C$ ForePriorityD@D  $ FramePriorityB@E( e BoldPriorityB@E( eItalicPriorityB@E( eUnderlinePriorityB@E( eStrikeOutPriorityh+!TSynHighlighterAttributesModifier.!TSynHighlighterAttributesModifier`!.SynEditHighlighter9`: BackAlpha;: ForeAlpha;: FrameAlpha/TSynHighlighterCapabilityhcUserSettings hcRegistry hcCodeFoldingSynEditHighlighter0N0C040x040C0N00TSynHighlighterCapabilitiesp00 TSynDividerDrawConfigSetting1 TSynDividerDrawConfigSetting1P1TSynDividerDrawConfig1TSynDividerDrawConfig"SynEditHighlighter1TSynEditLinesList 2TSynEditLinesList$HSynEditHighlighter`2TSynCustomHighlighter2TSynCustomHighlighter%@SynEditHighlighter* DefaultFilter 4Enabled3TSynCustomHighlighterClass33TSynHighlighterList4TSynHighlighterList0(`SynEditHighlighter@4>z,,` 8BxB`B{8{HBP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TTpTT5T` ЅT`TTT TTTT T@ܖ`#pa0a$`Iaڄa````^^``Ў` `@`}`_a`^+`+`P^``pǗŗ ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,``(0_`P``x`@7`7`7`PY`PZ`AH_ `p`/_`^` _ P_ `P0a ap_09P`М`0``&_@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`G`_`-a"`p`J`,P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_Ћ|`^```0a_a0`P1`0^`^0`_``Ptht>ttTSynEditHasTextFlags`tt TSynStateFlagsfCaretChanged sfHideCursorsfEnsureCursorPossfEnsureCursorPosAtResizesfEnsureCursorPosForEditRightsfEnsureCursorPosForEditLeftsfExplicitTopLinesfExplicitLeftCharsfPreventScrollAfterSelectsfIgnoreNextChar sfPainting sfHasPainted sfHasScrolledsfScrollbarChangedsfHorizScrollbarVisiblesfVertScrollbarVisiblesfAfterLoadFromFileNeededsfLeftGutterClicksfRightGutterClick sfInClick sfDblClickedsfTripleClicked sfQuadClickedsfWaitForDraggingsfWaitForDraggingNoCaret sfIsDraggingsfDraggingOversfWaitForMouseSelectingsfMouseSelectingsfMouseDoneSelectingsfIgnoreUpClick sfSelChangedSynEditt $vtmvvuuNu0u}uku u utu uwcvv>vwv uuvPv u-wzv vvvvPwttuu0uNuku}uuuuuuuu v$v>vPvcvmvzvvvvvvvvww-wxTSynStateFlagsHwyTSynEditorShareOption eosShareMarksSynEdit zHzhzHzzTSynEditorShareOptions`zz TokenPosz{SynEdit{TCustomSynEdit0 8{TCustomSynEdit54SynEdit{TLazSynEditPlugin{TLazSynEditPlugin8CX5SynEdit{TSynHookedKeyTranslationList0|TSynHookedKeyTranslationListPExSynEditx|TSynUndoRedoItemHandlerList|TSynUndoRedoItemHandlerListHFxSynEdit}TLazSynMouseDownEventListP}TLazSynMouseDownEventList@GxSynEdit}TLazSynKeyDownEventList}TLazSynKeyDownEventList8HxSynEdit ~TLazSynKeyPressEventList`~TLazSynKeyPressEventList(IxSynEdit~TLazSynUtf8KeyPressEventList~TLazSynUtf8KeyPressEventList JxSynEdit0TSynMouseLinkEvent$selfPointerSenderTObjectXLongIntYLongIntAllowMouseLinkBoolean x TSynHomeMode synhmDefaultsynhmFirstWordSynEdit7Dh7DTLazSynWordBoundary swbWordBegin swbWordEnd swbTokenBegin swbTokenEnd swbCaseChange swbWordSmartSynEditր8րTSynScrollOnEditOptionsЁTSynScrollOnEditOptionsKSynEditTSynScrollOnEditLeftOptionsXTSynScrollOnEditLeftOptions@LPSynEdit4KeepBorderDistance༖4KeepBorderDistancePercent0 4ScrollExtraColumns84ScrollExtraPercent4` 4ScrollExtraMaxTSynScrollOnEditRightOptions TSynScrollOnEditRightOptionspMPSynEdit4KeepBorderDistance༖4KeepBorderDistancePercent0  4ScrollExtraColumns84ScrollExtraPercent4`4ScrollExtraMaxhTSynEditTSynEditN{wSynEditmHx8Align@4 Beautifier4 BlockIndentpǖ4BlockTabIndentp``4 BorderSpacing|`Anchors(0`4 ConstraintsH (Color0@Ȗ4Cursor0Ȗ4 OffTextCursor P`Enabledx``0`Font`4Height 08Name `4 ParentColor `4 ParentFont `4ParentShowHint`6 PopupMenu `0`ShowHint( _^5TabOrder  ^ 4TabStop((0Tag ``!Visiblep` 4Width"0OnClick #0OnContextPopup  $0 OnDblClick%0 OnTripleClick00&0 OnQuadClick000'0 OnDragDrop@@(0 OnDragOver0``)0 OnEndDock0pp*0 OnEndDrag((+0OnEnter88,0OnExitx-0 OnKeyDown؟.0 OnKeyPressx/0OnKeyUp00 OnMouseDown10 OnMouseMove20 OnMouseUp  30 OnClickLink 40 OnMouseLink50 OnMouseEnter60 OnMouseLeaveP70 OnMouseWheel80OnMouseWheelDown90OnMouseWheelUp``:0 OnStartDockpp;0 OnStartDragHXX<0OnUTF8KeyPressh4=0BookMarkOptionshQ_X>9 BorderStyle ?8ExtraCharSpacing @8ExtraLineSpacingpA4GutterxB4 RightGutter PJC4 HideSelection3 D8 Highlighter <E4 InsertCaret ;F4 InsertMode FG4 Keystrokes` x H: MouseActionsp I:MouseTextActionsh J:MouseSelActions( x K:Lines8>L4 MaxLeftChar55M5MaxUndo@@N0OnResizeX   O8OptionsH P8Options28 Q8 MouseOptions@R4VisibleSpecialChars P=S4OverwriteCaret P T:ReadOnlyŖ 3PU5 RightEdgeŖ4V5RightEdgeColorxgpগW4 ScrollBars`2h X: SelectedColorP ۖY4ScrollOnEditLeftOptionsPۖZ4ScrollOnEditRightOptions`20 [5IncrementColor`2 P \5HighlightAllColorR ]5BracketHighlightStyle`2 ǖ^5BracketMatchColor`2Ȗ_5FoldedCodeColor`2 0`5MouseLinkColor`2P p a5LineHighlightColorH–Ȗb5DefaultSelectionModeH@c5 SelectionModeĘd4TabWidth iØe4WantTabsP P f0OnChangeXn@@g0OnChangeUpdatingxq0 0 h0 OnCutCopyxq@ @ i0OnPaste(,` ` j0OnClearBookmarkop p k0OnCommandProcessedm l0 OnDropFiles0p m5 OnGutterClickm n0OnPaint(, o0OnPlaceBookmarko p0OnProcessCommando q0OnProcessUserCommando r0 OnReplaceTextPPs0 OnShowHintp[ ` t4OnSpecialLineColorsZ u4OnSpecialLineMarkup v0OnStatusChange TSynTextViewsManagerInternal[ SynEditTSynEditMarkListInternal\(SynEdit0TSynStatusChangedHandlerList]0?SynEditpTSynPaintEventHandlerList^0?SynEditTSynScrollEventHandlerList_0?SynEditTSynQueryMouseCursorList`=SynEdit8TSynEditUndoCaretaplSynEditx @TSynEditUndoSelCaretbplSynEditTSynEditUndoIndentcplSynEdit TSynEditUndoUnIndentXTSynEditUndoUnIndenteplSynEditTSynEditMouseGlobalActionsfHSynEditTSynEditMouseTextActionsgHSynEdit(TSynEditMouseSelActionsiHSynEdithTHookedCommandHandlerEntryjSynEdit  P@X`ۄP݄4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T``TTTT[ڄބ0[[0[P[[p[ [0[[[TPageSetupDialogP`ۄP݄4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T0[`TTTT[ڄބP[[0[P[[p[ [0[[[TPrinterSetupDialogh8`ۄP݄4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT Tc]`TTTT[ڄބ[[0[P[[p[ [0[[[ TPrintDialogTPageMeasureUnits pmDefault pmMillimeterspmInches PrintersDlgs$<.`$.<TPageSetupDialogOption psoDefaultMinMarginspsoDisableMarginspsoDisableOrientationpsoDisablePagePaintingpsoDisablePaperpsoDisablePrinter psoMargins psoMinMargins psoShowHelp psoWarningpsoNoNetworkButton PrintersDlgs 5EWb p |5EWbp|@TPageSetupDialogOptions  TPageSetupDialog@TPageSetupDialog0 PrintersDlgs 0 PageWidth0 PageHeight 0 MarginLeft 0 MarginTop 0 MarginRight 0 MarginBottom 0 MinMarginLeft  0 MinMarginTop0MinMarginRight0MinMarginBottomث0OptionsX0UnitsTPrinterSetupDialogPTPrinterSetupDialogh0 PrintersDlgs Я TPrintDialog TPrintDialog PrintersDlgs 0Collate0Copies 0FromPage 0MinPage   0MaxPagep 0Options  0 PrintToFile0 PrintRange0ToPage8`P`P3C4CP6C9C9C:C9C7C8C0AC@ACPAC™0™P™™Ù0Ù`ÙÙÙÙ`ęęęę ř`řřř ƙ`ƙǙș@șpșəəə 0PTPrinter@58 1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEPrinterhpP@cP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`Tcpccppc cccccptc@ucuc0vccc`ccccc0pccccГc cc`cc cccccc`c`cc0@pp p `@0 c cyc0~c@cc`cccpccPcc{cp|c@cc0c`zcc@cc c0ccpcPcPcPc`c0c0cwc qcPrc@scc0ccccccpcpccc0cPcc ccccc c`c@0` @TPrinterCanvasPxH(@cP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`Tcpccppc cccccptc@ucuc0vccc`ccccc0pccccГc cc`cc cccccc`c`cc0@pp p `@0 c cyc0~c@cc`cccpccPcc{cp|c@cc0c`zcc@cc c0ccpcPcPcPc`c0c0cwc qcPrc@scc0ccccccpcpccc0cPcc ccccc c`c@0` @TFilePrinterCanvas`P3C4CP6C9C9C:C9C7C8C0AC@ACPAC TPaperSize8TPrinterOrientation poPortrait poLandscapepoReverseLandscapepoReversePortraitPrinters0aVmVamTPrinterCapabilitypcCopies pcOrientation pcCollationPrintersT=Fx=FTTPrinterCapabilitiesp TPrinterState psNoDefinepsReady psPrinting psStoppedPrinters 3+>` +3> TPrinterTypeptLocal ptNetWorkPrinters@TPrinter8`TPrinter@PrintersEPrinterEPrinterhPrinters TPrinterCanvas@PTPrinterCanvasPp PrintersTPrinterCanvasRefTFilePrinterCanvaspTFilePrinterCanvas PrintersHTFilePrinterCanvasClass TPaperRect  TPaperRect 00 TPaperItemL8(p TPaperItem8Lx0, TCustomPaperItemP TCustomPaperItemP LhPrintersX TPaperSize  TPaperSize8Printers pfPrinting pfAborted pfDestroyingpfPrintersValid pfRawModePrinters&0=Mp&0=M TPrinterFlagsh8P3C4CP6C9C9C:C9C7C8C0AC@ACPAC TVersionInfo TVersionInfo TVersionInfovinfo8581CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX E_NoRiseSeth5 1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXE_OutOfAlgorithmRangePbT@Γ@@ @`RRRRRS S@S`SSSSST T@T`TTTTTU U@U`UUabc$`2} ~b{??0.ygYh6   uY@MeǨ3Q(-7"xV|^hxEݾ3~C8H'dw" 8 2 q50"_p rB,dAJ%``xQ;*)2'd!0{QV 7DT%q_JG+&?NH<u=.C2$v" h $+-=~SA _T=K;.$$GO\sk          (Cq/$#" s4oVEB(   TMoonPhaseNewmoonWaxingCrescrent FirstQuarter WaxingGibbousFullmoon WaningGibbous LastQuarterWaningCrescentmoonH}emem}HTSeasonWinterSpringSummerAutumnmoon TEclipsenonepartial noncentralcircular circulartotaltotal halfshadowmoonPxkpkpx  E_NoRiseSeth E_NoRiseSethmoonE_OutOfAlgorithmRangeE_OutOfAlgorithmRangePmoon TSolarTermst_z2st_j3st_z3st_j4st_z4st_j5st_z5st_j6st_z6st_j7st_z7st_j8st_z8st_j9st_z9st_j10st_z10st_j11st_z11st_j12st_z12st_j1st_z1st_j2moonHkw   eq}  ekqw}@TChineseZodiac ch_ratch_oxch_tiger ch_rabbit ch_dragonch_snakech_horsech_goat ch_monkey ch_chickench_dogch_pigmoon  Qmdu8 G1[>18>GQ[dmuH TChineseStem ch_jiach_yich_bingch_dingch_wuch_jich_gengch_xinch_rench_guimoon  0 TChineseCycle TChineseCycle(P TChineseDate  TChineseDate    h  h  Pu!!!  9 ! !! EFREEnEEEEF$F$F$F>F>FEFFFFFFFFFFFFFFFFFFFFFFbFF)GHbGG~GGGGG4H4H4HNHNHGHHHHHHHHHHHHHHHHHHHHHHrHHrJgKJJJEK.KJ{MLK2LLLJfLgKfLfLfLfLfL{MgKK{MgK{M{M{MfLfL{M{M{M{M{MQM{MKMRN&NN1NNGNGNN1?0BpA`PC2P2 5p 56#77!0?:@BB&'(@ ) =TWideStringField@ @hئP3C4CTpCpCTpC7C8C0AC@ACPAC]TTTTpC`TpTЂTTpCTpC'TTpC TTpCT T`C`TTD0 pC0 `G `` @```pP  Gp !P!##$!P$$$P%%&'( ( )pC TNumericField 0 xP3C4CTpCpCTpC7C8C0AC@ACPAC]TTTTpC`TpTЂTTpCTpC'TTpC TTpCT TG`TTD0 pC0 `G `PI0I`pIII@``PJpP`J Gp !L#L@L!`M$$P%%&'(@M )pC TLongintField(0P3C4CTpCpCTpC7C8C0AC@ACPAC]TTTTpC`TpTЂTTpCTpC'TTpC TTpCT TG`TTD0 pC0 `G `PI0I`pIII@``PJpP`J Gp !L#L@L!`M$$P%%&'(@M )pC TIntegerField X hP3C4CTpCpCTpC7C8C0AC@ACPAC]TTTTpC`TpTЂTTpCTpC'TTpC TTpCT TO`TTD0 pC0 `G `pQPQ`QQR@``pRpPR Gp !S#`TT!T$$P%%&'(U )pCTLargeintField0P3C4CTpCpCTpC7C8C0AC@ACPAC]TTTTpC`TpTЂTTpCTpC'TTpC TTpCT TW`TTD0 pC0 `G `PI0I`pIII@``VpP`J Gp !L#L@L!`M$$P%%&'(@M )pCTSmallintFieldx08"XH"P3C4CTpCpCTpC7C8C0AC@ACPAC]TTTTpC`TpTЂTTpCTpC'TTpC TTpCT TX`TTD0 pC0 `G `PI0I`pIII@``pXpP`J Gp !L#L@L!`M$$P%%&'(@M )pC TWordField0%%P3C4CTpCpCTpC7C8C0AC@ACPAC]TTTTpC`TpTЂTTpCTpC'TTpC TTpCT TZ`TTD0 pC0 `G `PI0I`pIII@``PJpP`J Gp !L#`[@L!`M$$P%%&'(@M )pC TAutoIncFieldX" )(()P3C4CTpCpCTpC7C8C0AC@ACPAC]TTTTpC`TpTЂTTpCTpC'TTpC TTpCT T``TTD0 pC[`G `\ \`\P\\@``]pP ]^Gp !^#P_0_!p_$$P%%&'(_ )pC TFloatField% 0),`,P3C4CTpCpCTpC7C8C0AC@ACPAC]TTTTpC`TpTЂTTpCTpC'TTpC TTpCT Tb`TTD0 pC[`G `\ \`\P\\@``]pP ]^Gp !^#P_0_!p_$$P%%&'(_ )pCTCurrencyField8)(h/00P3C4CTpCpCTpC7C8C0AC@ACPAC]TTTTpC`TpTЂTTpCTpC'TTpC TTpCT T f`TT0)0 pC0 `c ``dcc@``0d@dP  dp !P!#d$!d$$P%%&'(f )pC TBooleanField,Hhh38x3P3C4CTpCpCTpC7C8C0AC@ACPAC]TTTTpC`TpTЂTTpCTpC'TTpC TTpCT Tl`TT0)0 pC0 ` jj`jj@``kpPk p `ll##$!l$$P%%&'(`j )pCTDateTimeField0H366P3C4CTpCpCTpC7C8C0AC@ACPAC]TTTTpC`TpTЂTTpCTpC'TTpC TTpCT T0n`TT0)0 pC0 ` jj`jj@``kpPk p `ll##$!l$$P%%&'(`j )pC TDateField3H3H:xX:P3C4CTpCpCTpC7C8C0AC@ACPAC]TTTTpC`TpTЂTTpCTpC'TTpC TTpCT To`TT0)0 pC0 ` jj`jj@``kpPk p `ll##$!p$$P%%&'(`j )pC TTimeField6Ph==P3C4CTpCpCTpC7C8C0AC@ACPAC]TTTTpC`TpTЂTTpCTpC'TTpC TTpCT T0y`TT0q0 pC0 pq```rq@```pP  t!P!##$!v$$P%%&'(w )pC TBinaryFieldh:P=(Ax8AP3C4CTpCpCTpC7C8C0AC@ACPAC]TTTTpC`TpTЂTTpCTpC'TTpC TTpCT Tz`TT0q0 pC0 pq```rq@``zpP  t!P!##$!v$$P%%&'(w )pC TBytesField=P@ADDP3C4CTpCpCTpC7C8C0AC@ACPAC]TTTTpC`TpTЂTTpCTpC'TTpC TTpCT T|`TT0q0 pC0 pq```rq@``|pP  t!P!##$!v$$P%%&'(w )pCTVarBytesFieldHA( HHHP3C4CTpCpCTpC7C8C0AC@ACPAC]TTTTpC`TpTЂTTpCTpC'TTpC TTpCT T``TT}0 pC}`G ~~`~P~~@``@PPp@Gp p!#Ђ$!$$P%%&'( )pC TBCDFieldD xKKP3C4CTpCpCTpC7C8C0AC@ACPAC]TTTTpC`TpTЂTTpCTpC'TTpC TTpCT T`TT@0 pC`G ``0@``P`Gp !#Ў!0$$P%%&'(P )pC TFMTBCDField(HHhNOP3C4CTpCpCTpC7C8C0AC@ACPAC]TTTTpC`TpTЂTTpCTpC'TTpC TTpCT T`TT0)0 pC0 P`` `0``pP` !P!##$! @P%%&'(@К0 TBlobFieldK@OhRȸxRP3C4CTpCpCTpC7C8C0AC@ACPAC]TTTTpC`TpTЂTTpCTpC'TTpC TTpCT Tp`TT0)0 pC0 P`` ` ``pP` !P!##$! `࡛%&'(@К0 TMemoFieldOHOUhUP3C4CTpCpCTpC7C8C0AC@ACPAC]TTTTpC`TpTЂTTpCTpC'TTpC TTpCT Tp`TT0)0 pC0 P`` छ0``pP` !P!##$!Pp%&'(К0TWideMemoFieldRHOXYйhYP3C4CTpCpCTpC7C8C0AC@ACPAC]TTTTpC`TpTЂTTpCTpC'TTpC TTpCT TP`TT0)0 pC0 P`` `0``pP` !P!##$! @P%%&'(@К0 TGraphicFieldVPh\8\P3C4CTpCpCTpC7C8C0AC@ACPAC]TTTTpC`TpTЂTTpCTpC'TTpC TTpCT T`TTpC0 pC0 `0``@@`а``P  p #$!0$$P%&'(P )pC TVariantFieldxYH8 8`H`P3C4CTpCpCTpC7C8C0AC@ACPAC]TTTTpC`TpTЂTTpCTpC'TTpC TTpCT T`TT0 pC0 - `@0. /`/101``1``2P2 5p 56#77!::$:%&'(: )P- TGuidField\PaapSP3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpCSSSpSSS`SSPSSPS TIndexDefsX``bxc0SP3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpCSSS`SЖS TIndexDefaH0dؾhHd0SP3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpCSpCSS S`SSЖSTCheckConstraintc8e8epSP3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpCPSSpSSSpC`SSPSSPSTCheckConstraintsXdf1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACTFieldsEnumeratore@hhpSP3C4CP6CpCpCpCpC7C8C0AC@ACPACpC0SSpSSSpC`SSPSSPS@TParamsfh8i@i0SP3C4CP6CpCpCpCpC7C8C0AC@ACPACpCS0,SS`SS(TParamh j1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACTParamsEnumeratorPi@jXj8k1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACTDataSetEnumeratorhj0Pl8mP3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T`T`TpC›ě0ěpCpCpěěěěśPśpśpCśśpC`ǛǛțTDetailDataLinkXkhmnhnɛP3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T`T`Tɛ@˛›ě0ěpCpCpěěěěśp˛pś˛śśpC`ǛǛ`˛0̛P̛țTMasterDataLinkmpnp(pɛP3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T`T`Tɛ@˛›ě0ěpCpCpěěěěśp˛pś˛śśpC`ǛǛ`˛ϛϛp̛0ΛϛTMasterParamsDataLinknphv`wP3C4CTpCpCTpC7C8C0AC@ACPAC]TTT`TT`TpTPšTTpCT@ʚpȚpCTTpC TTpCT T``TTTTРpФ0pCpCХ0 @pШ0`0` PpCPP 0 `P@`pCpCpCpC0`pC Ś0ŚȚɚɚɚ ʚ ΚpCpCΚpCpCϚ pCpCpCpCpCpCpCpCpCCCCCC @`0pC0PppЯpCpϚϚҚҚҚښښښښpCPܚܚߚ`p TDBDatasetp@؁y0yP3C4CTpCpCTpC7C8C0AC@ACPAC]TTT`TTpC`TpTTTpCTTpCpCTTpC TTpCT T@T`TTTTpCpCTCustomConnectionwNY     Unknown String Smallint Integer Word Boolean Float Currency BCD Date Time DateTime Bytes VarBytes AutoInc Blob Memo Graphic FmtMemo ParadoxOle DBaseOle TypedBinary Cursor FixedChar WideString Largeint ADT Array Reference DataSet OraBlob OraClob Variant Interface IDispatch Guid TimeStamp FMTBcd FixedWideChar WideMemo x(,%8)D360=HAX"KOVKKKK@ KOxY\(H@ R PLargeInt} TStringFieldBuffer  H@~ TDataSetState dsInactivedsBrowsedsEditdsInsertdsSetKey dsCalcFieldsdsFilter dsNewValue dsOldValue dsCurValue dsBlockReaddsInternalCalc dsOpeningdsRefreshFieldsDBP~ ~{~~ ~~~p~~ ~~~ ~ ~~p~{~~~~~~~~~~~~~ TDataEvent deFieldChangedeRecordChangedeDataSetChangedeDataSetScrolldeLayoutChangedeUpdateRecord deUpdateStatedeCheckBrowseModedePropertyChangedeFieldListChangedeFocusControldeParentScrolldeConnectChangedeReconcileErrordeDisabledStateChangeDBPր )Jm    9{Ȁpm{Ȁր )9J0 TUpdateStatus usUnmodified usModified usInserted usDeletedDB؂؂XTUpdateStatusSet TUpdateMode upWhereAllupWhereChangedupWhereKeyOnlyDBփփ@TResolverResponserrSkiprrAbortrrMergerrApplyrrIgnoreDBh TProviderFlag pfInUpdate pfInWherepfInKeypfHiddenpfRefreshOnInsertpfRefreshOnUpdateDB@}u`k`ku}TProviderFlagsP TNamedItem( TFieldDefȆ TNamedItemHDB(8NameTFieldAttribute faHiddenCol faReadonly faRequiredfaLink faUnNamedfaFixedDB`Ї(TFieldAttributesȇh TFieldType' ftUnknownftString ftSmallint ftIntegerftWord ftBooleanftFloat ftCurrencyftBCDftDateftTime ftDateTimeftBytes ftVarBytes ftAutoIncftBlobftMemo ftGraphic ftFmtMemo ftParadoxOle ftDBaseOle ftTypedBinaryftCursor ftFixedChar ftWideString ftLargeintftADTftArray ftReference ftDataSet ftOraBlob ftOraClob ftVariant ftInterface ftIDispatchftGuid ftTimeStampftFMTBcdftFixedWideChar ftWideMemoDB(3= ̉  l&(%UK# "ӈ!D։_Ȉ $w ( '8݈PȈӈ݈ (3=DKU_lw̉։ (8@ TFieldDefXXDB04 AttributesH84DataTypeD4 PrecisionL4Size TDefCollection TFieldDefsTDefCollectionDB0 TFieldDefsXDB`  TField hx`p TFieldKindfkData fkCalculatedfkLookupfkInternalCalcDB8xTDataSetP@DBTFieldNotifyEvent$selfPointerSenderTFieldؑTFieldGetTextEvent$selfPointerSenderTFieldaText AnsiString DisplayTextBoolean (TFieldSetTextEvent$selfPointerSenderTFieldaText AnsiStringTField@DBh`P4 Alignment0CustomConstraintxx0ConstraintErrorMessage0DefaultExpression* DisplayLabel+*` DisplayWidth00 FieldKind 0 FieldName  <HasConstraints 5Index 0ImportedConstraint 0 KeyFields 0 LookupCacheБ0 LookupDataSet0LookupKeyFields0LookupResultField @@+5Lookuppp0Originx0 ProviderFlags x`+4ReadOnly yy0Required +4Visible 000OnChange@@0 OnGetTextPP0 OnSetText ``0 OnValidate TFieldsTFieldspDB TDataSetHTCustomConnection TDataBaseЙ TLoginEvent$selfPointerSenderTObjectUsername AnsiStringPassword AnsiString(TCustomConnectionw@ DB : Connected 0 LoginPrompt` 4 AfterConnectp04AfterDisconnect@4 BeforeConnect`4BeforeDisconnect0OnLogin TDataBaseph DB 8 Connected 0 DatabaseName  0KeepConnection@ݛ 4Paramsp TDataSourcexTDataChangeEvent$selfPointerSenderTObjectFieldTField TDataSource@DB qq0AutoEditБ`ԛ4DataSet pԛ4Enabledxx0 OnStateChange0 OnDataChange0 OnUpdateData TDataLink TDataLinkDBTDBTransactionTDBTransactionX@DB `4Active(EDatabaseErrorEDatabaseErrorxDBȠ EUpdateError EUpdateError`DB@ TFieldClassp TFieldMap((HTDateTimeAliasȡ TDateTimeRec TDateTimeRec  PDateTimeRecpx TFieldDefClassȢTFieldDefsClass TFieldKinds0 TFieldRef8 TFieldChars HX TLookupListRec0 TLookupListRec0أPLookupListRec  TLookupList@ TLookupListDBxHDBHDBؤ TStringField TStringFieldDB`0EditMask|8Size@hDBإTWideStringFieldTWideStringField@ ХDBH TNumericField TNumericField DBh`P4 AlignmentF4 DisplayFormatG4 EditFormatئ TLongintField TLongintField( DBO4MaxValuePO4MinValue TIntegerField TIntegerFieldx DBTLargeintFieldTLargeintField DBPV4MaxValueV4MinValue TSmallintFieldTSmallintFieldxx DB TWordField  TWordFieldx DBX TAutoIncField TAutoIncFieldX"x DB TFloatField TFloatField%"DB p[4Currency(0MaxValue( 0MinValue[!4 Precision(TCurrencyField(TCurrencyField8) "DB p[4Currency`  Ȭ   TBooleanField(0 TBooleanField,DBg4 DisplayValuesTDateTimeFieldTDateTimeField0DBi4 DisplayFormat`0EditMask8 TDateFieldخ TDateField3ЮDB TTimeField@ TTimeField6ЮDBx TBinaryField TBinaryFieldh:DB|8Size TBytesField@ TBytesField=8DBxTVarBytesFieldTVarBytesFieldHADB TBCDField TBCDFieldD#DB0 Precision 0Currencyp 0MaxValuep!0MinValue|"8SizeH TFMTBCDFieldx TFMTBCDField(H#DB0 Precision 0Currencyp 5MaxValueP!5MinValue|"8SizeTBlobStreamModebmReadbmWrite bmReadWriteDB 0 ` TBlobType'HftBlobftMemo ftGraphic ftFmtMemo ftParadoxOle ftDBaseOle ftTypedBinaryftCursor ftFixedChar ftWideString ftLargeintftADTftArray ftReference ftDataSet ftOraBlob ftOraClob ftVariant ftInterface ftIDispatchftGuid ftTimeStampftFMTBcdftFixedWideChar ftWideMemoDB3Ӵ&%#s"g![=Gƴ'$z޴ Q'ƴӴ޴'3=GQ[gsz TBlobFieldȷ TBlobFieldKDB 5BlobType|8Size TMemoField TMemoFieldODB 0 TransliterateȸTWideMemoField0TWideMemoFieldRDBh TGraphicField TGraphicFieldVDBй TVariantField TVariantFieldxYDB8 TGuidFieldh TGuidField\ХDB TIndexDefsк TIndexDefsX`XDB TIndexOption ixPrimaryixUnique ixDescendingixCaseInsensitive ixExpressionixNonMaintainedDB8wjWaWajw TIndexOptionsP TIndexDef08@HXx TIndexDefaXDB5 ExpressionHH0Fields08 CaseInsFields8p4 DescFieldspPP0OptionsXX0SourceTCheckConstraint(0@hTCheckConstraintcDB((0CustomConstraint000 ErrorMessage 880FromDictionary@@0ImportedConstraintؾTCheckConstraintsTCheckConstraintsXdDB8TFieldsEnumeratorpTFieldsEnumeratoreDB TFieldsClass@ TParamBindingDB TParamType ptUnknownptInputptOutput ptInputOutputptResultDB@gxo]]gox TParamTypes  TParamStyle psInterbase psPostgreSQL psSimulatedDBHfrfr TStringPart DB(TParamsXTParamsfDBTParam(0PTParamhDBHX&4DataTypePP0NameLL0 NumericScale``0 ParamTypeHH0 Precisiondd0Size#Value TParamClassTParamsEnumeratorTParamsEnumeratorPiDBTSQLParseOption spoCreatespoEscapeSlashspoEscapeRepeat spoUseMacroDB@b{lbl{TSQLParseOptions TBookmarkFlag bfCurrentbfBOFbfEOF bfInsertedDBHrhx~hrx~ PBookmarkFlag TBufferListH( PBufferListX` TBufferArrayHTGetMode gmCurrentgmNextgmPriorDB TGetResultgrOKgrBOFgrEOFgrErrorDB8Z`fUUZ`frmExactrmCenterDB   H TResyncModeh TDataActiondaFaildaAbortdaRetryDB TUpdateActionuaFailuaAbortuaSkipuaRetry uaAppliedDB0WnPf_PW_fn TUpdateKindukModifyukInsertukDeleteDB8/&P&/8 TLocateOptionloCaseInsensitive loPartialKeyDB TLocateOptions@TDataOperation$selfPointerpTDataSetNotifyEvent$selfPointerDataSetTDataSetБTDataSetErrorEvent$selfPointerDataSetTDataSetEEDatabaseError DataAction TDataActionБ TFilterOptionfoCaseInsensitivefoNoPartialCompareDBTFilterOptions0TFilterRecordEvent$selfPointerDataSetTDataSetAcceptBooleanБ ` TDatasetClassБTPSCommandType ctUnknownctQueryctTable ctStoredProcctSelectctInsertctUpdatectDeletectDDLDB \SA8+#Jp#+8AJS\IProviderSupportDB@TDataSetEnumeratorTDataSetEnumeratorhjDBTDetailDataLinkTDetailDataLinkXkDB8TMasterDataLink8hTMasterDataLinkm`DBTMasterParamsDataLinkTMasterParamsDataLinknDB( TDBDatasetpБDB`TDBDatasetClass TDBDatasetTDBTransactionClassTDatabaseClassp f?9-V5XH1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX eBCDExceptionh@1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXeBCDOverflowExceptionph0H1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXeBCDNotImplementedException`(Ha8yP3C4CP6CpCpCpCpC7C8C0AC@ACPACyyyypyyΜΜyPΜpΜ˜ yP̜͜pyyy`y˜TFMTBcdFactoryX@p^TP3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^T`T`TTFMTBcdVarData!GH6H tBCD"0@` x tBCD0"ppBCD eBCDException eBCDExceptionFmtBCDHeBCDOverflowExceptioneBCDOverflowExceptionpxFmtBCDeBCDNotImplementedExceptioneBCDNotImplementedException`xFmtBCDH     H x   TFMTBcdFactoryX`xFmtBCD8TFMTBcdVarDataFmtBCDpD\n Hj0h1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC TMaskUtils_;0   TEditMaskPTMaskeditTrimType metTrimLeft metTrimRight MaskUtilsh tMaskedType Char_Start Char_NumberChar_NumberFixedChar_NumberPlusMin Char_LetterChar_LetterFixedChar_LetterUpCaseChar_LetterDownCaseChar_LetterFixedUpCaseChar_LetterFixedDownCase Char_AlphaNumChar_AlphaNumFixedChar_AlphaNumUpCaseChar_AlphaNumDownCaseChar_AlphaNumFixedUpCaseChar_AlphaNumFixedDownCaseChar_All Char_AllFixedChar_AllUpCaseChar_AllDownCaseChar_AllFixedUpCaseChar_AllFixedDownCaseChar_HourSeparatorChar_DateSeparator Char_Stop MaskUtilsKqTb   0 Ye v)5F)5FYev0KTbq( TMaskUtils TMaskUtils MaskUtilshs`t t tR p0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Ppthuuuuuu>/HvvvR7vvvE# 0www>T whwhwb@ xwwrxPxPx!=yxxppy@y@y yyyxz(z(zzzzT}X{({({d${{{_p(|{{`N|`|`|ԋ@}||t}}}· @~~~DU~x~x~^c ~~t XXg0^a``qwD HHȁȁ`bh88[Ђ4 PS$ȃ (?XXBK ȄȄ;7@@eph((c X ޟG4V(b 9XXu-@>ppT bh PPN .T p00dXx00 ،cPްH> xx؎؎ XXI7G5PP$>ؐؐ#~ @@3 .Ah00~k*hs1N PP ДД`00< 4p4 (91ؗXX9 X~Ș^H xx~*(5 XXE_ ȚȚmp88n3X Bn' `$1v @@ ؞؞"p88NX $/x001ng88y ТТNXX 6X._y p Yx00Xd Ձ^HHЧЧ".h88 Ȩ1vPFDSetPInAddr( PSockAddrInH TIP_mreqh TIP_mreqhPInAddr6  PSockAddrIn6  TIPv6_mreq( TIPv6_mreq( ` TLinger TLingerPLinger ( TWSADataH H@ H TWSADataH   HPWSADatapx TVarSin H TVarSin  ` ` H%Px0w,aQ mjp5c飕d2yҗ+L |~-d jHqA}mQDžӃVlkdzbeO\lcc=  n;^iLA`rqgjm Zjz  ' }Dңhi]Wbgeq6lknv+ӉZzJgo߹ホCՎ`~ѡ8ROggW?K6H+ L J6`zA`Ugn1yiFafo%6hRw G "/&U;( Z+j\1е,[d&c윣ju m ?6grWJz+{8 Ғ |! ӆBhn[&wowGZpj;f\ eibkaElx TN³9a&g`MGiIwn>JjѮZf @;7SŞϲG0򽽊º0S$6к)WTg#.zfJah]+o*7 Z-#2$FW6etHZӾl~3"V,Gu>dɜ@ۿRdv!0&gv4DUJüXџn|ك1 w.fT@R+:dN_vm|$ÿ6H ;Z*^lO}~l .ǟ䩐 2ZLKy^hh ?z.ĕ*8FkzTHYb-?`?TBasicChartTool$`؁P(+h(TP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T@T`TTTTCCTBasicChartToolset&H)xB1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTBasicChartSeriesEnumeratorx( h*+*=P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TTChartSeriesListp)`ȲTChart&@+TChartSeriesListp)TAGraph+TBasicChartToolset&@TAGraph+TChartAfterCustomDrawEvent$selfPointerASenderTChartADrawer IChartDrawerARectTRect?h 0+TChartDrawEvent$selfPointerASenderTChartADrawer IChartDrawer?h ,TChartAfterDrawEvent$selfPointerASenderTChartACanvasTCanvasARectTRect?p0, TChartEvent$selfPointerASenderTChart?x-TChartBeforeCustomDrawEvent$selfPointerASenderTChartADrawer IChartDrawerARectTRectADoDefaultDrawingBoolean?h 0 -TChartBeforeDrawEvent$selfPointerASenderTChartACanvasTCanvasARectTRectADoDefaultDrawingBoolean?p0 .TChartDrawLegendEvent$selfPointerASenderTChartADrawer IChartDrawer ALegendItemsTChartLegendItemsALegendItemSizeTPoint ALegendRectTRect AColCountLongInt ARowCountLongInt?h <0(/TChartExtentValidateEvent$selfPointerASenderTChartALogicalExtent TDoubleRect AllowChangeBoolean?@  80TChart(RTAGraphC ll0 AutoFocus 0 AllowPanning 0 AllowZoom4AntialiasingMode`4AxisList 4 AxisVisible4 BackColor u BottomAxisx  4Depthp4ExpandPercentage 4Extent(4ExtentSizeLimit `0p4Foot84Frame'@4 GUIConnector uLeftAxisEPP 4Legendx$ 4Margins$!4MarginsExternal @,"4 Proportional+H#<Series `Xp-$4Title+`-%4Toolsetx,&&4OnAfterCustomDrawBackgroundx,p''4OnAfterCustomDrawBackWall,P&(4 OnAfterDrawp-()4OnAfterDrawBackgroundp-(*4OnAfterDrawBackWall-+0 OnAfterPaintx. ),4OnBeforeCustomDrawBackground /@*-4OnBeforeDrawBackgroundx.).4OnBeforeCustomDrawBackWall /*/4OnBeforeDrawBackWall000+04 OnDrawLegend-10OnExtentChanged-20OnExtentChanging0  30OnExtentValidate-0040OnFullExtentChangedHx58Align|`6Anchors;a7BiDiModep``84 BorderSpacingH 9(Color(0`:4 Constraints _P^;DoubleBuffered0``<4 DragCursorȤhx=8DragMode P`>Enabled ?8ParentBiDiMode `@4 ParentColor `A4ParentShowHint`B6 PopupMenu `0`CShowHint ``DVisibleE0OnClick F0OnContextPopup  G0 OnDblClick000H0 OnDragDrop@@I0 OnDragOver0ppJ0 OnEndDragK0 OnMouseDownL0 OnMouseEnterM0 OnMouseLeaveN0 OnMouseMoveO0 OnMouseUp@@P0OnResizeppQ0 OnStartDrag0TBasicChartSeries?TBasicChartSeries!TAGraph? TSeriesClass@@TBasicChartTool8@TBasicChartTool$TAGraphx@TChartToolEventId evidKeyDown evidKeyUp evidMouseDown evidMouseMove evidMouseUpevidMouseWheelDownevidMouseWheelUpTAGraph@@@@@AA%AHA@@@@AA%AATBasicChartToolsetATBasicChartSeriesEnumerator0BTBasicChartSeriesEnumeratorx(TAGraphxBTChartSeriesListBTChartPaintEvent$selfPointerASenderTChartARectTRectADoDefaultDrawingBoolean?0 C TChartRenderingParamsxC TChartRenderingParamsCx0 @ @ 8XhC XD hD`"FFFTP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T@T`TTTT`DFFFFFF LazSynImeD LazSynImeF LazSynImeDX5 LazSynIMMBaseF(0|(IH8IӅP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTTTTЅTиTTT TTTT T@х`TpT TTTTT``p THintActionG0H XKhK`IP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTTHTЅTиTTT TTTT T`TpT TTJTT``p TEditActionHI0pKM(M`IP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTTHTЅTиTTT TTTT T`TpT TTJKJ``pTEditCutxK0pKOO`IP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTTHTЅTиTTT TTTT T`TpT TTJLK``p TEditCopyM0pKQQ`IP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTTHTЅTиTTT TTTT T`TpT TTJLL``p TEditPasteO0pKTh(T`IP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTTHTЅTиTTT TTTT T`TpT TTJMpM``pTEditSelectAllR0pKHV؃XV`IP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTTHTЅTиTTT TTTT T`TpT TTJ ON``p TEditUndo8T0pKxX@X`IP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTTHTЅTиTTT TTTT T`TpT TTJPO``p TEditDeletehV(H ZZӅP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTTTTЅTиTTT TTTT TP`TpT TT R`RT``p THelpActionX(Z\ \ӅP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTTTTЅTиTTT TTTT TP`TpT TT R`RR``p THelpContentsZ(Z_ _ӅP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTTTTЅTиTTT TTTT TP`TpT TT R`RR``pTHelpTopicSearch\(Z@aPaӅP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTTTTЅTиTTT TTTT TP`TpT TT R`R S``p THelpOnHelp0_(ZpccӅP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTTTTЅTиTTT TTTT TP`TpT TT RS`S``pTHelpContextAction`ah  e(eӅP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTTTTЅTиTTT TTTT TV`TpT TTXTX``pTUTCommonDialogActionchehЇhӅP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTTTTЅTиTTT TTTT TV`TpT TTXTX``pTU TFileActioneph@j@PjӅP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTTTTЅTиTTT TTTT TV`TpT TTXTX``pZU TFileOpen hxXjlȋlӅP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTTTTЅTиTTT TTTT TV`TpT TTXTX``pZU TFileOpenWith`jhhnnӅP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTTTTЅTиTTT TTTT TV`TpT TTXTX``p0[U TFileSaveAsl(  pqӅP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTTTTЅTиTTT TTTT T@х`TpT TT`[T[``p TFileExitnpe@sPsPhP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTT\TЅTиTTT TTTT Tf`TpT TTiij``pTP\ePi TSearchActionqpXsu uPhP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTT\TЅTиTTT TTTT Tf`TpT TTiij``pkP\ePi TSearchFind`spXswwPhP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTT\TЅTиTTT TTTT Tf`TpT TTiij``p`llePilTSearchReplaceupu8z8PzPhP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTT\TЅTиTTT TTTT Tf`TpT TTiij``pkP\ePiTSearchFindFirstx0  p||ӅP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTTtTЅTиTTT TTTT T@q`TpT TTr st``pTSearchFindNext`zhe~~ӅP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTTTTЅTиTTT TTTT TV`TpT TTXTX``pkU TFontEdit|he ӅP3C4CT9C9CT9C7C8C0AC@ACPACӅTT`TTPT`TpTЂTTTTЅTиTTT TTTT TV`TpT TTXTX``pkU TColorSelect~ THintAction THintActionGpStdActnsH TEditAction TEditActionHIX' StdActnsTEditCutTEditCutxKStdActns( TEditCopyX TEditCopyMStdActns TEditPaste TEditPasteOStdActnsTEditSelectAll0TEditSelectAllRStdActnsh TEditUndo TEditUndo8TStdActns؃ TEditDelete TEditDeletehVStdActns@ THelpActionx THelpActionXX' StdActns THelpContents THelpContentsZStdActns THelpTopicSearchXTHelpTopicSearch\StdActns THelpOnHelpЅ THelpOnHelp0_StdActnsTHelpContextAction@THelpContextAction`aStdActnsTCommonDialogClassHTCommonDialogActionTCommonDialogActionch# StdActns0OnUpdate( TFileAction TFileActioneStdActnsЇ TFileOpen TFileOpen hStdActns"ׅ4CaptionZ=Dialog ۅ4Enabled8 HelpContext8 HelpKeyword`ޅ 4HelpType" 4HintS  4 ImageIndex0 4ShortCut`"  SecondaryShortCuts hh0 UseDefaultApp 4Visible((0 BeforeExecute@@0OnAcceptPP0OnCancel" 0OnHint@ TFileOpenWithPȋ TFileOpenWith`jStdActnsP0FileNamepp0 AfterOpen TFileSaveAs TFileSaveAslStdActns "ׅ4Caption8Z=Dialog ۅ4Enabled8 HelpContext"4HintS  4 ImageIndex0 4ShortCut`"  SecondaryShortCuts  4Visible(( 0 BeforeExecute@@0OnAcceptPP0OnCancel" 0OnHint TFileExitȏ TFileExitnh# StdActns "ׅ4Caption ۅ4Enabled8 HelpContext8 HelpKeyword`ޅ4HelpType"4HintS  4 ImageIndex0 4ShortCut`"  SecondaryShortCuts  4Visible"  0OnHint TSearchActionx TSearchActionqStdActns TSearchFind TSearchFind`sStdActns"ׅ4Captionk=Dialog ۅ4Enabled8 HelpContext8 HelpKeyword`ޅ 4HelpType" 4HintS  4 ImageIndex0 4ShortCut`"  SecondaryShortCuts 4Visible((0 BeforeExecute@@0OnAcceptPP0OnCancel" 0OnHint TSearchReplacepTSearchReplaceuStdActns"ׅ4Caption l=Dialog ۅ4Enabled8 HelpContext8 HelpKeyword`ޅ 4HelpType" 4HintS  4 ImageIndex0 4ShortCut`"  SecondaryShortCuts 4Visible((0 BeforeExecute@@0OnAcceptPP0OnCancel" 0OnHintTSearchFindFirstTSearchFindFirstxhStdActns8TSearchFindNextpTSearchFindNext`zh# StdActns "ׅ4Caption ۅ4Enabled8 HelpContext8 HelpKeyword`ޅ4HelpType"4HintS  4 ImageIndexh(p 4 SearchFind0 4ShortCut`"  SecondaryShortCuts  4Visible" 0OnHint TFontEdith TFontEdit|StdActns"ׅ4Captionj=Dialog ۅ4Enabled8 HelpContext8 HelpKeyword`ޅ 4HelpType" 4HintS  4 ImageIndex0 4ShortCut`"  SecondaryShortCuts 4Visible((0 BeforeExecute@@0OnAcceptPP0OnCancel" 0OnHint TColorSelect TColorSelect~StdActns"ׅ4Caption@k=Dialog ۅ4Enabled8 HelpContext8 HelpKeyword`ޅ 4HelpType" 4HintS  4 ImageIndex0 4ShortCut`"  SecondaryShortCuts 4Visible((0 BeforeExecute@@0OnAcceptPP0OnCancel" 0OnHint 5@1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX ESynEditErrorp ESynEditError ESynEditErrorp SynEditTypesTSynIdentChars HTLinePos TLineIdx@IntPos`IntIdx TLogCaretPoint  TLogCaretPoint ئ TSynLineStateslsNoneslsSaved slsUnsaved SynEditTypes0PXaPXaTSynCoordinateMappingFlagscmLimitToLinesscmIncludePartVisiblescmForceLeftSidePos SynEditTypes2 ` 2TSynCoordinateMappingFlagsXTSynSelectionModesmNormalsmLinesmColumn smCurrent SynEditTypes$-P$-PSynSelectionModeHTSynSearchOption ssoMatchCase ssoWholeWord ssoBackwardsssoEntireScopessoSelectedOnly ssoReplace ssoReplaceAll ssoPromptssoSearchInReplacement ssoRegExprssoRegExprMultiLinessoFindContinue SynEditTypes %2  j  Q\tAЪ %2AQ\jtpTSynSearchOptionsȪTSynStatusChange scCaretXscCaretY scLeftChar scTopLinescLinesInWindowscCharsInWindow scInsertMode scModified scSelection scReadOnlyscFocus scOptions SynEditTypes 3<j zEZ  Pج3<EPZjzxTSynStatusChangesЬTStatusChangeEvent$selfPointerSenderTObjectChangesTSynStatusChangesTSynPaintEvent peBeforePaint peAfterPaint SynEditTypesTSynPaintEvents0TSynPaintEventProc$selfPointerSenderTObject EventTypeTSynPaintEventrcClipTRect0`TSynScrollEventpeBeforeScroll peAfterScrollpeAfterScrollFailed SynEditTypes!/`!/TSynScrollEventsXTSynScrollEventProc$selfPointerSenderTObject EventTypeTSynScrollEventdxLongIntdyLongIntrcScrollTRectrcClipTRectX00 TSynMouseLocationInfo TSynMouseLocationInfoTSynQueryMouseCursorEvent$selfPointerSenderTObjectAMouseLocationTSynMouseLocationInfoAnCursorTCursor APriorityLongInt AChangedByTObject@0HTSynEditorOption eoAutoIndenteoBracketHighlighteoEnhanceHomeKey eoGroupUndoeoHalfPageScrolleoHideRightMargin eoKeepCaretX eoNoCaret eoNoSelectioneoPersistentCareteoScrollByOneLesseoScrollPastEofeoScrollPastEoleoScrollHintFollowseoShowScrollHinteoShowSpecialChars eoSmartTabs eoTabIndenteoTabsToSpaceseoTrimTrailingSpaceseoAutoSizeMaxScrollWidtheoDisableScrollArrowseoHideShowScrollbars eoDropFileseoSmartTabDeleteeoSpacesToTabseoAutoIndentOnPasteeoAltSetsColumnModeeoDragDropEditingeoRightMouseMovesCursoreoDoubleClickSelectsLineeoShowCtrlMouseLinks SynEditTypes(  KXJ ̴k|³ г2    c(9شLXdsKXk|³г(9LXds̴ش  2Jc TSynEditorOptions0TSynEditorOption2eoCaretSkipsSelectioneoCaretMoveEndsSelectioneoCaretSkipTabeoAlwaysVisibleCareteoEnhanceEndKeyeoFoldedCopyPasteeoPersistentBlockeoOverwriteBlockeoAutoHideCursoreoColorSelectionTillEoleoPersistentCaretStopBlinkeoNoScrollOnSelectRangeeoAcceptDragDropEditingeoScrollPastEolAddPageeoScrollPastEolAutoCaret SynEditTypes` x¸ -׸ `  E ع¸׸ -E`xTSynEditorOptions2й TSynVisibleSpecialCharvscSpace vscTabAtFirst vscTabAtLast SynEditTypesPyyTSynVisibleSpecialChars TSynLineStyleslsSolid slsDashed slsDottedslsWaved SynEditTypesHq{hhq{TSynFrameEdgessfeNone sfeAround sfeBottomsfeLeft SynEditTypesAKU9x9AKUTLazSynBorderSidebsLeftbsTopbsRightbsBottom SynEditTypes! @ !TLazSynBorderSides8THookedCommandEvent$selfPointerSenderTObjectAfterProcessingBooleanHandledBooleanCommandTSynEditorCommandAChar TUTF8CharDataPointer HandlerDataPointer "THookedCommandFlaghcfInit hcfPreExec hcfPostExec hcfFinish SynEditTypes$ H $THookedCommandFlags@THookedKeyTranslationEvent $selfPointerSenderTObjectCodeWordSState TShiftStateDataPointerIsStartOfComboBooleanHandledBooleanCommandTSynEditorCommandFinishComboOnlyBoolean ComboKeyStrokesTSynEditKeyStrokes  p1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynEditSearchResult8X0P3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynEditSearch( TByteArray256H PByteArray256HPTSynEditSearchResultpTSynEditSearchResult8 SynEditSearch TSynEditSearch 0TSynEditSearch( SynEditSearch5X1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX ESynKeyErrorH`0SP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]TS ˞SS`̞`SSЖSTSynEditKeyStrokePPhpSP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]Tޞ`՞SpSSSПS`SSPSSPSߞTSynEditKeyStrokes0Ppи0Ppй0Ppк8`ػ(X м Hp_8`hacȾef gHhhijwxy@zp{|kl(mPnxopqrs@thuv@h Hp(X@h@h&Y(ZH[h\]^_`Haxbvwy(zP{|x}8`(gPhxij8`0X(X-./01 2H3p456_`8a`bcdef(gPhxijklm@nhopqrs0tXuvwxy zH{p|}~ ESynKeyError  ESynKeyErrorSynEditKeyCmdsXTSynEditorCommand  TSynEditKeyStroke TSynEditKeyStrokeSynEditKeyCmdsΞΞ5Command͞Ϟ5ShortCutўО5 ShortCut2`TSynEditKeyStrokes@TSynEditKeyStrokesSynEditKeyCmdsTGetEditorCommandValuesProcProc TMenuKeyCapmkcBkSpmkcTabmkcEscmkcEntermkcSpacemkcPgUpmkcPgDnmkcEndmkcHomemkcLeftmkcUpmkcRightmkcDownmkcInsmkcDelmkcShiftmkcCtrlmkcAltSynEditKeyCmds |V4-]  eNF s=& m&-4=FNV]ems| P &&SynEditKeyCmds&SynEditKeyCmdsSynEditKeyCmds !:Sl4Mf.G`y51CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXESynMouseCmdErrorP@0SP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]TS0SS`SSЖSTSynEditMouseActionHXpppSP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T@ `SpSSSПS`S` PSSPSTSynEditMouseActionsXx@P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T@ `SpSSSПS`S` PSSPSTSynEditMouseInternalActions jvP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynEditMouseActionSearchList 0jvP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynEditMouseActionExecListP 0 ` @p0`@p8TSynEditorMouseOptionemUseMouseActionsemAltSetsColumnModeemDragDropEditingemRightMouseMovesCursoremDoubleClickSelectsLineemShowCtrlMouseLinksemCtrlWheelZoomSynEditMouseCmds6!`!6TSynEditorMouseOptionsXTSynEditorMouseCommand@TSynEditorMouseCommandOptpTSynMAClickCountccSingleccDoubleccTripleccQuadccAnySynEditMouseCmdsPTSynMAClickDircdUpcdDownSynEditMouseCmdsTSynMAUpRestriction crLastDownPoscrLastDownPosSameLinecrLastDownPosSearchAllcrLastDownButtoncrLastDownShiftcrAllowFallbackSynEditMouseCmdsy>Lb>Lby TSynMAUpRestrictions`ESynMouseCmdErrorESynMouseCmdErrorSynEditMouseCmds TSynEditMouseActionResult TSynEditMouseActionResult X TSynEditMouseActionInfo@ TSynEditMouseActionInfo@ P}  $ %(TSynEditMouseActionTSynEditMouseAction SynEditMouseCmds < 4Shift@4 ShiftMask}D4ButtonH4 ClickCount,4ClickDir( 4ButtonUpRestrictionshL4Command N`4 MoveCaret 04 IgnoreUpClick2 4Option4@ 4Option28 4Priority@ TSynEditMouseActions0TSynEditMouseActionsSynEditMouseCmdspTSynEditMouseInternalActionsTSynEditMouseInternalActionsSynEditMouseCmdsTSynEditMouseActionHandler$selfPointer AnActionListTSynEditMouseActionsAnInfoTSynEditMouseActionInfoBoolean PTSynEditMouseActionSearchProc$selfPointerAnInfoTSynEditMouseActionInfoHandleActionProcTSynEditMouseActionHandlerBoolean TSynEditMouseActionExecProc$selfPointerAnActionTSynEditMouseActionAnInfoTSynEditMouseActionInfoBoolean TSynEditMouseActionSearchListPTSynEditMouseActionSearchListxSynEditMouseCmdsTSynEditMouseActionExecListTSynEditMouseActionExecListxSynEditMouseCmds0TMouseCmdNameAndOptProcs$resulthemc &&SynEditMouseCmds&SynEditMouseCmds8SynEditMouseCmdspSynEditMouseCmdsSynEditMouseCmds TIntArray PIntArrayHP X <P3C4CP6C9C9C:C9C7C8C0AC@ACPAC8 909TSynEditPointBasep@p <P3C4CP6C9C9C:C9C7C8C0AC@ACPAC8 909P1123TSynEditBaseCaretx@P3C4CP6C9C9C:C9C7C8C0AC@ACPACBA BLpMR@X TSynEditCaret jvP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynBeforeSetSelTextListHpmP3C4CP6C9C9C:C9C7C8C0AC@ACPAC8r0sTSynEditSelection0 ӟP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynEditScreenCaretTimer( P3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynEditScreenCaretp 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACٟܟܟ ݟ`ݟݟp۟۟ܟ ܟ@ܟTSynEditScreenCaretPainterp  1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACٟݟ0ޟޟ`ݟݟ`ߟP TSynEditScreenCaretPainterSystem`x( P3C4CP6C9C9C:C9C7C8C0AC@ACPACP0 @"TSynEditScreenCaretPainterInternalPTInvalidateLines$selfPointer FirstLineLongIntLastLineLongIntTLinesCountChanged$selfPointer FirstLineLongIntCountLongIntTMaxLeftCharFunc$selfPointerLongIntTSynEditPointBaseTSynEditPointBasepSynEditPointClassesTSynEditBaseCaretXTSynEditBaseCaretxPSynEditPointClasses TSynEditCaret TSynEditCaretSynEditPointClassesTSynBlockPersistMode sbpDefaultsbpWeak sbpStrongSynEditPointClassesXTSynBeforeSetSelTextEvent$selfPointerSenderTObjectAModeTSynSelectionModeANewTextPCharHHTSynBeforeSetSelTextListTSynBeforeSetSelTextListxSynEditPointClassesSynEditPointClassesHTSynEditSelectionTSynEditSelectionPSynEditPointClassesTSynEditCaretFlagscCharPosValidscBytePosValidscViewedPosValidscHasLineMapHandlerscfUpdateLastCaretXSynEditPointClassesC4wcR4CRcwTSynEditCaretFlags(TSynEditCaretUpdateFlag scuForceSet scuChangedX scuChangedYscuNoInvalidateSynEditPointClassesX TSynEditCaretUpdateFlagsH  TSynCaretTypectVerticalLinectHorizontalLine ctHalfBlockctBlockctCostumSynEditPointClasses            H sclfUpdateDisplaysclfUpdateDisplayTypeSynEditPointClasses       TSynCaretLockFlags  TSynEditScreenCaretTimerP TSynEditScreenCaretTimerSynEditPointClasses TSynEditScreenCaret TSynEditScreenCaretSynEditPointClasses( TSynEditScreenCaretPainterp TSynEditScreenCaretPainterSynEditPointClasses TSynEditScreenCaretPainterClass   TSynEditScreenCaretPainterSystem@  TSynEditScreenCaretPainterSystem SynEditPointClasses  TPainterStatepsAfterPaintAdded psCleanOld psRemoveTimerSynEditPointClasses %P%TPainterStatesH"TSynEditScreenCaretPainterInternal"TSynEditScreenCaretPainterInternalP SynEditPointClasses(TIsInRectStateirInside irPartInside irOutsideSynEditPointClassesTSynCustomCaretSizeFlagccsRelativeLeftccsRelativeTopccsRelativeWidthccsRelativeHeightSynEditPointClasses8brbrTSynCustomCaretSizeFlags8x؁H`TP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTpTPT`TpTЂTTTTTTЅTTTTT TTTT T@T`TTTTCCCCTSynCustomBeautifierpphP`TP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTPT`TpTЂTTTTTTЅTTTTT TTTT T@T`TTTT`;p6`TSynBeautifierpTSynCustomBeautifierpTSynCustomBeautifierp@ SynBeautifierTSynBeautifierSetIndentProc$selfPointerLinePosLongIntIndentLongIntRelativeToLinePosLongInt IndentChars AnsiStringIndentCharsFromLinePosLongIntTSynBeautifierGetIndentEvent $selfPointerSenderTObjectEditorTObjectLogCaretTPoint OldLogCaretTPoint FirstLinePosLongInt LastLinePosLongIntReasonTSynEditorCommand SetIndentProcTSynBeautifierSetIndentProcBoolean TSynCustomBeautifierClass(TSynBeautifierIndentType sbitSpacesbitCopySpaceTabsbitPositionCaretsbitConvertToTabSpacesbitConvertToTabOnly SynBeautifierX@TSynBeautifierxTSynBeautifierp SynBeautifier0 IndentTypeTSynCommentContineMode sccNoPrefixsccPrefixAlwayssccPrefixMatch SynBeautifier IUeIUeTSynCommentMatchLine sclMatchFirst sclMatchPrev SynBeautifierHpTSynCommentMatchModescmMatchAfterOpeningscmMatchOpeningscmMatchWholeLinescmMatchAtAsterisk SynBeautifierXTSynCommentIndentFlag sciNone sciAlignOpensciAlignOpenOncesciAlignOpenSkipBOLsciAddTokenLensciAddPastTokenIndentsciMatchOnlyTokenLensciMatchOnlyPastTokenIndentsciAlignOnlyTokenLensciAlignOnlyPastTokenIndentsciApplyIndentForNoMatch SynBeautifier  U@ q$$@Uq8TSynCommentIndentFlagsTSynCommentExtendModesceNever sceAlways sceSplitLine sceMatchingsceMatchingSplitLine SynBeautifier  ,X  ,TSynCommentTypesctAnsisctBorsctSlash SynBeautifier  0   `     P! '0GP3C4CP6C9C9C:C9C7C8C0AC@ACPACpBC D0?EA TSynEditMark P."'MP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynEditMarkLine"00#(ZP3C4CP6C9C9C:C9C7C8C0AC@ACPACХХ@ѥX[TSynEditMarkLineList"@$(`aP3C4CP6C9C9C:C9C7C8C0AC@ACPACbTSynEditMarkList$-%x,1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynEditMarkChangedHandlerList% &-1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynEditMarkIterator% TSynEditMark& TSynEditMark  SynEditMarks 'TSynEditMarkLineX'TSynEditMarkLine"h@ SynEditMarks'TSynEditMarkLineList'TSynEditMarkLineList"A SynEditMarks(TSynEditMarkListX(TSynEditMarkList$ SynEditMarks(TSynEditMarkChangeReason smcrAdded smcrRemovedsmcrLine smcrColumn smcrVisible smcrChanged SynEditMarks()9)")) )-)`)) ))")-)9))TSynEditMarkChangeReasonsX))TSynEditMarkSortOrder smsoUnsorted smsoColumn smsoPrioritysmsoBookmarkFirstsmsoBookMarkLast SynEditMarks0*}**e*p*X**X*e*p*}**+TSynEditMarkChangeEvent$selfPointerSender TSynEditMarkChangesTSynEditMarkChangeReasonsP'(*8+TPlaceMarkEvent$selfPointerSenderTObject Mark TSynEditMarkP'+TSynEditMarkChangedHandlerList0,TSynEditMarkChangedHandlerList%0? SynEditMarksx,TSynEditMarkIterator,TSynEditMarkIterator% SynEditMarks-P.1P3C4CP6C9C9C:C9C7C8C0AC@ACPAC{z||@{|0}@}P}`}}}CC`0TSynEditMarkupH-X.0`2`P3C4CP6C9C9C:C9C7C8C0AC@ACPAC |0}@}P}`}}P0@` 0TSynEditMarkupManager/ TLazSynDisplayRtlInfo0 TLazSynDisplayRtlInfo0  1TSynEditMarkupH- SynEditMarkup1TSynEditMarkupClass11TSynEditMarkup1TSynEditMarkupManager 2TSynEditMarkupManager/1 SynEditMarkup`2 c3D ͡P3C4CP6C9C9C:C9C7C8C0AC@ACPACʡ ѡ ΡϡTSynMarkupHighAllMatchList2(34E ͡P3C4CP6C9C9C:C9C7C8C0AC@ACPACpʡ ѡ ΡϡTSynMarkupHighAllMultiMatchList3`.6 FP3C4CP6C9C9C:C9C7C8C0AC@ACPAC{z||@{|0}@}P}`}}}@`0PУTSynEditMarkupHighlightMatches468FP3C4CP6C9C9C:C9C7C8C0AC@ACPAC{08||@{0}@99@``08УCCCCTSynEditMarkupHighlightAllBase6`8:pGGP3C4CP6C9C9C:C9C7C8C0AC@ACPAC{08||@{0}@99@``08У``0@PTSynEditMarkupHighlightAll8(;JԠP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynSearchDictionary; 8=pKP3C4CP6C9C9C:C9C7C8C0AC@ACPAC{08||@{0}@99@``08У@``TSynEditMarkupHighlightAllMulti;8 ?LK0?0SP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]TSpSS S`SSߠTSynSearchTerm>H@M@pSP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^TSSpSSSПS`S`SPSTSynSearchTermList@?@ANPNP3C4CP6C9C9C:C9C7C8C0AC@ACPACP^v^v^vдpTSynSearchTermDict@:CHONRP3C4CP6C9C9C:C9C7C8C0AC@ACPAC{08||@{pCCC9@`S08У``0>MTSynEditMarkupHighlightAllCaretA TSynMarkupHighAllMatchC TSynMarkupHighAllMatchC DPSynMarkupHighAllMatchhDpDTSynMarkupHighAllMatchListDTSynMarkupHighAllMatchList2lSynEditMarkupHighAllDTSynMarkupHighAllMultiMatchList0ETSynMarkupHighAllMultiMatchList3(ESynEditMarkupHighAllETSynEditMarkupHighlightMatchesETSynEditMarkupHighlightMatches41SynEditMarkupHighAll FTSynEditMarkupHighlightAllBasexFTSynEditMarkupHighlightAllBase6pFSynEditMarkupHighAllFTSynEditMarkupHighlightAllGTSynEditMarkupHighlightAll8GSynEditMarkupHighAllpG TSynSearchDictionaryNodeG HH TSynSearchDictionaryNodeGHH0H8HPSynSearchDictionaryNodeHHTSynSearchDictFoundEvent$selfPointerMatchEndPCharMatchIdxLongIntIsMatchBoolean StopSeachBooleanH ITSynSearchTermOptsBounds soNoBounds soBothBoundssoBoundsAtStart soBoundsAtEndSynEditMarkupHighAllIIIII(JIIIIhJTSynSearchDictionaryJTSynSearchDictionary;SynEditMarkupHighAllJTSynEditMarkupHighlightAllMulti KTSynEditMarkupHighlightAllMulti;GSynEditMarkupHighAllpKTSynSearchTerm0KTSynSearchTerm>SynEditMarkupHighAll0@ߠ4 SearchTerm J,ߠ4MatchWordBounds )ޠ4 MatchCase (ޠ4EnabledLTSynSearchTermClass(M0MTSynSearchTermListXMTSynSearchTermList@?SynEditMarkupHighAllMTSynSearchTermListClassMMSynEditMarkupHighAllNTSynSearchTermDictHN(PNTSynSearchTermDict@SynEditMarkupHighAllNTSynEditMarkupHighlightAllCaretNTSynEditMarkupHighlightAllCaretAGSynEditMarkupHighAllHOh.HQRP3C4CP6C9C9C:C9C7C8C0AC@ACPAC{z||@{0]\\\\]P]P`a`W0PXTSynEditMarkupBracketO((TSynEditBracketHighlightStylesbhsLeftOfCursorsbhsRightOfCursorsbhsBothSynEditMarkupBracketQQQQRQQQ@RTSynEditMarkupBrackethRTSynEditMarkupBracketO1SynEditMarkupBracketRx.TUP3C4CP6C9C9C:C9C7C8C0AC@ACPAC{z||@{rpq r0r@rprruw`e0TSynEditMarkupWordGroupR TWordPoint T TWordPointT TTSynEditMarkupWordGroup@UTSynEditMarkupWordGroupR1SynEditMarkupWordGroupUx.xWWP3C4CP6C9C9C:C9C7C8C0AC@ACPAC{||@{0}@}P}`}P}`0TSynEditMarkupCtrlMouseLinkUTSynEditMarkupCtrlMouseLinkWTSynEditMarkupCtrlMouseLinkU1SynEditMarkupCtrlMouseLinkW.Y[ЉP3C4CP6C9C9C:C9C7C8C0AC@ACPAC{z||@{P0}p@`pTSynEditMarkupSpecialLine@XTSpecialLineMarkupEvent$selfPointerSenderTObjectLineLongIntSpecialBooleanMarkupTSynSelectedColor `2ZTSpecialLineColorsEvent$selfPointerSenderTObjectLineLongIntSpecialBooleanFGTGraphicsColorBGTGraphicsColor ZTSynEditMarkupSpecialLinex[TSynEditMarkupSpecialLine@X1SynEditMarkupSpecialLine[.]^P3C4CP6C9C9C:C9C7C8C0AC@ACPAC{z||@{p0}@}P}`}} `0TSynEditMarkupSelection\TSynEditMarkupSelection]TSynEditMarkupSelection\1SynEditMarkupSelection^h.``0`@P3C4CP6C9C9C:C9C7C8C0AC@ACPAC{z||@{ 0}@}P}`}p}М0`0TSynEditMarkupSpecialCharh^TSynEditMarkupSpecialCharX0`TSynEditMarkupSpecialCharh^1SynEditMarkupSpecialChar`hak0P3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynEditUndoList`b8l1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC CTSynEditUndoItema cl ͡P3C4CP6C9C9C:C9C7C8C0AC@ACPACpʡʡPˡѡ ΡϡTSynEditStorageMemb ce8m ͡P3C4CP6C9C9C:C9C7C8C0AC@ACPACpʡʡPˡѡ ΡϡpӡӡӡTSynManagedStorageMemcfXnm1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynManagedStorageMemList0ePxhnh TP3C4CP6C9C9C:C9C7C8C0T@ACPAC]TpS^TpT`TPSCSCSSSpSSTTT@T@T T TPTpTTCCTT`T0T T0TCTTTTT` T`"T#TP$T%T(TCCCCTSynEditStringsBase(f pio`oP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynEditUndoGrouph `j qjvP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynEditUpdateCaretUndoProcListi5Xkq1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXESynEditStorageMemjTSynEditUndoListxkTSynEditUndoList`SynEditTextBasekTSynEditUndoItemkTSynEditUndoItemaSynEditTextBase8lTSynEditStorageMemxlTSynEditStorageMembSynEditTextBaselTSynManagedStorageMemlTSynManagedStorageMemclSynEditTextBase8m0mSynEditTextBasemSynEditTextBasemTSynManagedStorageMemListmmmTSynManagedStorageMemList0eSynEditTextBaseXnTSynEditStringsBasenTSynEditStringsBase(fSynEditTextBasen0lSynEditTextBase(oTSynEditUndoGroupXo`oTSynEditUndoGrouphSynEditTextBaseoTSynGetCaretUndoProc$selfPointerTSynEditUndoItemploTSynUpdateCaretUndoProc$selfPointer AnUndoItemTSynEditUndoItem AnIsBeginUndoBooleanpl HpTSynEditUpdateCaretUndoProcListpTSynEditUpdateCaretUndoProcListixSynEditTextBase qESynEditStorageMempqESynEditStorageMemjSynEditTextBaseqhhuu0P3C4CP6C9C9C:C9C7C8C0T@ACPAC]TpS^TpT`TPSCSCSSSpSST@T@T T TPTpTTCCTT`T0T T0TCTTTTT` T`"T#TP$T%T(TCC CCCCCCp CCCCCCCCCCCCCCCCCCCCCCC@PpCCCCCCCCCTSynEditStringsqHv(ЋP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynLogicalPhysicalConvertorux1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC0`ppTLazSynDisplayViewv(x8yh1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC0 `ppTLazSynDisplayViewEx x0(zPP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynTextViewsManagerXyXu8~hP~0P3C4CP6C9C9C:C9C7C8C0T@ACPAC]TpS^TpT`TPS-,`,P.S.`/@-T@T` TPTpTT@TT`T0T T0TPTTTTT` T`"T#TP$T%T(T(( 0&&** ''))D EE+++ D/@001p9:;< ??p@@AABB CC2345P6@7P88`9p2TSynEditStringsLinkedHzhuXp0P3C4CP6C9C9C:C9C7C8C0T@ACPAC]TpS^TpT`TPSCSCSSSpSST@T@T T TPTpTTCCTT`T0T T0TCTTTTT` T`"T#TP$T%T(TCC CCCCCCp CCCCCCCCCCCCCCCCCCCCCCC@PpCCCCCCCCCCCCTSynEditStringListBase`~TSynEditStringsTSynEditStringsq oLazSynEditTextTStringListLinesModifiedEvent$selfPointerSenderTSynEditStringsaIndexLongInt aNewCountLongInt aOldCountLongIntTStringListLineCountEvent$selfPointerSenderTSynEditStringsaIndexLongIntaCountLongIntTStringListLineEditEvent$selfPointerSenderTSynEditStringsaLinePosLongIntaBytePosLongIntaCountLongInt aLineBrkCntLongIntaText AnsiStringPTSynEditNotifyReason senrLineCountsenrLineChangesenrLinesModifiedsenrHighlightChangedsenrLineMappingChangedsenrEditAction senrClearedsenrUndoRedoAddedsenrModifiedChangedsenrIncOwnedPaintLocksenrDecOwnedPaintLocksenrIncPaintLocksenrDecPaintLocksenrBeforeIncPaintLocksenrAfterIncPaintLocksenrBeforeDecPaintLocksenrAfterDecPaintLocksenrTextBufferChangingsenrTextBufferChangedsenrBeginUndoRedosenrEndUndoRedoLazSynEditText8`v IІɅ  8  'm_|Յ_m|ɅՅ'8I`vІTPhysicalCharWidthsLazSynEditTextЈPPhysicalCharWidthTSynLogCharSide cslBeforecslAfter cslFollowLtr cslFollowRtlLazSynEditText@lbubluTSynPhysCharSidecspLeftcspRight cspFollowLtr cspFollowRtlLazSynEditTextLY;C;CLYTSynLogPhysFlaglpfAdjustToCharBeginlpfAdjustToNextCharLazSynEditText'X'TSynLogPhysFlagsPTSynLogicalPhysicalConvertorЋTSynLogicalPhysicalConvertoruLazSynEditText( TLazSynDisplayTokenInfox TLazSynDisplayTokenInfoxH. TLineRange( TLineRange(XX`TLazSynDisplayViewTLazSynDisplayViewvLazSynEditTextTLazSynDisplayViewEx(TLazSynDisplayViewEx x LazSynEditTexthLPosFlaglpAllowPastEollpAdjustToNextlpStopAtCodePointLazSynEditTextڎˎˎڎH LPosFlagspTViewedXYInfoFlagvifAdjustLogXYToNextCharvifReturnPhysXYvifReturnLogXYvifReturnLogEOLvifReturnPhysOffsetLazSynEditTextՏ0ՏxTViewedXYInfoFlags( TViewedXYInfo( TViewedXYInfo(( x$TSynTextViewsManagerTSynTextViewsManagerXyLazSynEditTextTSynEditStringsLinked(TSynEditStringsLinkedHzLazSynEditTexthTSynEditStringListBaseTSynEditStringListBase`~LazSynEditTextTSynEditStringsLinkedClass88h1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynEditFlagsClassh -(HjvP3C4CP6C9C9C:C9C7C8C0AC@ACPACTLinesModifiedNotificationListX - jvP3C4CP6C9C9C:C9C7C8C0AC@ACPACTLineRangeNotificationListP -xjvP3C4CP6C9C9C:C9C7C8C0AC@ACPACTLineEditNotificationListH0c@P3C4CP6C9C9C:C9C7C8C0AC@ACPACpʡ@TSynEditStringMemory@(xXppP3C4CP6C9C9C:C9C7C8C0T@ACPAC]TpS^TpT`TPS`0S@¢T@T TPTpTTpTT`T0T T0T@TTTTT` T`"T#TP$T%T(T p@p 00PpPâ0P P@@PpƢpˢ`Ϣp֢ڢߢp0`@¢TSynEditStringList`8PyH1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp^ _cbcccTLazSynDisplayBuffer5Ы1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXESynEditStringListbH1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACd fTSynEditUndoTxtInsertb1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACPh `kTSynEditUndoTxtDeletebX1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC0l 0nTSynEditUndoTxtLineBreakȠbТЭ1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACn pqTSynEditUndoTxtLineJoinbH1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC0r tTSynEditUndoTxtLinesInsb1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC u wTSynEditUndoTxtLinesDelb1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACpx p{TSynEditUndoMarkModifiedTSynEditFlagsClass(TSynEditFlagsClasshSynEditTextBufferhTSynEditStringFlag sfModifiedsfSavedSynEditTextBufferզզ0TSynEditStringFlagsPPSynEditStringFlagsxTStringListIndexEvent$selfPointerIndexLongIntTLinesModifiedNotificationListTLinesModifiedNotificationListX=SynEditTextBufferHTLineRangeNotificationListTLineRangeNotificationListP=SynEditTextBufferTLineEditNotificationList0TLineEditNotificationListH=SynEditTextBufferxTSynEditStringMemoryȩTSynEditStringMemory@lSynEditTextBuffer PTSynEditStringListTSynEditStringList`0SynEditTextBufferTLazSynDisplayBufferTLazSynDisplayBufferSynEditTextBufferHESynEditStringListESynEditStringListSynEditTextBufferЫ 0TSynEditUndoTxtInsertplSynEditTextBufferH 0TSynEditUndoTxtDeleteTSynEditUndoTxtDeleteplSynEditTextBufferTSynEditUndoTxtLineBreakȠplSynEditTextBufferX TSynEditUndoTxtLineJoinplSynEditTextBufferЭ TSynEditUndoTxtLinesInsplSynEditTextBufferH TSynEditUndoTxtLinesDelplSynEditTextBufferTSynEditStringFlagsArrayxSynEditTextBuffer XTSynEditUndoMarkModifiedPTSynEditUndoMarkModifiedplSynEditTextBufferpXh TP3C4CP6C9C9C:C9C7C8C0T@ACPAC]TpS^T0`TPS`SpTT@T@ TPTpTT TT`T0T T0TTTTT` T#TP$T%T(T TSynEditLines(0P8`P3C4CP6C9C9C:C9C7C8C0AC@ACPAC TSynEditFilerx@`@p`P3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynEditFileReaderh0`8`P3C4CP6C9C9C:C9C7C8C0AC@ACPACp TSynEditFileWriter`TSavedNotification$selfPointerXTSynLinesFileLineEndType sfleSystem sfleLoadedsfleCrLfsfleCrsfleLf SynEditLinesڵѵƵƵѵڵH TSynEditLines TSynEditLines( SynEditLines TSynEditFiler TSynEditFilerx SynEditLines8TSynEditFileReaderhh SynEditLinespTSynEditFileWriter`h SynEditLinesX~0PGP3C4CP6C9C9C:C9C7C8C0T@ACPAC]TpS^TpT`TPSi,`,kSkl@-T m@T`n TPTpTTp`qzT`T0T T0TsTTTTT` T`"T#TP$T%T(T(( y0&&fh 'p))D EE+++ D/@00`y`ruu9:;< ??p@@AABB CC00``ppTSynEditStringTrimmingList@Py(1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC$`$&ppTLazSynDisplayTrimb801CP3C4CP6C9C9C:C9C7C8C0AC@ACPACP( @+TSynEditUndoTrimMoveToHbH1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC`, P/TSynEditUndoTrimMoveFromXb`(1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp0 4TSynEditUndoTrimInsertpbp1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC07 :TSynEditUndoTrimDeletebh1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC= @TSynEditUndoTrimForgetTSynEditStringTrimmingType settLeaveLine settEditLine settMoveCaret settIgnoreAllSynEditTextTrimmer `  TSynEditTrimSpaceListEntrySynEditTextTrimmerTSynEditTrimSpaceListPXTSynEditStringTrimmingListTSynEditStringTrimmingListSynEditTextTrimmer0TLazSynDisplayTrim0TLazSynDisplayTrimSynEditTextTrimmer TSynEditTrimSpaceListEntryhhSynEditTextTrimmerpTSynEditTrimSpaceListX TSynEditUndoTrimMoveToHplSynEditTextTrimmer0 xTSynEditUndoTrimMoveFromXplSynEditTextTrimmer 0TSynEditUndoTrimInsertpplSynEditTextTrimmer( 8pTSynEditUndoTrimDeleteTSynEditUndoTrimDeleteplSynEditTextTrimmer (8TSynEditUndoTrimForgethTSynEditUndoTrimForgetplSynEditTextTrimmer((e ͡P3C4CP6C9C9C:C9C7C8C0AC@ACPACpʡʡPˡѡ ΡϡpӡӡӡTSynEditStringTabData0X~(PH๣P3C4CP6C9C9C:C9C7C8C0T@ACPAC]TpS^TpT`TPS-,`,P.S.`/@-T@T` TPTpTT@TT`T0T T0TPTTTTT` T`"T#TP$T%T(T(( 0&&ˣ@Σ '))D EE+++ D/̣01p9:;< ??p@@AABB CC2345P6@7P88`9ˣʣTSynEditStringTabExpander8PLineLen XTSynEditStringTabDataxTSynEditStringTabDataxmSynEditTextTabExpanderTSynEditStringTabExpanderTSynEditStringTabExpander8SynEditTextTabExpanderPQ r    K u  ?a1s'QXX~@`0P3C4CP6C9C9C:C9C7C8C0T@ACPAC]TpS^TpT`TPS-,`,P.S.`/@-T@T` TPTpTT@TT`T0T T0TPTTTTT` T`"T#TP$T%T(T(( 0&&** ''))D EE+++ D/`ӣ01p9:;< ??p@@AABB CC2345P6@7P88`9p2SynEditStringDoubleWidthCharsPSynEditStringDoubleWidthCharspSynEditStringDoubleWidthCharsPSynEditTextDoubleWidthChars`.1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynTextFoldAVLNodeData 8/P3C4CP6C9C9C:C9C7C8C0AC@ACPAC!TSynTextFoldAVLNodeNestedIterator(00GP3C4CP6C9C9C:C9C7C8C0AC@ACPAC`JJ@ѥ HTSynTextFoldAVLTreeX1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynFoldNodeInfoHelper0~P3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynEditFoldProvider xjvP3C4CP6C9C9C:C9C7C8C0AC@ACPACTFoldChangedHandlerListX~PP3C4CP6C9C9C:C9C7C8C0T@ACPAC]TpS^TpT`TPS-,`,P.S.`/@-T@T` TPTpTT@TT`T0T T0TPTTTTT` T`"T#TP$T%T(T(( 0&&** ''D EE+++ D/@0p9:;< ??p@@@p@p@2345P6@7P88`90pTSynEditFoldedViewPPyP3C4CP6C9C9C:C9C7C8C0AC@ACPAC` 00pPTLazSynDisplayFold P1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynEditFoldExportStream8HP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynEditFoldExportCoder0V0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-+;:,.@=*/\!?$%()'^{}~_#pTFoldNodeClassification fncInvalidfncHighlighterfncHighlighterExfncBlockSelectionSynEditFoldedView(hTFoldNodeClassifications TSynTextFoldAVLNodeDataTSynTextFoldAVLNodeDatah@SynEditFoldedViewTSynTextFoldAVLNode`TSynTextFoldAVLNode`X SynEditFoldedView!TSynTextFoldAVLNodeNestedIterator08!TSynTextFoldAVLNodeNestedIteratorSynEditFoldedViewTSynTextFoldAVLTreeTSynTextFoldAVLTreeASynEditFoldedView0TSynFoldNodeInfoHelperxTSynFoldNodeInfoHelperSynEditFoldedViewTFoldChangedEvent$selfPointeraLineLongIntTInvalidateLineProc$selfPointer FirstLineLongIntLastLineLongIntP TFoldViewNodeInfohHP TFoldViewNodeInfoh @ AHPX\` TSynEditFoldLineCapability cfFoldStart cfHideStart cfFoldBody cfFoldEndcfCollapsedFoldcfCollapsedHidecfSingleLineHidecfNoneSynEditFoldedView*:  [J  *:J[TSynEditFoldLineCapabilitiesx@TSynEditFoldTypescftOpenscftFoldscftHidescftAll scftInvalidSynEditFoldedViewx0 TSynEditFoldLineMapInfoh TSynEditFoldLineMapInfohp TSynEditFoldProviderNodeInfo  TSynEditFoldProviderNodeInfo   P TSynEditFoldProviderNodeInfoList HSynEditFoldedView TSynEditFoldProviderNodeInfoList SynEditFoldedViewPTSynEditFoldProviderTSynEditFoldProviderSynEditFoldedViewTFoldChangedHandlerList0TFoldChangedHandlerListxSynEditFoldedViewxSynEditFoldedViewSynEditFoldedView TSynEditFoldExportCoderEntry0pSynEditFoldedViewxTSynEditFoldExportCoder8SynEditFoldedViewSynEditFoldedView@SynEditFoldedViewxTSynEditFoldedView(TSynEditFoldedViewSynEditFoldedViewTLazSynDisplayFoldXTLazSynDisplayFoldSynEditFoldedViewTSynEditFoldedViewFlagfvfNeedCaretCheckfvfNeedCalcMapsSynEditFoldedView H pTSynEditFoldedViewFlags@ TSynEditFoldExportStreamTSynEditFoldExportStream8SynEditFoldedViewPTSynEditFoldExportCoder0SynEditFoldedView($Pxh`P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTPT`TpTЂTTTTTTЅTTTTT TTTT T`TpTTp0` p @C @TSynGutterPartBasep&@X P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTpTЂTTTTTT@TTTT TTTT T`TTTT TSynGutterPartListBasexX P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T `TC 0TSynGutterBasehp`p( P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTpTЂTTTTTT@TTTT TTTT T`TTTT TSynGutterPartListp``x P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTpTЂTTTTTT@TTTT TTTT T`TTTT TSynRightGutterPartListTGutterClickEvent$selfPointerSenderTObjectXLongIntYLongIntLineLongIntmark TSynEditMarkP'TSynGutterPartBase8TSynGutterPartBase6 SynGutterBase 8AutoSizet 8Width = FullWidth0 4 LeftOffset 4 RightOffset 8Visible p 5 MouseActionsxTSynGutterPartBaseClass (TSynGutterPartListBaseXTSynGutterPartListBasex6 SynGutterBaseTSynGutterSidegsLeftgsRight SynGutterBase(PTSynGutterBasepTSynGutterBaseh SynGutterBaseTSynGutterPartListTSynGutterPartList SynGutterBase(TSynRightGutterPartListhTSynRightGutterPartList SynGutterBaseph `P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTPT`TpTЂTTTTTTЅTTTTT TTTT T A`TpTTp0`A p @B @TSynGutterSeparator@E rP3C4CP6C9C9C:C9C7C8C0AC@ACPACp%q)&77TLazSynGutterArea8 +P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T `T1 1/@:<, TSynGutterXP Hp @P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T@ `SpSSSПS`S` PSSPSETSynEditMouseActionsGutter TSynGutterSeparator TSynGutterSeparator  SynGutterP? 4 LineWidth? 4 LineOffset p@ 4 LineOnRight`2  4 MarkupInfo TLazSynGutterArea TLazSynGutterAreaI SynGutter  TSynGutterX  TSynGutter SynGutter U4AutoSize@4Color00Cursor\4 LeftOffsetX@4 RightOffset T4VisibleH4Width @4Parts 5 MouseActionspp 0OnResize 0OnChange TSynEditMouseActionsGutterTSynEditMouseActionsGutter H SynGutterHx`(11CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynWordBreaker0p1rP3C4CP6C9C9C:C9C7C8C0AC@ACPACpCq0stTLazSynSurfacex " 2^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^TI`Tmo0kPn0:: ;P;@P=RTSynSelectedColorH2^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TTSynBookMarkOpta 4 HP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpT_T``T`0`ЅT`TTT TTTT T`F`Tpa0aT`Iaڄa````^^``Ў` `@`}`_a`^+`+`P^``_` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``-a"``p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``P>1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynFilteredMethodList-0. @1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynSizedDifferentialAVLNode./AP3C4CP6C9C9C:C9C7C8C0AC@ACPACХХ@ѥ TSynSizedDifferentialAVLTree.TSynUndoRedoItemEvent$selfPointerCallerTObjectItemTSynEditUndoItemBoolean pl`0TSynWordBreaker0TSynWordBreakerSynEditMiscClasses(1TLazSynSurfaceh1TLazSynSurfacexSynEditMiscClasses1TSynSelectedColor1TSynSelectedColor0SynEditMiscClasses 2TSynBookMarkOpth2TSynBookMarkOptSynEditMiscClassesT w4BookmarkImages x4DrawBookmarksFirst !!0 EnableKeys "`x4 GlyphsVisible$x4 LeftMargin0y 4Xoffset880OnChange2 TSynEditBasep4 TSynEditBaseSynEditMiscClasses4TSynEditFriend4TSynEditFriend @SynEditMiscClasses 5 `5TSynObjectListItem5TSynObjectListItem"X5SynEditMiscClasses5TSynObjectList6TSynObjectList$@SynEditMiscClassesP6TSynObjectListItemClass66 TLazSynDisplayTokenBound 6 TLazSynDisplayTokenBound6 7 TSynSelectedColorAlphaEntry p7 TSynSelectedColorAlphaEntryp7 7 7SynEditMiscClasses 8 TSynSelectedColorMergeInfoX8`8 8SynEditMiscClasses8 TSynSelectedColorMergeInfo`888TSynSelectedColorEnumsscBacksscFore sscFrameLeft sscFrameRight sscFrameTopsscFrameBottomSynEditMiscClassesp9999999:999999X: 89:TSynSelectedColorMergeResult:@:TSynSelectedColorMergeResult&`2SynEditMiscClasses ;TSynInternalImagep;TSynInternalImage0(SynEditMiscClasses;TSynEditSearchCustom;TSynEditSearchCustom )@SynEditMiscClasses8<TSynClipboardStreamTag<TSynClipboardStream<TSynClipboardStream8+SynEditMiscClasses=TSynMethodListH=TSynMethodList(,xSynEditMiscClasses= TSynFilteredMethodListEntry= TSynFilteredMethodListEntry=p&>>SynEditMiscClasses`>TSynFilteredMethodList>>TSynFilteredMethodList-SynEditMiscClasses>TReplacedChildSiterplcLeft rplcRightSynEditMiscClasses8?]?f??]?f??TSynSizedDifferentialAVLNode?TSynSizedDifferentialAVLNode.SynEditMiscClasses @TSynSizedDiffAVLFindModeafmNil afmCreateafmPrevafmNextSynEditMiscClassesp@@@@@@@@@@ATSynSizedDifferentialAVLTreeHATSynSizedDifferentialAVLTree.SynEditMiscClassesABHPHP3C4CP6C9C9C:C9C7C8C0AC@ACPACTLazSynPaintTokenBreakerAC0I PP3C4CP6C9C9C:C9C7C8C0AC@ACPACJ`XqQT\TLazSynTextAreaB8DIrP3C4CP6C9C9C:C9C7C8C0AC@ACPACpCq8t77TLazSynSurfaceWithTextCXEF8JrP3C4CP6C9C9C:C9C7C8C0AC@ACPAC>>p>8@A<:@:`:::;0;8909`9==D ETLazSynSurfaceManagerE TLazSynDisplayTokenInfoExF TLazSynDisplayTokenInfoExF h;h7 h7,8<@Dx1H\ ` ad h ih7lx1xGTLazSynPaintTokenBreaker8PHTLazSynPaintTokenBreakerALazSynTextAreaHTLazSynTextAreaHTLazSynTextAreaB1LazSynTextArea0ITLazSynSurfaceWithTextpITLazSynSurfaceWithTextC1LazSynTextAreaITLazSynSurfaceManagerITLazSynSurfaceManagerEILazSynTextArea8JPKpU~P3C4CP6C9C9C:C9C7C8C0AC@ACPACTheFontsInfoManagerJ5@LV1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEheFontStockExceptionpK@xM`WP3C4CP6C9C9C:C9C7C8C0AC@ACPAC ГЖЗ0Е TheFontStock`L`NXW1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TEtoBufferM5HOX1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEheTextDrawerExceptionxNhPYP3C4CP6C9C9C:C9C7C8C0AC@ACPACp @P``@ШP TheTextDrawerhOPPpRYP3C4CP6C9C9C:C9C7C8C0AC@ACPACp0@``@ШPp TheTextDrawerExPTheStockFontPatternsR TheFontData(R TheFontDataR(pp& S PheFontDataSS TheFontsDataSRS PheFontsDataSS TheFontsDataRRT TheSharedFontsInfo8T TheSharedFontsInfo8T  SxTPheSharedFontsInfoUUTheFontsInfoManager0UTheFontsInfoManagerJ SynTextDrawerpUTheExtTextOutProc$selfPointerXLongIntYLongInt fuOptionsLongWordARectTRectTextPCharLengthLongInt`0HUEheFontStockExceptionpVEheFontStockExceptionpK SynTextDrawerV 0V TheFontStock(W TheFontStock`L SynTextDrawer`W SynTextDrawerW TEtoBufferWW TEtoBufferM SynTextDrawerXEheTextDrawerExceptionPXEheTextDrawerExceptionxN SynTextDrawerX TheTextDrawerX TheTextDrawerhO SynTextDrawerYTheTextDrawerExPYTheTextDrawerExPHY SynTextDrawerYTheLeadByteChars HYXX~]`^^0P3C4CP6C9C9C:C9C7C8C0T@ACPAC]TpS^TpT`TPS-,`,P.S.`/@-T@T` TPTpTT@TT`T0T T0TPTTTTT` T`"T#TP$T%T(T(( 0&&** ''))D EE+++ D/01p9:;< ??p@@AABB CC2345P6@7P88`9p2TSynEditStringBidiCharsZTSynEditStringBidiChars^TSynEditStringBidiCharsZSynEditTextBidiChars`^X`xh `@P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T@ `SpSSSПS`S` PSSPSTSynEditMouseActionsGutterFold^Xa ia@P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T@ `SpSSSПS`S` PSSPS`&TSynEditMouseActionsGutterFoldExpanded0`Xci0c@P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T@ `SpSSSПS`S` PSSPS'TSynEditMouseActionsGutterFoldCollapseda(cXe`kpeP݄4CT9C9CT9C7C8Cφ@ACPACTЍTPT`TpTЂTTTTTTЅTTTTT TTTT T`TTTT`ڄڄބЏaaPpP†྆ÆԆTSynGutterImageList@cpgllh`٦P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTPT`TpTЂTTTTTTЅTTTTT TTTT TPצ`TpTTp0ݦ p0ݦ @0 ڦ ݦ`ߦݦ̦TSynGutterCodeFoldingeTSynEditMouseActionsGutterFold0hTSynEditMouseActionsGutterFold^HSynGutterCodeFoldingxh&TSynEditMouseActionsGutterFoldExpandedh&TSynEditMouseActionsGutterFoldExpanded0`HSynGutterCodeFolding i'TSynEditMouseActionsGutterFoldCollapsedi'TSynEditMouseActionsGutterFoldCollapsedaHSynGutterCodeFoldingi nsoSubtype nsoLostHl nsoBlockSelSynGutterCodeFolding8j`jVjKjjKjVj`jjTDrawNodeSymbolOptionsjjTSynGutterImageList kTSynGutterImageList@cSynGutterCodeFolding`khSynGutterCodeFoldingk k l Hl xlTSynGutterCodeFoldingklTSynGutterCodeFoldinge  SynGutterCodeFolding`2  4 MarkupInfopĦĦ 5MouseActionsExpandedPĦ Ħ 5MouseActionsCollapsed  0ReversePopMenuOrderl(ppqpPP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTPT`TpTЂTTTTTTЅTTTTT TTTT T`TpTTp0` p @ @TSynGutterChanges8nTSynGutterChangespTSynGutterChanges8n  SynGutterChanges  5 ModifiedColorP 5 SavedColorqp0twHtP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTPT`TpTЂTTTTTTЅTTTTT TTTT T`TpTTpP @ @ @TSynGutterLineNumberqXupyu@P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T@ `SpSSSПS`S` PSSPSTSynEditMouseActionsLineNumXtTSynGutterLineNumberu TSynEditGutterLineInfov TSynEditGutterLineInfov XvTSynEditGetGutterLineTextEvent$selfPointerSenderTSynGutterLineNumberALineLongInt AText AnsiString ALineInfoTSynEditGutterLineInfo yvvTSynGutterLineNumberq SynGutterLineNumber`2  4 MarkupInfo 4 DigitCount  4ShowOnlyLineNumbersMultiplesOf  4 ZeroStart  4 LeadingZerosxw0OnFormatLineNumberwTSynEditMouseActionsLineNum(yTSynEditMouseActionsLineNumXtHSynGutterLineNumberpyp@||P|P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTPT`TpTЂTTTTTTЅTTTTT TTTT T`TpTTp@` p @' @'TSynGutterMarksyTSynGutterMarks`|TSynGutterMarksy  SynGutterMarks|pPhpvP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTPT`TpTЂTTTTTTЅTTTTT TTTT TЃ`TpTTp`t`P `x0y~y@`p PTSynGutterLineOverview|x&@ؚhPP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTpTЂTTTTTT@TTTT TTTT T0R`TTTTЄ"TSynGutterLineOverviewProviderListx0`X0P3C4CP6C9C9C:C9C7C8C0AC@ACPAC207TSynGutterLOvLineMarksxPH0-P3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynGutterLOvMarkx(H0P3C4CP6C9C9C:C9C7C8C0AC@ACPAC/.TSynGutterLOvMarkListh(8 BP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynGutterLOvLineMarksListhp$HhJP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT TH`TpTTL0`QpQpKTSynGutterLineOverviewProvider``p`YP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T`W`TpTTL0`UUpK TSynGutterLOvProviderCurrentPagexXpXeP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T@c`TpTTL0`[pK"TSynGutterLOvProviderModifiedLines`p`ȍpqP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT Tn`TpTTL0`QpQpKPjTSynGutterLOvProviderBookmarkspp8JP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT TH`TpTTL0`QpQpKTSynGutterLOvProviderCustom؍@a0Ȣ(FaP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpT_T``T`0`ЅT`TTT TTTT Tr`Tpa0aT`Iaڄa````^^``Ў` `@`}`_a`^+`+`P^``_` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``-a"``p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``P> ?`TIniFileк@h+P3C4CP6CpCpCpCpC7C8C0AC@ACPAC 4 FG24P0p5@90:#@>> ?` TMemIniFile[]=;\ TStringHash TStringHashIniFilesTHashedStringList0THashedStringListh IniFilesp TIniFileKey TIniFileKeyIniFilesTIniFileKeyList8TIniFileKeyList`IniFilesxTIniFileSectionTIniFileSectionIniFilesTIniFileSectionList8TIniFileSectionList`IniFilesxTIniFileOptionifoStripCommentsifoStripInvalidifoEscapeLineFeedsifoCaseSensitiveifoStripQuotesifoFormatSettingsActiveifoWriteStringBooleanIniFiles -Ep -ETIniFileOptionshTSectionValuesOptionsvoIncludeCommentssvoIncludeInvalidsvoIncludeQuotesIniFilesHooTSectionValuesOptions AnsiString@TCustomIniFile`` 8xTCustomIniFileIniFiles ( X  TIniFileTIniFileк IniFiles  P  TMemIniFile TMemIniFileHIniFiles@` HHݹ 8`pOP3C4CP6CpCpCpCpC7C8C0AC@ACPACpXp\ TXmlRegistry TDataType dtUnknowndtDWORDdtStringdtBinary dtStringsxmlregx  TDataInfoX TDataInfoX TKeyInfo  TKeyInfo  TUnicodeStringArrayxmlreg  TXmlRegistry0 TXmlRegistryxmlregp8P3CpP6CpCpCpCpC7C8C0AC@ACPACèpC @èèpC0PpCĨ ĨĨ@PРpҨҨŨȨɨʨ` TDOMDocument xP3C4CP6CpCpCpCpC7C8C0AC@ACPAC 0 TDOMNodeListP3C4CP6CpCpCpCpC7C8C0AC@ACPAC 0TDOMNamedNodeMap`PX0ۨP3CpP6CpCpCpCpC7C8C0AC@ACPACרܨ ۨ@ݨ @ۨ0רpררר0P@PۨРڨTDOMAttr`ݨP3CpP6CpCpCpCpC7C8C0AC@ACPACרpC `ݨ0רpררר0P0 ިРڨ TDOMElementh@P3CpP6CpCpCpCpC7C8C0AC@ACPACp @`А0PpCP0Ў@PTDOMText @xP3CpP6CpCpCpCpC7C8C0AC@ACPAC 0 @А0PpCP0Ў@P@ TDOMComment@0P3CpP6CpCpCpCpC7C8C0AC@ACPACp @`А0PpCP0Ў@PTDOMCDATASectionPHP3CpP6CpCpCpCpC7C8C0AC@ACPACpC @А0PpCP0Ў@PTDOMDocumentTypePP8ЛP3CpP6CpCpCpCpC7C8C0AC@ACPAC`pC @P0PpC0P@PРTDOMEntityReferenceHHp(P3CpP6CpCpCpCpC7C8C0AC@ACPAC  @А0PpCP0Ў@PTDOMProcessingInstruction(hP3C4CP6CpCpCpCpC7C8C0AC@ACPAC TNodePool 5P1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EDOMError `8`1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EDOMIndexSizeh ` 1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEDOMHierarchyRequestP `H1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEDOMWrongDocument@ `1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EDOMNotFound0 `(1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEDOMNotSupported `1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEDOMInUseAttribute ` 1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEDOMInvalidState ` 1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EDOMSyntax ` 1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEDOMInvalidModification `x 1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EDOMNamespace `x 1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEDOMInvalidAccess88P3CpP6CpCpCpCpC7C8C0AC@ACPACCpC @CА0PpCP0Ў@PTDOMNodeHH8ЛP3CpP6CpCpCpCpC7C8C0AC@ACPACCpC @C0PpC0P@PРTDOMNode_WithChildrenPhpЛP3CpP6CpCpCpCpC7C8C0AC@ACPACCpC @C0PpC0P@PРTDOMNode_TopLevel@  P3C4CP6CpCpCpCpC7C8C0AC@ACPAC0TDOMElementList@HhxP3CpP6CpCpCpCpC7C8C0AC@ACPACC0 @CА0PpCP0Ў@PTDOMCharacterDataX`1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACTDOMImplementationHЛP3CpP6CpCpCpCpC7C8C0AC@ACPACpC @0PpC0P@PРTDOMDocumentFragmentx(hP3CpP6CpCpCpCpC7C8C0AC@ACPACèpC @èèpC0PpCĨ ĨĨ@PР`֨֨ŨPԨԨ`ըӨ TXMLDocument8X(ЛP3CpP6CpCpCpCpC7C8C0AC@ACPACרpC @C0רpררר0P@PРڨ TDOMNode_NS(HHXP3CpP6CpCpCpCpC7C8C0AC@ACPACpC @А0PpCP0Ў@P TDOMNotationx8ЛP3CpP6CpCpCpCpC7C8C0AC@ACPAC`pC @P0PpC0P@PР TDOMEntityPP3C4CP6CpCpCpCpC7C8C0AC@ACPAC`@ TAttributeMapP(TDOMNodeTDOMNode_WithChildrenTDOMNode_TopLevelHPX TNamespacesDOM TDOMDocumentTDOMNodeDOMTDOMNode_WithChildrenP0DOM8TDOMNode_TopLevelhDOMp TDOMDocumentDOM TDOMNodeList TDOMNodeListDOMTDOMNamedNodeMap@TDOMNamedNodeMapDOM TDOMNode_NSTDOMAttr TDOMNode_NS(hDOM(TDOMAttrPDOMX TDOMElement TDOMElementhPDOMTDOMCharacterData8TDOMText@TDOMCharacterData0DOMxTDOMText DOM TDOMComment TDOMCommentDOMTDOMCDATASectionHTDOMCDATASectionDOMTDOMDocumentTypeTDOMDocumentTypeP0DOMTDOMEntityReferenceH8TDOMEntityReferencehDOMTDOMProcessingInstruction8@TDOMProcessingInstruction0DOM( TNodePoolh TNodePoolDOM TNodePoolArrayPNodePoolArray TNodePoolArray0 PDOMStringp  EDOMError EDOMErrorDOM EDOMIndexSize( EDOMIndexSizeh DOM`EDOMHierarchyRequestEDOMHierarchyRequestP DOMEDOMWrongDocumentEDOMWrongDocument@ DOMH EDOMNotFound EDOMNotFound0 DOMEDOMNotSupportedEDOMNotSupported DOM(EDOMInUseAttribute`EDOMInUseAttribute DOMEDOMInvalidStateEDOMInvalidState DOM  EDOMSyntaxP  EDOMSyntax DOM EDOMInvalidModification EDOMInvalidModification DOM  EDOMNamespace@  EDOMNamespace DOMx EDOMInvalidAccess EDOMInvalidAccess DOM  TNodeFlagEnum nfReadonly nfRecyclednfLevel2 nfIgnorableWS nfSpecified nfDestroying nfFirstChildDOM y  _ V @ K m  @ K V _ m y    TNodeFlags H  TDOMNodeClass0p TDOMElementClass  TFilterResultfrFalsefrNorecurseFalsefrTruefrNorecurseTrueDOM          X TDOMElementList 0 TDOMElementList8DOM TDOMImplementation TDOMImplementationDOM`TDOMDocumentFragmentTDOMDocumentFragmentxhDOM TXMLDocument TXMLDocument8DOMh TNamespaceInfo  TNamespaceInfo  ) ( TDOMNotation@X TDOMNotation0DOM TDOMEntityp TDOMEntityDOM TExtentH TExtentHPExtent TAttributeMapPDOM00P3C4CP6CpCpCpCpC7C8C0AC@ACPAC TDOMParserTXMLContextActionxaAppendAsChildrenxaReplaceChildrenxaInsertBefore xaInsertAfter xaReplaceXMLReadH9V'x'9HV TDOMParser TDOMParserXMLRead00`P3C4CP6CpCpCpCpC7C8C0AC@ACPAC(&p&''@22&'`( TXMLWriter`p`P3C4CP6CpCpCpCpC7C8C0AC@ACPAC(&p&''@22&'`( TDOMWriter`|1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC=S9S9S9S9SpCP:SP9Sp:S>SHS TTextStream p TNodeInfo@TNodeInfoArrayXMLWrite TXMLWriter Hp TXMLWriter`XMLWrite0TSpecialCharCallback`Sendersidxh TNodeInfo@TNodeInfoArrayXMLWrite TDOMWriter8 TDOMWriter`XMLWritep TTextStreamHXMLWrite *FP3C4CP6CpCpCpCpC7C8C0AC@ACPAC THashTable+ LP3C4CP6CpCpCpCpC7C8C0AC@ACPAC TDblHashArray+ lTI;*&{FD0A892B-B26C-4954-9995-103B2A9D178A}^A-"acNE&{81F6ADA2-8F5E-41D7-872D-226163FF4E45}(.1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACTBinding@XH0/PP3C4CP6CpCpCpCpC7C8C0AC@ACPAC TNSSupport(8X`00?       TXMLVersionxmlVersionUnknown xmlVersion10 xmlVersion11xmlutils#0#=##`##0#=## TSetOfChar H# PXMLString# X#$ TXMLNodeTypentNone ntElement ntAttributentTextntCDATAntEntityReferencentEntityntProcessingInstruction ntComment ntDocumentntDocumentTypentDocumentFragment ntNotation ntWhitespacentSignificantWhitespace ntEndElement ntEndEntityntXmlDeclarationxmlutils0$`$s$$ $ $ $V$%"%${$O$ $$$l$ $.%X%O$V$`$l$s${$$$$$$$$$$%"%.%@& TAttrDataTypedtCdatadtIddtIdRefdtIdRefsdtEntity dtEntities dtNmToken dtNmTokens dtNotationxmlutils& ''''' ''2'<'G'h''' '''''2'<'G'' THashItem 8( THashItem8( `)( PHashItem(( PPHashItem)) THashItemArray)()PHashItemArray`)h) THashForEach )Entryarg) THashTable) THashTablexmlutils* TExpHashEntry 8* TExpHashEntry8* ``p* TExpHashEntryArrayh** TExpHashEntryArray*(+PExpHashEntryArray`+h+ TDblHashArray+ TDblHashArrayxmlutils+ TLocation, TLocation,8, IXmlLineInfo+ lTI;*xmlutils, TNodeDatahP, TNodeData,h8.))) (x,0x,8)@P%HPX` d e- PNodeData. . PPNodeData8.@.IGetNodeDataPtr^A-"acNExmlutils`.TBinding.TBinding@xmlutils.TAttributeAction aaUnchangedaaPrefixaaBothxmlutils/H/?/3/h/3/?/H//.xmlutils/ TNSSupport/(x(8/ TNSSupport(xmlutilsH0 TWideCharBuf0 TWideCharBuf0 0 PWideCharBuf11 TSetOfByte 010(2h9`]P3C4CP6CpCpCpCpC7C8C0AC@ACPACTContentParticleX1391CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC TDTDObjectH20(34P;;dP3C4CP6CpCpCpCpC7C8C0AC@ACPAC TAttributeDef038(34<PaP3C4CP6CpCpCpCpC7C8C0AC@ACPAC TElementDecl4h(35=<1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC TEntityDecl50(36H>=1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC TNotationDecl5H7>>`\P3C4CP6CpCpCpCpC7C8C0AC@ACPAC TDTDModel6TCPTypectNamectChoicectSeqdtdmodel7777877708TCPQuantcqOnce cqZeroOrOnce cqZeroOrMore cqOnceOrMoredtdmodelX8s888z88s8z8888TContentParticle(9TContentParticleX1dtdmodelh9 TDTDObject9 TDTDObjectH2dtdmodel9 TAttrDefault adImplied adDefault adRequiredadFixeddtdmodel:9:N:/:C:h:/:9:C:N::dtdmodel: TAttributeDef;(; TAttributeDef03:dtdmodelP;TElementContentType ctUndeclaredctAnyctEmptyctMixed ctChildrendtdmodel;;;;;;;;;;;;8< TElementDeclp< TElementDecl4:dtdmodel< TEntityDecl (08@H< TEntityDecl5:dtdmodel= TNotationDecl (= TNotationDecl5:dtdmodelH> TDTDModel(08@> TDTDModel6dtdmodel>05?DXD1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EXMLReadError(?0@FF1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACTXMLInputSource@8AG1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACTXMLReaderSettings@ C0HmP3C4CP6CpCpCpCpC7C8C0AC@ACPACPnCCCCCCCCCCCCCCCCCC`nCptuCCCC TXMLReaderATErrorSeverity esWarningesErroresFatal XmlReaderCCCCDCCC0D EXMLReadError XD EXMLReadError(? XmlReaderDTXMLErrorEvent$selfPointere EXMLReadErrorDD TXMLReadState rsInitial rsInteractiversError rsEndOfFilersClosed XmlReader(EtEhE`EHEREEHERE`EhEtEETXMLInputSource (FTXMLInputSource@ XmlReaderFTConformanceLevelclAuto clFragment clDocument XmlReaderFFFF GFFFPGTXMLReaderSettingsxGTXMLReaderSettings@ XmlReaderG TXMLReaderG TXMLReaderA XmlReader0HXCJUUxJ0P3C4CP6CpC`pCpC7C8C0AC@ACPACPnߩީߩ ߩ`0pߩ ܩ`ߩܩp`nPptu`0ܩܩpݩTXMLTextReader (JXJ8hHpKV0V1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC|| |pC{TXMLCharSourceJHKLH]\~P3C4CP6CpC~pCpC7C8C0AC@ACPACPPpCTXMLDecodingSourceK0MN]ІP3C4CP6CpC~pCpC7C8C0AC@ACPACPP@TXMLStreamInputSourceM0M(O0^]~P3C4CP6CpC~pCpC7C8C0AC@ACPACPP0TXMLFileInputSource(NxP^PP3C4CP6CpCpCpCpC7C8C0AC@ACPAC=S9S9S9S9S0KSPKSJSKS:SKSHSTHandleOwnerStreamHO$<?xmlxmlns&@ $  8 ` @P@ TDecoderPRContextHInBuf`InCntOutBuf`OutCntRContextR TDecoderPRRS STGetDecoderProc  AEncoding pSDecoderxSTXMLSourceKindskNoneskInternalSubset skManualPop xmltextreaderSSTS(TSSTXT` xmltextreaderTTNodeDataDynArrayh-- xmltextreaderTTElementValidatorUTValidatorDynArray8U xmltextreader@UTXMLTextReaderTThUxUTXMLTextReaderhH`H xmltextreaderUTXMLCharSourceH`0VTXMLCharSourceJ xmltextreaderVTElementValidatorU<9  ;VTNodeDataDynArrayh.. xmltextreaderHWTValidatorDynArray@W xmltextreaderW cnOptionalcnToken xmltextreaderWWWXWW@XTCheckNameFlagsX`X TXMLTokenxtNonextEOFxtText xtElement xtEndElementxtCDSect xtCommentxtPI xtDoctypextEntity xtEntityEnd xtPopElementxtPopEmptyElement xtPushElement xtPushEntity xtPopEntityxtFakeLF xmltextreaderXXXXXX X YXTYXX Y YHY -Y;YXxYXXXXXXXXXXYYY-Y;YHYTYPZTAttributeReadStatearsNonearsText arsEntity arsEntityEnd arsPushEntity xmltextreaderZ[([[5[[`[[[[([5[[ TLiteralTypeltPlainltPubidltEntity xmltextreader[\[\0\[\\`\ TEntityEvent$selfPointerSenderTXMLTextReaderAEntity TEntityDecl(V=\TXMLDecodingSource\TXMLDecodingSourceKV xmltextreaderH]TXMLStreamInputSourceM] xmltextreader]TXMLFileInputSource]TXMLFileInputSource(N] xmltextreader0^ TForwardRefp^S xmltextreader^THandleOwnerStreamHOP xmltextreader^  0_ H `'`_eeeef f@f`fffffg g@g`gggggh h@h`hhhhhi i@i`iiiiij j@j`jjjjjk k@k`kkkkkl l@l`lllllm m@m`mmmmmn n@n`nnnnno o@o`ooooop p@p`pppppq q@q`qqqqqr r@r`rrrrrs s@s`ssssst t@t`tttttu u@u`uuuuuv v@v`vvvvvw w@w`wwwwwx x@x`xxxxxy y@y`yyyyyz z@z`zzzzz{ {@{`{{{{{| |@|`|||||} }@,,h,h,t,,,H@- - -G-x-x-8 .--+h.@.@.b ...u8/// /x/x/5I///#z`08080N-<000"(111(J1`1`1222 8 (322cf3h3h3^333X40404>$444^l(5555h5h5u555_h686869w 6669H7(7(7TL777 8775M`8@8@8888J (999 M 9h9h9ب9995X:0:0:R:::;J ;::;`;`;<h;;;N]`<@<@<Q<<<xR=<<zSh=H=H=‘8===(>>>C:>h>h> ?>>}?h?h?4X @??,\X@8@8@8\@@@|UA@@APAPA%AAA1~x8BBBoBxBxB; CBBr/CXCXCB CCC/HD(D(DlYDDDqn EDD4V `E@E@E}vEEEE6 (FFFTFhFhFlGFF `G@G@GgZGGGU:}8HHHHpHpHx6IHHGXI8I8I\9III0JJJ,vJpJpJ KJJ\)hK@K@K&KKKKžHLLL3LLL MLL'pMPMPMMMM HNNNC6NNNӮn ONN\hO@O@O~OOO 8PPPrPxPxP%v QPPE xQPQPQ$#?QQQHR R R RRR5 SRR%KhS`S`STSSDw THTHTTTTCXU0U0U UUU8VVVVxVxV WVV WPWPWD=WWW+ PX0X0X'MXXXYXXWhYHYHYb YYY 8ZZZZZZ[ZZd5[X[X[oX\\\s+ \\\{ `](](]]]]I[`^^^<^^^ @___fd_x_x_#@```= `x`x`f a``3a`a`aCL 8baa bpbpbsPcbb$; ccc 8dddbdpdpd'ieddNz`e8e8eeeeQ@ffffffه Hgggu ggg4$< hgg> hXhXhhhhB`i8i8iN iii8jjjD/ jxjxj(kjj? kpkpk%N" lkk xlPlPldmllr#xmPmPm8mmmQXn0n0n5wennn/ 8ooo. oxoxopoo9p`p`pfqpp da q`q`qrqq$ prHrHrHrrrpP Ps s ssss)1@tttttts" @uuu音 uuusv8v8vRfwvvdwPwPw, (xwwHKx`x`xm yxx7 yHyHyyyy+0zzz+zhzhz]zzzy*8{{{{p{p{, {{{; TSynMouseButtonmbLeftmbRightmbMiddlembExtra1mbExtra2 mbWheelUp mbWheelDown mbWheelLeft mbWheelRightLazSynEditMouseCmdsTypes } Z}c}B}Q}I}v}}}l}}B}I}Q}Z}c}l}v}}}8~]GCCrCCCYCCCCCCCGCCCCCCCCC<{`  h+P3C4CP6CpCpCpCpC7C8C0AC@ACPAC!TRegExpr0(5h1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXERegExpr((|H||||PREOpHЁTRegExprInvertCaseFunction$selfPointerChCharCharHHTRegExprCharset H TRegExprLoopStack( x TRegExprModifiers TRegExprModifiers          H x  TRegExprCharCheckerInfo؄TRegExprCharCheckerInfosRegExpr TRegExprX  0 @ `H hTRegExpr0RegExpr TRegExprReplaceFunction$selfPointer$result AnsiStringARegExprTRegExpr AnsiStringHPTRegExprCharChecker$selfPointerchCharBoolean H؆ TRegExprCharCheckerArray08 TRegExprCharCheckerInfo؄HHTRegExprCharCheckerInfosRegExprERegExpr0ERegExpr(RegExprhTRegexReplaceOption rroModifierI rroModifierR rroModifierS rroModifierG rroModifierM rroModifierXrroUseSubstitutionrroUseOsLineEndRegExprˈ؈ @ˈ؈ TRegexReplaceOptions8 0 ((` P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTrTPT`TpTЂTTTTTTЅTTTTT TTTT T`TTTTpCpЄ`000P 0C@CCЃCCCC0p x@xxy##$$$$P'P*4,..1p3+ *(Pp  TSynCustomFoldHighlighter`P@@`vP3C4CP6C9C9C:C9C7C8C0AC@ACPACP^v^v^v˪Īp˪ͪTLazSynFoldNodeInfoList 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTLazSynEditNestedFoldsList@ȑ^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TVTSynCustomFoldConfig8>P3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynCustomCodeFoldBlockؑ(Г(pEP3C4CP6C9C9C:C9C7C8C0AC@ACPACPC0FGHIIJTSynCustomHighlighterRangeȒ ȔNP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSynCustomHighlighterRangesTSynFoldActionsfaOpensfaClosesfaFold sfaFoldFold sfaFoldHide sfaMultiLine sfaSingleLinesfaCloseForNextLinesfaLastLineClosesfaCloseAndOpensfaDefaultCollapsed sfaMarkup sfaOutlinesfaOutlineKeepLevelsfaOutlineMergeParentsfaOutlineForceIndentsfaOutlineNoColorsfaOutlineNoLine sfaInvalid sfaOpenFold sfaCloseFoldsfaOneLineOpensfaOneLineCloseSynEditHighlighterFoldBase) Em 2:F. RaR!9  ˕ߕ _!)2:FR_m˕ߕ .9ERaTSynFoldActionsTSynFoldBlockFilterFlagsfbIncludeDisabledSynEditHighlighterFoldBaseژژ0TSynFoldBlockFilterFlagsH TSynFoldBlockFilter TSynFoldBlockFilterxTSynCustomFoldConfigHSynEditHighlighterFoldBasePTSynCustomFoldHighlighterTSynCustomFoldHighlighter`3SynEditHighlighterFoldBase TSynFoldNodeInfo@H TSynFoldNodeInfoH@   $(08PSynFoldNodeInfo@SynEditHighlighterFoldBase@SynEditHighlighterFoldBaseTLazSynFoldNodeInfoList@8H@TLazSynFoldNodeInfoListSynEditHighlighterFoldBaseSynEditHighlighterFoldBase TLazSynEditNestedFoldsListEntry`8X@`SynEditHighlighterFoldBase nfeHasHNodenfeMaxPrevReachedSynEditHighlighterFoldBase P xH`SynEditHighlighterFoldBase TLazSynEditNestedFoldsListEntry@`8XXXSynEditHighlighterFoldBase`SynEditHighlighterFoldBase`SynEditHighlighterFoldBase0SynEditHighlighterFoldBasexSynEditHighlighterFoldBaseSynEditHighlighterFoldBaseSynEditHighlighterFoldBasePTLazSynEditNestedFoldsList((@(HpXTLazSynEditNestedFoldsListSynEditHighlighterFoldBase TSynCustomFoldConfigModefmFoldfmHidefmMarkup fmOutlineSynEditHighlighterFoldBasex(TSynCustomFoldConfigModesXTSynCustomFoldConfigSynEditHighlighterFoldBase Q4Enabled$Q4ModesTSynCustomCodeFoldBlockHTSynCustomCodeFoldBlockؑSynEditHighlighterFoldBaseTSynCustomHighlighterRangeTSynCustomHighlighterRangeȒSynEditHighlighterFoldBase(TSynCustomHighlighterRangeClassxTSynCustomHighlighterRangesTSynCustomHighlighterRangesSynEditHighlighterFoldBase X     H 0x SynEditHighlighterFoldBaseب;;TScrollDirectionsdLeftsdRightsdUpsdDown GraphUtilة TArrowTypeatSolidatArrows GraphUtilHmeemOȱ1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACpTFPSharpInterpolationت@HpP3C4CP6C9C9C:C9C7C8C0AC@ACPACTLazCanvasStateث0w  «P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`T` p`PpP0P ` P `  `0@pp p `@0 TLazCanvasTLazCanvasImageFormatclfOtherclfRGB16_R5G6B5clfRGB24clfRGB24UpsideDownclfBGR24 clfBGRA32 clfRGBA32 clfARGB32 LazCanvas0XaqzȰXaqz8TFPSharpInterpolationTFPSharpInterpolationتj LazCanvasȱTLazCanvasStateTLazCanvasStateث LazCanvasH TNode   LazCanvas TLazCanvas TLazCanvasw  LazCanvas01CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC`TLazRegionPartP@(1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC`TLazRegionRectH@ ػ1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC``TLazRegionPolygon@@ X1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC`TLazRegionEllipse@(S(м`P3C4CP6C9C9C:C9C7C8C0AC@ACPAC TLazRegion@@80H0P3C4CP6C9C9C:C9C7C8C0AC@ACPAC TLazRegionWithChilds@TLazRegionFillMode rfmOddEven rfmWinding LazRegionsX}}й TPointArrayX LazRegions TPointArray LazRegions0TLazRegionPartpTLazRegionPartP LazRegionsTLazRegionRectTLazRegionRectHغ LazRegionsX LazRegionsPTLazRegionPolygonTLazRegionPolygon@غ LazRegionsػTLazRegionEllipseTLazRegionEllipse@غ LazRegionsX TLazRegion TLazRegion@l LazRegionsмTLazRegionWithChildsTLazRegionWithChilds@ LazRegionsHXȾPؾP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]TSpSS`SSP00TChartMinorAxis(0@` P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]TSSS`SS09 A% TChartAxis@`pSP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]TSSpSSSПS`SPSSPSTChartMinorAxisListPhr8H`bP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T ~`Tc0cpcPc @p~@bbb cbc TChartAxisPen؎( 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTChartAxisEnumeratorXhFP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]TISSpSSSПS`SRPSSPSTChartAxisListH0(hHTChartMinorAxisTChartMinorAxis TAChartAxisx5Marks@`4 TickLengthD4 TickWidthP ( X TChartAxis0`  TChartAxisPen TAChartAxis 4VisibleTChartMinorAxisListP TAChartAxis` TChartAxis TAChartAxis : AlignmentX(4Arrow : 4 AtDataOnlyX: 4AxisPen@; 4Group ; 4Inverted< 4 LabelSizex `<4Margin <4MarginsForMarks=5Marks0=4Minors(>5PositionH ?4 PositionUnits`?4Range@`4 TickLengthD4 TickWidth?4TitleP @4Transformationsx  @4 ZPosition0=4 OnGetMarkText>4 OnMarkToTextTChartMinorAxisList( TChartAxisGrouph TChartAxisGrouph  TChartAxisPen8TChartAxisHitTestahtTitleahtLine ahtLabelsahtGrid ahtAxisStart ahtAxisCenter ahtAxisEnd TAChartAxispXTChartAxisHitTestsTChartOnSourceVisitor$selfPointerASourceTCustomChartSourceAData$formalpTChartOnVisitSources$selfPointerAVisitorTChartOnSourceVisitorAAxis TChartAxisAData$formal@ HTChartAxisEnumeratorTChartAxisEnumeratorX TAChartAxis  TAChartAxis`TChartAxisListXTChartAxisListH TAChartAxis TAxisConvFunc$selfPointerAXLongIntDouble(TAxisCoeffHelper0pTAxisCoeffHelperp0  hh (XP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]TSpSS S`SSЖSCCCTChartBasicAxis`hr@X`bP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T ~`Tc0cpcPc @p~@bbb cbcTChartAxisFramePen(KH@dP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]Td`T__`Jaab b@b]TGenericChartMarkshXh@dP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T`T__`Jaab b@bTChartAxisTitlenYLhG눮=x&{6EDA0F9F-ED59-4CA6-BA68-E247EB88AE3D}xP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]Td`T__`Jaab b@bTCustomChartAxisMarks hP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]Td`T__`Jaab b@bTChartMinorAxisMarks( PP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]Td`T__`Jaab b@bTChartAxisMarkshrp``bP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T ~`Tc0cpcPc @p~@bbb cbcTChartAxisGridPenp 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACCCmnCCCCTAxisDrawHelperp81CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@xP{un vyz{TAxisDrawHelperXp1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC~Ё|n|pPTAxisDrawHelperYTChartBasicAxis TChartAxisGridPenTAChartAxisUtilsbXP8Style`TChartBasicAxis`TAChartAxisUtils04Grid(p`5 Intervals8 4 TickColor< 4TickInnerLength@`4 TickLengthD4 TickWidth H4VisibleTChartAxisFramePenTChartAxisFramePenTAChartAxisUtilsbXP8Style TGenericChartMarks$3$crc514F01BCH TGenericChartMarks$3$crc514F01BCh([ TAChartAxisUtilshdV4 Alignment` Z4 Attachment ,V4Clippedx Z4Distance ]4 LabelFont[8W4 OnGetShapeXLX4Shape 4VisibleTChartAxisTitle"TChartAxisTitleTAChartAxisUtils"` 4Captionx Z4Distance@`\ 4Frame\ 4 LabelBrush @ 4PositionOnMarksPX 4 TextFormat 4Visible 4WordwrapICoordTransformernYLhG눮=TAChartAxisUtilsTChartAxisAlignmentcalLeftcalTopcalRight calBottomTAChartAxisUtils ^FUNFNU^ TChartAxisMarginsTChartAxisMarkToTextEvent$selfPointerAText AnsiStringAMarkDouble(8TChartGetAxisMarkTextEvent$selfPointerSenderTObjectAText AnsiStringAMarkDouble(TCustomChartAxisMarks8TCustomChartAxisMarks TAChartAxisUtilsxTChartMinorAxisMarksTChartMinorAxisMarks(TAChartAxisUtilsx Z4DistanceP[ 4Format@`\ 4Frame\ 4 LabelBrushVHX 4 OverlapPolicy80^ 4StyleTChartAxisMarksTChartAxisMarksTAChartAxisUtils Ѝ 4 AtDataOnlyx Z4DistanceP[0 Format@`\ 4Frame\ 4 LabelBrushVHX 4 OverlapPolicy 4RangeYx@X4RotationCenterp4Source 0SourceExchangeXYP4Stripes80^4StylePX4 TextFormat^4YIndexTChartAxisGridPenTAxisDrawHelper h @X TAxisDrawHelperTAChartAxisUtilsTAxisDrawHelperClassTAxisDrawHelperXTAxisDrawHelperXTAChartAxisUtils8TAxisDrawHelperYxTAxisDrawHelperYTAChartAxisUtils5 1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX EChartError1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEChartIntervalError1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEBroadcasterError1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEListenerErrorx1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEDrawDataError(`H1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TIntervalList`؁@XTP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T@T`TTTTCCTIndexedComponentx8SP3C4CP6C9C9C:C9C7C8C0AC@ACPACTIndexedComponentListh (8зP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TBroadcasterX(0P3C4CP6C9C9C:C9C7C8C0AC@ACPAC TListener@1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TDrawDataItem00P3C4CP6C9C9C:C9C7C8C0AC@ACPACTDrawDataRegistry 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTClassRegistryItem0 ̬P3C4CP6C9C9C:C9C7C8C0AC@ACPACTClassRegistry ؛ Hp EChartError EChartError TAChartUtils EChartIntervalErrorXEChartIntervalErrorP TAChartUtilsEBroadcasterErrorEBroadcasterErrorP TAChartUtilsEListenerErrorXEListenerErrorP TAChartUtilsEDrawDataErrorEDrawDataErrorP TAChartUtils TChartColorHTChartFontStylecfsBold cfsItalic cfsUnderline cfsStrikeout TAChartUtilshTChartFontStyles@TChartTextFormattfNormaltfHTML TAChartUtilsp TDoublePoint TDoublePoint((@ TDoubleRect  ( TDoubleRect  TPointArrayX TAChartUtilsH  TPointArray TAChartUtils TDoublePointArray8 TAChartUtils TDoublePointArray TAChartUtils TChartDistanceX TPercentd TPointDistFuncAB TTransformFunc$selfPointerADoubleDouble(( TImageToGraphFunc$selfPointerAXLongIntDouble(8 TGraphToImageFunc$selfPointerAXDoubleLongInt(  TChartUnits cuPercentcuAxiscuGraphcuPixel TAChartUtils  '  / P   ' /  TOverrideColorocBrushocPen TAChartUtils      0 TOverrideColors P TSeriesMarksStyle smsCustomsmsNonesmsValue smsPercentsmsLabelsmsLabelPercent smsLabelValue smsLegendsmsPercentTotalsmsLabelPercentTotal smsXValue TAChartUtils            @           TIntervalOption ioOpenStart ioOpenEnd TAChartUtils8fZZfTIntervalOptions TDoubleInterval TDoubleInterval((@ TPointBoolArr  TDoublePointBoolArr( TNearestPointTargetnptPointnptXListnptYList nptCustom TAChartUtilsI.7@p.7@ITNearestPointTargetsh8 TAChartUtils TIntervalList@H TIntervalList TAChartUtils TCaseOfTwocotNonecotFirst cotSecondcotBoth TAChartUtils `TIndexedComponentTIndexedComponentx@ TAChartUtilsTShowMessageProcAMsgTIndexedComponentListHTIndexedComponentListhH TAChartUtils TAChartUtils TBroadcaster TBroadcasterXH TAChartUtils8 TListenerp TListener@ TAChartUtils TDrawDataItem TDrawDataItem0 TAChartUtilsTDrawDataItemClassHPTDrawDataRegistryxTDrawDataRegistry TAChartUtilsTPublishedIntegerSetTPublishedIntegerSet HPStrTClassRegistryItemTClassRegistryItem0 TAChartUtilsTClassRegistryPTClassRegistry H TAChartUtils X 8 AnsiString0H8(81CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TChartTextOutXUmg-MYmQW@&{6D8E5591-6788-4D2D-9FE6-596D5157C3C3}X@X  0BCBC4CP6C9CBCBC9C7C8C0AC@ACPACCCCCCCCCCC0p TBasicDrawer 0@@8PP(H""ЬP3C4CP6C9C9C:C9C7C8C0AC@ACPAC THTMLAnalyzerXTChartAntialiasingMode amDontCareamOnamOff TADrawUtils@iytityISimpleTextOut TADrawUtils TChartTextOut0 8 TChartTextOutX TADrawUtilsTChartColorToFPColorFunc`AColorTGetFontOrientationFuncaAFontTChartTransparencyH TScaleItem scaleFontscalePen TADrawUtilsp TScaleItems  IChartDrawerUmg-MYmQW TADrawUtils4(  TBasicDrawerp  TBasicDrawer( TADrawUtils    ! @! p! ! ! THTMLAnalyzerh " THTMLAnalyzerX TADrawUtilsH"h؁P$x'h$P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T`TTTTCCCTChartGUIConnector"hp$H&(h&P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T`TTTT`TChartGUIConnectorCanvasx$ TChartGUIConnectorData0h x& TChartGUIConnectorDatax&00ph 0 &TChartGUIConnector8'TChartGUIConnector"@TAGUIConnectorx'TChartGUIConnectorCanvas'TChartGUIConnectorCanvasx$'TAGUIConnector(8()@761CP3C4CP6C9C9C:C9C7C8C0AC@ACPACP TLegendItemH(88) *71CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TLegendItemGroupTitle@)P8) +81CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC PTLegendItemUserDrawn@*@8) ,X91CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC`PTLegendItemLine@+X0,-91CP3C4CP6C9C9C:C9C7C8C0AC@ACPACPTLegendItemLinePointer8,@8).P:1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACPTLegendItemBrushRect8-H0./:1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACPTLegendItemBrushPenRect8.؅0X;1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTLegendItemsEnumerator8/(|1;01SP3C4CP6C9C9C:C9C7C8C0AC@ACPACPS'zSSTChartLegendItems(0C22P<2cP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^Tc`TPcccpc @0` cpcTChartLegendBrushCreate20@1hrh4@4`bP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T ~`Tc0cpcPc @p~@bbb cbcTChartLegendGridPen2@pu5@5P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T`T TChartLegend4hpu6GF6^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T :`TTChartSeriesLegend5 TLegendItem(6 TLegendItemH(TALegend@7TLegendItemGroupTitlex7TLegendItemGroupTitle@)p7TALegend7TLegendItemDrawEvent$selfPointerACanvasTCanvasARectTRectAIndexLongIntAItem TLegendItemp0p77TLegendItemUserDrawn8TLegendItemUserDrawn@*p7TALegend8TLegendItemLine9TLegendItemLine@+p7TALegendX9TLegendItemLinePointer9TLegendItemLinePointer8,9TALegend9TLegendItemBrushRect:TLegendItemBrushRect8-p7TALegendP:TLegendItemBrushPenRect:TLegendItemBrushPenRect8.:TALegend:TLegendItemsEnumerator;TLegendItemsEnumerator8/TALegendX;TChartLegendItems;TChartLegendItems(0pTALegend;TChartLegendBrush<TChartLegendBrush@1 TALegend c 4ColorP<TLegendAlignment laTopLeft laCenterLeft laBottomLeft laTopCenterlaBottomCenter laTopRight laCenterRight laBottomRightTALegend<=<;=<-==<"=`=<<<=="=-=;== TChartLegendDrawingData8h  > TChartLegendDrawingData >80h < (0x>TLegendColumnCount?TLegendItemFillOrder lfoColRow lfoRowColTALegend8?_?i??_?i??TChartLegendGridPen?TChartLegendGridPen2TALegend 4Visible@ TChartLegend@ TChartLegend4TALegendX=(`24 Alignment<024BackgroundBrush0?<24 ColumnCount`@034FixedItemWidth`Dp34FixedItemHeightH34FontP44Framex@XP44GridHorizontalx@`44 GridVerticalh5 4 GroupFontp`5 4 GroupTitles x5 4Inverted?|6 4 ItemFillOrderx p6 4MarginXx 64MarginYx 74Spacing`74 SymbolFramex 74 SymbolWidth84 TextFormathP84 Transparency 84 UseSidebar 4Visible@TLegendMultiplicitylmSinglelmPointlmStyleTALegendEEEEEEEE FTLegendItemCreateEvent$selfPointerAItem TLegendItemAIndexLongIntp7HFTChartSeriesLegend(FTChartSeriesLegend5 TALegend (<4Format0p=4 GroupIndexE4=4 MultiplicityX>4Order\0?4 TextFormat`p?4UserItemsCount 4VisibleF8p>4OnCreate8H=4OnDrawG8{ JhW8J^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T`TTChartLabelMargins IpuKZKBP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T@`T?pI`JCKCCpOTChartTextElementHJhr0M\HM`bP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T ~`Tc0cpcPc @p~@bbb cbcTChartTitleFramePenKCN\NcP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^Tc`TPcccpc @Y` cpcTChartTitleBrushXM0K P]0]0P0]P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T0Z`T?pI^`Ka0apO TChartTitleNhrQaQ`bP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T ~`Tc0cpcPc @p~@bbb cbc TChartLinkPen@PC@SaXScP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^Tc`TPcccpc @ c` cpcTChartLabelBrushQ(KTb8bUrP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T@s`TPm@n`Jp pPppppbTGenericChartMarkshS(U`VdpVrP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]Ty`TPm@n`Jp pPpppp TChartMarks UTChartMarksOverlapPolicyopIgnoreopHideNeighbourTATextElementsVVVVVVWTChartLabelMargins(WTChartLabelMargins ITATextElementsx ЛuBottomx ЛuLeftx ЛuRightx ЛuTophWTChartLabelShape clsRectangle clsEllipse clsRoundRect clsRoundSideclsUserDefinedTATextElementspXXXXXXXXXXXX8YTChartTextRotationCenterrcCenterrcEdgercLeftrcRightTATextElementspYYYYYYYYYYZTChartTextElementHZTChartTextElementHJTATextElementshdV4 AlignmenthX0V4MarginsZTChartGetShapeEvent$selfPointerASenderTChartTextElement ABoundingBoxTRectAPolygon TPointArray([0 0[TChartTitleFramePen[TChartTitleFramePenKTATextElements 4Visible\TChartTitleBrush\TChartTitleBrushXM TATextElements c 4Color\ TChartTitle 0] TChartTitleN([ TATextElements hdV4 Alignment `d4Brushd4Fontx\e4Frame Pe4 FullWidthx e4Margin[8W4 OnGetShapeXLX4Shapee 4TextPX 4 TextFormat  4Visible @f 4Wordwrap]TChartMarkAttachment maDefaultmaEdgemaCenterTATextElements(```O`Y``O`Y```` TChartLinkPen` TChartLinkPen@PTATextElementspb4ColoraTChartLabelBrushaTChartLabelBrushQ TATextElements c4Colora TGenericChartMarks$3$crc541406768b TGenericChartMarks$3$crc54140676hS([ TATextElementshdV4 Alignment`ph4 Attachment ,V4Clippedx i4Distancepk4 LabelFont[8W4 OnGetShapeXLX4Shape 4Visibleb TChartMarksd TChartMarks UdTATextElementsXh 4Arrow h 4 AutoMargins`(PV 4 CalloutAnglex i4Distancei 4Formatj 4Frame0bk4 LabelBrushk4 LinkDistancea l4LinkPenVHX4 OverlapPolicyYx@X4RotationCenter8l4StylePX4 TextFormatm4YIndexd@aqX(qFaP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpT_T``T`0`ЅT`TTT TTTT TDa`Tpa0aT`Iaڄa````^^``Ў` `@`}`_a`^+`+`P^``_` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``-a"``p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``Py8pu{{^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T`T TChartMarginsz8pu|(|^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T `T TChartArrow{8pu~~^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T`T TChartShadow}8pu 0ভP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]TP`TTChartErrorBar ~0PpФ0Pp TCustomChart  TCustomChartgTATypesX  TChartPen TChartPen8qTATypespb 4Color 4Visible TClearBrush TClearBrushr TATypesȁTFPCanvasHelperClassxa TChartElement( TChartElementXtTATypes`TSeriesPointerStylepsNone psRectanglepsCirclepsCross psDiagCrosspsStar psLowBracket psHighBracket psLeftBracketpsRightBracket psDiamond psTrianglepsLeftTrianglepsRightTriangle psVertBarpsHorBarpsPointpsDownTriangle psHexagon psFullStarTATypesтڂ -|k Btł  Q 7ałтڂ-7BQakt| hXTATypesXTATypesȅ TSeriesPointer(TSeriesPointerxuTATypes (4Brush04 HorizSizex 4P4 OverrideColor84Pen@4StyleD 4VertSize 4Visible` EExtentError EExtentErrorvPTATypes8 TChartRangep TChartRangewTATypes(ДUMax(ДUMin uUseMax uUseMin TChartExtent TChartExtentxTATypes PuUseXMax PuUseXMin PuUseYMax PuUseYMin(`UXMax(`UXMin(`UYMax(`UYMin؉ TATypesTHistory$1$crc319EA1CDȋTHistory$1$crc319EA1CDyTATypes TRectArrayX  TChartMargins TChartMarginszTATypesx ЛuLeftx ЛuTopx ЛuRightx ЛuBottom TChartArrow TChartArrow{TATypesx (4 BaseLength ,4Invertedx 0 4Length 4Visiblex 4P4Width( TChartShadow` TChartShadow}TATypes(P4Color,4OffsetX0Ф4OffsetYh44 Transparency 4VisibleTChartErrorBarАTChartErrorBar ~TATypes04Pen 4Visible(4WidthPВH^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T`TTChartAxisIntervalParamsБГh1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX EBufferError1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEEditableSourceRequiredx1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GXEListSourceStringErrorؔ1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX ESortErrorȕh1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX EXCountErrorh1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX EYCountErrorp؁H``P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T `TTTTкTBasicChartSource@hМ8ԭP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT Tӭ`TTTTխխ`խCC`CC@ɭͭPɭ֭@֭ح٭0TCustomChartSourcepȝ1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTCustomChartSourceEnumeratorH(^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^Tǭ`TTChartErrorBarDatahpP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T0`TTTTխխ`խp0CC@ɭͭPɭ֭@֭ح٭ 0TCustomSortedChartSourceH(1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTChartSourceBufferTAxisIntervalParamOptionaipGraphCoords aipUseCountaipUseMaxLengthaipUseMinLengthaipUseNiceSteps aipIntegerTACustomSourceӢHӢTAxisIntervalParamOptions@ TChartAxisIntervalParams(@@HTChartAxisIntervalParamsБTACustomSource4Countв24 MaxLength  4 MinLength(P NiceSteps04Options`H4 Tolerance EBufferError0 EBufferErrorPTACustomSourcehEEditableSourceRequiredEEditableSourceRequiredPTACustomSourceEListSourceStringError8EListSourceStringErrorؔPTACustomSourcex ESortError ESortErrorȕPTACustomSource EXCountError0 EXCountErrorPTACustomSourceh EYCountError EYCountErrorPTACustomSource TChartValueText  TChartValueText (pPChartValueTextTChartValueTextArrayhhTACustomSourceTChartValueTextArrayTACustomSource8 TChartDataItem,@@$ TChartDataItem,((`@@$PChartDataItempxTGraphToImageFunc$selfPointerAXDoubleLongInt(TIntegerTransformFunc$selfPointerAXLongIntLongIntTValuesInRangeParamspXTValuesInRangeParamsXp 0 0 ((8(@(H(PPX hTBasicChartSourcexTBasicChartSource@TACustomSourceTCustomChartSourceTCustomChartSourcepTACustomSource8TCustomChartSourceEnumeratorxTCustomChartSourceEnumeratorTACustomSourceTChartErrorBarKindebkNoneebkConst ebkPercentebkChartSourceTACustomSourceQ=5Fx5=FQTChartErrorBarDataTChartErrorBarDataTACustomSourcepȭ4Kindǭpȭu IndexMinusǭpȭu IndexPlus(ǭȭȭU ValueMinus(ǭȭȭU ValuePlus( TChartSortBysbXsbYsbColorsbTextsbCustomTACustomSourcepȱ TChartSortDir sdAscending sdDescendingTACustomSourceHhthtȲTChartSortCompare$selfPointerAItem1PointerAItem2PointerLongIntTCustomSortedChartSource`TCustomSortedChartSourcepTACustomSource,TACustomSourceTChartSourceBuffer (TChartSourceBufferTACustomSourcep؁0"P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TT"`TpTЂTTTTTP%%TTTT TTTT T `TTTTTChartAxisTransformationsȴx`P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTPT`TpTЂTTTT@TЅTTTT TTTT T`T Tp@TAxisTransform1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC8TTypedFPListEnumeratorPSP3C4CP6C9C9C:C9C7C8C0AC@ACPACTAxisTransformListعxXмP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT&TPT`TpTЂTTTT@TЅTTTT TTTT T'`T Tp@'(TLinearAxisTransformȺxоHP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT-TPT`TpTЂTTTT@TЅTTTT TTTT T.`T T0./01-0TAutoScaleAxisTransform@P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT*TPT`TpTЂTTTT@TЅTTTT TTTT Tp+`T Tp+,TLogarithmAxisTransformx P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTPT`TpTЂTTTT@TЅTTTT TTTT T`T Tp@2p2TCumulNormDistrAxisTransformh @P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT2TPT`TpTЂTTTT@TЅTTTT TTTT T`T Tp 3p3TUserDefinedAxisTransform0?1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACҸ׸ Ըz`ԸԸԸ@ظ``{׸ ظٸTAxisTransformsComponentEditorP8B@P3C4CP6C9C9C:C9C7C8C0AC@ACPACав0x yн0y0įǯpȯPȯpȯ ϯϯ@կ0دׯPددٯ گگ0ۯPۯ@ܯܯ@ݯpޯޯ TAxisTransformsPropertyEditorXN(H~P݄4CT0^DD9C7C8C0AC@ACPAC```T`TTD`TpT@}ET@DT`0`ЅT`TTT TTTT T}E`Tpa0aT@|EڄvE``pD`PE^``Ў` `@`E_a`^+`+`P^``DDD`D0_^_ ?`P8a9a@^^PDP``D^@F_F_p__E```@E@$_`E^ _ -` _,`,`;`0_`PE`x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`D` E_@_`@^p_B`pD`D`P\`^`0_`]`_`_` E@ EF`G`I`DE@EDp`J`<`xE``0` @`@`@`p_u^v^@w^IE_%a&aE #`p/a`^D ````_@``a``D=_`<_|`^```0a_apDPD0^`^0`_``P@@?UUUUUU?llF?)QΠE>LH>TIntervalChartSourceTIntervalChartSource pTAIntervalSources(@`D4Params TDateTimeStepdtsYear dtsQuarterdtsMonthdtsWeekdtsDaydtsHour dtsMinute dtsSeconddtsMillisecondTAIntervalSources  TDateTimeStepsTDateTimeStepFormat (08@HPX TDateTimeStepFormatTAIntervalSources 0MK YearFormat(MK MonthFormat00NL WeekFormat8N@L DayFormat@0OpL HourFormatHOL MinuteFormatP0PL SecondFormatXPMMillisecondFormatTDateTimeStepChangeEvent$selfPointerSenderTObjectASteps TDateTimeStep XTDateTimeIntervalChartSourceHTDateTimeIntervalChartSourceTAIntervalSourcesHS4DateTimeFormatPP0DateTimeStepFormatXS4Steps \S4SuppressPrevUnitP``0OnDateTimeStepChangeTSourceIntervalParamsX(TAIntervalSourcesXTDateTimeIntervalsHelperXh( dP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]TSaSSd`SS b TChartStyle؁x@kP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT Ti`TTTT TChartStyles8؎`1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTChartStyleEnumerator@@PpSP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]ThSSpSSSПS`SSPSSPSTChartStyleList TChartStyleHh TChartStyleTAStyles (d4Brush8d4Font0 e4Pen`@Pe4 RepeatCountHe4Text P0f4UseBrush Rpf4UseFont Qf4UsePen TChartStylesxTChartStyleListTAStylesTAddStyleToLegendEvent$selfPointerAStyle TChartStyleASeriesTObject AddToLegendBooleanp  TChartStyles8@TAStyleshk4Stylesppp0OnAddStyleToLegendxTChartStyleEnumerator TChartStyleEnumeratorTAStyles`TChartStyleList @` @` @` @` @` @` @` @` @` @` @` @` @` @`  @ `       @ `       @ `     @ppЭЭ`00s` Ȯ$(N hhددh88vذ 8F6xxSJ XXSȲȲnxHHcH x \`` nxPP?RܭH((bcJطط~ `88Gգ wlw PP~ H((+xxXкк`[@ ]xxллP00G,ؼؼP00޶3xPPk qZH [i(y hhkQh@@Q\HK^JAu(S hhnKpHHCd ((~ 8N7xx.g~k0Ce xx.@/f} nyhhK0sY H Auh8@ %h@@Is J``yȆ  P(([h W wz``F ~H *+K 0)XXKr P(("z T`Wyd`88eb E XX=T HI e50h@@ jat~8$?Epp+ h `@@ԩ x \XX\q vnp-.EHH~?$_``+ XXn;2XXs1zp@@ uɺ`((  ` B2h@@d yH  Ń|xXXŃ|%1C4pFk@;->q@ rKa@͋40>yTW @0Hѡ?;$ E?gR?//N?%G,Ŧ?{ّ?u*Ų?usْ?!0?1V\?NSTf(fJ?WoQǛnÙ?zgeQ0ֱ?vżn?.La+￲^XjƜ?->j?M\M*y?)X9?ߣI^!=iN?8Jh}?вʸRɾ2T?WH}tO9aM?kUݿwe]?|+ۿ1n?uıs&TD(\ qk.ze̪_g瑲 !S $࿭P6 .޿?ܿUK˃ۿ}9ڿڿOs]Lؿھ]4ڛ?G:o?bnjտ4NE^׿RXӿG!?iOQk?OCɈؿaVYRb?i2,[Wܡ?uLh8?̿`Ut;?{B|J\e6?qT1N}zצp?n+oɹ?N+3&?"uL*}Ň?Bn?Y`el?zkiЉ???SS,05n?_<ۿWrm?gG׿";;?xB˽ӿP_n?H>S$qпYyY3q0M?)#B4~cOԚ?'_㿾\Ŭ]Ұ?KsvQAݿbڦӕ?KUؿ#3.?[>n΀տ.?O_Oѿe_$/?WgHͿ孶z?0ԌmKƫͿQ?d5ֿ99`?эA@`?(sG8qʿr&QH`?6/0{+vZ?M>>cT #??pŹ]?+jtG1E?3Zqܤ?ߐ?);Qǝ?ߠZ ?pg+9Ff?;#G[޿^>] J?fĉٿ=JQ?MfpFDտnd 6? 5ҿa ??$KSPHp?<zX,?zm࿢,?$$ۿC[?+i׿z?+݌?gpӿUcDE?ħ##ϿV_Y$ؿ?WgHοƏ;ʁ?%?(+?hjj?mp?IM?9~e?jȃ?z^y?JG#?,iCSl?d<5k?N&wƵ?XTt?%}?ՌU=?䑅h?V[v ?o AM?Q|{P}Mu?i#՟o2e D?f:jSڥ'\{e? )Fu(_?,;\_?A;X#鿲{:y{?bN@濳"vy?i!ƃ?؈}zN9߿J4. ?carr?홢7;x!z2?p^gS2CS?$l%/:@?`=C=߿+R+eэ?(X3fGۿ?j? Jةڿ|,nf?zZm*+?$Ep?qY'%!n?PZX?|L57?vjd&?r?Y3G4?;H?*ZB?fXP?#?ؿ"V?`4Կ!bReܜ?%WCa4ҿ:"7?Z5ӿ`X?RdjB9i8PQ? KoT?m}Nǿ*?<', MJl?Iӣ?ek凌.? GP"޿R n=/?2@-޻'?JWv)8ćBn?Y`el?zkiЉ???SS,05n?_<ۿWrm?gG׿";;?xB˽ӿP_n?H>S$qпYyY3q0M?)#B4~cOԚ?'_㿾\Ŭ]Ұ?KsvQAݿbڦӕ?KUؿ#3.?[>n΀տ.?O_Oѿe_$/?WgHͿ孶z?0ԌmKƫͿ?WſБ1{~?…GGQgz ?(żaVC?ɃGΑ?9-xܿx"?Bh{S'1'?03%T?sѿt?uɯq{oᅤyV?Јmߐ?);Qǝ?ߠZ ?pg+9Ff?;#G[޿^>] J?fĉٿ=JQ?MfpFDտnd 6? 5ҿa ??$KSPHp?<zX,?zm࿢,?$$ۿC[?+i׿z?+݌?gpӿUcDE?ħ##ϿV_Y$ؿ?WgHοp8P?*P?U, ?4,ZnlW6]?l;ᅴz?135Pm\[X0H?c{?'ܿ~8mφ?l(6u?0Q@ҿ٬:|Ͽi:/?T$ֽ? %@?k)M?g6}"nF?$%=nѿ$.ob?ό߼(?mb_N]i V?.O׵߿q6?SmYؿMI%le+?t",!п٬:|?pI x?+:cŦ'n?Gd&Zۤ5"?~m+rnfoA-L@B)><@0bD@vKqO$@֠ z@?(Ăae?a`Ja?pF?LdI?2/R?]<ࠪ?`]w@Z;I@|쿾Rb&?[=s3OP Țqs?-yu1$?u\ Dy?Ӕs4cZVFb?y˃hڔܿ|w?٨8€ۿ1U{?= +wDu?kmb?Ϊa`@Mu?ԀgĞ#cK[?]`B꧛3p&c?𿡈Vȼ?+>쿾Rb&?[=s3OP Țqs?-yu1$?u\ Dy?Ӕs4cZVFb?y˃hڔܿ|w?٨8€ۿn?;=pw $?ϞٿkS?7TɿH5k ?_*??E[/?^?g&?Mp<7? YQ?/2Q? U?*C1s? @Cn? 8`ַ?cKXq1?ud?:F+?c]?%NJ,?H5k ?_*??E[/?^?g&?Mp<7? YQ?/2Q? U?*C1s? @Cn? 8`ַ?cKXq1?ud?:F+?c]?%NJ,?ѣ}o?o졒Z?YCNz?+ `Xe?a|IX-?.6_?%bAE?'>n?}t;MT#g^ ?1w^ ȑl?aYFd?tj[e?/c_v翻ZTx?H!H4⿋^(r(w?ڪ5;GݿEo?r6kvAؿkwhe?PM8Gk90H; eP3C4CP6C9C9C:C9C7C8C0AC@ACPACuevPi)TFPGObjectList:87=`@P3C4CP6C9C9C:C9C7C8C0AC@ACPACав0 `н0į0įǯpȯPȯpȯ ϯϯ@կ0دׯPددٯ گگ0ۯPۯ@ܯܯ@ݯpޯޯTHiddenPropertyEditor;87?@P3C4CP6C9C9C:C9C7C8C0AC@ACPACа߯0 `0 0į`pȯPȯpȯ ϯϯ@կ0دׯPددٯ گگ0ۯPۯ@ܯܯ@ݯpޯޯTOrdinalPropertyEditor=8?A`@P3C4CP6C9C9C:C9C7C8C0AC@ACPACа߯0 `0 0į`pȯPȯpȯ ϯϯ0دׯPددٯ گگ0ۯPۯ@ܯܯ@ݯpޯޯTIntegerPropertyEditor?8?D@P3C4CP6C9C9C:C9C7C8C0AC@ACPACа߯0 `0 0į`pȯPȯpȯ ϯϯ@0دׯPددٯ گگ0ۯPۯ@ܯܯ@ݯpޯޯ@TCharPropertyEditorB@? F`@P3C4CP6C9C9C:C9C7C8C0AC@ACPACа߯0 @0 0į`ppȯ ϯϯ0دׯPددٯ گگ0ۯPۯ@ܯܯ@ݯpޯޯ`TEnumPropertyEditor(D@8F8H@P3C4CP6C9C9C:C9C7C8C0AC@ACPACа߯0 @0 0į`p pȯ ϯϯ`0دׯPددٯ گ0ۯPۯ@ܯܯ@ݯpޯޯPTBoolPropertyEditor@F87HJ@P3C4CP6C9C9C:C9C7C8C0AC@ACPACа0 `00P0įǯpȯPȯpȯ ϯϯ0دׯPددٯ گگ0ۯPۯ@ܯܯ@ݯpޯޯTInt64PropertyEditorXH8`JXL@P3C4CP6C9C9C:C9C7C8C0AC@ACPACа0 `000įǯpȯPȯpȯ ϯϯ`0دׯPددٯ گگ0ۯPۯ@ܯܯ@ݯpޯޯTQWordPropertyEditorhJ87hN@P3C4CP6C9C9C:C9C7C8C0AC@ACPACаp0 `н0@0įpȯPȯpȯ ϯϯp0دׯPددٯ گگ0ۯPۯ@ܯܯ@ݯpޯޯTFloatPropertyEditorxL87xP@P3C4CP6C9C9C:C9C7C8C0AC@ACPACа0 `00įǯpȯPȯpȯ ϯϯ0دׯPددٯ گگ0ۯPۯ@ܯܯ@ݯpޯޯTStringPropertyEditorN8PR@P3C4CP6C9C9C:C9C7C8C0AC@ACPACа0 `00įǯpȯPȯpȯ ϯϯ0دׯPددٯگ0ۯPۯ@ܯܯ@ݯpޯޯ TPasswordStringPropertyEditorP87T(@P3C4CP6C9C9C:C9C7C8C0AC@ACPACа0 `н0p0įǯpȯPȯpȯ ϯϯ0دׯPددٯ گگ0ۯPۯ@ܯܯ@ݯpޯޯTWideStringPropertyEditorR8TV@P3C4CP6C9C9C:C9C7C8C0AC@ACPACа0 `н0p0įǯpȯPȯpȯ ϯϯ0دׯPددٯگ0ۯPۯ@ܯܯ@ݯpޯޯp!TPasswordWideStringPropertyEditorT87XX@P3C4CP6C9C9C:C9C7C8C0AC@ACPACа0 `н00įǯpȯPȯpȯ ϯϯ`0دׯPددٯ گگ0ۯPۯ@ܯܯ@ݯpޯޯTUnicodeStringPropertyEditorV@7[0P3C4CP6C9C9C:C9C7C8C0AC@ACPACав0 `н0į0įǯpȯPȯpȯ ϯϯ@կ0دׯPددٯ گگ0ۯPۯ@ܯܯ@ݯpޯޯTNestedPropertyEditorYH[]0P3C4CP6C9C9C:C9C7C8C0AC@ACPACа0 pн0@0įǯp@pȯ ϯϯ0دׯPددٯگ0ۯ@ܯ@ݯpޯޯTSetElementPropertyEditor [8?0_ @P3C4CP6C9C9C:C9C7C8C0AC@ACPACа߯0 @` 0į`pȯPȯpȯ ϯϯ0دׯPددٯ گگ0ۯPۯ@ܯܯ@ݯpޯޯ TSetPropertyEditor8]X7Ha`P3C4CP6C9C9C:C9C7C8C0AC@ACPAC@0 @н`!0įǯpȯPȯpȯ ϯϯ@կ0دׯPددٯ گگ0ۯ!@ܯܯ@ݯpޯޯTClassPropertyEditorP_87Xc`@P3C4CP6C9C9C:C9C7C8C0AC@ACPACа"0P#'''0.0įǯpȯ/pȯ ϯϯ/0دׯPددٯ گگ0ۯPۯ@ܯܯ@ݯpޯޯTMethodPropertyEditorhaX`aeP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@`606 78` 80įǯpȯ8pȯ ϯϯ090دׯPددٯ گگ0ۯ!@ܯܯ@ݯpޯޯ0555TPersistentPropertyEditorxc`egP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@:06 78` 80įǯpȯ:pȯ ϯϯ090دׯPددٯ گگ0ۯ!@ܯܯ@ݯpޯޯ0555TComponentOneFormPropertyEditore`giP3C4CP6C9C9C:C9C7C8C0AC@ACPAC;:06 78` 80įǯpȯ:pȯ ϯϯ090دׯPددٯ گگ0ۯ!@ܯܯ@ݯpޯޯ0555TCoolBarControlPropertyEditorgXelP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@P=06 78` 80įǯpȯ8pȯ ϯϯ090دׯPددٯ گگ0ۯ!@ܯܯ@ݯpޯޯ05550=TComponentPropertyEditorjX8lPn(P3C4CP6C9C9C:C9C7C8C0AC@ACPAC@p=0> 0?8``E0įǯpȯBpȯ ϯϯC0دׯPددٯ گگ0ۯ!@ܯܯ@ݯpޯޯA55@TInterfacePropertyEditor@lX8lpP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@P=06 8` 80įǯpȯ0pȯ ϯϯ090دׯPددٯ گگ0ۯ!@ܯܯ@ݯpޯޯ055@0=$TNoteBookActiveControlPropertyEditorxnYzHzDP݄4CT0^DD9C7C8C0AC@ACPAC```T`TTD`TpT@}ET@DT`0`ЅT`TTT TTTT T}E`Tpa0aT@|EڄvE``pD`PE^``Ў` `@`E_a`^+`+`P^``DDD`D0_^_ ?`P8a9a@^^PDP``D^@F_F_p__E```@E@$_`E^ _ -` _,`,`;`0_`PE`x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`D` E_@_`@^p_B`pD`D`P\`^`0_`]`_`_` E@ EF`G`I`DE@EDp`J`<`xE``0` @`@`@`p_u^v^@w^IE_%a&aE #`p/a`^D ````_@``a``D=_`<_|`^```0a_apDPD0^`^0`_``P@(H@  eP3C4CP6C9C9C:C9C7C8C0AC@ACPAC|e|)TFPGListP8`1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTSelectionEditorxPp/`P3C4CP6C9C9C:C9C7C8C0AC@ACPAC TPropInfoListX/FaP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpTT@T`0`ЅT`TTT TTTT T`Tpa0aTnڄa````^^``Ў` `@`}`_a`^+`+`P^``_` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_` n`x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_a ap_HaP`М`0`n0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``n"``p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``P6 PopupMenu?4 ShiftButtons P@4 ShiftState `0`AShowHint( _^B5TabOrder  ^C4TabStop p#_D4UseDockManager ``EVisibleh0TSelectableComponentEnumerator@ PropEdits < h< <<TVarTypeProperty PropEdits<fHGȣG.gP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpT=T``T`0`ЅT`TTT TTTT T0`Tpa0aT@(ڄ0Dg````^^``Ў` `@`}`_a`^+`+`P^``0g` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `N `p`/_`;g` _JgP_ `0; ap_^P`М`0``@?g_@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``p`P`М`0``@U``X`C``_aB`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``0f"``0f@/f<`P```0` @`@`@`p_``Б``p`%a&a'a #`p/a``` ````_@``a```p`X`|`````0a`a0`P1`R`@ a0````P0 OnMouseLeave?0 OnMouseMove@0 OnMouseUpP((A0 OnMouseWheelHHB0OnMouseWheelDown88C0OnMouseWheelUpXXD0 OnStartDragHhhE0OnUTF8KeyPress F8ParentBiDiMode 0G5 ParentColor `H4 ParentFont `I4ParentShowHintH@pJ5 PasswordCharݲK5 PopupMenu ޲L5ReadOnly `0`MShowHint N6Spacing( _^O5TabOrder `P5TabStop"0``aQ5Text"@R5TextHint ``SVisible TFilterStringOptionfsoCaseSensitivefsoMatchOnlyAtStartEditBtn0VgVgTFilterStringOptionsشTFilterItemEvent$selfPointerItemDataPointer DoneBooleanBoolean TFilterItemExEvent$selfPointerACaption AnsiStringItemDataPointer DoneBooleanBoolean TCheckItemEvent$selfPointerItemTObjectBoolean TCustomControlFilterEditxTCustomControlFilterEditxcWEditBtnHe5CharCasep4 FilterOptions0 OnAfterFilterx0 OnFilterItem0OnFilterItemExp0 OnCheckItem" 5 ButtonCaption0``5 ButtonCursor"5 ButtonHint xϰ4ButtonOnlyWhenFocused 5 ButtonWidth(0`4 Constraints 8 9 DirectInput y ԰4Flat Ӱΰ5FocusOnButtonClickHx8Alignh`5 Alignment|` Anchors;a!BidiModep``"4 BorderSpacinghQ_X#9 BorderStyle $8AutoSize %5 AutoSelect@&5Color0``'4 DragCursorȤhx(8DragMode P`)Enabledx``0`*FontPϰְ+5Glyph0Ӱ԰,5 NumGlyphsT ϰװ-5ImagesS ϰװ.5 ImageIndex@а ذ/5 ImageWidth04Layout015 MaxLength 28ParentBidiMode 035 ParentColor `44 ParentFont `54ParentShowHintݲ65 PopupMenu ޲75ReadOnly `0`8ShowHint 96Spacing( _^:5TabOrder `;5TabStop ``<Visibleаΰ=5 OnButtonClick>0OnChange?0OnClick ((@0OnContextPopup88A0 OnDblClick0HHB0 OnDragDropXXC0 OnDragOverhhD0 OnEditingDone0xxE0 OnEndDragF0OnEnterG0OnExitxH0 OnKeyDown؟I0 OnKeyPressxJ0OnKeyUpK0 OnMouseDownL0 OnMouseEnterM0 OnMouseLeaveN0 OnMouseMoveO0 OnMouseUpP((P0 OnMouseWheelHHQ0OnMouseWheelDown88R0OnMouseWheelUpXXS0 OnStartDragHhhT0OnUTF8KeyPress"0``aU5Text"@pVTextHintTAcceptFileNameEvent$selfPointerSenderTObjectValue AnsiStringH TDialogKinddkOpendkSave dkPictureOpen dkPictureSaveEditBtnX TFileNameEdit TFileNameEditxn\EditBtnM 4FileName0 InitialDir0OnAcceptFileName0OnFolderChange0 DialogKind0 DialogTitle0 DialogOptions0Filter0 FilterIndex0 DefaultExt 0HideDirectories" 5 ButtonCaption0``5 ButtonCursor"5 ButtonHint xϰ4ButtonOnlyWhenFocused 5 ButtonWidth(0`4 Constraints 8  9 DirectInputPϰְ!5Glyph0Ӱ԰"5 NumGlyphsT ϰװ#5ImagesS ϰװ$5 ImageIndex@а ذ%5 ImageWidth y ԰&4Flat Ӱΰ'5FocusOnButtonClickHx(8Alignh`)5 Alignment|`*Anchors +5 AutoSelect;a,BidiModep``-4 BorderSpacinghQ_X.9 BorderStyle /8AutoSize@05Color0``14 DragCursorȤhx28DragMode P`3Enabledx``0`4Font54Layout065 MaxLength 78ParentBidiMode 085 ParentColor `94 ParentFont `:4ParentShowHintݲ;5 PopupMenu ޲<5ReadOnly `0`=ShowHint >6Spacing( _^?5TabOrder `@5TabStop ``AVisibleаΰB5 OnButtonClickC0OnChangeD0OnClick ((E0OnContextPopup88F0 OnDblClick0HHG0 OnDragDropXXH0 OnDragOverhhI0 OnEditingDone0xxJ0 OnEndDragK0OnEnterL0OnExitxM0 OnKeyDown؟N0 OnKeyPressxO0OnKeyUpP0 OnMouseDownQ0 OnMouseEnterR0 OnMouseLeaveS0 OnMouseMoveT0 OnMouseUpP((U0 OnMouseWheelHHV0OnMouseWheelDown88W0OnMouseWheelUpXXX0 OnStartDragHhhY0OnUTF8KeyPress"0``aZ5Text"@[5TextHintTDirectoryEditTDirectoryEdit yWEditBtnH@`5 Directory0RootDir0OnAcceptDirectory0 DialogTitle0 DialogOptions 0 ShowHidden" 5 ButtonCaption0``5 ButtonCursor"5 ButtonHint xϰ4ButtonOnlyWhenFocused 5 ButtonWidth(0`4 Constraints 8 9 DirectInputPϰְ5Glyph0Ӱ԰5 NumGlyphsT ϰװ5ImagesS ϰװ5 ImageIndex@а ذ 5 ImageWidth y ԰!4Flat Ӱΰ"5FocusOnButtonClickHx#8Alignh`$5 Alignment|`%Anchors &8AutoSize '5 AutoSelect;a(BidiModep``)4 BorderSpacinghQ_X*9 BorderStyle@+5Color0``,4 DragCursorȤhx-8DragMode P`.Enabledx``0`/Font04Layout015 MaxLength 28ParentBidiMode 035 ParentColor `44 ParentFont `54ParentShowHintݲ65 PopupMenu ޲75ReadOnly `0`8ShowHint( _^95TabOrder :6Spacing `;5TabStop ``<Visibleаΰ=5 OnButtonClick>0OnChange?0OnClick ((@0OnContextPopup88A0 OnDblClick0HHB0 OnDragDropXXC0 OnDragOverhhD0 OnEditingDone0xxE0 OnEndDragF0OnEnterG0OnExitxH0 OnKeyDown؟I0 OnKeyPressxJ0OnKeyUpK0 OnMouseDownL0 OnMouseEnterM0 OnMouseLeaveN0 OnMouseMoveO0 OnMouseUpP((P0 OnMouseWheelHHQ0OnMouseWheelDown88R0OnMouseWheelUpXXS0 OnStartDragHhhT0OnUTF8KeyPress"0``aU5Text"@V5TextHintTAcceptDateEvent$selfPointerSenderTObjectADate TDateTime AcceptDateBoolean 0TCustomDateEvent$selfPointerSenderTObjectADate AnsiStringTDateRangeCheckEvent$selfPointerSenderTObjectADate TDateTime( TDateOrderdoNonedoMDYdoDMYdoYMdEditBtn  TDateEditP TDateEditZEditBtnK8 0CalendarDisplaySettings0 OnAcceptDate 0 OnCustomDate0OnDateRangeCheck ޲5ReadOnly 0 DefaultToday14 DateOrderP(4 DateFormat`*+MinDate)+MaxDate xϰ4ButtonOnlyWhenFocused" 5 ButtonCaption0``5 ButtonCursor"5 ButtonHint 5 ButtonWidth!@:ActionHx8Alignh` 5 Alignment|`!Anchors "8AutoSize #5 AutoSelect;a$BidiModep``%4 BorderSpacinghQ_X&9 BorderStylee'5CharCase@(5Color(0`)4 Constraints 8 *9 DirectInputPϰְ+5Glyph0Ӱ԰,5 NumGlyphsT ϰװ-5ImagesS ϰװ.5 ImageIndex@а ذ/5 ImageWidthȤhx08DragModef@@15EchoMode P`2Enabled y ԰34Flat Ӱΰ45FocusOnButtonClickx``0`5Font64Layout075 MaxLengthаΰ85 OnButtonClick90OnChange:0OnChangeBounds;0OnClick ((<0OnContextPopup88=0 OnDblClickhh>0 OnEditingDone?0OnEnter@0OnExitxA0 OnKeyDown؟B0 OnKeyPressxC0OnKeyUpD0 OnMouseDownE0 OnMouseEnterF0 OnMouseLeaveG0 OnMouseMoveH0 OnMouseUpP((I0 OnMouseWheelHHJ0OnMouseWheelDown88K0OnMouseWheelUp@@L0OnResizeHhhM0OnUTF8KeyPress N8ParentBidiMode 0O5 ParentColor `P4 ParentFont `Q4ParentShowHintݲR5 PopupMenu `0`SShowHint `T5TabStop( _^U5TabOrder V6Spacing ``WVisible"0``aX5Text"@Y5TextHintTAcceptTimeEvent$selfPointerSenderTObjectATime TDateTime AcceptTimeBoolean TCustomTimeEvent$selfPointerSenderTObjectATime TDateTime0 TTimeEdit TTimeEditPTEditBtnE 0 DefaultNow(0 OnAcceptTime0 OnCustomTime ޲5ReadOnly" 5 ButtonCaption0``5 ButtonCursor"5 ButtonHint xϰ4ButtonOnlyWhenFocused 5 ButtonWidth!@:ActionHx8Alignh`5 Alignment|`Anchors 8AutoSize 5 AutoSelect;aBidiModep``4 BorderSpacinghQ_X 9 BorderStylee!5CharCase@"5Color(0`#4 Constraints 8 $9 DirectInputPϰְ%5Glyph0Ӱ԰&5 NumGlyphsT ϰװ'5ImagesS ϰװ(5 ImageIndex@а ذ)5 ImageWidthȤhx*8DragModef@@+5EchoMode P`,Enabled y ԰-4Flat Ӱΰ.5FocusOnButtonClickx``0`/Font005 MaxLengthаΰ15 OnButtonClick20OnChange30OnChangeBounds40OnClick8850 OnDblClick ((60OnContextPopuphh70 OnEditingDone80OnEnter90OnExitx:0 OnKeyDown؟;0 OnKeyPressx<0OnKeyUp=0 OnMouseDown>0 OnMouseEnter?0 OnMouseLeave@0 OnMouseMoveA0 OnMouseUpP((B0 OnMouseWheelHHC0OnMouseWheelDown88D0OnMouseWheelUp@@E0OnResizeHhhF0OnUTF8KeyPress G8ParentBidiMode 0H5 ParentColor `I4 ParentFont `J4ParentShowHintݲK5 PopupMenu `0`LShowHint 5@5M5 SimpleLayout N6Spacing `O5TabStop( _^P5TabOrder ``QVisible"0``aR5Text"@S5TextHintTAcceptValueEvent$selfPointerSenderTObjectAValueDoubleAcceptBoolean(  TCalcEdit  TCalcEditؘYEditBtnJ8 0CalculatorLayout(>@@5AsFloatp?@5 AsInteger 0 OnAcceptValueA DialogTitle" 5 ButtonCaption0``5 ButtonCursor"5 ButtonHint xϰ4ButtonOnlyWhenFocused 5 ButtonWidth(0`4 Constraintsh0DialogPosition0 DialogTop0 DialogLeft 8 9 DirectInputPϰְ5Glyph0Ӱ԰5 NumGlyphsT ϰװ 5ImagesS ϰװ!5 ImageIndex@а ذ"5 ImageWidth y ԰#4Flat Ӱΰ$5FocusOnButtonClickHx%8Alignh`&5 Alignment|`'Anchors;a(BidiModep``)4 BorderSpacinghQ_X*9 BorderStyle +8AutoSize ,5 AutoSelect@-5Color0``.4 DragCursorȤhx/8DragMode P`0Enabledx``0`1Font24Layout035 MaxLength 48ParentBidiMode 055 ParentColor `64 ParentFont `74ParentShowHintݲ85 PopupMenu ޲95ReadOnly `0`:ShowHint ;6Spacing( _^<5TabOrder `=5TabStop ``>Visibleаΰ?5 OnButtonClick@0OnChangeA0OnClick ((B0OnContextPopup88C0 OnDblClick0HHD0 OnDragDropXXE0 OnDragOverhhF0 OnEditingDone0xxG0 OnEndDragH0OnEnterI0OnExitxJ0 OnKeyDown؟K0 OnKeyPressxL0OnKeyUpM0 OnMouseDownN0 OnMouseEnterO0 OnMouseLeaveP0 OnMouseMoveQ0 OnMouseUpP((R0 OnMouseWheelHHS0OnMouseWheelDown88T0OnMouseWheelUpXXU0 OnStartDragHhhV0OnUTF8KeyPress"0``aW5Text"@X5TextHintH 8 P ((<8 (iP݄4CT0^9C a9C7C8C0AC@ACPAC@čT`TT ^`TpTTT`0`ЅT`TTT TTTT TPf`Tpa0aTñڄa`g``^^``Ў` `@`}`_a`^+`+`P^``0ak`0`0_a_ ?`P8a9a@^^P`P`S`^@F_F_p__````@$_`_^ _ -` _,`,`;`0_`P`,K7`7`PY`PZ`6>C `p`S`^` _`P_ `@_`_a ap_0P`М`0``_@_`@^p_B`pD`D`h0ii]`j@kpF`F`F`G`I``-a"` \p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ `@I@``a```=_|`^```0a_a0`P1`0^`^0`_``P0OnClick  ?0OnColRowDeleted  @0OnColRowExchanged  A0OnColRowInserted  B0 OnColRowMoved C0OnCompareCells D0OnContextPopup000E0 OnDragDrop@@F0 OnDragOver  G0 OnDblClick H0 OnDrawCellI0OnEditButtonClickPPJ0 OnEditingDone0``K0 OnEndDock0ppL0 OnEndDrag((M0OnEnter88N0OnExit   O0 OnGetEditMask   P0 OnGetEditText0 ( ( Q0 OnHeaderClick0 8 8 R0 OnHeaderSized H H S0OnHeaderSizingxT0 OnKeyDown؟U0 OnKeyPressxV0OnKeyUpW0 OnMouseDownX0 OnMouseEnterY0 OnMouseLeaveZ0 OnMouseMove[0 OnMouseUpP\0 OnMouseWheel]0OnMouseWheelDown^0OnMouseWheelUpP_0OnMouseWheelHorz`0OnMouseWheelLeft  a0OnMouseWheelRightb0OnPickListSelect@ c0OnPrepareCanvas@@d0OnResize e0OnSelectEditor f0 OnSelection X X g0 OnSelectCell@ x x h0 OnSetEditTextPPi0 OnShowHint``j0 OnStartDockppk0 OnStartDragl0OnTopLeftChanged @@m0OnUserCheckboxBitmapHXXn0OnUTF8KeyPress ((o0OnValidateEntry9 p4DisplayOptions _P^qDoubleBuffered r4 DropDownRows: @s4 KeyOptions8 t5Options: u4Strings v4 TitleCaptionsh; w0 OnGetPickList x0OnStringsChange y0OnStringsChanging <  z0 OnValidate(<TValueListStringsS TEditStyleesSimple esEllipsis esPickListValEdit(TNTYTETxTETNTYTT TVleSortColcolKeycolValueValEditTTTUTT8U TItemProp @XU TItemProp*ValEdit L4EditMaskpT(`M4 EditStyle@N4KeyDescJM5PickList8L4 MaxLength <L4ReadOnlyU TItemPropListW TItemPropList+ValEditPW TKeyValuePair08WTCompositeCellEditorAccess,@ ValEditWhaaڱP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpṮT``T`0`ЅT`TTT TTTT Tױ`Tpa0aTfڄa````^^``Ў` `@`}`_a`^+`+`P^``_` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__```ff@$_`_^ _ -` _,`,`;`0_`P`̱@7`7`7`PY`PZ`` `` `p`/_`^` _ ^P_ `@_`_a ap_^P`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``f"``fp`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``P6 PopupMenu `0`?ShowHint X @8Sorted` A8Style( _^B5TabOrder  ^C4TabStopffD5TopIndex ``EVisibleTCustomFilterComboBoxTCustomFilterComboBoxkȅFileCtrlTFilterComboBoxPTFilterComboBoxuHCFileCtrl4Hx8Align|`Anchors @ff5 AutoComplete 0 AutoDropDown 8AutoSize;aBidiModep``4 BorderSpacingH  (Color(0`4 Constraints0``4 DragCursor8dd0DragKindȤhx8DragMode P`Enabled0ݱ4Filterx``0`Font : ItemIndex 8ParentBidiMode ` 4 ParentColor `!4 ParentFont `"4ParentShowHint`#6 PopupMenuޱ$4 ShellListView `0`%ShowHint( _^&5TabOrder  ^'4TabStop"xf(4TextHint ``)Visible*0OnChange+0OnClick,0 OnCloseUp -0OnContextPopup  .0 OnDblClick000/0 OnDragDrop@@00 OnDragOver0pp10 OnEndDrag  20 OnDropDown((30OnEnter8840OnExitx50 OnKeyDown؟60 OnKeyPressx70OnKeyUp80 OnMouseDown90 OnMouseEnter:0 OnMouseLeave;0 OnMouseMove<0 OnMouseUpP=0 OnMouseWheel>0OnMouseWheelDown?0OnMouseWheelUppp@0 OnStartDragPPA0OnSelectHXXB0OnUTF8KeyPress (a0FaP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpT_T``T`0`ЅT`TTT TTTT T`Tpa0aT`Iaڄa````^^``Ў` `@`}`_a`^+`+`P^``p` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ` `p`^` _HaP_ `@_`_ ap_HaP`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``-a"``J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``P0OnMouseWheelUp@@?0OnResizepp@0 OnStartDragHXXA0OnUTF8KeyPressx` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` h 2(   bL ` ` I@ $H ( (  h H H  CFi (& ``0Q hhF T"P((@R= R``ĭx@@U h00ޥ p00ޥ#< `((Sh\8pp~>&CSxXXԧy*8xx, ,P00wlw ;h88hzK 8+f """n #""p#8#8####ǴP$$$$$$.0%%%/%h%h% %%%,cP&(&(& &&&/ ('&&*'h'h'C'''CPP(((((< ((( )(( )`)`),)))9wH8***t5*p*p*Ř***zZP+(+(++++^^(,,,&n,p,p, ,,,fH-(-(-Ř---"- .--C.X.X....CPH/ / /< /// 0// x0X0X09wH000,8111{1x1x1211&nx2X2X2 222ނ}X3(3(3r 333} 433e 4`4`43444 h5@5@5555./H666n? 666, 7669wh7H7H7+777.0888C8p8p8888Nh98989.99920h:(:(: * :::>Lt;H;H;*<;;vx<P<P<DA <<<EVP===7X>==: h>H>H>>>>O?>>*h?H?H???? @??D|@X@X@u:|@@@ʸ 8AAA`ApApAZAAAXHB(B(Bu BBB CBBpCHCHCcP CCCKHDDDDDD=_EDDQpEPEPE9wHEEE~+J(FFF>6vF`F`F6FFFf@G G GŘGGGsJHGGGգ HXHXHh HHH~ PI(I(IIII/fX(JII_JhJhJ% [JJJE`K0K0KelfKKK⧌@LLLHLLL< MLL0f M`M`Mce MMM>5 PN(N(N? NNNx ONND- O`O`O%>OOOhPP0P0P2zPPP QPPR֣ pQHQHQ$\+QQQĂ@RRRRxRxRSRRApSHSHS3X SSS= 8TTTThThT޶TTTMHU U UmUxUxU7 VUUYxVHVHVҎ VVVs؎PW(W(WA<WWW#4PXXXUhXXX YYYGxYXYXY,YYY0ZZZ޶ZhZhZ ZZZA%`[@[@[,[[[0\\\\\\0]\\ h]H]H]^z]]]>߶ 0^^^% ^h^h^ _^^*#h_@_@_J___CRc8```dK`p`p`u a``WpaPaPa%aaa5`b0b0bdbbbHcccN ccc#8dddddd~ eddu epepeGeeeulXf0f0fnffff,@ggg#5ggg(f hggԧh`h`hy*hhhXi0i0if; iii+(jjj, jpjpjFkjjkXkXk/kkk%%`l8l8lZlll-Hm m mPmmmn(nnn8npnpn.onnGxoHoHo]_ oooXp8p8p pppb(qqqL+qpqpq(+qqq `r@r@r, rrr*0sssRsxsxsI tss(ptPtPtttt@u u uuuuvuu xvXvXvJvvvHw(w(wwwwxwwJx`x`xyxxxVXy0y0y ܣ yyy(zzz,zpzpzDzzzih{@{@{g{{{'@|||S |||- }||@}h}h}f}}}Ȗ X~8~8~t ~~~ ~~>hhN MX88bWL((pp؁؁,`@@Ȃv0Ixx.ȌxHHnnV `((zݡ Ѕv8cTxxl؆؆? X88#y0=-hhl؈؈&xHH0 @$]h00~m ȋyd(%n ``.،،5 pHH)utP p@@GiЎ;+ IxXX0*Џռ0hh{bȐȐ8 P00t5+Ř++]`885{pȒ3 8xxC[h@@"Ȕ 0- xx]ЕЕttP00+$c@ON=5&:D6h@@Ș8CЙn8VKpp3#( @@>S؛؛PPn H؜؜>؝Y { hj\ȟȟb P((E :l h@@a*  xXXb6 c8ppȣȣP cE KڶpHH Х6X(;``Ib`00 FȧP (>Mhhبب c@@[ e XX w dǀ P((  (s2hhK ЬЬ`88 #XX2#XXcaЯЯu<@@.R2hHH}VGce PP5H@U-xx 8Txx*2PP% /@@_D֪HH>VP3C4CP6C9C9C:C9C7C8C0AC@ACPACTPersistentSelectionList  (pP3C4CP6C9C9C:C9C7C8C0AC@ACPACTBackupComponentList^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TTPersistentAccessTPersistentSelectionListXTPersistentSelectionList  PropEditUtilsTBackupComponentListTBackupComponentList PropEditUtils(TGetLookupRoot APersistenthTGetSourceClassUnitname$resultAClassTPersistentAccess PropEditUtilsTSortDirection sdAscending sdDescending TextTools TSortDomainsdWordssdLines sdParagraphs TextTools8^fVV^fTShowSortSelectionDialogFuncn TheText Highlighter SortedText TSortTextFunc$resultTheText DirectionDomain CaseSensitive IgnoreSpaceP TREMatchesFunction TheTextRegExpr ModifierStrStartPos TREVarFunction$resultIndexTREVarPosProcedureIndex MatchStart MatchLengthTREVarCountFunctionH TREReplaceProcedure$resultTheText FindRegExprReplaceRegExpr UseSubstutition ModifierStrp TRESplitFunctionTheTextSeparatorRegExprPieces ModifierStr P0(DP݄4CT0^DD9C7C8C0AC@ACPAC```T`TTD`TpT@}ET@DT`0`ЅT`TTT TTTT T}E`Tpa0aT@|EڄvE``pD`PE^``Ў` `@`E_a`^+`+`P^``DDD`D0_^_ ?`P8a9a@^^PDP``D^@F_F_p__E```@E@$_`E^ _ -` _,`,`;`0_`PE`x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`D` E_@_`@^p_B`pD`D`P\`^`0_`]`_`_` E@ EF`G`I`DE@EDp`J`<`xE``0` @`@`@`p_u^v^@w^IE_%a&aE #`p/a`^D ````_@``a``D=_`<_|`^```0a_apDPD0^`^0`_``P?h>^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TTPersistentAccessX= x> > >TCollectionPropertyEditorForm0?TCollectionPropertyEditorForm0oCollectionPropEditForm`?TPersistentAccessX=CollectionPropEditForm? JJ`KxL0JDP݄4CT0^DD9C7C8C0AC@ACPAC```T`TTD`TpT@}ET@DT`0`ЅT`TTT TTTT T}E`Tpa0aT@|EڄvE``pD`PE^``Ў` `@`E_a`^+`+`P^``DDD`D0_^_ ?`P8a9a@^^PDP``D^@F_F_p__E```@E@$_`E^ _ -` _,`,`;`0_`PE`x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`D` E_@_`@^p_B`pD`D`P\`^`0_`]`_`_` E@ EF`G`I`DE@EDp`J`<`xE``0` @`@`@`p_u^v^@w^IE_%a&aE #`p/a`^D ````_@``a``D=_`<_|`^```0a_apDPD0^`^0`_``P0OnUTF8KeyPress ?8ParentBiDiMode 0@5 ParentColor `A4 ParentFont `B4ParentShowHintH@pC5 PasswordCharݲD5 PopupMenu ޲E5ReadOnly `0`FShowHint G6Spacing( _^H5TabOrder `I5TabStop"0``aJ5Text"@K5TextHint ``LVisiblexX(DP݄4CT0^DD9C7C8C0AC@ACPAC```T`TTD`TpT@}ET@DT`0`ЅT`TTT TTTT T}E`Tpa0aT@|EڄvE``pD`PE^``Ў` `@`E_a`^+`+`P^``DDD`D0_^_ ?`P8a9a@^^PDP``D^@F_F_p__E```@E@$_`E^ _ -` _,`,`;`0_`PE`x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`D` E_@_`@^p_B`pD`D`P\`^`0_`]`_`_` E@ EF`G`I`DE@EDp`J`<`xE``0` @`@`@`p_u^v^@w^IE_%a&aE #`p/a`^D ````_@``a``D=_`<_|`^```0a_apDPD0^`^0`_``PT @mT`0`ЅT`TTT TTTT TK`Tpa0aT xڄa````^^``Ў` `@`}`_a`^+`+`P^``_` `Pm0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p_l````l@$_`_@l _Pl _ l,``l0_plP`l@lllPY`PZ`+m`2m4m `@=m/_`^` _HaP_ `@_`_a ap_HaP`М`0``0__@_`@^p_B`pD`D`l^`0_`@l_`_`pF`F`F`G`I``Sm"`lp`J`<`P```0` @`0QmQmp_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_pl|`^```0a_a0`P1`0^`^0`_``P*mYmZmcXml`#mPJ#m=lPlc0&m0$mP"m"m`?mWlpll``Xmlem0gmTCustomShellTreeView@؉0xHP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpT jTpjT`0`ЅT`TTT TTTT Tp}`Tpa0aTڄa````^^``Ў` `@`}`_a`^+`+`P^``_Ў ``0`0_i_ ?`P8a9a@^^P`P`S`^@F_F_p__```` i@$_`_^ _ -` _,`,`;`0_`P``x`i7`7`PY`PZ`` `` `p`/_`^` _ ^P_ `@_`_a ap_^P`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``i"``ip`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```0i`<_|`^```0a_a0`P1`0^`^0`_``PT @mT`0`ЅT`TTT TTTT TK`Tpa0aT xڄa````^^``Ў` `@`}`_a`^+`+`P^``_` `Pm0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p_l````l@$_`_@l _Pl _ l,``l0_plP`l@lllPY`PZ`+m`2m4m `@=m/_`^` _HaP_ `@_`_a ap_HaP`М`0``0__@_`@^p_B`pD`D`l^`0_`@l_`_`pF`F`F`G`I``Sm"`lp`J`<`P```0` @`0QmQmp_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_pl|`^```0a_a0`P1`0^`^0`_``P*mYmZmcXml`#mPJ#m=lPlc0&m0$mP"m"m`?mWlpll``Xmlem0gmTShellTreeView@xXiP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T&ii`T/iP2ipi4ip,i 1ip.i2i&iiTShellListItem@PH P݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpT jTpjT`0`ЅT`TTT TTTT Tp}`Tpa0aTڄa````^^``Ў` `@`}`_a`^+`+`P^``_Ў ``0`0_i_ ?`P8a9a@^^P`P`S`^@F_F_p__```` i@$_`_^ _ -` _,`,`;`0_`P``x`i7`7`PY`PZ`` `` `p`/_`^` _ ^P_ `@_`_a ap_^P`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``i"``ip`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```0i`<_|`^```0a_a0`P1`0^`^0`_``Pl4ExpandSignTypex``0`Font A4 FileSortType pll5 HideSelection ll5HotTrackT @m 4Images0l`l@+m!Indent%Pl"4MultiSelectStyle `#4 ParentColor `$4 ParentFont `%4ParentShowHint`&6 PopupMenu pll'5ReadOnly lpl(5RightClickSelect>)4Root ll*5 RowSelectxg8l+4 ScrollBarsHl ,4SelectionColor ll-5 ShowButtons `0`.ShowHint l`l/5 ShowLines Pll05ShowRootT xDm14 StateImages( _^25TabOrder  ^4TabStop((0Tag lpl35ToolTips ``4Visible  50 OnAddItemh060OnAdvancedCustomDrawh170OnAdvancedCustomDrawItem)80OnChange )90 OnChanging:0OnClick8-;0 OnCollapsed,<0 OnCollapsingh.88=0 OnCustomDraw /HH>0OnCustomDrawItem  ?0 OnDblClick+@0OnEdited*xxA0 OnEditing((B0OnEnter88C0OnExit8-D0 OnExpanded@,E0 OnExpanding8-F0OnGetImageIndex8-G0OnGetSelectedIndex2H0 OnHasChildrenxI0 OnKeyDown؟J0 OnKeyPressxK0OnKeyUpL0 OnMouseDownM0 OnMouseEnterN0 OnMouseLeaveO0 OnMouseMoveP0 OnMouseUpPQ0 OnMouseWheelR0OnMouseWheelDownS0OnMouseWheelUpPT0OnMouseWheelHorzU0OnMouseWheelLeft  V0OnMouseWheelRightW0OnSelectionChangedPPX0 OnShowHint ( EY4 OnSortCompareHXXZ0OnUTF8KeyPress> X\[8Options\0 TreeLineColorb]0TreeLinePenStyle^0ExpandSignColor(D_4 ObjectTypes<`4 ShellListViewTCSLVFileAddedEvent$selfPointerSenderTObjectItem TListItem@ TShellListItemhPTShellListItem@ ShellCtrlsTShellListView TShellListViewW ShellCtrlsHHx8Align  8AutoSizeColumns|`Anchorsp``4 BorderSpacinghQ_X9 BorderStyleP^4 BorderWidthH (Color(0`4 Constraints0``4 DragCursorȤhx8DragMode P`Enabledx``0`Font @iiu HideSelectionT iiu LargeImages@i0iuLargeImagesWidthy4Maskx`z4MaskCaseSensitivity @ii u MultiSelect `!4 ParentColor `"4 ParentFont `#4ParentShowHint`$6 PopupMenu @ii %uReadOnly @ii &u RowSelectxgx@j'4 ScrollBars @ii (uShowColumnHeaders `0`)ShowHintT ii*u SmallImages@i0i+uSmallImagesWidthdi,4 SortColumn(`Pi-4SortTypeT ii.u StateImages  ^/4TabStop( _^05TabOrder @ii1uToolTips ``2Visible@\i34 ViewStyle40OnChange50OnClick60 OnColumnClick70 OnCompare 80OnContextPopup  90 OnDblClick:0 OnDeletion000;0 OnDragDrop@@<0 OnDragOver=0OnEdited>0 OnEditing0pp?0 OnEndDragx@0 OnKeyDown؟A0 OnKeyPressxB0OnKeyUpC0 OnMouseDownD0 OnMouseEnterE0 OnMouseLeaveF0 OnMouseMoveG0 OnMouseUpPH0 OnMouseWheelI0OnMouseWheelDownJ0OnMouseWheelUpPK0OnMouseWheelHorzL0OnMouseWheelLeft  M0OnMouseWheelRight@@N0OnResizeHHO0 OnSelectItemppP0 OnStartDragHXXQ0OnUTF8KeyPress  R0 OnAddItem00S0 OnFileAdded(T0 ObjectTypesp{U4RootpPxV4 ShellTreeViewH TShellTreeNodehTShellTreeNode ShellCtrls0 EShellCtrlh EShellCtrl ShellCtrls EInvalidPath EInvalidPath ShellCtrls xHTFileItemAVLTree\ ShellCtrlsxЯ !1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pTWSCustomShellTreeViewDrawBuiltInIconGetBuiltinIconSizeȚ  !P!"1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp pppp@pp0pp0pppppppPp pppPppppp pppp0p`p0p`ppp@pňƈPƈƈƈƈLj@LjpLjLjLjȈ0Ȉ`ȈȈɈ0Ɉ`ɈɈɈʈ@ʈpʈʈʈˈPˈˈˈ̈0̈`̈̈̈ ͈P͈͈͈Έ0Έ`ΈΈΈ0׈׈ψ0ψ`ψψψψֈ ЈPЈЈՈֈ@ֈpֈֈڈۈ0܈`݈ TWSCustomShellListViewGetBuiltInImageIndex8! (TWSCustomShellTreeView!TWSCustomShellTreeView  WSShellCtrls!TWSCustomShellTreeViewClass""TWSCustomShellListViewH"TWSCustomShellListView(h  WSShellCtrls"TWSCustomShellListViewClass"" #P$P3C4CP6C9C9C:C9C7C8C0AC@ACPAC TIDEImages# # TIDEImages$ TIDEImages# IDEImagesIntfP$%.1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@CCCCCCCCTAbstractDesktopDockingOpt$&.'@P3C4CP6C9C9C9C7C8C0AC@ACPAC]T]T^T`T`TCC@௳pTAbstractIDEOptions%'@(/`(@P3C4CP6C9C9C9C7C8C0AC@ACPAC]T]T^T`T`TCC@௳pTAbstractIDEEnvironmentOptions'h() 0)@P3C4CP6C9C9C9C7C8C0AC@ACPAC]T]T^T`T`TCC@௳pTAbstractIDEHelpOptionsp(hh(8+2P+PP3C4CP6C9C9C9C7C8C0AC@ACPAC]T]T^T`T`TCC@௳pCCCCCCCCCCTIDEEnvironmentOptions)TIDEOptionsHandler iohBeforeRead iohAfterReadiohBeforeWrite iohAfterWrite iohDestroyIDEOptionsIntfp++++++++++++8,TIDEOptionsHandlers+p,TIDEOptionsEditorSetting ioesReadOnlyIDEOptionsIntf,,,,-TIDEOptionsEditorSettings, -TIDEOptionsWriteEvent$selfPointerSenderTObjectRestoreBoolean X-TAbstractDesktopDockingOpt-TAbstractDesktopDockingOpt$IDEOptionsIntf.TAbstractDesktopDockingOptClassP.X.TAbstractIDEOptions.TAbstractIDEOptions%IDEOptionsIntf.TAbstractIDEOptionsClass//TAbstractIDEEnvironmentOptions@/TAbstractIDEEnvironmentOptions'/IDEOptionsIntf/TAbstractIDEHelpOptions/TAbstractIDEHelpOptionsp(/IDEOptionsIntf 0TOnLoadIDEOptions$selfPointerSenderTObjectAOptionsTAbstractIDEOptions/h0TOnSaveIDEOptions$selfPointerSenderTObjectAOptionsTAbstractIDEOptions/0TOnAddToRecent$selfPointerSenderTObject AFileName AnsiStringAAllowBoolean X1TIDERecentHandler irhOpenFilesirhProjectFilesirhPackageFilesIDEOptionsIntf12!22P222!22TIDEEnvironmentOptions2TIDEEnvironmentOptions)/IDEOptionsIntf2؁6`YY7P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T``TTTT C๳CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCTLazIDEInterface03@8Y1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACCCCCCำCCCCC TIDETabMaster70X0 TIDEDirectiveidedNoneidedBuildCommandidedBuildWorkingDir idedBuildScanidedRunCommandidedRunWorkingDir idedRunFlags LazIDEIntf9)9N9:9 9\9}9k99 9)9:9N9\9k9}9:TIDEDirectives9H:TIDEDirBuildScanFlag idedbsfNone idedbsfFPC idedbsfMake LazIDEIntfx::::::::;TIDEDirBuildScanFlags:0;TIDEDirRunFlag idedrfNoneidedrfBuildBeforeRunidedrfMessages LazIDEIntf`;;;;;;;;;TIDEDirRunFlags; < 89P< :< ;< TOpenFlagofProjectLoadingofOnlyIfExistsofRevertofQuiet ofAddToRecent ofRegularFile ofVirtualFileofConvertMacros ofUseCache ofMultiOpenofDoNotLoadResourceofDoLoadResourceofLoadHiddenResourceofAddToProjectofInternalFileofDoNotActivateSourceEditor LazIDEIntf< =-=W= == ~== = r= =<%=;==g=I=>< ==%=-=;=I=W=g=r=~======> TOpenFlags>h?TNewFlag nfIsPartOfProjectnfIsNotPartOfProjectnfOpenInEditornfSave nfAddToRecentnfQuietnfConvertMacros nfBeautifySrcnfCreateDefaultSrcnfAskForFilename LazIDEIntf? ? /@@?@?????X@???????@@/@@ TNewFlagsP@@A TSaveFlagsfSaveAssfSaveToTestDirsfProjectSavingsfCheckAmbiguousFilessfSaveNonProjectFilessfDoNotSaveVirtualFiles sfCanAbortsfQuietUnitCheck LazIDEIntfhAAAAAAAAA(BAAAAAAAAB TSaveFlags BB TCloseFlag cfSaveFirstcfQuietcfProjectClosingcfCloseDependenciescfSaveDependencies LazIDEIntfCRCAC9CfC-CC-C9CACRCfCC TCloseFlagsCDTProjectBuildFlagpbfDoNotCompileDependenciespbfDoNotCompileProjectpbfCompileDependenciesCleanpbfDoNotSaveEditorFilespbfSkipLinkingpbfSkipAssembler pbfSkipToolspbfCreateMakefile LazIDEIntf8DDD\DxDDDDDE\DxDDDDDDDETProjectBuildFlagsEETSearchIDEFileFlagsiffDoNotCheckAllPackagessiffCheckAllProjectssiffCaseSensitivesiffDoNotCheckOpenFilessiffIgnoreExtension LazIDEIntfF\FGF-FnFFF-FGF\FnFFFTSearchIDEFileFlagsF0GTFindUnitFileFlagfuffIgnoreUninstallPackages LazIDEIntf`GGGGGTFindUnitFileFlagsGGTTabDisplayStatetdsNonetdsCode tdsDesigntdsOther LazIDEIntfHCHKH;HUHxH;HCHKHUHHTFindSourceFlagfsfSearchForProjectfsfUseIncludePathsfsfUseDebugPathfsfMapTempToVirtualFilesfsfSkipPackages LazIDEIntfHAI IZI1III II1IAIZIITFindSourceFlagsxIJTFindUnitsOfOwnerFlag fuooListedfuooUsed fuooPackagesfuooSourceEditor LazIDEIntf0JXJlJyJcJJXJcJlJyJJTFindUnitsOfOwnerFlagsJKTModalResultFunction$selfPointerSenderTObject TModalResultn HKTLazProjectChangedFunction$selfPointerSenderTObjectAProject TLazProject TModalResultn PKTModalHandledFunction$selfPointerSenderTObjectHandledBoolean TModalResultn  @LTLazPackageBuildingEvent$selfPointerPackage TIDEPackage TModalResultn  LTGetFPCFrontEndParams$selfPointerSenderTObjectParams AnsiStringBoolean 8MTSaveEditorFileStep sefsSaveAssefsBeforeWritesefsAfterWrite sefsSavedAs LazIDEIntfMMMMN(NMMMNhNTSaveEditorFileEvent$selfPointerSenderTObjectaFileTLazProjectFileSaveStepTSaveEditorFileStepTargetFilename AnsiString TModalResultn ȍ NN!TShowDesignerFormOfSourceFunction$selfPointerSenderTObjectAEditorTSourceEditorInterfaceAComponentPaletteClassSelectedBoolean5 pOTGetFPCFrontEndPath$selfPointerSenderTObjectPath AnsiStringBoolean 0PTLazarusIDEHandlerType lihtSavingAll lihtSavedAlllihtSaveEditorFilelihtSaveAsEditorFilelihtIDERestoreWindows lihtIDECloselihtProjectOpeninglihtProjectOpenedlihtProjectCloselihtProjectBuilding lihtProjectDependenciesCompilinglihtProjectDependenciesCompiledlihtPackageBuildinglihtProjectBuildingFinishedlihtLazarusBuildinglihtLazarusBuildingFinishedlihtLoadSafeCustomDatalihtQuickSyntaxChecklihtGetFPCFrontEndParamslihtGetFPCFrontEndPathlihtFPCSrcDirScannedlihtShowDesignerFormOfSource"lihtShowSourceOfActiveDesignerFormlihtChangeToolStatuslihtRunDebugInit lihtRunDebuglihtRunWithoutDebugBuildinglihtRunWithoutDebugInitlihtRunFinished LazIDEIntfPRRVRoR2QQQR*R Q uQ QdQ Q QRQ?QARSRBSS*SQPPPRRhSPPPQQ2Q?QRQdQuQQQQQQR*RARVRoRRRRRRSS*SBSTTLazToolStatusitNone itExiting itBuilder itDebugger itCodeToolsitCodeToolAbortingitCustom LazIDEIntfUUVV.VVUUPVUUUVVV.VVTLazToolStatusChangeEvent$selfPointerSenderTObject OldStatusTLazToolStatus NewStatusTLazToolStatusHVHVVTLazBuildingFinishedEvent$selfPointerSenderTObjectBuildSuccessfulBoolean WTLazLoadSaveCustomDataEvent$selfPointerSenderTObjectLoadBoolean CustomDataTStringToStringTreePathDelimChangedBoolean 7 X AnsiStringXTLazIDEInterfacehYTLazIDEInterface03@ LazIDEIntf`Y TIDETabMasterY TIDETabMaster7 LazIDEIntfYTLazarusIDEBootHandlerTypelibhTransferMacrosCreatedlibhEnvironmentOptionsLoaded LazIDEIntfZWZ=ZZ=ZWZZ TArrayOfProcx LazIDEIntfZ [Z[0L]`8`]P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T`TTTT@PpP0p µõPɵ0THTMLHelpDatabase@[P[_bxb_0P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTPT`TpTЂTTTTTTЅTTTTT TTTT T`TTTT@@@p0THTMLBrowserHelpViewer] `THTMLHelpDatabase8`THTMLHelpDatabase@[f LazHelpHTMLP4BuiltInBaseURL߳`BaseURL ``4 AutoRegister0 KeywordPrefix`TOnFindDefaultBrowser$selfPointerDefaultBrowser AnsiStringParams AnsiStringa HbTHTMLBrowserHelpViewerxbTHTMLBrowserHelpViewer]p LazHelpHTML@4 BrowserPath4 BrowserParams ` 4 AutoRegisterbTScanModeFPCSources smsfsSkipsmsfsWaitTillDonesmsfsBackground BaseIDEIntfdBd&d0dhd&d0dBddTGetIDEConfigStorageXrFilename LoadFromDiskd0fml1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACCCCCCTLazBuildMacroe@gm1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACCp CCCCCCCTLazBuildMacros(fxhrh^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TCCCCCTAbstractCompilerMsgIDFlagsXgh'@ksHrXk"P3C4CP6C9C9C9C7C8C0AC@ACPAC]T]T^T`T`TCC@௳pCCCCCP CCCCCCCCCCCCCCCCCCCCCCC p#CCCCCCCCCCCCCCCTLazCompilerOptionsh(xlsXsP3C4CP6C9C9C:C9C7C8C0AC@ACPAC` @TLazCompilationToolOptionshkTLazBuildMacrolTLazBuildMacroe CompOptsIntfmTLazBuildMacrosHmTLazBuildMacros(f CompOptsIntfmTCompilationExecutableType cetProgram cetLibrary CompOptsIntfmnm(nmnPnTCompileReason crCompilecrBuildcrRun CompOptsIntfpnnnnnnnnnTCompileReasonsnoTCompilerDbgSymbolTypedsAutodsStabsdsDwarf2 dsDwarf2SetdsDwarf3 CompOptsIntfHoqooooxooqoxoooopTCompilerOptionsParseType coptUnparsed coptParsedcoptParsedPlatformIndependent CompOptsIntf8pqp|pdppdpqp|ppTCompilerFlagValuecfvNonecfvHidecfvShow CompOptsIntfq5q-q=q`q-q5q=qqTAbstractCompilerMsgIDFlagsqTAbstractCompilerMsgIDFlagsXg CompOptsIntfrTLazCompilerOptions (@HHrTLazCompilerOptionsh/ CompOptsIntfsTLazCompilationToolOptionsXsTLazCompilationToolOptionshk CompOptsIntfsTLazCompilationToolClassss(Pu}P3C4CP6C9C9C:C9C7C8C0AC@ACPACCCCCCCC{CCCTLazProjectFile(tvv^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`THI I`IKIPG@KM@MMNOPOPPTProjectFileDescriptorhu@P{xX0x^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^TP`TP~~iTNewItemProjectFilewwy8y^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`THI I`IKIPGQVWMX SPOPPPWW X`XTFileDescPascalUnit@xxy{X{^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`THI I`IKIPGZVWMX SPOPPPW\\^pZTFileDescPascalUnitWithResourcez} }^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TCCCCCCCCTProjectFileDescriptors{  x00uP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T@T`TTTTClCCCCCCCCCCprpkCCClllrCCPsuCCCCCCCCCCCCpxC TLazProject0}8xX^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`T0a`aacPc eeTProjectDescriptor@@P{h^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T0iTNewItemProject`P=P3C4CP6C9C9C:C9C7C8C0AC@ACPAC;]T^T`T`T:=CTAbstractRunParamsOptionsModeЂ((HCP3C4CP6C9C9C:C9C7C8C0AC@ACPACA]T^T`T`TC`BCBTAbstractRunParamsOptionsx؁(8@iP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T h`TTTTCCCTLazProjectBuildModeXh؁0TP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T@T`TTTTCCTLazProjectBuildModesP'p@P3C4CP6C9C9C9C7C8C0AC@ACPAC]T]T^T`T`TCC@௳pCTAbstractIDEProjectOptions@؋p^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TCCCCCCCCTProjectDescriptors@p X@h8Xx TResourceTypertLRSrtRes ProjectIntf0TLazProjectFilePTLazProjectFile(t ProjectIntfTLazProjectFileClassȍЍTProjectFileDescriptor (08@PpTProjectFileDescriptorhu ProjectIntfTProjectFileDescriptorClassTNewItemProjectFileTNewItemProjectFilewH ProjectIntfX  ȏTFileDescPascalUnitTFileDescPascalUnit@x ProjectIntf8 xx P  (ؐTFileDescPascalUnitWithResourceTFileDescPascalUnitWithResourcezp ProjectIntfXTProjectFileDescriptorsTProjectFileDescriptors{ ProjectIntf'TCheckCompOptsAndMainSrcForNewUnitEvent$selfPointerCompOptsTLazCompilerOptions TModalResultn Ps8 TProjectFlagpfSaveClosedUnitspfSaveOnlyProjectUnitspfMainUnitIsPascalSource#pfMainUnitHasUsesSectionForAllUnits!pfMainUnitHasCreateFormStatementspfMainUnitHasTitleStatementpfMainUnitHasScaledStatement pfRunnable pfAlwaysBuildpfUseDesignTimePackagespfLRSFilesInOutputDirectorypfUseDefaultCompilerOptionspfSaveJumpHistorypfSaveFoldStatepfCompatibilityMode ProjectIntf+ ѓEg!ߒ    Xߒ!Egѓ + TProjectFlagsPTProjectSessionStoragepssInProjectInfopssInProjectDirpssInIDEConfigpssNone ProjectIntfȕ!@!TProjectSessionStorages8 xP 8  nH TLazProjectpxx TLazProject0} ProjectIntf TProjectDescriptor(XTProjectDescriptor@ ProjectIntfTProjectDescriptorClassTNewItemProject(TNewItemProjectH ProjectIntfhTAbstractRunParamsOptionsMode (8@HTAbstractRunParamsOptionsModeЂ ProjectIntfPTAbstractRunParamsOptionsTAbstractRunParamsOptions ProjectIntfTLazProjectBuildModex8TLazProjectBuildModeX@ ProjectIntfTLazProjectBuildModesțTLazProjectBuildModesP@ ProjectIntfTProjectFileSearchFlagpfsfResolveFileLinkspfsfOnlyEditorFilespfsfOnlyVirtualFilespfsfOnlyProjectFiles ProjectIntfHqq TProjectFileSearchFlags؜PTProjectExecutableTypepetNone petProgram petLibrary petPackagepetUnit ProjectIntfĝϝڝĝϝڝ@TLazProjectClassPxTAbstractIDEProjectOptionsTAbstractIDEProjectOptions@/ ProjectIntfTProjectDescriptors0TProjectDescriptors ProjectIntfpTProjectDescriptorsClass(@зP3C4CP6C9C9C:C9C7C8C0AC@ACPACTIDEExternalToolData@h ڴP3C4CP6C9C9C:C9C7C8C0AC@ACPAC` TMessageLinesР0؁( PP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTpTTTЅTTTTT TTTT Tழ`TTTTCCC `CCCCCCCCCCCCCTAbstractExternalToollhP3C4CP6C9C9C:C9C7C8C@ACPACP  TMessageLine0( о1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTMessageLineEnumerator0p؁HXȴP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T@T`TTTTPɴpɴɴCʴ0˴P˴p˴˴P̴@ʹʹC ϴTExtToolParser `ȪȴP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T@T`TTTTPɴpɴɴCʴ0˴P˴p˴˴P̴@ʹʹC ϴCCCCC TFPCParserhp`PȴP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T@T`TTTTPɴpɴɴCʴ0˴P˴p˴˴P̴@ʹʹC ϴ TMakeParserتp`HXȴP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T@T`TTTTPɴpɴɴ0ʴ0˴P˴p˴P̴@ʹʹpࣴTDefaultParser 0؁x` P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T `TTTT p  0 TExtToolViewhh؁سPҴP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT Tд`TTTTCCCCCCCCCCCCCCӴմCTExternalToolsBasex؁hpP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T`TTTT @О`TExternalToolGrouph`P3C4CP6C9C9C:C9C7C8C@ACPACTIDEExternalToolOptions`(HhTIDEExternalToolDataзTIDEExternalToolDataIDEExternToolIntf@TETShareStringEvent$selfPointers AnsiStringTMessageLineUrgency mluNone mluProgressmluDebug mluVerbose3 mluVerbose2 mluVerbosemluHintmluNote mluWarning mluImportantmluErrormluFatalmluPanicIDEExternToolIntfظ  f o> YF x3'N'3>FNYfoxHTMessageLineUrgencies h  TMessageLines8  TMessageLinesРIDEExternToolIntfhTAbstractExternalToolTAbstractExternalTool@IDEExternToolIntf(TMessageLineFlag mlfStdErr mlfLeftTokenmlfFixedmlfHiddenByIDEDirectivemlfHiddenByIDEDirectiveValidmlfTestBuildFileIDEExternToolIntfp˼˼pTMessageLineFlags TMessageLine (0 TMessageLine0IDEExternToolIntfhTMessageLineClassTMessageLineEnumeratorоTMessageLineEnumerator0IDEExternToolIntf TETMarksFixedEvent$selfPointerListOfTMessageLineTFPListHhTExtToolParserSyncPhaseetpspAfterReadLineetpspSynchronizedetpspAfterSyncIDEExternToolIntfȿHxTExtToolParserSyncPhases@TExtToolParserTExtToolParser @IDEExternToolIntfTExtToolParserClassHP TFPCParserx TFPCParserhHIDEExternToolIntfTFPCParserClass TMakeParser TMakeParserتHIDEExternToolIntfPTDefaultParserTDefaultParser HIDEExternToolIntf TExtToolView` TExtToolViewh@IDEExternToolIntf`TExtToolViewClassTExternalToolStageetsInitetsInitializingetsWaitingForStart etsStarting etsRunningetsWaitingForStop etsStopped etsDestroyingIDEExternToolIntfL$A/x$/ALTExternalToolStagesp8TExternalToolNewOutputEvent$selfPointerSenderTObjectFirstNewMsgLineLongInthTExternalToolHandler ethNewOutput ethStoppedIDEExternToolIntfHpTExternalToolsBaseTExternalToolsBase@IDEExternToolIntfTExternalToolGrouphTExternalToolGroup@IDEExternToolIntfhTETMacroFunction$selfPointeraValue AnsiStringBoolean TIDEExternalToolOptions(8X`TIDEExternalToolOptionsIDEExternToolIntfTRunExternalTool$selfPointerToolTIDEExternalToolOptionsBoolean  hPp9P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTT6ЅTTTTT TTTT T@T`TTTT0l0@785CCCCCCCCCCCCC TIDEPackage'Ppp@P3C4CP6C9C9C9C7C8C0AC@ACPAC]T]T^T`T`TCP#@௳pCCCCTAbstractPackageFileIDEOptions00>P3C4CP6C9C9C:C9C7C8C0AC@ACPACCCCCCCCCCCp>>@>TLazPackageFile@)P3C4CP6C9C9C:C9C7C8C0AC@ACPACC*CCCCCCCCTPkgDependencyIDx.P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTT6ЅTTTTT TTTT T@T`TTTT0l0@10-5 TLazPackageIDp؁@;P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T@T`TTTTCCCCCCCCCCCCCCCCCCCCCCCCTPackageEditingInterface(^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`T#$p%%TPackageDescriptor@P{ ^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T (`T ''iTNewItemPackage`x^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TCCCCCCCTPackageDescriptors0`1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACp#TPackageGraphInterface'@P3C4CP6C9C9C9C7C8C0AC@ACPAC]T]T^T`T`TCC@௳pCTAbstractPackageIDEOptions0X @` TPkgFileTypepftUnitpftVirtualUnit pftMainUnitpftLFMpftLRS pftInclude pftIssuespftText pftBinary PackageIntf` h TPkgFileTypes H  TLazPackageIDpx TIDEPackagep TLazPackageID PackageIntf TIDEPackage PackageIntfTAbstractPackageFileIDEOptions(TAbstractPackageFileIDEOptions/ PackageIntfp#TAbstractPackageFileIDEOptionsClassTLazPackageFileTLazPackageFile PackageIntf0TPkgDependencyType pdtLazarus pdtFPMake PackageIntfp TLoadPackageResult lprUndefined lprSuccesslprAvailableOnline lprNotFound lprLoadError PackageIntf8uj]]ju 8 hTPkgDependencyIDTPkgDependencyID PackageIntf TIteratePackagesEvent$selfPointerAPackage TLazPackageIDHTLazPackageType lptRunTime lptDesignTimelptRunAndDesignTimelptRunTimeOnly PackageIntf `TLazPackageTypes TPackageInstallTypepitNope pitStatic pitDynamic PackageIntf(H(x TBuildMethod bmLazarusbmFPMakebmBoth PackageIntf  TPkgSaveFlag psfSaveAs PackageIntfHgg TPkgSaveFlags TPkgOpenFlagpofAddToRecent pofRevertpofConvertMacros pofMultiOpenpofDoNotOpenEditor PackageIntf6)`)6 TPkgOpenFlagsXTPkgCompileFlag pcfOnlyIfNeededpcfCleanCompilepcfGroupCompilepcfDoNotCompileDependenciespcfDoNotCompilePackagepcfCompileDependenciesCleanpcfSkipDesignTimePackagespcfDoNotSaveEditorFilespcfCreateMakefilepcfCreateFpmakeFile PackageIntf : ZvJ**:JZvTPkgCompileFlagsTPkgInstallInIDEFlag piiifQuiet piiifClearpiiifRebuildIDEpiiifSkipCheckspiiifRemoveConflicts PackageIntf0bWm}Wbm}TPkgInstallInIDEFlags8TPkgIntfOwnerSearchFlagpiosfExcludeOwnedpiosfIncludeSourceDirectories PackageIntfhTPkgIntfOwnerSearchFlags TPkgIntfHandlerTypepihtGraphChangedpihtPackageFileLoaded PackageIntfX~~TPkgIntfRequiredFlagpirNotRecursivepirSkipDesignTimeOnlypirCompileOrder PackageIntfU/?/?UTPkgIntfRequiredFlagsxTPkgIntfGatherUnitType piguListedpiguUsed piguAllUsed PackageIntfE1<h1<ETPkgIntfGatherUnitTypes`TPackageEditingInterfaceTPackageEditingInterface@ PackageIntf@TPackageDescriptorTPackageDescriptor PackageIntfTPackageDescriptorClassTNewItemPackageHTNewItemPackageH PackageIntfTPackageDescriptorsTPackageDescriptors0 PackageIntfTPackageGraphInterfaceHTPackageGraphInterface PackageIntfTAbstractPackageIDEOptionsTAbstractPackageIDEOptions/ PackageIntf X@ DP݄4CT0^DD9C7C8C0AC@ACPAC```T`TTD`TpT@}ET@DT`0`ЅT`TTT TTTT T}E`Tpa0aT@|EڄvE``pD`PE^``Ў` `@`E_a`^+`+`P^``DDD`D0_^_ ?`P8a9a@^^PDP``D^@F_F_p__E```@E@$_`E^ _ -` _,`,`;`0_`PE`x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`D` E_@_`@^p_B`pD`D`P\`^`0_`]`_`_` E@ EF`G`I`DE@EDp`J`<`xE``0` @`@`@`p_u^v^@w^IE_%a&aE #`p/a`^D ````_@``a``D=_`<_|`^```0a_apDPD0^`^0`_``P>v>>l>>l>v>>>> TEditorMacro ? TEditorMacro@' SrcEditorIntfX?TEditorMacroKeyBinding?TEditorMacroKeyBinding( SrcEditorIntf?TEditorMacroKeyBindingClass@@TEditorMacroClass?H@TIDEInteractiveStringValuep@TIDEInteractiveStringValue) SrcEditorIntf0Value@TIDETemplateParser@ATIDETemplateParser+ SrcEditorIntfATIDECodeMacroGetValueProc  ParameterInteractiveValue5SrcEditValueErrorMsgATIDECodeMacroGetValueMethod$selfPointer Parameter AnsiStringInteractiveValue TPersistentSrcEditTSourceEditorInterfaceValue AnsiStringErrorMsg AnsiStringBoolean 5XBTIDECodeMacroGetValueExProc  ParameterInteractiveValue5SrcEditValueErrorMsgATemplateParserPCTIDECodeMacroGetValueExMethod$selfPointer Parameter AnsiStringInteractiveValue TPersistentSrcEditTSourceEditorInterfaceValue AnsiStringErrorMsg AnsiStringTemplateParserTIDETemplateParserBoolean 5AD TIDECodeMacro X(E TIDECodeMacro0, SrcEditorIntfETIDECodeMacrosETIDECodeMacros(- SrcEditorIntfFTIDESearchInTextAddMatch$selfPointerFilename AnsiStringStartPosTPointEndPosTPointLines AnsiStringHFTIDESearchInTextProgressFTIDESearchInTextProgress8. SrcEditorIntf8GTIDESearchInTextFunctionn  TheFileNameTheText SearchFor ReplaceTextx3Flags PromptxGProgressGTBookmarkNumRange 8H@IX_1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACC@NTHelpQueryItem`HPI8Je`+P3C4CP6C9C9C:C9C7C8C0AC@ACPAC-,TPascalHelpContextListXIP؁Lf`fL`P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT TЭ`TTTT@P pP0p µõȵ ɵPɵ THelpDatabaseXJHMXhgM^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^TP$`T THelpNodeLNi1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTHelpNodeQueryMO`j JP3C4CP6C9C9C:C9C7C8C0AC@ACPACTHelpNodeQueryListN PjP&P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`T THelpDBItemO0PQk@kQ&P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`T`4p5p7THelpDBISourceFileP@QSl@l(S&P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`T ;p5p7THelpDBISourceDirectoryRH0SHTmPmhT&P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TpTHelpDBISourceDirectories8S(PpU`nU&P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`T THelpDBIClassxT PVnV&P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TCTHelpDBIMessageU(* WPoW^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TTHelpQueryNodeV4 hYo0͵P3C4CP6C9C9C:C9C7C8C0AC@ACPACԵԵpݵp`pֵ׵0ٵڵڵ@p@@0THelpDatabasesW؁[p(p[0P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTPT`TpTЂTTTTTTЅTTTTT TTTT T`TTTT@@@0`0 THelpViewerY\rP3C4CP6C9C9C:C9C7C8C0AC@ACPAC THelpViewers[ ]r@r]^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`T?THelpBasePathObject\ ^ sr^^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TTHelpBaseURLObject]THelpQueryItem _THelpQueryItem`H LazHelpIntfX_TPascalHelpContextType pihcFilenamepihcSourceName pihcProperty pihcProcedurepihcParameterList pihcVariablepihcType pihcConst LazHelpIntf_`_____``8`_____```` TPascalHelpContext` TPascalHelpContext`0`HaTPascalHelpContextPtraa @aa @aa @a b @aPb @ab @ab @ab @ac @a@c @apc @ac @ac @ad @a0d `d d d d  e PeTPascalHelpContextListeTPascalHelpContextListXI_ LazHelpIntfe @af @a0f THelpDatabasep`f THelpDatabaseXJ@ LazHelpIntff THelpNodeTypehntURLIDContexthntURLhntURLIDhntID hntContext hntURLContext LazHelpIntff&g gg1gggXgggg g&g1gg THelpNode 0@g THelpNodeL LazHelpIntf@@0TitlePg((0HelpType 0URL000ID0ContextXh iTHelpNodeQueryiTHelpNodeQueryM LazHelpIntfiTHelpNodeQueryList jTHelpNodeQueryListN LazHelpIntf`j THelpDBItemj THelpDBItemO LazHelpIntfxi0NodejTHelpDBISourceFile(@kTHelpDBISourceFileP8k LazHelpIntf 0BasePathObject(14FilenamekTHelpDBISourceDirectory0@lTHelpDBISourceDirectoryR8l LazHelpIntf000FileMask 880WithSubDirectorieslTHelpDBISourceDirectories@PmTHelpDBISourceDirectories8SHm LazHelpIntf@@0 BaseDirectorym THelpDBIClass(n THelpDBIClassxT8k LazHelpIntf`nTHelpDBIMessagenTHelpDBIMessageU8k LazHelpIntfnTHelpQueryNodeoTHelpQueryNodeV@  LazHelpIntfPo oTHelpDatabasesoTHelpDatabasesWPE  LazHelpIntfo THelpViewerhp(p THelpViewerY@ LazHelpIntfpTOnHelpDBFindViewer$selfPointerHelpDB THelpDatabaseMimeType AnsiStringErrMsg AnsiString(Viewer THelpViewerTShowHelpResult(? fppTHelpDatabaseClassfqTHelpViewerClasspq THelpViewersq THelpViewers[ LazHelpIntfrTHelpBasePathObject@rTHelpBasePathObject\ LazHelpIntfrTHelpBaseURLObjectrTHelpBaseURLObject] LazHelpIntf s `stt1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACCCCC@[ TIDEMacross TIDEMacrost TIDEMacross MacroIntft  u Pu u u u@vxww1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC\TTransferMacrovTTransferMacro wTTransferMacrov MacroDefIntfxwTOnSubstitution$selfPointerTheMacroTTransferMacro MacroName AnsiStrings AnsiStringDataInt64HandledBooleanAbortBooleanDepthLongIntw wTMacroFunction$selfPointer$result AnsiStrings AnsiStringDataInt64AbortBoolean AnsiString xTTransferMacroFlagtmfInteractive tmfLazbuild MacroDefIntfPyuyyyuyyyTTransferMacroFlagsyy80{~H{^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^Tj`TPiiiTNewIDEItemTemplate z |PbP3C4CP6C9C9C:C9C7C8C0AC@ACPAC`a@acdde0e ffgTNewIDEItemCategoryX{} 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACCCCCCCCCCCTNewIDEItemCategories|TNewIDEItemFlagniifCopy niifInheritedniifUse NewItemIntf}~ ~~8~~ ~~h~TNewIDEItemFlags0~~TNewIDEItemTemplate0~TNewIDEItemTemplate z NewItemIntfTNewIDEItemCategoryPTNewIDEItemCategoryX{ NewItemIntfTNewIDEItemCategoriesTNewIDEItemCategories| NewItemIntf TNewIDEItemTemplateClassH`1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACCCCCCCC TIDEOwnedFilep؁x`TP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T@T`TTTTClTIDEProjPackBase TIDEOwnedFile TIDEOwnedFile ProjPackIntfTIDEProjPackBase TIDEProjPackBase@ ProjPackIntf` @`X0|xx(NXX/0p1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TPkgVersion0x(pP3C4CP6C9C9C:C9C7C8C0AC@ACPACCPCCCCCCCCTPkgDependencyBaseTPkgVersionValidpvtNonepvtMajorpvtMinor pvtReleasepvtBuildPackageDependencyIntfȇ8  (  H (x  TPkgVersion؉ TPkgVersionPackageDependencyIntfTPkgDependencyFlag pdfMinVersion pdfMaxVersionPackageDependencyIntfPuu؊TPkgDependencyFlagsTPkgDependencyBase (TPkgDependencyBasePackageDependencyIntfx0Pp8Xx8XxTLazSyntaxHighlighterlshNonelshText lshFreePascal lshDelphilshLFMlshXMLlshHTMLlshCPPlshPerllshJavalshBash lshPythonlshPHPlshSQLlshCSS lshJScriptlshDifflshBatlshInilshPolshPikeEditorSyntaxHighlighterDefp '֌ Ό. ݌ ;5  njhnjΌ֌݌ '.5;p `(```ЭP3C4CP6C9C9C:C9C7C8C0AC@ACPAC``Оp@ TIDECommandX@pPP3C4CP6C9C9C:C9C7C8C0AC@ACPACPS SSSPTIDECommandCategoryxx00HPP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`Tɶƶ ¶pö Ŷƶ`ǶǶ`ɶɶබиP` TIDESpecialCommand(pͶP3C4CP6C9C9C:C9C7C8C0AC@ACPACTIDESpecialCommandsX0@x(XP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TTIDECommandScopeH `xP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`TTIDECommandScopesh0P3C4CP6C9C9C:C9C7C8C0AC@ACPACCCCCCCCCC TIDECommands@1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTIDESpecialCommandEnumerator Hp(X Hp(P@p8h (!X"#$%&8'`()*/0@1h2345(6X789:;(<X=>?@ AXBCDM8NhOPQRSHTxUVWX0Y`Z[\]^8_h`abc(dPexf(Pp(P(P@p!"(#P$x%&'(0)`*+,-(.P/0128`34568h9:;0<`=>?@A@BpCDE F0 G` H I J K L( MP Nx O P [ f gH hp i j k l oP p y z { | ~H p    0X Hx Hp Hx Hp P@xABCE8FhGIJK Hp"( X!'()1@mhnpqrs8t`0`q(rXstuv(wXxyz{|H}~0h@ H    !P!!!"@"p"""#@#p###$H$$$$(%`%%%&@&p&&& '`'  0 TIDECommand ` TIDECommandX IDECommandsTIDECommandCategory (TIDECommandCategoryx` IDECommandsP TIDESpecialCommand (8TIDESpecialCommand IDECommands0TIDESpecialCommandspTIDESpecialCommandsX IDECommandsTNotifyProcedureSenderTIDECommandScope(TIDECommandScopeH IDECommandsxTIDECommandScopesTIDECommandScopesh IDECommands TIDEShortCut8 TIDEShortCut8   p PIDEShortCutбر TIDECommands TIDECommands IDECommands0TGetHintCaptionEvent$selfPointerSenderTObjectACaption AnsiStringAHint AnsiStringhTIDESpecialCommandEnumeratorTIDESpecialCommandEnumerator IDECommands@TExecuteIDEShortCut$selfPointerSenderTObjectKeyWordShift TShiftStateIDEWindowClassTCustomFormClass TExecuteIDECommand$selfPointerSenderTObjectCommandWordBoolean  8 0C&@؁TP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTP߶TTTЅTTTTT TTTT T@T`TTTT@޶ ߶C߶@@p0Pp` @`TDesignerMediatorkM$(Ka=-Ӹ&{244DEC6B-80FB-4B28-85EF-FE613D1E2DD3}зB+Yc EgDI&{2B9442B0-6359-450A-88A1-BB6744F84918}%$%$$$ %'%>%M%\%&TOIPropertyGridStates%X&TOICustomPropertyGridColumn oipgcName oipgcValueObjectInspector&&&&&&' TOILayout oilHorizontal oilVerticalObjectInspector0'L'Z''L'Z'' TOIQuickEditoiqeEdit oiqeShowValueObjectInspector'''(''@(TOIPropertyHintEvent$selfPointerSenderTObject PointedRowTOIPropertyGridRow AHint AnsiStringBoolean $`(TOIEditorFilterEvent$selfPointerSenderTObjectaEditorTPropertyEditoraShowBoolean )TOnForwardKeyToOI$selfPointerSenderTObjectKey TUTF8Char")TOIPropertyGrid*TOIPropertyGrid".ObjectInspectorHx8Align|`Anchors 4BackgroundColorhQ_X9 BorderStyle(0`4 ConstraintsHH0DefaultItemHeight0DefaultValueFontll0Indentxx0NameFont0OnChangeBounds0OnClick  0 OnDblClick((0OnEnter880OnExitx0 OnKeyDown؟0 OnKeyPressx0OnKeyUp 0 OnModified!0 OnMouseDown"0 OnMouseEnter#0 OnMouseLeave$0 OnMouseMove%0 OnMouseUp@@&0OnResize'0OnSelectionChange`(6 PopupMenud)0PreferredSplitterX_d*4 SplitterX  ^+4Tabstop,0 ValueFont ``-Visible@*TCustomPropertiesGrid1TCustomPropertiesGrid("ObjectInspectorP1TAddAvailablePersistentEvent$selfPointer APersistent TPersistentAllowedBoolean 1TOnOINodeGetImageEvent$selfPointer APersistent TPersistent AImageIndexLongInt2TOIFlagoifRebuildPropListsNeededObjectInspector22223TOIFlags23 @3q5H;6`\P݄4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T \`TTTT \ڄބ`A@ \[0[P[[p[ [0[0"\[ \0 \ \\\ \\`\P\"\"\TIDEOpenDialogp3`t8;8`\P݄4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T$\`TTTT$\ڄބA@$\[0[P[[p[ [0[0"\[ \0 \ \\\ \\`\P\"\"\@ATIDESaveDialog6(98?>1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTIgnoreIDEQuestionItem8:?1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACCCCTIgnoreIDEQuestionList9p36TIDEOpenDialog;TIDEOpenDialogp3 IDEDialogsH;TIDEOpenDialogClassx;;TIDESaveDialog;TIDESaveDialog68 IDEDialogs;TIDESaveDialogClass<<TIDESelectDirectory$selfPointer$result AnsiStringTitle AnsiString InitialDir AnsiString AnsiString@<TInitIDEFileDialog$selfPointer AFileDialog TFileDialog<TStoreIDEFileDialog$selfPointer AFileDialog TFileDialogH= + IDEDialogs=TIgnoreQuestionDurationiiidIDERestartiiid24H iiidForever IDEDialogs=>!> >H> >>!>x>TIgnoreQuestionDurations@>>TIgnoreIDEQuestionItem>TIgnoreIDEQuestionItem8 IDEDialogs8?TIgnoreIDEQuestionListx?TIgnoreIDEQuestionList9 IDEDialogs?TLazMessageWorker$selfPointeraCaption AnsiStringaMsg AnsiStringDlgType TMsgDlgTypeButtonsTMsgDlgButtons HelpKeyword AnsiStringLongIntk 8  @TLazQuestionWorker$selfPointeraCaption AnsiStringaMsg AnsiStringDlgType TMsgDlgTypeButtons $highBUTTONSInt64 HelpKeyword AnsiStringLongIntk ,A'(+++,.FFwC|;FB=A=AFFF-@DONP3C4CP6C9C9C:C9C7C8C0AC@ACPACJPKL`MMZ`^Љ0෸0¸0 ŸƸƸ@Ǹȸ`ɸʸp00Ь p˸̸̸0͸TCompWriterPasPB(E0U1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTDefinePropertiesPasXD`؁GpUGTP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T@T`TTTT TAccessCompHEGU1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TPosComponent G 0 H PH H (H @H I @I pI I I J 0J `J J J J  K PK K (K K (L @L pL L L M 00M 0`M M M M  N PN N (NTCompWriterPas(@HXNTCompWriterPasPB CompWriterPasOTCWPFindAncestorEvent$selfPointerWriterTCompWriterPas Component TComponentName AnsiString Ancestor TComponent RootAncestor TComponentO@@@OTCWPGetMethodName$selfPointerWriterTCompWriterPasInstance TPersistentPropInfo PPropInfo Name AnsiStringOx&PTCWPGetParentPropertyEvent$selfPointerWriterTCompWriterPas Component TComponentPropName AnsiStringO@`QTCWPDefinePropertiesEvent$selfPointerWriterTCompWriterPasInstance TPersistent Identifier AnsiStringHandledBooleanO R TCWPOptioncwpoNoSignature cwpoNoSelfcwpoSetParentFirstcwpoSrcCodepageUTF8cwpoNoWithBlockscwpoNoFinalLineBreak CompWriterPasR(SRRSRSXSRRRSS(SS TCWPOptionsPSSTCWPChildrenStep cwpcsCreatecwpcsProperties CompWriterPasT;TGTpT;TGTTTCWPDefinePropertiesProcOSenderInstance Identifier HandledTTDefinePropertiesPasXD CompWriterPas0U TAccessCompHE@ CompWriterPaspU TPosComponent G CompWriterPasU0cW@u1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC@TComponentEditorDesignerU0Yu1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACѸCCCCCCCCCCCCTBaseComponentEditorWHYZxv1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACҸ׸ Ըָ`ԸԸԸ@ظԸԸ׸ ظٸTComponentEditorPY@Z[wv޸P3C4CP6C9C9C:C9C7C8C0AC@ACPAC@ݸ׸޸`ԸԸԸ@ظ׸ ظٸڸTDefaultComponentEditorZ@\]w޸P3C4CP6C9C9C:C9C7C8C0AC@ACPAC@ݸ׸޸`ԸԸԸ@ظ`@׸`ٸڸ@PTTabControlComponentEditor\@]H_`x޸P3C4CP6C9C9C:C9C7C8C0AC@ACPAC@ݸ׸޸`ԸԸԸ@ظ`@׸`ٸڸ@P`TPageComponentEditor]@\`(y޸P3C4CP6C9C9C:C9C7C8C0AC@ACPAC@ݸ׸޸`ԸԸԸ@ظ`׸ٸڸP` TUntabbedNotebookComponentEditorh_@`pby޸P3C4CP6C9C9C:C9C7C8C0AC@ACPAC@ݸ׸޸`ԸԸԸ@ظ`׸ٸڸP` 0TUNBPageComponentEditora@\dz޸P3C4CP6C9C9C:C9C7C8C0AC@ACPAC@ݸ׸޸`ԸԸԸ@ظ@׸`ٸڸ ` @TOldTabControlComponentEditorbZpe{1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACҸ׸ Ը``ԸԸԸ@ظ ׸ ظٸTStringGridComponentEditor8dZf{1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACҸ׸ Ը`ԸԸԸ@ظ׸ ظٸTCheckListBoxComponentEditore@\8hH|޸P3C4CP6C9C9C:C9C7C8C0AC@ACPAC@ݸ׸޸`ԸԸԸ@ظ׸ ظٸڸTCheckGroupComponentEditorfZi|1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACҸ׸ Ը `ԸԸԸ@ظp׸ ظٸTFlowPanelComponentEditor`h@\kp}޸P3C4CP6C9C9C:C9C7C8C0AC@ACPAC@ݸ׸޸`ԸԸԸ@ظ`׸ ظٸڸ TToolBarComponentEditoriZ`l~1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACҸ׸ Ը`ԸԸԸ@ظ׸ ظٸTCommonDialogComponentEditor(kZm~1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACҸ׸ Ը`ԸԸԸ@ظ׸ ظٸTTaskDialogComponentEditorl@\(o(޸P3C4CP6C9C9C:C9C7C8C0AC@ACPAC׸޸`ԸԸԸ@ظ׸ ظٸڸTTimerComponentEditorm0p1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC  TComponentRequirementsHo(qH1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACCTIDEComponentsMasterPp(r`P3C4CP6C9C9C:C9C7C8C0AC@ACPACTComponentClassReqHqTComponentPasteSelectionFlag cpsfReplacecpsfFindUniquePositionsComponentEditorsrrrrrrsTComponentPasteSelectionFlagsr8s TUndoOpTypeuopNoneuopAdd uopChange uopDeleteComponentEditorspsssssssssstTUndoCompStateucsNoneucsStartChange ucsSaveChangeComponentEditors@tatxtittatitxttTComponentEditorDesignertTComponentEditorDesignerU0ComponentEditors@uTBaseComponentEditoruTBaseComponentEditorWComponentEditorsuTComponentEditorClassvvTComponentEditor8vTComponentEditorPYvComponentEditorsxvTDefaultComponentEditorvTDefaultComponentEditorZvComponentEditorsw XwTTabControlComponentEditorwTTabControlComponentEditor\PwComponentEditorswTPageComponentEditor xTPageComponentEditor]xComponentEditors`x x TUntabbedNotebookComponentEditorx TUntabbedNotebookComponentEditorh_PwComponentEditors(yTUNBPageComponentEditorxyTUNBPageComponentEditorapyComponentEditorsy zTOldTabControlComponentEditor8zTOldTabControlComponentEditorbPwComponentEditorszTStringGridComponentEditorzTStringGridComponentEditor8dvComponentEditors{TCheckListBoxComponentEditorh{TCheckListBoxComponentEditorevComponentEditors{TCheckGroupComponentEditor|TCheckGroupComponentEditorfPwComponentEditorsH|TFlowPanelComponentEditor|TFlowPanelComponentEditor`hvComponentEditors|TToolBarComponentEditor(}TToolBarComponentEditoriPwComponentEditorsp}TCommonDialogComponentEditor}TCommonDialogComponentEditor(kvComponentEditors~TTaskDialogComponentEditorP~TTaskDialogComponentEditorlvComponentEditors~TTimerComponentEditor~TTimerComponentEditormPwComponentEditors(TRegisterComponentEditorProcp ComponentClass0vComponentEditorpTComponentRequirementsTComponentRequirementsHoComponentEditorsTComponentRequirementsClassX`TPropertyEditorFilterFunc$selfPointer ATestEditorTPropertyEditorBoolean TIDEComponentsMasterTIDEComponentsMasterPpComponentEditorsHTComponentClassReq TComponentClassReqHqComponentEditorsP(1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACCCCCCCCC"""TUnitResourcefileFormat(h@1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACCP !C"@!! TCustomLFMUnitResourceFileFormatpTUnitResourcefileFormatTUnitResourcefileFormat( UnitResources(TUnitResourcefileFormatClasshpTUnitResourcefileFormatArr UnitResources TCustomLFMUnitResourceFileFormat TCustomLFMUnitResourceFileFormatph UnitResources@pDP݄4CT0^DD9C7C8C0AC@ACPAC```T`TTD`TpT@}ET@DT`0`ЅT`TTT TTTT T}E`Tpa0aT@|EڄvE``pD`PE^``Ў` `@`E_a`^+`+`P^``DDD`D0_^_ ?`P8a9a@^^PDP``D^@F_F_p__E```@E@$_`E^ _ -` _,`,`;`0_`PE`x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`D` E_@_`@^p_B`pD`D`P\`^`0_`]`_`_` E@ EF`G`I`DE@EDp`J`<`xE``0` @`@`@`p_u^v^@w^IE_%a&aE #`p/a`^D ````_@``a``D=_`<_|`^```0a_apDPD0^`^0`_``PC `p`S`^` _`P_ `@_`_a ap_0P`М`0``_@_`@^p_B`pD`D`h0ii]`j@kpF`F`F`G`I``-a"` \p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ `@I@``a```=_|`^```0a_a0`P1`0^`^0`_``PX(HX8 eP3C4CP6C9C9C:C9C7C8C0AC@ACPACfefi+TFPGListh`(P3C4CP6C9C9C:C9C7C8C@ACPACTBaseCompPaletteOptions0xP@pP3C4CP6C9C9C:C9C7C8C@ACPACTCompPaletteOptions(x@P3C4CP6C9C9C:C9C7C8C @ACPACTCompPaletteUserOrderp01CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC3TFPGListEnumerator`(H` eP3C4CP6C9C9C:C9C7C8C0AC@ACPACne@n q)TFPGListp``  eP3C4CP6C9C9C:C9C7C8C0AC@ACPACsetPitPtt:TFPGMap TComponentPriorityCategorycpBasecpUser cpRecommendedcpNormal cpOptional ComponentReg@m{tmt{ TComponentPriority8 TComponentPriority8xTBaseComponentPageTBaseComponentPage ComponentReg X  TBaseComponentPaletteTBaseComponentPalette ComponentReg8 xTRegisteredComponent TRegisteredComponent ComponentRegTOnGetCreationClass$selfPointerSenderTObjectNewComponentClassTComponentClassp 8TFPGList$1$crcD89E9656TRegisteredCompListTFPGList$1$crcD89E9656h0 ComponentReg8TRegisteredCompListHx ComponentReg TFPGListEnumerator$1$crcD89E9656 TFPGListEnumerator$1$crcD89E9656X ComponentReg TCompareFunc 0Item1 0Item2`PT0 PTypeListTBaseCompPaletteOptionsTBaseCompPaletteOptions ComponentReg( p    0 `  TCompPaletteOptionsTCompPaletteOptionsh ComponentReg@TCompPaletteUserOrderTCompPaletteUserOrderph ComponentRegTBaseComponentPageClassPTComponentPaletteHandlerTypecphtVoteVisibilitycphtComponentAddedcphtSelectionChanged cphtUpdated ComponentReg0r__rTComponentSelectionMode csmSinglecsmMulty ComponentReg0dZZdTEndUpdatePaletteEvent$selfPointerSenderTObjectPaletteChangedBoolean TGetComponentClassEvent$selfPointerAClassTComponentClassp HTUpdateCompVisibleEvent$selfPointer AComponentTRegisteredComponent VoteVisibleLongInt0TPaletteHandlerEvent$selfPointer0TComponentAddedEvent$selfPointer ALookupRoot TComponent AComponent TComponentARegisteredComponentTRegisteredComponent@@0pRegisterUnitComponentProcPageUnitNamep ComponentClass  TFPGListEnumerator$1$crc31FD3363 TFPGListEnumerator$1$crc31FD3363` ComponentReg TCompareFunc PItem1 PItem20PTPx PTypeListTFPGList$1$crc31FD3363TFPGList$1$crc31FD3363p0 ComponentRegTKeyCompareFuncKey1Key28TDataCompareFuncData1Data2PKeyTFPGMap$2$crc0A28BB61TFPGMap$2$crc0A28BB61 ComponentReg  `@pn`p߹P݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpTTPT`0`ЅT`TTT TTTT T޹`Tpa0aTPڄa````^^``Ў` `@`@_a`^+`+`P^``@ΰ` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `a ap_HaP`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``Ӱ"``p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ```_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``Pp0Hp eP3C4CP6C9C9C:C9C7C8C0AC@ACPACǹeǹPi0TFPGObjectListx1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TTFENodeData(h1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TFileNameItemTImageIndexEvent$selfPointerStr AnsiStringDataTObject AIsEnabledBooleanLongInt TFilterNodeEvent$selfPointerItemNode TTreeNode DoneBooleanBoolean TTreeFilterEditTTreeFilterEdit@[TreeFilterEdit pW4FilteredTreeview X0ExpandAllInitially  Y0OnGetImageIndex00Z0 OnFilterNodeTTreeFilterBranchTTreeFilterBranchTreeFilterEditH TFPGListEnumerator$1$crc5A770982 TFPGListEnumerator$1$crc5A770982pTreeFilterEdit TCompareFunc Item1 Item2(PTp PTypeListTFPGObjectList$1$crc5A770982TFPGObjectList$1$crc5A7709820TreeFilterEdit TTFENodeData@ TTFENodeDataTreeFilterEditx TFileNameItem  TFileNameItemTreeFilterEditpn @P݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpTTT`0`ЅT`TTT TTTT T`Tpa0aTPڄa````^^``Ў` `@`@_a`^+`+`P^``@ΰ` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `a ap_HaP`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``Ӱ"``p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ```_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``P= ;DP݄4CT0^DD9C7C8C0AC@ACPAC```T`TTD`TpT@}ET@DT`0`ЅT`TTT TTTT T}E`Tpa0aT@|EڄvE``pD`PE^``Ў` `@`E_a`^+`+`P^``DDD`D0_^_ ?`P8a9a@^^PDP``D^@F_F_p__E```@E@$_`E^ _ -` _,`,`;`0_`PE`x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`D` E_@_`@^p_B`pD`D`P\`^`0_`]`_`_` E@ EF`G`I`DE@EDp`J`<`xE``0` @`@`@`p_u^v^@w^IE_%a&aE #`p/a`^D ````_@``a``D=_`<_|`^```0a_apDPD0^`^0`_``PZ?N1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACҸ׸ Ըz`ԸԸԸ@ظԸ`{׸ ظٸCTSubComponentListEditor>87A@O@P3C4CP6C9C9C:C9C7C8C0AC@ACPACав0x yн0y0įǯpȯPȯpȯ ϯϯ@կ0دׯPددٯ گگ0ۯPۯ@ܯܯ@ݯpޯޯCCTComponentListPropertyEditor?XLMMOxL~P݄4CT0^DD9C7C8C0AC@ACPAC```T`TTD`TpT@}ET@DT`0`ЅT`TTT TTTT T}E`Tpa0aT@|EڄvE``pD`PE^``Ў` `@`E_a`^+`+`P^``DDD`D0_^_ ?`P8a9a@^^PDP``D^@F_F_p__E```@E@$_`E^ _ -` _,`,`;`0_`PE`x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`D` E_@_`@^p_B`pD`D`P\`^`0_`]`_`_` E@ EF`G`I`DE@EDp`J`<`xE``0` @`@`@`p_u^v^@w^IE_%a&aE #`p/a`^D ````_@``a``D=_`<_|`^```0a_apDPD0^`^0`_``PvTASubcomponentsEditorNTComponentListPropertyEditorNTComponentListPropertyEditor?TASubcomponentsEditor@OTComponentListEditorFormOTComponentListEditorFormBoTASubcomponentsEditorOUmg-MYmQW(P&{6D8E5591-6788-4D2D-9FE6-596D5157C3C2}@P`PQ VSBC4CP6C9CBCBC9C7C8C0AC@ACPACP@P pP TCanvasDrawerЮ஺ 0@P`pЯ௺ 0@P`pа఺ 0@P`pб౺ 0@PQP8PSXhPpPhTXUVpUBC4CP6C9CBCBC9C7C8C0AC@ACPACP@P pPTScaledCanvasDrawerTIChartTCanvasDrawerUmg-MYmQWTADrawerCanvasU TCanvasDrawerU TCanvasDrawerpP TADrawerCanvas VTScaledCanvasDrawer`VTScaledCanvasDrawerTXVTADrawerCanvasV` 0Cdq(dP݄4CT0^9C a9C7C8C0AC@ACPAC```T`TTpTT5T` ЅT`TTT TTTT T@ܖ`#pa0a$`Iaڄa````^^``Ў` `@`}`_a`^+`+`P^``pǗŗ ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,``(0_`P``x`@7`7`7`PY`PZ`AH_ `p`/_`^` _ P_ `P0a ap_09P`М`0``&_@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`G`_`-a"`p`J`,P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^ ````_@``a```=_Ћ|`^```0a_a0`P1`0^`^0`_``P:4 MaxLeftChar55;5MaxUndoX   <8OptionsH =8Options28 >8 MouseOptions@?4VisibleSpecialChars P=@4OverwriteCaret P A:ReadOnlyŖ 3PB5 RightEdgeŖ4C5RightEdgeColorxgpগD4 ScrollBars`2h E: SelectedColorH@F5 SelectionModeĘG4TabWidth iØH4WantTabsP P I0OnChange(,` ` J0OnClearBookmarkop p K0OnCommandProcessedm L0 OnDropFiles0p M5 OnGutterClickm N0OnPaint(, O0OnPlaceBookmarko P0OnProcessCommando Q0OnProcessUserCommando R0 OnReplaceTextp[ ` S4OnSpecialLineColors T0OnStatusChange8r1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX EBarError 0@`P`P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT@TPT`TpTЂTTTT}TЅTTTT TTTT T `T`xzTvࢻ@vx9}~@p1@nnz`z8 qtԻջ0:@%Ѐ`0s%,`PP Ż`$-ܻ3`ػ TBarSeries``pP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TPT`TpTЂTTTT}TЅTTTT TTTT T`T`xzTv0@vx9}~@p@:@nnz`z8 qt8`%0:Ѐ`0s!0`Pp TPieSeries`hȌ@9P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTp6TPT`TpTЂTTTT}TЅTTTT TTTT T07`T`xzTvࢻ@vx9}~@pp@nnz`z89 qtԻջ0:SЀ`0s˻S`P SŻ`0ƻTVݻ`ػ TAreaSeriespp P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTPT`TpTЂTTTT}TЅTTTT TTTT T@`T`xzTvࢻ@vx9}~@pp@nnz`z8 qtԻջ0:`غЀ`0sۺ`P`ûŻ0ƻPӻܻݻ`ػ TLineSeries،phP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTPT`TpTЂTTTT}TЅTTTT TTTT T`T`xzTvࢻ@vx9}~@pp@nnz`z8 qtԻջ0:PЀ`0s˻0`P`ûŻ`0ƻPӻܻݻ`ػTManhattanSeries0X`hPP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTPT`TpTЂTTTT}TЅTTTT TTTT T`T`xzTv 77@vx9}~@p@::@nnz`z8t`9pЀ 0s TConstantLine @XpP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT@WTPT`TpTЂTTTT}TЅTTTT TTTT To`T`xzTvl 77@vx9}~@p@::@nnz`z8W qtPY890:0YЀX0swTUserDrawnSeriesxP@B?????????????????? EBarErrorؚ EBarError PTASeries TBarShape bsRectangular bsCylindrical bsHexPrism bsPyramid bsConicalTASeries@jx\\jxTBarWidthStyle bwPercent bwPercentMinTASeries0Q[Q[ TDrawBarProc$selfPointerADrawer IChartDrawerARectTRectADepthLongInth 0ȜXTASeriesH TBarSeriesxTBeforeDrawBarEvent$selfPointerASender TBarSeriesACanvasTCanvasARectTRect APointIndexLongInt AStackIndexLongIntADoDefaultDrawingBooleanxp0 TCustomDrawBarEvent$selfPointerASeries TBarSeriesADrawer IChartDrawerARectTRect APointIndexLongInt AStackIndexLongIntxh 0 TBarSeries!TASeries0~ 4 AxisIndexX0P~ 4 AxisIndexY h- 4BarBrushp- 4BarOffsetPercentx.4BarPenP.4BarShape/F4BarWidthPercentx/4 BarWidthStylex p8Depth~4DepthBrightnessDelta f0ۻ4MarkPositionCenteredpۻ4 MarkPositionsg4Marks016 SeriesColorpPSource Xܻ4Stacked\@ܻ4 StackedNaN4Styles 0 ToolTargets `14 UseZeroLevel(1`- ZeroLevel004OnBeforeDrawBarX0 4OnCustomDrawBar` TPieSeries TPieSeries`pTASeries4'h 4 AngleRange8@( 4EdgePenx p 8Depth~ 4DepthBrightnessDelta @(4Explodedx D(4 FixedRadius )4InnerRadiusPercent )4MarkDistancePercent `)4MarkPositionCentered)4 MarkPositionsg4MarksP*4 Orientation H*4 RotateLabels0 +4 StartAnglepPSource0"p+<5 ViewAnglehP *4OnCustomDrawPie TConnectTypectLinectStepXYctStepYXTASeriesƨϨƨϨ TASeriesH TAreaSeriesx TAreaSeriesTASeries0~ 4 AxisIndexX0P~ 4 AxisIndexY hT 4 AreaBrushpT 4AreaContourPenx0U4 AreaLinesPen U4BandedU4 ConnectTypex p8Depth~4DepthBrightnessDelta f0ۻ4MarkPositionCenteredpۻ4 MarkPositionsg4MarksV6 SeriesColorpPSource Xܻ4Stacked\@ܻ4 StackedNaN4Styles0 ToolTargets 0V4 UseZeroLevel(pV`T ZeroLevelTSeriesPointerDrawEvent$selfPointerASender TChartSeriesACanvasTCanvasAIndexLongIntACenterTPointp( TLineTypeltNoneltFromPrevious ltFromOriginltStepXYltStepYXTASeriesЮ8TColorEachModeceNonecePoint ceLineBefore ceLineAftercePointAndLineBeforecePointAndLineAfterTASeriesٯ@ٯXTASeriesذ  TLineSeries8 TLineSeries، TASeries0~ 4 AxisIndexX0P~ 4 AxisIndexY8 4 ColorEachx p 8Depth~4DepthBrightnessDeltah@4LinePen0p4LineTypepۻ4 MarkPositionsg4MarksPۻ4Pointer6 SeriesColor 5 ShowLines p5 ShowPoints Xܻ4Stacked\@ܻ4 StackedNaNpPSource4Styles0 ToolTargetsȑƻڻ`ԻU XErrorBarsȑƻڻ`ԻU YErrorBars0OnCustomDrawPointer((0OnGetPointerStylepTManhattanSeriesHTManhattanSeries0TASeries0~ 4 AxisIndexX0P~ 4 AxisIndexYhp 4 SeriesColorpP Source TLineStyle lsVertical lsHorizontalTASeries TConstantLine( TConstantLineTASeries `8ActiveX 4Arrow0p5 AxisIndex0~ 4 AxisIndexXط 4 LineStyle 4Pen(  4Position@p 5 SeriesColor : ShowInLegend(Title 4 UseBoundsx 8 ZPosition`TSeriesDrawEvent$selfPointerACanvasTCanvasARectTRectp0TSeriesGetBoundsEvent$selfPointerABounds TDoubleRect@ pTUserDrawnSeriesȻTUserDrawnSeriesx TASeries `8Activex 8 ZPositionhY4OnDrawZ 4 OnGetBoundshp о@ؿ`P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T`^`TTTTc Tplaysound TPlayStylepsAsyncpsSync uplaysound 0 X x  Tplaysoundxؿ Tplaysound  uplaysound0 SoundFile(0 PlayStylexx0 PlayCommand@  Hp apaHaHa@@$x8pP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTlTPT`TpTЂTTTT}TЅTTTT TTTT To`T`xzTvl 77@vx9}~@p@::@nnz`z8C qtC890:CЀC0swTCustomChartSeriesPP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTPT`TpTЂTTTT}TЅTTTT TTTT T`T`xzTv0@vx9}~@p@:@nnz`z8C qt890:CЀ`0sw0`Pp TChartSerieshhP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTࣻTPT`TpTЂTTTT}TЅTTTT TTTT T`T`xzTvࢻ@vx9}~@pp@nnz`z8C qtԻջ0:CЀ`0s˻0`P`ûŻ`0ƻPӻܻݻ`ػTBasicPointSeries TNearestPointParams  TNearestPointParams     TNearestPointResults(@ TNearestPointResults@( TChartAxisIndexTCustomChartSeries8TCustomChartSeries@TACustomSeriesI4LegendȐ8Shadow : ShowInLegendh8 TransparencyTChartGetMarkEvent$selfPointer AFormattedMark AnsiStringAIndexLongInt TChartSeries TChartSeries TACustomSeries `8Active : ShowInLegend(Titlex 8 ZPosition` 4 OnGetMarkPTLabelDirectionldLeftldTopldRightldBottomTACustomSeries(TLinearMarkPositions lmpOutside lmpPositive lmpNegative lmpInsideTACustomSeriesXTSeriesPointerCustomDrawEvent$selfPointerASender TChartSeriesADrawer IChartDrawerAIndexLongIntACenterTPointh 8TSeriesPointerStyleEvent$selfPointerASender TChartSeries AValueIndexLongIntAStyleTSeriesPointerStyle TStackedNaNsnReplaceByZero snDoNotDrawTACustomSeries8TACustomSeries0TBasicPointSeries`8hTBasicPointSeries TACustomSeriesH8)H1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACPTLegendItemPie88)1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACPTLegendItemPieSlice`8P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TPT`TpTЂTTTT}TЅTTTT TTTT T`T`xzTv0@vx9}~@p@:@nnz`z8 qt8`%0:Ѐ`0s!0`PpTCustomPieSeries`X`hMP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTJTPT`TpTЂTTTT}TЅTTTT TTTT TK`T`xzTvࢻ@vx9}~@pp@nnz`z8N qt\@^0:UЀ`0sPY0c`P@TŻ`PUPӻܻݻc`ػ` TPolarSeriesTLegendItemPieTLegendItemPiep7TARadialSeriesHTLegendItemPieSliceTLegendItemPieSlicep7TARadialSeries TLabelParams TLabelParamsP TPieSliceHH TPieSliceH((0(8 @TPieMarkPositions pmpAround pmpInside pmpLeftRightTARadialSeriesHTARadialSeries@HTARadialSeriesxXTARadialSeriesTCustomPieSeriesp(TCustomPieSeries TARadialSeries8 TSliceArrayHTARadialSeriesx TSliceArrayHTARadialSeriesTPieOrientationpoNormal poHorizontal poVerticalTARadialSeries#0X#0 TSlicePartspTopspOuterArcSidespInnerArcSide spStartSide spEndSideTARadialSeries hTCustomDrawPieEvent$selfPointerASeriesTCustomPieSeriesADrawer IChartDrawerASlice TPieSliceAPart TSlicePartAPoints TPointArrayph   TSinCosp TSinCosp((TARadialSeriesXTARadialSeries( TPolarSeries ` TPolarSeriesTARadialSeries h@a 4Brush pa 4 CloseCircle qa 4Filledx b 4LinePenpۻ4 MarkPositionsg4Marks(b@\OriginX(b\OriginYPۻ4Pointer @c4 ShowPointspPSource4Styles0OnCustomDrawPointer((0OnGetPointerStylexp(! xP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TT}`TpTЂTTTTT`~~TTTT TTTT Tw`TTTTpy{ TChartToolsetx&"  PkP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTiTPT`TpTЂTTTT@sTЅTvTTT TTTT Ti`TpPpTPou h0kqip q@q`qqqqhm TChartTool ( 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC*TTypedFPListEnumeratorP! SP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TChartToolsx ) 8PkP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTiTPT`TpTЂTTTT@sTЅTvTTT TTTT Ti`TpPpTPou h0kqip q@q`qqqqhmTUserDefinedToolp* P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTiTPT`TpTЂTTTT@sTЅTvTTT TTTT T `TpPpTPou hqip q@q`qqqqhmPTBasicZoomToolH - P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTiTPT`TpTЂTTTT@sTЅTvTTT TTTT T`TpPpTPou hqp qPДqqh@ TZoomDragTool0 0 HP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTiTPT`TpTЂTTTT@sTЅTvTTT TTTT TP`TpPpTPou hqip q@q`qqqqhmTBasicZoomStepToolP81 P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTiTPT`TpTЂTTTT@sTЅTvTTT TTTT TP`TpPpTPou hqip q `qqqqhmTZoomClickToolXP1 P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTiTPT`TpTЂTTTT@sTЅTvTTT TTTT TP`TpPpTPou hqip q@q`qq`hmTZoomMouseWheelToolp@ 3 P PkP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTiTPT`TpTЂTTTT@sTЅTvTTT TTTT T `TpPpTPou h0kqip q@q`qqqqhm TBasicPanToolXX  3  PkP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTiTPT`TpTЂTTTT@sTЅTvTTT TTTT T@`TpPpTPoupqp q Ъqqhm TPanDragTool` PX  5   P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTiTPT`TpTЂTTTT@sTЅTvTTT TTTT T `TpPpTPou h଼qip q఼pqqhm TPanClickTool hX 0 X6 H PkP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTiTPT`TpTЂTTTT@sTЅTvTTT TTTT T`TpPpTPou h0kqip q@q`qq@hmTPanMouseWheelTool (( 7 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTDataPointTool.TPointRefX ( 8 @8  PkP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTiTPT`TpTЂTTTT@sTЅTvTTT TTTT T`TpPpTPou h0kqip q@q`qqqqhmTDataPointToolP    (:  PkP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTiTPT`TpTЂTTTT@sTЅTvTTT TTTT T `TpPpTPou h0kqp q` üqqhmTDataPointDragTool  @ ; X PkP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTiTPT`TpTЂTTTT@sTЅTvTTT TTTT T`TpPpTPou h0kqip qpü`qüqqhmTDataPointClickTool `  =  PkP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTiTPT`TpTЂTTTT@sTЅTvTTT TTTT T`TpPpTPou h0kqip qpü`qüqqhmżTDataPointMarksClickToolh (  8?   ǼP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTiTPT`TpTЂTTTT@sTЅTvTTT TTTT TƼ`TpPpTPou h0kqiȼȼȼ ɼPμqqhmTDataPointHintTool   hB   мP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTiTPT`TpTЂTTTT@sTЅTvTTT TTTT Tμ`TpPpTPou h0kqip q@q`qqqqhӼ`ѼҼм ҼԼTDataPointDrawTool0   E 0  мP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTiTPT`TpTЂTTTT@sTЅTvTTT TTTT Tռ`TpPpTPou h0kqiۼ q@ۼۼqqqhڼ׼ټм ҼԼTDataPointCrosshairTool Xp G  PkP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTiTPT`TpTЂTTTT@sTЅTvTTT TTTT Tݼ`TpPpTPou h0kqip q`q`qqhmTAxisClickTool@ ` pH  PkP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTiTPT`TpTЂTTTT@sTЅTvTTT TTTT T`TpPpTPou h0kqip q`q0qqhmTTitleFootClickTool P 8J 0 PkP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTiTPT`TpTЂTTTT@sTЅTvTTT TTTT T`TpPpTPou h0kqip q`q0qqhmTLegendClickTool EpFF TChartToolh x  ! TATools(!  TChartToolsetX!  TChartToolsTATools!  TChartToolset+TATools! h<Tools! TChartToolEvent$selfPointerATool TChartToolAPointTPointx& 0"  TChartTool@TATools xx0Enableddd0Shift" n@tuOnAfterKeyDown" n@tu OnAfterKeyUp" n@tuOnAfterMouseDown" n@tuOnAfterMouseMove" n@tuOnAfterMouseUp" n@t uOnAfterMouseWheelDown" n@t uOnAfterMouseWheelUp" ot uOnBeforeKeyDown" ot u OnBeforeKeyUp" ot uOnBeforeMouseDown" otuOnBeforeMouseMove" otuOnBeforeMouseUp" otuOnBeforeMouseWheelDown" otuOnBeforeMouseWheelUp" TChartToolDrawingMode tdmDefault tdmNormaltdmXorTATools& & & & & & & & ' TChartToolEffectiveDrawingMode&  tdmNormaltdmXorTATools0' a' k' ' a' k' ' $TTypedFPListEnumerator$1$crc697ABD19' $TTypedFPListEnumerator$1$crc697ABD19TATools ( TChartToolClassx& p(  TChartTools( TUserDefinedTool( TUserDefinedToolx& TATools) TZoomDirectionzdLeftzdUpzdRightzdDownTAToolsH) }) i) u) p) ) i) p) u) }) ) TZoomDirectionSet) * TBasicZoomTool8* TBasicZoomToolHx& TATools`0AnimationInterval`0AnimationSteps0* 0 LimitToExtentp* TZoomRatioLimitzrlNonezrlProportional zrlFixedX zrlFixedYTAToolsX+ + + z+ + + z+ + + + + TRestoreExtentOnzreDragTopLeftzreDragTopRightzreDragBottomLeftzreDragBottomRightzreClickzreDifferentDragTATools(, , , j, |, K, Z, , K, Z, j, |, , , - TRestoreExtentOnSet, X-  -  TZoomDragTool-  TZoomDragToolP+ TATools 0AdjustSelection4Brush& tPu4 DrawingMode yy0 EscapeCancels4Frame+ 0 RatioLimit- 0RestoreExtentOnhpp0 Transparency- TBasicZoomStepTool/ TBasicZoomStepToolP+ TATools 0 FixedPoint( ZoomFactor( ZoomRatio 0 TZoomClickTool1 TZoomClickToolX0 TATools81 TZoomMouseWheelToolp1 TZoomMouseWheelTool0 TATools1  TPanDirectionpdLeftpdUppdRightpdDownTATools1 $2 2 2 2 @2 2 2 2 $2 2 TPanDirectionSet82 2  TBasicPanTool2  TBasicPanToolx& TATools2 0 LimitToExtent3  TPanDragTool3  TPanDragTool` 3 TATools0ps4 ActiveCursor2 0 Directions yy0 EscapeCancels`0 MinDragRadius3  TPanClickTool4  TPanClickTool 3 TATools0ps4 ActiveCursor`0Interval0Margins5  5 TPanMouseWheelTool6 TPanMouseWheelTool 3 TATools` 0Step82 0WheelUpDirectionX6 TChartDistanceModecdmXYcdmOnlyXcdmOnlyYTATools7 +7 47 %7 P7 %7 +7 47 7  TPointRef7  TPointRefX TATools7  8 TDataPointTool@@8 TDataPointToolP x& TAToolsོ5AffectedSeriesH7 0 DistanceMode0 GrabRadius8 TDataPointDragToolh9 TDataPointDragEvent$selfPointerASenderTDataPointDragTool AGraphPoint TDoublePoint; 9 TDataPointDragTool `9 TATools0ps4 ActiveCursor yy0 EscapeCancels 0 KeepDistance0Targets : 0OnDrag : 0 OnDragStart(: TDataPointClickTool; TDataPointClickTool `9 TATools0ps4 ActiveCursor0Targets" 0 OnPointClick; TDataPointMarksClickTool< TDataPointMarksClickToolh < TATools= TDataPointHintToolP= TChartToolHintEvent$selfPointerAToolTDataPointHintToolAPointTPointAHint AnsiString0A = TChartToolHintLocationEvent$selfPointerAToolTDataPointHintTool AHintSizeTSizeAPointTPoint0A  > TChartToolHintPositionEvent$selfPointerAToolTDataPointHintToolAPointTPoint0A > TDataPointHintTool `9 TATools0ps4 ActiveCursor0Targets> 0OnHint> 0OnHintLocation0? 0OnHintPosition $μ4UseApplicationHint %%0UseDefaultHintText 0MouseInsideOnly8? TDataPointDrawTool8A TChartDataPointCustomDrawEvent$selfPointerASenderTDataPointDrawToolADrawer IChartDrawerC h xA TChartDataPointDrawEvent$selfPointerASenderTDataPointDrawToolC B TDataPointDrawTool0 `9 TATools& tPu4 DrawingMode0 GrabRadiusA 0 OnCustomDraw`B 0OnDraw 0MouseInsideOnlyhB TChartCrosshairShapeccsNone ccsVertical ccsHorizontalccsCrossTAToolsC D C C C  D C C C D `D  D TDataPointCrosshairToolD TDataPointCrosshairTool C TAToolspռ4 CrosshairPenD 0Shape0Size0TargetsE TAxisClickEvent$selfPointerASender TChartToolAxis TChartAxisAHitInfoTChartAxisHitTestsx&  F  F TAxisClickToolF TAxisClickTool@ x& TATools0 GrabRadiusF 0OnClickG TTitleFootClickEvent$selfPointerASender TChartToolATitle TChartTitlex&  `G TTitleFootClickTool0H TTitleFootClickTool x& TATools(H 0OnClickpH TLegendClickEvent$selfPointerASender TChartToolALegend TChartLegendx& EH TLegendSeriesClickEvent$selfPointerASender TChartToolALegend TChartLegendASeriesTBasicChartSeriesx& E@XI TLegendClickToolI TLegendClickTool x& TAToolsPI 0OnClickI 0 OnSeriesClick8J @K @Q P 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC$ TFTPListRecJ PL R xQ *P3C4CP6C9C9C:C9C7C8C0AC@ACPAC,H.0:A+,@-LTFTPListK  N hU T P3C4CP6C9C9C:C9C7C8C0AC@ACPACpp `p`## ` ` ` p!@"0 ` TFTPSendM             TLogonActionsP  TFTPStatus$selfPointerSenderTObjectResponseBooleanValue AnsiString HP  TFTPListRec(08P  TFTPListRecJ ftpsend@Q TFTPList(08@HPX`hpxxQ TFTPListK ftpsendR  R   S  PS  0S  0S  S  8T  0@T  pT TFTPSend `pxT TFTPSendM "ftpsendX< ResultCode`< ResultString h< FullResultpp 0Accountxx 0FWHost 0FWPort 0 FWUsername 0 FWPassword0FWMode H<Sock P<DSock< DataStream<DataIP<DataPort 0 DirectFile0DirectFileName < CanResume 0 PassiveMode 0ForceDefaultPort 0 ForceOldPortP 880OnStatusR <FtpList 0 BinaryMode 0AutoTLS 0FullSSL <IsTLS  < IsDataTLS !0 TLSonDatahU  0`[ `\ Hw 1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX!TListChartSource.EXListEmptyError[ `] w 1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX!TListChartSource.EYListEmptyError\ p` 8x  ` P{P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTTTTTTЅTTTTT TTTT Tw`TTTTխխ`խp0~@ɭͭPɭ֭@֭ح٭ 0PtTListChartSource] x(` b z b P{P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTTTTTTЅTTTTT TTTT Tw`TTTTխխ`խp0Њ@ɭͭPɭ֭@֭ح٭ 0TBuiltinListChartSource0` @e H{ Xe PP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T`TTTTխխ`խp0 p@ɭͭ @ TSortedChartSourceb  8f | 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTMWCRandomGeneratorhe Ph } 8} h 0P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT Tp`TTTTխխК``@ɭͭPɭ֭@֭ح٭0TRandomChartSourceXf x@k ` h Xk ԭP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT Tӭ`TTTTխ`խ`@Ш@ɭͭPɭ֭@֭ح٭00TUserDefinedChartSourceh @m   m P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT Tе`TTTTխխ`խຽ`྽0@ɭͭPɭ֭@֭ح٭0TCalculatedChartSourcehk @Pp  pp ԭP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT Tӭ`TTTTխխ`խCC`CC@ɭͭPɭ֭@֭ح٭0TCustomChartSourceAccessm `r ` r [P3C4CP6C9C9C:C9C7C8C0T@ACPAC]TpS^T`Y`TPS\S`SSjpSSPkplT@T@T T TPTpTTZ`\TT`T0T T0T`aTTTTT` T`"T#TP$T%T(TTListChartSourceStringsp }?@UUUUUU@UUUUUU?@UUUUUU?пDDDDDD@ @?@@333333?UUUUUUſ??пп??п??ȿ???Ŀ????UUUUUU?UUUUUU?333333ÿ??ɿ88?AAm??????????EXListEmptyErrorw EXListEmptyError[ P TASourcesHw EYListEmptyErrorw EYListEmptyError\ P TASourcesw TListChartSourcew TListChartSource]  TASources h}4 DataPoints`88XCounthU XErrorBarData`<8YCounthU YErrorBarData,8SortBy08SortDir ` 4Sorted`4 8 SortIndexXH0 4 OnCompare8x TBuiltinListChartSourcez TBuiltinListChartSource0` xz  TASourcesz TSortedChartSource{ TSortedChartSourceb  TASourcespxp4Origin,8SortBy08SortDir `4Sorted`48 SortIndexXH04 OnCompareH{ TMWCRandomGenerator| TMWCRandomGeneratorhe  TASources| TRandomChartSourcex8} TRandomChartSourceXf p TASources @p4 PointsNumber D4 RandomColors E4RandomXH04RandSeed`88XCount(P4XMax(X4XMin`< 8YCount(` 4YMax(h 4YMin p@ 4 YNanPercenth U XErrorBarDatahU YErrorBarData} TUserDefinedChartSource@h TGetChartDataItemEvent$selfPointerASourceTUserDefinedChartSourceAIndexLongIntAItemTChartDataItem p TUserDefinedChartSourceh p TASourcesX pp4OnGetChartDataItem4 PointsNumber 0Sorted`88XCounthU XErrorBarData`<8YCounthU YErrorBarData` TChartAccumulationMethodcamNonecamSum camAverage camDerivativecamSmoothDerivative TASources Z e K s S  K S Z e s  TChartAccumulationDirection cadBackward cadForward cadCenter TASources N e Z  N Z e   TASources TCalculatedChartSource`  TCalculatedChartSourcehk p TASources @༽4AccumulationDirection D 4AccumulationMethod`H`4AccumulationRangep4Origin P4 Percentage4 ReorderYList TCustomChartSourceAccessm p TASources TListChartSourceStringsp  TASources` h؁X   h P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTTTTTTЅTTTTT TTTT T0`TTTT TPascalTZ  AnsiStringx  TPascalTZ`h  TPascalTZ @ uPascalTZ4 DatabasePath pp0DetectInvalidLocalTimes @ P  1CP3C4CP6C9C9C:C9C7C8C0AC@AC &TTZRuleȊ x ؤ 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC+TFPGListEnumerator 0H   eP3C4CP6C9C9C:C9C7C8C0AC@ACPACe@Pi'TFPGObjectList   @ +P3C4CP6C9C9C:C9C7C8C0AC@ACPAC TTZRuleGroupЍ   1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC0TFPGListEnumerator 0H 0  eP3C4CP6C9C9C:C9C7C8C0AC@ACPACePi,TFPGObjectListȏ    1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTTZDateListItem  P 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC3TFPGListEnumeratorؑ 0Hؓ h  eP3C4CP6C9C9C:C9C7C8C0AC@ACPAC e Pi/TFPGObjectList H   1CP3C4CP6C9C9C:C9C7C8C0AC@AC+TTZZone   1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC+TFPGListEnumerator 0H   eP3C4CP6C9C9C:C9C7C8C0AC@ACPACePi'TFPGObjectList   p  2P3C4CP6C9C9C:C9C7C8C0AC@ACPAC TTZZoneGroup И H 1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC0TFPGListEnumerator 0H `  eP3C4CP6C9C9C:C9C7C8C0AC@ACPACPePi,TFPGObjectList    1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTTZLink8   1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC+TFPGListEnumerator 0H   eP3C4CP6C9C9C:C9C7C8C0AC@ACPAC eP Pi'TFPGObjectList   @  1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTTZLineIterate@ 5  1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX TTZException( ؉ @h H `  PAsciiCharH TParseSequence TTzParseRule TTzParseZone TTzParseLinkTTzParseFinishuPascalTZ_Types   џ ޟ  џ ޟ   ` TTZMonth TTZDay TTZHourР  TTZMinute;  TTZSecond;  TTZWeekDay eTZSunday eTZMonday eTZTuesday eTZWednesday eTZThursday eTZFriday eTZSaturdayuPascalTZ_Types0  W  M y a l  M W a l y     TTZTimeForm tztfWallClock tztfStandard tztfUniversaluPascalTZ_Types`   ~  ~     TTZDateTime  TTZDateTime @P   TTZRule 8 TTZRuleȊ uPascalTZ_TypesP  TFPGListEnumerator$1$crcDD97C1D2  TFPGListEnumerator$1$crcDD97C1D2 uPascalTZ_Typesؤ  TCompareFunc Item1 Item2( PT p  PTypeList  TFPGObjectList$1$crcDD97C1D2 TFPGObjectList$1$crcDD97C1D2 0uPascalTZ_Types  TTZRuleGroup@  TTZRuleGroupЍ uPascalTZ_Types  TFPGListEnumerator$1$crc592EEDC8Ȧ  TFPGListEnumerator$1$crc592EEDC8 uPascalTZ_Types  TCompareFunc Item1 Item2h PT   PTypeList ȧ TFPGObjectList$1$crc592EEDC8 TFPGObjectList$1$crc592EEDC8ȏ 0uPascalTZ_Types0 TTZDateListItem TTZDateListItem uPascalTZ_Types  TFPGListEnumerator$1$crc9CB4B9F3  TFPGListEnumerator$1$crc9CB4B9F3ؑ uPascalTZ_TypesP  TCompareFunc Item1 Item2 PT   PTypeList  TFPGObjectList$1$crc9CB4B9F3 TFPGObjectList$1$crc9CB4B9F3 0uPascalTZ_Typesh TTZDateListHelper TTZDateListHelper uPascalTZ_Types  88  X h TTZZone( TTZZone uPascalTZ_Types  TFPGListEnumerator$1$crc3320C62A8  TFPGListEnumerator$1$crc3320C62A uPascalTZ_Types  TCompareFunc 0 Item1 0 Item2ج PT0   PTypeList0 8 TFPGObjectList$1$crc3320C62AX TFPGObjectList$1$crc3320C62A 0uPascalTZ_Types TTZZoneListHelper TTZZoneListHelper uPascalTZ_Types0  TTZZoneGroupp  TTZZoneGroup uPascalTZ_Types  TFPGListEnumerator$1$crc2B40FB88  TFPGListEnumerator$1$crc2B40FB88 uPascalTZ_TypesH  TCompareFunc Item1 Item2 PT   PTypeList  TFPGObjectList$1$crc2B40FB88 TFPGObjectList$1$crc2B40FB88 0uPascalTZ_Types` TTZLink TTZLink8 uPascalTZ_Types  TFPGListEnumerator$1$crcDA0A7D5F@  TFPGListEnumerator$1$crcDA0A7D5F uPascalTZ_Types  TCompareFunc 8 Item1 8 Item2 PT8 (  PTypeList8 @ TFPGObjectList$1$crcDA0A7D5F` TFPGObjectList$1$crcDA0A7D5F 0uPascalTZ_Types TTZLineIterate TTZLineIterate@ uPascalTZ_Types@  TTZException  TTZException( uPascalTZ_Types  @` `   h`bȶ  ض 0]P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTTTTTTЅTTTTT TTTT T0`TTTTPP@_0Ppp@`PP TAsyncProcess  TAsyncProcess  TAsyncProcess b AsyncProcessHH0 OnReadDataXX0 OnTerminate 0؁    bP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T```TTTT tAboutBoxȷ h؁X ` h P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T|`TTTTTAboutPlaySound X`ap  P3C4CP6C9C9C:C9C7C8C0AC@ACPAC@0w wн`!0įǯpȯPȯpȯ ϯϯ@կ0دׯPددٯ گگ0ۯ!@ܯܯ@ݯpޯޯTAboutPropertyEditorx  TLicenseTypeabNoneabGPLabLGPLabMIT abModifiedGPL abProprietryaboutplaysound   ý ɽ  ׽     ý ɽ ׽ X    Ⱦ    (  X          H  x      tAboutBoxp  tAboutBoxȷ @aboutplaysoundhv4 BackGroundpp0BackgroundResourceNamexv4 Description0c4Title0Height0Width0w4Font 0BackGroundColor  0StretchBackground 0Version 0 Authorname 0 Organisation0 AuthorEmail0 ComponentName 0 LicenseType TAboutPlaySound TAboutPlaySound @aboutplaysound ``0About` TAboutPropertyEditor TAboutPropertyEditorx aboutplaysound  X  h             @ `   ("`@@ĖGX88bMЖ4 X$ З P#1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACCCCTVSOP   Ȃ#1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TVSOPEarth   0#1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACPИ@ TVSOPJupiter rh¾@^I ]@o]9M@=WX @d;O @MjH&@=WX @Q @c=Y@ wȗ@n @(A?c>˳ @V- @"$.2@mTlZ @A`"3@Y#1V~@c>˳ @"~j@9ۜ @mTlZ @Gz@J |M@.j @ףp= c@΄u˼@`C%= @m@l^C%#?dm @'1Zd@E u?6u$) @Mbخ@j-@"ntB @Mb0@,&!,Xy@oR?/: @MbX9@9Y-.@XBL* @Pn@dij@-P @Q@Gkná@U9v @nʡ@]%/?^6 @rh|@l^/@mTlZ @ffffff@ 8̪?AD +:@Cl@0?8l@MbX9@a#)@!}tl@tV΁@F 8셋?J.O؆ @K7@NF#"H@c$ @Dl@#bt޴+@y Y@\(\@v]vZ@ ˲ @&1ڻ@ a@FZFvr@Zd;ߛ@1-@$  @w/ݤ@] f0@> w @ףp= ף@Ee[? @h|?5^@MW6?c$ @S㥛@Tu绅?.@oʡń@穕G?˓,g @zG@fgv@#碏 @ʡE@JQIR?t @(\@_U<\?Ĵ @+ӓ@^l}*՜@^6 @S%@I?.j @3333333@yؒ@`C%= @S㥛@b/?W@~ @V-@t'*a?.@MbX@&z?5 @nʢ@P@A󾋥" @-K@h旳@ @lҰ@s$?XBL* @}?5^I @,dn;@> @Cl@c;f{?mo" @'1Zd@i%i܍@9f$ @Q@5 Oi@ْ @On@Ŧ??@h @/$@,*ʃ_@ϧj @Cl@f'|N?>xϛW@S㥒@ެ"9@oR?/: @K7A@]O@> @MbX9@.ϥ.$?Zh @X9v@̟{æ@.j @S㥟@Uݿp@XBL* @MbX9@Tr#?(q֓ @}?5^I @pK @ϘĿa8 @~jt@n%|kA@, @-@TcDS ?Oim @S@s|@?t @x&@;Kan@v @K7A@d*@;.%1Ѯ @NbX9@#E?)ˋ @Dl@j2U@jT?"t@RQ@ 踴@LY @A`"@0gJ @Oim @Cl@Xb|.?c>˳ @Gz@U py4I@NbMN @/$C@;8ߘi@(Ò @#~jt@,!`@lQ3 @MbX9@5:@px3T@#~jt@*Yh?YE@Z @;On@Bh+J?Wg5 @}?5^I @*e-@' @~jt@^@}ҟ2 @ףp= ף@|A>ւ?%ε(@ @S㥛@V*х@jdZ]$ @@.#@ƥ@`"~@5/xi+@33+ @d;On@}Ƚ@6i~" @NbX9Ȫ@4'g/@mTlZ @S@5q z? @K7A@AJK@8l @bX9v@ %i?U9v @%Cl@_)?A @X9v@>T;@VZWY @p= ףp@@VQz) @Pn@JE @A󾋥" @oʡE@LJ@9@}˲mY @5^I +@S{C@3x @ rh@M\@\ ɔ @5^I +@Hw@!r> @Zd;O@ Q? m91%Y @(\@2X[?|D}b@+S@WH4@n @+S@ @=uE# @`"~@J?dm @oʡE@#eꢘ@=WX @K7@,@f@/$C@r7+s١@=h3 @Zd;O@OĮ?J A}X @h|?5^@&i?% @1Zd;@>L@@-D @$C@_ݛ}?}#+@Cl@3)_K?Yq*i @\(\@5J"/@L{@~jt@O<@(hOإ @tV?`ID@-j5^@;On@*f@|}Z @Zd;?䫓e?W: @Q@-cMJ? @p= ףp?+ׯ6@~ @}?5^I @@DAx0?Xfg@(\(?aCKы@B1ڽ\@GzG?M䝥b@PĠ @On?#7?@⃑ @A`"ۉ@s($9@lh @'1Zd?Z;آ@. @rh|??zV@ӹv @sh|?5?إ}?엃lg @7A`"?f?ϘĿa8 @uV-?v ț@vc @K7A?j(,I@Y%Lk@A`"?EZ1@@V. @ rh?Qt`ƺ@};~q= @~jt?:M[(k@5yG @y&1?;|?Ĵ@p= ףp?đ~c?zA @~jt?TmOs@TVzp @?5^I ?׺OC<@d!b @d;On?^D"?]hA7(& @I +?k@4 @q= ףp=?I?Q9bz@K7A`?(c @1(¼ @On?_L@%QB @mM?M'?mj% @A`"ۉ?s}@9XCц @V-?No?W4@7A`"? k"M i?2*b@MbX9?`g3y@:{@HzG?]j^v@J^5 @nʡ?CkSuw@EC @A`"ۙ? }%@Uqd@X9v?0w$@,aN @oʡE?~ eÀ@P @X9v?m@ 9Tg @ ףp= ׃?5d_2@uĄL@nʁ?M(@;,NaX @Gz?oYW=?#碏 @Zd;O?)͍@ws>V @"~j?B[mߩ@'"N@7A`"?yF@jCmz @MbX9?6LJ?;:> @v/?t .l@ z*N@V-?M;P̖(@iL @d;On?j5 5@%! @Q?GdI}Ϲ@'uv @S㥛 ?t@@c$ @oʡE?!5@ s` @~jt?;@PG'< @-K?[E Kѯ@Jw@' @-?ڸ? ~qA @x&?Vgs@5~}(U @Mb?N[G<_@ ^HG @nʡ?PtÁ@D\>} @oʡE?Qy[ů@$K @x&1?Sl:V?r{ #= @ףp= ף?]\l8,@uĄL@X9v?=3I @9f$ @V-?! _@~ @= ףp= ? *S_ @|*Nٽ @x&?2ӝ?S>. @3333333?nXJ?-@Q-@A`"۹?/plC˭?; J @Zd;O?״#@Y0Ν @w/$?b '??Nu @}?5^I ?F w @}?5^I ?j;<@(0@~jt? | W@$(2@㥛 r?2a@E"m‘ @h|?5^? SYN@PKQ@S㥛 ?Y x?-P @|?5^I?_ud@l, ʆ @On?tg? ϼ>sg @ rh?DV>N|??r @NbX9?7T?ʽ @x&1??@q @Cl?XTci@?v^z@Zd;O?p @弸S @S㥛 ?Q@/'?$&`窃J @}?5^I ?7 K@F| @fffffff?v+#@#}kZ @?ɢb@QHo̘ @S?{q0?`wȗ@jtV?)=q0u@FZFvr @bX9v?Ժs@$  @Cl?5vFK @Xy @Zd;?C@Gc @QQ?S& @i@ʅ@x&?-;Yrϓ@lh @n?jֺ@?t @Q?+=@AaÏI @T㥛 ?%K@`_T䱚 @(\µ?~46?& @S㥛 ?)r(@@1 @\(\?ַ%@ƕxu @v/?6wx? G @K7?E|e4@@V. @$C?b[_{@vFœʶ @GzG? ?E$k` @L7A`Т?,M)@g) @K7A`?Sx?)! @sh|?5?YOꖬ@"-J4@y&1?H9@!Ɂw @+??=ֽ@Nx޹@ˡEԸ?IzJ~@4w @#~jt?Q>,?A^ @lҍ?+EeYm %@lh @%Cl?⧢&@͓@ @-Ƌ?8[F?]˴ @MbX9?:%yk^@ƕxu @V-?1X\3ſ@x+ @ףp= ף? d1@B;U@K7?\Qt@ @9v?:kC@9*aĪ @nʡ?Om1@e @ʡE?鋼4@y[p @B`"?g {良@_@x&1?t\ s@)]; @(\(?G ? r @+S?OfA@# F@jt?q>*@QA7G @q= ףp=?cSk@@prۘ! @sh|?5?@?AOY @Dl?pE:?S? @1Zd;? g;@? @Q?LxѦ@L22 @-?.aO>a?? ' @Q?45@hdx @K7A?I4]\^?[<&Kv @l??1i?;.%1Ѯ @+?(dP@kR$; @|?5^?S;e@@\(\?H ?W; @ʡE?"xB@(Ò@w/$?/'U@V?k@= ףp= ?ڷ3@7#gu @|?5^? 写@y) @/$?,_'@mێp@nʡ?sD?,@K7?Y3jE@ i}@p= ףp?gw@m8Q @ rh?> $@>U5{t @Q?]2jj@L }3@/$?qjN@SE @+S?V4@.j @QQ?v@0X @K7A?!uj?P͞ @㥛 r?*$?1 @x&1?C 5?ϧj @nʡ?_F?'sTx @S㥛Ġ?;dŢFF@+9 @+?kKRaJ@Tu @ ףp= ף?S!2ⷳ@R_Y @Cl?NcǤ?kL#$ @jt?oX6@H% @3333333?e]RӇ@qd@x&?t-H@SV @S㥛Ġ?]4@GhA7(& @S㥛Ġ?g-@+4͉od @/$?}4vy@HDjZ @(\?r+lk@e2/* @X9v? v?NbMN @K7?#uG@F@/$?{AQ@KıK @!rh|?u 朜?3 @uV-?,+N,n.?(q֓ @|?5^I?[?x;DX @|?5^I?D\|@q#m@Zd;O?H5op?*6 @V-?n]p@`l ܮ @/$?eM@R:˷ @v/ݤ?piEҊ?Zh @w/$?8xw0@b~; @x&1? C@<T$L @X9v?[’K@5qW @5^I +?#o\@>o @~jt?0?*l?.%̜ @}?5^I ?;<?4[Wߜ @Zd;O?ͧ"w@  @d;On?U<ӷ@h @S㥛 ?P=zMg?Zҝ(@/$C?7J6@F3< @{Gz?< l@t@ʡE?: A?v"~f @/$C??;=I@ȩ~v @(\? ɟ@ ';%I@Cl? o9@/Mdl, @V-?$vS?5Ϫb( @~jt?jx@ ܰ)4 @x&1?s|?]m@;On?reAH?5/@L7A`Т? g9j@n:@Q?x6@5Ќ @|?5^I?#Aq?/?jVX @+S?1A <?t>v @%Cl?ve YP@oxྫ @1Zd;?G(^x@G  @A`"?8. ?ؓXL0O @ʡE?=f@|MmI @#~jt?e~@Jw@' @|?5^I?R>y?@K"Ts @7A`"?hcg@5=Y @K7?) !?*v ܚ @Dl?c@ѫԈ @1Zd;?m\?ws>V @~jt?-f,8@#ͷ8c @A`"?bL@?Z?< @7A`"?{7@-{7a@7A`"?;?qasGdԗ@d;On??`,W @d;On?Kʢ?x{ @7A`"?dhc@ -n @Pn?z@?b @GzG? kȿ$?1Eʺ< @ʡE?@BB@8l @MbX9?u{ӥQ@Ԥ[ @%Cl?#; `?y<`@ʡE?1@q(~i @GzG?K^n@ʋ!m@K7A`?L?jg@F`SP@V-?2J@6vF @(\?(0(m?/L. @On?Mnr"@]Ky @V-?Ѫ^U@J.O؆@MbX9?v좞Z)??b @V-?MUTD@N @V-?ȍ@Q@\(\?]ӫ@+@-Jʄ @+S?#L$zs@hτ @QQ?dڗE@ @Pn? ?d^ۗ @/$?MH'0@V->@bX9v?KUa?ջȖ @ʡE? 7ǂ=P@tq*@Pn?:Sx@1KQ @"~j?T[ @K7A`?)I{@-N @?፝? ^6 @ rh?nB:?gw1@S㥛?^:L?P_I@h|?5^?Y?*i7"c@?$dHN@3 @V-?z@A @/$C?,ۯn&S?vR&% @?mN쯄@7`$ @Zd;O?,|di?A @V-?q?ޱ? @S?>X@ Ց1@K7?Vr@Aõ @ rh?44@|* _ @S?h$\?1N-@Cl?hQua_@[Eڼ @/$?Jb& ֔@_(]9 @Q?D(=k@% @Q?O~@?Z?< @;On?[K<9z@ 2ˤ @;On?= *?O @ ףp= ף?ڈ@!ߥE: @5^I +?O⪉@='7V@ʡE?_-O@`6%ph @(\?imV@|y^h @Zd;O?r}?`PpW @/$C?˪@M(~ @X9v?CӚO?> @/$?ڍѺ?Pw @/$?+Ap@B;a @X9v?D^&›?`B @Cl?&D@JPǵ{@)\(\?2K@9*uR @/$?v?k{ @#~jt?.Ec@/e @Cl?rZ@&U @Cl?7 ?/Wzz@v/?pRYo@U9v @Ex?^+t@9XCц@Zd;O?Y:-? "(н @I +?L|Ac@a> @GzG?XRU@N}i_@/$?0QE@X%Y @/$?jX@Vڳ @/$C?)5lb?t@P @(\?k v?@4C @#~jt?nн@,Ol}˩ @A`"?Jk@uJ}H@/$?)=C@a¦ @ʡE?7?Ro@\-uɋ @Cl?0"?t0>A@Cl?jзd @1i+ Z @MbX9?ɃD ?`oJ @Q?w03S@ @Zd;O?~F3@dڌL~@Ex?{j¯@B$p@I +? ?1N-@A`"? =I@jdZ]$@MbX9?|(@tu\ @GzG?EY?UF#ɟ @?eLZFL?AO@S㥛?|;@Y @ rh?xp~M@KƄ@Q?|dYD?!'?c@K7A`?66і@\@ʡE?B%yd@̫ty @I +?ީR倱?&jʗ@I +?>}?bBǗ@On?nd?Fe6@I +?J@͒@ g烵 @S㥛? K׶-@y@3,|g[ @ʡE?bC(E@4@I +? VX?@On?`@h@ʡE?`%@yB>; @S㥛?O?Oim @QQ?n qK@l/ @On?Ç!cP@Pͭ @ʡE? }w@S7g-=K@A`"?_v@6L @MbX9?`tE@A󾋥" @"~j? H?`@)Q3 @On?>?@a/p @"~j?D Ȭr@g9 @QQ??҈?5/@On?o2@33+ @MbX9? _ @SeG@K7A`?xn j?J^5 @S㥛 ?\P?i? ݓ@V-?R_p_@&ÀBi @QQ?S-hh@?8@On?Z?}# @ rh?$X/y@D @?KE@ײu @V-?/K4? T}f= @On?n9>@@[4ޓ2 @V-?%^^@ ^HG @On?hH@K=9 @x&1?i<`a[ @uĄL@K7A`? rq?^.- @ ףp= ף?V Uؖ@ @S㥛 ?6<2J@Dװ @v/? W|bߥ@(.n @v/?鳷Y?%w{1@GzG?|^ל?+`@X9v?v_ ']x?p xSUښ @ ףp= ף?Oݑ|?e夢S @X9v?F+ @ @x&1?JD )7@ + @On?gbsN@'(i|n4 @X9v?ׯB+?**I|V @x&1?\ed@ȑC @S㥛?|z?[j,@#~jt?^d @&Ai @S㥛 ?l|Pl@HZ(܄ @#~jt?G P/@RE}T @x&1?evm@0:7v @ ףp= ף?γ@CRh @ ףp= ף?^2 @q; @?@JVe @c5ëq@M5@?;8?=WX @V-' @pᤁi??=WX @(\@Nw!@Mb@7 LƂ?"ntB @'1Zd@ ԝ@dm @S㥛@0ר?`C%= @HzG@1_IaO?XBL* @rh|?@ }=@-P @w/$@5&?U9v @bX9v@5tQѵ? ˲ @sh|?5@Eqg??c$ @Q@)Cr@t @ rh@6u@8l@ףp= ף@*͛?$  @ +@\@c$ @@rd=AqE@.@3333333@eGȊ?> w @x&@$t{P?!}tl@Cl@ܥ ?y Y@w/$@$p,O@A󾋥" @`"~@W0@FZFvr@1Zd;@'.l@`C%= @GzG@çlj?.@v/݌@bT_x@mo" @Cl@M~j?ϧj @nʡ@X{@> @#~jt@w#R<@lQ3 @-K?@+:5 @~ @#~jt@,,@(q֓ @p= ףp?Zו?> @@;x&@˓,g @ʡE@U*??t @㥛 r?V= ? @lҽ?Ng9@YE@Z @On?L(D@5ʮ>@XBL* @"~j?*N"?)ˋ @On? ]@}ҟ2 @7A`"?5@VQz) @3333333?w(`@ @tV?x@33+ @?_I@ْ @(\(?nn"@NbMN @V-淪?Y@Zh @ rh?i@A󾋥" @ʡE?NJauϴ@A @Cl?wDHz?;:> @ rh?,lR繾@9f$ @A`"ۉ?{@ @`"~?C9!?h @On?C|-?LY @Dl?xqPݳ@ϘĿa8 @A`"?'E7?Y%Lk@Zd;O?`0]@-j5^@'1Zd?ٸ~S?c>˳ @bX9v?"48t?8l @S㥛 ?pd?Oim @Ex?yyc@~ @v/ݤ?@%Φ;@1(¼ @K7A?{?}˲mY @= ףp= ?PO&C@6i~" @\(\?@+o-?⃑ @fffffff?O"?=WX @ rh?#TG@U9v @x&1?ďdظ@Oim @x&1?#Uv@. @V-阮?SKS`?;.%1Ѯ @HzG?&﮿ݼ@d!b @"~j?_r?v @~jt?x-3F@엃lg @S㥛?R[k_L@jdZ]$ @MbX9? t2@3x @MbX?4qZY@D\>} @ʡE?$[-@PĠ @|?5^?\N@Uqd@l?Lu@mTlZ @ rh?澰@c>˳ @Cl?_9@vc @QQ?{fe@W: @$C?;f@oR?/: @Ex?myRDv?jT?"t@/$?V1;S@};~q= @;On?3/9@@\ ɔ @&1Z?[0Qȣ?=uE# @h|?5^?e>)3Ŋ?XBL* @^I +?M(2 @%ε(@ @zGz?H?n @|?5^I?p@|D}b@w/$?M*R@c$ @ˡE?f0&U=z@;:> @T㥛 ?4j}?i@ʅ@̌?$@.j @\(\?:%Q@(hOإ @v/?҄LJ@@V. @v/?hBv@uĄL@MbX9?lIZ?A- @Pn?wN3'r7@Yq*i @7A`"?m$@TVzp @I +?zUF@'uv @"~j? @Cl? ўE Ӳ@^6 @!rh|??\@?Nu @"~j?5eY@J A}X @Q?ʳ@ s` @Fx?vC"1<@=h3 @S㥛 ??mTlZ @(\(?#e2??t @tV?5@0hQ @S㥛?X2?QHo̘ @h|?5^?y+R6@l, ʆ @~jt?z!7?L{@Fx?d|KK@kV @bX9v?礼j^@dm @K7?TG?:{@Mb?8kzYK@ ^HG @nʡ?I|X@]6ݚ^ @x&1?Vi4!@Xfg@Fx?,;@Q9bz@uV-?bmv<-W?Q-@Mb??4 @ʡE?:%@]hA7(& @?a@9@ z7 @}?5^I ??1B? @ +?x'M3@B1ڽ\@(\?A@!Ɂw @V-?垉x@Jf @A`"?taI邳@m8Q @S㥛Ġ?ru^wV@iL @~jt?7ن@5~}(U @ rh?hG?vFœʶ @Cl?sc?PG'< @+S?<@?J^5 @Cl?vz}ٮg @P @?D.A/h@ϘĿa8 @I +?͗?g@& @ʡE?[~@ӹv @ +?ʹ?E"m‘ @ʡE?f}ǚ@uĄL@GzG?48'ٸ@~ @? @Xy @V-? ѭ@zA @GzG?D&@ʽ @MbX9?CB-2?>o @MbX9?Z1%M@)! @\(\?:t;@kL#$ @MbX9?-<'R?lh @MbX9?0@xçs @"~j?.5-$@@9f$ @S㥛?:(]6@NbMN @S?]6 ?ws>V @S㥛 ?SC @#}kZ @S㥛?*۞X[D@W4@h|?5^?Z%@#碏 @S㥛?˛4Ag? @S?S%L? ~qA @?&L66@; J @Zd;O?RDg@9XCц @MbX9?n?.j @5^I +?X@L }3@/$C?b_o@J.O؆ @x&1?k=?(q֓ @MbX9?-%y^@@V. @A`"?| D0^@r{ #= @(\?[ti9$@jCmz @V-?NR [&@$  @nʡ?W u?y) @X9v?)gg݂@ ܰ)4 @Ex?i@@ @(\?>;su?|MmI @K7A`?[UN?mTlZ @GzG?I??,aN @A`"?jjǽ@q(~i @GzG?Au@A^ @K7?vm@;,NaX @v/?J@g) @Zd;O?AhW?9*aĪ @I +?t-@ϧj @;On?h;@|* _ @K7?ETϵW?EC @K7A`?Q}I*@Aõ @Ex?s -[b@/L. @K7A`?ѣso@ r @Cl?SM%@*v ܚ @ rh?g-;0,@2*b@MbX9?g[8A?)Q3 @S㥛?{|Ȭ@+4͉od @;On?뵽Eh? 9Tg @"~j?@pD@?"U@t@ @QQ?8o>@$K @On?f5??Z?< @QQ?ss:9?S?@S㥛 ?]W?/Mdl, @S㥛 ?9]EƷ@S>. @MbX9?Yܱ@R_Y @K7A`?U[ @"~j?Ȉ:?s @MbX9?6 'b?AOY @QQ?_G+H?+9 @I +?V)?)]; @V-?38sg @(\?N->&@"= @;On?@_@ws>V @K7A`?+%?5yG @K7A`?xL@ @ rh?Urn?Y @5^I +?^LlM@]Ky @v/?Զ&Yǎ@>U5{t @(\?r+]@=h3@v/?ř?_{P> @ʡE?3@5Ϫb( @)\(\?=1bܐ@B;U@v/?C1r_t7@KıK @ʡE?fXf&K??b @)\(\?F%|,@3 @?PElX@kR$; @ʡE?0B@ ' @ʡE?2Bh @ G @ rh?36M؄@/٪D@ʡE?Bob:@Dװ @v/?}>Tu=@O @?mFl$y(@Tu @v/?mjο?3 @ rh?Z@1Eʺ< @ʡE?ޔ@t@P @S㥛?:@tu\ @S㥛?ʛ.@Cp @?f͘U"@|w @?J=\s۪@Vb, @v/?QH{A|@(r @"~j?l:?k{ @ʡE?+`ӫ?> w @S㥛?Y?`_T䱚 @?H!v!@0X @MbX9?d?+@-Jʄ @MbX9?j@y[p @ rh? @)ˋ @MbX9?#|>Ȃ?AU @MbX9?KY<9@-_ @x&1?Gc @̫ty @x&1?£=@S? @x&1?k^*,@~:9{7 @v/?$_h@gw1@K7A`?aDZY@%<+@ @ ףp= ף?$] s?_@MbX9?oĢD@Oim @S㥛?j}v??v^z@S㥛?ʟ @Ĵ @S㥛?0w@ U[;B @?2eV0? -n @S㥛?nOyۖ@-{7a@S㥛?[ @qasGdԗ@ ףp= ף?%ˆi@*i7"c@Gz; @h @=WX @jtD@]}5/@=WX @#~jt@Nw!@x&1@}-@ wȗ@}?5^I @j:(N?6u$) @/$C@ ӆ @"ntB @|?5^I?D<^@dm @Cl?K!@`C%= @X9v?݁J@XBL* @tV?rf\!ߵ@AD +:@S? &@FZFvr@Cl?7ҙ?lQ3 @!rh|?^kS@t @/$?\4J?-P @l?5Ϗ @c$ @ʡE?I ?U9v @9v?d /@˓,g @`"~?(X@>xϛW@S㥛?^"@@.@x&1?IL@VQz) @J +َ?Tp?$  @Q?[d 2+I?A󾋥" @x&1?yb@y Y@&1Z? OL@XBL* @ʡE?1E'?W@Y%Lk@jt?C-/@(q֓ @`"~?ePmO@YE@Z @Mb? dS?> @l?]z$@ @Gz?c؜@8l@K7?M^GZ(@?t @h|?5^?|@1(¼ @-K?>^T@A󾋥" @bX9v?zc/?XBL* @{Gz?)Cy@> w @Cl?h.ek?ϧj @nʡ?{I?c$ @|?5^?}"@NbMN @(\?z{H@!}tl@7A`"?b~yĀ@)ˋ @)\(\?k]'`?`C%= @X9v?J?D\>} @/$C?ӯ-U?> @}?5^I ?*@-j5^@/$?}ۇz瘨@5˳ @I +?~2l ?px3T@On?@Oim @Zd;O? rpb(?c$ @)\(\?oG_/"@}˲mY @/$C?'LpAM@>o @)\(\?fA+䇫@4 @/$C?S{`Q@y) @5^I +?yn@@Jf @S㥛 ?ґMp@};~q= @x&1?ΆӢ@dm @ ףp= ף?:P? s` @x&1? f2@'"N@ rh?J{7@LY @ rh?;ԛ?v @(\?ʗ&Q˳ @MbX9?J::,M?h @?"Ԝ#<@ ܰ)4 @ ףp= ף?6s:z&P?ْ @x&1? DY<X@~ @x&1?%lw4? ~qA @?,-;ZG?P @v/?m@?t @MbX9?^^"<`?|MmI @x&1?%lH@Q-@S㥛?Yh9/?ϧj @"~j?E,M@NbMN @MbX9?_!&@> w @"~j?t @9*aĪ @"~j?PRO-(&@J.O؆ @"~j?e@(0@;On?R7'o@*v ܚ @/$C?u6J@Xfg@;On?A$@kL#$ @;On?tc@ m91%Y @ ףp= ף?kځg@B1ڽ\@(\?[- @;:> @;On?-d@jdZ]$ @;On?Jꙗ}@.j @(\?97@PG'< @;On?+/@J A}X @K7A`?fQwDM@; J @K7A`?(Ce@ z7 @K7A`?GNm@xçs @S㥛?/ D?=h3 @MbX9?7z?=uE# @MbX9?c$A?(hOإ @K7A`?m\ @2Q'*8@MbX9?t^@oR?/: @MbX9?325&ç?6i~" @#~jt?Hn@ӹv @#~jt?P"3@$K @#~jt?ZF@uĄL@RQ@xߡ@=WX @+S@>w@=WX @w/$? rh?f^{@"ntB @#~jt?*7@@t @5^I +?Yʻ@D\>} @S㥛?ֶI@lQ3 @;On?\R@>o @;On?[[MD@ϘĿa8 @K7A`?bC(L@=WX @MbX9?.W@> @MbX9?]@ %@1(¼ @ ףp= ף?mdew@!}tl@#~jt?>%:?dm @MbX9?v`?XBL* @ ףp= ף? $NQa@y Y@#~jt?g9Ќ ?5} @S㥛?vI+@>xϛW@S㥛?y3?t @S㥛 ?|K??=WX @S㥛?gP?=WX @;On?~u?"ntB @\(\ϋ@p @`AT@K7I@=Ё@dm @ףp= @c~ZT@`C%= @MbX9@p@> @bX9v@ )@XBL* @nʵ@''@JKW @7A`"@#NJ!@;:> @S㥛 @Y^Cz@=WX @I +@g@> w @v/@̝`P@9f$ @V-@V?ī@ @fffffff@5|@mo" @%Cl@zj_GF@$  @Zd;ߥ@c-ρ@2 =pڊ@fffffff@O=@c>˳ @A`"ۅ@SŸ@˓,g @Ex@TP @V-罹@P_f@=h3 @ rh@@#zzV@XBL* @^I +@{_ @mTlZ @-Ɨ@i?.j @nʡ@:1 ?Oim @jtV@@?U9v @B`"@;y@Zh @/$@W8?XBL* @HzG@iw:}s@^6 @!rh|@qT|D|@mTlZ @HzG@ 5@M^! @Pn@jPĚ1?-P @?5^I @xV\@oR?/: @S㥛 @(-{F?vc @"~j@yX@8l @-ƫ@la֨?$K @'1Zd@&&z@ *i>q@Gz@!4҉@}˲mY @㥛 r@`mPV@&d@Mb?u^@Oim @bX9v@jOM@ @Cl?raDz?n @uV-?$bis6Ͱ?.@h|?5^?v)@c$ @S?up}+@c$ @(\(?)V,?jdZ]$ @}?5^I ?BYhwc@\ ɔ @v/?"t[@S? @ rh?ؘ @c>˳ @MbX9?g4}ߞ@PTlΘ@%Cl?]b"?FZFvr@Zd;O??@@V. @bX9v?-'Z᠉@]hA7(& @$C?&8 @6i~" @ʡE?& Z?~ @ rh?ܐ'z!@W: @Dl?#mB?`C%= @q= ףp=?޽rAc?dm @ʡE?٘}w?h @ʡE?Nw!@?R>bf鷇@t@P @GzG?x?I]@!r> @NbX9ȶ?ߍ!{?A󾋥" @rh|??m?ϧj @B`"?MwRI5?.@Zd;O?Ibv@.j @K7A?6_?(hOإ @y&1?..G1@ac5)@Mb?$}M@iL @Zd;O?o@(q֓ @Gz?xnDb@#碏 @S㥛Ā?`Z3B@gw1@-K?N湷N?jT?"t@K7A?w`_?ϘĿa8 @~jt?M-@=WX @/$?P@)ˋ @Zd;O?SHテ?gg$@X9v?KYr(@uĄL@J +?O ?mTlZ @S㥛Ā?*Wt@⃑ @/$?f?~ @HzG?8Pv)sS?v @A`"۹?(KkdR?jCmz @"~j?݂>k@YE@Z @zGz?]? ^HG @w/$?FS@4 @B`"?38#@xçs @ˡEԸ?z@]6ݚ^ @jt?1:z|@'uv @Pn?xMWSϜ?lQ3 @v/ݤ?e9l?;,NaX @ rh?;&Ո@5~}(U @}?5^I ?:{3]z?EC @ ףp= ף?¼yL]C@ÊVՕ @K7A?)/0;@NbMN @/$?Ԯ?.j @(\(?;F.?\@/$?S'!8 @uĄL@Gz?}VP@VQz) @?&p,@@V. @x&1?XE@Wg5 @V-阮?6:Qj@zA @x&1?"F)@?t @Cl?l>@;.%1Ѯ @nʡ?$Y5?j"^@v/?$1K@vFœʶ @Q?<g*?1Eʺ< @Zd;O?饈@9f$ @?@Xy @lҍ?P;@^@jt?E|nI@U9v @-?3|"[㨡@& @;On?J0@Ĵ @= ףp= ?ǜ}b8@ ~qA @MbX?1 &@A󾋥" @B`"?.o%(? –@jt?ڒ{{*@ْ @fffffff?ڽleļ@> w @/$?:XFH?@̔7Z @S㥛 ?74K4@A^ @h|?5^? X O@h @On?Vyȹ@Ď@V-?-C@; J @ ףp= ף?,i@Gc @RQ?t;H?R_Y @q= ףp=?V:ҤA?)]; @oʡE?ssMp@oR?/: @Cl?D&D?,aN @A`"?|^ @"ntB @/$?P?q}韖?x0AH @ rh?J@(o9@ rh?$Iqr@+4͉od @|?5^I?hIH&_@^6 @/$C?i?@v"~f @GzG?Irb)@q @^I +?ِnG@x+ @v/?:˃g}@Q-@Zd;O?F3?bT=y|@ʡE?c=3Uy@Mg@GzG?$@q#m@I +?W ,~@% @jtV?pa@AaÏI @Cl?K@8@V-? uJK@;ek=,@}?5^I ? ?Fޗ@*ak@(\? 75d?y[p @(\?``.g@ws>V @Q?K@@-D @Pn?x`&@?Pͭ @V-?8j?3x @bX9v?qާ@J.O؆ @Pn?}Gܥ@y) @Cl?\8^? @ +?".YFUS@, @= ףp= ?,OS6?4?Ⰵ@uV-?1@#碏 @A`"?fXT@T@uV-?N=Ӆ@W @ʡE?8O@ @K7A`?|R' x@Yq*i @K7A`?3}S@6; @J +?Ql:)@=h3@On?5n#@50h @V-?4!%5@. @?@]~y@Zh @S㥛 ?1XCYT@[4ޓ2 @bX9v?,~L5@K"Ts @S㥛?#G@5yG @#~jt?* Ks?ϘĿa8 @V-?qw@};~q= @V-?A'$&?A- @?( X@g) @?+Ky@=uE# @uV-?YMX?mTlZ @V-?@V@d尧ؠ @S㥛?8w?}7s%ݟ @ rh?dUt @PG'< @;On?UU.)[@:~w)ԩ@K7A`? zm)R|@i 0@GzG?uA@ǟ1`@v/?ӹb@A#@X9v?Z/G:y=@ CA,@X9v?/ 1@hB@zGz@ˡ5m@dm @Cl@^}?`C%= @3333333@a0ϧ@> @K7A`@ iM@XBL* @~jt?;@)kf?=WX @Zd;߿?aU?;:> @S㥻?.-'g5@c>˳ @^I +?[A@> w @lҝ?Vx@9f$ @T㥛 ?-?mTlZ @'1Zd? ˂n? @p= ףp?L?mTlZ @"~j?^.IZ?@.j @w/$?T?@8l@uV-?QhG@XBL* @Fx?N_5?=h3 @h|?5^?G"4}n@Zh @bX9v?f\a@ ˲ @K7?W,y@oR?/: @v/ݤ?˳ @I +?w?,?$  @S㥛Ġ?yŌ?}˲mY @V-?Xѿ@U9v @#~jt?t&P0s@ *i>q@#~jt?@eѕ?&d@|?5^I?LM%]@⃑ @QQ?o:Xp*@˓,g @ +?L6޼@]hA7(& @?`Ha짭@'uv @~jt?eyf@jdZ]$ @Cl?dˬ@Oim @v/ݤ?u:@R2ҭZ @ +?U5H@Ĵ @ rh?@֥G@> @;On?d͖T[@S? @d;On?1Zd;?a@lQ3 @Pn?|0+)C@~ @Dl?}E!-1?#碏 @V-?4 ADY@n @nʡ?I 5j@8l @V-?3'5N@t@P @#~jt?I˞+?(hOإ @ rh?M@Oim @Zd;O?@\@/$?[ zt@W: @A`"?^||Ρ?gw1@On?qB΅@ϘĿa8 @On?,@h @MbX9?Bp@?>U5{t @Ex?#)? ~qA @K7A`?FOBZ@FZFvr@?x&m?^6 @On?Z27@9f$ @V-?4󂕴@dm @V-?^Ce@oR?/: @QQ?|@1Eʺ< @?E'[u'@Ď@Zd;O?#QPf@ac5)@Zd;O?.B=@=WX @"~j?'޲[8?4 @S㥛?a~^n@uĄL@#~jt?,@ m91%Y @#~jt?3.?J A}X @;On?,/@.j @V-?~pǛ@. @K7A`?3#F lgF@)ˋ @K7A`?W#7%@ْ @ʡE?Q4@*v ܚ @ʡE?x'f`@iL @ʡE?:0uC,?h @ʡE?.p@ӹv @5^I +? i?uĄL@ʡE?9 I@A^ @v/?7jm ?)]; @"~j?X4@"ntB @K7A`?R?kR$; @K7A`?:p^?Tu @K7A`?ߐU%@,aN @ʡE?'}|Ӟ@ ܰ)4 @ ףp= ף?T@]6ݚ^ @x&1?tOUڏ@YE@Z @x&1?^vA??.@MbX9?%ҡ@D\>} @ ףp= ף?5 Z4x@e @ ףp= ף?D-H^?; J @ ףp= ף?G_tX?@-D @"~j?UkB?`AT@Cl?J\zF|@JKW @S㥛 ?" @dm @~jt?!~JJ@`C%= @w/$?mMF_X?=WX @S㥛 ?f/IOp?mTlZ @QQ?4Ri?XBL* @QQ?/  ?> @oʡE?*ތ]&B@9f$ @?2|,?9̒d@ʡE??^X=? @Ex?=<@M^! @K7A`?anc7Y?c>˳ @K7A`?Ѳ5@mo" @/$C?-"*M?\ ɔ @S㥛?Jh ^ı@)]; @"~j?,T@PTlΘ@x&1?F?#碏 @#~jt?ڈ+gc@~ @S㥛?C1 ~ފ@ْ @/$C?@mbs?J A}X @#~jt?8K[<6@.j @/$C?V:z`@-P @/$C?yr?U9v @x&1?HS? @/$C?E@.@(\?yQP?oR?/: @/$C?ak? *i>q@(\?G5Z͕?uĄL@#~jt?[1a@c$ @/$C?Z[ ? m91%Y @ʡE?O#?=WX @S㥛?S=#?&d@S㥛?۴|c@W: @ʡE?;NU@y) @S㥛?k4M@@V. @(\?^@.@K7A`?S,j@$  @MbX9?B.?ϘĿa8 @MbX9?O8>@1(¼ @K7A`?[;v@Xy @MbX9?тCU%@*v ܚ @ ףp= ף?C$~@>o @K7A`??@ϧj @ ףp= ף?&Oĉ.a@> w @MbX9?)(@jT?"t@ ףp= ף?ӂnϤ@;.%1Ѯ @ʡE?̤.j? ܰ)4 @#~jt? 0$@)ˋ @MbX9?r]ތπ?mTlZ @#~jt?ϑ?dm @;On?5\?.j @;On?1o6@\ ɔ @K7A`?S @U9v @K7A`?KWP, @8l@;On??$5\@ϘĿa8 @;On?@c>˳ @S㥛?cmT? ˲ @S㥛?qrM٬@XBL* @K7A`?ƈ{@XBL* @;On?8+k?lQ3 @ ףp= ף?_&?JKW @ ףp= ף?t(-?`AT@S㥛?jC4 k@5} @㥛ZV9@a@#>j@=WX @fffffFN@\ @=WX @A`" @ q# @Q9bz@L7A` @|k%@c>˳ @tV @} +@ wȗ@rh|C @o`@mTlZ @ˡEj @< @S@mTlZ @Zd;O% @c=_@8l@MbX @f>ʓ?c>˳ @Qv@ [+@|D}b@MbX @7lV?XBL* @ʡEN@*f9 @.@M@?`C%= @@5 r@.j @/$I@G^#@dm @nʡ@ܮS@"ntB @Pn0@3:qh珆@FZFvr@ףp= S@iٰ3ٺ@tɭى?@N}H?.@\(\@df?U9v @A`"@!y-*+@oR?/: @ˡE@0 p8?-P @(\(@-rΙ@c$ @(\b@FTAK?6u$) @7A`B@,\yJ@^6 @h|?5^@ֱ?"-J4@jt@%wC?uĄL@/$C@лU@' w @bX9v@\KUwa@ @-@ƠZ@#碏 @{Gz@f_?;:> @ +N@TVv@5 @Pn@T +@Ĵ @K7A`@d X@ @-K@?٣?!}tl@mM@ @UF/?ϧj @Zd;O@Ql-@Oim @ʡE@O S@-j5^@Cl@7ZM?TAA@L7A`@bۙ@(q֓ @\(\@/ss@> @&1Z@o{`H{?h @S㥛 @9$E/Iʱ@Uqd@J +ً@\@_@fffffff@TO>>fQ@v @HzG@}I+[ʸ@XBL* @fffffff@pM ?Vo)@"~j@GO.@i@ʅ@́@J9Fɠ@.j @1Zd;@qԳzB@ϘĿa8 @ʡE@@oR?/: @9v@2"hP\@>xϛW@K7@3:3N@='7V@v/@iyW @Zh @v/@`6ӧ@2*b@Zd;O@mS?6i~" @K7@ A،@Oim @V-@}". ?)ˋ @}?5^I @ iֱ?h] ˻@+@d_0}@. @J +ٜ@+ p?;.%1Ѯ @Q@toH@A󾋥" @1Zd;@ d@lQ3 @}?5^I @#)S*s?$(2@1Zd;@&Tʙ?5/@V-@k:A?@=WX @{Gz@ 5@33+ @$C@ޘH}y*@YE@Z @~jt@xs6WI@V_@h|?5^@˽O?LY @ʡE@Z̟g@Wg5 @}?5^I @ެ@A @x&1@GC̗@!r> @ʡE@mh?V?k@ˡEԜ@.ϧ@, @Zd;@c_-Ck?}˲mY @+@ׂ2.@uĄL@S㥛Đ@CC濪Ǫ@VZWY @Q@ukJ@\ ɔ @/$@{@VQz) @fffffff@pɈ%5S@' @x&1@g:^/?D@c>˳ @}?5^I @9{9E?}ҟ2 @\(\@x@ m91%Y @I +@ڟq#sM@=h3 @jt@2mnd@1N-@;On@Z1٪X@$(2@K7@a!/@ i}@Mb@%VW@U9v @n@ ~)?F@@K;=J@jdZ]$ @Mb@̓)@ƥ@jt@쀾K9@3x @/$@,f5@Yq*i @V-茶@ܢ@(hOإ @9v@NH@1(¼ @Q@N0?}#+@ʡE@;Pe @엃lg @Zd;O@ bAJr @ @1Zd;@:W.(@:{@K7@t|{SR^?V @oʡE?GP@P @Ex?.>W?'uv @bX9v?JP@ 9Tg @K7?@߰^ @"~j?t0?PG'< @/$?Өuv~?+9 @㥛 r?Jjܒ@,aN @|?5^?3ie'@KrSi@RQ?w@jCmz @Zd;O@ -E?5yG @;On?Ӹ^?FZFvr @K7A`?E!?$K @oʡE?–fRO?L{@~jt@U^@%! @oʡE?30Q1? s` @|?5^I?^%@TVzp @ʡE?d픳k@;,NaX @|?5^I?Lbօ?%QB @~jt?c! @Jw@' @ rh?fR?@1 @Gz?zBt? x3?|?5^I?6V? ^HG @/$?۔ɳ@D\>} @rh|??5\)3@Ĵ@V-?v+g֛@@ @5^I +?᩸^@9f$ @(\?]?4 @B`"? @9XCц @/$C??Rb;\(@EC @q= ףp=?_??IJM Hw @~jt?P a@Jf @"~j?ȿxe̥@)Q3 @Q?1@W4@$C?yf妣6?;:> @jtV?'%@?Nu @Dl?+~Q@g) @MbX?Vz)@c$ @}?5^I ?qsE? U[;B @S㥛?J ?7ﮌ??t @x&1?Z@#碏 @Mb?*'@B1ڽ\@ +Χ?/?; J @y&1?gCX@S@5^I +?Q*Lco?F@On?O#Jn@kV @zGz?>āC@xçs @B`"?%3+5?S7g-=K@-K?d.a"@r{ #= @S?g|]@$&`窃J @!rh|?dm&?KrSi@;On?= uf@S>. @+S?n}%Y@!Ɂw @(\?Ȫw?Fe6@zGz?m)? @|?5^I?@lh @㥛 r?R1?@V. @MbX?_ ?]6ݚ^ @= ףp= ?iͼ?& @5^I +?"!@6~:@V-?^Z'@Q-@MbX9?<:G@ z*N@MbX9?L5?ؓXL0O @x&1?&,q5??؞%. @jtV?~ Q.@|*Nٽ @v/?e@q#m@Zd;?AK>͖@5~}(U @+S?|x)@~ @+? J@F@ٮ @rh|??`[MO?A^ @Mb?쟜j{? ~qA @Zd;O?^?{nm@oʡE? @|}Z @1Zd;?|5@Gc @x&1?H?E?(f@-ƫ?J* ̮@q @̬? lH@Xy @9v?e> ?vFœʶ @$C?֘?E"m‘ @}?5^I ?V0?,W @x&1?C\~HPת@ z7 @HzG?i}b?0hQ @X9v? ~$@ ϼ>sg @Cl?ZX5/@2Q'*8@S㥛 ?2z+vФ@iL @Q? ? r @}?5^I ?ih-@S? @\(\?%68~N҆@ݠYbү@/$?q=@E$k` @Dl?w^'R?QHo̘ @T㥛 ?\@!8 M@)\(\?ZxҝN^a@ʽ @̬?Ø8?#}kZ @S? )L?͓@ @NbX9Ȗ?'0v_ Y@kL#$ @tV?s>$HN@$  @uV-?y0li@prۘ! @/$C?Y؏Ĩ@NbMN @̌?#9QF?Y0Ν @/$?=E@/٪D@ rh?lƲ@$RL@ +Η?P,?syD@Pn?Y|@e @Zd;O? y@l, ʆ @ףp= ף?2Ha@ƕxu @ˡE?A ?i c6@S㥛Ā?m \?弸S @V-?l͏O@Ny@rh|??@> w @Ex?*آ@-P @/$C?D>"P<@oR?/:@3333333?&{?y[p @q= ףp=?/1Yg@[<&Kv @Gz?ifo@)]; @ʡE??ݜ@v`Ǚ@~jt? h@`,W @B`"?k. 5@Mg@Zd;O?*l<@)! @Zd;O? J6?ƕxu @5^I +?BB:R?$67c@h|?5^?t`@PKQ@9v?,J? G @X9v?4sR@AOY @S㥛?rϴ~Ɋ@F| @I +?܊†@0X @S㥛?-@@UMWJ?J +?N> L@m8Q @`"~?GBO?hdx @|?5^I?6 @`wȗ@x&1?KQW?H% @7A`"?f\AV@? *M@#~jt?~@kR$; @MbX9?I_m".@(0@~jt?bĪ(ʾ?`_T䱚 @Q?{g@GhA7(& @MbX9?# @HDjZ @(\?Hot@hSv@S㥛 ?zNLJ@QA7G @{Gz?oEK?lh @sh|?5?᥼b~@>U5{t @Cl?<@W; @K7A`?!jՋ@1 @S㥛 ?z0@{zn1@GzG? f?Ԥ[ @S?75@Ɠ@.%̜ @#~jt?k֯?Tu @x&1?ul@Jw@' @T㥛 ? bd2@y) @K7A`?/y"Qh?KıK @Zd;O?a @U-30@nʡ?&h.@t>v @GzG?_{k&:F@YG4@{Gz?'гN|@fVVk @Mb?M-er}?L22 @)\(\??9*aĪ @+?(?Nx޹@x&1?|}ޖ@SV @ˡEԸ?c;@4w @Q?PzO@AaÏI @%Cl?O #-??Z?< @%Cl?lE@7#gu @K7?Ht0^<9@ c0@|?5^?IvX?]˴ @ףp= ף?I҇B?-2U @Zd;O?o>@  @"~j?`=@B;U@Q? P@>o @~jt?9"}tԌ@?v^z@K7?rA@t@P @}?5^I ? d@*v ܚ @Zd;O?F$]) ? ܰ)4 @~jt?t^?x+ @NbX9? ,v@ ' @1Zd;?a K?<T$L @(\?/fe@5Ϫb( @Cl?>@?r @5^I +?ߺ@3 @/$?!g-??b @Q?J<o+@*6 @Q?1$_#?hτ @zGz?j1.r@s9pX@\(\? | 1L@R:˷ @K7?VIzA@v@SE @Ex?G ??b @+S? 4'Vs?# F@K7A`?Nlf?4[Wߜ @%Cl? !?Dװ @Cl?rs~qW@E[@)\(\?''int@q(~i @̌?~8$@qT!@&1Z?ۉw@V_@sh|?5?cwE@+9 @)\(\?qʐ@5Ќ @㥛 r?%pQI@/Mdl, @%Cl?(y!ؒ@6vF @HzG?v~O@ewќ3@GzG?S!B@'@+?1TNm@"-J4@K7A`?1b@ @jt?$j?ѫԈ @?EE@vR&% @?t@Y9w @jt?hڞN@xQuu @/$?ݝ^'?(q֓ @̌?߀k@Qfn @ʡE?ƴ?ws>V @/$C?qHK?D @-?cB G@;.%1Ѯ @|?5^?U @@S㥛?8)W-@1Eʺ< @Ex?Q@h@nʡ?a*@,@GzG?}@_+o@!rh|?o“@=̈́@?`@O @$C?ğG&'?!ߥE: @-?~;8 ?1N-@B`"?i&Y@|* _ @ʡE?>J?x0AH @-K?Q,?|MmI @Zd;?;? @-K? q@ϧj @Pn?v^s@!P@9v?ΰ@6@k{ @'1Zd?a40'?9#= @v/?IS1@3 @x&1?L!Ss @'sTx @Gz?@d;On?Ε=@#C*N@#~jt?|(6f?$(2 @Zd;O?w{?R_Y @nʡ?IW1+@mێp@)\(\?1L>i<@ a@Zd;O?`f,s@Ḫ @Mb?1@e2/* @^I +?ȁ[u0@{EN@/$?h7j@P_I@ rh?+ڷ\j?Pͭ @K7?Ԥbk@ӕ_@)\(\?;zx?|hS@tV?h,@Zh @(\?hl@`l ܮ @'1Zd?[ZY@eٸ@K7?jT@w @5^I +?) @90쵯 @K7?? `@b~; @MbX?0d X@"@S㥛?սU>@5qW @?w"Mn?Ȼ@F`SP@ rh?aq @DUx @zGz? X@fE̝@x&1?6c@EH@ʡE?~ *T@x;DX @q= ףp=?D;@v"~f @|?5^I?zKlh?"= @S㥛 ? M?Zҝ(@{Gz?>n-)(@t@X9v?4,#K?(Ò@Zd;O?7hx@]m@x&1?)&{Rn@d~ @(\?gr!@8‹_ @(\?I@,(@ ';%I@Cl?kOLp@gw1@K7A`?-y@7`$ @7A`"?iz$@-{7a@Cl?.{~@]Ky @7A`"? !@qasGdԗ@d;On?Lp5?`,W @?1Xt?xKnj@ʡE?$Y@/?jVX @GzG??990 @= ףp= ?<I??ջȖ @K7A`?L @),K˕J @|?5^I?n?z*N@J +?m6@Q @~jt?Q*?#ͷ8c @Zd;O? i>8@x{ @Dl?t#?#&V_*S@v/?ʗ\i?jv' @V-?]@J.O؆@?SDd$@5=Y @MbX9?˳U?OY @V-?NB 8@" @MbX9?Ʋ&!yڋ@9XCц@?=tk/@  @K7A`?A~+\?&U @ʡE?e5e5Û?E۸ @On?&\{?Oim @On?;w@ @\(\? ,z@N}i_@I +? t:U3?1KQ @V-?m0{?Q@ rh? zc@ c@Pn?=I?O @/$?r$!@V->@On?J,r?N @On?JD$20@ @\(\? S{r@h >[ @v/?t%D?Asu_@ʡE? RN@tq*@K7A`?Lh)?(ӹ@ʡE?@bކ|@GzG?Ԟl٦@F@ٮ @V-?)?d-u@Cl?;W˺?Vb, @oʡE?r\ ܄@aŗ1@V-?WRo<>ә@G  @uV-?cw?@|w @J +?+\D@Ā_ُ @V-?R?mj% @S㥛 ?Au;qГ@=h3@\(\?P7w@]aNٳ @MbX9? 6u@Lx'.@ ףp= ף?+?w` @J +?5@;2VO @7A`"?W-±@ۤ3C@ʡE?\/?+@-Jʄ @GzG?Y]&+-&@]6g&xP@uV-?\@@^-@1Zd;?H2? ^6 @uV-?Px&d@+$&]@7A`"?OhNN@WpǬz@MbX9?j#h탆@G[tW @S㥛 ?\pS@mz- @I +?ݭ@mTlZ@ ףp= ף?H jH|T@+4͉od @MbX9?yz:Q@ʋ!m@Cl?b @X{@\(\?qBCH@8&;P @X9v?}NK9@l-@nʡ?; k@ i}@Zd;O?Tf@Cp @/$?Іoڪ4@Vo)@x&1?`?H?7cᛐ@bX9v?*]s@*i7"c@S㥛?anq?Ď@K7? Pͧ@F3< @ʡE?~u@9*uR @nʡ?7O @%w{1@Ex?+pa@̫ty @A`"?\DD? + @A`"?tf^A@ȑC @Q?apD1@ײu @Ex?]ذZԅ@h @5^I +?eArB @mn@I +?58[@bBǗ@I +?nǟ#W@&jʗ@ʡE?-kw@> @K7A`?43?uJ}H@QQ?g3̿:@;95 @ ףp= ף?pэ@RE}T @X9v?nB?^:4 @QQ?$r@;ek=,@MbX9?eI;@"\z7 @-}K&@Zd;:@rd1h@=WX @q= ףp{ @$饨@=WX @nʡ@$˿?Q9bz@MbX9@yxս@XBL* @#~j@5}Rn@"ntB @oʡ@GOrYu@|D}b@X9v>@!ˣ"?8l@K7@)Z?.@Cl@nR@dm @S@PkԸ@`C%= @Cl@bQb.@Y%Lk@S㥛Ġ@$X?.@B`"y@fD?FZFvr@Cl@ci@Q-@-Ƙ@S?U9v @Pn@Gm-"@iOR?Mb@as._@uĄL@v/݁@,W3D?c$ @MbX@ RNo@ ˲ @Zd;O@kc?A󾋥" @ ףp= @iyU H?-P @x&1@bGi܃@c$ @MbX9@đ92̈́@$  @K7@@ @/$@ S*4?t @1Zd;@Ŭ@i@ʅ@K7A`@HBe@?t @ rh@͉¨@NbMN @1Zd;@?Eܡ@-j5^@K7A@Ruѯ!?Uqd@d;On@%ǻ@> @T㥛 @x1%?8l @QQ@g+@> w @7A`"@Fr͒)@y Y@(\©@27b?XBL* @1Zd;@(VkR@(q֓ @\(\@n֌< g?mo" @Zd;O@gD+=(c?lQ3 @|?5^I@t@?`C%= @jtV@o$@?jT?"t@V-@7٪@ϧj @ʡE@%Ht@ @ +@^ ,@. @V-@. V#bD? @3333333@*/X@> @w/$@is?~ @MbX9@ƣ~@˓,g @{Gz@c,?@A󾋥" @@DƔ@Ukע@K7A@ߛ@5 @S㥛 @@Q}G~@' @Ex@z@Iu@}ҟ2 @ rh?]ު& 0?Oim @?4&@!}tl@ ףp= ׃@oLE1@=WX @nʡ?{?6i~" @/$?tj0@h] ˻@A`"ہ@? $?ϘĿa8 @̄@뇛Ѯ!@V?k@L7A`?hR4M@c>˳ @ˡE?Kꚧ@~ @Q?'vH%nc@S@K7A`?MTvf@Zh @V-臨?rn?d!b @?Z@_@ʡE?_#ه@uĄL@Q?xl"{@1(¼ @&1Z?uKt@}˲mY @?(Cu@LY @^I +? MV@Oim @mM?zp@⃑ @d;On?Un@v @X9v?s_]{@L }3@9v?i#^@h @p= ףp?\3:@߰^ @^I +?1Ӝ@mTlZ @3333333?$ę@A- @oʡE?iaKtU?jg@(\?6Pl/?W: @}?5^I ?Nh7c@oR?/: @ʡE?HIKt@D\>} @{Gz?3amu@c>˳ @Zd;O? 18@U9v @Gz?͜*Վ@5~}(U @}?5^I ?˭q?5/@X9v?bG6Ξ@vc @ ףp= ? ?\ ɔ @S㥛 ?bX8ܛ2@?t @QQ?W*?Yq*i @5^I +?ՠ;@mTlZ @ˡEԘ?-ڨ@};~q= @rh|??r#V@!r> @V-阮?Ii @.j @q= ףp=?iX?2Q'*8@uV-?@9,@'uv @Zd;?T W̦@KrSi@q= ףp=?Ym]?=uE# @p= ףp?ǃY@=h3 @Cl?*&NW? m91%Y @}?5^I ?< y?c$ @oʡE?,! Y@;:> @!rh|?pF;@Q9bz@;On?G@?Nu @x&?$2#?^6 @Cl?W +?J A}X @Q?}#K@ s` @`"~?Q \@!Ɂw @Zd;O?7%@Wg5 @x&1?Ww׌@kL#$ @ +η?SA@]m@v/?:ӿc@̑?Jf @V-阮?t](? ^HG @Mb?Goh@@V. @#~jt?Z@PG'< @S㥛?ԓ V?m8Q @/$?-zE?E"m‘ @ rh?Va@& @HzG?^ލ @:{@NbX9?XɊ$٫?g) @Cl?a+@KrSi@"~j?Ybo<@%ε(@ @V-阮?fک?(hOإ @w/$?ʞv_^?ʽ @Q?./?QHo̘ @&1Z?Ԙhp@J^5 @Cl?bS?P @mM?L_ec@n @7A`"? ߤ:@% @Cl?eZIWH@TVzp @K7A`?!@ @I +?*È@vFœʶ @+?D2`@{nm@+?pW-jJL@ӹv @x&1?V~ǂ?NbMN @sh|?5?'qh@0hQ @K7A`?f.v`'@!8 M@Gz?dߚ@zA @On?@>o @p= ףp?] ?@ @rh|??IGI?Xfg@!rh|?GWy@Xy @bX9v??ԍ/@)! @(\(?j\@xçs @S㥛 ?͜(^qN?]hA7(& @S?"@q#m@x&1?ү-HO@i c6@ ףp= ף?k~ @?,aN @nʡ?GQEq?A^ @'1Zd?? z7 @-K?^Zɺh@fE̝@S㥛?(;_ε@ws>V @h|?5^?%8?l, ʆ @ ףp= ף? UcA@ r @ rh?DQ-Z@?r{ #= @ rh?+>cۂ@9f$ @w/$? @ @#~jt?M@4 @^I +?`@]6ݚ^ @Mb?G8ֱ@#}kZ @q= ףp=?oUyzR?SE @ʡE? sa@9XCц @ʡE?jJ0U:@y) @/$?*L[@ @L7A`Т?*bj,w@ ܰ)4 @Cl?AԨf@ G @Zd;O?`"C@FZFvr @(\?Zh@jCmz @K7? |a@-P @ʡE?<9f@L{@A`"?7WE@`_T䱚 @}?5^I ?w&?EC @Mb?c+1Ch@,W @Cl?giZu@?Z?< @Cl?c~?*v ܚ @X9v?%@.j @ʡE?-&\Ӣ@; J @x&1?'Ev5t@ƕxu @v/?۶Q?S>. @;On?Czy?#碏 @#~jt?W@Ny@?MO23@@1 @7A`"?)aw?lh @7A`"?rL+,@ U[;B @1Zd;?hHָە? ' @Mb?8%@ 9Tg @A`"?GMqgp_@_+o@+S?_:l@t>v @?Íj@q @v/?rԼ?~ @I +?v6?1N-@GzG?O@9*aĪ @V-?P_%@)Q3 @Pn?Z%tЩj@Fe6@On?s2@ϘĿa8 @V-?Fؿ98?!8 M@"~j?[\e?W; @Cl?$J9G@(q֓ @K7A`?AmO;?]aNٳ @MbX9?Q0#&@|MmI @oʡE?IJvu?Y0Ν @%Cl?9䡩@iL @ +?/AZ@$  @oʡE?C_=@x+ @MbX9?f?/L. @S㥛 ?zz?W4@MbX9?@|hS@V-?H^Rm@$K @On?d,8?[Eڼ @S?ak@8l @MbX9?xL2?;,NaX @V-?:,y@mTlZ @V-?Y`8ͻ@990 @S㥛?/lE@Q-@S?Sra?wQ@O @S㥛?Mc1_Y@ӕ_@X9v?)S ?U9v @Zd;O?͂&"@ ϼ>sg @V-?Q5ԟ&@;.%1Ѯ @QQ? e?弸S @V-?1du@ ~qA @Zd;O?ݕ@IJM Hw @Zd;O?5FA?$RL@)\(\?jF@> w @Zd;O?E@Zh @nʡ?Ҵ/u٤@t@ @On?oA@ wȗ@X9v?m2Xq@O @ rh?SQ"=@W @/$?˂E@h >[ @Zd;O? ?x0AH @S㥛?}Vu x@.j @/$?@ϧj @Q?f!@X{@Q?>@ @/$C?֓=lH@w` @Ex?~JOmp@Gc @Ex?`@L22 @/$?9r?Ā_ُ @)\(\?ѯC\t@3 @K7?Co*w@ݠYbү@K7A`?u+fR@yK&s @I +?!Tg@GhA7(& @I +?QO`@s9pX@I +?Ӎ:v9?;2VO @A`"?՞Ek?c>˳ @K7A`? = Y@V_@ʡE? 뼊Z@]˴ @ rh?)ô[@w2@)\(\? a@ -n @ʡE?g\j@Dװ @K7?~': @jP @?!yb^?oxྫ @S㥛?҉A?ؓXL0O @5^I +?pKjҏ/@)ˋ @?]Oz;rͷ@E[@?Ϲ'X@4w @On? S`@^6 @v/?Mv?oR?/: @MbX9?Rsyn@R_Y @"~j?MfbB@Mg@K7A`?Ȫ᫑?q(~i @"~j?9nЏz@pD@MbX9?m?B1ڽ\@QQ?y%@ :@MbX9?h 8@3 @"~j?}م?U-30@QQ?Z m@S?@S㥛?OAIV@?G@Ex?].?Օr @x&1?p@e2/* @MbX9?RІQj]@AOY @ʡE?Nd 0@!Y\0 @ ףp= ף?jL??jdZ]$@S㥛 ?z ?-j5^ @V-?9"R?'sTx @S㥛?&T@ @QQ?vAd@=i+.}r@ ףp= ף?:(C@OY @ ףp= ף?ݡ=f?I~@I +?55 E]w@AU @V-?lXK@TVzp @x&1?7z,@]Ky @ ףp= ף?iH<@AaÏI @S㥛?Y٪uX{@syD@X9v?R 7@E]@S㥛 ?|~u7@5yG @ ףp= ף?R3@9m @QQ? \-@|* _ @S㥛 ?=;?{zn1@Zd;O?Tl?Y%Lk@S㥛?_j8? c0@Zd;O?Cyψ@+4͉od @S㥛?L8hWތ@% @X9v?J: ?1KQ @ ףp= ף?T)/D@*i7"c@#~jt? -A??؞%. @ ףp= ף? kjE:@7`$ @#~jt?'#3@/Km @#~jt?2MBה@ޱ? @QQ?$KJ@)]; @X9v?9?~?#ͷ8c @ʡE?rt@Aõ @S㥛? e٘`@Ĵ @"~j?dӟZ?Oim @x&1?nEuZ@/Mdl, @x&1?}?=j@ջȖ @MbX9?e6@s @x&1?ā Ec@%QB @ʡE?bdcSZ@ײu @x&1?bq#?ȩ~v @S㥛?⚉;@t@P @S㥛?X\/?@-D @?M޶@S? @Q޶@ +Y? @Y%v:?=WX @@ E?=WX @ʡE@*36?Q9bz@x&1@%ISH@|D}b@x&1@8#@Y%Lk@V-律@Uax?"ntB @ʡE@(MƦ@ wȗ@bX9v@Ǥ?FZFvr@}?5^I @XV?6@XBL* @ʡE@&j?Q-@nʡ@"wq@.@L7A`@uڷ)@dm @GzG@Թ?i@ʅ@MbX9@uzӭM@8l@ ףp= @ʕSH1@6u$) @V-@|lݜ?.@X9v@h2@`C%= @d;On@Q;W@Uqd@tV@XzSG@iOR?fffffff? w9?-j5^@&1Z?-_I@ @x&1?E;J@A󾋥" @Ex?q1@?t @S㥫?~@NbMN @On?=>@lQ3 @X9v?rE @t @Pn?G_J@c$ @+?p* @uĄL@v/?o?AD +:@;On?}@U9v @nʡ?zU?XBL* @;On?؇(C@˓,g @Q?ETR?c$ @jtV?lK@$  @HzG?_]@@-P @"~j?]Z4@(q֓ @S㥛?|t1C~?jT?"t@On??Z&Ӹ?VQz) @HzG?iו@. @`"~?v3;xϛW@X9v?f$Kvs?`C%= @v/? @Mb?<}nk@> w @Zd;O? @d!b @~jt?M@D\>} @Q?9ou _?> @/$?Z!i(?5˳ @?eO@0?⃑ @"~j?`y?vSc@W: @/$?lzߩ@'"N@I +?ro1-h@mTlZ @x&1?,B(@h @oʡE?}aۆ@!}tl@V-?ٶM@Zh @K7A`?؊f#@fE̝@ ףp= ף?%@LY @ ףp= ף?7h_ A@U9v @I +?XvCf@?t @K7A`?I@f@?Flu@}˲mY @uV-?X`v?dm @Zd;O?Uoj?c$ @oʡE?T E?Oim @5^I +?h~`?>o @K7?MIe@kL#$ @S㥛?`:$<@6i~" @/$? Oxĸ?3x @X9v?9g@%ε(@ @{Gz?9(Y r?};~q= @K7?m;n!@iL @GzG?/N@Oim @S㥛?W&@9f$ @;On?*qus@NbMN @"~j? Mbj@ ˲ @?] @K7A`?.5vH@ƥ@V-?<Th&@L{@I +?y/t@px3T@Zd;O?EGV/@=uE# @)\(\?vl@Jf @Zd;O?Ő?AaÏI @)\(\?D]ܾX?jdZ]$ @5^I +?RC}f@*v ܚ @)\(\?&' ?4 @)\(\?kC?TVzp @Zd;O?Q5+$,@|MmI @(\?<@@ӹv @(\?q\c9ߨ@@ @ rh?tܒA@lh @ rh?VȔ% @ ^HG @;On?^wn9@c>˳ @)\(\?k& @W4@ʡE?d??Xfg@(\?99(@@ s` @"~j?jXL`@.j @?4(B@?:{@"~j?tY9z_@@V. @S㥛?"3,+@vc @S㥛?]\@=h3 @S㥛?C/h@mTlZ @S㥛? ڀz? -n @x&1?8n!m?^6 @S㥛?Ձ]w@Ĵ @K7A`?O.#E7?PG'< @S㥛?a۝@.j @;On?szjQ@#碏 @ʡE?QF?Xy @ʡE?85 ?y) @S㥛?E&6F~X?;:> @ ףp= ף?"]|@A^ @MbX9?h)@oR?/: @ ףp= ף?φl>?)]; @MbX9?1SH!4@J.O؆ @ ףp= ף? u@Yq*i @!rh휐@D@=WX @Qы@Zd;O@G@=WX @ rh@<C@Y%Lk@v/ݤ?l@Q9bz@\(\?^ڄ:,@i@ʅ@NbX9ȶ?ķ{IZ@"ntB @l?svzk[@Uqd@#~jt?!6ښ@t @K7?Tc~]??D\>} @#~jt?crq>@lQ3 @S㥛?!#a @=WX @"~j?N]:@XBL* @/$C? z/@>o @/$C?*V_@y Y@#~jt?]2 @XBL* @;On?^|?%ε(@ @;On?9wkk@ϘĿa8 @K7A`?x pȴ@!}tl@ ףp= ף?Gxp@-P @ ףp= ף?)e3@ @ ףp= ף?s-$@ ˲ @5^I +@Nw!@Dl@PjM@=WX @ ףp= ?qM#i@=WX @= ףp= ?%?Y%Lk@ ףp= ף?vѯmM@"ntB @V-?*A 7@Q9bz@)\(\?DV>}@6u$) @ʡE?z&0K]? wȗ@ ףp= ף?@D\>} @;On?ļ&-ܵ@AD +:@;On?;BX?lQ3 @S㥛?Nw!@S㥛 ?xdG@=WX @?Ɏdp݀@Y%Lk@K7A`?[^@=WX @ ףp= ף?Uۓ?"ntB @㥛+`@(\T@*I m@8l@On~@z)$v@8l @{G᮵@՘!R@$(2@/$?@e~ۄ@V?k@ rx@uUFõ? i}@Zd;o@ ?L }3@'1:@ $[@$(2@= ףp= @CVY?5/@̌n @w S@S7g-=K@^I k: @;'@Fe6@Qk @22@5~}(U @Gz @o??Q-@ffffff @뉺w@ؓXL0O @Mb @pb ?5/@jt4 @`:Xʭ@,W @MbX% @X2iF;@uĄL@Zd;O @MoGX,@uĄL@mҏ @bsc@$(2 @ ףp= ο @$Cl t@? *M@X9v( @HC{|ۋ@q#m@M @.Y?O @QG @&8@xKnj@jtP @a g@ca݀@~jt? @Mݤ@ i}@HzG @ڢ@+ @x&1 @ٴ/1?5/@M @@+$&]@ rhQ @<SO @  @rh| @ Di@E۸ @-֙ @&[ń?M}17~@Q @u4V?KrSi@S㥛D@)ㅏ@8l @Zd;Om@sgC@n+g@,@6xS@q0@uV@j:Pз@w2@K7A`@oOr?PjSft@|?5^ʵ@Uo?@xk @"~ң@l@$? @(\]@Zv\?S7g-=K @On3@׹T@J @bX9~@_V>~j@? *M @M@Q %@PjSft@Gz@2ssP"JΥ?9[~z@/$@ L^4?._p@ʡE@SyG? @V-@XR@@ ףp= @{QY@E]@ r@'(K?@TZ@Q@Hi@I1+Eh @Mb@Ϯ;?Q-@Zd;o@!kES-@Fe6 @K7AP@;1f2?z,7;j@d;O@56󶸓?c>˳ @333333S@;}?PZ^U @Se@Xt(ů@g @!rh@e~ؗ@NҝN @K7 @`^@jv Ti`@㥛 @4h@XSpb@p= ףp@Z~[B@.Qr @rh|_@i)=X @z,7;j@uV@pKIĦ@WG`N @M"@ޯ/@˨h_ݐ @uV-@zűN@ԼXt@)\(@dI%? :@x&р@81&?$(2 @Gz@m6k?@cGL@q= ףp@qs,cJ:o@uĄL@ʡE@D ib@KrSi@K7A`@ԉ)k@(f@/$@ɄL8@1N-@\(\O@?{.@+A~1 @-@?䖛@+7 @+@ } ?QC@&1@ȮWU@׾ @Q^@V㍴@]\Ȭ @Zd;@|[ @,W @ףp= #@4X@ t`^@̌@?hV@7BVGO@ףp= #@y&7\?y@bX9@ϲmt!@g^ɤ @X9v@L@H@Z{k,@v/@:cHU@S˫zƴ݊ @L@C^*'@B2b6@p= ף@u}rˀ@Qσ@{Gz@?/#Č?~L @ rhm@U?~i m @'1Zd@E+7N?{;"@ ףp= @ePL@w\\ @}?5^I @nd@@zv8No@Cl@J?6+Rk&@x&1@TUԜ@>F @l@<.X?TZ@;On@2Ƽ@z @/$C@+9q@ i} @Mb@\IWH?": R#i@Qk@p^m?ϩ4~rO @&1ڷ@#X%iǢ@/-@MbX@\4$@瘨l쇏 @{Gz@QԾ"@1N-@'1Zd@/{}@; @Clg@;%Y7 K@-N @ ףp= W@c\H@n kZ. @@RϸQFh? "@ʡE@~C@ؓXL0O @/$@ p~?2Ui @S@by?8ag @Dl@| Ē?~ d @@YÆ4?i@$C@{ᙄ?3d@oʡE@tUI-@6Zk@h|?5^@&'Aپ?INϛY@-˃@mWy@ #.@S㥳@Z??L }3 @nʬ@MrZ?u%/@Mb@ͷmw ?oqT@Q@+["@LktԌf@MbX9@4'?+ @On@uN@xyj@jtV@? ?հ~3:O@9v@a85 b@@Gz@ qê@BJ @nʝ@90V@pv @ ףp= כ@Y?Y6M @"~j@r&@i~I> @I +@04Y@d|YK @A`"ۋ@z"[@  @v/݄@+QDG@_+M/8@7A`"@Ս@e @nʒ@O݇ƃ? iO@Cl@AҖkC,*@ʃ(+@(\@|'A@&kj @Cl@Yj}J?ZrWh @x&1@,<@DMo:@q= ףp=@#z5?6~:@x&1@Ɯr@i@q= ףp=@Y4;s?wh3;@?5^I @"x?IV F@= ףp= @]?ӓqţ@GzG@|@tNju @T㥛 @|Yg֮@/hBpm@+S@E2.?:]^J@~jt@`@["PkEs@K7A`@B?vK.0 @NbX9@"?8)o*@}?5^I @ǔO@1Zd;@'l׻? @-Ɖ@Fc?7~&'@L7A`@}dd@M}17~@Zd;O@fT@8zw_x@+S@M>.@9f$ @5^I +@P2@PjSft @~jt@~uqH@*M @w/$@0c]g@_>ۺQ[@B`"@vlW@;/W7E@$C@2鑿@E۸ @Cl@M%?1 @U-30@oʡE@Ϟ/:@)F@@||3w?dG+_@RQ@5$k?+<:@!rh|@Bz?ܱWR@X9v@*@~_=R @~jt@Δ]?VTm fp@S@}ê@g@QQ@w4`K@?:@A`"۱@3=-ec@ CS֖@?5^I @x[%@c3Be @S㥛 @v>|)?,BM@RQ@Ǐa@o>‰@V-@^d?rŎ@I +@Y2@=`y{@3333333@C09=@h@nʡ@'l4)m?N&^a@bX9v@F^8@zW̦@Gz@yR B@"#Y@On@&O'.?}ӚlP@@2-@<@E]@B`"@ '/@*âx-@)\(\@:::Ŧ@p@< @V-@Sh[? VI@y&1@2V*ϔ?9FW @nʡ@gҩ@Nw{,wv@RQ@tx͑@$? @-K@_)=@A/ @~jt@Cޣm?nޕ, @/$C@Jݽ,v@/ֺ@X9v@V[F@T>j @V-@$F: @ x3? rh@Pe@HNdRi2@K7@0*@4>~겍@sh|?5@A0@Ael @q= ףp=@_Qw؅@Yo1 @X9v@'@jG}2 @~jt@-zLz@y-J@x&1@05NO?@(\@cYG@w^c@%Cl@"A5hUX@HA{{ԅ@Ex@VI˄@Ә>@#~jt@%Yf @KrSi@X9v@+GX@b!J@tV@@a; @MbX@w 9?S7g-=K @ףp= ף@?N;pJ?oUh@|?5^I@fYe@s`D"A!@K7@J?X}K @ʡE@q @ @Gz@sુ@6EF @nʅ@{yS Oٗ@{;"@+@Hgu?>Sh @'1Zd@[SW@^k@MbX9@+=Ȟ@`|,@Gz@q ?|]ξ@)\(\@Q?̀y@S㥛@+h@)y;@K7A@, 1@5/@x&@|8]Oo@07@5^I +@o@\!5@tV@)@+R"q@+@i"hp@xٲ!@)\(\@~lj@F1^@Cl@{L?Mvi@#~jt@s]K6@-ø@1Zd;@t%2G!@!@I +@e8+@(`͑ @mM@vѣ@}8@Zd;O@M2@I@|?5^@ށ ?cSDc @K7A`@=|@-GΞ@)\(\@f\5Փ@R!@/$@[ʍ?79. @I +@Y癛*5@;>5@jt@/ZVW?_an#F@ʡE@x@r١@{Gz@)p]@7\ѐ @@N+@>@6\!V/@bX9v@A%[]+@@@Zd;O@iwt̴@{ L@4@)\(\@d05$L?4>~겍@w/$@kۤ?fB@$C@h)@}MRI @S@C_Q?I#@ˡE@c_I^ؘ@&u%b!@Mb@T?z?@v/ݜ@wǂ1@C*@q= ףp=@5ٸ?ëD@X9v@}]l@B%̚ ݖ @h|?5^@5([Ë@܈A}_ @ rh@Qc8@YqO@-K@Dɕ?߱@ʡE@}_}GM?|+ @y&1@{?K=@7A`"@t1‰@A`ɟ@X9v@pPڤdí@7BVGO@V-燐@oC$p?[@X9v@p>@(0 @'1Zd@*Ȼ?6+Rk& @`"~@[$?'mgG@+@Bh^@g @Q@A9@}[) @&1Z@8#>&t?`#݅O @Cl@gI? @nʱ@ 1v\?e j@= ףp= @FgU@M;gE< @~jt@8q.x@;@3333333@v%@Av+@x&1@pk#s@A s[ܘ@~jt@%]Q@Oim @ rh@e]@O" @1Zd;?1w@~?[ @"~j@\$ff@2. @Q@i6?6zߛ[@h|?5^@iBm??I]7 ' @x&1@r=mh@1DЩ@7A`"?%Z Z=?Fe6 @`"~@(j@dg9hN@|?5^I@2N@ ]@GzG@Bl`ׄJ?B# @rh|?@uAcW?jԳE @J +? ֙@I1+Eh @3333333?eΞ@P,hV@&1Z@!b䧫@zϲ@d;On@$Z5?q#m @Cl?^6t@@]kI@-K?nNC_@ @+S@p[@@xKnj @1Zd;?kxK@N| @tV@9I@e@~jt?) @N _@+?%Ų@Ԥ7+@v/@0:\!?mf @V-?XX@~I@/$?FI@4ݷ@tV?Dj9!%?i$ @;On?Sn?v.1;0S@jt?J5~xQ@L V) @J +پ?hu.i,?.  @K7A?^?i'tL5@MbX9?fb~@SJs__n@ rh?pE.@r"ӿ( @/$C?'e'@@/cfe@T㥛 ?9ǎ?a"# @(\(?uV@;q$L@Q?AOj@IR ؄@oʡE?LY蚷@! Ay)@p= ףp?r@HL@K7A`?Xb I@GYY@7A`"?9:@w6@)\(\?־@(\"&N@K7A`?Nn.^@t@ rh?E9@j@.< @7A`"?,pT4@>=ѕg @= ףp= ?h@|{9ō @MbX9?UI@@, @Dl? 1# ozӟ@[5@+?yI?=}@B`"?V+yH@h1@?5^I ?Ukj?lE@bX9v?3c+@݄* @5^I +?Jy)@9#І@+?5q6Ir?k0>!i @V-?#a?)1$om@V-?>R@L@(\?R@֊@0kK@ rh?ۙwr?4@tV?B('ɰ@1N-@Mb?`q$@5@?5^I ?NC}-@?e @y&1?<ͼ죪?W~g0@`"~?:vJs@sL@p= ףp?.?&׹Q@I +?+8w?/at @I +?JȽWL@Wt@v/ݴ? 4y!NV@V?J @?5^I ?.ޫȸ@HNZ̝ @On?ž躷@Gj@`"~?i%@8$Ȅ@Dl?73e@GX` @x&1?jqHm @ۚ@K7? C?Iь2T @S㥛? L ?9Z&ͅ @V-阮?e&,H@pCb|p@rh|??tL@kzS}@K7A`?%Kl),@'D. @1Zd;?BDLp?[T] @bX9v?-"\)@`,Y @V-?u8Lj?`.T @x&1?f'?~H @Mb?,Iޏ@E44@7A`"?άwӏS@!B@4 @x&1?9MÞ@J  @?؂?o? @MbX9?Vg@-`PPƂ@X9v?ح)]@Vg*v @^I +?*,DT@M!Dz @ʡE?ݗGP@P"@d;On??mj% @S㥛 ?TsL;*@< @"~j? ('j?4'm@ףp= ף?꬟N@\Ahw7@nʡ?S@ĞTl@1Zd;?<{Bjl?b3@Cl?jq@Vs @(\(?zjh5@Oim @tV?ASz"@ c@3333333?'?@s>m@ rh?AAb@n x'@;On?|WA@儶U@/$?Fw@WpǬz@A`"?z cU@. v@B`"?Cvd6@QN!@nʡ?;?`963@K7?D?$.0ݨ@K7?T?@z,7;j @{Gz?ʻs()o@hz> @V-阮?[ie?Է98@x&1?G`O?9f$ @#~jt?d+q?{Y1= @ˡE?N44@Zd @mM?DF*? iO @+S?Xtc@-N @K7?폸F@jv Ti` @Mb?a@ , @(\(?BE@|+@(\?MI'e@]6.@jtV?(ia@qyIJ@Mb?x_@'ނ@(\(?׭YJD@܈A}_@?It?|h%3 @jt?uW]PZJ/@e@-K?\K*)@S". @MbX?}^yN@_:Ŧ @|?5^?]YUK'? ī㾃@Q?Y$,P?;w@S㥛 ?DQ?$  @+? U~?3=~ל@㥛 r?.+@{͔i @Ex?Ks.ݷS=@oCa@Q?syD؈Ȅ@ @T㥛 ?{XV?/#2 @Mb?x ?x /%@(\?@-T1?A @Mb?PQu.? HB@c @$C?ul@33+ @Zd;O?ex+W2@ KPM>k @?A>a?D: @!rh|?0@rU N @On?4MZ@Q{@K7A`?O6>?Yĉ@?s*&@V!mB @Cl??^y?D @A`"۹?]A@#O @bX9v?̍)%>@)Bnf1 @ ףp= ?X[v@S> @oʡE?>c?4Ʉ @}?5^I ?Z{ꈔ@:!tG @`"~?@H@@(f@?;N@@!u @J +?2|#&@L- @n?C\Y??z'_@^I +?<6@)1$om@+S?έ?H~.@X9v?s8C@/e @-? 6A?O@7A`"?>4ǟ%@=7< @rh|??襴p&?;q$L@V-?LL/@hS@y&1?71}p?|m$= @Zd;߯?rv@߇n @̬?Plo?V'+H@h|?5^?%՗@6+@ʡE?$??@܂փ @~jt?GYaп߼?^y@#~jt?>V?'uv @ rh?4ʱ +@Y 'V@+?dp@ #)S@|?5^I?&>%K˷@:@jtV?Ѧ?Gx @+S?bhԓs@^!ό @;On?DE2@. @L7A`Т?mƈ?߱@&1Z?%H? ī㾃 @Q? ^RN@q0 @㥛 r?fVև @p|@ ףp= ף?WՓ@AW@V-罹?3Т,Ǡ@' @V-?b *?!| @Zd;߯?7Y ]@Qfn @d;On?34bSɅ@uR4?|?5^?S8?=@0@V-?r@'(@[k@ˡE?mc{X @Fѯk @|?5^I?P㲃@< ƃ@|?5^? ԙ@ls/@v/?+Va@9H ׿@`"~? Fp@l7F@jtV?Yׄxr @4N@ˡEԘ?ǎBk@g@Fx?y\g@_һ@^I +??6i~" @ rh?_&rZ.@? *M @)\(\?fW?mWh@y&1?w @[r @1Zd;?B@s@Zd;O?gxk@/[ Qܝ @x&?2q@k@ˡEԘ?ӿI9@[D`@Mb?+ѫJ@ΟP@h|?5^?ihH0@@y&1?h6b8@n'H@ rh?I?T:aSQ @3333333?-]kb7@tę @^I +??Q;H @V-?$ @qQ V@J +َ?DDm@aɱ e @Zd;O?%3@n q @J +َ?,񪂚?.Qr @Dl?GM'@۹e@)\(\? B @)Q3 @{Gz? /?YM.9;@uV-?GLڨ?BŚ<] @nʡ?_$s@Y &Z @bX9v??c>˳ @~jt?$UG@Qgs@x&?/j.t@`.T @|?5^?9bzf-?.H~@ +η? jn?"ä@V-阮?e5@+pω@Q?UzO@y#jJ@d;On?󌱟@Vd'{@v/݄? =V=@7@/$?`x@0G~UK @ʡE?0oC(@$@ʡE?R/s@1\@v/݄?փn܎#@.$ @%Cl?fV8?O9ߔ@bX9v?n@V?k @?xB@~ @B`"?9gLJ@(2@)\(\?x}R? îL @Zd;O?׍ȺU@=~cY@tV?2eY0?>)@Zd;O?ȼs?^6 @V-罹?oH0/@ LxՄ@Ex?QHH@y@}@fffffff?F?@XSpb@Zd;O?o@T&/ @oʡE?_t@,j @K7A`?Y?"=?0 #*@S?GC@[[ @S?V?q]:l @?WR-ac?AZH'@Dl?'H ݮ@)ƽn@}?5^I ?+M,KӮ?Sξ@w/$?9tѠ@PKlL @ rh?Z@g{) @bX9v?*'0m?B8 @|?5^I?`@0vɗ\ @V-?@\ x @I +?2Lm΅@ dM@r( F8@J +?iӯ@+@x&1? UIj?RWhoJc:@tV?DB$fq? ˲ @nʁ?f@#R6@l?9LB@2L|p@oʡE?ഏ@cS@-K?qNb@9H@+S?M.nF?oz @x&1?.+ {R@~v+1 @q= ףp=?c^ו ?Ael@K7?al|k'}4@- @x&?mȑ@Pj-@)\(\??T4@ʡE?N @@ g>@p= ףp?=n@M @K7A`?6@Gb@T㥛 ? {(/y"?[)]᱀ǃ @mM?W/é@D?@ @T㥛?@Ia\@8l@L7A`@HM3~ @8l @d;O@H䏽Vk@V?k@/$U @"П?@L }3@oA@(\ @Lps@ i}@q= ףp9 @H 0Я;P@Q-@h|?5| @b}Ť.@5/@A`"7 @σ$@Fe6@Gz @^3@5~}(U @?5^I @]Z65@5/@Zd;OÖ @g)?uĄL@/$a @ k;IYπ@ca݀@333333I @tFP@,W @&1H @T<^@q#m@m @`e,@O @MbX9( @:|kV{8R@xKnj@ʡE; @JUP@uĄL@Dl @%;z@5/@X9v?@ˣ@ؓXL0O @B`"ۙ@rs!J\@$(2@1Zd;@9f0@ i}@(\r@Vh%@9[~z@ClW@*1QY=?M}17~@w/č@BDȮ!s@+$&]@;On@sJɫ@q0@x&1X@)F@S7g-=K@ ףp= Ǩ@k @J @X9v@υ^@w2@Mb@(&Ε@Q-@Mb`@L@? *M@/$@љ@  @Zd;O7@ЬC2@xk @|?5^@{d@@/$@Bm}@E]@M"@{ѱf[ڌ@d#7@M"@_=;n&'@8l @HzG@J'ȏ@_n@p= ף0@xZ&_ @V?k @9@,!wR@8I7.ќ@(\U@]a:%@n+g@S{@asԩ`HF?KrSi@~jt@fZ"Qa@._p@ʡE@ӳM0ツ@E۸ @EԸ@=@u@i82 @K7A@K @+ @m @]L3N@PZ^U @K7@Yw@$? @-F@6f@A @;On@Ŷ@NҝN @9v@}n@? *M @+S@8/6R@$(2 @sh|?@<9&@Fe6 @x&1@?ԼXt@/$C@hh6@Z{k,@-F@;7> ?$(2@&1Z@~|(@ :@~jt@ @ t`^@Sc@ǕKkd@ @K7@c^#̨8@+A~1 @T㥛 @ o?uĄL@Gzǖ@ӎː@] /5. @{Gz@t@KrSi@Zd;O @Wrim@.Qr @Dlq@H2֢ ?I1+Eh @v/@_%e@׾ @V-@IlsQ@(f@p= ףp@#LHϊ@wvXف@MbX9@|}:@3d@3333333@/+)@瘨l쇏 @ˡEԴ@ޅ3W?TZ@ʡE@w𦅊@z@fffffff@O 0L&@ i} @MbX9@=dG d@L }3 @"~j@4 d@+$&] @ʡE@ٮ@,W @rh|?@<@˨h_ݐ @h|?5^@43@DMo:@'1Zd@+T@w\\ @Cl@GuO@B2b6@3333333@xщ9D@i@S@y @LktԌf@J +ٓ@ rlq@հ~3:O@Cl@ltKT?cGL@ ףp= @ec@n kZ. @MbX@':?g @&1Z@r@xyj@K7A`@r9ե3@>F @V-鱗@ g @/-@ rh@!QVJy@S˫zƴ݊ @K7@dKf@8ag @V-@gxԺ@pv @V-@IOޤ@oqT@nʧ@Dp‰@ rh@v)@ؓXL0O @K7@|3J@ "&]\@2Ui @S@LlPx@"#Y@zGz@c?; @T㥛 @9/q@KrSi@+S@uԢw@ CS֖@&1Z@{?1N-@;On@M$@ @1Zd;@baIЪ@6Zk@+@޵4'd_@r١@S㥛@LH"I'?5/@V-@z;m@4@tV@ Frj@9]_2@Zd;@C9`{@Fѯk @ ףp= @Ä"2@=`y{@Dl@E*@1N-@|?5^I@䅨_@7BVGO@Q@bU#o@A/ @Cl@|Hد@tNju @Cl@w9?6+Rk&@MbX9@}S'?|J\7A@V-@`?A s[ܘ@ףp= ף@9_m*@y@ʡE@a@e۾ @-K@6ņn@Qσ@Mb@T@-ø@x&@K*@rŎ@ +Η@N芿2Q@wh3;@Zd;ߧ@C90zr@`|,@X9v@}5lo9@xٲ!@mM@tG@O" @MbX9@t@6ۨ@TZ@{Gz@#h@": R#i@MbX@$;҆ @Yo1 @V-@"Z9@}8@Q@\?4H{>@x&1? L@["PkEs@w/$?,3xW+;@*sƅ@q= ףp=?RP4 @R!@x&?O^ʾ@D>ǔO@`"~?&΢ @Mvi@"~j?v?PjSft@(\(?rO?6~:@fffffff?ˀ7n??:@3333333?{Ђ@7\ѐ @K7A`?$ȳ¨? iO@ʡE?ق?A`ɟ@Mb?*v }ŧ@ LoM @L7A`?w.@)F@QQ?~@5~}(U @x&1?{@K@-K?%Bq@ۚ@+?ِ@.ݩ@w/$?v 3X;@ x@L7A`?~?oj@PjSft@RQ?+^?!@K7?ޣǝcѡ@;/W7E@Ex?NMd?^k@Pn?QftX@I]7 ' @K7A?;V?8)o*@HzG?#29@$? @p= ףp?h'.0@$(2 @`"~?uP @_an#F@V-?dXD{@T>j @Q?%w@p @X9v??V?J @+S?1_@xKnj @1Zd;?mО]@5@(\?/fй@oUh@y&1?@V?)y;@%Cl?@z,7;j@9v?'c?0!V@rh|??'< q@ @V-?N@?:]^J@;On?D҅dT@C[_v@Zd;O?EZ*#@+<:@(\?raWb7@F*zJH@̌?=f?;q$L@X9v?1qK.@a"# @X9v?(op,C?8zw_x@Cl?]h@ b @X9v?nL9@Fe6 @K7?9"/?9Z&ͅ @"~j?DRq@j@.< @Cl?1Hf南?mWh@sh|?5?{`%@X}K @ +·?U&^@c3Be @K7A?",M@$.0ݨ@7A`"?{̄@4>~겍@K7A`?#!~li@4N@= ףp= ?fЎGc@k0>!i @X9v?k4'7G@(`͑ @+?M_eX@;At @Gz?LbA@e j@ rh?K}y@dG+_@㥛 r?>{#$(@N _@mM?7"2T@(B4)@Q?T?07@d;On?hafB1?[5@ rh?2D&iŝ?}[) @$C?~Hq@b!J@K7A`?]?@Cl?{fw䟸@O @S㥛 ?^۲ D@i$ @|?5^I?_:@ 51 @v/?#.?.  @S㥛Đ?3׮@/?I@mM? 9.1}@=WX @MbX9?Չgv@;@&1Z?` 蛆@{˳ @^I +?K)q@B8 @}?5^I ?]AX@٭x:T@Fx?MBi@|+ @+S?$@"@ʡE?EA3k'@q0 @ rh?fz Ϝ@A @Mb?iK@߇n @X9v?kz}yݎƝ?@!u @?@Bc@vLW @Zd;O?K'46$h?(0 @V-罹?yoQ;@~i m @/$?OƈPY?@K7A?µӔ@t@ @Pn?sZ@: ;ݍ @ףp= ף??>Sh @On?m=?-GΞ@1Zd;?1x?_:Ŧ @v/?8o@/#2 @)\(\?8x#?h6'@J +َ?<#UT@p@< @S㥛Ġ?K=ϔ@ ˲ @MbX9?;z@I#@V-?eW@[@1ކ@x&?"qw@Z`P@)\(\?&{B@+ ~@X9v?E^誢?F,T @Mb?0δy@hS@}?5^I ?~8ަ@uR4?$C?`g?$  @9v?jL0@|z_:˄@ ףp= ף?r\6@U-30@ʡE?ӓp?2L|p@oʡE?os`@P"@ʡE?ee ?>)@Cl?.1襚@™ӕP @$C?hh@{͔i @#~jt?-&at>?}MRI @ +Η?Il礋@TU@\(\?GX @Nw{,wv@h|?5^?<@nޕ, @(\?:Dv?S,<@ʡE?<@܈A}_ @"~j?o$p&-ݰ@@oʡE? Zڽ˿@*M @Zd;ߏ? @ty @`"~?X>t@ȝ@Cl?~Hd?L+O) @V-?&/:@xB j @tV?0B?J  @&1Z?֤9@~H @+S? S}@(f@x&1?jF?h @S㥛?xw(B)˄@mf @v/?Lv=^@V?k @A`"? ~F_@+@Zd;O?I7 @&'* @V-?-PKj@^!ό @S?g5R@9f$ @\(\?ȟ;k@N&^a@RQ?E&Bp@*âx-@S?Wq*?wۍj @(\(?eX=& ?z@S㥛 ?v#I"@ @L7A`?(ʁ^&@ @(\(?kK?䬤?[@Mb?IW @Ә>@ rh?p@_n@Q?<~{ ?i*DTk @d;On?X߼@|h%3 @jt?CE@Cc' @Dl?,\;̾@WpǬz@jtV?N=_?Ԥ7+@l?^&pt@BŚ<] @GzG?$aF?8ag @v/? ?R܊@V-?%hqNr @$m @d;On?f.@E@Ju @y&1?ÐTJ @=WX @sh|?5?ɥ@[T] @-?BGSH@~8 @|?5^I?KCCv@ӓqţ@nʡ?֗@;R= @X9v?O\Kb}@z'_@d;On?n,@K!M@MbX9?{k0Bz?48$\@ʡE? @ îL @vj@F{x?8l@Fx @:8=@V?k@x @wzӕ@L }3@?5^I  @tYO?8l @-栗 @Rr!=@Q-@J +@Ѱ ` a]@ i}@m@P^@ca݀@Cl9@lwe@O @(\H@:Bޏ@q#m@ r@؛mل@5~}(U @(\@Nw!@/$@a@xKnj@NbX9x@eЇë@5/@/$@@@,@,W @(\@(<_@5/@ClI@ĄH?uĄL@x@pw ?Fe6@ r@~0Ngb@9[~z@d;O@p!@5/@Q@lqla!?$(2@A`"@` 뀻@Q-@Q@,C?q0@ @{լ~@M}17~@HzG!@¹3P?w2@K7A`e@D|o?J @x@GIZoC?uĄL@V-易@לO%^̾@+$&]@Zd;@?ؓXL0O @~jt@N{~>@V?k @w/$@ *bng#@_n@|?5^:@~~@d#7@V-@H! @@ˡET@)lm`B@E]@x&1@"b*eXȰ@Z{k,@S㥛 @A4N؊?8I7.ќ@Zd;O@> M ?xk @-K@M/Q 7@._p@ףp= ף@<|@PZ^U @Zd;O@,ŸŖ@i82 @L7A`@<җ@8l @ףp= ף@N9I? t`^@-@Y:8E?ԼXt@ rh@xeYP?S7g-=K@rh|?@c?n+g@ʡE@Ah?A @S㥌@hoʄ@? *M@Gz@v\@NҝN @K7A@UliLY@$(2@)\(\@.,S)V?$(2 @Zd;ߞ@ZwB[,?+ @3333333@?  @v/@L?٠@ :@x&@`.,p?KrSi@Q@_z‰@~jt@8:?I1+Eh @I +@5fQY?pv @GzG@m ?n kZ. @bX9v@rjv8@~_=R @Zd;O@7WݫY@] /5. @q= ףp=@D5@h@7A`"@E@E]@(\¥@t곢@b҄ @-K@^.?,W @7A`"@xo@8ag @uV-@"?c@&@+@tO?B2b6@ˡEԐ@En{q'@BJ @ʡE@3e0( @ @tV@6 Rc?S7g-=K @ rh@9-ϗ@ZrWh @A`"ۡ@c8< h@"#Y@ʡE@/ +?a}@Zd;O?H>_?/-@V-?uN?4@ʡE?.@M}17~@QQ?}ϕZ?g @ףp= ף?zl7@A s[ܘ@"~j@ϩh?5/@Zd;O?9Sp=q@Q ބ @?5^I @s%J?S˫zƴ݊ @x&1?˙W?w\\ @sh|?5?䡝@5ܧr@U@K7A`?QӔŔ@KrSi@V-?5$F*?&kj @Zd;?M<1*@r١@V-?&|j6@~ d @ rh?\ b@ӓqţ@T㥛 ?6*A>_@˨h_ݐ @Cl@" œ@INϛY@oʡE@FՅ?q @9v?nZ?w2@GzG?bj@d|YK @(\?G\&?!b6%eܬ @jt?%JNF@>F @jt?,I9?OquN @On?1v ?TZ@S㥛 ?O֍e@Mvi@ +Η?]?hj@xk @lҍ?%QA?@ x@x&?Jc3?z @K7?|%@k0>!i @uV-?L8Y'0@C[_v@Zd;?ш[>T?ۚ@S㥛 ?f,n@}8@㥛 r?3S"_ɢ@=WX @X9v?k_PO@8( @X9v?Mńe@oqT@Mb?U?A/ @Cl?G=`5C@9f$ @?C&_?`|,@ʡE?QYQ,?ؓXL0O @V-?i@.&@A`ɟ@+S? _@$.0ݨ@GzG?k`?R!@Gz?SՇWo:@33+ @(\?xV޳?  @S?|3u?A @/$?Lg~\@ 51 @}?5^I ?Calb@j @-ƫ?\5c_?5@K7?ٻIrtݿ@4N@X9v? 3? @3333333?#+5J@$? @Q?KKmf"@X}K @v/?[_?tNju @V-?4}@{͔i @ +η?Գhǚ@mWh@S㥛 ?bd@Fѯk @B`"?o Տ?9]_2@V-?S_н@g^ɤ @Pn?/8U?N _@T㥛 ?Eٗ@DT@-ø@Cl?ڨ v? LoM @Ex?-' @ty @x&1?hi@C @%Cl?Zz@vK.0 @ rh?,Vy?XSpb@#~jt?~yy@WG`N @uV-?f@HNZ̝ @B`"?FO?`"{D @S㥛 ?i0 T@O" @|?5^?pm!e@e j@MbX9?O?;@`"~?\uʹ3+@'%gf @L7A`Ђ?YK+F@(\"&N@Cl?%_@ @V-罹?D ^@ îL @-K? ϴk@L+O) @ʡE?8HB@1N-@\(\?RJ!i@Sξ@HzG?= `?xKnj @9v?Ō@F*zJH@5^I +?P+@Yo1 @v/?>Xy@_an#F@S?e7%3C?1N-@bX9v?=z?]\Ȭ @~jt?Z Q;@NҝN @v/݄?pD,ҙ@g @J +?ȉ}Koѱ@pظ,@㥛 r?x9ᬪ@& @ ףp= ׃?Ӛ#q@5~}(U @㥛 r?rJU,@9FW @`"~?}|:7Q@ @?9!;]@u%/@K7?#b5y?|J\7A@&1 @]0@8l@S' @>+?L }3@9v@G\?V?k@Cl˪@G?8l @S㥛@ڷ ?Q-@On@@ؓXL0O @V-阮@LܼQ?g@x&1@lXXn?NҝN @%Cl@U2׳?A @Mb@"'h<@KrSi@p= ףp? (u1@DMo:@\(\@AF.t@ :@q= ףp=?&@i@(\?ۑxD͎@uĄL@zGz?@+A~1 @HzG?tq?._p@\(\?O>j?S7g-=K@x&1@tE'@瘨l쇏 @HzG?u!X@հ~3:O@On?TU|b?8I7.ќ@Zd;O?w+E@ @S?:HCE0?n+g@`"~?,50?׾ @T㥛 ?%2=@? *M@p= ףp? ⍰-Y?~_=R @S㥛 ?W~@wvXف@V-?r*A?o>‰@S?2݀@Yo1 @Pn?k?"#Y@&1Z?;AJ:@  @T㥛 ?q#@A s[ܘ@ rh?m?+ @nʡ? lu$@8+f @㥛 r?ώv@5/@Cl?5i@Q ބ @K7A`? i:X@˨h_ݐ @~jt?}ٶI_И?h@K7A?ETW@@a}@Zd;O?Q?V?J @?t&X/?E]@;On?^IW(@ @Cl?+cƹ?KrSi@V-?Cv5@+$&] @S㥛?q9͞@$(2 @3333333?Uߞf@q#m @L7A`Т?B[R@B%̚ ݖ @L7A`Т?,x @!b6%eܬ @{Gz?z/t@b҄ @Mb?%'3?g^ɤ @V-?G"l@4@`"~? ȗh@Fe6 @d;On?@e@ZrWh @-Ƌ?mpg? i} @{Gz?,%>յ@Q-@x&1@|P@q#m@-K@0N?5/@Mb@(p@xKnj@mM@_xWt@,W @ʡE@Kj &@q0@+@_Y*y@uĄL@x&@D\J@5~}(U @-K@7"x(@V?k @w/$?:u@5/@= ףp= ?I=Pk@_n@MbX?,7y? i}@L7A`?$5˪?PZ^U @K7?ʡE? Uh@J @S㥛?'Ӳ-@ԼXt@`"~?l,‰ @Z{k,@RQ?Zsg@i82 @`"~?w0ॆ?瘨l쇏 @zGz?'g`?+A~1 @|?5^??2Ѽ?A @-K?%`ٹ/@KrSi@|?5^?͎R @ӓqţ@oʡE?3@ t`^@jtV?O+˧@E]@K7A`?%4N@@ ףp= ??`zV@o>‰@Pn?܀O[@DMo:@MbX9? 'u?M}17~@ rh?;?հ~3:O@?5^I ?X 9'V@g@/$?z@w2@;On?9A<@KrSi@x&1?u^FI?z@K7?"G1GX?r١@'1Zd?SP56?3d@K7A`? -? :@?5^I @r$^Kn@L }3@(\(@TI,nI@V?k@tV@ ęЈ+@ca݀@MbX9?f]}@9[~z@?-D8c@Q-@Q?zTJǯ@O @jtV?T,ݽd6;@8l @RQ?^@Q-@MbX9? s 7@8l@Zd;w@v2 @8l@x&@c4@8l @-@"~j+ @ӳt@V?k@+߼ @*(~<"XH@5~}(U @K7A. @,rϜ?L }3@)\(\ @4aG3@ؓXL0O @Dli@d{@@,W @oʡ@֠c$?Q-@Qѿ@М#1@$(2@ˡE@I};m?uĄL@Gz@Ce@uĄL@ʡEN@C)u?O @v@(严@5/@zG@ȣt@KrSi@K7@'1wϵ?? *M@Fx9@֒B1?S7g-=K@K7@hm@ i}@Cl@&$G@8l @-K@|/a@? *M @~jt@?>(Ɛ@$(2@(\(@G{@@+$&]@m@*xf'g@E۸ @?5^I @ \?M}17~@ ףp= @ڻ@+ @/$@-@ca݀@L@f$4@$(2 @Qދ@fأ@J @Sc@+? @Dl@6-7Nu?PZ^U @-@} 8?._p@l@L1@Fe6@/$@wb?9[~z@lR@0 5@n+g@l@Vs?xKnj@x&1@UF @x&1@恴 @I1+Eh @Zd;߁@R@  @On@|w@V?k @ ףp= @o.]?@@ߏ ?Q-@jtV@XEi@uĄL@bX9v@_oZ G@g @X9v@4@w\\ @V-林@ $nT? :@GzG@`)}@w2@1Zd;@pT$@S˫zƴ݊ @= ףp= @@rC:@A @{Gz@R@xk @v/ݢ@ v1]@ӓqţ@y&1@HŬ!@E]@jtV@۱o4#?KrSi@}?5^I @lƋ@5/@ˡE@|aۺh9@TZ@K7A`@.W=?~ d @}?5^I @3Ѽ?n kZ. @Ex@n@$? @ʡE@ļYB@z @/$@gg@Qσ@QQ@JW+yδ?L }3 @T㥛 @76I?6+Rk&@jtV@zyԭ?Q ބ @S㥛@ق@zv8No@'1Zd@N=@y@Zd;O@ ug@q#m@ˡE@]]X?": R#i@uV-@+XXs9@S7g-=K @rh|?@B@+$&] @+S@%X6@1N-@l@h]ɧ?ZrWh @fffffff@`&?.ݩ@h|?5^@ӳv?հ~3:O@^I +@d0`@1N-@ rh@hcw _;?ϩ4~rO @Fx@!md()@ #.@J +َ@ӻ+?b҄ @V-@ &?XSpb@w/$@*;MgȆ@ؓXL0O @bX9v?l N@׾ @|?5^@:@PjSft@K7@ow߲?(f@B`"?<5@NҝN @'1Zd?}f$@] /5. @A`"ہ@H-@&kj @K7A`?qD)?9f$ @y&1?_߄@d|YK @mM?B ^@Fѯk @Zd;O?V:?6~:@?V@MbX9?ߥbE4@q0@Zd;ߏ?[Rz@K@uV-?HF۳ӱ@_n@L7A`? sٰ?7~&'@A`"۹? O,@˨h_ݐ @x&1?3O_7?8)o*@sh|?5??~U_@QC@jt?Pp㍃@ @rh|??ʚgͫ?S,<@rh|??X8,@;/W7E@V-?Sr@wvXف@tV?VNgF@~L @lҭ?)gVݗ?dG+_@Q?-]@+A~1 @?5^I ?zh`"@8zw_x@|?5^?GXw?`C%= @|?5^?~]'*?=WX @?5^I ?H> ?"#Y@fffffff?ZaX$@h@+S?a=w@ t`^@/$C?Qq)¬9@; @x&1?]T@{‰@~jt?2ut? x@MbX9?$'? @w/$?)cÃ?TU@~jt?}jw@HA{{ԅ@'1Zd? HvX@$(2 @Q?1?u%/@ʡE?#}+j@}MRI @x&1?]3T:6?|J\7A@"~j?ڵ{M?Ə?̀y@RQ?O;'k@F1^@?nz)@g^ɤ @/$?BP@ʃ(+@J +َ?vE?i@ʡE? W@瘨l쇏 @p= ףp?#]pB@|z_:˄@K7?K&{@8ag @̌?F$]@cGL@|?5^?BB쾇?i$ @x&1?P\aDZ/@oqT@= ףp= ?\aL?Mvi@}?5^I ?>ƙ@𣨠;ō @+?'t+?g@Gz?j2Hȝ@1DЩ@?i}r?6+Rk& @V-?z"SC@E۸ @K7A??"8/@+7 @+S?Q"l9@YqO@mM?{@ i} @sh|?5?$F@2Ui @v/?ɾ9Ѧ?`#݅O @7A`"?3:b @C*@K7A`?#(+3Ƹ@4>~겍@/$C?,LeU?Y6M @V-?KXq?.  @Q?&_(@~i m @5^I +?/y$@OquN @/$?u80@QC@-K?_@Oim @QQ?ќ?oUh@NbX9?dgA@{;"@MbX9?_; hj@e @!rh|?Zot@1N-@V-?+;*" ?i'tL5@9v? u?k0>!i @K7A`?fBPu?'mgG@?fs1^?/hBpm@{Gz?`#ߞ@pv @Mb?(D3?K=@= ףp= ?pD @T>j @S?%lT@I @Fx?Q<@ty @/$?5)*8@ܹ@X9v?{U B?b^ @ ףp= ף?x??:@nʡ?%-$@~?[@nʡ?Vn`1:S?N|@x&?>h(Gs@d^@ rh?Ow,P?M7ޡ@#~jt? q@X}K @#~jt?Sd.w@7\ѐ @oʡE?p@(#?'D. @/$?1@8( @/$?g`3m@zW̦@}?5^I ?Y9#?4>~겍@Cl?:@9FW @Cl?)v[w?M}17~@#~jt?TDLM@:f,fM @nʡ?:LE@@ʡE?;9@j@.< @?Tlȷ@+ @A`"?r\."u@2*w| @ +?U2s@_an#F@w/$?y ?i~I> @Q?5f05Pޖ@LT @/$?κP6"@N _@w/$?| rF3$?fB@ +?޸nߓ?r١@ +?;<Sh @ ףp= ף?v)|?$  @Zd;O?l.@ @\(\?5?mf @|?5^1@5 t@8l@#~j @:@8l @mҕ @>qF0@V?k@9v> @srF@L }3@Cl @Nw!@(\8@k/ޗ@,W @/$C@X @O @Cl'@n@Q-@+w@|8rW@5~}(U @K7A@v;!@$(2@/$U@-B&!I@S7g-=K@㥛 2@g.U@5/@Zd;OW@t@ؓXL0O @w/$@@X? i}@@yPR@ca݀@(\@ @Fe6@uV-@!Q@uĄL@X9v>@:=xWX@9[~z@S㥛 @\y]_ۉ?KrSi@ʡE}@vД?? *M@~jt@'(p9<@$(2@@`2@+ @Q@o۝R%@PZ^U @rh|?@%Y;%@M}17~@Pn@ux>>:@8l @x&1@ ͼ?@n+g@5^I +@Sw@8I7.ќ@/$@ o4+ U@$(2 @= ףp= @+X܍@V?k @h|?5^@٬4D@d#7@Cl@aPw?J @̾@7 X@._p@MbX9@VvJ@5/@x&1@zyK@Q-@X9v@&*rv@E۸ @/$@ d r@i82 @NbX9@C/pv@@3333333@6*j?uĄL@w/$@8F@xk @K7A`@#j2@xKnj@x&1@Ot/@q#m@Gz@ꖀ.kp?ӓqţ@ףp= ף@.@? *M @I +@N9~@KrSi@ rh@^yo@g @3333333@~lh@+$&]@ʡE@2@I1+Eh @lҝ@S !@>F @Cl?7zji?w2@nʡ?xq@A @K7?o"܄? @Cl?@F?' @Q ބ @MbX9@IJ }L@5/@\(\?˅Iش?z @?x+dE@հ~3:O@J +?X Ē@׾ @ʡE?w2:o!@NҝN @rh|??J"s*?  @Zd;O?jɋ@q0@GzG?س˩̲@+$&] @X9v?EE@b҄ @ʡE?6@VH@ i}@Q?.O5@Z{k,@-Ƌ?&Y@ZrWh @Mb?jAj@&kj @X9v?$yx@Fe6 @K7A?Xlx@~ d @X9v?~P@wvXف@x&1?I*g@S7g-=K @ʡE?  R@$? @'1Zd?dO @w2@oʡE?yw9, 4?_n@Zd;O?m[/{ϙ@o>‰@ rh?,@h@&1Z?%mf?z@S㥛 ?z\WL@w\\ @zGz?7Ch?!b6%eܬ @/$?i3Û@"#Y@uV-?} ]?y@`"~?̀ F@~_=R @On?J{V׎@": R#i@Fx?=@6+Rk&@On?+A@zv8No@5^I +?4FWr?|J\7A@h|?5^?PB09@S˫zƴ݊ @ʡE?J)H@Qσ@~jt?d*@1N-@y&1?%QÀR@KrSi@RQ?[@]\Ȭ @Mb?%#ϸ؄@.Qr @~jt?z Ï@ #.@{Gz?SL@a}@/$C?>@ CS֖@QQ?XᝒE@1N-@I +?{ (?PjSft@Mb?;u6@.ݩ@ףp= ף? ' Q @*sƅ@x&1?岗|(?TZ@Cl?v,6O6@K@q= ףp=?$!a܇~?g@#~jt?Ό3@d|YK @MbX9?Lao@Fѯk @\(\?~A%z@,W @nʡ?]3V@oqT@oʡE?d˪dA@5~}(U @V-?RE ?+A~1 @?)}? t`^@x&1?|2iج@rŎ@S㥛?xBG?n kZ. @~jt?Yo.Z?ԼXt@h|?5^?}# @6~:@MbX9?]۔@ @"~j?<&;ҡ@4H{>@x&1?zΫtVh@tNju @d;On? :8ύ@ϩ4~rO @Q?p$5@$(2 @~jt?e@Mvi@x&1?xAsҭ@k0>!i @x&1?5-@:]^J@5^I +?CJc>@b ~,@Cl?eo;E@8ag @x&1?۱@6~:@zGz?Sȼ@PjSft@Q?芧3@(f@K7A`?験LX@] /5. @I +?&@r١@bX9v?/c|@ؓXL0O @J +?υ?.  @Q?폭@ty @Dl?E"@7BVGO@x&1?툉J3?}[) @"~j?ޕ ej@8)o*@uV-?Wr!@=WX @\(\?˔uӇL@˨h_ݐ @#~jt?h>/r?S,<@#~jt?K/p@;/W7E@X9v? $@j@.< @ rh @K?8l@(\@kCk/x?V?k@V-O@Nw!@|?5^y@D c[@L }3@!rh@߫1?8l @K7A`@J?,W @9v@1p]@O @On@i`X۪?ca݀@"~j@ Qg?5~}(U @/$@Kܭ@Q-@V-@W&M$@9[~z@;On@,5@$(2@rh|?@H*@S7g-=K@`"~@G$Ĩ@V?k @Q@6>=?+ @v/@I1?8I7.ќ@}?5^I @j ?ؓXL0O @/$@a# @PZ^U @7A`"@l@Fe6@ʡE@5J??N@KrSi@&1Z@Uvn?n+g@|?5^@ģ&@Q-@}?5^I @|" s? i}@A`"۹@< ݃@$(2@X9v@j#g@q0@? S.?q#m@NbX9Ȗ?ؐǿ=?NҝN @bX9v?&=? i}@K7A`?8@+$&]@S?{{-O@uĄL@ rh?H2z@KrSi@v/?)h„?? *M @RQ?ϣE?wvXف@(\(? ?5/@x&1?MzQcn@  @zGz? wcQ@հ~3:O@K7A?eA~?׾ @X9v?襌I\b4@Q ބ @)\(\??#@o>‰@sh|?5?dN4?g @y&1?Dm0De@b҄ @Cl?TjB6?+$&] @ףp= ף?e@_n@Cl?B@w2@ʡE?0@@h@ʡE?MA@>F @jt?md@Fe6 @Q?7ۙ?&kj @On?"i?$? @|?5^I?_t^@ZrWh @w/$?mcx?z @v/ݤ?(Ɔߛ?I1+Eh @K7A`?09'C@KrSi@GzG?ґH=@"#Y@Ex?' Ms@~_=R @Dl?ܦ9f@z@Cl?%-{@g@K7A`?-:NՈ@ @oʡE?%vteX?S7g-=K @ ףp= ף?%_I ?ԼXt@X9v@d HS`@8l@B`"y@Qi@V?k@-@>l[#?L }3@ +ί@ͬi"@,W @;On@#Kg@ca݀@\(\@hIE?O @v/@4@8l @S㥛 @3P?9[~z@;On@Nw!@Dl?c0@Q-@mM?15?V?k @Q? :S;?$(2@}?5^I ?k?S7g-=K@7A`"?J̨@Q-@K7A? ?5~}(U @ rh?yE@+ @!rh|?|7t@PZ^U @"~j?:=?Fe6@!rh|?wN@ i}@㥛 r??@V-?S)/@8I7.ќ@ rh?;?Ij@KrSi@Cl?xe@5/@RQ?r&(@Z{k,@&1Z?P"He@d#7@?uDƭ?xKnj@= ףp= ?Ju.?L }3 @Mb?­@n+g@V-阮?D14s?uĄL@ʡE?u39@xk @'1Zd?o<@._p@QQ?0B '}@q#m@L7A`Т?u'l@ؓXL0O @V-?KSXnq@E]@7A`"?,e@ :@= ףp= ?oRUy@$(2@Q?J:R?M}17~@On?%=S@$(2 @Ex?D{@ӓqţ@\(\?_(v?i82 @MbX9?ۻ`T3@uĄL@MbX9?Avlss@׾ @@}C<@V?k@ ףp= ׫@ACҝ;-@8l@Zd;O@vf @L }3@?5^I @X9v??K@ca݀@K7?|p@,W @GzG?8XyE@9[~z@;On?깲?O @Mb?M@8l @^I +?i[j{'@V?k @ rh?.gY$2a@Q-@K7A`?ǾGf?Q-@(\? 8Hb?V?k@"~j?.pTC?ca݀@S㥛?'X@L }3@~jt?N߭?8l@\(\??9[~z@z߀@u@!ةP;@8l@Q @i#׸?Q-@(\¥@d%aqZ@8l @p= #ͽ@dT@$(2@?5^Ic@s0M@V?k@#~j@!=&:U@5/@V ~@l ͒@ i}@Hzɗ@uoJۢ?$(2@X9v>y @BKk?L }3@ʡEV @?˸@5~}(U @ rـ @/=kD@5/@X9v @ma Q@S7g-=K@~jt@ @ꤗ@Fe6@|?5^ @fvb?uĄL@ffffff @eg{l@ؓXL0O @'1ZK @`W}?KrSi@$Cʥ @=YB?Q-@-˥ @ @,W @ˡE9 @&xyb@(f@/$P @\C "@uĄL@jt @3_eֈ?? *M@&1 @ `Ew)?z@~jt @Cd@O @~jt_ @2CcpW@$(2 @㥛  @+?q#m@l& @c?@ca݀@Cl @]`@xKnj@nQ@I @E]@jt@c @5/@8@U̓S@ i}@S㥛Ķ@RvY@+ @1Zd@VZ*iG@8l @)\(L@Ït x?+$&]@V-@YSy@E۸ @y&1@O)\@M}17~@|?5^y@1h E@w2@jtԻ@7s~@  @d;O@Ҳ@? *M @S㥛Ā@)Wwdݶ@n+g@9v:@U5{ ?TZ@na@pX?9[~z@`"@@OF? @ʡES@Ij3d?._p@- @m 3V\@xk @jt$@UV ?PjSft@vϮ@ !t@J @h|?5^@Py5@$? @v/@mm|@S7g-=K @L7A`0@3/ ײ@@NbX9@λKì@I1+Eh @`"މ@ C튳?i82 @q= ףp@ @PZ^U @Pn@N@1N-@/$@Ӏ@Q&-q?= ףp=@f֠@8I7.ќ@V-@Ote@V?k @Qq@ .- @z,7;j@oʡ@ Y:?d#7@/$F@X=?ӓqţ@jt@eaLw?A @ףp= c@Vk'ӛ?XSpb@/$@?4@4@V-2@ #@@Fe6 @Zd;O͚@MhS @/hBpm@On@%1@g @X9v@J@@&1?sh|?@u\hyϏ@] /5. @%C@<$?KrSi@Mb@SE@Fѯk @-@3 @ﴻ[L+@}?5^I @ԓ?g@"~j@*}?r١@Mb@`fx̫@jv Ti`@Cl@Cyx%7@NҝN @S㥛Ĺ@n!`;J@мV!i`!@(\@a)^L@c>˳ @Fxi@?/@ȍ'm?V-@-&fB`h@7BVGO@x&1@Fd $@uĄL@5^I +@;Ń@(\"&N@jt@mGl ?z,7;j@Gz@2Don@cGL@̙@ĕ;@ :@3333333@>gHN@٭x:T@QQ@=6;9 @ t`^@Gz@XN9ۜ@QC@Zd;O@ m\VX?>F @(\œ@-.?U-30@S㥛D@l;@ԼXt@Zd;O@˪@w\\ @S㥛@b?+7 @NbX9@k値@.Qr @n@c֓j@S˫zƴ݊ @X9v>@8@@DMo:@!rh|@i81?| ?\(\@&RG@˨h_ݐ @ףp= ף@CژW@IV F@K7A`@vG[?WG`N @S㥛 @xF@׾ @S@%|Q@_an#F@V-@of/kO?y@On@Kc[@$(2 @Q@(F{? x3? +@-J@Z{k,@K7A@h!@6+Rk&@\(\@+_X?@]kI@V-栗@iD-%➛@+A~1 @GzG@tX@]\Ȭ @V-@ybi@z @q= ףp=@ZX2I@Qσ@A`"۽@ٙ/š@{;"@On@/RbA?B2b6@Cl@Ő!@zv8No@;On@Ɂ@["PkEs@~jt@id@߱@ˡEԫ@j+h?4>~겍@%Cl@M:D^@,W @V-@?ϩ4~rO @Cl@yf4?": R#i@Cl@M".@@bX9v@ .@~ d @h|?5^@eNҭ@Q&-q?/$@7mW#?{@Mb@Dwo_u3@~L @Cl@ׯD;_@-<^Ѣ?Cl@H$(?ZrWh @V-@k>}ɼ@ؓXL0O @;On@L/Ȧ@~i m @q= ףp=@0p.@ #.@MbX@nʁ@6~:@~jt@*l@i@ʡE@w@; @Gz@w\ox$@X}K @V-@;L?n kZ. @#~jt@aa@瘨l쇏 @"~j@Egʌ@PQ @RQ@:ϐ@ i} @}?5^I @`H>5ȅ@oqT@&1Z@P+(@u%/@}?5^I @@q"FZȸ?Ԥ7+@{Gz@uUP@@3333333@)ךn?_+M/8@B`"@'@ iO@oʡE@!{o!z@Q ބ @3333333@IH+ x@ʃ(+@Fx@u4i@4>~겍@Zd;O@b?RWhoJc:@zGz@U"M @LktԌf@rh|?@>X@&kj @Cl@]A`涓@OquN @~jt@b7E<@tR‡@ףp= ף@E7 ?xyj@x&1@ksi3@-N @sh|?5@2'?d|YK @Fx@gN] ?F@@K7A@?B@8ag @v/@ WpΔ@d^@J +@Shq_u@٭x:T@9v@N%N?*<@d;On@t́{@հ~3:O@= ףp= @p?b҄ @ rh@i@@)\(\@h4tM{@(I}@S㥛 @1M@6@:]^J@v/@ 3?e @Zd;O@8@2Ui @Mb@Q[?ze@"~j@8 $ۜ@dg9hN@-Ƴ@(GT@tNju @?5^I @%үu@8)o*@uV-@#@i@Cl@Zt@n x'@K7@M,FuB_@qQ V@S㥗@];G@N _@S㥛 @y9O?/hBpm@+S@Ep@uR4?S㥛 @Ǥ~G@b ~,@;On@ ͨ@[@jt@Q+Ve@*sƅ@(\@Vo ??lNط?`"~@u4֩i?TU@ʡE@Ɏ@5ܧr@U@d;On@'Pt@Y6M @&1Z@D@=`y{@ʡE@R6@C[_v@ʡE@U@+ @rh|?@l@pv @= ףp= @GY?i~I> @S㥛@^@E]@RQ@M B@BJ @RQ@MwE{@ @"~j@[:)h@!b6%eܬ @ףp= ף@B GE?M}17~@/$C@Od;@`C%= @S㥛 @\@&@d;On@{lphB@  @MbX9@/j9$p@a}@\(\@Ums?|z_:˄@B`"@z+C?|J\7A@MbX9@("? @@q\@zW̦?X9v@YH?0!V@7A`"@x4WԈ@K@bX9v@DC0@ @@(H(@=`y{@S㥛 @.#Ǡ@ʈ;?(\@u?ܱWR@S@#pk?S,<@MbX9@P!?B?(f@MbX9@ |@7~&'@3333333@~ 9@8zw_x@(\(@v=ȼE?UT^@oʡE@EHU@(B4)@-@x o@;/W7E@On@)˜~@?:@zGz@]*@No@S㥛@C,h@9]_2@(\@(J֓@R큅d@+S@+ Y@Qfn @Zd;O@eGz@vK.0 @Dl@̸ͅR@+<:@Ex@a'oa@O$g@^I +@C!]Ҹ?_>ۺQ[@x&1@Bws@8( @'1Zd@yu?c3Be @Gz@$u&@bĭM@NbX9@9ZF?+ ~@q= ףp=@zD@w2@ rh@fؚ,@xٲ!@ +Ο@-V?D>ǔO@lҕ@҈ޓ&$@ @Cl@OrC?p@< @v/@B:1)8?xG?@#5@dG+_@n@qdLƓ@,BM@v/݌@)\^ue@r( F8@Mb@:"")@b!J@Zd;O@kU|?*M @9v@ 0KOϳ@!ز@QQ@o|L@ i ,5@Cl@exÒ@I#@X9v@fWح@ CS֖@S㥃@cy=׿?o>‰@/$C@^< = @HNdRi2@ʡE@bEi"A@6~:@MbX9@ D2@q @NbX9Ȗ@Vfe?"#Y@)\(\@bkC@2*w| @ʡE@J]@rŎ@V-@1Jvbpެ@oUh@/$@1ٕE}@E۸ @%Cl@|@ ]@ rh@Sm@[a頬U @S㥛 @rBC?h@7A`"@8@)F@K7?d&A!M?N&^a@T㥛 ?h 3s@xk @Gz?o.=k7@e۾ @/$@< @R܊@Fx@sBM@[@w/$@ߣd*=@߱@nʡ?!+~@|]ξ@S@4 q;? VI@K7?RX3@Nw{,wv@@ڋ}.%@ 5V@(\? 8ʆ@I @;On?Ǫ ?*âx-@w/$@lR%j?5~}(U @MbX@3K˵8?VTm fp@h|?5^?1|@M,0@HzG@{^@~_=R @ʡE@|n:@:Z9@/$@|GO@HA{{ԅ@)\(\?ӛV!I?1 @ rh?yX@O%x5@+S?w ?Ϣ?(@H8D@|?5^?L?5@X9v@B-?/ֺ@1Zd;?*{|@A`ɟ@^I +?롨u\@^k@tV?Rh@n|>*DW}@S㥻?g8X?7@K7A`?8VwS@ۚ@= ףp= ?io?KrSi@+?4@PjSft @L7A`в?k$d4?U <@S㥛?V)@}ӚlP@jtV?Զ8*@[@1ކ@9v?$w)ZH@}MRI @3333333?M!k @4@x&1?BY*@̀y@'1Zd?1a!?7\ѐ @S㥫?|k?jG}2 @S㥛?1wi)O@T>j @V-?[Q@w^c@|?5^I? :}ș@s`D"A!@ +η?cmU?+R"q@~jt?mѤ\?WpǬz@fffffff?c@Mvi@Cl?=h#@{;"@x&1?c ol6@F1^@ʡE?t>tN@;At @+S?M( T@|+ @Zd;O?{ƆMa?}[) @v/ݴ?m@=WX @!rh|?ҮР\@܈A}_ @̜?Jl?6+Rk& @Cl?(@fB@Cl?,=*s@SY~]@?YuK@)y;@tV?gJoI@\!5@Q?Qd@Ә>@K7?K@fP^@9v?.zϾ@0LO @Cl?" {7@48$\@S㥛Đ?Е&?y-J@tV?{gWQ@07@K7A? ]?-ø@Dl?sJ@A/ @I +?X$@*C'@x&1?eLgI@(`͑ @ rh?#7Y>=@a; @S㥛 ?Jl! @6zߛ[@V-?c5+@=6pț@K7A`?.O @F*zJH@jtV?6)@zϲ@A`"ۉ?8\4[J@ކ®.@S㥫? w.9?-GΞ@Pn? .q>9@qaA8Og@ ףp= ׃?[%^?z?@K7A??t@9FW @/$C?)άY?!@"~j?5-:@$? @x&1?k(X:Ӽ?5/@ףp= ף?1y@e j@V-?'zN@;>5@?pV@Yo1 @ +·?KMB@`|,@oʡE?D@nޕ, @Cl?׋?6\!V/@fffffff?7ü;f@`#T6@B`"?jg,j@$m @jt?" ð?C*@fffffff?w @>Sh @oʡE?|[|@3n@S㥛? ?I@ʡE?''A"@LY@&׹Q@?7@֋7@x&?Ǵ{@ܹ@Fx?Cm+?iVN: @jt? `k7|?CW с@q= ףp=? -:3'?Ʉw=Λ@S㥛?grQ @E1 @/$?3.&N"E@>yp@ +η?ol@:f,fM @Cl?eZPx@i$ @rh|??D~Q?e@\(\?C!&@qyIJ@}?5^I ?@Y,@I1+Eh @/$?;Vz@1DЩ@ʡE?TO b#i@79. @K7A`?O$@? I@S㥛?Z@mf @7A`"?T@Av+@Fx?Zl"?ty @-?fy@f  |@nʡ?Ư#/@_obm@QQ?c ?cSDc @Zd;O?t=@-hh@/$?@4`@X9v?9v7ؚ@ b @Zd;O?8SLUƭ@ @p= ףp?]0k?+6ەT @`"~?SF W=@yyuܲ@Fx?4 @B%̚ ݖ @9v?)9+ͳ? #)S@ʡE?<#@LT @y&1?Q>@g|1x?/=g @Dl?'iZ@g @'1Zd?SXJѽ@(0'@7A`"?f @Cc' @}?5^I ?2X^@v#Ԧ@Zd;߯?6rs@~?[@Q?YX@jԳE @Zd;O?y]@k0>!i @?Ca ?M7ޡ@J +َ? =@6i@ LoM @v/݄?_0@/cfe@Mb?Z}P"s?SJs__n@S㥛?@vxՇ@~qjB@ ףp= ׃?CRC@0O@ ףp= ׃?jCѲܬ@V'+H@̌?qA"[I۸@YS4S9@ʡE?F}@q#m @̌?ՕP?۹e@p= ףp?nWm9c@]L[@+S?Ye?< ƃ@Ex?sW@:!tG@nʁ?(d@,j @p= ףp?W@w6@jtV?/Jy@hnRN@?Eo7$@9Z&ͅ @ +?.>,V?Q-@%Cl?9Yz@4ݷ@ˡEԘ?$`@xKnj @Cl?Ox{@2. @NbX9?fށ@Fe6 @GzG?|gG@p|@(\?9]( U,?U|5q^ٌ@~jt?YWҎ5@ @jt?*C@(I}@On?P ._?s>m@uV-?Ĥrڱ@ iO @ףp= ף?"aVk?T4@%Cl?g)o/@ x@HzG?ޠ9-ĺ?S&M\o@L7A`?ƛepϮ@qQ V@zGz?k< @)1$om@q= ףp=?r!Gߒo?W~g0@v/?oܐf?[&@ ףp= ׃?,Qc@lE@GzG?-=>@;q$L@MbX?a*4@ @%Cl?u%@wUVhМ @X9v?t.;ku@q~d˜ @+?(G`?)='>@I +?Go ?- @d;On?SٺM@o? @%Cl?(??>)@^I +?h_ϐW ?p @HzG?Ku͍J@WpǬz@sh|?5?N?#O @Zd;O?l&@Vs @x&1?'A@agVB@㥛 r?{ME+@:Z9@#~jt?$Wj@M;gE< @zGz? 10$?E44@Q?\#+p?B# @fffffff?]ɯ@x<@!rh|?|s7@I#j @㥛 r?@tP?P"@/$?7*嗹@pCb|p@V-?k@GYY@Zd;O?ߒQq;@$@Mb?e3M@݄* @RQ?f5ƴ@-`PPƂ@?,/'DC@.  @HzG?F D@$  @㥛 r?Ƨ5 f?Dw%@Zd;?eA%@q*v @T㥛 ?=$@~?[ @rh|??Ul?儶U@~jt?] @9#І@\(\?֯2NL@0kK@ rh?Ɗr@'D. @`"~?]X<@hS@X9v?]IQ8@mWh@I +?o",FH@;Ngdƪ @V-?ړφ@T5]! @S?!izF@@q= ףp=?k"@Է98@(\?.@",@L7A`Т?GS@51M @/$?XT?[5@K7A`?ɸKL?ʴ"@ @9v?ڞ;@oz @RQ?F|D}?ܦI@{Gz?D!̱@Q9bz@`"~? E'w@`.T @S?p\4$?)7` @X9v?> {ے@ ī㾃@A`"۹?^۔@O @?ڟ@|h%3 @x&1?k.@_Ǔ @?yխ$,@Vg*v @x&1?G`@j@.< @l?\mRFm@"ä@X9v?J'y@=mJ@x&?8Hu_^U@'ނ@\(\?V%V8?Qfn @tV?c(;?AZH'@x&1? 9O@r"V:@Q?!Nq@ ī㾃 @Cl?œ*N@/at @Mb?mᬥ<@^!ό @Mb?=JLɼw? {@)\(\?=v`S@̎@w/$?k" @V?J @T㥛 ?raGD@N| @ ףp= ף?J4\$?v<3" @%Cl?t1{@]#ٕ@K7A`?y1@ #)S@y&1?pB@1N-@v/ݤ?;%s@+A3 @Mb?!2w@'; @d;On?")x@<>@Q?ʡhqޑ@ПӴ @q= ףp=?Rd@O:X @MbX?>Jއ?fӻ}xε@Q?GWY@AAՒ @Cl?\_p?:!tG @̌?@0|` @/$?}RvV@8+f @+S?񶋀%ի? P, @HzG?mZŗ@߇n @jtV?!?\Ahw7@S?y@jv Ti` @?-M}@BC) @NbX9?!5?C QT @= ףp= ?ɹøֻ@53bC @mM?0S@=}@ʡE?H@ @X9v?Qo,M9?_R @y&1?g$4@r"ӿ( @d;On?A^>@A @^I +?917$@=@0@/$?C!#2K@a"# @?}K@M3a@ʡE?*8f'@`"{D @%Cl?r:Y?RU&ǽ @ףp= ף?m^1Ë?\|Et@~jt?V)ҿ@M!Dz @d;On?pm@t@Cl?0gG@v.1;0S@|?5^? ĝ@!B@4 @Ex?yo2@L+O) @Ex?GDaV>?S=ѕg @Ex?5M W@|{9ō @= ףp= ?\/1É@VZWY @7A`"?o:@g @1Zd;?/ i}3?͍ @I +??b@q@5^I +?Od"@៌S @;On?w@h1@ +?! i@\!5 @ףp= ף?Jh:@BŚ<] @I +?a;u@oh4@ @Dl?eE?Fѯk @ʡE?3Q(@O9ߔ@y&1?!z,?&'* @&1Z?Gpn[K@GX` @J +َ? @Fޱ>ݩ@= ףp= ?FhrE҂@A@7A`"?VȽBQ@ , @~jt?-7w?g/ @= ףp= ?Z/ L@HNZ̝ @/$? ڴ(@~'@Q?_^{$@hz> @V-阮?_LyD35+@F,T @+S?ݼkj@~ @A`"?8?DYc @K7A`?v?-)Q @fffffff?%vJZ?Oim @~jt? }@?_ܲ @MbX9?=L0@mj% @7A`"?Xpp,}?g{) @ףp= ף?t@#n @V-?a_?àߜ$@(\(?}+r?L@Q?ƅa͐@ؓXL0O @/$?gy@ KPM>k @Ex?a}@}b@QQ?*ц@KD"@QQ?EFS@Zd @QQ?69@˩]F@%Cl?fgoP?WpǬz@jt?kÔ@*<@bX9v?LBy@k| q@\(\?бgT@Iь2T @'1Zd?#U@k'\%@Pn?$qd@q]:l @(\?@eAz@.(< @S㥛 ?M1@PV@{Gz?M WI@< @x&?HqR@1>CW)ʖ@uV-?;[?[r @(\(?a?܂փ @{Gz?bNx?<Ҥ᯿ @?2&?Oim @nʡ?šs}R@A]Tc:@$C?97 Qc@z,7;j @-K?o"a]@q0 @Q?~@XSpb@MbX?} 2@aɱ e @&1Z?C0X:?tR‡@S㥛 ?Ynɵ@ @K7A?T o?~L @V-?Df2 [?QN!@MbX9?AXwF@z'_@{Gz?S\d!@D: @/$?3mӰ@-)f? @+?MC8տ K?$ N3@S㥛Ġ?UHfV@i*DTk @S㥛Ġ?3gDH@]6.@nʡ?PҖOc6@o)`Y@L7A`Т? Ǵ@9f$ @1Zd;? 3ڸ?0 #*@RQ?6C?#s] @V-?Uײ7@:З˪@9v?4g? HB@c @On?tH@_:Ŧ @x&1?M#:ń@oCa@Zd;?46\@{Y1= @x&?V[w@{͔i @\(\?Gշ󌷵@S> @l?!]Xͧ@b3@S㥛? '%@-K@Dl?%@F) @X9v?zAG[@`,Y @MbX?pO\ر@Gx @X9v?D6J @;w@S㥛Ġ?}̍(@:)>". @V-? uM,@rѫjRD @nʡ?pq ?D @|?5^I?PZ7㍳%@a+2C: @?5^I ?t@33+ @?5^I ?rD@A @Zd;O?R{z @@!u @X9v?o@|{9ō@^I +?ՏE2@O@q= ףp=?w8$q?ls/@Cl?@@&׉@Cl?D?_"@IR ؄@q= ףp=?Y(-@Y &Z @Zd;O?G;@H~.@A`"? TĬ?h6'@(\?aH@?g @ +?Dڔ?-N @Dl? '4@AF @ʡE?]Ghж@sL@ʡE?#DI?Gj@ʡE?q G7?8$Ȅ@(\?J)Y=z@q;Wq @ʡE?w?D?@ @V-?s'p@)1$om@J +?)Rz*@ĞTl@K7A`?;[U?kzS}@7A`"?=T^k*?B8 @S㥛 ?s{0 `@O֙D. @J +? !O ?`963@S㥛 ?q5X?;R= @Cl??|+@{Gz?%#@C Խ4 @Cl? ~/?܈A}_@Cl?!˫48@ΟP@nʡ?K`@T:aSQ @V-? ɛ?j @V-?1>;xĈ@ 51 @J +?12"z?9H@Cl?rgB6y@&s @X9v?a\ jhT?Wt@X9v? K?T9b@S㥛?Is0?PKlL @MbX9?Æ*8Ͷ?K!M@V-?/Al_\? c@x&1?F{[@ a @S㥛?^,c@E44@{Gz?.q$?x7 @nʡ?30C@&N- @FWj"@|?5!@Uv@8l@On@_#5X@Q-@(\ @@ (:S@8l @A` @K@RQ@V?k@!rh& @)?L }3@ rh @)Go@5/@1Zdϩ @2@ i}@\(\n @'c{@Q-@Dl= @&@5/@S㥛 @Խy@z@ rh= @-E*ly@5~}(U @x&m @7۶?(f@m@d@*?Fe6@T㥛 @9e':h@,W @1Zd@B@KrSi@uV@<Q )@uĄL@#~j@_3@uĄL@QW @V"Zө@ca݀@ rh@*O ?O @S㥛\@;}ڴ@q#m@Gz@`N0@xKnj@^I +@dv am =@5/@ ףp= w@:@E]@~jt@N6@ؓXL0O @Zd;ߟ@}&&&@$(2@L7A`@ԡ@w2@NbX9@4:@M}17~@ ףp= W@^B@S7g-=K@T㥛 @X+V@9[~z@ffffff@36ʳ8? i}@/$@Q^2@+$&]@HzGa@_LuT@_n@K7A`ł@U]?q0@ffffff&@c>ŏ@J @K7@a ?? *M@Mb@hS*@8l @S㥅@!]7z@g@"~j<@P׌d@d#7@333333@֘.@+ @Zd;_@B]L9_@V?k @K7@ނ3H?PZ^U @QE@e W?8I7.ќ@K7 @_ I?xk @fffffff@M}W维?n+g@K7I@3{W@@Ex@[@i82 @q= ףp@N@r١@Mb@[%T?  @"~j<@m@@ӓqţ@x&1@i@._p@x&1@XL S@E۸ @Zd;O@"+@? *M @ʡE@d?$(2 @ +N@z &@KrSi@1Zd;@fTi ? t`^@x&1@L8Q@(\"&N@#~jt@S 2S?DMo:@-ˁ@ |[c@Z{k,@v/@1`̺@A @"~j@`e:@$? @\(\@?ԼXt@Mb@ɐ&@NҝN @B`"@rD-@$(2@+@W;k? :@X9v@ak@٭x:T@ ףp= ׉@`z@uĄL@X9v@ꅿ?Fe6 @Mb@9? @S@Mpl#?_an#F@ʡE@ \?4@Dl@@3d@S㥻@ fv?TZ@v/ݰ@ą'@׾ @̦@[mf?+A~1 @v/ݜ@G/Ù@wvXف@HzG@%> &?L }3 @\(\@B'@I1+Eh @lҍ@9OΪ?.Qr @Q@WM~P@] /5. @h|?5^@:x@@+$&] @tV@e1ô@>F @{Gz@L@ﴻ[L+@HzG@@ZY&@w\\ @x&1@n>3@U-30@On@dIA?瘨l쇏 @On@H{Q$ c@B2b6@zGz@&x}@cGL@zGz@{ ېHl?LktԌf@-K@! ?i@fffffff@}3@ i} @v/@*Rn@xyj@~jt@Ө,@XSpb@rh|?@uC;ۀ?ZrWh @B`"@[x&jJe@E]@K7A`@%b?հ~3:O@Q@$Lm$??,W @7A`"@X=n?Q ބ @1Zd;@WR*@/-@lҍ@gu@INϛY@MbX9@f2o?&kj @"~j@Rב@oqT@ʡE@T4@S˫zƴ݊ @Dl@y&=&ʮ?b҄ @"~j@J@˨h_ݐ @MbX9@|@1N-@(\@ٳ!S?~ d @+@'h û@Ԥ7+@On@^4K@C[_v@jt@^ђ{@X}K @{Gz@R_GH?u%/@ʡE@MP@&1?x&@V[.?z @X9v@,@N _@tV@)\j_P@5ܧr@U@\(\@M6bG@d|YK @ʡE@Xmt[@a}@mM@i"y?S7g-=K @9v@=C@8ag @Cl@x:@D+?pv @(\(@s'o@&@(\@h,ˑ@o>‰@V-@vDӧ@ "C@M}17~@GzG@kvu@QC@B`"@Lt@"#Y@y&1@mMבX0@h@tV?۴$p|@*<@HzG?kn+? @/$?s–$@]\Ȭ @Q?8PB@ؓXL0O @|?5^I?~6c@wh3;@K7A`?ds b@!b6%eܬ @Cl@,/jL@_+M/8@Pn?w*@QC@/$C?\)6)?ۚ@p= ףp@i]>@n kZ. @(\?R;$3@IV F@Pn@1v#,@4>~겍@Pn?CC@@mM?鴜Fu?4>~겍@K7A`@nڻ@~_=R @HzG?<@5@K7@q7 _C?w2@nʡ?P[Hj@{?5/@NbX9? yO4 @g @K7A`?IC@; @ ףp= ?w'C*!@Q-@V-?ps?ϩ4~rO @(\(?a4R ?A @S?ĵV?33+ @&1Z?lfd@F*zJH@x&? q#ߓ@j @K7A`?w@ 51 @ʡE?oN~:i?rŎ@MbX9? J @?:@Ex?*@ze@9v?7?": R#i@%Cl?SĆk[@D>ǔO@S㥛?9"M}@xG?+?F3-@ ]@nʡ?v7#1@2Ui @RQ?&K?*sƅ@bX9v?K%bt?ކ®.@Cl?AA9?O" @1Zd;?9s"C@6~:@h|?5^?NÖx@}8@v/?2r@R!@(\µ?!Vwˤ?dg9hN@\(\?Bj@/hBpm@Zd;O?8"B/X}?`#݅O @/$C?T [8@tNju @Q?n62-@4H{>@ rh?8ȿO?PjSft@MbX?!u^ĥٵ@)F@jt?*b暦?A/ @/$C?ii`>@ty @Zd;O?o.w엙?oUh@ ףp= ף?.@ #.@9v?iM-5@zv8No@Cl?iuJ@ @x&?jcq@)y;@MbX9?kE{$@I#@;On?o 0?`|,@ʡE?z0{ @-ø@y&1?:b9P·@TZ@-K?_, !@F@@Zd;O?m@K@ ףp= ף?Q?.ݩ@ʡE?>@$(2 @RQ?8::@!@ˡEԸ?<֔Х@ x3?q= ףp=?[|p@E۸ @S?lF }@^k@Fx?Zzڹ@e۾ @A`"? @+<:@Zd;O?mY@T>j @Cl?*=?k0>!i @MbX?a~ @Yo1 @MbX? v2@ i ,5@V-?HN.? b @fffffff?i}BZ@Y6M @ ףp= ׃?X6@e j@S?B^y@ x@fffffff?y_?0!V@K7A? 걓`@5~}(U @ rh?jBE׉? LoM @K7A?{3@jG}2 @v/?a*<@"@RQ?2)@K7A`?m~Ћ?|+ @Fx?Ğ3XpG?4`@ rh?x @p @Zd;ߏ?{@$? @|?5^?T7 ?LF@(0'@̌?uL_j@CW с@NbX9ȶ?bD k?F,T @~jt?O"DeC@2. @S㥛?'iUۣ@g{) @Zd;ߏ?yhw@$  @Zd;ߏ?@! Ay)@/$C?N@&'* @HzG?PyBO?[@A`"?#XXف@2*w| @S?`9{-?i~I> @mM?ř3T@L+O) @ʡE?0j_0@(0 @%Cl?o#,@ݩ@x&1?QOsH?z,7;j@Pn?#GJ'[@w\\ @Pn?P!ۣs?(`͑ @On?%J?qQ V@bX9v?{a?A]A}@h|?5^?K(v;? @/$? i^N? @uV-? |1R#e@V!mB @K7?!<@[5@MbX?xA@O:X @Cl?x ?9Z&ͅ @S㥛Ġ?9Vt@[[ @ ףp= ף?kp?A @x&1?4@~i m @S㥛Ġ?ośD}@I@!rh|?YД&1?"ä@QQ?F5?UT^@x&1?6"$@q]:l @V-?d5˅@A\ӗ@X9v?!c@I1+Eh @RQ?p=@b!J@9v?\RPވ@J  @On?1hK2@I]7 ' @K7?bXP,@;/W7E@Cl?s- OD3t@vLW @v/ݤ?;gH@mWh@d;On?5 칙@:]^J@Q?Tv?*M @I +?:$.@p@< @ʡE?cb@܈A}_ @?B@4N@On?pgH*_?xB j @MbX9?@@;q$L@QQ?V&B@^!ό @K7A`?ϙ]?6+Rk& @uV-?_ ?Cc' @1Zd;?F@dG+_@On? B,@$m @Cl?hJB@B8 @7A`"?@G@1DЩ@oʡE?8ϼ@K!M@X9v?Ta ^@;R= @ ףp= ף?x 댮@+ @#~jt?]T^i @mf @ ףp= ף?%Yj?M @?f"}@:f,fM @ +@h5I@Q-@B`"J @ֲ@8l@̌5@OnU @ɟ ?V?k@|?5^5 @fxQ݀@8l @y&1 @`@ @L }3@h|?5" @t@Q-@/$@S*@ i}@X9v@WN@5/@Onü@h2s?ca݀@ rh@EtڍU@z@@>@"?5/@ rh@@5~}(U @?5^I @J"@O @Qq@;l@(f@zG:@0?/@q#m@y&1ܛ@|ֵ?,W @Q둁@Op˺@5/@d;O@#o2?uĄL@Cl@:ꌇ ?xKnj@Kw@b_'+@KrSi@K7A`@B[q?E]@|?5^@rqd@9[~z@NbX9Ȑ@`g(@Fe6@/$@6n@$(2@ףp= ף@W[@uĄL@!rh|@,=?w2@ffffff@'S?_n@@0׍ˀ@g@7A`"@nґɟ?M}17~@Zd;ߎ@3Z׋ڔ@q0@(\@HCˠ@ؓXL0O @= ףp= @j@r١@|?5^@[J/W@J @On@¨yZ@ i}@Dl@VS @+$&]@Zd;O@>!?V?k @Cl@ gJ@d#7@GzG@0Ӣ=?Z{k,@Gz@l|á@PZ^U @bX9v@>18f@8l @QQ@3,%7?8I7.ќ@~jt@:]L@ӓqţ@MbX9@{? t`^@Gz@VF10@DMo:@~jt@w7Cˋ@i82 @x&1@J߃?@-Ư@@._p@RQ@zAJt@$(2@ʡE@K 8ZpQ@xk @ʡE@">E@KrSi@jtV@~7@? *M@ rh@iZi@n+g@K7A`@n љ?+ @= ףp= @EdOn@ԼXt@Q@ F-?S7g-=K@Q@: =@$(2 @x&1@x\)@3d@nʡ@rg0zH?NҝN @Ex@xH@+A~1 @@IƖҨ?E]@ rh@1ʗ@Fe6 @ʡE@ܱ@i@w/$@I{@+$&] @ʡE?\D/??$? @K7@-qq&@瘨l쇏 @X9v@@z@հ~3:O@|?5^?t@țe@Ԥ7+@y&1?7R΅@ @K7?;5 @xyj@/$?9@@o>‰@(\µ?+DFz?LktԌf@d;On?c/?Q ބ @+S?O ]QQސ@.Qr @x&1?Z_? i} @-K?fo@I1+Eh @J +ٮ?6d%r]?~_=R @5^I +?,j@b҄ @ʡE?F҃q@ۚ@#~jt?ZKU?4@x&1?qzY ք@h@3333333?м,7@Q-@y&1?eK@5@Q?=BD?@>F @QQ?kn@ZrWh @= ףp= ?gO?C[_v@T㥛 ?Rfa?a}@|?5^I?L:D5@"#Y@Zd;O?"|?&@jt? W˄@&kj @/$?KLC:?S7g-=K @nʡ?Te6n@w\\ @nʁ?Ԣ_@pv @Q?wOd?g @Ex?MATsi@~ d @sh|?5?Kh*@N _@zGz?3B? @MbX?%0@B2b6@`"~?t7?] /5. @d;On?1m=g@w2@L7A`?9RHȡ?!b6%eܬ @fffffff?9W0k?5ܧr@U@Zd;O???,W @jtV?+1@A @jtV?"wp@33+ @v/ݤ?k&@A s[ܘ@On?r<@S˫zƴ݊ @~jt?~"0pn?/-@v/?@TZ@\(\?\@@ 51 @\(\?nU?j @d;On? @INϛY@;On?MW+[@d|YK @ʡE?~Z ;d?8ag @J +َ?zXˌ@KrSi@X9v?AIg<}@n kZ. @jt?nE@5/@&1Z?7p?X}K @(\?o{_?BJ @K7A?-Z i4@M}17~@+?-N@`#݅O @㥛 r?O=F @q @K7?VȺ?xٲ!@V-?ye g@z @S㥛?76@T?F*zJH@GzG?1?Fѯk @I +?+-%@5~}(U @tV?+,`6@ؓXL0O @Cl?A+K?.  @L7A`Т?(#%@ x@)\(\?Jc̤@ @V-?:1@ty @I +?ڡt~@c>˳ @V-?BIQ0 Ė@xKnj @nʡ?ѳc?q#m @ףp= ף?f+@E۸ @7A`"?~겍@On?Q?[T] @K7A`?i䵴@`C%= @/$C?MlI @q0 @Ex?s"#S@k0>!i @#~jt?cFHK@T>j @+?W",@*M @ˡE?lp?; @Ex?cnkTy?xk @K7A`?@ 2{?Y6M @+S?b?+ @ +?0Kj@a; @On?o ּ*@@"~j?rq80?B%̚ ݖ @7A`"??$(2 @?4mQ@{)@(\? _΂@=WX @J +?ٜy@ @K7A`?LNEW@jG}2 @7A`"?FK7@ @Zd;?u"}@qQ V@S㥛?C:f@9f$ @/$?Ax@#Σ^ @K7?eiV @`|,@~jt?ϫhQb?O" @Fx?ydԞ?e۾ @9v? @@ LoM @K7A`?-,q4Ÿ@Mvi@ʡE?HHQ_?mWh@S㥛 ?lIv?oqT@Ex?KhP@a"# @h|?5^?Y?߇n @S㥛 ?b@B8 @RQ- @UO0O@Q-@S㥛Đ @|U?8l@S[@V[> g@Q-@zGz@nx@L }3@!rhl@ }O@V?k@HzG@b\%ׄ@8l @n@ۙ@ca݀@x&@E@O @On@x&@9w8޾@9[~z@K7A`@P Ii?5/@V-@@5/@Mb@ Xv@q#m@Q@2E? i}@w/$@ =?5/@/$C@5 _V@g@x&1@@w2@K7@kLjp?r١@v/@MR<@q0@-ƫ@,3K@M}17~@@T}!zW@Z{k,@S㥛Ĭ@Ҩ[@V?k @X9v@m`@DMo:@J +@ !)@ t`^@K7@.@Fe6@K7@.xC?J @y&1@f+v@PZ^U @mM@ЉGRZ?uĄL@'1Zd@vX.r 9@ӓqţ@X9v@xuJb@+$&]@Cl@8 [{@ i}@MbX?'P\p@i82 @A`"ۑ@ㆈ(ٻŖ@@x&1?y.<?KrSi@`"~?#@8l @V-?;]^ڹq@ԼXt@HzG?5wB5S?3d@K7A`? e@xk @tV?+j@L }3 @"~j?/t^@d#7@x&?Y_6@E]@+?^ą?$(2@x&1?K(^?ؓXL0O @d;On?3c@NҝN @(\µ?P@uĄL@~jt?KF w@+ @ˡEԸ?D*uv@ :@|?5^?x@$@׾ @㥛 r?kO@._p@Cl?vÄ@i@I +?LS9@ۚ@?5^I ?nr?A @ ףp= ׃?H?S7g-=K@㥛 r??Nʝ}@8I7.ќ@&1Z?˧v@  @\(\?̝@瘨l쇏 @nʁ?v @հ~3:O@x&?k0̑@o>‰@(\? @n+g@S㥛?+{@$? @v/ݤ?HWN` @? *M@ףp= ף?tCZ݅@.Qr @K7?&X!@BJ @/$?gg!܆?E۸ @ rh?,œL?? *M @fffffff?Jx @8ag @sh|?5?RZE`@ @lҍ?ߋ@ i} @ +?Jn@xk @Mb?$WZ@4@-?e st@w2@;On?0qa@q @S㥛?= ?S˫zƴ݊ @!rh|?NS@>F @ʡE?Y&Ƀ@A/ @'1Zd?#W@ZrWh @$C?-@ @K7?FbZķ@Yo1 @7A`"? ^@ LoM @GzG?>|&i@,W @9v?&5 v@!b6%eܬ @"~j?C9~@a}@9v?N=@5/@X9v?F#ۉ@] /5. @)\(\?‹G+@$(2 @V-?5D @M}17~@MbX9?;( f!@KrSi@?8lZ@~ d @nʡ??2Ru,R? x@V-?B?@k0>!i @x^@q R?Q-@x&1@uYBX?Q-@|?5^ @Nw!@~jt@b@?L }3@ ףp= W@Ō?@8l@/$@H1w@V?k@Zd;@s_L@ca݀@Mb@$+})?8l @X9v@h"Lå?9[~z@!rh|@Ƹ.EL@O @x&1@Egn?g@fffffff@&m:(@5/@Q@c?q#m@K7?/@xKnj@#~jt?KK@_n@(\?ㅃ^@5/@?;},@,W @Cl?9j_ٹ@E]@?5^I ?X%?5~}(U @'1Zd?>c@V?k @)\(\?WR @DMo:@`"~?SV8ϸ@q0@ ףp= ?Pk@uĄL@MbX9?22@@@ i}@S㥛?$ww@5/@Q?8"?KrSi@zGz?dzL@ t`^@K7?oG4@J @;On?r@&@w2@Zd;O?b z?ӓqţ@x&?jrv1K@Z{k,@+S?Ϙ@M}17~@Ex?jP0_@PZ^U @= ףp= ?$w@@+S?*s??ԼXt@On?@RD?L }3 @I +?%#q?KrSi@On?92?i82 @On?P S@+A~1 @QQ?Ű@瘨l쇏 @V-? Ҷ?8l @S㥛Ġ?XZJI@A @bX9v?֡pV@+ @{Gz?n~bԽ@xk @?a"r@$(2@ +N@'#Å5@Q-@uV-@E_c @Q-@B`"@C_d=?L }3@+S?q{w?V?k@h|?5^?T\+@9[~z@Cl?T+w?ca݀@QQ?Nw!@Ex?_#?O @jt?-ֈ!@8l @QQ?\dύ+?8l@ TVSOPEntry0# TVSOPEntry#0@@@ 8# TVSOPCalcFunc$selfPointer$result TVSOPEntrynrLongIntindexLongInt TVSOPEntry###TVSOP #TVSOP vsopP#TCVSOPp#x# TVSOPEarth# TVSOPEarth p#vsopȂ# TVSOPJupiter# TVSOPJupiter p#vsop0#0###1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC*TBasicFilteredChartSeriesEnumeratorFactory`#8#ȇ# P3C4CP6C9C9C:C9C7C8C0AC@ACPACATFilteredChartSeriesEnumeratorh#`#X##1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACHTFilteredChartSeriesEnumeratorFactory#*TBasicFilteredChartSeriesEnumeratorFactory#*TBasicFilteredChartSeriesEnumeratorFactory`# TAEnumerators#,TFilteredChartSeriesEnumerator$1$crc08012284p#,TFilteredChartSeriesEnumerator$1$crc08012284h# TAEnumeratorsȇ#3TFilteredChartSeriesEnumeratorFactory$1$crc08012284 #3TFilteredChartSeriesEnumeratorFactory$1$crc08012284#h# TAEnumerators#5##1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEResourceException#ȉ###1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEResourceDescTypeExceptionЉ#ȉ##(#1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX&EResourceDescChangeNotAllowedExceptionȊ#ȉ##О#1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX(EResourceLangIDChangeNotAllowedExceptionȋ#ȉ##h#1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEResourceDuplicateExceptionЌ#ȉ###1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEResourceNotFoundExceptionȍ#ȉ###1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXENoMoreFreeIDsException#ȉ###1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEResourceReaderException##x##1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EResourceReaderNotFoundException##x#8#1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX#EResourceReaderWrongFormatException##x##1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX-EResourceReaderUnexpectedEndOfStreamException#ȉ###1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEResourceWriterException##x##1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EResourceWriterNotFoundException#HȖ##౾P3C4CP6CpCpCpCpC7C8C0AC@ACPACCCCCC C0CTAbstractResource# ##Ф#1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC TResourceDesc#@##ѾP3C4CP6CpCpCpCpC7C8C0AC@ACPAC TResourcesЗ#X#ؙ# #վP3C4CP6CpCpCpCpC7C8C0AC@ACPACӾӾҾҾpC Ӿ0pCTGenericResource###1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACCCCCCTAbstractResourceReader##(#1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACCCCCTAbstractResourceWriter# TDescTypedtNamedtIDresource@#c#\##\#c##EResourceExceptionȜ#EResourceException#resource#EResourceDescTypeExceptionH#EResourceDescTypeExceptionЉ#@#resource#&EResourceDescChangeNotAllowedException؝#&EResourceDescChangeNotAllowedExceptionȊ#@#resource(#(EResourceLangIDChangeNotAllowedExceptionx#(EResourceLangIDChangeNotAllowedExceptionȋ#@#resourceО#EResourceDuplicateException #EResourceDuplicateExceptionЌ#@#resourceh#EResourceNotFoundException#EResourceNotFoundExceptionȍ#@#resource#ENoMoreFreeIDsException@#ENoMoreFreeIDsException#@#resource#EResourceReaderExceptionȠ#EResourceReaderException#@#resource# EResourceReaderNotFoundExceptionP# EResourceReaderNotFoundException#H#resource##EResourceReaderWrongFormatException##EResourceReaderWrongFormatException#H#resource8#-EResourceReaderUnexpectedEndOfStreamException#-EResourceReaderUnexpectedEndOfStreamException#H#resource#EResourceWriterException8#EResourceWriterException#@#resource# EResourceWriterNotFoundException# EResourceWriterNotFoundException##resource#TAbstractResourceX#TAbstractResource#resource# TResourceDescФ# TResourceDesc#resource# TResourcesP# TResourcesЗ#resource#TResourceClassȤ##TGenericResource#TGenericResource#Ȥ#resource #TAbstractResourceReaderX#TAbstractResourceReader#resource#TAbstractResourceWriter#TAbstractResourceWriter#resource(#TResourceReaderClassئ#h#TResourceWriterClass`###0#P#p###Ш###0#@@j^@@ x88V @@#k5##1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEVersionStringTableException0# ###1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXENameNotAllowedException(# ## #1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEKeyNotFoundException # ###1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEDuplicateKeyException#8Э# #1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACTVersionFixedInfo###P3C4CP6CpCpCpCpC7C8C0AC@ACPACTVersionStringTable## #P3C4CP6CpCpCpCpC7C8C0AC@ACPACTVersionStringFileInfo###pP3C4CP6CpCpCpCpC7C8C0AC@ACPACTVersionVarFileInfoЯ#EVersionStringTableException#EVersionStringTableException0# versiontypes#ENameNotAllowedExceptionP#ENameNotAllowedException(#H# versiontypes#EKeyNotFoundException#EKeyNotFoundException #H# versiontypes #EDuplicateKeyException`#EDuplicateKeyException#H# versiontypes# TFileProductVersion # TVerTranslationInfo(# TVerTranslationInfo(# h#PVerTranslationInfo##TVersionFixedInfo#TVersionFixedInfo# versiontypes #TVersionStringTable`#TVersionStringTable# versiontypes#TVersionStringFileInfo#TVersionStringFileInfo# versiontypes #TVersionVarFileInfoh#TVersionVarFileInfoЯ# versiontypes##0#P#p##PxxEQ 0*ppp###`P3C4CP6CpCpCpCpC7C8C0AC@ACPAC pC@0TVersionResource# TVerBlockHeaderз# TVerBlockHeaderз#  #TVersionResource#TVersionResource#Ȥ#versionresource# `|8#H#1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC=S`ppCP:SP9SP:SHSTCachedDataStream#(P##н#1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC=S`ppCP:SP:SHSTCachedResourceDataStreamX# `|#8# P3C4CP6CpCpCpCpC7C8C0AC@ACPAC=S0PppCP:S :S0 HSTResourceDataStream#TCachedDataStream#TCachedDataStream#H resdatastreamH#TCachedResourceDataStream#TCachedResourceDataStreamX## resdatastreamн#TCachedStreamClass##TUnderlyingStreamTypeusCachedusMemoryusCustom resdatastream@#h#z#q##h#q#z#о#TResourceDataStream#TResourceDataStream#H resdatastream8#8##pP3C4CP6CpCpCpCpC7C8C0AC@ACPAC CCC TResourceTreeNodex#8##(#pP3C4CP6CpCpCpCpC7C8C0AC@ACPAC 0`p TRootResTreeNode#8##h#pP3C4CP6CpCpCpCpC7C8C0AC@ACPAC 0@ TTypeResTreeNode#8###pP3C4CP6CpCpCpCpC7C8C0AC@ACPAC @ TNameResTreeNode#@#H##pP3C4CP6CpCpCpCpC7C8C0AC@ACPAC pC   TLangIDResTreeNode8#TResourceTreeNodeh#TResourceTreeNodex# resourcetree#TRootResTreeNode#TRootResTreeNode## resourcetree(#TTypeResTreeNode## resourcetreeh#TNameResTreeNode## resourcetree#TLangIDResTreeNode8## resourcetree##P#1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACTResourceMerger(#TResourceMerger#TResourceMerger(# resmergerP#ȉ#X##1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEResourceFactoryException#x#P#x#1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX(EResourceClassAlreadyRegisteredException#X##1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACTResourceFactory#EResourceFactoryException#EResourceFactoryException#@# resfactory#(EResourceClassAlreadyRegisteredException #(EResourceClassAlreadyRegisteredException## resfactoryx#TResourceFactory#TResourceFactory# resfactory#p###0XX' ȉ##0#1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEStringTableResourceException##x##1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX#EStringTableNameNotAllowedException##x#x#1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX%EStringTableIndexOutOfBoundsException#p##`##`1P3C4CP6CpCpCpCpC7C8C0AC@ACPAC,,,-pC-/0,TStringTableResource#EStringTableResourceException#EStringTableResourceException#@#stringtableresource0##EStringTableNameNotAllowedException##EStringTableNameNotAllowedException#x#stringtableresource#%EStringTableIndexOutOfBoundsException(#%EStringTableIndexOutOfBoundsException#x#stringtableresourcex#stringtableresource#TStringTableResource#`#TStringTableResource#Ȥ#stringtableresource`####0#`\ط\Bx###LP3C4CP6CpCpCpCpC7C8C0AC@ACPAC`L9:: :L0: <PMM2357459TGroupIconResource0#TGroupIconResource#TGroupIconResource0#h#groupiconresource#x###LP3C4CP6CpCpCpCpC7C8C0AC@ACPAC`LFFFFLFHPMM=?A D@A FTGroupCursorResource0#TGroupCursorResource#TGroupCursorResource0#h#groupcursorresource#x##0#LP3C4CP6CpCpCpCpC7C8C0AC@ACPAC`LCCCCL CPMMCCCCCCCTGroupResource0#0P### QP3C4CP6CpCpCpCpC7C8C0AC@ACPAC=S`ppCP:SQP:SHSNTGroupCachedDataStream#TGroupResource#TGroupResource0#Ȥ# groupresource0#TGroupCachedDataStreamp#TGroupCachedDataStream## groupresource# TNewHeader# TNewHeader#  0# TIconDir# TIconDir#  `` # TResCursorDirh# TResCursorDirh#   ` # TCurCursorDir(# TCurCursorDir(#   `` `#(`###P3C4CP6C9C9C:C9C7C8C0AC@ACPACpz}0™™Ё0Ù0TÙ`0U@VVЎY pəSS 0@XW TCUPSPrinter#TCUPSPrinterStatecpsDefaultPaperNameValidcpsOrientationValidcpsPaperNameValidcpsCopiesValidcpsPaperRectValidcpsResolutionValidcpsCustomPaperValid OSPrinters ###D#]#q####D#]#q#####@#TCUPSPrinterStates## # # TCUPSPrinter# TCUPSPrinter# OSPrinters#808#`#$#$X#PҿP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`Tcpccppc cccccϿ0fffcc`ccccc0pccccГc Ͽc`cc cccc`c`cc0@pp p `@0 c cycͿͿ̿ͿͿο οPοοο{c`Ϳοc0c7c@cc c0ccpc@0Pc`c0p6g'Prc0) Pg6/6p0007%cc c`cп0տ TPostScriptPrinterCanvas#8`###$#PҿP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`Tcpccppc cccccϿ0fffcc`ccccc0pccccГc Ͽc`cc cccc`c`cc0@pp p `@0 c cycͿͿ̿ͿͿο οPοοο{c`Ϳοc0c7c@cc c0ccpc@0Pc`c0p6g'Prc0) Pg6/6p0007%cc c`cпi j iTPostScriptCanvash# #$$P3C4CP6C9C9C:C9C7C8C0AC@ACPACTAscii85Encoder#2\FXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2p3XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX82\FXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`2p3XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXi2&c,,yMMHM,,,,,,,,,,HHH,c ,A  cc,M,,,,,,A,,,,M,NNHM,,,,,Mr,HMMHMMM,MMm,BBBc     H c,,,,,,y,,,,,,,,,,,Hc,,,,,eE&M,,yMMHM,,,,,,,,,,MMHHHcc ,cA  ccMMH,M,c,c,Mcc,ycccc,Mc, ,,HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM,,,,,Mr,HMMHMMMc,MMm,BBBc     H c,,,,,,y,,,,,cccccccHccccc,c,i2+c,,yMMHM,,,,,,,,,,HHH,c ,A  cc,M,,,,,,A,,,,M,NNHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM,,,,,Mr,HMMHMMM,MMm,BBBc     H c,,,,,,y,,,,,,,,,,,Hc,,,,,E&M,,yMMHM,,,,,,,,,,MMHHHcc ,cA  ccMMH,M,c,c,Mcc,ycccc,Mc, ,,HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM,,,,,Mr,HMMHMMMc,MMm,BBBc     H c,,,,,,y,,,,,cccccccHccccc,c,@2'MA MM4M444c,Mcy,,ccMMMM MyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyMM4MM4,,MM,6yccccMMMM4,4h23M+AMM:MMM:::c    c ,MMEM,,M,M,A,,,M,MM,:MM:,,M,M,J     : c,,:,,,,,23MA MMMMMccccM,Acc,cAc,,MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMMM,,M M,6ccccccyccccMMMM,c23+A MM:MMM:::@ cyc,cyccMM:MM, ,,\\:yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyM ^MM:,,M@M,,:cc,:,,,,."M%A MM%%%%%%dc[Mwy,PccM_Mw%% [I[%%@ %% %[@%l%[[%%%%%%%[77z7%[[[[IIPage LandscapePortrait ^ 9U TpsPoint$ TpsPoint$ $ TpsBounds` $ TpsBounds` $ $TPsCanvasState pcsPosValid pcsClipping pcsClipSavedPostScriptCanvas!$-!$9!$!!$`!$!!$-!$9!$!$TPsCanvasStatusX!$!$ !$ "$ H"$ x"$ "$ "$TPostScriptPrinterCanvas#$TPostScriptPrinterCanvas# PostScriptCanvas`#$TPostScriptCanvas#$TPostScriptCanvash##$ PostScriptCanvas#$ TFontPSMetrics($$ . h$$p$$TAscii85Encoder#PostScriptCanvas$$ H cups_msg_t CUPS_MSG_OKCUPS_MSG_CANCEL CUPS_MSG_HELP CUPS_MSG_QUITCUPS_MSG_CLOSE CUPS_MSG_YES CUPS_MSG_NO CUPS_MSG_ON CUPS_MSG_OFF CUPS_MSG_SAVECUPS_MSG_DISCARDCUPS_MSG_DEFAULTCUPS_MSG_OPTIONSCUPS_MSG_MORE_INFOCUPS_MSG_BLACKCUPS_MSG_COLOR CUPS_MSG_CYANCUPS_MSG_MAGENTACUPS_MSG_YELLOWCUPS_MSG_COPYRIGHTCUPS_MSG_GENERALCUPS_MSG_PRINTERCUPS_MSG_IMAGECUPS_MSG_HPGL2CUPS_MSG_EXTRACUPS_MSG_DOCUMENTCUPS_MSG_OTHERCUPS_MSG_PRINT_PAGESCUPS_MSG_ENTIRE_DOCUMENTCUPS_MSG_PAGE_RANGECUPS_MSG_REVERSE_ORDERCUPS_MSG_PAGE_FORMAT CUPS_MSG_1_UP CUPS_MSG_2_UP CUPS_MSG_4_UPCUPS_MSG_IMAGE_SCALINGCUPS_MSG_USE_NATURAL_IMAGE_SIZECUPS_MSG_ZOOM_BY_PERCENTCUPS_MSG_ZOOM_BY_PPICUPS_MSG_MIRROR_IMAGECUPS_MSG_COLOR_SATURATIONCUPS_MSG_COLOR_HUECUPS_MSG_FIT_TO_PAGECUPS_MSG_SHADINGCUPS_MSG_DEFAULT_PEN_WIDTHCUPS_MSG_GAMMA_CORRECTIONCUPS_MSG_BRIGHTNESS CUPS_MSG_ADDCUPS_MSG_DELETECUPS_MSG_MODIFYCUPS_MSG_PRINTER_URICUPS_MSG_PRINTER_NAMECUPS_MSG_PRINTER_LOCATIONCUPS_MSG_PRINTER_INFOCUPS_MSG_PRINTER_MAKE_AND_MODELCUPS_MSG_DEVICE_URICUPS_MSG_FORMATTING_PAGECUPS_MSG_PRINTING_PAGECUPS_MSG_INITIALIZING_PRINTERCUPS_MSG_PRINTER_STATECUPS_MSG_ACCEPTING_JOBSCUPS_MSG_NOT_ACCEPTING_JOBSCUPS_MSG_PRINT_JOBSCUPS_MSG_CLASSCUPS_MSG_LOCALCUPS_MSG_REMOTECUPS_MSG_DUPLEXINGCUPS_MSG_STAPLINGCUPS_MSG_FAST_COPIESCUPS_MSG_COLLATED_COPIESCUPS_MSG_PUNCHINGCUPS_MSG_COVERINGCUPS_MSG_BINDINGCUPS_MSG_SORTINGCUPS_MSG_SMALLCUPS_MSG_MEDIUMCUPS_MSG_LARGECUPS_MSG_VARIABLE CUPS_MSG_IDLECUPS_MSG_PROCESSINGCUPS_MSG_STOPPED CUPS_MSG_ALL CUPS_MSG_ODDCUPS_MSG_EVEN_PAGESCUPS_MSG_DARKER_LIGHTERCUPS_MSG_MEDIA_SIZECUPS_MSG_MEDIA_TYPECUPS_MSG_MEDIA_SOURCECUPS_MSG_ORIENTATIONCUPS_MSG_PORTRAITCUPS_MSG_LANDSCAPECUPS_MSG_JOB_STATECUPS_MSG_JOB_NAMECUPS_MSG_USER_NAMECUPS_MSG_PRIORITYCUPS_MSG_COPIESCUPS_MSG_FILE_SIZECUPS_MSG_PENDINGCUPS_MSG_OUTPUT_MODECUPS_MSG_RESOLUTION CUPS_MSG_TEXTCUPS_MSG_PRETTYPRINTCUPS_MSG_MARGINS CUPS_MSG_LEFTCUPS_MSG_RIGHTCUPS_MSG_BOTTOM CUPS_MSG_TOPCUPS_MSG_FILENAMECUPS_MSG_PRINTCUPS_MSG_OPTIONS_INSTALLED CUPS_MSG_AUTOCUPS_MSG_HTTP_BASECUPS_MSG_HTTP_END CUPS_MSG_MAXcupsdyn%$r ('$!6'$"D'$<)$/i($Q +$n-$Hw*$%$i,$.U($)%$?)$U%$E:*$%$)'$('$_,$7&$Ge*$&$T:+$ %$, ($0v($7)$ %$&$B*$&$S&+$&$D%*$k,$`$,$*'$8%)$-;($J&$9%${&$)-$<-$N*$l&$#R'$:U)$\+$[+$Z+$L*$g,$@)$&$f,$N-$UR+$Wz+$Vf+$K*$''$1($ %$q%$=)$R+$%$%$}%$ %$m-$X+$&$bH,$'$&$a7,$Y+$e,$l,$[&$5($4($6($3($;s)$2($9>)$>)$&$^,$O*$FS*$G%$A)$c],$&$h,$ %$+($J*$I*$C*$P*$dq,$j,$]+$$i'$M*$'&$d%$%'$&'$p-$r%$)%$9%$G%$U%$d%$q%$}%$%$ %$ %$ %$ %$ %$%$%$&$&$'&$7&$J&$[&$l&${&$&$&$&$&$&$&$&$'$ ('$!6'$"D'$#R'$$i'$%'$&'$''$('$)'$*'$+($, ($-;($.U($/i($0v($1($2($3($4($5($6($7)$8%)$9>)$:U)$;s)$<)$=)$>)$?)$@)$A)$B*$C*$D%*$E:*$FS*$Ge*$Hw*$I*$J*$K*$L*$M*$N*$O*$P*$Q +$R+$S&+$T:+$UR+$Vf+$Wz+$X+$Y+$Z+$[+$\+$]+$^,$_,$`$,$a7,$bH,$c],$dq,$e,$f,$g,$h,$i,$j,$k,$l,$m-$n-$)-$<-$N-$2$cups_encoding_t CUPS_US_ASCIICUPS_ISO8859_1CUPS_ISO8859_2CUPS_ISO8859_3CUPS_ISO8859_4CUPS_ISO8859_5CUPS_ISO8859_6CUPS_ISO8859_7CUPS_ISO8859_8CUPS_ISO8859_9CUPS_ISO8859_10 CUPS_UTF8CUPS_ISO8859_13CUPS_ISO8859_14CUPS_ISO8859_15CUPS_WINDOWS_874CUPS_WINDOWS_1250CUPS_WINDOWS_1251CUPS_WINDOWS_1252CUPS_WINDOWS_1253CUPS_WINDOWS_1254CUPS_WINDOWS_1255CUPS_WINDOWS_1256CUPS_WINDOWS_1257CUPS_WINDOWS_1258 CUPS_KOI8_R CUPS_KOI8_Ucupsdyn@8$p8$ 8$ 9$ !9$19$8$8$8$8$8$8$8$ 8$9$:$b8$ 9$R9$d9$v9$9$9$9$9$9$9$A9$ :$b8$p8$8$8$8$8$8$8$8$8$8$9$9$!9$19$A9$R9$d9$v9$9$9$9$9$9$9$9$:$p;$ cups_lang_strX<$ H<$ H@<$ cups_lang_strX<$=$:$ <$<$ <$Pcups_lang_str`=$h=$ Pcups_lang_t`=$=$ Pmd5_byte_t=$ md5_state_sX=$ `>$ `0>$ @@`>$ md5_state_s=$X(>$X>$>$>$ http_state_t HTTP_WAITING HTTP_OPTIONSHTTP_GET HTTP_GET_SEND HTTP_HEAD HTTP_POSTHTTP_POST_RECVHTTP_POST_SENDHTTP_PUT HTTP_PUT_RECV HTTP_DELETE HTTP_TRACE HTTP_CLOSE HTTP_STATUScupsdyn>$ ?$ ?$!?$*?$8?$?$B?$L?$[?$j?$ s?$ ?$ ?$?$?$?$?$!?$*?$8?$B?$L?$[?$j?$s?$?$?$?$?$x@$http_version_t eHTTP_0_9HTTP_1_0HTTP_1_1cupsdyn@$ A$d"A$e+A$HA$ A$d"A$e+A$xA$http_keepalive_tHTTP_KEEPALIVE_OFFHTTP_KEEPALIVE_ONcupsdynA$A$A$B$A$A$8B$http_encoding_tHTTP_ENCODE_LENGTHHTTP_ENCODE_CHUNKEDcupsdynXB$B$zB$B$zB$B$B$http_encryption_tHTTP_ENCRYPT_IF_REQUESTEDHTTP_ENCRYPT_NEVERHTTP_ENCRYPT_REQUIREDHTTP_ENCRYPT_ALWAYScupsdynC$gC$$C$>C$QC$C$$C$>C$QC$gC$C$ http_auth_tHTTP_AUTH_NONEHTTP_AUTH_BASIC HTTP_AUTH_MD5HTTP_AUTH_MD5_SESSHTTP_AUTH_MD5_INTHTTP_AUTH_MD5_SESS_INTcupsdynD$-D$=D$^D$KD$pD$D$D$D$-D$=D$KD$^D$pD$D$ http_status_t HTTP_ERROR HTTP_CONTINUEHTTP_SWITCHING_PROTOCOLSHTTP_OK HTTP_CREATED HTTP_ACCEPTEDHTTP_NOT_AUTHORITATIVEHTTP_NO_CONTENTHTTP_RESET_CONTENTHTTP_PARTIAL_CONTENTHTTP_MULTIPLE_CHOICESHTTP_MOVED_PERMANENTLYHTTP_MOVED_TEMPORARILYHTTP_SEE_OTHERHTTP_NOT_MODIFIEDHTTP_USE_PROXYHTTP_BAD_REQUESTHTTP_UNAUTHORIZEDHTTP_PAYMENT_REQUIREDHTTP_FORBIDDENHTTP_NOT_FOUNDHTTP_METHOD_NOT_ALLOWEDHTTP_NOT_ACCEPTABLEHTTP_PROXY_AUTHENTICATIONHTTP_REQUEST_TIMEOUT HTTP_CONFLICT HTTP_GONEHTTP_LENGTH_REQUIREDHTTP_PRECONDITIONHTTP_REQUEST_TOO_LARGEHTTP_URI_TOO_LONGHTTP_UNSUPPORTED_MEDIATYPEHTTP_UPGRADE_REQUIREDHTTP_SERVER_ERRORHTTP_NOT_IMPLEMENTEDHTTP_BAD_GATEWAYHTTP_SERVICE_UNAVAILABLEHTTP_GATEWAY_TIMEOUTHTTP_NOT_SUPPORTEDcupsdyn0E$'E$G$hF$G$d[E$E$PE$F$H$(G$2G$F$- F$.!F$,E$F$E$F$G$0GF$H$E$E$E$F$GG$F$G$YG$E$/8F$G$G$eiE$yF$G$G$pG$1YF$@H$'PE$d[E$eiE$E$E$E$E$E$E$E$,E$- F$.!F$/8F$0GF$1YF$hF$yF$F$F$F$F$F$F$G$G$(G$2G$GG$YG$pG$G$G$G$G$G$G$H$H$ J$ http_field_tHTTP_FIELD_UNKNOWNHTTP_FIELD_ACCEPT_LANGUAGEHTTP_FIELD_ACCEPT_RANGESHTTP_FIELD_AUTHORIZATIONHTTP_FIELD_CONNECTIONHTTP_FIELD_CONTENT_ENCODINGHTTP_FIELD_CONTENT_LANGUAGEHTTP_FIELD_CONTENT_LENGTHHTTP_FIELD_CONTENT_LOCATIONHTTP_FIELD_CONTENT_MD5HTTP_FIELD_CONTENT_RANGEHTTP_FIELD_CONTENT_TYPEHTTP_FIELD_CONTENT_VERSIONHTTP_FIELD_DATEHTTP_FIELD_HOSTHTTP_FIELD_IF_MODIFIED_SINCEHTTP_FIELD_IF_UNMODIFIED_SINCEHTTP_FIELD_KEEP_ALIVEHTTP_FIELD_LAST_MODIFIEDHTTP_FIELD_LINKHTTP_FIELD_LOCATIONHTTP_FIELD_RANGEHTTP_FIELD_REFERERHTTP_FIELD_RETRY_AFTERHTTP_FIELD_TRANSFER_ENCODINGHTTP_FIELD_UPGRADEHTTP_FIELD_USER_AGENTHTTP_FIELD_WWW_AUTHENTICATEHTTP_FIELD_MAXcupsdynL$:L$UL$nL$L$L$L$L$L$ M$ "M$ ;M$ SM$ nM$ ~M$M$M$M$M$M$ N$N$N$.N$AN$XN$'L$uN$N$N$N$'L$:L$UL$nL$L$L$L$L$L$ M$"M$;M$SM$nM$~M$M$M$M$M$M$ N$N$.N$AN$XN$uN$N$N$N$HP$ http_t%@Q$ HpQ$ HQ$ HQ$HR$ H@ R$ HPR$ http_t@Q$%?$8H$@A$ B$$8 (Q$8R$8R$8B$@DHHR$LL$>$P$xR$$%%C$%%R$Phttp_tT$T$ TArrayChar32!!H0T$ppd_ui_tPPD_UI_BOOLEANPPD_UI_PICKONEPPD_UI_PICKMANYcupsdynhT$T$T$T$T$T$T$T$T$ ppd_section_t PPD_ORDER_ANYPPD_ORDER_DOCUMENTPPD_ORDER_EXIT PPD_ORDER_JCLPPD_ORDER_PAGEPPD_ORDER_PROLOGcupsdyn U$@U$NU$aU$pU$~U$U$U$@U$NU$aU$pU$~U$U$V$ppd_cs_t PPD_CS_CMYK PPD_CS_CMY PPD_CS_GRAY PPD_CS_RGB PPD_CS_RGBKPPD_CS_NcupsdynHV$oV$cV$zV$V$V$V$V$cV$oV$zV$V$V$V$W$ ppd_status_tPPD_OKPPD_FILE_OPEN_ERROR PPD_NULL_FILEPPD_ALLOC_ERRORPPD_MISSING_PPDADOBE4PPD_MISSING_VALUEPPD_INTERNAL_ERRORPPD_BAD_OPEN_GROUPPPD_NESTED_OPEN_GROUPPPD_BAD_OPEN_UIPPD_NESTED_OPEN_UIPPD_BAD_ORDER_DEPENDENCYPPD_BAD_UI_CONSTRAINTSPPD_MISSING_ASTERISKPPD_LINE_TOO_LONGPPD_ILLEGAL_CHARACTERPPD_ILLEGAL_MAIN_KEYWORDPPD_ILLEGAL_OPTION_KEYWORDPPD_ILLEGAL_TRANSLATIONcupsdynpW$W$X$ ,X$ OX$ hX$W$X$X$X$X$W$X$ X$W$W$X$ greater ?question @at AA BB CC DD EE FF GG HH II JJ KK LL MM NN OO PP QQ RR SS TT UU VV WW XX YY ZZ [ bracketleft \ backslash ] bracketright ^ asciicircum _ underscore `grave aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss tt uu vv ww xx yy zz { braceleft |bar } braceright ~ asciitilde space exclamdown cent sterling currency yen brokenbar section dieresis copyright ordfeminine guillemotleft logicalnot hyphen registered macron degree plusminus twosuperior threesuperior acute mu paragraph periodcentered cedilla onesuperior ordmasculine guillemotright onequarter onehalf threequarters questiondown Agrave Aacute Acircumflex Atilde Adieresis Aring AE Ccedilla Egrave Eacute Ecircumflex Edieresis Igrave Iacute Icircumflex Idieresis Eth Ntilde Ograve Oacute Ocircumflex Otilde Odieresis multiply Oslash Ugrave Uacute Ucircumflex Udieresis Yacute Thorn germandbls agrave aacute acircumflex atilde adieresis aring ae ccedilla egrave eacute ecircumflex edieresis igrave iacute icircumflex idieresis eth ntilde ograve oacute ocircumflex otilde odieresis divide oslash ugrave uacute ucircumflex udieresis yacute thorn ydieresis Amacron amacron Abreve abreve Aogonek aogonek Cacute cacute  Ccircumflex  ccircumflex  Cdotaccent  cdotaccent Ccaron ccaron Dcaron dcaron Dcroat dcroat Emacron emacron Ebreve ebreve  Edotaccent  edotaccent Eogonek eogonek Ecaron ecaron  Gcircumflex  gcircumflex Gbreve gbreve  Gdotaccent ! gdotaccent " Gcommaaccent # gcommaaccent $ Hcircumflex % hcircumflex &Hbar 'hbar (Itilde )itilde *Imacron +imacron ,Ibreve -ibreve .Iogonek /iogonek 0 Idotaccent 1dotlessi 2IJ 3ij 4 Jcircumflex 5 jcircumflex 6 Kcommaaccent 7 kcommaaccent 8 kgreenlandic 9Lacute :lacute ; Lcommaaccent < lcommaaccent =Lcaron >lcaron ?Ldot @ldot ALslash Blslash CNacute Dnacute E Ncommaaccent F ncommaaccent GNcaron Hncaron I napostrophe JEng Keng LOmacron Momacron NObreve Oobreve P Ohungarumlaut Q ohungarumlaut ROE Soe TRacute Uracute V Rcommaaccent W rcommaaccent XRcaron Yrcaron ZSacute [sacute \ Scircumflex ] scircumflex ^Scedilla _scedilla `Scaron ascaron b Tcommaaccent c tcommaaccent dTcaron etcaron fTbar gtbar hUtilde iutilde jUmacron kumacron lUbreve mubreve nUring ouring p Uhungarumlaut q uhungarumlaut rUogonek suogonek t Wcircumflex u wcircumflex v Ycircumflex w ycircumflex x Ydieresis yZacute zzacute { Zdotaccent | zdotaccent }Zcaron ~zcaron longs florin Ohorn ohorn Uhorn uhorn Gcaron gcaron  Aringacute  aringacute AEacute aeacute  Oslashacute  oslashacute  Scommaaccent  scommaaccent  Tcommaaccent  tcommaaccent  afii57929  afii64937  circumflex caron macron breve  dotaccent ring ogonek tilde  hungarumlaut  gravecomb  acutecomb  tildecomb  hookabovecomb # dotbelowcomb tonos  dieresistonos  Alphatonos  anoteleia  Epsilontonos Etatonos  Iotatonos  Omicrontonos  Upsilontonos  Omegatonos iotadieresistonos Alpha Beta Gamma Delta Epsilon Zeta Eta Theta Iota Kappa Lambda Mu Nu Xi Omicron Pi Rho Sigma Tau Upsilon Phi Chi Psi Omega  Iotadieresis Upsilondieresis  alphatonos  epsilontonos etatonos  iotatonos upsilondieresistonosalpha beta gamma delta epsilon zeta eta theta iota kappa lambda mu nu xi omicron pi rho sigma1 sigma tau upsilon phi chi psi omega  iotadieresis upsilondieresis  omicrontonos  upsilontonos  omegatonos theta1 Upsilon1 phi1 omega1  afii10023  afii10051  afii10052  afii10053  afii10054  afii10055  afii10056  afii10057  afii10058  afii10059  afii10060  afii10061  afii10062  afii10145  afii10017  afii10018  afii10019  afii10020  afii10021  afii10022  afii10024  afii10025  afii10026  afii10027  afii10028  afii10029  afii10030  afii10031  afii10032  afii10033  afii10034 ! afii10035 " afii10036 # afii10037 $ afii10038 % afii10039 & afii10040 ' afii10041 ( afii10042 ) afii10043 * afii10044 + afii10045 , afii10046 - afii10047 . afii10048 / afii10049 0 afii10065 1 afii10066 2 afii10067 3 afii10068 4 afii10069 5 afii10070 6 afii10072 7 afii10073 8 afii10074 9 afii10075 : afii10076 ; afii10077 < afii10078 = afii10079 > afii10080 ? afii10081 @ afii10082 A afii10083 B afii10084 C afii10085 D afii10086 E afii10087 F afii10088 G afii10089 H afii10090 I afii10091 J afii10092 K afii10093 L afii10094 M afii10095 N afii10096 O afii10097 Q afii10071 R afii10099 S afii10100 T afii10101 U afii10102 V afii10103 W afii10104 X afii10105 Y afii10106 Z afii10107 [ afii10108 \ afii10109 ^ afii10110 _ afii10193 b afii10146 c afii10194 r afii10147 s afii10195 t afii10148 u afii10196  afii10050  afii10098  afii10846  afii57799  afii57801  afii57800  afii57802  afii57793  afii57794  afii57795  afii57798  afii57797  afii57806  afii57796  afii57807  afii57839  afii57645  afii57841  afii57842  afii57804  afii57803  afii57658  afii57664  afii57665  afii57666  afii57667  afii57668  afii57669  afii57670  afii57671  afii57672  afii57673  afii57674  afii57675  afii57676  afii57677  afii57678  afii57679  afii57680  afii57681  afii57682  afii57683  afii57684  afii57685  afii57686  afii57687  afii57688  afii57689  afii57690  afii57716  afii57717  afii57718  afii57388  afii57403  afii57407 ! afii57409 " afii57410 # afii57411 $ afii57412 % afii57413 & afii57414 ' afii57415 ( afii57416 ) afii57417 * afii57418 + afii57419 , afii57420 - afii57421 . afii57422 / afii57423 0 afii57424 1 afii57425 2 afii57426 3 afii57427 4 afii57428 5 afii57429 6 afii57430 7 afii57431 8 afii57432 9 afii57433 : afii57434 @ afii57440 A afii57441 B afii57442 C afii57443 D afii57444 E afii57445 F afii57446 G afii57470 H afii57448 I afii57449 J afii57450 K afii57451 L afii57452 M afii57453 N afii57454 O afii57455 P afii57456 Q afii57457 R afii57458 ` afii57392 a afii57393 b afii57394 c afii57395 d afii57396 e afii57397 f afii57398 g afii57399 h afii57400 i afii57401 j afii57381 m afii63167 y afii57511 ~ afii57506  afii57507  afii57512  afii57513  afii57508  afii57505  afii57509  afii57514  afii57519  afii57534 Wgrave wgrave Wacute wacute  Wdieresis  wdieresis Ygrave ygrave afii61664 afii301  afii299  afii300  figuredash  endash  emdash  afii00208  underscoredbl  quoteleft  quoteright  quotesinglbase  quotereversed  quotedblleft  quotedblright  quotedblbase dagger ! daggerdbl " bullet $ onedotenleader % twodotenleader & ellipsis , afii61573 - afii61574 . afii61575 0 perthousand 2 minute 3 second 9 guilsinglleft : guilsinglright < exclamdbl D fraction p zerosuperior t foursuperior u fivesuperior v sixsuperior w sevensuperior x eightsuperior y ninesuperior } parenleftsuperior ~ parenrightsuperior  nsuperior zeroinferior oneinferior twoinferior threeinferior fourinferior fiveinferior sixinferior seveninferior eightinferior nineinferior parenleftinferior parenrightinferior colonmonetary franc lira peseta afii57636 dong Euro ! afii61248 !Ifraktur ! afii61289 ! afii61352 ! weierstrass !Rfraktur ! prescription "! trademark &!Omega .! estimated 5!aleph S!onethird T! twothirds [! oneeighth \! threeeighths ]! fiveeighths ^! seveneighths ! arrowleft !arrowup ! arrowright ! arrowdown ! arrowboth ! arrowupdn ! arrowupdnbse !carriagereturn ! arrowdblleft ! arrowdblup ! arrowdblright ! arrowdbldown ! arrowdblboth " universal " partialdiff " existential "emptyset "Delta "gradient "element " notelement "suchthat "product " summation "minus "fraction " asteriskmath "periodcentered "radical " proportional "infinity " orthogonal "angle '" logicaland (" logicalor )" intersection *"union +"integral 4" therefore <"similar E" congruent H" approxequal `"notequal a" equivalence d" lessequal e" greaterequal " propersubset "propersuperset " notsubset " reflexsubset "reflexsuperset " circleplus "circlemultiply " perpendicular "dotmath #house # revlogicalnot # integraltp !# integralbt )# angleleft *# angleright %SF100000 %SF110000 %SF010000 %SF030000 %SF020000 %SF040000 %SF080000 $%SF090000 ,%SF060000 4%SF070000 <%SF050000 P%SF430000 Q%SF240000 R%SF510000 S%SF520000 T%SF390000 U%SF220000 V%SF210000 W%SF250000 X%SF500000 Y%SF490000 Z%SF380000 [%SF280000 \%SF270000 ]%SF260000 ^%SF360000 _%SF370000 `%SF420000 a%SF190000 b%SF200000 c%SF230000 d%SF470000 e%SF480000 f%SF410000 g%SF450000 h%SF460000 i%SF400000 j%SF540000 k%SF530000 l%SF440000 %upblock %dnblock %block %lfblock %rtblock %ltshade %shade %dkshade % filledbox %H22073 %H18543 %H18551 % filledrect %triagup %triagrt %triagdn %triaglf %lozenge %circle %H18533 % invbullet % invcircle % openbullet :& smileface ;& invsmileface <&sun @&female B&male `&spade c&club e&heart f&diamond j& musicalnote k&musicalnotedbl dotlessj LL ll Scedilla scedilla commaaccent afii10063 afii10064 afii10192 afii10831 afii10832 Acute Caron Dieresis DieresisAcute DieresisGrave Grave Hungarumlaut Macron cyrBreve cyrFlex dblGrave cyrbreve cyrflex dblgrave dieresisacute dieresisgrave copyrightserif registerserif trademarkserif onefitted rupiah threequartersemdash centinferior centsuperior commainferior commasuperior dollarinferior dollarsuperior hypheninferior hyphensuperior periodinferior periodsuperior asuperior bsuperior dsuperior esuperior isuperior lsuperior msuperior osuperior rsuperior ssuperior tsuperior Brevesmall Caronsmall Circumflexsmall Dotaccentsmall Hungarumlautsmall Lslashsmall OEsmall Ogoneksmall Ringsmall Scaronsmall Tildesmall Zcaronsmall ! exclamsmall $dollaroldstyle &ampersandsmall 0 zerooldstyle 1 oneoldstyle 2 twooldstyle 3 threeoldstyle 4 fouroldstyle 5 fiveoldstyle 6 sixoldstyle 7 sevenoldstyle 8 eightoldstyle 9 nineoldstyle ? questionsmall ` Gravesmall aAsmall bBsmall cCsmall dDsmall eEsmall fFsmall gGsmall hHsmall iIsmall jJsmall kKsmall lLsmall mMsmall nNsmall oOsmall pPsmall qQsmall rRsmall sSsmall tTsmall uUsmall vVsmall wWsmall xXsmall yYsmall zZsmall exclamdownsmall centoldstyle Dieresissmall Macronsmall Acutesmall Cedillasmall questiondownsmall Agravesmall Aacutesmall Acircumflexsmall Atildesmall Adieresissmall Aringsmall AEsmall Ccedillasmall Egravesmall Eacutesmall Ecircumflexsmall Edieresissmall Igravesmall Iacutesmall Icircumflexsmall Idieresissmall Ethsmall Ntildesmall Ogravesmall Oacutesmall Ocircumflexsmall Otildesmall Odieresissmall Oslashsmall Ugravesmall Uacutesmall Ucircumflexsmall Udieresissmall Yacutesmall Thornsmall Ydieresissmall radicalex arrowvertex arrowhorizex registersans copyrightsans trademarksans parenlefttp parenleftex parenleftbt bracketlefttp bracketleftex bracketleftbt bracelefttp braceleftmid braceleftbt braceex integralex parenrighttp parenrightex parenrightbt bracketrighttp bracketrightex bracketrightbt bracerighttp bracerightmid bracerightbt ff fi fl ffi ffl  afii57705 * afii57694 + afii57695 5 afii57723 K afii57700 TUnicodeBlock "% TUnicodeBlock"% "% TGlyph #%P#% TGlyph #% X#%`#%PGlyph#%#% "%PostScriptUnicode#%PostScriptUnicode#% ($% X$% $% $% $% %% TPsUnicode#% $% PH%% TPsUnicode$PostScriptUnicode%%PangoCairoShapeRendererFunc0=crXattrdo_pathdata%%H x0%1%03%9%0%DP݄4CT0^DD9C7C8C0AC@ACPAC```T`TTD`TpT@}ET@DT`0`ЅT`TTT TTTT T`Tpa0aT@|EڄvE``pD`PE^``Ў` `@`E_a`^+`+`P^``DDD`D0_^_ ?`P8a9a@^^PDP``D^@F_F_p__E```@E@$_`E^ _ -` _,`,`;`0_`PE`x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`D` E_@_`@^p_B`pD`D`P\`^`0_`]`_`_` E@ EF`G`I`DE@EDp`J`<`xE``0` @`@`@`p_u^v^@w^IE_%a&aE #`p/a`^D ````_@``a``D=_`<_|`^```0a_apDPD0^`^0`_``P>2"%d%S>d>S# BWB !W!%[%>>[$ WKKSS K :2K2W)WK %[%>>[%Wd  d%d%K K dWW>>W& W!>)KSK[>d%dSW'2S2d>d(>d%S:)%>)%d>SK:K)>%*2d22d2W[ W [+ 2W22K2,%>>%- 2W2.%>>%/dd0 dKddSdKSdW[ 1S2d22 S%dKddSdB  d3 S%dKddSdBK2d!dK4%d W>K>5 Wd d )%:>:W)W>% 6 WS>ddSKdd!K22!7 S dWd2!28 dSKddSB2K2dBdS2!Kdd!K29 KddSKddS:)K)d::%[>[>K%K%>>%;%[>[>K%K%>>%>%<Wd 2W= BWB !W!> W2 d? S%dKddSdBK22222>>2@>22:: ) 2>)KWBK[>ddK>WA2dd2K2B dKdW[W:K2d!dWK22CdSKddSKdDdKddSdKdEdddd2W2Fddd2K2G dSKddSKdd)>)Hdddd2d2I%d>d%>22dJKdddWdW>%  !K d  !dd)dLddMd22dddNddddO SdKddSdKSPdKddSdBK22Q SdKddSdK>dRdKddSdBK22K2d!dS dSKddSB2K2d!dKTddd2d2UdKdddVd2ddWd2BKddXddddYd22222ddZdddd[>d%d%>\dd]%d>d>%^B2[dB_d`%d2d2Sa 2:K:W2WW!!  KWb d KWW2K: :cW2K:: 2 KWdWdW  2:K:W2e !W!W2K:: 2 KWfKd>d2[2:K:gW:WK W2K:: 2 !KW!h d 2:K:W2Wi2K2B2:2j2K2B2:2% k d W !K:l%d2d2m :K:W2W%:222n :K:W2Wo   2:K:W2WKp :  2:K:W2WK qW:WW2K:: 2 Wr:2>:W:s W2K:: 2 )WWK t:K:%K%2Ku : >WW:Wv :2W:w :2)KW:xW :W: yW: :2z :W: W{Kd2d%[%2K%22|2d2}2>>[2dd>2K2~[d[@%P%%ж% %%@%%% %`%%%%0%`%%% %p%% %%%0%н%@%%%@%p%% %%%%% %p%%%P%%%@%p%%%@%%%p%%%P%%%%0%`%%%%%0%`%%0%%%0%%%P%%% %P%%%P%%%P%%%P%%%% %P%%%0%x`!&0%%H%P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTPT`TpTЂTTTT}TЅTTTT TTTT T``T`xzTv 77@vx9}~@p@::@nnz`z8 qtC890:Ѐ0sPCTCustomFuncSeries`%P%(%%8%P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTPT`TpTЂTTTT}TЅTTTT TTTT T``T`xzTv 77@vx9}~@p@::@nnz`z8 qt`890:Ѐ0sP TFuncSeriesX%`!&%0%(%pP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTPT`TpTЂTTTT}TЅTTTT TTTT T`T`xzTv 77@vx9}~@p@::@nnz`z80 qtp890:Ѐ00swTParametricCurveSeriesH%p%%% P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTPT`TpTЂTTTT}TЅTTTT TTTT T`T`xzTvࢻ@vx9}~@pp@nnz`z8 qtԻջ0:@Ѐ`0s0`P`ûŻ`0ƻPӻܻݻ`ػTBSplineSeries8%hr%&(%`bP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T ~`Tc0cpcPc @p~@bbb cbcTBadDataChartPen%0%&`&P3C4CP6C9C9C:C9C7C8C0AC@ACPACTCubicSplineSeries.TSpline8%@h%&&%'P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTp"TPT`TpTЂTTTT}TЅTTTT TTTT T%`T`xzTvࢻ@vx9}~@pp@nnz`z8' qtԻջ0:1Ѐ`0s20<`P0,Ż`0ƻPӻܻݻ`ػTCubicSplineSeries0%(% & &% EP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTATPT`TpTlTTT}TЅTTTT TTTT TB`T`xzTv0<@vx9}~@pp@nnz`z8E qtԻջ0:^Ѐ`0s`0xAPWŻ`0ƻPӻܻݻ`ػkp<@N TFitSeries%`!&%8&%`{P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT{TPT`TpTЂTTTT}TЅTTTT TTTT TPy`T`xzTv 77@vx9}~@p@::@nnz`z|| qt0890:pЀ00swЎ@TCustomColorMapSeries%%%&%`{P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTpTPT`TpTЂTTTT}TЅTTTT TTTT TPy`T`xzTv 77@vx9}~@p@::@nnz`z|| qt@890:pЀ00swЎЕTColorMapSeries%Hx%&%^TP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T``TTFitSeriesRange%H8)%&1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC0PTLegendItemColorMap %TFuncCalculateEvent$selfPointerAXDouble AYDouble((%TFuncSeriesStep %TCustomFuncSeriesH%TCustomFuncSeries`%()& TAFuncSeries0~ 4 AxisIndexX0P~ 4 AxisIndexY  4 ExtentAutoY 4Pen@%@4Step% TFuncSeries% TFuncSeriesX%% TAFuncSeries%4 OnCalculate%TParametricCurveCalculateEvent$selfPointerATDouble AXDouble AYDouble(((p%TParametricCurveSeries%TParametricCurveSeriesH%()& TAFuncSeries0~ 4 AxisIndexX0P~ 4 AxisIndexY% 4 OnCalculate(0 ParamMax( ParamMaxStep(`ParamMinP4Pen@%4Step0% TSplineDegreed%8 TAFuncSeries8% @ TAFuncSeriesp% @ TAFuncSeries% @ TAFuncSeries%8 TAFuncSeries%TBSplineSeriesP%TBSplineSeries8% TAFuncSeries `8Active0~ 4 AxisIndexX0P~ 4 AxisIndexY : ShowInLegendpP Source(Titlex 8 ZPosition0%h 4Degreepۻ4 MarkPositionsg4Marksp4PenPۻ4Pointer@%xP4Step4Styles 0 ToolTargetsȑƻڻ`ԻU XErrorBarsȑƻڻ`ԻU YErrorBars0OnCustomDrawPointer((0OnGetPointerStyle%TBadDataChartPen&TBadDataChartPen% TAFuncSeriespb4Color&csoDrawUnorderedXcsoExtrapolateLeftcsoExtrapolateRight TAFuncSeries`&s&&&&s&&&&TCubicSplineOptions& &TCubicSplineType cstNaturalcstHermiteMonotone TAFuncSeriesP&~&s&&s&~&& @ TAFuncSeries& @ TAFuncSeries(&TSplineX&`&TSpline8% TAFuncSeries&& TAFuncSeries&TCubicSplineSeries & &&&TCubicSplineSeries0% TAFuncSeries `8Active0~ 4 AxisIndexX0P~ 4 AxisIndexYpۻ 4 MarkPositionsg 4MarksPۻ4Pointer : ShowInLegendpPSource(Title 0 ToolTargetsx 8 ZPosition0OnCustomDrawPointer((0OnGetPointerStyleX&h`:4 BadDataPenH&:4Options;4Pen&p;4 SplineType@%;4Stepȑƻڻ`ԻU XErrorBarsȑƻڻ`ԻU YErrorBars& @ TAFuncSeries & @ TAFuncSeries( & @ TAFuncSeries` & TAFuncSeries & TFitSeries0;&p &TFitEquationTextEvent$selfPointerASeries TFitSeries AEquationTextIFitEquationText&1&( & TFitSeries% TAFuncSeries hh 0AutoFit0~ 4 AxisIndexX0P~ 4 AxisIndexY ir 4DrawFitRangeOnlyX0&lr4 FitEquationxpu4FitRangeul FixedParamspۻ4 MarkPositionsg4Marksdpv5 ParamCount0w4PenPۻ4PointerpPSource@%w4Step 0 ToolTargets jw4UseCombinedExtentYȑƻڻ`ԻU XErrorBarsȑƻڻ`ԻU YErrorBars0OnCustomDrawPointer0 OnFitComplete &0OnFitEquationText((0OnGetPointerStyle &TFitParamsState fpsUnknown fpsInvalidfpsValid TAFuncSeries&&&&&&&& & TFitFuncIndexH& TFitFuncEvent$selfPointerAIndex TFitFuncIndexAFitFuncTFitFunc`&0:&h&TFuncCalculate3DEvent$selfPointerAXDoubleAYDouble AZDouble(((&TCustomColorMapSeriesP& TUseImagecmuiAuto cmuiAlways cmuiNever TAFuncSeries&&&&&&&&&TCustomColorMapSeries%()& TAFuncSeries 0~ 4 AxisIndexX0P~ 4 AxisIndexY  4Brush@&0 5BuiltInPalette(BuiltInPaletteMax(@@BuiltInPaletteMinppP ColorSource 5 Interpolate@%4StepX@%Д4StepY& 4UseImage8&TColorMapSeries&TColorMapSeries%& TAFuncSeriesH&p4 OnCalculate&TFitSeriesRange% TAFuncSeries&TLegendItemColorMap %p7 TAFuncSeries& &P&0&&1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTInterpolation3D& TIntMode3D IM_DELAUNAYUMathInterpolation&%&P&%&h& TTriangle & TTriangle& &TTriangleArray &UMathInterpolation&TTriangleArray &UMathInterpolationX& TCircle& TCircle&E&& TDataPointsF&UMathInterpolation & TInternal h&TInternalArray &UMathInterpolation& dTriangle & &UMathInterpolation &UMathInterpolation`& &&TInterpolation3D`&P&H&TInterpolation3D&UMathInterpolation0&8@!&'&X!&P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT TPT`TpTЂTTTT}TЅTTTT TTTT Tp`T`xzTv 77@vx9}~@p@::@nnz`z8C qtC890:CЀ00swTBasicFuncSeriesx&(@"&*&)&1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACCTCustomDrawFuncHelperh!& X"&8#&*&1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTDrawFuncHelper`"& X"&($& +&1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTPointsDrawFuncHelperP#&h'&h+&'&P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTࣻTPT`TpTЂTTTT}TЅTTTT TTTT T`T`xzTvࢻ@vx9}~@pp@nnz`z8C qtԻջ0:CЀ`0s˻0`P`ûŻ`0ƻPӻܻݻ`ػTBasicPointSeriesAccessH$&TBasicFuncSeries'&TBasicFuncSeriesx& TACustomFuncSeries `8Active4Extent : ShowInLegend(Titlex  8 ZPosition'&TMakeDoublePoint(AX(AY0)&TOnPoint$selfPointerAXgDoubleAXaDouble((p)&TCustomDrawFuncHelperh  )&TCustomDrawFuncHelperh!&TACustomFuncSeries*&TDrawFuncHelper`*&TDrawFuncHelper`"&X*&TACustomFuncSeries*&TPointsDrawFuncHelper*&TPointsDrawFuncHelperP#&X*&TACustomFuncSeries +&TBasicPointSeriesAccessH$& TACustomFuncSeriesh+&+&+& X,&H2&(-&0BCBC4CP6C9CBCBC9C7C8C0AC@ACPACTFitEmptyEquationTextP`p+&,&+&+&`X0.&05&4&.&0BCBC4CP6C9CBCBC9C7C8C0AC@ACPACTFitEquationText 0@P`p+&H.&X+&`-&P/&8&8&1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTFitStatistics.&8 X  TFitEquation fePolynomialfeLinearfeExpfePowerfeCustom TAFitUtils0&C0&50&,0&0&;0&`0&0&,0&50&;0&C0&0& AnsiString0& AnsiString1&IFitEquationText TAFitUtils P1& AnsiString1& AnsiString1&TFitEmptyEquationText2&TFitEmptyEquationText+&( TAFitUtilsH2& TAFitUtils2& TAFitUtils2&( TAFitUtils2& AnsiString03& AnsiStringh3&  3&  3& 4&  04& `4&TFitEquationText2&(082&@(3&H4&TFitEquationText`-&( TAFitUtils05&( TAFitUtilsp5&5&5& TAFitUtils5& 5& 6& @6& p6& 6& 6& 7& 07& `7& 7& 7& 7&  8& P8&TFitStatistics5&@8&TFitStatistics.& TAFitUtils8&TArbFloatArray @TAFitLibH9& @TAFitLib9&TArbFloatMatrix9&9&TAFitLib9&TFitFunc@@xParam9& TFitParam08:& TFitParam8:&00:&0:&@ *:&TFitParamArray0x:&x:&TAFitLib:&TFitParamArray0:&:&TAFitLib8;& TFitErrCodefitOK fitDimErrorfitMoreParamsThanValuesfitNoFitParams fitSingularfitNoBaseFunctions fitOverflowTAFitLibx;&;&;&;&;&;&;&;&<&;&;&;&;&;&;&;&p<& TFitResults`9&9&<& TFitResults<&` <&9&9&@ @0@@@P=& TSimpleFitResults9&=& TSimpleFitResults=&<&9&>&TAFitLibh>&8؁`@&A&p@&`P3C4CT9C9CT9C7C8C0AC@ACPAC]TTTTPT`TpTЂTTTTTTЅTTTTT TTTT T@T`TTTT "`" TColorMap>&TColorMapPalettecmpHotcmpCold cmpRainbow cmpMonochrome TAColorMap@&@&@&@&@&@&@&@&@&@& A& TColorMapPA& TColorMap>&@ TAColorMapA&ۢQMn?THermiteSplineType hstMonotoneipfA&B&0B&B&HB& @ipf`B&B&B& B&C& 0C&0XC&C&(C&0C&C&( D&0HD&0pD&PD&pD&HD&xE&P8E& Tvector2_single_data`E& Tvector2_double_data(E& Tvector2_extended_data@E& Tvector3_single_data (F& Tvector3_double_data(hF& Tvector3_extended_data@F& Tvector4_single_dataF& Tvector4_double_data (0G& Tvector4_extended_data(@pG& G& Tmatrix2_single_dataG& (0H& Tmatrix2_double_data (`H& @H& Tmatrix2_extended_data(@H& (I& Tmatrix3_single_data$ XI& (I& Tmatrix3_double_dataH (I& @J& Tmatrix3_extended_dataZ @HJ& J& Tmatrix4_single_data@J& (K& Tmatrix4_double_data(@K& (@K& Tmatrix4_extended_data@K&Tvector2_singleL&Tvector2_singleL&E&HL&Tvector2_doubleL&Tvector2_doubleL&E&L&Tvector2_extended (M&Tvector2_extended(M&  F&hM&Tvector3_singleM&Tvector3_singleM&`F&M&Tvector3_double HN&Tvector3_doubleHN& F&N&Tvector3_extended0N&Tvector3_extendedN&0F& O&Tvector4_singlehO&Tvector4_singlehO&(G&O&Tvector4_double(O&Tvector4_doubleO&(hG& 8P&Tvector4_extended0P&Tvector4_extendedP&0G&(P&Tmatrix2_singleQ&Tmatrix2_singleQ&(H&XQ&Tmatrix2_double(Q&Tmatrix2_doubleQ&(H& Q&Tmatrix2_extended08R&Tmatrix2_extended8R&0 I&(xR&Tmatrix3_single0R&Tmatrix3_singleR&0I&(S&Tmatrix3_doublePXS&Tmatrix3_doubleXS&PJ&HS&Tmatrix3_extendedpS&Tmatrix3_extendedS&pJ&`(T&Tmatrix4_singleHxT&Tmatrix4_singlexT&HK&@T&Tmatrix4_doubleU&Tmatrix4_doubleU&K&HU&Tmatrix4_extendedU&Tmatrix4_extendedU&L&U& V&r&P3C4CP6C9C9C:C9C7C8C0AC@ACPACTFreeTypeGlyph(V&(_&HX&t&s&pP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@Б@ d TFreeTypeFontW&50Y&u&1CP3C4CP6C9C9C:C9C7C8C0AC@AC`GX EFreeType`X&pZ&`x&1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACCCCCCCCCCCCTCustomFamilyCollectionItemHY&[&x&1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACCCCCCCCCCCCCCTCustomFontCollectionItemZ&[&\& \&8\&]&0z&1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACCCCCCCCCCCCCCCCTCustomFreeTypeFontCollectionH\&0^&Xt&1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACCCCCCCCCCCC dCTFreeTypeRenderableFont]&`&@{&1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC@efChCtTFreeTypeDrawer_&00a&{&P3C4CP6C9C9C:C9C7C8C0AC@ACPACCPCCTFreeTypeRasterMap(`&HHa&Xb&@|&P3C4CP6C9C9C:C9C7C8C0AC@ACPACP@PTFreeTypeMonochromeMapPa&@Ha&c&|&P3C4CP6C9C9C:C9C7C8C0AC@ACPACP0TFreeTypeGrayscaleMapxb&Hx0X PAAAAAACEEEEIIIINOOOOOUUUUYAAACC C CDEEEEEGG G"G$H(I*I,I.I0I4J6K9L;L=LCNENGNLONOPOTRVRXRZS\S^S`SbTdThUjUlUnUpUrUtWvYxYyZ{Z}ZAIOUGKOGNAAEEI I OORRUUSTH&A(E.O2YvtABBB D DDDDEEF G"H$H&H(H*H,I0K2K4K6L:L<L>M@MBMDNFNHNJNTPVPXRZR^R`SbSjTlTnTpTrUtUvU|V~VWWWWWXXYZZZAAEEEIIOOUUYYYYhi&!*!KTGlyphRenderQuality grqMonochrome grqLowQualitygrqHighQualityEasyLazFreeType0j&rj&dj&Vj&j&Vj&dj&rj&j& ArrayOfSingleEasyLazFreeTypej& TCharPosition@k& TCharPosition@k& xk&ArrayOfCharPositionpk&EasyLazFreeTypek&ArrayOfCharPositionk&EasyLazFreeType@l&TFreeTypeAlignmentftaLeft ftaCenterftaRight ftaJustifyftaTopftaVerticalCenter ftaBaseline ftaBottomEasyLazFreeTypel&l&m&l&l&l&l&l&l&(m&l&l&l&l&l&l&l&m&m&TFreeTypeAlignments m&m&TFreeTypeInformation ftiCopyrightNotice ftiFamilyftiStyle ftiIdentifier ftiFullNameftiVersionStringftiPostscriptName ftiTrademarkftiManufacturer ftiDesigner ftiVendorURLftiDesignerURLftiLicenseDescriptionftiLicenseInfoURLEasyLazFreeTypen&?n& n& n&Rn&sn&en& n& n&n&n&\n&n& n&n&(o&?n&Rn&\n&en&sn&n&n&n&n&n&n&n&n&n&o&TFreeTypeStyleftsBold ftsItalicEasyLazFreeType`p&p&p&p&p&p&p&TFreeTypeStylesp&p&TFreeTypeWordBreakHandler$selfPointerABefore AnsiStringAAfter AnsiString(q& p o&q&TFreeTypeGlyphq&TFreeTypeGlyph(V&EasyLazFreeTyper&EasyLazFreeTypeHr&EasyLazFreeTyper& r& (r& s& Hs& xs&TFreeTypeRenderableFonts& TFreeTypeFont0Xxr&hs&TFreeTypeRenderableFont]&EasyLazFreeTypeXt& TFreeTypeFontW&t&EasyLazFreeTypet& TFreeTypeKerningt& TFreeTypeKerningt&  u& EFreeTypeu& EFreeType`X&EasyLazFreeTypeu&TFontCollectionItemDestroyProc$selfPointeru& "TFontCollectionItemDestroyListener8v& "TFontCollectionItemDestroyListener8v&0v&v&(ArrayOfFontCollectionItemDestroyListenerv&EasyLazFreeTypev&(ArrayOfFontCollectionItemDestroyListenerv&EasyLazFreeTypeHw& AnsiStringw& AnsiStringw&TCustomFamilyCollectionItemx&TCustomFamilyCollectionItemHY&EasyLazFreeType`x&TCustomFontCollectionItemx&TCustomFontCollectionItemZ&EasyLazFreeTypex&IFreeTypeFontEnumeratorEasyLazFreeType@y&IFreeTypeFamilyEnumeratorEasyLazFreeTypey&TCustomFreeTypeFontCollectiony&TCustomFreeTypeFontCollectionH\&EasyLazFreeType0z&TOnRenderTextHandler$selfPointerAText AnsiStringxSingleySinglez&TFreeTypeDrawer{&TFreeTypeDrawer_&EasyLazFreeType@{&TFreeTypeRasterMap{&TFreeTypeRasterMap(`&EasyLazFreeType{&TFreeTypeMonochromeMap|&TFreeTypeMonochromeMapPa&{&EasyLazFreeType@|&TFreeTypeGrayscaleMap|&TFreeTypeGrayscaleMapxb&{&EasyLazFreeType|& ArrayOfStringEasyLazFreeType}& &p~&H&wP3C4CP6C9C9C:C9C7C8C0AC@ACPACd0h`kp s vTFreeTypeRasterizerp}&?Function_Sweep_Init$selfPointerminLongIntmaxLongInt~&Function_Sweep_Span$selfPointeryLongIntx1LongIntx2LongIntLeftTProfileRightTProfileP&P&(&Function_Sweep_Step$selfPointer&TFreeTypeRasterizer&TFreeTypeRasterizerp}&&TTRasterH&&H&1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACCCCCCCTFreeTypeCustomRasterizer& TT_UnitVector& TT_UnitVector&& TT_Vector0& TT_Vector0&h& TT_Matrix& TT_Matrix& & TT_BBoxP& TT_BBoxP& & TT_KerningInfo & TT_KerningInfo& @@@@ (& TT_Points_Table d`&& TT_Points_Table d&& TT_Points& & TT_Coordinatesd@&TT_PCoordinatesx&& TT_TouchTable &TT_PTouchTable؅&& TT_ConStarts & TT_PConStarts0&8& TT_Outline(X& TT_OutlineX&( 8&&P& ! "#& TT_Glyph_MetricsH& TT_Glyph_MetricsH&&& TT_Big_Glyph_Metrics(& TT_Big_Glyph_Metrics&(& $8&TDirectRenderingFunction$selfPointerxLongIntyLongInttxLongIntdataPointer؈& TT_Instance_Metricsp& TT_Instance_Metricsp& & TT_Raster_Map P& TT_Raster_MapP&  & TT_Header<& H& x& TT_Header&<  p&&@$@&@(@* , .048& TT_Horizontal_HeaderP&  & TT_Horizontal_Header&P@@@ H& 4 8@HP& TT_Vertical_HeaderPp& & TT_Vertical_Headerp&P@@@ ؎& 4 8@H& TT_OS2& 0& `& TT_OS2&%    $(,048X&<`H`L`P`T&X \ ^ `dhl p r`t`x| & TT_Postscript$& TT_Postscript&$  ````` 8& TT_Face_Properties8&،&0&h&H&&`&&x&&& TT_Face_Properties&8  @&X&p& &(&0& TT_Streamh& TT_Streamh&& TT_Faceؕ& TT_Faceؕ&& TT_InstanceH& TT_InstanceH&& TT_Glyph& TT_Glyph&& TT_CharMap(& TT_CharMap(&`& TT_Gray_Palette&PTT_Gray_PaletteЗ&ؗ&TFreeTypeCustomRasterizer&TFreeTypeCustomRasterizer&TTTypesH& TByteArray@&PByte&& TShortArray@@ؘ&PShort&& TUShortArray @(&PUShortX&`& TStorage>@&PStorage&& TCoordinates@ؙ& PCoordinates&& TVecRecord00& TVecRecord0&0(&(&(&(& И&(h&@@@@D PpP`h TGraphicsState\Л& TGraphicsStateЛ&\(& (&(&$(, 048<@DH ILPTX&PGraphicsStatex&& TCodeRange& TCodeRange&И&؝& PCodeRange& & TCodeRangeTable0Н&@& TCodeRangeTable0&& TDefRecord & TDefRecord&  & PDefRecordX&`& TDefArraydX&& PDefArray&& TDefArrayd&؟& TCallRecord& TCallRecord& H& TCallStack@d@&& TCallStack@d&& PCallStack& & TGlyph_Zone(@& TGlyph_Zone@&(8&8&&x& x& PGlyph_Zone&&TRound_Function$selfPointerdistanceLongInt compensationLongIntLongInt &TMove_Function$selfPointerzone PGlyph_ZonepointLongIntdistanceLongInt&&TProject_Function$selfPointerP1 TT_VectorP2 TT_VectorLongInt&&(& TFunc_Get_CVT$selfPointerindexLongIntLongInt& TFunc_Set_CVT$selfPointerindexLongIntvalueLongInt& TGlyph_Transformh& TGlyph_Transformh& &PGlyph_Transform0&8& TSubglyph_Record`& TSubglyph_Record`&   &&@DH0&Ld&h&px|&PSubglyph_Record&& TSubglyph_Stack && TSubglyph_Stack &(&PSubglyph_Stack`&h& TIns_MetricsP& ȧ& TIns_Metrics&P  $(,048&< L M& TFace@& TFace@&!Е&(&h& ،&@h& &&(&&&`&@& Й&(0И&8@И&HP &X&`ptx|&&p&PFace&& TInstancep& TExec_Context& TExec_Context&9&& Й&(&0&X&&&x&TИ&X`d hl&pИ&x8&П&П&&Й&8&`dh l m npЙ&x&&&& &&`&`&(& PExec_Contextد&& TInstance&p& 8& \`П&hptП&x&x&Й& Й&(&0 X&`h& PInstancep&x& TGlyphh& TGlyph&h&Ј&@&0X\ `ȱ&PGlyph@&H& TFont_Input`& TFont_Input`&Е&& PFont_Inputز&&  -@ZjP  A-@Z j'OP  P&0HH&& eP3C4CP6C9C9C:C9C7C8C0AC@ACPAC0 e` Pi*TFPGObjectListX& @&`&&&1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTBinarySearchKerningTable&TCustomKerningTable&TCustomKerningTableH&TTKern&TFPGObjectList$1$crc6F2A21CD&TKerningTablesH&TFPGObjectList$1$crc6F2A21CDX&0TTKern&TKerningTablesH&&TTKern& TFPGListEnumerator$1$crc6F2A21CD& TFPGListEnumerator$1$crc6F2A21CDP&TTKernP& TCompareFunc &Item1 &Item2&PT&& PTypeList&& TKerningPair&H&TTKernP&TBinarySearchKerningTablex&&TBinarySearchKerningTable&&TTKern&8&(&&PP3C4CP6C9C9C:C9C7C8C0AC@ACPAC TInterpreter& & @& x&& 8& TInterpreter&8& TInterpreter&TTInterp(&H0&(&1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTProfile`&0&&P3C4CP6C9C9C:C9C7C8C0AC@ACPACTProfileCollectionH&`&P&&P3C4CP6C9C9C:C9C7C8C0AC@ACPAC TRenderPool8&TCurveDirection GoingUnknownGoingUp GoingDown GoingHoriz TTProfile &W&a&B&O&&B&O&W&a&& TPoint& TPoint& & TBezierStack&`& TBezierStackX&& PBezierStack&&TProfile&TProfile`& TTProfile(&TProfileCollectionX&TProfileCollectionH& TTProfile& TTProfile& TRenderPool&P& TRenderPool8& TTProfileP&@[&&&P& P3C4CP6C9C9C:C9C7C8C0AC@ACPACp@p`  0@TFontCollectionItem&0Z&&&P&1CP3C4CP6C9C9C:C9C7C8C0AC@ACPAC %P'''07B 8p>CTFamilyCollectionItem&(]&p&X&aP3C4CP6C9C9C:C9C7C8C0AC@ACPACQ@GpEDQpSS@TWZ@]_`ab cTFreeTypeFontCollection(&(X`&&& BC4CP6C9CBCBC9C7C8C0AC@ACPACTFamilyEnumeratorccccc0\&x& @\&&(X&(&&BC4CP6C9CBCBC9C7C8C0AC@ACPACTFontEnumeratorcccdd\&& \&&HEpEEEEF8F`FF p o&p&LazFreeTypeFontCollection&v&LazFreeTypeFontCollection&  &TFontCollectionItem&(&&P&TFontCollectionItem&8y&LazFreeTypeFontCollection&&LazFreeTypeFontCollection0&LazFreeTypeFontCollectionp& & AnsiString& AnsiString&TFamilyCollectionItemh&& P&TFamilyCollectionItem&x&LazFreeTypeFontCollection&TFreeTypeFontCollection&TFreeTypeFontCollection(&xz&LazFreeTypeFontCollectionX& H &TFamilyEnumerator&(LazFreeTypeFontCollection&TFontEnumerator&(LazFreeTypeFontCollection(&(&`& fP3C4CP6CpCpCpCpC7C8C0AC@ACPAC=S9S9S9S9SpCP:SP9Spfg>SHSTBase64EncodingStreamp&H&p&rSP3C4CP6CpCpCpCpC7C8C0AC@ACPAC=S@k9Sh9SpCP:S@np9Ss>SHSTBase64DecodingStream&5&&1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GXEBase64DecodingException&IUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU>UUU?456789:;<=UUUUUU UUUUUU !"#$%&'()*+,-./0123UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUTBase64EncodingStream &TBase64EncodingStreamp&base64`&TBase64DecodingMode bdmStrictbdmMIMEbase64&&&&&&&TBase64DecodingStream0&TBase64DecodingStream&base64p&EBase64DecodingException&EBase64DecodingException&base64&0&`&8&&P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT TP|`TTTTխխ`խ@`y0{Pɭ֭@֭ح٭0TDbChartSource8&8PP&@&h&P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^T`T`Tw›PyyPě`ěpěěěěśPśpśśśśy`ǛǛTDbChartSourceDataLink& dcsoDateTimeX dcsoDateTimeY TADbSourcex&&&&&&&TDbChartSourceOptions&&TDbChartSource8@H8&TDbChartSourceGetItemEvent$selfPointerASenderTDbChartSourceAItemTChartDataItem8&p&TDbChartSource8&p TADbSourceЅ5 DataSource0DateTimeFormat4 FieldColor`4 FieldText4FieldXЇ4FieldY0&`4OptionsX& 4 OnGetItem`&TDbChartSourceDataLink& TADbSource@&?&p'1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACҸ׸ Ըz`ԸԸԸ@ظ`{׸ ظٸPTSeriesComponentEditor&8B&'@P3C4CP6C9C9C:C9C7C8C0AC@ACPACав0x yн0y0įǯpȯPȯpȯ ϯϯ@կ0دׯPددٯ گگ0ۯPۯ@ܯܯ@ݯpޯޯTSeriesPropertyEditor&XNH'0 '`'~P݄4CT0^DD9C7C8C0AC@ACPAC```T`TTD`TpT@}ET@DT`0`ЅT`TTT TTTT T}E`Tpa0aT@|EڄvE``pD`PE^``Ў` `@`E_a`^+`+`P^``DDD`D0_^_ ?`P8a9a@^^PDP``D^@F_F_p__E```@E@$_`E^ _ -` _,`,`;`0_`PE`x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`D` E_@_`@^p_B`pD`D`P\`^`0_`]`_`_` E@ EF`G`I`DE@EDp`J`<`xE``0` @`@`@`p_u^v^@w^IE_%a&aE #`p/a`^D ````_@``a``D=_`<_|`^```0a_apDPD0^`^0`_``P0 OnStartDragHXX?0OnUTF8KeyPress @8ParentBidiMode `A4 ParentFont `B4ParentShowHint`C6 PopupMenu `0`DShowHint X E8Sorted( _^F5TabOrder  ^G4TabStopffH5TopIndex ``IVisible`e'@0s'v'@s'`}P3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]TS`TSS}`SS{ TLinkedChartr'@t'w't'pSP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T{SSpSSSПS`SSPSSPS TLinkedChartsPs'؁pv'x'v'0P3C4CT9C9CT9C7C8C0AC@ACPAC]TTT`TTPT`TpTЂTTTTTTЅTTTTT TTTT T`TTTTTChartExtentLinkt' TLinkedChartv' TLinkedChartr'TAChartExtentLink?(P4Chartv' TLinkedCharts`w' TLinkedChartsPs'TAChartExtentLinkw'TChartExtendLinkModeelmXYelmOnlyXelmOnlyYTAChartExtentLinkw'x'x'w'8x'w'x'x'hx' TChartSidesx'TChartExtentLinkx'TChartExtentLinkt'@TAChartExtentLink xx0AlignMissingAxesx't4 AlignSides ``0Enabledw'hh0 LinkedCharts0x'pp0Modex'?{'8'1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACҸ׸ Ըz`ԸԸԸ@ظ`{׸ ظٸ0TToolsComponentEditorHz'8B}''@P3C4CP6C9C9C:C9C7C8C0AC@ACPACав0x yн0y0įǯpȯPȯpȯ ϯϯ@կ0دׯPددٯ گگ0ۯPۯ@ܯܯ@ݯpޯޯTToolsPropertyEditor{'XN''('~P݄4CT0^DD9C7C8C0AC@ACPAC```T`TTD`TpT@}ET@DT`0`ЅT`TTT TTTT T}E`Tpa0aT@|EڄvE``pD`PE^``Ў` `@`E_a`^+`+`P^``DDD`D0_^_ ?`P8a9a@^^PDP``D^@F_F_p__E```@E@$_`E^ _ -` _,`,`;`0_`PE`x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`D` E_@_`@^p_B`pD`D`P\`^`0_`]`_`_` E@ EF`G`I`DE@EDp`J`<`xE``0` @`@`@`p_u^v^@w^IE_%a&aE #`p/a`^D ````_@``a``D=_`<_|`^```0a_apDPD0^`^0`_``POOOOOWOpOOPP2PHP^P8''''3P݄4CT0^9C a9C7C8C0AC@ACPAC```T`TT ^`TpT_T``T`0`ЅT`TTT TTTT TP1`Tpa0aTfڄa````^^``Ў` `@`}`_a`^+`+`P^``_` ``0`0_^_ ?`P8a9a@^^P`P`S`^@F_F_p__`````_@$_`_^ _ -` _,`,`;`0_`P``x`@7`7`7`PY`PZ`` `f `p`/_`^` _ ^P_ `fIa ap_^P`М`0``0__@_`@^p_B`pD`D`P\`^`0_`]`_`_`pF`F`F`G`I``|f"`4p`J`<`P```0` @`@`@`p_u^v^@w^w^_%a&a'a #`p/a`^P^`f```_@``a```=_`<_|`^```0a_a0`P1`0^`^0`_``P0 OnDrawItem0pp?0 OnEndDrag  @0 OnDropDownPPA0 OnEditingDone((B0OnEnter88C0OnExitxD0 OnKeyDown؟E0 OnKeyPressxF0OnKeyUp@@G0 OnMeasureItemH0 OnMouseDownI0 OnMouseEnterJ0 OnMouseLeaveK0 OnMouseMoveL0 OnMouseUpppM0 OnStartDragPPN0OnSelectHXXO0OnUTF8KeyPress'(P%@'((X'0mP3C4CT9C9CT9C7C8C0AC@ACPAC]TTTmTPT`TpTЂTTTT}TЅTTTT TTTT Tj`T`xzTv 77@vx9}~@p@::@nnz`z8po qt p890:Ѐo0sPPnTExpressionSeriesp'8'h(('0SP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]TSTSS S`SSЖSTChartExprParamh'P(((pSP3C4CP6C9C9C:C9C7C8C0AC@ACPAC]T]T^TSSpSSSПS`SSPSSPSTChartExprParams'((H ((1CP3C4CP6C9C9C:C9C7C8C0AC@ACPACTChartDomainScanner(@%( ( ((wP3C4CT9C9CT9C7C8C0AC@ACPAC]TTT@xTPT`TpTЂTTTT}TЅTTTT TTTT Tu`T`xzTv 77@vx9}~@p@::@nnz`z|x qtz890:pЀ00swЎ`yTExpressionColorMapSeries(TExpressionSeries(TChartExprParams'TAExpressionSeries(TExpressionSeriesp'%TAExpressionSeries(q0q5 DomainEpsilon(q4Paramst4Variablep4Domainq4 Expression(TChartExprParam((TChartExprParamh'TAExpressionSeries(PU4Name(0U4Valueh(TChartExprParams( TDomainParts(P((TAExpressionSeries( (TChartDomainScanner(TChartDomainScanner(TAExpressionSeriesH (TExpressionColorMapSeries  (TExpressionColorMapSeries(&TAExpressionSeries {4 Expression({4ParamsP~4 VariableNameX ~4 VariableNameY (87 ( (@P3C4CP6C9C9C:C9C7C8C0AC@ACPACав0 н000įǯpȯPȯpȯ ϯϯ@կ0دׯPددٯ گگ0ۯPۯ@ܯܯ@ݯpޯޯTDataPointsPropertyEditor0 (TDataPointsPropertyEditorH (TDataPointsPropertyEditor0 (TASourcePropEditors (((((((DP݄4CT0^DD9C7C8C0AC@ACPAC```T`TTD`TpT@}ET@DT`0`ЅT`TTT TTTT T}E`Tpa0aT@|EڄvE``pD`PE^``Ў` `@`E_a`^+`+`P^``DDD`D0_^_ ?`P8a9a@^^PDP``D^@F_F_p__E```@E@$_`E^ _ -` _,`,`;`0_`PE`x`@7`7`7`PY`PZ`` `` `p`/_`^` _HaP_ `@_`_a ap_HaP`М`D` E_@_`@^p_B`pD`D`P\`^`0_`]`_`_` E@ EF`G`I`DE@EDp`J`<`xE``0` @`@`@`p_u^v^@w^IE_%a&aE #`p/a`^D ````_@``a``D=_`<_|`^```0a_apDPD0^`^0`_``P>@TCaseOperationP:(*(<((|(PP3C4CP6CpCpCpCpC7C8C0AC@ACPACC@N`+0NCTMathOperationx;(<(=(|(PP3C4CP6CpCpCpCpC7C8C0AC@ACPACO@N`+0NNTFPAddOperation<(<(>(x}(PP3C4CP6CpCpCpCpC7C8C0AC@ACPACRP`+0NQTFPSubtractOperation=(<(@((~(PP3C4CP6CpCpCpCpC7C8C0AC@ACPACPT S`+0N`STFPMultiplyOperation>(<(8A(~(PP3C4CP6CpCpCpCpC7C8C0AC@ACPACVPU`+0VUTFPDivideOperation(@(<(hB((PP3C4CP6CpCpCpCpC7C8C0AC@ACPAC``+0TFPModuloOperationXA(<(C(8(PP3C4CP6CpCpCpCpC7C8C0AC@ACPACP\Y`+0ZYTFPPowerOperationB()(D((P3C4CP6CpCpCpCpC7C8C0AC@ACPACC`+0CCTFPUnaryOperatorC(D(E(0(P3C4CP6CpCpCpCpC7C8C0AC@ACPACC`+0Cp]TFPConvertNodeD(D( G((P3C4CP6CpCpCpCpC7C8C0AC@ACPACP0/`+0000 TFPNotNodeF(F(HH((P3C4CP6CpCpCpCpC7C8C0AC@ACPACC]`+0Cp]TIntConvertNode8G(XH(pI((P3C4CP6CpCpCpCpC7C8C0AC@ACPAC]]`+0]p]TIntToFloatNode`H(XH(J((P3C4CP6CpCpCpCpC7C8C0AC@ACPAC ]`+0p]TIntToCurrencyNodeI(XH(K((P3C4CP6CpCpCpCpC7C8C0AC@ACPAC^]`+0]p]TIntToDateTimeNodeJ(F(L((P3C4CP6CpCpCpCpC7C8C0AC@ACPAC`^0^`+0P^p]TFloatToDateTimeNodeK(F((N((P3C4CP6CpCpCpCpC7C8C0AC@ACPAC`+0p]TFloatToCurrencyNodeM(F(XO((P3C4CP6CpCpCpCpC7C8C0AC@ACPAC^^`+0^p]TCurrencyToDateTimeNodeHN(F(P((P3C4CP6CpCpCpCpC7C8C0AC@ACPAC@__`+00_p]TCurrencyToFloatNodexO(D(Q((P3C4CP6CpCpCpCpC7C8C0AC@ACPAC &$`+0&&TFPNegateOperationP( )(R(((1CP3C4CP6CpCpCpCpC7C8C0AC@ACPACP"pCpCpC`+@+@"p"TFPConstExpressionQ(p(T(@(Љ(@T(0SP3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpCS0SS S`SSЖSTFPExprIdentifierDefS(hHT(pU(Ȍ(U(0SP3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpCS SS S`SSЖSTFPBuiltInExprIdentifierDefPT(@V(g(V(pSP3C4CP6CpCpCpCpC7C8C0AC@ACPAC]TpC^TSSpSSSpC`SPPSSPSTFPExprIdentifierDefsU( )(X(m(1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC aCpCpC`+@+aCTFPExprIdentifierNodeW( 0X(HY((1CP3C4CP6CpCpCpCpC7C8C0AC@ACPAC apCpCpC`+@+aaTFPExprVariable8X(H&(Z(@((gP3C4CP6CpCpCpCpC7C8C0AC@ACPACcgh`ca`h b`eTAggregateExpr`Y(PZ([((gP3C4CP6CpCpCpCpC7C8C0AC@ACPACc``ca`h b`e TAggregateMinZ(PZ(\( (gP3C4CP6CpCpCpCpC7C8C0AC@ACPACc``ca`h b`e TAggregateMax[(HZ((^((gP3C4CP6CpCpCpCpC7C8C0AC@ACPACc``ca`h `e TAggregateSum](P8^(`_((gP3C4CP6CpCpCpCpC7C8C0AC@ACPACc`ca`h `e TAggregateAvg@^(HZ(`(x(gP3C4CP6CpCpCpCpC7C8C0AC@ACPACc`ca`h b`eTAggregateCountx_(8&(a((gP3C4CP6CpCpCpCpC7C8C0AC@ACPACPkcgh`+`ca`h biTFPFunctionCallBack`(@&(c(x(gP3C4CP6CpCpCpCpC7C8C0AC@ACPAC mcgh`+`ca`h bkTFPFunctionEventHandlera(5d( (1CP3C4CP6CpCpCpCpC7C8C0AC@AC`GX EExprParser0c( TTokenTypettPlusttMinus ttLessThan ttLargerThanttEqualttDivttModttMulttLeftttRightttLessThanEqualttLargerThanEqual ttunequalttNumberttString ttIdentifierttCommattAndttOrttXorttTruettFalsettNotttifttCasettPowerttEOF fpexprparsd(d(e(d(dd(e(\d(d(d(d(Od( d(vd(Dd( d((X|( fpexprpars(~( h~(TFPDivideOperation~(TFPDivideOperation(@(X|( fpexprpars~( (TFPModuloOperationH(TFPModuloOperationXA(X|( fpexprpars( (TFPPowerOperation(TFPPowerOperationB(X|( fpexprpars8(TFPUnaryOperatorx(TFPUnaryOperatorC(m( fpexprpars(TFPConvertNode(TFPConvertNodeD(( fpexprpars0( TFPNotNodeh( TFPNotNodeF(( fpexprpars(TIntConvertNode؁(TIntConvertNode8G(`( fpexprpars(TIntToFloatNodeP(TIntToFloatNode`H(H( fpexprpars(TIntToCurrencyNodeȂ(TIntToCurrencyNodeI(H( fpexprpars(TIntToDateTimeNodeH(TIntToDateTimeNodeJ(H( fpexprpars(TFloatToDateTimeNodeȃ(TFloatToDateTimeNodeK(`( fpexprpars(TFloatToCurrencyNodeH(TFloatToCurrencyNodeM(`( fpexprpars(TCurrencyToDateTimeNodeȄ(TCurrencyToDateTimeNodeHN(`( fpexprpars(TCurrencyToFloatNodeP(TCurrencyToFloatNodexO(`( fpexprpars(TFPNegateOperationЅ(TFPNegateOperationP(( fpexprpars( P( (TFPConstExpression l((TFPConstExpressionQ(m( fpexprpars(TIdentifierType itVariableitFunctionCallBackitFunctionHandleritFunctionNode fpexprpars@(m(((b((b(m((((TFPExprFunctionCallBackHq(Resultq(Args((TFPExprFunctionEvent$selfPointerResultTFPExpressionResultArgsTExprParameterArrayHq(q(x(TFPExprVariableCallBackHq(Result@AName(TFPExprVariableEvent$selfPointerResultTFPExpressionResult@AName ShortStringHq(P(TFPExprIdentifierDefH l(PhЉ(TFPExprIdentifierDefS( fpexprpars (pp0IdentifierTypet4Name5Valueh 4ParameterTypeso( p5 ResultType(xx0OnGetFunctionValueȉ(000OnGetVariableValuem(((0NodeType tt0VariableArgumentCount@(TFPBuiltInExprIdentifierDef(TFPBuiltInExprIdentifierDefPT(x( fpexprparsh( 0CategoryȌ(TFPExprIdentifierDefs@(TFPExprVariable(TFPExprVariable8X(@m( fpexprpars(TAggregateExpr l(0(TAggregateExpr`Y(xm( fpexprpars@( TAggregateMinx( TAggregateMinZ(p( fpexprpars( TAggregateMax( TAggregateMax[(p( fpexprpars ( TAggregateSumX( TAggregateSum](p( fpexprpars( TAggregateAvgȏ( TAggregateAvg@^(( fpexprpars(TAggregateCount8(TAggregateCountx_(p( fpexprparsx(TFPFunctionCallBack(TFPFunctionCallBack`(xm( fpexprpars(TFPFunctionEventHandler0(TFPFunctionEventHandlera(xm( fpexprparsx(TFPExpressionParserClass`j(( EExprParser( EExprParser0c( fpexprpars ((Г(((0(P(p(((Д(((0(P(p(((Е(((0(P(p(((Ж(((0(P(p(((З(((0(P(p(((И((8VV`V`VGWVVBuxW8W8WmWWWyJpX0X0X~BXXXr xY0Y0YsYYYce pZ(Z(ZsZZZTX[([([Ӯ)[[[~,+P\\\d\\\3]P]]]ch]]]@^^^S2^^^(h 8_^^S"_p_p_ 8`__@"`p`p`Ha``> aaaR Xbbbbbbl xc c cxidccNCd@d@dVedd3 eHeHeÛfeeÆMfHfHfgffusg8g8gs! hggmz hHhHh,g ihhNi`i`i 8jiiKjpjpj~(W2 (ș(( -؞( H((((8(P(h((((Ȝ(( ( ( (( @( X(p((((Н((((0(H(`(x((40(4h(4(4(4(4H(4(4(4)4()4`)4 )4 )4)4@)4x)4)4)4 )4X)4#)4$)4()48,)4p-)4.)((/)(('(((9(@(K(X(W(p(g((w(((((л((((((((0((H((`((x(((((((((ؼ(6((D((L( (X(8(d(P(s(h((((((((Ƚ(((((((((((@((X( (p(((%((4((;(о(F((Q((X((c(0(n(H(x(`((x((((((((ؿ(((((( ((8((P((h((( ((*((8((F((Q((`((o((({(@((X((p((((((((((((((((0( (H((`('(x(6((C((T((e((v((((( ((8((P((h(((((((&((=((T((b((t((((@((X((p((((((((((((( (((0(%(H(5(`(G(x(]((s((((((((((( ((8((P((h((((( ((((!((/((=((I(((Y(@(i(X(r(p(|(((((((((((((((0((H((`((x((( ((0((:((C((P((]( (e(8(q(P(}(h(((((((((((((((((((@((X((p('((/((;((G((R((a((p((x(0((H((`((x(((((((((((((( ((8( (P((h(/((8((@((O((f((v((((((((@((X((p((((((((((((((((0(6(H(Q(`(l(x(((((((((((((( ((8("(P(3(h(H((]((t((((((((((((((@( (X( (p(.((@((R((a((t(((((((0((H((`((x((( ((((,((:((L((^( (i(8(t(P((h(((((((((((((=((^(((m(@((X((p(((((((((((((((8(0(M(H(^(`(s(x(((((((((((((( ( (8( (P(-(h(>((O((c(({((((((((((((@((X((p(+((@((V((e((}(((((((0(8* 9*9@:*c;*<*t>*@A*0C*w F*uI*sK*L*N*P*,Q* T*V*([*90`*Bpa*b*g`d*e*g*2hi*j*| l*9m*Bn*(p*q*s*v*z*}*(** `*p****, *wP*ȡ*(`*&**,x*w* ***x** `*p* `*p*X* **v*x* *q*h***p*(*Q*t`**p*}(++LX+p+ +} +T(+2+[++++@ &+p(3+%D+; J+U+>c+p j+Ht+ȃ+8 +. ؒ++a+++ȵ+ +7+k@+u+#(+P+h+++8+P+@++%++x+X+(++++,n,,, , , ,0,,,Gx, ,p#,ZP',,,/,3,x4,5,6,`8,gH;,>,C,xE,(H,mK,M,pQ,W,+Z,@_,6f,G@h,k,Ho,tp,Hr,5s,u,Yv,@y,w8|,,U,,,,1,9؍,,^,@,H,S(,,@,@,@,@,,,,',x,v ,>,,,o,H,C,(,b0,},,?,-,]@,u,d,,,,,'-@- -5 -0-P-kh-->--$-h(-`.-P6-r8-P<-V@@-_B-E-QI-K-O-S-nV-[-`-}c-0 h-ZPm-o-s-8x-C@{-y--(-E-0-@-e --%-u-R -x----@-s--^ - -+ .d`L.NR.{e.f.Lh.j.5xr.t.bw.-{.K@..GP.~.m..= .IУ. .@.\.2H...P.|.S `...8.<. /f)/:82/x5/@:/d@@/fN/(h(((((((((((((((((( (@((X((p(]/(]/0@]/0p]/0]/0]/0^/00^/0`^/^/^/^/ ((^/(^/(a/BTNCALCULATORBTNCALCULATOR_150BTNCALCULATOR_200BTNCALENDARBTNCALENDAR_150BTNCALENDAR_200BTNFILTERCANCELBTNFILTERCANCEL_150BTNFILTERCANCEL_200BTNSELDIRBTNSELDIR_150BTNSELDIR_200BTNSELFILEBTNSELFILE_150BTNSELFILE_200BTNTIMEBTNTIME_150BTNTIME_200BTN_ABORTBTN_ABORT_150BTN_ABORT_200BTN_ALLBTN_ALL_150BTN_ALL_200BTN_ARROWRIGHTBTN_ARROWRIGHT_150BTN_ARROWRIGHT_200BTN_CANCELBTN_CANCEL_150BTN_CANCEL_200BTN_CLOSEBTN_CLOSE_150BTN_CLOSE_200BTN_HELPBTN_HELP_150BTN_HELP_200BTN_IGNOREBTN_IGNORE_150BTN_IGNORE_200BTN_NOBTN_NO_150BTN_NO_200BTN_OKBTN_OK_150BTN_OK_200BTN_RETRYBTN_RETRY_150BTN_RETRY_200BTN_YESBTN_YES_150BTN_YES_200COLLATECOLLATE_REVDBNAVCANCELDBNAVCANCEL_150DBNAVCANCEL_200DBNAVDELETEDBNAVDELETE_150DBNAVDELETE_200DBNAVEDITDBNAVEDIT_150DBNAVEDIT_200DBNAVFIRSTDBNAVFIRST_150DBNAVFIRST_200DBNAVINSERTDBNAVINSERT_150DBNAVINSERT_200DBNAVLASTDBNAVLAST_150DBNAVLAST_200DBNAVNEXTDBNAVNEXT_150DBNAVNEXT_200DBNAVPOSTDBNAVPOST_150DBNAVPOST_200DBNAVPRIORDBNAVPRIOR_150DBNAVPRIOR_200DBNAVREFRESHDBNAVREFRESH_150DBNAVREFRESH_200DELETE_SELECTIONDELETE_SELECTION_150DELETE_SELECTION_200DIALOG_CONFIRMATIONDIALOG_CONFIRMATION_150DIALOG_CONFIRMATION_200DIALOG_ERRORDIALOG_ERROR_150DIALOG_ERROR_200DIALOG_INFORMATIONDIALOG_INFORMATION_150DIALOG_INFORMATION_200DIALOG_SHIELDDIALOG_SHIELD_150DIALOG_SHIELD_200DIALOG_WARNINGDIALOG_WARNING_150DIALOG_WARNING_200DUPL_LONGDUPL_NONEDUPL_SHORTISSUE_CARBONISSUE_CARBON_150ISSUE_CARBON_200ISSUE_COCOAISSUE_COCOA_150ISSUE_COCOA_200ISSUE_CUSTOMDRAWNISSUE_CUSTOMDRAWN_150ISSUE_CUSTOMDRAWN_200ISSUE_FPGUIISSUE_FPGUI_150ISSUE_FPGUI_200ISSUE_GTKISSUE_GTK2ISSUE_GTK2_150ISSUE_GTK2_200ISSUE_GTK3ISSUE_GTK3_150ISSUE_GTK3_200ISSUE_GTK_150ISSUE_GTK_200ISSUE_MUIISSUE_MUI_150ISSUE_MUI_200ISSUE_NOGUIISSUE_NOGUI_150ISSUE_NOGUI_200ISSUE_QTISSUE_QT5ISSUE_QT5_150ISSUE_QT5_200ISSUE_QT6ISSUE_QT6_150ISSUE_QT6_200ISSUE_QT_150ISSUE_QT_200ISSUE_WIN32ISSUE_WIN32_150ISSUE_WIN32_200ISSUE_WINCEISSUE_WINCE_150ISSUE_WINCE_200LANDSCAPELAZ_COPYLAZ_COPY_150LAZ_COPY_200LAZ_CUTLAZ_CUT_150LAZ_CUT_200LAZ_MULTIPASTELAZ_MULTIPASTE_150LAZ_MULTIPASTE_200LAZ_PASTELAZ_PASTE_150LAZ_PASTE_200OI_BOXOI_BOX_150OI_BOX_200OI_COLLECTIONOI_COLLECTION_150OI_COLLECTION_200OI_COMPOI_COMP_150OI_COMP_200OI_CONTROLOI_CONTROL_150OI_CONTROL_200OI_FORMOI_FORM_150OI_FORM_200OI_ITEMOI_ITEM_150OI_ITEM_200OI_OPTIONSOI_OPTIONS_150OI_OPTIONS_200PAGESHEET_1PAGESHEET_2PAGESHEET_4PG_ACTIVE_ROWPG_ACTIVE_ROW_150PG_ACTIVE_ROW_200PORTRAITPRINTERPRINTER_REMOTEPRINTER_REMOTE_STOPPEDPRINTER_STOPPEDREV_LANDSCAPEREV_PORTRAITSORTASCSORTASC_150SORTASC_200SORTASC_50SORTASC_75SORTDESCSORTDESC_150SORTDESC_200SORTDESC_50SORTDESC_75TABSTRACTOPTIONSEDITORDIALOGTCALCULATEDCHARTSOURCETCALCULATEDCHARTSOURCE_150TCALCULATEDCHARTSOURCE_200TCALENDARPOPUPFORMTCHANGEPARENTDLGTCHARTTCHARTAXISTRANSFORMATIONSTCHARTAXISTRANSFORMATIONS_150TCHARTAXISTRANSFORMATIONS_200TCHARTCOMBOBOXTCHARTCOMBOBOX_150TCHARTCOMBOBOX_200TCHARTEXTENTLINKTCHARTEXTENTLINK_150TCHARTEXTENTLINK_200TCHARTGUICONNECTORBGRATCHARTGUICONNECTORBGRA_150TCHARTGUICONNECTORBGRA_200TCHARTIMAGELISTTCHARTIMAGELIST_150TCHARTIMAGELIST_200TCHARTLEGENDPANELTCHARTLEGENDPANEL_150TCHARTLEGENDPANEL_200TCHARTLISTBOXTCHARTLISTBOX_150TCHARTLISTBOX_200TCHARTLIVEVIEWTCHARTLIVEVIEW_150TCHARTLIVEVIEW_200TCHARTNAVPANELTCHARTNAVPANEL_150TCHARTNAVPANEL_200TCHARTNAVSCROLLBARTCHARTNAVSCROLLBAR_150TCHARTNAVSCROLLBAR_200TCHARTSTYLESTCHARTSTYLES_150TCHARTSTYLES_200TCHARTTOOLSETTCHARTTOOLSET_150TCHARTTOOLSET_200TCHART_150TCHART_200TCHECKGROUPEDITORDLGTCHECKLISTBOXEDITORDLGTCLOUDREMMILKYWAYTCOLLECTIONPROPERTYEDITORFORMTCOMPONENTLISTEDITORFORMTDATAPOINTSEDITORFORMTDATETIMEINTERVALCHARTSOURCETDATETIMEINTERVALCHARTSOURCE_150TDATETIMEINTERVALCHARTSOURCE_200TDBCHARTSOURCETDBCHARTSOURCE_150TDBCHARTSOURCE_200TDLGPAGESETUPTDLGPROPERTIESPRINTERTDLGSELECTPRINTERTFILEFILTERPROPEDITFORMTFRAMEPAGESETUPTINTERVALCHARTSOURCETINTERVALCHARTSOURCE_150TINTERVALCHARTSOURCE_200TKEYVALPROPEDITORFRMTLISTCHARTSOURCETLISTCHARTSOURCE_150TLISTCHARTSOURCE_200TOBJECTINSPECTORDLGTOPENGLCONTROLTOPENGLCONTROL_150TOPENGLCONTROL_200TPAGESETUPDIALOGTPAGESETUPDIALOG_150TPAGESETUPDIALOG_200TPAGESPROPEDITORFRMTPRINTDIALOGTPRINTDIALOG_150TPRINTDIALOG_200TPRINTERSETUPDIALOGTPRINTERSETUPDIALOG_150TPRINTERSETUPDIALOG_200TRANDOMCHARTSOURCETRANDOMCHARTSOURCE_150TRANDOMCHARTSOURCE_200TSELECTPROPERTIESFORMTSORTEDCHARTSOURCETSORTEDCHARTSOURCE_150TSORTEDCHARTSOURCE_200TSTRINGGRIDEDITORDLGTSTRINGSPROPEDITORFRMTTIMEPOPUPFORMTUSERDEFINEDCHARTSOURCETUSERDEFINEDCHARTSOURCE_150TUSERDEFINEDCHARTSOURCE_200UNCOLLATEUNCOLLATE_REVCUR_1CUR_10CUR_12CUR_13CUR_14CUR_15CUR_16CUR_17CUR_18CUR_20CUR_21CUR_22MAINICON( @( @A"( @T Cf~~~|xp`@|!d8??(0`UT<=Tz@x`py}~|xp`@x8???(@UUTUUT @ @ @ A CWTOT@`px?|?~~~~|xp`@??????>><<8<<????? ( @ 8 8,FCA@@a`1 0 |<  (0`?<?;9xpxp<pppxǀ88<><??????x?8??(@|<>>|<><xxxxxx|<><>?????????`???( @*J@J*?(0`4T@  @T4 ??  (@d$@$ $$$ <@@ <$$$$ $@d   ?         ?  ( @@@@@@@?????(0`` @?? @`????" (@0H@ @?  ?  ?@  @H0??( @U@ T  @ Cf~~~|xp`@|!d8??(0`UU@ UT    @<=Tz@x`py}~|xp`@x8???(@UUU@UUTUUT @ @ U@ UA CWTOT@`px?|?~~~~|xp`@UUU ??????>><<8<<????? ( @ ` `0m6ݷmw?? (0` U`U|88lUOOOOO??(@UW_|}?=zx<8<??????x?8??(@|<>>|<><xxxxxx|<><>?????????`???( @s'9?( @ ????????( @@2Z^2@??gg??( dd !#$#""!  '1;DMU[adeedb`]XRKD=5+!  !.>N^mzsdTC4(  $8Nczp\G2!  4Mg{cI2 +C]yw\A)  0Kk         iI,/Ot          oK,+Lt          % ) ) ( + , . * #!       oJ+$Ek          & / 2 - - 4 4 5 0 ) ( " % ' $ "       jA" 5^   #32$    !     ' . 1 0 1 6 7 5 1 / 0 * * + + ) $ # % $ # - ."    Y2 #Ht  '/ 3 9 >: *    $ & "  #) ) / 4 7 7 9 5 3 58 3 /-+ $ " & + ) + 3 1 ( .$     oA 2]'//. 7)M "C +      ! $  ! ) + . 02 5 4 5 6 7 8 5 3 - & %& % $ & ) ) * 1 9 4 -&#& U+Cq %0/ ' ( & (2 , $      & " ! $ & ) '&+ ) / 5 8 8 89 5 - 2 . % !( *+. 5:9 4 1 2 /,$   g8 $N # 6 "@ ; ! ! !  " "    $' !"# " $' " !& &*3 9 7:; 8 4 : 3 ($+.-,.38 : ; !; 4 6 2("  tD +W   , 6!?#B $  ! " " ! " "   !& $#$$ $&%#$) **1 83: 7 4 5 5 / + ) ,0 * %$ )3=#B "@ 7 < : 1 1 +O$ /`    %&'' %    " !  ! # $ #   !)&"#' "  $')).3 1 1 2 1 - & " $ ( , 0 0,()*5 "A &D8> < 6; ; . U& 3g     && $ !        $(" ! &)' % % !  ! #$#%/7 4 5 4 2 / + ( .3 / 1 5 3,%& ' /$> / 373 * 3 -   Z* 4g   )) $ ! " ! ! !      #  $) %%& %(*+* $ #& ' &(' - 5 6 3 5 512 / 14 // 1 1, %'& (1 * + - * &. + #  ]- 4h   %/. ( !  !       % # " # % % '& ! #)., '&*+ '- ' ' -0 1 66361 0 / -.- ,* '+,+ ((% # #&)' #    ]*  0f  0. # "  " #          #$# " ! " #   ' ( & &), * & ( " # $36 5 571. . -2 / * (),/. (%     "    " "  Y'  +b  (/*  ! !            ! ! ! ! " ! ! # * . ---, ( " ! ! "#" & & ' ,552 . - 0 ,( % % $ % $              U" &Z  $/53,+' & %              ! "'** +/,+- -10* #   #)( # ! %.43 - * % %%$# " ! !     $   !  LQ   ' 12432:40, !   !           (-/00)&' */-*' #  )+ $  "',.+ % ! " "% "  !    !  !    # # " ! CE '2 9?80+-;<5*   ! # !    !       % ),/ ' $ ! !& ' &') ) $   ") $ "# $'( # "!  ") $ ""!       !  !% ' & $   u98u  1 "D+Q2W0W.S6 % (.+ " " "      "      & % % , ) % # # " $ # # % $ "  ! $ ( )& ! $ $ $ '#&& %* $ %'$"##"!    !',+ *$ j/ )e! 6.T0X !D 4>6/4, %(.*% ! " $    !   !%& $)' %+*&%%$##$'*(&& '&+.) "()% $ $' ( ' * ( ( ( # !&&# $"" ! "#$&('%"   W P$ &F +O)N%I!E?=9676*-5.'# " # #     #&)))'&''('&'%%%%)'&(*),-*%)*''))** & & '& # !'($$$  $% $()' % #  B9~  59b;g %I : B'L=7:?9100(% # ! ! %    " $ '())' $ $('# & %&'%%$$ $ &)*)(''&'*)())# #$$""%%#" #   && $'++ ( &'   m/ &a # <9c:h/V ? 4< 5 /:*M4 3 / &     "# #        !*,' #"% #  " " &)($ # "  &'$#) # "&' # "#$% $$# "!  ! " ##"$&&%&*-,)++ $  TG %3 *K@k -W>849=8 )!              #$#!  ! $ #   % * ( ' %&(&  $% " %'& $ $ # ! "#%$# " "&# ! " & $ !  #()+0* % &+/*& " f)Q / +M *O"G#G$K-P2X0]*V&N&L$HA<==5%# ! "$ !     ##!%'&$#  #&# "$) + +*+,*%%&&)*)()$$%%$%$$ '(%## #.,'',1104- ( )--(& % #  K 5x# A9d4` #J B*R)I'H(Q*V0W-S$JB!H%J?/$&%%' $#%&#%((%)++($"!#'+*%%*-.- ,+)''*.,+-0%&(% !&&'+,(&&% 8#;!5 16777:">#=&%>)&?306"$:3 " q. V  0 (L :f=h1V %C8e.V $H$I)K 8$D*R(M-O)L"C5%(*(% &""6*B*&())+*,-'! "$'+)%#%)+,+ ')+* )-(+/,$%(($*)'),)'),3#>'?!5%;":8#=*3I?H^RRbeZgl_mOHY:=SKKaUQe.2F1  M 6} * $C *P2X 6^4^2X3^,V %K 'J4V %; ; %G)K =!B:++(('$ & #(B$=\*H!6)=*>3/((**%%% &)&$$&&&)-*.,(&&)+,+)),. &*--*+*+ / 5.B%0F,C2G[\midtML_@BWsn}a[nLG[HCUXN^i\ktiyxk|sfwe]nKL^*3C's. T  1 ,M /S 4Y4\1Z.W6d4a3^6_;a9R*C$B*I315$6%3-,*')3$1J,A^+?\-;R1]!7R!3P 4R!74#+A&9L#3C *=)>&< 6"7*3G4;P4=L:;I?@PBCTKK[WXcbdlwt?BF)---.,**/2))(%)3#3A1BBBP@CR"-<#2#4FQ`pQas{u/,B6347"=+B(:QIWorw~XVj'%/ @(h  &46 9-R 4`S;>R9@S26$8!5445 6 62.';,6H$';"%8#8';).?'*=2:K3;LHJ\vvvNG`$+D'C3  3 65 ?8^ 8e8e8c 6a4Z2S ,P)S!5`8DhXSoToUk_r[sk}q|su~x~Ncv2La9SkC^y>^yL]uR^sS]mHTd/E\)E`'A[3N+GMQgsu>>FI,o 6 -P/U1X3\/V2[:e9f ,Y/W*R'8_>VOpgknzzthg\rp~}EiP{cdz^o\_j&',c" ?  !=0U5\6_6`0X-W:e@k4]6c(Q"G-R6Jreyrry|{dieUmi`f|03< ~4 R &)G,S0Z3[2Z3^.U+P.U5b1]%K)K(;^1IpPnhtw|c6b|7ay7ayAjTqpx:?NH$g  *.O1Z-V*S-W6a+R'K,P1Z&L&H(G0P1LqZwlopx{fOy/Xt=inPWg!%+ `2{   32W>h;d1Z+X7b-U+P.R,R#F%F#A)G6Rvc~olnsvy|kvbk}/3; v+A !";3Y$It(Mv=e,V7a1Y-T,R(N'J#B >.M?[a}mmooqtw{nw:?J; R ! 0(HBk>c.P (L6d*R%K'L(J $C #>$@4TEc_{hiilmqux~yGM\!Kc * 7 >,R,N&D$F0\*Q(M*M +H 'D2Q<].Mo]vb{eggklot{}~RYk"$+ Z)r 3 $D (J&N %H $C $E,S%L'J+J*E&@)@_=WyKfd{e{f}ghkkmqwyz{||\ey+.8 j% 3 8)N5^(Q,Q1T2T3Y,R)K)G)F,F4JhQf`ucwfyh{h}hkkmpqtvxz{~fo48Cz/= # 7(Ld9Ou8Pt-Mr*Hm :[/N4T$Db;VuUjfxevgxiyizh|klmoqrtvxzz|~lw9?L: H ! 5)I>d7QpK`QgPfUhUgMaG]|J`Vl\q_rbscscvdxfzhzk|mllnqtvvxy{~q{AGW CR#3#@1Q8NmQbXjVi\k]l\lZlZn_qararbqcscudwfyiyl{m}mnortuvxy|~u~GL^$LZ  +8!=&F"8YIXz]iXhZi[j]l^m]n]m_oapbqbsdtevgwjylzl{n}pqrtuuvz}~}wMRe!) S a 2#>$B$1R4VGUv_iYgZhZi[j]l]l]l_n`oaparcretgvjxiyk{m}o~qqtutty{{{|~yPWj#%. Z$i , 6,IOYvYdZeYeYeZf[iZjZk\l_k_m_n_naqcresguhwhxjym{n}n~oqttvwxyy{|~yQWk#'/ ^ 'm)-D3D`Q^{ZeZf~Xf~Xe[f[gZhZi\j_k^l]m^nbpcrdsdteuiwiwjxl{l}n~pstuuvxxzy{wSZn&)2 b"(p !,<9H^L[uTb|Xd~Xe~Xf~YfZf\f\h\h]h^j^l`manandpererethvhvivkxl{n|o}psttuwxzz{}~xRZn&)2 e$*s$4=OLYoXf}Wd}Yd~XeXfYfZf]g]h]g^g^j_kblelbmdpfpfqfshuhvivkwmynzn{o}rssuvwy{||}xRYm%(1 e$+t  )8>QKVmSbzWc}[c|[d~[eZf[f]g]g\g]h^j_jbjekdmdpfogofrgrhtiwjxmxnxnzn|p~rstuuwyz{{u}SWl%(1 c#,v (9>OMTlV_zX`{Yb{Za|Zb~[c]d~\dZfZg\h]i_ibicjakcmfnfodpdqfshtiujwjvlyn|n|o~qrsuvxyy{|}r{NTg"%- b",v  )9>QMVmTazUb}Wb}Yb}Zb{Zby\dz[d~Ze~[f}]f}^g`hbibiakakbmdpfpepfrfsfuhwjwkyl{m|n}o~qsttuwyzz|}}qzLSe"$- _ +t '8DVPXlU`tV^tV]uY^w[`yX`wYaw[av[av[cy\dx\d|^d}`e|^g]g^g_g_hbjckelemdmengnhohrgsjsktktmtnumvnwqyqzq{s|t|t~v~vvvwwxxxz{z{}}~~~}{}~}||osRVj),6 ~3 = "$.<@SPUmV\qW\qV]tX_wZ`wX`vY`u[at\at]au[av[bx]cx^cw]dx^f{^f~_g`h}ahcidjcleldjflgngohqiqiqhqjrmrosounvpwpyqzq{q|t|u~uttwwvvwyz{|}}}{|}~~|}~~~}~}{|~~{y{~|zzzyjoKNb$%/ r* 2 '6:JMQfV\pV]rW\rX]sX^tY_sZ_tZ_t[_u]`w]aw[bw[bx]by^by]cx^d{_f}_g{`f}bgchcicjdjdkemfneogphpipiqkqlqmrmtnvmwnxpxqyrzs{s|s|r~t~uvwvvwwxz{zz|||}{}}}~~~~|~}~~}|||~~}{zyyyz|{zy{v|chBEU% b!(q14@HM^TYmV\rW[rX[rX\sZ^rZ]sZ]sZ^t[`u[`uZbxZbx\aw^cy^by_cy`dz`fz`f|bf}cfbgahcickdleldmfngnhnhphphpjqmsksltmumuouqxqyqyrzr{s{t|u}w~v~vvvwxyyy{{zzz}}|}}}}}z|}}~|}}}}|{{|z{{zzxwxzxy~y}x~x~wqw[_u8;ITa+,7BGXQViVZpWZtXZtZ[rY\r[]rZ^rY^rY_sX`sXaxZ`w\_s]bu`cy`by`byaezae{bezbe|bf~ahbhcidjejekelfkgkhnhnfohplqjrlrlrksmspvowpxqxsyqzrzt{u|u|u}v~wvwxyyxyxxy{{|}{zzzxzz{|{zz{{zzzzyxxy{yw}x|y}v~w}w|v{v{t|lqRUj01=EO#$-;?ONSgUYqVZsXZrZ[qWZpY\pY^sX^tZ]s[_sZ^tZ^u\_s[`p_bt`ax`ay`cz_cy`dy`e{ae}bf~bg}bg~dgeheidjejgkhkjlimimjmkqkolqmsmtnvnwpwrxtwoypzrzsyszt{u{t|r|t|v|v|w}v}w}w~wwwyz{{yyyzzy~x~xy~ywuwzy~x~w~zw~w~x}y|x~v}v{u{t{v|w{vzsyrwfkIL_'&2 5  = $57GJMcSVmVZpXZpXZnWZpX[oY\qZ[s[[s]]s\]s[]r[]r]_s]_s^_u_au_au_`u`bwacxbcxaczaezaezbe{dh~bi~difjfjfjfjgkhkjjimgoiokolrkslvmvouqvoupvpxpxqzs{s{r|s|ryszt|u|vzv{v|v|w{w{x}x}w|y|w|w|x}y}x}w}w}w|x|x|v|u|u~w~u}u|u{w|v{u|u{wzu{uzuztzsxsyuxvxuxpu_b{@BR' r(,r-.9FGZRSjVXnVXnWXnXYnXZnYZn[Zo[Zp\\q[\p[\p[]q[]r\]r^^t__t_`t^_t_at`at``uabx`cx`cxadydf{cg}ehfheigkfkflhljminjpioinjnjokqltnvpzoxnxnynxoyr|ssuut}s|u|v|u{s{s{uztyvyxzxzv{u{vzwzvzvzv{u{uzx{xyvytzt{u{tzuzvzuytztzsxswuwtwswsxrwrwrwsvruloVYo56D\\$$-??OPOeUVlVWnXWnXYmYXmYXmZYm[YmZZpZ[oZ[n[]o[\p[]p\]r^^s^_s]_s^_s__s_`u`aw`aw`bxacxcdydezee}de~dffifkekelhnhnjninhmhmjmknlpmtnynzmzmylvmuq{rrtvustvu~s~rr~s}s|u{w{t|tzuxuxsxtxvxvxtxuyuxuxtysysxsxtxvwswqwrwsvqutusuququqvpvpvpunreiKNa*+6GE #56DKK\STiVVnXWmXXlYVlYWmXXmZYmYZpYZoZZm[[m\\oY\n[\o]\p\^p]^r]]s^^t_`v__u``w``waawbbxccxbcvbcxbdzdeyeg}cg}chekfkgjhjhkgljllllljnjqkxlylukrlqnunwoyp{rrrrsttsrsqqsrs{txswqvqvtwuvtvqwpwrvsvqvrwqvqurupvotptququqtpsosotrsosnsnsjo[`y?AQ ) 6 0v,+7DCTPOcTTiVTjVVjVUjVUjWWkXYlWXkWXjXXkZXl[YmXYmYZn\\p]]q\]p\]q[]q\]q_^q^`q^`q^_r__taauaawaawbcvcdxbezceydezdf|cg{dgzfh}hifh}hihihjglgkioiqioimkpkplomonqltmwnynzmzn}p~rtrqrsprs~r{pyoxqxqwoumtntotosotrtpsnqlqmsornqmrlslrmqnqnqnpnnmpkpehQSi12?f$\ #!)=:GNL\UTgUSiTUgSTfTUgVVhWVgVWgVUhXVkYYnYYmXXlYXkZYm[[p[Zo[[n[\n[]o]]n]^n^_m^_n]_p^^q__s_`t^at_cvadvbbsbbtbdxadycdzbe{cf{gg{gg|gh~gifhhifmekgjilikilimkmlmjojqkqjoipjqlsmvnxo{o|p|p|n{n{o|p|p{q|q{p{p{owlqmpnrmrmqnrlpjolqnqlpkojojninjnlnlnmllmhl]byEGY%%0NC 31:HFSRQbSSgRSgSReTTeUTdVSdUUgWUiXUjWVkWXlXWkXWiXXjZXlZWm[Ym[[n\[o[[m\[m\]l\^l[^m]^o^`p]`p\_q^at_as`aqabsabv`btccyadzaeyffzedyef{fg|ff|gg}fiehfhhjghgjgkhlilhlhlimimhlimknlolplrmtmtktkvlvlvmwnxnxnwnwownulqkpkploinjnjnjmlnlnkmjmimimhmimjlikiljkefTXl79G  }6 ,p('/>=ILK\QReSRfUQeURdURbURcUShWTiWThWThWViXUhWVhWWiZWjYVlZYm[Zn[ZnZZm[Zm[\mZ]mZ]m\^n]_o\^n\^p_`t^_s_ar`bs`bu`brbbvbbwbcwcdxbcwccyddzee{dezef|ff}ff}fg{gh|fh|ei~fjfkgjgjhlimhlimjmklkkkjjljniojpkpjojolqipiqjqmplplqjpiojngmgliljljljjjjikhlililikhkgjglgj_`wIK\)*5_!Q $33@EEWPPbURcWPdWQdVRcURcVRiURgWSfYTgWUhXTdWUfVWjXXkZXkZYlYYmYYmZZl[\lZ[mZ[m[\lZ[m[\m\]p^]s`_u_^s^^r^`r^ar_at_`sa`sa`s`auabvabvbcxcdzccyddzddzddzeezfg{df{df}egehgigighghhjgkhjijijjjhjhkjlijhjhjiklkfkdlglkliminiohogngminimhkilhiiiijgjhjjjiighfjgjcgUWm;;I$ D 6)'2>=LKL^RObTPeUQdTRcSSfSQeURdVRdURdVSfXTgWUhVUhVVhVUgVUkWUlYUjZVjZYkZXkZXkZZk]Zp][o\\o\\p\\p_\o^^p\^q\^q]^s^_r__r`_t__u^aw^bw_bwaaxaayaawbcwcdxcdzcdzdf{df{de{dd}fg}fg}ff}ff}fg~ghggggggghhhfieighhigifhghgigjhjhjgkflgkikjlhkhkijiiijhihigifihjhighegdgef\^wGI\+,7l+ ] "31&$+:9DHGUOL\PM^ON_QO`RO^RO_PO`PO`QQbQObSQdTRdURbSRbVRdVTfUVfVUeUUhUUhUVhVWiVWjVWkWWjYXi[XhXYiXZjZZiZ[iZ[nZ[qZ[o[\m\]o\\n\]m\]l\]m\^o\^p]^p__s``v_`t_`t`at_bt^bt``sabtacu`bu`cwbcycbxcbwbdzcdzae{`ey`dwadxceyddycczbc{bdyceycdzcc{bez`ezae{bf|cf|ce~bfbgbgce|cfbg~ag}`e~^e|_d|_d|_d}`b{XZnDET)*3u/ %d  --5AAJLJWNM]MN^PM\OM[OO\OO^PN_OO_QO_QO`SQcVSeRQ`RRaSRbTScVScUTgTTfUTfVUgUUgVWkVWkWWiYXhWXgWXhYYh[YhZXlYYoYZlZ[i\]m[\l[\k\\k\\k\]m\\n]]n]^p]_r]^r^_r^`q]`p\ar^_q_`q^`q_`r`at`buaata`u`cx_bwacxacx_bv`bwaavbcxbdyacybbxadyadxacxbdyabw`bv`bu`bv`bw`cx`cx`bwabvbbz`cy_dz_d}^c}`c{_by^aw]\sNOa45@  O@ !%64?FDSMK\OL]QK\SL]QL\PL]QM_SN_SO_SN_TN`VPbTQbRRcRRcTQdWQfXShWReWScWTeVSeVTgUVhTVgVWfXWeWWgWWhWWgWWiVXlVYkXZiZZiYZkZZl[[l[\m\\n_Zp^[n\]m\]o\\p]]p\]o[]o]_t^_t]^r]^o^_o^_s^_r^_r^_t_`u_`v__u``vaaw_av_`u`at`bt_`u`ax``x``w`avbcw`bw`av`at`asaav`av_at_`t`av_`t_at_au^aw_`w`av`bv]_sSTg??N##,r. #^+'/=9FKFWQK_PJ_QJ^RM_RN`RM`QM^QN^RN_RN`RO`TOaUPcUPcUObUQcUQeWRdXSdYSdZSdWUfWVfYUeWSdZUdXVeWVgYViYYjXXhXWgYWhYXjZ[lZ[l[Zl\[l[Zm[Zn\Zn\[m][l[[l\]m]]m\]m\]o\]m]^p^_q]]n^\q^^q^_q^_s__u__t`_t__u^_u^_s_`s_`s^_s^^t``v`^v`^u_`u_aua`va_u``s``r`_u__t``ta`t_`t_`t^`s^_t__wa`w``u^`qVYjFHZ--9K9y !3.8E>MOH[PJ`PJ]QL^RL`RLaPM_RM^RM_RMaQNbUNbWN`WO`VPaVQbTPdVQcWRcVRcYRcVTeWSdZScYSfZTdZUfZVhZViZXhXWgXWgXWhXXi[YkZYlZYl\Yk\YlZYn[Ym\Yl\[n[Zn][n^\m]\l\\l\\j\]n]^q^\p^\q]^p\_q]_s^^s_]p`]q_^r^]q^^q^^p^^r^^t^^u_^t`^s_^s^^t__sa^tb^ta^r_^s^_t__s`_r`_q__p`_s_^r_^r_^s`_v`_vZ[oMN^68E% j*P%"(:4@IBSOI]QJ[QJ^RK`SK`QL`SM`SL`RLaSMcVNbWN^VO^VPaWQbUObVOaVPaTPcVPcUReVRcXRbYThXSfYTgZUh[UgZUeXVeXWgXWhWWhZWjZWk[Wk\Wl\Xl[Xm[Xl[Xl\Yo[Zp]Yo]Zn\[m\[l][m\\n\[o][q^]q]]o\^p\^q]]q_\o_]o^]p^]o^^q^\p^]q^]s]]t_\s_]q^]q_]r`^s_]s`]q`]q^]r^^t^^s^]q^]o_]o_]q`\p_\o^\p^]s^[rSQe?>M%&.D ,j+'0>9HKEWQIZSJ^SJ_SK]PK^SL`RLaQLaSLaVN_UN_UOaUPaUO`VN^WN_WNaUOdVPeUPeUReUSeVTfWShWSgWSeYSeZTcWTcXUeZUgXUhXXj[Wi\Vj[Vl[Wm[Wl[Xl[Xm]Wm\Yn\Wm[Xm[Zo]Zo]Yq]Yo\Yn[Yn_[q^[o\[o\\o\\o^\p]\n]\n^\o_\q][r^[q^\q\[q_]s^[p^\o_]p_]t^]r]\n^\m`\p]\s\[r\[q\[p_\q\Zp^Zn^[o][p\[oWReGBQ.,6 \$? 0+7A;OMFWPI[PI[OHZPJ\PK^PK`QKbRLbSJ]TL]TL`SLaTL^SM]VN_XNbWNbUPbTOcSPeSQeTQcVPdWPcWQcVSdVQbWScWTdXSeXQgXTgXTfXTfWTgWUhZWiYWjXVjZUiXWjZVh[WfZWfZVj\Wk[XmZYo[Yo]Vn]Wn]Xm\Ym]YmZXlXYjYYj\Yl]Yk]Yo^Zo^[n\[m]Zm][o][n]Zk]Yn_[n^[o\[o\Zo]Zq[YpZZo[[o\[o\[o][n][p\YqVUiIGW41<  x6 Y "2-:C=KKEULHYKJZLI[MJ[NH[PH\RJ^RI\PJZPK[QJ\QJ[TK\VL\VL]VM^TM^RN_RN`SN`TOaTOaUPaUPaSPbTPaTR`URaVQcWQeVReVRfVRfVSeUTeWTgWThVTgWThVUhWUgXUfYUeZUg\UgYUgWVhWVkYWkYVjZVi[Wh[XhZXhXXgXXj[Ym\Xj\Vj]Wj\YkYXj[Xi[XiZYjZXk[Wk\Xm\Ym[YlYYl[WlZXlYXlYXlYXlXXkYYjZXjWShJHY65B & K 0m!%5/;C>LIFVKIYLHYLHXNGWPGXPHYPI[NIYNJYPJZPIZSJZTK[TK\TK\SK\RM\RM\SL]TM_TN`TO_TO_SO_UO_TP`TP`VPaWPbUQeUQeVQdUScTScVSeUReUSfVSgWShWTgXTgYSfYUeYTgXSfWSeWTfVVhVVgWUfYUf[VhZWhZWgYWhYWjZWh[Vi[VjZVjXVi[VjYViXWjYWlZWlZWlZXkZWjYWj[ViYWkYWlYWkYVkXWjZWhWScLHY97D##+`%A% )72?C?NJDUNEVMFVOGWPGWOGVOIYMHXNIXOKZPIZQIYRJ[RK]QJ\RK]PL[PL\RK^SK^SL_SM_TM^UN^VM_UN`UO`VO_UO_SQdVPdVPbTR`TSbVRbTRdTReVRfXRgYSgYRfYReXScWShWSgXSeWSdVSeWUfWUfXTgZUjZUjZVgXUeWTfXUfZViYVjYUiYUh\UlYVlXVkYVl[WlYWkXViYViZUiZUhXVjXVlYVk[UjZVjXReOIY<9F&$-t6 M '"*72>D=NLCTNDUNEWNFXNGVNGVNFUNGWOHZNGYQHXPIZOJ\OI]OJ\LJZNJ]QJ`SK]PL\RM]TM^UL^UK^RK_TL_TN^RO^QN`SObTObTP_UQ`VO`UQcUQcUO_VPeXQfWQcVP`WQbWQdXQdXRdUSdWReVSeWTeYTfWSgWTiVSfVTeVVgXUiWSfWSfXTfYTeZShYTiXUjWTiYThYTgXTgXThXTjUSdVTgXThXShWSgTQcMIY>:H)&1 B%W %"+61>E7EE=LIASI@RJARKCSLCSLBSMDTMEUMDUKCTMDUNEUNFUMEUOFYLFWLFWNFXPFWOGVMFUMGWNHYLGVPIZQH[PH[PIZPHWOJYNJZOJYRHYRIYQIYRJZSJZRHZTI]RI\PJ[OK\PK\OJ\QJ]SJ^SJ[RJYQJ[RJ^SJ_RL[QJ\RJ]RK^PK^PI\KEVC>L72>($, d2:m  %-*3:3?B:HE=MG@PHAQIAPJ@PKAQKBQKBQJARKBRJCRKCRKCSKCUJDTKEUMEVNDUMDSKESKFSLFUKGVNGXPGXOGWMGWNGUOHVOHXOHXPHXNHXNHXOIXPIYPFZQG\QHZPHXOIYOHYMIZMI\PI]RJZRIXQIYRI[TJ]QJZOHYNH[LJ[KEWF@Q=8F0,7!&  _/4f '!*3+6<7DA;KD=LF>MING@OIAOH@NGAOFANGAOIBPKBQIAPJBQKCRLBQLCQKDRKDRKCRKFUJCUKDTKETIDTJDTJDRLDSNDTLFUIETKETLFTKGULEWMFWMFVMFWNHZMFWMHXLHZLGZOHYNGWPHYQIZOHXOGWPHWKGTCBO?:H5/=($- Z+ .Z  "+&040;=7CE;IG;IH>OI@QI@PF?PGARJ@QI@OGAOIAOHAPIBQKBQKBRJBQICOIDQJDTICSGDUGCSICRKDTKDTLETMFUMEVKEUIESLFVMGXKEULDVMDVMDUMDTMFUKGVLHZMHZNFXNEUMFXNGYPHXOHVNETHAO@MH>OG>PJ@QJ@PI@PHAPIAOJBQKBRLBRKBRIARJBRJCSJCSKASJCTJDTLDSMCSLDSLDSLETLEUMDTMCSNDWNEXLEUMFVLDTLCSMCSNDTLGWLFYMEXNFWOEUNEXMEXKDTHAOD;J94?-*3!& sC >l $'.)360;=4AB8GD;KG>MH@OI@OH@PH?OJAQKARKAQKBQI@RJBSJBRIBQJBRKBRLCSLCRKCQKCRKCRKCRLCSMCRMBRMBUMCUMDRMFTLDTLDSMDSLDTLFWLEWMDVLDULCSJARE>N?9G83?0)4$ ( b50X   "$+%-2,691>=7EB;JF=LG=ME=MH?PI@PI@PJAPH@QI@OIAOHAOGCQJAQKAPIBPGCPHBQIBQK@QL?QKBPIAQIARJBQLBPKCRLDUMDTLCSHCSJCSKBRIAPF>NC:J=6D4/;+'0" &  {M(  !Dp   % )-'24-9:2?@6DA9GDLI>NI=NI@QI@OH@OH@PK@OJ>NH>NH@OIAQJARJ@RK?QL?PIAQJ@OH?OH@OJAPKBQKAUK?SJ>PF?OF=KB9H<4C7/4BA6CB9GB;JBME=KG?LG>LH=MH>OG>OH?OH?OH?PI@RJ>NG>ME?MF?MG>KD;JA8I=5E91?5.8-'1%!*" pH' <` !#& (+#-/'12+54.:60=72?83>93>:3>;3?=4B>6D@8E@8E>8E>7F>5C=5A:4@92>70:2+6.'3)#.#&  zS1#?b   ##'% (% '#&#&%('"++&//(3/)3-(1+'0*%.)#-'!+$' "  }X6 "=_          wV7  8TqgJ1 -C[uoT;' 0DZonXA,(8GWiz~n\L:) "-9DMWez~yvqkcZQF;0%  *8AB=41/-*%   PNG  IHDRasBIT|d pHYs+tEXtSoftwarewww.inkscape.org<IDAT8c`0}?79021O&ܢRvGFQ$O߁,>Ѐ Cjd ^6\O Bla(|ƀߓYE^``g&J64'~IENDB`PNG  IHDRw=sBIT|d pHYs+tEXtSoftwarewww.inkscape.org<IDATHc`1 ߿xha833LG xhb2`A(P'4з%ÎZ‚a%$] cd```` 70M G4"F__4,*X$30B=D2pt0ͫLZK_L>`*IENDB`PNG  IHDR szzsBIT|d pHYs+tEXtSoftwarewww.inkscape.org<IDATXc`1 ߿xrff/,6o g/a 2GFQ.>uPrru֒‚a%!_ cd```` \!6@l |  !ɽ a><F;`fa8%?IENDB`PNG  IHDRa pHYsodtEXtSoftwarewww.inkscape.org<IDAT8Œ/o@] h\?U`؞@D^ I !`h!w9Oiyy 3SQ;xeV^4`fOS{xy\]kq@D(J@=?ض<8ZEQ<0 hv@uDQ0 Ѷ}[H)!@UUHRB,4MWDi@D#IA,ˮ'<<<#/˲*LӼy ގ'-CyIENDB`PNG  IHDRw= pHYsodtEXtSoftwarewww.inkscape.org<iIDATH픽jQF AXN rVHZ_"q-_bcaJ\VA D|0pS"Rd(0?"Ó+ac"r+:b4 r4͓h6Z "T**LS&1/mjz.o`6Bq}?/I CvbR)Fb۶F#U\EFf]|dH$B:Q ]X:K7r)I8H_IENDB`PNG  IHDR szz pHYsodtEXtSoftwarewww.inkscape.org<IDATX/hQOEtUVeAAȚ `l"&Ú h22.: a--Áa0&x7?K{߇s)%R ,G#RJ\ܷn_EQ~=x~Oբ0q:~V /.Jwww8NFz۸tJ%N/_ d(hZnd\nmFggg')b6|b1EQ(%6 x<&D|N:H$H&T*EXlVzwҁ4Bh]|'u883h4L&4 |P(f Z(BݦT*aXF * :`1 D6e6ߏH$B.`0l ê j!Fq6ƞX:9xim/ l#зIENDB`PNG  IHDRasBIT|d pHYs+tEXtSoftwarewww.inkscape.org<lIDAT8Œ;KQHH(˥>@447ԢjhkCcED AT-5m^AN-uq`A\!U::2ؖ2T)gRDBT{T^)@25aVbWF aڎ5U$~/z]w'}g.*pŁ]$.9OeRO/A>/] g.0m!t tAx-&iO(@\?:iq5jIENDB`PNG  IHDRw=sBIT|d pHYs+tEXtSoftwarewww.inkscape.org<gIDATH퓻OQ*%BbabQW-41Zhц PhF1M,0QwHЈa1X`jMN9ẃkzj_k)Wy$ (g]`;GrbO]UQ{IIx6t`ϏC[eԻMc; WhG87\D31QSŢ^?;]9u)@6נK;]p}L۾cMfl~t,9mAwrYzcQ2@KpP 旴e 1;l[Qxx pxbۺkӰYoC幥{Z_m ё!]h̏Q̩yEj=k٧\?9h1׀CMy*\*Jio1 "㭒zSZ@:$QIzs:r:T[Jww k pN+( i4Sg _Q_F5@7P$=c|CNzto(0Ċ/S5%pϙ[%j$n5%pdߟ3DIENDB`PNG  IHDR szzsBIT|d pHYs+tEXtSoftwarewww.inkscape.org<IDATXkA("<{$? "Ńd Bś^$ a"^bv0O0kymLn3az7'-(jۿn*ib끃c!wp0pV U*@%NllvsTRwb%,U ,-/'9sr fxrbg+6o*`Μ$`g%ʙ[]&9 `+v=1 Vw&*Ied"ia< Tߔ%Pe)?e3p˂i}?YB~WH0qw`*6d F9S ߽%\hIE`ie>MrxGZ1ghIm͉_~sdr4I=1zE7?Grh!bWsYK1E終}Z50 \"@Ш| ( (Ȧ*N nd5 %;f>,hGXdg~G{ 12,_fx}d=yXrNԊS.P=crhR e#`hҠ-y9yiVe!с[ɾs 18.uW! $>060p, 2q+8pbL@5 `hT ;U1=)18 ͷ,?1^sȮE1O ? .PĪa?߯200(10~&^b8 0GX̀QhB% ĒwM@pW B83IENDB`PNG  IHDRw=sBIT|d pHYs+tEXtSoftwarewww.inkscape.org<IDATHc4/<񟁆DÉ~ Y@KH ba```8gN-N>hn >ܩIyϪɍ oϭPGE; T;B`hT"h%0""-$[?L }IN'#~!lfdvwi`R$ R|aFQeH`AslX"Яh^'~~x-IENDB`PNG  IHDR szzsBIT|d pHYs+tEXtSoftwarewww.inkscape.org<oIDATXc4/GjYJ Nrxpw/ b` ?2|n9g[>)3vO^"3062yX%XC _cHŷMG1t ^m>@ !p{աu`9Kzd95:)@|tEi|_Iu ^ ;WT9KBJ탨-%t>p9@c3Z,P&`e9lH G=#JK:s$IENDB`PNG  IHDRasBIT|d pHYs+tEXtSoftwarewww.inkscape.org<IDAT81N0V ԽK9lpfʄ,tN]`(+dbc`aBɑ37Bd)~>=۝I -iK/'"DOe@Uﵰ.Ϩx/1" !ޮUfz ~`ϞlljjZ n5ףj`ӴOkĘtT c|"D܁, CUݰh~bu]nL/}IENDB`PNG  IHDRw=sBIT|d pHYs+tEXtSoftwarewww.inkscape.org<QIDATHՕJ1O&3;86+Oa5i, VDE,,-D]}B >2NęI! 7~ɹ%<*e]SwD!Ks(4v.Vc= qٙ w:"8Z|#,Y" :8 p~?@{s+ͺe{cX=\s XnNKTz"r6=_K! (Ei躈@e=" D`@>ckD2gTSDzO0JqfilZ}eрkZ vc5% n/8IENDB`PNG  IHDR szzsBIT|d pHYs+tEXtSoftwarewww.inkscape.org<IDATX=K@Ɵ\]*"n]DQ, ڀPA+ EAQsiJ&A8r幼X5W G<#SK֟@1*!s[7Q2A2M sPE^AH11ez- $.…Na|t{gwx~"ě@E >9̴!=bs)grBpsZ `۶vd੉2^=.0-c E @6l  gA7@G@f@6322@zH@fi22d |LeP^a}y> 7O|Ch/HL}"Mj nCjۈឭ IENDB`PNG  IHDRasBIT|d pHYs+tEXtSoftwarewww.inkscape.org<EIDAT8MK[AaHעH-.B47 ҟ?H"t]wZn"txC)tBb*s;]M?V=08s;9s^ORX2p8B5c̺R*+RjKxG6EkMegg&PJMH)-cx6).Vz~,xTk?Wa֚8y&J?R"}r\nww;9 y^X,& C...|)8I82<C$DQDGk 0cU*yT@JmXu]Bq{p+R}sO,k\(8??UN~hm!Qa6b6^$H)9;-4.066F&zuq]qm)/K6@ }5au R !9ajf2G6NaِEJz~2I_:'#ZX]]JBP hA@iXXj\R3\1q]C(a IENDB`PNG  IHDRw=sBIT|d pHYs+tEXtSoftwarewww.inkscape.org<IDATHkcU?YiSdSh: q1t(ʍ.tV*.Wa@AEOFA"TIWqtf5iB&yhKDžw={M:#wUp OWJsG'| "H0::vVEVw_ T\|Fd2$I,B)%J)T*h4&&&>^__ %pVRt!_ w(,+ v]R=8]9P}`%͒NZtAXYY |cUXsA*b~~oύlxvۋſDO DZyPV, ۶m[k&'''7eO,d2!Z09L5&RdY7 Rd2&1⃅fض jy!cYV4~mD"p N]RbYVEO X,0i^D"H)Y~x?9(xzz:j6_^?v \3 )%zO˝&jXl4TЦ NOO'VkB)շkM18n W<5{Z-uMs A,2$J5hTU]+}RT%yne ё9V%@.s\E<类 ;P2fuApB@@8:XeT*qxxoܳhn}|gk  s^<4At:eŢiGGJ`qwe1558H3&jt˟B|AyU,p^O*r/\4+ǔIENDB`PNG  IHDR szzsBIT|d pHYs+tEXtSoftwarewww.inkscape.org<IDATX͗KW?ZȎk5]RZAVч?y WHh miKP"CHZJn&v}pqRh̙̽8a&Ͽ =@PW~RʩT* N 677Fc}\w竑?1T8db `{{]X\\d}}LQFRPJ"HMSSӁ!RDRݻw) $R˹so>6pox'`I h隚8u{{{hZWD뺇 !$H099ITzx|`ɀiಔq]u;6B!" )(W{h#J>s+AF5"$rm߁vnE.͉DϹQ.gϞI]]]>}W;)d2===D6`\0p6Ο?o#L&XXXxh̙3H0 a}[[>dńIaG:::p'~o_BF̽i:6]Pό6qBIymp0>@-'*:o7bbۼ| ۸M 4rk{( ֊!Pvvvp{Vv[(BqDJϣ֖ax 4looCĪfP,^Tkv ֠ylLY@. 6a6ap'J666( 4,Ja7ޯ<~ 7ܹsd"Qm lLl/U>|xd  Ͳ[,< (J%@OOOY-hW+^~qh!İSn<#ɰ#Tɓ'LLLa?&K7n VUpAZfy&R ;@펽-什H`دYۖ266vAk pIRdq&b|>‚}0YB\ R5Bw֗ƣ\U؇򁥇icʇS~ Rt{IENDB`PNG  IHDRa pHYsodtEXtSoftwarewww.inkscape.org<IDAT8ՓAjBADkZ2s~`rq\l.cIENDB`PNG  IHDR szz pHYsodtEXtSoftwarewww.inkscape.org<.IDATXͮ 3ӹ1qQW}a51p&.* +pg+"Nu.L0ad艺ҁ=QDMR(">N{> =\X'.Y#/O+2ﭑ1T#gYhfb*MM=2 O>gCGU{5j y@y1 bx\D_VV6&6Ɯ'YRhy Dy-Dܟ> q`1v17;c01ij&%&"q?:9Ή*IENDB`PNG  IHDRa pHYsodtEXtSoftwarewww.inkscape.org<IDAT81n1EXlSl*D"C(ErHRХbt"G@\b?bh7yg$3}mck 8?/'\S`+}d[D-=L x޵$pk Thm \4{3V9sHl2~&t/'dM$Ѯ-H[B NA^b!!0*XVb $HOK% NI+mw$k7qIENDB`PNG  IHDRw= pHYsodtEXtSoftwarewww.inkscape.org<FIDATH;n0Dg)8хn p7ԸwqTix!]$A4 a)Rq#PB9)Dw;b+BTU~,z>8rkY-hovD;C1E \%"r)DG~G)j67S+>|,MvD7b;Mn{zKfsVJ&4p(qo5v%,4La*\zAQ,kqX졂 \dO-;|]!Pj˨s(u!Mmڂ8t4)э KPSLx0ʄdMx2@Hh&PC6aD&Mk±ĄgU~ t;IENDB`PNG  IHDRa pHYsodtEXtSoftwarewww.inkscape.org<IDAT8ŒMAj?K a0 n`1grL ,88QVa»[O[I3!&-h"#-ďkwC` Tt5VYbVι7pAP{ @o qܽ!*)PλwUG9 00yI̫ IENDB`PNG  IHDRw= pHYsodtEXtSoftwarewww.inkscape.org< IDATH1N@E_\T),N ( @Զ)|:4Cl+2FnfzogV+w@R"PTJ,ɓnؼc$쇧.\h];΄Z8EKrJ$'Er#evL6/ԓf9R0m0c;!";~^[{~\5;1PG5UvچCDk(ibZxs|'U*?2{\T@IENDB`PNG  IHDR szz pHYsodtEXtSoftwarewww.inkscape.org< IDATX1N@DߘD z.DGIGA6V(H24:#vy6C*}I&*u.օF0/g2s~`rq\l.cIENDB`PNG  IHDR szz pHYsodtEXtSoftwarewww.inkscape.org<.IDATXͮ 3ӹ1qQW}a51p&.* +pg+"Nu.L0ad艺ҁ=QDMR(">N{> =\X'.Y#/O+2ﭑ1T#gYhfb*MM=2 O>gCGU{5j y@y1 bx\D_VV6&6Ɯ'YRhy Dy-Dܟ> q`1v17;c01ij&%&"q?:9Ή*IENDB`PNG  IHDRa pHYsodtEXtSoftwarewww.inkscape.org<IDAT8RANTAWՈ [ p x7W#p ]&Ype0ṘwF7c'/~RUřt/9:']gtOiGf"Wk۷("h-o]0~1ҩY +>8 Xt铋?X} D\ 䶋EɚIvN~uqbdr7e].;q@5r3ŨD'q*":vzH8.XV {}tsXaܟ8xpG0 ҳ1 iOGyDyɛaO,Q~7&q䙋#GN5*_(gꅄZIENDB`PNG  IHDRw= pHYsodtEXtSoftwarewww.inkscape.org<IDATHNA+1C\XC" #+^> OcpKFTT0;33.x/f6\Y\a'5F]aUPpV:+ZEE8&D'%@Uj!=V?p5cF%]3}| er/di;Qxy_%C.4SPvVvp3g{3$ =BYȡ.x vcE|&";R*CI7"&#:+l!X?E&^1T$ ldCSE`So8)@]le/}"lwV[vVUQmݓFsZa@@~ќ.nvn CT+@Hu|6S1߽?2f PWQX++5cs"Pc~xB%%%K>-@>ɕ` bvVb? FŖ`M cm5rV$vMY2\)xc/XxvYyHdȚ݅8ZpccȠ_\M€G[+1pX<+NNbhWWKT᯴v¿!zw <`cl$.4SVdD ˹2l~`g =1~1[br쪏7XYAK^7U3nIs[ R5@}Ū^: ta!ڒ*D5,7yKqX -Wӆ3q"Ռ Po/M;]J9ӎmǪk:'Mev$[k ̼]nHvGi(`9 `BAH %"h? 7`XEz*I\ޤ)I)+tHx_Pjb4R-l?ֺhV" IENDB`PNG  IHDRa pHYsodtEXtSoftwarewww.inkscape.org<IDAT8OkQMfdƔ*nTpU#\~  ݸ%\C$".ݩPPjLf%8s=G("Wd\P3Bq$qZ`˓e ) 0RrD&OGjj{+0DL!s6OOK W`˻5 Az!BTrPJJ_ ; 4 >de a$;W06wnJeXѼC G-,BM ><4\Cj^ ]puF=_R7Rk#`V_u=<1k :-x^w[=Ӂ0%e ѐ`p1?{g44(KźmmUq9C:ۂɺ~ 3Їe)5Z!x'0GTdO)'Sci8]^Ⱦ!`_|f}\wd[,%'xW7p]}Pft/Kw]IENDB`PNG  IHDRw= pHYsodtEXtSoftwarewww.inkscape.org<IDATH]h\E3kwh*&|D}PM*(&}"BEJ֊"" &)EV[}i&6ݽ;>;ke|ᡣ԰Xe@)Bf[XZ&ORPOz Ly"Ji Vb]Ia 1BA!T#~hv=;ˠI9`r + S30MpJAAɇS Oo&ORVW8`ր\I D%Aoʰ龐J Ib,& _֐[v7~SsϐtEn6>?8t%/s*,!.o ѱy0)ְEd*%J4l׎ުÏG.$ <us>^.ȾKr LD>Q fm`kq!7uDZIlH!>-Bt1Z{eŞP_)*fZO=b9`1:@#$BgVj-<2;L&Pni%7z ЫT#xp|@p3ouoBg J}+{8;)<;Jr-֪?:23M׊_s6L'.ٚg5U('IENDB`PNG  IHDR szz pHYsodtEXtSoftwarewww.inkscape.org<IDATX͗[h]E}94Ր"TmQ(^^l jE 5)_RT| (j-Z)A_&jOJMZ(5 MzIMr>g_Ƈs>MV,fך5k gk(:ÈH@ARp̖l9.b`r/x=~H! R`T)XX[y_B +P g`#!cCעgm @ŀ׊C%@ڹ%\ dmȻÖSüq#%"[GwEJP4px;w1aq^ƤGt@x]AU;O*,ʌ =Ufe$`4:CHc9gv׿=&T,&H;xvxVY'| LI9-g->B&Yuڼ@ǼhviǡF7= ܔPauZ:0QԴh#ss<lLg}9v#Pg/'wa~&xfYNڌ T B%rnݦ4 i` -^P)m˜J~HxK!PN?EBUp&8uhtBք%;8tv.(D*=cjdtY8q(Uj"c04gW,uYY76CーN*^,PpMڸYFFk\ ;tl_>_^[p{Npې T1)GZ(t9K9Wa$vURp,!f)`~.BO^dHM91%#dmeK}JK { HoF]ÑTt,68dЫdJ6xvKhSb׊jZΰ߱s}nR;1T%Z ɼU#9vmp,N`@Wk4Fl+΋ֹfֹZ۪!kiL0onD֎;eq+usfcj[Eڌ쨞tC/|:!ZCr|QSX@漫{49n2u6.^O;2uhJdd|Mt7Jgv?&'6i5]ߒ-)/lCZgkvҵy+/y{.fEtH#{9p!5W*TrNIENDB`PNG  IHDRa pHYsodtEXtSoftwarewww.inkscape.org<.IDAT8kA?w$Ć6EBE,bdp7 AwGEh' n "JRmM9\B>c CT p"+&K}~c_k"hڼ@40Cr'hl.R_suhQ%!>lXz+}Bl}̰ ;0~/oAHH8VL+mK,5ۼ:m ?fHn8d)6V!hBв$g.>A X=F'D)IK=En ݉B+>$9Eдa7: m|x6oNKGT>ݐc dQp*&bI[䪮`>؜%%!hcx-,2#>f߹@eCGlNj[#%@Kt,`JwFJf+Hq+^Rfc ir V ]ͱc\6;2q UY"_xHIENDB`PNG  IHDRw= pHYsodtEXtSoftwarewww.inkscape.org<IDATHKh\UǼ3311HBƝ!QȢjB)1 qJDiµA\IX1Mj4NBc{9Ck9=Ou {a Cm`:װK(swfP)o.Ү?Mnt'ߒȞౙ VʯҸ! &t BR`&ICrEȔ|N11,q[ԯÝ܀N w b2!d2%{``tɹ3w7}gTW Pp+yI2Q#(ir#sLΞn\Ӫ?*/yRyh`dL0#a-LV~F憔)+ϵ˂]1 <6㒶naY!ަnqY$y~ t B024 bC8n QY(2lSZCB%n&C{XJduk^{OTW>wzX <,pd+Ћ֠uY"EehR*:2(Kl0P~7s)͖6 V$ة>Qշa %|; VqE  '#JD(keG&M%rd\9C RYrB-K,gG^HdOb7[+][t49ӎZEQxoxo7xjrÐP_|} ~N!!wP.|֮+_M}mi& 8sK~e'Tqe~=ŝ2)^o a[*Vb :{ weIENDB`PNG  IHDR szz pHYsodtEXtSoftwarewww.inkscape.org<IDATX͗ˏUUUӏyJH !,@cذ҄&q hبAڝ@,dFL@v2Q 0LwtUWuqn={JN|:e(/ܚ=uiBCmEE#LW45ŬHָo.pxu# ! 4́@.Nq|Օ'p\ }vc3~|:{ )CN0Kʙ㸋h/kQ-pJ/Ca C;L\,B{ MNL@ٴ( ( 0G4r_^%/;OҺUu ph5@E| 9c @["\yq޸{\8K&nA6DIɕs'aiJ;#P P1Eqx~O4ИGH/"P= >,kaaiMXst1(A!lgz05Ey%cTY4>mw#ry=U)S~7LR97)Tn1JO2#J si9[#ÂYD ރm C* v!t~b'Y9YS ) EJvR ;Iudɾת&DT{ڱlfϼǷms>P:zcyW;^w?klyBksirC7ɋ)W|;IENDB`PNG  IHDRa pHYsodtEXtSoftwarewww.inkscape.org<,IDAT8AKQ.$h0K@OK {/""=y)-D/~ۛ$mO_71Elč%tnck>Û{3oO ÐGZB@0 Q t KK?*cz=A:#0G m_?quv;B ĢQ`f,!\dyq74-T4 !\!m_z۴rR)oK$lX eju [uLX^OX_ NfjzvFvwPHZ(h{tt^# 3 RfJpsT\IM蹊>!@Q@#ZD"RmmIٕ$nlΎģQц4 t:07ws,]ۢ _E{{99y驌jvuŅs~ޱZ0JXK} H4:l,},eXrx|>Fly3 I$>01񆕕wL%OXw-81?L_*CIENDB`PNG  IHDRw= pHYsodtEXtSoftwarewww.inkscape.org<IDATHAoWvvYmXl'vQ{CCE(N@q|# ҊC/BqsƩTUjOp쐍amV8n6:mJUFzӼͼy3 yZ E\yRhz ϻG> "v`ժ|mto@"Twܽ=ZOmt$NC&;@X?`m-m?bk+e˗nHm,&&R0>pd; oC>':ו}>/g Sj`7TR\qL:y'7/T`jJ=O bosU]y]Ǒ͛  ӲVWE-6u!zוRt]`OƒdՂex 4Mqg} 5 nے'OW72eE2ŢÙ3p+$Z fff'Q͈@HO$)_[[ŋd`eElBa U}z ÐbFF\ei uYKKQuˑi aGAi&ޢfBR-&RIj5uM&4;(J {JϿ^F߷ur򻧧ԩX^ýhg;&&.j&'!CZ8x"q+W6&pD{ hЇ^Tbnu i33339I7ޙ8·8>>l{+@ H ~y@2iZmMd2g1NUՠ^%!p c8η$ NaP*mfyL*D0b߈FL~[SSXZ:KQ,2Z/D`fOs6==ߓϧai (iauaX qhmDڦy`#I{⢀(m ZM bP8j)i`~Զr4MB86hoND"I*jL3#r-ܜ‚IJİeq!uY$e{;tv o]]޽&@saJ-ƥ%9y&v,.Oڲ}-* f*O9˟,^*jU"s'<)F4MpbR)ݽ{XfINqL2ɤ<ىiJn)VJ!*ɼ/*HUiv!*5^&%lYpӮxQ,Y xYdTضTq}n>j5Y6^>,FZM֊)9)Jk`Y[WܩKչR`Yز1v萿n݂ǟ:X67L"/vUt;6{!7H%&_%8ztAzՕmW %/RMM^J nA~ArExe5իO@%a8%hHR> т'^sIENDB`PNG  IHDRw= pHYsodtEXtSoftwarewww.inkscape.org<IDATH핱j0WEBYKڥ%" :$G1PmI߇[nJ `M 1r̚R.C'[c/9Temw$gߺ {R {YSL18T~,: ± ΙM5QE rJrGqȷn:ar1IE'ߎMx*J@IENDB`PNG  IHDR szz pHYsodtEXtSoftwarewww.inkscape.org<"IDATX1N0ߋz 8KR%u^2bHDǒJUbYmJœUJ/E"75@NV?&!='[ |x_e聟E=f %meU{ Кdc@BxG=iAxMKZ.*?gupȄ7H{b-XP< 8I4Ncw@#yT`@]@$2r6f"<*В$.w$8iAgbcq\ W',E|XqV [xtoѲ%!Nη>`s:8M-6߳e:;?.k=fpIENDB`PNG  IHDRw= pHYsodtEXtSoftwarewww.inkscape.org<IDATHMhTW7SLZ RĠXJPThE(mFt'\*~*&MVp#.\Q(m8$3/s{#Z`Vd:S>RT',?m̬iC޹ ԚEVE4&ARSi(gUy&^u);^Oh #髼.4bGo']1(Z睻WW_94bwn,u24j N۲&. }m}Nm1k!]4JͶuEYV{0REJYE:i. Քi [K 96pS RB3 Aϳ^튮&n{LK'gyщM =@`d[)48"`7^#/QU5GYR W-@Lm&c~dɾ6!`By @ɧg3XL$&G x0ftKªm;Fj{03~TE@7ݤ?`^ Tɉz9iL Wsr|*ގޢ8,gUD(aߧUϒv;v93(bIENDB`PNG  IHDR szz pHYsodtEXtSoftwarewww.inkscape.org<SIDATXŗMh\U7S-jD i!$ ](Lq᪸y}U(*EKQ\Ti+R'!BJڔvHKyw{\d&};9p޽{λwMuNDwDroؔ!;e~o1 ]Y'ީNeF[ܫ-5Ȧ>dz5YԜN?9&[No[ܝK;p `Gwz-8'3M*QwZ:åZ͌+U"v3Ȇi1Ff]dYk)v[ꅌ0JLԦ< ÌVg[f{;]'t[@`,;w2v' dfFucoFb9 DbvYz Sycm Tm`8|t@KE<0Rm*L_YoE\"fE !YLsɰ㨞-n{x>*~9Sz`I4 WsG9_/ܙ-To .t1Bή!1`G쳕7z 30 W0L*_c.կ Im(IENDB`PNG  IHDRa pHYsodtEXtSoftwarewww.inkscape.org<IDAT8œ1@Ex=VBT^#/`A·`1H0qg2kS(ɐǖ KGy(W88" N67Wyֽ΀J 0vbWp*{]#@deX f` X}H%@7A>%hHR> т'^sIENDB`PNG  IHDRw= pHYsodtEXtSoftwarewww.inkscape.org<IDATH핱j0WEBYKڥ%" :$G1PmI߇[nJ `M 1r̚R.C'[c/9Temw$gߺ {R {YSL18T~,: ± ΙM5QE rJrGqȷn:ar1IE'ߎMx*J@IENDB`PNG  IHDR szz pHYsodtEXtSoftwarewww.inkscape.org<"IDATX1N0ߋz 8KR%u^2bHDǒJUbYmJœUJ/E"75@NV?&!='[ |x_e聟E=f %meU{ Кdc@BxG=iAxMKZ.*?gupȄ7H{b-XP< 8I4Ncw@#yT`@]@$2r6f"<*В$.w$8iAgbcq\ W',EA{^m}sw nG0|I1sl1{__fNgGk5&5n~ܹ0XIssӥhx8->pLaV?ڼ(-˜Kl[&kH8 #a=cw"a3<0`ъX~\A&,"I{wBU g .U2\B"$%AR6$/-PY$)K;f~#x˶om=UP0j<U`GlzR ^aW`ta6l5g+`x}=1qsD (M.UK?Y1Hd}9\!0G rs^[ҩϮ2D䨪rutBo@8H-lwQUC`!p4._ݽ "Wцu,:eBfY ХyK!c@V6 P+y%x0~2/Od`qw'Q7s= n5dX*ӍݝϜYFA"iHG ;IENDB`PNG  IHDR }Jb pHYs8/vIDATxVkLSW?XkN-A`Z jtHip+66e>,8:84EP:fځޝsʭ}R7s,˂@]`ghnb} s/oala<+L^#i J*Ȥ)(O0*a𝤹fw]_S8_&sx q'q v.&xwzҲ϶6vh(;W_RfgŊ^Nguw_LIɹfV_ЬZxv>6LO M#C1C0dc1Wy㘃u61lWNK>,PTXh>/(N\&.^v4]egqq~߾Ё8܆V"$9m ׫I.~ݞs$S l6$BK*rF@R`śH_'Fc X֋+,Q. P9Ѝna%@SQסkb1 p{O$I%QŮMM)EkLyA tZlbhTWV]ZʹbIX=.\fN!O(t ESrFݹ# I@FKe RSlyO9% eZ&?8 7n bt df4] 6V{[(\JHHw0 o22`>vܫ>{Rje!]"IikB;4rCH AA@Li;EǟW9, )_[V) ؞ "A`;bRSCO 댾<[6ݻSva(` vTL`0ʞeˮm) ?;U5G].]:Au"4Uف &i]7A1@fK4943Y%8A~攽TwF|PkxtdFȼ kyPT(OCni^YM_UthѭP"A10mq4Y6xO_j?3/@ð'H\P2M[L0"~hTv/L"ⓞvcBR">1Щ "{ߏdw| JsbtQi~TZm|L(QUP FHdt|][4aw׮yćŪNC$U_i&ҭMh>z R G%i$R+cDʱ196FC&aT3@^tZK ZUG245F\coDOkx.,N__#<|]݅!,(#B?a>޳CeLRY;GdkA)[f܏i˅aD\v;nh.Cb=qBƤR}X}e xׯCP \jE0J[bVuXלV0ȪB7,Jh4 QбDȱXHlPQ e0Xp{C!IENDB`PNG  IHDRasBIT|d pHYs+tEXtSoftwarewww.inkscape.org<fIDAT8c`a eK&&f'G3000ۘ hdܥ ~0 `bf:}q^`bLQ@/7# zIENDB`PNG  IHDRw=sBIT|d pHYs+tEXtSoftwarewww.inkscape.org<IDATHc``0"s,2}?/%213~>9=gA?o[A 30CcS7{2X/yԡ %`3&&f3Qc(IA qCIENDB`PNG  IHDR szzsBIT|d pHYs+tEXtSoftwarewww.inkscape.org<IDATXA @ EZx DBqJMƂLŖ0~IB!{GRtUoaV2>S;T.'kgZ\KLk6@o5|l`hh!\$v4|0[pؒk Xom&6:6֚[~XtnFULj(RW\qkr\i{RG~^L!\.zp6jp~7,?=xI_tMl@6jQ5=>9;/DJoL079@/Ekhqo)䮔AdKA8 ^73_ZO܅R倢Q[WӺϝGUIENDB`PNG  IHDRw=sBIT|d pHYs+tEXtSoftwarewww.inkscape.org<IDATH_HSQ/"ݫNioE=IPe)C CdӤ - L5AӔ!ܹ[,7~pp.=s\@ Pgg `!m @t fV8T~5{ƝN~Z=r1NA&qypðHfDWQ[ϬשּׁW4V8K1 Mġ#/15-m?L8 ,{@G7a9؆c1L<\A=p6Lk3/=ÕEa8 mMN{ls\֨w*(qPߜIENDB`PNG  IHDRasBIT|d pHYs+tEXtSoftwarewww.inkscape.org<IDAT8c``ib,$h`de!g_Q h`dfȘ%-tK\ C4;;G/ x?FtiC($7;+A2TA߫`p \_~"U W)G΋w ^ a3;Y|C7 h`xoΏ?=}5 \D1Ę|ڋl7IENDB`PNG  IHDRw=sBIT|d pHYs+tEXtSoftwarewww.inkscape.org<IDATHc`6?KKU$8YkcYWz40Hp23gdLԒe%L2 D9Tc`PbPfagc%\ y j06@$LdL*VҵdD%9Y2(M߫`p \_~ U W)G΋wLE XDZ$ay(K0~QŇ/;tY /򵧯132PC*sTƖ•.IENDB`PNG  IHDR szzsBIT|d pHYs+tEXtSoftwarewww.inkscape.org<GIDATXc` 9,ML120Bn650Hp2( \1QKZ⣗Ҵs@( *BL*q;IES5jvFPUܐ=Oôϲ" p0JlUbzTEҟk7je?}\y,oIENDB`PNG  IHDRw=sBIT|d pHYs+tEXtSoftwarewww.inkscape.org< IDATHTN0=I)k*% "@t%RAk6$vceA=s\b/_6wSq6`mAb p_F -q-hEF0%+?ij #&eY*!v`uAn+vgUpu~yxmӢv+ݳ"0<84 #ٷ!Ϟ %d oU1"XټveƤ/؇cW0oJjtr`|"\IENDB`PNG  IHDR szzsBIT|d pHYs+tEXtSoftwarewww.inkscape.org<AIDATXUN0=I)k*% A]b:"DW H> o 4ε(hYʕsN|F;(ve-Z|(Ob %fX U^v5IM܈L6\Zsr &\\͗+2Nh 8wėُ0SOSC@ġ>/h H$@d$WFŢ$zy!Hv p碑rc|*\NA΂A:qw{@"w$_>A=1 zIENDB`PNG  IHDRasBIT|d pHYs+tEXtSoftwarewww.inkscape.org<IDAT8ҽJ`޾oj~+(:HA/YBjw'SAPEJk5TWi*5)g|87=-" 3Ba ' &(*.JB*`sUz1m(yo&RZ7Jd7H@ghlk3UCtC%G`oIry|=u`mؑ /?37xI_3x Z;GJ9׃a˝% K3ӼŮos(IENDB`PNG  IHDRw=sBIT|d pHYs+tEXtSoftwarewww.inkscape.org</IDATHc`h?K8`of~İ /e! MiV{\$j[h2+ RTFM-N]WN4%aX@mpZ@-Z@ED[@E$[nQH$+V TX@f8rEG.|]fBǯ3g\ϟ*gmmRqZ@-Zpƣ_מ?MԨ032պTp+I-C'_0IENDB`PNG  IHDR szzsBIT|d pHYs+tEXtSoftwarewww.inkscape.org<]IDATXc` a Kdp{|a^(! MiV{\${ 9;=NmYdV- NVV5Y;=v]9HV{rDH h!-BV9@MPTQ!T) )qUbClصdD"9XYpNTu߿zkёK?=y?*_ÂOW3OC3bRJ,԰,Pb@ r--zXo